[cut: only the first 33554432 bytes of this file were read]
<?xml version="1.0" encoding="utf-8"?>
<posts>
  <row Id="1" PostTypeId="1" AcceptedAnswerId="13" CreationDate="2010-09-01T19:34:48.000" Score="64" ViewCount="3714" Body="&lt;p&gt;A coworker of mine believes that &lt;em&gt;any&lt;/em&gt; use of in-code comments (ie, not javadoc style method or class comments) is a &lt;a href=&quot;http://en.wikipedia.org/wiki/Code_smell&quot; rel=&quot;nofollow&quot;&gt;code smell&lt;/a&gt;.  What do you think?&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-12-15T21:46:18.357" LastActivityDate="2011-03-22T22:24:53.567" CommunityOwnedDate="2011-01-31T09:04:54.130" Title="&quot;Comments are a code smell&quot;" Tags="&lt;holy-war&gt;&lt;comments&gt;&lt;code-smell&gt;" AnswerCount="34" CommentCount="11" FavoriteCount="12" />
  <row Id="2" PostTypeId="1" AcceptedAnswerId="46" CreationDate="2010-09-01T19:35:19.557" Score="15" ViewCount="530" Body="&lt;p&gt;Which is the currently most used programming language? In new and existing projects.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-21T23:20:31.060" ClosedDate="2010-12-29T21:40:12.523" Title="Most used programming language" Tags="&lt;programming-languages&gt;&lt;usage&gt;&lt;market-share&gt;" AnswerCount="7" CommentCount="5" FavoriteCount="7" />
  <row Id="3" PostTypeId="2" ParentId="1" CreationDate="2010-09-01T19:36:50.053" Score="28" ViewCount="" Body="&lt;p&gt;Ideally, code should be so well coded that it should be auto explicative. In the real world, we know that also very high quality code needs sometimes commenting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you should absolutely avoid is &quot;comment-code redundancy&quot; (comments that don't add anything to code):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;i++; // Increment i by 1&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Then, if there's a good (and maintained/aligned) code design and documentation, commenting is even less useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in some circumstances comments can be a good aid in code readability:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;while( foo )&#xA;{&#xA;     if( dummy )&#xA;     {&#xA;     }&#xA;     else // !dummy&#xA;     {&#xA;     }&#xA;} // end while( foo )&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Don't forget that you have to maintain and keep in sync also comments... outdated or wrong comments can be a terrible pain! And, as a general rule, commenting too much can be a symptom of bad programming.&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-01T20:41:14.273" LastActivityDate="2010-09-01T20:41:14.273" CommunityOwnedDate="2011-01-31T09:04:54.130" CommentCount="17" />
  <row Id="4" PostTypeId="1" AcceptedAnswerId="26" CreationDate="2010-09-01T19:37:39.957" Score="29" ViewCount="654" Body="&lt;p&gt;When starting a project for a company that's not primarily a programming company, one of the expectations is that there's a finished product at the end free of all bugs and does everything needed right away. However, that's rarely the case. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some ways to manage expectations and explain to non-programmers how software development differs from other types of product development?&lt;/p&gt;&#xA;" OwnerUserId="8" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-01T19:45:26.117" LastActivityDate="2010-10-14T05:44:38.863" Title="Getting non-programmers to understand the development process" Tags="&lt;business&gt;&lt;project-management&gt;&lt;development-process&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="10" />
  <row Id="5" PostTypeId="1" AcceptedAnswerId="78" CreationDate="2010-09-01T19:41:07.220" Score="9" ViewCount="570" Body="&lt;p&gt;What program to use to edit and/or view text files like INI, LOG or Error files on Windows?&lt;/p&gt;&#xA;" OwnerUserId="19" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T04:08:19.380" LastActivityDate="2011-03-08T06:48:45.130" CommunityOwnedDate="2011-03-08T02:44:19.193" Title="What program to use to edit and/or view text files on Windows?" Tags="&lt;tools&gt;&lt;windows&gt;&lt;text-editor&gt;" AnswerCount="25" CommentCount="4" FavoriteCount="0" />
  <row Id="6" PostTypeId="2" ParentId="2" CreationDate="2010-09-01T19:41:45.057" Score="7" ViewCount="" Body="&lt;p&gt;It's not a general purpose programming language, but I would say that &lt;a href=&quot;http://en.wikipedia.org/wiki/Microsoft_Excel&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Excel&lt;/strong&gt;&lt;/a&gt; is a good candidate. See the introduction of &lt;a href=&quot;http://www.infoq.com/presentations/Taming-Effect-Simon-Peyton-Jones&quot; rel=&quot;nofollow&quot;&gt;Taming Effects with Functional Programming&lt;/a&gt; by &lt;em&gt;Simon Peyton-Jones&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-01T19:41:45.057" CommentCount="5" />
  <row Id="7" PostTypeId="2" ParentId="1" CreationDate="2010-09-01T19:42:16.797" Score="10" ViewCount="" Body="&lt;p&gt;I think the answer is the usual &quot;It depends&quot; one.  Commenting code just to comment code is a smell.  Commenting code because you're using an obscure algorithm that's an order of magnitude faster saves the maintenance programmer (usually me 6 months after I wrote it) half a day of poking through the code to determine what it's doing.&lt;/p&gt;&#xA;" OwnerUserId="21" LastActivityDate="2010-09-01T19:42:16.797" CommunityOwnedDate="2011-01-31T09:04:54.130" />
  <row Id="8" PostTypeId="2" ParentId="5" CreationDate="2010-09-01T19:42:27.127" Score="43" ViewCount="" Body="&lt;p&gt;I use notepad++ a lot.&lt;/p&gt;&#xA;" OwnerUserId="9" LastActivityDate="2010-09-01T19:42:27.127" CommunityOwnedDate="2011-03-08T02:44:19.193" CommentCount="10" />
  <row Id="9" PostTypeId="1" CreationDate="2010-09-01T19:43:04.957" Score="25" ViewCount="813" Body="&lt;p&gt;Sometimes, the things I have to do for my job are interesting and engaging.  Sometimes, they aren't.  Occasionally, they &lt;i&gt;really&lt;/i&gt; aren't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have any particular strategies or tricks for dealing with those dull stretches when your brain would rather be doing anything other than what you're supposed to be doing, particularly when the Internet and its boundless opportunities for interesting Slack beckon?&lt;/p&gt;&#xA;" OwnerUserId="17" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-11T09:35:35.957" LastActivityDate="2011-01-04T21:22:43.957" CommunityOwnedDate="2011-01-04T21:22:43.957" Title="How do you stay focused at work?" Tags="&lt;productivity&gt;&lt;time-management&gt;" AnswerCount="17" FavoriteCount="10" />
  <row Id="10" PostTypeId="2" ParentId="2" CreationDate="2010-09-01T19:43:11.957" Score="8" ViewCount="" Body="&lt;p&gt;This is always hard to quantify.  &lt;a href=&quot;http://langpop.com/&quot; rel=&quot;nofollow&quot;&gt;Langpop&lt;/a&gt; is a good resource.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T19:43:11.957" />
  <row Id="11" PostTypeId="2" ParentId="5" CreationDate="2010-09-01T19:43:14.923" Score="1" ViewCount="" Body="&lt;p&gt;I use NotePad++ (www.notepad-plus-plus.org) and the original NotePad too..&lt;/p&gt;&#xA;" OwnerUserId="28" LastActivityDate="2010-09-01T19:43:14.923" CommunityOwnedDate="2011-03-08T02:44:19.193" />
  <row Id="12" PostTypeId="2" ParentId="4" CreationDate="2010-09-01T19:44:47.413" Score="6" ViewCount="" Body="&lt;p&gt;IMO, I've found that the transparency offered by agile processes (e.g. Scrum, Crystal, etc.) goes a long ways towards showing how development works to the average stakeholder.&lt;/p&gt;&#xA;" OwnerUserId="21" LastActivityDate="2010-09-01T19:44:47.413" CommentCount="1" />
  <row Id="13" PostTypeId="2" ParentId="1" CreationDate="2010-09-01T19:45:33.183" Score="118" ViewCount="" Body="&lt;p&gt;Only if the comment describes what the code is doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I wanted to know what was happening in a method or block, I would read the code. I would hope, anyway, that any developers working on a given project were at least familiar enough with the development language to read what is written and understand what it is doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In some cases of extreme optimization, you might be using techniques that makes it difficult for someone to follow what your code is doing. In these cases, comments can and should be used to not only explain why you have such optimizations, but what the code is doing. A good rule of thumb would be to have someone else (or multiple other people) familiar with the implementation language and project look at your code - if they can't understand both the why and the how, then you should comment both the why and the how.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, what's not clear in the code is why you have done something. If you take an approach that might not be obvious to others, you should have a comment that explains why you made the decisions that you did. I would suspect that you might not even realize that a comment is needed until after something like a code review, where people want to know why you did X instead of Y - you can capture your answer in the code for everyone else who looks at it in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most important thing, though, is to change your comments when you change your code. If you change an algorithm, be sure to update the comments with why you went with algorithm X over Y. Stale comments are an even bigger code smell.&lt;/p&gt;&#xA;" OwnerUserId="4" LastEditorUserId="4" LastEditorDisplayName="" LastEditDate="2010-09-14T22:32:25.190" LastActivityDate="2010-09-14T22:32:25.190" CommunityOwnedDate="2011-01-31T09:04:54.130" CommentCount="24" />
  <row Id="14" PostTypeId="2" ParentId="2" CreationDate="2010-09-01T19:45:37.203" Score="0" ViewCount="" Body="&lt;p&gt;Like Fishtoaster say, it's hard to quantify. And it's depend on the type of application, end user and many others criteria that can make you choose between a language and another one!&lt;/p&gt;&#xA;" OwnerUserId="28" LastActivityDate="2010-09-01T19:45:37.203" CommentCount="1" />
  <row Id="15" PostTypeId="2" ParentId="5" CreationDate="2010-09-01T19:46:18.127" Score="2" ViewCount="" Body="&lt;p&gt;For Mac, I love and use &lt;a href=&quot;http://macromates.com/&quot; rel=&quot;nofollow&quot;&gt;TextMate&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-01T19:46:18.127" CommunityOwnedDate="2011-03-08T02:44:19.193" CommentCount="2" />
  <row Id="16" PostTypeId="1" CreationDate="2010-09-01T19:46:45.303" Score="16" ViewCount="570" Body="&lt;p&gt;I have read a few articles on Internet about programming language choice in the enterprise. Recently many dynamic typed languages have been popular, i.e. Ruby, Python, PHP and Erlang. But many enterprises still stay with static typed languages like C, C++, C# and Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, one of the benefits of static typed languages is that programming errors are catched earlier, at compile time, rather than at run time. But there are also advantages with dynamic typed languages. (&lt;a href=&quot;http://en.wikipedia.org/wiki/Static_typing#Dynamic_typing&quot; rel=&quot;nofollow&quot;&gt;more on Wikipedia&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main reason why enterprises don't start to use languages like Erlang, Ruby and Python, seem to be the fact that they are dynamic typed. That also seem to be the main reason why people on StackOverflow decide against Erlang. See &lt;a href=&quot;http://stackoverflow.com/questions/2199368/why-did-you-decide-against-using-erlang&quot;&gt;Why did you decide &quot;against&quot; Erlang&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there seem to be a strong criticism against dynamic typing in the enterprises, but I don't really get it why it is &lt;strong&gt;that&lt;/strong&gt; strong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Really, why is there so much cristicism against dynamic typing in the enterprises? Does it really affect the cost of projects that much, or what? But maybe I'm wrong.&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-09-18T16:05:33.697" LastActivityDate="2010-09-19T16:33:13.410" Title="Do dynamic typed languages deserve all the criticism?" Tags="&lt;programming-languages&gt;&lt;dynamic-typing&gt;&lt;static-typing&gt;&lt;type-system&gt;" AnswerCount="8" CommentCount="6" FavoriteCount="7" />
  <row Id="17" PostTypeId="2" ParentId="2" CreationDate="2010-09-01T19:46:47.317" Score="11" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/index.html&quot; rel=&quot;nofollow&quot;&gt;TIOBE&lt;/a&gt; has a pretty good page - you can hunt down the algorithm they use, involving google and youtube searches.&lt;/p&gt;&#xA;" OwnerUserId="33" LastActivityDate="2010-09-01T19:46:47.317" CommentCount="2" />
  <row Id="18" PostTypeId="1" AcceptedAnswerId="25" CreationDate="2010-09-01T19:47:11.323" Score="6" ViewCount="163" Body="&lt;p&gt;At first glance, I'd say a good programming team needs to understand the following matters:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The details of the core language / framework&lt;/li&gt;&#xA;&lt;li&gt;HTML, (asynchronous) javascript&lt;/li&gt;&#xA;&lt;li&gt;SQL / data model&lt;/li&gt;&#xA;&lt;li&gt;Usability / UI design&lt;/li&gt;&#xA;&lt;li&gt;Security&lt;/li&gt;&#xA;&lt;li&gt;Project management.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If this team is not complete: what is needed?&lt;/p&gt;&#xA;" OwnerUserId="9" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T12:46:38.027" LastActivityDate="2010-09-12T12:46:38.027" Title="Which (programming) specialities are needed in a good web development team?" Tags="&lt;team&gt;&lt;web-development&gt;" AnswerCount="4" FavoriteCount="2" />
  <row Id="19" PostTypeId="1" AcceptedAnswerId="58" CreationDate="2010-09-01T19:47:49.327" Score="12" ViewCount="709" Body="&lt;p&gt;How much does a programmer expect to earn a developer (senior and junior) in the UK? I understand that this may vary by location (I bet that salary in London would be higher than in Belfast due to higher cost of life), but how much should I expect (and ask for) if I look for a job there?&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T22:06:35.587" LastActivityDate="2010-09-29T22:06:35.587" ClosedDate="2010-12-14T19:23:05.803" Title="Programmer's salary in UK" Tags="&lt;jobs&gt;&lt;salary&gt;" AnswerCount="3" CommentCount="7" FavoriteCount="8" />
  <row Id="20" PostTypeId="2" ParentId="9" CreationDate="2010-09-01T19:48:20.170" Score="5" ViewCount="" Body="&lt;p&gt;Stress.  I give in to temptation and surf StackExchange/Reddit until the last possible minute, then bang out what needs to get done.  Nothing like a 1 hour deadline to keep you focused.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T19:48:20.170" CommunityOwnedDate="2011-01-04T21:22:43.957" CommentCount="1" />
  <row Id="21" PostTypeId="2" ParentId="5" CreationDate="2010-09-01T19:49:06.313" Score="2" ViewCount="" Body="&lt;p&gt;There are a lot of editor program you can use.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;notepad&lt;/li&gt;&#xA;&lt;li&gt;notepad2&lt;/li&gt;&#xA;&lt;li&gt;notepad++&lt;/li&gt;&#xA;&lt;li&gt;editplus2&lt;/li&gt;&#xA;&lt;li&gt;sublime text&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some editors ate simple like notepad, while others are.more advanced, like notepad++. Just try one and see if it works for you.&lt;/p&gt;&#xA;" OwnerUserId="23" LastActivityDate="2010-09-01T19:49:06.313" CommunityOwnedDate="2011-03-08T02:44:19.193" />
  <row Id="22" PostTypeId="2" ParentId="9" CreationDate="2010-09-01T19:49:22.397" Score="6" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;If you really cannot avoid distraction, then learn something&lt;/li&gt;&#xA;&lt;li&gt;Ask a colleague whether they need a hand - it'll repay itself later&lt;/li&gt;&#xA;&lt;li&gt;Turn on some music&lt;/li&gt;&#xA;&lt;li&gt;Work on a different part of the same project&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9" LastActivityDate="2010-09-01T19:49:22.397" CommunityOwnedDate="2011-01-04T21:22:43.957" CommentCount="1" />
  <row Id="23" PostTypeId="2" ParentId="9" CreationDate="2010-09-01T19:49:46.223" Score="8" ViewCount="" Body="&lt;p&gt;Hmm, I'm only able to focus if I'm really interested in what I'm doing. For boring activities I use a &quot;hopping&quot; method, jumping frequently from the actual work to something different (even web browsing), and so I maintain a reasonable productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, a basic thing to understand (especially for employers!) is that you can't be focused indefinitely. Our brain will reach a climax of concentration after some time, will keep it for some time (it's that time when you have that full comprehensive vision of your work!) but then it will drop quickly. This attention pattern may vary a lot on individual basis, but a cycle usually lasts 45 minutes.&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-01T20:07:09.027" LastActivityDate="2010-09-01T20:07:09.027" CommunityOwnedDate="2011-01-04T21:22:43.957" CommentCount="4" />
  <row Id="24" PostTypeId="2" ParentId="9" CreationDate="2010-09-01T19:50:00.307" Score="26" ViewCount="" Body="&lt;p&gt;Never, but NEVER, open StackOverflow!&lt;/p&gt;&#xA;" OwnerUserId="31" LastActivityDate="2010-09-01T19:50:00.307" CommunityOwnedDate="2011-01-04T21:22:43.957" CommentCount="5" />
  <row Id="25" PostTypeId="2" ParentId="18" CreationDate="2010-09-01T19:50:32.013" Score="6" ViewCount="" Body="&lt;p&gt;Customer (or an advocate of some sort).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, someone that can say, &quot;Yes, you're building what I want and it's going to solve my problem.&quot; or that the team can go to when they have questions about how something is supposed to work.  That may or may not be the same person that is doing Project Management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, you're missing out on a QA person there.  You can't really depend on the developers to adequately test - they're usually too close to the code and the normal response for developers is to test happy path stuff, not doing weird crap like copy pasting War &amp;amp; Peace into a textbox and seeing what the application does.&lt;/p&gt;&#xA;" OwnerUserId="21" LastActivityDate="2010-09-01T19:50:32.013" />
  <row Id="26" PostTypeId="2" ParentId="4" CreationDate="2010-09-01T19:50:53.817" Score="9" ViewCount="" Body="&lt;p&gt;Pretty much everybody with a computer has encountered the concept of &quot;bugs&quot; these days, so you might start there.  &quot;What's the most annoying way an application has ever failed on you?  Multiply that by ten, and you'll have our users' experience if we don't devote enough resources to testing and maintenance.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And don't underestimate the value of establishing a good working relationship with the non-programmers.  If you can establish that your judgment may be trusted, they'll take you seriously when you sound the alarm that X is going to fail spectacularly if you don't do Y pronto, even if they don't completely understand your reasoning.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-01T19:50:53.817" />
  <row Id="27" PostTypeId="2" ParentId="5" CreationDate="2010-09-01T19:51:02.560" Score="25" ViewCount="" Body="&lt;h2&gt;Vim&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;(There can be only one)&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T19:51:02.560" CommunityOwnedDate="2011-03-08T02:44:19.193" CommentCount="8" />
  <row Id="28" PostTypeId="1" AcceptedAnswerId="43" CreationDate="2010-09-01T19:51:41.407" Score="12" ViewCount="482" Body="&lt;p&gt;Some people are not meant for programming, some are meant only for programming, and others fit somewhere in the middle. It's a difficult profession if you're not passionate about it, and I'd like to know what personal traits can be considered conducive to being successful (and happy) as a programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition, what personal traits should be considered &quot;red flags&quot; as to someone's likelihood to be unsuccessful (or unhappy) as a programmer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Note: I'm looking for answers regarding programming as a whole, rather than any specific area of software development. Think practical requirements.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="13" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:51:17.090" LastActivityDate="2010-10-02T15:51:17.090" Title="What personal qualities make for a successful programmer?" Tags="&lt;great-programmer&gt;&lt;personal-traits&gt;" AnswerCount="10" FavoriteCount="5" />
  <row Id="29" PostTypeId="2" ParentId="5" CreationDate="2010-09-01T19:51:59.580" Score="0" ViewCount="" Body="&lt;p&gt;I enjoy using &lt;a href=&quot;http://www.scintilla.org/SciTE.html&quot; rel=&quot;nofollow&quot;&gt;SciTE&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For INI files it supports text folding (at headers).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also includes simple regex for find/replace and &#xA;syntax highlighting for a number of languages by default.&lt;/p&gt;&#xA;" OwnerUserId="39" LastEditorUserId="39" LastEditorDisplayName="" LastEditDate="2010-09-02T00:33:58.267" LastActivityDate="2010-09-02T00:33:58.267" CommunityOwnedDate="2011-03-08T02:44:19.193" />
  <row Id="31" PostTypeId="2" ParentId="5" CreationDate="2010-09-01T19:53:35.823" Score="3" ViewCount="" Body="&lt;p&gt;Sublime Text is awesome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like Textpad a lot as well.&lt;/p&gt;&#xA;" OwnerUserId="43" LastActivityDate="2010-09-01T19:53:35.823" CommunityOwnedDate="2011-03-08T02:44:19.193" />
  <row Id="33" PostTypeId="2" ParentId="28" CreationDate="2010-09-01T19:54:16.397" Score="6" ViewCount="" Body="&lt;p&gt;Personnally, I think a self-learner is a good quality, and since the technologies can evolve quite rapidly, there's always something new to learn!&lt;/p&gt;&#xA;" OwnerUserId="28" LastActivityDate="2010-09-01T19:54:16.397" />
  <row Id="34" PostTypeId="2" ParentId="28" CreationDate="2010-09-01T19:54:46.700" Score="6" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;willing to listen&lt;/li&gt;&#xA;&lt;li&gt;willing to learn&lt;/li&gt;&#xA;&lt;li&gt;a logical brain&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9" LastActivityDate="2010-09-01T19:54:46.700" />
  <row Id="35" PostTypeId="1" CreationDate="2010-09-01T19:54:59.647" Score="32" ViewCount="4162" Body="&lt;p&gt;We know this question's going to get asked, so let's get it started early.  What's your favorite programming or software development related joke?&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:46:11.653" LastActivityDate="2011-05-26T10:11:00.653" CommunityOwnedDate="2010-09-23T20:40:04.303" ClosedDate="2010-12-30T20:58:08.103" Title="What's your favorite programming joke?" Tags="&lt;favorite&gt;&lt;humor&gt;&lt;joke&gt;" AnswerCount="43" CommentCount="8" FavoriteCount="23" />
  <row Id="36" PostTypeId="2" ParentId="5" CreationDate="2010-09-01T19:55:49.600" Score="5" ViewCount="" Body="&lt;p&gt;I'm still using &lt;strong&gt;TextPad&lt;/strong&gt; on Windows. Unfortunately it is no longer actively developed, but I don't like today's common choices like Notepad++ or UltraEdit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On Linux, I can only use GEdit, other classic Unix &quot;editors&quot; are a pain.&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-23T13:13:21.377" LastActivityDate="2010-09-23T13:13:21.377" CommunityOwnedDate="2011-03-08T02:44:19.193" CommentCount="4" />
  <row Id="37" PostTypeId="2" ParentId="28" CreationDate="2010-09-01T19:55:58.350" Score="7" ViewCount="" Body="&lt;p&gt;The first thing that comes to my mind is dedication.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best software developers that I know are people who stick with it, fighting to get the job done. They might be up against tight deadlines, so they'll try to get more reasonable ones. They might be working with less then ideal conditions, but they still show up every day and get the job done to the best of their ability.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-01T19:55:58.350" CommentCount="1" />
  <row Id="38" PostTypeId="1" AcceptedAnswerId="54" CreationDate="2010-09-01T19:57:03.197" Score="6" ViewCount="131" Body="&lt;p&gt;Where waterfall commonly includes:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Requirements&lt;/li&gt;&#xA;&lt;li&gt;Functional design&lt;/li&gt;&#xA;&lt;li&gt;Technical design&lt;/li&gt;&#xA;&lt;li&gt;Build&lt;/li&gt;&#xA;&lt;li&gt;Test&lt;/li&gt;&#xA;&lt;li&gt;Review&lt;/li&gt;&#xA;&lt;li&gt;(Deploy)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;And iterations across this list. If I forgot a step, let me know.&lt;/p&gt;&#xA;" OwnerUserId="9" LastActivityDate="2010-09-10T02:27:31.353" Title="How much effort should be put in each part of a waterfall project?" Tags="&lt;project-management&gt;&lt;waterfall&gt;" AnswerCount="2" />
  <row Id="39" PostTypeId="1" CreationDate="2010-09-01T19:57:19.163" Score="106" ViewCount="18701" Body="&lt;p&gt;What's your favourite quote about programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;One quote per answer&lt;/strong&gt;, and please &lt;a href=&quot;http://programmers.stackexchange.com/search?q=inquestion:39+your+search+terms+here&quot;&gt;check for duplicates&lt;/a&gt; before posting!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Related:&lt;/em&gt; &lt;a href=&quot;http://stackoverflow.com/questions/58640/great-programming-quotes-closed&quot;&gt;Great programming quotes&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="40" LastActivityDate="2011-01-27T21:32:08.727" CommunityOwnedDate="2010-09-04T10:57:01.747" ClosedDate="2011-02-07T13:10:26.083" Title="What's your favourite quote about programming?" Tags="&lt;favorite&gt;&lt;quotes&gt;" AnswerCount="166" CommentCount="9" FavoriteCount="114" />
  <row Id="40" PostTypeId="2" ParentId="35" CreationDate="2010-09-01T19:57:38.207" Score="24" ViewCount="" Body="&lt;p&gt;A SQL query goes into a bar, walks up to two tables and asks, &quot;Can I join you?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(From &lt;a href=&quot;http://stackoverflow.com/questions/234075/what-is-your-best-programmer-joke/234399#234399&quot;&gt;What is your best programmer joke?&lt;/a&gt; on Stack Overflow)&lt;/p&gt;&#xA;" OwnerUserId="27" LastActivityDate="2010-09-01T19:57:38.207" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="1" />
  <row Id="41" PostTypeId="2" ParentId="9" CreationDate="2010-09-01T19:57:48.190" Score="6" ViewCount="" Body="&lt;p&gt;I know &lt;a href=&quot;http://en.wikipedia.org/wiki/Test-driven_development&quot; rel=&quot;nofollow&quot;&gt;Test Driven Development&lt;/a&gt; (TDD) isn't to everyone's taste, but one of the reasons I like to practice TDD is to help me get over the &quot;humps&quot; in the day. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I find myself getting distracted, I can add a failing unit test that tests some tiny thing and get going again, or I can crack open code and take a look at refactoring it, or renaming some variable or function. Once I get started on that, I can typically be productive again. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using TDD means that I have lots of &quot;mini&quot; goals in the day, which help me get to the bigger goals.&lt;/p&gt;&#xA;" OwnerUserId="38" LastEditorUserId="38" LastEditorDisplayName="" LastEditDate="2010-09-01T22:32:06.070" LastActivityDate="2010-09-01T22:32:06.070" CommunityOwnedDate="2011-01-04T21:22:43.957" CommentCount="2" />
  <row Id="42" PostTypeId="1" AcceptedAnswerId="110" CreationDate="2010-09-01T19:58:10.203" Score="15" ViewCount="312" Body="&lt;p&gt;We've all had them, managers who have either come from sales or last looked at code 10 or more years ago but think they know how to write code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What can I do to give the impression that I'm grateful for his intervention, but keep it as short as possible so I can get on with my work?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, should I be engaging more with the manager to educate him/her with modern coding techniques and practices? After all, a manager who understands these will be able to talk sensibly to clients and more senior management when discussing the project and its timescales.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-12-13T23:45:54.193" Title="How do I cope with a manager who’s always interfering in what I do, but doesn’t really understand it?" Tags="&lt;micro-management&gt;&lt;non-technical-manager&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="2" />
  <row Id="43" PostTypeId="2" ParentId="28" CreationDate="2010-09-01T19:58:24.733" Score="18" ViewCount="" Body="&lt;p&gt;What makes a good programmer:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A logical mindset&lt;/li&gt;&#xA;&lt;li&gt;Being able to sit for 8 hours a day.&lt;/li&gt;&#xA;&lt;li&gt;Attention to detail&lt;/li&gt;&#xA;&lt;li&gt;Able to self-teach&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What makes a good &lt;em&gt;developer&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Able to deal with people well&lt;/li&gt;&#xA;&lt;li&gt;Good communication skills&lt;/li&gt;&#xA;&lt;li&gt;Self-driven&lt;/li&gt;&#xA;&lt;li&gt;That ability to think like a non-developer&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T19:58:24.733" CommentCount="1" />
  <row Id="44" PostTypeId="1" CreationDate="2010-09-01T19:58:47.137" Score="21" ViewCount="929" Body="&lt;p&gt;I am finishing my college degree in programming soon and I was wondering if it was worth it to get certification like the PHP certification of Zend and the SCJP certification of Sun. Will it help me get a better job and/or a better internship ?&lt;/p&gt;&#xA;" OwnerUserId="41" LastEditorUserId="1256" LastEditorDisplayName="" LastEditDate="2011-03-25T20:46:41.203" LastActivityDate="2011-03-25T20:46:41.203" Title="Are certifications worth it?" Tags="&lt;certification&gt;&lt;zend&gt;&lt;scjp&gt;" AnswerCount="10" FavoriteCount="6" />
  <row Id="45" PostTypeId="2" ParentId="35" CreationDate="2010-09-01T19:59:21.110" Score="59" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A man flying in a hot air balloon&#xA;  suddenly realizes he’s lost. He&#xA;  reduces height and spots a man down&#xA;  below. He lowers the balloon further&#xA;  and shouts to get directions, &quot;Excuse&#xA;  me, can you tell me where I am?&quot; &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The man below says: &quot;Yes. You're in a&#xA;  hot air balloon, hovering 30 feet&#xA;  above this field.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;You must work in Information&#xA;  Technology,&quot; says the balloonist.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;I do&quot; replies the man. &quot;How did you&#xA;  know?&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;Well,&quot; says the balloonist,&#xA;  &quot;everything you have told me is&#xA;  technically correct, but It's of no&#xA;  use to anyone.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The man below replies, &quot;You must work&#xA;  in management.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;I do,&quot; replies the balloonist, &quot;But&#xA;  how'd you know?&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;Well&quot;, says the man, &quot;you don’t know&#xA;  where you are, or where you’re going,&#xA;  you expect me to be able to help.&#xA;  You’re in the same position you were&#xA;  before we met, but now it’s my fault.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;... from stackoverflow. :)&lt;/p&gt;&#xA;" OwnerUserId="9" LastActivityDate="2010-09-01T19:59:21.110" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="1" />
  <row Id="46" PostTypeId="2" ParentId="2" CreationDate="2010-09-01T19:59:21.863" Score="13" ViewCount="" Body="&lt;p&gt;Stackoverflow.com. As of now,&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;105498 questions tagged by C#.&lt;/li&gt;&#xA;&lt;li&gt;64906 questions tagged by Java.&lt;/li&gt;&#xA;&lt;li&gt;56605 questions tagged by PHP.&lt;/li&gt;&#xA;&lt;li&gt;48831 questions tagged by Javascript.&lt;/li&gt;&#xA;&lt;li&gt;40144 questions tagged by C++.&lt;/li&gt;&#xA;&lt;li&gt;33114 questions tagged by Python.&lt;/li&gt;&#xA;&lt;li&gt;18311 questions tagged by Objective C.&lt;/li&gt;&#xA;&lt;li&gt;17927 questions tagged by C.&lt;/li&gt;&#xA;&lt;li&gt;13026 questions tagged by Ruby.&lt;/li&gt;&#xA;&lt;li&gt;10774 questions tagged by vb.net&lt;/li&gt;&#xA;&lt;li&gt;6479 questions tagged by Perl.&lt;/li&gt;&#xA;&lt;li&gt;5797 questions tagged by Delphi.&lt;/li&gt;&#xA;&lt;li&gt;1409 questions tagged by Haskell.&lt;/li&gt;&#xA;&lt;li&gt;1314 questions tagged by F#.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-01T20:22:03.220" LastActivityDate="2010-09-01T20:22:03.220" CommentCount="11" />
  <row Id="47" PostTypeId="2" ParentId="28" CreationDate="2010-09-01T19:59:35.140" Score="4" ViewCount="" Body="&lt;p&gt;My two cents:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;curiosity&lt;/li&gt;&#xA;&lt;li&gt;stubbornness&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="52" LastActivityDate="2010-09-01T19:59:35.140" />
  <row Id="48" PostTypeId="2" ParentId="28" CreationDate="2010-09-01T20:00:23.110" Score="4" ViewCount="" Body="&lt;p&gt;Programmers&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;attention to detail&lt;/li&gt;&#xA;&lt;li&gt;ability to focus&lt;/li&gt;&#xA;&lt;li&gt;ability to test their work&lt;/li&gt;&#xA;&lt;li&gt;ability to explain themselves and have their work challenged by others&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="51" LastActivityDate="2010-09-01T20:00:23.110" />
  <row Id="49" PostTypeId="1" AcceptedAnswerId="910" CreationDate="2010-09-01T20:01:12.387" Score="18" ViewCount="777" Body="&lt;p&gt;During my four years at university we have been using much functional programming in several functional programming languages. But I have also used much object oriented programming to, and in fact I use object oriented languages more when doing my own small project to prepare for my first job. But I often wish that I was coding in a functional programming language when doing these projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, when looking for a job, it is very rare to see a job where knowledge of a functional programming language is required.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why isn't functional programming languages used more in the industry? There is quite much news about functional programming languages these days, so I wonder if functional programming is catching on in the industry now?&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-04T19:58:03.337" LastActivityDate="2011-04-07T19:19:12.547" Title="Why isn't functional programming more popular in the industry? Does it catch on now?" Tags="&lt;programming-languages&gt;&lt;functional-programming&gt;&lt;object-oriented&gt;&lt;paradigms&gt;" AnswerCount="6" FavoriteCount="5" />
  <row Id="50" PostTypeId="2" ParentId="9" CreationDate="2010-09-01T20:01:18.783" Score="2" ViewCount="" Body="&lt;p&gt;I work from home, so focus is a constant struggle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Music, caffeine, and good eating habits go a long way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I still can't focus after that then I probably wasn't meant to be focusing right then and I go do something else for a bit and come back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having multiple projects/pieces of work to do makes a big difference too. If one gets boring, switching to another for a few hours is often a good quick fix.&lt;/p&gt;&#xA;" OwnerUserId="12" LastActivityDate="2010-09-01T20:01:18.783" CommunityOwnedDate="2011-01-04T21:22:43.957" />
  <row Id="51" PostTypeId="1" AcceptedAnswerId="951" CreationDate="2010-09-01T20:01:25.570" Score="2" ViewCount="134" Body="&lt;p&gt;And do you know a tool which meets those demands?&lt;/p&gt;&#xA;" OwnerUserId="9" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-10-12T01:37:19.010" LastActivityDate="2010-10-12T01:37:19.010" Title="What demands should be placed on source repository / versioning tools?" Tags="&lt;version-control&gt;" AnswerCount="1" CommentCount="3" FavoriteCount="1" />
  <row Id="52" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T20:02:42.657" Score="1" ViewCount="" Body="&lt;p&gt;I'm not sure if he's the originator of this quote, but I attended a session at a conference once where Alex Pukinskis said this and I love it!&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Untested code has no business value -&#xA;  Alex Pukinskis&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-01T20:02:42.657" CommunityOwnedDate="2010-09-04T10:57:01.747" />
  <row Id="53" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T20:03:09.650" Score="39" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Commenting your code is like cleaning&#xA;  your bathroom - you never want to do&#xA;  it, but it really does create a more&#xA;  pleasant experience for you and your&#xA;  guests.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;mdash; Ryan Campbell&lt;/p&gt;&#xA;" OwnerUserId="41" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-27T15:19:26.050" LastActivityDate="2010-09-27T15:19:26.050" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="4" />
  <row Id="54" PostTypeId="2" ParentId="38" CreationDate="2010-09-01T20:03:15.860" Score="2" ViewCount="" Body="&lt;p&gt;It depends on many factors, including:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The domain (eg, I'd spend more time on a defense contract's requirements than I would on a Twitter clone)&lt;/li&gt;&#xA;&lt;li&gt;The developers (if they have experience building similar systems with similar technology, for example, I might spend less time on the design).&lt;/li&gt;&#xA;&lt;li&gt;The customers (How likely the requirements are to change affects how long that phase will take)&lt;/li&gt;&#xA;&lt;li&gt;The criticality of the system (I'll spend more time testing the space shuttle's launch system than I will the StackExchange rep system).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'd give you a rough breakdown of what percent of the total effort I'd give to each section, but it'd have a margin of error +/- 10% on each based on the above factors so it'd be kinda meaningless.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T20:03:15.860" CommentCount="1" />
  <row Id="55" PostTypeId="2" ParentId="44" CreationDate="2010-09-01T20:03:45.160" Score="2" ViewCount="" Body="&lt;p&gt;Some employers look almost strictly to certifications and experience. But personnally I think certification only show that you knew very well the technology at a certain point in time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it's always look good on a resume!&lt;/p&gt;&#xA;" OwnerUserId="28" LastActivityDate="2010-09-01T20:03:45.160" />
  <row Id="56" PostTypeId="2" ParentId="1" CreationDate="2010-09-01T20:04:18.167" Score="23" ViewCount="" Body="&lt;p&gt;I declare your co-worker a heretic!  Where are my heretic-burnin' boots?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obsessive commenting is bad and a maintenance headache, and comments are no replacement for well-named methods, classes, variables, etc.  But sometimes putting &lt;i&gt;why&lt;/i&gt; something is the way it is can be immensely valuable for the poor idiot who has to maintain the code in six months -- particularly when that poor idiot winds up being you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some actual comments from the code I'm working on:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&#xA;    // If this happens, somebody's been screwing around with the database definitions and&#xA;    // has removed the restriction that a given alarm may have only one entry in the &#xA;    // notifications table.  Bad maintenance programmer!  Bad!  No biscuit!&#xA;&#xA;&#xA;&#xA;    // If an alert is active on our side but inactive on theirs, that might mean&#xA;    // they closed the alert.  (Or that we just haven't told them about it yet.)  The&#xA;    // logic comes later; for now, we'll just compile it in a list.&#xA;&#xA;&#xA;&#xA;    // If we know for a fact that an alarm isn't getting through, we're going to whine pretty&#xA;    // aggressively about it until it gets fixed.&#xA;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-01T20:04:18.167" CommunityOwnedDate="2011-01-31T09:04:54.130" CommentCount="6" />
  <row Id="57" PostTypeId="1" AcceptedAnswerId="66" CreationDate="2010-09-01T20:04:22.617" Score="27" ViewCount="1259" Body="&lt;p&gt;The coding standards for the code hosted in drupal.org suggest to use two spaces to indent the code; other sites suggest to use tabs to indent the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the proper indentation character for everything, and in every situation?&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="99" LastEditorDisplayName="" LastEditDate="2010-09-06T06:12:14.163" LastActivityDate="2011-01-12T01:43:41.490" Title="Tabs versus spaces—what is the proper indentation character for everything, in every situation, ever?" Tags="&lt;holy-war&gt;&lt;style-guide&gt;&lt;indentation&gt;&lt;usage&gt;" AnswerCount="18" CommentCount="7" FavoriteCount="4" />
  <row Id="58" PostTypeId="2" ParentId="19" CreationDate="2010-09-01T20:04:32.020" Score="13" ViewCount="" Body="&lt;p&gt;Have a look at &lt;a href=&quot;http://www.itjobswatch.co.uk/&quot; rel=&quot;nofollow&quot;&gt;IT Jobs Watch&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-01T20:04:32.020" CommentCount="3" />
  <row Id="59" PostTypeId="2" ParentId="9" CreationDate="2010-09-01T20:04:38.087" Score="13" ViewCount="" Body="&lt;p&gt;One word: Workspaces&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I develop in Firefox but browse, etc in Chrome. And since I use Ubuntu I have Pandora, email, Stackoverflow etc open in one workspace while I have my editor, dev browser and mysql client gui open in another. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;By keeping the two workspaces separate I tend to be able to focus more on actual programming and I don't distracted by having all of those shiny tabs to click on to check the latest status of my StackExchange sites, etc.&lt;/p&gt;&#xA;" OwnerUserId="53" LastActivityDate="2010-09-01T20:04:38.087" CommunityOwnedDate="2011-01-04T21:22:43.957" CommentCount="2" />
  <row Id="60" PostTypeId="2" ParentId="35" CreationDate="2010-09-01T20:04:53.100" Score="-3" ViewCount="" Body="&lt;p&gt;A class member is a penis with a bowtie&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T20:04:53.100" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="4" />
  <row Id="61" PostTypeId="2" ParentId="44" CreationDate="2010-09-01T20:05:07.640" Score="2" ViewCount="" Body="&lt;p&gt;I do not think that you will get better job if you have certification. However, you will get edge if another candidate has same qualities as you but you also have certification. And, since certified experts do give some advantage to their company, your job offer might as well require one. E.g. Microsoft requires certain number of certified people for company to be Gold partner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally still take certification exams although I am not looking for job. I see it as good way to grade your general knowledge and invest in yourself a little.&lt;/p&gt;&#xA;" OwnerUserId="52" LastActivityDate="2010-09-01T20:05:07.640" />
  <row Id="62" PostTypeId="2" ParentId="49" CreationDate="2010-09-01T20:07:40.383" Score="11" ViewCount="" Body="&lt;p&gt;Because the biggest problem in software development these days is the ability to manage complexity.  This is not the focus of most functional programming languages.  As such, languages that &lt;em&gt;do&lt;/em&gt; make that a priority (namely the more popular OOP languages) tend to just steal some of the cooler features that come out of the more academic functional languages and so stay on top.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T20:07:40.383" CommentCount="4" />
  <row Id="63" PostTypeId="2" ParentId="57" CreationDate="2010-09-01T20:07:47.153" Score="8" ViewCount="" Body="&lt;p&gt;I do not think that there is such thing as proper indentation (at least not without minor war).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I like four spaces. They enable me to read code much faster and they look same in every editor - even Vi.&lt;/p&gt;&#xA;" OwnerUserId="52" LastActivityDate="2010-09-01T20:07:47.153" CommentCount="2" />
  <row Id="64" PostTypeId="2" ParentId="42" CreationDate="2010-09-01T20:08:25.587" Score="1" ViewCount="" Body="&lt;p&gt;I'd not educate if there has been a code history for him / her. The knowledge of development issues should have stuck in the mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Politely ask him/her whether you could discuss whatever he has in mind over lunch.&lt;/p&gt;&#xA;" OwnerUserId="9" LastActivityDate="2010-09-01T20:08:25.587" />
  <row Id="65" PostTypeId="2" ParentId="35" CreationDate="2010-09-01T20:08:43.887" Score="4" ViewCount="" Body="&lt;p&gt;From the &lt;a href=&quot;http://stackoverflow.com/questions/234075/what-is-your-best-programmer-joke/234399#234399&quot;&gt;What is your best programmer joke&lt;/a&gt; thread on stack overflow&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;To understand what recursion is, you must first understand recursion.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-01T20:08:43.887" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="2" />
  <row Id="66" PostTypeId="2" ParentId="57" CreationDate="2010-09-01T20:08:53.393" Score="46" ViewCount="" Body="&lt;p&gt;Spaces are the one true indentation mechanism. A tab could be a different number of columns depending on your environment, but a space is always one column. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of how many spaces (or tabs) constitutes indentation, it's more important to be consistent throughout your code than to use any specific tab stop value.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-01T20:08:53.393" CommentCount="8" />
  <row Id="67" PostTypeId="1" AcceptedAnswerId="83" CreationDate="2010-09-01T20:09:08.543" Score="62" ViewCount="3202" Body="&lt;blockquote&gt;&#xA;  &lt;h2&gt;Moderator Message&lt;/h2&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;This question already has nearly 40 answers. Therefore, please consider whether &lt;em&gt;your&lt;/em&gt; answer is going to provide anything new. Please take a moment to review &lt;em&gt;all&lt;/em&gt; the answers before posting&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Are there any good programming blogs, both for general programming and programming in .NET languages?&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-04-08T19:34:33.263" LastActivityDate="2011-04-15T13:46:24.130" CommunityOwnedDate="2010-09-23T12:50:11.533" Title="Can you recommend some good programming blogs?" Tags="&lt;programming-languages&gt;&lt;blogs&gt;" AnswerCount="37" CommentCount="1" FavoriteCount="71" />
  <row Id="68" PostTypeId="2" ParentId="42" CreationDate="2010-09-01T20:09:25.017" Score="3" ViewCount="" Body="&lt;p&gt;I usually just listen everything such person has to say. I agree to almost anything and I do it my way anyhow. Usually he never bothers to check.&lt;/p&gt;&#xA;" OwnerUserId="52" LastActivityDate="2010-09-01T20:09:25.017" CommentCount="1" />
  <row Id="69" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T20:09:31.297" Score="180" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Walking on water and developing software&#xA;  from a specification are easy if both&#xA;  are frozen.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;mdash; Edward V Berard&lt;/p&gt;&#xA;" OwnerUserId="9" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-27T14:43:09.513" LastActivityDate="2010-09-27T14:43:09.513" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="5" />
  <row Id="70" PostTypeId="2" ParentId="57" CreationDate="2010-09-01T20:10:33.457" Score="5" ViewCount="" Body="&lt;p&gt;I personally like to use tabs in everything, since each developer can control the amount of indentation per tab.  That way you get flexibility in display.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, I usually mimic whatever coding style is in the file to start with (since I spend a lot of time doing maintenance work).&lt;/p&gt;&#xA;" OwnerUserId="21" LastActivityDate="2010-09-01T20:10:33.457" CommentCount="1" />
  <row Id="71" PostTypeId="2" ParentId="67" CreationDate="2010-09-01T20:10:34.283" Score="3" ViewCount="" Body="&lt;p&gt;My .NET list is usually filed by going to &lt;a href=&quot;http://blogs.msdn.com&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com&lt;/a&gt; and adding anything that looks interesting. With time I just kick out those who are not that good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can always recommend &lt;a href=&quot;http://blog.jmedved.com&quot; rel=&quot;nofollow&quot;&gt;http://blog.jmedved.com&lt;/a&gt;. :)&lt;/p&gt;&#xA;" OwnerUserId="52" LastActivityDate="2010-09-01T20:10:34.283" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="72" PostTypeId="2" ParentId="57" CreationDate="2010-09-01T20:12:18.777" Score="44" ViewCount="" Body="&lt;p&gt;Now, of course, consistency matters more than either one, and a good IDE makes the differences negligible.  That said, the point of this thread is to be a holy war, so:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer tabs:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;They're a character specifically meant for indentation&lt;/li&gt;&#xA;&lt;li&gt;They allow developers with different preferences in indentation size to change how it's the code looks without changing the code (separation of data and presentation for the proverbial win!)&lt;/li&gt;&#xA;&lt;li&gt;It's impossible to half-indent something with tabs.  So when you copy code from some website that used 3 spaces into your 4-space indented file, you don't have to deal with misalignment.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T20:12:18.777" CommentCount="6" />
  <row Id="73" PostTypeId="1" CreationDate="2010-09-01T20:13:22.130" Score="11" ViewCount="170" Body="&lt;p&gt;We often receive last minute requests from the business asking for an extra feature to be implemented.  The project manager is usually responsible for filtering out these requests as &quot;must haves&quot; or &quot;nice to have&quot;, but there are cases where the business wants to squeeze all these features into a release.   Is there a good way to say NO to the business?  What steps can be taken to stop or minimize scope creep?&lt;/p&gt;&#xA;" OwnerUserId="45" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T12:49:47.067" LastActivityDate="2010-09-12T12:49:47.067" Title="How to manage scope creep?" Tags="&lt;project-management&gt;&lt;scope-creep&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="74" PostTypeId="2" ParentId="67" CreationDate="2010-09-01T20:13:23.660" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com&quot; rel=&quot;nofollow&quot;&gt;Coding Horror&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T20:13:23.660" CommunityOwnedDate="2010-09-23T12:50:11.533" CommentCount="5" />
  <row Id="75" PostTypeId="2" ParentId="67" CreationDate="2010-09-01T20:13:26.483" Score="13" ViewCount="" Body="&lt;p&gt;For a Windows programmer, &lt;a href=&quot;http://blogs.msdn.com/b/oldnewthing/&quot; rel=&quot;nofollow&quot;&gt;The Old New Thing&lt;/a&gt; by Raymond Chen.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-01T20:13:26.483" CommunityOwnedDate="2010-09-23T12:50:11.533" CommentCount="3" />
  <row Id="76" PostTypeId="2" ParentId="9" CreationDate="2010-09-01T20:13:43.987" Score="15" ViewCount="" Body="&lt;p&gt;Increments. I will pick something that I can do, even if it's a small task (i.e. modify comments in code). Pretty soon, the perfectionist in me wants to do more and more stuff and I'm back rolling.&lt;/p&gt;&#xA;" OwnerUserId="33" LastActivityDate="2010-09-01T20:13:43.987" CommunityOwnedDate="2011-01-04T21:22:43.957" CommentCount="2" />
  <row Id="78" PostTypeId="2" ParentId="5" CreationDate="2010-09-01T20:13:57.857" Score="2" ViewCount="" Body="&lt;p&gt;I personally like &lt;a href=&quot;http://www.pspad.com/&quot; rel=&quot;nofollow&quot;&gt;PSPad&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="52" LastActivityDate="2010-09-01T20:13:57.857" CommunityOwnedDate="2011-03-08T02:44:19.193" CommentCount="4" />
  <row Id="79" PostTypeId="2" ParentId="44" CreationDate="2010-09-01T20:14:09.743" Score="16" ViewCount="" Body="&lt;p&gt;The main purpose of certifications is to make money for the certifying body.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, I think certifications are more important the earlier on in your career you are. As a hiring manager, I never use certifications or the lack thereof to filter potential employees, but I do think some companies may look for these as proof that you know what you are doing. Personally, I want the job candidate to &lt;em&gt;show me&lt;/em&gt; they can do something (which is a whole other question, I realize!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The more experience you have, the more you can prove by examples that you know what you are doing and the less important certifications become.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-01T20:14:09.743" CommentCount="4" />
  <row Id="80" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T20:14:24.487" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://xkcd.com/303/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://imgs.xkcd.com/comics/compiling.png&quot; alt=&quot;xkcd &amp;quot;Compiling&amp;quot;&quot; title=&quot;'Are you stealing those LCDs?' 'Yeah, but I'm doing it while my code compiles.'&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="60" LastActivityDate="2010-10-08T11:33:15.333" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="3" />
  <row Id="81" PostTypeId="2" ParentId="42" CreationDate="2010-09-01T20:14:49.557" Score="3" ViewCount="" Body="&lt;p&gt;Group code reviews.  Public embarrassment is always good for curbing those sorts of habits. :)&lt;/p&gt;&#xA;" OwnerUserId="21" LastActivityDate="2010-09-01T20:14:49.557" />
  <row Id="82" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T20:15:18.993" Score="228" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;mdash; Brian W. Kernighan&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-27T14:42:45.300" LastActivityDate="2010-09-27T14:42:45.300" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="5" />
  <row Id="83" PostTypeId="2" ParentId="67" CreationDate="2010-09-01T20:15:23.643" Score="33" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Coding Horror&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.joelonsoftware.com/&quot; rel=&quot;nofollow&quot;&gt;Joel on Software&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.reddit.com/r/programming/&quot; rel=&quot;nofollow&quot;&gt;Proggit&lt;/a&gt; (Reddit programming)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://steve-yegge.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;Steve Yegge's blog&lt;/a&gt; (&lt;a href=&quot;http://sites.google.com/site/steveyegge2/blog-rants&quot; rel=&quot;nofollow&quot;&gt;Stevey's archived blog&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://thedailywtf.com/Default.aspx&quot; rel=&quot;nofollow&quot;&gt;The Daily WTF&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/b/oldnewthing/&quot; rel=&quot;nofollow&quot;&gt;The Old New Thing by Ramond Chen&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://smashingmagazine.com/&quot; rel=&quot;nofollow&quot;&gt;Smashing Magazine&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: also refer to &lt;a href=&quot;http://stackoverflow.com/questions/5119/what-are-the-best-rss-feeds-for-programmers-developers&quot;&gt;this thread on Stackoverflow&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-04-08T19:33:16.167" LastActivityDate="2011-04-08T19:33:16.167" CommunityOwnedDate="2010-09-23T12:50:11.533" CommentCount="9" />
  <row Id="84" PostTypeId="2" ParentId="5" CreationDate="2010-09-01T20:15:41.677" Score="4" ViewCount="" Body="&lt;p&gt;I use the &lt;a href=&quot;http://www.e-texteditor.com/&quot; rel=&quot;nofollow&quot;&gt;e text editor&lt;/a&gt;.  It is very much like TextMate for the Mac.  Makes switching between my Mac and PC easier.&lt;/p&gt;&#xA;" OwnerUserId="5" LastActivityDate="2010-09-01T20:15:41.677" CommunityOwnedDate="2011-03-08T02:44:19.193" />
  <row Id="85" PostTypeId="2" ParentId="35" CreationDate="2010-09-01T20:16:00.243" Score="19" ViewCount="" Body="&lt;p&gt;A &lt;code&gt;Foo&lt;/code&gt; walks into a &lt;code&gt;Bar&lt;/code&gt;...&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-01T20:16:00.243" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="2" />
  <row Id="86" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T20:16:24.600" Score="1" ViewCount="" Body="&lt;p&gt;This isn't strictly a programming quote and I don't recall where I first heard it, but I've repeated it plenty of times on the job:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If you don't test it, it doesn't work.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="17" LastEditorUserId="3270" LastEditorDisplayName="" LastEditDate="2010-09-22T02:11:02.540" LastActivityDate="2010-09-22T02:11:02.540" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="1" />
  <row Id="87" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T20:16:53.923" Score="29" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Keep it simple, stupid!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;mdash; &lt;a href=&quot;http://en.wikipedia.org/wiki/KISS_principle&quot; rel=&quot;nofollow&quot;&gt;The KISS principle&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-27T15:19:07.983" LastActivityDate="2010-09-27T15:19:07.983" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="2" />
  <row Id="89" PostTypeId="2" ParentId="73" CreationDate="2010-09-01T20:17:08.723" Score="5" ViewCount="" Body="&lt;p&gt;Ask them what they want you to drop so you'll have the time to squeeze this latest request in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've not had to do this for a while, and when I did, I used it sparingly otherwise it loses it's potency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found it most effective towards the end of the phase when you were tidying stuff up or doing the little improvements and tweaks you'd agreed on in the planning stage.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-01T20:17:08.723" CommentCount="1" />
  <row Id="90" PostTypeId="2" ParentId="73" CreationDate="2010-09-01T20:17:17.543" Score="6" ViewCount="" Body="&lt;p&gt;Establish a change request process before the project begins.  Say something to the effect of &quot;Here's what we're going to deliver.  If you want something else added, you can write it down, submit it, then we'll figure out how much it'll cost you, and you can decide whether you &lt;em&gt;really&lt;/em&gt; want it.&quot;&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T20:17:17.543" />
  <row Id="91" PostTypeId="2" ParentId="35" CreationDate="2010-09-01T20:17:24.860" Score="23" ViewCount="" Body="&lt;p&gt;Similar to the other &lt;a href=&quot;http://programmers.stackexchange.com/questions/35/whats-your-favorite-programming-joke/65#65&quot;&gt;joke about recursion&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Recursion&lt;/strong&gt; (&lt;em&gt;n.&lt;/em&gt;)&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;See &lt;em&gt;recursion&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-01T20:17:24.860" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="8" />
  <row Id="92" PostTypeId="2" ParentId="35" CreationDate="2010-09-01T20:18:01.740" Score="10" ViewCount="" Body="&lt;p&gt;C++ is such a perverted language.  You can let your friends have access to your private member(s).&lt;/p&gt;&#xA;" OwnerUserId="62" LastActivityDate="2010-09-01T20:18:01.740" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="3" />
  <row Id="94" PostTypeId="1" AcceptedAnswerId="157" CreationDate="2010-09-01T20:19:53.673" Score="17" ViewCount="556" Body="&lt;p&gt;I realize there have been lots of discussions about this type of thing and they often devolve into dogma around whether you ask the &quot;100 logical pirates&quot; type of questions or whether you get them to write &quot;fizz buzz&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm interested in what techniques and questions have been effective for &lt;em&gt;you&lt;/em&gt; when interviewing potential developers for jobs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One technique per answer so we can vote on them, please.&lt;/p&gt;&#xA;" OwnerUserId="38" LastEditorUserId="38" LastEditorDisplayName="" LastEditDate="2010-09-01T23:28:17.697" LastActivityDate="2010-09-21T13:55:40.090" Title="What techniques do you use when interviewing developers?" Tags="&lt;hiring&gt;&lt;interview-questions&gt;" AnswerCount="6" FavoriteCount="7" />
  <row Id="95" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T20:19:57.590" Score="35" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Programming is like sex: one mistake and you have to support it for the rest of your life.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; Michael Sinz&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="62" LastActivityDate="2010-10-08T11:34:39.003" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="5" />
  <row Id="96" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T20:20:29.540" Score="36" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;The fool wonders, the wise man asks.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; Benjamin Disraeli&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-10-11T16:11:35.453" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="2" />
  <row Id="97" PostTypeId="2" ParentId="44" CreationDate="2010-09-01T20:21:13.113" Score="6" ViewCount="" Body="&lt;p&gt;It depends on your employer and the certification that you are getting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I don't think that certifications sponsored by a corporation are useful. These tend to focus on a specific technology or toolchain, and these change rather frequently. A change could be a new version or a change could mean that the technology is no longer used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead, I lean more toward the IEEE &lt;a href=&quot;http://www.computer.org/portal/web/certification/csda&quot; rel=&quot;nofollow&quot;&gt;Certified Software Development Associate&lt;/a&gt; and &lt;a href=&quot;http://www.computer.org/portal/web/certification/csdp&quot; rel=&quot;nofollow&quot;&gt;Certified Development Software Professional&lt;/a&gt;. Other options include the &lt;a href=&quot;https://www.isc2.org/credentials/default.aspx&quot; rel=&quot;nofollow&quot;&gt;(ISC)2 certifications&lt;/a&gt; for computer and information security and the &lt;a href=&quot;http://www.pmi.org/Pages/default.aspx&quot; rel=&quot;nofollow&quot;&gt;PMP for project management&lt;/a&gt;. These are generally language and technology agnostic and will be much more beneficial, as long as they correspond to your goals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as employers go, some look favorably on certifications during hiring and promotion, while others really don't. I think that if I had two candidates that were equal on all levels except for one having relevant certifications, I would hire the person with certifications simply because (s)he has additional proof of competency in a specific domain or topic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The singular most important thing is that you don't get the certification just to get it, but that there's some larger goal that you are trying to achieve.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Since I originally wrote this answer, I obtained the Certified Software Development Associate certification from the IEEE. For me, I feel more confident in my own abilities. Not only has my knowledge been measured by the courses that I've taken and the jobs that I've had, but I also have the knowledge and skills that the IEEE feels are important for entry-level software engineers and graduates of software engineering programs. It's also an interesting talking point during interviews.&lt;/p&gt;&#xA;" OwnerUserId="4" LastEditorUserId="4" LastEditorDisplayName="" LastEditDate="2011-03-25T20:33:03.327" LastActivityDate="2011-03-25T20:33:03.327" />
  <row Id="98" PostTypeId="2" ParentId="94" CreationDate="2010-09-01T20:21:27.043" Score="11" ViewCount="" Body="&lt;p&gt;Make them write code, real code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The interviewer may let you pick the programming language you are most comfortable with, be it C++, Java, C# or whatever and ask you to solve a simple problem, e.g. doing some work with a string or a doubly linked list or whatever. If you have trouble using your best language solving a simple problem then there is a problem. Please see &lt;a href=&quot;http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html&quot; rel=&quot;nofollow&quot;&gt;Steve Yegge's blog post&lt;/a&gt; and especially the section &quot;Mental Prep&quot;.&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-21T11:31:09.670" LastActivityDate="2010-09-21T11:31:09.670" CommentCount="7" />
  <row Id="99" PostTypeId="2" ParentId="35" CreationDate="2010-09-01T20:21:31.600" Score="1" ViewCount="" Body="&lt;p&gt;Convention over configuration: when the Sysad skips town to go to ComicCon.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T20:21:31.600" CommunityOwnedDate="2010-09-23T20:40:04.303" />
  <row Id="100" PostTypeId="1" AcceptedAnswerId="107" CreationDate="2010-09-01T20:21:50.787" Score="12" ViewCount="260" Body="&lt;p&gt;What website are you using most to keep you updated on software development?&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="99" LastEditorDisplayName="" LastEditDate="2010-09-02T01:55:31.017" LastActivityDate="2010-09-02T22:39:52.213" Title="What website are you using most to keep you updated on software development?" Tags="&lt;resources&gt;&lt;websites&gt;" AnswerCount="8" CommentCount="5" FavoriteCount="2" />
  <row Id="101" PostTypeId="1" CreationDate="2010-09-01T20:21:55.560" Score="22" ViewCount="1384" Body="&lt;p&gt;For a Computer Science (CS) degree at many colleges and universities, certain math courses are &lt;strong&gt;required&lt;/strong&gt;: Calculus, Linear Algebra, and Discrete Mathematics are few examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, since I've started working in the real world as a software developer, I have yet to truly use &lt;em&gt;some&lt;/em&gt; the knowledge I had at once acquired from taking those classes. &lt;em&gt;Discrete Math might be the only exception&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My questions: &lt;strong&gt;Should these math classes be required to obtain a computer science degree?  Or would they be better served as electives?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm challenging even that the certain math classes even help with required CS classes. For example, I never used linear algebra outside of the math class itself. I hear it's used in Computer Graphics, but I never took those classes-- yet linear algebra was &lt;em&gt;required&lt;/em&gt; for a CS degree. I personally think it could be better served as an elective rather than requirement because it's more specific to a branch of CS rather than general CS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a Slashdot post &lt;a href=&quot;http://developers.slashdot.org/story/11/03/12/1651207/CS-Profs-Debate-Role-of-Math-In-CS-Education&quot; rel=&quot;nofollow&quot;&gt;CS Profs Debate Role of Math In CS Education&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;'For too long, we have taught computer science as an academic discipline (as though all of our students will go on to get PhDs and then become CS faculty members) even though for most of us, our students are overwhelmingly seeking careers in which they apply computer science.'&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="14" LastEditorUserId="14" LastEditorDisplayName="" LastEditDate="2011-03-13T04:13:22.293" LastActivityDate="2011-03-13T14:49:02.620" CommunityOwnedDate="2011-03-13T14:49:02.620" Title="Should certain math classes be required for a Computer Science degree?" Tags="&lt;computer-science&gt;&lt;school&gt;&lt;math&gt;" AnswerCount="15" CommentCount="7" FavoriteCount="6" />
  <row Id="102" PostTypeId="2" ParentId="16" CreationDate="2010-09-01T20:22:59.277" Score="4" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Dynamically typed languages tend to be slower than their statically typed cousins.&lt;/li&gt;&#xA;&lt;li&gt;Errors are harder to catch and can be harder to debug&lt;/li&gt;&#xA;&lt;li&gt;The compiler/interpreter tends to be a lot less fastidious about what you can and can't do. i.e., you pretty much only catch syntax errors at the compilation stage&lt;/li&gt;&#xA;&lt;li&gt;If you're not very careful with the design of a dynamically typed language, you end up with Javascript, which is &lt;em&gt;the&lt;/em&gt; language of code-smells&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; I should mention that my main programming language at the moment is Python, which is dynamically typed. Personally, I love the freedom that comes with not having to pre-declare variables, but at times, it &lt;em&gt;would&lt;/em&gt; be nice to specify (for example) what kind of parameters a function takes to catch errors early rather than late.&lt;/p&gt;&#xA;" OwnerUserId="61" LastEditorUserId="61" LastEditorDisplayName="" LastEditDate="2010-09-01T20:31:58.210" LastActivityDate="2010-09-01T20:31:58.210" CommentCount="3" />
  <row Id="103" PostTypeId="2" ParentId="94" CreationDate="2010-09-01T20:23:13.330" Score="1" ViewCount="" Body="&lt;p&gt;Just give them some basic code to do on whiteboard - e.g. linked list implementation, sorting or something similar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can judge how comfortable are they with their language without help of compiler and you can judge their thought process (especially if they never implemented such thing - most of &quot;new&quot; programmers never did).&lt;/p&gt;&#xA;" OwnerUserId="52" LastActivityDate="2010-09-01T20:23:13.330" CommentCount="2" />
  <row Id="104" PostTypeId="1" CreationDate="2010-09-01T20:23:20.443" Score="12" ViewCount="114" Body="&lt;p&gt;We've often run across scenarios where the business will promise a client a new feature.  The business will promise that the feature be implemented in a specific way.  These technical details promised by the business are usually poor.  Unfortunately, client is now set and want this feature to be implemented in the way described by the business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, the business just wants this feature to be completed without regard to quality and maintainability.  Is there a good way to push back?  How can we explain to the business that providing technical details before the requirements have been gathered is a bad idea?&lt;/p&gt;&#xA;" OwnerUserId="45" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T12:51:04.117" LastActivityDate="2010-09-12T12:51:04.117" Title="Business trying to make technical decisions" Tags="&lt;project-management&gt;&lt;decisions&gt;" AnswerCount="2" FavoriteCount="2" />
  <row Id="105" PostTypeId="2" ParentId="100" CreationDate="2010-09-01T20:23:23.707" Score="2" ViewCount="" Body="&lt;p&gt;I regularly visit &lt;a href=&quot;http://www.infoq.com/&quot; rel=&quot;nofollow&quot;&gt;InfoQ&lt;/a&gt; and watch some presentations.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-01T20:23:23.707" CommentCount="1" />
  <row Id="106" PostTypeId="2" ParentId="101" CreationDate="2010-09-01T20:25:19.460" Score="1" ViewCount="" Body="&lt;p&gt;I would not put them as required. Math knowledge helps greatly for some specific programming issues. However, these math classes usually go way overboard on math theory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They have their place, but I would keep them as electives.&lt;/p&gt;&#xA;" OwnerUserId="52" LastActivityDate="2010-09-01T20:25:19.460" CommunityOwnedDate="2011-03-13T14:49:02.620" CommentCount="2" />
  <row Id="107" PostTypeId="2" ParentId="100" CreationDate="2010-09-01T20:25:23.877" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://reddit.com/r/programming&quot; rel=&quot;nofollow&quot;&gt;reddit.com/r/programming&lt;/a&gt; (a.k.a. Proggit)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's about programming and it's worthwhile, somebody will eventually post it there (also if it's not about programming and not worthwhile, it will probably still get posted).&lt;/p&gt;&#xA;" OwnerUserId="25" LastEditorUserId="25" LastEditorDisplayName="" LastEditDate="2010-09-02T22:39:52.213" LastActivityDate="2010-09-02T22:39:52.213" CommentCount="1" />
  <row Id="108" PostTypeId="2" ParentId="44" CreationDate="2010-09-01T20:25:40.800" Score="1" ViewCount="" Body="&lt;p&gt;Well, in Italy programmers are looked as the least important part of almost any work organization, so your actual skills (including certifications) are often ignored by employers, and real life experience is much more well regarded.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In good companies however, certifications are a valuable part of your résumé. &lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-01T20:25:40.800" />
  <row Id="109" PostTypeId="1" AcceptedAnswerId="466" CreationDate="2010-09-01T20:26:45.810" Score="23" ViewCount="1448" Body="&lt;p&gt;For example, a common error in C/C++ is to use the assignment operator &lt;code&gt;=&lt;/code&gt; instead of the comparison operator &lt;code&gt;==&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T11:44:00.470" LastActivityDate="2011-02-13T01:10:10.227" CommunityOwnedDate="2010-10-06T08:33:10.437" Title="What are common mistakes in coding?" Tags="&lt;programming-languages&gt;&lt;coding&gt;&lt;bugs&gt;&lt;mistakes&gt;&lt;typos&gt;" AnswerCount="36" CommentCount="5" FavoriteCount="8" />
  <row Id="110" PostTypeId="2" ParentId="42" CreationDate="2010-09-01T20:26:47.100" Score="11" ViewCount="" Body="&lt;p&gt;I say, go ahead and try to engage and educate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they're honestly trying to help you, the chance to learn something could be valuable to them.  If they're just shoving their nose in for ego or political reasons (&quot;See, I'm helping, I'm helping!&quot;), they'll likely get the notion you'll embarrass them if they keep this nonsense up -- or bore them to death with a wall of jargon they're only pretending to understand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if you've got the dreaded egomaniac who truly thinks they're an expert at your job no matter what evidence you can bring to the contrary, then smile, nod, and make whatever trivial cosmetic changes will make them go the hell away.  And update your resume.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-01T20:26:47.100" CommentCount="2" />
  <row Id="111" PostTypeId="2" ParentId="49" CreationDate="2010-09-01T20:27:12.547" Score="3" ViewCount="" Body="&lt;p&gt;For the same reason that Lisp never really caught on (let the flamewars begin!). Functional programming is a very alien paradigm compared to imperative and object-oriented programming. If, like the vast majority of CS students, you started off with C and progressed to C++/Java, you tend not to want to learn to think in a way that is completely orthogonal to the way you normally think.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-01T20:27:12.547" CommentCount="5" />
  <row Id="112" PostTypeId="2" ParentId="5" CreationDate="2010-09-01T20:27:32.017" Score="4" ViewCount="" Body="&lt;p&gt;I've seen Notepad+ and SciTE. I prefer P&lt;a href=&quot;http://www.pnotepad.org/&quot; rel=&quot;nofollow&quot;&gt;rogrammer's Notepad&lt;/a&gt;. (Although I'm on Mac a lot these days...)&lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-09-01T20:27:32.017" CommunityOwnedDate="2011-03-08T02:44:19.193" />
  <row Id="113" PostTypeId="2" ParentId="101" CreationDate="2010-09-01T20:27:40.100" Score="1" ViewCount="" Body="&lt;p&gt;A lot of the math requirements on modern CS degrees are holdovers from the days when CS was just a branch of mathematics.  You didn't take Calc 345 because your CS degree required it- you took CS 234 because your Calc degree allowed it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As the field evolves, I expect you'll see fewer and fewer math requirements for CS degrees.  That said, there are a few that are directly useful:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Calculus and related courses can be useful in physics-related programming (eg, game engines).&lt;/li&gt;&#xA;&lt;li&gt;Discrete math is pretty important to algorithm creation.&lt;/li&gt;&#xA;&lt;li&gt;Graph theory is hella important to any algorithm that deals with graph traversal (obviously)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T20:27:40.100" CommunityOwnedDate="2011-03-13T14:49:02.620" />
  <row Id="114" PostTypeId="2" ParentId="101" CreationDate="2010-09-01T20:28:10.830" Score="3" ViewCount="" Body="&lt;p&gt;I think that many computer science educations are formed with &lt;strong&gt;scientific computing&lt;/strong&gt; in consideration. That is good, but some times I think it would be good to also take in consideration that many of the computer science jobs in the industry is about &lt;strong&gt;line of business applications&lt;/strong&gt; that are more database driven.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-01T20:28:10.830" CommunityOwnedDate="2011-03-13T14:49:02.620" CommentCount="2" />
  <row Id="115" PostTypeId="2" ParentId="100" CreationDate="2010-09-01T20:29:21.423" Score="2" ViewCount="" Body="&lt;p&gt;I visit sites from big conferences (e.g. &lt;a href=&quot;http://www.msteched.com/2010/NorthAmerica/SIA334&quot; rel=&quot;nofollow&quot;&gt;TechEd&lt;/a&gt; or &lt;a href=&quot;http://www.youtube.com/watch?v=skD1fjxSRog&quot; rel=&quot;nofollow&quot;&gt;Google I/O&lt;/a&gt;) and watch video presentations. They usually cover new things and presenters are (usually) quite good.&lt;/p&gt;&#xA;" OwnerUserId="52" LastActivityDate="2010-09-01T20:29:21.423" CommentCount="3" />
  <row Id="116" PostTypeId="2" ParentId="109" CreationDate="2010-09-01T20:29:23.440" Score="12" ViewCount="" Body="&lt;p&gt;Forgetting the &lt;code&gt;;&lt;/code&gt; is probably the most common mistake in C-family languages. Failing to check the bounds of an array is probably another very common mistake in languages that allow you to make it...&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-01T20:29:23.440" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="6" />
  <row Id="117" PostTypeId="2" ParentId="67" CreationDate="2010-09-01T20:29:46.417" Score="9" ViewCount="" Body="&lt;p&gt;From my google homepage:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blog.objectmentor.com/&quot; rel=&quot;nofollow&quot;&gt;Object Mentor Blog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://michaelfeathers.typepad.com/michael_feathers_blog/&quot; rel=&quot;nofollow&quot;&gt;Michael Feathers' Blog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.hanselman.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Scott Hanselman's Computer Zen&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://dearjunior.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;Dear Junior - letters to a junior programmer&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-01T20:29:46.417" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="118" PostTypeId="1" AcceptedAnswerId="137" CreationDate="2010-09-01T20:29:48.973" Score="27" ViewCount="1818" Body="&lt;p&gt;I live and work in Italy, but here programmers are not valued very much, and the average development organization sucks (often we don't even have formal design, and I'm talking about huge companies...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I would like to relocate in a country where software developers are well regarded and where companies use effective software development methodologies. So, where should I look?&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:55:47.160" LastActivityDate="2010-12-27T21:31:13.287" ClosedDate="2011-05-23T21:52:50.720" Title="Best country for getting a job" Tags="&lt;jobs&gt;&lt;location-specific&gt;" AnswerCount="16" CommentCount="11" FavoriteCount="15" />
  <row Id="119" PostTypeId="2" ParentId="35" CreationDate="2010-09-01T20:29:52.767" Score="43" ViewCount="" Body="&lt;p&gt;Q: How many Prolog programmers does it take to change a lightbulb?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A: Yes.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-01T20:29:52.767" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="2" />
  <row Id="120" PostTypeId="2" ParentId="101" CreationDate="2010-09-01T20:30:05.980" Score="6" ViewCount="" Body="&lt;p&gt;The problem is what classes would be useful?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Vector and matrix arithmetic and trigonometry are &lt;em&gt;really&lt;/em&gt; useful if you are doing any graphical work - particularly 3D graphics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Percentages, compound interest etc. would be useful for accountancy and financial software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There wouldn't be enough time to cover anything but the basics in these. Now while the basics &lt;em&gt;might&lt;/em&gt; be useful the phrase &quot;a little learning is a dangerous thing&quot; springs to mind. If you know something about the maths behind a new field you might be tempted to steam right in rather than doing more research and getting yourself up to speed before you start.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-01T20:30:05.980" CommunityOwnedDate="2011-03-13T14:49:02.620" />
  <row Id="121" PostTypeId="2" ParentId="100" CreationDate="2010-09-01T20:30:23.013" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://news.ycombinator.com/&quot; rel=&quot;nofollow&quot;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T20:30:23.013" CommentCount="2" />
  <row Id="122" PostTypeId="2" ParentId="109" CreationDate="2010-09-01T20:30:23.513" Score="19" ViewCount="" Body="&lt;p&gt;In C#, using &lt;code&gt;throw ex&lt;/code&gt; instead of &lt;code&gt;throw&lt;/code&gt; inside of a catch block.  The former will reset the stack trace.&lt;/p&gt;&#xA;" OwnerUserId="45" LastEditorUserId="135" LastEditorDisplayName="" LastEditDate="2010-10-07T12:26:54.177" LastActivityDate="2010-10-07T12:26:54.177" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="4" />
  <row Id="123" PostTypeId="2" ParentId="18" CreationDate="2010-09-01T20:31:17.413" Score="2" ViewCount="" Body="&lt;p&gt;A programming savvy Graphic Designer. A graphic designer for web needs to understand the limitations of web graphics and concepts like graceful fallback. HTML5 and CSS3 are making a big push, but until those are here, your graphic designer needs to understand the limits of CSS2 and XHTML.&lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-09-01T20:31:17.413" />
  <row Id="124" PostTypeId="2" ParentId="109" CreationDate="2010-09-01T20:31:34.807" Score="8" ViewCount="" Body="&lt;p&gt;I saw quite a few errors with missing break in switch statements (C++, Java). Fortunately C# forbid this practice.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;switch (var) {&#xA;    case 1:&#xA;        //do something&#xA;    case 2:&#xA;        //do something else&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="52" LastEditorUserId="52" LastEditorDisplayName="" LastEditDate="2010-09-01T20:43:55.923" LastActivityDate="2010-09-01T20:43:55.923" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="5" />
  <row Id="125" PostTypeId="2" ParentId="57" CreationDate="2010-09-01T20:32:21.963" Score="5" ViewCount="" Body="&lt;p&gt;I. absolutely. hate. 4. spaces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? Mainly because I'm tired of navigating my code with a keyboard and having to constantly hit &lt;code&gt;left&lt;/code&gt; &lt;code&gt;left&lt;/code&gt; &lt;code&gt;left&lt;/code&gt; &lt;code&gt;left&lt;/code&gt; to go over one indentation. This was born out of early versions of Notepad++ and even plain Windows notepad where there was no such thing as a format button. I had so many issues when people would only use 3 when I had used 4 everywhere else among other things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other reason is that the tab character &lt;em&gt;exist specifically for indentation&lt;/em&gt;, and was only later adopted for navigation. Why are we doing &lt;code&gt;space&lt;/code&gt; &lt;code&gt;space&lt;/code&gt; &lt;code&gt;space&lt;/code&gt; &lt;code&gt;space&lt;/code&gt; when a simple &lt;code&gt;tab&lt;/code&gt; would work? Why should IDE's have to deal with 2-5 spaced code and format correctly when a simple tab and a preference option would work?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately I'm the minority. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-01T20:32:21.963" CommentCount="12" />
  <row Id="126" PostTypeId="1" CreationDate="2010-09-01T20:32:31.127" Score="9" ViewCount="176" Body="&lt;p&gt;Assume that a company runs several projects simultaneously.  When a project reaches certain state (is completed, beta is shipped, etc) some people move to the other projects, then to the other, ad infinitum.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It could be a good idea to assign rooms to specific projects, and make people move there as soon as they're added to the project as well. Some software methodologies, for example, Scrum and other agile ones, explicitly declare that having all programmers in the same room is a boon, and benefits development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, a group of programmers that spends their work time in a common room for years creates a constructive and strong relationship between its members.  The programmers inside it always know whom to ask for an advice about a specific technology, and the closeness makes people helpful and trusting.  An advantage of a closer social interaction could also be taken.  Should such an opportunity be missed just to arrange several peers for a specific short-term project?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, &lt;strong&gt;how should we organize moving programmers between rooms?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: The best option, perhaps, is keeping each programmer in a separate office. But let's assume that the office under consideration is just not big enough for that.&lt;/p&gt;&#xA;" OwnerUserId="34" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T12:57:46.813" LastActivityDate="2010-09-12T12:57:46.813" Title="Should we move programmers between rooms to group them by project they're involved in?" Tags="&lt;team&gt;&lt;office&gt;&lt;organization&gt;" AnswerCount="4" CommentCount="4" FavoriteCount="2" />
  <row Id="127" PostTypeId="2" ParentId="101" CreationDate="2010-09-01T20:32:41.797" Score="7" ViewCount="" Body="&lt;p&gt;These classes should be required. For computer scientists, they are the building blocks of the field. For software engineers, they help to form an understanding of the science that is the basis for your engineering discipline.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just two examples from fields of mathematics that you named:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Discrete mathematics is probably the&#xA;most useful form of mathematics for&#xA;any software engineer or computer&#xA;science. This includes logic, set&#xA;theory, and graph theory. These come&#xA;up again and again. Logic - every&#xA;time you use an &lt;code&gt;if&lt;/code&gt; statement. Graph&#xA;theory can be used to describe&#xA;networks and complex systems.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Calculus shows up in a number of&#xA;fields of computer science -&#xA;computational geometry, computational&#xA;physics, and statistics (which leads&#xA;into data mining, artificial&#xA;intelligence, machine learning, and&#xA;natural language processing).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;However, you say that you haven't used the knowledge you learned in these classes. That's probably because as a developer, you are using more software engineering knowledge than computer science knowledge. Computer science isn't programming - in fact, most of what computer science entails should be described mathematically or in some other programming language-agnostic method.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-01T20:32:41.797" CommunityOwnedDate="2011-03-13T14:49:02.620" CommentCount="1" />
  <row Id="128" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T20:32:57.040" Score="12" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;The real question is not whether&#xA;  machines think but whether men do. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;mdash; B. F. Skinner&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Related more to AI than to simple programming, but I still like it.&lt;/p&gt;&#xA;" OwnerUserId="69" LastEditorUserId="2598" LastEditorDisplayName="" LastEditDate="2010-09-27T17:33:28.133" LastActivityDate="2010-09-27T17:33:28.133" CommunityOwnedDate="2010-09-04T10:57:01.747" />
  <row Id="129" PostTypeId="2" ParentId="67" CreationDate="2010-09-01T20:33:08.363" Score="13" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blog.cwa.me.uk/&quot; rel=&quot;nofollow&quot;&gt;The Morning Brew&lt;/a&gt; by Chris Alcock.&lt;/p&gt;&#xA;" OwnerUserId="45" LastActivityDate="2010-09-01T20:33:08.363" CommunityOwnedDate="2010-09-23T12:50:11.533" CommentCount="1" />
  <row Id="130" PostTypeId="2" ParentId="100" CreationDate="2010-09-01T20:33:10.370" Score="0" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://twitter.com/&quot; rel=&quot;nofollow&quot;&gt;Twitter&lt;/a&gt; and follow the massive amounts of technical and developer people who are on there.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-01T20:33:10.370" />
  <row Id="131" PostTypeId="2" ParentId="109" CreationDate="2010-09-01T20:33:30.510" Score="3" ViewCount="" Body="&lt;p&gt;In languages like C#, changing the value of a parameter passed in to a method and then wondering why it's not updated in the calling code.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-01T20:33:30.510" CommunityOwnedDate="2010-10-06T08:33:10.437" />
  <row Id="132" PostTypeId="2" ParentId="109" CreationDate="2010-09-01T20:34:00.250" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Memory leak in C or C++. Using the RAII idiom in C++ is very helpful.&lt;/li&gt;&#xA;&lt;li&gt;Another memory error is double free in C and C++, which can be disastrous as well.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-01T20:34:00.250" CommunityOwnedDate="2010-10-06T08:33:10.437" />
  <row Id="133" PostTypeId="2" ParentId="18" CreationDate="2010-09-01T20:34:23.170" Score="5" ViewCount="" Body="&lt;p&gt;A good development team is nothing without some support: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One major role that's missing is IT: systems administration, networking, etc. There are a lot of developers whose knowledge of how computer systems work stop at the compiler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also add a manager to handle vendor contracts and other support aspects of a development team.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-01T20:34:23.170" CommentCount="1" />
  <row Id="134" PostTypeId="1" AcceptedAnswerId="196" CreationDate="2010-09-01T20:34:56.523" Score="8" ViewCount="328" Body="&lt;p&gt;How do you bill your programming projects? Do you do it per hour? Per job? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please include what kind of project you are doing in the answer. (Mobile, Web, Desktop, etc... You can be more specific if you want.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BONUS:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you'd like to give specific amounts in your answer, you may. ;-)&lt;/p&gt;&#xA;" OwnerUserId="67" LastEditorUserId="67" LastEditorDisplayName="" LastEditDate="2010-09-01T21:08:57.913" LastActivityDate="2010-09-01T21:25:46.857" Title="Hourly or per project billing?" Tags="&lt;billing&gt;&lt;freelancing&gt;&lt;pricing&gt;" AnswerCount="4" CommentCount="4" FavoriteCount="2" />
  <row Id="135" PostTypeId="1" CreationDate="2010-09-01T20:35:47.520" Score="45" ViewCount="1194" Body="&lt;p&gt;Who in the software engineering and software development fields uses Twitter to tweet about relevant happenings in the field?&lt;/p&gt;&#xA;" OwnerUserId="4" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T12:55:27.740" LastActivityDate="2011-02-11T10:41:17.917" CommunityOwnedDate="2011-02-11T07:48:02.420" Title="As a software engineer, who should I be following on Twitter?" Tags="&lt;twitter&gt;&lt;social-networks&gt;" AnswerCount="18" CommentCount="6" FavoriteCount="21" />
  <row Id="136" PostTypeId="2" ParentId="126" CreationDate="2010-09-01T20:36:07.723" Score="2" ViewCount="" Body="&lt;p&gt;I personally think that having programmers in same room is great feature for mid-size and large projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If projects are small (and thus people would move every week or so) I would avoid excessive moving.&lt;/p&gt;&#xA;" OwnerUserId="52" LastActivityDate="2010-09-01T20:36:07.723" />
  <row Id="137" PostTypeId="2" ParentId="118" CreationDate="2010-09-01T20:36:49.550" Score="20" ViewCount="" Body="&lt;p&gt;How about scandinavia? Denmark, Norway, Finland and Sweden has quite big software industry and a big part of the population know english. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;But I am from Sweden, so take that in count when reading my answer.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-01T20:36:49.550" CommentCount="6" />
  <row Id="138" PostTypeId="2" ParentId="109" CreationDate="2010-09-01T20:36:58.423" Score="14" ViewCount="" Body="&lt;p&gt;Misplaced semicolon C/C++ and/or alignment:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(x == 5);  &#xA;  doSomething();  &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;doSomething() is always called even when x is not 5.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously you know not to put a semicolon at the end of the if but sometimes it can be an overlooked typo.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-01T20:36:58.423" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="8" />
  <row Id="139" PostTypeId="2" ParentId="126" CreationDate="2010-09-01T20:36:59.330" Score="2" ViewCount="" Body="&lt;p&gt;For my experience, I would say absolutely yes. I work in a big open space, and I've often to get up and going to some coworker needing help. When I was next to a coworker that worked on the same component as I, we where much more productive (something like pair programming without its huge faults).&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-01T20:36:59.330" />
  <row Id="140" PostTypeId="2" ParentId="109" CreationDate="2010-09-01T20:37:30.780" Score="9" ViewCount="" Body="&lt;p&gt;Doing this in C/C++ : &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#define VALUE 5;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It will cause compilation error elsewhere in your code.&lt;/p&gt;&#xA;" OwnerUserId="41" LastActivityDate="2010-09-01T20:37:30.780" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="2" />
  <row Id="141" PostTypeId="2" ParentId="126" CreationDate="2010-09-01T20:37:50.200" Score="4" ViewCount="" Body="&lt;p&gt;Organizing by project is an excellent idea.  Anything that encourages communication within the team is a Good Thing, and this will permit them to ask each other quick questions without needing to wait for an email response, or go track the other person down.  It also gives them an opportunity to overhear conversations they really ought to be a part of; happens all the time around here.  (&quot;Wait, I'm going to be doing what to the who now?&quot;)&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-01T20:37:50.200" />
  <row Id="142" PostTypeId="2" ParentId="135" CreationDate="2010-09-01T20:40:01.200" Score="10" ViewCount="" Body="&lt;p&gt;I &lt;a href=&quot;http://brianbondy.com/blog/id/105/twitter-accounts-for-all-stackoverflow-users-by-reputation&quot; rel=&quot;nofollow&quot;&gt;maintain a list of over 2300 StackOverflow (SO)&lt;/a&gt; twitter accounts sorted by reputation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mined the latest &lt;a href=&quot;http://www.stackoverflow.com&quot;&gt;SO&lt;/a&gt; data dump for all users with twitter accounts, then calculated each user's top tags based on most votes, and finally sorted the lists by user reputation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a screenshot of what the SO list looks like: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://brianbondy.com/blog/id/105/twitter-accounts-for-all-stackoverflow-users-by-reputation&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://brianbondy.com/static/img/blogpost_105/twitterSEScreenshot.png&quot; alt=&quot;Screenshot of the twitter list&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also mined the available Stack Exchange data dumps.  The list of members for this site will also appear on the next data dump. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a subset that is applicable to programmers:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://brianbondy.com/blog/id/105/twitter-accounts-for-all-stackoverflow-users-by-reputation&quot; rel=&quot;nofollow&quot;&gt;StackOverflow&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://brianbondy.com/stackexchange-twitter/gamedevelopment&quot; rel=&quot;nofollow&quot;&gt;Game Development&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://brianbondy.com/stackexchange-twitter/webmasters&quot; rel=&quot;nofollow&quot;&gt;Webmasters&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2011-01-01T19:58:20.923" LastActivityDate="2011-01-01T19:58:20.923" CommunityOwnedDate="2011-02-11T07:48:02.420" CommentCount="4" />
  <row Id="143" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T20:40:17.127" Score="136" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;It always takes longer than you&#xA;  expect, even when you take into&#xA;  account Hofstadter's Law.&#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; &lt;a href=&quot;http://en.wikipedia.org/wiki/Hofstadter%27s_law&quot; rel=&quot;nofollow&quot;&gt;Hofstadter's Law&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="45" LastActivityDate="2010-10-11T17:43:51.973" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="8" />
  <row Id="144" PostTypeId="2" ParentId="118" CreationDate="2010-09-01T20:40:50.573" Score="12" ViewCount="" Body="&lt;p&gt;Come to the great USA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't find the source but I have seen a survey where comparing to Europe, Japan and India, software engineers in the US have the highest satisfaction rating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: I'd like to change my answer to USA/Canada.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do know a few things about Canada, especially I helped my brother to immigrate to Canada in 2001. The process was relatively easy, but you do have to wait for one or two years and you can really do it by yourself. Canada is one of the most immigration friendly countries in the world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Canada has a pretty good software industry too, perhaps on par with the US. Once you settle in Canada, it's much easier for you to find work in the US if that's what you want.&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-06T02:42:47.423" LastActivityDate="2010-09-06T02:42:47.423" CommentCount="12" />
  <row Id="145" PostTypeId="2" ParentId="134" CreationDate="2010-09-01T20:42:02.167" Score="1" ViewCount="" Body="&lt;p&gt;I work at a web dev shop (~25 people) and we do it mostly by the project, since that's what customers prefer.  They don't want open-ended commitments to keep giving us money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some exceptions have occurred, though.  When we do hourly, it's usually a deal where we'll give them N hours of work between M developers per month to work on whatever they want.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T20:42:02.167" CommentCount="2" />
  <row Id="146" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T20:43:07.547" Score="31" ViewCount="" Body="&lt;p&gt;As &lt;a href=&quot;http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s04.html&quot; rel=&quot;nofollow&quot;&gt;formulated by Eric S. Raymond&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Linus's Law&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Or, less formally,&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Given enough eyeballs, all bugs are shallow.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="8" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-27T16:59:50.343" LastActivityDate="2010-09-27T16:59:50.343" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="3" />
  <row Id="147" PostTypeId="2" ParentId="100" CreationDate="2010-09-01T20:43:41.243" Score="1" ViewCount="" Body="&lt;p&gt;I check out alistapart.com every so often. They officially update twice a month.&lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-09-01T20:43:41.243" />
  <row Id="148" PostTypeId="2" ParentId="73" CreationDate="2010-09-01T20:45:42.457" Score="0" ViewCount="" Body="&lt;p&gt;Make sure they understand and expect to be paying you for i) support, ii) additions, and iii) maintenance once you are done the initial work before you start.  If they won't agree to it don't do the project.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-01T20:45:42.457" />
  <row Id="149" PostTypeId="2" ParentId="104" CreationDate="2010-09-01T20:46:31.367" Score="4" ViewCount="" Body="&lt;p&gt;That's an organizational issue.  If the higher-ups don't understand this, there's not much you can do.  Try to explain the issue to your non-technical bosses, but don't be surprised when you get nowhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's is a common problem for developers working in non-development companies that, for whatever reason, sell software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not a pleasant tactic, but you can just bludgeon them with evidence.  At the start of a project, write down exactly why it's going to fail (because technical details were poor) and email it to relevant people.  Keep emailing them throughout, and when the project eventually ends up a disaster with pissed off customers, cite those emails you sent at every opportunity.  It may generate some ill will, but there's really no &lt;em&gt;good&lt;/em&gt; way to try to fix a systemic issue like that.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T20:46:31.367" />
  <row Id="150" PostTypeId="2" ParentId="100" CreationDate="2010-09-01T20:46:47.153" Score="0" ViewCount="" Body="&lt;p&gt;I'm using StackOverflow.com also as a &quot;blog&quot; and as a way to find about real life news (I always keep a look when I see something I never heard before). Of course, it is only a starting point, but the next step is usually Google...&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-01T20:46:47.153" />
  <row Id="151" PostTypeId="2" ParentId="109" CreationDate="2010-09-01T20:49:23.283" Score="19" ViewCount="" Body="&lt;p&gt;Writing&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (x &amp;gt; 5) return true;&#xA;else return false;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;instead of&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;return (x &amp;gt; 5);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="40" LastActivityDate="2010-09-01T20:49:23.283" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="14" />
  <row Id="152" PostTypeId="2" ParentId="57" CreationDate="2010-09-01T20:49:43.750" Score="3" ViewCount="" Body="&lt;p&gt;You obviously need a combination approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're sharing code with other developers, you need to standardize, and since that's impossible (koff koff), you need to make everyone do four spaces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you need an editor that's smart enough not to be stupid about that, to know that it should treat a line with four spaces at the front of it like it's indented. Any modern IDE or programmers' editor can auto-flow code with spaces instead of tabs.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-09-01T20:49:43.750" />
  <row Id="153" PostTypeId="2" ParentId="135" CreationDate="2010-09-01T20:50:36.010" Score="7" ViewCount="" Body="&lt;p&gt;For a quickstart, have a look to this list:&lt;br&gt;&#xA;&lt;a href=&quot;http://twitter.com/jvortmann/software-guru&quot; rel=&quot;nofollow&quot;&gt;http://twitter.com/jvortmann/software-guru&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You got:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Kent Beck   &lt;/li&gt;&#xA;&lt;li&gt;Martin Fowler &lt;/li&gt;&#xA;&lt;li&gt;Chad Fowler&lt;/li&gt;&#xA;&lt;li&gt;UncleBob&lt;/li&gt;&#xA;&lt;li&gt;Erich Gamma&#xA;..&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I would then search by name, starting from the book authors you are reading.&lt;br&gt;&#xA;For example: i'm currently reading Professional Android Application development by Reto Meier; Googling his name + twitter i get his twitter account.&lt;/p&gt;&#xA;" OwnerUserId="74" LastEditorUserId="74" LastEditorDisplayName="" LastEditDate="2010-09-01T21:29:37.077" LastActivityDate="2010-09-01T21:29:37.077" CommunityOwnedDate="2011-02-11T07:48:02.420" />
  <row Id="154" PostTypeId="1" AcceptedAnswerId="5165" CreationDate="2010-09-01T20:52:11.953" Score="33" ViewCount="2190" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/6bRPH.jpg&quot; alt=&quot;Turing test&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:19:18.353" LastActivityDate="2011-01-18T10:01:25.270" ClosedDate="2010-12-29T17:23:19.130" Title="What is your favorite “programmer” cartoon?" Tags="&lt;favorite&gt;&lt;fun&gt;&lt;humor&gt;&lt;pop-culture&gt;" AnswerCount="30" CommentCount="8" FavoriteCount="27" />
  <row Id="155" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T20:52:17.163" Score="29" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A clever person solves a problem. A wise person avoids it.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; Albert Einstein&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="78" LastActivityDate="2010-10-08T11:28:01.430" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="2" />
  <row Id="156" PostTypeId="2" ParentId="154" CreationDate="2010-09-01T20:54:43.060" Score="29" ViewCount="" Body="&lt;p&gt;To get it out of the way up front:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://xkcd.com/303/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://i.imgur.com/aaN5u.png&quot; alt=&quot;'Are you stealing those LCDs?' 'Yeah, but I'm doing it while my code compiles.'&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alt text: &lt;em&gt;Are you stealing those LCDs?' 'Yeah, but I'm doing it while my code compiles.'&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-01T20:54:43.060" CommentCount="8" />
  <row Id="157" PostTypeId="2" ParentId="94" CreationDate="2010-09-01T20:54:43.120" Score="13" ViewCount="" Body="&lt;p&gt;Besides real technical questions, and typically at the end of the interview I try to get a grasp of their level of interest in the industry and it's culture with questions like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Have you seen anything recently programming-related that you found interesting and would like to recommend to other fellow programmers? A new language, tool, platform, technique, website?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Can you name any well known person in our industry whose work you like or find inspiring and why? (developer, web site founder, author, speaker, etc)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;What are you reading now or what was the last software related book you read?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;What programming related sites do you frequent?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Although failing to answer these questions at all (sadly it happens very frequently) does not mean a 'no-hire' to me, they say a lot about the way a person approaches the software development profession.&lt;/p&gt;&#xA;" OwnerUserId="76" LastEditorUserId="76" LastEditorDisplayName="" LastEditDate="2010-09-02T20:57:54.757" LastActivityDate="2010-09-02T20:57:54.757" CommentCount="3" />
  <row Id="158" PostTypeId="2" ParentId="104" CreationDate="2010-09-01T20:54:48.877" Score="2" ViewCount="" Body="&lt;p&gt;From the developer's perspective, this is one of two flavors of fail, when it comes to spec-writing. The other thing that can happen is when sales makes big promises, and then turns to IT to specify the project and deliver a write-up that can be turned into a quote.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Problem is, often that's the bulk of the work. Quite likely the actual code is just implementing the details of the approach laid out in a well-designed spec. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the same time, sales finds it difficult to bill for preliminaries like specs development. We're not quite in bed yet with the client, and it's weird to hit them up for money to figure out how much money to hit them up for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is why most &quot;first time&quot; projects with new clients end up being loss leaders. If you're LUCKY, you use that first project to train the client on how to be a client, and you can start earning your butt back on the second project, or the maintenance agreement on the first one.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-09-01T20:54:48.877" />
  <row Id="159" PostTypeId="2" ParentId="154" CreationDate="2010-09-01T20:55:23.693" Score="16" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://xkcd.com/353/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://i.imgur.com/TWjDf.png&quot; alt=&quot;alt text&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="61" LastEditorUserId="61" LastEditorDisplayName="" LastEditDate="2010-09-01T21:03:27.490" LastActivityDate="2010-09-01T21:03:27.490" CommentCount="1" />
  <row Id="160" PostTypeId="2" ParentId="154" CreationDate="2010-09-01T20:56:28.003" Score="42" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/VRvO5.gif&quot; alt=&quot;The cartoon&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="40" LastActivityDate="2010-09-01T20:56:28.003" CommentCount="2" />
  <row Id="161" PostTypeId="1" CreationDate="2010-09-01T20:57:08.377" Score="10" ViewCount="665" Body="&lt;p&gt;Can you provide a list of software technologies that are bleeding edge of the 2010?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quoting &lt;a href=&quot;http://en.wikipedia.org/wiki/Bleeding_edge_technology&quot; rel=&quot;nofollow&quot;&gt;Wikipedia&lt;/a&gt;:&lt;br&gt;&#xA;&lt;strong&gt;Bleeding edge technology&lt;/strong&gt; refers to technology that is so new that the user is required to risk unreliability, and possibly greater expense, in order to use it.&lt;/p&gt;&#xA;" OwnerUserId="74" LastEditorUserId="74" LastEditorDisplayName="" LastEditDate="2010-09-02T11:20:35.360" LastActivityDate="2010-10-01T21:03:56.463" ClosedDate="2011-01-04T18:09:04.110" Title="What are the bleeding edge software technologies of the 2010?" Tags="&lt;software&gt;&lt;technology&gt;" AnswerCount="11" CommentCount="3" FavoriteCount="7" />
  <row Id="162" PostTypeId="2" ParentId="154" CreationDate="2010-09-01T20:58:13.243" Score="30" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/gfPK3.gif&quot; alt=&quot;Agile&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="52" LastActivityDate="2010-09-01T20:58:13.243" CommentCount="2" />
  <row Id="163" PostTypeId="1" CreationDate="2010-09-01T20:58:31.980" Score="17" ViewCount="350" Body="&lt;p&gt;Are there any great programming or software development books that are language agnostic?  Why should I read it?&lt;/p&gt;&#xA;" OwnerUserId="45" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T12:56:09.097" LastActivityDate="2010-11-22T01:31:52.040" Title="Language agnostic programming books" Tags="&lt;books&gt;&lt;language-agnostic&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="10" />
  <row Id="164" PostTypeId="2" ParentId="28" CreationDate="2010-09-01T20:58:32.103" Score="3" ViewCount="" Body="&lt;p&gt;The ability to sit back dispassionately and allow others to test/modify their code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Possessiveness is a deadly attribute in development teams.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-09-01T20:58:32.103" CommentCount="1" />
  <row Id="165" PostTypeId="2" ParentId="57" CreationDate="2010-09-01T20:58:33.430" Score="15" ViewCount="" Body="&lt;p&gt;Some relevant opinions that may be of interest:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.python.org/dev/peps/pep-0008/&quot; rel=&quot;nofollow&quot;&gt;Guido says spaces&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&amp;amp;ixPost=3978&quot; rel=&quot;nofollow&quot;&gt;Joel says spaces&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2009/04/death-to-the-space-infidels.html&quot; rel=&quot;nofollow&quot;&gt;Atwood says spaces&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.jwz.org/doc/tabs-vs-spaces.html&quot; rel=&quot;nofollow&quot;&gt;Zawinski says spaces, sort of&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T20:58:33.430" CommentCount="4" />
  <row Id="166" PostTypeId="2" ParentId="161" CreationDate="2010-09-01T20:59:13.570" Score="16" ViewCount="" Body="&lt;p&gt;HTML5/CSS3 - Risk involved is using non IE browser on Windows. In some cases, a major one.&lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-09-01T20:59:13.570" CommentCount="1" />
  <row Id="167" PostTypeId="1" AcceptedAnswerId="175" CreationDate="2010-09-01T20:59:41.423" Score="15" ViewCount="599" Body="&lt;p&gt;Using the keyboard, and the mouse for long time is probably one of the causes of Carpal Tunnel Syndrome. How can I avoid it?&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2011-04-23T21:43:38.387" LastActivityDate="2011-04-24T05:15:00.197" Title="How can I avoid the Carpal Tunnel Syndrome?" Tags="&lt;rsi&gt;&lt;professional-disease&gt;" AnswerCount="12" CommentCount="4" FavoriteCount="8" />
  <row Id="168" PostTypeId="2" ParentId="28" CreationDate="2010-09-01T21:00:23.647" Score="10" ViewCount="" Body="&lt;p&gt;Laziness. Think automation tools (when not already there). &lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-09-01T21:00:23.647" CommentCount="6" />
  <row Id="169" PostTypeId="2" ParentId="167" CreationDate="2010-09-01T21:01:18.747" Score="2" ViewCount="" Body="&lt;p&gt;Use a track pad instead of a mouse. Take breaks every so often.&lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-09-01T21:01:18.747" CommentCount="1" />
  <row Id="170" PostTypeId="2" ParentId="9" CreationDate="2010-09-01T21:02:53.503" Score="5" ViewCount="" Body="&lt;p&gt;I have found the &lt;a href=&quot;http://www.pomodorotechnique.com/&quot; rel=&quot;nofollow&quot;&gt;pomodoro technique&lt;/a&gt; useful for increasing my concentration at work, specially for things I don't really like doing.&lt;/p&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-09-01T21:02:53.503" CommunityOwnedDate="2011-01-04T21:22:43.957" />
  <row Id="171" PostTypeId="2" ParentId="163" CreationDate="2010-09-01T21:03:25.767" Score="13" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735619670&quot; rel=&quot;nofollow&quot;&gt;Code Complete: A Practical Handbook of Software Construction by Steve McConnell&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This book is probably the definitive book on software construction. It discusses topics such as the foundations for construction (requirements, architecture, and design), choosing a programming language, choosing a development methodology, designing classes and objects, writing high-quality functions and methods, defensive programming, the use and naming of variables, data types, organizing and formatting statements, collaborative programming, testing, debugging, refactoring, and development tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a must have on every software engineer's shelf, even if you aren't explicitly writing code.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-01T21:03:25.767" CommentCount="3" />
  <row Id="172" PostTypeId="2" ParentId="163" CreationDate="2010-09-01T21:03:31.413" Score="2" ViewCount="" Body="&lt;p&gt;Code - Microsoft Press.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's an excellent causal computer book that takes you from Morse code to Binary and back.&lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-09-01T21:03:31.413" />
  <row Id="173" PostTypeId="2" ParentId="167" CreationDate="2010-09-01T21:03:57.440" Score="2" ViewCount="" Body="&lt;p&gt;Learn to use your mouse left handed (assuming you're right handed) and swap every so often. Not necessarily every hour, but perhaps once or twice a day.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-01T21:03:57.440" />
  <row Id="174" PostTypeId="2" ParentId="163" CreationDate="2010-09-01T21:04:28.603" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201633612&quot; rel=&quot;nofollow&quot;&gt;Design Patterns&lt;/a&gt;.  The patterns largely OOP-bent, but within OOP, they're pretty applicable to any language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should read it because it'll make you a better designer.  It teaches you good ways to solve subsystem design problems that you might not have figured out until you'd been designing systems for 40 years.  They're reusable solutions to semi-common problems.  That said, there's a pattern that sophomores go through when they learn design patterns in school:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Design patterns are kinda neat.  I wonder how I can use them in this project I'm working on?&lt;/li&gt;&#xA;&lt;li&gt;Design patterns are 10x better than sliced bread!  I'm gonna use'em everywhere!&lt;/li&gt;&#xA;&lt;li&gt;Ok, there is a time and a place for using specific patterns.  Moderation is good.&lt;/li&gt;&#xA;&lt;li&gt;We should solve this problem with solution X.  Oh right, that happens to be pattern Y.  How 'bout that.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T21:04:28.603" />
  <row Id="175" PostTypeId="2" ParentId="167" CreationDate="2010-09-01T21:05:02.783" Score="5" ViewCount="" Body="&lt;p&gt;I've found the exercises from &lt;a href=&quot;http://framedrums.net/&quot; rel=&quot;nofollow&quot;&gt;David Kuckhermann&lt;/a&gt; (a percussionist) really helped alleviate stress and keep the pain at bay: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=hUyMNyrOHJQ&quot; rel=&quot;nofollow&quot;&gt;video podcast - exercises for tendonitis and carpal tunnel&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-01T21:05:02.783" CommentCount="3" />
  <row Id="176" PostTypeId="2" ParentId="167" CreationDate="2010-09-01T21:05:35.453" Score="2" ViewCount="" Body="&lt;p&gt;If you are right handed, try to use sometimes the left hand (and vice versa if you are left handed).&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-01T21:05:35.453" CommentCount="1" />
  <row Id="177" PostTypeId="1" AcceptedAnswerId="3112" CreationDate="2010-09-01T21:08:10.337" Score="12" ViewCount="275" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Actor_model&quot; rel=&quot;nofollow&quot;&gt;The Actor Model&lt;/a&gt; that is used by &lt;a href=&quot;http://en.wikipedia.org/wiki/Erlang_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Erlang&lt;/a&gt; seem to be a very different way to do concurrent programming. What is your thoughts on the Actor Model? Will it be a popular solution for concurrency?&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2011-04-14T10:46:23.280" Title="What is your thoughts about the Actor Model?" Tags="&lt;actor-model&gt;&lt;concurrency&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="178" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T21:08:33.410" Score="103" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;mdash; Rick Cook&lt;/p&gt;&#xA;" OwnerUserId="81" LastEditorUserId="8076" LastEditorDisplayName="" LastEditDate="2011-01-20T09:57:59.407" LastActivityDate="2011-01-20T09:57:59.407" CommunityOwnedDate="2010-09-04T10:57:01.747" />
  <row Id="179" PostTypeId="2" ParentId="161" CreationDate="2010-09-01T21:09:22.377" Score="5" ViewCount="" Body="&lt;p&gt;WPF&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Expensive&lt;/strong&gt; - UI code has to be rewritten to use it.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Risk&lt;/strong&gt; - That the end user won't have .NET 3.5+.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="40" LastActivityDate="2010-09-01T21:09:22.377" CommentCount="3" />
  <row Id="180" PostTypeId="1" AcceptedAnswerId="184" CreationDate="2010-09-01T21:09:53.563" Score="6" ViewCount="310" Body="&lt;pre&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;&#xA;using namespace std;&#xA;&#xA;void main() {&#xA;  cout &amp;lt;&amp;lt; &quot;Hello World!&quot; &amp;lt;&amp;lt; endl;&#xA;  cout &amp;lt;&amp;lt; &quot;Welcome to C++ Programming&quot; &amp;lt;&amp;lt; endl;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Should the code print &lt;em&gt;Hello World!&lt;/em&gt;, or &lt;em&gt;Hello, World!&lt;/em&gt;?&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2010-09-03T01:52:28.797" LastActivityDate="2010-09-20T17:32:40.450" ClosedDate="2011-05-23T19:55:31.957" Title="Is it &quot;Hello World&quot; or &quot;Hello, World&quot;?" Tags="&lt;programming-languages&gt;&lt;history&gt;" AnswerCount="6" CommentCount="6" />
  <row Id="181" PostTypeId="2" ParentId="109" CreationDate="2010-09-01T21:10:20.367" Score="20" ViewCount="" Body="&lt;p&gt;Forgetting to close connections.  (HTTP, database, whatever.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Closing the connections prematurely.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-01T21:10:20.367" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="7" />
  <row Id="182" PostTypeId="2" ParentId="163" CreationDate="2010-09-01T21:11:44.213" Score="15" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/020161622X&quot; rel=&quot;nofollow&quot;&gt;The Pragmatic Programmer: From Journeyman to Master - Andrew Hunt and David Thomas&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This book is all about how to write code that works and is maintainable. A key concept is being practical. Everything in the book is boiled down to 70 tips that are easy to remember that help you deliver better, higher-quality software.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-01T21:11:44.213" />
  <row Id="183" PostTypeId="2" ParentId="161" CreationDate="2010-09-01T21:12:19.480" Score="9" ViewCount="" Body="&lt;h2&gt;F#&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Some companies are starting to use &lt;a href=&quot;http://en.wikipedia.org/wiki/F_Sharp_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;F#&lt;/a&gt; for larger projects. It is interresting, but I don't think it is as proved as OOP for large line-of-business applications.&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-01T21:03:56.463" LastActivityDate="2010-10-01T21:03:56.463" CommentCount="12" />
  <row Id="184" PostTypeId="2" ParentId="180" CreationDate="2010-09-01T21:14:30.087" Score="8" ViewCount="" Body="&lt;p&gt;It should be &quot;hello, world&quot; without capitals or exclamation mark. The first hello world program was AFAIK in The C Programming Language, and if you're going to follow tradition slavishly, you might as well do it properly ;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; OK, according to Wikipedia, the first instance of using &quot;hello, world&quot; in an example program occurs in Kernighan's book Tutorial Introduction to the Language B.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-01T21:14:30.087" CommentCount="1" />
  <row Id="185" PostTypeId="2" ParentId="57" CreationDate="2010-09-01T21:16:20.393" Score="2" ViewCount="" Body="&lt;p&gt;Spaces or Tabs - What Atwood really says is pick one thing and be consistent in your project. The only holy grail of code formatting is to make certain that its consistent so that the psychopath who maintains your code after you doesn't feel compelled to remedy the situation permanently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, if you're working in Python or any other language where whitespace is an actual programming construct I can't imagine using tabs.&lt;/p&gt;&#xA;" OwnerUserId="53" LastActivityDate="2010-09-01T21:16:20.393" CommentCount="3" />
  <row Id="186" PostTypeId="2" ParentId="134" CreationDate="2010-09-01T21:16:59.123" Score="2" ViewCount="" Body="&lt;p&gt;We all know that hourly billing would be better (for non-trivial projects), but it is very hard to have it accepted by the customer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you should do a high degree planning and scheduling &lt;strong&gt;along with the customer&lt;/strong&gt;, so he will know that you're not trying to cheat him. You could also try to agree on compensations if the project takes more time that planned &lt;em&gt;in spite of the high quality scheduling&lt;/em&gt; (it should be clear at this point the value of a good scheduling, shared with the customer). Don't forget to plan also risk management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do so you chances to have an hourly billing would be higher, but if you really don't want to cheat on the customer on the hours you spend on his project, it would become not much better than per-project billing...&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-01T21:16:59.123" />
  <row Id="187" PostTypeId="2" ParentId="180" CreationDate="2010-09-01T21:17:08.490" Score="4" ViewCount="" Body="&lt;p&gt;Brian W. Kernighan (co-author of &lt;em&gt;The C Programming Language&lt;/em&gt;) &lt;a href=&quot;http://www.lysator.liu.se/c/bwk-tutor.html#simple-c&quot; rel=&quot;nofollow&quot;&gt;wrote&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;main( ) {&#xA;    printf(&quot;hello, world&quot;);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;... which led to the tradition we have today of &lt;code&gt;&quot;Hello, World&quot;&lt;/code&gt; being the traditional First Program.&lt;/p&gt;&#xA;" OwnerUserId="83" LastEditorUserId="30" LastEditorDisplayName="" LastEditDate="2010-09-01T21:36:15.163" LastActivityDate="2010-09-01T21:36:15.163" CommentCount="3" />
  <row Id="188" PostTypeId="1" AcceptedAnswerId="197" CreationDate="2010-09-01T21:19:59.450" Score="9" ViewCount="158" Body="&lt;p&gt;For the longest time in places like &lt;a href=&quot;http://javachannel.net/wiki/pmwiki.php&quot; rel=&quot;nofollow&quot;&gt;Java's IRC channel&lt;/a&gt;, SO, and other places I've been told something along the lines of &quot;Worry about how the code looks and its readability/understandability now, and performance later if absolutely necessary&quot;. So for the longest time, I haven't really been OCD about performance for my small desktop or web apps, just removing the obviously inefficient.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most responses are &quot;What about scalability?&quot;. Thats a legitimate point, but if my app was only built to parse, say, files 10,000 lines long, should I make my code a mess for the small percentage of people that are going to shove in a 1,000,000 line file?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My main question is when should I trade the easy but somewhat inefficient ways of doing tasks for big giant complicated beasts that do things extremely quickly but destroy any possible ways of upgrading and make the code excessively difficult and prone to rewriting anyway by the next developer? &lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-01T21:30:14.727" LastActivityDate="2010-09-02T14:13:15.503" Title="When should I care about performance?" Tags="&lt;usage&gt;&lt;performance&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="189" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T21:20:18.417" Score="7" ViewCount="" Body="&lt;p&gt;Quoting &lt;a href=&quot;http://c2.com/cgi/wiki?MakeItWorkMakeItRightMakeItFast&quot; rel=&quot;nofollow&quot;&gt;Kent Beck&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Make It Work &lt;br /&gt;&#xA;  Make It Right &lt;br /&gt;&#xA;  Make It Fast &lt;br /&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="74" LastEditorUserId="3270" LastEditorDisplayName="" LastEditDate="2010-09-22T02:13:08.977" LastActivityDate="2010-09-22T02:13:08.977" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="2" />
  <row Id="190" PostTypeId="2" ParentId="134" CreationDate="2010-09-01T21:22:08.633" Score="5" ViewCount="" Body="&lt;p&gt;There's always going to be a struggle between you and the client over costs: you want to charge as much as you can from a client, and a client is going to want to get as much work for as little cost as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, when you charge hourly, it leaves open to negotiation how many hours a project should take to complete. You may think it'll take 10 hours, but your client thinks you should do it in 5.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By charging by project, there's very little open to negotiation: it costs $X, and the client can take it or leave it.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-01T21:22:08.633" CommentCount="3" />
  <row Id="191" PostTypeId="2" ParentId="67" CreationDate="2010-09-01T21:23:43.777" Score="14" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://steve-yegge.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;Steve Yegge's blog&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="40" LastActivityDate="2010-09-01T21:23:43.777" CommunityOwnedDate="2010-09-23T12:50:11.533" CommentCount="2" />
  <row Id="192" PostTypeId="1" AcceptedAnswerId="14660" CreationDate="2010-09-01T21:24:10.947" Score="9" ViewCount="194" Body="&lt;p&gt;If I have some code that has 80% test coverage (all tests pass), is it fair to say that it's of higher quality than code with no test coverage?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or is it fair to say it's more maintainable?&lt;/p&gt;&#xA;" OwnerUserId="55" LastActivityDate="2010-10-26T13:37:16.303" Title="Is test coverage an adequate measure of code quality?" Tags="&lt;code-quality&gt;&lt;test-coverage&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="2" />
  <row Id="193" PostTypeId="2" ParentId="167" CreationDate="2010-09-01T21:25:29.597" Score="2" ViewCount="" Body="&lt;p&gt;Ergonomics!  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Make sure your desk is at the right height for you.&lt;/li&gt;&#xA;&lt;li&gt;get an ergonomic keyboard and make sure it's well in front of you so your wrists aren't bent.&lt;/li&gt;&#xA;&lt;li&gt;move your hand &lt;em&gt;with&lt;/em&gt; the mouse (so don't bend your wrist to pull the mouse closer, use your whole arm).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="35" LastActivityDate="2010-09-01T21:25:29.597" />
  <row Id="194" PostTypeId="2" ParentId="188" CreationDate="2010-09-01T21:25:37.677" Score="0" ViewCount="" Body="&lt;p&gt;I try to make code readable - performance be damned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When, and if, code proves to be too slow, I will refactor it to be faster. Usually refactoring process is followed with lot of comments since code does tend to be less readable.&lt;/p&gt;&#xA;" OwnerUserId="52" LastActivityDate="2010-09-01T21:25:37.677" />
  <row Id="195" PostTypeId="2" ParentId="161" CreationDate="2010-09-01T21:25:45.220" Score="4" ViewCount="" Body="&lt;p&gt;Google Apps, iPhone Development, Cloud Computing (e.g. Microsoft Azure, Salesforce)&lt;/p&gt;&#xA;" OwnerUserId="85" LastActivityDate="2010-09-01T21:25:45.220" CommentCount="4" />
  <row Id="196" PostTypeId="2" ParentId="134" CreationDate="2010-09-01T21:25:46.857" Score="3" ViewCount="" Body="&lt;p&gt;I used to bill hourly when I was consulting for an on-line start-up several years ago, and it struck me that it really was a big act of trust on both our parts.  The client trusted I wasn't going to charge him for looking up sports scores on ESPN, I trusted he wasn't going to accuse me of the same if the project I was working on took longer than anticipated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Luckily for both of us, we were both worthy of that level of trust.  But as a general rule, I have to think that billing per project is safer for all parties involved.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-01T21:25:46.857" />
  <row Id="197" PostTypeId="2" ParentId="188" CreationDate="2010-09-01T21:26:38.360" Score="13" ViewCount="" Body="&lt;p&gt;Worry about performance when it becomes a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you write a small app to process 10,000 line files and you get a 1,000,000 line file every 100th file, it probably doesn't matter that it takes longer to process that one file. However, if you are regularly getting files that are 5-10 times larger than initially and your application is taking too long to do its job, then you start profiling and optimizing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I said &quot;too long to do its job&quot;. That is up to the user or sponsoring organization to decide. If I'm doing a task and it takes me 5 minutes to do something when it took me 3 without the software or with a different tool, I'd probably file a bug report or maintenance request to have that improved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are the user, how long you want your software to take to do its job is up to you - only you can decide if you want it done faster or if you are willing to wait longer to have more readable code.&lt;/p&gt;&#xA;" OwnerUserId="4" LastEditorUserId="4" LastEditorDisplayName="" LastEditDate="2010-09-02T13:50:30.520" LastActivityDate="2010-09-02T13:50:30.520" CommentCount="1" />
  <row Id="198" PostTypeId="2" ParentId="192" CreationDate="2010-09-01T21:26:58.877" Score="2" ViewCount="" Body="&lt;p&gt;I would call it more-refactorable. Refactoring gets extremely easy if code is covered with lot of tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would be fair to call it more maintainable.&lt;/p&gt;&#xA;" OwnerUserId="52" LastActivityDate="2010-09-01T21:26:58.877" />
  <row Id="199" PostTypeId="2" ParentId="9" CreationDate="2010-09-01T21:27:02.397" Score="1" ViewCount="" Body="&lt;p&gt;Avoid web browsing non-work related sites (whoops, better go now!)&lt;/p&gt;&#xA;" OwnerUserId="85" LastActivityDate="2010-09-01T21:27:02.397" CommunityOwnedDate="2011-01-04T21:22:43.957" />
  <row Id="200" PostTypeId="2" ParentId="109" CreationDate="2010-09-01T21:27:21.013" Score="3" ViewCount="" Body="&lt;p&gt;Null References. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In OOP an object has control ( or should have control ) over the attributes/data of himself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;By setting them to an usable state and controlling how those attributes are modified, the source code prevents using null references ( Initialize with valid values ).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The common mistake is to allow the modification of these attributes with a potentially null reference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ej. in Java:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Customer {&#xA;    private final String name; // null at this point &#xA;    public Customer( String named ) {&#xA;        if( named == null ) { throw IllegalArgumentException(&quot;name cannot be null&quot;); }&#xA;        this.name = named; // no longer null and the object has a valid state &#xA;    }&#xA;&#xA;    public String getName(){&#xA;        return this.name;// ok &#xA;    }&#xA;    public void setName( String newName ) {&#xA;        this.name = newName; // eeerh... common programming error if newName = null &#xA;    }&#xA;    public int someCalculation() {&#xA;        return this.name.length();// NullPointerException &#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;A possible workaround is: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1.- Remove the setter&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2.- Validate the setter&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public void setName( String newName ) {&#xA;    if( newName == null ) { throw new NullPointerException(&quot;newName must be not null&quot;); }&#xA;    this.name = newName;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That is, reject the invalid value, the let know the caller, they are using the object wrong.  If the program is to fail, it is much better to &lt;a href=&quot;http://en.wikipedia.org/wiki/Fail-fast&quot; rel=&quot;nofollow&quot;&gt;fail fast&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One, mistake to try to mitigate  this problem is to validate before each call:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public int someCalculation() {&#xA;    if( this.name != null ) {  &#xA;        return this.name.length();&#xA;    } else {&#xA;        return 0;&#xA;    }&#xA; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But, its too late, because at that point the object no longer trust its internal data, and that pattern &lt;code&gt;if( x != null ){}&lt;/code&gt;  will spread all over the place, just making things worst.&lt;/p&gt;&#xA;" OwnerUserId="82" LastActivityDate="2010-09-01T21:27:21.013" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="2" />
  <row Id="201" PostTypeId="2" ParentId="192" CreationDate="2010-09-01T21:27:30.723" Score="4" ViewCount="" Body="&lt;p&gt;By one definition it's more maintainable, as any breaking change is more likely to be caught by the tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the fact that code passes the unit tests doesn't mean it's intrinsically of higher quality. The code might still be badly formatted with irrelevant comments and inappropriate data structures, but it can still pass the tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know which code I'd prefer to maintain and extend.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-01T21:27:30.723" />
  <row Id="202" PostTypeId="1" AcceptedAnswerId="207" CreationDate="2010-09-01T21:28:15.620" Score="-2" ViewCount="349" Body="&lt;p&gt;Apart from Drupal, what PHP open source project could I join that would allow me to get hired as freelancer with more chances? By &lt;em&gt;more chances&lt;/em&gt;, I mean the project where a programmer with knowledge of the project is most frequently hired as freelancer.&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2010-09-01T21:43:41.467" LastActivityDate="2010-09-01T21:43:41.467" Title="What open source project could I join?" Tags="&lt;hiring&gt;&lt;open-source&gt;" AnswerCount="1" CommentCount="6" />
  <row Id="203" PostTypeId="2" ParentId="188" CreationDate="2010-09-01T21:28:18.180" Score="0" ViewCount="" Body="&lt;p&gt;Um - Never? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, code should always be written so as to be easily understood and maintained.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With regard to when to deal with performance problems, deal with them once you identify them, don't pre-optimize your code because then you'll just be guessing about where the performance problems are. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your code is written so as to be clear, concise, understandable, and maintainable then you or another programmer should have no problem refactoring the code to make it more efficient.&lt;/p&gt;&#xA;" OwnerUserId="53" LastActivityDate="2010-09-01T21:28:18.180" CommentCount="3" />
  <row Id="204" PostTypeId="2" ParentId="9" CreationDate="2010-09-01T21:32:16.273" Score="1" ViewCount="" Body="&lt;p&gt;Try to get into &quot;flow state&quot;. It can often be hard, so you should reduce distractions as much as possible. If you are tired, do some exercise - it will wake you up.&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-01T21:32:16.273" CommunityOwnedDate="2011-01-04T21:22:43.957" />
  <row Id="205" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T21:33:06.957" Score="108" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Some people, when confronted with a&#xA;  problem, think &quot;I know, I'll use&#xA;  regular expressions.&quot;&lt;br&gt;&#xA;  Now they have  two problems.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;mdash; Jamie Zawinski&lt;/p&gt;&#xA;" OwnerUserId="53" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-27T14:44:27.827" LastActivityDate="2010-09-27T14:44:27.827" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="7" />
  <row Id="206" PostTypeId="1" AcceptedAnswerId="211" CreationDate="2010-09-01T21:33:15.937" Score="17" ViewCount="324" Body="&lt;p&gt;Test driven development. I get it, like it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But writing tests does require overhead. So should TDD be used universally throughout the code base, or are there areas where TDD provides a high ROI and other areas where the ROI is so low that it is not worth following.&lt;/p&gt;&#xA;" OwnerUserId="85" LastEditorUserId="6" LastEditorDisplayName="" LastEditDate="2010-09-01T23:02:52.977" LastActivityDate="2010-11-23T22:43:13.050" Title="Always and only TDD" Tags="&lt;development-process&gt;&lt;tdd&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="207" PostTypeId="2" ParentId="202" CreationDate="2010-09-01T21:34:26.330" Score="6" ViewCount="" Body="&lt;p&gt;An even better claim would be to start an open-source project that gains some momentum.&lt;/p&gt;&#xA;" OwnerUserId="85" LastActivityDate="2010-09-01T21:34:26.330" CommentCount="4" />
  <row Id="209" PostTypeId="2" ParentId="9" CreationDate="2010-09-01T21:37:34.757" Score="4" ViewCount="" Body="&lt;p&gt;I find that getting up from my desk for a short walk (2-4 minutes every hour or so) clears my mind and lets me get back in the groove. Note that this needs to be scheduled and disciplined, otherwise it becomes mere avoidance and anything boring or difficult will result in me wandering aimlessly for a bit and not getting anything done.&lt;/p&gt;&#xA;" OwnerUserId="39" LastActivityDate="2010-09-01T21:37:34.757" CommunityOwnedDate="2011-01-04T21:22:43.957" CommentCount="1" />
  <row Id="210" PostTypeId="2" ParentId="100" CreationDate="2010-09-01T21:38:11.470" Score="1" ViewCount="" Body="&lt;p&gt;I subscribed to &lt;a href=&quot;http://java.dzone.com/&quot; rel=&quot;nofollow&quot;&gt;Javalobby&lt;/a&gt;'s feed. It's really about Java, but somethimes they also have news about more general stuff.&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-09-01T21:38:11.470" />
  <row Id="211" PostTypeId="2" ParentId="206" CreationDate="2010-09-01T21:39:01.663" Score="14" ViewCount="" Body="&lt;p&gt;I'd say avoid TDD in places where the code is likely to change structurally a lot.  Ie, it's great to have a pile of tests for a method whose signature changes rarely but gets refactored internally more frequently, but it sucks to have to fix your tests every time a highly volatile interface changes dramatically.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The apps I've been working on recently have been data-driven webapps built on a Gui-&gt;Presenter-&gt;BusinessLogic-&gt;Data Access Layer-based architecture.  My data access layer is tested like nobody's business.  The business logic layer is pretty well tested.  The Presenters are only tested in the more stable areas, and the GUI, which is changing hourly, has almost no tests.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T21:39:01.663" />
  <row Id="212" PostTypeId="2" ParentId="180" CreationDate="2010-09-01T21:42:47.210" Score="1" ViewCount="" Body="&lt;p&gt;I've always done just &lt;code&gt;Hello World&lt;/code&gt; not because of any book or online guide, but because I wasn't going to write any of the following&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Hello World!&lt;/li&gt;&#xA;&lt;li&gt;hello world&lt;/li&gt;&#xA;&lt;li&gt;hello World&lt;/li&gt;&#xA;&lt;li&gt;Hello, world&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;etc...&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-01T21:42:47.210" />
  <row Id="213" PostTypeId="2" ParentId="154" CreationDate="2010-09-01T21:43:08.547" Score="26" ViewCount="" Body="&lt;p&gt;So many great ones from xkcd, but this is still my favorite:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/zoG8D.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="53" LastActivityDate="2010-09-01T21:43:08.547" CommentCount="10" />
  <row Id="214" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T21:45:29.193" Score="14" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Software is like sex: it's better when it's free.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;mdash; Linus Torvalds&lt;/p&gt;&#xA;" OwnerUserId="87" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-27T15:19:39.217" LastActivityDate="2010-09-27T15:19:39.217" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="8" />
  <row Id="215" PostTypeId="1" AcceptedAnswerId="2482" CreationDate="2010-09-01T21:49:08.403" Score="9" ViewCount="250" Body="&lt;p&gt;Having taken a course in Operating Systems I'm interested in expanding my knowledge of the Linux kernel and practice working with a big system. What are some interesting but not overly difficult projects I can try my hand at? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: a bit of background on what I did do with the kernel. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Implemented a new scheduling policy&lt;/li&gt;&#xA;&lt;li&gt;Implemented User Threads and a corresponding mutex library (not really kernel hacking but contained kernel related theory)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2010-09-01T21:56:19.560" LastActivityDate="2010-09-10T09:31:23.957" Title="What are some interesting but not too difficult projects for a beginner kernel hacker?" Tags="&lt;linux&gt;&lt;kernel&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="216" PostTypeId="2" ParentId="215" CreationDate="2010-09-01T21:53:03.780" Score="3" ViewCount="" Body="&lt;p&gt;It depends on your existing background. If you are an embedded developer, you can write or improve some device driver. There aren't many other task to do in the kernel, unless you want to write a new process scheduler of course. I would suggest instead to study the existing source, it is a boring task but for a beginner it is almost the only thing to do.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-01T21:53:03.780" />
  <row Id="217" PostTypeId="1" AcceptedAnswerId="258" CreationDate="2010-09-01T21:53:23.537" Score="2" ViewCount="300" Body="&lt;p&gt;On my resume, should I report I know a programming language derived from BASIC?&lt;/p&gt;&#xA;" OwnerUserId="44" LastActivityDate="2011-02-27T22:31:03.333" Title="Should I keep REALbasic on my resume?" Tags="&lt;programming-languages&gt;&lt;resume&gt;" AnswerCount="9" />
  <row Id="220" PostTypeId="1" AcceptedAnswerId="228" CreationDate="2010-09-01T21:56:06.547" Score="32" ViewCount="900" Body="&lt;p&gt;How would someone implement Agile process concepts as a solo developer?  Agile seems useful for getting applications developed at a faster pace, but it also seems very team oriented...&lt;/p&gt;&#xA;" OwnerUserId="75" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-21T08:48:43.833" LastActivityDate="2011-05-22T03:59:49.230" Title="Agile for the Solo Developer" Tags="&lt;agile&gt;&lt;one-man-army&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="9" />
  <row Id="221" PostTypeId="1" AcceptedAnswerId="227" CreationDate="2010-09-01T21:56:33.737" Score="14" ViewCount="406" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/69788/using-foo-and-bar-in-examples&quot;&gt;Using &amp;ldquo;Foo&amp;rdquo; and &amp;ldquo;Bar&amp;rdquo; in examples&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I know AT&amp;amp;T labs used them in their Unix days, but do they have even deeper histories?&lt;/p&gt;&#xA;" OwnerUserId="85" LastEditorUserId="25708" LastEditorDisplayName="" LastEditDate="2011-05-31T20:15:50.593" LastActivityDate="2011-05-31T20:15:50.593" ClosedDate="2011-06-01T13:08:01.847" Title="What's the origin of foo and bar?" Tags="&lt;terminology&gt;&lt;history&gt;&lt;variables&gt;&lt;etymology&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="1" />
  <row Id="222" PostTypeId="2" ParentId="217" CreationDate="2010-09-01T21:56:45.397" Score="1" ViewCount="" Body="&lt;p&gt;I think that the only BASIC worth to keep on the resume is Visual Basic 6. But would you  still accept a job on VB6?&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-01T22:38:28.957" LastActivityDate="2010-09-01T22:38:28.957" CommentCount="1" />
  <row Id="223" PostTypeId="2" ParentId="206" CreationDate="2010-09-01T21:58:01.167" Score="4" ViewCount="" Body="&lt;p&gt;I suggest writing a full test suite in areas where it's sensible and practical to do.  In less practical areas, write sanity checks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, the overhead of a full set of test cases is certainly worth it in most cases, but realistically code coverage has diminishing returns. At some point, writing more tests just to increase code coverage just doesn't make sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, depending on your language/technology, testing the UI may not be practical or even feasible. A lot of tests will probably rely on what a user sees and can't be automated.  How would you test that a method for generating a captcha produces an image that is readable by a human for example?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a complete set of tests is going to take you three days to write, the likelihood of a bug being introduced in that component down the track is very low, and the function itself only takes half an hour to write, you should probably think hard about whether that time is worth it.  Maybe just writing a basic sanity check for that function would provide value?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My general advice would be that you should test components fully where tests can be written relatively easily. However, if it's an area that's very hard to test, draw a line in the sand and write tests that will test the area at a higher level rather than test it fully.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the previous captcha example, maybe write tests that check an image of the correct size and format is returned and that no exceptions are thrown.  That gives you some level of assurance without going overboard.&lt;/p&gt;&#xA;" OwnerUserId="91" LastActivityDate="2010-09-01T21:58:01.167" />
  <row Id="224" PostTypeId="2" ParentId="217" CreationDate="2010-09-01T21:58:22.250" Score="0" ViewCount="" Body="&lt;p&gt;If you were programming when you were 15 years old, and RealBasic was the language you used: that's pretty impressive on a resume.&lt;/p&gt;&#xA;" OwnerUserId="85" LastActivityDate="2010-09-01T21:58:22.250" />
  <row Id="225" PostTypeId="2" ParentId="221" CreationDate="2010-09-01T21:58:52.427" Score="7" ViewCount="" Body="&lt;p&gt;From &lt;a href=&quot;http://en.wikipedia.org/wiki/Foobar&quot; rel=&quot;nofollow&quot;&gt;Wikipedia&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The origins of the terms are not known with certainty, and several anecdotal theories have been advanced to identify them. Foobar may have derived from the military acronym FUBAR and gained popularity due to the fact that it is pronounced the same. In this meaning it also can derive from the German word furchtbar, which means awful and terrible and described the circumstances of the Second World War.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;FOO is an abbreviation of Forward Observation Officer, a British Army term in use as early as the First World War. The etymology of foo is explored in the Internet Engineering Task Force (IETF) Request for Comments 3092, which notes usage of foo in 1930s cartoons including The Daffy Doc (with Daffy Duck) and comic strips, especially Smokey Stover and Pogo. From there the term migrated into military slang, where it merged with FUBAR.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;Bar&quot; as the second term in the series may have developed in electronics, where a digital signal which is considered &quot;on&quot; with a negative or zero-voltage condition is identified with a horizontal bar over the signal label; the notation for an inverted signal foo would then be pronounced &quot;foo bar&quot;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-01T21:58:52.427" />
  <row Id="226" PostTypeId="2" ParentId="217" CreationDate="2010-09-01T21:59:41.787" Score="3" ViewCount="" Body="&lt;p&gt;That depends on whether you have anything better to replace it.  If you know at least two languages used in production (java, c#, python, ruby, etc), I'd nix RealBasic.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T21:59:41.787" />
  <row Id="227" PostTypeId="2" ParentId="221" CreationDate="2010-09-01T21:59:52.707" Score="20" ViewCount="" Body="&lt;p&gt;From the &lt;a href=&quot;http://catb.org/jargon/html/F/foo.html&quot; rel=&quot;nofollow&quot;&gt;Jargon file&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;When ‘foo’ is used in connection with ‘bar’ it has generally traced to the WWII-era Army slang acronym FUBAR (‘Fucked Up Beyond All Repair’ or ‘Fucked Up Beyond All Recognition’), later modified to foobar. Early versions of the Jargon File interpreted this change as a post-war bowdlerization, but it it now seems more likely that FUBAR was itself a derivative of ‘foo’ perhaps influenced by German furchtbar (terrible) — ‘foobar’ may actually have been the original form.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;For, it seems, the word ‘foo’ itself had an immediate prewar history in comic strips and cartoons. The earliest documented uses were in the Smokey Stover comic strip published from about 1930 to about 1952. Bill Holman, the author of the strip, filled it with odd jokes and personal contrivances, including other nonsense phrases such as “Notary Sojac” and “1506 nix nix”. The word “foo” frequently appeared on license plates of cars, in nonsense sayings in the background of some frames (such as “He who foos last foos best” or “Many smoke but foo men chew”), and Holman had Smokey say “Where there's foo, there's fire”.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-01T21:59:52.707" />
  <row Id="228" PostTypeId="2" ParentId="220" CreationDate="2010-09-01T22:01:26.957" Score="14" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;By doing test-driven development&lt;/li&gt;&#xA;&lt;li&gt;By developing in small sprints&lt;/li&gt;&#xA;&lt;li&gt;By having a lot of contact with the customer&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I remember reading a thesis about Cowboy Development, that is essentialy Agile for solo developers, but I can't remember where I found it.&lt;/p&gt;&#xA;" OwnerUserId="87" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2011-05-22T03:59:49.230" LastActivityDate="2011-05-22T03:59:49.230" CommentCount="0" />
  <row Id="231" PostTypeId="2" ParentId="167" CreationDate="2010-09-01T22:02:32.750" Score="5" ViewCount="" Body="&lt;p&gt;I have a simple rule: If something hurts, stop doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That might mean adjusting your workspace, or your posture, or just taking a break - pay attention to what your body is telling you - note any irritations or annoyances, and do what is necessary to avoid them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I specifically don't have a silly split-in-half keyboard. I do always make sure I get a real keyboard with good keys that type properly (no rubbery buttons) and that it is placed appropriately (i.e. not hunched up, nor on the edge of the desk), and similarly with the mouse.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-09-01T22:02:32.750" CommentCount="2" />
  <row Id="235" PostTypeId="2" ParentId="220" CreationDate="2010-09-01T22:05:41.543" Score="7" ViewCount="" Body="&lt;p&gt;Further to the answer from klez (all good suggestions), I'd suggest the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Keeping a product backlog&lt;/li&gt;&#xA;&lt;li&gt;Maintaining a sprint burndown and a product burndown&lt;/li&gt;&#xA;&lt;li&gt;Adopting the concepts of relative estimation and velocity&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="91" LastActivityDate="2010-09-01T22:05:41.543" CommentCount="3" />
  <row Id="237" PostTypeId="1" AcceptedAnswerId="244" CreationDate="2010-09-01T22:07:56.697" Score="16" ViewCount="630" Body="&lt;p&gt;Should I host it on GitHub, LaunchPad, Google Code, SourceForge, or something else?&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-10-19T20:09:17.823" LastActivityDate="2011-03-22T22:12:18.443" Title="I want to start an open source project. Where's the best place to host it?" Tags="&lt;recommendations&gt;&lt;open-source&gt;&lt;project-hosting&gt;" AnswerCount="12" CommentCount="3" FavoriteCount="7" />
  <row Id="238" PostTypeId="1" CreationDate="2010-09-01T22:08:24.307" Score="22" ViewCount="1271" Body="&lt;p&gt;The title basically says it all. Let's keep it one entry per answer so that the voting could sort the entries out. Also, let's avoid placing entries just for having a very cool programmer in them or for drawing ideas from computers. The entries should either be directly programming related, or related to the programming profession. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples for good entries include: Pirates of Silicon Valley, Revolution OS, Aardvark'd: 12 Weeks with Geeks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples for bad entries: The Matrix trilogy. &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;EDIT: Question was re formulated &lt;a href=&quot;http://programmers.stackexchange.com/questions/10845/what-are-some-good-realistic-programming-related-movies-docu-dramas-documentari&quot;&gt;here&lt;/a&gt; with new guidelines.&lt;/h2&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2010-10-10T16:14:34.293" LastActivityDate="2010-10-10T16:14:34.293" ClosedDate="2010-10-10T16:11:44.553" Title="What are your favorite programming related movies/documentaries?" Tags="&lt;movies&gt;" AnswerCount="21" CommentCount="7" FavoriteCount="17" />
  <row Id="239" PostTypeId="2" ParentId="238" CreationDate="2010-09-01T22:09:57.370" Score="33" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0151804/&quot; rel=&quot;nofollow&quot;&gt;Office Space&lt;/a&gt;&lt;/h2&gt;&#xA;" OwnerUserId="40" LastActivityDate="2010-09-01T22:09:57.370" CommentCount="1" />
  <row Id="240" PostTypeId="2" ParentId="238" CreationDate="2010-09-01T22:10:06.293" Score="14" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0113243/&quot; rel=&quot;nofollow&quot;&gt;Hackers&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Without a doubt the best, cheesiest, most ridiculous version of computers, programming, and hacking ever.  A must-see for any self-respecting developer.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T22:10:06.293" CommentCount="1" />
  <row Id="242" PostTypeId="2" ParentId="161" CreationDate="2010-09-01T22:13:50.203" Score="9" ViewCount="" Body="&lt;p&gt;Google &lt;a href=&quot;http://golang.org/&quot; rel=&quot;nofollow&quot;&gt;Go&lt;/a&gt;. It's unsupported and doesn't yet have enough momentum that Google couldn't just lose interest and cut it loose.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-01T22:13:50.203" CommentCount="1" />
  <row Id="243" PostTypeId="1" AcceptedAnswerId="858" CreationDate="2010-09-01T22:14:03.153" Score="7" ViewCount="335" Body="&lt;p&gt;What made your programming career advance?&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:00:08.930" LastActivityDate="2010-09-17T18:04:14.427" CommunityOwnedDate="2010-09-01T22:14:03.153" Title="What was the turning point of your programming career?" Tags="&lt;career&gt;&lt;advancements&gt;" AnswerCount="10" CommentCount="3" FavoriteCount="1" />
  <row Id="244" PostTypeId="2" ParentId="237" CreationDate="2010-09-01T22:14:41.670" Score="36" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://github.com/&quot; rel=&quot;nofollow&quot;&gt;GitHub&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Unlimited free open source repositories.&lt;/li&gt;&#xA;&lt;li&gt;No approval process.&lt;/li&gt;&#xA;&lt;li&gt;Supports the most popular DVCS.&lt;/li&gt;&#xA;&lt;li&gt;Out-of-the-box wikis.&lt;/li&gt;&#xA;&lt;li&gt;Users can download project source without source control installed.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="40" LastActivityDate="2010-09-01T22:14:41.670" CommentCount="9" />
  <row Id="245" PostTypeId="2" ParentId="237" CreationDate="2010-09-01T22:14:48.347" Score="3" ViewCount="" Body="&lt;p&gt;I recently started a Google Code project, and in general I really like it.  It has Mercurial, my version control system of choice.  Of course, this includes support for browsing commits on the web.  They offer clean links directly to the latest version of the repo (e.g. &lt;a href=&quot;http://project.googlecode.com/hg/directory/file.html&quot; rel=&quot;nofollow&quot;&gt;http://project.googlecode.com/hg/directory/file.html&lt;/a&gt;), and to go to a past revision you just add ?r=xxxx.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has a very clean interface design, in contrast to sites like SourceForge.  It also offers a wiki, although it's deliberately bare bones.  I'm satisfied with the issue system, though I haven't tried anything too complex yet.  There is basic integration with Mercurial, so if you mention &quot;issue nn&quot; in a commit, it will be turned into a link on the web interface.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest downside is that the hosting software itself is proprietary.  Launchpad is now mostly &lt;a href=&quot;https://dev.launchpad.net/Getting&quot; rel=&quot;nofollow&quot;&gt;open source&lt;/a&gt;, but I still find it tricky to navigate sometimes.&lt;/p&gt;&#xA;" OwnerUserId="97" LastActivityDate="2010-09-01T22:14:48.347" CommentCount="2" />
  <row Id="246" PostTypeId="2" ParentId="5" CreationDate="2010-09-01T22:15:01.967" Score="6" ViewCount="" Body="&lt;p&gt;I like to use Visual Studio because that is the environment I spend the most time in.&lt;/p&gt;&#xA;" OwnerUserId="85" LastActivityDate="2010-09-01T22:15:01.967" CommunityOwnedDate="2011-03-08T02:44:19.193" CommentCount="1" />
  <row Id="247" PostTypeId="1" AcceptedAnswerId="248" CreationDate="2010-09-01T22:16:46.590" Score="11" ViewCount="888" Body="&lt;p&gt;Does learning COBOL still make sense?&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:00:41.440" LastActivityDate="2011-05-02T13:21:01.583" CommunityOwnedDate="2011-05-02T13:21:01.583" Title="Is COBOL still worth learning?" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;cobol&gt;" AnswerCount="16" CommentCount="2" FavoriteCount="1" />
  <row Id="248" PostTypeId="2" ParentId="247" CreationDate="2010-09-01T22:17:53.817" Score="15" ViewCount="" Body="&lt;p&gt;I don't think so, unless you are already in the niche market where COBOL is still maintained.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-01T22:17:53.817" CommunityOwnedDate="2011-05-02T13:21:01.583" CommentCount="10" />
  <row Id="249" PostTypeId="2" ParentId="188" CreationDate="2010-09-01T22:21:58.387" Score="0" ViewCount="" Body="&lt;p&gt;I normally write code to be readable first and foremost. If, and only if, I find that the program runs &lt;strong&gt;too slow&lt;/strong&gt; to do its job, do I profile and optimise. That said, there is nothing wrong with getting into the habit of performing common optimisations that don't affect the readability of your code. That is, if a piece of code can be written in two equally (or nearly equally) readable ways, choose the one that's usually faster. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, in Python, list comprehensions (or generator expressions) tend to be faster than the equivalent &lt;code&gt;for&lt;/code&gt; loop, so I use list comprehensions where I can, if they don't affect readability (for instance, I don't nest list comprehensions if I can avoid it, and use a for loop instead because nested list comprehensions can be hard to mentally parse). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, immutable data types tend to be faster than mutable ones, so I use immutable data types where I can.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-01T22:21:58.387" />
  <row Id="250" PostTypeId="2" ParentId="5" CreationDate="2010-09-01T22:23:24.267" Score="1" ViewCount="" Body="&lt;p&gt;I've +1'd the answer for Notepad++ as it's my favourite text editor for proper text editing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However I tend to use &lt;a href=&quot;http://liquidninja.com/metapad/&quot; rel=&quot;nofollow&quot;&gt;Metapad&lt;/a&gt; for reading small text files, readme's, ini files and so on. It's like an ever so slightly souped up version of Notepad but with better editing, navigation and formatting:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/kvt98.gif&quot; alt=&quot;Metapad screenshot&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="100" LastActivityDate="2010-09-01T22:23:24.267" CommunityOwnedDate="2011-03-08T02:44:19.193" />
  <row Id="251" PostTypeId="2" ParentId="243" CreationDate="2010-09-01T22:23:56.230" Score="1" ViewCount="" Body="&lt;p&gt;Not sure if it's bad form to quote one's own blog post, but I wrote about my &quot;aha&quot; moment fairly recently. It was attending the Agile 2006 conference and meeting a lot of people who were doing very cool things. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In particular, understanding that the quality of the code and what I delivered was not the QA team's job, but was mine:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;... at the time I was working for a company that was trying to transition to agile, but many of our practices still hadn’t changed. We were (okay I was) still breaking the build and still expecting the QA team to find our bugs for us. We weren’t consistently doing TDD, we had no automation of the build acceptance and we were not practicing continuous integration. I could go on, but I’m sure you get the idea.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The “aha” moment for me was the concept that the quality of the code, and a lack of defects was my responsibility as a professional developer. It was my responsibility to ensure that no defects were passed to QA. Of course, I know that software cannot be perfect, and there will be defects, but my attitude towards defects changed after that talk. Defects should be unexpected. Defects should be unusual. Defects should be prevented, not found.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The full post is here, if anyone is interested: &#xA;&lt;a href=&quot;http://www.ext-it.com/2010/blog/is-your-consulting-code-an-asset-or-a-liability.html&quot; rel=&quot;nofollow&quot;&gt;http://www.ext-it.com/2010/blog/is-your-consulting-code-an-asset-or-a-liability.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-01T22:23:56.230" CommunityOwnedDate="2010-09-01T22:23:56.230" />
  <row Id="252" PostTypeId="1" AcceptedAnswerId="384" CreationDate="2010-09-01T22:24:05.273" Score="16" ViewCount="298" Body="&lt;p&gt;Some hold that the &lt;a href=&quot;http://en.wikipedia.org/wiki/Singleton_pattern&quot; rel=&quot;nofollow&quot;&gt;Singleton Pattern&lt;/a&gt; is always an anti-pattern.  What do you think?&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:01:03.857" LastActivityDate="2010-11-30T15:14:36.740" Title="When is Singleton appropriate?" Tags="&lt;design-patterns&gt;&lt;singleton&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="1" />
  <row Id="254" PostTypeId="2" ParentId="247" CreationDate="2010-09-01T22:25:48.403" Score="2" ViewCount="" Body="&lt;p&gt;I would not spend time over it.&lt;br&gt;&#xA;Anyway, COBOL is the building blocks of many legacy application programs that are mission critical for several Big Company started 20\30 years ago.&lt;br&gt;&#xA;So, if you are hired for a company that has part of its core business in COBOL, there are chances that you have to start to learn it. &lt;/p&gt;&#xA;" OwnerUserId="74" LastEditorUserId="74" LastEditorDisplayName="" LastEditDate="2010-09-02T06:31:10.643" LastActivityDate="2010-09-02T06:31:10.643" CommunityOwnedDate="2011-05-02T13:21:01.583" CommentCount="2" />
  <row Id="256" PostTypeId="2" ParentId="192" CreationDate="2010-09-01T22:30:36.700" Score="1" ViewCount="" Body="&lt;p&gt;I would agree about the maintainable part. Michael Feathers recently posted a video of an excellent talk of his called &quot;&lt;a href=&quot;http://michaelfeathers.typepad.com/michael_feathers_blog/2010/07/the-deep-synergy-between-testability-and-good-design.html&quot; rel=&quot;nofollow&quot;&gt;The deep synergy between testability and good design&lt;/a&gt;&quot; in which he discusses this topic. In the talk he says that the relationship is one way, that is, code that is well designed is testable, but testable code is not necessarily well designed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's worth noting that the video streaming is not great in the video, so it might be worth downloading if you want to watch in full.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-01T22:30:36.700" />
  <row Id="257" PostTypeId="1" AcceptedAnswerId="259" CreationDate="2010-09-01T22:36:34.420" Score="13" ViewCount="603" Body="&lt;p&gt;Programming from home has its advantages, but also its disadvantages. One of the disadvantages is the productivity is less constant.&lt;br&gt;&#xA;What would you suggest me to be more productive?&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:02:03.357" LastActivityDate="2011-03-30T08:18:20.987" Title="I program from home. What can I do to be more productive?" Tags="&lt;productivity&gt;&lt;home&gt;" AnswerCount="13" CommentCount="3" FavoriteCount="9" />
  <row Id="258" PostTypeId="2" ParentId="217" CreationDate="2010-09-01T22:36:42.877" Score="8" ViewCount="" Body="&lt;p&gt;Remember that the point of a resumé is to get you an interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, if you:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;a) want a job programming REALbasic;&lt;br&gt;&#xA;b) have useful experience where it's relevant you used REALbasic;&lt;br&gt;&#xA;c) want to discuss REALbasic in the interview;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then keep it on there, but if none of those are the case then remove it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Same applies to any other languages you might want to list.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-09-01T22:36:42.877" />
  <row Id="259" PostTypeId="2" ParentId="257" CreationDate="2010-09-01T22:42:46.763" Score="18" ViewCount="" Body="&lt;p&gt;My advice:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Set specific times that you (and anyone around who might distract you) know are set aside for work.&lt;/li&gt;&#xA;&lt;li&gt;Block out audio.  I use headphones blasting music that's musical enough to not suck, but uninteresting enough to keep my attention on my work- mostly bad trance and electronic.&lt;/li&gt;&#xA;&lt;li&gt;Try to split your work into manageable chunks that you can motivate yourself to complete- eg, &quot;I'm going to finish this filtering method before I go take a break.&quot;&lt;/li&gt;&#xA;&lt;li&gt;Avoid the temptation to look at distracting sites (facebook, reddit, programmers.stackexchange.com) even for a moment outside of whatever you designate as offical break times- one glance at your inbox can easily turn into 10 minutes of link browsing.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T22:42:46.763" CommentCount="1" />
  <row Id="260" PostTypeId="1" AcceptedAnswerId="261" CreationDate="2010-09-01T22:45:36.893" Score="5" ViewCount="405" Body="&lt;p&gt;Should programming be taught instead of calculus and ordinary differential equations?&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:02:35.930" LastActivityDate="2010-11-27T16:56:55.993" Title="Should programming be taught instead of advanced mathematics in school?" Tags="&lt;school&gt;&lt;teaching&gt;" AnswerCount="6" CommentCount="9" FavoriteCount="1" />
  <row Id="261" PostTypeId="2" ParentId="260" CreationDate="2010-09-01T22:47:15.670" Score="29" ViewCount="" Body="&lt;p&gt;Instead of? No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As well as? Yes.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-01T22:47:15.670" CommentCount="7" />
  <row Id="262" PostTypeId="1" AcceptedAnswerId="1297" CreationDate="2010-09-01T22:50:19.003" Score="27" ViewCount="1804" Body="&lt;blockquote&gt;&#xA;  &lt;h2&gt;Moderator Message&lt;/h2&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;This question already has nearly 30 answers. Therefore, please consider whether your answer is going to provide anything new. Please take a moment to review all the answers before posting. If you add a new answer, make sure it is substantiated by facts and references and is not just your personal opinion.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Will Java have the same importance it had in the past, or it will be less relevant than nowadays?&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2011-05-12T22:30:44.483" LastActivityDate="2011-05-12T22:30:44.483" CommunityOwnedDate="2011-03-14T15:05:05.090" Title="Will Java still be relevant in 5 years?" Tags="&lt;programming-languages&gt;&lt;java&gt;&lt;prediction&gt;" AnswerCount="28" CommentCount="9" FavoriteCount="9" />
  <row Id="263" PostTypeId="2" ParentId="257" CreationDate="2010-09-01T22:50:31.443" Score="6" ViewCount="" Body="&lt;p&gt;Work at night when there are less distractions :)&#xA;If not every day, the once in a while all night long coding sessions always does wonders.&lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-04T16:25:48.657" LastActivityDate="2010-09-04T16:25:48.657" />
  <row Id="264" PostTypeId="1" CreationDate="2010-09-01T22:50:49.210" Score="8" ViewCount="326" Body="&lt;p&gt;Could you suggest some interesting locations that a programmer should visit ?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;br&gt;&#xA;&lt;a href=&quot;http://www.computerhistory.org/visit/&quot; rel=&quot;nofollow&quot;&gt;Computer History Museum&lt;/a&gt; - Silicon Valley  Mountain View, CA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please:&lt;br&gt;&#xA; 1. Add a Web reference (where available)&lt;br&gt;&#xA; 2. Do not duplicate entries&lt;br&gt;&#xA; 3. Keep it related to Programming and avoid &quot;come to visit my town because we are nice people&quot;&lt;/p&gt;&#xA;" OwnerUserId="74" LastEditorUserId="74" LastEditorDisplayName="" LastEditDate="2010-12-21T09:11:09.203" LastActivityDate="2010-12-21T09:11:09.203" Title="What interesting locations should programmers visit?" Tags="&lt;recommendations&gt;&lt;history&gt;&lt;holidays&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="2" />
  <row Id="265" PostTypeId="1" CreationDate="2010-09-01T22:51:16.127" Score="1" ViewCount="118" Body="&lt;p&gt;I'm 34 and I completed an undergraduate honours degree in Drama and Education when I was 23. I've always had a strong interest in computers and technology, though only started looking at the programming side of things in my mid 20's.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Around this time I started looking at programming to accomplish tasks that were repetiotive and laborious and also a small amount of scripting for game programming. I've written in lua, python, perl (a little), Javascript and VB&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I now work as the sole administrator for a local chain of retailers with an e-commerce website. This was written sometime ago in C#/ASP.NET 2.0&#xA;I am now the sole maintainer of the site, and I have over time refactored code, fixed bugs, added new features and reached what I believe to be an acceptable level of competence in maintaining the site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm self taught in every aspect of computing. I've never had a formal lesson, but have read books, never been afraid to ask and followed stuff from tutorials online.&#xA;I struggle though with feeling inadequately qualified for the work I do: &#xA;I have no formal computing qualifications - is there something I would do well to aim for, either language specific or agnostic? If my background as a teacher is placing too much emphasis on qualifications, how can I indicate my skills to potential employers?&lt;/p&gt;&#xA;" OwnerUserId="100" LastActivityDate="2010-09-20T15:21:32.770" Title="What qualification should I aim for to highlight my abilities?" Tags="&lt;career&gt;&lt;qualifications&gt;" AnswerCount="3" />
  <row Id="266" PostTypeId="1" AcceptedAnswerId="291" CreationDate="2010-09-01T22:53:10.013" Score="4" ViewCount="375" Body="&lt;p&gt;Will we see only .NET applications running on Windows platform?&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-02T17:42:54.243" LastActivityDate="2010-11-18T14:01:19.450" Title="Will .NET applications replace applications using native code?" Tags="&lt;programming-languages&gt;&lt;tools&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="1" />
  <row Id="267" PostTypeId="2" ParentId="57" CreationDate="2010-09-01T22:53:32.117" Score="34" ViewCount="" Body="&lt;p&gt;Use tabs to indent the start of the line, &lt;strong&gt;one&lt;/strong&gt; tab per indent level, and let everyone pick how wide they want that to be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use spaces if you're lining up characters &lt;em&gt;within&lt;/em&gt; a line, so they always line up regardless of tab size.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And find and punch all the early software authors who let this stupid thing become an issue in the first place.&lt;br&gt;&#xA;&lt;em&gt;(Seriously, why is this even something that's discussed? Next you'll be telling me you also want to use multiple characters for line breaks!)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-09-01T22:53:32.117" CommentCount="1" />
  <row Id="268" PostTypeId="2" ParentId="57" CreationDate="2010-09-01T22:53:57.100" Score="3" ViewCount="" Body="&lt;p&gt;Tabs are the natural and orthodox choice, as they are by definition used for indentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, tabs are unevenly implemented, so the only real world solution is 4 spaces.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-01T22:53:57.100" CommentCount="1" />
  <row Id="269" PostTypeId="2" ParentId="262" CreationDate="2010-09-01T22:55:20.263" Score="19" ViewCount="" Body="&lt;p&gt;I would say it's on a decline.  It's not gone, but it's past its peak.&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="19107" LastEditorDisplayName="" LastEditDate="2011-03-14T15:16:06.073" LastActivityDate="2011-03-14T15:16:06.073" CommunityOwnedDate="2011-03-14T15:05:05.090" CommentCount="22" />
  <row Id="270" PostTypeId="2" ParentId="264" CreationDate="2010-09-01T22:55:38.023" Score="12" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.bletchleypark.org/&quot; rel=&quot;nofollow&quot;&gt;Bletchley Park&lt;/a&gt; (the home of WW2 code breaking in England) and the &lt;a href=&quot;http://www.tnmoc.org/&quot; rel=&quot;nofollow&quot;&gt;National Museum of Computing&lt;/a&gt; (both on the same site), featuring all your favourite home computers, and mighty machines like the Colossus and the Witch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both are staffed by volounteers and are fascinating and fun for geeks (and also families of geeks too). Brilliantly preserved hands on exhibits plus good displays and fascinating stories and characters.&lt;/p&gt;&#xA;" OwnerUserId="100" LastActivityDate="2010-09-01T22:55:38.023" CommentCount="1" />
  <row Id="271" PostTypeId="2" ParentId="57" CreationDate="2010-09-01T22:58:33.180" Score="5" ViewCount="" Body="&lt;p&gt;I'm a 4 space kind of guy, tabs just aren't consistent.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-01T22:58:33.180" CommentCount="1" />
  <row Id="272" PostTypeId="1" AcceptedAnswerId="831" CreationDate="2010-09-01T22:58:56.013" Score="24" ViewCount="1753" Body="&lt;p&gt;Do you call yourself a programmer, a developer, or a code monkey?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally prefer to say I am a developer.&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-02-04T00:08:14.933" LastActivityDate="2011-06-04T02:18:28.037" CommunityOwnedDate="2010-12-26T17:01:49.080" Title="When someone asks you what you do, what do you say (e.g. programmer, developer, code monkey)?" Tags="&lt;experience&gt;&lt;job-definition&gt;&lt;job-title&gt;" AnswerCount="33" CommentCount="5" FavoriteCount="5" />
  <row Id="273" PostTypeId="2" ParentId="252" CreationDate="2010-09-01T23:01:42.933" Score="1" ViewCount="" Body="&lt;p&gt;Personally I will use singletons when I need 1, 2, or 3, or some limited amount of the objects for the particular class in question.  Or I want to convey to the user of my class that I do not want multiple instances of my class being created for it to function properly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also I will only use it when I need to use it almost everywhere in my code and I don't want to pass an object as a parameter to each class or function that needs it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition I will only use a singleton if it does not break another function's referential transparency.  Meaning given some input it will always produce the same output.  I.e. I don't use it for global state.  Unless possibly that global state is initialized once and never changed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for when not to use it, see the above 3 and change them to the opposite.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-01T23:01:42.933" CommentCount="1" />
  <row Id="274" PostTypeId="2" ParentId="272" CreationDate="2010-09-01T23:03:37.993" Score="1" ViewCount="" Body="&lt;p&gt;I say &quot;programmer,&quot; because I can't write a GUI that's worth anything.&lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2011-06-04T02:18:28.037" LastActivityDate="2011-06-04T02:18:28.037" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="275" PostTypeId="1" AcceptedAnswerId="307" CreationDate="2010-09-01T23:04:48.977" Score="8" ViewCount="798" Body="&lt;p&gt;How did it turn out into a job?&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:03:04.663" LastActivityDate="2011-02-14T17:52:01.123" CommunityOwnedDate="2011-02-13T14:40:48.817" ClosedDate="2011-02-14T18:57:39.420" Title="How did you get started in programming?" Tags="&lt;career&gt;&lt;advancements&gt;" AnswerCount="38" CommentCount="2" FavoriteCount="4" />
  <row Id="276" PostTypeId="2" ParentId="18" CreationDate="2010-09-01T23:05:04.787" Score="0" ViewCount="" Body="&lt;p&gt;Developers that know Regular Expressions properly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example: data validation, mod_rewrite rules, analysing logs, and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's many situations where regex knowledge can be a great help. And probably even more where knowing &lt;em&gt;not&lt;/em&gt; to use (or ask for) a regex, because it isn't the best tool, will save time.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-09-01T23:05:04.787" CommentCount="2" />
  <row Id="277" PostTypeId="2" ParentId="272" CreationDate="2010-09-01T23:05:22.193" Score="19" ViewCount="" Body="&lt;p&gt;Software developer, because plenty of what I do - architecture, testing, requirements management, etc. - isn't coding.  I don't produce code, I produce software.&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-27T15:11:33.657" LastActivityDate="2011-01-27T15:11:33.657" CommunityOwnedDate="2010-12-26T17:01:49.080" CommentCount="5" />
  <row Id="278" PostTypeId="2" ParentId="257" CreationDate="2010-09-01T23:07:23.153" Score="3" ViewCount="" Body="&lt;p&gt;I have a fairly set schedule I like to keep which helps to build a routine.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But whether you're at home or in the office some days are just going to be less productive than others.  Sometimes if I'm having one of those days I'll grant myself 30 minutes to walk away from the computer and do something else.  Then when I come back I usually have a clearer mind and can recover some of that lost productivity.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-01T23:07:23.153" />
  <row Id="279" PostTypeId="1" AcceptedAnswerId="322" CreationDate="2010-09-01T23:07:57.257" Score="21" ViewCount="1038" Body="&lt;p&gt;What features were you hoping to see in .NET 4.0 and that you would like to see in .NET 5.0?&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-09T15:24:22.787" LastActivityDate="2011-05-10T09:25:57.667" CommunityOwnedDate="2011-05-10T09:21:11.253" ClosedDate="2011-05-10T20:38:00.673" Title="What features would you like to see in .NET version 5?" Tags="&lt;programming-languages&gt;&lt;tools&gt;&lt;future&gt;&lt;.net&gt;" AnswerCount="25" CommentCount="5" FavoriteCount="8" />
  <row Id="280" PostTypeId="2" ParentId="265" CreationDate="2010-09-01T23:08:20.970" Score="2" ViewCount="" Body="&lt;p&gt;In programming world, certifications aren't extremely important, its the &lt;strong&gt;experience&lt;/strong&gt;. This includes open source projects, contributions to OSS projects, and any management position for code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have experience, then your qualified for the job. Its down to what the job requires and who the hiring manager is to determine if its good enough&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-01T23:08:20.970" />
  <row Id="281" PostTypeId="2" ParentId="275" CreationDate="2010-09-01T23:08:32.327" Score="1" ViewCount="" Body="&lt;p&gt;Took a summer class on HTML in 6th grade.  Thought it was cool, so I largely taught myself &lt;a href=&quot;http://www.realsoftware.com/realstudio/&quot; rel=&quot;nofollow&quot;&gt;RealBasic&lt;/a&gt;.  Then I took every class on programming they'd let me in highschool.  I knew I was going to college for it midway through 9th grade.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I went to college for it, and I'm currently interning at a software development shop.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T23:08:32.327" CommunityOwnedDate="2011-02-13T14:40:48.817" />
  <row Id="282" PostTypeId="1" CreationDate="2010-09-01T23:08:45.820" Score="37" ViewCount="1516" Body="&lt;p&gt;On my way to work, I like to listen to podcasts. What are the best podcasts out there for developers to listen to (technical or otherwise)?&lt;/p&gt;&#xA;" OwnerUserId="29" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-26T15:27:16.410" LastActivityDate="2011-02-26T16:25:52.000" CommunityOwnedDate="2010-12-21T06:02:41.540" Title="What are the best podcasts?" Tags="&lt;productivity&gt;&lt;recommendations&gt;&lt;entertainment&gt;" AnswerCount="37" CommentCount="1" FavoriteCount="35" />
  <row Id="283" PostTypeId="2" ParentId="163" CreationDate="2010-09-01T23:12:17.950" Score="3" ViewCount="" Body="&lt;p&gt;Clean Code - Robert Martin&lt;/p&gt;&#xA;" OwnerUserId="29" LastActivityDate="2010-09-01T23:12:17.950" />
  <row Id="284" PostTypeId="2" ParentId="94" CreationDate="2010-09-01T23:13:09.760" Score="9" ViewCount="" Body="&lt;p&gt;Have several people from your team interview them independently.  Share your thoughts after, don't talk in between before interviewing them.  Talking in between will sway your judgement and you won't have independent assesements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the technical people interviewing them make them write code. For non technical, don't try to ask things you aren't experienced with.  Make sure you have at least some technical people interviewing though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interviews should not be conducted only by managers, it should be extremely important to every worker who they will work with in the future.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-01T23:13:09.760" CommentCount="1" />
  <row Id="285" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T23:15:05.853" Score="42" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;It's all talk until the code runs.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; Ward Cunningham&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-10-08T11:10:08.727" CommunityOwnedDate="2010-09-04T10:57:01.747" />
  <row Id="286" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T23:16:13.237" Score="24" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What's the simplest thing that could&#xA;  possibly work? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;mdash; Ward Cunningham&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="2598" LastEditorDisplayName="" LastEditDate="2010-09-27T17:32:56.833" LastActivityDate="2010-09-27T17:32:56.833" CommunityOwnedDate="2010-09-04T10:57:01.747" />
  <row Id="287" PostTypeId="2" ParentId="275" CreationDate="2010-09-01T23:16:54.350" Score="5" ViewCount="" Body="&lt;p&gt;If I remember correctly I started with plain HTML in middle school. I found out that I liked it (and confused the crap out of people when they found out &lt;code&gt;&amp;lt;h1&amp;gt;Hi There!&amp;lt;/h1&amp;gt;&lt;/code&gt; makes text big) and progressed to PHP. After I had a grasp about php I learned the obligatory CSS and JS. I then heavily developed all my skills till I felt I had reached my peak with the language&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometime in early early high school I took a small summer class on Java. It was neat at the time but OOP was so new to me that I didn't use it again for quite some time. Then as a sophomore in High School I took a Computer programming class (convincing the teacher to let me skip the into class) and learned a language that I've forgot the name of, Alice, and then moved on to Java. After that I got really into Java and decided to learn as much as I could about Java SE, eventually writing an IRC bot and even forking PircBot. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How it turned into an internship was when through the family network I got one at a local programming shop (this was before I heavily invested in Java). I went back to basics and worked on their inside reporting engine, and picked up some ColdFusion.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-01T23:16:54.350" CommunityOwnedDate="2011-02-13T14:40:48.817" CommentCount="2" />
  <row Id="288" PostTypeId="2" ParentId="282" CreationDate="2010-09-01T23:17:37.613" Score="18" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.dotnetrocks.com/&quot; rel=&quot;nofollow&quot;&gt;.NET Rocks!&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="45" LastActivityDate="2010-09-01T23:17:37.613" CommunityOwnedDate="2010-12-21T06:02:41.540" CommentCount="1" />
  <row Id="289" PostTypeId="2" ParentId="39" CreationDate="2010-09-01T23:18:06.437" Score="104" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;You can use an eraser on the drafting&#xA;  table or a sledgehammer on the&#xA;  construction site - Frank Lloyd Wright&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Not exactly a programming quote but it most certainly applies.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-10-11T15:26:30.000" LastActivityDate="2010-10-11T15:26:30.000" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="22" />
  <row Id="290" PostTypeId="2" ParentId="243" CreationDate="2010-09-01T23:18:18.310" Score="1" ViewCount="" Body="&lt;p&gt;Learning the fundamentals of OOP (using Java) with only a procedural background (PHP)&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-01T23:18:18.310" CommunityOwnedDate="2010-09-01T23:18:18.310" />
  <row Id="291" PostTypeId="2" ParentId="266" CreationDate="2010-09-01T23:19:45.613" Score="10" ViewCount="" Body="&lt;p&gt;.NET will not fully replace applications using native code on Windows for several reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of which include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Some hardware or operating systems can't be programmed with managed code.  For example even Windows PE won't run .NET by default.&lt;/li&gt;&#xA;&lt;li&gt;People have legacy code written in native code, it would be too costly to re-write it.&lt;/li&gt;&#xA;&lt;li&gt;Native code is still fully supported by Microsoft, so it is still a good choice.&lt;/li&gt;&#xA;&lt;li&gt;Some API and other libraries are most easily used with native code. &lt;/li&gt;&#xA;&lt;li&gt;You can't currently write drivers using managed code&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think what you will see though is that a lot of native code projects which are being developed will start to have more and more components which are from managed code.  For example you can use .NET to create a COM object and then use it from a native C++ application.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Likewise for applications which make heavy use of a library or API which is more accessible with native code, one may write a wrapper with native code and then expose that via p/invoke to a .NET application.&lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-03T13:11:16.123" LastActivityDate="2010-09-03T13:11:16.123" CommentCount="4" />
  <row Id="292" PostTypeId="2" ParentId="275" CreationDate="2010-09-01T23:23:11.763" Score="2" ViewCount="" Body="&lt;p&gt;I started messing around with MS Access 2.0 (I know, what was I thinking...), realized that it was junk and borrowed a friends copy of VB 4.0. (I know... it's not much better than Access 2.0 but it did get me hooked).  Read every book I could find, downloaded as much sample code as I could store and learned a lot of lessons the hard way.  &lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-01T23:23:11.763" CommunityOwnedDate="2011-02-13T14:40:48.817" />
  <row Id="293" PostTypeId="1" CreationDate="2010-09-01T23:26:05.023" Score="6" ViewCount="183" Body="&lt;p&gt;What features would you like to see in Python?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:03:29.483" LastActivityDate="2010-09-20T13:35:33.937" Title="What features would you like to see in Python?" Tags="&lt;python&gt;&lt;language-features&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="294" PostTypeId="1" CreationDate="2010-09-01T23:30:04.547" Score="24" ViewCount="833" Body="&lt;p&gt;I just started working a year ago, and I want to join an open source project for the same reasons as anyone else: help create something useful and develop my skills further.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My problem is, I don't know how to find a project where I'll fit in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can I find a beginner-friendly project?  What attributes should I be searching for?  What are warning signs that a project might &lt;em&gt;not&lt;/em&gt; be the right fit?  Are there any tools out there to help match people with open source projects?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a similar question &lt;a href=&quot;http://programmers.stackexchange.com/questions/202/what-open-source-project-could-i-join&quot;&gt;here&lt;/a&gt;, but that question has to do with employment and is limited to PHP/Drupal.&lt;/p&gt;&#xA;" OwnerUserId="94" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-04-22T21:10:48.397" LastActivityDate="2011-04-22T21:10:48.397" Title="How can I find a good open source project to join?" Tags="&lt;learning&gt;&lt;open-source&gt;&lt;junior-programmer&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="13" />
  <row Id="295" PostTypeId="2" ParentId="237" CreationDate="2010-09-01T23:31:14.407" Score="20" ViewCount="" Body="&lt;p&gt;I would recommend this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Don't use SourceForge&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They have one of the most complicated interfaces I've seen. Whats main navigation tabs are displayed (the ones to view the home page, issue tracker, etc) change randomly (its called a sub tab!). Submitting bug reports is painful. Website is not shown by default. Following email lists if iffy. Many projects with &lt;strong&gt;0&lt;/strong&gt; code commits and downloads, taking up space and cluttering searches. Etc etc etc.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;As for an actual site recommendation, I use Google Code. Its extremely simple, clean looking, and powerful at the same time. Issue tracking is a breeze. All wiki pages are displayed in one window (no more orphaned pages that can't be found by anybody). Clean administration backend. Support of both SVN and Mercurial. Great website for any software.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-01T23:31:14.407" CommentCount="2" />
  <row Id="296" PostTypeId="1" CreationDate="2010-09-01T23:33:04.510" Score="18" ViewCount="1219" Body="&lt;p&gt;What will be the next big general-purpose programming language and what needs will it solve?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-21T14:19:21.930" LastActivityDate="2011-02-01T09:07:29.293" ClosedDate="2010-12-28T14:36:29.240" Title="What will be the next big language?" Tags="&lt;programming-languages&gt;&lt;trends&gt;" AnswerCount="17" CommentCount="6" FavoriteCount="5" />
  <row Id="297" PostTypeId="2" ParentId="275" CreationDate="2010-09-01T23:33:12.293" Score="4" ViewCount="" Body="&lt;p&gt;I actually started out doing data entry at a small company. After several months the owner/head software engineer noticed that I was writing scripts and making complicated spreadsheets to track time and do my job more quickly. (I majored in math at college and taken one CS course in Pascal.) He asked if I wanted a job writing software, saying &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;You're analytical, hard working, and&#xA;  can make the computer do what you&#xA;  want. Do you want a programming job?&#xA;  We can train you.&#xA;  You've only got two things in your&#xA;  way: you don't know the language...&#xA;  and you smoke.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I took the job. A year later, I'd learned enough to be doing &quot;real&quot; work on my own. Four years later I quit smoking. :)&lt;/p&gt;&#xA;" OwnerUserId="39" LastActivityDate="2010-09-01T23:33:12.293" CommunityOwnedDate="2011-02-13T14:40:48.817" CommentCount="2" />
  <row Id="298" PostTypeId="2" ParentId="1" CreationDate="2010-09-01T23:35:05.320" Score="56" ViewCount="" Body="&lt;p&gt;Comments should explain why, not how.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;How&lt;/code&gt; type comments are usually better dealt with using refactoring. Personally, I usually avoid comments in favor of refactoring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;# convert to cents&#xA;a = x * 100&#xA;&#xA;# avg cents per customer &#xA;avg = a / n&#xA;&#xA;# add to list&#xA;avgs &amp;lt; avg&#xA;t += 1&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;after:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;total_cents = total * 100&#xA;average_per_customer = total_cents / customer_count&#xA;&#xA;track_average(average_per_customer)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="104" LastEditorUserId="104" LastEditorDisplayName="" LastEditDate="2010-09-02T08:16:25.627" LastActivityDate="2010-09-02T08:16:25.627" CommunityOwnedDate="2011-01-31T09:04:54.130" CommentCount="6" />
  <row Id="299" PostTypeId="2" ParentId="206" CreationDate="2010-09-01T23:40:17.650" Score="2" ViewCount="" Body="&lt;p&gt;One place where TDD really sucks hard is when testing views in an MVC app. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you are testing a function that returns a fat html string, your are stuck doing html parsing just to see if stuff worked out. Moreover, it can become a maintainability nightmare. One day you move a checkbox around and kaboom, your test is broken. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like TDD for lots of my testing, but it is not the only tool in a programmers belt.  &lt;/p&gt;&#xA;" OwnerUserId="104" LastActivityDate="2010-09-01T23:40:17.650" />
  <row Id="300" PostTypeId="2" ParentId="35" CreationDate="2010-09-01T23:40:55.820" Score="42" ViewCount="" Body="&lt;p&gt;This one is awesome - &#xA;&lt;img src=&quot;http://i.imgur.com/pheMD.png&quot; alt=&quot;via - Abstruse Goose&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="107" LastActivityDate="2010-09-01T23:40:55.820" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="6" />
  <row Id="301" PostTypeId="2" ParentId="279" CreationDate="2010-09-01T23:42:00.347" Score="7" ViewCount="" Body="&lt;p&gt;Enums in more object-oriented way. Java implementation is good example.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public enum ColorBand {&#xA;    Black (0xFF000000),&#xA;    Brown (0xFF654321)&#xA;&#xA;&#xA;    private int _background;&#xA;&#xA;    private ColorBand(int value, int background, int foreground, String text) {&#xA;        this._background = background;&#xA;    }&#xA;&#xA;    public int getBackground() { &#xA;        return _background; &#xA;    }&#xA;&#xA;    public bool IsBlack() {&#xA;        return (this == Black);&#xA;    }&#xA;&#xA;    ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This is actually only thing I find better implemented in Java than in .NET.&lt;/p&gt;&#xA;" OwnerUserId="52" LastActivityDate="2010-09-01T23:42:00.347" CommunityOwnedDate="2011-05-10T09:21:11.253" CommentCount="11" />
  <row Id="302" PostTypeId="2" ParentId="5" CreationDate="2010-09-01T23:42:21.453" Score="6" ViewCount="" Body="&lt;p&gt;I've been using &lt;a href=&quot;http://www.ultraedit.com/&quot; rel=&quot;nofollow&quot;&gt;UltraEdit&lt;/a&gt; for years and love it.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-10-15T12:26:20.490" LastActivityDate="2010-10-15T12:26:20.490" CommunityOwnedDate="2011-03-08T02:44:19.193" CommentCount="2" />
  <row Id="303" PostTypeId="2" ParentId="262" CreationDate="2010-09-01T23:43:35.643" Score="13" ViewCount="" Body="&lt;p&gt;It was losing importance in the mobile market, but with Android, it has regained it again.&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-01T23:43:35.643" CommunityOwnedDate="2011-03-14T15:05:05.090" CommentCount="4" />
  <row Id="304" PostTypeId="2" ParentId="9" CreationDate="2010-09-01T23:43:44.690" Score="1" ViewCount="" Body="&lt;p&gt;Some things I do: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Leave less windows open&lt;/li&gt;&#xA;&lt;li&gt;Organise my desktop (using fences &lt;a href=&quot;http://www.stardock.com/products/fences/&quot; rel=&quot;nofollow&quot;&gt;http://www.stardock.com/products/fences/&lt;/a&gt; ) &lt;/li&gt;&#xA;&lt;li&gt;Try to do 1 thing at a time, multi tasking always ends in tears&lt;/li&gt;&#xA;&lt;li&gt;Shut off the world (email, web, phone) for dedicated blocks when trying to get something important done&lt;/li&gt;&#xA;&lt;li&gt;Keep my email inbox empty&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="104" LastActivityDate="2010-09-01T23:43:44.690" CommunityOwnedDate="2011-01-04T21:22:43.957" />
  <row Id="305" PostTypeId="2" ParentId="275" CreationDate="2010-09-01T23:48:14.443" Score="1" ViewCount="" Body="&lt;p&gt;It started with cardboard and sticky tape - loving to create things, and tinker with things. Making stuff with Lego or Meccano but not following instructions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At some point I discovered that the Spectrum games I played had code behind them and started fiddling a bit, then creating my own games.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When we got an Amiga I did a bit of programming with that, but actually spent more time in Deluxe Paint making pictures, icons, animations and stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My first paid programming was writing RM BASIC games at secondary school (equiv. US High School), and selling them (for 10-20p each) to other students.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Got more and more interested in computers, and when the school switched to Windows 95 it came with this thing called Delphi, which I taught myself, and at some point I discovered the Internet thing was customisable, and learnt HTML/JS/CSS too (yep, all three pretty much together), and &lt;a href=&quot;http://en.wikipedia.org/wiki/VRML&quot; rel=&quot;nofollow&quot;&gt;VRML&lt;/a&gt; (still wish that had taken off).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Went on to do Computer Science at University, think I picked up PHP during my first year of that, and was taught or fiddled with various other things. In my third year I did a work placement, in the uni's eBusiness department, where I was exposed to ColdFusion. (That was paid work, but not sure it counts as a real job.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I left uni, I was looking for ColdFusion, PHP, or Java jobs. Turned out the first one I got an interview for was CF, impressed them with my skills despite having no commercial experience, and got offered my first real programming job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Been there for past six years, still with CF, though always trying to get them to use &lt;a href=&quot;http://www.getrailo.org/&quot; rel=&quot;nofollow&quot;&gt;Railo&lt;/a&gt; instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;:)&lt;/p&gt;&#xA;" OwnerUserId="89" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-09-01T23:53:54.193" LastActivityDate="2010-09-01T23:53:54.193" CommunityOwnedDate="2011-02-13T14:40:48.817" />
  <row Id="306" PostTypeId="2" ParentId="238" CreationDate="2010-09-01T23:48:53.820" Score="1" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0256408/&quot; rel=&quot;nofollow&quot;&gt;startup.com&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Traces the birth and failure of new media company govWorks.com.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-01T23:48:53.820" />
  <row Id="307" PostTypeId="2" ParentId="275" CreationDate="2010-09-01T23:49:13.537" Score="12" ViewCount="" Body="&lt;p&gt;I was 5 or 6, I got a &lt;a href=&quot;http://en.wikipedia.org/wiki/ZX_Spectrum&quot; rel=&quot;nofollow&quot;&gt;ZX Spectrum&lt;/a&gt;, I typed in &quot;make game with frog&quot;. I had this game totally worked out in my head in Technicolor. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I typed in &quot;make game with frog&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got: &lt;code&gt;2 Variable not found, 0:1&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;7 years later I had my first programming job, teaching kids Logo. I was paid todays equivalent of 1 dollar an hour. &lt;/p&gt;&#xA;" OwnerUserId="104" LastActivityDate="2010-09-01T23:49:13.537" CommunityOwnedDate="2011-02-13T14:40:48.817" CommentCount="4" />
  <row Id="308" PostTypeId="2" ParentId="294" CreationDate="2010-09-01T23:50:17.920" Score="2" ViewCount="" Body="&lt;p&gt;I suggest to start a project on your own on a topic that you're interested in. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot can be learned by working on a project in general.  It is not needed to see how someone else codes to learn how to code better.  And sometimes you'll actually see what not to do as the other people are often no more experienced than you are.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It usually helps to see other's code, but you will encounter other people's code in your own project just via the libraries and components you use.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Experience will teach you what is good and bad practice.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-01T23:50:17.920" CommentCount="3" />
  <row Id="309" PostTypeId="2" ParentId="296" CreationDate="2010-09-01T23:51:16.403" Score="4" ViewCount="" Body="&lt;p&gt;I think the question to ask is not &quot;What's the next big language,&quot; but rather &quot;What's the next big framework?&quot;  I mean, who would care about Ruby without Rails?  Who would care about C# without .NET?  The languages are becoming secondary.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-01T23:51:16.403" CommentCount="4" />
  <row Id="310" PostTypeId="2" ParentId="266" CreationDate="2010-09-01T23:55:55.750" Score="5" ViewCount="" Body="&lt;p&gt;No, not until Windows ships as a &lt;a href=&quot;http://en.wikipedia.org/wiki/Singularity_%28operating_system%29&quot; rel=&quot;nofollow&quot;&gt;managed OS&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some performance critical pieces are still require low level C++ in some cases. Some stuff depends on crappy multi platform c libraries, for example: I doubt Steve Jobs will ever allow people to port ITunes to .NET. &lt;/p&gt;&#xA;" OwnerUserId="104" LastActivityDate="2010-09-01T23:55:55.750" CommentCount="2" />
  <row Id="311" PostTypeId="1" AcceptedAnswerId="2797" CreationDate="2010-09-01T23:58:11.397" Score="9" ViewCount="362" Body="&lt;p&gt;I've been thinking lately about how some programming projects/products become &quot;cool,&quot; and in particular, how that trend can later reverse. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are two examples that might better explain my context:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Textmate&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whenever someone asks about text editors on OS X, the answer on the SE sites is an automatic &quot;Textmate!&quot; But looked at objectively:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Textmate 1.0 shipped &lt;a href=&quot;http://blog.macromates.com/2004/hello-world/&quot; rel=&quot;nofollow&quot;&gt;October 2004&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Textmate 1.5 shipped &lt;a href=&quot;http://blog.macromates.com/2006/textmate-15/&quot; rel=&quot;nofollow&quot;&gt;January 2006&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Textmate 2 was announced &lt;a href=&quot;http://blog.macromates.com/2006/future-directions/&quot; rel=&quot;nofollow&quot;&gt;February 2006&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;As of September 2010, the currently shipping version is &lt;strong&gt;1.5.9&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;In all of 2010, there have been a total of three posts on the Textmate blog&lt;br&gt;&lt;br&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;At what point (if ever) do Textmate fans start thinking about switching to another text editor? When it breaks after some future Apple update? When alpha geeks they respect start recommending something else? Or?&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;jQuery&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whenever a JavaScript-related question is asked on the SE sites, the knee-jerk response is &quot;jQuery!&quot; I've seen it happen even when the question itself only required a single line of JavaScript. Or when the question could be better answered by using CSS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do the answerers understand they're suggesting a blowtorch to light a candle? That they're recommending adding 70K or so of code to do something trivial? Or is it a symptom of &quot;When you have a hammer, everything looks like a nail&quot;—that is, jQuery is all they know how to do, so that's their recommendation? And do they understand that while they may know jQuery well, that doesn't necessarily mean that they know JavaScript? Is there a way to explain that learning JavaScript would make them better jQuery programmers?&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;My bigger-picture questions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is this niche focus primarily a trait of programmers?&lt;/li&gt;&#xA;&lt;li&gt;How do you get programmers to not immediately jump to recommending their personal favorites?&lt;/li&gt;&#xA;&lt;li&gt;What can motivate programmers to review their initial selection criteria and possibly modify their choice?&lt;br&gt;&lt;br&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Your thoughts?&lt;/p&gt;&#xA;" OwnerUserId="99" LastEditorUserId="99" LastEditorDisplayName="" LastEditDate="2010-09-02T00:34:37.470" LastActivityDate="2010-09-11T05:42:37.387" Title="The lifecycle of &quot;cool&quot;" Tags="&lt;holy-war&gt;&lt;geek-traits&gt;" AnswerCount="3" CommentCount="4" FavoriteCount="3" />
  <row Id="312" PostTypeId="2" ParentId="9" CreationDate="2010-09-02T00:00:23.807" Score="1" ViewCount="" Body="&lt;p&gt;Often times the nature of the cubicle farm itself can lead to this issue. Try to avoid these conditions if you have control over your office environs  -&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;“Open Office” plans where you are compelled to hear your neighbors  conversations.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Having one phone for several people in your area so you cant disconnect it and have to attend it on the off chance it yours.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Conversations over information that can be sent by email or IM or SMS or any of the multitude of asynchronous forms of communication available today.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If you don't have control over the office environs, here some things you can do - &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Some people wear head-phones to block the ambient noise and subtly indicate to people they are working on something and interruptions are not encouraged (YMMV – I have seen people ignore the subtle indication and come over anyway).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Some people deal with all their email and IM at scheduled intervals – this way everyone gets their reply and people learn to come with the questions at those times.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It is necessary to keep a balance being too focused for long periods of time can lead to burn-out. Check out this &lt;a href=&quot;http://technikhil.wordpress.com/2010/04/07/juggling-code-the-coding-zone-and-burnouts/&quot; rel=&quot;nofollow&quot;&gt;blog post&lt;/a&gt; for some more info.&lt;/p&gt;&#xA;" OwnerUserId="107" LastActivityDate="2010-09-02T00:00:23.807" CommunityOwnedDate="2011-01-04T21:22:43.957" />
  <row Id="314" PostTypeId="1" AcceptedAnswerId="337" CreationDate="2010-09-02T00:03:31.960" Score="13" ViewCount="423" Body="&lt;p&gt;What are some resources to accurately know what I should be earning?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My sense is that I'm being underpaid (who doesn't feel that way, though). And in looking at job postings, I'm intimidated by the list of qualifications employers are looking for, and I'm not sure which jobs I'd actually be hired for (and most don't list compensation, &quot;DOQ&quot;, etc.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've used &lt;a href=&quot;http://www.payscale.com/&quot; rel=&quot;nofollow&quot;&gt;PayScale&lt;/a&gt; (and I think something similar on Monster.com), but how accurate are those kind of websites?&lt;/p&gt;&#xA;" OwnerUserId="39" LastActivityDate="2010-09-17T17:39:39.460" Title="How do I know what I should be earning?" Tags="&lt;career&gt;&lt;salary&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="5" />
  <row Id="315" PostTypeId="2" ParentId="237" CreationDate="2010-09-02T00:07:37.753" Score="11" ViewCount="" Body="&lt;p&gt;There are tons of great options depending on your source control of preference. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The two I would recommend are Google Code (if you like mercurial or svn) and Github (if you like git).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep in mind a distributed source control system gives you a lot more flexibility with accepting patches and so on (it makes it trivial for anyone to submit patches)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the code is the easy part. The hard part of an open source project is the community. Both Google code and Github are full of abandoned open source projects. The community pieces on those platforms are pretty basic. And the key to having a successful open source project is getting at least one other person to care about it.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I were to start another open source project I would probably look at having a basic home page up (or at least a blog post), same time I published the code.&lt;/p&gt;&#xA;" OwnerUserId="104" LastActivityDate="2010-09-02T00:07:37.753" CommentCount="1" />
  <row Id="316" PostTypeId="2" ParentId="279" CreationDate="2010-09-02T00:09:04.333" Score="19" ViewCount="" Body="&lt;p&gt;Actually I would like .NET 5.0 to be a performance improvement and bug fix release. &#xA;Frankly I have enough on my plate keeping up with all the stuff in .NET 4.0 as it is :-)&#xA;I would say focus on the DLR - making it stable and scalable, should be a priority.&lt;/p&gt;&#xA;" OwnerUserId="107" LastActivityDate="2010-09-02T00:09:04.333" CommunityOwnedDate="2011-05-10T09:21:11.253" CommentCount="5" />
  <row Id="317" PostTypeId="2" ParentId="163" CreationDate="2010-09-02T00:09:25.100" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321125215&quot; rel=&quot;nofollow&quot;&gt;Domain-driven Design: Tackling Complexity in the Heart of Software&lt;/a&gt;&lt;br&gt;&#xA;Eric Evans&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lots of high level concepts, its a pretty advanced book that I would not recommend to novice developers. If you are working on a large scale software project with lots of inter-dependencies, this is a great reference. &lt;/p&gt;&#xA;" OwnerUserId="104" LastActivityDate="2010-09-02T00:09:25.100" />
  <row Id="318" PostTypeId="2" ParentId="35" CreationDate="2010-09-02T00:10:19.137" Score="7" ViewCount="" Body="&lt;p&gt;There are only 10 types of people in the world &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those who understand binary, and those who don't.&lt;/p&gt;&#xA;" OwnerUserId="19" LastActivityDate="2010-09-02T00:10:19.137" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="5" />
  <row Id="319" PostTypeId="2" ParentId="188" CreationDate="2010-09-02T00:18:58.970" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;My main question is when should I&#xA;  trade the easy but somewhat&#xA;  inefficient ways of doing tasks for&#xA;  big giant complicated beasts that do&#xA;  things extremely quickly but destroy&#xA;  any possible ways of upgrading and&#xA;  make the code excessively difficult&#xA;  and prone to rewriting anyway by the&#xA;  next developer?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is usually a &lt;a href=&quot;http://en.wikipedia.org/wiki/False_dilemma&quot; rel=&quot;nofollow&quot;&gt;false dichotomy&lt;/a&gt;. You can write wonderfully efficient, readable and maintainable code. You can write wonderfully inefficient, unmaintainable piles of mess. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When dealing with performance issues, I usually try to think about the business problem I am solving. How will my software behave when my customers use it. Will my applications performance make &lt;a href=&quot;http://www.useit.com/papers/responsetime.html&quot; rel=&quot;nofollow&quot;&gt;Jacob Nielsen happy&lt;/a&gt;?&lt;/p&gt;&#xA;" OwnerUserId="104" LastActivityDate="2010-09-02T00:18:58.970" CommentCount="2" />
  <row Id="320" PostTypeId="2" ParentId="35" CreationDate="2010-09-02T00:20:04.603" Score="39" ViewCount="" Body="&lt;p&gt;I think this one is already on Stack Overflow too, but here goes:&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;A programmer was walking down the sidewalk one day when his friend, another programmer, rode up on an incredible shiny new bicycle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first programmer was stunned by his friend's sweet ride and asked, &quot;WOW! Where did you get such a nice bike?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second programmer replied, &quot;Well, yesterday I was walking home, minding my own business, when a beautiful woman rode up to me on this bike. She threw the bike to the ground, took off all her clothes and said, 'Take what you want!'&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second programmer nodded approvingly, &quot;Good choice. Her clothes probably wouldn't have fit you.&quot;&lt;/p&gt;&#xA;" OwnerUserId="113" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2010-11-05T06:35:21.540" LastActivityDate="2010-11-05T06:35:21.540" CommunityOwnedDate="2010-09-23T20:40:04.303" />
  <row Id="321" PostTypeId="2" ParentId="5" CreationDate="2010-09-02T00:21:30.123" Score="1" ViewCount="" Body="&lt;p&gt;Check out log parser - it's an awesome tool for viewing log files in windows - uses a SQL like syntax to parse, filter the raw data in the files -&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Get it &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&amp;amp;displaylang=en&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;  &lt;/li&gt;&#xA;&lt;li&gt;The forum is &lt;a href=&quot;http://forums.iis.net/default.aspx?GroupID=51&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;If you need a GUI for it - &lt;a href=&quot;http://visuallogparser.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;look here&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I don't think you can use it to update data but it's useful to actually get to the data you want to update - easily.&lt;/p&gt;&#xA;" OwnerUserId="107" LastActivityDate="2010-09-02T00:21:30.123" CommunityOwnedDate="2011-03-08T02:44:19.193" />
  <row Id="322" PostTypeId="2" ParentId="279" CreationDate="2010-09-02T00:22:33.357" Score="20" ViewCount="" Body="&lt;p&gt;I am looking forward to the already announced compiler as a service piece. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will make AOP on .NET fairly trivial. Building DSLs without ugly T4 templates will be easy. Instrumenting apps will become much easier.  &lt;/p&gt;&#xA;" OwnerUserId="104" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-03T18:50:48.493" LastActivityDate="2010-11-03T18:50:48.493" CommunityOwnedDate="2011-05-10T09:21:11.253" CommentCount="1" />
  <row Id="323" PostTypeId="2" ParentId="311" CreationDate="2010-09-02T00:22:52.333" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;How do you get programmers to not immediately jump to their personal favorites?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'm not sure what you're looking for here- a programmer's favorite is usually his/her favorite because they think it's superior to the other available options.  Textmate users, for example, will keep using Textmate until they feel a better alternative arises.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, it sounds like a bit of what you're referring to is the &lt;a href=&quot;http://en.wikipedia.org/wiki/Law_of_the_instrument&quot; rel=&quot;nofollow&quot;&gt;Golden Hammer&lt;/a&gt; anti-pattern, wherein people tend to use the tool their most familiar with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One side of that is a negative, in that over-reliance on one tool can make you use it when another would save you a lot of time.  The other side, though, is that often, using the slower tool you know is faster than learning the fast tool and then using it.  Eg (using silly examples), it'll take me 10 hours to code it in Cobol or 5 hours to learn Prolog and 7 hours to code it in Prolog.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, the other-other side is that often learning a better tool might take longer than using the slower tool, but will thereafter save time on every similar problem you encounter thereafter.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T00:22:52.333" CommentCount="1" />
  <row Id="324" PostTypeId="2" ParentId="135" CreationDate="2010-09-02T00:24:26.137" Score="-3" ViewCount="" Body="&lt;p&gt;Nobody at all.  Stop browsing sites like twitter when you should be coding.  Then watch your productivity improve.&lt;/p&gt;&#xA;" OwnerUserId="113" LastActivityDate="2010-09-02T00:24:26.137" CommunityOwnedDate="2011-02-11T07:48:02.420" CommentCount="8" />
  <row Id="325" PostTypeId="2" ParentId="163" CreationDate="2010-09-02T00:32:11.593" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201835959&quot; rel=&quot;nofollow&quot;&gt;The Mythical Man Month - Frederick P Brooks&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a must have book for software developers. &lt;/p&gt;&#xA;" OwnerUserId="107" LastActivityDate="2010-09-02T00:32:11.593" />
  <row Id="326" PostTypeId="1" CreationDate="2010-09-02T00:33:08.217" Score="18" ViewCount="1254" Body="&lt;p&gt;We all have our little programmer to do list, ranging from the ghetto &lt;a href=&quot;http://notepad.cc/doit&quot; rel=&quot;nofollow&quot;&gt;TODO.txt&lt;/a&gt; to the elaborate &lt;a href=&quot;http://www.epicwinapp.com/&quot; rel=&quot;nofollow&quot;&gt;epic win app&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you keep track of all those things you need to do? &lt;/p&gt;&#xA;" OwnerUserId="104" LastActivityDate="2011-05-27T09:56:42.237" CommunityOwnedDate="2010-09-17T07:53:09.223" Title="How do you manage your todo.txt?" Tags="&lt;productivity&gt;&lt;applications&gt;&lt;tools&gt;" AnswerCount="35" CommentCount="3" FavoriteCount="12" />
  <row Id="327" PostTypeId="2" ParentId="238" CreationDate="2010-09-02T00:33:49.687" Score="9" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Antitrust_%28film%29&quot; rel=&quot;nofollow&quot;&gt;Antitrust&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Most believable portrayal of programmers I've seen in fiction, even if the plot is silly. Most of them (with the exception of Rachael Leigh Cook's character) remind me of real programmers I've worked with.  I guess they had a real programmer as a consultant.  Real code too.&lt;/p&gt;&#xA;" OwnerUserId="113" LastActivityDate="2010-09-02T00:33:49.687" CommentCount="1" />
  <row Id="328" PostTypeId="2" ParentId="326" CreationDate="2010-09-02T00:36:29.557" Score="0" ViewCount="" Body="&lt;p&gt;I use KOrganizer.  It's got all the features you'd expect (recurring todos, integrated into calendar, deadline can be date or datetime, notes, location), it fits in with my KDE desktop, and it just works.&lt;/p&gt;&#xA;" OwnerUserId="97" LastEditorUserId="97" LastEditorDisplayName="" LastEditDate="2010-09-02T00:44:14.283" LastActivityDate="2010-09-02T00:44:14.283" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="329" PostTypeId="2" ParentId="326" CreationDate="2010-09-02T00:36:51.947" Score="0" ViewCount="" Body="&lt;p&gt;Previously MediaWiki (installed on my own server); Now Gmail Tasks.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-02T00:36:51.947" CommunityOwnedDate="2010-09-17T07:53:09.223" CommentCount="1" />
  <row Id="330" PostTypeId="2" ParentId="326" CreationDate="2010-09-02T00:36:52.910" Score="1" ViewCount="" Body="&lt;p&gt;I keep &lt;a href=&quot;http://cl1p.com/fishtoaster_todo&quot; rel=&quot;nofollow&quot;&gt;http://cl1p.com/fishtoaster_todo&lt;/a&gt; (not that exact url, of course) for little things.  I have a memory like a sieve, so I write down whatever I was working on at the end of the day there and read it in the morning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For more in-depth and/or prolonged todo's, I use &lt;a href=&quot;http://hedgehoglab.com/products/fixx/&quot; rel=&quot;nofollow&quot;&gt;Fixx&lt;/a&gt;- it works as a basic tracker without trying to be too much of a project management tool.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T00:36:52.910" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="331" PostTypeId="1" AcceptedAnswerId="349" CreationDate="2010-09-02T00:38:16.417" Score="18" ViewCount="1212" Body="&lt;p&gt;The features I would look for in a 'programmers' font are&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Monospaced (maybe less important for&#xA;code, but more important for data)&lt;/li&gt;&#xA;&lt;li&gt;Distinguishable characters. Often I&#xA;(uppercase i), 1 (one) and l&#xA;(lower-case L) can be confusing, as&#xA;can O (upper-case o) and 0 (zero).&#xA;I'd be interested other character&#xA;issues, especially in accented or&#xA;extended character sets. &lt;/li&gt;&#xA;&lt;li&gt;Free &lt;/li&gt;&#xA;&lt;li&gt;Windows / Linux / OSX&lt;/li&gt;&#xA;&lt;li&gt;Legible on screen and printouts at smaller sizes&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I've community wiki'd this.&#xA;I'm really looking for a list of fonts that qualify. From that list, people can pick what looks good to them.&lt;/p&gt;&#xA;" OwnerUserId="114" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:20:12.063" LastActivityDate="2011-02-19T16:22:34.683" CommunityOwnedDate="2010-09-02T00:38:16.417" Title="What is your preferred font for working with code and data?" Tags="&lt;ide&gt;&lt;fonts&gt;" AnswerCount="31" FavoriteCount="12" />
  <row Id="332" PostTypeId="2" ParentId="262" CreationDate="2010-09-02T00:41:33.350" Score="7" ViewCount="" Body="&lt;p&gt;I think so.  I anticipate that its popularity will increase over the next couple of years, with recent improvements in the plug-in and the syntactic enhancements coming in Java 7.  And it has the advantage of the huge range of good open-source libraries (as compared to .NET) that could easily keep it alive for another 10 years.&lt;/p&gt;&#xA;" OwnerUserId="113" LastActivityDate="2010-09-02T00:41:33.350" CommunityOwnedDate="2011-03-14T15:05:05.090" CommentCount="2" />
  <row Id="333" PostTypeId="2" ParentId="326" CreationDate="2010-09-02T00:43:24.017" Score="0" ViewCount="" Body="&lt;p&gt;I use gmail tasks since emails can be easily converted, and it's accessible from any computer. Note this is not related to the bug tracking software I use :)&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-02T00:43:24.017" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="334" PostTypeId="2" ParentId="275" CreationDate="2010-09-02T00:43:53.713" Score="0" ViewCount="" Body="&lt;p&gt;I taught myself C in 5th grade or so, and ended up loving the idea of telling the computer what to do. 13 years later, I got offered a PhD that involved programming and biology (my two favourite things), and that's what I'm still doing...&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-02T00:43:53.713" CommunityOwnedDate="2011-02-13T14:40:48.817" />
  <row Id="335" PostTypeId="2" ParentId="331" CreationDate="2010-09-02T00:44:16.870" Score="5" ViewCount="" Body="&lt;p&gt;This guy's kinda cool: &lt;a href=&quot;http://www.ms-studio.com/FontSales/anonymouspro.html&quot; rel=&quot;nofollow&quot;&gt;http://www.ms-studio.com/FontSales/anonymouspro.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T00:44:16.870" CommunityOwnedDate="2010-09-02T00:44:16.870" CommentCount="1" />
  <row Id="336" PostTypeId="2" ParentId="331" CreationDate="2010-09-02T00:45:46.413" Score="2" ViewCount="" Body="&lt;p&gt;Some of my old faves &lt;a href=&quot;http://www.flickr.com/photos/dorismith/1911314798/&quot; rel=&quot;nofollow&quot;&gt;can be seen here&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/p2IYb.jpg&quot; alt=&quot;monospaced fonts&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="99" LastEditorUserId="99" LastEditorDisplayName="" LastEditDate="2010-10-08T02:14:55.867" LastActivityDate="2010-10-08T02:14:55.867" CommunityOwnedDate="2010-09-02T00:45:46.413" CommentCount="1" />
  <row Id="337" PostTypeId="2" ParentId="314" CreationDate="2010-09-02T00:46:55.677" Score="8" ViewCount="" Body="&lt;p&gt;Loving what you do is a big consideration for your career but so is salary.  Ideally you should feel like you aren't worrying about money and that you also love what you do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your experience is worth what someone is willing to pay for that experience.  That experience may be worth more to some companies and less to other companies.  So perhaps you are being overpaid at your current company, but underpaid by some other job that you are qualified for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Location is another big factor.  Experience in technologies X, Y, and Z may be worth 120k in one location and worth only 60k at another just because of the cost of living.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps you should try to get another job and then if you find a new job that you'd like and you are happy with the pay, then you can quit your other job which I assume you like but feel you are being underpaid. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some job postings will also include a pay range that they are willing to pay.  If you feel that you are fully qualified for everything then demand the higher range.  This will give you a better understanding of what you should be asking for, for the other jobs too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are confident that you are good, and you show that confidence, companies will have no problem paying extra for the best developer over the 2nd best developer.  &lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-02T00:53:37.580" LastActivityDate="2010-09-02T00:53:37.580" CommentCount="2" />
  <row Id="338" PostTypeId="2" ParentId="296" CreationDate="2010-09-02T00:48:15.240" Score="10" ViewCount="" Body="&lt;p&gt;I &lt;em&gt;really really&lt;/em&gt; hope that either &lt;a href=&quot;http://www.digitalmars.com/d/&quot; rel=&quot;nofollow&quot;&gt;D&lt;/a&gt; or &lt;a href=&quot;http://golang.org/&quot; rel=&quot;nofollow&quot;&gt;Go&lt;/a&gt; end up becoming popular. C and C++ just have so much legacy crud in them that I find programming in them a chore. Either of those languages looks promising to become the next big systems programming language. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For other stuff, I think we're just about getting to the point where languages like Ruby and Python are taking off big-time. So, the next big &quot;every-day&quot; language won't appear for a while, IMHO.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-02T00:48:15.240" CommentCount="9" />
  <row Id="339" PostTypeId="2" ParentId="331" CreationDate="2010-09-02T00:49:48.353" Score="1" ViewCount="" Body="&lt;p&gt;I generally use &lt;a href=&quot;http://en.wikipedia.org/wiki/Andal%C3%A9_Mono&quot; rel=&quot;nofollow&quot;&gt;Andale Mono&lt;/a&gt; which is available for Windows / Mac. Licensing on other environments seems more complex.&lt;/p&gt;&#xA;" OwnerUserId="114" LastActivityDate="2010-09-02T00:49:48.353" CommunityOwnedDate="2010-09-02T00:49:48.353" />
  <row Id="340" PostTypeId="2" ParentId="331" CreationDate="2010-09-02T00:49:54.303" Score="6" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://dejavu-fonts.org/wiki/Main_Page&quot; rel=&quot;nofollow&quot;&gt;Deja Vu&lt;/a&gt; Mono font&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.fontsquirrel.com/fonts/Andale-Mono&quot; rel=&quot;nofollow&quot;&gt;Andale Mono&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The one I use is Deja Vu Mono, though.&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="7" LastEditorDisplayName="" LastEditDate="2010-09-10T14:36:31.700" LastActivityDate="2010-09-10T14:36:31.700" CommunityOwnedDate="2010-09-02T00:49:54.303" CommentCount="2" />
  <row Id="341" PostTypeId="2" ParentId="293" CreationDate="2010-09-02T00:52:30.313" Score="4" ViewCount="" Body="&lt;p&gt;Nothing. As everyone knows, Python is perfect ;). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be honest, most of the features I would like to see in Python are more to do with the implementation than the language. I would like to see a JIT compiler added to the CPython interpreter and I would love for someone to come up with a way of getting rid of that pesky GIL. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, I can't honestly say that I've come across a situation where I wished for feature X from language Y.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-02T00:52:30.313" />
  <row Id="342" PostTypeId="2" ParentId="101" CreationDate="2010-09-02T00:53:33.400" Score="0" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Sigh…&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would have graduated with my CS degree a full year earlier if they didn't require that I pass all those #$^&amp;amp;*) Math classes.&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-09-02T00:53:33.400" CommunityOwnedDate="2011-03-13T14:49:02.620" CommentCount="5" />
  <row Id="343" PostTypeId="2" ParentId="154" CreationDate="2010-09-02T00:58:03.207" Score="40" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/TX0Jv.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-02T00:58:03.207" CommentCount="2" />
  <row Id="345" PostTypeId="2" ParentId="331" CreationDate="2010-09-02T01:00:47.737" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Inconsolata&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.levien.com/type/myfonts/inconsolata.html&quot; rel=&quot;nofollow&quot;&gt;http://www.levien.com/type/myfonts/inconsolata.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't like the 'curvyness' and decoration of fonts such as Monaco and Bitstream Vera. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Inconsolata looks great at all sizes and has a less curvy, more straightened look. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(you can see I know nothing about typography by the terms I use)&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;EDIT: I should add that I love Consolas when programming on the Windows platform, but I don't know why it doesn't work as good for me on other platforms. I haven't made a real comparison of Consolas vs Inconsolata on Windows. &lt;/p&gt;&#xA;" OwnerUserId="76" LastEditorUserId="76" LastEditorDisplayName="" LastEditDate="2010-09-03T07:10:12.197" LastActivityDate="2010-09-03T07:10:12.197" CommunityOwnedDate="2010-09-02T01:00:47.737" CommentCount="3" />
  <row Id="348" PostTypeId="1" AcceptedAnswerId="3464" CreationDate="2010-09-02T01:04:51.343" Score="18" ViewCount="295" Body="&lt;p&gt;Elite developers can be 10x more productive than an average developer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clearly it's easier to find an elite developer around the whole world than in a company's backyard. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a company is not located in a programming hot spot, should they consider hiring people who work from home?&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-12-01T00:14:27.760" Title="Should companies consider remote employees or stick to local employees?" Tags="&lt;career&gt;&lt;employment&gt;&lt;software-developer&gt;&lt;telecommute&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="2" />
  <row Id="349" PostTypeId="2" ParentId="331" CreationDate="2010-09-02T01:12:53.020" Score="29" ViewCount="" Body="&lt;p&gt;I just use Consolas on Visual Studio 2010. Although Inconsolata looks very nice as well.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-02T14:55:41.937" CommunityOwnedDate="2010-09-02T01:12:53.020" CommentCount="2" />
  <row Id="350" PostTypeId="2" ParentId="293" CreationDate="2010-09-02T01:13:55.110" Score="6" ViewCount="" Body="&lt;p&gt;Sometimes I find myself wanting multi-statement anonymous functions.&lt;/p&gt;&#xA;" OwnerUserId="97" LastActivityDate="2010-09-02T01:13:55.110" CommentCount="6" />
  <row Id="351" PostTypeId="2" ParentId="348" CreationDate="2010-09-02T01:14:28.857" Score="8" ViewCount="" Body="&lt;p&gt;Maybe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your benefits are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Access to a wider pool of candidates (as you point out)&lt;/li&gt;&#xA;&lt;li&gt;Access to people who want to work at home&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Your costs are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;More difficult communication- you can't just pull someone into a free conference room.&lt;/li&gt;&#xA;&lt;li&gt;No guarantee of instant communication- if you're blocked and waiting for Joe Remote, you can't just go over to his desk and ask him what's up.  If he's incommunicado, you're SOL.&lt;/li&gt;&#xA;&lt;li&gt;Not all developers work well remotely.  Some need the structured environment to be productive.&lt;/li&gt;&#xA;&lt;li&gt;There's often no guarantee of matching schedules- eg, a work-from-home person might sleep in, or a person in another time-zone might be awake and working at different times than you.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Atwood had a &lt;a href=&quot;http://www.codinghorror.com/blog/2010/05/on-working-remotely.html&quot; rel=&quot;nofollow&quot;&gt;decent article&lt;/a&gt; about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit, from Atwood's article:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The minimum remote team size is two. Always have a buddy, even if your buddy is on another continent halfway across the world.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Only grizzled veterans who absolutely love to code need apply for remote development positions. Mentoring of newbies or casual programmers simply doesn't work at all remotely.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;To be effective, remote teams need full autonomy and a leader (PM, if you will) who has a strong vision and the power to fully execute on that vision.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T01:14:28.857" CommentCount="2" />
  <row Id="353" PostTypeId="2" ParentId="282" CreationDate="2010-09-02T01:18:18.053" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://twit.tv/FLOSS&quot; rel=&quot;nofollow&quot;&gt;FLOSS Weekly&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;FLOSS all about Free Libre Open Source Software. Join hosts Randal Schwartz and Leo Laporte every Saturday as they talk with the most interesting and important people in the Open Source and Free Software community.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-09-02T01:18:18.053" CommunityOwnedDate="2010-12-21T06:02:41.540" CommentCount="1" />
  <row Id="354" PostTypeId="2" ParentId="296" CreationDate="2010-09-02T01:19:20.187" Score="4" ViewCount="" Body="&lt;p&gt;While your questions asks what the next big &lt;em&gt;language&lt;/em&gt; will be, I think it's more about frameworks these days than about languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ruby has Rails, C# has .NET and more. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So with that in mind I have no doubt that the next big thing in the web development world will be ASP.Net MVC2 (and so on for updates). Working with it was just fun and very straightforward and logical. It has the philosophy of &lt;em&gt;convention over configuration&lt;/em&gt; and as such you can concentrate more on solving actual business problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;MVC2 also is a more &lt;em&gt;&quot;close to the metal&quot;&lt;/em&gt; in a sense that you can much more control over what HTML is written and sent to the client. No more icky viewstates and various hidden fields to control state.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know this technology isn't really bleeding edge (it's been out for a while now), but it's new enough to notice that it's starting to gain traction against competitors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend investing in this technology that will most likely overtake ASP.Net Webforms on the consumer website front. &lt;/p&gt;&#xA;" LastActivityDate="2010-09-02T01:19:20.187" CommentCount="3" />
  <row Id="355" PostTypeId="2" ParentId="282" CreationDate="2010-09-02T01:19:33.213" Score="21" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.se-radio.net/&quot; rel=&quot;nofollow&quot;&gt;Software Engineering Radio&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Software Engineering Radio is a podcast targeted at the professional software developer. The goal is to be a lasting educational resource, not a newscast. Every ten days, a new episode is published that covers all topics software engineering. Episodes are either tutorials on a specific topic, or an interview with a well-known character from the software engineering world.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-09-02T01:19:33.213" CommunityOwnedDate="2010-12-21T06:02:41.540" CommentCount="2" />
  <row Id="356" PostTypeId="2" ParentId="262" CreationDate="2010-09-02T01:21:35.213" Score="5" ViewCount="" Body="&lt;p&gt;I don't think it'll lose relevance. Java 7 is just coming out with a lot of neat features that will help developers create great software easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also Java is used to create Blackberry applications; one of the leading corporate mobile phone. It's safe to say it's not going anywhere soon.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-02T01:21:35.213" CommunityOwnedDate="2011-03-14T15:05:05.090" CommentCount="2" />
  <row Id="357" PostTypeId="2" ParentId="237" CreationDate="2010-09-02T01:25:06.620" Score="1" ViewCount="" Body="&lt;p&gt;If you are developing software in the Microsoft stack, there's no better fit than Codeplex. Simple to use and you can place ads on your project to earn you some quick bucks for your work.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-02T01:25:06.620" />
  <row Id="358" PostTypeId="1" AcceptedAnswerId="530" CreationDate="2010-09-02T01:26:00.030" Score="8" ViewCount="1396" Body="&lt;p&gt;What is the craziest programming language that you have ever used in a project?&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T16:52:15.560" LastActivityDate="2011-01-30T18:07:25.760" CommunityOwnedDate="2010-09-30T22:46:32.880" ClosedDate="2010-12-28T15:45:02.657" Title="What is the craziest programming language that you have ever used?" Tags="&lt;programming-languages&gt;&lt;experience&gt;" AnswerCount="31" CommentCount="5" />
  <row Id="359" PostTypeId="2" ParentId="275" CreationDate="2010-09-02T01:26:23.247" Score="4" ViewCount="" Body="&lt;p&gt;My initial foray into programming was brought on by a fascination in game development- specifically level design. I spent some time in middle school messing around with the map editors for Half-Life, Max Payne and Unreal Tournament and although I wasn't particularly talented at designing &lt;em&gt;pretty&lt;/em&gt; things, I really enjoyed creating the logical mechanics of interactive play- elevators, light switches, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I brought my interests to some friends on IRC and I had this grand idea to launch a community-driven website about game mod development. At first I worked with a friend who did the design, HTML, and some PHP work on my behalf, but gradually I began to want more and more from the project. I picked up a copy of &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/076450214X&quot; rel=&quot;nofollow&quot;&gt;HTML for Dummies&lt;/a&gt; circa 2000, &lt;em&gt;Macromedia&lt;/em&gt; DreamWeaver (3, I think), and a few really awesome books about PHP. I started to fiddle my way through all of these new topics in front of me and the website I had come up with gradually took shape. As the &lt;a href=&quot;http://en.wikipedia.org/wiki/Spaghetti_code&quot; rel=&quot;nofollow&quot;&gt;spaghetti bowl&lt;/a&gt; of functionality that was ModDev.net took shape I became progressively more interested in web development than I was in game development. The now-defunct ModDev.net was my crash course into programming in the form of something that probably resembled &lt;a href=&quot;http://en.wikipedia.org/wiki/Katamari_Damacy&quot; rel=&quot;nofollow&quot;&gt;Katamari Damacy&lt;/a&gt;, but as I built and maintained it, I continuously branched out into side projects and freelance work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did freelance PHP work from about 9th grade to 11th, but my dedication to programming waned in favor of a few MMORPGS which stole my soul. At the end of high school I hadn't done much programming for a while, and I had no idea where I was going to college. I happened upon a school in Utah called &lt;a href=&quot;http://www.neumont.edu/&quot; rel=&quot;nofollow&quot;&gt;Neumont&lt;/a&gt;; they offer a very focused 2.5 year bachelor program in computer science, namely software engineering. I checked the school out and I was impressed immediately. I applied and was accepted. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At school we focused on C# and Java primarily. While I was attending (the program is a little different now) we had the option to focus on one over the other and also to take them in the order we chose. I started out with C# and although object-oriented programming was vaguely familiar to me from my PHP days (I never really &lt;em&gt;got it&lt;/em&gt; then), I had no problems picking it up and getting my hands dirty. After a couple of semesters of C#, I tried Java- much to my disdain. I approached Java with a predetermined hatred stemming from all of my prior negative experiences with &lt;em&gt;horrible&lt;/em&gt; Java applications in the past; sure enough &lt;a href=&quot;http://zef.me/878/why-java-sucks&quot; rel=&quot;nofollow&quot;&gt;the language sucks&lt;/a&gt; too.Neumont organizes internships for its students as part of finishing the curriculum, so in my last two semesters I found myself working for a medical software company building C# applications, and a small game development company working on an iPhone game (which never saw fruition).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After completing the degree program at Neumont in just 2.5 years, I began hunting for jobs in the area. It took me about 3 months of searching, but I found myself in a salaried position at a tiny company building ASP.NET websites for small businesses. I have a lot of freedom to work at my own pace and learn new things because I always work alone. For 22 years old, I could definitely do worse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Hey look, I just wrote an essay...&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="13" LastActivityDate="2010-09-02T01:26:23.247" CommunityOwnedDate="2011-02-13T14:40:48.817" CommentCount="1" />
  <row Id="360" PostTypeId="1" AcceptedAnswerId="395" CreationDate="2010-09-02T01:30:38.640" Score="5" ViewCount="164" Body="&lt;p&gt;For a developer that wants to start developing software for Mac OS X, what is the best way to get started?&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-02T17:44:49.090" LastActivityDate="2010-09-16T21:24:10.687" Title="For Windows developers who would like to get into the Mac OS X software development industry, what's a great way to get started?" Tags="&lt;tools&gt;&lt;platform&gt;" AnswerCount="3" FavoriteCount="3" />
  <row Id="361" PostTypeId="1" CreationDate="2010-09-02T01:41:32.503" Score="18" ViewCount="1138" Body="&lt;p&gt;One of the most popular programmer-related, but not quite programming-related, questions on Stack Overflow is &lt;a href=&quot;http://stackoverflow.com/questions/2823571/im-graduating-with-a-computer-science-degree-but-i-dont-feel-like-i-know-how-to&quot;&gt;I'm graduating with a Computer Science degree but I don't feel like I know how to program&lt;/a&gt;.  It's certainly a common complaint/question; I heard it &amp;#8212; and much of the advice given in the top few answers &amp;#8212; when I was in college, long before Stack Overflow even existed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is similar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most common answer I heard to the above question was &quot;Don't worry, you'll learn more in your first three months of work than you ever did in college.&quot;  Well, I entered the workforce recently, and I know a lot of other people who've done the same.  We're at a diverse group of companies, from huge to startup, &quot;new economy&quot; cool to boring and corporate.  Nearly all of us, though, feel like even though we've picked up a lot on the job, what we've learned is miniscule compared to the amount of information that's out there, or even compared to what the senior/principal developers on our teams know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For some perspective, most of the people I'm thinking of went to good schools (Carnegie Mellon, Stanford, MIT), enjoy programming outside of work, and in several cases have research or graduate-level experience; in other words, not people who would generally be thought of as unprepared for the world.  None of us expected to be experts right off the bat, but there's a big continuum between &quot;guru&quot; and &quot;hopeless.&quot;  Is this normal?  Are we not keeping up with the pace that would be expected of new developers, or does it just feel that way?  What would you expect people in our position &amp;#8212; i.e. very early stages in our careers &amp;#8212; to be doing to further our abilities?&lt;/p&gt;&#xA;" OwnerUserId="94" LastActivityDate="2010-10-14T23:21:51.863" Title="I've graduated with a Computer Science degree but I don't feel like I'm even close to being an expert programmer" Tags="&lt;self-improvement&gt;&lt;career&gt;" AnswerCount="13" CommentCount="4" FavoriteCount="9" />
  <row Id="362" PostTypeId="2" ParentId="1" CreationDate="2010-09-02T01:43:44.647" Score="5" ViewCount="" Body="&lt;p&gt;If the code has been written in a particular way to avoid a problem present in a library (both a third-party library, or a library that comes with the compiler), then it makes sense to comment it.&lt;br&gt;&#xA;It also make sense to comment code that needs to be changed in future versions, or when using a new version of a library, or when passing from PHP4 to PHP5, for example.&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2010-09-03T12:27:19.637" LastActivityDate="2010-09-03T12:27:19.637" CommunityOwnedDate="2011-01-31T09:04:54.130" />
  <row Id="363" PostTypeId="2" ParentId="361" CreationDate="2010-09-02T01:49:32.400" Score="20" ViewCount="" Body="&lt;p&gt;Yes, it's reasonably normal- most schools, even prestigious ones, do a great job of teaching computer science and a terrible job of teaching software development.  This is getting slowly better, but still has a long way to go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, it sounds like you're doing most of the right things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Program outside of work&lt;/li&gt;&#xA;&lt;li&gt;Read books on software development (Code Complete, Design Patterns, Mythical Man-Month, etc).&lt;/li&gt;&#xA;&lt;li&gt;Keep learning new technologies- school should have taught you how to learn languages, not the languages themselves.  Learn new frameworks, IDE's, apis, libraries, build tools, etc.&lt;/li&gt;&#xA;&lt;li&gt;Hang around on sites like SO and here.  Interacting with experienced people on a regular basis is one of the few semi-shortcuts to wisdom.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T01:49:32.400" CommentCount="2" />
  <row Id="364" PostTypeId="1" AcceptedAnswerId="426" CreationDate="2010-09-02T01:50:16.680" Score="11" ViewCount="322" Body="&lt;p&gt;What tools would you suggest for introducing kids to programming?&lt;/p&gt;&#xA;" OwnerUserId="44" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-10-16T12:11:38.993" LastActivityDate="2010-10-16T12:11:38.993" Title="What are some good tools for introducing kids to programming?" Tags="&lt;tools&gt;&lt;education&gt;&lt;young-people&gt;" AnswerCount="12" FavoriteCount="4" />
  <row Id="365" PostTypeId="2" ParentId="35" CreationDate="2010-09-02T02:13:21.037" Score="41" ViewCount="" Body="&lt;p&gt;Your momma's so fat, that when she sat on a binary tree she turned it into a linked-list in O(1).&lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-02T02:13:21.037" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="11" />
  <row Id="368" PostTypeId="1" CreationDate="2010-09-02T02:23:41.833" Score="31" ViewCount="1872" Body="&lt;p&gt;For a long time in SO and in other places Java has the reputation of being slow. From &lt;a href=&quot;http://htxt.org/post/90766597&quot; rel=&quot;nofollow&quot;&gt;jokes&lt;/a&gt; to &lt;a href=&quot;http://stackoverflow.com/questions/3538156/fileio-in-every-programming-language/3538289#3538289&quot;&gt;many comments&lt;/a&gt; in questions and answers, people still believe Java is slow based solely on experience with it in the 90s.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is my issue: &lt;a href=&quot;http://stackoverflow.com/questions/2163411/why-did-java-have-the-reputation-of-being-slow&quot;&gt;We have disproved (most) of the idea's that java is slow.&lt;/a&gt;. Outside of small things, Java is pretty fast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So why is it that people still refuse to believe Java is fast now? Is it part of their mindset that anything thats not C/C++ is slow? Is it because people don't check over time? Is it because people are just ***holes? Why?&lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-11T13:25:36.133" LastActivityDate="2011-01-22T16:30:17.187" Title="Why do people still say Java is slow?" Tags="&lt;java&gt;&lt;performance&gt;" AnswerCount="14" CommentCount="6" FavoriteCount="4" />
  <row Id="369" PostTypeId="2" ParentId="364" CreationDate="2010-09-02T02:26:14.967" Score="4" ViewCount="" Body="&lt;p&gt;I know how its reputation is, but &lt;a href=&quot;http://www.alice.org/&quot; rel=&quot;nofollow&quot;&gt;Alice&lt;/a&gt; is a great way to start learning. Why? Because instead of staring at a cold boring console, you get to see 3d objects move around. For people wanting to figure out what programming is, its a great way to start. And you don't have to learn all the complications with 3d.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try it out and see for yourself&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-02T02:26:14.967" />
  <row Id="370" PostTypeId="1" AcceptedAnswerId="462" CreationDate="2010-09-02T02:27:47.040" Score="49" ViewCount="1756" Body="&lt;p&gt;I've been told that to be taken seriously as a job applicant, I should drop years of relevant experience off my résumé, remove the year I got my degree, or both. Or not even bother applying, because no one wants to hire programmers older than them.&lt;sup&gt;1&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or that I should found a company, not because I want to, or because I have a product I care about, but because that way I can get a job if/when my company is acquired.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or that I should focus more on management jobs (which I've successfully done in the past) because… well, they couldn't really explain this one, except the implication was that over a certain age you're a loser if you're still writing code. But I &lt;em&gt;like&lt;/em&gt; writing code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you seen this? Is this only a local (Northern California) issue?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've ever hired programmers:&lt;sup&gt;2&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Of the résumés you've received, how old was the eldest applicant?&lt;/li&gt;&#xA;&lt;li&gt;What was the age of the oldest person you've interviewed?&lt;/li&gt;&#xA;&lt;li&gt;How old (when hired) was the oldest person you hired?&lt;br&gt;&lt;br&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;How old is &quot;too old&quot; to employed as a programmer?&lt;br&gt;&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;1 &lt;/sup&gt;&lt;sub&gt;I'm assuming all applicants have equivalent applicable experience. This isn't about someone with three decades of COBOL applying for a Java guru job.&lt;/sub&gt;&lt;br&gt;&#xA;&lt;sup&gt;2 &lt;/sup&gt;&lt;sub&gt;Yes, I know that (at least in the US) you aren't supposed to ask how old an applicant is. In my experience, though, you can get a general idea from a résumé.&lt;/sub&gt;&lt;/p&gt;&#xA;" OwnerUserId="99" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-09T00:12:04.300" LastActivityDate="2010-11-09T04:58:57.700" Title="How old is &quot;too old&quot;?" Tags="&lt;career&gt;&lt;hiring&gt;" AnswerCount="21" CommentCount="8" FavoriteCount="16" />
  <row Id="371" PostTypeId="2" ParentId="358" CreationDate="2010-09-02T02:30:32.957" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;ColdFusion&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A language where everything is embedded in a webpage using XML like tags (I despise XML) leads to the worse written code I've ever seen. &lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-03T22:06:17.170" LastActivityDate="2010-09-03T22:06:17.170" CommunityOwnedDate="2010-09-30T22:46:32.880" CommentCount="5" />
  <row Id="372" PostTypeId="2" ParentId="370" CreationDate="2010-09-02T02:31:47.397" Score="8" ViewCount="" Body="&lt;p&gt;I sit next to a couple 50+ year old C# developers.  There's no inherent &quot;Too Old,&quot; just perceptions on the part of the interviewers.  As such, you may have to go the extra mile in convincing people that you're knowledge is up to date.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or become soylent programmer.  Either way.  :P&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T02:31:47.397" />
  <row Id="375" PostTypeId="2" ParentId="331" CreationDate="2010-09-02T02:37:04.403" Score="5" ViewCount="" Body="&lt;p&gt;90% of the time the default font of whatever IDE/text editor/database I'm using is good enough. It was chosen by default for a reason.&lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-02T06:15:16.017" LastActivityDate="2010-09-02T06:15:16.017" CommunityOwnedDate="2010-09-02T02:37:04.403" CommentCount="3" />
  <row Id="377" PostTypeId="2" ParentId="326" CreationDate="2010-09-02T02:39:37.900" Score="0" ViewCount="" Body="&lt;p&gt;Since my projects are usually small I keep a simple &lt;code&gt;TODO.txt&lt;/code&gt;. Why? Because anything more is overkill. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is that I have trouble keeping it up to date. Things tend to stay in there for a while, and new features are usually never cycle through it. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-02T02:39:37.900" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="378" PostTypeId="2" ParentId="109" CreationDate="2010-09-02T02:39:51.417" Score="1" ViewCount="" Body="&lt;p&gt;When switching between PHP and C&amp;#9839;/Java, I often forgot and write ' instead of &quot; for string constants and end up having compiling errors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like:&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;PHP&lt;/h3&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?php&#xA;echo 'hello'; // allowed =)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;h3&gt;C&amp;#9839;&lt;/h3&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Console.Write('hello world'); // &amp;lt;- error!&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="117" LastActivityDate="2010-09-02T02:39:51.417" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="6" />
  <row Id="379" PostTypeId="2" ParentId="331" CreationDate="2010-09-02T02:43:45.843" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Courier New&lt;/strong&gt; would be my choice of font when coding. But most of the time I use whatever the IDE defaults to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;offtopic:  &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;goes to fastfood restaurant&lt;/li&gt;&#xA;&lt;li&gt;&quot;hi what would you like to have?&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;whatever the default is...&quot;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="117" LastActivityDate="2010-09-02T02:43:45.843" CommunityOwnedDate="2010-09-02T02:43:45.843" CommentCount="6" />
  <row Id="380" PostTypeId="1" AcceptedAnswerId="388" CreationDate="2010-09-02T02:53:47.630" Score="15" ViewCount="603" Body="&lt;p&gt;We all know that the big job motivators are things like rewarding work, money, new technology, etc.  But outside of that, what less critical &quot;perks&quot; are most important to you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By way of example, I'm not sure I could ever work at a place without free coffee.&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="19" LastEditorDisplayName="" LastEditDate="2010-09-02T16:51:33.877" LastActivityDate="2010-09-30T07:23:00.263" ClosedDate="2011-05-24T14:51:33.033" Title="What is your favorite 'perk'?" Tags="&lt;favorite&gt;&lt;jobs&gt;" AnswerCount="16" CommentCount="2" FavoriteCount="4" />
  <row Id="381" PostTypeId="2" ParentId="154" CreationDate="2010-09-02T02:59:00.447" Score="13" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/GdamY.png&quot; title=&quot;Apple uses automated schnapps IVs.&quot;/&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've put this to the test on many late college nights.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T02:59:00.447" CommentCount="2" />
  <row Id="382" PostTypeId="2" ParentId="380" CreationDate="2010-09-02T03:00:57.530" Score="11" ViewCount="" Body="&lt;p&gt;As a freelancer, my favorite perk is that I can take darn near anything as a tax write-off. For instance, I submitted an article two days ago on mobile websites. I can now look my accountant in the face and assure her that yes, both my iPhone 4 and my iPad are legitimate business expenses, because I needed both of them for that job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[Although my write-offs are nothing compared to my friends who have a website about champagne…]&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-09-02T03:00:57.530" CommentCount="1" />
  <row Id="383" PostTypeId="2" ParentId="275" CreationDate="2010-09-02T03:03:37.463" Score="1" ViewCount="" Body="&lt;p&gt;I remember myself starting curious what makes all the programs on a computer system run. So one fine day I grabbed one of the .exe file on Windows XP (that was 7-8 years back when I was 11 years old?) and opened it in Notepad. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As always an binary file does, the whole screen was filled with amazing and fascinating funny characters and what I was copied everything to another Notepad file naively and renamed the new file with a .exe extension. I went on to change some values in the Notepad file and saved it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course the file couldn't run! It was vivid that the application came up as a black console window, then crash. I was not upset at the point of time, I became even more determined to find out how to develop a .exe file.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Months later I found a copy of Turbo Pascal compiler and a set of IDE in MSDOS. I started writing my first applications in Turbo Pascal. At that point of time, Turbo Pascal was already 20-odd years old. I simply wrote the application and was very happy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I remember myself writing a File Browser on DOS and replaced the command.com file in a bootable floppy disk (floppy disks were at the last of it at that point of time). And I happily named it as my very own OS. and of course it worked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A month or so later, I received a copy of Visual Basic 6 IDE installer and I started learning how to code in VB instead. It went on for a year or two. I developed several applications, some of which are still lingering around the internet (Samstyle Visual Style Manager, DC Checker and so on). They are written in VB.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I went into Mac Emulation for Windows a year later. I joined one of the forums, named Aqua-Gero. I remember being there for 2 years or so. Over there, I started off as a humble member, then rose all the way to be one of the Admins. I met one of the guys who manage the site, Eric Torres (It's been awhile since I last heard of him, he lives in San Fransisco), and Ari who gave me access to the server and allowed me to do some forum mods. That's when I first started writing PHP, in Notepad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ever since, PHP became my main programming language. another 2 years later after joining Aqua-Gero, the forums became silent and I slowly lost my interests in modding desktops. I moved towards web development (HTML+JS+CSS+PHP).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One fine day my friend approached me for a web startup. My exposure to C# and ASP.NET. A year after I started C#, I went into Java as diploma course materials require us to code in Java. On the way I also went into XNA game development while competing in Imagine Cup 2009 and 2010.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's roughly how I started off. Roughly &amp;lt;:&lt;/p&gt;&#xA;" OwnerUserId="117" LastEditorUserId="117" LastEditorDisplayName="" LastEditDate="2011-02-13T04:29:05.763" LastActivityDate="2011-02-13T04:29:05.763" CommunityOwnedDate="2011-02-13T14:40:48.817" CommentCount="2" />
  <row Id="384" PostTypeId="2" ParentId="252" CreationDate="2010-09-02T03:04:56.187" Score="4" ViewCount="" Body="&lt;p&gt;The two main criticisms of Singletons fall into two camps from what I've observed:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Singletons are misused and abused by less capable programmers and so everything becomes a singleton and you see code littered with Class::get_instance() references. Generally speaking there are only one or two resources (like a database connection for example) that qualify for use of the Singleton pattern.&lt;/li&gt;&#xA;&lt;li&gt;Singletons are essentially static classes, relying on one or more static methods and properties. All things static present real, tangible problems when you try to do Unit Testing because they represent dead ends in your code that cannot be mocked or stubbed. As a result, when you test a class that relies on a Singleton (or any other static method or class) you are not only testing that class but also the static method or class.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;As a result of both of these, a common approach is to use create a broad container object to hold a single instance of these classes and only the container object modifies these types of classes while many other classes can be granted access to them to use from the container object.&lt;/p&gt;&#xA;" OwnerUserId="53" LastActivityDate="2010-09-02T03:04:56.187" CommentCount="2" />
  <row Id="385" PostTypeId="2" ParentId="257" CreationDate="2010-09-02T03:05:56.603" Score="3" ViewCount="" Body="&lt;p&gt;To solve this problem, you first need to identify the causes of the less constant productivity.  Many of those causes boil down to distractions.  Food is nearby and basically free; video games/books/other entertainment are easily accessible; family members or pets want attention.  Another factor is that there's less direct oversight; sure, you still have to do your job, but there's nobody in the cube across from you to look at you funny if you slack off a bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As others have said, keeping to a schedule can make a huge difference.  Having well-defined &quot;work times&quot; and lunch/break/family times should help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have enough space, clear out an area that's just for work and away from distractions.  If you're working next to your refrigerator or your Wii, you're going to be more tempted to eat or take a gaming break than you would be if you were in a dedicated home office.  It's the same theory that leads college students to camp out on the top floor of the library before finals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're working with a team, check in frequently.  It's easier to fall behind if you don't have to check in for another six days or two weeks than it is if your next status update is in two hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I had to boil my answer down to one word, it would be &lt;strong&gt;willpower&lt;/strong&gt;.  If you have it, you'll be able to overcome the things that reduce productivity at home; if you don't, you won't.  Every other strategy is just about reducing temptation and cutting down the amount of willpower you need.&lt;/p&gt;&#xA;" OwnerUserId="94" LastActivityDate="2010-09-02T03:05:56.603" />
  <row Id="386" PostTypeId="1" AcceptedAnswerId="3652" CreationDate="2010-09-02T03:14:28.463" Score="6" ViewCount="236" Body="&lt;p&gt;I know about how the economies of scale work, and how a bigger competitor could beat you in price, if they wanted.  But there doesn't seem to be anything better to compete at when entering a market in software (without being dishonest); a new product often won't be as good as an established one as far as features go.  Plus, older popular products are usually priced higher just &quot;because they can,&quot; and it's not likely they'll change just to crush a smaller company, so it seems tempting just to set a low price.&lt;/p&gt;&#xA;" OwnerUserId="59" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-14T12:09:09.240" LastActivityDate="2010-10-24T18:04:05.110" Title="Why shouldn't a new software product try to compete on price?" Tags="&lt;business&gt;&lt;pricing&gt;" AnswerCount="7" FavoriteCount="1" />
  <row Id="387" PostTypeId="2" ParentId="386" CreationDate="2010-09-02T03:17:43.177" Score="12" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;a new product obviously won't be as good as an established one as far as features go&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Why's that?  Old products are often encumbered by legacy code, backwards compatibility, and high expectations.  New products can take bold new directions, try new ideas, and make fundamental leaps that existing software never could.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T03:17:43.177" CommentCount="2" />
  <row Id="388" PostTypeId="2" ParentId="380" CreationDate="2010-09-02T03:18:14.720" Score="25" ViewCount="" Body="&lt;p&gt;My favorite perk, at least at the moment, is &lt;strong&gt;the hardware&lt;/strong&gt;.  Before I started my current job, I'd never used a multiple-monitor setup.  Fortunately, the contract I'm working on is willing to supply developers with two 22&quot; widescreen monitors.  Now, I can't even remember how I functioned before I had one screen for my IDE and another for documentation, notes and e-mail.&lt;/p&gt;&#xA;" OwnerUserId="94" LastActivityDate="2010-09-02T03:18:14.720" CommentCount="6" />
  <row Id="389" PostTypeId="2" ParentId="101" CreationDate="2010-09-02T03:18:45.983" Score="11" ViewCount="" Body="&lt;p&gt;As far as Computer &lt;em&gt;Science&lt;/em&gt; is concerned- yes, they are relevant, regardless of what you will end up researching. It's kind of like studying Assembly in a Software Engineering degree. Will you necessarily use it? No. Should you be familiar with it? Absolutely. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as software engineering is concerned- discrete mathematics are important: the logical world view of a lot of the practical programming and software construction topics draw from set theory. Just look at the whole class hierarchy thing in Object Oriented Programming. &#xA;Combinatorics also show up a lot. How much bits do you need to represent your data? Depends on how many options there are. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Linear Algebra has the concepts of modulo arithmetic, which pops up a lot in programming, and relations, which again are deeply nested in the logical world view of some programming topics (for example- equivalence classes in software testing, or database querying). Also, a strong algebraic &quot;muscle&quot; in your head is definitely important in practice, because Algebra inevitably pops up. Just calculating run time complexity is enough for that to be true. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Calculus, as others mentioned, is very useful for 3D stuff. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do these courses teach you above and beyond? Sure. Can you learn this stuff ad-hoc? Maybe. But when you need to train yourself for a specific physical task, do you only train the specific muscles that are involved, or do you also train the muscles around them and that are connected to them? Even without the above, just the shift in the way you solve problems that these classes will cause in you is worth taking them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, you may be interesting in knowing that there are many companies, Blizzard for example, that list &quot;excellent math skills&quot; in their jobs listings. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-02T03:18:45.983" CommunityOwnedDate="2011-03-13T14:49:02.620" CommentCount="3" />
  <row Id="390" PostTypeId="2" ParentId="386" CreationDate="2010-09-02T03:20:58.740" Score="1" ViewCount="" Body="&lt;p&gt;Two words: &lt;strong&gt;Open Source&lt;/strong&gt;. (EDIT: and, of course, other free software, as noted in Mark's comment.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you're doing something super-specialized or incredibly complicated, someone's going to make a product that does what yours does, and give it away for free.  And you can't beat free.&lt;/p&gt;&#xA;" OwnerUserId="94" LastEditorUserId="94" LastEditorDisplayName="" LastEditDate="2010-10-14T22:42:06.113" LastActivityDate="2010-10-14T22:42:06.113" CommentCount="3" />
  <row Id="391" PostTypeId="2" ParentId="386" CreationDate="2010-09-02T03:33:28.537" Score="6" ViewCount="" Body="&lt;p&gt;Older (more mature) products tend to command a premium not merely &quot;because they can&quot;, but because they solve an already proven need. It's not much different than the salary difference between an entry-level programmer and a 20-year-veteran: the former has higher risk, so the initial investment needs to be lower.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But don't underestimate the economics of cheap or free. Google is the software exemplar of this, but it's worked amazingly well in other industries. Gillette is one of the original pioneers: give away the razor and make money on the blades. Printer manufacturers do the same thing with ink cartridges.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer the titular question though: you don't want to compete on price because it's a known, negotiable quantity. Either your competitors will undercut you, or your clients/customers will undervalue you. If you say your product is $50, you competitor can say &quot;I'll give you the same thing for $45&quot; or your client can ask, &quot;Why isn't it $45?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead, it's much more important to compete on value: it's okay if your product costs a little more than a competitor's: your product is better. To this end, perfect case study in selling on value is Apple: their products may cost more, they may sell less volume, but they absolutely kill their competitors in profit margins.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-02T03:33:28.537" />
  <row Id="392" PostTypeId="2" ParentId="257" CreationDate="2010-09-02T03:34:33.687" Score="3" ViewCount="" Body="&lt;p&gt;Personally, I do my best work when I decide that: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;OK, forget obligations, forget time&#xA;  constraints, forget about having to go&#xA;  to sleep at X in the evening. I'm&#xA;  going to sit down, and work for as&#xA;  long as it takes until I am satisfied&#xA;  with what I did.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's all about letting the world get the hell out of your way. &#xA;This usually translates into an all night programming session, at the end of which I always make great strides. &#xA;Since you work from home your schedule should be flexible enough to manage your obligations to a minimum. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-02T03:34:33.687" />
  <row Id="393" PostTypeId="2" ParentId="360" CreationDate="2010-09-02T03:47:45.767" Score="2" ViewCount="" Body="&lt;p&gt;Buy a Macintosh, install XCode and start developing.&lt;/p&gt;&#xA;" OwnerUserId="117" LastActivityDate="2010-09-02T03:47:45.767" />
  <row Id="394" PostTypeId="2" ParentId="370" CreationDate="2010-09-02T04:00:41.307" Score="16" ViewCount="" Body="&lt;p&gt;When I was working on finding my current position, I attended a workshop where I was the youngest person by at least a decade. A number of the other people in the workshop were 50+ and having a very hard time finding work. A few of the observations on why this is were:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A lot of employers assume that since you're older you're also looking to score a couple last years of employment before you get to retire and when looking for a candidate they really want to eek out every month they can get.&lt;/li&gt;&#xA;&lt;li&gt;In the current economy and job market, a lot of VERY experienced and VERY qualified people are applying for jobs that are well beneath their qualifications. Employers tend to be either suspicious assuming that you're somehow damaged goods or they figure you'll jump ship the minute you can. Another worry is often related to your expected salary in relation to the job posting.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Ultimately employers are looking to score the biggest bang for their buck and all too often, they associate experience and maturity with &quot;old&quot; and figure that they'll go with someone younger and rougher around the edges but they figure they can train them for cheaper and keep them longer than they can someone with more experience and maturity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my current team our Scrum Master and Team Leader is a guy who is in his fifties and he is invaluable in smoothing out rough spots and dealing with our upper management. On the flip side, I don't mind that he doesn't write much code because the bulk of his coding experience has all been from at least a decade ago and so it feels more like VB6 than PHP. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I think that older programmers make great mentors and team leaders because they've got great experience with every aspect of development. It may be for that reason that people have suggested that you look more to managerial roles. Employers recognize this too, I think, and are more likely to hire someone with lots of experience in a managerial role than as another coder.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a side note - Most people with experience in the hiring industry recommend that older candidates avoid dates, or adjust the work experience portion of their resume in order to deemphasize their age.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One last thing to consider is whether you are getting in for interviews or if your resume is simply being rejected. If you're getting into the interviews then your resume is probably not the problem.&lt;/p&gt;&#xA;" OwnerUserId="53" LastActivityDate="2010-09-02T04:00:41.307" CommentCount="1" />
  <row Id="395" PostTypeId="2" ParentId="360" CreationDate="2010-09-02T04:04:01.293" Score="7" ViewCount="" Body="&lt;p&gt;As thephpdeveloper stated, the first step is to get a Mac. There is no software development you're going to be able to do on a PC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next, you need a &lt;a href=&quot;http://developer.apple.com&quot; rel=&quot;nofollow&quot;&gt;Apple Developer Connection&lt;/a&gt; account. The basic level is free, and grants you access to most of Apple's resources and developer software. One document there I think you should read before doing anything else is the &lt;a href=&quot;http://developer.apple.com/mac/library/documentation/UserExperience/Conceptual/AppleHIGuidelines/XHIGIntro/XHIGIntro.html&quot; rel=&quot;nofollow&quot;&gt;Apple Human Interface Guidelines&lt;/a&gt;: it's far more important on Mac OS X than it is for other operating systems (see below).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, you should get a good book on Cocoa and Objective-C. I used Aaron Hillegas's &lt;a href=&quot;http://www.bignerdranch.com/book/cocoa_programming_for_mac_os_x_3rd_edition&quot; rel=&quot;nofollow&quot;&gt;Cocoa® Programming for Mac® OS X&lt;/a&gt; to learn Cocoa, but it's getting pretty out of date. A new edition should be coming with Xcode 4. For other ideas on reference books, check out the question &lt;a href=&quot;http://stackoverflow.com/questions/7571/cocoa-and-objective-c-resources&quot;&gt;Cocoa and Objective-C resources?&lt;/a&gt; on Stack Overflow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, a large part of developing Mac OS X software is embracing the culture: subscribe to Mac-centered blogs like &lt;a href=&quot;http://tuaw.com&quot; rel=&quot;nofollow&quot;&gt;TUAW&lt;/a&gt;, &lt;a href=&quot;http://daringfireball.net&quot; rel=&quot;nofollow&quot;&gt;Daring Fireball&lt;/a&gt;, &lt;a href=&quot;http://appleinsider.com&quot; rel=&quot;nofollow&quot;&gt;AppleInsider&lt;/a&gt;, and &lt;a href=&quot;http://cultofmac.com&quot; rel=&quot;nofollow&quot;&gt;Cult of Mac&lt;/a&gt;. They're not going to give you insights into how to code for Mac OS X, but over time they will tell you what Mac users have come to expect from software. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, a large portion of maintaining goodwill and executing successful Mac software comes down to meeting and exceeding your user base's expectations. Your software could do everything imaginable, but if it doesn't have the same user experience and general attention to detail as the rest of the Mac ecosystem, people will hate it.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-02T04:04:01.293" CommentCount="3" />
  <row Id="396" PostTypeId="1" AcceptedAnswerId="399" CreationDate="2010-09-02T04:26:36.810" Score="6" ViewCount="719" Body="&lt;p&gt;Our office is moving soon and we have the opportunity to redesign our office space.  We have five developers and a couple of testers, working with a project manager, and a business analyst.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like your ideas for an ideal office layout for a a small development team like ours.&lt;/p&gt;&#xA;" OwnerUserId="91" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:52:06.543" LastActivityDate="2011-05-24T14:49:17.750" Title="What are some good office-layout guidelines for a small development team?" Tags="&lt;office&gt;&lt;team&gt;&lt;organization&gt;" AnswerCount="3" FavoriteCount="3" />
  <row Id="397" PostTypeId="2" ParentId="39" CreationDate="2010-09-02T04:30:29.907" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;There is always one more bug.&#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; Lubarsky's Law of Cybernetic Entomology&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-10-11T16:27:55.220" CommunityOwnedDate="2010-09-04T10:57:01.747" />
  <row Id="398" PostTypeId="2" ParentId="180" CreationDate="2010-09-02T04:37:27.083" Score="2" ViewCount="" Body="&lt;p&gt;If you learned C from Dan Gookin's &lt;em&gt;C For Dummies&lt;/em&gt;, it's &lt;code&gt;Goodbye, cruel world!&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="122" LastEditorUserId="122" LastEditorDisplayName="" LastEditDate="2010-09-03T12:36:11.873" LastActivityDate="2010-09-03T12:36:11.873" CommentCount="6" />
  <row Id="399" PostTypeId="2" ParentId="396" CreationDate="2010-09-02T04:40:25.970" Score="3" ViewCount="" Body="&lt;p&gt;Depends a lot on your team.  I'll give as an example the place I'm at now, which is an open office- no cubicles, all one big room (~15 devs there).  We've sort of adapted how we work to the space- we tend towards non-verbal communication (email and IM) to keep the noise manageable, and we duck into the conference room downstairs when we need more in-depth discussion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some upshots to a design like this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fewer barriers between people.  No coworker is further than 15 feet away from me.&lt;/li&gt;&#xA;&lt;li&gt;Sunlight.  I have three walls of windows.&lt;/li&gt;&#xA;&lt;li&gt;Sociability- a lack of walls allows for a bit more team camaraderie.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some downsides:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you want to be distraction-free, you sometimes have to do it yourself (ie, headphones).&lt;/li&gt;&#xA;&lt;li&gt;No room for whiteboards.&lt;/li&gt;&#xA;&lt;li&gt;No private or even semi-private phone calls unless you want to get up and leave the main room.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T04:40:25.970" CommentCount="6" />
  <row Id="400" PostTypeId="2" ParentId="294" CreationDate="2010-09-02T04:49:09.780" Score="0" ViewCount="" Body="&lt;p&gt;Most open-source projects start as scratch-my-own-itch work. Maybe you could find an itch you'd like to scratch, then find somebody who's already started work on such a project? Or as Brian suggested, just start your own project: it's really easy, and you'll be using other open-source tools and libraries to whom you can contribute in the course of your own project.&lt;/p&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-09-02T04:49:09.780" />
  <row Id="401" PostTypeId="2" ParentId="28" CreationDate="2010-09-02T04:56:33.550" Score="6" ViewCount="" Body="&lt;p&gt;Since nobody's mentioned this yet:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris. (Larry Wall, Programming Perl, 1st edition)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;For more information, see the &lt;a href=&quot;http://c2.com/cgi/wiki?LazinessImpatienceHubris&quot; rel=&quot;nofollow&quot;&gt;article on C2 wiki&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-09-02T04:56:33.550" />
  <row Id="402" PostTypeId="2" ParentId="326" CreationDate="2010-09-02T05:06:03.543" Score="0" ViewCount="" Body="&lt;p&gt;Anything that needs to be fixed immediately is &lt;a href=&quot;http://fragile.org.uk/2010/04/why-i-dont-use-bug-tracking-software/&quot; rel=&quot;nofollow&quot;&gt;fixed immediately&lt;/a&gt;. Anything which cannot be fixed immediately is added to the bug tracking system (we use Unfuddle at work; I use GitHub's issue list for personal projects). Recurring tasks are on Google Calendar. My personal TODO list is on &lt;a href=&quot;http://springpadit.com/&quot; rel=&quot;nofollow&quot;&gt;Springpad&lt;/a&gt;, so that it gets synced onto my phone; although I have to admit a lot of TODOs are just notes I e-mail myself as reminders :)&lt;/p&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-09-02T05:06:03.543" CommunityOwnedDate="2010-09-17T07:53:09.223" CommentCount="1" />
  <row Id="403" PostTypeId="2" ParentId="326" CreationDate="2010-09-02T05:06:42.260" Score="1" ViewCount="" Body="&lt;p&gt;For project and work related stuff, I use &lt;a href=&quot;http://www.assembla.com&quot; rel=&quot;nofollow&quot;&gt;Assembla&lt;/a&gt;. It's great because it rolls up all my tasks from different projects and customers onto one screen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For my own mini task list, I just use a white board.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-02T05:06:42.260" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="404" PostTypeId="1" AcceptedAnswerId="451" CreationDate="2010-09-02T05:18:47.180" Score="17" ViewCount="197" Body="&lt;p&gt;Joel Spolsky wrote a famous blog post &quot;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000022.html&quot; rel=&quot;nofollow&quot;&gt;Human Task Switches considered harmful&lt;/a&gt;&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I agree with the premise and it seems like common sense, I'm wondering if there are any studies or white papers on this to calculate the overhead on task switches, or is the evidence merely anecdotal? &lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-02T13:15:16.690" Title="Is there any hard data to back up &quot;Human task switches considered harmful&quot;?" Tags="&lt;project-management&gt;&lt;performance&gt;" AnswerCount="1" CommentCount="3" FavoriteCount="4" />
  <row Id="405" PostTypeId="2" ParentId="331" CreationDate="2010-09-02T05:29:09.850" Score="0" ViewCount="" Body="&lt;p&gt;I use visual studio to code, and Consolas with black background with white font color (ClearType enabled of course) looks really nice.&lt;/p&gt;&#xA;" OwnerUserId="123" LastActivityDate="2010-09-02T05:29:09.850" CommunityOwnedDate="2010-09-02T05:29:09.850" />
  <row Id="406" PostTypeId="2" ParentId="257" CreationDate="2010-09-02T05:40:03.707" Score="3" ViewCount="" Body="&lt;p&gt;I've worked from home for big chunks of time over my career, and I've definitely struggled with this at different times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The following have worked for me:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If there are other people around in your home, &lt;strong&gt;work in a room where you can shut the door&lt;/strong&gt;. Wear headphones. Make people actually interrupt you; they'll stop doing so if it's not important.&lt;/li&gt;&#xA;&lt;li&gt;Having said that, if you have a spouse or significant other at home, &lt;strong&gt;arrange for times when it's okay to interrupt you&lt;/strong&gt;. I usually break for tea a couple of times during the day, as well as having lunch. If your partner needs you to do something during that time, bake it into your schedule: &quot;I'll be breaking for a snack at 3 pm - do you want me to watch over the kids for ten minutes while you get the laundry started? I can do it then, but I'll need to work a little later to make up the time.&quot;&lt;/li&gt;&#xA;&lt;li&gt;Your project methodology may already ask you to do this, but if it doesn't, &lt;strong&gt;commit publicly (preferably in writing) to someone that you'll get a task done today&lt;/strong&gt;. If you have to admit a couple of times that you didn't achieve what you set out to do today, then you'll be able to put a little more pressure on yourself to get things done.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-02T05:40:03.707" />
  <row Id="407" PostTypeId="2" ParentId="368" CreationDate="2010-09-02T05:45:30.270" Score="14" ViewCount="" Body="&lt;p&gt;I'd say it's because when people first encountered it, it was slow. Based on that, they formed an impression of it. That impression is unlikely to change if they don't use it, and they don't use it because of that impression - it's a vicious cycle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I must admit, I had the impression that Java was slow, and yes, that was from my previous exposure to it.  I've now moved on to different languages and have had extremely limited exposure to Java since then.  Consequently, my opinion hasn't changed much.&lt;/p&gt;&#xA;" OwnerUserId="91" LastActivityDate="2010-09-02T05:45:30.270" CommentCount="2" />
  <row Id="408" PostTypeId="1" CreationDate="2010-09-02T05:57:38.993" Score="3" ViewCount="204" Body="&lt;h3&gt;&quot;Regular&quot; golf vs. code golf:&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Both are competitions.  Both have a well-defined set of rules, which I'll leave out for simplicity.  Both have well-defined goals; in short, &quot;use fewer hits/characters than your competitors.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To win matches, athletic golfers rely on&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;equipment&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Some situations call for a sand wedge; others, a 9-iron.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;techniques&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The drive works better when your feet are about shoulder width apart and your arms are relaxed.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;and strategies&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Sure, you could take that direct shortcut to the hole... but do you really want to risk the water hazard or sand bunker when those trees are in the way and the wind is so strong?  It might be better to go around the long way.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What do code golfers have that's analagous to athletic golfers' equipment, techniques and strategies?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sample answer to get this started: use the right club!  Choose GolfScript instead of C#.&lt;/p&gt;&#xA;" OwnerUserId="94" LastActivityDate="2010-12-27T11:58:07.277" Title="What techniques are used in solving code golf problems?" Tags="&lt;technique&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="1" />
  <row Id="409" PostTypeId="2" ParentId="368" CreationDate="2010-09-02T06:04:22.423" Score="67" ViewCount="" Body="&lt;p&gt;It's the applications. As you note, we &lt;em&gt;have&lt;/em&gt; proved, time and time again, that in contrived scenarios Java code can meet or even &lt;em&gt;beat&lt;/em&gt; the performance of so-called &quot;performant&quot; languages like C, C++, Lisp, VB6, or JavaScript. And when presented with such evidence, most sane, open-minded opponents will hang their heads in shame and promise never again to spread such slander.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...but then, they fire up Eclipse, or NetBeans, or Guiffy, or enable the Java support in their browser, or try to run an app on their favorite feature phone. And they wait for it to become responsive...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...and wait...&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;...and wait...&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;...and wait...&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;...and wait...&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;...and...&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;...what did I promise never to do again? Sorry, must have dozed off...&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-02T06:04:22.423" CommentCount="15" />
  <row Id="410" PostTypeId="2" ParentId="331" CreationDate="2010-09-02T06:05:04.403" Score="3" ViewCount="" Body="&lt;p&gt;Why, &lt;a href=&quot;http://www.codinghorror.com/blog/2007/10/revisiting-programming-fonts.html&quot; rel=&quot;nofollow&quot;&gt;the Font of the Gods&lt;/a&gt;, of course.&lt;/p&gt;&#xA;" OwnerUserId="94" LastActivityDate="2010-09-02T06:05:04.403" CommunityOwnedDate="2010-09-02T06:05:04.403" CommentCount="4" />
  <row Id="412" PostTypeId="2" ParentId="331" CreationDate="2010-09-02T06:14:39.793" Score="11" ViewCount="" Body="&lt;p&gt;Consolas is undoubtedly the winner, as it is the only  professionally designed and hinted font with the goal of source code editing on LCD screens. It requires ClearType (or any similar technology) but no one today should go without LCD subpixel rendering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only caveat is that it is not free (not as speech and actually neither as beer), but such a quality work can hardly be free, as professional font designers are not used to work for free...&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-02T06:14:39.793" CommunityOwnedDate="2010-09-02T06:14:39.793" CommentCount="7" />
  <row Id="414" PostTypeId="2" ParentId="368" CreationDate="2010-09-02T06:36:43.917" Score="18" ViewCount="" Body="&lt;p&gt;Because it is slow... in some applications. Desktop applications have to be responsive from the beginning and the sturtup overhead counts as slow. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand if you run a server it does not matter if there is some heating (JIT analysis and compilation) - you do it once in blue moon so most of the time it cannot be considered entirely slow.&lt;/p&gt;&#xA;" OwnerUserId="103" LastActivityDate="2010-09-02T06:36:43.917" CommentCount="4" />
  <row Id="415" PostTypeId="2" ParentId="296" CreationDate="2010-09-02T06:58:48.987" Score="13" ViewCount="" Body="&lt;p&gt;I think it's time for a functional programming language to be popular. &lt;a href=&quot;http://en.wikipedia.org/wiki/F_Sharp_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;F#&lt;/a&gt; is a good candidate, since it the first functional programming language that has support for a good UI framework with WPF .NET. This is something I have missed with functional programming languages before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The more cores we get on servers, I think that &lt;a href=&quot;http://programmers.stackexchange.com/questions/177/what-is-your-thoughts-about-the-actor-model&quot;&gt;the Actor Model&lt;/a&gt; will be more important for server software. So I think that &lt;a href=&quot;http://en.wikipedia.org/wiki/Erlang_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Erlang&lt;/a&gt; will be more important, since it is a functional programming language that implements the Actor Model.&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-02T07:07:25.263" LastActivityDate="2010-09-02T07:07:25.263" CommentCount="6" />
  <row Id="416" PostTypeId="2" ParentId="348" CreationDate="2010-09-02T07:08:42.847" Score="4" ViewCount="" Body="&lt;p&gt;It's okay to have remote people if two things are true:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The people are senior enough and have a track record that means that you trust them to get things done without much supervision and to be proactive about asking for help or letting you know if they are stuck.&lt;/li&gt;&#xA;&lt;li&gt;The &quot;pulse&quot; of your project is short enough (preferably daily) so that any problems with the arrangement will be identified quickly. I don't just mean someone saying they've done something in a status report or checking an item off a task list, but actual, demonstrable progress with a feature. There are of course lots of ways to do this, but the main trick is to split tasks into small enough chunks that can be done in a day or less, and validate that these tasks are being completed.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-02T07:08:42.847" />
  <row Id="417" PostTypeId="2" ParentId="348" CreationDate="2010-09-02T07:09:37.010" Score="-2" ViewCount="" Body="&lt;p&gt;I think it also depends on what you want them to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they're contributing to the architecture and overall design of the software, then it could be a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they're receiving detailed specs and churning out methods, then not so much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;  To clarify, I'm trying to say that if the work can be isolated, then it's fine to give to a remote employee.  If, however, it needs detailed discussion and architectural design meetings, then that's very hard to do from different countries.&lt;/p&gt;&#xA;" OwnerUserId="91" LastEditorUserId="91" LastEditorDisplayName="" LastEditDate="2010-12-01T00:14:27.760" LastActivityDate="2010-12-01T00:14:27.760" CommentCount="7" />
  <row Id="418" PostTypeId="2" ParentId="39" CreationDate="2010-09-02T07:10:55.057" Score="17" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.&#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; Joe Armstrong on object-oriented programming&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-11T16:04:57.697" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="3" />
  <row Id="419" PostTypeId="1" CreationDate="2010-09-02T07:12:31.853" Score="12" ViewCount="517" Body="&lt;p&gt;What do you on the 256 day of the year which is almost always 13 of september.  By coincidence it is also my b-day but wondering if you do any kind of programming related celebration?&lt;/p&gt;&#xA;" OwnerUserId="128" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-07T13:14:06.180" LastActivityDate="2011-01-20T21:46:24.540" ClosedDate="2011-01-19T18:23:09.303" Title="How do you celebrate Programmer day?" Tags="&lt;social&gt;&lt;geek&gt;&lt;programmer-day&gt;&lt;celebration&gt;" AnswerCount="12" CommentCount="10" FavoriteCount="4" />
  <row Id="420" PostTypeId="2" ParentId="419" CreationDate="2010-09-02T07:27:35.320" Score="8" ViewCount="" Body="&lt;p&gt;As this year the day 0xFF is a working day I will be in office programming, and I'll have my weekly conference call with Microsoft. Maybe I will also &lt;a href=&quot;http://en.wikipedia.org/wiki/Name_mangling&quot; rel=&quot;nofollow&quot;&gt;decorate&lt;/a&gt; a &lt;a href=&quot;http://en.wikipedia.org/wiki/Christmas_tree&quot; rel=&quot;nofollow&quot;&gt;binary tree&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-02T10:56:07.230" LastActivityDate="2010-09-02T10:56:07.230" CommentCount="4" />
  <row Id="421" PostTypeId="2" ParentId="331" CreationDate="2010-09-02T07:27:37.910" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;https://fedorahosted.org/liberation-fonts/&quot; rel=&quot;nofollow&quot;&gt;Liberation Mono&lt;/a&gt; - here's &lt;a href=&quot;http://upload.wikimedia.org/wikipedia/commons/f/f6/Font_Comparison_-_Liberation_Mono_to_Courier_New.svg&quot; rel=&quot;nofollow&quot;&gt;comparation with Currier New&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="103" LastActivityDate="2010-09-02T07:27:37.910" CommunityOwnedDate="2010-09-02T07:27:37.910" CommentCount="1" />
  <row Id="423" PostTypeId="2" ParentId="39" CreationDate="2010-09-02T07:37:57.427" Score="3" ViewCount="" Body="&lt;p&gt;In Hebrew there's a saying (mostly by army conscripted programmers):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;באג בדיזיין -&gt; זין בדיבאג&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Which is an anagram, and it roughly translates to&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Bugs in the design -&gt; you're f^#ked while debugging&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="22" LastEditorUserId="915" LastEditorDisplayName="" LastEditDate="2010-09-28T08:13:11.827" LastActivityDate="2010-09-28T08:13:11.827" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="2" />
  <row Id="425" PostTypeId="2" ParentId="163" CreationDate="2010-09-02T07:48:05.267" Score="3" ViewCount="" Body="&lt;p&gt;My favorite is:&#xA;&lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book.html&quot; rel=&quot;nofollow&quot;&gt;Structure and Interpretation of Computer Programs&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was my first academic text-book 10 years ago, and it still blows my mind how relevant it is in predicting trends in state of the art &quot;Software Engineering&quot;, and programming in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It uses LISP for it's examples, but I don't consider LISP any kind of language, hence it's totally agnostic ;)&lt;/p&gt;&#xA;" OwnerUserId="22" LastActivityDate="2010-09-02T07:48:05.267" CommentCount="2" />
  <row Id="426" PostTypeId="2" ParentId="364" CreationDate="2010-09-02T07:52:02.650" Score="4" ViewCount="" Body="&lt;p&gt;Check &lt;a href=&quot;http://smallbasic.com/&quot; rel=&quot;nofollow&quot;&gt;SmallBasic&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is like QBASIC of our days. Programming is easy, it is extensible (if dad wants to make library) and it is updated often.&lt;/p&gt;&#xA;" OwnerUserId="52" LastActivityDate="2010-09-02T07:52:02.650" />
  <row Id="427" PostTypeId="2" ParentId="161" CreationDate="2010-09-02T08:47:49.473" Score="2" ViewCount="" Body="&lt;p&gt;Comment on Moshe's CSS/HTML5 answer (not as a comment for the Preaty-Print)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some risk mitigating tools:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://nex-3.com/posts/94-haml-sass-3-beta-released&quot; rel=&quot;nofollow&quot;&gt;SASS &amp;amp; HAML&lt;/a&gt; - CSS3 converter&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://css3pie.com/&quot; rel=&quot;nofollow&quot;&gt;PIE&lt;/a&gt; - CSS3 styling for IE&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/html5shim/&quot; rel=&quot;nofollow&quot;&gt;HTML Shim&lt;/a&gt; - Sort of tag parser&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="22" LastActivityDate="2010-09-02T08:47:49.473" CommentCount="1" />
  <row Id="428" PostTypeId="2" ParentId="331" CreationDate="2010-09-02T09:19:36.003" Score="2" ViewCount="" Body="&lt;p&gt;Specifically I use &lt;a href=&quot;http://www.proggyfonts.com/index.php?menu=download&quot; rel=&quot;nofollow&quot;&gt;proggy tiny (slashed zero)&lt;/a&gt; from &lt;a href=&quot;http://www.proggyfonts.com/&quot; rel=&quot;nofollow&quot;&gt;proggyfonts.com&lt;/a&gt;, but all his fonts are pretty good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://www.proggyfonts.com/download/example_proggy_tiny_sz.gif&quot; alt=&quot;link text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="134" LastActivityDate="2010-09-02T09:19:36.003" CommunityOwnedDate="2010-09-02T09:19:36.003" CommentCount="2" />
  <row Id="429" PostTypeId="2" ParentId="331" CreationDate="2010-09-02T09:23:04.790" Score="0" ViewCount="" Body="&lt;p&gt;I like &lt;a href=&quot;http://www.proggyfonts.com/index.php?menu=download&quot; rel=&quot;nofollow&quot;&gt;Proggy Clean (Slashed Zero)&lt;/a&gt; &lt;img src=&quot;http://i.imgur.com/995bJ.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="100" LastActivityDate="2010-09-02T09:23:04.790" CommunityOwnedDate="2010-09-02T09:23:04.790" />
  <row Id="430" PostTypeId="2" ParentId="238" CreationDate="2010-09-02T10:18:11.177" Score="15" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0168122/&quot; rel=&quot;nofollow&quot;&gt;Pirates of Silicon Valley&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Good artists copy... Great artists steal. &#xA;The story of how Microsoft and Apple started the PC revolution. The chronology is a bit off, but otherwise accurate. A very well done movie. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-02T10:18:11.177" CommentCount="1" />
  <row Id="431" PostTypeId="2" ParentId="326" CreationDate="2010-09-02T10:20:04.410" Score="0" ViewCount="" Body="&lt;p&gt;I've just started using &lt;a href=&quot;http://lighthouseapp.com/&quot; rel=&quot;nofollow&quot;&gt;Lighthouse&lt;/a&gt;, I like the integration with online repositories.&lt;/p&gt;&#xA;" OwnerUserId="100" LastActivityDate="2010-09-02T10:20:04.410" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="432" PostTypeId="2" ParentId="314" CreationDate="2010-09-02T10:20:53.350" Score="4" ViewCount="" Body="&lt;p&gt;Ask around. If you don't already have friends in programming then find a local programmers user group and attend for a few sessions, get to know people a bit and then ask them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you find some people to discuss with, begin by raising the question - &quot;I think I may be getting underpaid for my experience level. I'm paid x to do y, what do you guys think of that?&quot; Remember though that pay is subjective and often changes on area/experience/industry etc. Asking at a local group may at least mitigate some of the area based fluctuation. Alternatively, give a local hiring agency a call and ask them for advice. They will have placed lots of candidates and should be able to offer guidance of what range you should be aiming for. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of people are embarrassed about talking about pay or consider it rude, but this attitude just plays into the hands of employers as the culture of secrecy prevents people actually knowing what they are really worth without anything to compare it to and results in lots of people undervaluing themselves.&lt;/p&gt;&#xA;" OwnerUserId="134" LastActivityDate="2010-09-02T10:20:53.350" CommentCount="5" />
  <row Id="433" PostTypeId="2" ParentId="326" CreationDate="2010-09-02T10:30:33.820" Score="0" ViewCount="" Body="&lt;p&gt;I keep it simple (2 levels tree) on the web for availability on the free to-do lists by &lt;a href=&quot;http://tadalist.com/&quot; rel=&quot;nofollow&quot;&gt;37signals&lt;/a&gt;... &lt;/p&gt;&#xA;" OwnerUserId="133" LastActivityDate="2010-09-02T10:30:33.820" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="434" PostTypeId="2" ParentId="109" CreationDate="2010-09-02T10:32:52.753" Score="8" ViewCount="" Body="&lt;p&gt;I love the &lt;/p&gt;&#xA;&#xA;&lt;p&gt;a =+ 1;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;believing that a will be incremented.&lt;/p&gt;&#xA;" OwnerUserId="133" LastActivityDate="2010-09-02T10:32:52.753" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="2" />
  <row Id="435" PostTypeId="2" ParentId="282" CreationDate="2010-09-02T10:42:44.907" Score="23" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.hanselminutes.com/&quot; rel=&quot;nofollow&quot;&gt;Hanselminutes&lt;/a&gt; is a good one ;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Hanselminutes is a weekly audio talk&#xA;  show with noted web developer and&#xA;  technologist Scott Hanselman and&#xA;  hosted by Carl Franklin. Scott&#xA;  discusses utilities and tools, gives&#xA;  practical how-to advice, and discusses&#xA;  ASP.NET or Windows issues and&#xA;  workarounds.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="133" LastActivityDate="2010-09-02T10:42:44.907" CommunityOwnedDate="2010-12-21T06:02:41.540" CommentCount="4" />
  <row Id="436" PostTypeId="2" ParentId="109" CreationDate="2010-09-02T10:53:54.553" Score="4" ViewCount="" Body="&lt;p&gt;Forgetting to terminate a worker thread when a GUI app exits, so the process continues to run, out of sight.&lt;/p&gt;&#xA;" OwnerUserId="113" LastActivityDate="2010-09-02T10:53:54.553" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="3" />
  <row Id="438" PostTypeId="2" ParentId="380" CreationDate="2010-09-02T11:47:40.817" Score="18" ViewCount="" Body="&lt;p&gt;The most important perk to me is the ability to work from home.&#xA;Another perk that goes along with it is the ability to be trusted to do your job without direct constant supervision.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-02T11:47:40.817" CommentCount="3" />
  <row Id="439" PostTypeId="2" ParentId="380" CreationDate="2010-09-02T11:55:07.553" Score="17" ViewCount="" Body="&lt;p&gt;A nice perk is an MSDN subscription which allows you to install the software on your home machine as well as your work machine.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-02T11:55:07.553" CommentCount="1" />
  <row Id="440" PostTypeId="2" ParentId="135" CreationDate="2010-09-02T11:55:36.123" Score="39" ViewCount="" Body="&lt;p&gt;I'll probably get flamed for this but...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;140 characters is hardly the format to get any real pearls of programming wisdom.  Most (but not all) programming concepts/thoughts/ideas require more space to be articulated. I would follow the blogs of the list of programmers that everyone is suggesting.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-02T11:55:36.123" CommunityOwnedDate="2011-02-11T07:48:02.420" CommentCount="10" />
  <row Id="441" PostTypeId="2" ParentId="380" CreationDate="2010-09-02T12:11:29.917" Score="7" ViewCount="" Body="&lt;p&gt;My favorite perk at my job is free education.  The University provides free education to any full time employee and this does not have to be career related! &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-02T12:11:29.917" CommentCount="5" />
  <row Id="442" PostTypeId="2" ParentId="358" CreationDate="2010-09-02T12:17:42.990" Score="12" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.dangermouse.net/esoteric/ook.html&quot; rel=&quot;nofollow&quot;&gt;Ook!&lt;/a&gt; for outright craziness. But if you mean in a real project, it would have to be a toss-up between PHP and JavaScript, with PHP winning by a whisker.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; PHP is a totally bonkers language invented by people who had no business inflicting this Frankenstein's monster of a language on us. &lt;a href=&quot;http://stackoverflow.com/questions/309300/defend-php-convince-me-it-isnt-horrible&quot;&gt;See Defend PHP; convince me it isn't horrible&lt;/a&gt; for details. That's not to say I won't use it when required, just that it's soul-destroyingly &lt;em&gt;horrible&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT2:&lt;/strong&gt; JavaScript is a bonkers language too, but at least there's some method to the madness. That is, it's completely off its rocker, but at least it's &lt;em&gt;consistently&lt;/em&gt; crazy.&lt;/p&gt;&#xA;" OwnerUserId="61" LastEditorUserId="61" LastEditorDisplayName="" LastEditDate="2010-09-02T15:50:00.963" LastActivityDate="2010-09-02T15:50:00.963" CommunityOwnedDate="2010-09-30T22:46:32.880" CommentCount="10" />
  <row Id="443" PostTypeId="2" ParentId="109" CreationDate="2010-09-02T12:17:58.920" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;For example, a common error in C/C++ is to use the assignment operator &lt;code&gt;=&lt;/code&gt; instead of the comparison operator  &lt;code&gt;==&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And in OCaml language I'm currently using, it's common to use &quot;physical equality operator&quot; &lt;code&gt;==&lt;/code&gt; instead of simple &quot;equality operator&quot; &lt;code&gt;=&lt;/code&gt;.  Ditto for &quot;physical&quot; &lt;code&gt;!=&lt;/code&gt; and &quot;usual&quot; &lt;code&gt;&amp;lt;&amp;gt;&lt;/code&gt;.  I'm already used to writing &lt;code&gt;==&lt;/code&gt;, but here I have to wrire &lt;code&gt;=&lt;/code&gt;; this is a source of numerous errors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Physical equality&quot; means &quot;these two identifiers refer to the same object&quot;, contrary to &quot;refer to (possibly different) equal objects&quot;.  It has synnonyms in other languages as well.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-02T12:17:58.920" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="3" />
  <row Id="445" PostTypeId="2" ParentId="109" CreationDate="2010-09-02T12:26:03.927" Score="1" ViewCount="" Body="&lt;p&gt;Assuming that default arguments in Python are not shared between functions&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-02T12:26:03.927" CommunityOwnedDate="2010-10-06T08:33:10.437" />
  <row Id="446" PostTypeId="2" ParentId="419" CreationDate="2010-09-02T12:28:19.550" Score="9" ViewCount="" Body="&lt;p&gt;I usually implement a &lt;a href=&quot;http://www.freetetris.org/&quot; rel=&quot;nofollow&quot;&gt;Tetris game&lt;/a&gt; in the language I learned this year.&lt;/p&gt;&#xA;" OwnerUserId="34" LastEditorUserId="34" LastEditorDisplayName="" LastEditDate="2010-09-02T12:35:02.280" LastActivityDate="2010-09-02T12:35:02.280" CommentCount="2" />
  <row Id="448" PostTypeId="2" ParentId="364" CreationDate="2010-09-02T12:32:55.653" Score="4" ViewCount="" Body="&lt;p&gt;Depends on the age of your kids, but a friend of mine is using &lt;a href=&quot;http://mindstorms.lego.com/en-us/Default.aspx&quot; rel=&quot;nofollow&quot;&gt;Lego Mindstorms&lt;/a&gt; with their kid and it seems to be working out well.  Alot more fun to program at that age and see a robot move around!&lt;/p&gt;&#xA;" OwnerUserId="93" LastActivityDate="2010-09-02T12:32:55.653" CommentCount="1" />
  <row Id="449" PostTypeId="2" ParentId="358" CreationDate="2010-09-02T12:42:41.273" Score="4" ViewCount="" Body="&lt;p&gt;Programming in &lt;strong&gt;Microsoft Access 97 pseudo Visual Basic&lt;/strong&gt; was Crazy. The list of annoyance is long, but I think the biggest is things that are happening &quot;automatically&quot; and without notice. &lt;/p&gt;&#xA;" OwnerUserId="19" LastEditorUserId="19" LastEditorDisplayName="" LastEditDate="2010-09-02T14:10:23.850" LastActivityDate="2010-09-02T14:10:23.850" CommunityOwnedDate="2010-09-30T22:46:32.880" />
  <row Id="451" PostTypeId="2" ParentId="404" CreationDate="2010-09-02T13:15:16.690" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://portal.acm.org/citation.cfm?id=1167718&quot; rel=&quot;nofollow&quot;&gt;The abstract of a study that says 'maybe'&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://interruptions.net/literature/Schiffman-BPS92.pdf&quot; rel=&quot;nofollow&quot;&gt;Another study [PDF]&lt;/a&gt; that says interruptions make things seem like they took longer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://interruptions.net/literature/Altmann-CogSci04.pdf&quot; rel=&quot;nofollow&quot;&gt;A study[PDF]&lt;/a&gt; that says interruptions increase resumption lag time, but that cues seen in the task before the interruption can speed recovery time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://interruptions.net/literature/Czerwinski-CHI04-p175-czerwinski.pdf&quot; rel=&quot;nofollow&quot;&gt;Task switching[PDF]&lt;/a&gt; takes a significant portion of our work week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://interruptions.net/literature.htm&quot; rel=&quot;nofollow&quot;&gt;More reading&lt;/a&gt; on the psychology of interruptions than you can shake a stick at.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T13:15:16.690" CommentCount="1" />
  <row Id="452" PostTypeId="2" ParentId="238" CreationDate="2010-09-02T13:18:40.350" Score="6" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0244244/&quot; rel=&quot;nofollow&quot;&gt;Swordfish&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Completely silly in terms of anything related to actual technology, but Hugh Jackman does a reasonable job in the actual &quot;programming scene&quot; (talking to himself, silly concentrating activities) just in terms of the meta stuff. Oh yeah, and Halle Berry ain't bad either ;-).&lt;/p&gt;&#xA;" OwnerUserId="138" LastActivityDate="2010-09-02T13:18:40.350" CommentCount="5" />
  <row Id="453" PostTypeId="2" ParentId="358" CreationDate="2010-09-02T13:19:02.343" Score="10" ViewCount="" Body="&lt;p&gt;I used to program in &lt;a href=&quot;http://en.wikipedia.org/wiki/Ladder_logic&quot; rel=&quot;nofollow&quot;&gt;ladder&lt;/a&gt;. It sucked. They made this language was an attempt to turn non-programmers into programmers, this is the result:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/otRvJ.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="31" LastEditorUserId="31" LastEditorDisplayName="" LastEditDate="2011-01-30T18:07:25.760" LastActivityDate="2011-01-30T18:07:25.760" CommunityOwnedDate="2010-09-30T22:46:32.880" CommentCount="2" />
  <row Id="454" PostTypeId="2" ParentId="408" CreationDate="2010-09-02T13:27:20.123" Score="0" ViewCount="" Body="&lt;p&gt;Depending on the Golf Code challenge, just start by coding it. No mather the amount of initial character, it's the first step. Trying to code from scratch with the least character can just make it harder. After that look for where you can optimize your code (use 1 character variable, do chainning operation, etc.) . This part involves mastering the language in which you are doing the Golf Code, the better you know it, the more you will know tweak that will save you characters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example of this strategy/technique :&lt;br&gt;&#xA;&lt;a href=&quot;http://stackoverflow.com/questions/3173415/code-golf-2d-platformer/3173614#3173614&quot;&gt;http://stackoverflow.com/questions/3173415/code-golf-2d-platformer/3173614#3173614&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the equipment, for most Golf Code challenge, the ideal equipment is to use a custom language made just for the challenge. Sometimes that language already exist, sometimes you can just invent it and code an interpreter of it.&lt;/p&gt;&#xA;" OwnerUserId="41" LastActivityDate="2010-09-02T13:27:20.123" />
  <row Id="455" PostTypeId="2" ParentId="109" CreationDate="2010-09-02T13:31:28.353" Score="3" ViewCount="" Body="&lt;p&gt;Catching exception that you don't know how to recover from, or catching a large family of exceptions (or even &lt;em&gt;all&lt;/em&gt; exceptions) and not re-throwing when you encounter one that you don't know how to handle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In .NET, not bothering to look up what exceptions can be thrown in the documentation (or even the intellisense tooltip) and allowing exceptions that you should have caught (and either recovered from or wrapped and thrown) be bubbled up and to a caller who neither expects them nor understands them.&lt;/p&gt;&#xA;" OwnerUserId="135" LastActivityDate="2010-09-02T13:31:28.353" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="9" />
  <row Id="456" PostTypeId="2" ParentId="358" CreationDate="2010-09-02T13:32:22.657" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/IBM_Informix-4GL&quot; rel=&quot;nofollow&quot;&gt;4GL&lt;/a&gt;.  The fun part was that it was like working with a scripting language, but you still had to compile everything.  There was no good way to separate out the logic.&lt;/p&gt;&#xA;" OwnerUserId="62" LastActivityDate="2010-09-02T13:32:22.657" CommunityOwnedDate="2010-09-30T22:46:32.880" />
  <row Id="457" PostTypeId="2" ParentId="282" CreationDate="2010-09-02T13:35:42.820" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://deepfriedbytes.com/&quot; rel=&quot;nofollow&quot;&gt;Deep Fried Bytes&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="29" LastEditorUserId="-1" LastEditorDisplayName="" LastEditDate="2011-02-11T17:28:30.110" LastActivityDate="2011-02-11T17:28:30.110" CommunityOwnedDate="2010-12-21T06:02:41.540" />
  <row Id="458" PostTypeId="2" ParentId="282" CreationDate="2010-09-02T13:36:41.943" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://thirstydeveloper.com/&quot; rel=&quot;nofollow&quot;&gt;Thirsty Developer&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="29" LastEditorUserId="-1" LastEditorDisplayName="" LastEditDate="2011-02-11T17:28:27.927" LastActivityDate="2011-02-11T17:28:27.927" CommunityOwnedDate="2010-12-21T06:02:41.540" />
  <row Id="459" PostTypeId="2" ParentId="238" CreationDate="2010-09-02T13:37:18.980" Score="22" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0086567/&quot; rel=&quot;nofollow&quot;&gt;WarGames&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Because it's a good reminder of what white-hat hacking involves.  He's just looking to find some games and exploring what the system is capable of.  Of course if you're blindly digging into an application you can trigger some bad things..&lt;/p&gt;&#xA;" OwnerUserId="62" LastActivityDate="2010-09-02T13:37:18.980" CommentCount="2" />
  <row Id="462" PostTypeId="2" ParentId="370" CreationDate="2010-09-02T13:46:34.090" Score="27" ViewCount="" Body="&lt;p&gt;Having just got a new job at nearly 50 in the UK I can say that it's possible and you're never too old.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are two approaches - both rely on your skills being relevant to the job.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Stick with what you know and become a guru. This is risky as the number of jobs requiring &quot;old&quot; technologies are becoming fewer and further between as each year passes. However, as people retire from such jobs there will be openings.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Keep refreshing your skills. I moved into Silverlight last year, which is what got me this job. That and my previous team leadership roles which my new employer saw as relevant.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-02T13:46:34.090" />
  <row Id="463" PostTypeId="2" ParentId="326" CreationDate="2010-09-02T13:47:37.553" Score="3" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.mantisbt.org/&quot; rel=&quot;nofollow&quot;&gt;Mantis Bugtracker&lt;/a&gt; to keep track of to-do's for my projects.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For tasks related to all development staff, we use a huge white board.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For anything new or not directly programming related like documentation that I'm directly responsible for, I have a spiral notebook and a set of sparkly pens.  Sparkles make my task list seem less intimidating.&lt;/p&gt;&#xA;" OwnerUserId="95" LastActivityDate="2010-09-02T13:47:37.553" CommunityOwnedDate="2010-09-17T07:53:09.223" CommentCount="2" />
  <row Id="464" PostTypeId="2" ParentId="109" CreationDate="2010-09-02T13:53:10.980" Score="1" ViewCount="" Body="&lt;p&gt;Over reliance on refactoring tools, and code assistance tools (CodeRush / Resharper, etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong, I love CodeRush, but they shouldn't be used solely to write the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my mind a coder should be able to write code, and use them to assist where necessary.&lt;/p&gt;&#xA;" OwnerUserId="140" LastActivityDate="2010-09-02T13:53:10.980" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="1" />
  <row Id="465" PostTypeId="2" ParentId="9" CreationDate="2010-09-02T13:54:40.837" Score="1" ViewCount="" Body="&lt;p&gt;see '&lt;a href=&quot;http://programmers.stackexchange.com/questions/344/what-music-do-you-code-to&quot;&gt;What music do you code too?&lt;/a&gt;'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;;-)&lt;/p&gt;&#xA;" OwnerUserId="140" LastActivityDate="2010-09-02T13:54:40.837" CommunityOwnedDate="2011-01-04T21:22:43.957" />
  <row Id="466" PostTypeId="2" ParentId="109" CreationDate="2010-09-02T13:58:08.433" Score="30" ViewCount="" Body="&lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Off-by-one_error&quot; rel=&quot;nofollow&quot;&gt;Off-by-one&lt;/a&gt; errors&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Iterating through a loop either once too often or one time less than intended, e.g.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for($i = 1; $i &amp;lt; $number_of_times_to_loop; $i++)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;will go through a loop once less than intended. Changing the &lt;code&gt;&amp;lt;&lt;/code&gt; to &lt;code&gt;&amp;lt;=&lt;/code&gt; would get the above loop to cycle &lt;code&gt;$number_of_times_to_loop&lt;/code&gt; as intended.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another type of this error is the Fencepost error, so-called due to the following illustrative example:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;Given a 100m stretch of land, how many fence posts do you need to dividie it in to 10 equal sections?&#xA;&#xA;Typical answer is 10 (100/10), forgetting the extra post needed for the outer boundary.&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |  &amp;lt;-- divisions&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;1---2---3---4---5---6---7---8---9---10---11 &amp;lt;-- posts required&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="141" LastActivityDate="2010-09-02T13:58:08.433" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="6" />
  <row Id="467" PostTypeId="2" ParentId="188" CreationDate="2010-09-02T14:13:15.503" Score="0" ViewCount="" Body="&lt;p&gt;A truism I picked up studying microprocessors in college that stayed with me:  &quot;Make the common case fast.  Make the uncommon case correct.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as you have just a small percentage of users choking your code with input two orders of magnitude larger than what it was meant to handle, don't sweat it.  Make sure it handles the input correctly if they give it long enough, and doesn't leave anything corrupted into uselessness if they kill the job before it finishes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, once more and more people start using it that way (or start telling you &quot;You know, I'd dearly love to use that tool you wrote on my weekly TPS reports, but it takes all freakin' day&quot;), that's when you start considering trading away ease of maintenance for performance gains.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-02T14:13:15.503" />
  <row Id="468" PostTypeId="2" ParentId="275" CreationDate="2010-09-02T14:16:13.100" Score="0" ViewCount="" Body="&lt;p&gt;As I kid, I learned what basic DOS commands were and how to edit formatting code in WordPerfect 5.1 from my mother.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In high school, I took an elective &quot;information technology&quot; class where I learned how to edit and write HTML from scratch using Notepad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My pre-calculus teacher in high school was also a FORTRAN programmer, and he would allow us to use any programs we wrote for our graphing calculators on tests.  The required calculator for the class was a TI-82/83, but I had a TI-89 so most the little programming how-to he discussed in class didn't really apply to my calculator.  After a school year's worth of trial and error (and locating the extended programming manual for that model), I ended up with a menu driven app with shortcuts to all the calculations we learned about in class.  It was my teacher's encouragement here that ultimately drove me to choose software development as a career choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Went on to college where I learned C/C++, VB6, Java, AS/400 COBOL, ksh shell scripting, and basic IBM 386 assembly language programming .  I got my current job from a referral from one of my instructors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of what I learned in school, I still use VB6 and C.  In the meantime I've picked up VB.NET, PHP, CSS, XHTML and a bit of Python.&lt;/p&gt;&#xA;" OwnerUserId="95" LastActivityDate="2010-09-02T14:16:13.100" CommunityOwnedDate="2011-02-13T14:40:48.817" />
  <row Id="469" PostTypeId="2" ParentId="275" CreationDate="2010-09-02T14:23:51.163" Score="0" ViewCount="" Body="&lt;p&gt;My intro to programming was when my parents gave me their old Apple IIGS in the early 90s.  In digging through the books that came with it I found the beginners guide to AppleSoft BASIC.  After working through the book I started trying to learn more online (AOL on a Windows 95 machine).  My proudest achivement (at that point) was learning the right addresses to peek/poke at to cusomize the background/foreground colors, system sounds, etc without having to open any system control panels.&lt;/p&gt;&#xA;" OwnerUserId="144" LastActivityDate="2010-09-02T14:23:51.163" CommunityOwnedDate="2011-02-13T14:40:48.817" />
  <row Id="470" PostTypeId="2" ParentId="358" CreationDate="2010-09-02T14:51:20.170" Score="1" ViewCount="" Body="&lt;p&gt;Ruby - it was just crazy that I could have a fully functioning application using so little code. Really blew my mind! Great stuff for prototyping.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-02T14:51:20.170" CommunityOwnedDate="2010-09-30T22:46:32.880" CommentCount="2" />
  <row Id="471" PostTypeId="2" ParentId="275" CreationDate="2010-09-02T14:52:12.600" Score="6" ViewCount="" Body="&lt;p&gt;When I was in the second grade, my parents bought a Commodore Vic 20.  I was psyched -- this &quot;programming&quot; thing you could do with it?  That was awesome!  You could make your own games!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;We'll be able to make a game that's Pac-Man and Donkey Kong all at once!&quot; I enthused to my best friend -- who agreed, this would be utterly bad ass.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Short version:  Pac Kong never really made it out of the conceptual stage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I taught myself how to make ridiculously inefficient Basic programs do ridiculously simple things, like ask you to type in some text (&quot;WHAT IS YOUR NAME?&quot;) and then insult you with it (&quot;HA HA $N IS A TOTALLY STUPID NAME!&quot;).  I created music programs that turned my keyboard into a piano!  If Mozart went to Hell, it would be the piano he's playing right now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apple II's started showing up at school, and I learned how to make those create simple low-res images -- or, spam the screen with seizure-inducing randomly-colored lines at random positions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I fell in with a teacher in high school who actually taught me coding was more than just knowing a set of magic words and that the STRUCTURE of your programs kinda freakin' mattered, and I learned Pascal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I college, I took Electrical Engineering because ... well ... my uncle was an electrical engineer, and it seemed like a good gig, and you needed to be good at math and that was one of my better subjects, so what the hell, right?  But at some point I noticed that the computer programming electives I was taking were a heck of a lot more fun than all the circuitry crap.  I did the co-op student thing (alternate between going to school for a semester and working for a semester with a company with a co-op program) and noticed that the bits of the job I actually liked involved my butt parked in front of a keyboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually, I got the hint and dumped EE in favor of Computer Science, and never looked back.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-02T14:52:12.600" CommunityOwnedDate="2011-02-13T14:40:48.817" CommentCount="2" />
  <row Id="472" PostTypeId="2" ParentId="370" CreationDate="2010-09-02T14:53:52.580" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;No one wants to hire programmers older than them&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;TooOld = Interviewer.Age + 1&lt;/p&gt;&#xA;" OwnerUserId="19" LastActivityDate="2010-09-02T14:53:52.580" CommentCount="9" />
  <row Id="473" PostTypeId="2" ParentId="5" CreationDate="2010-09-02T14:54:27.420" Score="2" ViewCount="" Body="&lt;p&gt;I love EditPad. Regex find and replace, hex mode, column selection, large file support, portable, syntax highlighting (you can write your own if the myriad isn't enough), external tool support, project support. And that's just the surface.&lt;/p&gt;&#xA;" OwnerUserId="146" LastActivityDate="2010-09-02T14:54:27.420" CommunityOwnedDate="2011-03-08T02:44:19.193" CommentCount="1" />
  <row Id="474" PostTypeId="2" ParentId="358" CreationDate="2010-09-02T15:00:12.570" Score="1" ViewCount="" Body="&lt;p&gt;ADATE.  Stood for &quot;Ada Test Executive.&quot;  It was an in-house corruption of the Ada language (an under-appreciated beastie in its own right) used for testing hardware.  As I recall, it had a hell of a lot of quirks.  Quirks that, if brought to the attention of the guy who developed it, would be dismissed with &quot;ADATE's not a language -- it's a specification.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A specification you wrote programs in.  And had to compile.  And, occasionally, bodily wrestle to the ground.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-02T15:00:12.570" CommunityOwnedDate="2010-09-30T22:46:32.880" />
  <row Id="476" PostTypeId="2" ParentId="358" CreationDate="2010-09-02T15:30:39.873" Score="1" ViewCount="" Body="&lt;p&gt;Assembly, man... like, can't it do &lt;em&gt;anything&lt;/em&gt;?&lt;/p&gt;&#xA;" OwnerUserId="59" LastEditorUserId="59" LastEditorDisplayName="" LastEditDate="2010-09-30T21:55:50.780" LastActivityDate="2010-09-30T21:55:50.780" CommunityOwnedDate="2010-09-30T22:46:32.880" CommentCount="6" />
  <row Id="477" PostTypeId="2" ParentId="358" CreationDate="2010-09-02T15:48:50.217" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Awk&quot; rel=&quot;nofollow&quot;&gt;AWK&lt;/a&gt;. I was tasked during an internship with writing a website with some querying features in this.&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-02T15:48:50.217" CommunityOwnedDate="2010-09-30T22:46:32.880" CommentCount="4" />
  <row Id="478" PostTypeId="2" ParentId="67" CreationDate="2010-09-02T15:50:22.197" Score="5" ViewCount="" Body="&lt;p&gt;Let's get &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/&quot; rel=&quot;nofollow&quot;&gt;FABULOUS&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="143" LastActivityDate="2010-09-02T15:50:22.197" CommunityOwnedDate="2010-09-23T12:50:11.533" CommentCount="1" />
  <row Id="479" PostTypeId="2" ParentId="109" CreationDate="2010-09-02T16:02:32.533" Score="4" ViewCount="" Body="&lt;p&gt;One programming error I've seen a ridiculous number of times: Bad list management.&lt;br&gt;&#xA;It usually looks like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private void TrimList( List&amp;lt;int&amp;gt; values, int garbageValue )&#xA;{&#xA;    for (int i = 0; i &amp;lt; values.Count; ++i)  &#xA;    {&#xA;        if (values[i] == garbageValue)&#xA;        {&#xA;            values.RemoveAt( i );&#xA;        }&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If you ever see this problem, you'll have to review the whole codebase.  You're going to see flavours of this problem in multiple places.&lt;/p&gt;&#xA;" OwnerUserId="143" LastEditorUserId="143" LastEditorDisplayName="" LastEditDate="2010-10-07T18:05:40.663" LastActivityDate="2010-10-07T18:05:40.663" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="3" />
  <row Id="480" PostTypeId="2" ParentId="331" CreationDate="2010-09-02T16:14:59.910" Score="2" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/BtqGU.png&quot; alt=&quot;I honestly don’t understand why so many people insist on using a monospace font. I think code should be maximally readable, so the font should be natural and not some obsolete 1980s retro. There is a reason books aren’t written in Courier New or Consolas. Furthermore, I think that programming should be fun; there aren’t many monospace fonts that are creative, fun and happy, and there is very little variety. This is Maiandra GD. It is the font that I happen to be using for coding right now. There is a good chance that I will grow tired of it and find another font some time in the future. Variety is good.&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update 2010-10-07: I briefly used &lt;a href=&quot;http://www.google.com/images?q=Tempus%20Sans%20ITC&amp;amp;um=1&amp;amp;ie=UTF-8&amp;amp;source=og&amp;amp;sa=N&amp;amp;hl=en&amp;amp;tab=wi&amp;amp;biw=1840&amp;amp;bih=1099&quot; rel=&quot;nofollow&quot;&gt;Tempus Sans ITC&lt;/a&gt;, but now I’m using &lt;a href=&quot;http://www.google.com/images?um=1&amp;amp;hl=en&amp;amp;safe=off&amp;amp;biw=1840&amp;amp;bih=1099&amp;amp;tbs=isch%3A1&amp;amp;sa=1&amp;amp;q=gabriola+font&amp;amp;aq=f&amp;amp;aqi=&amp;amp;aql=&amp;amp;oq=&amp;amp;gs_rfai=&quot; rel=&quot;nofollow&quot;&gt;Gabriola&lt;/a&gt; and I’m finding it very pleasant to read.&lt;/p&gt;&#xA;" OwnerUserId="147" LastEditorUserId="147" LastEditorDisplayName="" LastEditDate="2010-10-07T22:34:23.777" LastActivityDate="2010-10-07T22:34:23.777" CommunityOwnedDate="2010-09-02T16:14:59.910" CommentCount="4" />
  <row Id="481" PostTypeId="2" ParentId="370" CreationDate="2010-09-02T16:18:04.017" Score="1" ViewCount="" Body="&lt;p&gt;If someone &lt;em&gt;was&lt;/em&gt; apprehensive about hiring a programmer that is older than them, they must have a reason for being that way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe past experiences taught the manager that older programmers are sometimes pedantic (more so than others) and (more) difficult to manage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that the way you carry and conduct yourself speaks volumes. I would not want to work somewhere where every resume of someone older than 35 got trashed without even being read, especially since I'm about to turn 35 :)&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-09-02T16:18:04.017" />
  <row Id="482" PostTypeId="2" ParentId="1" CreationDate="2010-09-02T16:29:30.517" Score="62" ViewCount="" Body="&lt;p&gt;This is particularly irritating to hear at the moment, I spent some time this weekend looking at very well-named, very clean, uncommented code implementing a research algorithm (one that isn't actually published). I'm high-level familiar with it, the guy sitting next to me was the inventor, and the code was written a few years ago by someone else. We could &lt;em&gt;barely&lt;/em&gt; follow it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your co-worker is not experienced enough, obviously.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-02T16:29:30.517" CommunityOwnedDate="2011-01-31T09:04:54.130" CommentCount="11" />
  <row Id="485" PostTypeId="1" AcceptedAnswerId="528" CreationDate="2010-09-02T16:44:12.783" Score="12" ViewCount="579" Body="&lt;p&gt;What is your ideal programming job?  Do you already have the dream job?  What makes it the dream job?&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2011-03-14T11:22:06.777" Title="Ideal programming job" Tags="&lt;career&gt;&lt;jobs&gt;" AnswerCount="8" FavoriteCount="2" />
  <row Id="486" PostTypeId="1" CreationDate="2010-09-02T16:44:13.317" Score="5" ViewCount="398" Body="&lt;p&gt;What was your favorite project to work on, and what factors contributed to that?  Cool tech?  Rewarding work? Hot coworkers?&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:55:55.927" LastActivityDate="2010-10-30T17:46:16.450" Title="What's the best project you've worked on?" Tags="&lt;jobs&gt;&lt;favorite&gt;" AnswerCount="8" CommentCount="1" FavoriteCount="0" />
  <row Id="487" PostTypeId="1" CreationDate="2010-09-02T16:44:14.220" Score="28" ViewCount="1095" Body="&lt;p&gt;If you were to design a programming language, how would you do it? What features would you put in? What would you leave out? Statically or dynamically typed? Strongly or weakly typed? Compiled or interpreted? Justify your answers.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2011-02-22T21:26:05.700" Title="How would you design a programming language?" Tags="&lt;programming-languages&gt;&lt;language-design&gt;" AnswerCount="13" CommentCount="8" FavoriteCount="16" />
  <row Id="489" PostTypeId="2" ParentId="109" CreationDate="2010-09-02T16:45:01.127" Score="0" ViewCount="" Body="&lt;p&gt;Worst thing I ever saw was a fellow student who wrote something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int main(){&#xA;&#xA;    for(int x = 0; x &amp;lt; 10; x++){&#xA;        for(int y = x; y &amp;lt; 10; y++)&#xA;            cout &amp;lt;&amp;lt; x + y &amp;lt;&amp;lt; endl;&#xA;            for(int z = 0; z &amp;lt; y; z++){&#xA;               cout &amp;lt;&amp;lt; x + y * z &amp;lt;&amp;lt; endl;&#xA;            }&#xA;        }&#xA;    }&#xA;&#xA;   return 0;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and was getting some weird weird errors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See if you can spot the error... &lt;/p&gt;&#xA;" OwnerUserId="33" LastActivityDate="2010-09-02T16:45:01.127" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="8" />
  <row Id="491" PostTypeId="2" ParentId="487" CreationDate="2010-09-02T16:46:11.423" Score="5" ViewCount="" Body="&lt;p&gt;I would have designed it pretty much like C#, but Microsoft beat me to it. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;&lt;sub&gt;(Except of course that mine would have been less well thought through and more amateur.)&lt;/sub&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don’t mind much whether it is compiled or interpreted, so I don’t need to justify that bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As regards to strong static typing, I find it hard to appreciate why this even requires justification. Static typing is a feature which catches bugs during compile-time. Dynamic typing is the lack of that feature and defers the bugs until runtime. In my personal experience I had few use-cases where dynamic dispatch made sense and was useful, so the convolutions I had to go through in C# before 4.0 to get it were easily justified then. With C# 4.0 I don’t even need to justify that anymore because we have dynamic dispatch now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I probably would have created a new syntax instead of sticking as religiously to old C syntax as C# did. The switch statement is particularly horrible, and I also dislike the cast syntax (it is the wrong way around). I don’t make a big fuss about the details of syntax though, so I don’t need to justify it in detail, except that I wouldn’t want it as verbose as Visual Basic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What else would you like me to justify?&lt;/p&gt;&#xA;" OwnerUserId="147" LastEditorUserId="147" LastEditorDisplayName="" LastEditDate="2010-09-02T16:57:51.523" LastActivityDate="2010-09-02T16:57:51.523" CommentCount="3" />
  <row Id="492" PostTypeId="1" AcceptedAnswerId="496" CreationDate="2010-09-02T16:46:35.777" Score="24" ViewCount="6015" Body="&lt;p&gt;Did you learn to touch-type when you were already working as a programmer?  If so how did it affect your productivity?  Or are you still unable to touch type and do you think it holds you back?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;According to &lt;a href=&quot;http://steve-yegge.blogspot.com/2008/09/programmings-dirtiest-little-secret.html&quot; rel=&quot;nofollow&quot;&gt;Steve Yegge&lt;/a&gt; it is essential,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I did not notice much difference, possibly because I was spending less than 25% of my work time actually typing (I was working on a large legacy project at the time and I was spending more time on reading and debugging existing code.)&lt;/p&gt;&#xA;" OwnerUserId="113" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:08:24.167" LastActivityDate="2011-03-20T20:58:56.467" CommunityOwnedDate="2011-03-20T20:58:56.467" Title="How important is the ability to touch-type?" Tags="&lt;productivity&gt;&lt;touch-typing&gt;" AnswerCount="17" CommentCount="5" FavoriteCount="6" />
  <row Id="493" PostTypeId="2" ParentId="492" CreationDate="2010-09-02T16:52:23.797" Score="0" ViewCount="" Body="&lt;p&gt;It's pretty important just as a speed thing.  I used to be a keyboard-looker, and I still do sometimes out of habit.  I just sorta became a touch-typer from experience- never really sat down to learn it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So long as you're not a hunt and peck typer.  Worked with one when I did part-time tech support- &lt;em&gt;shudder&lt;/em&gt;. &lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T16:52:23.797" CommunityOwnedDate="2011-03-20T20:58:56.467" CommentCount="1" />
  <row Id="496" PostTypeId="2" ParentId="492" CreationDate="2010-09-02T16:56:32.157" Score="27" ViewCount="" Body="&lt;p&gt;The main benefit for me is the ability to work more ergonomically (no looking down and straining your neck and top back). I don't think it actually affects your speed though, except for comments, because of the excessive use of punctuation marks in programming languages. Touch Typing is really more suited for words... at least on a QWERTY keyboard. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think Steve Yegge is overreacting about this. We're not typists, we're problem solvers. At the end what's important is for your typing to not get in your way. If it's not causing you physical strain, and your typing speed is not disruptively behind your though speed, then you can type in whatever way you want, and trust me- it is possible to type fast without touch typing. &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2010-09-16T21:40:39.157" LastActivityDate="2010-09-16T21:40:39.157" CommunityOwnedDate="2011-03-20T20:58:56.467" CommentCount="4" />
  <row Id="497" PostTypeId="2" ParentId="238" CreationDate="2010-09-02T16:57:03.543" Score="5" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.imdb.com/title/tt1459467/&quot; rel=&quot;nofollow&quot;&gt;Micro Men&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;About the computer boom in the UK in the early 80s. In particular, this is about the feud between Sinclair Research and Acorn- maker of the ARM chip we all love and use.&lt;/p&gt;&#xA;" OwnerUserId="68" LastActivityDate="2010-09-02T16:57:03.543" CommentCount="1" />
  <row Id="498" PostTypeId="2" ParentId="492" CreationDate="2010-09-02T16:57:19.420" Score="26" ViewCount="" Body="&lt;p&gt;Fast touch-typing helps when coding, not because you can bang out the code faster, but because banging out the code is &lt;strong&gt;less of a distraction&lt;/strong&gt;. I've too often seen programmers carefully consider a technique, or look up an API, and then start writing out the code... only to pause a minute later because they'd forgotten something while pecking out the syntax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless of whether you're using two fingers or ten, if the keyboard is your primary method of communication &lt;strong&gt;you shouldn't have to think about it&lt;/strong&gt; (much less look at it) any more than you should need to think about pronunciation while speaking in your native language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may think being distracted isn't a big deal since you only spend 25% of your work-time typing... Though I suspect any other distraction that ate up a quarter of your day would find you screaming in frustration. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;More importantly though, you may well be typing &lt;em&gt;less&lt;/em&gt; than you should be, optimizing your workflow to minimize the time you spend trying out different techniques, or treating each line of code as precious: &lt;strong&gt;if it requires conscious effort from you, you'll naturally place more value on the output than it deserves&lt;/strong&gt;, rather than being willing to toss away code that doesn't quite fit, or is unnecessary. &lt;/p&gt;&#xA;" OwnerUserId="63" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2010-09-02T17:02:26.023" LastActivityDate="2010-09-02T17:02:26.023" CommunityOwnedDate="2011-03-20T20:58:56.467" CommentCount="7" />
  <row Id="499" PostTypeId="2" ParentId="487" CreationDate="2010-09-02T17:00:09.367" Score="3" ViewCount="" Body="&lt;p&gt;There are several languages out there that I consider pretty damn good (C# being my current favorite).  Since this is my fantasy language, here's what I really want it to have:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Kick-ass official api documentation.  The Java API is good like this, and C#/.NET is pretty good.  Ruby/Rails is pretty terrible here.&lt;/li&gt;&#xA;&lt;li&gt;Kick-ass official general documentation (how-to's, common uses, lots of example code).  C#/.Net is good for this.&lt;/li&gt;&#xA;&lt;li&gt;A huge community of blog-based documenters and StackOverflow problem solvers to help me out of tough spots&lt;/li&gt;&#xA;&lt;li&gt;A wide range of well-supported, well-documented, and powerful plugins/libraries/extensions (Ruby/Rails has 'powerful' but neither of the other two).&lt;/li&gt;&#xA;&lt;li&gt;Is reasonably stable- no changing everything to break most existing code on an annual basis (looking at you, Ruby/Rails).&lt;/li&gt;&#xA;&lt;li&gt;Isn't too stable- is able to adapt to advances in language design (looking at you, c++)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T17:00:09.367" CommentCount="1" />
  <row Id="500" PostTypeId="1" AcceptedAnswerId="9518" CreationDate="2010-09-02T17:01:30.317" Score="15" ViewCount="392" Body="&lt;p&gt;Rather than slavishly pair program all the time, we use pair programming selectively on our team. I think it &lt;/p&gt;&#xA;&#xA;&lt;p&gt;works best in the following circumstances:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ramping up brand new team members on a project (instead of letting them wade through documentation or code on their own).&lt;/li&gt;&#xA;&lt;li&gt;Having junior and senior people work together (helps to show some of the skills and tricks of the more experienced developers, plus it allows the old dogs to learn new tricks sometimes).&lt;/li&gt;&#xA;&lt;li&gt;When someone is trying to track down a defect, it often helps to pair with a fresh set of eyes.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;When do you pair program and why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When do you avoid pair programming? Why?&lt;/p&gt;&#xA;" OwnerUserId="38" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:08:45.883" LastActivityDate="2011-03-26T21:14:04.500" Title="When does pair programming work for you? When should you avoid it?" Tags="&lt;agile&gt;&lt;pair-programming&gt;" AnswerCount="7" CommentCount="0" FavoriteCount="6" />
  <row Id="501" PostTypeId="1" CreationDate="2010-09-02T17:02:11.330" Score="22" ViewCount="1904" Body="&lt;p&gt;No matter how much you love a programming language, there are always a few details in it that aren’t quite as nice as they could be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this question, I would like to specifically focus on &lt;strong&gt;syntax elements.&lt;/strong&gt; In a programming language that you use frequently (perhaps your favourite programming language, or perhaps the one you are forced to use at work), which syntax element do you find most unreadable, unclear, inconvenient or unpleasant?&lt;/p&gt;&#xA;" OwnerUserId="147" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:09:13.587" LastActivityDate="2011-05-26T20:16:14.407" CommunityOwnedDate="2010-09-02T17:06:49.977" ClosedDate="2011-05-26T20:37:45.503" Title="What syntax element do you hate most in a programming language you use frequently?" Tags="&lt;programming-languages&gt;&lt;syntax&gt;" AnswerCount="36" CommentCount="7" FavoriteCount="6" />
  <row Id="502" PostTypeId="1" CreationDate="2010-09-02T17:03:54.453" Score="7" ViewCount="258" Body="&lt;p&gt;I think everyone has their own program or set of features beyond &quot;Hello World!&quot;, that they use when trying out a new language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mine is a guessing game:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;I'm thinking of a number 1-10, guess what it is!&#xA;Guess: 3&#xA;Nope, too low!&#xA;Guess: 7&#xA;Nope, too high!&#xA;Guess: 5&#xA;Yes, You win!&#xA;Play again (Y/N)? N&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;What do &lt;em&gt;you&lt;/em&gt; write?&lt;/p&gt;&#xA;" OwnerUserId="33" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-14T12:07:40.530" LastActivityDate="2010-11-03T18:40:10.330" CommunityOwnedDate="2010-09-02T17:03:54.453" Title="What's the first thing you write when trying out a new language?" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;habits&gt;" AnswerCount="9" FavoriteCount="2" />
  <row Id="503" PostTypeId="2" ParentId="501" CreationDate="2010-09-02T17:05:17.937" Score="31" ViewCount="" Body="&lt;h2&gt;Whitespace Sensitivity.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Python pisses me off in this respect.  I mean, I indent properly anyway, but it bugs me that I should &lt;em&gt;have&lt;/em&gt; to.  Making presentation part of the syntax irks the hell out of me.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T17:05:17.937" CommentCount="20" />
  <row Id="504" PostTypeId="2" ParentId="501" CreationDate="2010-09-02T17:06:28.887" Score="28" ViewCount="" Body="&lt;h2&gt;The &lt;code&gt;switch&lt;/code&gt; statement (in C, C++, C#, Java, etc.)&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Here is an example of why I find it highly inconvenient:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;switch (someVariable)&#xA;{&#xA;    case 1:&#xA;        int i = something();&#xA;        doSomething(i);&#xA;        break;&#xA;&#xA;    case 2:&#xA;        int i = somethingElse();&#xA;        doSomethingElse(i);&#xA;        break;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This doesn’t compile because the variable &lt;code&gt;i&lt;/code&gt; is redeclared in the same scope. This seems like a minor detail, but it bites me really often. I can add curly brackets to mitigate it, but it would have been nice if the curly brackets had been mandatory part of the syntax, and there was no redundant extra level of indentation. I also really hate having to write the extra &lt;code&gt;break&lt;/code&gt;. This would be much nicer:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;switch (someVariable)&#xA;case 1&#xA;{&#xA;    int i = something();&#xA;    doSomething(i);&#xA;}&#xA;case 2&#xA;{&#xA;    int i = somethingElse();&#xA;    doSomethingElse(i);&#xA;}&#xA;default&#xA;{&#xA;    ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This makes it look more like an &lt;code&gt;if&lt;/code&gt;/&lt;code&gt;else&lt;/code&gt; chain, which is a good thing because it is semantically similar too. At least in C# it would still not be the same thing however, because in a &lt;code&gt;switch&lt;/code&gt; statement the order of the case labels doesn’t matter, but in an &lt;code&gt;if&lt;/code&gt;/&lt;code&gt;else&lt;/code&gt; it does.&lt;/p&gt;&#xA;" OwnerUserId="147" LastEditorUserId="147" LastEditorDisplayName="" LastEditDate="2010-09-02T17:13:24.520" LastActivityDate="2010-09-02T17:13:24.520" CommentCount="16" />
  <row Id="506" PostTypeId="2" ParentId="502" CreationDate="2010-09-02T17:08:50.833" Score="11" ViewCount="" Body="&lt;p&gt;It usually goes like this:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Hello World&lt;/li&gt;&#xA;&lt;li&gt;Hello [user inputted name]&lt;/li&gt;&#xA;&lt;li&gt;A few problems from &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;A linked list&lt;/li&gt;&#xA;&lt;li&gt;A simple blog engine (either terminal or web-based, depending on what language)&lt;/li&gt;&#xA;&lt;li&gt;And from there I dive into a project that I want to work on (but don't care if the design gets mangled as I learn my way through a new language).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T17:08:50.833" CommunityOwnedDate="2010-09-02T17:08:50.833" />
  <row Id="507" PostTypeId="1" AcceptedAnswerId="509" CreationDate="2010-09-02T17:09:29.350" Score="11" ViewCount="369" Body="&lt;p&gt;I have seen this on the SO on many times. Whenever a question is vague and the question is asking some magical answer somebody or the other leaves a comment saying answer is 42. Even a book I am reading right now uses '42' as the number whenever it wants demonstrate some basic concept using an integer. So is there any history behind it or it is just a coincidence?&lt;/p&gt;&#xA;" OwnerUserId="123" LastActivityDate="2010-09-02T17:40:58.660" Title="Why '42' is the preferred number when indicating something random?" Tags="&lt;history&gt;&lt;number&gt;" AnswerCount="2" FavoriteCount="2" />
  <row Id="509" PostTypeId="2" ParentId="507" CreationDate="2010-09-02T17:11:30.873" Score="32" ViewCount="" Body="&lt;p&gt;It's the answer to &lt;a href=&quot;http://en.wikipedia.org/wiki/Answer_to_the_Ultimate_Question_of_Life,_the_Universe,_and_Everything#Answer_to_the_Ultimate_Question_of_Life.2C_the_Universe_and_Everything_.2842.29&quot; rel=&quot;nofollow&quot;&gt;Life, The Universe, and Everything&lt;/a&gt; from Douglas Adams' &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Hitchhiker%27s_Guide_to_the_Galaxy&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Hitchhiker's Guide to the Galaxy&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T17:11:30.873" CommentCount="8" />
  <row Id="510" PostTypeId="1" AcceptedAnswerId="538" CreationDate="2010-09-02T17:14:20.993" Score="12" ViewCount="545" Body="&lt;p&gt;I recently apply for a job at a big software company. I was asked to list my salary at 3 previous jobs.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What's the main purpose of asking for this information from the company's perspective?&lt;/li&gt;&#xA;&lt;li&gt;If you are serious about applying for a job there, would you give that information?&lt;/li&gt;&#xA;&lt;li&gt;What are the pros and cons of giving out that information?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I did give detailed information but thought I should ask the community.&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-02T17:22:13.800" LastActivityDate="2010-09-30T15:12:58.327" Title="Salary history on job application" Tags="&lt;jobs&gt;&lt;salary&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="4" />
  <row Id="511" PostTypeId="2" ParentId="501" CreationDate="2010-09-02T17:18:09.303" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;EDIT: Following the discussion in the comments I decided to update this answer to explain myself better.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really hate the way function pointers look in C. Usually any variable declaration looks like a tuple of: &lt;code&gt;type varname;&lt;/code&gt;&#xA;Function pointer declarations on the other hand look like a declaration of the function with * before the function name. I can accept this as a description of a pointer type, but in C this declares both the type and the name of a variable of that type. This looks inconsistent to me because type declarations are otherwise distinct from variable declarations. &lt;code&gt;struct myStruct{int X; int Y;}&lt;/code&gt; only defines a type, it does not define a variable named &lt;code&gt;myStruct&lt;/code&gt;. Likewise I see no reason for type declarations and variable declarations to be grouped into one &lt;em&gt;atomic&lt;/em&gt; statement in function pointers, nor do I appreciate the deviation from the &lt;code&gt;type varname;&lt;/code&gt; structure. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Someone pointed out that it's consistent with some spiral rule, and that may be the case, but the mark of a good syntax is that it is self explanatory and its internal logic is obvious. The spiral rule is not obvious by any means. &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="6218" LastEditorDisplayName="" LastEditDate="2011-02-27T13:56:03.210" LastActivityDate="2011-02-27T13:56:03.210" CommunityOwnedDate="2010-09-02T17:18:09.303" CommentCount="9" />
  <row Id="512" PostTypeId="2" ParentId="507" CreationDate="2010-09-02T17:40:58.660" Score="11" ViewCount="" Body="&lt;p&gt;As &lt;a href=&quot;http://programmers.stackexchange.com/questions/507/why-42-is-the-preferred-number-when-indicating-something-random/509#509&quot;&gt;Fishtoaster mentioned&lt;/a&gt;, the number &lt;em&gt;42&lt;/em&gt; has gained pop-culture status via Douglas Adams's &lt;em&gt;Hitchhiker's Guide to the Galaxy&lt;/em&gt;, but its true origins are from &lt;a href=&quot;http://en.wikipedia.org/wiki/42_%28number%29#In_the_works_of_Lewis_Carroll&quot; rel=&quot;nofollow&quot;&gt;Lewis Carroll&lt;/a&gt; (from whom Adams gained occasional inspiration).&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-02T17:40:58.660" CommentCount="1" />
  <row Id="513" PostTypeId="2" ParentId="266" CreationDate="2010-09-02T17:47:17.447" Score="0" ViewCount="" Body="&lt;p&gt;I really truly hope so, and the sooner the better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imagine if it was no longer possible to write a windows crapplication in raw C++ going through the gargantuan Win32 API with 15 different methods to do the same thing.  Imagine if all windows applications had to be written on the .net platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So many problems would just... not be there any more.  As a single example, I've never had a .net application crash my machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would be a better world.&lt;/p&gt;&#xA;" OwnerUserId="143" LastEditorUserId="143" LastEditorDisplayName="" LastEditDate="2010-09-03T15:05:17.140" LastActivityDate="2010-09-03T15:05:17.140" CommentCount="1" />
  <row Id="514" PostTypeId="2" ParentId="487" CreationDate="2010-09-02T17:47:18.040" Score="14" ViewCount="" Body="&lt;p&gt;Note: I've used C-like syntax to describe features in this post, but I'm not picky about the syntax itself as long as it's not something ridiculous like all keywords being CAPS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1. Typing system&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The number one feature that I would want in a language is static typing with &lt;em&gt;optional&lt;/em&gt; dynamic typing. The reason is that static typing allows you to a) catch errors early rather than late and b) most code is implicitly statically typed, whether or not the language makes the distinction. However, there are several use-cases where dynamic typing is extremely useful. For example, when reading data from a file, you often have fields of varying types, and dynamic typing makes heterogeneous containers easy. So, my ideal language would have something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//variable declarations&#xA;int anInt = 42 //anInt is now irrevocably an integer and assigning another type to it is an error&#xA;vartype aVariable = 42 //aVariable is currently an integer, but any type can be assigned to it in the future&#xA;&#xA;//function definitions&#xA;int countElements(Collection c) {return c.count();} //c HAS to be a collection, since countElements doesn't make sense otherwise&#xA;void addToCollection(Collection&amp;amp; c, vartype v) {c.append(v)} //c is passed by reference here&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2. Compiled vs. Interpreted&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like the language to be either compiled ahead of time, or JIT compiled, but not purely interpreted, speed being the reason. This ties in to point &lt;strong&gt;1&lt;/strong&gt;, since an optimising compiler/jitter will have a &lt;em&gt;much&lt;/em&gt; easier time optimising statically typed code, and dynamically typed code could simply be left as-is. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3. Closures&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The language must support functional programming constructs, and functions should be first-class objects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;4. Object-oriented&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The language should allow you to write object-oriented code, but simple imperative code should be allowed too. i.e., it should be possible to write a hello world program like so:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int main(string&amp;lt;&amp;gt; args=null){printf(&quot;hello, world&quot;); return 0;} //this code also demonstrates two other features, default arguments for functions (not explained further) and immutable lists like string&amp;lt;&amp;gt; (see 6. Built-in datatypes)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;5. Namespaces&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Namespaces are a good thing. Very little stuff should go into the global namespace. But if you &lt;em&gt;must&lt;/em&gt; put stuff in the global namespace, you can (ala C++).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;6. Built-in datatypes&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The language must have, as built-in datatypes, the following constructs:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;An &lt;code&gt;int&lt;/code&gt; datatype or types. If there is only one &lt;code&gt;int&lt;/code&gt; type, it should have unlimited range. If there are more, there should be implicit upcasting into the &lt;em&gt;smallest&lt;/em&gt; type capable of holding the result of a computation, with the unlimited range type being the largest.&lt;/li&gt;&#xA;&lt;li&gt;A single built-in binary &lt;code&gt;float&lt;/code&gt; type, which is equivalent to an IEEE 754 &lt;code&gt;double&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;A mutable &lt;code&gt;list&lt;/code&gt; type which is implemented as either a doubly linked list or a block of contiguous memory holding pointers to each element&lt;/li&gt;&#xA;&lt;li&gt;An immutable &lt;code&gt;list&lt;/code&gt; type that acts like an array but whose size cannot be changed after creation&lt;/li&gt;&#xA;&lt;li&gt;Mutable and immutable &lt;code&gt;string&lt;/code&gt; types, with the default being immutable.&lt;/li&gt;&#xA;&lt;li&gt;A &lt;code&gt;map&lt;/code&gt; or &lt;code&gt;dict&lt;/code&gt; type that is mutable, and holds immutable keys and mutable and/or immutable values.&lt;/li&gt;&#xA;&lt;li&gt;The built-in collection types should be homogeneous typed by default, but can be &lt;code&gt;vartype&lt;/code&gt;d if required&lt;/li&gt;&#xA;&lt;li&gt;A &lt;code&gt;boolean&lt;/code&gt; type&lt;/li&gt;&#xA;&lt;li&gt;A &lt;code&gt;null&lt;/code&gt; or &lt;code&gt;none&lt;/code&gt; type that can be assigned to a variable of any type.&lt;/li&gt;&#xA;&lt;li&gt;Mutable and immutable &lt;code&gt;set&lt;/code&gt; types&lt;/li&gt;&#xA;&lt;li&gt;A &lt;code&gt;decimal&lt;/code&gt; type which implements decimal floating point variables&lt;/li&gt;&#xA;&lt;li&gt;A &lt;code&gt;fixed&lt;/code&gt; type, that implements a fixed-point number&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The &lt;code&gt;decimal&lt;/code&gt;, &lt;code&gt;float&lt;/code&gt; and &lt;code&gt;fixed&lt;/code&gt; types should share the &lt;em&gt;exact&lt;/em&gt; same public interface (either via inheritance or duck typing), allowing them to be transparently passed to and returned from functions. The parent type could be called &lt;code&gt;real&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;7. Call by value and by reference&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should be able to call functions by both value and reference, with the default being value (i.e., a copy of the argument is made and operated upon in the function).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;8. Pointers&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The language should have pointers and allow pointer arithmetic. Pointers can only be statically typed (to avoid the nightmare that is a &lt;code&gt;void*&lt;/code&gt;). &lt;code&gt;vartype&lt;/code&gt; pointers are explicitly disallowed. Having pointers and pointer arithmetic allows the language to be seriously used as a systems programming language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;9. Inline assembly&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In connection with &lt;strong&gt;8.&lt;/strong&gt;, The language should allow inline assembly language code for those situations where it is necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;10. Safety&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The language should be mostly safe to use, supporting exception handling etc. Pointer arithmetic and inline assembly can be relegated to portions of the code explicitly marked as unsafe. Unsafe code is allowed, but strongly discouraged.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;11. Undefined behaviour&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The language standard should specify how the program is to behave under all circumstances &lt;em&gt;except&lt;/em&gt; in code explicitly marked unsafe, i.e., there should be no undefined behaviour outside of unsafe blocks. This allows the language to be used as a viable application development language, while still allowing you to say, write an OS in it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's all I can think of at the moment, but I'll edit/update the post as I think of more things.&lt;/p&gt;&#xA;" OwnerUserId="61" LastEditorUserId="61" LastEditorDisplayName="" LastEditDate="2010-09-24T13:11:04.500" LastActivityDate="2010-09-24T13:11:04.500" CommentCount="11" />
  <row Id="515" PostTypeId="1" CreationDate="2010-09-02T17:50:00.530" Score="19" ViewCount="853" Body="&lt;p&gt;Regular expressions as they are today are pretty much as concise and compact as they can be. Consequently, they are often criticised for being unreadable and hard to debug.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you had to reinvent a new syntax for regular expressions, what would it look like?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you prefer the concise syntax they already have (or a different but similarly concise syntax)? If so, please justify why you think regular expressions deserve to be this concise, but your favourite programming language doesn’t (unless it’s Perl).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or do you think regular expressions should have a slightly more spaced-out syntax and look a bit more like operators and syntax elements normally do in programming languages? If so, provide examples of what you think the syntax should look like, and justify why it is better than the current syntax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or do you think there shouldn’t even &lt;em&gt;be&lt;/em&gt; a special syntax for regular expressions, and instead they should be constructed from syntax elements already present in the programming language? If so, give examples of a syntax that might be used to construct such regular expressions.&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2011-04-06T14:04:32.353" CommunityOwnedDate="2010-09-02T17:50:00.530" Title="If you had to reinvent a new syntax for regular expressions, what would it look like?" Tags="&lt;syntax&gt;&lt;regular-expressions&gt;" AnswerCount="18" CommentCount="8" FavoriteCount="11" />
  <row Id="516" PostTypeId="2" ParentId="28" CreationDate="2010-09-02T17:52:03.720" Score="5" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Ability to accept a solution for a problem which &lt;code&gt;better than our own solution&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Never stop learning&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-09-02T17:52:03.720" CommentCount="1" />
  <row Id="517" PostTypeId="2" ParentId="39" CreationDate="2010-09-02T17:58:23.410" Score="23" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;There are two major products that come out of Berkeley: LSD and UNIX. We don't believe this to be a coincidence.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;em&gt;Jeremy S. Anderson&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-09-02T17:58:23.410" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="14" />
  <row Id="518" PostTypeId="2" ParentId="501" CreationDate="2010-09-02T18:24:32.897" Score="21" ViewCount="" Body="&lt;h1&gt;Array Declarations in VB.NET&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I always manage to forget that when initializing fixed arrays in VB.NET, you're specifying the upper bound of the array and &lt;strong&gt;not&lt;/strong&gt; the number of elements like in C/C++, PHP, or Java.  Besides VB6 (we won't go there...), I can't think of another language that does it this way:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Dim myArray(20) as Integer  '# Creates an array with 21 elements,&#xA;                            '# indexed from 0 to 20&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="95" LastActivityDate="2010-09-02T18:24:32.897" CommunityOwnedDate="2010-09-02T18:24:32.897" CommentCount="2" />
  <row Id="519" PostTypeId="2" ParentId="501" CreationDate="2010-09-02T18:28:37.220" Score="36" ViewCount="" Body="&lt;h2&gt;Semicolon insertion in JavaScript.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I haven't really been bitten by it often, but it's just such a phenomenally bad idea it makes my head spin.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Here's the rules (from ECMA-262 Section 7.9)&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;When the program contains a token that is not allowed by the formal grammar, then a semicolon is inserted if (a) there is a line break at that point, or (b) the unexpected token was a closing brace.&lt;/li&gt;&#xA;&lt;li&gt;When the end of a file is reached, if the program cannot be parsed otherwise, then a semicolon is inserted.&lt;/li&gt;&#xA;&lt;li&gt;When a &quot;restricted production&quot; is encountered and contains a line terminator in a place where the grammar contains the annotation &quot;[no LineTerminator here]&quot;, then a semicolon is inserted. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;return 1; // returns 1&#xA;&#xA;return&#xA;1; // returns undefined&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="151" LastEditorUserId="151" LastEditorDisplayName="" LastEditDate="2010-09-02T19:09:05.083" LastActivityDate="2010-09-02T19:09:05.083" CommunityOwnedDate="2010-09-02T18:28:37.220" CommentCount="8" />
  <row Id="520" PostTypeId="2" ParentId="501" CreationDate="2010-09-02T19:05:31.190" Score="0" ViewCount="" Body="&lt;p&gt;&lt;code&gt;structPointer-&amp;gt;member&lt;/code&gt; in C/C++ . May be good for reading someone else's code, but I don't like it. Two characters instead of one... what a waste of space!&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-09-02T19:05:31.190" CommunityOwnedDate="2010-09-02T19:05:31.190" CommentCount="11" />
  <row Id="521" PostTypeId="2" ParentId="39" CreationDate="2010-09-02T19:06:12.983" Score="29" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;There are 10 kinds of people in the&#xA;  world — those who understand binary&#xA;  and those who don't.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="152" LastActivityDate="2010-09-02T19:06:12.983" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="15" />
  <row Id="522" PostTypeId="2" ParentId="485" CreationDate="2010-09-02T19:07:40.607" Score="0" ViewCount="" Body="&lt;p&gt;Getting paid to write JAPHs.&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-09-02T19:07:40.607" />
  <row Id="523" PostTypeId="2" ParentId="485" CreationDate="2010-09-02T19:17:04.873" Score="10" ViewCount="" Body="&lt;p&gt;I had my ideal job once - but unfortunately the company was bought out and the project I was working on shut down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was team lead and technical lead doing real-time 3D visualisation and simulation software. Written in c, c++ and latterly C# it was (in my admittedly biased opinion) world beating. We could do stereo displays - both passive through projectors and active with shutter glasses, panoramic arrays of virtually any dimension. We could even do panoramic stereo displays.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What made it the dream job? I was doing something I enjoyed, I had responsibility and (some) authority, I felt we were at the leading edge of our field. Even now I see things and think - we were doing that 10 (or more) years ago.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-02T19:17:04.873" CommentCount="1" />
  <row Id="524" PostTypeId="2" ParentId="501" CreationDate="2010-09-02T19:17:45.420" Score="23" ViewCount="" Body="&lt;h2&gt;VB6 - Separate Variable Declaration and Assignment&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Most languages let you declare a variable and assign it in one line of code; VB6, on the other hand, forces you to use two.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Dim i as Integer&#xA;i = 0&#xA;&#xA;Dim derpderp as Collection&#xA;Set derpderp = new Collection&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You can use a colon to put two commands on one line, but it quickly turns messy in actual code.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Dim i as Integer: i = 0&#xA;Dim derpderp as Collection: Set derpderp = new Collection&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="36" LastActivityDate="2010-09-02T19:17:45.420" CommunityOwnedDate="2010-09-02T19:17:45.420" CommentCount="8" />
  <row Id="525" PostTypeId="1" AcceptedAnswerId="649" CreationDate="2010-09-02T19:22:15.143" Score="9" ViewCount="1101" Body="&lt;p&gt;I use simple text editors like &lt;a href=&quot;http://pspad.com&quot; rel=&quot;nofollow&quot;&gt;PSPad Editor&lt;/a&gt; for most of my web development, but I do miss how much easier programming becomes with IDE's (Intellisense, refactoring, etc.).   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any decent non-WYSIWYG IDE's that support PHP, HTML, JS, and CSS on Windows?&lt;/p&gt;&#xA;" OwnerUserId="36" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:56:00.687" LastActivityDate="2010-10-26T12:09:52.207" Title="Best IDE for web development?" Tags="&lt;web-development&gt;&lt;ide&gt;" AnswerCount="11" CommentCount="1" FavoriteCount="1" />
  <row Id="526" PostTypeId="2" ParentId="380" CreationDate="2010-09-02T19:28:42.710" Score="5" ViewCount="" Body="&lt;p&gt;It's nice when people notice the work I do and comment to me and my boss favorably on it.  Perhaps the perk there is good people to work with.&lt;/p&gt;&#xA;" OwnerUserId="88" LastActivityDate="2010-09-02T19:28:42.710" />
  <row Id="527" PostTypeId="2" ParentId="238" CreationDate="2010-09-02T19:28:50.447" Score="16" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0105435/&quot; rel=&quot;nofollow&quot;&gt;Sneakers&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Another great movie related to thinking about the security of a system.&lt;/p&gt;&#xA;" OwnerUserId="62" LastActivityDate="2010-09-02T19:28:50.447" CommentCount="1" />
  <row Id="528" PostTypeId="2" ParentId="485" CreationDate="2010-09-02T19:30:58.990" Score="10" ViewCount="" Body="&lt;p&gt;Surely every programmer’s “dream” job is the one where you can program whatever you want (and get paid for it). Bonus points if you can drop out of a project whenever you want even if it’s totally unfinished.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Practically, of course, such a job doesn’t exist for obvious reasons. But my ideal dream job is whatever job comes as close to it as possible. In particular, I think no programming job should discourage (much less penalise) the programmer’s individuality, even if it means that the order in which bugs/features are fixed/implemented is not completely 100% aligned with the business priorities.&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-02T19:30:58.990" CommentCount="4" />
  <row Id="529" PostTypeId="2" ParentId="364" CreationDate="2010-09-02T19:40:09.413" Score="2" ViewCount="" Body="&lt;p&gt;Send them to computer camp for a couple of weeks in the summer.  They'll get to make programs with kids their own age, and learn from college kids who are way cooler than mom or dad.  Of course if they take to it, they'll probably want to do more programming with you once camp is done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My two brothers and I all attended a great computer day camp when we were kids, and two out of three of us later worked there as counselors and ended up becoming professional programmers.  (My other brother became a journalist -- programming isn't for everyone.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The camp I attended is still around and doing well.  For those in the D.C. area, here's a link: &lt;a href=&quot;http://www.ticcamp.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.ticcamp.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing I liked about it (that separates it from other such camps) is that they let the kids pick their own projects rather than having a fixed curriculum, which I think is better for really getting them excited about programming.  Also they spend part of the day doing sports and other activities, which is, you know, healthy.&lt;/p&gt;&#xA;" OwnerUserId="151" LastActivityDate="2010-09-02T19:40:09.413" />
  <row Id="530" PostTypeId="2" ParentId="358" CreationDate="2010-09-02T19:40:36.347" Score="6" ViewCount="" Body="&lt;p&gt;A cool language and development environment call INFO, on a PRIME, using an ISAM database.  It was very easy to pick up initally, but had some funky weirdness that was quite the challange to master.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It had line numbers, and if the numbers started with an odd number, it was SQL type, in that it acted on the entire set.  If the numbers started with an even number, it was like a little loop, going through each record.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;100 select all from names&#xA;110 link to addresses where name.id = address.nameid&#xA;200 if zipcode is blank&#xA;210   set zipcode = '99999'&#xA;300 select all where zipcode is '99999'&#xA;400 print 'missing zipcodes'&#xA;410 report name.id, name.name, address.city &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="88" LastEditorUserId="88" LastEditorDisplayName="" LastEditDate="2010-09-30T18:53:52.803" LastActivityDate="2010-09-30T18:53:52.803" CommunityOwnedDate="2010-09-30T22:46:32.880" CommentCount="5" />
  <row Id="531" PostTypeId="1" CreationDate="2010-09-02T19:46:21.363" Score="8" ViewCount="487" Body="&lt;p&gt;Is there a tech item that you don't regret a cent to have purchase lately?&lt;/p&gt;&#xA;" OwnerUserId="133" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:53:43.513" LastActivityDate="2010-10-15T09:17:40.990" ClosedDate="2010-10-15T22:12:55.533" Title="What tech purchase has best improved your life as a programmer this last couple of years ?" Tags="&lt;tools&gt;&lt;technology&gt;" AnswerCount="14" CommentCount="8" FavoriteCount="1" />
  <row Id="536" PostTypeId="2" ParentId="16" CreationDate="2010-09-02T20:08:58.683" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;The main reason why enterprises don't start to use languages like Erlang, Ruby and Python, seem to be the fact that they are dynamic typed.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I think this is only their primary excuse. The real reason is that businesses don’t really take them all that seriously and feel that they are perhaps a bit too amateur. Java and .NET are “big business names”, have good commercial marketing, commercial customer support, and are thus widely taken very seriously indeed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is unfortunate that there is practically no statically-typed language that is anywhere near as popular as the big business names. Why are open-source/free-software programming environments almost always dynamically typed? This might indicate that a statically-typed language is actually not that easy to make, and that dynamic typing is a “lazy man’s hack”. If that is the case, the businesses who decide against dynamically-typed languages might actually have a point.&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-02T20:08:58.683" CommentCount="9" />
  <row Id="538" PostTypeId="2" ParentId="510" CreationDate="2010-09-02T20:22:15.157" Score="8" ViewCount="" Body="&lt;p&gt;Personally I think that information is none of the company's business.&#xA;I would not give out this information.&#xA;I consider past salary history personal information and I wouldn't work for a company that asks personal information before I even started.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The pros of giving out this info:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can make up any information you want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The cons of not giving out this info:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You probably won't be considered by them for the job.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;From a past 3 company perspective:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it fair to your past 3 companies that you are giving out their personal information as well?  Maybe you even have an NDA not to discuss your salary with anyone else.  Probably this NDA still applies even if you aren't working there anymore.  Are you breaking that NDA?&lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-02T22:32:58.173" LastActivityDate="2010-09-02T22:32:58.173" CommentCount="6" />
  <row Id="539" PostTypeId="1" CreationDate="2010-09-02T20:23:53.923" Score="20" ViewCount="1785" Body="&lt;p&gt;What colour scheme do you use/recommend in your IDE?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Related: &lt;a href=&quot;http://programmers.stackexchange.com/questions/331/what-is-your-preferred-font-for-working-with-code-and-data&quot;&gt;What is your preferred font for working with code and data?&lt;/a&gt;&lt;br /&gt;&#xA;See also: &lt;a href=&quot;http://stackoverflow.com/questions/9951/what-color-scheme-do-you-use-for-programming&quot;&gt;StackOverflow question&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="40" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-14T22:36:22.133" LastActivityDate="2010-10-23T23:12:47.507" CommunityOwnedDate="2010-09-16T13:10:40.707" ClosedDate="2011-02-15T21:07:46.287" Title="What colour scheme do you use in your IDE?" Tags="&lt;favorite&gt;&lt;ide&gt;&lt;recommendations&gt;" AnswerCount="33" FavoriteCount="7" />
  <row Id="540" PostTypeId="2" ParentId="531" CreationDate="2010-09-02T20:26:13.813" Score="6" ViewCount="" Body="&lt;p&gt;A really good laptop (MacBook Pro) .  That way I can work while I'm watching TV with my wife at night :)&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-02T20:26:13.813" CommentCount="2" />
  <row Id="541" PostTypeId="2" ParentId="539" CreationDate="2010-09-02T20:34:41.310" Score="24" ViewCount="" Body="&lt;p&gt;In all honesty, I really prefer the default Visual Studio color scheme.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've tried some darker themes, but I just couldn't get used to them.  For me, the default even with the white background is easy on my eyes.&lt;/p&gt;&#xA;" OwnerUserId="115" LastActivityDate="2010-09-02T20:34:41.310" CommunityOwnedDate="2010-09-16T13:10:40.707" CommentCount="5" />
  <row Id="542" PostTypeId="2" ParentId="539" CreationDate="2010-09-02T20:38:52.387" Score="4" ViewCount="" Body="&lt;p&gt;I've configured Visual Studio for cyan text on dark blue background, like the old Borland IDE. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This has nothing to do with retro-developing or aesthetics, it's just the less eye fatiguing scheme I've found. White or black backgrounds are just too heavy on the eyes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/aKUXA.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-15T13:07:03.047" LastActivityDate="2010-09-15T13:07:03.047" CommunityOwnedDate="2010-09-16T13:10:40.707" CommentCount="4" />
  <row Id="543" PostTypeId="2" ParentId="539" CreationDate="2010-09-02T20:39:42.070" Score="4" ViewCount="" Body="&lt;p&gt;I use the Desert colourscheme with Vim.&#xA;&lt;img src=&quot;http://i.imgur.com/2kuNO.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-02T20:39:42.070" CommunityOwnedDate="2010-09-16T13:10:40.707" />
  <row Id="544" PostTypeId="2" ParentId="510" CreationDate="2010-09-02T20:39:49.300" Score="4" ViewCount="" Body="&lt;p&gt;It's so they can work out how little they can get away with paying you.  It's not really any of their business.  Revealing this information puts you in a weaker negotiating position.  Whether or not you are worth what you are asking for does not really depend on what you were earning previously.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-02T20:39:49.300" CommentCount="1" />
  <row Id="545" PostTypeId="2" ParentId="510" CreationDate="2010-09-02T20:44:03.210" Score="4" ViewCount="" Body="&lt;p&gt;The companies will ask this type of question to gauge what salary they will give you if they were to offer it to you. Most big companies don't have a salary scale, they will offer unique salaries to each new employee based on their experience, salary demands and most likely their previous salary. If your previous salary was £30k and you demanded £40k from them, they would want to know why and what they would be getting instead of your previous company. It is sneaky and it's used to try and offer you the lowest salary they can get away with, but its what all companies will do.&#xA;I would give them the information, they are asking for it and they will probably not look at your application without it, but (a little dishonest maybe) I would embelish a little bit, adding a few £k will bump up any offer they will make you. My view of that is if they want to play underhand tactics and offer you a lower salary based on your previous salary history, they must expect some &quot;estimation&quot; on your part. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disclaimer: This is all from a UK perspective&lt;/p&gt;&#xA;" OwnerUserId="154" LastActivityDate="2010-09-02T20:44:03.210" />
  <row Id="550" PostTypeId="2" ParentId="19" CreationDate="2010-09-02T20:56:01.250" Score="2" ViewCount="" Body="&lt;p&gt;It all depends on what sector your looking to head into and what type of job you want to do. I'll start in my current domain of employment:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Finance&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finance is such a broad term that gets thrown around alot, its easy to ignore the wealth of opportunity in finance to a) find a good job that is challenging and rewarding and b) find a job with will pay mega $$$. I personally work for a medium sized finance company and subsequently earn a medium sized salary. (not wanting to give anything away incase my employers are looking, but I'm 24 and earn £10k more than my school friends not working in finance). Although this job is &quot;low paid&quot; for finance, the opportunities are immense and the techologies I use are cutting edge. &#xA;The other end of the scale is going to work for a large investment bank in their front office departments, alongside the traders. Although the opportunity for clean code and good design will be minimal due to the extreme time constraints on the projects, you will be rewarded for sacrificing your computer science ideals. If you get a job with a big bank like Goldman Sachs and with 2-4 years experience under your belt, you could be looking at a salary in the region of £60k. Thats a guess, but a relatively well informed one.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Software companies&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't my domain of knowledge as I have only ever worked for finance companies, but my friends who do work there don't earn in the region of what they could working for a bank. Not that they earn bad money, just not as much. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Other&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suppose other would be non-finance and non-technology companies, such as retail stores (Debenhams, John Lewis etc). I have no idea on this as I don't know anyone working for them. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="154" LastActivityDate="2010-09-02T20:56:01.250" CommentCount="1" />
  <row Id="551" PostTypeId="2" ParentId="501" CreationDate="2010-09-02T21:03:30.843" Score="18" ViewCount="" Body="&lt;h2&gt;PHP - consistent ordering of arguments&lt;/h2&gt; &#xA;&#xA;&lt;p&gt;PHP has a number of handy functions for doing pretty much every operation you could think of on an array or string. Many of these operations require using both a &lt;code&gt;$needle&lt;/code&gt; and a &lt;code&gt;$haystack&lt;/code&gt;, but different functions take them in different orders. Which function requires which arguments is one of those facts my brain refuses to absorb, no matter how often I come across them! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take the functions &lt;a href=&quot;http://ie.php.net/in_array&quot; rel=&quot;nofollow&quot;&gt;in_array&lt;/a&gt; and &lt;a href=&quot;http://ie2.php.net/strstr&quot; rel=&quot;nofollow&quot;&gt;strstr&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// Check whether $needle occurs in array $haystack&#xA;bool in_array (mixed $needle, array $haystack [, bool $strict])&#xA;&#xA;// Check whether $needle is a substring of $haystack&#xA;string strstr (string $haystack, mixed $needle [, bool $before_needle=false])&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Funnily enough, PHP seems to be internally consistent with these orderings in that all string functions seem to use &lt;code&gt;$haystack, $needle&lt;/code&gt; while array functions are the other way around, but this can take a bit of getting used to for someone new to PHP. There's a good &lt;a href=&quot;http://expressionengine.com/blog/entry/a_haystack_in_a_needle/&quot; rel=&quot;nofollow&quot;&gt;post on ExpressionEngine&lt;/a&gt; talking about this particular quirk in more detail, as well as a &lt;a href=&quot;http://bugs.php.net/bug.php?id=37088&quot; rel=&quot;nofollow&quot;&gt;discussion on the PHP bugs list&lt;/a&gt;, which features a very short response from the PHP team!&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;b&gt;helly@php.net&lt;/b&gt;&#xA;&lt;br /&gt;&#xA;Use a decent IDE then.&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="141" LastActivityDate="2010-09-02T21:03:30.843" CommunityOwnedDate="2010-09-02T21:03:30.843" CommentCount="9" />
  <row Id="552" PostTypeId="1" CreationDate="2010-09-02T21:07:28.697" Score="12" ViewCount="1048" Body="&lt;p&gt;Larry Wall? Linus Torvalds? Raymond Chen? Joel Spolsky? Jon Skeet? Eric Lippert? ... Bill Gates &lt;code&gt;:&amp;gt;&lt;/code&gt;?&lt;/p&gt;&#xA;" OwnerUserId="147" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:19:39.397" LastActivityDate="2010-10-16T09:37:17.603" CommunityOwnedDate="2010-09-17T19:05:49.223" ClosedDate="2011-01-06T20:15:05.153" Title="Who is your biggest idol / role model?" Tags="&lt;famous-people&gt;" AnswerCount="33" CommentCount="14" FavoriteCount="3" />
  <row Id="553" PostTypeId="2" ParentId="500" CreationDate="2010-09-02T21:09:30.830" Score="1" ViewCount="" Body="&lt;p&gt;I have never worked in a &quot;Pair Programming&quot; setup and yet I can claim to have been a part of the three circumstances you've listed. The scenario you mention seems more &quot;regular programming&quot; with phases of helping / training thrown in. Did we not do all of this before &quot;pair programming&quot; came into being? Pair Programming, I'd assume would require a more committed approach where the process of sharing within a team doesn't stop the minute you tackle the immediate task or problem at hand. But then this is what I &quot;think&quot; not what I &quot;know&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally for Pair Programming I'd like to work in a team where I get a chance to learn and share my knowledge. An unbalanced team where everyone you work with is miles ahead of you, or then way below par can get quite uninteresting quite quickly. Also, I'd be afraid to work with people who are set in their beliefs and hard to convince.&lt;/p&gt;&#xA;" OwnerUserId="153" LastActivityDate="2010-09-02T21:09:30.830" CommentCount="2" />
  <row Id="554" PostTypeId="1" AcceptedAnswerId="562" CreationDate="2010-09-02T21:10:01.660" Score="6" ViewCount="512" Body="&lt;p&gt;This is similar to the question:&#xA;&lt;a href=&quot;http://programmers.stackexchange.com/questions/361/ive-graduated-with-a-computer-science-degree-but-i-dont-feel-like-im-even-clos&quot;&gt;I've graduated with a Computer Science degree but I don't feel like I'm even close to being an expert programmer&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although I wonder if the current philosophy on delivering a Computer Science degree is at all suitable for a career in development. Most people come out of university knowing the theory of computer science rather than a practical knowledge of the applications. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of the key skills I was missing when I left university included build tools (maven, ant etc), continuous integration and I only have a basic knowledge of version control. Many people I graduated with had no knowledge of version control. I think this is the fault of computer science lecturers, who should be teaching this type of techology to students, but a colleague of mind said today that companies who hire graduates would like these skills but don't &lt;em&gt;expect&lt;/em&gt; them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If anyone has seen the film &quot;Accepted&quot;, not a great film but a very good quote about why people go to university and the simple reason is &quot;to get a good job&quot;. This is the basic reason most people go to university and I don't believe computer science degrees are geared towards this required. Yes, people need an underlying knowledge of the technologies and theories (the same colleague said &quot;build tools change over the years, but polymorphism will always be polymorphism&quot;) but it should be possible to teach marketable skills alongside the theory. For example, submit coursework using svn. Get students to setup CI for all of their coursework. These are skills that take about a year to learn and perfect when starting a new job but could be perfected over 3-4 years of a computer science degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question hidden in that rant is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Did your computer science degree set you up for your first job or did you need 1-2 years of experience to learn the basic skills of a programmer. &lt;/p&gt;&#xA;" OwnerUserId="154" LastActivityDate="2010-09-16T03:40:13.523" Title="Do you think Computer Science degrees are suitable for getting a job in the modern job market?" Tags="&lt;career&gt;&lt;school&gt;" AnswerCount="5" CommentCount="5" FavoriteCount="1" />
  <row Id="555" PostTypeId="2" ParentId="35" CreationDate="2010-09-02T21:11:00.347" Score="8" ViewCount="" Body="&lt;p&gt;What does a programmer call a burst condom?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;General Protection Fault.&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-02T21:11:00.347" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="2" />
  <row Id="556" PostTypeId="2" ParentId="515" CreationDate="2010-09-02T21:11:53.093" Score="1" ViewCount="" Body="&lt;p&gt;Regular expressions have comments in some languages. That should do most of what you want to do. Also, there are tools for testing how regular expressions match input&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-02T21:11:53.093" CommunityOwnedDate="2010-09-02T21:11:53.093" CommentCount="1" />
  <row Id="557" PostTypeId="2" ParentId="501" CreationDate="2010-09-02T21:14:21.553" Score="3" ViewCount="" Body="&lt;p&gt;Pointers of arrays or arrays of pointers in C/C++. I am still confused about these.&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-02T21:14:21.553" CommunityOwnedDate="2010-09-02T21:14:21.553" CommentCount="6" />
  <row Id="558" PostTypeId="1" AcceptedAnswerId="569" CreationDate="2010-09-02T21:15:10.357" Score="23" ViewCount="604" Body="&lt;p&gt;I am a moderately capable web developer. I can put stuff where I want it to go and put some JQuery stuff in there if I need to. However, if I am making my own website (which I am starting to do) I have no idea how to design it. If someone was to sit next to me a point to the screen and say &quot;put this picture there, text there&quot; I can do that quite easily. But designing my own site with my choice of colours and text will look like a toddler has invented it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone know any websites/books I can look at or has anyone got any tips on the basics of non-toddler web design?&lt;/p&gt;&#xA;" OwnerUserId="154" LastActivityDate="2011-06-02T20:59:52.113" ClosedDate="2010-12-31T15:19:07.983" Title="How can you learn to design nice looking websites?" Tags="&lt;websites&gt;&lt;web-development&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="16" />
  <row Id="559" PostTypeId="2" ParentId="554" CreationDate="2010-09-02T21:16:24.660" Score="3" ViewCount="" Body="&lt;p&gt;To the title question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By which I mean, the modern CS degree really doesn't prepare you for software architecture, requirements gathering, estimation techniques, software process, testing, configuration management, team work, version control, etc etc.  However, most companies more or less expect that, so it won't hurt most people looking for a job if all they know is algorithms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To the question at the end, no.  I'm getting a degree in Software Engineering, a newish major distinct from CS that aims to correct some of these problems.  I'm on my third 6-month internship (two are required at my university), and I feel reasonably prepared to develop software, since I find myself more than able to keep up with the rest of the developers here.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T21:16:24.660" CommentCount="2" />
  <row Id="560" PostTypeId="2" ParentId="552" CreationDate="2010-09-02T21:21:37.620" Score="11" ViewCount="" Body="&lt;p&gt;Bjarne Stroustrup.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I helped host a talk he gave at my university.  He had some really interesting points throughout the course of the day on everything from language design to functional programming, and gave a pretty neat talk on C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Afterwards, the committee responsible for bringing him there took him to a local pub for dinner.  Now, we were a little nervous as to whether this was entirely appropriate, so we all looked at him when the waiter asked if he wanted anything to drink.  Was this too informal for him?  Did he even like beer?  However, he looked the waiter straight in the eye and said, &quot;Bring me your hoppiest IPA!&quot;  At that moment, my respect for that man grew tenfold.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T21:21:37.620" CommunityOwnedDate="2010-09-17T19:05:49.223" CommentCount="4" />
  <row Id="561" PostTypeId="2" ParentId="266" CreationDate="2010-09-02T21:26:25.960" Score="1" ViewCount="" Body="&lt;p&gt;Yes, I think so, definitely at the client side. The most important reason for that is that &lt;strong&gt;WPF&lt;/strong&gt; will be THE UI-framework for Windows GUI applications. It also has great integration with all other Microsoft technologies, like WCF and AD.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the server side, I don't really know. But even if I think .NET will be the most popular framework for server applications because of good integration with WCF, AD, IIS, I can see a place for high performance applications implemented in C, Haskell and Erlang. When the servers will get more cores I think that the Actor Model will have some advantages over threads that is used in .NET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Short answer: Yes, .NET will be the dominating framework for Windows applications mainly because of WPF, however I think that F# will get increasing popularity, so it will not be only C#.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-02T21:26:25.960" />
  <row Id="562" PostTypeId="2" ParentId="554" CreationDate="2010-09-02T21:33:04.797" Score="12" ViewCount="" Body="&lt;p&gt;I personally wouldn't trade my theoretical computer science lessons with a &quot;how-to&quot; guide for any software tool, mostly because the lesson would be so boring that I'd miss it anyway Zzzzz ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its like, you can learn how to use NUnit, but unless you've got your logic right, those buttons are never going to turn green.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say, a computer science degree should teach your everything your job wouldn't force you to learn.&lt;/p&gt;&#xA;" OwnerUserId="153" LastActivityDate="2010-09-02T21:33:04.797" CommentCount="2" />
  <row Id="563" PostTypeId="2" ParentId="558" CreationDate="2010-09-02T21:42:17.603" Score="6" ViewCount="" Body="&lt;p&gt;This might be slightly off topic, but I do remember Jeff Atwood strongly recommending the book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321344758&quot; rel=&quot;nofollow&quot;&gt;Don't Make Me Think&lt;/a&gt;. It describes how you should design your website for the best user experience. &lt;/p&gt;&#xA;" OwnerUserId="153" LastActivityDate="2010-09-02T21:42:17.603" CommentCount="4" />
  <row Id="564" PostTypeId="2" ParentId="487" CreationDate="2010-09-02T21:42:57.230" Score="36" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;I definitely think that &lt;strong&gt;functional programming&lt;/strong&gt; languages will catch on, so my language will be functional. See &lt;a href=&quot;http://www.infoq.com/presentations/Taming-Effect-Simon-Peyton-Jones&quot; rel=&quot;nofollow&quot;&gt;Taming Effects with Functional Programming&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I think the CPUs soon will have hundreads of cores, and threads will he a hell to manage. So the &lt;strong&gt;Actor Model&lt;/strong&gt; is a must instead of threads. See &lt;a href=&quot;http://www.infoq.com/presentations/erlang-software-for-a-concurrent-world&quot; rel=&quot;nofollow&quot;&gt;Erlang - software for a concurrent world&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I also think that OOP has failed, the communication between objects was assumed to be &lt;strong&gt;asynchronous&lt;/strong&gt;. So I think we need &lt;strong&gt;message passing&lt;/strong&gt;, with immutable messages. Send and Forget. As in the Actor model. See &lt;a href=&quot;http://www.infoq.com/news/2010/07/objects-smalltalk-erlang&quot; rel=&quot;nofollow&quot;&gt;Object Oriented Programming: The Wrong Path?&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I think that it would be good to have &lt;strong&gt;static typing&lt;/strong&gt;, so errors are catched earlier in the development cycle. But I would use &lt;strong&gt;type inference&lt;/strong&gt; as in Haskell, so that the developer don't need to write the type everywhere in the code as in C, C# and Java. See &lt;a href=&quot;http://learnyouahaskell.com/&quot; rel=&quot;nofollow&quot;&gt;Learn You A Haskell for Great Good&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I would also design a &lt;strong&gt;great UI library&lt;/strong&gt;, with &lt;strong&gt;declarative layout&lt;/strong&gt;, as in WPF and Android. But I would like to have it as in &lt;a href=&quot;http://en.wikipedia.org/wiki/Functional_reactive_programming&quot; rel=&quot;nofollow&quot;&gt;Functional Reactive Programming&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So my language would be like the concurrency in Erlang but with the typing as in Haskell and a GUI framework as in WPF.NET.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-02T21:42:57.230" CommentCount="7" />
  <row Id="565" PostTypeId="1" CreationDate="2010-09-02T21:46:08.740" Score="25" ViewCount="1103" Body="&lt;p&gt;Please list &lt;strong&gt;one&lt;/strong&gt; blog post or short article per answer plus a short summary of its key point&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-21T08:44:25.600" LastActivityDate="2010-11-23T15:35:58.237" ClosedDate="2011-05-24T13:14:01.033" Title="Favourite programming blog posts or short articles" Tags="&lt;favorite&gt;&lt;blogs&gt;&lt;articles&gt;" AnswerCount="29" CommentCount="2" FavoriteCount="32" />
  <row Id="566" PostTypeId="1" AcceptedAnswerId="573" CreationDate="2010-09-02T21:49:24.700" Score="7" ViewCount="208" Body="&lt;p&gt;Goto is almost universally discouraged. Is this statement every worthwhile using?&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-06T22:30:58.483" Title="Is it ever worthwhile using goto?" Tags="&lt;goto&gt;&lt;programming-practices&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="1" />
  <row Id="567" PostTypeId="1" CreationDate="2010-09-02T21:50:17.203" Score="7" ViewCount="398" Body="&lt;p&gt;Functional programming? Aspect oriented programming? Something else? What does it offer?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="86" LastEditorDisplayName="" LastEditDate="2010-09-05T02:06:20.310" LastActivityDate="2010-09-27T16:20:43.740" Title="What is the most promising non-mainstream paradigm?" Tags="&lt;programming-languages&gt;&lt;paradigms&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="4" />
  <row Id="568" PostTypeId="1" CreationDate="2010-09-02T21:50:54.903" Score="12" ViewCount="306" Body="&lt;p&gt;Managed OSes like &lt;a href=&quot;http://singularity.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;Microsoft Singularity&lt;/a&gt; and &lt;a href=&quot;http://www.jnode.org/&quot; rel=&quot;nofollow&quot;&gt;JNode&lt;/a&gt; are quite an interesting concept. Essentially, the OS is bootstrapped with code written in a low-level language (C/C++/Assembly), which essentially implements a virtual machine. The rest of the OS (and all userland apps) run on the virtual machine. There are some great things about this. For example, you suddenly make arbitrary pointers obsolete. And if well written, you get rid of a ton of legacy crud that most modern OSes currently have. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, as a disadvantage, you're that much farther away from the hardware, and as a developer, you lose the ability to drop down to a lower level of abstraction and get your hands dirty. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your opinions on this?&lt;/p&gt;&#xA;" OwnerUserId="61" LastEditorUserId="6" LastEditorDisplayName="" LastEditDate="2010-09-04T18:37:22.580" LastActivityDate="2011-01-23T12:21:00.323" Title="Do you think managed OSes are a good idea?" Tags="&lt;operating-systems&gt;&lt;managed-code&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="3" />
  <row Id="569" PostTypeId="2" ParentId="558" CreationDate="2010-09-02T21:51:27.137" Score="7" ViewCount="" Body="&lt;p&gt;You have a few things to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Tips:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn to use Photoshop. (In particular, layer styles are excellent. Just note that they can be difficult effects to reimplement in CSS2) It goes a long way towards making good mockups. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look at professionally designed sites. What sites have you been to that look nice to you?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find sites that bother you and consider what could make it better. Look at product advertisements as well. Food packaging. Newspaper ads. You name it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, once you start getting the hang of it, practice, practice, practice. Graphics takes time to develop as a skill, especially from a programmer who has coding to consider. (Gradients vs &quot;tileability&quot;) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Tools:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Photoshop is a personal favorite. &lt;a href=&quot;http://www.paint.net/&quot; rel=&quot;nofollow&quot;&gt;Paint.NET&lt;/a&gt; is a good Windows alternative, but is not quite as powerful.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nathan Smith's &lt;a href=&quot;http://960.gs/&quot; rel=&quot;nofollow&quot;&gt;960 grid system&lt;/a&gt;. It has templates for many of the mainstream graphics programs. Check it out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look at some of these sites: (I've seen more, I'll try to add as I come across them)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.alistapart.com/&quot; rel=&quot;nofollow&quot;&gt;A List Apart&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.johnmccain.com/&quot; rel=&quot;nofollow&quot;&gt;John McCain&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://my.barackobama.com/page/content/ofasplashflag/&quot; rel=&quot;nofollow&quot;&gt;BarackObama.com&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.hayon2010.com&quot; rel=&quot;nofollow&quot;&gt;Hayon2010.com&lt;/a&gt; (Okay, I made this one, but I think that it's nice. &lt;em&gt;edit:&lt;/em&gt; I'd appreciate comments on it too. ;-D)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="67" LastEditorUserId="67" LastEditorDisplayName="" LastEditDate="2011-06-02T20:59:52.113" LastActivityDate="2011-06-02T20:59:52.113" CommentCount="7" />
  <row Id="570" PostTypeId="1" AcceptedAnswerId="584" CreationDate="2010-09-02T21:54:52.967" Score="6" ViewCount="116" Body="&lt;p&gt;All but the most trivial programs are filled with bugs and so anything that promises to remove them is extremely alluring. At the moment, correctness proofs are code are extremely esoteric, mainly because of the difficultly of learning this and the extra effort it takes to prove a program correct. Do you think that code proving will ever take off?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:15:42.153" LastActivityDate="2010-09-12T13:15:42.153" Title="Will correctness proofs of code ever go mainstream?" Tags="&lt;programming-practices&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="572" PostTypeId="2" ParentId="566" CreationDate="2010-09-02T21:58:27.400" Score="4" ViewCount="" Body="&lt;p&gt;Yes. When your loops are nested several levels deep, &lt;code&gt;goto&lt;/code&gt; is the &lt;em&gt;only&lt;/em&gt; way of elegantly breaking out of an inner loop. The other option is to set a flag and break out of each loop if that flag satisfies a condition. This is really ugly, and pretty error-prone. In these cases, &lt;code&gt;goto&lt;/code&gt; is simply better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, Java's labelled &lt;code&gt;break&lt;/code&gt; statement does the same thing, but without allowing you to jump to an arbitrary point in the code, which solves the problem neatly without allowing the things that make &lt;code&gt;goto&lt;/code&gt; evil.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-02T21:58:27.400" CommentCount="1" />
  <row Id="573" PostTypeId="2" ParentId="566" CreationDate="2010-09-02T21:59:02.210" Score="10" ViewCount="" Body="&lt;p&gt;This has been discussed several times on Stack Overflow, and Chris Gillum &lt;a href=&quot;http://stackoverflow.com/questions/24451/goto-usage/24476#24476&quot;&gt;summarized the possible uses of &lt;code&gt;goto&lt;/code&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Cleanly exiting a function&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Often in a function, you may allocate resources and need to exit in multiple places.  Programmers can simplify their code by putting the resource cleanup code at the end of the function all all &quot;exit points&quot; of the function would goto the cleanup label.  This way, you don't have to write cleanup code at every &quot;exit point&quot; of the function.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Exiting nested loops&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;If you're in a nested loop and need to break out of &lt;em&gt;all&lt;/em&gt; loops, a goto can make this much cleaner and simpler than break statements and if-checks.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Low-level performance improvements&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;This is only valid in perf-critical code, but goto statements execute very quickly and can give you a boost when moving through a function.  This is a double-edged sword, however, because a compiler typically cannot optimize code that contains gotos.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'd argue, as many others would argue, that in all of these cases, the usage of &lt;code&gt;goto&lt;/code&gt; is used as a means to get out of a corner one coded oneself into, and is generally a symptom of code that could be refactored.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-02T21:59:02.210" CommentCount="8" />
  <row Id="574" PostTypeId="2" ParentId="567" CreationDate="2010-09-02T22:13:37.143" Score="6" ViewCount="" Body="&lt;p&gt;I would say, &lt;strong&gt;functional programming&lt;/strong&gt; in sequential code, and the &lt;strong&gt;Actor Model&lt;/strong&gt; for concurrency. So basically the paradigms that Erlang uses, but I would prefer static typing and maybe another syntax. Erlang is also said to be a &lt;a href=&quot;http://www.infoq.com/presentations/erlang-software-for-a-concurrent-world&quot; rel=&quot;nofollow&quot;&gt;Concurrency Oriented&lt;/a&gt; language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fundamental difference between functional programming and object oriented programming is that you are programming in the sense of &lt;strong&gt;data flow&lt;/strong&gt; instead of &lt;strong&gt;control flow&lt;/strong&gt;. See the presentation &lt;a href=&quot;http://www.infoq.com/presentations/Taming-Effect-Simon-Peyton-Jones&quot; rel=&quot;nofollow&quot;&gt;Taming Effects with Functional Programming&lt;/a&gt; by &lt;em&gt;Simon Peyton-Jones&lt;/em&gt; for a good introduction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By using the Actor Model for concurrency, it will be much easier to maintain concurrent programs in a larger scale. With Actor Model you don't have to manage locks manually since threads/actors &lt;strong&gt;don't share any data&lt;/strong&gt;, but have a message queue and &lt;strong&gt;sends messages asynchronous&lt;/strong&gt;. The only way threads/Actors can communicate is by sending asynchronous &lt;strong&gt;immutable messages&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example of languages that can use these paradigms are: &lt;strong&gt;Erlang&lt;/strong&gt;, &lt;strong&gt;F#&lt;/strong&gt; and &lt;strong&gt;Scala&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-27T08:05:56.670" LastActivityDate="2010-09-27T08:05:56.670" CommentCount="10" />
  <row Id="575" PostTypeId="2" ParentId="515" CreationDate="2010-09-02T22:17:38.430" Score="0" ViewCount="" Body="&lt;p&gt;If I'm using a long regular expression, I usually break it down into readable chunks within a multi line comment&lt;/p&gt;&#xA;" OwnerUserId="100" LastActivityDate="2010-09-02T22:17:38.430" CommunityOwnedDate="2010-09-02T22:17:38.430" />
  <row Id="576" PostTypeId="2" ParentId="570" CreationDate="2010-09-02T22:35:21.413" Score="1" ViewCount="" Body="&lt;p&gt;Not unless a method of automatically proving the code without extensive developer work arises.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T22:35:21.413" />
  <row Id="577" PostTypeId="2" ParentId="567" CreationDate="2010-09-02T22:37:24.310" Score="3" ViewCount="" Body="&lt;p&gt;I would say functional, but only so far as it's cool features get stolen by more practical paradigm languages.  For example, closures are much more useful in C# than they were in Lisp.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T22:37:24.310" CommentCount="2" />
  <row Id="578" PostTypeId="2" ParentId="566" CreationDate="2010-09-02T22:40:46.643" Score="0" ViewCount="" Body="&lt;p&gt;I would argue no.  They should always be replaced with a tool more specific to the problem the goto is being used to solve (unless it's not available in your language).  For example, break statements and exceptions solve to previously goto-solved problems of loop escaping and error handling.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-02T22:40:46.643" CommentCount="2" />
  <row Id="580" PostTypeId="2" ParentId="570" CreationDate="2010-09-02T22:40:58.333" Score="0" ViewCount="" Body="&lt;p&gt;I think that the limits imposed on correctness proofs because of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Halting_problem&quot; rel=&quot;nofollow&quot;&gt;halting problem&lt;/a&gt; might be the biggest barrier to correctness proofs becoming mainstream.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-02T22:40:58.333" CommentCount="1" />
  <row Id="581" PostTypeId="2" ParentId="566" CreationDate="2010-09-02T22:42:37.947" Score="2" ViewCount="" Body="&lt;p&gt;I would say no.  If you find the need for using GOTO, I'll bet that there's a need to redesign the code.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-02T22:42:37.947" CommentCount="1" />
  <row Id="582" PostTypeId="2" ParentId="552" CreationDate="2010-09-02T22:43:51.467" Score="14" ViewCount="" Body="&lt;p&gt;Jon Skeet.  Does the man EVER sleep???&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-02T22:43:51.467" CommunityOwnedDate="2010-09-17T19:05:49.223" CommentCount="2" />
  <row Id="583" PostTypeId="2" ParentId="565" CreationDate="2010-09-02T22:44:17.487" Score="1" ViewCount="" Body="&lt;p&gt;I think Robert C. Martin's post summarizing the mechanics and benefits of Test Driven Development is seminal:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd&quot; rel=&quot;nofollow&quot;&gt;The Three Rules Of TDD&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-02T22:44:17.487" />
  <row Id="584" PostTypeId="2" ParentId="570" CreationDate="2010-09-02T22:49:38.460" Score="1" ViewCount="" Body="&lt;p&gt;Not really in that sense, but pure functional programming is good in this domain. If you use Haskell, it's likely that your program is correct if the code compiles. Except from IO, a good type system is a good help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also programming to contract can be helpful. See &lt;a href=&quot;http://research.microsoft.com/en-us/projects/contracts/&quot; rel=&quot;nofollow&quot;&gt;Microsoft Code Contracts&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-02T22:49:38.460" />
  <row Id="585" PostTypeId="2" ParentId="552" CreationDate="2010-09-02T22:49:40.940" Score="-13" ViewCount="" Body="&lt;p&gt;You are, baby. Don't you know that you're my hero?&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-02T22:49:40.940" CommunityOwnedDate="2010-09-17T19:05:49.223" CommentCount="7" />
  <row Id="586" PostTypeId="2" ParentId="531" CreationDate="2010-09-02T22:53:53.830" Score="13" ViewCount="" Body="&lt;p&gt;A second 22&quot; monitor.  I don't remember how I ever programmed without it.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-02T22:53:53.830" CommentCount="4" />
  <row Id="587" PostTypeId="2" ParentId="486" CreationDate="2010-09-02T22:58:06.597" Score="13" ViewCount="" Body="&lt;p&gt;The &quot;best&quot; project I ever worked on was an application for an animal shelter.  It was a lot of fun, I learned about a business that I knew nothing about and really made a huge difference in the lives of the people who ran the shelter.  Handing them a bill for $0 was a good feeling too.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-02T22:58:06.597" />
  <row Id="588" PostTypeId="2" ParentId="501" CreationDate="2010-09-02T22:58:10.257" Score="6" ViewCount="" Body="&lt;p&gt;In/out arguments. I'm all for in arguments (good thing I am), out arguments are fine too, but an argument that must convey these two states pisses me off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I target here are functions that take input from a parameter then overwrite that input with some output. It's okay to pass an object by reference to update it. But, mostly for primitive types, taking an object, use it, then change it completely, is not right by me. You shouldn't change the &lt;em&gt;meaning&lt;/em&gt; of the argument through an inout.&lt;/p&gt;&#xA;" OwnerUserId="90" LastEditorUserId="90" LastEditorDisplayName="" LastEditDate="2010-09-03T20:29:25.340" LastActivityDate="2010-09-03T20:29:25.340" CommunityOwnedDate="2010-09-02T22:58:10.257" CommentCount="7" />
  <row Id="589" PostTypeId="2" ParentId="554" CreationDate="2010-09-02T23:01:22.983" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;I got a Computer Science-like degree, although it wasn't considered Computer Science by the college.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even &quot;hands on&quot; computer science colleges tends to gloss over those seemingly advanced topics of source control, design patterns, build servers, and even unit testing in some cases.  A lot of times the classes focus on how to use a particular higher level language (.NET, Java, PHP) and how to build applications with them.  They rarely get into what's going on under the hood of those languages so things like memory management is a completely mystery.  Sadly a lot of these types of graduates seem to think that the proper way to build an application lives and dies within the IDE of choice for the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So in answer to your hidden question, the degree itself really didn't prepare me (from a technology standpoint) for a job.  The soft skills of the entire experience (working as a team, heading up the project team, communication skills, better time management than rushing the project at the last minute, etc) were what really prepared me for the first job.  The rest was picked up either outside of the degree while still in college (working on open source projects) or the first couple years on the job working under a senior developer.&lt;/p&gt;&#xA;" OwnerUserId="62" LastActivityDate="2010-09-02T23:01:22.983" />
  <row Id="590" PostTypeId="2" ParentId="501" CreationDate="2010-09-02T23:01:30.673" Score="12" ViewCount="" Body="&lt;p&gt;Verbosity in Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ie:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public static final int &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="82" LastActivityDate="2010-09-02T23:01:30.673" CommunityOwnedDate="2010-09-02T23:01:30.673" CommentCount="12" />
  <row Id="591" PostTypeId="2" ParentId="552" CreationDate="2010-09-02T23:09:08.067" Score="2" ViewCount="" Body="&lt;p&gt;Scott Gutherie.  So much so I may start up my own red polo shirt collection.&lt;/p&gt;&#xA;" OwnerUserId="62" LastActivityDate="2010-09-02T23:09:08.067" CommunityOwnedDate="2010-09-17T19:05:49.223" />
  <row Id="592" PostTypeId="2" ParentId="539" CreationDate="2010-09-02T23:15:31.563" Score="2" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.codinginstinct.com/2008/11/my-visual-studio-color-scheme.html&quot; rel=&quot;nofollow&quot;&gt;Torkel's color scheme for Visual Studio&lt;/a&gt;.  I like the emphasis on how comments stand out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do have some minor tweaks by the way because of IDE plugins.  You can easily tweak them as you want though and use Torkel's as the base.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/1NUIr.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-10-23T22:58:52.840" LastActivityDate="2010-10-23T22:58:52.840" CommunityOwnedDate="2010-09-16T13:10:40.707" />
  <row Id="594" PostTypeId="2" ParentId="566" CreationDate="2010-09-02T23:52:52.407" Score="1" ViewCount="" Body="&lt;p&gt;The odd goto here or there, so long as it's local to a function, rarely significantly harms readability. It often benefits it by drawing attention to the fact that there's something unusual going on in this code that requires the use of a somewhat uncommon control structure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If (local) gotos are significantly harming readability, then it's usually a sign that the function containing the goto has become too complex. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The last goto I put into a piece of C code was to build a pair of interlocking loops. It doesn't fit into the normal definition of &quot;acceptable&quot; goto use, but the function ended up significantly smaller and clearer as a result. To avoid the goto would have required a particularly messy violation of DRY.&lt;/p&gt;&#xA;" OwnerUserId="12" LastActivityDate="2010-09-02T23:52:52.407" />
  <row Id="595" PostTypeId="2" ParentId="486" CreationDate="2010-09-03T00:07:04.450" Score="4" ViewCount="" Body="&lt;p&gt;My favourite project to date has to be the one I'm currently on. First off, the project itself is very interesting indeed. I have a great working environment, flexible working hours and I can telecommute as often as I like as long as I don't miss any meetings. Add to that awesome colleagues, a beast of a workstation and a good boss, and you have a winner.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-03T00:07:04.450" />
  <row Id="596" PostTypeId="2" ParentId="486" CreationDate="2010-09-03T00:15:23.743" Score="6" ViewCount="" Body="&lt;p&gt;Might as well throw my own in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm currently working on a system to manage registrations for a baseball league for disabled kids.  It's currently managed by this little old woman who just gets so excited about not having to go over 100+ detailed paper registration forms each season.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Further, it's for my job (my boss funds the league), it's in C# (which I got to learn as a result), and it's got a really loose deadline (next season).  It's pretty great.  :)&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-03T00:15:23.743" CommentCount="1" />
  <row Id="597" PostTypeId="1" AcceptedAnswerId="599" CreationDate="2010-09-03T00:34:37.783" Score="18" ViewCount="510" Body="&lt;p&gt;How much do you code outside of work/class in your free time?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I ask because I've noticed that I code in my free time less and less the longer I'm doing it as a job.  When I was in classes, I always wished I had more time to work on cool projects.  I still have plenty of ideas I want to implement, but I'm finding that after 8 hours of coding I get home and just don't feel that desire anymore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How 'bout you?&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:15:07.537" LastActivityDate="2010-09-12T13:15:07.537" Title="How much do you program outside of work?" Tags="&lt;career&gt;&lt;free-time&gt;" AnswerCount="10" FavoriteCount="2" />
  <row Id="598" PostTypeId="2" ParentId="597" CreationDate="2010-09-03T01:01:28.370" Score="4" ViewCount="" Body="&lt;p&gt;I have been out of college for 6 years now, and I still work on side projects as much as I can. I find it relaxing, entertaining, and a great way to try out technologies that I wouldn't be able to in my day job. I also find it nice to not have to deal with changing requirements, and the other problems that a typical dev shop has. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally, outside spending time with my family, coding in my spare time is what I would consider my favorite pastime. Nothing beats sitting down the in evening and working on something cool.&lt;/p&gt;&#xA;" OwnerUserId="81" LastActivityDate="2010-09-03T01:01:28.370" />
  <row Id="599" PostTypeId="2" ParentId="597" CreationDate="2010-09-03T01:13:56.070" Score="14" ViewCount="" Body="&lt;p&gt;Early in my career I found a lot of time to code on side projects, but as I get older, I find that there are a lot more things that compete for my &quot;spare&quot; time.  Kids, house, other interests, all eat into that precious spare time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd love to have a clone of me now so that I could send him to work and then I could work on all those other projects!&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-03T01:13:56.070" CommentCount="4" />
  <row Id="600" PostTypeId="2" ParentId="539" CreationDate="2010-09-03T01:19:13.330" Score="2" ViewCount="" Body="&lt;p&gt;I honestly use whatever the default is, unless its so horrible that I can't look at it for more than 2 hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do I mean by default? Well here's NetBeans&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/QZVX1.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-03T01:19:13.330" CommunityOwnedDate="2010-09-16T13:10:40.707" />
  <row Id="602" PostTypeId="2" ParentId="531" CreationDate="2010-09-03T01:26:13.913" Score="2" ViewCount="" Body="&lt;p&gt;A cheap graphics card for the sole purpose of having dual CRT 17&quot; Monitors. Really helps with productivity.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-03T01:26:13.913" />
  <row Id="603" PostTypeId="2" ParentId="531" CreationDate="2010-09-03T01:29:48.273" Score="5" ViewCount="" Body="&lt;p&gt;An external HD dedicated to hourly incremental backups.  I've lost count of the number of times it's save my but when I deleted a file I never expected to need again and then did.  And, of course, it's gotten me through 1 catastrophic system failure and given me the confidence to fix some other, smaller problems without worrying about losing my data.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-03T01:29:48.273" CommentCount="5" />
  <row Id="604" PostTypeId="1" CreationDate="2010-09-03T01:38:00.277" Score="14" ViewCount="654" Body="&lt;p&gt;on a widescreen monitor one can easily see more than 80 characters at a time, without scrollbars. even linus torvalds sees the 80 character limit as &lt;a href=&quot;http://lkml.org/lkml/2009/12/17/229&quot; rel=&quot;nofollow&quot;&gt;outdated&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;so, is the 80 character limit still relevant in times of widescreen monitors?&lt;/p&gt;&#xA;" OwnerUserId="116" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-09T13:36:47.987" LastActivityDate="2010-09-21T12:42:26.760" Title="Is the 80 character limit still relevant in times of widescreen monitors?" Tags="&lt;work-environment&gt;&lt;style-guide&gt;" AnswerCount="10" CommentCount="1" FavoriteCount="1" />
  <row Id="605" PostTypeId="2" ParentId="501" CreationDate="2010-09-03T01:43:25.667" Score="6" ViewCount="" Body="&lt;h2&gt;Semicolons in VBScript - or the lack thereof&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I spend all day working in languages that expect semicolons at the end of each line. Add one to the end of the line in VBScript and your code doesn't run anymore.&lt;/p&gt;&#xA;" OwnerUserId="13" LastActivityDate="2010-09-03T01:43:25.667" CommunityOwnedDate="2010-09-03T01:43:25.667" CommentCount="1" />
  <row Id="606" PostTypeId="2" ParentId="501" CreationDate="2010-09-03T01:43:54.453" Score="34" ViewCount="" Body="&lt;h2&gt;Java-bean syntax due to lack of C# properties&lt;/h2&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/**&#xA; * Name of user&#xA; */&#xA;private String name;&#xA;&#xA;/**&#xA; * Gets name of user&#xA; * @return Name of user&#xA; */&#xA;public String getName() {&#xA;    return this.name;&#xA;}&#xA;&#xA;/**&#xA; * Sets name of user. &#xA; * @param name&#xA; */&#xA;public void setName(final String name) {&#xA;    this.name = name;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;GAH!!! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Issues I have with this&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Too much code&lt;/strong&gt; - Have a field that's documented, a getter method that's documented, and a setter method that's documented. This extremely basic example has &lt;strong&gt;20&lt;/strong&gt; lines of code for a &lt;em&gt;single&lt;/em&gt; property&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Clutters method lists&lt;/strong&gt; - &quot;Let me find that method, hand on: &lt;code&gt;getX&lt;/code&gt;, &lt;code&gt;getY&lt;/code&gt;, &lt;code&gt;getZ&lt;/code&gt;, &lt;code&gt;getAnotherAnnoyingField&lt;/code&gt;, &lt;code&gt;getWhyIHateJavaBeans&lt;/code&gt;, &lt;code&gt;getThisIsVerbose&lt;/code&gt;, &lt;code&gt;getGAH&lt;/code&gt;... ah there it is, &lt;code&gt;hashCode&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Multiple area's of documentation lead to poor, outdated, or missing documentation&lt;/strong&gt; - Annoying when trying to understand what code does&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;So annoying a 3rd party had to come up with a plugin to do this easily&lt;/strong&gt; - &lt;a href=&quot;http://spoon.gforge.inria.fr/&quot; rel=&quot;nofollow&quot;&gt;Spoon&lt;/a&gt;, &lt;a href=&quot;http://sourceforge.net/projects/shark/&quot; rel=&quot;nofollow&quot;&gt;Shark&lt;/a&gt;, among others.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="66" LastEditorUserId="6218" LastEditorDisplayName="" LastEditDate="2011-02-27T13:48:31.220" LastActivityDate="2011-02-27T13:48:31.220" CommunityOwnedDate="2010-09-03T01:43:54.453" CommentCount="17" />
  <row Id="607" PostTypeId="2" ParentId="604" CreationDate="2010-09-03T01:47:11.290" Score="0" ViewCount="" Body="&lt;p&gt;No, it's no longer relevant:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Most fonts used in applications and on the web aren't fixed-width anyway. In other words, 80 characters != 80 characters.&lt;/li&gt;&#xA;&lt;li&gt;As you said, screen widths have changed - 80 characters is not a sensible boundary.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;80 characters was really a guideline for fixed-width fonts in a console environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, if you're still using a fixed-width font in a console environment... then sure, 80 characters is sensible :)&lt;/p&gt;&#xA;" OwnerUserId="91" LastActivityDate="2010-09-03T01:47:11.290" CommentCount="3" />
  <row Id="608" PostTypeId="2" ParentId="604" CreationDate="2010-09-03T01:48:38.317" Score="1" ViewCount="" Body="&lt;p&gt;It is probably not relevant to choose exactly a 80 character limit; what would change if the limit is 85, for example?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's true that monitors used nowadays have higher resolutions, but in a text editor/IDE, not all the space is taken from the text view; in the editor I use shows to the left side the list of the files included in the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The resolution used in a netbook, or a notebook is not the same used in monitors; it probably makes sense to use a character limit that doesn't create &quot;problems&quot; to anybody.&lt;/p&gt;&#xA;" OwnerUserId="44" LastActivityDate="2010-09-03T01:48:38.317" CommentCount="2" />
  <row Id="609" PostTypeId="2" ParentId="604" CreationDate="2010-09-03T01:50:03.603" Score="1" ViewCount="" Body="&lt;p&gt;It really depends on the development environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, in a large corporation with thousands of developers, there are probably hundreds of people who will, over the course of a product's lifetime, have to look at some portion of it's code.  With that many people, there's bound to be a few who, for whatever reason (older hardware, netbooks, etc) are operating at 800x600 or smaller.  There's some value to accommodating them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At my 25-person company, though, I say screw it.  We're all using dual modern monitors at the maximum resolution- 120-140 or so is the informal guideline.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-03T01:50:03.603" />
  <row Id="610" PostTypeId="1" AcceptedAnswerId="612" CreationDate="2010-09-03T01:58:55.357" Score="20" ViewCount="1451" Body="&lt;p&gt;The logical companion to the &lt;a href=&quot;http://programmers.stackexchange.com/questions/501/what-syntax-element-do-you-hate-most-in-a-programming-language-you-use-frequently&quot;&gt;Which do you hate most&lt;/a&gt; question.  What's your favorite syntax element in a programming language- what nicety to you like best?  I'm sticking with the 'syntax' specification to avoid broader answers like &quot;dynamic typing&quot; or &quot;is interpreted.&quot;&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:19:33.797" LastActivityDate="2011-01-09T19:18:48.790" CommunityOwnedDate="2010-12-07T07:14:37.740" Title="What syntax element do you love most in a programming language you use frequently?" Tags="&lt;programming-languages&gt;&lt;syntax&gt;" AnswerCount="43" CommentCount="3" FavoriteCount="3" />
  <row Id="612" PostTypeId="2" ParentId="610" CreationDate="2010-09-03T02:10:59.960" Score="30" ViewCount="" Body="&lt;p&gt;The ternary operator (or for pedants, the &lt;em&gt;conditional&lt;/em&gt; operator): &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;boolean expression&amp;gt; ? expression result if true : expression result if false&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, some languages make it difficult to use due to strict restrictions on what conversions can be performed in order to produce a consistent type from both possible outcomes. Nevertheless, it is a wonderful example of a language taking an extremely common pattern and providing a concise, readable means of representing it in code.&lt;/p&gt;&#xA;" OwnerUserId="63" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2010-09-15T11:25:22.633" LastActivityDate="2010-09-15T11:25:22.633" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="13" />
  <row Id="613" PostTypeId="2" ParentId="604" CreationDate="2010-09-03T02:14:08.237" Score="12" ViewCount="" Body="&lt;p&gt;I don't think the monitor has anything to do with it - at least not anymore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't code a line in 80 characters, that's probably a sign of bad code anyway. Too complex &#xA;expressions. Too deep indentation. etc. You should stop and rethink what you are doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you are sure that the code required more than 80 lines, then go ahead and do it. I think it's better to have a code that surpasses the 80 characters than adding idiomatic changes only to make it smaller.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally hate this kind of stuff:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;ret = my_function(parameter1, \&#xA;                  parameter2, \&#xA;                  parameter3, parameter4);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Instead of simply:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;ret = my_function(parameter1, parameter2, parameter3, parameter4);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="31" LastActivityDate="2010-09-03T02:14:08.237" CommentCount="4" />
  <row Id="616" PostTypeId="1" AcceptedAnswerId="623" CreationDate="2010-09-03T02:24:53.687" Score="18" ViewCount="355" Body="&lt;p&gt;When I am in a code or design rut, I tend to find a non-dev coworker to discuss the problem with. It forces me to explain the problem in great detail and I'll usually find something I missed in the process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your &quot;unsticking&quot; methods?&lt;/p&gt;&#xA;" OwnerUserId="95" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:14:36.180" LastActivityDate="2010-09-23T20:13:27.293" Title="What do you do when you feel stuck on a project?" Tags="&lt;productivity&gt;&lt;development-process&gt;" AnswerCount="17" CommentCount="2" FavoriteCount="2" />
  <row Id="618" PostTypeId="2" ParentId="610" CreationDate="2010-09-03T02:29:40.283" Score="18" ViewCount="" Body="&lt;p&gt;I'm still on the new language high for C#, so:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Properties&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public bool IsCold { get; set; }&#xA;&#xA;public bool IsHot&#xA;{&#xA;    get { return !IsCold };&#xA;    set { IsCold = !value };&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;A simple way to have the benefits of accessors (the ability to modify the implementation without changing the interface) and the benefits of public variables (brevity).&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="6" LastEditorDisplayName="" LastEditDate="2010-09-15T15:28:51.320" LastActivityDate="2010-09-15T15:28:51.320" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="10" />
  <row Id="619" PostTypeId="2" ParentId="604" CreationDate="2010-09-03T02:32:48.147" Score="15" ViewCount="" Body="&lt;p&gt;If I keep my lines to less than about 100 characters, I can have two editor windows side-by-side on a widescreen monitor.  It's very useful to have both the class header file and implementation both visible at the same time, or have code on one side that calls into the code on the other.  And, if I keep the lines short, I don't need a horizontal scrollbar on my editor windows, which gives me more vertical space.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;80 characters may be outdated, but there's some merit in keeping things within reason.&lt;/p&gt;&#xA;" OwnerUserId="35" LastActivityDate="2010-09-03T02:32:48.147" CommentCount="3" />
  <row Id="620" PostTypeId="2" ParentId="616" CreationDate="2010-09-03T02:33:41.887" Score="4" ViewCount="" Body="&lt;p&gt;I imagine the person in my life who could best help me solve the problem, and assuming they aren't available on short notice to help me, go find a place where I can be alone, and explain the problem out loud as if I'm talking to that person. Eventually, in the course of trying to convince them that I /really/ have a problem, I usually come to the same advice that they would have given me.&lt;/p&gt;&#xA;" OwnerUserId="12" LastActivityDate="2010-09-03T02:33:41.887" />
  <row Id="621" PostTypeId="2" ParentId="616" CreationDate="2010-09-03T02:34:56.677" Score="1" ViewCount="" Body="&lt;p&gt;I try writing about it. First I collect all the the relevant information and list everything I've considered and why it doesn't work. I find it much easier to think when I have it written down all in front of me.&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-03T02:34:56.677" />
  <row Id="622" PostTypeId="2" ParentId="610" CreationDate="2010-09-03T02:43:48.637" Score="6" ViewCount="" Body="&lt;p&gt;In VB.NET I love the &lt;code&gt;With&lt;/code&gt; statement which acts as a shortcut to an object's properties and methods within it's block.  It saves typing, and I find it makes some code much more cleaner in the case of very long variable names:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;With TransactionDialog.TransactionDatagridView.SelectedRows(0) &#xA;    .Cells(0).Value = Something&#xA;    .Cells(0).Value = SomethingElse&#xA;    '...&#xA;    .Frozen = True&#xA;End With&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;versus:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;TransactionDialog.TransactionDatagridView.SelectedRows(0) &#xA;TransactionDialog.TransactionDatagridView.SelectedRows(0).Cells(0).Value = Something&#xA;TransactionDialog.TransactionDatagridView.SelectedRows(0).Cells(0).Value = SomethingElse&#xA;'...&#xA;TransactionDialog.TransactionDatagridView.SelectedRows(0).Frozen = True&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="95" LastActivityDate="2010-09-03T02:43:48.637" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="10" />
  <row Id="623" PostTypeId="2" ParentId="616" CreationDate="2010-09-03T02:44:33.393" Score="10" ViewCount="" Body="&lt;p&gt;Some of my tactics:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Explain the problem to someone, or even no one.  My girlfriend used to explain problems to a potato she kept.&lt;/li&gt;&#xA;&lt;li&gt;Work on something else for a bit (if opportunity allows)- some other functionality or even another project.  Get your ming off the current project.  A lot of times problems that seem impossible at 4:30pm seem trivial at 9:30 am the next day.&lt;/li&gt;&#xA;&lt;li&gt;Go to the pub (if possible).  Same principle as above.&lt;/li&gt;&#xA;&lt;li&gt;Beat your head against it.  This isn't often that productive for solving the problem, but at least for me, I tend to learn a lot.  If my gridview isn't auto-sorting, I'll try and read everything I can about the problem.  It'll still take me 3 hours to solve a stupid error on my part, but by the end, I'll have learned everything there is to know about gridviews and how they bind to data- I'll be able to solve any number of similar problems in the future.&lt;/li&gt;&#xA;&lt;li&gt;Get another input- preferably someone who knows at least something about the context of the project.  Most of my errors are stupid ones that only require a few minutes from a second set of eyes to solve where it would take me hours.&lt;/li&gt;&#xA;&lt;li&gt;Isolate the problem.  I keep a folder labeled &quot;proof of bugs&quot; where I keep a pile of project that each reproduce a specific issue outside the overall context of the large, complex project.  This can be a little time consuming, but it allows you to narrow down the cause of the issue independent of the bazillion interfering factors of a large project.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-03T02:44:33.393" CommentCount="1" />
  <row Id="624" PostTypeId="2" ParentId="67" CreationDate="2010-09-03T02:59:35.207" Score="1" ViewCount="" Body="&lt;p&gt;Oh man, I totally forgot &lt;a href=&quot;http://teddziuba.com/&quot; rel=&quot;nofollow&quot;&gt;TedDziuba&lt;/a&gt;.  He started out as a writer for the startup-bashing (and now defunct) uncov.com.  He's an acknowledged asshole, and is fun to read.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-03T02:59:35.207" CommunityOwnedDate="2010-09-23T12:50:11.533" CommentCount="1" />
  <row Id="626" PostTypeId="2" ParentId="616" CreationDate="2010-09-03T03:05:03.267" Score="3" ViewCount="" Body="&lt;p&gt;Talking it through with someone is the best solution, but often just stepping away from your computer for a while and looking at it with fresh eyes helps too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also a lot of my design insights often come when I'm taking a shower or a bath :)&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-03T03:05:03.267" />
  <row Id="627" PostTypeId="2" ParentId="525" CreationDate="2010-09-03T03:10:16.790" Score="4" ViewCount="" Body="&lt;p&gt;After using Notepad++ for a while, I got tired of the manual uploading, lack of good auto formatting, etc. So I moved on to &lt;a href=&quot;http://netbeans.org&quot; rel=&quot;nofollow&quot;&gt;NetBeans&lt;/a&gt;. It has nice things like upload on save, testing, integration with Symphony, etc. Things that make working with PHP easy. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-03T03:10:16.790" CommentCount="3" />
  <row Id="628" PostTypeId="2" ParentId="502" CreationDate="2010-09-03T03:13:27.903" Score="1" ViewCount="" Body="&lt;p&gt;My very short list&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;hello world&lt;/li&gt;&#xA;&lt;li&gt;You said [something user said]!&lt;/li&gt;&#xA;&lt;li&gt;(Big jump) An IRC bot&lt;/li&gt;&#xA;&lt;li&gt;Whatever else I'm interested in/paid to write&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-03T03:13:27.903" CommunityOwnedDate="2010-09-03T03:13:27.903" />
  <row Id="629" PostTypeId="2" ParentId="565" CreationDate="2010-09-03T03:15:39.847" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://infoworld.com/d/developer-world/google-executive-frustrated-java-c-complexity-375?page=0,0&quot; rel=&quot;nofollow&quot;&gt;Google executive frustrated by Java, C++ complexity&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's about the critic against the current dominant programming language (Java / C++). It puts in perspective the pro and con of compiled language such as Java and C++ and dynamic language such as Javascript and Ruby.&lt;/p&gt;&#xA;" OwnerUserId="41" LastActivityDate="2010-09-03T03:15:39.847" CommentCount="1" />
  <row Id="630" PostTypeId="2" ParentId="565" CreationDate="2010-09-03T03:19:09.460" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://teddziuba.com/2010/06/seo-is-mostly-quack-science.html&quot; rel=&quot;nofollow&quot;&gt;SEO Is Mostly A Quack Science&lt;/a&gt; by Ted Dziuba&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-03T03:19:09.460" />
  <row Id="631" PostTypeId="2" ParentId="67" CreationDate="2010-09-03T03:20:06.380" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://asserttrue.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;assertTrue()&lt;/a&gt;  &lt;/p&gt;&#xA;" OwnerUserId="41" LastActivityDate="2010-09-03T03:20:06.380" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="632" PostTypeId="2" ParentId="610" CreationDate="2010-09-03T03:33:31.417" Score="19" ViewCount="" Body="&lt;h2&gt;Haskell&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The syntax for &quot;point-free style,&quot; in which, ironically, one uses the point (&lt;code&gt;.&lt;/code&gt;) to denote composition. &quot;Point-full&quot; style:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;fn x = f ( g ( h x ))&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Point-free:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;fn :: a -&amp;gt; b&#xA;fn = f . g . h&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The functions are equivalent, but the latter is considered &quot;cleaner.&quot;&lt;/p&gt;&#xA;" OwnerUserId="83" LastEditorUserId="83" LastEditorDisplayName="" LastEditDate="2010-12-08T18:20:01.513" LastActivityDate="2010-12-08T18:20:01.513" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="8" />
  <row Id="633" PostTypeId="2" ParentId="610" CreationDate="2010-09-03T03:53:50.000" Score="19" ViewCount="" Body="&lt;p&gt;The C# Extension Method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a great way to make static method use a little cleaner and clearer:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public static string DoubleUp( this string toDouble ){&#xA;    return toDouble + toDouble&#xA;}&#xA;&#xA;//elsewhere...&#xA;string result = &quot;Ha&quot;.DoubleUp().DoubleUp();&#xA;//result = &quot;HaHaHaHa&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-03T03:53:50.000" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="3" />
  <row Id="634" PostTypeId="1" CreationDate="2010-09-03T04:00:42.620" Score="6" ViewCount="655" Body="&lt;p&gt;What are some features (big or small) missing from the languages you use most frequently?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Moderator message:&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Please read &lt;strong&gt;all&lt;/strong&gt; of the existing answers before posting yours. The question is relatively old and has a reasonable number of answers already. There is a good chance that your answer has already been posted.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="13" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-03-26T18:35:14.450" LastActivityDate="2011-03-26T18:35:14.450" CommunityOwnedDate="2011-03-10T10:29:28.597" Title="What features are missing from the languages you use?" Tags="&lt;programming-languages&gt;&lt;features&gt;" AnswerCount="25" CommentCount="14" FavoriteCount="5" />
  <row Id="635" PostTypeId="2" ParentId="616" CreationDate="2010-09-03T04:01:08.293" Score="1" ViewCount="" Body="&lt;p&gt;If you are working at home, you can go do jogging outside or take a walk. It's good for your health and it helps to think about the problem on which you are stuck on. If find this to be effective, because it helps me get a better overview of the problem. Sometimes your just focusing on the wrong part of the problem and when you get a better overview of the problem, the solution is easier to find.&lt;/p&gt;&#xA;" OwnerUserId="41" LastActivityDate="2010-09-03T04:01:08.293" />
  <row Id="636" PostTypeId="2" ParentId="634" CreationDate="2010-09-03T04:11:43.013" Score="22" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Type Inference&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use Jave at school a lot, and I really wish it had this feature from C#:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var x = new Whatever();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It gets some of the brevity of dynamic typing.  Since types are inferred at compile time, though, you still get all the error-checking of static typing.  It's really frustrating to have to do Java's:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Whatever x = new Whatever();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This is especially frustrating when you get big long generic types:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;WhateverThing&amp;lt;Foobar&amp;lt;ZipZip,Floobflorb&amp;gt;,Thingy&amp;gt; x = new WhateverThing&amp;lt;Foobar&amp;lt;ZipZip,Floobflorb&amp;gt;,Thingy&amp;gt;();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-03T04:11:43.013" CommunityOwnedDate="2011-03-10T10:29:28.597" CommentCount="13" />
  <row Id="637" PostTypeId="2" ParentId="515" CreationDate="2010-09-03T04:35:19.313" Score="7" ViewCount="" Body="&lt;p&gt;Perl 6 is trying some really cool ideas with regular expression syntax, including being able to define parts of a regular expression separately (as &quot;terms&quot;) then combine them into a &quot;grammar&quot;. See &lt;a href=&quot;http://perlgeek.de/en/article/mutable-grammar-for-perl-6&quot; rel=&quot;nofollow&quot;&gt;this blog post&lt;/a&gt; to see what I mean, read a &lt;a href=&quot;http://github.com/perlpilot/perl6-docs/blob/master/intro/p6-regex-intro.pod&quot; rel=&quot;nofollow&quot;&gt;more comprehensive introduction&lt;/a&gt;, or try it out in &lt;a href=&quot;http://search.cpan.org/~dconway/Perl6-Rules-0.03/Rules.pm&quot; rel=&quot;nofollow&quot;&gt;Perl 5&lt;/a&gt; or &lt;a href=&quot;http://rakudo.org/how-to-get-rakudo&quot; rel=&quot;nofollow&quot;&gt;Rakudo Perl 6&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-09-03T04:35:19.313" CommunityOwnedDate="2010-09-03T04:35:19.313" />
  <row Id="638" PostTypeId="2" ParentId="610" CreationDate="2010-09-03T04:42:41.777" Score="5" ViewCount="" Body="&lt;h1&gt;Perl 5&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Perl 5 absolutely abounds in fantastic syntactic sugar I miss elsewhere, starting with sigils to quickly group variables by type ($scalar, @array, %hash). My absolute favourite is &lt;code&gt;unless&lt;/code&gt;, which removes the need to rewrite a complex expression as it's negative or to add an easy-to-overlook &lt;code&gt;not&lt;/code&gt; (or, horrors, &lt;code&gt;!&lt;/code&gt;) at the start of the expression. Compare:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    if(($x &amp;lt; 10_000) || ($x &amp;gt; 20_000)) { .. }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    if(not ($x &amp;gt;= 10_000 and $x &amp;lt;= 20_000)) { .. }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;with the elegance of:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    unless($x &amp;gt;= 10_0000 and $x &amp;lt;= 20_000) { .. }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-09-03T04:42:41.777" CommunityOwnedDate="2010-09-03T04:42:41.777" CommentCount="2" />
  <row Id="639" PostTypeId="2" ParentId="634" CreationDate="2010-09-03T04:51:28.023" Score="16" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/9k7k7cf0.aspx&quot; rel=&quot;nofollow&quot;&gt;Yield return&lt;/a&gt; is missing from most languages.  It would be nice to have in Java.&lt;/p&gt;&#xA;" OwnerUserId="113" LastActivityDate="2010-09-03T04:51:28.023" CommunityOwnedDate="2011-03-10T10:29:28.597" CommentCount="3" />
  <row Id="640" PostTypeId="2" ParentId="616" CreationDate="2010-09-03T05:31:41.967" Score="0" ViewCount="" Body="&lt;p&gt;Will take a walk along and chat about some thing irrelevant to technology come back again read the complete requirement and think in a different way to achieve it. I do the same and reasonably succeeded.   &lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-09-03T05:31:41.967" />
  <row Id="642" PostTypeId="2" ParentId="67" CreationDate="2010-09-03T06:04:47.753" Score="1" ViewCount="" Body="&lt;p&gt;I am not sure if podcasts qualify but if you want information on what going on in the .NET world then definitely check out - &lt;a href=&quot;http://www.dotnetrocks.com/&quot; rel=&quot;nofollow&quot;&gt;.NET Rocks&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am also a big fan of &lt;a href=&quot;http://www.se-radio.net/&quot; rel=&quot;nofollow&quot;&gt;Software Engineering Radio&lt;/a&gt;. It's awesome for software engineering topics.&lt;/p&gt;&#xA;" OwnerUserId="107" LastActivityDate="2010-09-03T06:04:47.753" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="643" PostTypeId="2" ParentId="610" CreationDate="2010-09-03T06:06:55.203" Score="2" ViewCount="" Body="&lt;p&gt;Interfaces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was introduced to them when I first learned Java in 1997, but I think something similar had existed in other languages (Objective-C?) for a while.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/90851/is-it-just-me-or-are-interfaces-overused&quot;&gt;Not everybody likes them&lt;/a&gt;, but they have some big advantages:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;They give you more control over the order in which you write classes.  You can program against the interface (using mock implementations) hours or even months before the implementing class is written.&lt;/li&gt;&#xA;&lt;li&gt;They solve the multiple inheritance problem, even allow inheritance to be dispensed with (e.g. &lt;a href=&quot;http://en.wikipedia.org/wiki/Go_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Go&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="113" LastActivityDate="2010-09-03T06:06:55.203" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="3" />
  <row Id="644" PostTypeId="2" ParentId="616" CreationDate="2010-09-03T06:15:21.420" Score="1" ViewCount="" Body="&lt;p&gt;Just as another tool, you could get a set of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Oblique_Strategies&quot; rel=&quot;nofollow&quot;&gt;Oblique Strategies&lt;/a&gt; cards.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Oblique Strategies [...] is a set of published cards created by Brian Eno and Peter Schmidt first published in 1975, and now in its fifth edition. Each card contains a phrase or cryptic remark which can be used to break a deadlock or dilemma situation. Some are specific to music composition; others are more general.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The authors are/were musicians that used the cards to foster creative thinking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You pick a random card and get a 'dilema' statement. For example:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Remove specifics and convert to ambiguities&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Although some times they are just nonsense if you are not trying to compose music, the simple exercise of trying to understand what the card suggest might help you unlock your mind from your current thoughts and help you think from an unrelated, unexplored path.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are &lt;a href=&quot;http://music.hyperreal.org/artists/brian_eno/obliques.html&quot; rel=&quot;nofollow&quot;&gt;some downloadable versions&lt;/a&gt;, and also a couple of &lt;a href=&quot;http://tools.blackhat-seo.com/strategies/&quot; rel=&quot;nofollow&quot;&gt;web&lt;/a&gt; &lt;a href=&quot;http://www.joshharrison.net/oblique-strategies/&quot; rel=&quot;nofollow&quot;&gt;sites&lt;/a&gt; where you can read them online. I'm pretty sure you can get them also as an iPhone or Android app, but I haven't looked for them. I have them as a Mac OS X Dashboard Widget called 'Oblique', but I just searched for the link and it seems it is not online anymore.&lt;/p&gt;&#xA;" OwnerUserId="76" LastEditorUserId="76" LastEditorDisplayName="" LastEditDate="2010-09-03T06:24:18.073" LastActivityDate="2010-09-03T06:24:18.073" />
  <row Id="646" PostTypeId="2" ParentId="358" CreationDate="2010-09-03T06:34:48.803" Score="13" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/MUMPS#Sample_programs&quot; rel=&quot;nofollow&quot;&gt;MUMPS&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It looked like a thousand monkeys had randomly hit keys on a keyboard. Often, that had actually been the case.&#xA;I jumped ship to SQL databases as soon as I could&lt;/p&gt;&#xA;" OwnerUserId="114" LastActivityDate="2010-09-03T06:34:48.803" CommunityOwnedDate="2010-09-30T22:46:32.880" CommentCount="4" />
  <row Id="648" PostTypeId="1" AcceptedAnswerId="716" CreationDate="2010-09-03T06:41:26.837" Score="40" ViewCount="848" Body="&lt;p&gt;We, as programmers, are constantly being asked 'How long will it take'?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And you know, the situation is almost always like this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The requirements are unclear. Nobody has done an in depth analysis of all the implications.&lt;/li&gt;&#xA;&lt;li&gt;The new feature will probably break some assumptions you made in your code and you start thinking immediately of all the things you might have to refactor. &lt;/li&gt;&#xA;&lt;li&gt;You have other things to do from past assignments and you will have to come up with an estimate that takes that other work into account.&lt;/li&gt;&#xA;&lt;li&gt;The 'done' definition is probably unclear: When will it be done? 'Done' as in just finished coding it, or 'done' as in &quot;the users are using it&quot;?&lt;/li&gt;&#xA;&lt;li&gt;No matter how conscious you are of all these things, sometimes your &quot;programmer's pride&quot; makes you give/accept shorter times than you originally suppose it might take. Specially when you feel the pressure of deadlines and management expectations.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Many of these are organizational or cultural issues that are not simple and easy to solve, but in the end the reality is that you are being asked for an estimate and they expect you to give a reasonable answer. It's part of your job. You cannot simply say: I don't know. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a result, I always end up giving estimates that I later realize I cannot fulfill. It has happened countless of times, and I always promise it won't happen again. But it does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is your personal process for deciding and delivering an estimate? What techniques have you found useful?&lt;/p&gt;&#xA;" OwnerUserId="76" LastEditorUserId="76" LastEditorDisplayName="" LastEditDate="2010-09-03T06:48:09.980" LastActivityDate="2010-09-29T15:50:04.563" Title="How to respond when you are asked for an estimate?" Tags="&lt;development-process&gt;&lt;time-management&gt;&lt;estimation&gt;" AnswerCount="15" CommentCount="1" FavoriteCount="24" />
  <row Id="649" PostTypeId="2" ParentId="525" CreationDate="2010-09-03T06:49:57.083" Score="2" ViewCount="" Body="&lt;p&gt;Check out &lt;a href=&quot;http://www.aptana.com/&quot; rel=&quot;nofollow&quot;&gt;Aptana&lt;/a&gt; - It's an eclipse based tool that does a really good job IMO - but it is based on eclipse which is a lot bigger and resource intensive. &lt;/p&gt;&#xA;" OwnerUserId="107" LastActivityDate="2010-09-03T06:49:57.083" CommentCount="6" />
  <row Id="650" PostTypeId="2" ParentId="109" CreationDate="2010-09-03T06:59:23.590" Score="1" ViewCount="" Body="&lt;p&gt;In managed memory platforms: keeping a reference to an object for more time than it is needed causing memory to grow constantly and thinking that &quot;the garbage collector doesn't work&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have seen it many times while troubleshooting applications made by programmers new to .NET or Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/b/brada/archive/2003/04/26/50013.aspx&quot; rel=&quot;nofollow&quot;&gt;Memory Leaks in Managed code&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-09-03T06:59:23.590" CommunityOwnedDate="2010-10-06T08:33:10.437" />
  <row Id="651" PostTypeId="1" CreationDate="2010-09-03T07:07:42.740" Score="7" ViewCount="522" Body="&lt;p&gt;Assuming &lt;a href=&quot;http://programmers.stackexchange.com/questions/57/tabs-versus-spaceswhat-is-the-proper-indentation-character-for-everything-in-ev.&quot;&gt;space&lt;/a&gt; for indentation. How many spaces do you prefer? Why?&lt;/p&gt;&#xA;" OwnerUserId="116" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-20T22:12:57.663" LastActivityDate="2011-04-20T14:46:23.493" ClosedDate="2011-04-22T13:39:37.340" Title="How many spaces for indentation?" Tags="&lt;holy-war&gt;&lt;style-guide&gt;&lt;indentation&gt;" AnswerCount="9" CommentCount="3" />
  <row Id="652" PostTypeId="2" ParentId="552" CreationDate="2010-09-03T07:16:54.100" Score="13" ViewCount="" Body="&lt;p&gt;Bill Gates&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Man I wanna be like him (possible?) :)&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-09-03T07:16:54.100" CommunityOwnedDate="2010-09-17T19:05:49.223" CommentCount="3" />
  <row Id="653" PostTypeId="2" ParentId="648" CreationDate="2010-09-03T07:17:38.217" Score="3" ViewCount="" Body="&lt;p&gt;It depends on the organization and how the estimates are used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the estimate is just to provide a general idea on when it will be ready, I can generally do a quick estimate based on my experience. Often times I will include any uncertainty or possible variations with the estimate along with how the changes may impact other areas of the system and the extent of regression testing required.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the estimate is used for anything contractual or in a scenario where more precise timing is required, I do a full work break down. This is more work and requires more in depth thinking about the design and changes to the system, but is much more accurate, especially for larger pieces of work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In either case, on-going communication is key. If you do run into something unexpected, make it known at the time instead of waiting until the deadline. If the requirements are not-clear, make sure you document your understanding of them and the functionality that you plan to deliver. This is also helpful with any assumptions you make. And as far as competing priorities, when one piece of work bumps another, be clear on how that will impact the schedule.&lt;/p&gt;&#xA;" OwnerUserId="152" LastActivityDate="2010-09-03T07:17:38.217" />
  <row Id="654" PostTypeId="2" ParentId="651" CreationDate="2010-09-03T07:19:03.367" Score="19" ViewCount="" Body="&lt;p&gt;I use 4. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My goal is to use the fewest spaces (to avoid horizontal scrolling) that make nesting easy to see, and 4 has been that magic number for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a related note, whoever said 8 chars was a reasonable indent size was just brain-damaged.&lt;/p&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-09-03T07:19:03.367" CommentCount="3" />
  <row Id="656" PostTypeId="2" ParentId="648" CreationDate="2010-09-03T07:32:15.483" Score="1" ViewCount="" Body="&lt;p&gt;First, if some task was assigned to me I would break it down into subtasks.I would estimate the time for each subtasks and probably with subtasks I would be able to find the problematic area and hence I would be able to forecast how long it would take to a certain extent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But still all the planning would help only to a certain extent. Only when you start coding you can find the exact issues&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-09-03T07:32:15.483" />
  <row Id="657" PostTypeId="2" ParentId="57" CreationDate="2010-09-03T07:32:43.203" Score="10" ViewCount="" Body="&lt;p&gt;All of the arguments for tabs are great in theory. But...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In theory, practice and theory are the&#xA;  same. In practice, they are not.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes, with tabs you can decide your indentation level. And yes, you can use a combination of tabs and spaces to align things. And in an ideal world it would &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In reality, you can't see the difference between spaces and tabs, they always seem to get mixed up when moving code around, and viewing the code in another program that has tabs set to 8 columns is a nuisance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used to use tabs. Then I started to work as part of a team and share code. I quickly became a proponent of spaces. So while I can sympathize with the utopia of tabs, I can't imagine not using spaces.&lt;/p&gt;&#xA;" OwnerUserId="152" LastActivityDate="2010-09-03T07:32:43.203" CommentCount="1" />
  <row Id="658" PostTypeId="2" ParentId="525" CreationDate="2010-09-03T07:38:11.180" Score="0" ViewCount="" Body="&lt;p&gt;You can give &lt;a href=&quot;http://www.zend.com/en/products/studio/downloads&quot; rel=&quot;nofollow&quot;&gt;Zend Studio&lt;/a&gt; a shot, pretty awesome when you can run your php code in the IDE itself.&lt;/p&gt;&#xA;" OwnerUserId="26" LastActivityDate="2010-09-03T07:38:11.180" />
  <row Id="659" PostTypeId="1" AcceptedAnswerId="713" CreationDate="2010-09-03T07:41:14.260" Score="5" ViewCount="405" Body="&lt;p&gt;I've often heard it said that listening to white noise can help avoid distractions and allows you to concentrate better when coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it true?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone ever tried it and was it successful? Does anyone still use it regularly to help them avoid distractions while developing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[&lt;a href=&quot;http://programmers.stackexchange.com/questions/344/what-music-do-you-code-to&quot;&gt;Related&lt;/a&gt;]&lt;/p&gt;&#xA;" OwnerUserId="134" LastActivityDate="2010-09-04T12:35:56.157" ClosedDate="2010-10-01T02:17:08.353" Title="Is it true that listening to white noise can help concentration by preventing distractions?" Tags="&lt;office&gt;&lt;distractions&gt;&lt;coding&gt;&lt;concentration&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="1" />
  <row Id="660" PostTypeId="2" ParentId="651" CreationDate="2010-09-03T07:42:48.703" Score="3" ViewCount="" Body="&lt;p&gt;I believe 4 spaces has become somewhat of a standard. I suppose because it is half of the traditional 8 column tab stop. It seems 2 spaces is also popular, particularly in SQL and HTML, presumably because that is half of 4 spaces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Historically, I preferred 3 spaces because I felt 2 wasn't visually sufficient and wanted to minimize the indentation. However, consistency is far more important. With more experience in avoiding deep nesting (in source code) the additional couple spaces don't matter. Not being able to invert if statements and extract methods in SQL and HTML is likely why many people prefer 2 spaces for those files.&lt;/p&gt;&#xA;" OwnerUserId="152" LastActivityDate="2010-09-03T07:42:48.703" />
  <row Id="663" PostTypeId="1" AcceptedAnswerId="707" CreationDate="2010-09-03T07:48:02.507" Score="8" ViewCount="278" Body="&lt;p&gt;In the final year of my class, we have &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Distributed Systems&lt;/li&gt;&#xA;&lt;li&gt;Visual C++&lt;/li&gt;&#xA;&lt;li&gt;Design of Unix OS&lt;/li&gt;&#xA;&lt;li&gt;Neural Networks and Fuzzy Systems&lt;/li&gt;&#xA;&lt;li&gt;Java 2 Enterprise Edition&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What according to you guys, should be the perfect combination of courses a student opt in his/her CS curriculum?&lt;/p&gt;&#xA;" OwnerUserId="26" LastEditorUserId="6" LastEditorDisplayName="" LastEditDate="2010-09-04T18:36:54.297" LastActivityDate="2010-09-06T10:51:20.117" Title="What should be the ideal computer science and engineering course topics?" Tags="&lt;computer-science&gt;&lt;courses&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="2" />
  <row Id="664" PostTypeId="2" ParentId="648" CreationDate="2010-09-03T07:48:31.953" Score="4" ViewCount="" Body="&lt;p&gt;&quot;6-8 weeks.&quot; is a good first guess.&lt;/p&gt;&#xA;" OwnerUserId="134" LastActivityDate="2010-09-03T07:48:31.953" CommentCount="1" />
  <row Id="666" PostTypeId="2" ParentId="552" CreationDate="2010-09-03T08:01:20.430" Score="26" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/John_D._Carmack&quot; rel=&quot;nofollow&quot;&gt;John Carmack&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not only is he responsible for the game engines behind the amazing early 3d games (like Doom and Quake) and continues to remain at the cutting edge of 3d development, he has also founded a aerospace company... as a hobby! Now that's the kind of hobby I want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He is also a supporter of open source software and manages to be part of a successful software business but still release his code as open source.&lt;/p&gt;&#xA;" OwnerUserId="134" LastEditorUserId="134" LastEditorDisplayName="" LastEditDate="2010-09-06T09:47:15.607" LastActivityDate="2010-09-06T09:47:15.607" CommunityOwnedDate="2010-09-17T19:05:49.223" CommentCount="3" />
  <row Id="667" PostTypeId="1" CreationDate="2010-09-03T08:03:35.280" Score="5" ViewCount="132" Body="&lt;p&gt;You are writing a style guide and you are at the chapter about breaking long lines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would be the best examples of long lines to demonstrate your rules of breaking long lines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The examples should be in a c-like syntax. I think it is best to keep the examples more or less language agnostic. You can use language specific features for extreme long lines like the many modifiers in java, the implements clause or the throws clause.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: this is not about the rules of how to break long lines. This is about collecting the best examples for the rules of how to break long lines. I have prepared &lt;a href=&quot;http://programmers.stackexchange.com/questions/661/how-do-you-break-and-indent-long-lines&quot;&gt;a question&lt;/a&gt; for the rules, but i wanted to collect the best examples first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please not break your long line, at least not much. just break it as much so that it is readable in this website. You can break your long line to your hearts content in &lt;a href=&quot;http://programmers.stackexchange.com/questions/661/how-do-you-break-and-indent-long-lines&quot;&gt;this question&lt;/a&gt; once we have a good set of example lines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One example per answer please.&lt;/p&gt;&#xA;" OwnerUserId="116" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:53:38.053" LastActivityDate="2010-10-02T15:53:38.053" Title="Writing a style guide, what are the best examples for breaking long lines?" Tags="&lt;style-guide&gt;&lt;indentation&gt;&lt;long-lines&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="668" PostTypeId="2" ParentId="651" CreationDate="2010-09-03T08:12:25.600" Score="6" ViewCount="" Body="&lt;p&gt;I prefer &lt;strong&gt;two spaces&lt;/strong&gt;, because:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;2 is a power of 2&lt;/li&gt;&#xA;&lt;li&gt;It's not too short to be unnoticed&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If a language construct requires unnecessary spacing, the code doesn't become &lt;em&gt;too &quot;dispersed&quot;&lt;/em&gt;.  The &lt;code&gt;switch&lt;/code&gt; statements in many languages are examples where excessive spacing is needed:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;switch (something) {&#xA;  option1:&#xA;    code;&#xA;    to_handle;&#xA;    it;&#xA;  option2:&#xA;    more;&#xA;    indented;&#xA;    code;&#xA;&amp;lt;--&amp;gt;    //not too big, is it?&#xA;}&#xA;code;&#xA;outside;&#xA;the_switch;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;If a language or a coding style encourages a lot of nested constructs, it just saves space.  Even making indentation 3 spaces long, it's already &lt;strong&gt;1.5 times wider&lt;/strong&gt;.  In my current project there are places, at which the code is indented 20 times -- 40 spaces is ok, but 60 or 80 would be an overkill.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-03T08:12:25.600" CommentCount="4" />
  <row Id="669" PostTypeId="2" ParentId="531" CreationDate="2010-09-03T08:30:08.480" Score="4" ViewCount="" Body="&lt;p&gt;I've bought an eBook Reader a couple of years ago; i think it's an essential tool for a programmer that has to read a lot to keep the axes sharpen (books, saved web articles, blog post ..).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just love it, it's always with me.&lt;/p&gt;&#xA;" OwnerUserId="74" LastActivityDate="2010-09-03T08:30:08.480" CommentCount="14" />
  <row Id="670" PostTypeId="1" AcceptedAnswerId="671" CreationDate="2010-09-03T08:31:21.147" Score="15" ViewCount="578" Body="&lt;p&gt;I always like to be learning a new languages or technologies to further my knowledge. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In work however I normally end up dealing with the same technologies and language the code-base was originally created in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you remain motivated to learn at home, even after a hard day's work?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This seems related to &lt;a href=&quot;http://programmers.stackexchange.com/questions/597/how-much-do-you-program-outside-of-work&quot;&gt;How-much-do-you-program-outside-of-work&lt;/a&gt; but I am looking more towards how to put in more hours outside work.&lt;/p&gt;&#xA;" OwnerUserId="64" LastEditorUserId="64" LastEditorDisplayName="" LastEditDate="2010-09-10T16:13:05.337" LastActivityDate="2010-09-17T23:53:33.760" Title="Learning at home after work beyond the 9 to 5" Tags="&lt;career&gt;&lt;learning&gt;&lt;motivation&gt;" AnswerCount="8" FavoriteCount="6" />
  <row Id="671" PostTypeId="2" ParentId="670" CreationDate="2010-09-03T08:40:06.713" Score="11" ViewCount="" Body="&lt;p&gt;I remain motivated because programming at home really relax my mind; it's like building a wooden galleon piece after piece, with patience, without pressure.&lt;br&gt;&#xA;Start a small pet project and fully enjoy it, pay attention to the details, fill your gaps, with no rush.&lt;/p&gt;&#xA;" OwnerUserId="74" LastActivityDate="2010-09-03T08:40:06.713" />
  <row Id="672" PostTypeId="2" ParentId="552" CreationDate="2010-09-03T08:41:08.723" Score="13" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/&quot; rel=&quot;nofollow&quot;&gt;Joel Spolsky&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was simply plodding along aimlessly programming till I started reading his blog.&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-03T08:41:08.723" CommunityOwnedDate="2010-09-17T19:05:49.223" CommentCount="2" />
  <row Id="673" PostTypeId="2" ParentId="667" CreationDate="2010-09-03T09:09:35.220" Score="3" ViewCount="" Body="&lt;p&gt;Here's one line of Java from my hard drive:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private static void extractIndex(Connection conn, String indexName, String tableName, SortedMap&amp;lt;Integer, IndexColumn&amp;gt; columnList) throws SQLException {&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="113" LastActivityDate="2010-09-03T09:09:35.220" CommentCount="2" />
  <row Id="674" PostTypeId="2" ParentId="648" CreationDate="2010-09-03T09:16:10.517" Score="28" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/kFP1n.gif&quot; alt=&quot;http://dilbert.com/strips/comic/2009-12-07/&quot;&gt;&#xA;&lt;a href=&quot;http://dilbert.com/strips/comic/2009-12-07/&quot; rel=&quot;nofollow&quot;&gt;Link&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-03T09:16:10.517" CommentCount="4" />
  <row Id="677" PostTypeId="2" ParentId="358" CreationDate="2010-09-03T10:03:35.297" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/M4_%28computer_language%29&quot; rel=&quot;nofollow&quot;&gt;M4&lt;/a&gt; (the macro engine used by &lt;a href=&quot;http://en.wikipedia.org/wiki/Ratfor&quot; rel=&quot;nofollow&quot;&gt;Ratfor&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Autoconf&quot; rel=&quot;nofollow&quot;&gt;autoconf&lt;/a&gt;.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used it in an in-house software build automation system.&lt;/p&gt;&#xA;" OwnerUserId="113" LastActivityDate="2010-09-03T10:03:35.297" CommunityOwnedDate="2010-09-30T22:46:32.880" CommentCount="1" />
  <row Id="678" PostTypeId="1" AcceptedAnswerId="706" CreationDate="2010-09-03T10:04:46.667" Score="16" ViewCount="394" Body="&lt;p&gt;I know some people are massive proponents of test driven development. I have used unit tests in the past, but only to test operations that can be tested easily or which I believe will quite possibly be correct. Complete or near complete code coverage sounds like it would take a lot of time.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What projects do you use test-driven development for? Do you only use it for projects above a certain size?&lt;/li&gt;&#xA;&lt;li&gt;Should I be using it or not? Convince me!&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="86" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:16:58.187" LastActivityDate="2010-09-20T16:35:29.487" Title="Test driven development - convince me!" Tags="&lt;programming-practices&gt;&lt;unit-testing&gt;&lt;tdd&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="3" />
  <row Id="679" PostTypeId="2" ParentId="109" CreationDate="2010-09-03T10:06:05.443" Score="8" ViewCount="" Body="&lt;p&gt;Directly using &lt;strong&gt;variables without defining it in Javascript&lt;/strong&gt;.&#xA;Hence variables will have global scope. And programmer spends whole time debugging the scripts!!&lt;/p&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-09-03T10:06:05.443" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="1" />
  <row Id="680" PostTypeId="2" ParentId="238" CreationDate="2010-09-03T10:24:55.947" Score="11" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Tron_%28film%29&quot; rel=&quot;nofollow&quot;&gt;Tron&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;A Disney movie where the protagonist is a software engineer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apparently the guy got the idea for the movie from looking at Pong.&lt;/p&gt;&#xA;" OwnerUserId="64" LastEditorUserId="64" LastEditorDisplayName="" LastEditDate="2010-09-15T09:10:51.853" LastActivityDate="2010-09-15T09:10:51.853" CommentCount="2" />
  <row Id="681" PostTypeId="1" CreationDate="2010-09-03T10:26:14.763" Score="12" ViewCount="603" Body="&lt;p&gt;I am curious as to which language is closest to pseudocode. Back it up with an example.&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T11:37:36.550" LastActivityDate="2010-10-12T15:13:31.917" Title="What language is most like pseudocode?" Tags="&lt;programming-languages&gt;&lt;pseudocode&gt;" AnswerCount="14" CommentCount="1" />
  <row Id="682" PostTypeId="2" ParentId="39" CreationDate="2010-09-03T10:29:47.927" Score="80" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Debuggers don't remove bugs. They only&#xA;  show them in slow motion.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;mdash; Unknown&lt;/p&gt;&#xA;" OwnerUserId="120" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-27T14:46:39.837" LastActivityDate="2010-09-27T14:46:39.837" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="2" />
  <row Id="683" PostTypeId="2" ParentId="154" CreationDate="2010-09-03T10:57:36.613" Score="6" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/HYKBj.gif&quot; alt=&quot;http://www.smbc-comics.com/index.php?db=comics&amp;amp;id=1989&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-03T10:57:36.613" CommentCount="4" />
  <row Id="684" PostTypeId="2" ParentId="634" CreationDate="2010-09-03T11:20:01.240" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C# properties in Java&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider the following Java code&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/**&#xA; * Name of user&#xA; */&#xA;private String name;&#xA;&#xA;/**&#xA; * Gets name of user&#xA; * @return Name of user&#xA; */&#xA;public String getName() {&#xA;    return this.name;&#xA;}&#xA;&#xA;/**&#xA; * Sets name of user. &#xA; * @param name&#xA; */&#xA;public void setName(final String name) {&#xA;    this.name = name;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;There are many many reasons why I hate this, all &lt;a href=&quot;http://programmers.stackexchange.com/questions/501/what-syntax-element-do-you-hate-most-in-a-programming-language-you-use-frequently/606#606&quot;&gt;outlined here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now consider the equivalent C# code&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/// &amp;lt;summary&amp;gt;&#xA;/// Get ID&#xA;/// &amp;lt;/summary&amp;gt;&#xA;public int ID&#xA;{&#xA;    get; set;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(I think that documentation block is correct)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See the difference?&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-03T11:20:01.240" CommunityOwnedDate="2011-03-10T10:29:28.597" CommentCount="8" />
  <row Id="685" PostTypeId="2" ParentId="368" CreationDate="2010-09-03T11:29:59.147" Score="3" ViewCount="" Body="&lt;p&gt;TMHO, this is because of the time needed to start the VM in the browser. If an application starts slowly, people will only remember that. Because, long starting time is really annoying. Really. One of my co-worker told me that he doesn't use Firefox because it is too slow. (?!?). But, Yes, Ok, on windows, Firefox takes a huge amount of time to show up. According to him, this app is slow, he made his mind about the general speed of it.&lt;/p&gt;&#xA;" OwnerUserId="133" LastActivityDate="2010-09-03T11:29:59.147" CommentCount="2" />
  <row Id="686" PostTypeId="2" ParentId="681" CreationDate="2010-09-03T11:33:30.207" Score="20" ViewCount="" Body="&lt;p&gt;I couldn't find a source, but a common quote about Python is&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Python is executable pseudocode. Perl is executable line noise. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You can take a look at some &lt;a href=&quot;http://www.amk.ca/python/simple/&quot; rel=&quot;nofollow&quot;&gt;sample Python scripts&lt;/a&gt;, too.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-03T11:33:30.207" CommentCount="4" />
  <row Id="689" PostTypeId="2" ParentId="616" CreationDate="2010-09-03T11:40:43.360" Score="6" ViewCount="" Body="&lt;p&gt;I'm a big fan of stepping away from the computer and doing something else for a while.  Fresh eyes and a clear brain work wonders on a problem.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-03T11:40:43.360" />
  <row Id="690" PostTypeId="2" ParentId="616" CreationDate="2010-09-03T11:43:32.620" Score="2" ViewCount="" Body="&lt;p&gt;I try to have two or three decently sized tasks before me at all times, so if I get stuck on one, I can take a break and work on the other. This allows me to be productive towards some goal, even if it isn't my primary task at the time. However, if I hit a wall really hard, sometimes I just need to walk away - take 15 minutes, grab a cup of coffee or a soda, take a walk, etc.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-03T11:43:32.620" />
  <row Id="691" PostTypeId="2" ParentId="154" CreationDate="2010-09-03T11:57:42.120" Score="25" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/f0MUr.png&quot; alt=&quot;Simplicity&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-09-03T11:57:42.120" CommentCount="6" />
  <row Id="692" PostTypeId="2" ParentId="154" CreationDate="2010-09-03T12:09:57.660" Score="3" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/zwvVX.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="139" LastActivityDate="2010-09-03T12:09:57.660" />
  <row Id="693" PostTypeId="2" ParentId="663" CreationDate="2010-09-03T12:21:39.293" Score="5" ViewCount="" Body="&lt;p&gt;Following set of topics are good enough for Computer Science Courses&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Operating Systems + Lab&lt;/li&gt;&#xA;&lt;li&gt;Computer Networks + Lab&lt;/li&gt;&#xA;&lt;li&gt;Database Systems + Lab&lt;/li&gt;&#xA;&lt;li&gt;Algorithms Design, Analysis and Complexity + Lab&lt;/li&gt;&#xA;&lt;li&gt;Data structures and Object Oriented Programming Concepts + Lab&lt;/li&gt;&#xA;&lt;li&gt;Computer Organization and Architecture&lt;/li&gt;&#xA;&lt;li&gt;Compiler Design and Analysis + Lab&lt;/li&gt;&#xA;&lt;li&gt;Finite Automata and Formal Languages&lt;/li&gt;&#xA;&lt;li&gt;Principles of Programming Languages&lt;/li&gt;&#xA;&lt;li&gt;Software Engineering &lt;/li&gt;&#xA;&lt;li&gt;Computer Graphics&lt;/li&gt;&#xA;&lt;li&gt;Management Information Systems&lt;/li&gt;&#xA;&lt;li&gt;Information Security + Lab&lt;/li&gt;&#xA;&lt;li&gt;Artificial Intelligence&lt;/li&gt;&#xA;&lt;li&gt;Graph Theory &amp;amp; Discrete mathematics&lt;/li&gt;&#xA;&lt;li&gt;Micro processors + Same Lab&lt;/li&gt;&#xA;&lt;li&gt;Software Quality Assurance&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="120" LastEditorUserId="120" LastEditorDisplayName="" LastEditDate="2010-09-06T06:44:55.927" LastActivityDate="2010-09-06T06:44:55.927" CommentCount="1" />
  <row Id="694" PostTypeId="2" ParentId="667" CreationDate="2010-09-03T12:37:38.233" Score="1" ViewCount="" Body="&lt;p&gt;One type of line to handle it the long chain:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var x = whatever.Thing.OtherThing.GetMyThing().With(thisThing).Somethingy.GetNode().Something().Foo.Bar;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-03T12:37:38.233" />
  <row Id="695" PostTypeId="2" ParentId="681" CreationDate="2010-09-03T12:42:45.010" Score="6" ViewCount="" Body="&lt;p&gt;BASIC (particularly the numberless, subroutine-filled form acceptable to Microsoft's QBASIC) can be very pseudocodish:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    IF Temperature$ &amp;gt; 10 THEN&#xA;       PRINT &quot;The temperature is too high: &quot; + Temperature$&#xA;       Do_Something_About_The_Temperature()&#xA;    ELSE&#xA;       Dont_Bother()&#xA;    END IF&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-09-03T12:42:45.010" />
  <row Id="696" PostTypeId="1" CreationDate="2010-09-03T12:46:50.100" Score="6" ViewCount="1125" Body="&lt;p&gt;Disdain for PHP as a language seems unparalleled. It is also one of the most popular server-side languages?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why do you Hate/Love PHP?&lt;/p&gt;&#xA;" OwnerUserId="159" LastEditorUserId="122" LastEditorDisplayName="" LastEditDate="2010-09-03T14:03:38.407" LastActivityDate="2010-10-19T10:55:04.293" ClosedDate="2010-12-18T13:31:31.123" Title="Why do you hate/love PHP" Tags="&lt;programming-languages&gt;&lt;php&gt;" AnswerCount="15" CommentCount="3" FavoriteCount="2" />
  <row Id="697" PostTypeId="2" ParentId="663" CreationDate="2010-09-03T12:51:24.003" Score="0" ViewCount="" Body="&lt;p&gt;It could be in one of the classes you mentioned, but there should be a class that contains some sort of capstone project. By that, I mean a large, complicated project that must be completed by a team. &lt;/p&gt;&#xA;" OwnerUserId="29" LastActivityDate="2010-09-03T12:51:24.003" />
  <row Id="698" PostTypeId="2" ParentId="681" CreationDate="2010-09-03T12:53:26.137" Score="3" ViewCount="" Body="&lt;p&gt;This is code that I actually wrote for a graph exploration. It's basically the exact thing you find in the psuedo code. Mmmm, Python:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;def graphExplore(graph):&#xA;    global previsit, postvisit&#xA;    for node in graph:&#xA;        node.visited = False&#xA;&#xA;    for node in graph:&#xA;        explore(node)&#xA;&#xA;def explore(node):&#xA;    global previsit, postvisit&#xA;&#xA;    if not node.visited:&#xA;        node.visited = True&#xA;        previsit.append(node)&#xA;        print node.name&#xA;        for edge in node.outedges:&#xA;            explore(edge        &#xA;        postvisit.append(node))&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="33" LastActivityDate="2010-09-03T12:53:26.137" />
  <row Id="699" PostTypeId="1" AcceptedAnswerId="718" CreationDate="2010-09-03T12:56:38.343" Score="12" ViewCount="331" Body="&lt;p&gt;In the ever changing world of programming, how often to you catch up on a new language or technology? I have heard it said that one should learn a new language yearly. Is that always true? &lt;/p&gt;&#xA;" OwnerUserId="67" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-14T02:13:37.280" LastActivityDate="2011-03-25T10:35:39.973" Title="How often do you expand your skill set?" Tags="&lt;programming-languages&gt;&lt;career&gt;&lt;learning&gt;&lt;skills&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="1" />
  <row Id="700" PostTypeId="1" CreationDate="2010-09-03T12:57:31.243" Score="5" ViewCount="211" Body="&lt;p&gt;Should devs now move more towards doing Business Intelligence type development etc&lt;/p&gt;&#xA;" OwnerUserId="160" LastActivityDate="2010-10-14T12:09:51.687" Title="What should the future role of database developers be, given the existence of tools like 'spring'" Tags="&lt;database-development&gt;&lt;spring&gt;&lt;sql&gt;&lt;future&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="703" PostTypeId="2" ParentId="699" CreationDate="2010-09-03T13:02:43.447" Score="4" ViewCount="" Body="&lt;p&gt;Unless you want to get stuck in a niche (for example, those godforsaken Cobol programmers), you need to keep learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Keep your ear to the ground to figure out what's new and cool (read blogs, talk to other devs, etc)&lt;/li&gt;&#xA;&lt;li&gt;Try to build stuff in your own time with technologies you think are cool&lt;/li&gt;&#xA;&lt;li&gt;Encourage your boss to let you use cool new technologies&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-03T13:02:43.447" CommentCount="5" />
  <row Id="704" PostTypeId="2" ParentId="681" CreationDate="2010-09-03T13:09:32.620" Score="1" ViewCount="" Body="&lt;p&gt;Python and Basic. VB is part of the Basic family, so that would count too. &lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-09-03T13:09:32.620" />
  <row Id="705" PostTypeId="2" ParentId="678" CreationDate="2010-09-03T13:13:18.233" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Whenever your client can be supplied more effectively (they will possibly relate well to tests - and it will at least cut down on end-of-project discussion)&lt;/li&gt;&#xA;&lt;li&gt;Whenever it would take longer keep your co-developers informed on EVERYTYHING in the code than to put effort in building the test - and this is sooner than you may think&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9" LastActivityDate="2010-09-03T13:13:18.233" />
  <row Id="706" PostTypeId="2" ParentId="678" CreationDate="2010-09-03T13:14:48.893" Score="9" ViewCount="" Body="&lt;p&gt;Ok, some advantages to TDD:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It means you end up with more tests.  Everyone likes &lt;em&gt;having&lt;/em&gt; tests, but few people like &lt;em&gt;writing&lt;/em&gt; them.  Building test-writing into your development flow means you end up with more tests.&lt;/li&gt;&#xA;&lt;li&gt;Writing to a test forces you to think about the testability of your design, and testable design is &lt;em&gt;almost&lt;/em&gt; always better design.  It's not entirely clear to me why this happens to be the case, but my experience and that of most TDD evangelists seems to bear it out.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.ipd.uka.de/mitarbeiter/muellerm/publications/edser03.pdf&quot; rel=&quot;nofollow&quot;&gt;Here's a study&lt;/a&gt; saying that although TDD takes a bit longer to write, there's a good return on investment because you get higher quality code, and therefore fewer bugs to fix.&lt;/li&gt;&#xA;&lt;li&gt;It gives you confidence in refactoring.  It's a great feeling to be able to change one system without worrying about breaking everything else because it's pretty well covered by unit tests.&lt;/li&gt;&#xA;&lt;li&gt;You almost never get a repeat bug, since every one you find should get a test before it gets a fix.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;You asked to be convinced, so these were benefits.  See &lt;a href=&quot;http://programmers.stackexchange.com/questions/206/always-and-only-tdd&quot;&gt;this question&lt;/a&gt; for a more balanced view.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-03T13:14:48.893" CommentCount="3" />
  <row Id="707" PostTypeId="2" ParentId="663" CreationDate="2010-09-03T13:15:15.833" Score="2" ViewCount="" Body="&lt;p&gt;I think that computer science courses should be mathematical and theory intensive, while engineering courses should be more applied.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Topics covered in a computer science curriculum should include discrete mathematics, at least single variable calculus if not multivariable calculus and differential equations, statistics, automata theory, graph theory, complexity theory, analysis of algorithms, algorithm design and implementation, and data structure design and implementation. Electives would include topics such as computational sciences (biology, physics, chemistry), machine learning, computer vision, image processing, artificial intelligence, design of programming languages, compiler design, security (cryptography as as example of an important topic), and operating systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software engineering should include the same mathematical background - discrete mathematics, calculus (at least single variable), and statistics. Other courses should be requirements engineering, architecture, design, testing, process, software usability/HCI, and formal methods. An overview of computer engineering (hardware, digital logic, digital circuits, etc) and computer science (automata theory, formal languages) should be required. There should also be room for a sequence of mathematics, computer science, and or computer engineering electives as computer science is the foundation of software engineering (in the same manner that physics is the foundation of mechanical engineering) and computer engineering is relevant to anyone developing software on low-level systems such as microcontrollers. Software engineering electives should include different types of software systems - distributed, concurrent, enterprise, web, embedded, real-time, along with additional courses on specific process models and methodologies (agile, CMMI).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have no experience with computer engineering, so I can't comment on that. I would suspect that such a program would focus on hardware, low-level programming (assembly, C, maybe C++), embedded systems, and computer architectures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, all programs should have room for a number of liberal arts and free electives. I feel that these, in most  cases, should be used for communication, business, and social science (psychology, sociology, ethics) courses. It's important to get out of the technical world and learn about how people interact and how businesses function so that you can be more effective at work.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;You might be interested in &lt;a href=&quot;http://www.rit.edu/&quot; rel=&quot;nofollow&quot;&gt;my university&lt;/a&gt;'s &lt;a href=&quot;http://www.cs.rit.edu/programs/ugrad/curriculum&quot; rel=&quot;nofollow&quot;&gt;Computer Science&lt;/a&gt;, &lt;a href=&quot;http://www.se.rit.edu/?q=node/239&quot; rel=&quot;nofollow&quot;&gt;Software Engineering&lt;/a&gt;, and &lt;a href=&quot;http://www.ce.rit.edu/academics/bsce.htm&quot; rel=&quot;nofollow&quot;&gt;Computer Engineering&lt;/a&gt; curricula. I used these and my own research into the boundaries of CS/SE/CE to answer this question.&lt;/p&gt;&#xA;" OwnerUserId="4" LastEditorUserId="4" LastEditorDisplayName="" LastEditDate="2010-09-06T10:51:20.117" LastActivityDate="2010-09-06T10:51:20.117" />
  <row Id="709" PostTypeId="2" ParentId="696" CreationDate="2010-09-03T13:28:22.093" Score="3" ViewCount="" Body="&lt;p&gt;Here are some websites describing problems with PHP:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2008/05/php-sucks-but-it-doesnt-matter.html&quot; rel=&quot;nofollow&quot;&gt;PHP sucks, but it doesn't matter&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://toykeeper.net/soapbox/php_problems/&quot; rel=&quot;nofollow&quot;&gt;Problems with PHP&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.bitstorm.org/edwin/en/php/&quot; rel=&quot;nofollow&quot;&gt;What I don't like about PHP&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.tnx.nl/php.html&quot; rel=&quot;nofollow&quot;&gt;PHP in contrast to Perl&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-09-03T13:28:22.093" />
  <row Id="710" PostTypeId="2" ParentId="659" CreationDate="2010-09-03T13:31:31.707" Score="1" ViewCount="" Body="&lt;p&gt;I've got tinnitus, that definitely doesn't help with my concentration! :)&lt;/p&gt;&#xA;" OwnerUserId="154" LastActivityDate="2010-09-03T13:31:31.707" />
  <row Id="711" PostTypeId="2" ParentId="659" CreationDate="2010-09-03T13:40:05.253" Score="1" ViewCount="" Body="&lt;p&gt;I believe that white noise used to cover actual annoying sounds around you when you code is better than been disturbed by those sounds (like phone calls, etc.) and better than listen to music which distract you or at least use a part of your brain power. White noise, like Sea Waves or Wind in the trees have the &quot;advantage&quot; of been &quot;meaningless&quot;, so less &quot;disturbing&quot;.&lt;/p&gt;&#xA;" OwnerUserId="133" LastActivityDate="2010-09-03T13:40:05.253" CommentCount="1" />
  <row Id="712" PostTypeId="2" ParentId="696" CreationDate="2010-09-03T13:42:58.683" Score="11" ViewCount="" Body="&lt;p&gt;I could list 100 things but it basically all boils down to its inherent sloppiness.  The type system (if that's what it is) is a joke and the many &lt;a href=&quot;http://stackoverflow.com/questions/146329/what-is-the-worst-gotcha-youve-experienced/1855572#1855572&quot;&gt;implicit conversions&lt;/a&gt; and PHP's fail-slow philosophy work against the programmer by disguising defective code.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-03T13:42:58.683" />
  <row Id="713" PostTypeId="2" ParentId="659" CreationDate="2010-09-03T14:03:51.967" Score="2" ViewCount="" Body="&lt;p&gt;I actually used to work in an environment where they pumped-in a background hum of white noise, presumably for this reason.  It was subtle enough that I didn't notice it unless I was specifically looking for it (which might imply it was doing its job?), but one of my co-workers absolutely &lt;b&gt;hated&lt;/b&gt; it.  So I guess it's a YMMV thing, in a pretty big way.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-03T14:03:51.967" CommentCount="1" />
  <row Id="714" PostTypeId="2" ParentId="648" CreationDate="2010-09-03T14:04:57.157" Score="0" ViewCount="" Body="&lt;p&gt;&quot;How much will it cost?&quot;&#xA;&quot;It depends on what you want me to do.&quot;&#xA;[Different things take different amount amounts of time, effort and resources to put together.] &lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-09-03T14:04:57.157" />
  <row Id="715" PostTypeId="2" ParentId="696" CreationDate="2010-09-03T14:14:51.090" Score="1" ViewCount="" Body="&lt;p&gt;Because I'm not being fair.  In a comment elsewhere, I referred to PHP as &quot;Perl's Retarded Cousin.&quot;  That's because the one time I've had to work with it professionally was when it was the back-end of a project, where I found it absolutely excruciating.  I've done a lot of Perl so I picked up the syntax quickly enough, but I was gobsmacked at how little support there was for what seemed to me like very basic things, such as command-line parsing or forking.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And that's not PHP's strength.  PHP's strong suit is on the &lt;b&gt;front&lt;/b&gt; end, where you can quickly design and maintain some very cool dynamic web pages.  Complaining about the back end is like ... I dunno, like saying some souped-up muscle car is a piece of crap because it keeps getting stuck in the mud every time I take it off-roading.  That's just not what it was designed to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nevertheless, my experience with PHP involved sliding into ditches, getting stuck so deep in the mud I had to climb out through a window, rolling it a couple of times, and picking losing fights with a whole bunch of trees.  Screw PHP.&lt;/p&gt;&#xA;" OwnerUserId="17" LastEditorUserId="17" LastEditorDisplayName="" LastEditDate="2010-09-03T14:21:53.687" LastActivityDate="2010-09-03T14:21:53.687" CommentCount="2" />
  <row Id="716" PostTypeId="2" ParentId="648" CreationDate="2010-09-03T14:15:39.543" Score="24" ViewCount="" Body="&lt;p&gt;From &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/020161622X&quot; rel=&quot;nofollow&quot;&gt;The Pragmatic Programmer: From Journeyman to Master&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;What to Say When Asked for an Estimate&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;You say &quot;I'll get back to you.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;You almost always get better results if you slow the process down and spend some time going through the steps we describe in this section. Estimates given at the coffee machine will (like the coffee) come back to haunt you.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In the section, the authors recommend the following process:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Determine the accuracy that you need. Based on the duration, you can quote the estimate in different precision. Saying &quot;5 to 6 months&quot; is different than saying &quot;150 days&quot;. If you slip a little into the 7th month, you're still pretty accurate. But if you slip into the 180th or 210th day, not so much.&lt;/li&gt;&#xA;&lt;li&gt;Make sure you understand what is being asked. Determine the scope of the problem.&lt;/li&gt;&#xA;&lt;li&gt;Model the system. A model might be a mental model, diagrams, or existing data records. Decompose this model and build estimates from the components. Assign values and error ranges (+/-) to each value.&lt;/li&gt;&#xA;&lt;li&gt;Calculate the estimate based on your model.&lt;/li&gt;&#xA;&lt;li&gt;Track your estimates. Record information about the problem you are estimating, your estimate, and the actual values.&lt;/li&gt;&#xA;&lt;li&gt;Other things to track include requirements, risk, and validation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-03T14:15:39.543" CommentCount="7" />
  <row Id="717" PostTypeId="2" ParentId="648" CreationDate="2010-09-03T14:20:10.467" Score="2" ViewCount="" Body="&lt;p&gt;&quot;Two weeks!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously.  My first estimate is always two weeks.  Because I have some sort of bizarre mental block that makes me think everything sounds like it'll two weeks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I try to work around it, try to really &lt;b&gt;think&lt;/b&gt; about how long I think something will take, trying to identify all the potential trouble spots and bits that look too black-box-y for me to be accurately estimating.  And try to recognize that if my answer is &quot;Two weeks!&quot;, I've likely failed to do so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pretty much every good manager I've had has learned to recognize &quot;Two weeks!&quot; as an answer that requires a mild verbal pimp-slap in response.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-03T14:20:10.467" />
  <row Id="718" PostTypeId="2" ParentId="699" CreationDate="2010-09-03T14:21:11.040" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;How often do you expand your skill set?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should expand your skill set continuously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I have heard it said that one should learn a new language yearly. Is that always true?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not necessarily, as most languages take more than a year of experience to really know inside and out.   Do try to expand outside of your world of knowledge though for example if you've never tried functional programming, there are a lot of good lessons to learn for all programming by knowing some functional programming languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you haven't tried dynamically typed languages and you'e only used statically typed languages, then try that as well.  If you've only used managed languages with garbage collection, then try a more native language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've never done socket communication then regardless of the language try it out.  Your time doesn't always need to be spent learning basics of new languages, often you can learn concepts that apply to all languages equally. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;When to learn it?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are a good programmer then you love to program, even on your own time.  So take the time and learn things on your own time after work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't use it on your job because it's not appropriate you could always try to find a job that is more cutting edge as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How to discover what to learn?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's always a safe bet to learn what's hot.  And figuring out what's hot is easy if you are following some popular twitter figures, and reading blogs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But above all if you have a big interest in something then consider learning that instead.  It will make you unique and stand out above the rest. &lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-03T15:02:15.630" LastActivityDate="2010-09-03T15:02:15.630" CommentCount="3" />
  <row Id="719" PostTypeId="2" ParentId="648" CreationDate="2010-09-03T14:22:02.553" Score="13" ViewCount="" Body="&lt;p&gt;Software estimation is the most difficult single task in software engineering- a close second being requirements elicitation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a lot of tactics for creating them, all based on getting good requirements first.  But when your back's against the wall and they refuse to give you better details, Fake It:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Take a good look at the requirements you have.&lt;/li&gt;&#xA;&lt;li&gt;Make assumptions to fill in the gaps based on your best guess of what they want&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Write down &lt;em&gt;all&lt;/em&gt; your assumptions&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Make them sit down, read, and agree to your assumptions (or, if you're lucky, get them to give in and give you real requirements).  &lt;/li&gt;&#xA;&lt;li&gt;Now you have detailed requirements that you can estimate from.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It's like my mother used to threaten when I was a kid &quot;Hurry up and pick out some clothes, or &lt;em&gt;I'll&lt;/em&gt; pick them out for you!&quot;&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="6" LastEditorDisplayName="" LastEditDate="2010-09-26T18:38:04.727" LastActivityDate="2010-09-26T18:38:04.727" CommentCount="1" />
  <row Id="720" PostTypeId="2" ParentId="681" CreationDate="2010-09-03T14:39:19.760" Score="5" ViewCount="" Body="&lt;p&gt;There's no fixed definition of psuedocode.  I find that people tend to write psuedocode similar to languages they prefer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They then justify this by saying, &quot;That's why I like that language!&quot;, which may or may not be true.&lt;/p&gt;&#xA;" OwnerUserId="97" LastActivityDate="2010-09-03T14:39:19.760" CommentCount="1" />
  <row Id="721" PostTypeId="2" ParentId="699" CreationDate="2010-09-03T14:49:42.740" Score="3" ViewCount="" Body="&lt;p&gt;You should be expanding you skills constantly. Sometimes, all you need to is knowledge to your existing skill sets. You can always learn about some new library, or some new tool, or the new version of the tools you allready know. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;About once a year, you should really try to learn something big. Learn a new language (especially one in a paradigm you don't currently know) or learn to develop on a new platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I follow a handful of &lt;a href=&quot;http://programmers.stackexchange.com/questions/565/favourite-programming-blog-posts&quot;&gt;blogs&lt;/a&gt; and &lt;a href=&quot;http://programmers.stackexchange.com/questions/282/what-are-the-best-podcasts&quot;&gt;podcasts&lt;/a&gt; just to know what what is going on in the industry. I also stay active in local user groups to see what other people are learning and working on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And of coarse, there is always Stack Overflow. I've learned a lot asking, reading, and answering questions on the site.&lt;/p&gt;&#xA;" OwnerUserId="29" LastActivityDate="2010-09-03T14:49:42.740" CommentCount="1" />
  <row Id="722" PostTypeId="2" ParentId="700" CreationDate="2010-09-03T14:50:03.253" Score="2" ViewCount="" Body="&lt;p&gt;Obviously, the role of database developers will be hacking in raw SQL into these cool frameworks.  As the size of data set grows, more &quot;native&quot; database code will be necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, designing database schemas that meet specific business requirements (and won't require major rewrites as they evolve) is still a task for humans.  Designing databases is still a complex task, and it seems that it's simplifying writing queries what such frameworks aid.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-03T14:50:03.253" />
  <row Id="723" PostTypeId="2" ParentId="539" CreationDate="2010-09-03T14:53:52.157" Score="9" ViewCount="" Body="&lt;p&gt;I use the default.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? Because I've reinstalled IDEs so many times I got fed up of tweaking the colour scheme each time.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-03T14:53:52.157" CommunityOwnedDate="2010-09-16T13:10:40.707" CommentCount="3" />
  <row Id="724" PostTypeId="1" AcceptedAnswerId="1241" CreationDate="2010-09-03T14:55:53.903" Score="17" ViewCount="818" Body="&lt;p&gt;When learning a new programming language you sometimes come across a language feature which &#xA;makes you wish you had it in your other programming languages that you know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some language feature which were at the time of learning very new to you and that you wish your other programming languages had.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example of this is &lt;a href=&quot;http://en.wikipedia.org/wiki/Generator_%28computer_science%29&quot; rel=&quot;nofollow&quot;&gt;generators&lt;/a&gt; in Python or C#.&#xA;Other examples may include list comprehensions in Python, template in C++ or LINQ in .NET or lazy evaluation in Haskell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What other semi-unique language features have you come across which were completely new and enlightening to you?  Are there other features of older programming languages which were unique and have fallen out of fashion?&lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-03T15:32:44.173" LastActivityDate="2010-10-28T02:28:15.763" Title="Killer semi-unique programming language features" Tags="&lt;programming-languages&gt;&lt;features&gt;" AnswerCount="19" FavoriteCount="4" />
  <row Id="725" PostTypeId="2" ParentId="326" CreationDate="2010-09-03T14:56:01.573" Score="2" ViewCount="" Body="&lt;p&gt;I really like &lt;a href=&quot;http://www.evernote.com/&quot; rel=&quot;nofollow&quot;&gt;Evernote&lt;/a&gt;; it's free, searchable and accessible from anywhere.&lt;/p&gt;&#xA;" OwnerUserId="74" LastActivityDate="2010-09-03T14:56:01.573" CommunityOwnedDate="2010-09-17T07:53:09.223" CommentCount="1" />
  <row Id="726" PostTypeId="2" ParentId="696" CreationDate="2010-09-03T14:56:02.483" Score="29" ViewCount="" Body="&lt;p&gt;Something I like:  They have very thorough and helpful documentation at &lt;a href=&quot;http://php.net&quot; rel=&quot;nofollow&quot;&gt;php.net&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something I don't like:  The fact that I have to use the documentation all the time.&lt;/p&gt;&#xA;" OwnerUserId="59" LastActivityDate="2010-09-03T14:56:02.483" CommentCount="3" />
  <row Id="727" PostTypeId="2" ParentId="678" CreationDate="2010-09-03T15:04:21.640" Score="6" ViewCount="" Body="&lt;p&gt;Robert C. Martin originally made these points - I can back them up from my own experience:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You will automatically build a regression test suite of unit tests as you go.&lt;/li&gt;&#xA;&lt;li&gt;You will hardly ever spend time debugging, as if you code yourself into a hole, it's easier to undo your code to the point when the last test passed, rather than crack open a debugger.&lt;/li&gt;&#xA;&lt;li&gt;Every few minutes you verify that your code works - all of it (or at least all of the behaviour covered by the tests, which if you're doing TDD is a very high percentage of it).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I pretty much do TDD all of the time, whether I'm working on production or play code; I find it difficult to code any other way these days. &lt;/p&gt;&#xA;" OwnerUserId="38" LastEditorUserId="38" LastEditorDisplayName="" LastEditDate="2010-09-03T16:16:20.703" LastActivityDate="2010-09-03T16:16:20.703" />
  <row Id="728" PostTypeId="2" ParentId="724" CreationDate="2010-09-03T15:06:47.513" Score="12" ViewCount="" Body="&lt;p&gt;Casting to &lt;code&gt;void*&lt;/code&gt; in C.  You can cast everything to raw bytes, and do &lt;strong&gt;whatever you want&lt;/strong&gt; with these data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Yes, nowadays &lt;em&gt;it's&lt;/em&gt; unique...)&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-03T15:06:47.513" CommentCount="6" />
  <row Id="729" PostTypeId="1" CreationDate="2010-09-03T15:08:14.930" Score="41" ViewCount="1103" Body="&lt;p&gt;As programmers we have a lot of inputs:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Ebooks &lt;/li&gt;&#xA;&lt;li&gt;Code snippets &lt;/li&gt;&#xA;&lt;li&gt;Interesting emails &lt;/li&gt;&#xA;&lt;li&gt;Documents&lt;/li&gt;&#xA;&lt;li&gt;Web articles &lt;/li&gt;&#xA;&lt;li&gt;Blog posts&lt;/li&gt;&#xA;&lt;li&gt;StackOverflow questions&lt;/li&gt;&#xA;&lt;li&gt;Podcasts&#xA;...&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Which tools do you use to store, organize, search and consult all of this stuff?&lt;br&gt;&#xA;Is there a silver bullet solution to handle this huge amount of data? &lt;/p&gt;&#xA;" OwnerUserId="74" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T16:51:45.220" LastActivityDate="2011-05-20T10:09:59.110" CommunityOwnedDate="2011-03-07T21:12:42.693" Title="How do you manage your knowledge base?" Tags="&lt;experience&gt;&lt;software&gt;" AnswerCount="22" CommentCount="6" FavoriteCount="21" />
  <row Id="730" PostTypeId="2" ParentId="729" CreationDate="2010-09-03T15:14:47.973" Score="1" ViewCount="" Body="&lt;p&gt;I don't have any single way- just an ad-hoc approach:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Bookmarks for online stuff&lt;/li&gt;&#xA;&lt;li&gt;Searches for mail&lt;/li&gt;&#xA;&lt;li&gt;Crappy memory for books&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-03T15:14:47.973" CommunityOwnedDate="2011-03-07T21:12:42.693" />
  <row Id="731" PostTypeId="2" ParentId="729" CreationDate="2010-09-03T15:16:14.197" Score="10" ViewCount="" Body="&lt;p&gt;I'm currently using OneNote from Microsoft to organize and keep record of most of my data, activities and notes. I'm using its online storage to have it automatically shared between my home desktop, personal notebook and office notebook. Unfortunately it has some limits (for example, no integration with eBooks) but it is the most comprehensive and powerful tool I've found.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tried for a while also Evernote and, while its online sharing is quite better and it can be used on Android (my current mobile platform), it is not powerful as OneNote.&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-04T13:13:53.700" LastActivityDate="2010-09-04T13:13:53.700" CommunityOwnedDate="2011-03-07T21:12:42.693" CommentCount="1" />
  <row Id="732" PostTypeId="2" ParentId="724" CreationDate="2010-09-03T15:29:11.030" Score="11" ViewCount="" Body="&lt;p&gt;Python's decorator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's extremely easy to implement memoization or timing of function using the decorator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example of a function timer.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class FuncTimer(object):&#xA;    &quot;&quot;&quot; Time how much time a function takes &quot;&quot;&quot;&#xA;    def __init__(self, fn):&#xA;        self.fn = fn&#xA;        self.memo = {}&#xA;        self.start_time = time.time()&#xA;    def __call__(self, *args):&#xA;        self.memo['return'] = self.fn(*args)&#xA;        print(&quot;Function '%s' took %u seconds&quot; % (self.fn.__name__, time.time() - self.start_time))&#xA;        return self.memo['return']&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now if you have a function foo you want to time, you can simply do this,&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;@FuncTimer&#xA;def foo():&#xA;    # foo's implememtation goes here&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You will see something like,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Function 'foo' took 3 seconds.&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-22T14:32:53.487" LastActivityDate="2010-09-22T14:32:53.487" CommentCount="4" />
  <row Id="733" PostTypeId="1" CreationDate="2010-09-03T15:31:23.407" Score="9" ViewCount="504" Body="&lt;p&gt;I'm pretty happy with my current job, but every now and then I get a yen to be using more of my math background (physics Ph.D. with a math/physics double major in undergrad).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just wondering, what kinds of math-intensive programming jobs are out there?&lt;/p&gt;&#xA;" OwnerUserId="151" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:53:32.437" LastActivityDate="2010-10-02T15:53:32.437" Title="What are the best jobs for programmers who love math?" Tags="&lt;career&gt;&lt;math&gt;" AnswerCount="9" CommentCount="2" FavoriteCount="2" />
  <row Id="734" PostTypeId="1" CreationDate="2010-09-03T15:33:58.493" Score="7" ViewCount="378" Body="&lt;p&gt;I see a lot of programmers (and, generally, tech people) using the old &quot;Classic theme&quot; in Windows instead of Aero (or Luna in Windows XP) for reasons like &quot;it is faster&quot; or &quot;I don't want eye-candy&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, most non-programmer users will have the default theme enabled, so these programmers will work (and, possibly, design and debug its application) in a non-standard environment (unless they are targeting Windows Server).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, a programmer that never uses Aero, may not even know that hovering a button gives it a &quot;halo&quot; effect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, should programmers try to have their workstation configuration as closest as possible to the real world, or should they rely on something/someone else (test team, UI design team, etc.) for this &quot;real world integration&quot;? And what if the programmer is working as a one-man-team (being designer, coder and tester)?&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-10-10T13:10:03.310" LastActivityDate="2010-10-11T15:22:44.317" Title="Should a programmer use the default environment?" Tags="&lt;work-environment&gt;&lt;windows&gt;&lt;bad-habits&gt;&lt;theme&gt;" AnswerCount="5" CommentCount="10" FavoriteCount="1" />
  <row Id="735" PostTypeId="2" ParentId="733" CreationDate="2010-09-03T15:36:15.777" Score="5" ViewCount="" Body="&lt;p&gt;Wolfram Research...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, there are a lot of interesting things for a math enthusiast, for example working at simulations and modelling in engineering. But of course most of the best math tasks will be academic (universities or other research institutes), as R&amp;amp;D in most companies just apply well known patterns to almost everything they do.&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-04T11:31:49.230" LastActivityDate="2010-09-04T11:31:49.230" CommentCount="1" />
  <row Id="736" PostTypeId="2" ParentId="734" CreationDate="2010-09-03T15:36:46.383" Score="10" ViewCount="" Body="&lt;p&gt;As a developer, it doesn't matter which one you use on your own time. If you are making a application with a GUI, especially one that uses custom components, you should test your application in both just to make sure that it looks acceptable.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-03T15:36:46.383" CommentCount="4" />
  <row Id="737" PostTypeId="2" ParentId="733" CreationDate="2010-09-03T15:40:29.043" Score="11" ViewCount="" Body="&lt;p&gt;Let me preface this by saying that I have only the barest entry-level experience with this sort of thing, but:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cryptography&lt;/li&gt;&#xA;&lt;li&gt;Game engine development (specifically physics engines)&lt;/li&gt;&#xA;&lt;li&gt;Anything dealing with image processing&lt;/li&gt;&#xA;&lt;li&gt;Statistical analysis (at financial companies, for example)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-03T15:40:29.043" CommentCount="2" />
  <row Id="739" PostTypeId="1" CreationDate="2010-09-03T15:52:33.253" Score="8" ViewCount="231" Body="&lt;p&gt;What is the recommended  User Account Control (UAC) setting when developing on Windows?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even on Win7 I find it annoying enough to turn it off (because it makes me more productive with it off) but sometimes I feel bad because I know I'll find more problems in my code if I leave it on.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-04T14:55:36.370" Title="Windows programming - should you leave UAC on?" Tags="&lt;windows&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="740" PostTypeId="2" ParentId="739" CreationDate="2010-09-03T15:54:53.327" Score="7" ViewCount="" Body="&lt;p&gt;The recommendation (even from Microsoft) is to leave it ON, and also to &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms165100.aspx&quot; rel=&quot;nofollow&quot;&gt;run your IDE unelevated&lt;/a&gt; whenever is possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of all, it let the programmer to live with the same &quot;annoyances&quot; a real world user will have (if you don't know it, would you program correctly around it?).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, disabling UAC and working as an administrator is as bad as in Unix to work as root (decades of common wise will tell you why that's bad).&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-04T13:10:24.693" LastActivityDate="2010-09-04T13:10:24.693" CommentCount="10" />
  <row Id="741" PostTypeId="2" ParentId="659" CreationDate="2010-09-03T16:00:39.310" Score="2" ViewCount="" Body="&lt;p&gt;I think there's some truth to it; I can't concentrate in a room with 2 people speaking, but I &lt;em&gt;can&lt;/em&gt; concentrate in a room with 20 people speaking. White noise, for those who don't know, is analogous to white light in that it's a noise that contains all the sonic spectrum. It can help concentration by making all additional noises indistinguishable from it, thus drowning out any distracting sounds, but it depends on the acoustics and some people may find it intrinsically unpleasant. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-03T16:00:39.310" />
  <row Id="742" PostTypeId="1" CreationDate="2010-09-03T16:01:59.057" Score="17" ViewCount="538" Body="&lt;p&gt;What are some good furniture offerings for those of us that sit around all day every day? I'm interested in chairs, desks, etc... Bonus points for posting images.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. Is the &lt;a href=&quot;http://www.geekdesk.com/&quot; rel=&quot;nofollow&quot;&gt;GeekDesk&lt;/a&gt; really as great as Stack Overflow would have us believe? That's a lot of cheddar for an adjustable table.&lt;/p&gt;&#xA;" OwnerUserId="13" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:56:05.350" LastActivityDate="2010-10-02T15:56:05.350" Title="Good furniture for programmers" Tags="&lt;office&gt;&lt;furniture&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="6" />
  <row Id="743" PostTypeId="2" ParentId="67" CreationDate="2010-09-03T16:07:26.130" Score="4" ViewCount="" Body="&lt;p&gt;I'm surprised no one has mentioned these:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://haacked.com/&quot; rel=&quot;nofollow&quot;&gt;you've been HAACKED&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://weblogs.asp.net/scottgu/&quot; rel=&quot;nofollow&quot;&gt;ScottGu's Blog&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://ayende.com/Blog/&quot; rel=&quot;nofollow&quot;&gt;Ayende @ Rahien&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="13" LastActivityDate="2010-09-03T16:07:26.130" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="744" PostTypeId="2" ParentId="742" CreationDate="2010-09-03T16:14:07.133" Score="9" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://hermanmiller.com/Products/Aeron-Chairs&quot; rel=&quot;nofollow&quot;&gt;Aeron chair&lt;/a&gt; by Herman Miller.  So expensive, but I'm in one now at work and it's awesome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/JfGCq.jpg&quot; alt=&quot;Aeron Chair pic&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-03T16:14:07.133" CommentCount="14" />
  <row Id="745" PostTypeId="1" AcceptedAnswerId="832" CreationDate="2010-09-03T16:17:41.107" Score="16" ViewCount="911" Body="&lt;p&gt;What methods do you use to stay awake and alert while working?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I drink coffee non stop throughout the day.  But I've also heard of this thing called exercise that should help too.  Does anyone else have tips and tricks to stay more awake and alert while working?  Redbull? Maybe a magic pill that won't require me to sleep?&lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-12-12T13:13:48.377" LastActivityDate="2010-12-12T13:13:48.377" Title="Staying alert and awake while coding" Tags="&lt;productivity&gt;&lt;behavior&gt;" AnswerCount="18" CommentCount="5" FavoriteCount="5" />
  <row Id="746" PostTypeId="2" ParentId="696" CreationDate="2010-09-03T16:20:55.843" Score="2" ViewCount="" Body="&lt;p&gt;I used to like PHP for its crappiness. It was a quick and dirty language, and you could do stuff real quick that worked just like you wanted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And now it's giving up that crappiness in a way I don't like with object-oriented feature, like typed exceptions. In PHP for a catch block you need to do &lt;code&gt;try { ... } catch (Type $exception) { ... }&lt;/code&gt; and that sucks. This is one of the two places where PHP goes &quot;strongly typed&quot; and it really doesn't belong there.&lt;/p&gt;&#xA;" OwnerUserId="90" LastActivityDate="2010-09-03T16:20:55.843" CommentCount="6" />
  <row Id="747" PostTypeId="2" ParentId="739" CreationDate="2010-09-03T16:24:26.133" Score="2" ViewCount="" Body="&lt;p&gt;Regardless of whether you program with it on or off, you should test your program with a limited user account. This should catch most problems users might have with running your program with a limited account or the UAC turned-on.&lt;/p&gt;&#xA;" OwnerUserId="40" LastActivityDate="2010-09-03T16:24:26.133" CommentCount="3" />
  <row Id="748" PostTypeId="2" ParentId="745" CreationDate="2010-09-03T16:25:58.543" Score="10" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;coffee&lt;/li&gt;&#xA;&lt;li&gt;soda&lt;/li&gt;&#xA;&lt;li&gt;music&lt;/li&gt;&#xA;&lt;li&gt;take breaks and walk around&lt;/li&gt;&#xA;&lt;li&gt;slap self in face&lt;/li&gt;&#xA;&lt;li&gt;stab thigh with ballpoint pen&lt;/li&gt;&#xA;&lt;li&gt;&lt;i&gt;in extreme circumstances:&lt;/i&gt; just get a good night's sleep&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="151" LastActivityDate="2010-09-03T16:25:58.543" CommentCount="3" />
  <row Id="749" PostTypeId="2" ParentId="745" CreationDate="2010-09-03T16:26:27.643" Score="2" ViewCount="" Body="&lt;p&gt;Taking a break to surf the net. Studies have shown that it actually increases adrenaline production due to the large amount of stimulus it provides. Makes sense to me considering that surfing the web usually makes me feel more awake no matter how tired I was the rest of the day. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-03T16:26:27.643" CommentCount="5" />
  <row Id="750" PostTypeId="1" CreationDate="2010-09-03T16:28:39.027" Score="12" ViewCount="300" Body="&lt;p&gt;I'm freshly out of college, and starting university somewhere next week. We've seen unit tests, but we kinda not used them much; and everyone talks about them, so I figured maybe I should do some.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is, I don't know &lt;em&gt;what&lt;/em&gt; to test. Should I test the common case? The edge case? How do I know that a function is adequately covered?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always have the terrible feeling that while a test will prove that a function works for a certain case, it's utterly useless to prove that the function works, period.&lt;/p&gt;&#xA;" OwnerUserId="90" LastEditorUserId="90" LastEditorDisplayName="" LastEditDate="2010-09-12T15:48:04.220" LastActivityDate="2010-10-13T00:08:19.243" Title="What should you test with unit tests?" Tags="&lt;unit-testing&gt;&lt;test-coverage&gt;" AnswerCount="5" FavoriteCount="3" />
  <row Id="751" PostTypeId="2" ParentId="681" CreationDate="2010-09-03T16:33:05.320" Score="1" ViewCount="" Body="&lt;p&gt;SQL is pretty darn close to pseudo code. I suppose it's more natural language than pseudo code, but it certainly reads logically.&lt;/p&gt;&#xA;" OwnerUserId="13" LastActivityDate="2010-09-03T16:33:05.320" />
  <row Id="754" PostTypeId="2" ParentId="750" CreationDate="2010-09-03T16:47:45.603" Score="8" ViewCount="" Body="&lt;p&gt;My personal philosophy has thusfar been:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Test the common case of everything you can.  This will tell you when that code breaks after you make some change (which is, in my opinion, the single greatest benefit of automated unit testing).&lt;/li&gt;&#xA;&lt;li&gt;Test the edge cases of a few unusually complex code that you think will probably have errors.&lt;/li&gt;&#xA;&lt;li&gt;Whenever you find a bug, write a test case to cover it before fixing it&lt;/li&gt;&#xA;&lt;li&gt;Add edge-case tests to less critical code whenever someone has time to kill.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-03T16:47:45.603" CommentCount="1" />
  <row Id="755" PostTypeId="2" ParentId="742" CreationDate="2010-09-03T16:50:54.930" Score="4" ViewCount="" Body="&lt;p&gt;I usually make my own desks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not that hard, it's cheap and you can have it exactly the size you want with the features you want. In my house I made a 4 meters long table (lan parties!) but only 45cm wide. I think that too wide tables are only useful if you still use a CRT monitor. You can also add lot's of power sockets on the top of the table if you wish so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, all you have to do is buy some of these:&#xA;&lt;img src=&quot;http://i.imgur.com/n6A1I.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;install them on your wall and put a few planks to put on top.&lt;/p&gt;&#xA;" OwnerUserId="31" LastActivityDate="2010-09-03T16:50:54.930" CommentCount="3" />
  <row Id="756" PostTypeId="1" AcceptedAnswerId="764" CreationDate="2010-09-03T16:56:21.187" Score="56" ViewCount="2833" Body="&lt;p&gt;What is a good source of programming puzzles (book or website)? Either for a team to solve together as a group (on a weekly or semi-regular basis) or for interview candidates? Or just for someone to do alone as an exercise?&lt;/p&gt;&#xA;" OwnerUserId="43" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T22:48:02.970" LastActivityDate="2011-05-14T05:35:58.960" Title="Programming Puzzles" Tags="&lt;websites&gt;&lt;interview-questions&gt;&lt;computer-science&gt;&lt;puzzles&gt;&lt;contests&gt;" AnswerCount="7" CommentCount="5" FavoriteCount="122" />
  <row Id="757" PostTypeId="2" ParentId="756" CreationDate="2010-09-03T16:58:19.357" Score="10" ViewCount="" Body="&lt;p&gt;I like to practice for interviews (to get myself in the problem-solving frame of mind) by doing problems on &lt;a href=&quot;http://www.projecteuler.net&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="6" LastEditorDisplayName="" LastEditDate="2010-09-03T17:05:32.960" LastActivityDate="2010-09-03T17:05:32.960" CommentCount="2" />
  <row Id="758" PostTypeId="2" ParentId="733" CreationDate="2010-09-03T16:59:55.373" Score="2" ViewCount="" Body="&lt;p&gt;Research in academia would be the obvious thing. A lot of fields, especially theoretical biology, have a need for mathematically oriented programmers who approach problems from a different angle to programming-oriented biologists. I'm one of the latter, and having a mathematician around would be great for my research.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-03T16:59:55.373" />
  <row Id="759" PostTypeId="2" ParentId="745" CreationDate="2010-09-03T17:00:31.560" Score="26" ViewCount="" Body="&lt;p&gt;Caffeine is a major cause of the problem, not the solution.  It might seem to work in the short-term but it makes things &lt;a href=&quot;http://en.wikipedia.org/wiki/Caffeine#Overuse&quot; rel=&quot;nofollow&quot;&gt;worse&lt;/a&gt; overall by interfering with your sleep.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't sleep properly you will be tired and unfocused.  If you try to solve that with a high caffeine intake you won't sleep properly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Exercise, eat well, try to restrict the coffee to a couple of cups a day and don't work stupid long hours.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-03T17:00:31.560" CommentCount="6" />
  <row Id="760" PostTypeId="2" ParentId="745" CreationDate="2010-09-03T17:00:50.273" Score="1" ViewCount="" Body="&lt;p&gt;Team programming is great way to stay awake. Other person is always annoyingly fresh. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I am programming alone, I select some rock music.&lt;/p&gt;&#xA;" OwnerUserId="52" LastActivityDate="2010-09-03T17:00:50.273" CommentCount="1" />
  <row Id="761" PostTypeId="2" ParentId="742" CreationDate="2010-09-03T17:05:25.527" Score="5" ViewCount="" Body="&lt;p&gt;Only thing important for my desk is for it to be long enough so that two persons with their laptops can share it - useful for team programming or review.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not use chair. I just get one of those Pilates balls. It is great to sit on and it is great thing to throw during breaks. :D&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do have additional plain chair with wheels for guests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/yyVJH.jpg&quot; alt=&quot;Pilates ball&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="52" LastEditorUserId="52" LastEditorDisplayName="" LastEditDate="2010-09-03T19:49:07.823" LastActivityDate="2010-09-03T19:49:07.823" CommentCount="2" />
  <row Id="762" PostTypeId="2" ParentId="745" CreationDate="2010-09-03T17:08:13.637" Score="2" ViewCount="" Body="&lt;p&gt;Coffee, and caffeinated beverages in general, provide a double-action solution to the problem: they work to brighten your smile in the short term, and require you to get up and... &lt;em&gt;relieve yourself&lt;/em&gt; periodically thereafter, thus encouraging you to walk and stretch, which is exercise and therefore helpful in relaxing tired muscles and obtaining a good night's rest. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Just the thing&lt;/em&gt; when you're working stupid long hours...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that you'll build a tolerance to caffeine after a bit - at that point, pouring the boiling-hot liquid on your lap will serve to shock you awake. TRIPLE ACTION!&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-03T17:08:13.637" />
  <row Id="763" PostTypeId="2" ParentId="745" CreationDate="2010-09-03T17:16:34.903" Score="3" ViewCount="" Body="&lt;p&gt;I &lt;em&gt;used&lt;/em&gt; to drink a lot of coke.  I had one night where a project (this was in school) was due at 10am the next morning.  I stayed up until midnight helping other people with their projects, then slammed mine out between midnight and 5 am.  I found that a can of coke could reliably buy me 20 minutes of reasonably lucid thought, so I went through a couple 12-packs.  I then went home, vomited, went to class, and got an A.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-03T17:16:34.903" CommentCount="3" />
  <row Id="764" PostTypeId="2" ParentId="756" CreationDate="2010-09-03T17:29:53.583" Score="63" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;https://sites.google.com/site/prologsite/prolog-problems&quot; rel=&quot;nofollow&quot;&gt;99 Prolog Problems&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://acm.uva.es/archive/nuevoportal/&quot; rel=&quot;nofollow&quot;&gt;ACM-ICPC Live Archive&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://groups.google.com/group/algogeeks/topics&quot; rel=&quot;nofollow&quot;&gt;Algo Geeks Google Group&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.algorithmist.com/index.php/Main_Page&quot; rel=&quot;nofollow&quot;&gt;Algorithmist&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1453792996&quot; rel=&quot;nofollow&quot;&gt;Algorithms for Interviews&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.ecoo.org/index.php?option=com_content&amp;amp;task=view&amp;amp;id=31&amp;amp;Itemid=61&quot; rel=&quot;nofollow&quot;&gt;Educational Computing Organization of Ontario&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://code.google.com/codejam/contests.html&quot; rel=&quot;nofollow&quot;&gt;Google code jam&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.careercup.com/&quot; rel=&quot;nofollow&quot;&gt;CareerCup&lt;/a&gt;: very good for interviews. &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/145157827X&quot; rel=&quot;nofollow&quot;&gt;Gayle Lakkmann's book&lt;/a&gt; was really helpful.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.codechef.com/&quot; rel=&quot;nofollow&quot;&gt;Codechef&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://codingkata.org/&quot; rel=&quot;nofollow&quot;&gt;Coding Kata&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.facebook.com/careers/puzzles.php&quot; rel=&quot;nofollow&quot;&gt;Facebook puzzles&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://domino.research.ibm.com/comm/wwwr_ponder.nsf/pages/index.html&quot; rel=&quot;nofollow&quot;&gt;IBM Research - Ponder this&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://forum.lessthandot.com/viewforum.php?f=102&quot; rel=&quot;nofollow&quot;&gt;LessThanDot&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.programming-challenges.com/pg.php?page=index&quot; rel=&quot;nofollow&quot;&gt;Programming Challenges&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmingpraxis.com/&quot; rel=&quot;nofollow&quot;&gt;Programming Praxis&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://projecteuler.net/index.php&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.pythonchallenge.com/&quot; rel=&quot;nofollow&quot;&gt;Python Challenge&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.rankk.org/&quot; rel=&quot;nofollow&quot;&gt;Rankk.org&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.rubyquiz.com/&quot; rel=&quot;nofollow&quot;&gt;Ruby Quiz&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.spoj.pl/problems/classical/&quot; rel=&quot;nofollow&quot;&gt;Sphere Online Judge&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.topcoder.com/tc&quot; rel=&quot;nofollow&quot;&gt;TopCoder&lt;/a&gt; (&lt;a href=&quot;http://www.topcoder.com/tc?module=MatchList&quot; rel=&quot;nofollow&quot;&gt;Match archive&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://uva.onlinejudge.org/&quot; rel=&quot;nofollow&quot;&gt;UVA online judge&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="42" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2011-05-14T05:35:58.960" LastActivityDate="2011-05-14T05:35:58.960" CommunityOwnedDate="2011-03-30T01:59:47.873" CommentCount="0" />
  <row Id="765" PostTypeId="2" ParentId="634" CreationDate="2010-09-03T17:45:49.493" Score="8" ViewCount="" Body="&lt;p&gt;Basically I want to have:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;defmacro.  &lt;em&gt;Why do I want to type more than I have to?&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;lambdas.  &lt;em&gt;Because some functions are used only once&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;bit manipulation &amp;amp; memory access. &lt;em&gt;Because being able to bit-hack solves certain problems, and we work with real computers that have memory&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;non-whitespace delimiters. &lt;em&gt;Because sometimes I comment out upper scopes.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;deterministic memory allocation.  &lt;em&gt;Because random slowdowns are often bad.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;static compilation.  &lt;em&gt;Basic type checking finds a lot of dumb errors.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;simple conversions from similar types. &lt;em&gt;floats are approximately ints. 'nuff said.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;inline assembly. &lt;em&gt;Look, SIMD instructions my compiler doesn't generate!&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;templates.  &lt;em&gt;Less typing&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;dynamic type generation. &lt;em&gt;To smartly handle input&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;no immutable types.  &lt;em&gt;The real world has state, and states get altered. New ones don't appear from nowhere.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;multiple inheritance. &lt;em&gt;Solves some fairly kooky single-inheritance sillyness&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Since I got more feedback on the immutable thing....&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for i from 0 to 10&#xA;   x[i] = f(x[i])&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That sort of code is very simple in languages which don't have immutability built into the vector or string types, or the elements of vector/string (I'm looking at you, Python). &#xA;Of course, there are idiomatic ways to handle this sort of common operation, but the &lt;em&gt;idiom  is a workaround for the problem&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Part of the issue with immutability is that it enforces a worldview which does not correspond to the computer we deal with.  At heart, a computer is going to have some sort of instructions that look analogous to this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;mv r0, r1  #copy r1 to r0&#xA;stw r0, 0xDEADBEEF #Store r0 in 0xDEADBEEF. Nom.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;These operations are mutating state. So there's a paradigm impedance mismatch going on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another part of the issue with immutability is that typically, things don't just disappear and reappear in a new form when their state changes. When your state changes from Single to Married, you don't suddenly have a new instance of You come into being. So there is a &lt;em&gt;second&lt;/em&gt; mismatch, wherein the problem and solution domain don't really fit immutability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, immutability does solve some issues that come up, notably issues of parallel read/write access. But it solves them by going around the problem. Sometimes that works. Other times, it doesn't. And still, you have the impedance mismatch between immutability and reality. So I don't like immutability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope this answers the responses.&lt;/p&gt;&#xA;" OwnerUserId="148" LastEditorUserId="148" LastEditorDisplayName="" LastEditDate="2010-09-20T19:39:15.113" LastActivityDate="2010-09-20T19:39:15.113" CommunityOwnedDate="2010-09-20T19:39:15.113" CommentCount="16" />
  <row Id="766" PostTypeId="1" AcceptedAnswerId="17473" CreationDate="2010-09-03T17:54:33.157" Score="4" ViewCount="206" Body="&lt;p&gt;For business or tester facing tests on projects (not unit tests), I've typically used &lt;a href=&quot;http://fitnesse.org/&quot; rel=&quot;nofollow&quot;&gt;FitNesse&lt;/a&gt;, but I've dabbled with &lt;a href=&quot;http://rspec.info/&quot; rel=&quot;nofollow&quot;&gt;RSpec&lt;/a&gt; and I'm interested in learning &lt;a href=&quot;http://seleniumhq.org/&quot; rel=&quot;nofollow&quot;&gt;Selenium&lt;/a&gt; and &lt;a href=&quot;http://code.google.com/p/robotframework/&quot; rel=&quot;nofollow&quot;&gt;Robot&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have experience in these (or other) acceptance testing tools? What are the pros and cons?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For FitNesse, I can think of the following pros and cons initially.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PROS:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Wiki based editing, which most people understand&lt;/li&gt;&#xA;&lt;li&gt;Lots of support and plugins for different languages&lt;/li&gt;&#xA;&lt;li&gt;Completely self contained, you just download and go&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;CONS:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Refactoring the tests can be a little clunky&lt;/li&gt;&#xA;&lt;li&gt;You need to know (or document) the various properties that each method in your test fixture expects. There's no &quot;intellisense&quot; or IDE to do this for you that I'm aware of.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-11-07T15:28:22.743" Title="What acceptance test frameworks have you used? What are the pros and cons?" Tags="&lt;testing&gt;&lt;acceptance-testing&gt;" AnswerCount="3" FavoriteCount="3" />
  <row Id="767" PostTypeId="2" ParentId="634" CreationDate="2010-09-03T17:55:30.080" Score="1" ViewCount="" Body="&lt;p&gt;I really miss C#-like properties in C++. Although properties are just a shortcut for the Get and Set functions, they allow cleaner and more maintainable code.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-03T17:55:30.080" CommunityOwnedDate="2011-03-10T10:29:28.597" CommentCount="1" />
  <row Id="768" PostTypeId="2" ParentId="750" CreationDate="2010-09-03T18:00:33.210" Score="5" ViewCount="" Body="&lt;p&gt;If you are testing first with Test Driven Development, then your coverage is going to be up in the 90% range or higher, because you won't be adding functionality without first writing a failing unit test for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are adding tests after the fact, then I cannot recommend enough that you get a copy of &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131177052&quot; rel=&quot;nofollow&quot;&gt;Working Effectively With Legacy Code&lt;/a&gt; by &lt;a href=&quot;http://www.michaelfeathers.com/&quot; rel=&quot;nofollow&quot;&gt;Michael Feathers&lt;/a&gt; and take a look at some of the techniques for both adding tests to your code and ways of refactoring your code to make it more testable.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-03T18:00:33.210" CommentCount="3" />
  <row Id="769" PostTypeId="2" ParentId="634" CreationDate="2010-09-03T18:00:56.963" Score="2" ViewCount="" Body="&lt;p&gt;I miss multiple inheritance in C#. I understand that it can be difficult to implement in a dynamic language, and that it is a dangerous feature, but I fall in this limit time by times, and I have to rely in multiple interfaces + code redundancy or, when possible, in wide redesign of the object hierarchy (and the new design is usually worst than would have with multiple inheritance).&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-03T18:00:56.963" CommunityOwnedDate="2011-03-10T10:29:28.597" CommentCount="6" />
  <row Id="770" PostTypeId="2" ParentId="742" CreationDate="2010-09-03T18:03:11.513" Score="5" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://www.hermanmiller.com/Products/Mirra-Chairs&quot; rel=&quot;nofollow&quot;&gt;Mirra chair&lt;/a&gt; by Herman Miller.&lt;br&gt;&#xA;Less expensive than &lt;a href=&quot;http://programmers.stackexchange.com/questions/742/furniture-for-programmers/744#744&quot;&gt;Aeron&lt;/a&gt;, looks awesome and is available in a variety of colors to fit any decor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/DSi0U.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="74" LastActivityDate="2010-09-03T18:03:11.513" CommentCount="5" />
  <row Id="771" PostTypeId="2" ParentId="729" CreationDate="2010-09-03T18:08:13.130" Score="2" ViewCount="" Body="&lt;p&gt;We use &lt;a href=&quot;http://www.assembla.com/&quot; rel=&quot;nofollow&quot;&gt;Assembla&lt;/a&gt; at work to create a company knowledge base (we also use it for collaborating with customers). It has a wiki as well as file uploading tools, so most of the things you mention can be added or linked to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not free (except for open source projects) but it's pretty reasonably priced.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-03T18:08:13.130" CommunityOwnedDate="2011-03-07T21:12:42.693" />
  <row Id="772" PostTypeId="2" ParentId="264" CreationDate="2010-09-03T18:11:40.523" Score="0" ViewCount="" Body="&lt;p&gt;Cambridge, for the Turing computer room at King's College.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-03T18:11:40.523" CommentCount="1" />
  <row Id="773" PostTypeId="2" ParentId="756" CreationDate="2010-09-03T18:33:49.800" Score="16" ViewCount="" Body="&lt;p&gt;Stack Overflow. Just pick a topic (tag), follow the new questions posted, and try to solve them. If you find a good one, bookmark it for later use...&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-03T18:33:49.800" CommentCount="1" />
  <row Id="774" PostTypeId="2" ParentId="742" CreationDate="2010-09-03T18:38:50.113" Score="1" ViewCount="" Body="&lt;p&gt;I have no experience with the Geek Desk.  However, I can tell you that having the ability to stand up can be quite useful.  There are long-neck keyboard trays made especially for this purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I got tired of fighting with Google to try and find one.  I'll have to update later.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since the Geek Desk allows easy adjustments and brings the viewing surface with it, I think it would be ideal for this use case.  Granted, the price is a turn-off, but it is motorized.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-09-03T18:38:50.113" CommentCount="6" />
  <row Id="775" PostTypeId="1" AcceptedAnswerId="788" CreationDate="2010-09-03T18:39:42.673" Score="12" ViewCount="196" Body="&lt;p&gt;On any team, you are going to have the need for more grizzled and grey developers and some young pups. Some reasons include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Money. There are often tasks that don't require the same level of experience to deliver, so it makes sense not to pay top dollar to have those tasks fulfilled.&lt;/li&gt;&#xA;&lt;li&gt;Energy. There's an energy and enthusiasm that new people can bring to a team that stops it from getting too stale and set in its ways. There's also calmness and wisdom that the more senior people can bring.&lt;/li&gt;&#xA;&lt;li&gt;Knowledge transfer and career growth. Both in terms of the project and skills, it's useful and often fun to teach people and to learn new stuff. It's satisfying to help &quot;bring on&quot; new team members.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I realise there are some cutting edge projects where it may be important for there to be more senior people than junior, but in general, is there an ideal mix of experiences on a team, or is it totally dependent on the project?&lt;/p&gt;&#xA;" OwnerUserId="38" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:16:20.140" LastActivityDate="2010-09-12T13:16:20.140" Title="What is the ideal mix of senior to junior developers on a team?" Tags="&lt;team&gt;&lt;organization&gt;" AnswerCount="3" FavoriteCount="3" />
  <row Id="776" PostTypeId="2" ParentId="775" CreationDate="2010-09-03T19:02:06.177" Score="4" ViewCount="" Body="&lt;p&gt;I don't think there's any &lt;em&gt;ideal&lt;/em&gt; mix- it's entirely project and environment dependent.  A couple examples:&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;All Experienced&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;It might be appropriate to have all experienced team members on a critical project with a tight deadline, where there's no room for junior developers to get up to speed.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;All Junior&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;In another example, it might be appropriate to have all Junior developers in a more R&amp;amp;D oriented project.  There was a team at one company I worked at made up entirely of interns to whom projects that needed an innovative (but not necessarily fast or correct) solution were assigned.  They were real customer problems, but they didn't have any known good solution, so they got interns who would be new and have few preconceived notions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point here is not that either of these approaches is often right- more that projects will run the entire gamut between them based on business needs, organizational factors, and the availability of developers.&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="6" LastEditorDisplayName="" LastEditDate="2010-09-03T19:07:44.790" LastActivityDate="2010-09-03T19:07:44.790" CommentCount="1" />
  <row Id="777" PostTypeId="2" ParentId="264" CreationDate="2010-09-03T19:11:38.593" Score="-2" ViewCount="" Body="&lt;p&gt;Portland, OR&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not because of any history or geeky attractions, mind you - it's just a really beautiful city. Good beer, good food, friendly people... Walk around Old Town, visit the Saturday Market, relax.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-03T19:11:38.593" CommentCount="10" />
  <row Id="778" PostTypeId="1" CreationDate="2010-09-03T19:22:05.460" Score="11" ViewCount="1046" Body="&lt;p&gt;What question have you found especially valuable in interviewing software developers?  What is it about the question that has made it particularly useful?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking for a particular question you like to ask, not just an interviewing approach like &quot;make them write code&quot;.&lt;/p&gt;&#xA;" OwnerUserId="151" LastEditorUserId="151" LastEditorDisplayName="" LastEditDate="2011-02-15T15:15:41.383" LastActivityDate="2011-02-15T21:55:58.710" CommunityOwnedDate="2011-02-15T21:30:54.260" Title="What's your favorite interview question?" Tags="&lt;interview-questions&gt;&lt;favorite&gt;" AnswerCount="16" CommentCount="3" FavoriteCount="8" />
  <row Id="779" PostTypeId="1" CreationDate="2010-09-03T19:24:44.867" Score="26" ViewCount="2973" Body="&lt;p&gt;It doesn't have to be programming or software development related, but just asked during an interview for an IT related job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know some &quot;left field&quot; questions are meant to see how the candidate copes with unexpected and novel situations, but here I'm looking for a question that appeared to be completely unrelated to the job they were interviewing you for, or something that made you think &quot;what useful information could they possibly get from my answer to &lt;em&gt;that&lt;/em&gt; question?&quot;.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T22:52:34.303" LastActivityDate="2011-04-15T21:27:37.107" CommunityOwnedDate="2011-02-17T17:16:27.913" Title="What's the worst question you were ever asked at interview?" Tags="&lt;interview-questions&gt;&lt;job-interview&gt;" AnswerCount="28" CommentCount="3" FavoriteCount="12" />
  <row Id="780" PostTypeId="2" ParentId="779" CreationDate="2010-09-03T19:27:05.523" Score="10" ViewCount="" Body="&lt;p&gt;The worst I was ever asked was:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Why are &lt;a href=&quot;http://en.wikipedia.org/wiki/Manhole&quot; rel=&quot;nofollow&quot;&gt;manhole&lt;/a&gt; covers circular?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Aside from the fact that most aren't this completely threw me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The answer the interview wanted?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;So if you drop it over the hole it can't fall through.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This was about 20 years ago now and I &lt;em&gt;still&lt;/em&gt; remember it.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-03T19:27:05.523" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="19" />
  <row Id="781" PostTypeId="2" ParentId="778" CreationDate="2010-09-03T19:28:41.040" Score="4" ViewCount="" Body="&lt;p&gt;Reverse this linked list.  Now do it in linear time.  Now do it in linear time and constant space.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-03T19:28:41.040" CommunityOwnedDate="2011-02-15T21:30:54.260" CommentCount="1" />
  <row Id="782" PostTypeId="2" ParentId="779" CreationDate="2010-09-03T19:34:32.900" Score="20" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What is your worst flaw?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This question is so dated and expected that I now use it as a metric.  If a company is so far behind that they ask me this, I don't want to work for them.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-03T19:34:32.900" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="14" />
  <row Id="783" PostTypeId="2" ParentId="779" CreationDate="2010-09-03T19:57:53.913" Score="11" ViewCount="" Body="&lt;p&gt;I was asked the infamous &lt;a href=&quot;http://www.mytechinterviews.com/piece-of-cake&quot; rel=&quot;nofollow&quot;&gt;rectangular cake question&lt;/a&gt; during a job interview:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How would you cut a rectangular cake into two equal pieces when a rectangular piece has already been cut out of it? The cut piece can be of any size and orientation. You are only allowed to make one straight cut.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This was terrible for two reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I think certain types of puzzle questions that have an &quot;aha&quot; answer don't show anything about the candidate. If you've heard the question before, you can fake working through the answer. If you haven't, the problem space is completely defined in the question, which means that the candidate doesn't really have a sensible way to work through the problem asking clarifying questions the way someone would with a real requirement. &lt;/li&gt;&#xA;&lt;li&gt;Although I immediately came up with a valid answer given all the constraints specified - &quot;make one straight horizontal cut along the height of the cake so that the resulting slices are of equal sizes&quot;, this wasn't the answer the interviewer wanted, so I stood in near silence for a couple of minutes and then drew the &quot;correct&quot; answer on the board.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Although I got a job offer from this interview, the stupidity of this question and the general zealotry of the interviewer put me off working for the company, so I guess this question was useful for me to help decide &lt;em&gt;not&lt;/em&gt; to work there!&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-03T19:57:53.913" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="10" />
  <row Id="784" PostTypeId="2" ParentId="779" CreationDate="2010-09-03T20:00:28.730" Score="14" ViewCount="" Body="&lt;p&gt;&quot;How would you reformat this piece of code here?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They wanted the interviewee to give an answer consistent with the company's coding standards, i.e. guess what that company's standards are.&lt;br&gt;&#xA;Their style was unusual (&lt;a href=&quot;http://activeclickweb.com/whitesmiths/index.html&quot; rel=&quot;nofollow&quot;&gt;Whitesmiths style indenting&lt;/a&gt; and they required a comment on &lt;em&gt;every&lt;/em&gt; statement) so I doubt many candidates would have given the answer they wanted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fortunately they didn't give too much weight to that question.  I scored more points by spotting all the bugs in the example function and they hired me.&lt;/p&gt;&#xA;" OwnerUserId="113" LastActivityDate="2010-09-03T20:00:28.730" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="11" />
  <row Id="785" PostTypeId="2" ParentId="778" CreationDate="2010-09-03T20:03:41.610" Score="10" ViewCount="" Body="&lt;p&gt;This isn't a coding question, but a behavioural one:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Tell me of a time when you just couldn't complete all of your work on time to meet a deadline. What did you do? What was the result?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-03T20:03:41.610" CommunityOwnedDate="2011-02-15T21:30:54.260" CommentCount="3" />
  <row Id="786" PostTypeId="2" ParentId="501" CreationDate="2010-09-03T20:07:34.850" Score="3" ViewCount="" Body="&lt;h2&gt;Perl&lt;/h2&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I wish Perl let me write &lt;code&gt;if($x &amp;lt; 10) do_something();&lt;/code&gt;. At the moment, you have to write that as either &lt;code&gt;do_something() if($x &amp;lt; 10);&lt;/code&gt; or as &lt;code&gt;if($x &amp;lt; 10) { do_something(); }&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-09-03T20:07:34.850" CommunityOwnedDate="2010-09-03T20:07:34.850" CommentCount="9" />
  <row Id="787" PostTypeId="2" ParentId="531" CreationDate="2010-09-03T20:20:26.380" Score="1" ViewCount="" Body="&lt;p&gt;My 111 GB iPod Classic. Having all 55 GB of music and podcasts around with me all the time is brilliant: apart from having a ton of things to listen to if I get bored, and having some really brilliant podcasts to cheer me up after a long day, there's something magical is being able to play that one song I'm suddenly craving. I love it.&lt;/p&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-09-03T20:20:26.380" />
  <row Id="788" PostTypeId="2" ParentId="775" CreationDate="2010-09-03T20:32:37.813" Score="7" ViewCount="" Body="&lt;p&gt;I really like what &lt;a href=&quot;http://blogs.msdn.com/b/eric_brechner/archive/2005/09/01/september-1-2005-go-with-the-flow-retention-and-turnover.aspx&quot; rel=&quot;nofollow&quot;&gt;Eric Brechner has to say&lt;/a&gt; on this subject&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Think of your team as a river instead&#xA;  of a lake. A lake stagnates. There’s&#xA;  no energy or impetus to change. The&#xA;  same is true of groups that stagnate.&#xA;  They cultivate mediocrity and&#xA;  complacency; they abhor risk. A river&#xA;  is always running and changing with&#xA;  lots of great energy. You want a&#xA;  river.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;A river depends on the flow of water,&#xA;  and your team depends on the flow of&#xA;  people and information. You can think&#xA;  of the people divided into three&#xA;  groups: new blood, new leaders, and&#xA;  elders ready for a new challenge.&#xA;  Here’s how those groups should balance&#xA;  and flow:&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;&lt;p&gt;The largest group should be the new blood. Not all of them will become&#xA;  technical or organizational leaders. &lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Sometimes you’ll have more new leaders than elders, sometimes the&#xA;  reverse, but ideally you should&#xA;  maintain a balance.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;For flow, you want a steady stream of new blood becoming your new&#xA;  leaders, and new leaders becoming&#xA;  elders.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;The key to flow is new blood coming in and elders moving out. For this to&#xA;  work, you WANT your elders to transfer&#xA;  before they clog the stream and&#xA;  disrupt the flow of opportunitiesfor&#xA;  others.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;  &#xA;  &lt;p&gt;Not all technologies flow at the same&#xA;  rate. Central engines, like the&#xA;  Windows kernel, flow slowly, while&#xA;  web-based services, like MSN Search,&#xA;  flow quickly. You need to adjust for&#xA;  your situation, but even the most&#xA;  conservative technologies do change&#xA;  and flow. How do you successfully&#xA;  encourage and maintain a healthy flow?&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;&lt;p&gt;Keep a constant supply of new people.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Instill information sharing as a way of life.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Shape the organization and roles to create growth opportunities.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Find new challenges for your elders.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-09-03T20:32:37.813" CommentCount="6" />
  <row Id="789" PostTypeId="2" ParentId="733" CreationDate="2010-09-03T20:33:22.610" Score="2" ViewCount="" Body="&lt;p&gt;Look into working for a bank/finance company. Many of the people I work with did maths degrees and they research alot of mathmatical models etc. A long way out of my league but they seem to enjoy it.&lt;/p&gt;&#xA;" OwnerUserId="154" LastActivityDate="2010-09-03T20:33:22.610" />
  <row Id="790" PostTypeId="1" AcceptedAnswerId="802" CreationDate="2010-09-03T20:39:02.823" Score="24" ViewCount="436" Body="&lt;p&gt;A really big issue that a lot of people have problems with is software patents. &lt;a href=&quot;http://en.wikipedia.org/wiki/Software_patent&quot; rel=&quot;nofollow&quot;&gt;According to Wikipedia&lt;/a&gt;, some of the big issues with software patents include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Where the boundary between patentable and non-patentable software should lie&lt;/li&gt;&#xA;&lt;li&gt;Whether the inventive step and non-obviousness requirement is applied too loosely to software&lt;/li&gt;&#xA;&lt;li&gt;Whether patents covering software discourage, rather than encourage, innovation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;One famous example of questionable software patents is &lt;a href=&quot;http://en.wikipedia.org/wiki/1-Click&quot; rel=&quot;nofollow&quot;&gt;Amazon's patent on 1-Click checkout&lt;/a&gt; which was initially granted by the USPTO in 1999, re-examined in 2007 and finally revised in 2010 due to much debate regarding its validity. The idea of simplifying a user's buying experience by reducing the number of actions required to complete a transaction seems like common sense to just about anyone, so why should patents like these be legitimate?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a professional or a hobbyist, how do you feel about software patents? Do they crush innovation by locking down [often] common-sense ideas, or are they a necessity of success and profitability? &lt;/p&gt;&#xA;" OwnerUserId="13" LastEditorUserId="113" LastEditorDisplayName="" LastEditDate="2010-09-06T15:08:08.210" LastActivityDate="2010-10-15T18:56:05.197" Title="Should software patents be legal?" Tags="&lt;software&gt;&lt;software-patent&gt;&lt;ethics&gt;&lt;politics&gt;" AnswerCount="8" CommentCount="11" FavoriteCount="4" />
  <row Id="791" PostTypeId="2" ParentId="648" CreationDate="2010-09-03T20:42:53.470" Score="3" ViewCount="" Body="&lt;p&gt;Here is a blog that I was sent towards of estimation:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/items/2007/10/26.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/items/2007/10/26.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This blog outlines how to keep a record of how accurate your previous estimations have gone, and then next time you say to someone &quot;it'll be 2 weeks&quot;, you can look at your previous history and see how long it actually took last time you said &quot;it'll be 2 weeks&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't tried it myself, but I'd like to, to see how accurate my estimations are.&lt;/p&gt;&#xA;" OwnerUserId="154" LastActivityDate="2010-09-03T20:42:53.470" CommentCount="1" />
  <row Id="792" PostTypeId="2" ParentId="610" CreationDate="2010-09-03T20:43:50.620" Score="5" ViewCount="" Body="&lt;h2&gt;SQL&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Throwing a SELECT statement inside a JOIN.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;e.g. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;SELECT * &#xA;FROM&#xA;   foo f&#xA;   INNER JOIN (SELECT * FROM Goo WHERE a = 1)  subset&#xA;   ON f.id = g.id&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; Removed the C# one&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-&lt;/p&gt;&#xA;" OwnerUserId="162" LastEditorUserId="162" LastEditorDisplayName="" LastEditDate="2010-09-09T20:20:29.110" LastActivityDate="2010-09-09T20:20:29.110" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="2" />
  <row Id="793" PostTypeId="2" ParentId="790" CreationDate="2010-09-03T20:49:43.313" Score="8" ViewCount="" Body="&lt;p&gt;I am (clearly) no legal expert, but I don't know what problem software patents solve that existing laws don't. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are actually stealing someone else's code and putting it into your product, then that's just theft.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you simply have an idea, then that idea of itself does not have much value. As &lt;a href=&quot;http://sivers.org/multiply&quot; rel=&quot;nofollow&quot;&gt;Derek Sivers said&lt;/a&gt; (and &lt;a href=&quot;http://www.codinghorror.com/blog/2010/01/cultivate-teams-not-ideas.html&quot; rel=&quot;nofollow&quot;&gt;Jeff Atwood recently quoted&lt;/a&gt;): &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;To me, ideas are worth nothing unless executed. They are just a multiplier. Execution is worth millions.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;To make a business, you need to multiply the two. The most brilliant idea, with no execution, is worth $20. The most brilliant idea takes great execution to be worth $20,000,000. That's why I don't want to hear people's ideas. I'm not interested until I see their execution. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't see how patenting ideas for software helps with innovation.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-03T20:49:43.313" CommentCount="6" />
  <row Id="795" PostTypeId="2" ParentId="648" CreationDate="2010-09-03T21:01:34.677" Score="2" ViewCount="" Body="&lt;p&gt;Present a range based on what you know today. Use the &lt;a href=&quot;http://www.construx.com/Page.aspx?hid=1648&quot; rel=&quot;nofollow&quot;&gt;Cone of Uncertainty&lt;/a&gt; to provide the range around your initial guesstimates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every week calculate how much is left to do, re-estimate based on what you know. Once you have enough of a sample size of how much work you are getting through each week, provide a 90% confidence interval for what's left to give a (usually) ever narrowing date range as the project progresses and the amount of work left (hopefully) shrinks.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-03T21:01:34.677" />
  <row Id="796" PostTypeId="2" ParentId="610" CreationDate="2010-09-03T21:04:01.103" Score="26" ViewCount="" Body="&lt;h2&gt;LINQ in C#&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;What could be cooler than creating both simple and complex logic using natural language?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;from item in items&#xA;where item.IsActive&#xA;group item by item.Category&#xA;    into itemCategory&#xA;where itemCategory.Count() &amp;gt; 5&#xA;orderby itemCategory.Key&#xA;select itemCategory&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="13" LastEditorUserId="13" LastEditorDisplayName="" LastEditDate="2010-09-03T21:11:22.810" LastActivityDate="2010-09-03T21:11:22.810" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="5" />
  <row Id="797" PostTypeId="2" ParentId="610" CreationDate="2010-09-03T21:13:18.893" Score="16" ViewCount="" Body="&lt;h2&gt;Python&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Array slicing is very elegant.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; a = range(10)&#xA;&amp;gt;&amp;gt;&amp;gt; a&#xA;[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]&#xA;&amp;gt;&amp;gt;&amp;gt; a[:5] # first 5 elements&#xA;[0, 1, 2, 3, 4]&#xA;&amp;gt;&amp;gt;&amp;gt; a[5:] # last 5 elements&#xA;[5, 6, 7, 8, 9]&#xA;&amp;gt;&amp;gt;&amp;gt; a[::2] # every other element&#xA;[0, 2, 4, 6, 8]&#xA;&amp;gt;&amp;gt;&amp;gt; a[1::3]&#xA;[1, 4, 7]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-03T21:24:47.430" LastActivityDate="2010-09-03T21:24:47.430" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="2" />
  <row Id="798" PostTypeId="2" ParentId="610" CreationDate="2010-09-03T21:13:39.287" Score="36" ViewCount="" Body="&lt;h1&gt;Python&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Python's comparison syntax is brilliant. I wish all languages had this. In Python, instead of&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if x&amp;gt;0 and x&amp;lt;100:&#xA;    #do stuff&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;you can do&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if 0&amp;lt;x&amp;lt;100:&#xA;   #do stuff&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-03T21:13:39.287" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="7" />
  <row Id="799" PostTypeId="2" ParentId="648" CreationDate="2010-09-03T21:25:04.437" Score="7" ViewCount="" Body="&lt;p&gt;We're often asked for an &quot;ballbark&quot; estimate&quot; during meetings where we're given very broad and vauge ideas of what they'd like to do.  I always say, &quot;if you want an answer today it's a year and a million dollars.  If you'd like to give me a lot more details and some time to review them then I can refine those numbers for you.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They almost always get the point.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-03T21:25:04.437" />
  <row Id="800" PostTypeId="2" ParentId="778" CreationDate="2010-09-03T21:26:43.257" Score="19" ViewCount="" Body="&lt;p&gt;Take a look at this sample code and tell me how you'd improve it.&lt;/p&gt;&#xA;" OwnerUserId="163" LastActivityDate="2010-09-03T21:26:43.257" CommunityOwnedDate="2011-02-15T21:30:54.260" CommentCount="1" />
  <row Id="801" PostTypeId="2" ParentId="778" CreationDate="2010-09-03T21:43:22.970" Score="14" ViewCount="" Body="&lt;p&gt;This is a bit specific to my scenario, but I think it was a great question, nonetheless:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;So you say here that you've never touched C# or .NET before, right?  Ok, so here's a workstation.  Figure out how to write a program that queries this DB over here and prints a list of Customers with their orders, sorted by customer name.  You can use whatever resource you want.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The only question I've ever had that actually tested my ability to learn.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-03T21:43:22.970" CommunityOwnedDate="2011-02-15T21:30:54.260" CommentCount="5" />
  <row Id="802" PostTypeId="2" ParentId="790" CreationDate="2010-09-03T21:47:38.617" Score="26" ViewCount="" Body="&lt;p&gt;No, for at least three separate reasons.  First, in the U.S., software is a &lt;a href=&quot;http://www.copyright.gov/circs/circ61.pdf&quot; rel=&quot;nofollow&quot;&gt;literary work&lt;/a&gt;, and is thus fully protected under copyright law.  It makes no more sense to additionally protect software ideas (as opposed to expression), then it would to patent a clever plot concept.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, all software is equivalent to lambda calculus, and abstract ideas are not supposed to be patentable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally there is serious doubt about whether software patents accomplish the Constitutional goal of &quot;promot[ing] the progress of science and useful arts.&quot;  &lt;a href=&quot;http://ssrn.com/abstract=461701&quot; rel=&quot;nofollow&quot;&gt;An Empirical Look at Software Patents&lt;/a&gt; found in sharp contrast that:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Our results are difficult to reconcile&#xA;  with the traditional incentive&#xA;  theory—that granting more patents will&#xA;  increase R&amp;amp;D investments. Rather, if&#xA;  legal changes have encouraged&#xA;  strategic patenting, the result might&#xA;  well be less innovation.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Many of the biggest software patenters opposed them before they had acquired so many.  Bill Gates &lt;a href=&quot;http://www.nytimes.com/2007/06/09/opinion/09lee.html&quot; rel=&quot;nofollow&quot;&gt;wrote&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;If people had understood how patents&#xA;  would be granted when most of today’s&#xA;  ideas were invented, and had taken out&#xA;  patents, the industry would be at a&#xA;  complete standstill today.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Oracle, the plaintiff in the recent software patent lawsuit against Google, &lt;a href=&quot;http://www.bustpatents.com/articles/oracle.htm&quot; rel=&quot;nofollow&quot;&gt;said&lt;/a&gt; in 1994 that:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;existing copyright law and available&#xA;  trade secret protections, as opposed&#xA;  to patent law, are better suited to&#xA;  protecting computer software&#xA;  developments.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;IANAL TINLA.&lt;/p&gt;&#xA;" OwnerUserId="97" LastActivityDate="2010-09-03T21:47:38.617" CommentCount="12" />
  <row Id="803" PostTypeId="2" ParentId="778" CreationDate="2010-09-03T22:36:18.147" Score="11" ViewCount="" Body="&lt;p&gt;How did you get into programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nice way to see if the person has a passion for programming and break the ice.&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-03T22:36:18.147" CommunityOwnedDate="2011-02-15T21:30:54.260" />
  <row Id="805" PostTypeId="2" ParentId="779" CreationDate="2010-09-03T23:42:50.507" Score="35" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Where do you see yourself in 5 years?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Do they really think people are dumb enough to say that they want to do something completely different? Or don't want to work for them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess it can be useful as an indicator of who not to hire but it's so stupid easy to fake that you can't use it as an indicator of who to hire in any way if they answer correctly.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-03T23:42:50.507" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="16" />
  <row Id="806" PostTypeId="2" ParentId="745" CreationDate="2010-09-03T23:44:11.807" Score="4" ViewCount="" Body="&lt;p&gt;Pushups. Exercise actually increases the amount of energy you have, instead of decreasing it. Plus using a keyboard all day doesn't give you strong arms, or even make you awesome at thumb wars.&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-03T23:44:11.807" CommentCount="3" />
  <row Id="808" PostTypeId="2" ParentId="779" CreationDate="2010-09-03T23:53:19.993" Score="6" ViewCount="" Body="&lt;p&gt;I was once asked by a Microsoft recruiter to solve a question which was basically the &lt;a href=&quot;http://en.wikipedia.org/wiki/Pigeonhole_principle&quot; rel=&quot;nofollow&quot;&gt;pigeon hole principal&lt;/a&gt;. I responded by emailing a link to the Wikipedia article.&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-03T23:53:19.993" CommunityOwnedDate="2011-02-17T17:16:27.913" />
  <row Id="809" PostTypeId="2" ParentId="729" CreationDate="2010-09-04T00:03:30.423" Score="1" ViewCount="" Body="&lt;p&gt;I am currently using a combination of Evernote and Google Bookmarks. Evernote has a good web application, good desktop clients and good mobile clients. Additionally, I can get by with the free version, as long as I am just using text plus occasional documents and photos and the paid version, while not cheap, is quite reasonable for what you get. I use Google Bookmarks for links - its killer feature is that bookmarks appear when you search Google. I use the Gmarks Firefox addon to make it more convenient. For resources I need to access frequently (or that I should remember to use more often), I use Firefox bookmarks so I can visit them directly from the address bar.&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-04T00:03:30.423" CommunityOwnedDate="2011-03-07T21:12:42.693" />
  <row Id="810" PostTypeId="2" ParentId="779" CreationDate="2010-09-04T00:12:14.743" Score="38" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Would you have any problems with being the only woman in a currently all-male group?&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;'Cause, darn, then who would I talk with about lipstick? Or whether puce is in this year? Or any other non-work-related question I have no interest in?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, I got the job.&lt;br&gt;&#xA;Yes, I got stuck with things like, &quot;We have to buy a group birthday gift for the boss, and you're a woman, so you collect money from everyone, figure out what to get him, and then go buy &amp;amp; wrap it.&quot;&lt;br&gt;&#xA;Yes, I regretted taking the job, and was &lt;em&gt;thrilled&lt;/em&gt; to leave.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Did they think that after 16 years of programming it would be news to me that this is a primarily male field?&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-09-04T00:12:14.743" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="24" />
  <row Id="811" PostTypeId="1" CreationDate="2010-09-04T00:17:08.803" Score="12" ViewCount="696" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Literate_programming&quot; rel=&quot;nofollow&quot;&gt;Literate programming&lt;/a&gt; has good ideals. Why do you think that this isn't mainstream? It is because it has failed to deliver?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T04:14:13.020" LastActivityDate="2011-03-08T14:08:34.050" Title="Why isn't literate programming mainstream?" Tags="&lt;programming-practices&gt;" AnswerCount="12" CommentCount="2" />
  <row Id="812" PostTypeId="1" AcceptedAnswerId="15488" CreationDate="2010-09-04T00:21:20.073" Score="8" ViewCount="225" Body="&lt;p&gt;I originally tried asking this on StackOverflow, but it was too subjective :-(. I am interested in methods of defining the power of programming languages. Turing completeness is one, but it is almost universally satisfied. What would be nice is to define a measure of power that discriminates among programming languages that are actually in used. For example, can anyone propose a non-subjective method that would discriminate between assembly and Java?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Turing completeness means that a language is maximally powerful in what it can output (which pretty much means it can do anything non-time based in the real world). So if we want to define a stronger measure of power, we need to take another approach. Shortness was suggested in the original question, but this is not easy to define at all. Does anyone have any other suggestions?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="86" LastEditorDisplayName="" LastEditDate="2010-09-04T22:32:30.757" LastActivityDate="2010-10-29T00:57:35.133" Title="Measure of power other than Turing completeness" Tags="&lt;programming-languages&gt;" AnswerCount="4" />
  <row Id="813" PostTypeId="2" ParentId="651" CreationDate="2010-09-04T00:35:18.883" Score="6" ViewCount="" Body="&lt;p&gt;This is definately one of the &quot;holy war&quot; topics, mostly centered on either 2 or 4 spaces. Typically, when this topic comes up I let both sides argue it out for a while, and then propose 3 spaces. The &quot;4-space&quot; camp typically likes 4 spaces because it provides a better visual cue to the indention while the &quot;2-space&quot; camp feels 4 spaces is two wide. Three spaces usually works as a good compromise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over the years of using 3 spaces, I prefer this over 2 or 4 spaces. It gives just enough visual cue to the indention level without getting in the way.&lt;/p&gt;&#xA;" OwnerUserId="164" LastActivityDate="2010-09-04T00:35:18.883" CommentCount="4" />
  <row Id="814" PostTypeId="2" ParentId="1" CreationDate="2010-09-04T00:50:15.103" Score="7" ViewCount="" Body="&lt;p&gt;Code comments are definitely not a &quot;code smell&quot;. This belief typically comes from the fact that comments can become stale (out of date) and can be difficult to maintain. However, having good comments which explain why the code is doing something a certain way can (and usually is) important for maintenance.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Good comments make it easier to&#xA;  understand what the code is doing and,&#xA;  more important, why it is doing it a&#xA;  particular way. Comments are meant to&#xA;  be read by programmers and should be&#xA;  clear and precise. A comment that is&#xA;  hard to understand or incorrect isn’t&#xA;  much better than having had no comment&#xA;  at all.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Adding clear and precise comments to&#xA;  your code means that you don’t have to&#xA;  rely on memory to understand the&#xA;  “what” and “why” of a section of code.&#xA;  This is most important when you look&#xA;  at that code later on, or someone else&#xA;  must look at your code. Because&#xA;  comments become part of the textual&#xA;  content of your code, they should&#xA;  follow good writing principles in&#xA;  addition to being clearly written.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;To&#xA;  write a good comment, you should do&#xA;  your best to document the purpose of&#xA;  the code (the why, not how) and&#xA;  indicate the reasoning and logic&#xA;  behind the code as clearly as&#xA;  possible. Ideally, comments should be&#xA;  written at the same time as you write&#xA;  the code. If you wait, you probably&#xA;  won’t go back and add them.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;em&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0672331012&quot; rel=&quot;nofollow&quot;&gt;Sams Teach Yourself Visual C# 2010 in 24 Hours&lt;/a&gt;, pp 348-349.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="164" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-03-22T22:24:53.567" LastActivityDate="2011-03-22T22:24:53.567" CommunityOwnedDate="2011-01-31T09:04:54.130" CommentCount="3" />
  <row Id="815" PostTypeId="1" CreationDate="2010-09-04T00:58:02.010" Score="9" ViewCount="382" Body="&lt;p&gt;&lt;strong&gt;Question edited to meet new guidelines&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I consider Netscape or IE5.5 to be irrelevant for the following reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Market share is negligible&lt;/li&gt;&#xA;&lt;li&gt;Mindshare is minimal - few developers still talk about the IE5.5 or Netscape problem and most web frameworks don't bother to support them.&lt;/li&gt;&#xA;&lt;li&gt;They are not official supported any more, unlike Internet Explorer which is still supported by Microsoft. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;How long do you believe it will be before these conditions are met?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of supporting your answer, you may want to consider Microsoft announcements, the timeline for depreciating other Microsoft products and current rate at which IE6 market share has been declining. You may also want to discuss in relative terms, for example, how much you believe that market share will drop off a year after Microsoft stop support.&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="86" LastEditorDisplayName="" LastEditDate="2010-10-01T23:00:23.850" LastActivityDate="2010-10-26T19:21:44.123" Title="When will IE6 be irrelevant?" Tags="&lt;prediction&gt;&lt;internet-explorer&gt;" AnswerCount="15" CommentCount="10" />
  <row Id="816" PostTypeId="2" ParentId="39" CreationDate="2010-09-04T01:00:29.180" Score="81" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;We &lt;em&gt;should&lt;/em&gt; forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; Donald Knuth, &lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103.6084&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;Structured Programming with go to Statements&lt;/a&gt;, JACM Computing Surveys, Vol 6, No. 4, Dec. 1974, p.268&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is extracted from the below two paragraphs, which not only say &lt;em&gt;why&lt;/em&gt; he comes to the above conclusion, but gives information on &lt;em&gt;how&lt;/em&gt; to avoid this mistake:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;There is no doubt that the grail of efficiency leads to abuse.  Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered.  We &lt;em&gt;should&lt;/em&gt; forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Yet we should not pass up our opportunities in that critical 3%.  A good programmer will not be lulled into complacency by such reasoning, he will be wise to look carefully at the critical code; but only &lt;em&gt;after&lt;/em&gt; that code has been identified.  It is often a mistake to make a priori judgments about what parts of a program are really critical, since the universal experience of programmers who have been using measurement tools has been that  their intuitive guesses fail. (&amp;hellip;)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="164" LastEditorUserId="3031" LastEditorDisplayName="" LastEditDate="2010-11-12T09:53:12.550" LastActivityDate="2010-11-12T09:53:12.550" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="7" />
  <row Id="817" PostTypeId="2" ParentId="815" CreationDate="2010-09-04T01:03:14.590" Score="1" ViewCount="" Body="&lt;p&gt;Define &quot;killed off.&quot;  A lot of companies don't support it now.  On the other hand, it'll probably be another decade before we get to, say, less than 5k active installs in the world.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-04T01:03:14.590" CommentCount="1" />
  <row Id="818" PostTypeId="2" ParentId="815" CreationDate="2010-09-04T01:03:29.113" Score="10" ViewCount="" Body="&lt;p&gt;I don't know if it will ever be truly &quot;killed off&quot; in the sense that there isn't one in existence.  There are probably still IE 4 and 5's installed and even used regularly.  In the sense that we don't have to worry about supporting it anymore, that depends on your business; for some businesses, the number of potential customers browsing their website is so small that they've already stopped supporting it because it isn't worth the extra work.&lt;/p&gt;&#xA;" OwnerUserId="59" LastActivityDate="2010-09-04T01:03:29.113" CommentCount="1" />
  <row Id="820" PostTypeId="2" ParentId="39" CreationDate="2010-09-04T01:12:25.817" Score="115" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;You can have the project:&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;Done On Time&lt;/li&gt;&#xA;  &lt;li&gt;Done On Budget&lt;/li&gt;&#xA;  &lt;li&gt;Done Properly&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;  &#xA;  &lt;p&gt;Pick two.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;mdash; Unknown&lt;/p&gt;&#xA;" OwnerUserId="61" LastEditorUserId="3766" LastEditorDisplayName="" LastEditDate="2010-10-29T08:07:16.677" LastActivityDate="2010-10-29T08:07:16.677" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="8" />
  <row Id="821" PostTypeId="2" ParentId="815" CreationDate="2010-09-04T01:44:06.177" Score="1" ViewCount="" Body="&lt;p&gt;We made the call earlier this year not to support it anymore at my company. I work for a large retail website who gets millions of hits a day...&lt;/p&gt;&#xA;" OwnerUserId="43" LastActivityDate="2010-09-04T01:44:06.177" CommentCount="0" />
  <row Id="822" PostTypeId="2" ParentId="358" CreationDate="2010-09-04T01:48:22.190" Score="0" ViewCount="" Body="&lt;p&gt;My advisor in college was the author of a textbook on &lt;a href=&quot;http://en.wikipedia.org/wiki/Forth_(programming_language)&quot; rel=&quot;nofollow&quot;&gt;Forth&lt;/a&gt;, so I had to learn enough to translate some of his programs into Fortran, which was our lingua franca.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, he would have said I'd be more productive if I could just get used to working in Forth.&lt;/p&gt;&#xA;" OwnerUserId="151" LastActivityDate="2010-09-04T01:48:22.190" CommunityOwnedDate="2010-09-30T22:46:32.880" CommentCount="4" />
  <row Id="823" PostTypeId="2" ParentId="648" CreationDate="2010-09-04T02:11:23.857" Score="1" ViewCount="" Body="&lt;p&gt;Everything is either &quot;8 hours&quot; or &quot;more than 8 hours&quot;&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-04T02:11:23.857" />
  <row Id="824" PostTypeId="2" ParentId="811" CreationDate="2010-09-04T03:27:01.210" Score="7" ViewCount="" Body="&lt;p&gt;I would blame the &lt;a href=&quot;http://en.wikipedia.org/wiki/Network_effect&quot; rel=&quot;nofollow&quot;&gt;network effect&lt;/a&gt;.&#xA;For other people to edit your code and documentation, they must be able to understand it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This pushes people away from something like cweb/noweb, because using them would require you to learn TeX and the program-specific syntax on top of the programming language you are using for the project. This can be seen as a huge waste of time, especially if they don't need any of the math typesetting that is such a big draw for TeX in the first place. (And for many applications programmers, they really won't need it.) Instead they prefer something like Visual Studio's XML comments, because that's already popular and well-established. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The places I have seen literate programming take off are in scientific/statistical computing, where most of the programmers have significant training (aka PhDs) in math, CS, or statistics, and thus are already famliiar with LaTeX. The documentation they write is more likely to include a lot of complicated formulae that are best written in TeX, and they are more likely to be programming in R. The proportion of R programmers who know about SWeave is definitely much higher than, say, the proportion of C programmers who know about cweb. &lt;/p&gt;&#xA;" OwnerUserId="108" LastActivityDate="2010-09-04T03:27:01.210" CommentCount="2" />
  <row Id="825" PostTypeId="2" ParentId="358" CreationDate="2010-09-04T04:14:51.720" Score="8" ViewCount="" Body="&lt;p&gt;I have seen an entire application done with Excel. The reason behind that was that it was supposed to cost less to develop, because they didn't needed a &quot;real&quot; programmer. The cells with calculation had formula that where so big that you had to scroll to see it all. This was obvious a pain to debug,&lt;/p&gt;&#xA;" OwnerUserId="41" LastActivityDate="2010-09-04T04:14:51.720" CommunityOwnedDate="2010-09-30T22:46:32.880" CommentCount="2" />
  <row Id="826" PostTypeId="1" CreationDate="2010-09-04T05:26:43.913" Score="10" ViewCount="754" Body="&lt;p&gt;Along the lines of Scott Hanselman's &lt;a href=&quot;http://www.hanselman.com/blog/ScottHanselmans2009UltimateDeveloperAndPowerUsersToolListForWindows.aspx&quot; rel=&quot;nofollow&quot;&gt;definitive tools list&lt;/a&gt;, what are the must have applications for a Mac?&lt;/p&gt;&#xA;" OwnerUserId="81" LastEditorUserId="81" LastEditorDisplayName="" LastEditDate="2010-09-08T05:52:18.397" LastActivityDate="2010-10-01T15:55:06.333" Title="Must have development tools for a Mac" Tags="&lt;tools&gt;&lt;mac&gt;" AnswerCount="23" CommentCount="5" FavoriteCount="16" />
  <row Id="827" PostTypeId="1" AcceptedAnswerId="841" CreationDate="2010-09-04T05:35:13.560" Score="13" ViewCount="246" Body="&lt;p&gt;For decades, the accepted degree to get to become a software developer was &quot;Compter Science.&quot;&lt;br&gt;&#xA;We've had &lt;a href=&quot;http://programmers.stackexchange.com/questions/554/do-you-think-computer-science-degrees-are-suitable-for-getting-a-job-in-the-moder&quot;&gt;a few&lt;/a&gt; &lt;a href=&quot;http://programmers.stackexchange.com/questions/361/ive-graduated-with-a-computer-science-degree-but-i-dont-feel-like-im-even-clos&quot;&gt;questions&lt;/a&gt; already about whether that degree really prepares students to develop software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some schools have, in the last 8 years or so, started offering multiple distinct majors in programming.  Using the curriculum from my school:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Computer Science&lt;/strong&gt;, which starts out with some intro programming courses in the first year, and then focuses on theoretical computer science, algorithms, and a bit of OS stuff.  Most classes involve several smaller projects and homeworks, done solo or in pairs.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Software Engineering&lt;/strong&gt;, which starts out with the same intro programming courses, does a few classes of theory, and then goes into software development practices (testing, process methodologies, sofware metrics, requirements gathering) and software design (distributed system design, info system design, real-time/embedded design, subsystem design, etc)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Different schools do it differently, so the above is just a real-world example I'm familiar with.  What I ask is: Is there a need for distinct majors in programming?&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:42:06.490" LastActivityDate="2010-11-28T13:20:50.450" Title="Should Software Engineering and Computer Science be separate majors?" Tags="&lt;school&gt;&lt;teaching&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="828" PostTypeId="2" ParentId="826" CreationDate="2010-09-04T05:39:16.643" Score="8" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://visor.binaryage.com/&quot; rel=&quot;nofollow&quot;&gt;Visor&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Arguably the most useful tool I have.  It's an extension for Terminal.app that provides a system-wide retractable terminal window on a hot-key.  It's by Blacktree, the company responsible for quicksilver.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/HMqHx.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-04T05:39:16.643" CommentCount="8" />
  <row Id="829" PostTypeId="2" ParentId="827" CreationDate="2010-09-04T05:40:21.383" Score="2" ViewCount="" Body="&lt;p&gt;It is well known that a typical CS curriculum does not prepare one for the industry, not as much as it wants you to be prepared anyway. So yes, there's a need for a software engineering major, and the two should be distinct, though definitely in the same faculty. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-04T05:40:21.383" />
  <row Id="830" PostTypeId="2" ParentId="358" CreationDate="2010-09-04T06:06:26.127" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.pbinsight.com/products/location-intelligence/applications/mapping-analytical/mapbasic/&quot; rel=&quot;nofollow&quot;&gt;MapBasic&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know what it's like now, but when I used it in the early-mid 1990s, it looked like a great tool, but it had some weird constraint, where location points (I think it was location points) had to be hard coded, which made the entire thing next to useless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was also very difficult to explain to the non-programming boss why you couldn't do exactly what was being done in the sample code.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-04T06:06:26.127" CommunityOwnedDate="2010-09-30T22:46:32.880" />
  <row Id="831" PostTypeId="2" ParentId="272" CreationDate="2010-09-04T06:17:00.830" Score="32" ViewCount="" Body="&lt;p&gt;It really depends who I'm talking to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tell business people &quot;I'm a software developer.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tell technical people &quot;I'm a web app developer.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tell very non-technical people &quot;I'm a programmer.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I list myself in online biographies as a programmer.&lt;/p&gt;&#xA;" OwnerUserId="165" LastEditorUserId="18594" LastEditorDisplayName="" LastEditDate="2011-06-04T01:51:39.427" LastActivityDate="2011-06-04T01:51:39.427" CommunityOwnedDate="2010-12-26T17:01:49.080" CommentCount="7" />
  <row Id="832" PostTypeId="2" ParentId="745" CreationDate="2010-09-04T06:24:53.167" Score="12" ViewCount="" Body="&lt;p&gt;First, try to prevent yourself from being drowsy:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Sit up straight so you breathing is not restricted.&lt;/li&gt;&#xA;&lt;li&gt;Drink plenty of water&lt;/li&gt;&#xA;&lt;li&gt;Stay away from sugar &amp;amp; greasy food&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If I feel drowsy anyway, I will:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Listen to fast music&lt;/li&gt;&#xA;&lt;li&gt;Get up &amp;amp; get my body moving (usually a brisk walk &amp;amp; I get some air)&lt;/li&gt;&#xA;&lt;li&gt;Go somewhere cold (if possible) the cold usually wakes me up for a bit&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If I want to pull an all night coding session, I will:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Have a caffeinated double espresso drink from Starbucks. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-04T06:24:53.167" CommentCount="4" />
  <row Id="833" PostTypeId="2" ParentId="745" CreationDate="2010-09-04T06:49:25.167" Score="3" ViewCount="" Body="&lt;p&gt;Why should you fight your own body?  When I feel I'm tired, I just take a nap at my own desk.  I even have a small cushion there for greater comfort.  It usually takes 10-15 minutes, thus making the net effect on productivity positive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Napping in an open space could seem ineffective due to distractions and noise.  However, I usually turn distractions into my own profit.  A sudden loud speech, or a sound of something falling down nearby invokes ancient animal reflexes, and makes my body think I'm in danger. So I wake up &lt;em&gt;literally&lt;/em&gt; alert, with my heart beating fast, and my mind relaxed and ready for action.  No amount of caffeine can reach the same effect.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-04T06:49:25.167" CommentCount="3" />
  <row Id="834" PostTypeId="2" ParentId="790" CreationDate="2010-09-04T06:55:09.833" Score="3" ViewCount="" Body="&lt;p&gt;Like @Paddyslacker, I too, am no legal expert, but here's my take on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It depends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One Click - No&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some encryption algorithm - Yes&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion, the patent office is not equipped to make these decisions and needs an industry filtration system to rule out unworthy applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What if the patent office crowd sourced confirming the problem is not easily solved. If a reasonably close solution is not found within a given time frame, it could be deemed patent worthy and the application could proceed as normal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might be worth it for programmers in the community to crush bogus patent claims to prevent the future constraints in our industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Failed software patent attempts should also have a financial penalty to encourage only legitimate patent worthy applications.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-04T06:55:09.833" CommentCount="3" />
  <row Id="835" PostTypeId="2" ParentId="739" CreationDate="2010-09-04T07:13:26.637" Score="3" ViewCount="" Body="&lt;p&gt;I'm running on Windows 7 and I leave UAC on and my account isn't a true admin account.  So when I bump into UAC, I have to enter the admin password to continue.  Even under Vista I kept it on.  I've heard a number of developers say it gets in the way, but I've yet to see that.  Under Vista it was a bigger issue as several areas were a little too restrictive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question I always bring up when developers say UAC gets in the way is &quot;What are you doing that you keep running into it?&quot;.  If you are attempting to manipulate files in system folders (Windows, Program Files, IIS sites), you're doing something wrong.  IIS websites can exist outside of C:\inetpub.  SQL Server user databases can exist outside of Program Files.  The only time you should &lt;strong&gt;&lt;em&gt;regularly&lt;/em&gt;&lt;/strong&gt; see the UAC prompt is application installs and updates.  If you're seeing it more often you're likely working against the system rather than with it. &lt;/p&gt;&#xA;" OwnerUserId="62" LastActivityDate="2010-09-04T07:13:26.637" />
  <row Id="836" PostTypeId="2" ParentId="826" CreationDate="2010-09-04T07:23:17.707" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://macromates.com/&quot; rel=&quot;nofollow&quot;&gt;TextMate&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="45" LastActivityDate="2010-09-04T07:23:17.707" CommentCount="2" />
  <row Id="837" PostTypeId="1" CreationDate="2010-09-04T07:28:15.493" Score="11" ViewCount="346" Body="&lt;p&gt;I've recently switched from independent software consultant, to employee and noticed during my job search, that nobody was hiring programmers with more than 10 years experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It occurred to me that maybe programmer competence basically levels out at 10 years and that basically programmers with 16 years experience (like myself) may be only marginally better at implementation than a 10 year programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also occurred to me that software design is where somebody with a lot of experience can benefit an employer most.  And that maybe the 10 year mark is where developers make the leap from coder to architect (or management if you suck ;-).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It occurred to me that I missed a critical exit in my career path.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS-As an independent consultant I was oblivious to this because I was efficiently providing services the clients needed, and was only short changing myself, so I never encountered resistance.&lt;/p&gt;&#xA;" OwnerUserId="165" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:41:41.047" LastActivityDate="2010-09-24T16:29:31.557" ClosedDate="2010-12-28T19:17:14.460" Title="Did I miss an exit in my career?" Tags="&lt;career&gt;&lt;advancements&gt;" AnswerCount="7" FavoriteCount="2" />
  <row Id="838" PostTypeId="2" ParentId="370" CreationDate="2010-09-04T07:38:33.207" Score="3" ViewCount="" Body="&lt;p&gt;I asked a very &lt;a href=&quot;http://stackoverflow.com/questions/554748/is-it-more-difficult-to-find-work-after-40&quot;&gt;similar question&lt;/a&gt; on Stackoverflow a while ago, and the response the I found most accurate is that it's more about you just being &lt;a href=&quot;http://stackoverflow.com/questions/554748/is-it-more-difficult-to-find-work-after-40/657101#657101&quot;&gt;overqualified for most positions&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You really need to know the position you should be in at this point in your career I think.  (I posted a &lt;a href=&quot;http://programmers.stackexchange.com/questions/837/did-i-miss-an-exit-in-my-career&quot;&gt;similar question&lt;/a&gt; this evening)&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-04T07:38:33.207" CommentCount="1" />
  <row Id="839" PostTypeId="2" ParentId="243" CreationDate="2010-09-04T08:04:44.850" Score="1" ViewCount="" Body="&lt;p&gt;My biggest turning point happened while I was still in school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was in &lt;a href=&quot;http://stackoverflow.com/questions/476694/is-programming-training-worth-it/476798#476798&quot;&gt;one of those 1 year programming colleges&lt;/a&gt;  in the 1990s, and did a module in COBOL.  I realize it's been a while, but COBOL was a long dead language even then and nobody was very happy about learning it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;COBOL was one of our first serious languages we were learning, but I figured, it wasn't that important, and I could skip it.  Well, I couldn't skip it, but I could just coast and just get through the project.  So I didn't really read the book, and I tried to patch the project together with samples from the book &amp;amp; other classmates projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, I had a hell of a time, the project took me 4 times longer than it should have, and I wound up cheating on my project to get it done.  :-(&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was a very miserable experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I knew this was not what I was going to school for and that I was wasting both my time &amp;amp; money doing this.  So I spent some time considering if I should quit or really focus on programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I obviously decided to keep going, and from then on, I forgot about marks &amp;amp; tests, and focused all my energy on learning everything I could.  Within 2 months I knew more about 'C' than did any teacher in the school, with only one teacher understanding the code I passed in for projects since I was using concepts they hadn't seen before, and by the time I finished, even he didn't fully comprehend what I was doing (ok it wasn't a very good school).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, it was my decision to &lt;strong&gt;not take short cuts and to understand everything completely before moving on&lt;/strong&gt; that propelled me forward.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially, that was when I turned pro.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-04T08:04:44.850" CommunityOwnedDate="2010-09-04T08:04:44.850" />
  <row Id="840" PostTypeId="2" ParentId="826" CreationDate="2010-09-04T08:24:23.007" Score="2" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://flyingmeat.com/acorn/&quot; rel=&quot;nofollow&quot;&gt;Acorn&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Add text and shapes to your digital&#xA;  pictures. Combine images together to&#xA;  create your own. Work with layers to&#xA;  touch up your favorites or make&#xA;  something new from scratch. Do all&#xA;  this and more with Acorn.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Acorn is an image editor built for the&#xA;  Mac with simplicity in mind. Fast,&#xA;  easy, and fluid, Acorn provides the&#xA;  tools you need to alter and enhance&#xA;  your images, without any overhead.&#xA;  Acorn feels right, it won't drain your&#xA;  bank account, and you don't need a&#xA;  Ph.D. in computer graphics to use it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="106" LastActivityDate="2010-09-04T08:24:23.007" />
  <row Id="841" PostTypeId="2" ParentId="827" CreationDate="2010-09-04T08:48:20.793" Score="10" ViewCount="" Body="&lt;p&gt;Yes, they should be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The relationship between computer science and software engineering is the same as the relationship between physics and mechanical engineering. One provides the theoretical background while the other takes those theories, along with good engineering principles, and applies them to the design and implementation of software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need both in order to produce new and better software. A good computer science education trains people to produce new and better algorithms, data structures, programming languages and paradigms, compilers, and a number of other things that can be used to enhance software systems. A good software engineering education, on the other hand, trains you to take these tools and knowledge obtained through a scientific study of computation, along with a knowledge of the software development lifecycle and process models to actually build the system that a customer wants and needs.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-04T08:48:20.793" CommentCount="1" />
  <row Id="842" PostTypeId="2" ParentId="39" CreationDate="2010-09-04T09:35:33.657" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;The art of simplicity is a puzzle of&#xA;  complexity.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Doug Horton&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="64" LastEditorUserId="64" LastEditorDisplayName="" LastEditDate="2010-09-04T10:35:23.883" LastActivityDate="2010-09-04T10:35:23.883" CommunityOwnedDate="2010-09-04T10:57:01.747" />
  <row Id="843" PostTypeId="1" AcceptedAnswerId="1435" CreationDate="2010-09-04T09:52:38.000" Score="6" ViewCount="220" Body="&lt;p&gt;I was instructed by my project manager that frequent deployment in PROD or to test server should be avoided. But I don't understand why? We roll our testing copy to PROD on every sprint end but suddenly client would ask a simple change to the existing application which would require a re-deployment. When every thing was well tested and QA approved. why should we avoid frequent deployment?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How it was done universally?&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-09-15T21:48:03.750" Title="Why should we NOT do frequent deployment in PROD or to test server?" Tags="&lt;project-management&gt;&lt;web-applications&gt;&lt;deployment&gt;" AnswerCount="4" CommentCount="5" />
  <row Id="844" PostTypeId="2" ParentId="39" CreationDate="2010-09-04T10:57:01.747" Score="122" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Always code as if the guy who ends up&#xA;  maintaining your code will be a&#xA;  violent psychopath who knows where you&#xA;  live.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;mdash; Rick Osborne&lt;/p&gt;&#xA;" OwnerUserId="93" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-27T14:45:37.277" LastActivityDate="2010-09-27T14:45:37.277" CommunityOwnedDate="2010-09-04T10:57:01.747" CommentCount="5" />
  <row Id="845" PostTypeId="2" ParentId="272" CreationDate="2010-09-04T10:58:50.100" Score="7" ViewCount="" Body="&lt;p&gt;Usually I say &quot;software developer&quot;, because it's my actual job title.  (Never just &quot;developer&quot; except to other techies, since there are lots of industries where &quot;developer&quot; means something else entirely, e.g., real estate.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I say &quot;programmer&quot; or &quot;computer programmer&quot;, especially if I'm talking to people who might not be familiar with the term &quot;software developer&quot;.&lt;/p&gt;&#xA;" OwnerUserId="151" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-27T15:12:27.057" LastActivityDate="2011-01-27T15:12:27.057" CommunityOwnedDate="2010-12-26T17:01:49.080" CommentCount="0" />
  <row Id="846" PostTypeId="2" ParentId="837" CreationDate="2010-09-04T11:02:12.133" Score="2" ViewCount="" Body="&lt;p&gt;Was really nobody hiring programmers with more than 10 years experience, or were they just not requiring more than 10 years experience in the job postings?  If it's the latter, maybe they just didn't want to limit the pool of applicants too much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For what it's worth, I work at a small company where virtually everyone including the CEO is under 40.  But last year we hired a gray-bearded old database expert because he was the best qualified applicant for the job.  However, he left for a higher paying position after less than six months, which is maybe what people worry about when hiring someone more senior than they really need.&lt;/p&gt;&#xA;" OwnerUserId="151" LastActivityDate="2010-09-04T11:02:12.133" CommentCount="1" />
  <row Id="847" PostTypeId="2" ParentId="837" CreationDate="2010-09-04T11:09:51.973" Score="2" ViewCount="" Body="&lt;p&gt;Having just had to get a new job I sent my CV to several recruitment agencies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the bits of feedback I got was that it was &quot;pointless&quot; including information that was more than 10 years old (or thereabouts) as it was seen as not being relevant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was told to only include old information if it would be relevant to the job I was applying for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which would support your hypothesis, or suggest that employers are mainly looking for people with &quot;modern, up to date&quot; skills.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-04T11:09:51.973" CommentCount="1" />
  <row Id="848" PostTypeId="1" CreationDate="2010-09-04T11:24:03.287" Score="16" ViewCount="612" Body="&lt;p&gt;Various colleges and universities may offer a degree in Computer Science either as an Arts or a Science.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What differences are there between the two?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would recruiters and those who conduct interviews favor one over the other?  &lt;em&gt;(Bachelor of Arts vs Bachelor of Sciences etc...)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Just wanted to add this link to Joel Spolsky's site to give a better frame of reference: &lt;a href=&quot;http://discuss.techinterview.org/default.asp?joel.3.679751.30&quot; rel=&quot;nofollow&quot;&gt;BA or BS in Computer Science&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="14" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T04:05:58.810" LastActivityDate="2011-02-11T19:20:21.720" Title="Computer Science: Arts or Science?" Tags="&lt;career&gt;&lt;school&gt;&lt;computer-science&gt;" AnswerCount="12" CommentCount="3" FavoriteCount="4" />
  <row Id="849" PostTypeId="2" ParentId="272" CreationDate="2010-09-04T11:36:26.770" Score="12" ViewCount="" Body="&lt;p&gt;I say I'm a software engineer. That was my job title at my last co-op, that's the degree I'm getting, and it's a concise way of saying the things that I have education and/or experience doing.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-04T11:36:26.770" CommunityOwnedDate="2010-12-26T17:01:49.080" CommentCount="3" />
  <row Id="850" PostTypeId="2" ParentId="568" CreationDate="2010-09-04T11:37:12.383" Score="3" ViewCount="" Body="&lt;p&gt;I think that the benefits of a fully managed OS are huge and that could really be the future, but it will require many years to go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good managed operating system will provide you all the managed entry point you need to do every low level thing you need, regardless of being managed: catching interrupts and performing I/O with devices. C# also allows for unsafe code (dealing with pointers) but it will be allowed only in the &quot;device drivers&quot; (which will be just another type of software isolated process).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The benefits in safety, uniformity, portability and especially dependability will certainly exceed any performance drawback. Then a fully managed system is surprisingly fast, as there's no longer need to do context switch.&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-04T12:13:57.527" LastActivityDate="2010-09-04T12:13:57.527" CommentCount="2" />
  <row Id="851" PostTypeId="2" ParentId="568" CreationDate="2010-09-04T11:49:41.493" Score="4" ViewCount="" Body="&lt;p&gt;I think that this is another case where &quot;it depends&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're writing applications such as web browsers, word processors etc. where lightning fast performance is not necessarily an issue then this approach has it's merits. By using this approach you can offer your customers a safer, more controlled experience. Not only are you limiting the damage that can be done by malware, but you are also running in a more consistent environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's like the difference between console games and PC games. The former know exactly what hardware they need to work with so can make use of that knowledge whereas the latter have to be able to cope with a wider variety of graphics cards, sound cards, hard disk speeds etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there will be applications (such as games!) that require the low level access and will still need to be run &quot;natively&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like managed languages you will have to use the appropriate tool for the job.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-04T11:49:41.493" CommentCount="6" />
  <row Id="852" PostTypeId="2" ParentId="272" CreationDate="2010-09-04T11:51:43.273" Score="4" ViewCount="" Body="&lt;p&gt;I always try to be elusive just saying that I'm an employee: if I say that I'm a software developer everyone would ask me to fix their PC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I try to explain that I'm not a PC technician and that I develop embedded software, but that doesn't stop people to bother about their slow computers and other silly question about PCs, e.g. recovering data from wiped or damaged HD or pendrive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, I'd like to call myself a code monkey, but unfortunately I always have too bad or lacking specification and design, so I'm forced to also think instead of just coding!&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2011-06-04T02:15:54.623" LastActivityDate="2011-06-04T02:15:54.623" CommunityOwnedDate="2010-12-26T17:01:49.080" CommentCount="3" />
  <row Id="853" PostTypeId="2" ParentId="837" CreationDate="2010-09-04T12:02:37.840" Score="5" ViewCount="" Body="&lt;p&gt;For some there seems to be natural exit points to Manager and Architect positions, some just grow tired of coding, others (to your point) weren't that great to begin with.  In a lot of companies there's almost an expectation that ALL programmers yearn for such positions and strange looks when they notice your age &amp;amp; experience.  I've had managers ask me about what role I wanted to move towards in my career and are shocked when I respond 'neither'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am in a very similar postion and I've noticed that those of us over 40 and nearing 20 years of experience have just kept the passion about programming longer than those who exit.  We're hopefully better programmers than those that weren't very good and just didn't have the obvious off ramp that were presented to some Architects.  We're pretty effiecent with the code we write (and more importantly the code we don't write) and have a vast experience with what works and what doesn't work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as you enjoy what it is that you do, are still learning, keeping current and are employed, what does it matter? There's no reason you can't be the go to coder until you choose to retire.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-04T12:02:37.840" CommentCount="2" />
  <row Id="854" PostTypeId="2" ParentId="568" CreationDate="2010-09-04T12:10:10.203" Score="3" ViewCount="" Body="&lt;p&gt;Generally I think they're a good idea, but since there's not a lot of them around or close to fully baked it very hard to tell how they'd perform in the real world.  I wish that MS had updated the Singularity project so that we could see where that was going, but my guess is that some of it is being worked into some version of Windows&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-04T12:10:10.203" />
  <row Id="855" PostTypeId="2" ParentId="826" CreationDate="2010-09-04T12:18:29.433" Score="8" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.blacktree.com/&quot; rel=&quot;nofollow&quot;&gt;Quicksilver&lt;/a&gt;&lt;/h1&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-04T12:18:29.433" />
  <row Id="856" PostTypeId="2" ParentId="243" CreationDate="2010-09-04T12:18:31.190" Score="3" ViewCount="" Body="&lt;p&gt;For me it was when the first Beta of .NET was released.  Prior to that I was a pretty decent VB6 programmer but .NET just fit a lot better to how my brain works.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-04T12:18:31.190" CommunityOwnedDate="2010-09-04T12:18:31.190" />
  <row Id="857" PostTypeId="2" ParentId="848" CreationDate="2010-09-04T12:20:06.460" Score="1" ViewCount="" Body="&lt;p&gt;From my experience at Ohio State, the university offers computer programs through the Arts and Science school and also though the Engineering school.  In june I finished my BS in CSE and I can explain the differences here anyway.  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;CSE &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Will be more technical. &lt;/li&gt;&#xA;&lt;li&gt;More math&lt;/li&gt;&#xA;&lt;li&gt;More science&lt;/li&gt;&#xA;&lt;li&gt;Did not require a second language.  &lt;/li&gt;&#xA;&lt;li&gt;Requires some electrical engineering classes.&lt;/li&gt;&#xA;&lt;li&gt;Offered multiple directions:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;software&lt;/li&gt;&#xA;&lt;li&gt;hardware&lt;/li&gt;&#xA;&lt;li&gt;Networking&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Closely coupled with the Electrical Engineering department.&lt;br&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In fact there is a 6 or so class difference between my CSE degree and a similar EE degree.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;CIS &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Less technical (not as much math or science)&lt;/li&gt;&#xA;&lt;li&gt;Required a second language &lt;/li&gt;&#xA;&lt;li&gt;Not as much Electrical Engineering requirements. &lt;/li&gt;&#xA;&lt;li&gt;A handful less credit hours than engineering school.  (I believe it was 185 credits versus 196 for CSE)&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;My conclusion: CSE is more technical and CIS is more of an IT such as desktop support or related positions.  You can be a programmer as a CIS and you can be a IT person as a CSE but I think with CSE I am more prepared for programming (I did CSE software specialization) and as a CIS you are more prepared for desktop support. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is my conclusion anyway, take it or leave it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of recruiters is depends on the job and the person.  A friend of mine recently finished his CSE degree and he has had a desktop support job as a student and is considering pursuing desktop support because he said he likes it.  I know based that a CSE will be more prepared to solve technical problems in the general sense due to the underlying Engineering experience.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I interviewed for a position at a local company looking to hire their first IT person and hope to cut back on 3rd part consulting costs but I felt a CIS would be better prepared for the job and frankly more interested.  The job presented to me no technical problems, but perhaps a CIS would thrive in that position where you are a technical analyst, computer/IT handy man.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, I know from OSU at least most CSE finish in 5 years (not the usual 4 years everyone claims an undergrad program should be) and CIS majors finish in 4 years (not the usual 5 years a OSU Engineering program will take).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me, personally, I like to program and solve technical problems and that is what defines me as a CSE, not my degree itself.  And OSU has prepared me for problem solving, not for programming in language X.  &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-04T12:20:06.460" CommentCount="8" />
  <row Id="858" PostTypeId="2" ParentId="243" CreationDate="2010-09-04T12:25:21.983" Score="3" ViewCount="" Body="&lt;p&gt;My turning point in my career was when I was 12 years old.  My older sister has a boyfriend who showed me a few things on the computer, introduced me to IRC and some other interesting opportunities computers presented.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After a year in a Welding Engineering degree, I decided to stop kidding myself and do what I love, computers.  Since then I have never looked back.  &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-04T12:25:21.983" CommunityOwnedDate="2010-09-04T12:25:21.983" />
  <row Id="859" PostTypeId="2" ParentId="39" CreationDate="2010-09-04T12:31:57.257" Score="76" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;The first 90% of the code accounts for the first 90% of the development time.&#xA;  The remaining 10% of the code accounts for the other 90% of the development&#xA;  time.  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;mdash; &lt;a href=&quot;http://en.wikipedia.org/wiki/Ninety-ninety_rule&quot; rel=&quot;nofollow&quot;&gt;Tom Cargill&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="136" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-27T15:17:30.110" LastActivityDate="2010-09-27T15:17:30.110" CommunityOwnedDate="2010-09-04T12:31:57.257" CommentCount="8" />
  <row Id="860" PostTypeId="2" ParentId="815" CreationDate="2010-09-04T12:35:35.230" Score="0" ViewCount="" Body="&lt;p&gt;Ohio State killed it off recently in their updated MCSS (minimum computing security standard) and now only supports Ie7,8 in the Internet Explorer bunch.  As a web developer at OSU, this has made me a happy coder.&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-04T12:35:35.230" CommentCount="2" />
  <row Id="861" PostTypeId="2" ParentId="659" CreationDate="2010-09-04T12:35:56.157" Score="4" ViewCount="" Body="&lt;p&gt;I do think that there's something to that.  I've worked at a couple of places that used white noise and it did help me.  One place used the sound of water as their white noise and that was really effective... but for some reason I had to take frequent bathroom breaks... :)&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-04T12:35:56.157" />
  <row Id="862" PostTypeId="2" ParentId="848" CreationDate="2010-09-04T14:37:11.237" Score="1" ViewCount="" Body="&lt;p&gt;This is the first time I've even heard of a BA in Computer Science.  I was aware that there is the possibility of either a BA or BSc in subjects such as Geography, but Computer Science really isn't an arts discipline.  If I came across such a qualification when reviewing a CV I would regard it with suspicion and would assume, rightly or wrongly, that it was a watered down technical degree along the lines of Management Information Systems (before I offend any MIS graduates I mean less technical content, not necessarily easier).&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-04T14:37:11.237" CommentCount="11" />
  <row Id="863" PostTypeId="2" ParentId="739" CreationDate="2010-09-04T14:55:36.370" Score="0" ViewCount="" Body="&lt;p&gt;IMHO, it boils down to what you are doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my current job I dev web apps and windows services. Because of that I find my self more productive with it off. If I was working on apps that a user would install, I would leave it on so I could be as close as possible to what the user would experience.&lt;/p&gt;&#xA;" OwnerUserId="81" LastActivityDate="2010-09-04T14:55:36.370" CommentCount="2" />
  <row Id="864" PostTypeId="2" ParentId="778" CreationDate="2010-09-04T15:12:22.893" Score="9" ViewCount="" Body="&lt;p&gt;When interviewing somebody who claims to have a non-trivial amount of Java experience, I ask them about &lt;code&gt;hashcode()&lt;/code&gt; and &lt;code&gt;equals()&lt;/code&gt; and the relationship between them.  It's not really possible to acquire significant Java experience without becoming aware of the potential pitfalls and anybody who is ignorant of the issue is going to be adding hard-to-find bugs to my project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll also ask about &lt;code&gt;ArrayList&lt;/code&gt; and &lt;code&gt;LinkedList&lt;/code&gt; and the relative pros and cons.  This should hopefully prove that they are at least aware of, and thinking about, the performance implications of the code they write.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also like to get them to express an opinion on some technical topic (the usefulness or otherwise of Maven, checked vs. unchecked exceptions, etc.), and then play devil's advocate to see how well they can argue their point.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-04T15:12:22.893" CommunityOwnedDate="2011-02-15T21:30:54.260" CommentCount="2" />
  <row Id="865" PostTypeId="2" ParentId="815" CreationDate="2010-09-04T15:14:55.587" Score="2" ViewCount="" Body="&lt;p&gt;In your mind it should be killed off when:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The work required to support IE6 outweighs the benefit to your company of supporting it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most likely it should be killed off in your mind already because the market share is small and the types of users that use it probably won't consume your products or services.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-04T15:14:55.587" CommentCount="2" />
  <row Id="866" PostTypeId="1" AcceptedAnswerId="868" CreationDate="2010-09-04T15:34:49.023" Score="3" ViewCount="228" Body="&lt;p&gt;I know this is obviously not true for some games, minesweeper, card games, etc.  But what about any game involving simulating the real world environment.  Obviously these games have some form of a physics engineer powering the graphics. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For someone like me who personally did not enjoy physics but loves video games, do I have a chance at ever getting involved in the development cycle of a video game such as this while disliking physics? &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-14T00:11:48.500" Title="Is video game programming usually physics related?" Tags="&lt;physics&gt;&lt;video-game&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="867" PostTypeId="2" ParentId="848" CreationDate="2010-09-04T15:37:54.057" Score="1" ViewCount="" Body="&lt;p&gt;Overall, it really depends on the school and the curriculum/course work necessary for the degree. In the handful of cases where I encountered someone with a BA degree coming in for an interview, I would check out the school and the course work to make sure it was a &quot;legitimate&quot; and in all cases the course work was almost the same as what I took for a BS degree. I've learned over the years that what is important is what the person knows rather than degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some recruiters and interviewers may give a preference to a BS degree because they are more common for computer science, but those that do are generally somewhat uninformed about the degrees and the fact that there aren't typically a lot of differences.&lt;/p&gt;&#xA;" OwnerUserId="164" LastActivityDate="2010-09-04T15:37:54.057" />
  <row Id="868" PostTypeId="2" ParentId="866" CreationDate="2010-09-04T15:52:04.393" Score="5" ViewCount="" Body="&lt;p&gt;There are many aspects to game programing and you don't need to be an expert at all of them. &#xA;If you're on a bigger team you may not even be doing the core game programming but just network communication for example. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For core game programming I would think that above a sound physics understanding you would need a strong mathematical background.  Having a strong mathematical background will allow you to do things like modelling transformations, clippings, keyframe animation, ray tracing, image processing, texture mapping, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having a strong physics background may help you with coming up with new computer graphics methods, but it is not required if you want to become a game programmer. &lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-04T15:57:07.600" LastActivityDate="2010-09-04T15:57:07.600" />
  <row Id="869" PostTypeId="2" ParentId="552" CreationDate="2010-09-04T15:57:50.097" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.michaelfeathers.com/&quot; rel=&quot;nofollow&quot;&gt;Michael Feathers.&lt;/a&gt; He is obviously in the trenches working with nasty, large, untested code bases and he is thinking quietly and intelligently about the best ways to work with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;His &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131177052&quot; rel=&quot;nofollow&quot;&gt;Working Effectively with Legacy Code&lt;/a&gt; book is a must read for anyone who has to touch any existing code base (including their own).&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-04T15:57:50.097" CommunityOwnedDate="2010-09-17T19:05:49.223" />
  <row Id="870" PostTypeId="1" AcceptedAnswerId="6538" CreationDate="2010-09-04T15:59:47.750" Score="37" ViewCount="1595" Body="&lt;p&gt;One per answer please. I'll add my favourite as an answer.&lt;/p&gt;&#xA;" OwnerUserId="38" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:40:54.493" LastActivityDate="2011-01-23T00:54:26.870" CommunityOwnedDate="2011-01-21T21:28:48.980" Title="If you could only have one programming related book on your bookshelf what would it be and why?" Tags="&lt;books&gt;&lt;list&gt;" AnswerCount="27" CommentCount="6" FavoriteCount="27" />
  <row Id="871" PostTypeId="2" ParentId="870" CreationDate="2010-09-04T16:03:42.083" Score="9" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131177052&quot; rel=&quot;nofollow&quot;&gt;Working Effectively with Legacy Code&lt;/a&gt; by Michael Feathers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It contains many good tips of how to get an existing code base under test and manageable, most of which I didn't know about until I read this book. A must read, even if the legacy code you are working with is your own code that you wrote yesterday.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/QznMj.jpg&quot; alt=&quot;Working Effectively with Legacy Code&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="38" LastEditorUserId="38" LastEditorDisplayName="" LastEditDate="2010-09-04T16:18:53.517" LastActivityDate="2010-09-04T16:18:53.517" CommunityOwnedDate="2011-01-21T21:28:48.980" CommentCount="3" />
  <row Id="872" PostTypeId="2" ParentId="870" CreationDate="2010-09-04T16:04:22.963" Score="43" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/6GIgD.jpg&quot; alt=&quot;Code Complete 2nd Ed.&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735619670&quot; rel=&quot;nofollow&quot;&gt;Code Complete&lt;/a&gt; by Steve McConnell. I don't even think it needs explanation. It's the definitive book on software construction. Incredibly well written and covers all aspects of the practical (programming) side of creating software. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-04T16:04:22.963" CommunityOwnedDate="2011-01-21T21:28:48.980" CommentCount="6" />
  <row Id="873" PostTypeId="2" ParentId="837" CreationDate="2010-09-04T16:08:15.770" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;nobody was hiring programmers with more than 10 years experience&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Probably because the people interviewing you didn't themselves have more than 10 years experience so how can they judge the experience properly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also the perspective of years of experience not overall but in the technologies someone is hiring for.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're applying for a job with a newer framework such as the .NET framework, it was released in 2002, so in 2010 you can have at most 8 years experience in it in particular.    &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion the more experience you have, the more of a unique perspective you have. Above years of experience though is your drive to get things done.   It's what makes the difference between an elite rockstar developer and an experienced developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps the difference of 16 years vs 10 years of experience is the wrong one to be focusing on.  You should focus more on you are a rockstar developer vs those other simply experienced developers.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-04T16:08:15.770" CommentCount="2" />
  <row Id="874" PostTypeId="1" AcceptedAnswerId="11345" CreationDate="2010-09-04T16:17:38.990" Score="6" ViewCount="270" Body="&lt;p&gt;In my current job it feels like we have a lot requirement changes. We are an &quot;Agile&quot; shop, so I get that we are supposed to adjust and what not, but sometime the change is large and nothing trivial. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is, how do you effectively communicate the cost of the change? Because of being agile, if a change is big enough something will get dropped from the current sprint, but it usually just get added next time around. Since our model is SaaS, the end customer is effectively the business itself, and they know they will get the cut feature &lt;em&gt;n&lt;/em&gt; weeks later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess what I am trying to get at is the removal of a feature really isn't anything to use for communication as it was only delayed by &lt;em&gt;n&lt;/em&gt; weeks. What other ways do you have to get the business to understand what a change costs?&lt;/p&gt;&#xA;" OwnerUserId="81" LastActivityDate="2010-10-12T17:36:46.543" Title="How do you deal with changing requirements?" Tags="&lt;development-process&gt;&lt;agile&gt;&lt;advice&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="1" />
  <row Id="875" PostTypeId="2" ParentId="874" CreationDate="2010-09-04T16:35:04.067" Score="3" ViewCount="" Body="&lt;p&gt;You could try setting a minimum age of a new addition / change (not applicable to bug fixes).  For example no new changes can be worked on until it is 3 weeks old.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having a minimum age of a task is nice because at the start, every task looks like it's extremely important, but if you wait some time then it's importance will often drop significantly.  Depending on your time interval it will give you at least that amount of time of stability in the tasks you're working on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To track the age you would allow the tasks to be added to some list, but they wouldn't be considered as tasks to work on until that period has expired.&lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-04T16:48:50.313" LastActivityDate="2010-09-04T16:48:50.313" />
  <row Id="876" PostTypeId="2" ParentId="257" CreationDate="2010-09-04T16:43:25.880" Score="2" ViewCount="" Body="&lt;p&gt;Don't forget that the occasional 10 minute distraction can prove to be good. There are many times I need to step away from my desk and play ping pong/foos ball/whatever, and when I get back to my desk I find myself more productive and usually end up solving the problem I had in the first place.&lt;/p&gt;&#xA;" OwnerUserId="81" LastActivityDate="2010-09-04T16:43:25.880" />
  <row Id="877" PostTypeId="2" ParentId="870" CreationDate="2010-09-04T16:45:04.190" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Design_Patterns&quot; rel=&quot;nofollow&quot;&gt;Design Patterns: Elements of Reusable Object-Oriented Software&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is &lt;em&gt;the&lt;/em&gt; book to read on OOP design and architecture.  The patterns are good when used properly, but I think the real value of this book is that it gives you a toolbox of ideas to use when designing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/MAOzq.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-04T16:45:04.190" CommunityOwnedDate="2011-01-21T21:28:48.980" CommentCount="2" />
  <row Id="878" PostTypeId="2" ParentId="501" CreationDate="2010-09-04T17:09:48.053" Score="4" ViewCount="" Body="&lt;p&gt;&lt;code&gt;reinterpret_cast&amp;lt;unsigned long&amp;gt;&lt;/code&gt; in c++.  This operation is useful in dealing with foreign APIs and ensuring numerical precision, why should it be such a pain to type and so ugly to look at?&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-04T17:09:48.053" CommunityOwnedDate="2010-09-04T17:09:48.053" CommentCount="3" />
  <row Id="879" PostTypeId="2" ParentId="870" CreationDate="2010-09-04T17:42:26.950" Score="19" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0262033844&quot; rel=&quot;nofollow&quot; title=&quot;Introduction to Algorithms&quot;&gt;Introduction to Algorithms&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/aiadV.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-04T17:42:26.950" CommunityOwnedDate="2011-01-21T21:28:48.980" CommentCount="4" />
  <row Id="880" PostTypeId="1" CreationDate="2010-09-04T17:50:19.103" Score="11" ViewCount="1869" Body="&lt;p&gt;Just as the title says, whats a good computer to use for programming? IE best amount of RAM, good processor, hard drives, peripherals, desktop or laptop, etc. Do you stick with a brand or do you build your own?&lt;/p&gt;&#xA;" OwnerUserId="40" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:19:24.733" LastActivityDate="2011-02-07T17:13:33.430" CommunityOwnedDate="2011-02-06T19:45:08.167" ClosedDate="2011-02-15T21:04:28.787" Title="What's a good computer to use for programming?" Tags="&lt;favorite&gt;&lt;recommendations&gt;&lt;hardware&gt;" AnswerCount="32" CommentCount="18" FavoriteCount="5" />
  <row Id="881" PostTypeId="2" ParentId="552" CreationDate="2010-09-04T17:51:23.587" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.sics.se/~joe/&quot; rel=&quot;nofollow&quot;&gt;Joe Armstrong&lt;/a&gt;&lt;/strong&gt;. One of the guys behind Erlang and wrote an interesting PhD thesis, &lt;a href=&quot;http://www.erlang.org/download/armstrong_thesis_2003.pdf&quot; rel=&quot;nofollow&quot;&gt;Making reliable&#xA;distributed systems&#xA;in the presence of&#xA;software errors&lt;/a&gt;. Here is a presentation by him: &lt;a href=&quot;http://www.infoq.com/presentations/erlang-software-for-a-concurrent-world&quot; rel=&quot;nofollow&quot;&gt;Software for a concurrent world&lt;/a&gt;. He is also in &lt;a href=&quot;http://www.youtube.com/watch?v=uKfKtXYLG78&quot; rel=&quot;nofollow&quot;&gt;Erlang - The Movie&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-04T17:51:23.587" CommunityOwnedDate="2010-09-17T19:05:49.223" CommentCount="1" />
  <row Id="882" PostTypeId="2" ParentId="880" CreationDate="2010-09-04T17:56:56.230" Score="0" ViewCount="" Body="&lt;p&gt;The last computer I bought was a Dell Pentium II 400 MHz.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have built my own ever since, as I realized I can certainly get a better bang for the buck by doing it myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I only wish we could do the same with laptops.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now, I'm running a Phenom II 965 Black Edition on an Asus M4A79 Deluxe with 8 GB RAM and a XFX Radeon HD 5750 (512 MB).&lt;/p&gt;&#xA;" OwnerUserId="149" LastEditorUserId="149" LastEditorDisplayName="" LastEditDate="2010-09-04T18:02:14.153" LastActivityDate="2010-09-04T18:02:14.153" CommunityOwnedDate="2011-02-06T19:45:08.167" CommentCount="3" />
  <row Id="883" PostTypeId="2" ParentId="880" CreationDate="2010-09-04T17:57:46.480" Score="24" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/MtveQ.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use a Macbook Pro and an external monitor.  The hardware's ok, but I really use it for the operating system- I very much enjoy having a user friendly system for normal tasks, and a unix machine underneath for development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: My next machine may not be a mac- I need to check on the status of the OSx86 project these days. &lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-04T17:57:46.480" CommunityOwnedDate="2011-02-06T19:45:08.167" CommentCount="13" />
  <row Id="884" PostTypeId="2" ParentId="837" CreationDate="2010-09-04T17:57:51.473" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;It occurred to me that maybe&#xA;  programmer competence basically levels&#xA;  out at 10 years and that basically&#xA;  programmers with 16 years experience&#xA;  (like myself) may be only marginally&#xA;  better at implementation than a 10&#xA;  year programmer.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'd counter that a programmer who is marginal with 10 years of experience will still be marginal with 16 years.    However, the 'rockstar' programmers keep learning new skills  tricks, which let them get better at implementation, but also gaining the depth of experience which lets them understand new problem domains well.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, the most valuable developers on a project targeted toward market 'X' are the ones who can have in-depth conversations about 'X' with the domain experts.  You don't have to have the domain knowledge coming in to a new project, but you need to be able to convince the hiring manager that you can gain it quickly.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-04T17:57:51.473" CommentCount="2" />
  <row Id="885" PostTypeId="1" CreationDate="2010-09-04T18:03:23.127" Score="10" ViewCount="582" Body="&lt;p&gt;Is it worth it for programmers/developers/software engineers to go to graduate school?  Or is an undergrad degree enough?  Why?&lt;/p&gt;&#xA;" OwnerUserId="94" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-24T10:36:10.517" LastActivityDate="2010-10-14T20:02:52.690" Title="Is it worth it for programmers to go to graduate school?" Tags="&lt;career&gt;&lt;grad-school&gt;" AnswerCount="10" CommentCount="2" FavoriteCount="3" />
  <row Id="886" PostTypeId="1" CreationDate="2010-09-04T18:06:44.883" Score="11" ViewCount="1044" Body="&lt;p&gt;This is not so much a &quot;what are your hobbies&quot; question (though there's a bit of that) as it is a &quot;is there a correlation between programmers and certain hobbies?&quot;  I'm aware of the stereotypical hobbies for programmers in college (video games and alcoholism), but are there any similar trends among professional software developers as a whole?&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-12-03T12:20:20.943" Title="What hobbies tend to attract programmers?" Tags="&lt;geek-traits&gt;&lt;behavior&gt;" AnswerCount="28" CommentCount="16" FavoriteCount="2" />
  <row Id="887" PostTypeId="2" ParentId="552" CreationDate="2010-09-04T18:08:27.423" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Raymond Chen&lt;/strong&gt;! I admire him and I also envy him as he works in the best product team in the world: the Windows shell team!&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-04T18:08:27.423" CommunityOwnedDate="2010-09-17T19:05:49.223" CommentCount="3" />
  <row Id="888" PostTypeId="2" ParentId="870" CreationDate="2010-09-04T18:08:44.287" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1883577039&quot; rel=&quot;nofollow&quot;&gt;The Zen of Code Optimization&lt;/a&gt; by Michael Abrash&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/05SDa.jpg&quot; alt=&quot;The Zen of Code Optimization&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A must-read for realtime programmers - even if the processor specific infomation is dated, the mindset is invaluable.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-04T18:08:44.287" CommunityOwnedDate="2011-01-21T21:28:48.980" />
  <row Id="889" PostTypeId="2" ParentId="885" CreationDate="2010-09-04T18:10:13.127" Score="13" ViewCount="" Body="&lt;p&gt;Short answer, No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More qualified answer: Often not.  In terms of straight up pay, I understand it's about the same between being fresh out of grad school and being a couple years out of undergrad.  In terms of preparing you for work, a year or two of real experience is much more useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The exception being if you want to work in a specialized field of computer science.  Eg, advanced searching algorithms, computer vision, ai, etc- anything that obviously benefits from further academic training.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-04T18:10:13.127" CommentCount="3" />
  <row Id="890" PostTypeId="2" ParentId="886" CreationDate="2010-09-04T18:19:47.280" Score="2" ViewCount="" Body="&lt;p&gt;I would say that creative hobbies are probably very popular:  art, modeling (as in building models/dioramas/etc), that sort of thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that controlling hobbies would also be popular, i.e. training dogs, showing/raising animals, trimming bonsai trees. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically the hallmarks of programming: creation and control.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-09-04T18:19:47.280" CommentCount="1" />
  <row Id="891" PostTypeId="2" ParentId="870" CreationDate="2010-09-04T18:20:44.507" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201896834&quot; rel=&quot;nofollow&quot;&gt;The Art of Computer Programming&lt;/a&gt;&lt;/strong&gt; by Donald Knuth&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/qMXmF.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-04T18:20:44.507" CommunityOwnedDate="2011-01-21T21:28:48.980" CommentCount="1" />
  <row Id="892" PostTypeId="2" ParentId="885" CreationDate="2010-09-04T18:34:21.383" Score="4" ViewCount="" Body="&lt;p&gt;It really depends on what you want to do. To be a &quot;general purpose&quot; programmer solving typical business problems, having an undergraduate degree is usually enough. However, if you are going into more advanced or specialized areas then you would typically want a graduate degree which is more focused on that specific area.&lt;/p&gt;&#xA;" OwnerUserId="164" LastActivityDate="2010-09-04T18:34:21.383" />
  <row Id="893" PostTypeId="1" AcceptedAnswerId="896" CreationDate="2010-09-04T18:44:45.540" Score="5" ViewCount="289" Body="&lt;p&gt;I study software engineering and have every intention to become one and stay one. However, I also love logic, computability theory, automata theory, and similar computer sciency math topics, and would love to do at least a Masters degree &lt;em&gt;at some point&lt;/em&gt; after I graduate to study these topics more in depth. This is really something I want to do for myself, and not because it will contribute something to my career as a software engineer (and let's face it- it won't either), but I'm worried that a few years of absence from the field will be frowned upon, and will make it harder for me to get back on the horse, so to speak. Is that true? How &lt;em&gt;do&lt;/em&gt; employers react to such absence? &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2010-09-14T12:34:43.093" LastActivityDate="2010-10-14T20:08:36.590" Title="Is going to grad school going to hurt your engineering career?" Tags="&lt;grad-school&gt;" AnswerCount="6" CommentCount="3" />
  <row Id="894" PostTypeId="2" ParentId="893" CreationDate="2010-09-04T18:47:37.437" Score="5" ViewCount="" Body="&lt;p&gt;I would think the grad school would be one of the few absences that employers really wouldn't mind.  It shows a desire to better yourself and to continue learning.  Don't let your skills get stale and you'll probably be fine.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-04T18:47:37.437" />
  <row Id="896" PostTypeId="2" ParentId="893" CreationDate="2010-09-04T18:53:24.490" Score="6" ViewCount="" Body="&lt;p&gt;Many schools have graduate programs that are flexibile enough to be taken while still working full time. In fact, a lot of companies will help cover the costs of going back to school (at least they did, not sure about it now) as long as you maintain a certain grade point average in your classes. Even if you do end up not being able to work while attending school, I would be surprised if an employer looked down on that fact when you started looking for work again.&lt;/p&gt;&#xA;" OwnerUserId="164" LastActivityDate="2010-09-04T18:53:24.490" CommentCount="1" />
  <row Id="898" PostTypeId="2" ParentId="886" CreationDate="2010-09-04T19:02:20.153" Score="3" ViewCount="" Body="&lt;p&gt;Anything that involves technical thinking always sparks my interest.&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-04T19:02:20.153" CommentCount="3" />
  <row Id="899" PostTypeId="2" ParentId="663" CreationDate="2010-09-04T19:05:04.220" Score="0" ViewCount="" Body="&lt;p&gt;To me this answer really depends on your specialization.  Most schools that I know of do not offer general CSE degree but usually a few different such as Hardware, software, networking.  Therefore, it comes down to what specialization.&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-04T19:05:04.220" />
  <row Id="900" PostTypeId="2" ParentId="870" CreationDate="2010-09-04T19:07:10.227" Score="1" ViewCount="" Body="&lt;p&gt;Does an iPad count?  I would like to say my #1 on my bookshelf would be a web browser and ability to search.  Online API and references are the best place and it would depend on my current project set.&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-04T19:07:10.227" CommunityOwnedDate="2011-01-21T21:28:48.980" CommentCount="1" />
  <row Id="901" PostTypeId="2" ParentId="775" CreationDate="2010-09-04T19:08:01.943" Score="3" ViewCount="" Body="&lt;p&gt;I think the &lt;em&gt;ideal&lt;/em&gt; would be to have no specific distinction between “junior” and “senior” at all. People should be treated as individuals, not as items in a drawer. Similarly, each project should be treated as an individual problem that requires individual skills, talents, or personalities to solve. Any such classification into “junior” and “senior” only serves to turn reality into a coarser and coarser approximation of it and thus makes it less and less likely that the decision made in each individual case is in any sense “ideal”.&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-04T19:08:01.943" CommentCount="1" />
  <row Id="902" PostTypeId="2" ParentId="552" CreationDate="2010-09-04T19:09:35.507" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Richard_Branson&quot; rel=&quot;nofollow&quot;&gt;Richard Branson&lt;/a&gt; a &lt;em&gt;very&lt;/em&gt; successful dyslexic.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-09-04T19:09:35.507" CommunityOwnedDate="2010-09-17T19:05:49.223" CommentCount="3" />
  <row Id="903" PostTypeId="2" ParentId="870" CreationDate="2010-09-04T19:12:55.177" Score="-2" ViewCount="" Body="&lt;p&gt;None.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I’m being serious, I don’t have any programming related book on my shelf. I don’t know why other people have such books and I don’t. Maybe it’s because I like to think of myself as someone who thinks for himself. Maybe I perceive all the “advice” in books as dogmatic and inflexible. Maybe I perceive the authors as self-appointed authority figures whose authority I reject. I don’t know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update: I actually have the Unicode 5.0 book on my shelf. But I already read it, so I probably don’t need it anymore. (I use the Internet for reference.)&lt;/p&gt;&#xA;" OwnerUserId="147" LastEditorUserId="147" LastEditorDisplayName="" LastEditDate="2010-10-07T22:37:43.787" LastActivityDate="2010-10-07T22:37:43.787" CommunityOwnedDate="2011-01-21T21:28:48.980" CommentCount="10" />
  <row Id="904" PostTypeId="2" ParentId="552" CreationDate="2010-09-04T19:14:01.850" Score="3" ViewCount="" Body="&lt;p&gt;Fred Brooks&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The man has written to pivotal books for our industry. &lt;/p&gt;&#xA;" OwnerUserId="29" LastActivityDate="2010-09-04T19:14:01.850" CommunityOwnedDate="2010-09-17T19:05:49.223" />
  <row Id="905" PostTypeId="2" ParentId="552" CreationDate="2010-09-04T19:15:48.163" Score="3" ViewCount="" Body="&lt;p&gt;Dan Bricklin&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He basically established the personal software industry with the invention of the spreadsheet application. He continues to be a vocal advocate of Open Source software.&lt;/p&gt;&#xA;" OwnerUserId="29" LastActivityDate="2010-09-04T19:15:48.163" CommunityOwnedDate="2010-09-17T19:05:49.223" />
  <row Id="906" PostTypeId="2" ParentId="39" CreationDate="2010-09-04T19:23:55.853" Score="39" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Unicode support is not a “feature”. It is expected behaviour.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Granted, it is very specific, but it is my favourite because obsolete character sets are just too widely used still...&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-04T19:23:55.853" CommunityOwnedDate="2010-09-04T19:23:55.853" CommentCount="3" />
  <row Id="907" PostTypeId="2" ParentId="870" CreationDate="2010-09-04T19:29:17.867" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codersatwork.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Coders at work&lt;/strong&gt;&lt;/a&gt; by Peter Seibel&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/8Raei.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interesting and inspiring, highly recommended.&lt;/p&gt;&#xA;" OwnerUserId="74" LastActivityDate="2010-09-04T19:29:17.867" CommunityOwnedDate="2011-01-21T21:28:48.980" />
  <row Id="908" PostTypeId="2" ParentId="812" CreationDate="2010-09-04T19:38:40.217" Score="4" ViewCount="" Body="&lt;p&gt;If I understand your question correctly, you are nonetheless looking for something that is relatively measurable and not just a subjective judgement call. If so, I would personally favour &lt;em&gt;the amount of time taken to solve any particular problem&lt;/em&gt; (averaged over all problems and all programmers). In this measure, you might need to consider not just the language itself but also the framework/API used with it. Succinct syntax is a very small factor: a much more important one is that the most commonly required functionality is easily accessible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are looking for something more subjective, I’d say &lt;em&gt;how fun it is&lt;/em&gt;. Programmers tend to be people who want problems solved, so a programming language that is fun for programmers to use is inevitably going to be the one that will solve the most problems. This measure takes into account that different people have different preferences on how to use things, so the “best” programming language will be the one that is most appealing to the widest range of programmers. However, you might need to consider not just the programming language and API here, but also the environment (IDE), which is of course what the programmer actually interacts with.&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-04T19:38:40.217" CommentCount="3" />
  <row Id="909" PostTypeId="2" ParentId="724" CreationDate="2010-09-04T19:44:48.783" Score="8" ViewCount="" Body="&lt;p&gt;Lambda expressions (closures, nested functions, anonymous methods, whatever you call them).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I first came across them in Perl, instantly loved them and wondered why other languages don’t have them. Nowadays I guess it’s not that unique anymore; even PHP have managed to hack them in somehow. But they were semi-unique at the time.&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-04T19:44:48.783" CommentCount="2" />
  <row Id="910" PostTypeId="2" ParentId="49" CreationDate="2010-09-04T20:08:19.287" Score="8" ViewCount="" Body="&lt;p&gt;I would say that one of the reasons that functional programming is not more prevalent is the lack of knowledge base.  My experience is that corporations are very risk averse in terms of implementing technologies that are not main stream and would rather invest in tried and true frameworks (java, c++, c#).  It's only when there is a business need (like in Ericsson) that new paradigms are considered.  But even in Ericsson's case I heard that management demanded that c++ be used and Joe Armstrong was compelled to code erlang calls in c++!! This should show how reluctant corporations are to implement new technologies!&lt;/p&gt;&#xA;" OwnerUserId="168" LastActivityDate="2010-09-04T20:08:19.287" CommentCount="3" />
  <row Id="911" PostTypeId="2" ParentId="870" CreationDate="2010-09-04T20:13:41.843" Score="2" ViewCount="" Body="&lt;p&gt;Design Patterns in Ruby:&#xA;&lt;img src=&quot;http://i.imgur.com/75nAY.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="168" LastActivityDate="2010-09-04T20:13:41.843" CommunityOwnedDate="2011-01-21T21:28:48.980" />
  <row Id="912" PostTypeId="2" ParentId="567" CreationDate="2010-09-04T20:15:51.533" Score="3" ViewCount="" Body="&lt;p&gt;If I had to pick a paradigm for something that might take off in the short-term, I would have to say &lt;a href=&quot;http://en.wikipedia.org/wiki/Aspect-oriented_programming&quot; rel=&quot;nofollow&quot;&gt;Aspect-Oriented Programming&lt;/a&gt;, simply because it can be added to popular Object-Oriented languages like Java, C++, and C#.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-04T20:15:51.533" CommentCount="1" />
  <row Id="913" PostTypeId="1" CreationDate="2010-09-04T20:20:49.300" Score="9" ViewCount="279" Body="&lt;p&gt;I've never had a particularly ergonomic mouse, and I'm not sure what problem they solve. For now, they just make me think the entropy of mouse shapes is proportional to their price.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But since I'm in front of a computer for long periods and I do use a mouse, I should be in their target audience, am I right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have an ergonomic mouse? Ever tried one? Are they worth the weird shape?&lt;/p&gt;&#xA;" OwnerUserId="90" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2010-09-06T01:57:41.623" LastActivityDate="2010-09-24T08:44:57.870" CommunityOwnedDate="2010-09-04T22:28:47.957" Title="What is your take on ergonomic mice?" Tags="&lt;mouse&gt;&lt;ergonomics&gt;" AnswerCount="11" CommentCount="5" FavoriteCount="2" />
  <row Id="914" PostTypeId="2" ParentId="634" CreationDate="2010-09-04T20:26:40.797" Score="3" ViewCount="" Body="&lt;h2&gt;C#:&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Anonymous iterator blocks.&lt;/li&gt;&#xA;&lt;li&gt;Lambda expressions as parameters in custom attributes.&lt;/li&gt;&#xA;&lt;li&gt;Generic custom attributes.&lt;/li&gt;&#xA;&lt;li&gt;Covariance/contravariance in classes and structs (esp. &lt;code&gt;Tuple&lt;/code&gt;).&lt;/li&gt;&#xA;&lt;li&gt;Ability to use &lt;code&gt;System.ValueType&lt;/code&gt; and &lt;code&gt;System.Enum&lt;/code&gt; as parameter types in custom attributes.&lt;/li&gt;&#xA;&lt;li&gt;Generic constraints for operators (esp. &lt;code&gt;operator+&lt;/code&gt;).&lt;/li&gt;&#xA;&lt;li&gt;Generic constraints for constructors with specific parameter types.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;&lt;sub&gt;Note that except for the last two, all of these can be argued to be a deliberate crippling of an existing feature, in other words, a feature that was incompletely implemented. The first and third even have a special compiler error code for the feature limitation.)&lt;/sub&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-04T20:26:40.797" CommunityOwnedDate="2011-03-10T10:29:28.597" CommentCount="1" />
  <row Id="915" PostTypeId="2" ParentId="913" CreationDate="2010-09-04T20:41:17.530" Score="0" ViewCount="" Body="&lt;p&gt;I tried the &lt;a href=&quot;http://www.microsoft.com/hardware/mouseandkeyboard/ProductDetails.aspx?pid=086&quot; rel=&quot;nofollow&quot;&gt;Microsoft Wireless Laser Mouse 6000&lt;/a&gt; and I admit that I'm not a fan. I briefly touched other ergonomic mice, and some of them felt quite nice, but at the moment I'm just using a plain mouse and hold it differently, and am extremly satisfied with that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a picture of how I hold it: &#xA;&lt;img src=&quot;http://i.imgur.com/ESnoc.jpg&quot; alt=&quot;My way of holding an ordinary mouse&quot;&gt;&#xA;To accomodate the shift in hand position I switched the buttons on the mouse so left click is still achieved using the index finger (actually I use both the index and middle finger simultaneously). Rightclick requires a slight stretch, but since it's relatively rare compared to the left click, that's OK. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason I did that was so that I could rest my hand without putting pressure on the area where the fingers meet the hand, and to avoid my wrist getting into an upward slope due to the curve of the mouse. In this position my hand rests on its side on the table, my fingers' tendons are pressure free, and the hand is in an overall more natural position. It's as ergonomic as it can get. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-04T20:41:17.530" CommentCount="1" />
  <row Id="916" PostTypeId="2" ParentId="913" CreationDate="2010-09-04T20:41:56.747" Score="2" ViewCount="" Body="&lt;p&gt;My take on it is that it is &lt;em&gt;mostly&lt;/em&gt; marketing hype.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, &lt;a href=&quot;http://en.wikipedia.org/wiki/Repetitive_strain_injury&quot; rel=&quot;nofollow&quot;&gt;repetitive strain injury&lt;/a&gt; is real and painful, and contrary to intuition the mouse is more conducive to developing RSI than the keyboard. Therefore, if you suspect that you are experiencing the onset of RSI, my advice is to take it seriously and look into the cause. If you can borrow an ergonomic mouse (or keyboard) just to try it out and see whether it alleviates the pain, do so. If it does, buy one. If it doesn’t, don’t blindly assume that it will solve the problem when it clearly doesn’t.&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-04T20:41:56.747" />
  <row Id="918" PostTypeId="2" ParentId="326" CreationDate="2010-09-04T20:47:21.750" Score="0" ViewCount="" Body="&lt;p&gt;In my hobby projects, I actually use &lt;code&gt;#warning&lt;/code&gt;s in the code, so the compiler outputs my TODO list. In a professional setting, I expect the company I work for to have a bug tracker.&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-04T20:47:21.750" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="919" PostTypeId="2" ParentId="610" CreationDate="2010-09-04T20:47:51.727" Score="3" ViewCount="" Body="&lt;h2&gt;C++&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;C++0x lambda syntax very quickly grew on me despite its odd use of symbols:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;std::vector&amp;lt;int&amp;gt; vec, vec2;&#xA;vec.push_back(stuff);&#xA;std::transform(vec.begin(), vec.end(), std::back_inserter(vec2),&#xA;      [](int x)-&amp;gt;int { return (x*x); } );&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, it doesn't work in all compilers. :(&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-09-04T20:47:51.727" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="4" />
  <row Id="921" PostTypeId="2" ParentId="880" CreationDate="2010-09-04T21:33:18.780" Score="1" ViewCount="" Body="&lt;p&gt;A ZTsystems machine. It isn't much, but it works&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;core i7 @ 2.66 GHZ  &lt;/li&gt;&#xA;&lt;li&gt;6GB ram&lt;/li&gt;&#xA;&lt;li&gt;128 GB ssd drive  &lt;/li&gt;&#xA;&lt;li&gt;1TB SATA II for storage&lt;/li&gt;&#xA;&lt;li&gt;a simple video card...just enough for dual DVI out&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="81" LastActivityDate="2010-09-04T21:33:18.780" CommunityOwnedDate="2011-02-06T19:45:08.167" />
  <row Id="922" PostTypeId="2" ParentId="913" CreationDate="2010-09-04T21:42:43.813" Score="3" ViewCount="" Body="&lt;p&gt;For me, most ergronomic mice actually add more strain to my hand.  I've tried probably a dozen or so mice and other pointing devices and have found that trackballs help me the best.  There's a lot less overall movement needed and it doesn't over-use my hand/fingers as much as mice seem to.  The model I've been using lately is from &lt;a href=&quot;http://www.logitech.com/en-us/mice-pointers/trackballs/devices/4680&quot; rel=&quot;nofollow&quot;&gt;Logitech&lt;/a&gt; that allows me to switch hands, beneficial since I'm ambidextrous.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-04T21:42:43.813" />
  <row Id="923" PostTypeId="2" ParentId="886" CreationDate="2010-09-04T21:57:13.710" Score="0" ViewCount="" Body="&lt;p&gt;I know a lot of people within my hobby who are programmers or involved in highly technical aspects of computing.&#xA;I believe the hobby attracts people such as these because it has a high reliance on being able to familiarise and manipulate patterns, usually represented numerically. At the highest levels it needs an astonishingly organised mind in order to suceed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The hobby is change-ringing (bell-ringing).&lt;/p&gt;&#xA;" OwnerUserId="100" LastActivityDate="2010-09-04T21:57:13.710" />
  <row Id="924" PostTypeId="2" ParentId="913" CreationDate="2010-09-04T21:58:32.097" Score="0" ViewCount="" Body="&lt;p&gt;When I was buying my laptop, it turned out that the shop placed wrong price and I saved 50€. I saw the &lt;a href=&quot;http://en.wikipedia.org/wiki/Logitech_VX_Revolution&quot; rel=&quot;nofollow&quot;&gt;Logitech VX Revolution&lt;/a&gt; mouse in the store and in impulse decided to spend the extra money on it. I wasn't a big believer in ergonomic mice before, but it just seemed nice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After several months of using that mouse exclusively, I had to use a cheap mouse at the university. The difference was HUGE! The cheap mouse felt like a brick. Also, the scroll wheel is great when working with long source files.&lt;/p&gt;&#xA;" OwnerUserId="98" LastActivityDate="2010-09-04T21:58:32.097" />
  <row Id="925" PostTypeId="2" ParentId="67" CreationDate="2010-09-04T22:01:04.323" Score="8" ViewCount="" Body="&lt;p&gt;Here are some of the ones I frequently read:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Aaron Stebner - &lt;a href=&quot;http://blogs.msdn.com/b/astebner/&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com/b/astebner/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Raymond Chen - &lt;a href=&quot;http://blogs.msdn.com/b/oldnewthing/&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com/b/oldnewthing/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Eric Lippert - &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com/b/ericlippert/&lt;/a&gt;  &lt;/li&gt;&#xA;&lt;li&gt;&lt;strike&gt; Sara Ford - &lt;a href=&quot;http://blogs.msdn.com/b/saraford/&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com/b/saraford/&lt;/a&gt;&lt;/strike&gt;  &lt;/li&gt;&#xA;&lt;li&gt;Jon Skeet - &lt;a href=&quot;http://msmvps.com/blogs/jon_skeet/default.aspx&quot; rel=&quot;nofollow&quot;&gt;http://msmvps.com/blogs/jon_skeet/default.aspx&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Phil Haack - &lt;a href=&quot;http://haacked.com/Default.aspx&quot; rel=&quot;nofollow&quot;&gt;http://haacked.com/Default.aspx&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Scott Hanselman - &lt;a href=&quot;http://www.hanselman.com/blog/&quot; rel=&quot;nofollow&quot;&gt;http://www.hanselman.com/blog/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Scott Guthrie - &lt;a href=&quot;http://weblogs.asp.net/scottgu/default.aspx&quot; rel=&quot;nofollow&quot;&gt;http://weblogs.asp.net/scottgu/default.aspx&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some podcasts that I listen to are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Deep Fried Bytes - &lt;a href=&quot;http://deepfriedbytes.com/&quot; rel=&quot;nofollow&quot;&gt;http://deepfriedbytes.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Polymorphic Podcast - &lt;a href=&quot;http://www.polymorphicpodcast.com/shows/craftsmanship/&quot; rel=&quot;nofollow&quot;&gt;http://www.polymorphicpodcast.com/shows/craftsmanship/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;.NET Rocks! - &lt;a href=&quot;http://www.dotnetrocks.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.dotnetrocks.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;HanselMinutes - &lt;a href=&quot;http://www.hanselminutes.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.hanselminutes.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Herding Code - &lt;a href=&quot;http://herdingcode.com/&quot; rel=&quot;nofollow&quot;&gt;http://herdingcode.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;geekSpeak - &lt;a href=&quot;http://channel9.msdn.com/shows/geekSpeak/&quot; rel=&quot;nofollow&quot;&gt;http://channel9.msdn.com/shows/geekSpeak/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(And of course, my blog ( &lt;a href=&quot;http://www.geekswithblogs.net/sdorman&quot; rel=&quot;nofollow&quot;&gt;http://www.geekswithblogs.net/sdorman&lt;/a&gt; ) although I havne't posted much lately due to two books I'm working on.)&lt;/p&gt;&#xA;" OwnerUserId="164" LastEditorUserId="1996" LastEditorDisplayName="" LastEditDate="2011-04-08T18:48:00.607" LastActivityDate="2011-04-08T18:48:00.607" CommunityOwnedDate="2010-09-23T12:50:11.533" CommentCount="1" />
  <row Id="927" PostTypeId="2" ParentId="634" CreationDate="2010-09-04T22:15:15.263" Score="2" ViewCount="" Body="&lt;p&gt;Really really flexible python-style string manipulation in C# (or am I just not doing it right?)&lt;/p&gt;&#xA;" OwnerUserId="100" LastActivityDate="2010-09-04T22:15:15.263" CommunityOwnedDate="2011-03-10T10:29:28.597" CommentCount="2" />
  <row Id="928" PostTypeId="2" ParentId="880" CreationDate="2010-09-04T22:26:15.020" Score="14" ViewCount="" Body="&lt;p&gt;*looks down in shame&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Box: Dell Deminsion 3000&lt;/li&gt;&#xA;&lt;li&gt;CPU: Intel P4 2.80 GHz&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;RAM: 512 MB&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS: Windows XP Home SP3 + Lubuntu Linux 10.04&lt;/li&gt;&#xA;&lt;li&gt;Video card: Integrated Intel 82865G &lt;/li&gt;&#xA;&lt;li&gt;Monitor: Dell 17&quot; E773c CRT, 1152x864 resolution&lt;/li&gt;&#xA;&lt;li&gt;Sound Card: Integrated &lt;/li&gt;&#xA;&lt;li&gt;Hard Drives: 20GB IDE 7200 RPM Quantum Fireball lct15 20 + 40GB IDE 7200 RPM Segate ST340014A - Swap distributed over both drives&lt;/li&gt;&#xA;&lt;li&gt;Speakers: Some old pair of speakers that came with another computer. Good bass though&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The above computer is borderline what you can use for big IDE's like Netbeans 6.8-6.9 or IDEA + a few other programs (Windows XP). Back when I had only 256 MB RAM, I could run Netbeans &lt;em&gt;only&lt;/em&gt;, anything else caused excessive disk thrashing. IDEA disk thrashed for about 15 minutes when ever you did anything small to the point where it was unusable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since this is the main computer in the house, I sometimes have to use this next one. Its newer in that I got it later, but its so slow with NetBeans that its practically unusable. Haven't tried with Visual Studio yet&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Box: &lt;strong&gt;Emachines&lt;/strong&gt; W2060&lt;/li&gt;&#xA;&lt;li&gt;CPU: AMD Athlon XP 2000+ 1.66 GHz&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;RAM: 384 MB&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS: Windows XP Pro SP3 + Ubuntu 10.04 (custom Compiz based DE)&lt;/li&gt;&#xA;&lt;li&gt;Video card: Radeon 727 MHz AGP 4x X800 Series, 256 MB Ram&lt;/li&gt;&#xA;&lt;li&gt;Monitor: Dell 17&quot; D1025HTX CRT + Another old 17&quot; CRT, each at 1152x864 resolution&lt;/li&gt;&#xA;&lt;li&gt;Sound Card: Integrated&lt;/li&gt;&#xA;&lt;li&gt;Hard Drive: 60 GB IDE &lt;strong&gt;5200 RPM&lt;/strong&gt; Samsung SV0602H&lt;/li&gt;&#xA;&lt;li&gt;Speakers: Chained to even older laptop through Mic, used as speakers&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="66" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-07T14:43:55.633" LastActivityDate="2010-09-07T14:43:55.633" CommunityOwnedDate="2011-02-06T19:45:08.167" CommentCount="7" />
  <row Id="929" PostTypeId="2" ParentId="886" CreationDate="2010-09-04T22:29:16.910" Score="0" ViewCount="" Body="&lt;p&gt;Like fearoffours I noticed some people within my hobby (yoyoing) are involved in computer-related jobs. I think this has to do with the creative side of programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also I noticed some programmers (e.g. Eric S Raymond) are interested in oriental philosophies (wich has nothing to do with hobbies, but it's still a common pattern).&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-09-04T22:29:16.910" />
  <row Id="930" PostTypeId="2" ParentId="880" CreationDate="2010-09-04T22:31:38.620" Score="0" ViewCount="" Body="&lt;p&gt;At work, I use a custom-built computer from &lt;a href=&quot;http://scan.co.uk&quot; rel=&quot;nofollow&quot;&gt;Scan&lt;/a&gt;, which has a Quad-core Intel Core2 processor, 4 gigs of RAM and a 750 gig hard drive, running Ubuntu 10.04 x64. At home, I use my precious Macbook Pro, running Snow Leopard.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-04T22:31:38.620" CommunityOwnedDate="2011-02-06T19:45:08.167" />
  <row Id="931" PostTypeId="2" ParentId="880" CreationDate="2010-09-04T23:19:22.317" Score="0" ViewCount="" Body="&lt;p&gt;I use an &lt;a href=&quot;http://gdgt.com/hp/pavilion/dv6700/&quot; rel=&quot;nofollow&quot;&gt;HP Pavilion dv6775us&lt;/a&gt;.  Its processor is a little underpowered, but it works well most of the time.&lt;/p&gt;&#xA;" OwnerUserId="36" LastActivityDate="2010-09-04T23:19:22.317" CommunityOwnedDate="2011-02-06T19:45:08.167" />
  <row Id="932" PostTypeId="2" ParentId="886" CreationDate="2010-09-04T23:26:26.063" Score="2" ViewCount="" Body="&lt;p&gt;I don't know how widespread this is but I take karate and 5 of the 10 adult people happen to be involved in programming somehow.  I also live in a place where tech is not very popular.  I guess it's a good way to get some frustration out :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also think that having some kind of musical instrument talent is popular.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-04T23:26:26.063" CommentCount="2" />
  <row Id="933" PostTypeId="2" ParentId="886" CreationDate="2010-09-04T23:50:15.717" Score="29" ViewCount="" Body="&lt;p&gt;My hobby is programming. What I have to do at work does not satisfy my programming willings, so I enjoy personal projects at home. I suppose that this is true for most programmers (and for almost every one in this site!).&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-05T08:03:56.973" LastActivityDate="2010-09-05T08:03:56.973" />
  <row Id="934" PostTypeId="2" ParentId="724" CreationDate="2010-09-04T23:53:57.877" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Continuation&quot; rel=&quot;nofollow&quot;&gt;Continuations&lt;/a&gt; from &lt;a href=&quot;http://en.wikipedia.org/wiki/Scheme_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Scheme&lt;/a&gt; (later adopted by a few other languages including Ruby.)&lt;/p&gt;&#xA;" OwnerUserId="113" LastActivityDate="2010-09-04T23:53:57.877" />
  <row Id="935" PostTypeId="2" ParentId="886" CreationDate="2010-09-05T00:15:50.607" Score="11" ViewCount="" Body="&lt;p&gt;I really enjoy building furniture.  It's very technical, requires precision and I have total control.  Funny how some stereotypes are true.  :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing I will add about building furiniture is that it is a physical object.  We spend so much time programming and creating things that are virtual.  Yes, you can see a web page or an application but it still only exists on the screen, in a computer.  There is something fufilling being able to have the same creative process result in something physical, real-life and touchable.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-09-08T23:09:26.687" LastActivityDate="2010-09-08T23:09:26.687" CommentCount="2" />
  <row Id="936" PostTypeId="2" ParentId="913" CreationDate="2010-09-05T00:36:08.693" Score="0" ViewCount="" Body="&lt;p&gt;Ergonomic mice (and keyboards) can definitely be beneficial for preventing a variety of repetitive stress injuries. The problem I have always had with them is that after getting used to an ergonomic version at work it becomes difficult to use a non-ergonomic version any where else (like at home) and I ended up having to get one for home as well. Not necessarily a big deal (depends on price and who else might be using the computer) but something to be aware of.&lt;/p&gt;&#xA;" OwnerUserId="164" LastEditorUserId="147" LastEditorDisplayName="" LastEditDate="2010-09-05T15:05:15.373" LastActivityDate="2010-09-05T15:05:15.373" CommunityOwnedDate="2010-09-05T00:36:08.693" />
  <row Id="937" PostTypeId="1" AcceptedAnswerId="986" CreationDate="2010-09-05T01:00:28.867" Score="5" ViewCount="215" Body="&lt;p&gt;I know that they are implemented extremely unsafely in C/C++. Can't they be implemented in a safer way? Are the disadvantages of macros really bad enough to outweigh the massive power they provide?&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-05T15:01:57.903" Title="Why aren't macros included in most modern programming languages?" Tags="&lt;programming-languages&gt;&lt;macros&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="1" />
  <row Id="938" PostTypeId="1" CreationDate="2010-09-05T01:08:41.570" Score="4" ViewCount="184" Body="&lt;p&gt;With the rise of smartphones, Java ME is out of fashion for application developers. This is not surprising given the higher quality programming languages and APIs being offered. Yet it still remains the most widely available platform. What do you believe will happen to the platform in the future? If you think it is declining, how long do you think it will take? If you think Oracle will be able to bolster the platform, how do you think that they will do this? How should they do this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Related&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/262/will-java-still-be-relevant-in-5-years&quot;&gt;Will Java still be relevant in 5 years?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="86" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-09-07T23:35:08.513" LastActivityDate="2011-05-12T12:07:25.743" Title="What do you think of the future of Java ME?" Tags="&lt;prediction&gt;&lt;java&gt;&lt;platform&gt;&lt;java-me&gt;" AnswerCount="2" />
  <row Id="939" PostTypeId="2" ParentId="938" CreationDate="2010-09-05T01:41:42.583" Score="3" ViewCount="" Body="&lt;p&gt;Java ME has to evolve or die. Today's smartphones will be tomorrows mass-market devices. There are already people making Android phones in the &quot;feature-phone&quot; price-range. Essentially, Java ME has to transform into something much more like Java SE to remain relevant in tomorrow's mobile phones. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Android API is actually a great example of what Java ME needs to transform into. It has a big chunk of the Java SE APIs with a custom UI API that takes into account the limited input methods and screen resolution of mobile devices.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-05T01:41:42.583" CommentCount="4" />
  <row Id="940" PostTypeId="1" CreationDate="2010-09-05T01:54:51.230" Score="34" ViewCount="1702" Body="&lt;p&gt;This is more a discussion question than an actual attempt to determine the &quot;best&quot;, since that clearly varies by the needs of the organization. I'm more curious about the arguments in favor of different systems across categories (centralized vs distributed, open vs proprietary, etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what do you think is the best version control system?&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-10-12T01:51:40.817" LastActivityDate="2011-03-07T21:04:52.237" CommunityOwnedDate="2011-03-07T21:04:52.237" Title="What are your favorite version control systems?" Tags="&lt;favorite&gt;&lt;version-control&gt;" AnswerCount="16" CommentCount="4" FavoriteCount="17" />
  <row Id="941" PostTypeId="2" ParentId="937" CreationDate="2010-09-05T01:54:51.383" Score="1" ViewCount="" Body="&lt;p&gt;The biggest problem I have seen with macros is that when heavily used they can make code very difficult to read and maintain since they allow you to hide logic in the macro that may or may not be easy to find (and may or may not be trivial).&lt;/p&gt;&#xA;" OwnerUserId="164" LastActivityDate="2010-09-05T01:54:51.383" CommentCount="3" />
  <row Id="942" PostTypeId="2" ParentId="940" CreationDate="2010-09-05T01:58:46.520" Score="72" ViewCount="" Body="&lt;h2&gt;Mercurial&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Because of it's sophisticated ability to branch and merge code, it is the best I've used. The whole DVCS paradigm just makes so much sense. I've not used Git, but I suppose that it qualifies as well. &lt;/p&gt;&#xA;" OwnerUserId="29" LastEditorUserId="29" LastEditorDisplayName="" LastEditDate="2010-12-13T13:38:30.950" LastActivityDate="2010-12-13T13:38:30.950" CommunityOwnedDate="2011-03-07T21:04:52.237" CommentCount="5" />
  <row Id="943" PostTypeId="2" ParentId="826" CreationDate="2010-09-05T02:27:27.527" Score="3" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://cyberduck.ch/&quot; rel=&quot;nofollow&quot;&gt;Cyberduck&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;([s]FTP client)&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-05T02:27:27.527" />
  <row Id="944" PostTypeId="2" ParentId="826" CreationDate="2010-09-05T02:28:51.957" Score="0" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.nscoding.co.uk/&quot; rel=&quot;nofollow&quot;&gt;Dockspaces&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Allows you to have multiple docks and switch between them.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-05T02:28:51.957" />
  <row Id="945" PostTypeId="2" ParentId="826" CreationDate="2010-09-05T02:30:07.657" Score="4" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://jumpcut.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Jumpcut&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Multiple clipboards for the Mac&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-05T02:30:07.657" />
  <row Id="946" PostTypeId="2" ParentId="937" CreationDate="2010-09-05T02:51:27.983" Score="4" ViewCount="" Body="&lt;p&gt;Macros can, &lt;a href=&quot;http://programmers.stackexchange.com/questions/937/why-arent-macros-included-in-most-modern-programming-languages/941#941&quot;&gt;as Scott notes&lt;/a&gt;, allow you hide logic. Of course, so do functions, classes, libraries, and many other common devices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But a powerful macro system can go further, enabling you to design and utilize syntax and structures not normally found in the language. This can be a wonderful tool indeed: domain-specific languages, code generators and more, all within the comfort of a single language environment... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it can be abused. It can make code harder to read, understand and debug, increase the time necessary for new programmers to become familiar with a codebase, and lead to costly mistakes and delays. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for languages intended to &lt;em&gt;simplify&lt;/em&gt; programming (like Java or Python), such a system is an anathema. &lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-05T02:51:27.983" CommentCount="3" />
  <row Id="947" PostTypeId="2" ParentId="870" CreationDate="2010-09-05T04:04:11.680" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321564081&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://i.imgur.com/NJzlv.jpg&quot; alt=&quot;JavaScript &amp;amp; Ajax for the Web: Visual QuickStart Guide, 7th edition&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? Partly because it's paid my mortgage for most of the last 13 years. And partly because it was the first book I ever wrote, so it has a personal meaning as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/032170357X&quot; rel=&quot;nofollow&quot;&gt;This one&lt;/a&gt; has also helped out the bottom line, but not to the same extent.&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-09-05T04:04:11.680" CommunityOwnedDate="2011-01-21T21:28:48.980" CommentCount="2" />
  <row Id="948" PostTypeId="2" ParentId="886" CreationDate="2010-09-05T04:21:44.100" Score="21" ViewCount="" Body="&lt;p&gt;Cooking. The computer/hacking mentality involves trying new things and experimenting. The kitchen is an excellent place to do that.&lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-09-05T04:21:44.100" CommentCount="8" />
  <row Id="949" PostTypeId="2" ParentId="870" CreationDate="2010-09-05T04:36:31.247" Score="9" ViewCount="" Body="&lt;p&gt;I just counted my books today. 23 of 'em. It depends on what I'm working on. I guess the timeless answer is &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131103628&quot; rel=&quot;nofollow&quot;&gt;&quot;C language&quot;, By Kernighan and Ritchie&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-09-05T04:36:31.247" CommunityOwnedDate="2011-01-21T21:28:48.980" CommentCount="1" />
  <row Id="950" PostTypeId="2" ParentId="940" CreationDate="2010-09-05T04:48:08.913" Score="66" ViewCount="" Body="&lt;h2&gt;Git&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Git's fantastic, and I would particularly recommend it to anybody working on open source projects: it's a lot easier to contribute a small, one-off change to a project on Git, especially if its hosted on GitHub, than it is dealing with e-mailing patches about with SVN. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One big caveat for Windows users: Git's Windows tools, though definitely useable, aren't quite up to scratch. When I was forced to use Windows for a while, I tried out Mercurial's Windows interface with an Hg-Git integration tool so I could use my Git repositories, and found that a lot easier to use.&lt;/p&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-09-05T04:48:08.913" CommunityOwnedDate="2010-09-05T04:48:08.913" CommentCount="12" />
  <row Id="951" PostTypeId="2" ParentId="51" CreationDate="2010-09-05T05:08:22.057" Score="3" ViewCount="" Body="&lt;p&gt;The minimal features a versioning tool needs to be able to do - apart from versioning itself, of course - are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;diff: Given two files, or two versions of the same file, what has changed between them?&lt;/li&gt;&#xA;&lt;li&gt;revert: Replace a file with another version of that file.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Other features that I'd consider essential include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;commit/push: Save local versioning information onto a remote server as a means for sharing it with other users or backing it up.&lt;/li&gt;&#xA;&lt;li&gt;update/pull: Update the files with the latest versions as reported by a remote server.&lt;/li&gt;&#xA;&lt;li&gt;blame: Who was responsible for editing a particular line of a file? In which version was this edit made?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Apart from all this, I'd hate to work with a non-distributed VCS. Git has completely spoilt me with the ease of keeping multiple changes in different branches around at the same time without conflict, then combining one branch with another very easily. To say nothing of the ability to keep your entire repository, with its entire history, on your own computer for quick searches. Moving back to the far more static SVN - despite its fantastic tools - would be really hard for me right now.&lt;/p&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-09-05T05:08:22.057" CommunityOwnedDate="2010-09-05T05:08:22.057" />
  <row Id="952" PostTypeId="2" ParentId="940" CreationDate="2010-09-05T05:09:54.940" Score="28" ViewCount="" Body="&lt;p&gt;Warning: Since this post I've found Mercurial and love it much better than SVN. So this post is a bit out of date with the Pro SVN comments and general anti-DVCS, but the anti-git stuff is still relevant &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I'm a fan of &lt;strong&gt;SVN&lt;/strong&gt; over Git. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? Because SVN was much easier for a single developer or small team, and git (specifically msysgit) left me with a bad taste in my mouth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I was interning at a small shop, I was introduced to git on Windows. I immediately noticed the amount of work it took to get it to work with Github. First, I had to generate a ssh private key, paste the public key in Github, then bring up pageant and open my private key each time I wanted to push, which was extremely annoying. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I never really liked that I was pulling down the entire repository. I will admit that I never worked with anything huge, but I would be afraid to download KDE's repository in Git if the entire repo and its revisions are on my HD. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then there was the confusing process to make a commit. TMK, I had to first &quot;stage&quot; all the files I wanted to commit (which sucked when you had many many files, took me a while to find the manual command to stage everything), then do the commit, then push to the main repo (why is that a separate operation?!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You also had the not(!) very helpful commit data. Oh look, this is commit 14f74433245ae17aeeaa part of tree 2167a4934d0a4a7db0de and parent d7042abb4821d3faf600. The hell does that mean? I should be able to figure out things pretty quickly and not have to consult some weird documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Speaking of documentation, at least when I was using it, it seemed everything was in linux man file format, IE confusing and useless to me. I rarely could find much help in the docs and simply resorted to google.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And with commits, the one thing that I didn't like was the lack of version numbers. Now I know that this is because of the design of git, but any software needs a version number. I still remember the marker commits that would pop up saying &quot;Changed version to 1.8.6&quot; or something similar, but you still couldn't do build numbers. To me having the version be 1.8.6.5164 (last part is revision number) tells me a lot more than simply 1.8.6 and a note saying that something minor changed, try it&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Getting software specific, the base program on Windows is msysgit, which is a terrible interface. It locked up on me a few times, had a horrible interface, and CLI-GUI integration was iffy at best. The command line junkies around me hated the gui even more. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Now lets look at SVN. And since I'm on Windows and have a google account, specifically TortoiseSVN and Google Code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, complete shell integration to do everything on the repository (and for you linux people, RabbitVCS does the same thing), no main GUI needed. Getting a repository is easy as a checkout, no SSH needed (can't remember if Github required SSH for pulls), and no entire repo + all past commits sitting on your HD.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Committing is extremal easy, mainly because no SSH or staging is required. You simply check all the files you want using the very helpful select all option that in my msysgit version wasn't available, type in a commit message, and hit commit. Google Code then asks you for your login information (which most clients store), and your done. Simple, easy, and no SSH&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Version numbers? With some easy code, you can add a version number and a commit number to all checkouts, which makes things so much easier. You also get usable version numbers that actually show a change, eg 1.8.6.5165 is newer than 1.8.6.5164. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Documentation? Well, its hard to say. Tortoise is documented, but I haven't actually referred to the official documentation in such a long time that I can't judge. Reading a simple intro guide was enough for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Merging is something else I can't compare. I had to do it once in Git when somebody else committed a change to a file I was working on, but never in SVN. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Which one would I recommend? Well in large teams, git does have its advantages, mainly in its non-linear development cycle. In another project I saw 4 programmers start in separate branches, then merge all the code in very strange ways that somehow morphed into the final master branch. Github and msysgit had a really nice visualization tool for the whole project that I really liked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For single developer or small team projects, SVN would be the best since most of Gits features aren't used and your only getting its negative parts. Simplicity is such a nice thing&lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2011-03-07T20:40:05.630" LastActivityDate="2011-03-07T20:40:05.630" CommunityOwnedDate="2011-03-07T21:04:52.237" CommentCount="27" />
  <row Id="953" PostTypeId="2" ParentId="39" CreationDate="2010-09-05T06:22:29.740" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Minimal Functionality to the desktop as soon as possible.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="67" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-26T21:13:32.160" LastActivityDate="2010-09-26T21:13:32.160" CommunityOwnedDate="2010-09-05T06:22:29.740" />
  <row Id="954" PostTypeId="1" AcceptedAnswerId="2643" CreationDate="2010-09-05T06:24:15.383" Score="11" ViewCount="812" Body="&lt;p&gt;Which is most important in a program and why?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Performance&lt;/li&gt;&#xA;&lt;li&gt;Feature set&lt;/li&gt;&#xA;&lt;li&gt;Looks&lt;/li&gt;&#xA;&lt;li&gt;Compatibility&lt;/li&gt;&#xA;&lt;li&gt;Stability&lt;/li&gt;&#xA;&lt;li&gt;Suggest your own...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="67" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:40:22.530" LastActivityDate="2011-04-12T20:36:53.637" Title="What's your programming philosophy?" Tags="&lt;software-engineering&gt;&lt;philosophy&gt;" AnswerCount="20" CommentCount="1" FavoriteCount="3" />
  <row Id="955" PostTypeId="2" ParentId="880" CreationDate="2010-09-05T06:28:01.553" Score="4" ViewCount="" Body="&lt;p&gt;I use a &lt;a href=&quot;http://shop.lenovo.com/us/products/professional-grade/thinkpad/index.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Thinkpad Edge&lt;/strong&gt;&lt;/a&gt;, its become my favorite now, the best I've used lately, its compact, has an excellent keyboard &amp;amp; touchpad, light to carry and sheer power under the hood. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Core i5 x86-64 @ 2.27 Ghz&lt;/li&gt;&#xA;&lt;li&gt;4 GB RAM&lt;/li&gt;&#xA;&lt;li&gt;500 GB HDD @ 7200rpm&lt;/li&gt;&#xA;&lt;li&gt;Dual boot Win 7 64-bit &amp;amp; Ubuntu&#xA;64-bit ( works with Ubuntu out of the box).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="174" LastEditorUserId="174" LastEditorDisplayName="" LastEditDate="2011-02-07T15:58:35.903" LastActivityDate="2011-02-07T15:58:35.903" CommunityOwnedDate="2011-02-06T19:45:08.167" CommentCount="2" />
  <row Id="956" PostTypeId="2" ParentId="954" CreationDate="2010-09-05T06:32:50.230" Score="19" ViewCount="" Body="&lt;p&gt;I believe you missed the obvious and the most important one : &lt;em&gt;Correctness&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="123" LastActivityDate="2010-09-05T06:32:50.230" CommentCount="7" />
  <row Id="957" PostTypeId="2" ParentId="880" CreationDate="2010-09-05T07:22:11.920" Score="0" ViewCount="" Body="&lt;p&gt;Home:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A quad core linux box (Android projects)&lt;/li&gt;&#xA;&lt;li&gt;A Mac mini (Some iPhone development)&lt;/li&gt;&#xA;&lt;li&gt;An old Asus laptop wit XP on it (For anything windows related)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Work:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A couple of linux/windows dual boot desktop computers for various things in both worlds&lt;/li&gt;&#xA;&lt;li&gt;A HP laptop with linux/windows dual boot for anything that needs to be portable&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="170" LastActivityDate="2010-09-05T07:22:11.920" CommunityOwnedDate="2011-02-06T19:45:08.167" />
  <row Id="958" PostTypeId="1" CreationDate="2010-09-05T07:36:45.683" Score="7" ViewCount="242" Body="&lt;p&gt;What features of your IDE would you miss most if you didn't have? Please list one one feature or group of related features per answer.&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:26:33.343" LastActivityDate="2010-09-14T00:03:32.200" Title="What IDE features would you miss most if you didn't have them?" Tags="&lt;ide&gt;&lt;features&gt;" AnswerCount="13" FavoriteCount="1" />
  <row Id="959" PostTypeId="1" CreationDate="2010-09-05T07:40:04.000" Score="6" ViewCount="777" Body="&lt;p&gt;Will we ever develop artificial intelligence? If so, how long will do you think it take for us to do so?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-20T12:21:19.613" LastActivityDate="2011-04-19T01:26:27.260" CommunityOwnedDate="2011-04-19T01:26:27.260" Title="Will we ever develop artificial intelligence?" Tags="&lt;prediction&gt;&lt;artificial-intelligence&gt;" AnswerCount="16" CommentCount="5" FavoriteCount="2" />
  <row Id="960" PostTypeId="2" ParentId="880" CreationDate="2010-09-05T07:42:31.857" Score="11" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Memory:&lt;/strong&gt; 4GB as a minimum. 8 GB and up as a luxury. Developers often run multiple programs side by side. More memory helps compile times too.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;CPU:&lt;/strong&gt; There is little reason not to have two or more cores today. Again, this helps compile times.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Graphics Card:&lt;/strong&gt; It depends on how many monitors you use to work. A card that supports at least two is best, but it depends on your budget.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Operating System:&lt;/strong&gt; It really depends on the type of programming that you do. Dot NET is restricted to Windows the same way that iOS is restricted to Mac OS. Android can be done on any platform.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hard Drive:&lt;/strong&gt; I'm not picky, but I suppose you need enough space to store source code and install compilers and IDE's on. One approach (as used in video editing) is to have a small SSD for bootup and store everything on externals. In the programming world, you can use the cloud too, because source files are often smaller than video files. (Just don't upload sensitive data to insecure parts of the cloud...) &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;In regards to myself, it depends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Laptop&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This one is an HP Pavilion 2500. I bougth it used for very cheap. I use this at home for web development.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;AMD Turion 64 x2 TL-58 1.9Ghz&lt;/li&gt;&#xA;&lt;li&gt;4GB DDR2 RAM&lt;/li&gt;&#xA;&lt;li&gt;NVidia GeForce 7150M (Integrated)&lt;/li&gt;&#xA;&lt;li&gt;160GB Hard Drive&lt;/li&gt;&#xA;&lt;li&gt;Microsoft Windows 7 Ultimate&lt;/li&gt;&#xA;&lt;li&gt;14.6&quot; screen. I think.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;iMac&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I keep this in the school office. For everything from Web to iOS development.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Intel Core 2 Duo&lt;/li&gt;&#xA;&lt;li&gt;4 GB Dual Channel DDR3&lt;/li&gt;&#xA;&lt;li&gt;Unknown Graphics (256MB ATI)&lt;/li&gt;&#xA;&lt;li&gt;1 TB HDD&lt;/li&gt;&#xA;&lt;li&gt;MAC OS X 10.6.4&lt;/li&gt;&#xA;&lt;li&gt;21.5&quot; Monitor, built in.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Desktop&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;HP Pavillion m9300t. I bought this one too. I use this for web development (I have a local server set up). I also do VB.NET and Video editing on it.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Intel Core 2 Quad CPU&lt;/li&gt;&#xA;&lt;li&gt;8 GB DDR2&lt;/li&gt;&#xA;&lt;li&gt;NVidia GeForce 9000 series 256MB (I forgot which one.)&lt;/li&gt;&#xA;&lt;li&gt;640 GB RAID 0 and a 1TB Caviar Black HDD&lt;/li&gt;&#xA;&lt;li&gt;Windows Vista and Windows 7 Dual Boot&lt;/li&gt;&#xA;&lt;li&gt;Dell 24&quot; Widescreen and Acer 22&quot; set up ata 90 degree angle. That's how it fits on my desk.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;iPad&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's right, you can do limited web development on the iPad too. And no, I did not build this one either. I've used an app called jsAnywhere to do that. When I can spare cash, I'll look into some other web development apps. (or maybe I'll write my own...)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Apple A4 Chip&lt;/li&gt;&#xA;&lt;li&gt;256MB Memory&lt;/li&gt;&#xA;&lt;li&gt;PowerVR SGX&lt;/li&gt;&#xA;&lt;li&gt;16GB Flash Memory&lt;/li&gt;&#xA;&lt;li&gt;iOS 3.2&lt;/li&gt;&#xA;&lt;li&gt;9.7&quot; glossy multitouch display&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I'd love to do a custom build at some point, but there are other priorities right now....  &lt;/p&gt;&#xA;" OwnerUserId="67" LastEditorUserId="67" LastEditorDisplayName="" LastEditDate="2010-09-05T07:53:46.890" LastActivityDate="2010-09-05T07:53:46.890" CommunityOwnedDate="2011-02-06T19:45:08.167" CommentCount="9" />
  <row Id="961" PostTypeId="2" ParentId="958" CreationDate="2010-09-05T07:57:09.497" Score="12" ViewCount="" Body="&lt;p&gt;Auto-complete is most useful feature for me by far.&lt;/p&gt;&#xA;" OwnerUserId="52" LastActivityDate="2010-09-05T07:57:09.497" CommentCount="7" />
  <row Id="962" PostTypeId="2" ParentId="597" CreationDate="2010-09-05T07:57:36.233" Score="1" ViewCount="" Body="&lt;p&gt;About 5 - 15 hours a week outside of work.&lt;/p&gt;&#xA;" OwnerUserId="170" LastActivityDate="2010-09-05T07:57:36.233" />
  <row Id="963" PostTypeId="2" ParentId="958" CreationDate="2010-09-05T08:04:28.830" Score="4" ViewCount="" Body="&lt;p&gt;Extended debugging support. For example, visual studio supports showing the value of a user defined type object's value as tooltip which can be expanded in-place to get more information about the nested class members. This has been huge time saver for me when I switched from VC98 to Visual Studio 2008 (I use C++ in my daily work).&lt;/p&gt;&#xA;" OwnerUserId="123" LastActivityDate="2010-09-05T08:04:28.830" CommentCount="1" />
  <row Id="964" PostTypeId="2" ParentId="954" CreationDate="2010-09-05T08:10:41.107" Score="8" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Readability&lt;/li&gt;&#xA;&lt;li&gt;Maintainability&lt;/li&gt;&#xA;&lt;li&gt;Clear mappings to the specification&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This is to help people that will read, fix, and maintain my code. Programming with this goal helps me to produce high quality code and especially not to indulge in too much aesthetic, pointless optimizations and &quot;over programming&quot;.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-05T08:10:41.107" CommentCount="1" />
  <row Id="965" PostTypeId="2" ParentId="597" CreationDate="2010-09-05T08:13:30.733" Score="2" ViewCount="" Body="&lt;p&gt;About 12 hours per week. This is a crucial part of my programmer life, as it is the only way to actually do what I like, and to learn new things. Actually my resume increases in size much more for personal projects than to what I do at work...&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-05T08:13:30.733" />
  <row Id="966" PostTypeId="1" AcceptedAnswerId="985" CreationDate="2010-09-05T08:14:36.063" Score="37" ViewCount="1788" Body="&lt;p&gt;There are a &lt;a href=&quot;http://stackoverflow.com/questions/170208/must-have-books-on-your-bookshelf&quot;&gt;lot&lt;/a&gt; &lt;a href=&quot;http://programmers.stackexchange.com/questions/870/if-you-could-only-have-one-programming-related-book-on-your-bookshelf-what-would&quot;&gt;of&lt;/a&gt; questions about what programming books should be on the programmer's bookshelf. How about non-programming related books that can help you become a better programmer or developer? It would also be interesting to know why they would help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My first choice would be Sun Tzu's &quot;Art of War&quot; (however cliché), because it made it obvious that the success of any project depends on the strength of its weakest link (and warfare is a big project).&lt;/p&gt;&#xA;" OwnerUserId="170" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2011-01-06T21:48:40.827" LastActivityDate="2011-01-13T09:12:53.627" CommunityOwnedDate="2011-01-06T15:42:27.030" Title="What non-programming books should a programmer read to help develop programming/thinking skills?" Tags="&lt;self-improvement&gt;&lt;books&gt;" AnswerCount="34" CommentCount="1" FavoriteCount="41" />
  <row Id="968" PostTypeId="2" ParentId="959" CreationDate="2010-09-05T08:25:50.323" Score="2" ViewCount="" Body="&lt;p&gt;Well, I think that it is still too early to tell if it will be eventually developed, but some authors tryed to predict when it will happen!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Raymond Kurzweil in &lt;a href=&quot;http://www.singularity.com&quot; rel=&quot;nofollow&quot;&gt;The Singularity Is Near&lt;/a&gt; (in 2005) predicted that &quot;The Singularity&quot; occurs as artificial intelligences in 2045.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The consequences will be, in the few following years, a collective uploading of biological brains into the machines. For Kurzweil it is almost the only path the future can take (unless self destruction of humanity before that technological improvements), but I hope that the future will be something more like the Star Trek utopia. &lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-05T08:25:50.323" CommunityOwnedDate="2011-04-19T01:26:27.260" />
  <row Id="969" PostTypeId="2" ParentId="282" CreationDate="2010-09-05T08:49:58.330" Score="1" ViewCount="" Body="&lt;p&gt;I really enjoy &lt;a href=&quot;http://techzinglive.com/&quot; rel=&quot;nofollow&quot;&gt;TechZing&lt;/a&gt;. It's mostly about &lt;a href=&quot;http://techzinglive.com/?p=257&quot; rel=&quot;nofollow&quot;&gt;bootstrapping startups&lt;/a&gt; and &lt;a href=&quot;http://techzinglive.com/?p=369&quot; rel=&quot;nofollow&quot;&gt;web development&lt;/a&gt;, but there are other topics such as &lt;a href=&quot;http://techzinglive.com/?p=288&quot; rel=&quot;nofollow&quot;&gt;AI&lt;/a&gt; and &lt;a href=&quot;http://techzinglive.com/?p=248&quot; rel=&quot;nofollow&quot;&gt;UFOs&lt;/a&gt;. One of the hosts has developed and launched &lt;a href=&quot;http://pluggio.com/&quot; rel=&quot;nofollow&quot;&gt;two&lt;/a&gt; &lt;a href=&quot;http://swarmsg.com/&quot; rel=&quot;nofollow&quot;&gt;products&lt;/a&gt; the last 14 months or so and this has been interesting to follow.&lt;/p&gt;&#xA;" OwnerUserId="170" LastActivityDate="2010-09-05T08:49:58.330" CommunityOwnedDate="2010-12-21T06:02:41.540" CommentCount="1" />
  <row Id="971" PostTypeId="2" ParentId="958" CreationDate="2010-09-05T09:43:20.510" Score="8" ViewCount="" Body="&lt;p&gt;Code formatting. When I'm in a hurry I don't take care of it, so I love it when my IDE does it for me.&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-09-05T09:43:20.510" />
  <row Id="973" PostTypeId="2" ParentId="257" CreationDate="2010-09-05T10:15:30.847" Score="4" ViewCount="" Body="&lt;p&gt;Use an egg timer to work focused on some task and then take a short break. Repeat. Try out different intervals for example 25 minutes work, 5 minutes break or 45 minutes work and 10 minutes break. I find it helps me stay focused since I know that however tedious the task I will soon get a break.&lt;/p&gt;&#xA;" OwnerUserId="170" LastActivityDate="2010-09-05T10:15:30.847" CommentCount="1" />
  <row Id="974" PostTypeId="2" ParentId="958" CreationDate="2010-09-05T10:22:59.320" Score="22" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Syntax highlighting&lt;/strong&gt; is absolutely a must.  Without it, I just can't read programs.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-05T10:22:59.320" CommentCount="9" />
  <row Id="975" PostTypeId="2" ParentId="756" CreationDate="2010-09-05T10:35:10.513" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.pexforfun.com/&quot; rel=&quot;nofollow&quot;&gt;Pex for Fun&lt;/a&gt; is pretty nice (it's interactive!), especially if you want to take an interviewee and have him solve a few puzzles.&lt;/p&gt;&#xA;" OwnerUserId="135" LastActivityDate="2010-09-05T10:35:10.513" CommentCount="2" />
  <row Id="976" PostTypeId="2" ParentId="954" CreationDate="2010-09-05T11:01:25.610" Score="7" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;The program must work&lt;/li&gt;&#xA;&lt;li&gt;If program works it have to work correctly&lt;/li&gt;&#xA;&lt;li&gt;If it works correctly it have to work securely&lt;/li&gt;&#xA;&lt;li&gt;If it works securely it have to work fast&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The readablity and maintainability are only necessary conditions for above - how can you be sure that program is secure if you cannot even read its code?&lt;/p&gt;&#xA;" OwnerUserId="103" LastActivityDate="2010-09-05T11:01:25.610" CommentCount="2" />
  <row Id="977" PostTypeId="2" ParentId="959" CreationDate="2010-09-05T11:08:30.477" Score="6" ViewCount="" Body="&lt;p&gt;It depends on what you'd accept as intelligence.  The &quot;Turing test&quot; definition of intelligence is very anthropo-centric, and not particularly useful.  The problem is that we (most humans) cannot conceive of intelligence in terms other than what we currently observe in ourselves.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-09-05T11:08:30.477" CommunityOwnedDate="2011-04-19T01:26:27.260" CommentCount="10" />
  <row Id="978" PostTypeId="2" ParentId="39" CreationDate="2010-09-05T11:17:04.237" Score="24" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;All problems in computer science can be solved by another level of indirection... Except for the problem of too many layers of indirection.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;mdash; David Wheeler&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-27T15:19:52.430" LastActivityDate="2010-09-27T15:19:52.430" CommunityOwnedDate="2010-09-05T11:17:04.237" />
  <row Id="979" PostTypeId="2" ParentId="886" CreationDate="2010-09-05T11:25:27.370" Score="1" ViewCount="" Body="&lt;p&gt;Except programming - board games. I don't think about simple board games like battleships etc. but for example strategy games - from level of Warhammer/Warhammer 40K to much more fine level of details - like fights in North Africa during IIWW on board (without help of dice). However possibly less complicated games - like Battelstar Gallactica (based on remastered Battelstar Gallactica)/&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also SF &amp;amp; Fantasy - both films and books.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS. Personally I don't drink much of alcohol (and I don't like strong ones) and I could live entirely without it.&lt;/p&gt;&#xA;" OwnerUserId="103" LastActivityDate="2010-09-05T11:25:27.370" />
  <row Id="980" PostTypeId="2" ParentId="937" CreationDate="2010-09-05T11:31:52.613" Score="4" ViewCount="" Body="&lt;p&gt;The problem with macros is that they are effectively a &lt;em&gt;language syntax extension&lt;/em&gt; mechanism that rewrites your code into something else ... without any fundamental sanity checking.  If you are careful, things are OK.  If you make a mistake, or if you overuse macros you can get into big problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Add to this that many simple things you can do with (C/C++ style) macros can be done in other ways in other languages.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-09-05T11:31:52.613" CommentCount="1" />
  <row Id="981" PostTypeId="2" ParentId="812" CreationDate="2010-09-05T11:51:01.553" Score="2" ViewCount="" Body="&lt;p&gt;You need to define your terminology better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Turing completeness is not about &quot;power&quot; in the sense that you probably mean.  Rather it is about computability; i.e. whether a given language can express any program that can be implemented using a Turing machine.  It turns out that just about every programming language is Turing complete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you are probably after is a measure of what is referred to as programming language &quot;expressiveness&quot;.  I'm not sure if any such measure exists, or if it does, if it is useful.  Fundamentally, different programming languages are better at expressing solutions to different types of problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just to spell it out, programming languages do not have a property know as &quot;power&quot;.  There is a concept commonly known as &quot;expressiveness&quot; or &quot;expressive power&quot; of a programming language.  Expressiveness is partly about how easy it is to write succinct programs to address particular problems.  But there is also a considerable measure of how easy it is to read and write the programs.  It is sort of like &quot;beauty&quot;.  I'll know it when I see it, but don't ask me to define it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simply comparing character counts does not give you an adequate measure of expressiveness.  Otherwise you could make a language more expressive by compressing the sourcecode ... and that's nonsense.   In fact, I don't know of any objective measure of expressiveness, and I strongly suspect that none exists.  Which effectively renders the characteristic useless, and pretty uninteresting.&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-09-17T05:45:03.363" LastActivityDate="2010-09-17T05:45:03.363" CommentCount="3" />
  <row Id="982" PostTypeId="2" ParentId="966" CreationDate="2010-09-05T12:14:55.520" Score="4" ViewCount="" Body="&lt;p&gt;I would say any introductory book on graphic design would be useful for a programmer and help them while programming for some aspects of their work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1566091594&quot; rel=&quot;nofollow&quot;&gt;The Non-Designer's Design Book: Design and Typographic Principles for the Visual Novice&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1566091594&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://i.imgur.com/tqKkx.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-05T12:14:55.520" CommunityOwnedDate="2011-01-06T15:42:27.030" CommentCount="1" />
  <row Id="983" PostTypeId="2" ParentId="958" CreationDate="2010-09-05T12:23:26.623" Score="5" ViewCount="" Body="&lt;p&gt;I would miss if when there was compiling errors, and I double clicked on an error if it didn't take me to the location in code with that error.  When managing a project with hundreds and hundreds of source files this would really kill my day :)&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-05T12:23:26.623" CommentCount="1" />
  <row Id="984" PostTypeId="2" ParentId="937" CreationDate="2010-09-05T12:34:20.860" Score="3" ViewCount="" Body="&lt;p&gt;To answer your questions, think about what macros are predominantly used for (Warning: brain-compiled code).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Macros used to define symbolic constants &lt;code&gt;#define X 100&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This can easily be replaced with: &lt;code&gt;const int X = 100;&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Macros used to define (essentially) inline type-agnostic functions &lt;code&gt;#define max(X,Y) (X&amp;gt;Y?X:Y)&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In any language that supports function overloading, this can be emulated in a much more type-safe manner by having overloaded functions of the correct type, or, in a language that supports generics, by a generic function. The macro will happily attempt to compare &lt;em&gt;anything&lt;/em&gt; including pointers or strings, which might compile, but is almost certainly not what you wanted. On the other hand, if you made macros type-safe, they offer no benefits or convenience over overloaded functions. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Macros used to specify shortcuts to often-used elements. &lt;code&gt;#define p printf&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This is easily replaced by a function &lt;code&gt;p()&lt;/code&gt; that does the same thing. This is quite involved in C (requiring you to use the &lt;code&gt;va_arg()&lt;/code&gt; family of functions) but in many other languages that support variable numbers of function arguments, it is much simpler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Supporting these features &lt;em&gt;within&lt;/em&gt; a language rather than in a special macro language is simpler, less error prone and far less confusing to others reading the code. In fact, I can't think of a &lt;em&gt;single&lt;/em&gt; use-case for macros that can't easily be duplicated in another way. The &lt;em&gt;only&lt;/em&gt; place where macros are truly useful is when they are tied to conditional compilation constructs like &lt;code&gt;#if&lt;/code&gt; (etc.). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On that point, I won't argue with you, since I believe that non-preprocessor solutions to conditional compilation in popular languages are extremely cumbersome (like bytecode injection in Java). But languages like D have come up with solutions that do not require a preprocessor and are no more cumbersome than using preprocessor conditionals, while being far less error-prone.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-05T12:34:20.860" CommentCount="3" />
  <row Id="985" PostTypeId="2" ParentId="966" CreationDate="2010-09-05T13:32:17.560" Score="34" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0465067107&quot; rel=&quot;nofollow&quot;&gt;The Design of Everyday Things&lt;/a&gt; by Donald Norman&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/zHf58.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="5197" LastEditorDisplayName="" LastEditDate="2011-01-10T17:22:55.927" LastActivityDate="2011-01-10T17:22:55.927" CommunityOwnedDate="2011-01-06T15:42:27.030" CommentCount="2" />
  <row Id="986" PostTypeId="2" ParentId="937" CreationDate="2010-09-05T13:34:54.127" Score="5" ViewCount="" Body="&lt;p&gt;I think the main reason is that macros are &lt;em&gt;lexical&lt;/em&gt;. This has several consequences:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The compiler has no way of checking that a macro is semantically closed, i.e. that it represents a “unit of meaning” like a function does. (Consider &lt;code&gt;#define TWO 1+1&lt;/code&gt; — what does &lt;code&gt;TWO*TWO&lt;/code&gt; equal? 3.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Macros are not typed like functions are. The compiler cannot check that the parameters and return type make sense. It can only check the expanded expression that uses the macro.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If the code doesn’t compile, the compiler has no way of knowing whether the error is in the macro itself or the place where the macro is used. The compiler will either report the wrong place half of the time, or it has to report both even though one of them is probably fine. (Consider &lt;code&gt;#define min(x,y) (((x)&amp;lt;(y))?(x):(y))&lt;/code&gt;: What should the compiler do if the types of &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; don’t match or don’t implement &lt;code&gt;operator&amp;lt;&lt;/code&gt;?)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Automated tools cannot work with them in semantically useful ways. In particular, you can’t have things like IntelliSense for macros that work like functions but expand to an expression. (Again, the &lt;code&gt;min&lt;/code&gt; example.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The side-effects of a macro are not as explicit as they are with functions, causing potential confusion for the programmer. (Consider again the &lt;code&gt;min&lt;/code&gt; example: in a function call, you know that the expression for &lt;code&gt;x&lt;/code&gt; is evaluated only once, but here you can’t know without looking at the macro.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Like I said, these are all consequences of the fact that macros are lexical. When you try to turn them into something more proper, you end up with functions and constants.&lt;/p&gt;&#xA;" OwnerUserId="147" LastEditorUserId="147" LastEditorDisplayName="" LastEditDate="2010-09-05T15:01:57.903" LastActivityDate="2010-09-05T15:01:57.903" CommentCount="5" />
  <row Id="987" PostTypeId="2" ParentId="954" CreationDate="2010-09-05T13:42:27.807" Score="5" ViewCount="" Body="&lt;p&gt;Well I assume that everyone's goal is the holy grail of code... the perfect collection of code that solves the problem posed, is flawless, requires zero maintenance, is perfectly secure and performs beyond expectations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To this end I usually strive for simplicity.  Every bit of complexity that is added has to justify its existence and add significant value to the code/project.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-05T13:42:27.807" CommentCount="1" />
  <row Id="988" PostTypeId="2" ParentId="940" CreationDate="2010-09-05T13:44:11.640" Score="9" ViewCount="" Body="&lt;p&gt;Can't say that I've encountered the Best version control software, but I can tell you to stay away from VSS and MKS.  Both are dogs that should be avoided at all costs.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-05T13:44:11.640" CommunityOwnedDate="2011-03-07T21:04:52.237" />
  <row Id="989" PostTypeId="1" AcceptedAnswerId="995" CreationDate="2010-09-05T13:52:50.293" Score="9" ViewCount="262" Body="&lt;p&gt;I'm looking for a really good and light .NET logging component.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've used Enterprise Library and do like it but it's a bit heavy if you don't use other components in the collection.&lt;br&gt;&#xA;I've recently also used BitFactory's .NET Logging Framework and like it too but am not sold on it yet.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there something better?&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-14T22:08:21.937" LastActivityDate="2011-03-24T12:52:33.087" Title="Recommendations for .NET Logging components" Tags="&lt;.net&gt;&lt;logging&gt;&lt;recommendations&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="1" />
  <row Id="990" PostTypeId="2" ParentId="886" CreationDate="2010-09-05T14:30:06.943" Score="0" ViewCount="" Body="&lt;p&gt;In my spare time if I'm not working on private projects I still enjoy things with a technical aspect; building, designing, experimenting. But with a more &lt;strong&gt;physical&lt;/strong&gt; aspect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefor I have taken to; Cooking, Brewing Cider and building things (DIY or in the garden).&lt;/p&gt;&#xA;" OwnerUserId="96" LastActivityDate="2010-09-05T14:30:06.943" />
  <row Id="991" PostTypeId="1" CreationDate="2010-09-05T14:33:15.507" Score="7" ViewCount="295" Body="&lt;p&gt;What are the first 5 things you do before starting a new project?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you always spend a day researching new frameworks? Or, using similar or competing products?&lt;/p&gt;&#xA;" OwnerUserId="96" LastActivityDate="2010-12-12T01:03:18.687" Title="5 things before starting a project?" Tags="&lt;project-management&gt;&lt;programming-practices&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="1" />
  <row Id="992" PostTypeId="2" ParentId="39" CreationDate="2010-09-05T14:35:47.300" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Fail Quickly&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;--Unknown&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="96" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-26T21:13:01.367" LastActivityDate="2010-09-26T21:13:01.367" CommunityOwnedDate="2010-09-05T14:35:47.300" CommentCount="1" />
  <row Id="993" PostTypeId="2" ParentId="39" CreationDate="2010-09-05T14:36:59.717" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Release early. Release often. &lt;em&gt;-- Eric S. Raymond&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="96" LastEditorUserId="13162" LastEditorDisplayName="" LastEditDate="2011-01-19T16:24:40.743" LastActivityDate="2011-01-19T16:24:40.743" CommunityOwnedDate="2010-09-05T14:36:59.717" CommentCount="1" />
  <row Id="994" PostTypeId="2" ParentId="959" CreationDate="2010-09-05T15:12:38.080" Score="1" ViewCount="" Body="&lt;p&gt;I guess that first of all we have to define inteligence. It is very difficult problem similar to questions what is life (we may only recognise life which is similar to our own so we might missed something on Earth).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We already developed certain kinds of A.I. For example spam filters do learn what is spam and what isn't. &#xA;The computers are capable of introspection - the existance of debugger clearly show it - so they are to some extend self-aware.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I belive that the problem is not necessary the A.I. itself - it is the recognition what does intelignece and life actually mean. They are, I belive, not only programming-related questions but it also have to engage phylisophy, psychology and biology specialists.&lt;/p&gt;&#xA;" OwnerUserId="103" LastEditorUserId="103" LastEditorDisplayName="" LastEditDate="2010-09-05T17:37:07.650" LastActivityDate="2010-09-05T17:37:07.650" CommunityOwnedDate="2011-04-19T01:26:27.260" CommentCount="3" />
  <row Id="995" PostTypeId="2" ParentId="989" CreationDate="2010-09-05T15:21:29.300" Score="12" ViewCount="" Body="&lt;p&gt;Have you tried &lt;a href=&quot;http://logging.apache.org/log4net/&quot; rel=&quot;nofollow&quot;&gt;log4net&lt;/a&gt;? I have used it for a few years, and it works well.&lt;/p&gt;&#xA;" OwnerUserId="81" LastActivityDate="2010-09-05T15:21:29.300" CommentCount="2" />
  <row Id="996" PostTypeId="2" ParentId="958" CreationDate="2010-09-05T15:28:17.457" Score="0" ViewCount="" Body="&lt;p&gt;I enjoy the smart helper thing in visual studio. I forget the name of it, but it is that feature the will underline the first letter in vs10 (or last if in vs08), and when you activate it you get a context menu of generate class/method stub/add using statement/etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone know what I am talking about?&lt;/p&gt;&#xA;" OwnerUserId="81" LastActivityDate="2010-09-05T15:28:17.457" CommentCount="2" />
  <row Id="997" PostTypeId="2" ParentId="958" CreationDate="2010-09-05T15:30:22.473" Score="1" ViewCount="" Body="&lt;p&gt;The ones I would miss most are obviously the most fundamental ones, e.g.:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Basic file-handling capability (open and save files)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Basic editing capability (move cursor, insert characters)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Basic programming tools (invoke compiler, run program)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You think these are too basic and too obviously present? Then the ones I would miss most are&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Advanced file-handling capability (open multiple files in tabs, save all)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Advanced editing capability (copy &amp;amp; paste, indent block, search &amp;amp; replace)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Advanced programming tools (step-by-step debugging, ability to abort process)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Still too basic? I suspect you haven’t been specific enough...&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-05T15:30:22.473" />
  <row Id="998" PostTypeId="2" ParentId="954" CreationDate="2010-09-05T15:49:49.853" Score="15" ViewCount="" Body="&lt;p&gt;My philosophy is that every problem is individual and different, and that &lt;em&gt;programming requires thinking&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you pound on any one mantra too much, you will get too much of that and too little of the rest. Your GUI code doesn’t need to be fast if it already responds within 100ms. Your CPU-intensive calculation, on the other hand, needs to be blazing fast, but won’t benefit much from readability if it is properly encapsulated in a method with a readable name and mathematically proven to be correct. Your e-mail client better be compatible with most e-mail servers, even at the expensive of consistency, but its GUI better be consistent and usable, even if it departs from earlier versions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a programmer doesn’t take the time to &lt;em&gt;think&lt;/em&gt; about what the actual real goal is, the resulting software is less likely to achieve that goal.&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-05T15:49:49.853" CommentCount="2" />
  <row Id="999" PostTypeId="2" ParentId="991" CreationDate="2010-09-05T15:51:37.057" Score="4" ViewCount="" Body="&lt;p&gt;This is pretty project-dependent.  Is this a project I'm starting with the intent of selling, or a project for a specific customer?  Also, what constitutes &quot;starting&quot;? Is that before or after requirements gathering? A rough list, though:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Get a context for the project.  That is, figure out what your customer or potential user is trying to accomplish and why.  If you're building a hotel registration system, what's wrong with OTS options, for example.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Gather requirements.  Meet with stakeholders.  Meet with users.  Meet with anyone who has a say in the project, if you can.  Look at existing solutions that this project will replace, either that the customer is using or that exist in the market place.  From there, write it all down in a non-technical language as you can- a good reqs doc should describe what's to be done but not how to do it.  Then discuss this doc with the customer and iterate until they agree with it.  This step can be less formal for smaller projects (possibly even entirely verbal).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Start making technical decisions.  Pick languages, frameworks, ORMs, databases, etc that best solve the problem, whether this means sticking with something you know or learning something new.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Analyze the risks for this project.  If this is a government contract, you probably want a 100 page leather-bound risk report.  If it's a 3-man 4-month project, you might be fine with some notes in a text file or a spreadsheet.  Either way, you want to figure out what can go wrong with the project, how likely it is to happen, how much it'll hurt, and what you are going to do to prepare for it, handle it, and/or mitigate it's effects after the fact.  A common one, for example, is &quot;One of the devs gets hit by a bus, quits, gets sick, etc.&quot;  So you might mitigate that by pair programming to share knowledge, using good source control practices to keep code centralized, etc.  Overall, the process of sitting and thinking about what could go wrong and being prepared for the possibilities is more important than actually writing out all the contingency plans.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Set up the technology.  It's the sort of thing that no one wants to do once you're in the thick of actually coding, so set up your repo, your build server, your build system, your wikis, your bug tracker, or whatever you intend to use for your project.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-05T15:51:37.057" />
  <row Id="1000" PostTypeId="2" ParentId="954" CreationDate="2010-09-05T15:55:56.290" Score="12" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Simplicity&lt;/strong&gt; - I hate it when people recommend the super complex, or standards that recommend the hardest way to do things. Should I spend 5 hours trying to learn the overly complex way that I'll probably forget when I come back months later, or spend 30 minutes writing what I know in simple terms that makes sense to everybody?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Lightness where possible&lt;/strong&gt; - I was looking for an easy way to do MySQL in Java without using barbarian SQL statements everywhere. The first thing I was recommended was Hibernate, which required several complicated XML files (and I hate XML) and strange complicated annotations everywhere. I wanted to avoid Hibernate at all costs, so literally only an hour of Google found me &lt;a href=&quot;http://www.easierjava.com/&quot; rel=&quot;nofollow&quot;&gt;Easier Java Persistence (was once JPersist)&lt;/a&gt; which was active (at least compared to other frameworks), required &lt;em&gt;0 annotations or XML files&lt;/em&gt;, came with an easy to use guide, and for my purposes was just as powerful as Hibernate as well as lighter than it. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;(For OOP) Create a class only when necessary&lt;/strong&gt; - I'm tired of people creating classes for every single thing creating convoluted API's and headache for anybody to maintain. I go by the opposite of what people say: &quot;&lt;em&gt;Be afraid&lt;/em&gt; of creating a class&quot;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Document, Document, Document&lt;/strong&gt; - I can't remember how many times I've seen good looking projects with only a quickstart guide and 0 documentation anywhere else. If I can't write a tutorial yet, I'll just document the methods as much as I can. But a tutorial and a manual is imperative, and I don't consider my project finished until everything is documented.  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-05T15:55:56.290" CommentCount="3" />
  <row Id="1001" PostTypeId="2" ParentId="966" CreationDate="2010-09-05T16:03:54.447" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/The_Soul_of_a_New_Machine&quot; rel=&quot;nofollow&quot;&gt;The Soul of a New Machine&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/SOoqp.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-05T16:03:54.447" CommunityOwnedDate="2011-01-06T15:42:27.030" />
  <row Id="1002" PostTypeId="2" ParentId="958" CreationDate="2010-09-05T16:07:16.110" Score="2" ViewCount="" Body="&lt;p&gt;Navigation tools:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Go to definition&lt;/li&gt;&#xA;&lt;li&gt;Go to implementation&lt;/li&gt;&#xA;&lt;li&gt;Go to line N&lt;/li&gt;&#xA;&lt;li&gt;Go to type&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These alone (on key-combos) probably increase my over development speed by 30-40%.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-05T16:07:16.110" CommentCount="1" />
  <row Id="1003" PostTypeId="1" CreationDate="2010-09-05T16:14:27.797" Score="1" ViewCount="272" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/219/what-is-your-favorite-editor-ide&quot;&gt;What is your favorite editor/IDE?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;We all have our &lt;a href=&quot;http://programmers.stackexchange.com/questions/219/what-is-your-favorite-editor-ide&quot;&gt;favorite IDE's&lt;/a&gt; for our language. Java people have IDEA, NetBeans, and Eclipse, C# people have Visual Studio, etc. But what I'm wondering is &lt;strong&gt;why?&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Why have you chosen your IDE?&lt;/strong&gt; Eg learned the language using it, employer uses it, first thing you found, etc&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;What makes your IDE better than the others?&lt;/strong&gt; - Eg better syntax highlighting, better code complete, better refractoring, more advanced, better project management, etc&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;What would you say to convince other people to switch?&lt;/strong&gt; - Don't just restate whats above&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Rules&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Keep comparisons to the same scope&lt;/strong&gt; - Don't compare NetBeans to Windows Notepad &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Explain&lt;/strong&gt; - &quot;Its just better&quot; is useless &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Respect others opinions&lt;/strong&gt; - People disagree. Say what you want to say and drop it. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Note that this isn't a duplicate of &lt;a href=&quot;http://programmers.stackexchange.com/questions/219/what-is-your-favorite-editor-ide&quot;&gt;What is your favorite editor/IDE?&lt;/a&gt; because they only say what they use, they don't defend it&lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-24T10:34:23.717" LastActivityDate="2010-09-24T10:34:23.717" ClosedDate="2010-09-08T10:22:53.060" Title="The great debate: Compareing IDE's and text editors" Tags="&lt;holy-war&gt;&lt;ide&gt;&lt;text-editor&gt;" AnswerCount="1" CommentCount="3" FavoriteCount="1" />
  <row Id="1004" PostTypeId="1" CreationDate="2010-09-05T16:19:43.797" Score="0" ViewCount="273" Body="&lt;p&gt;From what I've heard there was IronRuby and Ruby.NET and a few other variations. I've also heard that Ruby may not be supported anymore by Microsoft as they started to lay of much of that development group.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to know which implementation(s) of Ruby is likely to survive, and which one will be adopted into large enterprises.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would also be nice know if the adoption into enterprises is likely to be limited to a certain industry (finance, technology, education) Business type (start up, enterprise) or platform (windows, mac, linux, other-nix)&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-09-27T21:02:47.707" Title="Which implementation of Ruby will survive?" Tags="&lt;programming-languages&gt;&lt;career&gt;&lt;holy-war&gt;&lt;web-development&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="1005" PostTypeId="1" CreationDate="2010-09-05T16:22:06.710" Score="1" ViewCount="72" Body="&lt;p&gt;I'm developing a set of websites that are geared towards the IT Professional at businesses ranging from 10 to 5,000 employees (small/med business).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most IT Professionals expect a certain set of features when dealing with blogs, forums (such as gravitar)... but what I'm most interested in are the ~other~ addins that would be used in a site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;ShareThis&quot; and it's variations are a good example of a feature that I can incorporate... but there are other tools as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SSO, SAML, and WS-Trust are also examples that fall in this bucket of features I'm looking for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Q: What re-usable website features do you like (or hate) to see when a new .com popps up? Would your answer change if you're visiting my site while at work?&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-09-05T18:15:50.260" LastActivityDate="2010-09-06T18:34:18.623" Title="What website features are essential for attracting IT Pros from corporations?" Tags="&lt;technology&gt;&lt;features&gt;&lt;market-share&gt;&lt;non-technical-manager&gt;&lt;twitter&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="1006" PostTypeId="1" CreationDate="2010-09-05T16:26:36.933" Score="23" ViewCount="1136" Body="&lt;p&gt;It's tough for me to focus on programming and getting things done.  How do you get yourself in the mindset where you create good code, that you won't have to come back and re-work it?&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-10-16T01:10:25.653" LastActivityDate="2011-05-13T22:24:23.830" Title="How do you motivate yourself to program (when you'd really rather be doing something else)?" Tags="&lt;career&gt;&lt;self-improvement&gt;&lt;motivation&gt;&lt;focus&gt;&lt;distractions&gt;" AnswerCount="13" CommentCount="6" FavoriteCount="9" />
  <row Id="1007" PostTypeId="1" AcceptedAnswerId="11115" CreationDate="2010-09-05T16:36:16.257" Score="7" ViewCount="163" Body="&lt;p&gt;Tester and blogger &lt;a href=&quot;http://blog.testyredhead.com/&quot; rel=&quot;nofollow&quot;&gt;Lanette Creamer&lt;/a&gt; recently posted this question on &lt;a href=&quot;http://twitter.com/lanettecream&quot; rel=&quot;nofollow&quot;&gt;Twitter&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If you are a professional software developer who works with testers, think of the best testers you know. What traits do they have in common?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I thought it would make an excellent question for here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My thoughts are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;They want to remove ambiguity from requirements even if it means asking awkward questions.&lt;/li&gt;&#xA;&lt;li&gt;They create new features by seeing the way software &quot;should&quot; work, rather than just how it's documented.&lt;/li&gt;&#xA;&lt;li&gt;They demonstrate honesty and integrity and encourage but not demand it from those around them. In other words, they model behavior.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What are the traits of the best testers you've worked with?&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-11-19T03:53:24.267" Title="What traits do the best testers you've worked with have in common?" Tags="&lt;team&gt;&lt;testers&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="2" />
  <row Id="1008" PostTypeId="2" ParentId="1006" CreationDate="2010-09-05T17:05:30.737" Score="1" ViewCount="" Body="&lt;p&gt;Whenever work drains my energy I usually re-inspire myself by reminding myself why I got into this field. The Stack Overflow podcast used to be one way of doing this (before I ran out of episodes), or there was the Linux Haters Blog (I love reviewing software, so anything that makes me think about software in a critical manner always inspires me), or read The Daily WTF or entries to the Obfuscated C code contest for some good programming related entertainment. &#xA;You get the idea. Let yourself have some fun with your field every once in a while to remind yourself why you wanted to do this. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's of course assuming you became a programmer because you like programming, and not just because it pays well. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-05T17:05:30.737" />
  <row Id="1009" PostTypeId="1" CreationDate="2010-09-05T17:06:27.977" Score="6" ViewCount="556" Body="&lt;p&gt;I'd like to sell my software on the 'net but am not sure how to do the whole Merchant setup.  I have access to Commerce Server 2009, and I want to seem professional so a plain old PayPal account is out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do I need to know/do to sell a few things using ASP.NET, accept credit cards, and what not? &lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2011-05-28T14:38:48.007" Title="How do I sell my software on the Internet?" Tags="&lt;commerce&gt;&lt;sales&gt;&lt;independent&gt;&lt;isv&gt;&lt;credit-cards&gt;" AnswerCount="5" FavoriteCount="5" />
  <row Id="1010" PostTypeId="1" CreationDate="2010-09-05T17:11:51.227" Score="4" ViewCount="209" Body="&lt;p&gt;There is so much going on in the cloud, acronyms like PaaS, SaaS, IaaS, (any more?) that I'm losing track of what technologies are important (within each category) how relevant each one is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the core cloud technologies that Architects should know about in each category?&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2011-02-14T20:43:09.610" Title="What cloud technologies should Application Architects know about?" Tags="&lt;career&gt;&lt;learning&gt;&lt;architect&gt;&lt;cloud&gt;&lt;paas&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="3" />
  <row Id="1011" PostTypeId="2" ParentId="1005" CreationDate="2010-09-05T17:26:46.393" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;No ShareThis&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Wjzf5.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've heard various opinions, but I've always though of ShareThis buttons as thoroughly useless.  Firstly, 99% of sites that have them (especially corporate sites) have nothing worth sharing on them.  Secondly, it's almost no effort to paste in a link to wherever it's being shared (email, reddit, facebook, etc), and doing it manually means that there won't be the company-provided filler text that I have to delete/edit myself (eg, &quot;FishToaster thought you might like this link...&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, yeah, ShareThis sucks.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-05T17:26:46.393" CommentCount="2" />
  <row Id="1012" PostTypeId="2" ParentId="1009" CreationDate="2010-09-05T17:53:27.887" Score="0" ViewCount="" Body="&lt;p&gt;Personally, I'd just use a payment processor such as WorldPay if it's a small business. You would have to pay them a commission for processing payments on your behalf, but you don't have to worry too much about security on your end, and the liability for security (IANAL, make sure you read the T&amp;amp;Cs carefully) gets shifted to them.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-05T17:53:27.887" CommentCount="3" />
  <row Id="1013" PostTypeId="1" CreationDate="2010-09-05T18:11:04.217" Score="22" ViewCount="1967" Body="&lt;p&gt;Most developers I know have at least one or two horror stories about god-awful dev tools they've had to use.  Archaic source control systems, bloated IDEs, gigantic project management tools- what's your worst?&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T15:51:29.487" LastActivityDate="2011-03-14T16:50:30.017" CommunityOwnedDate="2011-02-01T07:56:02.387" Title="What's the worst development tool you've ever had to use?" Tags="&lt;experience&gt;&lt;tools&gt;" AnswerCount="53" CommentCount="3" FavoriteCount="6" />
  <row Id="1014" PostTypeId="2" ParentId="1013" CreationDate="2010-09-05T18:19:36.007" Score="3" ViewCount="" Body="&lt;p&gt;In my company there's a horrible bug tracking system, it is an Access front end to a MySQL database. It is not integrated with the source control system, the forms are designed horribly, only test team can open issues, we can't reassign issues... it's a mess...&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-05T18:19:36.007" CommunityOwnedDate="2011-02-01T07:56:02.387" CommentCount="6" />
  <row Id="1015" PostTypeId="1" CreationDate="2010-09-05T18:21:51.540" Score="13" ViewCount="474" Body="&lt;p&gt;I'm going to ask this question at the risk of someone exposing me their own personal algorithm, if that's what you do please don't post that!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm interested in learning what software you use to manage your passwords on various sites.  If you do use software, what is it?  What features do you like/hate/want?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other day I discovered a vendor that offers a &quot;Hosted Cloud&quot; platform to manage your passwords.  Would you consider such a thing?  What would your requirements be?&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-09-05T18:55:18.900" LastActivityDate="2010-11-08T12:22:49.680" ClosedDate="2010-11-08T22:37:15.673" Title="How do you keep track of all your passwords?" Tags="&lt;passwords&gt;&lt;security&gt;&lt;social-engineering&gt;" AnswerCount="13" CommentCount="1" FavoriteCount="4" />
  <row Id="1016" PostTypeId="2" ParentId="966" CreationDate="2010-09-05T18:23:36.167" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.amazon.com/Back-Napkin-Solving-Problems-Pictures/dp/B0020MMBCG&quot; rel=&quot;nofollow&quot;&gt;The Back of the Napkin&lt;/a&gt;, by &lt;a href=&quot;http://www.thebackofthenapkin.com/&quot; rel=&quot;nofollow&quot;&gt;Dan Roam&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://www.coverbrowser.com/image/bestsellers-2008/302-7.jpg&quot; alt=&quot;The Back of the Napkin&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A great book about visual thinking techniques.  There is also an &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1591843065&quot; rel=&quot;nofollow&quot;&gt;expanded&lt;/a&gt; edition now.  I can't speak to that version, as I do not own it; yet.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-09-05T18:23:36.167" CommunityOwnedDate="2011-01-06T15:42:27.030" CommentCount="1" />
  <row Id="1017" PostTypeId="2" ParentId="1015" CreationDate="2010-09-05T18:31:07.227" Score="4" ViewCount="" Body="&lt;p&gt;Just remember them.  It's not too hard:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Use passphrases.  &quot;TheComputerIsGreenSometimes&quot; is easy to remember than &quot;Fo84rz&quot; and more secure.&lt;/li&gt;&#xA;&lt;li&gt;Reuse about a handful, along with a handful of usernames.  Just keep things partitioned such that if one password gets discovered, you don't lose everything.  For example, my banking accounts use passwords that I don't use for anything else, but most of my email accounts use the same password.  Reuse means your more likely to remember them.&lt;/li&gt;&#xA;&lt;li&gt;Pick passwords that have meaning to you (but are not obvious, like your birthday or something).  Eg, your second favorite brand of beer, or your the summer camp your wife visited as a kid.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-05T18:31:07.227" CommentCount="3" />
  <row Id="1018" PostTypeId="1" AcceptedAnswerId="1024" CreationDate="2010-09-05T18:58:55.553" Score="21" ViewCount="804" Body="&lt;p&gt;This is a question that I get a lot from friends and such. It's mostly teasing, but it's actually a decent question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;what would you do for work or, if (like me) computers is your hobby, as a hobby, if there were never any computers?&lt;/p&gt;&#xA;" OwnerUserId="67" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-18T18:16:59.237" LastActivityDate="2010-12-13T15:28:45.010" Title="What would you do if there were no computers?" Tags="&lt;lifestyle&gt;&lt;hobbies&gt;" AnswerCount="30" CommentCount="10" FavoriteCount="3" />
  <row Id="1019" PostTypeId="2" ParentId="1013" CreationDate="2010-09-05T19:03:15.480" Score="3" ViewCount="" Body="&lt;p&gt;My worst has got to be &lt;a href=&quot;http://en.wikipedia.org/wiki/IBM_Configuration_Management_Version_Control_%28CMVC%29&quot; rel=&quot;nofollow&quot;&gt;CMVC&lt;/a&gt;.  I've heard plenty of friends complain about Rational ClearCase- well, CMVC is what IBM sold before they acquired Rational and replaced it.  I had to use this last year and, well, committing was a 15 minute process with a couple dozen steps.  The interface was an AWT nightmare.  It was constantly getting tangled up in its own business rules to the point where we had to blow away recent changes and redo them.  It was a nightmare.  A number of us used SVN or Hg locally, just so we had some actual version control before we pushed into that black hole that was CMVC.&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="6" LastEditorDisplayName="" LastEditDate="2010-09-05T19:14:38.793" LastActivityDate="2010-09-05T19:14:38.793" CommunityOwnedDate="2011-02-01T07:56:02.387" CommentCount="1" />
  <row Id="1020" PostTypeId="1" CreationDate="2010-09-05T19:03:41.143" Score="7" ViewCount="286" Body="&lt;p&gt;Many people donate their time to various computer-related tasks in their free time (S.O. for example)... but what if you could donate your software or skills to a NPO, would you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to get an idea of how many people here would be interested in such a thing, and what they would be willing to contribute.  I'm going to use this information as an informal survey I'll be using in my business plan.  (Yes NPO's have business plans)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:&lt;br&gt;&#xA;I'm not asking for volunteers for my project.  I just want to measure the amount of goodwill that exists among developers, and what tasks you prefer to do in their free time.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;[Giving]&lt;/strong&gt;&#xA;:: What would you give to charities if you had the chance?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A particular programming skill &lt;/li&gt;&#xA;&lt;li&gt;Creative or Graphical talent&lt;/li&gt;&#xA;&lt;li&gt;Pre Compiled Software (perhaps by cross-licensing)&lt;/li&gt;&#xA;&lt;li&gt;Services&lt;/li&gt;&#xA;&lt;li&gt;Experience in the form of Project Managmement or teaching&lt;/li&gt;&#xA;&lt;li&gt;...?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;[Motivation]&lt;/strong&gt;&#xA;:: What motivates you to donate your spare time?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is it recognition?  &lt;/li&gt;&#xA;&lt;li&gt;Making a difference?&lt;/li&gt;&#xA;&lt;li&gt;Being good at programming?  &lt;/li&gt;&#xA;&lt;li&gt;Learning new things?&lt;/li&gt;&#xA;&lt;li&gt;Staying current?&lt;/li&gt;&#xA;&lt;li&gt;Personal faith or karma?  &lt;/li&gt;&#xA;&lt;li&gt;A particular cause that you care about?&lt;/li&gt;&#xA;&lt;li&gt;...?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;[Boundaries]&lt;/strong&gt;&#xA;:: What prevents you from giving? &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Support that encroaches on personal time?  &lt;/li&gt;&#xA;&lt;li&gt;Need more education?&lt;/li&gt;&#xA;&lt;li&gt;Scope creep?&lt;/li&gt;&#xA;&lt;li&gt;Lack of sufficent hardware @facility prevents the use of your software&lt;/li&gt;&#xA;&lt;li&gt;...?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-09-06T00:05:22.670" LastActivityDate="2010-09-08T22:35:09.360" Title="Would you be willing to donate your software or computer talent to charity?" Tags="&lt;career&gt;&lt;charity&gt;&lt;gpl&gt;&lt;free&gt;" AnswerCount="6" CommentCount="7" FavoriteCount="3" />
  <row Id="1021" PostTypeId="2" ParentId="1018" CreationDate="2010-09-05T19:06:59.840" Score="3" ViewCount="" Body="&lt;p&gt;I never had any shortage of things I wanted to do with my life- programming just topped the list in terms of interest and practicality.  Failing that, though, I might have gone for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Political Science&lt;/li&gt;&#xA;&lt;li&gt;Writing&lt;/li&gt;&#xA;&lt;li&gt;Studio Art&lt;/li&gt;&#xA;&lt;li&gt;Brewing&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-05T19:06:59.840" CommentCount="3" />
  <row Id="1023" PostTypeId="2" ParentId="1018" CreationDate="2010-09-05T19:09:01.167" Score="2" ViewCount="" Body="&lt;p&gt;I wanna say &quot;kill myself&quot;, but of course I won't. I would probably be a writer, writing science fiction and fantsy... Although the idea of doing that without a computer is less appealing; I'm so used to the backspace key that I can't write in a linear fashion anymore. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Math is another possibility (now that I know I like it), in particular logic and set theory (I'm assuming that if there are no computers then there's no Computability and Automata theory either. Maybe I'll invent it?)&lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-05T19:09:01.167" CommentCount="2" />
  <row Id="1024" PostTypeId="2" ParentId="1018" CreationDate="2010-09-05T19:12:13.650" Score="7" ViewCount="" Body="&lt;p&gt;Well, I actually AM a writer, though my publication track-record isn't anything special.  (Yet.)  So without computing, I may have been forced to figure out some way of turning writing into a proper career, since making a living as a fiction writer isn't a challenge I've been up to.  Teaching?  Writing advertising copy?  Hard to say.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then again, it's possible I would have just gone into some other sort of tech field to support my extravagant food-and-shelter-based lifestyle.  Electrical engineering, perhaps.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-05T19:12:13.650" CommentCount="2" />
  <row Id="1025" PostTypeId="1" CreationDate="2010-09-05T19:13:18.530" Score="5" ViewCount="320" Body="&lt;p&gt;I'm considering learning iPhone development and Objective C but don't want to avoid developing something for the most saturated markets and app categories.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What categories should I avoid?  Are there too many dating applications, or should I just stick to coming up with a creative game or two?&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-10-14T18:01:45.680" Title="What are the most over-saturated iPhone App category/markets?" Tags="&lt;sales&gt;&lt;apple&gt;&lt;iphone&gt;&lt;mobile&gt;&lt;marketing&gt;" AnswerCount="2" FavoriteCount="4" />
  <row Id="1026" PostTypeId="2" ParentId="1013" CreationDate="2010-09-05T19:13:22.650" Score="3" ViewCount="" Body="&lt;p&gt;For .NET runtime and other dependency / compatibility reasons, I recently had to use Visual Studio 2003 at a client. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I used it originally, I didn't think it was too bad, but now I can't believe how bad it used to be - no refactoring support, limited intellisense, poor syntax highlighting. It was a real struggle to write well tested well-factored code in it!&lt;/p&gt;&#xA;" OwnerUserId="38" LastEditorUserId="38" LastEditorDisplayName="" LastEditDate="2010-09-05T19:28:19.703" LastActivityDate="2010-09-05T19:28:19.703" CommunityOwnedDate="2011-02-01T07:56:02.387" CommentCount="4" />
  <row Id="1027" PostTypeId="2" ParentId="1015" CreationDate="2010-09-05T19:15:58.477" Score="8" ViewCount="" Body="&lt;p&gt;This is my method:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use &lt;a href=&quot;http://www.keepassx.org/downloads/&quot; rel=&quot;nofollow&quot;&gt;KeepassX&lt;/a&gt; (it's free and multiplatform) and I share keepassX password database between pcs using &lt;a href=&quot;http://www.dropbox.com&quot; rel=&quot;nofollow&quot;&gt;Dropbox&lt;/a&gt;.&lt;br&gt;&#xA;With KeepassX, I usually protect the database password with a master password and a key file (that i do not share on Dropbox) .&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always let KeepassX picking a password for me, this rule does not apply for services I use frequently like Gmail or Ebay for example; in this case I usually choose a reasonable long  password with upper and lower case but not &quot;too hard&quot; to remember.&lt;br&gt;&#xA;Something like: &quot;MaradonaBestNumber10&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keepass Autofill feature is supported on linux and unofficially on &lt;a href=&quot;http://www.keepassx.org/forum/viewtopic.php?f=5&amp;amp;t=1920&amp;amp;hilit=autofill&quot; rel=&quot;nofollow&quot;&gt;OSX&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="74" LastEditorUserId="74" LastEditorDisplayName="" LastEditDate="2010-09-06T08:51:18.657" LastActivityDate="2010-09-06T08:51:18.657" CommentCount="4" />
  <row Id="1028" PostTypeId="2" ParentId="1013" CreationDate="2010-09-05T19:18:49.657" Score="0" ViewCount="" Body="&lt;p&gt;An iPad app called &lt;code&gt;jsAnywhere&lt;/code&gt; is cute, but worthless for real development. It is allegedly good for web development, but it handles a single js file, a single html file and a singe css file. No local image support. A weak mess, with potential.&lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-09-05T19:18:49.657" CommunityOwnedDate="2011-02-01T07:56:02.387" CommentCount="7" />
  <row Id="1030" PostTypeId="2" ParentId="1013" CreationDate="2010-09-05T19:24:31.873" Score="38" ViewCount="" Body="&lt;p&gt;Crystal Reports. Fragile, unstable, bloated, slow... And a macro language that bears all the hallmarks of a last-minute afterthought. &lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-05T19:24:31.873" CommunityOwnedDate="2011-02-01T07:56:02.387" CommentCount="10" />
  <row Id="1031" PostTypeId="2" ParentId="1025" CreationDate="2010-09-05T19:25:14.010" Score="2" ViewCount="" Body="&lt;p&gt;The iOS market has way to many apps in general. Try to make an iPad app. There are less iPad apps out than iPhone/iPod touch. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alternatively, try to make something for a particular (local) business.&#xA;That way you are guaranteed to get paid (by the business) and you get an app out there that is unique.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Games are always good, provided that the gameplay attracts people. Like the speakers at the WWDC 2010 said, watch play testers as they do their thing. It helps a lot with your game development.&lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-09-05T19:25:14.010" CommentCount="5" />
  <row Id="1032" PostTypeId="2" ParentId="1018" CreationDate="2010-09-05T19:26:16.663" Score="1" ViewCount="" Body="&lt;p&gt;I would definitely have given up the day job (whatever it would have been!) and tried to earn money as a musician. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back in the day when my band was getting regular gigs, we all had decent day jobs and I was enjoying the programming side of things so much that it didn't seem worth giving up, but it would have been fun to go on some real tours.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-05T19:26:16.663" />
  <row Id="1033" PostTypeId="2" ParentId="1015" CreationDate="2010-09-05T19:31:12.227" Score="7" ViewCount="" Body="&lt;p&gt;I HAVE software but rarely use it. I have 1Password. It was fine when I worked only on a Mac but these days, I jump among the big 3 so I basically use 2 unique, randomly generated passwords plus a tag from whatever site I'm logging into. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, if my main password were &quot;sh58@fhy&quot;, I'd log into amazon.com with a password of  sh58@fhyAM. That way, the password is random, easy to remember &amp;amp; unique for each site.&lt;/p&gt;&#xA;" OwnerUserId="176" LastActivityDate="2010-09-05T19:31:12.227" CommentCount="5" />
  <row Id="1034" PostTypeId="1" CreationDate="2010-09-05T19:32:45.817" Score="8" ViewCount="251" Body="&lt;p&gt;I'm developing a server application and am looking at Windows 2008 R2 &lt;strong&gt;application&lt;/strong&gt; certification located &lt;a href=&quot;http://www.microsoft.com/windowsserver2008/en/us/WS08-R2-CF.aspx&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does application certification really make a difference to your application?  Has anything tangible ever come from it in your experience?  Are there any other certifications I should consider?&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-09-09T03:35:20.043" Title="Is there any real benefit to Microsoft's application certification programs?" Tags="&lt;certification&gt;&lt;isv&gt;" AnswerCount="4" />
  <row Id="1035" PostTypeId="2" ParentId="1018" CreationDate="2010-09-05T19:51:06.923" Score="37" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Electrical Engineer&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there were no computers, I would build one.&lt;/p&gt;&#xA;" OwnerUserId="31" LastActivityDate="2010-09-05T19:51:06.923" CommentCount="3" />
  <row Id="1036" PostTypeId="2" ParentId="1015" CreationDate="2010-09-05T19:56:55.977" Score="3" ViewCount="" Body="&lt;p&gt;Usually, taking a small phrase and writing it in 1337 is a good way of making very tough passwords.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, take &quot;I love my cat&quot; (be afraid of nothing! use spaces!). You can turn this into &lt;code&gt;| &amp;lt;3 |\/|y &amp;lt;47&lt;/code&gt;, and as long as you keep a consistent &quot;algorithm&quot; for 1337ifying words, you get an unlimited supply of very strong passwords.&lt;/p&gt;&#xA;" OwnerUserId="90" LastActivityDate="2010-09-05T19:56:55.977" />
  <row Id="1037" PostTypeId="2" ParentId="886" CreationDate="2010-09-05T19:58:26.010" Score="3" ViewCount="" Body="&lt;p&gt;Most things that require technical thinking and that allow one to find his/her own path to &quot;mastery&quot;. I tend to run into a LOT of &lt;strong&gt;guitarists&lt;/strong&gt;, &lt;strong&gt;cooks&lt;/strong&gt; &amp;amp; &lt;strong&gt;medical-related&lt;/strong&gt; interests. Also, I've been meeting many a young programmer at &lt;strong&gt;parkour&lt;/strong&gt; jams.&lt;/p&gt;&#xA;" OwnerUserId="176" LastActivityDate="2010-09-05T19:58:26.010" CommentCount="1" />
  <row Id="1038" PostTypeId="2" ParentId="886" CreationDate="2010-09-05T19:59:15.633" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/John_carmack&quot; rel=&quot;nofollow&quot;&gt;True programmers&lt;/a&gt; take rocket science as a hobby.&lt;/p&gt;&#xA;" OwnerUserId="31" LastActivityDate="2010-09-05T19:59:15.633" CommentCount="1" />
  <row Id="1039" PostTypeId="1" CreationDate="2010-09-05T20:04:36.027" Score="4" ViewCount="243" Body="&lt;p&gt;What tax deductions should an independent or 1099 developer take in the USA?&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-09-16T09:41:31.800" Title="What tax deductions do independent programmers take in the USA?" Tags="&lt;career&gt;&lt;independent&gt;&lt;taxes&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="5" />
  <row Id="1040" PostTypeId="1" CreationDate="2010-09-05T20:07:36.963" Score="3" ViewCount="190" Body="&lt;p&gt;I'm making software that could be of use by businesses and the US Government, but I hear that dealing with the government is a huge hassle business-wise. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why do they have such a bad reputation among ISV's? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How difficult is it to sell my software to them?&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-11-08T04:04:47.803" Title="What needs to be done to sell software to the government?" Tags="&lt;sales&gt;&lt;isv&gt;&lt;government&gt;" AnswerCount="6" CommentCount="1" />
  <row Id="1041" PostTypeId="2" ParentId="539" CreationDate="2010-09-05T20:20:01.453" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Zenburn&lt;/strong&gt; or something like it. It's nice, subtle, not to dark &amp;amp; everything is well differentiated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just can't stare at the most IDEs default bright white &amp;amp; primary colors for the hours on end that I'm usually programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/WrS12.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="176" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-10-23T23:05:35.547" LastActivityDate="2010-10-23T23:05:35.547" CommunityOwnedDate="2010-09-16T13:10:40.707" CommentCount="2" />
  <row Id="1044" PostTypeId="2" ParentId="1009" CreationDate="2010-09-05T20:57:22.990" Score="2" ViewCount="" Body="&lt;p&gt;You can use a simple checkout service like &lt;a href=&quot;http://2checkout.com&quot; rel=&quot;nofollow&quot;&gt;2checkout.com&lt;/a&gt;, &lt;a href=&quot;https://www.paypal.com/&quot; rel=&quot;nofollow&quot;&gt;paypal&lt;/a&gt;, or &lt;a href=&quot;http://checkout.google.com&quot; rel=&quot;nofollow&quot;&gt;Google Checkout&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or you can use a service which has an affiliate network like &lt;a href=&quot;http://regnow.com&quot; rel=&quot;nofollow&quot;&gt;regnow&lt;/a&gt;.  This will get your product onto hundreds and hundreds of sites, but it is extremely rare to ever have a sale on any of those sites.  In my experience 99.999% of sales came directly from my own company website.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-05T20:57:22.990" CommentCount="2" />
  <row Id="1045" PostTypeId="2" ParentId="118" CreationDate="2010-09-05T21:03:37.820" Score="8" ViewCount="" Body="&lt;p&gt;Switzerland.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifically I suggest you go after the best among the best software jobs in the world. The &lt;a href=&quot;http://www.google.ch/intl/en/jobs/index.html&quot; rel=&quot;nofollow&quot;&gt;Google Zurich office&lt;/a&gt; has been a highly successful global organization in Google. You can watch some videos from &lt;a href=&quot;http://www.youtube.com/user/lifeatgoogle&quot; rel=&quot;nofollow&quot;&gt;the YouTube lifeatgoogle channel&lt;/a&gt; and have a sense what it is like to work at Google. Interviewing at Google is not easy so I would suggest you read Steve Yegge's blog posts: &lt;a href=&quot;http://sites.google.com/site/steveyegge2/five-essential-phone-screen-questions&quot; rel=&quot;nofollow&quot;&gt;5 essential phone screen questions&lt;/a&gt; and &lt;a href=&quot;http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html&quot; rel=&quot;nofollow&quot;&gt;Get that job at Google&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-05T21:03:37.820" CommentCount="3" />
  <row Id="1046" PostTypeId="1" CreationDate="2010-09-05T21:43:24.167" Score="2" ViewCount="304" Body="&lt;p&gt;What do I need to know if I want to be a software contractor (in the UK)?  Do I need to set up a business? What's the best way to get contracts? What taxes do I need to pay (should I get an accountant? If so, where do I find one?)&lt;/p&gt;&#xA;" OwnerUserId="55" LastActivityDate="2010-09-05T22:54:34.900" Title="How to become a software contractor?" Tags="&lt;jobs&gt;&lt;contracting&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="1047" PostTypeId="2" ParentId="1018" CreationDate="2010-09-05T21:52:53.210" Score="2" ViewCount="" Body="&lt;p&gt;When I was at school I had a serious ambition to become an airline pilot. I even applied to the British Airways academy, but they weren't taking anyone on that year. So I resorted to my &quot;backup plan&quot; of going to university to study Control Systems/Cybernetics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While at university I discovered I needed glasses (retinal astigmatism) which put paid to flying (or at least that's what I thought) so here I am.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Had there been no computers I might have tried harder to get to become an airline pilot. Though without computers flying a commercial airliner would be a &lt;em&gt;very&lt;/em&gt; different job to what it is today (or even was 30 years ago).&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-09-05T22:09:34.370" LastActivityDate="2010-09-05T22:09:34.370" CommentCount="1" />
  <row Id="1048" PostTypeId="2" ParentId="1018" CreationDate="2010-09-05T21:55:41.147" Score="2" ViewCount="" Body="&lt;p&gt;Assuming &quot;invent the computer&quot; is not an option...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How about other electronics?  I would still be interested in designing calculators or watches, however simple they'd be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that, I'd probably study math and maybe linguistics... if there were no programming languages to learn, I'd study natural languages.&lt;/p&gt;&#xA;" OwnerUserId="59" LastActivityDate="2010-09-05T21:55:41.147" CommentCount="1" />
  <row Id="1049" PostTypeId="2" ParentId="1046" CreationDate="2010-09-05T22:04:33.443" Score="4" ViewCount="" Body="&lt;p&gt;Contract jobs are handled by the same agencies that handle permanent jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The simplest way is to contact one (or more) agency with your CV and details of where you'd be willing to work and what rate you're looking for (I won't quote a rate as this will depend on where you are and when you reading this). Most contract roles come with the rate the employer is willing to pay so you'll be able to decide whether it is worth it (for you) to go for a role.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you get the contract they agency will more than likely offer to put you in touch with an umbrella company that will handle the pay and tax for you - you will effectively become an employee of that company. For your first two or three contracts it would probably be a good idea to use this company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you are established then talk to an accountant about setting up your own company - that way you'll cut out the middle man and your clients either won't have to pay a fee to the holding company or you'll be able to receive more of the rate the client pays. The accountant will help you with the tax etc. for this company - or at least a good one will.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to how to find an accountant - look one up in the phone book or online. Get quotes from several, they should know what they are doing.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-09-05T22:54:34.900" LastActivityDate="2010-09-05T22:54:34.900" />
  <row Id="1050" PostTypeId="2" ParentId="1018" CreationDate="2010-09-05T22:07:17.963" Score="6" ViewCount="" Body="&lt;p&gt;I'd probably end up in some Math or Physics field.&lt;/p&gt;&#xA;" OwnerUserId="177" LastActivityDate="2010-09-05T22:07:17.963" CommentCount="1" />
  <row Id="1051" PostTypeId="2" ParentId="959" CreationDate="2010-09-05T22:12:42.947" Score="1" ViewCount="" Body="&lt;p&gt;I think that, right now, as all else seems to have failed, our best shot at implementing an emulated human brain(emulating the brain cells interactions, etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Except that implementing that is incredibly computer-intensive, but apparently embarrassingly parallel, so GPU acceleration seems likely.&#xA;I'd say that implementing senses will be pretty easy but debugging a brain and creating personalities will be very hard, as will be finding the computational power required to emulate a brain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I believe it is doable. So unless humanity is destroyed, I think the answer is &lt;em&gt;yes&lt;/em&gt;. But I can't possibly precisely say how long it will take us to get there. I'd be very disappointed if it took more than 100 years, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This approach also has the nice advantage of allowing computers to pass the chinese room test.&lt;/p&gt;&#xA;" OwnerUserId="177" LastEditorUserId="177" LastEditorDisplayName="" LastEditDate="2010-09-09T17:08:20.317" LastActivityDate="2010-09-09T17:08:20.317" CommunityOwnedDate="2011-04-19T01:26:27.260" CommentCount="3" />
  <row Id="1052" PostTypeId="2" ParentId="1020" CreationDate="2010-09-05T22:19:18.617" Score="5" ViewCount="" Body="&lt;p&gt;I have already seen this as a suggestion for unemployed programmers to maintain activity while between jobs.  For example, building a website for a community organization, church or whatnot.  Open source contributors already do this, in a way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on the specifics, I would likely be interested in doing such a thing.  It would be a bit easier for me to be motivated to work on a real project then one intended simply to keep me busy.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like the idea, though I wonder about the hassles of managing it.  There would likely be a large amount of turnover.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would I be willing be to give?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whatever is necessary, within reason, which I can provide.  Basically, my time and expertise, just like any volunteer activity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My motivation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of the above.  Keeping current, being seen, giving back to the community, doing something useful, etc.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In all honesty, any altruistic activity is based in some form of personal gain, even if indirect.  This does not mean that I would be looking to profit from such activity in some way.  Rather, it would be in the sense of the golden rule: a way to be for the benefit of all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would/does prevent me from doing so?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Time would be the biggest thing.  Though, some of that comes to personal motivation/will.  In other words, you make time for the things that matter.  So, short of running ragged trying to please everyone, it comes to finding something worth one's time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another issue would be the availability of an appropriate outlet.  Specific to programming, not everyone necessarily needs a website or some software to run their processes.  That said, since I love teaching, simply teaching some computer related classes would be a good use of my volunteer time.&lt;/p&gt;&#xA;" OwnerUserId="149" LastEditorUserId="149" LastEditorDisplayName="" LastEditDate="2010-09-06T03:12:31.603" LastActivityDate="2010-09-06T03:12:31.603" />
  <row Id="1053" PostTypeId="2" ParentId="1020" CreationDate="2010-09-05T22:19:34.327" Score="1" ViewCount="" Body="&lt;p&gt;I already do... and have more that I want to do, but don't have time for. As such, I wouldn't jump at joining your group. Good luck!&lt;/p&gt;&#xA;" OwnerUserId="179" LastActivityDate="2010-09-05T22:19:34.327" CommentCount="2" />
  <row Id="1056" PostTypeId="1" CreationDate="2010-09-05T22:28:59.860" Score="5" ViewCount="288" Body="&lt;p&gt;Similar to the &lt;a href=&quot;http://programmers.stackexchange.com/questions/247/is-cobol-still-worth-learning&quot;&gt;question about COBOL&lt;/a&gt;. Actually, I thought of this question in the context of VB6, but I thought it might be worthwhile to make it more general so we don't have an &quot;Is X still worth learning&quot; for every language. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I understand that VB.NET is meant to be a replacement for VB6 in some sense, but moving programs over is nontrivial. Lots of code still exists in VB6, but I would imagine that this will only shrink as time goes on. With this in mind, I wonder under what circumstances learning VB6 is actually worthwhile. (Yeah, obvious answer: if you get paid to do it)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, there are languages like Fortran, Lisp, and C, which can still be considered to be in 'active' use (although different people may disagree there) despite their age, and the existence of newer languages that are meant to improve upon and possibly even replace them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So how do you decide whether to treat a language as being dead, and no longer worth the time to pick up? &lt;/p&gt;&#xA;" OwnerUserId="108" LastActivityDate="2010-10-14T21:30:15.833" Title="How do you decide if a language is still worth learning?" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;career&gt;" AnswerCount="4" CommentCount="4" FavoriteCount="1" />
  <row Id="1057" PostTypeId="2" ParentId="1056" CreationDate="2010-09-05T22:34:26.620" Score="0" ViewCount="" Body="&lt;p&gt;Unless you have an enormous amount of free time or are extremely clever (neither of which fit me) most people have enough to do to keep up with their current languages and skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for the vast majority of people the only circumstances that make it worthwhile are when you get paid to use that language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, whether you get paid &quot;up front&quot; and learn on the job, or you &quot;invest&quot; in learning to get a better job (or become better at your current job) is - to a certain extent immaterial.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-09-20T08:12:24.697" LastActivityDate="2010-09-20T08:12:24.697" CommentCount="3" />
  <row Id="1058" PostTypeId="1" CreationDate="2010-09-05T22:40:12.223" Score="6" ViewCount="127" Body="&lt;p&gt;I'm not exactly sure when to use Enterprise Library, and when not to... and that is making me not learn it at all.  I feel that I have enough of a reason to &lt;strong&gt;start learning&lt;/strong&gt; then perhaps one day I'll &lt;strong&gt;use&lt;/strong&gt; it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there times when I should use EntLib?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When shouldn't I use it?  &lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-04-06T21:38:25.517" LastActivityDate="2011-04-06T21:38:25.517" Title="When is it appropriate to use Microsoft's Enterprise Library (EntLib)?" Tags="&lt;microsoft&gt;&lt;enterprise-library&gt;" AnswerCount="2" />
  <row Id="1059" PostTypeId="1" CreationDate="2010-09-05T22:49:52.907" Score="8" ViewCount="282" Body="&lt;p&gt;I have often heard it said that objects have not delivered in terms of code reuse. Do you agree? If you believe that they haven't, why not?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="113" LastEditorDisplayName="" LastEditDate="2010-09-06T03:08:41.513" LastActivityDate="2010-12-05T04:57:40.087" Title="Have objects delivered in terms of code reuse?" Tags="&lt;object-oriented&gt;&lt;code-reuse&gt;" AnswerCount="9" CommentCount="5" FavoriteCount="1" />
  <row Id="1060" PostTypeId="1" CreationDate="2010-09-05T22:52:19.313" Score="6" ViewCount="299" Body="&lt;p&gt;Aspect oriented programming promises to deal with cross cutting concerns, but I'm not completely sold on it yet. Have there been any other attempts to deal with this problem?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:39:07.527" LastActivityDate="2011-01-03T14:39:06.390" Title="What alternatives are there for cross cutting concerns other than aspect oriented programming?" Tags="&lt;paradigms&gt;&lt;aspect-oriented&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="3" />
  <row Id="1061" PostTypeId="2" ParentId="1046" CreationDate="2010-09-05T22:52:30.220" Score="0" ViewCount="" Body="&lt;p&gt;There are basically three main options:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Register with HMRC as self-employed.&lt;/li&gt;&#xA;&lt;li&gt;Sign-up for an umbrella company.&lt;/li&gt;&#xA;&lt;li&gt;Create your own limited company.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The umbrella company is probably the easiest as they will deal with payroll taxes, charging VAT and processing of expenses for you for a monthly fee.  They may also provide insurance.  Legally you are an employee of the umbrella company and they will invoice the client for the work that you do and then pay that money (less their fees) to you as a salary.  They should also help you to avoid any problems with &lt;a href=&quot;http://en.wikipedia.org/wiki/IR35&quot; rel=&quot;nofollow&quot;&gt;IR35&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you register as self-employed, you will just invoice your clients directly and then complete a tax return at the end of the year.  There is some risk in this approach as, unlike working via a limited company, you will not be protected by limited liability.  That means that if you get into a dispute with your client and they sue you, your personal assets (e.g. your house) are at risk.  For this reason, if you go down this route, you really should get professional indemnity insurance (in fact, clients may refuse to deal with you if you don't have this).  If you were working via a limited company and doing everything legally, only the company's assets would be vulnerable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can incorporate a new company online for as little as £30.  Setting up a limited company is potentially the most efficient way of operating but it also means more work.  You have to file accounts and annual returns and maintain various registers.  You'll probably need to involve an accountant, if not for incorporation then certainly for drawing up accounts.  For both the self-employed route and the limited company you need to be aware of the implications of the IR35 legislation and, if you are turning over any serious money, you'll need to register for VAT.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://www.bytestart.co.uk/&quot; rel=&quot;nofollow&quot;&gt;ByteStart&lt;/a&gt; website has several articles about the various options for becoming self-employed, incorporating a company, etc., and &lt;a href=&quot;http://www.contractoruk.com/&quot; rel=&quot;nofollow&quot;&gt;Contractor UK&lt;/a&gt; has specific advice for IT contractors.  The final word on these issues belongs, of course, to &lt;a href=&quot;http://www.hmrc.gov.uk/index.htm&quot; rel=&quot;nofollow&quot;&gt;HMRC&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-05T22:52:30.220" CommentCount="0" />
  <row Id="1062" PostTypeId="2" ParentId="1015" CreationDate="2010-09-05T22:54:32.963" Score="8" ViewCount="" Body="&lt;p&gt;For password &lt;em&gt;storage&lt;/em&gt; I really like &lt;a href=&quot;http://lastpass.com/&quot; rel=&quot;nofollow&quot;&gt;Lastpass&lt;/a&gt; to replace the old shared Keypass DB. In Lastpass your vault exists online. To speed up the process of logging in, Lastpass comes as &lt;a href=&quot;https://lastpass.com/misc_download.php&quot; rel=&quot;nofollow&quot;&gt;plugins for various browsers, OS specific installs, and even mobile apps&lt;/a&gt;. If you have access to the internet, you can get your passwords. Its fast, easy, and accessible everywhere. I recommend it to anybody who uses more than 1 computer for multiple sites.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;For a password &lt;em&gt;algorithm&lt;/em&gt;, I use a very simple one: Just repeat a short password multiple times. You can make a simple 8 character password 32 characters long. And when you add entropy between the passwords (eg password1password12password123) it becomes even longer and more secure since now people have to figure out your repeated password + entropy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However you do have to consider what the website/program is using for password storage. If there using a pretty weak algorithm (Eg MD5), then longer is better. If they are using a pretty strong one (Eg Truecrypt in AES-Twofish mode with Whirlpool), then you can get away with short ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How? Think about it, even if you limit it the possible keys to 62 (a-z, A-Z, 0-9) and know the password is 9 characters long, your still talking about 9^62, or 145,557,834,293,068,928,043,467,566,190,278,008,218,249,525,830,565,939,618,481 possible combinations. Even if you could do a billion passwords a second (which you can't), your talking about 145,557,834,293,068,928,043,467,566,190,278,008,218,249,525,830,565 seconds, or 4,615,608,647,040,491,122,636,592,027,850,012,944,515,776 years. Our sun will explode before you can guess all the combinations. I think I'm safe&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do I use? Well, thats for you to figure out. See you in a few billion billion billion years when you guess it&lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-06T15:45:03.133" LastActivityDate="2010-09-06T15:45:03.133" CommentCount="1" />
  <row Id="1063" PostTypeId="1" CreationDate="2010-09-05T22:56:09.103" Score="4" ViewCount="163" Body="&lt;p&gt;I have often wondered if it would be possible to write a programming language that would work as a conversation. I would tell the computer that I want to store coordinates and it would ask what representation I would use. I would then ask to find the shortest path between points and it would ask if I want to use Djkstra's, brute force or use Floyd's? What research has been done towards producing a system like this?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:20:13.030" LastActivityDate="2010-09-20T16:45:38.517" Title="Programming as a conversation" Tags="&lt;programming-languages&gt;&lt;artificial-intelligence&gt;&lt;compilers&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="1" />
  <row Id="1064" PostTypeId="2" ParentId="1056" CreationDate="2010-09-05T23:00:49.750" Score="4" ViewCount="" Body="&lt;p&gt;If you are learning a language for the concepts, it doesn't matter how widely it is used. If you are learning to get a job, then it is worth learning if someone is willing to pay you and there will be a decent demand for the forseeable future. If your motivations are a combination, then the value is a combination as well.&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-05T23:00:49.750" />
  <row Id="1065" PostTypeId="1" CreationDate="2010-09-05T23:01:32.243" Score="3" ViewCount="212" Body="&lt;p&gt;I'm comparing different STS's for claims based authentication and am trying when it's appropriate to use each one.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It appears that ADFSv2 should be used in all Windows Environments.  Ping and Siteminder are more for the Unix side... although a sales rep said Ping was better for Windows, I didn't really understand &quot;why&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any comparative information is much appreciated!&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-09-10T17:12:24.017" Title="What product is better: ADFSv2, Ping Identity, CS Siteminder?" Tags="&lt;saml&gt;&lt;adfsv2&gt;&lt;sso&gt;" AnswerCount="2" />
  <row Id="1066" PostTypeId="2" ParentId="1060" CreationDate="2010-09-05T23:06:40.953" Score="5" ViewCount="" Body="&lt;p&gt;When possible, you can encapsulate cross-cutting concerns into separate modules that are then used throughout the app via dependency injection.  This allows you to somewhat decouple the cross-cutting concern implementation from it's use throughout the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This doesn't always work elegantly, though.  That's the reason people are trying to address the issue with things like AOP.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-05T23:06:40.953" />
  <row Id="1067" PostTypeId="2" ParentId="1010" CreationDate="2010-09-05T23:15:58.493" Score="1" ViewCount="" Body="&lt;p&gt;One of our interns recently put together a &lt;a href=&quot;http://www.ext-it.com/2010/blog/ec2-vs-vmforce.html&quot; rel=&quot;nofollow&quot;&gt;blog post&lt;/a&gt; and whitepaper comparing Amazon's EC2 cloud with Salesforce &amp;amp; VMWare's VMForce offering. This wouldn't be a bad place to start to understand some of the differences between two of the major offerings. &lt;/p&gt;&#xA;" OwnerUserId="38" LastEditorUserId="17225" LastEditorDisplayName="" LastEditDate="2011-02-14T20:43:09.610" LastActivityDate="2011-02-14T20:43:09.610" />
  <row Id="1068" PostTypeId="2" ParentId="1059" CreationDate="2010-09-05T23:17:12.463" Score="0" ViewCount="" Body="&lt;p&gt;Yes.  Good object oriented programming promotes separation of concerns, low coupling, high cohesion, and information hiding.  These things are all critical to reusable code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would argue that the main benefit of OOP is modularity and modifiability, rather than reuse, but that's another question.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-05T23:17:12.463" CommentCount="6" />
  <row Id="1069" PostTypeId="2" ParentId="1063" CreationDate="2010-09-05T23:22:25.820" Score="5" ViewCount="" Body="&lt;p&gt;I think such a language would need an artificial intelligence in place, or at least a system that can learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is that humans don't know what they want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, even writing in classical imperative language we still make logical errors. Imagine trying telling a non-intelligent software what he has to do.&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-09-05T23:22:25.820" CommentCount="3" />
  <row Id="1070" PostTypeId="1" CreationDate="2010-09-05T23:26:53.300" Score="0" ViewCount="60" Body="&lt;p&gt;&lt;code&gt;Dcpromo.exe&lt;/code&gt; is famous among MCSEs for being they only way to create a Windows Domain Controller (in other words an Active Directory Domain) ... which in turn is often used by the ASP.NET Membership system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm trying to determine if I should put content on &quot;www.dcpromo.com&quot; geared for developers or more towards sysadmins.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, a logical extension of this &quot;domain controller on the internet&quot; is to use WIF for the ASP.NET Membership system.  We'd then have a website that will serve the developer's interests in the SSO, SAML, user managment and identity areas we all struggle with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Q:&lt;/strong&gt;  Do programmers see a connection between the utility &lt;code&gt;dcpromo.exe&lt;/code&gt; and ASP.NET Membership?  If so does it make sense to have a purpose of &lt;a href=&quot;http://www.dcpromo.com&quot; rel=&quot;nofollow&quot;&gt;http://www.dcpromo.com&lt;/a&gt;  help developers in the areas of membership and cloud computing?  &lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-09-06T14:51:13.577" LastActivityDate="2010-09-06T14:51:13.577" Title="For ASP.NET Programmers: Does the executable 'dcpromo' have any significance?" Tags="&lt;cloud&gt;&lt;saml&gt;&lt;adfsv2&gt;&lt;sso&gt;&lt;asp.net&gt;" AnswerCount="3" />
  <row Id="1071" PostTypeId="2" ParentId="1063" CreationDate="2010-09-05T23:27:04.843" Score="2" ViewCount="" Body="&lt;p&gt;What you're describing sounds less like programming and more like using an application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some problems you'd have to address in such a system:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Repeatable results.  The current source-code paradigm stores a list of instructions for the computer- in your 2-sided conversation, do you only store 1 half of the conversation?  If so, that's not really any different from what we have.  If you store both halves of the conversation, how would you go back and change things without disrupting the whole flow of the conversation thereafter?&lt;/li&gt;&#xA;&lt;li&gt;Who decides what the computer can respond with- eg, what if you want to use shortest-path algorithm that hasn't been pre-coded for you to select?&lt;/li&gt;&#xA;&lt;li&gt;How are you going to map this conversation onto the low-level language a computer really uses (which is still a sequential list of instructions)?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-05T23:27:04.843" CommentCount="1" />
  <row Id="1072" PostTypeId="2" ParentId="1070" CreationDate="2010-09-05T23:28:35.200" Score="0" ViewCount="" Body="&lt;p&gt;I'm an asp.net newbie, having been working with it for only about 3 months, though I've played with membership a little bit.  That said, I've never heard of dcpromo.  Just my 2 cents.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-05T23:28:35.200" />
  <row Id="1073" PostTypeId="2" ParentId="1020" CreationDate="2010-09-06T00:09:27.573" Score="1" ViewCount="" Body="&lt;p&gt;I think where you'll lose most people is when it comes to actually making a commitment. Despite all the time saving inventions we have, life has only gotten busier. To commit to a project often requires real sacrifice. As for me, I'd like to do this, if only I could find some time!&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-06T00:09:27.573" />
  <row Id="1074" PostTypeId="2" ParentId="886" CreationDate="2010-09-06T01:09:20.723" Score="9" ViewCount="" Body="&lt;p&gt;I'm pretty busy between my primary to extra-curricular activities&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Starting a &lt;a href=&quot;http://programmers.stackexchange.com/questions/1020/would-you-be-willing-to-donate-your-software-or-computer-talent-to-charity&quot;&gt;programming&lt;/a&gt; non-profit (see my profile) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) This computer controlled waterfall:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/7wznU.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-09-06T01:09:20.723" CommentCount="3" />
  <row Id="1075" PostTypeId="2" ParentId="913" CreationDate="2010-09-06T01:17:51.123" Score="1" ViewCount="" Body="&lt;p&gt;I'm always on the computer... and I get incredible pain if I don't use a ergonomic mouse.  The factory mouse the comes with a computer almost always is the culprit.  I need something with a  sensitive click button and something that fits the contour of my hand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something in this shape will be good, but I usually to to Best Buy and try it out before I actually buy:&#xA;&lt;img src=&quot;http://i.imgur.com/yL9Ic.jpg&quot; alt=&quot; &quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-09-06T01:17:51.123" CommunityOwnedDate="2010-09-06T01:17:51.123" CommentCount="1" />
  <row Id="1079" PostTypeId="2" ParentId="39" CreationDate="2010-09-06T02:25:25.087" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I'll call him Mel, because that was his name.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;From &lt;a href=&quot;http://www.pbm.com/~lindahl/mel.html&quot; rel=&quot;nofollow&quot;&gt;The story of Mel&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="31" LastActivityDate="2010-09-06T02:25:25.087" CommunityOwnedDate="2010-09-06T02:25:25.087" CommentCount="10" />
  <row Id="1080" PostTypeId="2" ParentId="913" CreationDate="2010-09-06T02:36:11.430" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/913/what-is-your-take-on-ergonomic-mice/922#922&quot;&gt;Like Walter&lt;/a&gt;, I've found they do more harm than good...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;'Twas a Microsoft &quot;IntelliMouse&quot; that finally drove me to use a trackball. After about a year using the thing, my right wrist hurt so much I could barely stand to use it at all. It took me about a month to get accurate enough with a trackball that I could comfortably resume image editing and gaming, but by that time the pain had also subsided, and hasn't returned. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, the biggest problem with the &quot;ergonomic&quot; mice is their tendency to fit my palm. And I know that probably &lt;em&gt;sounds&lt;/em&gt; like a &lt;em&gt;good thing&lt;/em&gt;, but, heh... It meant I was able to rest the heel of my palm on the back of the mouse, effectively palm-gripping it even when at rest. Which was wonderful for my accuracy when pin-point accuracy was required - my palm stabilized the mouse while I used my fingers for precise movement - but was a constant and unnecessary strain when, say, scrolling through a text file or web page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I may try a mouse again when one of my trackballs finally wears out, but if I do I'll be careful to choose one too small / short to contact my heel or elevate my wrist. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;FWIW, I also hate ergonomic keyboards. When I experience pain from typing, it's from hitting the keys too hard - the best solution I've found for this so far is a keyboard with a decent amount of travel on the keys, and good tactile feedback - my 20+ year-old Model-M is the gold standard for typing comfort in my book. All a split/bent/warped/twisted layout does is cause me to make more errors when typing, magnifying the damage caused by each each tap.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-06T02:36:11.430" CommunityOwnedDate="2010-09-06T02:36:11.430" />
  <row Id="1081" PostTypeId="2" ParentId="729" CreationDate="2010-09-06T02:51:51.463" Score="1" ViewCount="" Body="&lt;p&gt;The best thing I've come across is &lt;a href=&quot;http://springpadit.com/&quot; rel=&quot;nofollow&quot; title=&quot;Springpad&quot;&gt;Springpad&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've tried a personal wiki, evernote, textfiles on dropbox. . . &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I stick with Springpad for the following&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Online&lt;/li&gt;&#xA;&lt;li&gt;Syncs with iPhone &amp;amp; Android&lt;/li&gt;&#xA;&lt;li&gt;Easily customizable&lt;/li&gt;&#xA;&lt;li&gt;Ability to clip from the web&lt;/li&gt;&#xA;&lt;li&gt;Ability to add by email&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I set up notebooks per client, project, technology or language. I can set up reading lists and add alarm reminders to study, personal curricula for skill-building, etc. Each entry can include notes, tasks, tags, hyperlinks, files, books (with links from amazon) and more. The notebooks can have tabs and even be organized into folders. If all else fails, there's a sweet search functionality. Springpad all the way.&lt;/p&gt;&#xA;" OwnerUserId="176" LastEditorUserId="176" LastEditorDisplayName="" LastEditDate="2010-09-06T13:07:38.450" LastActivityDate="2010-09-06T13:07:38.450" CommunityOwnedDate="2011-03-07T21:12:42.693" CommentCount="0" />
  <row Id="1082" PostTypeId="2" ParentId="826" CreationDate="2010-09-06T03:03:42.350" Score="1" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.obdev.at/products/launchbar/index.html&quot; rel=&quot;nofollow&quot; title=&quot;Launch Bar 5&quot;&gt;Launch Bar 5&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;From the website: &#xA; LaunchBar is a smart and powerful, keyboard driven productivity utility that lets you access and control every aspect of your digital life. Whatever you want to get done on your Mac – with LaunchBar it’s only a few keystrokes away.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Think Quicksilver on Steroids dawning a super-suit&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="176" LastActivityDate="2010-09-06T03:03:42.350" CommentCount="3" />
  <row Id="1083" PostTypeId="2" ParentId="1059" CreationDate="2010-09-06T03:17:02.307" Score="6" ViewCount="" Body="&lt;p&gt;No, not necessarily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Objects deliver better semantics, organization of code/functionality and, possibly, ease-of-use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well designed &lt;em&gt;libraries&lt;/em&gt; deliver on the promise of code reuse, not objects per se.&lt;/p&gt;&#xA;" OwnerUserId="149" LastEditorUserId="149" LastEditorDisplayName="" LastEditDate="2010-09-06T03:22:33.073" LastActivityDate="2010-09-06T03:22:33.073" />
  <row Id="1084" PostTypeId="2" ParentId="1059" CreationDate="2010-09-06T03:23:01.310" Score="2" ViewCount="" Body="&lt;p&gt;No, &quot;objects&quot; haven't made code re-use any easier or more common. The same concerns that prevent code from being re-used in a modular program (designing, testing and documenting a general-purpose API requires considerably more up-front effort than writing a one-off routine, and the jack of all trades may be the master of none - logic intended to be re-used may not be well optimized for the uses it is actually put towards) apply to OO programs, with the added concern that a poorly-designed object model can hamper the re-use of otherwise reusable code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OO is a handy abstraction for a good many problems, but be wary of '80s-'90s hype: it doesn't magically solve the fundamental problems of our trade any more than it makes waffles for you while you sleep.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-06T03:23:01.310" />
  <row Id="1085" PostTypeId="2" ParentId="1040" CreationDate="2010-09-06T03:59:04.113" Score="1" ViewCount="" Body="&lt;p&gt;You should ask people working at the government what are the requirements for software they buy. It can change from a country to an other and it can change overtime.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually they require your application to be accessible to disabled people and it's going to need to be compatible with old software such as Internet Explorer &lt;strong&gt;6&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can be hard to sell them software even if they need it really badly, because of budget. They often have tight up budget and buying and installing software cost a lot of money at once. They often rather just stay with older technology and be less effective, then have to pay a big amount of money at once. In the end they lose up money just because they can't bust the budget.&lt;/p&gt;&#xA;" OwnerUserId="41" LastEditorUserId="41" LastEditorDisplayName="" LastEditDate="2010-09-06T04:04:42.750" LastActivityDate="2010-09-06T04:04:42.750" CommentCount="1" />
  <row Id="1087" PostTypeId="2" ParentId="954" CreationDate="2010-09-06T04:14:46.350" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;1.  Keep It Short and Simple&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;2.  It should not take more than 5 minutes for the other programmer to&#xA;  have a idea on you program&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-09-06T04:14:46.350" CommentCount="2" />
  <row Id="1088" PostTypeId="2" ParentId="886" CreationDate="2010-09-06T04:31:40.590" Score="3" ViewCount="" Body="&lt;p&gt;&lt;code&gt;Trekking&lt;/code&gt; and &lt;code&gt;Fitness Exercises&lt;/code&gt; are two &lt;code&gt;compulsory hobbies&lt;/code&gt; to keep up good health&lt;/p&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-09-06T04:31:40.590" CommentCount="1" />
  <row Id="1089" PostTypeId="2" ParentId="958" CreationDate="2010-09-06T04:57:23.487" Score="1" ViewCount="" Body="&lt;p&gt;Refactoring support. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had to extract a class the other day in a VS2003 C# project, which meant no refactoring tools. It took a long time to resolve the errors in the remaining class and the unit test code!&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-06T04:57:23.487" />
  <row Id="1090" PostTypeId="1" AcceptedAnswerId="1092" CreationDate="2010-09-06T05:17:35.737" Score="10" ViewCount="287" Body="&lt;p&gt;Language shortcuts can often be used to make code more concise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, ternary and null coalescing operators can reduce the amount of code, but arguably to the detriment of readability:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In C#:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Person newGuy = new Person();&#xA;if (boss == null) {&#xA;    newGuy.Boss = GetDefaultBoss();&#xA;} else {&#xA;    newGuy.Boss = boss;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;is functionally equivalent to:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Person newGuy = new Person();&#xA;newGuy.Boss = boss ?? GetDefaultBoss();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;but obviously a lot more verbose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Where do you draw the line when it comes to conciseness vs readability?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="91" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-17T08:57:43.577" LastActivityDate="2010-10-24T22:34:44.207" Title="Do you prefer conciseness or readability in your code?" Tags="&lt;code-quality&gt;&lt;legibility&gt;" AnswerCount="8" CommentCount="3" />
  <row Id="1091" PostTypeId="2" ParentId="1090" CreationDate="2010-09-06T05:28:53.847" Score="3" ViewCount="" Body="&lt;p&gt;I would say I prefer readability, though that sometimes means using concise code.  (I.e. ternary for relatively simple conditionals inside a larger conditional block.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, if it is unnecessarily difficult to understand, don't do it.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-09-06T05:28:53.847" />
  <row Id="1092" PostTypeId="2" ParentId="1090" CreationDate="2010-09-06T05:32:50.663" Score="23" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Both.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your first example is certainly more verbose, and arguably more explicit... but it also requires me to scan five lines instead of one. Worse, it deemphasizes its purpose - assigning a value to &lt;code&gt;newGuy.Boss&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your second example may cost me a second if I'm unfamiliar with the null coalescing operator, but there can be no doubt as to its purpose, and if I'm scanning through a larger routine looking for the source of a value, it will be much easier for me to pick this one out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, contrast this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (boss == null) {&#xA;    newGuy.Boss = GetDefaultBoss();&#xA;    newGuy.IsTemp = true;&#xA;    newGuy.AddTask(&quot;orientation&quot;);&#xA;} else {&#xA;    newGuy.Boss = boss;&#xA;    newGuy.IsTemp = false;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;...with:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;newGuy.Boss = boss ?? GetDefaultBoss();&#xA;newGuy.IsTemp = boss == null;&#xA;if ( boss == null ) newGuy.AddTask(&quot;orientation&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The latter example is again much shorter, but now it obscures its purpose by making tasks triggered by the same test appear to be distinct. Here, I feel the verbosity of the former is justified.&lt;/p&gt;&#xA;" OwnerUserId="63" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2010-09-06T05:38:04.300" LastActivityDate="2010-09-06T05:38:04.300" CommentCount="4" />
  <row Id="1093" PostTypeId="2" ParentId="1015" CreationDate="2010-09-06T05:53:26.240" Score="2" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://agilewebsolutions.com/products/1Password&quot; rel=&quot;nofollow&quot;&gt;1Password/Mac&lt;/a&gt; and love it. The password database is stored on my &lt;a href=&quot;http://www.dori.com/dropbox.html&quot; rel=&quot;nofollow&quot;&gt;Dropbox&lt;/a&gt;, which then automagically propagates to my iPhone and iPad, so my current password list is both always backed up and always with me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I mentioned above, &lt;a href=&quot;http://agilewebsolutions.com/onepassword/win&quot; rel=&quot;nofollow&quot;&gt;a Windows version&lt;/a&gt; is now in public beta.&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-09-06T05:53:26.240" />
  <row Id="1094" PostTypeId="2" ParentId="1090" CreationDate="2010-09-06T05:56:42.633" Score="14" ViewCount="" Body="&lt;p&gt;While both are good goals, I'll always side with &lt;strong&gt;Readability&lt;/strong&gt; when forced to choose one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would argue that your example improves both readability &lt;em&gt;and&lt;/em&gt; brevity.  Consider, however:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if( a &amp;gt; b )&#xA;{&#xA;    foo = bar&#xA;}&#xA;else&#xA;{&#xA;    if( c.isThing() ){&#xA;        foo = somethingElse;&#xA;    }&#xA;    else{&#xA;        foo = someFurtherThing.GetFoo();&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;as opposed to &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;foo = a &amp;gt; b ? bar ?? whatever.something : c.isThing() ? somethingElse : someFurtherThing.GetFoo();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The latter is concise, but is difficult to read through.  The former is verbose, but the flow of logic is clear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately, brevity doesn't serve much of a purpose, other than the ability to fit more on the screen.  Readability makes it easier to debug, and so should generally be preferred.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-06T05:56:42.633" />
  <row Id="1095" PostTypeId="1" CreationDate="2010-09-06T06:03:33.023" Score="17" ViewCount="459" Body="&lt;p&gt;I used ad-hoc MUML (made-up modeling language) to design and explain system fairly frequently.  It looks similar to UML and tends to be pretty well understood.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I've had a professor or two that harped on the use of strict, formal UML, as close to the spec as possible.  I always suspected that strict UML wasn't really as common as they claimed.  So, how 'bout it- how often do you actually draw out complete diagrams that use all the proper line endings, multiplicity, member type symbols, etc?&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2011-02-17T19:29:30.403" Title="How often do you use Formal UML?" Tags="&lt;uml&gt;&lt;diagramming&gt;" AnswerCount="11" CommentCount="5" FavoriteCount="2" />
  <row Id="1096" PostTypeId="2" ParentId="1095" CreationDate="2010-09-06T06:13:07.383" Score="37" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Never.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Heck, it's been years since I last created &lt;em&gt;any&lt;/em&gt; UML. Line diagrams on whiteboards and scraps of paper don't count.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, we just removed the sole UML question from the guide we use during interviews, because none of us really cared about the answers.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-06T06:13:07.383" CommentCount="7" />
  <row Id="1098" PostTypeId="2" ParentId="790" CreationDate="2010-09-06T06:47:33.027" Score="3" ViewCount="" Body="&lt;p&gt;For something like encryption or compression algorithms, a patent seems more appropriate than copyright.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a compromise, maybe short term patents (such as 5 years rather than 20).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It gives enough time for a return on investment but without killing off exploitation. Also, by the time a challenge has come to court and been decided, the span is probably up (or close to it) so estimating damages becomes massively easier.&lt;/p&gt;&#xA;" OwnerUserId="114" LastActivityDate="2010-09-06T06:47:33.027" />
  <row Id="1099" PostTypeId="2" ParentId="966" CreationDate="2010-09-06T07:21:59.817" Score="22" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0394756827&quot; rel=&quot;nofollow&quot;&gt;Gödel, Escher, Bach: An Eternal Golden Braid&lt;/a&gt; by &lt;a href=&quot;http://en.wikipedia.org/wiki/Douglas_Hofstadter&quot; rel=&quot;nofollow&quot;&gt;Douglas Hofstadter&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you haven't read this, put it on your list. It's still breathtaking over 30 years later. While &lt;a href=&quot;http://www.amazon.com/Am-Strange-Loop-Douglas-Hofstadter/dp/B001FA23HM/ref=sr_1_2?s=books&amp;amp;ie=UTF8&amp;amp;qid=1283757347&amp;amp;sr=1-2&quot; rel=&quot;nofollow&quot;&gt;I am a Strange Loop&lt;/a&gt; contains a more complete and convincing argument about where consciousness comes from, GEB explores the realms of symmetry, intelligence and logic systems through the music of Bach, the mathematics of Gödel and the art of Escher. It's as infuriating and entertaining as it sounds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/BEXY3.jpg&quot; alt=&quot;Gödel, Escher, Bach: An Eternal Golden Braid&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-06T07:21:59.817" CommunityOwnedDate="2011-01-06T15:42:27.030" CommentCount="2" />
  <row Id="1100" PostTypeId="2" ParentId="1070" CreationDate="2010-09-06T08:40:50.840" Score="2" ViewCount="" Body="&lt;p&gt;I've been a Microsoft developer for 11 years, mostly as a web developer.  Been coding since 1.1 and I've used .NET membership in many of my applications, and I've never heard of dcpromo.&lt;/p&gt;&#xA;" OwnerUserId="93" LastActivityDate="2010-09-06T08:40:50.840" CommentCount="1" />
  <row Id="1101" PostTypeId="2" ParentId="966" CreationDate="2010-09-06T09:05:54.890" Score="19" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0789723107&quot; rel=&quot;nofollow&quot;&gt;Don't Make Me Think! A Common Sense Approach to Web Usability&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Relevant to all user interface design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also includes general common sense for design that every programmer should know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/yq0II.jpg&quot; alt=&quot;Don't Make me think&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-06T09:05:54.890" CommunityOwnedDate="2011-01-06T15:42:27.030" />
  <row Id="1102" PostTypeId="2" ParentId="1070" CreationDate="2010-09-06T09:48:59.480" Score="0" ViewCount="" Body="&lt;p&gt;I would never thought that &lt;code&gt;dcpromo&lt;/code&gt; is somehow related with ASP.NET...&lt;/p&gt;&#xA;" OwnerUserId="132" LastActivityDate="2010-09-06T09:48:59.480" />
  <row Id="1103" PostTypeId="2" ParentId="118" CreationDate="2010-09-06T10:11:57.183" Score="21" ViewCount="" Body="&lt;p&gt;If your looking to stay in Europe Ireland is a great choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Numerous European headquarters are based here, including:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Google&lt;/li&gt;&#xA;&lt;li&gt;Microsoft&lt;/li&gt;&#xA;&lt;li&gt;Yahoo&lt;/li&gt;&#xA;&lt;li&gt;Facebook.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some of the other companies based here are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Apple &lt;/li&gt;&#xA;&lt;li&gt;E-Bay&lt;/li&gt;&#xA;&lt;li&gt;Amazon &lt;/li&gt;&#xA;&lt;li&gt;Intel &lt;/li&gt;&#xA;&lt;li&gt;Hewlett Packard&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There is also quite a large demand for software developers with experience at the moment. I have been getting a lot of calls from recruiters and I haven't been looking for a job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is always talk of the unfilled I.T. jobs in Ireland, at last count it was over 8,000 (I am looking for the updated figure).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like all the other E.U. states you can work in Ireland without a visa as long as you have citizenship of one of the other E.U. countries.&lt;/p&gt;&#xA;" OwnerUserId="64" LastEditorUserId="64" LastEditorDisplayName="" LastEditDate="2010-09-06T19:33:55.777" LastActivityDate="2010-09-06T19:33:55.777" CommentCount="3" />
  <row Id="1104" PostTypeId="2" ParentId="663" CreationDate="2010-09-06T10:32:51.403" Score="1" ViewCount="" Body="&lt;p&gt;Well, I'm only in my second semester Computer Science (Informatik in German), but I do know the required courses which I can post.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1st Semester:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;~Computer Architecture (ARM Processor) - Assembly programming, understanding Low-Level architecture (e.g. Stack, Barrel Shifter, Registers, etc)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;~Technical Computer Science (Hardware-oriented. Building RAM, understanding Memory organization, electricity (Ohm's Law, etc), transistors and the physical components of &#xA;hardware)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;~Mathematics (Combinatorics, Discrete Mathematics)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;~Networking&lt;/p&gt;&#xA;&#xA;&lt;p&gt;~Programming I (Basics up to Linked-List and BSTs in C++)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2nd Semester:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;~Microprocessors (Intel X86 or ARM) - Hardware programming with C and ASM. This is where we start learning how to analyze Hex Dumps and programming the actual hardware. Haven't taken the course yet, but it's regarded as the hardest course of the first four semesters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;~Mathematics (Analysis and Probability)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;~Theoretical Computer Science (Analysis of Algorithms, Turing-completeness, etc)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;~Programming II (Self-Balancing Trees, Algorithms, Data structures)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3rd Semester:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;~Operating Systems (Windows or Linux)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;~Software Engineering&lt;/p&gt;&#xA;&#xA;&lt;p&gt;~Math III&lt;/p&gt;&#xA;&#xA;&lt;p&gt;~Databases&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;4th Semester:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;~Computer Graphics (OpenGL with C++)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;~Web Applications&lt;/p&gt;&#xA;&#xA;&lt;p&gt;~Distributed Systems&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's a fairly healthy mix. We start with low-level programming (a huge plus when I read about Java schools) and go progressively higher each semester. In my mind, this is a very good curriculum and I can wholly recommend it (so far).&lt;/p&gt;&#xA;" OwnerUserId="68" LastActivityDate="2010-09-06T10:32:51.403" CommentCount="1" />
  <row Id="1105" PostTypeId="2" ParentId="1006" CreationDate="2010-09-06T10:46:32.000" Score="6" ViewCount="" Body="&lt;p&gt;Since I'm only in college and don't have to get a job to finance myself, I usually have all the motivation I need to get cracking. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, some days I feel like I do with my music- I just don't know what I want to listen and then don't listen to anything. When that happens I usually rumage through the SO list of questions and see if anybody is working on a problem that I find tempting. The same thing applies to Project Euler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That, or I switch programming languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a tangent, I might skip programming entirely and devote myself to understanding the computer better. I google specific hardware topics and deepen my understanding of what makes the computer run faster. That usually gets me thinking of how I could improve certain aspects of my programming. I actually have a rather small trusty book called &quot;Microprocessors&quot; that I pick and read. Teaches me something new every time. In short, pick a related topic and see if you can apply it to programming!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I also do is look through my old projects. I never delete old code, so I occasionally look through it, say, &quot;Oh my god I was such a noob back then.&quot; and refactor it. I feel really motivated when I see that I can put new knowledge to use on old code. Case in point, about six months ago I wrote an alarm clock. It used C-style functions and structs which also had multiple &quot;bearable&quot; bugs. I gave myself an evening, ironed out the bugs, sorted the code and felt really good about my new working program!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other times, just like with art, it's not really you, it's the place. Get out. Move your laptop away from the desk. Jump on the bed, go to the couch, program outside if you want to. Changing scenery does A LOT for your motivation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, try reading &quot;Pragmatic Thinking and Learning&quot; or &quot;Mind Performance Hacks&quot;. Go for some meditation, or do exercises before you work. Get the blood flowing and your mind in the zone before you even sit your ass on that chair in front of your computer. It. works. wonders.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I don't know what you mean with writing code so that you don't have to go back to it. That sounds more of a problem of skill, not concentration. While concentration makes you avoid the most obvious bugs, only skill can make you catch the subtle errors. &lt;/p&gt;&#xA;" OwnerUserId="68" LastActivityDate="2010-09-06T10:46:32.000" />
  <row Id="1106" PostTypeId="1" CreationDate="2010-09-06T10:57:18.300" Score="17" ViewCount="724" Body="&lt;p&gt;This goes back to a conversation I've had with my girlfriend. I tried to tell her that I simply don't feel adequate enough in my programming language (C++) to call myself good. She then asked me, &quot;Well, when do you consider yourself good enough?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's an interesting question. I didn't know what to tell her. So I'm asking you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For any programming language, framework or the like, when do you reach a point were you sit back, look at what you've done and say, &quot;Hey, I'm actually pretty good at this.&quot;? How do you define &quot;good&quot; so that you can tell others, honestly, &quot;Yeah, I'm good at X&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, do you reach these conclusions by comparing what others can do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Additional Info&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have read the canonical paper on how it takes ten-thousand hours before you are an expert on the field. (Props to anybody that knows what this paper is called again)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have also read various articles from Coding Horror about interviewing people. Some people, it was said, &quot;Cannot function outside of a framework.&quot; So they may be &quot;good&quot; for that framework, but not otherwise in the language. Is this true? &lt;/p&gt;&#xA;" OwnerUserId="68" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-17T19:47:50.513" LastActivityDate="2010-11-22T19:31:44.867" CommunityOwnedDate="2010-09-06T10:57:18.300" Title="When can you call yourself good at language X?" Tags="&lt;programming-languages&gt;&lt;experience&gt;&lt;great-programmer&gt;&lt;comparison&gt;" AnswerCount="18" CommentCount="2" FavoriteCount="4" />
  <row Id="1107" PostTypeId="2" ParentId="1095" CreationDate="2010-09-06T10:57:28.747" Score="7" ViewCount="" Body="&lt;p&gt;I use just enough UML (in terms of both the types of diagrams and the content of the information in the diagram) to get my point across to allow myself or someone else to implement the system or subsystem. And the only reason I use UML is because its a widely known set of symbols that each mean something very specific, so there's no ambiguity - any software engineer should be able to look at the diagram and understand what I'm trying to say about the system.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-06T10:57:28.747" />
  <row Id="1108" PostTypeId="1" CreationDate="2010-09-06T11:04:32.400" Score="19" ViewCount="473" Body="&lt;p&gt;Back in the day, magazines were a great way to learn about new technologies and processes. Now, thanks to blogs, magazines are going the way of the buffalo. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any publications out there that are still worth reading?&lt;/p&gt;&#xA;" OwnerUserId="29" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:18:00.167" LastActivityDate="2010-09-12T13:18:00.167" Title="Are there any magazines still worth reading?" Tags="&lt;learning&gt;&lt;magazines&gt;" AnswerCount="15" FavoriteCount="7" />
  <row Id="1109" PostTypeId="2" ParentId="118" CreationDate="2010-09-06T11:06:15.890" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;England (not London)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Despite the relatively weak economy there are still plenty of jobs in cities outside of London; Bristol, Reading, Birmingham, Manchester.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll have to take a 10%-25% drop in salary and day-rates but your living will be &lt;em&gt;significantly&lt;/em&gt; lower.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;I am Bristol based and could hire 3&#xA;  mobile developers today if I could&#xA;  find them. -- &lt;a href=&quot;http://richardstelling.com&quot; rel=&quot;nofollow&quot;&gt;Richard Stelling&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;20 days guaranteed holiday / year (normally 25-30)&lt;/li&gt;&#xA;&lt;li&gt;Free health care (NHS)&lt;/li&gt;&#xA;&lt;li&gt;Good Pubs&lt;/li&gt;&#xA;&lt;li&gt;Excellent country side&lt;/li&gt;&#xA;&lt;li&gt;Fantastic links to Europe id you want to travel&lt;/li&gt;&#xA;&lt;li&gt;Minimal language barriers &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="96" LastActivityDate="2010-09-06T11:06:15.890" CommentCount="5" />
  <row Id="1110" PostTypeId="2" ParentId="552" CreationDate="2010-09-06T11:12:59.433" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Steve Jobs&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whatever you think of his products or management style he can pick a team and produce results.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If I could be like Steve, I would.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="96" LastActivityDate="2010-09-06T11:12:59.433" CommunityOwnedDate="2010-09-17T19:05:49.223" CommentCount="3" />
  <row Id="1111" PostTypeId="2" ParentId="1059" CreationDate="2010-09-06T11:13:31.273" Score="3" ViewCount="" Body="&lt;p&gt;Honestly I'm not sure if &quot;code reuse&quot; is really what anyone is after (or at least, should be after). My philosophy is &quot;software components&quot;, which means better maintainability through good interfaces and avoiding unnecessary coupling. &quot;Code reuse&quot; is one of the things that falls out of that sometimes -- unnecessarily duplicated code is a sign that you've organized things the wrong way and of course it's a pain to maintain. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer the question a little more directly, there's a collection of pretty good tools for avoiding repeating yourself: inheritance, traits, delegation, higher-order functions, etc. Of those, people tend to confuse inheritance with OO as a whole -- and they also tend to overuse it a bit, if you ask me. Maybe that's where some of the &quot;OO sucks&quot; vibe comes from: finding inheritance stuck where it has no natural right to be :)&lt;/p&gt;&#xA;" OwnerUserId="182" LastActivityDate="2010-09-06T11:13:31.273" CommentCount="1" />
  <row Id="1112" PostTypeId="2" ParentId="57" CreationDate="2010-09-06T11:21:25.350" Score="7" ViewCount="" Body="&lt;p&gt;Spaces, because when you align comments to the right of code, or function parameter lists, or complex multiline expressions, or things of that nature, &lt;em&gt;you want your beautiful work to appear right for everyone&lt;/em&gt;. If you use tabs and allow people to set their tabstops differently, they will break alignment for all but the simplest cases of code indenting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, it's blatantly obvious that everyone in the world should be using vim, which makes it trivial to indent, unindent, and navigate through &quot;tab stops&quot; even in space-indented files.&lt;/p&gt;&#xA;" OwnerUserId="182" LastActivityDate="2010-09-06T11:21:25.350" CommentCount="2" />
  <row Id="1113" PostTypeId="2" ParentId="1106" CreationDate="2010-09-06T12:07:37.707" Score="2" ViewCount="" Body="&lt;p&gt;I know this is a pretty hard question. I did two subjects with where I mainly programmed in C++ and got high distinctions in both. I wouldn't consider myself good at C++. In fact, if I was applying for a job, I would leave it off my resume and just write C instead. The whole language just isn't my thing.&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-06T12:07:37.707" CommunityOwnedDate="2010-09-06T12:07:37.707" />
  <row Id="1114" PostTypeId="2" ParentId="1108" CreationDate="2010-09-06T12:19:07.133" Score="7" ViewCount="" Body="&lt;p&gt;I find &lt;a href=&quot;http://cacm.acm.org/&quot; rel=&quot;nofollow&quot;&gt;&quot;Communications of the ACM&quot;&lt;/a&gt; highly worth reading.  There are several reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The material there is of really &lt;strong&gt;high quality&lt;/strong&gt;.  Not many blogs are reviewed by different people.  Many just lack quality and comprehensiveness in their posts  (as an author of a blog myself, I know what I'm saying :-) ).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Generic magazines provide more &lt;strong&gt;diversity&lt;/strong&gt;.  A blog is usually devoted to a specific topic, because one author just can't write about anything.  (And if several authors write to the same blog, which even has some kind of editors,--is it really not a magazine at all?)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I seldom see &quot;&lt;strong&gt;overviews&lt;/strong&gt;&quot; in blogs--articles where author lists current studies on some subject (or technology), provedes links to them and analyses their benefits and shortcomings.  It's a hard work, and magazines are more likely to contain articles of that sort.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Not only can you learn about new technologies from a magazine.  You can also occasionally read about problems in current technologies, about studies that are currently held.  The key word here is &quot;&lt;strong&gt;current&lt;/strong&gt;&quot;.  I don't know the exact mechanisms, but something makes magazines collect more widespread information.  With blogs, you'd have to collect different posts on your own.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In short, you surely &lt;em&gt;can&lt;/em&gt; pick a subject, google several blog posts on this subject, and read the materials you found.  But why don't let others, more inclined and knowing people to do all that gathering and analytics for you?  That's what magazines really give.&lt;/p&gt;&#xA;" OwnerUserId="34" LastEditorUserId="34" LastEditorDisplayName="" LastEditDate="2010-09-06T17:36:47.090" LastActivityDate="2010-09-06T17:36:47.090" />
  <row Id="1115" PostTypeId="2" ParentId="886" CreationDate="2010-09-06T12:33:03.497" Score="1" ViewCount="" Body="&lt;p&gt;Skydiving... I was shocked by how many fellow skydivers were also into coding or IT of some description or other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question I then asked though, is this due to similar interests or is it just that Skydiving requires a certain level of financial commitment! &lt;/p&gt;&#xA;" OwnerUserId="183" LastActivityDate="2010-09-06T12:33:03.497" CommentCount="3" />
  <row Id="1116" PostTypeId="2" ParentId="1108" CreationDate="2010-09-06T12:34:03.323" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/magazine/default.aspx&quot; rel=&quot;nofollow&quot;&gt;MSDN Magazine&lt;/a&gt; is alright if you are interested in what's new with the Microsoft stack.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-06T12:34:03.323" CommentCount="1" />
  <row Id="1117" PostTypeId="2" ParentId="1106" CreationDate="2010-09-06T13:20:20.200" Score="25" ViewCount="" Body="&lt;p&gt;You can't call yourself good at X.  Only other people can.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-06T13:20:20.200" CommunityOwnedDate="2010-09-06T13:20:20.200" CommentCount="4" />
  <row Id="1118" PostTypeId="2" ParentId="1108" CreationDate="2010-09-06T13:27:32.087" Score="5" ViewCount="" Body="&lt;p&gt;I found the first 2 editions of &lt;a href=&quot;http://hackermonthly.com/&quot; rel=&quot;nofollow&quot;&gt;Hacker Monthly&lt;/a&gt; quite enjoyable. I haven't had time to read the others yet (4 to date).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's based on the top articles from the &lt;a href=&quot;http://news.ycombinator.com/&quot; rel=&quot;nofollow&quot;&gt;Y-combinator HackerNews&lt;/a&gt; in the month. I do track this feed with my rss reader, but the magazine does the job of locating and filtering out the best content.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sub&gt;The first 3 editions are available as PDFs for free (&lt;a href=&quot;http://hackermonthly.com/issues.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;). After that it's $3 for the PDF, or $10+shipping for a physical edition. There is also a 12 month subscription option for either PDF or print that gives you a discount.&lt;/sub&gt;&lt;/p&gt;&#xA;" OwnerUserId="134" LastEditorUserId="134" LastEditorDisplayName="" LastEditDate="2010-09-06T13:54:41.863" LastActivityDate="2010-09-06T13:54:41.863" CommentCount="1" />
  <row Id="1119" PostTypeId="2" ParentId="1108" CreationDate="2010-09-06T13:30:02.393" Score="0" ViewCount="" Body="&lt;p&gt;I started reading Wired UK a couple of months ago. It normally has some interesting articles, some on technology, some on innovation etc. I remember one rather detailed article on the technologies used in banks and hedge funds to facilitate HFT (High Frequency Trading) and that was very interesting. &lt;/p&gt;&#xA;" OwnerUserId="154" LastActivityDate="2010-09-06T13:30:02.393" />
  <row Id="1120" PostTypeId="2" ParentId="1108" CreationDate="2010-09-06T13:38:21.703" Score="1" ViewCount="" Body="&lt;p&gt;The IEEE publishes two magazines that might be interesting. &lt;a href=&quot;http://www.computer.org/portal/web/computer/home&quot; rel=&quot;nofollow&quot;&gt;Computer Magazine&lt;/a&gt; and &lt;a href=&quot;http://www.computer.org/portal/web/software/home&quot; rel=&quot;nofollow&quot;&gt;IEEE Software&lt;/a&gt; are probably the broadest magazines. They also produces transactions, which contain white papers and research reports, on a number of topics and have some other magazines on narrower topics than Computer and Software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're interested, you might want to check out the &lt;a href=&quot;http://www.computer.org/portal/web/publications&quot; rel=&quot;nofollow&quot;&gt;IEEE Computer Society publications website&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-06T13:38:21.703" />
  <row Id="1121" PostTypeId="2" ParentId="1106" CreationDate="2010-09-06T13:38:40.843" Score="3" ViewCount="" Body="&lt;p&gt;Since there is no standardized programming test that you can take that will allow everyone to agree that you are a good programmer, it's up to you to determine whether you call your self that or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that it has to do with your confidence level.  If you FEEL you are good at something then you should be able to say it.  At somepoint you'll complete a project that pushed you and that feeling will change from 'not yet' to 'I am'.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-06T13:38:40.843" CommunityOwnedDate="2010-09-06T13:38:40.843" />
  <row Id="1122" PostTypeId="2" ParentId="1106" CreationDate="2010-09-06T13:40:14.850" Score="1" ViewCount="" Body="&lt;p&gt;Since good is very subjective, I would say you are good exactly when you are confident that you are great.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-06T13:40:14.850" CommunityOwnedDate="2010-09-06T13:40:14.850" />
  <row Id="1123" PostTypeId="2" ParentId="729" CreationDate="2010-09-06T13:41:55.427" Score="9" ViewCount="" Body="&lt;p&gt;I've been using &lt;a href=&quot;http://www.tiddlywiki.com/&quot; rel=&quot;nofollow&quot;&gt;TiddlyWiki&lt;/a&gt; for a few months now. It's a editable wiki page all contained within a single html file.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea is that you make notes (called tiddlers) and edit content via the html/js interface. When you hit save (or the autosave kicks in) it overwrites itself to include all your updates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It doesn't require a web host or anything complex, just save the .html file on your hard drive and open it in your favourite browser. I have set the file as my homepage and put it in my dropbox so it syncs across all my PCs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alternatively, &lt;a href=&quot;http://programmers.stackexchange.com/users/190/gsto&quot;&gt;GSto&lt;/a&gt; has pointed out that &lt;a href=&quot;http://tiddlyspot.com&quot; rel=&quot;nofollow&quot;&gt;tiddlyspot.com&lt;/a&gt; provides free online hosting of tiddlywiki pages with public and private options.&lt;/p&gt;&#xA;" OwnerUserId="134" LastEditorUserId="134" LastEditorDisplayName="" LastEditDate="2010-09-10T07:10:22.010" LastActivityDate="2010-09-10T07:10:22.010" CommunityOwnedDate="2011-03-07T21:12:42.693" CommentCount="4" />
  <row Id="1124" PostTypeId="2" ParentId="1090" CreationDate="2010-09-06T13:42:43.907" Score="4" ViewCount="" Body="&lt;p&gt;I would say as a general rule never sacrifice readability because of conciseness, but never judge readability based on another programmers lack of knowledge on that subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Conciseness and readability are not opposites.  Like this answer, sometimes shorter is more readable. &lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-06T13:42:43.907" CommentCount="1" />
  <row Id="1125" PostTypeId="2" ParentId="1059" CreationDate="2010-09-06T13:50:46.790" Score="2" ViewCount="" Body="&lt;p&gt;I don't expect ALL objects to be reused but we do have a lot of object that we reuse on many different projects.  We also have objects that just get reused on one project.  We often will consume the same business objects (or data transfer objects) as well as business logic objects from a Click-Once desktop app, a web app and a phone app all for the same project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where have you heard that OO doesn't deliver on reuse?  And what was the reasoning?  Perhaps the design of their objects forced them into that situation...&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-06T13:50:46.790" CommentCount="1" />
  <row Id="1126" PostTypeId="2" ParentId="1015" CreationDate="2010-09-06T14:01:04.960" Score="4" ViewCount="" Body="&lt;p&gt;I just rely on my brain.  I have 3 categories of passwords that I use; one for banking (not used anywhere else), one that's fairly hardened and one I don't care if anyone got a hold of.  I don't find it too hard to remember which one to use.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-06T14:01:04.960" />
  <row Id="1127" PostTypeId="2" ParentId="109" CreationDate="2010-09-06T14:30:57.380" Score="1" ViewCount="" Body="&lt;p&gt;A misplaced semicolon beside a while loop.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    while (i &amp;lt; max); // &amp;lt;-- infinite loop&#xA;    {&#xA;        // do something&#xA;        i++;&#xA;    }&#xA;    // why isn't the code below executing?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="64" LastEditorUserId="64" LastEditorDisplayName="" LastEditDate="2010-09-06T19:35:02.490" LastActivityDate="2010-09-06T19:35:02.490" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="3" />
  <row Id="1128" PostTypeId="2" ParentId="39" CreationDate="2010-09-06T14:41:40.840" Score="19" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A programmer started to cuss&lt;br&gt;&#xA;  Because getting to sleep was a fuss&lt;br&gt;&#xA;  As he lay there in bed&lt;br&gt;&#xA;  Looping 'round in his head&lt;br&gt;&#xA;  was: &lt;code&gt;while(!asleep()) sheep++;&lt;/code&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Not quite a quote as such, but I little limerick I've always liked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Source &lt;a href=&quot;http://bash.org/?845468&quot; rel=&quot;nofollow&quot;&gt;piercings - bash.org/?845468&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="134" LastEditorUserId="633" LastEditorDisplayName="" LastEditDate="2010-12-15T23:17:29.027" LastActivityDate="2010-12-15T23:17:29.027" CommunityOwnedDate="2010-09-06T14:41:40.840" CommentCount="1" />
  <row Id="1129" PostTypeId="2" ParentId="1058" CreationDate="2010-09-06T14:54:18.497" Score="3" ViewCount="" Body="&lt;p&gt;I've used EntLib for many years (since they were indiviual App Blocks).  I've found that at times it can be pretty heavy as far as the size of the components, especially if you only need one block and it needs to be downloaded.  Often I'll use the Data and Logging components together and that feels like enough functionality to justify the size.  If your app is strictly on the server side then this really isn't too much of an issue.  One of the things that is nice about it is that if you need more than one block you don't have to go to multiple implementations from multiple vendors that are configured in different ways.  They also provide a tool to help with the configuration (that's a plus and a minus, a plus that they make it easy, a minus that they NEED a tool to help configure it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had the pleasure of being invinted to a couple of Patterns and Practices workshops where I was working side by side with the team members who wrote EntLib.  The intent in creating EntLib was to implement Microsoft's Best Practices in common components that everyone needs that are not part of the base Framework.  They are very stable, provide very good performance and very good flexibility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would start by using some of the easier blocks, like Data and Logging.  They're not too hard to configure and get started with.  Then once you understand those it will be a bit easier to move on to some of the other blocks.  I have not found a situation where you shouldn't use them, other than when you don't need them.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-06T14:54:18.497" />
  <row Id="1130" PostTypeId="2" ParentId="958" CreationDate="2010-09-06T14:59:46.767" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Auto-import&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i.e. click on an class name and pick &quot;import from package X&quot; from the context menu.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Eclipse this is integrated with auto-complete, but in theory they could be implemented separately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Auto-indent&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i.e. when you start a new line it is automatically indented according to block nesting.&lt;/p&gt;&#xA;" OwnerUserId="113" LastActivityDate="2010-09-06T14:59:46.767" />
  <row Id="1131" PostTypeId="2" ParentId="109" CreationDate="2010-09-06T15:12:57.363" Score="0" ViewCount="" Body="&lt;p&gt;Omitting the curly brackets in C#'s switch statement got me once when I first started programming:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Excerpt from Eric Leippert's &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2009/08/13/four-switch-oddities.aspx&quot; rel=&quot;nofollow&quot;&gt;blog&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Switch blocks also define their own declaration spaces, but switch sections do not:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;switch(x)&#xA;{&#xA;  case OneWay:&#xA;    int y = 123;&#xA;    FindYou(ref y);&#xA;    break;&#xA;  case TheOther:&#xA;    double y = 456.7; // illegal!&#xA;    GetchaGetcha(ref y);&#xA;    break;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You can solve this problem in a number of ways; the easiest is probably to wrap the body of the switch section in curly braces:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;switch(x)&#xA;{&#xA;  case OneWay:&#xA;  {&#xA;    int y = 123;&#xA;    FindYou(ref y);&#xA;    break;&#xA;  }&#xA;  case TheOther:&#xA;  {&#xA;    double y = 456.7; // legal!&#xA;    GetchaGetcha(ref y);&#xA;    break;&#xA;  }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;which tells the compiler &quot;no, really, I want these to be different declaration spaces&quot;.&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-09-06T15:12:57.363" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="2" />
  <row Id="1132" PostTypeId="2" ParentId="1106" CreationDate="2010-09-06T15:39:13.833" Score="24" ViewCount="" Body="&lt;p&gt;There's a few good answers to this already, so I'll just contribute this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/bqIAj.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-06T15:39:13.833" CommunityOwnedDate="2010-09-06T15:39:13.833" CommentCount="8" />
  <row Id="1133" PostTypeId="2" ParentId="1106" CreationDate="2010-09-06T15:57:03.790" Score="3" ViewCount="" Body="&lt;p&gt;On a related note, while I think the Software Craftsmanship movement is an excellent idea to help standards improve in our discipline, I've seen a lot of people describe themselves as software craftsmen, which seems a little arrogant to me in most cases.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's up to your peers to decide whether or not you are good at something (or a craftsman); I'm sure Einstein and Feynman didn't wander round early in their careers saying &quot;look at me, I'm a genius!&quot; Similarly, it's up to your peers to decide whether you are good or not. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stackoverflow is a useful tool to decide whether you are competent. Pick some questions in your area of supposed expertise. Answer them (or if they've already been answered, answer them in your head without peeking at the posted answers). Did you think of the best answer? Did you miss anything? Were you just plain wrong? &lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-06T15:57:03.790" CommunityOwnedDate="2010-09-06T15:57:03.790" CommentCount="1" />
  <row Id="1134" PostTypeId="2" ParentId="39" CreationDate="2010-09-06T16:05:21.840" Score="111" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;In theory, there is no difference&#xA;  between theory and practice. But, in&#xA;  practice, there is.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;mdash; Jan L. A. van de Snepscheut&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-27T14:45:22.753" LastActivityDate="2010-09-27T14:45:22.753" CommunityOwnedDate="2010-09-06T16:05:21.840" CommentCount="4" />
  <row Id="1135" PostTypeId="1" CreationDate="2010-09-06T16:43:12.003" Score="11" ViewCount="277" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Planning_poker&quot; rel=&quot;nofollow&quot;&gt;Planning Poker&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Summary, in case you don't want to read the wiki article:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Get a list of tasks you want to do for the upcoming iteration&lt;/li&gt;&#xA;&lt;li&gt;For each task:&lt;br&gt;&#xA;2.1 Discuss with the group what it entails&lt;br&gt;&#xA;2.2 Everyone writes down / selects an estimation of how much effort is required for the task&lt;br&gt;&#xA;2.3 Everyone reveals their estimation&lt;br&gt;&#xA;2.4 The highest and lowest outliers explain their reasoning&lt;br&gt;&#xA;2.5 Repeat until a consensus is reached&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Usually something similar to numbers from the Fibonacci sequence like 0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 100 are the allowed values, so you don't get long arguments over close values like 23 vs 27.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Further, the numbers represent a unit-less value of effort, whose value is determined by a baseline task that everyone agrees equals about a 1, and all else is relative to that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately, the goal is to get a good feel for a given team's &quot;velocity&quot;, which is the number of these points that can be completed in a given iteration.  With that, it's possible to make reasonably accurate estimates of how long any given feature will take.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;We did this at iteration planning meetings at one company I worked at, and I thought it was one of the few good things about that particular company.  So, what I'm wondering is, has anyone used this?  Do you think it's a useful tool for estimation?  Does it work in all situations, or does it lend itself to certain teams, projects, etc?&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2011-02-08T08:36:47.910" Title="What do you think of &quot;Planning Poker&quot;?" Tags="&lt;agile&gt;&lt;estimation&gt;&lt;iterative-development&gt;" AnswerCount="7" FavoriteCount="3" />
  <row Id="1136" PostTypeId="2" ParentId="1135" CreationDate="2010-09-06T17:33:36.660" Score="6" ViewCount="" Body="&lt;p&gt;We use it in our company for the project I'm involved in.  Some notes about planning poker are expressed in &lt;a href=&quot;http://coldattic.info/shvedsky/pro/blogs/a-foo-walks-into-a-bar/posts/41#poker&quot; rel=&quot;nofollow&quot;&gt;my recent blog post&lt;/a&gt;, and here's a bigger list of why it's cool:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;It makes everyone &lt;strong&gt;agree&lt;/strong&gt;.  People are not &lt;em&gt;forced&lt;/em&gt; to accept any result; instead they're forced to make their own estimate!  The time to defend their own estimates is also allocated, if it's necessary.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It &lt;strong&gt;keeps everyone busy&lt;/strong&gt;.  You can't slack during the meeting, while trying to show that you're so involved. Also, necessity of moving your hands constitutes a good physical exercise to keep you off of sleeping.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, a downside of this is that sometimes you do need to do something else (for example, take some notes and write down the details of the agreement you've just reached).  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It &lt;strong&gt;keeps meetings faster&lt;/strong&gt;.  There's no need for a constant involvement of a meeting leader to keep everything on pace.  The game with clear rules is way better for that.  Yes, you need to make some extra moves to put cards on, reveal them, et cetera, but these pay their way.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A lot of &lt;strong&gt;people just like to play cards&lt;/strong&gt;, especially poker :-)  This increases motivation.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;A company that sells decks of such cards accompanied their site with an &lt;a href=&quot;http://www.crisp.se/planningpoker&quot; rel=&quot;nofollow&quot;&gt;article about Planning Poker&lt;/a&gt;, which is also worth reading.&lt;/p&gt;&#xA;" OwnerUserId="34" LastEditorUserId="34" LastEditorDisplayName="" LastEditDate="2010-09-06T17:45:32.580" LastActivityDate="2010-09-06T17:45:32.580" CommentCount="3" />
  <row Id="1139" PostTypeId="2" ParentId="1015" CreationDate="2010-09-06T17:42:08.113" Score="0" ViewCount="" Body="&lt;p&gt;Although other answers mentioned keepass and I agree for those rarely used passwords however, for day to day use passwords I find it easier to remember the placement on the keyboard.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Typing them to me is easier than repeating the characters so to be honest I dont know my password explicitly rather I know the finger movements to type it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This brings up a great problem with it though, what happens when the keyboard layout changes, cell phones and the like sometimes have special characters in interesting places so it makes it quite challenging for me to type some passwords of mine in these devices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;as12$%ty for example looks fairly random however it is really pairs of keys pressed side by side with a shift tossed in if you look at the movement to type it. In this regard it becomes second nature.&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-06T17:42:08.113" />
  <row Id="1140" PostTypeId="2" ParentId="1005" CreationDate="2010-09-06T17:43:28.500" Score="0" ViewCount="" Body="&lt;p&gt;Syntax highlighting where relevant to me is a big one.  &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-06T17:43:28.500" />
  <row Id="1141" PostTypeId="2" ParentId="1108" CreationDate="2010-09-06T17:45:53.067" Score="1" ViewCount="" Body="&lt;p&gt;For a few years now I've subscribed to &lt;a href=&quot;http://www.pcworld.com/&quot; rel=&quot;nofollow&quot;&gt;PC World&lt;/a&gt;. Why when they have an online site? Because the site has a terrible interface but more importantly is too quick. Magazines get the the most popular and best stories, unlike the site where they just publish everything. I also like the sectioning off that they have in the magazine. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-06T17:45:53.067" />
  <row Id="1142" PostTypeId="2" ParentId="1003" CreationDate="2010-09-06T17:47:21.897" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Sometimes it is because the coder learned the language using the ide/editor.  &lt;/li&gt;&#xA;&lt;li&gt;Other times it is because after learning a language a coder desires a more rich feature set and seeks for new tool to get the job done.  &lt;/li&gt;&#xA;&lt;li&gt;Sometimes it is because the coder gets crazy and decides to try something radical out.&lt;/li&gt;&#xA;&lt;li&gt;Me personally, I use the best tool for the job which may be nano, vim, gedit, or a full blown IDE.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I can say though I am much more confident coding in languages I learned without using an IDE.  Java for example, I began using eclipse and tried netbeans but find it as a crutch to code.  Whereas php I started with a plain old editor and after looking back would consider myself much greater in php then java anyday even when usind an IDE for java development.&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-06T17:47:21.897" />
  <row Id="1143" PostTypeId="2" ParentId="958" CreationDate="2010-09-06T17:56:39.820" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Saving.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pretty sure I'd miss it if I couldn't make changes to files in an IDE.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-09-06T17:56:39.820" CommentCount="5" />
  <row Id="1144" PostTypeId="2" ParentId="1020" CreationDate="2010-09-06T17:59:36.707" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;What would you give to charities if you had the chance?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would love to offer software (helping people at no real cost to me would be awesome), but nothing I have is at that point yet, so I mostly help out by doing creative work, or creating things to make their lives easier. Project management would be fun, but that is quite a large amount of commitment, and I can't really do that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What motivates you to donate your spare time?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My motivations feel a bit selfish, but usually when I offer to help its because I want to stay current, keep my body of work growing, and learn new things. I'm not really in a place where I can really give for completely Altruistic reasons. But often doing work for Charity looks impressive to people, it's pretty good PR, and usually their needs are outside of what I would commonly be doing for work (so interesting).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only other thing would be something that I &lt;strong&gt;&lt;em&gt;really&lt;/em&gt;&lt;/strong&gt; care about, I have a bit of a soft-spot for charities that work for the benefit of social groups that I may have at one point been a part of, or that work to help groups that friends &amp;amp; family are apart of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What prevents you from giving?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mostly, I just don't have the time or resources to do it. But one thing that makes me discontinue work that I was intending on doing (and prevents me from wanting to work with future groups in that sector) is not having a good fit with the group that I work with. I take my deadlines (for work due to others, my personal work doesn't count) very seriously, I manage my time pretty well and my schedule is usually in a constant-state of being full. So when an organization that I am doing work for decides to get angry at me for not pushing their work up in priority it's irksome.&lt;/p&gt;&#xA;" OwnerUserId="57" LastActivityDate="2010-09-06T17:59:36.707" />
  <row Id="1145" PostTypeId="2" ParentId="958" CreationDate="2010-09-06T18:03:39.573" Score="0" ViewCount="" Body="&lt;p&gt;The ability to set a custom color-scheme for the IDE.&lt;/p&gt;&#xA;" OwnerUserId="57" LastActivityDate="2010-09-06T18:03:39.573" />
  <row Id="1146" PostTypeId="2" ParentId="1005" CreationDate="2010-09-06T18:06:51.533" Score="0" ViewCount="" Body="&lt;p&gt;I think targeted ads are important. &lt;em&gt;Not google content sniffing ads&lt;/em&gt;, but ads that are allowed by relevance by the site's staff.&lt;/p&gt;&#xA;" OwnerUserId="57" LastActivityDate="2010-09-06T18:06:51.533" />
  <row Id="1147" PostTypeId="2" ParentId="1005" CreationDate="2010-09-06T18:34:18.623" Score="1" ViewCount="" Body="&lt;p&gt;Good content, well presented.  The rest is just fluff.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-06T18:34:18.623" />
  <row Id="1149" PostTypeId="2" ParentId="954" CreationDate="2010-09-06T18:41:08.370" Score="2" ViewCount="" Body="&lt;p&gt;&quot;Anything worth doing, is worth doing right.&quot;&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-09-06T18:41:08.370" CommentCount="3" />
  <row Id="1150" PostTypeId="2" ParentId="282" CreationDate="2010-09-06T19:40:57.017" Score="15" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://herdingcode.com/&quot; rel=&quot;nofollow&quot;&gt;Herding Code&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I only started listening to this lately but so far it is pretty good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This week they were talking to the developers of the &lt;a href=&quot;http://nu.wikispot.org/&quot; rel=&quot;nofollow&quot;&gt;Nu project&lt;/a&gt;, package management system for .Net ,well worth a listen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Jeff Atwood was also on it a couple of weeeks ago talking about stackexchange.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was reminiscent of the old Stackoverflow podcast.&lt;/p&gt;&#xA;" OwnerUserId="64" LastEditorUserId="64" LastEditorDisplayName="" LastEditDate="2010-09-10T16:17:02.757" LastActivityDate="2010-09-10T16:17:02.757" CommunityOwnedDate="2010-12-21T06:02:41.540" CommentCount="1" />
  <row Id="1151" PostTypeId="1" AcceptedAnswerId="1152" CreationDate="2010-09-06T20:13:47.727" Score="14" ViewCount="238" Body="&lt;p&gt;Where does the word &quot;Programming&quot; come from? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm referring to the word &quot;program&quot; as referring to &quot;to instruct a computer&quot;. Programming, programmer etc...&lt;/p&gt;&#xA;" OwnerUserId="67" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T14:07:18.953" LastActivityDate="2010-09-12T14:07:18.953" Title="Where does the word &quot;Programming&quot; come from?" Tags="&lt;history&gt;&lt;languages&gt;&lt;etymology&gt;" AnswerCount="1" />
  <row Id="1152" PostTypeId="2" ParentId="1151" CreationDate="2010-09-06T20:36:27.377" Score="18" ViewCount="" Body="&lt;p&gt;It started out as meaning something like &quot;An ordered list of things to happen- a plan or a scheme.&quot;  That fit with the things computer scientists were making- a list of commands, a plan of action, so they started calling the things they were making &quot;programs.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Older etymology:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;1630s, &quot;public notice,&quot; from L.L. programma &quot;proclamation, edict,&quot; from Gk. programma (gen. programmatos) &quot;a written public notice,&quot; from stem of prographein &quot;to write publicly,&quot; from pro- &quot;forth&quot; (see pro-) + graphein &quot;to write&quot; (see -graphy). General sense of &quot;a definite plan or scheme&quot; is recorded from 1837. Meaning &quot;list of pieces at a concert, playbill&quot; first recorded 1805 and retains the original sense. That of &quot;objects or events suggested by music&quot; is from 1854. Sense of &quot;broadcasting presentation&quot; is from 1923. Computer sense (n.,v.) is from 1945. Spelling programme, sometimes preferred in Britain, is from French and began to be used early 19c. The verb in the figurative sense of &quot;to train to behave in a predetermined way&quot; is from 1963. Related: Programmed; programming.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.etymonline.com/index.php?term=program&quot; rel=&quot;nofollow&quot;&gt;http://www.etymonline.com/index.php?term=program&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-06T20:36:27.377" CommentCount="5" />
  <row Id="1154" PostTypeId="2" ParentId="1108" CreationDate="2010-09-06T21:03:01.817" Score="2" ViewCount="" Body="&lt;p&gt;Wired magazine is cool. I usually don't subscribe, but I've seen them in waiting rooms and dorm rooms.&lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-09-06T21:03:01.817" CommentCount="2" />
  <row Id="1155" PostTypeId="2" ParentId="1020" CreationDate="2010-09-06T21:08:20.560" Score="1" ViewCount="" Body="&lt;p&gt;I tried donating some programming time to a student group when I was working on my undergrad.  Moral of the story, free work is not appreciated anymore than paid work.  The group had poor requirements/specifications, would not respond in a timely fashion and all around I ended up leaving the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not to say it cannot be a great experience, but it is to say be careful as some free work is not all its cracked out to be.&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-06T21:08:20.560" />
  <row Id="1156" PostTypeId="1" CreationDate="2010-09-06T21:29:45.763" Score="11" ViewCount="800" Body="&lt;p&gt;I get this question on interviews occasionally: &quot;Describe a time you've had trouble with someone on your team, and how you dealt with it.&quot;  Now, in classes, you just do their work yourself and report them to the professer when peer evaluation time comes around.  I'm curious how people handle this in the real world, since I have yet to deal with someone professionally who wasn't pulling his or her weight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you handle it?&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-15T14:49:30.487" LastActivityDate="2011-04-30T19:02:30.287" ClosedDate="2011-04-30T19:32:00.747" Title="How do you deal with bad coworkers?" Tags="&lt;personality&gt;&lt;co-workers&gt;" AnswerCount="9" CommentCount="6" FavoriteCount="1" />
  <row Id="1157" PostTypeId="1" CreationDate="2010-09-06T21:35:46.483" Score="13" ViewCount="338" Body="&lt;p&gt;I am very interested in language evolution. I define mainstream languages as languages that see widespread use in terms of the number of programmers that have tried the language. I am only interested in features that aren't already widely available in these languages.&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-14T11:21:15.710" LastActivityDate="2011-05-31T15:33:02.057" ClosedDate="2011-06-01T13:01:39.200" Title="What features do you think will become popular among mainstream languages soon?" Tags="&lt;programming-languages&gt;&lt;prediction&gt;&lt;features&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="3" />
  <row Id="1158" PostTypeId="1" CreationDate="2010-09-06T21:40:39.857" Score="4" ViewCount="85" Body="&lt;p&gt;What benefits does having code contracts available within the language/framework have? How does it compare to using unit tests or assertions instead?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="86" LastEditorDisplayName="" LastEditDate="2010-09-06T23:01:48.657" LastActivityDate="2010-09-06T23:01:48.657" Title="What do you think about design by contract?" Tags="&lt;code-contracts&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="0" />
  <row Id="1159" PostTypeId="2" ParentId="1156" CreationDate="2010-09-06T21:40:55.377" Score="18" ViewCount="" Body="&lt;p&gt;I think it depends on your position. I am a team lead, and when someone who reports to me is not pulling their weight, I talk to them about it. If it is a peer, it depends on my relationship with them. I have confronted some of them, and others I just go to my boss, and talk with him. In any situation, review time should not be the first time you hear about underachieving. If it is, I believe that boss isn't doing his job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, always keep in mind that there could be a really good reason why said person is acting a certain way. It could be a medical reason, or his mom/dad could have passed away. Unless you know for certain, be cautious when approaching him.   &lt;/p&gt;&#xA;" OwnerUserId="81" LastActivityDate="2010-09-06T21:40:55.377" CommentCount="1" />
  <row Id="1160" PostTypeId="2" ParentId="1156" CreationDate="2010-09-06T21:58:14.893" Score="3" ViewCount="" Body="&lt;p&gt;If the person is your peer then you should have a quiet word with your (and by extension their) boss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't talk about it to your other co-workers. There might be some relationship issues - both friendly and antagonistic - that could complicate matters. A friend might be tempted to &quot;warn&quot; the person while someone not so friendly might try and use the information to cause more trouble for the person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you've passed your concerns on there not a lot more you can really do.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-06T21:58:14.893" />
  <row Id="1161" PostTypeId="2" ParentId="566" CreationDate="2010-09-06T22:14:25.333" Score="3" ViewCount="" Body="&lt;p&gt;Surely it depends on the programming language. The main reason &lt;code&gt;goto&lt;/code&gt; has been controversial is because of its ill effects that arise when the compiler lets you use it too liberally. Problems can arise, for example, if it lets you use &lt;code&gt;goto&lt;/code&gt; in such a way that you can now access an uninitialised variable, or worse, to jump into another method and mess with the call stack. It should be the responsibility of the compiler to disallow nonsensical control flow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java has attempted to “solve” this problem by disallowing &lt;code&gt;goto&lt;/code&gt; entirely. However, Java lets you use &lt;code&gt;return&lt;/code&gt; inside a &lt;code&gt;finally&lt;/code&gt; block and thus cause an exception to be inadvertantly swallowed. The same problem is still there: the compiler is not doing its job. Removing &lt;code&gt;goto&lt;/code&gt; from the language hasn’t fixed it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In C#, &lt;code&gt;goto&lt;/code&gt; is as safe as &lt;code&gt;break&lt;/code&gt;, &lt;code&gt;continue&lt;/code&gt;, &lt;code&gt;try/catch/finally&lt;/code&gt; and &lt;code&gt;return&lt;/code&gt;. It doesn’t let you use uninitialised variables, it doesn’t let you jump out of a finally block, etc. The compiler will complain. This is because it solves the &lt;em&gt;real&lt;/em&gt; problem, which is like I said nonsensical control flow. &lt;code&gt;goto&lt;/code&gt; doesn’t magically cancel definite-assignment analysis and other reasonable compiler checks.&lt;/p&gt;&#xA;" OwnerUserId="147" LastEditorUserId="147" LastEditorDisplayName="" LastEditDate="2010-09-06T22:30:58.483" LastActivityDate="2010-09-06T22:30:58.483" />
  <row Id="1162" PostTypeId="2" ParentId="1158" CreationDate="2010-09-06T22:36:33.527" Score="2" ViewCount="" Body="&lt;p&gt;At the moment, code contracts are not very useful compared to unit tests and similar mechanisms. The technology and the research is not quite there yet to enable fast and reliable compile-time static checking of contracts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I expect this to change. I expect that by 2020 we will have static analysis tools that will successfully enforce code contracts and flag all violations with a compiler error. Eventually code contracts will become part of beginners’ introductions to programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, personally I don’t think code contracts by themselves will replace unit tests. Maybe something else &lt;em&gt;in conjunction&lt;/em&gt; with code contracts will, but not code contracts by themselves. Code contracts can only ensure certain properties about the code, but not semantic correctness. (Nor can unit tests, but together the two will catch more errors than one alone.)&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-06T22:36:33.527" CommentCount="7" />
  <row Id="1163" PostTypeId="2" ParentId="1090" CreationDate="2010-09-06T22:45:53.440" Score="2" ViewCount="" Body="&lt;p&gt;One aspect that I don't think has been mentioned yet: what are &lt;em&gt;your&lt;/em&gt; goals?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If all you care about is job security, go for conciseness &amp;amp; compactness over everything else. Skip commenting your code, too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to be able to easily hand your code off to someone else while you go work on a cool new project, go for readability, clarity, and lots of solid comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sub&gt;&lt;sup&gt;Note: the above isn't about you personally, @Damovisa; it's for anyone choosing between the two positions.&lt;/sup&gt;&lt;/sub&gt;&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-09-06T22:45:53.440" />
  <row Id="1164" PostTypeId="2" ParentId="1156" CreationDate="2010-09-06T22:49:30.180" Score="8" ViewCount="" Body="&lt;p&gt;First try to help them.  If someone is having trouble with some task and you have the ability to help them, then help them before complaining about them.  We all have our strengths and weaknesses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said sometimes people just aren't trying.  If your work is dependent on theirs, then be sure to have clear communication with the bad coworker.  Set expectations from them and set when tasks are expected to be complete.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a very good chance your manager already know about the performance problem.  If things don't improve continue to set expectations, but also BCC your manager on the said communication.  Discuss with your manager that the bad performance is affecting your deadlines and schedules. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the bad co-worker finally gets let go (probably several weeks or months later), then don't feel bad about it.  You can only help those who want help, and having bad co-workers only hurts your knowledge and your career.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-06T22:49:30.180" CommentCount="1" />
  <row Id="1165" PostTypeId="2" ParentId="1135" CreationDate="2010-09-06T23:12:25.313" Score="2" ViewCount="" Body="&lt;p&gt;I agree with Pavel's points. There's also one other thing that is valuable. It levels the playing field for discussion. Often quiet people are drowned out by more verbal people in a group discussion. Planning poker gives everybody a chance to make their decision before the active discussion begin. And if it the quiet person who provides the &quot;outlier&quot; opinion, they have the full stage on which to present their case. Therefore the technique is empowers the quieter contributors, and ensures full team participation. &lt;/p&gt;&#xA;" OwnerUserId="85" LastActivityDate="2010-09-06T23:12:25.313" />
  <row Id="1166" PostTypeId="1" CreationDate="2010-09-07T00:06:20.913" Score="24" ViewCount="1637" Body="&lt;p&gt;Since I've been able to start doing software development for a living, I've worked at one business casual job and two jeans/t-shirt jobs.  I'm not sure I ever want to go back to the former.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I'm curious, what do you think of dress-codes?  Do you prefer places that make you dress more professionally or would you rather dress casually?  Would that be a major factor working somewhere?&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2011-03-11T00:57:07.833" CommunityOwnedDate="2011-01-30T18:03:58.527" ClosedDate="2011-05-18T21:18:27.307" Title="How important is dress code to you?" Tags="&lt;hiring&gt;&lt;work-environment&gt;" AnswerCount="30" CommentCount="5" FavoriteCount="3" />
  <row Id="1167" PostTypeId="2" ParentId="1166" CreationDate="2010-09-07T00:09:45.803" Score="61" ViewCount="" Body="&lt;p&gt;I would very much prefer jeans and a T-shirt as the dress code.  It is much cheaper to buy jeans and t-shirts. Also being comfortable is nice as well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only exception is when a customer is visiting. Then I would say business casual is appropriate. But those days should be the exception not the rule. &lt;/p&gt;&#xA;" OwnerUserId="5" LastActivityDate="2010-09-07T00:09:45.803" CommunityOwnedDate="2011-01-30T18:03:58.527" CommentCount="3" />
  <row Id="1168" PostTypeId="2" ParentId="1135" CreationDate="2010-09-07T00:16:41.990" Score="1" ViewCount="" Body="&lt;p&gt;I like Pavel's points and would like to add that it really helps junior developers or noobs learn a lot faster. They can't just sit back and let the senior developers rule. Their vote counts just as much and if they really focus on making their estimates accurate they will learn a lot from the senior developers. &lt;/p&gt;&#xA;" OwnerUserId="5" LastActivityDate="2010-09-07T00:16:41.990" />
  <row Id="1169" PostTypeId="2" ParentId="1166" CreationDate="2010-09-07T00:17:20.420" Score="21" ViewCount="" Body="&lt;p&gt;Most places I've worked at, I've dressed business casual, even when I was the only one dressed that way.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I dressed that way because I've usually been managed by laymen who really didn't understand programming or how to judge me based on merit.  So I decided to dress in a manner where 'image' would not work against me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my current job, it's highly casual, and it's a software consulting company, so everybody judges me on merit.  Dress is highly casual, and I've decided to take advantage of it for comfort in the winter months.  (trudging through slush with $250 shoes sucks)&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-07T00:17:20.420" CommunityOwnedDate="2011-01-30T18:03:58.527" CommentCount="9" />
  <row Id="1170" PostTypeId="2" ParentId="1166" CreationDate="2010-09-07T00:49:33.197" Score="1" ViewCount="" Body="&lt;p&gt;Of very little importance, the workplace isn't a school (especially since most people are focusing on their monitors) so I would rather people come to work dressed in whatever they feel will allow them to complete their work in the most efficient fashion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Luckily I don't have the issue with customer-facing appearance. Because in most customer/client/investor type meetings I am the one doing the face-to-face. And I like suits.&lt;/p&gt;&#xA;" OwnerUserId="57" LastActivityDate="2010-09-07T00:49:33.197" CommunityOwnedDate="2011-01-30T18:03:58.527" CommentCount="1" />
  <row Id="1171" PostTypeId="2" ParentId="1166" CreationDate="2010-09-07T00:50:18.313" Score="14" ViewCount="" Body="&lt;p&gt;I wear the cheapest, most durable, most comfortable clothes I can get away with. You wouldn't pay extra for a display or keyboard that hurt your eyes and couldn't be wiped clean of fingerprints - why would you subject yourself to constant distraction and hassle from any other accessory?&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-07T00:50:18.313" CommunityOwnedDate="2011-01-30T18:03:58.527" CommentCount="2" />
  <row Id="1172" PostTypeId="2" ParentId="1157" CreationDate="2010-09-07T02:10:12.410" Score="2" ViewCount="" Body="&lt;p&gt;What I'd &lt;strong&gt;like&lt;/strong&gt; to see in a mainstream language is first-class support for mixed grammars. For example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;I'd like to be able to embed some XML in a program and have the XML syntax checked at compile time.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I'd like to be able to define my own grammar and embed fragments in my code. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(The &quot;Refine&quot; language used to be able to do this kind of thing in the 1990's.)&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-09-07T02:10:12.410" CommentCount="12" />
  <row Id="1173" PostTypeId="2" ParentId="39" CreationDate="2010-09-07T02:11:37.847" Score="56" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;If debugging is the process of&#xA;  removing software bugs, then&#xA;  programming must be the process of&#xA;  putting them in.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; Edsger Dijkstra &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-10-08T11:11:35.633" CommunityOwnedDate="2010-09-07T02:11:37.847" CommentCount="3" />
  <row Id="1174" PostTypeId="2" ParentId="39" CreationDate="2010-09-07T02:13:42.857" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;“ Copy and paste is a design error. ”&#xA;   -- David Parnas &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-09-07T02:13:42.857" CommunityOwnedDate="2010-09-07T02:13:42.857" CommentCount="2" />
  <row Id="1175" PostTypeId="2" ParentId="39" CreationDate="2010-09-07T02:16:06.163" Score="48" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;The best thing about a boolean is&#xA;  even if you are wrong, you are only&#xA;  off by a bit. - (Anonymous)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="120" LastEditorUserId="120" LastEditorDisplayName="" LastEditDate="2010-10-08T15:06:40.500" LastActivityDate="2010-10-08T15:06:40.500" CommunityOwnedDate="2010-09-07T02:16:06.163" CommentCount="1" />
  <row Id="1176" PostTypeId="2" ParentId="39" CreationDate="2010-09-07T02:16:58.863" Score="29" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Should array indices start at 0 or 1?&#xA;  My compromise of 0.5 was rejected&#xA;  without, I thought, proper&#xA;  consideration.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; Stan Kelly-Bootle&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-10-08T11:35:44.087" CommunityOwnedDate="2010-09-07T02:16:58.863" />
  <row Id="1177" PostTypeId="2" ParentId="1166" CreationDate="2010-09-07T02:25:08.767" Score="8" ViewCount="" Body="&lt;p&gt;I believe that the advice regarding reading people may be appropriate here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never judge a person by what they are wearing, but attempt to determine what message they (are trying to) send with their wardrobe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I prefer a place that has a jeans &amp;amp; t-shirt dress code, though I tend to prefer wearing business casual attire myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, if you've never had to wear a monkey suit to work you have no reason to complain. My first job was suit &amp;amp; tie 4 days a week, with &lt;em&gt;corporate&lt;/em&gt; casual on Fridays.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To more fully answer the actual questions:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dress codes are not necessarily important to me.  I will wear whatever is deemed appropriate.  That said, I prefer more relaxed dress codes as I would rather be allowed to express myself as I see fit and be trusted to dress appropriately for client meetings.  Personally, I more often run the risk of being overdressed than underdressed.  Dress codes are not a big factor for me when selecting a workplace, though they may shed some light on the overall company culture.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;An important thing to point out is that jeans and t-shirts are not necessarily more comfortable than business casual attire.  It all depends on the materials.  Even a well selected monkey suit can be quite comfortable, if you know what you are doing.  I actually find jeans to be a pain and prefer properly designed/constructed pants.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To make my overall point more obvious (based on the comment below):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Comfort means different things to different people.  Unreasonably restrictive dress codes are a bad idea.  Companies should let their employees wear what suits them (within reason) and trust them to make the right choices.  If you don't trust them to dress appropriately, how do you trust them to do their jobs?&lt;/p&gt;&#xA;" OwnerUserId="149" LastEditorUserId="149" LastEditorDisplayName="" LastEditDate="2010-09-08T17:51:09.383" LastActivityDate="2010-09-08T17:51:09.383" CommunityOwnedDate="2011-01-30T18:03:58.527" CommentCount="6" />
  <row Id="1178" PostTypeId="2" ParentId="959" CreationDate="2010-09-07T03:18:35.823" Score="10" ViewCount="" Body="&lt;p&gt;For another perspective on this argument, it's worth spending the time reading Marvin Minsky's, &quot;&lt;a href=&quot;http://www.rci.rutgers.edu/~cfs/472_html/Intro/MinskyArticle/MM1.html&quot; rel=&quot;nofollow&quot;&gt;Why People Think Computers Can't&lt;/a&gt;&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We know so little about human intelligence at the moment that not only is it difficult to say computers &lt;em&gt;can't&lt;/em&gt; think, it's worth considering that they may be capable of &quot;better&quot; thought than us.&lt;/p&gt;&#xA;" OwnerUserId="91" LastActivityDate="2010-09-07T03:18:35.823" CommunityOwnedDate="2011-04-19T01:26:27.260" CommentCount="1" />
  <row Id="1179" PostTypeId="2" ParentId="886" CreationDate="2010-09-07T03:28:06.650" Score="4" ViewCount="" Body="&lt;p&gt;I've known a lot of geeks with strong interests in historical re-enactments/re-creations, such as SCA, Renaissance Faires, black powder, Civil War, and such-like. For guys with a reputation of not liking to dress up, they sure seem to like to dress up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a definite overlap between geeks and audiophile-videophiles. And I suppose it's obvious, but no one has yet mentioned Science Fiction/Fantasy fandom.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have no idea why, but there's a &lt;strong&gt;HUGE&lt;/strong&gt; overlap between classicists and tech writers. It seems like whenever I talk to someone in the tech writing biz, phrases like &quot;back when I was in his Latin class&quot; always seem to come up.&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-09-07T03:28:06.650" CommentCount="1" />
  <row Id="1180" PostTypeId="1" CreationDate="2010-09-07T06:51:11.683" Score="15" ViewCount="1372" Body="&lt;p&gt;I've been in workplaces where, at the start of a project, the &quot;Should we use VB.Net or C#&quot; question has been raised.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Granted, it's probably less common to have to make that decision now than it was in the early days of .Net, particularly given the trend towards language convergence, but it can still be a heated debate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, between VB.Net and C#, Which language do you prefer and why?&lt;/p&gt;&#xA;" OwnerUserId="91" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-10-08T09:57:36.343" LastActivityDate="2011-03-17T12:32:02.243" CommunityOwnedDate="2010-09-16T02:43:58.453" ClosedDate="2011-05-03T17:48:38.517" Title="VB.Net vs C# debate" Tags="&lt;holy-war&gt;&lt;.net&gt;&lt;c#&gt;&lt;vb.net&gt;" AnswerCount="21" CommentCount="7" FavoriteCount="4" />
  <row Id="1181" PostTypeId="2" ParentId="1180" CreationDate="2010-09-07T07:10:45.397" Score="6" ViewCount="" Body="&lt;p&gt;I prefer C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started as VB.NET programmer but with passing of time it became obvious that quite a lot of new features are coming first to C# and then later to VB.NET (e.g. automatic property). And community surrounding C# is much more lively than VB.NETs one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, if you intend to learn Java or similar language, C# is better starting point - syntax is almost same in all C-derived languages. Although this would not be tipping point for me since syntax is something you can learn quickly anyhow.&lt;/p&gt;&#xA;" OwnerUserId="52" LastActivityDate="2010-09-07T07:10:45.397" CommentCount="2" />
  <row Id="1182" PostTypeId="2" ParentId="1180" CreationDate="2010-09-07T07:39:33.580" Score="5" ViewCount="" Body="&lt;p&gt;I came to .NET from C and C++ (with a bit of Java, Ada and Pascal thrown in) so C# was the natural progression for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a job came along that required VB.NET I certainly wouldn't turn it down.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-07T07:39:33.580" />
  <row Id="1183" PostTypeId="2" ParentId="1180" CreationDate="2010-09-07T07:41:24.370" Score="2" ViewCount="" Body="&lt;p&gt;Well, today there's little to none real reason to use VB.net. In the beginning it was just a way to give give VB programmers a familiar syntax, but was essentially a BASIC-like remapping of C#. So its only real advantage is a more familiar syntax, and its BASIC syntax is also its real only limit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over the time the two languages evolved alongside, the only significant difference is the &lt;code&gt;my&lt;/code&gt;  pseudo namespace.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would advice every .net programmer that is not familiar to C# to learn it, as the community is fairly larger and the C-like syntax is common to most of the more used languages.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-07T07:41:24.370" CommentCount="1" />
  <row Id="1184" PostTypeId="2" ParentId="1166" CreationDate="2010-09-07T08:05:51.170" Score="1" ViewCount="" Body="&lt;p&gt;For me dress code is essential to accept a job. I will never ever accept a job where I should dress tie and jacket: it is uncomfortable and expensive. I have to dress large, comfortable clothes, jack and tie is just a way to sweating. This does not mean that a non-business dress can't be elegant and sober.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This also mean that in my company I have to avoid to advance career, as architects already have to dress formally sometimes, and I don't even own a business suite and I don't intend to buy one!&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-07T08:19:22.787" LastActivityDate="2010-09-07T08:19:22.787" CommunityOwnedDate="2011-01-30T18:03:58.527" />
  <row Id="1185" PostTypeId="2" ParentId="1180" CreationDate="2010-09-07T08:08:54.197" Score="16" ViewCount="" Body="&lt;p&gt;I prefer the bracket syntax of C-style languages to the more &quot;verbose&quot; syntax of BASIC-style languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My introduction to programming was with Turbo Pascal.  (The bit of BASIC programming I did on the Commodore 64, as a child, doesn't really count.)  After learning Java I never looked back and have preferred C-style syntax.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-09-07T08:08:54.197" CommentCount="5" />
  <row Id="1186" PostTypeId="2" ParentId="1166" CreationDate="2010-09-07T09:05:11.463" Score="3" ViewCount="" Body="&lt;p&gt;I think &lt;a href=&quot;http://randsinrepose.com/&quot; rel=&quot;nofollow&quot;&gt;Michael Loop's&lt;/a&gt; (Rands) new book's cover illustrates perfectly general consensus on programmer dress codes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/CkWij.jpg&quot; alt=&quot;Being Geek&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mostly think casual to smart casual should be the norm with the occasional suit when meeting with a customer.&lt;/p&gt;&#xA;" OwnerUserId="64" LastEditorUserId="64" LastEditorDisplayName="" LastEditDate="2010-09-08T08:38:45.500" LastActivityDate="2010-09-08T08:38:45.500" CommunityOwnedDate="2011-01-30T18:03:58.527" CommentCount="3" />
  <row Id="1187" PostTypeId="2" ParentId="282" CreationDate="2010-09-07T09:51:25.673" Score="28" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://thisdeveloperslife.com/&quot; rel=&quot;nofollow&quot;&gt;This Developer's Life&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A podcast that tells stories about&#xA;  things technical and not so technical.&#xA;  It is a straight and unapologetic&#xA;  rip-off of This American Life.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="29" LastActivityDate="2010-09-07T09:51:25.673" CommunityOwnedDate="2010-12-21T06:02:41.540" CommentCount="2" />
  <row Id="1188" PostTypeId="2" ParentId="368" CreationDate="2010-09-07T09:53:28.710" Score="0" ViewCount="" Body="&lt;p&gt;Another point for &quot;slowness&quot; of Java is the 64bit runtime. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've heard some people complain that Java is very slow for them on 64bit computers. &lt;s&gt;As it turns out, 64bit Java runtime uses server JVM which compiles whole program before starting.&lt;/s&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/198577&quot;&gt;HERE&lt;/a&gt; is explanation why 64bit  VM starts slower.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example on Windows:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;C:\&amp;gt; java -version  &#xA;java version &quot;1.6.0_21&quot;  &#xA;Java(TM) SE Runtime Environment (build 1.6.0_21-b06)  &#xA;Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)  &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="98" LastEditorUserId="98" LastEditorDisplayName="" LastEditDate="2010-09-11T14:45:22.700" LastActivityDate="2010-09-11T14:45:22.700" CommentCount="2" />
  <row Id="1189" PostTypeId="1" AcceptedAnswerId="1196" CreationDate="2010-09-07T09:54:34.230" Score="24" ViewCount="543" Body="&lt;p&gt;By now I work with asp.net and C#. I have done a decent work in Java as well. I am planning my career in such a way I should be language-agnostic someday. What are the things that I need to learn? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;First would OOP paradigms as its speaks about the Class design. Are there any others?&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2011-03-17T11:48:48.943" Title="What should I do to be language-agnostic?" Tags="&lt;career&gt;&lt;language-agnostic&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="13" />
  <row Id="1190" PostTypeId="2" ParentId="67" CreationDate="2010-09-07T09:57:27.877" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.paulgraham.com/&quot; rel=&quot;nofollow&quot;&gt;Paul Graham: Essays&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="29" LastActivityDate="2010-09-07T09:57:27.877" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="1191" PostTypeId="2" ParentId="67" CreationDate="2010-09-07T10:07:41.060" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://randsinrepose.com/&quot; rel=&quot;nofollow&quot;&gt;Rands In Repose&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="64" LastEditorUserId="6693" LastEditorDisplayName="" LastEditDate="2010-12-23T11:46:01.620" LastActivityDate="2010-12-23T11:46:01.620" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="1192" PostTypeId="2" ParentId="880" CreationDate="2010-09-07T10:22:53.907" Score="1" ViewCount="" Body="&lt;p&gt;I work in the biggest Italian industry, and we have all the same model of computer (from secretaries to developers), a low performance HP Compaq laptop with 60 GB of HD and 1 GB of RAM (a desktop alternative was available but equally bad in performance). Executives get a smaller version of the laptop, a docking station and a mobile phone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All the machines share a horrible and slow Windows XP professional image built and ghosted by our central IT (at first boot, I had 60 processes running...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I was so bored waiting the compiler doing its job, I pimped it &lt;em&gt;with my own money&lt;/em&gt;, replacing HD with a 250 GB 7200 RPM version and with 4 GB of RAM and a docking station.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At home I have a powerful workstation, with a Core2 Quad, 8 GB of RAM, 2 Velociraptor HD in RAID-0 (for OS, programs and documents) and additional 4 TB of storage.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-07T10:22:53.907" CommunityOwnedDate="2011-02-06T19:45:08.167" CommentCount="3" />
  <row Id="1193" PostTypeId="2" ParentId="1180" CreationDate="2010-09-07T10:27:22.093" Score="8" ViewCount="" Body="&lt;p&gt;They are functionally the same, there is nothing you can do in one you can't do in the other, and for the future Microsoft have pledged that the language teams will develop both evenly so this is equivalence unlikely to change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The differences now are purely cultural and personal. &lt;a href=&quot;http://www.codeproject.com/kb/dotnet/CSharpVersusVB.aspx&quot; rel=&quot;nofollow&quot;&gt;This article is interesting reading on the differences between the cultures of programmers using C# and VB.net&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sub&gt;[Note: Although I'm a C# dev myself, the linked article's conclusion does not necessarily reflect my personal opinion, it's just an interesting alternative approach in the debate]&lt;/sub&gt;&lt;/p&gt;&#xA;" OwnerUserId="134" LastEditorUserId="134" LastEditorDisplayName="" LastEditDate="2010-09-07T10:32:55.337" LastActivityDate="2010-09-07T10:32:55.337" CommentCount="3" />
  <row Id="1194" PostTypeId="2" ParentId="880" CreationDate="2010-09-07T10:46:01.960" Score="0" ViewCount="" Body="&lt;p&gt;Homemade desktop: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;lian li pc-b25f&lt;/li&gt;&#xA;&lt;li&gt;asus p6x58d-e &lt;/li&gt;&#xA;&lt;li&gt;intel i7 930 &lt;/li&gt;&#xA;&lt;li&gt;crucial ballistix ddr3 2x3gb &lt;/li&gt;&#xA;&lt;li&gt;nvidia gtx 275 &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Although I do travel/code with my netbook when I am mobile: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;asus 1008 ha &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-07T10:46:01.960" CommunityOwnedDate="2011-02-06T19:45:08.167" />
  <row Id="1195" PostTypeId="2" ParentId="1189" CreationDate="2010-09-07T11:19:12.417" Score="1" ViewCount="" Body="&lt;p&gt;I don't think you can become truly language agnostic. I find that I &quot;think&quot; in my current language (at the moment C#).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, having said that, I think you might be able to separate the design from the code by trying to think in pseudo code rather than a specific language, and actually write it down in this format. This could help you concentrate on the design and architecture decisions rather than the implementation in your current language. The drawback with that - as Simon points out - is that the language and framework you ultimately use will inevitably influence the design. So as your design develops it will become increasingly tied to the language &amp;amp; framework.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-09-07T11:38:49.600" LastActivityDate="2010-09-07T11:38:49.600" CommentCount="2" />
  <row Id="1196" PostTypeId="2" ParentId="1189" CreationDate="2010-09-07T11:19:27.530" Score="33" ViewCount="" Body="&lt;p&gt;To be language agnostic you need to have experience in all of the common styles and types of languages.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;An &lt;a href=&quot;http://en.wikipedia.org/wiki/Imperative_programming&quot; rel=&quot;nofollow&quot;&gt;imperative&lt;/a&gt; language (You tell it what to do, step by step. Eg - C)&lt;/li&gt;&#xA;&lt;li&gt;A &lt;a href=&quot;http://en.wikipedia.org/wiki/Declarative_programming&quot; rel=&quot;nofollow&quot;&gt;declarative&lt;/a&gt; language (You tell it your goal, it figures out what to do. Eg - SQL/HTML/Prolog)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A &lt;a href=&quot;http://en.wikipedia.org/wiki/Functional_programming&quot; rel=&quot;nofollow&quot;&gt;functional&lt;/a&gt; language (Functions are key, avoiding state and side effects are the goals. Eg - Haskell/OCaml/Lisp/F#)&lt;/li&gt;&#xA;&lt;li&gt;An &lt;a href=&quot;http://en.wikipedia.org/wiki/Object-oriented_programming&quot; rel=&quot;nofollow&quot;&gt;object oriented&lt;/a&gt; language (Architecture where objects encapsulate related data and the methods that act on them). Eg - Java/C#)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some typing styles:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A &lt;a href=&quot;http://en.wikipedia.org/wiki/Type_system#Static_typing&quot; rel=&quot;nofollow&quot;&gt;statically typed&lt;/a&gt; language (Data types are defined and checked at compile time. Eg - C#)&lt;/li&gt;&#xA;&lt;li&gt;A &lt;a href=&quot;http://en.wikipedia.org/wiki/Type_system#Dynamic_typing&quot; rel=&quot;nofollow&quot;&gt;dynamically typed&lt;/a&gt; language (Data types are checked at runtime. Eg - Python/Javascript)&lt;br&gt;&#xA;Experience of &lt;a href=&quot;http://en.wikipedia.org/wiki/Strong_typing&quot; rel=&quot;nofollow&quot;&gt;strong&lt;/a&gt; vs. &lt;a href=&quot;http://en.wikipedia.org/wiki/Weak_typing&quot; rel=&quot;nofollow&quot;&gt;weak&lt;/a&gt; typing is also useful.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some different runtime styles:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Something &lt;a href=&quot;http://en.wikipedia.org/wiki/Compiled_language&quot; rel=&quot;nofollow&quot;&gt;compiled&lt;/a&gt; (Eg - C++)&lt;/li&gt;&#xA;&lt;li&gt;Something &lt;a href=&quot;http://en.wikipedia.org/wiki/Interpreted_language&quot; rel=&quot;nofollow&quot;&gt;interpreted&lt;/a&gt; (Eg - PHP)&lt;/li&gt;&#xA;&lt;li&gt;Something &lt;a href=&quot;http://en.wikipedia.org/wiki/Managed_code&quot; rel=&quot;nofollow&quot;&gt;Managed&lt;/a&gt; (Eg - C#/Java)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Lower level stuff:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Something fairly low level (Eg - C)&lt;/li&gt;&#xA;&lt;li&gt;Some dialect of &lt;a href=&quot;http://en.wikipedia.org/wiki/Assembly_language&quot; rel=&quot;nofollow&quot;&gt;assembly&lt;/a&gt; (Eg - NASM)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;On top of that I would say you need experience of some &lt;a href=&quot;http://en.wikipedia.org/wiki/Concurrent_computing&quot; rel=&quot;nofollow&quot;&gt;concurrent programming&lt;/a&gt; and something &lt;a href=&quot;http://en.wikipedia.org/wiki/Event-driven_programming&quot; rel=&quot;nofollow&quot;&gt;event driven&lt;/a&gt;. You should probably also make sure you know something about the various domains such as web programming (client &amp;amp; server), rich client development/desktop, games. You might also want to learn about embedded programming, or dedicated hardware (like games consoles), and mobile development is becoming an increasingly relevant domain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Others have also mentioned that it's worth getting some experience of &lt;a href=&quot;http://en.wikipedia.org/wiki/Generic_programming&quot; rel=&quot;nofollow&quot;&gt;Generic programming&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Metaprogramming&quot; rel=&quot;nofollow&quot;&gt;Meta programming&lt;/a&gt; approaches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you learn these paradigms avoid just learning the syntax and writing in your old style. I've seen many C# devs write JavaScript as if it's statically typed. Don't do this, try to learn the language paradigms and embrace them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've done all of this, the differences between languages will become largely syntactical so switching will become a fairly simple exercise of learning some new syntax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't forget though that modern programming is almost always dependant on a framework, so familiarising yourself with the common and popular frameworks for each language you learn is also critical. Knowing C# is irrelevant without .net. &lt;/p&gt;&#xA;" OwnerUserId="134" LastEditorUserId="134" LastEditorDisplayName="" LastEditDate="2011-03-17T11:48:48.943" LastActivityDate="2011-03-17T11:48:48.943" CommentCount="13" />
  <row Id="1197" PostTypeId="2" ParentId="1034" CreationDate="2010-09-07T11:25:54.590" Score="3" ViewCount="" Body="&lt;p&gt;It's all about marketing.  With an application certification you can play-up the certification in your sales materials, which would be an important difference if competing software was not certified.  On the flip side, if other competing software are certified and yours is not, if MAY suggest that your software is inferior somehow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is really going to depend on what field your software serves, whether you're willing to make the financial investment for the certification process and whether you think that certification will boost sales enough to justify that investment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you decide to certify your app, I would strongly suggest that you develop a marketing plan on how you're going to use that certification.  It would be a shame to spend the time and money to achieve the certification and then not take advantage of it.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-07T11:25:54.590" />
  <row Id="1198" PostTypeId="2" ParentId="724" CreationDate="2010-09-07T11:26:42.383" Score="3" ViewCount="" Body="&lt;h2&gt;C# Properties&lt;/h2&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/// &amp;lt;summary&amp;gt;&#xA;/// Get ID&#xA;/// &amp;lt;/summary&amp;gt;&#xA;public int ID&#xA;{&#xA;    get; set;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;vs&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Java)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/**&#xA; * Name of user&#xA; */&#xA;private String name;&#xA;&#xA;/**&#xA; * Gets name of user&#xA; * @return Name of user&#xA; */&#xA;public String getName() {&#xA;    return this.name;&#xA;}&#xA;&#xA;/**&#xA; * Sets name of user. &#xA; * @param name&#xA; */&#xA;public void setName(final String name) {&#xA;    this.name = name;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-07T11:26:42.383" CommentCount="7" />
  <row Id="1199" PostTypeId="2" ParentId="1007" CreationDate="2010-09-07T11:36:10.270" Score="7" ViewCount="" Body="&lt;p&gt;Some of the best testers I've worked with really understand how the users are going to use the software.  They understand what business function the software is supposed to play and how that software will effect the user's role/job/function.  It makes for a successful project when the tester has as much knowledge of the business as the developer and the business owner.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-07T11:36:10.270" />
  <row Id="1200" PostTypeId="1" AcceptedAnswerId="1252" CreationDate="2010-09-07T11:47:26.797" Score="8" ViewCount="369" Body="&lt;p&gt;Coming from a procedural/OO programming background, I tend to write Scheme programs in a procedural fashion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any tutorial or free book that can teach Scheme or Lisp in a functional way from the ground up, kind of resetting your programmer's mind?&lt;/p&gt;&#xA;" OwnerUserId="87" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T03:57:59.623" LastActivityDate="2010-10-04T11:17:11.847" Title="How to grasp functional programming concepts?" Tags="&lt;functional-programming&gt;&lt;scheme&gt;&lt;lisp&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="1201" PostTypeId="2" ParentId="826" CreationDate="2010-09-07T11:59:27.473" Score="2" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Boot_Camp_%28software%29&quot; rel=&quot;nofollow&quot;&gt;Boot Camp&lt;/a&gt;&lt;/h2&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-07T11:59:27.473" CommentCount="3" />
  <row Id="1202" PostTypeId="1" CreationDate="2010-09-07T12:15:59.213" Score="15" ViewCount="1997" Body="&lt;p&gt;In the beginning was Al-Khwarizmi, then we had Leibnitz, Boole, Pascal, Babbage, and especially Turing, the father of the modern computer science.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, after Turing, who is the greatest, most influential programmer of all time?&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="685" LastEditorDisplayName="" LastEditDate="2011-01-25T11:07:58.047" LastActivityDate="2011-02-26T16:57:23.473" CommunityOwnedDate="2010-09-07T18:26:11.157" ClosedDate="2011-01-06T16:51:37.697" Title="Who is the greatest or most influential programmer of all time?" Tags="&lt;great-programmer&gt;&lt;history&gt;" AnswerCount="21" CommentCount="12" FavoriteCount="10" />
  <row Id="1203" PostTypeId="2" ParentId="1202" CreationDate="2010-09-07T12:19:03.840" Score="51" ViewCount="" Body="&lt;h3&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Anders_Hejlsberg&quot; rel=&quot;nofollow&quot;&gt;Anders Hejlsberg&lt;/a&gt;&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;He implemented the glorious Turbo Pascal, then Delphi, and C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although other programmers may have been more influential, the sum of all the creations of Hejlsberg along his career always amazes me.&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-07T12:49:26.313" LastActivityDate="2010-09-07T12:49:26.313" CommunityOwnedDate="2010-09-07T18:30:37.107" CommentCount="10" />
  <row Id="1204" PostTypeId="2" ParentId="1202" CreationDate="2010-09-07T12:37:25.623" Score="39" ViewCount="" Body="&lt;p&gt;Possibly &lt;a href=&quot;http://en.wikipedia.org/wiki/Donald_Knuth&quot; rel=&quot;nofollow&quot;&gt;Donald E Knuth&lt;/a&gt;. Not only has he made substantial contributions to the world of algorithm analysis, he also invented literate programming and TeX.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-07T12:37:25.623" CommunityOwnedDate="2010-09-11T20:54:21.317" CommentCount="12" />
  <row Id="1205" PostTypeId="2" ParentId="1200" CreationDate="2010-09-07T13:03:09.870" Score="5" ViewCount="" Body="&lt;p&gt;The book I always see recommended when talking about Scheme or Lisp is &lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book.html&quot; rel=&quot;nofollow&quot;&gt;The Structure and Interpretation of Computer Programs&lt;/a&gt;. It's freely available on that website, and I think it's provided as a PDF if you search around.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been meaning to work through it, but I'm not sure when I'll get the time. I can't comment on how good the book actually is, though. But it's been recommended by multiple people, so I'm guessing its pretty good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are interested in other functional programming languages, I've been told that it's rather easy to do the exercises in languages like Haskell or F#. I think there's also a blogger who is working through SICP using Haskell and posting his solutions to the exercises, but I can't find the link right now.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-07T13:03:09.870" CommentCount="2" />
  <row Id="1206" PostTypeId="2" ParentId="1202" CreationDate="2010-09-07T13:27:12.557" Score="17" ViewCount="" Body="&lt;h1&gt;Larry Wall&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;He gave us more then one way to cause headaches.&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-09-07T13:27:12.557" CommentCount="3" />
  <row Id="1207" PostTypeId="2" ParentId="1166" CreationDate="2010-09-07T14:08:24.527" Score="6" ViewCount="" Body="&lt;p&gt;I prefer my current employer's dress code:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No shirt, no shoes, no service.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-07T14:08:24.527" CommunityOwnedDate="2011-01-30T18:03:58.527" CommentCount="2" />
  <row Id="1208" PostTypeId="2" ParentId="826" CreationDate="2010-09-07T14:51:38.770" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://git-scm.com/&quot; rel=&quot;nofollow&quot;&gt;Git&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Git is a free &amp;amp; open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://gitx.frim.nl/&quot; rel=&quot;nofollow&quot;&gt;Git X&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;GitX is a git GUI made for Mac OS X. It currently features a history viewer much like gitk and a commit GUI like git gui. But then in silky smooth OS X style!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-07T14:51:38.770" CommentCount="1" />
  <row Id="1209" PostTypeId="2" ParentId="1202" CreationDate="2010-09-07T14:56:03.947" Score="24" ViewCount="" Body="&lt;h1&gt;Linus Torvalds&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Best known for having initiated the development of the Linux kernel and git revision control system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not only one of the most influential programmers of all time but also in 2004, he was named one of the most influential people in the world by the Time magazine.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-07T14:56:03.947" CommunityOwnedDate="2010-09-21T18:14:48.300" CommentCount="14" />
  <row Id="1210" PostTypeId="2" ParentId="1202" CreationDate="2010-09-07T15:10:48.803" Score="12" ViewCount="" Body="&lt;p&gt;Jon Skeet &lt;img src=&quot;http://i.imgur.com/s5r3Z.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Jon knows the answer to your stackover question before you even ask it.&lt;/p&gt;&#xA;" OwnerUserId="85" LastActivityDate="2010-09-07T15:10:48.803" CommentCount="12" />
  <row Id="1212" PostTypeId="2" ParentId="1166" CreationDate="2010-09-07T16:00:26.373" Score="17" ViewCount="" Body="&lt;p&gt;I've just gone back to having to wear shirt and suit trousers (but no tie) from more relaxed circumstances and I'm OK with that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that dressing for work differently to how I dress at the weekends a good thing. It helps separate work and home and changing out of work clothes when I get home completes that process.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-09-07T18:08:44.413" LastActivityDate="2010-09-07T18:08:44.413" CommunityOwnedDate="2011-01-30T18:03:58.527" CommentCount="3" />
  <row Id="1213" PostTypeId="2" ParentId="101" CreationDate="2010-09-07T16:06:32.937" Score="16" ViewCount="" Body="&lt;p&gt;There is a math ceiling. If you can't get math, you will never move into the really sophisticated areas in computer science beyond the math ceiling. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most basic business programming is under the math ceiling, however. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If someone wants to be all they can be, they will have taken the math courses( Linear, Calc 1, Discrete, and Calc 2). And, as a corollary, a university should provide the theoretical foundation, and thus require the math courses. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a note, one problem at work(yes real professional work. :P) is mathematical and reducible to 3SAT, and I am putzing around with figuring out how to solve it in a practical fashion.&lt;/p&gt;&#xA;" OwnerUserId="148" LastEditorUserId="148" LastEditorDisplayName="" LastEditDate="2010-09-13T16:39:41.423" LastActivityDate="2010-09-13T16:39:41.423" CommunityOwnedDate="2011-03-13T14:49:02.620" CommentCount="2" />
  <row Id="1214" PostTypeId="2" ParentId="109" CreationDate="2010-09-07T16:09:29.087" Score="11" ViewCount="" Body="&lt;p&gt;Test using assignment &lt;code&gt;=&lt;/code&gt; instead of comparison &lt;code&gt;==&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if( status = 10 ) {&#xA;    doSomething();&#xA;} else {&#xA;   doSomethingElse();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Mhh I wonder we never execute the else part&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="82" LastActivityDate="2010-09-07T16:09:29.087" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="4" />
  <row Id="1215" PostTypeId="2" ParentId="886" CreationDate="2010-09-07T16:13:05.683" Score="5" ViewCount="" Body="&lt;p&gt;Playing musical instruments has long been connected with programming.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-07T16:13:05.683" CommentCount="3" />
  <row Id="1216" PostTypeId="2" ParentId="826" CreationDate="2010-09-07T16:14:39.250" Score="1" ViewCount="" Body="&lt;p&gt;Google quick search box&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://code.google.com/p/qsb-mac/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://i.imgur.com/J0UxA.png&quot; alt=&quot;Google quick search box&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="82" LastActivityDate="2010-09-07T16:14:39.250" />
  <row Id="1217" PostTypeId="1" CreationDate="2010-09-07T16:26:27.980" Score="13" ViewCount="438" Body="&lt;p&gt;I think we’ve all seen this. Beginners ask questions on StackOverflow that follow the basic outline...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I’m trying to do &lt;em&gt;(very vague description of the goal)&lt;/em&gt; but it doesn’t work/I get an error/exception. Please help!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Isn’t it bizarre that so many of them seem to consider it unnecessary to paste the error message?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wonder what the psychology of this is. What is it about error messages that makes people initially assume that they are useless and not worth paying any attention to?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The answer I’m looking for is &lt;em&gt;not&lt;/em&gt; “they don’t understand the error message”. That doesn’t explain why they wouldn’t consider telling anyone else who might understand it.&lt;/p&gt;&#xA;" OwnerUserId="147" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2011-04-26T15:03:36.987" LastActivityDate="2011-04-26T15:32:38.560" Title="Why do new programmers seem to ignore compiler error messages/runtime exception messages?" Tags="&lt;junior-programmer&gt;&lt;psychology&gt;&lt;error-messages&gt;" AnswerCount="10" CommentCount="5" />
  <row Id="1218" PostTypeId="2" ParentId="1217" CreationDate="2010-09-07T16:32:17.313" Score="7" ViewCount="" Body="&lt;p&gt;I think if it is a true beginner there's a good chance they don't know there is an error message at all.  They only know it doesn't run and that there is an error.  For example in Visual studio they may not see that part of the screen.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically they don't know which part of the information they have available is useful to figure out what the problem is.  If they did there would be a better chance they could fix it themselves and not ask about it in the first place. &lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-07T16:32:17.313" CommentCount="2" />
  <row Id="1219" PostTypeId="2" ParentId="1202" CreationDate="2010-09-07T16:46:58.610" Score="28" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Tim_Berners-Lee&quot; rel=&quot;nofollow&quot;&gt;Sir Tim Berners-Lee&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;He's credited with inventing the world wide web.  That is, he wrote the first web browser and web server, along with creating the http protocol.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-07T16:46:58.610" />
  <row Id="1222" PostTypeId="2" ParentId="1217" CreationDate="2010-09-07T17:12:16.470" Score="4" ViewCount="" Body="&lt;p&gt;This applies more on IRC than online websites such as Stack Overflow, which is much more rare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the reasoning behind it is that people feel better if they know that a person in particular is interested in their problem and is willing to help them. So they start by saying that they have a problem, but they don't go into details until someone asks them, because they are afraid that otherwise they won't get an answer anyways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes (not in the case of compiler errors) this behavior actually makes sense. If I have a big complicated problem I'll make sure there is someone listening first before writing a long explanation that no one will read.&lt;/p&gt;&#xA;" OwnerUserId="112" LastActivityDate="2010-09-07T17:12:16.470" CommentCount="1" />
  <row Id="1223" PostTypeId="2" ParentId="1108" CreationDate="2010-09-07T17:17:46.053" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://pragprog.com/magazines&quot; rel=&quot;nofollow&quot;&gt;PragPub&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Publish by the good guys over at The Pragmatic Bookshelf, PragPub is a free monthly magazine packed full of interesting articles, features, and departments. It is availble in a variety of ebook formats.&lt;/p&gt;&#xA;" OwnerUserId="29" LastActivityDate="2010-09-07T17:17:46.053" />
  <row Id="1224" PostTypeId="1" CreationDate="2010-09-07T17:21:48.947" Score="26" ViewCount="593" Body="&lt;p&gt;I've never found the ideal way to perform code reviews and yet often my customers require them. Each customer seems to do them in a different way and I've never felt satisfied in any of them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What has been the most effective way for you to perform code reviews?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is one person regarded as the gatekeeper for quality and reviews the code, or do the team own the standard?  &lt;/li&gt;&#xA;&lt;li&gt;Do you do review code as a team exercise using a projector?&lt;/li&gt;&#xA;&lt;li&gt;Is it done in person, via email or using a tool? &lt;/li&gt;&#xA;&lt;li&gt;Do you eschew reviews and use things like pair programming and collective code ownership to ensure code quality?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="38" LastEditorUserId="38" LastEditorDisplayName="" LastEditDate="2010-09-12T15:29:01.227" LastActivityDate="2011-02-15T22:53:55.310" Title="What's the most effective way to perform code reviews?" Tags="&lt;code-quality&gt;&lt;code-reviews&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="10" />
  <row Id="1225" PostTypeId="2" ParentId="1224" CreationDate="2010-09-07T17:46:36.510" Score="2" ViewCount="" Body="&lt;p&gt;If you are working on a project where multiple people will contribute to the code base a standard needs to be established.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this point, in my experience it is best to designate one person as the &quot;king&quot; of code review if you will and what he/she says goes.  In this regard, if one user is not adhering to standards the king will take care of it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a dev myself, I review my own code many many times to be readable, sensible and everything else.  Usually we use javadoc or similar in given languages we code with and use @author tag to attach ownership to functions, classes etc.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a function is not correct we talk to owner, same with class etc.  &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-07T17:46:36.510" />
  <row Id="1226" PostTypeId="2" ParentId="886" CreationDate="2010-09-07T17:48:04.930" Score="2" ViewCount="" Body="&lt;p&gt;I sew and crochet, both involve deciphering a pattern and creatively (but logically) assembling pieces to make a finished whole.  I'm also a picky person and being able to make household items myself the way I want them is a good thing.&lt;/p&gt;&#xA;" OwnerUserId="95" LastActivityDate="2010-09-07T17:48:04.930" CommentCount="2" />
  <row Id="1228" PostTypeId="2" ParentId="1217" CreationDate="2010-09-07T17:49:04.100" Score="5" ViewCount="" Body="&lt;p&gt;I think that asking questions and troubleshooting is a skill that needs to be learned, and for professional developers, it's an important skill that simply isn't taught often enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just as the code you write when you first start in this profession is going to be horrible compared to the code you write today, the questions you ask are going to be terrible compared to the way you ask them today.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you start out, it's easy to be overwhelmed by all of the information that you are learning and when things aren't going to plan, it's difficult to know what information is relevant and what isn't. This is a big part of the reason why beginners can't solve the problem for themselves in the first place!&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-07T17:49:04.100" CommentCount="1" />
  <row Id="1229" PostTypeId="2" ParentId="1224" CreationDate="2010-09-07T17:51:35.663" Score="6" ViewCount="" Body="&lt;p&gt;I like code reviews, though they can be a pain.  The reason I like them is that they get more eyes on the code and a different perspective.  I believe that even with pair programming, code should be reviewed.  It's easy enough for two people working on the same code to collectively make the same mistake that a different set of eyes may not miss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If done as a group with a projector, it really should be reviewed individually &lt;em&gt;before&lt;/em&gt; the meeting.  Otherwise, it is just an annoying waste of time.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've only done code reviews via email and in a group.  Generally speaking, I don't think they should be done in person.  You feel a little more pressure to rush through the code with someone looking over your shoulder.  I do believe that a tool designed for code reviewing would be a good asset, as it can help with some of the mundane aspects and it should make it easier to flag problem bits of code then it is via email.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with having one person do all code reviews is that it can be a bottleneck.  With well documented and designed coding standards it should not be necessary.  Depending on the environment/release-schedule it may be a good idea to always have someone as a standby code reviewer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do believe that code ownership is a good idea as this person can make it their priority to understand that code and potentially play a gatekeeper role.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-09-07T17:51:35.663" CommentCount="1" />
  <row Id="1230" PostTypeId="2" ParentId="1180" CreationDate="2010-09-07T18:05:46.493" Score="19" ViewCount="" Body="&lt;p&gt;I hate VB.NET. The days I still spend using it are the days I regret. That said, my tastes are a part of my situation and experience, and don't necessarily have any relevance to what you're doing... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it is important, when comparing continually-evolving languages like C# and VB.NET, to look back at their history and see how they arrived at their current state:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The original advantages of BASIC on microcomputers included size and simplicity (small, easy-to-parse syntax made for small, reasonably fast interpreters and left room in memory for the actual program and data), an interactive environment that enabled experimentation, and a syntax that eschewed terse symbols and structures for a reasonably clear, English-like syntax. It was poorly-suited for large, structured programs however, and tended to encourage spaghetti code. Still, its availability and simplicity made it an excellent choice for an introduction to programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;QuickBasic updated the syntax to allow for large more structured programs, and added compilation for faster execution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;VisualBasic provided a powerful, easy-to-use form builder to enable rapid construction of GUI applications, while adopting the QB syntax for use in scripting these UIs. It worked best when used to create UIs for low-level logic provided as pre-built components (usually written in some other language). Over time, the syntax became increasingly large and inconsistent as new features were tacked on. The focus on drawing up a UI first and then filling in bits of script worked well for small, UI-centered apps, but tended to encourage copy-paste programming and a variation on spaghetti code while discouraging re-use, complex data structures, and separation of concerns. In the minds of many, &quot;VB code&quot; became synonymous with &quot;big ball of mud&quot;; &quot;VB programmer&quot; with &quot;inexperienced hack&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;VB.NET is a VB-like language on the .NET platform, an attempt (not entirely successful) to clean up and modernize the overgrown VB syntax. It was not perfectly compatible with existing VB code, and made no effort to provide compatibility with VB &lt;em&gt;forms&lt;/em&gt; (arguably the most important part of VB) whatsoever. This left many VB product owners with the unpleasant choice of effectively re-writing their applications in VB.NET (dealing with subtle incompatibilities in every routine that wasn't carefully examined) or &lt;em&gt;actually&lt;/em&gt; re-writing their applications in C# (dealing with an unfamiliar syntax &lt;em&gt;in addition to&lt;/em&gt; the new runtime library and forms designer). Most VB.NET users were VB users who stuck with it for the syntax alone, many using it as a crutch while learning C#. As a result, it immediately took on a reputation as a haven for programmers who had become stuck in their ways, unwilling or unable to expand or improve their skills. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this point in time, VB.NET continues to evolve, slowly shedding baggage while picking up new and interesting syntax (LINQ, XML literals). Still, it retains almost none of the original advantages of BASIC: it is a large, complex language with a fairly steep learning curve and limited opportunity for interactive experimentation. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;For old programmers who have stuck with it over the past 30+ years, it's not a bad choice, provided they don't limit themselves to it.&lt;/li&gt;&#xA;&lt;li&gt;For new programmers, the increasingly-vague resemblance of VB programs to English is hardly worth the bizarre nods to backwards compatibility and social stigma.&lt;/li&gt;&#xA;&lt;li&gt;For new &lt;em&gt;projects&lt;/em&gt;, VB.NET is a strange choice unless the project is heavily involved with one of the few tasks the language is optimized for: integration with poorly-typed COM components (Office...) (though C# 4.0 reduces this advantage considerably), or inline XML generation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-07T18:05:46.493" CommentCount="3" />
  <row Id="1231" PostTypeId="2" ParentId="1202" CreationDate="2010-09-07T18:09:13.053" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Ward_Cunningham&quot; rel=&quot;nofollow&quot;&gt;Ward Cunningham&lt;/a&gt;&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Inventor of the wiki, as well as pioneering and spreading the word about design patterns, integration testing and extreme programming techniques.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-07T18:09:13.053" />
  <row Id="1232" PostTypeId="2" ParentId="1224" CreationDate="2010-09-07T18:18:18.710" Score="1" ViewCount="" Body="&lt;p&gt;At my company each task is assigned a tester to test the task, and also a code reviewer to review the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your product is already released and you want to make sure you aren't doing anything wrong (such as a handle leak, or memory leak) code reviews are a great thing.   I think during the initial development before releasing your product, code reviews may be too much work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your team has all senior developers, then peer review is still useful.  Everyone makes mistakes sometimes.  If your team has some seniors and some juniors, then let the senior developers do the code reviews, but still have code reviews for the senior's code as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One important thing about code review is that it can catch errors that we make, but it is not a replacement for testing.  &lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-07T18:18:18.710" />
  <row Id="1233" PostTypeId="2" ParentId="135" CreationDate="2010-09-07T18:25:24.387" Score="1" ViewCount="" Body="&lt;p&gt;A few others no-one has mentioned yet&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://twitter.com/MrAlanCooper&quot; rel=&quot;nofollow&quot;&gt;Alan Cooper&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://twitter.com/royosherove&quot; rel=&quot;nofollow&quot;&gt;Roy Osherove&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://twitter.com/mikewcohn&quot; rel=&quot;nofollow&quot;&gt;Mike Cohn&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://twitter.com/WardCunningham&quot; rel=&quot;nofollow&quot;&gt;WardCunningham&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://twitter.com/testobsessed&quot; rel=&quot;nofollow&quot;&gt;Elisabeth Hendrickson&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-07T18:25:24.387" CommunityOwnedDate="2011-02-11T07:48:02.420" />
  <row Id="1234" PostTypeId="2" ParentId="724" CreationDate="2010-09-07T19:04:56.977" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;PHP's extension system&lt;/strong&gt; is a great feature. If you have the appropriate library compiled/installed, you don't need to declare your intention to use it: just use the function or class you want whenever you need it. The whole &lt;code&gt;include &amp;lt;library&amp;gt;&lt;/code&gt; or &lt;code&gt;use &amp;lt;library&amp;gt;&lt;/code&gt; thing feels anachronistic for an interpretive language.&lt;/p&gt;&#xA;" OwnerUserId="8" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-07T19:13:49.000" LastActivityDate="2010-09-07T19:13:49.000" CommentCount="5" />
  <row Id="1235" PostTypeId="2" ParentId="959" CreationDate="2010-09-07T19:34:12.850" Score="18" ViewCount="" Body="&lt;p&gt;There are really two &lt;em&gt;types&lt;/em&gt; of AI:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Weak_AI&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;weak AI&lt;/strong&gt;&lt;/a&gt;, which is which is stuff you see in smart grids, spam filters, and video games; and&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Chinese_room#Strong_AI&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;strong AI&lt;/strong&gt;&lt;/a&gt;, which is the emulation of a human mind (true cognition).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Weak AI&lt;/em&gt; is already prevalent and is pretty uncontroversial. When people talk about some future world with &quot;AI&quot;, they are almost always referring to &lt;em&gt;strong AI&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think we will ever achieve strong AI, or we will be incapable of identifying it should it be achieved. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Computers, at least as we understand them, work using a functional system of knowledge. Feed a computer data, it will act on that data and return a new set of data: &lt;code&gt;y = f(x)&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many computer scientists believe that, using the Turing test, if you can demonstrate that the computer can provide the same responses a human would given the same data, it's enough to prove the computer has strong AI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, a functional understanding of knowledge is not sufficient for explaining cognition. Philosopher of mind John Searle illustrated this defect of the functional theory of mind using what's known as the &lt;a href=&quot;http://www.iep.utm.edu/chineser/&quot; rel=&quot;nofollow&quot;&gt;Chinese room argument&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imagine you stick a man who only speaks English in a locked room by himself with a manual containing Chinese characters. This manual is a matrix of sorts: he can look up a set of Chinese characters, and the manual will tell him what the appropriate response is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, imagine this man is given a set of Chinese characters and is asked to provide some output. He can use the manual to look up the input and find the correct output.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, imagine a person fluent in Mandarin providing input to this man in the room in the form of a conversation. This conversation could be extremely complex and fast, and the man in the locked room keeps up and provides the expected output every time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not knowing the man in the room, the person providing input could infer that the man in the room is fluent in Mandarin. After all, he's able to provide all the correct answers and seemingly understands all the inputs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yet, the man in the room is not. He has no idea what the inputs mean or what the outputs mean: he's merely looking up the correct response based on supplied input.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, given a functional understanding of the mind, it's impossible for a computer to demonstrate actual understanding of the supplied data: it's merely acting on the data given a set of initial rules.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But now suppose that the man in the room &lt;em&gt;is&lt;/em&gt; fluent in Mandarin, and—as in the first thought experiment—keeps up with the person supplying the input. And, as before, the person outside the room infers that the man in the room is, in fact, fluent in Mandarin.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, given only the data available (inputs supplied give expected outputs), it's impossible to know whether the man is &lt;em&gt;actually&lt;/em&gt; fluent in Mandarin or is merely using a manual.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As such, even if some emergent cognition arises from a sufficiently complex functional system, we would not be able to demonstrably prove that it's actually cognition and not the computer acting on a set of rules.&lt;/p&gt;&#xA;" OwnerUserId="8" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-07T21:40:46.607" LastActivityDate="2010-09-07T21:40:46.607" CommunityOwnedDate="2011-04-19T01:26:27.260" CommentCount="25" />
  <row Id="1236" PostTypeId="2" ParentId="880" CreationDate="2010-09-07T19:46:24.317" Score="3" ViewCount="" Body="&lt;p&gt;Since I telecommute I use my own computer to program:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Intel i7 860 2.80 GHz&lt;/li&gt;&#xA;&lt;li&gt;8 GB of RAM&lt;/li&gt;&#xA;&lt;li&gt;2 22&quot; monitors&lt;/li&gt;&#xA;&lt;li&gt;1x 111GB SSD&lt;/li&gt;&#xA;&lt;li&gt;1x 1TB 7,800 RPM hard disk&lt;/li&gt;&#xA;&lt;li&gt;2x 300GB 7,800 RPM hard disks&lt;/li&gt;&#xA;&lt;li&gt;Video card: ATI Radeon HD 4800&lt;/li&gt;&#xA;&lt;li&gt;Keyboard: Logitech G15&lt;/li&gt;&#xA;&lt;li&gt;Mouse: Logitech G9x&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It's good but I'm thinking of upgrading it. I think having a really good computer is extremely important to do your work more efficiently; I won't have problems spending a couple of thousand of dollars to have the very best when I decide to upgrade, probably in less than half a year.&lt;/p&gt;&#xA;" OwnerUserId="112" LastEditorUserId="112" LastEditorDisplayName="" LastEditDate="2010-09-28T12:24:10.187" LastActivityDate="2010-09-28T12:24:10.187" CommunityOwnedDate="2011-02-06T19:45:08.167" CommentCount="2" />
  <row Id="1237" PostTypeId="1" AcceptedAnswerId="1245" CreationDate="2010-09-07T19:55:36.820" Score="34" ViewCount="975" Body="&lt;p&gt;I primarily work from home, and from time-to-time I find it hard to get the motivation to dig into a problem or task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One might do some stretches or a light jog before starting a physical work out, but what about programming? What are some things one can do that gets the mind in a position to get down to work?&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-12-31T02:08:48.800" Title="Programming Warm-Ups" Tags="&lt;productivity&gt;&lt;motivation&gt;" AnswerCount="15" CommentCount="5" FavoriteCount="16" />
  <row Id="1238" PostTypeId="2" ParentId="1106" CreationDate="2010-09-07T20:00:09.333" Score="4" ViewCount="" Body="&lt;p&gt;One is &lt;em&gt;good&lt;/em&gt; at something only when they can confidently and correctly say they can do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to say you're &lt;em&gt;good&lt;/em&gt; at C++, for example, you ought to be able to say, with confidence and justification, that given a general problem using C++, you can solve it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This provides a distinction from being &lt;strong&gt;cocky&lt;/strong&gt;, which would be to confidently say you can do something without sufficient justification; and &lt;strong&gt;experienced&lt;/strong&gt;, which would be to say you can do something because you have done it in the past.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-07T20:00:09.333" CommunityOwnedDate="2010-09-07T20:00:09.333" />
  <row Id="1239" PostTypeId="2" ParentId="1237" CreationDate="2010-09-07T20:06:25.437" Score="16" ViewCount="" Body="&lt;p&gt;I have this problem too sometimes.  When I'm trying to get my mind in a programming mood, I usually try:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt; problems&lt;/li&gt;&#xA;&lt;li&gt;Reading various &lt;a href=&quot;http://programmers.stackexchange.com/questions/67/can-you-recommend-some-good-programming-blogs&quot;&gt;software development blogs&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Looking through StackOverflow (and more recently, this SE)&lt;/li&gt;&#xA;&lt;li&gt;A bit of light web work- css/html stuff for any of the number of small side projects I usually have going&lt;/li&gt;&#xA;&lt;li&gt;Sometimes just forcing myself into it.  I load up the project and just start reading through the code to figure out what I was last working on- usually by the time I figure that out, I'm good to go.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastEditorUserId="6" LastEditorDisplayName="" LastEditDate="2010-09-08T01:32:30.823" LastActivityDate="2010-09-08T01:32:30.823" CommentCount="5" />
  <row Id="1240" PostTypeId="2" ParentId="886" CreationDate="2010-09-07T20:06:36.920" Score="2" ViewCount="" Body="&lt;p&gt;I spend much of my time out of the office &lt;strong&gt;gaming&lt;/strong&gt;. PC games or console, it doesn't really seem to matter much.  I'm certainly comfortable in front of a screen because of what I do all day, and it gives me a real &quot;escape&quot; from the world, much like reading does.  I just love the Choose-Your-Own-Adventure feel that gaming gives you over traditional story-telling.&lt;/p&gt;&#xA;" OwnerUserId="7" LastActivityDate="2010-09-07T20:06:36.920" CommentCount="1" />
  <row Id="1241" PostTypeId="2" ParentId="724" CreationDate="2010-09-07T20:06:43.160" Score="13" ViewCount="" Body="&lt;p&gt;Practically anything in Haskell&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Monads. Yes - the big scary word that makes increadibly easy parsers, IO, operations on Lists and other things so easy (one you notice common pattern)&lt;/li&gt;&#xA;&lt;li&gt;Arrows. The same for advanced users ;)&lt;/li&gt;&#xA;&lt;li&gt;Standard stuff like lambdas etc. &lt;/li&gt;&#xA;&lt;li&gt;Currying functions&lt;/li&gt;&#xA;&lt;li&gt;Algebraic data types&lt;/li&gt;&#xA;&lt;li&gt;Pattern matching&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And many more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS. Yes. I am Haskell fanboy if anyone asked.&lt;/p&gt;&#xA;" OwnerUserId="103" LastActivityDate="2010-09-07T20:06:43.160" CommentCount="4" />
  <row Id="1242" PostTypeId="2" ParentId="1180" CreationDate="2010-09-07T20:16:00.100" Score="5" ViewCount="" Body="&lt;p&gt;I've done a lot of work with VB.NET, but I understand enough C# to get the gist of what is happening in the code.  My current preference is VB.NET because I am most familiar with it (obviously), but I don't really have a preference between verbose BASIC syntax and C-style syntax, both are very readable and understandable to me.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of my coworker's programming background is COBOL and VB6, so VB.NET was the more comfortable .NET language choice for us as a team.  There wasn't a solid reason for us that made learning C# a requirement since they are functionally the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, learning C# is most definitely on my list of things to do.&lt;/p&gt;&#xA;" OwnerUserId="95" LastActivityDate="2010-09-07T20:16:00.100" CommentCount="1" />
  <row Id="1243" PostTypeId="2" ParentId="1217" CreationDate="2010-09-07T20:18:24.717" Score="0" ViewCount="" Body="&lt;p&gt;I believe that they are just not used to think about error codes, and by the time they reach the place where they should give them, they already feel like they fully explained the problem, and are therefore even less likely to stop and think about whether they should give additional information. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Asking a question involves a few stages, and they are most logically arranged in this order: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;you need to describe what you were doing&lt;/li&gt;&#xA;&lt;li&gt;you need to describe how you were doing that&lt;/li&gt;&#xA;&lt;li&gt;you need to describe what happened when it failed (or how it failed)&lt;/li&gt;&#xA;&lt;li&gt;you need to give the post mortem report&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The post mortem report is where the error message will be, and it is at the very end. By the time newbies reach this point they are at the end of the mental challenge of explaining their problem and are more likely to miss something (for a newbie, there's an information overload problem). Further, at this point they already feel like they described all aspects of the problem, and they have past habits that prevent them from remembering about the error codes: after all, other fields of life have no error codes, so they are not used to think about them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may also be that even if they do remember about the error codes, they seem too cryptic to be of actual use. Just what is error 034982? Does this really mean anything to anybody? And does it really add something to that detailed description of what I was doing, how I was doing it, and how it failed? Surly this information stands for itself. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-07T20:18:24.717" CommentCount="2" />
  <row Id="1244" PostTypeId="2" ParentId="1166" CreationDate="2010-09-07T20:24:03.797" Score="6" ViewCount="" Body="&lt;p&gt;I believe that we should dress and act professionally. Looking like a high school dropout does &lt;em&gt;us&lt;/em&gt; no good, and actually does our profession a disservice by making our professional image looking like a schmuck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider the matter like this. If someone judges by appearances, would you rather appear better or worse, given no other information? That is what happens every time someone who doesn't know your work sees you. So continually looking shabby and teenage does you actually no good.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-07T20:24:03.797" CommunityOwnedDate="2011-01-30T18:03:58.527" CommentCount="5" />
  <row Id="1245" PostTypeId="2" ParentId="1237" CreationDate="2010-09-07T20:26:32.077" Score="21" ViewCount="" Body="&lt;p&gt;I find keeping a log, which I update at the end of the day and then review it in the morning helps me get in the mood.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It reminds me of what I was working on the day before and what I had planned to do so I can jump straight back in where I left off.&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-07T20:26:32.077" CommentCount="3" />
  <row Id="1247" PostTypeId="2" ParentId="1106" CreationDate="2010-09-07T20:31:35.657" Score="2" ViewCount="" Body="&lt;p&gt;I think you can call yourself good at something when you develop the required knowledge to be able to look at yourself as if from another person's perspective, and then determine if you are good. In other words, you should have strong &quot;meta&quot; skills. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I'm a hobbyist writer, and when looking at my own writing I can tell: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;what aspects of it are good and why&lt;/li&gt;&#xA;&lt;li&gt;what aspects of it are bad and why&lt;/li&gt;&#xA;&lt;li&gt;what do I need to do to improve the bad ones, and why&lt;/li&gt;&#xA;&lt;li&gt;which bad aspects are specific to the written piece, and which are a symptom of my abilities&lt;/li&gt;&#xA;&lt;li&gt;what are the elements that other people may criticize, and why&lt;/li&gt;&#xA;&lt;li&gt;which criticisms are &lt;em&gt;not&lt;/em&gt; relevant to my specific piece, even if others may voice them, and why&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;etc. etc. &#xA;Because of this I feel that I'm qualified to decide if I'm good at writing or not. The same applies to X. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-07T20:31:35.657" CommunityOwnedDate="2010-09-07T20:31:35.657" />
  <row Id="1248" PostTypeId="2" ParentId="1237" CreationDate="2010-09-07T20:32:42.693" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://codekata.pragprog.com/&quot; rel=&quot;nofollow&quot;&gt;Code Katas&lt;/a&gt; are a useful tool to get warmed up. Just like a musician practicing scales, you can focus on the mechanics of coding and try to hone different skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main idea is that you are not focusing on producing an end result, but instead on the stuff you learn along the way.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-07T20:32:42.693" />
  <row Id="1249" PostTypeId="2" ParentId="954" CreationDate="2010-09-07T20:33:28.300" Score="0" ViewCount="" Body="&lt;p&gt;One-button code.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#include &quot;magic.h&quot;&#xA;&#xA;//boilerplate&#xA;&#xA;do_the_magic(); //and the magic happens.&#xA;&#xA;//boilerplate&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Everything should be obvious; comment liberally, design hierarchically.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-07T20:33:28.300" CommentCount="1" />
  <row Id="1250" PostTypeId="2" ParentId="1237" CreationDate="2010-09-07T20:38:58.587" Score="0" ViewCount="" Body="&lt;p&gt;Personally, just sitting in front of the computer in the morning and doing (simple) stuff is enough for me to get excited about doing anything with it. I think it's something to do with the ease at which I am able to do multiple things that are also meaningful; I would catch up on friends with Facebook, check my mail, read through Ars Technica and Techdirt, and enjoy the latest xkcd. There- I just satisfied my social curiosity, checked my mail, read about what's going on in the world, and had some entertainment, all in 30 minutes. Imagine what I could do with a compiler! &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-07T20:38:58.587" />
  <row Id="1251" PostTypeId="2" ParentId="1157" CreationDate="2010-09-07T20:55:40.393" Score="7" ViewCount="" Body="&lt;p&gt;I think that the &lt;a href=&quot;http://en.wikipedia.org/wiki/Actor_model&quot; rel=&quot;nofollow&quot;&gt;Actor Model&lt;/a&gt; that &lt;a href=&quot;http://en.wikipedia.org/wiki/Erlang_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Erlang&lt;/a&gt; is using for concurrency instead of threads with locks will be more common.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-07T20:55:40.393" CommentCount="4" />
  <row Id="1252" PostTypeId="2" ParentId="1200" CreationDate="2010-09-07T20:59:28.137" Score="5" ViewCount="" Body="&lt;h3&gt;Use it.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;If you do functional programming daily, maybe smaller applications or excercices from books, then you will be better on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have used it since the first programming lecture in university. At the biginning it was very hard, because it is so different, but now I prefer it to imperative programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are looking for a good book, I would recommend &lt;strong&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1933988924&quot; rel=&quot;nofollow&quot;&gt;Real World Functional Programming: With Examples in F# and C#&lt;/a&gt;&lt;/strong&gt; by &lt;em&gt;&lt;a href=&quot;http://stackoverflow.com/users/33518/tomas-petricek&quot;&gt;Tomas Petricek&lt;/a&gt;&lt;/em&gt; and &lt;em&gt;&lt;a href=&quot;http://stackoverflow.com/users/22656/jon-skeet&quot;&gt;Jon Skeet&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-04T09:52:12.397" LastActivityDate="2010-10-04T09:52:12.397" />
  <row Id="1253" PostTypeId="2" ParentId="1202" CreationDate="2010-09-07T21:04:43.790" Score="55" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Dennis_Ritchie&quot; rel=&quot;nofollow&quot;&gt;Dennis Ritchie&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Ken_Thompson_%28computer_programmer%29&quot; rel=&quot;nofollow&quot;&gt;Ken Thompson&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Dennis Ritchie created C, based on previous work on B by Ken Thompson, and Thompson, together with Ritchie created UNIX. This is an absolutely remarkable achievement as C is arguably the most influential language ever created, and UNIX is probably the most influential OS. Over 35 years later, C is &lt;em&gt;still&lt;/em&gt; used for new projects, while UNIX (and its clones) are still used extensively. &lt;/p&gt;&#xA;" OwnerUserId="61" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-07T22:38:00.827" LastActivityDate="2010-09-07T22:38:00.827" CommunityOwnedDate="2010-09-07T21:04:43.790" CommentCount="2" />
  <row Id="1254" PostTypeId="2" ParentId="1010" CreationDate="2010-09-07T21:05:41.753" Score="1" ViewCount="" Body="&lt;p&gt;A common reason to use the cloud is to &lt;strong&gt;scale out&lt;/strong&gt;. And I think that the hardest thing to scale out is the datastore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I think it's important to learn how to understand and use distributed NoSQL databases like &lt;a href=&quot;http://en.wikipedia.org/wiki/BigTable&quot; rel=&quot;nofollow&quot;&gt;Big Table&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Apache_Cassandra&quot; rel=&quot;nofollow&quot;&gt;Cassandra&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Dynamo_%28storage_system%29&quot; rel=&quot;nofollow&quot;&gt;Dynamo&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-07T21:05:41.753" />
  <row Id="1255" PostTypeId="2" ParentId="959" CreationDate="2010-09-07T21:30:01.703" Score="3" ViewCount="" Body="&lt;p&gt;The problem, as other people have stated, is one of defining intelligence. If intelligence means the ability to learn from previous inputs, AI already exists. If it means the ability to develop (at least) human-like levels of cognition, this isn't a particularly useful definition. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I see the difference between the analytical behaviour of AI programs and human intelligence (in the latter sense) as being little more than one of how &quot;fuzzy&quot; the inputs can be while still producing sensible outputs. However, in some ways, AIs already surpass the human mind. For example, the human mind finds it extremely difficult to think in more than 3 dimensions, while for an AI, it makes very little difference how many dimensions a problem is in (apart from the amount of computation required, of course).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the context of Skynet or HAL, the question of AI is secondary to the one of sentience. AI in this sense means artificial sentience as opposed to artificial intelligence. So, a better question might be &quot;Will we ever develop artificial sentience&quot;? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not having a crystal ball, I don't have the answer to this, but I suspect that, barring the destruction of civilization, we will come up with an artificially sentient machine at some point, if only because we decipher the human brain and are capable of reproducing it &lt;em&gt;in silico&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-07T21:30:01.703" CommunityOwnedDate="2011-04-19T01:26:27.260" />
  <row Id="1256" PostTypeId="2" ParentId="1237" CreationDate="2010-09-07T22:28:59.393" Score="10" ViewCount="" Body="&lt;p&gt;Simply force yourself to get started, usually it's just the initial hump you need to get over.  After that you'l probably be motivated enough by your progress.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another MAJOR thing you can do is to pre-plan your work for the next day.  That way you don't need to figure out what you need to do, you can just get started and do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're really feeling tired coffee or black tea also helps.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-07T22:28:59.393" CommentCount="2" />
  <row Id="1257" PostTypeId="1" AcceptedAnswerId="1261" CreationDate="2010-09-07T22:32:47.717" Score="6" ViewCount="301" Body="&lt;p&gt;Today was my first university day, and my software engineering class left me with a bitter taste. The professor sure seems to know about design and design patterns and MVC and the like (it's going to be his topic), but when it comes to compiling and branch prediction he seems to be a little confused.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At some point he started to explain us why object-oriented programs are slower than imperative programs because object-oriented programs are interpreted while programs written in a non-OO language like, say, C, are compiled to machine code. He then proceeded to explain how modern compilers, like C compilers, try to guess which branch in a condition will be executed most of the time, and puts the first instructions of these branches before the &lt;code&gt;if&lt;/code&gt; block, and that's some kind of way of implementing instruction-level parallelism. He then told us that these compilers had to do educated guesses, but a JIT compiler, like modern Java JIT compilers, could profile your code and put the instructions of the most frequently used branch before the &lt;code&gt;if&lt;/code&gt; block, without having to guess.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This was inexact and confusing at best. It looked like a mashup of many things confused in ways so strange I can only be thankful it's not what the course is about. Students interrupted him a few times, asking rhetorically if he was talking about Java or OO in general (he agreed that he should have been more explicit about the distinction between the two, but still told several inaccuracies), but we remained silent while he went on with his explanations on branch prediction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So. How do you tell your professor he's not on the right track? Obviously, doing it in front of everybody is not a Good Thing™. But waiting the end of the class to tell him might do some serious damage to the understanding of other students.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suspect we won't hear this kind of stuff again, and the rest of what he told us did make sense, so filing a complaint is certainly not an option (especially after just one class). He seems to be in position of teaching design patterns, but he really went off-road with his talk about compilers and that stuff.&lt;/p&gt;&#xA;" OwnerUserId="90" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T20:50:11.070" LastActivityDate="2010-10-14T16:37:26.883" Title="How do you deal with teachers teaching the wrong stuff?" Tags="&lt;personality&gt;&lt;teaching&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="1" />
  <row Id="1258" PostTypeId="2" ParentId="1202" CreationDate="2010-09-07T22:41:25.500" Score="26" ViewCount="" Body="&lt;p&gt;Dijkstra (I hope I didn't slaughter his name) is the nice guy who invented semaphores, described auto-stabilizing algorithms first, and is mostly known for his pathfinding algorithm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He also wished to be as known as Van Gogh for people in the computer since field.&lt;/p&gt;&#xA;" OwnerUserId="90" LastActivityDate="2010-09-07T22:41:25.500" CommunityOwnedDate="2010-09-07T22:41:25.500" CommentCount="1" />
  <row Id="1259" PostTypeId="1" CreationDate="2010-09-07T23:03:41.773" Score="4" ViewCount="207" Body="&lt;p&gt;How do you think integrated development environments will develop in the future? What features that aren't standard now will soon become something every developer expects?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-09-07T23:22:05.730" LastActivityDate="2010-09-12T19:59:04.433" Title="Direction of IDEs" Tags="&lt;ide&gt;&lt;prediction&gt;" AnswerCount="9" />
  <row Id="1260" PostTypeId="2" ParentId="1257" CreationDate="2010-09-07T23:04:47.420" Score="4" ViewCount="" Body="&lt;p&gt;There is something to learn from everyone in this world.  Although he may not be exactly correct in everything he says, or even sometimes just plain wrong, I would still listen but simply take what he says with a grain of salt.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get it in your head that you are superior to him in your knowledge.  There's no such thing as absolute superiority.  The amount of knowledge that you don't know is large, but the amount of topics that you have never heard of is even larger.  Or said another way, there are a lot of things you know you don't know, but there's an even larger amount of things you don't know you don't know.  Throughout your school you will realize this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most profs will setup hours that you can go to them for help.  I suggest that you do this.  Perhaps for some things it was even a miscommunication that caused the invalid information.  Discuss the things you think he missed the mark on.  If you teach him something he will likely clarify in the next class about where he was wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If things don't improve, then hopefully not all professors have a bad rep like this.  Ask around.&lt;br&gt;&#xA;If you find that your school isn't meeting your expectations you could always transfer.  About a 6 hour car ride away is the University of Waterloo which has a great computer science department.   You could finish your year and try to transfer there if worse comes to worse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also learn from the books for the course and excel beyond what your teacher tells you.  &lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-07T23:09:59.780" LastActivityDate="2010-09-07T23:09:59.780" CommentCount="2" />
  <row Id="1261" PostTypeId="2" ParentId="1257" CreationDate="2010-09-07T23:07:52.887" Score="15" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;How do you tell your professor he's&#xA;  not on the right track?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You don't.  He's paid to be there and provide the knowledge and you're not.  He probably wouldn't take too kindly to any presentation that you can offer on how he's wrong.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what do you do?  Ask questions.  If you think he's off base with a concept or idea then ask him to elaborate.  Keep asking quesitons until he get's to enough detail to either explain his position more thoroughly or expose a point that you can then ask a follow up question.  If he gets to a point you think is just wrong then bring him an example that counters his point and ask him to explain how the EXAMPLE is wrong.  No one wants to be showed up, especially a professor who's going to provide you with a grade.  Be respectful, ask intelligent questions and allow him the space to answer the questions after class if need be.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;No one is perfect and he may be totally wrong about the topic in question, but you are in the role of the student and you'll probably get more out of the class if you embrace that role.  &lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-07T23:07:52.887" CommentCount="2" />
  <row Id="1262" PostTypeId="1" CreationDate="2010-09-07T23:11:33.020" Score="15" ViewCount="783" Body="&lt;p&gt;I'm considering whether I should start using VIM again instead of an IDE. What are the most useful features of VIM that aren't standard in an IDE?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T12:36:51.530" LastActivityDate="2011-01-17T19:47:27.103" Title="Most useful features of VIM that aren't standard in a IDE" Tags="&lt;ide&gt;&lt;vim&gt;&lt;comparison&gt;" AnswerCount="14" CommentCount="7" FavoriteCount="7" />
  <row Id="1263" PostTypeId="2" ParentId="1237" CreationDate="2010-09-07T23:13:06.560" Score="2" ViewCount="" Body="&lt;p&gt;I usually spend up to about 30 minutes, reading the news and catching up on email.  Playing a tough round of Sudoku is pretty much a guarantee that my brain is moving.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-07T23:13:06.560" />
  <row Id="1264" PostTypeId="1" CreationDate="2010-09-07T23:19:31.597" Score="2" ViewCount="276" Body="&lt;p&gt;There's so much going on in Fringe Programming these days, I'm finding it impossible to keep track of what's hip and hyped and largely irrelevant for most software. IoC? AOP? NoSQL? They've all started showing up in actual &lt;em&gt;products&lt;/em&gt; - soon, if not already, their limitations will be known, and wasting years trying to force them into unsuitable applications will become implausible. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what stratospheric technologies should an architect be casting his gaze on? &lt;/p&gt;&#xA;" OwnerUserId="63" LastEditorUserId="38" LastEditorDisplayName="" LastEditDate="2010-09-08T04:29:47.487" LastActivityDate="2011-06-03T16:06:32.523" ClosedDate="2011-06-03T16:38:02.823" Title="What spacy technologies should Architecture Astronauts know about?" Tags="&lt;career&gt;&lt;learning&gt;&lt;cloud&gt;&lt;architect&gt;" AnswerCount="5" CommentCount="7" FavoriteCount="2" />
  <row Id="1266" PostTypeId="2" ParentId="1259" CreationDate="2010-09-08T00:19:34.937" Score="6" ViewCount="" Body="&lt;p&gt;I can't say for sure, but I'd love IDEs to become cross platform. Visual Studio on Mac. XCode for Windows.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Id love to see it, but corporate agendas will probably prevent this. &lt;/p&gt;&#xA;" OwnerUserId="67" LastEditorUserId="67" LastEditorDisplayName="" LastEditDate="2010-09-12T19:59:04.433" LastActivityDate="2010-09-12T19:59:04.433" CommentCount="5" />
  <row Id="1267" PostTypeId="1" AcceptedAnswerId="1273" CreationDate="2010-09-08T00:21:28.773" Score="12" ViewCount="846" Body="&lt;p&gt;Do you enjoy programming? why?&lt;/p&gt;&#xA;" OwnerUserId="67" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T04:13:59.117" LastActivityDate="2010-12-14T19:40:08.083" ClosedDate="2010-12-14T20:05:17.543" Title="Do you enjoy programming? Why?" Tags="&lt;behavior&gt;&lt;personality&gt;&lt;culture&gt;&lt;hobbies&gt;" AnswerCount="21" CommentCount="2" FavoriteCount="5" />
  <row Id="1268" PostTypeId="2" ParentId="1106" CreationDate="2010-09-08T00:24:48.913" Score="0" ViewCount="" Body="&lt;p&gt;I often don't say that I'm good at X, but rather that I'm a quick learner and haven &lt;em&gt;potential&lt;/em&gt; to be good at X. &lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-09-08T00:24:48.913" CommunityOwnedDate="2010-09-08T00:24:48.913" />
  <row Id="1269" PostTypeId="2" ParentId="1267" CreationDate="2010-09-08T00:25:14.073" Score="5" ViewCount="" Body="&lt;p&gt;Yes, because you can work at it your whole life and be learning the whole time.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-08T00:25:14.073" CommentCount="2" />
  <row Id="1270" PostTypeId="2" ParentId="262" CreationDate="2010-09-08T00:30:04.753" Score="14" ViewCount="" Body="&lt;p&gt;Two answers:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1)Android&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2)Blackberry&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously though, on the desktop, it may be in decline, but it powers the two competitors to iPhone. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, last year, I helped a bunch of people with Java homework for school. Point being, java is still taught in colleges. &lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-09-08T00:30:04.753" CommunityOwnedDate="2011-03-14T15:05:05.090" CommentCount="4" />
  <row Id="1271" PostTypeId="1" CreationDate="2010-09-08T00:37:42.793" Score="17" ViewCount="1215" Body="&lt;p&gt;How is each one better than the other? What are the differences in philosophy? Which one do you prefer overall and why?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="86" LastEditorDisplayName="" LastEditDate="2010-10-05T10:25:07.313" LastActivityDate="2011-04-12T23:03:04.020" CommunityOwnedDate="2011-04-12T23:03:04.020" ClosedDate="2011-04-12T23:13:51.357" Title="Which one works better for you? VIM or Emacs" Tags="&lt;holy-war&gt;&lt;vim&gt;&lt;emacs&gt;" AnswerCount="15" CommentCount="7" FavoriteCount="5" />
  <row Id="1272" PostTypeId="2" ParentId="1267" CreationDate="2010-09-08T00:44:30.487" Score="6" ViewCount="" Body="&lt;p&gt;Because you are in control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you're coding and something doesn't work, it's your fault.  You're manipulating a deterministic universe, so there's no one to blame but you when things break.  No scapegoating, no blame-dodging, and no bullet dodging.  You and you alone are responsible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The flip side there is that when things break, you can fix them.  You don't have to wait for the weather to clear, or for Bob down the hall to get his act together, or for the supplies to arrive or anything.  If you want to do better, all you need to do is improve yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As such, I feel that programming is one of most seamless paths between a creator and his/her creation- the end product is /exactly/ what I told my tools to make, no more no less.  That kind of control is nearly impossible to find outside of purely theoretical fields, and it's why I love programming.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-08T00:44:30.487" />
  <row Id="1273" PostTypeId="2" ParentId="1267" CreationDate="2010-09-08T00:44:31.470" Score="17" ViewCount="" Body="&lt;p&gt;For the most part, yes:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's exciting to be able to turn a concept or an idea into reality&lt;/li&gt;&#xA;&lt;li&gt;It's different from most other industries in that software is intangible - you're producing something that has no real physical presence. To an extent you're creating something from nothing!&lt;/li&gt;&#xA;&lt;li&gt;As with many skills, there's a great sense of achievement that comes from breaking a problem down and creating a solution&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But there are cons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's incredibly difficult to explain to people what you do&lt;/li&gt;&#xA;&lt;li&gt;Despite so much evidence to the contrary, programmers are still usually seen as a commodity&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="91" LastActivityDate="2010-09-08T00:44:31.470" CommentCount="9" />
  <row Id="1274" PostTypeId="2" ParentId="1271" CreationDate="2010-09-08T01:09:39.637" Score="4" ViewCount="" Body="&lt;p&gt;Vi, because it was the first thing that I found, and is simple to use. Of course when I looked up emacs I saw that it was so complicated that somebody &lt;a href=&quot;http://www.xemacs.org/&quot; rel=&quot;nofollow&quot;&gt;made a GUI for it&lt;/a&gt;. Lightweight != GUI&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I don't care, I won't really change. Its installed by default in Ubuntu, and I'm happy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And besides...&#xA;&lt;img src=&quot;http://imgs.xkcd.com/comics/real_programmers.png&quot; alt=&quot;Real programmers set the universal constants at the start such that the universe evolves to contain the disk with the data they want.&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://xkcd.com/378/&quot; rel=&quot;nofollow&quot;&gt;http://xkcd.com/378/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-02-16T22:02:50.673" LastActivityDate="2011-02-16T22:02:50.673" CommunityOwnedDate="2011-04-12T23:03:04.020" CommentCount="2" />
  <row Id="1275" PostTypeId="2" ParentId="1271" CreationDate="2010-09-08T01:26:56.493" Score="25" ViewCount="" Body="&lt;p&gt;Vim by far.  Emacs is just plain bloated.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Vim is strives for efficiency.  Emacs strives to squeeze in everything and the kitchen sink.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Emacs fingers:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/8phGa.png&quot; alt=&quot;Emacs fingers&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Source: &lt;a href=&quot;http://bc.tech.coop/blog/070831.html&quot; rel=&quot;nofollow&quot;&gt;http://bc.tech.coop/blog/070831.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-09-08T01:26:56.493" CommunityOwnedDate="2011-04-12T23:03:04.020" CommentCount="5" />
  <row Id="1276" PostTypeId="2" ParentId="1267" CreationDate="2010-09-08T01:55:26.113" Score="6" ViewCount="" Body="&lt;h2&gt;Pros&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's challenging.&lt;/li&gt;&#xA;&lt;li&gt;I find it easy to learn since there is a lot of ressource available about it on the Internet. It's really nice to have those ressources available at any time. You want to learn about Ruby ? Just type &quot;Ruby&quot; in Google.&lt;/li&gt;&#xA;&lt;li&gt;Programs are everywhere, you can even code your own tool on your cellphone. I find it nice that you don't have to wait for someone else to do it. You want an application for your cellphone, you can code it !&lt;/li&gt;&#xA;&lt;li&gt;So far the place where I worked where really nice.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;Cons&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;There isn't enough girl.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="41" LastActivityDate="2010-09-08T01:55:26.113" />
  <row Id="1277" PostTypeId="2" ParentId="1264" CreationDate="2010-09-08T02:04:51.727" Score="3" ViewCount="" Body="&lt;p&gt;If we're lucky, maybe all the &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000018.html&quot; rel=&quot;nofollow&quot;&gt;Architecture Astronauts&lt;/a&gt; will go find some entirely different fields to &lt;s&gt;screw up&lt;/s&gt; focus on. That way, the rest of us could, y'know, &lt;em&gt;get some work done&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-09-08T02:04:51.727" />
  <row Id="1280" PostTypeId="1" CreationDate="2010-09-08T02:49:42.403" Score="5" ViewCount="372" Body="&lt;p&gt;What Best Practices should be undertaken for a Website that needs to &quot;scale out&quot; to handle capacity?  This is especially relevant now that people are considering the cloud, but may be missing out on the fundamentals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm interested in hearing about anything you consider a best practice from development-level tasks, to infrastructure, to management.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use your best judgement when posting multiple answers, since it may make sense to post them separately for voting purposes. (hint: you'll likely get more reputation points for many small answers than one large answer)&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-14T12:07:01.333" LastActivityDate="2011-02-10T22:06:47.463" Title="What should I do to scale out an high-traffic website?" Tags="&lt;best-practices&gt;&lt;web-development&gt;&lt;cloud&gt;&lt;paas&gt;&lt;scalability&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="3" />
  <row Id="1281" PostTypeId="2" ParentId="1267" CreationDate="2010-09-08T02:50:40.610" Score="9" ViewCount="" Body="&lt;p&gt;Personally, programming:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Is my &lt;em&gt;creative&lt;/em&gt; (artistic) outlet.  &lt;/li&gt;&#xA;&lt;li&gt;It takes me into &lt;em&gt;flow&lt;/em&gt; state (often quickly &amp;amp; for long periods of time).&lt;/li&gt;&#xA;&lt;li&gt;And helps me build stuff I'm &lt;em&gt;proud&lt;/em&gt; of.&lt;/li&gt;&#xA;&lt;li&gt;I also have the ability to make &lt;em&gt;other peoples lives better&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;It's highly &lt;em&gt;engaging&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;The &lt;em&gt;barrier&lt;/em&gt; to increasing my effectiveness is &lt;em&gt;low and in my control&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Although, unlikely, there is a &lt;em&gt;possibility my next app will make me rich&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="165" LastEditorUserId="165" LastEditorDisplayName="" LastEditDate="2010-09-08T02:56:22.303" LastActivityDate="2010-09-08T02:56:22.303" />
  <row Id="1282" PostTypeId="2" ParentId="1280" CreationDate="2010-09-08T02:57:23.333" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Secure, Fast, Reliable DNS&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found a few high-capacity websites using the registrar's DNS server, which had no SLA for uptime or performance.  In addition, their servers were located in India and the latency alone increases the chance that a DNS spoofer could poison your customer's, or intermediate ISP's cache.  This would cause even your SSL-protected traffic to be redirected without anyone knowing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;DNS speed also affects the initial load time of your server, before the records are cached. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use DynDNS or Neustar to most of my customers since they have a pretty solid DNS infrastructure (though it's expensive and I have no other affiliation to those companies).&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-09-08T04:08:30.800" LastActivityDate="2010-09-08T04:08:30.800" CommentCount="7" />
  <row Id="1283" PostTypeId="2" ParentId="1280" CreationDate="2010-09-08T03:02:37.993" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Parallelize requests over several hostnames&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Part of the HTTP standard is a section that says webclients will request a maximum of 2 sessions per DNS Host.  Here is a solution where you and alias out your www.domain.com and get a higher request concurrency, making your page load faster:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/3653609/how-do-i-code-my-asp-net-page-to-parallelize-downloads-across-hostnames&quot;&gt;http://stackoverflow.com/questions/3653609/how-do-i-code-my-asp-net-page-to-parallelize-downloads-across-hostnames&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically it involves editing your ASP.NET HTTP Handler to alternate the target hosts you send clients to, where each host is a CNAME to &quot;www&quot;.&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-09-08T03:11:18.017" LastActivityDate="2010-09-08T03:11:18.017" />
  <row Id="1285" PostTypeId="2" ParentId="1224" CreationDate="2010-09-08T03:09:00.313" Score="13" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://smartbear.com/index.php&quot; rel=&quot;nofollow&quot;&gt;Smart Bear Software&lt;/a&gt; has a free book called &lt;a href=&quot;http://smartbear.com/codecollab-code-review-book.php&quot; rel=&quot;nofollow&quot;&gt;Best Kept Secrets of Peer Code Review&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's free with free shipping.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And while they do follow up with the occasional sales email.  They were hardly intrusive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And by the way ... the book is pretty good.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-08T03:09:00.313" CommentCount="2" />
  <row Id="1286" PostTypeId="2" ParentId="1267" CreationDate="2010-09-08T03:30:00.287" Score="5" ViewCount="" Body="&lt;p&gt;Absolutely. Why? Because it is satisfying on so many levels. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It allows you to be creative and ingenious. It gives you endless opportunities to prove to yourself and to others how smart you are. It gives you lots of challenges to overcome that are both fascinating and multi layered, allowing you to excel in many aspects all at once; Thinking up a great solution requires intellect and ingenuity, coding it correctly is a craft that takes practice and attention to aesthetics, architecting your solution requires foresight and wisdom, debugging takes determination and detective like skills, and all along- none of this could be done without vast knowledge, and there is always more to learn and to invent. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And let's face it, never in the past was so much power to create available so easily and so readily. You can actually make an impact on the world right from your chair. If you don't like something in your favorite open source project, you can change it. If there's something you really want to exist, you can create it. If you are working on a product that is used by lots of people, you will help change the way they socialize with friends, or get their mail, or watch movies. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, it's just fun, you know? And personally, something about the &quot;world view&quot; of how you approach problems and abstract concepts just makes a lot of sense to me. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-08T03:30:00.287" />
  <row Id="1287" PostTypeId="1" CreationDate="2010-09-08T04:43:41.937" Score="16" ViewCount="412" Body="&lt;p&gt;I've found that when I'm emotionally upset (marital debate, just got laid off, negative client, etc...), I often have trouble focusing on my programming tasks.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anybody have any strategies for coping with this kind of thing and staying creative &amp;amp; productive even when you're upset?&lt;/p&gt;&#xA;" OwnerUserId="165" LastEditorUserId="165" LastEditorDisplayName="" LastEditDate="2010-09-08T21:39:58.803" LastActivityDate="2010-10-01T18:05:57.983" Title="How do you focus when emotionally upset?" Tags="&lt;focus&gt;&lt;discipline&gt;" AnswerCount="9" CommentCount="5" FavoriteCount="2" />
  <row Id="1288" PostTypeId="1" AcceptedAnswerId="1366" CreationDate="2010-09-08T05:03:27.053" Score="7" ViewCount="400" Body="&lt;p&gt;I have heard about many techniques which are used by developer/software manager to solve hard programming logic or to create flow of an application and this flow will be implemented by developers to create an actual application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of the technique which i know, are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Flowchart&lt;/li&gt;&#xA;&lt;li&gt;Screen-Layout&lt;/li&gt;&#xA;&lt;li&gt;Data Flow Diagram&lt;/li&gt;&#xA;&lt;li&gt;E-R Diagram&lt;/li&gt;&#xA;&lt;li&gt;Algorithm of every programs&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I'd like to know about two facts: (1) Are there any techniques other than this ? (2) Which one is the most suitable to solve hard programming logic and process of application creation?&lt;/p&gt;&#xA;" OwnerUserId="181" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-09T13:16:13.973" LastActivityDate="2010-11-09T13:16:13.973" Title="Technique to Solve Hard Programming logic" Tags="&lt;programming-languages&gt;&lt;development-process&gt;&lt;algorithms&gt;&lt;analysis&gt;&lt;flowchart&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="2" />
  <row Id="1289" PostTypeId="2" ParentId="1287" CreationDate="2010-09-08T05:28:09.390" Score="3" ViewCount="" Body="&lt;p&gt;Keep busy to stay happy&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being around with friends who can make you laugh for a while in 'tough' time&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Listen to 'your' favorite music, watch your 'favorite' tv show/movie&lt;/p&gt;&#xA;" OwnerUserId="120" LastEditorUserId="120" LastEditorDisplayName="" LastEditDate="2010-09-08T05:39:04.680" LastActivityDate="2010-09-08T05:39:04.680" CommentCount="2" />
  <row Id="1290" PostTypeId="2" ParentId="1287" CreationDate="2010-09-08T05:30:53.573" Score="6" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Go to bed.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just go to sleep as soon as possible, and get up early to make up for the lost time if needed.  At least, that's worked for me.  Everything's better after a good night's sleep and a cup of coffee.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-08T05:30:53.573" CommentCount="4" />
  <row Id="1291" PostTypeId="2" ParentId="815" CreationDate="2010-09-08T05:36:56.570" Score="4" ViewCount="" Body="&lt;p&gt;The problem is Microsoft will continue to support it while government departments have it as SOE, and the government departments will have it as SOE until Microsoft stop supporting it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, I'd say another three years before XP REALLY starts to die, unless Google actually turns off its page for IE6.&lt;/p&gt;&#xA;" OwnerUserId="114" LastActivityDate="2010-09-08T05:36:56.570" CommentCount="6" />
  <row Id="1292" PostTypeId="2" ParentId="1280" CreationDate="2010-09-08T05:37:54.637" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Design for Concurrency&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, as you're coding, plan around having multiple threads going.  Plan the shared state (often just the db).  Plan for multiple processes. Plan for physical distribution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This allows you to distribute your system across multiple machines, and across multiple processes with load balancing.  It allows you to have redundant processes running in case of failure, and in case you need to modify the system in-place, you don't have to kill all service to do so.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-08T05:37:54.637" />
  <row Id="1293" PostTypeId="2" ParentId="1287" CreationDate="2010-09-08T06:17:13.553" Score="19" ViewCount="" Body="&lt;p&gt;Exercise. The endorphins will make you feel better and the pain will distract you from whatever is bothering you.&lt;/p&gt;&#xA;" OwnerUserId="12" LastActivityDate="2010-09-08T06:17:13.553" CommentCount="2" />
  <row Id="1294" PostTypeId="2" ParentId="1287" CreationDate="2010-09-08T06:19:39.650" Score="4" ViewCount="" Body="&lt;p&gt;Browser Stackoverflow! Seriously you can find some interesting questions which would divert your concentration and after sometime you would feel yourself relaxed and got your rhythm back. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do this when ever I feel bore or lack of concentration and it worked for me.&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-09-08T06:19:39.650" CommentCount="2" />
  <row Id="1296" PostTypeId="2" ParentId="745" CreationDate="2010-09-08T07:08:09.467" Score="10" ViewCount="" Body="&lt;p&gt;Sleep well in home. That's it&lt;/p&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-09-08T07:08:09.467" CommentCount="1" />
  <row Id="1297" PostTypeId="2" ParentId="262" CreationDate="2010-09-08T08:28:14.333" Score="22" ViewCount="" Body="&lt;p&gt;Java is relevant and will continue to be relevant for many years in the Enterprise computing world.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether it continues to be relevant in other areas depends a lot on what Oracle does.  If they inject some life (and resources) into ME, desktop applications and other areas, and if they press on with the evolution of the Java language, then Java will do well.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if Oracle cuts back on R&amp;amp;D and/or tries to stomp other players in the Java space, there's a good chance that someone / some company will develop a better (and more open) Java-like language.  If Oracle win their lawsuit against Google, I predict that the next generation of the Android platform will have a new language, just like happened with C#.  If Google get the openness right ... then, the game is on!&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-09-08T09:16:25.810" LastActivityDate="2010-09-08T09:16:25.810" CommunityOwnedDate="2011-03-14T15:05:05.090" CommentCount="3" />
  <row Id="1298" PostTypeId="2" ParentId="1287" CreationDate="2010-09-08T09:22:46.000" Score="9" ViewCount="" Body="&lt;p&gt;If you don't have any critical deadline, I would prefer to take a break of couple of hours and indulge in the activities you really enjoy.....like movie...gaming.... It will really relax you.&lt;/p&gt;&#xA;" OwnerUserId="186" LastActivityDate="2010-09-08T09:22:46.000" CommentCount="1" />
  <row Id="1299" PostTypeId="2" ParentId="826" CreationDate="2010-09-08T09:22:59.763" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://macromates.com/&quot; rel=&quot;nofollow&quot;&gt;Text Mate&lt;/a&gt;  text editor for the Mac.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not free but well worth the money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Feature list:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ability to Search and Replace in a Project&lt;/li&gt;&#xA;&lt;li&gt;Auto-Indent for Common Actions Like Pasting Text&lt;/li&gt;&#xA;&lt;li&gt;Auto-Pairing of Brackets and Other Characters&lt;/li&gt;&#xA;&lt;li&gt;Clipboard History&lt;/li&gt;&#xA;&lt;li&gt;Column Selections and Column Typing&lt;/li&gt;&#xA;&lt;li&gt;Completion of Words from Current Document&lt;/li&gt;&#xA;&lt;li&gt;CSS-like Selectors to Pinpoint the Scope of Actions and Settings&lt;/li&gt;&#xA;&lt;li&gt;Declarative Language Grammars for Graceful Mixing and Hacking&lt;/li&gt;&#xA;&lt;li&gt;Dynamic Outline for Working With Multiple Files&lt;/li&gt;&#xA;&lt;li&gt;Expand Trigger Words to Code Blocks With Tab-able Placeholders&lt;/li&gt;&#xA;&lt;li&gt;File Tabs when Working With Projects&lt;/li&gt;&#xA;&lt;li&gt;Foldable Code Blocks&lt;/li&gt;&#xA;&lt;li&gt;Function Pop-up for Quick Overview and Navigation&lt;/li&gt;&#xA;&lt;li&gt;Plug-able Through Your Favorite Scripting Language&lt;/li&gt;&#xA;&lt;li&gt;Recordable Macros With No Programming Required&lt;/li&gt;&#xA;&lt;li&gt;Regular Expression Search and Replace (grep)&lt;/li&gt;&#xA;&lt;li&gt;Run Shell Commands from Within a Document&lt;/li&gt;&#xA;&lt;li&gt;Support for Darcs, Perforce, SVK, and Subversion&lt;/li&gt;&#xA;&lt;li&gt;Support for More Than 50 Languages&lt;/li&gt;&#xA;&lt;li&gt;Switch Between Files in Projects With a Minimum of Key Strokes&lt;/li&gt;&#xA;&lt;li&gt;Themable Syntax Highlight Colors&lt;/li&gt;&#xA;&lt;li&gt;Visual Bookmarks to Jump Between Places in a File&lt;/li&gt;&#xA;&lt;li&gt;Works As External Editor for (s)ftp Programs&lt;/li&gt;&#xA;&lt;li&gt;Works Together With Xcode and Can Build Xcode Projects&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-08T09:22:59.763" />
  <row Id="1300" PostTypeId="2" ParentId="843" CreationDate="2010-09-08T09:29:12.870" Score="2" ViewCount="" Body="&lt;p&gt;if your re-deployement require downtime, then client may be unhappy about that. Also it depends on the frequency whether its daily weekly or monthly. My last project has a regular outage window at 2nd sat of every month with client's approval. You may check for any accepted outage window with your client.&lt;/p&gt;&#xA;" OwnerUserId="186" LastActivityDate="2010-09-08T09:29:12.870" />
  <row Id="1302" PostTypeId="1" CreationDate="2010-09-08T09:52:53.927" Score="13" ViewCount="592" Body="&lt;p&gt;I have used many like StackOverflow, ASP.NET and codeproject. I am sure there are many which everyone use. could you please name few popular and useful?&lt;/p&gt;&#xA;" OwnerUserId="186" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:47:04.413" LastActivityDate="2011-01-04T04:44:28.373" CommunityOwnedDate="2010-09-08T09:52:53.927" Title="Which is the best software developer online community?" Tags="&lt;recommendations&gt;&lt;websites&gt;&lt;software-developer&gt;" AnswerCount="11" CommentCount="3" FavoriteCount="7" />
  <row Id="1304" PostTypeId="2" ParentId="1034" CreationDate="2010-09-08T10:21:33.747" Score="1" ViewCount="" Body="&lt;p&gt;Usually you are &lt;strong&gt;required&lt;/strong&gt; to get the certification &lt;strong&gt;only&lt;/strong&gt; if you have to load device drivers or other kernel modules, as the certification is one of the requirements to have your code signed by WHQL (Windows Hardware Quality Labs).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For ordinary applications it is just a logo you can add to your application web page or box.&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-08T12:00:36.873" LastActivityDate="2010-09-08T12:00:36.873" />
  <row Id="1305" PostTypeId="2" ParentId="1202" CreationDate="2010-09-08T11:00:06.640" Score="17" ViewCount="" Body="&lt;h2&gt;Richard Stallman&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Richard_Stallman&quot; rel=&quot;nofollow&quot;&gt;Richard Stallman&lt;/a&gt; is the programmer behind Emacs (with Guy Steele) and the original versions of the GNU debugger, GNU make and an early version of GCC. He also kicked off the free software movement.&lt;/p&gt;&#xA;" OwnerUserId="122" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2010-09-09T11:13:34.480" LastActivityDate="2010-09-09T11:13:34.480" CommunityOwnedDate="2010-09-08T11:00:06.640" CommentCount="4" />
  <row Id="1306" PostTypeId="2" ParentId="1302" CreationDate="2010-09-08T11:24:56.673" Score="10" ViewCount="" Body="&lt;p&gt;I would like to point out the many programming language channels on &lt;a href=&quot;http://freenode.net&quot; rel=&quot;nofollow&quot;&gt;Freenode's IRC Network&lt;/a&gt;. There is ##java, ##php, #python, ##csharp, ##C, ##C++, etc. Most of the channels have many professionals in there, and they usually act professional. If you EVER need help right now, go there first. If you don't get a response after a minute or 2, then move on. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I like about it though is that its fast help, usually good help, people are always there (even at freaking 3 AM EST), and you can discuss topics more, something thats sometimes hard to do on SO.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-08T11:24:56.673" CommunityOwnedDate="2010-09-08T11:24:56.673" CommentCount="3" />
  <row Id="1307" PostTypeId="2" ParentId="1302" CreationDate="2010-09-08T11:35:10.190" Score="35" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://StackOverflow.com&quot;&gt;StackOverflow&lt;/a&gt; is the one I prefer.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-08T11:35:10.190" CommunityOwnedDate="2010-09-08T11:35:10.190" CommentCount="1" />
  <row Id="1308" PostTypeId="2" ParentId="1006" CreationDate="2010-09-08T11:53:48.880" Score="2" ViewCount="" Body="&lt;p&gt;I start with something small: if I don't feel like working on a new feature, I'll start programming on something little: refactoring old code, fixing a tiny non-critical bug which can be fixed, tested and removed from the bug list easily, or anything else that'll get me writing or fixing code. Once that initial hump has been crossed, it's usually a lot easier to get going on the big tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Naturally, this won't work for when that feature &lt;em&gt;has&lt;/em&gt; to go out ASAP, but in those cases nervousness/worry will probably keep your nose to the programming grindstone anyway :).&lt;/p&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-09-08T11:53:48.880" />
  <row Id="1309" PostTypeId="2" ParentId="1006" CreationDate="2010-09-08T12:04:54.300" Score="3" ViewCount="" Body="&lt;p&gt;Usually I will start to think the &quot;software&quot; like my own company's product or something like my own idea. It will create small spark feeling like how to improve it more better or pour lots of ideas into it for improvising. Basically I do this to create interest in the activity, once you got the interest, nothing can stop you from doing it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps! :)&lt;/p&gt;&#xA;" OwnerUserId="186" LastActivityDate="2010-09-08T12:04:54.300" />
  <row Id="1310" PostTypeId="2" ParentId="1267" CreationDate="2010-09-08T12:24:05.947" Score="2" ViewCount="" Body="&lt;p&gt;Yes, it has been my hobby since my childhood and it eventually became my job. Now I've been in this industry for 10 years and I still enjoy programming. It is challenging, it is a creative activity, I have always to keep my mind fresh and learn new things. It is the thing I do better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have also a lot of coworkers that don't enjoy programming, and consider it just a &quot;job&quot; (many of them have a degree in electronic engineering but found a job as a programmer).&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-08T12:24:05.947" />
  <row Id="1311" PostTypeId="2" ParentId="1271" CreationDate="2010-09-08T12:35:59.093" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Neither.&lt;/strong&gt; Both have downsides, and the holy war is testimony to that. The best editors are the ones that nobody talks about.&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-08T12:35:59.093" CommunityOwnedDate="2011-04-12T23:03:04.020" CommentCount="5" />
  <row Id="1312" PostTypeId="2" ParentId="1302" CreationDate="2010-09-08T12:39:12.063" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.sitepoint.com/forums/&quot; rel=&quot;nofollow&quot;&gt;Sitepoint&lt;/a&gt; forums are not bad&lt;/p&gt;&#xA;" OwnerUserId="93" LastActivityDate="2010-09-08T12:39:12.063" CommunityOwnedDate="2010-09-08T12:39:12.063" />
  <row Id="1313" PostTypeId="2" ParentId="1006" CreationDate="2010-09-08T12:47:12.980" Score="24" ViewCount="" Body="&lt;p&gt;Here's a radical notion: DON'T.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The human brain didn't evolve for long-form coding sessions. You're actually not built to sit and push buttons all day. There's heaps of evidence to indicate that developers are actually more productive when NOT pressuring themselves for productivity all day long. Wise managers and employers know this and allow for task-shifting and periodic distraction throughout the day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you find your focus wanders, let it wander. Read a magazine. Take a nap. Chat with a colleague. You'll come back fresher and more productive.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-09-08T12:47:12.980" CommentCount="4" />
  <row Id="1314" PostTypeId="2" ParentId="1259" CreationDate="2010-09-08T12:55:07.550" Score="2" ViewCount="" Body="&lt;p&gt;I definitely expect Visual Studio (the only IDE I’m using regularly at the moment) to grow more and more features to ease the greatest pains of programming we have today. I think the greatest pain at the moment is &lt;strong&gt;debugging&lt;/strong&gt;, so I expect it to grow much more advanced &lt;strong&gt;debugging features.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I’m especially looking forward to is to able to &lt;strong&gt;debug backwards.&lt;/strong&gt; We’ve all been there: we get an error or exception and cannot easily figure out how the program got into the state it’s in now. Currently this is not really feasible because the debugger would have to “remember” all earlier program state in order to be able to rewind to it, but IntelliTrace is a first step in this direction.&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-08T12:55:07.550" CommentCount="5" />
  <row Id="1316" PostTypeId="2" ParentId="1267" CreationDate="2010-09-08T13:15:17.610" Score="0" ViewCount="" Body="&lt;p&gt;Though its my profession, I don't enjoy it always. However if there is interesting or challenging work/module for which we may forget everything and work on it until it completes. Those kind of work, I really enjoy!! :)&lt;/p&gt;&#xA;" OwnerUserId="186" LastActivityDate="2010-09-08T13:15:17.610" />
  <row Id="1318" PostTypeId="2" ParentId="616" CreationDate="2010-09-08T13:48:27.047" Score="0" ViewCount="" Body="&lt;p&gt;Browsing Facebook :)&lt;/p&gt;&#xA;" OwnerUserId="186" LastActivityDate="2010-09-08T13:48:27.047" />
  <row Id="1319" PostTypeId="1" AcceptedAnswerId="1322" CreationDate="2010-09-08T13:48:44.043" Score="36" ViewCount="1127" Body="&lt;p&gt;Sort of like the &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;Joel Test&lt;/a&gt; I guess, except you don't need to limit it to checklists of yes/no questions.&lt;/p&gt;&#xA;" OwnerUserId="151" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-08T16:45:24.860" LastActivityDate="2011-05-13T22:12:15.927" Title="What questions do you ask about a company before deciding to work there?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;work-environment&gt;&lt;interview&gt;" AnswerCount="12" CommentCount="2" FavoriteCount="32" />
  <row Id="1320" PostTypeId="2" ParentId="1319" CreationDate="2010-09-08T13:58:52.067" Score="11" ViewCount="" Body="&lt;p&gt;I have seen this somewhere. &quot;What would you expect me to have accomplished in 6 months?&quot;, just to set expectations right.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-08T13:58:52.067" />
  <row Id="1321" PostTypeId="1" CreationDate="2010-09-08T13:59:25.880" Score="9" ViewCount="684" Body="&lt;p&gt;During talking, programmer always diverts the topic to IT/programming topics. Other interesting facts??&lt;/p&gt;&#xA;" OwnerUserId="186" LastActivityDate="2011-05-05T01:04:21.393" CommunityOwnedDate="2010-09-08T13:59:25.880" ClosedDate="2011-05-05T04:43:51.947" Title="What are the common mannerisms of programmer by which anyone can recognize his/her profession?" Tags="&lt;programmer-day&gt;&lt;culture&gt;" AnswerCount="12" CommentCount="4" FavoriteCount="5" />
  <row Id="1322" PostTypeId="2" ParentId="1319" CreationDate="2010-09-08T14:09:08.077" Score="37" ViewCount="" Body="&lt;p&gt;Asking a company good questions is an important part of your interview.  It will enable you to really show that you know what you're talking about. It also allows you to find out if the company is a good match for you.  An interview should be about evaluating both the to be employee and the to be employer, not one sided.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a list of questions you can start with, and as you discuss their answers there will probably be other topics that come up that you can discuss.  You can also make suggestions to the company if you find that their process can be improved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition to the Joel Test questions...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Which source control system do you use?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you make use of branches? how?&lt;/li&gt;&#xA;&lt;li&gt;Why do you use that source control system, have you used others?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Who else would I be working with? What are their competencies?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What do they work on?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;What do you work on?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you like your job?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Do you do code reviews?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Who performs the code reviews? peers? managers?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Which bug tracking software do you use?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is your bug tracking software used often?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;What programming methedology do you use?&lt;/li&gt;&#xA;&lt;li&gt;Which programming languages does the company use?&lt;br&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Which version of that language do you use?&lt;/li&gt;&#xA;&lt;li&gt;Are there any other large frameworks or APIs that you use? Why?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Which IDE do you use?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Which version of the IDE do you use?&lt;/li&gt;&#xA;&lt;li&gt;Do you use any plug-ins with that IDE?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;How does the QA process work?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How many QA people per developer?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;How do you classify the company? Small business?  Large corporation?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is the company well funded?&lt;/li&gt;&#xA;&lt;li&gt;What i a typical team size per project?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Can you walk me through a typical work day that I may encounter if I worked there?&lt;/li&gt;&#xA;&lt;li&gt;Are there any perks about working there?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How many vacation days?  &lt;/li&gt;&#xA;&lt;li&gt;Which holidays?&lt;/li&gt;&#xA;&lt;li&gt;Can I work from home periodically?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-08T14:27:56.877" LastActivityDate="2010-09-08T14:27:56.877" CommentCount="9" />
  <row Id="1323" PostTypeId="1" AcceptedAnswerId="1333" CreationDate="2010-09-08T14:32:27.407" Score="11" ViewCount="498" Body="&lt;p&gt;I recently saw that Microsoft released a coding standards document (&lt;a href=&quot;http://1code.codeplex.com/releases/view/51868&quot; rel=&quot;nofollow&quot;&gt;All-In-One Code Framework Coding Standards&lt;/a&gt;) and it got me thinking...  The company that I work for has no formal coding standards at all.  There are only a few developers and we have been together long enough to have evolved into similar styles and its never been an issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does the company you work for have a documented coding standards?  If no, why not?  Does having a standard make a difference?  Is it worth writing a standard from scratch or should you adopt another standard as your own (ie. make Microsoft's standards yours)?&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-18T22:11:03.943" LastActivityDate="2010-11-19T01:32:24.750" Title="Does your company have a coding standard?" Tags="&lt;coding&gt;&lt;coding-standards&gt;" AnswerCount="7" FavoriteCount="4" />
  <row Id="1325" PostTypeId="2" ParentId="1323" CreationDate="2010-09-08T14:47:19.250" Score="2" ViewCount="" Body="&lt;p&gt;My former employer has a coding standard.  I'm considering formally documenting one for myself, as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, as you suggest, finding a decent existing standard and modifying/adopting that.  For a company, I would certainly suggest that they look at existing coding standards, but create/modify one for their own particular needs.  There isn't necessarily a need to create one from scratch, but some care should be taken to make sure that the coding standard makes sense for the type of software the company creates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, having a coding standard makes a difference, but it isn't a silver bullet.  Code is more legible as there aren't as many different style clashing and some common mistakes/pitfalls can be avoided.  Even with a standard you'll have some variation in coding styles, but that variability will be reduced.  The goal isn't to try avoid all variation or prepare for every possible situation.  Too complicated a coding standard can be worse than none at all.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-09-08T14:47:19.250" />
  <row Id="1326" PostTypeId="2" ParentId="1323" CreationDate="2010-09-08T14:52:23.643" Score="0" ViewCount="" Body="&lt;p&gt;Unfortunately not. So everyone has its own way to use spacing, indentation, and so on, everything mixed (this way we don't even have to use the &quot;blame&quot; function to know who is the author of a line of code!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, even worst, someone writes variable and class names in Italian, someone else in English...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always adapt my style to that of the language, library and framework I'm using, so that a source code looks uniform and plain.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-08T14:52:23.643" CommentCount="1" />
  <row Id="1327" PostTypeId="2" ParentId="1323" CreationDate="2010-09-08T14:53:22.223" Score="0" ViewCount="" Body="&lt;p&gt;Keep in mind that this is a coding standards document which is &lt;strong&gt;specific&lt;/strong&gt; to the All-In-One Code Framework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have worked at various companies, some of which had an existing standard and some (most) of which I helped develop the standard. For the most part, if you are doing .NET based development (and even if you're not, most of the rules still apply) you should take a look at the &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321545613&quot; rel=&quot;nofollow&quot;&gt;Framework Design Guidelines&lt;/a&gt;. While this is specific to writing public facing APIs, most of the guidelines apply equally well to any code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest concern with code standards is to keep it relatively simple and straightforward. You want developers to be able to internalize the guidelines presented, so giving them a 50+ page document is useless. You can still create that document if you want to provide background, examples, etc. but you will also want something that boils down to a set of bulletted guidelines. Your coding standard also has to be a flexibile, living document that needs to change as technology changes.&lt;/p&gt;&#xA;" OwnerUserId="164" LastActivityDate="2010-09-08T14:53:22.223" CommentCount="1" />
  <row Id="1328" PostTypeId="2" ParentId="1323" CreationDate="2010-09-08T14:56:33.267" Score="4" ViewCount="" Body="&lt;p&gt;I think it's essential to have a coding standard, even if all it says is &quot;we use 3-space indentation and open-brackets go on the next line.&quot;  A few benefits:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It makes reading through the whole code-base much easier, since switching between coding styles between files is annoying.&lt;/li&gt;&#xA;&lt;li&gt;It makes reading a single file easier, since any file updated by two developers with conflicting styles will eventually tend to get those styles mixed.  Reading through a file that mixes tabs and spaces (and editing it later) is a pain in the ass.&lt;/li&gt;&#xA;&lt;li&gt;It makes it easier for new developers to use good style if there's an explicit standard, rather than an implied one.&lt;/li&gt;&#xA;&lt;li&gt;Consistent naming conventions make it much easier to find functions/variables.  Was it ArraySort or array_Sort or sortTheArray or doSortArray or...?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In terms of whether to adopt an existing standard, it doesn't really matter- consistency is what's important.  If your developers have a dozen different styles, you might as well pick an existing, published one.  If you've all evolved into a pretty consistent style, just write that down and use it.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-08T14:56:33.267" />
  <row Id="1329" PostTypeId="2" ParentId="1302" CreationDate="2010-09-08T14:58:57.993" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/&quot;&gt;Programmers.StackExchange.com&lt;/a&gt; is pretty nifty.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-08T14:58:57.993" CommunityOwnedDate="2010-09-08T14:58:57.993" CommentCount="4" />
  <row Id="1330" PostTypeId="2" ParentId="1319" CreationDate="2010-09-08T15:01:53.620" Score="7" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Does the company offer any support for outside training e.g. financially for free or time off for exams?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;What kinda of environment do the developers work in, is it quiet?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;What kinda of hardware do you developers uses, how often do they upgrade?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-08T15:01:53.620" />
  <row Id="1331" PostTypeId="2" ParentId="1321" CreationDate="2010-09-08T15:04:30.467" Score="4" ViewCount="" Body="&lt;p&gt;In college I was surrounded by software developers, and I think that there really is no single common mannerism.  Even your example doesn't hold true- I know plenty of developers who don't talk about IT at all.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-08T15:04:30.467" CommunityOwnedDate="2010-09-08T15:04:30.467" CommentCount="1" />
  <row Id="1332" PostTypeId="2" ParentId="1321" CreationDate="2010-09-08T15:08:06.720" Score="10" ViewCount="" Body="&lt;p&gt;They laugh at this t-shirt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/BQKSh.jpg&quot; alt=&quot;No place like home&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Skepticism&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Programmers seem to lean towards skepticism in my experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason for this could be when programmers debug code they have to use skeptical reasoning i.e. evidence based.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some example are Brian Dunning from the Skeptiod podcast and a one the of members of the The Skeptics Guide to the Universe podcast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is even this website &lt;a href=&quot;http://www.skeptools.com&quot; rel=&quot;nofollow&quot;&gt;skeptools.com&lt;/a&gt; which is&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;dedicated to developing advanced tools&#xA;  and techniques for use by skeptics in&#xA;  fighting the battle against&#xA;  misinformation on the world wide web.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If anyone would like to prove my point please sign up to contribute on the &lt;a href=&quot;http://area51.stackexchange.com/proposals/12612/skeptic-exchange?referrer=ugyMdm3pMWUyZl9Yzu5PRw2&quot;&gt;Skeptics Exchange stackexchange&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="64" LastEditorUserId="12853" LastEditorDisplayName="" LastEditDate="2011-05-04T22:01:57.147" LastActivityDate="2011-05-04T22:01:57.147" CommunityOwnedDate="2010-09-08T15:08:06.720" CommentCount="6" />
  <row Id="1333" PostTypeId="2" ParentId="1323" CreationDate="2010-09-08T15:13:14.767" Score="13" ViewCount="" Body="&lt;p&gt;It's important for a team to have a single coding standard for each language to avoid several problems:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A lack of standards can make your code unreadable.&lt;/li&gt;&#xA;&lt;li&gt;Disagreement over standards can cause check-in wars between developers.&lt;/li&gt;&#xA;&lt;li&gt;Seeing different standards in the same class can be extremely irritating.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm a big fan of what &lt;a href=&quot;http://c2.com/cgi/wiki?UncleBobOnCodingStandards&quot; rel=&quot;nofollow&quot;&gt;Uncle Bob has to say&lt;/a&gt; about standards:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;Let them evolve during the first few iterations.&lt;/li&gt;&#xA;  &lt;li&gt;Let them be team specific instead of company specific.&lt;/li&gt;&#xA;  &lt;li&gt;Don't write them down if you can avoid it. Rather, let the code be&#xA;  the way the standards are captured.&lt;/li&gt;&#xA;  &lt;li&gt;Don't legislate good design. (e.g. don't tell people not to use goto)&lt;/li&gt;&#xA;  &lt;li&gt;Make sure everyone knows that the standard is about communication, and&#xA;  nothing else.&lt;/li&gt;&#xA;  &lt;li&gt;After the first few iterations, get the team together to decide.&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-08T15:13:14.767" CommentCount="7" />
  <row Id="1334" PostTypeId="2" ParentId="1321" CreationDate="2010-09-08T15:16:29.843" Score="6" ViewCount="" Body="&lt;p&gt;If I ask you &quot;Which one&quot; at the movie theater or fast food joint and you give me the &lt;strong&gt;zero based index&lt;/strong&gt; of your choice in the list, I'm pretty sure I know what you do. :)  &lt;/p&gt;&#xA;" OwnerUserId="39" LastEditorUserId="147" LastEditorDisplayName="" LastEditDate="2010-09-08T15:23:13.567" LastActivityDate="2010-09-08T15:23:13.567" CommunityOwnedDate="2010-09-08T15:16:29.843" CommentCount="2" />
  <row Id="1335" PostTypeId="2" ParentId="1321" CreationDate="2010-09-08T15:29:34.697" Score="25" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Penchant for “correctness” (e.g. insisting that “Internet Explorer” is not synonymous with “browser”).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Pedantry about terminology (e.g. insisting that it’s called a “folder”, not a “category”).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Taking sentences very literally, and being unable to understand sentences that are strictly speaking nonsensical (e.g. “I clicked the word into Google”).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I used computer-related examples here, but real-life examples can certainly be found (e.g. insisting that it’s called a “steering wheel”, not a “wheel”).&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-08T15:29:34.697" CommunityOwnedDate="2010-09-08T15:29:34.697" CommentCount="6" />
  <row Id="1336" PostTypeId="2" ParentId="1319" CreationDate="2010-09-08T16:01:15.240" Score="11" ViewCount="" Body="&lt;p&gt;&quot;Can I take a look at your coding standards document?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there's something really silly in there, I will steer clear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recent example: &quot;Every private field must have a public getter and setter method&quot; (Java)&lt;/p&gt;&#xA;" OwnerUserId="113" LastActivityDate="2010-09-08T16:01:15.240" CommentCount="1" />
  <row Id="1337" PostTypeId="2" ParentId="1321" CreationDate="2010-09-08T16:11:05.937" Score="15" ViewCount="" Body="&lt;p&gt;According to an informal &lt;a href=&quot;http://www.codeproject.com/Surveys/954/Whats-your-personality.aspx&quot; rel=&quot;nofollow&quot;&gt;survey done on codeproject.com&lt;/a&gt; the most common personality type of software developers is &lt;a href=&quot;http://en.wikipedia.org/wiki/INTJ&quot; rel=&quot;nofollow&quot;&gt;INTJ&lt;/a&gt; (37%) on the &lt;a href=&quot;http://en.wikipedia.org/wiki/Myers-Briggs_Type_Indicator&quot; rel=&quot;nofollow&quot;&gt;Myers-Briggs Type Indicator&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Taking it one step further, 75% of the respondents of the survey were either INTJ or only 1 axis removed from INTJ (so one of INTJ, &lt;a href=&quot;http://en.wikipedia.org/wiki/ENTJ&quot; rel=&quot;nofollow&quot;&gt;ENTJ&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/ISTJ&quot; rel=&quot;nofollow&quot;&gt;ISTJ&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/INFJ&quot; rel=&quot;nofollow&quot;&gt;INFJ&lt;/a&gt; or &lt;a href=&quot;http://en.wikipedia.org/wiki/INTP&quot; rel=&quot;nofollow&quot;&gt;INTP&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may be possible to guess at peoples personality types from their behaviour. PersonalityDesk.com has an overview of &lt;a href=&quot;http://www.personalitydesk.com/type-profile/intj-mastermind&quot; rel=&quot;nofollow&quot;&gt;common INTJ personality traits&lt;/a&gt;. For example:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Popular hobbies for the INTJ include&#xA;  reading, cultural events, taking&#xA;  classes, appreciating art, computers&#xA;  and video games, and independent&#xA;  sports such as swimming, backpacking,&#xA;  or running marathons.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;However, given that there are only 16 M-B personality types it certainly doesn't follow that all INTJs will be software developers so it would be pretty hard to identify software developers from this even if you could accurately identify their personality type. And of course this should all be taken in the context of various &lt;a href=&quot;http://en.wikipedia.org/wiki/Myers-Briggs_Type_Indicator#Criticism&quot; rel=&quot;nofollow&quot;&gt;criticisms of the MBTI and associated tests&lt;/a&gt; that suggest it may be inaccurate and too vague in it's classifications.&lt;/p&gt;&#xA;" OwnerUserId="134" LastEditorUserId="134" LastEditorDisplayName="" LastEditDate="2010-09-09T09:14:10.753" LastActivityDate="2010-09-09T09:14:10.753" CommunityOwnedDate="2010-09-08T16:11:05.937" CommentCount="8" />
  <row Id="1338" PostTypeId="1" AcceptedAnswerId="1448" CreationDate="2010-09-08T16:21:00.637" Score="56" ViewCount="6830" Body="&lt;p&gt;Have you ever had to work to coding standards that:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Greatly decreased your productivity?&lt;/li&gt;&#xA;&lt;li&gt;Were originally included for good reasons but were kept long after the original concern became irrelevant?&lt;/li&gt;&#xA;&lt;li&gt;Were in a list so long that it was impossible to remember them all?&lt;/li&gt;&#xA;&lt;li&gt;Made you think the author was just trying to leave their mark rather than encouraging good coding practice?&lt;/li&gt;&#xA;&lt;li&gt;You had no idea why they were included?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If so, what is your least favourite rule and why?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Some examples &lt;a href=&quot;http://c2.com/cgi/wiki?BadCodingStandards&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="113" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:18:06.657" LastActivityDate="2011-05-20T04:07:16.623" CommunityOwnedDate="2010-09-09T18:16:09.323" Title="Worst coding standard you've ever had to follow?" Tags="&lt;coding-standards&gt;&lt;style-guide&gt;" AnswerCount="54" CommentCount="3" FavoriteCount="21" />
  <row Id="1339" PostTypeId="2" ParentId="1338" CreationDate="2010-09-08T16:32:33.810" Score="29" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;#define AND  &amp;amp;&amp;amp;&#xA;#define OR   ||&#xA;#define EQ   ==&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;'nuff said.&lt;/p&gt;&#xA;" OwnerUserId="35" LastActivityDate="2010-09-08T16:32:33.810" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="12" />
  <row Id="1340" PostTypeId="2" ParentId="1338" CreationDate="2010-09-08T16:48:21.377" Score="105" ViewCount="" Body="&lt;p&gt;Had a professor once who demanded we have at least one comment for each line of code.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//Set x to 3&#xA;var x = 3;&#xA;&#xA;//if x is greater than 2&#xA;if(x&amp;gt;2){&#xA;&#xA;    //Print x&#xA;    Print(x);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It was pretty ridiculous.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-08T16:48:21.377" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="18" />
  <row Id="1341" PostTypeId="1" AcceptedAnswerId="1345" CreationDate="2010-09-08T17:06:49.110" Score="3" ViewCount="210" Body="&lt;p&gt;For those of you who do front-end development, what browser do you tend to use?  I mean, of course you have to eventually do some work in whatever browsers you intend to support, but what do you prefer for the primary development, and why?&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:18:14.877" LastActivityDate="2010-09-29T23:18:14.877" Title="What web browser do you use for front-end development?" Tags="&lt;web-development&gt;&lt;browser&gt;&lt;front-end&gt;" AnswerCount="6" CommentCount="1" />
  <row Id="1342" PostTypeId="2" ParentId="1341" CreationDate="2010-09-08T17:12:54.773" Score="1" ViewCount="" Body="&lt;p&gt;Firefox (3.6), primarly because I use it also for daily navigation, then because of Firebug and some other plugins (TamperData above all).&lt;/p&gt;&#xA;" OwnerUserId="87" LastEditorUserId="87" LastEditorDisplayName="" LastEditDate="2010-09-08T23:09:05.220" LastActivityDate="2010-09-08T23:09:05.220" />
  <row Id="1343" PostTypeId="2" ParentId="1095" CreationDate="2010-09-08T17:18:53.903" Score="2" ViewCount="" Body="&lt;p&gt;I used UML very regularly for about four years for a product that generated all (most) of its code skeletons from Rational Rose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The last five years there have been more of &quot;boxes and arrows&quot; mostly invented on the spot and usually enough to get the general idea across. Formally correct UML only a few times during this time.&lt;/p&gt;&#xA;" OwnerUserId="170" LastActivityDate="2010-09-08T17:18:53.903" CommentCount="2" />
  <row Id="1344" PostTypeId="2" ParentId="1341" CreationDate="2010-09-08T17:27:46.727" Score="1" ViewCount="" Body="&lt;p&gt;Firefox and Chrome.  Mostly because of the development plugins.  IETab makes it easy to see how IE has screwed up your web page.&lt;/p&gt;&#xA;" OwnerUserId="5" LastActivityDate="2010-09-08T17:27:46.727" CommentCount="1" />
  <row Id="1345" PostTypeId="2" ParentId="1341" CreationDate="2010-09-08T17:38:06.940" Score="7" ViewCount="" Body="&lt;p&gt;Firefox / Firebug.  Also chrome has a similar built in dev environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But of course you'll have to use all browsers at some point to verify it works.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-08T17:38:06.940" />
  <row Id="1346" PostTypeId="2" ParentId="1095" CreationDate="2010-09-08T17:45:57.170" Score="7" ViewCount="" Body="&lt;p&gt;Ironically, UML is supposed to be flexible.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the real world, it is not supposed to be a pedantic exercise in doing it &lt;em&gt;one&lt;/em&gt; right way.  It is about effectively communicating and documenting a system/process/idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer your question, I'm with the others.  I've never fully utilized full-on, formal UML.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-09-08T17:45:57.170" />
  <row Id="1347" PostTypeId="2" ParentId="1267" CreationDate="2010-09-08T17:57:59.470" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;No.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is a means to an end: there is stuff that doesn't work the way I want it to, and programming is the only way to fix that. I'd much rather things worked the way I wanted them to in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This sentiment is closely related to the theory that a good programmer is lazy: we write things not because we can, but because it's the only way to do less work in the future.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-08T17:57:59.470" CommentCount="2" />
  <row Id="1348" PostTypeId="2" ParentId="1271" CreationDate="2010-09-08T18:32:32.883" Score="7" ViewCount="" Body="&lt;p&gt;Emacs. It provides a single point of contact. It is trivially extensible and highly portable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And as a comment on bloat: I rarely can push my emacs over 35MB of memory, even with 20-30 files loaded and various modes running. Eclipse seems to start at 400MB and go &lt;em&gt;up&lt;/em&gt;. &lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-08T18:32:32.883" CommunityOwnedDate="2011-04-12T23:03:04.020" CommentCount="4" />
  <row Id="1349" PostTypeId="2" ParentId="1321" CreationDate="2010-09-08T18:33:48.457" Score="0" ViewCount="" Body="&lt;p&gt;There is a fairly accurate guide to this sort of thing that esr puts out in his hackers glossary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://catb.org/jargon/html/appendixb.html&quot; rel=&quot;nofollow&quot;&gt;Appendix B. A Portrait of J. Random Hacker&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="148" LastEditorUserId="1767" LastEditorDisplayName="" LastEditDate="2010-09-14T18:23:14.993" LastActivityDate="2010-09-14T18:23:14.993" CommunityOwnedDate="2010-09-08T18:33:48.457" CommentCount="2" />
  <row Id="1350" PostTypeId="2" ParentId="1267" CreationDate="2010-09-08T19:01:49.283" Score="0" ViewCount="" Body="&lt;p&gt;Yes.  Programming is by far the most fun part of my job.  It utilizes the creative parts of my brain while also learning new and interesting domains.  Solving problems in a very logic fashion is very enjoyable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say no when I get a bunch of project manager's bothering me for status and making up unrealistic deadlines.  I need to have the appropriate amount of time to get the creative juices flowing and think about the problem from all different sides.&lt;/p&gt;&#xA;" OwnerUserId="5" LastActivityDate="2010-09-08T19:01:49.283" />
  <row Id="1351" PostTypeId="2" ParentId="1341" CreationDate="2010-09-08T19:20:56.540" Score="1" ViewCount="" Body="&lt;p&gt;Chrome.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, it is the best browser for everything outside of a corporate limitation.  The console and development tools are sufficiently powerful to rival Firebug.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will test in IE8 as well and have found that if you can make something work in Chrome and IE8, the odds are that the rest of the browsers will do just fine.&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-09-08T19:20:56.540" CommentCount="3" />
  <row Id="1352" PostTypeId="2" ParentId="238" CreationDate="2010-09-08T19:21:08.300" Score="2" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.revolution-os.com/&quot; rel=&quot;nofollow&quot;&gt;Revolution OS&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;The story of Linux's rise to popularity, and the story of Open Source and Free Software's beginning. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-08T19:21:08.300" />
  <row Id="1354" PostTypeId="2" ParentId="815" CreationDate="2010-09-08T19:50:57.447" Score="1" ViewCount="" Body="&lt;p&gt;When you finally pry it out of your users' cold dead hands.&lt;/p&gt;&#xA;" OwnerUserId="197" LastActivityDate="2010-09-08T19:50:57.447" />
  <row Id="1355" PostTypeId="2" ParentId="1259" CreationDate="2010-09-08T19:54:32.170" Score="1" ViewCount="" Body="&lt;p&gt;I can't wait until IDEs start letting us abstract code into separate files, but still edit all those files in the same editor view (when it makes sense), instead of having to switch between tabs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or have a quick-view for a function - if I've got a ten line SQL query behind a function call, I don't need a whole new editor view - give me the option for an inline popup to quickly preview what the function does; I can read the SQL, dismiss the popup and get back to what I was really doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a huge queue of other things I expect IDEs to be capable of 2010 that they simply don't do, but I think that's the main one that annoys me.&lt;/p&gt;&#xA;" OwnerUserId="89" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-09-09T17:31:28.800" LastActivityDate="2010-09-09T17:31:28.800" />
  <row Id="1356" PostTypeId="2" ParentId="826" CreationDate="2010-09-08T19:54:40.500" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.sequelpro.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;SequelPro&lt;/a&gt;&lt;/strong&gt;: Awesome free, fast, lightweight frontend for MySQL&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.likemac.ru/english/&quot; rel=&quot;nofollow&quot;&gt;DiskOrder&lt;/a&gt;:&lt;/strong&gt; File Management that makes Finder look like Microsoft Bob&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://iterm.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;iTerm&lt;/a&gt;:&lt;/strong&gt; Easily customizable ANSI colors make coder happy&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://code.google.com/p/macvim/&quot; rel=&quot;nofollow&quot;&gt;MacVim&lt;/a&gt;:&lt;/strong&gt; Oh Vim (and your derivatives), how do I love thee?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://mxcl.github.com/homebrew/&quot; rel=&quot;nofollow&quot;&gt;Homebrew:&lt;/a&gt;&lt;/strong&gt;: Must-have for *nix-like package management&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.barebones.com/products/textwrangler&quot; rel=&quot;nofollow&quot;&gt;TextWrangler&lt;/a&gt;:&lt;/strong&gt; Great for manipulating large amounts of text &lt;/p&gt;&#xA;" OwnerUserId="194" LastActivityDate="2010-09-08T19:54:40.500" CommentCount="1" />
  <row Id="1358" PostTypeId="2" ParentId="1288" CreationDate="2010-09-08T19:57:56.703" Score="4" ViewCount="" Body="&lt;p&gt;For hard problems, I almost always fall back on TDD (Test Driven Development).  That way, I can explicitly assert how I want my program to work and then test and validate that it's doing what I expect.&lt;/p&gt;&#xA;" OwnerUserId="21" LastActivityDate="2010-09-08T19:57:56.703" />
  <row Id="1359" PostTypeId="2" ParentId="779" CreationDate="2010-09-08T19:59:54.910" Score="16" ViewCount="" Body="&lt;p&gt;In rapid succession:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What's your biggest strength?&lt;/li&gt;&#xA;&lt;li&gt;What's your biggest weakness?&lt;/li&gt;&#xA;&lt;li&gt;What's your weakest strength?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;last one really threw me for a loop.&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-09-08T19:59:54.910" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="3" />
  <row Id="1360" PostTypeId="1" AcceptedAnswerId="1361" CreationDate="2010-09-08T20:18:23.153" Score="19" ViewCount="857" Body="&lt;p&gt;Every programmer's top motivator is different. It may be&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;company's brand&lt;/li&gt;&#xA;&lt;li&gt;development platform (java, .net, etc.)&lt;/li&gt;&#xA;&lt;li&gt;satisfying salary&lt;/li&gt;&#xA;&lt;li&gt;location of the company&lt;/li&gt;&#xA;&lt;li&gt;flexible work hours&lt;/li&gt;&#xA;&lt;li&gt;organizational culture&lt;/li&gt;&#xA;&lt;li&gt;or a combination of these&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There are lots of other ones that can be added to this list.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what do you think? &lt;/p&gt;&#xA;" OwnerUserId="210" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:42:38.577" LastActivityDate="2010-12-11T19:05:29.353" Title="What are the top motivators for a programmer?" Tags="&lt;career&gt;&lt;motivation&gt;" AnswerCount="16" CommentCount="6" FavoriteCount="8" />
  <row Id="1361" PostTypeId="2" ParentId="1360" CreationDate="2010-09-08T20:25:39.357" Score="36" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Creativity&lt;/strong&gt;. I write code because I like to create things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Corporate bureaucracy and office politics are massive &lt;em&gt;de&lt;/em&gt;-motivators, so an organisational culture that keeps those out of the way is (indirectly) a motivator.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-09-08T20:25:39.357" CommentCount="1" />
  <row Id="1362" PostTypeId="2" ParentId="1287" CreationDate="2010-09-08T20:27:49.640" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Confront the emotions.&lt;/strong&gt; You won't be as productive as you can until you take care of them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Decide if there is some action that you can take to make a difference.&lt;br&gt;&#xA; - If so, take that action.&lt;br&gt;&#xA; - If not, accept that fact and persevere.&lt;/p&gt;&#xA;" OwnerUserId="197" LastEditorUserId="197" LastEditorDisplayName="" LastEditDate="2010-10-01T17:09:57.487" LastActivityDate="2010-10-01T17:09:57.487" CommentCount="6" />
  <row Id="1363" PostTypeId="2" ParentId="1267" CreationDate="2010-09-08T20:29:11.393" Score="1" ViewCount="" Body="&lt;p&gt;Yes, I enjoy programming for one simple reason: when I program I can make the computer do stuff that is cool. That may sound a bit juvenile, but basically that is what programming is about to me. I also like the problem solving aspect, which is related because I like figuring out how to make the computer do something that neither I nor it can normally do.&lt;/p&gt;&#xA;" OwnerUserId="69" LastActivityDate="2010-09-08T20:29:11.393" />
  <row Id="1364" PostTypeId="2" ParentId="1360" CreationDate="2010-09-08T20:29:33.667" Score="29" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Interesting Work&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll put up with quite a bit if I'm not bored.  As such, work that challenges me, makes me learn, and makes me figure new things out.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-08T20:29:33.667" CommentCount="1" />
  <row Id="1365" PostTypeId="2" ParentId="1360" CreationDate="2010-09-08T20:34:45.450" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Self Satisfaction&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aside from interesting work as fishtoaster said, my motivation as a university employee revolves around the end user experience.  My web applications provide an experience to our clients (students, faculty, staff, prospective students) and that motivates me to build the best quality applications I can whether the project is internal or external facing.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowing that at least one person (hopefully) will use your software is what allows me to wake up with a smile on my face and helps me find the fortitude to trudge through the bugs and build kick ass applications.&lt;/p&gt;&#xA;" OwnerUserId="136" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-09-08T20:46:35.350" LastActivityDate="2010-09-08T20:46:35.350" CommentCount="5" />
  <row Id="1366" PostTypeId="2" ParentId="1288" CreationDate="2010-09-08T20:43:17.177" Score="4" ViewCount="" Body="&lt;p&gt;All that you mentioned is great, I personally find at least the initial phase to start is best by identifying the &lt;strong&gt;use cases&lt;/strong&gt; present from the requirements.  If you can identify (which you probably will not) all the possible scenarios, and then design your class/ER diagrams from this along with flow the rest will mostly fall into place. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For problems that are extremely challenging I find it best to use the divide and conquer by making the problem/challenge and bunch of smaller problems and define dependencies of them.  Solve each smaller problem and then combine to come up with a final solution. &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-08T20:43:17.177" CommentCount="2" />
  <row Id="1367" PostTypeId="2" ParentId="1267" CreationDate="2010-09-08T20:45:54.623" Score="0" ViewCount="" Body="&lt;p&gt;Yes. It's fun. I like solving problems and there are always problems to solve while programming.&lt;/p&gt;&#xA;" OwnerUserId="210" LastActivityDate="2010-09-08T20:45:54.623" />
  <row Id="1368" PostTypeId="2" ParentId="1321" CreationDate="2010-09-08T20:46:35.120" Score="4" ViewCount="" Body="&lt;p&gt;They insist on spelling 'goto' as a single word and get into arguments when they're corrected.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-08T20:46:35.120" CommunityOwnedDate="2010-09-08T20:46:35.120" CommentCount="2" />
  <row Id="1369" PostTypeId="2" ParentId="1360" CreationDate="2010-09-08T20:48:35.727" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Being Useful&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similar to what Chris mentioned, but simply having my projects actually be used.  There have been a number of applications that I've written for end users that ended up never being used because the end users decided the problem it tackled wasn't the direction they needed to go.  It's a major demotivator when you spend hours(/weeks/months) working on something that you get end-user buy in on only to find out that within a couple weeks after deploying it for them to use it's no longer used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't so much of a problem when you have to dogfood the application, because you know you will keep using it.  Sure user experience on a whole plays into it, but when the company decides to change direction after investing that much time, energy, and money on developing the software it's given me reason to reconsider my service to the company.&lt;/p&gt;&#xA;" OwnerUserId="62" LastEditorUserId="62" LastEditorDisplayName="" LastEditDate="2010-09-09T05:15:25.887" LastActivityDate="2010-09-09T05:15:25.887" CommentCount="4" />
  <row Id="1370" PostTypeId="2" ParentId="1360" CreationDate="2010-09-08T20:56:04.303" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Recognition&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure you can spend hours/weeks/months writing a program, you can have people use it as &lt;a href=&quot;http://programmers.stackexchange.com/questions/1360/what-are-the-top-motivators-for-a-programmer/1369#1369&quot;&gt;@Agent_9191&lt;/a&gt; said, but what really motivates me is the recognition. It could be as simple as somebody saying &quot;Nice Work&quot;, or some random internet award. I feel demotivated when somebody just downloads my program and runs, because I have no way of knowing if it worked for them or not. But if they do say &quot;Great program&quot;, then I know I accomplished something&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-08T20:56:04.303" CommentCount="1" />
  <row Id="1371" PostTypeId="1" CreationDate="2010-09-08T20:58:07.970" Score="42" ViewCount="1534" Body="&lt;p&gt;Having worked on a failed project is one of the few things that most programmers have in common, regardless of language used, industry or experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These projects can be great learning experiences, soul-crushing disasters (or both!), and can occur for a multitude of reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;upper management change of heart&lt;/li&gt;&#xA;&lt;li&gt;under-skilled / under-resourced team&lt;/li&gt;&#xA;&lt;li&gt;emergence of superior competitor during dev cycle&lt;/li&gt;&#xA;&lt;li&gt;over/under management&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Once you've worked on a couple of such projects, is it possible to recognise at an early stage exactly when a project is doomed to fail? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, a big sign is having a hard &amp;amp; fast external &lt;strong&gt;deadline combined with feature creep&lt;/strong&gt;. I've seen projects which were well planned out and proceeding right on schedule go horribly off the rails once the late feature requests started to roll in and get added to the final &quot;deliverable&quot;. The proposers of these requests earned the nickname of &lt;a href=&quot;http://en.wikipedia.org/wiki/Columbo_%28TV_series%29#Style_of_investigation&quot; rel=&quot;nofollow&quot;&gt;Columbo&lt;/a&gt;, due to rarely leaving the room without asking for &quot;just one more thing&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the warning signs you look out for that set off the alarm bells of impending doom in your head?&lt;/p&gt;&#xA;" OwnerUserId="141" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-12-30T12:09:19.597" LastActivityDate="2011-02-06T02:04:40.670" CommunityOwnedDate="2011-01-23T19:41:07.757" Title="What are the warning signs of impending doom to watch out for on a project?" Tags="&lt;productivity&gt;&lt;experience&gt;&lt;warning-signs&gt;" AnswerCount="30" CommentCount="2" FavoriteCount="13" />
  <row Id="1372" PostTypeId="2" ParentId="135" CreationDate="2010-09-08T21:00:28.290" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.noop.nl/2009/02/twitter-top-100-for-software-developers.html&quot; rel=&quot;nofollow&quot;&gt;Twitter Top 100 for Software Developers&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="196" LastActivityDate="2010-09-08T21:00:28.290" CommunityOwnedDate="2011-02-11T07:48:02.420" />
  <row Id="1373" PostTypeId="2" ParentId="1338" CreationDate="2010-09-08T21:04:29.990" Score="27" ViewCount="" Body="&lt;p&gt;I was asked by the software leader of a company to do &quot;&lt;em&gt;simple, re&lt;b&gt;n&lt;/b&gt;dundant code&lt;/em&gt;&quot;.&#xA;It was forbidden, for example, to add a new parameter to an existing function. You instead had to duplicate the function, leaving the original untouched in order to avoid regressions. No formal testing of course (waste of time).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We were also forbidden from using merge software; each file could only be modified by one programmer at a time. Revision control software was science fiction, of course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The happiest day of my life was when he was fired (consider that it is very, very difficult to fire someone in Italy).&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="13285" LastEditorDisplayName="" LastEditDate="2011-03-16T14:17:34.920" LastActivityDate="2011-03-16T14:17:34.920" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="3" />
  <row Id="1374" PostTypeId="2" ParentId="67" CreationDate="2010-09-08T21:05:05.510" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.noop.nl/2009/09/top-200-blogs-for-developers-q3-2009.html&quot; rel=&quot;nofollow&quot;&gt;Top 200 Blogs for Developers&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="196" LastActivityDate="2010-09-08T21:05:05.510" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="1375" PostTypeId="2" ParentId="1338" CreationDate="2010-09-08T21:07:16.380" Score="32" ViewCount="" Body="&lt;p&gt;All interaction with the database has to be done through Stored Procedures.  Might make sense if we're living in 1997 and not 2010.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just realized that this actually covers all the criteria of the original question:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Greatly decreased your productivity? CHECK.  Please - just use an ORM.&lt;/li&gt;&#xA;&lt;li&gt;Were originally included for good reasons but were kept long after the original concern became irrelevant? CHECK.  The manager was a developer for a database server 1000 years ago and put this coding standard in.&lt;/li&gt;&#xA;&lt;li&gt;Were in a list so long that it was impossible to remember them all? CHECK.  This included 'as much logic should be stored in the database as possible'.&lt;/li&gt;&#xA;&lt;li&gt;Made you think the author was just trying to leave their mark rather than encouraging good coding practice?  CHECK.  Keeps coming back to the manager being an ex-database server developer.&lt;/li&gt;&#xA;&lt;li&gt;You had no idea why they were included?  CHECK.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-08T21:07:16.380" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="11" />
  <row Id="1376" PostTypeId="1" CreationDate="2010-09-08T21:09:31.653" Score="10" ViewCount="412" Body="&lt;p&gt;I have a tester that while testing will have an error occur (ok so far), but then he frequently reports it right away.  We (the developers) then later find that the tester has not tried to reproduce the issue and (when asked) cannot find a way to make it happen again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now these are still bugs, I don't want to ignore them.  But without repro steps I am kind of stuck.  Sometimes there is a stack trace (though frequently it is not useful because this is compact framework and there are no line numbers).  But when there is one I can take the stack trace and crack open the code and start guessing, but that does not lead to testable &quot;fixes&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you do in scenarios like this?&lt;/p&gt;&#xA;" OwnerUserId="71" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T11:43:19.643" LastActivityDate="2010-11-30T23:24:20.100" Title="What to do with bugs that do not repro?" Tags="&lt;bugs&gt;&lt;testing&gt;" AnswerCount="10" CommentCount="5" FavoriteCount="2" />
  <row Id="1377" PostTypeId="2" ParentId="1302" CreationDate="2010-09-08T21:09:53.893" Score="5" ViewCount="" Body="&lt;p&gt;Code Project simply because extensive tutorials, sometimes on arcane topics that for some reason you need to know to solve a particular and nasty problem.  Stackover is very limited for answering design related questions, and very good for giving answers to problems that could be solved by the user, if the user RTFM. I can't count the number of times I went to it to find a solution to a problem after being failed by stackoverflow. &lt;/p&gt;&#xA;" OwnerUserId="225" LastActivityDate="2010-09-08T21:09:53.893" CommunityOwnedDate="2010-09-08T21:09:53.893" />
  <row Id="1378" PostTypeId="2" ParentId="1338" CreationDate="2010-09-08T21:11:16.877" Score="18" ViewCount="" Body="&lt;p&gt;Enforced XML comments on all non-private methods, constants, enums, and properties.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It led to some pretty cluttered code, especially since the end result was people either just hitting /// to create an empty comment stub for everything or installing GhostDoc and having it add auto-generated comments:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/// &amp;lt;summary&amp;gt;&#xA;/// Validations the handler.&#xA;/// &amp;lt;/summary&amp;gt;&#xA;/// &amp;lt;param name=&quot;propertyName&quot;&amp;gt;The property name.&amp;lt;/param&amp;gt;&#xA;public void ValidationHandler(string propertyName) &#xA;{&#xA;   // whatever&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;[Edit] The reason I mention this as a ridiculous standard isn't because I think method comments are stupid but because the quality of these comments wasn't enforced in any way and resulted in just creating lots and lots of clutter in the code files. There are better ways of creating meaningful code docs than blind &quot;must have a comment&quot; build requirement.&lt;/p&gt;&#xA;" OwnerUserId="226" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2010-09-09T18:28:06.193" LastActivityDate="2010-09-09T18:28:06.193" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="16" />
  <row Id="1379" PostTypeId="2" ParentId="9" CreationDate="2010-09-08T21:12:07.360" Score="2" ViewCount="" Body="&lt;p&gt;I like to use &lt;a href=&quot;http://www.rescuetime.com&quot; rel=&quot;nofollow&quot;&gt;Rescuetime&lt;/a&gt;.&#xA;RescueTime gives you a note between -2 and 2 to yours productivity. For me it is a challenge to have a note next to 2.&lt;/p&gt;&#xA;" OwnerUserId="196" LastEditorUserId="196" LastEditorDisplayName="" LastEditDate="2010-09-09T11:39:41.840" LastActivityDate="2010-09-09T11:39:41.840" CommunityOwnedDate="2011-01-04T21:22:43.957" CommentCount="1" />
  <row Id="1380" PostTypeId="1" AcceptedAnswerId="1576" CreationDate="2010-09-08T21:13:20.293" Score="8" ViewCount="444" Body="&lt;p&gt;We are starting a push for code coverage here at my work, and it has got me to thinking.... How much code coverage is enough?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When do you get to the point of diminishing returns on code coverage?  What is the sweet spot between good coverage and not enough?  Does it vary by the type of project your are making (ie WPF, WCF, Mobile, ASP.NET)  (These are C# classes we are writing.)&lt;/p&gt;&#xA;" OwnerUserId="71" LastActivityDate="2011-01-30T10:37:33.283" Title="How much Code Coverage is &quot;enough&quot;?" Tags="&lt;code-quality&gt;&lt;unit-testing&gt;" AnswerCount="8" FavoriteCount="2" />
  <row Id="1381" PostTypeId="2" ParentId="1376" CreationDate="2010-09-08T21:15:58.230" Score="26" ViewCount="" Body="&lt;p&gt;A bug without context is not a bug, it's a fluke. The problem could be your code, it could be a third party library, it could be the hardware, or it could be solar radiation causing a single bit to flip on it's own. If you can't reproduce it with at least &lt;em&gt;some&lt;/em&gt; regularity (even if only &quot;it happens once every 10 or 20 times I do X&quot;), it's not much better than your tester telling you &quot;Something somewhere went wrong somehow - fix it&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may have to explain to your tester that his job is not to just generate input until something breaks. If it were, you could replace him with a random number generator. Part of his job is to identify bugs, which entails identifying how to produce them.&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-11-30T23:24:20.100" LastActivityDate="2010-11-30T23:24:20.100" />
  <row Id="1382" PostTypeId="2" ParentId="1376" CreationDate="2010-09-08T21:16:41.647" Score="8" ViewCount="" Body="&lt;p&gt;Ultimately if neither the developer nor the tester can reproduce the bug it should be closed but marked as such.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, how long it takes you to get to that point is debatable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people would argue that if it's not immediately reproducible then it should be closed forthwith.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually strive to try to get more information from the originator of the problem. There may be something they forgot in the original report. Having a conversation about the required steps can often reveal the missing information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One final thought - closed as &quot;no-repro&quot; &lt;em&gt;doesn't&lt;/em&gt; mean fixed. If there is a real problem it will reveal itself sooner or later and having all the information you can will help when you can finally reproduce the problem.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-08T21:16:41.647" />
  <row Id="1383" PostTypeId="2" ParentId="1376" CreationDate="2010-09-08T21:17:39.227" Score="0" ViewCount="" Body="&lt;p&gt;First of all, you should have a rigorous testing procedure (but I understand you, in my company what you have described happens frequently).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on the severity of the bug, you can invest some time on it or (better) ignore it until repro steps are provided.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-08T21:17:39.227" />
  <row Id="1385" PostTypeId="2" ParentId="1380" CreationDate="2010-09-08T21:20:39.847" Score="19" ViewCount="" Body="&lt;p&gt;I'm of the opinion that code coverage alone is a poor metric.  It's easy to produce tons of useless tests that &lt;em&gt;cover&lt;/em&gt; the code, but don't adequately check the output, or don't test edge cases, for example.  Covering code just means it doesn't throw an exception, not that it's right.  You need quality tests- the quantity isn't that important.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-08T21:20:39.847" CommentCount="3" />
  <row Id="1386" PostTypeId="1" AcceptedAnswerId="1391" CreationDate="2010-09-08T21:20:48.433" Score="17" ViewCount="735" Body="&lt;p&gt;Sometimes I feel like a musician who can't play live shows. Programming is a pretty cool skill, and a very broad world, but a lot of it happens &quot;off camera&quot;- in your head, in your office, away from spectators. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can of course talk about programming with other programmers, and there is peer programming, and you do get to create something that you can show to people, but when it comes to explaining to non programmers what is it that you do, or how was your day at work, it's sort of tricky. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you get the non programmers in your life to understand what is it that you do? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;NOTE: this is not a repeat of &lt;a href=&quot;http://programmers.stackexchange.com/questions/4/getting-non-programmers-to-understand-the-development-process&quot;&gt;Getting non-programmers to understand the development process&lt;/a&gt;, because that question was about managing client expectations. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2011-03-04T14:32:39.103" Title="How do you share your craft with non programmers?" Tags="&lt;development-process&gt;&lt;non-programmers&gt;" AnswerCount="14" CommentCount="1" FavoriteCount="5" />
  <row Id="1387" PostTypeId="2" ParentId="1371" CreationDate="2010-09-08T21:21:05.227" Score="4" ViewCount="" Body="&lt;p&gt;I think it's generally easy to spot a failing project when the deadline is approaching.  Like you said, feature creep combined with a set-in-stone deadline is a sure way of killing a project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key however is to spot a failing project way in advance.  I think the only real 'sign of doom' in this case would be a complete lack of the definition of 'when are we finished'.  Unless we know this at the offset we're doomed for failure IMO.&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-08T21:21:05.227" CommunityOwnedDate="2011-01-23T19:41:07.757" CommentCount="1" />
  <row Id="1388" PostTypeId="2" ParentId="1371" CreationDate="2010-09-08T21:21:54.870" Score="3" ViewCount="" Body="&lt;p&gt;For me, it is when those that are responsible for the feature set (aka managers, product owners, customers...) stop caring or seem to have a hopeless air about their answers.  Questions about features are meet with apathy and discouragement.  It is clear that they have lost investment or confidence in the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This happened for me when a project I was on had the &quot;upper management change of heart&quot; hit it.  I was asking questions about how it should work and all of a sudden no one had a real opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A little while latter the project was canceled and all the beautiful code I had written was scrapped.&lt;/p&gt;&#xA;" OwnerUserId="71" LastActivityDate="2010-09-08T21:21:54.870" CommunityOwnedDate="2011-01-23T19:41:07.757" />
  <row Id="1389" PostTypeId="2" ParentId="1371" CreationDate="2010-09-08T21:23:04.387" Score="1" ViewCount="" Body="&lt;p&gt;Well, the best way to answer this is with an example:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Bob starts a project by coming up with a genius idea. He begins by creating a plan for the software project that begins with specific steps that need to be completed. However, the steps do not lead to the end-result, but only go a portion of the way there.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In the end, the project fails because &lt;strong&gt;the plans were incomplete.&lt;/strong&gt; It's not so much lack of planning as it is &lt;em&gt;insufficient planning.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="231" LastActivityDate="2010-09-08T21:23:04.387" CommunityOwnedDate="2011-01-23T19:41:07.757" />
  <row Id="1390" PostTypeId="2" ParentId="1288" CreationDate="2010-09-08T21:25:14.530" Score="2" ViewCount="" Body="&lt;p&gt;What about UML. Does nobody use it for analysis? For years I used it on and off and detested it, I thought it was a waste of time, couldn't see the benefit of it. But that changed. In the last couple of years i've been developing some really duty multithreaded code, and sometime it was really driving me up the wall to get some stuff working right.  One day, I said.right lets document what we have. We'll use UML, and suddenly the problems surfaced and were fixed. It was a pure revelation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now if I have a really difficult problem, I choose the appropriate model type and fire a model, and see how it looks. These days I very rarely get stuck with difficult complex code. Done right, you can simplify the code right out. &lt;/p&gt;&#xA;" OwnerUserId="225" LastActivityDate="2010-09-08T21:25:14.530" CommentCount="1" />
  <row Id="1391" PostTypeId="2" ParentId="1386" CreationDate="2010-09-08T21:26:41.837" Score="12" ViewCount="" Body="&lt;p&gt;Three Words:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;dumb it down&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is complex.  It takes a lot of work to understand it.  And the joys of programming are even more subtle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me to communicate my successes and such to others (ie family) I have to communicate on a more common level.  Compare programming to normal real world things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(ie an object to a car with a dash board and seats and ....)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is even better if you know something about your audience because you can use things that they understand that are more complex than normal everyday concepts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, my wife was a school teacher, so I can compare some of my software development processes to teaching processes she had to use.  It helps immensely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in the end you got to simplify, simplify and simplify some more.  And even then, it is hard to get someone to understand how cool a well crafted class with good unit test is.  :)&lt;/p&gt;&#xA;" OwnerUserId="71" LastActivityDate="2010-09-08T21:26:41.837" CommentCount="1" />
  <row Id="1392" PostTypeId="2" ParentId="1371" CreationDate="2010-09-08T21:32:14.590" Score="23" ViewCount="" Body="&lt;h3&gt;Management Disconnect&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;When those responsible for deadlines, features, staffing, etc get disconnected from the people responsible for delivering the project.  This can lead to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Feature creep when the customer is talking with someone who doesn't understand feature cost&lt;/li&gt;&#xA;&lt;li&gt;Man-month syndrome, where new developers are thrown into a project late enough to be more of a hinderance than a help&lt;/li&gt;&#xA;&lt;li&gt;Unrealistic deadlines, created by people who have to deal with the business consequences of deadline decisions but not the implementation consequences.&lt;/li&gt;&#xA;&lt;li&gt;Products that don't solve the problem, when customer-dev communication is hindered by management in the middle.&lt;/li&gt;&#xA;&lt;li&gt;Poor risk management, where potential problems aren't communicated early enough between devs and management.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So, when it looks like management is uninterested in the project, is communicating poorly, isn't listening to the customers, or isn't listening to the dev team, run for the hills.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-08T21:32:14.590" CommunityOwnedDate="2011-01-23T19:41:07.757" CommentCount="4" />
  <row Id="1393" PostTypeId="2" ParentId="1259" CreationDate="2010-09-08T21:33:28.057" Score="1" ViewCount="" Body="&lt;p&gt;There is going much more in the way in utilities and primary development models for parallel development.&lt;/p&gt;&#xA;" OwnerUserId="225" LastActivityDate="2010-09-08T21:33:28.057" />
  <row Id="1395" PostTypeId="2" ParentId="1371" CreationDate="2010-09-08T21:35:15.020" Score="45" ViewCount="" Body="&lt;h3&gt;Heroic Coding&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Coding late into the night, working long hours, and clocking lots of overtime are a sure sign that something went wrong.  Further, my experience is that if you see someone working late at any point in the project, it only ever gets worse.  He might be doing it just to get his one feature back on schedule, and he might succeed; however, cowboy coding like that is almost always the result of a planning failure that will inevitably cause more of it soon.  So, the earlier in the project you see it, the worse it will eventually become.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-08T21:35:15.020" CommunityOwnedDate="2011-01-23T19:41:07.757" CommentCount="7" />
  <row Id="1396" PostTypeId="2" ParentId="1288" CreationDate="2010-09-08T21:36:37.873" Score="1" ViewCount="" Body="&lt;p&gt;I think the best option is to just start writing. Write about the requirements and write about the limitations. Write about the various tradeoffs between options. After you finish, you should have a very good understanding of the situation. Dot points are good for scanning&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-08T21:36:37.873" />
  <row Id="1397" PostTypeId="2" ParentId="1371" CreationDate="2010-09-08T21:37:00.620" Score="24" ViewCount="" Body="&lt;p&gt;To me the single biggest problem, and one you can spot immediately, is when business considers written requirements as a waste of time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So basically; &lt;strong&gt;No Written Requirements&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the kiss of death.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-08T21:37:00.620" CommunityOwnedDate="2011-01-23T19:41:07.757" CommentCount="7" />
  <row Id="1399" PostTypeId="2" ParentId="1386" CreationDate="2010-09-08T21:42:49.860" Score="6" ViewCount="" Body="&lt;p&gt;I try to explain it in terms of solving a problem.  I just choose to use a computer program to solve the problem.  That way you can discuss what you have done in terms of the problem you are trying to solve.  Once they understand that, the jump to solving it through programming is not very far and can usually be made by non techie types.&lt;/p&gt;&#xA;" OwnerUserId="5" LastActivityDate="2010-09-08T21:42:49.860" />
  <row Id="1400" PostTypeId="2" ParentId="1371" CreationDate="2010-09-08T21:43:03.743" Score="27" ViewCount="" Body="&lt;h3&gt;A new tool as a problem solver.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;When people start planning to use unfamiliar tools, I don't mind, but I keep my eye on it.  When they start planning all the advertised benefits of those tools into the schedule, I get worried.  Fun examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;We can shave a month of the schedule because we're going to try using an object oriented language (even though all we have are c developers).&lt;/li&gt;&#xA;&lt;li&gt;We'll try out this new scrum thing- that'll fix all our process problems!&lt;/li&gt;&#xA;&lt;li&gt;I know it's halfway through the project, but what if we changed ORMs to something new?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;New technologies and practices are great, but you almost never get all the benefits out of the gate.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-08T21:43:03.743" CommunityOwnedDate="2011-01-23T19:41:07.757" CommentCount="3" />
  <row Id="1401" PostTypeId="2" ParentId="1371" CreationDate="2010-09-08T21:43:49.067" Score="5" ViewCount="" Body="&lt;p&gt;If the project plan calls for a &lt;strong&gt;single&lt;/strong&gt; iteration of design, development, testing and deployment - the classic waterfall - for a project longer than 1 month, I'd run a mile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't need to be fully agile, but having short development cycles allows you to demonstrate progress to everyone (customer, management and developers themselves) and cope with changed requirements when the inevitable happens.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-09-09T13:06:31.133" LastActivityDate="2010-09-09T13:06:31.133" CommunityOwnedDate="2011-01-23T19:41:07.757" CommentCount="5" />
  <row Id="1402" PostTypeId="2" ParentId="1202" CreationDate="2010-09-08T21:46:35.050" Score="10" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Andrew_S._Tanenbaum&quot; rel=&quot;nofollow&quot;&gt;Andrew Tanenbaum&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Creator of MINIX and a lot of high degree textbooks (like &quot;Operating Systems: Design and Implementation&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I like him especially for having criticized the obsolete design of Linux.&lt;/p&gt;&#xA;" OwnerUserId="235" LastActivityDate="2010-09-08T21:46:35.050" CommunityOwnedDate="2010-09-08T21:46:35.050" CommentCount="5" />
  <row Id="1403" PostTypeId="1" AcceptedAnswerId="1413" CreationDate="2010-09-08T21:48:05.610" Score="11" ViewCount="361" Body="&lt;p&gt;How important is the option to work remotely, either all the time or sometimes, to you when it comes to your job?&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-11-04T16:41:15.003" Title="How important is working remotely for you?" Tags="&lt;jobs&gt;&lt;work-environment&gt;" AnswerCount="11" CommentCount="1" FavoriteCount="1" />
  <row Id="1404" PostTypeId="2" ParentId="1108" CreationDate="2010-09-08T21:49:05.523" Score="0" ViewCount="" Body="&lt;p&gt;What you need is the &lt;a href=&quot;http://www.drdobbs.com/index.jhtml;jsessionid=EZOLGPXHZL2A5QE1GHOSKHWATMY32JVN&quot; rel=&quot;nofollow&quot;&gt;Doctor&lt;/a&gt; in the house. &lt;/p&gt;&#xA;" OwnerUserId="225" LastActivityDate="2010-09-08T21:49:05.523" />
  <row Id="1405" PostTypeId="2" ParentId="1403" CreationDate="2010-09-08T21:53:30.700" Score="0" ViewCount="" Body="&lt;p&gt;Working remotely is nice but not a necessity.  I like the interaction with others programmers that pairing brings.  I know you can pair remotely but it is more difficult.  I also live in an area where traffic to work is not really an issue.  If I lived in a big city with a horrible commute I would probably value working remotely much more.&lt;/p&gt;&#xA;" OwnerUserId="5" LastActivityDate="2010-09-08T21:53:30.700" />
  <row Id="1406" PostTypeId="2" ParentId="1403" CreationDate="2010-09-08T21:54:01.450" Score="3" ViewCount="" Body="&lt;p&gt;Not especially.  I prefer to be on site if I can.  Despite all the problems that come with that (meetings, nagging co-workers, etc), I believe that the ability to communicate with co-workers, managers, and customers face-to-face is very useful.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-08T21:54:01.450" CommentCount="3" />
  <row Id="1407" PostTypeId="1" AcceptedAnswerId="1428" CreationDate="2010-09-08T21:54:05.660" Score="12" ViewCount="1178" Body="&lt;p&gt;Which is the best web browser for a programmer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think of tools and extensions like &quot;developers toolbars&quot;, but maybe other reasons may justify the choice of a specific browser for a programmer.&lt;/p&gt;&#xA;" OwnerUserId="235" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:46:59.360" LastActivityDate="2011-01-28T10:08:28.770" Title="Best web browser for a programmer" Tags="&lt;tools&gt;&lt;browser&gt;" AnswerCount="15" CommentCount="6" FavoriteCount="2" />
  <row Id="1408" PostTypeId="2" ParentId="1403" CreationDate="2010-09-08T21:56:12.180" Score="1" ViewCount="" Body="&lt;p&gt;I'd really would like to work from home. It would mean more saved time (it is a 45 minute car raid from home to office) and a lot of saved monet (gasoline, dress...). Even a couple of days a week would be great.&lt;/p&gt;&#xA;" OwnerUserId="235" LastActivityDate="2010-09-08T21:56:12.180" />
  <row Id="1409" PostTypeId="2" ParentId="1407" CreationDate="2010-09-08T22:00:09.597" Score="20" ViewCount="" Body="&lt;p&gt;I don't think there's anything that comes close to &lt;a href=&quot;http://getfirebug.com&quot; rel=&quot;nofollow&quot;&gt;Firebug&lt;/a&gt; for being featureful and intuitive, so &lt;a href=&quot;http://getfirefox.com&quot; rel=&quot;nofollow&quot;&gt;Firefox&lt;/a&gt; gets my vote.&lt;/p&gt;&#xA;" OwnerUserId="251" LastActivityDate="2010-09-08T22:00:09.597" CommunityOwnedDate="2010-09-08T22:00:09.597" CommentCount="2" />
  <row Id="1410" PostTypeId="2" ParentId="1407" CreationDate="2010-09-08T22:02:07.567" Score="5" ViewCount="" Body="&lt;p&gt;For me, nothing beats the &lt;a href=&quot;http://vimperator.org/vimperator&quot; rel=&quot;nofollow&quot;&gt;vimperator&lt;/a&gt; plugin for firefox, it saves me having to context-shift quite so much when going from editor to browser.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Vimperator is a Firefox browser extension with strong inspiration from the Vim text editor, with a mind towards faster and more efficient browsing. It has similar key bindings and you could call it a modal web browser, as key bindings differ according to which mode you are in. For example, it has a special Hint mode, where you can follow links easily with the keyboard only. It has similar key bindings and you could call it a modal web browser, as key bindings differ according to which mode you are in. For example, it has a special Hint mode, where you can follow links easily with the keyboard only. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="261" LastEditorUserId="261" LastEditorDisplayName="" LastEditDate="2010-09-08T22:12:56.300" LastActivityDate="2010-09-08T22:12:56.300" />
  <row Id="1411" PostTypeId="2" ParentId="1403" CreationDate="2010-09-08T22:03:36.440" Score="2" ViewCount="" Body="&lt;p&gt;Working remotely is essential to me. Our entire organization works remotely -- we have offices downtown, but we keep overhead low by having everyone at home most of the time. We can rent additional space on-demand as needed, to meet with clients for a day for example. But with our clients all over the country, most meetings are conducted via webinar and phone conference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ability to work remotely is a huge part of why I left Film and Television to get (back) into Web Development -- I was not a fan of having to drive all over creation just to get on location. Given the proper tools (Jabber Instant Messaging, Collaborative scheduling, Wikis, Trac, email, etc) working remotely can be a joy.&lt;/p&gt;&#xA;" OwnerUserId="246" LastEditorUserId="246" LastEditorDisplayName="" LastEditDate="2010-09-14T19:06:04.777" LastActivityDate="2010-09-14T19:06:04.777" />
  <row Id="1412" PostTypeId="2" ParentId="1403" CreationDate="2010-09-08T22:04:26.190" Score="5" ViewCount="" Body="&lt;p&gt;I work from home full-time and I absolutely love it. When I worked in an office it seemed like there were constant needless interruptions. Working remotely I communicate with co-workers via IRC and I can get things done without breaking my flow and getting sucked into chitchat and pointless meetings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it is crucial that my co-workers and I get together at least once a month to touch base and be able to discuss things at length and so forth. Luckily we all live in the same metro area, so that's easy to organize.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are of course many pros and cons regarding working remotely, as illustrated hilariously in: &lt;a href=&quot;http://theoatmeal.com/comics/working_home&quot; rel=&quot;nofollow&quot;&gt;http://theoatmeal.com/comics/working_home&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="194" LastActivityDate="2010-09-08T22:04:26.190" />
  <row Id="1413" PostTypeId="2" ParentId="1403" CreationDate="2010-09-08T22:04:44.240" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Advantages&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You can use your home toilet&lt;/li&gt;&#xA;&lt;li&gt;You can prepare your launch&lt;/li&gt;&#xA;&lt;li&gt;You can wear comfortable clothes&lt;/li&gt;&#xA;&lt;li&gt;You save in time and money for the home-office travel&lt;/li&gt;&#xA;&lt;li&gt;You can listen to the music you like&lt;/li&gt;&#xA;&lt;li&gt;You can manage your time&lt;/li&gt;&#xA;&lt;li&gt;You can keep in constant contact with coworkers thanks to VoIP, IM, videoconferencing&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Disadvantages&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You may miss socializing with coworkers&lt;/li&gt;&#xA;&lt;li&gt;If you need instrumentation or technical assistance, you still have to go to office&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-08T22:04:44.240" />
  <row Id="1414" PostTypeId="2" ParentId="1403" CreationDate="2010-09-08T22:05:46.627" Score="1" ViewCount="" Body="&lt;p&gt;I work from home 2 days a week and I love it.  Another job would have to be extra extra sweet to pull me away from that one benefit (though my company has many more).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is two days that I can work with out casual interruptions.  I am avaiable by phone, IM and e-mail if needed, but the &quot;Hey did you see that game last night&quot; or other random sports and political/historical discussions are not trying to distract me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I said, I love it.&lt;/p&gt;&#xA;" OwnerUserId="71" LastActivityDate="2010-09-08T22:05:46.627" />
  <row Id="1415" PostTypeId="2" ParentId="1407" CreationDate="2010-09-08T22:06:35.283" Score="3" ViewCount="" Body="&lt;p&gt;I like Google Chrome.  It's fast, it follows web standards well, and it has built in developer tools for debugging Javascript and inspecting HTML and CSS.  Of course, the same could be said for Safari, as well (since they're both based on Webkit).  That said, there are some things that seem to work better in Firebug (like debugging Javascript when a page loads), but, for the most part, it's a good browser to work with as a programmer.&lt;/p&gt;&#xA;" OwnerUserId="266" LastActivityDate="2010-09-08T22:06:35.283" />
  <row Id="1416" PostTypeId="2" ParentId="1407" CreationDate="2010-09-08T22:07:02.807" Score="2" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.uzbl.org/&quot; rel=&quot;nofollow&quot;&gt;Uzbl&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Because you get to (i.e. have to) write programs to use it.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The general idea is that Uzbl by default is very bare bones. You can send it commands to update settings and perform actions, through various interfaces. There is a limited default configuration. Please see config.h to see what it contains. By default, there are &lt;em&gt;no&lt;/em&gt; keybinds defined at all. &lt;sup&gt;&lt;a href=&quot;http://www.uzbl.org/readme.php&quot; rel=&quot;nofollow&quot;&gt;[uzbl.org]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Not only do you have to read a header file before you even get started, you get to configure your entire keyboard shortcuts from scratch.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-08T22:07:02.807" />
  <row Id="1417" PostTypeId="2" ParentId="1386" CreationDate="2010-09-08T22:07:08.153" Score="0" ViewCount="" Body="&lt;p&gt;You kinda can't really share your craft - just headlines about your job with others&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, what you can do is instead of sharing your craft , is share your life with people who are in the same craft as you  (: &lt;/p&gt;&#xA;" OwnerUserId="277" LastActivityDate="2010-09-08T22:07:08.153" />
  <row Id="1418" PostTypeId="2" ParentId="1360" CreationDate="2010-09-08T22:07:43.813" Score="16" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Curiosity&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Curiosity is what drives me to find out why things break, how your APIs work and keeps me up till all hours of the morning thinking about better solutions to problems.&lt;/p&gt;&#xA;" OwnerUserId="278" LastActivityDate="2010-09-08T22:07:43.813" CommentCount="1" />
  <row Id="1419" PostTypeId="1" AcceptedAnswerId="1442" CreationDate="2010-09-08T22:07:55.263" Score="7" ViewCount="313" Body="&lt;p&gt;A friend of mine has a developer (possibly the &quot;mad genius&quot; type) that has built a substantial system on which their small business is critically dependent. They'd like to get away from their current guy and replace him with someone more reliable, but the question comes up of how to know that the person they replace him with is a competent developer himself. As a developer, I know what questions &lt;em&gt;I&lt;/em&gt; would ask and how to interpret the responses, but how would you advise a company void of development background to go about identifying the ones who know their stuff?&lt;/p&gt;&#xA;" OwnerUserId="248" LastEditorUserId="248" LastEditorDisplayName="" LastEditDate="2010-09-09T19:05:22.233" LastActivityDate="2010-09-09T19:05:22.233" Title="Guiding Non-Programmers in Hiring of a Programmer" Tags="&lt;hiring&gt;&lt;non-programmers&gt;" AnswerCount="3" />
  <row Id="1420" PostTypeId="2" ParentId="1360" CreationDate="2010-09-08T22:08:00.117" Score="5" ViewCount="" Body="&lt;p&gt;For me is knowing that the stuff I build will help people, and make the world a better place ;-)&lt;/p&gt;&#xA;" OwnerUserId="249" LastActivityDate="2010-09-08T22:08:00.117" CommentCount="3" />
  <row Id="1421" PostTypeId="2" ParentId="1407" CreationDate="2010-09-08T22:08:26.570" Score="0" ViewCount="" Body="&lt;p&gt;While Firebug helps Firefox to be a great browser, I've found that Chromium (the open-source version of Chrome) is both faster and more stable and it's Developer Tools are fantastic.  With the Chrome Extension directory open, Chromium will continue to improve.&lt;/p&gt;&#xA;" OwnerUserId="268" LastActivityDate="2010-09-08T22:08:26.570" />
  <row Id="1422" PostTypeId="2" ParentId="1407" CreationDate="2010-09-08T22:09:02.487" Score="7" ViewCount="" Body="&lt;p&gt;For a programmer who's not related to web programming, it's just a browser. &#xA;For a web developer, it's probably Firefox.&lt;/p&gt;&#xA;" OwnerUserId="210" LastActivityDate="2010-09-08T22:09:02.487" CommentCount="1" />
  <row Id="1423" PostTypeId="2" ParentId="1259" CreationDate="2010-09-08T22:09:19.070" Score="2" ViewCount="" Body="&lt;p&gt;I sure hope that IDEs become less bloated and much, much less &quot;kitchen sink&quot;. The only IDE I've tried recently that hasn't made me gasp in disgust is MonoDevelop. It gives the one main feature I want from an IDE - code completion - and the OS X download is 5Mb.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the time, I'd much rather be using Vim, but code completion and intelligent file navigation (i.e. if I'm in the controller class, let me get to the model class easily) is a nice thing. I guess, what I really want is MonoDevelop for Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for whether they will happen? Unlikely. It'll be much more likely that they'll just bundle on a few more dozen features and bloat the IDEs down even more and make the whole experience of using them even more resource intensive and horrible and ensure that simpler text editors like Vim continue to be relevant for many, many more decades.&lt;/p&gt;&#xA;" OwnerUserId="258" LastActivityDate="2010-09-08T22:09:19.070" CommentCount="1" />
  <row Id="1425" PostTypeId="2" ParentId="1287" CreationDate="2010-09-08T22:10:24.917" Score="3" ViewCount="" Body="&lt;p&gt;another strategy i use, is work on very simple and achievable tasks.&#xA;It will make you feel good that you ticked some item off the list and get you back in your productivity mood - usually once i start thinking, i get absorbed in the task and become able to focus again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This also helps in cases where you are not able to leave for a jog/game/movie, like being in an office for example&lt;/p&gt;&#xA;" OwnerUserId="277" LastActivityDate="2010-09-08T22:10:24.917" />
  <row Id="1426" PostTypeId="2" ParentId="1319" CreationDate="2010-09-08T22:11:01.633" Score="9" ViewCount="" Body="&lt;p&gt;This isn't exactly something you can ask, but something to be aware of:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having gone through quite a few interviews and jobs, one thing that I think is crucial is to identify the potential personality clashes as much as possible among your potential co-workers. Over the years I've found that there are a couple of personality types common in our industry that can make things miserable and/or downright impossible. Team cohesion is extremely important in this line of work, and I've found that it's best to avoid getting involved with toxic personalities if at all possible.&lt;/p&gt;&#xA;" OwnerUserId="194" LastActivityDate="2010-09-08T22:11:01.633" CommentCount="2" />
  <row Id="1427" PostTypeId="2" ParentId="815" CreationDate="2010-09-08T22:11:50.063" Score="5" ViewCount="" Body="&lt;p&gt;My pessimistic view? As long as Windows XP lives, so too will IE6. &lt;/p&gt;&#xA;" OwnerUserId="230" LastActivityDate="2010-09-08T22:11:50.063" CommentCount="1" />
  <row Id="1428" PostTypeId="2" ParentId="1407" CreationDate="2010-09-08T22:16:12.573" Score="49" ViewCount="" Body="&lt;p&gt;Chrome is the best web browser out there, bar none, the best web browser &lt;em&gt;for a software developer&lt;/em&gt; is still Firefox -- mainly because Chrome add-ins can only be web pages, so the full richness of &lt;a href=&quot;http://getfirebug.com/&quot; rel=&quot;nofollow&quot;&gt;FireBug&lt;/a&gt; is impossible to achieve in Chrome. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least not using the current Chrome plugin model.&lt;/p&gt;&#xA;" OwnerUserId="37" LastActivityDate="2010-09-08T22:16:12.573" CommentCount="8" />
  <row Id="1429" PostTypeId="2" ParentId="1386" CreationDate="2010-09-08T22:16:41.973" Score="17" ViewCount="" Body="&lt;p&gt;I don't even try. If they aren't tech oriented enough to have at least a basic understanding of programming, I am only going to bore them with the details. Usually I just go with something very high level like &quot;I create web sites&quot; or &quot;I write computer programs to do X&quot;&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-08T22:16:41.973" CommentCount="4" />
  <row Id="1430" PostTypeId="2" ParentId="272" CreationDate="2010-09-08T22:16:50.637" Score="2" ViewCount="" Body="&lt;p&gt;I just say what I do (which tends to change from time to time).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, programming is not &lt;em&gt;what&lt;/em&gt; you do, it's &lt;em&gt;how&lt;/em&gt; you do it :)&lt;/p&gt;&#xA;" OwnerUserId="262" LastActivityDate="2010-09-08T22:16:50.637" CommunityOwnedDate="2010-12-26T17:01:49.080" CommentCount="1" />
  <row Id="1431" PostTypeId="2" ParentId="815" CreationDate="2010-09-08T22:16:54.740" Score="0" ViewCount="" Body="&lt;p&gt;IE6 has around 7% of the browser market. If it makes sense for your company to implement an IE6 version (instead of new features etc.) to gain 7%, it's not dead to you.&lt;/p&gt;&#xA;" OwnerUserId="290" LastActivityDate="2010-09-08T22:16:54.740" />
  <row Id="1432" PostTypeId="2" ParentId="1419" CreationDate="2010-09-08T22:17:22.817" Score="4" ViewCount="" Body="&lt;p&gt;You should do two interview, one of them being technical and done by a programmer.&lt;/p&gt;&#xA;" OwnerUserId="235" LastActivityDate="2010-09-08T22:17:22.817" CommentCount="2" />
  <row Id="1433" PostTypeId="2" ParentId="282" CreationDate="2010-09-08T22:18:38.380" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://5by5.tv/&quot; rel=&quot;nofollow&quot;&gt;5by5&lt;/a&gt; has a handful of technical/programming/media related podcasts, all of which are very interesting, informative, and well-produced.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://webdevradio.com/&quot; rel=&quot;nofollow&quot;&gt;WebDevRadio&lt;/a&gt; is great for general programming topics and news, although Michael doesn't put them out nearly as much anymore. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.javaposse.com&quot; rel=&quot;nofollow&quot;&gt;JavaPosse&lt;/a&gt; is wonderful for, you know, Java-related stuff. Lots of good commentary and discussion&lt;/p&gt;&#xA;" OwnerUserId="194" LastActivityDate="2010-09-08T22:18:38.380" CommunityOwnedDate="2010-12-21T06:02:41.540" />
  <row Id="1434" PostTypeId="2" ParentId="238" CreationDate="2010-09-08T22:19:26.960" Score="0" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.getlamp.com/&quot; rel=&quot;nofollow&quot;&gt;Get Lamp&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;A documentary on text adventures, but it covers Innotech and early game companies. Lots of cool insight on the transition from hobby to commercial development.&lt;/p&gt;&#xA;" OwnerUserId="294" LastActivityDate="2010-09-08T22:19:26.960" />
  <row Id="1435" PostTypeId="2" ParentId="843" CreationDate="2010-09-08T22:20:57.427" Score="2" ViewCount="" Body="&lt;p&gt;If you are talking about a hosted web application, the users don't get a say-so in when they get upgrades. That is, they are forced to upgrade each time you do a push to production.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your changes dramatically change the system rules or UI, you should definitely consider bundling your releases and doing it less frequently. It is very frustrating to users to have to continually re-learn how to use the tools they rely on and violates the UI principle of making them feel they are in control of their computer/software.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-08T22:20:57.427" />
  <row Id="1436" PostTypeId="2" ParentId="1419" CreationDate="2010-09-08T22:22:26.487" Score="2" ViewCount="" Body="&lt;p&gt;In my opinion, screening questions should be provided by someone who knows programming.  Questions leveled at the type of programmer you are looking for (like what is inheritance for beginning level programmers,etc)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The interviewer would be provided with correct answers (and variants) to these questions.  After a candidate makes it through this screening process (and meets their other requirements) then a qualified programmer would have to do a second interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suppose you could by-pass the second (programmer led) interview if the supplied questions were very comprehensive but you are taking a big risk there.  In my opinion there is no real way around having someone qualified do an interview.  The best hope is to limit the amount of hopeless candidates that person has to see.&lt;/p&gt;&#xA;" OwnerUserId="71" LastActivityDate="2010-09-08T22:22:26.487" />
  <row Id="1437" PostTypeId="2" ParentId="67" CreationDate="2010-09-08T22:22:54.863" Score="0" ViewCount="" Body="&lt;p&gt;Mike Dailly's, who's blog is quite good &lt;a href=&quot;http://dailly.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;The Life of a Games Programmer&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="225" LastActivityDate="2010-09-08T22:22:54.863" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="1438" PostTypeId="2" ParentId="282" CreationDate="2010-09-08T22:23:16.423" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://twit.tv/twig&quot; rel=&quot;nofollow&quot;&gt;This week in Google&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Great way to stay up to date with everything googly that happens.&lt;/p&gt;&#xA;" OwnerUserId="302" LastActivityDate="2010-09-08T22:23:16.423" CommunityOwnedDate="2010-12-21T06:02:41.540" CommentCount="1" />
  <row Id="1439" PostTypeId="2" ParentId="1371" CreationDate="2010-09-08T22:24:18.777" Score="27" ViewCount="" Body="&lt;p&gt;When the programmers start to win the argument &quot;The code is horrible, we need to start over from scratch.&quot; on any mature application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may think you can build it better, or understand the problem more fully, but you really don't. Oh, and all those ugly patches? They are fixes to real-world issues that you are going to likely re-introduce in the rewrite.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus, one day you are going to have to explain to the project manager why after 6 months of work you are almost up to 85% of the capability and 150% of the bugs the application had when you started out.  &lt;/p&gt;&#xA;" OwnerUserId="287" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2011-02-06T00:10:57.060" LastActivityDate="2011-02-06T00:10:57.060" CommunityOwnedDate="2011-01-23T19:41:07.757" CommentCount="4" />
  <row Id="1441" PostTypeId="2" ParentId="282" CreationDate="2010-09-08T22:25:01.227" Score="14" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.thisamericanlife.org/&quot; rel=&quot;nofollow&quot;&gt;This American Life&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Really well written and insightful. I totally recommend this to give a little non-tech balance to your podcasts.&lt;/p&gt;&#xA;" OwnerUserId="302" LastActivityDate="2010-09-08T22:25:01.227" CommunityOwnedDate="2010-12-21T06:02:41.540" CommentCount="1" />
  <row Id="1442" PostTypeId="2" ParentId="1419" CreationDate="2010-09-08T22:25:27.270" Score="8" ViewCount="" Body="&lt;p&gt;Hire someone they know and trust (like you) to do a technical interview.  It makes sense to also have this &quot;mad genius&quot; interview the potential developer since he knows the system best, but you have to be careful that he doesn't try to weed out people who won't be obedient to him.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beware that is the it is a codgy system (which it likely is, having been created and maintained by one person for so long), most self-respecting developers will avoid it like the plague.  They will need to make an offer compelling enough to attract the decent developers and avoid that (both financially and by offering control over their work).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen this &quot;in the wild&quot; and the guy at the top kept hiring people who would never question them and if they did he would just play political games until they were out.  I don't envy them in this.&lt;/p&gt;&#xA;" OwnerUserId="311" LastActivityDate="2010-09-08T22:25:27.270" />
  <row Id="1443" PostTypeId="2" ParentId="272" CreationDate="2010-09-08T22:25:49.953" Score="5" ViewCount="" Body="&lt;p&gt;I state that I am a Software Engineer, and depending on the technical background of the person asking I further define the specialty as a C++ developer. And if they are developer's crack some programming jokes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which is also for some reason a really good way to see what level of developer they are :)&lt;/p&gt;&#xA;" OwnerUserId="296" LastActivityDate="2010-09-08T22:25:49.953" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="1444" PostTypeId="2" ParentId="39" CreationDate="2010-09-08T22:25:52.673" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Test what you fly, fly what you test.&quot;&lt;/p&gt;&#xA;" OwnerUserId="196" LastActivityDate="2010-09-08T22:25:52.673" CommunityOwnedDate="2010-09-08T22:25:52.673" />
  <row Id="1445" PostTypeId="2" ParentId="282" CreationDate="2010-09-08T22:26:46.200" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.cbc.ca/quirks/&quot; rel=&quot;nofollow&quot;&gt;Quirks &amp;amp; Quarks&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Science podcast about recent breakthroughs in just about all areas of research.&lt;/p&gt;&#xA;" OwnerUserId="302" LastActivityDate="2010-09-08T22:26:46.200" CommunityOwnedDate="2010-12-21T06:02:41.540" />
  <row Id="1446" PostTypeId="2" ParentId="1217" CreationDate="2010-09-08T22:27:24.637" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What is it about error messages that&#xA;  makes people initially assume that&#xA;  they are useless and not worth paying&#xA;  any attention to?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Well, for me, it was a youth filled with crashing Windows 95 software with completely impenetrable error messages that usually ended with about 150 lines of hexadecimals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I relive the same experience every time I get a nice cryptic Java stack trace which will contain 40 lines of compiler crap and Hibernate errors, and hidden very well amongst them is the actual reference to where in my app the error is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason people ignore error messages and stack traces is often the error messages and stack traces are disproportionately complicated compared to the complexity of the problem. There is no reason to flush 150 lines of crap through my screen when I miss a semi-colon.&lt;/p&gt;&#xA;" OwnerUserId="258" LastActivityDate="2010-09-08T22:27:24.637" CommentCount="1" />
  <row Id="1448" PostTypeId="2" ParentId="1338" CreationDate="2010-09-08T22:29:14.803" Score="69" ViewCount="" Body="&lt;p&gt;This may ruffle a few feathers, but standards that mandate templated block comments at the top of each method always bug the crap out of me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) They are always out of date since they are too far from the code that does the actual work to notice when you are updating things. Bad comments are worse than no comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) They often just repeat information that is already contained the source control tool, just less accurate. For example: Last Modified by, list of modification date/reasons.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-08T22:29:14.803" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="23" />
  <row Id="1449" PostTypeId="2" ParentId="1271" CreationDate="2010-09-08T22:29:49.683" Score="9" ViewCount="" Body="&lt;p&gt;I prefer vim because of the modal editing. Navigation with vim is super fast. There is one thing that pulls me back to emacs every now and again, and that is the org-mode. I wish something similar existed for vim (and I am to lazy to try implementing it myself).&lt;/p&gt;&#xA;" OwnerUserId="305" LastActivityDate="2010-09-08T22:29:49.683" CommunityOwnedDate="2011-04-12T23:03:04.020" CommentCount="4" />
  <row Id="1451" PostTypeId="2" ParentId="238" CreationDate="2010-09-08T22:30:55.970" Score="7" ViewCount="" Body="&lt;h3&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/The_Hitchhiker%27s_Guide_to_the_Galaxy_%28film%29&quot; rel=&quot;nofollow&quot;&gt;The Hitchhiker's Guide to the Galaxy&lt;/a&gt;&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Maybe a bit off topic but... Deep Thought, 42, Marvin, Trillian, Babelfish... it has been so influential to the programmers' culture!&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-08T22:30:55.970" CommentCount="2" />
  <row Id="1452" PostTypeId="2" ParentId="272" CreationDate="2010-09-08T22:31:50.257" Score="1" ViewCount="" Body="&lt;p&gt;To non-technical people in non-professional settings I usually say&lt;br&gt;&#xA;I'm a professional geek.&lt;br&gt;&#xA;It gets a laugh and follow ups like: what does that mean?&lt;br&gt;&#xA;Works great with the girls too :))&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For non-technical professionals I say I'm a programmer or developer. I explain more if the person I talk to wants to know more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For IT professionals I say I'm a .NET and database developer and Microsoft MVP. Usually they know what that means :)&lt;/p&gt;&#xA;" OwnerUserId="319" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-27T15:14:04.447" LastActivityDate="2011-01-27T15:14:04.447" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="1453" PostTypeId="2" ParentId="1217" CreationDate="2010-09-08T22:33:19.493" Score="2" ViewCount="" Body="&lt;p&gt;Because compiler errors/exceptions require you to know what you're doing wrong to fix it. They're for programmers who overlook stuff, not for people who don't understand them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're also not always the most obvious. An error like &quot;unexpected if&quot; isn't that intuitive. &quot;But that if should be there&quot; is the response of a newbie. A more experienced programmer knows that that means he's forgotten the semicolon on the &lt;strong&gt;preceeding&lt;/strong&gt; line. &lt;/p&gt;&#xA;" OwnerUserId="230" LastActivityDate="2010-09-08T22:33:19.493" CommentCount="1" />
  <row Id="1454" PostTypeId="1" CreationDate="2010-09-08T22:33:50.833" Score="13" ViewCount="682" Body="&lt;p&gt;After using Things and TaskPaper, I've pretty much settled on OmniFocus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My criteria:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Cloud sync&lt;/li&gt;&#xA;&lt;li&gt;Nested projects&lt;/li&gt;&#xA;&lt;li&gt;Recurring tasks&lt;/li&gt;&#xA;&lt;li&gt;iPhone integration&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I still prefer the style of Things over OmniFocus, but it doesn't have #1 or #2. If it added those, I'd probably switch back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you use?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt;&lt;br&gt;&#xA;I don't have high enough reputation to post links(!) so copy and paste, y'all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things: culturedcode.com/things/&lt;br&gt;&#xA;TaskPaper: www.hogbaysoftware.com/products/taskpaper&lt;br&gt;&#xA;OmniFocus: www.omnigroup.com/products/omnifocus/&lt;/p&gt;&#xA;" OwnerUserId="265" LastActivityDate="2010-12-18T05:07:21.307" Title="What software do you use for task management?" Tags="&lt;iphone&gt;&lt;focus&gt;" AnswerCount="16" FavoriteCount="5" />
  <row Id="1455" PostTypeId="2" ParentId="1200" CreationDate="2010-09-08T22:34:18.883" Score="0" ViewCount="" Body="&lt;p&gt;I'd start with &lt;a href=&quot;http://www.ccs.neu.edu/home/matthias/BTLS/&quot; rel=&quot;nofollow&quot;&gt;http://www.ccs.neu.edu/home/matthias/BTLS/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Functional programming is more like pure math than OO programming.  If you think of it that way it may help.&lt;/p&gt;&#xA;" OwnerUserId="331" LastActivityDate="2010-09-08T22:34:18.883" CommentCount="1" />
  <row Id="1456" PostTypeId="2" ParentId="39" CreationDate="2010-09-08T22:34:43.247" Score="5" ViewCount="" Body="&lt;p&gt;&quot;It worked on MY computer!&quot;&#xA;    -anon&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Programs must be written for people to read, and only incidentally for machines to execute.&quot;&#xA;    - Abelson and Sussman, from &quot;The structure and interpretation of computer programs&quot;&lt;/p&gt;&#xA;" OwnerUserId="305" LastEditorUserId="305" LastEditorDisplayName="" LastEditDate="2010-09-09T12:22:16.300" LastActivityDate="2010-09-09T12:22:16.300" CommunityOwnedDate="2010-09-08T22:34:43.247" CommentCount="1" />
  <row Id="1458" PostTypeId="2" ParentId="1020" CreationDate="2010-09-08T22:35:09.360" Score="1" ViewCount="" Body="&lt;p&gt;It makes sense to do it while you're unemployed, both to keep your skills current and to have something for your resume.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those who are employed: to say you don't have time is such a cop-out.  BUT I've learned not to contribute my techie skills to non-profits by my and my husband's experiences.  We've both (through different organizations) offered our web development skills up and had it completely abused.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Multiple places act like they really want/need a web site or application and then never even bother to follow through.  Then the few that do are the most demanding clients you ever meet.  It's like, because your time is &quot;free&quot; to them, it becomes worth nothing.  A regular client who has to pay for your time will value it.  By that I mean they will try to be on-time, try to give you the information you need to do the work in a reasonable time frame and won't ask you to re-do work or change courses unless it is a very big deal.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I was making a website for a certain organization, my contact kept changing her mind about what she wanted and didn't care when I explained that we had already spent a great deal of time planning and implementing something one way.  She had a &quot;vision&quot; and was hell bent on carrying it out, regardless of how much of MY time it took up.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hate to go there, but oftentimes the people working at non-profits, either as volunteers or as paid people, are not the cream of the crop.  They are not the people who would ever be calling the shots in a real business but they rise to the top in a non-profit because there is such low pay and high turnover.  I would love to be able to contribute my more valuable techie skills (instead of just manual labor or even just money) but it ends up costing so much more by taking 5 times as long and being incredibly frustrating.&lt;/p&gt;&#xA;" OwnerUserId="311" LastActivityDate="2010-09-08T22:35:09.360" CommentCount="3" />
  <row Id="1460" PostTypeId="1" AcceptedAnswerId="1513" CreationDate="2010-09-08T22:36:40.187" Score="5" ViewCount="540" Body="&lt;p&gt;Would you accept a career advancement if that means no longer writing (or at least dealing with) code?&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-10-07T17:45:48.310" Title="Career vs Coding" Tags="&lt;career&gt;&lt;jobs&gt;" AnswerCount="11" CommentCount="8" FavoriteCount="2" />
  <row Id="1461" PostTypeId="2" ParentId="1454" CreationDate="2010-09-08T22:37:45.473" Score="0" ViewCount="" Body="&lt;p&gt;Toodledo is useful&lt;/p&gt;&#xA;" OwnerUserId="292" LastActivityDate="2010-09-08T22:37:45.473" />
  <row Id="1462" PostTypeId="7" CreationDate="2010-09-08T22:37:51.210" Score="0" ViewCount="0" Body="&lt;p&gt;Programmers - Stack Exchange is for expert programmers who are interested in subjective questions on software development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This can include topics such as:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Software engineering&lt;/li&gt;&#xA;&lt;li&gt;Developer testing&lt;/li&gt;&#xA;&lt;li&gt;Algorithm and data structure concepts&lt;/li&gt;&#xA;&lt;li&gt;Design patterns&lt;/li&gt;&#xA;&lt;li&gt;Architecture&lt;/li&gt;&#xA;&lt;li&gt;Development methodologies&lt;/li&gt;&#xA;&lt;li&gt;Quality assurance&lt;/li&gt;&#xA;&lt;li&gt;Software law&lt;/li&gt;&#xA;&lt;li&gt;Programming puzzles&lt;/li&gt;&#xA;&lt;li&gt;Freelancing and business concerns&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Subjective does not mean &amp;ldquo;anything goes&amp;rdquo;. &lt;strong&gt;Please keep it professional at all times&lt;/strong&gt;. If this is a question you'd be uncomfortable discussing with your colleagues in a work environment, it's probably not appropriate here, either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All subjective questions are expected to be &lt;em&gt;constructive&lt;/em&gt;. How do we define that?  Constructive subjective questions &amp;hellip;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;inspire answers that explain “why” and “how”.&lt;/li&gt;&#xA;&lt;li&gt;tend to have long, not short, answers.&lt;/li&gt;&#xA;&lt;li&gt;have a constructive, fair, and impartial tone.&lt;/li&gt;&#xA;&lt;li&gt;invite sharing experiences over opinions.&lt;/li&gt;&#xA;&lt;li&gt;insist that opinion be backed up with facts and references.&lt;/li&gt;&#xA;&lt;li&gt;are more than just mindless social fun.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Questions that do not meet enough of these six guidelines will be closed as &quot;not constructive.&quot; Please see the &lt;a href=&quot;http://blog.stackoverflow.com/2010/09/good-subjective-bad-subjective&quot; rel=&quot;nofollow&quot;&gt;Good Subjective, Bad Subjective&lt;/a&gt; blog post for more details and examples.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Can I ask career advice questions?&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Yes, within reason. Most career advice questions are specific to the poster's situation and &lt;a href=&quot;http://meta.programmers.stackexchange.com/questions/588/are-career-advice-questions-useful-to-anyone-except-the-poster/590#590&quot;&gt;run the risk of being closed&lt;/a&gt;. Try to generalize your situation into a &lt;a href=&quot;http://blog.stackoverflow.com/2010/09/good-subjective-bad-subjective/&quot; rel=&quot;nofollow&quot;&gt;good subjective&lt;/a&gt; question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please be aware that we will not delete your career advice question after you receive answers if you change your mind about having asked it. Think carefully before you post a question full of personal or otherwise sensitive information. If you don't want something to be publicly revealed, consider not posting it on StackExchange.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;What about other programming related questions?&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Please note that the following subjects are considered off-topic here:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What language should I learn next? (Unless you have a &lt;em&gt;specific&lt;/em&gt; requirement and don't know which language meets that requirement.)&lt;/li&gt;&#xA;&lt;li&gt;What salary/wage should I ask for/expect? (Too localized to your place and time)&lt;/li&gt;&#xA;&lt;li&gt;Which technology is better? (e.g Java/C#, Eclipse/Netbeans, iPhone/Android)&lt;/li&gt;&#xA;&lt;li&gt;Please critique my resum&amp;eacute;. (Unless you have a &lt;em&gt;specific&lt;/em&gt; question about a software development part of your resum&amp;eacute;. Questions about resum&amp;eacute; formatting and style are always off-topic.)&lt;/li&gt;&#xA;&lt;li&gt;If your question can also be applied to other jobs then it's not really something that uniquely applies to software development.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For more discussion on these subject see &lt;a href=&quot;http://meta.programmers.stackexchange.com/questions/817/should-our-faq-contain-a-list-of-whats-off-topic-and-if-so-what-should-that-list&quot;&gt;the question where these topics were discussed&lt;/a&gt; on our Meta site.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Can I use comments to discuss the topic of a post?&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Comments are useful for getting clarifications, but extended discussions detract from the question and its answers. If you'd like to discuss anything related to programming with other expert programmers, please use our &lt;a href=&quot;http://chat.stackexchange.com/rooms/21&quot;&gt;chat room&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="-1" LastEditorUserId="37" LastEditorDisplayName="" LastEditDate="2011-05-17T11:17:52.730" LastActivityDate="2011-05-17T11:17:52.730" />
  <row Id="1463" PostTypeId="2" ParentId="1202" CreationDate="2010-09-08T22:38:33.227" Score="12" ViewCount="" Body="&lt;h2&gt;Grace Hopper&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I think one for &quot;all times&quot; has to be Rear Admiral Grace Hopper.  Basically, she started what others have extended: language compilers, COBOL, debugging, and testing standards.&lt;/p&gt;&#xA;" LastEditorUserId="122" LastEditorDisplayName="" LastEditDate="2010-09-09T08:39:58.710" LastActivityDate="2010-09-09T08:39:58.710" CommunityOwnedDate="2010-09-08T22:38:33.227" CommentCount="1" />
  <row Id="1464" PostTypeId="2" ParentId="1321" CreationDate="2010-09-08T22:38:49.153" Score="5" ViewCount="" Body="&lt;p&gt;Programmers often like: unconventional clothing style (t-shirt with weird image / slogan, strange combination of items, or just anything drawing unusual attention) or low-maintenance clothing style (one person can do both, depending on the situation),  science fiction, cats, virtual reality, preferably in the form which is not yet widely accepted (programming blog, twitter, WoW are OK; Facebook quite less so, but it's tolerated as a means of communication with non-programming friends).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers often dislike: formal attire, soap operas, watching television as such, meetings in the middle of the day, and staying away from electronic devices for too long.&lt;/p&gt;&#xA;" OwnerUserId="262" LastActivityDate="2010-09-08T22:38:49.153" CommunityOwnedDate="2010-09-08T22:38:49.153" />
  <row Id="1465" PostTypeId="2" ParentId="272" CreationDate="2010-09-08T22:38:59.230" Score="2" ViewCount="" Body="&lt;p&gt;Sometime I tell people who are not that okay with computing at all, that I'm a chicken sexer. It's easier explaining that than explaining what I really do.&lt;/p&gt;&#xA;" OwnerUserId="225" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-27T15:15:55.990" LastActivityDate="2011-01-27T15:15:55.990" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="1466" PostTypeId="2" ParentId="848" CreationDate="2010-09-08T22:40:01.413" Score="0" ViewCount="" Body="&lt;p&gt;At the University of Texas, the BS in CS required a couple more programming classes (I think) and a few more science classes (like 'Engineering Physics').  The BA required a few more fine arts/philosophy/etc credits.  I have a BS, which is probably the standard, and my husband has a BA because he already had more arts credits and wanted to graduate sooner.  Our classes were 95% the same and I consider the education/skill level to be the same - at least from that school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think he's ever been asked about it and neither have I.  Once you have a first job out of school, school usually doesn't even come up at all.  Occasionally someone will ask about your GPA for later jobs but it usually just asked by someone who got a good GPA themselves and likes to be snooty.  Pick whichever one makes the most sense for you and don't worry about it.&lt;/p&gt;&#xA;" OwnerUserId="311" LastActivityDate="2010-09-08T22:40:01.413" />
  <row Id="1467" PostTypeId="2" ParentId="1454" CreationDate="2010-09-08T22:41:23.487" Score="0" ViewCount="" Body="&lt;p&gt;I've used org-mode for a year or more but I've gone back to OmniFocus for the same reasons.  I needed something that would sync with my iPhone and iPad.  I'm not too concerned about cloud sync right now but I do know it's coming soon in Things.app.  What I really like about OF is the iPad app's review views.  I've been using OF on my iPad sitting on a 12south compass next to my monitor on my desk.  It's a nice way to keep my list in the forefront.I&lt;/p&gt;&#xA;" LastActivityDate="2010-09-08T22:41:23.487" CommentCount="1" />
  <row Id="1468" PostTypeId="2" ParentId="1460" CreationDate="2010-09-08T22:41:26.077" Score="3" ViewCount="" Body="&lt;p&gt;Not now no.  But in 20 years maybe....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I am saying is I can see (and do see) people in the latter end of their career take this option.  I think some programmers hit a point where they don't want to have to keep up on the latest advances in development like they have early in their career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And while I love doing it now, I could see me burning out and wanting to move to a non-coding position (like management) towards the end of my Career.&lt;/p&gt;&#xA;" OwnerUserId="71" LastActivityDate="2010-09-08T22:41:26.077" />
  <row Id="1469" PostTypeId="2" ParentId="1460" CreationDate="2010-09-08T22:42:13.297" Score="1" ViewCount="" Body="&lt;p&gt;Right now? Not at all. I love being part of the team, writing code and working on designs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I'm young and have no real responsibilities. My opinion would change if I did.&lt;/p&gt;&#xA;" OwnerUserId="292" LastActivityDate="2010-09-08T22:42:13.297" />
  <row Id="1470" PostTypeId="2" ParentId="1454" CreationDate="2010-09-08T22:44:03.217" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rememberthemilk.com&quot; rel=&quot;nofollow&quot;&gt;rememberthemilk.com&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="347" LastActivityDate="2010-09-08T22:44:03.217" CommentCount="1" />
  <row Id="1471" PostTypeId="2" ParentId="966" CreationDate="2010-09-08T22:44:44.160" Score="3" ViewCount="" Body="&lt;p&gt;&quot;How to solve it&quot; by George Pólya. While targeted for mathematics, the problem solving strategies can readily be applied to programming.&lt;/p&gt;&#xA;" OwnerUserId="305" LastActivityDate="2010-09-08T22:44:44.160" CommunityOwnedDate="2011-01-06T15:42:27.030" />
  <row Id="1472" PostTypeId="2" ParentId="1323" CreationDate="2010-09-08T22:45:20.717" Score="0" ViewCount="" Body="&lt;p&gt;Coding Standard discussions come down to this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Yes you need them, consistency and clean code is a cornerstone of good development.&lt;/li&gt;&#xA;&lt;li&gt;What they are &lt;em&gt;almost&lt;/em&gt; doesn't matter, so long as everyone follows the same standards.&lt;/li&gt;&#xA;&lt;li&gt;Don't write your own, you're end up in an endless and painful discussion.  There are plenty out there that are popular.&lt;/li&gt;&#xA;&lt;li&gt;Using public standards (like those on &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms229042.aspx&quot; rel=&quot;nofollow&quot;&gt;MSDN&lt;/a&gt;) gives you an agnostic 3rd party that can't be argued with.  If you want to argue with them, refer to point 2.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you're developing in C# in Visual Studio, then &lt;a href=&quot;http://stylecop.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;StyleCop&lt;/a&gt; is a silver bullet.  If you're also using ReSharper, then the &lt;a href=&quot;http://stylecopforresharper.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;StyleCop for ReSharper&lt;/a&gt; plugin is just awesome.&lt;/p&gt;&#xA;" OwnerUserId="316" LastActivityDate="2010-09-08T22:45:20.717" />
  <row Id="1473" PostTypeId="2" ParentId="1460" CreationDate="2010-09-08T22:46:16.563" Score="1" ViewCount="" Body="&lt;p&gt;Perhaps. In fact, that might be better as well. Coding as a hobby may be more satisfying than doing it as a duty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But on the other hand, coding takes time. You cannot get satisfied if you don't have much spare time because you have other responsibilities, like being a father.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's best to do the stuff you love.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep coding. :)&lt;/p&gt;&#xA;" OwnerUserId="210" LastActivityDate="2010-09-08T22:46:16.563" />
  <row Id="1474" PostTypeId="1" CreationDate="2010-09-08T22:47:42.613" Score="6" ViewCount="290" Body="&lt;p&gt;I've read &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0932633439&quot; rel=&quot;nofollow&quot;&gt;Peopleware&lt;/a&gt; in 2009. It was one of the best book I ever read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But this book is a little old. I'd like to know, in your opinion, what is and what is not relevant in this book?&lt;/p&gt;&#xA;" OwnerUserId="196" LastEditorUserId="14221" LastEditorDisplayName="" LastEditDate="2011-02-03T23:44:35.093" LastActivityDate="2011-02-03T23:44:35.093" Title="About the book &quot;Peopleware - Productive Projects and Teams&quot;" Tags="&lt;career&gt;&lt;project-management&gt;&lt;books&gt;&lt;peopleware&gt;" AnswerCount="2" FavoriteCount="2" />
  <row Id="1475" PostTypeId="2" ParentId="1454" CreationDate="2010-09-08T22:49:24.280" Score="7" ViewCount="" Body="&lt;p&gt;Google.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Between Google Docs, Google Calendar, GMail and Tasks, Google Bookmarks, Google Reader, and Google Voice, I can pretty much manage, organize, and search everything. For mobile task management, I sync my calendars to my Android phone and use GTasks to synchronize my task lists.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-08T22:49:24.280" CommentCount="1" />
  <row Id="1476" PostTypeId="2" ParentId="670" CreationDate="2010-09-08T22:49:55.620" Score="3" ViewCount="" Body="&lt;p&gt;Seeing what others are working on and how they do it is real motivation. I'm a member of TekPub and Think Vitamin Membership. Both are excellent resources. There are also other great sites like Peepcode. &lt;/p&gt;&#xA;" OwnerUserId="292" LastActivityDate="2010-09-08T22:49:55.620" />
  <row Id="1477" PostTypeId="2" ParentId="1180" CreationDate="2010-09-08T22:50:21.033" Score="14" ViewCount="" Body="&lt;p&gt;I'm familiar with both, but did a lot of my early programming work in VB4, VB5, and VB6. Now that both languages in .NET have gone through a few iterations and converged quite a bit in their capabilities I think the debate is downright silly, much akin to &quot;what's your favorite color.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I like both of them for different reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;VB.NET&lt;/strong&gt;&lt;br&gt;&#xA;A lot of people talk about how the C# syntax is more intuitive, but that is very subjective and based heavily on what you started out knowing. I would argue that if you were completely objective VB.NET syntax is probably more intuitive if you don't assume prior knowledge in another language. For example, given the same program in C# and VB.NET which do you think would be more decipherable to someone who has no knowledge of programming. Seems pretty clear to me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing that is nice about this syntax, is that is is much more explicit about closing structures (END IF, END WHILE, NEXT X) compared to the bracketing model. It makes the code a bit more readable and often allows the compiler to be more precise in what line number exactly is causing compile errors. If you've ever gone on a missing bracket/semi-colon hunt because of a compiler error 50 lines away from the problem you know what I mean.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, in the VB.NET win column in my opinion is lack of ==/= as comparison/assignment operators. The rare benefits of having a distinct operator for each is never going to offset all the (sometimes) hard to discover foibles that it helps create.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, I hate case sensitivity in programing languages. One of the complaints about VB is that it has so much baggage, but C# carried forward the albatross of C's case sensitivity. I have never been in a situation where I wanted two identifiers in the same scope to differ only by case. It just makes for busy work and slows me down. VB.NET gets some points over C# in this regard to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;C#&lt;/strong&gt;&lt;br&gt;&#xA;Programmers love to be concise, which is why I think they generally favor this syntax. It just has a certain aesthetic appeal. However, from a completely practical perspective I like it because it is so similar to languages like Java, JavaScript, and C++. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since I do a lot of web development that requires both server and client side programming, I find it easier to mentally switch between C# and JavaScript as I am frequently required to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also I like the fact that, for the most part, that if I ever had to transition to doing Java or C++ programming, I would have a bit of a head start if I were using C# most of the time.&lt;/p&gt;&#xA;" OwnerUserId="287" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2011-01-14T16:28:26.480" LastActivityDate="2011-01-14T16:28:26.480" CommentCount="1" />
  <row Id="1478" PostTypeId="2" ParentId="272" CreationDate="2010-09-08T22:50:44.653" Score="0" ViewCount="" Body="&lt;p&gt;Generally I say &quot;Whatever is below a slave, because slaves can be sold.&quot;&lt;/p&gt;&#xA;" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2011-06-04T02:13:18.820" LastActivityDate="2011-06-04T02:13:18.820" CommunityOwnedDate="2010-12-26T17:01:49.080" CommentCount="1" />
  <row Id="1479" PostTypeId="2" ParentId="275" CreationDate="2010-09-08T22:51:07.757" Score="0" ViewCount="" Body="&lt;p&gt;Back when I was in single-digits, my parents bought a microcomputer: the Amstrad C6128. It had BASIC (AMSBASIC), it had games, it even had a colour monitor, a mouse and a disk drive. Hot stuff for the 80s. So I learned some BASIC on it. And I fiddled around with the OS and with CP/M which came with it. Then somehow I got a BBC Micro B, which you could programme with BBC BASIC. It came with a manual and everything - and you could do some quite cool stuff like 2D graphics and sprites and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually, I got a PC with Windows on it and learned QBASIC in DOS using EDIT. At school, I learned LOGO when I was about nine. I was once given a &quot;Learn C++&quot; CD-ROM but I didn't actually have a compiler!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a teenager, I messed around with HTML a lot, and someone gave me an old or dodgy copy of Visual Basic 5, so I built some throwaway Windows apps with that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had a few years off, then eventually I bought a Mac (this was back in the days of OS 9 and one of the early revs of the iMac - 350MHz), then learned PHP and built stuff with MySQL. I got tired of that eventually and tried Python. I tried Ruby and liked it a lot, so learned it quite thoroughly. I then proceeded to learn a whole bunch of things: XSLT, Java, Scala, JavaScript. Now I mostly do Ruby and Java/Scala. And I've got so much more I want to learn...&lt;/p&gt;&#xA;" OwnerUserId="258" LastActivityDate="2010-09-08T22:51:07.757" CommunityOwnedDate="2011-02-13T14:40:48.817" />
  <row Id="1480" PostTypeId="2" ParentId="1403" CreationDate="2010-09-08T22:52:43.883" Score="3" ViewCount="" Body="&lt;p&gt;Personally, I just can't work from home. I always end up doing things around the house instead of getting work done. There are just way too many distractions. Plus, I like the ability to ask questions of coworkers who are working on related components face-to-face whenever I can, and if people are working remotely, that's difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, all of my jobs have been in the defense industry where I can't bring much (if any) of my work home. So I haven't run into this problem at work, but when I'm at school, I try to work as much as I can in the team rooms, labs, or lobbies. I can get a lot more done.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-08T22:52:43.883" CommentCount="1" />
  <row Id="1481" PostTypeId="2" ParentId="1454" CreationDate="2010-09-08T22:53:48.233" Score="4" ViewCount="" Body="&lt;p&gt;I pretty much exclusively use an on demand instance of &lt;a href=&quot;http://www.fogcreek.com/FogBugz/&quot; rel=&quot;nofollow&quot;&gt;FogBugz&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-08T22:53:48.233" CommentCount="1" />
  <row Id="1482" PostTypeId="1" CreationDate="2010-09-08T22:54:59.713" Score="17" ViewCount="535" Body="&lt;p&gt;Several famous from the top of my head:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;creat(2)&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Java &lt;code&gt;Cloneable&lt;/code&gt; interface&lt;/li&gt;&#xA;&lt;li&gt;HTTP &lt;code&gt;referer&lt;/code&gt; header&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;What typos/misspellings did you run in your code or third party API?&lt;/p&gt;&#xA;" OwnerUserId="343" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T11:40:34.890" LastActivityDate="2011-02-01T22:38:41.133" CommunityOwnedDate="2011-02-01T20:08:55.700" Title="Misspellings in the code" Tags="&lt;coding&gt;&lt;typos&gt;" AnswerCount="19" CommentCount="3" FavoriteCount="1" />
  <row Id="1483" PostTypeId="1" CreationDate="2010-09-08T22:55:59.167" Score="66" ViewCount="33018" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;With over 100 answers to this question it's highly likely that &lt;em&gt;your&lt;/em&gt; answer has already been posted. Please don't post an answer unless you have something new to say&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've heard it said (by coworkers) that everyone &quot;codes in English&quot; regardless of where they're from. I find that difficult to believe, however I wouldn't be surprised if, for most programming languages, the supported character set is relatively narrow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Have you ever worked in a country where English is not the primary language?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;If so, what did their code look like?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: Code samples would be great, by the way...&lt;/p&gt;&#xA;" OwnerUserId="91" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-02-05T21:15:39.977" LastActivityDate="2011-02-11T11:41:27.117" CommunityOwnedDate="2010-09-09T11:39:51.480" Title="Do people in non-English-speaking countries code in English?" Tags="&lt;programming-languages&gt;&lt;spoken-languages&gt;&lt;international&gt;" AnswerCount="111" CommentCount="8" FavoriteCount="19" />
  <row Id="1484" PostTypeId="2" ParentId="1271" CreationDate="2010-09-08T22:56:53.703" Score="24" ViewCount="" Body="&lt;p&gt;Emacs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Really, there is no one perfect editor for everybody. I prefer Emacs because I don't just want an editor. If I just wanted a small, lightweight editor, I'd use Vim.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you like Emacs, it's still a good idea to get familiar with Vim, even if only a little. Emacs is rarely installed on anything by default.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are going to insult Emacs because of it's size and everything it tries to do, you should probably take into account that Emacs isn't mean't to be just a text editor. There is a reason it's so highly extensible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Emacs is just a text editor in the same way that a modern cell phone is just for making phone calls. If you just want to make calls, you can buy a cheap phone or get service at your home. If you want more than that, you'll probably buy a higher priced phone with &quot;everything and the kitchen sink&quot; stuffed in. The point is that you aren't likely to hate high end cell phones simply because you only want to make a phone call.&lt;/p&gt;&#xA;" OwnerUserId="354" LastActivityDate="2010-09-08T22:56:53.703" CommunityOwnedDate="2011-04-12T23:03:04.020" CommentCount="5" />
  <row Id="1485" PostTypeId="2" ParentId="1454" CreationDate="2010-09-08T22:57:54.997" Score="0" ViewCount="" Body="&lt;p&gt;I use Things. It is quite expensive, and doesn't do #1 or #2 from your list, as you say. But I don't really need #1 or #2 (plus, I expect they'll fix #1 eventually).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(It is also very pretty on the iPad! Heh.)&lt;/p&gt;&#xA;" OwnerUserId="258" LastActivityDate="2010-09-08T22:57:54.997" />
  <row Id="1487" PostTypeId="2" ParentId="552" CreationDate="2010-09-08T22:58:11.830" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.stevemcconnell.com/&quot; rel=&quot;nofollow&quot;&gt;Steve McConnell&lt;/a&gt; - I thought I understood programming until I started reading his books about 3 years into my career. Perhaps his work was derivative of Brooks and some others mentioned here, but he is just so good at explaining things in an approachable way that makes sense.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-08T22:58:11.830" CommunityOwnedDate="2010-09-17T19:05:49.223" />
  <row Id="1488" PostTypeId="2" ParentId="331" CreationDate="2010-09-08T22:58:21.433" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.levien.com/type/myfonts/inconsolata.html&quot; rel=&quot;nofollow&quot; title=&quot;Inconsolata&quot;&gt;Inconsolata&lt;/a&gt; is a great monospaced font, and it is free.&lt;/p&gt;&#xA;" OwnerUserId="305" LastActivityDate="2010-09-08T22:58:21.433" CommunityOwnedDate="2010-09-08T22:58:21.433" />
  <row Id="1489" PostTypeId="2" ParentId="1483" CreationDate="2010-09-08T22:59:55.073" Score="5" ViewCount="" Body="&lt;p&gt;I'm from &lt;a href=&quot;http://en.wikipedia.org/wiki/Slovenia&quot; rel=&quot;nofollow&quot;&gt;Slovenia&lt;/a&gt; and I code strictly in English. I have seen different programs coded in Slovenian because the client demanded so. Apparently it's easier to read the code like that.&lt;br&gt;&#xA;So yes, people don't only code in english.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And i'm talking about the code itself, not software localization.&lt;/p&gt;&#xA;" OwnerUserId="319" LastActivityDate="2010-09-08T22:59:55.073" CommunityOwnedDate="2010-09-09T11:39:51.480" CommentCount="1" />
  <row Id="1491" PostTypeId="2" ParentId="1483" CreationDate="2010-09-08T23:01:26.443" Score="5" ViewCount="" Body="&lt;p&gt;I'm from Italy but I'm not sure what you're asking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're talking about naming objects, yes, we do that in English. Usually students name their objects in Italian for learning purposes. But personally I find it difficult and prefer to use English, since some technical terms are extremely awful in Italian.&lt;/p&gt;&#xA;" OwnerUserId="87" LastEditorUserId="112" LastEditorDisplayName="" LastEditDate="2010-09-09T13:18:08.943" LastActivityDate="2010-09-09T13:18:08.943" CommunityOwnedDate="2010-09-09T11:39:51.480" />
  <row Id="1493" PostTypeId="2" ParentId="331" CreationDate="2010-09-08T23:02:18.593" Score="1" ViewCount="" Body="&lt;p&gt;I'm partial to &lt;a href=&quot;http://en.wikipedia.org/wiki/Tahoma_%28typeface%29&quot; rel=&quot;nofollow&quot;&gt;Tahoma&lt;/a&gt;. It's nice and compact, and easy on the eyes.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-08T23:02:18.593" CommunityOwnedDate="2010-09-08T23:02:18.593" />
  <row Id="1494" PostTypeId="2" ParentId="1407" CreationDate="2010-09-08T23:02:40.290" Score="1" ViewCount="" Body="&lt;p&gt;I use Chrome as my primary browser and especially when doing web development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, conkeror for Emacs users and FF with Vimperator for Vim users.&lt;/p&gt;&#xA;" OwnerUserId="354" LastActivityDate="2010-09-08T23:02:40.290" />
  <row Id="1495" PostTypeId="2" ParentId="1482" CreationDate="2010-09-08T23:03:41.757" Score="7" ViewCount="" Body="&lt;p&gt;I always misspell height/heigth and length/lenght... th or ht?&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-08T23:03:41.757" CommunityOwnedDate="2011-02-01T20:08:55.700" CommentCount="3" />
  <row Id="1496" PostTypeId="2" ParentId="1454" CreationDate="2010-09-08T23:04:42.110" Score="3" ViewCount="" Body="&lt;p&gt;I keep a collection of text files which I edit with vim, and cloud sync via DropBox and Notational Velocity to SimpleNote on the iPhone.&lt;/p&gt;&#xA;" OwnerUserId="305" LastActivityDate="2010-09-08T23:04:42.110" CommentCount="3" />
  <row Id="1497" PostTypeId="2" ParentId="1482" CreationDate="2010-09-08T23:04:55.107" Score="6" ViewCount="" Body="&lt;p&gt;What about the Commodore &lt;strong&gt;kernal&lt;/strong&gt;? (instead of kernel - see the &lt;a href=&quot;http://en.wikipedia.org/wiki/KERNAL&quot; rel=&quot;nofollow&quot;&gt;Wikipedia article&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-08T23:04:55.107" CommunityOwnedDate="2011-02-01T20:08:55.700" />
  <row Id="1498" PostTypeId="2" ParentId="1338" CreationDate="2010-09-08T23:04:55.437" Score="65" ViewCount="" Body="&lt;p&gt;In one job we were forced to use some weird form of Hungarian notation in the database.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't remember the details, but from memory, each field name had to contain:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;No vowels&lt;/li&gt;&#xA;&lt;li&gt;All uppercase letters&lt;/li&gt;&#xA;&lt;li&gt;A reference to the table&lt;/li&gt;&#xA;&lt;li&gt;A data type indicator&lt;/li&gt;&#xA;&lt;li&gt;A data length&lt;/li&gt;&#xA;&lt;li&gt;A nullable indicator&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For example, the column holding a person's first name might be called: &lt;code&gt;PRSNFRSTNMVC30X&lt;/code&gt; (Person table, First Name column, Varchar 30 characters, Not Null)&lt;/p&gt;&#xA;" OwnerUserId="91" LastActivityDate="2010-09-08T23:04:55.437" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="17" />
  <row Id="1499" PostTypeId="2" ParentId="1482" CreationDate="2010-09-08T23:05:12.920" Score="8" ViewCount="" Body="&lt;p&gt;i often type pubic instead of public. luckily it doesn't compile :))&lt;/p&gt;&#xA;" OwnerUserId="319" LastActivityDate="2010-09-08T23:05:12.920" CommunityOwnedDate="2011-02-01T20:08:55.700" CommentCount="7" />
  <row Id="1500" PostTypeId="2" ParentId="1482" CreationDate="2010-09-08T23:05:57.100" Score="8" ViewCount="" Body="&lt;p&gt;The &lt;code&gt;umount(8)&lt;/code&gt; UNIX command made me lose some sleep.&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-09-08T23:05:57.100" CommunityOwnedDate="2011-02-01T20:08:55.700" />
  <row Id="1502" PostTypeId="2" ParentId="282" CreationDate="2010-09-08T23:08:54.413" Score="2" ViewCount="" Body="&lt;p&gt;I enjoy &lt;a href=&quot;http://www.talkingshopdownunder.com/&quot; rel=&quot;nofollow&quot;&gt;Talking Shop Down Under&lt;/a&gt;.  It mainly caters to Aussie developers and what is happening downunder but well worth the listen.&lt;/p&gt;&#xA;" OwnerUserId="371" LastActivityDate="2010-09-08T23:08:54.413" CommunityOwnedDate="2010-12-21T06:02:41.540" />
  <row Id="1503" PostTypeId="2" ParentId="1483" CreationDate="2010-09-08T23:09:14.330" Score="5" ViewCount="" Body="&lt;p&gt;I have never seen anyone uses non English names in code here in Israel, but my experience is limited to University projects. At any rate, I personally only code in English, and I actually also type all my emails and homework assignment in English. This is mainly because Hebrew is written right to left, and it can be very annoying incorporating English terms into the text. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-08T23:09:14.330" CommunityOwnedDate="2010-09-09T11:39:51.480" CommentCount="3" />
  <row Id="1504" PostTypeId="2" ParentId="826" CreationDate="2010-09-08T23:09:54.613" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;FileMerge.app&lt;/strong&gt;: It comes with the Apple Xcode Developer Tools but can be invoked from the command line. It gives you a lovely way to view diffs and merge them together. Google filemerge and the name of your revision control system and/or text editor and you'll be much happier.&lt;/p&gt;&#xA;" OwnerUserId="258" LastActivityDate="2010-09-08T23:09:54.613" />
  <row Id="1505" PostTypeId="2" ParentId="1483" CreationDate="2010-09-08T23:10:05.643" Score="33" ViewCount="" Body="&lt;p&gt;I'm Italian and always use English, for names and comments. But many other Italian programmers use Italian language, or more often a strange English-Italian mix (something like &lt;code&gt;IsUtenteCopy&lt;/code&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A real life code sample:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// Trovo la foto collegata al verbale&#xA;tblVerbali rsVerbale;&#xA;hr = rsVerbale.OpenByID(GetDBConn(), m_idVerbale);&#xA;if( FAILED(hr) )&#xA;    throw CErrorHR(hr);&#xA;hr = rsVerbale.MoveFirst();&#xA;if( S_OK != hr )&#xA;    throw CError(_T(&quot;Record del verbale non trovato.&quot;));&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;By the way, the Visual Studio MFC wizard creates a scheletorn application with localized comments:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;BOOL CMainFrame::PreCreateWindow(CREATESTRUCT&amp;amp; cs)&#xA;{&#xA;    if( !CMDIFrameWndEx::PreCreateWindow(cs) )&#xA;        return FALSE;&#xA;    // TODO: modificare la classe o gli stili Window modificando &#xA;    //  la struttura CREATESTRUCT&#xA;&#xA;    return TRUE;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="11" LastEditorUserId="235" LastEditorDisplayName="" LastEditDate="2010-09-20T22:00:04.113" LastActivityDate="2010-09-20T22:00:04.113" CommunityOwnedDate="2010-09-09T11:39:51.480" CommentCount="12" />
  <row Id="1506" PostTypeId="2" ParentId="331" CreationDate="2010-09-08T23:11:43.847" Score="0" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.wazu.jp/gallery/views/View_osakaunicode.html&quot; rel=&quot;nofollow&quot;&gt;osaka_unicode&lt;/a&gt;. Might sound a strange choice, but I needed a decent monospaced font for Japanese string literals and comments, and I've just stuck with it since.&lt;/p&gt;&#xA;" OwnerUserId="356" LastActivityDate="2010-09-08T23:11:43.847" CommunityOwnedDate="2010-09-08T23:11:43.847" />
  <row Id="1507" PostTypeId="2" ParentId="1483" CreationDate="2010-09-08T23:12:42.060" Score="27" ViewCount="" Body="&lt;p&gt;I'm from Egypt. I think we switch to English by default when we talk, or even think about code.. Also, most of the learning resources, including regular ones like books, etc.. &amp;amp; even blogs, podcasts, etc are in English.. switching to your mother tongue means turning your back to lots of great resources&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess this post might get you my point, via Jeff Atwood:&#xA;&lt;a href=&quot;http://www.codinghorror.com/blog/2009/03/the-ugly-american-programmer.html&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/2009/03/the-ugly-american-programmer.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="212" LastActivityDate="2010-09-08T23:12:42.060" CommunityOwnedDate="2010-09-09T11:39:51.480" CommentCount="2" />
  <row Id="1508" PostTypeId="2" ParentId="282" CreationDate="2010-09-08T23:13:06.883" Score="13" ViewCount="" Body="&lt;p&gt;I highly recommend &lt;a href=&quot;http://www.ted.com/&quot; rel=&quot;nofollow&quot;&gt;TED&lt;/a&gt; talks.&lt;/p&gt;&#xA;" OwnerUserId="378" LastActivityDate="2010-09-08T23:13:06.883" CommunityOwnedDate="2010-12-21T06:02:41.540" CommentCount="5" />
  <row Id="1509" PostTypeId="2" ParentId="1341" CreationDate="2010-09-08T23:14:19.083" Score="0" ViewCount="" Body="&lt;p&gt;I use Safari and/or Chrome (on the Mac). Why? Firebug is lovely, but I use Firefox as my main browser and I've got a bunch of quite bizarre extensions set up on there. I mean, bizarre to the point where other programmers say &quot;what the hell?&quot; when they look at my screen. This is not a good testing environment, but it is perfect for me. When I'm testing front-end code, I need to be using a normal browser without all my weird extensions. Safari or Chrome fit perfectly. Once I'm done with development, I'll boot up a clean Windows VM with Internet Explorer and Firefox in it to do final testing, and use a clean account on the Mac for testing in all the browsers on there.&lt;/p&gt;&#xA;" OwnerUserId="258" LastActivityDate="2010-09-08T23:14:19.083" />
  <row Id="1510" PostTypeId="2" ParentId="539" CreationDate="2010-09-08T23:14:33.563" Score="0" ViewCount="" Body="&lt;p&gt;I generally use &lt;a href=&quot;http://slinky.imukuppi.org/zenburnpage/&quot; rel=&quot;nofollow&quot; title=&quot;Zenburn&quot;&gt;zenburn&lt;/a&gt; or some variety thereof. It is easy on the eyes for long sessions.&lt;/p&gt;&#xA;" OwnerUserId="305" LastActivityDate="2010-09-08T23:14:33.563" CommunityOwnedDate="2010-09-16T13:10:40.707" CommentCount="1" />
  <row Id="1511" PostTypeId="2" ParentId="1482" CreationDate="2010-09-08T23:15:42.057" Score="3" ViewCount="" Body="&lt;p&gt;Ever since I started touch typing I began to experience race conditions between my left and right hand. This is the most common one: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;th eword&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&quot;word&quot; being whatever it is that follows &quot;the&quot;. Naturally this only shows in comments so I don't know if this counts. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-08T23:15:42.057" CommunityOwnedDate="2011-02-01T20:08:55.700" />
  <row Id="1512" PostTypeId="2" ParentId="57" CreationDate="2010-09-08T23:17:44.300" Score="6" ViewCount="" Body="&lt;p&gt;Tabs for the win.&lt;/p&gt;&#xA;" OwnerUserId="383" LastActivityDate="2010-09-08T23:17:44.300" />
  <row Id="1513" PostTypeId="2" ParentId="1460" CreationDate="2010-09-08T23:18:11.840" Score="22" ViewCount="" Body="&lt;p&gt;20 years ago, I was thinking: &quot;Not now, maybe in 20 years&quot;. Now I am thinking: &quot;Not now, maybe in 20 years&quot;&lt;/p&gt;&#xA;" OwnerUserId="305" LastActivityDate="2010-09-08T23:18:11.840" CommentCount="1" />
  <row Id="1514" PostTypeId="2" ParentId="1371" CreationDate="2010-09-08T23:18:34.953" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Developers Running Wild on the Range&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This has happened when you realise that other developers (or, unfortunately, you) have developed a component that varies significantly from the design, and that this isn't picked up up until well into system/UAT testing.  I'm not talking bugs; I'm talking about significant system components are missing features or have unasked for functionality and  are never going to pass UAT without significant rework.  This issue indicates that:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Your quality system is broken; why didn't the developer concerned pick up on the issue in the design/implementation phase.  Wasn't the code per reviewed/inspected? Why did the unit and integration tests not pick up on this?  If you don't have some sort of consistent unit/integration testing in place, you're screwed.&lt;/li&gt;&#xA;&lt;li&gt;Your project manager/technical lead aren't in control of their development team. If they can't get the developers to deliver what is required, they will never be able to deliver a complete solution.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="376" LastEditorUserId="376" LastEditorDisplayName="" LastEditDate="2010-12-29T08:22:07.713" LastActivityDate="2010-12-29T08:22:07.713" CommunityOwnedDate="2011-01-23T19:41:07.757" />
  <row Id="1515" PostTypeId="2" ParentId="39" CreationDate="2010-09-08T23:19:11.617" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;The required techniques of effective reasoning are pretty formal, but as long as programming is done by people that don't master them, the software crisis will remain with us and will be considered an incurable disease. And you know what incurable diseases do: they invite the quacks and charlatans in, who in this case take the form of Software Engineering gurus.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- Dijkstra&lt;/p&gt;&#xA;" LastActivityDate="2010-09-08T23:19:11.617" CommunityOwnedDate="2010-09-08T23:19:11.617" CommentCount="1" />
  <row Id="1516" PostTypeId="1" CreationDate="2010-09-08T23:20:31.633" Score="6" ViewCount="310" Body="&lt;p&gt;A few years ago I considered myself somewhat of a web developer, knowing the basic 3 languages (HTML, CSS, JS) and lots of PHP. Moving on from simple text to actual websites was a pain because of the so called &quot;standards&quot; out there, which at the time were ridiculously complicated for me. It pretty much boiled down to this (minus the IE related stuff):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/aVD7a.gif&quot; alt=&quot;Web development in a pie chart&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Standards are there to replace old ways of doing things in a simpler way. However when trying to actually implement some of the stuff (Entirely CSS based layout for example), it took me 10x longer to actually do it then if I did the simpler and still working solution. If it rendered the same, then why should I use the more complicated example that takes 10x longer and breaks once you change browsers? This sparked many long religious debates in ##php, ##css, and ##js in Freenode IRC and actually got me banned from ##css because I messed with their little world over there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question: Should I follow every single standard and coding conventions even if they take me 10x longer but get me the same result as the simple one?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;For the poll tag, those of you who have websites of any size (huge or small), do &lt;strong&gt;you&lt;/strong&gt; follow all the standards? &lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:18:22.177" LastActivityDate="2010-12-04T11:19:36.370" Title="Should I strictly follow every single HTML and CSS Standard?" Tags="&lt;coding-standards&gt;&lt;html&gt;&lt;css&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="2" />
  <row Id="1517" PostTypeId="2" ParentId="272" CreationDate="2010-09-08T23:22:10.113" Score="11" ViewCount="" Body="&lt;p&gt;I used to use the standard boring answer, &quot;programmer&quot; or &quot;coder&quot; or the like.  I switched sometime in the last year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Now, I tell people that I am a writer&lt;/strong&gt; for a small local company.  When they ask what I write, I tell them I write software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most people don't understand the process of software development. In a small company, we generally end up hitting the whole spectrum of software creation, and I think that &quot;writing&quot; is the best description for how we create usable software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the case where I know I'm talking to a geeky person, I just tell them that I &quot;write software&quot;.&lt;/p&gt;&#xA;" OwnerUserId="381" LastActivityDate="2010-09-08T23:22:10.113" CommunityOwnedDate="2010-12-26T17:01:49.080" CommentCount="1" />
  <row Id="1518" PostTypeId="2" ParentId="1516" CreationDate="2010-09-08T23:27:01.943" Score="4" ViewCount="" Body="&lt;p&gt;Laziness is not an excuse for not following the standard. Sometimes, if the standard is stupid, that is a reason not to follow it. How do you know when the standard is stupid? When you have been making a good faith effort over an extended period to follow all the relevant standards in letter and in spirit and you've come to a reasonable and well-supported conclusion that the standard in some niche case is actually at fault, not you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the time, this will not be applicable though.&lt;/p&gt;&#xA;" OwnerUserId="258" LastActivityDate="2010-09-08T23:27:01.943" />
  <row Id="1519" PostTypeId="2" ParentId="501" CreationDate="2010-09-08T23:27:19.523" Score="16" ViewCount="" Body="&lt;h2&gt;Python&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;self&lt;/code&gt; parameter in instance method definitions&lt;/p&gt;&#xA;" OwnerUserId="280" LastEditorUserId="280" LastEditorDisplayName="" LastEditDate="2010-09-09T07:41:44.107" LastActivityDate="2010-09-09T07:41:44.107" CommunityOwnedDate="2010-09-08T23:27:19.523" CommentCount="6" />
  <row Id="1520" PostTypeId="2" ParentId="886" CreationDate="2010-09-08T23:28:08.550" Score="7" ViewCount="" Body="&lt;p&gt;I've come to the conclusion that it's not so much that there is a specific hobby that's popular with programmers. It's that &lt;em&gt;having hobbies&lt;/em&gt; is popular with programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look over the answers here. Many of them say something like &quot;I was surprised by how many programmers there were doing X&quot; where X is everything from Karate to Skydiving. I saw this myself many times - between Rollerblading groups, bicycling (and unicycling) groups, and many other groups.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure what the reason is. I think it's a combination of these:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Programmers tend to feel the need to do &quot;something more&quot; at the end of the day.&lt;/li&gt;&#xA;&lt;li&gt;Programmers tend to be active and inquisitive, and enjoy learning.&lt;/li&gt;&#xA;&lt;li&gt;Programmers tend to have lots of money.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="384" LastActivityDate="2010-09-08T23:28:08.550" CommentCount="4" />
  <row Id="1522" PostTypeId="2" ParentId="1516" CreationDate="2010-09-08T23:28:14.073" Score="5" ViewCount="" Body="&lt;p&gt;Product first, then polish.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get your site/application/game doing what it's supposed to do. Get it up and running, and get people interested.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, when you have the time, go back and polish it up. But only because &lt;em&gt;you&lt;/em&gt; care, not because anybody else does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, if the non-compliance issues mean people can't view it, or it's unreadably ugly, or it takes a month to load, or it's hard to maintain, or it crashes the browser, this is a major problem. &lt;em&gt;But it would still be a major problem even if you were standards-compliant.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ordinary users do not look at the source for a website that isn't loading and go, &quot;Well, it's not displaying the pictures, but it's completely W3C-compliant&quot;. They simply browse to another website and never return.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line, standards are there to make writing browsers easier, and to close up potential security holes. Amazon, Penny-Arcade and Stack Overflow do not make their money from running a standard-compliant website. And unless you're in a website-writing competition, neither will you.&lt;/p&gt;&#xA;" OwnerUserId="366" LastEditorUserId="366" LastEditorDisplayName="" LastEditDate="2010-09-08T23:33:34.783" LastActivityDate="2010-09-08T23:33:34.783" />
  <row Id="1523" PostTypeId="2" ParentId="39" CreationDate="2010-09-08T23:28:23.417" Score="23" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I don't care if it works on your machine! We are not shipping your machine!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- Vidiu Platon (whoever that is)&lt;/p&gt;&#xA;" OwnerUserId="379" LastActivityDate="2010-09-08T23:28:23.417" CommunityOwnedDate="2010-09-08T23:28:23.417" CommentCount="2" />
  <row Id="1525" PostTypeId="2" ParentId="4" CreationDate="2010-09-08T23:31:15.303" Score="3" ViewCount="" Body="&lt;p&gt;Explanation by metaphor is a leaky abstraction, but here are some ideas that often work for me:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that none of these explanations excuse sloppy work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think of a computer program as machine, where every variable is a moving part. That makes even a trivial program a machine composed of hundreds of moving parts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When that fails, I fall back on the fact that it is mathematically impossible to prove that a program has no errors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, I ask if Intel and Microsoft are unable to avoid bugs, how do they expect us to?&lt;/p&gt;&#xA;" OwnerUserId="293" LastActivityDate="2010-09-08T23:31:15.303" CommentCount="2" />
  <row Id="1526" PostTypeId="1" CreationDate="2010-09-08T23:33:33.067" Score="1" ViewCount="233" Body="&lt;p&gt;My company is considering whether it is worthwhile to port an app to Samsung Bada. What do you think about this platform and its future?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="86" LastEditorDisplayName="" LastEditDate="2011-03-08T12:16:06.443" LastActivityDate="2011-03-14T13:37:16.927" Title="Do you think the Samsung Bada platform will take off?" Tags="&lt;prediction&gt;&lt;bada&gt;" AnswerCount="8" />
  <row Id="1527" PostTypeId="2" ParentId="1034" CreationDate="2010-09-08T23:34:09.850" Score="1" ViewCount="" Body="&lt;p&gt;I view certifications as a proxy for knowing the syntax. Which is necessary but not sufficient. Semantics are far more important and will forever be beyond the reach of certification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I neither buy software nor hire programmers on the basis of certification. &lt;/p&gt;&#xA;" OwnerUserId="293" LastActivityDate="2010-09-08T23:34:09.850" />
  <row Id="1528" PostTypeId="2" ParentId="1482" CreationDate="2010-09-08T23:35:00.287" Score="1" ViewCount="" Body="&lt;p&gt;I once wrote a reasonable size messaging system built around the mediator pattern as the bases for an app (it was my &lt;a href=&quot;http://en.wikipedia.org/wiki/Second-system_effect&quot; rel=&quot;nofollow&quot;&gt;Second System&lt;/a&gt;).  So this huge message passing thing had a couple dozen methods and a few hundred variables all including the word &lt;strong&gt;recieve&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, this was as a co-op.  As I was going back to class, I gave a good friend an in at the company, he got hired, and ended up working on that exact code &gt;.&amp;lt; - I never heard the end of it.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-08T23:35:00.287" CommunityOwnedDate="2011-02-01T20:08:55.700" />
  <row Id="1529" PostTypeId="1" CreationDate="2010-09-08T23:35:48.803" Score="3" ViewCount="197" Body="&lt;p&gt;At the moment, quantum computers aren't at all very useful. Do you believe that they will be useful one day? If so, do you think they will remain niche or become as common as PCs? I have heard that quantum computers are only good for solving certain problems. What fields do you believe that they will have applications in?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-09-08T23:36:58.097" LastActivityDate="2011-03-01T23:04:20.037" Title="Will quantum computing ever be more than a toy?" Tags="&lt;prediction&gt;&lt;quantum-computing&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="1" />
  <row Id="1531" PostTypeId="2" ParentId="1460" CreationDate="2010-09-08T23:36:37.130" Score="0" ViewCount="" Body="&lt;p&gt;In a small business, I'm pretty close to the people &quot;up the corporate ladder&quot;.  And no, I don't want their job :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find myself doing a lot of support for other coders and support people, but I'm still a software developer who gets busy in the code, and that's the way I'd like to keep it.&lt;/p&gt;&#xA;" OwnerUserId="381" LastActivityDate="2010-09-08T23:36:37.130" />
  <row Id="1532" PostTypeId="2" ParentId="501" CreationDate="2010-09-08T23:38:37.097" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Scala multi-line code in brackets&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Foo(&#xA;         val bar: String,&#xA;         val baz: Int,&#xA;         val bing: String,&#xA;         val bong: Boolean&#xA; ) extends Model {&#xA;   // body here&#xA; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;What you actually get from it is terrific. It generates the constructor and the getters and setters for you. But it sure is ugly and breaks all my mental models of how to indent code and basically leaves me feeling like I'm in a sort of bizarre sandwich with Java on one side and Lisp on the other. (Oh, wait... that is rather the point of Scala.)&lt;/p&gt;&#xA;" OwnerUserId="258" LastActivityDate="2010-09-08T23:38:37.097" CommunityOwnedDate="2010-09-08T23:38:37.097" CommentCount="5" />
  <row Id="1533" PostTypeId="1" CreationDate="2010-09-08T23:41:21.907" Score="26" ViewCount="1063" Body="&lt;p&gt;If you're developer (Senior or Lead Developer) and you'd rather stay with code/design than pursue a management career, what are the available career paths at your company, or any you've heard of? How far can you go?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it possible to continue being a geek until you bite the dust or is that too naive?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are people like Uncle Bob for example still considered developers, as they claim?&lt;/p&gt;&#xA;" OwnerUserId="212" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2010-10-28T12:15:43.007" LastActivityDate="2011-05-01T19:08:44.653" CommunityOwnedDate="2010-09-08T23:41:21.907" Title="What's the career path for a developer who doesn't like management?" Tags="&lt;career&gt;&lt;management&gt;&lt;coding&gt;" AnswerCount="11" CommentCount="5" FavoriteCount="10" />
  <row Id="1534" PostTypeId="2" ParentId="745" CreationDate="2010-09-08T23:44:43.340" Score="4" ViewCount="" Body="&lt;p&gt;Frequent short breaks at regular intervals (get up from chair, and think of something else for a few minutes). Then a longer break after 4 short ones. &lt;/p&gt;&#xA;" OwnerUserId="305" LastEditorUserId="305" LastEditorDisplayName="" LastEditDate="2010-09-09T12:05:01.913" LastActivityDate="2010-09-09T12:05:01.913" CommentCount="1" />
  <row Id="1535" PostTypeId="2" ParentId="1460" CreationDate="2010-09-08T23:46:24.503" Score="4" ViewCount="" Body="&lt;p&gt;That's a question that every decent developer must face eventually:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Do you go management track?  You get experience, start leading teams, and eventually become a low-level or higher manager.  Depending on the company, maybe peak at CTO.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Or do  you go technical track?  You get experience, start amassing in-depth technical experience, and become a guru?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The former comes with more money.  The latter comes with a sweet grey beard and a lot of street cred.  I'm not there yet, but I'll have to decided what to do in a few years- it'll be an interesting decision.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-08T23:46:24.503" CommentCount="4" />
  <row Id="1536" PostTypeId="2" ParentId="364" CreationDate="2010-09-08T23:46:43.130" Score="1" ViewCount="" Body="&lt;p&gt;C. After that, learning everything else will be easy, especially considering the age difference after they master C.&lt;/p&gt;&#xA;" OwnerUserId="227" LastActivityDate="2010-09-08T23:46:43.130" CommentCount="1" />
  <row Id="1537" PostTypeId="2" ParentId="39" CreationDate="2010-09-08T23:47:28.277" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blog.jgc.org/2007/10/write-once-debug-everywhere.html&quot; rel=&quot;nofollow&quot;&gt;Write once, debug everywhere&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="210" LastActivityDate="2010-09-08T23:47:28.277" CommunityOwnedDate="2010-09-08T23:47:28.277" />
  <row Id="1538" PostTypeId="2" ParentId="1460" CreationDate="2010-09-08T23:47:56.690" Score="12" ViewCount="" Body="&lt;p&gt;It's not a career 'advancement' unless it leads to an improvement in your overall circumstances. If you make more money doing something you hate versus a little less money doing something you love, have you really 'advanced'?&lt;/p&gt;&#xA;" OwnerUserId="402" LastActivityDate="2010-09-08T23:47:56.690" CommentCount="1" />
  <row Id="1539" PostTypeId="2" ParentId="1533" CreationDate="2010-09-08T23:49:29.533" Score="3" ViewCount="" Body="&lt;p&gt;Depends on the company.  A lot of companies offer two paths for advancing developers: technical and management.  If you prefer technical, you move slowly up the pay grade, developing valuable dev skills, but sticking with development- you become a guru.  It's less money than going management, but if you want to hack 'till you die, it's the way to go.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-08T23:49:29.533" CommunityOwnedDate="2010-09-08T23:49:29.533" CommentCount="4" />
  <row Id="1540" PostTypeId="2" ParentId="1482" CreationDate="2010-09-08T23:50:13.620" Score="4" ViewCount="" Body="&lt;p&gt;I now spell &lt;code&gt;referrer&lt;/code&gt; as &lt;code&gt;referer&lt;/code&gt; automatically when typing. &lt;a href=&quot;http://tools.ietf.org/html/rfc1945#section-10.13&quot; rel=&quot;nofollow&quot;&gt;RFC1945&lt;/a&gt;'s fault by way of PHP.&lt;/p&gt;&#xA;" OwnerUserId="398" LastActivityDate="2010-09-08T23:50:13.620" CommunityOwnedDate="2011-02-01T20:08:55.700" CommentCount="1" />
  <row Id="1541" PostTypeId="2" ParentId="364" CreationDate="2010-09-08T23:50:17.957" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt;! That is (in part) what it is designed for after all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And there are lots of fun, cross-platform libraries for doing all sorts of things like games, GUIs, music, Logo-type graphics, web stuff. And there are some good books out there for teaching programming to kids. I know two people with young children who are teaching Python to them.&lt;/p&gt;&#xA;" OwnerUserId="258" LastActivityDate="2010-09-08T23:50:17.957" />
  <row Id="1542" PostTypeId="1" CreationDate="2010-09-08T23:50:29.873" Score="3" ViewCount="482" Body="&lt;p&gt;Are there any examples of this and also where it isn't true?&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T16:01:16.657" Title="I have heard that Haskell code for 90% of computer problems is only 10% of the code in an OOPL." Tags="&lt;programming-languages&gt;&lt;functional-programming&gt;&lt;object-oriented&gt;" AnswerCount="5" CommentCount="5" FavoriteCount="2" />
  <row Id="1543" PostTypeId="2" ParentId="39" CreationDate="2010-09-08T23:54:04.283" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Get into a rut early: Do the same process the same way. Accumulate idioms. Standardize. The only difference(!) between Shakespeare and you was the size of his idiom list - not the size of his vocabulary.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;--Alan J. Perlis&lt;/p&gt;&#xA;" OwnerUserId="402" LastEditorUserId="3270" LastEditorDisplayName="" LastEditDate="2010-09-22T02:10:34.520" LastActivityDate="2010-09-22T02:10:34.520" CommunityOwnedDate="2010-09-08T23:54:04.283" />
  <row Id="1544" PostTypeId="2" ParentId="1338" CreationDate="2010-09-08T23:54:10.443" Score="-4" ViewCount="" Body="&lt;p&gt;I find many of the &lt;a href=&quot;http://www.mono-project.com/Coding_Guidelines&quot; rel=&quot;nofollow&quot;&gt;Mono coding guidelines&lt;/a&gt; to be pointless or counter-productive. For example. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;80 column limit - considering we're all using widescreen monitors these days is just wasting the limited vertical space we don't have, and not making use of the horizontal space we do have.&lt;/li&gt;&#xA;&lt;li&gt;Tabs for spaces - perfect way to make your code look a mess when opened in different editors which have different tab sizes. (also, 8 space tabs is just wasting the very limited 80-columns you have to work with anyway).&lt;/li&gt;&#xA;&lt;li&gt;Inconsistent brace positioning , for what reason? What's wrong with 1TBS?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There's a number of other guidelines there which are just &quot;good practices&quot;, without reasoning.&lt;/p&gt;&#xA;" OwnerUserId="356" LastActivityDate="2010-09-08T23:54:10.443" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="12" />
  <row Id="1545" PostTypeId="2" ParentId="1526" CreationDate="2010-09-08T23:54:16.853" Score="1" ViewCount="" Body="&lt;p&gt;I think that there are more than enough mobile platforms already (iOS, WebOs, Android, Symbian, Windows Mobile, Blackberry), and I cannot really see a place for yet another.&lt;/p&gt;&#xA;" OwnerUserId="305" LastActivityDate="2010-09-08T23:54:16.853" CommentCount="1" />
  <row Id="1546" PostTypeId="2" ParentId="1483" CreationDate="2010-09-08T23:55:51.923" Score="3" ViewCount="" Body="&lt;p&gt;Yeah, we do. I'm from Uruguay and we usually code with variable names in English. Some people leave comments in Spanish, but I find that a bit awkward. In a previous job we were forced to use Spanish for variables and methods, and I hated it. &lt;/p&gt;&#xA;" OwnerUserId="408" LastActivityDate="2010-09-08T23:55:51.923" CommunityOwnedDate="2010-09-09T11:39:51.480" CommentCount="2" />
  <row Id="1547" PostTypeId="2" ParentId="745" CreationDate="2010-09-08T23:56:24.243" Score="1" ViewCount="" Body="&lt;p&gt;Last year at the Over the Air conference and hack day in London - a gathering of mobile developers - they had a Qi Gong guy come in and do half an hour of stretching and exercise, after a lot of people had been up all night programming. Half an hour of exercise out in the fresh air was a really good wake-up, even if we did all feel a bit silly with all the stuff about balls of qi energy and the like.&lt;/p&gt;&#xA;" OwnerUserId="258" LastActivityDate="2010-09-08T23:56:24.243" />
  <row Id="1548" PostTypeId="2" ParentId="1529" CreationDate="2010-09-09T00:04:01.277" Score="7" ViewCount="" Body="&lt;p&gt;Wow, finally a question where my physics degree is useful.  My dissertation advisor was actually an expert on quantum computation, although my research was in an area that was only tangentially related.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many potential architectures for a quantum computer, whether you're using trapped ions, neutral atoms, quantum dots, SQUIDs, whatever.  But they all face some of the same basic problems, such as the fact that in order to get the benefits of quantum mechanics you have to be able to maintain coherent superpositions of states, and interactions with the surrounding environment destroy these superpositions.  The bigger the system, the harder it is to eliminate this noise (or to eliminate enough of it for the quantum computer to still be usable), and that means that scaling up a quantum computer is currently a huge technical challenge.  And a computer with only a dozen or so quantum bits (qubits) isn't really going to be much more useful than a classical computer with a dozen bits (in other words, not useful at all).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as where they'd be useful, determining how you'd use one is actually a much easier problem than building one.  What I mean is, you can do the math and work out algorithms that would be possible to run on a quantum computer, and what their scaling behavior is, even if you can't build that computer.  And in particular, there are some known algorithms for quantum computers that scale better than any known classical (i.e., non-quantum) algorithm.  The most famous is Shor's algorithm, which can factor numbers in polynomial time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This lends itself to uses in cryptography in particular.  Certain forms of encryption take advantage of the fact that it's much easier to perform some operations in one direction than the other.  For instance, it's much easier to multiply two large prime numbers together than it is to factor a number that's the product of two large primes.  So a fast factoring algorithm is obviously of great benefit here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition to offering the potential to crack some existing forms of encryption, a quantum computer could allow for whole new forms of encryption to be created.  It's a well-known truth that measuring a quantum mechanical system changes the state of the system being measured.  This could allow new forms of communication with greater security against eavesdropping.  And again, it's much easier to work out what we &lt;em&gt;could&lt;/em&gt; do if we could build one than it is to actually build it.  But for that very reason this is an area of research that is fairly attractive to government funding, and a lot of smart people are currently working on the implementation difficulties.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&#xA;While the cryptography angle is the one that is used most often to sell the value of quantum computation research, I feel like I should add at least one other area where a quantum computer would be really useful: physics research.  For instance, studying the physics of many-particle systems is a very hard problem, in part because the number of possible states of the system scales exponentially with the number of particles.  (There are many useful approximations that allow us to make sense of these systems, but they only work in certain regimes such as when the particles interact only weakly.  But some of the most interesting and potentially useful many-particle systems are inherently strongly interacting, such as high-temperature superconductors.)  But a quantum computer would be the ultimate quantum simulator, which could make it possible to make great strides in understanding these strongly-interacting many-particle systems.  The pay-off could be the development of new solid-state devices.  So ultimately research conducted using quantum computers could lead to smaller, faster, and more powerful classical computers as well.&lt;/p&gt;&#xA;" OwnerUserId="151" LastEditorUserId="151" LastEditorDisplayName="" LastEditDate="2010-09-09T00:23:53.573" LastActivityDate="2010-09-09T00:23:53.573" CommentCount="2" />
  <row Id="1549" PostTypeId="2" ParentId="364" CreationDate="2010-09-09T00:09:12.363" Score="1" ViewCount="" Body="&lt;p&gt;My kid liked using &lt;a href=&quot;http://scratch.mit.edu/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Scratch&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is rich and interactive environment with good REPL loop&lt;/p&gt;&#xA;" OwnerUserId="280" LastActivityDate="2010-09-09T00:09:12.363" />
  <row Id="1550" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T00:11:45.187" Score="2" ViewCount="" Body="&lt;p&gt;Even for personal projects I tend to use English mostly cause it's easier to ask questions about the code on Stack Overflow or other websites. The same goes for my operating system I only use English. I had a dutch operating system once and it's really horrible to google for errors or information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is one advantage of coding in an other language and that is that you most likely wont run into conflicting or reserved words.&lt;/p&gt;&#xA;" OwnerUserId="416" LastActivityDate="2010-09-09T00:11:45.187" CommunityOwnedDate="2010-09-09T11:39:51.480" />
  <row Id="1551" PostTypeId="2" ParentId="1542" CreationDate="2010-09-09T00:15:43.247" Score="3" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;How would you possibly measure that?&lt;/li&gt;&#xA;&lt;li&gt;Brevity is not necessarily better than readability, maintainability, or expandability.&lt;/li&gt;&#xA;&lt;li&gt;What problems is this being applied to?  Toy problems, large enterprise systems, or somewhere in between?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;This doesn't sound like a statistic that has any useful meaning.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-09T00:15:43.247" CommentCount="2" />
  <row Id="1552" PostTypeId="2" ParentId="331" CreationDate="2010-09-09T00:18:57.683" Score="4" ViewCount="" Body="&lt;p&gt;Droid Sans Mono&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T00:18:57.683" CommunityOwnedDate="2010-09-09T00:18:57.683" CommentCount="1" />
  <row Id="1553" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T00:23:39.640" Score="14" ViewCount="" Body="&lt;p&gt;To understand recursion, you first need to understand recursion&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T00:23:39.640" CommunityOwnedDate="2010-09-09T00:23:39.640" />
  <row Id="1554" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T00:27:33.240" Score="56" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;There are only two kinds of languages: the ones people complain about and the ones nobody uses&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;— Bjarne Stroustrup&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-10-02T20:57:34.193" LastActivityDate="2010-10-02T20:57:34.193" CommunityOwnedDate="2010-09-09T00:27:33.240" CommentCount="3" />
  <row Id="1555" PostTypeId="2" ParentId="67" CreationDate="2010-09-09T00:31:36.187" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://thedailywtf.com/&quot; rel=&quot;nofollow&quot;&gt;The Daily WTF&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T00:31:36.187" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="1556" PostTypeId="2" ParentId="67" CreationDate="2010-09-09T00:38:55.883" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.martinfowler.com/bliki&quot; rel=&quot;nofollow&quot;&gt;Martin Fowler&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually a Bliki (Blog+Wiki)&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-24T18:10:12.870" LastActivityDate="2010-09-24T18:10:12.870" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="1557" PostTypeId="2" ParentId="1" CreationDate="2010-09-09T00:41:31.097" Score="7" ViewCount="" Body="&lt;p&gt;@Scott Dorman: Couldn't agree more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I think developers deliberately omit comments just to be smart-arses.&lt;/p&gt;&#xA;" OwnerUserId="430" LastActivityDate="2010-09-09T00:41:31.097" CommunityOwnedDate="2011-01-31T09:04:54.130" />
  <row Id="1558" PostTypeId="2" ParentId="1180" CreationDate="2010-09-09T00:41:49.610" Score="1" ViewCount="" Body="&lt;p&gt;Around here, c# programmers get paid more that vb.net programmers...&lt;/p&gt;&#xA;" OwnerUserId="428" LastActivityDate="2010-09-09T00:41:49.610" CommentCount="1" />
  <row Id="1559" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T00:42:50.590" Score="1" ViewCount="" Body="&lt;p&gt;I'm from Taiwan. We code in English and follow the naming convention of specific languages.&lt;/p&gt;&#xA;" OwnerUserId="422" LastActivityDate="2010-09-09T00:42:50.590" CommunityOwnedDate="2010-09-09T11:39:51.480" />
  <row Id="1560" PostTypeId="2" ParentId="67" CreationDate="2010-09-09T00:43:48.560" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.artima.com&quot; rel=&quot;nofollow&quot;&gt;Artima&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T00:43:48.560" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="1561" PostTypeId="2" ParentId="1454" CreationDate="2010-09-09T00:45:09.133" Score="1" ViewCount="" Body="&lt;p&gt;I used to be a huge fan of Remember the Milk, but now I've started migrating to OneNote for task management.  The biggest reason is the impending launch of Windows Phone 7, where you'll be able to automagically sync your SkyDrive-stored notebooks to your WP7 device for free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the reason I moved away from Remember the Milk is the seemingly stagnant improvements to the webapp itself - it hasn't seen any real updates since it got the new task input box.  It is very good, but it's by no means perfect (and still doesn't have sub-tasks).&lt;/p&gt;&#xA;" OwnerUserId="36" LastActivityDate="2010-09-09T00:45:09.133" />
  <row Id="1562" PostTypeId="2" ParentId="1108" CreationDate="2010-09-09T00:46:58.493" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.drdobbs.com&quot; rel=&quot;nofollow&quot;&gt;Dr. Dobbs&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T00:46:58.493" CommentCount="2" />
  <row Id="1563" PostTypeId="2" ParentId="1407" CreationDate="2010-09-09T00:47:18.990" Score="0" ViewCount="" Body="&lt;p&gt;Many web development tools are only available in Firefox. e.g. Selenium IDE, firebug. When it comes to web development, Firefox is still my number one choice.&lt;/p&gt;&#xA;" OwnerUserId="422" LastActivityDate="2010-09-09T00:47:18.990" />
  <row Id="1564" PostTypeId="2" ParentId="67" CreationDate="2010-09-09T00:52:29.090" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://codebetter.com/&quot; rel=&quot;nofollow&quot;&gt;Code Better&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T00:52:29.090" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="1565" PostTypeId="2" ParentId="870" CreationDate="2010-09-09T00:55:59.103" Score="4" ViewCount="" Body="&lt;p&gt;The Pragmatic Programmer: From Journeyman to Master&#xA;(Andrew Hunt and David Thomas)&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T00:55:59.103" CommunityOwnedDate="2011-01-21T21:28:48.980" />
  <row Id="1566" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T00:57:43.957" Score="1" ViewCount="" Body="&lt;p&gt;I work for a software editor in France. Code is always in English. The variables and function names are all in English even if mistakes occur sometimes. The worst mix of French and English I encountered was &quot;connexionKey&quot;. On the other hand, comments are not always in English depending on how confortable the developer is writing English.&lt;/p&gt;&#xA;" OwnerUserId="432" LastActivityDate="2010-09-09T00:57:43.957" CommunityOwnedDate="2010-09-09T11:39:51.480" CommentCount="3" />
  <row Id="1567" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T00:59:22.043" Score="3" ViewCount="" Body="&lt;p&gt;It works on my machine&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T00:59:22.043" CommunityOwnedDate="2010-09-09T00:59:22.043" CommentCount="1" />
  <row Id="1568" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T01:02:44.407" Score="70" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Computer Science is no more about computers than astronomy is about telescopes&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;mdash; Edsger Dijkstra&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-11T13:46:05.780" LastActivityDate="2010-10-11T13:46:05.780" CommunityOwnedDate="2010-09-09T01:02:44.407" CommentCount="3" />
  <row Id="1569" PostTypeId="2" ParentId="870" CreationDate="2010-09-09T01:03:02.773" Score="6" ViewCount="" Body="&lt;p&gt;Gödel, Escher, Bach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://ocw.mit.edu/high-school/courses/godel-escher-bach/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://i.imgur.com/HyIwU.jpg&quot; alt=&quot;alt text&quot;&gt;!&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="436" LastEditorUserId="436" LastEditorDisplayName="" LastEditDate="2010-09-09T01:12:23.483" LastActivityDate="2010-09-09T01:12:23.483" CommunityOwnedDate="2011-01-21T21:28:48.980" CommentCount="2" />
  <row Id="1570" PostTypeId="2" ParentId="282" CreationDate="2010-09-09T01:03:51.270" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://linuxoutlaws.com/&quot; rel=&quot;nofollow&quot;&gt;Linux Outlaws&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="437" LastActivityDate="2010-09-09T01:03:51.270" CommunityOwnedDate="2010-12-21T06:02:41.540" CommentCount="1" />
  <row Id="1571" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T01:06:39.050" Score="96" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Measuring programming progress by lines of code is like measuring aircraft building progress by weight.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; Bill Gates&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-10-08T11:08:22.407" CommunityOwnedDate="2010-09-09T01:06:39.050" CommentCount="4" />
  <row Id="1572" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T01:10:15.847" Score="1" ViewCount="" Body="&lt;p&gt;In the VS editor, most of the places we deal with non-English bugs are in comments, and they are most east-Asian languages (IME-related).  I'm pretty sure I just saw one the other day where right-to-left text in comments displays incorrectly in quick info or parameter help, so there are certainly people doing it :)&lt;/p&gt;&#xA;" OwnerUserId="439" LastActivityDate="2010-09-09T01:10:15.847" CommunityOwnedDate="2010-09-09T11:39:51.480" />
  <row Id="1573" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T01:11:50.007" Score="81" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Nine people can't make a baby in a month.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; Fred Brooks, &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Mythical_Man-Month&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;The Mythical Man-Month&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-10-08T11:09:34.087" CommunityOwnedDate="2010-09-09T01:11:50.007" CommentCount="8" />
  <row Id="1574" PostTypeId="2" ParentId="1533" CreationDate="2010-09-09T01:13:54.683" Score="7" ViewCount="" Body="&lt;p&gt;At my company, the management and individual contributor tracks are separate and mostly parallel.  Individual contributors can rise very high in the company (up to Technical Fellow) without being a people manager.  It helps to partially avoid the &lt;a href=&quot;http://en.wikipedia.org/wiki/Peter_Principle&quot; rel=&quot;nofollow&quot;&gt;Peter Principle&lt;/a&gt;, though never completely.&lt;/p&gt;&#xA;" OwnerUserId="439" LastActivityDate="2010-09-09T01:13:54.683" CommunityOwnedDate="2010-09-09T01:13:54.683" />
  <row Id="1575" PostTypeId="2" ParentId="1533" CreationDate="2010-09-09T01:19:40.363" Score="10" ViewCount="" Body="&lt;p&gt;Although &lt;strong&gt;Architect&lt;/strong&gt; seems to have negative connotations, I think that's the technical equivalent of moving to management.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-09T01:19:40.363" CommunityOwnedDate="2010-09-09T01:19:40.363" CommentCount="2" />
  <row Id="1576" PostTypeId="2" ParentId="1380" CreationDate="2010-09-09T01:19:43.623" Score="6" ViewCount="" Body="&lt;p&gt;We aim for &lt;strong&gt;at least&lt;/strong&gt; 70%.  On things that are more easily testable (functional data structures, for example), we aim for 90% and most individuals aim for as near to 100% as possible.  On WPF-related things and other frameworks that are very difficult to test, we get much lower coverage (barely 70%).&lt;/p&gt;&#xA;" OwnerUserId="439" LastActivityDate="2010-09-09T01:19:43.623" CommentCount="4" />
  <row Id="1577" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T01:19:44.520" Score="70" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;If Java had true garbage collection, most programs would delete themselves upon execution.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; Robert Sewell&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-10-08T11:21:23.843" CommunityOwnedDate="2010-09-09T01:19:44.520" CommentCount="4" />
  <row Id="1578" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T01:19:46.173" Score="10" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A good algorithm is like a sharp knife - it does exactly what it is supposed to do with a minimum amount of applied effort. Using the wrong algorithm to solve a problem is trying to cut a steak with a screwdriver: you may eventually get a digestible result, but you will expend considerable more effort than necessary, and the result is unlikely to be aesthetically pleasing.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="445" LastEditorUserId="633" LastEditorDisplayName="" LastEditDate="2010-12-16T16:41:06.960" LastActivityDate="2010-12-16T16:41:06.960" CommunityOwnedDate="2010-09-09T01:19:46.173" CommentCount="1" />
  <row Id="1579" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T01:22:53.287" Score="27" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are, in short, a perfect match.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; Bill Bryson&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-10-08T11:35:16.570" CommunityOwnedDate="2010-09-09T01:22:53.287" />
  <row Id="1580" PostTypeId="2" ParentId="364" CreationDate="2010-09-09T01:23:00.340" Score="1" ViewCount="" Body="&lt;p&gt;Look into &lt;a href=&quot;http://research.microsoft.com/en-us/projects/kodu/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Kodu&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's some &lt;a href=&quot;http://www.google.com/search?q=kodu&amp;amp;ie=utf-8&amp;amp;oe=utf-8&amp;amp;aq=t&amp;amp;rls=org.mozilla%3aen-US%3aofficial&amp;amp;client=firefox-a#q=kodu&amp;amp;hl=en&amp;amp;client=firefox-a&amp;amp;hs=LZW&amp;amp;rls=org.mozilla%3aen-US%3aofficial&amp;amp;prmd=iv&amp;amp;source=univ&amp;amp;tbs=vid:1&amp;amp;tbo=u&amp;amp;ei=DzeITLr7MpP_nAfotLn0DA&amp;amp;sa=X&amp;amp;oi=video_result_group&amp;amp;ct=title&amp;amp;resnum=7&amp;amp;ved=0CEEQqwQwBg&amp;amp;fp=fb33825a2a74a863&quot; rel=&quot;nofollow&quot;&gt;tutorial videos&lt;/a&gt; as well.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-09T01:23:00.340" />
  <row Id="1581" PostTypeId="2" ParentId="870" CreationDate="2010-09-09T01:23:04.487" Score="1" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/SpDV9.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's one of the few programming books that I've kept from when I first started programming. I used to lend this out a lot to people who were first starting out. Now, not so much, since C isn't very many people's first programming language anymore. It does a wonderful job of describing what is happening behind the scenes and its descriptions about pointers brings real clarity to what is otherwise a very confusing topic for many. &lt;/p&gt;&#xA;" OwnerUserId="443" LastActivityDate="2010-09-09T01:23:04.487" CommunityOwnedDate="2011-01-21T21:28:48.980" />
  <row Id="1582" PostTypeId="2" ParentId="539" CreationDate="2010-09-09T01:24:52.613" Score="5" ViewCount="" Body="&lt;p&gt;Inkpot is the One True Color Scheme, of course. You can use it in Visual Studio (with the viemu plugin, natch) for editing code and use it in gvim for editing everything else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/NZcGl.png&quot; alt=&quot;inkpot&quot;&gt; &lt;/p&gt;&#xA;" OwnerUserId="402" LastActivityDate="2010-09-09T01:24:52.613" CommunityOwnedDate="2010-09-16T13:10:40.707" CommentCount="2" />
  <row Id="1583" PostTypeId="2" ParentId="1004" CreationDate="2010-09-09T01:26:53.217" Score="2" ViewCount="" Body="&lt;p&gt;If I was a betting man, I'd put money on MRI still being here (duh), and so long as Java and the JVM doesn't suddenly die out (due to, oh, a patent infringement lawsuit by Oracle) I'd say JRuby is likely to be here for some time, especially now Engine Yard have put some investment into it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the topic of IronRuby, have you seen &lt;a href=&quot;http://www.devproconnections.com/print/open-source-development/Reports-of-IronRuby-s-Death-Are-Premature.aspx&quot; rel=&quot;nofollow&quot;&gt;Reports of IronRuby's Death Are Premature&lt;/a&gt;? I'd certainly be annoyed if IronRuby were to not survive much longer as it has allowed me as a non-Windows programmer to build quick hacks and have them run on Windows (and Mono) without having to learn a new language or lots of new APIs (like I might have had to do with C++ pre-.NET or even just with C# before widespread availability of dynamic language runtimes on the CLR). I'm sure that even though Microsoft may be lowering the priorities of IronRuby internally, there are still plenty of people who want to work on it outside of Microsoft - it is open source, after all. There's plenty of buzz around it, so it seems unlikely it is just going to wither up and die.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for YARV and Rubinius? Who knows? MRI and JRuby seem pretty safe and I'm leaning towards IronRuby being 'on hold' rather than dead.&lt;/p&gt;&#xA;" OwnerUserId="258" LastEditorUserId="258" LastEditorDisplayName="" LastEditDate="2010-09-09T19:44:30.003" LastActivityDate="2010-09-09T19:44:30.003" />
  <row Id="1584" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T01:28:50.467" Score="15" ViewCount="" Body="&lt;p&gt;In France, many people tend to code using French objects/methods/variables names if they work with non English speaking colleagues.&#xA;However, it is really depends on your environment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thumb rule is 'the more skilled people you are working / the projects you are working on are, the more likely it is that it is going to be in English'/&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems to be the same in Germany.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-09T01:28:50.467" CommunityOwnedDate="2010-09-09T11:39:51.480" CommentCount="8" />
  <row Id="1585" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T01:29:54.467" Score="5" ViewCount="" Body="&lt;p&gt;The best code is no code at all&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T01:29:54.467" CommunityOwnedDate="2010-09-09T01:29:54.467" CommentCount="2" />
  <row Id="1586" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T01:34:13.050" Score="23" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;When all you have is a hammer, everything starts to look like a nail&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-26T21:11:53.343" LastActivityDate="2010-09-26T21:11:53.343" CommunityOwnedDate="2010-09-09T01:34:13.050" CommentCount="5" />
  <row Id="1587" PostTypeId="2" ParentId="408" CreationDate="2010-09-09T01:35:31.447" Score="2" ViewCount="" Body="&lt;p&gt;I'd say that thorough knowledge of the syntactical oddities of your language help. Here is one I found in Ruby when doing a bit of code golf:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;require &quot;sequel&quot;&#xA;require &quot;nokogiri&quot;&#xA;require &quot;chronic&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You can do something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; body_of_your_program if %w{sequel nokogiri chronic}.each{|i| require i}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;With this kind of thing, you too can write incredibly elaborate Ruby one-liners!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Ruby and Perl, you also get the magic variables like &quot;$_&quot; which can be used to do all sorts of magic with strings and regexes. Is your data not strings? Well, you might want to turn it into strings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, in C, the preprocessor is your friend.&lt;/p&gt;&#xA;" OwnerUserId="258" LastActivityDate="2010-09-09T01:35:31.447" />
  <row Id="1588" PostTypeId="1" CreationDate="2010-09-09T01:39:30.097" Score="21" ViewCount="1343" Body="&lt;p&gt;Use of desktops are decreasing day by day in daily life but for coding purpose are there any reasons for using desktop over laptop? &lt;/p&gt;&#xA;" OwnerUserId="124" LastActivityDate="2011-01-27T05:21:04.337" CommunityOwnedDate="2011-01-27T05:21:04.337" Title="What is better for coding - desktop or laptop?" Tags="&lt;productivity&gt;&lt;coding&gt;" AnswerCount="17" CommentCount="2" FavoriteCount="3" />
  <row Id="1589" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T01:39:57.817" Score="6" ViewCount="" Body="&lt;p&gt;Like a lot of programmers (but not enough), I hate code decoration. It infuriates me when I have to use a dollar sign($) prefix for variable names, or underscores for private variables, even with no getters/setters. If you need to decorate you code to understand it, then you need to get the hell out!&lt;/p&gt;&#xA;" OwnerUserId="447" LastEditorUserId="447" LastEditorDisplayName="" LastEditDate="2010-09-09T20:42:37.780" LastActivityDate="2010-09-09T20:42:37.780" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="5" />
  <row Id="1590" PostTypeId="2" ParentId="1482" CreationDate="2010-09-09T01:42:59.620" Score="5" ViewCount="" Body="&lt;p&gt;A software company I worked for used to add asterisks to required fields in the UI but instead of declaring a variable called &quot;asterisk&quot;, they used &quot;asterik&quot; - they are on version 7 of their product, with no sign of that typo being removed!&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-09T01:42:59.620" CommunityOwnedDate="2011-02-01T20:08:55.700" CommentCount="1" />
  <row Id="1591" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T01:43:16.750" Score="42" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- Bjarne Stroustrup&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-25T02:12:52.853" LastActivityDate="2010-09-25T02:12:52.853" CommunityOwnedDate="2010-09-09T01:43:16.750" CommentCount="0" />
  <row Id="1592" PostTypeId="2" ParentId="1588" CreationDate="2010-09-09T01:45:04.643" Score="24" ViewCount="" Body="&lt;p&gt;Assuming you have an external monitor and keyboard to connect to your laptop the difference is small. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is always better to work in a desktop like setting (bigger screen realestate, more ergonomic environment), but you can't take your work with you without a laptop. So if portability is important, get a laptop and a good external screen and keyboard to connect it to. Otherwise you might as well stay with a desktop. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-09T01:45:04.643" CommunityOwnedDate="2011-01-27T05:21:04.337" CommentCount="7" />
  <row Id="1593" PostTypeId="2" ParentId="966" CreationDate="2010-09-09T01:46:22.470" Score="13" ViewCount="" Body="&lt;p&gt;The Art of War&#xA;Sun Tzu&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/uPQuW.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-11T22:01:09.357" LastActivityDate="2010-09-11T22:01:09.357" CommunityOwnedDate="2011-01-06T15:42:27.030" CommentCount="3" />
  <row Id="1594" PostTypeId="2" ParentId="67" CreationDate="2010-09-09T01:48:47.697" Score="1" ViewCount="" Body="&lt;p&gt;I like these link blogs:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.alvinashcraft.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.alvinashcraft.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jasonhaley.com/blog/&quot; rel=&quot;nofollow&quot;&gt;http://jasonhaley.com/blog/&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blog.cwa.me.uk/&quot; rel=&quot;nofollow&quot;&gt;http://blog.cwa.me.uk/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;When something exciting is announced or released, one (usually all 3) of these will pick it up. Great way to follow the zeitgeist and find new blogs to read regularly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're a Microsoft-stack developer, chances are your team blogs. I read &lt;a href=&quot;http://blogs.msdn.com/b/vcblog/&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com/b/vcblog/&lt;/a&gt; and &lt;a href=&quot;http://windowsteamblog.com/windows/b/developers/&quot; rel=&quot;nofollow&quot;&gt;http://windowsteamblog.com/windows/b/developers/&lt;/a&gt; because I do C++ and Windows 7 (both managed and native). Your teams may vary :-).&lt;/p&gt;&#xA;" OwnerUserId="285" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2010-09-23T11:44:59.370" LastActivityDate="2010-09-23T11:44:59.370" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="1595" PostTypeId="2" ParentId="966" CreationDate="2010-09-09T01:51:19.783" Score="12" ViewCount="" Body="&lt;p&gt;The 7 Habits of Highly Effective People&#xA;Stephen Covey&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/kl3Ux.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-11T22:03:03.127" LastActivityDate="2010-09-11T22:03:03.127" CommunityOwnedDate="2011-01-06T15:42:27.030" CommentCount="4" />
  <row Id="1596" PostTypeId="2" ParentId="966" CreationDate="2010-09-09T01:55:44.883" Score="12" ViewCount="" Body="&lt;p&gt;Peopleware: Productive Projects and Teams&#xA;Tom DeMarco and Timothy Lister&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/oYrWn.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-11T22:04:18.823" LastActivityDate="2010-09-11T22:04:18.823" CommunityOwnedDate="2011-01-06T15:42:27.030" />
  <row Id="1597" PostTypeId="2" ParentId="966" CreationDate="2010-09-09T02:00:48.670" Score="27" ViewCount="" Body="&lt;p&gt;Getting Things Done&lt;/p&gt;&#xA;&#xA;&lt;p&gt;David Allen&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/fQUUy.jpg&quot; alt=&quot;Cover&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-26T00:05:00.017" LastActivityDate="2010-09-26T00:05:00.017" CommunityOwnedDate="2011-01-06T15:42:27.030" CommentCount="4" />
  <row Id="1599" PostTypeId="1" CreationDate="2010-09-09T02:08:24.463" Score="30" ViewCount="3046" Body="&lt;blockquote&gt;&#xA;  &lt;h2&gt;Moderator Message&lt;/h2&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;This question already has 60+ answers. Due to more answers being posted that don't add to the discussion the post has been locked&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Brought from SO (&lt;a href=&quot;http://stackoverflow.com/questions/164432/what-real-life-bad-habits-has-programming-given-you-closed-&quot;&gt;Original question closed&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming has given me a lot of good habits and it continues to give me more everyday. But I have also gotten some bad habits from the mindset that I have put myself in. There simply are some things that are deeply rooted in my nature, though some of them I wish I could get rid of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Looking for polymorphism, inheritance and patterns in all of God's creations.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Explaining the size of something in pixels and colors in hex code.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Using code related abstract terms in everyday conversations.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;How have you been damaged?&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-04-09T18:53:00.037" LastActivityDate="2011-04-09T18:53:00.037" CommunityOwnedDate="2010-09-10T10:20:25.267" Title="What real life bad habits has programming given you?" Tags="&lt;lifestyle&gt;&lt;behavior&gt;&lt;personality&gt;&lt;humor&gt;&lt;bad-habits&gt;" AnswerCount="63" CommentCount="3" FavoriteCount="27" />
  <row Id="1600" PostTypeId="1" CreationDate="2010-09-09T02:08:53.853" Score="25" ViewCount="975" Body="&lt;p&gt;Have you ever felt that you have had enough of programming and you want to do something else in your life which hopefully doesn't include staying in front of the computer all day?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, while thinking these you realize it's time to stop thinking and continue your code. I am going through these thoughts for some time now, do you ever feel like this and what do you do to get yourself concentrated and happy with your work?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;&lt;sub&gt;Manually migrated from &lt;a href=&quot;http://stackoverflow.com/questions/3659228/how-do-you-know-when-you-are-tired-of-programming-in-your-life&quot;&gt;Stack Overflow&lt;/a&gt;&lt;/sub&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="63" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-06T15:25:00.613" LastActivityDate="2010-12-06T15:25:00.613" CommunityOwnedDate="2011-01-03T18:24:11.153" Title="How do you know when you are tired of programming in your life?" Tags="&lt;self-improvement&gt;&lt;burnout&gt;" AnswerCount="24" CommentCount="14" FavoriteCount="6" />
  <row Id="1601" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T02:11:11.993" Score="70" ViewCount="" Body="&lt;p&gt;Consider 256 a round number.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T02:11:11.993" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="1" />
  <row Id="1602" PostTypeId="2" ParentId="1542" CreationDate="2010-09-09T02:15:16.957" Score="2" ViewCount="" Body="&lt;p&gt;This is somewhat true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Especially if you pick an example like a compiler. With OO style you'll see a giant batch of classes defining each type of language node and its associated handling in methods.&#xA;(&lt;a href=&quot;http://jashkenas.github.com/coffee-script/documentation/docs/nodes.html&quot; rel=&quot;nofollow&quot;&gt;http://jashkenas.github.com/coffee-script/documentation/docs/nodes.html&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Contributing to verbosity are the small boilerplate methods, the roundabout imperative way of expressing the behavior in the complex methods, and the fact that methods are grouped together by class rather than having functions that inspect the type of node and then do the appropriate handling, as that way you could refactor similar functionality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That code might well be 5-10 times shorter in Haskell.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;In general OO works such that since a developer is necessitated to use it in the given OO language as well as extra architectural 'conventions' that advise him (mostly to create various redundant extra elements), there is always space to make modifications and always some way to use the class mechanism for something, even if the original developer did not account for it (the further development of the design).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is to say that OO is a language mechanism commonly used in languages to pull along designs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In contrast Haskell is accommodating of language prototyping, which means you can choose/design your own mechanisms for building the program, so that it can be expressed more concisely among other improved properties. At its simplest Haskell will at least look more like Python when compared to for example Java.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-09T02:15:16.957" CommentCount="2" />
  <row Id="1603" PostTypeId="2" ParentId="35" CreationDate="2010-09-09T02:19:47.157" Score="60" ViewCount="" Body="&lt;p&gt;Richard Stallman, Linus Torvalds, and Donald Knuth engage in a discussion on whose impact on computer science was the greatest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stallman: &quot;God told me I have programmed the best editor in the world!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Torvalds: &quot;Well, God told me that I have programmed the best operating system in the world!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knuth: &quot;Wait, wait, I never said that.&quot;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T02:19:47.157" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="3" />
  <row Id="1604" PostTypeId="2" ParentId="501" CreationDate="2010-09-09T02:25:52.263" Score="12" ViewCount="" Body="&lt;h2&gt;\we\wouldnt\fix\our\parser namespace syntax in PHP&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The syntax is not only ugly, it leads to confusion when newer developers have to think about namespaces in strings.  (PHP interpolates backslashes in double-quoted strings as escape sequences.  Trying to represent a namespace like &lt;code&gt;\you\should\never\do\that&lt;/code&gt; in a double-quoted string instead of a single-quoted string will lead to newlines, tabs and disaster.)&lt;/p&gt;&#xA;" LastEditorUserId="19717" LastEditorDisplayName="" LastEditDate="2011-05-26T20:16:14.407" LastActivityDate="2011-05-26T20:16:14.407" CommunityOwnedDate="2010-09-09T02:25:52.263" CommentCount="2" />
  <row Id="1605" PostTypeId="2" ParentId="1588" CreationDate="2010-09-09T02:27:30.390" Score="8" ViewCount="" Body="&lt;p&gt;I agree with EpsilonVector, the big issue is monitor space. A laptop can usually support a second monitor. But a desktop can support &lt;a href=&quot;http://www.hanselman.com/blog/ThreeMonitorsICantGoBack.aspx&quot; rel=&quot;nofollow&quot;&gt;three&lt;/a&gt; or &lt;a href=&quot;http://www.hanselman.com/blog/ReviewMimoMonitorsIMoPivot.aspx&quot; rel=&quot;nofollow&quot;&gt;four&lt;/a&gt; monitors. The more, the better.&lt;/p&gt;&#xA;" OwnerUserId="29" LastActivityDate="2010-09-09T02:27:30.390" CommunityOwnedDate="2011-01-27T05:21:04.337" CommentCount="1" />
  <row Id="1606" PostTypeId="2" ParentId="1600" CreationDate="2010-09-09T02:28:03.013" Score="3" ViewCount="" Body="&lt;p&gt;No, I can't say I've ever felt that way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do, you may want to reevaluate your life, and figure out if there's something else you want to do with it.  Sitting in front of a computer for 8 hours a day, 5 days a week, 50 weeks a year, for 40 odd years would be thoroughly miserable if you weren't doing something you enjoyed.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-09T02:28:03.013" CommentCount="0" />
  <row Id="1607" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T02:28:24.477" Score="0" ViewCount="" Body="&lt;p&gt;I worked with a 20-person team in &lt;strong&gt;Lima, Peru&lt;/strong&gt; for several years on a classic ASP project. This was 10 years ago, so conventions may have changed, but at that time, all of the &lt;strong&gt;comments and variable names were in Spanish&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="467" LastActivityDate="2010-09-09T02:28:24.477" CommunityOwnedDate="2010-09-09T11:39:51.480" />
  <row Id="1608" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T02:33:21.760" Score="52" ViewCount="" Body="&lt;p&gt;Lack of exercise -&gt; Not eating much -&gt; unhealthy life style.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh and bad sleeping patterns &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-09T02:33:21.760" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="7" />
  <row Id="1609" PostTypeId="2" ParentId="154" CreationDate="2010-09-09T02:41:01.423" Score="7" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/yaXZQ.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T02:41:01.423" />
  <row Id="1610" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T02:45:34.080" Score="62" ViewCount="" Body="&lt;p&gt;Really need &quot;Ctrl+F&quot; for news papers, novels, magazine, text books&lt;/p&gt;&#xA;" OwnerUserId="120" LastEditorUserId="120" LastEditorDisplayName="" LastEditDate="2010-09-09T03:20:47.247" LastActivityDate="2010-09-09T03:20:47.247" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="5" />
  <row Id="1612" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T02:47:15.687" Score="36" ViewCount="" Body="&lt;p&gt;Mentally trying to Ctrl-Z on things I just said.&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="90" LastEditorDisplayName="" LastEditDate="2010-09-11T18:49:31.740" LastActivityDate="2010-09-11T18:49:31.740" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="7" />
  <row Id="1613" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T02:47:20.523" Score="16" ViewCount="" Body="&lt;p&gt;Put everything into two categories:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Either it can be formalized and expressed in terms of algorithms, or&lt;/li&gt;&#xA;&lt;li&gt;It's not real. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="468" LastActivityDate="2010-09-09T02:47:20.523" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="2" />
  <row Id="1614" PostTypeId="2" ParentId="1588" CreationDate="2010-09-09T02:48:17.683" Score="0" ViewCount="" Body="&lt;p&gt;As long as you connect 2 monitors minimum and an external keyboard then the laptop takes it for me.  The automatic battery backup has saved me several times. Of course you could connect your desktop to a ups and get a similar affect.&lt;/p&gt;&#xA;" OwnerUserId="5" LastActivityDate="2010-09-09T02:48:17.683" CommunityOwnedDate="2011-01-27T05:21:04.337" CommentCount="4" />
  <row Id="1615" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T02:49:48.243" Score="19" ViewCount="" Body="&lt;p&gt;I keep planning life around modifiability, separation of concerns, low coupling, etc.  I mean, it seems silly to hardcode my name on every form I ever fill out; why can't I just put &quot;See birth certificate&quot;, and then only ever have to change one piece of paper if I decided to change my name?  :)&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-09T02:49:48.243" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="3" />
  <row Id="1616" PostTypeId="2" ParentId="35" CreationDate="2010-09-09T02:50:02.293" Score="52" ViewCount="" Body="&lt;p&gt;Saying that Java is nice because it works on every OS is like saying that anal sex is nice because it works on every gender or species.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-24T23:43:19.760" LastActivityDate="2010-09-24T23:43:19.760" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="6" />
  <row Id="1617" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T02:50:26.523" Score="34" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Il semble que la perfection soit atteinte non quand il n'y a plus rien à&#xA;  ajouter, mais quand il n'y a plus rien à retrancher.&#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; Antoine de Saint-Exupéry, French writer (1900-1944), &lt;a href=&quot;http://en.wikiquote.org/wiki/Antoine_de_Saint-Exup%C3%A9ry#Terre_des_Hommes_.281939.29&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Terre des Hommes&lt;/em&gt;&lt;/a&gt; (1939)&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;(It would seem that perfection is attained not when there is nothing left to add, but when there is nothing left to take away.)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="471" LastActivityDate="2010-10-11T13:36:08.597" CommunityOwnedDate="2010-09-09T02:50:26.523" CommentCount="4" />
  <row Id="1618" PostTypeId="2" ParentId="154" CreationDate="2010-09-09T02:53:54.583" Score="20" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/rPf2b.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is my favorite. I LOL every time I see it.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-24T18:12:40.970" LastActivityDate="2010-09-24T18:12:40.970" CommentCount="2" />
  <row Id="1619" PostTypeId="2" ParentId="154" CreationDate="2010-09-09T02:58:44.077" Score="12" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/MhzyE.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T02:58:44.077" CommentCount="2" />
  <row Id="1620" PostTypeId="1" CreationDate="2010-09-09T03:01:36.687" Score="8" ViewCount="448" Body="&lt;p&gt;I am excited about the changes in PHP 6 previewed in PHP 5.3+. However, I wonder why it takes so long to release PHP 6? Books about it have been published since 2008, and announcements on it since 2007, but I am yet to hear about an alpha or a beta. Why does it take so long to release it? Or is that the way it goes with all languages when they transition to a major release where I guess it takes around 4-5 years to release?&lt;/p&gt;&#xA;" OwnerUserId="474" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-01-23T06:04:32.037" LastActivityDate="2011-01-23T08:56:48.327" Title="What is happening to PHP 6?" Tags="&lt;programming-languages&gt;&lt;php&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="1621" PostTypeId="2" ParentId="1600" CreationDate="2010-09-09T03:01:52.490" Score="27" ViewCount="" Body="&lt;p&gt;I've felt this way a few times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every time I came out of the funk, I realized I only felt that way because &lt;strong&gt;I wasn't learning anything new&lt;/strong&gt; and was stagnating.  As soon as I started learning again, it quickly became the most awesome career in the world.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-09T03:01:52.490" CommentCount="1" />
  <row Id="1622" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T03:15:54.693" Score="15" ViewCount="" Body="&lt;p&gt;I am so used to the backspace key that I literally can't write in a linear fashion anymore. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's terrible if I'm in a situation where I need to write long texts with a pen and paper. I would start writing Y and then realize that &quot;oh wait, I should've said X first&quot;, but once I write X I realize that I should rephrase Y, and having done that it becomes clear that Y needs a bit more introduction Z that goes between X and Y, and if I manage to do that I'll realize that the flow of the sentence is wrong so I need to correct punctuations, and as I do that I discover that I used the same word 4 times so I need to come up with synonyms and AAAAHHH!!!!!! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank god for erasable pens. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-09T03:15:54.693" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="5" />
  <row Id="1623" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T03:19:32.707" Score="10" ViewCount="" Body="&lt;p&gt;I use to indent every thing I write. Even in paper!&#xA;Ctrl + F is something I miss when reading a paper book.&lt;/p&gt;&#xA;" OwnerUserId="480" LastActivityDate="2010-09-09T03:19:32.707" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="1" />
  <row Id="1624" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T03:24:51.517" Score="0" ViewCount="" Body="&lt;p&gt;I'm from Brazil, and in my last job, some guys doesn't speak english, so we need to write things in portuguese, but most of the people write in english.&lt;/p&gt;&#xA;" OwnerUserId="480" LastActivityDate="2010-09-09T03:24:51.517" CommunityOwnedDate="2010-09-09T11:39:51.480" />
  <row Id="1625" PostTypeId="2" ParentId="681" CreationDate="2010-09-09T03:27:35.190" Score="9" ViewCount="" Body="&lt;p&gt;Pascal of course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Almost all pseudo code I have seen is close to Pascal.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-20T22:15:43.893" LastActivityDate="2010-09-20T22:15:43.893" CommentCount="1" />
  <row Id="1626" PostTypeId="1" AcceptedAnswerId="1808" CreationDate="2010-09-09T03:31:31.387" Score="11" ViewCount="372" Body="&lt;p&gt;Hello, I've been trying to do some freelancing work over at &lt;a href=&quot;http://odesk.com&quot; rel=&quot;nofollow&quot;&gt;http://odesk.com&lt;/a&gt; I've yet to even apply to my first job though because I'm flatly scared. I have been programming for about 6 years now(5 as a hobby, 1 as a profession), but have very little to show for it. The professional work I did is almost completely proprietary other than one website which I'm not proud of creating. Even my personal blog is very well.. in progress and looks very rough. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For cover letters odesk recommends basically just including relevant keywords and linking to examples that you've made. My problem is I have no real examples that I've made that I'm proud of that is relevant to most job postings. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do I do in such a situation? Just try to sound convincing? Is mentioning that I only use a language as part of hobby projects a good thing to mention? &lt;/p&gt;&#xA;" OwnerUserId="483" LastActivityDate="2010-09-09T12:59:55.550" Title="What would you put as a &quot;cover letter&quot; for a programming job?" Tags="&lt;career&gt;&lt;interview&gt;" AnswerCount="1" FavoriteCount="4" />
  <row Id="1627" PostTypeId="2" ParentId="1034" CreationDate="2010-09-09T03:35:20.043" Score="1" ViewCount="" Body="&lt;p&gt;It goes only for the &quot;Quality&quot; of your acknowledge, the real thing is on the real deal, with your creativity at work. I must say that I agree with Walter. In thee end, its all about the marketing.&lt;/p&gt;&#xA;" OwnerUserId="482" LastActivityDate="2010-09-09T03:35:20.043" />
  <row Id="1628" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T03:39:25.610" Score="21" ViewCount="" Body="&lt;p&gt;I often wish I could use git to resolve real life conflicts&lt;/p&gt;&#xA;" OwnerUserId="487" LastActivityDate="2010-09-09T03:39:25.610" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="3" />
  <row Id="1629" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T03:45:32.763" Score="2" ViewCount="" Body="&lt;p&gt;I'm from Quebec and a french speaking person, but all my code,comment and documentation is always done in english. But I know some companies in Quebec that &lt;b&gt;enforce&lt;/b&gt; French in the code (comments and object/variable naming).&lt;/p&gt;&#xA;" OwnerUserId="487" LastActivityDate="2010-09-09T03:45:32.763" CommunityOwnedDate="2010-09-09T11:39:51.480" CommentCount="1" />
  <row Id="1630" PostTypeId="2" ParentId="681" CreationDate="2010-09-09T03:45:36.180" Score="2" ViewCount="" Body="&lt;p&gt;How about &lt;strong&gt;COBOL&lt;/strong&gt;?  (which I believe was &lt;em&gt;designed&lt;/em&gt; to look like pseudocode)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's an excerpt From &lt;a href=&quot;http://99-bottles-of-beer.net/language-cobol-1820.html&quot; rel=&quot;nofollow&quot;&gt;99 Bottles of Beer&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;....&#xA;WHEN 2 Thru 99&#xA;   MOVE ZEROES TO Counting&#xA;   INSPECT Bottles,&#xA;      TALLYING Counting FOR LEADING ZEROES&#xA;   ADD 1 TO Counting GIVING Start-Position&#xA;   SUBTRACT Counting FROM 2 GIVING Positions&#xA;....&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-09T03:45:36.180" CommentCount="1" />
  <row Id="1631" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T03:45:40.833" Score="2" ViewCount="" Body="&lt;p&gt;Have everything organized, I only do something until I have enough resources to do it or a protocol to do it perfect...&#xA;I wish life could have some shortcuts!! Ctrl + C  &amp;amp;  Ctrl + V for homeworks...&lt;/p&gt;&#xA;" OwnerUserId="482" LastActivityDate="2010-09-09T03:45:40.833" CommunityOwnedDate="2010-09-10T10:20:25.267" />
  <row Id="1633" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T03:57:10.033" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Being able to get a machine to do what you want is the closest thing we've got in technology to adolescent wish-fulfillment.&#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; &lt;a href=&quot;http://en.wikipedia.org/wiki/Guy_L._Steele,_Jr.&quot; rel=&quot;nofollow&quot;&gt;Guy Steele&lt;/a&gt; in &lt;em&gt;Coders at Work&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="489" LastActivityDate="2010-10-11T13:43:16.787" CommunityOwnedDate="2010-09-09T03:57:10.033" />
  <row Id="1634" PostTypeId="1" AcceptedAnswerId="1642" CreationDate="2010-09-09T04:02:49.343" Score="6" ViewCount="404" Body="&lt;p&gt;As a student applying for jobs I'm often asked to send a CV, and I always feel stumped trying to write one since I don't actually have any real world experience. I do realize that many other students are probably in the same situation, but still... How does one makes himself look impressive and stand out in a CV when the &quot;previous experience&quot; section is completely empty? &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-14T21:42:24.253" Title="How do you write a CV when you don't have much real world experience?" Tags="&lt;career&gt;&lt;cv&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="1" />
  <row Id="1636" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T04:31:59.493" Score="12" ViewCount="" Body="&lt;p&gt;I'm from Bangalore, India. Programmers are from various states with &lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_Indian_languages_by_number_of_native_speakers&quot; rel=&quot;nofollow&quot;&gt;different languages&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We code in English, document in English, comment in English, naming convention is in English. English is our common language while talking in office.&lt;/p&gt;&#xA;" OwnerUserId="120" LastEditorUserId="120" LastEditorDisplayName="" LastEditDate="2010-09-09T11:04:05.607" LastActivityDate="2010-09-09T11:04:05.607" CommunityOwnedDate="2010-09-09T11:39:51.480" CommentCount="5" />
  <row Id="1637" PostTypeId="2" ParentId="1407" CreationDate="2010-09-09T04:35:32.533" Score="0" ViewCount="" Body="&lt;p&gt;Yeah, I'm using Google Chrome for web browsing; it's fast and reliable especially it supports most features of HTML5 and CSS3 while Firefox I'm using for my main web development; it's quite convenient with firebug but it's very slow working with javascript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope that the new release of Firefox would be better in term of performance and compiling javascript.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-09T04:35:32.533" />
  <row Id="1638" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T04:36:54.543" Score="0" ViewCount="" Body="&lt;p&gt;I'm from the Philippines. Most people code, document, and name variables in English here. Also, I find English to be one of the most suitable language to use in programming because it has richer vocabulary than most languages out there.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-09-09T04:36:54.543" CommunityOwnedDate="2010-09-09T11:39:51.480" />
  <row Id="1640" PostTypeId="2" ParentId="1634" CreationDate="2010-09-09T04:37:57.523" Score="1" ViewCount="" Body="&lt;p&gt;There's no way around the fact that you have no experience, so go get some.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One way is to join an open source project and work your way up to being a contributor.  Alternatively, you can start your own project, or even create and release your own product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are successful, then you will have demonstrated initiative and the ability to get results.&lt;/p&gt;&#xA;" OwnerUserId="479" LastActivityDate="2010-09-09T04:37:57.523" CommentCount="3" />
  <row Id="1641" PostTypeId="2" ParentId="1620" CreationDate="2010-09-09T04:41:58.653" Score="4" ViewCount="" Body="&lt;p&gt;The release timetable is not unusual for languages, and it's not even &lt;a href=&quot;http://php.net/releases/index.php&quot; rel=&quot;nofollow&quot;&gt;that unusual for PHP&lt;/a&gt;: 5.0 was released in 2004, but 4.0 was released in 2000. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compare this to the last stable releases for C (2000), Fortran (2003), or C++ (2003).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One other thing to keep in mind is that 5.3 was a major release in all but name. It adds a lot of stuff that was &lt;a href=&quot;http://news.php.net/php.internals/47120&quot; rel=&quot;nofollow&quot;&gt;originally destined for PHP 6&lt;/a&gt;. Due to development problems with unicode support (a major part of PHP 6), it was decided to release what was stable at the time as a 5.x branch.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-09T04:41:58.653" />
  <row Id="1642" PostTypeId="2" ParentId="1634" CreationDate="2010-09-09T04:49:42.627" Score="3" ViewCount="" Body="&lt;p&gt;Your CV can be impressive even if you have no experience. Companies that recruit people with no experience, mostly for entry-level positions, naturally don't expect to be impressed by applicants' work experience. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So try to impress them by telling them about yourself, instead. If you have good grades, or have accomplished something noteworthy - mention that. If you have interesting hobbies or are very skillful at playing some instrument, that's also something to mention (often a recruiter may empathize because he shares the same hobby, or can speak the same foreign language, etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of all, don't try to fake experience. It's so easy to tell when somebody's claiming to be more experienced than they really are. Own your lack of experience and try to convince your prospective employer that you're smart, a fast-learner and someone they're going to enjoy working with.&lt;/p&gt;&#xA;" OwnerUserId="494" LastActivityDate="2010-09-09T04:49:42.627" />
  <row Id="1643" PostTypeId="2" ParentId="1588" CreationDate="2010-09-09T04:54:38.363" Score="2" ViewCount="" Body="&lt;p&gt;I'd go for laptops with external monitors. It's perfect for situations where you get tired of coding on your desk and you want to go somewhere else to code. You can also take it with you around the office in case you want to show or discuss your code with your officemates personally while not having them go all the way to your far away desk.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-09-09T04:54:38.363" CommunityOwnedDate="2011-01-27T05:21:04.337" CommentCount="2" />
  <row Id="1645" PostTypeId="2" ParentId="408" CreationDate="2010-09-09T04:56:35.317" Score="0" ViewCount="" Body="&lt;p&gt;When I do a Code Golf challenge, I inevitably reach for a common set of design patterns that inevitably lead to shorter code: this set increases over time as more code golf challenges are done or just in the course of normal use of a language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, if I need to have an incremental loop, one thing I might do normally is:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for ($i = 1; $i &amp;lt;= 10; $i++) {&#xA;  // code&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$i = 1;&#xA;&#xA;while ($i &amp;lt; 10) {&#xA;  // code&#xA;&#xA;  $i++;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But this always works too:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;while ($i++&amp;lt;10) {&#xA;  // code&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Other things include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Using shorter versions of standard library functions (&lt;code&gt;fwrite()&lt;/code&gt; instead of &lt;code&gt;file_put_contents()&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Using variables to repeat expressions&lt;/li&gt;&#xA;&lt;li&gt;taking advantage of how a language handles brackets and line breaks; in most code golfs, the output rarely requires a complex code block spanning more than one line (unless you're using a language where whitespace is substantial)&lt;/li&gt;&#xA;&lt;li&gt;taking advantage of how a language handles output (&lt;code&gt;&amp;lt;?=&lt;/code&gt; shorter than &lt;code&gt;print&lt;/code&gt; or &lt;code&gt;echo&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-09T05:01:41.077" LastActivityDate="2010-09-09T05:01:41.077" CommentCount="0" />
  <row Id="1646" PostTypeId="2" ParentId="1600" CreationDate="2010-09-09T05:01:10.413" Score="9" ViewCount="" Body="&lt;p&gt;You can learn up to 6 methods to remotely call code, and each seems more clever than the previous, so you're happy to learn a new thing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But then the 7th RPC method, you're like: &quot;Really? Protobuf over SMTP? People are actually doing this??&quot; and you realize that the 1st RPC method you've ever used was just fine, really, and that programming is basically learning to do the same things every two years in a different language. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can get tiresome. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not me, though - I love it! Just found an Erlang port of Thrift over Twitter and I can't wait to try it out. &lt;/p&gt;&#xA;" OwnerUserId="494" LastActivityDate="2010-09-09T05:01:10.413" CommentCount="1" />
  <row Id="1647" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T05:04:12.180" Score="9" ViewCount="" Body="&lt;p&gt;Programming gave me a habit to try to hit Ctrl+W (Unix shortcut, used in vim and Bash) to erase previous word.  However, in most programs (especially browsers) it's used for closing the current tab...&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-09T05:04:12.180" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="4" />
  <row Id="1650" PostTypeId="2" ParentId="1482" CreationDate="2010-09-09T05:28:50.700" Score="1" ViewCount="" Body="&lt;p&gt;Used to write bridges for insurance companies: &lt;code&gt;FarmersExchangeKey()&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="509" LastActivityDate="2010-09-09T05:28:50.700" CommunityOwnedDate="2011-02-01T20:08:55.700" />
  <row Id="1653" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T05:35:53.177" Score="27" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Hungarian notation&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sample extracted from MSDN copy of Charles Simonyi's &quot;explication of the Hungarian notation identifier naming convention&quot;.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;1  #include “sy.h”&#xA;2  extern int *rgwDic;&#xA;3  extern int bsyMac;&#xA;4  struct SY *PsySz(char sz[])&#xA;6      {&#xA;7      char *pch;&#xA;8      int cch;&#xA;9      struct SY *psy, *PsyCreate();&#xA;10      int *pbsy;&#xA;11      int cwSz;&#xA;12      unsigned wHash=0;&#xA;13      pch=sz;&#xA;14      while (*pch!=0&#xA;15        wHash=(wHash11+*pch++;&#xA;16      cch=pch-sz;&#xA;17      pbsy=&amp;rgbsyHash[(wHash&amp;077777)%cwHash];&#xA;18      for (; *pbsy!=0; pbsy = &amp;psy-&gt;bsyNext)&#xA;19        {&#xA;20        char *szSy;&#xA;21        szSy= (psy=(struct SY*)&amp;rgwDic[*pbsy])-&gt;sz;&#xA;22        pch=sz;&#xA;23        while (*pch==*szSy++)&#xA;24            {&#xA;25            if (*pch++==0)&#xA;26              return (psy);&#xA;27            }&#xA;28        }&#xA;29      cwSz=0;&#xA;30      if (cch&gt;=2)&#xA;31        cwSz=(cch-2/sizeof(int)+1;&#xA;32      *pbsy=(int *)(psy=PsyCreate(cwSY+cwSz))-rgwDic;&#xA;33      Zero((int *)psy,cwSY);&#xA;34      bltbyte(sz, psy-&gt;sz, cch+1);&#xA;35      return(psy);&#xA;36      }&lt;/pre&gt;&#xA;" OwnerUserId="509" LastActivityDate="2010-09-09T05:35:53.177" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="12" />
  <row Id="1654" PostTypeId="2" ParentId="35" CreationDate="2010-09-09T05:38:24.717" Score="59" ViewCount="" Body="&lt;p&gt;An architect, an artist and a programmer are having an argument about whether it's better to have a wife or a mistress.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The architect says &quot;A wife! You can establish a strong foundation that will stand the test of time&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The artist says &quot;A mistress! Together you can create passion and energy&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The programmer says &quot;Both!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The architect and the engineer turn to him and say &quot;Both? What do you mean?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Well&quot;, says the programmer, &quot;The wife thinks you're with the mistress, the mistress thinks you're with the wife and you can go back to the lab and do some more coding&quot;.&lt;/p&gt;&#xA;" OwnerUserId="516" LastActivityDate="2010-09-09T05:38:24.717" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="1" />
  <row Id="1655" PostTypeId="2" ParentId="1588" CreationDate="2010-09-09T05:39:33.110" Score="7" ViewCount="" Body="&lt;p&gt;Very much depends on what you code, how you code and the tools you use/need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My development projects...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Are graphics intensive (2D and 3D).&lt;/li&gt;&#xA;&lt;li&gt;Are compute intensive.&lt;/li&gt;&#xA;&lt;li&gt;Require multiple IDEs and usually&#xA;more than one instance each.&lt;/li&gt;&#xA;&lt;li&gt;Include large volumes of reference&#xA;material...usually PDFs.&lt;/li&gt;&#xA;&lt;li&gt;May target custom hardware.&lt;/li&gt;&#xA;&lt;li&gt;May require CAD/CAM/CAE&#xA;tools.&lt;/li&gt;&#xA;&lt;li&gt;May drive me to drink.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So, for me a desktop with several large monitors is more of a requirement than a choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also suggest that working from a loaded desktop with multiple 24&quot; monitors is going to be the more productive choice regardless. Having your GUI designer, code editor and browser on separate monitors saves a lot of clicks and trips to the task bar remember: &lt;strong&gt;&quot;Clicks take time and time is money&quot;&lt;/strong&gt;...is not just something your grandfather used to say...it adds up...plus...Coding, reading stackoverflow (&lt;em&gt;aka: geekporn&lt;/em&gt;) and watching [some geek movie] all at the same time doesn't really suck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, at the end of the day desktop it is what works desktop best for you. desktop&lt;/p&gt;&#xA;" OwnerUserId="497" LastActivityDate="2010-09-09T05:39:33.110" CommunityOwnedDate="2011-01-27T05:21:04.337" CommentCount="1" />
  <row Id="1656" PostTypeId="2" ParentId="539" CreationDate="2010-09-09T05:41:37.453" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Eclipse Color Scheme for ViM&lt;/strong&gt; of course:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://juan.axisym3.net/vim-color-schemes/&quot; rel=&quot;nofollow&quot;&gt;http://juan.axisym3.net/vim-color-schemes/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/iyoQM.jpg&quot; alt=&quot;Eclipse Color Scheme&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="509" LastActivityDate="2010-09-09T05:41:37.453" CommunityOwnedDate="2010-09-16T13:10:40.707" />
  <row Id="1657" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T05:43:39.313" Score="32" ViewCount="" Body="&lt;p&gt;Identifying deadlock situations in food recipes that require steps to be performed in parallel.&lt;/p&gt;&#xA;" OwnerUserId="516" LastActivityDate="2010-09-09T05:43:39.313" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="6" />
  <row Id="1658" PostTypeId="2" ParentId="1202" CreationDate="2010-09-09T05:46:48.407" Score="19" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Ada_lovelace&quot; rel=&quot;nofollow&quot;&gt;Ada Lovelace&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Charles Babbage was a hardware engineer, but Ada was the first programmer.&lt;/p&gt;&#xA;" OwnerUserId="516" LastActivityDate="2010-09-09T10:31:03.757" CommunityOwnedDate="2010-09-09T05:46:48.407" CommentCount="1" />
  <row Id="1659" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T05:47:33.350" Score="13" ViewCount="" Body="&lt;p&gt;Everything has to be in powers of 2.&lt;/p&gt;&#xA;" OwnerUserId="81" LastEditorUserId="1732" LastEditorDisplayName="" LastEditDate="2010-09-22T11:55:01.900" LastActivityDate="2010-09-22T11:55:01.900" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="5" />
  <row Id="1660" PostTypeId="2" ParentId="870" CreationDate="2010-09-09T05:49:06.160" Score="31" ViewCount="" Body="&lt;p&gt;Easy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/WwziS.jpg&quot; alt=&quot;Pragmatic Programmer&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="521" LastActivityDate="2010-09-09T05:49:06.160" CommunityOwnedDate="2011-01-21T21:28:48.980" CommentCount="3" />
  <row Id="1661" PostTypeId="2" ParentId="1108" CreationDate="2010-09-09T05:50:25.440" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.newscientist.com/&quot; rel=&quot;nofollow&quot;&gt;New Scientist&lt;/a&gt;. Interesting magazine, and far better at covering any kind of science topic than any of the traditional media (newpaper, TV, etc).&lt;/p&gt;&#xA;" OwnerUserId="516" LastActivityDate="2010-09-09T05:50:25.440" />
  <row Id="1662" PostTypeId="1" AcceptedAnswerId="1673" CreationDate="2010-09-09T05:51:07.530" Score="15" ViewCount="892" Body="&lt;p&gt;I know people work from 8 to 10 and also people work from 9 to 5. I wonder what is the regular working hour for most programmers. Would you take it into consideration when you look for a job?&lt;/p&gt;&#xA;" OwnerUserId="422" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T14:05:50.123" LastActivityDate="2010-12-21T16:40:34.820" Title="What's the regular working hour in programmers world?" Tags="&lt;work-environment&gt;&lt;time&gt;" AnswerCount="16" CommentCount="1" FavoriteCount="5" />
  <row Id="1664" PostTypeId="2" ParentId="1371" CreationDate="2010-09-09T06:03:17.833" Score="1" ViewCount="" Body="&lt;p&gt;When management says &quot;We're going to postpone the next sprint and do documentation instead&quot;&lt;/p&gt;&#xA;" OwnerUserId="509" LastActivityDate="2010-09-09T06:03:17.833" CommunityOwnedDate="2011-01-23T19:41:07.757" />
  <row Id="1665" PostTypeId="2" ParentId="247" CreationDate="2010-09-09T06:04:45.900" Score="4" ViewCount="" Body="&lt;p&gt;I used to work for IBM where COBOL and PL/I code was written every day. Also from big companies relying on IBMs mainframes like many banks which require thousands of transactions per second those languages are still heavilly used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't want to work in a place like that (That's why I just worked there for 6 months) then don't even think of learning those languages.&lt;/p&gt;&#xA;" OwnerUserId="232" LastActivityDate="2010-09-09T06:04:45.900" CommunityOwnedDate="2011-05-02T13:21:01.583" CommentCount="1" />
  <row Id="1666" PostTypeId="2" ParentId="1454" CreationDate="2010-09-09T06:04:57.323" Score="0" ViewCount="" Body="&lt;p&gt;I'm trying out &lt;a href=&quot;http://www.appigo.com/todo&quot; rel=&quot;nofollow&quot;&gt;ToDo&lt;/a&gt; now on iPhone. I like it has many task type. e.g. Project, Call a contact, Email a contact...etc. It's handy so you can identify and finish minor task easily.&lt;/p&gt;&#xA;" OwnerUserId="422" LastActivityDate="2010-09-09T06:04:57.323" />
  <row Id="1667" PostTypeId="2" ParentId="826" CreationDate="2010-09-09T06:19:05.210" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.clipmenu.com/&quot; rel=&quot;nofollow&quot;&gt;ClipMenu&lt;/a&gt; Clipboard Manager - Allows you to keep/select clipboard history. Great when you have to copy multiple blocks, and creating code snippets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.panic.com/coda/&quot; rel=&quot;nofollow&quot;&gt;Coda&lt;/a&gt; - Web editor&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://macrabbit.com/cssedit/&quot; rel=&quot;nofollow&quot;&gt;CSSEdit&lt;/a&gt; - CSS Editor&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.vanheusden.com/multitail/&quot; rel=&quot;nofollow&quot;&gt;MultiTail&lt;/a&gt; - tail multiple log files at the same time&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.araxis.com/merge_mac/index.html&quot; rel=&quot;nofollow&quot;&gt;Araxis Merge&lt;/a&gt; or &lt;a href=&quot;http://www.kaleidoscopeapp.com/&quot; rel=&quot;nofollow&quot;&gt;Kaleidoscope&lt;/a&gt; - File diff/compare&lt;/p&gt;&#xA;" OwnerUserId="509" LastActivityDate="2010-09-09T06:19:05.210" />
  <row Id="1668" PostTypeId="2" ParentId="1108" CreationDate="2010-09-09T06:23:15.070" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.code-magazine.com/&quot; rel=&quot;nofollow&quot;&gt;Code Magazine&lt;/a&gt; is good. Variety every issue :)&lt;/p&gt;&#xA;" OwnerUserId="524" LastActivityDate="2010-09-09T06:23:15.070" />
  <row Id="1669" PostTypeId="2" ParentId="1662" CreationDate="2010-09-09T06:30:50.040" Score="0" ViewCount="" Body="&lt;p&gt;In Australia, you'd find it hard to find a programming job that isn't approximately 9-5.  Programmers generally work in offices during business hours.  Of course, the actual hours you work can be variable as with any job.  Some places expect extra hours, but I don't think it's common.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can find a job where the hours or location are &lt;em&gt;flexible&lt;/em&gt;, there can be significant benefits.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You can take advantage of your natural peak productivity times (mine are later than 9-5)&lt;/li&gt;&#xA;&lt;li&gt;Your workplace is likely to have less people in it to come and ruin your concentration.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm realistic when it comes to working hours - if the office is open 9-5, I'll expect to be there 9-5.  I'm happy to work extra hours when the pressure is on, as long as the workplace is also flexible when I really need time off.  If a workplace starts expecting 10 hour days and 6 day weeks every week of the year, then that's unreasonable.&lt;/p&gt;&#xA;" OwnerUserId="91" LastActivityDate="2010-09-09T06:30:50.040" />
  <row Id="1670" PostTypeId="2" ParentId="1662" CreationDate="2010-09-09T06:31:57.887" Score="2" ViewCount="" Body="&lt;p&gt;Depends mostly on the company. Startups will want you 24/7 while established companies will most likely do 9 to 5. I personally like structure so a 9 to 5 works for me.&lt;/p&gt;&#xA;" OwnerUserId="509" LastActivityDate="2010-09-09T06:31:57.887" />
  <row Id="1671" PostTypeId="2" ParentId="1454" CreationDate="2010-09-09T06:36:20.013" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.nozbe.com/&quot; rel=&quot;nofollow&quot;&gt;Nozbe&lt;/a&gt; and &lt;a href=&quot;http://www.pivotaltracker.com/&quot; rel=&quot;nofollow&quot;&gt;Pivotal Tracker&lt;/a&gt; are pretty good.&lt;/p&gt;&#xA;" OwnerUserId="74" LastActivityDate="2010-09-09T06:36:20.013" />
  <row Id="1672" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T06:37:13.003" Score="3" ViewCount="" Body="&lt;p&gt;I'm from Denmark.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code, documentation, naming, design documents etc. is all done in English. I have only ever seen otherwise in hobbyist and student projects - and even then only very rarely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only open question that I see is what to do about (potentially) user-visible strings: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;window.setHeader(&quot;????&quot;);&#xA;&#xA;throw new ThisMightBeSeenByTheUserInAnErrorMessageException(&quot;????&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;For exceptions I prefer using English messages. It looks better and you have to deal with English exception-messages from frameworks anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For GUI texts I am more agnostic. It is a more elegant solution to write everything in English and use a localization solution to translate to Danish, but it is a lot of work for an application that will only ever be used by Danish users.&lt;/p&gt;&#xA;" OwnerUserId="535" LastActivityDate="2010-09-09T06:37:13.003" CommunityOwnedDate="2010-09-09T11:39:51.480" CommentCount="2" />
  <row Id="1673" PostTypeId="2" ParentId="1662" CreationDate="2010-09-09T07:00:35.643" Score="30" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I wonder what is the regular working&#xA;  hour for most programmers.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;For most most of the business world an 8h day is still centered on 9 to 5. Some more progressive companies might let you pick a start time between say 6am and 10am, or the like, and your day ends 8hrs later...these companies are few and managers are usually given veto power over their group.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Would you take it into consideration&#xA;  when you look for a job?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Absolutely... I spent 12 years working 5pm to 1am...yes it was a very &lt;em&gt;interesting&lt;/em&gt; software gig...best 12 years of my professional life. I always arrived at work feeling refreshed and on my game....That was followed by 6 horrid years of 8am to 5pm. I always arrived at work feeling tired and rushed and it would usually take 2 or 3 hours before I could get in a groove. When I left I vowed to never take a job with a required start time before 11am. Not an easy task, but I poked around for companies that embrace the telecommute and found several good choices...I currently live 1800 miles from my place of employment and typically work from noon to 10pm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is the exception...at most companies there is always pressure from the people that believe getting up a 5am somehow makes you a better person...an idea with no basis in fact...&lt;em&gt;unless you are a farmer&lt;/em&gt;. Allowing people to work the hours that they are most productive in would be a better idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Sorry if I got off on a rant.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="497" LastActivityDate="2010-09-09T07:00:35.643" CommentCount="8" />
  <row Id="1674" PostTypeId="1" AcceptedAnswerId="2768" CreationDate="2010-09-09T07:12:52.527" Score="5" ViewCount="302" Body="&lt;p&gt;i wonder apart from those very simple hello world apps, what other programs should i try developing for learning. i am entering uni next year and wonder what kind of programs will be developed in that environment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;this is not really a language specific thing, but if you want to know what i use currently mainly&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;windows: C#/WPF - i studied java/vb etc in poly but i think C# is the way to go, maybe even F#&lt;/li&gt;&#xA;&lt;li&gt;web: PHP/MySQL, Zend Framework/Doctrine, + HTML/CSS/JS(jQuery) of course. looking to try google app engine with python too. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;for now, i am thinking of &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;todo lists&lt;/li&gt;&#xA;&lt;li&gt;apps that integrate with api eg. twitter/tumblr which i use&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;text editor - i am currently trying to develop a text editor that uses markdown and generates html files for viewing (link to blog entry). not very pratical after i started developing it. cos when editing theres no formatting and in HTML format, i cannot edit directly &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;blog software (for web)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="526" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2011-04-26T15:01:29.660" LastActivityDate="2011-04-26T21:56:04.033" Title="Suggestions for Programs to develop for learning" Tags="&lt;learning&gt;&lt;personal-projects&gt;" AnswerCount="5" FavoriteCount="2" />
  <row Id="1675" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T07:16:00.693" Score="5" ViewCount="" Body="&lt;p&gt;I live and work in the Netherlands, but all the code we write is in English. Here are some reasons I can think of why we code in English:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The .NET framework we work with is in English. It's always better to &lt;strong&gt;follow conventions&lt;/strong&gt; of the framework you're working with and I believe this includes the language.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Dutch is a horrible language&lt;/strong&gt; for describing technical concepts. English has words that can accurately describe something technical, e.g. a piece of software, but many of these words have no Dutch equivalent. The word &quot;interact&quot; is an example of this; there's no commonly used Dutch word that conveys the same message.&lt;/li&gt;&#xA;&lt;li&gt;A small percentage of the company doesn't speak Dutch (yet).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The only reason I can think of why you would &lt;em&gt;not&lt;/em&gt; code in English, is in the context of &lt;a href=&quot;http://en.wikipedia.org/wiki/Domain-driven_design&quot; rel=&quot;nofollow&quot;&gt;domain-driven design&lt;/a&gt;. Practicing DDD includes defining a ubiquitous language with your client. If your client demands the use of non-English terms, it would be unwise to translate these terms to English in your code; it defeats the purpose of the ubiquitous language.&lt;/p&gt;&#xA;" OwnerUserId="540" LastActivityDate="2010-09-09T07:16:00.693" CommunityOwnedDate="2010-09-09T11:39:51.480" CommentCount="2" />
  <row Id="1677" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T07:27:06.070" Score="2" ViewCount="" Body="&lt;p&gt;I am currently in the Netherlands, but coming from Russia originally. 11 years ago, many programmers in Russia didn't have a good command of English, hence the comments were often in Russian. Variable names and function methods were still in English, or what people thought was English, simply because corresponding Russian words tend to be long, and sometimes seem to obscure the sense. Now it's probably like everywhere: the more professional people are, the more the chance that their comments are in English.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the Netherlands, I have seen Dutch comments and variable / method names in the company where the majority of the programmers were Dutch (such companies do exist:) ) But it was the only case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, the question 'Did you know the Latin alphabet until you came to the West' used to annoy me, until I have learned to laugh at it:)&lt;/p&gt;&#xA;" OwnerUserId="262" LastActivityDate="2010-09-09T07:27:06.070" CommunityOwnedDate="2010-09-09T11:39:51.480" />
  <row Id="1678" PostTypeId="2" ParentId="539" CreationDate="2010-09-09T07:27:37.190" Score="1" ViewCount="" Body="&lt;p&gt;I use the defaults of whatever IDE I use. I tried changing to a dark one but I couldn't get used to it. What I do change though, is the screen brightness. I lower it until I feel like I'm reading a book. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-09T07:27:37.190" CommunityOwnedDate="2010-09-16T13:10:40.707" />
  <row Id="1679" PostTypeId="2" ParentId="1454" CreationDate="2010-09-09T07:53:17.527" Score="0" ViewCount="" Body="&lt;p&gt;I use Evernote for personal stuff, and anything I see during the day I want to take home and read up on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;During the day, we use BugTracker.net for everything...but that's probably another topic...&lt;/p&gt;&#xA;" OwnerUserId="550" LastActivityDate="2010-09-09T07:53:17.527" />
  <row Id="1680" PostTypeId="2" ParentId="1" CreationDate="2010-09-09T07:59:23.893" Score="16" ViewCount="" Body="&lt;p&gt;I think the rule is quite simple: imagine a complete stranger seeing your code. You probably will be a stranger to your own code in 5 years.&#xA;Try to minimize the mental effort to understand your code for this stranger.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-09-09T07:59:23.893" CommunityOwnedDate="2011-01-31T09:04:54.130" CommentCount="4" />
  <row Id="1681" PostTypeId="2" ParentId="1371" CreationDate="2010-09-09T08:00:16.447" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Having worked on a failed project is one of the few things that most programmers have in common, regardless of language used, industry or experience.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Good, that's a relief!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think not having daily, &lt;em&gt;helpful&lt;/em&gt; management oversight is key to spotting creep. I believe that if you have the right information, if you get your devs to input the right information, then you can spot slippage quite quickly. What you do with it after that - well that's more politics and less dev...&lt;/p&gt;&#xA;" OwnerUserId="550" LastActivityDate="2010-09-09T08:00:16.447" CommunityOwnedDate="2011-01-23T19:41:07.757" />
  <row Id="1682" PostTypeId="2" ParentId="1662" CreationDate="2010-09-09T08:05:48.027" Score="0" ViewCount="" Body="&lt;p&gt;Personally, I prefer programming during work hours. The key is to make sure that you get plenty of rest and don't chop and change your hours all the time (ie. don't program 9am-5pm one day then decide to do program 11pm-4am, then the next day do something else). You body and mind can't handle that type of working and you will find it hard to concentrate on the code.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-09T08:05:48.027" CommentCount="1" />
  <row Id="1683" PostTypeId="2" ParentId="1454" CreationDate="2010-09-09T08:06:07.097" Score="0" ViewCount="" Body="&lt;p&gt;I mainly do GTD in Outlook using @Ongoing, @WaitingFor and @Someday folders with included 1, 2, 3, ... subfolders for priorisation, since most of my time is spend with giving and recieving information by email.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition, i do GTD in a separate text file if things are getting too complex.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For personal things i use a hosted DokuWiki and physical index cards.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-09-09T08:06:07.097" />
  <row Id="1685" PostTypeId="2" ParentId="886" CreationDate="2010-09-09T08:08:53.470" Score="1" ViewCount="" Body="&lt;p&gt;I like: music (I am a choir singer and can play piano a bit), sport (clmbing and cycling - climbing I have started recently and enjoy it a lot - it is a great way to both relax and stay fit!); cooking and furniture assembling, whenever I have a chance to do any of them, is also fun, though cooking happens more often ;) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like researching programming topics which I haven't yet encounter at my work too (I am playing with Scala now). With regard to that, I like solving puzzles like those at &lt;a href=&quot;http://www.projecteuler.net&quot; rel=&quot;nofollow&quot;&gt;http://www.projecteuler.net&lt;/a&gt;, it is both fun and useful. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I like reading, but mostly SF or non-fiction books like philosophy or linguistics (which is my other hobby by the way). Not sure if all this is a common pattern, but that's what I have. Oh, and raising kids (with no purpose of making programmers of them ;) )&lt;/p&gt;&#xA;" OwnerUserId="262" LastActivityDate="2010-09-09T08:08:53.470" />
  <row Id="1686" PostTypeId="2" ParentId="282" CreationDate="2010-09-09T08:13:04.767" Score="0" ViewCount="" Body="&lt;p&gt;These are all non-programming though very interesting.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://itc.conversationsnetwork.org/series/technation.html&quot; rel=&quot;nofollow&quot;&gt;TechNation&lt;/a&gt; - &lt;em&gt;Public Radio weekly program focusing on the impact of technology, science, the media and Internet. Hosted by Dr. Moira Gunn&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.longnow.org/seminars/podcast/&quot; rel=&quot;nofollow&quot;&gt;Seminars About Long-term Thinking&lt;/a&gt; - &lt;em&gt;The Long Now Foundation's monthly Seminars were started in 02003 to build a compelling body of ideas about long-term thinking; to help nudge civilization toward our goal of making long-term thinking automatic and common instead of difficult and rare.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://itc.conversationsnetwork.org/series/innovators.html&quot; rel=&quot;nofollow&quot;&gt;Interviews With Innovators by Jon Udell &lt;/a&gt; - &lt;em&gt;Jon Udell is an author, information architect, software developer, and new media innovator. In his day job with Microsoft, and also here on ITConversations, he explores a wide range of issues at the intersection of technology and society.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="322" LastActivityDate="2010-09-09T08:13:04.767" CommunityOwnedDate="2010-12-21T06:02:41.540" />
  <row Id="1687" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T08:15:57.513" Score="12" ViewCount="" Body="&lt;p&gt;I'm from Sweden and both me and my colleagues code in English. I think this is a good thing, but sometimes it can be difficult to come up with English equivalents to customer specific terms and expressions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My reasons for writing code in English:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Allmost all programming languages I have ever used have been written in English (mixing languages would make the code harder to read for me)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Most popular frameworks and third party extension are written in English (again, mixing languages would only be a distraction)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Swedish characters (åäö) are usually not allowed when naming variables and functions&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If the other team members are from different countries we can still collaborate&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If I need support from a platform vendor it is is much easier for them to help me if they can understand my code&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It is easier to outsource support&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="543" LastActivityDate="2010-09-09T08:15:57.513" CommunityOwnedDate="2010-09-09T11:39:51.480" CommentCount="2" />
  <row Id="1688" PostTypeId="2" ParentId="247" CreationDate="2010-09-09T08:20:16.627" Score="6" ViewCount="" Body="&lt;p&gt;Alot of european companies still rely heavily on mainframes running like z/vse and cobol programs. There is a demand for skilled cobol programmers that noone thinks the market will fill which drives up the salary, alot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question should be, &quot;will I ever develop something new using cobol?&quot; since pretty much everything is maintenance or variations of existing mission critical stuff.&lt;/p&gt;&#xA;" OwnerUserId="127" LastActivityDate="2010-09-09T08:20:16.627" CommunityOwnedDate="2011-05-02T13:21:01.583" />
  <row Id="1689" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T08:24:27.903" Score="11" ViewCount="" Body="&lt;p&gt;Not really a programming quote, more of an IT one, but one that my A-Level IT teacher drummed into me aged 16:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Typing is no substitute for Thinking&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="550" LastEditorUserId="6473" LastEditorDisplayName="" LastEditDate="2010-12-26T04:52:20.810" LastActivityDate="2010-12-26T04:52:20.810" CommunityOwnedDate="2010-09-09T08:24:27.903" CommentCount="2" />
  <row Id="1692" PostTypeId="1" AcceptedAnswerId="1704" CreationDate="2010-09-09T08:37:04.227" Score="5" ViewCount="248" Body="&lt;p&gt;I'm trying to get into using Virtual Desktops, as I'm told it will make me more productive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What to people use. Without actually having used them before, things I imagine that would be important would include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ability to quickly change between them using keyboard.&lt;/li&gt;&#xA;&lt;li&gt;a brief popup to show me which one I'd moved to (with a custom name I give it)&lt;/li&gt;&#xA;&lt;li&gt;different wallpaper on each one (I think this would create the right mood for whatever the desktop was for (coding, communication, personal etc)&lt;/li&gt;&#xA;&lt;li&gt;ability for desktops to remember which apps were open, and ideally, where on the screen, so opening the desktop app would open all the other apps in their correct desktops.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Is there anything (free!) that does this? Or are there compromises, or anything else which I would find useful. I've just installed VirtuaWin, and it's good, but is missing a couple of the things above.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit: apologies - this was meant as a Windows-skewed question. Lucky *nix people have better, baked-in solutions!&lt;/p&gt;&#xA;" OwnerUserId="550" LastEditorUserId="550" LastEditorDisplayName="" LastEditDate="2010-09-09T15:18:29.977" LastActivityDate="2010-10-21T20:13:01.100" Title="What's you're favourite (free) Virtual Desktop application?" Tags="&lt;work-environment&gt;&lt;windows&gt;&lt;applications&gt;" AnswerCount="5" CommentCount="5" FavoriteCount="3" />
  <row Id="1693" PostTypeId="2" ParentId="1482" CreationDate="2010-09-09T08:37:25.943" Score="3" ViewCount="" Body="&lt;p&gt;All the pages, methods, class names, parameters relating to our website's diary functionality are misspelt as &quot;Dairy&quot;. Makes me chuckle every time I see it, especially the sproc names &lt;code&gt;getDairy&lt;/code&gt;, &lt;code&gt;setDairy&lt;/code&gt; etc.&lt;/p&gt;&#xA;" OwnerUserId="100" LastActivityDate="2010-09-09T08:37:25.943" CommunityOwnedDate="2011-02-01T20:08:55.700" />
  <row Id="1696" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T08:38:35.553" Score="24" ViewCount="" Body="&lt;p&gt;Paying too big attention to minuscule unclear details (which can annoy people because they expect that you make an assumption yourself and live with it). Wait... didn't it make me a programmer in the first place?&lt;/p&gt;&#xA;" OwnerUserId="262" LastActivityDate="2010-09-09T08:38:35.553" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="2" />
  <row Id="1699" PostTypeId="2" ParentId="1482" CreationDate="2010-09-09T08:41:53.230" Score="1" ViewCount="" Body="&lt;p&gt;functoin instead of function :( Luckily it most cases it blows up everything quickly enough.&lt;/p&gt;&#xA;" OwnerUserId="262" LastActivityDate="2010-09-09T08:41:53.230" CommunityOwnedDate="2011-02-01T20:08:55.700" CommentCount="1" />
  <row Id="1700" PostTypeId="2" ParentId="501" CreationDate="2010-09-09T08:45:01.983" Score="2" ViewCount="" Body="&lt;p&gt;The fact that Python relies on text formatting.&lt;/p&gt;&#xA;" OwnerUserId="262" LastActivityDate="2010-09-09T08:45:01.983" CommunityOwnedDate="2010-09-09T08:45:01.983" />
  <row Id="1701" PostTypeId="1" AcceptedAnswerId="3001" CreationDate="2010-09-09T08:46:03.293" Score="16" ViewCount="623" Body="&lt;p&gt;I am currently reading the recently published &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596155409&quot; rel=&quot;nofollow&quot;&gt;Being Geek&lt;/a&gt; by Michael &quot;Rands&quot; Lopp and I can't get enough of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/rb36p.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any other career guidance books aimed directly or indirectly at programmers that are worth reading?&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2011-02-20T03:17:09.477" Title="Career guidance books for programmers" Tags="&lt;career&gt;&lt;books&gt;&lt;career-advice&gt;" AnswerCount="8" CommentCount="1" FavoriteCount="16" />
  <row Id="1703" PostTypeId="2" ParentId="1371" CreationDate="2010-09-09T08:53:09.423" Score="7" ViewCount="" Body="&lt;p&gt;Bored team members.&lt;/p&gt;&#xA;" OwnerUserId="262" LastActivityDate="2010-09-09T08:53:09.423" CommunityOwnedDate="2011-01-23T19:41:07.757" />
  <row Id="1704" PostTypeId="2" ParentId="1692" CreationDate="2010-09-09T08:58:56.887" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://dexpot.de/index.php?id=home&quot; rel=&quot;nofollow&quot;&gt;http://dexpot.de/index.php?id=home&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="343" LastActivityDate="2010-09-09T08:58:56.887" CommentCount="2" />
  <row Id="1705" PostTypeId="2" ParentId="1482" CreationDate="2010-09-09T08:59:50.477" Score="2" ViewCount="" Body="&lt;p&gt;Mixing up Deprecated with Depreciated.&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-09T08:59:50.477" CommunityOwnedDate="2011-02-01T20:08:55.700" CommentCount="1" />
  <row Id="1710" PostTypeId="2" ParentId="1662" CreationDate="2010-09-09T09:11:46.117" Score="0" ViewCount="" Body="&lt;p&gt;I live in New Zealand and we work a lot with staff and customers in Asia (China, Thailand, Singapore, Malaysia, etc) who are 4 or 5 hours behind us. Because of this I tend to start late (10am) and work late (7pm). This also means I miss the worst of the traffic!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Flexibility is the main thing I look for in a job. Some people like to start and end early. My last couple of companies have had &quot;core hours&quot; - if you're in the office between 10am and 4pm and work enough hours in the week then you're good.&lt;/p&gt;&#xA;" OwnerUserId="516" LastActivityDate="2010-09-09T09:11:46.117" />
  <row Id="1712" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T09:18:41.190" Score="1" ViewCount="" Body="&lt;p&gt;I'm from Valencia, Spain and the proper answer is &quot;depends&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For most non-public/non-OS things i do a mix of English and Spanish in variable naming, but all my comments are in Spanish and I hope noone tells me to document/comment things in Valencian&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But things change when you're publishing something under Open Source, since doing it in your local language restricts your potential users and collaborators to a smaller audience. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can give you an example of language as a barrier: When I was running a WoW guild i began to look for alternatives to EQDKP and i found them, but most had it's documentation and comments in german so i lost any interest because relying on Google Translator wasn't an option for me, heck, some of them were awesome projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You also asked for a code example, as i told i tend to mix English and Spanish, but this snippet is so brief that i did not need any kind of mixture&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function validaDNINIE(numero) {&#xA;// Eliminar todo lo que no sea número o letra&#xA;numero.replace(/[^0-9A-Z]/i, '').toUpperCase();&#xA;if (!numero.match(/((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)/i)) {&#xA;    return false;&#xA;}&#xA;// Comprobación de NIF&#xA;if (numero.match(/^[0-9]{8}[TRWAGMYFPDXBNJZSQVHLCKE]{1}$/i)) {&#xA;    var letra = numero.charAt(numero.length-1);&#xA;    if (letra == &quot;TRWAGMYFPDXBNJZSQVHLCKE&quot;.charAt(numero.substr(0, numero.length-1) % 23)) {&#xA;        return true;&#xA;    }&#xA;}&#xA;// Comprobación de NIE&#xA;// T00000000&#xA;if (numero.match(/^[T]/)) {&#xA;    if (numero == numero.match(/^[T]{1}[A-Z0-9]{8}$/)) return true;&#xA;}&#xA;// ZXY&#xA;if (numero.match(/^[XYZ]{1}/)) {&#xA;    // X = 88, asi conseguimos X=0;Y=1;Z=2&#xA;    var su = numero.charCodeAt(0)-88 + '' + numero.substr(1, numero.length-2);&#xA;    if (numero.charAt(numero.length-1) == &quot;TRWAGMYFPDXBNJZSQVHLCKE&quot;.charAt(su % 23)) {&#xA;        return true;&#xA;    }&#xA;}&#xA;// Si hemos llegado aqui es que el numero no es valido&#xA;return false;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="254" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-19T18:33:20.360" LastActivityDate="2010-09-19T18:33:20.360" CommunityOwnedDate="2010-09-09T11:39:51.480" />
  <row Id="1713" PostTypeId="2" ParentId="1600" CreationDate="2010-09-09T09:21:02.530" Score="0" ViewCount="" Body="&lt;p&gt;&quot;I program, therefore I am&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I quit, my brain will be dead in a couple of years. That's what I'm afraid of. There of course exists an alternative: to do math professionally, for example, but I'm not a mathematician in any way, so I just cannot quit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm also told that bootstrapping your own company (or maybe doing even better with the help of an angel VC) can give a perfect continuous work for the brain.&lt;/p&gt;&#xA;" OwnerUserId="343" LastActivityDate="2010-09-09T09:21:02.530" />
  <row Id="1714" PostTypeId="2" ParentId="1674" CreationDate="2010-09-09T09:22:29.703" Score="1" ViewCount="" Body="&lt;p&gt;(This is mostly a mata answer, rather than a project list.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about why you are writing the program: Will it be useful in its own right, or is it purely to learn an aspect of a tool/API/language?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the latter case there is a benefit to the resulting program being as short as possible, and then just kept for reference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the former case why not extend the learning to good practice in all respects: assume you will need to maintain and extend it. Therefore use source control, issue tracking, refactoring, unit testing, ... as all of these things are at least as important for a developer as knowing another API.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;How about a feed integrator:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;RSS/Atom sources&lt;/li&gt;&#xA;&lt;li&gt;Handle twitter using its API (and do link un-shortening)&lt;/li&gt;&#xA;&lt;li&gt;Based on source allow pluggable post processing (e.g. downloading mp3s from a podcast feed)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(The idea is to focus on integrating different implementations of the same paradigm: scheduled HTTP get of an RSS feed vs. Twitter API vs. ... all of which are underneath a stream of entries with time stamp, source and content.&lt;/p&gt;&#xA;" OwnerUserId="542" LastActivityDate="2010-09-09T09:22:29.703" CommentCount="1" />
  <row Id="1715" PostTypeId="2" ParentId="886" CreationDate="2010-09-09T09:28:01.027" Score="4" ViewCount="" Body="&lt;p&gt;I know a bunch of programmers that love &lt;strong&gt;photography&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="488" LastActivityDate="2010-09-09T09:28:01.027" CommentCount="1" />
  <row Id="1717" PostTypeId="1" CreationDate="2010-09-09T09:30:23.093" Score="14" ViewCount="583" Body="&lt;p&gt;Microsoft seems to use such generic names for their core products that it seems like it must be or have been part of a deliberate strategy.  It is so common that I think it may have originated as a way to overawe some business customer or junior college striver -- who vaguely knows that SQL servers exist -- that SQL servers are Microsoft-specific products.  Same with mail exchange server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Namely:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SQL Server (most general term possible, despite which they claim a trademark)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Exchange Server (see rfc's from the 1980's onward describing mail exchanges and calling them precisely that)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Windows (the generic term used with windowing applications since their invention)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Office (if you are inclined to protest that it's really Microsoft Office, go to the product splash page and look for the word 'microsoft')&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone ever come across a discussion of this from someone involved in the early naming decisions or marketing, or have any knowledge if this is in fact a pattern intended to associate in the public's mind core general technologies with Microsoft products (while stretching the outermost limits of trademarkability)?&lt;/p&gt;&#xA;" OwnerUserId="576" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T14:04:36.863" LastActivityDate="2011-02-25T19:11:16.620" Title="Why Does Microsoft Frequently Use Generic Product Names?" Tags="&lt;history&gt;&lt;product-names&gt;" AnswerCount="10" CommentCount="7" />
  <row Id="1718" PostTypeId="2" ParentId="1482" CreationDate="2010-09-09T09:33:20.703" Score="4" ViewCount="" Body="&lt;p&gt;When I write a SQL query, I always write &quot;form&quot; instead of &quot;from&quot;.&lt;/p&gt;&#xA;" OwnerUserId="247" LastActivityDate="2010-09-09T09:33:20.703" CommunityOwnedDate="2011-02-01T20:08:55.700" CommentCount="2" />
  <row Id="1719" PostTypeId="1" CreationDate="2010-09-09T09:34:54.443" Score="13" ViewCount="903" Body="&lt;p&gt;In chapter one of &lt;a href=&quot;http://www.informit.com/store/product.aspx?isbn=0132100673&quot; rel=&quot;nofollow&quot;&gt;&quot;The Pragmatic Programmer&quot;&lt;/a&gt; the first learning goal is:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Learn at least one new language every year.&lt;/strong&gt; Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking and avoid getter struck in a rut. [...]&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;To achieve this over a career, the list of languages is likely to get quite long (particularly if you do not want to &quot;progress&quot; into management). Clearly the eduction of a programmer (or whatever form) is going to get you started with a core of commercially useful languages (the usual list from job posting: C, C++, Ruby, Python, JavaScript, C#, Java, VB, ...). Additionally a formal or informal learning programme is likely to have covered functional approaches (via something like Haskel, LISP or an ML derived language)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But once a reasonable subset of that list is learned- what's next, &lt;em&gt;and why&lt;/em&gt;?&lt;/p&gt;&#xA;" OwnerUserId="542" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2010-09-17T22:14:47.017" LastActivityDate="2010-11-17T16:44:34.723" CommunityOwnedDate="2010-09-09T09:34:54.443" Title="If one is to learn a new programming language each year, what should the list be?" Tags="&lt;programming-languages&gt;&lt;career&gt;&lt;learning&gt;" AnswerCount="9" CommentCount="9" FavoriteCount="7" />
  <row Id="1720" PostTypeId="2" ParentId="1662" CreationDate="2010-09-09T09:36:40.977" Score="4" ViewCount="" Body="&lt;p&gt;I think it depends on two factors:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Your employer's work policy&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some employers allow flexible working which means as long as you do at least e.g. 40 hours per week, it doesn't matter if they're 8-&gt;5, 9-&gt;6, 10-&gt;7, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A progressive employer would gauge this by your work output/quality metrics rather than how many hours you work. I've seen Japanese companies that establish a culture of &quot;be in before and leave after the boss&quot; - where the boss works 7am-&gt;9pm. Not very productive and the spouses and children never see their partners/parents. I've also seen amazing startups that have a core of 25-30 hours a week as long as you check email regularly and are contactable by phone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) The stage of life you're at.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're fresh out of college/uni and/or have no particular dependencies, you can work lots of hours and will likely assimilate lots more knowledge and develop skills proportional to the hours you put in. It's not uncommon for new hires at, e.g. computer games companies, to work well into the night and the management will order in food and drinks&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a vibrant social life, you may have to juggle late nights out with late nights working. And Alka-Seltzer mornings :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a partner and/or children, your priorities will likely change as you may have to help with childcare arrangements, and daycare/school starts and ends at a fixed time, so you end up aligning to that somewhat.&lt;/p&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-11-02T22:18:49.233" LastActivityDate="2010-11-02T22:18:49.233" />
  <row Id="1721" PostTypeId="2" ParentId="1717" CreationDate="2010-09-09T09:37:44.033" Score="21" ViewCount="" Body="&lt;p&gt;The practice dates back to the 80s when Rowland Hanson was the head of marketing at Microsoft. He devised the naming practice of putting Microsoft in front of a generic word that described the function of the application. This was done as a way to immediately convey what an application was for as well as a way to work Microsoft into the name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More information in the context of Microsoft Windows: &lt;a href=&quot;http://articles.techrepublic.com.com/5100-10878_11-5810058.html&quot; rel=&quot;nofollow&quot;&gt;Windows Vista: What's in a Name?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-09T09:37:44.033" CommentCount="1" />
  <row Id="1724" PostTypeId="2" ParentId="966" CreationDate="2010-09-09T09:46:31.353" Score="6" ViewCount="" Body="&lt;p&gt;I'm going to recommend a triplet of books that are about being a programmer (rather than programming), or a leader of programmers. While all are over 30 years since their original publication all are (especially with updates, commentary in their anniversary editions):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201835959&quot; rel=&quot;nofollow&quot;&gt;The Mythical Man Month&lt;/a&gt;&quot;, Brooks.&lt;/li&gt;&#xA;&lt;li&gt;&quot;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0932633439&quot; rel=&quot;nofollow&quot;&gt;Peopleware&lt;/a&gt;&quot;, BeMarco &amp;amp; Lister.&lt;/li&gt;&#xA;&lt;li&gt;&quot;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0932633420&quot; rel=&quot;nofollow&quot;&gt;The Psychology of Computer Programming&lt;/a&gt;&quot;, Weinberg (the PL/1 code is easy to follow, and can easily be applied to edge cases of any programming language).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="542" LastActivityDate="2010-09-09T09:46:31.353" CommunityOwnedDate="2011-01-06T15:42:27.030" CommentCount="2" />
  <row Id="1727" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T09:54:56.847" Score="7" ViewCount="" Body="&lt;p&gt;I am from England, and I try to code (and post on sites like StackOverflow) in &lt;em&gt;US&lt;/em&gt; English, because that is the established international language for programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think I am in the minority though.  Some British programmers I know insist on using British spellings even when collaborating with other coders who are using US English and can get upset when an American or Indian colleague edits their comments to change from British to US English (don't try that on &lt;a href=&quot;http://c2.com/cgi/wiki?WelcomeVisitors&quot; rel=&quot;nofollow&quot;&gt;Ward's wiki&lt;/a&gt;.)&lt;/p&gt;&#xA;" OwnerUserId="113" LastActivityDate="2010-09-09T09:54:56.847" CommunityOwnedDate="2010-09-09T11:39:51.480" CommentCount="6" />
  <row Id="1728" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T09:56:19.480" Score="2" ViewCount="" Body="&lt;p&gt;From India, like someone else said we are 100% English! But I have also worked in Germany for a short while. The Germans used to do it like the Italians (like Lorenzo said). But bigger companies like Siemens etc. have standardised on English. It's much easier to delegate your work outside of your base country when all of your documentation and code is in English.&lt;/p&gt;&#xA;" OwnerUserId="577" LastActivityDate="2010-09-09T09:56:19.480" CommunityOwnedDate="2010-09-09T11:39:51.480" />
  <row Id="1729" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T10:03:11.170" Score="5" ViewCount="" Body="&lt;p&gt;Feel like typing short words and hitting tab twice regardless of text editors. Notepad should implement some code snippets too :-)&lt;/p&gt;&#xA;" LastActivityDate="2010-09-09T10:03:11.170" CommunityOwnedDate="2010-09-10T10:20:25.267" />
  <row Id="1730" PostTypeId="2" ParentId="118" CreationDate="2010-09-09T10:05:57.873" Score="3" ViewCount="" Body="&lt;p&gt;I live in the Netherlands and can give you my account of the Dutch software engineering job environment. I recently graduated and it was relatively easy for me to find something. At this moment a lot of companies are looking to hire new engineers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that Philips and ASML often get people from abroad to work here. But there are a lot of good employers that might have less international fame. Furthermore, companies like Bosch have sites here. Everyone in the software world here speaks English and there are plenty of companies that will switch meetings to English if a non-Dutch speaker is present. Although I feel that every company does appreciate it if you at least study Dutch. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for immigration... I don't know... I think for 'knowledge workers' the company can take care of it. For EU citizens, it's no problem as far as I know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the working atmosphere at companies. I think most companies appreciate software quality, but of course it depends on the target market on how much time is spent on it (Philips Healthcare will want more attention to quality, and I suppose ASML will care more about being fast with delivering). The people are usually very relaxed and very informal and open. In general Dutch companies are not very hierarchical. I cannot imagine that I would ever have to call my manager Mr.  (same holds for studying in the Netherlands). I think most people even don't like to be addressed that way.&#xA;Lastly, it various quite a lot between companies how fast and ambitious the culture within the company is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is just my account of how I experience it. I have not been working that long, but I have been able to work at various companies during my study. I hope this information can help you (or anyone else).&lt;/p&gt;&#xA;" OwnerUserId="560" LastActivityDate="2010-09-09T10:05:57.873" />
  <row Id="1732" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T10:13:55.850" Score="2" ViewCount="" Body="&lt;p&gt;I'm from &lt;a href=&quot;http://en.wikipedia.org/wiki/Belarus&quot; rel=&quot;nofollow&quot;&gt;Belarus&lt;/a&gt;, but I'm always use English for comments. And as I know a lot of Belarus programmers use English as primary language for codding. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    /// &amp;lt;summary&amp;gt;&#xA;    /// Get item quantity&#xA;    /// &amp;lt;/summary&amp;gt;&#xA;    /// &amp;lt;param name=&quot;itemCode&quot;&amp;gt;Item code&amp;lt;/param&amp;gt;&#xA;    /// &amp;lt;param name=&quot;grade&quot;&amp;gt;Grade&amp;lt;/param&amp;gt;&#xA;    /// &amp;lt;param name=&quot;lpn&quot;&amp;gt;LPN&amp;lt;/param&amp;gt;&#xA;    /// &amp;lt;returns&amp;gt;Returns item quantity&amp;lt;/returns&amp;gt;&#xA;    private int GetQuantity(string itemCode, string grade, int lpn)&#xA;    {&#xA;        using (var db = new MappingDataContext(_connection))&#xA;        {&#xA;            db.ObjectTrackingEnabled = false;&#xA;            return (from i in db.INVENTORs&#xA;                    where i.ITEM_NO == itemCode&#xA;                    where i.CUSTCHAR12 == grade&#xA;                    select i.ITEM_NO).Count();&#xA;        }&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="586" LastActivityDate="2010-09-09T10:13:55.850" CommunityOwnedDate="2010-09-09T11:39:51.480" CommentCount="3" />
  <row Id="1733" PostTypeId="2" ParentId="826" CreationDate="2010-09-09T10:16:27.437" Score="1" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.finkproject.org/&quot; rel=&quot;nofollow&quot;&gt;Fink&lt;/a&gt; or &lt;a href=&quot;http://www.macports.org/&quot; rel=&quot;nofollow&quot;&gt;MacPorts&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Package management systems for *NIX programs. These are often the easiest way to build and install a *NIX program on OS X if the program authors don't supply a OS X-specific package.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-09T10:16:27.437" CommentCount="2" />
  <row Id="1734" PostTypeId="2" ParentId="1600" CreationDate="2010-09-09T10:21:16.043" Score="1" ViewCount="" Body="&lt;p&gt;Yes I've felt it.&lt;br&gt;&#xA;It starts to happen when you are trapped in a boring project that does not give you any challenges or rewards.&lt;br&gt;&#xA;You start to feel it when you begin to lower the &quot;good enough&quot; bar to zero( just make it work and stop).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This feeling is stopped and forgotten instantly starting a couple of pet projects at home, i repeat Instantly!&#xA;There's nothing better than starting to code something that &quot;scratch your itches&quot; with some new technologies.&#xA;This is the power of Programming, but i'm going off topic so..&lt;/p&gt;&#xA;" OwnerUserId="74" LastActivityDate="2010-09-09T10:21:16.043" />
  <row Id="1736" PostTypeId="2" ParentId="135" CreationDate="2010-09-09T10:28:18.147" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://twitter.com/WardCunningham&quot; rel=&quot;nofollow&quot;&gt;Ward Cunningham&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T10:28:18.147" CommunityOwnedDate="2011-02-11T07:48:02.420" />
  <row Id="1738" PostTypeId="2" ParentId="135" CreationDate="2010-09-09T10:29:57.633" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://twitter.com/unclebobmartin&quot; rel=&quot;nofollow&quot;&gt;UncleBob&lt;/a&gt; (Robert C. Martin)&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T10:29:57.633" CommunityOwnedDate="2011-02-11T07:48:02.420" />
  <row Id="1739" PostTypeId="2" ParentId="1662" CreationDate="2010-09-09T10:34:34.147" Score="4" ViewCount="" Body="&lt;p&gt;I see a lot of companies offering flexible work arrangements along side telecommuting.  From the company stand point it's a &quot;perk&quot; that doesn't really cost them much money and from the employee stand point it makes for happier working conditions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now I work from 5am to 2pm which are really counter to most stereotypical programmer's hours.  I know its weird but I've got kids and this allows me to be home just before they get home from school and I get to spend a lot more time with them then if I were to work unitl 5pm or 6pm.  The downside is I go to bed at 8pm and get up at 3:30am.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-09T10:34:34.147" />
  <row Id="1740" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T10:43:17.513" Score="2" ViewCount="" Body="&lt;p&gt;I'm surely the weird one : I use a language that is tokenized, and so even the language it self can displayed in your own native language (French, english, german, spanish and japanese). It's RBDMS language born in the 80's, called &lt;a href=&quot;http://www.4d.com/fr/documentation/4DdocV11/V6C/V6CMDFR.HTM&quot; rel=&quot;nofollow&quot;&gt;4th Dimension&lt;/a&gt;. Have a look at the Language Command translation by clicking on the flags icons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hereunder you can see the same code seen with french and english settings : &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/hI9R3.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/AdlQa.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="133" LastEditorUserId="133" LastEditorDisplayName="" LastEditDate="2010-11-04T10:07:12.230" LastActivityDate="2010-11-04T10:07:12.230" CommunityOwnedDate="2010-09-09T11:39:51.480" CommentCount="1" />
  <row Id="1741" PostTypeId="2" ParentId="1474" CreationDate="2010-09-09T10:49:43.453" Score="7" ViewCount="" Body="&lt;p&gt;It's been a while since I read it, but I don't remember anything in the book that wasn't relevant to someone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What stood out the most was the discussion of process improvement using CMM and CMMI, and no mention of agile processes (although the second edition was printed in 1999, which is a few years before the Agile Manifesto and Agile development went mainstream). But the book is about people, and people haven't changed that much since the first printing of the book in 1987.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-09T10:49:43.453" CommentCount="3" />
  <row Id="1742" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T10:50:05.617" Score="0" ViewCount="" Body="&lt;p&gt;I usually do everything in english when programming C#, but sometimes we throw in some spanish or italian in comments. Some business objects are in spanish (but always mixed with english for actions and such)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now when I’m in Objective-C, I always stick to english, it makes so much sense (in the way the language is structured) that it’s easier to read.&lt;/p&gt;&#xA;" OwnerUserId="593" LastActivityDate="2010-09-09T10:50:05.617" CommunityOwnedDate="2010-09-09T11:39:51.480" />
  <row Id="1743" PostTypeId="2" ParentId="1662" CreationDate="2010-09-09T10:54:06.673" Score="5" ViewCount="" Body="&lt;p&gt;In our company you can select working hours as you wish, but in such a way that the whole team works together from 12pm (midday) to 5pm.  When you arrive and leave is up to you.  You should just be in the office in the &quot;common hours&quot;, and work at least 8 hours a day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This make schedules flexible and more comfortable to developers with specific preferences about when they want to start their work.  It also makes the whole team present in the office for a significant time together, so they can perform common activities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These aims contradict each other, and the company should reach balance between them.  I think that the way described above is a good measure for that.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-09T10:54:06.673" />
  <row Id="1745" PostTypeId="1" CreationDate="2010-09-09T11:03:40.117" Score="85" ViewCount="6971" Body="&lt;p&gt;To put it another way... What is the most commonly held and frustrating misunderstanding about programming, you have encountered?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which widespread and longstanding myths/misconceptions do you find &lt;strong&gt;hard for programmers to dispel/correct&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please, explain why this is a myth.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="6025" LastEditorDisplayName="" LastEditDate="2010-10-24T14:54:11.653" LastActivityDate="2011-03-12T10:29:29.713" CommunityOwnedDate="2010-09-10T00:27:54.853" Title="What's the most absurd myth about programming issues?" Tags="&lt;experience&gt;&lt;self-improvement&gt;&lt;code-quality&gt;&lt;mistakes&gt;&lt;warning-signs&gt;" AnswerCount="62" CommentCount="4" FavoriteCount="39" />
  <row Id="1746" PostTypeId="2" ParentId="1482" CreationDate="2010-09-09T11:08:40.950" Score="3" ViewCount="" Body="&lt;p&gt;Accidental use of &lt;code&gt;camelToe&lt;/code&gt; instead of &lt;code&gt;camelCase&lt;/code&gt; in coding standards document. Oh the shame...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and &lt;code&gt;CUnit&lt;/code&gt;. Gasp!&lt;/p&gt;&#xA;" OwnerUserId="169" LastActivityDate="2010-09-09T11:08:40.950" CommunityOwnedDate="2011-02-01T20:08:55.700" CommentCount="0" />
  <row Id="1748" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T11:11:20.507" Score="11" ViewCount="" Body="&lt;p&gt;Well as a programmer, we are trained to avoid repetition at all costs, and everything I do in the day to day life, i try to minimize repetition as much as i can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was specially hard when trying to write essays, because i strive to write in the most &quot;efficient&quot; way, so i end up saying everything i want/need in very short essays, while everyone else was writing &quot;unnecessary&quot; things and having a much bigger essay :P&lt;/p&gt;&#xA;" OwnerUserId="599" LastActivityDate="2010-09-09T11:11:20.507" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="2" />
  <row Id="1750" PostTypeId="1" AcceptedAnswerId="1760" CreationDate="2010-09-09T11:16:08.313" Score="9" ViewCount="308" Body="&lt;p&gt;I work for a Company that builds stuff with various languages: COBOL, VB6, C# and Java.&lt;br&gt;&#xA;I obviously use those languages for my primary work, anyway, as a solo programmer, I often find myself to coding some minor programs (scripts, batches) in Python.&lt;br&gt;&#xA;I use it because I found Python to be the best tool for the job for this kind of quick tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example scenario:&lt;br&gt;&#xA;An analyst give me a Complex Csv file to populate some Db Tables, I use Python to parse it and create a Db Script.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where is the problem?&lt;br&gt;&#xA;The main problem I see, is that a few parts of this quick&amp;amp;dirty scripts\batches are slowly gaining importance and:&lt;br&gt;&#xA;1. My Company does not support Python&lt;br&gt;&#xA;2. They are out of Company's Versioning System (Ok, I backup them in another way)&lt;br&gt;&#xA;3. My Coworkers do not know Python  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The analysts started to reference them even in the email (&quot;launch that script that export..&quot;); so they are becoming kind of consolidated!?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I should add that those scripts are just utilities that are not part of the main Project, they simply help to get trivial tasks done in less time; anyway, as solo programmer, they really help me.&lt;br&gt;&#xA;In a few words, in case of Truck accident (ehm, it does not sound very good), my coworkers would keep the Project alive without the need of those scripts (Spending more time in fixing Csv errors by hand for example).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this a common scenario? Am I doing something wrong? What should I do? &lt;/p&gt;&#xA;" OwnerUserId="74" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-20T13:56:45.707" LastActivityDate="2010-11-20T13:56:45.707" Title="Is it correct to use at work a non standard language for your Company?" Tags="&lt;work&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="2" />
  <row Id="1751" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T11:18:25.423" Score="1" ViewCount="" Body="&lt;p&gt;I (dutchy) always code in english, it just makes much more sense, all the language keywords etc are in english, so why not code the rest in english? :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always put all comments in english as well, you never know who will have to edit your code, they might not speak your native language.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-09T11:18:25.423" CommunityOwnedDate="2010-09-09T11:39:51.480" />
  <row Id="1752" PostTypeId="1" AcceptedAnswerId="1795" CreationDate="2010-09-09T11:19:02.977" Score="8" ViewCount="282" Body="&lt;p&gt;In fact this question is about cautions to be taken to enhance quality user experience and reduce avoidable support calls.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-23T13:18:23.963" LastActivityDate="2010-11-23T15:10:38.590" Title="What mistakes do your users make, and how can you update your application to handle them?" Tags="&lt;experience&gt;&lt;programming-practices&gt;&lt;bugs&gt;&lt;usage&gt;&lt;social-engineering&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="5" />
  <row Id="1753" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T11:19:17.843" Score="0" ViewCount="" Body="&lt;p&gt;I am English and have lived and worked in Germany. I nearly always use English unless I can't think what the English term for something is. Then I use a German word. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have met one or two who insist on only using English ('because it is better') but then spell things incorrectly which can be very bothersome when it makes it's way into the API. There have been some compile-issues when using accents (e.g. 'Müller') in source code . These have been forbidden. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Team discussion is exclusively in German. Coding is mixed. Most tend towards German names for variables &amp;amp; methods etc but will use English when it suits them. What ticks me off is when the English spelling is wrong.&lt;/p&gt;&#xA;" OwnerUserId="598" LastEditorUserId="67" LastEditorDisplayName="" LastEditDate="2010-09-12T14:16:55.643" LastActivityDate="2010-09-12T14:16:55.643" CommunityOwnedDate="2010-09-09T11:39:51.480" CommentCount="1" />
  <row Id="1754" PostTypeId="2" ParentId="247" CreationDate="2010-09-09T11:20:24.623" Score="10" ViewCount="" Body="&lt;p&gt;If you can see yourself as COBOL programmer, then go for it. There are still billions of lines written in COBOL that require maintenance. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, there is &lt;strong&gt;no&lt;/strong&gt; such thing as unnecessary knowledge, so broaden the knowledge and wider opportunities you (will) have.&lt;/p&gt;&#xA;" OwnerUserId="597" LastActivityDate="2010-09-09T11:20:24.623" CommunityOwnedDate="2011-05-02T13:21:01.583" />
  <row Id="1755" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T11:23:15.740" Score="2" ViewCount="" Body="&lt;p&gt;Being from the Netherlands I've had the nasty experience of being &lt;em&gt;forced&lt;/em&gt; to write comments (and even variable names) in Dutch at school.  Most of the time I rejected this attitude and wrote all that in pure English regardless, along with several other students that already had programming experience or learned fast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In all the companies I've worked for the only use of Dutch was for strings the end-user could or would see, all other text (non-user documentation included) was in English.&lt;/p&gt;&#xA;" OwnerUserId="575" LastActivityDate="2010-09-09T11:23:15.740" CommunityOwnedDate="2010-09-09T11:39:51.480" />
  <row Id="1756" PostTypeId="2" ParentId="1750" CreationDate="2010-09-09T11:23:30.280" Score="0" ViewCount="" Body="&lt;p&gt;I suppose that you're not in a position to decide (or else you would not ask the question).  What does your boss think about this issue?  You should talk to him and try to convince him that Python is the way to go...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, the issue is about what will happen when you leave.  Not being able to maintain the code is probably a reason that's good enough to stop using Python.  Or you can start educating your colleagues to this language...&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-09-09T11:23:30.280" />
  <row Id="1757" PostTypeId="2" ParentId="1750" CreationDate="2010-09-09T11:24:21.667" Score="1" ViewCount="" Body="&lt;p&gt;You have two options:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Make it a standard&lt;/li&gt;&#xA;&lt;li&gt;Translate into a standard tool&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Depending on the organisation #1 might be challenging (after all limiting the list of standard technologies avoids a combinatorial explosion of training and support skill requirements).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second option would help your skill set, and you might be able to find third party (and likely open source with commercially friendly licences) to do some of the hard work. E.g. a search for &quot;LINQ to CSV&quot; should get some useful hits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, VB6's developer tools (IDE, compiler) is unsupported (not even security fixes) so it is likely the standard needs updating anyway. (VB6 runtime is supported as part of&amp;mdash;and included in the install&amp;mdash;of current Windows versions). This could perhaps be used as a helper to approach #1: the standard tool set needs to up a moving target because of supplier dependencies.&lt;/p&gt;&#xA;" OwnerUserId="542" LastActivityDate="2010-09-09T11:24:21.667" />
  <row Id="1758" PostTypeId="2" ParentId="1750" CreationDate="2010-09-09T11:26:34.393" Score="3" ViewCount="" Body="&lt;p&gt;I have run into similar problems where I work. I heard &quot;What is PHP?&quot; several years ago. They don't understand or care to learn anything outside of the MS stack. If python is the right tool for the job I'd just tell my supervisors about it and be ready for alot of comparison and explaining as to why python was the right choice. It will be frustrating, but I think most would agree python is a good choice for text manipulation. &lt;/p&gt;&#xA;" OwnerUserId="605" LastActivityDate="2010-09-09T11:26:34.393" />
  <row Id="1759" PostTypeId="2" ParentId="1750" CreationDate="2010-09-09T11:27:52.020" Score="1" ViewCount="" Body="&lt;p&gt;I can't give you a full answer as to what you &lt;em&gt;should&lt;/em&gt; do.  I can only give a single suggestion you can use to start with:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check the scripts into a repository that all (required) developers can access.  But make very sure to make note of the fact that you've first written these scripts for your &lt;em&gt;own&lt;/em&gt; purpose, i.e. to perform a task you'd been given.  Then add that you're only checking in these scripts to allow others the advantage to use them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that you'll just need to see how other people respond to that.&lt;/p&gt;&#xA;" OwnerUserId="575" LastActivityDate="2010-09-09T11:27:52.020" CommentCount="2" />
  <row Id="1760" PostTypeId="2" ParentId="1750" CreationDate="2010-09-09T11:32:02.540" Score="6" ViewCount="" Body="&lt;p&gt;You need to get the situation formalised as it shouldn't really have got to this point. However, these things happen so you need to explain to your boss that you created these scripts for personal use, but they've &quot;escaped&quot; into wider circulation. Admit (if necessary) that you were at fault for not bringing this to his attention sooner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the very least the scripts should be put under source control &quot;just in case&quot; - then at least if you aren't available (for what ever reason) your co-workers will have access to the scripts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you either need to convince your boss that Python is the way to go for these or accept that you are going to have to re-write them in a supported language. If the cost of documenting the scripts and educating your co-workers in Python is lower than that of the re-write you might even win the argument.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-09-09T11:37:05.387" LastActivityDate="2010-09-09T11:37:05.387" CommentCount="1" />
  <row Id="1761" PostTypeId="2" ParentId="1750" CreationDate="2010-09-09T11:33:25.487" Score="1" ViewCount="" Body="&lt;p&gt;The first thing you need to do is talk with the team and your boss. Right now, you have a huge truck factor (if you got hit by a truck, no one else would easily be able to maintain your scripts). It looks like having scripts to do these tasks are important, but it's also important that anyone who needs to can edit and maintain these scripts. You need to explain how using Python adds value - how it saves time, effort, resources, money, and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, get it into the project's version control. Now. Nothing that you produce for a project should be outside of that project's version control, ever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be prepared for backlash - people typically don't like change. Running off on your own, using unsupported and unknown (to the team/organization) technologies was a bad idea, without consulting at least the other developers and determining the best (for the project, not just you) way of automating these tasks for everyone to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this is probably a good case of&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;It's easier to ask forgiveness than it is to get permission.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It sounds like you got the job done, but you are going to have to deal with the repercussions now.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-09T11:33:25.487" />
  <row Id="1762" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T11:34:56.763" Score="4" ViewCount="" Body="&lt;p&gt;Well, not my favorite but...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If it is not broken, don't fix it&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="389" LastEditorUserId="633" LastEditorDisplayName="" LastEditDate="2010-12-16T16:45:32.090" LastActivityDate="2010-12-16T16:45:32.090" CommunityOwnedDate="2010-09-09T11:34:56.763" CommentCount="3" />
  <row Id="1763" PostTypeId="1" AcceptedAnswerId="1863" CreationDate="2010-09-09T11:38:25.507" Score="5" ViewCount="210" Body="&lt;p&gt;If you had a generous, but not ridiculous budget (ie no yachts!), describe your ideal setup for programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What hardware would you have?  Desktop and a laptop or just one or the other?  How many screens - two, three, four, more?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Private office, work from home, cubicle?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What operating system(s) would you be using?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What tools would you have - IDE, other tools, databases, VCS, documentation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What local development and test servers and other services would you want - VCS server? Build server?  database server?&lt;/p&gt;&#xA;" OwnerUserId="589" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:18:29.633" LastActivityDate="2011-01-26T18:42:57.823" CommunityOwnedDate="2010-09-09T11:38:52.980" Title="Generous budget: what's your ideal setup?" Tags="&lt;tools&gt;&lt;hardware&gt;&lt;boat-programming&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="1" />
  <row Id="1764" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T11:39:51.480" Score="25" ViewCount="" Body="&lt;p&gt;I'm French. As has been pointed out in comments, my countrymen tend to exhibit an above-average pride in the national language :-). I take a pragmatic position on the issue myself:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I speak the language that the target audience will most likely understand.  When coding open-source software with a global ambition, I use English. For less widely useful stuff (for instance, my &lt;a href=&quot;http://www.emacswiki.org/emacs/.emacs-DominiqueQuatravaux.el&quot; rel=&quot;nofollow&quot;&gt;Emacs configuration file&lt;/a&gt;), I might use French.&lt;/li&gt;&#xA;&lt;li&gt;I acknowledge the fact that not everyone will master English.  In that perspective, using my mother tongue might actually make my code more accessible instead of less (in the example above, nobody cares about an umpteenth &lt;code&gt;.emacs&lt;/code&gt;, except if it happens to be written in a language that they understand).&lt;/li&gt;&#xA;&lt;li&gt;Better to write good French than bad English. I actively discourage my subordinates from writing half-assed English especially where concision matters, eg in docstrings and version control commit messages.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="604" LastActivityDate="2010-09-09T11:39:51.480" CommunityOwnedDate="2010-09-09T11:39:51.480" CommentCount="2" />
  <row Id="1765" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T11:40:56.513" Score="29" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/2163411/why-did-java-have-the-reputation-of-being-slow&quot;&gt;Java&lt;/a&gt; &lt;a href=&quot;http://programmers.stackexchange.com/questions/368/why-do-people-still-say-java-is-slow&quot;&gt;is&lt;/a&gt; &lt;a href=&quot;http://stackoverflow.com/questions/3538156/fileio-in-every-programming-language/3538289#3538289&quot;&gt;slow&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-09T11:40:56.513" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="10" />
  <row Id="1766" PostTypeId="2" ParentId="1202" CreationDate="2010-09-09T11:41:59.320" Score="9" ViewCount="" Body="&lt;h3&gt;&lt;a href=&quot;http://blip.tv/file/324976&quot; rel=&quot;nofollow&quot;&gt;Simon Peyton Jones&lt;/a&gt;&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;He used his increadible charisma to somehow lure me into the obscure world of Haskell some years ago. Now that's what i call influence.&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-10-05T09:05:03.730" LastActivityDate="2010-10-05T09:05:03.730" CommunityOwnedDate="2010-09-09T11:41:59.320" CommentCount="1" />
  <row Id="1767" PostTypeId="2" ParentId="826" CreationDate="2010-09-09T11:45:03.097" Score="4" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://ridiculousfish.com/hexfiend/&quot; rel=&quot;nofollow&quot;&gt;Hexfiend&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;if your poking around binary data.&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-10-01T15:55:06.333" LastActivityDate="2010-10-01T15:55:06.333" />
  <row Id="1768" PostTypeId="1" CreationDate="2010-09-09T11:46:36.477" Score="10" ViewCount="2027" Body="&lt;p&gt;It's not about the best general porpuse or most modern language. It's about the fitness on business domain handling accounting, financial, stock, invoices, orders, employees, customers, assets, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can answer into categories if you think it's pertinent. The best fit to a large ERP or to a simple but pretty complete application to small business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Multi platform is wishful. Windows is priority, but Linux and Mac are important too. Business applications usually are developed to desktop, but mobile and web is important too. Client/Server multi-tier is interesting too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Team skills doesn't matter. It's a green field project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please, don't post your favorite language, post the &lt;strong&gt;best language to this domain&lt;/strong&gt;, in your opinion, of course.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-23T13:16:53.293" LastActivityDate="2010-11-24T02:58:35.937" Title="What's the best programming language to develop a line of business application?" Tags="&lt;programming-languages&gt;&lt;business&gt;&lt;erp&gt;" AnswerCount="15" CommentCount="5" FavoriteCount="5" />
  <row Id="1770" PostTypeId="2" ParentId="1752" CreationDate="2010-09-09T11:52:18.540" Score="2" ViewCount="" Body="&lt;p&gt;&quot;Are you sure you want to delete this file/record? Yes/No&quot;. Clicked yes and then got a call that it &quot;mistakenly&quot; clicked the red delete button and it needs that data back:)&lt;/p&gt;&#xA;" OwnerUserId="559" LastActivityDate="2010-09-09T11:52:18.540" CommentCount="7" />
  <row Id="1771" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T11:52:24.930" Score="45" ViewCount="" Body="&lt;p&gt;If we use something other than Java, C# and C++ in our project, we won't find any programmers to support it.&lt;/p&gt;&#xA;" OwnerUserId="34" LastEditorUserId="4877" LastEditorDisplayName="" LastEditDate="2010-10-08T18:41:43.540" LastActivityDate="2010-10-08T18:41:43.540" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="6" />
  <row Id="1772" PostTypeId="2" ParentId="886" CreationDate="2010-09-09T11:56:56.153" Score="0" ViewCount="" Body="&lt;p&gt;Aside from programming, I really love (trying) to learn new languages.  Currently I've just moved on from &lt;a href=&quot;http://en.wikipedia.org/wiki/Quenya&quot; rel=&quot;nofollow&quot;&gt;Quenya&lt;/a&gt; to Latin.&lt;/p&gt;&#xA;" OwnerUserId="575" LastActivityDate="2010-09-09T11:56:56.153" />
  <row Id="1773" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T11:57:45.147" Score="0" ViewCount="" Body="&lt;p&gt;From Brazil,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I write generic code in English but I prefer to use Portuguese when programming near to domain application. Some terms don't fit well in application when using alien words to domain. At same time, there is a clear separation between generic coding and domain coding.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T11:57:45.147" CommunityOwnedDate="2010-09-09T11:57:45.147" />
  <row Id="1775" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T12:01:49.953" Score="0" ViewCount="" Body="&lt;p&gt;If you talking about using a native language on programming language own statements and API, well, in this case I can say I see in the past a very popular product in Brazil derived from xBase but whole in Portuguese.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If -&gt; Se&#xA;While -&gt; Enquanto&#xA;Left -&gt; Esquerda&#xA;Create -&gt; Criar&#xA;etc&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I think this kind of languages doesn't get too much successful.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T12:01:49.953" CommunityOwnedDate="2010-09-09T12:01:49.953" />
  <row Id="1776" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T12:04:46.150" Score="46" ViewCount="" Body="&lt;p&gt;The fact that marketing seems to think that adding a ton of small features is less work than adding a single, but rather heavy, feature.  Which probably is a more specific case of the misconception that &quot;task-switching has no overhead&quot;.&lt;/p&gt;&#xA;" OwnerUserId="575" LastActivityDate="2010-09-09T12:04:46.150" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="3" />
  <row Id="1779" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T12:06:52.527" Score="118" ViewCount="" Body="&lt;p&gt;That writing software is easy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How else do you explain all these projects that run over time and over budget and people (politicians, the media etc.) are still surprised, and customers complain when you tell them that their &quot;small website&quot; (or whatever) will actually take 6 months to develop and cost several thousand dollars (pounds, Euros, [insert currency of choice])&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With fuzzy and ever changing requirements I sometimes think that it's amazing that any software ever gets finished!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know it's a bit more complicated than that ;)&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-09T12:06:52.527" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="4" />
  <row Id="1781" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T12:11:49.430" Score="11" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;For a successful technology, reality&#xA;  must take precedence over public&#xA;  relations, for nature cannot be&#xA;  fooled.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-Richard Feynman&#xA;(Rogers' Commission Report into the Challenger Crash, Appendix F - Personal Observations on Reliability of Shuttle)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More succinctly:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;You can't lie to the compiler.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-Andrew Stevenson&lt;/p&gt;&#xA;" OwnerUserId="618" LastActivityDate="2010-09-09T12:11:49.430" CommunityOwnedDate="2010-09-09T12:11:49.430" CommentCount="2" />
  <row Id="1782" PostTypeId="1" AcceptedAnswerId="1832" CreationDate="2010-09-09T12:12:52.403" Score="4" ViewCount="90" Body="&lt;p&gt;Hi!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know if this question is more on-topic here or on SO, so if I've missed site, I apologize.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway I was talking with a relative recently. She is working in a company which needed a website. They contracted another company which does web-apps and graphical design to make them a website, give source code and do maintenance. The site is supposed to give general economic propaganda about the company, to have a news section and to have a portal for associates where they will be able to get statistical information like amount of sales of their products and similar stuff. The last part was supposed to read data from the database used by the All-in-One program used by my relative's company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The project was supposed to last three to six months and use LAMP (or WAMP) AJAX and Python. Unfortunately six months passed almost four times since the start of the project and the only results are couple of mock-up images. Furthermore they seem to be in a mess. They are avoiding contact and are always complaining how developers keep quitting after just couple of months of work and that they can't make a stable project team (on a side-note, they did websites for several other companies on time, so they were capable of producing the result at one time).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By now it is clear that the project will not be done any time soon and my relative's company is considering firing the contractors and taking whatever they did make and finding someone else to finish the work. Unfortunately, their IT guy didn't do any programming since PDP-11 era, so he won't be very helpful and it looks like it will be up to me to inspect whatever contractors did. I did some programming, but only a little bit of web programming, so my question is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What should I expect to find in the code-base and resources? The thing is that they I have reasons to suspect that they share code across different projects and may attempt to weasel out parts of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that there will probably be a part with resources used by the site like images and so on and that there will probably be a database and some scripts. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you think that this should be turned into community-wiki or general &quot;Failed Project: How to recover anything useful from it?&quot; discussion, please comment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, court is not a solution, because they are so efficient in my country that its decision would probably come in early 2020s.&lt;/p&gt;&#xA;" OwnerUserId="98" LastActivityDate="2010-09-09T13:56:20.037" Title="Salvaging remains of dead web-application project: What to look for?" Tags="&lt;project-management&gt;&lt;web-applications&gt;" AnswerCount="2" />
  <row Id="1783" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T12:13:04.180" Score="1" ViewCount="" Body="&lt;p&gt;When I go to write a twitter hashtag I usually double digit the # caracter. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's because I always open and closing parenthesis, braces, quotes, etc. and then return the cursor to the center to write the code.&lt;/p&gt;&#xA;" OwnerUserId="196" LastActivityDate="2010-09-09T12:13:04.180" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="1" />
  <row Id="1784" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T12:15:28.427" Score="6" ViewCount="" Body="&lt;p&gt;Bug free software. Later I came to know that every program would still run with Bugs and whole play was about accomplishing customer Requirements. &lt;/p&gt;&#xA;" OwnerUserId="156" LastEditorUserId="1025" LastEditorDisplayName="" LastEditDate="2010-09-10T08:04:01.987" LastActivityDate="2010-09-10T08:04:01.987" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="8" />
  <row Id="1785" PostTypeId="1" CreationDate="2010-09-09T12:15:52.357" Score="45" ViewCount="16728" Body="&lt;p&gt;Please, &lt;strong&gt;stay on technical issues&lt;/strong&gt;, avoid behavior, cultural, career or political issues.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T16:52:29.477" LastActivityDate="2011-01-17T10:15:38.800" CommunityOwnedDate="2010-09-15T18:31:41.813" Title="What should every programmer know about programming?" Tags="&lt;experience&gt;&lt;self-improvement&gt;&lt;programming-practices&gt;" AnswerCount="92" CommentCount="1" FavoriteCount="49" />
  <row Id="1786" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T12:17:14.087" Score="0" ViewCount="" Body="&lt;p&gt;My first vote would be for Naming Conventions. &lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-09-09T12:17:14.087" CommunityOwnedDate="2010-09-15T18:31:41.813" CommentCount="2" />
  <row Id="1788" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T12:21:02.867" Score="36" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Java is just C++ with different classes.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-09T12:21:02.867" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="8" />
  <row Id="1789" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T12:21:45.627" Score="12" ViewCount="" Body="&lt;p&gt;That's it's harder than you think.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While it's easy(ish) to put something together that works when used normally, coping with erroneous input, all the edge and corner cases, possible failure modes etc. is time consuming and will probably be the hardest part of the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you've got to make the application look good too.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-09T12:21:45.627" CommunityOwnedDate="2010-09-15T18:31:41.813" CommentCount="3" />
  <row Id="1790" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T12:25:21.763" Score="15" ViewCount="" Body="&lt;p&gt;Critical and logical thinking. you can't do anything good without it.&lt;/p&gt;&#xA;" OwnerUserId="319" LastActivityDate="2010-09-09T12:25:21.763" CommunityOwnedDate="2010-09-15T18:31:41.813" />
  <row Id="1792" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T12:27:02.070" Score="21" ViewCount="" Body="&lt;blockquote&gt;Good code is its own best documentation. As you're about to add a comment, ask yourself, 'How can I improve the code so that this comment isn't needed?' Improve the code and then document it to make it even clearer.&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-Steve McConnell&lt;/p&gt;&#xA;" OwnerUserId="575" LastActivityDate="2010-09-09T12:27:02.070" CommunityOwnedDate="2010-09-09T12:27:02.070" />
  <row Id="1793" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T12:27:29.727" Score="22" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;If you want to set off and go develop some grand new thing, you don't need millions of dollars of capitalization.  You need enough pizza and Diet Coke to stick in your refrigerator, a cheap PC to work on and the dedication to go through with it.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; John Carmack&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" LastActivityDate="2010-09-09T12:27:29.727" CommunityOwnedDate="2010-09-09T12:27:29.727" CommentCount="1" />
  <row Id="1795" PostTypeId="2" ParentId="1752" CreationDate="2010-09-09T12:33:53.053" Score="18" ViewCount="" Body="&lt;p&gt;A lack of proper input validation is one of those things which tends to lead quite quickly to users doing &quot;bad&quot; things with your application, when it should really be handled by the programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen legacy apps where users have been trained to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;not enter apostrophes in names&lt;/li&gt;&#xA;&lt;li&gt;not enter any symbol other than &lt;code&gt;a-z0-9,&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;ensure there are no spaces before or after the text they've entered&lt;/li&gt;&#xA;&lt;li&gt;check that a correctly formatted email address is being entered in to the &lt;code&gt;email&lt;/code&gt; field, otherwise subsequent mailings to that user will use whatever's in the field and will fail&lt;/li&gt;&#xA;&lt;li&gt;make sure &quot;&lt;code&gt;http://&lt;/code&gt;&quot; is put before web addresses&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;etc etc&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of the above issues are ones which &lt;em&gt;should&lt;/em&gt; be handled by an application developer. When your input validation is essentially &quot;make sure the user knows what format this field should be in and trust what they've entered is right&quot;, then unexpected things are bound to find their way in to the app. Aside from the obvious security implications, users make mistakes. As programmers we often produce our best products by bending over backwards to make sure that the user &lt;strong&gt;can't&lt;/strong&gt; get it wrong, no matter how hard they try!&lt;/p&gt;&#xA;" OwnerUserId="141" LastActivityDate="2010-09-09T12:33:53.053" CommentCount="3" />
  <row Id="1796" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T12:34:19.250" Score="9" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Computers are useless.  They can only give you answers.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; Pablo Picasso&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" LastActivityDate="2010-09-09T12:34:19.250" CommunityOwnedDate="2010-09-09T12:34:19.250" CommentCount="2" />
  <row Id="1797" PostTypeId="2" ParentId="1752" CreationDate="2010-09-09T12:37:22.833" Score="2" ViewCount="" Body="&lt;p&gt;I don't think users are stupid. They don't want to use your or any program at all. All they want is to get their things done. Help them and prevent harm from happening to them along the way.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-09-09T12:37:22.833" CommentCount="6" />
  <row Id="1798" PostTypeId="2" ParentId="1701" CreationDate="2010-09-09T12:39:50.317" Score="5" ViewCount="" Body="&lt;p&gt;Most of the books by the Pragmatic Programmers are well worth reading. They have an entire section in their catalog on &lt;a href=&quot;http://www.pragprog.com/categories/career&quot; rel=&quot;nofollow&quot;&gt;career guidance&lt;/a&gt;. I can recommend The Pragmatic Programmer (old, but good), Pragmatic Thinking and Learning, and The Passionate Programmer.&lt;/p&gt;&#xA;" OwnerUserId="305" LastActivityDate="2010-09-09T12:39:50.317" />
  <row Id="1799" PostTypeId="2" ParentId="1768" CreationDate="2010-09-09T12:41:07.140" Score="19" ViewCount="" Body="&lt;p&gt;You want good database connections, a high-quality ORM, a good Windows API library, a good set of Web library functions, because you probably want a Windows .exe and a web front-end.  You're probably not bothered about a native front-end for any other OS than Windows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hmmm, sounds rather like C# to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Responding a bit to @JBRWilkinson's comment:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would incline away from using Mono or a multi-platform &quot;native&quot; GUI library (like Swing / Qt).  The multi-platform GUIs tend to either put a Windows (Mono) or *ix (Qt) appearance on all OSes, or to have their own distinctive look (Swing).  A good Web-based UI is usually at least as good as a non-native looking-multi-platform UI - and you're going to want a web-based UI anyway (for portable devices, if nothing else).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are going to develop in C# for Windows, I'd write a back-end with the ORM and so on separate from the UI, with well-defined interfaces between the two, and lay down a rule that the back-end has to compile in Mono.  Then you can write a really-native front-end in Obj-C on the Mac and connect it to the Mono-compiled back-end.  You can do the same in an appropriate language / library combination for Linux as well.  You're proposing two UIs in the first stage (Web and Windows) and then you can look at two more in phase two.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you get the separation of UI and back-end right, you can add on mobile-device UIs in a later stage as well - I suspect that iPad or Android Tablet might be somewhere that users will be interested in going.&lt;/p&gt;&#xA;" OwnerUserId="589" LastEditorUserId="589" LastEditorDisplayName="" LastEditDate="2010-10-01T09:43:13.317" LastActivityDate="2010-10-01T09:43:13.317" CommentCount="2" />
  <row Id="1800" PostTypeId="2" ParentId="1482" CreationDate="2010-09-09T12:41:37.867" Score="5" ViewCount="" Body="&lt;p&gt;I'm prone to instantiating &lt;a href=&quot;http://download-llnw.oracle.com/javase/6/docs/api/java/lang/StringBuffer.html&quot; rel=&quot;nofollow&quot;&gt;StringBuggers&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="627" LastActivityDate="2010-09-09T12:41:37.867" CommunityOwnedDate="2011-02-01T20:08:55.700" />
  <row Id="1801" PostTypeId="2" ParentId="1752" CreationDate="2010-09-09T12:44:22.810" Score="5" ViewCount="" Body="&lt;p&gt;I once got a customer support call because my app just disappeared.  Turned out they opened another app on top of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... I decided not to ensure that didn't happen again, since it was the users computer illiteracy that caused the problem, not the app.  Anything I could have done to fix it would have lead to a poor user experience for others.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-09T12:44:22.810" />
  <row Id="1802" PostTypeId="2" ParentId="1371" CreationDate="2010-09-09T12:44:55.537" Score="1" ViewCount="" Body="&lt;p&gt;I think I can safely say:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EJBs&lt;/p&gt;&#xA;" OwnerUserId="627" LastActivityDate="2010-09-09T12:44:55.537" CommunityOwnedDate="2011-01-23T19:41:07.757" CommentCount="5" />
  <row Id="1803" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T12:48:42.643" Score="1" ViewCount="" Body="&lt;p&gt;I'm from Serbia.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I code for school, I almost always use Serbian comments and variable names. That code will never be read by someone who doesn't know Serbian anyway and will never be used outside of the exam it is written on and I don't see the point of using English for English's sake.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I'm doing some coding for myself, I tend to use Serbian too, because nobody else is going to read it and I need code to be readable easily for me and not some non-existent third party. The bad side of this is that I'd have to translate source code of a program if I'm going to share it internationally, but this never happened to me so far.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I'm writing code which other people will read, I use English and English comments. I generally do my best to make English as readable as possible and to have as little spelling errors as possible. New IDEs with English dictionaries help here. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My reason for preferring Serbian is simple: I'm sick of code which is supposed to be written in English, but looks more like Engrish (or Senglish in my case). Furthermore this so called English continues to evolve separately from English used in countries which actually speak English. This way words which are seriously outdated in modern English, or never existed in English at all keep popping up in source code and in programmer's speech and slowly find their way into technical literature. This way instead of making new words for English technical terms in Serbian, we are making new words for English technical terms in English which English users will not recognize.&lt;/p&gt;&#xA;" OwnerUserId="98" LastEditorUserId="98" LastEditorDisplayName="" LastEditDate="2010-09-09T13:03:45.977" LastActivityDate="2010-09-09T13:03:45.977" CommunityOwnedDate="2010-09-09T12:48:42.643" />
  <row Id="1805" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T12:51:46.723" Score="61" ViewCount="" Body="&lt;p&gt;That &lt;strong&gt;real-time&lt;/strong&gt; means fast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stating &lt;em&gt;&quot;The packets need to be processed in real-time.&quot;&lt;/em&gt; is worthless and the evil twin...answering &lt;em&gt;&quot;How fast does X need to happen ?&quot;&lt;/em&gt; with &lt;em&gt;&quot;Real-time&quot;&lt;/em&gt; is possibly less than worthless...bordering on stupid rather than ignorant. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Real-time&lt;/strong&gt; means that, simply put, that function Y will always take X amount of time and that any deviation indicates a serious error. The duration of X does not define &quot;real-time&quot; it could be six microseconds or six days. That you can &lt;strong&gt;determine&lt;/strong&gt; function Y will take X time defines &quot;real-time&quot;. Real-time systems are deterministic by this definition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So knock it off..&lt;/p&gt;&#xA;" OwnerUserId="497" LastActivityDate="2010-09-09T12:51:46.723" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="11" />
  <row Id="1806" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T12:55:06.983" Score="23" ViewCount="" Body="&lt;p&gt;I think the biggest misconception is that it's more important being able to write the code down easily than being able to read and understand the code.&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-09-09T15:15:49.317" LastActivityDate="2010-09-09T15:15:49.317" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="3" />
  <row Id="1807" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T12:58:08.390" Score="57" ViewCount="" Body="&lt;p&gt;Why don't you guys simply write it right the first time, rather than spending so much time typing in buggy code and then later reading the code trying to find the bugs?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;:-) :-) :-) :-)&lt;/p&gt;&#xA;" OwnerUserId="631" LastActivityDate="2010-09-09T12:58:08.390" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="9" />
  <row Id="1808" PostTypeId="2" ParentId="1626" CreationDate="2010-09-09T12:59:55.550" Score="8" ViewCount="" Body="&lt;p&gt;I've interviewed 50+ candidates in the fortune 500 company I work for. There are only two things that I look at in their résumés and cover letters: number of years of field experience (university years don't count), and programming languages mastered (so that I can tailor the coding questions). Unfortunately, my company is the exception rather than the rule in that regard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since I was a freelancer too before that, here is some specific advice:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do it &lt;a href=&quot;http://www.wikihow.com/Write-a-Cover-Letter&quot; rel=&quot;nofollow&quot;&gt;by the rules&lt;/a&gt;, like you would for any other job. Odesk may think they are very very special, Web 2.0-special even, and that you need a hipper, agiler résumé to go with their new-millennium services; they are not and you don't. A freelance job is a freelance job, regardless of the channel through which it came your way.&lt;/li&gt;&#xA;&lt;li&gt;List your competences honestly, but thoroughly. If you have X years of experience in programming languages Y, Z and T, state so candidly; it doesn't matter that some of that experience was gained as a hobby.&lt;/li&gt;&#xA;&lt;li&gt;Should you use a &quot;programming-only&quot; résumé, discounting the 5 (or more) &quot;before computers&quot; years that you mention? I don't think you need to, I've had colleagues with a chemistry background and they kicked ass (and still do).  Business experience is always a good thing, even if some flavors are more marketable than others depending on circumstances.&lt;/li&gt;&#xA;&lt;li&gt;The common wisdom is to re-use your résumé for several job applications, and vary only the cover letter. The common wisdom couldn't be more wrong. Study the company and job you are applying for, and highlight the points that you believe will make your résumé stand out from the stack. Use bold face, reorder titles etc. On the other hand, there should be no need to omit stuff (not even that your former career path has nothing to do with programming, see above), except if your résumé is getting too long.&lt;/li&gt;&#xA;&lt;li&gt;Open a LinkedIn account and put your résumé there; have your coworkers do same and endorse you.  Provide a hyperlink (hyperlinkedin?) in your cover letters. That seems contradictory to the previous point, but actually it isn't. If a recruiter is interested enough to click on that link, you have caught their interest and they will treat the LinkedIn résumé as what it is: a more thorough, general-purpose version of the tailored résumé that you sent them.&lt;/li&gt;&#xA;&lt;li&gt;As a freelancer, you want to have customers, not bosses, and you want to get in control of the commercial relationship ASAP. Unavoidably there will be one or more intermediaries between you and your prospects: Odesk itself, and more likely than not, someone in the company who is in charge of reviewing the applications but doesn't have the power to hire. As soon as you can, cut the middlemen out: talk directly to the manager who actually made the decision to post the job opening in the first place, make sure &lt;em&gt;they&lt;/em&gt; are happy with your work, don't renew any contracts through Odesk.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Unavoidably, if you have a strange résumé your &quot;terms of trade&quot; will be bad in the beginning, and you will end up with the poorly-paid jobs in the bad working environments. This is no different than what happens to new grads in conventional positions. However, satisfied customers will change the deal real fast. Ask them to praise your work on Odesk and LinkedIn, and update your résumé in between missions.  Keep learning new programming languages and frameworks, which you feel are in demand in your field. Rake in some money, and be sure to educate yourself about your new liabilities: taxes, and non-concurrence agreements in the work contract of your &quot;day job&quot;.  Eventually, kiss the latter goodbye as you meet with success. Best of luck!&lt;/p&gt;&#xA;" OwnerUserId="604" LastActivityDate="2010-09-09T12:59:55.550" CommentCount="3" />
  <row Id="1809" PostTypeId="2" ParentId="1380" CreationDate="2010-09-09T13:01:04.300" Score="8" ViewCount="" Body="&lt;p&gt;&quot;Enough&quot; is when you can make changes to your code with confidence that you're not breaking anything.  On some projects, that might be 10%, on others, it might be 95%.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's almost never as high as 100%.  However, sometimes trying to get 100% code coverage can be a great way to remove cruft from the code base.  Don't forget that there's two ways to increase code coverage - write more tests or take out code.  If code isn't covered because it's hard to test, there's a good chance you can simplify or refactor to make it easier to test.  If it's too obscure to bother to test, there's usually a good chance that nothing else in the code is using it. &lt;/p&gt;&#xA;" OwnerUserId="627" LastActivityDate="2010-09-09T13:01:04.300" CommentCount="3" />
  <row Id="1810" PostTypeId="2" ParentId="604" CreationDate="2010-09-09T13:01:09.170" Score="1" ViewCount="" Body="&lt;p&gt;Yes, there are reasons to limit code line length:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Although our screens have gotten wide, sometimes you need to print out your code. If only for &lt;a href=&quot;http://www.google.com/tisp/&quot; rel=&quot;nofollow&quot;&gt;this reason&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Diff-viewers often display lines with a vertical split - this becomes harder if the lines are as long as a wide screen would allow.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Having said that, 80 is a bit too little. But, still, some limitation is probably a good idea as a design principle. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say that extra long lines shouldn't be disallowed, because occasionally they &lt;em&gt;are&lt;/em&gt; necessary. But if most functions are only viewable on a 30&quot; screen then the code has some issues.&lt;/p&gt;&#xA;" OwnerUserId="494" LastActivityDate="2010-09-09T13:01:09.170" />
  <row Id="1811" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T13:02:41.103" Score="83" ViewCount="" Body="&lt;p&gt;All programmers are good at math. :-)&lt;/p&gt;&#xA;" OwnerUserId="631" LastActivityDate="2010-09-09T13:02:41.103" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="1" />
  <row Id="1812" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T13:04:20.103" Score="7" ViewCount="" Body="&lt;p&gt;I often find myself parallelizing simple tasks to get the job done in less time.&lt;br&gt;&#xA;It's like I'm premature optimizing things where I don't even need to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm bringing the bad things of programming to real life!&lt;/p&gt;&#xA;" OwnerUserId="74" LastEditorUserId="74" LastEditorDisplayName="" LastEditDate="2011-04-08T19:38:29.683" LastActivityDate="2011-04-08T19:38:29.683" CommunityOwnedDate="2010-09-10T10:20:25.267" />
  <row Id="1814" PostTypeId="1" CreationDate="2010-09-09T13:07:53.077" Score="3" ViewCount="296" Body="&lt;p&gt;Along my career, I had to deals with users that think their computer could think: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;My Computer Hate Me!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;He just do this so he could laugh at me!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is often a joke, but some user are serious. It's easy when I know the causes of the problem, but when I it an unexpected behavior it's more complicated. In those case, I usually turn it as a joke, putting that on the fault of moon phases and tide, but they are likely to prefer their explanations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have any trick to deals with those users?&lt;/p&gt;&#xA;" OwnerUserId="19" LastEditorUserId="19" LastEditorDisplayName="" LastEditDate="2010-09-09T13:39:31.897" LastActivityDate="2010-09-09T18:07:22.447" Title="How to deals with users that think their computer could think?" Tags="&lt;behavior&gt;&lt;users&gt;&lt;spirituality&gt;" AnswerCount="5" CommentCount="8" FavoriteCount="1" />
  <row Id="1815" PostTypeId="2" ParentId="681" CreationDate="2010-09-09T13:08:05.733" Score="3" ViewCount="" Body="&lt;p&gt;Algol is pretty dead nowadays, so will say Pascal. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, LISP (and dialects) are pretty near to pseudocode (in solving recursive problems).&lt;/p&gt;&#xA;" OwnerUserId="597" LastActivityDate="2010-09-09T13:08:05.733" CommentCount="1" />
  <row Id="1816" PostTypeId="2" ParentId="1533" CreationDate="2010-09-09T13:11:19.890" Score="0" ViewCount="" Body="&lt;p&gt;there are many titles that are found in a programmers path if he stick to technical career, such as &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Lead Developer / Lead Development Engineer.&lt;/li&gt;&#xA;&lt;li&gt;Team Leader.&lt;/li&gt;&#xA;&lt;li&gt;Solution Architect (focused on system design and integration, etc.).&lt;/li&gt;&#xA;&lt;li&gt;CTO (Chief technology Officer) .. this is totally technical but with a spice of being top technical person in the Organization.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2010-09-09T13:11:19.890" CommunityOwnedDate="2010-09-09T13:11:19.890" />
  <row Id="1818" PostTypeId="2" ParentId="681" CreationDate="2010-09-09T13:18:26.053" Score="1" ViewCount="" Body="&lt;p&gt;Forth code &lt;em&gt;can&lt;/em&gt; be like Pseudo Code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;: WASHER  WASH SPIN RINSE SPIN ;&#xA;: RINSE  FAUCETS OPEN  TILL-FULL  FAUCETS CLOSE ;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;See &lt;a href=&quot;http://erlangish.blogspot.com/2008/07/forth-other-white-meat.html&quot; rel=&quot;nofollow&quot;&gt;http://erlangish.blogspot.com/2008/07/forth-other-white-meat.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-10-12T15:13:31.917" LastActivityDate="2010-10-12T15:13:31.917" />
  <row Id="1819" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T13:19:26.320" Score="234" ViewCount="" Body="&lt;p&gt;That because you're a programmer, you know how to fix [person]'s virus ridden machine.&lt;/p&gt;&#xA;" OwnerUserId="229" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-22T12:45:28.830" LastActivityDate="2010-09-22T12:45:28.830" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="21" />
  <row Id="1820" PostTypeId="2" ParentId="1483" CreationDate="2010-09-09T13:21:07.710" Score="7" ViewCount="" Body="&lt;p&gt;I'm form Quebec and I saw a lot of programmers prefer to code in English. I got a good quote for you.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Let them program in English and you will see they don't know English.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;So you could find gems like :&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//putting the conter to 0&#xA;i=0&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In clear, it's better to code in your native language if you don't master the target language. otherwise, it's just obfuscate the code.&lt;/p&gt;&#xA;" OwnerUserId="19" LastActivityDate="2010-09-09T13:21:07.710" CommunityOwnedDate="2010-09-09T13:21:07.710" CommentCount="5" />
  <row Id="1821" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T13:21:14.623" Score="83" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;— Leon Bambrick (@&lt;a href=&quot;http://twitter.com/secretGeek/status/7269997868&quot; rel=&quot;nofollow&quot;&gt;secretGeek&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(Actually, everything from &lt;a href=&quot;http://q4td.blogspot.com/search/label/programming&quot; rel=&quot;nofollow&quot;&gt;http://q4td.blogspot.com/search/label/programming&lt;/a&gt; seeing as I curate the list.)&lt;/p&gt;&#xA;" OwnerUserId="415" LastEditorUserId="220" LastEditorDisplayName="" LastEditDate="2010-09-22T18:25:19.847" LastActivityDate="2010-09-22T18:25:19.847" CommunityOwnedDate="2010-09-09T13:21:14.623" CommentCount="4" />
  <row Id="1822" PostTypeId="2" ParentId="1814" CreationDate="2010-09-09T13:30:29.203" Score="1" ViewCount="" Body="&lt;p&gt;It's not unusual for everyone to put human characteristics (such as love/hate) to non living objects.  For example: my coffee machine really does hate me... it always drips all over my counter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion it's in your benefit, it means they aren't blaming your application or website for the problem, instead they think their computer simply hates them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course they will want to get to the reason of the problem though, and you can tell them that you're very good with dealing with computers.  For the really crazy people you can simply say you are a computer psychiatrist and if you spend some time on the computer you can usually figure out it's problems and fix it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't fix your problem on their machine you could tell the user that their computer is possessed by the devil and the only way to fix it is to format the evil out of it.&lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-09T13:35:34.700" LastActivityDate="2010-09-09T13:35:34.700" CommentCount="1" />
  <row Id="1823" PostTypeId="2" ParentId="118" CreationDate="2010-09-09T13:31:03.927" Score="1" ViewCount="" Body="&lt;p&gt;Do as I did: stay in Italy but get a telecommuting job in the US. Besides the weird working hours (4 PM to midnight) it's perfect.&lt;/p&gt;&#xA;" OwnerUserId="112" LastActivityDate="2010-09-09T13:31:03.927" />
  <row Id="1824" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T13:33:08.497" Score="4" ViewCount="" Body="&lt;p&gt;Short-circuit evaluation, althought it's one of the first thing they teach you about boolean operators.&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-09-09T13:33:08.497" CommunityOwnedDate="2010-09-15T18:31:41.813" />
  <row Id="1825" PostTypeId="2" ParentId="604" CreationDate="2010-09-09T13:35:24.577" Score="8" ViewCount="" Body="&lt;p&gt;To coding?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Certainly yes. Normal human been can't read well too wide. With few columns you move your eyes less, you focus better and delay the tiredness. It's a minimum gain but an important one.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-11T14:09:10.610" LastActivityDate="2010-09-11T14:09:10.610" CommentCount="1" />
  <row Id="1826" PostTypeId="2" ParentId="282" CreationDate="2010-09-09T13:37:02.027" Score="2" ViewCount="" Body="&lt;p&gt;I'm not sure if they still make new episodes, but I've enjoyed listening to Drunk and Retired from time to time.&lt;/p&gt;&#xA;" OwnerUserId="640" LastActivityDate="2010-09-09T13:37:02.027" CommunityOwnedDate="2010-12-21T06:02:41.540" CommentCount="1" />
  <row Id="1827" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T13:38:36.250" Score="22" ViewCount="" Body="&lt;p&gt;Ending sentences in emails with semicolon;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;:);&lt;/p&gt;&#xA;" OwnerUserId="644" LastActivityDate="2010-09-09T13:38:36.250" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="4" />
  <row Id="1828" PostTypeId="2" ParentId="282" CreationDate="2010-09-09T13:40:39.720" Score="12" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;https://stackoverflow.fogbugz.com/default.asp?W4&quot; rel=&quot;nofollow&quot;&gt;The Stack Overflow podcast&lt;/a&gt; complete (ended but still enjoyable with its 87 podcasts).&lt;/p&gt;&#xA;" OwnerUserId="74" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-26T15:29:52.990" LastActivityDate="2011-02-26T15:29:52.990" CommunityOwnedDate="2010-12-21T06:02:41.540" CommentCount="1" />
  <row Id="1829" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T13:47:06.777" Score="12" ViewCount="" Body="&lt;p&gt;As long as the computer understands the code you type in, that's all that matters.&#xA;Therefore typing in comments and using variable names that are more than two letters long is a waste of time. :-(&lt;/p&gt;&#xA;" OwnerUserId="631" LastActivityDate="2010-09-09T13:47:06.777" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="1" />
  <row Id="1830" PostTypeId="2" ParentId="1371" CreationDate="2010-09-09T13:47:22.843" Score="15" ViewCount="" Body="&lt;p&gt;When management are too weak to say &quot;No&quot; to the business. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which leads to deadlines that will never be met, &#xA;which leads to a lack of confidence in the IT department&#xA;which leads to the business creating hacks (i.e. access db running on someone's machine...somewhere)&#xA;which leads to a nightmare for IT when the 'critical system' has to be migrated&#xA;which leads to ...&lt;/p&gt;&#xA;" OwnerUserId="160" LastActivityDate="2010-09-09T13:47:22.843" CommunityOwnedDate="2011-01-23T19:41:07.757" CommentCount="1" />
  <row Id="1831" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T13:48:48.027" Score="25" ViewCount="" Body="&lt;p&gt;Using multiple parentheses in human languages in the same fashion as I would in a programming language.  Apparently, conventional English style is that one ) closes all the parentheses (and we're not supposed to put parenthetical statements inside other parenthetical statements (even though it's perfectly grammatical to do so)).&lt;/p&gt;&#xA;" OwnerUserId="589" LastActivityDate="2010-09-09T13:48:48.027" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="6" />
  <row Id="1832" PostTypeId="2" ParentId="1782" CreationDate="2010-09-09T13:48:58.823" Score="1" ViewCount="" Body="&lt;p&gt;Why is the development company failing to communicate? Probably because the client is failing to pay them for extra work.  Yes they didn't deliver on time, but this is probably because of a bad estimation of the amount of work.   It's not fair for the development team to have to work for free to finish what their bad estimation was for several years.  It's also not fair for the company to have to pay for something and not get it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both sides are in a bad state and both sides should try to come to some conclusion together that is fair moving forward.  Don't focus on sunk costs.  This is the problem with contracted work, or the pay per task model.  It usually ends like this. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion it's the company's fault for not paying close enough attention on milestones and deliverables as the project went on.  And it's the developers fault for failing to deliver and failing to notify the company that they would exceed their deadline earlier.  Both parties are at fault here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Firing the development company and hiring someone new sounds like a good idea.  But I would drop all expectations about re-using some of the code.  I would treat it as a new project so it can gain proper momentum, and give the new developer the old code as a reference.  Also for the new development team don't set their time worked to include the old sunk cost time, they are starting from day 0 and shouldn't be penalized for previous failures. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the old project, I wouldn't try to pick things out myself and give to the new development team, I'd just give the whole project to the new development team or demo to the new development team (or single developer).    &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only part of unique code that you might need to assist the new company with is the code written for &quot;read data from the database used by the All-in-One program used by my relative's company&quot;&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-09T13:48:58.823" CommentCount="3" />
  <row Id="1833" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T13:51:55.020" Score="4" ViewCount="" Body="&lt;p&gt;There's a huge mental barrier with the idea of quantum mechanics and fatalism. I think physics engines did this to me. See, in a computer program if you have a universe in motion with a fixed set of rules and no external factors you'll get the same result every single time for any given timestamp.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;According to my friends who know quantum mechanics there is a degree of randomness in the universe - the universe isn't some sort of state machine. My mind always thinks of the universe like a billiard ball table with the balls in motion on a massive scale - even though we may not be able to understand it all there's nothing we can do about the outcome. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea of randomness and the universe not following a fixed set of rules doesn't make any sense to me at all and I keep on trying to justify the &quot;same actions yielding different result&quot; with internal ideas like &quot;how do you know there are no unknown factors in play that follow a fixed set of rules causing this randomness?&quot; &lt;/p&gt;&#xA;" OwnerUserId="652" LastActivityDate="2010-09-09T13:51:55.020" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="5" />
  <row Id="1834" PostTypeId="2" ParentId="1015" CreationDate="2010-09-09T13:54:02.290" Score="1" ViewCount="" Body="&lt;p&gt;For web passwords, I use Firefox's Password Hasher extension, which takes a &quot;Master password,&quot; a site tag, and several options (Password length, Require special characters, require upper and lower case, require digits, etc.).  Given the same entry data, the same password is always generated, but it's presumably difficult to go from the hash back to the password, even given the site tag.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing is, the Master Password can be changed on different sites.  To determine my Master Password for a particular site, I first group sites into three categories: low security, medium security, high security.  Each category has a &quot;base&quot; password.  Then, I insert some element from the source site into the password.  So facebook and digg, for example (medium security) could be &quot;I like to browse facebook while I'm at work.&quot; and &quot;I like to browse digg while I'm at home.&quot;&lt;/p&gt;&#xA;" OwnerUserId="653" LastActivityDate="2010-09-09T13:54:02.290" />
  <row Id="1835" PostTypeId="2" ParentId="1782" CreationDate="2010-09-09T13:56:20.037" Score="1" ViewCount="" Body="&lt;p&gt;There are three or four separate asset categories here. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;First is the architecture and design, the idea that &quot;The site is supposed to give general economic propaganda about the company, to have a news section and to have a portal for associates where they will be able to get statistical information like amount of sales of their products and similar stuff.&quot; You have that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second is the actual text and images on some of the pages. They may have put these into some overly complex content management system (and you may not want to use it) or they may be plain HTML. Whatever; they come out as HTML in your browser. Pop around the staging site saving pages as HTML and right-click saving images.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Third is the code that may or may not have been written to read data from the database. Chances are this is where all the mess and trouble and delay is -- you are unlikely to want it anyway. However, if they are decent folks, or if they believe they might get one more payment from you, then they should be willing to zip up their code and send it along. The MP of LAMP is MySql and PHP so that is what to look for in this area.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best of luck to those involved and do not waste the time and effort put in by people who commented on the mockups. Make sure your design for the new system includes all the &quot;oh yeah I should have been clear that we need&quot; that arose from them.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-09-09T13:56:20.037" />
  <row Id="1836" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T13:56:26.503" Score="6" ViewCount="" Body="&lt;p&gt;Every programmer should know how to use the debugger, and know how to use it &lt;strong&gt;well&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="120" LastEditorDisplayName="" LastEditDate="2010-09-21T04:37:43.870" LastActivityDate="2010-09-21T04:37:43.870" CommunityOwnedDate="2010-09-15T18:31:41.813" />
  <row Id="1837" PostTypeId="2" ParentId="35" CreationDate="2010-09-09T13:59:56.320" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.google.nl/search?q=the+answer+to+the+ultimate+question+of+life+the+universe+and+everything&quot; rel=&quot;nofollow&quot;&gt;http://www.google.nl/search?q=the+answer+to+the+ultimate+question+of+life+the+universe+and+everything&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="575" LastActivityDate="2010-09-09T13:59:56.320" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="3" />
  <row Id="1838" PostTypeId="2" ParentId="681" CreationDate="2010-09-09T14:01:56.717" Score="6" ViewCount="" Body="&lt;p&gt;I've always though that &lt;a href=&quot;http://lolcode.com/&quot; rel=&quot;nofollow&quot;&gt;LOLCODE&lt;/a&gt; is actually very readable for what is essentially a joke language. For example, take the LOLCODE version of Hello World (Hai! World):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;HAI&#xA;CAN HAS STDIO?&#xA;VISIBLE &quot;HAI WORLD!&quot;&#xA;KTHXBYE&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or FILE I/O:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;HAI&#xA;CAN HAS STDIO?&#xA;PLZ OPEN FILE &quot;LOLCATS.TXT&quot;?&#xA;    AWSUM THX&#xA;        VISIBLE FILE&#xA;    O NOES&#xA;        INVISIBLE &quot;ERROR!&quot;&#xA;KTHXBYE&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It reads just like the psuedocode my cat writes, at any rate...&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-09T14:01:56.717" CommentCount="1" />
  <row Id="1841" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T14:05:31.673" Score="9" ViewCount="" Body="&lt;p&gt;Which language and environment is most suitable for the job. And it's isn't always your favourite.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-09T14:05:31.673" CommunityOwnedDate="2010-09-15T18:31:41.813" />
  <row Id="1842" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T14:15:16.887" Score="86" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;The bug is in &lt;em&gt;your&lt;/em&gt; code, not the compiler or the runtime libraries.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you see a bug that cannot possibly happen, check that you have correctly built and deployed your program.  (Especially if you are using a complicated IDE or build framework that tries to hide the messy details from you ... or if your build involves lots of manual steps.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Concurrent / multi-threaded programs are hard to write and harder to properly test.  It is best to delegate as much as you can to concurrency libraries and frameworks.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Writing the documentation is part of your job as a programmer.  Don't leave it for &quot;someone else&quot; to do.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, my point #1 is overstated.  Even the best engineered application platforms do have their share of bugs, and some of the less well engineered ones are rife with them.  But even so, you should always suspect your code &lt;em&gt;first&lt;/em&gt;, and only start blaming compiler / library bugs when you have &lt;em&gt;clear&lt;/em&gt; evidence that your code is not at fault.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back in the days when I did C / C++ development, I remember cases where supposed optimizer &quot;bugs&quot; turned out to be a due to me / some other programmer having done things that the language spec says have undefined results.  This applies even for supposedly safe languages like Java; e.g. take a long hard look at the Java memory model (JLS chapter 17).&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-09-16T01:50:53.087" LastActivityDate="2010-09-16T01:50:53.087" CommunityOwnedDate="2010-09-15T18:31:41.813" CommentCount="18" />
  <row Id="1843" PostTypeId="2" ParentId="35" CreationDate="2010-09-09T14:15:38.400" Score="12" ViewCount="" Body="&lt;p&gt;From stackoverflow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/ZTEpO.jpg&quot; alt=&quot;Fat Momma&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-09T14:15:38.400" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="1" />
  <row Id="1844" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T14:15:40.763" Score="15" ViewCount="" Body="&lt;p&gt;Every programmer should know about testing.&lt;/p&gt;&#xA;" OwnerUserId="635" LastActivityDate="2010-09-09T14:15:40.763" CommunityOwnedDate="2010-09-15T18:31:41.813" CommentCount="1" />
  <row Id="1845" PostTypeId="2" ParentId="966" CreationDate="2010-09-09T14:16:36.370" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0672316498&quot; rel=&quot;nofollow&quot;&gt;The Inmates are Running the Asylum&lt;/a&gt; has been helpful to me during the planning stage of any software, or interaction project.&lt;/p&gt;&#xA;" OwnerUserId="661" LastActivityDate="2010-09-09T14:16:36.370" CommunityOwnedDate="2011-01-06T15:42:27.030" />
  <row Id="1846" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T14:17:58.820" Score="75" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;How to read other people's code.&lt;/li&gt;&#xA;&lt;li&gt;Code doesn't exist if it is not checked in Version Control System.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-09-09T14:17:58.820" CommunityOwnedDate="2010-09-15T18:31:41.813" CommentCount="5" />
  <row Id="1847" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T14:19:27.163" Score="225" ViewCount="" Body="&lt;p&gt;A common HR thing that drives me nuts when I'm job hunting: the implicit assumption that all coding skills are language-specific, that there is no software engineering expertise that transcends command sets.  That ten years experience in Java and another five in Perl mean you'd be completely useless on a project that uses, say, C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Yes, there's a learning curve.  But I've made harder transitions than this.  I'll make you a deal, pay me 80% for the first month and at the end of that time if I'm not ... oh, wait, we're not actually having this conversation, because your HR monkey simply deleted my application.&quot;&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-09T14:19:27.163" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="12" />
  <row Id="1848" PostTypeId="2" ParentId="604" CreationDate="2010-09-09T14:19:40.600" Score="4" ViewCount="" Body="&lt;p&gt;There are several reasons to still adhere to an 80 character limit (or, a 74 character limit is even better; it allows for the code to remain fewer than 80 columns even when diff markers and email quoting is added, if you do code review on mailing lists).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even in the era of widescreen monitors, I like to have several windows open side by side, showing different parts of the code. For instance, I usually have a web browser and email open on one screen, and two files and a terminal open side by side on a second monitor. If you have lines that run over 80 columns, you need to deal with the editor wrapping the lines (which is ugly and makes the code harder to navigate around), or widen you windows such that you can't fit as many on screen at once.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you don't usually edit this way, if you ever use a side-by-side diff tool, you will appreciate files with reasonable line lengths which will make your diff easier to view.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also an issue of code density. I like to have a lot of context when reading code. It is much, much quicker to glance up and down a window than it is to scroll. If you have very long lines, you also tend to have lines that vary in length a lot, leading to a lot of wasted screen real estate and being able to fit less code on screen at a given time overall.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And finally, if you have very long lines, then that generally means that you have very complicated lines, deep indendation, or that you have very long identifiers. All of these can be a problem. Complicated lines are probably doing too much; if you can break it down into several simpler lines, you probably should. Deep indentation means that you're probably nesting too many loops and conditionals, which can make your code flow confusing; considering refactoring into several functions. And if your identifiers are too long, it can make reading your code very difficult. People generally recognize words as individual units; they don't read every character one by one, but look at the overall shape of the word. Long identifiers are harder to distinguish this way, and usually if they are that long, they contain redundant or repetitive information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, while it's still good practice to keep code below 80 columns, this isn't one of those rules that needs to be followed religiously, contorting yourself to make some line fit when it just doesn't. I suggest that you try to keep all of your code under 80 columns, but when it just doesn't fit, don't worry about it too much.&lt;/p&gt;&#xA;" OwnerUserId="662" LastActivityDate="2010-09-09T14:19:40.600" />
  <row Id="1849" PostTypeId="1" AcceptedAnswerId="5591" CreationDate="2010-09-09T14:23:18.743" Score="11" ViewCount="384" Body="&lt;p&gt;If you've always loved unit testing, good for you! But for the unfortunate ones who weren't born with a liking for it, how have you managed to make this task more enjoyable ? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not a &quot;what is the right way to unit test&quot; question. I simply want to know little personal tricks that reduce the boredom (dare I say) of writing unit tests.&lt;/p&gt;&#xA;" OwnerUserId="153" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T14:03:39.437" LastActivityDate="2011-01-31T20:50:34.670" Title="How have you made unit testing more enjoyable ?" Tags="&lt;productivity&gt;&lt;unit-testing&gt;" AnswerCount="8" CommentCount="1" FavoriteCount="2" />
  <row Id="1850" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T14:28:07.733" Score="26" ViewCount="" Body="&lt;p&gt;Every programmer should know that he's putting assumptions in code all the time, e.g. &quot;this number will be positive and finite&quot;, &quot;this code will be able to connect to the server all the time within a blink of an eye&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And he should know that he should prepare for when those assumptions break.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-09-09T14:28:07.733" CommunityOwnedDate="2010-09-15T18:31:41.813" CommentCount="3" />
  <row Id="1851" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T14:30:27.803" Score="54" ViewCount="" Body="&lt;p&gt;Don't stop learning.&lt;/p&gt;&#xA;" OwnerUserId="74" LastEditorUserId="74" LastEditorDisplayName="" LastEditDate="2010-12-13T22:45:40.197" LastActivityDate="2010-12-13T22:45:40.197" CommunityOwnedDate="2010-09-15T18:31:41.813" CommentCount="4" />
  <row Id="1852" PostTypeId="2" ParentId="282" CreationDate="2010-09-09T14:31:44.853" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://thechangelog.com/&quot; rel=&quot;nofollow&quot;&gt;The Changelog Podcast&lt;/a&gt;.  Great guests working on some of the coolest projects in open source.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://twit.tv/sn&quot; rel=&quot;nofollow&quot;&gt;Security Now&lt;/a&gt;. Great TWiT podcast on computer security.&lt;/p&gt;&#xA;" OwnerUserId="616" LastActivityDate="2010-09-09T14:31:44.853" CommunityOwnedDate="2010-12-21T06:02:41.540" />
  <row Id="1853" PostTypeId="2" ParentId="1849" CreationDate="2010-09-09T14:32:38.680" Score="8" ViewCount="" Body="&lt;p&gt;Smug superiority.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm only half-joking.  &quot;Look at me, cultivating good programming habits!  This 'unit testing' stuff is something Me From Ten Years Ago never would have done -- what a fool!  And just think of all the bugs I'm going to catch as a result of this boring, tedious work I'm doing right now -- my code will be awesome!  I'll get a raise for sure!*&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;* -- No, I won't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find it's like working out or eating healthy; until the tangible benefits actually kick in (&quot;Holy balls, I really AM catching a crap-ton of regression errors that would have snuck into production!&quot;), the moral pride of knowing that you're doing The Right Thing can help carry you through.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-09T14:32:38.680" CommentCount="11" />
  <row Id="1854" PostTypeId="2" ParentId="1015" CreationDate="2010-09-09T14:34:11.267" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://lastpass.com/&quot; rel=&quot;nofollow&quot;&gt;LastPass&lt;/a&gt; is great, works everywhere, and has tons of extra options for crazy good security.  A comprehensive review and analysis was done by &lt;a href=&quot;http://www.grc.com/sn/sn-256.htm&quot; rel=&quot;nofollow&quot;&gt;GRC&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="616" LastActivityDate="2010-09-09T14:34:11.267" />
  <row Id="1855" PostTypeId="2" ParentId="1849" CreationDate="2010-09-09T14:38:27.300" Score="5" ViewCount="" Body="&lt;p&gt;I don't know. What definitely makes unit testing more enjoyable to me is the thought of all the frustrating, lengthy, boring and unrewarding debugging I will not have go through every time I make a change in the software :)&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-09-09T14:38:27.300" CommentCount="3" />
  <row Id="1858" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T14:45:23.877" Score="11" ViewCount="" Body="&lt;p&gt;Keyboarding form is related to programming ability.  Seriously, one of the teachers at my high school told me, &quot;You can't code quickly if you can't type quickly.&quot;  My response was, &quot;That's like saying I can only write the Great American Novel if I do it in cursive.&quot;&lt;/p&gt;&#xA;" OwnerUserId="671" LastActivityDate="2010-09-09T14:45:23.877" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="11" />
  <row Id="1860" PostTypeId="2" ParentId="1600" CreationDate="2010-09-09T14:50:49.163" Score="5" ViewCount="" Body="&lt;p&gt;I do sometimes want to quit the programming world, but its the &quot;world&quot; and not the &quot;programming&quot; that I want to get rid of!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should ask yourself if it is &quot;programming&quot; that you are tired of, or is it the environment you are programming in - job hours / colleagues / salary / work culture. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Based on the answer, you can decide if you want to change jobs or careers!&lt;/p&gt;&#xA;" OwnerUserId="153" LastActivityDate="2010-09-09T14:50:49.163" />
  <row Id="1862" PostTypeId="2" ParentId="1849" CreationDate="2010-09-09T15:00:58.403" Score="3" ViewCount="" Body="&lt;p&gt;For one, I almost never just sit there and write unit tests. Unit tests are a means to an end, not an end in themselves. They are a way of answering &quot;does this code do the basic task that it is supposed to.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, some people will write a function, and then open an interactive session to test it out on a few values and make sure it's working:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;def fact x&#xA;  if x == 0&#xA;    1&#xA;  else &#xA;    x * fact(x-1)&#xA;  end&#xA;end&#xA;&#xA;&amp;gt;&amp;gt; fact 10&#xA;=&amp;gt; 3628800&#xA;&amp;gt;&amp;gt; fact 7&#xA;=&amp;gt; 5040&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But now you discover a bug:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;gt;&amp;gt; fact -1&#xA;SystemStackError: stack level too deep&#xA;    from (irb):2:in `fact'&#xA;    from (irb):5:in `fact'&#xA;    from (irb):10&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So you fix it:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;def fact x&#xA;  if x &amp;lt; 0&#xA;    raise &quot;Can't take the factorial of a negative number&quot;&#xA;  elsif x == 0&#xA;    1&#xA;  else &#xA;    x * fact(x-1)&#xA;  end&#xA;end&#xA;&#xA;&amp;gt;&amp;gt; fact -1&#xA;RuntimeError: Can't take the factorial of a negative number&#xA;    from (irb):3:in `fact'&#xA;    from (irb):10&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But now you really ought to test to make sure it still works:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;gt;&amp;gt; fact 10&#xA;=&amp;gt; 3628800&#xA;&amp;gt;&amp;gt; fact 7&#xA;=&amp;gt; 5040&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;As you can see, you keep on repeating the same tests... and you have to compare the results visually. Unit testing is a way of avoiding the repetition in this case; it reduces how much work you need to do. And while this is a silly little example, in the real world, it becomes more and more important, and more and more difficult to test manually. What this means, of course, is that people simply don't test the individual components; they just test the whole program. But then bugs crop up, and they're much harder to find. Or bugs happen, and they're fixed, but someone introduces the same bug all over again, because no one added a test case to make sure that didn't happen. Or someone looks at a big piece of code, and says &quot;I have no idea what this is supposed to do, since it's not documented and has no tests... if I fix this bug, I have no idea if I'll break something else depending on it; maybe I'll just rewrite this from scratch.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unit tests reduce all of the extra work in these cases. The best way to make them fun is to make sure that people understand all of the work that they are replacing, and the extra flexibility that comes from knowing what each piece of code is supposed to do. To some degree, people need to have a bit more experience with writing and maintaining a large code base to understand how important unit testing can be; if all of their code is something they write once and throw away, they'll never quite get it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And unit tests shouldn't be written after the fact, as an extra chore once you have code that you &quot;know&quot; already works. Unit tests should be written first, or at the very least (since you sometimes forget to write them first) right after writing the code in question. This is called test-driven development, and it can help make your APIs better; if you write the tests that exercise the APIs first, you will learn where the APIs are a pain to use before you even write the code, and can redesign much more easily than if you only add the tests afterwards.&lt;/p&gt;&#xA;" OwnerUserId="662" LastActivityDate="2010-09-09T15:00:58.403" CommentCount="5" />
  <row Id="1863" PostTypeId="2" ParentId="1763" CreationDate="2010-09-09T15:08:50.640" Score="2" ViewCount="" Body="&lt;h3&gt;Computer: desktop&lt;/h3&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Core i7 proc&lt;/li&gt;&#xA;&lt;li&gt;12+GB ram&lt;/li&gt;&#xA;&lt;li&gt;Scream fast SSD&lt;/li&gt;&#xA;&lt;li&gt;4 monitors (and video card(s) to match)&lt;/li&gt;&#xA;&lt;li&gt;Apple keyboard, and MS Arc mouse&lt;/li&gt;&#xA;&lt;li&gt;Win 7&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h3&gt;Workstation: office&lt;/h3&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The most comfortable chair money can buy&lt;/li&gt;&#xA;&lt;li&gt;A custom desk to suite my needs&lt;/li&gt;&#xA;&lt;li&gt;Hire a decorator to make it awesome&lt;/li&gt;&#xA;&lt;li&gt;A nice leather couch for relaxing&lt;/li&gt;&#xA;&lt;li&gt;An entire wall of whiteboards&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h3&gt;Software: MS stack&lt;/h3&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;VS10 ultimate&lt;/li&gt;&#xA;&lt;li&gt;TFS to match&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://memprofiler.com/&quot; rel=&quot;nofollow&quot;&gt;.net Memory profiler&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.red-gate.com/products/reflector/&quot; rel=&quot;nofollow&quot;&gt;Reflector Pro&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Some kind of VM manger so I can easily spin up VM's and tear them down&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and last, but not least... Hire Jon Skeet as a personal mentor :)&lt;/p&gt;&#xA;" OwnerUserId="81" LastActivityDate="2010-09-09T15:08:50.640" CommunityOwnedDate="2010-09-09T15:08:50.640" CommentCount="1" />
  <row Id="1864" PostTypeId="2" ParentId="567" CreationDate="2010-09-09T15:09:25.907" Score="2" ViewCount="" Body="&lt;p&gt;Meta programming should be in another level when C# 5 arrives.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T15:09:25.907" CommentCount="7" />
  <row Id="1865" PostTypeId="2" ParentId="1814" CreationDate="2010-09-09T15:11:58.893" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Any sufficiently advanced technology is indistinguishable from magic.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;-Arthur C. Clarke&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've had these users before.  The best I've come up with is to explain that a computer is a deterministic machine, and can't hate them any more than a typewriter, a slide rule, or an abacus can.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-09T15:11:58.893" CommentCount="2" />
  <row Id="1866" PostTypeId="2" ParentId="1692" CreationDate="2010-09-09T15:12:20.520" Score="0" ViewCount="" Body="&lt;p&gt;This is a standard feature of almost all *nix desktops, and I enjoy it daily.  Right now I'm running Compiz on Ubuntu.  The Desktop Wall plugin supports keyboard switching and shows an popup + animation that helps me easily keep track of where I am.  (Other utilities can show a persistent visual indication in a panel.)  There's several ways to switch, however, and the Expo plugin also lets you drag-n-drop windows across desktops.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't looked into separate wallpaper per desktop, but I have seen people doing that.  I usually prefer to rotate backgrounds periodically and keep it fresh, or stick with a mostly solid color.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because multiple desktops are always loaded, regular session management keeps track of what programs to start (at login time) and your last requirement is the way it just works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, this is all free as in speech and as in beer. ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because I needed an excuse to learn about screencasting, I put together a &lt;a href=&quot;http://www.mediafire.com/?vgedj56p1lzxedr&quot; rel=&quot;nofollow&quot;&gt;simple demo&lt;/a&gt; showing the wall (and moving around plus moving apps around with the keyboard) and expo.  Tell me what you think.  (Also shown are AWN and Gnome Do.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I realize you might want a Windows-only solution, but not tagged [windows] and that wasn't mentioned.)&lt;/p&gt;&#xA;" LastActivityDate="2010-09-09T15:12:20.520" CommentCount="1" />
  <row Id="1870" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T15:27:15.007" Score="40" ViewCount="" Body="&lt;p&gt;That commenting code is unnecessary, or that &quot;good code doesn't need comments&quot;. Sometimes you need to explain what a complex bit of code is doing. Furthermore, commenting sections of code helps you skim read much more effectively.&lt;/p&gt;&#xA;" OwnerUserId="456" LastActivityDate="2010-09-09T15:27:15.007" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="7" />
  <row Id="1871" PostTypeId="1" CreationDate="2010-09-09T15:29:55.703" Score="2" ViewCount="198" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/597/how-much-do-you-program-outside-of-work&quot;&gt;How much do you program outside of work?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Programming is a taxing activity, just wonder how many of you are doing side projects in your free time? And if you do, how do you find the motivation to code further after coming home, exhausted?&lt;/p&gt;&#xA;" OwnerUserId="468" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T14:03:03.477" LastActivityDate="2010-09-12T14:03:03.477" ClosedDate="2010-09-09T16:43:04.017" Title="Are you Doing Side Projects in Your Free Time?" Tags="&lt;free-time&gt;&lt;home&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="1872" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T15:34:10.143" Score="134" ViewCount="" Body="&lt;p&gt;that you can speed up a late project, simply by throwing more people to it.&lt;/p&gt;&#xA;" OwnerUserId="625" LastActivityDate="2010-09-09T15:34:10.143" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="13" />
  <row Id="1875" PostTypeId="2" ParentId="1871" CreationDate="2010-09-09T15:50:39.953" Score="1" ViewCount="" Body="&lt;p&gt;Yes, i do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do for-money programming, you have to deal with a lot of ugly compromises. You can't always go for the perfect solution and you can't choose the problem freely. For example, i love Haskell, but there is no chance i can use it at work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you love programming, you probably like the idea of doing it without those real-world constraints. It's sort of like skiing off the official tracks on a broad white powdery plain.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-09-09T15:50:39.953" />
  <row Id="1876" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T15:52:20.777" Score="1" ViewCount="" Body="&lt;p&gt;Many people tend to think that JavaScript is similar to C++ and don't understand that it actually uses prototype inheritance.&lt;/p&gt;&#xA;" OwnerUserId="652" LastActivityDate="2010-09-09T15:52:20.777" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="2" />
  <row Id="1877" PostTypeId="1" CreationDate="2010-09-09T15:54:56.303" Score="5" ViewCount="276" Body="&lt;p&gt;As an example, say there's an interface that contains a table/grid of information that is periodically updated.  The table is meant to represent an event that has happened, perhaps the date and time of a stock price change .  The acutal frequency of these events could be dozens of events per second.  This is obviously too much information for a user to process/understand, so I'm trying to find out how much information a user COULD process in a given amount of time so that we can throttle the data and come up with an alternate display.&#xA;I know some studies have been done on this, but I can't seem to find an authorative source.&lt;/p&gt;&#xA;" OwnerUserId="695" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T12:40:45.450" LastActivityDate="2010-09-17T17:34:56.503" Title="How much information can a user reasonably process from a UI?" Tags="&lt;productivity&gt;&lt;analysis&gt;" AnswerCount="5" CommentCount="5" FavoriteCount="1" />
  <row Id="1878" PostTypeId="2" ParentId="1814" CreationDate="2010-09-09T15:56:12.440" Score="4" ViewCount="" Body="&lt;p&gt;People have been anthropomorphizing machines for as long as there have been machines.  The thing to remember is that computers are, by orders of magnitude, the most complex machines ever created by humankind, and that most people &lt;i&gt;just don't get how they work.&lt;/i&gt;  When somebody says their car hates them, the majority of the time they know perfectly well that it's having a perfectly ordinary mechanical problem (or a series of them).  But a computer ... well, hell.  Who knows how those things really work?  Maybe it &lt;i&gt;does&lt;/i&gt; hate me!  And a joke/coping mechanism starts to sound like a perfectly good theory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, de-mystify it.  Save the moon-phase jokes and chants of &quot;The power of Babbage compels you! The power of Babbage compels you!&quot; for fellow professionals.  Emphasize that what you're dealing with is a malfunctioning machine, nothing more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good analogy is to liken a computer to a very bright but willful child that does exactly what it's told to do -- and could care less about what you &lt;i&gt;want&lt;/i&gt; it to do.  Ever seen that Bill Cosby routine where his kids come downstairs in their pajamas soaking wet because he didn't tell them to take off their pajamas before getting in the shower?  It's &lt;i&gt;exactly&lt;/i&gt; like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tell them that when their computer does something stupid, it's usually because somebody &lt;i&gt;told&lt;/i&gt; it to do something stupid.  Maybe it was them.  Maybe it was somebody who should have known better.  Maybe it was a vandal.  But whatever it is, it isn't the computer choosing to be a prick; and that if you can find and correct the Something Stupid it was told to do, the problem will just go away.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-09T15:56:12.440" />
  <row Id="1879" PostTypeId="1" CreationDate="2010-09-09T15:58:31.487" Score="3" ViewCount="200" Body="&lt;p&gt;I have been programming in Java for some time now but I want to keep abreast of changes and interesting language features that I might have missed.  I tried to find some good blogs but have found that there is a lot of noise out there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do others keep abreast of what's happening with Java?&lt;/p&gt;&#xA;" OwnerUserId="694" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T11:32:51.723" LastActivityDate="2010-09-19T17:43:59.790" Title="How do you keep up to date with the Java programming language and community?" Tags="&lt;java&gt;&lt;stay-updated&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="1882" PostTypeId="2" ParentId="39" CreationDate="2010-09-09T16:00:22.193" Score="23" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Testing can only prove the presence of bugs, not their absence.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;mdash; Edsger W. Dijkstra&lt;/p&gt;&#xA;" OwnerUserId="215" LastEditorUserId="2598" LastEditorDisplayName="" LastEditDate="2010-09-27T17:35:32.530" LastActivityDate="2010-09-27T17:35:32.530" CommunityOwnedDate="2010-09-09T16:00:22.193" CommentCount="1" />
  <row Id="1883" PostTypeId="2" ParentId="1879" CreationDate="2010-09-09T16:01:37.143" Score="2" ViewCount="" Body="&lt;p&gt;You may keep an eye on Scala and Clojure. I have the impression, outside of these projects, not much is happening in the Java world nowadays.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-09-09T16:01:37.143" />
  <row Id="1884" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T16:05:34.180" Score="11" ViewCount="" Body="&lt;p&gt;Being Lazy - don't solve a problem until you absolutely, positively have to.&lt;/p&gt;&#xA;" OwnerUserId="695" LastActivityDate="2010-09-09T16:05:34.180" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="3" />
  <row Id="1885" PostTypeId="1" AcceptedAnswerId="1889" CreationDate="2010-09-09T16:07:42.007" Score="2" ViewCount="218" Body="&lt;p&gt;As programmers I think we are the most inclined to use new technologies and things that are not so mainstream.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I absolutely love OpenId's ability to log in with credentials you already have, but I always use a provider that I already use and that is the fastest to log in, like google. God knows I'd never used it if i had to type in the whole &quot;https://www.google.com/accounts/o8/id&quot; I like to click on the google button and then just say yes (the first time, then its just clicking the button).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does any of you ever uses the Generic &quot;Enter your own provider&quot; OpenId?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you think its worth to even offer it to more casual end users?&lt;/p&gt;&#xA;" OwnerUserId="693" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-10T12:32:31.033" LastActivityDate="2010-11-10T12:32:31.033" Title="Does anybody ever uses the OpenId url Log in?" Tags="&lt;users&gt;&lt;openid&gt;" AnswerCount="5" />
  <row Id="1886" PostTypeId="2" ParentId="1871" CreationDate="2010-09-09T16:08:05.597" Score="1" ViewCount="" Body="&lt;p&gt;I do, but not all the time. Mostly I do it when there is a new technology I want to learn that I'll never get a chance to use at my day job.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-09T16:08:05.597" CommentCount="1" />
  <row Id="1887" PostTypeId="2" ParentId="597" CreationDate="2010-09-09T16:08:24.627" Score="0" ViewCount="" Body="&lt;p&gt;About 30 hours a week, but I think I'm more of an edge case that works too much.  But it's definitely not out of the question if you have good time management and don't mind working on things on the weekend.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am able to still spend considerable amount of time with my family by setting a specific time after work until my kids go to bed where I only spend time with them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to find more time consider getting a laptop so when you watch t.v. with the family you can also be coding or learning something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also work from home usually so this allows me to save an hour or more per day that people usually spend commuting. &lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-09T16:08:24.627" />
  <row Id="1888" PostTypeId="2" ParentId="1814" CreationDate="2010-09-09T16:13:56.757" Score="5" ViewCount="" Body="&lt;p&gt;People think that because a lot of software and IT people reinforce the idea. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) We write error messages that are terse and can imply that the user caused the problem.&lt;br&gt;&#xA;2) We take great joy in continually &lt;a href=&quot;http://programmers.stackexchange.com/questions/1752/whats-the-worst-stupid-action-your-users-done-with-your-application-and-how-you&quot;&gt;recounting storie&lt;/a&gt;s of dumb users and the errors they make.&lt;br&gt;&#xA;3) We often forget that everyone has to learn this stuff sometime, and forget that we were all n00bs at some point, and can sometimes have a condescending attitude towards them that makes them defensive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/LGuYI.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-09T16:13:56.757" CommentCount="1" />
  <row Id="1889" PostTypeId="2" ParentId="1885" CreationDate="2010-09-09T16:15:25.507" Score="10" ViewCount="" Body="&lt;p&gt;Yes. I set up delegation on my own site, so I just use one of my own URLs. Easy to remember, and doesn't tie me to a provider.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-09T16:15:25.507" CommentCount="7" />
  <row Id="1890" PostTypeId="1" CreationDate="2010-09-09T16:15:47.923" Score="14" ViewCount="782" Body="&lt;p&gt;What is the best practice, most commonly accepted naming conventions for private variables in C#?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;private int myInteger;&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;private int MyInteger;&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;private int mMyInteger;&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;private int _myInteger;&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;private int _MyInteger;&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Mysterious other option&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Which do you use and why?  (My company is fairly new to C# and I would like to pick the most &quot;industry accepted&quot; method to try and get into our coding standard.)&lt;/p&gt;&#xA;" OwnerUserId="71" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-14T12:13:51.363" LastActivityDate="2011-03-05T17:04:53.020" Title="How do you name your private variables in C#?" Tags="&lt;coding-standards&gt;&lt;variables&gt;&lt;naming-conventions&gt;" AnswerCount="19" CommentCount="6" FavoriteCount="1" />
  <row Id="1892" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T16:17:02.640" Score="2" ViewCount="" Body="&lt;p&gt;Every programmer should know the &quot;science&quot; in Computer Science (design patterns, algorithms, objects, etc...) if you can master that, you can program using any language, it is just a matter of getting used to the syntax.&lt;/p&gt;&#xA;" OwnerUserId="509" LastActivityDate="2010-09-09T16:17:02.640" CommunityOwnedDate="2010-09-15T18:31:41.813" CommentCount="1" />
  <row Id="1893" PostTypeId="2" ParentId="1454" CreationDate="2010-09-09T16:17:57.733" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://tadalist.com/&quot; rel=&quot;nofollow&quot;&gt;Ta-Da List&lt;/a&gt; - it's as simple as simple can be. Very good iPhone integration (as a web app). The only drawback that springs to mind is you can't reorder items on the iPhone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It doesn't fulfil the OP's #2 and #3 on the list - however, for those insisting &quot;I need feature X!&quot; I suggest taking a more zen-like approach and really consider if you need that feature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nested lists? Just make another list; if you start it with the same title (e.g. &quot;Personal&quot; &amp;amp; &quot;Personal: fitness&quot; it will be right next to the other one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recurring tasks? Just move the item to the bottom of your list when you've done it. Add the time period to it (e.g. &quot;Tuesdays&quot;). You can also use some basic HTML (bold, italic etc) to format.&lt;/p&gt;&#xA;" OwnerUserId="456" LastActivityDate="2010-09-09T16:17:57.733" />
  <row Id="1894" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T16:20:17.237" Score="1" ViewCount="" Body="&lt;p&gt;Talking using SQL syntax..&lt;/p&gt;&#xA;" LastActivityDate="2010-09-09T16:20:17.237" CommunityOwnedDate="2010-09-10T10:20:25.267" />
  <row Id="1895" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T16:20:52.307" Score="225" ViewCount="" Body="&lt;p&gt;If you're not typing, you're not working. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe zombie blank stares and coffee walks are essential to programmers organising things in their heads.&lt;/p&gt;&#xA;" OwnerUserId="705" LastActivityDate="2010-09-09T16:20:52.307" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="10" />
  <row Id="1897" PostTypeId="2" ParentId="1454" CreationDate="2010-09-09T16:21:43.833" Score="1" ViewCount="" Body="&lt;p&gt;I've used &lt;a href=&quot;http://www.rememberthemilk.com&quot; rel=&quot;nofollow&quot;&gt;Remember The Milk&lt;/a&gt; before but now I'm using &lt;a href=&quot;http://www.nirvanahq.com/&quot; rel=&quot;nofollow&quot;&gt;Nirvana HQ&lt;/a&gt; because it allows me to do GTD better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://www.nirvanahq.com/_static/_plank/_img/ss_home_xp_chrome.png&quot; alt=&quot;Nirvana HQ&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For project management I'm using &lt;a href=&quot;http://www.pivotaltracker.com/&quot; rel=&quot;nofollow&quot;&gt;Pivotal Tracker&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/c7UYy.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-09T16:21:43.833" />
  <row Id="1899" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T16:24:55.113" Score="36" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Troubleshooting and Debugging Skills&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They hardly spend any time on this topic in any of the programming courses I took, and in my experience it is one of the biggest determinants of how productive a programmer is. Like it or not, you spend a lot more time in the maintenance phase of your app than the new development phase.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've worked with soooooo many programmers who debug by randomly changing things with no strategy for finding the problem whatsoever. I've had this conversation dozens of times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Other Programmer:&lt;/strong&gt; I think we should try  to see if it fixes it.&lt;br&gt;&#xA;&lt;strong&gt;Me:&lt;/strong&gt; Okay, assuming that does fix it. What does that tell you about where the source of the problem is?&lt;br&gt;&#xA;&lt;strong&gt;Other Programmer:&lt;/strong&gt; I don't know, but we have to try &lt;em&gt;something&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="287" LastEditorUserId="3704" LastEditorDisplayName="" LastEditDate="2010-09-27T07:13:22.037" LastActivityDate="2010-09-27T07:13:22.037" CommunityOwnedDate="2010-09-15T18:31:41.813" CommentCount="4" />
  <row Id="1900" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T16:27:17.403" Score="10" ViewCount="" Body="&lt;p&gt;Pointers, obviously. :)&lt;/p&gt;&#xA;" OwnerUserId="703" LastActivityDate="2010-09-09T16:27:17.403" CommunityOwnedDate="2010-09-15T18:31:41.813" CommentCount="6" />
  <row Id="1901" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T16:27:37.823" Score="66" ViewCount="" Body="&lt;p&gt;Floating point computations are &lt;em&gt;not&lt;/em&gt; precise. &lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-09T16:27:37.823" CommunityOwnedDate="2010-09-15T18:31:41.813" CommentCount="4" />
  <row Id="1902" PostTypeId="1" AcceptedAnswerId="1926" CreationDate="2010-09-09T16:28:11.397" Score="17" ViewCount="269" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/47558/how-can-programming-ability-be-used-to-help-people-in-poverty&quot;&gt;How can programming ability be used to help people in poverty?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Salutations,&lt;br /&gt;&#xA;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#xA;I was wondering what a person in our field can do to make a difference in the world (for the better). I mean like volunteer work for a cause or the like. I don't mean volunteer for x church to build their website or anything. I mean actually contributing to something that will help real people through programming. I know way up the chain there are robotics engineer making artificial limbs and the like or geneticists coming up with algorithms to group and categorize the human genome project but, as far as guys that aren't super hardcore 1337 specialized. Guys that,like myself, do the more straight forward stuff like web development and commercial application building. And if there just are specific skill required to do so without necessarily having a PHD in whatever the field is (I.E. basic knowledge of medical terminology or electronic related ). I'm looking for specific groups if possible or a resource to find such things.&lt;/p&gt;&#xA;" OwnerUserId="707" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T14:02:33.413" LastActivityDate="2010-09-29T21:57:14.790" ClosedDate="2011-04-07T09:04:33.793" Title="Changing the world for the better as a programmer" Tags="&lt;career&gt;" AnswerCount="2" CommentCount="6" FavoriteCount="5" />
  <row Id="1903" PostTypeId="2" ParentId="1885" CreationDate="2010-09-09T16:29:02.893" Score="0" ViewCount="" Body="&lt;p&gt;I use Yahoo for the most part, easy to remember if you set it up right:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;me.yahoo.com/xxxx&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="509" LastActivityDate="2010-09-09T16:29:02.893" />
  <row Id="1904" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T16:29:16.167" Score="1" ViewCount="" Body="&lt;p&gt;That programming languages change all the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This might have been a long time ago in the past...&lt;br&gt;&#xA;But nowadays the changes are mostly extra features which try not to break existing code.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-09T16:29:16.167" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="3" />
  <row Id="1905" PostTypeId="2" ParentId="826" CreationDate="2010-09-09T16:29:18.630" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://menial.co.uk/software/base/&quot; rel=&quot;nofollow&quot;&gt;Base&lt;/a&gt; for creating, designing, editing and browsing SQLite 3 database files. &lt;/p&gt;&#xA;" OwnerUserId="623" LastActivityDate="2010-09-09T16:29:18.630" />
  <row Id="1906" PostTypeId="2" ParentId="1871" CreationDate="2010-09-09T16:30:10.737" Score="0" ViewCount="" Body="&lt;p&gt;I fit in a few hours a week working on software I'm interested in but not getting paid for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, you have to have free time in order to do it.  Some people have more free time than others; you need to figure out what is more important to you--working on a side project or watching Friends reruns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you get home from a day programming and are exhausted, you need to see a doctor.  We sit.  All day.  Thinking.  In air conditioning.  Its not that hard.&lt;/p&gt;&#xA;" OwnerUserId="698" LastActivityDate="2010-09-09T16:30:10.737" CommentCount="2" />
  <row Id="1907" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T16:30:30.330" Score="23" ViewCount="" Body="&lt;p&gt;I've had more than one person ask me about what it is like to program only to realize midway through the conversation that they actually think we program directly in binary or using mathematical symbols.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know if I want to dispel that myth, it makes me look really smart!&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-09T16:30:30.330" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="9" />
  <row Id="1908" PostTypeId="2" ParentId="1885" CreationDate="2010-09-09T16:30:34.993" Score="1" ViewCount="" Body="&lt;p&gt;I'd say the benefits outweigh the disadvantages. If you didn't provide that feature, you'd have to include more presets to make sure everyone was covered, and (as Mr. C said) some people use their own sites to redirect to their OpenId. Forcing some users to create a new OpenId just to use your site would probably turn most of them away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're worried about it confusing new users, you could always hide it under an advanced option.&lt;/p&gt;&#xA;" OwnerUserId="40" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-09-09T17:14:09.697" LastActivityDate="2010-09-09T17:14:09.697" CommentCount="2" />
  <row Id="1909" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T16:31:44.057" Score="77" ViewCount="" Body="&lt;p&gt;Any teenage kid who hacks with computers is equivalent (or superior) in skill to a veteran working programmer.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;My 14 year old nephew is good with&#xA;  computers and I'm paying him $10/hr to&#xA;  mow my lawn. Why should I pay you six&#xA;  figures to write the next FaceBook?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-09T16:31:44.057" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="8" />
  <row Id="1910" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T16:34:20.820" Score="97" ViewCount="" Body="&lt;p&gt;The complexity of the app is directly proportional to the complexity of the UI. By this reasoning, you should be able to build Google or Twitter over a weekend.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-09T16:34:20.820" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="5" />
  <row Id="1911" PostTypeId="2" ParentId="1890" CreationDate="2010-09-09T16:37:33.403" Score="10" ViewCount="" Body="&lt;p&gt;I use option #4 above:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private int _myInteger;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I like to have some indication of scope in my variable names, and the underscore is sufficient for that purpose.  It's also quite easy to read.&lt;/p&gt;&#xA;" OwnerUserId="710" LastActivityDate="2010-09-09T16:37:33.403" CommentCount="1" />
  <row Id="1912" PostTypeId="2" ParentId="1890" CreationDate="2010-09-09T16:39:06.100" Score="7" ViewCount="" Body="&lt;p&gt;First off, PascalCasing is commonly reserved for public properties, consts, methods, etc of the class.  So I would skip 2 and 5.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, hungarian notation is discouraged in the .NET world, so (uh, I think) 3 is right out.  Assuming that's what is going on with 3.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That leaves with camelCasing and _camelCasing.  I typically use _camelCasing for class variables, and plain old camelCasing for variables scoped to a method or narrower.  Camel casing is the accepted standard used for method arguments, protected/private variable names and variables within a method or narrower scope.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also like to prepend with the underscore so that my private variables are grouped in my intellisense. However, I only do this for variables scoped to a type.  Variables declared within a method or narrower scope I leave the underscore off.  Makes it easy to keep them separate and keep less used variables together.&lt;/p&gt;&#xA;" OwnerUserId="698" LastActivityDate="2010-09-09T16:39:06.100" CommentCount="5" />
  <row Id="1913" PostTypeId="1" CreationDate="2010-09-09T16:39:12.347" Score="11" ViewCount="1046" Body="&lt;p&gt;Along the lines of Scott Hanselman's &lt;a href=&quot;http://www.hanselman.com/blog/ScottHanselmans2009UltimateDeveloperAndPowerUsersToolListForWindows.aspx&quot; rel=&quot;nofollow&quot;&gt;definitive tools list&lt;/a&gt;, what are the must have applications for a Windows?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm wondering about other good ones that are missing, it's fine to post something already on that list.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please keep this to development tools only... There is already a related question for more general tools.&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:48:25.423" LastActivityDate="2011-01-27T11:35:33.587" CommunityOwnedDate="2010-09-10T20:03:00.190" ClosedDate="2011-03-28T15:14:01.543" Title="What are the must have development tools for Windows?" Tags="&lt;tools&gt;&lt;windows&gt;" AnswerCount="34" CommentCount="1" FavoriteCount="11" />
  <row Id="1915" PostTypeId="2" ParentId="1890" CreationDate="2010-09-09T16:39:33.573" Score="6" ViewCount="" Body="&lt;p&gt;I think the option 4 is really the most readable option. It helps you from having to do this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public Person(string name, int age) &#xA;{&#xA;    this.name = name;&#xA;    this.age = age;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It also makes all private members more noticeable. In the following example, where the heck is &lt;code&gt;age&lt;/code&gt; coming from? Without the &lt;code&gt;this&lt;/code&gt; qualifier it is harder to tell.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private void Method()&#xA;{&#xA;    var x = 2;&#xA;    var y = age + x;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This is way easier to understand:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private void Method()&#xA;{&#xA;    var x = 2;&#xA;    var y = _age + x;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="712" LastEditorUserId="712" LastEditorDisplayName="" LastEditDate="2010-09-09T16:44:34.263" LastActivityDate="2010-09-09T16:44:34.263" CommentCount="2" />
  <row Id="1916" PostTypeId="2" ParentId="1692" CreationDate="2010-09-09T16:40:32.833" Score="0" ViewCount="" Body="&lt;p&gt;Best free one I've seen is &lt;a href=&quot;http://virt-dimension.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Virtual Dimension&lt;/a&gt;. It's starting to show its age but still compatible with Win 7.&lt;/p&gt;&#xA;" OwnerUserId="509" LastActivityDate="2010-09-09T16:40:32.833" />
  <row Id="1917" PostTypeId="2" ParentId="779" CreationDate="2010-09-09T16:41:02.820" Score="20" ViewCount="" Body="&lt;p&gt;I was once asked, &quot;Has anything unfortunate happened to you recently?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I responded that my father had recently died. The interviewer just nodded slowly and said &quot;Hmmm....&quot;&lt;/p&gt;&#xA;" OwnerUserId="714" LastActivityDate="2010-09-09T16:41:02.820" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="5" />
  <row Id="1918" PostTypeId="2" ParentId="1890" CreationDate="2010-09-09T16:41:27.823" Score="0" ViewCount="" Body="&lt;p&gt;In C++ I tend to use _ as I switch editors a lot which doesn't allow me to see if it's private.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For C# I tend to to leave the _ away as Visual Studio allows me to see if it's private.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to use the Camel Case way to do this.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-09T16:41:27.823" />
  <row Id="1919" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T16:42:39.837" Score="13" ViewCount="" Body="&lt;p&gt;Visual Studio 2010.  &lt;/p&gt;&#xA;" OwnerUserId="698" LastActivityDate="2010-09-09T16:42:39.837" CommunityOwnedDate="2010-09-10T20:03:00.190" CommentCount="12" />
  <row Id="1920" PostTypeId="1" CreationDate="2010-09-09T16:44:02.880" Score="7" ViewCount="496" Body="&lt;p&gt;Along the lines of Scott Hanselman's &lt;a href=&quot;http://www.hanselman.com/blog/ScottHanselmans2009UltimateDeveloperAndPowerUsersToolListForWindows.aspx&quot; rel=&quot;nofollow&quot;&gt;definitive tools list&lt;/a&gt;, what are the must have applications for Linux?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you use these tools for? Why are they better than others? Do they make you more productive?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-20T22:07:41.410" LastActivityDate="2011-04-27T17:47:22.473" ClosedDate="2011-04-27T17:44:05.490" Title="What are the must have development tools for Linux?" Tags="&lt;tools&gt;&lt;linux&gt;" AnswerCount="9" CommentCount="4" FavoriteCount="2" />
  <row Id="1921" PostTypeId="1" CreationDate="2010-09-09T16:44:28.103" Score="6" ViewCount="257" Body="&lt;p&gt;I'm applying for a programming job as I have just left Uni. The job is an entry level one in a company that develops financial software. The job description says that it will involve &quot;HOST resources ... will learn JCL, COBOL, DB2 and CICS skills.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was wondering if the technology listed above are still relevant (looking at this from a career perspective) or are these being phased out (and I should therefore look somewhere else)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any help would be appreciated.&lt;/p&gt;&#xA;" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-24T10:31:09.667" LastActivityDate="2010-09-24T11:02:40.953" Title="Applying for a programming job" Tags="&lt;programming-languages&gt;&lt;jobs&gt;&lt;technology&gt;&lt;advice&gt;" AnswerCount="6" CommentCount="1" />
  <row Id="1923" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T16:46:48.067" Score="3" ViewCount="" Body="&lt;p&gt;Virtual PC.  Its my fav of the virtuals out there, and having undo disks makes iterative testing of installers a snap.  If you aren't testing your installers on a virtual machine you're doing it wrong.&lt;/p&gt;&#xA;" OwnerUserId="698" LastActivityDate="2010-09-09T16:46:48.067" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="1924" PostTypeId="2" ParentId="1662" CreationDate="2010-09-09T16:46:50.187" Score="0" ViewCount="" Body="&lt;p&gt;I would love to have a 9 to 5 job. I'm working a solid 8:30 to 18:00. Gets a bit long sometimes&lt;/p&gt;&#xA;" OwnerUserId="154" LastActivityDate="2010-09-09T16:46:50.187" CommentCount="2" />
  <row Id="1925" PostTypeId="2" ParentId="597" CreationDate="2010-09-09T16:46:53.553" Score="0" ViewCount="" Body="&lt;p&gt;I also used to do a lot, but no longer have the time for much if any programming outside of work.  With working 2 jobs it seems like house and car repairs eat up every last scrap of available time.  I'm technically still on an open source project in my free time, but haven't had a chance to do any coding or testing for it in months now.  Perhaps again this Winter when there's not so much lawncare to be done...&lt;/p&gt;&#xA;" OwnerUserId="715" LastActivityDate="2010-09-09T16:46:53.553" />
  <row Id="1926" PostTypeId="2" ParentId="1902" CreationDate="2010-09-09T16:47:36.327" Score="10" ViewCount="" Body="&lt;p&gt;I would recommend watching some &lt;strong&gt;&lt;a href=&quot;http://www.ted.com&quot; rel=&quot;nofollow&quot;&gt;TED&lt;/a&gt;&lt;/strong&gt; presentations - whilst not everything there is about changing the world, a lot of things do touch on it (either directly or indirectly).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you find a presentation interesting, follow the link to the project's website and find out about helping with the development.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-09-09T16:47:36.327" CommentCount="1" />
  <row Id="1927" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T16:49:31.773" Score="1" ViewCount="" Body="&lt;p&gt;The more you know about how security works on your platform of choice the better.&lt;/p&gt;&#xA;" OwnerUserId="698" LastActivityDate="2010-09-09T16:49:31.773" CommunityOwnedDate="2010-09-15T18:31:41.813" />
  <row Id="1928" PostTypeId="2" ParentId="597" CreationDate="2010-09-09T16:49:40.807" Score="1" ViewCount="" Body="&lt;p&gt;&quot;How much&quot; depends on the time of the year, there are times when I study more, times when I game more, times when I just surf more and thus also times where I program more...&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-09T16:49:40.807" />
  <row Id="1929" PostTypeId="2" ParentId="1885" CreationDate="2010-09-09T16:50:06.967" Score="0" ViewCount="" Body="&lt;p&gt;I have both a mylid.net account and a delegated myopenid account on my personal site. the stack* sites don't seem to like the delegdted account, so I use my mylid account here.&lt;/p&gt;&#xA;" OwnerUserId="15077" LastActivityDate="2010-09-09T16:50:06.967" />
  <row Id="1930" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T16:50:35.430" Score="20" ViewCount="" Body="&lt;p&gt;I once worked on a project in which the project lead mandated that every variable - EVERY variable - be prefixed with &quot;v&quot;.  So, vCount, vFirstName, vIsWarranty, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why?  &quot;Because we're working in VBScript and everything is a Variant anyway&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;WTF.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-09T16:50:35.430" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="5" />
  <row Id="1931" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T16:51:17.947" Score="13" ViewCount="" Body="&lt;p&gt;Forcing inline comments for version control was about the most pointless coding standard I ignored.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//Changed on 2/2/2004 By Ryan Roberts for work item #2323332&#xA;Dim Some Horrendous VB&#xA;//End Changed&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The Oracle DBA that insisted on correct use of whitespace while 'maintaining' a database with a highly contended table that had over 200 fields and 40 triggers comes close.&lt;/p&gt;&#xA;" OwnerUserId="718" LastActivityDate="2010-09-09T16:51:17.947" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="5" />
  <row Id="1932" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T16:53:48.550" Score="3" ViewCount="" Body="&lt;p&gt;maybe The Huawei Software Company's coding stds, they want you to declare all members public:))&lt;/p&gt;&#xA;" OwnerUserId="738" LastActivityDate="2010-09-09T16:53:48.550" CommunityOwnedDate="2010-09-09T18:16:09.323" />
  <row Id="1933" PostTypeId="2" ParentId="1921" CreationDate="2010-09-09T16:54:37.910" Score="2" ViewCount="" Body="&lt;p&gt;You should be looking and applying to hundreds of places, and those places that you apply for should match what your experience is.  Is your experience really in COBOL? Where did you graduate from if so?  If so how long of a timespan is &quot;I have just left Uni&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just because a language or technology is not in the height of its usage, doesn't mean it is not relevant, as long as there is a demand for any technology it is still relevant. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, it is relevant to the world, not necessarily to you.  You should start with something that is not on a decline but that also matches what your experience is.  &lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-09T17:06:00.460" LastActivityDate="2010-09-09T17:06:00.460" CommentCount="0" />
  <row Id="1934" PostTypeId="2" ParentId="1921" CreationDate="2010-09-09T16:56:44.600" Score="2" ViewCount="" Body="&lt;p&gt;I have no experience in those things, but Google Trends shows me something:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.google.com/trends?q=jcl,+cobol,+db2,+cics&quot; rel=&quot;nofollow&quot;&gt;Google Trends: Focus on DB2 &amp;amp; Cobol&lt;/a&gt;, they both decreased a lot. (To only 1/2 &amp;amp; 1/3 of 2004)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.google.com/trends?q=jcl,+cics&quot; rel=&quot;nofollow&quot;&gt;Google Trends: Focus on JCL &amp;amp; CICS&lt;/a&gt;, CISC decreases and JCL doesn't change. (They are less than DB2)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.google.com/trends?q=c%23,+cobol&quot; rel=&quot;nofollow&quot;&gt;Google Trends: Comparison of C# &amp;amp; Cobol&lt;/a&gt;, gives you an idea how small Cobol is. (Small to me)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Relevant to what Brian stated: Learning things (even if they are dead) can have benefit in the feature,&lt;br&gt;&#xA;it can help you understand the history of those things and some of their techniques are still used today.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-09T16:56:44.600" />
  <row Id="1935" PostTypeId="2" ParentId="1662" CreationDate="2010-09-09T16:56:50.823" Score="0" ViewCount="" Body="&lt;p&gt;Being in academia, my working hours are &quot;when I feel like it&quot;. I do put in a solid 10 hours a day, but as long as the work gets done on time, if I don't feel like coding on a particular day, no one complains.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-09T16:56:50.823" CommentCount="1" />
  <row Id="1936" PostTypeId="2" ParentId="1921" CreationDate="2010-09-09T16:58:21.787" Score="2" ViewCount="" Body="&lt;p&gt;Your first programming job will have a dramatic effect on your development as a programmer. That being said I don't believe COBOL is the best language to start out with.&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-09T16:58:21.787" CommentCount="1" />
  <row Id="1937" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T16:58:41.850" Score="69" ViewCount="" Body="&lt;p&gt;Our company (C#) coding standard called for extensive use of #REGIONs (for those who don't know, it marks blocks of source code that will be collapsted to a single line in Visual Studio). As a consequence, you always opened what seemed to be a nicely structured class, only to find piles and piles of garbage swept under deeply nested rugs of #REGION constructs. You'd even have regions around single lines, e.g. having to fold out a fold out a LOG region to find one single declaration of the Logger. Of course, plenty of methods added after some region was made, were placed in the &quot;wrong&quot; region scope as well. The horror. The horror.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regions are one of the &lt;em&gt;worst&lt;/em&gt; features ever added to Visual Studio; it encourages structuring the surface rather than the actual OO structure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nowadays, I kill #REGIONs on sight.&lt;/p&gt;&#xA;" OwnerUserId="734" LastEditorUserId="734" LastEditorDisplayName="" LastEditDate="2010-09-09T18:01:59.413" LastActivityDate="2010-09-09T18:01:59.413" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="14" />
  <row Id="1938" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T16:58:50.717" Score="5" ViewCount="" Body="&lt;p&gt;I worked in a project were the Chief Architect demand to write (way too) explicit code. One of the worst examples I found in the code (And he happily approved) was the following&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private string DoSomething( bool verbose )&#xA;{&#xA;     if ( verbose ) { return someString; }&#xA;     else if ( !verbose ) { return otherString; }&#xA;     else { return string.Empty; }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Even ReShapter told you this is worng!&lt;/p&gt;&#xA;" LastEditorUserId="191" LastEditorDisplayName="" LastEditDate="2010-09-10T19:26:34.513" LastActivityDate="2010-09-10T19:26:34.513" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="6" />
  <row Id="1939" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T16:59:09.710" Score="4" ViewCount="" Body="&lt;p&gt;If you're doing .NET development on Windows and using Visual Studio then having &lt;a href=&quot;http://www.jetbrains.com/resharper/&quot; rel=&quot;nofollow&quot;&gt;ReSharper&lt;/a&gt; really helps. &lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-09T16:59:09.710" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="1940" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T17:01:34.637" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.ganssle.com/articles/Firmwaredisasters1.htm&quot; rel=&quot;nofollow&quot;&gt;Test like you fly, fly what you tested&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="196" LastActivityDate="2010-09-09T17:01:34.637" CommunityOwnedDate="2010-09-15T18:31:41.813" />
  <row Id="1941" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T17:01:37.490" Score="2" ViewCount="" Body="&lt;p&gt;Writing anything in Fortran (WATFOR, Fortran77) where a non-whitespace character in column 1 was a comment and the compiler didn't warn you if you went beyond column 72, it would just silently ignore it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least I only spent seven years doing this.&lt;/p&gt;&#xA;" OwnerUserId="749" LastEditorUserId="749" LastEditorDisplayName="" LastEditDate="2010-10-05T12:11:01.427" LastActivityDate="2010-10-05T12:11:01.427" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="5" />
  <row Id="1942" PostTypeId="2" ParentId="1262" CreationDate="2010-09-09T17:04:21.977" Score="20" ViewCount="" Body="&lt;p&gt;I don't think its necessarily the advanced features of VIM that make it so powerful. Its the fact that you never have to take your hands off the keyboard to do anything. Finding something in a huge file is as simple as a couple of keystrokes. Opening and closing multiple files in the same window is incredibly fast as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While it may not seem intuitive at first, its well worth your time. Even if you don't use it as your standard IDE (I generally use Visual Studio or Eclipse, for example), you'll find your self using VIM to quickly open and edit files because it becomes way faster than waiting for the IDE to load.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Invest the time to learn how to use VIM well and you'll never regret it. I'd say its comparable to learning to touch-type.&lt;/p&gt;&#xA;" OwnerUserId="731" LastActivityDate="2010-09-09T17:04:21.977" CommentCount="2" />
  <row Id="1943" PostTypeId="2" ParentId="1108" CreationDate="2010-09-09T17:06:03.987" Score="1" ViewCount="" Body="&lt;p&gt;For web developers, the UK-based magazine &lt;a href=&quot;http://www.netmag.co.uk/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;.net&lt;/strong&gt;&lt;/a&gt; is top notch. It's available in the US under the name &lt;em&gt;Practical Web Design&lt;/em&gt;. I believe you can subscribe to it from anywhere in the world.&lt;/p&gt;&#xA;" OwnerUserId="456" LastActivityDate="2010-09-09T17:06:03.987" CommentCount="1" />
  <row Id="1945" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T17:07:51.190" Score="1" ViewCount="" Body="&lt;p&gt;in VB6, we had to add error handling blocks to EVERY-SINGLE-METHOD.  No exceptions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So we did.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then we had to explain why parts of the application were slow.&lt;/p&gt;&#xA;" OwnerUserId="758" LastActivityDate="2010-09-09T17:07:51.190" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="1" />
  <row Id="1946" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T17:12:27.453" Score="4" ViewCount="" Body="&lt;p&gt;These are my must have development tools:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Visual Studio&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.ghisler.com/&quot; rel=&quot;nofollow&quot;&gt;Total commander&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Firefox + &lt;a href=&quot;http://getfirebug.com/&quot; rel=&quot;nofollow&quot;&gt;Firebug&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://tortoisesvn.tigris.org/&quot; rel=&quot;nofollow&quot;&gt;Tortoise SVN&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="210" LastActivityDate="2010-09-09T17:12:27.453" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="1947" PostTypeId="1" CreationDate="2010-09-09T17:13:43.270" Score="23" ViewCount="896" Body="&lt;p&gt;Let's say I appear for an interview. What questions could I expect and how do I prepare?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="25192" LastEditorDisplayName="" LastEditDate="2011-05-13T21:39:55.267" LastActivityDate="2011-05-13T21:43:55.403" Title="How to prepare yourself for programming interview questions?" Tags="&lt;interview-questions&gt;&lt;interview&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="21" />
  <row Id="1949" PostTypeId="2" ParentId="1717" CreationDate="2010-09-09T17:15:01.877" Score="0" ViewCount="" Body="&lt;p&gt;What gets me is using some generic word in a way that has nothing to do with the original meaning of the word.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;.NET assemblies -- as far as I can tell, this has nothing to do with assembly language&lt;/p&gt;&#xA;&#xA;&lt;p&gt;managed code -- sounds as if the cat-herding problem has been solved&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Visual Programming -- sounds like it's just like NI LabVIEW G and other visual programming languages&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SideWinder --  that's a kind of venomous snake, right?&lt;/p&gt;&#xA;" OwnerUserId="631" LastActivityDate="2010-09-09T17:15:01.877" CommentCount="5" />
  <row Id="1950" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T17:15:13.250" Score="1" ViewCount="" Body="&lt;p&gt;Having what amounted to C header files, in a Java project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interfaces exist for some good reasons, but this standard mandated an interface (&lt;code&gt;foo.java&lt;/code&gt;) for every single class (&lt;code&gt;fooImpl.java&lt;/code&gt;) whether it made any sense or not. Lots of stuff to keep in sync, complete disruption of Eclipse click-into-method, pointless busy-work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The build system enforced it, but I cannot imagine what the original purpose was. Fortunately we ditched it for new code when we switched to a new version-control and build system, but there's still a lot of it about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the same time we also ditched the stupid version-control-info-in-file-comments habit which had been mandatory.&lt;/p&gt;&#xA;" OwnerUserId="763" LastEditorUserId="6440" LastEditorDisplayName="" LastEditDate="2011-05-20T04:07:16.623" LastActivityDate="2011-05-20T04:07:16.623" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="6" />
  <row Id="1951" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T17:15:16.277" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://winmerge.org/&quot; rel=&quot;nofollow&quot;&gt;WinMerge&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="760" LastActivityDate="2010-09-09T17:15:16.277" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="1952" PostTypeId="1" CreationDate="2010-09-09T17:16:05.390" Score="9" ViewCount="563" Body="&lt;p&gt;I want to contribute to some open source project related to any of these topics:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Formal methods of verification/static code analysis/compiler-related&lt;/li&gt;&#xA;&lt;li&gt;Operating systems security&lt;/li&gt;&#xA;&lt;li&gt;Parallel and distributed computing&lt;/li&gt;&#xA;&lt;li&gt;NLP, AI&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I don't know much in any of these topics except by undergraduate degree. My objective is to pick up some project and while learning and reading a lot of research papers, also contribute to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please suggest some pointers preferably not just development but also research related.&#xA;The preferred platform would be C/C++.&lt;/p&gt;&#xA;" OwnerUserId="761" LastEditorUserId="3388" LastEditorDisplayName="" LastEditDate="2010-10-19T02:26:17.170" LastActivityDate="2011-04-04T11:04:28.593" Title="Contributing to open source projects" Tags="&lt;recommendations&gt;&lt;open-source&gt;&lt;contribution&gt;" AnswerCount="7" CommentCount="4" FavoriteCount="1" />
  <row Id="1954" PostTypeId="1" CreationDate="2010-09-09T17:17:44.387" Score="7" ViewCount="235" Body="&lt;p&gt;Relevant to &lt;a href=&quot;http://programmers.stackexchange.com/questions/966/what-non-programming-books-should-a-programmer-read-that-helps-developing-progra&quot;&gt;What non-programming books should a programmer read?&lt;/a&gt; &lt;em&gt;ugh... books...&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any blogs out there that answer this question?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T20:33:58.413" LastActivityDate="2011-01-28T06:13:25.397" CommunityOwnedDate="2011-01-28T09:09:12.040" ClosedDate="2011-01-28T09:09:20.277" Title="What are some non-programming blogs that could be useful for programmers?" Tags="&lt;blogs&gt;&lt;non-programmers&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="3" />
  <row Id="1955" PostTypeId="2" ParentId="1947" CreationDate="2010-09-09T17:18:00.920" Score="7" ViewCount="" Body="&lt;p&gt;Michael Pryor has a &lt;a href=&quot;http://www.techinterview.org/&quot; rel=&quot;nofollow&quot;&gt;site dedicated to technical interview questions&lt;/a&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good interview though will contain a lot of questions about the technology they are hiring for.  And you will probably also need to write code.  Unfortunately there is no shortcut for this, only experience will help you here.   &lt;a href=&quot;http://programmers.stackexchange.com/questions/756/programming-puzzles&quot;&gt;This link also details a list of Programming Puzzles&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the prior (or should I say pryor) you prepare by working through the questions and getting good at those types of questions.  For the later you should be preparing your whole career. &lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-09T17:27:42.257" LastActivityDate="2010-09-09T17:27:42.257" />
  <row Id="1956" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T17:18:25.100" Score="3" ViewCount="" Body="&lt;p&gt;Mandatory inclusion, expansion of $Log$ information when our SCC was antiquated version of PVCS. We had some files where the $Log$ information was much, much longer than the actual code in the file.&lt;/p&gt;&#xA;" OwnerUserId="762" LastActivityDate="2010-09-09T17:18:25.100" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="2" />
  <row Id="1957" PostTypeId="2" ParentId="1947" CreationDate="2010-09-09T17:19:54.067" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://halcyon.usc.edu/~kiran/msqs.html&quot; rel=&quot;nofollow&quot;&gt;http://halcyon.usc.edu/~kiran/msqs.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://steve.yegge.googlepages.com/five-essential-phone-screen-questions&quot; rel=&quot;nofollow&quot;&gt;http://steve.yegge.googlepages.com/five-essential-phone-screen-questions&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://sites.google.com/site/sumedhshende/computerscience&quot; rel=&quot;nofollow&quot;&gt;http://sites.google.com/site/sumedhshende/computerscience&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-09T17:19:54.067" CommentCount="2" />
  <row Id="1958" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T17:20:46.343" Score="1" ViewCount="" Body="&lt;p&gt;These are installed first on my machines, other stuff can wait...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Visual Studio&lt;/li&gt;&#xA;&lt;li&gt;ReSharper&lt;/li&gt;&#xA;&lt;li&gt;Vim (I store my vimrc file and other config 'In the cloud' so I can get it from anywhere)&lt;/li&gt;&#xA;&lt;li&gt;Beyond Compare&lt;/li&gt;&#xA;&lt;li&gt;Chrome &lt;/li&gt;&#xA;&lt;li&gt;Firefox + Firebug&lt;/li&gt;&#xA;&lt;li&gt;Winrar&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="719" LastEditorUserId="719" LastEditorDisplayName="" LastEditDate="2010-09-09T18:14:15.570" LastActivityDate="2010-09-09T18:14:15.570" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="1959" PostTypeId="2" ParentId="1717" CreationDate="2010-09-09T17:22:14.590" Score="0" ViewCount="" Body="&lt;p&gt;Because more generic product names might be more easily shared between people,&lt;br&gt;&#xA;it's also a lot quicker to see what the application is about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compare Microsoft Door Bell to Microsoft Ring. (Don't see this as Bing, which is a catchy name)&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-09T17:22:14.590" />
  <row Id="1960" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T17:22:19.680" Score="13" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.scootersoftware.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Beyond Compare&lt;/strong&gt;&lt;/a&gt; diff/merge tool.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-09T17:22:19.680" CommunityOwnedDate="2010-09-10T20:03:00.190" CommentCount="1" />
  <row Id="1961" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T17:22:59.890" Score="0" ViewCount="" Body="&lt;p&gt;Limited space for variable/object names is probably my largest irritation.  I've worked in a relatively modern, proprietary language that only allows 10 characters.  This is a hold over from it's original versions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Net result is you end up with funny naming conventions defining what each character of your allowed 10 is to represent.  Something like:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1-3 : application prefix&#xA;4-6 : module prefix&#xA;7-9 : user defined section&#xA;10 : a number just in case two...or 9 are named the same thing.&lt;/p&gt;&#xA;" OwnerUserId="774" LastActivityDate="2010-09-09T17:22:59.890" CommunityOwnedDate="2010-09-09T18:16:09.323" />
  <row Id="1962" PostTypeId="2" ParentId="1954" CreationDate="2010-09-09T17:24:02.717" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.johndcook.com/blog/&quot; rel=&quot;nofollow&quot;&gt;The Endeavour, The blog of John D. Cook&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's about business, computing, math, consulting, software, programming, and more. &#xA;No matter what the topic though it's always interesting and enlightening. &lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-09T17:24:02.717" CommunityOwnedDate="2011-01-28T09:09:12.040" />
  <row Id="1963" PostTypeId="1" CreationDate="2010-09-09T17:27:18.763" Score="7" ViewCount="168" Body="&lt;p&gt;While someone might have discovered [X] weeks ago, another one might discover [X] just now...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can one discover [X] earlier in time?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-21T09:03:44.783" LastActivityDate="2010-09-21T15:02:18.423" Title="How to become aware of new languages, techniques and methodologies?" Tags="&lt;technology&gt;&lt;future&gt;&lt;awareness&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="1964" PostTypeId="2" ParentId="1814" CreationDate="2010-09-09T17:27:41.507" Score="3" ViewCount="" Body="&lt;p&gt;When confronted with this situation I try and avoid the direct &quot;It is a thing not a person !&quot; approach for obvious reasons... &lt;em&gt;Sometimes I can't avoid it and leave the room screaming and crying like a little girl.&lt;/em&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the off chance I do manage remaining calm I try helping the user, using a soothing tone of voice, in understanding a few basic concepts...&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Computers are incredibly dumb.&lt;/li&gt;&#xA;&lt;li&gt;Your cat is vastly more&#xA;intelligent than any computer ever&#xA;built...dogs I'm not so sure about.&lt;/li&gt;&#xA;&lt;li&gt;Computers only understand two&#xA;things..on and off. &lt;em&gt;Most people&#xA;born after 1911 have heard this&#xA;about computers and are thankful&#xA;that, from your teachings, they now&#xA;know what it means.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;So if computers have intelligence it&#xA;is limited by only understanding yes/no, on/off, etc. So &lt;strong&gt;not&lt;/strong&gt; smart. &lt;/li&gt;&#xA;&lt;li&gt;Computers will do&#xA;exactly what you &lt;strong&gt;tell&lt;/strong&gt; them to do.&#xA;Nothing more. Nothing less. They&#xA;will not do what you &lt;strong&gt;want&lt;/strong&gt; them&#xA;to do. Only what you &lt;strong&gt;tell&lt;/strong&gt; them&#xA;to do.&lt;/li&gt;&#xA;&lt;li&gt;If you &lt;strong&gt;tell&lt;/strong&gt; your computer to&#xA;delete all of your photos it will.&#xA;Even if you don't &lt;strong&gt;want&lt;/strong&gt; it to.&lt;/li&gt;&#xA;&lt;li&gt;You cannot physically break your&#xA;computer unless you physically&#xA;attack it.&lt;/li&gt;&#xA;&lt;li&gt;Your computer will not physically&#xA;attack you. &lt;em&gt;It is an electrical device so use while bathing is not advised.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;If you don't understand why you are&#xA;clicking something then you have no&#xA;idea what you are &lt;strong&gt;telling&lt;/strong&gt; your&#xA;computer to do...and I think you know what that means.&lt;/li&gt;&#xA;&lt;li&gt;A computer is kinda like a&#xA; really big Swiss army knife and&#xA; like a Swiss army knife you don't&#xA; want more than a few blades out at&#xA; once. You might cut yourself.&lt;/li&gt;&#xA;&lt;li&gt;A&#xA; computer will &lt;strong&gt;never&lt;/strong&gt; do anything for&#xA; you. It will not do you work for&#xA; you. It will not figure out a&#xA; calculus problem for you if you&#xA; do not know anything about calculus. This is because computers are &lt;strong&gt;not&lt;/strong&gt; smart...remember ? &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Most importantly....&#xA;A computer is just a tool. And like any tool the best way to learn is to use. With a bit of practice and a bit of pain you'll soon learn... This is one very cool tool. One than can change from a paint brush to a book in the blink of an eye. Magic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find Humans very smart...they can take basic concepts to very high levels. Unfortunately, many people approach computers thinking the machines are much more complex than they really are. When they start to understand why computers are stupid simple their confidence tends to increase and before long they will leave you alone....maybe....I doubt it....don't call me here.&lt;/p&gt;&#xA;" OwnerUserId="497" LastEditorUserId="497" LastEditorDisplayName="" LastEditDate="2010-09-09T18:07:22.447" LastActivityDate="2010-09-09T18:07:22.447" CommentCount="2" />
  <row Id="1965" PostTypeId="2" ParentId="1947" CreationDate="2010-09-09T17:28:49.840" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/047012167X&quot; rel=&quot;nofollow&quot;&gt;Programming Interviews Exposed&lt;/a&gt; is also helpful.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;This classic book uncovers what&#xA;  interviews are really like at&#xA;  America's top software and computer&#xA;  companies and provides you with the&#xA;  tools to succeed in any situation. The&#xA;  authors take you step-by-step through&#xA;  new problems and complex brainteasers&#xA;  they were asked during recent&#xA;  technical interviews.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;50 interview scenarios are presented&#xA;  along with in-depth analysis of the&#xA;  possible solutions. The&#xA;  problem-solving process is clearly&#xA;  illustrated so you'll be able to&#xA;  easily apply what you've learned&#xA;  during crunch time. You'll also find&#xA;  expert tips on what questions to ask,&#xA;  how to approach a problem, and how to&#xA;  recover if you become stuck.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've used it in preparing for my last round of interviews and while I didn't end up needing it, reading through it certainly made me feel more confident and prepared. The book also has a section on non-programming questions such as salary negotiation, which I found very helpful.&lt;/p&gt;&#xA;" OwnerUserId="226" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2011-05-13T21:43:55.403" LastActivityDate="2011-05-13T21:43:55.403" />
  <row Id="1966" PostTypeId="2" ParentId="1963" CreationDate="2010-09-09T17:30:26.060" Score="6" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/135/as-a-software-engineer-who-should-i-be-following-on-twitter&quot;&gt;Follow various people on twitter&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/67/can-you-recommend-some-good-programming-blogs&quot;&gt;Subscribe to many blogs and RSS feeds&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Keep track of new questions on &lt;a href=&quot;http://programmers.stackexchange.com/questions?sort=newest&quot;&gt;this site&lt;/a&gt; and on &lt;a href=&quot;http://stackoverflow.com/questions?sort=newest&quot;&gt;stackoverflow&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Keep an eye on your favorite book publisher's upcoming list.&lt;br&gt;&#xA;Example: &lt;a href=&quot;http://oreilly.com/store/upcoming.csp&quot; rel=&quot;nofollow&quot;&gt;Oreilly's upcoming titles list&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Try not to limit yourself to only one community, otherwise you will only know [X] if it is a bias of the community.&lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-09T17:36:10.087" LastActivityDate="2010-09-09T17:36:10.087" CommentCount="1" />
  <row Id="1967" PostTypeId="2" ParentId="826" CreationDate="2010-09-09T17:30:35.537" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Homebrew - Like Fink or MacPorts but based on GitHub and installs in /usr/local instead of /opt or /sw&lt;/li&gt;&#xA;&lt;li&gt;BBEdit - TextWrangler's bigger brother. Great all-around editor&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.rubyflow.com/items/4471&quot; rel=&quot;nofollow&quot;&gt;Mac OS Dictionary files for: Ruby, Rails, jQuery&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="769" LastActivityDate="2010-09-09T17:30:35.537" />
  <row Id="1968" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T17:31:00.490" Score="5" ViewCount="" Body="&lt;p&gt;In my life as C++ coder, two really nasty &quot;rules&quot; were enforced:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&quot;We can not use the STL, because VC++ 4.1 does not support it (and we can't switch to VC++ 6.0 at this time).&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;Do &lt;em&gt;not&lt;/em&gt; use QuickSort, because it can be O(n^2) in bad cases; use this implementation of the HeapSort algorithm I (name of project leader deleted) wrote as a student.&quot;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastActivityDate="2010-09-09T17:31:00.490" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="2" />
  <row Id="1969" PostTypeId="1" CreationDate="2010-09-09T17:31:42.953" Score="1" ViewCount="84" Body="&lt;p&gt;I'm posting this here since programmers write viruses, and AV software.  They also have the best knowledge of heuristics and how AV systems work (cloaking etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The EICAR test file was used to functionally test an antivirus system.  As it stands today almost every AV system will flag EICAR as being a &quot;test&quot; virus.  For more information on this historic test virus please click &lt;a href=&quot;http://www.eicar.org/anti_virus_test_file.htm&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently the &lt;a href=&quot;http://www.eicar.org/anti_virus_test_file.htm&quot; rel=&quot;nofollow&quot;&gt;EICAR&lt;/a&gt; test file is only good for testing the &lt;strong&gt;presence&lt;/strong&gt; of an AV solution, but it doesn't check for engine file or DAT file &lt;strong&gt;up-to-dateness&lt;/strong&gt;. In other words, why do a functional test of a system that could have definition files that are more than 10 years old.  With the increase of zero day threats it doesn't make much sense to functionally test your system using EICAR.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, I think EICAR needs to be updated/modified to be effective test that works in conjunction with an AV management solution.&#xA;This question is about &lt;strong&gt;real world testing&lt;/strong&gt;, without using live viruses... which is the intent of the original EICAR.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said I'm proposing a new EICAR file format with the appendage of an XML blob that will conditionally cause the Antivirus engine to respond.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-EXTENDED-ANTIVIRUS-TEST-FILE!$H+H*&#xA;&amp;lt;?xml version=&quot;1.0&quot;?&amp;gt;&#xA;&amp;lt;engine-valid-from&amp;gt;2010-1-1Z&amp;lt;/engine-valid-from&amp;gt;&#xA;&amp;lt;signature-valid-from&amp;gt;2010-1-1Z&amp;lt;/signature-valid-from&amp;gt;&#xA;&amp;lt;authkey&amp;gt;MyTestKeyHere&amp;lt;/authkey&amp;gt; &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In this sample, the antivirus engine would only alert on the EICAR file if both the signature  or engine file is equal to or newer than the valid-from date. Also there is a passcode that will protect the usage of EICAR to the system administrator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a backgound in &quot;Test Driven Design&quot; TDD for software you may get that all I'm doing is applying the principals of TDD to my infrastructure.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Based on your experience and contacts how can I make this idea happen?&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2011-02-17T12:02:22.213" Title="Should EICAR be updated to test the revision of Antivirus system?" Tags="&lt;antivirus&gt;&lt;virus&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="1970" PostTypeId="2" ParentId="1954" CreationDate="2010-09-09T17:31:49.117" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.schneier.com/&quot; rel=&quot;nofollow&quot;&gt;Schneier on Security&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="616" LastActivityDate="2010-09-09T17:31:49.117" CommunityOwnedDate="2011-01-28T09:09:12.040" />
  <row Id="1971" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T17:33:03.683" Score="4" ViewCount="" Body="&lt;p&gt;The &lt;strong&gt;worst&lt;/strong&gt; was a project (C++) where classes were prefixed with module abbreviations. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, if something was in the MessagePassing module, and part of the Response mechanism, it might be called &lt;code&gt;MESPAS_RESSomeobject&lt;/code&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Working on that code made me want to gouge out my eyes.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Not the worst, but my current job requires a &lt;code&gt;c_&lt;/code&gt; prefixes on classes and &lt;code&gt;e_&lt;/code&gt; prefixes for enums.  Nothing for structs.  but &lt;code&gt;_t&lt;/code&gt; postfix on typedefs.  It's pretty ugly too. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and function header comments in BOTH .h and .cpp (declaration and definition) which of course almost never match.&lt;/p&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-09T17:33:03.683" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="7" />
  <row Id="1972" PostTypeId="1" CreationDate="2010-09-09T17:33:31.433" Score="2" ViewCount="287" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/487/how-would-you-design-a-programming-language&quot;&gt;How would you design a programming language?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Think of any modern programming language!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think should be changed, what features are missing?&#xA;Are there feature, which are too complicated or simply unuseful?&lt;/p&gt;&#xA;" OwnerUserId="781" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-21T14:11:32.387" LastActivityDate="2010-11-25T01:44:03.153" ClosedDate="2010-10-20T19:28:51.877" Title="How would be a better programming language?" Tags="&lt;programming-languages&gt;&lt;features&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="3" />
  <row Id="1973" PostTypeId="2" ParentId="1890" CreationDate="2010-09-09T17:34:39.060" Score="0" ViewCount="" Body="&lt;p&gt;I use 4 (&lt;code&gt;private int _myInteger;&lt;/code&gt;) because:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;private int myInteger;&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is how I name my local variables.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;private int MyInteger;&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is how I name constants.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;private int mMyInteger;&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not C# style.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;private int _MyInteger;&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This looks strange.&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-09-09T17:34:39.060" />
  <row Id="1974" PostTypeId="2" ParentId="1259" CreationDate="2010-09-09T17:35:16.760" Score="2" ViewCount="" Body="&lt;p&gt;Here's another one - different font (face/colour/background/etc) based on the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&#xA;instead of putting silly underscores at the front of a private variable, get the IDE to give it a different tint to public variable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, if you have multiple nested parentheses, make the outer ones incrementally a bit larger, or bolder, or whatever the user wants, so there's no guesswork or clicking to identify pairs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if code inside parentheses wraps across X lines, let me have both parens X lines high (similar to maths equations) so again it's instantly clear what is being wrapped.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-09-09T17:35:16.760" />
  <row Id="1975" PostTypeId="1" CreationDate="2010-09-09T17:35:25.887" Score="3" ViewCount="191" Body="&lt;p&gt;Code snippets, editors support those...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in order for a code snippet to be useful, it must be a good one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What code snippets do you use the most, are useful and thus are your favorite?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sub&gt;Language doesn't mather... Even English is fine if you use code snippets for documenting purposes. ;-)&lt;/sub&gt;&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:58:21.663" LastActivityDate="2010-09-12T13:58:21.663" ClosedDate="2011-01-17T17:19:11.480" Title="What is your favorite code snippet?" Tags="&lt;favorite&gt;&lt;code-reuse&gt;&lt;snippets&gt;" AnswerCount="7" />
  <row Id="1976" PostTypeId="2" ParentId="826" CreationDate="2010-09-09T17:35:44.500" Score="0" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.clipmenu.com/&quot; rel=&quot;nofollow&quot;&gt;Clip Menu&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;store history of cut/paste.&lt;/p&gt;&#xA;" OwnerUserId="791" LastActivityDate="2010-09-09T17:35:44.500" />
  <row Id="1977" PostTypeId="2" ParentId="1259" CreationDate="2010-09-09T17:35:59.790" Score="2" ViewCount="" Body="&lt;p&gt;The problem with traditional IDEs today is that it is neigh impossible to add new languages with the same feature set. For example, while working on F# at Microsoft we constantly had to battle a project system that was built for 'any language so long as it was C#'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion the future of IDEs will be to make it easier to incorporate new languages into the IDE. This is one reason why so many developers just write code in Emacs -- you can write Ruby/Clojure code today without having to wait for the language to get 'mainstream' enough for a company to add them to their tool chain.&lt;/p&gt;&#xA;" OwnerUserId="786" LastActivityDate="2010-09-09T17:35:59.790" />
  <row Id="1978" PostTypeId="2" ParentId="826" CreationDate="2010-09-09T17:37:18.700" Score="0" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.hogbaysoftware.com/products/quickcursor&quot; rel=&quot;nofollow&quot;&gt;Quick Cursor&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Edit any textfield in the text editor of your choice.  Perfect for authoring long wiki pages.  Doesn't work with Mail.app though&lt;/p&gt;&#xA;" OwnerUserId="791" LastActivityDate="2010-09-09T17:37:18.700" />
  <row Id="1979" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T17:38:04.500" Score="5" ViewCount="" Body="&lt;p&gt;Being required to indent all code by four spaces ;)&lt;/p&gt;&#xA;" OwnerUserId="798" LastActivityDate="2010-09-09T17:38:04.500" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="8" />
  <row Id="1980" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T17:38:46.323" Score="15" ViewCount="" Body="&lt;p&gt;Some of the places I've worked with insisted on commenting out unused or deprecated code instead of deleting it.  Instead of trusting the VCS for history, etc. it was painfully maintained in the files through commented out code.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The big problem I found with this is that you often had no idea why the code was commented out.  Was it because some dev was actively making changes and wanted to keep it around for reference or was it no longer needed?  &lt;/p&gt;&#xA;" OwnerUserId="783" LastActivityDate="2010-09-09T17:38:46.323" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="3" />
  <row Id="1981" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T17:39:05.363" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;a thorough understanding of foundation concepts e.g. datatypes, interfaces&lt;/li&gt;&#xA;&lt;li&gt;a medium to high level understanding of the tool they are using e.g. specific .net/java knowledge&lt;/li&gt;&#xA;&lt;li&gt;a reasonable idea of 'the other technologies your stuff interfaces with' e.g. how databases work&lt;/li&gt;&#xA;&lt;li&gt;roughly where their technology base is headed e.g. what is cloud computing and what impact it will have on their current skillset&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="160" LastActivityDate="2010-09-09T17:39:05.363" CommunityOwnedDate="2010-09-15T18:31:41.813" />
  <row Id="1982" PostTypeId="2" ParentId="1975" CreationDate="2010-09-09T17:42:38.560" Score="0" ViewCount="" Body="&lt;p&gt;&lt;code&gt;propg&lt;/code&gt; is my favorite snippet for C# in Visual Studio.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public int Name { get; private set; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-09T17:42:38.560" />
  <row Id="1983" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T17:42:50.590" Score="9" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://code.google.com/p/msysgit/&quot; rel=&quot;nofollow&quot;&gt;Git for Windows&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Git is a powerful distributed Source Code Management tool.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://notepad-plus-plus.org/&quot; rel=&quot;nofollow&quot;&gt;Notepad++&lt;/a&gt;, for when I want to quickly open small files to edit instead of using a heavy IDE.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Notepad++ is a free (as in &quot;free speech&quot; and also as in &quot;free beer&quot;) source code editor and Notepad replacement that supports several languages. Running in the MS Windows environment, its use is governed by GPL License.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.sourcegear.com/diffmerge/&quot; rel=&quot;nofollow&quot;&gt;DiffMerge&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;DiffMerge is an application to visually compare and merge files for Windows, Mac OS X and Linux.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-09T17:42:50.590" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="1984" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T17:43:01.673" Score="16" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/technet/sysinternals/default.mspx&quot; rel=&quot;nofollow&quot;&gt;Sys Internals&lt;/a&gt; is very useful on several programming scenarios on development and production environment.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T17:43:01.673" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="1985" PostTypeId="1" CreationDate="2010-09-09T17:43:09.027" Score="15" ViewCount="603" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/4/getting-non-programmers-to-understand-the-development-process&quot;&gt;Getting non-programmers to understand the development process&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I tend to think that I might get such a question in the future...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How should I answer to it in layman terms?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:57:45.360" LastActivityDate="2010-12-28T11:41:59.110" ClosedDate="2010-12-28T23:28:09.490" Title="How to explain programming to a non-programmer?" Tags="&lt;future&gt;&lt;non-programmers&gt;" AnswerCount="13" CommentCount="7" FavoriteCount="1" />
  <row Id="1986" PostTypeId="2" ParentId="1985" CreationDate="2010-09-09T17:45:13.377" Score="3" ViewCount="" Body="&lt;p&gt;I write &lt;strong&gt;instructions&lt;/strong&gt; for: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;humans to read&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;and&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;computers to follow&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-09T17:45:13.377" />
  <row Id="1987" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T17:45:18.927" Score="9" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://bluemars.org/clipx/&quot; rel=&quot;nofollow&quot;&gt;Clipx&lt;/a&gt;, I can't live without it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Others clipboard managers are good too.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-10T13:06:55.393" LastActivityDate="2010-09-10T13:06:55.393" CommunityOwnedDate="2010-09-10T20:03:00.190" CommentCount="1" />
  <row Id="1988" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T17:45:35.527" Score="1" ViewCount="" Body="&lt;p&gt;I currently work in a company where SQL queries are done through something called &quot;Request Class&quot;. How ridiculous:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In &quot;include/request.class.php&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class RequestClass&#xA;{&#xA;    // ... some code.&#xA;&#xA;    public function getUser($where)&#xA;    {&#xA;        global $initrequest&#xA;&#xA;        $sql = $initrequest['users']&#xA;        $sql.= $where;&#xA;&#xA;        return execute($sql);&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In initrequest.php:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$initrequest['users'] = 'SELECT * FROM users WHERE ';&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And it was called from the application in this way:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$request = new request();&#xA;$tmpquery = &quot;username = $username AND password = $password&quot;;&#xA;$request-&amp;gt;getUsers($tmpquery);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And they have a similar template system based in &quot;blocks&quot;, but after understanding what I show here, I kept pressing to trash our whole software and rewrite it in Symfony.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-09T17:45:35.527" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="1" />
  <row Id="1989" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T17:45:49.173" Score="13" ViewCount="" Body="&lt;p&gt;That the prototypical programmer:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;comes in to work after 11am  &lt;/li&gt;&#xA;&lt;li&gt;drinks nothing but Mountain Dew  &lt;/li&gt;&#xA;&lt;li&gt;loves indian food or sushi  &lt;/li&gt;&#xA;&lt;li&gt;lives alone by choice (with parents and/or in basement)  &lt;/li&gt;&#xA;&lt;li&gt;stays up until 3am playing video games  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="790" LastActivityDate="2010-09-09T17:45:49.173" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="19" />
  <row Id="1990" PostTypeId="2" ParentId="1954" CreationDate="2010-09-09T17:45:59.473" Score="1" ViewCount="" Body="&lt;p&gt;Statements of the Bleedin Obvious (SOTBOs), nicely phrased: &lt;a href=&quot;http://sethgodin.typepad.com/&quot; rel=&quot;nofollow&quot;&gt;http://sethgodin.typepad.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Statements about the universe we inhabit, nicely phrased: &lt;a href=&quot;http://zenhabits.net/&quot; rel=&quot;nofollow&quot;&gt;http://zenhabits.net/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In emergency break glass: &lt;a href=&quot;http://27bslash6.com/&quot; rel=&quot;nofollow&quot;&gt;http://27bslash6.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="160" LastActivityDate="2010-09-09T17:45:59.473" CommunityOwnedDate="2011-01-28T09:09:12.040" />
  <row Id="1991" PostTypeId="2" ParentId="1972" CreationDate="2010-09-09T17:46:01.067" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;What should be changed ?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The programming language should do what we want, not what we tell them.&lt;/p&gt;&#xA;" OwnerUserId="41" LastActivityDate="2010-09-09T17:46:01.067" />
  <row Id="1992" PostTypeId="2" ParentId="1954" CreationDate="2010-09-09T17:46:04.890" Score="1" ViewCount="" Body="&lt;p&gt;Derek Sivers&#xA;&lt;a href=&quot;http://sivers.org/blog/&quot; rel=&quot;nofollow&quot;&gt;http://sivers.org/blog/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TechCrunch&#xA;&lt;a href=&quot;http://www.techcrunch.com&quot; rel=&quot;nofollow&quot;&gt;http://www.techcrunch.com&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mashable&#xA;&lt;a href=&quot;http://www.mashable.com&quot; rel=&quot;nofollow&quot;&gt;http://www.mashable.com&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;37 Signals (Signal vs. Noise)&#xA;&lt;a href=&quot;http://37signals.com/svn/&quot; rel=&quot;nofollow&quot;&gt;http://37signals.com/svn/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="809" LastActivityDate="2010-09-09T17:46:04.890" CommunityOwnedDate="2011-01-28T09:09:12.040" />
  <row Id="1993" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T17:46:10.753" Score="30" ViewCount="" Body="&lt;p&gt;This probably sounds trivial compared to the other answers provided so far, but I think the insignificance contributes to its annoyance.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Local variable names are all lowercase with no underscores&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Real examples: &lt;code&gt;paymentmethodtotalshtml&lt;/code&gt;, &lt;code&gt;contracttypechangecontexts&lt;/code&gt;, &lt;code&gt;customsegmentspectexts&lt;/code&gt;, &lt;code&gt;potentialmsceventref&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The New York Times &lt;a href=&quot;http://www.nytimes.com/2009/11/29/magazine/29FOB-onlanguage-t.html&quot; rel=&quot;nofollow&quot;&gt;weighs in&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&lt;i&gt;“Word spaces should not be taken for granted. Ancient Greek, the first alphabet to feature vowels, could be deciphered without word spaces if you sounded it out, and did without them. […] Latin, too, ceased to separate words by the second century. The loss is puzzling, because the eye has to work much harder to read unseparated text. But as the paleographer Paul Saenger has explained, the ancient world did not desire ‘to make reading easier and swifter.’”&lt;/i&gt;&lt;/blockquote&gt;&#xA;" OwnerUserId="350" LastEditorUserId="350" LastEditorDisplayName="" LastEditDate="2010-10-14T13:53:59.593" LastActivityDate="2010-10-14T13:53:59.593" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="7" />
  <row Id="1994" PostTypeId="2" ParentId="826" CreationDate="2010-09-09T17:47:00.833" Score="0" ViewCount="" Body="&lt;p&gt;MacVim, Needs some getting used to but once you get to know it you won't go back to notepad-like editors you'll keep reaching for the 'esc' key. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are quite a few plug ins that you can add to macvim, that will ease you into it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take a special look at PeepOpen(which also works for emacs and textmate), it provides fussy search as it should be implemented everywhere.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-09T17:47:00.833" />
  <row Id="1995" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T17:47:14.703" Score="12" ViewCount="" Body="&lt;p&gt;Unit Testing. This is a great way to codify your assumptions on how the code is to be used.&lt;/p&gt;&#xA;" OwnerUserId="789" LastActivityDate="2010-09-09T17:47:14.703" CommunityOwnedDate="2010-09-15T18:31:41.813" />
  <row Id="1996" PostTypeId="2" ParentId="826" CreationDate="2010-09-09T17:47:59.237" Score="1" ViewCount="" Body="&lt;p&gt;Here's my Mac dev stack, in no particular order:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;TextMate — for RoR, general text file editing, HTML tidy etc.&lt;/li&gt;&#xA;&lt;li&gt;Xcode — Objective-C stuff, iOS&lt;/li&gt;&#xA;&lt;li&gt;F-Script Anywhere — for Mac OS X dev&lt;/li&gt;&#xA;&lt;li&gt;Eclipse — Andriod&lt;/li&gt;&#xA;&lt;li&gt;NetBeans — Java, Python&lt;/li&gt;&#xA;&lt;li&gt;DBVisualizer — Database access and SQL query writing&lt;/li&gt;&#xA;&lt;li&gt;Code Collector Pro — Code snippets&lt;/li&gt;&#xA;&lt;li&gt;xScope — pixel measuring, useful for web development&lt;/li&gt;&#xA;&lt;li&gt;ColorSchemer Studio 2 — color tool&lt;/li&gt;&#xA;&lt;li&gt;OmniGraffle Professional — Visio replacement for high level design documents&lt;/li&gt;&#xA;&lt;li&gt;MindNode Pro — Mind mapper, great for business ideas&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;EDIT: Forgot to mention... - VMWare Fusion — for Windows development&lt;/p&gt;&#xA;" OwnerUserId="817" LastActivityDate="2010-09-09T17:47:59.237" CommentCount="1" />
  <row Id="1997" PostTypeId="1" CreationDate="2010-09-09T17:48:04.140" Score="3" ViewCount="418" Body="&lt;p&gt;People make mistakes, even in the real life... Which should we, geeky programmers, avoid?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:00:17.457" LastActivityDate="2010-09-18T23:30:37.623" Title="What are non-programming mistakes that a programmer should avoid?" Tags="&lt;self-improvement&gt;&lt;advice&gt;" AnswerCount="12" CommentCount="5" FavoriteCount="2" />
  <row Id="1998" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T17:49:59.253" Score="1" ViewCount="" Body="&lt;p&gt;My favorite would have to be the database naming guidelines we currently are trying to abide by. All tables used for many-many relationships should be named using the names of the linked tables and must be suffixed with &quot;Link&quot;. And of course, no pluralization of table names.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;OrderLines? Nope. It should be called OrderProductLink&lt;/li&gt;&#xA;&lt;li&gt;Friends? Nope. It should be PersonPersonLink&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="794" LastActivityDate="2010-09-09T17:49:59.253" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="1" />
  <row Id="1999" PostTypeId="1" CreationDate="2010-09-09T17:50:04.370" Score="4" ViewCount="256" Body="&lt;p&gt;How do you deal with managers who are, how can I put this, making you less efficient than you could be?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your tips for deflecting them, keeping them otherwise occupied, bypassing them entirely, getting your idea out there instead of theirs, etc&lt;/p&gt;&#xA;" OwnerUserId="160" LastActivityDate="2010-09-15T21:57:18.007" Title="Worst management traits and how to block them?" Tags="&lt;jobs&gt;&lt;productivity&gt;&lt;management&gt;&lt;work&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="2" />
  <row Id="2000" PostTypeId="2" ParentId="1975" CreationDate="2010-09-09T17:51:12.230" Score="0" ViewCount="" Body="&lt;p&gt;Simple client side templating engine:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var obj = { foo: &quot;wee hee&quot;, bar: &quot;hi ho&quot; };&#xA;var template = '&amp;lt;h2 class=&quot;{{foo}}&quot;&amp;gt;{{bar}}&amp;lt;/h2&amp;gt;';&#xA;&#xA;var result = template.replace(/{{(.*?)}}/g, function(all, _) { return obj[_]; });&#xA;// result: &amp;lt;h2 class=&quot;wee hee&quot;&amp;gt;hi ho&amp;lt;/h2&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="803" LastActivityDate="2010-09-09T17:51:12.230" />
  <row Id="2001" PostTypeId="1" AcceptedAnswerId="2007" CreationDate="2010-09-09T17:51:42.217" Score="6" ViewCount="572" Body="&lt;p&gt;Not every day is shiny, what should one do after a bad work day to relax?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T11:26:02.627" LastActivityDate="2010-10-08T05:28:26.473" Title="What should I do after a work day of programming to relax?" Tags="&lt;work&gt;&lt;free-time&gt;" AnswerCount="18" FavoriteCount="2" />
  <row Id="2002" PostTypeId="2" ParentId="1997" CreationDate="2010-09-09T17:51:50.773" Score="14" ViewCount="" Body="&lt;p&gt;Learn how to listen to people (or users of your product).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Too many programmers are fast to jump to &quot;this user is an idiot&quot; instead of listening to what the person or user has to say.  There's something to learn from everyone in this world. &lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-09T17:51:50.773" CommentCount="4" />
  <row Id="2003" PostTypeId="2" ParentId="1997" CreationDate="2010-09-09T17:52:01.420" Score="6" ViewCount="" Body="&lt;p&gt;Never eat anything larger than your own head&lt;/p&gt;&#xA;" OwnerUserId="718" LastActivityDate="2010-09-09T17:52:01.420" CommentCount="4" />
  <row Id="2004" PostTypeId="2" ParentId="2001" CreationDate="2010-09-09T17:52:37.087" Score="8" ViewCount="" Body="&lt;p&gt;Some additional programming, but on your own project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you can't focus on more programming, some aerobic fitness (the best being swimming, especially for your poor programmer vertebral column).&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-09T18:03:59.713" LastActivityDate="2010-09-09T18:03:59.713" />
  <row Id="2005" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T17:52:41.623" Score="2" ViewCount="" Body="&lt;p&gt;Anything by Red-Gate, especially SQL Prompt and SQL Refactor for database development (Microsoft SQL Server)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.red-gate.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.red-gate.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="160" LastActivityDate="2010-09-09T17:52:41.623" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="2006" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T17:53:45.743" Score="9" ViewCount="" Body="&lt;p&gt;VMWare - &#xA;A great tool for testing on clean systems. It is also great for testing on other platforms.&lt;/p&gt;&#xA;" OwnerUserId="29" LastActivityDate="2010-09-09T17:53:45.743" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="2007" PostTypeId="2" ParentId="2001" CreationDate="2010-09-09T17:53:48.177" Score="23" ViewCount="" Body="&lt;p&gt;Sport. Or at least some physical effort because sitting in front of the PC all day is not good.&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-09-09T17:53:48.177" CommentCount="2" />
  <row Id="2008" PostTypeId="1" CreationDate="2010-09-09T17:54:09.580" Score="0" ViewCount="166" Body="&lt;p&gt;Besides walking to them or using some normal chat program...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which special ways of communicating do you use to communicate with your co-workers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/RpxCF.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-21T09:08:27.427" LastActivityDate="2010-09-21T12:38:37.097" Title="Do you communicate with your co-workers in a special way?" Tags="&lt;fun&gt;&lt;co-workers&gt;&lt;communication&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="2009" PostTypeId="2" ParentId="2001" CreationDate="2010-09-09T17:54:16.897" Score="11" ViewCount="" Body="&lt;p&gt;Spend time with your family or friends, take your mind off of work for a little while.&lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-09T17:59:44.357" LastActivityDate="2010-09-09T17:59:44.357" CommentCount="6" />
  <row Id="2010" PostTypeId="2" ParentId="1997" CreationDate="2010-09-09T17:54:33.260" Score="5" ViewCount="" Body="&lt;p&gt;Geeky programmers and developers should avoid saying what they really think about project managers, QA testers, DBAs, and other non-programmers to their face.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In essence, &lt;em&gt;be nice&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-09T17:54:33.260" CommentCount="2" />
  <row Id="2011" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T17:54:34.947" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/msysgit/&quot; rel=&quot;nofollow&quot;&gt;Git for Windows&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Visual Studio 2010 &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.jetbrains.com/resharper/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;ReSharper&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://notepad-plus-plus.org/&quot; rel=&quot;nofollow&quot;&gt;Notepad++&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://nhprof.com/&quot; rel=&quot;nofollow&quot;&gt;NHProf&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="819" LastActivityDate="2010-09-09T17:54:34.947" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="2012" PostTypeId="2" ParentId="1997" CreationDate="2010-09-09T17:55:16.177" Score="0" ViewCount="" Body="&lt;p&gt;Learn to estimate.&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-09-09T17:55:16.177" CommentCount="2" />
  <row Id="2013" PostTypeId="2" ParentId="1972" CreationDate="2010-09-09T17:55:22.837" Score="6" ViewCount="" Body="&lt;p&gt;I would really like more languages to support &lt;a href=&quot;http://en.wikipedia.org/wiki/Monad_%28functional_programming%29&quot; rel=&quot;nofollow&quot;&gt;Monads&lt;/a&gt;. Something like this &lt;em&gt;(F#)&lt;/em&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;async {&#xA;    let! asyncValue = getSomethingAsync&#xA;    if asyncValue = something then&#xA;        do! alertSomeone asyncValue&#xA;        do! alertSomeoneElse asyncValue&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;VS&lt;/strong&gt; &lt;em&gt;(C#)&lt;/em&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;GetSomethingAsync(&#xA;    asyncValue =&amp;gt;&#xA;    {&#xA;        if (asyncValue == something)&#xA;        {&#xA;            AlertSomeone(&#xA;                asyncValue,&#xA;                asyncValue2 =&amp;gt;&#xA;                {&#xA;                    AlertSomeoneElse(asyncValue2);  &#xA;                }&#xA;            );  &#xA;        }&#xA;    }&#xA;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Writing asynchronous code is becoming more and more important so Monads are a must have for the sake of clarity.&lt;/p&gt;&#xA;" OwnerUserId="712" LastEditorUserId="712" LastEditorDisplayName="" LastEditDate="2010-09-09T18:02:57.890" LastActivityDate="2010-09-09T18:02:57.890" />
  <row Id="2014" PostTypeId="2" ParentId="2001" CreationDate="2010-09-09T17:56:44.393" Score="6" ViewCount="" Body="&lt;p&gt;Exercise, of any kind, will help you keep your stress level low.   Aim for 2 1/2 hours per week.  I usually break it up into 30 minutes/5 days a week.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll feel better, have more energy, and look better too.   It really isn't that much time when you think about it.&lt;/p&gt;&#xA;" OwnerUserId="809" LastActivityDate="2010-09-09T17:56:44.393" CommentCount="1" />
  <row Id="2015" PostTypeId="2" ParentId="2008" CreationDate="2010-09-09T17:56:50.620" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Rather than talking or chatting on an IM some tasks are better left to a well thought out email.  Yes, there are some cases where an email is not the right medium, such as when you need instant feedback.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Although I don't use it myself, I imagine &lt;a href=&quot;https://wave.google.com/wave/&quot; rel=&quot;nofollow&quot;&gt;Google Wave&lt;/a&gt; is another good medium if you can get your whole team interested. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Using your bug tracking or project tracking software is also a logical place to discuss threads in the context of the thread your topic pertains to.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-09T17:56:50.620" />
  <row Id="2016" PostTypeId="2" ParentId="1890" CreationDate="2010-09-09T17:57:41.287" Score="1" ViewCount="" Body="&lt;p&gt;&lt;code&gt;private int integer&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you get confused between member and local variables in a method scope then you probably need to refactor.&lt;/p&gt;&#xA;" OwnerUserId="718" LastActivityDate="2010-09-09T17:57:41.287" />
  <row Id="2017" PostTypeId="2" ParentId="2001" CreationDate="2010-09-09T17:57:44.440" Score="8" ViewCount="" Body="&lt;p&gt;Have a drink or two with a friend or do something that you enjoy doing usually.&lt;/p&gt;&#xA;" OwnerUserId="824" LastActivityDate="2010-09-09T17:57:44.440" CommentCount="5" />
  <row Id="2018" PostTypeId="2" ParentId="1997" CreationDate="2010-09-09T17:58:12.847" Score="1" ViewCount="" Body="&lt;p&gt;Treating everyone else you meet like a programmer.   You have to understand that not everyone around you cares about computers as much as you do.  It's a hard pill to swallow, but unfortunately, a very real one.&lt;/p&gt;&#xA;" OwnerUserId="809" LastActivityDate="2010-09-09T17:58:12.847" />
  <row Id="2019" PostTypeId="2" ParentId="1319" CreationDate="2010-09-09T17:58:49.257" Score="7" ViewCount="" Body="&lt;p&gt;Describe fully the complete build and release cycle including who is involved and how long it takes to get things moved from dev to test to ... to prod.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is surprising how many 'top' companies don't have this nailed, and how much pain a badly implemented process ultimately causes.&lt;/p&gt;&#xA;" OwnerUserId="160" LastActivityDate="2010-09-09T17:58:49.257" />
  <row Id="2020" PostTypeId="2" ParentId="1975" CreationDate="2010-09-09T17:59:06.090" Score="5" ViewCount="" Body="&lt;p&gt;My favorite code snippet is a hack that allows you to do strong typing on the parameters in PHP. The original source can be found in &lt;a href=&quot;http://php.net/manual/fr/language.oop5.typehinting.php&quot; rel=&quot;nofollow&quot;&gt;the comments of that php.net page&lt;/a&gt;. Here's an adaptation I did for faster performances :&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?php&#xA;function handlePrimitiveType($level, $message) {&#xA;    if($level == E_RECOVERABLE_ERROR) {&#xA;        if (($pos = strpos($message, 'must be an instance of')) !== false) {&#xA;            $posStart = $pos + 23;&#xA;            $posEnd = strpos($message, ',', $posStart);&#xA;            $expected = substr($message ,$posStart, $posEnd - ($posStart));&#xA;&#xA;            $posStart = $posEnd + 2;&#xA;            $givin = substr($message, $posStart, strpos($message, ' given', $posStart) - $posStart);&#xA;&#xA;            if ($expected == $givin) {&#xA;                return true;&#xA;            }&#xA;&#xA;            throw new Exception($message);&#xA;        }&#xA;    }&#xA;&#xA;    return false;&#xA;}&#xA;&#xA;set_error_handler('handlePrimitiveType');&#xA;?&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;After that, you can type your parameters. Example :&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?php&#xA;function n(integer $k) {&#xA;    return ($k==1) ? 1 : $k * n($k - 1);&#xA;}&#xA;&#xA;echo n(6); // OK&#xA;echo n(&quot;string&quot;); // Error&#xA;?&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="41" LastActivityDate="2010-09-09T17:59:06.090" CommentCount="1" />
  <row Id="2021" PostTypeId="2" ParentId="1785" CreationDate="2010-09-09T17:59:34.747" Score="10" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735619670&quot; rel=&quot;nofollow&quot;&gt;Code Complete 2&lt;/a&gt; - cover to cover&lt;/p&gt;&#xA;" OwnerUserId="809" LastActivityDate="2010-09-09T17:59:34.747" CommunityOwnedDate="2010-09-15T18:31:41.813" CommentCount="1" />
  <row Id="2022" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T17:59:45.863" Score="27" ViewCount="" Body="&lt;p&gt;I wanna refactor the world.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T17:59:45.863" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="7" />
  <row Id="2023" PostTypeId="1" AcceptedAnswerId="2052" CreationDate="2010-09-09T17:59:53.857" Score="8" ViewCount="527" Body="&lt;p&gt;I use TortoiseMerge, but a friend introduced me to Beyond Compare, which is far better. But which is the best source code merge tool available? I would like something powerful like BC (best if free as beer).&lt;/p&gt;&#xA;" OwnerUserId="235" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T16:05:58.453" LastActivityDate="2010-10-03T05:05:30.683" Title="Best merge tool" Tags="&lt;tools&gt;&lt;text-editor&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="2" />
  <row Id="2024" PostTypeId="2" ParentId="1997" CreationDate="2010-09-09T18:00:12.383" Score="16" ViewCount="" Body="&lt;p&gt;Learn that what constitutes &quot;An acceptable degree of precision&quot; to you is &quot;Annoying goddamn nitpicking&quot; to most of the world.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-09T18:00:12.383" CommentCount="2" />
  <row Id="2025" PostTypeId="2" ParentId="1921" CreationDate="2010-09-09T18:01:01.877" Score="11" ViewCount="" Body="&lt;p&gt;Run away, fast. That position sounds like a time machine to 1982.&lt;/p&gt;&#xA;" OwnerUserId="718" LastActivityDate="2010-09-09T18:01:01.877" />
  <row Id="2026" PostTypeId="2" ParentId="1634" CreationDate="2010-09-09T18:01:32.500" Score="0" ViewCount="" Body="&lt;p&gt;Like Brent Ozar says 'What is your Stack Overflow name?'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may not have experience, but at least you may be appreciated by a dev community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.brentozar.com/archive/2010/04/rock-stars-normal-people-and-you/#comment-23204&quot; rel=&quot;nofollow&quot;&gt;http://www.brentozar.com/archive/2010/04/rock-stars-normal-people-and-you/#comment-23204&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try and leverage other things you have going for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if you don't have much experience, keep it short.&lt;/p&gt;&#xA;" OwnerUserId="160" LastActivityDate="2010-09-09T18:01:32.500" />
  <row Id="2027" PostTypeId="2" ParentId="2023" CreationDate="2010-09-09T18:01:44.647" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://winmerge.org/&quot; rel=&quot;nofollow&quot;&gt;http://winmerge.org/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-09-09T18:01:44.647" CommentCount="2" />
  <row Id="2028" PostTypeId="2" ParentId="1890" CreationDate="2010-09-09T18:02:31.247" Score="3" ViewCount="" Body="&lt;p&gt;I believe the best way to do it (in C#/.net anyway) is a combination of 2 and 6:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private int MyInteger { get; set; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;There's theoretically no variable at all here, but it looks and acts like a private instance variable.  If we need to add some business logic to that value (it's a completely internal value, so we can do anything we want to it after all) then it's already 'propertyized' for us.  A hot steaming cup of win!&lt;/p&gt;&#xA;" OwnerUserId="143" LastActivityDate="2010-09-09T18:02:31.247" />
  <row Id="2029" PostTypeId="2" ParentId="1108" CreationDate="2010-09-09T18:03:01.900" Score="1" ViewCount="" Body="&lt;p&gt;Was sure it would have already been mentioned, but didn't see it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.2600.com/&quot; rel=&quot;nofollow&quot;&gt;2600 Magazine (http://www.2600.com/)&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="809" LastActivityDate="2010-09-09T18:03:01.900" />
  <row Id="2030" PostTypeId="2" ParentId="1890" CreationDate="2010-09-09T18:05:23.203" Score="1" ViewCount="" Body="&lt;p&gt;Why not use Auto-Implemented Properties?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/bb384054.aspx&quot; rel=&quot;nofollow&quot;&gt;http://msdn.microsoft.com/en-us/library/bb384054.aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="809" LastActivityDate="2010-09-09T18:05:23.203" CommentCount="1" />
  <row Id="2031" PostTypeId="2" ParentId="57" CreationDate="2010-09-09T18:05:34.823" Score="0" ViewCount="" Body="&lt;p&gt;Why can't someone implement this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;code is stored in a compact format beneficial to the system in question&lt;/li&gt;&#xA;&lt;li&gt;as each dev opens the code, it is formatted exactly how they want it&lt;/li&gt;&#xA;&lt;li&gt;when they have finished with it, back to the compact format&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Everyone is happy as they all see their 'own' format&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is that so difficult?&lt;/p&gt;&#xA;" OwnerUserId="160" LastActivityDate="2010-09-09T18:05:34.823" CommentCount="6" />
  <row Id="2032" PostTypeId="2" ParentId="1885" CreationDate="2010-09-09T18:06:08.413" Score="1" ViewCount="" Body="&lt;p&gt;When I signed up to Stack Overflow they didn't have the big buttons they do now (I likely would've used Google). So I signed up for MyOpenID and still use it. It's simple to remember the URL, but it's even easier now that SO has a big &quot;MyOpenID&quot; button alongside Google etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you're covering the majority of bases (as per &lt;a href=&quot;http://programmers.stackexchange.com/questions/1885/does-anybody-ever-uses-the-openid-url-log-in/1908#1908&quot;&gt;your comment&lt;/a&gt;) it's not like it's any trouble to add an &quot;enter your own&quot; box - I mean, the Google/Yahoo boxes just link to the appropriate OpenID URLs anyway.&lt;/p&gt;&#xA;" OwnerUserId="456" LastActivityDate="2010-09-09T18:06:08.413" />
  <row Id="2033" PostTypeId="2" ParentId="1975" CreationDate="2010-09-09T18:07:25.617" Score="0" ViewCount="" Body="&lt;p&gt;My most recent fav is this custom DependencyProperty snippet I created because the default in VS is so goddamned awful.  Here's the snippy:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;&#xA;&amp;lt;CodeSnippets xmlns=&quot;http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet&quot;&amp;gt;&#xA;  &amp;lt;CodeSnippet Format=&quot;1.0.0&quot;&amp;gt;&#xA;    &amp;lt;Header&amp;gt;&#xA;      &amp;lt;SnippetTypes&amp;gt;&#xA;        &amp;lt;SnippetType&amp;gt;Expansion&amp;lt;/SnippetType&amp;gt;&#xA;      &amp;lt;/SnippetTypes&amp;gt;&#xA;      &amp;lt;Title&amp;gt;SnippetFile1&amp;lt;/Title&amp;gt;&#xA;      &amp;lt;Author&amp;gt;will&amp;lt;/Author&amp;gt;&#xA;      &amp;lt;Description&amp;gt;&#xA;      &amp;lt;/Description&amp;gt;&#xA;      &amp;lt;HelpUrl&amp;gt;&#xA;      &amp;lt;/HelpUrl&amp;gt;&#xA;      &amp;lt;Shortcut&amp;gt;dp&amp;lt;/Shortcut&amp;gt;&#xA;    &amp;lt;/Header&amp;gt;&#xA;    &amp;lt;Snippet&amp;gt;&#xA;      &amp;lt;Declarations&amp;gt;&#xA;        &amp;lt;Literal Editable=&quot;true&quot;&amp;gt;&#xA;          &amp;lt;ID&amp;gt;PropertyName&amp;lt;/ID&amp;gt;&#xA;          &amp;lt;ToolTip&amp;gt;Property name&amp;lt;/ToolTip&amp;gt;&#xA;          &amp;lt;Default&amp;gt;PropertyName&amp;lt;/Default&amp;gt;&#xA;          &amp;lt;Function&amp;gt;&#xA;          &amp;lt;/Function&amp;gt;&#xA;        &amp;lt;/Literal&amp;gt;&#xA;        &amp;lt;Literal Editable=&quot;false&quot;&amp;gt;&#xA;          &amp;lt;ID&amp;gt;ClassName&amp;lt;/ID&amp;gt;&#xA;          &amp;lt;ToolTip&amp;gt;Class name&amp;lt;/ToolTip&amp;gt;&#xA;          &amp;lt;Default&amp;gt;ClassName&amp;lt;/Default&amp;gt;&#xA;          &amp;lt;Function&amp;gt;ClassName()&amp;lt;/Function&amp;gt;&#xA;        &amp;lt;/Literal&amp;gt;&#xA;        &amp;lt;Literal Editable=&quot;true&quot;&amp;gt;&#xA;          &amp;lt;ID&amp;gt;Type&amp;lt;/ID&amp;gt;&#xA;          &amp;lt;ToolTip&amp;gt;Property type&amp;lt;/ToolTip&amp;gt;&#xA;          &amp;lt;Default&amp;gt;object&amp;lt;/Default&amp;gt;&#xA;          &amp;lt;Function&amp;gt;&#xA;          &amp;lt;/Function&amp;gt;&#xA;        &amp;lt;/Literal&amp;gt;&#xA;        &amp;lt;Literal Editable=&quot;true&quot;&amp;gt;&#xA;          &amp;lt;ID&amp;gt;DefaultValue&amp;lt;/ID&amp;gt;&#xA;          &amp;lt;ToolTip&amp;gt;Default value&amp;lt;/ToolTip&amp;gt;&#xA;          &amp;lt;Default&amp;gt;null&amp;lt;/Default&amp;gt;&#xA;          &amp;lt;Function&amp;gt;&#xA;          &amp;lt;/Function&amp;gt;&#xA;        &amp;lt;/Literal&amp;gt;&#xA;      &amp;lt;/Declarations&amp;gt;&#xA;      &amp;lt;Code Language=&quot;csharp&quot;&amp;gt;&amp;lt;![CDATA[&#xA;#region $PropertyName$&#xA;/// &amp;lt;summary&amp;gt;&#xA;/// The &amp;lt;see cref=&quot;DependencyProperty&quot;/&amp;gt; for &amp;lt;see cref=&quot;$PropertyName$&quot;/&amp;gt;.&#xA;/// &amp;lt;/summary&amp;gt;&#xA;public static readonly DependencyProperty $PropertyName$Property =&#xA;    DependencyProperty.Register(&#xA;        &quot;$PropertyName$&quot;, &#xA;        typeof($Type$), &#xA;        typeof($ClassName$), &#xA;        new UIPropertyMetadata($DefaultValue$));&#xA;&#xA;/// &amp;lt;summary&amp;gt;&#xA;/// $end$&#xA;/// &amp;lt;/summary&amp;gt;&#xA;public $Type$ $PropertyName$&#xA;{&#xA;    get { return ($Type$)GetValue($PropertyName$Property); }&#xA;    set { SetValue($PropertyName$Property, value); }&#xA;}&#xA;#endregion  &#xA;]]&amp;gt;&amp;lt;/Code&amp;gt;&#xA;    &amp;lt;/Snippet&amp;gt;&#xA;  &amp;lt;/CodeSnippet&amp;gt;&#xA;&amp;lt;/CodeSnippets&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Surrounds the DP in a region with the name of the DP, does most docs for you, ends at the doc for the property itself.  &lt;/p&gt;&#xA;" OwnerUserId="698" LastActivityDate="2010-09-09T18:07:25.617" />
  <row Id="2034" PostTypeId="2" ParentId="2023" CreationDate="2010-09-09T18:08:59.497" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.sourcegear.com/diffmerge/&quot; rel=&quot;nofollow&quot;&gt;DiffMerge&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;DiffMerge is an application to visually compare and merge files for Windows, Mac OS X and Linux.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-09T18:08:59.497" />
  <row Id="2035" PostTypeId="2" ParentId="1890" CreationDate="2010-09-09T18:10:19.023" Score="6" ViewCount="" Body="&lt;p&gt;I use the following naming scheme:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;1st (myInteger) for local scoped variables&lt;/li&gt;&#xA;&lt;li&gt;2nd (MyInteger) for public properties &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;4th (_myInteger) for private variables&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="210" LastActivityDate="2010-09-09T18:10:19.023" />
  <row Id="2037" PostTypeId="2" ParentId="57" CreationDate="2010-09-09T18:12:34.777" Score="22" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Tabs&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;allow mistakes to be more noticeable&lt;/strong&gt;, it's annoying to micro manage to spaces.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;are consistent&lt;/strong&gt;, they are only used for indentation, unless you are commenting wrong.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;are customizable&lt;/strong&gt;, you can specify in the options of the editor how wide they are.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;are more productive&lt;/strong&gt;, why type 4 spaces if u can hit 1 tab.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;take less size than multiple spaces.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;take more space than a space.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;take less time to go through&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;tend to work better in IDEs.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Spaces&lt;/strong&gt; should be used where tabs are completely useless.&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2011-01-12T01:43:41.490" LastActivityDate="2011-01-12T01:43:41.490" CommentCount="4" />
  <row Id="2038" PostTypeId="2" ParentId="2023" CreationDate="2010-09-09T18:12:53.793" Score="0" ViewCount="" Body="&lt;p&gt;For most of the time TortoiseSVN and for special cases, my eyes :)&lt;/p&gt;&#xA;" OwnerUserId="210" LastActivityDate="2010-09-09T18:12:53.793" />
  <row Id="2039" PostTypeId="2" ParentId="1319" CreationDate="2010-09-09T18:13:02.063" Score="-2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Is your database schema normalized?&lt;/li&gt;&#xA;&lt;li&gt;Do you have coding standards?&lt;/li&gt;&#xA;&lt;li&gt;Is the code well-covered by unit and integration tests?&lt;/li&gt;&#xA;&lt;li&gt;Do developers write tests first?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If the answer to any of these is &quot;no&quot;, it is a big red flag.&lt;/p&gt;&#xA;" OwnerUserId="791" LastActivityDate="2010-09-09T18:13:02.063" CommentCount="3" />
  <row Id="2040" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T18:15:51.620" Score="5" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Visual Studio 2010&lt;/li&gt;&#xA;&lt;li&gt;ReSharper&lt;/li&gt;&#xA;&lt;li&gt;Reflector&lt;/li&gt;&#xA;&lt;li&gt;Snoop&lt;/li&gt;&#xA;&lt;li&gt;Ultra Edit / Studio&lt;/li&gt;&#xA;&lt;li&gt;XYPlorer&lt;/li&gt;&#xA;&lt;li&gt;Git or SVN or Mercurial (just about anything BUT Source Safe)&lt;/li&gt;&#xA;&lt;li&gt;H3Viewer (MSDN Help Viewer)&lt;/li&gt;&#xA;&lt;li&gt;Balsamiq Mockups&lt;/li&gt;&#xA;&lt;li&gt;Paint.NET&lt;/li&gt;&#xA;&lt;li&gt;NUnit (though any of the other unit testing frameworks would do)&lt;/li&gt;&#xA;&lt;li&gt;LinqPad&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Of course, also need a browser (Chrome for me), and a music player (Zune or iTunes).&lt;/p&gt;&#xA;" OwnerUserId="801" LastActivityDate="2010-09-09T18:15:51.620" CommunityOwnedDate="2010-09-10T20:03:00.190" CommentCount="2" />
  <row Id="2041" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T18:16:09.323" Score="6" ViewCount="" Body="&lt;p&gt;My favorite is the &quot;No magic numbers&quot; rule applied cluelessly.  For example, I once saw a comment in a code review stating then the &quot;No magic numbers&quot; rule had been violated by this line of code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (fscanf(file, &quot;%s %hd&quot;,name, nbrObject ) != 2 )&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I guess the reviewer wanted a constant instead of 2, such as &#xA;    #define TWO 2&lt;/p&gt;&#xA;" LastActivityDate="2010-09-09T18:16:09.323" CommunityOwnedDate="2010-09-09T18:16:09.323" CommentCount="3" />
  <row Id="2042" PostTypeId="1" CreationDate="2010-09-09T18:17:25.593" Score="12" ViewCount="435" Body="&lt;p&gt;I've been working in the Enterprise space for the past 4½ years and have noticed that &lt;em&gt;generally-speaking&lt;/em&gt; Enterprises are not conducive environments to test-first style of development. Projects are usually fixed-cost, fixed-timeline and waterfall style. Any unit testing, if done at all, usually comes after development in the QA phase and done by another team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prior to working for an Enterprise, I consulted for many small to medium sized companies.  And none of them were willing to pay for a test-first style of development project.  They usually wanted development started immediately, or after a short design stint. More akin to Agile.  Though, some clients wanted everything mapped out similar to Waterfall.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case, I'm just wondering which types of shops / clients / companies have embraced test-first, and also what types of projects are they?  Just curious...&lt;/p&gt;&#xA;" OwnerUserId="817" LastEditorUserId="719" LastEditorDisplayName="" LastEditDate="2010-09-09T20:29:58.787" LastActivityDate="2010-10-21T01:50:03.803" Title="Who does test-first development?" Tags="&lt;agile&gt;&lt;unit-testing&gt;&lt;testing&gt;&lt;waterfall&gt;&lt;best-practices&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="3" />
  <row Id="2043" PostTypeId="2" ParentId="2023" CreationDate="2010-09-09T18:18:04.677" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.perforce.com/perforce/products/merge.html&quot; rel=&quot;nofollow&quot;&gt;P4Merge&lt;/a&gt; is pretty good and cross platform.&lt;/p&gt;&#xA;" OwnerUserId="718" LastActivityDate="2010-09-09T18:18:04.677" CommentCount="1" />
  <row Id="2044" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T18:18:27.213" Score="5" ViewCount="" Body="&lt;p&gt;At my last job, &quot;standards&quot; would be a very strong term for what I was given by the guy who hired me.  Programming websites in ColdFusion and SQL, I given coding requirements like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Don't use includes.  I like one big page&lt;/li&gt;&#xA;&lt;li&gt;Always separate words in variable and column names with underscores (except isactive, firstname, etc.)&lt;/li&gt;&#xA;&lt;li&gt;Never use abbreviations -- always write out firstname (he frequently wrote fname and so forth)&lt;/li&gt;&#xA;&lt;li&gt;Don't use confusing names (like amount_charged and charge_amount, which measured differnt but related things)&lt;/li&gt;&#xA;&lt;li&gt;Don't use DIVs, and use minimal CSS -- use nested tables instead (I found some six layers deep, once).&lt;/li&gt;&#xA;&lt;li&gt;Don't cache any queries.  Ever.&lt;/li&gt;&#xA;&lt;li&gt;Going to use a variable on more than one page?  Application scope.  &lt;/li&gt;&#xA;&lt;li&gt;Each page is its own try/catch block.  We don't need/want a global error handler.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I started changing these as soon as he quit.&lt;/p&gt;&#xA;" OwnerUserId="828" LastActivityDate="2010-09-09T18:18:27.213" CommunityOwnedDate="2010-09-09T18:18:27.213" CommentCount="2" />
  <row Id="2045" PostTypeId="2" ParentId="1890" CreationDate="2010-09-09T18:18:37.583" Score="23" ViewCount="" Body="&lt;p&gt;The MSDN class design guidlines &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ta31s3bc.aspx&quot; rel=&quot;nofollow&quot;&gt;http://msdn.microsoft.com/en-us/library/ta31s3bc.aspx&lt;/a&gt; recommends option 1 - myInteger. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have always used this style. I have a personal dislike for the _ character.&lt;/p&gt;&#xA;" OwnerUserId="789" LastActivityDate="2010-09-09T18:18:37.583" CommentCount="6" />
  <row Id="2046" PostTypeId="1" CreationDate="2010-09-09T18:19:32.140" Score="0" ViewCount="108" Body="&lt;p&gt;What could one do to make a site of this type more successful?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i.e. increase the user base and the quality of the content&lt;/p&gt;&#xA;" OwnerUserId="160" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:48:02.367" LastActivityDate="2010-10-02T15:48:02.367" ClosedDate="2010-10-05T15:53:34.630" Title="Best way to increase user base of a community website i.e. programmers.stackexchange.com" Tags="&lt;websites&gt;&lt;advancements&gt;" AnswerCount="2" CommentCount="7" />
  <row Id="2048" PostTypeId="2" ParentId="2046" CreationDate="2010-09-09T18:21:47.977" Score="-1" ViewCount="" Body="&lt;p&gt;There isn't a single answer to this or there wouldn't be degrees available for marketing. You must make an offering that you know people will go for (e.g. Free software for asking / answering questions), get the word out (by any means possible), and hope that a &quot;tipping point&quot; happens.&lt;/p&gt;&#xA;" OwnerUserId="825" LastActivityDate="2010-09-09T18:21:47.977" />
  <row Id="2049" PostTypeId="2" ParentId="1533" CreationDate="2010-09-09T18:21:51.217" Score="2" ViewCount="" Body="&lt;p&gt;Contracting. There's far more money in freelance work.&lt;/p&gt;&#xA;" OwnerUserId="718" LastActivityDate="2010-09-09T18:21:51.217" CommunityOwnedDate="2010-09-09T18:21:51.217" CommentCount="3" />
  <row Id="2050" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T18:21:51.073" Score="22" ViewCount="" Body="&lt;p&gt;Not being allowed to use the STL or other standard C++ libraries because the CTO believed 'we' could do it better and faster. Even basic constructs like lists and the string class.&lt;/p&gt;&#xA;" OwnerUserId="801" LastActivityDate="2010-09-09T18:21:51.073" CommunityOwnedDate="2010-09-09T18:21:51.073" CommentCount="2" />
  <row Id="2051" PostTypeId="1" AcceptedAnswerId="2394" CreationDate="2010-09-09T18:22:02.150" Score="72" ViewCount="8325" Body="&lt;p&gt;See title, but I am asking from a technical perspective, not &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Take my 40 year old virgin niece on a date or you're fired.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="719" LastEditorUserId="719" LastEditorDisplayName="" LastEditDate="2010-09-09T19:16:07.903" LastActivityDate="2011-05-16T05:10:02.400" CommunityOwnedDate="2010-09-10T21:00:36.153" ClosedDate="2011-05-13T20:59:50.340" Title="What is the (craziest, stupidest, silliest) thing a client/boss asked you to do?" Tags="&lt;jobs&gt;&lt;client&gt;&lt;boss&gt;" AnswerCount="64" CommentCount="13" FavoriteCount="35" />
  <row Id="2052" PostTypeId="2" ParentId="2023" CreationDate="2010-09-09T18:23:50.337" Score="16" ViewCount="" Body="&lt;p&gt;Beyond Compare is my favorite&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Reasons&lt;/strong&gt;&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Its diff algorithm is better than the others&lt;/li&gt;&#xA;&lt;li&gt;It's fast and small&lt;/li&gt;&#xA;&lt;li&gt;It has lots of little features (such as image diffing) that are occasionally useful but don't get in the way the rest of the time.&lt;/li&gt;&#xA;&lt;li&gt;The shell integration is good.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="719" LastEditorUserId="719" LastEditorDisplayName="" LastEditDate="2010-09-13T17:48:47.183" LastActivityDate="2010-09-13T17:48:47.183" CommentCount="3" />
  <row Id="2053" PostTypeId="2" ParentId="2046" CreationDate="2010-09-09T18:24:01.410" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Share, share, share!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The site itself and questions can be shared on Facebook, Twitter, LinkedIn...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As programmers visit these sites they could tell also share the site and questions to their co-workers/friends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Improve, improve, improve...&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be active on the site and on the meta, post new useful questions (which get listed on search engines) and give useful answers to existing ones. After gaining enough reputation you will be able to do more...&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-09T18:24:01.410" />
  <row Id="2054" PostTypeId="2" ParentId="2051" CreationDate="2010-09-09T18:27:57.423" Score="55" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;We need to delay the site launch by&#xA;  two weeks because Mercury is in&#xA;  retrograde and it's a bad time to&#xA;  start new things.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-09-09T18:27:57.423" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="4" />
  <row Id="2055" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T18:28:00.520" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codesmithtools.com/&quot; rel=&quot;nofollow&quot;&gt;CodeSmith&lt;/a&gt; or some other code generator. For any project of any size a code generator will save you lots of work. I haven't tried any other commercial alternatives though.&lt;br&gt;&#xA;And for file editing I like &lt;a href=&quot;http://www.editpadpro.com/&quot; rel=&quot;nofollow&quot;&gt;EditPad Pro&lt;/a&gt; better than Notepad++.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-09T18:28:00.520" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="2056" PostTypeId="2" ParentId="2051" CreationDate="2010-09-09T18:29:27.457" Score="23" ViewCount="" Body="&lt;p&gt;Let's see:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write programs in C++ &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;without the use of version control, &lt;/li&gt;&#xA;&lt;li&gt;no refactoring, &lt;/li&gt;&#xA;&lt;li&gt;no Boost, &lt;/li&gt;&#xA;&lt;li&gt;limited STL (I argued and won on this one), &lt;/li&gt;&#xA;&lt;li&gt;use unverified subcontractor libraries, &lt;/li&gt;&#xA;&lt;li&gt;without a memory profiler (to help fix subcontractor work), &lt;/li&gt;&#xA;&lt;li&gt;no unit testing, &lt;/li&gt;&#xA;&lt;li&gt;stick to 3 letter names for member function names, &lt;/li&gt;&#xA;&lt;li&gt;no test environment (VM not allowed either) just push to production&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="838" LastEditorUserId="838" LastEditorDisplayName="" LastEditDate="2010-09-09T19:05:45.420" LastActivityDate="2010-09-09T19:05:45.420" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="7" />
  <row Id="2057" PostTypeId="2" ParentId="1108" CreationDate="2010-09-09T18:30:34.813" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://pythonmagazine.com/&quot; rel=&quot;nofollow&quot;&gt;Python Magazine&lt;/a&gt;! I cannot wait for the next issue...&lt;/p&gt;&#xA;" OwnerUserId="817" LastActivityDate="2010-09-09T18:30:34.813" />
  <row Id="2058" PostTypeId="2" ParentId="2051" CreationDate="2010-09-09T18:30:43.310" Score="38" ViewCount="" Body="&lt;p&gt;The stupidest thing I've been asked to do is probably a &lt;strong&gt;&lt;em&gt;ground up rewrite&lt;/em&gt;&lt;/strong&gt; of a very large project. It was about 350k lines, all C (with a little perl mixed in for 'helper' scripts) and worked well no matter what clients did to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Almost a year later, we had:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Lots of functions that basically did the same thing as the old functions&lt;/li&gt;&#xA;&lt;li&gt;No real improvements in speed or functionality&lt;/li&gt;&#xA;&lt;li&gt;A slightly smaller memory footprint&lt;/li&gt;&#xA;&lt;li&gt;A much larger executable&lt;/li&gt;&#xA;&lt;li&gt;Annoyed clients&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Basically, we accomplished nothing that sensible refactoring could not have accomplished. But my boss was happy, we got rid of the helper scripts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I consider it to be the most egregious waste of time and existing code that I've ever seen.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-09-09T18:43:57.933" LastActivityDate="2010-09-09T18:43:57.933" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="4" />
  <row Id="2059" PostTypeId="2" ParentId="2051" CreationDate="2010-09-09T18:31:10.530" Score="76" ViewCount="" Body="&lt;p&gt;&quot;You know this enormous 20-year-old Cobol program that contains piles and piles of hard-coded business rules that more or less defines our company? Would you mind converting it to .NET?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yikes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We go live in a few weeks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wish me luck..&lt;/p&gt;&#xA;" OwnerUserId="794" LastActivityDate="2010-09-09T18:31:10.530" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="11" />
  <row Id="2060" PostTypeId="2" ParentId="1975" CreationDate="2010-09-09T18:31:57.570" Score="0" ViewCount="" Body="&lt;p&gt;Not a particular snippet, but I keep a file of visual studio regex find+replace snippets.  For example, one entry&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/////&#xA;// to go from&#xA;Properties[&quot;PropertyKey&quot;].Value&#xA;// to&#xA;Properties.Property&#xA;&#xA;// find&#xA;Properties\[&quot;{:a+}&quot;\]\.Value&#xA;// replace&#xA;Properties\.\1&#xA;////&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-09T18:31:57.570" CommentCount="0" />
  <row Id="2061" PostTypeId="2" ParentId="1533" CreationDate="2010-09-09T18:32:14.007" Score="2" ViewCount="" Body="&lt;p&gt;There's several paths I've seen taken by I know:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Product Manager&lt;/li&gt;&#xA;&lt;li&gt;Requirements Analyst&lt;/li&gt;&#xA;&lt;li&gt;Architect&lt;/li&gt;&#xA;&lt;li&gt;Team Lead&lt;/li&gt;&#xA;&lt;li&gt;Configuration Manager&lt;/li&gt;&#xA;&lt;li&gt;Technical Writer&lt;/li&gt;&#xA;&lt;li&gt;Start-up Founder&lt;/li&gt;&#xA;&lt;li&gt;Grant Writer&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-09T18:32:14.007" CommunityOwnedDate="2010-09-09T18:32:14.007" CommentCount="5" />
  <row Id="2062" PostTypeId="2" ParentId="2001" CreationDate="2010-09-09T18:32:19.410" Score="3" ViewCount="" Body="&lt;p&gt;Take care of your kids, spend time to talk and play with them.&#xA;It works for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the less romantic:&lt;br&gt;&#xA;   1. Running: it keeps you fit and give you endorphine.(love them)&lt;br&gt;&#xA;   2. Coding: pet project with fresh and entertaining technologies. &lt;/p&gt;&#xA;" OwnerUserId="74" LastActivityDate="2010-09-09T18:32:19.410" />
  <row Id="2063" PostTypeId="2" ParentId="1985" CreationDate="2010-09-09T18:33:52.303" Score="0" ViewCount="" Body="&lt;p&gt;I describe it as telling the computer what to do. You instruct it on how to take certain inputs and produce certain output. It does what you tell it, like a person following a recipe.&lt;/p&gt;&#xA;" OwnerUserId="835" LastActivityDate="2010-09-09T18:33:52.303" />
  <row Id="2064" PostTypeId="2" ParentId="1975" CreationDate="2010-09-09T18:35:22.250" Score="0" ViewCount="" Body="&lt;p&gt;Something missing in C++ that legend has it was an oversight -&gt; copy_if&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;template&amp;lt;class InputIterator, class OutputIterator, typename Predicate&amp;gt;&#xA;OutputIterator copy_if( InputIterator _first, InputIterator _last, OutputIterator _result, Predicate _pred ){&#xA;    for( _first; _first != _last; ++_first ){&#xA;        if( _pred( *_first ) ){&#xA;            *_result++ = *_first;&#xA;        }&#xA;    }&#xA;&#xA;    return _result;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-09T18:35:22.250" />
  <row Id="2065" PostTypeId="2" ParentId="1985" CreationDate="2010-09-09T18:37:28.087" Score="15" ViewCount="" Body="&lt;p&gt;Like This:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/0yJQr.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.xkcd.com/722&quot; rel=&quot;nofollow&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="190" LastEditorUserId="190" LastEditorDisplayName="" LastEditDate="2010-09-10T13:42:28.300" LastActivityDate="2010-09-10T13:42:28.300" CommentCount="3" />
  <row Id="2066" PostTypeId="1" CreationDate="2010-09-09T18:37:53.907" Score="5" ViewCount="338" Body="&lt;p&gt;I think they are similar to &lt;a href=&quot;http://programmers.stackexchange.com/questions/1814/how-to-deals-with-users-that-think-their-computer-could-think&quot;&gt;those&lt;/a&gt;, but more violent. (And more sensitive). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I not talking about the frustrated or choleric, just the one that hit them like a vending machine)&lt;/p&gt;&#xA;" OwnerUserId="19" LastEditorUserId="19" LastEditorDisplayName="" LastEditDate="2010-09-14T13:01:29.877" LastActivityDate="2011-05-14T10:44:02.733" ClosedDate="2011-05-14T10:57:15.733" Title="How to deal with users who think hitting their computer will help?" Tags="&lt;behavior&gt;&lt;users&gt;" AnswerCount="10" CommentCount="12" FavoriteCount="2" />
  <row Id="2067" PostTypeId="2" ParentId="1997" CreationDate="2010-09-09T18:39:09.503" Score="4" ViewCount="" Body="&lt;p&gt;Spare normal people from any unnecessary technical details. They don't care.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And don't drool on your female coworkers.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-09T18:39:09.503" CommentCount="5" />
  <row Id="2068" PostTypeId="2" ParentId="2051" CreationDate="2010-09-09T18:40:40.030" Score="12" ViewCount="" Body="&lt;p&gt;For me, the craziest (and quite possibly, funnest) was&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;See this 10 million lines of code in (out-dated web technology)?  Write&#xA;  a compiler to convert it to a working Asp.net site.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It never spit out a working version (of course, I tried to tell them it was impractical), but it was fun anyways.&lt;/p&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-09T18:40:40.030" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="2" />
  <row Id="2069" PostTypeId="2" ParentId="1975" CreationDate="2010-09-09T18:40:43.433" Score="0" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;$query = &quot;...&quot;;&#xA;$result = mysql_query($query);&#xA;if ($result) while ($rec = mysql_fetch_assoc($result)) {&#xA;     ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;also&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;jQuery.doEverything();     //  :)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-09-09T18:40:43.433" CommentCount="1" />
  <row Id="2070" PostTypeId="2" ParentId="2066" CreationDate="2010-09-09T18:41:16.880" Score="2" ViewCount="" Body="&lt;p&gt;The best answer is probably to stop dealing with them in any shape or form. I'm not sure why anyone would want to continue to deal/work with/etc someone who thinks that physically attacking a machine will solve their software problems.&lt;/p&gt;&#xA;" OwnerUserId="851" LastActivityDate="2010-09-09T18:41:16.880" />
  <row Id="2071" PostTypeId="2" ParentId="2051" CreationDate="2010-09-09T18:41:35.677" Score="49" ViewCount="" Body="&lt;p&gt;Obviously after reading some business magazine on an airplane about how XML was the hot new technology (this was circa 2002), one of our executives asked me if our application used XML, when I said no he asked me if we could add it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I'm not talking about a feature to import/export files in XML format, he simply wanted it to be part of the architecture for no reason other than it was popular at the moment and would lend credibility to our app.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-09T18:41:35.677" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="5" />
  <row Id="2072" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T18:43:15.597" Score="44" ViewCount="" Body="&lt;p&gt;That there is some mythical source of absolute best practices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No deviation can ever be justified.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No document claiming to define something as a best-practice can ever be questioned.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-09T18:43:15.597" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="9" />
  <row Id="2073" PostTypeId="2" ParentId="2001" CreationDate="2010-09-09T18:44:50.493" Score="1" ViewCount="" Body="&lt;p&gt;Anything you enjoy. Not very specific I know, but I want to make a point. Exercise is most certainly good for you but many people don't like it that much and forcing yourself to do something unpleasant is only going to increase your stress level. So do anything that gets your mind off work and you enjoy.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-09T18:44:50.493" CommentCount="1" />
  <row Id="2074" PostTypeId="2" ParentId="1985" CreationDate="2010-09-09T18:45:12.417" Score="5" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;You have to write a novel, and you only have 50 words you can use, although you can define new words if you need them&lt;/li&gt;&#xA;&lt;li&gt;You are creating a recipe for a complicated dish for someone who will do &lt;em&gt;exactly&lt;/em&gt; what you tell them, without making a mistake, but they've never cooked anything ever and don't know the difference between a pot and a knife.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="791" LastActivityDate="2010-09-09T18:45:12.417" />
  <row Id="2075" PostTypeId="2" ParentId="1969" CreationDate="2010-09-09T18:46:42.177" Score="1" ViewCount="" Body="&lt;p&gt;As you said in the question, it would have to work in conjunction with an AV solution.  In order for that to happen you would either need to write an AV engine, or become involved with an existing AV vendor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If such a thing did exist... Where does the benefit come in?  Just thinking devil's advocate here..  Couldn't the AV engine just report when it's database was updated?&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-09-09T18:46:42.177" CommentCount="1" />
  <row Id="2076" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T18:47:29.057" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.embarcadero.com/products/delphi&quot; rel=&quot;nofollow&quot;&gt;Delphi RAD Studio&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.lazarus.freepascal.org/&quot; rel=&quot;nofollow&quot;&gt;Lazarus&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="850" LastEditorUserId="850" LastEditorDisplayName="" LastEditDate="2010-09-10T16:46:54.700" LastActivityDate="2010-09-10T16:46:54.700" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="2077" PostTypeId="2" ParentId="1997" CreationDate="2010-09-09T18:49:13.147" Score="5" ViewCount="" Body="&lt;p&gt;Not learning as much about the business domain, users, content you are writing software for.&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2010-09-13T14:31:07.663" LastActivityDate="2010-09-13T14:31:07.663" CommentCount="1" />
  <row Id="2078" PostTypeId="2" ParentId="2051" CreationDate="2010-09-09T18:49:24.207" Score="14" ViewCount="" Body="&lt;p&gt;One major feature of an application our company developed was the ability to search large amounts of documents by the full-text of the document. A competitor made the following claim in a marketing presentation to one of our clients, &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Our search technology is superior because it doesn't just search the text of the documents,&#xA;  it also searches the 'bits and bytes' of the actual file in binary form.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;They gave a ridiculous example of how the decimal ascii repersentations of the words &quot;boot&quot; and &quot;boat&quot; were much less similar than the same words in binary form, when you compared the actual numeric digits in the representation. So searching based on the 1's and 0's more accurately reflected how similar those two words appeared visually, and thus improved recall.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Naturally I was tasked with researching this technique, which I assume was the result of a marketing guy completely misunderstanding a programmer somewhere, and drafting a response that we could include in our proposal.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-09T18:49:24.207" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="1" />
  <row Id="2079" PostTypeId="2" ParentId="2051" CreationDate="2010-09-09T18:51:34.467" Score="12" ViewCount="" Body="&lt;p&gt;Can you write a simple time entry and billing system for our new foreign office that uses a different language, currency and tax laws?&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-09T18:51:34.467" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="1" />
  <row Id="2080" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T18:52:24.480" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.apexsql.com/sql_tools_edit.aspx&quot; rel=&quot;nofollow&quot;&gt;Apex SQL Edit&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best tool there is for creating T-SQL Queries.&lt;/p&gt;&#xA;" OwnerUserId="71" LastActivityDate="2010-09-09T18:52:24.480" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="2081" PostTypeId="2" ParentId="1972" CreationDate="2010-09-09T18:54:05.537" Score="1" ViewCount="" Body="&lt;p&gt;A single language to create the presentation, logic and data access for a website. Oh, and it shouldn't suck.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-09T18:54:05.537" />
  <row Id="2082" PostTypeId="1" AcceptedAnswerId="2096" CreationDate="2010-09-09T18:54:27.080" Score="12" ViewCount="163" Body="&lt;p&gt;My supervisor (also a developer) and I have a running joke about writing a book called &quot;Managing From Beneath: Subversively Guiding Management to the Right Decision&quot; and including a number of &quot;techniques&quot; we've developed for helping those who make the decisions to make the right ones. So far, we've got (cynicism warning!):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;BIC It!&lt;/strong&gt; BIC stands for &quot;Bury In Committee.&quot; When a bad idea comes up that someone wants to champion, we try to get it deferred to a committee for input. Typically it will either get killed outright (especially if other members of the committee are competing for you as a resource), or it will be hung up long enough that the proponent forgets about it.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Smart, Stupid, or Expensive?&lt;/strong&gt; When someone gets a visionary idea, offer them three ways to do it: a smart way, a stupid way, and an expensive way. The hope is that you've at least got a 2/3 shot of not having to do it the way that makes a piece of your soul die.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;All-Pro&lt;/strong&gt;. It's a preemptive pro/con list in which you get into the mind of the (pr)opponent and think what would be cons against doing it your way. Twist them into pros and present them in your pro list before they have a chance to present them as cons.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Dependicitis&lt;/strong&gt;. Link pending decisions together, ideally with the proponent's pet project as the final link in the chain. Use this leverage to force action on those that have been put off.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Preemptive Acceptance&lt;/strong&gt;. Sometimes it's clear that management is going to go a particular direction regardless of advice to the contrary, and it's time to make the best of it. Take the opportunity to get something else you need, though. Approach the sponsor out of the blue and take the first step: &quot;You know, I've been thinking about it, and while it's not the route I would advise, as long as we can get the schedule and budget for Project Awesome loosened up, I can work some magic to make your project fly.&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So ... what techniques have you come up with to try to head off the problem projects or make the best of what may come?&lt;/p&gt;&#xA;" OwnerUserId="248" LastEditorUserId="4711" LastEditorDisplayName="" LastEditDate="2010-12-16T22:52:23.690" LastActivityDate="2010-12-16T22:52:23.690" Title="Guiding Management to the Correct Decision" Tags="&lt;project-management&gt;&lt;management&gt;&lt;work&gt;&lt;co-workers&gt;&lt;politics&gt;" AnswerCount="1" CommentCount="3" FavoriteCount="2" />
  <row Id="2083" PostTypeId="2" ParentId="1259" CreationDate="2010-09-09T18:55:07.660" Score="2" ViewCount="" Body="&lt;p&gt;I really hope that over time IDEs would get more &quot;standardized&quot;, so switching from one IDE to another would be easier than it is now. This goes especially for shortcut keys, but I would also like to see each IDE to adopt the best features from other IDEs.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-09T18:55:07.660" CommentCount="1" />
  <row Id="2084" PostTypeId="2" ParentId="2066" CreationDate="2010-09-09T18:55:22.023" Score="6" ViewCount="" Body="&lt;p&gt;I hit computers quite often.  And I don't look like I'm the dumbest person in the world, do I?  So, how to prevent users from hitting their machines?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What helps:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;greasing coolers (yes, hitting really fixes &lt;strong&gt;that&lt;/strong&gt; noise)&lt;/li&gt;&#xA;&lt;li&gt;buying better monitors (even in the LCD epoch, they tend to produce high-frequency noise when they get old)&lt;/li&gt;&#xA;&lt;li&gt;supplying users with napkins to clean their mice and keyboards--these accessories, polluted, work badly (and hitting them is easy). Why in the world should we spend our own money on cleaning them?&lt;/li&gt;&#xA;&lt;li&gt;re-routing hits to system administrator who doesn't fix all issues on time&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What does not:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;thinking that if the users have a problem it's not your business (it is)&lt;/li&gt;&#xA;&lt;li&gt;&quot;giving them a bigger hammer&quot;.  You'll run off your budget; it will result in buying crappier hardware, which, in turn, results in just more hitting&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="34" LastEditorUserId="12611" LastEditorDisplayName="" LastEditDate="2011-05-14T07:16:28.330" LastActivityDate="2011-05-14T07:16:28.330" />
  <row Id="2085" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T18:57:33.283" Score="16" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://tortoisesvn.tigris.org/&quot; rel=&quot;nofollow&quot;&gt;Tortoise SVN&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T18:57:33.283" CommunityOwnedDate="2010-09-10T20:03:00.190" CommentCount="2" />
  <row Id="2086" PostTypeId="1" CreationDate="2010-09-09T19:02:14.033" Score="3" ViewCount="120" Body="&lt;p&gt;When writing or using an algorithm, should the Big Oh complexity be mentioned?&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-09T21:19:24.110" Title="Should one write Big Oh complexity in the documentation of algorithms?" Tags="&lt;algorithms&gt;&lt;complexity&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="2087" PostTypeId="2" ParentId="2042" CreationDate="2010-09-09T19:02:35.640" Score="0" ViewCount="" Body="&lt;p&gt;Those who implement clones.  I can't think of a better process when you're to develope something, that works exactly like an existing program.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-09T19:02:35.640" CommentCount="1" />
  <row Id="2088" PostTypeId="2" ParentId="2066" CreationDate="2010-09-09T19:03:24.890" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;If the case is metal, run some current to it.  &lt;/li&gt;&#xA;&lt;li&gt;Watch where they hit it, then when they aren't looking, glue something uncomfortable in that spot.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;j/k of course (unless they make too much noise hitting it, then...)&lt;/p&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-09T19:03:24.890" />
  <row Id="2089" PostTypeId="2" ParentId="766" CreationDate="2010-09-09T19:03:36.290" Score="3" ViewCount="" Body="&lt;p&gt;We use &lt;a href=&quot;http://www.cukes.info&quot; rel=&quot;nofollow&quot;&gt;Cucumber&lt;/a&gt; with Selenium where I'm working, and it's been really helpful for making it clear to all parties what exactly a feature is going to entail.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keeping the underlying code organized is another challenge, though.&lt;/p&gt;&#xA;" OwnerUserId="791" LastActivityDate="2010-09-09T19:03:36.290" CommentCount="1" />
  <row Id="2090" PostTypeId="2" ParentId="2086" CreationDate="2010-09-09T19:05:06.133" Score="6" ViewCount="" Body="&lt;p&gt;If you can back it up with real analysis, then yes, absolutely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;@Casebash test != analysis.  If it should always be documented then just start throwing&#xA;&lt;br&gt; &lt;code&gt;// this algorithm is O(n!)&lt;/code&gt; &lt;br&gt;on every function.  &lt;br&gt;&lt;br&gt;I've worked with people who would say things like 'This function is O(1) because there are no loops', and then I would point to the call &lt;code&gt;$(someHugeList).each(function(//...&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="719" LastEditorUserId="719" LastEditorDisplayName="" LastEditDate="2010-09-09T21:19:24.110" LastActivityDate="2010-09-09T21:19:24.110" CommentCount="9" />
  <row Id="2091" PostTypeId="2" ParentId="2001" CreationDate="2010-09-09T19:05:19.263" Score="0" ViewCount="" Body="&lt;p&gt;Beer with friends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do any another thing absolutely different to programming.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-09T19:05:19.263" CommentCount="2" />
  <row Id="2092" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T19:09:07.293" Score="35" ViewCount="" Body="&lt;p&gt;Insisting that all braces be followed by comment for what the brace ends:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;e.g:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for (int i = 0; i &amp;lt; 10; i++)&#xA;{&#xA;    if (foo &amp;gt; bar)&#xA;    {&#xA;        printf(&quot;Foo greater than bar&quot;);&#xA;    } // End If (foo &amp;gt; bar)&#xA;&#xA;    while (baz)&#xA;    {&#xA;       farb();&#xA;    } // End while (baz)&#xA;} // End For&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="860" LastActivityDate="2010-09-09T19:09:07.293" CommunityOwnedDate="2010-09-09T19:09:07.293" CommentCount="10" />
  <row Id="2093" PostTypeId="2" ParentId="2051" CreationDate="2010-09-09T19:10:52.750" Score="29" ViewCount="" Body="&lt;p&gt;Changing my syntax highlighting colors to match the ones used in the version control system.&lt;/p&gt;&#xA;" OwnerUserId="862" LastActivityDate="2010-09-09T19:10:52.750" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="1" />
  <row Id="2094" PostTypeId="2" ParentId="2051" CreationDate="2010-09-09T19:13:36.270" Score="44" ViewCount="" Body="&lt;p&gt;They asked me to search a Commercial Product that could find and fix source code bugs automagically.&lt;br&gt;&#xA;Still searching..since 2001 :).&lt;/p&gt;&#xA;" OwnerUserId="74" LastActivityDate="2010-09-09T19:13:36.270" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="7" />
  <row Id="2095" PostTypeId="2" ParentId="1040" CreationDate="2010-09-09T19:13:45.923" Score="5" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;They usually prefer big companies that can promise lots of support&lt;/li&gt;&#xA;&lt;li&gt;While they must usually put needs out for competitive bids, they almost &lt;em&gt;always&lt;/em&gt; go with an undocumented preferred vendor; when that doesn't happen, they go with the cheapest&lt;/li&gt;&#xA;&lt;li&gt;There are usually very detailed and difficult-to-comply-with security restrictions&lt;/li&gt;&#xA;&lt;li&gt;Old browsers, old computers, out-dated OSes are the rule&lt;/li&gt;&#xA;&lt;li&gt;Decisions are made &lt;em&gt;extremely&lt;/em&gt; slowly.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you want to base a business off of selling in to the government, you will need an army of sales-related people and compliance experts to help you.  And, in the end, your software might never get used; I've seen many vendors successfully wring $100K+ out of the government, and the software sits on a shelf never used.&lt;/p&gt;&#xA;" OwnerUserId="791" LastActivityDate="2010-09-09T19:13:45.923" CommentCount="1" />
  <row Id="2096" PostTypeId="2" ParentId="2082" CreationDate="2010-09-09T19:13:49.203" Score="3" ViewCount="" Body="&lt;p&gt;I have gone ahead and prototyped/implemented things my way ahead of time (on my own time) so that when a decision meeting comes, we could say:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Well, this already written code will save us X hundred hours if we do it this way...&quot;&lt;/p&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-09T19:13:49.203" CommentCount="2" />
  <row Id="2097" PostTypeId="2" ParentId="2051" CreationDate="2010-09-09T19:17:46.913" Score="5" ViewCount="" Body="&lt;p&gt;To learn a whole new programming language over the weekend.&lt;/p&gt;&#xA;" OwnerUserId="864" LastActivityDate="2010-09-09T19:17:46.913" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="10" />
  <row Id="2099" PostTypeId="2" ParentId="2001" CreationDate="2010-09-09T19:20:55.893" Score="1" ViewCount="" Body="&lt;p&gt;Watch re-runs of Big Bang Theory.   Or listen to podcasts of se-radio.net&lt;/p&gt;&#xA;" OwnerUserId="864" LastActivityDate="2010-09-09T19:20:55.893" />
  <row Id="2100" PostTypeId="2" ParentId="135" CreationDate="2010-09-09T19:24:27.043" Score="3" ViewCount="" Body="&lt;p&gt;These are all developers or people who post on technical topics, ordered by amount of interesting programmer-related content. The list is Mac-centric.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://twitter.com/mattgemmell&quot; rel=&quot;nofollow&quot;&gt;Matt Legend Gemmell&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://twitter.com/wilshipley&quot; rel=&quot;nofollow&quot;&gt;Wil Shipley&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://twitter.com/codinghorror&quot; rel=&quot;nofollow&quot;&gt;Jeff Atwood&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://twitter.com/gruber&quot; rel=&quot;nofollow&quot;&gt;John Gruber&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://twitter.com/siracusa&quot; rel=&quot;nofollow&quot;&gt;John Siracusa&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="835" LastActivityDate="2010-09-09T19:24:27.043" CommunityOwnedDate="2011-02-11T07:48:02.420" />
  <row Id="2103" PostTypeId="2" ParentId="135" CreationDate="2010-09-09T19:26:46.093" Score="12" ViewCount="" Body="&lt;p&gt;John Carmack!&#xA;&lt;a href=&quot;http://twitter.com/ID_AA_Carmack&quot; rel=&quot;nofollow&quot;&gt;@ID_AA_Carmack&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="871" LastActivityDate="2010-09-09T19:26:46.093" CommunityOwnedDate="2011-02-11T07:48:02.420" CommentCount="1" />
  <row Id="2104" PostTypeId="2" ParentId="1065" CreationDate="2010-09-09T19:29:16.870" Score="1" ViewCount="" Body="&lt;p&gt;We are in the middle of doing SSO where I'm at right now.  We couldn't get Site Minder to let us &lt;em&gt;pay&lt;/em&gt; for a developer license; they literally didn't return the numerous calls we made begging to use their software (one of our clients was using it and we figured it would be the easiest path).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We went with Ping Identity's Pingfederate product (or is it the other way around)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The documentation isn't amazing, but it's working for us.  When you can get past first-level support, they have been very helpful and getting us going.  Your application will be dependent upon their APIs, but your application will also support numerous open standards for SSO.  They also have consulting available to do the heavy lifting if you have the budget.&lt;/p&gt;&#xA;" OwnerUserId="791" LastActivityDate="2010-09-09T19:29:16.870" />
  <row Id="2106" PostTypeId="2" ParentId="2042" CreationDate="2010-09-09T19:30:36.137" Score="11" ViewCount="" Body="&lt;p&gt;Every line of code I write is using test driven development.  If management isn't on board with writing tests first the I don't tell management about it.  I feel that strongly that test driven development is a better process.&lt;/p&gt;&#xA;" OwnerUserId="5" LastActivityDate="2010-09-09T19:30:36.137" CommentCount="5" />
  <row Id="2107" PostTypeId="2" ParentId="2042" CreationDate="2010-09-09T19:30:52.410" Score="4" ViewCount="" Body="&lt;p&gt;If you test after, you create rework as the code you will have written will be difficult to test. When you test first, or even test-a-little-bit-in-the-middle-but-before-you-commit the software you create will be easier to test. An enterprise that creates unit tests after production code is written to satisfy a check list is wasting effort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Integration with existing hard to test software will also create additional effort, as you will need to create test seams to be able to control the dependencies your shiny new test driven code consumes. In some cases, such as with frameworks that make heavy use of global state and god objects this can be very difficult to achieve. The perceived difficulty of test driven development is often down to a combination of inexperience with writing good tests and attempting to test tightly coupled code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can test drive code even in a waterfall project, it is an engineering discipline not a project management technique.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not a TDD fanatic by any means, but it teaches you a lot about software design.&lt;/p&gt;&#xA;" OwnerUserId="718" LastEditorUserId="718" LastEditorDisplayName="" LastEditDate="2010-09-09T19:36:09.557" LastActivityDate="2010-09-09T19:36:09.557" />
  <row Id="2108" PostTypeId="2" ParentId="2001" CreationDate="2010-09-09T19:30:53.123" Score="0" ViewCount="" Body="&lt;p&gt;Gym, Paint, drink, drunken coding. (Usually in that order)&lt;/p&gt;&#xA;" OwnerUserId="871" LastActivityDate="2010-09-09T19:30:53.123" CommentCount="1" />
  <row Id="2115" PostTypeId="2" ParentId="1985" CreationDate="2010-09-09T19:40:15.813" Score="0" ViewCount="" Body="&lt;p&gt;It's like trying to paint a still picture of a moving scene while someone slaps you about the head.&lt;br&gt;&#xA;And keeps moving the canvas around.&lt;br&gt;&#xA;And keeps changing the palette.&lt;br&gt;&#xA;Whilst wearing rollerskates.&lt;br&gt;&#xA;Blindfolded.&lt;br&gt;&#xA;Surrounded by a swarm of bees.&lt;br&gt;&#xA;Whilst getting happy-slapped.&lt;br&gt;&#xA;During an earthquake.  &lt;/p&gt;&#xA;" OwnerUserId="160" LastActivityDate="2010-09-09T19:40:15.813" CommentCount="2" />
  <row Id="2118" PostTypeId="2" ParentId="1259" CreationDate="2010-09-09T19:45:24.623" Score="-1" ViewCount="" Body="&lt;p&gt;I would like to have a web based ide/editor that works great.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://mozillalabs.com/skywriter/&quot; rel=&quot;nofollow&quot;&gt;Mozilla Skywriter/Bespin&lt;/a&gt; is a good preview of the future, I guess.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-09T19:45:24.623" CommentCount="2" />
  <row Id="2120" PostTypeId="2" ParentId="1890" CreationDate="2010-09-09T19:49:29.063" Score="1" ViewCount="" Body="&lt;p&gt;with the underscore. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bill Wagner explains why in &lt;a href=&quot;http://my.safaribooksonline.com/0321245660&quot; rel=&quot;nofollow&quot;&gt;Effective C#&lt;/a&gt;.&#xA;But I would never name an integer &lt;em&gt;my&lt;/em&gt;&lt;strong&gt;Integer&lt;/strong&gt;,&#xA;better something like _age or _length.&#xA;Including the TypeName in the instance name is a horrible practice.&#xA;Names should be self explanatory and since C# is Type-Safe types can be found out att all times.&lt;/p&gt;&#xA;" OwnerUserId="545" LastActivityDate="2010-09-09T19:49:29.063" CommentCount="1" />
  <row Id="2123" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T19:54:10.267" Score="7" ViewCount="" Body="&lt;p&gt;Cygwin, ViM, gcc, and Git.&lt;/p&gt;&#xA;" OwnerUserId="227" LastActivityDate="2010-09-09T19:54:10.267" CommunityOwnedDate="2010-09-10T20:03:00.190" CommentCount="4" />
  <row Id="2124" PostTypeId="1" CreationDate="2010-09-09T19:57:26.680" Score="6" ViewCount="455" Body="&lt;p&gt;Having read this&lt;br&gt;&#xA;&lt;a href=&quot;http://www.whattofix.com/blog/archives/2010/09/agile-ruined-my.php&quot; rel=&quot;nofollow&quot;&gt;http://www.whattofix.com/blog/archives/2010/09/agile-ruined-my.php&lt;/a&gt;&lt;br&gt;&#xA;I think he's got quite a lot of valid points&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your thoughts?&lt;/p&gt;&#xA;" OwnerUserId="160" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-22T14:02:35.823" LastActivityDate="2010-10-01T15:18:09.003" Title="Is Agile really that good?" Tags="&lt;agile&gt;&lt;software-engineering&gt;&lt;development-methodologies&gt;" AnswerCount="7" CommentCount="1" />
  <row Id="2125" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T19:57:27.213" Score="2" ViewCount="" Body="&lt;p&gt;Visual Assist X - Intellisense lookalike for the legacy Visual Studio versions with which I continue to be cursed.&lt;/p&gt;&#xA;" OwnerUserId="880" LastActivityDate="2010-09-09T19:57:27.213" CommunityOwnedDate="2010-09-10T20:03:00.190" CommentCount="2" />
  <row Id="2126" PostTypeId="2" ParentId="1985" CreationDate="2010-09-09T19:57:55.823" Score="16" ViewCount="" Body="&lt;p&gt;Do you remember that Bill Cosby routine where he talks about trying to order his kids to do everything they're supposed to do before they go to sleep?  From rough memory, &quot;Go into the bathroom.  Put the toothpaste on your toothbrush.  Brush it all over your teeth.  Spit it out.  Rinse the brush.  Rinse your mouth.  Get into the shower.  Turn on the water.  Stand under the water.  Cover yourself with soap.  Rinse the soap off.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then they come back downstairs in sopping-wet pajamas because he didn't tell them to strip before they got into the shower.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is like dealing with a extremely bright, smart-assed child who will do everything you tell him to do.  What you &lt;i&gt;want&lt;/i&gt; him to do doesn't matter; only what you &lt;i&gt;tell&lt;/i&gt; him.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And he speaks his own language, which you're gonna have to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And other people have been telling him to do stuff, too.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-09T19:57:55.823" CommentCount="1" />
  <row Id="2127" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T19:58:07.833" Score="0" ViewCount="" Body="&lt;p&gt;Grep (any flavor will do)&lt;br/&gt;&#xA;LinqPad&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-09-09T19:58:07.833" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="2128" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T19:58:15.073" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Putty&lt;/strong&gt; is a must have.&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-09T19:58:15.073" CommunityOwnedDate="2010-09-10T20:03:00.190" CommentCount="5" />
  <row Id="2129" PostTypeId="2" ParentId="2001" CreationDate="2010-09-09T19:59:18.933" Score="2" ViewCount="" Body="&lt;p&gt;Play Halo3, take out that aggression on some hostile pixels. &lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-09-09T19:59:18.933" />
  <row Id="2130" PostTypeId="1" CreationDate="2010-09-09T20:00:31.983" Score="24" ViewCount="615" Body="&lt;p&gt;In addition to answering the question in the subject, feel free to weigh in on which you personally prefer and why.&lt;/p&gt;&#xA;" OwnerUserId="151" LastActivityDate="2010-11-20T19:02:28.330" Title="What are the biggest differences between working for a small company and working for a mid-sized or large company?" Tags="&lt;jobs&gt;&lt;work&gt;&lt;employment&gt;" AnswerCount="13" FavoriteCount="12" />
  <row Id="2133" PostTypeId="2" ParentId="2130" CreationDate="2010-09-09T20:04:32.317" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Flexibility&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having worked for both, i have to say that on a small company you have more flexibility to try fresh new things without be locked-in with standard tools, languages and conventions that a Big Company usually imposes.&lt;/p&gt;&#xA;" OwnerUserId="74" LastEditorUserId="74" LastEditorDisplayName="" LastEditDate="2010-09-14T06:32:16.760" LastActivityDate="2010-09-14T06:32:16.760" />
  <row Id="2134" PostTypeId="2" ParentId="2023" CreationDate="2010-09-09T20:07:33.510" Score="1" ViewCount="" Body="&lt;p&gt;&lt;code&gt;vimdiff/gvimdiff&lt;/code&gt;. Allows you to merge with a decent editor.&lt;/p&gt;&#xA;" OwnerUserId="227" LastActivityDate="2010-09-09T20:07:33.510" />
  <row Id="2135" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T20:07:42.067" Score="0" ViewCount="" Body="&lt;p&gt;A good &lt;strong&gt;bug tracking&lt;/strong&gt; tool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a &lt;a href=&quot;http://stackoverflow.com/questions/12328/what-bug-tracking-software-do-you-use&quot;&gt;huge list of Bug Tracking tools&lt;/a&gt; &amp;amp; reviews on Stackoverflow.  Just pick one.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-09T20:07:42.067" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="2138" PostTypeId="1" CreationDate="2010-09-09T20:08:27.030" Score="4" ViewCount="478" Body="&lt;p&gt;What things that you have wrote are stupid and thus have no purpose anymore or even a negative effect?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T16:51:33.190" LastActivityDate="2010-09-30T16:51:33.190" ClosedDate="2011-01-17T17:18:49.733" Title="What's the worst thing you have programmed in the past?" Tags="&lt;experience&gt;&lt;bad-code&gt;" AnswerCount="23" CommentCount="8" FavoriteCount="2" />
  <row Id="2139" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T20:08:56.410" Score="14" ViewCount="" Body="&lt;p&gt;That assigning a priority other than &quot;1&quot; means the task will never be done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had a manager ask me to customize the bug-tracking tool with priorities 1a, 1b, 1c, 1d, and 1e so he could assign everything as some variation of priority 1, but we could still organize the work.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, I did get through all the &quot;priority 1&quot; issues.  But before I could proceed to the issues that were still in priority 2-5, the manager made me re-assign the priorities of those issues into the five priority 1 levels.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I realize this myth isn't &lt;em&gt;specific&lt;/em&gt; to programming, but that's true of several other answers on this thread.)&lt;/p&gt;&#xA;" OwnerUserId="471" LastActivityDate="2010-09-09T20:08:56.410" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="11" />
  <row Id="2140" PostTypeId="2" ParentId="2138" CreationDate="2010-09-09T20:11:32.970" Score="3" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;class Program&#xA;{&#xA;    static void Main(string[] args)&#xA;    {&#xA;        Console.WriteLine(&quot;Hello, World!&quot;);&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-09T20:11:32.970" CommentCount="2" />
  <row Id="2142" PostTypeId="2" ParentId="2138" CreationDate="2010-09-09T20:14:45.310" Score="5" ViewCount="" Body="&lt;p&gt;I've crafted many web scrapers parsing HTML page content with &lt;a href=&quot;http://stackoverflow.com/questions/701166&quot;&gt;Regex&lt;/a&gt;.&#xA;Sorry for that.&lt;/p&gt;&#xA;" OwnerUserId="74" LastActivityDate="2010-09-09T20:14:45.310" CommentCount="1" />
  <row Id="2143" PostTypeId="2" ParentId="2138" CreationDate="2010-09-09T20:14:47.807" Score="0" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;if(x = y){ // always true&#xA;    // Do something&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="64" LastEditorUserId="64" LastEditorDisplayName="" LastEditDate="2010-09-09T20:56:48.363" LastActivityDate="2010-09-09T20:56:48.363" CommentCount="4" />
  <row Id="2144" PostTypeId="2" ParentId="2130" CreationDate="2010-09-09T20:14:53.533" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Working at a large, very well known hardware manufacturer now:&lt;/strong&gt;&lt;br&gt;&#xA;&lt;br&gt;A simple refactoring assignment has been in code review for 2 weeks, next it will spend 2 or more weeks making its way through integration/merge.  All to rename a couple functions at the team leads request (in a 100% statically compiled code base where the compiler is guaranteed to catch simple mistakes).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;At startups in the past:&lt;/strong&gt;&lt;br&gt;&#xA;Source control? What source control?  Can't you just get the site up now already?&lt;/p&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-09T20:14:53.533" CommentCount="1" />
  <row Id="2147" PostTypeId="2" ParentId="2130" CreationDate="2010-09-09T20:16:45.143" Score="22" ViewCount="" Body="&lt;h2&gt;The ability to make a difference&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;One thing about a small company is that typically there are less layers, barriers and corporate politics between you and the main decision makers in the business, so it's much easier for you to pitch an idea that you have to the decision makers, or show them what you've come up with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To achieve the same thing in the corporate world (at least in the US), you have to either navigate the politics of the company and avoid upsetting your manager (and potentially their manager) by going through the chain to convince each person in the chain to let you move your idea up the chain, or you have to bypass that completely and hope that you can weather the potential storm that could come your way if your managers find out about what's going on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that people who've worked in the corporate world for a long time are either extremely political animals, or are scared to make decisions for themselves for fear of the consequences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From my answer, it shouldn't be hard to tell that I prefer working for smaller companies!&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-09T20:16:45.143" CommentCount="2" />
  <row Id="2148" PostTypeId="1" CreationDate="2010-09-09T20:16:53.473" Score="8" ViewCount="535" Body="&lt;p&gt;Being efficient starts with getting rid of the distractions, what distractions are bothering you every day?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="891" LastEditorDisplayName="" LastEditDate="2010-09-28T03:18:46.150" LastActivityDate="2010-10-08T19:47:20.120" Title="What distractions can happen during programming?" Tags="&lt;productivity&gt;&lt;distractions&gt;&lt;concentration&gt;" AnswerCount="21" FavoriteCount="2" />
  <row Id="2152" PostTypeId="2" ParentId="2130" CreationDate="2010-09-09T20:20:17.927" Score="22" ViewCount="" Body="&lt;p&gt;Lord, I hate working for big companies.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Doing your job and protecting your job are two independent skillsets.  Large companies tend to wind up with plenty of people only good at the latter who get dug-in like ticks.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When dealing with higher-ups, you are rarely dealing with decision makers; you're dealing with arbiters of The Rules.  Want something?  The Rules shall determine if you can have it.  Need help resolving a conflict?  The Rules shall reveal who is right and who is wrong.  Run into a situation that The Rules handle badly and need help figuring out how to get the right thing done?  Sucks to be you; The Rules are never wrong.  Nobody ever gets fired for going by The Rules, even when they are ridiculously ill-suited to the situation at hand.  Circumventing them means risking your job, and people who like rolling those dice don't last long.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The culture strongly encourages maximizing the money you squeeze out of [widget] &lt;b&gt;NOWNOWNOWNOWNOW&lt;/b&gt;; building something for the long-haul is secondary, and an anathema if it gets in the way of immediate gain.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Meetings.  Oh, God.  The meetings.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Big companies are good for job security and tend to have better benefits packages.  Smaller companies tend to be more unstable (my own resume has a certain &quot;ping-pong-ball-in-a-clothes-dryer&quot; feel over a few stretches) and can sometimes have a disconcerting degree of Crazy at the top.  (&quot;Crazy&quot; is actually a competitive advantage in an entrepreneur.  I'm &lt;i&gt;so&lt;/i&gt; not kidding.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But all in all, I'll only work for big companies if I'm desperate.  Small companies are more fun, more fulfilling, and less corrosive to my soul.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-09T20:20:17.927" CommentCount="1" />
  <row Id="2154" PostTypeId="2" ParentId="610" CreationDate="2010-09-09T20:20:46.130" Score="15" ViewCount="" Body="&lt;h2&gt;C# null coalescing operator&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;the ?? operator which returns the left-hand operand if it is not null, or else it returns the right operand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I often use it like so&lt;/p&gt;&#xA;&#xA;&lt;p&gt;foo = foo ?? GetNewFoo();&lt;/p&gt;&#xA;" OwnerUserId="162" LastEditorUserId="162" LastEditorDisplayName="" LastEditDate="2010-09-17T19:46:56.787" LastActivityDate="2010-09-17T19:46:56.787" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="10" />
  <row Id="2155" PostTypeId="2" ParentId="1985" CreationDate="2010-09-09T20:21:50.627" Score="5" ViewCount="" Body="&lt;p&gt;You take a big problem and you cut it into pieces.&#xA;Then you cut those pieces into smaller pieces.&#xA;You repeat this task untill the task is so small that you say:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I know how I can make the computer do that&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then repeat for the remaining pieces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Problem solved.&lt;/p&gt;&#xA;" OwnerUserId="890" LastActivityDate="2010-09-09T20:21:50.627" CommentCount="1" />
  <row Id="2157" PostTypeId="2" ParentId="610" CreationDate="2010-09-09T20:22:38.633" Score="1" ViewCount="" Body="&lt;p&gt;Monads &lt;em&gt;(Example is F#)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;async {&#xA;    let! asyncValue = getSomethingAsync&#xA;    if asyncValue = something then&#xA;        do! alertSomeone asyncValue&#xA;        do! alertSomeoneElse asyncValue&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-09T20:22:38.633" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="4" />
  <row Id="2158" PostTypeId="1" AcceptedAnswerId="3294" CreationDate="2010-09-09T20:23:51.137" Score="0" ViewCount="254" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Exact Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/1237/programming-warm-ups&quot;&gt;Programming Warm-Ups&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I have an idea for a big project which I wrote a start for, how should I be motivated to keep writing it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The project is something I really want written, but sometimes programming doesn't work out fine...&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:03:00.933" LastActivityDate="2010-09-18T21:03:00.933" ClosedDate="2010-09-13T19:54:55.963" Title="How to keep programming if it works against you?" Tags="&lt;productivity&gt;&lt;motivation&gt;" AnswerCount="1" CommentCount="4" />
  <row Id="2159" PostTypeId="2" ParentId="610" CreationDate="2010-09-09T20:24:47.233" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Scala&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact that I don't have to use &quot;.&quot; between function calls.  Makes DSLs a breeze.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-09T20:24:47.233" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="4" />
  <row Id="2160" PostTypeId="2" ParentId="610" CreationDate="2010-09-09T20:26:58.893" Score="18" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Anonymous Functions (aka Lambda Expressions)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes you don't have or want to name everything...&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;collection.remove(x =&amp;gt; isOld(x))&#xA;&#xA;collection.first(x =&amp;gt; x == true)&#xA;&#xA;collectino.for_each(x =&amp;gt; x + 3)&#xA;&#xA;collection.sort((x, y) =&amp;gt; x &amp;gt; y)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="666" LastEditorUserId="1968" LastEditorDisplayName="" LastEditDate="2010-12-07T18:45:41.450" LastActivityDate="2010-12-07T18:45:41.450" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="5" />
  <row Id="2161" PostTypeId="2" ParentId="2148" CreationDate="2010-09-09T20:27:12.080" Score="4" ViewCount="" Body="&lt;p&gt;Good day - nothing. Bad day - everything, anything.&lt;/p&gt;&#xA;" OwnerUserId="310" LastActivityDate="2010-09-09T20:27:12.080" />
  <row Id="2162" PostTypeId="2" ParentId="2138" CreationDate="2010-09-09T20:27:13.983" Score="0" ViewCount="" Body="&lt;p&gt;Wrote my own globalization framework for a web application.  I have since learned about the built in .NET framework ways of doing that.  doh!!&lt;/p&gt;&#xA;" OwnerUserId="5" LastActivityDate="2010-09-09T20:27:13.983" />
  <row Id="2164" PostTypeId="1" AcceptedAnswerId="2169" CreationDate="2010-09-09T20:29:03.320" Score="12" ViewCount="1192" Body="&lt;p&gt;(Repost, I posted this in the wrong section before, sorry)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I'm sure everyone has run into this person at one point or another, someone catches wind of your project or idea and initially shows some interest. You get to talking about some of your methods and usually around this time they interject stating how you should use method X instead, or just use library Y. But not as a friendly suggestion, but bordering on a commandment. Often repeating the same advice over and over like a overzealous parrot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I like to reinvent the wheel when I'm learning, or even just for fun, even if it turns out worse than what's been done before. But this person apparently cannot fathom recreating ANY utility for such purposes, or possibly try something that doesn't strictly follow traditional OOP practices, and will settle for nothing except their sense of perfection, and thus naturally heave their criticism sludge down my ears full force. To top it off, they eventually start justifying their advice (retardation) by listing all the incredibly complex things they've coded single-handedly (usually along the lines of &quot;trust me, I've made/used program X for a long time, blah blah blah&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I'm far from being a programming master, I'm probably not even that good, and as such I value advice and critique, but I think advice/critique has a time and place. There is also a big difference between being helpful and being narcissistic. In the past I probably would have used a somewhat stronger George Carlin style dismissal, but I don't think burning bridges is the best approach anymore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe I'm just an asshole, but do you have any advice on how to deal with this kind of verbal flogging?&lt;/p&gt;&#xA;" OwnerUserId="895" LastEditorUserId="8247" LastEditorDisplayName="" LastEditDate="2011-02-04T10:17:08.203" LastActivityDate="2011-02-15T16:00:24.043" Title="How to deal with the &quot;programming blowhard&quot;?" Tags="&lt;advice&gt;&lt;social-skills&gt;" AnswerCount="9" CommentCount="9" FavoriteCount="4" />
  <row Id="2165" PostTypeId="2" ParentId="2148" CreationDate="2010-09-09T20:31:11.937" Score="33" ViewCount="" Body="&lt;p&gt;The internet. It is also one of my most valuable tools. &lt;/p&gt;&#xA;" OwnerUserId="891" LastActivityDate="2010-09-09T20:31:11.937" />
  <row Id="2166" PostTypeId="2" ParentId="2051" CreationDate="2010-09-09T20:33:01.483" Score="3" ViewCount="" Body="&lt;p&gt;I was working on a digital marketing website where we were selling DRM-protected Windows Media audio files; audio books for the most part. Microsoft pushed out some sort of required compliance update for all vendors to implement, assuming the vendors are deploying desktop client applications on end-user machines. The update required the application to check DLL versions on the client's machine to ensure they're up-to-date. My boss was literally drilling me for every conceivable way in which our website was allowed to check a web client's DLL file versions in his/her system folder, even to the point of suggesting we write our own Windows Media Player skin to do so.&lt;/p&gt;&#xA;" OwnerUserId="894" LastActivityDate="2010-09-09T20:33:01.483" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="1" />
  <row Id="2167" PostTypeId="2" ParentId="2138" CreationDate="2010-09-09T20:33:13.863" Score="4" ViewCount="" Body="&lt;p&gt;It was a batch file deleting itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least, it was clean...&lt;/p&gt;&#xA;" OwnerUserId="19" LastActivityDate="2010-09-09T20:33:13.863" CommentCount="1" />
  <row Id="2168" PostTypeId="2" ParentId="2164" CreationDate="2010-09-09T20:34:36.600" Score="1" ViewCount="" Body="&lt;p&gt;I would tell them to f**k off &lt;em&gt;(You could use more diplomatic verbiage if you wish.)&lt;/em&gt; or simply ignore them. There aren't many options beyond what I've said. &lt;em&gt;(Murder could work but legality varies by locale.)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-09T20:34:36.600" CommentCount="6" />
  <row Id="2169" PostTypeId="2" ParentId="2164" CreationDate="2010-09-09T20:35:56.950" Score="32" ViewCount="" Body="&lt;p&gt;Don't just let them talk. Get them in front of a keyboard. The phrase &quot;ok, show me&quot; should do it. My experience is most blow hards aren't that great, and when they actually try to do what they say it doesn't work and things get real quiet.&lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-09-09T20:35:56.950" CommentCount="4" />
  <row Id="2170" PostTypeId="2" ParentId="2148" CreationDate="2010-09-09T20:38:07.800" Score="20" ViewCount="" Body="&lt;p&gt;stackoverflow.com &lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-09-09T20:38:07.800" CommentCount="1" />
  <row Id="2171" PostTypeId="2" ParentId="2148" CreationDate="2010-09-09T20:40:42.523" Score="12" ViewCount="" Body="&lt;p&gt;coworkers. those little 5 minute things here and there can really add up.&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-09-09T20:40:42.523" CommentCount="3" />
  <row Id="2172" PostTypeId="2" ParentId="2138" CreationDate="2010-09-09T20:42:17.427" Score="0" ViewCount="" Body="&lt;p&gt;I once wrote a read only bool property that set itself to true after it was first read. So the first time it was false and then after that it was true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It didn't take long to realize that was a bad idea. (e.g. hovering over it in a debugger set it to true)&lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-09-09T20:42:17.427" />
  <row Id="2173" PostTypeId="2" ParentId="2138" CreationDate="2010-09-09T20:42:22.960" Score="3" ViewCount="" Body="&lt;p&gt;My Own custom framework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2nd most stupid: My Second custom framework.&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-09-09T20:42:22.960" />
  <row Id="2174" PostTypeId="2" ParentId="154" CreationDate="2010-09-09T20:43:47.657" Score="18" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://www.jeffpalm.com/fox/fox.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Who says programming doesn't pay off?&lt;/p&gt;&#xA;" OwnerUserId="891" LastActivityDate="2010-09-09T20:43:47.657" CommentCount="4" />
  <row Id="2175" PostTypeId="2" ParentId="2148" CreationDate="2010-09-09T20:45:02.403" Score="3" ViewCount="" Body="&lt;p&gt;Girls new girls they always distract&lt;/p&gt;&#xA;" LastActivityDate="2010-09-09T20:45:02.403" />
  <row Id="2176" PostTypeId="2" ParentId="2164" CreationDate="2010-09-09T20:46:00.413" Score="3" ViewCount="" Body="&lt;p&gt;Like most social situations, it depends on the context.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this person is in a lead role (the context likely being a workplace), then you're kind of hosed unless you can convince them to use different techniques than the ones they choose. Hopefully they are open to critique from their team. In many cases I've found that presenting good, fact-based, solid arguments for why your particular approach is better for the project will often win them over. If they continue to be stubborn just because &quot;that's how it's supposed to be done&quot; (or some other silly reason), then they end up looking bad anyways and you look like you at least tried to be rational. In this case, I'd also recommend checking out &lt;a href=&quot;http://careers.stackoverflow.com/&quot;&gt;careers.so&lt;/a&gt; ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this person is your peer, you can pretty much just ignore it and move on. Better would be to ask them to explain why they value a particular library or approach. Through discussion, they may realize that your constraints are different than they anticipated (for example, you don't need &quot;awesome super-fast library X&quot; because you don't need raw pedal-to-the-metal speed, or you don't want to use &quot;prebuilt component Y&quot; because you are aiming to minimize dependencies). You might also gain valuable insight into some of what they're suggesting. Usually in situations like these I end up going mostly my own way, but I'll usually also glean some helpful information from at least looking into whatever approach/technology/library they are advocating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this person is underneath you, then tell them to bug off :) Ok... maybe be a little more constructive than that (don't be the very type of person you are trying to deal with!), and again try to understand what's going on and communicate effectively. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, if the person is really being a hardcore blowhard who doesn't want to compromise, isn't open-minded, and doesn't care to learn; then all you can really do is ignore it and try to make the best of the situation.&lt;/p&gt;&#xA;" OwnerUserId="819" LastActivityDate="2010-09-09T20:46:00.413" CommentCount="4" />
  <row Id="2179" PostTypeId="2" ParentId="1997" CreationDate="2010-09-09T20:53:36.350" Score="8" ViewCount="" Body="&lt;p&gt;Biggest non-programming mistake I've ever seen:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Not learning how to communicate effectively, both orally and in writing.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take two programmers of equal programming skill, one with good communication skills and one without. The former will go farther, faster &lt;em&gt;every. single. time.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="819" LastActivityDate="2010-09-09T20:53:36.350" CommentCount="2" />
  <row Id="2180" PostTypeId="2" ParentId="2148" CreationDate="2010-09-09T20:54:40.797" Score="16" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com&quot;&gt;programmers.stackexchange.com&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="819" LastEditorUserId="819" LastEditorDisplayName="" LastEditDate="2010-09-16T07:07:05.557" LastActivityDate="2010-09-16T07:07:05.557" CommentCount="2" />
  <row Id="2181" PostTypeId="2" ParentId="2148" CreationDate="2010-09-09T20:56:19.640" Score="2" ViewCount="" Body="&lt;p&gt;IM and email notifications. They just pop up out of nowhere and we have to tend to them.&lt;/p&gt;&#xA;" OwnerUserId="824" LastActivityDate="2010-09-09T20:56:19.640" CommentCount="0" />
  <row Id="2183" PostTypeId="2" ParentId="1890" CreationDate="2010-09-09T20:58:00.573" Score="2" ViewCount="" Body="&lt;p&gt;I do option #4 because that's what the SSCLI looks like, but honestly I don't care that much on naming of private variable. Public is a different story. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW you forgot m_MyInteger&lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-09-09T20:58:00.573" />
  <row Id="2184" PostTypeId="2" ParentId="2138" CreationDate="2010-09-09T21:00:16.070" Score="1" ViewCount="" Body="&lt;p&gt;Few months ago I wrote a stored procedure which deleted itself.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-09T21:00:16.070" />
  <row Id="2185" PostTypeId="1" AcceptedAnswerId="2858" CreationDate="2010-09-09T21:00:29.310" Score="3" ViewCount="56" Body="&lt;p&gt;When should a project be released to alpha, beta and to the public?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it a good idea to extend the alpha and beta phases when it is needed?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When in a later phase (eg. beta), is it wise to go back to an early phase (eg. alpha) if it didn't work out?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:09:53.470" LastActivityDate="2010-09-18T21:09:53.470" Title="When is the time right to bring a project to the alpha/beta/public phase?" Tags="&lt;release&gt;&lt;development-cycle&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="2186" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T21:01:30.243" Score="28" ViewCount="" Body="&lt;p&gt;Manufacturing lessons can be applied to the software development process.&lt;/p&gt;&#xA;" OwnerUserId="908" LastActivityDate="2010-09-09T21:01:30.243" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="8" />
  <row Id="2187" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T21:03:30.490" Score="15" ViewCount="" Body="&lt;p&gt;Not really a coding standard, but we had a file in source control called 'changelog.txt'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every time you made a checkin, you had to manually add an entry to this file. This entry was the subversion revision number and your checkin comment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the new CTO started and someone told him this, he promptly made an executive decision and said, &quot;We're not going to do this anymore&quot; and deleted the file. This had been going on for years.&lt;/p&gt;&#xA;" OwnerUserId="905" LastEditorUserId="2107" LastEditorDisplayName="" LastEditDate="2010-09-29T23:39:25.600" LastActivityDate="2010-09-29T23:39:25.600" CommunityOwnedDate="2010-09-09T21:03:30.490" CommentCount="2" />
  <row Id="2189" PostTypeId="2" ParentId="1999" CreationDate="2010-09-09T21:07:00.917" Score="0" ViewCount="" Body="&lt;p&gt;Anticipate questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it must wrote somewhere that managers have to ask at least one question. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to think what is likely to be asked before you showing them anything and have a good answer.&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-09T21:07:00.917" />
  <row Id="2192" PostTypeId="1" CreationDate="2010-09-09T21:09:41.247" Score="11" ViewCount="1050" Body="&lt;p&gt;What things tend to slow a developer down?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please try to refrain from posting answers that:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;are slow now but useful in the feature. (TDD, Refactoring, ...)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/2148/what-distractions-can-happen-during-programming&quot;&gt;list a distraction&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T20:59:44.963" LastActivityDate="2011-05-03T16:23:28.873" CommunityOwnedDate="2011-01-05T06:12:52.770" ClosedDate="2011-05-04T20:44:26.257" Title="What can slow a developer down?" Tags="&lt;productivity&gt;&lt;organization&gt;" AnswerCount="30" CommentCount="5" FavoriteCount="6" />
  <row Id="2193" PostTypeId="2" ParentId="135" CreationDate="2010-09-09T21:10:15.353" Score="0" ViewCount="" Body="&lt;p&gt;It depends. Each person has his/her own specialty. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I program in ASP.NET MVC, so I follow shanselman (Scott Hanselman), haacked (Phil Haack), scottgu (Scott Guhrie), and igoro (Igor Ostrovsky).&#xA;I am really glad they share their knowledge. I learn a lot from them.&lt;/p&gt;&#xA;" OwnerUserId="824" LastActivityDate="2010-09-09T21:10:15.353" CommunityOwnedDate="2011-02-11T07:48:02.420" />
  <row Id="2194" PostTypeId="2" ParentId="1985" CreationDate="2010-09-09T21:10:31.843" Score="3" ViewCount="" Body="&lt;p&gt;It's like playing a dozen games of chess in your head at once, while your opponents are playing checkers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Debugging is even worse.&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-09-09T22:54:55.597" LastActivityDate="2010-09-09T22:54:55.597" CommunityOwnedDate="2010-09-09T21:10:31.843" CommentCount="2" />
  <row Id="2195" PostTypeId="2" ParentId="1999" CreationDate="2010-09-09T21:11:05.477" Score="0" ViewCount="" Body="&lt;p&gt;Use a stop watch to time their interruptions.  Show them how often they interrupt your work.  I've had a manager do 15 min. intervals on me.  He stopped once I could point it out.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-09T21:11:05.477" />
  <row Id="2196" PostTypeId="1" CreationDate="2010-09-09T21:11:32.330" Score="4" ViewCount="192" Body="&lt;p&gt;What steps and measures can I take to be more efficient at writing, refactoring and documenting code?  &lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T21:44:30.333" LastActivityDate="2010-10-01T13:33:41.053" Title="How do I code more efficiently?" Tags="&lt;productivity&gt;&lt;code-related&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="6" />
  <row Id="2198" PostTypeId="2" ParentId="2138" CreationDate="2010-09-09T21:13:01.083" Score="3" ViewCount="" Body="&lt;p&gt;A method that was supposed to pick items one at a time randomly from an array. Something like this (pseudo-code):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function GetNextItem()&#xA;{&#xA;  while(!found)&#xA;  {&#xA;    var i = GetRandomInt(0, array.Length)&#xA;    if (array[i] != null)&#xA;    {&#xA;       found = true&#xA;       result = array[i]&#xA;       array[i] = null&#xA;    }&#xA;  }&#xA;  return result&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This method would be called as many times as there where items in the array.&lt;/p&gt;&#xA;" OwnerUserId="794" LastActivityDate="2010-09-09T21:13:01.083" CommentCount="3" />
  <row Id="2199" PostTypeId="2" ParentId="1999" CreationDate="2010-09-09T21:13:08.603" Score="1" ViewCount="" Body="&lt;p&gt;I refer to &lt;a href=&quot;http://blogs.msdn.com/b/eric_brechner/archive/2005/08/01/august-1-2005-controlling-your-boss-for-fun-and-profit.aspx&quot; rel=&quot;nofollow&quot;&gt;“Controlling your boss for fun and profit”&lt;/a&gt; by Eric Brechner&lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-09-09T21:13:08.603" />
  <row Id="2200" PostTypeId="2" ParentId="2138" CreationDate="2010-09-09T21:13:54.333" Score="2" ViewCount="" Body="&lt;p&gt;When I was younger and a lot more naive, I thought it would be useful, and a lot more DRY, to write an &lt;strong&gt;SQL generation class&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While it wasn't that difficult to do, it's kind of a waste of time, since SQL isn't very difficult to write, it couldn't handle extremely complex SQL, and instead of just looking at the sql in code, you actually had to think about what was being generated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recently saw somebody else doing the same thing, I stopped them, but am glad to know I'm not the only one who did that.&lt;/p&gt;&#xA;" OwnerUserId="165" LastEditorUserId="165" LastEditorDisplayName="" LastEditDate="2010-09-09T21:22:40.487" LastActivityDate="2010-09-09T21:22:40.487" CommentCount="2" />
  <row Id="2201" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T21:14:31.433" Score="9" ViewCount="" Body="&lt;p&gt;Getting annoyed at people who use MB and Mb interchangeably.&lt;/p&gt;&#xA;" OwnerUserId="516" LastActivityDate="2010-09-09T21:14:31.433" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="3" />
  <row Id="2202" PostTypeId="2" ParentId="2148" CreationDate="2010-09-09T21:14:58.170" Score="1" ViewCount="" Body="&lt;p&gt;The phone and email are the worst for me. Email I can ignore for a while but I can't ignore the phone.&lt;/p&gt;&#xA;" OwnerUserId="462" LastActivityDate="2010-09-09T21:14:58.170" CommentCount="2" />
  <row Id="2203" PostTypeId="2" ParentId="2124" CreationDate="2010-09-09T21:21:37.543" Score="1" ViewCount="" Body="&lt;p&gt;It seems to me that most of his points are about people training and promoting agile methods, not the methods themselves. My experiences with agile are positive, but of course it must be done properly. And that is true for anything you do.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-09T21:21:37.543" CommentCount="3" />
  <row Id="2204" PostTypeId="1" CreationDate="2010-09-09T21:21:46.670" Score="6" ViewCount="252" Body="&lt;p&gt;What steps and measures can I take to prevent deep indentations in my code?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:07:53.690" LastActivityDate="2010-10-08T13:55:44.913" Title="How to prevent deep indentations?" Tags="&lt;code-quality&gt;&lt;indentation&gt;" AnswerCount="7" CommentCount="4" FavoriteCount="1" />
  <row Id="2205" PostTypeId="2" ParentId="35" CreationDate="2010-09-09T21:23:02.433" Score="30" ViewCount="" Body="&lt;p&gt;A mechanical engineer, a chemical engineer and a programmer are driving down a steep hill when the brakes fail. They manage to control the car as it careers down the hill at great speed then pull over once it rolls to a stop, then start discussing the reason for the failure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The mechanical engineer says &quot;Friction. The brake pads are worn and aren't generating enough friction on the disks to slow the wheels.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The chemical engineer says &quot;Pressure. The hydraulics linking the brake pedal to the brakes doesn't have enough fluid.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The programmer says &quot;Let's drive up to the top of the hill and see if it does it again!&quot;&lt;/p&gt;&#xA;" OwnerUserId="516" LastActivityDate="2010-09-09T21:23:02.433" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="5" />
  <row Id="2206" PostTypeId="1" CreationDate="2010-09-09T21:25:46.337" Score="1" ViewCount="383" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/272/when-someone-asks-you-what-you-do-what-do-you-say-e-g-programmer-developer-c&quot;&gt;When someone asks you what you do, what do you say (e.g. programmer, developer, code monkey)?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;My degree was in Software Engineering and that's what I usually call my job. To me a programmer just writes code, whereas a software engineer deals with the whole lifecycle of a product.&lt;/p&gt;&#xA;" OwnerUserId="516" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-02-04T00:07:56.913" LastActivityDate="2011-02-04T00:07:56.913" ClosedDate="2010-09-12T14:20:47.497" Title="Do you call yourself a programmer, a software engineer or something else?" Tags="&lt;experience&gt;&lt;job-definition&gt;&lt;job-title&gt;" AnswerCount="8" CommentCount="2" />
  <row Id="2207" PostTypeId="2" ParentId="2192" CreationDate="2010-09-09T21:27:30.623" Score="15" ViewCount="" Body="&lt;p&gt;Any attempt to follow a process that is not suited to the task at hand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This can be all sorts of things, but common ones I see include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;testing methodologies that do not fit the code being tested&lt;/li&gt;&#xA;&lt;li&gt;processes that are dramatically more agile or traditional than the deliverable(s) warrant&lt;/li&gt;&#xA;&lt;li&gt;guidelines that are meant for a different toolset than the selected toolset&lt;/li&gt;&#xA;&lt;li&gt;design principals that are out of scale with the project's needs&lt;/li&gt;&#xA;&lt;li&gt;using a toolset that is not suited to the task&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;All of these things can be immensely worthwhile on some projects or in some situations, but some organizations try to do everything one way and that leads to poor fit on other projects which often is productivity death.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-09T21:27:30.623" CommunityOwnedDate="2011-01-05T06:12:52.770" />
  <row Id="2208" PostTypeId="2" ParentId="2204" CreationDate="2010-09-09T21:28:12.210" Score="13" ViewCount="" Body="&lt;p&gt;The best thing you can do is extract methods:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int Step1(int state)&#xA;{&#xA;    if (state == 100)&#xA;    {&#xA;        return Step2(state);&#xA;    }&#xA;    else&#xA;    {&#xA;        return Step3(state);&#xA;    }&#xA;}&#xA;&#xA;int Step2(int state)&#xA;{&#xA;    if (state != 100)&#xA;    {&#xA;        throw new InvalidStateException(2, state);&#xA;    }&#xA;&#xA;    // ....&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-09T21:28:12.210" CommentCount="1" />
  <row Id="2209" PostTypeId="2" ParentId="2206" CreationDate="2010-09-09T21:29:33.943" Score="0" ViewCount="" Body="&lt;p&gt;My job title is Software Designer and that's what I call myself. Since I do pretty much everything, I think it fits me well.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-09T21:29:33.943" CommentCount="2" />
  <row Id="2210" PostTypeId="2" ParentId="1166" CreationDate="2010-09-09T21:30:08.607" Score="13" ViewCount="" Body="&lt;p&gt;I used to work for a company that made broadcast equipment for TV stations. When we'd visit a station there were normally two of us - a sales guy in a suit and an engineer in jeans and T-shirt. The main reason was that the engineer would usually end up crawling around in a dusty wiring duct while the sales guy sat in a meeting room, but I found that when we arrived the sales guy would immediately go off with other people wearing suits and I would be greeted by engineers wearing jeans and T-shirts. If I'd worn a suit, or even smart casual, the engineers wouldn't have taken me seriously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically I think that jeans and T-shirt are as much a uniform for engineers as suits are for sales guys.&lt;/p&gt;&#xA;" OwnerUserId="516" LastActivityDate="2010-09-09T21:30:08.607" CommunityOwnedDate="2011-01-30T18:03:58.527" />
  <row Id="2211" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T21:30:29.027" Score="25" ViewCount="" Body="&lt;p&gt;There must be an open source program for my business. Can't you just download it and tweak to my requirements.&lt;/p&gt;&#xA;" OwnerUserId="919" LastActivityDate="2010-09-09T21:30:29.027" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="5" />
  <row Id="2213" PostTypeId="2" ParentId="2206" CreationDate="2010-09-09T21:33:36.010" Score="2" ViewCount="" Body="&lt;p&gt;I just call myself a programmer.  I'm sure off in corporate cubicle-world I'd be a chief architect or IT engineer or somesuch.  But titles have never been important to me, and I dont live in that world thank goodness.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-09T21:33:36.010" />
  <row Id="2214" PostTypeId="1" CreationDate="2010-09-09T21:35:06.527" Score="8" ViewCount="435" Body="&lt;p&gt;You have written a part of your project of which you are happy that it is done!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How would you celebrate such an event?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-05T23:02:14.237" LastActivityDate="2011-03-31T13:52:45.510" CommunityOwnedDate="2011-03-31T09:31:23.023" Title="How do you celebrate when you reach a milestone in your project?" Tags="&lt;project&gt;&lt;celebration&gt;" AnswerCount="17" CommentCount="3" FavoriteCount="3" />
  <row Id="2217" PostTypeId="2" ParentId="2206" CreationDate="2010-09-09T21:38:01.660" Score="1" ViewCount="" Body="&lt;p&gt;For the moment, I call myself a student. :-)&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-09T21:38:01.660" />
  <row Id="2218" PostTypeId="2" ParentId="2206" CreationDate="2010-09-09T21:38:58.810" Score="0" ViewCount="" Body="&lt;p&gt;The title that the company gave me is Software Developer. I also got my degree in Software Engineering, so I call myself Software Engineer or Software Developer.&lt;/p&gt;&#xA;" OwnerUserId="824" LastActivityDate="2010-09-09T21:38:58.810" CommentCount="2" />
  <row Id="2219" PostTypeId="2" ParentId="2124" CreationDate="2010-09-09T21:38:59.113" Score="3" ViewCount="" Body="&lt;p&gt;No, but neither is anything else...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Agile has places where is fits very well, and some where it fits terribly.  The article mentions embedded development, but I would venture to add driver and security development in many cases as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are making something modular that fits well into the gang of four version of OO then there is a good chance Agile makes sense.  If you are not, then your results may vary.  If you are writing something functional and monolithic you will probably not be enjoying your agile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO you can make the argument that process [x] shines at [y] but stumbles on [z] for any development process.  They all have their strengths and weaknesses.  To do any of them well you need to be able to realize when it is appropriate to make exceptions to the process. &lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-09T21:38:59.113" CommentCount="2" />
  <row Id="2220" PostTypeId="2" ParentId="1166" CreationDate="2010-09-09T21:39:13.980" Score="5" ViewCount="" Body="&lt;p&gt;I think professional dressing for a programmer &lt;strong&gt;is&lt;/strong&gt; t-shirt and jeans... So I think that's professional enough. We have no dress code whatsoever and in Finland the dress code in general tends to be more casual than in the States. I've heard that in some companies they require business casual or even a suit for customer meetings, but that seems unnecessary to me in most cases.&lt;br&gt;&#xA;However, I have to admit that it might be nice to dress in fancy clothes once in a while.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-09T21:39:13.980" CommunityOwnedDate="2011-01-30T18:03:58.527" />
  <row Id="2222" PostTypeId="2" ParentId="1166" CreationDate="2010-09-09T21:42:12.267" Score="0" ViewCount="" Body="&lt;p&gt;Personally, I prefer to let my work speak for itself.  If a person needs to impress with dress, that tells me they cant impress with deed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once, when working for a previous company, we had to dress up for some visiting customers.  When one of the customers came down to the development area and saw all of us dressed up, he said to me... &quot;never trust a programmer in a tie&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really dont see myself taking a job anywhere that thought so little of my judgement that they wanted to dictate what I wore.  Suits, ties, cuff links all look great, but in the end thats not going to get your server back up or get your software out the door.    &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-09T21:42:12.267" CommunityOwnedDate="2011-01-30T18:03:58.527" CommentCount="1" />
  <row Id="2223" PostTypeId="1" CreationDate="2010-09-09T21:42:36.713" Score="3" ViewCount="313" Body="&lt;p&gt;&lt;a href=&quot;http://bathroom.mit.edu/&quot; rel=&quot;nofollow&quot;&gt;Ramdom Hall Bathroom Server&lt;/a&gt; helps MIT student to know when their favorite toilet is available...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What awesome project that seems totally stupid from a non-programmers view do you really like?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:03:42.230" LastActivityDate="2010-09-18T21:03:42.230" ClosedDate="2011-01-17T17:16:36.677" Title="What's the most awesome programming project you have seen?" Tags="&lt;project&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="1" />
  <row Id="2224" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T21:44:39.120" Score="4" ViewCount="" Body="&lt;p&gt;I've been working with a web system for a while where all parameters passed had to be named P1, P2, P3 etc. No chance in hell to know what they where for without extensive documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also - although not strictly a coding standard - in the same system, every single file was to be named xyz0001.ext, xyz0002.ext, xyz0003.ext, etc - where xyz was the code for the application in itself.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-09T21:44:39.120" CommunityOwnedDate="2010-09-09T21:44:39.120" />
  <row Id="2225" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T21:45:49.017" Score="2" ViewCount="" Body="&lt;p&gt;All output in a PHP script must be echoed line by line.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?php&#xA;echo &quot;&amp;lt;div id=\&quot;foo\&quot;&amp;gt;&quot;;&#xA;echo &quot;&amp;lt;h1&amp;gt;&quot; . $title . &quot;&amp;lt;/h1&amp;gt;&quot;;&#xA;echo paragraphs($body); // just an example&#xA;echo &quot;&amp;lt;/div&amp;gt;&quot;;&#xA;?&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(Disclaimer: I didn't have to follow it, but a team I worked with did.)&lt;/p&gt;&#xA;" OwnerUserId="927" LastActivityDate="2010-09-09T21:45:49.017" CommunityOwnedDate="2010-09-09T21:45:49.017" />
  <row Id="2226" PostTypeId="1" CreationDate="2010-09-09T21:47:31.020" Score="12" ViewCount="376" Body="&lt;p&gt;In &lt;a href=&quot;http://programmers.stackexchange.com/questions/361/ive-graduated-with-a-computer-science-degree-but-i-dont-feel-like-im-even-clos&quot;&gt;an earlier question&lt;/a&gt;, I asked for career advice for new software engineers who did well before and during college.  But what about people who weren't fortunate enough to go to MIT or Yale, for whatever reason?  What if you went to what Joel Spolsky calls &lt;a href=&quot;http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html&quot; rel=&quot;nofollow&quot;&gt;a JavaSchool&lt;/a&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What can/should JavaSchool alumni do to develop their skills and make up for the things they missed in college?  (Or, was Joel wrong about those schools being disadvantageous?)&lt;/p&gt;&#xA;" OwnerUserId="94" LastEditorUserId="6" LastEditorDisplayName="" LastEditDate="2010-09-17T00:17:30.653" LastActivityDate="2010-09-17T00:17:30.653" Title="Help, I went to a JavaSchool!" Tags="&lt;school&gt;&lt;career&gt;&lt;skills&gt;" AnswerCount="5" FavoriteCount="3" />
  <row Id="2227" PostTypeId="1" CreationDate="2010-09-09T21:47:58.700" Score="5" ViewCount="290" Body="&lt;p&gt;What things should a developer learn that are handy regardless of the language the developer uses?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:04:53.803" LastActivityDate="2010-10-18T16:28:01.993" Title="Besides languages, what other technologies/techniques should a developer learn?" Tags="&lt;learning&gt;" AnswerCount="12" CommentCount="5" FavoriteCount="1" />
  <row Id="2228" PostTypeId="2" ParentId="2214" CreationDate="2010-09-09T21:49:54.047" Score="34" ViewCount="" Body="&lt;p&gt;Finding my bed and sleeping.&lt;/p&gt;&#xA;" OwnerUserId="928" LastActivityDate="2010-09-09T21:49:54.047" CommunityOwnedDate="2011-03-31T09:31:23.023" CommentCount="3" />
  <row Id="2229" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T21:49:59.067" Score="11" ViewCount="" Body="&lt;p&gt;This, except I try to autocomplete long words:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/fRGG7.png&quot; alt=&quot;Somewhere in the world, my actual grandmothers are reading this and angrily exclaiming that I never write even malformed thank-you notes.  DEAR GRANDMOMS: I AM SORRY! YOU ARE WONDERFUL PEOPLE AND THANK YOU FOR EVERYTHING.  LOVE reddit.com RANDALL.&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-09T21:49:59.067" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="1" />
  <row Id="2230" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T21:50:03.017" Score="8" ViewCount="" Body="&lt;p&gt;The worst coding standard I've ever participated in is code bases which had none at all.  I'd rather follow a coding standard I completely disagree with than work in code bases where there is none at all.  It makes it that much harder to learn new parts of the code base.  &lt;/p&gt;&#xA;" OwnerUserId="278" LastActivityDate="2010-09-09T21:50:03.017" CommunityOwnedDate="2010-09-09T21:50:03.017" />
  <row Id="2231" PostTypeId="2" ParentId="2192" CreationDate="2010-09-09T21:51:48.070" Score="24" ViewCount="" Body="&lt;p&gt;StackOverflow, programmers.stackexchange.com, etc. :)&lt;/p&gt;&#xA;" OwnerUserId="928" LastActivityDate="2010-09-09T21:51:48.070" CommunityOwnedDate="2011-01-05T06:12:52.770" CommentCount="4" />
  <row Id="2233" PostTypeId="1" CreationDate="2010-09-09T21:58:56.297" Score="13" ViewCount="1545" Body="&lt;p&gt;Apart from computer/laptop/keyboard/mouse, what are essential or useful things for a programmer's desk?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:32:23.007" LastActivityDate="2010-10-06T15:56:23.823" CommunityOwnedDate="2010-09-17T12:07:03.760" ClosedDate="2011-05-05T04:47:21.693" Title="What things are essential on a programmer's desk?" Tags="&lt;productivity&gt;&lt;work-environment&gt;&lt;desk&gt;&lt;physical&gt;" AnswerCount="37" CommentCount="3" FavoriteCount="6" />
  <row Id="2235" PostTypeId="1" CreationDate="2010-09-09T22:01:43.640" Score="8" ViewCount="350" Body="&lt;p&gt;Sometimes we want to be more efficient and productive, what have you written to reach this?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:05:14.053" LastActivityDate="2011-01-07T20:23:26.047" Title="Have you ever written anything that made you a lot more efficient (or want to)?" Tags="&lt;productivity&gt;&lt;project&gt;" AnswerCount="14" FavoriteCount="1" />
  <row Id="2236" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T22:01:59.817" Score="7" ViewCount="" Body="&lt;p&gt;This more an example of how not having coding standards can hurt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A contractor working at a large bank insisted that following the standards were the best ever. The application was written in dBase/Clipper which he was the sole developer for and of course he came up with the standard.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Everything is in upper case. I mean everything, including the rare comments he made.&lt;/li&gt;&#xA;&lt;li&gt;No indentation.&lt;/li&gt;&#xA;&lt;li&gt;Variable naming was something along the lines of APRGNAME. A = scope of variable, eg P for public, PRG = first three characters of the source file that created the variable, NAME = variable name in the remaining 6 characters that dBase/Clipper allowed.&lt;/li&gt;&#xA;&lt;li&gt;The first 4 and last 4 lines of the source code were 80 * long. Why? So he could hear the dot matrix printer starting and finishing the printing of a file. Memory is the entire program was printed via the mainframe weekly, 20,000 pages.&lt;/li&gt;&#xA;&lt;li&gt;I'm sure there were many more that I've managed to dump from my brain.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I was a very new self-taught programmer at that stage but knew enough not to listen to the mad scientist and get the hell out of there before I asked to take over the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes we told management how bad these practices were but always got the usual &quot;were paying this contractor top dollar he must know what he's talking about&quot;.&lt;/p&gt;&#xA;" OwnerUserId="919" LastActivityDate="2010-09-09T22:01:59.817" CommunityOwnedDate="2010-09-09T22:01:59.817" CommentCount="4" />
  <row Id="2237" PostTypeId="2" ParentId="2226" CreationDate="2010-09-09T22:02:30.703" Score="0" ViewCount="" Body="&lt;p&gt;Well, you can get a job writing software in Java.  So long as you are good at what you do, the school you went to and/or your major isnt terribly relevant past the first job, &lt;em&gt;if even then&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-09T22:02:30.703" />
  <row Id="2239" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T22:04:51.077" Score="2" ViewCount="" Body="&lt;p&gt;I used to say &quot;this is not the same as that.&quot;&#xA;Now, I say &quot;this != that.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When my co-worker is frustrated with a person, I just IM him &quot;I.DropKick(&quot;ThePerson&quot;);&quot;&#xA;Then, he laughs.&lt;/p&gt;&#xA;" OwnerUserId="824" LastActivityDate="2010-09-09T22:04:51.077" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="1" />
  <row Id="2240" PostTypeId="1" CreationDate="2010-09-09T22:04:57.020" Score="10" ViewCount="533" Body="&lt;p&gt;Design patterns are really useful when designing software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What essential sites/books/blogs are good for learning/discovering/searching design patterns?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T16:05:49.233" LastActivityDate="2010-12-23T21:52:58.063" Title="What are good resources for Design Patterns?" Tags="&lt;learning&gt;&lt;books&gt;&lt;websites&gt;&lt;blogs&gt;&lt;design-patterns&gt;" AnswerCount="12" CommentCount="2" FavoriteCount="7" />
  <row Id="2241" PostTypeId="2" ParentId="2204" CreationDate="2010-09-09T22:05:19.787" Score="2" ViewCount="" Body="&lt;p&gt;Deep indentation is &lt;em&gt;usually&lt;/em&gt; not a problem if every function/method in your program does one and only one thing. Occasionally, it &lt;em&gt;might&lt;/em&gt; be necessary to nest conditionals a few levels deep, but I can honestly say I've only written deeply indented code a handful of times in 12+ years of coding.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-09T22:05:19.787" />
  <row Id="2243" PostTypeId="2" ParentId="2206" CreationDate="2010-09-09T22:08:18.543" Score="1" ViewCount="" Body="&lt;p&gt;Coder, Destroyer of Bugs, Master of /dev/null, Great Being that is called Skizz, Prince of the Project, Father of Awesome Code, Spawner of Processes and Lord of all Design&lt;sup&gt;1&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Nod to TP and NG, from GO.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="914" LastActivityDate="2010-09-09T22:08:18.543" />
  <row Id="2244" PostTypeId="2" ParentId="1338" CreationDate="2010-09-09T22:08:38.230" Score="0" ViewCount="" Body="&lt;p&gt;At one company we had to write technical documenation that explained how we will write a functionality. It fast got out-dated since you wont think about everything when youre programming in UML.&lt;/p&gt;&#xA;" OwnerUserId="929" LastActivityDate="2010-09-09T22:08:38.230" CommunityOwnedDate="2010-09-09T22:08:38.230" />
  <row Id="2246" PostTypeId="2" ParentId="2240" CreationDate="2010-09-09T22:11:40.847" Score="0" ViewCount="" Body="&lt;p&gt;I'm not sure if this is what you're thinking about, but I find lots of clever development stuff on &lt;a href=&quot;http://forrst.com/&quot; rel=&quot;nofollow&quot;&gt;Forrst&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="265" LastActivityDate="2010-09-09T22:11:40.847" />
  <row Id="2247" PostTypeId="1" CreationDate="2010-09-09T22:12:39.330" Score="5" ViewCount="261" Body="&lt;p&gt;How can I track that I'm developing software more or less productive than the previous days? &lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:05:59.730" LastActivityDate="2010-10-13T06:52:27.227" Title="How can I track programming productivity on a daily basis?" Tags="&lt;productivity&gt;&lt;tracking&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="3" />
  <row Id="2248" PostTypeId="2" ParentId="2233" CreationDate="2010-09-09T22:12:46.083" Score="1" ViewCount="" Body="&lt;p&gt;Hand gripper, something to do while deep in thought.&lt;/p&gt;&#xA;" OwnerUserId="905" LastActivityDate="2010-09-09T22:12:46.083" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="2249" PostTypeId="2" ParentId="2233" CreationDate="2010-09-09T22:15:11.553" Score="5" ViewCount="" Body="&lt;p&gt;Somewhere for a cup of tea to go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally, I like to keep my desk free of clutter. I have a PC on the desk, it can take notes, act as a calculator and many other things as well. At work there's just a log book and some hardware I'm working with. My home office is a it too messy for my liking at the moment.&lt;/p&gt;&#xA;" OwnerUserId="914" LastActivityDate="2010-09-09T22:15:11.553" CommunityOwnedDate="2010-09-17T12:07:03.760" CommentCount="1" />
  <row Id="2250" PostTypeId="2" ParentId="2233" CreationDate="2010-09-09T22:17:00.977" Score="0" ViewCount="" Body="&lt;p&gt;At work: snacks, coffee/drink, lots of programming books, a box of tissue, a plant, and a desk lamp.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At home: all of the above and the TV remote control.&lt;/p&gt;&#xA;" OwnerUserId="824" LastActivityDate="2010-09-09T22:17:00.977" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="2251" PostTypeId="2" ParentId="2233" CreationDate="2010-09-09T22:17:53.347" Score="3" ViewCount="" Body="&lt;p&gt;A Calculator can be nice sometimes.  For calculations when you don't want to fire it up on your PC.&lt;/p&gt;&#xA;" OwnerUserId="71" LastActivityDate="2010-09-09T22:17:53.347" CommunityOwnedDate="2010-09-17T12:07:03.760" CommentCount="3" />
  <row Id="2252" PostTypeId="1" CreationDate="2010-09-09T22:18:07.527" Score="14" ViewCount="961" Body="&lt;p&gt;I've been asked this in a few interviews. And it always catches me off guard.My professional and academic background are already in the resumé, which the interviewer has obviously looked at. What more to tell him/her? Should I start with my hobbies? I like gardening, or looking at NSFW pictures on reddit in my free time?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What and how do you answer to this specific question? Do you have a prepared answer for it? Am I wrong if I think this question is a bit silly?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt; There have been a lot of great answers to this question. I'm in pickle which to choose as the 'correct' answer, because most of them are very insightful. I found a great writing on this subject matter. It's a bit crazy for my taste, but it's interesting:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://sebastien-arbogast.com/2010/10/05/how-to-introduce-yourself/&quot; rel=&quot;nofollow&quot;&gt;How To Introduce Yourself… I Mean Practically&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="932" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-24T13:48:32.980" LastActivityDate="2010-11-24T13:48:32.980" Title="How do you respond to &quot;Tell me a little bit about yourself.&quot; question in interviews?" Tags="&lt;interview-questions&gt;" AnswerCount="8" CommentCount="5" FavoriteCount="6" />
  <row Id="2253" PostTypeId="2" ParentId="2233" CreationDate="2010-09-09T22:18:54.500" Score="31" ViewCount="" Body="&lt;p&gt;Three monitors :)&lt;/p&gt;&#xA;" OwnerUserId="71" LastActivityDate="2010-09-09T22:18:54.500" CommunityOwnedDate="2010-09-17T12:07:03.760" CommentCount="9" />
  <row Id="2254" PostTypeId="1" CreationDate="2010-09-09T22:22:39.360" Score="29" ViewCount="1655" Body="&lt;p&gt;Programmers tend to type a lot of code, bashing a lot of shortcuts and a lot of other things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What keyboards are good for programming?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2011-01-17T17:05:11.433" LastActivityDate="2011-01-17T21:43:24.260" CommunityOwnedDate="2011-01-17T21:43:24.260" Title="What are good keyboards for programming?" Tags="&lt;productivity&gt;&lt;keyboard&gt;" AnswerCount="28" CommentCount="3" FavoriteCount="4" />
  <row Id="2255" PostTypeId="2" ParentId="1985" CreationDate="2010-09-09T22:22:46.473" Score="4" ViewCount="" Body="&lt;p&gt;My standard explanation goes something like this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;People think computers are really&#xA;  smart, but they aren't.  A computer's&#xA;  a box with an IQ of 5, that just&#xA;  happens to be very good at crunching&#xA;  numbers very quickly.  But it doesn't&#xA;  know how to think or how to reason. &#xA;  All it does is exactly what the&#xA;  program tells it to, without regards&#xA;  for the consequences of its actions. &#xA;  If it had legs, you could program it&#xA;  to jump out the nearest window, and it&#xA;  would do exactly that.  Then you'd&#xA;  &lt;em&gt;really&lt;/em&gt; see the system crash!&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;With that in mind, programming is&#xA;  basically about figuring out how to&#xA;  represent real-world problems as&#xA;  numbers for a computer to crunch, and&#xA;  how to explain the issue to a box with&#xA;  an IQ of 5 clearly enough that it will&#xA;  do what you want done.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-09T22:22:46.473" />
  <row Id="2256" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T22:23:27.503" Score="2" ViewCount="" Body="&lt;p&gt;My friend and I took a programming languages class together where we learned Scheme. In Scheme, you can call boolean functions like string? &quot;cat&quot; to return true, it is a string.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It carried over into our speech patterns. ? is pronounced &quot;Huh&quot; so we look at each other and go &quot;Hungry Huh&quot; It's taken our friends several months to figure either of us out.&lt;/p&gt;&#xA;" OwnerUserId="937" LastActivityDate="2010-09-09T22:23:27.503" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="1" />
  <row Id="2257" PostTypeId="2" ParentId="264" CreationDate="2010-09-09T22:23:45.740" Score="3" ViewCount="" Body="&lt;p&gt;Of course, Microsoft in Redmond, WA&lt;/p&gt;&#xA;" OwnerUserId="824" LastActivityDate="2010-09-09T22:23:45.740" />
  <row Id="2258" PostTypeId="2" ParentId="1166" CreationDate="2010-09-09T22:23:56.530" Score="2" ViewCount="" Body="&lt;p&gt;I currently cycle to work, at least six miles, often much more. I wear cycling gear - lycra shorts and so on - and carry a change of clothes for work with me. So I wear very casual clothes at work (more or less everyday clothes) that still look OK after being lugged around in my backpack. Footwear is optional for me. I'm the only one in the company to dress this way. Luckily for me I'm good at what I do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dealing face-to-face with customers does involve flying off around the world, so I take a few shirts and smart clothes to go with them when I go.&lt;/p&gt;&#xA;" OwnerUserId="914" LastActivityDate="2010-09-09T22:23:56.530" CommunityOwnedDate="2011-01-30T18:03:58.527" />
  <row Id="2259" PostTypeId="1" CreationDate="2010-09-09T22:26:06.327" Score="4" ViewCount="137" Body="&lt;p&gt;Sometimes, one creates a exploratory prototype and forgets about structure in the directories...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are good tips on dividing the programming files over (several levels of) directories?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-21T09:04:16.513" LastActivityDate="2010-09-21T09:04:16.513" Title="How should I organize programming files into directories?" Tags="&lt;organization&gt;&lt;file-structure&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="2260" PostTypeId="1" CreationDate="2010-09-09T22:26:25.000" Score="8" ViewCount="819" Body="&lt;p&gt;I am fed up with the QWERTY keyboard layout for programming. I am looking for a more convenient keymap. I tried learning Dvorak. I see there are several versions of Dvorak; which one should I use?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I heard about Bepo. Is it another keymap altogether, or just a version of Dvorak?&lt;/p&gt;&#xA;" OwnerUserId="938" LastEditorUserId="9049" LastEditorDisplayName="" LastEditDate="2011-03-24T19:31:24.290" LastActivityDate="2011-03-24T21:24:48.183" Title="Which keymap for programmers? Dvorak?" Tags="&lt;self-improvement&gt;&lt;keyboard-layout&gt;" AnswerCount="13" CommentCount="3" FavoriteCount="0" />
  <row Id="2261" PostTypeId="1" CreationDate="2010-09-09T22:27:58.273" Score="5" ViewCount="106" Body="&lt;p&gt;Sometimes, you can learn a lot from just looking at a project rather than looking around for advice...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are good state-of-the-art projects out there that are very good examples to learn from?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:06:22.757" LastActivityDate="2010-09-18T21:06:22.757" Title="Out of all the projects out there, what is a good example to learn from?" Tags="&lt;learning&gt;&lt;open-source&gt;" AnswerCount="2" CommentCount="4" FavoriteCount="1" />
  <row Id="2263" PostTypeId="2" ParentId="843" CreationDate="2010-09-09T22:34:26.430" Score="0" ViewCount="" Body="&lt;p&gt;There are always cases where issues are found in prod.  Back to back deploys can make it MUCH more difficult in many cases to determine the actual source of the problems.  Other than that I would deploy as often as everyone is comfortable with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, the client is the boss, if they want it deployed now with no testing that is there option and unless there is something irreversibly dangerous about it that you can explain to them about the change you have little recourse but to document the request, the approval, and make certain you have a way to go back if they don't like the outcome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are not always going to have total process buy-in from the client.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-09T22:34:26.430" />
  <row Id="2264" PostTypeId="1" CreationDate="2010-09-09T22:35:04.810" Score="5" ViewCount="739" Body="&lt;p&gt;I learned and used Java in college. After graduating, I got a job in C#. Two years after, there are a lot more positions in Java. Would I have a good chance to be hired as a Java programmer? What interview questions would I be asked?&lt;/p&gt;&#xA;" OwnerUserId="824" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T14:10:30.963" LastActivityDate="2010-10-13T03:07:04.200" Title="Would Java programmers hire C# programmers?" Tags="&lt;jobs&gt;&lt;java&gt;&lt;interview-questions&gt;&lt;hiring&gt;&lt;c#&gt;" AnswerCount="8" CommentCount="13" FavoriteCount="1" />
  <row Id="2265" PostTypeId="2" ParentId="2233" CreationDate="2010-09-09T22:37:06.227" Score="23" ViewCount="" Body="&lt;p&gt;Pencils and papers.&#xA;Useful for :&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Doodles&lt;/li&gt;&#xA;&lt;li&gt;Power outage&lt;/li&gt;&#xA;&lt;li&gt;Critical error messages and others stuff when the interface is locked.&lt;/li&gt;&#xA;&lt;li&gt;Notes&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="19" LastEditorUserId="19" LastEditorDisplayName="" LastEditDate="2010-09-13T12:10:04.603" LastActivityDate="2010-09-13T12:10:04.603" CommunityOwnedDate="2010-09-17T12:07:03.760" CommentCount="5" />
  <row Id="2266" PostTypeId="2" ParentId="2254" CreationDate="2010-09-09T22:37:38.413" Score="17" ViewCount="" Body="&lt;p&gt;I use the Microsoft Natural 4000, an ergonomic split-style keyboard. With some judicious emacs key remappings, it's the best keyboard by far I've ever used. I use it at &lt;em&gt;both&lt;/em&gt; home and work, and recommend it to everyone who asks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My writes and hands feel amazingly comfortable in it. There's this faux-leather thing that's really nice to rest my hands on, much better than straight-up plastic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not terribly loud, but not terribly quiet. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will say, however, that it does not stand up to sugared tea very well; replacing it after the Tea Incident got me a defective one, which I had replaced. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Several of the keys take a bit more force than they should, in my opinion, and it took me a while to adjust.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-09T22:37:38.413" CommunityOwnedDate="2011-01-17T21:43:24.260" CommentCount="7" />
  <row Id="2267" PostTypeId="1" CreationDate="2010-09-09T22:41:03.067" Score="3" ViewCount="365" Body="&lt;p&gt;Both seem to be great to learn for programming, are there other editors with a less steep learning curve?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:06:32.867" LastActivityDate="2010-10-16T06:24:07.957" Title="Are there alternatives to Vim and Emacs regarding programming?" Tags="&lt;productivity&gt;&lt;text-editor&gt;" AnswerCount="7" CommentCount="1" />
  <row Id="2268" PostTypeId="2" ParentId="1376" CreationDate="2010-09-09T22:41:38.363" Score="2" ViewCount="" Body="&lt;p&gt;Typically I note that it is not reproducible, but leave it open until that batch of testing or iteration is complete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it has not been reproduced by that point it is closed, but can be reopened if it is encountered again. &lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-09T22:41:38.363" />
  <row Id="2270" PostTypeId="2" ParentId="2260" CreationDate="2010-09-09T22:45:16.337" Score="11" ViewCount="" Body="&lt;p&gt;Most programmers I know use QWERTY. I generally don't see people use Dvorak or other keymaps unless they want be contrarian. Consider that 99.999999% (a scientific estimate) of keyboards out there are QWERTY, and it's a non-trivial learning curve/adjustment to switch between keymaps, and you'll find QWERTY, for its faults, is the only sensible option for programming.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-09T22:45:16.337" CommentCount="4" />
  <row Id="2271" PostTypeId="1" CreationDate="2010-09-09T22:46:00.390" Score="9" ViewCount="731" Body="&lt;p&gt;And if it's an acronym, what does it stand for?&lt;/p&gt;&#xA;" OwnerUserId="317" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T14:09:11.823" LastActivityDate="2010-10-25T11:42:33.777" Title="Why do so many people write JAVA instead of Java?" Tags="&lt;programming-languages&gt;&lt;java&gt;" AnswerCount="10" CommentCount="13" FavoriteCount="1" />
  <row Id="2273" PostTypeId="2" ParentId="2271" CreationDate="2010-09-09T22:48:21.197" Score="7" ViewCount="" Body="&lt;p&gt;You see the same thing with Mac vs. MAC: people consider short computer-related words to be tags and tend to capitalize them (WIN, PC, MAC, JAVA, etc.). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I had to speculate, it stems from retail boxes using shortened capitalized tags to denote system compatibility. This is done because capitalized letters stand out when a customer looks at software on a shelf. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might make sense based on the typeface used on printing materials, but an unintended byproduct of that usage is that people associate the tag with the actual name of the product.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-09T22:48:21.197" CommentCount="6" />
  <row Id="2274" PostTypeId="2" ParentId="2271" CreationDate="2010-09-09T22:48:33.037" Score="10" ViewCount="" Body="&lt;p&gt;Because it's only 4 characters people probably confuse it with an acronym. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But someone could say JAVA and still not think it's an acronym.  Take a look at .NET, it is all capital but it's not an acronym.   The name of something is allowed to have any capitalization its creator wants it to have.&lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-09T23:19:22.680" LastActivityDate="2010-09-09T23:19:22.680" />
  <row Id="2275" PostTypeId="2" ParentId="2254" CreationDate="2010-09-09T22:51:33.017" Score="10" ViewCount="" Body="&lt;p&gt;I was using the Microsoft Natural Ergonomic Keyboard 4000. I was extremely uncomfortable using it. I could not reach the keys on the top without accidentally pressing other keys when I did not lift my hands off the wrist-rest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/TpEwL.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was so happy when I found out that my company has the super basic keyboard. Immediately, I switched to it and have been using it. I can type and code way faster.&#xA;&lt;img src=&quot;http://pointone.com.pk/store/images/dell_keyboard.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="824" LastActivityDate="2010-09-09T22:51:33.017" CommunityOwnedDate="2011-01-17T21:43:24.260" CommentCount="6" />
  <row Id="2276" PostTypeId="2" ParentId="1058" CreationDate="2010-09-09T22:58:26.520" Score="2" ViewCount="" Body="&lt;p&gt;There is a lot of good stuff in EntLib, but there are reasons those things are not in the full framework.  The logging stuff is excellent, but the data parts have been surpassed by later additions to full framework in my opinion.  I have also found that some of the blocks do not fit very well in certain situations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As mentioned the overhead is significant in some cases as well and the config can be quite confusing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of my apps have some degree of performance constraints, so I tend to use the EntLib stuff as an example and write my own features more often than using the EntLib things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Used this way it has been an excellent learning tool.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-09T22:58:26.520" />
  <row Id="2277" PostTypeId="2" ParentId="2226" CreationDate="2010-09-09T22:58:53.280" Score="6" ViewCount="" Body="&lt;p&gt;Despite the claims made by Joel in that article- and he concedes the point himself- a lot of the subject areas that may be missed by a &quot;JavaSchool&quot; are not necessary of many jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I attended something that I suppose &lt;a href=&quot;http://www.neumont.edu&quot; rel=&quot;nofollow&quot;&gt;resembles a JavaSchool&lt;/a&gt; in that we spend most of our time focusing on high level languages like C# and Java, but that doesn't change the fact that &quot;Algorithms &amp;amp; Data Structures&quot; is still part of the required class list- not to mention all of the other theory-oriented classes. Granted not all &quot;JavaSchools&quot; are the same, but that isn't the point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion, more important than an understanding of some of the grittier development topics is being able to problem solve effectively when unique challenges arise. As software engineers we do the vast majority of our learning on the job and as such, two of the biggest aspects of our job description are being able to problem solve and being able to pick up unfamiliar concepts. If, during an interview, one is unable to make a discernible and logical &lt;strong&gt;attempt&lt;/strong&gt; at solving a problem which is new to them, then their incompatibility for a given position will likely reveal itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, when hiring someone for a position that requires constant exposure to and use of some intricate topic that may be missed by a JavaSchool, it is often the logical choice to go with someone who has a prior understanding, but &lt;strong&gt;lack of experience shouldn't &lt;em&gt;always&lt;/em&gt; preclude job eligibility&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;More than likely, the 50 year old Java guy at your company that has been there for as long as anyone can remember did not have any understanding of Java until his job (current or previous) asked him to learn it- and he did so. Strictly speaking, it's bad practice to fire &quot;the old guy&quot; so that a younger and more &quot;up-to-date&quot; candidate can take his place; that being said, if the job description for any employee young or old changes, it is the responsibility of that employee to get caught up or find a new job. Just because an individual (especially a programmer with past experience) doesn't understand some concept, doesn't mean they are unwilling or incapable of learning it. In fact, if they are unwilling to learn then they probably do not belong at &lt;em&gt;any job&lt;/em&gt;- much less yours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's fair to say that some &quot;JavaSchools&quot; are better than others, and that fact should certainly be considered when selecting a candidate for a position, but there are a lot more important personal traits than just where someone went to school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;It is our aptitude to tackle a problem and find a solution that defines us as engineers, most everything else is secondary.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="13" LastEditorUserId="13" LastEditorDisplayName="" LastEditDate="2010-09-09T23:04:11.010" LastActivityDate="2010-09-09T23:04:11.010" CommentCount="1" />
  <row Id="2278" PostTypeId="2" ParentId="502" CreationDate="2010-09-09T23:06:51.987" Score="3" ViewCount="" Body="&lt;p&gt;I'll often try to write a Tetris clone.  It touches on a bunch of things, including performance, UI, and synchronization/timers/etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any language that can't make that simple is just a toy.&lt;/p&gt;&#xA;" OwnerUserId="900" LastActivityDate="2010-09-09T23:06:51.987" CommunityOwnedDate="2010-09-09T23:06:51.987" CommentCount="2" />
  <row Id="2279" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T23:07:51.250" Score="28" ViewCount="" Body="&lt;p&gt;Probably the most dangerous one I've seen, because it gets accepted so readily, is that being able to write code quickly is good, and therefore the more quickly you can code [insert feature here] in a given language, the better the language is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a serious example of premature optimization, since far more work goes into &lt;em&gt;maintaining&lt;/em&gt; code than creating it.  This means that it's much more important to write code that's easy to read, comprehend and debug than code that's easy to write quickly, and facilitating easy-to-read code is a much more useful measurement of language quality.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-09T23:07:51.250" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="10" />
  <row Id="2280" PostTypeId="2" ParentId="2264" CreationDate="2010-09-09T23:10:00.577" Score="12" ViewCount="" Body="&lt;p&gt;By and large, C# and Java are interchangeable to the point that a Java engineer could &lt;em&gt;make it&lt;/em&gt; with C# and vice-versa. Obviously, there are some unique and important differences between the two, but at the syntax-level they are nearly identical; transitioning from one to the other is relatively painless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So long as your resume highlights the fact that you do have Java experience- even if it was in school- you shouldn't have much trouble switching from a C# position to a Java position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most companies prize real world development experience over experience in a specific language, so that alone will likely get your resume at least looked at it. The fact that you've spent considerable time working with Java in school is a bonus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only problem area I see is if the job in question asks for experience with specific Java technologies. Many of the companies that use Java stick to some specific set of tools or frameworks in their projects (think Spring, JSP EL, etc...). If you keep an eye out for these specific requirements on job descriptions you shouldn't have too much difficulty finding a Java position that suits you.&lt;/p&gt;&#xA;" OwnerUserId="13" LastEditorUserId="13" LastEditorDisplayName="" LastEditDate="2010-10-11T23:20:34.837" LastActivityDate="2010-10-11T23:20:34.837" CommentCount="5" />
  <row Id="2281" PostTypeId="2" ParentId="2267" CreationDate="2010-09-09T23:10:10.107" Score="7" ViewCount="" Body="&lt;p&gt;Sure, Eclipse/Visual Studio/&amp;lt;Insert IDE of Choice Here&amp;gt; are great for programming in languages that they support. The problem is, they all &lt;em&gt;suck&lt;/em&gt; as editors. Both Vim and Emacs have a steepish learning curve, but it only took me a week to be as productive in Vim as I was in Notepad++. In three weeks, I was slightly more productive, and two months or so later, I was &lt;em&gt;waaay&lt;/em&gt; more productive. Now (about 8 months later), I'm about twice as productive with Vim as I was with Notepad++, at least when writing or editing code. &lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-09T23:10:10.107" CommentCount="2" />
  <row Id="2282" PostTypeId="2" ParentId="1599" CreationDate="2010-09-09T23:11:01.960" Score="13" ViewCount="" Body="&lt;p&gt;Sometimes I count things starting from zero:&lt;br&gt;&#xA;&quot;How many beers are left?&quot;&lt;br&gt;&#xA;&quot;Zero, one, two, three... We have four left!&quot;&lt;/p&gt;&#xA;" OwnerUserId="247" LastActivityDate="2010-09-09T23:11:01.960" CommunityOwnedDate="2010-09-10T10:20:25.267" CommentCount="3" />
  <row Id="2283" PostTypeId="2" ParentId="2252" CreationDate="2010-09-09T23:11:34.737" Score="17" ViewCount="" Body="&lt;p&gt;Don't assume the interviewer knows your resumé inside out. Often, they'll be interviewing several people for the position and may have just had a cursory glance over your resumé before starting the interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that in mind, and assuming this question comes early on in the interview, use this question as an opportunity to give a brief history of your career and why you are applying for the job, as well as what your stand-out skills or attributes are. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your answer can effectively steer the course of the interview, giving the interviewer some &quot;jumping off&quot; points that could change what questions you get asked next. Focusing on your strengths with this answer means that it will be more natural to talk about what makes you great in answers to subsequent questions and not as something you have to try to shoehorn in to some other answer.&lt;/p&gt;&#xA;" OwnerUserId="38" LastEditorUserId="38" LastEditorDisplayName="" LastEditDate="2010-09-10T00:00:59.367" LastActivityDate="2010-09-10T00:00:59.367" CommentCount="1" />
  <row Id="2284" PostTypeId="1" CreationDate="2010-09-09T23:12:44.797" Score="6" ViewCount="563" Body="&lt;p&gt;Maybe you must win a programming duel where the fate of the earth lies in the balance. Maybe you are the only person who can save us from the Year 2038 problem. Maybe the father of your true love will only allow you to marry his daughter if you can prove yourself. For whatever reason, pretend that this is your mission in life and you must succeed!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How would you go about your task? Answer StackOverflow questions until you have more reputation than Jon Skeet? Perform cutting edge research MIT? Travel the world seeking out and learning from true masters? Working at Google or Microsoft or Facebook on the biggest and most ambitious projects in the world?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: This is a bit of a silly question - I don't expect the answers to be completely serious&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T14:08:04.490" LastActivityDate="2010-10-24T05:33:25.177" ClosedDate="2010-10-24T16:55:09.860" Title="Suppose you had five years to become the best programmer in the world..." Tags="&lt;skills&gt;&lt;great-programmer&gt;" AnswerCount="10" CommentCount="2" FavoriteCount="1" />
  <row Id="2285" PostTypeId="2" ParentId="2252" CreationDate="2010-09-09T23:12:49.883" Score="15" ViewCount="" Body="&lt;p&gt;It isn't a silly question. I've been on both sides of the interview table and I think it is just another way of saying &quot;Give me an executive summary of your resume and work experience.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You shouldn't dread this question. It is so open-ended that you can use it as a launching off point to direct the conversation directly to your strengths and give your pre-prepared elevator speech. You did prepare one, right? =)&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-09T23:12:49.883" />
  <row Id="2286" PostTypeId="2" ParentId="2227" CreationDate="2010-09-09T23:15:18.660" Score="4" ViewCount="" Body="&lt;p&gt;I suggest focusing on getting some specific domain expertise. Accounting, Real Estate, Science, etc. It doesn't matter so much what, just pick something that interests you enough that you will enthusiastically learn and retain it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will make you much more valuable and hire-able than a generic programmer when interviewing at a company that works in that domain.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-09T23:15:18.660" />
  <row Id="2287" PostTypeId="2" ParentId="2267" CreationDate="2010-09-09T23:16:17.530" Score="-1" ViewCount="" Body="&lt;p&gt;yes any text editor will do the job.  maybe some are not as productive or lack some features, but as long as you can load a text file you are good to go.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-09-09T23:16:17.530" />
  <row Id="2288" PostTypeId="2" ParentId="2226" CreationDate="2010-09-09T23:18:19.060" Score="1" ViewCount="" Body="&lt;p&gt;Why not work through a textbook that introduces programming differently from how you learned it?  For example, there are several good, free books that use the functional paradigm.  &lt;a href=&quot;http://www.htdp.org/&quot; rel=&quot;nofollow&quot;&gt;How to Design Programs&lt;/a&gt; is very approachable.  The classic Structure and Interpretation of Computer Programs (http://mitpress.mit.edu/sicp/) is less so, but does provide a profound sense of enlightenment.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I highly recommend watching the first couple of Abelson's SICP lectures for a different perspective on what computer science is.  They're older but have aged very well (http://video.google.com/videoplay?docid=5546836985338782440#).&lt;/p&gt;&#xA;" OwnerUserId="489" LastActivityDate="2010-09-09T23:18:19.060" />
  <row Id="2289" PostTypeId="2" ParentId="2226" CreationDate="2010-09-09T23:18:21.457" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/1711&quot;&gt;&lt;strong&gt;Read&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-09T23:18:21.457" CommentCount="1" />
  <row Id="2290" PostTypeId="2" ParentId="2254" CreationDate="2010-09-09T23:18:23.250" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.keyboardforblondes.com/&quot; rel=&quot;nofollow&quot;&gt;here is one&lt;/a&gt; that should do the trick....&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-09-09T23:18:23.250" CommunityOwnedDate="2011-01-17T21:43:24.260" CommentCount="1" />
  <row Id="2291" PostTypeId="1" CreationDate="2010-09-09T23:22:19.257" Score="10" ViewCount="813" Body="&lt;p&gt;What was the first programming language you learned? Either at home, school or somewhere else...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Please read this:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;This is a community wiki, please only list a language &lt;strong&gt;once&lt;/strong&gt; and underline it with &lt;code&gt;===&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Do not include additional information in the answer unless it counts for most people.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Use upvotes&lt;/strong&gt; to indicate that you learned the language first and feel free to comment on them.&lt;/li&gt;&#xA;&lt;li&gt;If your answer is under the character limit, add extra &lt;code&gt;===&lt;/code&gt; characters.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="666" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2010-09-30T19:06:25.773" LastActivityDate="2010-10-21T15:32:36.540" CommunityOwnedDate="2010-09-09T23:22:19.257" ClosedDate="2010-10-21T17:19:46.073" Title="What was the first programming language you learned?" Tags="&lt;programming-languages&gt;&lt;experience&gt;" AnswerCount="63" CommentCount="3" FavoriteCount="1" />
  <row Id="2292" PostTypeId="2" ParentId="2291" CreationDate="2010-09-09T23:22:37.977" Score="7" ViewCount="" Body="&lt;h1&gt;Visual Basic&lt;/h1&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-09T23:22:37.977" CommunityOwnedDate="2010-09-09T23:22:37.977" CommentCount="3" />
  <row Id="2293" PostTypeId="2" ParentId="2267" CreationDate="2010-09-09T23:23:01.653" Score="0" ViewCount="" Body="&lt;p&gt;I believe that a former coworker of mine liked using nano for coding.  &lt;a href=&quot;http://www.gentoo.org/doc/en/nano-basics-guide.xml&quot; rel=&quot;nofollow&quot;&gt;Here's a link&lt;/a&gt; to the guide.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-09-09T23:23:01.653" CommentCount="1" />
  <row Id="2294" PostTypeId="2" ParentId="2291" CreationDate="2010-09-09T23:23:26.207" Score="11" ViewCount="" Body="&lt;h1&gt;Apple Basic&lt;/h1&gt;&#xA;" OwnerUserId="35" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-09T23:25:43.540" LastActivityDate="2010-09-09T23:25:43.540" CommunityOwnedDate="2010-09-09T23:23:26.207" CommentCount="3" />
  <row Id="2295" PostTypeId="2" ParentId="2291" CreationDate="2010-09-09T23:27:00.533" Score="13" ViewCount="" Body="&lt;h1&gt;C&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-09T23:27:00.533" CommunityOwnedDate="2010-09-09T23:27:00.533" CommentCount="3" />
  <row Id="2296" PostTypeId="2" ParentId="2291" CreationDate="2010-09-09T23:28:51.817" Score="19" ViewCount="" Body="&lt;h1&gt;QBasic&lt;/h1&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-09T23:28:51.817" CommunityOwnedDate="2010-09-09T23:28:51.817" CommentCount="5" />
  <row Id="2297" PostTypeId="2" ParentId="2291" CreationDate="2010-09-09T23:29:49.303" Score="0" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.oberon.ethz.ch/&quot; rel=&quot;nofollow&quot;&gt;Oberon&lt;/a&gt;&lt;/h1&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-09T23:29:49.303" CommunityOwnedDate="2010-09-09T23:29:49.303" CommentCount="2" />
  <row Id="2298" PostTypeId="2" ParentId="2291" CreationDate="2010-09-09T23:33:57.773" Score="16" ViewCount="" Body="&lt;h1&gt;(Turbo) Pascal&lt;/h1&gt;&#xA;" OwnerUserId="149" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-09T23:35:57.290" LastActivityDate="2010-09-09T23:35:57.290" CommunityOwnedDate="2010-09-09T23:33:57.773" />
  <row Id="2299" PostTypeId="2" ParentId="2254" CreationDate="2010-09-09T23:36:49.103" Score="4" ViewCount="" Body="&lt;p&gt;I would &lt;em&gt;love&lt;/em&gt; to have one of &lt;a href=&quot;http://www.artlebedev.com/everything/optimus/demo/&quot; rel=&quot;nofollow&quot;&gt;these&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-09T23:36:49.103" CommunityOwnedDate="2011-01-17T21:43:24.260" CommentCount="7" />
  <row Id="2300" PostTypeId="2" ParentId="2291" CreationDate="2010-09-09T23:39:59.903" Score="3" ViewCount="" Body="&lt;h1&gt;BASIC for TI-83&lt;/h1&gt;&#xA;" OwnerUserId="109" LastEditorUserId="719" LastEditorDisplayName="" LastEditDate="2010-09-09T23:41:45.047" LastActivityDate="2010-09-09T23:41:45.047" CommunityOwnedDate="2010-09-09T23:39:59.903" CommentCount="1" />
  <row Id="2303" PostTypeId="2" ParentId="2284" CreationDate="2010-09-09T23:45:16.300" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;10&lt;/strong&gt; Do all the Euler problems.&lt;br&gt;&#xA;&lt;strong&gt;20&lt;/strong&gt; Change computer language.&lt;br&gt; &#xA;&lt;strong&gt;30&lt;/strong&gt; goto 10 &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once I'm satisified with my language proficiencies, write one new app per (day/week/month/quarter) until the last day arrives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(basically, practice as much as possible)&lt;/p&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-09T23:45:16.300" CommentCount="6" />
  <row Id="2304" PostTypeId="2" ParentId="2284" CreationDate="2010-09-09T23:49:19.740" Score="0" ViewCount="" Body="&lt;p&gt;I would... Stop thinking! Start coding...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if possible write an application that takes a problem and generates all code for it.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-09T23:49:19.740" CommentCount="4" />
  <row Id="2305" PostTypeId="2" ParentId="2291" CreationDate="2010-09-09T23:50:10.173" Score="11" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Sinclair_BASIC&quot; rel=&quot;nofollow&quot;&gt;Sinclair Basic&lt;/a&gt;&lt;/h1&gt;&#xA;" OwnerUserId="310" LastActivityDate="2010-09-09T23:50:10.173" CommunityOwnedDate="2010-09-09T23:50:10.173" CommentCount="2" />
  <row Id="2306" PostTypeId="1" AcceptedAnswerId="2309" CreationDate="2010-09-09T23:50:29.580" Score="6" ViewCount="196" Body="&lt;p&gt;Just read a tweet from Jeff Handley saying he saw an XML file with 449,000 lines. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At what point you would say &quot;this needs a database&quot; (not one with everything goes in to an Xml column). &lt;/p&gt;&#xA;" OwnerUserId="921" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-14T22:35:30.263" LastActivityDate="2010-09-15T20:32:00.490" Title="Where and how would you use XML in your application?" Tags="&lt;programming-practices&gt;&lt;recommendations&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="2" />
  <row Id="2307" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T23:52:16.937" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://sourceforge.net/projects/console/&quot; rel=&quot;nofollow&quot;&gt;Console&lt;/a&gt; is a nice wrapper for cmd.exe. It lets you dynamically resize the console (yes, in width, too!), has tabs, pretty colours and transparencies and even different tab profiles so you can mix and match pure windows sessions with cygwin sessions, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also put the &lt;a href=&quot;http://www.cygwin.com/&quot; rel=&quot;nofollow&quot;&gt;Cygwin&lt;/a&gt; binaries on my path so I can use my favourite unix commands in normal Windows shell sessions.&lt;/p&gt;&#xA;" OwnerUserId="956" LastActivityDate="2010-09-09T23:52:16.937" CommunityOwnedDate="2010-09-10T20:03:00.190" CommentCount="0" />
  <row Id="2308" PostTypeId="2" ParentId="2284" CreationDate="2010-09-09T23:53:11.587" Score="1" ViewCount="" Body="&lt;p&gt;&quot;The best programmer in the world&quot; is a highly subjective notion.  Programming is a very broad field, and you can't hope to ever be very good--much less &quot;the best&quot;--at more than a few specific fields anymore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So first, decide what aspect of programming it is you want to be the best at.  Then pick a complex problem in that area, preferably one that's already been solved so you have some sort of guide, and write a program to solve that problem.  You learn to program by programming, and by working on something that will challenge you, your knowledge and skills will grow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you've solved that problem, pick a more complex problem in your field and write a program to solve that problem.  Repeat until 5 years have passed, putting real effort into it the whole time, and you'll be pretty darn good in the end.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-09T23:53:11.587" CommentCount="8" />
  <row Id="2309" PostTypeId="2" ParentId="2306" CreationDate="2010-09-09T23:54:04.097" Score="14" ViewCount="" Body="&lt;p&gt;probably about 448,000 lines ago :)&lt;/p&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-09T23:54:04.097" CommentCount="1" />
  <row Id="2310" PostTypeId="2" ParentId="2306" CreationDate="2010-09-09T23:57:07.553" Score="1" ViewCount="" Body="&lt;p&gt;I see XML as something that is used to structure, import and export data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's not useful for this large amount of data to be shared and the structure could be properly adapted,&lt;br&gt;&#xA;then it should be converted to a database as databases have less overhead with parsing tags, etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please note that as a XML file is text it could be heavily compressed and thus 449,000 lines means nothing!&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-09T23:57:07.553" />
  <row Id="2311" PostTypeId="2" ParentId="1745" CreationDate="2010-09-09T23:57:23.473" Score="14" ViewCount="" Body="&lt;p&gt;2 myths I want to have revealed. A lot of my friends do not understand that Java and JavaScript are completely different, and a lot of non-programmers I know don't understand that there is more than one language. One of my friends was just getting into programming and needed some help from me, 'course he didn't even know what language he was working in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those both come up a lot for me.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-09T23:57:23.473" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="5" />
  <row Id="2312" PostTypeId="2" ParentId="2291" CreationDate="2010-09-09T23:59:08.250" Score="1" ViewCount="" Body="&lt;h1&gt;8080 Assembly&lt;/h1&gt;&#xA;" OwnerUserId="921" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-10T00:00:55.267" LastActivityDate="2010-09-10T00:00:55.267" CommunityOwnedDate="2010-09-09T23:59:08.250" />
  <row Id="2313" PostTypeId="2" ParentId="1913" CreationDate="2010-09-09T23:59:17.343" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.techsmith.com/jing/&quot; rel=&quot;nofollow&quot;&gt;Jing&lt;/a&gt; for pictures/videos, for when you or your customer can't explain something just by words.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-09T23:59:17.343" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="2314" PostTypeId="2" ParentId="2306" CreationDate="2010-09-10T00:01:32.737" Score="8" ViewCount="" Body="&lt;p&gt;Where and how would I use XML?  I wouldn't, unless it's absolutely necessary because I'm communicating with some other thing that only speaks XML.  It's a bloated mess of a format, and if you really need to serialize data in some standard form, JSON is smaller, easier for human beings to read, and faster for computers to parse.  So why would I ever want to use XML instead?&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-10T00:01:32.737" CommentCount="1" />
  <row Id="2315" PostTypeId="2" ParentId="2023" CreationDate="2010-09-10T00:04:43.140" Score="0" ViewCount="" Body="&lt;p&gt;My favorite has always been &lt;a href=&quot;http://www.araxis.com/merge/&quot; rel=&quot;nofollow&quot;&gt;Araxis Merge&lt;/a&gt;. I've tried others, but none have served me as well, particularly when it comes to folder diffs.&lt;/p&gt;&#xA;" OwnerUserId="960" LastActivityDate="2010-09-10T00:04:43.140" />
  <row Id="2316" PostTypeId="2" ParentId="2252" CreationDate="2010-09-10T00:06:16.970" Score="2" ViewCount="" Body="&lt;p&gt;Talk about you, your studies, your hobbies, your ambitions, your past projects...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes it's hard to talk about yourself, but don't worry!&lt;br&gt;&#xA;We're all humans so it doesn't have to be completely strict, privacy has died, just don't show you're a fool.  &lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-10T00:06:16.970" />
  <row Id="2317" PostTypeId="2" ParentId="2254" CreationDate="2010-09-10T00:06:41.680" Score="3" ViewCount="" Body="&lt;p&gt;I've been thinking  about buying something like &lt;a href=&quot;http://www.logitech.com/en-us/keyboards/keyboard/devices/4956#section=specs&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; once I switch back to desktop. It's marketed towards gamers, but it has programmable buttons (12 most used functions of your favorite language just one button away!) and the buttons feel great. It's pretty expensive at ~150€ but keyboards do not &quot;age&quot; as fast as other computer components and the amount of typing programmers do in my opinion justified the price.  Plus there's the miniature screen too!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/BZXuy.png&quot; alt=&quot;Logitech G19 Keyboard for Gaming&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="98" LastActivityDate="2010-09-10T00:06:41.680" CommunityOwnedDate="2011-01-17T21:43:24.260" CommentCount="1" />
  <row Id="2318" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T00:09:47.320" Score="15" ViewCount="" Body="&lt;h1&gt;Commodore BASIC&lt;/h1&gt;&#xA;" OwnerUserId="958" LastEditorUserId="958" LastEditorDisplayName="" LastEditDate="2010-09-10T22:04:17.950" LastActivityDate="2010-09-10T22:04:17.950" CommunityOwnedDate="2010-09-10T00:09:47.320" CommentCount="3" />
  <row Id="2319" PostTypeId="1" CreationDate="2010-09-10T00:15:50.687" Score="18" ViewCount="966" Body="&lt;p&gt;I know of these sites (USA):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Monster/HotJobs (Monster aquired HotJobs not too long ago)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.careerbuilder.com&quot; rel=&quot;nofollow&quot;&gt;http://www.careerbuilder.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.dice.com&quot; rel=&quot;nofollow&quot;&gt;http://www.dice.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://careers.stackoverflow.com&quot;&gt;http://careers.stackoverflow.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.startuply.com&quot; rel=&quot;nofollow&quot;&gt;http://www.startuply.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.indeed.com&quot; rel=&quot;nofollow&quot;&gt;http://www.indeed.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.craigslist.com&quot; rel=&quot;nofollow&quot;&gt;http://www.craigslist.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.linkedin.com&quot; rel=&quot;nofollow&quot;&gt;http://www.linkedin.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jobs.perl.org/&quot; rel=&quot;nofollow&quot;&gt;http://jobs.perl.org/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;HackerNews&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.localjobnetwork.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.localjobnetwork.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.simplyhired.com&quot; rel=&quot;nofollow&quot;&gt;http://www.simplyhired.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.theladders.com&quot; rel=&quot;nofollow&quot;&gt;http://www.theladders.com&lt;/a&gt;  (see comment below)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.python.org/community/jobs/&quot; rel=&quot;nofollow&quot;&gt;http://www.python.org/community/jobs/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jobs.37signals.com/&quot; rel=&quot;nofollow&quot;&gt;http://jobs.37signals.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Facebook&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.techstars.org/jobs/&quot; rel=&quot;nofollow&quot;&gt;TechStars&lt;/a&gt; (technically a mailing list)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jobs.github.com/positions&quot; rel=&quot;nofollow&quot;&gt;http://jobs.github.com/positions&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.startupshiring.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.startupshiring.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Canada:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://waterlootechjobs.com/&quot; rel=&quot;nofollow&quot;&gt;http://waterlootechjobs.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.workopolis.com/&quot; rel=&quot;nofollow&quot;&gt;Workopolis&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.monster.ca/&quot; rel=&quot;nofollow&quot;&gt;http://www.monster.ca/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.careerbeacon.com&quot; rel=&quot;nofollow&quot;&gt;http://www.careerbeacon.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;EU:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://ec.europa.eu/eures/home.jsp?lang=en&quot; rel=&quot;nofollow&quot;&gt;http://ec.europa.eu/eures/home.jsp?lang=en&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Belgium/Netherlands:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.jobtrack.nl/&quot; rel=&quot;nofollow&quot;&gt;http://www.jobtrack.nl/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.vacature.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.vacature.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.vacaturekrant.nl/&quot; rel=&quot;nofollow&quot;&gt;http://www.vacaturekrant.nl/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.jobsvacatures.be/&quot; rel=&quot;nofollow&quot;&gt;http://www.jobsvacatures.be/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Spain:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.infojobs.net/&quot; rel=&quot;nofollow&quot;&gt;http://www.infojobs.net/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Freelance:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.elance.com&quot; rel=&quot;nofollow&quot;&gt;http://www.elance.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.freelancer.com&quot; rel=&quot;nofollow&quot;&gt;http://www.freelancer.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.ifreelance.com&quot; rel=&quot;nofollow&quot;&gt;http://www.ifreelance.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.odesk.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.odesk.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Where else do you go when looking for work?  I'll keep a running post of job sites for any and all additional submissions.&lt;/p&gt;&#xA;" OwnerUserId="838" LastEditorUserId="838" LastEditorDisplayName="" LastEditDate="2011-04-02T14:45:22.573" LastActivityDate="2011-04-02T14:45:22.573" CommunityOwnedDate="2010-09-10T00:15:50.687" Title="Where do you search for jobs?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;employment&gt;" AnswerCount="14" CommentCount="1" FavoriteCount="14" />
  <row Id="2321" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T00:20:18.297" Score="0" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Dartmouth_BASIC&quot; rel=&quot;nofollow&quot;&gt;Dartmouth Basic&lt;/a&gt;&lt;/h1&gt;&#xA;" OwnerUserId="964" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-10T00:22:15.887" LastActivityDate="2010-09-10T00:22:15.887" CommunityOwnedDate="2010-09-10T00:20:18.297" />
  <row Id="2322" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T00:20:32.617" Score="2" ViewCount="" Body="&lt;h1&gt;PHP&lt;/h1&gt;&#xA;" OwnerUserId="66" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-10T00:21:57.743" LastActivityDate="2010-09-10T00:21:57.743" CommunityOwnedDate="2010-09-10T00:20:32.617" />
  <row Id="2323" PostTypeId="1" AcceptedAnswerId="6024" CreationDate="2010-09-10T00:20:59.227" Score="10" ViewCount="998" Body="&lt;p&gt;I started in C#, and have done some Ruby and Perl in a few developer courses over time. They are arguably cleaner languages, but PHP is fun for me to write in, and I really don't see why it so frowned upon by the self-claimed &quot;pros&quot;.&lt;/p&gt;&#xA;" OwnerUserId="962" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-01-23T06:19:10.453" LastActivityDate="2011-01-23T06:19:10.453" ClosedDate="2010-12-18T13:31:44.493" Title="Why is PHP considerd the darkside of programing?" Tags="&lt;programming-languages&gt;&lt;php&gt;" AnswerCount="6" CommentCount="6" FavoriteCount="4" />
  <row Id="2324" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T00:21:07.197" Score="2" ViewCount="" Body="&lt;h1&gt;JavaScript&lt;/h1&gt;&#xA;" OwnerUserId="965" LastEditorUserId="1325" LastEditorDisplayName="" LastEditDate="2010-09-14T05:16:48.893" LastActivityDate="2010-09-14T05:16:48.893" CommunityOwnedDate="2010-09-10T00:21:07.197" CommentCount="2" />
  <row Id="2325" PostTypeId="2" ParentId="2319" CreationDate="2010-09-10T00:21:30.893" Score="5" ViewCount="" Body="&lt;p&gt;None of the sites you mention would help me find a job in my local country,&lt;br&gt;&#xA;thus looking for local job sites is a good idea too...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Belgium/Netherland that would be:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.jobtrack.nl/&quot; rel=&quot;nofollow&quot;&gt;http://www.jobtrack.nl/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.vacature.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.vacature.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.vacaturekrant.nl/&quot; rel=&quot;nofollow&quot;&gt;http://www.vacaturekrant.nl/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.jobsvacatures.be/&quot; rel=&quot;nofollow&quot;&gt;http://www.jobsvacatures.be/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-10T00:21:30.893" CommunityOwnedDate="2010-09-10T00:21:30.893" />
  <row Id="2326" PostTypeId="2" ParentId="1745" CreationDate="2010-09-10T00:27:54.853" Score="20" ViewCount="" Body="&lt;p&gt;Programming is just like assembly line work. You are working on a product for a certain time (maybe with coworkers) and finally you ship it. Just like building a house of bricks.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Contra: Programming contains a lot creativity and planning. It is art. Like the mason, also a programmer knows the difference between shaping a brick and planning a whole cathedral.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" LastActivityDate="2010-09-10T00:27:54.853" CommunityOwnedDate="2010-09-10T00:27:54.853" CommentCount="1" />
  <row Id="2327" PostTypeId="2" ParentId="2323" CreationDate="2010-09-10T00:28:39.287" Score="2" ViewCount="" Body="&lt;p&gt;As PHP is mixed with HTML and you don't tend to write from an object oriented perspective (not to mention the lack of strong typing) it quickly results in code that is not very clean, a CRUD website like the SE sites written in for example C# MVC 2 tend to be written a lot cleaner in ASP.NET than they would it PHP...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are MVC coding frameworks out there but most people will start just at the PHP site and notice such a framework much later, while ASP.NET has the approach to directly show you those frameworks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since I started writing in C# MVC 2 I want to stay away from PHP,&lt;br&gt;&#xA;it isn't dark as it allows for OO and MVC but it just isn't used most users.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-10T00:28:39.287" CommentCount="5" />
  <row Id="2328" PostTypeId="2" ParentId="2267" CreationDate="2010-09-10T00:31:05.097" Score="1" ViewCount="" Body="&lt;p&gt;There is modern &amp;amp; interesting &lt;a href=&quot;http://www.sublimetext.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.sublimetext.com/&lt;/a&gt; editor, but unfortunately it works only under Windows.&lt;/p&gt;&#xA;" OwnerUserId="343" LastActivityDate="2010-09-10T00:31:05.097" CommentCount="1" />
  <row Id="2329" PostTypeId="1" CreationDate="2010-09-10T00:33:27.903" Score="5" ViewCount="90" Body="&lt;p&gt;Google sometimes come up with irrelevant links, not everything is available on SO, there are cases where the local documentation is also annoying to look through... Are there other efficient ways you use to search?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:07:40.867" LastActivityDate="2010-09-18T21:07:40.867" Title="Are there more efficient ways to search for help/documentation than Google/SO/...?" Tags="&lt;productivity&gt;&lt;search-engine&gt;" AnswerCount="4" FavoriteCount="2" />
  <row Id="2330" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T00:34:46.900" Score="16" ViewCount="" Body="&lt;h1&gt;English&lt;/h1&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-10T00:34:46.900" CommunityOwnedDate="2010-09-10T00:34:46.900" CommentCount="5" />
  <row Id="2331" PostTypeId="1" AcceptedAnswerId="2369" CreationDate="2010-09-10T00:35:36.730" Score="15" ViewCount="1492" Body="&lt;p&gt;Please, &lt;strong&gt;explain why&lt;/strong&gt; and list which languages have the (mis)feature implemented As far you know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Post what you consider a harmful feature, not what you dislike.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-10-01T15:54:19.953" LastActivityDate="2010-11-26T23:59:27.620" Title="Which language features are considered harmful?" Tags="&lt;programming-languages&gt;&lt;bugs&gt;&lt;features&gt;&lt;mistakes&gt;" AnswerCount="29" CommentCount="6" FavoriteCount="8" />
  <row Id="2332" PostTypeId="2" ParentId="2259" CreationDate="2010-09-10T00:38:20.907" Score="4" ViewCount="" Body="&lt;p&gt;If your language is OOP and package based (Eg Java), then you should probably keep each package in its own folder (eg &lt;code&gt;my/package/name&lt;/code&gt;) to keep with the convention.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your language isn't package based (Eg PHP), then organize by what each file does. Here's an example&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Does this do utility functions? Goes in &lt;code&gt;/util&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Is this a 3rd party plugin? Goes in &lt;code&gt;/plugin&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Is this part of the admin panel? Goes in &lt;code&gt;/admin&lt;/code&gt;, along with ALL supporting files&lt;/li&gt;&#xA;&lt;li&gt;Is this Javascript? Goes in &lt;code&gt;/javascript&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Is this CSS? Goes in &lt;code&gt;/css&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Is this a template? Goes in &lt;code&gt;/templates/templateName&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;etc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Language agnostic, Most people have a &lt;code&gt;/src&lt;/code&gt; directory for all source files, a &lt;code&gt;/lib&lt;/code&gt; directory for libraries, and a &lt;code&gt;/bin&lt;/code&gt; or &lt;code&gt;/dist&lt;/code&gt; directory for builds. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-10T00:38:20.907" />
  <row Id="2333" PostTypeId="2" ParentId="2284" CreationDate="2010-09-10T00:38:51.930" Score="16" ViewCount="" Body="&lt;p&gt;It's definitely not possible to be the best programmer within 5 years so I'd probably do something like the following and then spend the rest of my 5 years relaxing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/od4Oy.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-10T01:10:46.580" LastActivityDate="2010-09-10T01:10:46.580" CommentCount="0" />
  <row Id="2334" PostTypeId="2" ParentId="39" CreationDate="2010-09-10T00:39:04.570" Score="21" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;— C.A.R. Hoare&lt;/p&gt;&#xA;" OwnerUserId="966" LastActivityDate="2010-09-10T00:39:04.570" CommunityOwnedDate="2010-09-10T00:39:04.570" />
  <row Id="2335" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T00:42:41.677" Score="1" ViewCount="" Body="&lt;h1&gt;TI Basic / Enhanced Basic  (On the TI-99/4A)&lt;/h1&gt;&#xA;" OwnerUserId="967" LastEditorUserId="1013" LastEditorDisplayName="" LastEditDate="2010-09-10T06:26:19.193" LastActivityDate="2010-09-10T06:26:19.193" CommunityOwnedDate="2010-09-10T00:42:41.677" />
  <row Id="2337" PostTypeId="2" ParentId="2254" CreationDate="2010-09-10T00:45:23.100" Score="1" ViewCount="" Body="&lt;p&gt;I have been using the MS Natural Keyboard line since they were first made.  I love the way the keys respond and the size of the keyboard and keys are ideal for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently I am using the MS Natural 7000 wireless keyboard.  The battery life has been excellent so far. The next upgrade path for me will be when they release a bluetooth version.&lt;/p&gt;&#xA;" OwnerUserId="967" LastActivityDate="2010-09-10T00:45:23.100" CommunityOwnedDate="2011-01-17T21:43:24.260" />
  <row Id="2339" PostTypeId="1" CreationDate="2010-09-10T00:46:17.747" Score="3" ViewCount="374" Body="&lt;p&gt;For events like Google Code Jam, what language and tips would be the best to write a program really quick?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T16:05:43.680" LastActivityDate="2010-11-02T21:34:22.530" Title="Best language and tips for writing a program as fast as possible?" Tags="&lt;programming-languages&gt;&lt;productivity&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="2" />
  <row Id="2340" PostTypeId="2" ParentId="2235" CreationDate="2010-09-10T00:52:09.300" Score="0" ViewCount="" Body="&lt;p&gt;In Javaland, I actually don't write many util methods anymore since &lt;a href=&quot;http://commons.apache.org/&quot; rel=&quot;nofollow&quot;&gt;Apache Commons&lt;/a&gt; exists. They have (aging) libraries for various things that Java doesn't do compactly, like printing an array, managing exceptions, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most popular: &lt;a href=&quot;http://commons.apache.org/lang/userguide.html&quot; rel=&quot;nofollow&quot;&gt;Commons lang&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-10T00:52:09.300" />
  <row Id="2341" PostTypeId="2" ParentId="2192" CreationDate="2010-09-10T00:55:23.197" Score="39" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/880/what-computer-do-you-use-for-programming/928#928&quot;&gt;A slow computer&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-10T00:55:23.197" CommunityOwnedDate="2011-01-05T06:12:52.770" CommentCount="4" />
  <row Id="2342" PostTypeId="2" ParentId="2267" CreationDate="2010-09-10T00:55:39.530" Score="0" ViewCount="" Body="&lt;p&gt;I'm a big fan of Komodo Edit for a free cross platform editor with a few IDE features. It also has good Vim keybinding support that can easily be extended. I tend to use it a lot when I ssh into our server at work from my Windows box. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I highly recommend learning Vim. You will find yourself using Vim commands everywhere but a lot of programs have Vim support that aren't text editors/IDEs (Vimperator for FF is notable). I would probably use Vim exclusively except for there's no fuse client on Windows that's stable enough to mount the dev server. And I really miss my plugins when I'm using Vim on our dev Unix server.&lt;/p&gt;&#xA;" OwnerUserId="462" LastActivityDate="2010-09-10T00:55:39.530" />
  <row Id="2343" PostTypeId="2" ParentId="1719" CreationDate="2010-09-10T00:56:04.677" Score="9" ViewCount="" Body="&lt;p&gt;Make it interesting and spend each year writing an interpreter or compiler for your own programming language that fills up a niche you've never used a programming language for. Each year, write your next compiler/interpreter using the language you wrote the previous year.&lt;/p&gt;&#xA;" OwnerUserId="227" LastActivityDate="2010-09-10T00:56:04.677" CommunityOwnedDate="2010-09-10T00:56:04.677" CommentCount="3" />
  <row Id="2344" PostTypeId="2" ParentId="2331" CreationDate="2010-09-10T00:56:10.930" Score="-2" ViewCount="" Body="&lt;p&gt;POKE in BASIC...&lt;/p&gt;&#xA;" OwnerUserId="968" LastActivityDate="2010-09-10T00:56:10.930" CommunityOwnedDate="2010-09-10T00:56:10.930" CommentCount="4" />
  <row Id="2345" PostTypeId="2" ParentId="2331" CreationDate="2010-09-10T01:00:02.113" Score="31" ViewCount="" Body="&lt;h2&gt;Register Globals in PHP&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Information : &lt;a href=&quot;http://php.net/manual/en/security.globals.php&quot; rel=&quot;nofollow&quot;&gt;http://php.net/manual/en/security.globals.php&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is by far the worst feature to be ever implemented for readability reasons and security reasons. Basicly all the GET parameter received are transformed into variables.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example with this URL : /index.php?value=foobar&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can do the following :&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?php&#xA;echo $value; // return foobar&#xA;?&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;When you are reading code, it is very confusing to know where the variable comes from.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also if the feature is misused, it can lead to security hole. Here's a code example from php.net that shows how it can be misused :&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?php&#xA;// define $authorized = true only if user is authenticated&#xA;if (authenticated_user()) {&#xA;    $authorized = true;&#xA;}&#xA;&#xA;// Because we didn't first initialize $authorized as false, this might be&#xA;// defined through register_globals, like from GET auth.php?authorized=1&#xA;// So, anyone can be seen as authenticated!&#xA;if ($authorized) {&#xA;    include &quot;/highly/sensitive/data.php&quot;;&#xA;}&#xA;?&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="41" LastActivityDate="2010-09-10T01:00:02.113" CommentCount="5" />
  <row Id="2346" PostTypeId="2" ParentId="2329" CreationDate="2010-09-10T01:00:03.153" Score="0" ViewCount="" Body="&lt;p&gt;I honestly just use google with enough keywords to get the directly to the documentation without having to pull up giant RAM eating pages like the &lt;a href=&quot;http://download.java.net/jdk7/docs/api&quot; rel=&quot;nofollow&quot;&gt;entire Java 6 class list&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-10T02:04:38.147" LastActivityDate="2010-09-10T02:04:38.147" CommentCount="2" />
  <row Id="2347" PostTypeId="2" ParentId="2339" CreationDate="2010-09-10T01:02:10.667" Score="6" ViewCount="" Body="&lt;p&gt;Use a dynamically typed non-OOP language. Statically typed languages are good for big projects, but when you just want to hammer out what you want in as short of time as possible, loosing them is best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PHP (*shudders)&lt;/li&gt;&#xA;&lt;li&gt;Perl&lt;/li&gt;&#xA;&lt;li&gt;Python&lt;/li&gt;&#xA;&lt;li&gt;Etc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="66" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-10T11:27:22.117" LastActivityDate="2010-09-10T11:27:22.117" CommentCount="7" />
  <row Id="2348" PostTypeId="2" ParentId="2329" CreationDate="2010-09-10T01:04:49.277" Score="1" ViewCount="" Body="&lt;p&gt;One of the most useful pieces of advice I can give is to start using &lt;a href=&quot;http://en.wikipedia.org/wiki/Google_Bookmarks&quot; rel=&quot;nofollow&quot;&gt;Google Bookmarks&lt;/a&gt;. These results will appear when you are searching Google. I really like how (unlike other bookmarking services) this is set and forget. The bookmark sharing could be improved however.&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-10T01:04:49.277" />
  <row Id="2349" PostTypeId="2" ParentId="1719" CreationDate="2010-09-10T01:07:10.660" Score="2" ViewCount="" Body="&lt;p&gt;Besides the ones you listed,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haskell, F#, Clojure, OCaml, Lua, Go, D, Erlang, Objective C.&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-09-13T21:30:43.707" LastActivityDate="2010-09-13T21:30:43.707" CommunityOwnedDate="2010-09-10T01:07:10.660" />
  <row Id="2350" PostTypeId="2" ParentId="2254" CreationDate="2010-09-10T01:12:08.103" Score="14" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.kinesis-ergo.com/advantage_pro.htm&quot; rel=&quot;nofollow&quot;&gt;Kinesis Advantage Pro&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Umg28.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-10T01:12:08.103" CommunityOwnedDate="2011-01-17T21:43:24.260" CommentCount="8" />
  <row Id="2351" PostTypeId="2" ParentId="2192" CreationDate="2010-09-10T01:12:12.107" Score="4" ViewCount="" Body="&lt;p&gt;Avoid everything that gets you out of &quot;the zone&quot;. That means your email inbox, your twitter popup application, your corporate chat, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having a &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;quiet working condition&lt;/a&gt; means avoiding that desktop &lt;em&gt;noise&lt;/em&gt; too.&lt;/p&gt;&#xA;" OwnerUserId="970" LastEditorUserId="970" LastEditorDisplayName="" LastEditDate="2011-03-19T05:38:12.313" LastActivityDate="2011-03-19T05:38:12.313" CommunityOwnedDate="2011-01-05T06:12:52.770" />
  <row Id="2352" PostTypeId="1" CreationDate="2010-09-10T01:13:06.840" Score="4" ViewCount="449" Body="&lt;p&gt;Sometimes, one language fits the bill better than another language...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This leaves me wondering if there are languages which could be combined into a new useful language?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:01:07.927" LastActivityDate="2011-03-01T14:11:57.950" Title="What two languages would you like to see combined and why?" Tags="&lt;programming-languages&gt;&lt;language-design&gt;" AnswerCount="13" CommentCount="3" />
  <row Id="2353" PostTypeId="2" ParentId="2331" CreationDate="2010-09-10T01:15:12.543" Score="10" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Goto&quot; rel=&quot;nofollow&quot;&gt;goto&lt;/a&gt;: although ok in rare cases, it is more often misused and leads to hard to read programs.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-10T01:15:12.543" CommentCount="3" />
  <row Id="2354" PostTypeId="2" ParentId="2254" CreationDate="2010-09-10T01:15:41.773" Score="6" ViewCount="" Body="&lt;p&gt;Minimalist option: Happy Hacking Keyboard to whom have few space on desk or wants minimum hands movement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/sekq5.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-24T18:11:30.130" LastActivityDate="2010-09-24T18:11:30.130" CommunityOwnedDate="2011-01-17T21:43:24.260" CommentCount="6" />
  <row Id="2356" PostTypeId="2" ParentId="2352" CreationDate="2010-09-10T01:21:34.353" Score="2" ViewCount="" Body="&lt;p&gt;Any language + embedded SQL could potentially be interesting. &lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-10T01:21:34.353" CommentCount="5" />
  <row Id="2357" PostTypeId="2" ParentId="2339" CreationDate="2010-09-10T01:25:54.717" Score="2" ViewCount="" Body="&lt;p&gt;Any dynamically typed JIT compiled or interpreted scripting language is probably fastest.  A good language would be Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for tips to write a program really quick, learn a good editor like Vim well and learn the language you chose inside and out. &lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-10T01:25:54.717" />
  <row Id="2358" PostTypeId="2" ParentId="2233" CreationDate="2010-09-10T01:26:14.777" Score="4" ViewCount="" Body="&lt;p&gt;A ball to exercise fingers avoiding Carpal Tunnel Syndrome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know the name in English.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-10T01:26:14.777" CommunityOwnedDate="2010-09-17T12:07:03.760" CommentCount="4" />
  <row Id="2359" PostTypeId="2" ParentId="118" CreationDate="2010-09-10T01:28:01.703" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Silicon Valley&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Silicon Valley is in the southern part of the San Francisco Bay Area in Northern California, United States. The region is home to many of the &lt;strong&gt;world's largest technology companies&lt;/strong&gt; including Apple, Google, Facebook, HP, Intel, Cisco, eBay, Adobe, Agilent, Oracle, Yahoo, Netflix, and EA. &lt;a href=&quot;http://www.docstoc.com/docs/34601766/sv150binder&quot; rel=&quot;nofollow&quot;&gt;See 150 Silicon Valley Companies.&lt;/a&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The term originally referred to the region's large number of silicon chip innovators and manufacturers, but eventually came to refer to all the high-tech businesses in the area; it is now generally used as a &lt;strong&gt;metonym for the American high-tech sector&lt;/strong&gt;.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Despite the development of other high-tech economic centers throughout the United States and the world, Silicon Valley continues to be the leading hub for &lt;strong&gt;high-tech innovation and development&lt;/strong&gt;, accounting for 1/3 of all of the venture capital investment in the United States. Geographically, the Silicon Valley encompasses all of the Santa Clara Valley including the city of San Jose (and adjacent communities), the southern Peninsula, and the southern East Bay.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt; &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;The rise of software&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Although semiconductors are still a major component of the area's economy, Silicon Valley has been most famous in recent years for &lt;strong&gt;innovations in software and Internet services&lt;/strong&gt;. Silicon Valley has &lt;strong&gt;significantly influenced&lt;/strong&gt; computer operating systems, software, and user interfaces.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Using money from NASA and the U.S. Air Force, Doug Engelbart invented the mouse and hypertext-based collaboration tools in the mid-1960s, while at Stanford Research Institute (now SRI International). When Engelbart's Augmentation Research Center declined in influence due to personal conflicts and the loss of government funding, Xerox hired some of Engelbart's best researchers. In turn, in the 1970s and 1980s, Xerox's Palo Alto Research Center (PARC) played a pivotal role in object-oriented programming, graphical user interfaces (GUIs), Ethernet, PostScript, and laser printers.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;While Xerox marketed equipment using its technologies, for the most part its technologies flourished elsewhere. The diaspora of Xerox inventions led directly to 3Com and Adobe Systems, and indirectly to Cisco, Apple Computer and Microsoft. Apple's Macintosh GUI was largely a result of Steve Jobs' visit to PARC and the subsequent hiring of key personnel. Cisco's impetus stemmed from the need to route a variety of protocols over Stanford's campus Ethernet.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt; &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Internet bubble&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Silicon Valley is generally considered to have been the center of the &lt;strong&gt;dot-com bubble&lt;/strong&gt; which started from the mid-1990s and collapsed after the NASDAQ stock market began to decline dramatically in April 2000. During the bubble era, real estate prices reached unprecedented levels. For a brief time, Sand Hill Road was home to the most expensive commercial real estate in the world, and the &lt;strong&gt;booming economy&lt;/strong&gt; resulted in severe traffic congestion.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Even after the &lt;strong&gt;dot-com crash&lt;/strong&gt;, Silicon Valley continues to maintain its status as one of the &lt;strong&gt;top research and development centers&lt;/strong&gt; in the world. A 2006 Wall Street Journal story found that 13 of the 20 most inventive towns in America were in California, and 10 of those were in Silicon Valley. San Jose led the list with 3,867 utility patents filed in 2005, and number two was Sunnyvale, at 1,881 utility patents.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Source: &lt;a href=&quot;http://en.wikipedia.org/wiki/Silicon_Valley&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Silicon_Valley&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-10T01:28:01.703" CommentCount="2" />
  <row Id="2361" PostTypeId="2" ParentId="2233" CreationDate="2010-09-10T01:32:20.423" Score="0" ViewCount="" Body="&lt;p&gt;For me, &lt;a href=&quot;http://www.thinkgeek.com/geektoys/cubegoodies/5ac8/&quot; rel=&quot;nofollow&quot;&gt;Smart Mass Thinking Putty&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="462" LastActivityDate="2010-09-10T01:32:20.423" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="2362" PostTypeId="2" ParentId="2233" CreationDate="2010-09-10T01:33:02.920" Score="1" ViewCount="" Body="&lt;p&gt;Coffee, and post it notes to take quick notes, headphones to listen to music, and Fan (as a small distraction when headphones are off).&lt;/p&gt;&#xA;" OwnerUserId="978" LastActivityDate="2010-09-10T01:33:02.920" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="2365" PostTypeId="2" ParentId="215" CreationDate="2010-09-10T01:37:15.190" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://sourceforge.net/search/?type_of_search=soft&amp;amp;words=kernel+driver&quot; rel=&quot;nofollow&quot;&gt;SourceForge.net for 'kernel drivers'&lt;/a&gt; lists 2800+ projects, maybe you can find something interesting there?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://sourceforge.net/search/?words=linux+kernel&amp;amp;type_of_search=soft&amp;amp;words=kernel&amp;amp;search=Search&quot; rel=&quot;nofollow&quot;&gt;SourceForge.net for 'kernel'&lt;/a&gt; instead of 'kernel drivers' show 1403+ projects.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-10T01:37:15.190" />
  <row Id="2366" PostTypeId="2" ParentId="2206" CreationDate="2010-09-10T01:37:47.733" Score="0" ViewCount="" Body="&lt;p&gt;Solutions Architect&lt;/p&gt;&#xA;" OwnerUserId="817" LastActivityDate="2010-09-10T01:37:47.733" />
  <row Id="2368" PostTypeId="2" ParentId="326" CreationDate="2010-09-10T01:41:03.327" Score="0" ViewCount="" Body="&lt;p&gt;Sometimes a bug in a bug tracker can result in 5 activities you need to do to fix it: write an  unit test, call someone from your team, get in touch with a department in your company, who knows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I start with a task in &lt;a href=&quot;http://www.abstractspoon.com/tdl_resources.html&quot; rel=&quot;nofollow&quot;&gt;ToDoList&lt;/a&gt; application (&quot;Correct bug #3 in login page that happens in ie6&quot;), and start the time counter. I can even link a file to a task (maybe a pdf report, a jpg, who knows what can help you in this task).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I realize I may have to do some paper work or another related activity to get a task done, I create a subtask on the main task, and keep working, now changing the time counter to this new subtask. Usually these subtasks are tasks that are simply unique or happens rarely so they aren't already in my head all the time (for example, I don't subtask &quot;commit changes to source control&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the task is done, I stop the counter. Now I have a complete log of how I worked and how much time I spent. This is useful when you need to report to an internal &quot;hour system&quot; in a company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are other features in the application, but I usually just use the task and subtask creating and time counter. But if you don't need gantt charts for example, IMHO, ToDoList can completely replace Microsoft Project - and is saves all your data in a xml file instead of a proprietary binary format.&lt;/p&gt;&#xA;" OwnerUserId="970" LastActivityDate="2010-09-10T01:41:03.327" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="2369" PostTypeId="2" ParentId="2331" CreationDate="2010-09-10T01:41:28.440" Score="20" ViewCount="" Body="&lt;p&gt;Allow Null by default, the &quot;trillion&quot;* dollar mistake. Sorry Tony Hoare.&#xA;Almost every language available on planet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare&quot; rel=&quot;nofollow&quot;&gt;Tony Hoare explains&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*I adjusted the expression coined by Tony Hoare to reflect actual loss on these days :-)&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-25T00:00:27.293" LastActivityDate="2010-09-25T00:00:27.293" CommentCount="4" />
  <row Id="2371" PostTypeId="2" ParentId="1999" CreationDate="2010-09-10T01:45:34.767" Score="4" ViewCount="" Body="&lt;p&gt;Possibly more relevant to project managers than managers in general, but the single thing most likely to doom a project before it starts is to choose an end-date (or have one thrust upon you by marketing) and try to cobble together some fairy-story &quot;project schedule&quot; that makes it seem acgievable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After 30 years of professional s/w development , that is stil my biggest bug-bear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How to block it? As with all management complaints, try to educate, leave for another job, encounter more of same, rinse &amp;amp; repeat for 30 years.&lt;/p&gt;&#xA;" OwnerUserId="979" LastActivityDate="2010-09-10T01:45:34.767" CommentCount="2" />
  <row Id="2372" PostTypeId="2" ParentId="2331" CreationDate="2010-09-10T01:49:52.740" Score="1" ViewCount="" Body="&lt;p&gt;FORTRAN common blocks.  If you made a simple mistake, one part of an application could clobber another part's globals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FORTRAN assigned goto statement / COBOL alter statement.  Self-modifying code.  Danger, warning, flying spaghetti monsters!!&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-10-01T23:59:32.737" LastActivityDate="2010-10-01T23:59:32.737" CommentCount="2" />
  <row Id="2373" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T01:55:12.047" Score="10" ViewCount="" Body="&lt;p&gt;Just last week someone asked me to make a simple change to an existing DLL (left pad a numerical value with leading zeros). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was a COM DLL, originally coded in VB 6 - source code long since lost - which interfaced on one side with some external hardware (interface unknown) and whose functions were called from an Active X control on a web page (interface, again, unknown).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It only took me a week and I only slept overnight on the office floor twice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I got it done and it is live in the field as of yesterday - working.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Punchline - it was a government project, of course.&lt;/p&gt;&#xA;" OwnerUserId="979" LastEditorUserId="979" LastEditorDisplayName="" LastEditDate="2011-05-16T05:10:02.400" LastActivityDate="2011-05-16T05:10:02.400" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="1" />
  <row Id="2374" PostTypeId="2" ParentId="1338" CreationDate="2010-09-10T01:57:59.470" Score="2" ViewCount="" Body="&lt;p&gt;This was a LONG time ago -- 1976 to be exact.  My boss had never heard of Edsger Dijkstra or read an issue of CACM, but he had heard a rumor from somewhere that &quot;GOTO is bad&quot;, so we were not allowed to use GOTO in our COBOL programs.  This was before COBOL added the &quot;end if&quot;, so at the time it had only two-and-a-half of the three classic control structures (sequence, if / then / else, perform (i.e. do while)).  He grudgingly allowed GOTO in our Basic programs, and branch instructions in our Assembler language programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry that this is a sort of &quot;you had to be there&quot; story.  As far as I know, every language invented since 1976 has adequate control structures so that you never need to use GOTO.  But the point is, the boss never knew WHY GOTO was considered harmful, or which language was the infantile disorder and which was the fatal disease.&lt;/p&gt;&#xA;" OwnerUserId="984" LastEditorUserId="984" LastEditorDisplayName="" LastEditDate="2010-09-10T02:04:56.057" LastActivityDate="2010-09-10T02:04:56.057" CommunityOwnedDate="2010-09-10T01:57:59.470" />
  <row Id="2375" PostTypeId="2" ParentId="2331" CreationDate="2010-09-10T02:03:56.223" Score="11" ViewCount="" Body="&lt;p&gt;Fallthrough by default in C and C++ switch statements.&lt;/p&gt;&#xA;" OwnerUserId="35" LastActivityDate="2010-09-10T02:03:56.223" CommentCount="9" />
  <row Id="2376" PostTypeId="2" ParentId="1952" CreationDate="2010-09-10T02:12:07.947" Score="1" ViewCount="" Body="&lt;p&gt;Do you really want to apply that to a single project? It seems like something applicable to all (or most).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why not look at &lt;a href=&quot;http://www.gnu.org/help/help.html&quot; rel=&quot;nofollow&quot;&gt;How to help GNU&lt;/a&gt; ?&lt;/p&gt;&#xA;" OwnerUserId="979" LastActivityDate="2010-09-10T02:12:07.947" />
  <row Id="2377" PostTypeId="2" ParentId="1360" CreationDate="2010-09-10T02:14:03.847" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;When in doubt, look to Joel for guidance ...&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/FieldGuidetoDevelopers.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/FieldGuidetoDevelopers.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if you somehow don't know the site, stop right now &amp;amp; read every single post&lt;/p&gt;&#xA;" OwnerUserId="979" LastActivityDate="2010-09-10T02:14:03.847" CommentCount="1" />
  <row Id="2378" PostTypeId="2" ParentId="2319" CreationDate="2010-09-10T02:14:52.130" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.craigslist.org&quot; rel=&quot;nofollow&quot;&gt;Craigslist&lt;/a&gt; (if it covers your area) has some job listings.&lt;/p&gt;&#xA;" OwnerUserId="35" LastActivityDate="2010-09-10T02:14:52.130" CommunityOwnedDate="2010-09-10T02:14:52.130" />
  <row Id="2379" PostTypeId="2" ParentId="1913" CreationDate="2010-09-10T02:17:25.190" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.autohotkey.com/&quot; rel=&quot;nofollow&quot;&gt;AutoHotkey&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a very big boost in productivity for programming and many computer tasks.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-10T19:54:48.717" LastActivityDate="2010-09-10T19:54:48.717" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="2380" PostTypeId="2" ParentId="126" CreationDate="2010-09-10T02:20:56.680" Score="4" ViewCount="" Body="&lt;p&gt;What motivates programmers/ See &lt;a href=&quot;http://www.joelonsoftware.com/articles/FieldGuidetoDevelopers.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/FieldGuidetoDevelopers.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Joel (let his name be praised) estimates that &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000068.html&quot; rel=&quot;nofollow&quot;&gt;it takes 15 minutes to recover form an interruption&lt;/a&gt;, no matter how brief. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;See also &lt;a href=&quot;http://www.jivesoftware.com/jivespace/community/jivetalks/blog/2006/09/20/tips-for-surviving-interruptions&quot; rel=&quot;nofollow&quot;&gt;Tips for surviving an interruption&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll buy that. I am usually so deep in coding that the slightest interruption throws me out of &quot;the zone&quot;. Joel advocates individual offices. If you can't to that, then one room per time ought to reduce interruptions. Open plan &amp;amp; cubicle farms are great contributors to project slip (as are bosses who &quot;drop by for a chat&quot;).&lt;/p&gt;&#xA;" OwnerUserId="979" LastActivityDate="2010-09-10T02:20:56.680" />
  <row Id="2382" PostTypeId="2" ParentId="38" CreationDate="2010-09-10T02:27:31.353" Score="1" ViewCount="" Body="&lt;p&gt;The best 9and probably sole remain relevant) part of the (sadly now outdated) Mythical Man Month is P.20 which breaks down a projects time into 1/3 planning, 1/6 coding, 1/4 component test and 1/4 system test, a very good split which is sadly all too little adhered to.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Requirements&lt;/li&gt;&#xA;&lt;li&gt;Functional design&lt;/li&gt;&#xA;&lt;li&gt;Technical design&lt;/li&gt;&#xA;&lt;li&gt;Build&lt;/li&gt;&#xA;&lt;li&gt;Test&lt;/li&gt;&#xA;&lt;li&gt;Review&lt;/li&gt;&#xA;&lt;li&gt;(Deploy)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;You can split these all, or group 2 &amp;amp; or 1,2 &amp;amp; 3&lt;/p&gt;&#xA;&#xA;&lt;p&gt;does 4) build include unit test? what is 5) test? unit test, software integration, system integration? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;6) review is a subset of 1, 2, and 3&lt;/p&gt;&#xA;&#xA;&lt;p&gt;is writing of unit test specs part of 3) Technical design?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that you need to think a lot more about what these things mean, and to add some granularity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Congratulations, though, on thinking about this, all to few people do. &lt;/p&gt;&#xA;" OwnerUserId="979" LastActivityDate="2010-09-10T02:27:31.353" />
  <row Id="2383" PostTypeId="2" ParentId="1371" CreationDate="2010-09-10T02:31:05.737" Score="11" ViewCount="" Body="&lt;p&gt;Let the customer, marketing or management pick a date and then try to work backwards to an imaginary schedule&lt;/p&gt;&#xA;" OwnerUserId="979" LastActivityDate="2010-09-10T02:31:05.737" CommunityOwnedDate="2011-01-23T19:41:07.757" CommentCount="1" />
  <row Id="2384" PostTypeId="2" ParentId="1371" CreationDate="2010-09-10T02:33:13.673" Score="16" ViewCount="" Body="&lt;p&gt;The first time someone, usually management says &quot;we don't have time to ..&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually preceding something that we don't have time not to, like documentation or code reviews (which statistically find and correct more bugs that anything else, including all forms of testing) &lt;/p&gt;&#xA;" OwnerUserId="979" LastActivityDate="2010-09-10T02:33:13.673" CommunityOwnedDate="2011-01-23T19:41:07.757" CommentCount="4" />
  <row Id="2385" PostTypeId="2" ParentId="1371" CreationDate="2010-09-10T02:33:59.813" Score="6" ViewCount="" Body="&lt;p&gt;Cowboy coders, big egos and management acceptance thereof &lt;/p&gt;&#xA;" OwnerUserId="979" LastActivityDate="2010-09-10T02:33:59.813" CommunityOwnedDate="2011-01-23T19:41:07.757" />
  <row Id="2386" PostTypeId="2" ParentId="2223" CreationDate="2010-09-10T02:35:10.220" Score="2" ViewCount="" Body="&lt;p&gt;The first time &quot;Hello World&quot; I ever built and ran. &lt;strong&gt;Noting&lt;/strong&gt; will ever impress me more than that.&lt;/p&gt;&#xA;" OwnerUserId="979" LastEditorUserId="979" LastEditorDisplayName="" LastEditDate="2010-09-10T04:34:59.023" LastActivityDate="2010-09-10T04:34:59.023" CommentCount="3" />
  <row Id="2387" PostTypeId="2" ParentId="2206" CreationDate="2010-09-10T02:35:25.857" Score="0" ViewCount="" Body="&lt;p&gt;I call myself a coder most of the time, but it changes depending on the conversation. &lt;/p&gt;&#xA;" OwnerUserId="990" LastActivityDate="2010-09-10T02:35:25.857" />
  <row Id="2388" PostTypeId="2" ParentId="2247" CreationDate="2010-09-10T02:41:12.033" Score="1" ViewCount="" Body="&lt;p&gt;I'd say the best way to measure your productivity is to set a goal each day for what you want to have done that day, and if you complete it, consider it productive.  It's a fairly subjective measure, but you'll most likely find it much more rewarding than an objective one.&lt;/p&gt;&#xA;" OwnerUserId="990" LastEditorUserId="990" LastEditorDisplayName="" LastEditDate="2010-09-10T14:10:15.747" LastActivityDate="2010-09-10T14:10:15.747" />
  <row Id="2390" PostTypeId="2" ParentId="2138" CreationDate="2010-09-10T02:50:05.127" Score="4" ViewCount="" Body="&lt;p&gt;I wrote a program to randomly choose what type of tea I wanted to drink.  It spat out the answer, and I never agreed, so I'd continue running it until I liked the answer.  Every now and then I run it again just for kicks.&lt;/p&gt;&#xA;" OwnerUserId="990" LastEditorUserId="990" LastEditorDisplayName="" LastEditDate="2010-09-10T03:58:11.410" LastActivityDate="2010-09-10T03:58:11.410" />
  <row Id="2391" PostTypeId="2" ParentId="2227" CreationDate="2010-09-10T02:53:23.790" Score="14" ViewCount="" Body="&lt;p&gt;People skills can be quite useful.&lt;/p&gt;&#xA;" OwnerUserId="990" LastActivityDate="2010-09-10T02:53:23.790" CommentCount="4" />
  <row Id="2392" PostTypeId="2" ParentId="502" CreationDate="2010-09-10T02:57:47.900" Score="0" ViewCount="" Body="&lt;p&gt;Hello world, followed by a very simple prime number generator, then whatever is on my mind at the time.&lt;/p&gt;&#xA;" OwnerUserId="990" LastActivityDate="2010-09-10T02:57:47.900" CommunityOwnedDate="2010-09-10T02:57:47.900" />
  <row Id="2394" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T03:01:44.143" Score="148" ViewCount="" Body="&lt;p&gt;To market Neal Stephenson's sci-fi thriller Snow Crash, I was asked to write a &quot;benign&quot; computer virus. It would &quot;benignly&quot; pretend to take over the user's computer and replace the screen with snow, a.k.a., a &quot;snow crash.&quot; After a minute or so of snow, the snow would fade out and be replaced by an advertisement for the book. This would be &quot;benign,&quot; you see. The virus would spread through normal means, but nobody would mind because after taking over their computer &quot;you'd just get a fun ad and then be relieved that nothing bad happened to your computer.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was actually told to do this at a major worldwide corporation. I had to write a memo explaining all the laws this would break and all 17 bad things that could happen if they really made me implement this.&lt;/p&gt;&#xA;" OwnerUserId="30" LastEditorUserId="30" LastEditorDisplayName="" LastEditDate="2010-09-10T20:30:19.007" LastActivityDate="2010-09-10T20:30:19.007" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="13" />
  <row Id="2396" PostTypeId="2" ParentId="2227" CreationDate="2010-09-10T03:05:39.910" Score="3" ViewCount="" Body="&lt;p&gt;Algorithms, this can distinguish great programmers from ordinary programmers.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-10T03:05:39.910" />
  <row Id="2397" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T03:10:03.270" Score="0" ViewCount="" Body="&lt;h1&gt;IBM 1401 Assembler&lt;/h1&gt;&#xA;" OwnerUserId="992" LastEditorUserId="1013" LastEditorDisplayName="" LastEditDate="2010-09-10T06:26:52.403" LastActivityDate="2010-09-10T06:26:52.403" CommunityOwnedDate="2010-09-10T03:10:03.270" CommentCount="2" />
  <row Id="2398" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T03:19:31.563" Score="2" ViewCount="" Body="&lt;h1&gt;GW-BASIC&lt;/h1&gt;&#xA;" OwnerUserId="479" LastActivityDate="2010-09-10T03:19:31.563" CommunityOwnedDate="2010-09-10T03:19:31.563" />
  <row Id="2399" PostTypeId="2" ParentId="2138" CreationDate="2010-09-10T03:21:07.527" Score="4" ViewCount="" Body="&lt;p&gt;My first Windows Form app which was only a lot of very bad missaligned controls all over the form without any functionality  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was something like this&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/xzIq9.png&quot; alt=&quot;Crappy Form&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="232" LastEditorUserId="232" LastEditorDisplayName="" LastEditDate="2010-09-10T04:13:44.377" LastActivityDate="2010-09-10T04:13:44.377" CommentCount="1" />
  <row Id="2400" PostTypeId="2" ParentId="2254" CreationDate="2010-09-10T03:27:33.490" Score="0" ViewCount="" Body="&lt;p&gt;A4Tech Natural A Slim Keyboard. It's cheap, comfortable and it works great for gaming as well.&#xA;&lt;img src=&quot;http://i.imgur.com/rbqkO.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-09-10T03:27:33.490" CommunityOwnedDate="2011-01-17T21:43:24.260" />
  <row Id="2401" PostTypeId="2" ParentId="2254" CreationDate="2010-09-10T03:32:58.927" Score="0" ViewCount="" Body="&lt;p&gt;I really agree with &lt;a href=&quot;http://stackoverflow.com/questions/687/keyboard-for-programmers&quot;&gt;this&lt;/a&gt; StackOverflow thread. I have the top rated keyboard there, the Microsoft Ergonomic 4000 and it really is a beauty to program with. In fact, it's my second one after someone accidentally spilled liquid all over my previous one.&lt;/p&gt;&#xA;" OwnerUserId="515" LastActivityDate="2010-09-10T03:32:58.927" CommunityOwnedDate="2011-01-17T21:43:24.260" />
  <row Id="2402" PostTypeId="2" ParentId="272" CreationDate="2010-09-10T03:45:09.750" Score="0" ViewCount="" Body="&lt;h2&gt;IT Consultant&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;It's an upgrade from Code Monkey, that's for sure.&lt;/p&gt;&#xA;" OwnerUserId="965" LastActivityDate="2010-09-10T03:45:09.750" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="2403" PostTypeId="2" ParentId="326" CreationDate="2010-09-10T03:45:10.983" Score="3" ViewCount="" Body="&lt;p&gt;I swear by a personal Wiki that sits in a single file: &lt;a href=&quot;http://www.tiddlywiki.com/&quot; rel=&quot;nofollow&quot;&gt;TiddlyWiki&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And GTD-style list manager on the top of it: &lt;a href=&quot;http://www.dcubed.ca/&quot; rel=&quot;nofollow&quot;&gt;d-cubed&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is able to handle large amounts of project support information (not only TODO items) and a lot of information that is not directly related to action items and which I wouldn't imagine putting into any other TODO list manager application.&lt;/p&gt;&#xA;" OwnerUserId="703" LastActivityDate="2010-09-10T03:45:10.983" CommunityOwnedDate="2010-09-17T07:53:09.223" CommentCount="2" />
  <row Id="2404" PostTypeId="2" ParentId="2227" CreationDate="2010-09-10T03:53:28.117" Score="4" ViewCount="" Body="&lt;p&gt;Two crucial non-language skills are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Source code management and how to&#xA;work with code shared with other&#xA;developers.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The differences and relative merits and drawbacks of&#xA;development methodologies (Agile,&#xA;RUP, etc.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="194" LastActivityDate="2010-09-10T03:53:28.117" />
  <row Id="2406" PostTypeId="2" ParentId="1952" CreationDate="2010-09-10T03:54:57.487" Score="0" ViewCount="" Body="&lt;p&gt;I don't know about a website that helps you search for open source projects from detailed topics like you're looking for, but sourceforge has some categories &lt;a href=&quot;http://sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;that are worth looking for&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, I would search Google for &quot;&lt;a href=&quot;http://www.google.com.br/search?sourceid=chrome&amp;amp;ie=UTF-8&amp;amp;q=Parallel+and+distributed+computing+open+source&quot; rel=&quot;nofollow&quot;&gt;Parallel and distributed computing open source&lt;/a&gt;&quot; on google and try to find something. I'm supposing  you're into learning a lot of new stuff, from programming languages to operating systems, as long as the project is about the topics you're interested in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're looking for a simpler approach, you can try to help projects already asking for help on &lt;a href=&quot;http://openhatch.org/search/?q=&amp;amp;toughness=bitesize&quot; rel=&quot;nofollow&quot;&gt;OpenHatch&lt;/a&gt;: it has some filters by &lt;code&gt;Languages&lt;/code&gt;, &lt;code&gt;Projects&lt;/code&gt; and &lt;code&gt;Toughness&lt;/code&gt;: you can even &lt;a href=&quot;http://openhatch.org/+projects/OpenHatch&quot; rel=&quot;nofollow&quot;&gt;contribute do OpenHatch itself&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="970" LastActivityDate="2010-09-10T03:54:57.487" />
  <row Id="2407" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T04:01:28.180" Score="11" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Logo_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;LOGO&lt;/a&gt;&lt;/h1&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-10T04:01:28.180" CommunityOwnedDate="2010-09-10T04:01:28.180" CommentCount="2" />
  <row Id="2409" PostTypeId="2" ParentId="1952" CreationDate="2010-09-10T04:03:45.977" Score="0" ViewCount="" Body="&lt;p&gt;One open source project that comes to mind is &lt;a href=&quot;http://code.google.com/p/nativeclient/&quot; rel=&quot;nofollow&quot;&gt;NativeClient&lt;/a&gt;. I'm not sure what the scope for contribution is but its open source and there is at least some possibly interesting suggestions &lt;a href=&quot;http://code.google.com/p/nativeclient/wiki/Ideas&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;/&lt;/p&gt;&#xA;" OwnerUserId="991" LastActivityDate="2010-09-10T04:03:45.977" />
  <row Id="2410" PostTypeId="1" CreationDate="2010-09-10T04:07:51.117" Score="20" ViewCount="920" Body="&lt;p&gt;I am referring to explaining to the non-programmer what programming is. I made sure to search for similar questions before creating this one, but the few ones I did find seemed to dodge the question, and I specifically would like to see some metaphors or analogies. I personally find it easier to explain something technical to someone through the use of metaphors or analogies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason I'm interested in this is because many people encounter the work of a programmer on a daily basis, but if you ask the average person what a programmer is or does, they don't really know. This leads to certain situations of misunderstanding (ex. &quot;[...] but I thought you were good with computers!&quot;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really would like to find the best one out there. I would like to be able to easily explain to someone what my career choice is about. Of course, at least the general idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally don't have a solid one, but I have long thought about it and I have usually gravitated towards the 'language' metaphor, where we happen to know a language that computers understand, and therefore we are able to tell computers what to do, or &quot;teach&quot; them, to solve our problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Imagine that in an alternate reality, humanoid robots with artificial intelligence exist, and some people are able to communicate with them through a common language, which is a variation of English. These people who can communicate with the robots are able to teach them how to solve certain problems or do certain tasks, like doing our chores.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Well, although robots like that don't exist yet, programmers of our time are like those people, but instead of communicating with the robots, they communicate with computers. Programmers &quot;teach&quot; the computers how to perform certain tasks or solve certain problems by means of &lt;em&gt;software&lt;/em&gt; which they create by using this &quot;common language&quot;.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Programmers and this &quot;common language&quot; are what give us things like email, websites, video games, word processors, smart phones (&lt;em&gt;to put it simply&lt;/em&gt;), and many other things which we use on a daily basis.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't mean to put programming on the throne or anything, it's just the best metaphor I could come up with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure someone will find some issue with this one, it's probably a bit contrived, but then again that's why I'm asking this question.&lt;/p&gt;&#xA;" OwnerUserId="515" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T16:05:36.067" LastActivityDate="2011-03-03T17:31:58.197" CommunityOwnedDate="2011-03-03T17:06:14.173" Title="What's a good Programming Metaphor?" Tags="&lt;programming-languages&gt;&lt;non-programmers&gt;" AnswerCount="21" CommentCount="3" FavoriteCount="8" />
  <row Id="2411" PostTypeId="2" ParentId="1371" CreationDate="2010-09-10T04:08:22.473" Score="8" ViewCount="" Body="&lt;p&gt;When non-technical managers start insisting on making technical decisions that they are in no way qualified to make.  Big, big red-flag!&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-10T04:08:22.473" CommunityOwnedDate="2011-01-23T19:41:07.757" />
  <row Id="2412" PostTypeId="2" ParentId="2331" CreationDate="2010-09-10T04:11:20.170" Score="4" ViewCount="" Body="&lt;p&gt;The ability to turn counterclockwise in LOGO.  Wtf, lets just turn clockwise &lt;code&gt;360 - x&lt;/code&gt; degrees. &lt;/p&gt;&#xA;" OwnerUserId="360" LastActivityDate="2010-09-10T04:11:20.170" CommunityOwnedDate="2010-09-10T04:11:20.170" CommentCount="8" />
  <row Id="2414" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T04:25:50.323" Score="0" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Liberty_BASIC&quot; rel=&quot;nofollow&quot;&gt;Liberty Basic&lt;/a&gt;&lt;/h1&gt;&#xA;" OwnerUserId="981" LastActivityDate="2010-09-10T04:25:50.323" CommunityOwnedDate="2010-09-10T04:25:50.323" />
  <row Id="2415" PostTypeId="2" ParentId="2254" CreationDate="2010-09-10T04:27:30.527" Score="7" ViewCount="" Body="&lt;p&gt;I tried the Microsoft Natural Ergonomic Keyboard 4000 that everybody seem to rave about but I couldn't get used to it. It &lt;em&gt;feels&lt;/em&gt; nice when you put your hands on it, but in actual use I felt like it put too much strain on my fingers, whether because of its size or because of the weight required to press the keys, which was slightly more than the amount of weight you need for laptop keyboards. In the end I discovered that the &lt;a href=&quot;http://www.amazon.com/Microsoft-Comfort-Curve-Keyboard-B2L-00002/dp/B0009ZBRS0&quot; rel=&quot;nofollow&quot;&gt;Microsoft Comfort Curve 2000&lt;/a&gt;, one of their cheapest and most entry level ergonomic keyboard, is the best fit for me. The curve does make a difference, it is very flat so I can strike they keys from every angle I feel is comfortable, and the keys are easier to press. &#xA;&lt;img src=&quot;http://i.imgur.com/pfl4w.jpg&quot; alt=&quot;alt text&quot;&gt;&#xA;I will probably give the 4000 another chance in the future, but for now I'm satisfied. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-10T04:27:30.527" CommunityOwnedDate="2011-01-17T21:43:24.260" CommentCount="3" />
  <row Id="2416" PostTypeId="2" ParentId="2284" CreationDate="2010-09-10T04:30:31.373" Score="6" ViewCount="" Body="&lt;p&gt;Well, since you found my serious answer too serious, here's a silly one:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd get bitten by a radioactive CPU and gain super-coding powers.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-10T04:30:31.373" />
  <row Id="2417" PostTypeId="2" ParentId="2323" CreationDate="2010-09-10T04:32:35.957" Score="5" ViewCount="" Body="&lt;p&gt;Easy...PHP &lt;strong&gt;isnt&lt;/strong&gt; considered the darkside of programming.  In certain circles it might be fashionable to bash it, but its still one of the most popular languages out there.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP's problem is that it is very approachable for beginners.  That means there's a lot of crappy PHP code out there that was written by beginners.  Thats not the &lt;em&gt;language's&lt;/em&gt; fault.  If anything, its an indicator that PHP has brought a lot of people into programming as hobby or career. &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-10T04:32:35.957" CommentCount="7" />
  <row Id="2418" PostTypeId="2" ParentId="2410" CreationDate="2010-09-10T04:32:53.787" Score="4" ViewCount="" Body="&lt;p&gt;The best metaphor for anything is itself.  Anything different will lose some accuracy.  As such, picking the best metaphor depends on what, specifically, you want to capture about programing.  Since there will be a lot of answers given here about coding metaphors, I'll answer with the classic metaphor for the development process as a whole:&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Building Construction&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;The most common aspect of this metaphor is that a physical architect is somewhat analogous to a software architect.  Here are a few other parallels:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Changes are cheaper and cheaper the earlier you make them.  That is, you can move one line on paper now or 10 tons in cement later.&lt;/li&gt;&#xA;&lt;li&gt;A building without a proper plan will tend to collapse&lt;/li&gt;&#xA;&lt;li&gt;The builders attempt to implement what the client wants.  If the client doesn't accurately describe what they want the building to look like (or there is some other failure in communication), it'll be costly to change.&lt;/li&gt;&#xA;&lt;li&gt;There are certain laws of physics that cannot be bent.  Just as a three-hundred foot wide 2nd story cannot be built on a 100-foot wide 1st story, feature X cannot be built without a robust subsystem Y.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Of course, like any metaphor, it has its limitations.  Some flaws with it:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Buildings are 1-time use; you build it somewhere, and there it stays.  You can't copy it a million times for a million different users with a million different needs at zero incremental cost.&lt;/li&gt;&#xA;&lt;li&gt;Buildings are considerably more immutable than software.&lt;/li&gt;&#xA;&lt;li&gt;There's no clear analogy to building material cost.  A line of code costs nothing- only the time it takes to produce it costs money.&lt;/li&gt;&#xA;&lt;li&gt;The incremental architecture that is (depending on who you ask) possible with software is not possible with construction, where you design it once, then build it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So, like any analogy, it depends what you're trying to explain.  Be wary of over-relying on any one metaphor, or your customer will start wondering what the property taxes on his new payroll system will be.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-10T04:32:53.787" CommunityOwnedDate="2011-03-03T17:06:14.173" CommentCount="4" />
  <row Id="2419" PostTypeId="2" ParentId="2206" CreationDate="2010-09-10T04:41:13.833" Score="2" ViewCount="" Body="&lt;p&gt;Software Developer&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems to be so generic that it could mean whatever you want it to mean. My degree was in Software Engineering though.&lt;/p&gt;&#xA;" OwnerUserId="688" LastActivityDate="2010-09-10T04:41:13.833" />
  <row Id="2421" PostTypeId="2" ParentId="2410" CreationDate="2010-09-10T04:49:15.500" Score="13" ViewCount="" Body="&lt;p&gt;I write very, very detailed instructions for a very, very dumb machine. &lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-10T04:49:15.500" CommunityOwnedDate="2011-03-03T17:06:14.173" />
  <row Id="2422" PostTypeId="2" ParentId="2254" CreationDate="2010-09-10T04:50:23.493" Score="1" ViewCount="" Body="&lt;p&gt;I've been very happy with the &lt;a href=&quot;http://gdgt.com/logitech/lx/710/&quot; rel=&quot;nofollow&quot;&gt;Logitech LX 710&lt;/a&gt;, which has a nice key action and none of the annoying curved-keyboard stuff.  It also hides the Insert key way up in the top right corner, so you can't hit it on accident.  I don't use the customizable buttons at all, but overall, it's a great keyboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/iBUBx.jpg&quot; alt=&quot;Logitech LX 710&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="36" LastActivityDate="2010-09-10T04:50:23.493" CommunityOwnedDate="2011-01-17T21:43:24.260" CommentCount="4" />
  <row Id="2424" PostTypeId="2" ParentId="2254" CreationDate="2010-09-10T05:03:38.017" Score="9" ViewCount="" Body="&lt;p&gt;I'm a big fan of the Logitech Wave:&#xA;&lt;img src=&quot;http://i.imgur.com/w0Frk.jpg&quot; alt=&quot;Logitech Wave&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The keys are just the right size and spacing, and it's the best keyboard I've ever typed on. The Home/Delete/End key block took a bit of getting used to, but ultimately it wasn't a dealbreaker for me.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-10T05:03:38.017" CommunityOwnedDate="2011-01-17T21:43:24.260" CommentCount="7" />
  <row Id="2425" PostTypeId="2" ParentId="2254" CreationDate="2010-09-10T05:22:08.487" Score="1" ViewCount="" Body="&lt;p&gt;I like the keyboard from &lt;a href=&quot;http://www.deckkeyboards.com/product_info.php?products_id=30&quot; rel=&quot;nofollow&quot;&gt;Deck&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifically, the small form factor.  It looks cool and it feels nice to type on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/rAtlN.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-10T05:22:08.487" CommunityOwnedDate="2011-01-17T21:43:24.260" CommentCount="2" />
  <row Id="2426" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T05:26:46.780" Score="6" ViewCount="" Body="&lt;h1&gt;FORTRAN IV.&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Remember: &lt;strong&gt;Real&lt;/strong&gt; programmers can write Fortran in any language!&lt;/p&gt;&#xA;" OwnerUserId="902" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-09-18T18:59:28.597" LastActivityDate="2010-09-18T18:59:28.597" CommunityOwnedDate="2010-09-10T05:26:46.780" CommentCount="3" />
  <row Id="2427" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T05:29:35.840" Score="3" ViewCount="" Body="&lt;h1&gt;BBC BASIC&lt;/h1&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-10T05:29:35.840" CommunityOwnedDate="2010-09-10T05:29:35.840" />
  <row Id="2428" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T05:31:19.770" Score="8" ViewCount="" Body="&lt;h1&gt;Java&lt;/h1&gt;&#xA;" OwnerUserId="1005" LastActivityDate="2010-09-10T05:31:19.770" CommunityOwnedDate="2010-09-10T05:31:19.770" />
  <row Id="2429" PostTypeId="2" ParentId="2339" CreationDate="2010-09-10T05:31:46.537" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;No matter&lt;/strong&gt; which language you use, &lt;strong&gt;rely on your IDE&lt;/strong&gt; to speed up development&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Have you ever heard about &lt;strong&gt;code Template&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;What about &lt;strong&gt;code completion&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;You can build your own module used by your IDE which fullfil tasks needed to develop your application&lt;/li&gt;&#xA;&lt;li&gt;Plugin&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Other resources includes&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Drag-and-drop Tools&lt;/li&gt;&#xA;&lt;li&gt;Application generator framework&lt;/li&gt;&#xA;&lt;li&gt;Template engine such as &lt;a href=&quot;http://freemarker.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Freemarker&lt;/a&gt; and &lt;a href=&quot;http://scalate.fusesource.org/&quot; rel=&quot;nofollow&quot;&gt;Scalate&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1002" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-11-02T21:34:22.530" LastActivityDate="2010-11-02T21:34:22.530" CommentCount="1" />
  <row Id="2431" PostTypeId="2" ParentId="1338" CreationDate="2010-09-10T05:39:07.333" Score="9" ViewCount="" Body="&lt;p&gt;I did code reviews on a project led by a C++ first timer who decided that all class member functions should be prefixed with the class name and visibility:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class MyClass&#xA;{&#xA;   public:&#xA;      void MyClass_Public_setValue(int value);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1006" LastActivityDate="2010-09-10T05:39:07.333" CommunityOwnedDate="2010-09-10T05:39:07.333" CommentCount="2" />
  <row Id="2432" PostTypeId="2" ParentId="2233" CreationDate="2010-09-10T05:39:43.960" Score="17" ViewCount="" Body="&lt;p&gt;Toys, whiteboard, books, fan, water, and more toys.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/mPEs9.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-10T05:39:43.960" CommunityOwnedDate="2010-09-17T12:07:03.760" CommentCount="5" />
  <row Id="2433" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T05:40:09.470" Score="3" ViewCount="" Body="&lt;h1&gt;Python&lt;/h1&gt;&#xA;" OwnerUserId="998" LastActivityDate="2010-09-10T05:40:09.470" CommunityOwnedDate="2010-09-10T05:40:09.470" />
  <row Id="2434" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T05:43:00.697" Score="0" ViewCount="" Body="&lt;h1&gt;PL/1&lt;/h1&gt;&#xA;" OwnerUserId="1006" LastEditorUserId="902" LastEditorDisplayName="" LastEditDate="2010-09-10T06:15:39.807" LastActivityDate="2010-09-10T06:15:39.807" CommunityOwnedDate="2010-09-10T05:43:00.697" CommentCount="1" />
  <row Id="2435" PostTypeId="2" ParentId="2233" CreationDate="2010-09-10T05:43:54.160" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Stapler&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you remember&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Excuse me, I believe you have my&#xA;  stapler... &#xA;  ~ Milton Waddams from &lt;a href=&quot;http://www.imdb.com/title/tt0151804/&quot; rel=&quot;nofollow&quot;&gt;Office Space&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-09-10T05:43:54.160" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="2436" PostTypeId="2" ParentId="1745" CreationDate="2010-09-10T05:45:30.350" Score="0" ViewCount="" Body="&lt;p&gt;Why do programmers insist on writing bugs? (Coming from a marketing+tester person that can never get a bug report done right).&lt;/p&gt;&#xA;" LastActivityDate="2010-09-10T05:45:30.350" CommunityOwnedDate="2010-09-10T05:45:30.350" />
  <row Id="2437" PostTypeId="2" ParentId="2331" CreationDate="2010-09-10T05:47:26.397" Score="4" ViewCount="" Body="&lt;p&gt;Access modifiers in Java with package private language default and private programming convention default.&lt;/p&gt;&#xA;" OwnerUserId="998" LastActivityDate="2010-09-10T05:47:26.397" />
  <row Id="2439" PostTypeId="2" ParentId="2138" CreationDate="2010-09-10T05:55:46.347" Score="1" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;(define (bogosort seq)&#xA;  (if (sorted? seq)&#xA;      seq&#xA;      (bogosort (shuffle seq))))&#xA;(define (sorted? seq)&#xA;  (or (null? seq)&#xA;      (null? (cdr seq))&#xA;      (and (&amp;lt; (car seq) (cadr seq))&#xA;           (sorted? (cdr seq)))))&#xA;(define (shuffle seq)&#xA;  (let ((len (length seq)))&#xA;    (if (= len 0)&#xA;        '()&#xA;        (let ((item (list-ref seq (random len))))&#xA;          (cons item (shuffle (remove item seq)))))))&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="998" LastActivityDate="2010-09-10T05:55:46.347" CommentCount="1" />
  <row Id="2441" PostTypeId="2" ParentId="326" CreationDate="2010-09-10T06:09:35.827" Score="0" ViewCount="" Body="&lt;p&gt;I use GMAIL and other google apps (Google Calendar, Google Maps, etc.) constantly, so I use a Firefox extension that uses the extension &lt;strong&gt;Remember The Milk&lt;/strong&gt;. It's a great task list that integrates well into GMAIL. I also use the Android app for it on my phone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For keeping track of coding stuff (bug tracking and roadmap), I've used &lt;strong&gt;trac&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="981" LastActivityDate="2010-09-10T06:09:35.827" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="2442" PostTypeId="2" ParentId="2233" CreationDate="2010-09-10T06:12:41.437" Score="7" ViewCount="" Body="&lt;p&gt;A book on discrete math and probability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A book on algorithms and algorithm design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scratch paper.&lt;/p&gt;&#xA;" OwnerUserId="998" LastActivityDate="2010-09-10T06:12:41.437" CommunityOwnedDate="2010-09-17T12:07:03.760" CommentCount="1" />
  <row Id="2443" PostTypeId="2" ParentId="1913" CreationDate="2010-09-10T06:14:03.473" Score="1" ViewCount="" Body="&lt;p&gt;SublimeText is the text editor which got me away from Notepad after 10+ years - it's got some great features, and while it's commercial it has an unlimited use trial available.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-10T06:14:03.473" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="2444" PostTypeId="2" ParentId="2204" CreationDate="2010-09-10T06:16:33.737" Score="2" ViewCount="" Body="&lt;p&gt;Break nested components (especially repeated ones) out into separate functions (this is easier if your language supports closures) or replace a series of nested loops with a recursion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, indent two spaces instead of four.&lt;/p&gt;&#xA;" OwnerUserId="998" LastActivityDate="2010-09-10T06:16:33.737" CommentCount="3" />
  <row Id="2445" PostTypeId="2" ParentId="2227" CreationDate="2010-09-10T06:21:08.360" Score="1" ViewCount="" Body="&lt;p&gt;Interpreters and compilers.  Yes, they're very language related, but they give you insight into what your language is actually doing.  Write a compiler or interpreter for language X &lt;strong&gt;in language X.&lt;/strong&gt;  The practice with the mental gymnastics required to keep such a project in your head is useful on its own.&lt;/p&gt;&#xA;" OwnerUserId="998" LastActivityDate="2010-09-10T06:21:08.360" />
  <row Id="2446" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T06:24:41.817" Score="-3" ViewCount="" Body="&lt;h1&gt;HTML&lt;/h1&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-09-10T06:24:41.817" CommunityOwnedDate="2010-09-10T06:24:41.817" CommentCount="1" />
  <row Id="2447" PostTypeId="2" ParentId="2233" CreationDate="2010-09-10T06:27:26.973" Score="4" ViewCount="" Body="&lt;p&gt;Legos, of course!&lt;/p&gt;&#xA;" OwnerUserId="1015" LastActivityDate="2010-09-10T06:27:26.973" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="2448" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T06:40:50.463" Score="3" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Microsoft_BASIC&quot; rel=&quot;nofollow&quot;&gt;Microsoft BASIC 1.0&lt;/a&gt;&lt;/h1&gt;&#xA;" OwnerUserId="74" LastActivityDate="2010-09-10T06:40:50.463" CommunityOwnedDate="2010-09-10T06:40:50.463" />
  <row Id="2449" PostTypeId="2" ParentId="2227" CreationDate="2010-09-10T06:48:04.927" Score="2" ViewCount="" Body="&lt;p&gt;Two mandatory skills:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Learn from errors&lt;/li&gt;&#xA;&lt;li&gt;Communication &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="74" LastActivityDate="2010-09-10T06:48:04.927" CommentCount="1" />
  <row Id="2450" PostTypeId="2" ParentId="39" CreationDate="2010-09-10T06:54:31.870" Score="32" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Java is to JavaScript as car is to carpet.&#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; &lt;a href=&quot;http://www.wait-till-i.com/2005/11/08/do-hr-people-even-read-their-job-ads-when-they-get-published/&quot; rel=&quot;nofollow&quot;&gt;Chris Heilmann&lt;/a&gt; &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="471" LastActivityDate="2010-10-11T14:06:59.917" CommunityOwnedDate="2010-09-10T06:54:31.870" CommentCount="2" />
  <row Id="2451" PostTypeId="2" ParentId="1972" CreationDate="2010-09-10T06:57:06.980" Score="1" ViewCount="" Body="&lt;p&gt;The very first sentence of the introduction to the &lt;a href=&quot;http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-3.html#%_chap_Temp_3&quot; rel=&quot;nofollow&quot;&gt;Revised^5 Report on the Algorithmic Language Scheme&lt;/a&gt; reads &quot;Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Add procedure closures, higher-order functions, and tail recursion (or just any reasonable tolerance for recursion).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Subtract access modifiers and the bloated generic system for containers (leave generic procedures).&lt;/p&gt;&#xA;" OwnerUserId="998" LastEditorUserId="998" LastEditorDisplayName="" LastEditDate="2010-09-10T07:04:28.520" LastActivityDate="2010-09-10T07:04:28.520" />
  <row Id="2452" PostTypeId="2" ParentId="1972" CreationDate="2010-09-10T07:08:22.627" Score="0" ViewCount="" Body="&lt;p&gt;A language supporting &lt;a href=&quot;http://martinfowler.com/bliki/IllustrativeProgramming.html&quot; rel=&quot;nofollow&quot;&gt;Illustrative Programming&lt;/a&gt; or &lt;a href=&quot;http://en.wikipedia.org/wiki/Intentional_programming&quot; rel=&quot;nofollow&quot;&gt;Intentional Programming&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-09-10T07:08:22.627" />
  <row Id="2453" PostTypeId="2" ParentId="2233" CreationDate="2010-09-10T07:09:28.283" Score="9" ViewCount="" Body="&lt;p&gt;As you can see from all the answers, the answer to your question is &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Whatever the heck I feel like putting on my desk&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1018" LastActivityDate="2010-09-10T07:09:28.283" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="2454" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T07:21:57.823" Score="2" ViewCount="" Body="&lt;h1&gt;Atari ST BASIC&lt;/h1&gt;&#xA;" OwnerUserId="1020" LastActivityDate="2010-09-10T07:21:57.823" CommunityOwnedDate="2010-09-10T07:21:57.823" />
  <row Id="2455" PostTypeId="2" ParentId="2329" CreationDate="2010-09-10T07:23:16.713" Score="0" ViewCount="" Body="&lt;p&gt;For programming issues I tend to look at bookmark websites using tags for example - &lt;a href=&quot;http://www.delicious.com/tag/programming&quot; rel=&quot;nofollow&quot;&gt;http://www.delicious.com/tag/programming&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another resource to check out are books, sometimes a good book about a topic can give you just what you are looking for. So &lt;a href=&quot;http://books.google.com/&quot; rel=&quot;nofollow&quot;&gt;Google Book Search&lt;/a&gt; is a good way to identify the books that might be of help.&lt;/p&gt;&#xA;" OwnerUserId="107" LastActivityDate="2010-09-10T07:23:16.713" />
  <row Id="2456" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T07:24:52.263" Score="5" ViewCount="" Body="&lt;h1&gt;C++&lt;/h1&gt;&#xA;" OwnerUserId="839" LastActivityDate="2010-09-10T07:24:52.263" CommunityOwnedDate="2010-09-10T07:24:52.263" />
  <row Id="2457" PostTypeId="2" ParentId="279" CreationDate="2010-09-10T07:25:30.013" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;yield foreach&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because enumerating recursive data structures is a royal pain without it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Managed C# compiler that can be called as a service, or hooked from compiling code&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This would simplify dynamic codegen, and open up all kinds of meta-programming possibilities. I'm imagining something like what Boo currently supports. &lt;/p&gt;&#xA;" OwnerUserId="819" LastActivityDate="2010-09-10T07:25:30.013" CommunityOwnedDate="2011-05-10T09:21:11.253" CommentCount="1" />
  <row Id="2458" PostTypeId="2" ParentId="39" CreationDate="2010-09-10T07:31:47.963" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Knowledge is knowledge. And viceversa.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;From a T-shirt.&lt;/p&gt;&#xA;" OwnerUserId="1023" LastEditorUserId="633" LastEditorDisplayName="" LastEditDate="2010-12-16T16:46:06.270" LastActivityDate="2010-12-16T16:46:06.270" CommunityOwnedDate="2010-09-10T07:31:47.963" />
  <row Id="2459" PostTypeId="1" AcceptedAnswerId="2464" CreationDate="2010-09-10T07:54:29.097" Score="1" ViewCount="333" Body="&lt;p&gt;We've been having a discussion in the office surrounding a login page we're developing for a new web application.&#xA;The web application is in intranet-based application, and is mainly used by users who have to use telnet applications as 80% of the daily job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I created the initial page design in Photoshop, which we discussed and all approved.&#xA;However, now I've given it over to one of the other developers to start building, he has noticed that there was no login (or other) button on the page - it's simply has two fields; one for username and the other for password.&#xA;After querying it with me, I stated that it was intentional, as I didn't see the need - most people would just press enter anyway, as that's what they have to do in their telnet application. Then the discussion started...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There were several points made in-so-far as &quot;if there's no button, they won't know what to do&quot; and &quot;they will expect the button and will raise support calls over the page not working&quot;. There were even suggestions that the users would just &quot;sit there&quot; not knowing what to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now.. My question to you fellow programmers is: Do users really need a login button?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm genuinely interested to learn what sort of percentage of end-users would be able to cope with a simple login page that required them to press enter after entering their details to continue. It's important to note, there wouldn't be any on-screen prompt to press enter - they would see a tool tip over the password stating what to do, but that's it!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have a bit of a think on it, then please share your thoughts!&lt;/p&gt;&#xA;" OwnerUserId="1025" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-14T12:09:01.393" LastActivityDate="2010-10-15T22:14:37.587" ClosedDate="2010-10-19T05:01:14.387" Title="Do I really need a login button?" Tags="&lt;best-practices&gt;&lt;websites&gt;&lt;users&gt;" AnswerCount="5" CommentCount="5" FavoriteCount="1" />
  <row Id="2460" PostTypeId="2" ParentId="2254" CreationDate="2010-09-10T08:01:57.997" Score="1" ViewCount="" Body="&lt;p&gt;I want this &lt;a href=&quot;http://ncix.com/products/?sku=30642&amp;amp;vpn=PK17U&amp;amp;manufacture=Saitek&quot; rel=&quot;nofollow&quot;&gt;Saitek Cyborg&lt;/a&gt; mostly because I currently have a &lt;a href=&quot;http://ncix.com/products/?sku=18521&amp;amp;vpn=PZ30AUR&amp;amp;manufacture=Saitek&quot; rel=&quot;nofollow&quot;&gt;Saitek Eclipse&lt;/a&gt;&#xA;its a nice simple keyboard with properly sized keys.  I'm not a fan of the wierd split keyboards that are supposed to be better for you.&#xA;Also I love that i just undo 4 screws with an allen key and I can throw the top part in the dishwasher (or in the sink) for a quick clean.&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-09-10T08:01:57.997" CommunityOwnedDate="2011-01-17T21:43:24.260" />
  <row Id="2461" PostTypeId="2" ParentId="2233" CreationDate="2010-09-10T08:09:42.093" Score="0" ViewCount="" Body="&lt;p&gt;Dilbert day-to-day calendar.&lt;/p&gt;&#xA;" OwnerUserId="562" LastActivityDate="2010-09-10T08:09:42.093" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="2462" PostTypeId="2" ParentId="2323" CreationDate="2010-09-10T08:14:15.080" Score="14" ViewCount="" Body="&lt;p&gt;Because PHP has such a low entry level, anyone can hack together scripts. This is probably why most of the code out there is pretty bad, and why PHP got it's reputation.&lt;/p&gt;&#xA;" OwnerUserId="1026" LastActivityDate="2010-09-10T08:14:15.080" CommentCount="1" />
  <row Id="2463" PostTypeId="1" AcceptedAnswerId="3296" CreationDate="2010-09-10T08:14:43.817" Score="2" ViewCount="204" Body="&lt;p&gt;I'm looking for a way to easily port content driven applications from one mobile platform to another. And recently I've came a cross a &lt;a href=&quot;http://www.grapplemobile.com/&quot; rel=&quot;nofollow&quot;&gt;grapple mobile&lt;/a&gt; that claims that they can compile one code written in js and css to almost all platforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you used it? Are such apps approved by apple? (AFAIK Apple restricted the development to objective-c, c, c++)&lt;/p&gt;&#xA;" OwnerUserId="1032" LastActivityDate="2011-05-14T09:44:23.333" Title="Have you used Grapple mobile?" Tags="&lt;iphone&gt;&lt;mobile&gt;" AnswerCount="2" />
  <row Id="2464" PostTypeId="2" ParentId="2459" CreationDate="2010-09-10T08:17:53.490" Score="12" ViewCount="" Body="&lt;p&gt;No login button would be perfectly ok for desktop users, but there may be problems with mobile devices. Especially touch phones. For example: I have bada phoe and there's no 'enter' on virtual keyboard. There's 'enter' that makes new line in multiline textboxes, but it has no effect like 'enter' key on desktop. &lt;/p&gt;&#xA;" OwnerUserId="1027" LastActivityDate="2010-09-10T08:17:53.490" CommentCount="5" />
  <row Id="2465" PostTypeId="2" ParentId="2196" CreationDate="2010-09-10T08:20:53.880" Score="4" ViewCount="" Body="&lt;p&gt;Have a read of some of the following books:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Refactoring - Improving the Design of Existing Code (Object Technology Series)&#xA;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201485672&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.co.uk/Refactoring-Improving-Design-Existing-Technology/dp/0201485672/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1284106703&amp;amp;sr=8-1&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Refactoring To Patterns&#xA;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321213351&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.co.uk/Refactoring-Patterns-Addison-Wesley-Signature-Kerievsky/dp/0321213351/ref=sr_1_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1284106703&amp;amp;sr=8-2&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clean Code: A Handbook of Agile Software Craftsmanship&#xA;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0132350882&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.co.uk/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/ref=sr_1_4?ie=UTF8&amp;amp;s=books&amp;amp;qid=1284106703&amp;amp;sr=8-4&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All three come highly recommended!&lt;/p&gt;&#xA;" OwnerUserId="1025" LastActivityDate="2010-09-10T08:20:53.880" CommentCount="1" />
  <row Id="2467" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T08:33:10.240" Score="0" ViewCount="" Body="&lt;h1&gt;TI-57 machine code&lt;/h1&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-09-10T08:33:10.240" CommunityOwnedDate="2010-09-10T08:33:10.240" CommentCount="2" />
  <row Id="2469" PostTypeId="2" ParentId="2459" CreationDate="2010-09-10T08:37:04.013" Score="8" ViewCount="" Body="&lt;p&gt;The convention of web applications is to have a login button. Adding one involves minimum effort and doesn't stop people who just want to press 'Enter' from doing so. Therefore I can't see any valid reason not too. The fact that most people won't use it is not a reason in itself - many applications have features that the majority of people won't use. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you have to ask yourself whether a matter of principle, which this seems to be, should get in the way of making a sensible compromise that doesn't in anyway diminish your application.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-10T08:37:04.013" CommentCount="4" />
  <row Id="2470" PostTypeId="2" ParentId="2196" CreationDate="2010-09-10T08:41:19.317" Score="2" ViewCount="" Body="&lt;p&gt;Choose a good text editor and be a master with it. Many programmers are very productive writing and editing code with &lt;code&gt;vi&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-09-10T08:41:19.317" CommentCount="1" />
  <row Id="2471" PostTypeId="2" ParentId="1338" CreationDate="2010-09-10T08:56:26.110" Score="3" ViewCount="" Body="&lt;p&gt;I'm forced to have XML documentation for all classes and class members. Including private.&#xA;I'm encuraged to use default ghostdoc comments.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class User &#xA;{&#xA;    /// &amp;lt;summary&amp;gt;&#xA;    /// the _userID&#xA;    /// &amp;lt;/summary&amp;gt;&#xA;    private int _userID;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1035" LastActivityDate="2010-09-10T08:56:26.110" CommunityOwnedDate="2010-09-10T08:56:26.110" CommentCount="3" />
  <row Id="2472" PostTypeId="2" ParentId="1338" CreationDate="2010-09-10T08:58:15.703" Score="0" ViewCount="" Body="&lt;p&gt;Beeing forced to add a filedescription in each file. (its a C# project)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// --------------------------------------------------------------------------------------------------------------------&#xA;// &amp;lt;copyright file=&quot;User.cs&quot; company=&quot;Company&quot;&amp;gt;&#xA;//   Copyright (C) 2009 Company. All rights reserved.&#xA;// &amp;lt;/copyright&amp;gt;&#xA;// &amp;lt;summary&amp;gt;&#xA;//   The user.&#xA;// &amp;lt;/summary&amp;gt;&#xA;// --------------------------------------------------------------------------------------------------------------------&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1035" LastActivityDate="2010-09-10T08:58:15.703" CommunityOwnedDate="2010-09-10T08:58:15.703" CommentCount="2" />
  <row Id="2474" PostTypeId="2" ParentId="2066" CreationDate="2010-09-10T08:58:32.240" Score="3" ViewCount="" Body="&lt;p&gt;I used to hit the side of my CRT monitor when in big anger. It actually helped me cooling down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I am very frustated with these flat LCD screens...&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-09-10T08:58:32.240" CommentCount="2" />
  <row Id="2475" PostTypeId="1" CreationDate="2010-09-10T09:05:59.907" Score="6" ViewCount="386" Body="&lt;p&gt;As a programmer and tech freak, there are main two hunger for one:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hunger of technical knowledge&#xA;Hunger of more money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now as per my study the current scenario is you will get bound to no of year exp you have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its like the your money income is directly proportional to the no of experience you have. Its not related the how much technical knowledge you have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to know that if I go for higher education like MS, MTech it will consume 2 years of mine. Will it change the money exp. year relationship? Is it worth to invest 2 years instead consuming more and more practical tech knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And what is the best place to earn more money using your technical knowledge. My domain is J2EE application architecture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;NOTE: This is realtime-realworld question.&lt;/p&gt;&#xA;" OwnerUserId="1038" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-19T19:25:57.307" LastActivityDate="2010-11-19T19:25:57.307" Title="Career choice. Money or Knowledge?" Tags="&lt;career&gt;&lt;advice&gt;&lt;personal-traits&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="2476" PostTypeId="2" ParentId="326" CreationDate="2010-09-10T09:07:46.077" Score="20" ViewCount="" Body="&lt;p&gt;This may seem strange to most programmer folk, but I use paper!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/LM2R0.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, it's a bit slower than typing stuff out, but the benefits really do help with code. I write out any code I want to keep in notes on paper first and more often than not I find errors in it the second I write it down. It's always available on your desk, it's good for using when you've got multiple windows open and finally if someone looks over at you and you're looking intently at your screen and jotting down complicated lines of code onto a piece of paper to work things out it makes you look smarter than you actually are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In all seriousness, there are probably better ways of going about things, but don't knock paper until you've given it a good try. It might surprise you.&lt;/p&gt;&#xA;" OwnerUserId="1037" LastActivityDate="2010-09-10T09:07:46.077" CommunityOwnedDate="2010-09-17T07:53:09.223" CommentCount="7" />
  <row Id="2477" PostTypeId="2" ParentId="2323" CreationDate="2010-09-10T09:08:16.200" Score="10" ViewCount="" Body="&lt;p&gt;For a pretty comprehensive look at the common complaints regarding PHP and a very thoughtful look at why PHP &lt;b&gt;isn't&lt;/b&gt; the &quot;dark side&quot; of programming: &lt;a href=&quot;http://stackoverflow.com/questions/309300/defend-php-convince-me-it-isnt-horrible/&quot;&gt;Defend PHP&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, PHP's bad rap is generally linked to problems that existed in the language prior to PHP 5 and the fact that PHP was very late in coming to the framework party. However, now that its arrived there a number of good frameworks available that all encourage or require a proper MVC architecture and encourage thoughtful object-oriented architectures in applications. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another problem I frequently see among PHP &quot;programmers&quot; is that many of them are not classically trained in programming, its something they picked up along the way which means that the volume of bad code they write before they start writing decent code is much greater than someone who went to school for programming, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another aspect of this is that most newbies to PHP will go to Google to look for &quot;How to do ...&quot; and they'll get three or four posts on how to do that exact thing from other guys who struggled to figure it out and so posted their approach on a blog or whatever. This results in a ton of copying and pasting of code fragments from across the internet into some sort of spaghetti application that has no architecture to speak of. Most of the time newbie programmers won't just stumble across higher-level posts from actual PHP gurus because those guys (or girls) aren't posting code snippets, they're doing things like discussing the validity of frameworks or how parameterized queries are better than escaping variables.&lt;/p&gt;&#xA;" OwnerUserId="53" LastActivityDate="2010-09-10T09:08:16.200" />
  <row Id="2479" PostTypeId="2" ParentId="2339" CreationDate="2010-09-10T09:22:48.103" Score="0" ViewCount="" Body="&lt;p&gt;Outside of the answers that have already been posted I would recommend that you look into coding similar solutions before you start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A guy I went to university with worked as a security consultant after filing a bunch of exploits in company systems (a hobby of his) and more often than not it was his role to come into an office and try to break their systems. He found that he could minimise his time considerably if he had written out the most likely scenarios that he'd need in easily extendible code (he was a C++ wizard). More often than not he'd be able to break a system within less than an hour, simply because he had base code to work from.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also a popular tactic at hackathons, where coders meet to break security in browsers or operating systems. More often than not people go into these places having already written the code they &lt;strong&gt;think&lt;/strong&gt; will work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may be overkill for an event like the Google Code Jam, but a lot of really good programmers I've had the fortune of working with always had code bases that they'd been building collaborately for years to work from.&lt;/p&gt;&#xA;" OwnerUserId="1037" LastActivityDate="2010-09-10T09:22:48.103" />
  <row Id="2481" PostTypeId="2" ParentId="2352" CreationDate="2010-09-10T09:26:11.287" Score="3" ViewCount="" Body="&lt;p&gt;Whilst it's not the merger of two languages, I've always found &lt;strong&gt;&lt;a href=&quot;http://developers.facebook.com/blog/post/358&quot; rel=&quot;nofollow&quot;&gt;HipHop for PHP&lt;/a&gt;&lt;/strong&gt; to be an extremely clever way of keeping logic in PHP as a target language to be run on the server as fast C++.&lt;/p&gt;&#xA;" OwnerUserId="1037" LastActivityDate="2010-09-10T09:26:11.287" />
  <row Id="2482" PostTypeId="2" ParentId="215" CreationDate="2010-09-10T09:31:23.957" Score="2" ViewCount="" Body="&lt;p&gt;I've not done much work on kernels before (they scare me), but I've heard that &lt;a href=&quot;http://kernelnewbies.org/&quot; rel=&quot;nofollow&quot;&gt;http://kernelnewbies.org/&lt;/a&gt; is a fantastic resource if you want to get involved in kernel work. As already mentioned SourceForge is a great place to look if you want to get involved in an open-source kernel-related project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, a similar question has been asked on Stack Overflow before, so you may want to look here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/135637/what-are-some-interesting-small-linux-kernel-projects-to-help-learn-the-source&quot;&gt;What are some interesting, small Linux kernel projects to help learn the source?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1037" LastActivityDate="2010-09-10T09:31:23.957" />
  <row Id="2483" PostTypeId="2" ParentId="2284" CreationDate="2010-09-10T09:39:14.770" Score="20" ViewCount="" Body="&lt;p&gt;Easy...&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;KILL ALL PROGRAMMERS BETTER THAN MYSELF!!!&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Either that, or continuously look for work in places where the level of programmer is several steps above what I am.&lt;/p&gt;&#xA;" OwnerUserId="1037" LastActivityDate="2010-09-10T09:39:14.770" CommentCount="8" />
  <row Id="2484" PostTypeId="2" ParentId="1745" CreationDate="2010-09-10T09:43:45.980" Score="40" ViewCount="" Body="&lt;p&gt;The worst myth: If you are programming for a long time then you can be a Project Manager easily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And that you should become a project manager if you have been programming for a long time.&lt;/p&gt;&#xA;" LastEditorUserId="76" LastEditorDisplayName="" LastEditDate="2010-10-08T02:37:10.267" LastActivityDate="2010-10-08T02:37:10.267" CommunityOwnedDate="2010-09-10T09:43:45.980" CommentCount="5" />
  <row Id="2487" PostTypeId="2" ParentId="2284" CreationDate="2010-09-10T09:59:16.680" Score="6" ViewCount="" Body="&lt;p&gt;I would write a community-based site where I can ask endless programming questions and get the best experts in the industry to answer them.  Maybe with things like badges and user reputation.  Oh wait...&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-10T09:59:16.680" CommentCount="2" />
  <row Id="2489" PostTypeId="2" ParentId="2410" CreationDate="2010-09-10T10:14:21.663" Score="2" ViewCount="" Body="&lt;p&gt;Sometimes I refer to programming as to &lt;strong&gt;controlling mindless zombies&lt;/strong&gt;.  Summing up &lt;a href=&quot;http://coldattic.info/shvedsky/pro/blogs/a-foo-walks-into-a-bar/posts/2&quot; rel=&quot;nofollow&quot;&gt;my blog post&lt;/a&gt; about it:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Like zombies, computers we operate with are very dumb.  It's hard to instruct them to doing anything unless the instructions are detailed&lt;/li&gt;&#xA;&lt;li&gt;The zombie is aggressive and if we miss tiny detail in instructions, leave the creature unhandled, it can crush everything around himself.  The same with computers: a lack of a detail in instructions can make your program crash and destroy your data.&lt;/li&gt;&#xA;&lt;li&gt;You have to know magic if you want to control a zombie.  The same with programming.&lt;/li&gt;&#xA;&lt;li&gt;The more people with brains gather in one place, the more computers they're likely to have.  It seems that brains attract computers--the same way they attract zombies.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-10T10:14:21.663" CommunityOwnedDate="2011-03-03T17:06:14.173" />
  <row Id="2490" PostTypeId="1" CreationDate="2010-09-10T10:18:49.690" Score="26" ViewCount="821" Body="&lt;p&gt;Videos can sometimes be useful for some parts of the software development cycle,&lt;br&gt;&#xA;are there any interesting dedicated TV shows or YouTube/Vimeo channels out there to watch?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example video: &lt;a href=&quot;http://vimeo.com/1653402&quot; rel=&quot;nofollow&quot;&gt;http://vimeo.com/1653402&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:45:56.553" LastActivityDate="2011-04-02T02:07:18.690" Title="Are there any good development TV shows or YouTube channels out there?" Tags="&lt;learning&gt;&lt;free-time&gt;&lt;media&gt;" AnswerCount="12" CommentCount="3" FavoriteCount="37" />
  <row Id="2491" PostTypeId="2" ParentId="1599" CreationDate="2010-09-10T10:20:25.267" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Expecting other people to follow instructions as they were computer application.&lt;/li&gt;&#xA;&lt;li&gt;Pressing every single button in existence (&quot;OK&quot; buttons, power switches, etc.) without prior consulting with its label or description and so forth.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It is funny how many people cannot hold off of touching something new and shiny and... Oh wait it is not working anymore. I think that instruction manuals should be put on the very top of packaging with a &quot;Dangerous!&quot; sign and having poison gas container that propels its content straight to the nostrils if, say, instruction was not opened while trying to further dig into package content (-.&lt;/p&gt;&#xA;" OwnerUserId="1045" LastActivityDate="2010-09-10T10:20:25.267" CommunityOwnedDate="2010-09-10T10:20:25.267" />
  <row Id="2492" PostTypeId="1" CreationDate="2010-09-10T10:25:30.580" Score="12" ViewCount="619" Body="&lt;p&gt;I spent a significant amount of time reading through the entire archive of Coding Horror, but maybe there are some posts that are worthwhile rereading or keeping in my bookmarks.&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-10T12:49:54.980" LastActivityDate="2010-11-11T11:33:19.693" ClosedDate="2010-11-11T20:31:17.567" Title="What are the best posts on Coding Horror?" Tags="&lt;blogs&gt;&lt;posts&gt;" AnswerCount="11" CommentCount="7" FavoriteCount="5" />
  <row Id="2493" PostTypeId="2" ParentId="2492" CreationDate="2010-09-10T10:31:30.263" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2007/06/how-to-advertise-on-your-blog-without-completely-selling-out.html&quot; rel=&quot;nofollow&quot;&gt;How to Advertise on your blog without completely selling out&lt;/a&gt;&lt;/strong&gt;: Far too many websites have poor user experience due to the overuse of ads. Coding Horror doesn't have this problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2008/06/the-ultimate-code-kata.html&quot; rel=&quot;nofollow&quot;&gt;The Ultimate Code Kata&lt;/a&gt;&lt;/strong&gt;: Mastering programming really requires hard work. Here is some very good advice. I hope that one day I might have the time to actually try some of it!&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-10T10:31:30.263" />
  <row Id="2494" PostTypeId="2" ParentId="1095" CreationDate="2010-09-10T10:32:30.303" Score="0" ViewCount="" Body="&lt;p&gt;When I read about UML I tried this on all problems that I was to solve in my C++ course. Fortunatly one of the first examples I tried was to describe a linked list.&lt;br&gt;&#xA;Didn't work.&lt;br&gt;&#xA;That said, coupled with a good modelling process UML is useful. Just because it is for better or worse a standard.&lt;br&gt;&#xA;I would love to see a description language of template meta programming. I think that would help a lot in understanding what is going on in &amp;lt;&amp;lt;&amp;lt;&gt; &gt; &gt;-land&lt;/p&gt;&#xA;" OwnerUserId="1041" LastEditorUserId="1041" LastEditorDisplayName="" LastEditDate="2010-09-10T10:42:28.613" LastActivityDate="2010-09-10T10:42:28.613" />
  <row Id="2495" PostTypeId="2" ParentId="1913" CreationDate="2010-09-10T10:34:21.137" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.farmanager.com/&quot; rel=&quot;nofollow&quot;&gt;Far manager&lt;/a&gt; - Dual panel file manager, has loads of plugins, x64 version. I can't live without it (-.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Putty&lt;/li&gt;&#xA;&lt;li&gt;TortoiseSVN&lt;/li&gt;&#xA;&lt;li&gt;WinMerge&lt;/li&gt;&#xA;&lt;li&gt;SVN Notifier&lt;/li&gt;&#xA;&lt;li&gt;VirtualBox&lt;/li&gt;&#xA;&lt;li&gt;Notepad 2&lt;/li&gt;&#xA;&lt;li&gt;Last.fm (-.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Sorry guys, can't use more than 1 link, need more reputation.&lt;/p&gt;&#xA;" OwnerUserId="1045" LastActivityDate="2010-09-10T10:34:21.137" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="2497" PostTypeId="1" CreationDate="2010-09-10T10:37:23.987" Score="4" ViewCount="275" Body="&lt;p&gt;How useful are infix operators in a programming language? Are they worth the extra complexity they provide? Can you provide any examples where infix operators are better suited to the problem that can't be handled by just overloading the normal operators?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T14:17:25.800" LastActivityDate="2011-05-26T20:39:38.783" Title="How useful are infix operators in a programming language?" Tags="&lt;programming-languages&gt;&lt;syntax&gt;&lt;operators&gt;" AnswerCount="3" CommentCount="4" />
  <row Id="2498" PostTypeId="2" ParentId="2492" CreationDate="2010-09-10T10:37:52.697" Score="0" ViewCount="" Body="&lt;p&gt;I quite liked &lt;a href=&quot;http://www.codinghorror.com/blog/2010/06/whatever-happened-to-voice-recognition.html#endcomments&quot; rel=&quot;nofollow&quot;&gt;&quot;Whatever Happened to Voice Recognition?&quot;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Possibly for the star trek humour.&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-10T10:37:52.697" CommentCount="4" />
  <row Id="2501" PostTypeId="1" AcceptedAnswerId="2895" CreationDate="2010-09-10T10:47:23.673" Score="3" ViewCount="221" Body="&lt;p&gt;Are there any games, toys, books etc that you would recommend for introducing Babies and Toddlers to programming concepts and logical thinking?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How would you introduce concepts like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Sequential&lt;/li&gt;&#xA;&lt;li&gt;Object Orientated&lt;/li&gt;&#xA;&lt;li&gt;Functional&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="96" LastActivityDate="2010-10-01T16:21:03.907" Title="Programming Games for Babies and Toddlers" Tags="&lt;programming-languages&gt;&lt;learning&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="2" />
  <row Id="2502" PostTypeId="2" ParentId="326" CreationDate="2010-09-10T10:47:52.950" Score="0" ViewCount="" Body="&lt;p&gt;I'm trying to ween myself off of todo.txt (in my startup folder in windows) and moving onto simplenote which syncs to everything I use&lt;/p&gt;&#xA;" OwnerUserId="871" LastActivityDate="2010-09-10T10:47:52.950" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="2503" PostTypeId="2" ParentId="2501" CreationDate="2010-09-10T10:49:16.893" Score="2" ViewCount="" Body="&lt;p&gt;Maybe somthing build with &lt;a href=&quot;http://byob.berkeley.edu/&quot; rel=&quot;nofollow&quot;&gt;Scratch&lt;/a&gt; but i really doubt that babies and toddlers already have the mental capacity.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-09-10T10:49:16.893" />
  <row Id="2504" PostTypeId="2" ParentId="2475" CreationDate="2010-09-10T10:58:49.440" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I want to know that if i go for higher education like MS ,MTech. it will consume 2 yr of mine.will it change the money exp. yr relationship? is it worth to invest 2 year instead consuming more n more practical tech knowledge.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This depends on where you would apply for a job, I would suggest checking some vacatures. If you are going for a MS-related job then certification would give you more chance to be accepted over people that have no certification...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;and what is the best place to earn more money using your technical knowledge.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Silicon Valley, &lt;a href=&quot;http://programmers.stackexchange.com/questions/118/best-country-for-getting-a-job/2359#2359&quot;&gt;see here why&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-10T10:58:49.440" CommentCount="1" />
  <row Id="2506" PostTypeId="2" ParentId="2260" CreationDate="2010-09-10T11:07:29.813" Score="3" ViewCount="" Body="&lt;p&gt;Using Dvorak here and it doesn't annoy me while programming...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That people are afraid to switch to Dvorak doesn't mean that Dvorak is bad.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-10T11:07:29.813" CommentCount="6" />
  <row Id="2508" PostTypeId="2" ParentId="2501" CreationDate="2010-09-10T11:24:30.203" Score="0" ViewCount="" Body="&lt;p&gt;Obviously, this suggestion will be more than likely lost on a toddler, programmable toys are probably the best example to show a child if you're inclined to introduce them to programming at an early age. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've heard nothing but good things about &lt;a href=&quot;http://en.wikipedia.org/wiki/Lego_Mindstorms#Programming_languages&quot; rel=&quot;nofollow&quot;&gt;Lego Mindstorms&lt;/a&gt;. You could always introduce it simply as a toy to play with, then show what you can do with it using your choice of language and then introduce some easy stuff to do.&lt;/p&gt;&#xA;" OwnerUserId="1037" LastActivityDate="2010-09-10T11:24:30.203" />
  <row Id="2509" PostTypeId="2" ParentId="2497" CreationDate="2010-09-10T11:50:28.807" Score="8" ViewCount="" Body="&lt;p&gt;I think infix operators stem from mathematics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;2 + 3 * 4&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;is more readable to most people, than&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(+ 2 (* 3 4))&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;because most people are familiar with mathematics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interesting enough in Haskell you can hop between infix and prefix.&#xA;This is using the same funtion &quot;(+)&quot;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(+) 1 2&#xA;1 + 2&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and this is using the same function &quot;elem&quot;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;elem 42 [1,2,42]&#xA;42 `elem` [1,2,42]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-11-02T09:37:57.533" LastActivityDate="2010-11-02T09:37:57.533" CommentCount="4" />
  <row Id="2511" PostTypeId="2" ParentId="2260" CreationDate="2010-09-10T12:05:46.800" Score="1" ViewCount="" Body="&lt;p&gt;There are three standard Dvorak layouts.  There is a two-handed layout, and a one-handed layout for each hand.  You should use the two-handed layout, unless you only have one hand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you type every day on a regular basis, and you make a 100% plunge switch, it will take you about a month to get back up to speed on the Dvorak keyboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bepo appears to be an international version of the Dvorak keyboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been typing Dvorak for 12 years.  I own several of the last DvortyBoards, which are hardware-switchable keyboard layouts.  It's a shame they don't still make those.  They have a Dvorak Lock button which allows you to switch back and forth for Qwerty (perfect for work where Qwerty typers are around) and they're shaped like normal keyboards.&lt;/p&gt;&#xA;" OwnerUserId="166" LastActivityDate="2010-09-10T12:05:46.800" />
  <row Id="2514" PostTypeId="2" ParentId="39" CreationDate="2010-09-10T12:17:44.307" Score="18" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Beware of bugs in the above code; I have only proved it correct, not tried it. &#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; &lt;a href=&quot;http://www-cs-faculty.stanford.edu/~knuth/faq.html&quot; rel=&quot;nofollow&quot; title=&quot;see the bottom question, as of this writing, for details&quot;&gt;Donald Knuth&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1060" LastActivityDate="2010-10-11T13:09:44.210" CommunityOwnedDate="2010-09-10T12:17:44.307" />
  <row Id="2516" PostTypeId="1" AcceptedAnswerId="2522" CreationDate="2010-09-10T12:19:11.133" Score="14" ViewCount="724" Body="&lt;p&gt;If possible write how to avoid this kind of bug (besides testing, of course, please write a specific technique)&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:10:44.110" LastActivityDate="2010-12-13T16:16:56.873" Title="What is the hardest bug to find?" Tags="&lt;experience&gt;&lt;code-quality&gt;&lt;programming-practices&gt;&lt;bugs&gt;" AnswerCount="16" CommentCount="1" FavoriteCount="11" />
  <row Id="2517" PostTypeId="2" ParentId="2260" CreationDate="2010-09-10T12:20:18.187" Score="3" ViewCount="" Body="&lt;p&gt;When I learned it, (once the hands had the muscle memory of the new keymap) I found that none of the hotkeys make sense annymore (&lt;code&gt;Ctrl-C&lt;/code&gt; is now quite awkward, as 'c' is at the qwerty 'i' and not next to 'v'). But that was fixed with some AutoHotKey &lt;em&gt;a la&lt;/em&gt;  &lt;code&gt;^j::^c&lt;/code&gt;. &lt;/p&gt;&#xA;" OwnerUserId="39" LastActivityDate="2010-09-10T12:20:18.187" CommentCount="2" />
  <row Id="2518" PostTypeId="2" ParentId="2331" CreationDate="2010-09-10T12:23:32.670" Score="15" ViewCount="" Body="&lt;p&gt;C and C++ MACROS.  If I ever have to see another compiler error due to someone choosing a standard function name for their macro which screws up my code I'm going to scream.  Let's see the last offending one:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#define vector(int) new VARIANT[int];&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Aaarg!  What have you done with my STL vector!?&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-10T12:23:32.670" CommentCount="7" />
  <row Id="2520" PostTypeId="2" ParentId="2516" CreationDate="2010-09-10T12:25:11.747" Score="16" ViewCount="" Body="&lt;p&gt;The hardest bugs to find are exactly those bugs that you can't reproduce consistently.  Could be from memory corruption, concurrency, or other things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Annoying bugs but not as hard as the above include those that will happen on someone else's computer consistently but not yours.&lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-10T12:32:37.203" LastActivityDate="2010-09-10T12:32:37.203" CommentCount="2" />
  <row Id="2521" PostTypeId="2" ParentId="779" CreationDate="2010-09-10T12:27:13.587" Score="20" ViewCount="" Body="&lt;p&gt;&quot;Can you bring us the secrets of your past employers?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not exactly in these words, but that's the intention.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-10T12:27:13.587" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="1" />
  <row Id="2522" PostTypeId="2" ParentId="2516" CreationDate="2010-09-10T12:28:05.490" Score="25" ViewCount="" Body="&lt;p&gt;Here a list of Unusual software bugs exceptionally difficult to understand and repair:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Unusual_software_bug#Bohrbug&quot; rel=&quot;nofollow&quot;&gt;Bohrbug&lt;/a&gt; - Manifests itself consistently under a well-defined (but possibly unknown) set of conditions&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Unusual_software_bug#Mandelbug&quot; rel=&quot;nofollow&quot;&gt;Mandelbug&lt;/a&gt; - Its causes are so complex that its behaviour appears chaotic or even non-deterministic.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Unusual_software_bug#Heisenbug&quot; rel=&quot;nofollow&quot;&gt;Heisenbug&lt;/a&gt; - Disappears or alters its characteristics when an attempt is made to study it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Unusual_software_bug#Schr.C3.B6dinbug&quot; rel=&quot;nofollow&quot;&gt;Schrödinbug&lt;/a&gt; - Manifests only after someone reading source code or using the program in an unusual way notices that it never should have worked in the first place, at which point the program promptly stops working for everybody until fixed.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Unusual_software_bug#Phase_of_the_Moon_bug&quot; rel=&quot;nofollow&quot;&gt;Phase of the Moon bug&lt;/a&gt; - Manifests only on certain occacions in ways such as if it was dependent on the phase of the moon (thus these bugs are usually time and/or storage dependent).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Unusual_software_bug#Statistical_bug&quot; rel=&quot;nofollow&quot;&gt;Statistical bug&lt;/a&gt; - Can only be detected in aggregates and not in single runs of a section of code.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="74" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-10-16T09:01:03.220" LastActivityDate="2010-10-16T09:01:03.220" CommentCount="3" />
  <row Id="2523" PostTypeId="2" ParentId="2516" CreationDate="2010-09-10T12:28:27.110" Score="1" ViewCount="" Body="&lt;p&gt;I think it depends on the type of application, a low level C or asm is going to have a different &quot;hard&quot; bug compared to a web application running php and javascript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Inconsistency will be a hard one though, when it appears to happen sometimes but not other times.&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-10T12:28:27.110" CommentCount="1" />
  <row Id="2524" PostTypeId="2" ParentId="2516" CreationDate="2010-09-10T12:31:36.037" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://ophir.wordpress.com/2010/05/29/the-hardest-bugs-in-the-world-part-one/&quot; rel=&quot;nofollow&quot;&gt;This series of article&lt;/a&gt; of articles list the hardest bugs in the world.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-10T12:31:36.037" CommentCount="3" />
  <row Id="2525" PostTypeId="2" ParentId="2516" CreationDate="2010-09-10T12:32:15.723" Score="2" ViewCount="" Body="&lt;p&gt;The hardest bug to find is that of your compiler or hardware--when something you write a correct program &lt;em&gt;for&lt;/em&gt; is malfunctioning.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-10T12:32:15.723" CommentCount="1" />
  <row Id="2526" PostTypeId="2" ParentId="729" CreationDate="2010-09-10T12:36:03.670" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.wikitaxi.org&quot; rel=&quot;nofollow&quot;&gt;Wiki Taxi&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-10T12:36:03.670" CommunityOwnedDate="2011-03-07T21:12:42.693" />
  <row Id="2527" PostTypeId="2" ParentId="2410" CreationDate="2010-09-10T12:40:31.053" Score="0" ViewCount="" Body="&lt;p&gt;It is sad but, programming is a work that can be understood only by learning how to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming has several different levels of perception and different from different sides.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At low level it is &quot;write very, very detailed instructions for a very, very dumb machine&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At next level it is dealing with complexity. Building new metaphor to simplify work. Like higher mathematics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From different side its usage of auxiliary technologies like version control, self documented code, project building and testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From other side its building &quot;user&quot; interface (not literally, i mean API also UI), predict possible errors (done by user, data or even itself) and correct react on errors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And finally. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Metaphor for programming is literature. First need to learn the alphabet. But writing a novel at this even not begins.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-10T12:40:31.053" CommunityOwnedDate="2011-03-03T17:06:14.173" />
  <row Id="2528" PostTypeId="2" ParentId="2516" CreationDate="2010-09-10T12:43:44.633" Score="4" ViewCount="" Body="&lt;p&gt;The ones that arise because of inadequate requirements gathering and verification during the specification phase.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Years ago I worked on a CAD package that had been extended to help one user design liquid crystal displays. They designed the anode and cathode on separate layers and then performed a logical AND on the boundaries to see what shapes they'd get when the current was applied.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We had a long running problem where they'd report that the code failed but we couldn't reproduce the bug. Eventually we found the cause. They were using a scaling factor when drawing the shapes which led to rounding errors (we were using floating point values for the calculations - this was in FORTRAN back in the 1980s). Once we realised this we could reproduce the problem and fix it (by converting the routines to double precision).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Had the requirements been properly checked we would have never had this problem.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-10T12:43:44.633" />
  <row Id="2529" PostTypeId="2" ParentId="696" CreationDate="2010-09-10T12:46:37.420" Score="2" ViewCount="" Body="&lt;p&gt;I think this demonstrates &lt;em&gt;just&lt;/em&gt; how crappy a language PHP is.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$a = 'str';&#xA;echo($a.&quot;\n&quot;);&#xA;$a['a'] = 2;&#xA;echo($a.&quot;\n&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This prints:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;str&#xA;2tr&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So, in this short piece of code, PHP happily converted the string &lt;code&gt;'a'&lt;/code&gt; into the integer &lt;code&gt;0&lt;/code&gt; and assigned to &lt;code&gt;$a[0]&lt;/code&gt;. However, &lt;code&gt;(boolean)'a'&lt;/code&gt; is &lt;code&gt;1&lt;/code&gt;, while &lt;code&gt;(int)'a'&lt;/code&gt; is 0. Make sense? I thought not...&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-10T12:46:37.420" CommentCount="10" />
  <row Id="2530" PostTypeId="2" ParentId="2492" CreationDate="2010-09-10T12:47:56.107" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2007/07/index.html&quot; rel=&quot;nofollow&quot;&gt;Yes, But What Have You &lt;em&gt;Done&lt;/em&gt;?&lt;/a&gt;  &lt;/p&gt;&#xA;" OwnerUserId="864" LastActivityDate="2010-09-10T12:47:56.107" />
  <row Id="2531" PostTypeId="2" ParentId="1745" CreationDate="2010-09-10T12:48:10.943" Score="2" ViewCount="" Body="&lt;p&gt;That a manager knows jack-squat about the code that his/her developers are writing.&lt;/p&gt;&#xA;" OwnerUserId="708" LastActivityDate="2010-09-10T12:48:10.943" CommunityOwnedDate="2010-09-10T12:48:10.943" CommentCount="2" />
  <row Id="2532" PostTypeId="2" ParentId="1745" CreationDate="2010-09-10T12:51:02.497" Score="-7" ViewCount="" Body="&lt;p&gt;That comments are actually useful&lt;/p&gt;&#xA;" OwnerUserId="708" LastActivityDate="2010-09-10T12:51:02.497" CommunityOwnedDate="2010-09-10T12:51:02.497" CommentCount="3" />
  <row Id="2533" PostTypeId="2" ParentId="326" CreationDate="2010-09-10T13:11:42.960" Score="0" ViewCount="" Body="&lt;p&gt;I use a .todo file which I read using Textmate with the &lt;a href=&quot;http://pragmactic-osxer.blogspot.com/2007/10/tasks-bundle-for-textmate.html&quot; rel=&quot;nofollow&quot;&gt;task bundle&lt;/a&gt; installed. I place the file at the root of my project folder. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will check some of the applications mentioned in this thread though, It looks interesting. &lt;/p&gt;&#xA;" OwnerUserId="432" LastActivityDate="2010-09-10T13:11:42.960" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="2534" PostTypeId="2" ParentId="1745" CreationDate="2010-09-10T13:12:49.573" Score="18" ViewCount="" Body="&lt;p&gt;Porting a program to C++ will automatically make it run faster.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-10T13:12:49.573" CommunityOwnedDate="2010-09-10T13:12:49.573" CommentCount="8" />
  <row Id="2535" PostTypeId="2" ParentId="1785" CreationDate="2010-09-10T13:13:33.200" Score="5" ViewCount="" Body="&lt;p&gt;Data structures&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-10T13:13:33.200" CommunityOwnedDate="2010-09-15T18:31:41.813" />
  <row Id="2536" PostTypeId="2" ParentId="696" CreationDate="2010-09-10T13:15:05.370" Score="0" ViewCount="" Body="&lt;p&gt;Good&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's everywhere&lt;/li&gt;&#xA;&lt;li&gt;Save and run, no explicit compiling (though I'm sure you can use this with other languages too)&lt;/li&gt;&#xA;&lt;li&gt;Easy to output HTML&lt;/li&gt;&#xA;&lt;li&gt;Very flexible with its dynamic features&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Bad&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Not strict at all&lt;/li&gt;&#xA;&lt;li&gt;No static typing and explicit compiling :P It's a missed opportunity to immediately detect many types of errors, and blocks good IDE support&lt;/li&gt;&#xA;&lt;li&gt;You have to set and tweak many settings (including error reporting and autoloading) in your init code to get a workable environment&lt;/li&gt;&#xA;&lt;li&gt;Doesn't use exceptions by default, and you can make a custom error handler for this but there are still some fatal errors which you can't catch (even if they would be recoverable, or you could at least render a nice error page).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1065" LastEditorUserId="1065" LastEditorDisplayName="" LastEditDate="2010-09-10T13:31:37.437" LastActivityDate="2010-09-10T13:31:37.437" CommentCount="1" />
  <row Id="2537" PostTypeId="2" ParentId="2331" CreationDate="2010-09-10T13:17:07.380" Score="-5" ViewCount="" Body="&lt;p&gt;I'd have to say garbage collection. It does not eliminate the need to think about memory management, but it eliminates the &lt;em&gt;perception&lt;/em&gt; of the need to think about memory management, which all too often eliminates the actual thought, and then you get enormous resource hogs and don't know why.  Especially when &lt;a href=&quot;http://blog.barrkel.com/2009/12/commonly-confused-tidbits-re-net.html&quot; rel=&quot;nofollow&quot;&gt;the behavior of modern generational GCs could be described without too much hyperbole as &quot;one big memory leak by design&quot; anyway.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-10T13:17:07.380" CommentCount="22" />
  <row Id="2539" PostTypeId="2" ParentId="1018" CreationDate="2010-09-10T13:21:57.960" Score="5" ViewCount="" Body="&lt;p&gt;Another job about solving problems whatever tool is available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/39/whats-your-favourite-programming-quote/1568#1568&quot;&gt;See also&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-10T13:21:57.960" CommentCount="2" />
  <row Id="2540" PostTypeId="2" ParentId="39" CreationDate="2010-09-10T13:22:51.377" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;It would seem that perfection is attained not when no more can be added, but when no more can be removed.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Antoine de Saint-Exupery&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1070" LastActivityDate="2010-09-10T13:22:51.377" CommunityOwnedDate="2010-09-10T13:22:51.377" CommentCount="1" />
  <row Id="2541" PostTypeId="1" CreationDate="2010-09-10T13:24:44.523" Score="20" ViewCount="697" Body="&lt;p&gt;What do you do when something makes you angry while programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually Slap the mouse Hard on my desk and go get a coffee or anything, just to calm down&lt;/p&gt;&#xA;" OwnerUserId="19" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-23T13:26:18.977" LastActivityDate="2011-02-24T18:53:06.090" CommunityOwnedDate="2011-02-24T18:42:53.810" Title="How do I constructively and professionally deal with anger when I'm on the job?" Tags="&lt;behavior&gt;&lt;social-skills&gt;&lt;anger-management&gt;" AnswerCount="23" CommentCount="11" FavoriteCount="5" />
  <row Id="2542" PostTypeId="2" ParentId="2541" CreationDate="2010-09-10T13:37:32.913" Score="6" ViewCount="" Body="&lt;p&gt;Pull up Starcraft and take it out on some Zerg.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-10T13:37:32.913" CommunityOwnedDate="2011-02-24T18:42:53.810" CommentCount="2" />
  <row Id="2543" PostTypeId="2" ParentId="1785" CreationDate="2010-09-10T13:37:46.457" Score="39" ViewCount="" Body="&lt;p&gt;That the #1 thing you can do to increase the quality and maintainability of your code is REDUCE DUPLICATION. &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-09-10T13:37:46.457" CommunityOwnedDate="2010-09-15T18:31:41.813" CommentCount="4" />
  <row Id="2544" PostTypeId="2" ParentId="2541" CreationDate="2010-09-10T13:38:43.850" Score="15" ViewCount="" Body="&lt;p&gt;Listen to 'Damn It Feels Good To Be A Gangsta' by Geto Boys and imagine that I am smashing a printer.&lt;/p&gt;&#xA;" OwnerUserId="29" LastActivityDate="2010-09-10T13:38:43.850" CommunityOwnedDate="2011-02-24T18:42:53.810" CommentCount="1" />
  <row Id="2545" PostTypeId="2" ParentId="2541" CreationDate="2010-09-10T13:38:51.497" Score="6" ViewCount="" Body="&lt;p&gt;I draft a blog post about the situation... and then delete it, because who cares?  The only person that cares about the situation is you, and frequently nobody else wants to hear you whining.  Much as I would like it to be the case, I'm not the center of the universe - if I were, perhaps my insights and experience would be more valuable.  As it is though, pretty much nobody cares about what I have to say, no matter how insightful it is - why? Because pretty much everything I have to say has been said by one or other more famous people than me because much of what I think about today has already been thought of weeks, months or years ago by someone else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is therapeutic to write about it, and try and justify why I feel the way I do about it.  Often, the process of trying to justify my feelings either makes me feel better and gives me an approach to resolve the situation, or it makes me realize I was being an idiot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either way, it's good therapy.&lt;/p&gt;&#xA;" OwnerUserId="187" LastActivityDate="2010-09-10T13:38:51.497" CommunityOwnedDate="2011-02-24T18:42:53.810" CommentCount="1" />
  <row Id="2546" PostTypeId="2" ParentId="326" CreationDate="2010-09-10T13:39:39.273" Score="0" ViewCount="" Body="&lt;p&gt;Todo.txt - short one liner for each item. Paper/pen - More elaborate notes and instructions for the todo.txt item.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I keep todo.txt in Dropbox so it's synced everywhere. For the work version, I embed it on the Windows desktop using the Enigma shell.&lt;/p&gt;&#xA;" OwnerUserId="462" LastActivityDate="2010-09-10T13:39:39.273" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="2547" PostTypeId="2" ParentId="326" CreationDate="2010-09-10T13:41:14.373" Score="0" ViewCount="" Body="&lt;p&gt;Yellow legal pad. I get geeky warm fuzzy from manually crossing items off my list and seeing the page fill up with items marked off. &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-09-10T13:41:14.373" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="2548" PostTypeId="2" ParentId="2541" CreationDate="2010-09-10T13:42:01.823" Score="13" ViewCount="" Body="&lt;p&gt;There is a little difference between what I do and what I should do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I do (not so bad): stop programming, make a pause.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I should do (better): take a nap. It is impressive how a difficult problem solve himself after a nap.&lt;/p&gt;&#xA;" OwnerUserId="1077" LastActivityDate="2010-09-10T13:42:01.823" CommunityOwnedDate="2011-02-24T18:42:53.810" CommentCount="1" />
  <row Id="2549" PostTypeId="2" ParentId="326" CreationDate="2010-09-10T13:43:09.047" Score="0" ViewCount="" Body="&lt;p&gt;I do it in comments. Things that still need to be done get prefixed with TODO, things that probably need to be fixed get prefixed with FIXME and changes get marked with CHANGED. Then I use TextMate on a project to assemble an overview of what's going on in my source based on these tags whenever I want it.&lt;/p&gt;&#xA;" OwnerUserId="762" LastActivityDate="2010-09-10T13:43:09.047" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="2550" PostTypeId="2" ParentId="2541" CreationDate="2010-09-10T13:43:12.663" Score="3" ViewCount="" Body="&lt;p&gt;I rant. Much to the amusement of my co-workers, but it helps me let off steam.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Favourite phrase: &quot;...and another thing&quot;&lt;/p&gt;&#xA;" OwnerUserId="550" LastActivityDate="2010-09-10T13:43:12.663" CommunityOwnedDate="2011-02-24T18:42:53.810" />
  <row Id="2551" PostTypeId="2" ParentId="696" CreationDate="2010-09-10T13:44:00.770" Score="5" ViewCount="" Body="&lt;p&gt;I get a lot done in PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The language is pretty ubiquitous and I think its popularity has been the cause of some (not all) of the criticism it gets; beginner tutorials and cheap hosting abound, and people who can't define the term &quot;variable&quot; are coming to StackOverflow looking for help. I don't think PHP &lt;em&gt;has&lt;/em&gt; to be sloppy, there are just some particularly shining examples of sloppily-written PHP code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Love&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The documentation is great, and easily to get to: &lt;a href=&quot;http://php.net/explode&quot; rel=&quot;nofollow&quot;&gt;php.net/explode&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Recent support for some pretty cool features, like &lt;a href=&quot;http://php.net/manual/en/functions.anonymous.php&quot; rel=&quot;nofollow&quot;&gt;anonymous functions&lt;/a&gt; and &lt;a href=&quot;http://php.net/manual/en/language.oop5.late-static-bindings.php&quot; rel=&quot;nofollow&quot;&gt;late static bindings&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Neat object tricks like &lt;a href=&quot;http://www.php.net/manual/en/language.oop5.magic.php&quot; rel=&quot;nofollow&quot;&gt;magic methods&lt;/a&gt; and &lt;a href=&quot;http://www.php.net/manual/en/reserved.interfaces.php&quot; rel=&quot;nofollow&quot;&gt;interfaces&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Making use of cool projects like &lt;a href=&quot;http://wordpress.org/&quot; rel=&quot;nofollow&quot;&gt;WordPress&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Hate&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;PHP &amp;lt; 5.3 &lt;a href=&quot;http://paul-m-jones.com/archives/262&quot; rel=&quot;nofollow&quot;&gt;circular reference garbage collection&lt;/a&gt; (or lack thereof).&lt;/li&gt;&#xA;&lt;li&gt;Third-party projects tend to take server setup for granted unnecessarily; you may have issues if you deviate from file-based sessions, Apache 2, mod_php, mod_rewrite, etc.&lt;/li&gt;&#xA;&lt;li&gt;Overhead of commonly-used functionality like &lt;code&gt;require_once()&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Inconsistent functions in core: &lt;code&gt;in_array($needle, $haystack)&lt;/code&gt; vs &lt;code&gt;strpos($haystack, $needle)&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="444" LastActivityDate="2010-09-10T13:44:00.770" CommentCount="3" />
  <row Id="2552" PostTypeId="2" ParentId="1013" CreationDate="2010-09-10T13:45:23.633" Score="59" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Visual SourceSafe&lt;/strong&gt; was my worst nightmare on my career. A complete lack of version control would have been better than VSS. It is absolutely unreliable and it has really bad workflow.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="13162" LastEditorDisplayName="" LastEditDate="2011-03-14T16:31:52.153" LastActivityDate="2011-03-14T16:31:52.153" CommunityOwnedDate="2011-02-01T07:56:02.387" CommentCount="20" />
  <row Id="2553" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T13:46:53.283" Score="38" ViewCount="" Body="&lt;p&gt;I once had a long &quot;discussion&quot; with a &lt;a href=&quot;http://en.wikipedia.org/wiki/Pointy-haired_Boss&quot; rel=&quot;nofollow&quot;&gt;pointy-haired boss&lt;/a&gt; who insisted that we could store a 2 in a bit datatype because it was &quot;only one digit.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1081" LastActivityDate="2010-09-10T13:46:53.283" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="3" />
  <row Id="2554" PostTypeId="2" ParentId="954" CreationDate="2010-09-10T13:49:07.500" Score="3" ViewCount="" Body="&lt;p&gt;Not the whole philosophy but a specific ones: DRY&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-10T13:49:07.500" />
  <row Id="2555" PostTypeId="2" ParentId="2254" CreationDate="2010-09-10T13:51:46.197" Score="5" ViewCount="" Body="&lt;p&gt;I'm happy with any one that hasn't moved the home/end keys around.   I'm looking at you, Logitech. &lt;/p&gt;&#xA;" OwnerUserId="145" LastEditorUserId="145" LastEditorDisplayName="" LastEditDate="2010-09-10T14:35:49.813" LastActivityDate="2010-09-10T14:35:49.813" CommunityOwnedDate="2011-01-17T21:43:24.260" CommentCount="2" />
  <row Id="2556" PostTypeId="2" ParentId="812" CreationDate="2010-09-10T13:56:21.290" Score="1" ViewCount="" Body="&lt;p&gt;I'd define how powerful a language is by how productive you can be with it.  A lot of people tend to talk about productivity in terms of writing code quickly, but since the majority of a program's lifecycle is maintenance, not development, a better measure is how easily you can read and debug the code, especially when it's written by someone else.  The most powerful languages are the ones that are easiest to read and maintain.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-10T13:56:21.290" CommentCount="1" />
  <row Id="2557" PostTypeId="2" ParentId="729" CreationDate="2010-09-10T13:57:36.817" Score="1" ViewCount="" Body="&lt;p&gt;Here are the basics for me. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Evernote for web links, blog posts and email.&lt;/li&gt;&#xA;&lt;li&gt;Snippely for code snippets&lt;/li&gt;&#xA;&lt;li&gt;Dropbox for syncing Snippely db, PDFs, backup files, and git repos for configs, etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="462" LastActivityDate="2010-09-10T13:57:36.817" CommunityOwnedDate="2011-03-07T21:12:42.693" CommentCount="1" />
  <row Id="2558" PostTypeId="2" ParentId="2254" CreationDate="2010-09-10T13:58:25.190" Score="10" ViewCount="" Body="&lt;p&gt;I have the older version of one of these: &lt;a href=&quot;http://www.daskeyboard.com/model-s-ultimate/&quot; rel=&quot;nofollow&quot;&gt;the Das Keyboard&lt;/a&gt;  and they're brilliant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They really do make you type faster, and you can type whilst looking and talking to people, which tends to freak them out a bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're very nicely weighted too, and have a proper clunky feel and sound to them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/ldfpr.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="550" LastActivityDate="2010-09-10T13:58:25.190" CommunityOwnedDate="2011-01-17T21:43:24.260" CommentCount="7" />
  <row Id="2559" PostTypeId="2" ParentId="954" CreationDate="2010-09-10T13:58:36.333" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Simplicity of Design&lt;/li&gt;&#xA;&lt;li&gt;Correctness&lt;/li&gt;&#xA;&lt;li&gt;DRY&lt;/li&gt;&#xA;&lt;li&gt;SOLID Principles&lt;/li&gt;&#xA;&lt;li&gt;Testable (automated)&lt;/li&gt;&#xA;&lt;li&gt;Use the best tool for the job&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-09-10T13:58:36.333" />
  <row Id="2560" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T14:04:22.763" Score="1" ViewCount="" Body="&lt;p&gt;1) Use an Object Database in an ERP system&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Use an EVA Database in an ERP system&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Craziest: Build a visual-based business rules system (a la Outlook Rules) to hand to our users (without a test harness to test the rules) and &quot;throw it over the wall&quot; at them. So instead of us writing programs for our users, we could just write a dumbed-down programming language for them and let them write their own apps. &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-09-10T14:04:22.763" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="2" />
  <row Id="2561" PostTypeId="2" ParentId="2541" CreationDate="2010-09-10T14:05:11.607" Score="18" ViewCount="" Body="&lt;p&gt;I usually take a walk around the block. The fresh air and actual physical activity calms me down and lets me get rid of any adrenaline.&lt;/p&gt;&#xA;" OwnerUserId="462" LastActivityDate="2010-09-10T14:05:11.607" CommunityOwnedDate="2011-02-24T18:42:53.810" CommentCount="1" />
  <row Id="2562" PostTypeId="2" ParentId="266" CreationDate="2010-09-10T14:06:33.263" Score="-4" ViewCount="" Body="&lt;p&gt;I don't think it will ever happen.  Microsoft isn't even using .NET internally, not for things they care about at least.  Part of the problem with Windows Vista was that it was never supposed to exist; they wanted to make the next version of Windows .NET only, and it was a massive failure, so they slapped together Vista in a big rush, and it showed in the quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Windows and Office are still native code.  The recent Web version of Office doesn't contain the slightest trace of Silverlight.  VS2010, which &lt;em&gt;was&lt;/em&gt; written in .NET with WPF, is a big, steaming pile of crap.  Windows 7 contains a bunch of new APIs which are accessible only through native Win32 and COM; if you want to use them from .NET you need to use P/Invoke.  (Wasn't .NET supposed to replace COM?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft doesn't use .NET for their own products, to such a degree that it almost makes you wonder what they know that we don't?  Is it just &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000339.html&quot; rel=&quot;nofollow&quot;&gt;fire and motion?&lt;/a&gt;  And if they won't use it themselves, how will they ever get everyone else to?&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-10T14:06:33.263" CommentCount="2" />
  <row Id="2563" PostTypeId="1" AcceptedAnswerId="2572" CreationDate="2010-09-10T14:12:15.837" Score="24" ViewCount="887" Body="&lt;p&gt;Code quality is very hard to measure; it seems virtually impossible to quantify maintainability, user friendliness, extensibility and future proofness. Because of this, I find it hard to convince managers of my programming abilities. Another effect I noticed is that when you are well informed about good programming strategies and techniques, you are likely to bump into resistance of colleagues. It is often hard to explain that a certain technique is better than another and you easily run into a resistance to change and unwillingness to admit errors. At best, you have to be a prudent teacher, at worst you'll be considered a troublesome dissident. However, the odds that you'll be praised for your insights, even if tacit, seems very small.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My impression is that it doesn't matter much whether you are working hard writing great code or being lazy and throwing up sloppy code. Now I wonder:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A) Is this a common worry? &lt;/li&gt;&#xA;&lt;li&gt;B) Is it possible to get recognition as a software developer? (maybe even reflected in wage)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1085" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T13:54:18.620" LastActivityDate="2011-01-26T20:43:07.090" Title="Does it pay to be an outstanding software developer?" Tags="&lt;career&gt;&lt;recognition&gt;&lt;great-programmer&gt;" AnswerCount="11" FavoriteCount="9" />
  <row Id="2564" PostTypeId="2" ParentId="1745" CreationDate="2010-09-10T14:21:41.177" Score="19" ViewCount="" Body="&lt;p&gt;Any programming environment with a visual designer of some sort will make it so that business users can &quot;write&quot; the program and actual programmers aren't needed.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-09-10T14:21:41.177" CommunityOwnedDate="2010-09-10T14:21:41.177" CommentCount="3" />
  <row Id="2565" PostTypeId="2" ParentId="358" CreationDate="2010-09-10T14:24:41.050" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.jsoftware.com/&quot; rel=&quot;nofollow&quot;&gt;J&lt;/a&gt;.  &lt;code&gt;+/%#&lt;/code&gt; calculates the mean of an array.  Syntactically, it's like APL for normal keyboards.  Semantically, it's quite interesting and powerful, but reading it requires standing on your head.&lt;/p&gt;&#xA;" OwnerUserId="998" LastActivityDate="2010-09-10T14:24:41.050" CommunityOwnedDate="2010-09-30T22:46:32.880" CommentCount="1" />
  <row Id="2566" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T14:27:27.057" Score="1" ViewCount="" Body="&lt;h1&gt;6502 assembly&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Oh, how I miss my C-64.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-09-10T14:27:27.057" CommunityOwnedDate="2010-09-10T14:27:27.057" CommentCount="1" />
  <row Id="2567" PostTypeId="2" ParentId="118" CreationDate="2010-09-10T14:28:10.080" Score="3" ViewCount="" Body="&lt;p&gt;Ireland or United States are often both cited as having the most programming jobs per-capita.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-09-10T14:28:10.080" CommentCount="1" />
  <row Id="2568" PostTypeId="2" ParentId="539" CreationDate="2010-09-10T14:29:25.867" Score="1" ViewCount="" Body="&lt;p&gt;John Lam's &lt;a href=&quot;http://iunknown.com/2007/06/vibrant-ink-visual-studio-and-vim-settings.html&quot; rel=&quot;nofollow&quot;&gt;port of Vibrant Ink&lt;/a&gt; to Visual Studio.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-09-10T14:29:25.867" CommunityOwnedDate="2010-09-16T13:10:40.707" />
  <row Id="2569" PostTypeId="2" ParentId="358" CreationDate="2010-09-10T14:30:15.337" Score="0" ViewCount="" Body="&lt;p&gt;Definitely C++.  It may not be the worst language ever created, but without a doubt it's the worst ever to be taken seriously.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-10T14:30:15.337" CommunityOwnedDate="2010-09-30T22:46:32.880" CommentCount="1" />
  <row Id="2570" PostTypeId="2" ParentId="2563" CreationDate="2010-09-10T14:32:53.350" Score="16" ViewCount="" Body="&lt;p&gt;Check out this post: &lt;a href=&quot;http://cdixon.posterous.com/some-tidbits-from-joel-spolskys-talk-last-nig&quot; rel=&quot;nofollow&quot;&gt;Some tidbits from Joel Spolsky's talk last night on recruiting programmers&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the link:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Great programmers are 5-10x more productive than ok ones yet only get paid 2x or so more.  (Perhaps this is why many leave to start companies?)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I think it is a common worry/concern in the software development community.  There are more bad coders our there than good ones, and we (as an online community) often have conversations about how to produce good work-- and we always talk about ways to improve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My opinion, I think it &lt;em&gt;always pays off&lt;/em&gt; (not necessarily monetarily) to be smart and productive.  Sure beats being stupid and inefficient.  But sadly, it often goes unrecognized and unappreciated.&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-10T14:32:53.350" CommentCount="3" />
  <row Id="2571" PostTypeId="2" ParentId="2563" CreationDate="2010-09-10T14:36:24.833" Score="23" ViewCount="" Body="&lt;p&gt;The best way to convince employers that you're a good programmer is to produce quality code, swiftly.  Few employers care about how well-informed you are about good programming strategies and techniques; they want results.  So, figure out how you're going to turn those good programming strategies and techniques into results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In an environment that doesn't prioritize testing?  Then write tests for your own code anyway -- and make sure you mention it if somebody comments on how reliable your code is.  Nobody gives a crap about version control?  (*shudder*)  Then download CVS anyway and use it for your own stuff.  Etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, you can't do this with every best practice you'd like to use, particularly the ones that require buy-in from the whole team.  But once you establish that you're somebody who Gets Shit Done, then when you start speaking up about the techniques you're using, you're no longer an annoying gadfly, a &quot;troublesome dissident&quot;; you're sharing the secrets to your success.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And when you've gained the respect of your colleagues, they'll be much more receptive to systemic changes that you suggest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lead by example.  &lt;b&gt;Prove&lt;/b&gt; you know what you're talking about, and people will start to listen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And when your supervisor starts reporting how much ass you've been kicking to whoever signs your paychecks?  Damn straight it'll start showing up in your wages.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-10T14:36:24.833" CommentCount="7" />
  <row Id="2572" PostTypeId="2" ParentId="2563" CreationDate="2010-09-10T14:36:25.257" Score="4" ViewCount="" Body="&lt;p&gt;I believe it depends on your job. Progressing in a big company should have &lt;em&gt;almost&lt;/em&gt; nothing to do with the quality of your code. Your co-worker should care about that but not so much your superior.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand I know a freelancer which is quite well paid because he done many good and successful products. I believe the successful part is more important than their quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nonetheless, the recognition you'll have for your efforts shouldn't worth it. &#xA;To make good code, you should love programming and learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For now, programming is not about money. If you want to make money, you should look another field of competences. Finance is known to be the best ROI field.&lt;/p&gt;&#xA;" OwnerUserId="1077" LastActivityDate="2010-09-10T14:36:25.257" CommentCount="3" />
  <row Id="2573" PostTypeId="2" ParentId="539" CreationDate="2010-09-10T14:41:16.780" Score="10" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://blog.wekeroad.com/2007/10/17/textmate-theme-for-visual-studio-take-2/&quot; rel=&quot;nofollow&quot;&gt;Rob Conery's port of Vibrant Ink&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/R6Vbs.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="809" LastActivityDate="2010-09-10T14:41:16.780" CommunityOwnedDate="2010-09-16T13:10:40.707" CommentCount="2" />
  <row Id="2574" PostTypeId="2" ParentId="2233" CreationDate="2010-09-10T14:42:45.033" Score="20" ViewCount="" Body="&lt;p&gt;Headphones, use music to drown out noise sometimes.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-10T14:42:45.033" CommunityOwnedDate="2010-09-17T12:07:03.760" CommentCount="2" />
  <row Id="2575" PostTypeId="1" AcceptedAnswerId="2622" CreationDate="2010-09-10T14:43:30.117" Score="7" ViewCount="461" Body="&lt;p&gt;How often are the unfortunate stereotypes associated with older techies true?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When people get settled into a career--Do people lose their passion to learn new things? Do people get comfortable and stuck with one skillset and incapable of change? &lt;strong&gt;How common is this?&lt;/strong&gt; I don't mean to be offensive with this question. I know many skilled older programmers. But you do sometimes see a &quot;failure mode&quot; when people get too comfortable in their jobs, skills, and lifestyle--too much so that they get irritated at the thought of having to learn something new. I see this and I'm deathly afraid of it happening to me. I want to emphasize I think there is also a &quot;failure mode&quot; for youth -- not really having the experience to know how to get a project done. The &quot;youth&quot; failure mode may be worse then the one I'm describing. I think the best teams have both junior and senior members.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I just rehashing old, wrong stereotypes? Is there something to guard against when one gets settled into a career? Or am I just another ageist young programmer keeping the old-(wo)man down?&lt;/p&gt;&#xA;" OwnerUserId="980" LastEditorUserId="980" LastEditorDisplayName="" LastEditDate="2010-09-10T16:11:02.780" LastActivityDate="2010-09-11T00:13:35.433" Title="The unfortunate stereotypes associated with older programmers" Tags="&lt;jobs&gt;&lt;career&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="2" />
  <row Id="2576" PostTypeId="2" ParentId="2233" CreationDate="2010-09-10T14:48:32.283" Score="3" ViewCount="" Body="&lt;p&gt;Headphones&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mobile phone dock which presents phone well for a desk&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coaster for a coffee/tea cup&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2 monitors (or three if possible)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Kleenex&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Office phone (if working in an office)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All papers and clutter should be kept off the desk as much as possible.&lt;/p&gt;&#xA;" OwnerUserId="809" LastActivityDate="2010-09-10T14:48:32.283" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="2578" PostTypeId="2" ParentId="2575" CreationDate="2010-09-10T15:02:02.147" Score="4" ViewCount="" Body="&lt;p&gt;I feel developers who are not truly passionate about software will burn out over time.  The fact they are older simply has to do with the fact they couldn't force themselves, eternally, to love something they were never truly in love with in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, family responsibilities take away from time to learn new technology and code all hours of the day.   In my parent's day (I'm 30), 30% of households had dual working relationships, now 70% of them do.   Take that into account when trying to juggle 2 kids, daycare, a mortgage, etc. to the kid fresh out of school with no wife, no mortgage, and no kids.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think a lot of things change with age, and while some of them may be worse, some are better.  I'd say the main benefit which comes from age is maturity.   A young developer (and I still consider myself young) has no clue about how the real business world operates until they have spent some time in it.   Once that has happened, that individual becomes qualified for a larger list of roles (management, sales, etc).&lt;/p&gt;&#xA;" OwnerUserId="809" LastActivityDate="2010-09-10T15:02:02.147" CommentCount="3" />
  <row Id="2579" PostTypeId="2" ParentId="1371" CreationDate="2010-09-10T15:09:29.033" Score="14" ViewCount="" Body="&lt;p&gt;First bad sign I can think of is when management is not willing to pass bad news up the chain or to the client in the hopes that it will go away - i.e. management by wishful thinking. I can't think of how many times, devs have proven they can't meet the deadline weeks or even months ahead of it and yet no one wants to tell the client. I've rarely seen a client who wouldn't push a deadline when there is genuine reason to when the need is explained well in advance; I've often seen a pissed off client when told the day of the deadline that it wasn't going to be met and that it wouldn't be met the next day either but two months down the road. At this point they, rightly I might add, question your processes - how come you didnt know this earlier. (True answer but the one we never give - we did know but we were afraid to tell you.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another sure sign that failure is coming up is to assign new developers to the hardest most complicated, most critical part of the process rather than the people who understand the current system already. Then don't watch them carefully to see if they really are getting work completed properly or have questions (BIG BIG RED FLAG if there are no questions). New employees need to be monitored until you know they really have the skills they claimed to have. I can still remember spending one painful summer redoing the work (already past deadline when I got it) of a new employee who got a critical piece of a project and told everyone everything was fine for months and then quit without notice one week from the deadline and nothing he did was usable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another sure sign of failure is when devs are working on pieces that depend on other things being done first and those things are not done or even started. If management can't get the work assigned in the right order, you are going down the tubes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course feature creep without pushing the deadline back every time is one of the most common signs things are going to go bad. You add 20 hours of work to my plate, the deadline gets moved by 20 hours. If it doesn't then the project will fail, guaranteed.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastEditorUserId="1093" LastEditorDisplayName="" LastEditDate="2010-12-30T21:07:15.213" LastActivityDate="2010-12-30T21:07:15.213" CommunityOwnedDate="2011-01-23T19:41:07.757" />
  <row Id="2580" PostTypeId="1" CreationDate="2010-09-10T15:12:23.277" Score="10" ViewCount="499" Body="&lt;p&gt;Do you apply any programming techniques to solve everyday problems more efficiently? (making breakfast, shopping, etc)&lt;/p&gt;&#xA;" OwnerUserId="193" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T12:39:01.790" LastActivityDate="2011-03-14T17:49:31.373" CommunityOwnedDate="2011-03-14T16:26:25.523" Title="Which tricks learned from programming help you in everyday life?" Tags="&lt;productivity&gt;&lt;problem-solving&gt;" AnswerCount="22" FavoriteCount="1" />
  <row Id="2581" PostTypeId="2" ParentId="2563" CreationDate="2010-09-10T15:14:26.603" Score="5" ViewCount="" Body="&lt;p&gt;Yes, it can pay, literally -- top programmers can earn top dollar. However they are often first on the chopping block when lean times come, as it is during these times that the company values its short-term balance sheet more than the longer-term &lt;em&gt;gets things done&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consequently, you really need to keep your resume up to date and your list of contacts in the community current, so when the bad times come you can quickly find somewhere else to hop to.  If you're out of work for several months in between, your average annual salary can start to look like (or be lower than) an average or even lowly programmer.&lt;/p&gt;&#xA;" OwnerUserId="808" LastEditorUserId="808" LastEditorDisplayName="" LastEditDate="2011-01-26T20:43:07.090" LastActivityDate="2011-01-26T20:43:07.090" />
  <row Id="2582" PostTypeId="2" ParentId="2580" CreationDate="2010-09-10T15:18:10.693" Score="6" ViewCount="" Body="&lt;p&gt;I understand there why many programs suck.  Because they are written by humans so I never get frustrated when I am waiting too long for x to process.  Because read &lt;a href=&quot;http://thedailywtf.com/&quot; rel=&quot;nofollow&quot;&gt;thedailywtf&lt;/a&gt; and it makes me feel better.&lt;/p&gt;&#xA;" OwnerUserId="1101" LastActivityDate="2010-09-10T15:18:10.693" CommunityOwnedDate="2011-03-14T16:26:25.523" CommentCount="1" />
  <row Id="2583" PostTypeId="2" ParentId="2580" CreationDate="2010-09-10T15:19:21.243" Score="15" ViewCount="" Body="&lt;p&gt;Divide and conquer is something I use every day...&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-10T15:19:21.243" CommunityOwnedDate="2011-03-14T16:26:25.523" />
  <row Id="2584" PostTypeId="2" ParentId="2492" CreationDate="2010-09-10T15:21:37.883" Score="9" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2004/06/multiple-monitors-and-productivity.html&quot; rel=&quot;nofollow&quot;&gt;Multiple Monitors and Productivity&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Convinced my boss to give me 2 - 23 inch monitors.  And convinced my wife to let me get 3 at home.  THANK YOU JEFF!!!!!!!!&lt;/p&gt;&#xA;" OwnerUserId="1101" LastActivityDate="2010-09-10T15:21:37.883" CommentCount="2" />
  <row Id="2585" PostTypeId="2" ParentId="361" CreationDate="2010-09-10T15:23:32.143" Score="5" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Don't sit on your computer all day/night every day  trying to get better. You will burn out fast. I did this, then had to stop programming for about 3 months as I just couldn't care less about it. &lt;/li&gt;&#xA;&lt;li&gt;Read some books, and pace yourself. &lt;/li&gt;&#xA;&lt;li&gt;Learn something mainstream (c# / java) to program in, as there are jobs and knowledge in these. Not VB though. That is evil. (Read fanboy comment below)&lt;/li&gt;&#xA;&lt;li&gt;Do cause problems for yourself and then try to fix them in your language. This is the core of programming. Often these problems come from doing something apparently simple. So do something simple!&lt;/li&gt;&#xA;&lt;li&gt;Learn basic unit testing! This is the fastest way to get better, as your problems become better understood as you learn to break things up into small pieces&lt;/li&gt;&#xA;&lt;li&gt;Realise Fan boys are biased and fairly useless for opinions and that everyone is a fanboy. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="705" LastActivityDate="2010-09-10T15:23:32.143" />
  <row Id="2586" PostTypeId="2" ParentId="2563" CreationDate="2010-09-10T15:46:12.570" Score="5" ViewCount="" Body="&lt;p&gt;In my experience what pays is results. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Companies measure results in different ways, so as long as you're meeting or exceeding the goals or expected results, you should benefit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example: A company might think that clean, easily maintained code written in 5 days is an excellent result, another company might think a solution delivered in half a day, with almost incomprehensible code is an excellent result.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Btw, it's completely up to you to follow up and ensure you benefit. You're the best person to chase this process, as most people have more important things to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How you benefit is again dependant on the company you work for.&lt;/p&gt;&#xA;" OwnerUserId="1104" LastActivityDate="2010-09-10T15:46:12.570" />
  <row Id="2587" PostTypeId="2" ParentId="2492" CreationDate="2010-09-10T15:51:05.033" Score="5" ViewCount="" Body="&lt;p&gt;I never quite believe &lt;a href=&quot;http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html&quot; rel=&quot;nofollow&quot;&gt;&quot;Why can't programmers program?&quot;&lt;/a&gt; until I talked with my CEO and current boss.  I thought that the idea that 199 out of 200 can't code FizzBuzz must be some phenomenon typical of different areas of the country.  As it turns out, it's everywhere- my boss (who asked me that question on the interview) confirms that 199/200 is entirely accurate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, that post gives me hope for my prospects, since I can code FizzBuzz.  :)&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-10T15:51:05.033" />
  <row Id="2588" PostTypeId="2" ParentId="2563" CreationDate="2010-09-10T15:57:24.613" Score="2" ViewCount="" Body="&lt;p&gt;If you work as an independent or freelance consultant, top-notch means top-paid. If you're a lifelong employee, then there are other factors that come into play (reliability, consistency, etc)&lt;/p&gt;&#xA;" OwnerUserId="1108" LastActivityDate="2010-09-10T15:57:24.613" />
  <row Id="2589" PostTypeId="2" ParentId="331" CreationDate="2010-09-10T16:01:57.653" Score="0" ViewCount="" Body="&lt;p&gt;12 point sergoe UI. 14 pt when on a 30&quot; monitor. Big text helps remind me to keep methods small and I find monospaced fonts harder to read for long periods.&lt;/p&gt;&#xA;" OwnerUserId="718" LastActivityDate="2010-09-10T16:01:57.653" CommunityOwnedDate="2010-09-10T16:01:57.653" />
  <row Id="2590" PostTypeId="2" ParentId="2541" CreationDate="2010-09-10T16:04:06.760" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Rant incoherently&lt;/li&gt;&#xA;&lt;li&gt;Bitch on twitter&lt;/li&gt;&#xA;&lt;li&gt;Chain smoke&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="718" LastActivityDate="2010-09-10T16:04:06.760" CommunityOwnedDate="2011-02-24T18:42:53.810" />
  <row Id="2591" PostTypeId="1" CreationDate="2010-09-10T16:08:35.610" Score="10" ViewCount="862" Body="&lt;p&gt;Following &lt;a href=&quot;http://programmers.stackexchange.com/questions/2492/what-are-the-best-posts-on-coding-horror&quot;&gt;a question here&lt;/a&gt;, what are the best posts on Joel On Software?&lt;/p&gt;&#xA;" OwnerUserId="468" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T16:05:30.140" LastActivityDate="2010-11-23T18:23:53.790" ClosedDate="2011-01-05T21:19:39.777" Title="Best Posts on Joel On Software?" Tags="&lt;blogs&gt;&lt;posts&gt;" AnswerCount="12" CommentCount="1" FavoriteCount="6" />
  <row Id="2592" PostTypeId="2" ParentId="331" CreationDate="2010-09-10T16:08:46.063" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://faisal.com/software/profontx/&quot; rel=&quot;nofollow&quot;&gt;Profont X&lt;/a&gt; is my favorite font, it's monospaced, free and there is a windows version as well.&lt;/p&gt;&#xA;" OwnerUserId="891" LastActivityDate="2010-09-10T16:08:46.063" CommunityOwnedDate="2010-09-10T16:08:46.063" />
  <row Id="2593" PostTypeId="2" ParentId="2591" CreationDate="2010-09-10T16:23:53.103" Score="10" ViewCount="" Body="&lt;p&gt;I really like &lt;/p&gt;&#xA;&#xA;&lt;h1&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;The Joel Test&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Simple and effective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another great one is &lt;/p&gt;&#xA;&#xA;&lt;h1&gt;&lt;a href=&quot;http://www.joelonsoftware.com/items/2008/03/17.html&quot; rel=&quot;nofollow&quot;&gt;Martian Headsets&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;It a good take on web standards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a sample image.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/YujcV.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One that Joel often cites himself is&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/APIWar.html&quot; rel=&quot;nofollow&quot;&gt;How Microsoft Lost the API War&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;It is one of his most popular blogs, which Joel often attributes to the fact &quot;War&quot; is in the title.&lt;/p&gt;&#xA;" OwnerUserId="64" LastEditorUserId="64" LastEditorDisplayName="" LastEditDate="2010-09-11T12:11:49.703" LastActivityDate="2010-09-11T12:11:49.703" CommentCount="2" />
  <row Id="2594" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T16:29:10.783" Score="10" ViewCount="" Body="&lt;p&gt;I was working on a web project in ASP.NET which was to replace an existing PHP solution. The PHP site wasn't bad, just a little outdated so the new project was to upgrade it using a new platform. The first thing to do was setup the new infrastructure by having IIS and MSSQL servers as well as a source control system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few weeks into creating the new project the project manager became unhappy with the deployment process which involved getting the latest version of the code, then deploying a build to the test environment. He felt that this was time consuming and that having people work on the same code base and having to merge their changes the wrong way to do things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;His solution was that we go back to the &quot;old way&quot; of doing things: writing PHP on the production server in real time with no source control or deployment strategy. This way you could have instant results and it didn't involve setting up source control or other servers. Needless to say things did not go well. :)&lt;/p&gt;&#xA;" OwnerUserId="219" LastActivityDate="2010-09-10T16:29:10.783" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="4" />
  <row Id="2597" PostTypeId="2" ParentId="2563" CreationDate="2010-09-10T16:41:52.950" Score="1" ViewCount="" Body="&lt;p&gt;I don't think you get paid must more for writing better code, haveing less bugs and being quicker in the UK.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However if hard times hit and you have proved yourself, then they are more likely to dispose of someone else first.&lt;/p&gt;&#xA;" OwnerUserId="1114" LastActivityDate="2010-09-10T16:41:52.950" />
  <row Id="2598" PostTypeId="2" ParentId="1013" CreationDate="2010-09-10T16:48:18.590" Score="1" ViewCount="" Body="&lt;p&gt;InstallShield Java Edition (circa 2000/2001).&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-10T16:48:18.590" CommunityOwnedDate="2011-02-01T07:56:02.387" />
  <row Id="2599" PostTypeId="2" ParentId="2580" CreationDate="2010-09-10T16:52:19.537" Score="3" ViewCount="" Body="&lt;p&gt;Overall the underlying problem solving mental tools I use in programming tend to be the same mental tools I use in everyday life, but I think I draw more inspiration from the software world itself than from software construction. For example, I tend to understand certain behavioral patterns in real life much better if I observe them in the way people interact with software: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;before I learned why a programmer is &quot;someone who looks both ways before crossing a one-way street&quot; I thought that when people fail to follow directions it's because they refuse to pay attention to them on purpose because they are idiots and don't realize that paying attention to directions is important. Now I understand that intentions have nothing to do with it- people often really are bad at following directions. They can get an error message, read it, and make a decision opposite of what they want to do. I also realized that people's expectations of software often mirror their expectations of other aspects of their lives, and that people often give up on things in exactly the same way (and for exactly the same reasons) as they give up on learning/changing/doing something with their computers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thing I learned from software is to recognize when solving a problem requires a paradigm shift, in other words- meta problem solving. This has been extremely helpful, and I already applied this skill to recognize the need to think differently about at least 3 topics which I was previously very stuck on, and managed to get breakthroughs. One such topic was my study techniques, and another involved navigating a social interaction to a desired effect when you have absolutely no knowledge of who you are conversing with (total stranger). &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-10T16:52:19.537" CommunityOwnedDate="2011-03-14T16:26:25.523" />
  <row Id="2600" PostTypeId="2" ParentId="2490" CreationDate="2010-09-10T16:53:57.113" Score="12" ViewCount="" Body="&lt;p&gt;I found some interesting stuff on &lt;a href=&quot;http://channel9.msdn.com/&quot; rel=&quot;nofollow&quot;&gt;Channel 9&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="170" LastActivityDate="2010-09-10T16:53:57.113" CommentCount="1" />
  <row Id="2601" PostTypeId="2" ParentId="2516" CreationDate="2010-09-10T16:57:19.430" Score="3" ViewCount="" Body="&lt;p&gt;Firmware bugs that you only get memory dumps to debug with and take &lt;strong&gt;days&lt;/strong&gt; of continual runtime to reproduce.&lt;/p&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-10T16:57:19.430" />
  <row Id="2604" PostTypeId="2" ParentId="1338" CreationDate="2010-09-10T17:07:49.767" Score="2" ViewCount="" Body="&lt;p&gt;&quot;Do not use C++ comment style for C code&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While this may still have a small value if there is risk of needing to port your program to an obsolete compiler, it's mostly just a hassle.   My biggest objection is that it makes it really hard to use &lt;code&gt;/*&lt;/code&gt; to block comment out a large region during development or unit testing. &lt;code&gt;*/&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-10T17:07:49.767" CommunityOwnedDate="2010-09-10T17:07:49.767" CommentCount="2" />
  <row Id="2605" PostTypeId="2" ParentId="2247" CreationDate="2010-09-10T17:11:29.323" Score="1" ViewCount="" Body="&lt;p&gt;Both suggestions below can be roughly adopted for your need, but in both cases you need to do estimates in advance and then analyze them ad hoc (and honestly, I'm not sure if there is another effective way how to measure this, I agree with TheLQ that lines of code per time period aren't usable at all).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://agilecookbook.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Agile development methodologies&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&#xA;Although I'm not sure how effectively it can be applied to a single developer scenario, some of the principles used in Agile can prove useful in what you aim to accomplish. Agile works in cycles in which developer(s) aim to implement stories (tasks) which are scored (in points) based on implementation complexity at the start of a development cycle, and then analyzed at the end of each cycle. This allows to determine the velocity, i.e. the number of points which a developer or a team can complete within a single development cycle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the way you work allows you to adopt some of the principles and organize your work in cycles, you can use the &lt;em&gt;velocity&lt;/em&gt; per &lt;em&gt;development cycle&lt;/em&gt; metric to track your efficiency. Note that cycles usually last 2-3 weeks, however you should be able to shorten them when using this for yourself only. It all comes down to if you can adopt such a methodology in your environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/items/2007/10/26.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Evidence Based Scheduling&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&#xA;Even though it's primarily meant for improving estimates, you should be able to use it effectively to track decreasing trends in productivity.&lt;/p&gt;&#xA;" OwnerUserId="1117" LastActivityDate="2010-09-10T17:11:29.323" />
  <row Id="2606" PostTypeId="2" ParentId="361" CreationDate="2010-09-10T17:11:31.440" Score="2" ViewCount="" Body="&lt;p&gt;Nobody graduates as an expert and that's true for anything, not just programming. You study to know the basics but by working is how you gain real competence. You might become an expert programmer if you do it from 3 to 10 years. In few months you can expect to be able to do something useful. There's no rush and it's a slow process for anyone, so don't worry about it.&lt;br&gt;&#xA;In my opinion you really can't demand newbies to spend all their time learning at home. Of course it can speed things up, increase your value and make you more confident, but only if you want to. Otherwise I'd be happy to learn at work.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-10T17:11:31.440" />
  <row Id="2607" PostTypeId="2" ParentId="1065" CreationDate="2010-09-10T17:12:24.017" Score="1" ViewCount="" Body="&lt;p&gt;Which STS you choose should really be based on your near term as well as strategic requirements.  For the record, PingFederate works very well in a Windows environment.  Ping Identity actually has many, many Windows IT shops successfully deploying PingFederate.  So whether or not you are a Windows shop shouldn't be the sole determiner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might want to consider the range of applications that need to integrate into your SSO ecosystem.  That includes both identity management products such as Active Directory, OAM, SiteMinder, as well as relying applications.  Your SSO solution should be selected based on those integration needs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ping Identity did a ton of work this summer to ensure that we are well aligned with ADFSv2/WCF/WIF environments.  Along with that, PingFederate provides very rich integration into many existing identity management products, directories, and databases.  There are also several language kits for embedding SAML, WS-Trust, and WS-Federation single sign-on into .Net, Java, and PHP.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another key differentiator between PingFederate and other SSO/Federation products is the speed and ease with which a PingFederate ecosystem can be established.  Generally, PingFederate customers get up in running in hours or day.  Not weeks or months.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also note that Ping Identity offers a cloud based solution, PingConnect, for those companies that are not ready or don't need to invest in a full scale on premise SSO/Federation solution.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-10T17:12:24.017" />
  <row Id="2608" PostTypeId="2" ParentId="597" CreationDate="2010-09-10T17:18:16.923" Score="7" ViewCount="" Body="&lt;p&gt;Used to be a lot. Now, almost zero. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Priorities change. I have a family life that I have always wanted; coveted in fact. To me, there is nothing more precious than time spent with the people I love. &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-09-10T17:18:16.923" CommentCount="1" />
  <row Id="2609" PostTypeId="2" ParentId="1745" CreationDate="2010-09-10T17:20:11.670" Score="4" ViewCount="" Body="&lt;p&gt;That any M.Sc. with one programming course is enough to be hired as a software developer.&lt;/p&gt;&#xA;" OwnerUserId="170" LastActivityDate="2010-09-10T17:20:11.670" CommunityOwnedDate="2010-09-10T17:20:11.670" CommentCount="3" />
  <row Id="2610" PostTypeId="2" ParentId="1745" CreationDate="2010-09-10T17:20:25.537" Score="50" ViewCount="" Body="&lt;p&gt;That premature optimization means you shouldn't optimize at all. I've seen more horrendously bad databases because no one wanted to consider performance (critical to any database system) in design as that was premature optimization than any other database design issue . Rubbish, there are known performance killers, stop using them as your first choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another myth, it's too hard to refactor the database. No but you have to consider how to do refactoring in the design phase to do it effectively. And BTW, the longer you wait to fix that annoying design-based performance issue, the harder it's going to be to fix.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another bad myth, database design should reflect OOP principles. No, databases are designed to work with sets not OOP principles. Some OOP things will cause horrible performance problems and others are just pain silly in database terms. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, you should enforce data integrity in the application.  Databases are going to last past the application and would lose the rules when the application is replaced, mulitple applications are going to access them and there will often be the need to run direct queries to fix things that do not go through the application.  I have never seen a database that refuses to enforce data integrity in the datbase that has good data. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-10T17:20:25.537" CommunityOwnedDate="2010-09-10T17:20:25.537" CommentCount="5" />
  <row Id="2611" PostTypeId="2" ParentId="109" CreationDate="2010-09-10T17:21:11.863" Score="1" ViewCount="" Body="&lt;p&gt;While taking 101, my teacher and I were combing through a student's program because it wouldn't compile. As it turns out, he used &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;''&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;instead of &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;everywhere in his program. Three hours of my life that I will never get back.&lt;/p&gt;&#xA;" OwnerUserId="937" LastEditorUserId="2616" LastEditorDisplayName="" LastEditDate="2010-10-06T09:44:51.690" LastActivityDate="2010-10-06T09:44:51.690" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="2" />
  <row Id="2612" PostTypeId="2" ParentId="2247" CreationDate="2010-09-10T17:22:13.857" Score="3" ViewCount="" Body="&lt;p&gt;There's a simple answer: you can't. And moreover, you shouldn't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You want to measure your own productivity, but you can generalize: how can you measure productivity of programmers? First of all you have to define what you mean for &quot;productivity&quot;: amount of code produced? Amount of design (or specification) implemented? Number of issues fixed? Quality of produced code? (Yes, quality is a productivity counter, you can produce a lot of bad code or few good code, what has been more productive?). All these values can hardly be mapped to a daily base, and any attempt to track daily productivity is dangerous for the project, for the company, and for the programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice is to clearly define what you mean as &quot;productivity&quot;, then define a measure unit, and apply it on a weekly and monthly base.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-10T17:22:13.857" />
  <row Id="2613" PostTypeId="2" ParentId="2580" CreationDate="2010-09-10T17:27:19.130" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Quicksort&quot; rel=&quot;nofollow&quot;&gt;Quicksort&lt;/a&gt; People look at me funny when I sort stuff.&lt;/p&gt;&#xA;" OwnerUserId="509" LastActivityDate="2010-09-10T17:27:19.130" CommunityOwnedDate="2011-03-14T16:26:25.523" CommentCount="2" />
  <row Id="2614" PostTypeId="2" ParentId="2247" CreationDate="2010-09-10T17:28:52.253" Score="4" ViewCount="" Body="&lt;p&gt;Give the &lt;a href=&quot;http://www.pomodorotechnique.com/&quot; rel=&quot;nofollow&quot;&gt;Pomodoro techinique&lt;/a&gt; a try.&lt;/p&gt;&#xA;" OwnerUserId="1124" LastActivityDate="2010-09-10T17:28:52.253" CommentCount="5" />
  <row Id="2615" PostTypeId="2" ParentId="2580" CreationDate="2010-09-10T17:29:44.947" Score="2" ViewCount="" Body="&lt;p&gt;Abstracting and classifying. OO analysis and design have helped me in &quot;debates&quot; with my friends more than a few times.&lt;/p&gt;&#xA;" OwnerUserId="170" LastActivityDate="2010-09-10T17:29:44.947" CommunityOwnedDate="2011-03-14T16:26:25.523" />
  <row Id="2616" PostTypeId="2" ParentId="326" CreationDate="2010-09-10T17:35:51.583" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.rememberthemilk.com/&quot; rel=&quot;nofollow&quot;&gt;RememberTheMilk&lt;/a&gt; (RTM) has been already mentioned, but I'd like to mention an alternative approach which allows to &lt;a href=&quot;http://blog.rememberthemilk.com/2008/05/guest-post-advanced-gtd-with-remember-the-milk/&quot; rel=&quot;nofollow&quot;&gt;use it as a client&lt;/a&gt; for the &lt;a href=&quot;http://en.wikipedia.org/wiki/Getting_Things_Done&quot; rel=&quot;nofollow&quot;&gt;Getting Things Done (GTD) methodology&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started using it 3 weeks ago after trying several solutions in the past (e.g. text files, &lt;a href=&quot;http://www.abstractspoon.com/tdl_resources.html&quot; rel=&quot;nofollow&quot;&gt;AbstractSpoon's ToDoList&lt;/a&gt;, &lt;a href=&quot;http://www.ibm.com/software/lotus/products/notes/&quot; rel=&quot;nofollow&quot;&gt;Lotus Notes&lt;/a&gt; tasks, &lt;a href=&quot;http://mail.google.com/support/bin/answer.py?hl=en&amp;amp;answer=106237&quot; rel=&quot;nofollow&quot;&gt;Google tasks&lt;/a&gt;), all with mixed success rates. Today, I can't praise the combination of RTM and GTD enough. It completely changed the way how I organize things today ... I wasted &lt;em&gt;a lot&lt;/em&gt; of time playing with any alternatives in the last couple of years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I currently use:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;RTM/GTD&lt;/strong&gt; as a high-level, always available task and planning list (for both personal tasks and work commitments)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Bugzilla&lt;/strong&gt; as a mid-level solution for tracking new requirements and bugs for my projects in more detail (than it would be efficient in RTM)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Netbeans&lt;/strong&gt; (or any IDE &quot;todo&quot; support in the source code) for low-level tracking of pending actions in the code itself&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1117" LastActivityDate="2010-09-10T17:35:51.583" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="2617" PostTypeId="2" ParentId="2516" CreationDate="2010-09-10T17:36:10.727" Score="4" ViewCount="" Body="&lt;p&gt;Bugs introduced by the compiler. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Way back I worked for a company that used an in-house compiled language and bugs would show up in &quot;production&quot; code but would work just fine if compiled in &quot;debug&quot; mode.&lt;/p&gt;&#xA;" OwnerUserId="509" LastActivityDate="2010-09-10T17:36:10.727" />
  <row Id="2618" PostTypeId="2" ParentId="2516" CreationDate="2010-09-10T17:36:24.313" Score="3" ViewCount="" Body="&lt;p&gt;Inconsistent bugs in someone else's API, coupled with limited debugging info.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was working on a realtime component of a massive distributed system (witten in c).  All the components were kept in strict sync by a time daemon. My component passed all its testing, but once the release build was deployed at the customer site, it started crashing at seemingly random times.  The only debug info I had was the core dump and a limited event log.   The core dump indicated that it was dereferencing a null pointer that seemingly couldn't possibly be null.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The debug strategy involved trying to piece together history from the core and the code, adding additional events to the log, and waiting for the crash to happen again.   Early on I started to suspect that the only possible way that particular pointer could end up null was if a certain call to the GetTime() function returned a time earlier than the previous call, but the core utilities developer insisited that was impossible.  So I spent 3 days adding more logging, tracing through code paths, etc.  Then, finally I got a log which caught the time daemon in the act of subtracting a millisecond from the running clock.  The worst part is the other guy never apologized.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-10T17:36:24.313" />
  <row Id="2619" PostTypeId="2" ParentId="2580" CreationDate="2010-09-10T17:37:19.410" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Unwinding the call stack&lt;/strong&gt; helps to make you understand how you came to a silly conversation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Profiling&lt;/strong&gt; yourself also helps you to get more efficient...&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-10T17:37:19.410" CommunityOwnedDate="2011-03-14T16:26:25.523" />
  <row Id="2621" PostTypeId="2" ParentId="2410" CreationDate="2010-09-10T17:40:14.283" Score="11" ViewCount="" Body="&lt;p&gt;Not very good analogy but when people tell me to fix their machine I say&#xA;&quot;I am the guy that designs the cars. I am not the mechanic!&quot;&lt;/p&gt;&#xA;" OwnerUserId="509" LastActivityDate="2010-09-10T17:40:14.283" CommunityOwnedDate="2011-03-03T17:06:14.173" CommentCount="2" />
  <row Id="2622" PostTypeId="2" ParentId="2575" CreationDate="2010-09-10T17:41:51.923" Score="9" ViewCount="" Body="&lt;p&gt;Stereotypes exist because there is some basis in truth. But only some. Yes some programmers are resistant to change or start to take the easy way out. This has less to do with their age than with their basic personality but it seems to be easier to spot with age because we assume something else about the bad young programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, sometimes you reach a point where you are tired of beating your head against a wall by suggesting changes that never are approved and you give up. Clearly it takes time to get to this point, so most of those people are older. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then as you get older and have family obligations, you just don't have as much personal time to research new things and contribute to open source projects etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But on the other hand as you get older, you've seen alot of these tools come and go and seen the disasters that happen when basing a redesign on an untried tool that no one on the team knows and that turns out doesn't work for your particular problem, but it took six months to realize it. So maybe experience is telling you that jumping on the bandwagon of every new nifty thing that comes along is counterproductive in the long run. And yes as you've gotten older you've been on a few death marches or had to maintain software designed with some cool new thing that is no longer being used and there is very little information about it. So yeah, sometimes we aren't as willing to leap into yet another canyon with no parachute. Once burned, twice shy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Older programmers also may have the opportunity to learn something in depth rather than skimming the top out of a whole bunch of new things. So sometimes they know they can easily build something in the existing tool rather than spend months getting to that level of knowledge is yet another tool. We are here to deliver products not use the newest shinest things and older developers who have stayed in development are often quite good at delivering things. So why should we listen to the young person who have never delivered a finished business application in his life about what to use? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And while stereotypes always have a grain of truth, they aren't truth. There are good and bad older programmers just like there are good and young programmers and so forth for any group of people. It is better to treat people as individuals. Talk to each other across group boundaries, you may find out they have valid reasons for what they do or you may learn something or you may teach them something when you don't come across as a know-it-all kid who thinks everyone else is stupid. (I had a Navy Master Chief point this out to me when I was 24, it was painful but ultimately it made me more effective at work.) If you want your ideas to be respected and even implemented, then treat your co-workers (even the ones you don't like) with respect. People will start treating you better and start listening to you more.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-10T17:41:51.923" />
  <row Id="2623" PostTypeId="1" CreationDate="2010-09-10T17:46:15.963" Score="3" ViewCount="325" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/2/most-used-programming-language&quot;&gt;Most used programming language&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I was watching a &lt;a href=&quot;http://video.yahoo.com/watch/630959/2974197&quot; rel=&quot;nofollow&quot;&gt;presentation&lt;/a&gt; by Douglas Crawford and he said that JavaScript was the most popular language in the world. That didn't seem right to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What is currently the most popular programming language?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="686" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T14:18:14.990" LastActivityDate="2010-09-12T14:18:14.990" ClosedDate="2010-09-11T06:55:46.333" Title="What is currently the most popular programming language?" Tags="&lt;programming-languages&gt;&lt;usage&gt;&lt;market-share&gt;" AnswerCount="6" CommentCount="3" />
  <row Id="2624" PostTypeId="2" ParentId="2192" CreationDate="2010-09-10T17:46:53.167" Score="0" ViewCount="" Body="&lt;p&gt;molasses, tar, glue, etc...&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-10T17:46:53.167" CommunityOwnedDate="2011-01-05T06:12:52.770" CommentCount="2" />
  <row Id="2625" PostTypeId="2" ParentId="2591" CreationDate="2010-09-10T17:52:48.670" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Based on&lt;/strong&gt; &lt;a href=&quot;http://topsy.com/s/joel+on+software?window=a&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Topsy&lt;/strong&gt;&lt;/a&gt;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First Place: &lt;a href=&quot;http://www.joelonsoftware.com/items/2009/09/23.html&quot; rel=&quot;nofollow&quot;&gt;The Duct Tape Programmer&lt;/a&gt;!&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A 50%-good solution that people&#xA;  actually have solves more problems and&#xA;  survives longer than a 99% solution&#xA;  that nobody has because it’s in your&#xA;  lab where you’re endlessly polishing&#xA;  the damn thing. Shipping is a feature.&#xA;  A really important feature. Your&#xA;  product must have it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Second Place: &lt;a href=&quot;http://www.inc.com/magazine/20100301/lets-take-this-offline.html&quot; rel=&quot;nofollow&quot;&gt;How Hard Could It Be? Let's Take This Offline&lt;/a&gt;! (Joel talking about the start of his blog.)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;These days, it seems like just about every start-up founder has a blog, and 99 percent of these bloggers are doing it wrong. The problem? They make the blog about themselves, filling it with posts announcing new hires, touting new products, and sharing pictures from the company picnic. That's lovely, darling -- I'm sure your mom cares. Too bad nobody else does.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Third Place: &lt;a href=&quot;http://www.joelonsoftware.com/items/2010/03/17.html&quot; rel=&quot;nofollow&quot;&gt;Distributed Version Control is here to stay, baby&lt;/a&gt;!&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If you are using Subversion, stop it. Just stop. Subversion = Leeches. Mercurial and Git = Antibiotics.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;em&gt;We have better technology now.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I totally agree with those three articles!&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-10T17:52:48.670" CommentCount="1" />
  <row Id="2626" PostTypeId="2" ParentId="2623" CreationDate="2010-09-10T18:02:17.093" Score="3" ViewCount="" Body="&lt;p&gt;According to the TIOBE index its Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&quot; rel=&quot;nofollow&quot;&gt;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8512" LastActivityDate="2010-09-10T18:02:17.093" CommentCount="2" />
  <row Id="2627" PostTypeId="2" ParentId="2623" CreationDate="2010-09-10T18:03:37.700" Score="2" ViewCount="" Body="&lt;p&gt;As far as number of lines in production use, I would agree with him.  Other possible contenders would be C and Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for popular in progammer's preference etc, maybe not.&lt;/p&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-10T18:03:37.700" />
  <row Id="2628" PostTypeId="2" ParentId="2580" CreationDate="2010-09-10T18:04:11.223" Score="20" ViewCount="" Body="&lt;p&gt;I used to work as a receptionist/administrative assistant at a clinic.  One time I was handed a big stack of 100 or so medical charts and asked to put them in alphabetical order.  So I went through the list and made two piles: those whose last name started with A-M, and those whose last name started with N-Z.  Then I divided the first pile into two piles, and so on...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It took about 10 minutes, and the boss wondered how in the world I managed to &lt;strong&gt;sort&lt;/strong&gt; all those charts so &lt;strong&gt;quickly&lt;/strong&gt;. :D&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-10T18:04:11.223" CommunityOwnedDate="2011-03-14T16:26:25.523" CommentCount="4" />
  <row Id="2629" PostTypeId="2" ParentId="2192" CreationDate="2010-09-10T18:05:20.503" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.artima.com/weblogs/viewpost.jsp?thread=178569&quot; rel=&quot;nofollow&quot;&gt;The Much That Slows You Down&lt;/a&gt; is a good blog post for this.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;...&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Many projects repeat core infrastructure-level features over and over, slowing that business down in delivering features that differentiate the business from its competitors.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;...&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;It is inevitable that products and innovations will help reduce the time developers spend on non-differentiating tasks. The question is what form those services and tools will take.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;...&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-10T18:05:20.503" CommunityOwnedDate="2011-01-05T06:12:52.770" CommentCount="1" />
  <row Id="2630" PostTypeId="2" ParentId="2192" CreationDate="2010-09-10T18:08:15.537" Score="45" ViewCount="" Body="&lt;p&gt;Oh this ones easy:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Meetings&lt;/li&gt;&#xA;&lt;li&gt;More Meetings&lt;/li&gt;&#xA;&lt;li&gt;Meetings about the last meeting&lt;/li&gt;&#xA;&lt;li&gt;Meetings to prepare for the upcoming meeting&lt;/li&gt;&#xA;&lt;li&gt;Developing a power point presentation for a meeting&lt;/li&gt;&#xA;&lt;li&gt;Developing a power point presentation for a meeting discussing features that haven't been implemented, shouldn't be implemented, and for whatever reason that guy from sales will jump all over.  I can't predict what document you want displayed in the app based upon your current location without an internet connection or access to your hard-drive.  No really, just give up asking for it too.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-10T18:08:15.537" CommunityOwnedDate="2011-01-05T06:12:52.770" CommentCount="5" />
  <row Id="2631" PostTypeId="2" ParentId="880" CreationDate="2010-09-10T18:09:52.967" Score="1" ViewCount="" Body="&lt;p&gt;I built a cutom rig a while back to keep me satisfied,  I've built it up a bit but I'm starting to outgrow it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3x 22in Monitors (1 nice, 2 cheap)&lt;br&gt;&#xA;4gb of ddr2 @ 1000mhz (I did have 8gb but that died,  4 is just borderline enough.)&lt;br&gt;&#xA;Intel Q6600 o.c to 3.4ghz (on water and a 1ghz o/c)&lt;br&gt;&#xA;Asus P5k-E Motherboard (not a particularily nice mobo, but it works)&lt;br&gt;&#xA;640GB WD Black for boot drive&lt;br&gt;&#xA;5TB+ of hard drice space total&lt;br&gt;&#xA;Nvidia 9800GTX + 9600GT&lt;br&gt;&#xA;HAF 932 to keep it all together (so heavy, and a cat hair magnet)&lt;br&gt;&#xA;Win 7x64 + Ubuntu that I wish i used more.&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-09-10T18:09:52.967" CommunityOwnedDate="2011-02-06T19:45:08.167" />
  <row Id="2632" PostTypeId="2" ParentId="539" CreationDate="2010-09-10T18:10:17.590" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://studiostyles.info/schemes/coding-horror-2010&quot; rel=&quot;nofollow&quot;&gt;Studio Styles - Coding Horror 2010&lt;/a&gt; from &lt;a href=&quot;http://www.codinghorror.com/blog/2006/09/is-your-ide-hot-or-not.html&quot; rel=&quot;nofollow&quot;&gt;Coding Horror - Is Your IDE Hot Or Not?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/UlBGq.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-10T18:10:17.590" CommunityOwnedDate="2010-09-16T13:10:40.707" CommentCount="6" />
  <row Id="2633" PostTypeId="2" ParentId="361" CreationDate="2010-09-10T18:17:40.300" Score="2" ViewCount="" Body="&lt;p&gt;Khilon's answer is what I was going to answer but with an extra clarification; in my view, graduating with a degree in computer science or engineering or any other discipline qualifies you to begin your apprenticeship in your chosen field. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We don't have formal apprenticeships in the software development field but ideally, during the years following your graduation, you will learn lots of techniques that will help with the final goal of delivering robust code that is maintainable, possible to debug, predictable, understandable by others and generally reliable. This includes topics such as testing strategies, build management, configuration management, version control, defect tracking, quality metrics etc. etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you understand computing theory, complexity theory, algorithms etc. then you will have a strong BS detector which is one of the great things that you get from a good degree. If you can then work with a good team that understands the &lt;em&gt;engineering&lt;/em&gt; aspects of software development then you will have a very good combination of knowledge. &lt;/p&gt;&#xA;" OwnerUserId="1127" LastActivityDate="2010-09-10T18:17:40.300" />
  <row Id="2634" PostTypeId="2" ParentId="880" CreationDate="2010-09-10T18:19:12.697" Score="2" ViewCount="" Body="&lt;p&gt;See the Speccy output here: &lt;a href=&quot;http://speccy.piriform.com/results/gtrlNJUVS9nqMAPVpNgnzjx&quot; rel=&quot;nofollow&quot;&gt;Clevo W870CU, Full HD 17.3&quot; Gaming Laptop&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Added a SSD lately, for those considering: They are worth it... :-)&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-14T22:49:05.620" LastActivityDate="2010-09-14T22:49:05.620" CommunityOwnedDate="2011-02-06T19:45:08.167" />
  <row Id="2635" PostTypeId="2" ParentId="2623" CreationDate="2010-09-10T18:34:12.457" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.devtopics.com/most-popular-programming-languages/&quot; rel=&quot;nofollow&quot;&gt;DevTopics - Most Popular Programming Languages&lt;/a&gt; and &lt;a href=&quot;http://langpop.com/&quot; rel=&quot;nofollow&quot;&gt;LangPop.com&lt;/a&gt;&lt;br&gt;&#xA;show a lot of datasets that result in the Java language followed by C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the Microsoft world I tend to think that C# and the .NET Framework are very popular.&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-10T18:49:49.263" LastActivityDate="2010-09-10T18:49:49.263" CommentCount="4" />
  <row Id="2637" PostTypeId="2" ParentId="2591" CreationDate="2010-09-10T18:39:32.813" Score="-3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;May I be corny &amp;amp; say &quot;all of them&quot;?&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some may be &quot;stronger&quot; than others, but none is so &quot;weak&quot; that it is not worth reading. I have (and recommend others to) read every single post and then bought his books which merely repeat the posts in print (but can be read on buses, in taxis, in flight  ... even in bars ;-)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is none which will not repay the time invested in reading it&lt;/p&gt;&#xA;" OwnerUserId="979" LastActivityDate="2010-09-10T18:39:32.813" CommentCount="1" />
  <row Id="2638" PostTypeId="2" ParentId="539" CreationDate="2010-09-10T18:41:36.920" Score="0" ViewCount="" Body="&lt;p&gt;My change to the VS's default scheme is Editor's background color - I set it to light grey. &lt;/p&gt;&#xA;" OwnerUserId="1131" LastActivityDate="2010-09-10T18:41:36.920" CommunityOwnedDate="2010-09-16T13:10:40.707" />
  <row Id="2639" PostTypeId="2" ParentId="361" CreationDate="2010-09-10T18:42:22.277" Score="13" ViewCount="" Body="&lt;p&gt;Very few people graduate &lt;em&gt;any&lt;/em&gt; discipline being an expert at something they have merely studied. Computer science isn't in any way special in that regard. Nothing beats empirical experience and you only get that from developing fully-fledged software for real clients, with all the demands, time-constraints, changes and teamwork this involves.&lt;/p&gt;&#xA;" OwnerUserId="607" LastEditorUserId="607" LastEditorDisplayName="" LastEditDate="2010-09-10T23:49:16.627" LastActivityDate="2010-09-10T23:49:16.627" CommentCount="2" />
  <row Id="2640" PostTypeId="2" ParentId="2563" CreationDate="2010-09-10T18:42:39.333" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;My impression is that it doesn't&#xA;  matter much whether you are working&#xA;  hard writing great code or being lazy&#xA;  and throwing up sloppy code.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Watch out with that, this might have a truth in small to medium projects, but in large projects where the society and lives are at stake your sloppy code will work against you... In such cases you will need to write great code that uses formal techniques and the necessary tests or you will quickly find meet a lawyer.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is it possible to get recognition as a software developer?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Depends on what you do, you might get recognition within the company if you are lucky...&lt;br&gt;&#xA;But outside of the company nobody will notice this recognition and it wouldn't be worth it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best way to get recognition would be to ride the social media and blog/tweet about it, like Joel does. ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software projects that are open-source might help with that, but yeah... In most cases that doesn't pay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe writing a book could be a nice idea for those that aren't really aware of blogs/tweets...&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-10T18:42:39.333" />
  <row Id="2641" PostTypeId="2" ParentId="2580" CreationDate="2010-09-10T18:50:33.957" Score="9" ViewCount="" Body="&lt;p&gt;In the same way that people who work in sausage factories often can never eat another sausage again, I find that programming makes me very wary of other peoples' software and websites. Just because they look slick on the outside doesn't convince me they are well-made and secure on the inside. Because I've seen into the dark entrails of software the mechanically-recovered bits of code that reside therein...&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-10T18:50:33.957" CommunityOwnedDate="2011-03-14T16:26:25.523" />
  <row Id="2642" PostTypeId="2" ParentId="154" CreationDate="2010-09-10T18:50:39.743" Score="2" ViewCount="" Body="&lt;p&gt;Sorry, I looked everywhere, but can't find the image. It stood on my desk at many conpanies for over a decade ....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pointy headed boss: “You’ve been a good contract employee. We'd like to make you regular employee&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dilbert: &quot;You mean you want to pay me less? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pointy headed boss: &quot;We want you to be motivated by something other than money&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dilbert: &quot;Like stupidity?”&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;update: Thanks, here it is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/INBTg.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="979" LastEditorUserId="979" LastEditorDisplayName="" LastEditDate="2011-01-18T10:01:25.270" LastActivityDate="2011-01-18T10:01:25.270" CommentCount="4" />
  <row Id="2643" PostTypeId="2" ParentId="954" CreationDate="2010-09-10T18:56:14.927" Score="19" ViewCount="" Body="&lt;p&gt;I have one goal above everything else and it is to offer the best possible experience to the user. This includes usability, looks, features to match the users needs, performance to some degree, stability, correctness, etc. In other words, I prioritize anything the user can notice. I'm actually a bit worried that most answers don't have this point of view at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondary goals are maintainability, elegant implementation, documentation and other things that are visible only to the programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Please note that this does not mean that you can write poor code. Both goals need to be met to some degree. However, if you have an extra day and you have to decide whether to spend it on improving the code and adding comments or making the user experience just perfect, I would spend it on the latter.&lt;/p&gt;&#xA;" OwnerUserId="837" LastEditorUserId="837" LastEditorDisplayName="" LastEditDate="2010-10-18T16:38:35.657" LastActivityDate="2010-10-18T16:38:35.657" CommentCount="13" />
  <row Id="2644" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T18:57:36.930" Score="43" ViewCount="" Body="&lt;p&gt;Without any discernable cause, I was brought into a private meeting, and told not to check if my computer was being monitored - including, never ever checking my task manager for any reason. I asked if they were monitoring my computer, and was told (roughly) &quot;this is just a preventative thing -- you know, our lawyer told us to tell the employees about this -- but you know, we can't really say -- but I'm not monitoring it now.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(nudge, I think they were monitoring my computer, just not while they were telling me not to look for any monitoring programs. In fact, a few weeks later, I came in early and literally watched the mouse moving around my screen as if by remote -- so I looked through the window of the CEO and saw him remotely clicking around on my computer from his laptop.)&lt;/p&gt;&#xA;" LastActivityDate="2010-09-10T18:57:36.930" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="5" />
  <row Id="2645" PostTypeId="2" ParentId="597" CreationDate="2010-09-10T19:00:04.143" Score="0" ViewCount="" Body="&lt;p&gt;Very little. Too little. The thing is that I'm interested in lots of things and since programming is just one of my interests, so it is hard to find time for something that I do at work all day long. I rather do something completely different.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-10T19:00:04.143" />
  <row Id="2646" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T19:00:12.410" Score="0" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Atari_BASIC&quot; rel=&quot;nofollow&quot;&gt;Atari BASIC&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;(On the Atari 130XE)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Different than &lt;a href=&quot;http://en.wikipedia.org/wiki/ST_BASIC&quot; rel=&quot;nofollow&quot;&gt;Atari ST Basic&lt;/a&gt;, as &lt;a href=&quot;http://programmers.stackexchange.com/questions/2291/what-was-the-first-language-you-learned/2454#2454&quot;&gt;posted&lt;/a&gt; by &lt;a href=&quot;http://programmers.stackexchange.com/users/1020/vetler&quot;&gt;vetler&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1136" LastActivityDate="2010-09-10T19:00:12.410" CommunityOwnedDate="2010-09-10T19:00:12.410" />
  <row Id="2647" PostTypeId="2" ParentId="2623" CreationDate="2010-09-10T19:00:12.727" Score="0" ViewCount="" Body="&lt;p&gt;If by popular you mean number of lines of code out in the wild, its going to be C or C++ by a wide, wide margine.  Every PC runs on millions upon millions of lines of C++ code, regardless OS.  It also powers phones, mp3 players, and virtually all electronics with embedded chips.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remmeber, those java apps are all running on OS's that are written in C++, and that javascript is being interpreted by a browser written in C++.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-10T19:00:12.727" />
  <row Id="2648" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T19:01:11.897" Score="70" ViewCount="" Body="&lt;p&gt;Use Visual SourceSafe.&lt;/p&gt;&#xA;" OwnerUserId="1138" LastActivityDate="2010-09-10T19:01:11.897" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="6" />
  <row Id="2649" PostTypeId="1" CreationDate="2010-09-10T19:13:24.567" Score="15" ViewCount="371" Body="&lt;p&gt;I often browse Stack Overflow, even older question, just as a way to learn new things, features or subtleties of the languages or systems I already know (and sometimes also on languages I barely know the name...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suppose I'm not alone...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the most useful thing you've learned from Stack Overflow?&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-12T10:41:07.103" ClosedDate="2011-05-28T00:27:10.357" Title="Stack Overflow as a way to learn new things" Tags="&lt;learning&gt;&lt;stackoverflow&gt;" AnswerCount="6" CommentCount="6" FavoriteCount="3" />
  <row Id="2650" PostTypeId="2" ParentId="2649" CreationDate="2010-09-10T19:17:01.093" Score="7" ViewCount="" Body="&lt;p&gt;Both that I'm not as clever as I thought and that I know more than I thought ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Answers I thought were pretty good have not received any recognition - hence I'm not as clever as I thought.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, I've been able to provide help to people by dredging up knowledge from my past and also apply what I do know to languages and frameworks I've not really used at all.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-10T19:17:01.093" />
  <row Id="2651" PostTypeId="2" ParentId="597" CreationDate="2010-09-10T19:21:31.927" Score="1" ViewCount="" Body="&lt;p&gt;It varies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a long time I didn't do any coding outside work, then when my career started to get &quot;interesting&quot; (read: I was made redundant) I realised I should do some. I did for a while as I had a couple of projects I wanted to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, now I've finished those projects I'm back to doing very little. I am learning new stuff at work, so that reason to write code is taken care of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I should decide on some new projects, but nothing springs to mind at the moment.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-09-10T19:29:37.747" LastActivityDate="2010-09-10T19:29:37.747" />
  <row Id="2652" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T19:22:37.287" Score="1" ViewCount="" Body="&lt;p&gt;I was once asked to make a field in a database &quot;semi-compulsory&quot; by a manager.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just recently I was asked to develop a web application I had no prior knowledge of based on some JPEG mocks of what the website should look like that had been created by a design agency in another country who normally do print designs and have no idea about the web.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-10T19:22:37.287" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="4" />
  <row Id="2653" PostTypeId="2" ParentId="2649" CreationDate="2010-09-10T19:24:42.540" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://stackoverflow.com/questions/389957/forward-declaration-of-a-base-class&quot;&gt;Forward declaration of Base Classes&lt;/a&gt;&lt;/strong&gt;,&lt;br&gt;&#xA;a question I posed with 2k views was something vital I learned by asking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I could probably learn a lot from &lt;a href=&quot;http://stackoverflow.com/questions/9033/hidden-features-of-c&quot;&gt;&lt;strong&gt;Hidden Features in C#&lt;/strong&gt;&lt;/a&gt;, the second most upvoted question.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-10T19:24:42.540" />
  <row Id="2654" PostTypeId="1" CreationDate="2010-09-10T19:34:37.357" Score="16" ViewCount="584" Body="&lt;p&gt;In response to &lt;a href=&quot;http://programmers.stackexchange.com/questions/1338/worst-coding-standard-youve-ever-had-to-follow&quot;&gt;This Question&lt;/a&gt;, I ask:   What are the best parts of your coding standard?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the best practices that help with code quality, reliability, maintainability, readability, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please include the language, the item from the standard, and the reason it improves your code.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-12-04T22:11:19.210" Title="What parts of your coding standard contribute to quality code?" Tags="&lt;coding-standards&gt;&lt;best-practices&gt;" AnswerCount="15" CommentCount="3" FavoriteCount="4" />
  <row Id="2655" PostTypeId="2" ParentId="2654" CreationDate="2010-09-10T19:39:38.403" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C&lt;/strong&gt;:  Preprocessor macro 'functions' should be in all caps&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example:    &lt;code&gt;#define CUBE(x) ((x)*(x)*(x))&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reason:   When scanning code, Macros stand out from regular functions, and alert you that there may side effects a normal function call would never have, like changing the value of the &quot;input&quot; argument, or having it evaluated 3 times.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-10T19:39:38.403" CommentCount="1" />
  <row Id="2656" PostTypeId="2" ParentId="501" CreationDate="2010-09-10T19:42:24.077" Score="3" ViewCount="" Body="&lt;p&gt;Redundant parameterization in Java:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;HashMap&amp;lt;String,HashMap&amp;lt;String,String&amp;gt;&amp;gt; foo = new HashMap&amp;lt;String, HashMap&amp;lt;String, String&amp;gt;&amp;gt;();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;What other type parameterization does the compiler &lt;em&gt;think&lt;/em&gt; &lt;code&gt;foo&lt;/code&gt; could have?&lt;/p&gt;&#xA;" OwnerUserId="998" LastActivityDate="2010-09-10T19:42:24.077" CommunityOwnedDate="2010-09-10T19:42:24.077" CommentCount="5" />
  <row Id="2657" PostTypeId="2" ParentId="2575" CreationDate="2010-09-10T19:44:54.710" Score="6" ViewCount="" Body="&lt;p&gt;You mean that someone old enough to have programmed Lisp and Smalltalk isn't that enthused by learning Python and Ruby? Much of what is 'new' is simply history repeated, with a few more CPU cycles to back it up.&lt;/p&gt;&#xA;" OwnerUserId="1145" LastActivityDate="2010-09-10T19:44:54.710" CommentCount="7" />
  <row Id="2658" PostTypeId="2" ParentId="1013" CreationDate="2010-09-10T19:54:59.417" Score="1" ViewCount="" Body="&lt;p&gt;ColdFusion Report Builder&lt;/p&gt;&#xA;" OwnerUserId="1150" LastActivityDate="2010-09-10T19:54:59.417" CommunityOwnedDate="2011-02-01T07:56:02.387" CommentCount="1" />
  <row Id="2660" PostTypeId="2" ParentId="2654" CreationDate="2010-09-10T19:56:04.760" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C#:&lt;/strong&gt; Use Extract Method instead of comments&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If we felt like we needed to add a comment to a block of code to explain what it's doing, instead we would extract that code into a new method with a descriptive name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This makes the code more readable and modular, and reduces the number of (out-of-date) comments floating around.&lt;/p&gt;&#xA;" OwnerUserId="163" LastActivityDate="2010-09-10T19:56:04.760" />
  <row Id="2661" PostTypeId="2" ParentId="2623" CreationDate="2010-09-10T19:59:05.040" Score="0" ViewCount="" Body="&lt;p&gt;By number of programmers using it, I would think it's &lt;strong&gt;C#&lt;/strong&gt; because it has by far the most tagged questions on StackOverflow.  &lt;strong&gt;Java&lt;/strong&gt; and &lt;strong&gt;PHP&lt;/strong&gt; are the next most.&lt;/p&gt;&#xA;" OwnerUserId="59" LastActivityDate="2010-09-10T19:59:05.040" CommentCount="2" />
  <row Id="2663" PostTypeId="2" ParentId="2654" CreationDate="2010-09-10T20:00:34.760" Score="9" ViewCount="" Body="&lt;h3&gt;C#: Differing naming styles for different types of names.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class ClassNamesArePascalCase{&#xA;    public int FieldsArePascalCase;&#xA;    private int _privateFieldsAreUnderscoredCamelCase&#xA;    public const int CONSTANTS_ARE_CAPITAL = 3;&#xA;&#xA;    public void MethodNamesArePascalCase( string parametersAreCamel ){&#xA;        int localVariablesAreCamel;&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It doesn't matter so much which standards you use for which name types, as long as it's consistent among that type (eg, all constants are capital), consistent within the project, and different from eachother.  The benefit here is that I can tell at a glance that _someVar is a private field without having to look it up.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-10T20:00:34.760" CommentCount="5" />
  <row Id="2664" PostTypeId="2" ParentId="1913" CreationDate="2010-09-10T20:03:00.190" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Cygwin, zsh, mintty, screen, git, and vim--even if you're doing 100% windows-based development, you still need to get around the filesystem efficiently, and cmd.exe just doesn't cut it.&lt;/li&gt;&#xA;&lt;li&gt;Reflector if you're dealing with .net -- no faster way to find out why that platform/3rd party library is &lt;em&gt;really&lt;/em&gt; not doing what you expect.&lt;/li&gt;&#xA;&lt;li&gt;Visual Studio 2008 or 2010 -- 2010 if you're doing WPF/Silverlight stuff, otherwise 2008 is fine.&lt;/li&gt;&#xA;&lt;li&gt;ViEmu for Visual Studio -- Can't type without it&lt;/li&gt;&#xA;&lt;li&gt;Sysinternals tools if you're doing any systems-level stuff&lt;/li&gt;&#xA;&lt;li&gt;Graphedit if you're dealing with drivers&lt;/li&gt;&#xA;&lt;li&gt;Spy++ if you're dealing with win32 api.&lt;/li&gt;&#xA;&lt;li&gt;AutoHotKey - automate everything&lt;/li&gt;&#xA;&lt;li&gt;Chrome - fast web browser is a must&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="12" LastActivityDate="2010-09-10T20:03:00.190" CommunityOwnedDate="2010-09-10T20:03:00.190" />
  <row Id="2665" PostTypeId="2" ParentId="1013" CreationDate="2010-09-10T20:04:37.163" Score="1" ViewCount="" Body="&lt;p&gt;Flex Builder 3. The compiler is extremely slow and sometimes it just fails to compile properly. Sometimes it fails to find syntax errors and sometimes it won't compile perfectly valid code. Reference search does not find all of the references 80 percent of the time and they have not implemented most of the nice features the standard Java Eclipse has. Even the rename sometimes fails miserably. Also it has an uncanny ability to remove my imports when I edit code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also both of the Ruby plugins for Eclipse I have tried: Aptana and Ruby Development Tools. Aptana loses syntax highlighting every time I edit code and RDT froze constantly when I typed certain characters (I think it was : followed by any text).&lt;/p&gt;&#xA;" OwnerUserId="837" LastEditorUserId="837" LastEditorDisplayName="" LastEditDate="2010-09-15T20:13:09.090" LastActivityDate="2010-09-15T20:13:09.090" CommunityOwnedDate="2011-02-01T07:56:02.387" CommentCount="2" />
  <row Id="2666" PostTypeId="1" CreationDate="2010-09-10T20:11:35.783" Score="15" ViewCount="1077" Body="&lt;p&gt;Sometimes, people really have a bad day...&lt;br&gt;&#xA;I think it's interesting to learn why that day was bad and learn from our mistakes made on that day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So... What was your worst software development day like?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:03:31.793" LastActivityDate="2011-02-07T21:49:07.700" CommunityOwnedDate="2011-01-10T19:05:03.687" Title="What was your worst software development day like?" Tags="&lt;mistakes&gt;&lt;work-time&gt;" AnswerCount="25" CommentCount="2" FavoriteCount="7" />
  <row Id="2667" PostTypeId="2" ParentId="2352" CreationDate="2010-09-10T20:13:21.427" Score="1" ViewCount="" Body="&lt;p&gt;some combination of web languages, some combo of html/css/js/javascript/php&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-09-10T20:13:21.427" CommentCount="1" />
  <row Id="2669" PostTypeId="2" ParentId="1013" CreationDate="2010-09-10T20:20:41.507" Score="5" ViewCount="" Body="&lt;p&gt;The Polytron Version Control System -- PVCS. And it was made even worse by my company, who decided that it wasn't lousy enough as is. That they should get the &lt;em&gt;source&lt;/em&gt; code for it and hack it to death so that they'd be forever locked on an ancient version of the code, all hacked up and horrible and barely functioning.&lt;/p&gt;&#xA;" OwnerUserId="762" LastActivityDate="2010-09-10T20:20:41.507" CommunityOwnedDate="2011-02-01T07:56:02.387" CommentCount="1" />
  <row Id="2670" PostTypeId="2" ParentId="35" CreationDate="2010-09-10T20:21:36.443" Score="23" ViewCount="" Body="&lt;p&gt;It's a old one, but very popular in that time:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;God was fed up. In a crash of thunder he yanked up to Heaven three influential humans: Bill Clinton, Boris Yeltsin and Bill Gates. &quot;The human race is a complete disappointment,&quot; God boomed. &quot;You each have one week to prepare your followers for the end of the world.&quot; With another crash of thunder they found themselves back on Earth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clinton immediately called his cabinet. &quot;I have good news and bad news,&quot; he announced grimly. &quot;The good news is that there is a god. The bad news is, God's really mad and plans to end the world in a week.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Russia, Yeltsin announced to parliament, &quot;Comrades, I have bad news and worse news. The bad news is that we were wrong: there is a god after all. The worse news is God's mad and is going to end the world in a week.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Meanwhile, Bill Gates called a meeting of his top engineers. &quot;I have good news and better news. The good news is that God considers me one of the three most influential men on Earth,&quot; he beamed. &quot;The better news is we don't have to fix the bugs in Windows 95.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And can be adapted to many new projects :-)&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-24T18:04:08.320" LastActivityDate="2010-09-24T18:04:08.320" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="1" />
  <row Id="2671" PostTypeId="2" ParentId="2192" CreationDate="2010-09-10T20:21:48.283" Score="2" ViewCount="" Body="&lt;p&gt;Well lately the biggest slow down is because we are developing several things simulatneously that should have been done in a specific order. So I'm waiting until (names changed to protect the innocent) John finishes his component that I need for my SSIS package and Harry is slowed down waiting for me to import records because he needs some data to see to test his export (ever try to write a complex export report when there is no data in any of the tables?) and everybody is slowed down because design isn't done and the database tables we need to do our tasks haven't been created yet and may not even end up being what they said they were going to be, etc.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-10T20:21:48.283" CommunityOwnedDate="2011-01-05T06:12:52.770" CommentCount="2" />
  <row Id="2673" PostTypeId="2" ParentId="135" CreationDate="2010-09-10T20:29:10.963" Score="4" ViewCount="" Body="&lt;p&gt;If you're a .Net/Mono developer: &lt;a href=&quot;http://twitter.com/migueldeicaza&quot; rel=&quot;nofollow&quot;&gt;Miguel de Icaza&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-10T20:29:10.963" CommunityOwnedDate="2011-02-11T07:48:02.420" />
  <row Id="2674" PostTypeId="2" ParentId="135" CreationDate="2010-09-10T20:30:27.973" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://twitter.com/Codebetter&quot; rel=&quot;nofollow&quot;&gt;Code Better&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-10T20:30:27.973" CommunityOwnedDate="2011-02-11T07:48:02.420" />
  <row Id="2675" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T20:36:29.503" Score="21" ViewCount="" Body="&lt;p&gt;Can you take this 10-page report that I asked you to prepare as a word document and make it into a powerpoint presentation because I am really a visual thinker and won't actually read the written report I asked you to make?&lt;/p&gt;&#xA;" OwnerUserId="1154" LastActivityDate="2010-09-10T20:36:29.503" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="1" />
  <row Id="2676" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T20:37:56.290" Score="0" ViewCount="" Body="&lt;p&gt;Q: &quot;See this word here, how do I know if before that I should write 'a' or 'an'?&quot;&#xA;A: Use &quot;an&quot; if the next word starts with a vowel&#xA;Q: &quot;What's a vowel?&quot;&lt;/p&gt;&#xA;" LastActivityDate="2010-09-10T20:37:56.290" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="4" />
  <row Id="2677" PostTypeId="2" ParentId="2649" CreationDate="2010-09-10T20:41:13.620" Score="5" ViewCount="" Body="&lt;p&gt;I learned that no one in the world is interested in the knowledge I have and value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Indeed, my answers, even accepted, yield few upvotes. It means that many questions I consider interesting enough to answer just don't get traction.  Which, in turn, demonstrates uselessness of my skills.  Before StackOverflow, I was more proud of myself, unreasonably.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-10T20:41:13.620" CommentCount="4" />
  <row Id="2678" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T20:43:00.570" Score="26" ViewCount="" Body="&lt;p&gt;I have been asked to write in a presentation of our software to a major multinational potential customer that we used &quot;spaghetti code&quot; coding technique.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, we're in Italy... sounds good.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-10T20:43:00.570" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="1" />
  <row Id="2679" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T20:43:12.767" Score="10" ViewCount="" Body="&lt;p&gt;Ok, I want you to scan this picture of a house, when I come back, you should be able to show me the back portion of it.&lt;/p&gt;&#xA;" OwnerUserId="1161" LastActivityDate="2010-09-10T20:43:12.767" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="7" />
  <row Id="2680" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T20:46:49.290" Score="1" ViewCount="" Body="&lt;p&gt;To make a user manual for an automated process. &#xA;The user manual basically say &quot;Double click foo.exe and wait until it's done&quot;&lt;/p&gt;&#xA;" LastActivityDate="2010-09-10T20:46:49.290" CommunityOwnedDate="2010-09-10T21:00:36.153" />
  <row Id="2681" PostTypeId="2" ParentId="2580" CreationDate="2010-09-10T20:47:31.480" Score="0" ViewCount="" Body="&lt;p&gt;How to follow directions exactly as described.  (Ok, sometimes that isn't so useful!)&lt;/p&gt;&#xA;" OwnerUserId="88" LastActivityDate="2010-09-10T20:47:31.480" CommunityOwnedDate="2011-03-14T16:26:25.523" CommentCount="1" />
  <row Id="2682" PostTypeId="1" CreationDate="2010-09-10T20:47:39.903" Score="10" ViewCount="294" Body="&lt;p&gt;We’re working on a .Net framework which ultimately amounts to a single DLL.  We intend to charge for commercial use of the framework, but make it free for open source/non-commercial use.  The rough plan at the moment is to administer this through some form of fairly simple licence which will be issued whether you’re using it for free or paying.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We’re debating whether to make the source code available.  It’s our perception (and our own preference) that it’s far more appealing to use something where you have access to the source code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I’m interested in whether people think making the source code available will damage our ability to make money from the framework, or whether it will encourage more usage and enough “good” people will arrange to pay for the correct licence if using it commercially.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My feeling is that, generally, commercial operations don’t mess about on the licencing front and so making the source code available will only encourage usage and therefore ultimately generate more revenue, but I’d be interested in others views/experience.&lt;/p&gt;&#xA;" OwnerUserId="316" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-23T22:36:14.097" LastActivityDate="2010-10-24T15:28:55.220" Title="Does making source code available affect your ability to generate revenue?" Tags="&lt;open-source&gt;&lt;.net&gt;&lt;legal&gt;&lt;license&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="3" />
  <row Id="2683" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T20:48:55.150" Score="1" ViewCount="" Body="&lt;p&gt;I was asked by my manager, a VP with connections to a support company in China, to transfer the support of my products to an external company.  When I tried to explain to him that this was not possible given our contractual obligations to our customers, his response was, &quot;Of course we can do it - we did it at &quot;xxx company&quot; (his previous employer)  Never mind that the two companies made different classes of software, and had different licensing models.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-10T20:48:55.150" CommunityOwnedDate="2010-09-10T21:00:36.153" />
  <row Id="2684" PostTypeId="2" ParentId="1013" CreationDate="2010-09-10T20:51:19.497" Score="9" ViewCount="" Body="&lt;p&gt;Powerbuilder.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifically Powerbuilder versions 3.0 - 6.0.  Using it was like playing minesweeper... quite literally if you clicked in the wrong place, it'd crash.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-10T20:51:19.497" CommunityOwnedDate="2011-02-01T07:56:02.387" CommentCount="3" />
  <row Id="2685" PostTypeId="2" ParentId="2580" CreationDate="2010-09-10T20:53:39.213" Score="1" ViewCount="" Body="&lt;p&gt;Logical progression and unwinding to the root cause. Every time I see something that breaks or doesn't work like it ought to I immediately go in to backtrace mode.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, every time I see something new my mind goes straight to &quot;how would I code that up?&quot; mode.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Drives my wife &lt;em&gt;absolutely&lt;/em&gt; insane.&lt;/p&gt;&#xA;" OwnerUserId="1171" LastActivityDate="2010-09-10T20:53:39.213" CommunityOwnedDate="2011-03-14T16:26:25.523" />
  <row Id="2686" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T20:54:41.560" Score="7" ViewCount="" Body="&lt;p&gt;About 12 years ago when I was in college I worked on a data modelling application for Windows.  The project was nearly complete after about 60,000 lines of Win32 code, you know, code targeting the Windows platform.  Then the client said the application also needs to run &quot;on the web&quot;.  She had a hard time understanding how this one &quot;minor little&quot; requirements change could have such a big impact on the project.  I started over from scratch in Java but ended up quiting the project before it was ever finished.&lt;/p&gt;&#xA;" OwnerUserId="1173" LastActivityDate="2010-09-10T20:54:41.560" CommunityOwnedDate="2010-09-10T21:00:36.153" />
  <row Id="2687" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T20:56:04.203" Score="16" ViewCount="" Body="&lt;p&gt;&quot;I don't like the way this Oracle database works.  Why don't we just write our own database?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Admittedly, this was over 15 years ago, but still!)&lt;/p&gt;&#xA;" OwnerUserId="88" LastActivityDate="2010-09-10T20:56:04.203" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="1" />
  <row Id="2688" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T20:57:07.700" Score="2" ViewCount="" Body="&lt;p&gt;Got a task that reduced down to the Halting Problem. I had just finished a Ph.D. in Recursion Theory. So funny!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We settled for a (cheesy) approximation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stephan&lt;/p&gt;&#xA;" LastActivityDate="2010-09-10T20:57:07.700" CommunityOwnedDate="2010-09-10T21:00:36.153" />
  <row Id="2689" PostTypeId="2" ParentId="2666" CreationDate="2010-09-10T20:59:14.123" Score="13" ViewCount="" Body="&lt;p&gt;Tired or not feeling too well, so it takes a lot longer to concentrate enough to get something done, combined with a whole pile of interruptions.  End result: nothing done at all.&lt;/p&gt;&#xA;" OwnerUserId="88" LastActivityDate="2010-09-10T20:59:14.123" CommunityOwnedDate="2011-01-10T19:05:03.687" />
  <row Id="2690" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T21:00:36.153" Score="32" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Client:&lt;/em&gt; We've been using your database software for a couple of years, developing our own applications with it, and calling you from time to time for help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Me:&lt;/em&gt; Yes, we appreciate doing business with you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Client:&lt;/em&gt; Yeah.  Every time we call, you tell us how to use a new feature, or you help us debug our usage, or provide a workaround for some issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Me:&lt;/em&gt;  Sure, we're always happy to be of assistance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Client:&lt;/em&gt; Occasionally, your product has an actual bug in it, and your company fixes it and gives us a software update.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Me:&lt;/em&gt;  We do our best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Client:&lt;/em&gt;  Well, what we need from you now is some assurance that &lt;strong&gt;we won't have any more issues.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Me:&lt;/em&gt; . . .&lt;/p&gt;&#xA;" OwnerUserId="471" LastActivityDate="2010-09-10T21:00:36.153" CommunityOwnedDate="2010-09-10T21:00:36.153" CommentCount="7" />
  <row Id="2691" PostTypeId="2" ParentId="2233" CreationDate="2010-09-10T21:03:14.637" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131103628&quot; rel=&quot;nofollow&quot;&gt;K&amp;amp;R&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Scratch Paper (I prefer grid/engineering paper)&lt;/li&gt;&#xA;&lt;li&gt;Headphones&lt;/li&gt;&#xA;&lt;li&gt;Mountain Dew&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1171" LastActivityDate="2010-09-10T21:03:14.637" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="2692" PostTypeId="2" ParentId="539" CreationDate="2010-09-10T21:06:11.500" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://wp.me/phdd0-r3&quot; rel=&quot;nofollow&quot;&gt;I use a dark background theme with lighter font colors&lt;/a&gt;. &#xA;I cannot post the image, but it is at the bottom of that page.&#xA;Edit: I am able post image now. Here is how it looks.&#xA;&lt;img src=&quot;http://i.imgur.com/EHd5M.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="921" LastEditorUserId="921" LastEditorDisplayName="" LastEditDate="2010-09-11T05:54:40.137" LastActivityDate="2010-09-11T05:54:40.137" CommunityOwnedDate="2010-09-16T13:10:40.707" CommentCount="2" />
  <row Id="2693" PostTypeId="2" ParentId="2649" CreationDate="2010-09-10T21:06:26.100" Score="12" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What is the most useful thing you've learned from Stack Overflow?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;How to communicate clearly to a technical audience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both asking questions, and answering them, provides near instant feedback on your communication abilities to the audience in question.  Given StackOverflow's highly-technical audience, I feel I've learned, fairly quickly, how to communicate with programmers in a clear and concise manner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Personally, I also find this to be the real value in the rep. system, too...)&lt;/p&gt;&#xA;" OwnerUserId="1179" LastActivityDate="2010-09-10T21:06:26.100" />
  <row Id="2694" PostTypeId="2" ParentId="2649" CreationDate="2010-09-10T21:10:02.360" Score="11" ViewCount="" Body="&lt;p&gt;I haven't learned it yet, but SO really forces me to write down my programming problems short, clear and straight, and, in English. I feel I really have to think about how to do that. That is good, thinking keeps me going and improving.&lt;/p&gt;&#xA;" OwnerUserId="545" LastActivityDate="2010-09-10T21:10:02.360" CommentCount="1" />
  <row Id="2695" PostTypeId="2" ParentId="2291" CreationDate="2010-09-10T21:11:17.763" Score="1" ViewCount="" Body="&lt;h1&gt;FORTRAN 77&lt;/h1&gt;&#xA;" OwnerUserId="88" LastActivityDate="2010-09-10T21:11:17.763" CommunityOwnedDate="2010-09-10T21:11:17.763" />
  <row Id="2696" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T21:11:31.093" Score="54" ViewCount="" Body="&lt;p&gt;My brother and I were working on a multimedia heavy-website for a very &lt;a href=&quot;http://en.wikipedia.org/wiki/Prince_%28musician%29&quot; rel=&quot;nofollow&quot;&gt;famous rock star&lt;/a&gt; many years ago. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the client saw the site he noticed some compression artifacts on some of the JPEGs and asked what was wrong with them. We explained that images need compression for bandwidth purposes and that the images were currently compressed at about 80% quality. He was offended and said something to the effect of &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I haven't gotten to where I am today&#xA;  by doing things at 80%, set it to&#xA;  100%.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;We tried to explain how it would affect users, but he would have none of it. It resulted in the slowest &quot;virtual world&quot; website ever. &lt;strong&gt;&lt;em&gt;This actually happened&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1182" LastEditorUserId="1996" LastEditorDisplayName="" LastEditDate="2011-05-13T20:56:55.587" LastActivityDate="2011-05-13T20:56:55.587" CommunityOwnedDate="2010-09-10T21:11:31.093" CommentCount="9" />
  <row Id="2697" PostTypeId="2" ParentId="2666" CreationDate="2010-09-10T21:11:51.197" Score="34" ViewCount="" Body="&lt;p&gt;It was the day I wrote a SQL delete statement to run against a large table and forgot the where clause. Thankfully we had last night's backups handy.&lt;/p&gt;&#xA;" OwnerUserId="219" LastActivityDate="2010-09-10T21:11:51.197" CommunityOwnedDate="2011-01-10T19:05:03.687" CommentCount="6" />
  <row Id="2698" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T21:18:01.470" Score="92" ViewCount="" Body="&lt;p&gt;&quot;This DLL you wrote is only 17kb. Can you add some code to make it bigger?  The client is paying us a lot of money, and we want them to get their money's worth.&quot;&lt;/p&gt;&#xA;" OwnerUserId="730" LastActivityDate="2010-09-10T21:18:01.470" CommunityOwnedDate="2010-09-10T21:18:01.470" CommentCount="10" />
  <row Id="2699" PostTypeId="1" AcceptedAnswerId="2711" CreationDate="2010-09-10T21:22:25.407" Score="20" ViewCount="884" Body="&lt;p&gt;This is a &quot;Share the Knowledge&quot; question. I am interested in learning from your successes and/or failures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Information that might be helpful...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Background:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Context: Language, Application,&#xA;Environment, etc.&lt;/li&gt;&#xA;&lt;li&gt;How was the bug identified ?&lt;/li&gt;&#xA;&lt;li&gt;Who or what identified the bug ?&lt;/li&gt;&#xA;&lt;li&gt;How complex was reproducing the bug ? &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Hunting.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What was your plan  ?&lt;/li&gt;&#xA;&lt;li&gt;What difficulties did you encounter ?&lt;/li&gt;&#xA;&lt;li&gt;How was the offending code finally found ?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Killing.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How complex was the fix ?&lt;/li&gt;&#xA;&lt;li&gt;How did you determine the scope of the fix ?&lt;/li&gt;&#xA;&lt;li&gt;How much code was involved in the fix ?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Postmortem.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What was the root cause technically ? &lt;em&gt;buffer overrun, etc.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;What was the root cause from 30,000 ft ?&lt;/li&gt;&#xA;&lt;li&gt;How long did the process ultimately take ?&lt;/li&gt;&#xA;&lt;li&gt;Were there any features adversely effected by the fix ?&lt;/li&gt;&#xA;&lt;li&gt;What methods, tools, motivations did you find particularly helpful ? ...horribly useless ?&lt;/li&gt;&#xA;&lt;li&gt;If you could do it all again&#xA;?............&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These examples are general, not applicable in every situation and possibly useless. Please season as needed.&lt;/p&gt;&#xA;" OwnerUserId="497" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T16:53:28.240" LastActivityDate="2011-04-14T23:59:57.260" Title="What was your most difficult bug hunt and how did you find it and kill it?" Tags="&lt;experience&gt;&lt;bugs&gt;" AnswerCount="13" FavoriteCount="12" />
  <row Id="2700" PostTypeId="1" AcceptedAnswerId="2745" CreationDate="2010-09-10T21:26:38.993" Score="9" ViewCount="580" Body="&lt;p&gt;I have had a few that I am proud of and some of them were written by myself few years ago. It doesn't have to be necessarily buggy, just bad code. &lt;/p&gt;&#xA;" OwnerUserId="921" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:10:34.033" LastActivityDate="2010-12-05T15:47:37.053" Title="What was the worst piece of code you fixed that you are proud of?" Tags="&lt;code-quality&gt;&lt;bugs&gt;&lt;code-smell&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="3" />
  <row Id="2701" PostTypeId="2" ParentId="380" CreationDate="2010-09-10T21:31:44.300" Score="2" ViewCount="" Body="&lt;p&gt;Currently just a student, and the biggest perk is the knowledge available to me through the faculty here, as well as the massive amount of hardware we have access to.&lt;/p&gt;&#xA;" OwnerUserId="990" LastActivityDate="2010-09-10T21:31:44.300" />
  <row Id="2702" PostTypeId="2" ParentId="2666" CreationDate="2010-09-10T21:37:11.530" Score="2" ViewCount="" Body="&lt;p&gt;A decade ago when I was working remotely and had a week of work wiped out by a third party defragment program. Since then I haven't had defrag on autopilot. I won't let them run until I check in my changes or run the backup. &lt;/p&gt;&#xA;" OwnerUserId="921" LastActivityDate="2010-09-10T21:37:11.530" CommunityOwnedDate="2011-01-10T19:05:03.687" CommentCount="2" />
  <row Id="2703" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T21:38:17.563" Score="3" ViewCount="" Body="&lt;p&gt;At a credit bureau company, I was asked to replace a 100k C code service that checked fraud databases. Asynchronous multithreaded programming in Java replaced old C fork-join thechniques. The time frames were about 400-500 ms and 1-1.5 sec with stress. We managed to get 600 ms with ocassional peaks from databases' cache flushing.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;My boss asked to configure it with 100 threads because &quot;you never know&quot; -- I did some research and testing and found 20 threads worked best.&lt;/li&gt;&#xA;&lt;li&gt;The service depending on the one I wrote suddenly had trouble, my boss asked me to put a hardcoded timeout to cause more trouble, so we can assure I was not the faulty programmer.&lt;/li&gt;&#xA;&lt;li&gt;My boss asked me to log every single operation to have control of all the process. That's ok I know. He asked me to go production with this version: Gigabyte logs every day.&#xA;Two monts later I managed to change log to INFO from DEBUG and got 30% faster.&lt;/li&gt;&#xA;&lt;li&gt;I was asked to go to 5 o 6 3 a.m. installations to replace the jar and change the name of the jar in the script that launched the service (the old C app was a mess and they were afraid I did the same thing).&lt;/li&gt;&#xA;&lt;li&gt;The worst: I was forced to manage a team of 8, 5 were outsourcers, at the middle of the project. 1 of us never did anything, the outsources did a web app that 2 years after is not in production yet.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastActivityDate="2010-09-10T21:38:17.563" CommunityOwnedDate="2010-09-10T21:38:17.563" CommentCount="1" />
  <row Id="2704" PostTypeId="2" ParentId="2699" CreationDate="2010-09-10T21:42:00.580" Score="8" ViewCount="" Body="&lt;p&gt;This is from a &lt;em&gt;long&lt;/em&gt; time ago (the late 1980s).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The company I worked for wrote a CAD package (in FORTRAN) that ran on various Unix workstations (HP, Sun, Silcon Graphics etc.). We used our own file format to store the data and when the package was started disk space was scarce so there was a lot of bit shifting used to store multiple flags in entity headers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The type of the entity (line, arc, text etc) was multiplied by 4096 (I think) when stored. In addition this value was negated to indicate a deleted item. So to get the type we had code that did:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;type = record[1] MOD 4096&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;On every machine except one this gave ±1 (for a line), ±2 (for an arc) etc. and we could then check the sign to see if was deleted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On one machine (HP I think) we had a weird problem where the handling of deleted items was screwed up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This was in the days before IDE's and visual debuggers so I had to insert trace statements and logging to try and track down the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I eventually discovered that it was because while every other manufacturer implemented &lt;code&gt;MOD&lt;/code&gt; so that &lt;code&gt;-4096 MOD 4096&lt;/code&gt; resulted in &lt;code&gt;-1&lt;/code&gt; HP implemented it mathematically correctly so that &lt;code&gt;-4096 MOD 4096&lt;/code&gt; resulted in &lt;code&gt;-4097&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I ended up having to go through the entire code base saving the sign of the value and making it positive before performing the &lt;code&gt;MOD&lt;/code&gt; and then multiplying the result by the sign value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This took several days.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-10T21:42:00.580" CommentCount="1" />
  <row Id="2705" PostTypeId="2" ParentId="2580" CreationDate="2010-09-10T21:42:30.463" Score="1" ViewCount="" Body="&lt;p&gt;procrastinate on unimportant (to me) tasks. or may be it was the other way around.&lt;/p&gt;&#xA;" OwnerUserId="921" LastActivityDate="2010-09-10T21:42:30.463" CommunityOwnedDate="2011-03-14T16:26:25.523" />
  <row Id="2706" PostTypeId="2" ParentId="73" CreationDate="2010-09-10T21:51:48.653" Score="0" ViewCount="" Body="&lt;p&gt;What we do is provide a revised due date and cost estimate every time.  You add functionality X on Monday and it will take 20 hours and the due date is Friday, then we automatically slip the due date by 20 hours. Once we got to where we did this every time (no exceptions) we stopped getting so many scope creep requests. But you must do it every time, give them a time estimate (and cost estimate if need be) and then tell them what the new deadline will be if we add this feature.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-10T21:51:48.653" />
  <row Id="2707" PostTypeId="2" ParentId="2192" CreationDate="2010-09-10T21:56:58.413" Score="26" ViewCount="" Body="&lt;p&gt;Anything that causes &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000022.html&quot; rel=&quot;nofollow&quot;&gt;context switching&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1184" LastActivityDate="2010-09-10T21:56:58.413" CommunityOwnedDate="2011-01-05T06:12:52.770" CommentCount="1" />
  <row Id="2708" PostTypeId="2" ParentId="2700" CreationDate="2010-09-10T21:58:05.973" Score="5" ViewCount="" Body="&lt;p&gt;I took a cursor out of a trigger and reduced the time to insert 40,000 new records from an hour to less than a minute. Eventually this resulted in me being able to insert 21 million records in something less than glacial time but we never tried the 20 million record import til after the fix, so I don't have stats on how much time we saved.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-10T21:58:05.973" CommentCount="1" />
  <row Id="2710" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T22:07:20.393" Score="13" ViewCount="" Body="&lt;p&gt;I was asked to load articles from a competitor's website inside an iframe that would be inside our website's skin, making it look like it came from us.&lt;/p&gt;&#xA;" OwnerUserId="958" LastActivityDate="2010-09-10T22:07:20.393" CommunityOwnedDate="2010-09-10T22:07:20.393" CommentCount="2" />
  <row Id="2711" PostTypeId="2" ParentId="2699" CreationDate="2010-09-10T22:07:23.250" Score="55" ViewCount="" Body="&lt;p&gt;It was actually in a 3rd party image viewer sub-component of our application. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We found that there were 2-3 of the users of our application would frequently have the image viewer component throw an exception and die horribly. However, we had dozens of other users who never saw the issue despite using the application for the same task for most of the work day. Also there was one user in particular who got it a lot more frequently than the rest of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We tried the usual steps: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(1) Had them switch computers with another user who never had the problem to rule out the computer/configuration. - The problem followed them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(2) Had them log into the application and work as a user that never saw the problem. - The problem STILL followed them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(3) Had the user report which image they were viewing and set up a test harness to repeat viewing that image thousands of times in quick succession. The problem did not present itself in the harness.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(4) Had a developer sit with the users and watch them all day. They saw the errors, but didn't notice them doing anything out of the ordinary to cause them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We struggled with this for weeks trying to figure out what the &quot;Error Users&quot; had in common that the other users didn't. I have no idea how, but the developer in step (4) had a eureka moment on the drive in to work one day worthy of Encyclopedia Brown.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He realized that all the &quot;Error Users&quot; were left handed, and confirmed this fact. Only left-handed users got the errors, never Righties. But how could being left handed cause a bug?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We had him sit down and watch the left-handers again specifically paying attention to anything they might be doing differently, and that's how we found it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It turned out that the bug only happened if you moved the mouse to rightmost column of pixels in the image viewer while it was loading a new image (overflow error because the vendor had a 1-off calculation for mouseover event). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apparently, while waiting for the next image to load, the users all naturally moved their hand (and thus the mouse)  towards the keyboard. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The one user who happened to get the error most frequently was one of those ADD types that compulsively moved her mouse around a lot impatiently while waiting for the next page to load, thus she was moving the mouse to the right much more quickly and hitting the timing just right so she did it when the load event happened. Until we got a fix from the vendor, we told her just to let go of the mouse after clicking (next document) and not touch it until it loaded. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was henceforth known in legend on the dev team as &lt;strong&gt;&quot;The Left Handed Bug&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="287" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-09-11T00:15:24.093" LastActivityDate="2010-09-11T00:15:24.093" CommentCount="7" />
  <row Id="2712" PostTypeId="2" ParentId="2699" CreationDate="2010-09-10T22:07:27.597" Score="2" ViewCount="" Body="&lt;p&gt;For an University project we were writing an Distributed P2P Nodes system that share files, this supported multicasting to detect each other, multiple rings of nodes and a nameserver so a node is assigned to a client.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Written in C++ we used &lt;a href=&quot;http://www.pocoproject.org&quot; rel=&quot;nofollow&quot;&gt;POCO&lt;/a&gt; for this as it allows nice IO, Socket and Thread programming.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;There were two bugs that arise that annoyed us and made us lose a lot of time, a really logic one:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Randomly, a computer was sharing his localhost IP instead of it's remote IP.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This caused clients to connect to the node on the same PC or nodes to connect with themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How did we identify this? When we improved the output in the nameserver we discovered at a later moment when we rebooted the computers that our script to determine the IP to give was wrong. Randomly, the lo device was listed first instead of the eth0 device... Really stupid. So now we hardcoded to requist it from eth0 as this is shared among all university computers...&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;And now a more annoying one:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Randomly, the packet flow would randomly pause.&lt;br&gt;&#xA;When the next client connects it would continue...&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This happened really random and as more than one computer is involved it got more annoying to debug this problem, the university computers do not allow us to run Wireshark on those so we are left with guessing if the problem was at the sending side or the receiving side.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With a lot of output in the code we just took the assumption that sending the commands goes fine,&lt;br&gt;&#xA;this left us wondering where the real problem was... It seemed that the way POCO polls is wrong and that we instead should check for available characters on the incoming socket.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We took the assumption that this worked as more simpler tests in a prototype involving less packets didn't cause this issue, so this caused us to just assume that the poll statement was working but... It wasn't. :-(&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Lessons learned:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't make stupid assumptions like the order of the network devices. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Frameworks don't always do their job (either implementation or documentation) right.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Provide enough output in the code, if not allowed there be sure to log extended details to a file.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When code hasn't been unit tested (because it's too difficult) don't assume things to work.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-10T22:07:27.597" CommentCount="1" />
  <row Id="2714" PostTypeId="2" ParentId="790" CreationDate="2010-09-10T22:14:18.120" Score="12" ViewCount="" Body="&lt;p&gt;The reason why there's so much confusion on this issue because we as a society have by and large lost the point behind intellectual property.  It's not supposed to be about what goes into the patent or the copyright.  It was &lt;em&gt;never&lt;/em&gt; supposed to be about what goes into a new creation.  The point is what comes out the other end: new knowledge in the public domain.  Patents were created to improve society as a whole by discouraging what has always been the single greatest detriment to progress in human history: the trade secret.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea is that there needs to be some way to get people to stop treating new ideas as closely-guarded trade secrets that all too frequently died with their inventors, by encouraging creators to publish the details of their creations and assign them to the public domain.  The means that they came up with was what we now call intellectual property protection: &quot;We can bribe people to publish the details of their new creations and assign them to the public domain by offering them a monopoly on production for the first few years after they create it.&quot;  And it was a huge success.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the best examples is steel.  It's been discovered and forgotten, and rediscovered and lost again many, many times over the centuries, by ancient cultures in both the Old World and the New World.  The earliest known samples date to the 14th century BC.  But it was not until Henry Bessemer's patent for the crucible steel process expired in the 19th century that the cheap commodity steel that has formed the infrastructure of so much of the modern world ever since began to become available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that in mind, software patents are a fine idea, as long as the review process (to prevent patents of prior art or obvious processes) are adequate and the duration is reasonably short.  I agree that Gary's figure of 5 years is a reasonable duration.&lt;/p&gt;&#xA;" OwnerUserId="935" LastEditorUserId="935" LastEditorDisplayName="" LastEditDate="2010-09-10T23:28:06.727" LastActivityDate="2010-09-10T23:28:06.727" CommentCount="1" />
  <row Id="2715" PostTypeId="1" CreationDate="2010-09-10T22:15:38.147" Score="31" ViewCount="2180" Body="&lt;blockquote&gt;&#xA;  &lt;h2&gt;Moderator Message&lt;/h2&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;This question already has 40 answers. Therefore, there is a very good chance that &lt;em&gt;your&lt;/em&gt; answer has already been provided. Please take a moment to review &lt;em&gt;all&lt;/em&gt; the answers before posting&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Should curly braces be on their own line or not? What do you think about it?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (you.hasAnswer()) {&#xA;    you.postAnswer();&#xA;} else {&#xA;    you.doSomething();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or should it be&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (you.hasAnswer())&#xA;{&#xA;    you.postAnswer();&#xA;}&#xA;else&#xA;{&#xA;    you.doSomething();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or even&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (you.hasAnswer())&#xA;    you.postAnswer();&#xA;else&#xA;    you.doSomething();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Please be constructive! Explain why, share experiences, back it up with facts and references... ;-)&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-04-06T14:51:10.430" LastActivityDate="2011-04-06T14:57:47.480" CommunityOwnedDate="2010-11-02T20:52:36.780" Title="Curly braces on their own line or not?" Tags="&lt;holy-war&gt;&lt;curly-braces&gt;" AnswerCount="40" CommentCount="23" FavoriteCount="3" />
  <row Id="2716" PostTypeId="1" CreationDate="2010-09-10T22:18:31.700" Score="5" ViewCount="243" Body="&lt;p&gt;What will the future bring us? Managed, Unmanaged or both types of code?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T04:23:12.310" LastActivityDate="2010-09-23T04:23:12.310" Title="Managed or Unmanaged languages, which will we use in the future?" Tags="&lt;programming-languages&gt;&lt;future&gt;&lt;trends&gt;&lt;managed-code&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="3" />
  <row Id="2717" PostTypeId="2" ParentId="2715" CreationDate="2010-09-10T22:23:15.610" Score="84" ViewCount="" Body="&lt;p&gt;I find the second method more readable, especially if you have nested blocks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first method reminds me of basic, it's like you're trying to forget that the braces are there.&lt;/p&gt;&#xA;" OwnerUserId="958" LastActivityDate="2010-09-10T22:23:15.610" CommunityOwnedDate="2010-11-02T20:52:36.780" CommentCount="15" />
  <row Id="2718" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T22:26:02.753" Score="11" ViewCount="" Body="&lt;p&gt;I was working on a big project in 1996 where we were scoring live sporting events.  This conversation happened:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Boss: Go out to the venue for the next event.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: What do you need me to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Boss: Be there just in case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: Just in case what?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Boss: In case the tech lead loses it.  He's way too stressed out and I don't know what he &#xA;might do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: And if he loses it, what do you want me to do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Boss: Just get him out of there so everyone else can continue working.  I don't care how you do it.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-10T22:26:02.753" CommunityOwnedDate="2010-09-10T22:26:02.753" CommentCount="1" />
  <row Id="2719" PostTypeId="2" ParentId="2715" CreationDate="2010-09-10T22:26:44.340" Score="81" ViewCount="" Body="&lt;p&gt;I find the first method more readable, especially if you have nested blocks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second method reminds me of basic, it's like you're trying to not forget that the braces are there.&lt;/p&gt;&#xA;" OwnerUserId="193" LastActivityDate="2010-09-10T22:26:44.340" CommunityOwnedDate="2010-11-02T20:52:36.780" CommentCount="6" />
  <row Id="2720" PostTypeId="2" ParentId="2716" CreationDate="2010-09-10T22:28:14.180" Score="2" ViewCount="" Body="&lt;p&gt;I keep seeing people &lt;em&gt;talking&lt;/em&gt; about managed languages, but for the number of actual programs written in them is disproportionately low.  I think I have a grand total of one Java program and one .NET program on my computer, and a third program that's mostly native code but uses .NET-based plugins for a few features.  (Which are the slowest, buggiest and most-hated features in the whole program, and users frequently request that the whole subsystem just be removed if they can't revamp it.  There's even a widely-available hack to disable the .NET subsystem.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And since &lt;a href=&quot;http://en.wikipedia.org/wiki/Wirth%27s_law&quot; rel=&quot;nofollow&quot;&gt;software's demand for resources increases faster than Moore's Law's ability to provide more hardware,&lt;/a&gt; IMO the need for highly-efficient native code will always be with us.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-10T22:28:14.180" CommentCount="10" />
  <row Id="2721" PostTypeId="2" ParentId="2716" CreationDate="2010-09-10T22:33:43.217" Score="13" ViewCount="" Body="&lt;p&gt;Both. Always the best tool to the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Managed code fits in almost application projects now and should be chosen in every project which are possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unmanaged code will always be necessary and more recommended to system level when speed, direct access to hardware, etc are requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn and stay prepared to both.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-11T17:07:14.613" LastActivityDate="2010-09-11T17:07:14.613" CommentCount="2" />
  <row Id="2722" PostTypeId="2" ParentId="2192" CreationDate="2010-09-10T22:35:48.830" Score="13" ViewCount="" Body="&lt;p&gt;I would say burnout.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-10T22:35:48.830" CommunityOwnedDate="2011-01-05T06:12:52.770" />
  <row Id="2723" PostTypeId="2" ParentId="2591" CreationDate="2010-09-10T22:44:46.343" Score="4" ViewCount="" Body="&lt;p&gt;There are so many!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000319.html&quot; rel=&quot;nofollow&quot;&gt;Back To Basics&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-10T22:44:46.343" />
  <row Id="2724" PostTypeId="2" ParentId="1745" CreationDate="2010-09-10T22:48:12.563" Score="4" ViewCount="" Body="&lt;p&gt;The biggest myth is that it's easy.&lt;/p&gt;&#xA;" OwnerUserId="1205" LastEditorUserId="11740" LastEditorDisplayName="" LastEditDate="2011-01-17T09:20:38.430" LastActivityDate="2011-01-17T09:20:38.430" CommunityOwnedDate="2010-09-10T22:48:12.563" />
  <row Id="2725" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T22:54:44.340" Score="48" ViewCount="" Body="&lt;p&gt;&quot;Right now, the usernames are required to be unique, and the passwords are not. Could we make it the other way around?&quot;&lt;/p&gt;&#xA;" OwnerUserId="342" LastActivityDate="2010-09-10T22:54:44.340" CommunityOwnedDate="2010-09-10T22:54:44.340" CommentCount="5" />
  <row Id="2726" PostTypeId="2" ParentId="2051" CreationDate="2010-09-10T23:01:31.583" Score="41" ViewCount="" Body="&lt;p&gt;About 7 years ago I worked at a bespoke software shop that decided to sell one of its products.  It was an end-to-end operations suite for some industry.  Well, this industry wasn't known for being super technological, so somehow we ended up providing third-party technical support for their servers and IT infrastructure instead of farming it out to independent small business IT consultants.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One day, a customer's server encountered disk corruption.  The server we had sold them was configured with an Adaptec RAID controller, set up for a RAID 1 mirror.  Their application database was toast.  They hadn't performed backups in months.  The backups they had performed were unusable.  They ended up losing 8 months of data.  They hired an IT consultant to handle this investigative work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Phone calls ensued, and the sales manager (known for promising impossible features) apparently told them it would be taken care of, and wrote it up in a contract.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The sales manager promised the customer that we would ensure that the application database and any other application-related files would never be replicated by RAID controllers if the files were considered to be corrupt.  No configuration should be necessary either.  Yep.  We were told to deliver this functionality in 2 weeks, or the customer would fire us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the program manager -- who had some large enterprise CRM products, and other serious development successes, under his belt -- and I had a meeting with the COO, and the sales manager.  The program manager was detailing how insane, impossible, and insanely impossible this was.  The sales manager (military background) would simply scream in his face (literally!), &quot;I don't care!  How hard can it be to make the RAID thing not RAID?!  Their data would be fine on the other drive if the RAID thing hadn't screwed it up!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of that meeting, the program manager quit with a zero-day notice.  So I was now tasked with this.  Over the next week, I petitioned both Adaptec and LSI Logic to provide an engineer for a conference call, simply to laugh in the face of the sales manager.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately, they obliged, and held up their end of the bargain.  And they went into detail how ridiculously unfeasible it was.  The guy from LSI was particularly harsh - he didn't sugar coat anything.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I didn't have to implement the feature.  One I did have to implement was a custom security scheme requested by a customer, that would allow them to toggle any of the application's controls - on a control by control basis - as visible, disabled, enabled, read-only, or read-write.  In theory, there were 146,000 combinations.  And if you accidentally screwed up by say... disabling a control group, you'd have inadvertent side effects.  Needless to say, when I was given the ultimatum that it had to be implemented, I also quit with a zero-day notice.&lt;/p&gt;&#xA;" OwnerUserId="1207" LastActivityDate="2010-09-10T23:01:31.583" CommunityOwnedDate="2010-09-10T23:01:31.583" CommentCount="1" />
  <row Id="2727" PostTypeId="2" ParentId="2654" CreationDate="2010-09-10T23:03:13.877" Score="9" ViewCount="" Body="&lt;p&gt;Just one public class must be put in each file, no more.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-10T23:03:13.877" CommentCount="4" />
  <row Id="2728" PostTypeId="2" ParentId="2715" CreationDate="2010-09-10T23:06:44.727" Score="46" ViewCount="" Body="&lt;p&gt;I prefer the second method because it has the nice symmetry between the opening and closing brace on each block. I also find that that makes it easier to find missing braces.&lt;/p&gt;&#xA;" OwnerUserId="69" LastActivityDate="2010-09-10T23:06:44.727" CommunityOwnedDate="2010-11-02T20:52:36.780" CommentCount="8" />
  <row Id="2729" PostTypeId="2" ParentId="2715" CreationDate="2010-09-10T23:09:32.023" Score="5" ViewCount="" Body="&lt;p&gt;It depends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I am coding in Javascript or jQuery, I use the first form:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;jQuery(function($) { &#xA;    if ($ instanceOf jQuery) { &#xA;        alert(&quot;$ is the jQuery object!&quot;); &#xA;    } &#xA;}); &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But if I am coding in C#, I use the second form, because that is the canonical way to do it in C#.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public int CalculateAge(DateTime birthDate, DateTime now) &#xA;{ &#xA;    int age = now.Year - birthDate.Year; &#xA;    if (now.Month &amp;lt; birthDate.Month &#xA;        || (now.Month == birthDate.Month &amp;amp;&amp;amp; now.Day &amp;lt; birthDate.Day)) &#xA;        age--; &#xA;    return age; &#xA;} &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Note that your example can be written&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (you.hasAnswer())&#xA;    you.postAnswer();&#xA;else&#xA;    you.doSomething();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;in C#.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-09-10T23:09:32.023" CommunityOwnedDate="2010-11-02T20:52:36.780" CommentCount="4" />
  <row Id="2730" PostTypeId="1" CreationDate="2010-09-10T23:12:01.330" Score="14" ViewCount="775" Body="&lt;p&gt;If you could add one new thing--something completely new, not something that some other language has and you wish your language could do too--to a programming language you use a lot, what language and what would the feature be?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's try to keep it within the realm of the possible, please.  No compilers with telepathy or artificial sentience, nothing that breaks the laws of physics, etc.&lt;/p&gt;&#xA;" OwnerUserId="935" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-14T11:29:07.253" LastActivityDate="2010-12-27T06:43:07.560" Title="What would be the coolest new feature for a programming language?" Tags="&lt;programming-languages&gt;&lt;features&gt;&lt;fun&gt;" AnswerCount="9" CommentCount="5" FavoriteCount="6" />
  <row Id="2731" PostTypeId="1" CreationDate="2010-09-10T23:20:40.050" Score="8" ViewCount="350" Body="&lt;p&gt;For example I would much rather always develop native applications rather than things that run on a VM like Java, and I wouldn't mind if such non-native things never graced my OS. However I never knew if there was any well founded reasoning for this or not. Do you have any examples of programmers biases that you have seen from yourself or others?&lt;/p&gt;&#xA;" OwnerUserId="785" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-15T14:49:35.243" LastActivityDate="2010-09-15T14:49:35.243" Title="What's the most outrageous or unfounded bias that you have ever seen in yourself or a fellow programmer?" Tags="&lt;programming-practices&gt;&lt;co-workers&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="2732" PostTypeId="2" ParentId="2192" CreationDate="2010-09-10T23:21:26.343" Score="6" ViewCount="" Body="&lt;p&gt;Lack of high quality coffee.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-09-10T23:21:26.343" CommunityOwnedDate="2011-01-05T06:12:52.770" CommentCount="4" />
  <row Id="2734" PostTypeId="2" ParentId="2715" CreationDate="2010-09-10T23:24:12.507" Score="5" ViewCount="" Body="&lt;p&gt;I like the first method. It seems neater IMO, and it's more compact, which I like.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Ah, a third. I like that one the best when possible, as it's even smaller/neater.&lt;/p&gt;&#xA;" OwnerUserId="211" LastEditorUserId="211" LastEditorDisplayName="" LastEditDate="2010-09-11T01:51:24.010" LastActivityDate="2010-09-11T01:51:24.010" CommunityOwnedDate="2010-11-02T20:52:36.780" />
  <row Id="2735" PostTypeId="2" ParentId="2731" CreationDate="2010-09-10T23:25:44.050" Score="12" ViewCount="" Body="&lt;p&gt;I can think of many, but the most egregious one I have seen (and it is very common) is that, if you're not using the [insert software pattern flavor of the week here], or developing software in the way some fellow programmer believes you should be doing it, then &lt;em&gt;you are doing it wrong.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are numerous questions on StackOverflow by well-meaning but insecure programmers seeking to get the approval of their peers, who presumably know better.  Questions to the effect of, &quot;Am I doing this the right way?&quot; or &quot;Is this the correct way to code?&quot; At best, this line of thought will prevent them from thinking for themselves; at worst, it will turn them into architecture astronauts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;There is no right way&lt;/em&gt;.  There is only the way that is optimal for your requirements. There exists no legislative body in software development that decides which way of software development is correct or incorrect, and passes judgement on you if you put a curly brace in the wrong place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are, of course, good practices, but I have seen people get bludgeoned to death over those also.  Rules are meant to be followed, until you are in a situation where the rules don't make sense, at which time rules are meant to be broken.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-09-11T01:42:30.453" LastActivityDate="2010-09-11T01:42:30.453" CommentCount="2" />
  <row Id="2737" PostTypeId="2" ParentId="2192" CreationDate="2010-09-10T23:34:36.293" Score="8" ViewCount="" Body="&lt;p&gt;Writing too many lines of code without adequate tests.&lt;/p&gt;&#xA;" OwnerUserId="1205" LastActivityDate="2010-09-10T23:34:36.293" CommunityOwnedDate="2011-01-05T06:12:52.770" CommentCount="17" />
  <row Id="2738" PostTypeId="2" ParentId="2233" CreationDate="2010-09-10T23:37:37.720" Score="1" ViewCount="" Body="&lt;p&gt;Space and lots of it&lt;/p&gt;&#xA;" OwnerUserId="1205" LastActivityDate="2010-09-10T23:37:37.720" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="2739" PostTypeId="2" ParentId="2575" CreationDate="2010-09-11T00:13:35.433" Score="0" ViewCount="" Body="&lt;p&gt;They live in another planet.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-11T00:13:35.433" CommentCount="1" />
  <row Id="2740" PostTypeId="2" ParentId="2235" CreationDate="2010-09-11T00:15:59.333" Score="6" ViewCount="" Body="&lt;p&gt;First week of my new job (a couple years back) I wrote a utility to manage configuration settings in your local machine.config file. The config file is stored in source control, and you can select between different environments with a quick click. (local, dev, etc..) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I thought it was fairly shoddy when I wrote it, but it has needed almost no updates and several programmers at work still use it regularly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say it made not only me, but also the whole team, more productive.  :D&lt;/p&gt;&#xA;" OwnerUserId="1215" LastActivityDate="2010-09-11T00:15:59.333" />
  <row Id="2741" PostTypeId="2" ParentId="2591" CreationDate="2010-09-11T00:18:59.337" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html&quot; rel=&quot;nofollow&quot;&gt;The Perils of Java Schools&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-11T22:39:06.750" LastActivityDate="2010-09-11T22:39:06.750" CommentCount="2" />
  <row Id="2742" PostTypeId="2" ParentId="2051" CreationDate="2010-09-11T00:19:09.247" Score="6" ViewCount="" Body="&lt;p&gt;Wear khakis and a polo shirt.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-11T00:19:09.247" CommunityOwnedDate="2010-09-11T00:19:09.247" CommentCount="1" />
  <row Id="2743" PostTypeId="2" ParentId="2233" CreationDate="2010-09-11T00:22:35.107" Score="3" ViewCount="" Body="&lt;p&gt;Beer. And, oh yeah, a keyboard.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-11T00:22:35.107" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="2744" PostTypeId="2" ParentId="2331" CreationDate="2010-09-11T00:25:00.143" Score="10" ViewCount="" Body="&lt;p&gt;Implicit type conversions when the types being converted between have no obvious relationship. For example, converting a random, non-numerical &lt;code&gt;string&lt;/code&gt; into an &lt;code&gt;int&lt;/code&gt;, like in PHP.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-11T00:25:00.143" CommentCount="5" />
  <row Id="2745" PostTypeId="2" ParentId="2700" CreationDate="2010-09-11T00:26:40.040" Score="12" ViewCount="" Body="&lt;p&gt;I don't know about being proud of the fix because it was so obvious, but the most horrible code I remember fixing was this.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (userName==&quot;John O'Reily&quot;) { Username = &quot;John O''Reily&quot;;}&#xA;if (userName==&quot;Stacy O'Neil&quot;) { UserName = &quot;Stacy O''Neil&quot;;}&#xA;if (userName==&quot;Finnegan O'Connor&quot;) { Username = &quot;Finnegan O''Connor&quot;;}&#xA;...&#xA;someSQL = &quot;SELECT * from Users where UserName='&quot; + userName + &quot;'&quot;;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Apparently the previous developer just kept adding new lines every time a new (usually Irish) user started getting errors in the application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll leave it as an exercise for the class as to how it was fixed.&lt;/p&gt;&#xA;" OwnerUserId="287" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-11-23T17:24:24.193" LastActivityDate="2010-11-23T17:24:24.193" CommentCount="5" />
  <row Id="2746" PostTypeId="2" ParentId="2233" CreationDate="2010-09-11T00:28:54.730" Score="4" ViewCount="" Body="&lt;p&gt;A &lt;a href=&quot;http://www.powerballs.com/&quot; rel=&quot;nofollow&quot;&gt;Powerball&lt;/a&gt;, the kind with a gyroscope inside, for strengthening your wrist muscles while thinking or taking a break..&lt;/p&gt;&#xA;" OwnerUserId="1217" LastEditorUserId="37" LastEditorDisplayName="" LastEditDate="2010-09-11T06:55:19.393" LastActivityDate="2010-09-11T06:55:19.393" CommunityOwnedDate="2010-09-17T12:07:03.760" CommentCount="3" />
  <row Id="2747" PostTypeId="2" ParentId="1013" CreationDate="2010-09-11T00:32:01.510" Score="6" ViewCount="" Body="&lt;p&gt;One project I was on was using this special tool (the name of which I forget) to create the user interface.  So half the time we were using this tool, and the other half we were using the Vi editor (and no, I'm not nominating Vi as the worst tool, shaddup).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This UI designer had a little idiosyncrasy where, pressing the ESC key closed your current editing window, do not save, do not prompt, do not pass go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can imagine the frustration for those of us switching between that and Vi a lot, where pressing the ESC key is a very common action while editing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, we all had little bottle tops that we got in the habit of putting over the ESC key so you could not press it while using the UI editor.&lt;/p&gt;&#xA;" OwnerUserId="415" LastActivityDate="2010-09-11T00:32:01.510" CommunityOwnedDate="2011-02-01T07:56:02.387" CommentCount="1" />
  <row Id="2748" PostTypeId="2" ParentId="539" CreationDate="2010-09-11T00:35:42.517" Score="1" ViewCount="" Body="&lt;p&gt;I prefer a dark background with light lettering, which I use in (g)vim and my terminal windows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would use it in Eclipse as well, except unfortunately setting colours in Eclipse is a dogs breakfast and experiments in doing it so far have been unsatisfactory.&lt;/p&gt;&#xA;" OwnerUserId="415" LastActivityDate="2010-09-11T00:35:42.517" CommunityOwnedDate="2010-09-16T13:10:40.707" />
  <row Id="2749" PostTypeId="2" ParentId="1013" CreationDate="2010-09-11T00:36:03.697" Score="21" ViewCount="" Body="&lt;p&gt;Being an old fart gives somebody such an unfair advantage on a question like this. Young punks complain about limitations with Intellisense and syntax highlighting. Let me present a few with &lt;em&gt;real&lt;/em&gt; shortcomings:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Control Data XEDIT: Fairly powerful as line editors went, but made edlin (or Unix ed) look &lt;em&gt;extremely&lt;/em&gt; user-friendly by comparison. &quot;Syntax highlighting&quot; involved a printout on fanfold paper (which you might get in 2 hours, on a good day with a lot of luck), and a package of highlighters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Control Data Network Operating System (NOS): About the only positive thing you can say about it is that it wasn't as awful as its predecessor (Control Data SCOPE).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TECO: So notorious I almost feel like it's cheating to mention it. EMACS started out as a set of Editing MACros for TECO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;VMS 5.0: Nearly the only part that &lt;em&gt;did&lt;/em&gt; work was a cool new self-repair system that did an amazing job of preventing you from uninstalling it and getting back to something that might work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;JOVIAL: an acronym for: (I &lt;em&gt;swear&lt;/em&gt; I'm not making this up) &lt;code&gt;Jule's Own Version of the International Algorithmic Language&lt;/code&gt;. With a name like that, how much could I even hope to add?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd better stop or I won't be able to eat tonight.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-09-11T00:36:03.697" CommunityOwnedDate="2011-02-01T07:56:02.387" CommentCount="13" />
  <row Id="2751" PostTypeId="2" ParentId="2233" CreationDate="2010-09-11T00:54:34.643" Score="0" ViewCount="" Body="&lt;p&gt;I need a hairbrush. Stress related, probably. Cannot work without it.&lt;/p&gt;&#xA;" OwnerUserId="1218" LastActivityDate="2010-09-11T00:54:34.643" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="2753" PostTypeId="2" ParentId="1785" CreationDate="2010-09-11T01:03:56.283" Score="13" ViewCount="" Body="&lt;p&gt;Big O notation and its implications.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Some useful references&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.perlmonks.org/?node_id=227909&quot; rel=&quot;nofollow&quot;&gt;http://www.perlmonks.org/?node_id=227909&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.programmerinterview.com/datastruct/big-o-notation-example.php&quot; rel=&quot;nofollow&quot;&gt;http://www.programmerinterview.com/datastruct/big-o-notation-example.php&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Big_O_notation&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Big_O_notation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="389" LastEditorUserId="3787" LastEditorDisplayName="" LastEditDate="2011-01-16T03:50:26.970" LastActivityDate="2011-01-16T03:50:26.970" CommunityOwnedDate="2010-09-15T18:31:41.813" CommentCount="1" />
  <row Id="2754" PostTypeId="2" ParentId="2715" CreationDate="2010-09-11T01:06:59.390" Score="2" ViewCount="" Body="&lt;p&gt;Ah, the &lt;a href=&quot;http://en.wikipedia.org/wiki/Indent_style&quot; rel=&quot;nofollow&quot;&gt;One True Brace Style&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has everything neded for a Holy Way - even a prophet (Richard &quot;my way or the highway&quot; Stallman).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The guy was so wrong about so many things, but GNU is spot-on when it comes to braces.&lt;/p&gt;&#xA;" OwnerUserId="979" LastActivityDate="2010-09-11T01:06:59.390" CommunityOwnedDate="2010-11-02T20:52:36.780" CommentCount="2" />
  <row Id="2755" PostTypeId="2" ParentId="2051" CreationDate="2010-09-11T01:07:09.820" Score="7" ViewCount="" Body="&lt;p&gt;We had a product release date pushed back a week so we could get the internal company footy tipping competition system running in time for the start of season...&lt;/p&gt;&#xA;" OwnerUserId="415" LastActivityDate="2010-09-11T01:07:09.820" CommunityOwnedDate="2010-09-11T01:07:09.820" CommentCount="2" />
  <row Id="2756" PostTypeId="1" AcceptedAnswerId="2771" CreationDate="2010-09-11T01:07:14.283" Score="7" ViewCount="249" Body="&lt;p&gt;Coding standards are common in any software development organization, but how important are they to follow?  I can understand the need for some consistency, but when dealing with simple things like the position of braces, line length, etc., I'm not sure excessively strict standards contribute much to software development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Isn't it more important that your code is readable, not that it conforms to a predefined standard?  It seems they're more like... guidelines anyway.&lt;/p&gt;&#xA;" OwnerUserId="36" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:30:29.500" LastActivityDate="2010-09-29T23:30:29.500" Title="How important are code formatting guidelines?" Tags="&lt;style-guide&gt;&lt;team&gt;&lt;coding-standards&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="2757" PostTypeId="1" AcceptedAnswerId="4331" CreationDate="2010-09-11T01:21:57.457" Score="20" ViewCount="1653" Body="&lt;p&gt;Why more or less monitors is worse than your configuration?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why is important use it in this way (position)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Productivity is obvious, but what specific advantage?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A picture would be nice.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-26T16:10:11.600" LastActivityDate="2011-01-26T13:55:26.910" CommunityOwnedDate="2011-01-26T13:55:26.910" Title="How many monitors do you use? Why? How they are used?" Tags="&lt;productivity&gt;&lt;work-environment&gt;&lt;monitor&gt;" AnswerCount="31" FavoriteCount="9" />
  <row Id="2758" PostTypeId="2" ParentId="118" CreationDate="2010-09-11T01:27:50.513" Score="6" ViewCount="" Body="&lt;p&gt;Lorenzo, you must ask yourself two questions:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) would you relocate &lt;em&gt;anywhere&lt;/em&gt;?&lt;br&gt;&#xA;2) for how long?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I freelanced for 20+ years in over a dozen countries on 3 continents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I intended to &quot;go overseas for 6 months, just to see what it's like&quot;, and know that I am never going back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any country you will make enough for a decent standard of living - &lt;em&gt;in that country&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But what if you want to return to Italy to retire? You wouldn't be able to after 30 years in Thailand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My general advice is to work in expensive countries (Scandinavia, Japan) and retire to cheap ones (Asia, South America).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although things like tax vary widely (50% income tax + 20% VAT in Germany, but 10-15% income tax and 6 or 7% VAT in Asia), I find that I generally pay can save about the same % of income in each country, so that it is better to save that % of a large salary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realize that you are talking about respect and satisfaction, but you do need to take finances into account (I once turned down a great job with IBM in NZ because I was paying more tax (and saving more) in Germany than they were offering as total salary).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why not try taking a series of 6 or 12 months contracts? Even if you don't always get the job satisfaction you are looking for, you will get to see a lot of new cultures. &lt;/p&gt;&#xA;" OwnerUserId="979" LastActivityDate="2010-09-11T01:27:50.513" CommentCount="1" />
  <row Id="2759" PostTypeId="2" ParentId="2051" CreationDate="2010-09-11T01:30:18.443" Score="9" ViewCount="" Body="&lt;p&gt;Small team of programmers, boss wants us to do a ticket reservation system for a small airline (in a very short timeframe, of course). Team says:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- as you can imagine, we will need some testers for this project&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Boss says:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- don't worry, learn from the car industry. They recall cars from time to time: users will do the testing. &lt;/p&gt;&#xA;" OwnerUserId="1221" LastActivityDate="2010-09-11T01:30:18.443" CommunityOwnedDate="2010-09-11T01:30:18.443" CommentCount="1" />
  <row Id="2760" PostTypeId="2" ParentId="326" CreationDate="2010-09-11T01:32:22.930" Score="0" ViewCount="" Body="&lt;p&gt;I use a vim buffer. It's so easy to move lines around for prioritizing things. Then I use simple symbols to denote whether an item is done, done but unverified etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I used emacs, I'd probably be using org-mode. Too bad vim doesn't have this.&lt;/p&gt;&#xA;" OwnerUserId="1217" LastActivityDate="2010-09-11T01:32:22.930" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="2761" PostTypeId="2" ParentId="35" CreationDate="2010-09-11T01:32:35.063" Score="39" ViewCount="" Body="&lt;p&gt;&quot;I can't believe you spent 70 dollars on a keyboard. You make fun of other people all the time for wasting money.&quot;&lt;br&gt;&#xA;&quot;These are really tough keyboards. Not the flimsy gel membrane kind. They have a steel plate backing and everything.&quot;&lt;br&gt;&#xA;&quot;Yeah okay. I get that you use the keyboard a lot and everything. But its not like you're going to be using it in a war zone or beating people to death with it. You sit in front of a desk and write computer programs. There's no way it's going to get damaged.&quot;&lt;br&gt;&#xA;&quot;Some languages are strongly typed.&quot;&lt;/p&gt;&#xA;" OwnerUserId="108" LastActivityDate="2010-09-11T01:32:35.063" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="3" />
  <row Id="2762" PostTypeId="2" ParentId="2757" CreationDate="2010-09-11T01:37:30.157" Score="5" ViewCount="" Body="&lt;p&gt;I have dual 17&quot; CRT monitors on my system. Why? Because of productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Productivity can be increased because you have more information in your peripheral vision. Instead of having to constantly switch between files, folders, IDE/editor and browser, IDE/editor and program, etc, you can just drag it to the other screen, glance, and go back to work. It might sound extremely small, but it really does help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Situations I've used this in&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;IDE in one screen, documentation/guide on other&lt;/li&gt;&#xA;&lt;li&gt;IDE with debugger on one screen, misbehaving program on other&lt;/li&gt;&#xA;&lt;li&gt;IDE in one screen, browser/desktop app in the other'&lt;/li&gt;&#xA;&lt;li&gt;Chat help (IRC) in one screen, something else in other&lt;/li&gt;&#xA;&lt;li&gt;Very long but important progress bar in one screen, something else in other&lt;/li&gt;&#xA;&lt;li&gt;Etc etc etc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="66" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-11T01:49:19.600" LastActivityDate="2010-09-11T01:49:19.600" CommunityOwnedDate="2011-01-26T13:55:26.910" CommentCount="7" />
  <row Id="2763" PostTypeId="2" ParentId="2682" CreationDate="2010-09-11T01:39:01.790" Score="6" ViewCount="" Body="&lt;p&gt;If it is a managed .NET framework, people can use &lt;a href=&quot;http://www.red-gate.com/products/reflector/&quot; rel=&quot;nofollow&quot;&gt;Reflector&lt;/a&gt; to look at the source code anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen a number of companies that appear to work this dual-licensing model successfully.  Having access to the source code doesn't necessarily mean that people will steal the code. Personally, I would rather be properly licensed, as has any company I have ever worked for.  But having access to the source code can encourage people to try your product out.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's something about having access to the source that feels like a security blanket; you know that you will probably never need it, but if you spend many man-hours worth of effort committing to a third-party library, it's good to know you can dig into the code and fix something if you ever get into a bind, or the original author of the code gets thrown under a bus.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-09-11T01:39:01.790" CommentCount="4" />
  <row Id="2764" PostTypeId="2" ParentId="2756" CreationDate="2010-09-11T01:41:57.553" Score="2" ViewCount="" Body="&lt;p&gt;For formatting standards, I follow what everybody else is doing. If they are using PascalCase for everything, then I use PascalCase. If they use _camelCase, then I use _camelCase. Why? Because it limits the amount of reformatting I do, and limits what others have to do to make it &quot;look good&quot;. Formatting standards are usually there to make things easy for everybody.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-11T01:41:57.553" CommentCount="0" />
  <row Id="2765" PostTypeId="2" ParentId="2623" CreationDate="2010-09-11T01:50:34.840" Score="0" ViewCount="" Body="&lt;p&gt;When &lt;a href=&quot;http://en.wikipedia.org/wiki/Wikirank&quot; rel=&quot;nofollow&quot;&gt;Wikirank&lt;/a&gt; was alive, it was possible to get a rank of every Wikipedia page. According to Wikirank on 2009.03, the top 5 most popular pages dedicated to programming languages were:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;C_(programming_language)&#xA;Java_(programming_language)&#xA;PHP&#xA;JavaScript&#xA;Python_(programming_language)&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://gromnitsky.blogspot.com/2009/03/programming-languages-on-wikirank.html&quot; rel=&quot;nofollow&quot;&gt;Here is an extended table&lt;/a&gt; (the page is in russian, but the table itself is in English).&lt;/p&gt;&#xA;" OwnerUserId="343" LastActivityDate="2010-09-11T01:50:34.840" />
  <row Id="2766" PostTypeId="2" ParentId="2756" CreationDate="2010-09-11T01:53:41.580" Score="1" ViewCount="" Body="&lt;p&gt;At my current job, one of my first tasks was to come up with a coding standard for our development group.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My first effort was about sixty pages long (it incorporated much of the Framework Guidelines from Microsoft).  I was asked to pare it down, and my next effort was ten pages long, utilizing ideas from a variety of good sources.  I was asked to pare it down again, and finally got it down to three or four pages, I think.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was never adopted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why?  Because I work with a lot of really smart people, who already follow a sensible coding standard instinctively.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For my part, I follow generally-accepted guidelines from Microsoft, and emulate the commonly-used styles of others (Javascript and jQuery are &lt;a href=&quot;http://programmers.stackexchange.com/questions/2715/curly-braces-on-their-own-line-or-not/2729#2729&quot;&gt;formatted differently&lt;/a&gt; from C#, even though they are both curly-brace languages).  I also break the rules from time to time, when doing so will make the code more readable.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-09-11T01:53:41.580" />
  <row Id="2767" PostTypeId="2" ParentId="2757" CreationDate="2010-09-11T01:59:19.387" Score="3" ViewCount="" Body="&lt;p&gt;In spite of the studies that show improved productivity for people having dual monitors, my standard is one good quality 24 inch flatscreen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why?  Because I've always been a full-screen alt-tab guy, able to quickly switch between multiple full-screen applications at a moment's notice.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And because a widescreen 24 inch monitor has enough real-estate that Visual Studio lives quite nicely in it, with Server Explorer and the Toolbox on the left hand side, Project Explorer on the right, Build and Immediate windows in a strip at the bottom, and adequate room remaining in the middle to write some code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, in a previous life, I worked in a software development company that wrote software for CPA's.  CPAs are notorious for keeping computer equipment longer than any human being has a right to, but a few years ago, all of them moved to dual monitors en masse.  Why?  Because they can now look at a tax return on one monitor, and their tax software on the other.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-09-11T01:59:19.387" CommunityOwnedDate="2011-01-26T13:55:26.910" CommentCount="6" />
  <row Id="2768" PostTypeId="2" ParentId="1674" CreationDate="2010-09-11T02:21:01.820" Score="6" ViewCount="" Body="&lt;p&gt;Have a look at &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;Project Euler.&lt;/a&gt;  There's nothing else like it for sharpening your foundational programming skills.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-09-11T02:21:01.820" CommentCount="1" />
  <row Id="2769" PostTypeId="2" ParentId="2757" CreationDate="2010-09-11T02:26:55.333" Score="6" ViewCount="" Body="&lt;p&gt;I think that the most important case for having dual monitors is when you are trying to follow a tutorial. Being able to glance at a tutorial on one screen and have your IDE on the other makes it so much easier to follow&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-11T02:26:55.333" CommunityOwnedDate="2011-01-26T13:55:26.910" CommentCount="3" />
  <row Id="2770" PostTypeId="2" ParentId="2757" CreationDate="2010-09-11T02:32:46.970" Score="6" ViewCount="" Body="&lt;p&gt;Dev machine:&lt;br&gt;&#xA;one vertical 23&quot; screen for code&lt;br&gt;&#xA;one horizontal 23&quot; for everything else&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Test system:&lt;br&gt;&#xA;2 machines sharing a 23&quot; horizontal via kvm&lt;br&gt;&#xA;Since I work on low level stuff, the host OS gets hosed semi-regularly, hence the extra test machines.&lt;/p&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-11T02:32:46.970" CommunityOwnedDate="2011-01-26T13:55:26.910" CommentCount="3" />
  <row Id="2771" PostTypeId="2" ParentId="2756" CreationDate="2010-09-11T02:34:24.467" Score="3" ViewCount="" Body="&lt;p&gt;Asking everyone to 100% adhere to the same standard code formatting guideline is like asking everyone to collaborate separately on writing a 100 page paper with the same writing style.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hopefully everyone will write the paper in English (or same language), but different styles will be apparent.  Some will write it well, others not.  Some will use contractions, some will spell the words out fully (example: it's verus it is).  Etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you touched on the most important points: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It's a guideline&lt;/li&gt;&#xA;&lt;li&gt;Readability&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If you want the code to adhere to the same formatting, like a paper to be in the same writing style, it'll need editing and revising.  The code will need to be cleaned up, reviewed, re-factored, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never been in a shop where I was completely happy with another developer's coding style or formatting (at minimal because it's not exactly like mine).  But I'll be content if I can read/understand it and if it's consistent.  &lt;em&gt;Everything else is the sugar on the syntactic sugar.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to answer your question: somewhat important, but it's certainly not the end of the world if they don't.&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-11T02:34:24.467" CommentCount="1" />
  <row Id="2773" PostTypeId="2" ParentId="2757" CreationDate="2010-09-11T02:36:49.007" Score="0" ViewCount="" Body="&lt;p&gt;At the moment I'm using a 17.3&quot; laptop screen, when I want to get more productive in the future I might consider a second monitor. I had two CRT's in the past but I've sold them to spend that money in new hardware...&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-11T02:36:49.007" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="2774" PostTypeId="2" ParentId="2233" CreationDate="2010-09-11T02:40:56.583" Score="0" ViewCount="" Body="&lt;p&gt;Desk? I haven't used a desktop in 5 years.  Just give me a comfy couch or sometimes a table at a coffee shop.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The coffee table or table at coffee shop needs only a laptop and coffee. ;)&lt;/p&gt;&#xA;" OwnerUserId="1223" LastActivityDate="2010-09-11T02:40:56.583" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="2775" PostTypeId="2" ParentId="2051" CreationDate="2010-09-11T02:46:02.260" Score="8" ViewCount="" Body="&lt;p&gt;First week - Have separate code base line for 2 different client (yes two copy of same code for 2 different client )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second week (another boss) - No merge both codes and put IF - Else condition on every page&lt;/p&gt;&#xA;" OwnerUserId="1224" LastActivityDate="2010-09-11T02:46:02.260" CommunityOwnedDate="2010-09-11T02:46:02.260" />
  <row Id="2776" PostTypeId="1" CreationDate="2010-09-11T02:47:26.140" Score="11" ViewCount="468" Body="&lt;p&gt;The &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;Joel Test&lt;/a&gt; is a well known test for determining how good your team is. What do you think about the points? Do you disagree with any of them? Is there anything that you would add?&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-29T22:00:12.930" Title="What do you think about the Joel Test?" Tags="&lt;best-practices&gt;&lt;joel-test&gt;" AnswerCount="8" FavoriteCount="3" />
  <row Id="2777" PostTypeId="1" CreationDate="2010-09-11T03:06:40.913" Score="18" ViewCount="702" Body="&lt;p&gt;I have heard a lot of people mention Code Complete as a book worthwhile reading. Unfortunately, I am so busy that I don't have time to read it, so can anyone tell me what the key points of the book are?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-11T13:48:57.393" LastActivityDate="2011-04-19T19:26:28.283" Title="What are the key points of Code Complete?" Tags="&lt;books&gt;&lt;code-complete&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="8" />
  <row Id="2778" PostTypeId="2" ParentId="2716" CreationDate="2010-09-11T03:14:10.470" Score="4" ViewCount="" Body="&lt;p&gt;Long term I think more an more will become Managed. If you watch &lt;a href=&quot;http://channel9.msdn.com/shows/Behind+The+Code/Patrick-Dussud-Managing-Garbage-Collection/&quot; rel=&quot;nofollow&quot;&gt;Patrick Dussaud Behind the code&lt;/a&gt; he makes some pretty interesting points about problems inherent with unmanaged code.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its also noteworthy that Microsoft is working on a Managed OS called &lt;a href=&quot;http://en.wikipedia.org/wiki/Midori_%28operating_system%29&quot; rel=&quot;nofollow&quot;&gt;Midori&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-09-11T03:14:10.470" />
  <row Id="2779" PostTypeId="2" ParentId="2777" CreationDate="2010-09-11T03:45:43.887" Score="12" ViewCount="" Body="&lt;p&gt;It's an intermediate book, a potpourri of software development best practices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're a beginning programmer you won't understand a lot of the material, and if you are experienced, the book will only confirm what you already know.  Consequently, the book might be of most value to intermediate programmers, who already have a bit of programming knowledge, but need a book of best practices to tie it all together.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Several pages are spent on how to format code blocks, and the relative merits of each approach.  Personally, I think the great debate on where to put your curly braces is over. &lt;a href=&quot;http://programmers.stackexchange.com/questions/2715/curly-braces-on-their-own-line-or-not&quot;&gt;(or is it?)&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-09-11T04:04:43.883" LastActivityDate="2010-09-11T04:04:43.883" CommentCount="1" />
  <row Id="2780" PostTypeId="2" ParentId="2777" CreationDate="2010-09-11T03:55:28.323" Score="9" ViewCount="" Body="&lt;p&gt;If you don't have the time I suggest you pick up the book, and only read the parts marked as &quot;Key Point&quot;. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-11T03:55:28.323" CommentCount="1" />
  <row Id="2781" PostTypeId="2" ParentId="2715" CreationDate="2010-09-11T04:14:26.700" Score="0" ViewCount="" Body="&lt;p&gt;You could write it:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;you.hasAnswer() ? you.postAnswer() : you.doSomething();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;To answer the question; I used to prefer curly braces on their own line, but, to avoid having to think about bugs from automatic semicolon insertion in browsers i started using Egyptian style for javascript. And when coding java in eclipse I had no interest in fighting (or configuring) the default brace style, so I went with Egyptian in that case too. Now I'm fine with both.&lt;/p&gt;&#xA;" OwnerUserId="170" LastActivityDate="2010-09-11T04:14:26.700" CommunityOwnedDate="2010-11-02T20:52:36.780" />
  <row Id="2782" PostTypeId="2" ParentId="2715" CreationDate="2010-09-11T04:29:14.437" Score="28" ViewCount="" Body="&lt;p&gt;The benefit of the first method is that it is more vertically compact, so you can fit more code on your screen, and that is why I prefer it. The only argument I heard in favor of the second method is that it makes it easier to pair opening and closing brackets, but most IDE's have a keyboard shortcut for that, and it's actually a false statement- instead of pairing an opening bracket to a closing bracket you can pair a closing bracket to the &quot;start of block&quot; expression (if, else, for, while) on the same indentation level, so it's just as easy to determine where the start of the block is. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I see no reason to waste an entire line just for a bracket when the preceding for/while/if construct already visually indicates the start of a block. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I do believe that the closing bracket should be in its own line because we need something to indicate the end of a block and its indentation structure in a visible way. &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2010-09-11T13:57:50.810" LastActivityDate="2010-09-11T13:57:50.810" CommunityOwnedDate="2010-11-02T20:52:36.780" CommentCount="10" />
  <row Id="2783" PostTypeId="1" AcceptedAnswerId="2821" CreationDate="2010-09-11T04:32:53.737" Score="16" ViewCount="562" Body="&lt;p&gt;Personally I prefer space around operators. For me it makes the code much more readable. What are the arguments not have space around them? Line length?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example from the &lt;a href=&quot;http://www.python.org/dev/peps/pep-0008/&quot; rel=&quot;nofollow&quot;&gt;Python style guide&lt;/a&gt; (I agree with this):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  i = i + 1&#xA;  submitted += 1&#xA;  x = x * 2 - 1&#xA;  hypot2 = x * x + y * y&#xA;  c = (a + b) * (a - b)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;No:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  i=i+1&#xA;  submitted +=1&#xA;  x = x*2 - 1&#xA;  hypot2 = x*x + y*y&#xA;  c = (a+b) * (a-b)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="170" LastActivityDate="2011-01-10T19:08:54.790" Title="Space around operators? a=b/2; or a = b / 2; What are the arguments?" Tags="&lt;holy-war&gt;&lt;coding-standards&gt;&lt;style-guide&gt;" AnswerCount="11" FavoriteCount="2" />
  <row Id="2784" PostTypeId="2" ParentId="2051" CreationDate="2010-09-11T04:37:15.377" Score="8" ViewCount="" Body="&lt;p&gt;I was a part of a mainframe support team that did shifts with other support teams in a data center. After the shift we would usually have a briefing with managers and the team of the next shift.  One day our new director showed up and asked the question: &quot;Why average CPU load during your shift was only 72%, while previous shift shows near 95%? I think if we try real hard, we could eventually achieve 100% CPU load!&quot;&lt;/p&gt;&#xA;" LastActivityDate="2010-09-11T04:37:15.377" CommunityOwnedDate="2010-09-11T04:37:15.377" CommentCount="1" />
  <row Id="2785" PostTypeId="2" ParentId="2756" CreationDate="2010-09-11T04:40:41.420" Score="1" ViewCount="" Body="&lt;p&gt;If you use and IDE that does the basics of this for you (Visual Studio for example), let the IDE do it's thing and whatever seems to still be hard to look at you modify as long as you still let the IDE do it's thing or the next person that auto-formats it is just going to kill it anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is most readable to one person will not be for all people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are not using this sort of IDE get one.  Even thinking about this for more than 10 minutes is a waste of resources IMHO.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-11T04:40:41.420" CommentCount="5" />
  <row Id="2786" PostTypeId="2" ParentId="2715" CreationDate="2010-09-11T04:40:50.580" Score="35" ViewCount="" Body="&lt;p&gt;For a long time I argued that they were of equal worth, or so &lt;strong&gt;very close to equal&lt;/strong&gt; that the possible gain by making the right choice was far, far, below the &lt;strong&gt;cost of arguing&lt;/strong&gt; about it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being &lt;strong&gt;consistent is important&lt;/strong&gt;, though. So I said let's flip a coin and get on to writing code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen programmers resist change like this before. Get over it! I've switched many times in my career. I even use different styles in my C# than in my PowerShell. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few years ago I was working on a team (~20 developers) that decided to ask for input, and then make a decision, and then enforce that across all the code base. We'd have 1 week to decide.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lots of groans &amp;amp; eye-rolling. Lots of &quot;I like my way, because it's better&quot; but no substance. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As we were studying the finer points of the question, someone asked how to deal with this issue in brace-on-the-same-line style:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void MyFunction(&#xA;    int parameterOne,&#xA;    int parameterTwo) {&#xA;    int localOne,&#xA;    int localTwo&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Note that it's not immediately obvious where the parameter list ends, and the body begins. Compare to:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void MyFunction(&#xA;    int parameterOne,&#xA;    int parameterTwo) &#xA;{&#xA;    int localOne,&#xA;    int localTwo&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;We did some reading on how folks around the world had dealt with this problem, and found the pattern of adding a blank line after the open brace:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void MyFunction(&#xA;    int parameterOne,&#xA;    int parameterTwo) {&#xA;&#xA;    int localOne,&#xA;    int localTwo&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If you're going to make a visual break, you may as well do it with a brace. Then your visual breaks become consistent, too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I still argue that consistency is more important than other considerations, but if we don't have an &lt;strong&gt;established precedent&lt;/strong&gt;, then brace-on-next-line is the way to go.&lt;/p&gt;&#xA;" OwnerUserId="883" LastEditorUserId="883" LastEditorDisplayName="" LastEditDate="2010-09-28T00:39:46.560" LastActivityDate="2010-09-28T00:39:46.560" CommunityOwnedDate="2010-11-02T20:52:36.780" CommentCount="5" />
  <row Id="2787" PostTypeId="2" ParentId="1" CreationDate="2010-09-11T04:52:53.253" Score="21" ViewCount="" Body="&lt;p&gt;Categorically defining a method or process as a &quot;code smell&quot; is a &quot;zealotry smell&quot;.  The term is becoming the new &quot;considered harmful&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please remember that all of these sort of things are supposed to be guidelines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many of the other answers give good advice as to when comments are warranted.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I use very few comments. Explain the purpose of non-obvious processes and leave the occasional death-threat to anyone that might be considering altering things on their own that required weeks of tuning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Refactoring everything until a kindergartner can understand it is likely not an efficient use of your time, and probably will not perform as well as a more concise version.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Comments don't affect run time,so the only negative issue to consider is the maintenance.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-11T04:52:53.253" CommunityOwnedDate="2011-01-31T09:04:54.130" CommentCount="3" />
  <row Id="2788" PostTypeId="2" ParentId="1380" CreationDate="2010-09-11T04:57:54.290" Score="2" ViewCount="" Body="&lt;p&gt;When you start considering changes that would affect run time performance, security, flexibility or maintainability to allow more code coverage it is time to end the quest for more code coverage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have projects where that point is 0% because coverage is impossible to calculate without harming the design and other projects where that is as high as 92%.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code coverage metrics are only useful in pointing out were you might have missed some tests.  They tell you nothing about the quality of your tests.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-11T04:57:54.290" />
  <row Id="2789" PostTypeId="2" ParentId="2783" CreationDate="2010-09-11T05:03:00.863" Score="26" ViewCount="" Body="&lt;p&gt;Spaces rock. I like to imagine that people who prefer no spaces live in very cramped, very crowded cubicles.&lt;/p&gt;&#xA;" OwnerUserId="78" LastActivityDate="2010-09-11T05:03:00.863" CommentCount="5" />
  <row Id="2790" PostTypeId="2" ParentId="2715" CreationDate="2010-09-11T05:06:05.223" Score="0" ViewCount="" Body="&lt;p&gt;All I can say is that if you're a fan of method #3, you are going to be persecuted by every IDE code-formatter on earth.&lt;/p&gt;&#xA;" OwnerUserId="78" LastActivityDate="2010-09-11T05:06:05.223" CommunityOwnedDate="2010-11-02T20:52:36.780" />
  <row Id="2791" PostTypeId="2" ParentId="1380" CreationDate="2010-09-11T05:09:06.577" Score="5" ViewCount="" Body="&lt;p&gt;Code coverage approaches 100% asymptotically.  Consequently, that last 5% is probably more effort than it is worth, as you begin to achieve vanishingly small returns for the effort expended.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-09-11T05:09:06.577" />
  <row Id="2792" PostTypeId="2" ParentId="1599" CreationDate="2010-09-11T05:12:07.563" Score="9" ViewCount="" Body="&lt;p&gt;Muttering in the elevator about how I would NOT have written the floor selection algorithm as stupidly as whoever made me wait half a minute extra.&lt;/p&gt;&#xA;" OwnerUserId="170" LastActivityDate="2010-09-11T05:12:07.563" CommunityOwnedDate="2010-09-11T05:12:07.563" CommentCount="3" />
  <row Id="2793" PostTypeId="2" ParentId="2563" CreationDate="2010-09-11T05:13:07.520" Score="4" ViewCount="" Body="&lt;p&gt;To those of us that love programming, the quality of the code matters A LOT.  We know that the simpler and more efficient we can get our code, the more maintainable it will be by default and the more we can build on that to soar to ever greater heights.  It's a BIG DEAL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your boss will not look at your code and therefore will not know to care.  He's up to his eyeballs in &quot;new requests&quot; -- he cares if it's broke or not -- he cares if this or that will get done in time -- that's all he has time for.  Make his job easier by focusing on what he cares about and maybe if he's not a jerk, he'll appreciate it and reward you accordingly.  If he doesn't, then hunt for your next new job a.k.a. &quot;raise.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code well for your own self, treat the job as a job, but always save time for your own coding projects outside of work, and don't forget to participate in user groups.&lt;/p&gt;&#xA;" OwnerUserId="1213" LastActivityDate="2010-09-11T05:13:07.520" />
  <row Id="2794" PostTypeId="2" ParentId="2730" CreationDate="2010-09-11T05:13:42.113" Score="21" ViewCount="" Body="&lt;p&gt;Language-level integration with structured data sources.  No cobbling together SQL queries out of strings, no preprocessors, no leaky ORM abstraction layers.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead, treat a set of data like a first-class language construction, on par with an array or a class, and integrate basic data-manipulation operations as first-class operations or at least built-in functions.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Re comment by @Konrad Rudolph: &quot;if not Linq, what do you mean then?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Linq2SQL is a pseudo-abstraction layer on top of SQL, which is already an abstraction layer.  So you gain nothing in terms of marrying the data manipulation with your normal language conventions, but you've insulated yourself from the database, like trying to play a piano while wearing oven mitts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I mean is that data manipulation would be done by operations built into the language.  So for example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Database definition would be done by the same syntax as the definition for class data.  Databases would then simply be a type of application object that has persistence transparently.  There's still the impedance mismatch between OO and relational to worry about but that's the abstraction I have in mind.&lt;/li&gt;&#xA;&lt;li&gt;Identifiers for database tables and columns would be on par with identifiers for application objects.  In fact, there wouldn't be any distinction between application objects and database objects.  You could auto-complete identifiers of either type of object in your IDE.&lt;/li&gt;&#xA;&lt;li&gt;Operations on data (selection, projection, cross-product, union, difference, and rename) would be built into the language, and use the same syntax as application code.  You can sort of get close to this if you use Node.js for your application and CouchDB for your database, since you'd be using JavaScript for everything.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I don't have in mind examples of what this code would look like.  Nor am I dictating language structures like list comprehensions or functors or whatnot.&lt;/p&gt;&#xA;" OwnerUserId="471" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-27T06:43:07.560" LastActivityDate="2010-12-27T06:43:07.560" CommentCount="10" />
  <row Id="2795" PostTypeId="2" ParentId="311" CreationDate="2010-09-11T05:22:48.123" Score="1" ViewCount="" Body="&lt;p&gt;The textmate example is a known risk that should be made clear to whomever the suggestion is directed.  &quot;textmate is cool,but it has not been updated in forever&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The jquery example is simple.  The folks making that suggestion never leave the gate without it, so they do not see it as overhead, and if you are pulling it from google hosting and desktops are your target you probably have logos that consume more resources/time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both are cool because they do things differently/better/more than other alternatives.  They will continue to be cool until that is no longer true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;As for your big picture questions:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this niche focus primarily a trait of programmers?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;no, anyone with a job that involves tools or equipment has these biases because there is not infinite funds and time to acquire and learn all the possible tools you might use in your job&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;How do you get programmers to not immediately jump to recommending their personal favorites?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;At a base level you don't, but if you were trying to get a more rounded answer you would likely do better to ask a group of programmers from different backgrounds or failing that ask the programmer(s) you have to list the top 10 options and their reasoning for each ranking.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What can motivate programmers to review their initial selection criteria and possibly modify their choice?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The failure of one of their main tools&lt;/li&gt;&#xA;&lt;li&gt;Being forced to justify things in budget&lt;/li&gt;&#xA;&lt;li&gt;A new tool on the market with attractive additional features&lt;/li&gt;&#xA;&lt;li&gt;More experience in areas where the old tool is not the best tool&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-11T05:22:48.123" />
  <row Id="2796" PostTypeId="2" ParentId="1745" CreationDate="2010-09-11T05:27:43.497" Score="4" ViewCount="" Body="&lt;p&gt;That because you are a programmer, you know how to fix the copier.&lt;/p&gt;&#xA;" OwnerUserId="1236" LastActivityDate="2010-09-11T05:27:43.497" CommunityOwnedDate="2010-09-11T05:27:43.497" CommentCount="2" />
  <row Id="2797" PostTypeId="2" ParentId="311" CreationDate="2010-09-11T05:36:11.513" Score="5" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/kb405.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Hype_cycle&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Hype_cycle&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-09-11T05:36:11.513" CommentCount="1" />
  <row Id="2799" PostTypeId="2" ParentId="779" CreationDate="2010-09-11T05:47:03.410" Score="10" ViewCount="" Body="&lt;p&gt;Having been on both sides of the table on this one, the reaction to the odd and stereotypically lame questions can be more informative than the &quot;good&quot; ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The worst of that sort I was ever asked was if I would take a doughnut.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They had one on a plate on the table, but it was sitting in front of an empty chair next to the 4th coffee cup on the table (only three interviewers) giving the appearance that it was a 4th person's doughnut.  The job dealt with a fair number of uncomfortable situations and they wanted to see how gracefully the interviewee could deal with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The one I later asked as an interviewer was to go 3rd in a team interview, and when it was my turn to ask I would put one of those aluminum briefcases that movies always show cash in on the table and ask the interviewee to name something inside. I actually carried the briefcase regularly so there was mostly normal things inside, but in dozens of interviews I only ever got two good answers: &quot;air&quot; which is almost impossible to be wrong, and &quot;pencil&quot; which we actually had to look to see because I couldn't remember (their wasn't).  The point of this one was to see how quickly the person could deal with the random context change and how logically they approached the issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point is that sometimes the answer itself doesn't matter in the least, the interviewer is interested in how you handle yourself or how you arrive at the answer.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-11T05:47:03.410" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="5" />
  <row Id="2800" PostTypeId="2" ParentId="2776" CreationDate="2010-09-11T05:49:07.573" Score="9" ViewCount="" Body="&lt;p&gt;Jeff Atwood has &lt;a href=&quot;http://www.codinghorror.com/blog/2006/08/the-programmers-bill-of-rights.html&quot; rel=&quot;nofollow&quot;&gt;The Programmer's Bill of Rights&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the post:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;Every programmer shall have two monitors&lt;/li&gt;&#xA;  &lt;li&gt;Every programmer shall have a fast PC&lt;/li&gt;&#xA;  &lt;li&gt;Every programmer shall have their choice of mouse and keyboard&lt;/li&gt;&#xA;  &lt;li&gt;Every programmer shall have a comfortable chair&lt;/li&gt;&#xA;  &lt;li&gt;Every programmer shall have a fast internet connection&lt;/li&gt;&#xA;  &lt;li&gt;Every programmer shall have quiet working conditions&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This seems to have some items that I'd like to see on Joel's list.  Specifically in the area of hardware (dual monitor, fast PC, mouse/keyboard, comfortable chair, fast connection).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only thing not mentioned is having a comfortable and adjustable &lt;strong&gt;desk&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This could all be added by changing:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Current #9: Do you use the best tools money can buy?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;to &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Improved #9: Do you use the best &lt;strong&gt;tools &lt;em&gt;and equipment&lt;/em&gt;&lt;/strong&gt; money can buy?&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-11T05:49:07.573" CommentCount="2" />
  <row Id="2802" PostTypeId="2" ParentId="2783" CreationDate="2010-09-11T06:35:57.983" Score="3" ViewCount="" Body="&lt;p&gt;Proper syntax highlighting, which &lt;a href=&quot;http://programmers.stackexchange.com/questions/958/what-ide-features-would-you-miss-most-if-you-didnt-have-them/974#974&quot;&gt;is a must-have for every IDE&lt;/a&gt;, makes spaces less useful.  Highlighting makes names of variables visually distinguishable from math operations and assignment operators.  This just means that how to set spaces is not a very important question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually select a pattern depending on a language.  If a language is abundant in spaces (such as OCaml or Haskell, where &lt;kbd&gt;Space&lt;/kbd&gt; is a delimiter of function arguments), I use more of them:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;let filtered = List.filter (fun x -&amp;gt; (x * 2) + 5 &amp;gt; a) list in&#xA;if ((List.length filtered) &amp;gt; 0) then ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But if spaces aren't used as valuable syntactic constructs (C, C++, Perl), I tend to avoid them:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int decision=calculate(x*2,5,a) || (y*3&amp;lt;100);&#xA;if (decision){&#xA;  ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Syntax highlighting (which seems to be turned off here) makes the latter example less of a mess.&lt;/p&gt;&#xA;" OwnerUserId="34" LastEditorUserId="34" LastEditorDisplayName="" LastEditDate="2010-09-15T08:05:19.497" LastActivityDate="2010-09-15T08:05:19.497" CommentCount="1" />
  <row Id="2803" PostTypeId="2" ParentId="2730" CreationDate="2010-09-11T06:45:57.073" Score="3" ViewCount="" Body="&lt;p&gt;I find it interesting that many &quot;new&quot; features of programming languages (things like trivial concurrency support, closures, tail recursion and first-class functions) are features that were invented decades ago, and are now being rediscovered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This happened with Javascript.  Javascript was a second class citizen until AJAX came onto the scene, and now many programmers are beginning to discover what a powerful language it has always been.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-09-11T06:45:57.073" CommentCount="5" />
  <row Id="2804" PostTypeId="1" AcceptedAnswerId="2836" CreationDate="2010-09-11T06:46:17.680" Score="20" ViewCount="1007" Body="&lt;p&gt;I noticed that I have a peculiar habit of finishing every line with a space. It carries over from my prose writing where a paragraph can have multiple sentences and so it is very common to follow a period with a space, and I end up doing that automatically for &lt;em&gt;every&lt;/em&gt; period (or when it comes to programming- semicolon). It started out as something automatic, but I'm so used to this by now that if I miss the space it actually bothers me and I end up returning to that line to input it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some of your programming idiosyncrasies? &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:30:20.717" LastActivityDate="2011-03-15T15:48:25.307" CommunityOwnedDate="2011-03-15T08:09:28.653" Title="What are your programming idiosyncrasies?" Tags="&lt;style-guide&gt;&lt;habits&gt;" AnswerCount="20" CommentCount="6" FavoriteCount="4" />
  <row Id="2805" PostTypeId="2" ParentId="2715" CreationDate="2010-09-11T06:59:14.577" Score="9" ViewCount="" Body="&lt;p&gt;I prefer the first method.  Braces are totally not worth separate line.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing is that braces are not important.  They're just &lt;strong&gt;syntactical trash&lt;/strong&gt;, which is absolutely unnecessary to understanding of what code is for, of it's purpose and the way it's implemented.  They're just a tribute to old-style C-like languages where visual grouping of operators was impossible due to low screen space available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are languages (Python, Haskell, Ruby) which are OK without braces at all.  This only confirms that braces are trash, and should not deserve a line for them whenever possible:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (you.hasAnswer()){&#xA;    you.postAnswer();&#xA;}else{&#xA;    you.doSomething();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-11T06:59:14.577" CommunityOwnedDate="2010-11-02T20:52:36.780" CommentCount="7" />
  <row Id="2806" PostTypeId="1" AcceptedAnswerId="6282" CreationDate="2010-09-11T07:00:11.813" Score="3" ViewCount="483" Body="&lt;p&gt;There's around a zillion &quot;PHP frameworks&quot;. And most of them bill themselves as &lt;em&gt;following&lt;/em&gt; the MVC pattern. While it's welcome to overcome osCommerce coding style (processing logic heavily intermixed with SQL and HTML), there are certainly simpler and easier to follow approaches to get a maintainable application design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The original MVC concept was targetted at GUI applications. And for Gtk/Python it seems feasible to follow it accordingly. But PHP web apps don't operate on live Views (GUI elements) and a persistent Controller runtime. It's quite certainly a misnomer if it just describes the used code + directory grouping or class naming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;MVC&quot; seems to be used like a buzzword for PHP frameworks. And I've actually seen one or two mature PHP frameworks admit it, but redefining the phrase anyway to match interna.&lt;br&gt;&#xA;So is it generally snake oil? Why isn't better terminology used, and a more sensible concept for maintainable PHP propagated?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Some elaborative reasoning&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why I suspect that PHP implementations don't follow the real MVC pattern:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Models&lt;/strong&gt;: in theory, Models should be fat and contain business logic, and controllers should be thin handlers (input-&gt;output). In reality the PHP frameworks advocate &lt;strong&gt;shallow&lt;/strong&gt; Models. CI and Symfony for example equate Model == ORM. Even HTTP input is handled by the controller, isn't treated as model.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Views&lt;/strong&gt;: workarounds with AJAX discounted, there can't be Views on web pages. PHP frameworks still pump out pages. The interface still effectively follows the ordinary HTTP model, there's no advantage over non-MVC applications. (And lastly, none of the widespread php frameworks can factually output to GUI Views instead of HTML. I've seen a PHP library that can operate Gtk/Console/Web, but the frameworks don't.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Controller&lt;/strong&gt;: I'm unsure. Controllers probably don't need to be long-running and persistently active in the MVC model. In PHP framework context, they're however mostly request handlers. Not really something to get argumentative about, but it just feels slightly buzzwordish.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Would there be better descriptors?&lt;/strong&gt; I've seen acronyms like PMVC or HMVC thrown around. Though descriptions get more ambigous there, maybe these would describe the current web frameworks less hokey?&lt;/p&gt;&#xA;" OwnerUserId="1245" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-22T14:03:41.280" LastActivityDate="2010-10-18T18:49:39.807" Title="Is MVC just the SEO of PHP programming?" Tags="&lt;php&gt;&lt;mvc&gt;&lt;buzzwords&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="2" />
  <row Id="2807" PostTypeId="2" ParentId="2783" CreationDate="2010-09-11T07:02:29.250" Score="1" ViewCount="" Body="&lt;p&gt;All coding standards I've ever used (in Java, C and C++) required spaces around most/all binary operators.  For me, if the coding standard says so, that is good enough reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people would argue that coding standards are fascist, cramp their style, make them less efficient programmers, etc.  But these arguments &lt;em&gt;miss the point&lt;/em&gt;.  Coding standards are about making your code readable and maintainable by other people. &lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-09-11T07:02:29.250" CommentCount="2" />
  <row Id="2808" PostTypeId="2" ParentId="2051" CreationDate="2010-09-11T07:12:55.740" Score="8" ViewCount="" Body="&lt;p&gt;Well, this one time I bid on a freelance reverse engineering job, only to discover that they quite literally wanted me to be able to change the past.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-11T07:12:55.740" CommunityOwnedDate="2010-09-11T07:12:55.740" CommentCount="3" />
  <row Id="2809" PostTypeId="2" ParentId="39" CreationDate="2010-09-11T07:25:52.043" Score="2" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;to understand recursion you must first understand recursion&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1239" LastActivityDate="2010-09-11T07:25:52.043" CommunityOwnedDate="2010-09-11T07:25:52.043" CommentCount="2" />
  <row Id="2810" PostTypeId="2" ParentId="539" CreationDate="2010-09-11T07:27:22.743" Score="0" ViewCount="" Body="&lt;p&gt;Earlier I spent a lot of time playing with colors.  These days I go with the default and simply &lt;em&gt;decide&lt;/em&gt; to like it.  Reasons for this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;No need to tweak after reinstalling or upgrading the IDE.&lt;/li&gt;&#xA;&lt;li&gt;Co-workers have the same default, so things look the same.  This is especially important if colors show underlying functionality (keywords, scope, etc).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've found that a white background is the best to read, and gives the best contrast to most colors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;FONTS&lt;/em&gt; however, is a different matter.  It is crucial to identify and use fonts that make the code most legible.  The Visual Studio fonts are really nice on Windows.  The Inconsolata font is nice on Linux and OS X for Eclipse.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-09-11T07:27:22.743" CommunityOwnedDate="2010-09-16T13:10:40.707" />
  <row Id="2811" PostTypeId="2" ParentId="39" CreationDate="2010-09-11T08:36:03.030" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Simplicity is prerequisite for reliability.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- Edsger W. Dijkstra&lt;/p&gt;&#xA;" OwnerUserId="567" LastEditorUserId="3270" LastEditorDisplayName="" LastEditDate="2010-09-22T02:09:13.077" LastActivityDate="2010-09-22T02:09:13.077" CommunityOwnedDate="2010-09-11T08:36:03.030" />
  <row Id="2812" PostTypeId="2" ParentId="2806" CreationDate="2010-09-11T09:19:59.363" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;But PHP web apps don't operate on live Views (GUI elements) and a persistent Controller runtime. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No, they sure do!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think of AJAX applications, then the view asks something to the controller and gets a partial view back,&lt;br&gt;&#xA;this view or data is then filled in somewhere in the page and thus live updated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Controller is also persistent because you can use cookies/sessions.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;MVC&quot; seems to be used like a buzzword for PHP frameworks.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;MVC is a Software Architecture, some frameworks might use it as a buzz, but others do it properly...&lt;br&gt;&#xA;See &lt;a href=&quot;http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller#PHP&quot; rel=&quot;nofollow&quot;&gt;a list of some frameworks on Wikipedia&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;is MVC just the SEO of php programming?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;MVC and SEO are two things apart, but yes... MVC is getting more popular.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-11T09:19:59.363" CommentCount="3" />
  <row Id="2813" PostTypeId="2" ParentId="2783" CreationDate="2010-09-11T09:22:26.880" Score="1" ViewCount="" Body="&lt;p&gt;Spaces give some room for breath and make the code a lot more readable.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-11T09:22:26.880" />
  <row Id="2814" PostTypeId="2" ParentId="2804" CreationDate="2010-09-11T09:26:20.090" Score="5" ViewCount="" Body="&lt;p&gt;I may sound like a house wife, but I want documentation and code to be as clean as possible.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-11T09:26:20.090" CommunityOwnedDate="2011-03-15T08:09:28.653" CommentCount="4" />
  <row Id="2815" PostTypeId="1" CreationDate="2010-09-11T10:16:25.480" Score="33" ViewCount="1745" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;With nearly 60 answers to this question it's highly likely that &lt;em&gt;your&lt;/em&gt; answer has already been posted. Please don't post an answer unless you have something new to say&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Assume that your objectives are the same as for C#. I don't want an answer like &quot;I'd write Python instead&quot;. I'm only interested in changes in the language itself - not in the standard library. Perhaps this would be interesting to discuss, but as it is shared between many languages it would be better to discuss this in another question instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Please post a single idea per answer; if you want to post several ideas, post several separate answers. Thanks!&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-02-15T23:47:41.983" LastActivityDate="2011-02-22T21:29:06.400" CommunityOwnedDate="2010-10-18T00:59:57.927" Title="What would you change about C# if you could?" Tags="&lt;c#&gt;&lt;criticism&gt;" AnswerCount="57" CommentCount="7" FavoriteCount="14" />
  <row Id="2816" PostTypeId="2" ParentId="2" CreationDate="2010-09-11T10:27:01.547" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.devtopics.com/most-popular-programming-languages/&quot; rel=&quot;nofollow&quot;&gt;DevTopics - Most Popular Programming Languages&lt;/a&gt; and &lt;a href=&quot;http://langpop.com/&quot; rel=&quot;nofollow&quot;&gt;LangPop.com&lt;/a&gt;&lt;br&gt;&#xA;show a lot of datasets that result in the Java language followed by C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the Microsoft world I tend to think that C# and the .NET Framework are very popular.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-11T10:27:01.547" />
  <row Id="2817" PostTypeId="2" ParentId="1599" CreationDate="2010-09-11T10:38:57.640" Score="2" ViewCount="" Body="&lt;p&gt;Trying to approach a problem by assessing every possible angle/permutation/perspective even if many of them are wrong or irrational. It especially sucks when I question trust/merit in others when I know I shouldn't because rationally what I'm questioning could be possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: The looking at things from lots of different perspectives is something I've done since I was a little kid (I can't really help it). It's the human disconnect of programming that I have to keep in check.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mentally modeling the world mentally as a consistent model of objects and their interactions to the finest level of granularity possible the same as I'd do in an OOP program. The world shouldn't be perceived in such a level of detail. It kills the romanticism of life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thinking way too hard about what I say/do in my interactions with others and forgetting to live in the &lt;a href=&quot;http://www.livinglifefully.com/flo/flopreciouspresent.htm&quot; rel=&quot;nofollow&quot;&gt;precious present&lt;/a&gt;. Coding intensely for long periods of time literally makes me socially retarded sometimes. Something which I find really disconcerting since I spend a lot of time/effort trying to build deep and meaningful social relationships with others.&lt;/p&gt;&#xA;" OwnerUserId="1256" LastActivityDate="2010-09-11T10:38:57.640" CommunityOwnedDate="2010-09-11T10:38:57.640" CommentCount="1" />
  <row Id="2818" PostTypeId="2" ParentId="2806" CreationDate="2010-09-11T10:59:21.380" Score="1" ViewCount="" Body="&lt;p&gt;In my opinion using MVC in php brings programmers to the web. It's easier to get from for example Java to PHP when you know how to work with MVC. &lt;/p&gt;&#xA;" OwnerUserId="1239" LastActivityDate="2010-09-11T10:59:21.380" CommentCount="2" />
  <row Id="2819" PostTypeId="2" ParentId="1371" CreationDate="2010-09-11T11:06:28.333" Score="6" ViewCount="" Body="&lt;p&gt;When a key developer on a project hasn't checked in any code for weeks and a serious milestone is coming up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was a contracting job and the more senior developer and PM on the job decided they wanted to team up to try to get a bigger cut so the other developer held 3 weeks of critical code hostage. In the end, we fired the incompetent PM (who had been spending 6 months putting the project on a course for ruin) and talked things out with the developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suffice to say, the rest of the project was a masochistic death march, the spec freezing was delayed, the customer was given a bunch of concession features to make up for the terrible scheduling the PM left the project, and the quality of the project suffered all around because of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The PM even had the nerve to fly down for CDR (Critical Design Review) only to ditch the meeting with the client and throw a hissy fit. When he demanded that his travel expenses be paid for under the project he was politely told to go fornicate with himself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can easily identify with at least 5 of the other answers found here that affected that project. In short, I learned a lot of hard lessons on my first serious coding project.&lt;/p&gt;&#xA;" OwnerUserId="1256" LastActivityDate="2010-09-11T11:06:28.333" CommunityOwnedDate="2011-01-23T19:41:07.757" />
  <row Id="2820" PostTypeId="2" ParentId="539" CreationDate="2010-09-11T11:08:02.503" Score="0" ViewCount="" Body="&lt;p&gt;I use [blackboard for VIM ][1] adjusted minimally which is a clone from the textmate blackboard colorscheme.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Image which I cannot post inline due to not enough reputation: &#xA;&lt;img src=&quot;http://i.imgur.com/9oRGP.png&quot; alt=&quot;blackboard colorscheme in GVIM&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[1]: google it, cannot post due to not enough reputation&lt;/p&gt;&#xA;" OwnerUserId="1273" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-09-24T08:48:21.450" LastActivityDate="2010-09-24T08:48:21.450" CommunityOwnedDate="2010-09-16T13:10:40.707" />
  <row Id="2821" PostTypeId="2" ParentId="2783" CreationDate="2010-09-11T11:13:34.727" Score="21" ViewCount="" Body="&lt;p&gt;I must confess I like the with the combination according to precedence.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;x*x + y*y&lt;/code&gt; immediately know what's going on&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;(x * x) + (y * y)&lt;/code&gt; spaces are okay, too, but then make it obvious&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;x * x + y * y&lt;/code&gt; okay but I spend more time looking at it than in the above example&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;x*x+y*y&lt;/code&gt; urghs&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1273" LastActivityDate="2010-09-11T11:13:34.727" CommentCount="7" />
  <row Id="2822" PostTypeId="2" ParentId="2804" CreationDate="2010-09-11T11:18:26.440" Score="3" ViewCount="" Body="&lt;p&gt;I have a few I guess...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similar to TomWij's, I write pseudocode out for non-trivial steps out as comments.  I keep it short, clean, simple, and generally numbered (starting from 1 to x).  It also tends to serve as documentation.  Then I write the actual code to follow under each step.  The more non-trivial it is, the more likely I'll keep it to help myself and future developers know what it's supposed to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also tend to use &lt;strong&gt;foo&lt;/strong&gt; and &lt;strong&gt;bar&lt;/strong&gt; as dummy naming variables for quick programming proof of concepts.  If both are already used within the scope, I get &lt;em&gt;creative&lt;/em&gt; and go with foofoo and barbar, or foo1 and bar2 etc.  The bad part is I sometimes forget to rename properly them and it gets checked into version control.&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-11T11:18:26.440" CommunityOwnedDate="2011-03-15T08:09:28.653" CommentCount="2" />
  <row Id="2823" PostTypeId="2" ParentId="1674" CreationDate="2010-09-11T11:45:25.993" Score="3" ViewCount="" Body="&lt;p&gt;I'm currently writing a regex parser/matcher and its teaching me a &lt;em&gt;huge&lt;/em&gt; amount about parsing and finite state machines and regular expressions themselves, among other things. The reason I particularly think a &lt;em&gt;regex&lt;/em&gt; parser is useful is because the regex language is small, and is fairly limited in what it can do. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thing I did was to write an interpreter for &lt;a href=&quot;http://www.dangermouse.net/esoteric/ook.html&quot; rel=&quot;nofollow&quot;&gt;Ook!&lt;/a&gt;, which is a simple task, but once again, teaches you a ton.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-11T11:45:25.993" CommentCount="1" />
  <row Id="2824" PostTypeId="2" ParentId="729" CreationDate="2010-09-11T11:55:38.213" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://freemind.sourceforge.net/wiki/index.php/Main_Page&quot; rel=&quot;nofollow&quot;&gt;Freemind&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It does a great job of storing lots of ideas in a semantic hierarchical manner. Plus, any node can also be a link to a website. Learning how to completely manipulate the Mind Map using only keys is a must (including, adding meaningful color coding skills).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use this in conjunction with Dropbox to make it the mind maps available on all my computers. I only wish the project had more development effort going into polishing it. &lt;/p&gt;&#xA;" OwnerUserId="1256" LastActivityDate="2010-09-11T11:55:38.213" CommunityOwnedDate="2011-03-07T21:12:42.693" CommentCount="2" />
  <row Id="2825" PostTypeId="2" ParentId="2783" CreationDate="2010-09-11T12:00:03.597" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strike&gt;I find it strange that people consider expressions with spaces to be easier to understand. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How is an expression different from a word? Is &quot;w o r d&quot; more clear than &quot;word&quot;? I'm guessing not. Then how is &lt;code&gt;i = a + b;&lt;/code&gt; any clearer than &lt;code&gt;i=a+b;&lt;/code&gt;? There's no semantic value added here. I can see it improving readability if you are using some weird cramped font in small size, but clarity? Sorry, I just don't see it. &lt;/strike&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strike&gt;I have never seen an expression that benefited from additional spacing, (the only exception being the cases where we have multiple closing brackets one after another, because it makes it easier to count how many there are), and it is because of that that I see no reason for the extra effort. If you ask me the operators are enough of a delimiter, and the use of syntax highlight makes them all the more useful in that role. &lt;/strike&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT: OK I take everything I said back. Did some programming with the spaces and I like it better.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2011-01-10T19:08:54.790" LastActivityDate="2011-01-10T19:08:54.790" CommentCount="5" />
  <row Id="2826" PostTypeId="2" ParentId="419" CreationDate="2010-09-11T12:11:17.380" Score="0" ViewCount="" Body="&lt;p&gt;Prepare for my b-day, 14 September. :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I actually programmed again that day after a lot of exam days.&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-15T23:01:05.430" LastActivityDate="2010-09-15T23:01:05.430" />
  <row Id="2827" PostTypeId="2" ParentId="419" CreationDate="2010-09-11T12:19:19.420" Score="4" ViewCount="" Body="&lt;p&gt;Ask for a pay rise by a number that is a power of two :)&lt;/p&gt;&#xA;" OwnerUserId="64" LastEditorUserId="64" LastEditorDisplayName="" LastEditDate="2011-01-20T21:46:24.540" LastActivityDate="2011-01-20T21:46:24.540" CommentCount="3" />
  <row Id="2828" PostTypeId="2" ParentId="368" CreationDate="2010-09-11T12:25:01.390" Score="9" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blip.tv/file/319044/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Because it takes a generation to change peoples perceptions about a product&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has nothing to do with how fast Java becomes. In people's minds Java is a const identifier associated with the word 'slow'. There's little, nothing you or Oracle can do about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just be happy that Oracle hasn't destroyed the Java programming culture (yet) by doing anything &lt;a href=&quot;http://tirania.org/blog/archive/2010/Aug-13.html&quot; rel=&quot;nofollow&quot;&gt;rash or stupid&lt;/a&gt;. Like charging excessive licensing costs to use it. Or suing people based on software patents previously owned by Sun. ::sigh::&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hate to be the naysayer here but, unless Oracle and Google settle the Java struggle on nice terms, or Google is forced to purchase Java and makes it a 'proper' open source platform, Java is well on it's way to being the kid on the playground that has lice. IE, no one will want to touch it with a 20ft pole.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Note: Just to be clear, when I say generation I'm talking in people terms not computer terms. IE, until the people who hold that perception die of old age or replaced by a younger generation the perception will hold true. Think in terms of 5 decades not 5 years.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="1256" LastEditorUserId="1256" LastEditorDisplayName="" LastEditDate="2010-11-11T00:32:30.867" LastActivityDate="2010-11-11T00:32:30.867" CommentCount="11" />
  <row Id="2829" PostTypeId="1" AcceptedAnswerId="2831" CreationDate="2010-09-11T12:36:08.910" Score="11" ViewCount="238" Body="&lt;p&gt;I originally thought of creative commons when while reading a book about wordpress (professional wordpress), I learned that I should also specify that the product is provided &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;... WITHOUT ANY WARRANTY; without even the&#xA;  implied warranty of MERCHANTABILITY or&#xA;  FITNESS FOR A PARTICULAR PURPOSE&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;and they recommend GNU GPL.  How do I write a license or select 1?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;btw, what does 'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE' mean actually? Isn't without warranty enough? &lt;/p&gt;&#xA;" OwnerUserId="526" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-24T13:58:07.147" LastActivityDate="2011-01-24T13:57:06.933" Title="Licenses that i can use for my works, web apps, desktop apps, wordpress themes etc" Tags="&lt;software&gt;&lt;license&gt;&lt;legal&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="8" />
  <row Id="2830" PostTypeId="2" ParentId="966" CreationDate="2010-09-11T12:48:51.410" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Predictably_Irrational&quot; rel=&quot;nofollow&quot;&gt;Predictably Irrational&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/63Nfd.jpg&quot; alt=&quot;Predictably Irrational&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1256" LastActivityDate="2010-09-11T12:48:51.410" CommunityOwnedDate="2011-01-06T15:42:27.030" />
  <row Id="2831" PostTypeId="2" ParentId="2829" CreationDate="2010-09-11T13:05:56.100" Score="5" ViewCount="" Body="&lt;p&gt;For small bits of code, I generally release them under the X11 licence. The problem with the GPL is that it's far too complicated for code that you don't really care enough about to protect. If you &lt;em&gt;really&lt;/em&gt; don't want people using your code in commercial products, you would need to monitor for infringement and fight it out in court, which isn't really worth the time or the effort for small, free, open-source projects.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Copyright (c)  &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Permission is hereby granted, free of charge, to any person obtaining a copy&#xA;   of this software and associated documentation files (the &quot;Software&quot;), to deal&#xA;   in the Software without restriction, including without limitation the rights&#xA;   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell&#xA;   copies of the Software, and to permit persons to whom the Software is&#xA;   furnished to do so, subject to the following conditions:&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The above copyright notice and this permission notice shall be included in&#xA;   all copies or substantial portions of the Software.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&#xA;   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&#xA;   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&#xA;   AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&#xA;   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&#xA;   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN&#xA;   THE SOFTWARE. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; If the body of code is more substantial, and you feel that you've invested enough time in it that you would be willing to protect it, by all means use the GPL to protect it.&lt;/p&gt;&#xA;" OwnerUserId="61" LastEditorUserId="61" LastEditorDisplayName="" LastEditDate="2010-09-11T13:30:39.713" LastActivityDate="2010-09-11T13:30:39.713" CommentCount="10" />
  <row Id="2832" PostTypeId="2" ParentId="2829" CreationDate="2010-09-11T13:24:03.197" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://sam.zoy.org/wtfpl/Blockquote&quot; rel=&quot;nofollow&quot;&gt;WTFPL - Do What The F*** You Want To Public License&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;       DO WHAT THE F*** YOU WANT TO PUBLIC LICENSE &#xA;                Version 2, December 2004 &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;  &#xA;  &lt;p&gt;Copyright (C) 2004 Sam Hocevar  &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Everyone is permitted to copy and distribute verbatim or modified &#xA;  copies of this license document,&lt;br&gt;&#xA;  and changing it is allowed as long &#xA;  as the name is changed. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;       DO WHAT THE F*** YOU WANT TO PUBLIC LICENSE &#xA;TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;  &#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;You just DO WHAT THE F*** YOU WANT TO. &lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-11T13:24:03.197" CommentCount="3" />
  <row Id="2833" PostTypeId="2" ParentId="2804" CreationDate="2010-09-11T13:39:22.537" Score="4" ViewCount="" Body="&lt;p&gt;In SQL I write columns out like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;SELECT    Column1&#xA;     ,    Column2&#xA;     ,    Column3&#xA;     ,    Column4&#xA;FROM TABLE&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It's carried over into how I call/define methods with lots of parameters:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function( param1&#xA;        , param2&#xA;        , param3&#xA;        , ... )&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-09-11T13:39:22.537" CommunityOwnedDate="2011-03-15T08:09:28.653" CommentCount="8" />
  <row Id="2834" PostTypeId="2" ParentId="2591" CreationDate="2010-09-11T13:42:45.567" Score="2" ViewCount="" Body="&lt;p&gt;Some about UI related. One of the best articles about this issue. It's a must read!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/uibook/fog0000000249.html&quot; rel=&quot;nofollow&quot;&gt;User Interface Design For Programmers&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/NotJustUsability.html&quot; rel=&quot;nofollow&quot;&gt;It's Not Just Usability&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-11T13:42:45.567" />
  <row Id="2836" PostTypeId="2" ParentId="2804" CreationDate="2010-09-11T13:50:21.807" Score="32" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Removing unnecessary white space - usually extra blank lines people leave in code&lt;/li&gt;&#xA;&lt;li&gt;Removing commented out code - that's what source control is for (though I am a hypocrite on this sometimes)&lt;/li&gt;&#xA;&lt;li&gt;&quot;Tidying&quot; &lt;code&gt;if&lt;/code&gt; statements - I prefer &lt;code&gt;if (expression)&lt;/code&gt; over &lt;code&gt;if( expression )&lt;/code&gt; etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The problem with all this is that my actual edit can get lost in all the &quot;noise&quot;. I try to keep this to a minimum.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-11T13:50:21.807" CommunityOwnedDate="2011-03-15T08:09:28.653" CommentCount="8" />
  <row Id="2837" PostTypeId="2" ParentId="1" CreationDate="2010-09-11T13:59:29.547" Score="6" ViewCount="" Body="&lt;p&gt;A good idea to have the right comments is to start with writing comments.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// This function will do something with the parameters, &#xA;// the parameters should be good according to some rules.&#xA;myFunction(parameters)&#xA;{&#xA;    // It will do some things to get started.&#xA;&#xA;    // It will do more with the stuff.&#xA;&#xA;    // It will end doing things with the stuff.&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This allows you to extract methods easily to even get rid of the comments,&lt;br&gt;&#xA;&lt;strong&gt;just let the code tell these things&lt;/strong&gt;! See how this is rewritten (cut/paste) in a very nice way:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// This function will do something with the parameters, &#xA;// the parameters should be good according to some rules.&#xA;myfunction(parameters)&#xA;{&#xA;  var someThing = initializedWithSomething;&#xA;&#xA;  doSomethingWith(someThing);&#xA;&#xA;  doMoreWith(someThing);&#xA;&#xA;  endDoingThingsWith(someThing);&#xA;&#xA;  return someThing;&#xA;}&#xA;&#xA;// This function will do some things to get started,&#xA;// the parameters should be good according to some rules.&#xA;doSomethingWith(parameters)&#xA;{&#xA;  parameters.manipulateInSomeWay();&#xA;  ... etc ...&#xA;}&#xA;&#xA;... etc ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;For things that can't be separated just don't extract methods and type the code under the comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is what I see as an useful way to keep commenting to a minimum, it's really useless to go commenting each line... Only document a single line if it's about a magic value initialization or  where it makes sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If parameters are used too much, then they should be private members in your class.&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-16T21:53:34.267" LastActivityDate="2010-09-16T21:53:34.267" CommunityOwnedDate="2011-01-31T09:04:54.130" CommentCount="1" />
  <row Id="2838" PostTypeId="2" ParentId="2715" CreationDate="2010-09-11T14:06:20.317" Score="5" ViewCount="" Body="&lt;p&gt;I did read somewhere that the authors of some book wanted their code formatted like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (you.hasAnswer())&#xA;{&#xA;    you.postAnswer();&#xA;}&#xA;else&#xA;{&#xA;    you.doSomething();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But space constraints from their publisher meant that they had to use this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (you.hasAnswer()) {&#xA;    you.postAnswer();&#xA;} else {&#xA;    you.doSomething();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now I don't know whether that's true (as I can't find it any more), but the latter style is very prevalent in books.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a personal level I prefer the brackets on a separate line as:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;a) they indicate a new scope&lt;br&gt;&#xA;b) it's easier to spot when you've got a mismatch (though this is less of an issue in an IDE that highlights errors for you).&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-11T14:06:20.317" CommunityOwnedDate="2010-11-02T20:52:36.780" />
  <row Id="2839" PostTypeId="2" ParentId="729" CreationDate="2010-09-11T14:15:55.517" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Dropbox for files (http://www.dropbox.com)&lt;/li&gt;&#xA;&lt;li&gt;PpcSoft iKnow for snippets of information (http://www.ppcsoft.com)&lt;/li&gt;&#xA;&lt;li&gt;Opera browser for browsing and bookmarks (with built-in RSS reader) (http://www.opera.com)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1290" LastActivityDate="2010-09-11T14:15:55.517" CommunityOwnedDate="2011-03-07T21:12:42.693" />
  <row Id="2840" PostTypeId="2" ParentId="35" CreationDate="2010-09-11T14:19:34.923" Score="7" ViewCount="" Body="&lt;p&gt;The difference between hardware and software:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hardware you kick, software you curse.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-11T14:19:34.923" CommunityOwnedDate="2010-09-23T20:40:04.303" />
  <row Id="2842" PostTypeId="2" ParentId="2804" CreationDate="2010-09-11T14:25:07.410" Score="6" ViewCount="" Body="&lt;p&gt;A friend of mine has a habit of putting &lt;em&gt;Here be dragons!&lt;/em&gt; in a method's comments block if the code is a bit of a hack.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems he is not alone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have a look at a google code search for &lt;em&gt;&lt;a href=&quot;http://www.google.com/codesearch?hl=en&amp;amp;lr=&amp;amp;q=%22be+dragons%22&amp;amp;sbtn=Searchsurviving&quot; rel=&quot;nofollow&quot;&gt;be dragons&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just found this in thrunderbird. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To pop it up:&#xA;Tools -&gt; Options -&gt; Advanced tab -&gt; General tab -&gt; Config Editor&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/31J4a.png&quot; alt=&quot;Dragons Found!&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Origin:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Here be dragons&quot; is a phrase used to&#xA;  denote dangerous or unexplored&#xA;  territories, in imitation of the&#xA;  medieval practice of putting sea&#xA;  serpents and other mythological&#xA;  creatures in blank areas of maps.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The only known historical use of this&#xA;  phrase is in the Latin form &quot;HC SVNT&#xA;  DRACONES&quot; on&#xA;  the Lenox Globe (ca. 1503-07). &#xA;  Earlier maps contain a variety of references&#xA;  to mythical and real creatures, but&#xA;  the Lenox Globe is the only known&#xA;  surviving map to bear this phrase.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="64" LastEditorUserId="11155" LastEditorDisplayName="" LastEditDate="2011-03-15T10:48:51.867" LastActivityDate="2011-03-15T10:48:51.867" CommunityOwnedDate="2011-03-15T08:09:28.653" CommentCount="4" />
  <row Id="2843" PostTypeId="2" ParentId="2715" CreationDate="2010-09-11T14:27:35.127" Score="1" ViewCount="" Body="&lt;p&gt;I personally like the second way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the way I'm going to demonstrate is in my opinion best because it results in greatest job security! A fellow student from my university asked me for help with his homework and this is how his code looked like. Whole program looked like one single block. The interesting thing is that 95% of the bugs in the program he made came from mismatched braces. The other 5% were obvious once the braces were matched.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;while(1){&#xA;i=0;&#xA;printf(&quot;Enter coded text:\n&quot;);&#xA;while((s=getchar())!='\n'){&#xA;         if(i%1==0){&#xA;            start=(char*)realloc(input,(i+1)*sizeof(char));&#xA;if(start==NULL){&#xA;printf(&quot;Memory allocation failed!&quot;);&#xA;exit(1);}&#xA;input=start;}&#xA;      input[i++]=s;}&#xA;start=(char*)realloc(input,(i+1)*sizeof(char));&#xA;if(start==NULL){&#xA;printf(&quot;Memory allocation failed!!!&quot;);&#xA;exit(1);}&#xA;input=start;&#xA;input[i]='\0';&#xA;                puts(input);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="98" LastActivityDate="2010-09-11T14:27:35.127" CommunityOwnedDate="2010-11-02T20:52:36.780" CommentCount="4" />
  <row Id="2844" PostTypeId="2" ParentId="35" CreationDate="2010-09-11T14:33:45.133" Score="23" ViewCount="" Body="&lt;p&gt;Programmer's Russian Roulette:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[ $[ $RANDOM % 6 ] == 0 ] &amp;amp;&amp;amp; rm -rf / || echo &lt;em&gt;Click&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-11T14:33:45.133" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="4" />
  <row Id="2845" PostTypeId="2" ParentId="2501" CreationDate="2010-09-11T14:36:24.000" Score="2" ViewCount="" Body="&lt;p&gt;Call me old fashioned, but I'd avoid giving your baby or toddler electronic toys. Maybe some stuff that makes music, but don't only give toys that require batteries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For learning programming or more general analytical skills, I'd give toddlers building blocks like indeed Lego (I think most if not all programmers use to play with Technic Lego or something similar in their youth). Toys with many shapes that can fit into each-other can be great for babies.&#xA;Of course talking a lot to babies and toddlers (but not in 'baby-language') also helps to stimulate their intellect.&#xA;Lost but not least, understanding programming concepts requires intelligence, and intelligence is for the most part genetic. So you can't influence that much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For older children, Scratch is great I know from experience. Or just Basic or a similar language, many people I know started programming Basic (some in C or Pascal) when their between 10-12 - even people who had parents who wanted them to be farmer or plumber.&lt;/p&gt;&#xA;" OwnerUserId="1288" LastActivityDate="2010-09-11T14:36:24.000" CommentCount="2" />
  <row Id="2846" PostTypeId="1" CreationDate="2010-09-11T14:38:03.237" Score="61" ViewCount="9594" Body="&lt;p&gt;Sometimes, you have to learn a language for purposes like education or because your career needs it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which language do you really hate to write software with?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:47:55.723" LastActivityDate="2011-04-26T15:18:31.157" CommunityOwnedDate="2010-09-12T22:04:32.777" ClosedDate="2010-12-18T12:30:32.770" Title="Which programming language do you really hate?" Tags="&lt;programming-languages&gt;&lt;holy-war&gt;" AnswerCount="68" CommentCount="23" FavoriteCount="31" />
  <row Id="2847" PostTypeId="2" ParentId="2846" CreationDate="2010-09-11T14:49:25.287" Score="46" ViewCount="" Body="&lt;h3&gt;Javascript&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Not that the language is that bad, but because the whole ecosystem and most stuff developed in Javascript sucks. Most if not all people that program Javascript ignore all good practices like separation of concerns, test(able) code, unit tests, modular design, don't-repeat-yourself etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I'm quite used to Java and many frameworks involved, and if I'd want to develop something in a newer language I'd pick Scala or Clojure, or maybe even something like F# depending on who the market goes. I see Javascript as a step back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But anyway, after writing this, I'm thinking what I hate most is any of those XML programming languages. XML isn't a bad basis describing (and exchanging) data, but it sucks as a basis for a programming language.&lt;/p&gt;&#xA;" OwnerUserId="1288" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-05T16:14:33.170" LastActivityDate="2010-10-05T16:14:33.170" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="18" />
  <row Id="2848" PostTypeId="2" ParentId="368" CreationDate="2010-09-11T14:58:35.543" Score="2" ViewCount="" Body="&lt;p&gt;Circa 1997 I used a HP Vectra VE (200 MHz) and Windows 95. Most applications ran very fast on this, but then I tried a few applications written in Java (IDEs, if I recall correctly). They were very slow, at least the GUI parts of them. They took long time to start, and the GUI elements (e.g. menus) were not very responsive -- there were delays in the visual feedback. Also, since Java GUI applications had (has) a rather distinctive look, I learned to associate this look (and Java) with poor performance.&lt;/p&gt;&#xA;" OwnerUserId="1218" LastActivityDate="2010-09-11T14:58:35.543" CommentCount="1" />
  <row Id="2849" PostTypeId="2" ParentId="966" CreationDate="2010-09-11T15:02:14.723" Score="4" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/5bbMv.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A Pattern Language: Towns, Buildings, Construction&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will teach you how to see that wildly disparate things can have underlying patterns in common that can be applied in an entirely different context. The aspect of a CEO's office that makes it a great office can be present in an undergrad's residence room, or missing from your million dollar mansion. Once you get this concept, you can apply it to software, as the Gang of Four did, and you will understand Design Patterns so much more completely. You will also have nicer living and working spaces for the rest of your life.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-09-11T15:02:14.723" CommunityOwnedDate="2011-01-06T15:42:27.030" CommentCount="1" />
  <row Id="2850" PostTypeId="2" ParentId="2666" CreationDate="2010-09-11T15:05:18.080" Score="2" ViewCount="" Body="&lt;p&gt;I was working on a large change, and when I went to merge my code back, I somehow took the wrong changes in the diff tool, at various places, and ended up with a completely unworkable changeset.  :|   (Fortunately I was able to rollback/reapply, but it took a bit of wrangling and I wasn't too happy)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then one time at my first 'real' IT job I was writing a script to migrate a ton of UNIX-based  websites to a new server, and quickly learned the value of input validation... The trailing space at the end of my username list caused &quot;undesirable&quot; results. Luckily my mentor at the time agreed to fix my mistake for a bottle of rum  ;)&lt;/p&gt;&#xA;" OwnerUserId="1215" LastActivityDate="2010-09-11T15:05:18.080" CommunityOwnedDate="2011-01-10T19:05:03.687" CommentCount="1" />
  <row Id="2851" PostTypeId="2" ParentId="2846" CreationDate="2010-09-11T15:19:30.057" Score="146" ViewCount="" Body="&lt;h3&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/696/why-do-you-hate-love-php/712#712&quot;&gt;PHP&lt;/a&gt;&lt;/h3&gt;&#xA;" OwnerUserId="25" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-11-30T20:23:48.530" LastActivityDate="2010-11-30T20:23:48.530" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="24" />
  <row Id="2852" PostTypeId="2" ParentId="2846" CreationDate="2010-09-11T15:19:41.260" Score="2" ViewCount="" Body="&lt;p&gt;Ruby. Maybe this is partly because of bad development tools, but usually when a programming language is &quot;dynamic&quot;, it's not for me. I'm gonna give it another try, though.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-11T15:19:41.260" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="4" />
  <row Id="2854" PostTypeId="2" ParentId="1752" CreationDate="2010-09-11T15:28:20.520" Score="3" ViewCount="" Body="&lt;p&gt;I don't feel like getting specific break/fix examples is as important as realizing this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Users do not read your manual, or watch your tutorials. They learn your software through exploration.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If through that exploration they break something, as a programmer it is your job to either warn them of the danger or prevent it from happening in the first place. I can't remember where I saw it now, but in the back of my mind I always try to &quot;&lt;strong&gt;&lt;em&gt;make doing the right thing easy&lt;/em&gt;&lt;/strong&gt;&quot; for the user of my software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you insist on examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;User was able to enter a lowercase name that broke the integration code / fixed by performing input validation&lt;/li&gt;&#xA;&lt;li&gt;User was able to click the wrong button after performing an action / fixed by only showing the correct buttons.&lt;/li&gt;&#xA;&lt;li&gt;User was able to do X accidentally / fixed by warning them they are about to do X.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;See where this is going?  :)&lt;/p&gt;&#xA;" OwnerUserId="1215" LastActivityDate="2010-09-11T15:28:20.520" CommentCount="2" />
  <row Id="2855" PostTypeId="2" ParentId="2846" CreationDate="2010-09-11T15:38:42.123" Score="66" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C++&lt;/strong&gt;.   It takes all the right ideas about programming and implements them in all the wrong ways.  It may not be the worst language ever created, but without a doubt it's the worst ever to be taken seriously.&lt;/p&gt;&#xA;" OwnerUserId="935" LastEditorUserId="1842" LastEditorDisplayName="" LastEditDate="2010-09-15T23:09:20.473" LastActivityDate="2010-09-15T23:09:20.473" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="1" />
  <row Id="2856" PostTypeId="1" CreationDate="2010-09-11T15:39:07.800" Score="6" ViewCount="650" Body="&lt;p&gt;I am trying to ditch PHP and focus on .NET/C#. I think with PHP you are limited to web stuff only and jobs seem to pay lower compared to other programming languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is your opinion?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any other technology that seems to be in demand?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are the reasons why I want to move from PHP to .NET:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;The language normally never changes&#xA;/ it is simple to learn so anyone&#xA;out there interested in programming&#xA;ends up doing php so if compared to&#xA;other languages, php developers are&#xA;not paid as much.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;There are too many PHP frameworks&#xA;that are not backed by large&#xA;companies so when applying for jobs,&#xA;companies want you to have&#xA;experience with the different&#xA;frameworks&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The thing I like with .NET is that&#xA;large companies with a lot of cash&#xA;are normally the ones who use it&#xA;because it is expensive, unlike php&#xA;which is free n so anyone out there&#xA;can use it&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;What do you think? &#xA;I am not trying to argue that PHP is not a good language (I like PHP) , All I am trying to do is focus on a career path that pays more.&lt;/p&gt;&#xA;" OwnerUserId="1302" LastEditorUserId="1302" LastEditorDisplayName="" LastEditDate="2010-09-11T16:21:57.553" LastActivityDate="2011-04-09T03:54:24.113" Title="Career advice: moving from PHP to .NET" Tags="&lt;career&gt;&lt;php&gt;&lt;.net&gt;&lt;c#&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="1" />
  <row Id="2858" PostTypeId="2" ParentId="2185" CreationDate="2010-09-11T15:43:47.740" Score="2" ViewCount="" Body="&lt;p&gt;The right time is when the product is ready for each stage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's up to you and the customer to define &quot;ready&quot;. This might be when a certain number of bugs have been found and fixed or how much documentation has been completed. It all depends on the application and what the customer is expecting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll ignore the alpha phase for now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A beta phase is usually when you think you're feature complete &lt;strong&gt;for this release&lt;/strong&gt; and require feedback on the fine details of your application. This is often seen as public testing, but that depends on your application. A small scale application will be beta tested by a few select users, a large application (like Visual Studio, or Stack Overflow) will be beta tested by anybody and everybody willing to help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The official release is when you (and your customers/users) are confident that your product can do the job it's designed for. It might not have all it's features, but those you implemented for &lt;strong&gt;this release&lt;/strong&gt; will be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alpha testing is more nebulous. It means different things to different people. You might release an early version that not feature complete because you need more user feedback on one particular aspect. You might also need to get something &quot;out there&quot; to meet a specific demand and can't afford to wait.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-09-11T15:49:28.500" LastActivityDate="2010-09-11T15:49:28.500" CommentCount="1" />
  <row Id="2859" PostTypeId="2" ParentId="2846" CreationDate="2010-09-11T16:13:09.870" Score="64" ViewCount="" Body="&lt;h3&gt;SQL&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;It has an old, crappy syntax. We should really find a new, standardized, clean way to deal with databases!&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-11T16:13:09.870" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="23" />
  <row Id="2860" PostTypeId="2" ParentId="1745" CreationDate="2010-09-11T16:13:37.923" Score="22" ViewCount="" Body="&lt;p&gt;that as a programmer you know everything about latest hardware trends, overclocking, case mod, etc. friends and relatives consult you when they buy their gears.&lt;/p&gt;&#xA;" OwnerUserId="1161" LastActivityDate="2010-09-11T16:13:37.923" CommunityOwnedDate="2010-09-11T16:13:37.923" CommentCount="4" />
  <row Id="2861" PostTypeId="2" ParentId="2856" CreationDate="2010-09-11T16:17:06.837" Score="7" ViewCount="" Body="&lt;p&gt;Why do you have to &lt;em&gt;move&lt;/em&gt; to C#/.NET? Can't you just keep the knowledge of the two languages at the same level?&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-11T16:17:06.837" CommentCount="3" />
  <row Id="2862" PostTypeId="2" ParentId="2846" CreationDate="2010-09-11T16:17:16.473" Score="32" ViewCount="" Body="&lt;h2&gt;C&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;As most programmers, I &lt;strong&gt;love&lt;/strong&gt; C. But you can't program C for any extended amount of time without hating it deeply. Here are a few reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;It's everywhere&lt;/strong&gt;. This means it's very hard or even impossible to &quot;fix&quot; the base language sensibly. Sure, there's a committee that works to improve it, but that just proves my point.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;gcc/glibc&lt;/strong&gt;. C programmers think that GNU extensions are supported everywhere.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;include/link magic&lt;/strong&gt;. Linking C programs happen too magically and outside the source code. This could be made much easier if it wasn't for the first point; Objective-C for example has a nice import statement that makes sense and is built on top of C.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;No namespaces&lt;/strong&gt;. A good import system could fix this.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;It's fast&lt;/strong&gt;. Yes, that's a bad point. C, being pretty much portable assembly, is very efficient. This leads programmers to use it when other languages would've been much more expressive and easier to program. Just look at the whole gtk+/GNOME mess. &lt;strong&gt;EDIT&lt;/strong&gt;: My point here is not that C should be slower. My point is that it's far too easy to pick C for a new project for the wrong reason: premature optimization.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I don't hate it for its lack of safety. It's what makes C what it is: a portable assembly. Making C safer would ruin most of its advantages.&lt;/p&gt;&#xA;" OwnerUserId="1303" LastEditorUserId="1303" LastEditorDisplayName="" LastEditDate="2010-09-11T16:38:49.337" LastActivityDate="2010-09-11T16:38:49.337" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="7" />
  <row Id="2863" PostTypeId="2" ParentId="2856" CreationDate="2010-09-11T16:19:02.657" Score="2" ViewCount="" Body="&lt;p&gt;I was a LAMP developer before I switched to ASP.Net/C# many years ago.  It was a great move at the time around 2002.  I didn't find work with LAMP, and .Net was becoming in high demand as companies had classic ASP applications they wanted ported over.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back when I programmed with PHP, I was proficient in it, the community behind it was great, and the other alternatives were mostly in ASP and Winform development.  But PHP had its problems too.  I could develop my web apps quickly, but when it came time to maintaining it as well as inheriting other PHP code from others, it was problematic.  Some would say that Perl is &lt;a href=&quot;http://en.wikipedia.org/wiki/Write-only_language&quot; rel=&quot;nofollow&quot;&gt;write-only&lt;/a&gt;, but I could almost say the same thing about PHP!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The .Net framework solved a lot of problems for me with the rich library and control that came with it.  I no longer had to write and rewrite PHP code to do very common things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C# is a great language that you can use for just about anything, not just web development.  If you look at StackOverflow as well as many .Net books, all the code is in C#.  There is a rich community behing C# as the language is still growing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Silverlight, Windows Phone 7, Monotouch/Monodroid, etc can all use C#.  Also, the cool kids are all using Ruby on Rails, which has a great community behind it too.&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-11T16:19:02.657" />
  <row Id="2866" PostTypeId="2" ParentId="2846" CreationDate="2010-09-11T16:52:41.030" Score="77" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;ColdFusion&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A language based entirely on XML like tags leads to the worst looking code I've ever seen. I've used it once, never picked it up again, and tried to get those horrible pages out of my mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also never understood why you would want to &lt;a href=&quot;http://www.adobe.com/products/coldfusion/buy/&quot; rel=&quot;nofollow&quot;&gt;pay for a language.&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-11T16:52:41.030" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="3" />
  <row Id="2867" PostTypeId="2" ParentId="1752" CreationDate="2010-09-11T17:06:27.070" Score="1" ViewCount="" Body="&lt;p&gt;Here is one I heard this week. A user asks for a feature &quot;send me a notification when an event occurs&quot;. Simple enough and the developer goes ahead and implements it. Sure, the first question should have been &quot;what are trying to address by this notification?&quot;. I won't go into that. Few days later the user stops by the developer and asks &quot;I got this notification. What am I supposed to do with it?&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I remembered this Dilbert comic and suggested to the developer &quot;write an app to figure out what the user should do with that notification&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like mpeterson said, the user is very competitive in their area of expertise. They just don't think like a software developer or designer. &lt;/p&gt;&#xA;" OwnerUserId="921" LastActivityDate="2010-09-11T17:06:27.070" />
  <row Id="2868" PostTypeId="2" ParentId="2846" CreationDate="2010-09-11T17:08:31.757" Score="57" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Regular expression&lt;/strong&gt; - they are powerful and I use a lot them - but I don't like the syntax, it is chunky, not well standardized and I can't remember it (I have always to check a guide or, better, to copy a sample).&lt;/p&gt;&#xA;" OwnerUserId="235" LastActivityDate="2010-09-11T17:08:31.757" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="17" />
  <row Id="2869" PostTypeId="2" ParentId="1701" CreationDate="2010-09-11T17:12:54.913" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com&quot; rel=&quot;nofollow&quot;&gt;Joel on Software&lt;/a&gt; blog contains tons of invaluable information which can help you to be successful programmer. A lot of the things can be easily reflected to non-software development professions. If you prefer to read books, there are &lt;a href=&quot;http://www.joelonsoftware.com/BuytheBooks.html&quot; rel=&quot;nofollow&quot;&gt;several books&lt;/a&gt; which compile all the wisdom of Joel's articles.&lt;/p&gt;&#xA;" OwnerUserId="1810" LastEditorUserId="1810" LastEditorDisplayName="" LastEditDate="2010-09-14T18:43:55.973" LastActivityDate="2010-09-14T18:43:55.973" CommentCount="0" />
  <row Id="2870" PostTypeId="2" ParentId="2846" CreationDate="2010-09-11T17:14:02.463" Score="30" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;ActionScript&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The horrible &quot;scripting language&quot; behind Flash...&lt;/p&gt;&#xA;" OwnerUserId="235" LastActivityDate="2010-09-11T17:14:02.463" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="13" />
  <row Id="2871" PostTypeId="2" ParentId="2846" CreationDate="2010-09-11T17:14:38.357" Score="12" ViewCount="" Body="&lt;h1&gt;Squeak&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;The annoying part about it is that you can't search Google for help without being bombarded with information about mice. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-11T17:14:38.357" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="10" />
  <row Id="2872" PostTypeId="2" ParentId="1371" CreationDate="2010-09-11T17:25:46.480" Score="10" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;When key developers leave and management doesn't care&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;When key developers leave and none of the other developers care&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Number one is usually indicative of managers who are severely out-of-touch with the team dynamics (who is the &quot;10x super star&quot;, who are the decent programmers, and how they interact with each other etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Number two usually indicates severe lack-of-interest on the part of the remaining developers.&lt;/p&gt;&#xA;" OwnerUserId="1067" LastActivityDate="2010-09-11T17:25:46.480" CommunityOwnedDate="2011-01-23T19:41:07.757" />
  <row Id="2874" PostTypeId="2" ParentId="1752" CreationDate="2010-09-11T17:32:32.433" Score="1" ViewCount="" Body="&lt;p&gt;Having a good user interface and providing an adequate learning experience goes a long way towards preventing users from doing bad things.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Good user interfaces should be&#xA;frictionless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of throwing up a dialog box (an expensive operation, and one that users ignore after awhile) to confirm a delete, perform the delete, and offer a way to undo.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Good user interfaces should be&#xA;discoverable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although the ribbon in Microsoft Office gets a lot of flak because it forces old users of Word to change their ways, the ribbon is a shining example of how you can make an interface discoverable (i.e. easy to discover).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Good user interfaces, like good code,&#xA;should be self-explanatory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nobody reads the manual.  The only manual I ever got my users to read was a PowerPoint presentation containing step-by-step walkthroughs of the software.  I have seen these done with video tools like Camtasia, but PowerPoints are better because you can easily flip backwards and forwards through the steps. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-09-11T17:32:32.433" />
  <row Id="2875" PostTypeId="2" ParentId="2846" CreationDate="2010-09-11T17:37:00.417" Score="160" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;VBScript&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The horrible, horrible scripting language behind the majority of Classic ASP sites.&lt;/p&gt;&#xA;" OwnerUserId="562" LastActivityDate="2010-09-11T17:37:00.417" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="11" />
  <row Id="2877" PostTypeId="2" ParentId="2329" CreationDate="2010-09-11T17:44:14.533" Score="1" ViewCount="" Body="&lt;p&gt;Practise your Google-fu. Google is pretty awesome, but it's not magic. Sometimes you'll need to use search operators to get better answers, especially on some code phrases that can be difficult to search. Check out the &lt;a href=&quot;http://www.googleguide.com/advanced_operators_reference.html&quot; rel=&quot;nofollow&quot; title=&quot;Google Guide&quot;&gt;Google Guide&lt;/a&gt;, for example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I know where the answer is, I might use the site: operator, or if I need something citable I often use inurl:edu. Google Code is handy for finding examples, and I use it to search for APIs sometimes.&lt;/p&gt;&#xA;" OwnerUserId="1315" LastActivityDate="2010-09-11T17:44:14.533" />
  <row Id="2878" PostTypeId="2" ParentId="2846" CreationDate="2010-09-11T17:45:31.503" Score="125" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Java&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How could nobody have said Java yet?  Exceptions are cancer. The simplest task requires mountains of code, and the simplest crash results in the most bizarre 25 level deep stack traces. Not to mention you're trapped in Java land and doing anything interesting always seems to require native methods.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also someone just reminded me of VBScript. That's probably even worse.&lt;/p&gt;&#xA;" OwnerUserId="1223" LastActivityDate="2010-09-11T17:45:31.503" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="36" />
  <row Id="2879" PostTypeId="1" AcceptedAnswerId="2906" CreationDate="2010-09-11T17:48:46.223" Score="5" ViewCount="161" Body="&lt;p&gt;In looking at various professional societies the AITP lead me indirectly to the ICCP Certified Computer Programmer certification (and others from the ICCP).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had never heard of this program, but both the AITP and, more significantly to me, ACM have members on the ICCP board.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is anyone familiar with this certification? The webpage isn't confidence inspiring to be honest, but looking at it the program seems aimed at those in the Fortune 1000 internal software world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone ICCP certified in some way? Has it had career value?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Brought over from StackOverflow by suggestion).&lt;/p&gt;&#xA;" OwnerUserId="1209" LastActivityDate="2010-10-08T17:19:35.937" Title="Certified Computer Programmer from ICCP" Tags="&lt;career&gt;&lt;certification&gt;" AnswerCount="2" FavoriteCount="2" />
  <row Id="2881" PostTypeId="2" ParentId="670" CreationDate="2010-09-11T17:58:50.333" Score="2" ViewCount="" Body="&lt;p&gt;Staying motivated has never been too much of a problem. I love coding, it's what I do and you'd have to beat me with a stick to get me to stop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, I don't code the same things (or even the same way) at home as I do at work. I work on Open Source or side projects for fun. It's not a chore...&lt;/p&gt;&#xA;" OwnerUserId="1315" LastActivityDate="2010-09-11T17:58:50.333" />
  <row Id="2882" PostTypeId="2" ParentId="118" CreationDate="2010-09-11T17:59:11.243" Score="0" ViewCount="" Body="&lt;p&gt;Have you considered the Middle East? &lt;strong&gt;UAE&lt;/strong&gt; and &lt;strong&gt;Qatar&lt;/strong&gt; generally give high salary with a low number of working hours. &lt;/p&gt;&#xA;" OwnerUserId="488" LastActivityDate="2010-09-11T17:59:11.243" CommentCount="2" />
  <row Id="2883" PostTypeId="2" ParentId="554" CreationDate="2010-09-11T18:03:52.897" Score="0" ViewCount="" Body="&lt;p&gt;I think that computer science courses miss one of the most important facets of working as a programmer: teamwork.  Being school courses, they tend to follow the school course paradigm: you do your assignment alone, and if someone else helps you out, that's considered cheating.  This is just fine for English or history, but in the real world programming is done as part of a team and the school course paradigm simply doesn't prepare you for any aspect of that.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-11T18:03:52.897" />
  <row Id="2884" PostTypeId="2" ParentId="265" CreationDate="2010-09-11T18:08:01.840" Score="0" ViewCount="" Body="&lt;p&gt;Sadly, none of us are qualified. We all learn on the job. The field moves too fast for school to teach anything but the basics and hope they might build a foundation for later learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't be discouraged by what you see in HR postings, they're often silly and wrong. It's the result of a manager listing all of the skills of some former employee (needed or not) to a HR bot, who doesn't know what any of that jargon means. They just post the job and search resumes for keywords.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's super annoying to see job postings requiring knowledge in some source control tool or something equally trivial. Few of us ever match the HR bot's requirements perfectly. I'm convinced Gosling himself is right now trying to convince HR that he has enough experience using Java Beans or something inane.&lt;/p&gt;&#xA;" OwnerUserId="1315" LastActivityDate="2010-09-11T18:08:01.840" />
  <row Id="2885" PostTypeId="2" ParentId="1" CreationDate="2010-09-11T18:08:22.400" Score="3" ViewCount="" Body="&lt;p&gt;Of honorable mention is the anti-pattern:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's my impression that sometimes FLOSS license preamples are frequently used &lt;strong&gt;in lieu&lt;/strong&gt; of file documentation. The GPL/BSDL makes a nice filler text, and after that you seldomly see any other comment block.&lt;/p&gt;&#xA;" OwnerUserId="1245" LastActivityDate="2010-09-11T18:08:22.400" CommunityOwnedDate="2011-01-31T09:04:54.130" />
  <row Id="2886" PostTypeId="2" ParentId="2846" CreationDate="2010-09-11T18:18:01.803" Score="59" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Perl&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I write it, I'm content with it.  If it's Perl code I inherit from someone else, I hate it.  Kind of like PHP.&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-11T18:18:01.803" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="14" />
  <row Id="2887" PostTypeId="2" ParentId="1599" CreationDate="2010-09-11T18:39:29.223" Score="7" ViewCount="" Body="&lt;p&gt;I tend to be more forgiving when anything that has code in it (so basically, anything that is at least as complex as a doorbell) behaves weirdly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Yeah, putting a slice of bread &lt;em&gt;and&lt;/em&gt; and a hamburger bun into the toaster at the same time is probably an edge case that the developer didn't consider.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This kind of attitude makes you a lot more relaxed than a &quot;Why doesn't this &amp;amp;%$&amp;amp;%!$!§/&amp;amp;@% do what I expect it to do?&quot;, so I'd consider it a good habit that programming has given me.&lt;/p&gt;&#xA;" OwnerUserId="48" LastActivityDate="2010-09-11T18:39:29.223" CommunityOwnedDate="2010-09-11T18:39:29.223" CommentCount="2" />
  <row Id="2888" PostTypeId="2" ParentId="2776" CreationDate="2010-09-11T18:51:31.357" Score="2" ViewCount="" Body="&lt;p&gt;I agree with most of Joel's points.  I'm not so sure about &quot;hallway usability testing&quot;.  Usability testing, sure, but actually grabbing someone from the hallway and making them test your program, even though it's not their job?  That seems like a great way to tick people off.&lt;/p&gt;&#xA;" OwnerUserId="151" LastActivityDate="2010-09-11T18:51:31.357" CommentCount="3" />
  <row Id="2889" PostTypeId="2" ParentId="1599" CreationDate="2010-09-11T19:31:52.173" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Adding brackets over English sentences like:&lt;br /&gt;&lt;strong&gt;[ I bought [ fish and chips ] ] and [ it's delicious ].&lt;/strong&gt; (quotes can also be used?)&lt;/li&gt;&#xA;&lt;li&gt;Where's the CTRL+Z in real life? (example: &lt;a href=&quot;http://theoatmeal.com/comics/abortion_clinic&quot; rel=&quot;nofollow&quot;&gt;http://theoatmeal.com/comics/abortion_clinic&lt;/a&gt; )&lt;/li&gt;&#xA;&lt;li&gt;Found the color words like &quot;Salmon&quot;, &quot;rose&quot;, &quot;saffron&quot;, and &quot;lilac&quot; are useless. (hex colors, hex...)&lt;/li&gt;&#xA;&lt;li&gt;Determinism, that's a big one&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-09-11T19:31:52.173" CommunityOwnedDate="2010-09-11T19:31:52.173" />
  <row Id="2891" PostTypeId="2" ParentId="1877" CreationDate="2010-09-11T19:42:21.300" Score="0" ViewCount="" Body="&lt;p&gt;This depends on a lot of factors:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is the table as a whole updating (eg, every row changes), or is it just one row at a time?&lt;/li&gt;&#xA;&lt;li&gt;If it's a row at a time, is it an arbitrary row that a user has to jump their eyes to, or is it always a new row at the top? The former would require more spacing between updates than the latter.&lt;/li&gt;&#xA;&lt;li&gt;How much data is on each row?&lt;/li&gt;&#xA;&lt;li&gt;Is most of it unimportant, and only the outliers are important to the user (in which case they're probably skimming the data, so you can put it out a lot faster)?  Or does all the data need to be read and mentally processed.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;My (admittedly minimal- a couple college classes worth) experience with calculating user experience metrics (like data processed per second) has lead me to believe that the field is pretty immature, and that you're better off doing empirical measurement.  If you really want to try to optimize a specific UI, nothing beats usability testing.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-11T19:42:21.300" CommentCount="1" />
  <row Id="2892" PostTypeId="2" ParentId="2846" CreationDate="2010-09-11T19:43:55.650" Score="4" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Z_notation&quot; rel=&quot;nofollow&quot;&gt;Z Notation&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;It's not really a programming language but a formal specification language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was forced to learn it in my 4th year of college as part of a database course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the course we had to define the game of draughts/checkers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An experience I will never forget or want to repeat.&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-11T19:43:55.650" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="1" />
  <row Id="2894" PostTypeId="2" ParentId="2815" CreationDate="2010-09-11T19:52:35.227" Score="21" ViewCount="" Body="&lt;p&gt;I would add support for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Extension properties (if only to make fluent interfaces more fluent)&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Extension operators&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;listbox1 += &quot;line&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Support for operators with generics (ie. specify that you don't really care about the type of the T, but that it has to support &quot;addition&quot; with the &lt;code&gt;+&lt;/code&gt; operator)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class T Accumulate&amp;lt;T&amp;gt;(IEnumerable&amp;lt;T&amp;gt; values)&#xA;    where T : operator +&#xA;{&#xA;    using (IEnumerator&amp;lt;T&amp;gt; enumerator = values.GetEnumerator())&#xA;    {&#xA;        if (!enumerator.MoveNext())&#xA;            return default(T);&#xA;        T result = enumerator.Current;&#xA;        while (enumerator.MoveNext())&#xA;            result += enumerator.Current; // this does not compile now&#xA;        return result;&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;More generic constraints, like &quot;number&quot; or &quot;enum&quot;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class Adder&amp;lt;T&amp;gt;&#xA;    where T : number&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="472" LastActivityDate="2010-09-11T19:52:35.227" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="10" />
  <row Id="2895" PostTypeId="2" ParentId="2501" CreationDate="2010-09-11T19:53:14.067" Score="3" ViewCount="" Body="&lt;p&gt;I've taught programming with some success to kids as young as seven or so... but toddlers?  I have a 2-year-old, and I think she's pretty darn smart.  She can count up to the teens, she can recognize a lot of letters (&quot;D is for daddy!&quot;) all kinds of stuff.  But programming?  I just can't see it.  I would think it better to work on letters and numbers and such, which are prerequisites for programming or pretty much any academic pursuit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I suppose I can think of a few ways to teach the very basic foundations of object oriented programming though.  If you want your kid to be able to eventually understand that things have properties, talk to them about properties.  &quot;What color is the car?  Is it big or small?  What color is your teddy bear?  Is he soft or hard?&quot;  If you want your kid to understand that things have methods, talk to them about methods.  &quot;What can you do?  Can you crawl?  Can you run?  What does your toy truck do?  Can it roll?&quot;  If you want your kid to understand inheritance, talk to them about &quot;is a&quot; relationships?  &quot;Are you a person?  Is mommy a person?  Is doggy a person?  Is mommy a girl?  What about daddy?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are probably good concepts to be working on with your kid, regardless of whether they're ever going to be a programmer or not.&lt;/p&gt;&#xA;" OwnerUserId="151" LastActivityDate="2010-09-11T19:53:14.067" />
  <row Id="2896" PostTypeId="2" ParentId="1217" CreationDate="2010-09-11T19:55:16.930" Score="1" ViewCount="" Body="&lt;p&gt;I don't think it's only newbies.  I have co-workers with years of experience who seem to only look at the line number when they get a compiler error, then try to figure out the rest themselves (often by trying voodoo like &quot;let's add parenthesis&quot; or &quot;let's break this up into two statements&quot;).    &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My suspiscion is that this comes from not really having a deep understanding of the rules of the language, so that the generally dense description of the error doesn't have much meaning.   &lt;code&gt;expression must be a modifiable lvalue&lt;/code&gt; seems like pretty useless information if you really don't know what an &lt;em&gt;lvalue&lt;/em&gt; is.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-11T19:55:16.930" />
  <row Id="2897" PostTypeId="2" ParentId="2846" CreationDate="2010-09-11T19:57:13.967" Score="125" ViewCount="" Body="&lt;h3&gt;Visual Basic (especially the VB6 generation)&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;When folks gripe about the language &lt;a href=&quot;http://programmers.stackexchange.com/questions/501/what-syntax-element-do-you-hate-most-in-a-programming-language-you-use-frequently&quot;&gt;syntax&lt;/a&gt; or &lt;a href=&quot;http://programmers.stackexchange.com/questions/2331/which-language-features-are-considered-harmful&quot;&gt;features&lt;/a&gt; they dislike, there is a tendency for them to jump to a logical extreme, describing examples of use or misuse that make it seem irredeemably dangerous or stupid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, VB programmers made that &lt;em&gt;idiomatic&lt;/em&gt;. It's not that it's &lt;em&gt;impossible&lt;/em&gt; to write decent code in the language - indeed, I've known some very good programmers who've used it effectively - it's that &lt;em&gt;in practice&lt;/em&gt;, finding such code is very uncommon!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;VB, like the BASIC it grew out of, was &lt;em&gt;the language for everyone&lt;/em&gt; - and so folks who'd never heard of a data structure or perhaps even a subroutine learned to program by pasting code samples into the little editor that popped up when they double-clicked on a button, then tweaking it until it sorta did what they wanted. Engineers who knew the math involved in their field but never heard of IEEE floating-point hammered in their formulas and then did what they could to get something approaching accuracy from them. &lt;/p&gt;&#xA;" OwnerUserId="63" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2010-09-12T02:41:35.777" LastActivityDate="2010-09-12T02:41:35.777" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="9" />
  <row Id="2899" PostTypeId="2" ParentId="2815" CreationDate="2010-09-11T20:04:03.077" Score="28" ViewCount="" Body="&lt;p&gt;The syntax of the switch statement. I would like it more &quot;block oriented&quot;, and more like the rest of C#.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;switch (foo) {&#xA;   case 1 {&#xA;      // ...&#xA;   }&#xA;   case 2, 3 {&#xA;      // ...&#xA;   }&#xA;   case 10..100 {&#xA;      // ...&#xA;   }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1329" LastEditorUserId="1329" LastEditorDisplayName="" LastEditDate="2010-10-18T07:44:18.880" LastActivityDate="2010-10-18T07:44:18.880" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="8" />
  <row Id="2900" PostTypeId="2" ParentId="670" CreationDate="2010-09-11T20:05:05.420" Score="2" ViewCount="" Body="&lt;p&gt;I don't really see it as doing the same thing in my spare time. I see it as working on different projects. Just because I'm programming to achieve both personal and professional objectives, doesn't matter. It's simply using the same means to different ends.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-11T20:05:05.420" />
  <row Id="2901" PostTypeId="2" ParentId="1217" CreationDate="2010-09-11T20:11:34.827" Score="0" ViewCount="" Body="&lt;p&gt;Because for most languages, most compiler/runtime messages don't make any sense.  (C++ and Java especially, I am looking at you!)  Getting the errors right tends to be rather low on a language designer's list of priorities.  Getting things that work right to work right is usually a bigger priority, and a lot of time they don't bother with polishing the little details.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's one of the reasons why I enjoy working in Delphi.  The entire language is full of attention to the little details, including the errors.  Compiler messages make sense.  Runtime error messages make sense.  Stack traces make sense.  It's one of the things that makes it, by far, the easiest language to debug that I've ever worked with.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-11T20:11:34.827" />
  <row Id="2902" PostTypeId="2" ParentId="2846" CreationDate="2010-09-11T20:15:17.867" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;TCL&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's stupid. Mainly because the project I was on where it was used could have easily benefited from python (both its familiar c like syntax, and the more extensive library support).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or maybe &lt;a href=&quot;http://waterlanguage.org/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Water&lt;/strong&gt;&lt;/a&gt;. But it failed so badly its almost too funny to be horrible. Talk about delusions of grandeur on the part of the architect.&lt;/p&gt;&#xA;" OwnerUserId="1330" LastEditorUserId="1330" LastEditorDisplayName="" LastEditDate="2010-09-11T23:07:47.210" LastActivityDate="2010-09-11T23:07:47.210" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="10" />
  <row Id="2903" PostTypeId="2" ParentId="2235" CreationDate="2010-09-11T20:18:02.440" Score="2" ViewCount="" Body="&lt;p&gt;I often write launcher scripts that set me up to work on specific projects.  For example, I have a part time PHP deve job that I work from home on my laptop, and I have a little script that will:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Launch an isolated Apache/PHP stack (&lt;a href=&quot;http://www.mamp.info/en/index.html&quot; rel=&quot;nofollow&quot;&gt;MAMP&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Launch a bug tracker server (&lt;a href=&quot;http://hedgehoglab.com/products/fixx/&quot; rel=&quot;nofollow&quot;&gt;Fixx&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Open a Firefox page to&lt;br&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The production version of the project&lt;/li&gt;&#xA;&lt;li&gt;The staging version&lt;/li&gt;&#xA;&lt;li&gt;The local version&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Open the code in TextMate&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It doesn't seem like much, but I find myself much more inclined to work on it when it's only one icon-click away, and I find myself considerably more productive.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-11T20:18:02.440" CommentCount="1" />
  <row Id="2904" PostTypeId="2" ParentId="2846" CreationDate="2010-09-11T20:27:38.020" Score="33" ViewCount="" Body="&lt;h1&gt;Ruby&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I dislike Ruby, mostly because of certain methodology blowhards who have embedded themselves into that community. I've had too many Ruby evangelists corner me and start extolling its virtues, promising that my life would be ever so much better if I would just drink the Kool-Aid. It makes me uncomfortable in the same way as when I forget to &lt;em&gt;not&lt;/em&gt; answer the doorbell on Saturday morning and inadvertently give the Jehovah's Witnesses another chance to 'save' me. They mean well, it's just... awkward.&lt;/p&gt;&#xA;" OwnerUserId="1326" LastEditorUserId="3666" LastEditorDisplayName="" LastEditDate="2010-11-29T15:12:18.307" LastActivityDate="2010-11-29T15:12:18.307" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="8" />
  <row Id="2905" PostTypeId="2" ParentId="2804" CreationDate="2010-09-11T20:28:01.187" Score="8" ViewCount="" Body="&lt;p&gt;I am quite OCD about needing to remove any white spaces at the ends of lines. The worst is if a blank line has been left made up of spaces to match the current indentation. I always turn on the 'show white spaces' option on my IDE so that I can see them easily. I know that they have no impact on the code but I just need to get rid of them all. &lt;/p&gt;&#xA;" OwnerUserId="1116" LastActivityDate="2010-09-11T20:28:01.187" CommunityOwnedDate="2011-03-15T08:09:28.653" CommentCount="6" />
  <row Id="2906" PostTypeId="2" ParentId="2879" CreationDate="2010-09-11T20:29:10.967" Score="2" ViewCount="" Body="&lt;p&gt;I've never heard of it and I have been in programming for almost 20 years, nor have I ever seen it mentioned on a resume or a job posting. In fact, I haven't even heard anything from/about AITP since I left college either. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm thinking it doesn't have much value if people haven't heard of it.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-11T20:29:10.967" />
  <row Id="2907" PostTypeId="2" ParentId="2804" CreationDate="2010-09-11T20:36:44.380" Score="2" ViewCount="" Body="&lt;p&gt;By convention, most Delphi code is indented 2 spaces per level.  I tend to indent mine by 3 spaces because I find that easier to line up with my eyes.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-11T20:36:44.380" CommunityOwnedDate="2011-03-15T08:09:28.653" CommentCount="2" />
  <row Id="2908" PostTypeId="2" ParentId="616" CreationDate="2010-09-11T21:07:46.960" Score="1" ViewCount="" Body="&lt;p&gt;Good sleep helps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I have been stuck on a problem and worked out the solution in my head while I sleep. I literally wake up with an aha solution. Sometimes you just need to reset your brain.&lt;/p&gt;&#xA;" OwnerUserId="1256" LastActivityDate="2010-09-11T21:07:46.960" />
  <row Id="2909" PostTypeId="1" CreationDate="2010-09-11T21:14:41.193" Score="7" ViewCount="374" Body="&lt;p&gt;How did you treat it when you were symptomatic, and what did you do since then to ensure that it won't repeat itself? What was the most helpful? &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="4" LastEditorDisplayName="" LastEditDate="2011-03-26T13:03:02.337" LastActivityDate="2011-03-26T13:13:58.823" Title="Have you ever experienced Repetitive Strain Injuries (RSI)? How did it happen, and what was your response to it?" Tags="&lt;health&gt;&lt;rsi&gt;&lt;professional-disease&gt;" AnswerCount="9" FavoriteCount="1" />
  <row Id="2910" PostTypeId="2" ParentId="2909" CreationDate="2010-09-11T21:19:10.883" Score="2" ViewCount="" Body="&lt;p&gt;Yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mine was (well still is really) caused by me injuring my right shoulder in an ice skating incident (I fell over :().&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now if I use the mouse with my right hand for any length of time I get various pains up my arm and into my shoulder.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My solution is to use the mouse with my left hand. I don't swap the buttons so a left click is still a left click but I use the middle finger of my left hand rather than the index finger of my right. This seems to do the job and while my fine motor skills aren't quite there yet I can do everything I need to without having to think about it.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-11T21:19:10.883" CommentCount="1" />
  <row Id="2914" PostTypeId="2" ParentId="2829" CreationDate="2010-09-11T21:55:58.743" Score="2" ViewCount="" Body="&lt;p&gt;Personally your best bet to get a true answer to this question would be to talk with a Legal Professional as they are going to know the specifics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, what I remember when i was talking with my lawyer about setting up our code license agreements is that the clause you are talking about basically protects you from cases where you say &quot;this code does X, Y, Z&quot;, that is an implied warranty on &quot;fitness for a particular purpose&quot;, that clause prevents you have having any issues if it doesn't do X, Y, and Z.&lt;/p&gt;&#xA;" OwnerUserId="1340" LastActivityDate="2010-09-11T21:55:58.743" CommentCount="1" />
  <row Id="2915" PostTypeId="2" ParentId="1913" CreationDate="2010-09-11T22:00:19.480" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Trac&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's to web platform but it can run on Windows too, so one of the best bug trackers is &lt;a href=&quot;http://trac.edgewall.com/&quot; rel=&quot;nofollow&quot;&gt;Trac&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-24T18:07:30.280" LastActivityDate="2010-09-24T18:07:30.280" CommunityOwnedDate="2010-09-11T22:00:19.480" />
  <row Id="2916" PostTypeId="2" ParentId="2804" CreationDate="2010-09-11T22:00:35.383" Score="2" ViewCount="" Body="&lt;p&gt;I have a few that rank right up there with others.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I always make sure that I have comments on code blocks, and I'm not afraid to write inline comments and get frustrated when complicated pieces of maintenance code doesn't have comments&lt;/li&gt;&#xA;&lt;li&gt;Commented out code needs to leave, quickly, and not leave a forwarding address.  (That's what source control is for)&lt;/li&gt;&#xA;&lt;li&gt;I hate inconsistent spacing between regions and blocks of code, there must be a single line space so that if collapsed within Visual Studio the little Region boxes do not run into each other.  &lt;/li&gt;&#xA;&lt;li&gt;I cannot stand variables named i, x, y, z, foo, bar, etc unless used for a counter, any other use gets changed.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1340" LastActivityDate="2010-09-11T22:00:35.383" CommunityOwnedDate="2011-03-15T08:09:28.653" />
  <row Id="2917" PostTypeId="2" ParentId="2776" CreationDate="2010-09-11T22:06:14.837" Score="3" ViewCount="" Body="&lt;p&gt;I have to say that it is a good &quot;baseline&quot;, but with any measuring tool there are other factors.  For example not a single company that I have worked for has done Daily Builds (I know, I know), but some of them have been very good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally have a few other items that I would add to a list.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Do you support developer education by attending conferences, purchasing books, or something of that nature?&lt;/li&gt;&#xA;&lt;li&gt;Do you have a simple, documented process to adopt new tools if necessary to complete job functions&lt;/li&gt;&#xA;&lt;li&gt;Do you provide developers equipment and an environment that will allow them to be productive.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;More than anything these are items have have &quot;pissed me off&quot; from previous employers, and well they are now fast track questions that I ask about each and every opportunity.&lt;/p&gt;&#xA;" OwnerUserId="1340" LastActivityDate="2010-09-11T22:06:14.837" CommentCount="2" />
  <row Id="2918" PostTypeId="2" ParentId="1588" CreationDate="2010-09-11T22:08:22.377" Score="3" ViewCount="" Body="&lt;p&gt;Laptop with 1920X2000 pixel resolution and 4 virtual desktops.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, laptops severely lack the ergonomics of a full keyboard but I'm addicted to the low tactile feedback needed to type. I can type faster on a laptop keyboard than a full keyboard any day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tossing it into a bag and going somewhere else to code is always useful too. Being a slave to your desktop can be depressing and makes me feel like breaking out sometimes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as impact injuries go, I actually type on a laptop keyboard with my wrists at a 45 degree angle anyway. I'm not sure if that's normal for most but it just feels natural to me now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The external desktop isn't really necessary unless you need to see a direct material reference while coding. Other than that, I don't see much use for it. Multiple virtual desktops do a much better job of isolating responsibilities. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually use 4:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;one for a web browser&lt;/li&gt;&#xA;&lt;li&gt;one for revision control stuff&lt;/li&gt;&#xA;&lt;li&gt;one for the IDE&lt;/li&gt;&#xA;&lt;li&gt;one for unit testing&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I also make it easy to switch by assigning the super+left and super+right to cycle between the desktops. Only having what your working on on the screen at any given time makes it much easier to stay focused on the task at hand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The extra monitors just serve to take up valuable desktop space that I'd rather use sketching notes down on paper. It's amazing how much easier ideas can flow on paper. &lt;/p&gt;&#xA;" OwnerUserId="1256" LastActivityDate="2010-09-11T22:08:22.377" CommunityOwnedDate="2011-01-27T05:21:04.337" CommentCount="11" />
  <row Id="2919" PostTypeId="2" ParentId="966" CreationDate="2010-09-11T22:08:59.770" Score="11" ViewCount="" Body="&lt;p&gt;Zen and the Art of Motorcycle Maintenance&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Robert Pirsig&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It teach us how to do right maintenance on software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/5q0oN.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-24T18:14:13.743" LastActivityDate="2010-09-24T18:14:13.743" CommunityOwnedDate="2011-01-06T15:42:27.030" CommentCount="4" />
  <row Id="2920" PostTypeId="2" ParentId="2757" CreationDate="2010-09-11T22:09:55.620" Score="0" ViewCount="" Body="&lt;p&gt;I use dual 24&quot; widescreen monitors, and the actual usage of the monitors will vary from day-to-day project to project, but some examples are.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Visual Studio on the left - Project specifications on the right&lt;/li&gt;&#xA;&lt;li&gt;Visual Studio on the left - Code diff file on the right (Figuring out where something went wrong)&lt;/li&gt;&#xA;&lt;li&gt;Application on the right - Word on the left and SnagIt sitting waiting (For documentation)&lt;/li&gt;&#xA;&lt;li&gt;Application on the left - Test case on the right for testing&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Otherwise I will also use my second monitor as a digital notepad, with a small todo list or other item.  I find that I spend less time writing notes on my desk etc, when using multiple monitors.&lt;/p&gt;&#xA;" OwnerUserId="1340" LastActivityDate="2010-09-11T22:09:55.620" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="2921" PostTypeId="2" ParentId="2731" CreationDate="2010-09-11T22:12:58.413" Score="1" ViewCount="" Body="&lt;p&gt;For me the most founded bias is one at my current job, &quot;C# people just cause problems and look down upon all other programmers as being ineffective&quot;. Or something like that.  This is coming from a shop that has been primarily VB6 -&gt; VB.NET with a little C# sprinkled in.  It was amazing when they found out that I'm a C# MVP and only write VB.NET when I'm there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall, I guess the whole VB.NET/C# Language war is one of the most outrageous ones as well.&lt;/p&gt;&#xA;" OwnerUserId="1340" LastActivityDate="2010-09-11T22:12:58.413" CommentCount="1" />
  <row Id="2922" PostTypeId="2" ParentId="2757" CreationDate="2010-09-11T22:13:27.523" Score="2" ViewCount="" Body="&lt;p&gt;I use dual 19&quot; LCDs, one has code on it and the other is used for documentation and long-running programs. For short-running programs, I use &lt;a href=&quot;http://tilda.sourceforge.net/wiki/index.php/Main_Page&quot; rel=&quot;nofollow&quot;&gt;Tilda&lt;/a&gt; on my primary monitor. &lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-11T22:13:27.523" CommunityOwnedDate="2011-01-26T13:55:26.910" CommentCount="1" />
  <row Id="2923" PostTypeId="2" ParentId="1386" CreationDate="2010-09-11T22:16:25.017" Score="1" ViewCount="" Body="&lt;p&gt;Metaphors&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of times, I don't describe it as a program at all, I try to represent it as a completely different concept with similar interrelationships.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It makes visualizing the program a lot more interesting and sometimes it helps me look at it in a new light.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't describe electricity to someone who has never worked with it before by talking about current and voltages do you? Plus, it's fun to describe some concepts as if some ultra aware computer process makes them happen as if by means of magic. A little story imagination doesn't hurt them as the reality of how cold and rational computers really are.&lt;/p&gt;&#xA;" OwnerUserId="1256" LastActivityDate="2010-09-11T22:16:25.017" />
  <row Id="2924" PostTypeId="2" ParentId="966" CreationDate="2010-09-11T22:16:52.510" Score="1" ViewCount="" Body="&lt;p&gt;Math Refresher for Scientists and Engineers&lt;/p&gt;&#xA;&#xA;&lt;p&gt;John R. Fanchi &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/ht5Mq.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-11T22:16:52.510" CommunityOwnedDate="2011-01-06T15:42:27.030" />
  <row Id="2925" PostTypeId="2" ParentId="2846" CreationDate="2010-09-11T22:17:12.947" Score="40" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/COBOL&quot; rel=&quot;nofollow&quot;&gt;COBOL&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Had to learn it in college, I'm still having nightmares about it. We had to write a backend in COBOL then make a web frontend that only worked in IE6.&lt;/p&gt;&#xA;" OwnerUserId="1341" LastActivityDate="2010-09-11T22:17:12.947" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="9" />
  <row Id="2926" PostTypeId="2" ParentId="2682" CreationDate="2010-09-11T22:20:00.180" Score="3" ViewCount="" Body="&lt;p&gt;Personally I think that the best example of this is the way that companies such as Telerik and others do their licensing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You pay for the license, you get the source code, and it is for your use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you make it under a method where it can be available for opensource/non-commercial use free, with source, I think it will be hard for you to get people to come forward and pay for it.&lt;/p&gt;&#xA;" OwnerUserId="1340" LastActivityDate="2010-09-11T22:20:00.180" />
  <row Id="2928" PostTypeId="2" ParentId="1482" CreationDate="2010-09-11T22:39:09.637" Score="2" ViewCount="" Body="&lt;p&gt;T-SQL's &lt;code&gt;RAISERROR&lt;/code&gt;. I realize the dropped &quot;E&quot; is probably intentional, but still.&lt;/p&gt;&#xA;" OwnerUserId="977" LastActivityDate="2010-09-11T22:39:09.637" CommunityOwnedDate="2011-02-01T20:08:55.700" CommentCount="1" />
  <row Id="2929" PostTypeId="2" ParentId="94" CreationDate="2010-09-11T22:50:52.187" Score="3" ViewCount="" Body="&lt;p&gt;Ask their take on an important architectural decision&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example. Here is program x that runs y number of subtasks concurrently. Which would you choose, a multi-process or threading structure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the benefits/disadvantages of both. How well would they work and how could they be used to leverage a multi-core, multi-processor platform, what is your personal preference? Personal biases can aid in identifying whether they've ever had to actually apply the knowledge and give them a jump point to share their experiences?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are tons of questions an interviewer could come up with like these:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;TCP or UDP?&lt;/li&gt;&#xA;&lt;li&gt;Dynamic or Statically typed language?&lt;/li&gt;&#xA;&lt;li&gt;Monolithic application or multiple smaller applications?&lt;/li&gt;&#xA;&lt;li&gt;What would you use for Interprocess Communication?&lt;/li&gt;&#xA;&lt;li&gt;Stored Procedures or ORM?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Most of these topics are the types that involve an intimate knowledge of how/why a computer system works the way it does. They all are issues/solutions to problems that have no definite answer so they give a sense of how well that person is able to adapt or overcome the challenges at hand. Not the type of concepts that can be easily picked up without some actual hands on experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: Having the applicant write some pesudo code is a must too but that answer is already taken.&lt;/p&gt;&#xA;" OwnerUserId="1256" LastActivityDate="2010-09-11T22:50:52.187" CommentCount="1" />
  <row Id="2930" PostTypeId="2" ParentId="2591" CreationDate="2010-09-11T22:52:14.940" Score="2" ViewCount="" Body="&lt;p&gt;My personal favorite: &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000339.html&quot; rel=&quot;nofollow&quot;&gt;Fire and Motion&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;Blockquote&gt;When I was an Israeli paratrooper a general stopped by to give us a little speech about strategy. In infantry battles, he told us, there is only one strategy: Fire and Motion. You move towards the enemy while firing your weapon. The firing forces him to keep his head down so he can't fire at you. ... The motion allows you to conquer territory and get closer to your enemy, where your shots are much more likely to hit their target. If you're not moving, the enemy gets to decide what happens, which is not a good thing. If you're not firing, the enemy will fire at you, pinning you down.&lt;/Blockquote&gt;&lt;/p&gt;&#xA;" OwnerUserId="1342" LastEditorUserId="1342" LastEditorDisplayName="" LastEditDate="2010-10-03T02:21:10.293" LastActivityDate="2010-10-03T02:21:10.293" CommentCount="2" />
  <row Id="2931" PostTypeId="2" ParentId="1482" CreationDate="2010-09-11T22:53:40.920" Score="1" ViewCount="" Body="&lt;p&gt;Not a programming issue so much as a typing issue in general, but for whatever reason, my muscle memory seems incapable of ending a word in &quot;er&quot; without tacking another E on the end.  The strange thing is, I have no clue where I picked that up.  There aren't that many words in English that end in -ere.  (I know it's very common in Latin, but I don't speak Latin and I definitely don't &lt;em&gt;type&lt;/em&gt; Latin!)&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-11T22:53:40.920" CommunityOwnedDate="2011-02-01T20:08:55.700" CommentCount="1" />
  <row Id="2932" PostTypeId="1" CreationDate="2010-09-11T22:58:16.057" Score="5" ViewCount="267" Body="&lt;p&gt;When I say Free Software I mean it in the FSF terms. Free as in Free Speech, not as in Free Beer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why is it a good idea for programmers to use &lt;em&gt;and&lt;/em&gt; write Free Software?&lt;/p&gt;&#xA;" OwnerUserId="1346" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2010-09-11T23:06:23.420" LastActivityDate="2010-09-12T03:28:18.470" Title="Why is free software good for programmers?" Tags="&lt;software&gt;&lt;freedom&gt;&lt;ideology&gt;&lt;economics&gt;" AnswerCount="3" CommentCount="4" />
  <row Id="2933" PostTypeId="2" ParentId="1913" CreationDate="2010-09-11T23:07:08.113" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef&quot; rel=&quot;nofollow&quot;&gt;Visual Studio 2010 Productivity Power Tools&lt;/a&gt; is a must have for me with VS10. &lt;/p&gt;&#xA;" OwnerUserId="1345" LastActivityDate="2010-09-11T23:07:08.113" CommunityOwnedDate="2010-09-11T23:07:08.113" />
  <row Id="2934" PostTypeId="2" ParentId="2932" CreationDate="2010-09-11T23:13:40.893" Score="7" ViewCount="" Body="&lt;p&gt;There are literally scores of different reasons why someone might choose to distribute Free software: that's why there are scores of different F/OSS licenses. My favorite reason for going Free is from Linus Torvalds on &lt;a href=&quot;http://www.informationweek.com/news/software/linux/showArticle.jhtml?articleID=198002077&quot; rel=&quot;nofollow&quot;&gt;why he chose and sticks with GPLv2&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Me, I just don't care about proprietary software. It's not &quot;evil&quot; or &quot;immoral,&quot; it just doesn't matter. I think that Open Source can do better, and I'm willing to put my money where my mouth is by working on Open Source, but it's not a crusade -- it's just a superior way of working together and generating code.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;It's superior because it's a lot more fun and because it makes cooperation much easier (no silly NDA's or artificial barriers to innovation like in a proprietary setting), and I think Open Source is the right thing to do the same way I believe science is better than alchemy. Like science, Open Source allows people to build on a solid base of previous knowledge, without some silly hiding.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;But I don't think you need to think that alchemy is &quot;evil.&quot; It's just pointless because you can obviously never do as well in a closed environment as you can with open scientific methods.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This goes to Eric S. Raymond's &lt;a href=&quot;http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s04.html&quot; rel=&quot;nofollow&quot;&gt;Linus's Law&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Or, less formally, &quot;Given enough eyeballs, all bugs are shallow.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-11T23:13:40.893" CommentCount="2" />
  <row Id="2935" PostTypeId="1" CreationDate="2010-09-11T23:15:26.183" Score="17" ViewCount="891" Body="&lt;p&gt;Tell how you figured out about the profession and how you realized that this job was made for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What were your intentions? What you expected achieve working on this area? Who or what influenced you to get in?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fell free to write what you think that is a good story. Tell your experience.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-26T16:26:00.893" LastActivityDate="2010-11-26T19:58:10.583" Title="Why did you choose programming/development as your profession?" Tags="&lt;career&gt;&lt;skills&gt;&lt;profession&gt;&lt;early-days&gt;" AnswerCount="20" CommentCount="1" FavoriteCount="6" />
  <row Id="2936" PostTypeId="2" ParentId="2935" CreationDate="2010-09-11T23:19:53.643" Score="4" ViewCount="" Body="&lt;p&gt;I really, &lt;strong&gt;really&lt;/strong&gt; enjoy crafting something new. I come in in the morning, start working on a spec or just a random idea, and by the afternoon it's working as I expected.  I built that!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I programmed since I was a kid, BASIC and the whole nine, but I didn't really feel the urge until I was in college and started working on real machines, what counted as big iron at the time (mostly DEC Utrix and HP-UX minis, ridiculously overloaded with students). That made my work feel more real, professional, and useful. I thought, well, I enjoy doing this, let's make my hobby my profession.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I were more mechanically inclined or raised, I might have a machine shop in my garage and build bespoke parts in a lathe, rather than hunting them down at Home Depot.&lt;/p&gt;&#xA;" OwnerUserId="977" LastEditorUserId="977" LastEditorDisplayName="" LastEditDate="2010-09-11T23:25:27.283" LastActivityDate="2010-09-11T23:25:27.283" />
  <row Id="2937" PostTypeId="2" ParentId="2935" CreationDate="2010-09-11T23:22:32.883" Score="7" ViewCount="" Body="&lt;p&gt;I chose programming because it offers an unequaled control over what I'm creating.  With art, architecture, business, music, etc, there's some number of uncontrollable elements between you and what you're creating.  With software development, what I tell the computer to do is what it does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That control means that when something breaks, it's unarguably my fault.  It also means that I can definitely fix it.  That's the sort of control you don't get anywhere outside of the theoretical.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-11T23:22:32.883" CommentCount="1" />
  <row Id="2938" PostTypeId="2" ParentId="2935" CreationDate="2010-09-11T23:22:59.503" Score="27" ViewCount="" Body="&lt;p&gt;I really didn't choose programming/development: it chose me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started programming when I was very young because I wanted to do things with my computer that I didn't have the software for either because I couldn't afford it or the software didn't exist yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That eventually matured into a desire to &quot;fix&quot; existing software to fit my exact use-case rather than me trying to figure out how to adapt myself to the software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I became a teenager and went to college, I wanted to do everything possible to avoid going into programmer or anything related to computers: as many people who like computers, I was constantly plagued by a fear that people only saw me as &quot;that guy I can ask about my computer problems&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, when I went to college, I studied philosophy and physics, which were new and exciting to me. I eventually dropped physics, but I stuck with philosophy. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my studies, I got into philosophy of mind and philosophy of language, which leads right into cognitive science and artificial intelligence. I also picked up a part-time job as a computer technician and eventually a helpdesk manager.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I left college, I became a systems administrator and IT manager for a small firm, and as that firm's priorities changed, I found myself more and more getting back into development and I'm back to where I was when I was a kid, but now I'm content with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I had to put a moral to my story, it's &quot;you can't run from who you are: eventually it'll find you.&quot;&lt;/p&gt;&#xA;" OwnerUserId="8" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-15T08:25:01.043" LastActivityDate="2010-09-15T08:25:01.043" CommentCount="3" />
  <row Id="2942" PostTypeId="2" ParentId="2935" CreationDate="2010-09-11T23:57:02.533" Score="3" ViewCount="" Body="&lt;p&gt;I like the process of programming. Of all the classes I took in engineering, the programming courses were the easiest to grind through (just zoned out and 8 hours later hopefully emerge with an assignment done).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once I graduated I fell into contract work doing small .net apps for various industrial control stuff. It was easy and pretty decent money. Now (2 years later) I run a company doing the same thing (more embedded stuff) and still program about 50% of the time. I prefer the business side now. But programming is still something I like regardless of the rewards.&lt;/p&gt;&#xA;" OwnerUserId="1330" LastActivityDate="2010-09-11T23:57:02.533" />
  <row Id="2943" PostTypeId="2" ParentId="2846" CreationDate="2010-09-12T00:11:50.183" Score="29" ViewCount="" Body="&lt;h2&gt;AppleScript&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;While AS is usually referred to as having an &quot;English-like syntax,&quot; I tend to describe it as &quot;almost—but not quite—entirely unlike English.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the real reason I find it a PITA is that there isn't really an &quot;AppleScript&quot; language as such. Instead, there's AppleScript for the Finder, AppleScript for iTunes, AppleScript for Safari, AppleScript for whatever you're trying to script today—and all of them are slightly different, in ways that come back to bite you.&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-09-12T00:11:50.183" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="5" />
  <row Id="2944" PostTypeId="2" ParentId="2699" CreationDate="2010-09-12T00:12:18.520" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The networking data race condition from hell&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was writing a networking client/server (Windows XP/C#) to work with a similar application on a really old (Encore 32/77) workstation written by another developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What the application did essentially was share/manipulate certain data on the host to control the host process running the system with our fancy PC based multi-monitor touchscreen UI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It did this with a 3 layered structure. The communications process read/wrote data to/from the host, did all of the necessary format conversions (endianness, floating point format, etc) and wrote/read the values to/from a database. The database acted as a data intermediary between the comms and touchscreen UIs. The touchscreen UI's app generated touch screen interfaces based on how many monitors were attached to the PC (it automatically detected this).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the time frame given a packet of values between the host and our pc could only send 128 values max across the wire at a time with a max latency of ~110ms per round trip (UDP was used with a direct x-over ethernet connection between the computers). So, the number of variables allowed based on the variable number of attached touchscreens was under strict control. Also, the host (although having a pretty complex multi-processor architecture with shared memory bus used for real time computing) had about 1/100th the processing power of my cell phone so it was tasked to do as little processing as possible and it's server/client had to be written in assembly to assure this (the host was running a full real time simulation that couldn't be affected by our program).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The issue was. Some values, when changed on the touchscreen wouldn't take just the newly entered value but would cycle randomly between that value and the previous value. That and only on a few specific values on a few specific pages with a certain combination of pages ever exhibited the symptom. We almost missed the issue completely until we started running it through the initial customer acceptance process&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;To pin down the issue I picked one of the oscillating values:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I checked the Touchscreen app, it was oscillating&lt;/li&gt;&#xA;&lt;li&gt;I checked the database, oscillating&lt;/li&gt;&#xA;&lt;li&gt;I checked the comms app, oscillating&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Then I broke out wireshark and started manually decoding packet captures. Result:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Not oscillating but the packets didn't look right, there was too much data.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I stepped through every detail of the comms code a hundred times finding no flaw/error.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally I started firing off emails to the other dev asking in detail how his end worked to see if there was something I was missing. Then I found it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apparently, when he sent data he didn't flush the array of data before transmission so, essentially, he was just overwriting the last buffer used with the new values overwriting the old, but the old values not overwritten still being transmitted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, if a value was at position 80 of the data array and the list of values requested changed to less than 80 but that same value was contained within the new list, then both values would exist in the data buffer for that specific buffer at any given time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The value being read from the database depended on the time slice of when the UI was requesting the value.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;The fix was painfully simple. Read in the number of items incoming on the data buffer (It was actually contained as part of the packet protocol) and don't read the buffer beyond that number of items.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Lessons learned:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't take modern computing power for granted. There was a time when computers didn't support ethernet and when flushing an array could be considered expensive. If you really want to see how far we've come, imagine a system that has virtually no form of dynamic memory allocation. IE, the executive process had to pre-allocate all of the memory for all of the programs in order and no program could grow beyond that boundary. IE, allocating more memory to a program without recompiling the whole system could cause a massive crash. I wonder if people will talk about the pre-garbage collection days in the same light someday.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When doing networking with custom protocols (or handling binary data representation in general) make sure you read the spec until you understand every function of every value being sent across the pipe. I mean, read it until your eyes hurt. People handle data by manipulating individual bits or bytes have very clever and efficient ways of doing things. Missing the tiniest detail could break the system.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The overall time to fix was 2-3 days with most of that time spent working on other things when I got to frustrated with this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SideNote: The host computer in question didn't support ethernet by default. The card to drive it was custom made and retrofitted and the protocol stack virtually didn't exist. The developer I was working with was one hell of a programmer, he not only implemented a stripped down version of UDP and a mimimal fake ethernet stack (the processor wasn't powerful enough to handle a full ethernet stack) on the system for this project but he did it in less than a week. He had also been one of the original project team leaders who had designed and programmed the OS in the first place. Lets just say, anything he ever had to share about computers/programming/architecture no matter how long winded or how much I already new, I'd listen to every word. There is nothing more valuable than working with good people who have a genuine passion for what they do.&lt;/p&gt;&#xA;" OwnerUserId="1256" LastActivityDate="2010-09-12T00:12:18.520" />
  <row Id="2945" PostTypeId="2" ParentId="696" CreationDate="2010-09-12T00:24:03.950" Score="0" ViewCount="" Body="&lt;p&gt;The good:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Huge community&lt;/li&gt;&#xA;&lt;li&gt;Documentation with comments/examples from users at the bottom are IMHO, hands down, the best form of documentation.&lt;/li&gt;&#xA;&lt;li&gt;Widespread support across servers&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The bad:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Bracketing style is obnoxious&lt;/li&gt;&#xA;&lt;li&gt;Lack of consistency across the language&lt;/li&gt;&#xA;&lt;li&gt;The mega namespace containing all of the functions of the language&lt;/li&gt;&#xA;&lt;li&gt;Sucky namespace support&lt;/li&gt;&#xA;&lt;li&gt;The syntax is some strange bastard child of bash scripting and c&lt;/li&gt;&#xA;&lt;li&gt;Python hasn't replaced it as the de-facto apache server-side programming language&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1256" LastActivityDate="2010-09-12T00:24:03.950" />
  <row Id="2946" PostTypeId="2" ParentId="2846" CreationDate="2010-09-12T00:27:15.370" Score="1" ViewCount="" Body="&lt;h2&gt;Visual Basic&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I started leaning programming using Visual Basic, and, as anyone who's used it should know, it's hardly worthy to be considered a programming language.&lt;/p&gt;&#xA;" OwnerUserId="1355" LastEditorUserId="1355" LastEditorDisplayName="" LastEditDate="2010-09-12T00:35:51.730" LastActivityDate="2010-09-12T00:35:51.730" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="2" />
  <row Id="2948" PostTypeId="1" AcceptedAnswerId="2954" CreationDate="2010-09-12T00:40:44.263" Score="21" ViewCount="948" Body="&lt;p&gt;How valuable (or not) do you think &lt;a href=&quot;http://en.wikipedia.org/wiki/Stand-up_meeting&quot; rel=&quot;nofollow&quot;&gt;daily stand-up meetings&lt;/a&gt; are?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're not familiar with it, this refers to a daily meeting often pushed by Scrum adherents (and some other general agile proponents).  The idea is that you hold a daily meeting, timeboxed to 15 minutes, and in which everyone must stand (to encourage people to be to-the-point).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the meeting, you go around the room and each say:&#xA;- What you did yesterday&#xA;- What you plan to do today&#xA;- Any blockers or impediments to your progress.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you think this practice has value?  Has anyone worked at a place that's done it, and what did you think?&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-23T21:27:00.397" LastActivityDate="2011-02-21T12:00:29.490" CommunityOwnedDate="2011-02-21T11:56:32.877" Title="Daily standups- yea or nay?" Tags="&lt;agile&gt;&lt;scrum&gt;&lt;meetings&gt;&lt;development-methodologies&gt;" AnswerCount="16" CommentCount="1" FavoriteCount="2" />
  <row Id="2949" PostTypeId="2" ParentId="750" CreationDate="2010-09-12T00:43:47.523" Score="0" ViewCount="" Body="&lt;p&gt;Take a look at &lt;a href=&quot;http://weblogs.asp.net/rosherove/&quot; rel=&quot;nofollow&quot;&gt;Roy Osherove's Blog&lt;/a&gt;. There is plenty of information on unit testing there including videos. He has also written a book, &quot;The art of Unit Testing&quot; which is very good.&lt;/p&gt;&#xA;" OwnerUserId="1116" LastActivityDate="2010-09-12T00:43:47.523" />
  <row Id="2950" PostTypeId="2" ParentId="724" CreationDate="2010-09-12T00:48:21.070" Score="6" ViewCount="" Body="&lt;p&gt;Unions in C&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't honestly say that I haven't written enough C to make any of these myself but I have worked with other's code that does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When it comes down to packaging mixtures of different data in applications that manipulate raw bits/bytes such as networking or binary data storage. In strongly typed languages theres just no easy way to do the equivalent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although Unions are extremely useful in some cases, they aren't found in most higher level languages because they aren't type safe. IE, you can make data bleed across boundaries of variables using unions (a big no no in the type safe world). With great power comes great responsibility.&lt;/p&gt;&#xA;" OwnerUserId="1256" LastEditorUserId="1256" LastEditorDisplayName="" LastEditDate="2010-09-12T10:43:48.547" LastActivityDate="2010-09-12T10:43:48.547" CommentCount="4" />
  <row Id="2951" PostTypeId="2" ParentId="2846" CreationDate="2010-09-12T00:49:41.207" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/X86_assembly&quot; rel=&quot;nofollow&quot;&gt;x86 assembly language&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Especially back in the DOS days.  I never &quot;got&quot; software interrupts as a way of programming plus the segment:offset notation was not intuitive (thank you Win32 flat address space for releasing us from that special hell) and I STILL don't dig on specialized registers.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-09-12T00:49:41.207" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="9" />
  <row Id="2952" PostTypeId="2" ParentId="940" CreationDate="2010-09-12T00:50:11.673" Score="14" ViewCount="" Body="&lt;p&gt;I don't have a single &quot;best&quot; version control system, but rather a single best VCS paradigm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have used multiple different centralized version control systems and multiple different distributed version control systems. And I can say without hesitation that noone should ever inflict a CVCS upon themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't care &lt;em&gt;which&lt;/em&gt; DVCS you choose (my particular favorite is Git), but please do yourself a favor and use a DVCS. For one: you will be much more flexible. DVCSs can trivially emulate a CVCS workflow (just never fork the repository, and treat your local repositories only as a chache instead of an independent fork), whereas the converse is impossible. And while logically, doing this emulation &lt;em&gt;should&lt;/em&gt; carry some overhead (and indeed it does), I &lt;em&gt;still&lt;/em&gt; find it easier to use (not to mention much more performant due to the local caching) than any of the CVCSs I have used.&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-09-12T00:50:11.673" CommunityOwnedDate="2011-03-07T21:04:52.237" CommentCount="1" />
  <row Id="2953" PostTypeId="2" ParentId="940" CreationDate="2010-09-12T00:53:02.260" Score="10" ViewCount="" Body="&lt;p&gt;For distributed version control, I prefer Mercurial. For centralized version control, I'd go with Subversion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Choosing between distributed and centralized depends on the usage of the system. If you have a small number of developers who have regular access to the repository (aren't going off-line for extended periods of time), I'd go with centralized (and therefore SVN). However, if I have a lot of developers who are working at all different hours (a globally distributed team) or who might not have regular network connection to the repository, I'd go with Mercurial, so they can continue to develop and maintain a version history without stomping all over each other and worrying about merging with every checkin.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-12T00:53:02.260" CommunityOwnedDate="2011-03-07T21:04:52.237" CommentCount="3" />
  <row Id="2954" PostTypeId="2" ParentId="2948" CreationDate="2010-09-12T00:56:39.723" Score="20" ViewCount="" Body="&lt;p&gt;We had daily standups at my first job. Well, with all the co-ops/interns/temps, it was actually on the long side - usually around 30 minutes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the idea of a short, timeboxed, daily meeting helped a lot just to know what other people were stuck on - and if it was something I was working on, I could reprioritize my tasks to finish what they needed to continue sooner. It also gave everyone a chance to know what everyone was working on so if someone had an emergency, everyone was at least aware of what was going on - reducing a truck factor is always a good thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, every day might be a little extreme in some cases. But the idea of short, regular meetings for everyone to stay on the same page is a valuable addition to any process.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-12T00:56:39.723" CommunityOwnedDate="2011-02-21T11:56:32.877" CommentCount="9" />
  <row Id="2955" PostTypeId="2" ParentId="2757" CreationDate="2010-09-12T00:59:00.357" Score="1" ViewCount="" Body="&lt;p&gt;2x19'' LCDs @ 1280x1024:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;IDE + documentation/email/browser&lt;/li&gt;&#xA;&lt;li&gt;IDE + debug window/stacktrace/variables&lt;/li&gt;&#xA;&lt;li&gt;2 browser windows or 2 IDE windows for comparison/visual checks&lt;/li&gt;&#xA;&lt;li&gt;browser + firebug/wireshark&lt;/li&gt;&#xA;&lt;li&gt;diff 2 files, one in each. Sometimes the horizontal whitespace makes it easier on the eyes&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Apart from system folders all programs are run fullscreen. I alt-tab alot but mostly for switching focus between the 2 screens. I've found that I work much faster now that I don't context-shift that much. Letting my eyes follow the focus switch between the 2 monitors makes it much easier to &lt;em&gt;get into&lt;/em&gt; whatever the switch to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, &lt;a href=&quot;http://interfacelift.com/wallpaper_beta/downloads/downloads/2_screens/&quot; rel=&quot;nofollow&quot;&gt;2560x1024 wallpapers&lt;/a&gt; look kick-ass :)&lt;/p&gt;&#xA;" OwnerUserId="1358" LastActivityDate="2010-09-12T00:59:00.357" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="2956" PostTypeId="2" ParentId="2319" CreationDate="2010-09-12T01:10:24.200" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://ec.europa.eu/eures/home.jsp?lang=en&quot; rel=&quot;nofollow&quot;&gt;http://ec.europa.eu/eures/home.jsp?lang=en&lt;/a&gt; for jobs inside the EU (not &lt;em&gt;for&lt;/em&gt; the EU)&lt;/p&gt;&#xA;" OwnerUserId="1358" LastActivityDate="2010-09-12T01:10:24.200" CommunityOwnedDate="2010-09-12T01:10:24.200" />
  <row Id="2957" PostTypeId="2" ParentId="2935" CreationDate="2010-09-12T01:13:48.357" Score="3" ViewCount="" Body="&lt;p&gt;Somethings were just meant to be! It's like this, the heart knows when it finds what it loves. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's what happened to me, it wasn't a choice or a well thought out decision, I became involved in working on software projects and learned things and keep on learning and finding myself in all of this :) Amazing experience so far, I tell you!&lt;/p&gt;&#xA;" OwnerUserId="1345" LastActivityDate="2010-09-12T01:13:48.357" />
  <row Id="2958" PostTypeId="2" ParentId="565" CreationDate="2010-09-12T01:17:57.537" Score="15" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;Teach Yourself Programming in Ten Years&lt;/a&gt; is one of the best articles against marketing over the real product. There aren't miracle to learn programming and anyone that tell you to  learn on 21 days any language or technology is a liar. The best way to learn something with consistency is learn slowly, one step a time, going deep.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-30T02:34:40.313" LastActivityDate="2010-09-30T02:34:40.313" />
  <row Id="2959" PostTypeId="1" AcceptedAnswerId="2960" CreationDate="2010-09-12T01:30:41.810" Score="13" ViewCount="247" Body="&lt;p&gt;One of the criteria of the &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;Joel Test&lt;/a&gt; is daily builds. The idea is that if the build is broken, whoever broke it is around to fix it up. If the build cannot be fixed, everyone will have to check out an old version and work on that. I can understand how this can be pretty bad on centralised version control where it is important to avoid merging and branching as much as possible, but this only sounds like a minor nuisance for distributed version control. Do you agree with this? Are there other reasons why daily builds are important?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="64" LastEditorDisplayName="" LastEditDate="2010-09-12T18:18:54.790" LastActivityDate="2010-09-12T18:18:54.790" Title="How important are daily builds?" Tags="&lt;joel-test&gt;&lt;version-control&gt;&lt;builds&gt;" AnswerCount="3" />
  <row Id="2960" PostTypeId="2" ParentId="2959" CreationDate="2010-09-12T01:38:45.037" Score="11" ViewCount="" Body="&lt;p&gt;I think what's important to note here is that &lt;em&gt;regular&lt;/em&gt; builds help &lt;strong&gt;catch errors sooner rather than later&lt;/strong&gt;. It doesn't &lt;em&gt;have&lt;/em&gt; to be daily, but often enough. Ideally, it can also run your unit tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The goal is to find out when a build breaks before the final testing phase, to find them as soon as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just set it up to build your main development branch(es).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We use it at work (although we build hourly), and often when we forget to set-it up we find about problems just hours before releasing.&lt;/p&gt;&#xA;" OwnerUserId="220" LastActivityDate="2010-09-12T01:38:45.037" />
  <row Id="2961" PostTypeId="2" ParentId="886" CreationDate="2010-09-12T01:52:10.557" Score="2" ViewCount="" Body="&lt;p&gt;Extreme Sports&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether it be snowboarding, skiing, wakeboarding, snowmobiling, riding my crotch rocket. If it possess enough speed/danger/excitement I'm in. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do something crazy, like jump off a cliff, or accelerate from 1-6 gears at 13k RPM, and it makes you giggle madly like a little kid hopped up on too much sugar, you're doing it right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, most programmers I have met in person aren't exactly the type to seek danger and risk health for the sake of excitement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sad to admit it but I don't think the &lt;a href=&quot;http://area51.stackexchange.com/proposals/6427/extreme-sports&quot;&gt;Extreme Sports&lt;/a&gt; Stack Exchange site will ever make it off the ground.&lt;/p&gt;&#xA;" OwnerUserId="1256" LastActivityDate="2010-09-12T01:52:10.557" CommentCount="1" />
  <row Id="2962" PostTypeId="2" ParentId="2932" CreationDate="2010-09-12T01:55:03.650" Score="1" ViewCount="" Body="&lt;p&gt;I think that &lt;em&gt;open source&lt;/em&gt; is good for programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With open source a programmer can learn from the work of other programmers and have a better debugging session (e.g if the library/framework/API is open source).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only additional benefit of &lt;em&gt;free software&lt;/em&gt; for a programmer is the reuse of existing code, but this benefit is not actually for the programmer, but for the programmers' company.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-12T01:55:03.650" CommentCount="1" />
  <row Id="2963" PostTypeId="2" ParentId="2757" CreationDate="2010-09-12T02:01:44.090" Score="0" ViewCount="" Body="&lt;p&gt;Unfortunately I work on a laptop (at least with 1680x1050 resolution) and I have a side 4:3 monitor in portrait (vertical) mode with putty on the serial output of the device I'm targeting.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-12T02:01:44.090" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="2964" PostTypeId="2" ParentId="681" CreationDate="2010-09-12T02:07:24.467" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Applescript&quot; rel=&quot;nofollow&quot;&gt;AppleScript&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example (from Wikipedia):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;display alert &quot;Hello World!&quot; buttons {&quot;Rudely decline&quot;, &quot;Happily accept&quot;}&#xA;set theAnswer to button returned of the result&#xA;if theAnswer is &quot;Happily accept&quot; then&#xA;    beep 5&#xA;else&#xA;    say &quot;Piffle!&quot;&#xA;end if&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I can't think of any language closer to pseudocode than that.&lt;/p&gt;&#xA;" OwnerUserId="1303" LastActivityDate="2010-09-12T02:07:24.467" />
  <row Id="2965" PostTypeId="2" ParentId="2757" CreationDate="2010-09-12T02:25:10.083" Score="0" ViewCount="" Body="&lt;p&gt;3x 22in LCD's 5040x1050&#xA;that is the pinicle of productivity,  2 monitors is nice but 3 is great just to have the extra screen for whatever.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually have documentation on the left, IDE in the center.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The right monitor (or if my mood permits the left) I usually reserved for extra stuff. Extra  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;IDE window  &lt;/li&gt;&#xA;&lt;li&gt;media player  &lt;/li&gt;&#xA;&lt;li&gt;more documentation  &lt;/li&gt;&#xA;&lt;li&gt;pretty rotating pictures  &lt;/li&gt;&#xA;&lt;li&gt;if I have to quickly switch tasks temperarily I'll do it on that one opposed to messing up what I have going on the other 2.  &lt;/li&gt;&#xA;&lt;li&gt;conversations with coworkers&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-09-12T02:25:10.083" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="2966" PostTypeId="2" ParentId="2846" CreationDate="2010-09-12T02:53:15.093" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Prolog&quot; rel=&quot;nofollow&quot; title=&quot;Prolog&quot;&gt;&lt;h1&gt;Prolog&lt;/h1&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had to learn it for a CS course that I ended up failing. Good thing I'm an EE and didn't have to retake it. Just dropped my CS minor =P&lt;/p&gt;&#xA;" OwnerUserId="1369" LastActivityDate="2010-09-12T02:53:15.093" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="6" />
  <row Id="2967" PostTypeId="2" ParentId="2815" CreationDate="2010-09-12T03:01:03.573" Score="3" ViewCount="" Body="&lt;p&gt;Provide a macro system similar to Python's decorators, or maybe just make attributes more powerful. Using dynamic proxies or IL rewriting for simple AOP features like tracing or transactions is just overkill.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastActivityDate="2010-09-12T03:01:03.573" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="3" />
  <row Id="2968" PostTypeId="2" ParentId="2909" CreationDate="2010-09-12T03:05:31.270" Score="3" ViewCount="" Body="&lt;p&gt;I've had a few instances over the years. Based on visits with doctors and other research, I've settled on the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a good keyboard (I use a kinesis, expensive but worth every penny )&lt;/li&gt;&#xA;&lt;li&gt;a good chair (my leap rules)&lt;/li&gt;&#xA;&lt;li&gt;avoid using the mouse. On days when I spend more time surfing the web than coding I definitely notice a big difference.&lt;/li&gt;&#xA;&lt;li&gt;stretching 3 times a day. Focusing on hands, arms and back.&lt;/li&gt;&#xA;&lt;li&gt;I occasionally wear a brace to bed, apparently I sometimes curl my hands and wrists under me when I sleep which certainly doesn't help.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;RSI is certainly something you want to catch early.   &lt;/p&gt;&#xA;" OwnerUserId="940" LastActivityDate="2010-09-12T03:05:31.270" CommentCount="2" />
  <row Id="2969" PostTypeId="2" ParentId="2815" CreationDate="2010-09-12T03:08:27.997" Score="13" ViewCount="" Body="&lt;p&gt;Better support for type safety when dealing with reflection. As it is right now, I have to look things up using strings. Some libraries that use a lot of reflection, like Fluent NHibernate, solve this problem using expression trees, but it really shouldn't be necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why are my options things like:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;foo(typeof(Bar).GetProperty(&quot;PropA&quot;))&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;foo&amp;lt;Bar&amp;gt;(x =&amp;gt; x.PropA)&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why not just:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;foo(typeof(Bar.PropA))&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where &lt;code&gt;typeof&lt;/code&gt; returns not a &lt;code&gt;System.Type&lt;/code&gt; instance, but also &lt;code&gt;MethodInfo&lt;/code&gt; or &lt;code&gt;PropertyInfo&lt;/code&gt; depending on how it's used.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastActivityDate="2010-09-12T03:08:27.997" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="3" />
  <row Id="2970" PostTypeId="2" ParentId="2715" CreationDate="2010-09-12T03:10:55.847" Score="43" ViewCount="" Body="&lt;p&gt;You should never do the 3rd method. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Skimping on braces might save you a few keystrokes the first time, but the next coder who comes along, adds something to your else clause without noticing the block is missing braces is going to be in for a lot of pain. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write your code for other people. &lt;/p&gt;&#xA;" OwnerUserId="940" LastActivityDate="2010-09-12T03:10:55.847" CommunityOwnedDate="2010-11-02T20:52:36.780" CommentCount="12" />
  <row Id="2971" PostTypeId="2" ParentId="1921" CreationDate="2010-09-12T03:12:30.343" Score="2" ViewCount="" Body="&lt;p&gt;Avoid all jobs with COBOL in them.  Most of the systems running COBOL are not only antiquated but kept alive on life support because they are business critical.  That's not to say COBOL is a bad language (err..um...), rather it's just not relevant to the modern development market.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-12T03:12:30.343" />
  <row Id="2972" PostTypeId="1" CreationDate="2010-09-12T03:12:58.627" Score="3" ViewCount="161" Body="&lt;p&gt;I realized something peculiar over the years, I cannot think deeply while sitting on my desk! Whenever I try to solve a hard problem, design some parts of a program, and generally do anything that requires more than two minutes of pure thinking, I get off my desk and &lt;em&gt;start walking&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether I pace up and down the hallway, walk in circles around a table, or just have a small walk outside, I find that my thoughts become much clearer. I come up with my best ideas while walking, and I can solve the hardest problems much faster. Of course, people who see me doing it indoors usually give me a weird look and think I'm insane, but it doesn't matter, I'm more productive this way!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen people do other things to help them think, such as tap a pencil on the desk, squeeze a stress ball, or throw their heads backwards and stare at the ceiling. I am interested in what you people do to trigger your thought process.&lt;/p&gt;&#xA;" OwnerUserId="1303" LastActivityDate="2010-09-16T10:08:22.067" Title="How do you trigger your thought process?" Tags="&lt;productivity&gt;&lt;work-environment&gt;" AnswerCount="4" />
  <row Id="2973" PostTypeId="2" ParentId="2972" CreationDate="2010-09-12T03:21:00.693" Score="2" ViewCount="" Body="&lt;p&gt;When I'm having trouble focusing on something, I'll set it aside for the night.  A lot of times, giving my subconscious some time to form associations helps, and I'll come up with a good idea either in a dream, or the next morning while I'm in the shower.  (Not sure why in the shower, specifically, but it tends to happen a lot there.)&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-12T03:21:00.693" />
  <row Id="2974" PostTypeId="2" ParentId="1879" CreationDate="2010-09-12T03:27:16.953" Score="0" ViewCount="" Body="&lt;p&gt;Move to the other platform. Scala can be a good choice.&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-12T03:27:16.953" />
  <row Id="2975" PostTypeId="2" ParentId="2932" CreationDate="2010-09-12T03:28:18.470" Score="1" ViewCount="" Body="&lt;p&gt;The following is an excerpt from the FSF's &lt;a href=&quot;http://www.gnu.org/philosophy/free-sw.html&quot; rel=&quot;nofollow&quot;&gt;free software&lt;/a&gt; page:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Free software is a matter of the users' freedom to run, copy, distribute, study, change and improve the software. More precisely, it means that the program's users have the four essential freedoms:&lt;/em&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;&lt;em&gt;The freedom to run the program, for any purpose (freedom 0).&lt;/em&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;em&gt;The freedom to study how the program works, and change it to make it do what you wish (freedom 1). Access to the source code is a precondition for this.&lt;/em&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;em&gt;The freedom to redistribute copies so you can help your neighbor (freedom 2).&lt;/em&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;em&gt;The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.&lt;/em&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I would have thought that the benefits of the Freedoms to &quot;the programmer&quot; were self-evident.  Certainly Freedoms 0 and 1 should be.  I guess Freedoms 2 and 3 assume that you might want to help your neighbor ... or have your neighbor help you.  But you would need to be pretty short-sighted (or a sociopath) not to recognize the benefits of people helping each other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The waters get a bit muddy when you start considering corporate interests.  But it is pretty clear that companies can and do make money both building and using Free Software, even if your company's management doesn't &quot;get it&quot; yet.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-09-12T03:28:18.470" CommentCount="2" />
  <row Id="2976" PostTypeId="2" ParentId="2649" CreationDate="2010-09-12T03:36:18.790" Score="1" ViewCount="" Body="&lt;p&gt;From a book recommendation to the solution of complexed problems, I refer to Stack Overflow every time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's actually like a heaven for all programmers.&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-12T03:36:18.790" />
  <row Id="2977" PostTypeId="1" AcceptedAnswerId="3000" CreationDate="2010-09-12T03:50:33.290" Score="8" ViewCount="212" Body="&lt;p&gt;I don't have any for-profit programming work yet (I'm only 13), but I'm wondering how much website projects are worth. So far, the sites I've built fall in to one of the following two categories:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Small sites&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Generally without user registration&lt;/li&gt;&#xA;&lt;li&gt;Usually with only the following pages&#xA;&lt;ul&gt;&#xA;&lt;li&gt;About&lt;/li&gt;&#xA;&lt;li&gt;Services&lt;/li&gt;&#xA;&lt;li&gt;Contact&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Large portals&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Generally with user registration&lt;/li&gt;&#xA;&lt;li&gt;Specialized for certain user input&lt;/li&gt;&#xA;&lt;li&gt;A lot of features that are based on the site topic.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What are reasonable prices for websites in each of those categories?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I saw something on &lt;a href=&quot;http://clientsfromhell.net/&quot; rel=&quot;nofollow&quot; title=&quot;Clients From Hell&quot;&gt;Clients From Hell&lt;/a&gt; today - I can't find the exact quote, but essentially, someone commissioned a website that fits in the &lt;em&gt;small sites&lt;/em&gt; category with a $50 budget and the web developer was appalled at the price. Is $50 really too low a price for such a site?&lt;/p&gt;&#xA;" OwnerUserId="1333" LastActivityDate="2010-09-12T09:31:36.340" Title="Reasonable pricing for website projects" Tags="&lt;websites&gt;&lt;business&gt;&lt;freelancing&gt;&lt;client&gt;" AnswerCount="1" CommentCount="4" FavoriteCount="1" />
  <row Id="2978" PostTypeId="2" ParentId="940" CreationDate="2010-09-12T04:14:47.833" Score="19" ViewCount="" Body="&lt;p&gt;The following quote from &lt;a href=&quot;http://q4td.blogspot.com/2010/06/i-loved-git-until-i-tried-it.html&quot; rel=&quot;nofollow&quot;&gt;Q4TD&lt;/a&gt; pretty much sums it up for me:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;“I loved Git until I tried it. Now I love Mercurial.”&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;— Tor Norbye, &lt;a href=&quot;http://www.javaposse.com/index.php?post_id=600120&quot; rel=&quot;nofollow&quot;&gt;The Java Posse&lt;/a&gt; Podcast&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Also, &lt;a href=&quot;http://bitbucket.org/durin42/hgsubversion/wiki/Home&quot; rel=&quot;nofollow&quot;&gt;hgsubversion&lt;/a&gt; makes a pretty good subversion client for Linux (where I usually use the command line, unlike Windows where I usually use TortoiseSVN). The biggest advantage: no &lt;code&gt;.svn&lt;/code&gt; sub-folder in every folder, just a &lt;code&gt;.hg&lt;/code&gt; at the top level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Update:&lt;/em&gt; In response to Alex's request in the comments to &quot;say more about why git didn't work for you, and how Mercurial worked better&quot;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't say that Git &lt;em&gt;doesn't&lt;/em&gt; work for me, but Murcurial does work better IMO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a nutshell, this is Mercurial:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/8K8wh.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and this is Git:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/d9rm5.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I assert that Mercurial will do everything most developers will need it to do, without having to look up the manual to figure out how to do the everyday things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Admittedly, I've only used Git occasionally, but the programming community has been going gaga over languages like Ruby and Python, in part, for their conciseness and elegance, whereas Git feels like a camel that was designed by a committee of camels.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bah, now look at what you've done? There's rant all over the place. Move along, nothing to see... nothing to see...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Update 2:&lt;/em&gt; And another apropos &lt;a href=&quot;http://twitter.com/agnoster/status/44636629423497217&quot; rel=&quot;nofollow&quot;&gt;tweet&lt;/a&gt; I just came across:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;“Git gets easier once you get the basic idea that branches are homeomorphic endofunctors mapping submanifolds of a Hilbert space.”&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="415" LastEditorUserId="415" LastEditorDisplayName="" LastEditDate="2011-03-07T07:29:37.603" LastActivityDate="2011-03-07T07:29:37.603" CommunityOwnedDate="2011-03-07T21:04:52.237" CommentCount="6" />
  <row Id="2979" PostTypeId="1" CreationDate="2010-09-12T04:25:25.930" Score="1" ViewCount="188" Body="&lt;p&gt;I was wondering if anyone here had set up VS2010 as their source code control tool (especially VS2010 for Windows Phone 7), and can tell me how to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="1351" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-10-12T01:51:25.340" LastActivityDate="2010-10-12T01:51:25.340" ClosedDate="2010-09-12T16:48:50.777" Title="How do you set SourceGear Vault as the SCC for VS2010?" Tags="&lt;version-control&gt;&lt;visual-studio-2010&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="2980" PostTypeId="2" ParentId="2846" CreationDate="2010-09-12T05:10:33.143" Score="35" ViewCount="" Body="&lt;h2&gt;Ladder Logic&lt;/h2&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;| X001 Y001                                             Y001 |&#xA;|-| |---|/|---[01000 TON T002]-[01000 TOF T003]---------( )--|&#xA;|                                                            |&#xA;|  X001                                                 Y002 |&#xA;|--| |----+---------------------------------------------( )--|&#xA;|         |                                                  |&#xA;|  Y002   |                                                  |&#xA;|--| |----+                                                  |&#xA;|                                                            |&#xA;|  X001 R006                                                 |&#xA;|--| |--|/|--[01000 TON T004]-----+-------[D150 + 1 -&amp;gt; D150]-|&#xA;|                                 |                     R006 |&#xA;|                                 +---[01000 TOF T005]--( )--| &#xA;|                                                            |&#xA;|                                                       Y003 |&#xA;|-[D150 &amp;gt;200]-------------------------------------------( )--|&#xA;|                                                            |&#xA;| Y003                                                       |&#xA;|-| |-----------------------------------------[ 0 MOV D150]--|&#xA;|                                                            |&#xA;|--{END}-----------------------------------------------------|&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;More than one page of the stuff is completely unreadable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Non-programmers will create hundreds and hundreds of pages of this gibberish....and then call in a programmer when it doesn't work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't take those calls anymore. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- Begin Edit-- &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Background&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those with little or no knowledge of ladder logic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ladder Logic is the common language of &lt;a href=&quot;http://en.wikipedia.org/wiki/Programmable_logic_controller&quot; rel=&quot;nofollow&quot;&gt;Programmable Logic Controllers&lt;/a&gt; aka PLC. and almost every factory on the planet has one or more &lt;em&gt;(finding 20+ PLCs in a single factory is not uncommon)&lt;/em&gt; controlling everything from oven temperatures to multi-axis robotic cells. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Early PLCs were designed to replace &lt;a href=&quot;http://en.wikipedia.org/wiki/Relay&quot; rel=&quot;nofollow&quot;&gt;relay&lt;/a&gt; logic systems &lt;em&gt;(think: tubes vs. transistors)&lt;/em&gt;. Upgrading a factory could be an enormous undertaking and minimizing down-time is a primary driver. In order to reduce training demands for the existing technicians, the vast majority of which had no higher education and no knowledge of computers, the schematic diagram of relay logic was chosen as the template for ladder logic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most modern PLCs can be programmed with a variety of languages...all more readable, maintainable and powerful than ladder logic. However, the vast majority of technicians continue to use ladder logic exclusively.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- End Edit--&lt;/p&gt;&#xA;" OwnerUserId="497" LastEditorUserId="497" LastEditorDisplayName="" LastEditDate="2010-09-13T00:33:54.333" LastActivityDate="2010-09-13T00:33:54.333" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="16" />
  <row Id="2981" PostTypeId="2" ParentId="2972" CreationDate="2010-09-12T05:11:08.687" Score="3" ViewCount="" Body="&lt;p&gt;I just walk away from the problem for a bit.  If I'm at work, and I'm stuck, I'll take a walk to the convenience store and get a soda or, if the timing is right, I'll go out to grab some lunch.  If I'm at home, I'll go do some mindless task at home like emptying the dishwasher or taking care of some laundry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me the key is walking away from the problem in your mind; stop thinking about it.  A lot of times, that will give me a fresh perspective when I come back to it even if I come back to it 10 minutes later.&lt;/p&gt;&#xA;" OwnerUserId="1236" LastActivityDate="2010-09-12T05:11:08.687" />
  <row Id="2983" PostTypeId="2" ParentId="2846" CreationDate="2010-09-12T05:20:25.397" Score="0" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Piet_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Piet&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I have spent literally years trying to learn it, but no matter how hard I try, I still can't write a sufficiently complex program in it.&lt;/p&gt;&#xA;" OwnerUserId="325" LastActivityDate="2010-09-12T05:20:25.397" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="2" />
  <row Id="2984" PostTypeId="2" ParentId="2846" CreationDate="2010-09-12T05:33:38.067" Score="26" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;m4&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every time I need to use it I start by rereading a manual (&lt;strong&gt;129&lt;/strong&gt; A4 pages for the small macro language!). Here is, for example, its parody on &lt;em&gt;switch&lt;/em&gt; statement:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;ifelse(side(`$1'), `yes', `one comparison: ',&#xA;       side(`$1'), `no', `two comparisons: ',&#xA;       side(`$1'), `maybe', `three comparisons: ',&#xA;       `side(`default answer: ')')counter')dnl&#xA;&lt;/pre&gt;&#xA;" OwnerUserId="343" LastActivityDate="2010-09-12T05:33:38.067" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="11" />
  <row Id="2986" PostTypeId="2" ParentId="2846" CreationDate="2010-09-12T05:47:50.740" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Visual Basic&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It shouldn't be included in programming languages category.&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-12T05:47:50.740" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="2" />
  <row Id="2987" PostTypeId="2" ParentId="2731" CreationDate="2010-09-12T06:03:42.523" Score="5" ViewCount="" Body="&lt;p&gt;That PHP sucks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I see it all the time (heck, there are a half-dozen questions on Programmers.SE already with that sentiment), and it's almost always based on an understanding of PHP 3 or PHP 4; or the talking points from a random blog post (backslash for namespaces, &lt;em&gt;crazy&lt;/em&gt; parameter order, lets monkeys create code that will bring about the 2012 apocalypse). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some things that are annoying about the language, just as there are things that are annoying about every language, but it's nowhere near as bad as some people make it out to be.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-12T06:03:42.523" CommentCount="4" />
  <row Id="2988" PostTypeId="2" ParentId="2715" CreationDate="2010-09-12T06:05:10.053" Score="0" ViewCount="" Body="&lt;p&gt;It all depends on you as long as you are not working on a project where some coding constraints or some standards have been set by the project manager that all the programmers who are working on that project have to follow while coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally would prefer the 1st method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also I didn't get what you wanna show by the 3rd method?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Isn't that a wrong way? For example consider a situation as..&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (you.hasAnswer())&#xA;  you.postAnswer();&#xA;else&#xA;  you.doSomething();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now what if someone wants to add some more statements in the &lt;strong&gt;if&lt;/strong&gt; block?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In that case if you use the 3rd method the compiler will throw the syntax error.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (you.hasAnswer())&#xA;   you.postAnswer1();&#xA;   you.postAnswer2();&#xA;else&#xA;   you.doSomething();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-12T06:05:10.053" CommunityOwnedDate="2010-11-02T20:52:36.780" CommentCount="5" />
  <row Id="2989" PostTypeId="5" CreationDate="2010-09-12T06:08:18.800" Score="0" ViewCount="0" Body="&lt;p&gt;&lt;a href=&quot;http://php.net/&quot; rel=&quot;nofollow&quot;&gt;PHP&lt;/a&gt; is a widely-used general-purpose scripting language that is especially suited for Web development.  The current version is &lt;strong&gt;5.3.6&lt;/strong&gt;, &lt;a href=&quot;http://www.php.net/archive/2011.php#id2011-03-17-1&quot; rel=&quot;nofollow&quot;&gt;released on March 17, 2011&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://www.php.net/manual/en/&quot; rel=&quot;nofollow&quot;&gt;online manual&lt;/a&gt; is an excellent resource for &lt;a href=&quot;http://www.php.net/manual/en/langref.php&quot; rel=&quot;nofollow&quot;&gt;the language syntax&lt;/a&gt; and has an &lt;a href=&quot;http://www.php.net/manual/en/funcref.php&quot; rel=&quot;nofollow&quot;&gt;extensive list of the built-in and extension functions&lt;/a&gt;.  Most extensions can be found in &lt;a href=&quot;http://pecl.php.net/packages.php&quot; rel=&quot;nofollow&quot;&gt;PECL&lt;/a&gt;.  &lt;a href=&quot;http://pear.php.net/&quot; rel=&quot;nofollow&quot;&gt;PEAR&lt;/a&gt; contains a plethora of community supplied classes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP is often paired with the &lt;a href=&quot;http://us2.php.net/manual/en/book.mysqli.php&quot; rel=&quot;nofollow&quot;&gt;MySQL&lt;/a&gt; relational database. PHP also includes great database support for &lt;a href=&quot;http://us2.php.net/manual/en/book.pgsql.php&quot; rel=&quot;nofollow&quot;&gt;PostgreSQL&lt;/a&gt;, &lt;a href=&quot;http://us2.php.net/manual/en/book.sqlite3.php&quot; rel=&quot;nofollow&quot;&gt;SQLite&lt;/a&gt;, &lt;a href=&quot;http://www.microsoft.com/sqlserver/2005/en/us/PHP-Driver.aspx&quot; rel=&quot;nofollow&quot;&gt;Microsoft SQL Server&lt;/a&gt; (&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/cc296152%28SQL.90%29.aspx&quot; rel=&quot;nofollow&quot;&gt;API ref&lt;/a&gt;), &lt;a href=&quot;http://www.php.net/manual/en/book.oci8.php&quot; rel=&quot;nofollow&quot;&gt;Oracle&lt;/a&gt;, &lt;a href=&quot;http://www.php.net/manual/en/book.ibm-db2.php&quot; rel=&quot;nofollow&quot;&gt;IBM DB2 &amp;amp; Cloudscape, Apache Derby&lt;/a&gt; and even &lt;a href=&quot;http://www.php.net/manual/en/book.uodbc.php&quot; rel=&quot;nofollow&quot;&gt;ODBC&lt;/a&gt;.  All modern versions of PHP include &lt;a href=&quot;http://us2.php.net/manual/en/book.pdo.php&quot; rel=&quot;nofollow&quot;&gt;PDO&lt;/a&gt;, a built-in &lt;a href=&quot;http://us2.php.net/manual/en/intro.pdo.php&quot; rel=&quot;nofollow&quot;&gt;data-access abstraction library&lt;/a&gt; with &lt;a href=&quot;http://www.php.net/manual/en/pdo.drivers.php&quot; rel=&quot;nofollow&quot;&gt;comprehensive connectivity options&lt;/a&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Useful Third-party Code&lt;/h2&gt;&#xA;&#xA;&lt;h3&gt;Frameworks&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;PHP has a variety of object-oriented web application frameworks, including:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://framework.zend.com/&quot; rel=&quot;nofollow&quot;&gt;Zend Framework&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.symfony-project.org/&quot; rel=&quot;nofollow&quot;&gt;Symfony&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://kohanaframework.org/&quot; rel=&quot;nofollow&quot;&gt;Kohana&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.yiiframework.com/&quot; rel=&quot;nofollow&quot;&gt;Yii&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://codeigniter.com/&quot; rel=&quot;nofollow&quot;&gt;CodeIgniter&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://cakephp.org/&quot; rel=&quot;nofollow&quot;&gt;CakePHP&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(See: &lt;a href=&quot;http://stackoverflow.com/questions/2648/what-php-framework-would-you-choose-for-a-new-application-and-why&quot;&gt;&quot;What PHP framework would you choose for a new application and why?&quot;&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Object-Relational Mapping&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Popular ORMs for PHP include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.doctrine-project.org/&quot; rel=&quot;nofollow&quot;&gt;Doctrine&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.propelorm.org/&quot; rel=&quot;nofollow&quot;&gt;Propel&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(See: &lt;a href=&quot;http://stackoverflow.com/questions/108699/good-php-orm-library&quot;&gt;&quot;Good PHP ORM Library?&quot;&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Unit Testing&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Popular unit testing frameworks for PHP include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.phpunit.de/&quot; rel=&quot;nofollow&quot;&gt;PHPUnit&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.simpletest.org/&quot; rel=&quot;nofollow&quot;&gt;SimpleTest&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(See: &lt;a href=&quot;http://stackoverflow.com/questions/842/best-way-to-implement-unit-testing-in-php&quot;&gt;&quot;Best way to implement unit testing in PHP&quot;&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Debugger and Frontends/IDEs&lt;/h3&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.xdebug.org/&quot; rel=&quot;nofollow&quot;&gt;XDebug&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://netbeans.org/features/php/&quot; rel=&quot;nofollow&quot;&gt;NetBeans&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.eclipse.org/pdt/&quot; rel=&quot;nofollow&quot;&gt;Eclipse&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="-1" LastEditorUserId="11645" LastEditorDisplayName="" LastEditDate="2011-04-06T08:32:25.630" LastActivityDate="2011-04-06T08:32:25.630" />
  <row Id="2990" PostTypeId="4" CreationDate="2010-09-12T06:08:18.800" Score="0" ViewCount="0" Body="Questions about PHP, a widely-used general-purpose scripting language that is especially suited for Web development." OwnerUserId="-1" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2011-04-10T03:00:34.627" LastActivityDate="2011-04-10T03:00:34.627" />
  <row Id="2991" PostTypeId="2" ParentId="681" CreationDate="2010-09-12T06:16:17.783" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;LOGO&lt;/strong&gt; and &lt;strong&gt;BASIC&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-12T06:16:17.783" />
  <row Id="2995" PostTypeId="2" ParentId="2319" CreationDate="2010-09-12T06:24:51.653" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.indeed.com/&quot; rel=&quot;nofollow&quot;&gt;Indeed.com&lt;/a&gt; is a search engine for jobs, allowing job seekers to find jobs posted on thousands of company career sites and job boards.&lt;/p&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-09-12T06:24:51.653" CommunityOwnedDate="2010-09-12T06:24:51.653" />
  <row Id="2996" PostTypeId="2" ParentId="886" CreationDate="2010-09-12T06:27:35.603" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;ONLINE GAMING&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's my hobby. I love playing &lt;strong&gt;Counter Strike 1.6&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;MUSIC&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coldplay, Linkin park, Eminem, Rihanna&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;MOVIES&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Motivational / Computer / Hacking related&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-12T06:27:35.603" />
  <row Id="2997" PostTypeId="2" ParentId="966" CreationDate="2010-09-12T06:33:06.427" Score="-3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Code complete&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The Pragmatic Programmer&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-12T06:33:06.427" CommunityOwnedDate="2011-01-06T15:42:27.030" CommentCount="1" />
  <row Id="2998" PostTypeId="2" ParentId="2783" CreationDate="2010-09-12T06:37:47.583" Score="1" ViewCount="" Body="&lt;p&gt;Readability is more important. So go for the 1st method.&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-12T06:37:47.583" />
  <row Id="2999" PostTypeId="2" ParentId="67" CreationDate="2010-09-12T06:44:53.923" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;My Silverlight blog list.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jesseliberty.com/&quot; rel=&quot;nofollow&quot;&gt;Jesse Liberty&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://10rem.net/&quot; rel=&quot;nofollow&quot;&gt;Pete Brown - 10rem.net&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.silverlightbuzz.com/&quot; rel=&quot;nofollow&quot;&gt;Silverlight Buzz&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://geekswithblogs.net/WynApseTechnicalMusings/Default.aspx&quot; rel=&quot;nofollow&quot;&gt;Silverlight Cream&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://johnpapa.net/&quot; rel=&quot;nofollow&quot;&gt;JohnPapa.net&lt;/a&gt; &lt;a href=&quot;http://channel9.msdn.com/shows/SilverlightTV/&quot; rel=&quot;nofollow&quot;&gt;Silverlight&#xA;    TV&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jesseliberty.com/essential-blogs-and-feeds/&quot; rel=&quot;nofollow&quot;&gt;Essential Blogs And Feeds of Jesse&#xA;Liberty&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="567" LastActivityDate="2010-09-12T06:44:53.923" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="3000" PostTypeId="2" ParentId="2977" CreationDate="2010-09-12T06:54:44.800" Score="6" ViewCount="" Body="&lt;p&gt;At work, we quote websites based on the number of hours we think it will take (and we have experience, so we usually get it pretty right).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you think you can do a website in an hour or two, then $50 may not be too little. $25/h is respectable, if you're working for yourself, especially at your age.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you think the website is going to take several days though, then $50 is suddenly very cheap, and probably even below minimum wage in whatever country you live in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To give you an idea of what these cost at a professional level though, we get very few websites that come in under AU$3,000, though all of them would fit into the second category above.&lt;/p&gt;&#xA;" OwnerUserId="1350" LastEditorUserId="1350" LastEditorDisplayName="" LastEditDate="2010-09-12T09:31:36.340" LastActivityDate="2010-09-12T09:31:36.340" CommentCount="2" />
  <row Id="3001" PostTypeId="2" ParentId="1701" CreationDate="2010-09-12T07:15:09.227" Score="18" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Code complete&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The Pragmatic Programmer&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-12T07:15:09.227" CommentCount="1" />
  <row Id="3002" PostTypeId="1" AcceptedAnswerId="3016" CreationDate="2010-09-12T07:37:22.983" Score="6" ViewCount="273" Body="&lt;p&gt;Since I completed university I've been working in C++, in embedded environments.  It seems to me that my peers, who work in web related technologies, seem to be earning more, and have a lot more work opportunities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it a bad idea to continue working in C++?&lt;/p&gt;&#xA;" OwnerUserId="1388" LastActivityDate="2010-09-12T20:22:43.667" Title="Get out of C++?" Tags="&lt;programming-languages&gt;&lt;career&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="1" />
  <row Id="3004" PostTypeId="2" ParentId="3002" CreationDate="2010-09-12T07:43:38.160" Score="3" ViewCount="" Body="&lt;p&gt;Like any widespread technology, if you're competent, you'll be ok.  The only major risk you run is being stuck in it.  For example, there's still work for experienced Cobol programmers because there are still plenty of major systems built on it.  This'll be the case for C++ for decades.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may want to switch to faster moving areas of programming if you want to keep learning new things, but if you like what you're doing, there'll be a market for it for a long time to come.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-12T07:43:38.160" />
  <row Id="3005" PostTypeId="2" ParentId="3002" CreationDate="2010-09-12T08:08:58.167" Score="2" ViewCount="" Body="&lt;p&gt;I wouldn't abandon C++ as I am sure that there will be a lot of future work in the area such as Fishtoaster mentioned.  However, I would recommend that if you can find a way to branch out into other languages that it can be a good long term career choice for you.  Learning another language will only help you in the long run, keep in mind though that if you are &quot;Advanced&quot; in one language and &quot;Intermediate&quot; in another, pay ranges may not be the same if you try to transition. &lt;/p&gt;&#xA;" OwnerUserId="1340" LastActivityDate="2010-09-12T08:08:58.167" />
  <row Id="3006" PostTypeId="2" ParentId="2051" CreationDate="2010-09-12T08:09:30.607" Score="3" ViewCount="" Body="&lt;p&gt;I was asked by my TL to connect the phone line directly to USB (no MODEM type converter in between).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tried to explain him that it is not possible technically (the connecting of phone to USB directly). but he didn't want to listen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, I had to write him a 20 page document explaining that phone is analog while USB is digital so a converter is very much required. Then he dropped the idea altogether.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-12T08:09:30.607" CommunityOwnedDate="2010-09-12T08:09:30.607" CommentCount="2" />
  <row Id="3007" PostTypeId="2" ParentId="2979" CreationDate="2010-09-12T08:10:05.343" Score="2" ViewCount="" Body="&lt;p&gt;Once in Visual Studio  go to &quot;Tool&quot; -&gt; &quot;Options&quot; Then from there select &quot;Source Control&quot; and you can then select the Vault Plugin from the drop down list.&lt;/p&gt;&#xA;" OwnerUserId="1340" LastActivityDate="2010-09-12T08:10:05.343" />
  <row Id="3008" PostTypeId="2" ParentId="2757" CreationDate="2010-09-12T08:44:15.813" Score="0" ViewCount="" Body="&lt;p&gt;I'm fairly happy with my current three screen setup - 3x 24&quot; LCDs with 1920x1200 each.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two screens alone are a huge upgrade from just a single one, but I upgraded to three screens after using two for about a year or so, in order to limit the context loss during alt-tabbing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main usage scenario is web development:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;left:&lt;/em&gt; application output (in my case a browser stack - native browsers, multiple IEs in virtual machines)&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;middle:&lt;/em&gt; my main context (e.g. an IDE, debug logs, file manager, SSH client)&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;right:&lt;/em&gt; supplementary information (e.g. documentation, database schema, minimized email client); vertical/horizontal switch when needed&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The left screen is shared with a dev.server, and is also occasionally used for PCs that someone brings for repairs.&lt;/p&gt;&#xA;" OwnerUserId="1117" LastActivityDate="2010-09-12T08:44:15.813" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="3009" PostTypeId="2" ParentId="3002" CreationDate="2010-09-12T09:36:49.240" Score="1" ViewCount="" Body="&lt;p&gt;One reason to learn another new language/technology is that you learn new ways to do it. For instance, I never understood functional programming till I recently took up Ruby, which helps me in my C# and PHP stuff at work. Even if it's not directly applicable, it still gets my mind working in different ways and allows me to approach problems from more than one direction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should you leave C++ altogether? If you enjoy it, then probably not. As Fishtoaster points out, there's plenty work out there for competent people in most fields, even if there aren't really any new applications being developed in them.&lt;/p&gt;&#xA;" OwnerUserId="1350" LastActivityDate="2010-09-12T09:36:49.240" />
  <row Id="3011" PostTypeId="2" ParentId="2959" CreationDate="2010-09-12T10:10:56.753" Score="1" ViewCount="" Body="&lt;p&gt;Ideally, unless you're building something massive that takes over half a day to build, you would build more than once a day.  Once you've set-up a continuous integration server, such as &lt;a href=&quot;http://hudson-ci.org/&quot; rel=&quot;nofollow&quot;&gt;Hudson&lt;/a&gt; or &lt;a href=&quot;http://www.jetbrains.com/teamcity/&quot; rel=&quot;nofollow&quot;&gt;TeamCity&lt;/a&gt;, the builds will happen automatically, typically every hour or on every commit, and you'll will be notified if there are any problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a good way to catch errors early, especially if you are also running automated tests as part of the build.  It's particularly useful for finding configuration errors where the build works on one developer's machine but doesn't work elsewhere because something was omitted from the repository or the environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The more advanced continuous integration servers also allow you to track metrics over time (e.g. code coverage percentage, build time, lines of code, etc.)&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-12T10:10:56.753" />
  <row Id="3012" PostTypeId="2" ParentId="294" CreationDate="2010-09-12T10:30:58.853" Score="19" ViewCount="" Body="&lt;p&gt;My first open source contribution was for a library that I had previously used (and would've suffered greatly without) on a previous paid project. During my initial use I had spotted a bug in the code so I created a patch, joined the project, and submitted it for review.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About 8 months later when I had some free time I decided that I would give back (and work on my development skills) by contributing more to the project. So I cloned the repository and started getting familiar with the codebase. After a few weeks of submitting minor patch fixes to the codebase and monitoring the feature requests, I picked up a feature request to add a pretty substantial module to the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since generating many individual patch fixes is pretty tedious for any significant development I cloned the repository to a branch on git hub and started punching away code. A few weeks and several thousand lines of code later the project leader and me worked through integrating and testing my fixes into the library in a way that worked consistently with the rest of the codebase.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was an invaluable process that I learned a lot from: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When I started I didn't know how to use Git, by the end I could proficiently create remote tracking branches and merge or rebase them into the master branch without breaking a sweat. &lt;/li&gt;&#xA;&lt;li&gt;I started in VS 2008 and ended up migrating to Linux and Monodevelop to work on writing code (because VS is unicode retarded and line endings are such a pain in git). It turns out that theres not much you can't do in *nix that you can do in *dows.&lt;/li&gt;&#xA;&lt;li&gt;I had never really done any unit testing before, Nunit is a piece of cake to use and writing unit tests is pretty elementary stuff.&lt;/li&gt;&#xA;&lt;li&gt;I had to learn to swallow my tongue and listen as well as practice patience. There's no point in standing a firm ground on your position on an open source project because everybody involved is knowledgeable (probably more so than yourself) and capable of accepting/rejecting your ideas based on substance not delivery. It's extremely humbling and rewarding at the same time.&lt;/li&gt;&#xA;&lt;li&gt;Just having one other skilled developer's eyes on a large base of my code pointed out flaws in my style that I had never considered before (as well as I pointed out flaws in his code). For me, I learned that it's easier/better to define constants than it is to use a bunch of magical numbers with detailed commenting.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That particular project was based around generating and decoding networking packets on all levels of networking protocols. I have a personal interest in lower level networking so it was great to have discussions with another developer with shared interest and knowledge in the domain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to just get your feet wet: find a project that you already use; clone the repository; and start seeing if you can fix some bugs and/or add some unit tests. It seems intimidating to look at someone else's codebase with fresh eyes but it's an extremely valuable skill to learn. Submit some patches. You can expect your code to be closely scrutinized at first. Don't worry about it, it's a normal part of the process to gain the trust of the project admin(s).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After establishing a base of merit with the projects admin(s) start seeking more responsibilities such as, proposing new features, or asking to be assigned to implementing feature requests. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't find an already existing project on one of the main open source repository networks (github, sourceforge, google code) think of an app that you'd really like to use that doesn't exist yet and start your own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be prepared to be humbled and expect work to be rejected in favor of further revisions. The myth that anybody can add code to an open source project is completely false. There's always a gatekeeper between you and push access. The better your code, the less it will be scrutinized in the long run as you gain trust of the project admin(s). If it's your project, you'll be that gatekeeper.&lt;/p&gt;&#xA;" OwnerUserId="1256" LastEditorUserId="1256" LastEditorDisplayName="" LastEditDate="2011-03-14T05:41:32.200" LastActivityDate="2011-03-14T05:41:32.200" CommentCount="5" />
  <row Id="3015" PostTypeId="2" ParentId="67" CreationDate="2010-09-12T10:41:33.953" Score="0" ViewCount="" Body="&lt;p&gt;Eric Lippert's &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/&quot; rel=&quot;nofollow&quot;&gt;Fabulous Adventures In Coding&lt;/a&gt; blog is always an informative and often challenging read, especially for C# developers. As a Microsoft insider and senior developer on the C# compiler team he can bring an authority and depth to his posts seldom found elsewhere. As a bonus he is also an &lt;a href=&quot;http://stackoverflow.com/users/88656/eric-lippert&quot;&gt;active user&lt;/a&gt; on Stackoverflow, too.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-12T10:41:33.953" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="3016" PostTypeId="2" ParentId="3002" CreationDate="2010-09-12T10:47:19.430" Score="4" ViewCount="" Body="&lt;p&gt;If you are still comfortable with C++, and you're getting a job thanks to it, you don't have to get out of it! C++ is a technology that will remain mainstream for many more years (and even more in the embedded field). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the meantime you should become competent in at least another language/technology, enough different from C++, ideally something that will be mainstream in the next decade (but is hard to forecast the future). However, managed dynamic languages will be always more dominant, so it will not hurt to learn very well C# and/or Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you can also try something with a very different approach, like AJAX web services, just to not being too stuck in the embedded field.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-12T10:47:19.430" />
  <row Id="3017" PostTypeId="2" ParentId="1483" CreationDate="2010-09-12T10:52:55.347" Score="1" ViewCount="" Body="&lt;p&gt;I work in Japan.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say 40-60% of code I see uses English variable/method/class names. Sometimes Japanese and English is intermixed. Comments and commit messages are almost always in Japanese.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consequently you see a lot of code written in poor English, and it's quite bad because it hurts readability a lot. Unfortunately, code done in Japanese isn't much better, either since Japanese written in Alphabet (in particular, lack of Kanji) is tough to read.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes engineers do use 2 byte character (Kanji/Hiragana etc.) method/variable/class names (it's legal in e.g. Java) but this frequently causes great pain because of character encodings (build blows up etc.) and is usually frowned upon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a lot more emphasis on English for Japanese Engineers in the Japanese job market, so I'm hoping that this situation improves soon (I code entirely in English and I believe all Japanese engineers should, too)..&lt;/p&gt;&#xA;" OwnerUserId="1396" LastActivityDate="2010-09-12T10:52:55.347" CommunityOwnedDate="2010-09-12T10:52:55.347" />
  <row Id="3018" PostTypeId="2" ParentId="2783" CreationDate="2010-09-12T10:53:14.800" Score="0" ViewCount="" Body="&lt;p&gt;Space in code is like a fresh air breath. Always go with spacing between operators, if you want to highlight something just use parenthesis.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-12T10:53:14.800" />
  <row Id="3019" PostTypeId="2" ParentId="67" CreationDate="2010-09-12T10:58:37.057" Score="0" ViewCount="" Body="&lt;p&gt;Since no one added these yet.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://devlicio.us/blogs/&quot; rel=&quot;nofollow&quot;&gt;Devlicious&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://tirania.org/blog/&quot; rel=&quot;nofollow&quot;&gt;Miguel de Icaza's web log&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-12T10:58:37.057" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="3022" PostTypeId="2" ParentId="2490" CreationDate="2010-09-12T11:33:10.500" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://tekpub.com/&quot; rel=&quot;nofollow&quot;&gt;TekPub&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the site:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Think of us as The Code Channel&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Also, &lt;a href=&quot;http://peepcode.com/&quot; rel=&quot;nofollow&quot;&gt;Peep Code&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;We pack the useful information you need to know into about an hour. You'll learn the most important features and techniques instead of trudging through outdated blog posts and verbose API documents.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And I just came across &lt;a href=&quot;http://ontwik.com/&quot; rel=&quot;nofollow&quot;&gt;ontwik.com&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Lectures, Screencasts And Conferences For Real Web Developers &amp;amp; Designers.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="14" LastEditorUserId="14" LastEditorDisplayName="" LastEditDate="2010-11-05T04:38:04.490" LastActivityDate="2010-11-05T04:38:04.490" />
  <row Id="3023" PostTypeId="1" CreationDate="2010-09-12T11:34:36.400" Score="5" ViewCount="305" Body="&lt;p&gt;I have been programming in C# for some time now but I want to keep abreast of changes and interesting language features that I might have missed. I tried to find some good blogs but have found that there is a lot of noise out there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do others keep abreast of what's happening with C#, .NET and related technologies (ASP, ...)?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T15:39:05.687" LastActivityDate="2010-10-01T23:27:36.847" Title="How do you keep up to date with the C# programming language and community?" Tags="&lt;.net&gt;&lt;c#&gt;&lt;stay-updated&gt;" AnswerCount="9" FavoriteCount="1" />
  <row Id="3024" PostTypeId="1" AcceptedAnswerId="3028" CreationDate="2010-09-12T11:47:14.410" Score="1" ViewCount="205" Body="&lt;p&gt;This is a question mainly for Symbian developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to create some demo apps to put on my mobile phone and have some kind of nice icon on the application grid. If I've understood correctly, the application grid icon needs to be in SVG Tiny format. The problem is I don't have any toolset to create such a format. There don't seem to be any free tools to edit or convert to SVG Tiny format.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The cheapest option around seems to be &lt;a href=&quot;http://download.cnet.com/e-Picture-Pro/3000-6675_4-10049251.html&quot; rel=&quot;nofollow&quot;&gt;e-Picture Pro&lt;/a&gt; for $169. Inkscape has had &lt;a href=&quot;http://wiki.inkscape.org/wiki/index.php/SVG_Tiny_Compliance&quot; rel=&quot;nofollow&quot;&gt;some initiative&lt;/a&gt; to make it SVGT-compliant, but not much seems to be happening there lately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the question in short is how do you create your icons for your Symbian apps (or other uses that require SVG Tiny)?&lt;/p&gt;&#xA;" OwnerUserId="1281" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-14T22:35:08.207" LastActivityDate="2011-06-02T18:25:55.920" Title="What tool do you use to create SVGT icons for your app?" Tags="&lt;tools&gt;&lt;recommendations&gt;" AnswerCount="2" />
  <row Id="3025" PostTypeId="2" ParentId="3023" CreationDate="2010-09-12T11:56:44.940" Score="3" ViewCount="" Body="&lt;p&gt;The best way for me to get up to date information about specific technologies and .NET in general it's to read &lt;a href=&quot;http://weblogs.asp.net/scottgu&quot; rel=&quot;nofollow&quot;&gt;Scott Guthrie's blog&lt;/a&gt;. He always gives review of the hottest technical news in .NET world and posts links to the most interesting articles of the month (e.g. &lt;a href=&quot;http://weblogs.asp.net/scottgu/archive/2010/08/29/august-29th-links-net-asp-net-iis-express-silverlight-windows-phone-7.aspx&quot; rel=&quot;nofollow&quot;&gt;august links&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those technologies I always work with, I find it efficient to read blogs of program managers for a specific technology. For example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Silvelight - &lt;a href=&quot;http://timheuer.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Tim Heuer's blog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;ASP.NET MVC - &lt;a href=&quot;http://haacked.com/&quot; rel=&quot;nofollow&quot;&gt;Phil Haack's blog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also, I like to watch videos from &lt;a href=&quot;http://www.microsoftpdc.com/&quot; rel=&quot;nofollow&quot;&gt;PDC&lt;/a&gt; and &lt;a href=&quot;http://live.visitmix.com/&quot; rel=&quot;nofollow&quot;&gt;MIX&lt;/a&gt; conferences, but since they happen only once a year, it's rather rare, if you want to be at the cutting edge.&lt;/p&gt;&#xA;" OwnerUserId="1810" LastEditorUserId="1810" LastEditorDisplayName="" LastEditDate="2010-09-12T12:11:25.340" LastActivityDate="2010-09-12T12:11:25.340" />
  <row Id="3028" PostTypeId="2" ParentId="3024" CreationDate="2010-09-12T12:00:37.193" Score="2" ViewCount="" Body="&lt;p&gt;According to &lt;a href=&quot;http://discussion.forum.nokia.com/forum/showthread.php?108094-svg-tiny-editorBlockquote&quot; rel=&quot;nofollow&quot;&gt;this discussion&lt;/a&gt; there is a converter called &lt;code&gt;svg2svgt&lt;/code&gt; within the S60 3rd SDK for Symbian C++. There is also link to installation howto. &#xA;With this you should be able to create your icons in Inkscape and convert them to SVGT.&lt;/p&gt;&#xA;" OwnerUserId="1402" LastActivityDate="2010-09-12T12:00:37.193" CommentCount="2" />
  <row Id="3029" PostTypeId="2" ParentId="2516" CreationDate="2010-09-12T12:01:17.900" Score="1" ViewCount="" Body="&lt;p&gt;The one you haven't found yet.&lt;/p&gt;&#xA;" OwnerUserId="1403" LastActivityDate="2010-09-12T12:01:17.900" />
  <row Id="3030" PostTypeId="2" ParentId="3023" CreationDate="2010-09-12T12:01:31.933" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/vcsharp/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Visual C# Developer Center&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.ecma-international.org/publications/standards/Ecma-334.htm&quot; rel=&quot;nofollow&quot;&gt;Standard ECMA-334 - C# Language Specification&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.c-sharpcorner.com/&quot; rel=&quot;nofollow&quot;&gt;C# Corner&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/b/csharpfaq/&quot; rel=&quot;nofollow&quot;&gt;C# Official FAQ&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://oreilly.com/pub/topic/csharp&quot; rel=&quot;nofollow&quot;&gt;O'Reilly Books&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://dotnet.dzone.com/&quot; rel=&quot;nofollow&quot;&gt;DZone&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-12T12:01:31.933" />
  <row Id="3031" PostTypeId="2" ParentId="109" CreationDate="2010-09-12T12:01:33.213" Score="7" ViewCount="" Body="&lt;p&gt;Recursive properties in C#:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private string foo;&#xA;public string Foo&#xA;{&#xA;   get { return Foo; }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Doesn't happen so often now we have auto-properties, but it's still something I wish the compiler would pick up on.&lt;/p&gt;&#xA;" OwnerUserId="562" LastActivityDate="2010-09-12T12:01:33.213" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="2" />
  <row Id="3032" PostTypeId="2" ParentId="1516" CreationDate="2010-09-12T12:03:16.103" Score="2" ViewCount="" Body="&lt;p&gt;Your first consideration should be supporting the browsers that your customers use. Secondly you should adhere to standards when applicable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, in a recent project the only browser we had to support was Firefox 3.5. This meant we could use the -moz css properties without worrying what the page would look like in another browser. Would it really have been worth doing rounded corners the long way, just so we were using standard css?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, when creating sites for multiple browsers, standards will usually help you, rather than hinder you. I would try to adhere to most standards, but not lose any sleep if I had to deviate for browser compatibility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the poll, the answer from me is No.&lt;/p&gt;&#xA;" OwnerUserId="1401" LastActivityDate="2010-09-12T12:03:16.103" />
  <row Id="3033" PostTypeId="1" CreationDate="2010-09-12T12:04:12.163" Score="4" ViewCount="151" Body="&lt;p&gt;&lt;strong&gt;When writing software for yourself, your company or third parties, do you always consider certain principles, values, standards, or rules of behavior that guide the decisions, procedures and systems in a way that contributes to the welfare of its key stakeholders, and respects the rights of all constituents affected by its operations?&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And can this code of conduct sometimes be overruled by business requirements, lack of technical skills or other friction during the development process? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some random examples in order of severity. (yes that is controversial) :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you accept known bugs as a risk for the end-user?&lt;/li&gt;&#xA;&lt;li&gt;When writing applications, do you always give the end user the chance for a complete de-install?&lt;/li&gt;&#xA;&lt;li&gt;Do you always secure and encrypt private data delivered end-users in your web application?&lt;/li&gt;&#xA;&lt;li&gt;Do you alwask ask the end-user before submitting his entered data to the server?&lt;/li&gt;&#xA;&lt;li&gt;Did you ever wrote an application that sends unwanted e-mails?&lt;/li&gt;&#xA;&lt;li&gt;Did you ever work on harvesting or scraping projects only for the benefit of the business?&lt;/li&gt;&#xA;&lt;li&gt;Did you ever write software that is legal but moraly controversial, like  for weapons industry.&lt;/li&gt;&#xA;&lt;li&gt;Did you ever wrote software that ( can intentionally) or is be used for criminal activities&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It would be nice if you can get a good case with explanation on your moral and ethical decisions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;note: &lt;em&gt;Since ethics and law are quite local and cultural dependent, it would be interesting if you add the location of the &quot;crime scene&quot; with it&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="545" LastEditorUserId="545" LastEditorDisplayName="" LastEditDate="2010-09-12T18:06:58.903" LastActivityDate="2010-09-12T18:06:58.903" Title="Do you apply a code of conduct on accepting jobs, projects or requirements?" Tags="&lt;business&gt;&lt;ethics&gt;&lt;security&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="2" />
  <row Id="3034" PostTypeId="2" ParentId="1341" CreationDate="2010-09-12T12:11:38.110" Score="1" ViewCount="" Body="&lt;p&gt;Firefox with the following plugins&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Firebug - for inspecting dom elements, javascript debugging and live css testing&lt;/li&gt;&#xA;&lt;li&gt;LiveHTTPHeaders - see if a server is behaving as it should, especially with redirects and setting cookies.&lt;/li&gt;&#xA;&lt;li&gt;Web Develpoer Toolbar - Disable caching. Outline tables and divs.&lt;/li&gt;&#xA;&lt;li&gt;Console2 - improves the standard error console that comes with Firefox.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These plugins overlap each other in areas, but each offer something unique that I couldn't live without.&lt;/p&gt;&#xA;" OwnerUserId="1401" LastActivityDate="2010-09-12T12:11:38.110" />
  <row Id="3035" PostTypeId="2" ParentId="2516" CreationDate="2010-09-12T12:15:37.247" Score="3" ViewCount="" Body="&lt;p&gt;Bugs that aren't bugs but your fault. I.e.:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;open a file, edit it&lt;/li&gt;&#xA;&lt;li&gt;rename the file&lt;/li&gt;&#xA;&lt;li&gt;use open editor to fix something and save&lt;/li&gt;&#xA;&lt;li&gt;rerun and notice the error is still there&lt;/li&gt;&#xA;&lt;li&gt;recheck you logic, have a coffee break, cry, delete everything except &quot;print 'Hello World'&quot;&lt;/li&gt;&#xA;&lt;li&gt;notice you never opened the renamed file&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(I hope I'm not the only person who is sometimes a little absent-minded)&lt;/p&gt;&#xA;" OwnerUserId="1402" LastActivityDate="2010-09-12T12:15:37.247" CommentCount="1" />
  <row Id="3036" PostTypeId="2" ParentId="272" CreationDate="2010-09-12T12:16:23.513" Score="0" ViewCount="" Body="&lt;p&gt;At my current work place I say 'Software Engineer', because the word 'Engineer' carries a bit more weight than 'Developer' or 'Programmer'. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To a lay person I say 'IT Guy', just cause it's a bit more unique way of saying it, and hopefully doesn't have the nerdy connotations of 'Computer Programmer'.&lt;/p&gt;&#xA;" OwnerUserId="1401" LastActivityDate="2010-09-12T12:16:23.513" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="3037" PostTypeId="2" ParentId="1879" CreationDate="2010-09-12T12:17:57.190" Score="0" ViewCount="" Body="&lt;p&gt;What's happening in Java, proper, is &lt;strong&gt;&lt;em&gt;nothing&lt;/em&gt;&lt;/strong&gt;. What little forward motion was detectable at Sun has been efficiently stifled by Oracle, to say nothing of the legal debacle they've launched against Google. We may never see a '1.7'. If you know what's in 1.6, you're done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming, of course, that you mean the language itself and not the larger ecosystem.&lt;/p&gt;&#xA;" OwnerUserId="1403" LastActivityDate="2010-09-12T12:17:57.190" CommentCount="2" />
  <row Id="3038" PostTypeId="2" ParentId="2806" CreationDate="2010-09-12T12:19:46.843" Score="1" ViewCount="" Body="&lt;p&gt;As I'm unaware of the PHP frameworks this is seen from a low-level language view.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Models:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;in theory, Models should be fat and contain business logic&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's completely up to do, I don't see what PHP has to do with this...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Models are data classes in PHP which could probably communicate with the database,&lt;br&gt;&#xA;then you could also send the same model or a partial model in JSON format to the client.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't say business logic, it's more like data logic (validation, database interaction, import/export, ...).&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;and controllers should be thin handlers (input-&gt;output)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Your Controller classes interact with the Model classes, they are indeed thin.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Based on the output, do some things with the Models... And return a ModelView to the client...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In reality the PHP frameworks advocate shallow Models. CI and Symfony for example equate Model == ORM. Even HTTP input is handled by the controller, isn't treated as model.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'm not really aware of those PHP frameworks...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But HTTP input should be handled before it reaches the controller,&lt;br&gt;&#xA;you can easily create a class that turns GET and POST data into good routing and parameters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is exactly what happens in ASP.NET MVC 2 and there is nothing wrong with it,&lt;br&gt;&#xA;I don't know how this would happen with PHP but I guess it would be closely related.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could even easily turn the GET and POST data into a model,&#xA;the model maybe could contain constructor logic for that. Or some separate classes could be added for that purpose.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Views:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;workarounds with AJAX discounted, there can't be Views on web pages. PHP frameworks still pump out pages.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't see why it couldn't, the only difference is the protocol and PHP can return JSON, etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A page is your view and it can request and update through AJAX + JSON.&lt;br&gt;&#xA;Again, I'm not really aware of those PHP frameworks but in ASP.NET MVC 2 it works that way.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The interface still effectively follows the ordinary HTTP model, there's no advantage over non-MVC applications. (And lastly, none of the widespread php frameworks can factually output to GUI Views instead of HTML. I've seen a PHP library that can operate Gtk/Console/Web, but the frameworks don't.)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The only advantage you get (and that's the same with normal applications) is the separation into Model (Data) + View (GUI) + Controller (Logic). Similar, you won't see a C++ framework that can factually output to HTML or JSON instead of GUI Views.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Controller:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I'm unsure. Controllers probably don't need to be long-running and persistently active in the MVC model. In PHP framework context, they're however mostly request handlers. Not really something to get argumentative about, but it just feels slightly buzzwordish.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;MVC is a software architecture/pattern, where the Controller runs and for how long doesn't mather.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-12T12:19:46.843" />
  <row Id="3039" PostTypeId="2" ParentId="2124" CreationDate="2010-09-12T12:23:41.857" Score="3" ViewCount="" Body="&lt;p&gt;I have to admit that I couldn't make it all the way through his blog post, it was just one long bitch and as such I would take it with a pinch of salt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been working on Agile/Scrum projects for almost 5 years and have had largely positive experiences.  That's by no means entirely down to Agile - but I have seen on a number of occasions, how Agile can bring order where there was once chaos.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately most Agile practices are just common sense.  They promote order, honesty and collaboration - all good things.  There is no magic bullet, you have to take the &quot;tools&quot;, try them, retrospect, improve your process, repeat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to read up on Agile I would suggest you read the original Ken Schwaber book; &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0132074893&quot; rel=&quot;nofollow&quot;&gt;Agile Software Development with SCRUM&lt;/a&gt;.  It's only 158 pages long and does a good job of explaining things plainly without rhetoric or a sales pitch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Carlos said, the blog author seems more upset with the training methods of Agile, than Agile itself.  Perhaps he would do better to read a few books, try things out and focus on how he can positively effect the process he's involved in.&lt;/p&gt;&#xA;" OwnerUserId="316" LastActivityDate="2010-09-12T12:23:41.857" />
  <row Id="3040" PostTypeId="2" ParentId="1262" CreationDate="2010-09-12T12:31:44.333" Score="6" ViewCount="" Body="&lt;p&gt;'Insertion mode keyword completion'. Ctrl-P and Ctrl-N in insert mode to search through the text to try and complete whatever variable name you are typing. I've never seen this in any other IDE and I really miss it. Code completion in IDE's just isn't the same.&lt;/p&gt;&#xA;" OwnerUserId="1401" LastActivityDate="2010-09-12T12:31:44.333" CommentCount="4" />
  <row Id="3041" PostTypeId="2" ParentId="2124" CreationDate="2010-09-12T12:32:22.317" Score="1" ViewCount="" Body="&lt;p&gt;To my mind one of the most important parts about Agile development is that you have short development cycles at the end of which you have a working product. Which means that there is never &quot;too long&quot; to the next release of your product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means that you can be responsive to your customers both in terms of fixing problems and adding new functionality. You will rarely develop a feature that no one wants and you will get timely feedback on the new features you do implement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now a &quot;short development cycle&quot; can be anything from a couple of weeks to a couple of months (broad figures here) as it will depend on the complexity of your product, it's maturity and how long it actually takes to implement the specific features required for this phase.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How you manage this process is down to you and your team. Agile is just one way of doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From personal experience I had the most success with a project when we weren't following a named process, but were just doing design, develop, test and release over a 3 month cycle.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-12T12:32:22.317" />
  <row Id="3042" PostTypeId="2" ParentId="2148" CreationDate="2010-09-12T12:46:10.493" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Co-workers is the big one. You can ignore an email, but you can't ignore someone coming up to your desk.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Google Reader - always new posts to keep me entertained/informed&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Personal email - I check it way more frequently than necessary. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;MSN/IM - Thankfully don't have this at work at the moment but you can waste hours on it if you're not careful.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1401" LastActivityDate="2010-09-12T12:46:10.493" />
  <row Id="3043" PostTypeId="2" ParentId="135" CreationDate="2010-09-12T13:09:22.107" Score="0" ViewCount="" Body="&lt;p&gt;For Android, here are some fun ones:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hackers, developers and tinkerers&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Cyanogen - @cyanogen&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;XDA Developers - @xdadevelopers&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;simms22 - @simms22&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Koush - code writer - @koush&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Kmobs - @kmobs&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Chris Soyars - @chrissoyars&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Bignup412 - @bignup412&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Franco Solari - @francoissmexy&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Sumyunguy - @sumyunguy&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;CyanogenMod Source - @cmsrc&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Ander Webbs - @anderwebs&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;CyanogenMod - @cyanogenmod&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Prashant Somashekar, Droid Basement - @pershoot&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;San Mehat, Android Kernal Systems Dev - @sanmehat&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Bart, Android freak - @amon_ra&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Tord Fauksganger - @tordf&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Greg Carron, developer - @pixeladdikt&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Kyle Weller - @androidunleashd&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Wes Garner - @wesgarner&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Source on Engadget: &lt;a href=&quot;http://www.engadget.com/2010/09/07/who-should-i-follow-on-twitter-android-edition/&quot; rel=&quot;nofollow&quot;&gt;Who should I follow on Twitter? Android edition&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-12T13:09:22.107" CommunityOwnedDate="2011-02-11T07:48:02.420" />
  <row Id="3044" PostTypeId="2" ParentId="2846" CreationDate="2010-09-12T13:15:21.030" Score="2" ViewCount="" Body="&lt;p&gt;brainfuck !&#xA;&lt;a href=&quot;http://en.wikipedia.org/wiki/Brainfuck&quot; rel=&quot;nofollow&quot;&gt;wiki&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-09-12T13:15:21.030" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="4" />
  <row Id="3045" PostTypeId="2" ParentId="1063" CreationDate="2010-09-12T13:22:09.860" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Prolog&quot; rel=&quot;nofollow&quot;&gt;Prolog&lt;/a&gt; comes close except for two things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It doesn't ask you how to store data, it just stores it.&lt;/li&gt;&#xA;&lt;li&gt;It won't suggest you what to do in an intelligent way.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But it does have the behavior to store facts and have rules to verify them or generate a result with it.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-12T13:22:09.860" />
  <row Id="3046" PostTypeId="2" ParentId="1483" CreationDate="2010-09-12T13:26:02.457" Score="0" ViewCount="" Body="&lt;p&gt;Yes, although I am Dutch I want everything on my computer to happen in English except for communicating with Dutch people or visiting Dutch sites... I really don't like the mix of Dutch and English all over the system and have thus chosen to do everything in the same language for consistency reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I was young I wanted to write everything in my own language, as for keywords...&lt;br&gt;&#xA;But that just doesn't seem possible to accomplish. Maybe this is a good idea for a future language?&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-12T13:26:02.457" CommunityOwnedDate="2010-09-12T13:26:02.457" />
  <row Id="3047" PostTypeId="2" ParentId="2948" CreationDate="2010-09-12T13:38:45.070" Score="1" ViewCount="" Body="&lt;p&gt;In my experience pre planning what you will do in the next day leads to major productivity boosts.  So having these scrum like meetings are worth the lost time for that reason alone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to keep them short though, or even do it in a group Skype chat everyday at the same time.  Just be sure to read eachothers updates though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A daily status report at the end of each day before you go home has the same effect.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-12T13:38:45.070" CommunityOwnedDate="2011-02-21T11:56:32.877" />
  <row Id="3048" PostTypeId="2" ParentId="2972" CreationDate="2010-09-12T13:45:43.997" Score="2" ViewCount="" Body="&lt;p&gt;I'll grab a pen and paper and start drawing out the problem at hand.  I can focus a lot better this way and organize my thoughts  better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I'll just open up notepad for the same effect.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-12T13:45:43.997" />
  <row Id="3049" PostTypeId="1" AcceptedAnswerId="8771" CreationDate="2010-09-12T13:50:45.173" Score="11" ViewCount="568" Body="&lt;p&gt;I would like to do some web programming using functional programming. What decent web-frameworks exists for funtional programming languages?&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2011-05-18T22:06:48.153" Title="What decent web-frameworks exists for functional programming?" Tags="&lt;web-development&gt;&lt;functional-programming&gt;&lt;frameworks&gt;" AnswerCount="6" FavoriteCount="3" />
  <row Id="3050" PostTypeId="2" ParentId="1542" CreationDate="2010-09-12T13:55:06.803" Score="3" ViewCount="" Body="&lt;p&gt;I think that this isn't specific to Haskell, but functional programming. Here is a comparison, &lt;a href=&quot;http://www.slideshare.net/Arbow/comparing-cpp-and-erlang-for-motorola-telecoms-software&quot; rel=&quot;nofollow&quot;&gt;Comparing C++ And Erlang For Motorola Telecoms Software&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-20T15:32:41.337" LastActivityDate="2010-09-20T15:32:41.337" CommentCount="1" />
  <row Id="3051" PostTypeId="2" ParentId="870" CreationDate="2010-09-12T14:00:55.430" Score="10" ViewCount="" Body="&lt;p&gt;Worth mentioning:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/The_Mythical_Man-Month&quot; rel=&quot;nofollow&quot;&gt;The Mythical Man-Month&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/B3AZV.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-12T14:00:55.430" CommunityOwnedDate="2011-01-21T21:28:48.980" />
  <row Id="3052" PostTypeId="2" ParentId="2948" CreationDate="2010-09-12T14:04:13.227" Score="19" ViewCount="" Body="&lt;p&gt;I find these meetings very valuable. They offer the following benefits—in return of spending just 15 minutes!&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Keeps everyone on-topic&lt;/strong&gt;.  It's easy to dig into your own problems and forget about what others do, or to repeat work being done by someone else.  Daily meetings prevent this from happening.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Doesn't allow people to slack&lt;/strong&gt;.  At these meetings you make promises.  Then you just &lt;em&gt;have to&lt;/em&gt; try to keep them.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Makes people interact&lt;/strong&gt;.  Programmers usually don't like talking to people.  However, in such meetings they get encouragement (and reprimands) from their colleagues, which has positive effect on morale.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Gathers everyone in one place&lt;/strong&gt;.  You get a bonus of knowing that everyone will come there.  This can be used to arrange other meetings, make announcements and to continue this daily meeting in smaller groups to discuss specific problems.  Usually, organizing such meetings takes a lot of attention and requires skills that programmers don't like to use.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="34" LastEditorUserId="7911" LastEditorDisplayName="" LastEditDate="2011-02-21T12:00:29.490" LastActivityDate="2011-02-21T12:00:29.490" CommunityOwnedDate="2011-02-21T11:56:32.877" />
  <row Id="3053" PostTypeId="2" ParentId="1954" CreationDate="2010-09-12T14:07:53.297" Score="0" ViewCount="" Body="&lt;p&gt;This is more of a photo blog:&#xA;&lt;a href=&quot;http://www.flickr.com/groups/lifehacker-workspace-showandtell/pool/with/4982096137/&quot; rel=&quot;nofollow&quot;&gt;Lifehacker Workspace Show and Tell&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's about work/home office pictures of people's work area.  I like to check out how other people organize their computer area, dual/triple monitor setups, etc.&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-12T14:07:53.297" CommunityOwnedDate="2011-01-28T09:09:12.040" />
  <row Id="3055" PostTypeId="2" ParentId="272" CreationDate="2010-09-12T14:18:22.047" Score="3" ViewCount="" Body="&lt;p&gt;Generally, I like to call myself a &lt;strong&gt;Software Craftsman&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From &lt;a href=&quot;http://manifesto.softwarecraftsmanship.org/&quot; rel=&quot;nofollow&quot;&gt;Manifesto for Software Craftsmanship&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work we have come to value:&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;Not only working software, but also well-crafted software&lt;/li&gt;&#xA;  &lt;li&gt;Not only responding to change, but also steadily adding value&lt;/li&gt;&#xA;  &lt;li&gt;Not only individuals and interactions, but also a community of professionals&lt;/li&gt;&#xA;  &lt;li&gt;Not only customer collaboration, but also productive partnerships&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;  &#xA;  &lt;p&gt;That is, in pursuit of the items on the left we have found the items on the right to be indispensable.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-12T14:18:22.047" CommunityOwnedDate="2010-12-26T17:01:49.080" CommentCount="3" />
  <row Id="3057" PostTypeId="2" ParentId="2846" CreationDate="2010-09-12T14:43:28.813" Score="41" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;[Objective:C]&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hate those brackets, but I have no choice. We need to write the application for iPhone, and Apple told me that I have to write it with Objective C if I don't want to be in real trouble...&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-09-12T14:43:28.813" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="7" />
  <row Id="3058" PostTypeId="2" ParentId="3033" CreationDate="2010-09-12T14:57:16.820" Score="3" ViewCount="" Body="&lt;p&gt;Everyone does all the time in everything they do. Your actions disclose your values, your morality and your ethics, regardless of what you say or think or think you believe. If there's a discrepancy between them and it arises from a considered choice, not some sort of reflex or &quot;passion of the moment&quot; or out of the possession of misinformation or ignorance you could not remedy, then that choice makes clear what your true moral and ethical values are. If compensation can change your choice when faced with a particular decision, then that simply shows that money or other forms of material value are part of your moral and ethical code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll also add that your list discloses things about your own moral sentiments and does not stem from some absolute moral or ethical source. I am not passing judgment or commenting on it in any way, just pointing out that presumably these are things you care about and, perhaps, things you are sometimes conflicted about.&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-09-12T14:57:16.820" />
  <row Id="3059" PostTypeId="2" ParentId="3033" CreationDate="2010-09-12T15:24:34.180" Score="4" ViewCount="" Body="&lt;p&gt;Overall, I always keep the &lt;a href=&quot;http://www.acm.org/about/se-code&quot; rel=&quot;nofollow&quot;&gt;Software Engineering Code of Ethics&lt;/a&gt; in mind. However, to address some of your particular points:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Do you accept known bugs as a risk for the end-user?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It depends. If it's a mission critical system and the bug is a showstopper, that's unacceptable. However, if it's a minor flaw that has workarounds in a non-critical system, that's acceptable. I always consider the impact of the problem on the system and to the users (and people affected by) the system.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Do you always secure and encrypt private data delivered end-users in your web application?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If I was on a project where this applied, I would consult any applicable laws and guidelines and follow them. If there were no applicable guidelines, I would err on the side of caution and use some form of security. Of course, you have to weigh a number of factors, ranging from how the system is deployed (physical locations, connections between nodes) and performance of any algorithms or techniques used.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Did you ever write software that is legal but morally controversial, like for weapons industry.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;All of my jobs (as you can see in my profile) have been in the defense industry (and I'm also planning on working in the defense or intelligence industries after graduation), including work on ISR systems and Command and Control systems. I don't understand anyone, especially really good software engineers with skills that these projects need, who says that they won't build such systems. The way I see it, by bringing the best software engineering practices to these systems, you are only making them safer and more reliable. And these systems that involve life and death need to be as safe and reliable as possible.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-12T15:24:34.180" CommentCount="2" />
  <row Id="3060" PostTypeId="2" ParentId="1483" CreationDate="2010-09-12T15:25:00.060" Score="0" ViewCount="" Body="&lt;p&gt;I'm from INDIA and as far as I have noticed all the Indians code in English.&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-12T15:25:00.060" CommunityOwnedDate="2010-09-12T15:25:00.060" />
  <row Id="3061" PostTypeId="2" ParentId="3049" CreationDate="2010-09-12T15:36:51.243" Score="1" ViewCount="" Body="&lt;p&gt;As you have left any languages out of the question, I guess you accept multiple languages...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for the language F# there exists &lt;a href=&quot;http://fswebtools.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;FSharp.WebTools&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The F# Web Tools augment the F# distribution with tools to author homogeneous client/server/database web applications in one type-checked project. The modal distinctions between client and server are checked through the use of F# workflows, and LINQ can be used for database access. In the first version, parts of the application are dynamically served as JavaScript. Planned extensions include serving client-side portions as Silverlight code.&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;&lt;a href=&quot;http://tomasp.net/blog/fswebtools-intro.aspx&quot; rel=&quot;nofollow&quot;&gt;F# Web Tools: &quot;Ajax&quot; applications made simple&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;a href=&quot;http://tomasp.net/fswebtools/files/fswebtoolkit-ml.pdf&quot; rel=&quot;nofollow&quot;&gt;Rich client/server web applications in F#&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;a href=&quot;http://tomasp.net/fswebtools/files/fswebtoolkit_v1.pdf&quot; rel=&quot;nofollow&quot;&gt;Ajax-style Client/Server Programming with F#&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-13T21:35:46.590" LastActivityDate="2010-09-13T21:35:46.590" CommentCount="2" />
  <row Id="3062" PostTypeId="1" CreationDate="2010-09-12T15:38:54.797" Score="9" ViewCount="545" Body="&lt;p&gt;I might program in F# in the future and I want to keep abreast of changes and interesting language features that I might have missed. I tried to find some good blogs but have found that there is a lot of noise out there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do others keep abreast of what's happening with F#? (For .NET see &lt;a href=&quot;http://programmers.stackexchange.com/questions/3023/how-do-you-keep-up-to-date-with-the-c-programming-language-and-community&quot;&gt;this question&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2011-01-10T15:48:39.757" Title="How do you keep up to date with the F# programming language and community?" Tags="&lt;stay-updated&gt;&lt;f#&gt;" AnswerCount="6" FavoriteCount="8" />
  <row Id="3063" PostTypeId="2" ParentId="2541" CreationDate="2010-09-12T15:46:56.343" Score="6" ViewCount="" Body="&lt;p&gt;Instead of &quot;releasing&quot; my anger, I used to just slam my first onto the keyboard. It felt good and keyboards were cheap. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, I forgot to stop this habit when I got a laptop. Guess what's under your laptop's keyboard? &lt;em&gt;Your hard drive.&lt;/em&gt; Guess what happens when you apply a lot of blunt pressure to a hard drive?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least I had backups.&lt;/p&gt;&#xA;" OwnerUserId="78" LastActivityDate="2010-09-12T15:46:56.343" CommunityOwnedDate="2011-02-24T18:42:53.810" CommentCount="3" />
  <row Id="3064" PostTypeId="2" ParentId="2846" CreationDate="2010-09-12T15:50:16.510" Score="8" ViewCount="" Body="&lt;p&gt;I'd have to say ColdFusion.  Not only is it excessively &quot;wordy&quot;, it requires a lot of that very type of code to workaround its fairly artificial limitations.  As someone that has used this language for many years, I feel particularly &quot;chosen&quot; to speak out against it now that it has survived far longer than it should have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basic constructs of any decent language include the ability to specify a null value.  You will find no such thing in ColdFusion, only hacks into it's Java layer (another questionable mess) and a ridiculous nod in the form of (cfqueryparam null=&quot;yes&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having a background in C, and despising ASP.NET and Java -- moving to PHP was the best thing I could have done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do not build anything of significance in ColdFusion as your ability to maintain what you write is severely undermined by the language itself.  Who needs THAT kind of help?&lt;/p&gt;&#xA;" OwnerUserId="1213" LastActivityDate="2010-09-12T15:50:16.510" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="6" />
  <row Id="3065" PostTypeId="2" ParentId="3062" CreationDate="2010-09-12T15:56:20.213" Score="6" ViewCount="" Body="&lt;p&gt;Richard Minerich publishes regular &quot;F# Discoveries This Week&quot; posts at &lt;a href=&quot;http://fsharpcentral.com&quot; rel=&quot;nofollow&quot;&gt;http://fsharpcentral.com&lt;/a&gt;. He picks up just about every F#-related blog post, announcement, news item, tutorial, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The forums at &lt;a href=&quot;http://hubfs.net/&quot; rel=&quot;nofollow&quot;&gt;http://hubfs.net/&lt;/a&gt; have been active since the early days of F#, although IMO there's enough critical mass on Stack Overflow to make it worthwhile asking F# questions there.&lt;/p&gt;&#xA;" OwnerUserId="1420" LastEditorUserId="1420" LastEditorDisplayName="" LastEditDate="2011-01-10T15:48:39.757" LastActivityDate="2011-01-10T15:48:39.757" CommentCount="1" />
  <row Id="3066" PostTypeId="1" CreationDate="2010-09-12T15:56:23.037" Score="10" ViewCount="646" Body="&lt;p&gt;What do you think of the F# language? I would like to learn it's positive and negative points.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is your experience with this language? When should or shouldn't someone use F#? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;See also: &lt;a href=&quot;http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/&quot; rel=&quot;nofollow&quot;&gt;F# at Microsoft Research&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:00:28.660" LastActivityDate="2010-12-29T21:26:05.420" Title="What do you think of the F# language?" Tags="&lt;programming-languages&gt;&lt;experience&gt;&lt;f#&gt;" AnswerCount="7" CommentCount="4" FavoriteCount="4" />
  <row Id="3067" PostTypeId="2" ParentId="3023" CreationDate="2010-09-12T16:04:06.713" Score="3" ViewCount="" Body="&lt;p&gt;I like and recommend &lt;a href=&quot;http://www.themorningbrew.net/&quot; rel=&quot;nofollow&quot;&gt;the morning brew&lt;/a&gt; because it provides a good overview about what's hot on each day.&lt;/p&gt;&#xA;" OwnerUserId="525" LastActivityDate="2010-09-12T16:04:06.713" />
  <row Id="3068" PostTypeId="2" ParentId="3066" CreationDate="2010-09-12T16:08:49.273" Score="4" ViewCount="" Body="&lt;p&gt;Here are a few reasons F# is a great language to learn:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Immutable by default&lt;/li&gt;&#xA;&lt;li&gt;Can be mutable (Just in case...)&lt;/li&gt;&#xA;&lt;li&gt;Pattern matching&lt;/li&gt;&#xA;&lt;li&gt;Monads&lt;/li&gt;&#xA;&lt;li&gt;It is object oriented so interoperability with C# is not a problem.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Check out this little piece of my parser that uses partial active patterns to match productions in the ECMAScript language.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;let (|KeyWord|_|) element =&#xA;    match element with&#xA;    | IdentifierName token -&amp;gt;&#xA;        let isMatch = keyWordSet.Contains token.value&#xA;        if isMatch then Some (element, token) else None&#xA;    | _ -&amp;gt; None&#xA;&#xA;let (|FutureReservedWord|_|) element =&#xA;    match element with&#xA;    | IdentifierName token -&amp;gt;&#xA;        let isMatch = futureReservedWordSet.Contains token.value&#xA;        if isMatch then Some (element, token) else None&#xA;    | _ -&amp;gt; None&#xA;&#xA;let (|BooleanLiteral|_|) element =&#xA;    match element with&#xA;    | IdentifierName token -&amp;gt;&#xA;        match token.value with&#xA;        | &quot;true&quot; | &quot;false&quot; -&amp;gt; Some (element, token)&#xA;        | _ -&amp;gt; None&#xA;    | _ -&amp;gt; None&#xA;&#xA;let (|NullLiteral|_|) element =&#xA;    match element with&#xA;    | IdentifierName token -&amp;gt;&#xA;        match token.value with&#xA;        | &quot;null&quot; -&amp;gt; Some (element, token)&#xA;        | _ -&amp;gt; None&#xA;    | _ -&amp;gt; None&#xA;&#xA;let (|Literal|_|) element =&#xA;    match element with&#xA;    | NullLiteral (element, token)&#xA;    | BooleanLiteral (element, token) -&amp;gt; Some (element, token)&#xA;    | NumericLiteral token&#xA;    | StringLiteral token&#xA;    | RegularExpressionLiteral token -&amp;gt; Some (element, token)&#xA;    | _ -&amp;gt; None&#xA;&#xA;let (|ReservedWord|_|) element =&#xA;    match element with&#xA;    | KeyWord (element, token)&#xA;    | FutureReservedWord (element, token) -&amp;gt; Some (element, token)&#xA;    | _ -&amp;gt; None&#xA;&#xA;let (|Identifier|_|) element =&#xA;    match element with&#xA;    | ReservedWord (element, token) -&amp;gt; None&#xA;    | IdentifierName token -&amp;gt; Some (element, token)&#xA;    | _ -&amp;gt; None&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Explanation&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you specify an active pattern like &lt;code&gt;(|...|_|)&lt;/code&gt; you are telling the compiler that a match won't always be made for this pattern. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This production in the ECMAScript language:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Identifier :: &#xA;    IdentifierName but not ReservedWord &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;is matched with the following code&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;let (|Identifier|_|) element =&#xA;    match element with&#xA;    | ReservedWord (element, token) -&amp;gt; None&#xA;    | IdentifierName token -&amp;gt; Some (element, token)&#xA;    | _ -&amp;gt; None&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Another way you can write an active pattern is like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;let (|Even|Odd|) number =&#xA;    if number % 2 = 0 then Even else Odd&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Notice that every number passed in will return a match.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;let doSomething number =&#xA;    match number with&#xA;    | Even -&amp;gt; printfn &quot;%i is an even number!&quot; number &#xA;    | Odd -&amp;gt; printfn &quot;%i is an odd number!&quot; number &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="712" LastEditorUserId="712" LastEditorDisplayName="" LastEditDate="2010-09-12T20:01:22.937" LastActivityDate="2010-09-12T20:01:22.937" CommentCount="6" />
  <row Id="3069" PostTypeId="1" CreationDate="2010-09-12T16:10:13.327" Score="10" ViewCount="236" Body="&lt;p&gt;If you browse the &lt;a href=&quot;http://stackoverflow.com/questions/tagged/code-golf&quot;&gt;code golf questions on SO&lt;/a&gt;, you notice a ton of non-standard but real world (Eg not brain-f*ck) languages like &lt;a href=&quot;http://stackoverflow.com/questions/3681841/code-golf-recognize-ascii-art-boxes/3681896#3681896&quot;&gt;F#&lt;/a&gt;, &lt;a href=&quot;http://stackoverflow.com/questions/3681841/code-golf-recognize-ascii-art-boxes/3692217#3692217&quot;&gt;Scala&lt;/a&gt;, &lt;a href=&quot;http://stackoverflow.com/questions/3620766/code-golf-guess-the-number-lottery-style/3625895#3625895&quot;&gt;R&lt;/a&gt;, &lt;a href=&quot;http://stackoverflow.com/questions/3543811/code-golf-happy-primes/3552066#3552066&quot;&gt;J&lt;/a&gt; and &lt;a href=&quot;http://stackoverflow.com/questions/3543811/code-golf-happy-primes/3544279#3544279&quot;&gt;Clojure&lt;/a&gt;. Visiting their websites, some of the languages look interesting solving problems in whatever language your already using.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However there is coding in spare time, and coding for money. The closest thing we have to the truth on who uses a language is the &lt;a href=&quot;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&quot; rel=&quot;nofollow&quot;&gt;TIOBE Index&lt;/a&gt;, which lists none of the above languages in the top 10-15. Which makes me wonder if I'll ever use them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I even bother learning some of the small niche languages? It doesn't seem I would be making money, and some will probably fail anyway.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-20T03:14:00.270" Title="Should I bother learning about small or niche languages?" Tags="&lt;programming-languages&gt;" AnswerCount="7" CommentCount="5" />
  <row Id="3070" PostTypeId="2" ParentId="3062" CreationDate="2010-09-12T16:14:59.950" Score="5" ViewCount="" Body="&lt;p&gt;I recommend &lt;a href=&quot;http://tomasp.net/&quot; rel=&quot;nofollow&quot;&gt;http://tomasp.net/&lt;/a&gt; which is run by &lt;a href=&quot;http://stackoverflow.com/users/33518/tomas-petricek&quot;&gt;Tomas Petricek&lt;/a&gt;. He is a very active use over at Stack Overflow for the F# tag. Actually he has answered a good portion of my F# questions.&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-12T16:14:59.950" />
  <row Id="3071" PostTypeId="2" ParentId="3069" CreationDate="2010-09-12T16:16:14.690" Score="7" ViewCount="" Body="&lt;p&gt;I would learn any language that introduces me to concepts and paradigms I've never seen before. That's why I learned haskell and scheme - they introduced me to function programming and mostly-functional programming respectively. I wouldn't have cared less whether scheme and haskell were widely used, aside from how that would affect the available documentation and resources.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So basically, &lt;strong&gt;if a small niche language introduces you to new concepts&lt;/strong&gt; and paradigms (especially those you can apply to other languages), then learn away!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other reasons you may want to learn a 'small/niche' language:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The language allows you to solve a particular (type of) problem 'better' (faster, with a better solution, more portably, etc) than any other language&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The language allows you to solve problems just as well as a popular language, but it has some cool features that you like (eg. clojure)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;You want to help develop the language&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1416" LastEditorUserId="1416" LastEditorDisplayName="" LastEditDate="2010-09-12T16:30:14.753" LastActivityDate="2010-09-12T16:30:14.753" />
  <row Id="3072" PostTypeId="2" ParentId="3069" CreationDate="2010-09-12T16:18:20.413" Score="2" ViewCount="" Body="&lt;p&gt;The reason to study a niche language is rarely the expectation that you'll use it directly (for money or otherwise). It's usually to learn some new aspect or style of programming. Doing so is likely to make you a better (and yes, probably more valuable) programmer, even if you never use that language to produce &quot;production&quot; code.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-09-12T16:18:20.413" />
  <row Id="3073" PostTypeId="1" CreationDate="2010-09-12T16:22:46.143" Score="2" ViewCount="270" Body="&lt;p&gt;The question is really about vocabulary, but since it's about the vocabulary used to describe various things you encounter in programming languages, it would be best if someone could point me to a good word list online, as well as answering what's written below.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Python,&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;endem = [w for w in text if word.endswith(em)]&#xA;#what is....................^this, ^this, ^this&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I'm not asking what these 'parts of speech' do in the 'sentence.' I'm asking&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) What is the thing to the left of the dot called in Python&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) What is the thing to the right of the dot called in Python&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) What is the thing in the parens called in Python&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and, as mentioned above&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) Is there a list of these words online, so that I can learn about the 'parts of speech' in programming languages?&lt;/p&gt;&#xA;" OwnerUserId="1398" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:13:56.943" LastActivityDate="2010-11-16T15:13:56.943" ClosedDate="2010-09-13T19:08:37.137" Title="The vocabulary used to describe what are like parts of speech in programming languages" Tags="&lt;programming-languages&gt;&lt;books&gt;&lt;python&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="1" />
  <row Id="3074" PostTypeId="2" ParentId="2948" CreationDate="2010-09-12T16:25:08.310" Score="2" ViewCount="" Body="&lt;p&gt;It can be useful, but often is not in practice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a team that does not have easy access to other team members as they work, or your organization makes it difficult to find the managers/PMs/whoever then at least you know you have one shot per day to get a question answered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In practice it sometimes encourages people not to discuss issues immediately, and it can become a considerable time suck.  For example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I am only on one active development project (usually I am on two) usually there are at least one finishing out QA and one spinning up at the same time.  That is three 15 min standups a day.  Mine are nearly never back-to-back. You loose some time in making sure you are at a stopping point before each one and similarly getting back on track after each one.  Even if you assume those losses are one 10 min each that translates to more than a whole workday lost to standups each week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Add in the commit meetings and demos and that easily eats a whole additional day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO if your team is having a communication issue then daily meetings can help, but doing them otherwise is simply too much of a resource sink.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-12T16:25:08.310" CommunityOwnedDate="2011-02-21T11:56:32.877" />
  <row Id="3075" PostTypeId="2" ParentId="3073" CreationDate="2010-09-12T16:33:00.540" Score="2" ViewCount="" Body="&lt;p&gt;According to &lt;a href=&quot;http://docs.python.org/reference/grammar.html&quot; rel=&quot;nofollow&quot;&gt;http://docs.python.org/reference/grammar.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;dotted_name&lt;/li&gt;&#xA;&lt;li&gt;decorator&lt;/li&gt;&#xA;&lt;li&gt;arglist&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-12T16:33:00.540" CommentCount="2" />
  <row Id="3076" PostTypeId="2" ParentId="3069" CreationDate="2010-09-12T16:34:30.743" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Linguistic_relativity&quot; rel=&quot;nofollow&quot;&gt;The Sapir-Whorf Hypothesis&lt;/a&gt;.  It states, more or less, that what you can think of is limited by what you have the language to describe.  The consequence of this is that multi-lingual people are able to think in ways that single language speakers may not be able to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many people (myself included) think this holds true to programming as well.  Learning Lisp, for example, teaches you a whole new way of thinking about problems that you can apply to C# or Java or Python.  The more language paradigms you've learnt, the more tools will be in your mental toolbox, regardless of what language you're actually using.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-12T16:34:30.743" CommentCount="2" />
  <row Id="3077" PostTypeId="2" ParentId="2138" CreationDate="2010-09-12T16:45:14.633" Score="0" ViewCount="" Body="&lt;p&gt;As one of my first Perl courseworks, I wrote a frontend for the MBROLA speech synthesizer. It did a pretty good job at transforming written German text into SAMPA notation producing intellegible speech. But the program structure was appalling. I didn't use any other variable than $_, where are stored the input from stdin. The rest of the program was a huge amount of s/// statements that eventually transformed the text into SAMPA notation. I even used some totally arbitrary looking transformations to avoid having to store some temporary data in a separate variable.&lt;/p&gt;&#xA;" OwnerUserId="1281" LastActivityDate="2010-09-12T16:45:14.633" CommentCount="1" />
  <row Id="3078" PostTypeId="2" ParentId="2001" CreationDate="2010-09-12T16:46:17.873" Score="9" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;defun relaxation&#xA;    if relationship.married True&#xA;        gohome&#xA;    elif&#xA;        pickup.chicks&#xA;end&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1398" LastActivityDate="2010-09-12T16:46:17.873" CommentCount="5" />
  <row Id="3079" PostTypeId="2" ParentId="2138" CreationDate="2010-09-12T16:57:53.817" Score="0" ViewCount="" Body="&lt;p&gt;Forgetting the WHERE clause when you are programmatically building an SQL DELETE statement is always, erm, interesting...&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-12T16:57:53.817" CommentCount="1" />
  <row Id="3080" PostTypeId="2" ParentId="2959" CreationDate="2010-09-12T17:00:45.963" Score="3" ViewCount="" Body="&lt;p&gt;Need to add a bit to this (and @GoodEnoughs):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;but this only sounds like a minor&#xA;  nuisance for distributed version&#xA;  control.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Emphatically no - what a &quot;server&quot; build does is tell you that your trunk will build and pass its tests more or less from clean (the less is the amount of config you need to do of your environment).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm contemplating a switch to DVCS but even having done so you will drag my continuous integration from my cold dead hands.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To take a simple example - you're developing feature &quot;a&quot; he's developing feature &quot;b&quot; distributed or not at some point you need to stitch it all together - if, when you commit, you forget to add a file the app will build on your machine but it won't anywhere else. So when you push the build to your &quot;trunk&quot; the Continuous Integration will trigger and the build will fail and you will know and hopefully &lt;em&gt;before&lt;/em&gt; anyone pulls your not quite so complete code you'll be able to take steps. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're working on a project with multiple developers you've got to be able to define where release versions come from - the trunk in effect - this is true regardless of how your version control works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've added a feature - especially one on which other people have a dependency - to be able to be confident that when it is pushed to &quot;live&quot; that it builds and passes tests somewhere other than your dev environment is huge. More than that, I deploy from builds from my build server - its kind of how one specifies the &quot;definitive&quot; build. Ultimately I'm going to have user triggered deployment builds. Its no good saying that you can work round it - you can't if you need it (and I &lt;em&gt;have&lt;/em&gt; scrambled round dev boxes in an office to find and commit missing files).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is that all a bit strong? Don't know - but my build server is one of those things that having got I have no wish to give back.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-09-12T17:00:45.963" />
  <row Id="3081" PostTypeId="2" ParentId="2223" CreationDate="2010-09-12T17:02:13.197" Score="2" ViewCount="" Body="&lt;p&gt;For sheer inventiveness and ingenuity, I'd have to go with Johnny Chung Lee and the things he did with &lt;a href=&quot;http://www.johnnylee.net/projects/wii/&quot; rel=&quot;nofollow&quot; title=&quot;the Wii remote&quot;&gt;the Wii remote&lt;/a&gt;. In my mind, it's one of the best examples of creativity meeting intelligence.&lt;/p&gt;&#xA;" OwnerUserId="293" LastActivityDate="2010-09-12T17:02:13.197" />
  <row Id="3082" PostTypeId="2" ParentId="3069" CreationDate="2010-09-12T17:02:26.080" Score="0" ViewCount="" Body="&lt;p&gt;Agree with all of the points mentioned. Another motivation for learning a niche language is the possibility that the language will one day become very popular. In this situation, your early investment in the language could give you leads into work on influential frameworks, and elements of the language that could be in high demand in the future.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the language does become popular, you will already be skilled in it, and therefore you will be in high demand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Low probability, potentially high rewards.&lt;/p&gt;&#xA;" OwnerUserId="1388" LastActivityDate="2010-09-12T17:02:26.080" CommentCount="1" />
  <row Id="3083" PostTypeId="2" ParentId="610" CreationDate="2010-09-12T17:13:35.107" Score="7" ViewCount="" Body="&lt;p&gt;I love the &quot;everything is an expression&quot;-idea, which can be found in &lt;a href=&quot;http://haxe.org/doc/intro&quot; rel=&quot;nofollow&quot;&gt;haXe&lt;/a&gt; (I suppose the feature actually comes from functional languages).&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function fib(n) {//the compiler infers the type of this function to Int-&amp;gt;Int&#xA;    return &#xA;        switch (n) {&#xA;            case 0, 1: &#xA;                1;&#xA;                /* in case you wonder: case statements can have&#xA;                   multiple conditions, but doesn't allow fallthroughs,&#xA;                   because it is terminated by the next case/default&#xA;                   statement or the closing brace of the switch */&#xA;            default: &#xA;                if (n &amp;lt; 0) &#xA;                    fib(n + 2) - fib(n + 1);&#xA;                else &#xA;                    fib(n - 1) + fib(n - 2);&#xA;        }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Basically, the function body is just one expression. A block is evaluated to the last evaluated expression of the block. A loop is evaluated to the last pass (or &lt;code&gt;null&lt;/code&gt;, in case the body is never evaluated). And so on. I think, this is very elegant, concise, safe and less cryptic than for example the conditional operator.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-09-12T17:13:35.107" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="2" />
  <row Id="3084" PostTypeId="2" ParentId="2001" CreationDate="2010-09-12T17:21:17.510" Score="3" ViewCount="" Body="&lt;p&gt;For the record, I'm also a fan of the exercise and work-on-your-own-project options, but since those were already mentioned I'll suggest the following instead: sit down, empty your mind, and do absolutely nothing. This may sound boring, but personally I find it both relaxing and recharging. Do this while riding the bus so that you could have some passive stimulus, but not of the type that requires your attention. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It feels a lot like letting your muscles relax at the end of physical labor, but for your mind. You let go of all mental effort and your mind drifts naturally and calmly.&lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-12T17:21:17.510" />
  <row Id="3085" PostTypeId="2" ParentId="610" CreationDate="2010-09-12T17:26:52.333" Score="25" ViewCount="" Body="&lt;p&gt;The List Comprehensions from &lt;strong&gt;Python&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; list = [1,2,3,4,5]&#xA;&amp;gt;&amp;gt;&amp;gt; [x*2 for x in list]&#xA;[2, 4, 6, 8, 10]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1402" LastActivityDate="2010-09-12T17:26:52.333" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="10" />
  <row Id="3086" PostTypeId="1" AcceptedAnswerId="3087" CreationDate="2010-09-12T17:43:04.043" Score="14" ViewCount="544" Body="&lt;p&gt;I've studied mathematics and found the subject very interesting, but after getting into programming and coding stuff, I feel like I've forgotten most of the advanced stuff that  I've studied. I know some of you might find this outrageous, but in my case its the truth. Now I want to repent and make up for that mistake by re-learning, but theres just one problem I don't know where to start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;List of Topics based on answers to the current question and this &lt;a href=&quot;http://programmers.stackexchange.com/questions/101/should-certain-math-classes-be-required-for-a-computer-science-degree2.3.4.&quot;&gt;Math Classes&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Discrete mathematics&lt;/li&gt;&#xA;&lt;li&gt;Calculus &lt;/li&gt;&#xA;&lt;li&gt;Elementary Algebra&lt;/li&gt;&#xA;&lt;li&gt;Modular Arithmetic&lt;/li&gt;&#xA;&lt;li&gt;computational number theory&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="985" LastEditorUserId="985" LastEditorDisplayName="" LastEditDate="2010-09-23T06:46:55.523" LastActivityDate="2010-09-23T12:24:25.377" Title="Which are the topics in Mathematics that a developer should absolutely know?" Tags="&lt;learning&gt;&lt;advice&gt;" AnswerCount="10" CommentCount="8" FavoriteCount="8" />
  <row Id="3087" PostTypeId="2" ParentId="3086" CreationDate="2010-09-12T17:48:27.907" Score="8" ViewCount="" Body="&lt;p&gt;An understanding of Elementary algebra can mean the difference between writing a complex slow pile of trash and a simple efficient program.&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-12T17:48:27.907" CommentCount="4" />
  <row Id="3088" PostTypeId="2" ParentId="3086" CreationDate="2010-09-12T18:01:51.727" Score="3" ViewCount="" Body="&lt;p&gt;I have found that various number theory topics have helped over time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A couple examples are &lt;a href=&quot;http://en.wikipedia.org/wiki/Modular_arithmetic&quot; rel=&quot;nofollow&quot;&gt;modular arithmetic&lt;/a&gt; or &lt;a href=&quot;http://en.wikipedia.org/wiki/Computational_number_theory&quot; rel=&quot;nofollow&quot;&gt;computational number theory&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-12T18:01:51.727" />
  <row Id="3089" PostTypeId="1" AcceptedAnswerId="3091" CreationDate="2010-09-12T18:48:42.213" Score="27" ViewCount="3184" Body="&lt;p&gt;My question is: What is the most effective thing you have done that improved your programming skills? What would you recommend to others that want to improve?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do expect varied answers here and no single &quot;one size fits all&quot; answer - I would like to know what worked for different people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;PS&lt;/strong&gt; : This question was asked in&#xA; stack-overflow. I thought it would be&#xA; better to discuss this question here.&lt;/p&gt;&#xA;" OwnerUserId="1373" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:07:46.713" LastActivityDate="2011-02-10T11:19:58.543" CommunityOwnedDate="2011-02-02T05:23:59.377" Title="What is the single most effective thing you did to improve your programming skills?" Tags="&lt;self-improvement&gt;&lt;skills&gt;" AnswerCount="33" CommentCount="1" FavoriteCount="23" />
  <row Id="3090" PostTypeId="2" ParentId="1483" CreationDate="2010-09-12T18:49:26.890" Score="2" ViewCount="" Body="&lt;p&gt;I came to US less than a decade ago and English is not my first language. Even though I learned how to read and write English in school, I did not speak English reasonably well until I got married to someone who did not speak my language. Well, English was not her first language as well but we found it was easier to use English to communicate than trying to learn each others language. I think the same holds for programming too. If everyone expressed their ideas in their own language, the knowledge would become too scattered. Should English be mandatory? Probably not. Most people wouldn't need it. My family was mostly farmers and most of them would never need to know English to lead a useful life. I wouldn't say successful life because it has different meanings in different parts of the world. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't wish to enter a holy war but English in programming may have nothing to do with 'Ugly American' programmer. It may just be a convenient way to collaborate for  people speaking different languages. It could have been any language. May be in the future we will code and comment in Chinese. If that happens it probably wouldn't be because of 'Ugly Chinese' programmers, rather it would be because more people in more countries use Chinese to communicate with outsiders. &lt;/p&gt;&#xA;" OwnerUserId="921" LastActivityDate="2010-09-12T18:49:26.890" CommunityOwnedDate="2010-09-12T18:49:26.890" />
  <row Id="3091" PostTypeId="2" ParentId="3089" CreationDate="2010-09-12T18:52:37.803" Score="79" ViewCount="" Body="&lt;p&gt;Programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, there are books, there are coding katas, there are sites like this, but I believe that the best way to improve as a developer is to work on real project, with real fickle customers with real, ever-changing requirements with real engineering problems.  There's no substitute for experience.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-12T18:52:37.803" CommunityOwnedDate="2011-02-02T05:23:59.377" CommentCount="11" />
  <row Id="3092" PostTypeId="2" ParentId="3089" CreationDate="2010-09-12T18:52:40.483" Score="25" ViewCount="" Body="&lt;p&gt;Constantly learn and practice what you learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By means of: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Personal Projects:&lt;/strong&gt; Ever since I started programming I have been doing personal projects.  Ranging from little games, image processing, steganography, implementing file type specifications, implementing various protocols from scratch, or implementing various programs over time.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reading books:&lt;/strong&gt;  I decided to read and follow through various books in my spare time.   There are a lot of well written books by experts just sitting around waiting to be read.  The depth you can get from a book is unmatched by for example reading various forum posts.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-12T20:30:23.727" LastActivityDate="2010-09-12T20:30:23.727" CommunityOwnedDate="2011-02-02T05:23:59.377" CommentCount="1" />
  <row Id="3093" PostTypeId="2" ParentId="3089" CreationDate="2010-09-12T18:56:11.237" Score="3" ViewCount="" Body="&lt;p&gt;Trying to build a game engine from scratch, just for fun.  It touches on so many different aspects of programming that I had to learn all sorts of new things in order to get various parts of it to work.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-12T18:56:11.237" CommunityOwnedDate="2011-02-02T05:23:59.377" />
  <row Id="3094" PostTypeId="2" ParentId="1483" CreationDate="2010-09-12T19:03:39.767" Score="1" ViewCount="" Body="&lt;p&gt;I'm from China, and I code in English like how others did. Except I use &quot;words for children&quot; in some API methods, I lack vocabulary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imagine a API with identifiers written in German (or even Japanese) is being used in English code...&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-09-12T19:03:39.767" CommunityOwnedDate="2010-09-12T19:03:39.767" />
  <row Id="3095" PostTypeId="2" ParentId="1360" CreationDate="2010-09-12T19:06:34.333" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Teamwork&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to think that working together as a team can help a lot.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-12T19:06:34.333" CommentCount="1" />
  <row Id="3097" PostTypeId="2" ParentId="681" CreationDate="2010-09-12T19:10:59.820" Score="0" ViewCount="" Body="&lt;p&gt;Ruby is one of them:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;99.downto(1) do |n|&#xA;  puts &quot;#{n} bottle(s) of beer on the wall... I forgot&quot;&#xA;end&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The definition of pseudocode is subjective, some people wanted pseudocode to look like English, and AppleScript is like that. However, a true natural language programming language forgives grammar errors. &#xA;You can claim the RPN notation &lt;code&gt;&quot;Hello, world!&quot; STDOUT print&lt;/code&gt; as pseudocode because it uses the subject-object-verb ordering in Japanese.&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-09-12T19:10:59.820" />
  <row Id="3098" PostTypeId="2" ParentId="1483" CreationDate="2010-09-12T19:13:33.163" Score="1" ViewCount="" Body="&lt;p&gt;In Quebec, teachers are apparently obligated to show their class material in French, which tends to result in awkward Frenglish code. Many students apparently follow the lead, but I'd say most are incomfortable with such bilingual code, and in most projects people will try to stick with English only, to the best of their English knowledge.&lt;/p&gt;&#xA;" OwnerUserId="90" LastActivityDate="2010-09-12T19:13:33.163" CommunityOwnedDate="2010-09-12T19:13:33.163" />
  <row Id="3099" PostTypeId="2" ParentId="3089" CreationDate="2010-09-12T19:14:17.013" Score="3" ViewCount="" Body="&lt;p&gt;I got an internship in IT.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still in HS here. :)&lt;/p&gt;&#xA;" OwnerUserId="1294" LastActivityDate="2010-09-12T19:14:17.013" CommunityOwnedDate="2011-02-02T05:23:59.377" CommentCount="3" />
  <row Id="3100" PostTypeId="2" ParentId="2319" CreationDate="2010-09-12T19:18:14.180" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.localjobnetwork.com/&quot; rel=&quot;nofollow&quot;&gt;Local JobNetwork&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="688" LastActivityDate="2010-09-12T19:18:14.180" CommunityOwnedDate="2010-09-12T19:18:14.180" />
  <row Id="3101" PostTypeId="2" ParentId="3089" CreationDate="2010-09-12T19:20:04.733" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Participating in programming contests&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I didn't specifically do this to improve programming skills.  I just realized that it seriously affected them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Contests made me learn about—and actually implement—a lot of standard algorithms and operations with common data structures.  They taught &#xA;me to find &quot;corner cases&quot;, and to write programs in such a way that these cases do not make my code look like a mess.  They taught me to find an effective algorithm for many problems, and, most importantly, not to be afraid of difficulties when I'm to write something non-standard.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;By programming contests I mean contests where you're to write small programs that solve simplified problems.  A participant (or a team) is given limited amount of time and a small problem set.  The goal is to implement the problems in such a way that they pass all the sets prepared by jury.  Usually requirements (time and memory limit) force you to implement effective algorithms.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-12T19:20:04.733" CommunityOwnedDate="2011-02-02T05:23:59.377" CommentCount="2" />
  <row Id="3102" PostTypeId="2" ParentId="3089" CreationDate="2010-09-12T19:28:48.413" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Stop! Hammer time...&lt;/strong&gt; Rather than adding a lot more code, improve your code and thus add less. :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rather than to keep writing bad code you could stop and see how your code can be improved, some ideas:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Documentation&lt;/li&gt;&#xA;&lt;li&gt;OOP, Functional programming, ... &lt;/li&gt;&#xA;&lt;li&gt;Reuse.&lt;/li&gt;&#xA;&lt;li&gt;Readability.&lt;/li&gt;&#xA;&lt;li&gt;Small procedures by extracting methods.&lt;/li&gt;&#xA;&lt;li&gt;Testing.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-12T21:55:43.020" LastActivityDate="2010-09-12T21:55:43.020" CommunityOwnedDate="2011-02-02T05:23:59.377" />
  <row Id="3103" PostTypeId="2" ParentId="3089" CreationDate="2010-09-12T19:50:11.137" Score="15" ViewCount="" Body="&lt;p&gt;Honestly, I'm noticing that answering questions on SO is making me better.  Of course, it's a slow process but I have noticed that in the effort to address other people's questions, I have learned intricacies that I wouldn't normally have explored while solving my own problems.&lt;/p&gt;&#xA;" OwnerUserId="1434" LastActivityDate="2010-09-12T19:50:11.137" CommunityOwnedDate="2011-02-02T05:23:59.377" CommentCount="3" />
  <row Id="3104" PostTypeId="2" ParentId="3089" CreationDate="2010-09-12T19:50:27.610" Score="1" ViewCount="" Body="&lt;p&gt;I implemented User Threads, a mutex library, and an I/O library for the 3rd homework assignment in the Operating Systems course I took last semester. It basically required us to implement a major part of the kernel from scratch (the whole thing was supposed to run in user space, and we weren't allowed to make any changes to the actual kernel) and managing all the data structures, scheduling issues, concurrency corner cases, and hacking around the native scheduling mechanisms was a very difficult task. After finishing it I definitely felt a noticeable &quot;level up&quot; in my programming skills. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-12T19:50:27.610" CommunityOwnedDate="2011-02-02T05:23:59.377" />
  <row Id="3105" PostTypeId="2" ParentId="3002" CreationDate="2010-09-12T20:22:43.667" Score="6" ViewCount="" Body="&lt;p&gt;Work with the technologies you enjoy, and don't worry so much about the money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are doing something you like, you are more likely to become really good at it because it won't be such a chore. It is the skill/expertise that the money will flow to, not so much the language, usually.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-12T20:22:43.667" />
  <row Id="3106" PostTypeId="2" ParentId="2948" CreationDate="2010-09-12T20:31:52.740" Score="5" ViewCount="" Body="&lt;p&gt;I think they are very valuable if they are performed correctly. The format that has worked well for me is this..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Each person gives a short answer to the following questions.&lt;/strong&gt;&lt;br&gt;&#xA;a) What are you working on?&lt;br&gt;&#xA;b) What will you get done by the next meeting (tomorrow)?&lt;br&gt;&#xA;c) Did you accomplish what you said you would get done at the last meeting?&lt;br&gt;&#xA;d) What obstacles are slowing/stopping your progress?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any extended discussion of the above should be curbed during the meeting to keep it short. Anyone can stay after (or meet later in the day) to discuss with the relevant person(s) anything that needs extended coverage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;This achieves the following goals:&lt;/strong&gt;&lt;br&gt;&#xA;a) The team lead/product owner is in the loop about possible delays quickly.&lt;br&gt;&#xA;b) The team lead can eliminate obstacles quickly.&lt;br&gt;&#xA;c) The team lead can identify people spinning their wheels quickly.&lt;br&gt;&#xA;d) It encourages collaboration between team members who might be too introverted to ask for help when they need it.&lt;br&gt;&#xA;e) It encourages momentum by keeping the commitments short (minimizes work expanding to time available for project).&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-12T20:31:52.740" CommunityOwnedDate="2011-02-21T11:56:32.877" CommentCount="2" />
  <row Id="3107" PostTypeId="2" ParentId="2948" CreationDate="2010-09-12T21:03:57.910" Score="5" ViewCount="" Body="&lt;p&gt;I can stand for hours on end. It doesn't make me any more to the point, or have any real significance/impact to a short daily catch-up meeting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;But hey, if standing up lets you re-brand something as agile, it must be good!&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;As for whether regular catch-up meeting in general are a good idea... well they help if you other processes are ineffective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to know what someone did yesterday, and what their next task(s) are, look on the Issue Tracker, where it's already recorded. If there's not a clear filter that tells you this for the whole team, set one up (or find better software).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to know if anyone has any blockers, check your messages (whether email/im/forum/whatever). If anyone has any, they should be notifying both the relevant party and the project lead when they occur, not wasting a day waiting before anyone else finds out, nevermind having a chance to act.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;There's certainly benefit from having regular meetings to discuss the direction of a project - in a general sense, rather than specifics, to make sure everyone understands the overall goals and so on - and held weekly or fortnightly (depending on pace of things).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But spending a quarter of an hour every day just so you can &lt;em&gt;feel&lt;/em&gt; agile and great and stuff? Waste of time.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-09-12T21:03:57.910" CommunityOwnedDate="2011-02-21T11:56:32.877" CommentCount="4" />
  <row Id="3108" PostTypeId="2" ParentId="3089" CreationDate="2010-09-12T21:16:54.037" Score="18" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Be open minded&lt;/strong&gt; and &lt;strong&gt;work with other people more experienced and smart than you&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I learned lot of things in college, reading books, magazines, blogs, attending conferences but nothing was even close to learn with peers who knows what I need to know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Working with smart fellows teach real world solutions to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can learn a lot reading their code, watching their practices and listening their opinions and stories.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be careful with amateurs posing like professionals. Working with them will give you the opposite, your skills will down.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-30T02:39:03.577" LastActivityDate="2010-09-30T02:39:03.577" CommunityOwnedDate="2011-02-02T05:23:59.377" CommentCount="2" />
  <row Id="3109" PostTypeId="2" ParentId="3086" CreationDate="2010-09-12T21:21:03.683" Score="2" ViewCount="" Body="&lt;p&gt;Oh, nobody says logic math!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Statistics and probability is important too, besides disciplines already cited.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-12T21:21:03.683" />
  <row Id="3110" PostTypeId="2" ParentId="3066" CreationDate="2010-09-12T21:47:42.373" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Pattern matching -- The biggest dream feature&lt;/li&gt;&#xA;&lt;li&gt;Active Patterns -- One plus&lt;/li&gt;&#xA;&lt;li&gt;Higher-order functions&lt;/li&gt;&#xA;&lt;li&gt;Imperative programming -- No need to think TOO functionally like Haskell.&lt;/li&gt;&#xA;&lt;li&gt;Computational expressions -- This is more powerful than monads, type-wise.&lt;/li&gt;&#xA;&lt;li&gt;Indentation syntax&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The problems are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Compiler is too slow&lt;/li&gt;&#xA;&lt;li&gt;.NET pollutes the functional part and introduces weird syntaxes&lt;/li&gt;&#xA;&lt;li&gt;Curried function argument order problem (function subject object or function object subject or function acti)&lt;/li&gt;&#xA;&lt;li&gt;Curried vs. Uncurried problem&lt;/li&gt;&#xA;&lt;li&gt;F# functions vs. delegates problem&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-09-12T21:47:42.373" CommentCount="6" />
  <row Id="3111" PostTypeId="2" ParentId="3089" CreationDate="2010-09-12T22:00:28.270" Score="3" ViewCount="" Body="&lt;p&gt;Two things:&lt;br&gt;&#xA;1. &lt;a href=&quot;http://cc2e.com/&quot; rel=&quot;nofollow&quot;&gt;Code complete 2&lt;/a&gt;&lt;br&gt;&#xA;2. Reading a lot of open-source code&lt;/p&gt;&#xA;" OwnerUserId="74" LastActivityDate="2010-09-12T22:00:28.270" CommunityOwnedDate="2011-02-02T05:23:59.377" />
  <row Id="3112" PostTypeId="2" ParentId="177" CreationDate="2010-09-12T22:02:56.433" Score="4" ViewCount="" Body="&lt;p&gt;I presume you knows the concept. Well, I don't know very well yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The short answer is that I believe in popularity of this model to concurrency in short and medium term. I always loved lambda and closures and I see actor like closures specially handled to power concurrency. Thus multi core processors bring to us a new paradigm to programming, concurrency is obligatory to achieve high performance. Actor model seems the ease path to exploit modern hardware.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sooner or later (i hope sooner) almost every mainstream language will support a better model to concurrency. IMHO Actor model so well implemented in Erlang should be the best candidate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One obstacle to Actor model gain popularity is the little impedance with OOP, the dominant paradigm now. But the first step is being given, the main languages are implementing some functional features which will clean the path to Actor model.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am reading a lot about this issue, I think it is very important to every programmer advance in his/her skills.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-12T22:02:56.433" CommentCount="1" />
  <row Id="3113" PostTypeId="2" ParentId="2846" CreationDate="2010-09-12T22:04:32.777" Score="-8" ViewCount="" Body="&lt;h2&gt;ML&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;it's just horrible.&lt;br/&gt;&#xA;type inference and pattern matching makes it's so hard to make one line of code.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;fun fac 0 = 1&#xA;  | fac n = n * fac (n-1)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;sure after you compile it , it will run forever...&lt;/p&gt;&#xA;" OwnerUserId="1453" LastActivityDate="2010-09-12T22:04:32.777" CommunityOwnedDate="2010-09-12T22:04:32.777" CommentCount="2" />
  <row Id="3114" PostTypeId="2" ParentId="2846" CreationDate="2010-09-12T22:12:47.760" Score="2" ViewCount="" Body="&lt;p&gt;I had the &quot;pleasure&quot; to work with Progress, an awful 4GL.&lt;/p&gt;&#xA;" OwnerUserId="1455" LastEditorUserId="1455" LastEditorDisplayName="" LastEditDate="2010-09-13T00:16:10.073" LastActivityDate="2010-09-13T00:16:10.073" CommunityOwnedDate="2010-09-12T22:12:47.760" />
  <row Id="3115" PostTypeId="2" ParentId="1745" CreationDate="2010-09-12T22:17:27.750" Score="19" ViewCount="" Body="&lt;p&gt;OOP reuse. It's the biggest fallacy marketed in programming.&lt;/p&gt;&#xA;" OwnerUserId="1455" LastActivityDate="2010-09-12T22:17:27.750" CommunityOwnedDate="2010-09-12T22:17:27.750" CommentCount="2" />
  <row Id="3117" PostTypeId="2" ParentId="3089" CreationDate="2010-09-12T22:23:50.940" Score="22" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Unit testing and TDD.&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once I started unit testing I was consistently producing virtually bug-free (yes, I know, there's no such thing) code.  And once I started TDD I was able to reduce the time it took to write both the code and the tests.  &lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-12T22:23:50.940" CommunityOwnedDate="2011-02-02T05:23:59.377" CommentCount="3" />
  <row Id="3118" PostTypeId="2" ParentId="2935" CreationDate="2010-09-12T22:26:38.683" Score="3" ViewCount="" Body="&lt;p&gt;My dad gave to me a MSX and magazines to read and type programs, mostly adventure games. I falling in love to the letter soap.&lt;/p&gt;&#xA;" OwnerUserId="1455" LastActivityDate="2010-09-12T22:26:38.683" />
  <row Id="3119" PostTypeId="2" ParentId="1913" CreationDate="2010-09-12T22:33:07.217" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.devexpress.com/Products/Visual_Studio_Add-in/Coding_Assistance/&quot; rel=&quot;nofollow&quot;&gt;Code Rush&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1455" LastActivityDate="2010-09-12T22:33:07.217" CommunityOwnedDate="2010-09-12T22:33:07.217" />
  <row Id="3120" PostTypeId="2" ParentId="1599" CreationDate="2010-09-12T22:37:15.940" Score="8" ViewCount="" Body="&lt;p&gt;I slash the zeros all the time.&lt;/p&gt;&#xA;" OwnerUserId="1455" LastActivityDate="2010-09-12T22:37:15.940" CommunityOwnedDate="2010-09-12T22:37:15.940" CommentCount="4" />
  <row Id="3121" PostTypeId="2" ParentId="1360" CreationDate="2010-09-12T22:42:03.443" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Challenge&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hate work on bored projects. I wanna go where nobody was :-)&lt;/p&gt;&#xA;" OwnerUserId="1455" LastActivityDate="2010-09-12T22:42:03.443" />
  <row Id="3122" PostTypeId="2" ParentId="2233" CreationDate="2010-09-12T22:46:42.153" Score="9" ViewCount="" Body="&lt;p&gt;Family portrait?! ;)&lt;/p&gt;&#xA;" OwnerUserId="1455" LastActivityDate="2010-09-12T22:46:42.153" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="3123" PostTypeId="2" ParentId="3086" CreationDate="2010-09-12T22:46:54.783" Score="4" ViewCount="" Body="&lt;p&gt;On top of standard high-school level math (basic algebra, elementary calculus, arithmetic, geometry etc.), I would say:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Discrete Mathematics (covering sets, counting, logic, etc. and some basic topics from number theory, graph theory etc.)&lt;/li&gt;&#xA;&lt;li&gt;Basic Probability&lt;/li&gt;&#xA;&lt;li&gt;Basic Calculus&lt;/li&gt;&#xA;&lt;li&gt;Computational Geometry (not a must-do course for all I guess, but still worth every minute spent)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Note I'm only noting &quot;math&quot; topics. This does not include topics such as algorithm design which has some overlaps with most of the same topics (e.g. graphs, number theory, probability etc.).&lt;/p&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-09-12T22:46:54.783" />
  <row Id="3124" PostTypeId="2" ParentId="2757" CreationDate="2010-09-12T22:50:30.890" Score="2" ViewCount="" Body="&lt;p&gt;2x24&quot; on portrait position. Some times I rotate one to landscape position.&lt;/p&gt;&#xA;" OwnerUserId="1455" LastActivityDate="2010-09-12T22:50:30.890" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="3125" PostTypeId="2" ParentId="1785" CreationDate="2010-09-12T22:56:34.760" Score="31" ViewCount="" Body="&lt;p&gt;The basics. Currently programmers learn technologies not concepts. It's wrong.&lt;/p&gt;&#xA;" OwnerUserId="1455" LastEditorUserId="1455" LastEditorDisplayName="" LastEditDate="2010-09-18T00:25:12.817" LastActivityDate="2010-09-18T00:25:12.817" CommunityOwnedDate="2010-09-15T18:31:41.813" CommentCount="7" />
  <row Id="3126" PostTypeId="2" ParentId="3066" CreationDate="2010-09-12T23:01:45.803" Score="11" ViewCount="" Body="&lt;p&gt;I have mixed feelings about F#. I have a strong functional programming background and many years of C# experience, so I can see it from both sides and I think that F# makes too many compromises to satisfy people from either group.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's worth pointing out as well that .net is fundamentally an object-oriented imperative execution environment. It's not terribly well suited to a language like F#, so there are compromises to be made everywhere. At the end of the day, all F# programs need to be turned into a pile of CLI types and methods which, largely, have C#-like semantics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a lot to like about F#, but I'm going to focus on the negative here, since the good things are more obvious and well documented.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;F# is very awkward as an imperative language, and a lot of the more imperative .net APIs end up feeling very clumsy (XmlTextReader I'm looking at you). An attempt to address the use cases that break/continue/return satisfy in C# (without involving computation expressions) would go a long way here. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;F# is somewhat compatible with a vaguely-defined subset of ocaml. This leads to cruft, lots of deprecated syntax and weirdness. Even worse, it seems to have no tangible benefit--it's not like F# programmers are reusing ocaml libraries. I understand why one might have done this in a research setting, but this should have been cleaned out of the language long ago. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;F# should have left out the &quot;module system&quot; if they didn't intend to do it right. An SML style module system (structures, signatures, functors) would conceptually work very well in F#. F# signatures are really just an alternative way to enforce visibility and don't actually serve to provide polymorphism like SML's signatures do. F# has generic types, but lacks generic modules. Lame lame lame. That said, a generalized higher-order module system like SML's would be very hard to represent directly in terms of the CLI. This would require a lot of effort to do right, and would probably cost considerably in compile time + code size. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The anonymous function syntax is too verbose. It's downright depressing that C#'s lambda expression is cleaner. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Calling into the .net api feels a little bit like doing interop--it's awkward to invoke methods with tuple'd arguments and you constantly end up converting data types (especially list -&gt; array). This is probably difficult to fix--there are a lot of trade-offs involved in fitting an ml family language into the .net environment.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;F#'s type inference is closely related to ML's, but F# has to cope with overloaded CLI methods. I would have been happier if they had used a type inference scheme that supported deferral, since this would significantly reduce the number of required type annotations when interfacing with .net libraries.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The compiler is unacceptably slow, especially on mono. We're talking hundreds of lines per second slow. I have a 4kloc F# program that takes 16 seconds to compile on a core 2 duo macbook pro. That is &lt;em&gt;ridiculous&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="12" LastEditorUserId="12" LastEditorDisplayName="" LastEditDate="2010-09-12T23:22:45.110" LastActivityDate="2010-09-12T23:22:45.110" CommentCount="4" />
  <row Id="3128" PostTypeId="2" ParentId="1785" CreationDate="2010-09-12T23:06:03.917" Score="0" ViewCount="" Body="&lt;p&gt;How to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... What do you mean I need 15 characters?&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-09-12T23:06:03.917" CommunityOwnedDate="2010-09-15T18:31:41.813" />
  <row Id="3129" PostTypeId="1" AcceptedAnswerId="3136" CreationDate="2010-09-12T23:06:57.230" Score="11" ViewCount="308" Body="&lt;p&gt;I'm planning to learn F#. I'm not a very beginner since I know Standard ML, C# and Erlang.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What book about F# is recommended? Preferably with examples using WPF since I would like to us it for GUI-programming.&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T16:05:17.877" LastActivityDate="2010-10-02T16:05:17.877" Title="What's a good book for learning F#?" Tags="&lt;books&gt;&lt;f#&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="3130" PostTypeId="2" ParentId="3129" CreationDate="2010-09-12T23:21:37.193" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/62302/whats-a-good-book-for-learning-f/69027#69027&quot;&gt;This SO answer&lt;/a&gt; by Chris Smith provides some good F# books...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm unsure if they will contain WPF but I suggest to not search for a combined book,&lt;br&gt;&#xA;instead go for a second book about WPF as this will be much more broad and covers it much better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Better focus on them apart and have a solid base than focusing on both simultaneously and have trouble. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best book for WPF is &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0672328917&quot; rel=&quot;nofollow&quot;&gt;Windows Presentation Foundation Unleashed&lt;/a&gt; by Adam Nathan.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-12T23:21:37.193" />
  <row Id="3131" PostTypeId="1" AcceptedAnswerId="3134" CreationDate="2010-09-12T23:35:46.130" Score="12" ViewCount="284" Body="&lt;p&gt;When looking for candidates you often want to have people with direct experience with the technologies and platforms you are using today.  However, that may not always be a possibility.  The particular requirements may involve niche tech, outdated tech, or your team has already drained the local area of everyone with that particular tech (not everyone works in Silicon Valley, some of us work and live in some smaller metro area for reasons unrelated to the profession).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So often that can leave you with hiring people who are &quot;off-platform&quot; like Dot-Net people for a Java project, or Cobol programmers for an iPhone app (or vice versa).  Or even just a language switch, from Visual Basic to Scala or JavaScript to C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is what qualities, attributes, and experience would you look for as in interviewer to indicate that the candidate can successfully switch platforms or languages, and what are the indicators as to the level of success and timeframe.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, decent &quot;war stories&quot; related to this would get a solid upvote from me.&lt;/p&gt;&#xA;" OwnerUserId="486" LastActivityDate="2010-09-14T00:05:49.977" Title="Hiring &quot;off-platform&quot; - what are the indicators for successful candidates?" Tags="&lt;hiring&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="1" />
  <row Id="3133" PostTypeId="2" ParentId="3131" CreationDate="2010-09-12T23:49:50.780" Score="4" ViewCount="" Body="&lt;p&gt;Well, anyone with a logical mind who's able to think in abstractions can pick up the basics of just about any programming language and become proficient at it within a couple months.  (Those criteria rule out a whole lot of people, though, unfortunately including a lot of professional coders.)  But becoming truly good at a language requires study and experience, the sort you only get by using it every day for a few years.  So if you can't find anyone with the skill and experience you're looking for, look for the basic aptitude and the rest will come with time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html&quot; rel=&quot;nofollow&quot;&gt;According to Joel&lt;/a&gt;, a good test for the aptitude to understand coding is the ability to &quot;get&quot; pointers and recursion.  &lt;a href=&quot;http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html&quot; rel=&quot;nofollow&quot;&gt;According to Jeff,&lt;/a&gt; the tricky bits are assignment and sequence, recursion and concurrency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And from my own experience, I'd add one other criterion: manual memory management.  If someone can't keep their memory from leaking without using a garbage collector as a crutch to lean on, they don't know enough about how dynamic memory works to keep from inadvertently writing memory leaks &lt;em&gt;with&lt;/em&gt; a garbage collector.  (Which is actually a lot easier to do than it sounds.)&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-12T23:49:50.780" />
  <row Id="3134" PostTypeId="2" ParentId="3131" CreationDate="2010-09-12T23:50:34.163" Score="11" ViewCount="" Body="&lt;p&gt;As someone has has always been hired &quot;off-platform&quot; (to work with technologies I was not entirely familiar or had experience with), I can think of a few things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Does the candidate have a history of working with various technologies?&lt;/li&gt;&#xA;&lt;li&gt;Does the candidate seem passionate about programming in general and seems interested in learning to work with your platform?&lt;/li&gt;&#xA;&lt;li&gt;Does he have experience with similar technologies? If he has developed programs similar to what you do with a different platform, the risk is low.&lt;/li&gt;&#xA;&lt;li&gt;Has he researched a bit about the platform before being interviewed?&lt;/li&gt;&#xA;&lt;li&gt;Can he answer generic programming questions?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Any programmer worth the title should be able to make the switch pretty easily (mastering the particularities of each languages takes time though) and should be up-to-speed quite fast.&lt;/p&gt;&#xA;" OwnerUserId="220" LastActivityDate="2010-09-12T23:50:34.163" />
  <row Id="3135" PostTypeId="2" ParentId="778" CreationDate="2010-09-12T23:59:44.400" Score="2" ViewCount="" Body="&lt;blockquote&gt;If you could have any job in the world, what would it be?&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I am only really looking for one thing: a serious attempt to answer it.  The only wrong answer it so laugh and tell the interviewer that is the most cliche interview question in the world.  (I voted no hire).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is really a set up for &lt;em&gt;my&lt;/em&gt; all time favorite question:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;If you want to be [a Rock Star], why are you applying to be an [Internet Development Engineer III] here at [HugeCorp]?&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It works best if they actually give some audacious answer.  They rarely see it coming and this is only really an opportunity for someone to shine by saying something like &quot;the hours here are better&quot; or &quot;my career here will last longer than the typical rock star.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also lied about there being no wrong answer to the first question.  Unless you are interviewing for some totally awesome dream job then the job they are interviewing for is the wrong answer.  And if you are interviewing for the dream job and don't already have it, you should ask yourself why you aren't applying for it.&lt;/p&gt;&#xA;" OwnerUserId="486" LastActivityDate="2010-09-12T23:59:44.400" CommunityOwnedDate="2011-02-15T21:30:54.260" CommentCount="6" />
  <row Id="3136" PostTypeId="2" ParentId="3129" CreationDate="2010-09-13T00:14:40.313" Score="3" ViewCount="" Body="&lt;p&gt;I'm reading &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1933988924&quot; rel=&quot;nofollow&quot;&gt;Real World Functional Programming&lt;/a&gt; and so far it's very good.  It is co-authored by &lt;a href=&quot;http://www.stackoverflow.com/&quot; rel=&quot;nofollow&quot;&gt;stackoverflow&lt;/a&gt;'s &lt;a href=&quot;http://stackoverflow.com/users/22656/jon-skeet&quot;&gt;Jon Skeet&lt;/a&gt; and also by &lt;a href=&quot;http://stackoverflow.com/users/33518/tomas-petricek&quot;&gt;Tomas Petricek&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-13T00:19:50.893" LastActivityDate="2010-09-13T00:19:50.893" CommentCount="1" />
  <row Id="3138" PostTypeId="2" ParentId="3129" CreationDate="2010-09-13T00:36:04.127" Score="4" ViewCount="" Body="&lt;p&gt;Chris Smith is the author of a book about F#, his recommendation should be highly reliable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I complement with free on-line book and chapters:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikibooks.org/wiki/F_Sharp_Programming&quot; rel=&quot;nofollow&quot;&gt;Wikibooks&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/fsharp/cc835246.aspx&quot; rel=&quot;nofollow&quot;&gt;See Expert F# chapters&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-13T01:03:37.770" LastActivityDate="2010-09-13T01:03:37.770" CommentCount="2" />
  <row Id="3139" PostTypeId="1" AcceptedAnswerId="3148" CreationDate="2010-09-13T01:37:16.830" Score="15" ViewCount="2078" Body="&lt;p&gt;I'm having trouble selecting exactly what to put in the computer skills section of my resume. I feel the need to list a lot of languages and the IDEs I work with, and perhaps mention that I use Mercurial too. But this seems, well, kinda fake; after all, where do I draw the line in the list of languages? Sure, I learned a little C in a class, I can conquer some simple printf and getchar projects, but I don't really think that counts as being able to list it on my resume.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I seem to recall &lt;a href=&quot;http://www.joelonsoftware.com/&quot; rel=&quot;nofollow&quot;&gt;Joel&lt;/a&gt; or &lt;a href=&quot;http://www.codinghorror.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Jeff&lt;/a&gt; addressing this but I can't find it now. But I'm pretty sure they said something along the lines of don't put it on your resume if you don't want to be drilled on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, I sure wouldn't want to be drilled on C... But is there no justification in my listing languages like C# that I don't work with daily but could pick back up after a short refresher? I mean, I wouldn't want to be drilled on the internals of .NET either, but I think I am justified in listing it in a list of languages I have used...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you decide? What do you have in your 'Computer Skills' section of your resume? (and can you please find the Joel/Jeff posts I'm thinking of, if they exist?)&lt;/p&gt;&#xA;" OwnerUserId="1225" LastActivityDate="2010-09-13T18:27:54.487" Title="What do you put in the &quot;Computer Skills&quot; section of your resume?" Tags="&lt;resume&gt;" AnswerCount="9" FavoriteCount="3" />
  <row Id="3140" PostTypeId="2" ParentId="3139" CreationDate="2010-09-13T02:01:26.603" Score="8" ViewCount="" Body="&lt;p&gt;As a technical person, I don't feel that you should have such a section that just enumerates skills, except in rare cases. Any technologies, languages, frameworks, and tools that you are familiar with should be listed as part of your education, work experience, or in a personal projects section. The only time you should have a section that uses keywords to describe skills is when applying for government (state or federal) jobs, and maybe jobs with government contractors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the idea is that if you haven't worked with a technology on a project, you probably don't know it. If you have worked with a technology on a previous or ongoing project, you either know it or can relearn it. I would be more interested in what you have done rather than what you say you know - I can get at what you know by asking about your projects and solutions to problems.&lt;/p&gt;&#xA;" OwnerUserId="4" LastEditorUserId="4" LastEditorDisplayName="" LastEditDate="2010-09-13T02:08:57.707" LastActivityDate="2010-09-13T02:08:57.707" />
  <row Id="3141" PostTypeId="2" ParentId="565" CreationDate="2010-09-13T02:03:36.250" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://steve-yegge.blogspot.com/2008/05/dynamic-languages-strike-back.html&quot; rel=&quot;nofollow&quot;&gt;Stevey's Blog Rants: Dynamic Languages Strike Back&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1455" LastActivityDate="2010-09-13T02:03:36.250" />
  <row Id="3142" PostTypeId="2" ParentId="3089" CreationDate="2010-09-13T02:12:33.690" Score="8" ViewCount="" Body="&lt;p&gt;Engage on a open source project.&lt;/p&gt;&#xA;" OwnerUserId="1455" LastActivityDate="2010-09-13T02:12:33.690" CommunityOwnedDate="2011-02-02T05:23:59.377" />
  <row Id="3143" PostTypeId="2" ParentId="3139" CreationDate="2010-09-13T02:18:14.220" Score="0" ViewCount="" Body="&lt;p&gt;The best place for technical skills would be at the end of project descriptions.  This gives honest context to the project and the type of skills you gained/exercised, as well as how stale the knowledge may be.  They are useful after real work experience descriptions as well as school projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that the technical skills section of a resume seems to be a requirement for recruiters more than hiring managers.  It is an easy way for someone to see if you tick all the boxes for a job spec.  If you feel that you need one, you can take it from the list of skills on each project. &lt;/p&gt;&#xA;" OwnerUserId="1464" LastActivityDate="2010-09-13T02:18:14.220" />
  <row Id="3144" PostTypeId="2" ParentId="2138" CreationDate="2010-09-13T02:19:57.720" Score="6" ViewCount="" Body="&lt;p&gt;Anything when the deadline is shorter than I can develop code with quality.&lt;/p&gt;&#xA;" OwnerUserId="1455" LastActivityDate="2010-09-13T02:19:57.720" />
  <row Id="3145" PostTypeId="2" ParentId="2591" CreationDate="2010-09-13T02:31:20.530" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/Wrong.html&quot; rel=&quot;nofollow&quot;&gt;Making Wrong Code Look Wrong&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1455" LastActivityDate="2010-09-13T02:31:20.530" />
  <row Id="3146" PostTypeId="2" ParentId="2138" CreationDate="2010-09-13T03:01:08.213" Score="0" ViewCount="" Body="&lt;p&gt;A collision detection algorithm&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; for x1 in range of first object&#xA;     for y1 in range of first object&#xA;         for x2 in range of second object&#xA;            for y2 in range of second object&#xA;                if x1 == x2 and y1 == y2&#xA;                    return True&#xA; return False&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-09-13T03:01:08.213" CommentCount="1" />
  <row Id="3147" PostTypeId="2" ParentId="2138" CreationDate="2010-09-13T03:11:52.090" Score="1" ViewCount="" Body="&lt;p&gt;A collection of path / file manipulation routines that included a function to recursively delete a directory. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It worked great. Except... If you passed in an empty string for the target path, it interpreted this as the root directory. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of my co-workers noticed this regrettable behavior when she ran the latest build and all of the unlocked files on her harddrive disappeared...&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-13T03:11:52.090" />
  <row Id="3148" PostTypeId="2" ParentId="3139" CreationDate="2010-09-13T04:09:18.620" Score="23" ViewCount="" Body="&lt;p&gt;I'm not a secretary. So I don't have a &quot;Computer Skills&quot; section on my resume.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-13T04:09:18.620" CommentCount="1" />
  <row Id="3149" PostTypeId="2" ParentId="778" CreationDate="2010-09-13T04:26:37.440" Score="2" ViewCount="" Body="&lt;p&gt;Doing c# interviews, I love asking, &quot;How do you handle errors in a method&quot;?  If I get a decent answer to that question, I ask &quot;How do/would you setup error handling in a web application?&quot;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm always amazed at how many developers have no problem with the first question and no clue on the second.  I've even interviewed many who couldn't describe how errors were being handled in their current project.&lt;/p&gt;&#xA;" OwnerUserId="1236" LastActivityDate="2010-09-13T04:26:37.440" CommunityOwnedDate="2011-02-15T21:30:54.260" />
  <row Id="3150" PostTypeId="2" ParentId="3089" CreationDate="2010-09-13T04:28:58.147" Score="10" ViewCount="" Body="&lt;p&gt;Tech support.  If I was the Programmer King of the World, I would decree that no one could be a programmer without first putting in 2 years as front line, customer facing tech support.  I dont mean &quot;flip-book&quot; &amp;amp; &quot;read answers from a script&quot; tech support like you'd get from a telco, but rather the kind where you have to actually research, test, and experiment to duplicate problems, report on them, interact with the customer, and if possible, find resolutions.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that when programmers go that route, they have a better feel for the 'ecosystem' of their products, and they develop a better feel for what the common weak points and problem areas are.  In the end that lets them create more reliable products.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-13T04:28:58.147" CommunityOwnedDate="2011-02-02T05:23:59.377" />
  <row Id="3151" PostTypeId="2" ParentId="3131" CreationDate="2010-09-13T04:42:14.390" Score="2" ViewCount="" Body="&lt;p&gt;You're looking for a slut, not a serial monogamist. You want someone who is used to interacting with many technologies at the same time--these people have a very different mindset than specialists. Someone with 5 years of C++ and then 5 years of Java is probably not as good a choice for your .net project as someone with 2-3 years of C,Java,iPhone,Ruby all at once.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, almost anyone can eventually pick up a new platform and eventually become as productive as they were on their old platform, but someone who's used to keeping track of three or four at a time has clearly built a much more comprehensive logical framework for managing the different sets of information and will probably pick up on something new much more quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, people who are working with lots of technologies day to day tend to be the kinds of people who get very deeply involved with the projects they're working on and make contributions all over the place. Managers naturally pigeonhole people based on their skills in order to use them most efficiently. Someone who actually contributes to, say, the HTML/js frontend, the Java backend, and the iPhone app for a product is clearly not only trusted to have his fingers in everything, but is also capable of doing all three effectively enough that his manager allows it.&lt;/p&gt;&#xA;" OwnerUserId="12" LastActivityDate="2010-09-13T04:42:14.390" CommentCount="1" />
  <row Id="3152" PostTypeId="2" ParentId="2138" CreationDate="2010-09-13T05:03:52.627" Score="0" ViewCount="" Body="&lt;p&gt;I built a complete database driven php application a few years back from scratch.  At that time I had no idea what a class or an object was so sql queries were pretty much copied from place to place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have sinse learned how great php frameworks are.  &lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-09-13T05:03:52.627" />
  <row Id="3153" PostTypeId="2" ParentId="1920" CreationDate="2010-09-13T05:53:24.800" Score="7" ViewCount="" Body="&lt;p&gt;Here are some of the things I use regularly on Linux.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://gcc.gnu.org/&quot; rel=&quot;nofollow&quot;&gt;GCC&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.eclipse.org/&quot; rel=&quot;nofollow&quot;&gt;Eclipse&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://kdiff3.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;KDiff3&lt;/a&gt; or &lt;a href=&quot;http://meld.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Meld&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.oracle.com/technetwork/java/javase/downloads/index.html&quot; rel=&quot;nofollow&quot;&gt;Java JDK&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://python.org/&quot; rel=&quot;nofollow&quot;&gt;Python&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://qt.nokia.com/products/developer-tools/&quot; rel=&quot;nofollow&quot;&gt;Qt Creator&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.gimp.org/&quot; rel=&quot;nofollow&quot;&gt;Gimp&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://inkscape.org/&quot; rel=&quot;nofollow&quot;&gt;Inkscape&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://audacity.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Audacity&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.openoffice.org/&quot; rel=&quot;nofollow&quot;&gt;OpenOffice&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="170" LastActivityDate="2010-09-13T05:53:24.800" />
  <row Id="3154" PostTypeId="2" ParentId="3131" CreationDate="2010-09-13T06:00:11.827" Score="3" ViewCount="" Body="&lt;p&gt;I offer this largely as a counterpoint to @blucz's contribution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You want somebody who concentrates on a few tools at a time, and learns to use them well. The fact that somebody tries to use many tools at once and &lt;em&gt;believes&lt;/em&gt; he multitasks well doesn't mean he does (in fact, there's &lt;a href=&quot;http://psychcentral.com/news/2009/08/27/excess-multi-tasking-has-downside/8013.html&quot; rel=&quot;nofollow&quot;&gt;substantial evidence&lt;/a&gt; that the opposite is true).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact that somebody works almost simultaneously in many areas rarely means that they've shown excellence. Rather, it means they've never done anything &lt;em&gt;quite&lt;/em&gt; bad enough to get fired outright, but no one team lead/manager/whatever really wants them either, so whenever a chance arises, he gets shuffled off on somebody else. Especially in really large companies, this is sometimes done with bad intent, with managers trying to make themselves look better by undermining their peers. In other cases (especially at smaller companies) it's a sincere attempt at finding a niche for somebody who seemed intelligent and enthusiastic, but whose real performance has fallen short of expectations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, there are exceptions to any rule, but keep in mind that they are exceptions. When somebody claims to be able to do everything and contribute everywhere, chances are &lt;em&gt;really&lt;/em&gt; good, that in reality they can't do &lt;em&gt;any&lt;/em&gt; of those things well, and haven't contributed anything positive anywhere.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-09-13T06:00:11.827" />
  <row Id="3155" PostTypeId="1" CreationDate="2010-09-13T06:22:17.437" Score="5" ViewCount="138" Body="&lt;p&gt;have you got any solution of your problem from other activities like children game etc. i got one answer from my grand mother's story.&lt;/p&gt;&#xA;" OwnerUserId="1475" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-13T12:33:11.187" LastActivityDate="2010-09-19T01:46:17.627" Title="Have you got any solution of your problem from other activities?" Tags="&lt;behavior&gt;&lt;fun&gt;" AnswerCount="4" CommentCount="4" />
  <row Id="3156" PostTypeId="2" ParentId="2233" CreationDate="2010-09-13T06:30:26.167" Score="0" ViewCount="" Body="&lt;p&gt;On my (work) desk:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two monitors, a keyboard and a mouse for obvious reasons.&#xA;A phone (yes we still use that).&#xA;An external HDD for backup purposes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Books, Magazines for reading while compiling or other CPU busy tasks.&#xA;Paper, Pencil.&#xA;Coffee mug.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At home it's far worse.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-13T06:30:26.167" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="3157" PostTypeId="2" ParentId="2138" CreationDate="2010-09-13T06:39:04.950" Score="0" ViewCount="" Body="&lt;p&gt;I once wrote a xml based language (xml was the requirement) to control steps of document publishing. And of course there was a statement to delete files and directories.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tested it with an empty path argument forgetting two things:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;If a path lacks the \ at the end, it was added.&lt;/li&gt;&#xA;&lt;li&gt;Windows treats the path &quot;\&quot; as &quot;C:\&quot; which is a quite annoying path to delete.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It took me a full day to recover from this error. And then I added some extra safeguards in the code.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-13T06:39:04.950" />
  <row Id="3158" PostTypeId="2" ParentId="778" CreationDate="2010-09-13T06:39:15.590" Score="3" ViewCount="" Body="&lt;p&gt;Something like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;multiply a value by 7 without using &lt;code&gt;*&lt;/code&gt;, &lt;code&gt;/&lt;/code&gt; and &lt;code&gt;+&lt;/code&gt; operations. :)&lt;/p&gt;&#xA;" OwnerUserId="1131" LastActivityDate="2010-09-13T06:39:15.590" CommunityOwnedDate="2011-02-15T21:30:54.260" CommentCount="7" />
  <row Id="3159" PostTypeId="2" ParentId="2138" CreationDate="2010-09-13T06:41:52.210" Score="0" ViewCount="" Body="&lt;p&gt;I learned to program on the BASIC 7.0 on my Commodore 128. I even put together some useful things, like a working drawing program that could save and load pictures on disk. But the structure of those programs was horrible. I never understood what a GOSUB command was good for until much later...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More recently, I made a batch file that recursively copied the contents of a directory onto itself, resulting in a folder structure like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;C:\directory\subdir\subdir\subdir\ ... repeat ad nauseam ... \subdir\data.txt&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1281" LastActivityDate="2010-09-13T06:41:52.210" />
  <row Id="3160" PostTypeId="2" ParentId="1920" CreationDate="2010-09-13T07:03:10.723" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Emacs&lt;/strong&gt; is one of the most popular editors/IDEs.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-13T07:03:10.723" />
  <row Id="3161" PostTypeId="2" ParentId="1599" CreationDate="2010-09-13T07:15:53.563" Score="3" ViewCount="" Body="&lt;p&gt;Using CTRL +SPACE (eclipse code complete shortcut) in notepad.&lt;/p&gt;&#xA;" OwnerUserId="1481" LastActivityDate="2010-09-13T07:15:53.563" CommunityOwnedDate="2010-09-13T07:15:53.563" CommentCount="1" />
  <row Id="3162" PostTypeId="2" ParentId="1483" CreationDate="2010-09-13T07:16:40.940" Score="0" ViewCount="" Body="&lt;p&gt;In my former work we had habit of talking in Swedish and writing in English, when for example writing something on the drawing board.&lt;br&gt;&#xA; I think it started when we had a lot of consultants from different contries at the work. We had to switch between English and Swedish depending on who was listening to you.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have to make a distinction between writing code comments and even documenation in English and write and talk about common-day thing in English. It is &lt;strong&gt;not&lt;/strong&gt; the same.&lt;br&gt;&#xA;I have written more design documentation in English than I remember but that doesn't mean that I can talk about how  to cook food or writing a poem in English, or write an answer on SO without making spelling errors or use improper grammar.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My wife is from latin america and we speak Spanish at home so I am in the situation that I speak two languages regulary (Swedish and Spanish) and write two languages regulary; Swedish and English, the latter mostly about technical matters. Writing documentation in English is a required skill when working as an engineer in Sweden.&lt;/p&gt;&#xA;" OwnerUserId="1041" LastActivityDate="2010-09-13T07:16:40.940" CommunityOwnedDate="2010-09-13T07:16:40.940" />
  <row Id="3163" PostTypeId="2" ParentId="2261" CreationDate="2010-09-13T07:24:46.747" Score="0" ViewCount="" Body="&lt;p&gt;The question is a bit too generic, you should check in your field of interest. You can &lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_free_and_open_source_software_packages&quot; rel=&quot;nofollow&quot;&gt;find here&lt;/a&gt; a good list of open source projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal favorite in term of code quality is &lt;strong&gt;Google Chrome&lt;/strong&gt; (&lt;a href=&quot;http://www.chromium.org/Home&quot; rel=&quot;nofollow&quot;&gt;Chromium&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are a Windows developer and want to digg into the &quot;Windows source code&quot;, you can check &lt;strong&gt;&lt;a href=&quot;http://www.winehq.org/&quot; rel=&quot;nofollow&quot;&gt;Wine&lt;/a&gt;&lt;/strong&gt; or &lt;strong&gt;ReactOS&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Java development, I recommend to check the &lt;strong&gt;Vuze&lt;/strong&gt; BitTorrent client.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a general rule, avoid huge and older projects because they have usually inconsistent code style and quality.&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-13T07:30:48.530" LastActivityDate="2010-09-13T07:30:48.530" />
  <row Id="3165" PostTypeId="2" ParentId="1483" CreationDate="2010-09-13T07:31:51.070" Score="16" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C#&lt;/strong&gt;, it really works (Cyrillic):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;[Flags]&#xA;public enum Товары&#xA;{&#xA;    Непонятно = 0,&#xA;    Книги     = 1,&#xA;    Тетради   = 2,&#xA;    Карандаши = 4,&#xA;    Всё = Книги | Тетради | Карандаши&#xA;}&#xA;&#xA;..&#xA;Товары карандаши = Товары.Карандаши;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;There is fun (weird) that visual studio allows and someone is writing code by using his/her native language (non-English).&lt;/p&gt;&#xA;" OwnerUserId="1483" LastEditorUserId="1483" LastEditorDisplayName="" LastEditDate="2010-09-21T13:01:26.277" LastActivityDate="2010-09-21T13:01:26.277" CommunityOwnedDate="2010-09-13T07:31:51.070" CommentCount="9" />
  <row Id="3166" PostTypeId="2" ParentId="2846" CreationDate="2010-09-13T07:32:18.797" Score="0" ViewCount="" Body="&lt;p&gt;Nobody said anything about Delphi yet. Maybe because nobody uses it in 2010?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's good to introduce people to programming languages, but not so good for professional programming (too verbose, lacks of useful features, lacks a true OO library). Surely Delphi made good thing is the past: run-time packages are a good idea and inspired new technologies, but now, Pascal is old.&#xA;Let it rest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I still can't get rid of it in the company where I work.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-13T07:32:18.797" CommunityOwnedDate="2010-09-13T07:32:18.797" CommentCount="6" />
  <row Id="3167" PostTypeId="2" ParentId="2138" CreationDate="2010-09-13T07:44:57.427" Score="1" ViewCount="" Body="&lt;p&gt;Most stupid I ever did was writing a webmail as the first thing on my first job after I finished my education. All the way from the socketconnections to the POP3 to the mailmessage parsing...which I had no clue how to do properly back then.&#xA;Only the boss used it even thou several months were used to develop it in the end.&lt;/p&gt;&#xA;" OwnerUserId="564" LastActivityDate="2010-09-13T07:44:57.427" />
  <row Id="3168" PostTypeId="2" ParentId="1483" CreationDate="2010-09-13T07:48:12.303" Score="1" ViewCount="" Body="&lt;p&gt;I'm from the rotten state of Denmark. We primarily write code in English ... even the dev guideline states that it should be as well. Being the newest developer in the company I assume that it was decided due to the framework we are using was done in English...it would be a horrible mess to read danish and english mixed :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that said we do write comments in danish :)&lt;/p&gt;&#xA;" OwnerUserId="564" LastActivityDate="2010-09-13T07:48:12.303" CommunityOwnedDate="2010-09-13T07:48:12.303" />
  <row Id="3169" PostTypeId="2" ParentId="2233" CreationDate="2010-09-13T07:51:11.323" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;At least 2 monitors&lt;/li&gt;&#xA;&lt;li&gt;A good keyboard&lt;/li&gt;&#xA;&lt;li&gt;A good mouse&lt;/li&gt;&#xA;&lt;li&gt;Good set of headphones for the days where you need to be in the zone&lt;/li&gt;&#xA;&lt;li&gt;Coffee and plenty of it!!!&lt;/li&gt;&#xA;&lt;li&gt;Pens&lt;/li&gt;&#xA;&lt;li&gt;Paper for sketches of UI etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="564" LastActivityDate="2010-09-13T07:51:11.323" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="3170" PostTypeId="2" ParentId="3086" CreationDate="2010-09-13T07:57:51.947" Score="3" ViewCount="" Body="&lt;p&gt;I have worked on a software that was doing Radio Network Planning.&#xA;Lots of math...&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Basic boolean algebra&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Calculus - differential equations(mostly) for min/max problems&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Linear algebra - determinants, matrices, eigenvalues, ...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Computational geometry - 2D/3D transforms (not much)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Graph theory - trees, cycles&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Probabilities and statistics - everything - due to Erlang law...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1487" LastActivityDate="2010-09-13T07:57:51.947" />
  <row Id="3171" PostTypeId="2" ParentId="2138" CreationDate="2010-09-13T08:01:20.050" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://superjoesoftware.com/muffins/&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1486" LastActivityDate="2010-09-13T08:01:20.050" />
  <row Id="3172" PostTypeId="2" ParentId="1483" CreationDate="2010-09-13T08:12:25.013" Score="0" ViewCount="" Body="&lt;p&gt;In Germany i think it depends on how big and open the shop is. In bigger banks people write in English because you might have to deal with non-German speaking consultants for a specific job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But also remember the OpenOffice fiasco when people found out that most of the StarOffice code was written in German.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-09-13T08:12:25.013" CommunityOwnedDate="2010-09-13T08:12:25.013" />
  <row Id="3173" PostTypeId="2" ParentId="2051" CreationDate="2010-09-13T08:13:44.387" Score="3" ViewCount="" Body="&lt;p&gt;Someone asked me to create a website which &quot;copies what Google Local Search does and merges its data with other information coming from a database&quot;. I drew something in paper and the customer said it was ok; I charged him with 700 pounds (1000 US dollars) for a 5-days job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I developed it in 3 nights and delivered it. I was proud of what I wrote until the customer said &quot;It's almost ok. Why are you using the &lt;strong&gt;googlemaps&lt;/strong&gt; rubygem? &lt;strong&gt;I asked you to copy, not to use&lt;/strong&gt;&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHB.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-13T08:13:44.387" CommunityOwnedDate="2010-09-13T08:13:44.387" />
  <row Id="3174" PostTypeId="2" ParentId="326" CreationDate="2010-09-13T08:27:12.110" Score="2" ViewCount="" Body="&lt;p&gt;Emacs &lt;a href=&quot;http://orgmode.org&quot; rel=&quot;nofollow&quot; title=&quot;Org Mode&quot;&gt;org-mode&lt;/a&gt;. It is simply amazing. I generally use vim for editing, but org-mode alone is reason enough to keep emacs on the system.&lt;/p&gt;&#xA;" OwnerUserId="305" LastActivityDate="2010-09-13T08:27:12.110" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="3175" PostTypeId="2" ParentId="2352" CreationDate="2010-09-13T08:37:12.593" Score="4" ViewCount="" Body="&lt;p&gt;I was going to say &quot;C and Smalltalk&quot;... and then I remembered Objective-C!&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-13T08:37:12.593" CommentCount="1" />
  <row Id="3176" PostTypeId="2" ParentId="326" CreationDate="2010-09-13T08:47:15.197" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://nirvanahq.com/&quot; rel=&quot;nofollow&quot;&gt;NirvanaHQ&lt;/a&gt;, like &lt;a href=&quot;http://www.rememberthemilk.com&quot; rel=&quot;nofollow&quot;&gt;RememberTheMlik&lt;/a&gt; it's also a GTD Web 2.0 application,&lt;br&gt;&#xA;but for me it works way better and supports GTD more. It's best to just check the website out and see.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-13T08:47:15.197" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="3178" PostTypeId="2" ParentId="368" CreationDate="2010-09-13T09:03:33.653" Score="2" ViewCount="" Body="&lt;p&gt;to throw in a worthless coin, i find webapps in java generally have long startup and respons times, where it seems to me that python or ruby would have done better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i do use eclipse for most my programming, and i must say java is just as fast as anything else, if not faster running locally and &quot;standalone&quot;.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-13T09:03:33.653" CommentCount="1" />
  <row Id="3179" PostTypeId="2" ParentId="1599" CreationDate="2010-09-13T09:04:56.723" Score="1" ViewCount="" Body="&lt;p&gt;I'm not eating at the right time and relying too much with the IDE.  I also sleep very late.&lt;/p&gt;&#xA;" OwnerUserId="1496" LastEditorUserId="1496" LastEditorDisplayName="" LastEditDate="2010-09-21T07:27:29.080" LastActivityDate="2010-09-21T07:27:29.080" CommunityOwnedDate="2010-09-13T09:04:56.723" />
  <row Id="3180" PostTypeId="2" ParentId="2233" CreationDate="2010-09-13T09:08:30.557" Score="1" ViewCount="" Body="&lt;p&gt;It is essential to have a pen and a notebook on my desk.&lt;/p&gt;&#xA;" OwnerUserId="1496" LastActivityDate="2010-09-13T09:08:30.557" CommunityOwnedDate="2010-09-17T12:07:03.760" CommentCount="1" />
  <row Id="3181" PostTypeId="2" ParentId="870" CreationDate="2010-09-13T09:10:00.507" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Getting_Things_Done&quot; rel=&quot;nofollow&quot;&gt;Getting Things Done&lt;/a&gt; (David Allen) teaches you how to deal with the thousands of small tasks you need to accomplish in your day-to-day job as a software developer. Although it is not specifically geared towards developers, it is definitely an invaluable aid, as software development typically involves a very large number of small tasks that need to be done in a prioritized fashion. For example: which new features to implement, which bugs to fix, which parts of the code to refactor, which parts of the code to rest or retest, etc...&lt;/p&gt;&#xA;" OwnerUserId="1095" LastActivityDate="2010-09-13T09:10:00.507" CommunityOwnedDate="2011-01-21T21:28:48.980" />
  <row Id="3182" PostTypeId="2" ParentId="2001" CreationDate="2010-09-13T09:15:44.930" Score="0" ViewCount="" Body="&lt;p&gt;Watch your favorite T.V. show.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Engage in art-related activities (such as drawing or playing music)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eat with your family or friends&lt;/p&gt;&#xA;" OwnerUserId="1496" LastActivityDate="2010-09-13T09:15:44.930" />
  <row Id="3183" PostTypeId="2" ParentId="3139" CreationDate="2010-09-13T09:15:53.950" Score="0" ViewCount="" Body="&lt;p&gt;If my neighbour can safely assume that I can remove a virus from his computer because I am a programmer I think it's safe to assume that an employer or HR monkey will be able to tell that I can work a computer.&lt;/p&gt;&#xA;" OwnerUserId="1037" LastActivityDate="2010-09-13T09:15:53.950" />
  <row Id="3184" PostTypeId="2" ParentId="2148" CreationDate="2010-09-13T09:19:03.617" Score="0" ViewCount="" Body="&lt;p&gt;When I visit &quot;StackOverflow.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When someone chats with me.&lt;/p&gt;&#xA;" OwnerUserId="1496" LastEditorUserId="1496" LastEditorDisplayName="" LastEditDate="2010-09-14T03:57:14.307" LastActivityDate="2010-09-14T03:57:14.307" CommentCount="2" />
  <row Id="3185" PostTypeId="2" ParentId="616" CreationDate="2010-09-13T09:22:04.080" Score="0" ViewCount="" Body="&lt;p&gt;Reading tech blogs.&lt;/p&gt;&#xA;" OwnerUserId="1496" LastActivityDate="2010-09-13T09:22:04.080" />
  <row Id="3186" PostTypeId="2" ParentId="954" CreationDate="2010-09-13T09:27:51.007" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;It should be easy to repair when something goes wrong.&lt;/li&gt;&#xA;&lt;li&gt;Anything which absolutely must be correct must be tested.&lt;/li&gt;&#xA;&lt;li&gt;It should be easy to add any new features when needed.&lt;/li&gt;&#xA;&lt;li&gt;The smallest, simplest code that does the job is the best.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-09-13T09:27:51.007" CommentCount="1" />
  <row Id="3187" PostTypeId="2" ParentId="326" CreationDate="2010-09-13T09:30:14.523" Score="0" ViewCount="" Body="&lt;p&gt;I've once posted &lt;a href=&quot;http://superuser.com/questions/1206/which-tool-do-you-use-for-your-to-do-list/38190#38190&quot;&gt;this answer on SuperUser&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use &lt;b&gt;.txt files&lt;/b&gt;; they aren't fancy, but they have many advantages:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Text files are &lt;b&gt;sufficient&lt;/b&gt; for implementing a &lt;a href=&quot;http://en.wikipedia.org/wiki/Getting_Things_Done&quot; rel=&quot;nofollow&quot;&gt;GTD&lt;/a&gt; system.&lt;/li&gt;&#xA;&lt;li&gt;There are &lt;b&gt;many free .txt editors&lt;/b&gt; to choose from, because it is a non-proprietary file format.&lt;/li&gt;&#xA;&lt;li&gt;You'll be able to open them in the next 100 years; they are 100% &lt;b&gt;future proof&lt;/b&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Most .txt editors have &lt;b&gt;advanced editing features&lt;/b&gt;. In more advanced todo-list applications, you are constrained to a more rigid structure. For example, splitting up a single task into multiple tasks will almost always be faster and more convenient in a somewhat advanced text editor.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm using &lt;a href=&quot;http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;ct=res&amp;amp;cd=1&amp;amp;ved=0CAcQFjAA&amp;amp;url=http%3A%2F%2Fwww.jedit.org%2F&amp;amp;rct=j&amp;amp;q=jedit&amp;amp;ei=LsyMS6uBNcfI-QaXmYnkDQ&amp;amp;usg=AFQjCNG7oqWLLwS4TKjA1g3izs_pWZhBdw&quot; rel=&quot;nofollow&quot;&gt;jEdit&lt;/a&gt; for my GTD-like task list system, together with the RecentBufferSwitcher and OpenIt plugins. &lt;b&gt;RecentBufferSwitcher&lt;/b&gt; allows you to switch rappidly between the most recently used projects (think of Windows' alt-tab functionality). &lt;b&gt;OpenIt&lt;/b&gt; allows you to rapidly open a project by name.&lt;/p&gt;&#xA;" OwnerUserId="1095" LastActivityDate="2010-09-13T09:30:14.523" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="3188" PostTypeId="2" ParentId="2240" CreationDate="2010-09-13T09:31:56.717" Score="3" ViewCount="" Body="&lt;p&gt;One of the best design pattern websites around is Ward's Wiki, the very first wiki. See &lt;a href=&quot;http://c2.com/cgi/wiki?HistoryOfPatterns&quot; rel=&quot;nofollow&quot;&gt;http://c2.com/cgi/wiki?HistoryOfPatterns&lt;/a&gt; for a good starting page in it.&lt;/p&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-09-13T09:31:56.717" />
  <row Id="3189" PostTypeId="2" ParentId="954" CreationDate="2010-09-13T09:35:18.803" Score="2" ViewCount="" Body="&lt;p&gt;The most important in my programs is the User.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-09-13T09:35:18.803" CommentCount="1" />
  <row Id="3190" PostTypeId="2" ParentId="3089" CreationDate="2010-09-13T09:35:51.503" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Testing.&lt;/strong&gt; It made me think about my design, which wasn’t much modular at the time, everything bound together by singletons and similar stuff. Testing forced me to uncouple the code, which was a huge change I am still getting the benefits of.&lt;/p&gt;&#xA;" OwnerUserId="1500" LastActivityDate="2010-09-13T09:35:51.503" CommunityOwnedDate="2011-02-02T05:23:59.377" />
  <row Id="3191" PostTypeId="2" ParentId="2240" CreationDate="2010-09-13T09:49:55.707" Score="10" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://oreilly.com/catalog/9780596007126&quot; rel=&quot;nofollow&quot;&gt;Head First Design Patterns&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Fl7XR.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-13T09:49:55.707" CommentCount="4" />
  <row Id="3192" PostTypeId="2" ParentId="2352" CreationDate="2010-09-13T09:50:34.080" Score="3" ViewCount="" Body="&lt;p&gt;Easy answer: &lt;strong&gt;Machine Code&lt;/strong&gt; + &lt;strong&gt;English&lt;/strong&gt; &lt;em&gt;(or your native language)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;That way, you can just rant about all the things you want the application to do, and end up with a nice quick app that does exactly that.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-09-13T09:50:34.080" CommentCount="1" />
  <row Id="3193" PostTypeId="2" ParentId="2240" CreationDate="2010-09-13T09:51:23.800" Score="10" ViewCount="" Body="&lt;p&gt;The Gang of Four book - &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201633612&quot; rel=&quot;nofollow&quot;&gt;Design Patterns: Elements of Reusable Object-Oriented Software&lt;/a&gt; is probably the closest thing we have to an industry standard on design patterns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a more accessible introduction, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596007124&quot; rel=&quot;nofollow&quot;&gt;Head First: Design Patterns&lt;/a&gt; is good too. Don't be put off by the 'trendy' cover, as it's a good read and will probably help you grasp the concepts in the GoF book a lot easier if you read it first. &lt;/p&gt;&#xA;" OwnerUserId="562" LastActivityDate="2010-09-13T09:51:23.800" />
  <row Id="3194" PostTypeId="2" ParentId="3155" CreationDate="2010-09-13T09:58:56.907" Score="2" ViewCount="" Body="&lt;p&gt;In order of quality of problem solving my top 3 are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Shower.&lt;/li&gt;&#xA;&lt;li&gt;Smoking (have to do it outside).&lt;/li&gt;&#xA;&lt;li&gt;On the toilet.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Particularly when I'm stuck on a problem just walking away from the desk usually solves the problem.&lt;/p&gt;&#xA;" OwnerUserId="919" LastActivityDate="2010-09-13T09:58:56.907" />
  <row Id="3195" PostTypeId="2" ParentId="3086" CreationDate="2010-09-13T09:59:33.460" Score="2" ViewCount="" Body="&lt;p&gt;Being able to think logically is an important still for all developers, people that have studied mathematics and done well, tent to be good logical thinkers.   That is way so many people think that mathematics is needed for programming.&lt;/p&gt;&#xA;" OwnerUserId="1114" LastActivityDate="2010-09-13T09:59:33.460" />
  <row Id="3196" PostTypeId="2" ParentId="3155" CreationDate="2010-09-13T10:04:36.323" Score="4" ViewCount="" Body="&lt;p&gt;Not strictly what you're asking for, but I often find that explaining the problem to a colleague is enough for me to realise what the problem is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this works because you have to explain the problem from first principles, including the background and assumptions you make. It's this that makes you realise that an assumption is incorrect (for example).&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-13T10:04:36.323" CommentCount="3" />
  <row Id="3197" PostTypeId="2" ParentId="616" CreationDate="2010-09-13T10:08:24.943" Score="0" ViewCount="" Body="&lt;p&gt;Seems obvious to me: write a question of StackOverflow or any other appropriate forum :)&lt;/p&gt;&#xA;" OwnerUserId="488" LastActivityDate="2010-09-13T10:08:24.943" />
  <row Id="3198" PostTypeId="2" ParentId="2846" CreationDate="2010-09-13T10:28:57.700" Score="98" ViewCount="" Body="&lt;h2&gt;English&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The grammar is messy and the spelling/pronunciation &quot;rules&quot; are a joke.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, most developers have to know English due to its dominance of IT &quot;culture&quot;.  For many developers who are not fortunate enough to have learned it early in life, this is a real problem.&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="19" LastEditorDisplayName="" LastEditDate="2010-09-13T13:13:16.553" LastActivityDate="2010-09-13T13:13:16.553" CommunityOwnedDate="2010-09-13T10:28:57.700" CommentCount="24" />
  <row Id="3199" PostTypeId="1" AcceptedAnswerId="3225" CreationDate="2010-09-13T10:43:23.803" Score="32" ViewCount="929" Body="&lt;p&gt;Are different version naming conventions suited to different projects? What do you use and why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I prefer a build number in hexadecimal (e.g 11BCF), this should be incremented very regularly. And then for customers a simple 3 digit version number, i.e. 1.1.3.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;1.2.3 (11BCF) &amp;lt;- Build number, should correspond with a revision in source control&#xA;^ ^ ^&#xA;| | |&#xA;| | +--- Minor bugs, speling mistakes ets&#xA;| +----- Minor features, major bug fixes etc&#xA;+------- Major version, UX changes, file format changes etc&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="96" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-13T22:34:36.047" LastActivityDate="2010-12-17T20:34:50.797" Title="What &quot;version naming convention&quot; do you use?" Tags="&lt;project-management&gt;&lt;development-process&gt;&lt;naming-conventions&gt;&lt;versioning&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="17" />
  <row Id="3200" PostTypeId="2" ParentId="1599" CreationDate="2010-09-13T10:54:23.920" Score="3" ViewCount="" Body="&lt;p&gt;Sitting at a four-way intersection trying to formalise the concurrency involved: &quot;OK, so it's safe for opposing cars travelling straight to both go at the same time, but not if one's turning across traffic...&quot;&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-13T10:54:23.920" CommunityOwnedDate="2010-09-13T10:54:23.920" />
  <row Id="3201" PostTypeId="1" CreationDate="2010-09-13T10:58:39.947" Score="5" ViewCount="169" Body="&lt;p&gt;I have to make a important decision by selecting subjects to decide my path on IT field.&#xA;So there are subjects listed as below.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Computer Graphics and Image Processing &lt;/li&gt;&#xA;&lt;li&gt;Datawarehousing Datamining and Information Retrieval&lt;/li&gt;&#xA;&lt;li&gt;Neural Computing&lt;/li&gt;&#xA;&lt;li&gt;Compilers and Automata Theory&lt;/li&gt;&#xA;&lt;li&gt;Middleware Architectures  &lt;/li&gt;&#xA;&lt;li&gt;Human Computer Interaction  &lt;/li&gt;&#xA;&lt;li&gt;Cryptography Systems&lt;/li&gt;&#xA;&lt;li&gt;Introduction to Virtual Reality&lt;/li&gt;&#xA;&lt;li&gt;System Design for Internet&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I have a doubt in the importance of the Subjects.I know that those are comparative. But Somehow I want to get a clear Idea on each subject with regarding to Industry expectations and the Quality of Computer Science Degree.&lt;/p&gt;&#xA;" OwnerUserId="1506" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-13T15:51:55.013" LastActivityDate="2010-09-27T17:56:20.493" Title="Useful subjects in the industry?" Tags="&lt;school&gt;&lt;computer-science&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="1" />
  <row Id="3202" PostTypeId="2" ParentId="2352" CreationDate="2010-09-13T11:07:57.800" Score="2" ViewCount="" Body="&lt;p&gt;The beauty of Haskell combined with the efficiency of C.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-09-13T11:07:57.800" CommentCount="6" />
  <row Id="3203" PostTypeId="2" ParentId="2233" CreationDate="2010-09-13T11:08:27.783" Score="0" ViewCount="" Body="&lt;p&gt;I like to consider myself a minimalist when it comes to programming. In an ideal world I'd just have my laptop and some scratch paper on my desk. Unfortunately at work I seem to collect piles of outstanding jobs in my in-tray :(&lt;/p&gt;&#xA;" OwnerUserId="1366" LastActivityDate="2010-09-13T11:08:27.783" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="3204" PostTypeId="2" ParentId="1599" CreationDate="2010-09-13T11:13:17.200" Score="10" ViewCount="" Body="&lt;p&gt;I use Vim a lot at work - now I find myself smashing the escape key in all other editing applications.&lt;/p&gt;&#xA;" OwnerUserId="1366" LastActivityDate="2010-09-13T11:13:17.200" CommunityOwnedDate="2010-09-13T11:13:17.200" CommentCount="6" />
  <row Id="3205" PostTypeId="2" ParentId="296" CreationDate="2010-09-13T11:15:57.143" Score="9" ViewCount="" Body="&lt;p&gt;Do you think there will be one next big language?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The number of successful &quot;mainstream&quot; languages has exploded over the last 10-15 years. All of them influencing each other. The borders are fuzzy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;20 years ago the paradigm you chose would have determined the language you'd choose. Today it's different, you can do almost any paradigm in almost any programming language.&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2011-02-01T09:07:29.293" LastActivityDate="2011-02-01T09:07:29.293" CommentCount="3" />
  <row Id="3206" PostTypeId="2" ParentId="3089" CreationDate="2010-09-13T11:22:07.407" Score="1" ViewCount="" Body="&lt;p&gt;If effectivity is measured as improvement/time, then I'd say I learned the most from:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;looking at a multitude of other languages (sometimes only reading a book and introductions about them)&lt;/li&gt;&#xA;&lt;li&gt;looking at a multitude of frameworks (sometimes only reading the introduction and crawling through the reference)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've learned a lot of idioms, patterns and approaches from this, as well as quite a lot of common mistakes not to make.&lt;br&gt;&#xA;And also I learned a lot from trying to understand, why certain things are done the way they are and whether or how they could be improved.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-09-13T11:22:07.407" CommunityOwnedDate="2011-02-02T05:23:59.377" />
  <row Id="3207" PostTypeId="2" ParentId="3086" CreationDate="2010-09-13T11:30:21.763" Score="2" ViewCount="" Body="&lt;p&gt;Ability to analyze complexity of algorithm.&lt;/p&gt;&#xA;" OwnerUserId="656" LastActivityDate="2010-09-13T11:30:21.763" />
  <row Id="3209" PostTypeId="2" ParentId="296" CreationDate="2010-09-13T11:44:05.333" Score="0" ViewCount="" Body="&lt;p&gt;The one that will eventually replace Objective-C in Apple frameworks. Some premices are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Clang/LLVM&lt;/li&gt;&#xA;&lt;li&gt;Grand Central Dispatch&lt;/li&gt;&#xA;&lt;li&gt;OpenCL&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-09-13T11:44:05.333" CommentCount="4" />
  <row Id="3210" PostTypeId="2" ParentId="3089" CreationDate="2010-09-13T11:45:13.773" Score="0" ViewCount="" Body="&lt;p&gt;In my experience, joining an open source project was an incredible learning experience, as was learning Ruby, and to some extent Python.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-13T11:45:13.773" CommunityOwnedDate="2011-02-02T05:23:59.377" />
  <row Id="3211" PostTypeId="2" ParentId="358" CreationDate="2010-09-13T11:54:04.557" Score="2" ViewCount="" Body="&lt;p&gt;APL. A very powerful programming language but I found it nearly impossible to read my own code a month later.&lt;/p&gt;&#xA;" OwnerUserId="1514" LastActivityDate="2010-09-13T11:54:04.557" CommunityOwnedDate="2010-09-30T22:46:32.880" />
  <row Id="3212" PostTypeId="2" ParentId="886" CreationDate="2010-09-13T11:54:39.520" Score="3" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Geocaching&quot; rel=&quot;nofollow&quot;&gt;Geocaching&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;(not to be confused with &lt;a href=&quot;http://xkcd.com/426/&quot; rel=&quot;nofollow&quot;&gt;geohashing&lt;/a&gt; ;) )&#xA;the mix of GPS, exploring forests, finding buried treasure, collection and scores means most other cachers I've met are either coders or highly technical/ other I.T. &lt;/p&gt;&#xA;" OwnerUserId="1046" LastActivityDate="2010-09-13T11:54:39.520" />
  <row Id="3213" PostTypeId="2" ParentId="3139" CreationDate="2010-09-13T11:54:41.190" Score="2" ViewCount="" Body="&lt;p&gt;As little as possible, and only those relevant to the position I'm applying for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As someone who reads resumes on occasion, nothing is more annoying than going through a list of &lt;em&gt;every single computer related piece of equipment, software, and skill&lt;/em&gt; the applicant has ever touched, read about, or has actual experience with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You applying for a job writing code?  Why the $*@( are you telling me you have experience with Outlook?  Seriously?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Only include the skills relevant to the position you are applying for on your resume&lt;/strong&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are retooling your resume for each position you are applying for, aren't you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aren't you?&lt;/p&gt;&#xA;" OwnerUserId="698" LastActivityDate="2010-09-13T11:54:41.190" />
  <row Id="3214" PostTypeId="2" ParentId="39" CreationDate="2010-09-13T11:58:35.283" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;/* You are not expected to understand this. */&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Comment in Sixth Edition Unix.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-13T11:58:35.283" CommunityOwnedDate="2010-09-13T11:58:35.283" CommentCount="3" />
  <row Id="3215" PostTypeId="2" ParentId="3089" CreationDate="2010-09-13T12:06:39.350" Score="1" ViewCount="" Body="&lt;p&gt;The best thing I did to become better was finding a mentor.  Having a mentor made me strive to become the best at what I do.  This inspired me to read more, learn more, and yearn to become a mentor one day myself.  I was stagnant before and finding someone like that to look up to was the best thing that ever happened to my career.&lt;/p&gt;&#xA;" OwnerUserId="1515" LastActivityDate="2010-09-13T12:06:39.350" CommunityOwnedDate="2011-02-02T05:23:59.377" CommentCount="2" />
  <row Id="3216" PostTypeId="2" ParentId="1599" CreationDate="2010-09-13T12:20:09.063" Score="4" ViewCount="" Body="&lt;p&gt;Waiting the garbage collector to clean my room...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps I have to implement IDisposable:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;protected class MyRoom : IDisposable&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-13T12:20:09.063" CommunityOwnedDate="2010-09-13T12:20:09.063" CommentCount="1" />
  <row Id="3217" PostTypeId="2" ParentId="2233" CreationDate="2010-09-13T12:20:44.640" Score="0" ViewCount="" Body="&lt;h3&gt;I have quite a lot of demands from my desk:&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Spatial must haves: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a keyboard tray deep enough for me to be able to slide the keyboard backwards and make room on it for paper and books&lt;/li&gt;&#xA;&lt;li&gt;A place to put a coffee mug and a plate of food&lt;/li&gt;&#xA;&lt;li&gt;A place for books&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Items: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pens and papers&lt;/li&gt;&#xA;&lt;li&gt;A cell phone charger&lt;/li&gt;&#xA;&lt;li&gt;A calculator&lt;/li&gt;&#xA;&lt;li&gt;Headphones&lt;/li&gt;&#xA;&lt;li&gt;Toilet paper or kleenex. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm not listing equipment because that's pretty obvious. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-13T12:20:44.640" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="3220" PostTypeId="2" ParentId="2846" CreationDate="2010-09-13T12:34:28.733" Score="33" ViewCount="" Body="&lt;p&gt;XSLT. It combines excessive verbosity with a declarative paradigm that causes a distracting mind shift when you're trying to get actual work done. Not to mention the nightmare of debugging it.&lt;/p&gt;&#xA;" OwnerUserId="402" LastActivityDate="2010-09-13T12:34:28.733" CommunityOwnedDate="2010-09-13T12:34:28.733" CommentCount="5" />
  <row Id="3221" PostTypeId="2" ParentId="3155" CreationDate="2010-09-13T12:35:58.173" Score="4" ViewCount="" Body="&lt;p&gt;Yes. Half of the questions that I write in Stack Overflow are aborted because I realize halfway through writing them what should be done. (and roughly 20% I figure out right after clicking the Post button). &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-13T12:35:58.173" CommentCount="4" />
  <row Id="3222" PostTypeId="2" ParentId="3199" CreationDate="2010-09-13T12:44:13.523" Score="4" ViewCount="" Body="&lt;p&gt;Generation.Version.Revision.Build (9.99.999.9999)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generation rarely changes. Only a big turn on product: DOS -&gt; Windows, complete reengineering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Version is for big incompatible changes, new functionality, changes on some specific paradigms on software, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Revision is often done (minor features and bug fix).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Build is internal information.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-13T17:14:31.030" LastActivityDate="2010-09-13T17:14:31.030" />
  <row Id="3223" PostTypeId="2" ParentId="3199" CreationDate="2010-09-13T12:45:43.073" Score="13" ViewCount="" Body="&lt;p&gt;I don't use it but I have seen and it's an interesting structure:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Year.Month.Day.Build&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Self explained.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-11-11T08:10:16.210" LastActivityDate="2010-11-11T08:10:16.210" CommentCount="8" />
  <row Id="3224" PostTypeId="2" ParentId="733" CreationDate="2010-09-13T12:55:35.553" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.google.com/intl/en/jobs/index.html&quot; rel=&quot;nofollow&quot;&gt;Google.&lt;/a&gt; Seriously.&lt;/p&gt;&#xA;" OwnerUserId="604" LastActivityDate="2010-09-13T12:55:35.553" />
  <row Id="3225" PostTypeId="2" ParentId="3199" CreationDate="2010-09-13T13:06:01.083" Score="15" ViewCount="" Body="&lt;p&gt;I find myself rarely agreeing completely with Jeff Atwood, but I tend to follow &lt;a href=&quot;http://www.codinghorror.com/blog/2007/02/whats-in-a-version-number-anyway.html&quot; rel=&quot;nofollow&quot;&gt;his opinion of the .NET convention of version numbering&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;(Major version).(Minor version).(Revision number).(Build number)&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;More often than not, for personal projects, I find this to be overkill. The few times where I have worked on substantial projects like search engines in C# I've stuck to this convention and have been able to use it as an internal tracker effectively.&lt;/p&gt;&#xA;" OwnerUserId="1037" LastActivityDate="2010-09-13T13:06:01.083" CommentCount="1" />
  <row Id="3226" PostTypeId="2" ParentId="3139" CreationDate="2010-09-13T13:08:05.680" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;TAG CLOUD&lt;/strong&gt; your technical skills&lt;/p&gt;&#xA;" OwnerUserId="1522" LastActivityDate="2010-09-13T13:08:05.680" CommentCount="3" />
  <row Id="3227" PostTypeId="2" ParentId="3199" CreationDate="2010-09-13T13:13:29.673" Score="1" ViewCount="" Body="&lt;p&gt;We tag the PROD or TEST deployment as PROD_Sprint#_date / TEST_Sprint#_date&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-09-13T13:13:29.673" />
  <row Id="3228" PostTypeId="2" ParentId="1588" CreationDate="2010-09-13T13:16:10.693" Score="0" ViewCount="" Body="&lt;p&gt;You can get enough screen real estate out of a laptop through the use of virtual desktop software and external monitors. The real reason to prefer a desktop machine is the (usually) higher physical memory limit (my desktop has 32GB RAM) and faster/more CPUs/cores. &lt;/p&gt;&#xA;" OwnerUserId="402" LastActivityDate="2010-09-13T13:16:10.693" CommunityOwnedDate="2011-01-27T05:21:04.337" />
  <row Id="3229" PostTypeId="2" ParentId="2846" CreationDate="2010-09-13T13:19:30.020" Score="19" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;L&lt;/strong&gt; ots of &lt;strong&gt;I&lt;/strong&gt; rritating &lt;strong&gt;S&lt;/strong&gt; uperfluous &lt;strong&gt;P&lt;/strong&gt; arentheses&lt;/p&gt;&#xA;" OwnerUserId="698" LastActivityDate="2010-09-13T13:19:30.020" CommunityOwnedDate="2010-09-13T13:19:30.020" CommentCount="18" />
  <row Id="3230" PostTypeId="2" ParentId="1588" CreationDate="2010-09-13T13:22:35.367" Score="2" ViewCount="" Body="&lt;p&gt;Desktop, hands down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Throughout my time at university I used a low-spec laptop with Windows Vista for the majority of my development needs, and more often than not the pain of leaning forward, sitting uncomfortably on a bed and using it on a train isn't worth the convenience. Laptops are good if you're doing some quick document writing or surfing the Internet, but for anything serious it's really not worth it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With a desktop computer, all these issues are taken away and left with how you sit, your mouse and keyboard layout, etc. Nowadays I'd never choose a laptop over a desktop, unless my company were to give me a laptop for free for remote work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, I typically opted to stay behind at university and get work done on a (slow) desktop, rather than work on my (slightly quicker) laptop. &lt;/p&gt;&#xA;" OwnerUserId="1037" LastActivityDate="2010-09-13T13:22:35.367" CommunityOwnedDate="2011-01-27T05:21:04.337" CommentCount="2" />
  <row Id="3231" PostTypeId="2" ParentId="3089" CreationDate="2010-09-13T13:23:19.917" Score="4" ViewCount="" Body="&lt;p&gt;Appreciate that there is no magic.  There's a tendency to shy away from reading or understanding a piece of very complicated and magical looking code, with the feeling that it should be left to the masters and gurus.  Any code written by a human can be parsed and understood with enough time and patience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll never get better if you stay in your comfort zone.&lt;/p&gt;&#xA;" OwnerUserId="1223" LastActivityDate="2010-09-13T13:23:19.917" CommunityOwnedDate="2011-02-02T05:23:59.377" CommentCount="1" />
  <row Id="3232" PostTypeId="2" ParentId="1719" CreationDate="2010-09-13T13:25:13.187" Score="8" ViewCount="" Body="&lt;p&gt;You should maximize the &quot;marginal relevance&quot;, ie always venture into new areas that you are not yet strong at. Vary both the programming languages and the &lt;strong&gt;concepts&lt;/strong&gt;. If you don't know any object-oriented language, try Java and some high-abstraction framework such as Hibernate. Then write some systems administration stuff in a script language such as Python or Perl. Then pick up some low-level skills in C or C++, writing high-performance multithreaded server code. If you don't know functional programming, try Haskell with some graph theory problems such as &lt;a href=&quot;http://code.google.com/p/peg-solitaire/&quot; rel=&quot;nofollow&quot;&gt;solving Peg Solitaire&lt;/a&gt;, etc. It's very feasible to do it so that everything you learn has immediate market value, until you hit erudite or special-purpose stuff such as &lt;a href=&quot;http://en.wikipedia.org/wiki/Object-capability_model&quot; rel=&quot;nofollow&quot;&gt;object-capability security&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Prolog&quot; rel=&quot;nofollow&quot;&gt;Prolog&lt;/a&gt; or &lt;a href=&quot;http://en.wikipedia.org/wiki/VHDL&quot; rel=&quot;nofollow&quot;&gt;VHDL&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good exercise by the way! This will teach you to think laterally and envision problems in language-agnostic terms, instead of relying on too few platform-specific techniques. For instance, once you master the similarities and differences in virtual method dispatch between C++ and Python, you'll pretty much &quot;get it&quot; instantly for any other language.&lt;/p&gt;&#xA;" OwnerUserId="604" LastActivityDate="2010-09-13T13:25:13.187" CommunityOwnedDate="2010-09-13T13:25:13.187" />
  <row Id="3233" PostTypeId="1" CreationDate="2010-09-13T13:42:22.283" Score="146" ViewCount="108808" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;With nearly 60 answers to this question it's highly likely that &lt;em&gt;your&lt;/em&gt; answer has already been posted. Please don't post an answer unless you have something new to say&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;As an entrepreneur/programmer who makes a good living from writing and selling software, I'm dumbfounded as to why developers write applications and then put them up on the Internet for free.  You've found yourself in one of the most lucrative fields in the world.  A business with 99% profit margin, where you have no physical product but can name your price; a business where you can ship a buggy product and the customer will still buy it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Occasionally some of our software will get a free competitor, and I think, this guy is crazy.  He could be making a good living off of this but instead chose to make it free.  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you not like giant piles of money?&lt;/li&gt;&#xA;&lt;li&gt;Are you not confident that people would pay for it?  &lt;/li&gt;&#xA;&lt;li&gt;Are you afraid of having to support it?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It's bad for the business of programming because now customers expect to be able to find a free solution to every problem. (I see tweets like &quot;is there any good FREE software for XYZ? or do I need to pay $20 for that&quot;.) It's also bad for customers because the free solutions eventually break (because of a new OS or what have you) and since it's free, the developer has no reason to fix it. Customers end up with free but stale software that no longer works and never gets updated. Customer cries. Developer still working day job cries in their cubicle. What gives?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: I'm not looking to start an open-source/software should be free kind of debate. I'm talking about when developers make a closed source application and make it free.&lt;/p&gt;&#xA;" OwnerUserId="1223" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-02-06T23:52:33.630" LastActivityDate="2011-02-12T08:50:54.877" CommunityOwnedDate="2010-10-02T03:46:51.680" Title="Why do programmers write applications and then make them free?" Tags="&lt;applications&gt;&lt;pricing&gt;&lt;free&gt;" AnswerCount="64" CommentCount="19" FavoriteCount="79" />
  <row Id="3234" PostTypeId="2" ParentId="3086" CreationDate="2010-09-13T13:48:57.957" Score="6" ViewCount="" Body="&lt;p&gt;As an engineer at Google involved in recruitment, here are the skills I look for in candidates (by decreasing order of importance):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;High-school level algebra, ie being able to write a pair of nested &quot;for&quot; loops without off-by-ones. (You would be surprised...)&lt;/li&gt;&#xA;&lt;li&gt;Back-of-the-envelope calculations for industrial feasibility (eg how many servers to sustain so many gajillion web pages a day assuming X capacity per server)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Asymptotic_computational_complexity&quot; rel=&quot;nofollow&quot;&gt;Algorithm complexity&lt;/a&gt; and the big-O notation&lt;/li&gt;&#xA;&lt;li&gt;Practical comp-sci type math, such as &lt;a href=&quot;http://en.wikipedia.org/wiki/Graph_theory&quot; rel=&quot;nofollow&quot;&gt;graph theory&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Data_structure&quot; rel=&quot;nofollow&quot;&gt;data structures&lt;/a&gt; and search algorithms&lt;/li&gt;&#xA;&lt;li&gt;Domain-specific math such as machine learning, statistics, computer vision and so on. This will depend on the job description, obviously.&lt;/li&gt;&#xA;&lt;li&gt;More esoteric foundational math that computer science is rooted upon, such as &lt;a href=&quot;http://en.wikipedia.org/wiki/Computational_complexity_theory&quot; rel=&quot;nofollow&quot;&gt;computability theory&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Lambda_calculus&quot; rel=&quot;nofollow&quot;&gt;lambda-calculus&lt;/a&gt; and Gödel's theory. And that's extremely subjective, other interviewers will typically have a disjoint set of pet interests.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;While on the topic of subjective testimony: I've found very little professional use to most of the math I learned and liked (advanced algebra, calculus), while some of the most boring stuff ever (statistics) turned out to be quite useful and I wish I had done more. Only the discrete math (group theory, combinatorics and the comp-sci stuff quoted above) netted me good bang for the bucks (or student-years — &lt;a href=&quot;http://en.wikipedia.org/wiki/Category%3aMathematics_websites&quot; rel=&quot;nofollow&quot;&gt;Math is cheap these days&lt;/a&gt;). &lt;/p&gt;&#xA;" OwnerUserId="604" LastActivityDate="2010-09-13T13:48:57.957" />
  <row Id="3235" PostTypeId="2" ParentId="3233" CreationDate="2010-09-13T13:50:57.773" Score="20" ViewCount="" Body="&lt;p&gt;There does come a point where enough is enough, and then there is the fact that it does take more effort to sell something even though it may be a small effort. I still need to come up with a way to collect money for example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the reason I post free apps that are closed source is simply because I love full featured freeware myself, so I like sending it out to the world with the same idea in mind. When I can get a significant task done with a completely free software package it feels great, so I like to share that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Really if the answer of 'why not make it free?' comes down to 'because you can get piles of money' then it all is about what your motivation for releasing some software is. Not everyone is motivated by more and more cash.&lt;/p&gt;&#xA;" OwnerUserId="785" LastActivityDate="2010-09-13T13:50:57.773" CommunityOwnedDate="2010-10-02T03:46:51.680" CommentCount="4" />
  <row Id="3236" PostTypeId="2" ParentId="3233" CreationDate="2010-09-13T13:51:49.607" Score="30" ViewCount="" Body="&lt;p&gt;I release my software for free because I have spent time and energy on it but have neither the time or inclination to market it, &lt;em&gt;someone might-as-well benefit&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By personal philosophy is (and I do sell software too), &quot;Competition makes you better&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't create a product that blows the competition (free or not) out of the water you're going to be in trouble.&lt;/p&gt;&#xA;" OwnerUserId="96" LastActivityDate="2010-09-13T13:51:49.607" CommunityOwnedDate="2010-10-02T03:46:51.680" CommentCount="5" />
  <row Id="3237" PostTypeId="2" ParentId="3233" CreationDate="2010-09-13T14:02:55.657" Score="19" ViewCount="" Body="&lt;p&gt;I see two main reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;An individual programmer may just want to be known and loved.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;There is an alternate economic model behind the scene. Some famous examples: iTunes, Acrobat reader, Firefox, Ubuntu are all free but their promoters all make money with these products (selling entertainment, paid features, audience for search engines, support).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-09-13T14:02:55.657" CommunityOwnedDate="2010-10-02T03:46:51.680" />
  <row Id="3238" PostTypeId="2" ParentId="3233" CreationDate="2010-09-13T14:03:13.890" Score="160" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Sharing&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of us make use of software that has been provided to use free of charge. As a result, it makes sense to share our own software free of charge as well. Basically, we are exchanging our software for the other free software but without the overhead of actually going through a transaction. There will be leaches who do not contribute, but since distribution is so cheap that does not matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Selling is Hard&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually trying to sell software makes the process much more difficult as you have to market, collect money, and worry about the legal ramifications of selling to people. For a lone programmer this takes them away from what they really want to be doing. As a result they may release their program simply so that other people can have benefit even if they cannot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A New Model&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might be argued that a new model of software development is arriving. The model of selling software is an attempt to take real-world selling and apply it to software. However, software is not like the real world. Because distribution is so cheap a couple of issues arise. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Letting someone use your software is basically free for you.&lt;/li&gt;&#xA;&lt;li&gt;Attempting to prevent people who haven't paid for the software from using it is really expensive.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Under this view, attempting to charge per copy of the software is a losing game. Thus you should attempt to make money on software-related services, not software itself. Thus you might charge for a support contract, hosting services, etc. rather than the right to use the software itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Incidentally, this model is used by webcomics, web series, etc. which give the primary product away for free and sell related merchandise.&lt;/p&gt;&#xA;" OwnerUserId="1343" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-12T08:37:09.743" LastActivityDate="2011-02-12T08:37:09.743" CommunityOwnedDate="2010-09-13T14:03:13.890" CommentCount="13" />
  <row Id="3239" PostTypeId="2" ParentId="3233" CreationDate="2010-09-13T14:03:38.923" Score="22" ViewCount="" Body="&lt;p&gt;A lot of free apps are created by someone who is fully employed and has come up with an idea for an application that they produce in their spare time.  That person doesn't &quot;need&quot; the money to survive.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of times finding the mechanisms to market, sell and collect payment are just not worth the effort and sometimes individuals just enjoy offering something they thought as useful to the general public.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are competing with a free application then the best strategy is to make a better product.  I've often purchased an application over using a free version just because it offered more features or was better implemented in some way.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-13T14:03:38.923" CommunityOwnedDate="2010-10-02T03:46:51.680" />
  <row Id="3240" PostTypeId="2" ParentId="3233" CreationDate="2010-09-13T14:16:24.360" Score="3" ViewCount="" Body="&lt;p&gt;I've &quot;released&quot; (well uploaded to my website) a couple of desktop applications for free because I didn't think anyone would be prepared to pay for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're very small applications and I couldn't justify charging more than £10 or so for them anyway. I didn't expect to get many users (I know I have at least one) so it didn't seem worth setting up the PayPal integration on my website to collect payments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I ever write something larger that I think will have a market then I will look harder and longer at getting payment for it.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-13T14:16:24.360" CommunityOwnedDate="2010-10-02T03:46:51.680" />
  <row Id="3241" PostTypeId="1" AcceptedAnswerId="5061" CreationDate="2010-09-13T14:20:21.583" Score="13" ViewCount="485" Body="&lt;p&gt;This question is a little abstract but I'm hoping someone can point me in the right direction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is what amount of time can one expect to devote to a software project's bugs in relation to the original development time. I realize there are a huge number of determining factors that go into but I was hoping for a typical or average breakdown. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, if Project A takes 40 hours to complete and an additional 10 fixing bugs then this project would have a 4:1 ratio.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If another Project (B) takes 10 hours to complete but another 8 on bugs then it would have a 5:4 ratio. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this a documented/researched concept?&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;UPDATE&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Thanks for all the informative answers. I understand that it's impossible to put a standard to this kind of metric due to all the variables and environmental factors involved. Before I assign an answer I'd like to know if this metric has an agreed-upon name so I can do further research. I would like to get to a point where I can understand the measurements necessary to generate the metrics myself and eventually come up with a baseline standard for my project.&lt;/p&gt;&#xA;" OwnerUserId="1529" LastEditorUserId="1529" LastEditorDisplayName="" LastEditDate="2010-09-17T14:56:34.073" LastActivityDate="2011-03-20T22:25:11.617" Title="What amount of time should be spent on bugs vs original development?" Tags="&lt;bugs&gt;&lt;time&gt;" AnswerCount="11" FavoriteCount="3" />
  <row Id="3242" PostTypeId="2" ParentId="3241" CreationDate="2010-09-13T14:29:28.443" Score="8" ViewCount="" Body="&lt;p&gt;Unfortunately I believe this ratio is highly variable in a given project.  It will drastically be affected by your environment, language, tools, team size and experience.  &lt;/p&gt;&#xA;" OwnerUserId="144" LastActivityDate="2010-09-13T14:29:28.443" />
  <row Id="3243" PostTypeId="2" ParentId="3233" CreationDate="2010-09-13T14:29:34.280" Score="89" ViewCount="" Body="&lt;p&gt;Releasing free apps and working on open source programs are great advertisements for selling a product, namely you. (Alternatively phrased: free apps are a loss leader for selling your time.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also the concept of the &quot;gift economy&quot;, where the more you give away the wealthier you &#xA; are. Why would I &lt;em&gt;not&lt;/em&gt; donate back to my peers/society at large when I have received so much from so many people?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, what other field allows you to directly affect the lives of millions of people by writing something that makes their lives that little bit easier?&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-13T14:29:34.280" CommunityOwnedDate="2010-10-02T03:46:51.680" CommentCount="12" />
  <row Id="3244" PostTypeId="2" ParentId="2051" CreationDate="2010-09-13T14:35:17.477" Score="0" ViewCount="" Body="&lt;p&gt;We work as a Scrum team and do our estimates for user stories in story points. When I looked at my second half goals for this year is was a requirement the the our story points must be within +/- 10 percent of the actual development hours spent on the story. For those involved in Agile you know story points are unitless and are based on a Fibonacci number sequence. I have yet to figure out how to make estimate match the actual how anyone could put such a requirement on the team.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-13T14:35:17.477" CommunityOwnedDate="2010-09-13T14:35:17.477" />
  <row Id="3245" PostTypeId="2" ParentId="3233" CreationDate="2010-09-13T14:38:45.773" Score="199" ViewCount="" Body="&lt;p&gt;Because I don't want to feel obligated to provide technical support or offer refunds.&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2010-09-14T12:50:21.697" LastActivityDate="2010-09-14T12:50:21.697" CommunityOwnedDate="2010-10-02T03:46:51.680" CommentCount="15" />
  <row Id="3246" PostTypeId="2" ParentId="1588" CreationDate="2010-09-13T14:47:35.657" Score="3" ViewCount="" Body="&lt;p&gt;Desktop. I need my keys to be where they are. When microsoft came out with that stupid &quot;lets turn those Insert/home/pageup/delete/end keys around 90 degrees&quot; I raged like never before in my life. Keep my damn keys where they are, I don't want your garbage. I want my Model-M keyboard I've been using since the days when Comodore roamed the earth. My keyboard gets a lot of wear and I end up replacing normal ones really frequently because the contacts break up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I need more than one real monitor. I don't want to look at some tiny freaking screen, and I don't want to lug around a 24 inch screen beast that devours the battery life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't want any special over-ridden &quot;make MS Word open&quot; BS keys. I don't need to hit F-Whatever and have my screens flicker around. I want a numpad. Don't screw with my freaking keyboard!!!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't use the mouse often, but I'd sure as hell use one over the trackpad or that TrackPoint garbage. When I'm typing I don't want the side of my hand to touch the trackpad and suddenly the text cursor is all over the screen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why would you EVER use a laptop for something other than screwing around in class at college?&lt;/p&gt;&#xA;" OwnerUserId="1525" LastActivityDate="2010-09-13T14:47:35.657" CommunityOwnedDate="2011-01-27T05:21:04.337" />
  <row Id="3247" PostTypeId="2" ParentId="1997" CreationDate="2010-09-13T14:51:06.160" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Ergonomics.&lt;/strong&gt;  Get a real professional to evaluate your workstation and recommend placement of monitor, keyboard, and chair.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Gently stretch out your hands, wrists, and arms before you begin an extensive keyboarding session.  Pay attention to your posture too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started getting a lot of wrist pain in 1998 and I had to change a bunch of my habits. To this day I wear wrist braces while working at the computer (I use the IMAK SmartGlove).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't play too many video games, that just increases the hours you spend torturing your hands and wrists.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, drink plenty of water and exercise regularly.  Lay off the soft drinks.&lt;/p&gt;&#xA;" OwnerUserId="471" LastActivityDate="2010-09-13T14:51:06.160" />
  <row Id="3248" PostTypeId="2" ParentId="3089" CreationDate="2010-09-13T14:57:57.813" Score="1" ViewCount="" Body="&lt;p&gt;Work with better programmers.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-13T14:57:57.813" CommunityOwnedDate="2011-02-02T05:23:59.377" />
  <row Id="3249" PostTypeId="2" ParentId="3241" CreationDate="2010-09-13T15:04:39.907" Score="8" ViewCount="" Body="&lt;p&gt;You should spend time on a bug only if what you gain from the fix is greater from what you invest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use a matrix like the following (horizontal - time required to fix the bug, vertical - type of bug - impact on users)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;              | Few hours | Many hours&#xA;--------------+-----------+-------------------------&#xA;Minor problem | Might fix | Fix only if time permits&#xA;--------------+-----------+-------------------------&#xA;Major problem | Fix       | Fix&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Example of problems:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;              | Few hours                            | Many hours&#xA;--------------+--------------------------------------+---------------------------------&#xA;              | Window moves 1px every 10            | Windows is painted incorrectly &#xA;Minor problem | times when you open the application. | every 100th time the app is open.&#xA;              | Fix is: handle window resize event   | Fix: Change the graphical engine.&#xA;--------------+--------------------------------------+---------------------------------&#xA;Major problem | Application crashes when opening     | Poor performance when &amp;gt;100 users &#xA;              | SQL connection.                      | are connected (unusable app)&#xA;              | Fix: Fix invalid query + add nice    | Fix: change architecture + DB&#xA;              | message                              |&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The matrix can be more complex with different levels of severity, effort, risks, etc&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can even create a rank for each bug and fix them based on ranking. Something like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Bug priority = Risk x Severity x Effort&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;*Might be (1-x) for some operands, depending on which scale you choose :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, to answer your question: depends of the type of bugs, available time/budget, etc.&lt;/p&gt;&#xA;" OwnerUserId="782" LastEditorUserId="782" LastEditorDisplayName="" LastEditDate="2010-09-13T15:26:20.463" LastActivityDate="2010-09-13T15:26:20.463" CommentCount="1" />
  <row Id="3250" PostTypeId="2" ParentId="3241" CreationDate="2010-09-13T15:05:35.400" Score="4" ViewCount="" Body="&lt;p&gt;The truly correct answer would be zero hours on bug fixes because your code is perfect. :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Realistically, I can't say that I've ever heard someone ask for or offer that type of ratio.  That's not to say that some companies don't track the time for both development and maintenance.  But the development of an application is such a short timeframe when compared to the maintenance that most companies don't go back and calculate that ratio.  They're probably more concerned about learning why an app requires maintenance and applying those findings to new applications.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-09-17T16:17:53.967" LastActivityDate="2010-09-17T16:17:53.967" CommentCount="1" />
  <row Id="3251" PostTypeId="2" ParentId="3201" CreationDate="2010-09-13T15:09:34.650" Score="2" ViewCount="" Body="&lt;p&gt;Pick the ones that interest you.  There are jobs available in all of those fields.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've got the Computer Science degree with good enough grades from a good enough university, employers largely don't care about the specific details of what you studied.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps if you studied something directly relevant to the job that you apply for it will count in your favour, but if you pick subjects you are interested in and apply for positions you are interested in, that will take care of itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Life's too short to base your career decisions on what you think would be most attractive to future employers rather than what you would prefer to do.  There's no job satisfaction in that.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-13T15:09:34.650" />
  <row Id="3253" PostTypeId="2" ParentId="2846" CreationDate="2010-09-13T15:15:46.630" Score="37" ViewCount="" Body="&lt;h2&gt;LabView&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;br /&gt;&#xA;Some of you may not consider this an actual programming language, but as a programmer where I work I've still had to use it. And I can't stand it. Despite being GUI-designed, the part I despise most is the fact that not all of the flow is visible at once (case statements, etc.) and debugging it is a terror.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is just something I came across in Google Image Search, but just TRY and figure out what's going on here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://www.ntecs.de/old-hp/uu9r/lang/html/labview.jpg&quot; /&gt;&lt;/p&gt;&#xA;" OwnerUserId="1537" LastActivityDate="2010-09-13T15:15:46.630" CommunityOwnedDate="2010-09-13T15:15:46.630" CommentCount="11" />
  <row Id="3254" PostTypeId="2" ParentId="3139" CreationDate="2010-09-13T15:18:03.927" Score="4" ViewCount="" Body="&lt;p&gt;I've spent a lot of time reading resumes over the last year.  A list of specific skills is a useful summary, but should be backed up through descriptions of how those skills were used in development projects.  It is nice to be able to easily answer &lt;em&gt;Does candidate X know Y?&lt;/em&gt;  when creating a short-list.  When evaluating this short list, y I want to dig deeper: &lt;em&gt;Candidate X used Y for this project.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On my own resume, I have a list of what I feel are my strongest, most marketable skills, my expertise in those skills (expert, strong, etc.) and a brief statement supporting my claimed knowledge (C++, expert, used templates in anger).&lt;/p&gt;&#xA;" OwnerUserId="1427" LastActivityDate="2010-09-13T15:18:03.927" />
  <row Id="3255" PostTypeId="2" ParentId="3241" CreationDate="2010-09-13T15:20:54.033" Score="1" ViewCount="" Body="&lt;p&gt;The biggest determining factor for this is whether you're working with a new technology or an existing one. If you're working with something new and developing something that hasn't been done or has been done a few times in different circumstances, you're going to spend a lot of time on bugfixes and getting your project to work the way you want. Frequently bugs will be the result of working yourself into a corner, and you'll need to do significant amounts of work to restructure what you've done. Additionally, many bugs will result from an incomplete understanding of user expectations and developer's unawareness of edge cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're working on an established technology, most problems will have been dealt with by the libraries or by practices in the community, and you should be able to google, buy, or ask your way out of any bugs you run into.&lt;/p&gt;&#xA;" OwnerUserId="1147" LastActivityDate="2010-09-13T15:20:54.033" />
  <row Id="3256" PostTypeId="1" AcceptedAnswerId="3261" CreationDate="2010-09-13T15:21:47.213" Score="10" ViewCount="370" Body="&lt;p&gt;I've had several, so I'll post them as different answers.&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T20:37:29.163" LastActivityDate="2010-09-18T20:37:29.163" Title="What are the greatest lengths an employer has gone to prevent you from getting another job?" Tags="&lt;jobs&gt;&lt;incentives&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="1" />
  <row Id="3257" PostTypeId="2" ParentId="3139" CreationDate="2010-09-13T15:26:17.427" Score="3" ViewCount="" Body="&lt;p&gt;You cannot be good at everything you've ever used. So just list the core things you are interested in and more importantly the things that you want to &lt;em&gt;continue&lt;/em&gt; working in and also things you are good at.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remove technologies in which you have no interest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If someone showed me a list with 30 things on it, I'd know they were bending the truth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus, imagine you have 2 CVs/resumes in front of you, and you need someone with skill X.&#xA;CV one has 29 other technologies and skill X on it.&#xA;CV two has X and 2 other technologies on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know who I'd sooner hire for the role.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By doing this you will exclude yourself from some roles but will be a front runner for others, especially if you back up your 'reduced but more focused' skillset with examples in your employment history.&lt;/p&gt;&#xA;" OwnerUserId="160" LastActivityDate="2010-09-13T15:26:17.427" CommentCount="1" />
  <row Id="3258" PostTypeId="2" ParentId="1588" CreationDate="2010-09-13T15:28:52.813" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Laptop are more expensive for the same prepossessing power&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, the real question is: could you (or your employer) afford a laptop?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could get rid of must of the disadvantages of the laptops by getting other material for it; extra(s) monitor(s), docking station, keyboards and mouses, external drives, extra power supply, wipers, air conditioning, air bag and so on. But that make the whole package price differences bigger.    &lt;/p&gt;&#xA;" OwnerUserId="19" LastActivityDate="2010-09-13T15:28:52.813" CommunityOwnedDate="2011-01-27T05:21:04.337" CommentCount="2" />
  <row Id="3259" PostTypeId="2" ParentId="3241" CreationDate="2010-09-13T15:28:57.937" Score="2" ViewCount="" Body="&lt;p&gt;Having too broad of a criteria for what is a bug can almost double your time. An over-zealous manager that thinks a client's request to make a button larger (they have mouse issues) is a great way to increase the number of bugs we fixed. It will only take a few seconds to fix because there is no need to consider, testing, recompiling and distributing a patch. Oh, and it gets double-counted as a new feature.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-13T15:28:57.937" />
  <row Id="3260" PostTypeId="2" ParentId="3131" CreationDate="2010-09-13T15:28:58.707" Score="4" ViewCount="" Body="&lt;p&gt;This one is very brief from my point of view:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Problem Solving&lt;/li&gt;&#xA;&lt;li&gt;Ability and Willingness to learn&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Even when hiring someone with topical experience in the tech you are using these two points make up the largest part of if the person is going to be a good team member.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can easily answer a question about how you do x in tool y, but to try and force someone to see the problem correctly, or go find the correct answer themselves if nobody on the team knows it is something that sometimes just cannot be done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would rather have people who get the logical problems and have a desire to find solutions than someone with some prerequisite years of experience in the specific tools at hand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best hire I ever made had no experience other than gcc and we were a .net shop.  He was fresh out of school and had brought a program that was a computer opponent version of the ancient Egyptian game senet.  I asked him why he chose such a obscure game for his project and his answer was that the binary tree for possible outcomes was something he could verify by hand if needed.  That was a very interesting preemptive solution to a problem and pretty much sold the interview.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-13T15:28:58.707" CommentCount="1" />
  <row Id="3261" PostTypeId="2" ParentId="3256" CreationDate="2010-09-13T15:30:08.783" Score="5" ViewCount="" Body="&lt;p&gt;Wow, that sounds insane! I cannot see how any employer would want to keep an employee against their will, especially by using such dodgy tactics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never been in that situation (only recently graduated) but a guy I knew who studied CS part-time at university was doing so to get out of his current job. He was a developer and primary tester at a military contractor and he was so valuable to the company that every time he stated that he wanted to leave they would offer him more and more money until he caved in and stayed. The guy had a wive and kids to feed and his company used money as an incentive to keep him in a job he didn't really like.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To my knowledge he's still there, but who knows, once he has his degree he may be able to find work elsewhere without obscene money being a factor.&lt;/p&gt;&#xA;" OwnerUserId="1037" LastActivityDate="2010-09-13T15:30:08.783" CommentCount="5" />
  <row Id="3262" PostTypeId="2" ParentId="3233" CreationDate="2010-09-13T15:31:49.153" Score="7" ViewCount="" Body="&lt;p&gt;Start them off with a free version.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then by version 4 start charging.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the product is any good, people will continue to buy it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alternatively, go the Google route and offer a cut-down version for free, with a pro version costing a small amount extra.&lt;/p&gt;&#xA;" OwnerUserId="160" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-12T08:40:12.483" LastActivityDate="2011-02-12T08:40:12.483" CommunityOwnedDate="2010-10-02T03:46:51.680" />
  <row Id="3263" PostTypeId="2" ParentId="2051" CreationDate="2010-09-13T15:36:26.197" Score="37" ViewCount="" Body="&lt;p&gt;I once had a client specification that literally called for code capable of traveling backwards in time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My employer harvested data for the client, and we were to deliver it in file format X at ten-minute intervals between 9 AM and 5 PM, save for the final delivery, which was in format Y (just X with a different footer).  I did just that ... and they freaked.  We were collecting low-volume data, and really only had one or two data points to deliver on any given day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;QUIT SPAMMING US WITH EMPTY FILES!!!&quot; they cried.  &quot;FIVE K'S EVERY TEN MINUTES ENCLOGULATES OUR BANDTUBES!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Okay.  So, my code checked every ten minutes, and only delivered if there was anything to deliver.  Fair enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;BUT THE LAST FILE MUST BE IN FORMAT Y!!!&quot; they screamed.  &quot;MODERN TECHNOLOGY CONFUSES AND ANGERS US!  FIX IT OR WE WILL BEAT YOU WITH A MASTODON FEMUR!*&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(* -- It is possible I'm misremembering portions of the conversation.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;So, I'm only to deliver the file if there's fresh data to deliver.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;YES.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;And the final delivery for the day is supposed to be a different file format.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;YES.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Except I have no way of knowing which file will be the last of the day until the end of the day.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;YES.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;So the only way for me to implement this is to write code that goes backwards in time at the end of the day to redo the format on what turned out to be the final delivery.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;COULD YOU HAVE IT REPORT SPORTS SCORES?  WE SAW BACK TO THE FUTURE II.  BIFF TANNEN MAKES US HAPPY.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I refused, in part because violating causality is an unethical programming practice, in part because CPAN.org didn't have a module that would let me do it.  (I checked.)  In the end, they allowed me to send a file in format Y at the end of the day, regardless of whether or not it had any actual data.  I'm pretty sure their bandwidth survived the hit.&lt;/p&gt;&#xA;" OwnerUserId="17" LastEditorUserId="17" LastEditorDisplayName="" LastEditDate="2010-09-13T18:06:59.780" LastActivityDate="2010-09-13T18:06:59.780" CommunityOwnedDate="2010-09-13T15:36:26.197" CommentCount="8" />
  <row Id="3264" PostTypeId="2" ParentId="1588" CreationDate="2010-09-13T15:38:31.993" Score="3" ViewCount="" Body="&lt;p&gt;Show me an ergonomic laptop with 3 screens (or similar single screen resolution) and I'll go with a laptop, til then it's a desktop all the way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Portability is not a problem when you are using remote desktops.&lt;/p&gt;&#xA;" OwnerUserId="160" LastActivityDate="2010-09-13T15:38:31.993" CommunityOwnedDate="2011-01-27T05:21:04.337" />
  <row Id="3265" PostTypeId="2" ParentId="1588" CreationDate="2010-09-13T15:58:49.630" Score="13" ViewCount="" Body="&lt;p&gt;I once worked with a contractor whose entire lifestyle was enabled by her laptop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Her worldly possessions could fit into a couple of bags -- and one of those possessions was a Mac laptop, which for her was a magic box that made money appear.  I literally -- &lt;i&gt;literally&lt;/i&gt; -- was often unsure of which continent she was on any given day.  Most of the time she was some place in the Argentina hinterlands where she found a good internet connection, but she could have been in San Francisco, or DC, or Hong Kong, or....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I met her in person, once.  She was in town for a relative's wedding.  I asked where she was heading afterward.  She didn't know; either Argentina or San Francisco.  She had everything she owned with her, and she'd decide tomorrow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;She did good work, too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, I much prefer developing on a desktop; I loves my multiple monitors, and the physical environment is more ergonomically sound.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But when I (or anybody else) say some version of &quot;It all depends on what your needs are,&quot; it's true.  &lt;i&gt;It all depends on what your needs are.&lt;/i&gt;&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-13T15:58:49.630" CommunityOwnedDate="2011-01-27T05:21:04.337" CommentCount="3" />
  <row Id="3266" PostTypeId="2" ParentId="326" CreationDate="2010-09-13T16:04:15.580" Score="0" ViewCount="" Body="&lt;p&gt;Thunderbird with the Lightning extension.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-09-13T16:04:15.580" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="3267" PostTypeId="2" ParentId="3233" CreationDate="2010-09-13T16:04:17.567" Score="77" ViewCount="" Body="&lt;p&gt;I suggest that you watch this fantastic video to learn why money is often not the motivation for doing things: &lt;a href=&quot;http://www.youtube.com/watch?v=u6XAPnuFjJc&amp;amp;feature=youtube_gdata_player&quot; rel=&quot;nofollow&quot;&gt;RSA Animate - Drive: The surprising truth about what motivates us &lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recommend that you watch the whole thing, but it also directly answers your question around the 6:40 mark. &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2011-02-06T07:55:11.083" LastActivityDate="2011-02-06T07:55:11.083" CommunityOwnedDate="2010-10-02T03:46:51.680" CommentCount="2" />
  <row Id="3269" PostTypeId="2" ParentId="419" CreationDate="2010-09-13T16:06:49.957" Score="2" ViewCount="" Body="&lt;p&gt;Listen to my boss asking when is Boss day. :(&lt;/p&gt;&#xA;" OwnerUserId="1125" LastActivityDate="2010-09-13T16:06:49.957" CommentCount="1" />
  <row Id="3271" PostTypeId="2" ParentId="3201" CreationDate="2010-09-13T16:24:19.900" Score="4" ViewCount="" Body="&lt;p&gt;&quot;It all depends on what kind of career you want&quot; really is the correct answer.  Go upvote some of those.  But, if you're looking for somebody with professional experience to pontificate a bit....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Computer Graphics and Image Processing&lt;/b&gt; -- Specialist.  Will probably be immensely valuable if you'd like to do anything really graphics intensive or want to get into the nuts and bolts of image processing, but for most of programmers, we can get away with treating graphics as a black box.  That makes pretty pretty fireworks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Datawarehousing Datamining and Information Retrieval&lt;/b&gt; -- Does this include database stuff?  That's probably the single biggest hole in my formal training -- all the database stuff I know I picked up outside of college.  And the key to using the Internet is sifting through the preposterous overabundance of data.  This sounds valuable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Neural Computing&lt;/b&gt; -- Not sure what this is.  Is this &quot;neural network&quot; type stuff, or is this literally studying how biological brains work in computing terms?  The former is pretty specialized; having some AI background will be more useful in some fields than in others, and I've never had to use it.  The latter sounds even MORE specialized.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Compilers and Automata Theory&lt;/b&gt; -- Compilers are an ubiquitous tool.  This probably won't give you much in the way of day-to-day knowledge (unless, again, you want to write compilers!), but sounds like exactly the sort of important theoretical background knowledge that a good CS degree is supposed to provide.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Middleware Architectures&lt;/b&gt; -- No matter which branch of computing becomes your career, I can guarantee it will involve programs whose only purpose in life is to talk to other programs.  This does not sound sexy.  It does sound useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Human Computer Interaction&lt;/b&gt; -- An undervalued branch of information technology that deserves more respect.  If you intend to write software used by humans who aren't you (and heck, you might not), this is a skillset worth cultivating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Cryptography Systems&lt;/b&gt; -- See my response to &quot;compilers.&quot;  The details are only going to be valuable if your career goes in very specific directions.  The overall theory is exactly the sort of thing you should be looking to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Introduction to Virtual Reality&lt;/b&gt; -- I think VR has been the Future Of Computing for my entire adult life.  I'm skeptical about this, but I'm not confident I know what it really means anymore.  It has to be more than just silly goggles by now, right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;System Design for Internet&lt;/b&gt; -- This Internet thing?  I'm pretty sure it's here to stay.  Learning about it can only work to your advantage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-13T16:24:19.900" />
  <row Id="3272" PostTypeId="1" AcceptedAnswerId="3275" CreationDate="2010-09-13T16:27:28.713" Score="57" ViewCount="4903" Body="&lt;p&gt;How would you, as someone involved in the hiring process (manager,interviewer, etc) feel about a candidate that has changed jobs every 1-2 years?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;update&lt;/strong&gt;&lt;br&gt;Thanks for all the input everybody, some really great responses, and good info in every post.  I asked it because I'm currently at my 3 job in the last 5 years and I'm feeling like my position is going nowhere (like the position should have been contract in the first place, not full-time).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My only options here seem like transition to a different team doing something I'm not really interested in or look for new work, but I'm a little afraid my recent job history is all short stints.&lt;/p&gt;&#xA;" OwnerUserId="719" LastEditorUserId="719" LastEditorDisplayName="" LastEditDate="2010-09-14T04:26:16.617" LastActivityDate="2010-12-03T14:59:49.763" ClosedDate="2011-05-29T03:23:38.330" Title="Job hopping, is it a problem?" Tags="&lt;jobs&gt;&lt;hiring&gt;" AnswerCount="22" CommentCount="4" FavoriteCount="23" />
  <row Id="3273" PostTypeId="2" ParentId="1785" CreationDate="2010-09-13T16:31:20.703" Score="9" ViewCount="" Body="&lt;p&gt;Divide and Conquer.  It's usually the best way to solve any type of practical problem from scheduling to debugging.&lt;/p&gt;&#xA;" OwnerUserId="1540" LastActivityDate="2010-09-13T16:31:20.703" CommunityOwnedDate="2010-09-15T18:31:41.813" />
  <row Id="3274" PostTypeId="2" ParentId="3272" CreationDate="2010-09-13T16:35:05.343" Score="29" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Assuming that this was for a permanent position&lt;/strong&gt; it would raise a warning in my mind. Basically I don't want to be training this person's replacement in a year's time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I would look at the circumstances for each move. Were any redundancies? Was the move due to the relocation of a spouse? etc. If there were legitimate reasons for most of the moves then I wouldn't treat them any differently to any other candidate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each case has to be taken on it's own merits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;If this was for a contract role&lt;/strong&gt; then a job every 1-2 years is quite a long time, particularly if the norm is for contracts that last 6 months or less.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-09-13T20:30:43.823" LastActivityDate="2010-09-13T20:30:43.823" CommentCount="7" />
  <row Id="3275" PostTypeId="2" ParentId="3272" CreationDate="2010-09-13T16:35:48.913" Score="45" ViewCount="" Body="&lt;p&gt;It depends on the context:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In a startup culture (like Silicon Valley), one to two years is the lifetime of many companies, and it's expected you'd be switching your place of employment that often.&lt;/li&gt;&#xA;&lt;li&gt;If you're a contract worker, a contract may only be a short, set timespan.&lt;/li&gt;&#xA;&lt;li&gt;Everywhere else, one to two years is an unusually short stay at a company.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In any context, employers are generally looking for a person who's going to be in it for the long haul, whatever the long haul is for the company:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Startups are looking for someone who will last until the exit: acquisition, IPO, shuttering, etc.&lt;/li&gt;&#xA;&lt;li&gt;Contract hires should be able to successfully complete their contracts to term.&lt;/li&gt;&#xA;&lt;li&gt;Other companies are looking for an employee who will last long enough to make a return on the investment of hiring them: this can take several years.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It's a red-flag to potential employers if you're constantly leaving your job for personal reasons, even if you have perfectly valid reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also note that having experience in one context isn't necessarily going to translate to another. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, if you're a life-long contract worker, it can look just as unappealing to a company looking to hire full-time employees as someone who went from regular job to regular job. Similarly, a person who stayed at a job for 10 years might be unappealing to a startup that wants people who are constantly looking for the next big thing.&lt;/p&gt;&#xA;" OwnerUserId="8" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-13T20:22:42.963" LastActivityDate="2010-09-13T20:22:42.963" CommentCount="11" />
  <row Id="3277" PostTypeId="1" AcceptedAnswerId="3281" CreationDate="2010-09-13T16:43:41.817" Score="13" ViewCount="260" Body="Today I found a GPLed project on SourceForge whose executables are spreading a virus. This fact has been pointed out several times in reviews of the project and the infected executable is still available for download. Apparently, older executables are not infected, so the project itself does not seem to be made with malicious purpose in mind.&#xD;&#xA;&#xD;&#xA;There is no preferred way to contact developers and forums for the project are dead.&#xD;&#xA;&#xD;&#xA;What should I do?" OwnerUserId="98" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-24T20:49:20.720" LastActivityDate="2010-09-24T20:49:20.720" Title="I found free software project whose executables are spreading a virus. What is the correct couse of action?" Tags="&lt;behavior&gt;&lt;open-source&gt;&lt;ethics&gt;" AnswerCount="2" CommentCount="4" />
  <row Id="3278" PostTypeId="2" ParentId="3272" CreationDate="2010-09-13T16:43:45.310" Score="7" ViewCount="" Body="&lt;p&gt;If there are only 2 or 3 jobs I don't think it would be a problem, but I would ask them about it on the interview to see how they answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a senior developer with over 15 years of development, I would expect to see at least 1 or 2 of the company's they've worked on for a long period of time.  Otherwise I may not even interview.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-13T16:43:45.310" CommentCount="2" />
  <row Id="3279" PostTypeId="2" ParentId="2023" CreationDate="2010-09-13T16:46:44.603" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://kdiff3.sourceforge.net/&quot; rel=&quot;nofollow&quot; title=&quot;KDiff3&quot;&gt;KDiff3&lt;/a&gt; has served me very well, particularly with 3-way merges. The fact that they release windows and mac versions has come in handy over the years as well, since I don't always have the option of running linux at work.&lt;/p&gt;&#xA;" OwnerUserId="1532" LastActivityDate="2010-09-13T16:46:44.603" />
  <row Id="3280" PostTypeId="2" ParentId="3277" CreationDate="2010-09-13T16:47:02.870" Score="9" ViewCount="" Body="&lt;p&gt;I would start by sending an email to the project maintainer and developers.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-13T16:47:02.870" />
  <row Id="3281" PostTypeId="2" ParentId="3277" CreationDate="2010-09-13T16:49:56.077" Score="18" ViewCount="" Body="&lt;p&gt;If you can't get in touch with the developers, then contact SourceForge.  Report the problem, give them detailed information they can use to verify the issue, and they'll (probably) take it down.  They're a reputable site and I imagine they wouldn't want to be associated with malware.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-13T16:49:56.077" />
  <row Id="3282" PostTypeId="1" AcceptedAnswerId="3502" CreationDate="2010-09-13T16:52:27.040" Score="20" ViewCount="1567" Body="&lt;p&gt;It's happened to all of us.  Maybe the original author is no longer with the company, or maybe the boss just doesn't trust him to fix it (Kernighan's Law).  Either way, they gave it to you, and you ended up having to fix it.  What was it like?  What was the problem?  How bad was the code, and what did you end up doing with it?&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2011-01-14T18:11:43.393" CommunityOwnedDate="2011-01-14T18:11:43.393" Title="What's the scariest piece of Other People's Code you've ever had to maintain?" Tags="&lt;bugs&gt;&lt;bad-code&gt;&lt;horror-stories&gt;" AnswerCount="20" CommentCount="6" FavoriteCount="4" />
  <row Id="3283" PostTypeId="2" ParentId="1947" CreationDate="2010-09-13T16:58:47.873" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/365489/questions-every-good-net-developer-should-be-able-to-answer&quot;&gt;Questions every good .NET developer should be able to answer?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/2114212/questions-every-good-java-j2ee-developer-should-be-able-to-answer&quot;&gt;Questions every good Java/J2EE Developer should be able to answer?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/2119859/questions-every-good-database-sql-developer-should-be-able-to-answer&quot;&gt;Questions every good Database/SQL developer should be able to answer&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/2119826/what-questions-should-every-good-javascript-developer-be-able-to-answer&quot;&gt;What questions should every good JavaScript developer be able to answer?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-09-13T16:58:47.873" CommentCount="1" />
  <row Id="3284" PostTypeId="2" ParentId="3272" CreationDate="2010-09-13T16:59:11.267" Score="23" ViewCount="" Body="&lt;p&gt;Context is everything.  Silicon Valley isn't the only place with unstable employers; somebody who likes working for startups* is going to bounce around a lot between stable gigs.  Look at the employers: staying no more than six months at, say, Apple, Bank of America, and Carnegie-Melon University is far more ominous than brief stays at Frank's ConsultantTeria, BadlyExecutedIdea.com, and OurInvestorsBonedUs.org.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(* -- Somebody like me.  I can't claim pure objectivity here.)&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-13T16:59:11.267" CommentCount="2" />
  <row Id="3285" PostTypeId="2" ParentId="3256" CreationDate="2010-09-13T17:10:36.207" Score="7" ViewCount="" Body="&lt;p&gt;Right now, I'm the sole developer in a company, and I've only been out of school for a couple of years... I like to think that I'm not too shabby a developer, but I know that I could really use a team of people to work with/bounce ideas off/etc. In fact, I actually took the job on the premise that there was a senior dev there who I'd be working under - who turned out to be a contract that was charging more than they wanted to pay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think I met the guy twice in total.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I eventually gave in my resignation, and told them this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They went so far as to hire a (great, from what I can tell) developer to be a mentor of sorts. When I asked, in a meeting what his role was/what he'd be doing &quot;He's furniture, there for you to talk to.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-13T17:10:36.207" CommentCount="3" />
  <row Id="3286" PostTypeId="2" ParentId="262" CreationDate="2010-09-13T17:21:56.060" Score="4" ViewCount="" Body="&lt;p&gt;Currently Qt is killing  Java in Desktop Applications.There are many rewrite from Java to Qt.Currently i'm working on one of them. Since the day i  started  my programming carrer there is always a rumour that Something would kill C++ . For Ex . Visual basic, Java, C#, but in reality C++ is still going. It has many disadvantages but it is still going. All other Competitors had sad death.........&lt;/p&gt;&#xA;" OwnerUserId="1553" LastActivityDate="2010-09-13T17:21:56.060" CommunityOwnedDate="2011-03-14T15:05:05.090" />
  <row Id="3287" PostTypeId="2" ParentId="1947" CreationDate="2010-09-13T17:23:47.920" Score="0" ViewCount="" Body="&lt;p&gt;Prepare everything else. Company's profile. Why you like the company. etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you already have an appointment for interview, I think it is too late to prepare for technical knowledge. Good interviewer will be able to spot that your answers come from experience or not.&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-09-13T17:23:47.920" />
  <row Id="3288" PostTypeId="2" ParentId="1785" CreationDate="2010-09-13T17:27:43.553" Score="12" ViewCount="" Body="&lt;p&gt;Domain knowledge. The spec is never 100%; knowing the actual domain with which you are developing for will ALWAYS increase the quality of the product.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-13T17:27:43.553" CommunityOwnedDate="2010-09-15T18:31:41.813" />
  <row Id="3289" PostTypeId="2" ParentId="2331" CreationDate="2010-09-13T17:29:12.043" Score="9" ViewCount="" Body="&lt;p&gt;NONE&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just because a feature gets misused frequently does not make it harmful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO the entire &quot;is considered harmful&quot; is the &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Reductio_ad_Hitlerum&quot; rel=&quot;nofollow&quot;&gt;Reductio ad Hitlerum&lt;/a&gt; of programming language discussions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most, if not all, of the &quot;harmful&quot; features have, or had originally, a very valid use case or are simply convenience methods in the first place.  It is up to the developers to understand the pros and cons and code accordingly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your questions was meant to be something along the lines of &quot;what language features have common pitfalls or unfortunate side-effects&quot; my answer would be different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[edit] To be clear: I do not mean the continued use of deprecated methods.  If the developers are depreciating/removing a feature you should use the replacement.  I am referring to concept that a current part of the language is considered harmful because some do not like what it encourages or the trade-off involved in using it that many people discuss.&lt;/p&gt;&#xA;" OwnerUserId="841" LastEditorUserId="147" LastEditorDisplayName="" LastEditDate="2010-09-23T23:12:21.507" LastActivityDate="2010-09-23T23:12:21.507" CommentCount="10" />
  <row Id="3290" PostTypeId="2" ParentId="262" CreationDate="2010-09-13T17:33:45.377" Score="14" ViewCount="" Body="&lt;p&gt;Even in the worst (best?) case, I can't imagine Java becoming irrelevant within 5 years. Java has been used enough that it's roughly in the same situation as COBOL, Fortran, etc. -- even if everybody with existing code decided to rewrite all the existing systems in another language as quickly as reasonable, it would take more than 5 years to replace it all (and 5 years from now, there would still be enough left in active use that a fair amount of maintenance would still be happening).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Realistically, that's unlikely to happen -- while there are certainly differing opinions of Oracle, I can't imagine them doing anything so obviously awful that all the major players who have huge investments in Java would drop it very quickly. In all honesty, it would probably take close to 5 years of obviously bad decisions before IBM (for example) would even consider working toward using something else in Java's place. They have a large enough investment in Java that they're unlikely to drop it until or unless they believe they have virtually no alternative.&lt;/p&gt;&#xA;" OwnerUserId="902" LastEditorUserId="902" LastEditorDisplayName="" LastEditDate="2010-09-13T17:39:11.773" LastActivityDate="2010-09-13T17:39:11.773" CommunityOwnedDate="2011-03-14T15:05:05.090" CommentCount="1" />
  <row Id="3291" PostTypeId="2" ParentId="262" CreationDate="2010-09-13T17:38:46.397" Score="-6" ViewCount="" Body="&lt;h2&gt;Only Java ME will remain relevant.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Other than that, just legacy-support.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1559" LastActivityDate="2010-09-13T17:38:46.397" CommunityOwnedDate="2011-03-14T15:05:05.090" CommentCount="3" />
  <row Id="3292" PostTypeId="2" ParentId="262" CreationDate="2010-09-13T17:41:48.150" Score="0" ViewCount="" Body="&lt;p&gt;The Magic 8-ball says:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Outlook not so good.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1545" LastActivityDate="2010-09-13T17:41:48.150" CommunityOwnedDate="2011-03-14T15:05:05.090" CommentCount="3" />
  <row Id="3293" PostTypeId="2" ParentId="3233" CreationDate="2010-09-13T17:43:17.763" Score="15" ViewCount="" Body="&lt;p&gt;I've come across quite a few app where I ask my self &quot;You are asking for $20.00 for this crap?&quot; I know I can do it better and in order to &quot;stick it to the man&quot; I release it for free. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I understand that there is lots of time and money going into those apps but I also believe that if you are going to put out a product for sale, it should be top notch or just give it away.&lt;/p&gt;&#xA;" OwnerUserId="509" LastActivityDate="2010-09-13T17:43:17.763" CommunityOwnedDate="2010-10-02T03:46:51.680" CommentCount="4" />
  <row Id="3294" PostTypeId="2" ParentId="2158" CreationDate="2010-09-13T17:48:48.460" Score="2" ViewCount="" Body="&lt;p&gt;If possible, divide the problem into smaller chunks. Start with some part that could be useful on its own. Set the goal to just finish that chunk and not look at the whole project until the smaller part is finished. Then take the next chunk, etc.&lt;/p&gt;&#xA;" OwnerUserId="170" LastActivityDate="2010-09-13T17:48:48.460" />
  <row Id="3295" PostTypeId="2" ParentId="3272" CreationDate="2010-09-13T17:51:47.100" Score="2" ViewCount="" Body="&lt;p&gt;To me, as someone doing hiring, this would be an issue to raise with the candidate bit not an immediate disqualification.  However, if the candidate is borderline, this may be the deciding factor.  This is an excellent topic to discuss in the cover letter.  One thing not to do is to try and hide this.  I've seen a resume that didn't have any dates in it, along with a long list of positions.  Doing some Google investigating, it turned out to be about 10 jobs in 12-15 years.  That was a definite red-flag.&lt;/p&gt;&#xA;" OwnerUserId="1427" LastActivityDate="2010-09-13T17:51:47.100" />
  <row Id="3296" PostTypeId="2" ParentId="2463" CreationDate="2010-09-13T17:55:08.287" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.apple.com/pr/library/2010/09/09statement.html&quot; rel=&quot;nofollow&quot;&gt;Apple has relaxed&lt;/a&gt; its restrictions on development tools so perhaps it will not be a problem for Grapple (I am not a lawyer and so on). I have not tried Grapple, but I have tested &lt;a href=&quot;http://www.appcelerator.com/&quot; rel=&quot;nofollow&quot;&gt;Appcelerator Titanium&lt;/a&gt; which seemed nice enough. It compiles javascript to native objective C for iPhone and Java for Android.&lt;/p&gt;&#xA;" OwnerUserId="170" LastActivityDate="2010-09-13T17:55:08.287" CommentCount="1" />
  <row Id="3297" PostTypeId="2" ParentId="2023" CreationDate="2010-09-13T18:11:50.023" Score="3" ViewCount="" Body="&lt;p&gt;I find &lt;a href=&quot;http://meld.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Meld&lt;/a&gt; to be quite pleasant to use.&lt;/p&gt;&#xA;" OwnerUserId="170" LastActivityDate="2010-09-13T18:11:50.023" CommentCount="1" />
  <row Id="3298" PostTypeId="2" ParentId="3139" CreationDate="2010-09-13T18:27:54.487" Score="0" ViewCount="" Body="&lt;p&gt;What many people seem to be missing is the myriad, and ubiquity, of automated resume filterers/scanners/databases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any technology that you're proficient in, or &lt;em&gt;want&lt;/em&gt; to work more with, should be on there. If it's not, then it just may happen that no-one will ever see your resume at all. So as much as it may be noise, it's necessary these days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some recruiters will even suggest placing it at the end of your resume, and calling it a 'buzzwords' section, or 'detailed skills list'. A good book that goes into more detail especially about this is: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1934356263&quot; rel=&quot;nofollow&quot;&gt;Land the Tech Job You Love&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-13T18:27:54.487" CommentCount="5" />
  <row Id="3299" PostTypeId="2" ParentId="2331" CreationDate="2010-09-13T18:30:39.423" Score="2" ViewCount="" Body="&lt;h2&gt;Stopping Thread from an other Thread&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;In Java and in other language you could stop a thread from an other one arbitrarily without giving the time for the thread you stopped to finish properly. This ability have been &lt;a href=&quot;http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Thread.html#stop%28java.lang.Throwable%29&quot; rel=&quot;nofollow&quot;&gt;deprecated&lt;/a&gt; considering the huge amount of problem it could bring in nearly all situation.&lt;/p&gt;&#xA;" OwnerUserId="41" LastActivityDate="2010-09-13T18:30:39.423" CommentCount="4" />
  <row Id="3301" PostTypeId="2" ParentId="3233" CreationDate="2010-09-13T18:41:09.647" Score="2" ViewCount="" Body="&lt;p&gt;I shared my application for free. In fact, it helped my potential customers to see how it is working and they contacted me with a proposal of buying and with some additional features to implement. Free distribution of software helped my customers to see how much beneficial it is for them.&lt;/p&gt;&#xA;" OwnerUserId="1564" LastActivityDate="2010-09-13T18:41:09.647" CommunityOwnedDate="2010-10-02T03:46:51.680" />
  <row Id="3304" PostTypeId="2" ParentId="3272" CreationDate="2010-09-13T18:59:02.647" Score="18" ViewCount="" Body="&lt;p&gt;Saying that a person, who changed jobs frequently, is likely to leave from your job soon as well, is like saying that, in a series of coin throws, more heads than tails means that next flip is more likely to be a tail.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Acceptance of job, just like hiring, is somewhat random.  How can you expect &lt;strong&gt;each&lt;/strong&gt; person, with a lot personal circumstances, to pick an ideal job each time they switch it?  What do you want from these people, &lt;strong&gt;to stay at crap jobs for years just because you wouldn't hire them if they left?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, wait a minute, your company is a programmers' ghetto as well, and you're afraid that the candidate will leave as soon as he spots it?  Will leave instead of staying and working because noone will hire him due to frequency of his switches?  Then I agree, your worries are reasonable.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-13T18:59:02.647" CommentCount="9" />
  <row Id="3305" PostTypeId="2" ParentId="1599" CreationDate="2010-09-13T18:59:39.230" Score="34" ViewCount="" Body="&lt;p&gt;Using methods of formal logic with normal people. Having to explain what a logical fallacy is, first, everytime someone says something completely wrong gets frustrating fast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Them: 'Some argument'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: &quot;Unfortunately, your point has fallen victim the [logical fallacy]&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Them: &quot;What?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: &quot;You see, when you say that, the argument isn't valid, or true because...&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Them: &quot;Fuck you.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-13T18:59:39.230" CommunityOwnedDate="2010-09-13T18:59:39.230" CommentCount="7" />
  <row Id="3306" PostTypeId="2" ParentId="1599" CreationDate="2010-09-13T19:11:42.410" Score="1" ViewCount="" Body="&lt;p&gt;I am unable to use computers without the feeling of profound hate and frustration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And my perception of the phenomena around me has changed in such a way, that I perceive things the way I'd model them in a software. In consequence I do have trouble explaining certain things to &quot;normal&quot; people :)&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-09-13T19:11:42.410" CommunityOwnedDate="2010-09-13T19:11:42.410" />
  <row Id="3307" PostTypeId="2" ParentId="3199" CreationDate="2010-09-13T19:19:13.520" Score="2" ViewCount="" Body="&lt;p&gt;Major.Minor.Public (build) [alpha/beta/trial], such as &quot;4.08c (1290)&quot;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;With Major being the major version number (1, 2, 3...)&lt;/li&gt;&#xA;&lt;li&gt;Minor being a 2 digit minor version (01, 02, 03...).  Typically the tens digit is incremented when significant new functionality is added, the ones for bug fixes only.&lt;/li&gt;&#xA;&lt;li&gt;Public being the public release of the build (a, b, c, d, e), which is often different from the minor version if a minor version is never released as a public update&lt;/li&gt;&#xA;&lt;li&gt;build, being the actual build number that the compiler keeps track of.&lt;/li&gt;&#xA;&lt;li&gt;with TRIAL, ALPHA, BETA X, or RC X appended for those special cases.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-13T19:19:13.520" />
  <row Id="3308" PostTypeId="2" ParentId="3272" CreationDate="2010-09-13T19:20:10.187" Score="4" ViewCount="" Body="&lt;p&gt;Sounds average&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This rather old article points at 2 years (anecdotally I have heard 18 months as an average) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;Bouncing Back&quot; study itself points to a culture of poor techie retention. Surveyed companies said the &quot;average acceptable time to retain their IT workers is just over &lt;strong&gt;two years&lt;/strong&gt;,&quot; which is down from an acceptable tenure of 33 months the year before. ITAA's Miller concedes job churn is a problem but says companies began pushing to improve their IT employee retention a few years ago.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://news.cnet.com/2009-1001-943513.html&quot; rel=&quot;nofollow&quot;&gt;http://news.cnet.com/2009-1001-943513.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depends on whether they are contract or permanent, and if contracting, did they get renewed?&#xA;I have also worked with people who have stayed with the same company for 15 years or so and are stuck in a rut in all senses.&lt;/p&gt;&#xA;" OwnerUserId="160" LastActivityDate="2010-09-13T19:20:10.187" />
  <row Id="3309" PostTypeId="2" ParentId="3272" CreationDate="2010-09-13T19:31:28.437" Score="1" ViewCount="" Body="&lt;p&gt;It's not necessarilly good or bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would focus on the quality of those jobs. If the guy was progressing in 3 2-years jobs in the last 6 years, and each job entailed new responsibilities, skills, etc, I would deem that as positive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the opposite side, if tasks were pretty much the same, that's a warning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key, as it happens with most of person judgments, is to not generalize. Try to dig into the history of those hops, what the guy learnt in each of them, why he/she changed, what he gained after each, etc.&lt;/p&gt;&#xA;" OwnerUserId="1573" LastActivityDate="2010-09-13T19:31:28.437" />
  <row Id="3311" PostTypeId="2" ParentId="3233" CreationDate="2010-09-13T19:35:51.840" Score="48" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Some people write programs for the fun of it&amp;mdash;selling it turns it into work.&lt;/li&gt;&#xA;&lt;li&gt;Some people rank the number of people who use their programs above how much cash they get for it&amp;mdash;selling it pushes down the first where they don't care much about the second.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1572" LastEditorUserId="15954" LastEditorDisplayName="" LastEditDate="2011-02-06T11:29:24.870" LastActivityDate="2011-02-06T11:29:24.870" CommunityOwnedDate="2010-10-02T03:46:51.680" CommentCount="1" />
  <row Id="3313" PostTypeId="2" ParentId="2319" CreationDate="2010-09-13T19:37:47.550" Score="1" ViewCount="" Body="&lt;p&gt;In Waterloo and surrounding area in Southern Ontario, &lt;a href=&quot;http://waterlootechjobs.com&quot; rel=&quot;nofollow&quot;&gt;http://waterlootechjobs.com&lt;/a&gt; is a decent source. Several startups and many of the prominent local players advertise jobs there.&lt;/p&gt;&#xA;" OwnerUserId="1588" LastActivityDate="2010-09-13T19:37:47.550" CommunityOwnedDate="2010-09-13T19:37:47.550" />
  <row Id="3314" PostTypeId="2" ParentId="3272" CreationDate="2010-09-13T19:40:41.460" Score="5" ViewCount="" Body="&lt;p&gt;In the games industry 1-2 years is fairly normal.  The important thing to check is if they jump ship mid project, of if they see it through, from beginning to the end.  If a programmer doesn't have kick-off or end-phase experience, or has a habit of leaving as soon as crunch starts, that's a warning sign.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-13T19:40:41.460" CommentCount="1" />
  <row Id="3315" PostTypeId="2" ParentId="3089" CreationDate="2010-09-13T19:41:30.407" Score="1" ViewCount="" Body="&lt;p&gt;Share your code and collaborate openly with other programmers (if they can be great programmers, that's the best)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not only working with other people, but to review code, discuss different ways of doing things and learn for each other (even some peer programming). I've been in works when you worked with people, but each one takes care of their own code, since the design to the tests, and, well, you're on your own...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But when you can discuss freely what it's the better way of doing something and you make code together that's something that teach you a lot... &lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-09-13T19:41:30.407" CommunityOwnedDate="2011-02-02T05:23:59.377" />
  <row Id="3316" PostTypeId="2" ParentId="2331" CreationDate="2010-09-13T19:44:16.703" Score="-4" ViewCount="" Body="&lt;p&gt;C, and definitely C++: Pointer arithmetic.  Allowing people to convert integers into memory addresses is asking for trouble.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And maybe even raw access to pointers altogether? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In C++ you have references that makes pointers almost completely unnecessary.  For the remaining cases smart pointers should be considered mandatory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java is also proves that you &lt;em&gt;can&lt;/em&gt; make a programming language that uses pointers without allowing people access to the pointer value itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from &lt;code&gt;null&lt;/code&gt; ... but that's a different story.&lt;/p&gt;&#xA;" OwnerUserId="1060" LastEditorUserId="1060" LastEditorDisplayName="" LastEditDate="2010-09-14T20:23:05.600" LastActivityDate="2010-09-14T20:23:05.600" CommentCount="8" />
  <row Id="3317" PostTypeId="1" CreationDate="2010-09-13T19:45:27.623" Score="16" ViewCount="998" Body="&lt;p&gt;What's the difference in this terminology? Is one considered more professional than the other?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Related Question:&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/272/when-someone-asks-you-what-you-do-what-do-you-say-e-g-programmer-developer-c&quot;&gt;When someone asks you what you do, what do you say (e.g. programmer, developer, code monkey)?&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1596" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-02-04T00:09:24.243" LastActivityDate="2011-02-04T00:09:24.243" Title="What's the difference between a &quot;developer&quot; and a &quot;programmer&quot;?" Tags="&lt;terminology&gt;&lt;comparison&gt;&lt;job-definition&gt;&lt;job-title&gt;" AnswerCount="12" CommentCount="5" FavoriteCount="2" />
  <row Id="3318" PostTypeId="2" ParentId="3272" CreationDate="2010-09-13T19:45:45.360" Score="0" ViewCount="" Body="&lt;p&gt;I guess it depends, I know a lot of software engineers working as &quot;consultants&quot;, meaning they only stay on the &quot;job&quot; only for one project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thing for considerations is how many jobs has the candidate have, if there is only 2 in the last two years I thinks is ok, but, if there is 7 jobs in the last seven years then is a pretty clear warning&lt;/p&gt;&#xA;" LastActivityDate="2010-09-13T19:45:45.360" />
  <row Id="3319" PostTypeId="2" ParentId="3272" CreationDate="2010-09-13T19:47:09.357" Score="1" ViewCount="" Body="&lt;p&gt;I'd agree that, if you're looking at someone whose recent history is contract work rather than full-time employment, then the 'acceptable' time on the job gets shorter. For example, a series of one- to two-year contracts doesn't necessarily indicate a problem, but could rather show that the projects were all limited-duration, and naturally came to an end. This is particularly likely if the candidate has highly-specific skills that few organizations need beyond project start-up or wind-down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, I'd want to find out why they moved positions, and I'd want to follow up a couple with the employers to see if they got renewed or extended during the contracts' terms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have seen job histories where the candidate had an ongoing string of three-month positions, each with a wholly different organization, and never returning to a previous employer, which was a red flag that their contracts never got extended. Following up didn't provide a credible explanation other than &quot;not bad enough to fire immediately, but not good enough to keep either.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1590" LastActivityDate="2010-09-13T19:47:09.357" CommentCount="1" />
  <row Id="3321" PostTypeId="2" ParentId="3317" CreationDate="2010-09-13T19:47:56.637" Score="13" ViewCount="" Body="&lt;p&gt;It depends who I'm taking to I guess. If I'm talking to average Joe, I just say I'm a programmer because they generally have a clearer picture than &quot;developer&quot;.&lt;/p&gt;&#xA;" OwnerUserId="378" LastActivityDate="2010-09-13T19:47:56.637" />
  <row Id="3322" PostTypeId="2" ParentId="3233" CreationDate="2010-09-13T19:48:33.203" Score="2" ViewCount="" Body="&lt;p&gt;Well, &lt;em&gt;I&lt;/em&gt; post some source code to my website (at the moment, terribly outdated). In part, it is sort of a portfolio idea. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would be &lt;em&gt;very&lt;/em&gt; happy to sell my software for scads of cash if I had a decent product idea that some open source junkie couldn't clone and give away.  Since those kinds of products are pretty hard to do solo or with a few other people, I decided a few years ago that the embedded systems/hardware market was a more financially sustainable career, and today I am happily working in a cubicle at a embedded systems company helping create ultra-high-reliability systems that make the world a better place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, business - real business that pays &lt;em&gt;all&lt;/em&gt; your bills - is hard to do right by yourself, in general. If you don't want to take that risk or deal with the hassle, it might be easier to simply give it away and keep the day job and just make small programs as a hobby.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-13T19:48:33.203" CommunityOwnedDate="2010-10-02T03:46:51.680" />
  <row Id="3323" PostTypeId="2" ParentId="3241" CreationDate="2010-09-13T19:52:42.443" Score="3" ViewCount="" Body="&lt;p&gt;It's highly variable, not only (of course) on the experience and quality of the team, and on the difficulty of the project (it's not the same making another standard web application than a new OS kernel), but also on the management approach you'll use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, on a waterfall model you can set precisely the first bug at the first testing phase, but on an agile environment can be difficult to raise a line saying &quot;from here on, we are correcting bugs&quot;, as the features can change (and to me it's not fair counting a feature change as a bug)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From experience, I say that it's something that is ALWAYS underrated, and very easily can spend the same amount of hours than the &quot;original project&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-09-13T19:52:42.443" CommentCount="2" />
  <row Id="3324" PostTypeId="2" ParentId="272" CreationDate="2010-09-13T19:55:52.947" Score="0" ViewCount="" Body="&lt;p&gt;Software Engineer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a lot of different titles with different connotations. Software Engineer is the one that I think conveys the most professional meaning.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-13T19:55:52.947" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="3325" PostTypeId="2" ParentId="3272" CreationDate="2010-09-13T20:00:39.303" Score="2" ViewCount="" Body="&lt;p&gt;Depends on the type of work. If some one is engaging in contract work it wouldn't raise a flag. It's not uncommon for an entity to hire a lot of employees and contractors when a software project is being initially built and then let some of the staff go after the first release completes. I've engaged in a few contracts myself of a few months to a year. Though while the initial agreed period of employment was relatively short I've typically have gotten contract renewals making the shortest engagement two years. &lt;/p&gt;&#xA;" LastActivityDate="2010-09-13T20:00:39.303" CommentCount="1" />
  <row Id="3326" PostTypeId="2" ParentId="2319" CreationDate="2010-09-13T20:04:26.757" Score="2" ViewCount="" Body="&lt;p&gt;In Spain we have several, but the biggest/most popular is &lt;a href=&quot;http://www.infojobs.net/&quot; rel=&quot;nofollow&quot;&gt;Infojobs&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="254" LastActivityDate="2010-09-13T20:04:26.757" CommunityOwnedDate="2010-09-13T20:04:26.757" CommentCount="2" />
  <row Id="3327" PostTypeId="2" ParentId="3317" CreationDate="2010-09-13T20:04:47.533" Score="32" ViewCount="" Body="&lt;p&gt;While the terms can be and often are interchangeable, I view a developer as someone who's involved in the whole process from requirements gathering, through specification and coding to testing and, yes, support. They might not be fully involved in all stages all of the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A programmer is someone who just concentrates on the coding and has little involvement in the rest of the process. This may be their choice of course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As @sunpech points out in his comment most people writing software these days are (or should be) developers. You have to know much more than just how to code to write good software.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-13T20:04:47.533" CommentCount="1" />
  <row Id="3328" PostTypeId="2" ParentId="3089" CreationDate="2010-09-13T20:06:44.273" Score="1" ViewCount="" Body="&lt;p&gt;Not writing code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I learnt to use existing tools, and redefine problems to see if they could be solved by not writing code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I read a lot to learn about data structures, algorithms and existing solutions (books, code, email, blogs, ...). Why reinvent the wheel?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After all, code that doesn't exist has provably zero bugs.&lt;/p&gt;&#xA;" OwnerUserId="1586" LastActivityDate="2010-09-13T20:06:44.273" CommunityOwnedDate="2011-02-02T05:23:59.377" />
  <row Id="3329" PostTypeId="2" ParentId="3317" CreationDate="2010-09-13T20:10:02.157" Score="5" ViewCount="" Body="&lt;p&gt;I've generally considered &quot;programming&quot; to be the act of writing code.  A &quot;programmer&quot; would spend most or all off his/her time in front of a screen coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, a developer is anyone involved in the development of software- they develop it from idea to product.  A developer would, by this definition, be anyone from a code monkey to a tester to a PM.  As such, 'programmers' are a subset of &quot;developers&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is just the general connotations I have in my mind, not a technical definition, of course.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-13T20:10:02.157" />
  <row Id="3330" PostTypeId="2" ParentId="3233" CreationDate="2010-09-13T20:11:11.247" Score="4" ViewCount="" Body="&lt;p&gt;You might find a lot of insight in Chris Anderson's Wired article &lt;a href=&quot;http://www.wired.com/techbiz/it/magazine/16-03/ff_free?currentPage=all&quot; rel=&quot;nofollow&quot;&gt;Free! Why $0.00 Is the Future of Business&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will however find many examples where the developers accept donations, and maybe &lt;a href=&quot;http://flattr.com&quot; rel=&quot;nofollow&quot;&gt;Flattr&lt;/a&gt; will succeed where micropayments have failed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is also other transactions being made here, although it does not involve cash:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;Labor:&lt;/em&gt; Debugging and testing effort on platforms and in usage scenarios never envisioned by the original developers.  By automatically tracking usage the developers get valuable information.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Reputation:&lt;/em&gt; For many programmers, programming is ever so much about the positive feedback from making the software in the first place and people cherishing the result.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Altruism:&lt;/em&gt; Making software products is relatively easy these days because of the availability of free and good developer tools and libraries.  Releasing software back for free is one way of paying back to the community.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1060" LastActivityDate="2010-09-13T20:11:11.247" CommunityOwnedDate="2010-10-02T03:46:51.680" />
  <row Id="3331" PostTypeId="2" ParentId="3317" CreationDate="2010-09-13T20:19:20.013" Score="1" ViewCount="" Body="&lt;p&gt;Its again a question of context.  Two guys ove beers, one says he's a developer, and one says he's a programmer... there is no meaningful difference.  But its certainly possible that companies may have positions with those titles that have some specific meaning to them.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-13T20:19:20.013" />
  <row Id="3332" PostTypeId="2" ParentId="2319" CreationDate="2010-09-13T20:19:51.420" Score="1" ViewCount="" Body="&lt;p&gt;If you're looking for a job for something more specific, like an specific framework or language (and it's something I recommend), I will more or less avoid the generic ones and try to contact the community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, related to Python, &lt;a href=&quot;http://www.python.org/community/jobs/&quot; rel=&quot;nofollow&quot;&gt;http://www.python.org/community/jobs/&lt;/a&gt; it's a great page and usually you'll find the kind of offerings that don't appear on Monster or Dice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same happens on LinkedIn (which I think it's great). It's more interesting try to find  specific groups.&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-09-13T20:19:51.420" CommunityOwnedDate="2010-09-13T20:19:51.420" />
  <row Id="3333" PostTypeId="2" ParentId="3317" CreationDate="2010-09-13T20:20:08.260" Score="3" ViewCount="" Body="&lt;p&gt;As &lt;a href=&quot;http://smuglispweeny.blogspot.com/2010/08/fortune-cookie-file-number-two.html&quot; rel=&quot;nofollow&quot;&gt;Kenny Tilton&lt;/a&gt; says: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I actually had a business card that&#xA;  just said &quot;Programmer&quot;. Got everyone&#xA;  quite upset, they wanted &quot;Systems&#xA;  Analyst&quot; or &quot;Software Engineer&quot; or&#xA;  &quot;Database Administrator&quot; or something.&#xA;  My point was that one cannot program a&#xA;  computer effectively without doing all&#xA;  those things, so &quot;Programmer&quot; was&#xA;  sufficient.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;But what's much more important is not what &lt;em&gt;you&lt;/em&gt; think the word means, but what &lt;em&gt;others&lt;/em&gt; think the word means. If the HR monkey looking at your CV isn't Ken Tilton, chances are they think programmer == code monkey == glorified typist. I mean, where's &quot;Architect&quot; in the job title?!&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-13T20:20:08.260" CommentCount="1" />
  <row Id="3334" PostTypeId="2" ParentId="539" CreationDate="2010-09-13T20:24:19.887" Score="0" ViewCount="" Body="&lt;p&gt;I use the standard-light-background on Eclipse, but changing the font to &quot;consolas&quot;... I really don't like the dark background, although, since the release of Ubuntu 10.04 I use a dark background for the console and when I have to use vim...&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-09-13T20:24:19.887" CommunityOwnedDate="2010-09-16T13:10:40.707" />
  <row Id="3335" PostTypeId="2" ParentId="539" CreationDate="2010-09-13T20:30:33.207" Score="1" ViewCount="" Body="&lt;p&gt;I modified the default Visual Studio a bit to get the following theme:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/jDN9w.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://dl.dropbox.com/u/38082/Mikellaneous.vssettings&quot; rel=&quot;nofollow&quot;&gt;Download&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer black-on-white themes, but I like to make the background a bit off-white.&lt;/p&gt;&#xA;" OwnerUserId="220" LastActivityDate="2010-09-13T20:30:33.207" CommunityOwnedDate="2010-09-16T13:10:40.707" CommentCount="2" />
  <row Id="3336" PostTypeId="2" ParentId="3233" CreationDate="2010-09-13T20:34:15.030" Score="2" ViewCount="" Body="&lt;p&gt;I write code because I enjoy writing code. Not because I want to be rich, or because I want to change the world, or anything like that. I enjoy writing code, and I like it when people get to benefit from this fact. Why should I charge them lots of money for that?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also get to benefit from lots of people who feel the same way, and it's a way of giving back to them. I get to use Linux, and Firefox, and .... for free every day, so if I can do something that somehow benefits others then why not?&lt;/p&gt;&#xA;" OwnerUserId="1628" LastActivityDate="2010-09-13T20:34:15.030" CommunityOwnedDate="2010-10-02T03:46:51.680" CommentCount="1" />
  <row Id="3337" PostTypeId="2" ParentId="3233" CreationDate="2010-09-13T20:34:37.277" Score="14" ViewCount="" Body="&lt;p&gt;I get paid enough at my day job as a programmer. I mostly code on my own little projects for fun. I release almost all of what I write on my own time for free and under a free/open source license because:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;These are fun projects (e.g. an interpreter for a simple language, a tool to clean up JavaScript code, various small scripts, etc.). These are not &quot;enterprise&quot; applications. Not even small applications home users need to get some job done or for entertainment. Okay, there might be a few people who might actually pay a very small amount for some of the tools I write. But really, it would be a trifling sum, and I really don't need the money badly enough for me to consider the effort involved in marketing and selling them.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;As someone growing up in the 1980s and early 1990s, and that too in a developing country, I understand how it feels not to have enough money for or access to the tools I need. Payment is a big hassle for a lot of people not living in the west, and even if it is possible, a few dollars can translate to a lot of money for a student on the other side of the world. If most of the people who might actually use these tools wouldn't be able to pay for them anyway, what's the use of charging for them?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;As other answers have already pointed out, my own projects, as well as the effort I put into any larger projects that are not owned by me, pays off for me as advertisement for my skills. Apart from such things as making me more liked by other people, it also helps me getting noticed by potential employers and thus helps me career-wise. A freely available software is bound to be better known and more widely used to something of equal quality but not free of cost.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;As other answers already point out, if the efforts of a single or a small group of people who are coding in their spare time are threatening the commercial prospects of software written by people doing it to make a living - I think it is up to the latter to work harder to make their product worth spending money on rather than the other way around. If anything, it just sets the bar higher for quality software which is good for all concerned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's like saying giving away your old clothes to charity hurts people in the textile industry.&lt;/p&gt;&#xA;" OwnerUserId="1454" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-06T10:54:01.137" LastActivityDate="2011-02-06T10:54:01.137" CommunityOwnedDate="2010-10-02T03:46:51.680" />
  <row Id="3339" PostTypeId="2" ParentId="1" CreationDate="2010-09-13T20:34:40.617" Score="0" ViewCount="" Body="&lt;p&gt;You have to keep a balance between code and comments... Usually I try to add some comments that resume a block of code. Not because I won't be able to understand the code (well, that also), but because I can read faster my own code and locate specific sections where the important stuff it's happening.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, my own personal criteria is &quot;when in doubt, comment&quot;. I prefer to have a redundant line than a completely cryptic line that I'm not going to be able to understand. I can always remove comments on a code review, after a while (and I usually do)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, comments are quite helpful adding &quot;caveats&quot; like &quot;Be careful! If the format of the input is not ASCII, this code will have to change!&quot;&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-09-13T20:34:40.617" CommunityOwnedDate="2011-01-31T09:04:54.130" CommentCount="1" />
  <row Id="3340" PostTypeId="2" ParentId="3317" CreationDate="2010-09-13T20:41:17.007" Score="2" ViewCount="" Body="&lt;p&gt;I think it's more a question of fashion. At the moment the &quot;cooler&quot; term tends to be more &quot;developer&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, I prefer more the term &quot;developer&quot; as I think it implies that the work can be programming, but also other things, like integrate and configure an existing tool in your system. Or take some responsibilities on the management of the project. Or even making some UI design... But that's just how I understand the word, not necessarily that someone defining himself as programmer it's not doing that kind of things... &lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-09-13T20:41:17.007" />
  <row Id="3341" PostTypeId="2" ParentId="3317" CreationDate="2010-09-13T20:49:27.250" Score="2" ViewCount="" Body="&lt;p&gt;I don't know of any real difference in meaning. Mostly the job designation varies across software shops. I've seen people who basically do the same things being called &quot;programmer&quot;,&quot;developer&quot;,&quot;IT engineer&quot;, etc. A lot of people use these and other similar terms interchangeably.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thing that I notice, which is perhaps a local phenomenon and might not apply where you live, is that some people try to avoid associating themselves from the term &quot;programmer&quot; or &quot;coder&quot;. Sometimes it is because they perceive that actually writing the code is like manual labour, while calling themselves a &quot;developer&quot; or something else gives them a more white-collar feel. Sometimes its just because people actually do not know how to code very well - and they would get embarrassed if someone starts a conversation about programming, and prefer to avoid introducing themselves as a &quot;programmer&quot; for that reason. Almost always it is a mixture of both cases.&lt;/p&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-09-13T20:49:27.250" />
  <row Id="3342" PostTypeId="2" ParentId="272" CreationDate="2010-09-13T20:53:53.993" Score="0" ViewCount="" Body="&lt;p&gt;I usually tell people that I'm a developer, and then explains them what my speciality is...like at the moment GIS (which makes everybody look weird cause they have no clue what it is).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing I stay away from is my &quot;educational&quot; title cause that doesn't mean a thing to me. It's more important for me to tell people that I working in solutions that gloating over a fancy pancy title (which I ofcourse don't have and don't want). When ever I've been at places where I've gotten businesscards I've always told them to make them say developer :)&lt;/p&gt;&#xA;" OwnerUserId="564" LastActivityDate="2010-09-13T20:53:53.993" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="3343" PostTypeId="2" ParentId="272" CreationDate="2010-09-13T20:57:07.150" Score="0" ViewCount="" Body="&lt;p&gt;I ask them if they've ever seen the movie office space?  They say, yea that movie is hilarious - to which I reply, that's my life in the form of satire.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also given the answer code monkey&lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-09-13T20:57:07.150" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="3344" PostTypeId="2" ParentId="2051" CreationDate="2010-09-13T20:58:14.127" Score="4" ViewCount="" Body="&lt;p&gt;Back in 2003 we were two developers and a designer that got this...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I want you guys to do an imageserver application where you can just drag'n'drop images to upload them, without any extensions in the browser and it have to work on all platforms.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Truth be told we all looked at him and said something along the lines of&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If we knew how to do that, we wouldn't sit in these chairs in your company right now.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="564" LastEditorUserId="4132" LastEditorDisplayName="" LastEditDate="2010-11-15T17:40:56.970" LastActivityDate="2010-11-15T17:40:56.970" CommunityOwnedDate="2010-09-13T20:58:14.127" CommentCount="2" />
  <row Id="3345" PostTypeId="2" ParentId="3233" CreationDate="2010-09-13T20:58:20.400" Score="1" ViewCount="" Body="&lt;p&gt;There are other ways to make money than to charge directly for the software.  Facebook is free software, but it brings in millions.&lt;/p&gt;&#xA;" OwnerUserId="59" LastActivityDate="2010-09-13T20:58:20.400" CommunityOwnedDate="2010-10-02T03:46:51.680" CommentCount="2" />
  <row Id="3346" PostTypeId="2" ParentId="3282" CreationDate="2010-09-13T20:59:45.963" Score="3" ViewCount="" Body="&lt;p&gt;In my case, was a REALLY big piece of software in C++, about 15 years old since the start, with bizillions of coders working on the code during that time, and each one with their particular code standards...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two different modules can appear almost as written in different languages. Sometimes you'll expect a complete file with just one comment line (the date) and then another one with more comments than lines (and usually out of date)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There were also some &quot;funny&quot; features of C++, like overloading the &lt;a href=&quot;http://en.wikibooks.org/wiki/C++_Programming/Operators/Operator_Overloading#Function_call_operator&quot; rel=&quot;nofollow&quot;&gt;call (bracket) operator&lt;/a&gt; (you'll think that it's calling a function, but not, it's an operator on the object). Overloading operator is 99.9% of the times a VERY BAD IDEA. Makes your code a lot more difficult to read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes the code was highly object oriented, other times was more like plain C. Sometimes makes use of non-evident mathematical properties, like using &lt;a href=&quot;http://en.wikipedia.org/wiki/Determinant&quot; rel=&quot;nofollow&quot;&gt;matrix determinants&lt;/a&gt; (of course, without stating that or comment it on any way).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most important work I had to do was completely redesign from scratch one of the modules that was been considered as completely unmaintainable from a long time, and have severe performance problems on the long run. It contains some parsing to describe functions. The parsing was made completely by hand, by some really weird code (I didn't even try to understand it, one of the directives at the start was &quot;everyone that has try it has gone mad&quot;, maybe that was some sort &quot;Necronomicon code&quot;). I used &lt;a href=&quot;http://en.wikipedia.org/wiki/GNU_bison&quot; rel=&quot;nofollow&quot;&gt;Bison&lt;/a&gt;. &#xA;The testing was completely black-boxed, set the same inputs, run the module and check the outputs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, at least everything ended fine, the CPU time was reduced in about a 80%, memory in about 30% with better resolution and lower latency. But sometimes working with that you wanted to commit suicide...  &lt;/p&gt;&#xA;" OwnerUserId="1571" LastEditorUserId="1571" LastEditorDisplayName="" LastEditDate="2010-11-23T16:50:57.020" LastActivityDate="2010-11-23T16:50:57.020" CommunityOwnedDate="2011-01-14T18:11:43.393" CommentCount="5" />
  <row Id="3347" PostTypeId="2" ParentId="3317" CreationDate="2010-09-13T21:00:30.160" Score="2" ViewCount="" Body="&lt;p&gt;Nowadays, developer sounds more sex appealing than programmer - developers make those cool shiny apps for iPhone, programmers make accounting software. ;)&lt;/p&gt;&#xA;" OwnerUserId="597" LastActivityDate="2010-09-13T21:00:30.160" />
  <row Id="3348" PostTypeId="2" ParentId="2319" CreationDate="2010-09-13T21:00:39.533" Score="1" ViewCount="" Body="&lt;p&gt;Facebook and LinkedIn. &lt;/p&gt;&#xA;" OwnerUserId="657" LastEditorUserId="4887" LastEditorDisplayName="" LastEditDate="2010-10-08T22:19:59.363" LastActivityDate="2010-10-08T22:19:59.363" CommunityOwnedDate="2010-09-13T21:00:39.533" />
  <row Id="3349" PostTypeId="2" ParentId="3241" CreationDate="2010-09-13T21:10:01.257" Score="1" ViewCount="" Body="&lt;p&gt;On critical sofware, A 1:1 ratio is not unusual. For unit testing alone, I've seen indicators mention 1 day of unit testing for every 10 lines of code.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-09-13T21:10:01.257" />
  <row Id="3350" PostTypeId="2" ParentId="1338" CreationDate="2010-09-13T21:16:26.663" Score="2" ViewCount="" Body="&lt;p&gt;&lt;em&gt;No more than one line of code allowed in Main()&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A professor at my university who I was fortunate enough not to have insisted that her junior C# students not be allowed to put more than one line of code in their console applications' entry point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This makes a reasonable amount of sense when developing a professional application, but when the program's only intent is to take few basic inputs and produce a single output (i.e. MultiplyTwoNumbers.exe), such a requirement is more pain than good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On top of the &quot;one line of code in main&quot; the professor also insisted that every line of code have a descriptive comment and every class member have a &lt;em&gt;verbosely&lt;/em&gt; descriptive name. Points lost if the professor didn't feel that these requirements had been met &quot;adequately&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The students forced to stick to these rules were (almost) all newbies to programming and thus I can see the value of enforcing conducts like good-naming and separation of concerns. Despite that, as the .NET Tutor at my university I was constantly helping her students meet these mundane and obnoxious requirements long after they had gotten their code &lt;em&gt;working&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion, when educating someone who is brand new to a programming language the first concern should be how to create code, not how to create &lt;em&gt;standards-based&lt;/em&gt; code.&lt;/p&gt;&#xA;" OwnerUserId="13" LastActivityDate="2010-09-13T21:16:26.663" CommunityOwnedDate="2010-09-13T21:16:26.663" CommentCount="1" />
  <row Id="3351" PostTypeId="2" ParentId="3049" CreationDate="2010-09-13T21:18:23.263" Score="3" ViewCount="" Body="&lt;p&gt;Compojure is an open source web framework for the Clojure programming language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikibooks.org/wiki/Compojure&quot; rel=&quot;nofollow&quot;&gt;http://en.wikibooks.org/wiki/Compojure&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-09-13T21:18:23.263" />
  <row Id="3352" PostTypeId="2" ParentId="1039" CreationDate="2010-09-13T21:24:49.257" Score="3" ViewCount="" Body="&lt;p&gt;Generally speaking: equipment, mileage, and a home-office deduction.  Ask your tax accountant for details.  You may also be able to deduct some meeting expenses, such as meals, and educational expenses such as seminars, conventions and classes.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-09-13T21:24:49.257" CommentCount="1" />
  <row Id="3353" PostTypeId="2" ParentId="3086" CreationDate="2010-09-13T21:25:02.847" Score="1" ViewCount="" Body="&lt;p&gt;Mathematics enhances your logic ability. Important subjects are algebra and calculus...and any other brain cracking subject&lt;/p&gt;&#xA;" OwnerUserId="1631" LastActivityDate="2010-09-13T21:25:02.847" />
  <row Id="3354" PostTypeId="2" ParentId="3272" CreationDate="2010-09-13T21:28:56.513" Score="5" ViewCount="" Body="&lt;p&gt;This question reminds me of an old story. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;A neighbour was going away on holidays and she was worried that there will be no one to empty her letter box. She thought, if a burglar came around they would notice a full letter box, conclude the house is empty and break in. Local police office assured her - if you plan to burglar you do some research, you watch the place, you note the patterns down, look for lights and so on... and when the owners go away you make your attempt and perhaps than on only then a full letter box provides some reassurance.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would &lt;strong&gt;never look at how often someone changed jobs as the first criterion&lt;/strong&gt; and certainly not as a simple filter. I would try to understand what the person did recently and in the past; how they developed their knowledge; how quickly they learn; how flexible is their approach; what are their values and aspirations. Once I have a feel for the person and I have answered those more fundamental questions, only then, and it is still relevant, would I ask about how often the person changed jobs and why.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly I would probably be more concerned about someone who have not changed their job at all in the last 5 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS. &lt;strong&gt;And don't ever hang around with a poor job just because you're afraid changing it too quickly might look bad on your CV.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1633" LastEditorUserId="1633" LastEditorDisplayName="" LastEditDate="2010-09-13T22:11:05.707" LastActivityDate="2010-09-13T22:11:05.707" CommentCount="2" />
  <row Id="3355" PostTypeId="2" ParentId="1" CreationDate="2010-09-13T21:30:09.243" Score="1" ViewCount="" Body="&lt;p&gt;I have to agree with your coworker.  I always say that if I comment my code, it means that I'm worried that &lt;em&gt;I&lt;/em&gt; won't be able to figure out &lt;em&gt;my own code&lt;/em&gt; in the future. This is a bad sign.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only other reason I sprinkle comments into the code is to call out something that doesn't seem to make sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those comments usually take the form of something like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//xxx what the heck is this doing??&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// removed in version 2.0, but back for 2.1, now I'm taking out again&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1223" LastActivityDate="2010-09-13T21:30:09.243" CommunityOwnedDate="2011-01-31T09:04:54.130" CommentCount="3" />
  <row Id="3356" PostTypeId="1" CreationDate="2010-09-13T21:35:03.223" Score="3" ViewCount="140" Body="&lt;p&gt;I plan on traveling some time next year to Europe strictly to learn how developers work and come up with ideas. Perhaps go to a couple conferences and just meet with other developers to expand on my knowledge of the PHP language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking to find cities in Europe that have a very robust PHP community. I've been told Chisinau and Benelux have a great community for PHP but I haven't been able to confirm that yet. If anyone has some suggestions on cities it'd be appreciated.&lt;/p&gt;&#xA;" OwnerUserId="1638" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:12:50.520" LastActivityDate="2010-09-19T23:51:07.687" ClosedDate="2010-09-26T22:00:30.943" Title="European PHP Cities" Tags="&lt;php&gt;&lt;conferences&gt;" AnswerCount="2" />
  <row Id="3357" PostTypeId="2" ParentId="1039" CreationDate="2010-09-13T21:35:35.110" Score="4" ViewCount="" Body="&lt;p&gt;An accountant would be better suited to tell you what exactly you, personally, can deduct, but I generally deduct the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Health care&lt;/li&gt;&#xA;&lt;li&gt;Computer equipment&lt;/li&gt;&#xA;&lt;li&gt;Computer software/web services&lt;/li&gt;&#xA;&lt;li&gt;Office supplies/equipment&lt;/li&gt;&#xA;&lt;li&gt;Utilities that help perform my job (cell phone, internet)&lt;/li&gt;&#xA;&lt;li&gt;Ephemeral expenses like business lunches, travel (if it's for a job), etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I stay away from the home office deduction because it's a very hard thing to prove and stick to (you cannot use the space for anything other than working), and it's basically asking for an audit at some point.&lt;/p&gt;&#xA;" OwnerUserId="8" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-16T09:41:31.800" LastActivityDate="2010-09-16T09:41:31.800" CommentCount="1" />
  <row Id="3358" PostTypeId="2" ParentId="1483" CreationDate="2010-09-13T21:42:41.720" Score="0" ViewCount="" Body="&lt;p&gt;I'm from Germany and I personally strictly code in english. The company I'm working at is doing projects for international customers and usually the code + comments are in english. The department I'm in though is doing a project for a german company only and most code in the core is full of german. I tend to produce new code in english and fill in english comments wherever possible.&lt;/p&gt;&#xA;" OwnerUserId="1641" LastActivityDate="2010-09-13T21:42:41.720" CommunityOwnedDate="2010-09-13T21:42:41.720" />
  <row Id="3359" PostTypeId="2" ParentId="3233" CreationDate="2010-09-13T21:46:42.277" Score="2" ViewCount="" Body="&lt;p&gt;Because I have the feeling that my knowledge can help others in improving their daily work. I also think that public projects increase your visibility across the globe and companies will be interested in you and possibly want to hire you. The latter of course requires that your code base is good and the project becomes popular.&lt;/p&gt;&#xA;" OwnerUserId="1641" LastActivityDate="2010-09-13T21:46:42.277" CommunityOwnedDate="2010-10-02T03:46:51.680" />
  <row Id="3360" PostTypeId="2" ParentId="1877" CreationDate="2010-09-13T21:48:25.277" Score="0" ViewCount="" Body="&lt;p&gt;Doesn't this depend a lot of the specific application and the users is targetting?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can find a number of updates for stocks, say, but that depends on whether user is a typical Google finance junkie or a investment guy working in a Bloomberg propietary app I guess.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, you may want to get some feedback from potential users.&lt;/p&gt;&#xA;" OwnerUserId="1573" LastActivityDate="2010-09-13T21:48:25.277" />
  <row Id="3361" PostTypeId="2" ParentId="2846" CreationDate="2010-09-13T21:49:43.673" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;ABAP&lt;/strong&gt; - the most cruel language ever developed by humans (or dragons?). Tries to be some sort of objective SQL and looks creepy. &lt;/p&gt;&#xA;" OwnerUserId="1641" LastActivityDate="2010-09-13T21:49:43.673" CommunityOwnedDate="2010-09-13T21:49:43.673" CommentCount="1" />
  <row Id="3362" PostTypeId="2" ParentId="3356" CreationDate="2010-09-13T21:51:36.923" Score="1" ViewCount="" Body="&lt;p&gt;If you are going for the Benelux, you might want to visit Antwerp on your trip around.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check &lt;a href=&quot;http://conference.phpbenelux.eu/&quot; rel=&quot;nofollow&quot;&gt;PHPBenelux&lt;/a&gt;, they will hold their 2011 Conference in Antwerp on January 28 and 29...&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-13T21:51:36.923" />
  <row Id="3363" PostTypeId="1" CreationDate="2010-09-13T22:01:19.887" Score="15" ViewCount="1582" Body="&lt;p&gt;This is similar to &lt;a href=&quot;http://stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered&quot;&gt;this&lt;/a&gt; post at StackOverflow, but I'd like to know what the worst source code comment was you ever encountered. I'm not talking about things like: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$i++; // Increments $i&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;return 5; // returns 5&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;but comments that led you into the wrong direction, messed things up, etc.&lt;/p&gt;&#xA;" OwnerUserId="1641" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T16:05:12.323" LastActivityDate="2011-03-31T05:35:18.177" CommunityOwnedDate="2010-09-13T22:01:19.887" ClosedDate="2011-03-31T09:05:06.500" Title="What's the best bad comment you ever encountered?" Tags="&lt;fun&gt;&lt;comments&gt;" AnswerCount="39" CommentCount="6" FavoriteCount="7" />
  <row Id="3364" PostTypeId="2" ParentId="2846" CreationDate="2010-09-13T22:09:13.537" Score="3" ViewCount="" Body="&lt;p&gt;I still have nightmares about APL and I haven't used it since about 1983. Of course the fact that the language was so crypic was also made worse becasue I was writing it on a dumb terminal which was a teletype machine and couldn't even see what I had typed for about 6 or 7 lines when the paper came out of the printer.  So the no screen part may have affected my opinion of the language.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-13T22:09:13.537" CommunityOwnedDate="2010-09-13T22:09:13.537" CommentCount="1" />
  <row Id="3365" PostTypeId="1" CreationDate="2010-09-13T22:09:35.973" Score="9" ViewCount="383" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Multiple_inheritance&quot; rel=&quot;nofollow&quot;&gt;Wikipedia - Multiple Inheritance&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it good? Or is it bad?&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-14T00:33:31.493" Title="Multiple inheritance, is it good or bad?" Tags="&lt;programming-languages&gt;&lt;holy-war&gt;&lt;inheritance&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="2" />
  <row Id="3366" PostTypeId="2" ParentId="3365" CreationDate="2010-09-13T22:16:24.217" Score="6" ViewCount="" Body="&lt;p&gt;It is a powerful tool, and may be dangerous if abused.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I can tell for sure it is good. I used it few times in C++, but cleaned my design a lot. I missed it few times in C#, but working around its absence produced a bad design and code redundancy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The classical argument against multiple inheritance is that, if you need it, you are doing a bad design or are overdesigning. Often it is true. But sometimes, it is the perfect choice for your design, and can simplify your work a lot.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-13T22:16:24.217" CommentCount="3" />
  <row Id="3367" PostTypeId="2" ParentId="3365" CreationDate="2010-09-13T22:20:37.017" Score="1" ViewCount="" Body="&lt;p&gt;You can make this sort of question a lot less subjective by considering the simple fact that programming languages don't exist in a vacuum.  They copy and borrow from each other all the time, and truly useful language features tend to end up all over the place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact that so many C++ language features, including multiple inheritance, are completely or almost completely unique to C++ should be all the answer you need.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-13T22:20:37.017" CommentCount="13" />
  <row Id="3368" PostTypeId="2" ParentId="3363" CreationDate="2010-09-13T22:31:30.583" Score="17" ViewCount="" Body="&lt;p&gt;This is even worst:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;i++; // Decrements i&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Well, this is a very simple example of comment out of sync with the code. Try to think to a complex OR/AND/NOT combination along with a wrong explanation in the comment...&lt;/p&gt;&#xA;" OwnerUserId="235" LastActivityDate="2010-09-13T22:31:30.583" CommunityOwnedDate="2010-09-13T22:31:30.583" CommentCount="6" />
  <row Id="3369" PostTypeId="2" ParentId="2846" CreationDate="2010-09-13T22:32:13.873" Score="-3" ViewCount="" Body="&lt;p&gt;After a particularly painful 2-3 weeks in my university programming languages course, I can't say I have much experience with it, but I hate Lisp and all it's evil dialects.&lt;/p&gt;&#xA;" OwnerUserId="1646" LastActivityDate="2010-09-13T22:32:13.873" CommunityOwnedDate="2010-09-13T22:32:13.873" CommentCount="2" />
  <row Id="3370" PostTypeId="2" ParentId="3365" CreationDate="2010-09-13T22:32:15.637" Score="3" ViewCount="" Body="&lt;p&gt;It should be noted while talking about it that multiple inheritance &lt;em&gt;exists in almost every object-oriented language&lt;/em&gt; in the form of interfaces. The benefits of multiple inheritance, when they include the fields, are IMO not worth the trouble. My personal opinion is that composition and interfaces are pretty good at solving problems multiple inheritance should solve, without adding too much complexity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd obviously be unable to live without interfaces in an OO world.&lt;/p&gt;&#xA;" OwnerUserId="90" LastActivityDate="2010-09-13T22:32:15.637" CommentCount="2" />
  <row Id="3371" PostTypeId="2" ParentId="3365" CreationDate="2010-09-13T22:34:19.583" Score="2" ViewCount="" Body="&lt;p&gt;MI can be immensely powerful. For example, &lt;a href=&quot;http://www.rawmaterialsoftware.com/juce.php&quot; rel=&quot;nofollow&quot;&gt;Juce&lt;/a&gt; uses MI extensively to allow things like event handling in standard C++ (as opposed to proprietary extensions like in QT). However, when over-used or misused, it allows terrifyingly horrible code to be written. In general, MI should only be used if its benefits substantially outweigh its pitfalls.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-13T22:34:19.583" />
  <row Id="3372" PostTypeId="2" ParentId="2846" CreationDate="2010-09-13T22:38:57.403" Score="54" ViewCount="" Body="&lt;p&gt;XML.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realize a lot of these are programming language centric, but since the question said 'language', and supposedly the L stands for language, I say it counts. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reasons why I hate it:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's unnecessarily verbose&lt;/li&gt;&#xA;&lt;li&gt;There are much better alternatives (JSON, Lua, Python-in-a-grammar-sense-only)&lt;/li&gt;&#xA;&lt;li&gt;It's an eyesore&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Honestly, if I only had to deal with XML in a programming centric way (using APIs), I'd be content.  I'm a firm believer that XML should never be seen by humans - then it'd be OK. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Obviously YMMV - this is just my take on it.)&lt;/p&gt;&#xA;" OwnerUserId="1647" LastActivityDate="2010-09-13T22:38:57.403" CommunityOwnedDate="2010-09-13T22:38:57.403" CommentCount="15" />
  <row Id="3373" PostTypeId="2" ParentId="3363" CreationDate="2010-09-13T22:39:49.070" Score="5" ViewCount="" Body="&lt;p&gt;From the Apache Xalan source:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/**&#xA; * As Gregor Samsa awoke one morning from uneasy dreams he found himself&#xA; * transformed in his bed into a gigantic insect. He was lying on his hard,&#xA; * as it were armour plated, back, and if he lifted his head a little he&#xA; * could see his big, brown belly divided into stiff, arched segments, on&#xA; * top of which the bed quilt could hardly keep in position and was about&#xA; * to slide off completely. His numerous legs, which were pitifully thin&#xA; * compared to the rest of his bulk, waved helplessly before his eyes.&#xA; * &quot;What has happened to me?&quot;, he thought. It was no dream....&#xA; */&#xA;protected static String DEFAULT_TRANSLET_NAME = &quot;GregorSamsa&quot;;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The full story of how I encountered this: &lt;a href=&quot;http://thedailywtf.com/Articles/Who_is_Gregor_Samsa_0x3f_.aspx&quot; rel=&quot;nofollow&quot;&gt;http://thedailywtf.com/Articles/Who_is_Gregor_Samsa_0x3f_.aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1646" LastActivityDate="2010-09-13T22:39:49.070" CommunityOwnedDate="2010-09-13T22:39:49.070" />
  <row Id="3374" PostTypeId="2" ParentId="1338" CreationDate="2010-09-13T22:41:43.333" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Nearly&lt;/strong&gt; any sort of variable naming convention that reiterates the variable type, mutability, scope / storage class, and/or their reference.  Basically, any construct intrinsic to the language.  This is no longer necessary in the 21st century with modern IDEs (and in my opinion only originally solved poor code layout / practices to begin with).  This includes hungarian notation and its variants:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;bigBlobStr  - A string.&lt;/li&gt;&#xA;&lt;li&gt;bigBlobStrCurLocPtr  - A pointer to the &quot;current location&quot; in said string.&lt;/li&gt;&#xA;&lt;li&gt;someIntArray  - Array of integers&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;or things like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;e_globalHeading  - External variable&lt;/li&gt;&#xA;&lt;li&gt;sg_prefPoolSz  - Static global variable&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and of course one the farthest reaching eyesore in OOP, m_ for all members.  If you can't be sure / keep track of which variables are local, members, globals, static, or final/const, you &lt;em&gt;might&lt;/em&gt; be writing unclear, poorly factored, spaghetti code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is wholey different than specifying a prefix/suffix convention for things like min, max, avg, size, count, index, et cetera, which is fine.&lt;/p&gt;&#xA;" OwnerUserId="1579" LastActivityDate="2010-09-13T22:41:43.333" CommunityOwnedDate="2010-09-13T22:41:43.333" CommentCount="2" />
  <row Id="3375" PostTypeId="2" ParentId="3363" CreationDate="2010-09-13T22:41:49.703" Score="10" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;//there has got to be a better way to do this...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="785" LastActivityDate="2010-09-13T22:41:49.703" CommunityOwnedDate="2010-09-13T22:41:49.703" CommentCount="4" />
  <row Id="3376" PostTypeId="2" ParentId="2192" CreationDate="2010-09-13T22:42:53.617" Score="5" ViewCount="" Body="&lt;p&gt;having to make perfect estimates that must not be veered from once development begins, it's a chicken-egg scenario in my opinion&lt;/p&gt;&#xA;" OwnerUserId="785" LastActivityDate="2010-09-13T22:42:53.617" CommunityOwnedDate="2011-01-05T06:12:52.770" CommentCount="2" />
  <row Id="3377" PostTypeId="2" ParentId="3363" CreationDate="2010-09-13T22:44:06.517" Score="10" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;Player rick = new Player(&quot;Rick&quot;);&#xA;&#xA;// Letting a player Rick Roll should produce the following output:&#xA;&#xA;// We're no strangers to love  &#xA;// You know the rules and so do I  &#xA;// A full commitment's what I'm thinking of  &#xA;// You wouldn't get this from any other guy  &#xA;// I just wanna tell you how I'm feeling  &#xA;// Gotta make you understand  &#xA;&#xA;// CHORUS  &#xA;// Never gonna give you up,   &#xA;// Never gonna let you down,  &#xA;// Never gonna run around and desert you,  &#xA;// Never gonna make you cry,   &#xA;// Never gonna say goodbye,  &#xA;// Never gonna tell a lie and hurt you&#xA;&#xA;rick.Roll(); // Rick Rolled!&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;sub&gt;&lt;a href=&quot;http://stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered/482129#482129&quot;&gt;This wasn't my idea though...&lt;/a&gt;&lt;/sub&gt;&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2011-03-31T01:12:06.177" LastActivityDate="2011-03-31T01:12:06.177" CommunityOwnedDate="2010-09-13T22:44:06.517" CommentCount="1" />
  <row Id="3378" PostTypeId="2" ParentId="3363" CreationDate="2010-09-13T22:49:22.637" Score="13" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;try&#xA;{&#xA;    ...&#xA;}&#xA;catch&#xA;{&#xA;   // this should never happen&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="316" LastActivityDate="2010-09-13T22:49:22.637" CommunityOwnedDate="2010-09-13T22:49:22.637" CommentCount="9" />
  <row Id="3379" PostTypeId="2" ParentId="3272" CreationDate="2010-09-13T22:52:00.527" Score="6" ViewCount="" Body="&lt;p&gt;2-4 years are quite common for many developers. The reasoning behind this is quite simple: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Vertical Movement&lt;/li&gt;&#xA;&lt;li&gt;Horizontal Movement&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Vertical movement will require longer staying time (minimum 4 years). Usually the person becomes a team lead or manager or maybe architect. Chances are this person will be a better mentor and you're not necessarily looking to hire him as a software developer anymore. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Horizontal movement usually is in the range of 2-3 years. This type of developers tend to look for a new challenge either new/different technology or different problem domains. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing is, as long as the person is improving in each of the newer job (check with him as well), it shouldn't be a big deal. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you learn by staying 4 years in the same team using the same technology within the same problem domain? &quot;Maintenance&quot; isn't the answer because once you hit year 2, you should be in maintenance mode already even if you are still improving the app.&lt;/p&gt;&#xA;" OwnerUserId="1649" LastActivityDate="2010-09-13T22:52:00.527" CommentCount="1" />
  <row Id="3380" PostTypeId="2" ParentId="2700" CreationDate="2010-09-13T22:52:46.373" Score="5" ViewCount="" Body="&lt;p&gt;I shouldn't really be proud of this, but for some reason, it was satisfying.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than having COBOL in school, I had no experience, but I was low man on the totem pole, and we needed to provide compiling source code to an outsourcer for Y2K checking.  We had a single COBOL file with multiple routines that called each other in the file, spaghetti-like, and it was too large to load in our current IDE for compiling.  It needed to be pulled apart into at least two physical files, and those files of course, needed to have everything they needed in their own file.  (Or perhaps, there was a way to link them together, but I didn't really know COBOL.)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, I took this about 100,000 line file, and gently pulled apart the dozens and dozens of routines to find two sets of routines that were independant of each other, and could therefore exist in two separate files, each about 50,000 or so lines.  (I think the max the compiler could handle was about 80,000 lines, so it did need to be fairly evenly matched.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was reading an ancient language that I didn't know, and was still successful in the task.  &lt;/p&gt;&#xA;" OwnerUserId="88" LastActivityDate="2010-09-13T22:52:46.373" CommentCount="4" />
  <row Id="3381" PostTypeId="2" ParentId="3363" CreationDate="2010-09-13T22:55:19.477" Score="8" ViewCount="" Body="&lt;p&gt;I use the &lt;a href=&quot;http://submain.com/products/ghostdoc.aspx&quot; rel=&quot;nofollow&quot;&gt;GhostDoc&lt;/a&gt; plugin for generating comments in Visual Studio. It's usually pretty good at coming up with sensible default comments for method names and properties, but every now and then it throws up something humorous. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, it's default rules aren't too good at documenting the 'AsXXX' convention used by extension methods to convert one type to another, such as this comment generated just today:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;summary&amp;gt;&#xA;  Ases the Member&#xA;&amp;lt;/summary&amp;gt;&#xA;public static Member AsMember(this XElement member)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="562" LastActivityDate="2010-09-13T22:55:19.477" CommunityOwnedDate="2010-09-13T22:55:19.477" CommentCount="5" />
  <row Id="3382" PostTypeId="2" ParentId="3363" CreationDate="2010-09-13T22:58:11.617" Score="15" ViewCount="" Body="&lt;p&gt;From the Linux kernel sources...&#xA;&lt;code&gt;linux 2.6.35/drivers/net/sunhme.c&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/* Only Sun can take such nice parts and fuck up the programming interface&#xA;* like this.  Good job guys...&#xA;*/&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-13T22:58:11.617" CommunityOwnedDate="2010-09-13T22:58:11.617" CommentCount="3" />
  <row Id="3383" PostTypeId="1" AcceptedAnswerId="3499" CreationDate="2010-09-13T23:00:04.083" Score="13" ViewCount="335" Body="&lt;p&gt;Years ago, in my first real programming job, my boss encouraged me to keep a journal of my daily activities.  I still do so, although no longer a paper and hand-written one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you keep a journal, if so, what do you write in it, and how does it help you in your job?  Or, does it just take time that is not ever recovered?&lt;/p&gt;&#xA;" OwnerUserId="88" LastEditorUserId="25" LastEditorDisplayName="" LastEditDate="2010-09-13T23:24:38.420" LastActivityDate="2010-10-26T14:12:17.520" Title="Does keeping a journal help in your job?" Tags="&lt;jobs&gt;&lt;time-management&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="5" />
  <row Id="3384" PostTypeId="2" ParentId="3383" CreationDate="2010-09-13T23:03:52.077" Score="2" ViewCount="" Body="&lt;p&gt;Personally, not me. The code I write is the journal. And much like a real journal, I remember where and when I solved a specific problem and can jump right back to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as the normal 'journaling' process goes, I have no need in professional development to journal about how my desk was moved last month, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; After thinking about this a bit, I do keep a blog, and when I run into something particularly difficult or rare, I do blog it so I can come back to it later. As a side benefit, it helps others with the same problem. So I guess this question could also be &quot;Does keeping a blog help you in your job?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I only run into SharePoint's SPWebConfigModification class once in a blue moon, so:&#xA;&lt;a href=&quot;http://brandonpotter.wordpress.com/2010/02/04/moss-2007-how-web-config-modifications-work/&quot; rel=&quot;nofollow&quot;&gt;http://brandonpotter.wordpress.com/2010/02/04/moss-2007-how-web-config-modifications-work/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1596" LastEditorUserId="1596" LastEditorDisplayName="" LastEditDate="2010-09-13T23:41:00.583" LastActivityDate="2010-09-13T23:41:00.583" />
  <row Id="3385" PostTypeId="2" ParentId="3363" CreationDate="2010-09-13T23:09:52.533" Score="30" ViewCount="" Body="&lt;p&gt;I was once coding against a really old API, and the request object had the following handy note:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Requests can fail without error&#xA;  messages and succeed with error&#xA;  messages&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;How do you deal with that?&lt;/p&gt;&#xA;" OwnerUserId="316" LastActivityDate="2010-09-13T23:09:52.533" CommunityOwnedDate="2010-09-13T23:09:52.533" CommentCount="4" />
  <row Id="3386" PostTypeId="2" ParentId="3363" CreationDate="2010-09-13T23:20:40.563" Score="8" ViewCount="" Body="&lt;p&gt;Buried deep within the bowels of the IPC code for a major enterprise software project:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;// May the gods forgive me for this ugly hack&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-13T23:20:40.563" CommunityOwnedDate="2010-09-13T23:20:40.563" />
  <row Id="3387" PostTypeId="2" ParentId="3383" CreationDate="2010-09-13T23:25:40.800" Score="0" ViewCount="" Body="&lt;p&gt;IMHO it is very helpful and generally can serve as / replace code documentation if you keep track of the right things.  Much like code documentation, the how and what isn't usually important as it &lt;em&gt;should&lt;/em&gt; be relatively easy to discerne through the code layout and implementation.  What &lt;em&gt;is&lt;/em&gt; important is the why.  Why are we implementing it this way?  What should it be doing?  But yet more important still, what else did we try (that didn't work) that lead us to implement it this way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This can prevent wasted time later.  Either in retracing your own footsteps or in the classic rewrite debacle that happens x years later when the original white-papers and e-mail exchanges have been archived/deleted... &quot;this code would be so much cleaner and faster using the so-and-so architecture, no wonder it's broken, who wrote this mess?&quot;  Only to find out late in the rewrite/refactor that there is some critical shortcoming in hardware or a 3rd party app that lead the original developer down the seemingly less elegant path.&lt;/p&gt;&#xA;" OwnerUserId="1579" LastActivityDate="2010-09-13T23:25:40.800" />
  <row Id="3388" PostTypeId="2" ParentId="3383" CreationDate="2010-09-13T23:25:51.210" Score="2" ViewCount="" Body="&lt;p&gt;I always thought that keeping a &quot;real&quot; journal would be cool but never could keep at it very long.  I don't stand a chance keeping a coding journal, as much as I think it would be a good thing.  I just feel too much pressure to keep coding or maybe that just an excuse.  I guess I'm just not the journal type.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-13T23:25:51.210" />
  <row Id="3396" PostTypeId="2" ParentId="1588" CreationDate="2010-09-13T23:37:08.617" Score="3" ViewCount="" Body="&lt;p&gt;Laptop! If you are having back problems, repetitive stress, carpal tunnel problems, or whatever, then you're doing it wrong. You are programming for too long at a time.  Sit on a couch, change positions frequently. Get up and down off the couch. Get a coffee. Go for a bike ride at lunch. I'm sorry but carpal tunnel and stuff comes from using a computer for too long in the same position. It means you're working too hard and not moving.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Laptop! If you're too poor to afford a laptop, or your job won't buy you one, then you should get a different job! Hello!  Programmers are supposed to make a lot of money!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Laptop! Why do people need so many monitors? I understand you have lots of programs to open, but do you really frequently need to see more than two at once?  You don't need 10 monitors. It honestly doesn't make you look like you're smarter. You look like a super-dork with all those screens.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Laptop!  For heavens sake do people really still uses mouses? That's adorable.&lt;/p&gt;&#xA;" OwnerUserId="1223" LastActivityDate="2010-09-13T23:37:08.617" CommunityOwnedDate="2011-01-27T05:21:04.337" CommentCount="3" />
  <row Id="3400" PostTypeId="2" ParentId="2130" CreationDate="2010-09-13T23:43:39.113" Score="2" ViewCount="" Body="&lt;p&gt;Resources.  Some small companies are very poor and avoid buying expensive tools.  Particularly important for embedded system work where we need logic analyzers, etc. to debug hardware/software bugs.&lt;/p&gt;&#xA;" OwnerUserId="1654" LastActivityDate="2010-09-13T23:43:39.113" />
  <row Id="3401" PostTypeId="2" ParentId="3383" CreationDate="2010-09-13T23:44:38.050" Score="2" ViewCount="" Body="&lt;p&gt;I did at my previous job.  Every day, I would spend a few minutes writing down what I'd done.  Whenever I reached a big milestone, I would record that, too.  No entries were very elaborate; they contained just enough information so that they would be useful at a glance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Come review time, it was very easy to answer the &quot;how have you contributed to the company in the past X months/quarters/years&quot; questions, and back up my answers with specific examples.&lt;/p&gt;&#xA;" OwnerUserId="479" LastActivityDate="2010-09-13T23:44:38.050" CommentCount="2" />
  <row Id="3402" PostTypeId="2" ParentId="3363" CreationDate="2010-09-13T23:48:38.943" Score="20" ViewCount="" Body="&lt;p&gt;From an app I inherited:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// Codes needs refactored.  Was competley but customer asked for last minute change that was BIG!&#xA;// Code written in get er done mode to meet deadline.&#xA;// Do not refactor until we make sure there are no more changes from customer.&#xA;// NEVER EVER CODE LIKE THIS, IF YOU DOTHEN THERE IS A PROBLEM.  THIS IS A FINE EXAMPLE OF&#xA;// WHAT NOT TO DO.  VERY POOR QUALITY AND LACKING IN OOP.  HORRIBLE HORRIBLE HORRIBLE.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And he was right.  :)&lt;/p&gt;&#xA;" OwnerUserId="479" LastActivityDate="2010-09-13T23:48:38.943" CommunityOwnedDate="2010-09-13T23:48:38.943" CommentCount="5" />
  <row Id="3403" PostTypeId="2" ParentId="745" CreationDate="2010-09-13T23:48:40.423" Score="0" ViewCount="" Body="&lt;p&gt;Nerd Energy Beverage! Besides that, I just keep a thermos full of good tea and drink it throughout the night.  Doesn't make me jittery, so I'm able to focus better.&lt;/p&gt;&#xA;" OwnerUserId="990" LastActivityDate="2010-09-13T23:48:40.423" />
  <row Id="3404" PostTypeId="2" ParentId="3365" CreationDate="2010-09-13T23:51:48.003" Score="0" ViewCount="" Body="&lt;p&gt;I tend to agree with Joshua Bloch's view on the subject from Effective Java, favor composition over inheritance:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Unlike method invocation, inheritance&#xA;  violates encapsulation [Snyder86].  In&#xA;  other words, a subclass depends on the&#xA;  implementation details of its&#xA;  superclass for its proper function. &#xA;  The superclass's implementation may&#xA;  change from release to release, and if&#xA;  it does, the subclass may break, even&#xA;  though its code has not been touched.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The implication is that subclasses must evolve along with their superclasses and this compounds as more classes are &quot;mixed in&quot;.  And when they don't coevolve, weird behavioral divergence might occur (e.g. when a subclass overrides a method that now functions differently in the superclass -- your subclass might now fail to fulfill a contract the superclass can).  Furthermore, subclasses will, intentionally or not, acquire new methods as superclasses are extended.  This might destroy the security of an exposed subclass.&lt;/p&gt;&#xA;" OwnerUserId="1579" LastActivityDate="2010-09-13T23:51:48.003" />
  <row Id="3405" PostTypeId="2" ParentId="3272" CreationDate="2010-09-13T23:52:16.067" Score="1" ViewCount="" Body="&lt;p&gt;Job history is an important issue to raise in an interview, but I wouldn't be so quick to make a decision solely on this metric, and before an actual interview because it can be deceiving.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The previous comments brought up some good points, but I found them a bit too generalized, some going as far as saying that quick succession of companies indicates a candidate you should be avoiding. I think that's a poor argument so I'll try to describe how this could be your best candidate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would take into account a few factors, before deciding: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Candidate years of experience&lt;/li&gt;&#xA;&lt;li&gt;Candidate level of knowledge&lt;/li&gt;&#xA;&lt;li&gt;Candidate attitude, drive, motivation (you can tell that during an interview)&lt;/li&gt;&#xA;&lt;li&gt;Companies the candidate worked for&lt;/li&gt;&#xA;&lt;li&gt;Candidate responsibilities in those companies&lt;/li&gt;&#xA;&lt;li&gt;Last, but not least, ask yourself, what kind of company is your company? (the one you're hiring for)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I would also bring up the issue in the interview and ask for the candidate's opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now let me detail a bit as to why so many factors, and why this decision isn't really a black/white one and there's always a chance you get it wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of all an important metric is the number of years of experience and the level of knowledge. This will usually tell you how passionate the candidate is, and give you an idea of the professional growth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The companies the candidate has worked for is also important to understand and correlate that with the candidate's drive/motivation/ambition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like previous posters said there all sorts of companies from startups to enterprises, and the differences in working environments are all over the map.&#xA;Similarly there are all sorts of candidates from really incompetent to very capable and mentalities from this-is-just-a-9-to-5-job-I-can't-wait-to-get-home-and-forget-about-all-this-crap.-What-time-is-it? to passionate people who see it as a craft and want to get better at it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The tricky thing is that a successful match for your company might not involve picking the candidate with the best attributes from that list. It has to do a lot with your company's culture also. It's a well observed fact that in companies with poor management for instance, or really boring and repetitive work, or a bad working environment, the best people tend to leave first, the competent might leave at a certain point in time, and the poorly qualified tend to stick forever. The reason is fairly simple. Qualified people won't put up with a bad environment because it pretty much conflicts with the craft bit I was mentioning. They care too much about the work to do it in a poor way, or see that their input is not being valued, or a general indifference to the output of their work. They are confident enough in their skills to leave a s(t)inking ship. And this might involve leaving during the first year. They usually don't have problems finding a new job because, well, they're good at what they do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recruiters and interviewers usually ask why they took the job in the first place? Well, just as it's difficult to tell from an interview how good exactly or motivated a candidate is, the same is true for the candidate trying to figure out what the working environment at that particular company is, before actually starting to work there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're a small company looking for a candidate who is passionate about his work, ambition and drive are the most important qualities, and those little nr of years with a number of companies doesn't mean anything. He's probably the candidate you want. Being involved in the product and wearing different hats to get the work done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If on the other hand your company has a position available for back-end developer with predefined specs for the next 5 years then I would go a bit further and try to find out what he sees as an ideal position. Is this candidate interested in exploring a domain to its deepest, or is he/she driven more towards innovation and passionate about new technologies and opportunities to put them to practice. You really need to match a candidate to the job you're offering. Otherwise, even if they're qualified, they'll leave. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, the startup mentality of let's-figure-out-how-to-do doesn't really fit in with enterprise jobs, and the enterprise mentality of give-me-the-specs-that-tell-me-how-to-do doesn't really fit in with startup/small company jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're hiring for the enterprise I guess small number of years might tell you a bit more than if you're hiring for a small company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But generally, number of years alone doesn't really mean anything. It could either describe an incompetent candidate or a competent candidate who's just looking for a better working environment with better opportunities to grow professionally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I have a new thing where every half year I look back over the previous half and try to estimate how much I had the opportunity to learn/ what can I do to improve. If I'm really at a stuck point where I'm not really accumulating any knowledge and I can't manage to influence the situation for the better, I will just leave. There's no point in wasting any more time. It's too precious. And I'm not counting myself as one the elites here. I'm just saying, why waste time when you could put it to better use, and be more satisfied professionally and with your work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Same goes for competent people. It's not that they're purposely leaving companies after 1 year, it's just that they haven't found the right one to spend the next five years with.&lt;/p&gt;&#xA;" OwnerUserId="1644" LastEditorUserId="1644" LastEditorDisplayName="" LastEditDate="2010-09-14T00:36:34.103" LastActivityDate="2010-09-14T00:36:34.103" />
  <row Id="3406" PostTypeId="2" ParentId="2783" CreationDate="2010-09-13T23:53:12.297" Score="0" ViewCount="" Body="&lt;p&gt;I always do the spaces more because I like the way it makes my code look as a whole, instead of any readability when figuring out what expressions do.  I don't see a difference either way as far as that goes, but something about having those spaces between everything makes the code feel much less cramped and more pleasing to me.&lt;/p&gt;&#xA;" OwnerUserId="990" LastActivityDate="2010-09-13T23:53:12.297" />
  <row Id="3407" PostTypeId="2" ParentId="958" CreationDate="2010-09-14T00:03:32.200" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;SyncEdit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is an awesome feature which, as far as I've seen, is only found in the Delphi IDE, but ought to be standard issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You select a block of code and hit the SyncEdit button, or the keyboard shortcut for it. It goes through and scans your block and finds all tokens that are used more than once and underlines them.  Place the insertion point inside any underlined identifier and all its duplicates get highlighted with little boxes around them, and any changes you make to it get made to all the duplicates too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's like an instant, ad-hoc version of the Rename Refactoring tool, or a visually intiutive search-and-replace, and it's so useful that I frequently paste code from other languages (or even just plain English occasionally) into Delphi so I can use SyncEdit to simplify some editing.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-14T00:03:32.200" />
  <row Id="3408" PostTypeId="2" ParentId="3383" CreationDate="2010-09-14T00:03:41.370" Score="0" ViewCount="" Body="&lt;p&gt;If, as a previous responder suggested, you change the question to &quot;Does keeping a blog help you in your job?&quot; then, yes, it &lt;em&gt;absolutely&lt;/em&gt; helps. As 'tech wizards' we have a lot of spells to deal with! When I find myself looking up some tricky incantation for the second or third time, I post it in my blog with an appropriate tag so I don't have to go spelunking for the answer again.  I'll post stuff like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How to Use Vim as an External Editor with Outlook&lt;/li&gt;&#xA;&lt;li&gt;How to Use easy_install From Behind a Restrictive Firewall&lt;/li&gt;&#xA;&lt;li&gt;Combining Multiple Static Libs in Visual Studio&lt;/li&gt;&#xA;&lt;li&gt;Packaging a Standalone Python App with bbfreeze&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;My blog is publicly accessible, but I don't bother too much making it look sexy. A lot of times I'll just paste a bunch of commands from a terminal session so I have some kind of searchable record...&lt;/p&gt;&#xA;" OwnerUserId="1326" LastActivityDate="2010-09-14T00:03:41.370" />
  <row Id="3409" PostTypeId="2" ParentId="3131" CreationDate="2010-09-14T00:05:49.977" Score="3" ViewCount="" Body="&lt;p&gt;My viewpoint most closely aligns with GoodEnough's as I've been in the same situation he describes most of my career, and I have some further depth/breadth to add.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your best possible wager on an &quot;off-platform&quot; hire would be a Jack-of-All-Trades-and-Master-of-SOME.  You need the guy to be a rock star in at least one or two of his areas because you need to be sure that he has the capability of exceptional work.  You don't want a utility infielder type (can play every position but only as a mediocre replacement for the guy who really owns the it).  He'll end up causing you more problems than he solves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you're looking for on the resume is a bunch of different platforms (with specific versions), a bunch of different languages, and projects complex enough to merit some really heavy design considerations.  Just because the guy worked for a Fortune-100 company doesn't mean he worked on any mission-critical projects.  They could've all been little internal department apps that nobody ever saw in the light of day.  Make sure they have some significant business importance.  If the guy's a real rock star, he'll gravitate toward the  gnarliest projects.  And regardless of how well he &quot;talks&quot; his game, if he doesn't have any big, nasty projects on his resume then he's not a rock star.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the interview, you're primarily looking for a nimble thinker who is able to explain even the most complex of his former projects to exactly the level of detail necessary for you (and whoever else is in the room) to understand.  Ask questions at different &quot;altitudes&quot; and expect the answers to be in the same altitude you asked them.  Present a current challenge you're experiencing (or have already solved) and ask him for a similar example from his past and how he solved it.  His story ought to resonate with you.  If it doesn't or if you end up more confused after his explanation than before...then he's not the one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And now for two very specific war stories.  One with a good ending.  One not so good.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back in the day I was a Vignette consultant (hired gun, not employee).  I was on a gig in NYC, and that company had partnered with a consultancy in Buenos Aires to extend their footprint internationally.  I flew down to BA for a week to teach a roomful of ASP programmers (.NET wasn't yet a twinkle in Bill's eye) how to do Vignette.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you know anything about VIGN, you know that the special sauce for that platform was its ability to dynamically pull stuff out of a DB and then cache static HTML files on the web server docroot.  Huge performance benefit vs. always pulling dynamically.  And in order to most effectively architect the caching strategy, you had to &quot;pack the OID&quot; which means concatenating various primary key values into a single element in one portion of the URL of the cached file.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the time, ASP programming was either POST-heavy (everything stuffed into the header) or GET-heavy (big ugly query string of vars).  So as we went through the week, I continually hammered on them to replace their POST- or GET-centric design thoughts with pack-the-OID thoughts.  Most of them seemed to get it, but this one guy was a real stubborn mule.  Up until the last day, all his design exercises still looked like they were right out of the ASP cookbook.  It wasn't until the &quot;final exam&quot; on the last day did that guy ever design an app with a packed OID.  But of all of them, that guy ended up being their strongest VIGN guy because once he got it, he really got it.  Just took a while for the light bulb to go on in his head.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other story is much shorter.  Big credit card processing company.  Half a million lines of C talking to another half a million lines of COBOL.  One camp (the C programmers) really wanted to implement CORBA.  &quot;Just need to stuff the C code in some CORBA-compliant wrapper, and we're off to the races,&quot; they said.  The other camp wanted to rewrite the C in Java.  Now this was in early 1997, so JDK 1.1 had just been released.  As their &quot;example&quot; they (the COBOL programmers, ironically) wrote a massive several-thousand-line example java class of &quot;how easy it would be to rewrite&quot;.  Moral of the story: don't ever let your COBOL programmers write Java without Object Oriented adult supervision.&lt;/p&gt;&#xA;" OwnerUserId="1650" LastActivityDate="2010-09-14T00:05:49.977" />
  <row Id="3410" PostTypeId="2" ParentId="866" CreationDate="2010-09-14T00:11:48.500" Score="2" ViewCount="" Body="&lt;p&gt;It's very rare to write a physics engine for a game anymore. Usually, a third party library, either free or commercial, is used instead. The same goes for other aspects of game engines, too. Rendering, sound, AI, animation, GUI, networking, etc. It's rare that anyone writes a game engine from scratch these days. Usually people buy them. If they do make them, they buy a bunch of middleware to do the difficult tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's lots of places to start learning game programming. If you want to just go &quot;make a game&quot; I'd suggest diving into &lt;a href=&quot;http://unity3d.com&quot; rel=&quot;nofollow&quot;&gt;Unity&lt;/a&gt;. Unity is a fantastic, very easy to use game engine that can be used to make just about anything. It even provides most of the features of commercial engines (especially the upcoming version 3).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to learn more about the fundamentals of game programming, check out PyGame or XNA. They take away a lot of the tedium normally found in managing graphics, input, sound etc. They won't do physics for you (they are not engines, just APIs), but there's a lot of free, easy to use solutions.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastActivityDate="2010-09-14T00:11:48.500" />
  <row Id="3411" PostTypeId="2" ParentId="3365" CreationDate="2010-09-14T00:26:34.597" Score="1" ViewCount="" Body="&lt;p&gt;If you look at the Scala programming language you'll see multiple inheritance done right.  That is, if you view it as a way to provide for Mixins rather than slapping wings on a cat, it's deliciously good.  That said, if you let inexperienced or careless programmers play around you'll wind up with a garage, tollbooth, gated, building creation.  Yeah...&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-14T00:26:34.597" />
  <row Id="3412" PostTypeId="2" ParentId="3365" CreationDate="2010-09-14T00:33:31.493" Score="7" ViewCount="" Body="&lt;p&gt;This question is really religious.&lt;br&gt;&#xA;Thus I shall answer in that spirit: Inheritance the dark side of OOP is.&lt;br&gt;&#xA;In consequence, multiple inheritance can't be better. I think, it's signifficantly worse, because:&lt;br&gt;&#xA;Multiple class inheritance and abstract classes (which basically are a corollary) are a bad mix between multiple interface inheritance and mixins.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You see, multiple interface inheritance makes sense, because interfaces are abstraction (descriptions of behaviour) and it makes sense that some abstraction is merely the &quot;intersection&quot; of two other abstractions. It really rarely makes sense to make direct intersections of implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't obtain a &lt;code&gt;Dolphin&lt;/code&gt; by inheriting from a &lt;code&gt;Mammal&lt;/code&gt; and a &lt;code&gt;Fish&lt;/code&gt; (some people actually try that, spending a lot of time overriding most of the Fish implementation). However a &lt;code&gt;Dolphin&lt;/code&gt; is an implementation of an &lt;code&gt;AnimalThatCanSwimAndWhereFemalesHaveMammaryGlands&lt;/code&gt;, which basically inherits from both &lt;code&gt;AnimalThatCanSwim&lt;/code&gt; and &lt;code&gt;AnimalWhereFemalesHaveMammaryGlands&lt;/code&gt;. Assuming any of these 3 interfaces was of use, than this would be a useful and perfectly valid abstraction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Composition and delegation are almost always preferable to inheritance (be it single or multiple), but inheritance is prefered, because most languages do not have them as built in features and developers are far to lazy to do that by hand. And as I said, mixins are a far more elegant way of code reuse. Multiple inheritance usually leads programmers to enjoy their laziness even more, trying to hack together what should actually be possible through clear, distinct and unambiguous language features. Which means bad code in the end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People like multiple inheritance. Because people like simple concepts. From my experience with programming languages, the simpler a languages is, the more complicated are the solutions. For example assembly is extremely simple, but a nightmare to write.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-09-14T00:33:31.493" CommentCount="6" />
  <row Id="3413" PostTypeId="2" ParentId="1768" CreationDate="2010-09-14T00:56:25.760" Score="2" ViewCount="" Body="&lt;p&gt;xBase languages. Do you know Harbour? It's a modern compiler advancing where Clipper stopped.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can say anything but there is no programming language more fitted to build typical business applications. Who uses Harbour knows that it is undeniable the best language to business applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's complete, flexible, productive, robust, ease to use, powerful, and it is improving every day. Many people guess xBase is dead, but they don't know &lt;a href=&quot;http://harbour-project.org&quot; rel=&quot;nofollow&quot;&gt;Harbour&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's open source multi platform (32/64), for desktop (Qt wrapper and several libraries), servers, web, mobile (IPhone, Symbian, Android, etc). Where C runs, Harbour runs or can be ported easily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Harbour can work with most databases available from SQLite to Oracle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Harbor is flexible as a script language but powerful like a system language. It's very productive and very fast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The language is multi paradigm. Imperative is the most used but support OOP, a kind of functional (mainly closures), declarative/meta programming with powerful pre processor (not like C/C++ pp), and can be reflective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Harbour has a set of tools like builder, REPL, IDE, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Harbour has wrappers of most useful libraries like PCRE, OpenSLL, Json/XML, compression, imaging, OLE, sockets, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Harbour uses Unicode, is multi threaded, and can load code dynamically and a clever exception handling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most Java features already was there in Clipper years before. Harbour extended good features and fix the bad ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Harbour_%28software%29&quot; rel=&quot;nofollow&quot;&gt;Wikipedia&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1455" LastEditorUserId="1455" LastEditorDisplayName="" LastEditDate="2010-09-16T01:08:16.413" LastActivityDate="2010-09-16T01:08:16.413" />
  <row Id="3414" PostTypeId="2" ParentId="1264" CreationDate="2010-09-14T01:19:11.473" Score="10" ViewCount="" Body="&lt;p&gt;That shipping is a feature.  A really important feature.&lt;/p&gt;&#xA;" OwnerUserId="1654" LastActivityDate="2010-09-14T01:19:11.473" />
  <row Id="3415" PostTypeId="2" ParentId="3317" CreationDate="2010-09-14T01:20:20.757" Score="2" ViewCount="" Body="&lt;p&gt;The short answer is that there is very little difference (perceived or actual) between these two general labels amongst those of us who make our living in this domain.  However, as many folks have already said, some individuals or organizations apply very specific definitions to these general nouns...and that can sometimes cause a perceived or actual difference, especially to non-technical types.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, if these two terms mean something dramatically different to you, then you either a) have been in a context where different specific definitions were applied to those labels or b) you get your technological savvy from reading InfoWeek (no offense intended to the lovely people at InfoWeek) and the occasional Dilbert.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also personally tend to think that the term &quot;programmer&quot; was used earlier in history than the term &quot;developer&quot;.  For example, you always hear about &quot;COBOL Programmers&quot;...never &quot;COBOL Developers&quot;.  The term &quot;developer&quot; wasn't in wide use way back in the day.  If you go look at job titles at technology organizations that were around in the beginning of computing (NASA, IBM, Unisys, Boeing) you either had &quot;programmers&quot; or &quot;software engineers&quot;...never &quot;developers&quot;.  And I bet if you troll said companies' sites right now you'd see very similarly titled results in their job opportunities.&lt;/p&gt;&#xA;" OwnerUserId="1650" LastActivityDate="2010-09-14T01:20:20.757" />
  <row Id="3416" PostTypeId="2" ParentId="745" CreationDate="2010-09-14T01:21:42.857" Score="2" ViewCount="" Body="&lt;p&gt;Regular exercise is a plus. My company subsidises half the cost of a membership at the gym down the road, and our development team makes extensive use of it. Most of us are there at least three lunchtimes per week. Take it from me, nothing gets the blood flowing - and keeps it going - like an hour of decent exercise. It's also a great way to mitigate the effects of the sedentary lifestyle of an office job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, music helps, but I find that downtempo &quot;chillout&quot; style music aids my concentration, whilst more energetic music like metal or DnB just distracts me.&lt;/p&gt;&#xA;" OwnerUserId="460" LastActivityDate="2010-09-14T01:21:42.857" />
  <row Id="3417" PostTypeId="2" ParentId="3363" CreationDate="2010-09-14T01:29:35.100" Score="22" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;//Will comment this later&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Of course, this comment was made years ago and it's still there.&lt;/p&gt;&#xA;" OwnerUserId="19" LastActivityDate="2010-09-14T01:29:35.100" CommunityOwnedDate="2010-09-14T01:29:35.100" CommentCount="3" />
  <row Id="3418" PostTypeId="2" ParentId="3363" CreationDate="2010-09-14T01:37:14.457" Score="2" ViewCount="" Body="&lt;p&gt;These are easily the worst I've seen. From an old C++ project I inherited years ago. All of these were in the same code file:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/*&#xA;    MAB 08-05-2004: Who wrote this routine? When did they do it? Who should I&#xA;    call if I have questions about it? It's worth it to have a good header here.&#xA;    It should helps to set context, it should identify the author (hero or &#xA;    culprit!), including contact information, so that anyone who has questions can&#xA;    call or email. It's useful to have the date noted, and a brief statement of&#xA;    intention. On the other hand, this isn't meant to be busy work; it's meant to&#xA;    make maintenance easier--so don't go overboard.&#xA;&#xA;    One other good reason to put your name on it: take credit! This is your craft&#xA;*/&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and then a little further down:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#include &quot;xxxMsg.h&quot; // xxx messages&#xA;/*&#xA;    MAB 08-05-2004: With respect to the comment above, I gathered that&#xA;    from the filename. I think I need either more or less here. For one&#xA;    thing, xxxMsg.h is automatically generated from the .mc file. That might&#xA;    be interesting information. Another thing is that xxxMsg.h should NOT be&#xA;    added to source control, because it's auto-generated. Alternatively, don't&#xA;    bother with a comment at all.&#xA;*/&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and then yet again:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/*&#xA;    MAB 08-05-2004: Defining a keyword?? This seems problemmatic [sic],&#xA;    in principle if not in practice. Is this a common idiom? &#xA;*/&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="164" LastActivityDate="2010-09-14T01:37:14.457" CommunityOwnedDate="2010-09-14T01:37:14.457" CommentCount="2" />
  <row Id="3419" PostTypeId="1" CreationDate="2010-09-14T01:40:15.587" Score="4" ViewCount="161" Body="&lt;p&gt;Starting this wiki to try and create a running list of popular applications/sites, and what language they use (and why, if known).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm wondering if there's a pattern or certain &quot;personalities&quot; that different languages give to software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;MS Office - C++&#xA;Google Search - Python&#xA;Twitter - Scala&#xA;StackExchange - ASP.NET MVC&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Are there certain personalities that you notice with each? (i.e., you know it's most likely a Java application because it has that Arial 8pt font look on a gray background...)&lt;/p&gt;&#xA;" OwnerUserId="1596" LastActivityDate="2010-09-19T20:04:59.333" CommunityOwnedDate="2010-09-14T01:40:15.587" ClosedDate="2011-02-09T12:34:34.827" Title="Popular applications, their languages, and language-specific personalities?" Tags="&lt;programming-languages&gt;&lt;fun&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="1" />
  <row Id="3420" PostTypeId="2" ParentId="2492" CreationDate="2010-09-14T01:45:43.620" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2008/07/spartan-programming.html&quot; rel=&quot;nofollow&quot;&gt;Spartan Programming&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-14T01:45:43.620" />
  <row Id="3421" PostTypeId="2" ParentId="2492" CreationDate="2010-09-14T01:55:36.220" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2008/07/coding-without-comments.html&quot; rel=&quot;nofollow&quot;&gt;Coding Without Comments&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Complement:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/archives/000749.html&quot; rel=&quot;nofollow&quot;&gt;Code Tells You How, Comments Tell You Why&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-14T01:55:36.220" />
  <row Id="3422" PostTypeId="2" ParentId="565" CreationDate="2010-09-14T01:57:31.083" Score="11" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm&quot; rel=&quot;nofollow&quot;&gt;Programmer Competency Matrix&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many topics to help identify what's your level on programming topics.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-17T19:42:48.610" LastActivityDate="2010-09-17T19:42:48.610" CommentCount="1" />
  <row Id="3423" PostTypeId="2" ParentId="2492" CreationDate="2010-09-14T02:02:46.753" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2010/06/the-vast-and-endless-sea.html&quot; rel=&quot;nofollow&quot;&gt;The Vast and Endless Sea&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-14T02:02:46.753" />
  <row Id="3424" PostTypeId="2" ParentId="565" CreationDate="2010-09-14T02:12:56.767" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/items/2009/09/23.html&quot; rel=&quot;nofollow&quot;&gt;The Duct Tape Programmer&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Joel Spolsky talks about Jamie Zawinski's interview with Peter Seibel in &lt;a href=&quot;http://www.codersatwork.com/&quot; rel=&quot;nofollow&quot;&gt;Coders at Work&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-14T02:12:56.767" CommentCount="1" />
  <row Id="3425" PostTypeId="1" AcceptedAnswerId="3780" CreationDate="2010-09-14T02:16:32.547" Score="2" ViewCount="287" Body="&lt;p&gt;And what do you think about operator precedences? Would be harder programming in language where the operations are executed in sequential order?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ex.:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2 + 3 * 4 == 20&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2 + (3 * 4) == 24&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ok, Lisp family has not precedences by definition. Let's gonna talk about procedural and object oriented languages using this &quot;feature&quot;.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-15T06:22:14.727" Title="Which programming languages doesn't use operator precedence besides Lisp like languages?" Tags="&lt;programming-languages&gt;&lt;syntax&gt;&lt;language-features&gt;&lt;math&gt;&lt;semantics&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="2" />
  <row Id="3426" PostTypeId="2" ParentId="3363" CreationDate="2010-09-14T02:20:15.050" Score="10" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;// I don't know what this does, but if I remove it things break :)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That may not be an exact replica, but it's pretty close. This was a kernel module that, until that time, had been maintained by only one person. I think the comments were added after he was told he should do so as part of the hand over procedure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the smiley that really gets me. Damn you BGK.&lt;/p&gt;&#xA;" OwnerUserId="991" LastActivityDate="2010-09-14T02:20:15.050" CommunityOwnedDate="2010-09-14T02:20:15.050" />
  <row Id="3427" PostTypeId="2" ParentId="3419" CreationDate="2010-09-14T02:30:19.127" Score="2" ViewCount="" Body="&lt;p&gt;AutoCAD - C++&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus they used to (and still might) use a version of LISP for scripting.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-14T02:30:19.127" CommunityOwnedDate="2010-09-14T02:30:19.127" CommentCount="1" />
  <row Id="3428" PostTypeId="2" ParentId="3282" CreationDate="2010-09-14T02:37:58.777" Score="1" ViewCount="" Body="&lt;p&gt;When I was interning at a place I was put in charge of their internal reporting website which used Coldfusion (which I had to learn in 2 days) and some crazy JS to make it look cool. From what I could tell it was a few years old, and of course had little documentation, most of which was out of date. And of course a bazillion people had worked on it over the years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Note I haven't touched CF in 2 years, so some of the terminology might be wrong)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was a pain since code was spread all over the place with no standards in place. SQL (which was MSSQL when I only knew MySQL) was stored all over the place: Stored Procedures, 4 utility classes, and in code. The menus had a utility class to autogenerate some (that was used only twice) and custom implementations everywhere else. And there where classes locked away in some default include directory on the application server that I of course didn't have access to for a while. And of course basic patters like MVC weren't followed, it was just some inline CFM inside of HTML pages and separate utility classes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You also had some crazy stuff like trying to display 2 million test records one one page, SQL that locked the server for a few minutes trying to run it, along with a few other things. Not only that but apparently projects were hosted on the server, which I accidentally froze a couple of times with infinite loops or giant SQL queries. And then their was IE support...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I spent a long time just removing duplicate code, centralizing stuff, fixing the ridiculous JS, and fixing as much SQL as I could, and of course tons of documentation. I had to rewrite most of the &quot;utility&quot; classes and most of the JS animations. I was so happy when I did the final commit, knowing that I wouldn't have to touch that mess again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might seem like I'm whining when you compare it to C++ or Ruby, but for me it was hard.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-14T02:37:58.777" CommunityOwnedDate="2011-01-14T18:11:43.393" />
  <row Id="3429" PostTypeId="2" ParentId="3363" CreationDate="2010-09-14T02:43:07.440" Score="5" ViewCount="" Body="&lt;p&gt;Here's one of my favorites from some code I just inherited:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//dumb quirk, must convert str to bool for SPField type of bool to accept value.&#xA;hashtable[&quot;key&quot;] = Convert.ToBoolean(&quot;True&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Maybe not so much the comment as the code, but the comment is still somewhat amusing.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-09-14T02:43:07.440" CommunityOwnedDate="2010-09-14T02:43:07.440" />
  <row Id="3430" PostTypeId="2" ParentId="1719" CreationDate="2010-09-14T03:07:41.217" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Go (new system level programming language with good support for concurrency and concepts not so traditional)&lt;/li&gt;&#xA;&lt;li&gt;Lua (scripting language simple, expressive, extremely flexible and balanced paradigms imperative, functional and meta programming, allowing OOP)&lt;/li&gt;&#xA;&lt;li&gt;D (C/C++ done right)&lt;/li&gt;&#xA;&lt;li&gt;Groovy (Expressiveness and meta programming in Java world)&lt;/li&gt;&#xA;&lt;li&gt;Eiffel (Design By Contract and a different approach to OOP)&lt;/li&gt;&#xA;&lt;li&gt;Prolog (THE logic programming language)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-26T11:44:39.410" LastActivityDate="2010-09-26T11:44:39.410" CommunityOwnedDate="2010-09-14T03:07:41.217" CommentCount="5" />
  <row Id="3431" PostTypeId="2" ParentId="3425" CreationDate="2010-09-14T03:43:55.187" Score="3" ViewCount="" Body="&lt;h3&gt;Forth&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;It's (almost) all RPN notation, so no precedence rules needed. I'd wager most languages using postfix or prefix notation (PostScript, Lisp...) would work the same. &lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-14T03:43:55.187" />
  <row Id="3432" PostTypeId="2" ParentId="2130" CreationDate="2010-09-14T03:47:02.200" Score="6" ViewCount="" Body="&lt;p&gt;I find this a very easy question to answer - it's a classic risk vs. reward scenario.  The risk of working for a small company is higher, but the reward if things work out is usually much better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I've worked for both, and although at times working for a small company is frustrating through lack of tools and resources, I find this far better than working for a large company which could afford whatever tools you need, but the rules won't allow it.&lt;/p&gt;&#xA;" OwnerUserId="1674" LastActivityDate="2010-09-14T03:47:02.200" CommentCount="2" />
  <row Id="3433" PostTypeId="2" ParentId="2410" CreationDate="2010-09-14T03:54:10.447" Score="26" ViewCount="" Body="&lt;p&gt;It's like having to write detailed step by step directions for how to drive somewhere. But  you usually have to add contingency plans for things like 'what if there is a traffic jam', or 'what if a truck breaks down in the turn lane'. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And sometimes you have to dive even deeper and explain the rules of the road like which side to drive on or what to do at a red light.  And sometimes you even need to explain precisely how the steering wheel or the gas pedal works.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And usually, once you've got that all described in exacting detail, the customer says &quot;that's perfect, except it needs to work for someone driving a hovercraft&quot;&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-14T03:54:10.447" CommunityOwnedDate="2011-03-03T17:06:14.173" CommentCount="4" />
  <row Id="3434" PostTypeId="2" ParentId="2410" CreationDate="2010-09-14T04:08:31.993" Score="1" ViewCount="" Body="&lt;p&gt;Computer programming is like playing a game of chess in which the size of the board, the amount of pieces in play and the rules that govern those pieces grow in size and complexity as the game goes on.&lt;/p&gt;&#xA;" OwnerUserId="1444" LastEditorUserId="1444" LastEditorDisplayName="" LastEditDate="2010-09-14T04:21:40.880" LastActivityDate="2010-09-14T04:21:40.880" CommunityOwnedDate="2011-03-03T17:06:14.173" />
  <row Id="3435" PostTypeId="2" ParentId="2352" CreationDate="2010-09-14T04:09:57.283" Score="8" ViewCount="" Body="&lt;p&gt;I'd like to see a unified &lt;a href=&quot;http://en.wikipedia.org/wiki/Whitespace_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Whitespace&lt;/a&gt; / &lt;a href=&quot;http://en.wikipedia.org/wiki/Lolcode&quot; rel=&quot;nofollow&quot;&gt;LOLCODE&lt;/a&gt; compiler. So you could write a program that &lt;em&gt;looked&lt;/em&gt; annoying, but in reality would be &lt;em&gt;even more&lt;/em&gt; annoying.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-14T04:09:57.283" />
  <row Id="3436" PostTypeId="2" ParentId="3425" CreationDate="2010-09-14T04:13:33.070" Score="3" ViewCount="" Body="&lt;p&gt;APL has no precedence. If memory serves, everything is evaluated right to left.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oddly, at least in an official sense, neither C nor C++ has operator precedence. The standard isn't written that way, although (of course) it's &lt;em&gt;mostly&lt;/em&gt; a different way of saying the same thing as having precedence. OTOH, it is only &lt;em&gt;mostly&lt;/em&gt; the same thing -- ultimately, there's no way to write a precedence table for C or C++ and get everything quite right. There are a few things that just won't quite fit.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-09-14T04:13:33.070" CommentCount="1" />
  <row Id="3437" PostTypeId="2" ParentId="1039" CreationDate="2010-09-14T04:23:13.793" Score="3" ViewCount="" Body="&lt;p&gt;In addition to physical purchases, dont forget about Web hosting and domain name exepenses. &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-14T04:23:13.793" />
  <row Id="3438" PostTypeId="1" CreationDate="2010-09-14T04:24:01.220" Score="2" ViewCount="260" Body="&lt;p&gt;It seems like in language holy wars, people constantly denigrate any feature they don't find particularly useful as being &quot;just syntactic sugar&quot;.  The line between &quot;real features&quot; and &quot;syntactic sugar&quot; tends to get blurred in these debates.  What do you believe is a reasonable and unambiguous definition of syntactic sugar that avoids it being defined as any feature the speaker/writer doesn't find useful?&lt;/p&gt;&#xA;" OwnerUserId="1468" LastEditorUserId="1468" LastEditorDisplayName="" LastEditDate="2010-10-21T20:38:42.710" LastActivityDate="2010-10-26T05:31:04.657" Title="Rigorous Definition of Syntactic Sugar?" Tags="&lt;programming-languages&gt;&lt;syntax&gt;" AnswerCount="5" CommentCount="7" />
  <row Id="3439" PostTypeId="2" ParentId="1009" CreationDate="2010-09-14T04:30:22.267" Score="3" ViewCount="" Body="&lt;p&gt;Definately use a 3rd party vendor at first.  There's a lot of shareware and software sales services that will handle the whole process of purchase and download.  Then once you get sales going and have an idea of what type of revenue you are generating, you might look at implementing a store of your own on your site.  What you dont want to do is bite off too much to chew at one time.  Releasing a new product is tough enough, you dont want to compound that by having to learn all about credit card processing &amp;amp; sales/vat taxes, and maintaining your own store.  Nor do you want to invest a large amount of time up front doing all that if it turns out no one is buying your software.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-14T04:30:22.267" />
  <row Id="3440" PostTypeId="1" CreationDate="2010-09-14T04:33:16.490" Score="9" ViewCount="441" Body="&lt;p&gt;When I'm passionate about something (particularly programming) I find it really easy come off like the guy Peter G. was talking about in &lt;a href=&quot;http://programmers.stackexchange.com/q/2164/162&quot;&gt;Dealing with the “programming blowhard”&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what techniques do you use to&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Identify when you are indeed a blowhard?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Communicate something &quot;important&quot; without seeming self important?    &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specific example help like&#xA;When giving criticism ask &quot;have you considered what happens when XXX changes&quot; instead of &quot;never take dependencies on implementation details&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When giving advice &quot;showing with code is better than talking&quot; or use a reference.&lt;/p&gt;&#xA;" OwnerUserId="162" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T04:02:18.093" LastActivityDate="2011-02-13T01:13:57.257" Title="How do you avoid being a &quot;blowhard&quot;?" Tags="&lt;personality&gt;&lt;advice&gt;" AnswerCount="7" FavoriteCount="1" />
  <row Id="3441" PostTypeId="2" ParentId="3440" CreationDate="2010-09-14T04:40:59.063" Score="15" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;em&gt;Assume&lt;/em&gt; it's true. Because recognizing it in hindsight doesn't help. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't criticize without concrete examples of why the technique you're criticizing &lt;em&gt;will&lt;/em&gt; cause problems. If your advice is ignored, just move on, accepting that you may not hold the &lt;em&gt;only&lt;/em&gt; right answer... or a right answer at all.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;And above all, stay out of religious wars. If someone wants your advice, they'll ask for it and be glad you could spare the time to share. Otherwise, keep your opinions to yourself. Whatever's bugging you, it's probably not as important as you think it is.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-14T04:40:59.063" CommentCount="3" />
  <row Id="3442" PostTypeId="2" ParentId="3440" CreationDate="2010-09-14T04:56:09.983" Score="12" ViewCount="" Body="&lt;p&gt;Try to talk less than you listen.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-14T04:56:09.983" CommentCount="4" />
  <row Id="3443" PostTypeId="2" ParentId="1745" CreationDate="2010-09-14T04:56:56.213" Score="7" ViewCount="" Body="&lt;p&gt;That any code written in an OOP (C#, C++, Java) language by anyone is automatically Object Oriented and &quot;Reusable&quot;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It wasn't just once where I was asked to reuse a thousand line code block or a class in an architecture that did not have any patterns except inheritance (which doesn't even count). Apparently, copy pasting also counts as good code-reuse for anyone who doesn't know the difference between an OO-language and OOP itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A favorite TDWTF that's happens every so often: &lt;a href=&quot;http://thedailywtf.com/Articles/Code-Refuse.aspx&quot; rel=&quot;nofollow&quot;&gt;Code-Refuse&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1668" LastEditorUserId="1668" LastEditorDisplayName="" LastEditDate="2010-09-14T07:30:48.310" LastActivityDate="2010-09-14T07:30:48.310" CommunityOwnedDate="2010-09-14T04:56:56.213" />
  <row Id="3444" PostTypeId="2" ParentId="3233" CreationDate="2010-09-14T04:59:37.403" Score="2" ViewCount="" Body="&lt;p&gt;People are less willing to pay for virtual stuff like programs, plus, there are many other free programs, so your commercial program, even for 1 cent, won't sell.&#xA;Also, programs can be copied easily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;money is the human word for quatloos&quot;, that's why some programmers avoid it.&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-09-14T04:59:37.403" CommunityOwnedDate="2010-10-02T03:46:51.680" />
  <row Id="3445" PostTypeId="2" ParentId="1013" CreationDate="2010-09-14T05:07:15.453" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Excel.&lt;/strong&gt;   Not as a spreadsheet &lt;em&gt;(although in that role, it is mediocre at best, especially when you have more than a short int's worth of data)&lt;/em&gt;,  but as a defect tracking tool.  No history, no traceability, no protection against destructive changes, unintentional or otherwise...  &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-14T05:07:15.453" CommunityOwnedDate="2011-02-01T07:56:02.387" CommentCount="15" />
  <row Id="3446" PostTypeId="2" ParentId="2130" CreationDate="2010-09-14T05:08:27.427" Score="4" ViewCount="" Body="&lt;p&gt;A small company only survives if its employees are willing to take on whatever roles are necessary to get the job done (QA? Sure. Spend New Years' Eve remotely rebooting servers in Virginia? check.)  If you see a problem, you fix it.  A large company evolves specialized roles, which inevitably results in some folks having the attitude of seeing problems and thinking that they can't/shouldn't fix it (and, by extension, that their only recourse is to send lots of email complaining about the problem).  However, this has the upside of it &lt;em&gt;actually&lt;/em&gt; being someone else's job to reboot things on New Years Eve.  The best of both worlds seems to be the person at the big company who can fix anything - then you get to work on what you want plus you have resources to do it right. The key thing is to find a big company where you'll work for people with the same values as you, so you don't have to rewrite the company's DNA to get &quot;rules&quot; that you can work with.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-14T05:08:27.427" CommentCount="1" />
  <row Id="3447" PostTypeId="2" ParentId="3419" CreationDate="2010-09-14T05:15:31.110" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Blender - C&lt;/li&gt;&#xA;&lt;li&gt;FlightGear - C++&lt;/li&gt;&#xA;&lt;li&gt;Minesweeper - Brainfk?? (you didn't realize how 1337 it is...)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That's more hardcore.&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-09-14T05:15:31.110" CommunityOwnedDate="2010-09-14T05:15:31.110" />
  <row Id="3448" PostTypeId="2" ParentId="3089" CreationDate="2010-09-14T05:18:01.250" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Started using StackOVerFlow.com&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1682" LastActivityDate="2010-09-14T05:18:01.250" CommunityOwnedDate="2011-02-02T05:23:59.377" />
  <row Id="3449" PostTypeId="2" ParentId="3383" CreationDate="2010-09-14T05:22:53.847" Score="0" ViewCount="" Body="&lt;p&gt;There is one advantage of keeping a log which I tend to draw more from than anything:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;You can let go of things that are bothering you easier when you write them down.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually write down stuff I've done or what remarkable thing happened during the day in small one sentences in a paper notebook. That way I can forget about it when I get home and do &lt;em&gt;home stuff&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are of course other reasons for you to keep a log as well:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;For your own sake, the journal is also evidence for you to prove that you're actually &quot;working&quot; in case anyone doubts it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It is also a training for you to become a better communicator. If you can read your own scribbles from weeks ago, then you know you've improved. If not, you should concentrate more when you write down your log. It doesn't matter wether the log is digital or analog: grammar does! So does clear and concise language!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1683" LastEditorUserId="1683" LastEditorDisplayName="" LastEditDate="2010-10-26T14:12:17.520" LastActivityDate="2010-10-26T14:12:17.520" />
  <row Id="3450" PostTypeId="1" AcceptedAnswerId="3451" CreationDate="2010-09-14T05:23:48.477" Score="7" ViewCount="265" Body="&lt;p&gt;Long winding &lt;code&gt;if&lt;/code&gt; conditions should be avoided if at all possible, yet sometimes we all end up writing them. Even if it's a very simple condition, the involved statements are sometimes simply very wordy, so the whole condition ends up being very lengthy. What's the most readable way to format those?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (FoobarBaz::quxQuux(corge, grault) || !garply(waldo) || fred(plugh) !== xyzzy) {&#xA;    thud();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (&#xA;    FoobarBaz::quxQuux(corge, grault)&#xA; || !garply(waldo)&#xA; || fred(plugh) !== xyzzy&#xA;) {&#xA;    thud();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (FoobarBaz::quxQuux(corge, grault)&#xA;    || !garply(waldo)&#xA;    || fred(plugh) !== xyzzy) {&#xA;    thud();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;thudable = FoobarBaz::quxQuux(corge, grault);&#xA;thudable ||= !garply(waldo);&#xA;thudable ||= fred(plugh) !== xyzzy;&#xA;&#xA;if (thudable) {&#xA;    thud();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or any other preferences?&lt;/p&gt;&#xA;" OwnerUserId="594" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:29:56.210" LastActivityDate="2010-10-14T16:28:32.020" Title="Most readable way to format long if conditions?" Tags="&lt;style-guide&gt;&lt;conditions&gt;" AnswerCount="8" FavoriteCount="1" />
  <row Id="3451" PostTypeId="2" ParentId="3450" CreationDate="2010-09-14T05:27:40.827" Score="9" ViewCount="" Body="&lt;p&gt;Often, a long if condition is the sign of code that needs refactoring, but sometimes you can't avoid it. In those cases, I prefer the first: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (foo || bar || baz || quux) {&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Because you're able to tell what's going on with one line. However, I'd much rather do something like this, when possible:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function foo() {&#xA;  return bar || baz || quux;&#xA;}&#xA;&#xA;if (foo()) {&#xA;  // code here&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-14T05:27:40.827" CommentCount="2" />
  <row Id="3452" PostTypeId="2" ParentId="3438" CreationDate="2010-09-14T05:29:53.557" Score="3" ViewCount="" Body="&lt;p&gt;IMHO I don't think you can have a definition for syntactic sugar, because the phrase is BS and is likely to be used by people that talk about &quot;real programmers&quot; using &quot;real tools&quot; on &quot;real operating systems&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its BS because the idea of &quot;real features&quot; or &quot;syntactic sugar&quot; is like the &lt;a href=&quot;http://en.wikipedia.org/wiki/No_true_Scotsman&quot; rel=&quot;nofollow&quot;&gt;No true Scotsman fallacy&lt;/a&gt;. In that the phrases are &quot;ad hoc attempts to retain an unreasoned assertion&quot;. The assertion here is that a feature here is trivial because you could use a &quot;real feature&quot; instead. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its BS because  some argue the use of sugar should be &lt;a href=&quot;http://stackoverflow.com/q/547710/119477&quot;&gt;avoided&lt;/a&gt; because you can write a bug but you &lt;a href=&quot;http://stackoverflow.com/q/2832005/119477&quot;&gt;should stick to it &lt;/a&gt; because its harder to write bugs. Isn't that awesome. The same phrase leads to exactly opposite conclusions using the same logic. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its BS because no one cites usability studies or defect count studies, to back up their readability or maintainability or likely defect arguments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its BS because people are often wrong or become wrong about the equivalence. For example &lt;a href=&quot;http://stackoverflow.com/q/1390365/119477&quot;&gt;this question&lt;/a&gt; asserts that a C# string is sugar for a char array. &lt;a href=&quot;http://stackoverflow.com/q/3669199/119477&quot;&gt;They aren't&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However if you want to say two things are sugar if they are semantically equivalent and that helps go ahead and define it anyway you want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to be dismissive of someone you can also use the phrase.    &lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-09-14T05:29:53.557" CommentCount="2" />
  <row Id="3453" PostTypeId="2" ParentId="2666" CreationDate="2010-09-14T05:31:22.483" Score="15" ViewCount="" Body="&lt;p&gt;After spending a 100 hour work-week feverishly integrating software in an overcrowded under-ventilated makeshift office above the shop floor where they were assembling our simulator, catching a late flight to D.C., and then working until 6AM stomping out the last bugs, and trying unsuccessfully to figure out why the motion base was pitching backwards instead of forwards whenever you stomped on the brakes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Luckily, none of the generals we gave demos to on that day seemed to notice the glitch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2 days later, the misplaced negative sign was obvious.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lesson Learned:  Get Some Sleep.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-14T05:31:22.483" CommunityOwnedDate="2011-01-10T19:05:03.687" CommentCount="4" />
  <row Id="3454" PostTypeId="2" ParentId="3233" CreationDate="2010-09-14T05:38:00.790" Score="10" ViewCount="" Body="&lt;p&gt;One of the main reasons why I'd consider releasing an app for free is because it's a surefire addition to my portfolio for future endeavors (potential job opportunities, promoting your name in the programming world). That's more than enough payment if you ask me.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-09-14T05:38:00.790" CommunityOwnedDate="2010-10-02T03:46:51.680" CommentCount="5" />
  <row Id="3455" PostTypeId="2" ParentId="3450" CreationDate="2010-09-14T05:39:55.067" Score="0" ViewCount="" Body="&lt;p&gt;I'm a fan of the following: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (really_long_expression &amp;amp;&amp;amp; another_really_really_long_expression &amp;amp;&amp;amp; &#xA;            another_very_long_expression_OMG_id_it_long){&#xA;    bugs();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This way it still looks like an if expression and not a broken-down-to-pieces if expression. The indentation helps in showing that it is a continuation of the previous line. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also indent it until the opening bracket is at the end of the previous line so that it's at the end of the if expression as it's supposed to be. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-14T05:39:55.067" />
  <row Id="3456" PostTypeId="1" AcceptedAnswerId="3462" CreationDate="2010-09-14T05:42:18.813" Score="0" ViewCount="140" Body="&lt;p&gt;Agile, I get, really I do.  I recently spent two years on a project that would have been one year if it had been put together as an agile process. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Test-first is so obvious when writing remote services or common libraries that I think I was doing it before it had a name or at least before I had ever seen purpose built unit testing tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In reality there seem to be other categories of projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;My example:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I currently work on some high-performance stuff that ties into some really bizarre self-configuring data that has had most of the abstractions factored away over the years to lower overhead (really tight coupling) and some security code that deals with lots of machine state, windows identities, webserver state (external god objects) and is as sealed as possible (monolithic with no testable interface from a unit testing perspective, also requires a very detailed up-front design to modify correctly).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the foreseeable future there does not appear to be much chance of eliminating those last two projects ($7mil to replace the tight-coupling and a change in regulatory environment or a total OS replacement across the organization for the god objects).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, the simplest solution would be to Agile the projects that can be broken into segments, Test First anything with an obvious interface that can be meaningfully tested then waterfall the monolithic stuff and do old-fashioned acceptance testing on anything you cannot do automated testing on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To some people this conclusion seems like blasphemy or at the minimum that I am quite insane, but for our situation there is not a better design that meets the stated requirements, and the design allows nearly none of the agile and tdd concepts to be applied, so what should be done?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Shouldn't more than one project method exist within an organization to account for these things?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If so, any insight into how you might handle process selection and such between the projects would be a bonus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If not, please explain how you would handle monolithic, sealed, design-heavy, tightly coupled components in an otherwise agile environment.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(HINT: the answer is not don't do it that way, we have spent well into six figures with consultants and vendors to arrive at the conclusion that eliminating the vendor and replacing our OS would be the only way to alter the design without loosing performance/security/compliance)&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-14T05:56:08.637" ClosedDate="2010-09-14T16:55:29.087" Title="Must all projects follow a single development process/model ?" Tags="&lt;holy-war&gt;&lt;development-process&gt;&lt;agile&gt;&lt;tdd&gt;&lt;waterfall&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="3457" PostTypeId="2" ParentId="2948" CreationDate="2010-09-14T05:45:22.783" Score="4" ViewCount="" Body="&lt;p&gt;I have not found them useful as practiced at my workplace, where the &quot;Daily 15-Minute Standup&quot;  stretched to 30, then 45, and now often 60 minutes; where everyone sits down while waiting for the project manager to fiddle with the projector, or the network share, or whatever else the day's random demon is;  where he insists on everyone taking the time to provide status updates before the meeting, but then queries everyone again (just in case we've accomplished something else in the last few moments);  The only part of the original concept that remains is &quot;Daily&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't do this.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-14T05:45:22.783" CommunityOwnedDate="2011-02-21T11:56:32.877" CommentCount="2" />
  <row Id="3458" PostTypeId="2" ParentId="2148" CreationDate="2010-09-14T05:45:27.950" Score="0" ViewCount="" Body="&lt;p&gt;Social life. It's getting in the way of programming.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-09-14T05:45:27.950" />
  <row Id="3459" PostTypeId="2" ParentId="2410" CreationDate="2010-09-14T05:48:09.950" Score="5" ViewCount="" Body="&lt;p&gt;As a kid, I read a really good description of programming: it's like telling a robot how to do a common, everyday task, like going to school. So you can tell it to &quot;Go to school!&quot;, but it doesn't know how. So you tell it to &quot;go outside, take a left, keep walking until you come to the school, take a left, go in, and sit down&quot;. But there's a road in the way! So you have to tell it to &quot;stop at the road, check that there is no traffic, cross the road, and keep walking&quot; somewhere in the middle there. And what about doors? So you add &quot;check if the school door is open. If it isn't, open it.&quot; in there. Eventually, you have a program that can tell your robot how to get to school by itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This dovetails very neatly with Logo, where you instruct the turtle in exactly this way to create complex shapes.&lt;/p&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-09-14T05:48:09.950" CommunityOwnedDate="2011-03-03T17:06:14.173" CommentCount="1" />
  <row Id="3460" PostTypeId="2" ParentId="3440" CreationDate="2010-09-14T05:52:41.543" Score="5" ViewCount="" Body="&lt;p&gt;Give people the benefit of doubt by assuming they know what they are doing. Then if you feel like something's wrong with what they're doing you'll be cautious (that is- polite about it)  because since they know what they're doing it's probably you who misunderstood something. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have no stake in the project then don't give advice unless you feel there's something very wrong or you are asked to. If you have a stake in the project talk facts. Then if the other person is irrational it'll be obvious to everybody. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-14T05:52:41.543" />
  <row Id="3461" PostTypeId="2" ParentId="3450" CreationDate="2010-09-14T05:53:27.377" Score="6" ViewCount="" Body="&lt;p&gt;I like keeping the operators at the end to indicate continuation:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (the_function_being_called() != RETURNCODE_SUCCESS &amp;amp;&amp;amp;&#xA;    the_possibly_useful_recovery_strategy() == RETURNCODE_EPICFAIL &amp;amp;&amp;amp;&#xA;    this_user_has_elected_to_recieve_error_reports)&#xA;{&#xA;    report_error();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-14T05:53:27.377" CommentCount="1" />
  <row Id="3462" PostTypeId="2" ParentId="3456" CreationDate="2010-09-14T05:56:08.637" Score="1" ViewCount="" Body="&lt;p&gt;Steve McConnel &lt;a href=&quot;http://www.stevemcconnell.com/ieeesoftware/eic10.htm&quot; rel=&quot;nofollow&quot;&gt;says no&lt;/a&gt;. All projects don't need to follow a single development process/model. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The fact that both process-oriented&#xA;  and commitment-oriented projects have&#xA;  pathological lookalikes has muddied&#xA;  the debate. Some projects conducted in&#xA;  each style succeed, and some fail.&#xA;  That allows a process advocate to&#xA;  point to the process success and&#xA;  commitment failures and claim that&#xA;  process is the key to success. It&#xA;  allows the commitment advocate to do&#xA;  the same thing.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-09-14T05:56:08.637" CommentCount="1" />
  <row Id="3463" PostTypeId="2" ParentId="3233" CreationDate="2010-09-14T06:19:56.207" Score="2" ViewCount="" Body="&lt;p&gt;I'm in love with coding! I really feel excellent when I think of somebody who's using my applications around the world. This was the first reason for my free applications. I should confess that I make a living with programming, besides I love producing free applications.&lt;/p&gt;&#xA;" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-12T08:41:36.867" LastActivityDate="2011-02-12T08:41:36.867" CommunityOwnedDate="2010-10-02T03:46:51.680" />
  <row Id="3464" PostTypeId="2" ParentId="348" CreationDate="2010-09-14T06:31:58.883" Score="15" ViewCount="" Body="&lt;p&gt;I have worked as, and managed staff in both situations, and combinations of both.  I've made the following observations:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Junior staff do not work remotely.  They require a good and personal working relationship with a mentor.  I find my junior staff would rather wait for me to be available than to ask the rather senior (and good) remote developer anything.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Ensure anyone you consider for working remotely is effective when self-guided and doesn't go off on tangents.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Remote staff can get isolated really easily and not feel part of a team unless special effort is made to be inclusive of them.  This isolation can lead to a misunderstanding of the specific business driver for a project, or to misinterpret events in a negative manner.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Never get a contractor working remotely, unless they have the right incentive to perform.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When working with a remote team member, make sure they get equitable access to resources, including source control, reference material, etc.  Don't make them jump through hoops to get work done.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Arrange those face to face meetings as often as practical.  This encourages far better team collaboration as people are more comfortable with those they have met.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1674" LastActivityDate="2010-09-14T06:31:58.883" />
  <row Id="3465" PostTypeId="2" ParentId="3450" CreationDate="2010-09-14T06:33:12.657" Score="3" ViewCount="" Body="&lt;p&gt;I tend to align the operators at the start of new lines so I remember how I'm combining terms (both for long logic and long arithmetic).  Like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (first_attempt(data) == SUCCESS&#xA;    || (reusable(data) &amp;amp;&amp;amp; second_attempt(data) == SUCCESS)&#xA;    || (still_reusable(data) &amp;amp;&amp;amp; third_attempt(data) == SUCCESS))&#xA;  return SUCCESS;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This only works if I indent by 2-spaces or set set my environment to indent multiline predicates more, or else it would be hard to tell where the predicate ends and useful code begins.&lt;/p&gt;&#xA;" OwnerUserId="998" LastActivityDate="2010-09-14T06:33:12.657" />
  <row Id="3466" PostTypeId="2" ParentId="3450" CreationDate="2010-09-14T06:44:31.063" Score="6" ViewCount="" Body="&lt;p&gt;I am a big fan of meaningful variable names:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;const bool isInAStrangeCondition =&#xA;    FoobarBaz::quxQuux(corge, grault) ||&#xA;    !garply(waldo) ||&#xA;    fred(plugh) !== xyzzy;&#xA;&#xA;if (isInAStrangeCondition) {&#xA;    thud();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Or refactor as a function, as mentioned above.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-09-14T06:44:31.063" />
  <row Id="3467" PostTypeId="2" ParentId="3363" CreationDate="2010-09-14T06:45:57.023" Score="1" ViewCount="" Body="&lt;p&gt;2-3 years old comment about a bug that was fixed long time ago&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//When bug 3491 is fixed change this&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This is a nonsense one:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//69121&#xA;Int64 lMinutes = 15;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-09-14T06:45:57.023" CommunityOwnedDate="2010-09-14T06:45:57.023" />
  <row Id="3468" PostTypeId="2" ParentId="2130" CreationDate="2010-09-14T06:47:44.600" Score="0" ViewCount="" Body="&lt;p&gt;Politics. In bigger companies people tend to identify less with a common goal and tend to be more selfish. Trying to push their ideas no matter what.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-09-14T06:47:44.600" />
  <row Id="3469" PostTypeId="2" ParentId="2410" CreationDate="2010-09-14T06:54:59.017" Score="13" ViewCount="" Body="&lt;p&gt;I use the metaphor &quot;We write &lt;strong&gt;knitting recipes&lt;/strong&gt;&quot; which is grandmother friendly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rationale:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Knitting is a rather simple mechanical process where you basically need to follow detailed instructions exactly to get anything out of it.&lt;/li&gt;&#xA;&lt;li&gt;Most knitting instructions are for multiple sizes.  This gives you &lt;code&gt;if&lt;/code&gt;-statements and math and loops.&lt;/li&gt;&#xA;&lt;li&gt;You get to find the error in the recipe when the army of angry grandmothers come with their buggy sweaters!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-09-14T06:54:59.017" CommunityOwnedDate="2011-03-03T17:06:14.173" CommentCount="1" />
  <row Id="3470" PostTypeId="2" ParentId="610" CreationDate="2010-09-14T07:02:00.480" Score="3" ViewCount="" Body="&lt;h2&gt;Javascript&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Using &lt;code&gt;apply&lt;/code&gt; to run a function in the context of an object. For example, suppose you have an event handler:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$(function(){&#xA;    $('#selectr').keydown(function(){&#xA;        // update the UI based on the new value&#xA;        if(this.value == 1)&#xA;        {&#xA;               $('selector2').hide();&#xA;        }&#xA;     });&#xA;});&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now suppose that &lt;code&gt;$(&quot;#selectr&quot;)&lt;/code&gt;  already has a value when you initially render the page. You &lt;em&gt;could&lt;/em&gt; duplicate the display logic elsewhere, or refactor the above function to receive the target element as a value. Or you could use &lt;code&gt;apply&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$(function(){&#xA;&#xA;    var selectr_keydown = function(){&#xA;        // update the UI based on the new value&#xA;        if(this.value == 1)&#xA;        {&#xA;               $('selector2').hide();&#xA;        }&#xA;     };&#xA;&#xA;    selectr_keydown.apply($('#selectr').get(0));//selectr_keydown is run with ``this'' referring to $('#selectr').get(0)&#xA;&#xA;    $('#selectr').keydown(selectr_keydown);&#xA;});&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Note that I've written this using jQuery, but &lt;code&gt;apply&lt;/code&gt; is a pure javascript method.&lt;/p&gt;&#xA;" OwnerUserId="1664" LastActivityDate="2010-09-14T07:02:00.480" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="1" />
  <row Id="3471" PostTypeId="2" ParentId="3450" CreationDate="2010-09-14T07:06:32.920" Score="0" ViewCount="" Body="&lt;p&gt;I use&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (FoobarBaz::quxQuux(corge, grault) ||&#xA;        !garply(waldo) ||&#xA;        fred(plugh) !== xyzzy) {&#xA;    thud();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1482" LastActivityDate="2010-09-14T07:06:32.920" />
  <row Id="3473" PostTypeId="2" ParentId="1745" CreationDate="2010-09-14T07:59:15.550" Score="20" ViewCount="" Body="&lt;p&gt;That when programmers say it's very hard to do/simply impossible, HR thinks they're lazy and unmotivated&lt;/p&gt;&#xA;" LastActivityDate="2010-09-14T07:59:15.550" CommunityOwnedDate="2010-09-14T07:59:15.550" CommentCount="1" />
  <row Id="3474" PostTypeId="2" ParentId="3438" CreationDate="2010-09-14T08:04:33.317" Score="6" ViewCount="" Body="&lt;p&gt;How about this: &quot;syntactic sugar is a convenience shorthand for some functionality that does not introduce any meaningful layer of abstraction.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take &lt;code&gt;a-&amp;gt;b&lt;/code&gt;, which, as you point out, is equivalent to &lt;code&gt;(*a).b&lt;/code&gt;.  Does this notation allow you to consider the code it's in any useful, otherwise hidden manner?  No, so it's syntactic sugar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now consider &lt;code&gt;a[i] == *(a + i)&lt;/code&gt;.  Think about any C program that uses arrays in any substantive way.  Can you imagine trying to comprehend it without the &lt;code&gt;[]&lt;/code&gt; notation?  With multidimensional arrays?  It is meaningful to consider arrays as whole units, not as a reference to the start of a contiguous block of memory.  While it does help to know how arrays work in C if you're planning on doing complicated things with them, it is unproductive to always have to think &quot;I need to store the two bits of memory 2*i bytes to the right of the memory location referenced by &lt;code&gt;a&lt;/code&gt;.&quot;  The whole point of an array is the ability to abstract away the process of storing a sequence as a coherent unit.  The &lt;code&gt;[]&lt;/code&gt; notation facilitates this abstraction.  It's &lt;strong&gt;not&lt;/strong&gt; syntactic sugar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not to imply that syntactic sugar is always bad thing.  Like many alliterations, it has become an epithet and pitted against &quot;real features.&quot;  But LISP and Scheme, for example, would be unreadable if not for the &lt;code&gt;let&lt;/code&gt; shorthand (and others).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ternary operator, &lt;code&gt;&amp;lt;pred&amp;gt; ? &amp;lt;cnsq&amp;gt; : &amp;lt;alt&amp;gt;&lt;/code&gt;, is another example.  Syntactic sugar can help to organize programs and remove redundant code, which may save in maintenance down the line.  Syntactic sugar may sometimes be preferable to piling on &quot;real features&quot; if it helps to remove syntactic barriers to programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To quote &lt;a href=&quot;http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-3.html&quot; rel=&quot;nofollow&quot;&gt;R^5RS&lt;/a&gt;, &quot;Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary.&quot;  IMHO, syntax can qualify as a weakness and restriction and so letting programmers get away from syntax can &lt;em&gt;increase&lt;/em&gt; a language's expressivity.&lt;/p&gt;&#xA;" OwnerUserId="998" LastActivityDate="2010-09-14T08:04:33.317" />
  <row Id="3475" PostTypeId="2" ParentId="3425" CreationDate="2010-09-14T08:15:45.053" Score="1" ViewCount="" Body="&lt;p&gt;LISP-type languages don't need precedence because expressions are fully parenthesized.  There is no need for precedence to evaluate&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(sqrt (expt (- x1 x2) 2)&#xA;      (expt (- y1 y2) 2))&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I know J, and I believe it's close relative K (along with their parent language, APL, as noted by @Jerry Coffin), evaluate everything right to left with no precedence.&lt;/p&gt;&#xA;" OwnerUserId="998" LastActivityDate="2010-09-14T08:15:45.053" CommentCount="3" />
  <row Id="3476" PostTypeId="2" ParentId="3440" CreationDate="2010-09-14T08:16:52.347" Score="2" ViewCount="" Body="&lt;p&gt;Try giving your advice/criticism only once and if it is not accepted move on. It is fine if you are asked to provide arguments for your point of view, but know that it is time to stop when you realize that the other side will not be convinced (perhaps because they do not understand certain thing that you do or vice versa) by any of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, don't turn a argument about programming into a flame war. Keep it strictly on about the bit of code or logic that you are discussing, and avoid making personal attacks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Always be open to the possibility that you may be wrong, and evaluate every argument posed by the other side seriously and objectively - no matter how low an estimation of that person's abilities you have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And lastly, a lot of the seriously annoying people I talked with tend to be some sort of fanboy or zealot and any argument with them often end up as being a pointless and irrelevant &quot;your OS vs my OS&quot;, &quot;your editor/IDE vs. my editor/IDE&quot; or &quot;your language/framework vs. my language/framework&quot; p*ssing match.&lt;/p&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-09-14T08:16:52.347" CommentCount="1" />
  <row Id="3477" PostTypeId="2" ParentId="3363" CreationDate="2010-09-14T08:29:45.703" Score="4" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;/* Peter sacrifices a goat to fix the formatter */&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If you'd seen the formatter, you'd understand why...&lt;/p&gt;&#xA;" OwnerUserId="1700" LastActivityDate="2010-09-14T08:29:45.703" CommunityOwnedDate="2010-09-14T08:29:45.703" CommentCount="1" />
  <row Id="3478" PostTypeId="2" ParentId="2756" CreationDate="2010-09-14T08:59:23.210" Score="1" ViewCount="" Body="&lt;p&gt;The worst thing I've encountered so far is using no coding standards. And you are prohibited to make some code block more readable because it breaks diff tools... Because we are using patches to apply changes (change/bug fix request -&gt; fix/change -&gt; patch -&gt; patch applied by &quot;trusted&quot; person -&gt; commit) you can get pretty funny looking source code (from readability point of view). At least we do not have anyone using two letter variables (-.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[rant] The funniest thing is that everyone agrees that we need to change this. There were even a couple of reformat attempts (automated on commit), but because a single tiny itsy bitsy formatting option is missing - the all thing just got through out. Sight... [/rant]&lt;/p&gt;&#xA;" OwnerUserId="1045" LastActivityDate="2010-09-14T08:59:23.210" />
  <row Id="3479" PostTypeId="2" ParentId="2756" CreationDate="2010-09-14T09:19:26.100" Score="1" ViewCount="" Body="&lt;p&gt;Guidelines help improve quality of code:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;from the writer point of view: many rules aim at reducing the introduction of bugs. For instance, a rule stating that &lt;code&gt;if()&lt;/code&gt; or &lt;code&gt;for(;;)&lt;/code&gt; constructs must be followed by a block and not a single instruction, makes intention of initial coder explicit and helps next coders maintain this.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;from the reader point of view: code that follows agreed guidelines is reviewed more efficiently than code with various styles. The reviewer knows better with less effort where to look for possible bugs.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-09-14T09:19:26.100" />
  <row Id="3480" PostTypeId="2" ParentId="3233" CreationDate="2010-09-14T09:23:28.913" Score="2" ViewCount="" Body="&lt;p&gt;I tried my hand at selling a product that made working with Access SQL much easier, fun even...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a few dedicated users who love it, but it has not made me &quot;loads of cash&quot;.  I am now considering setting up a blog and offering it for free.  As I no longer work with Access (ASP.NET MVC now), it doesn't hurts me and why not give back to the community that got me going?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tech support has been hell, writing the installation was not my core skill, so on and so forth.  Collecting money was as simple as using PayPal, so don't see that as an issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my motivation is giving back to the community.  I write articles for the same reason (for example, 4guysfromrolla.com), but with a lot of these websites getting bought up, it is probably time to set up my own blog.  Money?  A bit of advertising, maybe.  Or selling my collection of short stories on Amazon.co.uk (The Kingfisher and other stories, by Andrew Wrigley)...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, being loved. Money can't buy that, can it?&lt;/p&gt;&#xA;" OwnerUserId="1710" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-12T08:43:35.350" LastActivityDate="2011-02-12T08:43:35.350" CommunityOwnedDate="2010-10-02T03:46:51.680" />
  <row Id="3482" PostTypeId="1" AcceptedAnswerId="3512" CreationDate="2010-09-14T09:32:39.550" Score="6" ViewCount="213" Body="&lt;p&gt;You've shipped, asserts are turned off, you receive a &lt;em&gt;rare&lt;/em&gt; crash report indicating that a null pointer violation occurred in your code.  In a development environment, the problem would have been caught by an assert.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All you have is a crash report, so reproducing the issue is near impossible.  Following the backtrace doesn't give any clues as to why the crash happened in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Options:&#xA;- Add pointer checking to prevent the crash.  This will prevent the crash, but you probably won't even find out why it happened in the first place.&#xA;- let it fly, hope that it happens again with a repro scenario&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's say the application isn't intended for a guided missle or automatic braking system...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which would you choose?&lt;/p&gt;&#xA;" OwnerUserId="1388" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-14T13:05:58.723" LastActivityDate="2010-09-26T04:07:37.857" Title="You've shipped, you get a rare seg fault. Pointer checking or let it go?" Tags="&lt;bugs&gt;&lt;best-practices&gt;&lt;pointers&gt;" AnswerCount="4" CommentCount="4" />
  <row Id="3484" PostTypeId="2" ParentId="1920" CreationDate="2010-09-14T09:43:07.220" Score="5" ViewCount="" Body="&lt;p&gt;If you are doing C or C++ work on Linux, then &lt;a href=&quot;http://www.valgrind.org&quot; rel=&quot;nofollow&quot;&gt;Valgrind&lt;/a&gt; is definitely one of the most important tools.&lt;/p&gt;&#xA;" OwnerUserId="703" LastActivityDate="2010-09-14T09:43:07.220" />
  <row Id="3485" PostTypeId="2" ParentId="2148" CreationDate="2010-09-14T09:43:27.183" Score="2" ViewCount="" Body="&lt;p&gt;Twitter and other social networking sites.&lt;/p&gt;&#xA;" OwnerUserId="1706" LastActivityDate="2010-09-14T09:43:27.183" />
  <row Id="3486" PostTypeId="2" ParentId="1920" CreationDate="2010-09-14T09:44:29.370" Score="5" ViewCount="" Body="&lt;p&gt;GCC and vi / vim&lt;/p&gt;&#xA;" OwnerUserId="1706" LastActivityDate="2010-09-14T09:44:29.370" />
  <row Id="3487" PostTypeId="2" ParentId="2226" CreationDate="2010-09-14T09:50:14.573" Score="1" ViewCount="" Body="&lt;p&gt;I feel your pain, as I went to a JavaSchool too. Mine is actually ranked fairly highly in the UK for what it is, even though students in my year didn't get a single Data Structures class. I was lucky enough in that I was able to pick up DSA as an optional course due to administrative errors with my course, but that's another harrowing story...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience you'll experience something in a JavaSchool that you won't experience in top universities and that's the student that &lt;strong&gt;wants to prove their worth&lt;/strong&gt;. Just like with any other ancient or red-brick university in my country we had the typical slackers and the decent performers, but there was a small group of students that were aware of their surroundings and what they were missing in their education. Inevitably, these people didn't necessarily do brilliantly in their course, but they left university knowing more than everyone else. We interned in whatever software companies would take us during any breaks we had, we picked up the languages we were never to be taught and we studied the subjects that others avoided because they were hard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From my friends, two of us are carrying on our studies to Masters level, picking up on all the advanced courses on where we felt we entirely missed the foundation, and one guy is hoping that his recent interview at Microsoft will result in a full-time job. I am about to start my Masters degree soon, primarily to fill the gaps in my education and to spend one more year building the skills I'll need to maximise my potential in this industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the real-world people will always hold these biases, and more often than not they are completely founded on truth. If you feel your school is inadequate tell them, and use sites like this to build your level of education.&lt;/p&gt;&#xA;" OwnerUserId="1037" LastActivityDate="2010-09-14T09:50:14.573" />
  <row Id="3488" PostTypeId="1" CreationDate="2010-09-14T09:50:25.893" Score="13" ViewCount="1982" Body="&lt;p&gt;Say someone has a pretty low GPA (Grade Point Average) but has super positronic intelligence to work around computers, &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Would you get a job? (Considering the GPA)&lt;/li&gt;&#xA;&lt;li&gt;Would it really affect the way people perceive you in the industry? &lt;/li&gt;&#xA;&lt;li&gt;In the long run, does the concept of GPA hold any good?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="26" LastEditorUserId="26" LastEditorDisplayName="" LastEditDate="2010-09-17T08:03:38.627" LastActivityDate="2010-10-15T04:18:00.893" Title="Does bad grades mean you are ruined for life?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;school&gt;" AnswerCount="20" CommentCount="6" FavoriteCount="3" />
  <row Id="3489" PostTypeId="2" ParentId="3282" CreationDate="2010-09-14T09:51:13.117" Score="23" ViewCount="" Body="&lt;p&gt;Here's some C# code I discovered yesterday, created by a code monkey from a certain country (that shall remain nameless), which specializes in very, very low-cost outsourcing.  (Proving once again that you get what you pay for.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The programmer created a UserControl - let's call it &lt;code&gt;LittleControl&lt;/code&gt;.  She then created another control (&lt;code&gt;BigControl&lt;/code&gt;), which contained all manner of panels and other containers, as well as an instance of &lt;code&gt;LittleControl&lt;/code&gt;.  Now she wanted to catch click events inside the &lt;code&gt;LittleControl&lt;/code&gt;, and under certain circumstances pass them up to &lt;code&gt;BigControl&lt;/code&gt; to handle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what does she do?  Raising an event would have been much too straightforward.  (&quot;That's &lt;strong&gt;just&lt;/strong&gt; what they would expect!&quot;)  Herewith the code inside the &lt;code&gt;Click&lt;/code&gt; event of &lt;code&gt;LittleControl&lt;/code&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (this.Parent.Parent.Parent.Parent.Parent.Name.ToUpper() == &quot;BIGCONTROL&quot;) {&#xA;  BigControl ctrl = (BigControl)this.Parent.Parent.Parent.Parent.Parent;&#xA;  ctrl.HandleLittleControlClick();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1715" LastActivityDate="2010-09-14T09:51:13.117" CommunityOwnedDate="2011-01-14T18:11:43.393" />
  <row Id="3490" PostTypeId="2" ParentId="272" CreationDate="2010-09-14T09:51:39.573" Score="1" ViewCount="" Body="&lt;p&gt;I usually say &quot;software developer.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1706" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2011-06-04T02:12:56.807" LastActivityDate="2011-06-04T02:12:56.807" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="3491" PostTypeId="2" ParentId="1920" CreationDate="2010-09-14T09:55:31.847" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://kdesvn.alwins-world.de/&quot; rel=&quot;nofollow&quot;&gt;KDESVN&lt;/a&gt;: TortoiseSVN for KDE (but not quite as good yet)&lt;/p&gt;&#xA;" OwnerUserId="1065" LastActivityDate="2010-09-14T09:55:31.847" CommentCount="2" />
  <row Id="3492" PostTypeId="2" ParentId="3488" CreationDate="2010-09-14T10:00:27.940" Score="2" ViewCount="" Body="&lt;p&gt;It happened in my office. One of my colleague who have just around 6 GPA from 10th grade to collage , got best employer of the year thrice continuously and still he leads as an example for others.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Would you get a job? (Considering the GPA)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are companies who really do not look for GPA if you can pass their interview process you are done.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Would it really affect the way people perceive you in the industry?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They cannot ignore a person if he has capability to solve problems&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;In the long run, does the concept of GPA hold any good?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not really but still few companies initial screening process was done based on it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="156" LastEditorUserId="156" LastEditorDisplayName="" LastEditDate="2010-09-14T10:08:30.220" LastActivityDate="2010-09-14T10:08:30.220" CommentCount="3" />
  <row Id="3494" PostTypeId="2" ParentId="3488" CreationDate="2010-09-14T10:12:40.867" Score="0" ViewCount="" Body="&lt;p&gt;It is dangerous in a bad economy if you are just starting out-you might get a bad start. But in the long run, an ability to get difficult thing done and stay on top of new technology is more important.&lt;/p&gt;&#xA;" OwnerUserId="1719" LastActivityDate="2010-09-14T10:12:40.867" />
  <row Id="3495" PostTypeId="2" ParentId="3488" CreationDate="2010-09-14T10:19:55.723" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Would you get a job? (Considering the GPA)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No clue if they do this in Belgium, but I would try to get a job...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The courses one has bad grades on might be a bit irrelevant with what you will do at your work,&lt;br&gt;&#xA;and at your interview you may appear outstanding in something because you spent a lot of free time on it.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Would it really affect the way people perceive you in the industry?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No, unless you show your GPA to everyone...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if they all look at your GPA, you will tend to start with a more bad job but you might be able to put it your CV when you ever go to another company, and as it was a bad job you probably would have performed the best there thus (whether this happens or not is another question) if they call to that company they will give you a good name... Unless you got fired in a bad way. ;-)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In the long run, does the concept of GPA hold any good?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;For top jobs, maybe, but in general I tend to think that your CV listings will tell more than your GPA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One might be bad at Mathematics courses, but he can still be the best developer of the team... ;-)&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-14T10:19:55.723" />
  <row Id="3496" PostTypeId="2" ParentId="1599" CreationDate="2010-09-14T10:28:44.293" Score="3" ViewCount="" Body="&lt;p&gt;Favorite places == Google and Wikipedia&lt;/p&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-09-14T10:28:44.293" CommunityOwnedDate="2010-09-14T10:28:44.293" />
  <row Id="3497" PostTypeId="2" ParentId="3282" CreationDate="2010-09-14T10:30:30.227" Score="1" ViewCount="" Body="&lt;p&gt;It was part of rather large C++ application. Original programmer probably thought, that it would be very smart, to create two sets of database tables for single entity such as mail address book. Main addrbook data was kept in a 'simple' table with one blob field. That blob contained all addressbook fields joined with special escape characters like '\x2'or '\x5' between them. And there was second set of tables, that looked pretty normal. But they were used only for reading by some functions. Worst things happend when those two got out of sync.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wasn't allowed to change this, because 'new addrbook is almost ready'. But there was no week without some bug reported in old code, that I was supposed to fix ASAP. :)&lt;/p&gt;&#xA;" OwnerUserId="1027" LastActivityDate="2010-09-14T10:30:30.227" CommunityOwnedDate="2011-01-14T18:11:43.393" />
  <row Id="3498" PostTypeId="2" ParentId="3488" CreationDate="2010-09-14T10:32:58.210" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;1  Would you get a job? (Considering the GPA)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Not clear what you are asking here, but you can get a job if you have a non-stellar GPA.  It may take longer to get your first job, and you may have to settle for something tedious ... to start with.  But you should be able to catch up.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;2  Would it really affect the way people perceive you in the industry?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Beyond a certain number of years of experience, your initial qualifications don't matter.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;3  In the long run, does the concept of GPA hold any good?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It will be held up as a measure of how &quot;smart&quot; you are, and how hard working you were at college university.  In the long run, a poor GPA score could effect your prospects of getting accepted to do a higher degree, and it could affect your prospects of landing an advanced R&amp;amp;D job ... if that kind of thing interests you.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-09-14T10:32:58.210" />
  <row Id="3499" PostTypeId="2" ParentId="3383" CreationDate="2010-09-14T10:40:17.820" Score="5" ViewCount="" Body="&lt;p&gt;I find an activity log helpful for several reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I fully agree with &lt;a href=&quot;http://programmers.stackexchange.com/questions/3383/does-keeping-a-journal-help-in-your-job/3401#3401&quot;&gt;Jon Sagara&lt;/a&gt; in that it helps answering the question &quot;&lt;b&gt;what have you done past week (apart from sleeping)?&lt;/b&gt;&quot;. &lt;/li&gt;&#xA;&lt;li&gt;Additionally, it helps to &lt;b&gt;keep track of the million interruptions&lt;/b&gt;, which are often forgotten but combined they take a lot of time.&lt;/li&gt;&#xA;&lt;li&gt;I also find it a great help for &lt;b&gt;learning to estimate&lt;/b&gt;, as it gives you hard figures on how long things take (often longer than you'd think).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1095" LastActivityDate="2010-09-14T10:40:17.820" CommentCount="1" />
  <row Id="3500" PostTypeId="2" ParentId="2261" CreationDate="2010-09-14T10:40:52.547" Score="1" ViewCount="" Body="&lt;p&gt;I had actually written a post on a very similar question - how do you read code ? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most books, articles, etc on programming recommend taking a &quot;good&quot; open source project and &quot;reading the code&quot; as a way to improve your programming foo... Well, that's a good start but how do actually go about doing that is the problem. In this &lt;a href=&quot;http://technikhil.wordpress.com/2010/07/06/how-to-read-code-a-primer/&quot; rel=&quot;nofollow&quot;&gt;post&lt;/a&gt; I detail some pointers and approaches you can take - &lt;a href=&quot;http://technikhil.wordpress.com/2010/07/06/how-to-read-code-a-primer/&quot; rel=&quot;nofollow&quot;&gt;link&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some recommendations (I work in .NET so are my recommendations) - &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.nunit.org/&quot; rel=&quot;nofollow&quot;&gt;NUNit&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.mono-project.com/Main_Page&quot; rel=&quot;nofollow&quot;&gt;Mono.NET&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET&quot; rel=&quot;nofollow&quot;&gt;CruiseControl.NET&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="107" LastActivityDate="2010-09-14T10:40:52.547" />
  <row Id="3501" PostTypeId="2" ParentId="3488" CreationDate="2010-09-14T10:45:37.863" Score="13" ViewCount="" Body="&lt;p&gt;As I understand it, once you accumulated a couple of years and/or job entries in your CV it will have more weight than your GPA (in fact some companies won't even look at it). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember that the point of a CV is as an initial filtering of applicants because companies just physically can't interview everybody. When you just start your career you don't have much experience so your grades are the next best thing, but companies would really rather look at your actual performance in the industry, which is why once you do get some experience it'll have a bigger voice than your GPA. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will, however, find it difficult to get a job in more elite companies (at first), and will have to first work at some less glamorous companies before your industry experience will outweight the GPA. &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2010-09-14T13:26:03.907" LastActivityDate="2010-09-14T13:26:03.907" />
  <row Id="3502" PostTypeId="2" ParentId="3282" CreationDate="2010-09-14T10:58:46.943" Score="39" ViewCount="" Body="&lt;p&gt;I once had to work on a Classic ASP application where the lead developer had proudly claimed to have rewritten the underlying data-access components in .NET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Technically, he wasn't lying, and the code was littered with statements like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;set query = &quot;EXEC spDeleteCompany &quot; &amp;amp; intCompanyId&#xA;arrResult = ExecuteWebServiceSQL(&quot;http://www.url-obscured-for-obvious-reasons.com/Service1.asmx&quot;, query)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Yes, that's a web-service, cunningly named 'Service1.asmx' (the default name given by Visual Studio), that will happily run &lt;em&gt;any&lt;/em&gt; SQL statement given to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and the web-service was completely open to outside access as well.&lt;/p&gt;&#xA;" OwnerUserId="562" LastActivityDate="2010-09-14T10:58:46.943" CommunityOwnedDate="2011-01-14T18:11:43.393" CommentCount="2" />
  <row Id="3503" PostTypeId="2" ParentId="3089" CreationDate="2010-09-14T11:04:38.737" Score="1" ViewCount="" Body="&lt;p&gt;I started up a website where I try to share any coding tips I learn. Trying to write stuff down really helps get it clear in your mind and helps you to remember things when they crop up again.&lt;/p&gt;&#xA;" OwnerUserId="1724" LastActivityDate="2010-09-14T11:04:38.737" CommunityOwnedDate="2011-02-02T05:23:59.377" />
  <row Id="3504" PostTypeId="2" ParentId="3363" CreationDate="2010-09-14T11:08:00.853" Score="4" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;// It's a kind of magic (number)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="456" LastActivityDate="2010-09-14T11:08:00.853" CommunityOwnedDate="2010-09-14T11:08:00.853" />
  <row Id="3507" PostTypeId="2" ParentId="1321" CreationDate="2010-09-14T11:15:06.813" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Inability to see why 'normal' people can be so illogical&lt;/li&gt;&#xA;&lt;li&gt;Ending English (or any natural language) sentences with semicolons&lt;/li&gt;&#xA;&lt;li&gt;Trying to apply development cycles to everyday life&lt;/li&gt;&#xA;&lt;li&gt;Counting from 0&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-09-14T11:15:06.813" CommunityOwnedDate="2010-09-14T11:15:06.813" />
  <row Id="3510" PostTypeId="2" ParentId="3482" CreationDate="2010-09-14T11:27:32.047" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;sub&gt;In a development environment, the problem would have been caught by an assert.&lt;/sub&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;sub&gt;In a specific order it would have been caught and fixed, but the current back-trace has never been caught.&lt;br&gt;&#xA;You should be able to see what went wrong with the crash dump, have you checked parameters, etc...?&lt;/sub&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The extras that can be done based on the amount of time you want to put into this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Archive the crash dump and refer to it in the code&lt;/strong&gt; with a comment at the line it crashed,&lt;br&gt;&#xA;this allows one that examines a very similar chrash dump to know that it has happened  before...&lt;br&gt;&#xA;[time spent: short]&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Additional checks, logging, ... &lt;strong&gt;You want to prevent it and get more information next time.&lt;/strong&gt;&lt;br&gt;&#xA;[time spent: medium]&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Null pointer violation occurred in your code.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Check that it's impossible&lt;/strong&gt; to call the application in such way for this violation to happen.&lt;br&gt;&#xA;[time spent: long]&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-14T12:04:06.677" LastActivityDate="2010-09-14T12:04:06.677" CommentCount="1" />
  <row Id="3511" PostTypeId="2" ParentId="3482" CreationDate="2010-09-14T11:28:13.543" Score="3" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;How often does the crash occur? It happens just for one in many customers in some obscure case? What are the consequences (data loss, system crash)? If it happens every 1 in a million cases and they just have to restart the application and no data is lost then probably you don't need to fix it - leave it like that.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;How expensive (money and time) is to add the asserts and ship it to all customers(if just a part of the customers get the new version then the rest might get into the not checked null problem)? What are the chances of finding the problem? If you just put random checks in the code hoping to catch the error then is a bad practice...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Can the problem be reproduced on the customer's machine? Can you get access to that machine? This might be really valuable&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Review your crash reports and make sure the information provided is useful and can help you diagnose the problem&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-09-14T11:28:13.543" />
  <row Id="3512" PostTypeId="2" ParentId="3482" CreationDate="2010-09-14T11:29:47.767" Score="5" ViewCount="" Body="&lt;p&gt;I chose the second approach. There is no point in hiding the crash if the NULL pointer was unexpected at the point where crash has occured. This NULL pointer in most cases would just be one of the symptom of something else is wrong. If we hide it with a NULL pointer check it is almost certain that something else will break. I feel you have a better chance catching the scenario if you know the point where it crashes everytime instead at some random place.&lt;/p&gt;&#xA;" OwnerUserId="123" LastActivityDate="2010-09-14T11:29:47.767" CommentCount="4" />
  <row Id="3513" PostTypeId="2" ParentId="3488" CreationDate="2010-09-14T11:30:00.463" Score="16" ViewCount="" Body="&lt;p&gt;Grades are an important academic mearsure of how you performed in school.  In the real world, no one really cares what your grades were as long as you have the degree.  Not once has anyone in a professional setting ever asked what my grades were or at this point could I even remember what they were.  Additionally, grades are not the perfect measure of how a person will perform in the real world.  Some people who do very well in school don't really have a clue in the real world and visa versa.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Getting the first job is always going to be the hardest.  If you have a degree, that will help.  If you have skills that will translate during an interview, that will help as well.  &lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-09-14T13:44:51.190" LastActivityDate="2010-09-14T13:44:51.190" CommentCount="3" />
  <row Id="3515" PostTypeId="2" ParentId="2130" CreationDate="2010-09-14T11:38:56.533" Score="0" ViewCount="" Body="&lt;p&gt;Small Companies V/s Big companies&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's easy to become 1 in 10 instead of 1 in 100&lt;/p&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-09-14T11:38:56.533" />
  <row Id="3517" PostTypeId="2" ParentId="3233" CreationDate="2010-09-14T11:42:26.777" Score="2" ViewCount="" Body="&lt;p&gt;My application is free because the service, which it is a client for, is free. I don't believe any of my users will expect to pay me for a service that they can get elsewhere for free...&lt;/p&gt;&#xA;" OwnerUserId="1732" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-06T10:55:35.020" LastActivityDate="2011-02-06T10:55:35.020" CommunityOwnedDate="2010-10-02T03:46:51.680" />
  <row Id="3519" PostTypeId="1" AcceptedAnswerId="3521" CreationDate="2010-09-14T11:51:03.667" Score="11" ViewCount="556" Body="&lt;p&gt;I am C++ developer with some good experience on it. When I try to learn a new language ( have tried Java, C#, python, perl till now) I usually pickup a book and try to read it. But the problem with this is that these books typically start with some very basic programming concepts such as loops, operators etc and it starts to get very boring soon. Also, I feel I would get only theoeritcal knowledge without any practical knowledge on writing the code. So my question is how do you tacke these situations? do you just skip the chapters if its explaining something basic? also, do you have some standard set of programs that you will try to write in every new programming language you try to learn?&lt;/p&gt;&#xA;" OwnerUserId="123" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-14T12:06:59.700" LastActivityDate="2010-09-18T18:45:19.247" Title="How do you learn a new programming language?" Tags="&lt;programming-languages&gt;&lt;learning&gt;" AnswerCount="10" FavoriteCount="4" />
  <row Id="3521" PostTypeId="2" ParentId="3519" CreationDate="2010-09-14T11:54:59.007" Score="12" ViewCount="" Body="&lt;p&gt;Basically by writing code in that language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to have a good example application to study/modify otherwise you're starting off on the wrong foot and you might never recover. Years ago we decided to use Ada for our next product, but as we all used FORTRAN in the previous product we ended up creating FORTRAN constructs in Ada. We never really recovered from that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having access to the documentation and Stack Overflow is essential otherwise you'll potentially miss the important features of the language. On that score find out who are the Gurus in the language and read their blogs, these will often discuss the new features of a language/framework and also the obscurer areas you'll never find by yourself. If you can't find out who they are ask here!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In an ideal world I'd like to learn by myself for a while and then be evaluated, but I've never managed that yet.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-09-14T12:01:37.430" LastActivityDate="2010-09-14T12:01:37.430" CommentCount="5" />
  <row Id="3522" PostTypeId="2" ParentId="3519" CreationDate="2010-09-14T11:55:09.163" Score="2" ViewCount="" Body="&lt;p&gt;Bruce Eckel's &quot;Thinking in ...&quot; books are quite good for if you're switching between C++/C#/Java...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Python and Perl tends to be less related so it's more advised to start from the basics there,&lt;br&gt;&#xA;or you will have to find a tutorial that's explicitly based on the assumption that you know how to program.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-14T11:55:09.163" />
  <row Id="3524" PostTypeId="1" AcceptedAnswerId="3538" CreationDate="2010-09-14T12:13:19.697" Score="7" ViewCount="365" Body="&lt;p&gt;As far as I know most startups don't advertise positions and usually don't want to use recruitment agents due to the fees involved.  What's the best way for a programmer to get involved with a startup?&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-14T16:29:46.580" Title="How do you get involved with a Startup?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;employment&gt;&lt;startups&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="3" />
  <row Id="3525" PostTypeId="2" ParentId="3519" CreationDate="2010-09-14T12:21:02.540" Score="3" ViewCount="" Body="&lt;p&gt;I haven't yet found a book that helped me much in learning a new language. Kent Beck's &quot;Smalltalk Best Practice Patterns&quot; comes close, but I could already muddle my way through writing something (in Smalltalk, I mean) by the time I read it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first rule is JFDI. Think of some application, toy, problem, whatever - something manageable, of course, and so reasonably simple/small - and try write it. You'll constantly run into &quot;but how do I... ?&quot; questions, which I at least find to be the best way of learning anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So then how do you answer those questions? Go lurk in that language's community. Read their documentation. Read the backlogs for their &lt;a href=&quot;http://lists.squeakfoundation.org/pipermail/beginners/&quot; rel=&quot;nofollow&quot;&gt;mailing lists&lt;/a&gt;. Chat on their &lt;a href=&quot;http://www.cliki.net/IRC&quot; rel=&quot;nofollow&quot;&gt;IRC channels&lt;/a&gt;. You'll soon figure out who the alphas are. Read their blogs. Pay attention to what the experienced practitioners say, and be prepared to be wrong.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-09-14T12:36:52.957" LastActivityDate="2010-09-14T12:36:52.957" />
  <row Id="3526" PostTypeId="2" ParentId="893" CreationDate="2010-09-14T12:29:55.273" Score="6" ViewCount="" Body="&lt;p&gt;Grad school after a few years of working, good idea - immediately after your Bachelors degree, not so good. Remember if I'm hiring at entry level for a typical entry level job, I neither need nor want someone with a Masters who willcost more than the same person with a BS. But when I'm hiring senior people,the Master's is helpful. But I don't hire senior people with no professional work experience. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-14T12:29:55.273" />
  <row Id="3528" PostTypeId="2" ParentId="3524" CreationDate="2010-09-14T12:37:24.193" Score="3" ViewCount="" Body="&lt;p&gt;Based on past experience I would say that startups need to and will keep a close eye on their cashflow until business picks up; I would imagine that they will only invest in more skilled programmers if the core business depended more heavily around it, otherwise most startups will look for programmers via a 'friend's recommendation' and/or fresh graduates that should keep the costs as low as possible...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just my 2 cents :P&lt;/p&gt;&#xA;" OwnerUserId="1734" LastActivityDate="2010-09-14T12:37:24.193" />
  <row Id="3529" PostTypeId="2" ParentId="3256" CreationDate="2010-09-14T12:45:58.777" Score="0" ViewCount="" Body="&lt;p&gt;Remove employees' contact information from the website, so headhunters couldn't find them.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-14T12:45:58.777" />
  <row Id="3530" PostTypeId="2" ParentId="3256" CreationDate="2010-09-14T12:46:25.357" Score="0" ViewCount="" Body="&lt;p&gt;Make consultants sign a contract that not only will they not hire me, but they will not help me get another job.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-14T12:46:25.357" />
  <row Id="3531" PostTypeId="2" ParentId="3256" CreationDate="2010-09-14T12:46:42.270" Score="0" ViewCount="" Body="&lt;p&gt;Make me sign a non-compete so I couldn't work for any competitor on a list of those that used the same software as we did.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-14T12:46:42.270" CommentCount="2" />
  <row Id="3532" PostTypeId="2" ParentId="1701" CreationDate="2010-09-14T12:47:09.770" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321193679&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Professional Software Development&lt;/strong&gt; -- Steve McConnell&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This book is aimed at everyone in the software field, especially programmers and software engineers. It specifically discusses advancing the profession of software engineering at all levels - individual, organization, and industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This book is an expansion upon another book, also by Steve McConnell, After the Gold Rush.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-09-14T12:47:09.770" />
  <row Id="3534" PostTypeId="2" ParentId="2935" CreationDate="2010-09-14T12:53:45.480" Score="1" ViewCount="" Body="&lt;p&gt;I had a few programming courses in college. I started in operations and support at various companies and I wanted to make my job easier, so I tried to write my own apps. At some places (public schools) we couldn't afford software. Finally, I'm doing it full-time.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-14T12:53:45.480" />
  <row Id="3535" PostTypeId="1" AcceptedAnswerId="3560" CreationDate="2010-09-14T12:58:32.937" Score="18" ViewCount="313" Body="&lt;p&gt;I'm talking about those agreements that if you leave a company you can't work for their competitors for X amount of time. This as a definition sounds vague to me. If a company has multiple divisions, only one of which is in direct competition with your company, are they still competitors that you can't work for, even if under a different division? What if the product &quot;competes&quot; only via a subset of its features (in that it's the same type of technology)? For example, is Windows Media Center in competition with iTunes? If I worked on the iTunes library management feature can I work on Media Center's library management? How long is reasonable? When should a non-compete not be required, and asking for one is unreasonable? &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-12-16T17:20:37.063" Title="Non-compete agreements. When are they reasonable, and how encompassing should they be?" Tags="&lt;career&gt;&lt;employment&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="1" />
  <row Id="3537" PostTypeId="2" ParentId="3363" CreationDate="2010-09-14T13:04:23.657" Score="1" ViewCount="" Body="&lt;p&gt;This was next to some pretty horrific code in a project I've started working on:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// Legacy code for legacy reasons...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The product hadn't even shipped, there was no legacy code this was version 0.1...&lt;/p&gt;&#xA;" OwnerUserId="1732" LastActivityDate="2010-09-14T13:04:23.657" CommunityOwnedDate="2010-09-14T13:04:23.657" />
  <row Id="3538" PostTypeId="2" ParentId="3524" CreationDate="2010-09-14T13:06:02.457" Score="10" ViewCount="" Body="&lt;p&gt;Typically you need to make yourself known in your community.  Go to user groups, attend conferences, and network socially to make more contacts.  I've talked with several start ups around my area because of the contacts I've made through my local user groups.  Most of the time it's been from an independent consultant who was busy on their current project, but knew my knowledge might fit their need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So basically don't be a stereotypical programmer by having a better relationship with computers than with people.&lt;/p&gt;&#xA;" OwnerUserId="62" LastActivityDate="2010-09-14T13:06:02.457" />
  <row Id="3539" PostTypeId="2" ParentId="1360" CreationDate="2010-09-14T13:07:10.440" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Creating something you're proud of and is considered important to your company.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Too many times we're looked at as an expense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When problems/questions come up, I keep thinking about them until I come up with an answer; kind of a compulsion. Then I'm like the cat that likes to brag by dropping the dead mouse on your doorstep.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to see my head explode, tell me there is a new project that is coming up, but don't worry/do anything about it until next year.&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2010-09-20T15:29:17.677" LastActivityDate="2010-09-20T15:29:17.677" />
  <row Id="3540" PostTypeId="2" ParentId="3282" CreationDate="2010-09-14T13:10:33.093" Score="2" ViewCount="" Body="&lt;p&gt;I once had to work on a legacy in-house developed content-management system that was based on Classic ASP, VBScript, HTML3 and used MS Access for the back-end database. All of the code was mixed in with the HTML and it was highly dependent on magic-numbers, hard-coded values and other such constructs. To give you a flavour of the code, here's just part of the &quot;function&quot; that works out what intro text to display for a page:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if intCategoryId=2 and intSubCatId=0 then strSubCatName = strCatName&#xA;If intCategoryID = 2 AND intSubCatID = 53 Then strCatName = &quot;Training &amp;amp;amp; Conferences Introduction&quot;&#xA;&#xA;intSubCatID = Request(&quot;cat&quot;)&#xA;If IsNumeric(intSubCatID) Then&#xA;    intSubCatID = cint(intSubCatID)&#xA;Else&#xA;    intSubCatID = 0&#xA;End If&#xA;&#xA;If catName = &quot;Download&quot; and intCategoryId = 1 Then&#xA;    strCatName = &quot;Download&quot;&#xA;    strSubCatName = &quot;&quot;&#xA;    strArticleName = &quot;&quot;&#xA;End If&#xA;&#xA;if intCategoryId=5 and catName=&quot;meeting&quot; Then strSubCatName = &quot;Regional Event&quot;&#xA;if intCategoryId=5 and session(&quot;membername&quot;) = &quot;&quot; and catName &amp;lt;&amp;gt; &quot;register&quot; then Response.Redirect &quot;index.asp&quot;&#xA;&#xA;If len(trim(CatName)) &amp;gt; 0 then&#xA;    If CatName = &quot;Links&quot; then&#xA;        If intCategoryId = 1 or intCategoryId = 5 Then&#xA;            strIntroText = objMain.GetIntroText(strConn,intCategoryId,intSubCatId)&#xA;        else&#xA;            strIntroText = objMain.GetIntroText(strConn,intCategoryId,strSubCatName)&#xA;        end if&#xA;    Else&#xA;        if intCategoryId = 1 or intCategoryId = 5 or intCategoryId = 2 then&#xA;            strIntroText = objMain.GetIntroText(strConn,intCategoryId,CatName)&#xA;        else            &#xA;            strIntroText = objMain.GetIntroText(strConn,0,CatName)&#xA;        end if&#xA;    End If&#xA;Else&#xA;    strIntroText = objMain.GetIntroText(strConn,intCategoryId,intSubCatId)&#xA;End If&#xA;&#xA;strintrotext = replace(strIntroText, &quot;&amp;lt;FONT size=2&amp;gt;&quot;, &quot;&quot;, 1)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I think this speaks for itself...&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-14T13:10:33.093" CommunityOwnedDate="2011-01-14T18:11:43.393" />
  <row Id="3541" PostTypeId="2" ParentId="3524" CreationDate="2010-09-14T13:13:08.553" Score="0" ViewCount="" Body="&lt;p&gt;There's a site for that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.startuply.com/&quot; rel=&quot;nofollow&quot;&gt;Startuply&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-14T13:13:08.553" />
  <row Id="3543" PostTypeId="2" ParentId="3524" CreationDate="2010-09-14T13:13:27.720" Score="0" ViewCount="" Body="&lt;p&gt;Well, you could always do the unthinkable and Google some, then ask if they need any help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that, some of the best hot-beds for startup companies is local universities. Many startup companies in Bristol love to scout out cheap work from recent interns and graduates. The two universities in Bristol even host many startups that have originated from academic research or undergraduate projects. If you have attended university get in touch with your faculty, state that you once studied there and ask if they know of any startups that have originated from the university.&lt;/p&gt;&#xA;" OwnerUserId="1037" LastActivityDate="2010-09-14T13:13:27.720" />
  <row Id="3544" PostTypeId="2" ParentId="3524" CreationDate="2010-09-14T13:13:46.847" Score="3" ViewCount="" Body="&lt;p&gt;Finding a good startup is going to be all about good timing, who you know and a bit of luck.  I joined a startup a number of years ago that was started by someone I know first hand.  We brought other people in through our network of friends, family and professional contacts.  It's really going to be all about knowing the right person at the right time and place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just a bit of advice... Joining a startup can be fairly risky if it is your sole means of income.  Most startups are always hard pressed for cash and can take years to be in a good financial posistion.  Part of what we did was to work at our primary jobs during the day and work on the startup at night and weekends.  We were also fortunate to have all the people we ask to join agree to work without pay for a year in return for a percentage of the company.  It really allowed us to grow &quot;the right way&quot; with minimal financial worry.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-09-14T13:40:46.397" LastActivityDate="2010-09-14T13:40:46.397" />
  <row Id="3545" PostTypeId="2" ParentId="3233" CreationDate="2010-09-14T13:23:05.253" Score="2" ViewCount="" Body="&lt;p&gt;Because good software tools need some time to develop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you start your project and are aware that no one would pay for it, as it is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you give it away for free people might start using it, provide feedback and free testing, development ideas, etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, if all goes well you can create a non-free version and sell it.&lt;/p&gt;&#xA;" OwnerUserId="1739" LastActivityDate="2010-09-14T13:23:05.253" CommunityOwnedDate="2010-10-02T03:46:51.680" />
  <row Id="3546" PostTypeId="2" ParentId="3524" CreationDate="2010-09-14T13:25:41.630" Score="0" ViewCount="" Body="&lt;p&gt;There is a great site that helps designers and developers get together on startup projects.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.builditwith.me/&quot; rel=&quot;nofollow&quot;&gt;BuiltwithMe&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="93" LastActivityDate="2010-09-14T13:25:41.630" />
  <row Id="3547" PostTypeId="2" ParentId="2130" CreationDate="2010-09-14T13:36:51.290" Score="8" ViewCount="" Body="&lt;p&gt;It seems the advice so far has been overwhelming negative towards big companies.  While I agree with many of the points, let me try to articulate some opposing views.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Ability to be a part of making standards&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Working for a large company provides the ability to participate and direct industry standards.  Sure, small companies and individuals can revolutionize technologies, but more often than not, it’s the large companies that sit on standards committees.  These august bodies can decide how millions of people interact with technologies.  How exciting to be a part of that process.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Greater reach&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Again, there are exceptions, but the large companies tend to have greater reach.  If you work on a feature in Internet Explorer, you know millions of people will be using it.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Specialization&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;In larger companies, specialization is rampant.  You can’t figure out how to write the terms of service for your software? Don’t worry; that’s Legal’s problem.  The toilet is dirty from months of use? Get Building Services on that.  If you enjoy a particular aspect of your job, you may have the opportunity to just do that.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Recognition&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;When you tell strangers you work for Interslice, you have to quickly follow up with a description of what Interslice does and sells, etc.  When you say IBM, that’s pretty much all that needs to be said.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Exceptions&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The beauty of working in this field is that these points aren’t necessarily true.  There are examples of small companies that can provide the above.  However, I would say that these small companies, in time, will either become large (at least in mentality) or be acquired by large companies.&lt;/p&gt;&#xA;" OwnerUserId="1622" LastActivityDate="2010-09-14T13:36:51.290" CommentCount="4" />
  <row Id="3548" PostTypeId="2" ParentId="2051" CreationDate="2010-09-14T13:40:41.483" Score="4" ViewCount="" Body="&lt;p&gt;The last company that I worked for (and went bust) got a few bad reviews of the product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the decision was made by the upper management not to fix the problems but instead rebrand the product and relaunch it. Bugs included.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing that made it really hard to stomach was the fact that the rebranding consisted of nothing more than a name change, which meant about 3 image swap-outs within the app and a few string replacements. The app looked the same, behaved the same, crashed the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can't say I'm surprised the company didn't last.&lt;/p&gt;&#xA;" OwnerUserId="1732" LastActivityDate="2010-09-14T13:40:41.483" CommunityOwnedDate="2010-09-14T13:40:41.483" />
  <row Id="3549" PostTypeId="2" ParentId="3488" CreationDate="2010-09-14T13:42:11.263" Score="3" ViewCount="" Body="&lt;p&gt;After you're out of the industry for a few years you don't even really need to mention your GPA if your CV has solid experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People care about the projects you worked on and where you worked on - not if you struggled in some General Elective courses during undergrad that knocked your GPA down.  I care if you can code, not what you learned in Geo Sci 101 (Rocks for Jocks) and Poly Sci 110 (Lets talk about communism)&lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-09-14T13:42:11.263" />
  <row Id="3550" PostTypeId="2" ParentId="3488" CreationDate="2010-09-14T13:43:03.943" Score="10" ViewCount="" Body="&lt;p&gt;I've never been asked nor have I ever provided my grades.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-14T13:43:03.943" CommentCount="1" />
  <row Id="3551" PostTypeId="2" ParentId="2935" CreationDate="2010-09-14T13:45:39.863" Score="6" ViewCount="" Body="&lt;p&gt;At an early age I realized I was uncoordinated , clumsy and a bit quiet.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dad come home with a Packard Bell 386 with the Turbo button and I played that stupid game with the monkey throwing bananas.  After opening the program in BASIC and messing around I was hooked.  Next thing you knew gravity was changing, speeds were changing , the whole bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I couldn't hit a baseball, I couldn't drain a three-pointer from the top of the key, but I sure as you know what could hold my own on the computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh and then I realized I'm lazy and this is the only thing I could do without going crazy.  Because when your job is your passion it's not really work&lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-09-14T13:45:39.863" CommentCount="3" />
  <row Id="3552" PostTypeId="2" ParentId="3363" CreationDate="2010-09-14T13:46:59.817" Score="3" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;int timeout = pMsg-&amp;gt;GetTimeout(); &#xA;&#xA;if (timeout != 66) // you've got to be kidding me.&#xA;{&#xA;    // ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="905" LastEditorUserId="6440" LastEditorDisplayName="" LastEditDate="2011-03-31T00:47:34.667" LastActivityDate="2011-03-31T00:47:34.667" CommunityOwnedDate="2010-09-14T13:46:59.817" CommentCount="1" />
  <row Id="3555" PostTypeId="2" ParentId="3282" CreationDate="2010-09-14T13:54:05.560" Score="3" ViewCount="" Body="&lt;p&gt;I have quite a few examples of this, but I would have to say the scariest one I've ever had to maintain (read that as fix) was the web client I'm currently working on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The whole reason I was hired here was to fix this webclient. Every day I find new and exciting code horrors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To give you some idea of the magnitude of how bad the code is, let me tell you that the bulk of the code was written by co-op students that had no web development experience what-so-ever. What wasn't written by unsupervised newby co-ops, was written by two people who were fired because their code was so bad that it was eating hours on fixing it. Both were sent to webclient limbo before they were fired, because it would cause the least impact on the overall code base. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The one biggest error I've seen in this web client's codebase is the blatant misuse of the word Cache. Cache is used everywhere...most times when it is Session they want. Search results? Cached. Reports? Cached. User permissions? Cached. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's worse are the hacks that have been written to kinda make the Cache behave like the Session. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've fixed all of those. Every page I touch I try to leave it in better shape than it was. Rewrite a procedure here. Clean up a method there. If it can't be saved, scrap the page and start fresh. If nothing else, this code base will keep me employeed for a few more years atleast ;)&lt;/p&gt;&#xA;" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-16T16:47:47.107" LastActivityDate="2010-12-16T16:47:47.107" CommunityOwnedDate="2011-01-14T18:11:43.393" />
  <row Id="3556" PostTypeId="2" ParentId="2935" CreationDate="2010-09-14T14:08:14.153" Score="1" ViewCount="" Body="&lt;p&gt;I feel like it was just meant to be.  I was 5 years old when my brother and I were given a Ti-99 and a few cartridges, along with a BASIC programming book.  A year later, the Commodore 64 arrived with more BASIC books.  We spent a lot of time typing in programs from books and magazines.  Sometimes the programs worked, sometimes they didn't.  The experience of trying to fix the broken ones, or find the mistakes we made during entry, made me a programmer.  Eventually we started making our own programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;10+ languages and 26 years later, and looking back all I can say is that I love having the capability to dictate instructions to a computer rather than just use one.&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-09-14T14:08:14.153" />
  <row Id="3557" PostTypeId="2" ParentId="3488" CreationDate="2010-09-14T14:10:34.367" Score="3" ViewCount="" Body="&lt;p&gt;The only time I was ever asked for my grades was right out of school when I had no experience. Another time I was asked from a transcript, not becasue they wanted to check my grades but to make sure I had actually graduated. Really if you get the degree the gpa is meaningless except for applying to grad school (and not even so much  then if you wait a few years). If you havea poor GPA, just put the degree and the Unviersity on your resume not the GPA. Many companies won't bother to ask. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-14T14:10:34.367" />
  <row Id="3558" PostTypeId="1" AcceptedAnswerId="3563" CreationDate="2010-09-14T14:11:51.467" Score="56" ViewCount="1857" Body="&lt;p&gt;At some point in time, I just stopped coding for fun.  I used to go to work, finish my assignments and then upon arriving home I'd go and write stuff on the side for fun.  However, I now just go home and try to avoid the computer.  I'd rather read the paper, watch TV, go out to the bar, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this a bad sign?  I mean I still try to keep up on the latest trends, hit up the developer forums/blogs/etc but I haven't said, &quot;I want to learn language X - I wonder if I could write app Y in it&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has this happened to anyone else?&lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-11-09T22:32:04.310" Title="I've stopped coding for fun, is this a bad sign?" Tags="&lt;career&gt;" AnswerCount="16" CommentCount="5" FavoriteCount="18" />
  <row Id="3559" PostTypeId="2" ParentId="3282" CreationDate="2010-09-14T14:13:13.323" Score="2" ViewCount="" Body="&lt;p&gt;This is a small chunk of a monstrous VB6 app. &lt;em&gt;(I refactored this into 1 simple stored proc.)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;'Figure Tax Rate and Totals&#xA;'If we are not viewing or printed a previously created invoice, these will need to be calculated&#xA;If mstrCommand &amp;lt;&amp;gt; &quot;PrintInv&quot; And mstrCommand &amp;lt;&amp;gt; &quot;DownloadInv&quot; And mstrCommand &amp;lt;&amp;gt; &quot;View&quot; And mstrCommand &amp;lt;&amp;gt; &quot;Rollup&quot; Then&#xA;    'Figure Tax Rate First&#xA;    query = &quot;select startdt, enddt from inv_taxcust where billto in (select dbo.trim(c.custacctnum) custacctnum from customer c, caseinfo ci where ci.caseid=&quot; &amp;amp; mCaseId &amp;amp; &quot; and ci.billtoid = c.custid) and shipto in (select dbo.trim(ce.empacctnum) empacctnum from cust_employer ce, caseinfo ci where ci.caseid=&quot; &amp;amp; mCaseId &amp;amp; &quot; and ci.empid = ce.custid) and startdt &amp;lt; dbo.mdy(&quot; &amp;amp; Format(Now + 1, &quot;mm,dd,yyyy&quot;) &amp;amp; &quot;) and (enddt &amp;gt; dbo.mdy(&quot; &amp;amp; Format(Now - 1, &quot;mm,dd,yyyy&quot;) &amp;amp; &quot;) or enddt is null) and stateval like '%' +'&quot; &amp;amp; branstcd &amp;amp; &quot;'+ '%'&quot;&#xA;    Set rs = cn.Execute(query, , adCmdText)&#xA;    If rs.EOF Then&#xA;        'First, look for tax rate by checking branch's zipcode&#xA;        query = &quot;select rate from taxrates where zipcd = (select zipcd from location where locatid = (select locatid from branch where branchid = (select branchid from caseinfo where caseid=&quot; &amp;amp; mCaseId &amp;amp; &quot;)))&quot;&#xA;        Set rs2 = cn.Execute(query, , adCmdText)&#xA;        If Not rs2.EOF Then&#xA;            mxmlApp.SetNode mControlNode, &quot;taxrate&quot;, CStr(rs2.fields(0))&#xA;            rs2.Close&#xA;        Else 'If zipcode doesn't match, then check by state (where zipcode is null)&#xA;            rs2.Close&#xA;            query = &quot;select rate from taxrates where (zipcd is null Or zipcd = '') And statecd = (select statecd from location where locatid = (select locatid from branch where branchid = (select branchid from caseinfo where caseid=&quot; &amp;amp; mCaseId &amp;amp; &quot;)))&quot;&#xA;            rs2.Open query, cn, , , adCmdText&#xA;            If Not rs2.EOF Then&#xA;                mxmlApp.SetNode mControlNode, &quot;taxrate&quot;, CStr(rs2.fields(0))&#xA;                rs2.Close&#xA;            Else&#xA;                rs2.Close&#xA;            End If&#xA;        End If&#xA;        Set rs2 = Nothing&#xA;    End If&#xA;    rs.Close&#xA;    Set rs = Nothing&#xA;&#xA;    mxmlApp.SetNode mControlNode, &quot;amountbt&quot;, CStr(amount_bt)&#xA;    mxmlApp.SetNode mControlNode, &quot;amount&quot;, CStr(Round(amount_bt * (1 + mxmlApp.GetNodeValue(mControlNode, &quot;taxrate&quot;)), 2))&#xA;Else&#xA;    Set rs = cn.Execute(&quot;select amount, amountbt,IsNull(convert(varchar,taxrate),'NULL') taxrate from inv_billinv where invid = &quot; &amp;amp; minvid, , adCmdText)&#xA;    mxmlApp.SetNode mControlNode, &quot;amountbt&quot;, rs.fields(&quot;amountbt&quot;)&#xA;    mxmlApp.SetNode mControlNode, &quot;amount&quot;, rs.fields(&quot;amount&quot;)&#xA;    'We need to cstr the taxrate so value less than zero don't get rounded to zero. Null values can not be Cstr however&#xA;    mxmlApp.SetNode mControlNode, &quot;taxrate&quot;, IIf(IsNull(rs.fields(&quot;taxrate&quot;)), Null, CStr(rs.fields(&quot;taxrate&quot;)))&#xA;    rs.Close&#xA;    Set rs = Nothing&#xA;End If&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-14T14:13:13.323" CommunityOwnedDate="2011-01-14T18:11:43.393" CommentCount="2" />
  <row Id="3560" PostTypeId="2" ParentId="3535" CreationDate="2010-09-14T14:14:12.963" Score="13" ViewCount="" Body="&lt;p&gt;My subjective two cents is that these agreements are 99% worthless.  The 1% is all that matters though.  There are cases where a company will try to enforce it, if they feel threatened.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the Itunes/WMP example, if they believed that your knowledge and participation on iTunes was significant enough, then that agreement could be very powerful.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From what I understand, most of these cases fall in favor of the defendant.  You can't prevent someone from working in their field, and the burden of proof is on the claimant to show a real loss or breach of confidentiality.  They can waste a lot of your time and money in defense fees, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A year is fair, in my opinion..  It's basically just a veiled threat to keep you from shopping your intimate insider knowledge to competitors.  &lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-09-14T14:14:12.963" />
  <row Id="3563" PostTypeId="2" ParentId="3558" CreationDate="2010-09-14T14:18:52.733" Score="36" ViewCount="" Body="&lt;p&gt;This is a very common issue called burn-out. It happens to everyone that takes their work seriously. My advice is to take a few weeks off from coding and plan a long term project for fun. Then set aside at least 15 minutes each night to complete a part of the project. As long as you take it slow you'll be back in the game in no time.&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-14T14:18:52.733" CommentCount="5" />
  <row Id="3564" PostTypeId="2" ParentId="3558" CreationDate="2010-09-14T14:22:13.050" Score="19" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Has this happened to anyone else?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No! You're the first!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, come on, it's a natural thing!  Growing, people start having a lot of problems to handle: kids, parents, finances, family.  Solving each of them requires brain activity.  And brains just tend to get tired (and with age increase they are tired more easily). So after work and all this stuff you may just not have might to devote yourself to such a brain-intensive activity as coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I actually experience this many times.  When I had a lot personal problems, I couldn't find power to do coding in my free time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And perhaps you just love it less than you used to.  You don't become a worse coder  because of that.  And chances are high that some day you'll feel that you want to code for fun again.&lt;/p&gt;&#xA;" OwnerUserId="34" LastEditorUserId="34" LastEditorDisplayName="" LastEditDate="2010-09-14T14:28:15.563" LastActivityDate="2010-09-14T14:28:15.563" CommentCount="6" />
  <row Id="3565" PostTypeId="2" ParentId="3558" CreationDate="2010-09-14T14:24:12.433" Score="1" ViewCount="" Body="&lt;p&gt;Yeah, it happened to me 6 years ago, and I'm finally just getting back to coding for fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about it, has anything else changed?  My change was related to a short stint taking an anti-anxiety medication in 2004.  I only took them for 2 months, but it changed my personality and motivation levels in a severe way.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure you'll be fine either way, but if I could go do it again, I would have worked harder to motivate myself to keep programming for hobbies-sake.&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-09-14T14:24:12.433" />
  <row Id="3566" PostTypeId="2" ParentId="3524" CreationDate="2010-09-14T14:25:25.010" Score="0" ViewCount="" Body="&lt;p&gt;I saw a considerable amount of startup-related recruitment in the web board of our university.  I suppose that communities that gather around universities play a significant role in forming startups.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-14T14:25:25.010" />
  <row Id="3567" PostTypeId="2" ParentId="3450" CreationDate="2010-09-14T14:26:22.607" Score="0" ViewCount="" Body="&lt;p&gt;I just wanted to add that I am a fan of AShelly's approach (though I can't upvote or comment yet).  Hoa Long Tam's isn't bad either, and might actually be better for clearly showing at the start of each line (where your eyes more naturally fall) that this is a continued, unbroken IF statement.&lt;/p&gt;&#xA;" OwnerUserId="1071" LastActivityDate="2010-09-14T14:26:22.607" />
  <row Id="3568" PostTypeId="2" ParentId="1319" CreationDate="2010-09-14T14:29:08.353" Score="7" ViewCount="" Body="&lt;p&gt;@Brian R. Bondy coverned a lot of what I ask.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like to get a walk through the spaces. You can tell alot about a company from seeing how people interact with each other as you walk through. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I ask about the corporate culture - I want a feel for how bureaucratic and structured the place is. I have found through the years that too unstructured is worse than too bureaucratic. Too often they aren't really serious about producing a product to make money with and will go down the tubes. I want to work with people who want to work, not play. I want to knwo if I will be working with people as part of a team or if I will mostly be working on projects by myself. I want to see how the position fits into the org structure and if there is room for growth. I want to know what interesting challenges the position will bring, not interested in doing rote work. If I can't learn something new and interesting in a job, it's not for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having been burned once, I ask about expected overtime, making it clear, I don't object to working overtime for a deadline, but am not interested in working overtime as a way of life. Better to know up front.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-14T14:29:08.353" />
  <row Id="3569" PostTypeId="2" ParentId="3440" CreationDate="2010-09-14T14:32:26.363" Score="2" ViewCount="" Body="&lt;p&gt;It's tough in a technical field because, we're expected to have all the answers. If your app crashes, you don't respond with, &quot;What do you think caused the connection to fail? I value you as a child-of-the-world, and want to encourage you to voice your opinion in a non-judgmental space.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In technical circles, if I think I'm right, I say so. If you prove me wrong, great, I like to learn and a little debate is one way to do it. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-14T14:32:26.363" />
  <row Id="3570" PostTypeId="2" ParentId="3558" CreationDate="2010-09-14T14:33:28.997" Score="8" ViewCount="" Body="&lt;p&gt;I see this as healthy and good. You want to have a life outside of work. That will make you better at your job not worse.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-14T14:33:28.997" />
  <row Id="3571" PostTypeId="2" ParentId="3282" CreationDate="2010-09-14T14:34:24.887" Score="1" ViewCount="" Body="&lt;p&gt;I don't have the code accessible, but it was in the massive VB5 &quot;translator&quot; services (moving/mangling between databases) that I had to maintain.  The top of each function contained a dozen lines of DIM statements, multiple dims each line, none with any clear names, all scoped for the entire function.  The functions themselves were often hundreds and hundreds of lines of DEEPLY nested if statements (often half the function was encased in a giant if statement).  I've never had to scroll to the right so far to read code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These were ad hoc programs that became the core of the business.  Oh, and no one had any of the business rules written down.  Anywhere.  Only one person actually knew the rules.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There were some nice people at that company, but the software situation was horrendous, and no one wanted to fix it (too risky!).  I just couldn't keep going and had to leave.&lt;/p&gt;&#xA;" OwnerUserId="1071" LastActivityDate="2010-09-14T14:34:24.887" CommunityOwnedDate="2011-01-14T18:11:43.393" />
  <row Id="3572" PostTypeId="2" ParentId="3558" CreationDate="2010-09-14T14:36:19.963" Score="10" ViewCount="" Body="&lt;p&gt;I'm going to throw out an alternative version. Maybe you're actually working on something that is challenging and exhausting. I start coding for fun when I'm at the end of a project and just wrapping things up. If I get a new project where I have to stretch my skills (not that hard to do), I find that fun and see no need to work on anything else.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-14T14:36:19.963" CommentCount="1" />
  <row Id="3573" PostTypeId="2" ParentId="3558" CreationDate="2010-09-14T14:42:03.047" Score="13" ViewCount="" Body="&lt;p&gt;It happened to me many times.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;First cause&lt;/strong&gt;: too much work at office&lt;br&gt;&#xA;&lt;strong&gt;Second cause&lt;/strong&gt;: too much work at side projects (late at night)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Cure&lt;/strong&gt;:&#xA;I usually cut off pet projects, programming books and everything related to IT replacing them with movies, TVseries, videogames, relaxing books and a lot of fitness (running).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Effects&lt;/strong&gt;:In a couple of weeks or less, I'm ready again for my Programming activities outside the Job's scope.&lt;/p&gt;&#xA;" OwnerUserId="74" LastEditorUserId="74" LastEditorDisplayName="" LastEditDate="2010-09-16T18:10:26.150" LastActivityDate="2010-09-16T18:10:26.150" CommentCount="5" />
  <row Id="3574" PostTypeId="2" ParentId="3558" CreationDate="2010-09-14T14:43:15.837" Score="13" ViewCount="" Body="&lt;p&gt;I've almost never coded in my free time (not since just after college), but I still love software development.  Keep work at work and enjoy home a bit more.  At the end of your life, you won't think, &quot;gee, I wish I'd spent more time at work...&quot;&lt;/p&gt;&#xA;" OwnerUserId="1071" LastActivityDate="2010-09-14T14:43:15.837" />
  <row Id="3575" PostTypeId="2" ParentId="3488" CreationDate="2010-09-14T14:44:27.173" Score="6" ViewCount="" Body="&lt;p&gt;You don't want to work in a place where developers are hired based on marks. This is a clear indicator, that decisions are made by people who clearly have no idea how to determine, whether a developer is worth hiring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Grades do not reflect skill, they only indicate, that someone was good at their exams, which usually only requires the skill to learn to say what others want to hear from you. You want to work in a place, where people require other skills of you, otherwise you will stall and become very frustrated.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-09-14T14:44:27.173" />
  <row Id="3576" PostTypeId="2" ParentId="1006" CreationDate="2010-09-14T14:48:08.050" Score="3" ViewCount="" Body="&lt;p&gt;Mainly, if I can just get started, I can ramp up pretty easily. I may look at SO for a few minutes or review some old code and scream &quot;Who wrote this crap!&quot; Then I realize it was me and I get back on the project.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-14T14:48:08.050" />
  <row Id="3578" PostTypeId="2" ParentId="3282" CreationDate="2010-09-14T15:13:16.920" Score="11" ViewCount="" Body="&lt;p&gt;I once found this monster in our code base. Yes, there is a variable named &quot;the_list&quot;.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (the_list[0].Unit1 != null)&#xA;{&#xA;    start_time = the_list[0].Times[0][0].AddSeconds(chart_info.Series_Offset.Start[0]);&#xA;&#xA;    stop_time = the_list[0].Times[0].Length &amp;gt; 1 ? the_list[0].Times[the_list[0].Times.Length - 1][the_list[0].Times[the_list[0].Times.Length - 1].Length - 1].AddSeconds(chart_info.Series_Offset.Start[0] + ((chart_info.Series_Offset.End[0] - chart_info.Series_Offset.Start[0]) / (ArrayLength(the_list[0].Times) - 1)) * (ArrayLength(the_list[0].Times) - 1))&#xA;: the_list[0].Times[the_list[0].Times.Length - 1][the_list[0].Times[the_list[0].Times.Length - 1].Length - 1].AddSeconds(chart_info.Series_Offset.Start[0] + ((chart_info.Series_Offset.End[0] - chart_info.Series_Offset.Start[0]) / (ArrayLength(the_list[0].Times))) * (ArrayLength(the_list[0].Times) - 1));&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1762" LastActivityDate="2010-09-14T15:13:16.920" CommunityOwnedDate="2011-01-14T18:11:43.393" CommentCount="1" />
  <row Id="3579" PostTypeId="2" ParentId="1006" CreationDate="2010-09-14T15:15:39.287" Score="7" ViewCount="" Body="&lt;p&gt;Work on a blog article.  Really, there's nothing more inspiring for your own, part-time projects than typing out an idea in a blog and then trying to implement it.  Sometimes it only has to be a small snippet like idea but eventually you'll feel like you've accomplished something.  I find that half of my &quot;can't concentrate&quot; is due to my feelings of not accomplishing anything.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-14T15:15:39.287" CommentCount="1" />
  <row Id="3580" PostTypeId="2" ParentId="502" CreationDate="2010-09-14T15:21:03.107" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Hello World&lt;/li&gt;&#xA;&lt;li&gt;RSS Reader (This one usually hits a lot of the high points without having to worry about storage or having a data source...feeds are everywhere)&lt;/li&gt;&#xA;&lt;li&gt;Blog Engine (Now I bring in data persistence, since I have everything else down.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-14T15:21:03.107" CommunityOwnedDate="2010-09-14T15:21:03.107" CommentCount="2" />
  <row Id="3584" PostTypeId="2" ParentId="2130" CreationDate="2010-09-14T15:27:40.460" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Cash Flow&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having just abandoned a medium-large sized hardware company to join a software startup I'll add to list with something that hasn't been said already: cash flow is a big difference. In my Previous Life if I wanted a tool, some hardware, a new monitor or four it wasn't hard to to get. I asked and it just magically showed up the next day. At the startup every bit of spend needs to pass the &quot;Do we really, really, really, really need it? Really? Like seriously do we really freaking need this?&quot; scrutiny test.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And you'd be surprised how many things don't hold up to that test.&lt;/p&gt;&#xA;" OwnerUserId="762" LastActivityDate="2010-09-14T15:27:40.460" CommunityOwnedDate="2010-09-14T15:27:40.460" CommentCount="1" />
  <row Id="3586" PostTypeId="2" ParentId="3363" CreationDate="2010-09-14T15:31:47.227" Score="6" ViewCount="" Body="&lt;p&gt;// Comments: See below&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About 2000 lines later...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;// Comments: See above&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Repeat for 50+ code modules. &lt;/p&gt;&#xA;" LastActivityDate="2010-09-14T15:31:47.227" CommunityOwnedDate="2010-09-14T15:31:47.227" />
  <row Id="3587" PostTypeId="2" ParentId="1877" CreationDate="2010-09-14T15:33:05.973" Score="2" ViewCount="" Body="&lt;p&gt;Most people can only hold about seven distinct pieces of information in the brain at once. If using a UI requires more than thinking about, remembering and manipulating more than at once it's too busy. I think you can display more than that, but try and group them in separate &quot;islands&quot; that keep related elements down to about a 1/2 dozen or so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2006/08/the-magical-number-seven-plus-or-minus-two.html&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/2006/08/the-magical-number-seven-plus-or-minus-two.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1763" LastActivityDate="2010-09-14T15:33:05.973" />
  <row Id="3590" PostTypeId="1" CreationDate="2010-09-14T15:45:20.760" Score="4" ViewCount="303" Body="&lt;p&gt;Lots of folks say it's important to keep connected to the internet to help sharpen your skills and do the whole &quot;interacting with people&quot; thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Others say it's all interruptions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you leave any social streams up while you work? Campfire? IM? Just check them out while compiles and deployments are done? Are the productivity losses worth an occasional golden link that teaches you something new?&lt;/p&gt;&#xA;" OwnerUserId="1596" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-28T16:36:48.350" LastActivityDate="2010-11-28T16:55:01.103" Title="Should you leave IM / Twitter / Facebook / (insert social app here) open while you work?" Tags="&lt;productivity&gt;&lt;work&gt;&lt;social-networks&gt;" AnswerCount="9" FavoriteCount="1" />
  <row Id="3593" PostTypeId="2" ParentId="3519" CreationDate="2010-09-14T15:52:59.953" Score="2" ViewCount="" Body="&lt;p&gt;There is one book I really enjoy. It is called &lt;a href=&quot;http://pragprog.com/titles/btlang/seven-languages-in-seven-weeks&quot; rel=&quot;nofollow&quot; title=&quot;Seven Languages in Seven Weeks&quot;&gt;&quot;Seven languages in Seven Weeks&quot;&lt;/a&gt;, and aims to teach you... seven languages in seven weeks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a fun way of looking at very different languages, and the strengths and weaknesses of each of them. For each language, the book deals with a non-trivial problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, the book is not a deep reference for either of the languages, but does show the essentials of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The languages covered are Ruby, Io, Prolog, Scala, Erlang, Clojure and Haskell.&lt;/p&gt;&#xA;" OwnerUserId="305" LastActivityDate="2010-09-14T15:52:59.953" CommentCount="1" />
  <row Id="3594" PostTypeId="2" ParentId="3590" CreationDate="2010-09-14T15:54:52.833" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I generally prefer asynchronous communication like IM, twitter, facebook, etc while coding.  Asynchronous communication I can come back to when I'm done with what I'm working on.  It's much easier to ignore a new IM than it is to ignore a coworker tapping on my shoulder.  As such, I tend to leave as many such lines of communication open as possible to encourage them to use them first if it's not an immediately life-threatening issue.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-14T15:54:52.833" CommentCount="4" />
  <row Id="3596" PostTypeId="2" ParentId="3488" CreationDate="2010-09-14T15:56:38.043" Score="1" ViewCount="" Body="&lt;p&gt;Grades (and even in extreme cases degrees) are a quick way for a company or individual to decide if you have the experience necessary to fill the role they are looking for.  The problem with having low grades (or not the level of degree they are looking for) is getting a first job with no other experience (or getting a first interview if you lack the degree).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With low grades or a lacking degree, the best course of action is to emphasize what other things you have done that prove you are worthy of training and being paid (previous experience, open source projects, personal projects, etc.). If you can't emphasize those things, what do you really have to offer for the role?&lt;/p&gt;&#xA;" OwnerUserId="1770" LastActivityDate="2010-09-14T15:56:38.043" />
  <row Id="3597" PostTypeId="1" CreationDate="2010-09-14T16:04:54.893" Score="0" ViewCount="53" Body="&lt;p&gt;I've read about a few methods of achieving search engine-friendly URLs, such as...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://articles.sitepoint.com/article/search-engine-friendly-urls&quot; rel=&quot;nofollow&quot;&gt;http://articles.sitepoint.com/article/search-engine-friendly-urls&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...however I'd like to know how the programmer would handle this properly. For the sake of my question, let's use the URL: &lt;strong&gt;amazingshop.com/article/45254&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I assume the browser/server would have to open the index.php file as one isn't specified. Then the programmer has exploded the URL into different variables, and then used an inclusion for a file such as article.php? Considering the first variable is &quot;article&quot; and the design of this page would be different to other sections of the site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I on the right track?&lt;/p&gt;&#xA;" LastActivityDate="2010-09-14T16:32:17.823" ClosedDate="2010-09-16T13:17:10.877" Title="questions related to search engine-friendly URLs" Tags="&lt;php&gt;&lt;search-engine&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="3598" PostTypeId="2" ParentId="109" CreationDate="2010-09-14T16:05:34.813" Score="0" ViewCount="" Body="&lt;p&gt;In .NET languages adding of event handlers multiple times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This usually comes down to putting the code that adds them somewhere that gets called multiple times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are two solutions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Move the code to the constructor (or somewhere where it only gets called once).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Remove the event handler when it's completed, as has to be done if handling the event is dynamic (e.g. it only gets added in certain circumstances).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;(I am guilty of this one myself).&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-14T16:05:34.813" CommunityOwnedDate="2010-10-06T08:33:10.437" />
  <row Id="3599" PostTypeId="2" ParentId="3488" CreationDate="2010-09-14T16:08:35.793" Score="0" ViewCount="" Body="&lt;p&gt;Once you have a job and have proven your skills, I doubt if low grades will ever matter.  High grades for me certainly did not matter.  I graduated from college with highest honors, in a recession.  My grades didn't matter for even the first job, when I finally got one.  And no-one has cared since, either.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing a good job, being willing and able to quickly learn, having a good attitude, being able to understand and track down problems, working hard -- all of those will help you much more than the grades.  (Although, those can help you get good grades, too.)&lt;/p&gt;&#xA;" OwnerUserId="88" LastActivityDate="2010-09-14T16:08:35.793" />
  <row Id="3600" PostTypeId="2" ParentId="3590" CreationDate="2010-09-14T16:11:42.783" Score="2" ViewCount="" Body="&lt;p&gt;There is right time to each stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's ok keep open communicating channels although it's better has not any distractions or interruptions while you're working on a brain task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you naturally have an not so small interruption like a length compilation and you have not nothing more to do you can check your on-line sites, bu t I'm pretty sure you can use this time better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can improve your skills while working focusing on your project. Let the social interaction, even to improve your skills, to after work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The greatest problem is the interruption of thoughts.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-14T16:11:42.783" />
  <row Id="3601" PostTypeId="2" ParentId="3590" CreationDate="2010-09-14T16:14:41.560" Score="3" ViewCount="" Body="&lt;p&gt;My personal choice was once &quot;yes,&quot; but it is now definitely &quot;no.&quot;  If you have an internal IM system, use that, but keep Facebook and personal Trillian closed, as you'll quickly find yourself inundated with distractions.  I'm glad my new company blocks Facebook so I'm not tempted to waste time using it.  Never thought I'd say &lt;strong&gt;that&lt;/strong&gt;, let me tell you!&lt;/p&gt;&#xA;" OwnerUserId="1071" LastActivityDate="2010-09-14T16:14:41.560" CommentCount="3" />
  <row Id="3602" PostTypeId="2" ParentId="3519" CreationDate="2010-09-14T16:26:56.103" Score="6" ViewCount="" Body="&lt;p&gt;Don't try to read your programming books from front to back in a single or  few sittings.  I usually pick up a book and read a little at a time, usually not more than 10 pages, and for particularly dense books, just a couple pages.  For 'soft' books, I may read significantly more, but I try to avoid them in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If, as in your case, you can already code in a similar language, start with a simple console app or something and do little exercises like&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Read/Write something from/to a file&lt;/li&gt;&#xA;&lt;li&gt;A little to-do list console app&lt;/li&gt;&#xA;&lt;li&gt;Test all the language features as you read about them&lt;/li&gt;&#xA;&lt;li&gt;and on and on&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-14T16:26:56.103" />
  <row Id="3603" PostTypeId="2" ParentId="2935" CreationDate="2010-09-14T16:29:05.507" Score="2" ViewCount="" Body="&lt;p&gt;I guess there are really two different motivations for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first would have to be the Atari 800 computer that I received from my grandmother when I was about 7. It went to a BASIC prompt by default, so I would sit there and mess around until something interesting happened.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other motivator would be my high school robotics team. I was the only one on my team that year who had any experience in coding. It was also the first year they switched to C from PBASIC. I ended up being the only programmer for all 4 years, and I absolutely fell in love with it.&lt;/p&gt;&#xA;" OwnerUserId="115" LastActivityDate="2010-09-14T16:29:05.507" />
  <row Id="3604" PostTypeId="2" ParentId="3524" CreationDate="2010-09-14T16:29:46.580" Score="-1" ViewCount="" Body="&lt;p&gt;Use Craiglist to find developer jobs, and there you see a lot of startups posting their jobs.&#xA;And among those startup jobs, most of them are ready to make you partners if you have good knowledge of the subject.&lt;/p&gt;&#xA;" OwnerUserId="1775" LastActivityDate="2010-09-14T16:29:46.580" />
  <row Id="3605" PostTypeId="2" ParentId="3597" CreationDate="2010-09-14T16:32:17.823" Score="1" ViewCount="" Body="&lt;p&gt;With PHP, it's typically handled through the .htaccess file where you direct the requests to a file which then handles the various parts of the URL depending on whatever rules you have setup.  This process is called &lt;a href=&quot;http://en.wikipedia.org/wiki/URL_rewriting&quot; rel=&quot;nofollow&quot;&gt;URL Rewriting&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your example &lt;/p&gt;&#xA;&#xA;&lt;p&gt;amazingshop.com/article/45254&lt;/p&gt;&#xA;&#xA;&lt;p&gt;would be mapped to (depending on how you setup the htaccess file)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;amazingshop.com/article/index.php?id=45254&lt;/p&gt;&#xA;" OwnerUserId="93" LastActivityDate="2010-09-14T16:32:17.823" CommentCount="1" />
  <row Id="3606" PostTypeId="2" ParentId="272" CreationDate="2010-09-14T16:33:13.167" Score="1" ViewCount="" Body="&lt;p&gt;To most people I simply say I'm a programmer. Sometimes I say I'm a Software Developer/Software Engineer (which is my actual job designation where I work) when the person I'm saying this to isn't a programmer himself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer using the term programmer. That word basically covers everything I do, including architecture, testing etc. - and emphasizes the most important part. I've actually been using the word even when I was a student and only programmed for fun. &lt;/p&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-09-14T16:33:13.167" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="3607" PostTypeId="2" ParentId="565" CreationDate="2010-09-14T16:55:36.137" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://sites.google.com/site/steveyegge2/being-the-averagest&quot; rel=&quot;nofollow&quot;&gt;Being the Averagest&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-14T16:55:36.137" CommentCount="1" />
  <row Id="3608" PostTypeId="2" ParentId="3488" CreationDate="2010-09-14T16:58:50.517" Score="1" ViewCount="" Body="&lt;p&gt;Some companies will use GPA as a cut off. A lot of defense contractors and government agencies tend to do this. If you &lt;em&gt;really&lt;/em&gt; want to work for one of these companies, it could be an issue when you're coming right out of school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, most of the really good companies want three things from their candidates for an entry level position:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Technical competence&lt;/li&gt;&#xA;&lt;li&gt;Experience&lt;/li&gt;&#xA;&lt;li&gt;A passion for what you do&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;#1 is things like problem solving, programming ability, understanding memory management, recursion, data structures, etc., all your fundamental computer science problems. The kind of things people will test in a good technical interview. You can get good at this with practice. Implementing various algorithms, data structures and other common problems is a good way. &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt; can be a lot of fun, especially if you try it in harder languages like C, using as little memory or making it as fast as possible (a good way to learn a lot of pointer tricks).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;#2 is past job experience. Most entry level people don't have this. Some schools have mandatory co-op programs, requiring anywhere from a semester to a year's worth of internships or co-ops by graduation. If your school doesn't have this, &lt;em&gt;get an internships anyway&lt;/em&gt;. It's invaluable to your education and invaluable on your resume.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;#3 is how much you &lt;em&gt;really&lt;/em&gt; care about your field. It's how you can tell if someone writes software because it's a good job and if someone writes software for the love of writing software. A 9-5 programmer can still make good code, but someone who's really invested in programming for the love of it is going to be a much better investment for employers. The best way to demonstrate this is to work on your own projects. Some people contribute to open source projects, other people have pet projects of their own. Nothing shows &quot;I love what I do&quot; more than someone who spends their spare time doing it for &lt;em&gt;free&lt;/em&gt;. GPA will never, &lt;em&gt;ever&lt;/em&gt; tell an employer that you are passionate about your field.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastEditorUserId="1360" LastEditorDisplayName="" LastEditDate="2010-09-14T17:03:57.153" LastActivityDate="2010-09-14T17:03:57.153" />
  <row Id="3610" PostTypeId="2" ParentId="3590" CreationDate="2010-09-14T17:02:11.943" Score="2" ViewCount="" Body="&lt;p&gt;No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I keep the corporate IM up when I need to communicate; often towards the end of the day I shut down everything connected to the outside world so I can focus.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-14T17:02:11.943" CommentCount="2" />
  <row Id="3611" PostTypeId="2" ParentId="3558" CreationDate="2010-09-14T17:09:29.903" Score="2" ViewCount="" Body="&lt;p&gt;ChaosPandion's answer is good, it sounds like you're just burned out. A good way to avoid burn out is to find other hobbies. I love working on my side projects, but sometimes it's too much. When that happens, I switch gears to something else. I also like working on cars, wood and metalworking, hobby electronics and various forms of artistic expression.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you happen to like video games, it might be fun to try developing them. The combination of art and programming can be an interesting challenge. I've had a few game projects where, when I'm tired of coding, I'll go work on the art. When I tire of the art, I go back to coding. It's a great way to develop software but not actually have to develop software all the time while working on the project.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastActivityDate="2010-09-14T17:09:29.903" />
  <row Id="3613" PostTypeId="2" ParentId="3558" CreationDate="2010-09-14T17:40:54.717" Score="8" ViewCount="" Body="&lt;p&gt;Time is a limiting factor.  I stopped coding for fun about 5 years ago.  I learned to play the guitar, starting dabbling in woodworking, had kids, and can't even come close to keeping up with the latest video games anymore.  By the time I've navigated rush hour, had supper, played with the kids, put them to bed and read them some books; I don't have the energy or desire to plug my last couple hours into the computer.  I'm sure this will change again, but I'm honestly okay with programming as a &quot;job&quot; right now...&lt;/p&gt;&#xA;" OwnerUserId="849" LastActivityDate="2010-09-14T17:40:54.717" CommentCount="1" />
  <row Id="3615" PostTypeId="1" CreationDate="2010-09-14T17:51:10.433" Score="3" ViewCount="443" Body="&lt;p&gt;Every once in a while, I'll come across a cool formula in homebrew that I never knew existed.  I have an example, but I'll save that for an answer. :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any formulas that you find useful as a programmer (aside from the more obvious ones like programming languages)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;:  &lt;a href=&quot;http://github.com/mxcl/homebrew&quot; rel=&quot;nofollow&quot;&gt;This&lt;/a&gt; is homebrew.  :-)&lt;/p&gt;&#xA;" OwnerUserId="1626" LastEditorUserId="719" LastEditorDisplayName="" LastEditDate="2010-09-14T18:22:22.777" LastActivityDate="2011-02-06T17:58:01.520" Title="Cool formulas for programmers in Homebrew?" Tags="&lt;software&gt;&lt;osx&gt;" AnswerCount="3" CommentCount="5" FavoriteCount="2" />
  <row Id="3616" PostTypeId="2" ParentId="3615" CreationDate="2010-09-14T17:52:29.697" Score="1" ViewCount="" Body="&lt;p&gt;One I just discovered is &lt;a href=&quot;http://github.com/visionmedia/git-extras&quot; rel=&quot;nofollow&quot;&gt;git-extras&lt;/a&gt;.  Of course, &lt;a href=&quot;http://betterthangrep.com/&quot; rel=&quot;nofollow&quot;&gt;ack&lt;/a&gt; is also worth mentioning.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-09-14T17:52:29.697" CommentCount="1" />
  <row Id="3617" PostTypeId="2" ParentId="502" CreationDate="2010-09-14T17:55:26.430" Score="2" ViewCount="" Body="&lt;p&gt;Basically, I redo the first year of CS:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The first 40-50 &lt;a href=&quot;http://projecteuler.net/index.php?section=problems&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt; problems to learn number processing.&lt;/li&gt;&#xA;&lt;li&gt;Some command-line utilities to learn text processing.&lt;/li&gt;&#xA;&lt;li&gt;A program that involves a large graph search (e.g. a Klotski puzzle solver) to learn data handling and optimization techniques (and possibly GUI).&lt;/li&gt;&#xA;&lt;li&gt;An interpreter for a language I already know to learn everything else.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="998" LastActivityDate="2010-09-14T17:55:26.430" CommunityOwnedDate="2010-09-14T17:55:26.430" />
  <row Id="3619" PostTypeId="2" ParentId="16" CreationDate="2010-09-14T18:00:45.687" Score="5" ViewCount="" Body="&lt;p&gt;Dynamically typed languages are perceived (by some programmers/bosses) to produce code that does not work as well. The fact that a dynamically typed program compiles tells you very little about its correctness. The fact that a statically typed language compiles tells you a lot more. (On the other hand, there is still a long way between compiles and does the right thing, so this might be less meaningful then it seems)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dynamically typed languages are perceived to be scripting languages. You'd never write an application in bash or a batch file. All dynamically typed languages tend to be looped into that category (unfairly).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dynamically typed languages are slower then statically typed languages. (But we'll see how well work on JIT changes that)&lt;/p&gt;&#xA;" OwnerUserId="1343" LastEditorUserId="1343" LastEditorDisplayName="" LastEditDate="2010-09-18T15:57:48.617" LastActivityDate="2010-09-18T15:57:48.617" CommentCount="6" />
  <row Id="3620" PostTypeId="2" ParentId="3488" CreationDate="2010-09-14T18:07:07.660" Score="0" ViewCount="" Body="&lt;p&gt;Strangely enough, the ONLY time I was ever asked about my grades in school was very recently - I was interviewing for a Director level position at Google.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I didn't even remember my exact undergrad GPA, since I had two graduate degrees after that, and TWENTY-FIVE years of work experience. I offered to go look it up for them if it was that important.  It was almost like nothing I had done after mattered - completely stupid, IMHO.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-14T18:07:07.660" CommentCount="1" />
  <row Id="3621" PostTypeId="2" ParentId="1768" CreationDate="2010-09-14T18:07:46.397" Score="3" ViewCount="" Body="&lt;p&gt;I'd use python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you will spending your time either waiting for the user or the database, speed shouldn't be a large concern.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Python makes it fairly easy to be cross-platform. I myself deploy a business application on both Linux and windows implemented in Python using SQLAlchemy and wxPython. &lt;/p&gt;&#xA;" OwnerUserId="1343" LastEditorUserId="1343" LastEditorDisplayName="" LastEditDate="2010-09-20T19:48:33.280" LastActivityDate="2010-09-20T19:48:33.280" CommentCount="13" />
  <row Id="3622" PostTypeId="1" AcceptedAnswerId="3624" CreationDate="2010-09-14T18:09:21.577" Score="3" ViewCount="213" Body="&lt;p&gt;I often develop an application entirely myself. But did I really?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel strange about that claim and never know when that is true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mean I designed it, coded it, but I used XYZ plug-in. Can I still claim that I did it all myself even though I didn't create the plugin I used?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider this conversation?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;ME:&lt;/strong&gt; I designed and developed this app entirely myself.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Other:&lt;/strong&gt; Cool, how did you program XYZ part?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;ME:&lt;/strong&gt; I didn't program that part I used XYZ plugin.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Other:&lt;/strong&gt; So you didn't really program it &lt;em&gt;ALL&lt;/em&gt; yourself than did you?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I mean if I must give them credit for the plug-in I used, then do I have to give the language authors credit for the language I used and the IDE authors credit as well? Where do I draw the line?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is just something that always crosses my mine as soon as I am about to take full credit for a project, and was wondering others opinions on the matter.&lt;/p&gt;&#xA;" OwnerUserId="1785" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-19T19:10:45.713" LastActivityDate="2010-09-19T19:10:45.713" Title="How much credit do you take when you used plugins etc.?" Tags="&lt;communication&gt;&lt;credits&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="1" />
  <row Id="3623" PostTypeId="2" ParentId="3488" CreationDate="2010-09-14T18:17:15.373" Score="0" ViewCount="" Body="&lt;p&gt;I slacked off too much in my first two years of undergraduate.  I made up for it by doing a lot of project work and internships.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is of course better to maintain a high GPA and be involved, but for small places your demonstrated abilities speak quite a bit as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(It may be harder to go straight into a larger corporation straight from University though)&lt;/p&gt;&#xA;" OwnerUserId="1574" LastActivityDate="2010-09-14T18:17:15.373" />
  <row Id="3624" PostTypeId="2" ParentId="3622" CreationDate="2010-09-14T18:19:28.370" Score="12" ViewCount="" Body="&lt;p&gt;That depends on what &quot;XYZ part&quot; does.  Most code libraries are pretty modular things that take care of one simple task.  Even if someone else designed that, you're the one who integrated it into the overall vision of what your program is supposed to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless the third-party code takes care of a major part of the application logic itself--for example, building a video game on top of an existing engine--it's just a component.  Saying that you didn't really build the program yourself because you used third-party controls is like saying that you didn't really build the house yourself because you bought premade nails, boards, drywall, wiring, etc...&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-14T18:19:28.370" CommentCount="3" />
  <row Id="3625" PostTypeId="2" ParentId="565" CreationDate="2010-09-14T18:20:51.160" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.paulgraham.com/gh.html&quot; rel=&quot;nofollow&quot;&gt;Great Hackers&lt;/a&gt; by Paul Graham&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-14T18:20:51.160" />
  <row Id="3626" PostTypeId="2" ParentId="3622" CreationDate="2010-09-14T18:21:34.510" Score="1" ViewCount="" Body="&lt;p&gt;It depends how big a portion the plug-in is.  If its a little corner piece or a control in a web page, then I would say its your application.  But if its only a page to host a plugin control, where nearly everything is in the plug-in you didn't write, then, well, the plugin author(s) deserve most of the credit.&lt;/p&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-14T18:21:34.510" />
  <row Id="3627" PostTypeId="2" ParentId="3558" CreationDate="2010-09-14T18:22:04.027" Score="5" ViewCount="" Body="&lt;p&gt;I've been coding for 11 years, which probably isn't much to some around here, but I've dealt with burn out a lot in my career, and there are a couple of things that have always helped get me over the hump.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As others have said, hobbies are great.  There are a ton of interesting things out there to learn, do, collect and create, and it's likely if you're a software engineer that you have more access to them than a lot of people.  On that note, it always helps to remember me that on a big enough scale, my problem (&quot;Boy I'm tired of writing code&quot;) is tiny, it's not even really a problem; in this economy where people are struggling to eat and finding out that the jobs they've spent their lives training for are just not available to them anymore, I work in a field where I have comfortable working conditions, internet access, freedom and job mobility almost anywhere I want to go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've built houses and worked in commercial construction and I liken burn-out to injuring yourself doing physical labor.  We're mental workers, and sometimes we 'hurt' our minds, and we have to take care of them and repair so that we can depend on them again for our livelyhood.  Repetitive boredom can do that, so get out, break up your routine, get some exciting new stimulus and never forget how fortunate you really are to have such a skill as coding.&lt;/p&gt;&#xA;" OwnerUserId="1790" LastActivityDate="2010-09-14T18:22:04.027" CommentCount="1" />
  <row Id="3628" PostTypeId="2" ParentId="3558" CreationDate="2010-09-14T18:23:59.090" Score="3" ViewCount="" Body="&lt;p&gt;For me, I don't code for fun because it's not challenging any more. When I was young, many thing was challenging. I ever wrote a program to estimate Pi value by using random number and it was fun seeing how much accurate it was. If I were going to do that now, it might take only few minutes with no fun at all. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I think what is fun for me now is how to use my skill to do the best at my job. Optimizing is fun. Refactoring is fun. Class design is fun. Code reviewing is most fun. I'm still coding for fun, the difference is it's also my job.&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-09-14T18:23:59.090" CommentCount="2" />
  <row Id="3629" PostTypeId="1" AcceptedAnswerId="3636" CreationDate="2010-09-14T18:39:16.793" Score="24" ViewCount="1679" Body="&lt;p&gt;Besides the obvious &lt;em&gt;computer&lt;/em&gt; of course, what physical tools do you use that you couldn't live without or just make your programming life a lot easier or more fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Thumb drive&lt;/li&gt;&#xA;&lt;li&gt;Particular bag&lt;/li&gt;&#xA;&lt;li&gt;Cheat sheet&lt;/li&gt;&#xA;&lt;li&gt;A book&lt;/li&gt;&#xA;&lt;li&gt;A white-out pen for taking notes right on your computer screen! (or not)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:52:21.643" LastActivityDate="2010-10-25T20:14:16.527" CommunityOwnedDate="2010-09-16T13:07:08.047" Title="What physical tools do you find useful to work as a programmer?" Tags="&lt;tools&gt;&lt;physical&gt;" AnswerCount="35" CommentCount="2" FavoriteCount="11" />
  <row Id="3630" PostTypeId="2" ParentId="893" CreationDate="2010-09-14T18:39:41.783" Score="1" ViewCount="" Body="&lt;p&gt;No, there are employers who say on their job descriptions that having a MS or PhD is a plus. I have seen this many times.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-14T18:39:41.783" />
  <row Id="3631" PostTypeId="2" ParentId="3629" CreationDate="2010-09-14T18:42:12.760" Score="24" ViewCount="" Body="&lt;p&gt;I'd have to say my coffee mug.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-14T18:42:12.760" CommunityOwnedDate="2010-09-16T13:07:08.047" CommentCount="2" />
  <row Id="3632" PostTypeId="2" ParentId="3629" CreationDate="2010-09-14T18:43:06.230" Score="3" ViewCount="" Body="&lt;p&gt;A rocking chair. &lt;a href=&quot;http://instantrimshot.com/&quot; rel=&quot;nofollow&quot;&gt;Because I rock&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-14T18:43:06.230" CommunityOwnedDate="2010-09-16T13:07:08.047" CommentCount="1" />
  <row Id="3633" PostTypeId="2" ParentId="3622" CreationDate="2010-09-14T18:47:28.187" Score="6" ViewCount="" Body="&lt;p&gt;Fundamentally be honest - at the end of the day you put the site or the app together so you can take credit for the end result as ultimately you did build it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you used a plugin you deserve credit for being smart enough to find and to know to use the plugin &lt;em&gt;but&lt;/em&gt; in my case I do acknowledge (in some cases make a point of acknowledging) that there are tools that make it easier (possible even) to achieve the results I've achieved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take jQuery and jQueryUI for example - it makes some things very easy so if you use it then say so but its not the app and sometimes you have to work to wire it in right and get the app, as a whole, to do what is required. So I don't expend effort on a datepicker but I do then have to expend effort combining a number of controls on a page (that includes a couple of text boxes with attached date pickers) to produce a more complex interaction. The interaction was me, I'll take credit, the datepicker wasn't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One last thought:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The end user usually doesn't care so long as it does what they need - if you've delivered that you get the credit.&lt;/li&gt;&#xA;&lt;li&gt;Other devs will either know what you're using and will appreciate that you're smart enough to use the right tools for the job or won't and will appreciate learning about new toys to put in their toolbox. In both cases give credit (for the plugin) where due 'cos that will get you appropriate respect from your peers.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="866" LastEditorUserId="866" LastEditorDisplayName="" LastEditDate="2010-09-14T20:02:08.737" LastActivityDate="2010-09-14T20:02:08.737" CommentCount="1" />
  <row Id="3634" PostTypeId="2" ParentId="3629" CreationDate="2010-09-14T18:51:20.367" Score="24" ViewCount="" Body="&lt;p&gt;Headphones and an endless supply of music, soundscapes (I'm partial to ocean waves and rain showers - sorry for not giving credit to &lt;a href=&quot;http://www.rainymood.com&quot; rel=&quot;nofollow&quot;&gt;www.rainymood.com&lt;/a&gt;), and &lt;a href=&quot;http://www.simplynoise.com&quot; rel=&quot;nofollow&quot;&gt;www.simplynoise.com&lt;/a&gt;. I've listened to this on the train; still works when disconnected.&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2010-09-15T12:39:50.883" LastActivityDate="2010-09-15T12:39:50.883" CommunityOwnedDate="2010-09-16T13:07:08.047" CommentCount="4" />
  <row Id="3635" PostTypeId="2" ParentId="3629" CreationDate="2010-09-14T18:54:51.693" Score="43" ViewCount="" Body="&lt;p&gt;A pen and paper. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-14T18:54:51.693" CommunityOwnedDate="2010-09-16T13:07:08.047" CommentCount="4" />
  <row Id="3636" PostTypeId="2" ParentId="3629" CreationDate="2010-09-14T18:56:10.963" Score="55" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A Motherflippin' Whiteboard.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being able to freely diagram my thoughts, write myself notes, and occasionally doodle is hella essential.  A pad of paper will do in a pinch, but I gotta have a whiteboard long-term.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-14T18:56:10.963" CommunityOwnedDate="2010-09-16T13:07:08.047" CommentCount="8" />
  <row Id="3637" PostTypeId="2" ParentId="3622" CreationDate="2010-09-14T18:57:32.847" Score="0" ViewCount="" Body="&lt;p&gt;If most of your application will function with just the plugin and not your code, give the plugin credit. Otherwise, I would only mention it if asked or I liked the pluggin so much that I wanted to promote it to other developers. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-14T18:57:32.847" />
  <row Id="3638" PostTypeId="2" ParentId="3629" CreationDate="2010-09-14T18:59:47.553" Score="4" ViewCount="" Body="&lt;p&gt;My &lt;a href=&quot;http://www.blucigs.com&quot; rel=&quot;nofollow&quot;&gt;electronic cigarette&lt;/a&gt;. It even allowed me to quit smoking normal cigarettes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've easily added at least 30 minutes to every day by removing the need for smoke breaks&lt;/p&gt;&#xA;" OwnerUserId="13" LastEditorUserId="13" LastEditorDisplayName="" LastEditDate="2010-09-15T07:51:00.313" LastActivityDate="2010-09-15T07:51:00.313" CommunityOwnedDate="2010-09-16T13:07:08.047" CommentCount="3" />
  <row Id="3639" PostTypeId="2" ParentId="3629" CreationDate="2010-09-14T19:00:03.467" Score="1" ViewCount="" Body="&lt;p&gt;I always keep an A5 notebook next to my computer, while I'm programming. I write small database design en keep small todo lists and much more. I don't think I could program without some piece of paper to sketch out ideas and keep notes.&lt;/p&gt;&#xA;" OwnerUserId="1797" LastActivityDate="2010-09-14T19:00:03.467" CommunityOwnedDate="2010-09-16T13:07:08.047" />
  <row Id="3640" PostTypeId="2" ParentId="2066" CreationDate="2010-09-14T19:01:43.337" Score="2" ViewCount="" Body="&lt;p&gt;Don't ever let them near my computers. &lt;/p&gt;&#xA;" OwnerUserId="1800" LastActivityDate="2010-09-14T19:01:43.337" />
  <row Id="3641" PostTypeId="2" ParentId="3622" CreationDate="2010-09-14T19:02:16.863" Score="5" ViewCount="" Body="&lt;p&gt;In a professional, work-for-hire or contract job, a client that cares about how each specific part was implemented and who implemented it is not a very good client. If you used a plugin in accordance with its license, there's no need to specifically state &quot;I didn't really do the whole project because I didn't personally do X, Y, and Z.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a client is interested in talking shop about the project, that's fine: I generally say things like &quot;I pulled together a bunch of different things to get the final result you were looking for.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, it's not the client's place to ask who did what specifically: it's not middle school where a teacher needs to make sure you didn't plagiarize your book report. A client needs to implicitly trust that you've done your job adequately and be able to determine that by the final product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I should note that if the implementation details are a &lt;em&gt;selling point&lt;/em&gt;, by all means tell them. When I use an open-source project as a base, I like to mention it as a way to convince the client they are buying something that'll be maintained even when I'm long gone.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I'd even extend the above to talking shop with friends, family, and peers. If you want to divulge what exactly you used, that's fine: it's just as fine to say it's a trade secret.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only time you should feel obligated to give others credit is when the license demands it. Using &lt;code&gt;gcc&lt;/code&gt; doesn't mean you need to put it in your acknowledgements, but if you use something that's &lt;a href=&quot;http://creativecommons.org/licenses/by/3.0/&quot; rel=&quot;nofollow&quot;&gt;CC-BY&lt;/a&gt; licensed, you must.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond that, acknowledge things that you feel are worth acknowledging: I would limit to things that really stood out as giving you a leg up and you want to inform others that they should use it too. &lt;/p&gt;&#xA;" OwnerUserId="8" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-14T23:50:54.713" LastActivityDate="2010-09-14T23:50:54.713" />
  <row Id="3643" PostTypeId="2" ParentId="492" CreationDate="2010-09-14T19:07:12.467" Score="2" ViewCount="" Body="&lt;p&gt;For coding, not a big deal unless you are transcribing all of your code out of a non-electronic book (then you have bigger problems). However, I can't imagine responding to email, creating documentation, or any other business correspondence without having typing skills.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-14T19:07:12.467" CommunityOwnedDate="2011-03-20T20:58:56.467" CommentCount="2" />
  <row Id="3645" PostTypeId="1" AcceptedAnswerId="3650" CreationDate="2010-09-14T19:09:42.300" Score="8" ViewCount="882" Body="&lt;p&gt;I am a computer science student and learning Java now a days. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to be a good developer/programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like reading books. I search on the internet for the related topics and study them. I refer to StackOverflow and other good programming websites daily but I code rarely. Is this a bad sign? If yes then what should I do to overcome this problem?&lt;/p&gt;&#xA;" OwnerUserId="1373" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-28T16:35:45.980" LastActivityDate="2011-03-05T22:35:57.847" Title="I code rarely. Is this a bad sign?" Tags="&lt;learning&gt;&lt;self-improvement&gt;" AnswerCount="12" CommentCount="4" FavoriteCount="6" />
  <row Id="3646" PostTypeId="2" ParentId="1634" CreationDate="2010-09-14T19:09:55.373" Score="1" ViewCount="" Body="&lt;p&gt;Focus on your academic achievements, first and foremost.  Right now, that's all you have to go on, so put that at the top of your resume.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, get across in your cover letter just how &lt;em&gt;excited you are about programming&lt;/em&gt;, how much you enjoy &lt;em&gt;solving problems creatively&lt;/em&gt;, and how good you are at &lt;em&gt;working as a part of a team&lt;/em&gt;.  I'm guessing, since you're posting on this site, that this is probably a pretty good description of you, no?  :)  This is a feature that will draw people to you, trust me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quite often, people will prefer to hire someone with a lot of excitement and enthusiasm over someone who isn't as enthused but may be a bit more experienced.&lt;/p&gt;&#xA;" OwnerUserId="1071" LastActivityDate="2010-09-14T19:09:55.373" />
  <row Id="3647" PostTypeId="2" ParentId="1920" CreationDate="2010-09-14T19:12:16.317" Score="2" ViewCount="" Body="&lt;p&gt;Vim, git, and a good web browser are all I really need. Anything else is just gravy or is language-specific.&lt;/p&gt;&#xA;" OwnerUserId="1767" LastActivityDate="2010-09-14T19:12:16.317" />
  <row Id="3648" PostTypeId="2" ParentId="282" CreationDate="2010-09-14T19:13:03.527" Score="2" ViewCount="" Body="&lt;p&gt;I'm always pleased to see a new episode of &lt;a href=&quot;http://www.coreint.org/&quot; rel=&quot;nofollow&quot;&gt;Core Intuition&lt;/a&gt; show up in iTunes.  Daniel Jalkut and Manton Reece are articulate and interesting.  While much of the talk is about Mac OS X or iOS development, plenty of it is worthwhile for established or aspiring independent software developers regardless of the platform.&lt;/p&gt;&#xA;" OwnerUserId="307" LastActivityDate="2010-09-14T19:13:03.527" CommunityOwnedDate="2010-12-21T06:02:41.540" />
  <row Id="3649" PostTypeId="2" ParentId="3645" CreationDate="2010-09-14T19:13:07.350" Score="1" ViewCount="" Body="&lt;p&gt;Depends on what platforms you're using.  I know I'm finding that many newer platforms and technologies require less actual coding but more rigorous engineering.  As a result, I'm coding less and less as time goes on.&lt;/p&gt;&#xA;" OwnerUserId="1071" LastActivityDate="2010-09-14T19:13:07.350" />
  <row Id="3650" PostTypeId="2" ParentId="3645" CreationDate="2010-09-14T19:14:55.053" Score="24" ViewCount="" Body="&lt;p&gt;Experience trumps all, if you aren't getting experience then yes you definitely have a problem if you want to be a great programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start on a new project or join another person's open source project.   Get some experience.  Write some code.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-14T19:14:55.053" CommentCount="1" />
  <row Id="3651" PostTypeId="2" ParentId="3645" CreationDate="2010-09-14T19:15:18.827" Score="2" ViewCount="" Body="&lt;p&gt;If you do want to code more you should try a programming challenge website.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're a great way to learn languages and flex your programmings muscles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am a big fan of the &lt;a href=&quot;http://www.pythonchallenge.com/&quot; rel=&quot;nofollow&quot;&gt;pythonchallenge&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Really good site to start.&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-14T19:15:18.827" />
  <row Id="3652" PostTypeId="2" ParentId="386" CreationDate="2010-09-14T19:15:51.947" Score="7" ViewCount="" Body="&lt;p&gt;If your product costs less, but doesn't have the same features are you really beating them on price? There is a relationship between price and people's perception of quality (and it's usually accurate). &quot;I was going to buy a BMW, but the price on that Chevy...&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The old saying, &quot;No one ever got fired for buying IBM.&quot; wasn't because it was the cheapest. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-14T19:15:51.947" />
  <row Id="3653" PostTypeId="2" ParentId="565" CreationDate="2010-09-14T19:16:32.320" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2007/11/mort-elvis-einstein-and-you.html&quot; rel=&quot;nofollow&quot;&gt;Mort, Elvis, Einstein, and You&lt;/a&gt; on Coding Horror.&lt;/p&gt;&#xA;" OwnerUserId="378" LastActivityDate="2010-09-14T19:16:32.320" />
  <row Id="3654" PostTypeId="2" ParentId="3629" CreationDate="2010-09-14T19:16:47.717" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;USB hub&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are so many USB devices in my life these days (flash drive, phone, iPod, keyboard, mouse, camera, and on and on and on) that reaching under my desk to try to find a free USB slot is a pain.  One USB hub &lt;strong&gt;on&lt;/strong&gt; my desk makes life a lot easier.&lt;/p&gt;&#xA;" OwnerUserId="35" LastActivityDate="2010-09-14T19:16:47.717" CommunityOwnedDate="2010-09-16T13:07:08.047" />
  <row Id="3656" PostTypeId="2" ParentId="893" CreationDate="2010-09-14T19:20:43.603" Score="0" ViewCount="" Body="&lt;p&gt;Masters is pretty much a terminal degree in this field, unless you're going to teach.  Putting effort into obtaining that degree is something that should be encouraged by all employers.  If you find yourself working for someone who is pressuring you not to do it, start looking for a new employer.&lt;/p&gt;&#xA;" OwnerUserId="1071" LastActivityDate="2010-09-14T19:20:43.603" />
  <row Id="3657" PostTypeId="2" ParentId="3629" CreationDate="2010-09-14T19:24:54.523" Score="59" ViewCount="" Body="&lt;p&gt;Dual Monitors.  So you can have your code up on one, and research/documents/web open on the other.&lt;/p&gt;&#xA;" OwnerUserId="1803" LastActivityDate="2010-09-14T19:24:54.523" CommunityOwnedDate="2010-09-16T13:07:08.047" CommentCount="12" />
  <row Id="3658" PostTypeId="2" ParentId="3272" CreationDate="2010-09-14T19:37:53.483" Score="0" ViewCount="" Body="&lt;p&gt;It's not a disqualification, but they need to address the issue. I've continued to take jobs where a larger percentage of my time was on coding as oppose to support, project management, operational tasks, network admin., etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I left the positions on good terms and always tried to help my replacement as much as possible.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-14T19:37:53.483" />
  <row Id="3659" PostTypeId="2" ParentId="3590" CreationDate="2010-09-14T19:41:10.497" Score="1" ViewCount="" Body="&lt;p&gt;I think this largely depends on &lt;em&gt;you&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I keep a lot of social mediums open while I work. Although, this has certainly impaired productivity on some occassions, it doesn't always. When I want to seriously work on something and I get my groove flowing it's pretty challenging to derail me for more than a few minutes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My coworkers and I all sit in the same room not more than a few feet apart and we communicate primarily on a messenger client, without accessibility to a messenger client I would be more prone to distraction by physical interaction than I ever would be by electronic distractions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say worse than instant messenger are websites like Stack Overflow. :)&lt;/p&gt;&#xA;" OwnerUserId="13" LastActivityDate="2010-09-14T19:41:10.497" />
  <row Id="3661" PostTypeId="2" ParentId="3645" CreationDate="2010-09-14T19:44:00.117" Score="13" ViewCount="" Body="&lt;p&gt;Other answers were great, to me it all boils down to this: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;if you have trouble programming are you in the right profession? &lt;/li&gt;&#xA;&lt;li&gt;if you have trouble finding a problem (computer related) and coming up with a implementation to solve it are you in the right profession? &lt;/li&gt;&#xA;&lt;li&gt;if you don't think about your programming assignments (work, school or personal) in your free time are you in the right profession?  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There is a fine line between a hobbyist and a professional and this is what I think you need to determine for yourself by doing some self evaluation and soul searching.  :-) &lt;/p&gt;&#xA;" OwnerUserId="136" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2011-03-05T22:35:57.847" LastActivityDate="2011-03-05T22:35:57.847" CommentCount="1" />
  <row Id="3662" PostTypeId="1" AcceptedAnswerId="3663" CreationDate="2010-09-14T19:47:46.210" Score="6" ViewCount="287" Body="&lt;p&gt;So the question is this: wherever you sit down and do your magic, is it neat and organized or chaotic and in disarray ? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you find that your level of organization follows linearly with your current position in the project? (ie. The project is on track and life is good, few bugs and major milestones are being met, desk is clean enough to do brain surgery or the project is way off track, bugs are flying everywhere and my desk is a dumpster) &lt;/p&gt;&#xA;" OwnerUserId="136" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-15T16:33:50.990" LastActivityDate="2010-10-05T19:58:39.053" Title="Is your physical programming environment organized ?" Tags="&lt;work-environment&gt;&lt;organization&gt;" AnswerCount="8" FavoriteCount="2" />
  <row Id="3663" PostTypeId="2" ParentId="3662" CreationDate="2010-09-14T19:51:38.873" Score="8" ViewCount="" Body="&lt;p&gt;For me:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disorganized when busy - lots of notes and sketches laid about&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Orderly when low on productive work - I clean up between projects or as transitioning between stages in projects&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How the project is going has to be judged by the number of caffeinated beverages at the desk + in the trash (the more beverages the worse the project)&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-14T19:51:38.873" />
  <row Id="3664" PostTypeId="2" ParentId="3645" CreationDate="2010-09-14T19:52:08.677" Score="3" ViewCount="" Body="&lt;p&gt;Find some projects to work on. If you can't then find some puzzles to solve. See my answer to this question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/756/programming-puzzles/764#764&quot;&gt;Programming puzzles&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-14T19:52:08.677" />
  <row Id="3666" PostTypeId="2" ParentId="3662" CreationDate="2010-09-14T19:57:28.337" Score="0" ViewCount="" Body="&lt;p&gt;Well, I'm a student, so I work from home and my physical programming environment is also where I do just about anything (watch TV, write, eat, whatever...). Also I sleep right next to it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, I could never keep it tidy even if I had the energy to try. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-14T19:57:28.337" />
  <row Id="3667" PostTypeId="2" ParentId="282" CreationDate="2010-09-14T19:58:59.300" Score="0" ViewCount="" Body="&lt;p&gt;The &lt;em&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Adam_and_Joe_%28radio_show%29&quot; rel=&quot;nofollow&quot;&gt;Adam and Joe show&lt;/a&gt;&lt;/em&gt; on BBC 6 Music.&lt;/p&gt;&#xA;" OwnerUserId="160" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-26T16:25:52.000" LastActivityDate="2011-02-26T16:25:52.000" CommunityOwnedDate="2010-12-21T06:02:41.540" CommentCount="0" />
  <row Id="3668" PostTypeId="2" ParentId="492" CreationDate="2010-09-14T20:00:11.163" Score="7" ViewCount="" Body="&lt;p&gt;Taxi company owner to potential employee:  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;How important is the ability to drive?&quot;&lt;/p&gt;&#xA;" OwnerUserId="160" LastActivityDate="2010-09-14T20:00:11.163" CommunityOwnedDate="2011-03-20T20:58:56.467" CommentCount="3" />
  <row Id="3669" PostTypeId="2" ParentId="3662" CreationDate="2010-09-14T20:02:47.877" Score="3" ViewCount="" Body="&lt;p&gt;I'm a very organized person, so my desk is organized.  Just what I need to do the task at hand is what's on it.  If I let it lapse any, I usually get distracted while coding and have to get rid of the clutter.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like my desk and code to be in the same condition, neat, organized and efficient.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-14T20:02:47.877" />
  <row Id="3671" PostTypeId="2" ParentId="3662" CreationDate="2010-09-14T20:07:35.247" Score="0" ViewCount="" Body="&lt;p&gt;I still don't have a proper coding job, so I code on my parent's couch.&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-09-14T20:07:35.247" />
  <row Id="3672" PostTypeId="2" ParentId="386" CreationDate="2010-09-14T20:09:47.967" Score="-1" ViewCount="" Body="&lt;p&gt;I'm curious where you got the notion that new products &lt;em&gt;shouldnt&lt;/em&gt; compete on price.  Of course they should.  Unlike, say, auto manufacturers, smaller software companies often have lower overhead and can produce software less expensively than a larger company can.  Consider for example the effort involved in getting a project green lit at, say, Oracle.  If you can produce a competitive product, and are able to offer it at a price your competitor cant meet, go for it!&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-14T20:09:47.967" CommentCount="1" />
  <row Id="3674" PostTypeId="2" ParentId="3662" CreationDate="2010-09-14T20:12:08.863" Score="2" ViewCount="" Body="&lt;p&gt;Like Bill, &quot;I'm disorganized when busy&quot;, But I hear somewhere that it's an effective way to arrange thing, it's called (translated from french) &lt;strong&gt;The Volcano filing system&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Papers are sorted on chronological order, the newer on the top and the older buried under the lot. This fit the way the brain organize the information and that why I could find almost anything in my mess in the second. When someone complain, I say that's a filling system too complicated for them to understand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Meanwhile, this become infective when I cross a cretin point, So I got to clean it up as soon as I got a slack.&lt;/p&gt;&#xA;" OwnerUserId="19" LastEditorUserId="19" LastEditorDisplayName="" LastEditDate="2010-09-15T12:22:46.837" LastActivityDate="2010-09-15T12:22:46.837" CommentCount="3" />
  <row Id="3675" PostTypeId="2" ParentId="16" CreationDate="2010-09-14T20:19:07.503" Score="9" ViewCount="" Body="&lt;p&gt;Yes, I believe that they do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a few reasons that need to be considered in the selection of a language for a new project:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Run-time speed. Compared to C/C++/Fortran, Perl and Python are so slow it's funny.&lt;/li&gt;&#xA;&lt;li&gt;Initialization speed. Compared to the above fast languages, &lt;em&gt;Java&lt;/em&gt; falls over and cries as the JVM keeps loading and loading and...&lt;code&gt;while(1)&lt;/code&gt;....&lt;/li&gt;&#xA;&lt;li&gt;Prototype-ability. Exhaustively going through and doing the declaration/definition work required for C++ or Java increases the LOC, which is the &lt;em&gt;only&lt;/em&gt; known metric that reliably correlates with bugcounts. It also takes a lot of time. It also requires a bit more thinking about types and connections.&lt;/li&gt;&#xA;&lt;li&gt;Internal fiddlability. Dynamically messing around with your internals is great until you begin to debug your &lt;em&gt;self-modifying code&lt;/em&gt;. (Python, Lisp, Perl)&lt;/li&gt;&#xA;&lt;li&gt;Correctness verification. A compiler can provide a quick once-over pass of semi-correctness of your code in C++, and this can be &lt;em&gt;really&lt;/em&gt; nice. &lt;/li&gt;&#xA;&lt;li&gt;Static analysis details. C and Java have pretty good static analysis. Perl is not completely statically analyzable at a &lt;em&gt;theoretical&lt;/em&gt; level (Possibly Python too). I'm reasonably sure Lisp isn't either. &lt;/li&gt;&#xA;&lt;li&gt;Weird platforms only take C, in general. &lt;/li&gt;&#xA;&lt;li&gt;Support chain. If you can have a contract that you &lt;em&gt;will&lt;/em&gt; get your bugs looked at and worked on, that's &lt;em&gt;huge&lt;/em&gt;. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you can presume that the organization you are working with has a principle of &quot;Going forward&quot;(There's an accounting term for this), and &lt;em&gt;won't&lt;/em&gt; just randomly decide to not work on the software, then you have a much better case for using the software. Since there's no Major Business &lt;em&gt;selling&lt;/em&gt; (carrying implication of taking responsibility of maintaining it) Python/Perl/$dynamic_language, it considerably reduces risk. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, open source maintainers often have an issue with fully taking responsibility for bugfixes and releasing updates. &quot;It's free, YOU work on it!&quot; is &lt;strong&gt;&lt;em&gt;not&lt;/em&gt;&lt;/strong&gt; an answer that is acceptable to most businesses (not their core compentencies, among other things). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, I'm not talking about the webapp/startup world, which tends to play by high risk/high reward rules and be &lt;em&gt;very&lt;/em&gt; open to staying on the frothing edge of tech.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-14T20:19:07.503" CommentCount="3" />
  <row Id="3676" PostTypeId="2" ParentId="3558" CreationDate="2010-09-14T20:25:25.833" Score="4" ViewCount="" Body="&lt;p&gt;Write a cell automat in Excel. Make a simple web app, which downloads an image from URL, and visitor can dragging a mustache on the photo. Make a simple web app whcih cahnges some letter in sentences from randomly googled pages. Write a small always-on-top clock app, which grows as the end of the worktime is getting closer. Write a script, which downloads photos from SD card, putting images to yyyymmdd folder based on creation date. Write a screen saver. Make a webpage with a big red button, which says &quot;I will find out your age, just press me&quot;, and it plays a noisy fart sound when one presses it, then it writes &quot;if you are laughing, you must be under 5&quot;. Write detailed documentation on it: requirement specification, UI design, market analysis, business plan, flowchart. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're done, send me the URL.&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-09-14T20:25:25.833" CommentCount="2" />
  <row Id="3678" PostTypeId="1" AcceptedAnswerId="3680" CreationDate="2010-09-14T20:59:11.737" Score="0" ViewCount="114" Body="&lt;p&gt;I work with C# professionally and I write code like this all the time.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private IEnumerable&amp;lt;Something&amp;gt; GetAlotOfSomething()&#xA;{&#xA;    if (somethingA.IsReady)&#xA;        yield return somethingA; &#xA;    if (somethingB.IsReady)&#xA;        yield return somethingB; &#xA;    if (somethingC.IsReady)&#xA;        yield return somethingC; &#xA;&#xA;    // ... More complex logic&#xA;}&#xA;&#xA;var specialSomethings = &#xA;    GetAlotOfSomething()&#xA;    .Where(s =&amp;gt; s.IsSpecial); &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Then one day I have to write a bit of VB6 or JScript and I end up writing so much boilerplate just to get things done. Anyone thoughts?&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-14T21:40:31.247" Title="Does anyone else feel that iterator syntax sugar is a must have in a modern language?" Tags="&lt;productivity&gt;&lt;c#&gt;&lt;iterator&gt;" AnswerCount="2" CommentCount="6" />
  <row Id="3679" PostTypeId="2" ParentId="3272" CreationDate="2010-09-14T21:02:41.320" Score="15" ViewCount="" Body="&lt;p&gt;One reason not yet mentioned why many managers don't like a history of short jobs is that the person may never have had to live with the results of his work. This changes the way you think about development. If you have never seen your work go into maintenance phase and found out the problems from your design out in real life, you may think you are doing well when you are not. This is OK for a junior dev who may not have as much control over design but can be a disaster for a senior dev. Someone who has the same beginner level experience repeated four times rather than progressing to higher levels of responsibility, is often in trouble when you need senior level judgement. So the person with 10 years of experience and two jobs can be more attractive than the person with ten years of experience and 7 jobs. You know they have had to face the music and see the end result of their programming choices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My experience has been that 90% or more of the devs who leave in less than a year leave a mess behind for others to clean up. I've seen far too many of these people quit immediately before a deadline (often with no notice) that they knew they were not going to make but didn't want to admit it. Now I think most managers shouldn't let it get this far without realizing the person isn't producing anything, but an amazing number of them seem to think asking to see code before it is completed is somehow interfering. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll hear the same thing from all these people, &quot;It was a horrible place to work, they used crappy tools and management made dumb decisions, etc.&quot; What you never hear them say is &quot;I left because I was in over my head&quot; but it is all too often true. There are a lot of bad devs in our business, the worst ones are leaving just ahead of being fired. And leaving often. You are simply a riskier choice if you leave your job frequently. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now this isn't true for contract work (it isn't your fault that the contract was for only 3 months.) However, I see more and more contractors who are in the same position, they stay places for such a short time that they aren't seeing the end result of their work or having to live with the results, so they make poor choices and never have a clue that they did so. Nor do they ever get a chance to get beyond the superficial beginner level knoweldge to the depth of the experienced professional. This is not true of all contractors (I've worked with some amazing contractors, but to a person they have had at least one long term job or contract where they had  a chance to develop some depth of experience).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't have to be happy at a job to learn a lot. I've learned more from a couple of bad jobs than I did from the good ones (of course sometimes what you learn are new questions to ask in the interview!). It can pay to tough it out. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastEditorUserId="1093" LastEditorDisplayName="" LastEditDate="2010-12-03T14:59:49.763" LastActivityDate="2010-12-03T14:59:49.763" />
  <row Id="3680" PostTypeId="2" ParentId="3678" CreationDate="2010-09-14T21:10:10.650" Score="3" ViewCount="" Body="&lt;p&gt;Iterators (generators etc) are certainly great features that I use a lot.  I don't qualify them as necessary, but I will certainly choose languages that have them when I get a choice.&lt;/p&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-14T21:10:10.650" CommentCount="1" />
  <row Id="3681" PostTypeId="2" ParentId="3662" CreationDate="2010-09-14T21:20:19.810" Score="0" ViewCount="" Body="&lt;p&gt;During the day it is a total mess.  Notes, empty coffee mug, half finished sodas everywhere.  Usually a thumb drive, calculator and halfeaten lunch are close by.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I try to pick up a little (at least the food stuff) before I go home and night.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Friday afternoon, my space is spotless.  Notes put away, food thrown out, all clean and tidy for when I come in on Monday.&lt;/p&gt;&#xA;" OwnerUserId="144" LastActivityDate="2010-09-14T21:20:19.810" />
  <row Id="3682" PostTypeId="2" ParentId="2331" CreationDate="2010-09-14T21:21:47.513" Score="6" ViewCount="" Body="&lt;p&gt;Autovivification (or other bind-variable-on-(assign|use) feature) is the feature which I've found to give me the most bugs.&lt;/p&gt;&#xA;" OwnerUserId="148" LastEditorUserId="148" LastEditorDisplayName="" LastEditDate="2010-09-14T21:53:04.447" LastActivityDate="2010-09-14T21:53:04.447" CommentCount="1" />
  <row Id="3683" PostTypeId="2" ParentId="3629" CreationDate="2010-09-14T21:29:33.467" Score="1" ViewCount="" Body="&lt;p&gt;Reading glasses (unfortunately).  When I can see the screen ok, then I need the cheaters for paper.  Plus, I can write smaller than I can see now.  :(&lt;/p&gt;&#xA;" OwnerUserId="88" LastActivityDate="2010-09-14T21:29:33.467" CommunityOwnedDate="2010-09-16T13:07:08.047" />
  <row Id="3684" PostTypeId="1" CreationDate="2010-09-14T21:36:01.490" Score="29" ViewCount="1056" Body="&lt;p&gt;What are some good downloadable cheat sheets for learning a particular language or tool?&lt;/p&gt;&#xA;" OwnerUserId="40" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-10-02T15:33:45.070" LastActivityDate="2010-10-11T18:03:41.943" Title="What are some good programming cheat sheets?" Tags="&lt;recommendations&gt;&lt;favorite&gt;&lt;cheat-sheet&gt;" AnswerCount="19" CommentCount="2" FavoriteCount="29" />
  <row Id="3686" PostTypeId="2" ParentId="3622" CreationDate="2010-09-14T21:40:24.663" Score="1" ViewCount="" Body="&lt;p&gt;As &lt;a href=&quot;http://programmers.stackexchange.com/questions/3622/how-much-credit-do-you-take-when-you-used-plugins-etc/3633#3633&quot;&gt;@Murph&lt;/a&gt; said, the end user doesn't really care what plugin you use, as long as it works and does what they want it to do. Only if the dependency did more than 50%, like a game engine or drag and drop IDE, should you quote the source.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;On the developers/source code side, I would say that just the existence of the dependency (jar, dll, do, [insert your language dependency file type]) is giving enough credit. You might offhand mention &quot;Thanks to X, this class was so much easier to write&quot;, but such a comment is entirely optional. If the dependency exists and is named the name of the dependency, your quoting the source. And when you import it into your current file, its also quoting the source. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So don't worry about quoting what you used, you are perfectly fine now.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-14T21:40:24.663" />
  <row Id="3687" PostTypeId="2" ParentId="3678" CreationDate="2010-09-14T21:40:31.247" Score="1" ViewCount="" Body="&lt;p&gt;They're... Handy. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you can always just write your own if necessary. The big wins come from standard library / framework support.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-14T21:40:31.247" CommentCount="2" />
  <row Id="3688" PostTypeId="2" ParentId="1634" CreationDate="2010-09-14T21:42:24.253" Score="4" ViewCount="" Body="&lt;p&gt;How about instead of experience you put in a section called Projects. In it you describe the more significant class projects (not each little class exercise but the big semester long types of projects) and personal projects you have done, what technologies you used and what you learned from them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I remember hiring one young man one time for an entry level job who brought a copy of a project he worked on for school. No one else did and that one act put him ahead of all the other potential entry level hires. He turned out to be a great hire too!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do something to make yourself stand out and remember you from a pile of 5000 resumes But do not send me a ten-page resume with pictures and hobbies, etc when you have no experience. You want to be remembered in a good way not have your resume passed arounf so we can laugh at it.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-14T21:42:24.253" CommentCount="1" />
  <row Id="3689" PostTypeId="2" ParentId="989" CreationDate="2010-09-14T21:43:43.583" Score="1" ViewCount="" Body="&lt;p&gt;For web I have been quite happy with Elmah&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-14T21:43:43.583" CommentCount="3" />
  <row Id="3690" PostTypeId="2" ParentId="3590" CreationDate="2010-09-14T21:46:07.787" Score="0" ViewCount="" Body="&lt;p&gt;I stay away from social networks like Facebook but do keep things up like programming channels in IRC. They aren't distractions, they can provide me with help. Its only when you start helping others that it becomes a distraction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Moderation moderation moderation.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-14T21:46:07.787" />
  <row Id="3691" PostTypeId="2" ParentId="3629" CreationDate="2010-09-14T21:46:37.633" Score="19" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;A good keyboard (MS Ergonomic Keyboard 4000)&lt;/li&gt;&#xA;&lt;li&gt;A good desk (I have an adjustable height one)&lt;/li&gt;&#xA;&lt;li&gt;A good chair (already mentioned)&lt;/li&gt;&#xA;&lt;li&gt;Window (yes, I really love natural window and light)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-09-14T21:46:37.633" CommunityOwnedDate="2010-09-16T13:07:08.047" CommentCount="5" />
  <row Id="3692" PostTypeId="2" ParentId="3684" CreationDate="2010-09-14T21:51:46.573" Score="26" ViewCount="" Body="&lt;p&gt;Take your pick from &lt;a href=&quot;http://devcheatsheet.com/&quot; rel=&quot;nofollow&quot;&gt;devcheatsheet.com&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="562" LastActivityDate="2010-09-14T21:51:46.573" CommentCount="2" />
  <row Id="3693" PostTypeId="2" ParentId="989" CreationDate="2010-09-14T21:56:47.697" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://nlog-project.org/&quot; rel=&quot;nofollow&quot;&gt;NLog&lt;/a&gt; is my preferred logging component.  There are multiple comparisons that detail differences between log4net and NLog, but they are both very capable and mature frameworks.  I'd recommend trying both of them and picking your preference.  You can't go wrong with either.&lt;/p&gt;&#xA;" OwnerUserId="45" LastActivityDate="2010-09-14T21:56:47.697" CommentCount="1" />
  <row Id="3694" PostTypeId="2" ParentId="380" CreationDate="2010-09-14T21:59:22.200" Score="4" ViewCount="" Body="&lt;p&gt;What I like about my current job (apart from the work itself):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Nice colleagues&lt;/li&gt;&#xA;&lt;li&gt;Good hardware (computer, desk and otherwise)&lt;/li&gt;&#xA;&lt;li&gt;Off-topic stuff (youtube) allowed within reason&lt;/li&gt;&#xA;&lt;li&gt;KFC, Grilled cheese, Pizza and other nice things for lunch (sometimes, not always! :P)&lt;/li&gt;&#xA;&lt;li&gt;Fairly regular company trips to the movie theatre and also things like a 2-day trip to the Gamescom in Cologne (we're a game developer)&lt;/li&gt;&#xA;&lt;li&gt;Game nights&lt;/li&gt;&#xA;&lt;li&gt;We're small, so everybody knows everybody and their skills&lt;/li&gt;&#xA;&lt;li&gt;The boss leaves the technical decisions about things that I know most about to me, rather than forcing a specific method on me without reason&lt;/li&gt;&#xA;&lt;li&gt;You are judged by what you deliver, rather than silly things like what time you arrive at work or how much time you spend typing&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Basically the only thing I don't like is how far the office is from the city centre.&lt;/p&gt;&#xA;" OwnerUserId="1065" LastActivityDate="2010-09-14T21:59:22.200" CommentCount="2" />
  <row Id="3695" PostTypeId="1" CreationDate="2010-09-14T22:06:21.457" Score="2" ViewCount="99" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/370/how-old-is-too-old&quot;&gt;How old is &amp;ldquo;too old&amp;rdquo;?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I've been an ops guy for nearly 20 years. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I first started, BBS's and other dial-up services like CompuServ were still all the rage. Schools were teaching courses in 370 Assembler, COBOL, and BASIC. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I cut my teeth in the working world, on Korn shell and a mainframe scripting language called &quot;REXX&quot;. Before there was Yukihiro Matsumoto, there was Mike Cowlishaw.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Flash forward 18 years. I've just started a job writing automated functional tests in Python for a company in Brooklyn, and I'm dabbling with the idea of just going whole-hog, and becoming a programmer. I've tinkered with Python and Ruby, and I like them both for various reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I'd like to know from y'all is this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1&gt; What does it take to earn some credibility as a programmer these days?&#xA;2&gt; Will my age impact that credibility?&#xA;3&gt; Can I mitigate that? If so, how?&#xA;4&gt; Is all this worth the effort?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realize no one can answer these questions absolutely, for me. But, in keeping with the stated goal of the site, I'd really like to get some subjective feedback on the issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can an old dog really compete today?&lt;/p&gt;&#xA;" OwnerUserId="1829" LastActivityDate="2010-09-14T22:23:51.783" ClosedDate="2010-09-14T22:28:03.273" Title="Old Dog, New Tricks..." Tags="&lt;self-improvement&gt;&lt;career-advice&gt;" AnswerCount="1" CommentCount="0" />
  <row Id="3696" PostTypeId="2" ParentId="3629" CreationDate="2010-09-14T22:07:02.890" Score="2" ViewCount="" Body="&lt;p&gt;A mouse with more than two buttons.  I can't stand using a mouse without the extra thumb buttons. &lt;/p&gt;&#xA;" OwnerUserId="45" LastActivityDate="2010-09-14T22:07:02.890" CommunityOwnedDate="2010-09-16T13:07:08.047" />
  <row Id="3697" PostTypeId="2" ParentId="380" CreationDate="2010-09-14T22:07:15.743" Score="2" ViewCount="" Body="&lt;p&gt;My favorite perk is whole days of quiet time and no meetings.&lt;/p&gt;&#xA;" OwnerUserId="1833" LastActivityDate="2010-09-14T22:07:15.743" CommentCount="2" />
  <row Id="3698" PostTypeId="2" ParentId="380" CreationDate="2010-09-14T22:19:09.257" Score="0" ViewCount="" Body="&lt;p&gt;I'm fond of the free coffee and the willingness to ensure devs have good hardware. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A quiet cube-space is also wonderful.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-14T22:19:09.257" />
  <row Id="3699" PostTypeId="2" ParentId="3695" CreationDate="2010-09-14T22:23:51.783" Score="0" ViewCount="" Body="&lt;p&gt;I'm not a hiring manager, &lt;em&gt;so&lt;/em&gt; my opinion is not relevant.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You have to know your field and what's current in your field. &quot;Programming&quot; is too vast. Focus on (say), Testing Firmware. &lt;/li&gt;&#xA;&lt;li&gt;Only in companies I don't want to work for. Age brings experience, and that's hugely valuable. In my lit searches as a Master's student, there are volumes of research that are old and only now hitting the &quot;Modern&quot; programming world. Knowing the old stuff is hugely good&lt;/li&gt;&#xA;&lt;li&gt;You can mitigate the old fogey syndrome by being current and willing to change and experiment.&lt;/li&gt;&#xA;&lt;li&gt;Way, way, way too individual of a question and answer for me to help. Sorry.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-14T22:23:51.783" CommentCount="1" />
  <row Id="3700" PostTypeId="1" CreationDate="2010-09-14T22:29:51.443" Score="9" ViewCount="233" Body="&lt;p&gt;What do you think about its new features? What about the things that were left out?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does it feel like a good step for Java, or is it too small? Did it take too long?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Did they put enough effort into the area of Java you use (enterprise, desktop, games, mobile, etc.)&lt;/p&gt;&#xA;" OwnerUserId="1065" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-14T22:33:23.387" LastActivityDate="2010-09-15T00:09:30.383" Title="What is your opinion of the new Java 7 features?" Tags="&lt;java&gt;&lt;language-features&gt;" AnswerCount="1" FavoriteCount="3" />
  <row Id="3701" PostTypeId="2" ParentId="3684" CreationDate="2010-09-14T22:30:51.147" Score="-1" ViewCount="" Body="&lt;p&gt;That really depends on the language/tool.  Googling &quot;[x] cheatsheet&quot; where [x] is rails, regex, c#, etc works for me pretty well.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-14T22:30:51.147" />
  <row Id="3704" PostTypeId="1" CreationDate="2010-09-14T22:43:42.563" Score="0" ViewCount="271" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/134/hourly-or-per-project-billing&quot;&gt;Hourly or per project billing?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry if this has been asked, I looked around but couldn't find a topic on the matter. I've been working with PHP application development for some time within my office, and I'm looking to do some side work in down time. It's been a while since I've actually charged for projects, and of course there are many variables to consider. I'm more just looking for a ball park estimate on what someone might charge for developing something. Big or small.&lt;/p&gt;&#xA;" OwnerUserId="1834" LastActivityDate="2010-09-15T10:42:59.710" ClosedDate="2010-09-15T10:56:04.030" Title="Rates on hourly / project work" Tags="&lt;project&gt;&lt;billing&gt;" AnswerCount="4" CommentCount="0" />
  <row Id="3705" PostTypeId="2" ParentId="3704" CreationDate="2010-09-14T22:48:50.393" Score="1" ViewCount="" Body="&lt;p&gt;Yes, there are a lot of factors including:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Your expertise as a developer&lt;/li&gt;&#xA;&lt;li&gt;Your location&lt;/li&gt;&#xA;&lt;li&gt;Your prior experience&lt;/li&gt;&#xA;&lt;li&gt;The complexity of the project&lt;/li&gt;&#xA;&lt;li&gt;The expectation of correctness (ie, is this a flash game or missile guidance code?)&lt;/li&gt;&#xA;&lt;li&gt;The expectation of maintenance afterwards (included in the up-front cost or charged upon later need?)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As such, I'm not sure anyone can give you a useful answer. Ballpark range? $10-200 /hr.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-14T22:48:50.393" />
  <row Id="3706" PostTypeId="2" ParentId="3233" CreationDate="2010-09-14T22:50:21.373" Score="2" ViewCount="" Body="&lt;p&gt;The customer wants - and pays for - solution, not software. If you want to see your customer satisfied, you should do a lot of customization work for him/her, not just throwing the software install CDs into his/her PO Box. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even big software companies, who sell licences at horrible prices, provide (I mean: sell) additional services beyond the licences. From a tight angle, open source looks like a co-operation of smaller software companies to minimize development costs and set licence fees to zero. It looks like a win-win situation for the software company and the customer.&lt;/p&gt;&#xA;" OwnerUserId="1813" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-12T08:45:22.693" LastActivityDate="2011-02-12T08:45:22.693" CommunityOwnedDate="2010-10-02T03:46:51.680" />
  <row Id="3707" PostTypeId="2" ParentId="3488" CreationDate="2010-09-14T22:54:13.097" Score="2" ViewCount="" Body="&lt;p&gt;A lot of people (and specially students) look the end of studies as a goal, a final step. And the final qualification will be the GPA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it's absolutely the opposite. It's the start. So, even if you don't start the race in the pole position, you can win positions. And even win. But the truth is that it's not even as remotely important as the pole position is on a race. It's more like coming early on the racing day...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a superb rating on your GPA, that's one weapon you can use in the search of jobs. It's not a really good one, as the only time when it's going to be useful it's on the first couple of years, after that all your experience, and learning capability will have much more weight on any selection process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just to state it in silly terms, if one company it's searching for a Java developer, it's easier they'll get the one with two years of experience on the language that the newbie with a great GPA and just a couple of months on a Java course. (and yes, it's really silly to hire someone just by their experience on a particular language, but it's a simplification, and there are HR people doing that)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your career it's a long term race (we are talking of decades here!), and there are few things that can either give you a permanent advantage or to ruin your career forever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And no, NO ONE is going to have a better impression as a co-worker of you for your GPA. 99% of the people you're going to know won't even think about asking that.&lt;/p&gt;&#xA;" OwnerUserId="1571" LastEditorUserId="1571" LastEditorDisplayName="" LastEditDate="2010-09-14T23:02:35.857" LastActivityDate="2010-09-14T23:02:35.857" />
  <row Id="3708" PostTypeId="2" ParentId="3704" CreationDate="2010-09-14T22:54:28.183" Score="1" ViewCount="" Body="&lt;p&gt;There is no ballpark, you have to tell us about the sport first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never freelanced before? You might need to do some free work for non-profits to build a portfolio.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start with your own website.  Find some clients, negotiate.  You should have an idea &lt;strong&gt;for you personally&lt;/strong&gt; of the minimum you are willing to accept.&lt;/p&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-14T22:54:28.183" />
  <row Id="3709" PostTypeId="2" ParentId="3704" CreationDate="2010-09-14T23:00:42.833" Score="1" ViewCount="" Body="&lt;p&gt;Whatever you need to charge to make it worth your while.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will work harder if you feel you are being rewarded well for it, its also easier to give a client a discount rather than ask for a raise :)&lt;/p&gt;&#xA;" OwnerUserId="158" LastActivityDate="2010-09-14T23:00:42.833" />
  <row Id="3710" PostTypeId="2" ParentId="539" CreationDate="2010-09-14T23:02:27.710" Score="0" ViewCount="" Body="&lt;p&gt;Blue, bold keywords, green comments, Consolas/12pt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/mNa6j.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-09-14T23:02:27.710" CommunityOwnedDate="2010-09-16T13:10:40.707" />
  <row Id="3711" PostTypeId="2" ParentId="1302" CreationDate="2010-09-14T23:05:00.720" Score="1" ViewCount="" Body="&lt;p&gt;The Delphi online community was always pretty good, even way back in the dark ages of  Compuserver, AOL and newsgroups there was  good Delphi presence and always someone willing to help. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The system promoted releasing components with Source so there was a great community of developers sharing code.  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.drbob42.com/&quot; rel=&quot;nofollow&quot;&gt;DrBob&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.delphipages.com&quot; rel=&quot;nofollow&quot;&gt;Delphi Pages&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;to name just a couple.&lt;/p&gt;&#xA;" OwnerUserId="158" LastActivityDate="2010-09-14T23:05:00.720" CommunityOwnedDate="2010-09-14T23:05:00.720" />
  <row Id="3713" PostTypeId="1" CreationDate="2010-09-14T23:12:29.830" Score="7" ViewCount="107" Body="&lt;p&gt;Hello everyone,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With parallel algorithms knocking at the door, it might be a good time to think about error handling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So at first there were error codes. Those sucked. It was free to ignore them, so you could fail late and produce hard-to-debug code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then came exceptions. Those were made impossible to ignore once they occur, and most people (except Joel) like them better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And now we got libraries that help parallel code. Problem is, you can't handle exceptions in parallel code as easily as you could with non-parallel code. If you asynchronously launch a task and it throws an exception, there's no stack trace past it to unwind; best you can do is capture it and register it on the task object, if there's such an object. However, it defeats the primary strength of exceptions: you have to check for them and &lt;em&gt;you can ignore them without any additional effort&lt;/em&gt;, whereas in single-threaded code an exception will necessarily trigger the appropriate actions (even if it means terminating your program).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How should language implementations or libraries support errors in parallel code?&lt;/p&gt;&#xA;" OwnerUserId="90" LastActivityDate="2010-09-15T15:26:10.650" Title="What would be the best way to handle errors in parallel programs?" Tags="&lt;programming-languages&gt;&lt;parallelism&gt;&lt;exceptions&gt;" AnswerCount="2" CommentCount="4" FavoriteCount="2" />
  <row Id="3714" PostTypeId="2" ParentId="3684" CreationDate="2010-09-14T23:17:00.047" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://refcardz.dzone.com/&quot; rel=&quot;nofollow&quot;&gt;Refcardz&lt;/a&gt; has lots of them.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-14T23:17:00.047" />
  <row Id="3715" PostTypeId="2" ParentId="3713" CreationDate="2010-09-14T23:34:40.340" Score="0" ViewCount="" Body="&lt;p&gt;Seems like you would want to make sure that the task handled it's own exceptions, and then returning something that let the calling program know that the thread needed to be shut down.  It would then have logic to process the result of all threads, knowing that some of those threads had failed.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastEditorUserId="1842" LastEditorDisplayName="" LastEditDate="2010-09-15T15:20:21.893" LastActivityDate="2010-09-15T15:20:21.893" CommentCount="4" />
  <row Id="3716" PostTypeId="2" ParentId="3684" CreationDate="2010-09-14T23:39:29.790" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://store.xkcd.com/xkcd/#LinuxCheatShirt&quot; rel=&quot;nofollow&quot;&gt;XKCD's Linux cheat shirt&lt;/a&gt; isn't 100% thorough, but it's pretty convenient:&#xA;&lt;img src=&quot;http://i.imgur.com/nTsBI.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="59" LastActivityDate="2010-09-14T23:39:29.790" CommentCount="1" />
  <row Id="3717" PostTypeId="2" ParentId="3282" CreationDate="2010-09-14T23:41:03.737" Score="20" ViewCount="" Body="&lt;p&gt;The scariest code I've ever dealt with would probably the code for a .NET 2.0 application:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Well, there was the main form, which contains 27,591 lines, 4,754 of which is the auto-generated Windows Form designer code. In other words, over 20,000 lines of actual code written by the original developer, in one file, in one project, for a single form. And lest you think the developer could have only done this by shoving the entire application into a single, super-awesome, monolithic God form, no, no. There are other files in this project, such as the 12,000-line &quot;main module&quot;...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;We use the fairly well-known convention of prefixing global variables with &lt;code&gt;g_&lt;/code&gt; and module or class-level variables with &lt;code&gt;m_&lt;/code&gt;. This vexed and perplexed our dear developer, so much so that at some point he gave up and starting prefixing every variable with &lt;code&gt;g_&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Code that combines variable scope and purpose in cruel and inhumane ways: for example, the phrase &quot;global temporary counter variable&quot; actually makes sense in the context of this code (and it may or not be surprising to know that this variable is actually called...wait for it...&lt;code&gt;g_temp&lt;/code&gt;).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Inner monologues that I think went like this: &quot;&lt;code&gt;Select Case&lt;/code&gt; is cool. But, but...I can't &lt;code&gt;Select Case&lt;/code&gt; on the currently-selected toggle button control because I don't understand object references! But...oh wait a second! These buttons all have &lt;em&gt;captions&lt;/em&gt;! And, and...strings work with &lt;code&gt;Select Case&lt;/code&gt;, and...oh boy I know &lt;em&gt;exactly&lt;/em&gt; how to solve this problem!!! The only issue with this solution is that this code isn't indented far enough to the right. I need some superfluous &lt;code&gt;If&lt;/code&gt; statements around all this &lt;code&gt;Select Case&lt;/code&gt; goodness. No wait, &lt;em&gt;five&lt;/em&gt; levels of nested &lt;code&gt;If&lt;/code&gt; statements, and &lt;em&gt;then&lt;/em&gt; I can put the &lt;code&gt;Select Case&lt;/code&gt; in there!&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;So many compiler warnings that the compiler generated a warning saying that no more warnings could be generated.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Just opening the project and actually trying to build it has crashed Visual Studio on multiple occasions.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="986" LastEditorUserId="986" LastEditorDisplayName="" LastEditDate="2010-09-15T02:25:33.083" LastActivityDate="2010-09-15T02:25:33.083" CommunityOwnedDate="2011-01-14T18:11:43.393" CommentCount="4" />
  <row Id="3719" PostTypeId="2" ParentId="3488" CreationDate="2010-09-14T23:54:35.060" Score="1" ViewCount="" Body="&lt;p&gt;As you can see from other answers, this varies a lot by industry and level. I've just been looking at resumes for developers for an Internet startup I'm involved in. Here's my take.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, your grades don't matter at all. I'm interested in what you can do. I find that out by:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Seeing what sort of jobs you've had. Have you been doing real coding? Producing useful stuff for real people? Doing things that sound interesting?&lt;/li&gt;&#xA;&lt;li&gt;Looking at what technologies you've used. &lt;/li&gt;&#xA;&lt;li&gt;Seeing what you're excited about. Resumes are ok for that, but I care a lot more about your posts to Twitter, blogs, open-source mailing lists, and the like.&lt;/li&gt;&#xA;&lt;li&gt;Examining your code. Do you have a website? Have you posted code? Do you have a github account? What do your patches look like?&lt;/li&gt;&#xA;&lt;li&gt;Watching you code. If you get far enough along in the interview process, we'll spend a couple of hours pair programming.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I know a number of excellent programmers who don't have CS degrees, or any degrees. What matters is what they can make.&lt;/p&gt;&#xA;" OwnerUserId="1843" LastActivityDate="2010-09-14T23:54:35.060" />
  <row Id="3720" PostTypeId="2" ParentId="565" CreationDate="2010-09-15T00:00:34.937" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://samizdat.mines.edu/howto/HowToBeAProgrammer.html&quot; rel=&quot;nofollow&quot;&gt;How to be a Programmer: A Short, Comprehensive, and Personal Summary&lt;/a&gt; by Robert L Read&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's an absolutely must have read to beginners or more experienced programmers that have not so much solid base on programming, projects, professional life, career, etc.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-15T00:00:34.937" />
  <row Id="3721" PostTypeId="2" ParentId="3622" CreationDate="2010-09-15T00:06:25.733" Score="2" ViewCount="" Body="&lt;p&gt;In casual conversation, just say that you built it. Reasonable people know that you did not start out by making the CPU yourself from beach sand and force of will and working up from there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the thing itself, it's nice to give credit. In the publishing world there's something called &lt;a href=&quot;http://en.wikipedia.org/wiki/Colophon_%28publishing%29&quot; rel=&quot;nofollow&quot;&gt;a colophon&lt;/a&gt;, where you credit the tools and/or the people involved in printing, and that's a reasonable model for web sites. In movies and video games, you often see credits at the end. In desktop software, that info often ends up in an about box.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However you do it, it's pretty easy to tell your fellow craftspeople what you used and who helped. Few actually care, but those who do care a lot, so I think it's worth it.&lt;/p&gt;&#xA;" OwnerUserId="1843" LastActivityDate="2010-09-15T00:06:25.733" />
  <row Id="3723" PostTypeId="2" ParentId="3700" CreationDate="2010-09-15T00:09:30.383" Score="4" ViewCount="" Body="&lt;h2&gt;Lamba Expressions/Closures&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I'm really excited about this, but its future is rocky. The goal is to replace the verboseness of using single method interfaces as inline callbacks or listeners, as well as simplify other things. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately I can't seem to find examples of how it would work. There seems to be tons of proposed specs out there, but I have no idea which one is chosen. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-15T00:09:30.383" CommentCount="6" />
  <row Id="3724" PostTypeId="1" AcceptedAnswerId="3725" CreationDate="2010-09-15T01:13:53.030" Score="4" ViewCount="312" Body="&lt;p&gt;I'm currently in a situation where many people on here likely find themselves: I love to program, I do a lot of fun side projects, but it is not my profession. I work as an Electrical Engineering project manager, but at one point I wrote a software application that solved a tricky signal processing problem early in my career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now the company is creating a product which will include the same functionality I created a while ago. They have asked for my assistance in designing it into the system, and to potentially help program it. My question for the community is: how have you dealt with this type of situation in the past with regards to pay and responsibility?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I would love to program as a full-time job, I am not ready to make a switch into that role. I would be happy to work on this in addition to my job, but I feel this type of specialized work would merit some form of bonus or side contract. I imagine it could also lead to an ongoing support responsibility, but I figure this could be handed off to the normal development team once the design and initial implementation is complete. Would this be an unreasonable request in a typical Fortune500?&lt;/p&gt;&#xA;" OwnerUserId="1846" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-19T19:38:21.470" LastActivityDate="2010-09-19T19:38:21.470" Title="How to deal with Programming != Job Description problem?" Tags="&lt;jobs&gt;&lt;contracting&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="3725" PostTypeId="2" ParentId="3724" CreationDate="2010-09-15T01:17:57.773" Score="5" ViewCount="" Body="&lt;p&gt;Let's face it -- if you are stuck with more responsibility than your job description would suggest, you're probably right to be asking for additional compensation. Whether or not your superiors will know and understand this is probably up in part to fate and in part to your presentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think often in software development, one's role changes from time to time. Perhaps they'd like you to forgo your current position for a short time to complete this task (or simply have you manage this new subproject until it's ready to be handed-off). I know that despite being a software developer, for the past 3 weeks I've had to work about half of my time in more of a systems administration role simply because our interfacing with a vendor's product isn't going well. If this is the case, you're simply replacing responsibility with another, and hopefully any extra stress might be allayed by the novelty of a different line of work temporarily. I know for the first two days I was saying &quot;Yeay! I get to play with the databases!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, if you're going to be stuck with extra work, it's probably a great idea to at least ask for extra pay. If you're going to get a little break from your usual position to fill another temporarily, it might just be good brownie points.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But a last note about support roles attributed to Michael Sinz:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Programming is like sex.  One mistake and you have to support it for the rest of your life.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This could very well happen depending on how your project is planned. If you're not comfortable with this kind of thing, be sure to confirm with whoever is in charge of developing the product that there will be a support structure in place to support this product and that you'll be no way involved. Essentially, plan ahead to wash your hands of it.&lt;/p&gt;&#xA;" OwnerUserId="1849" LastActivityDate="2010-09-15T01:17:57.773" />
  <row Id="3726" PostTypeId="1" CreationDate="2010-09-15T01:26:19.763" Score="3" ViewCount="478" Body="&lt;p&gt;First, I think we can all agree that TIOBE is not a reliable source, but there is no better source to measure programming language popularity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So please, post the language name, if you think it should be above or below the current (august 2010) position and post a explanation of &lt;em&gt;why&lt;/em&gt; you think it should be different. It's need to have a reason. Just &quot;because&quot; it's unacceptable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See: &lt;a href=&quot;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&quot; rel=&quot;nofollow&quot;&gt;TIOBE index&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-01T20:46:59.653" LastActivityDate="2010-11-17T15:43:38.437" Title="What languages have their popularity inaccurately represented in TIOBE?" Tags="&lt;programming-languages&gt;&lt;popularity&gt;&lt;statistics&gt;" AnswerCount="6" CommentCount="9" FavoriteCount="2" />
  <row Id="3727" PostTypeId="2" ParentId="3488" CreationDate="2010-09-15T01:32:19.810" Score="1" ViewCount="" Body="&lt;p&gt;Personally, I did not have good grades and eventually left school without graduating due to health reasons. I've never been asked about my grades but I was always upfront about not finishing school and why. The key is to make sure you sell yourself during the interview and the best ammunition is examples of your work. With that said, I take every opportunity to learn and currently take night classes when and where I can. Now my grades are much better without the distraction from the girls in college. &lt;/p&gt;&#xA;" OwnerUserId="1851" LastActivityDate="2010-09-15T01:32:19.810" />
  <row Id="3728" PostTypeId="2" ParentId="1302" CreationDate="2010-09-15T01:35:02.387" Score="0" ViewCount="" Body="&lt;p&gt;Quora is extremely good if you just want to chat about what is happening in the industry in particular companies&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-15T01:35:02.387" CommunityOwnedDate="2010-09-15T01:35:02.387" />
  <row Id="3730" PostTypeId="1" CreationDate="2010-09-15T01:40:52.530" Score="12" ViewCount="429" Body="&lt;p&gt;What tools do they use? What processes? What rules do they have regarding code? How do they test their code?&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-09-17T12:44:46.257" Title="What is the development process like at Google?" Tags="&lt;development-process&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="2" />
  <row Id="3731" PostTypeId="1" CreationDate="2010-09-15T01:42:50.340" Score="1" ViewCount="104" Body="&lt;p&gt;What are the differences between UTF8 with BOM and UTF8?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="1854" LastActivityDate="2010-09-15T02:01:49.297" ClosedDate="2010-09-16T13:17:47.520" Title="What are the differences between UTF8 with BOM and UTF8?" Tags="&lt;technology&gt;&lt;software&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="3732" PostTypeId="1" CreationDate="2010-09-15T01:52:37.127" Score="21" ViewCount="1750" Body="&lt;p&gt;While we love programming there are some things that drive us crazy and we just absolutely hate dealing with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Brought from SO: &lt;a href=&quot;http://stackoverflow.com/questions/3690336/whats-your-least-favorite-thing-about-programming&quot;&gt;Original question&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I posted some answers which I agree.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:51:20.630" LastActivityDate="2010-11-14T16:06:04.460" CommunityOwnedDate="2010-09-16T19:53:24.020" ClosedDate="2011-02-16T01:53:31.420" Title="What's your least favorite thing about programming?" Tags="&lt;favorite&gt;&lt;work&gt;&lt;personality&gt;" AnswerCount="48" CommentCount="1" FavoriteCount="10" />
  <row Id="3733" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T01:53:04.600" Score="23" ViewCount="" Body="&lt;p&gt;Deadlines. Specially the arbitrary ones. It's necessary but I don't like it.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-15T01:53:04.600" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="2" />
  <row Id="3734" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T01:56:30.663" Score="19" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Users&lt;/strong&gt;. Especially ones that don't understand anything about programming and insist that you can 'easily add this feature'.&lt;/p&gt;&#xA;" OwnerUserId="1303" LastActivityDate="2010-09-15T01:56:30.663" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="4" />
  <row Id="3735" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T01:56:35.640" Score="5" ViewCount="" Body="&lt;p&gt;Handling code from programmers with very little background in programming with bad style, bad constructs, no good comments about the decision in code.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-15T01:56:35.640" CommunityOwnedDate="2010-09-16T19:53:24.020" />
  <row Id="3736" PostTypeId="2" ParentId="3731" CreationDate="2010-09-15T02:01:49.297" Score="2" ViewCount="" Body="&lt;p&gt;According to Wikipedia.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The byte order mark (BOM) is a Unicode&#xA;  character used to signal the&#xA;  endianness (byte order) of a text file&#xA;  or stream. Its code point is U+FEFF.&#xA;  BOM use is optional, and, if used,&#xA;  should appear at the start of the text&#xA;  stream. Beyond its specific use as a&#xA;  byte-order indicator, the BOM&#xA;  character may also indicate which of&#xA;  the several Unicode representations&#xA;  the text is encoded in.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;While Unicode standard allows BOM in&#xA;  UTF-8 [2], it does not require or&#xA;  recommend it[3]. Byte order has no&#xA;  meaning in UTF-8[4]  so a BOM only&#xA;  serves to identify a text stream or&#xA;  file as UTF-8 or that it was converted&#xA;  from another format that has a BOM.&#xA;  Many Windows programs (including&#xA;  Windows Notepad) add BOMs to UTF-8&#xA;  files by default.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-15T02:01:49.297" />
  <row Id="3737" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T02:02:28.197" Score="32" ViewCount="" Body="&lt;p&gt;Arrogant AND incorrect programmers. I could accept the arrogant ones. Most programmers do mistakes or take the wrong way. But a combination of both is explosive to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's worse when it's lazy (in bad sense) too.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-15T02:02:28.197" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="1" />
  <row Id="3739" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T02:07:20.237" Score="16" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Poor Documentation.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-09-15T02:07:20.237" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="2" />
  <row Id="3740" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T02:11:33.103" Score="59" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Not being able to Google punctuation and symbols.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-09-15T02:11:33.103" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="6" />
  <row Id="3741" PostTypeId="2" ParentId="3684" CreationDate="2010-09-15T02:38:32.060" Score="1" ViewCount="" Body="&lt;p&gt;I really dig the &lt;a href=&quot;http://cheat.errtheblog.com/&quot; rel=&quot;nofollow&quot;&gt;cheat&lt;/a&gt; Ruby gem. Instant command-line access to an incredible variety of cheat sheets right at your fingertips. From Apache Regex to ZSH, and pert' near everything in between, and if you don't see one, &lt;a href=&quot;http://cheat.errtheblog.com/a&quot; rel=&quot;nofollow&quot;&gt;create your own&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="194" LastActivityDate="2010-09-15T02:38:32.060" />
  <row Id="3742" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T02:46:30.760" Score="80" ViewCount="" Body="&lt;p&gt;Having to fix every computer in a 100-mile radius because &lt;strong&gt;&quot;You're good with computers, right?&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-15T02:46:30.760" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="5" />
  <row Id="3743" PostTypeId="2" ParentId="2271" CreationDate="2010-09-15T02:50:35.517" Score="0" ViewCount="" Body="&lt;p&gt;Would it then be historically accurate to call the Forth language FORTH?&lt;/p&gt;&#xA;" OwnerUserId="1860" LastActivityDate="2010-09-15T02:50:35.517" CommentCount="1" />
  <row Id="3744" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T02:52:29.957" Score="23" ViewCount="" Body="&lt;p&gt;Working with legacy code that is poorly written. Every time you have to go back and maintain the code it's like going down the rabbit hole.&lt;/p&gt;&#xA;" OwnerUserId="1299" LastActivityDate="2010-09-15T02:52:29.957" CommunityOwnedDate="2010-09-16T19:53:24.020" />
  <row Id="3745" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T02:58:02.380" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Monotony&lt;/strong&gt;: Having to implement the same solution and apply the same pattern over and over again for a problem that's already been solved.&lt;/p&gt;&#xA;" OwnerUserId="73" LastActivityDate="2010-09-15T02:58:02.380" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="4" />
  <row Id="3746" PostTypeId="2" ParentId="3629" CreationDate="2010-09-15T03:03:06.603" Score="1" ViewCount="" Body="&lt;p&gt;iPhone, to have breaks and talk to my friends.&lt;/p&gt;&#xA;" OwnerUserId="1861" LastActivityDate="2010-09-15T03:03:06.603" CommunityOwnedDate="2010-09-16T13:07:08.047" />
  <row Id="3747" PostTypeId="1" CreationDate="2010-09-15T03:08:44.410" Score="14" ViewCount="288" Body="&lt;p&gt;We have a legacy classic ASP application that's been around since 2001.  It badly needs to be re-written, but it's working fine from an end user perspective.  The reason I feel like a rewrite is necessary is that when we need to update it (which is admittedly not that often) then it takes forever to go through all the spaghetti code and fix problems.  Also, adding new features is also a pain since it was architect-ed and coded badly.  I've run cost analysis for them on maintenance but they are willing to spend more for the small maintenance jobs than a rewrite.  Any suggestions on convincing them otherwise?&lt;/p&gt;&#xA;" OwnerUserId="93" LastActivityDate="2010-10-19T21:29:41.820" Title="How can I sell a legacy program rewrite to the business?" Tags="&lt;code-quality&gt;&lt;business&gt;" AnswerCount="8" FavoriteCount="2" />
  <row Id="3748" PostTypeId="2" ParentId="3629" CreationDate="2010-09-15T03:17:30.577" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A wire coat hanger and pliers&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I need to hold up a piece of paper, or my laptop, or I want my keyboard to rest on my monitors for deskspace or whatever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It takes 5 minutes to whip up a solution to a lot of irritations.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-15T03:17:30.577" CommunityOwnedDate="2010-09-16T13:07:08.047" CommentCount="1" />
  <row Id="3749" PostTypeId="2" ParentId="3629" CreationDate="2010-09-15T03:21:51.553" Score="0" ViewCount="" Body="&lt;p&gt;Imak ergoBeads is a MUST for me&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.imakproducts.com/&quot; rel=&quot;nofollow&quot;&gt;link&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use the wrist cushion (keyboard) and the mouse cushion. Makes a big difference for coding binges.&lt;/p&gt;&#xA;" OwnerUserId="1862" LastActivityDate="2010-09-15T03:21:51.553" CommunityOwnedDate="2010-09-16T13:07:08.047" CommentCount="1" />
  <row Id="3750" PostTypeId="2" ParentId="3629" CreationDate="2010-09-15T03:23:40.143" Score="14" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Rolled up newspaper for debugging. those flies are really annoying ....&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1863" LastActivityDate="2010-09-15T03:23:40.143" CommunityOwnedDate="2010-09-15T03:23:40.143" CommentCount="2" />
  <row Id="3751" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T03:25:40.997" Score="27" ViewCount="" Body="&lt;h3&gt;Programmers&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;All of them. Especially you.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-15T03:25:40.997" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="5" />
  <row Id="3752" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T03:27:36.133" Score="37" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Ambiguous requirements&lt;/strong&gt; and expectations in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not only is this a real demotivater and energy killer, but it's impossible to ever achieve flow in this state.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-15T03:27:36.133" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="3" />
  <row Id="3753" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T03:33:22.547" Score="38" ViewCount="" Body="&lt;p&gt;Buzzwords.  Agile. RAD. Extreme. Web 2.0. Enterprise. The Cloud.  Oh, good lord, The Cloud, how I hate that term.  And the countless others I've seen over the past couple decades.  All a bunch a crap that means nothing outside their value for selling books and marketing the same old stuff as 'new'.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-15T03:33:22.547" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="6" />
  <row Id="3754" PostTypeId="2" ParentId="2291" CreationDate="2010-09-15T03:41:29.660" Score="0" ViewCount="" Body="&lt;h1&gt;Ruby&lt;/h1&gt;&#xA;" OwnerUserId="1827" LastActivityDate="2010-09-15T03:41:29.660" CommunityOwnedDate="2010-09-15T03:41:29.660" />
  <row Id="3755" PostTypeId="2" ParentId="3747" CreationDate="2010-09-15T03:43:25.987" Score="2" ViewCount="" Body="&lt;p&gt;Do you mean sell it to &lt;em&gt;your&lt;/em&gt; business, as in convincing managers to go for it?  There's no magic trick, unfortunately, to make managers who view everything in the short term to recognize long term problems.  Especially if they arent technical, they may not appreciate the technical reasons for such a thing.  The single best thing to do is what you've already done - demonstrate that its the right thing financially.  If they dont go for it, there's not much you can do other than sit back and watch things implode.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if you mean how do you sell it to a customer who is a business, thats easy.  Re-write the thing, and tell them that if they want feature X, they need to use the new system.  Sometimes, to help a customer, you need a little tough love.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-15T03:43:25.987" />
  <row Id="3756" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T03:51:20.447" Score="2" ViewCount="" Body="&lt;p&gt;I hate maintaining poorly-written code.&lt;br&gt;&#xA;I also hate colleagues that keep on nagging about old issues and requirements while I'm still doing them.&lt;/p&gt;&#xA;" OwnerUserId="1496" LastActivityDate="2010-09-15T03:51:20.447" CommunityOwnedDate="2010-09-16T19:53:24.020" />
  <row Id="3757" PostTypeId="2" ParentId="3645" CreationDate="2010-09-15T03:54:52.750" Score="2" ViewCount="" Body="&lt;p&gt;You need to practice coding if you really want to be a good developer.  If you're reading programming books, try to solve the provided exercises.&lt;/p&gt;&#xA;" OwnerUserId="1496" LastActivityDate="2010-09-15T03:54:52.750" CommentCount="6" />
  <row Id="3758" PostTypeId="2" ParentId="2291" CreationDate="2010-09-15T04:13:13.033" Score="0" ViewCount="" Body="&lt;h1&gt;TI-BASIC (TI-84)&lt;/h1&gt;&#xA;" OwnerUserId="1294" LastActivityDate="2010-09-15T04:13:13.033" CommunityOwnedDate="2010-09-15T04:13:13.033" />
  <row Id="3759" PostTypeId="2" ParentId="2291" CreationDate="2010-09-15T04:15:06.813" Score="1" ViewCount="" Body="&lt;h1&gt;68000 Assembly&lt;/h1&gt;&#xA;" OwnerUserId="170" LastActivityDate="2010-09-15T04:15:06.813" CommunityOwnedDate="2010-09-15T04:15:06.813" CommentCount="1" />
  <row Id="3760" PostTypeId="2" ParentId="3747" CreationDate="2010-09-15T04:19:03.660" Score="14" ViewCount="" Body="&lt;p&gt;I believe there's two factors you should consider that you at least didn't cover in your Q. Let me define these as I use them, then I'll get onto the business of answering your Q.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Risk&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Opportunity&lt;/em&gt; cost&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Risk is probably obvious: The chance that they pile a mountain of money into something that goes nowhere. Risk is compounded by what Brooks called &quot;Second System Effect&quot; and the rest of us call &quot;Gold Plating&quot;. Every rebuild I've seen carries risk from people who add every feature they didn't add the first time around.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Opportunity Cost in this context is the cost associated with you rewriting functionality that from the business perspective was working fine. It is Opportunity Cost because it means you don't have the opportunity to add features. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To sell something that is purely a refactor is hard because Risk and Opportunity Cost both have money attached to them from a decision making perspective. What I generally recommend is that instead of selling a rewrite of the system, you sell an &quot;improve as you go&quot; at a component level. It costs more because you have to build adapters/facades/proxies, but it's less risky and easier to sell. I've been there on the &quot;we need to rebuild it all&quot; and it just doesn't go well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And here's the rub: Over time, all systems turn into garbage unless you are disciplined enough to keep them from doing so. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which leaves me with this question back to you: If you can't sell them, or even your team, on doing the right thing day to day, what makes you think you can actually see a rewrite through?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It really does take some serious introspection to answer that question honestly. Sometimes you've been handed a system from someone who had no clue. Sometimes you've been handed a system by someone who started with the best of intentions and on the right foot but got compromised by a poor corporate culture along the way. If you can't tell which it is, you need to find out soon!&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-15T04:19:03.660" CommentCount="1" />
  <row Id="3761" PostTypeId="2" ParentId="262" CreationDate="2010-09-15T04:23:04.403" Score="3" ViewCount="" Body="&lt;p&gt;It's one of the biggest names in Enterprise programming (J2EE). I'm pretty sure we won't be seeing it going down for the next couple of years.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-09-15T04:23:04.403" CommunityOwnedDate="2011-03-14T15:05:05.090" />
  <row Id="3762" PostTypeId="2" ParentId="3233" CreationDate="2010-09-15T04:26:52.883" Score="1" ViewCount="" Body="&lt;p&gt;Because I don't like to write support documents along with application /software. Maybe some company like it, buy it and land me a job.&lt;/p&gt;&#xA;" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-06T10:56:31.180" LastActivityDate="2011-02-06T10:56:31.180" CommunityOwnedDate="2010-10-02T03:46:51.680" />
  <row Id="3763" PostTypeId="2" ParentId="3747" CreationDate="2010-09-15T04:29:14.207" Score="10" ViewCount="" Body="&lt;p&gt;Here are some ideas, all of which I've done more than once.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Nothing succeeds like success: show up with it one day&lt;/strong&gt;.  One of the key reasons things get turned down is that decision makers feel like it's not really going to be much better afterwards, or that you're not likely to be able to actually do it.  If you can put together a compelling proof of concept, and show it to them, it's easier to sell them on it.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Some of the best things I've ever written started off as stealth projects.  Things that people said were not possible.  Another one I hear a lot is, &quot;people smarter than you have tried that and failed.&quot;  When you show up with a compelling proof of concept, it pretty much decimates those arguments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't tell you how many times people have denied letting me work on a project, rebuffing every reasonable argument, just hearing none of it.  Then I show them a demo, and suddenly they think the project is a great idea.  But do be careful: the more you needle someone and the more they insist the answer is no, you need to be careful: they have to have an honorable way of changing their mind without resenting you for it or feeling wrong.  So be diplomatic, ideally try to make them think it was their idea.  or have a good relationship with them, alternatively.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key to a great demo is planning.  Don't start by thinking of what the product should be.  Start by thinking of what the most awesome demo would be like.  You have to do enough engineering that your demo isn't just pure vaporware, but what you want to implement first is whatever it'll take to make that demo rock their socks.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Open up new possibilities with the new design.&lt;/strong&gt; There was a system I rewrote that fit your situation exactly.  It was a terrible pain to work on the system. We didn't have to chagne it very often, but when we did, it hurt my soul and made me want to cry.  The system was written in VB.Net, and had all the business logic interspersed all over the GUI code (which was a a heavyweight .NET app).  Management didn't want to redo it.  I redid the backend using a webservice, and then showed how doing that would enable us to add more than one UI to the product.  This was a product for managing telephone calls in call centers.  I sold management on the idea by showing them a mockup that worked on both a web site and also on a smartphone.  They started immediately thinking of other kinds of new products they could use by having multiple UI's on this thing.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Establish a beachhead / Don't eat the elephant all at once: build your perfect system a little at a time&lt;/strong&gt;.  Spend a little time envisioning what your ideal system would look like. Envision what that architecture is.  Draw a block diagram of it on a piece of paper, and lock that image in your mind.  Then next time you need to fix something, try to build one piece of that ideal system.  You can then build an adapter that will let you plug it in to the old system.  The adapter will insulate your beautiful new piece from the ugly vagaries of the old crappy code.  Piece by piece, you can replace the entire system that way.  The first little piece is the hardest part-- it's like establishing a beachhead on enemy territory.  But once your beachhead is established, moving forward gets progressively easier.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;For example, we had this huge body of code written in PHP one place I worked.  My team and I wanted to use Python, but management didn't want to fund us to do that.  We started adding new functions using a Python webservice, and using curl to access those from PHP.  It wasn't a total rewrite, but once we built the facilities to make it easy to integrate the codebases we had established a beachhead, we were able to move the rest of it forward more easily from there.  I've done the same thing with doggy legacy systems in languages like COBOL and RPG/3, calling out to Java.&lt;/p&gt;&#xA;" OwnerUserId="1870" LastEditorUserId="1870" LastEditorDisplayName="" LastEditDate="2010-09-15T04:35:29.607" LastActivityDate="2010-09-15T04:35:29.607" CommentCount="4" />
  <row Id="3764" PostTypeId="2" ParentId="3629" CreationDate="2010-09-15T04:48:57.800" Score="0" ViewCount="" Body="&lt;p&gt;A &lt;a href=&quot;http://en.wikipedia.org/wiki/Carrom&quot; rel=&quot;nofollow&quot;&gt;carrom board&lt;/a&gt;, to catch up on a quick game as a celebration when some issue gets solved.&lt;/p&gt;&#xA;" OwnerUserId="1709" LastActivityDate="2010-09-15T04:48:57.800" CommunityOwnedDate="2010-09-16T13:07:08.047" />
  <row Id="3765" PostTypeId="2" ParentId="3629" CreationDate="2010-09-15T04:52:39.307" Score="4" ViewCount="" Body="&lt;p&gt;A paper clip. I have to have something to fidget with when I'm thinking and something that is less expensive than my monitor or pc to throw when some dumb IE6 bug gets reported.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-15T04:52:39.307" CommunityOwnedDate="2010-09-16T13:07:08.047" CommentCount="1" />
  <row Id="3766" PostTypeId="1" CreationDate="2010-09-15T04:58:54.707" Score="6" ViewCount="592" Body="&lt;p&gt;I mean seriously, how do you tackle a guy who even changes our variable names (even though they are reasonable) and sends back the code (after review) like 4 times? I know for sure I'm not that bad a developer!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So many times, he enforces his ideals, which are not even best practices in the industry! I point out to him whatever link I can find on the internet trying to prove my point, but in the end he uses his &lt;em&gt;authority&lt;/em&gt; to shut us out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sick and tired. Frustrated. Do I have any way out other than quitting the job?&lt;/p&gt;&#xA;" LastEditorUserId="104" LastEditorDisplayName="" LastEditDate="2010-09-17T04:22:32.227" LastActivityDate="2011-02-09T20:59:49.430" CommunityOwnedDate="2010-09-16T03:50:20.620" Title="How to tackle a boss who thinks everybody in this world is wrong except him?" Tags="&lt;jobs&gt;&lt;boss&gt;" AnswerCount="9" CommentCount="9" FavoriteCount="2" />
  <row Id="3767" PostTypeId="2" ParentId="3645" CreationDate="2010-09-15T05:03:51.013" Score="1" ViewCount="" Body="&lt;p&gt;It depends on whether you're someone's manager that's always trying to tell them the &quot;right way&quot; to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously though... having a broad knowledge has served me well. And, if you're learning, than maybe the issue is you're focusing too much on technique and technology than finding problems to solve or neat ideas to bring to fruition? &lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-15T05:03:51.013" CommentCount="2" />
  <row Id="3768" PostTypeId="2" ParentId="3766" CreationDate="2010-09-15T05:04:32.137" Score="0" ViewCount="" Body="&lt;p&gt;Here's some ideas:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Intelligently present him with the cost that's incurred by his &quot;reviews&quot;.&lt;/li&gt;&#xA;&lt;li&gt;Have a team &quot;intervention&quot; (yes, like the show).&lt;/li&gt;&#xA;&lt;li&gt;Physically tackle him :) &lt;/li&gt;&#xA;&lt;li&gt;If all else fails, I see no choice but to quit.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1875" LastActivityDate="2010-09-15T05:04:32.137" CommentCount="2" />
  <row Id="3770" PostTypeId="2" ParentId="3766" CreationDate="2010-09-15T05:12:26.990" Score="20" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Quit and find another job.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing something about your boss is a lost cause so you might as well just find a new job and hope that your new boss isn't a douche like your previous one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, judging by his character, I'm pretty sure that even his boss won't be able to do anything about his attitude problems.&lt;/p&gt;&#xA;" OwnerUserId="500" LastEditorUserId="500" LastEditorDisplayName="" LastEditDate="2010-09-15T06:53:25.323" LastActivityDate="2010-09-15T06:53:25.323" CommentCount="6" />
  <row Id="3772" PostTypeId="2" ParentId="1321" CreationDate="2010-09-15T05:20:24.023" Score="6" ViewCount="" Body="&lt;p&gt;Are you looking for a universal tell that all programmers have? The &lt;a href=&quot;http://en.wikipedia.org/wiki/Diagnostic_and_Statistical_Manual_of_Mental_Disorders&quot; rel=&quot;nofollow&quot;&gt;DSM&lt;/a&gt; says:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Pupil dilation upon the mention of a power of two, or one less.&#xA;Visible discomfort upon hearing that this number is &quot;so random&quot;.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1878" LastActivityDate="2010-09-15T05:20:24.023" CommunityOwnedDate="2010-09-15T05:20:24.023" CommentCount="3" />
  <row Id="3773" PostTypeId="2" ParentId="3766" CreationDate="2010-09-15T05:29:07.983" Score="2" ViewCount="" Body="&lt;p&gt;Talk to his boss if he has one and explain your frustration. Explain how much time and money is being wasted by this person.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they won't do anything about him, or if he doesn't have a boss then start searching for another job.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-15T05:29:07.983" />
  <row Id="3775" PostTypeId="2" ParentId="913" CreationDate="2010-09-15T05:47:51.067" Score="1" ViewCount="" Body="&lt;p&gt;I was pretty sceptical about ergonomic mice until about three years ago, when I found &lt;a href=&quot;http://www.evoluent.com/vm3.html&quot; rel=&quot;nofollow&quot;&gt;Evoluent Vertical Mouse&lt;/a&gt;, it was one of the standard-issue mice at Google at the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/7ZRil.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other ergonomic mice always reminded me of some kind of gadget from a bad 80s sci-fi movie and did not feel much different from ordinary mice in hand. And the first time I tried this one it felt very extremely natural for the hand. Never looked back since.&lt;/p&gt;&#xA;" OwnerUserId="703" LastActivityDate="2010-09-15T05:47:51.067" CommunityOwnedDate="2010-09-15T05:47:51.067" CommentCount="1" />
  <row Id="3777" PostTypeId="2" ParentId="2291" CreationDate="2010-09-15T05:59:03.457" Score="0" ViewCount="" Body="&lt;p&gt;Basic on a Sharp PC 1211&lt;/p&gt;&#xA;" OwnerUserId="1879" LastActivityDate="2010-09-15T05:59:03.457" CommunityOwnedDate="2010-09-15T05:59:03.457" />
  <row Id="3779" PostTypeId="2" ParentId="3766" CreationDate="2010-09-15T06:07:11.457" Score="0" ViewCount="" Body="&lt;p&gt;I agree with Terence - A guy who fails to admit faults and is oblivious to his own stupidity will never see reason.&lt;/p&gt;&#xA;" OwnerUserId="1880" LastEditorUserId="1996" LastEditorDisplayName="" LastEditDate="2011-02-09T20:01:31.357" LastActivityDate="2011-02-09T20:01:31.357" />
  <row Id="3780" PostTypeId="2" ParentId="3425" CreationDate="2010-09-15T06:12:38.490" Score="5" ViewCount="" Body="&lt;h2&gt;Smalltalk.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Everything's done with message sending, so &lt;code&gt;1 + 2 * 3&lt;/code&gt; means &quot;send * with parameter 3 to the object returned by sending the message + with parameter 2 to the object 1&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That throws people (it threw me) because of how we usually write maths, but since I can never remember C's operator precedence I cope in the same manner in both languages - I use ()s to group terms: &lt;code&gt;1 + (2 * 3)&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-09-15T06:22:14.727" LastActivityDate="2010-09-15T06:22:14.727" />
  <row Id="3781" PostTypeId="2" ParentId="3425" CreationDate="2010-09-15T06:21:31.263" Score="2" ViewCount="" Body="&lt;h2&gt;Prolog.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Well, kind've. There are standard operators, with standard precedence... but you can trivially define operators with arbitrary predence, because &lt;code&gt;1 + 2&lt;/code&gt; is really the goal &lt;code&gt;+(1, 2)&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may define infix (&lt;code&gt;1 + 2&lt;/code&gt;), prefix (&lt;code&gt;++X&lt;/code&gt;) and postfix (&lt;code&gt;X++&lt;/code&gt;) operators, with arbitrary associativity (so left, right or both).&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-15T06:21:31.263" />
  <row Id="3782" PostTypeId="2" ParentId="610" CreationDate="2010-09-15T06:25:29.303" Score="5" ViewCount="" Body="&lt;h2&gt;Smalltalk&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Smalltalk's blocks/anonymous functions/closures have the lightest-weight syntax I have ever seen:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#(1 2 3) select: [:each | each odd]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-15T06:25:29.303" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="3" />
  <row Id="3785" PostTypeId="2" ParentId="3766" CreationDate="2010-09-15T06:51:45.220" Score="15" ViewCount="" Body="&lt;p&gt;Introduce a &lt;a href=&quot;http://stackoverflow.com/questions/2349378/new-programming-jargon-you-coined/2444361#2444361&quot;&gt;duck&lt;/a&gt; before submitting your code for review.&lt;/p&gt;&#xA;" OwnerUserId="1886" LastActivityDate="2010-09-15T06:51:45.220" CommentCount="1" />
  <row Id="3787" PostTypeId="2" ParentId="3766" CreationDate="2010-09-15T06:54:57.643" Score="5" ViewCount="" Body="&lt;p&gt;Been there, done that. Some bosses see (junior) colleagues as competitors who will undermine them and lose them a job. In some cases they might be correct. Either way, they want to force them out through unreasonable demands.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there's a REALLY good reason to try to keep the job (eg you live next door) you can try to put everything he says down in a formal coding standard. If he signs off on it, at least it can remove the frustrations of changing stuff, even if you have disagreements over the standard.&lt;/p&gt;&#xA;" OwnerUserId="114" LastActivityDate="2010-09-15T06:54:57.643" CommentCount="0" />
  <row Id="3789" PostTypeId="1" AcceptedAnswerId="3794" CreationDate="2010-09-15T07:14:29.903" Score="13" ViewCount="783" Body="&lt;p&gt;When I was a child I learned programming with BASIC, but Computer Science courses taught Pascal.&#xA;When I went to university the first language taught was C (or Fortran for some non-IT courses). Today it is Java (and still Fortran).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides academia, which language should learn someone who want to learn programming?&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-11-29T01:51:24.667" LastActivityDate="2010-11-29T16:04:09.853" Title="First language to learn" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;intro-to-programming&gt;" AnswerCount="16" CommentCount="0" FavoriteCount="4" />
  <row Id="3790" PostTypeId="2" ParentId="3789" CreationDate="2010-09-15T07:22:40.293" Score="9" ViewCount="" Body="&lt;p&gt;I find Java and Python to be great languages to start out with because of their friendly syntax.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-09-15T07:22:40.293" CommentCount="3" />
  <row Id="3791" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T07:26:12.857" Score="1" ViewCount="" Body="&lt;p&gt;Having to reinvent the wheel because an existing framework lacks the couple important features you need for the project and there's no way to change/add that behavior to the framework.  Or worse, redesigning your application to bend over backwards to fit within the confines of the framework.&lt;/p&gt;&#xA;" OwnerUserId="62" LastActivityDate="2010-09-15T07:26:12.857" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="4" />
  <row Id="3792" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T07:30:05.293" Score="14" ViewCount="" Body="&lt;p&gt;Learn &lt;strong&gt;concepts&lt;/strong&gt;. You can Google the syntax.&lt;/p&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-09-15T07:30:05.293" CommunityOwnedDate="2010-09-15T18:31:41.813" CommentCount="1" />
  <row Id="3794" PostTypeId="2" ParentId="3789" CreationDate="2010-09-15T07:32:33.263" Score="5" ViewCount="" Body="&lt;p&gt;I believe C# will be a good choice as it allows one to build some simple applications with nice looking GUI relatively easily. Further, it introduces them to the world of OOP and also teaches .Net framework.&lt;/p&gt;&#xA;" OwnerUserId="123" LastActivityDate="2010-09-15T07:32:33.263" CommentCount="5" />
  <row Id="3795" PostTypeId="2" ParentId="3789" CreationDate="2010-09-15T07:34:23.020" Score="2" ViewCount="" Body="&lt;p&gt;I think, Ruby's &quot;principle of least astonishment&quot; could be helpful. Processing could be interesting for multimedia.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-09-15T07:34:23.020" />
  <row Id="3796" PostTypeId="2" ParentId="3789" CreationDate="2010-09-15T07:36:00.760" Score="28" ViewCount="" Body="&lt;p&gt;It depends to what extent you want to learn programming.  If you want to build a solid foundation from the beginning, go for C or C++ (C++ might be a little frustrating to start off with).  Introduction to the concepts of pointers and raw memory management will be invaluable later in your career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you just want to start hacking and build something &lt;em&gt;now&lt;/em&gt;, a higher level language would be sufficient.  Maybe Ruby would be a good investment?&lt;/p&gt;&#xA;" OwnerUserId="1388" LastActivityDate="2010-09-15T07:36:00.760" CommentCount="16" />
  <row Id="3797" PostTypeId="2" ParentId="3629" CreationDate="2010-09-15T07:49:49.630" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;A good keyboard&lt;/li&gt;&#xA;&lt;li&gt;Glasses designed for watching monitors&lt;/li&gt;&#xA;&lt;li&gt;Fountain pen and some paper&lt;/li&gt;&#xA;&lt;li&gt;About 60 cm x 40 cm whiteboard with pen and cleaner&lt;/li&gt;&#xA;&lt;li&gt;Small lamp behind the monitor (at night)&lt;/li&gt;&#xA;&lt;li&gt;Big monitor&lt;/li&gt;&#xA;&lt;li&gt;Remote controller for the hifi (at home, for controlling volume)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As figure shown, I'm somewhere halfway between ergonomy expert and autist.&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-09-15T07:49:49.630" CommunityOwnedDate="2010-09-16T13:07:08.047" />
  <row Id="3798" PostTypeId="2" ParentId="2291" CreationDate="2010-09-15T07:49:52.313" Score="0" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Locomotive_BASIC&quot; rel=&quot;nofollow&quot;&gt;Locomotive BASIC&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;On the Amstrad CPC 464&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-09-15T07:49:52.313" CommunityOwnedDate="2010-09-15T07:49:52.313" />
  <row Id="3799" PostTypeId="2" ParentId="2291" CreationDate="2010-09-15T07:52:33.640" Score="0" ViewCount="" Body="&lt;h2&gt;GFA BASIC&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;On the &lt;strong&gt;Atari ST&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1889" LastActivityDate="2010-09-15T07:52:33.640" CommunityOwnedDate="2010-09-15T07:52:33.640" />
  <row Id="3800" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T08:03:10.077" Score="7" ViewCount="" Body="&lt;p&gt;It's rather sad, that there are Non-Programming Programmers in the scene. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I find it difficult to believe, but&#xA;  the reports keep pouring in via&#xA;  Twitter and email: many candidates who&#xA;  show up for programming job interviews&#xA;  can't program. At all.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;See the full story at &lt;a href=&quot;http://www.codinghorror.com/blog/2010/02/the-nonprogramming-programmer.html&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/2010/02/the-nonprogramming-programmer.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-09-15T08:03:10.077" CommunityOwnedDate="2010-09-16T19:53:24.020" />
  <row Id="3801" PostTypeId="2" ParentId="2783" CreationDate="2010-09-15T08:07:24.537" Score="2" ViewCount="" Body="&lt;p&gt;I like spaces. But fortunately they have invented code formatters so you can format the code he way you like.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-15T08:07:24.537" />
  <row Id="3802" PostTypeId="2" ParentId="3747" CreationDate="2010-09-15T08:14:47.517" Score="2" ViewCount="" Body="&lt;p&gt;I have had the opportunity for a complete rewrite twice (different jobs).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first was a rather small app. The rewrite was estimated to take two programmers six months. We made the deadline and the customer was very happy. Unfortunately despite the demand, marketing dropped the app so the effort was wasted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second was the main app of a small company. The rewrite was completely underestimated and almost ruined the company. In the end the project was a succes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with rewrites is that it does not add any functionality to the app. Which means it is hard to sell. So it is better to rewrite small pieces at each time. Refactoring++.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-15T08:14:47.517" />
  <row Id="3804" PostTypeId="2" ParentId="2306" CreationDate="2010-09-15T08:19:51.560" Score="1" ViewCount="" Body="&lt;p&gt;I use XML as an exchange format and sometimes to keep application settings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the 449.000 line file is a exchange file, there is no real problem, unless performance is an issue. &lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-15T08:19:51.560" />
  <row Id="3805" PostTypeId="2" ParentId="3629" CreationDate="2010-09-15T08:20:47.380" Score="0" ViewCount="" Body="&lt;p&gt;some good old Blue Tack! &#xA;I use it to put all kinds of papers, you know diagrams and tasks lists, on the walls without use of pins or magnets. cause my cube walls aren't magnetic nor does it have corkboard-y surface. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also can't live without my handy whiteboard :)&lt;/p&gt;&#xA;" OwnerUserId="1895" LastActivityDate="2010-09-15T08:20:47.380" CommunityOwnedDate="2010-09-16T13:07:08.047" />
  <row Id="3806" PostTypeId="2" ParentId="3789" CreationDate="2010-09-15T08:20:56.320" Score="1" ViewCount="" Body="&lt;p&gt;I started off using QBASIC (haha).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I think if someone has no prior programming experience, then maybe &lt;a href=&quot;http://msdn.microsoft.com/en-us/beginner/ff384126.aspx&quot; rel=&quot;nofollow&quot;&gt;SMALLBASIC&lt;/a&gt; is the way to go?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Not for projects etc, but to learn how programming works).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;^_^&lt;/p&gt;&#xA;" OwnerUserId="1891" LastActivityDate="2010-09-15T08:20:56.320" CommentCount="3" />
  <row Id="3807" PostTypeId="2" ParentId="2516" CreationDate="2010-09-15T08:24:22.370" Score="4" ViewCount="" Body="&lt;p&gt;Bugs related to the current date.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I once heard a story about a bug that couldn't be reproduced but it kept comming back. Eventualy they found out, the bug only occured in the last three months of the year, on days 10-31 and on a wednesday. Those dates: Wednesday xx-xx  where just one character to big for the buffer overwriting other data.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-15T08:24:22.370" CommentCount="2" />
  <row Id="3808" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T08:25:55.380" Score="4" ViewCount="" Body="&lt;p&gt;Working with bad programmers. The sort who have no business doing what they do yet have somehow managed to make a career out of it, despite their sloppy bug-ridden code, love of anti-patterns, and general lack of ability to keep up with new developments unless sent on a training course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately a development team can only be as good as it's lowest common denominator.&lt;/p&gt;&#xA;" OwnerUserId="562" LastActivityDate="2010-09-15T08:25:55.380" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="1" />
  <row Id="3810" PostTypeId="2" ParentId="610" CreationDate="2010-09-15T08:35:54.370" Score="0" ViewCount="" Body="&lt;h2&gt;Javascript&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Resize the Length of an Array&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;length property is a not read only. You can use it to increase or decrease the size of an array.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var myArray = [1,2,3];&#xA;myArray.length // 3 elements.&#xA;myArray.length = 2; //Deletes the last element.&#xA;myArray.length = 20 // Adds 18 elements to the array;&#xA;//the elements have the undefined value. A sparse array.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-09-15T08:35:54.370" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="2" />
  <row Id="3811" PostTypeId="1" AcceptedAnswerId="3844" CreationDate="2010-09-15T08:38:41.770" Score="8" ViewCount="348" Body="&lt;p&gt;I've been considering moving to a new city (getting seduced by those big city lights), and I'm trying to decide if my lack of &quot;computer science&quot;-y skills is going to make me overly uncompetitive. Let me explain my situation a bit more:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Programming since jr. high school, professionally since 2004. I've worked for a small company that does custom web applications (PHP) since 2006. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I've studied design patterns on my own, and used them in my work. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Worked with MVC frameworks (PHP) for a couple years now. I have a strong understanding of how to write good, maintainable MVC code that adheres to the principles of MVC (rather than just cramming code into wherever I can in the framework.) &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Recently done some work with C#, through which I'm learning dependency injection and the MVVM pattern. Grokking these, but still a ways to go.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Full complement of web development skills (normalized databases, SQL, HTML, CSS, javascript), and I'm very confident of my skills in these. Also aware of security issues, and how to write a secure application. My main deficiency is scalability, which I've never had a need to learn, unfortunately.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Where I get nervous is with the things you'd learn in a CS degree. My degree is in aerospace engineering, not CS, but I've decided that programming is the thing I really care about. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I know:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;basic data structures: I took a class in which I implemented basic linked lists, and queues and stacks built on those. I've written a basic binary tree (inserts, various traversals, but not removal (I was really drunk when I wrote the code, and it turned out not to work at all)). I know about hash tables, and understand some of the principles of their implementation.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I understand big-O notation, but since I'm not really familiar with algorithms, I suspect I might miss interview questions about this topic. (what's the worst-case insertion time into a hash table? I have no idea.) &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I've done a little bit of functional programming by way of javascript, python, and dabbling in haskell. (I realize the first two aren't functional programming languages, but they have functional aspects to them). I understand currying and higher-order functions.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What I don't know:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;don't really know formal algorithms at all.  I couldn't sort my way out of a paper bag (well &lt;em&gt;maybe&lt;/em&gt; bubble sort, which I know is O(n&lt;sup&gt;2&lt;/sup&gt;)). I guess I know some of their names.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;never written a parser, or compiler, or any component of an OS. I've never done anything interesting with concurrency (e.g., anything beyond using basic asynchronous calls in .Net to keep my UI from blocking.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I &lt;em&gt;want&lt;/em&gt; to learn all these things, purely out of interest, but for now I simply don't have time right now with main job + side job + life outside programing (&lt;em&gt;gasp!&lt;/em&gt; I know). I don't want to put my larger life plans on hold unnecessarily if I don't have to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not aiming for a Google or a Microsoft, but I'd like to at least get a job that's interesting. How much will I be held back by the deficiencies I've listed? I feel relatively confident that in a job I would actually apply for and get, I would be able to perform very well, but what about interviews? How wary would you be of hiring me, given what I've listed.&lt;/p&gt;&#xA;" OwnerUserId="1664" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-15T11:49:58.350" LastActivityDate="2010-10-14T21:46:48.557" Title="How crucial are computer science topics toward getting a job?" Tags="&lt;jobs&gt;&lt;career&gt;&lt;interview&gt;" AnswerCount="7" CommentCount="4" FavoriteCount="1" />
  <row Id="3812" PostTypeId="2" ParentId="3363" CreationDate="2010-09-15T08:41:09.180" Score="2" ViewCount="" Body="&lt;p&gt;Not a exactly a comment. But in a C# project I found the following:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#region Gurke&#xA;...&#xA;#endregion&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&quot;Gurke&quot; is the german word for cucumber.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-15T08:41:09.180" CommunityOwnedDate="2010-09-15T08:41:09.180" CommentCount="1" />
  <row Id="3813" PostTypeId="2" ParentId="3789" CreationDate="2010-09-15T08:47:16.503" Score="10" ViewCount="" Body="&lt;p&gt;If you want to truly learn programming, read &lt;a href=&quot;http://www-mitpress.mit.edu/sicp/full-text/book/book.html&quot; rel=&quot;nofollow&quot;&gt;SICP&lt;/a&gt; and do all the exercises in &lt;a href=&quot;http://en.wikipedia.org/wiki/Scheme_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;scheme&lt;/a&gt;. Scheme will certainly never be the language you'll use to program software. But for learning it is a good choice as you can pretty much use every kind of programming paradigm with it (procedural, functional, oo, macros, closures, tail recursion, first-order functions...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then learn C (not C++) to create programs for non-classic architectures like, for example, for fun projects on the nintendo DS (2 ARM CPU (ARM7 and ARM9), different memory banks, volatile i/o registers, many input methods, adhoc wifi, touch screen, scarce resources) Through this kind of exercises, you can learn details of the compilation process with programs running on real machines, not virtual ones (gcc specs files, linking process, ABI) and debug in difficult situations. It forces to understand the machine logic, buses, memories, malloc, freeing of memory, etc in real environments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that you have lots of subjects to learn that are not directly dependent on the language (networking, gui programming, databases, web programming...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read the article &lt;a href=&quot;http://norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;Teach Yourself Programming in Ten Years&lt;/a&gt; for more ideas on mastering the art of programming : on appendix, you'll have criterias for choosing a programming language :&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is what Peter Norvig have said :&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Several people have asked what&#xA;  programming language they should learn&#xA;  first. There is no one answer, but&#xA;  consider these points:&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;Use your friends. When asked &quot;what operating system should I use,&#xA;  Windows, Unix, or Mac?&quot;, my answer is&#xA;  usually: &quot;use whatever your friends&#xA;  use.&quot; The advantage you get from&#xA;  learning from your friends will offset&#xA;  any intrinsic difference between OS,&#xA;  or between programming languages. Also&#xA;  consider your future friends: the&#xA;  community of programmers that you will&#xA;  be a part of if you continue. Does&#xA;  your chosen language have a large&#xA;  growing community or a small dying&#xA;  one? Are there books, web sites, and&#xA;  online forums to get answers from? Do&#xA;  you like the people in those forums?&lt;/li&gt;&#xA;  &lt;li&gt;Keep it simple. Programming languages such as C++ and Java are&#xA;  designed for professional development&#xA;  by large teams of experienced&#xA;  programmers who are concerned about&#xA;  the run-time efficiency of their code.&#xA;  As a result, these languages have&#xA;  complicated parts designed for these&#xA;  circumstances. You're concerned with&#xA;  learning to program. You don't need&#xA;  that complication. You want a language&#xA;  that was designed to be easy to learn&#xA;  and remember by a single new&#xA;  programmer.&lt;/li&gt;&#xA;  &lt;li&gt;Play. Which way would you rather learn to play the piano: the normal,&#xA;  interactive way, in which you hear&#xA;  each note as soon as you hit a key, or&#xA;  &quot;batch&quot; mode, in which you only hear&#xA;  the notes after you finish a whole&#xA;  song? Clearly, interactive mode makes&#xA;  learning easier for the piano, and&#xA;  also for programming. Insist on a&#xA;  language with an interactive mode and&#xA;  use it. &lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;  &#xA;  &lt;p&gt;Given these criteria, my&#xA;  recommendations for a first&#xA;  programming language would be Python&#xA;  or Scheme. But your circumstances may&#xA;  vary, and there are other good&#xA;  choices. If your age is a&#xA;  single-digit, you might prefer Alice&#xA;  or Squeak (older learners might also&#xA;  enjoy these). The important thing is&#xA;  that you choose and get started.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1905" LastEditorUserId="1905" LastEditorDisplayName="" LastEditDate="2010-09-15T15:18:58.103" LastActivityDate="2010-09-15T15:18:58.103" CommentCount="5" />
  <row Id="3814" PostTypeId="2" ParentId="3629" CreationDate="2010-09-15T08:47:29.283" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Snus&quot; rel=&quot;nofollow&quot;&gt;Snus&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1504" LastActivityDate="2010-09-15T08:47:29.283" CommunityOwnedDate="2010-09-16T13:07:08.047" />
  <row Id="3815" PostTypeId="2" ParentId="610" CreationDate="2010-09-15T08:49:32.363" Score="-4" ViewCount="" Body="&lt;h2&gt;Java&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;obviously the main method &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public static void main (String [] args)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Getters and Setters method&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Setter&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public void setVar(datatype variable) {&#xA;  privateVar = variable;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Getter&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public datatype getVar() {&#xA;  return privateVar;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1373" LastEditorUserId="1968" LastEditorDisplayName="" LastEditDate="2010-12-08T03:52:32.607" LastActivityDate="2010-12-08T03:52:32.607" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="4" />
  <row Id="3817" PostTypeId="2" ParentId="3629" CreationDate="2010-09-15T09:04:13.963" Score="2" ViewCount="" Body="&lt;p&gt;Jeff Atwood does a piece on this every year on Coding Horror.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2010/08/whats-on-your-utility-belt.html&quot; rel=&quot;nofollow&quot;&gt;What's On Your Utility Belt?&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;For me, I always have my leatherman with me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't count the amount of times I used the screw-driver and pliers.&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-15T09:04:13.963" CommunityOwnedDate="2010-09-16T13:07:08.047" CommentCount="1" />
  <row Id="3818" PostTypeId="2" ParentId="3789" CreationDate="2010-09-15T09:04:22.403" Score="2" ViewCount="" Body="&lt;p&gt;I started off in Pascal way back when. I'd go for C -- it doesn't coddle you in any way (so you'll be happily surprised when Python doesn't eat your soul after a mistyped bit of pointer math), and it smacks you in the face with really important, low-level concepts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel like learning C is like learning to drive on a manual transmission -- once you get the hang of it it really isn't that hard, and once you're good at it you'll be confident in your ability to drive any car any time.&lt;/p&gt;&#xA;" OwnerUserId="1648" LastActivityDate="2010-09-15T09:04:22.403" />
  <row Id="3819" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T09:11:54.520" Score="26" ViewCount="" Body="&lt;p&gt;Never feeling finished.&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-15T09:11:54.520" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="3" />
  <row Id="3820" PostTypeId="2" ParentId="3629" CreationDate="2010-09-15T09:12:30.623" Score="2" ViewCount="" Body="&lt;p&gt;MP3 Player&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So that I can enjoy coding while listening music. Music is a great source of inspiration and also make me feel relax all the time&lt;/p&gt;&#xA;" OwnerUserId="1474" LastActivityDate="2010-09-15T09:12:30.623" CommunityOwnedDate="2010-09-16T13:07:08.047" />
  <row Id="3821" PostTypeId="2" ParentId="3629" CreationDate="2010-09-15T09:14:28.633" Score="1" ViewCount="" Body="&lt;p&gt;smiley or tension ball to play with while we think :)&lt;/p&gt;&#xA;" OwnerUserId="186" LastActivityDate="2010-09-15T09:14:28.633" CommunityOwnedDate="2010-09-16T13:07:08.047" />
  <row Id="3822" PostTypeId="2" ParentId="3363" CreationDate="2010-09-15T09:18:45.770" Score="3" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;// This code is copied from some website from internet and should not comes under the deployment made under the developer who developed this web-Page[Web page name]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1474" LastActivityDate="2010-09-15T09:18:45.770" CommunityOwnedDate="2010-09-15T09:18:45.770" />
  <row Id="3823" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T09:21:13.207" Score="5" ViewCount="" Body="&lt;p&gt;Changing requirements all the time make me annoy.&lt;/p&gt;&#xA;" OwnerUserId="1474" LastActivityDate="2010-09-15T09:21:13.207" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="1" />
  <row Id="3824" PostTypeId="1" CreationDate="2010-09-15T09:22:54.177" Score="12" ViewCount="447" Body="&lt;p&gt;I've been involved with many projects in several companies because I've been a developer for a long time and I'm a contractor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I estimate that &lt;strong&gt;less than 20%&lt;/strong&gt; of projects are methodically tested. With methodically tested I mean any testing beyond ad-hoc no plan testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also estimate that &lt;strong&gt;less than 10%&lt;/strong&gt; of projects are thoroughly methodically tested where they have dedicated testers as part of the team, test plan document, where developers write automated tests and then they also track test coverage and measure results. &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Two questions&lt;/h2&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What are your percentage estimates about this issue?&lt;/li&gt;&#xA;&lt;li&gt;What's your professional experience regarding software testing?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;h2&gt;Additional note&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Since methodical testing question may get quite biased answers (people like to brag about being superior to others) I &lt;strong&gt;encourage&lt;/strong&gt; other developers (those that're not exposed to methodical testing) to provide their answer as well, because otherwise it will look like testing is being done everywhere... except at your company.&lt;/p&gt;&#xA;" OwnerUserId="1894" LastEditorUserId="1894" LastEditorDisplayName="" LastEditDate="2010-09-15T12:43:45.773" LastActivityDate="2010-09-22T00:34:57.570" Title="Is software testing actually done on professional projects?" Tags="&lt;software&gt;&lt;experience&gt;&lt;testing&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="4" />
  <row Id="3825" PostTypeId="2" ParentId="3629" CreationDate="2010-09-15T09:25:40.667" Score="1" ViewCount="" Body="&lt;p&gt;A Kindle for reading away from the screen. Just email whatever long thing I'm reading to it to give my eyes a rest.&lt;/p&gt;&#xA;" OwnerUserId="1217" LastActivityDate="2010-09-15T09:25:40.667" CommunityOwnedDate="2010-09-16T13:07:08.047" />
  <row Id="3826" PostTypeId="2" ParentId="3419" CreationDate="2010-09-15T09:30:19.107" Score="0" ViewCount="" Body="&lt;p&gt;Orkut, Myspace - ASP.NET&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Facebook - PHP&lt;/p&gt;&#xA;" OwnerUserId="1474" LastActivityDate="2010-09-15T09:30:19.107" CommunityOwnedDate="2010-09-15T09:30:19.107" CommentCount="2" />
  <row Id="3827" PostTypeId="2" ParentId="3629" CreationDate="2010-09-15T09:31:22.310" Score="0" ViewCount="" Body="&lt;p&gt;My &lt;strong&gt;Herman Miller's Aeron&lt;/strong&gt; chair.&lt;/p&gt;&#xA;" OwnerUserId="1894" LastActivityDate="2010-09-15T09:31:22.310" CommunityOwnedDate="2010-09-16T13:07:08.047" CommentCount="2" />
  <row Id="3828" PostTypeId="2" ParentId="2846" CreationDate="2010-09-15T09:40:49.243" Score="22" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;HTML&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hate HTML the most, I know it is not a programming language but this is what comes to my mind. I hate it because while developing web pages if I am spending 10 hours for coding I spend 20 hours to fix the HTML breaks and also after fixing HTML issue sometimes it works in one browser and fails in another. Yaak !! truely annoying&lt;/p&gt;&#xA;" OwnerUserId="1474" LastActivityDate="2010-09-15T09:40:49.243" CommunityOwnedDate="2010-09-15T09:40:49.243" CommentCount="3" />
  <row Id="3831" PostTypeId="2" ParentId="3824" CreationDate="2010-09-15T10:17:52.927" Score="2" ViewCount="" Body="&lt;p&gt;The three companies I have worked for during the last 15 years all had unit tests which were run automatically. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At two of those companies I pushed for introducing them.&lt;/p&gt;&#xA;" OwnerUserId="1512" LastActivityDate="2010-09-15T10:17:52.927" CommentCount="3" />
  <row Id="3832" PostTypeId="2" ParentId="3824" CreationDate="2010-09-15T10:19:55.973" Score="1" ViewCount="" Body="&lt;p&gt;In 10 years I never worked on a project with formal code testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my current job we only have functional testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is that no one in the management even know about code testing. Test department don't even know about code testing, they just follow the high level specification and verify if we comply from a behavioral/functional standpoint.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We don't have a qualified software leader that forces us to code well. The result is spaghetti code, lot of regressions, missed schedules and so on...&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-15T10:19:55.973" CommentCount="3" />
  <row Id="3836" PostTypeId="2" ParentId="2846" CreationDate="2010-09-15T10:39:55.523" Score="22" ViewCount="" Body="&lt;p&gt;Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other languages you'd expect length() to be called &quot;length&quot; and be a method, in Python it's &quot;len&quot; and a global function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Object-orientation in general seems to be an after-thought, encapsulation is based on dictionaries and name-mangling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The scope bleeds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;sort() does not return the sorted container but Nothing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Really basic things change even years after Python was created, like as if they just started to look at how other languages have solved the same problems a long time ago. This is annyoing when you are stuck with Python 2.3 or 2.6 because that's the version a certain commercial application uses and you find the sane implementations are only available in 2.7.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then you have people telling you how clean everything is.&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-11-29T12:51:20.143" LastActivityDate="2010-11-29T12:51:20.143" CommunityOwnedDate="2010-09-15T10:39:55.523" CommentCount="18" />
  <row Id="3837" PostTypeId="2" ParentId="3824" CreationDate="2010-09-15T10:42:50.543" Score="2" ViewCount="" Body="&lt;p&gt;In the last 9 years, i've basically only met acceptance/regression tests.&#xA;There were only a few unit tests.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-09-15T10:42:50.543" CommentCount="1" />
  <row Id="3838" PostTypeId="2" ParentId="3704" CreationDate="2010-09-15T10:42:59.710" Score="0" ViewCount="" Body="&lt;p&gt;There is no where near enough information in this question to give a reasonable answer. As others have said this varies massivly depending upon you and your experience, the location of the project and how rich the client is etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe a good thing to try is to look on &lt;a href=&quot;http://www.vworker.com&quot; rel=&quot;nofollow&quot;&gt;www.vworker.com&lt;/a&gt;, or some other marketplace site, to see if you can find other projects like yours and see what other people are charging.&lt;/p&gt;&#xA;" OwnerUserId="1916" LastActivityDate="2010-09-15T10:42:59.710" />
  <row Id="3839" PostTypeId="2" ParentId="3824" CreationDate="2010-09-15T10:54:00.110" Score="4" ViewCount="" Body="&lt;p&gt;The pattern I have seen with testing over my career shows a strong correspondance with the risk of failour in a project. Big projects are more likly to be tested than small ones, mission critical applications are more likly to be tested than one off marketing web sites, in house systems are less likly to be tested than public facing ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said there are still projects that have been excessivly tested and those that have not been tested enough, but these are the minority.&lt;/p&gt;&#xA;" OwnerUserId="1916" LastActivityDate="2010-09-15T10:54:00.110" CommentCount="3" />
  <row Id="3841" PostTypeId="2" ParentId="3824" CreationDate="2010-09-15T11:16:28.340" Score="1" ViewCount="" Body="&lt;p&gt;We are a mid sized offshore company in South Asia. However, we always do USA based projects and directly work with requirements sent from USA company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We apply methodical testing on every application we build. Perhaps, the quality of testing isn't up to standard, but we do employ them.&lt;/p&gt;&#xA;" OwnerUserId="1560" LastActivityDate="2010-09-15T11:16:28.340" CommentCount="2" />
  <row Id="3842" PostTypeId="2" ParentId="3789" CreationDate="2010-09-15T11:23:25.363" Score="-1" ViewCount="" Body="&lt;p&gt;I started with QBasic in school. Then I did self learning on Pascal and from university started off with C/C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems many people started off with Pascal, but for contemporary wanna be programmers they can directly start with C/C++ since most modern popular programming language(Java, C#, PHP etc.) are similar in structure to C and likewise they are called, &quot;C like language&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1560" LastActivityDate="2010-09-15T11:23:25.363" />
  <row Id="3843" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T11:34:11.067" Score="14" ViewCount="" Body="&lt;p&gt;Whenever I look at my old code, I ask myself &quot;what was I thinking&quot;? Then I wonder if in a few years I would say the same thing about code I'm currently writing...&lt;/p&gt;&#xA;" OwnerUserId="1922" LastActivityDate="2010-09-15T11:34:11.067" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="3" />
  <row Id="3844" PostTypeId="2" ParentId="3811" CreationDate="2010-09-15T11:41:52.143" Score="1" ViewCount="" Body="&lt;p&gt;In one of the companies that I've worked for, most of the developers there finished college with degrees that are completely unrelated to Computer Science. Most of them are just self-taught when it comes to programming and they are the big guys in our company, mind you. The most important trait a developer should have is self-motivation and initiative when it comes to programming so I'm pretty sure you'll be fine if you're not aiming for Google or Microsoft. Maybe in a few years after getting actual work experience in the industry.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-09-15T11:41:52.143" CommentCount="3" />
  <row Id="3845" PostTypeId="2" ParentId="724" CreationDate="2010-09-15T11:49:06.090" Score="8" ViewCount="" Body="&lt;h3&gt;Yield in Python&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;In Python (and I believe in C#), you can define a so-called generator that pauses function execution at a &lt;code&gt;yield&lt;/code&gt; statement, returns the value and on subsequent calls, restarts the function where it left off (with the state preserved between calls). This is great for generating long lists of values where you are only interested in the current value of the function (which is very common). It allows you to build potentially infinitely long sequences while only occupying very limited space in memory.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-15T11:49:06.090" CommentCount="1" />
  <row Id="3846" PostTypeId="2" ParentId="1262" CreationDate="2010-09-15T11:56:02.593" Score="11" ViewCount="" Body="&lt;p&gt;I find the ability to delete everything in between a set of paired symbols incredibly useful. For example, quite often, I'll find myself wanting to replace a string in the code. So, &lt;code&gt;di&quot;&lt;/code&gt; while the cursor is in the block will delete the string, while keeping the &lt;code&gt;&quot;&quot;&lt;/code&gt; intact, and put the cursor in between the two quote characters. &lt;code&gt;da&quot;&lt;/code&gt; does the same thing, but deletes the quote characters too.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-15T11:56:02.593" CommentCount="1" />
  <row Id="3847" PostTypeId="2" ParentId="3272" CreationDate="2010-09-15T12:03:02.750" Score="3" ViewCount="" Body="&lt;p&gt;I have had over 10 jobs in 17 years as a programmer.  The longest was 5 years and the shortest 10 months.  I have never been asked about the length of any of my positions, but always list better opportunity as the reason for leaving at all but one of my jobs.  When discussing at the interview I go a little more in depth.  If I left because the company was in decline I mention that.  If that's an issue with an employer then they may be in decline already or be volatile and you don't want that position anyway. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Main thing is to be frank when discussing you reasons for leaving and the fact the job was more of a contract position than a permanent position should assure a potential employer that you are serious about their position.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-09-15T12:03:02.750" />
  <row Id="3848" PostTypeId="2" ParentId="3811" CreationDate="2010-09-15T12:04:33.633" Score="0" ViewCount="" Body="&lt;p&gt;Since you do not aim for Microsoft or Google, you should be fine. There are plenty of self taught programmers, and while these things are great to know, there are plenty of jobs that don't do anything too academic, algorithmically. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-15T12:04:33.633" />
  <row Id="3849" PostTypeId="1" CreationDate="2010-09-15T12:15:54.153" Score="12" ViewCount="727" Body="&lt;p&gt;How would you consider that a programmer is great at what he is doing?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:01:43.853" LastActivityDate="2011-03-28T04:44:06.510" Title="When would someone be considered a great programmer?" Tags="&lt;productivity&gt;&lt;great-programmer&gt;" AnswerCount="11" CommentCount="3" FavoriteCount="9" />
  <row Id="3850" PostTypeId="2" ParentId="880" CreationDate="2010-09-15T12:16:18.693" Score="2" ViewCount="" Body="&lt;p&gt;Dell Latitude Laptop&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Intel Core Duo 2.2ghz dual core&lt;/li&gt;&#xA;&lt;li&gt;2 GB Memory&lt;/li&gt;&#xA;&lt;li&gt;17&quot;  1920X1200 resolution display&lt;/li&gt;&#xA;&lt;li&gt;External bluetooth mouse&lt;/li&gt;&#xA;&lt;li&gt;Linux Mint 9&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Using Linux makes it so I don't need an antivirus application, so my hardware requirements are drastically reduced. Using 4 virtual desktops saves me from having to add additional monitors. Since I switched to this laptop, I couldn't imagine using a display with anything less than 1920X1080 resolution, the quality is stunning. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If for some reason I need to use Visual Studio, I'll boot into XP running an extremely stripped down version of Windows XP (and no antivirus).&lt;/p&gt;&#xA;" OwnerUserId="1256" LastActivityDate="2010-09-15T12:16:18.693" CommunityOwnedDate="2011-02-06T19:45:08.167" />
  <row Id="3851" PostTypeId="1" CreationDate="2010-09-15T12:17:02.873" Score="37" ViewCount="2723" Body="&lt;p&gt;How would you consider that a programmer is bad at what he or she is doing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If possible... How should he/she improve?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="5817" LastEditorDisplayName="" LastEditDate="2011-01-23T13:59:57.527" LastActivityDate="2011-01-23T13:59:57.527" CommunityOwnedDate="2010-12-13T18:51:52.480" Title="When would someone be considered a bad programmer?" Tags="&lt;self-improvement&gt;&lt;bad-programmer&gt;" AnswerCount="32" CommentCount="7" FavoriteCount="24" />
  <row Id="3852" PostTypeId="2" ParentId="3629" CreationDate="2010-09-15T12:19:14.853" Score="2" ViewCount="" Body="&lt;h2&gt;A source of &lt;a href=&quot;http://en.wikipedia.org/wiki/Light&quot; rel=&quot;nofollow&quot;&gt;Light&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;It may seem obvious, but I got a coworker that works in the dark, just with the light from is monitors, I can't.&lt;/p&gt;&#xA;" OwnerUserId="19" LastActivityDate="2010-09-15T12:19:14.853" CommunityOwnedDate="2010-09-16T13:07:08.047" CommentCount="1" />
  <row Id="3853" PostTypeId="1" AcceptedAnswerId="3873" CreationDate="2010-09-15T12:19:27.857" Score="12" ViewCount="267" Body="&lt;p&gt;I'm doing my first big project and I don't have a lot of experience in a professional programming environment. While researching anything programming-related I often see references to Unit Testing, but I am still unclear as to how to set those up or even if it would be beneficial to me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can someone explain unit testing to me, and how to set it up in a Visual Studio 2010 solution that has multiple projects? Is it something that occurs within your project's solution, or is it a separate solution? And is it something you'd recommend for a small development team or is it just a waste of time to setup?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now I just run the entire program to test whatever I am currently working on, but occasionally I have run into problems that are not easy to debug and it would be useful to run subsets of the code elsewhere... Sometimes I do setup another project with some of the libraries referenced to test a small part of the program, but I feel more time is wasted setting that up then just running the entire program because of all the dependencies involved&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-09-15T13:08:31.593" Title="How to setup Unit Testing?" Tags="&lt;best-practices&gt;&lt;unit-testing&gt;" AnswerCount="1" FavoriteCount="3" />
  <row Id="3854" PostTypeId="2" ParentId="3851" CreationDate="2010-09-15T12:19:58.777" Score="60" ViewCount="" Body="&lt;p&gt;A big warning sign is if they are a &quot;cargo cult&quot; programmer - meaning they do things but don't know &lt;em&gt;why&lt;/em&gt; they do those things (it's just &quot;magic&quot;). Great post by Eric Lippert &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2004/03/01/82168.aspx&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the article: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;programmers who understand what the code does, but not how it does it.&lt;/blockquote&gt;&#xA;" OwnerUserId="378" LastActivityDate="2010-09-15T12:19:58.777" CommunityOwnedDate="2010-12-13T18:51:52.480" CommentCount="10" />
  <row Id="3855" PostTypeId="2" ParentId="3851" CreationDate="2010-09-15T12:21:01.397" Score="9" ViewCount="" Body="&lt;p&gt;Apart from the obvious lack of knowledge/ability, a programmer is a bad one, if their code is harder to read and/or maintain than it should be.&lt;/p&gt;&#xA;" OwnerUserId="61" LastEditorUserId="61" LastEditorDisplayName="" LastEditDate="2010-09-15T12:34:15.560" LastActivityDate="2010-09-15T12:34:15.560" CommunityOwnedDate="2010-12-13T18:51:52.480" CommentCount="3" />
  <row Id="3856" PostTypeId="2" ParentId="2306" CreationDate="2010-09-15T12:21:53.127" Score="0" ViewCount="" Body="&lt;p&gt;I would use XML data generated from a db so the HTTP server and/or CDN is able to cache query requests and reduce load on the database server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;XML wasn't ever meant to be used for DB storage. It's meant as a portable intermediary between diverse data storages. IE, serializing data to send it across the web in a platform agnostic format.&lt;/p&gt;&#xA;" OwnerUserId="1256" LastActivityDate="2010-09-15T12:21:53.127" />
  <row Id="3857" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T12:23:39.533" Score="10" ViewCount="" Body="&lt;p&gt;Deadlines that are presented before the requirements.  I hate going into a meeting to hear about a new project from our business partner and having them say, &quot;Oh, by the way, we promised this would be ready by X.&quot;  Meanwhile the requirements probably can't get done by X.&lt;/p&gt;&#xA;" OwnerUserId="1931" LastActivityDate="2010-09-15T12:23:39.533" CommunityOwnedDate="2010-09-16T19:53:24.020" />
  <row Id="3858" PostTypeId="2" ParentId="2306" CreationDate="2010-09-15T12:25:50.963" Score="3" ViewCount="" Body="&lt;p&gt;I tend not to use XML for output or data, if I can avoid it. However, I find that XML is &lt;em&gt;great&lt;/em&gt; to store configuration, since it can be hand-written, auto-generated and machine-parsed with equal ease.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; For the same reason, XML-based UI layouts are infinitely better than hard-coding the UI into your app.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-15T12:25:50.963" />
  <row Id="3859" PostTypeId="2" ParentId="3824" CreationDate="2010-09-15T12:26:40.727" Score="3" ViewCount="" Body="&lt;p&gt;Everything we produce gets completely tested.  If our internal QA team is overloaded, we have an offshore team that tests the projects.  They're not as good as our internal team but that's a different topic.&lt;/p&gt;&#xA;" OwnerUserId="1931" LastActivityDate="2010-09-15T12:26:40.727" CommentCount="3" />
  <row Id="3860" PostTypeId="2" ParentId="3824" CreationDate="2010-09-15T12:29:26.837" Score="0" ViewCount="" Body="&lt;p&gt;Almost every company I have been did methodical testing.  My current company has some basic unit style tests and that is not sufficient.  We have had some quality issues due to this.  I highly recommend independent thorough testing on any project that is going to be used by anyone besides yourself.  The money spent will be well worth it.  Applications that don't work don't get used.  That goes for internally facing as well as externally facing.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-09-15T12:29:26.837" CommentCount="1" />
  <row Id="3861" PostTypeId="2" ParentId="3849" CreationDate="2010-09-15T12:29:55.557" Score="18" ViewCount="" Body="&lt;p&gt;A great programmer knows how to express himself in code in such a way that others will read his code and easily understand what it's doing, &lt;em&gt;and&lt;/em&gt; be able to modify that code with a minimum amount of risk to breaking the code base. I would argue that everything else, from design patterns to programming paradigms, are means to this end.&lt;/p&gt;&#xA;" OwnerUserId="378" LastActivityDate="2010-09-15T12:29:55.557" CommentCount="6" />
  <row Id="3862" PostTypeId="2" ParentId="3851" CreationDate="2010-09-15T12:30:57.190" Score="17" ViewCount="" Body="&lt;p&gt;When a team member is the &lt;a href=&quot;http://www.pyxisinc.com/NNPP_Article.pdf&quot; rel=&quot;nofollow&quot;&gt;negative producing developer&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;|# Lines Written| - |# Lines of bugs introduced| - |# Lines of rework required| &amp;lt; 0&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Meaning the rest of your team has to do more work because of the bad developer.  &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/NNPP&quot; rel=&quot;nofollow&quot;&gt;NNPP&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="616" LastActivityDate="2010-09-15T12:30:57.190" CommunityOwnedDate="2010-12-13T18:51:52.480" CommentCount="10" />
  <row Id="3864" PostTypeId="2" ParentId="3851" CreationDate="2010-09-15T12:31:19.360" Score="7" ViewCount="" Body="&lt;p&gt;Unable to adapt themselves to upcoming technologies&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-09-15T12:31:19.360" CommunityOwnedDate="2010-12-13T18:51:52.480" />
  <row Id="3865" PostTypeId="2" ParentId="724" CreationDate="2010-09-15T12:33:16.393" Score="3" ViewCount="" Body="&lt;p&gt;The C preprocessor. You can even write common code to different platforms with - less or more - ifdefs.&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-09-15T12:33:16.393" CommentCount="1" />
  <row Id="3866" PostTypeId="2" ParentId="3851" CreationDate="2010-09-15T12:34:18.260" Score="102" ViewCount="" Body="&lt;p&gt;When they fail to learn from their mistakes and from peer reviews.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are all green at some point; however, if you're not getting better or attempting to get better then you're a bad programmer.&lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-09-15T12:34:18.260" CommunityOwnedDate="2010-12-13T18:51:52.480" CommentCount="7" />
  <row Id="3867" PostTypeId="2" ParentId="3851" CreationDate="2010-09-15T12:36:56.037" Score="19" ViewCount="" Body="&lt;p&gt;When it takes them a long time to solve the FizzBuzz problem. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-15T12:36:56.037" CommunityOwnedDate="2010-12-13T18:51:52.480" CommentCount="5" />
  <row Id="3868" PostTypeId="2" ParentId="3811" CreationDate="2010-09-15T12:43:28.987" Score="0" ViewCount="" Body="&lt;p&gt;If I were a hiring manager I'd want to bring you in for an interview and talk shop.  &lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-09-15T12:43:28.987" />
  <row Id="3869" PostTypeId="2" ParentId="3851" CreationDate="2010-09-15T12:47:07.840" Score="12" ViewCount="" Body="&lt;p&gt;When they know there are better ways of doing things but still refuse to do them even when time permits.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-15T12:47:07.840" CommunityOwnedDate="2010-12-13T18:51:52.480" CommentCount="2" />
  <row Id="3870" PostTypeId="2" ParentId="3851" CreationDate="2010-09-15T12:50:38.283" Score="16" ViewCount="" Body="&lt;p&gt;My favorite set of answers is &lt;a href=&quot;http://badprogrammer.infogami.com/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.  I was glad that many of things never even occurred to me!&lt;/p&gt;&#xA;" OwnerUserId="1935" LastActivityDate="2010-09-15T12:50:38.283" CommunityOwnedDate="2010-12-13T18:51:52.480" CommentCount="7" />
  <row Id="3871" PostTypeId="2" ParentId="2730" CreationDate="2010-09-15T12:51:53.273" Score="6" ViewCount="" Body="&lt;p&gt;First of all I'm not going to say my idea is original.. However it would be a nice feature to have, it would be simple to implement, and would be used a lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C# has a null-coalescing operator (??) that works like this&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// using null-coalescing operator&#xA;animal = cat ?? new Cat();&#xA;&#xA;// same as above, but using the conditional operator&#xA;animal = cat != null ? cat : new Cat();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But what I would like to see is a way to coalesce empty strings using a new operator (??? for lack of imagination) for example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// using proposed operator (???)&#xA;username = user.FirstName ??? &quot;Unspecified Username&quot;;&#xA;&#xA;// same as above, but using the conditional operator&#xA;username = user.FirstName.IsNullOrEmpty() ? &quot;Unspecified Username&quot; : user.FirstName;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This is a pretty simple feature, which I have thought would be handy countless times. This idea might be able to be expanded for other value types (maybe some simple way to coalesce certain numeric values), but haven't really thought much further about it.&lt;/p&gt;&#xA;" OwnerUserId="1735" LastActivityDate="2010-09-15T12:51:53.273" CommentCount="7" />
  <row Id="3872" PostTypeId="2" ParentId="3851" CreationDate="2010-09-15T12:55:05.060" Score="16" ViewCount="" Body="&lt;p&gt;When they produce things which belng on &lt;a href=&quot;http://thedailywtf.com/&quot; rel=&quot;nofollow&quot;&gt;The Daily WTF&lt;/a&gt; on a regular basis.&lt;/p&gt;&#xA;" OwnerUserId="886" LastActivityDate="2010-09-15T12:55:05.060" CommunityOwnedDate="2010-12-13T18:51:52.480" />
  <row Id="3873" PostTypeId="2" ParentId="3853" CreationDate="2010-09-15T12:59:49.227" Score="7" ViewCount="" Body="&lt;p&gt;Setting up unit testing in VS2010 is fairly easy.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Add a new project to your solution and select the Test Project template from the New Project dialog box.  Usually you create one test project for project you want to test in your solution (ie. BusinessLogic.proj would have a mate called BusinessLogicTest.proj, just as an example).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have the project added, the easiest way (not necessarily the best way to do this, especially if you're goal is to get to TDD) to get started is to right-click on a function that you want to test and select &quot;Create Unit Tests&quot;.  Make sure the Output Project is the Test Project you just created and click OK.  VS creates a new Test Class for you with a Test Method stubbed out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's the basics of getting setup.  There's a lot to learn to test effectively, but you're at least on the right path by wanting to unit test.  I'll see if I can find a demo or article to get you a bit further.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Found one.  This &lt;a href=&quot;http://msmvps.com/blogs/deborahk/archive/2009/10/25/unit-testing-an-introduction.aspx&quot; rel=&quot;nofollow&quot;&gt;article&lt;/a&gt; is by Deborah Kurata (an MS MVP) and she has both C# and VB code samples.  She is using VS2008, but the basics are the same for VS2010&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-09-15T13:08:31.593" LastActivityDate="2010-09-15T13:08:31.593" CommentCount="1" />
  <row Id="3875" PostTypeId="2" ParentId="2306" CreationDate="2010-09-15T13:08:22.780" Score="0" ViewCount="" Body="&lt;p&gt;A database would be the better solution if the XML data can be easily presented in table form (or tables form), which isn't always the case. I'm currently working on a specification where the data topology is a tree rather than a table, meaning that elements for one items aren't necessarily the same as the elements of another item. XML is the storage of choice here, especially since new types of elements may be added anytime. And yes, the file may become 100s of k lines long.&lt;br&gt;&#xA;XML may be a solution if the data can't be presented in table form.&lt;/p&gt;&#xA;" OwnerUserId="1887" LastActivityDate="2010-09-15T13:08:22.780" />
  <row Id="3876" PostTypeId="2" ParentId="260" CreationDate="2010-09-15T13:10:57.140" Score="-1" ViewCount="" Body="&lt;p&gt;Perhaps.  The current curriculum seems old-fashioned.  It's not like we don't ask a lot of high school students.  We expect high school students to memorize all the bones of the body and do calculus, but most of them graduate without knowing even the simplest basics about how a computer works.&lt;/p&gt;&#xA;" OwnerUserId="1223" LastActivityDate="2010-09-15T13:10:57.140" CommentCount="3" />
  <row Id="3877" PostTypeId="2" ParentId="610" CreationDate="2010-09-15T13:11:37.420" Score="1" ViewCount="" Body="&lt;p&gt;As an Oracle developer, the one feature I couldn't live without is how SQL integrates simply and cleanly with PL/SQL.&lt;/p&gt;&#xA;" OwnerUserId="1934" LastActivityDate="2010-09-15T13:11:37.420" CommunityOwnedDate="2010-12-07T07:14:37.740" />
  <row Id="3879" PostTypeId="2" ParentId="3851" CreationDate="2010-09-15T13:18:28.020" Score="8" ViewCount="" Body="&lt;p&gt;When nobody else can read his code. It doesn't matter how bright you are; no programmer is an island.&lt;/p&gt;&#xA;" OwnerUserId="1887" LastActivityDate="2010-09-15T13:18:28.020" CommunityOwnedDate="2010-12-13T18:51:52.480" CommentCount="2" />
  <row Id="3882" PostTypeId="2" ParentId="3383" CreationDate="2010-09-15T13:23:08.080" Score="0" ViewCount="" Body="&lt;p&gt;Not exactly journals, but I write a lot of stuff down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Paper note pad for quick stuff (they do get tossed when full).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I keep a database for job specific things: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;how to log into the document sharing&#xA;site for one of our providers&lt;/li&gt;&#xA;&lt;li&gt;what folder do we keep the templates for annual reviews&lt;/li&gt;&#xA;&lt;li&gt;software keys&lt;/li&gt;&#xA;&lt;li&gt;my bio to put on website&lt;/li&gt;&#xA;&lt;li&gt;business card info&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Other non job specifice programming stuff goes into evernote.com&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-15T13:23:08.080" />
  <row Id="3884" PostTypeId="1" CreationDate="2010-09-15T13:33:13.520" Score="7" ViewCount="306" Body="&lt;p&gt;I learned about them in a Structured Programming course, but never saw them used thereafter either at the analysis phase or for documentation purposes. Not even for highly structured languages like Pascal (Delphi).&lt;br&gt;&#xA;Does any of you actually use Nassi-Shneiderman diagrams? If yes, what tools do you use to create/maintain them?&lt;br&gt;&#xA;&lt;strong&gt;edit:&lt;/strong&gt;&lt;br&gt;&#xA;Or have you never heard of them?&lt;/p&gt;&#xA;" OwnerUserId="1887" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:30:59.903" LastActivityDate="2010-12-31T23:02:12.923" Title="Are Nassi-Shneiderman diagrams actually used?" Tags="&lt;diagramming&gt;&lt;structural-programming&gt;" AnswerCount="8" CommentCount="2" />
  <row Id="3886" PostTypeId="1" CreationDate="2010-09-15T13:33:47.960" Score="11" ViewCount="762" Body="&lt;p&gt;As I say &lt;a href=&quot;http://programmers.stackexchange.com/questions/3629/what-physical-tools-do-you-find-useful-as-a-programmer/3852#3852&quot;&gt;here&lt;/a&gt;, I need additional Light to properly code. (more than just the light from my monitor)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've got an office with a door and a window. But, even if you work in a Cubicle, do you &lt;strong&gt;prefer&lt;/strong&gt; to code in the Dark or in the Light? Why? &lt;/p&gt;&#xA;" OwnerUserId="19" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-28T16:38:50.033" LastActivityDate="2010-11-28T17:01:44.377" ClosedDate="2010-12-01T11:02:15.720" Title="Do you prefer to code in the Dark or in the Light?" Tags="&lt;experience&gt;&lt;work-environment&gt;" AnswerCount="15" CommentCount="10" FavoriteCount="2" />
  <row Id="3887" PostTypeId="2" ParentId="3789" CreationDate="2010-09-15T13:33:48.787" Score="1" ViewCount="" Body="&lt;h3&gt;JavaScript&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;For a &quot;first language&quot;, it's hard to beat JS today. The language itself is extremely simple, can be used interactively, and is available on just about any computer with a web browser (so, just about any computer). That puts it squarely in the position that BASIC once filled...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Better yet, unlike Pascal or the various BASIC dialects still floating around, you can actually &lt;em&gt;use&lt;/em&gt; JS for simple but functional projects. Most folks are familiar with web browsers, but consoles are far less familiar to young users...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C, and to a much greater extent, Java and C#, all require a fair amount of boilerplate just to get out the door. And the latter two require at least some knowledge of their &lt;em&gt;massive&lt;/em&gt; libraries in order to actually do anything useful. Nothing wrong with learning them as a &lt;em&gt;second&lt;/em&gt; language once you have the concepts down...&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-15T13:33:48.787" CommentCount="3" />
  <row Id="3888" PostTypeId="2" ParentId="3886" CreationDate="2010-09-15T13:36:17.127" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Dim Light&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's too dark, I can't find the function keys.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's too light, I get distracted easily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's &lt;strong&gt;right in the middle, it's just right&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-15T13:36:17.127" CommentCount="6" />
  <row Id="3889" PostTypeId="2" ParentId="3886" CreationDate="2010-09-15T13:38:52.583" Score="20" ViewCount="" Body="&lt;h3&gt;Bright, but indirect, natural light&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Dim / darkness puts me to sleep. Florescent lighting makes me fatigued at best, and gives me headaches if the tubes aren't fresh. A good bright incandescent with a diffuser shade will do in a pinch. &lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-15T13:38:52.583" CommentCount="3" />
  <row Id="3891" PostTypeId="2" ParentId="3886" CreationDate="2010-09-15T13:40:34.827" Score="2" ViewCount="" Body="&lt;p&gt;I use this thumb rule: if there is enough light to write and read from paper, I can code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Low light condition is not good to work, it will relax you too much and may induce sleepiness.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course direct light is not good as well.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-15T13:40:34.827" CommentCount="1" />
  <row Id="3892" PostTypeId="1" AcceptedAnswerId="3936" CreationDate="2010-09-15T13:40:43.610" Score="13" ViewCount="774" Body="&lt;p&gt;I know they are meant to be clever, to see how you act on unknown territory. But since similar questions are asked for years they are wannabe-clever and routine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would you give honest feedback risking to diminish your chances? Would you exclude this employer right away?&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-11-05T14:30:43.267" LastActivityDate="2010-11-06T06:56:13.663" Title="How would you react on yet another &quot;Why are manholes round?&quot;-style interview question?" Tags="&lt;interview&gt;&lt;feedback&gt;" AnswerCount="11" CommentCount="3" FavoriteCount="2" />
  <row Id="3895" PostTypeId="2" ParentId="3892" CreationDate="2010-09-15T13:46:58.490" Score="9" ViewCount="" Body="&lt;p&gt;Some of these are ridiculous, I agree.  You have some interviewers that use these questions simply because CIO.com said it's a good interview question, but don't really use them in the way they are intended.  Questions like &quot;Estimate the weight of a Boeing 747&quot; aren't for you to get the right answer, or even close to right.  When I interviewed at a consulting company, I was asked this question, and I'm from a small town where I'd never even seen a plane that held more than two people!  The interviewer said, &quot;That's ok, just talk it out, I want to see how you think.&quot;  I ended up getting the job and was COMPLETELY off.  I just laid out my assumptions, estimated parts instead of the plane as a whole, things like that.  Don't count out the employer totally (there are lots other things more important when writing off a place to work), but try see why they are asking it.  Employers usually have a reason for asking questions, and time is short in interviews, so many have chosen it for a reason.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-15T13:46:58.490" CommentCount="11" />
  <row Id="3896" PostTypeId="2" ParentId="3884" CreationDate="2010-09-15T13:47:28.497" Score="4" ViewCount="" Body="&lt;p&gt;We've never used them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, I (we) have heard of them.  Thanks for asking! :-)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, we just don't use them.  We ususally keep the diagraming to simple flow diagrams which are generally easier to read and understand.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-09-15T14:39:26.400" LastActivityDate="2010-09-15T14:39:26.400" CommentCount="1" />
  <row Id="3897" PostTypeId="1" AcceptedAnswerId="3900" CreationDate="2010-09-15T13:48:57.987" Score="6" ViewCount="872" Body="&lt;p&gt;First of all, I am not sexist and I really don't care what generic term people use when referring to a fictional person as her or him. However, I do find it interesting that everywhere else the generic person is almost always referred to as &quot;him&quot; but in almost every computer book I read the generic person is referred to as &quot;her&quot;. I was wondering if there was a reason for it. Like is there more female programmers?&lt;/p&gt;&#xA;" OwnerUserId="1785" LastEditorUserId="99" LastEditorDisplayName="" LastEditDate="2010-09-15T22:40:48.670" LastActivityDate="2010-09-16T13:09:11.380" ClosedDate="2010-09-26T22:44:54.307" Title="Why do programming books use &quot;her&quot; more than &quot;him&quot;" Tags="&lt;books&gt;&lt;gender&gt;" AnswerCount="16" CommentCount="6" FavoriteCount="1" />
  <row Id="3898" PostTypeId="2" ParentId="3886" CreationDate="2010-09-15T13:49:08.063" Score="7" ViewCount="" Body="&lt;p&gt;A lot of (natural) light!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If programming in dark, I use &lt;a href=&quot;http://www.stereopsis.com/flux/&quot; rel=&quot;nofollow&quot;&gt;f.lux&lt;/a&gt; to adjust the color of the screen.&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-09-15T13:49:08.063" CommentCount="4" />
  <row Id="3899" PostTypeId="2" ParentId="3851" CreationDate="2010-09-15T13:49:39.500" Score="3" ViewCount="" Body="&lt;p&gt;Someone who says &quot;It can't be done&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion it's all about problem solving, the tool should be far less relevant than actually getting work done.  If I've got to solve it using MS-Access or assembly language, it's a matter of time and money, not a matter of &quot;It can't be done&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A warning sign is too much focus on the academic and &quot;proper&quot; way of doing things, and not enough focus on getting work done.&lt;/p&gt;&#xA;" OwnerUserId="1620" LastActivityDate="2010-09-15T13:49:39.500" CommunityOwnedDate="2010-12-13T18:51:52.480" CommentCount="11" />
  <row Id="3900" PostTypeId="2" ParentId="3897" CreationDate="2010-09-15T13:49:44.623" Score="46" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Wishful thinking.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-15T13:49:44.623" CommentCount="7" />
  <row Id="3901" PostTypeId="2" ParentId="3851" CreationDate="2010-09-15T13:51:25.187" Score="2" ViewCount="" Body="&lt;p&gt;If he only knows the syntax of a language but don't know the basic concepts of algorithms.&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-15T13:51:25.187" CommunityOwnedDate="2010-12-13T18:51:52.480" />
  <row Id="3902" PostTypeId="2" ParentId="3897" CreationDate="2010-09-15T13:53:45.453" Score="5" ViewCount="" Body="&lt;p&gt;In general I would think being gender aware is a good thing. Using &quot;she / her&quot; doesn't bother me at all. In the English language, unfortunately there is not a gender neutral pronoun that's widely approved, which is sad. See &lt;a href=&quot;http://english.stackexchange.com/questions/48/gender-neutral-pronoun&quot;&gt;this discussion on the English Language stackexchange site&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-15T13:53:45.453" CommentCount="1" />
  <row Id="3903" PostTypeId="2" ParentId="3849" CreationDate="2010-09-15T13:54:50.093" Score="2" ViewCount="" Body="&lt;p&gt;Good programmers code; Great programmers design algorithms :)&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-15T13:54:50.093" CommentCount="2" />
  <row Id="3904" PostTypeId="2" ParentId="3892" CreationDate="2010-09-15T13:57:03.583" Score="30" ViewCount="" Body="&lt;p&gt;Because a long, long, time ago, there lived a manager in a forest who thought he was a king. He was bored with 'king stuff' and decided to take a walk through his domain. He came upon a group of very intelligent, hardworking minions who thoughtfully put up a sign that read &quot;Watch out for the hole&quot;. Being the king that he was, he was sure that this did not apply to him and that kings simply do not fall into holes. Well, he did, but not all the way. His kingly-rotund-derriere would not fit. He was extracted from the hole. His pants were pulled down in the process and one of the workers noticed the waffle pattern on the king's rump caused by the mesh of his Aeron chair. This inspired the design/royal seal for all hole covers.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-15T13:57:03.583" CommentCount="3" />
  <row Id="3905" PostTypeId="2" ParentId="3897" CreationDate="2010-09-15T13:57:39.980" Score="2" ViewCount="" Body="&lt;p&gt;Suppose it depends what you're reading.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of Java books use the female person as Kathy Sierra wrote a lot of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Might have just caught on.&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-15T13:57:39.980" />
  <row Id="3906" PostTypeId="2" ParentId="3897" CreationDate="2010-09-15T14:06:01.543" Score="8" ViewCount="" Body="&lt;p&gt;I think books do that to make women feel included and thereby somehow encourage them to either go into computer science or continue in software development.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-15T14:06:01.543" CommentCount="1" />
  <row Id="3907" PostTypeId="2" ParentId="3897" CreationDate="2010-09-15T14:06:21.833" Score="2" ViewCount="" Body="&lt;p&gt;I don't think this is unique to programming books.  While &quot;he/him&quot; has more traditionally been the generic pronoun, there are those who advocate using a more equal mix of male and female pronouns.  And in particular in some areas of academic study I think this has become the rule.&lt;/p&gt;&#xA;" OwnerUserId="151" LastActivityDate="2010-09-15T14:06:21.833" />
  <row Id="3908" PostTypeId="2" ParentId="3897" CreationDate="2010-09-15T14:09:17.147" Score="20" ViewCount="" Body="&lt;p&gt;This is a highly speculative answer, but what the heck, you don't offer any specifics, so it seems appropriate.  :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I was in college in the mid-90's, there was (and may still be -- I no longer have anything to do with academia) a movement to get people away from pretending that male pronouns are generic and may be used to refer to everybody.  They don't; they refer to males.  If you're discussing some hypothetical programmer (or reader, or voter, or dog walker, or whoever else you're talking about), referring to said code monkey as &quot;he&quot; does not imply &quot;Could be a guy, could be a gal&quot;; it implies &quot;Very definitely a guy.&quot;  And yet, for a long time this was just how writers were supposed to do it, and became the way that sounded most &quot;natural&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it sexist?  Yup.  Hardly the most egregious example of sexism in the English-speaking world, but still less than ideal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are several ways to deal with it -- none of them perfect, due to English's lack of singular gender-neutral pronouns.  I've seen occasional attempts to import gender-neutral pronouns from other languages (like German), which tends to come across as contrived.  Sometimes you get punctuation abuse:  his/her, she/he, or the ever-popular (s)he, all of which tend to knock you out of the flow of whatever you're reading.  (Seriously, how do you pronounce &quot;(s)he&quot; in your own head?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Better solutions involve misusing English's plural pronouns (&quot;they&quot;, &quot;their,&quot; etc.) as singular.  This sets some readers' teeth on edge, but it's the closest approximation for the idea being conveyed, and as such a lot of readers who might otherwise be annoyed are willing to tolerate it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More relevant to your question, you'll also see more writers simply mixing-up their pronouns, trying to use &quot;he&quot; and &quot;she&quot; in equal measure in different examples or hypothetical situations.  (Typically not within the &lt;b&gt;same&lt;/b&gt; example, unless they're trying to portray the subject as a hermaphrodite.)  I'd be willing to bet that's what you're seeing -- and that it's standing out in programming books because they're written more recently and because that's what you read the most of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take a second look at them.  Are they really &lt;b&gt;exclusively&lt;/b&gt; using female pronouns?  Or are they actually mixing up &quot;he/she&quot; and &quot;his/her&quot; in roughly equal measure, but the female pronouns jumped out at you because you're not used to seeing them?&lt;/p&gt;&#xA;" OwnerUserId="17" LastEditorUserId="17" LastEditorDisplayName="" LastEditDate="2010-09-15T14:18:10.820" LastActivityDate="2010-09-15T14:18:10.820" CommentCount="11" />
  <row Id="3910" PostTypeId="2" ParentId="331" CreationDate="2010-09-15T14:26:22.637" Score="0" ViewCount="" Body="&lt;p&gt;I used to use &lt;a href=&quot;http://www.dafont.com/bitstream-vera-mono.font&quot; rel=&quot;nofollow&quot;&gt;Bitstream Vera Sans Mono&lt;/a&gt;, but then Apple read my mind and took it producing &lt;a href=&quot;http://www.leancrew.com/all-this/2009/06/snow-leopards-new-monospaced-font/&quot; rel=&quot;nofollow&quot;&gt;Menlo&lt;/a&gt;, which is my choice font since Snow Leopard.&lt;/p&gt;&#xA;" OwnerUserId="1200" LastActivityDate="2010-09-15T14:26:22.637" CommunityOwnedDate="2010-09-15T14:26:22.637" />
  <row Id="3911" PostTypeId="2" ParentId="3766" CreationDate="2010-09-15T14:27:17.083" Score="3" ViewCount="" Body="&lt;p&gt;Build up some momentum if you can, and try to get your arms around his waist.  Too high and he may shrug you off, but if you go too low the refs will flag you.  Make like you're trying to run &lt;b&gt;through&lt;/b&gt; him.  And if the situation permits, try to generate some &lt;b&gt;upward&lt;/b&gt; force after contact; if you can get him off his feet, he's done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More on proper technique can be found &lt;a href=&quot;http://www.ehow.com/how_3994_tackle-football.html&quot; rel=&quot;nofollow&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-15T14:27:17.083" />
  <row Id="3912" PostTypeId="2" ParentId="3897" CreationDate="2010-09-15T14:30:17.690" Score="11" ViewCount="" Body="&lt;p&gt;They probably don't want to be accused of stereotyping a programmer as male, especially since you can get sued for just about anything these days in America.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-09-15T14:30:17.690" />
  <row Id="3913" PostTypeId="2" ParentId="3884" CreationDate="2010-09-15T14:34:49.040" Score="0" ViewCount="" Body="&lt;p&gt;Yes, I used them some years ago, but in times of UML they appear a little bit old fashioned. In my opinion the Nassi-Shneiderman-Diagram is still a good diagram type to visualize a structured code block, far better than an UML-Activity-Diagram.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other side it might be easier to simply have a direct look into the code...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can find a commercial tool here: &lt;a href=&quot;http://www.easycode.de/produkte.html?&amp;amp;L=1&quot; rel=&quot;nofollow&quot;&gt;http://www.easycode.de/produkte.html?&amp;amp;L=1&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="625" LastActivityDate="2010-09-15T14:34:49.040" />
  <row Id="3915" PostTypeId="2" ParentId="539" CreationDate="2010-09-15T14:38:24.307" Score="6" ViewCount="" Body="&lt;p&gt;The one and only Twilight!&#xA;&lt;img src=&quot;http://i.imgur.com/FJY8g.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1200" LastActivityDate="2010-09-15T14:38:24.307" CommunityOwnedDate="2010-09-16T13:10:40.707" CommentCount="3" />
  <row Id="3917" PostTypeId="2" ParentId="3884" CreationDate="2010-09-15T14:45:48.133" Score="0" ViewCount="" Body="&lt;p&gt;I have used them. But more often I use some kind of pseudocode when designing an algorithm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can write pseudocode with any editor and pen/paper combination. Diagrams are often harder to edit and tend to get messy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I still use UML diagrams for OO design. Mostly class, but sometimes state transition diagrams for classes with complex state.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-15T14:45:48.133" />
  <row Id="3918" PostTypeId="1" CreationDate="2010-09-15T14:46:35.153" Score="14" ViewCount="595" Body="&lt;p&gt;What should you do, if a co-worker is editing your code?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without the purpose of adding functionality or fixing bugs, just to change how it looks...&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2010-09-15T14:51:08.590" LastActivityDate="2010-10-24T23:59:49.693" Title="What to do if a co-worker is editing your code just to change the appearance?" Tags="&lt;productivity&gt;&lt;co-workers&gt;&lt;communication&gt;&lt;etiquette&gt;" AnswerCount="13" CommentCount="8" FavoriteCount="1" />
  <row Id="3919" PostTypeId="2" ParentId="3897" CreationDate="2010-09-15T14:46:57.273" Score="2" ViewCount="" Body="&lt;p&gt;This justifies the anime herione on the cover with the 42-17-36 dimensions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, I don't consider the use of him/her as male specific. It is an issue for others and I respect that. I've never worked with a female developer, but have no doubt many could do the job. In another profession, I had a female boss and few men have ever come close in terms of ability, firmness, professionalism, energy and passion.&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2010-09-16T13:09:11.380" LastActivityDate="2010-09-16T13:09:11.380" CommentCount="5" />
  <row Id="3921" PostTypeId="1" CreationDate="2010-09-15T14:48:32.297" Score="4" ViewCount="242" Body="&lt;p&gt;For which issues is it right to edit the code written by a co-worker? For which issues is it wrong?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:03:57.203" LastActivityDate="2010-09-18T21:03:57.203" Title="When is it right to edit the code written by a co-worker?" Tags="&lt;code-quality&gt;&lt;co-workers&gt;" AnswerCount="6" CommentCount="1" />
  <row Id="3922" PostTypeId="2" ParentId="3918" CreationDate="2010-09-15T14:48:56.413" Score="5" ViewCount="" Body="&lt;p&gt;Is s/he allowed to? Do the changes improve the code? If so, swallow your pride. If you feel the code quality is worsened, take it up with the co-worker and ask them why they felt the need to change your code with no obvious benefit. If it's being done out of spite or because the person mistakenly feels they're better than you, and you can't work it out with them, take it up with your boss.&lt;/p&gt;&#xA;" OwnerUserId="61" LastEditorUserId="61" LastEditorDisplayName="" LastEditDate="2010-09-15T14:54:27.173" LastActivityDate="2010-09-15T14:54:27.173" />
  <row Id="3923" PostTypeId="2" ParentId="3918" CreationDate="2010-09-15T14:49:40.547" Score="12" ViewCount="" Body="&lt;p&gt;I'm not so married to how my code looks for it to bother me. :) I try to learn from the changes. Did my coworker adjust variable names? Write a more efficient loop? Make the code more readable?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I can't see how the changes improved what was already there, I usually ask the coworker who made the changes what the motivation behind them was. It's possible that the advantage is just not obvious to me. And if I'm right and they're wrong, then perhaps I can explain why I wrote it the way I did.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If all else fails, revert the check-in. ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: All bets are off if the desire to make cosmetic changes introduced a bug, though.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-15T14:49:40.547" />
  <row Id="3924" PostTypeId="2" ParentId="3851" CreationDate="2010-09-15T14:49:48.630" Score="36" ViewCount="" Body="&lt;p&gt;A big tip-off for me is when they ask you or the other programmers development questions that clearly show they have made absolutely zero effort to figure it out on their own. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A corollary is when they ask the same programming question multiple times indicating they aren't internalizing the information.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-15T14:49:48.630" CommunityOwnedDate="2010-12-13T18:51:52.480" CommentCount="3" />
  <row Id="3925" PostTypeId="2" ParentId="3558" CreationDate="2010-09-15T14:50:30.533" Score="2" ViewCount="" Body="&lt;p&gt;I don't think that it's a bad sign. Hey! Life is more than just coding, even if you really love it, you are allowed to do some other things too. &lt;/p&gt;&#xA;" OwnerUserId="625" LastActivityDate="2010-09-15T14:50:30.533" />
  <row Id="3926" PostTypeId="2" ParentId="3851" CreationDate="2010-09-15T14:51:17.613" Score="2" ViewCount="" Body="&lt;p&gt;When they do a lot of pontificating but produce very little.&lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-09-15T14:51:17.613" CommunityOwnedDate="2010-12-13T18:51:52.480" />
  <row Id="3927" PostTypeId="2" ParentId="3918" CreationDate="2010-09-15T14:51:35.110" Score="22" ViewCount="" Body="&lt;p&gt;Talk to them about it.  Go into the conversation with the attitude of &quot;They're not doing this to annoy me or because they have some form of obsessive-compulsive disorder; they're trying to make my code better.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because you could be wrong.  That could be a subtle bug fix and you just didn't spot it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, it could be that there's a coding standard you don't know about that you're violating, and they're just correcting it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, it could be that they're trying to annoy you, or they have some form of obsessive-compulsive disorder.  If that's the case, ask them nicely to stop, and if that doesn't work, take it up with your boss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you'll never know unless you ask.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-15T14:51:35.110" CommentCount="8" />
  <row Id="3928" PostTypeId="2" ParentId="3921" CreationDate="2010-09-15T14:53:55.823" Score="12" ViewCount="" Body="&lt;h3&gt;When it's right&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;When the edit improves the functionality of the program or makes the code itself more readable / maintainable. &lt;/p&gt;&#xA;&#xA;&lt;h3&gt;When it's wrong&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;When the edit harms the functionality of the program or serves no purpose apart from providing the editor with busywork.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-15T14:53:55.823" CommentCount="8" />
  <row Id="3929" PostTypeId="2" ParentId="3897" CreationDate="2010-09-15T14:55:19.530" Score="2" ViewCount="" Body="&lt;p&gt;I think this is a non issue. Most books use he/him out of custom. Some books use the female version and I even found books that alternate between those. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The better aproach is to encourage woman to join the developer community. Try to get your daughters/sisters/friends interested and make them feel at home.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-15T14:55:19.530" CommentCount="4" />
  <row Id="3930" PostTypeId="2" ParentId="3824" CreationDate="2010-09-15T14:55:56.813" Score="1" ViewCount="" Body="&lt;p&gt;As much as the purist in me doesn't want to accept that there has to be some risk management built into the decision for how rigorously you test or whether you do formalized testing at all. For internal apps, which I suspect are a large % of programming projects, the cost of releasing a bug then quickly patching it after it is noticed can &lt;em&gt;sometimes&lt;/em&gt; be outweighed by the cost of a full testing team. Of course it depends on the app and the potential cost of failures. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I don't think risk management planning is the reason for the lack of formalized testing. I think it is more a result of non-technical managers not understanding the value it provides and only see the cost.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-15T14:55:56.813" CommentCount="3" />
  <row Id="3931" PostTypeId="2" ParentId="3918" CreationDate="2010-09-15T14:56:33.553" Score="6" ViewCount="" Body="&lt;p&gt;Ask them why they are doing it; a valid explanation may diminish your frustration, but you should let them know how much it bothers you. Who knows, maybe they thought they were doing you a favor and will stop when they learn it offends you. Or you may be dealing with someone who is truely suffering from a medical condition.&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2010-09-15T18:39:49.357" LastActivityDate="2010-09-15T18:39:49.357" CommentCount="2" />
  <row Id="3932" PostTypeId="2" ParentId="2192" CreationDate="2010-09-15T14:58:37.577" Score="3" ViewCount="" Body="&lt;p&gt;Any change request that would have been easier to implement if you knew about it before hand.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-15T14:58:37.577" CommunityOwnedDate="2011-01-05T06:12:52.770" CommentCount="4" />
  <row Id="3933" PostTypeId="2" ParentId="3811" CreationDate="2010-09-15T15:00:19.493" Score="2" ViewCount="" Body="&lt;p&gt;My experience is that there are loads of working programmers with degrees in other fields. In fact it can be a positive if your degree demonstrates domain specific knowledge related to the company you are interested in working for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the computer science-y stuff. Unless you are working at one of the &quot;Brain-shops&quot; like Google where they do a lot of theoretical stuff, I don't think it will hurt your chances much. The sad truth is that 90% of programming these days is gluing together other peoples code (frameworks, APIs, etc.) and very rarely do you need to write algorithms for anything trickier than &quot;Read from database, write to database, add some good error handling.&quot;&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-15T15:00:19.493" />
  <row Id="3934" PostTypeId="2" ParentId="3892" CreationDate="2010-09-15T15:00:59.720" Score="2" ViewCount="" Body="&lt;p&gt;Answer it?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far excluding companies for asking them, not likely.  In my experience, the companies that  I want to work for have asked them. (Microsoft interview back in college, Google a few years ago, my current employer interview a year ago).&lt;/p&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-15T15:00:59.720" />
  <row Id="3935" PostTypeId="2" ParentId="2192" CreationDate="2010-09-15T15:02:54.963" Score="4" ViewCount="" Body="&lt;p&gt;Meetings with no agenda.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A slow machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lack of a second monitor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An old mouse that has a ball instead of the nice new ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lack of internet access on the machine, making querying MSDN/stackoverflow/etc a bit of a pain.&lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-09-15T15:02:54.963" CommunityOwnedDate="2011-01-05T06:12:52.770" CommentCount="1" />
  <row Id="3936" PostTypeId="2" ParentId="3892" CreationDate="2010-09-15T15:04:37.337" Score="17" ViewCount="" Body="&lt;p&gt;I will usually ask directly that I don't see the relevance, so could they please explain what they're looking for?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I shake my head at how poorly prepared some organizations are for interviewing people. I'm what you call an &quot;Experienced hire&quot;. That means that you have to sell me just as much on your organization as I need to sell myself to you. If you don't understand that, don't be surprised when I turn down your offer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;These kinds of questions are usually from people who just don't know what to ask so they ask some question that they think is problem solving, but is really trivia or at best training. Or, they got hired in the 90s and are asking questions from their own interview.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-15T15:04:37.337" CommentCount="2" />
  <row Id="3937" PostTypeId="2" ParentId="874" CreationDate="2010-09-15T15:08:44.243" Score="3" ViewCount="" Body="&lt;p&gt;From what you described, you don't have a problem. They ask for a change and are either willing to wait until you say it can be done or are willing to postpone another feature. Seems like a balance between: time, resources and requirements. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-15T15:08:44.243" CommentCount="1" />
  <row Id="3939" PostTypeId="2" ParentId="3921" CreationDate="2010-09-15T15:14:41.943" Score="9" ViewCount="" Body="&lt;p&gt;Who is the owner of the code? The company or the developer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the owner is (as usual) the company, there should be no difference in editing code written by you or by a coworker (unless a specific code maintenance policy).&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-15T15:14:41.943" />
  <row Id="3940" PostTypeId="2" ParentId="2192" CreationDate="2010-09-15T15:16:45.510" Score="1" ViewCount="" Body="&lt;p&gt;Too many people on the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seen it several times where the management decides based on no real data that they need to add more people to the project. That ends up in the ppl who know what's going on needing to stop everything to hold the hands of people who know little about what's going on. I've seen more than one project mushroom in size and then go in the toilet quickly from there whereas before it was going along fine, although maybe a little slow. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you go from being a month late because of not enough velocity/too much to do to not delivering at all because you totally blew the budget on all those extra people.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-15T15:16:45.510" CommunityOwnedDate="2011-01-05T06:12:52.770" />
  <row Id="3941" PostTypeId="2" ParentId="3849" CreationDate="2010-09-15T15:17:52.917" Score="7" ViewCount="" Body="&lt;p&gt;First I'd note, that I'm really talking about code, not programmers. Even the very best programmer's only write truly great code part of the time. Likewise, programmers like me who probably don't really qualify as great can still write great code at least once in a while -- a great programmer just does it more often.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Good&lt;/strong&gt; code is easy to understand and maintain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Great&lt;/strong&gt; code needs virtually no maintenance. In many cases, initially gaining understanding of the code isn't quite as quick or easy as with merely good code though. In a typical case, it's not that you can't understand what the code does -- it's that you can't quite understand how doing something that simple can solve this complex of a problem. You keep searching through the code trying to find how it deals with the special cases you &lt;em&gt;know&lt;/em&gt; of in the problem space, and you can't find them -- because the code embodies enough deeper understanding of the problem space that it applies a more general rule under which those &quot;special&quot; cases aren't special anymore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Great code also has higher &quot;information density&quot;, so on a line-for-line (statement-for-statement, etc.) basis, understanding it can be a bit slower, simply because there's a lot less &quot;fluff&quot; that you can ignore. At the same time, it's often so compact that understanding the code overall is relatively quick and easy (at least once you've understood the basic principle(s) it embodies). It's also much easier to retain knowledge of the code, because most of the difficulty is in understanding the basic principle(s) it embodies. The code itself is typically a relatively straightforward expression of the principles involved.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-09-15T15:17:52.917" CommentCount="1" />
  <row Id="3942" PostTypeId="2" ParentId="3892" CreationDate="2010-09-15T15:22:05.933" Score="5" ViewCount="" Body="&lt;p&gt;The point of these type of questions is that there isn't a &quot;right&quot; answer, they just want to see that you can think through a problem and solve it logically. Reacting with scorn or assuming that the questioner is dumb for asking it (and by association the whole company) is a dangerous and arrogant thing to do. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is better to play along and give them what they want - and this doesn't mean an off-the-cuff answer, but instead demonstrate to them that you are able to look at the problem logically and come up with &lt;em&gt;something&lt;/em&gt; that shows you can think around abstract problems. There generally isn't a perfect answer to these questions - in fact, you may well come up with something completely different to what they expect and yet still show that you have the ability to think logically.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-15T15:22:05.933" CommentCount="7" />
  <row Id="3943" PostTypeId="2" ParentId="3849" CreationDate="2010-09-15T15:24:52.790" Score="2" ViewCount="" Body="&lt;p&gt;A Great Programmer gets the code written and working, i.e. is smart and gets things done.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastEditorUserId="1842" LastEditorDisplayName="" LastEditDate="2010-10-11T21:16:15.093" LastActivityDate="2010-10-11T21:16:15.093" />
  <row Id="3944" PostTypeId="2" ParentId="3921" CreationDate="2010-09-15T15:25:20.730" Score="1" ViewCount="" Body="&lt;p&gt;I would say it is right when what you are working on requires the change. It is right when you have been assigned to fix a bug and the bug is in that code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the code has nothing to do with what you are working on, but needs to be fixed, then bring it up to the team lead and let him assign a priority to fixing it and assign a person (it may not be you) to fix it. If he says not to spend your time on it, then it is worng to fix at that point. You are being paid to work on what you have been assigned to work on not what you want to work on. By all means bring it up that it needs to be changed, but priority setting is the manager's job not yours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is wrong to change working code just because of a personal preference. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's wrong when you don't understand what problem the code was designed to fix or even understand the code. Just because it doesn't work for your needs doesn't mean you won't break something if you muck with it. If you need to change it to make what you are doing work, then go talk to the oreginal programmer about why he did what he did and what might be affected if you change it to meet your needs. NEVER change code you don't understand unless it is not working. This doesn't mean you don't ever fix the code, it just means that until you take the time to understand it thoroughly, you don't change it, especially if it is code already in production. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-15T15:25:20.730" />
  <row Id="3945" PostTypeId="2" ParentId="3713" CreationDate="2010-09-15T15:26:10.650" Score="1" ViewCount="" Body="&lt;p&gt;I'm rather fond of callbacks for errors that &lt;em&gt;can&lt;/em&gt; be handled. And they can be made to work just fine asynchronously...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But for errors that &lt;em&gt;can't&lt;/em&gt; be handled, truly &lt;em&gt;exceptional&lt;/em&gt; errors, I'd rather see the relevant information saved and the program terminated. Since this is usually accomplished via some sort of global error-handler anyway, I see no need to twist exceptions into something that works for this - but better &lt;em&gt;platform&lt;/em&gt; support for detecting critical errors and producing memory dumps, etc. would be nice.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-15T15:26:10.650" CommentCount="1" />
  <row Id="3946" PostTypeId="2" ParentId="3884" CreationDate="2010-09-15T15:26:40.930" Score="3" ViewCount="" Body="&lt;p&gt;I've heard of them and read a few books that used them extensively. I quickly concluded that even assembly language (e.g., MIXAL in Knuth's books) was more understandable. I never had even the slightest urge to draw one (and can't recall anybody's ever having asked me to either).&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-09-15T15:26:40.930" />
  <row Id="3947" PostTypeId="2" ParentId="3921" CreationDate="2010-09-15T15:27:05.017" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;When is it right to edit the code written by a co-worker?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This depends on which phase the product is in.  If the product is already stable and already released I would not make any changes that aren't needed unless there was a big change needed to really ugly code.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;For which issues is it right to edit the code written by a co-worker? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I wouldn't nitpick about coding formatting.  You should refactor when code is overly complex and needs to be changed anyway or is causing problems and never seems to work right.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-15T15:27:05.017" />
  <row Id="3948" PostTypeId="2" ParentId="3921" CreationDate="2010-09-15T15:28:18.107" Score="0" ViewCount="" Body="&lt;p&gt;Like stackexchange or wikis, you should be ready to share your code and allow anyone to modify it as long as the changes fits in the global design and goals. But ask yourself a question : why should someone have to modify someone else's code if it's not for debugging ? Have you clearly cut your project into pieces sufficiently to allow parallelization of coding through multiple programmers at the same time ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If, at the same time, for different functionalities, you are forced to modify the same code as your co-worker, there is a code entanglement and bad &quot;separation of concerns&quot;. You should revise your design to allow each programmer to work on different parts of the software code base.&lt;/p&gt;&#xA;" OwnerUserId="1905" LastActivityDate="2010-09-15T15:28:18.107" />
  <row Id="3950" PostTypeId="2" ParentId="3921" CreationDate="2010-09-15T15:31:06.743" Score="3" ViewCount="" Body="&lt;p&gt;Editing one other's code should be happening as the code evolves and should be encouraged as a practice so that you have collective code ownership.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The code should be owned by the whole team; having code that is only edited by (and therefore only really understood by) one developer is a bad idea. If you aren't in the code making changes yourself, you probably don't understand it. Waiting until the other developer leaves the company or gets sick is the wrong time to learn the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having detailed unit tests in place and using source control should mean this practice is low risk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Encouraging the whole team to follow Uncle Bob's &quot;boy scout rule&quot; and always trying to check in the code a little cleaner than you checked it out is a good way to ensure that the code stays clean over time and doesn't devolve into an unreadable, unmaintainable mess. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only downside to this is if this practice turns into edit wars, where developers are constantly reverting one another's changes. This is probably a sign that you haven't decided on a coding standard for whatever is causing the edit war, so this would be a good opportunity to create one. &lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-15T15:31:06.743" />
  <row Id="3951" PostTypeId="1" CreationDate="2010-09-15T15:31:58.083" Score="6" ViewCount="121" Body="&lt;p&gt;When working on development projects (like an iPhone app for a client), how detailed should your reports be when providing an invoice? In other words, how specific should you be regarding the &lt;strong&gt;particular development tasks&lt;/strong&gt; you were working on at a given time?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just as helpful would be a short example of what one of your invoices looks like, with sample times and tasks that you would typically include.&lt;/p&gt;&#xA;" OwnerUserId="1950" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:30:24.210" LastActivityDate="2010-09-18T21:30:24.210" Title="How detailed should your report/invoice be for hourly work?" Tags="&lt;time&gt;&lt;invoices&gt;" AnswerCount="1" />
  <row Id="3953" PostTypeId="2" ParentId="3951" CreationDate="2010-09-15T15:43:49.080" Score="3" ViewCount="" Body="&lt;p&gt;I think a lot of this depends on how you sold the scope of the project to them before.  If you are truly on an hourly basis all I would do is give them a &quot;general overview&quot; of what you were working on accomplishing for the day and leave it at that, anything more and you might get too technical, or could back yourself into a corner. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, below would be something that I might put out to a customer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;9/1/2010 - Initial project setup, architecture, and source control configuration - 4 hours&lt;br&gt;&#xA;9/2/2010 - User Interface definition and prototype creation - 5 hours&lt;br&gt;&#xA;9/3/2010 - Database work - 4 hours&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally try to not get too far into the weeds as I find it confuses more than anything.  Then they can ask you for more detail if they really want it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I should note that in general, I simply would do a weekly invoice of &quot;Worked 34 hours on &lt;em&gt;_&lt;/em&gt;_ project&quot; unless they wanted the extra detail.  (Now I have a bit more freedom typically with the way I work, but they don't typically need to know the start/end times and other things.&lt;/p&gt;&#xA;" OwnerUserId="1340" LastActivityDate="2010-09-15T15:43:49.080" />
  <row Id="3954" PostTypeId="2" ParentId="3886" CreationDate="2010-09-15T15:46:32.960" Score="2" ViewCount="" Body="&lt;p&gt;If I can actually have natural light, I take it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if my only option is fluorescent artificial light, I will forgo it entirely and program in the dark with only a small desk lamp providing enough to see the keyboard or take some notes. &lt;/p&gt;&#xA;" OwnerUserId="144" LastActivityDate="2010-09-15T15:46:32.960" CommentCount="1" />
  <row Id="3955" PostTypeId="2" ParentId="610" CreationDate="2010-09-15T15:47:55.240" Score="10" ViewCount="" Body="&lt;p&gt;Python's lack of braces and the fact it uses whitespace for code indentation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That combined with pep8 leads to one consistent code style across almost all python code. It also makes the flow of code much easier to follow because you're not wasting lines on syntactic salt. Before I started with python I hated the idea, but once I started coding in it, it's become second nature and anything else looks ugly.&lt;/p&gt;&#xA;" OwnerUserId="1767" LastActivityDate="2010-09-15T15:47:55.240" CommunityOwnedDate="2010-12-07T07:14:37.740" />
  <row Id="3956" PostTypeId="1" AcceptedAnswerId="3990" CreationDate="2010-09-15T15:50:51.593" Score="6" ViewCount="524" Body="&lt;p&gt;In Windows the default way is registry. This allow you to differentiate system-wide and per-user settings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Unix you should use text files in the /etc folder for system-wide settings (what's the convention for per-user settings?).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many new programs (and especially those designed for being portable) use XML files.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What's the best way (and location) to store non-BLOB settings?&lt;/li&gt;&#xA;&lt;li&gt;Should we follow each system default or have a unified solution?&lt;/li&gt;&#xA;&lt;li&gt;And what's the best &lt;strong&gt;portable&lt;/strong&gt; way?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-26T16:31:13.743" LastActivityDate="2010-11-26T16:31:13.743" Title="Best way to save application settings" Tags="&lt;best-practices&gt;&lt;portability&gt;" AnswerCount="11" CommentCount="3" FavoriteCount="2" />
  <row Id="3957" PostTypeId="2" ParentId="3892" CreationDate="2010-09-15T15:51:25.197" Score="3" ViewCount="" Body="&lt;p&gt;The thing you have to keep in mind, depending on the size of the company you are interviewing with, is that the interviewer may rarely actually conduct interviews; it may not be part of their normal duties.  So while you are nervously preparing, reading the latest &quot;How to Ace and Interview&quot; type resources, your interviewer might also be reading up on &quot;How to Conduct and Interview&quot;&lt;/p&gt;&#xA;" OwnerUserId="144" LastActivityDate="2010-09-15T15:51:25.197" />
  <row Id="3958" PostTypeId="2" ParentId="3851" CreationDate="2010-09-15T15:51:35.510" Score="78" ViewCount="" Body="&lt;p&gt;A programmer who doesn't know what he doesn't know and isn't interested at all to find out. &lt;/p&gt;&#xA;" OwnerUserId="468" LastEditorUserId="468" LastEditorDisplayName="" LastEditDate="2010-09-16T01:59:12.680" LastActivityDate="2010-09-16T01:59:12.680" CommunityOwnedDate="2010-12-13T18:51:52.480" CommentCount="4" />
  <row Id="3959" PostTypeId="2" ParentId="1954" CreationDate="2010-09-15T15:54:26.800" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://boingboing.net/&quot; rel=&quot;nofollow&quot;&gt;Boing Boing&lt;/a&gt; and &lt;a href=&quot;http://kottke.org/&quot; rel=&quot;nofollow&quot;&gt;Kottke&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="378" LastActivityDate="2010-09-15T15:54:26.800" CommunityOwnedDate="2011-01-28T09:09:12.040" />
  <row Id="3960" PostTypeId="2" ParentId="3956" CreationDate="2010-09-15T15:55:25.020" Score="2" ViewCount="" Body="&lt;p&gt;User settings are usually in &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/home/&amp;lt;user&amp;gt;/.&amp;lt;application&amp;gt; &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So for example for irssi settings are /home//.irssi/config &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-15T15:55:25.020" CommentCount="8" />
  <row Id="3961" PostTypeId="2" ParentId="3956" CreationDate="2010-09-15T15:56:25.440" Score="3" ViewCount="" Body="&lt;p&gt;I try and keep out of the registry, it is &lt;strong&gt;way&lt;/strong&gt; over used.  I wish everyone would.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like keeping xml config files or a bin file or occasionally a local database (SQLite).&lt;/p&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-15T15:56:25.440" CommentCount="7" />
  <row Id="3962" PostTypeId="2" ParentId="3956" CreationDate="2010-09-15T15:57:08.870" Score="4" ViewCount="" Body="&lt;p&gt;In Windows, I would keep the application setting in &lt;code&gt;AppData&lt;/code&gt; folder&lt;/p&gt;&#xA;" OwnerUserId="468" LastActivityDate="2010-09-15T15:57:08.870" />
  <row Id="3963" PostTypeId="2" ParentId="1954" CreationDate="2010-09-15T15:59:05.773" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blog.asmartbear.com/&quot; rel=&quot;nofollow&quot;&gt;A Smart Bear&lt;/a&gt;. Startup, marketing and entrepreneur.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.iwillteachyoutoberich.com/&quot; rel=&quot;nofollow&quot;&gt;I Will Teach You To Be Rich&lt;/a&gt;. On personal finance and entrepreneurship. &lt;/p&gt;&#xA;" OwnerUserId="468" LastActivityDate="2010-09-15T15:59:05.773" CommunityOwnedDate="2011-01-28T09:09:12.040" />
  <row Id="3966" PostTypeId="2" ParentId="3956" CreationDate="2010-09-15T16:09:02.127" Score="0" ViewCount="" Body="&lt;p&gt;For Java apps I think &lt;a href=&quot;http://code.google.com/p/google-gson/&quot; rel=&quot;nofollow&quot;&gt;gson&lt;/a&gt; is a good choice. Create your settings objects and use gson to convert them to JSON and vice versa. Has the advantage of being human readable instead of some serialized blob.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: ok, so its maybe not so general...&lt;/p&gt;&#xA;" OwnerUserId="170" LastActivityDate="2010-09-15T16:09:02.127" />
  <row Id="3967" PostTypeId="1" CreationDate="2010-09-15T16:10:25.433" Score="0" ViewCount="53" Body="&lt;p&gt;The &lt;a href=&quot;http://github.com/aaronchi/jrails&quot; rel=&quot;nofollow&quot;&gt;jRails&lt;/a&gt; project is a drop in replacement for the Prototype/scriptalicious helpers already a part of the Rails framework. Are your experiences with this project positive? Does it do what it says on the tin? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it still being maintained or is this a bad choice if I want to do jQuery with RoR?&lt;/p&gt;&#xA;" OwnerUserId="1955" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-15T16:30:42.337" LastActivityDate="2010-09-15T16:30:42.337" Title="Is the jRails Project something I should use?" Tags="&lt;usage&gt;&lt;frameworks&gt;&lt;ruby-on-rails&gt;&lt;jquery&gt;" AnswerCount="1" />
  <row Id="3968" PostTypeId="2" ParentId="3918" CreationDate="2010-09-15T16:12:28.643" Score="2" ViewCount="" Body="&lt;p&gt;I occasionally reorder code written by messy coworkers (or fix typos in comments). They know that I'm obsessive in code formatting and order and therefore they let me do that without complaining too much. Sometimes they also give me a free soda or cookie.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course this is &lt;em&gt;occasional&lt;/em&gt; work, as it broke the &quot;blame&quot; functionality in SVN.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is also a very basic way to do some kind of code review (I usually read most of the code committed by my coworkers in the modules I'm working on).&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-15T16:12:28.643" />
  <row Id="3969" PostTypeId="2" ParentId="3851" CreationDate="2010-09-15T16:13:29.537" Score="6" ViewCount="" Body="&lt;p&gt;There are two categories for programmers for me - solo and team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad solo programmers are &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Those who took too long to get the simple task done.&lt;/li&gt;&#xA;&lt;li&gt;Those who can't research by themselves for what they are doing.&lt;/li&gt;&#xA;&lt;li&gt;Those who will forget what has been coded today within few days and can't maintain his own code base very well.&lt;/li&gt;&#xA;&lt;li&gt;Those who can't adapt to the requirement changes.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Bad team programmers are those who falls into bad solo programmers category, including&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Those who can't coordinate with other team members.&lt;/li&gt;&#xA;&lt;li&gt;Those who don't welcome criticize.&lt;/li&gt;&#xA;&lt;li&gt;Those who don't know how to be useful to others, and how to benefit from other team members.&lt;/li&gt;&#xA;&lt;li&gt;Those who can't write readable code.&lt;/li&gt;&#xA;&lt;li&gt;Those who don't comment for the sake of readability to the others.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-09-15T16:13:29.537" CommunityOwnedDate="2010-12-13T18:51:52.480" CommentCount="3" />
  <row Id="3970" PostTypeId="2" ParentId="3732" CreationDate="2010-09-15T16:18:21.847" Score="4" ViewCount="" Body="&lt;p&gt;NULL, nil, null or whatever, and the one who invented that.&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-09-15T16:18:21.847" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="3" />
  <row Id="3971" PostTypeId="2" ParentId="3918" CreationDate="2010-09-15T16:21:10.387" Score="4" ViewCount="" Body="&lt;p&gt;IDE's like Visual Studio have an option called &lt;code&gt;Format Document&lt;/code&gt; that will format code according to the rules the user has set in the IDE. It could be your co-worker is using this (either automatically without knowing, or by deliberate application). Perhaps their IDE uses spaces instead of tabs, or vice-versa, and these are being applied automatically without even knowing? But you need to talk with them to find out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Incidentally, I will often re-format code of co-workers if it is obviously not following some kind of formatting scheme (i.e. it is all over the place). It's a hopefully subtle way of making them notice. (However, I wouldn't reformat it if it was neat, but not to my liking).&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-15T16:21:10.387" CommentCount="2" />
  <row Id="3972" PostTypeId="2" ParentId="3956" CreationDate="2010-09-15T16:28:30.423" Score="7" ViewCount="" Body="&lt;p&gt;Under Windows, use &lt;code&gt;%APPDATA%\appname&lt;/code&gt;. Under *NIX, use &lt;code&gt;~/.appname&lt;/code&gt;. Don't use fixed directory names under either platform, since the user's home directory can be different from the default (it could be on the network, for example). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the format, use whatever you think is best. That is a decision that only &lt;em&gt;you&lt;/em&gt; can make in the context of your application. It is unnecessary, and indeed, inadvisable, to have a &quot;standard&quot; way of doing it, if that &quot;standard&quot; way isn't what's best for your particular program. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, XML/JSON might be a good way of storing user data/configuration if your application already uses XML/JSON for something else. But if it's a simple configuration file, why add bloat to your app by introducing a dependency? In that case, it's probably best to just use a simple text file with &lt;code&gt;var: value\n&lt;/code&gt; lines instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; There isn't a &quot;best&quot; portable way, since OSes use very different conventions for this. Don't break OS standards without a bloody good reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT2:&lt;/strong&gt; If you find yourself making a system-wide setting in &lt;code&gt;/etc&lt;/code&gt; or &lt;code&gt;HKEY_LOCAL_MACHINE&lt;/code&gt;, ask yourself if the setting is &lt;em&gt;really&lt;/em&gt; global. Then wait 5 minutes and ask yourself again. If the answer is still yes, then by all means, make a global setting. Remember, a normal user doesn't have write access to &lt;code&gt;/etc&lt;/code&gt; or &lt;code&gt;HKEY_LOCAL_MACHINE&lt;/code&gt; and by doing this, you're ensuring that someone without admin rights can't install your app.&lt;/p&gt;&#xA;" OwnerUserId="61" LastEditorUserId="61" LastEditorDisplayName="" LastEditDate="2010-09-15T16:38:21.777" LastActivityDate="2010-09-15T16:38:21.777" CommentCount="5" />
  <row Id="3973" PostTypeId="2" ParentId="3967" CreationDate="2010-09-15T16:29:50.077" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is it still being maintained or is this a bad choice if I want to do jQuery with RoR?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Their website doesn't exist anymore, their Google Group has some spam and their code isn't updated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess this isn't maintained anymore and might be a bad choice for continuous development...&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-15T16:29:50.077" />
  <row Id="3974" PostTypeId="1" AcceptedAnswerId="3976" CreationDate="2010-09-15T16:39:44.830" Score="70" ViewCount="5896" Body="&lt;p&gt;Let me start by saying I'm female, but every single other female programmer I've known has been pretty terrible. The extent of their knowledge seems to be copy/paste and modify some values. Quite often they don't even try to learn new concepts, or understand what they're doing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not saying good female programmers aren't out there, just that the ratio of good/bad programmers seems much worse then males. Perhaps its because everyone feels they have to give female programmers a chance to prove they are not biased? Or is this just me?? What has your experiences been with them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; Just want to say thanks for all the responses. I've learned some interesting things and am happy to know that female programmers have such support :) My experience has been very limited with them but all bad, and I agree that it is probably due to my small sample size (around 5). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wasn't trying to be sexist with such a question, I just wanted to find out if it was really that abnormal to be a female programmer. I'm abnormal about a lot of things you'd expect from a female... I play video games in most of my spare time, I liked Math so much I completed my entire math book during christmas break one year (What can I say, I found the subject interesting), I'm not very social, I dislike shopping, I only have 2 pairs of shoes, my significant other doesn't work but does all the housework/laundry/etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;but anyways, thanks :)&lt;/p&gt;&#xA;" OwnerUserId="1130" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:07:25.630" LastActivityDate="2011-02-22T08:45:23.683" CommunityOwnedDate="2010-09-16T16:16:52.033" Title="What's your experience with female programmers?" Tags="&lt;experience&gt;&lt;gender&gt;" AnswerCount="42" CommentCount="21" FavoriteCount="28" />
  <row Id="3975" PostTypeId="1" CreationDate="2010-09-15T16:40:13.567" Score="6" ViewCount="233" Body="&lt;p&gt;Is anybody out there using graphical tools for doing software development instead of (or in addition to) writing code? Yahoo! Pipes would be a simple example. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;People have been talking about graphical development environments for a long time, but they don't seem to have ever hit the mainstream. I know that in the scientific and engineering communities, Simulink and LabVIEW see real usage. Are there other domains where there's real usage?&lt;/p&gt;&#xA;" OwnerUserId="966" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:24:21.113" LastActivityDate="2010-09-19T01:30:42.457" Title="Is anybody using graphical tools for doing software development?" Tags="&lt;tools&gt;&lt;ide&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="1" />
  <row Id="3976" PostTypeId="2" ParentId="3974" CreationDate="2010-09-15T16:43:55.523" Score="110" ViewCount="" Body="&lt;p&gt;I think your experience is probably because a good chunk of &quot;professional&quot; developers are &lt;em&gt;horrible&lt;/em&gt; programmers. Add to that the fact that female programmers are quite rare, and you end up seeing a very biased sample. I'd say that the ratio of good developers to poor ones is about the same regardless of their sex. In my experience, that ratio is 5-10%, if you include everyone who calls themselves a programmer, and a bit better, say 15%, if you only include people who program for a living. If you work at say, Google, or in academia, the ratio is much higher, sometimes (though rarely) even approaching 100%.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-15T16:43:55.523" CommunityOwnedDate="2010-09-16T16:16:52.033" CommentCount="10" />
  <row Id="3977" PostTypeId="2" ParentId="3974" CreationDate="2010-09-15T16:47:55.437" Score="32" ViewCount="" Body="&lt;p&gt;I've worked with several female programmers over the years in a variety of situations.  Some were incompetent and looking to skate by, some were mediocre and could produce passable code under proper supervision, some were excellent and could code circles around me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, I've noticed no real difference in their performance relative to that of my male colleagues.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-15T16:47:55.437" CommunityOwnedDate="2010-09-16T16:16:52.033" CommentCount="3" />
  <row Id="3978" PostTypeId="2" ParentId="3974" CreationDate="2010-09-15T16:51:02.983" Score="3" ViewCount="" Body="&lt;p&gt;I personally would say the ratio of good:bad female programmers is &#xA;probably greater then that of males.  This is based on the notion &#xA;that the computer field is dominated currently by males so usually the &#xA;female programmers in my experience who are in CSE are there because &#xA;they love it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;During my undergraduate studies I came across a handful of female CSE students.  Just like the guys there were various levels of expertise and experience.  Additionally, as a TA for a CSE class I can say and I am not sure the reason behind it but usually the females were more subservient and went with the flow.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To give some background, CSE 560 the class I was a TA for is a quarter long team based project to build an assembler, linker, loader, simulator for a given language.  Generally speaking though the teams with females tended to stay on schedule and produce better projects.  however, some of these teams the female did not do anything and it was obvious and in other teams the female seemed to have greater hand in the project.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is I think a tough field right now for females but I give them credit for pursuing their passion.  &lt;/p&gt;&#xA;" OwnerUserId="136" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-15T20:32:21.967" LastActivityDate="2010-09-15T20:32:21.967" CommunityOwnedDate="2010-09-16T16:16:52.033" CommentCount="2" />
  <row Id="3979" PostTypeId="2" ParentId="3974" CreationDate="2010-09-15T16:51:43.370" Score="3" ViewCount="" Body="&lt;p&gt;I haven't worked with any female programmer, and I have no experience with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(useless, but, at least, honest)&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-15T16:51:43.370" CommunityOwnedDate="2010-09-16T16:16:52.033" CommentCount="2" />
  <row Id="3981" PostTypeId="2" ParentId="3956" CreationDate="2010-09-15T16:53:48.423" Score="1" ViewCount="" Body="&lt;p&gt;My answer is a combination of Chinmay Kanchi's &lt;a href=&quot;http://programmers.stackexchange.com/questions/3956/best-way-to-save-application-settings/3972#3972&quot;&gt;answer&lt;/a&gt; and BioBuckyBall's &lt;a href=&quot;http://programmers.stackexchange.com/questions/3956/best-way-to-save-application-settings/3961#3961&quot;&gt;answer&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;XML/Json for simple configurations, SQLite for complex, larger configurations parked on default OS application folder or default OS user folder when configurations are user dependent. Both could be used.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-15T16:53:48.423" />
  <row Id="3982" PostTypeId="2" ParentId="3974" CreationDate="2010-09-15T16:55:44.533" Score="2" ViewCount="" Body="&lt;p&gt;Well, part of it's genetic, and part of it's social or behavioral.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As politically uncorrect as it is to mention this, studies have shown repeatedly that men (in general) are more likely to be good at the sort of math and abstract reasoning that makes a good programmer than women (in general).  So you're already at a bit of a disadvantage, statistically speaking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you get into the social side of things, and things get worse.  A lot of women who could be good programmers don't want to get into the field because they know that guys tend to react badly in one way or another.  Lots of guys will feel intimidated by a girl who's as smart as them, and half the rest will be &lt;a href=&quot;http://i.imgur.com/HYKBj.gif&quot; rel=&quot;nofollow&quot;&gt;too busy drooling over the poor girl&lt;/a&gt; to actually get any productive work done as colleagues.  Add Sturgeon's Law (90% of everything is crud) into the mix, and you end up with a pretty low number of competent female developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think I know a grand total of three women who write code.  One is pretty well-adjusted, has a nice family, and is a pleasant person to be around.  The second is an obnoxious flirt who blatantly charms all the guys into helping her out with any little problem she has with her code, just because she can.  (Something you'd never find among male coders, for whatever reason.)  The third is a nice, decent person who's really smart, but has some pretty serious neuroses that can make dealing with her a bit awkward sometimes. (OK, so that last one's common enough among male programmers, at least.) :P&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-15T16:55:44.533" CommunityOwnedDate="2010-09-16T16:16:52.033" CommentCount="8" />
  <row Id="3983" PostTypeId="1" CreationDate="2010-09-15T17:06:57.397" Score="3" ViewCount="272" Body="&lt;p&gt;In your experience, what is the ratio between good and poor programmers? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found that the majority of programmers I've met have been pretty poor. But this has varied a lot depending on where I met them. Most programmers I've met socially have been pretty horrible, and the same for when I worked in industry. But in academia, the vast majority of programmers have been very good, even if they started with limited knowledge of programming, they picked up techniques very quickly and often ended up as &lt;em&gt;very&lt;/em&gt; good programmers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What about you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; By good programmer, I mean someone capable of solving a programming problem &lt;em&gt;well&lt;/em&gt;  and in readable code, and not necessarily someone who follows all the best practices that you'd expect in a professional software developer. Best practices can be learned if required, but if you can't think like a programmer, it's very hard to learn to do it later in your career.&lt;/p&gt;&#xA;" OwnerUserId="61" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:07:19.890" LastActivityDate="2010-09-29T23:07:19.890" ClosedDate="2011-01-05T17:13:00.750" Title="Ratio between good and poor programmers" Tags="&lt;comparison&gt;&lt;competence&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="3985" PostTypeId="2" ParentId="3974" CreationDate="2010-09-15T17:09:38.117" Score="10" ViewCount="" Body="&lt;p&gt;We have a lot of female programmers, some are good, some are bad and some are middle of the road just like the male programmers. Probably the single best programmer (out of over 100 programmers) we have is female (no not me, I'm a specialist - I'm good at what I do, but only in my narrow niche). It really is best not to try not to generalize things like programmer skills, judge people as individuals not based on their sex or religion or national orgin or if they are gay or not. Those things are all irrelvant to whether they can be or are good programmers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do rarely see a woman who spends a lot of her time outside work doing extra programming for fun. After all we mostly have to deal with the housework, husbands, kids, and pets outside of work, women generally don't have as much free time to spend on these things as men do. When people use outside programming as a criteria for hiring, they pretty much exclude women from being hired. This may be why some of you never see women in your shops. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-15T17:09:38.117" CommunityOwnedDate="2010-09-16T16:16:52.033" CommentCount="14" />
  <row Id="3986" PostTypeId="2" ParentId="3983" CreationDate="2010-09-15T17:10:22.973" Score="3" ViewCount="" Body="&lt;p&gt;I'd say about the same as the ratio between good and bad instances of anything else.  Theodore Sturgeon got it right: &lt;a href=&quot;http://tvtropes.org/pmwiki/pmwiki.php/Main/Ptitle3tinj4tz?from=Main.SturgeonsLaw&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;90% of everything is crud.&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-15T17:10:22.973" CommentCount="3" />
  <row Id="3987" PostTypeId="2" ParentId="3983" CreationDate="2010-09-15T17:11:52.223" Score="6" ViewCount="" Body="&lt;p&gt;How do you define good and bad here? In my experience, academic programmers make pretty poor software developers. They're great when it comes to designing an algorithm, but error checking is sometimes lacking because in academics you can just state your assumptions for the input and not worry about anything else. I believe that a different skill set is needed to be a good programmer and a good application developer, although they certainly overlap in many areas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To address your question as I understand it, though... I think the ratio for me is about 50/50. I try very hard to not assume I'm better than somebody right away, because it's an easy trap to fall into. Most people will automatically say they're above average when asked how good they are. It's hard to make a definite call on this, since sometimes you just don't know what you don't know.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-15T17:11:52.223" CommentCount="6" />
  <row Id="3988" PostTypeId="2" ParentId="3974" CreationDate="2010-09-15T17:12:43.767" Score="2" ViewCount="" Body="&lt;p&gt;I attended a very small, programming-centric university for my degree program where of the roughly 350 students, ~20 were female. Of those 20, I can personally say that about 30-40% of them were actually quite capable programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Considering the complexity of this job, 30-40% is fairly large percentage- and I found that the same statistic generally applied to males. However, like @Chinmay Kanchi pointed out and as the gender ratio at my university demonstrates, there are far fewer females taking up programming than there are males. I think it's fair to say that it is for this reason more than any other that the prevalence of talented female programmers seems low when compared to males.&lt;/p&gt;&#xA;" OwnerUserId="13" LastActivityDate="2010-09-15T17:12:43.767" CommunityOwnedDate="2010-09-16T16:16:52.033" />
  <row Id="3989" PostTypeId="2" ParentId="3884" CreationDate="2010-09-15T17:14:11.050" Score="4" ViewCount="" Body="&lt;p&gt;Heard of Nassi-Shneiderman diagrams, although I don't use them myself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't help posting a link to the rejection letter that Nassi and Shneiderman received from Communications of the ACM when they first proposed the diagram: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.cs.umd.edu/hcil/members/bshneiderman/nsd/rejection_letter.html&quot; rel=&quot;nofollow&quot;&gt;http://www.cs.umd.edu/hcil/members/bshneiderman/nsd/rejection_letter.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="966" LastActivityDate="2010-09-15T17:14:11.050" CommentCount="3" />
  <row Id="3990" PostTypeId="2" ParentId="3956" CreationDate="2010-09-15T17:16:25.857" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What's the best way (and location) to store non-BLOB settings?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;On Windows, it seems acceptable to use the registry. In my opinion, the registry was a poorly-devised system, and instead a simple text file in the &lt;code&gt;Users\Username\AppData&lt;/code&gt; directory should be preferred. This is easier to back up, less dangerous for users to modify, and easier to clean up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On Linux and most Unixes, The preferred location is &lt;code&gt;/home/user/.config/appname&lt;/code&gt; for user-specific settings and &lt;code&gt;/etc/&lt;/code&gt; for global (system-wide) settings. The less-preferred (but acceptable) location for user settings is &lt;code&gt;~/.appname&lt;/code&gt;, but this is generally falling out of favor. These files should be user-editable, so a human-readable format is always preferred.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I disagree with most people that XML is an acceptable format for storing non-blob data. It is, in my opinion, an overwrought and excessively complex format for what usually ends up being very small pieces of structured data. I prefer to see files in YAML, JSON, ASN.1, name=value pairs, or similar formats. Having too much syntax makes it too easy for a user to mess up and leave the file in an invalid format.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Should we follow each system default or have a unified solution?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That is entirely up to you, but keep some things in mind:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Platforms like *nix have strict limitations on which locations are writable. More strict than Windows. So:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The only place you should write to anything is in the user's home directory.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Unless&lt;/em&gt; your application is a system service; in which case, all data files should be in &lt;code&gt;/var/&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Configuration files in &lt;code&gt;/etc/&lt;/code&gt; should &lt;em&gt;never&lt;/em&gt; be written to by the application when it is running, even if it has write access to them. &lt;code&gt;/etc/&lt;/code&gt; should be the repository for &lt;strong&gt;default&lt;/strong&gt; behaviors and nothing else.&lt;/li&gt;&#xA;&lt;li&gt;Plan for your application to be installed in one of three places: &lt;code&gt;/usr/local/&lt;/code&gt;, &lt;code&gt;/opt/appname&lt;/code&gt;, or &lt;code&gt;/home/username/appname&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Blobs should be stored alongside other configuration files if they are to be changed. It is &lt;em&gt;generally preferable&lt;/em&gt; to use a user-editable format, so something like SQLite or Berkeley DB is preferred (since there are command-line tools for each), but not &lt;em&gt;required.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;On Windows, your applications should only ever write in the User directory. The standardized location for data files is &lt;code&gt;Users\User\AppData&lt;/code&gt;. Nowhere else seems acceptable.&lt;/li&gt;&#xA;&lt;li&gt;On Mac OS X, your application settings should be stored in &lt;code&gt;~/Library/Preferences&lt;/code&gt; along with all of the other applications' plist files. &lt;code&gt;plist&lt;/code&gt; seems to be the preferred format, but you'll want to double-check with the Apple guidelines.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;And what's the best portable way?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;There is no &quot;best,&quot; to be honest. There are only platform-specific limitations and expectations. My recommendation is to stick with platform-specific means, even if it means writing more code.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-09-15T17:16:25.857" CommentCount="3" />
  <row Id="3992" PostTypeId="2" ParentId="3983" CreationDate="2010-09-15T17:20:20.133" Score="1" ViewCount="" Body="&lt;p&gt;From my experience - I's about 5% are good programmers - the kind you can throw any problem onto and expect them to be able to handle it and produce a working solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About 80% are middle of the road programmers, good with the kind of problems that re-occur frequently and can handle most things, meet most deadlines, etc. Not so good at complex problems that don't fit solutions they are already familiar with.  But fine for the 90% of the work that needs to be done. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That leaves 15% as bad programmers. These are people who should be ushered out the professional as soon as humanly possible, but for some reason they aren't.  About 10% of these are in their first five years of experience and it takes time to get rid of them from the profession (it's hard to tell the differnce between inability to do the work and inexperience inteh first couple of years). The other 5% get by on their political skills and by changing jobs frequently. They often interview well - they just can't produce.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-15T17:20:20.133" CommentCount="1" />
  <row Id="3993" PostTypeId="2" ParentId="3892" CreationDate="2010-09-15T17:21:25.103" Score="2" ViewCount="" Body="&lt;p&gt;I would reflect the question back onto the interviewer. Having never been a mechanical or civil engineer, nor having worked in the domain, I would request context. If not given it, I would again reflect the question, mentioning that for a quality answer in an unfamiliar domain, I need some research time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The answer probably revolves around standard shape of pipes. But that's just a guess.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-15T17:21:25.103" CommentCount="1" />
  <row Id="3994" PostTypeId="2" ParentId="3975" CreationDate="2010-09-15T17:22:30.570" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://radicalbreeze.com/&quot; rel=&quot;nofollow&quot;&gt;Illumination Software Creator&lt;/a&gt; seems to have some popularity, though it's not used widely. It seems more popular now that it has Android support, though.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-09-15T17:22:30.570" />
  <row Id="3995" PostTypeId="2" ParentId="3918" CreationDate="2010-09-15T17:25:12.070" Score="5" ViewCount="" Body="&lt;p&gt;As one of &lt;em&gt;those&lt;/em&gt; people (the people who occasionally reformat other people's code), the main reason I do it is readability.  Some people are just extremely sloppy with their indentation or with mixing tabs and spaces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main thing I have a habit of changing is reducing long lines so that I can read the whole thing without horizontal scrolling.  I'll break complex statements up into separate statements or reformat method calls/declarations to list one parameter per line if it doesn't all fit comfortably on a single line.  I'll also edit comments, either to fix English errors or just to make things clearer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, I could leave it alone, but I'd rather reduce the mental effort required to read the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What should you do about it?  Firstly, consider that maybe this person is making your code better.  Also, you should ensure that you have some consensus in your team about how code should be formatted.  If each person has different habits it will slow everybody down.  If they are not making your code better and they are going against the grain, then you need to confront them about it.  If that doesn't work then you might need to get others involved.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-15T17:25:12.070" CommentCount="1" />
  <row Id="3996" PostTypeId="2" ParentId="3824" CreationDate="2010-09-15T17:27:53.193" Score="1" ViewCount="" Body="&lt;p&gt;Yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The amount of testing is in proportion to the reliability required of the app, as well as the maturity of the programmer culture. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Web sites are quite often walking bug-holes (broken links &lt;em&gt;are&lt;/em&gt; a defect).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Video games are often buggy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Windows (finally) is fairly reliable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Routers are very reliable&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hospital monitors &quot;don't break&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that the fiscal cost of failure is also correlated to reliability.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-15T17:27:53.193" />
  <row Id="3997" PostTypeId="1" AcceptedAnswerId="4006" CreationDate="2010-09-15T17:35:09.970" Score="12" ViewCount="351" Body="&lt;p&gt;Do you or your company use off-shore resources for coding??  Has it been a successful experience?  What was good about it?  What was bad?&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-24T13:25:43.617" LastActivityDate="2010-11-24T17:37:53.380" Title="Does off-shore resourcing work?" Tags="&lt;resources&gt;&lt;off-shore&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="4" />
  <row Id="3998" PostTypeId="2" ParentId="3811" CreationDate="2010-09-15T17:37:36.480" Score="1" ViewCount="" Body="&lt;p&gt;Depends. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of your skills are self-learnable. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;If you don't know algorithm analysis, you are much more likely to stumble into writing hideously inefficient code. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you don't know the basics of theory of computation/complexity, you might wind up trying to solve n-sat naively. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you don't have a handle on an algorithm book (or three), how will you know what has already been done?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Okay, so you can bang out line of business apps. &lt;em&gt;Sweet&lt;/em&gt;. There are tons of shops out there that need that exact ability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Practical knowledge can be learned by anyone. It is not an advantage over the long term. (Experience is an advantage).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But your knowledge of computer science is is subpar and will hamper you if you want to move into more edgy areas of programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will have to make the career choice to either push towards dealing with your gaps (possibly a non-thesis Master's would be a good choice) or decide to focus on the line-of-business and other areas that don't require that extra edge.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-15T17:37:36.480" CommentCount="4" />
  <row Id="3999" PostTypeId="2" ParentId="3851" CreationDate="2010-09-15T17:38:21.843" Score="16" ViewCount="" Body="&lt;p&gt;Programmers who refuse to learn new technologies/languages, and insist on sticking to what they already know.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Addendum: (adding what dash said below in the comments)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;An extension of this is people who know a subset of the functionality of some technology but &#xA;  show no desire to learn anything more about it. Programming language, editor, other tools... &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1968" LastEditorUserId="1968" LastEditorDisplayName="" LastEditDate="2010-10-17T14:20:34.873" LastActivityDate="2010-10-17T14:20:34.873" CommunityOwnedDate="2010-12-13T18:51:52.480" CommentCount="2" />
  <row Id="4000" PostTypeId="1" CreationDate="2010-09-15T17:38:25.680" Score="10" ViewCount="257" Body="&lt;p&gt;I consider myself a &lt;a href=&quot;http://en.wikipedia.org/wiki/Software_craftsmanship&quot; rel=&quot;nofollow&quot;&gt;Software Craftsman&lt;/a&gt;.  I like to attend local user groups and events to learn about new technologies as well as network with other software craftsman.  We love to talk about what we're doing, what we're learning, and in general how to get better at the things we like.  Some of these meetups and events are free, others are not and sometimes take place during working hours (9am - 5pm).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My work generally did not allow me to attend events during office hours unless it directly had something to do with what we were currently implementing/using.  Nor did they provide any support to any software resources/plugins that could help boost productivity.  For the most part, I've been in charge of educating myself and actually purchasing my own software tools (example: Resharper).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is: &lt;strong&gt;How involved should our employers be in providing software developers with tools, resources, and general education on up and coming technologies?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should they provide MSDN subscriptions for their developers to install software at home?  Should they pay for conference fees to learn about new technologies?&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2011-06-03T21:01:46.807" Title="How involved should our employers be in our education?" Tags="&lt;work&gt;&lt;education&gt;&lt;software-craftsmanship&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="5" />
  <row Id="4001" PostTypeId="1" AcceptedAnswerId="5981" CreationDate="2010-09-15T17:41:26.307" Score="8" ViewCount="194" Body="&lt;p&gt;Are you an off-shore coding resource for a foreign company?  What are the challenges of working with foreign companies?  What helps make the project more successful?&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-18T14:28:58.013" LastActivityDate="2010-09-21T15:54:33.000" Title="What are off-shore resources' experiences like working for foreign companies?" Tags="&lt;jobs&gt;&lt;resources&gt;&lt;off-shore&gt;" AnswerCount="3" CommentCount="8" FavoriteCount="2" />
  <row Id="4002" PostTypeId="2" ParentId="3983" CreationDate="2010-09-15T17:42:43.330" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;But in academia, the vast majority of&#xA;  programmers have been very good, even&#xA;  if they started with limited knowledge&#xA;  of programming, they picked up&#xA;  techniques very quickly and often&#xA;  ended up as very good programmers.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I chuckled when I read that, having 'been there, done that.'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Academic programming is rarely what I would call &quot;good&quot; programming.  Usually, it can focus very narrowly on it's topic and not worry about malicious input etc.  So you give 'academic' code  input it isn't expecting and it will fall over and die.  Not to say there aren't good academic programmers, but if they are good most of the time it is unlikely to show in their day to day work.&lt;/p&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-15T17:42:43.330" CommentCount="1" />
  <row Id="4004" PostTypeId="2" ParentId="4000" CreationDate="2010-09-15T17:49:09.600" Score="5" ViewCount="" Body="&lt;p&gt;I can tell you my experience.  I've worked for a bunch of companies that provided nothing in the way of training or support and now work for a company that supplies everything.  They will buy nearly any tool/aid (as long as you can remotely justify why it is useful) and actaully require you to attend some sort of formal training at their expense.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Needless to say I like having everything supplied. :-)&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-15T17:49:09.600" CommentCount="1" />
  <row Id="4005" PostTypeId="2" ParentId="3956" CreationDate="2010-09-15T17:49:52.130" Score="0" ViewCount="" Body="&lt;p&gt;If you are writing in .NET, you can use &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx&quot; rel=&quot;nofollow&quot;&gt;System.Environment.SpecialFolders&lt;/a&gt; to find out what folder locations you can use for saving configuration or even some data. &lt;/p&gt;&#xA;" OwnerUserId="921" LastActivityDate="2010-09-15T17:49:52.130" />
  <row Id="4006" PostTypeId="2" ParentId="3997" CreationDate="2010-09-15T17:50:35.967" Score="13" ViewCount="" Body="&lt;p&gt;My company does, and it's a mess and a half.  We've got a Ukranian offshore team that, to simplify things a little, takes care of a lot of the &quot;grunt work&quot; of coding, while our real team does the &quot;craftsman work.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Theoretically, that's a pretty good setup.  In practice, it's a disaster, because even boring, mostly repetitive tasks are only &lt;em&gt;mostly&lt;/em&gt; repetitive, and they have a nasty habit of having little details that need to be paid attention to hidden somewhere in the middle of the batch.  This is the sort of thing that our beloved Elbonian Code Monkey Squad invariably gets completely wrong, and then we end up having to waste time fixing their mistakes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The higher-ups hired an offshore team &quot;to save money,&quot; but in the end it ends up looking a lot like the depressingly common Standard Business Mistake that ended up screwing up our whole economy a few years back: focus exclusively on saving money in the short-term, because that's all that people watching the money notice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice on offshoring: don't.  You get what you pay for.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-15T17:50:35.967" CommentCount="6" />
  <row Id="4007" PostTypeId="2" ParentId="3975" CreationDate="2010-09-15T17:50:47.230" Score="1" ViewCount="" Body="&lt;p&gt;Development in &lt;a href=&quot;http://www.microsoft.com/biztalk/en/us/orchestration.aspx&quot; rel=&quot;nofollow&quot;&gt;BizTalk&lt;/a&gt; is primarily graphical.  You often have to write a bit of C# when you get down into the details, but the majority of your development can easily be via a GUI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/library/ee342461.aspx&quot; rel=&quot;nofollow&quot;&gt;Windows Workflow&lt;/a&gt; is also highly graphical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say that both are graphical software development and quite mainstream.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tell ya, for someone billed as a C# developer I spend an awful lot of time dragging shapes onto a surface and connecting them with arrows!&lt;/p&gt;&#xA;" OwnerUserId="143" LastActivityDate="2010-09-15T17:50:47.230" CommentCount="2" />
  <row Id="4008" PostTypeId="2" ParentId="3974" CreationDate="2010-09-15T17:51:37.257" Score="0" ViewCount="" Body="&lt;p&gt;I have had the pleasure of working with 2 female developers.  I say pleasure as they were first class.  They knew their stuff, and even though the rest of the team were male, they always stuck up for themselves.  If they believed in a particular practice or theory etc they always said so and always produced good quality code too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that I did work with someone who didn't have a clue and quite frankly I don't know how she made a living out of it.&lt;/p&gt;&#xA;" OwnerUserId="1951" LastActivityDate="2010-09-15T17:51:37.257" CommunityOwnedDate="2010-09-16T16:16:52.033" />
  <row Id="4009" PostTypeId="2" ParentId="3811" CreationDate="2010-09-15T17:52:40.953" Score="0" ViewCount="" Body="&lt;p&gt;IMO, the big factor in your favor is that you started on your own, stayed with it, and eschew your actual degree in favor of coding.  Those are signs of a &lt;em&gt;programmers' programmer&lt;/em&gt;.  I'd hire someone like you over someone with a CS degree any day of the week.  About the only area it might hurt you is if you are going for a job for something computer-sciency, like writing compilers or embedded systems.  Then you might have a disadvantage.  But since you have an Aerospace degree... pesonally I find that far more impressive than a CS degree. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, as I'm thinking about it, you might still consider Aerospace positions.  A lot of the engineers I've known were essentially programmers, since thats all they did.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-15T17:52:40.953" CommentCount="1" />
  <row Id="4010" PostTypeId="2" ParentId="3974" CreationDate="2010-09-15T17:56:55.077" Score="20" ViewCount="" Body="&lt;p&gt;I'm a male programmer married to a female programmer (which gives interesting kids but that is another story).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have met a lot of programmers both female and male. Some are great, some are terrible. But I have found no relation between gender and programming quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some differences. Female programmers ask more questions which isn't a bad thing. &lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-15T17:56:55.077" CommunityOwnedDate="2010-09-16T16:16:52.033" CommentCount="11" />
  <row Id="4011" PostTypeId="2" ParentId="3851" CreationDate="2010-09-15T18:00:05.910" Score="2" ViewCount="" Body="&lt;p&gt;!(smart and gets things done)&lt;/p&gt;&#xA;" OwnerUserId="310" LastActivityDate="2010-09-15T18:00:05.910" CommunityOwnedDate="2010-12-13T18:51:52.480" CommentCount="1" />
  <row Id="4012" PostTypeId="2" ParentId="3519" CreationDate="2010-09-15T18:01:00.047" Score="1" ViewCount="" Body="&lt;p&gt;My approach is simply start writing in selected language, find pet project and do it. Read lots of samples, check others code, go through one bigger project source, find what you don't understand and read it up in the docs.&#xA;Currently learning F# and bought the book - Expert F# - I find it incredibly difficult to focus and read through all of it without having to use it. But here's not only a new language, that's the whole paradigm shift from imperative to functional.&lt;/p&gt;&#xA;" OwnerUserId="1150" LastActivityDate="2010-09-15T18:01:00.047" />
  <row Id="4013" PostTypeId="2" ParentId="3974" CreationDate="2010-09-15T18:03:46.170" Score="6" ViewCount="" Body="&lt;p&gt;In my coding career I've worked with a pretty good number of female programmers and I'd say that the ratio of bad/good coders is no different than it is for males.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are 2 top notch coders I work with daily here that I can trust implicitly do get a project done, on time, on budget and coded the &quot;right way&quot;.  One is male, the other is female.  There are also 2 coders I can't trust to write one line of code, yep, one is male the other is female.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It really doesn't matter to me what gender, color, religion, nationality, etc. a coder is, if they can code well I'm more than happy to have them on the project.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-15T18:03:46.170" CommunityOwnedDate="2010-09-16T16:16:52.033" />
  <row Id="4015" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T18:08:50.733" Score="3" ViewCount="" Body="&lt;p&gt;How the computer &lt;em&gt;really&lt;/em&gt; works, language fundamentals, algorithms/data structures, algorithm analysis, and some measure of complexity theory.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-15T18:08:50.733" CommunityOwnedDate="2010-09-15T18:31:41.813" />
  <row Id="4018" PostTypeId="2" ParentId="2306" CreationDate="2010-09-15T18:12:40.063" Score="1" ViewCount="" Body="&lt;p&gt;I know of many companies that receive large XML files hundreds of megabytes to several gigabytes in size, that were generated from a database and they need to perform various tasks with these files. I do not see that changing and in these cases XML serves them well. Often the database was a native XML database like Mark Logic or Exist-DB. The use of very large XML is common in the publishing industry where XML namespaces play an important role in idenifying content sections.  &lt;/p&gt;&#xA;" LastActivityDate="2010-09-15T18:12:40.063" />
  <row Id="4022" PostTypeId="2" ParentId="272" CreationDate="2010-09-15T18:19:32.183" Score="0" ViewCount="" Body="&lt;p&gt;Developer of excellent software.  No one needs to know what it does!&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-09-15T18:19:32.183" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="4023" PostTypeId="2" ParentId="3974" CreationDate="2010-09-15T18:20:03.337" Score="194" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://xkcd.com/385/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://imgs.xkcd.com/comics/how_it_works.png&quot; alt=&quot;How it Works (XKCD)&quot; title=&quot;It's pi plus C, of course.&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1984" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2010-09-15T19:08:29.990" LastActivityDate="2010-09-15T19:08:29.990" CommunityOwnedDate="2010-09-16T16:16:52.033" CommentCount="12" />
  <row Id="4024" PostTypeId="2" ParentId="2306" CreationDate="2010-09-15T18:21:12.133" Score="3" ViewCount="" Body="&lt;p&gt;I've always disliked XML.  The only thing I use it for is exchanging data, and only then when a CSV wont do.  When I do that, the files can get very big. Luckily, I only have to write them, not read them.  Any of the other reasons to use it - such as for storing application configuration and settings - were removed once I discoved SQLite.  &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-15T18:21:12.133" />
  <row Id="4025" PostTypeId="2" ParentId="3997" CreationDate="2010-09-15T18:23:59.970" Score="2" ViewCount="" Body="&lt;p&gt;I am sure that to the higher-ups, it's a worthwhile exercise.  There are tax write-offs and other business incentives provided by the government, no health benefits or workman's compensation insurance as there would be for full-time employees, and just a lot less responsibility overall for the employer.  Offshore arrangements can be quickly made or terminated as the business contracts that they are, without lawsuits for &quot;age-ism&quot; or discrimination, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am also sure that to the developers and mid-to-low-level managers that work in those companies alongside or in direction of those off-shore resources, it's only an exercise in frustration.  They never get it right on the first try, they never understand the business need or the context of any request, and they never just do what they're told.  It is just about guaranteed that an on-shore resource will have to be involved to re-mediate their mistakes or spend too much time relaying issues.  It is frustrating and maddening at times, and it's something I would never do to my employees (if I were an employer.)&lt;/p&gt;&#xA;" OwnerUserId="189" LastEditorUserId="189" LastEditorDisplayName="" LastEditDate="2010-09-15T18:44:44.130" LastActivityDate="2010-09-15T18:44:44.130" />
  <row Id="4026" PostTypeId="2" ParentId="3956" CreationDate="2010-09-15T18:24:51.467" Score="0" ViewCount="" Body="&lt;p&gt;The only thing I write to the registry is the location of the app, so that installers and updaters can find it easily.  Everything else is stored in files in /AppData/Company/App&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-15T18:24:51.467" />
  <row Id="4027" PostTypeId="2" ParentId="272" CreationDate="2010-09-15T18:25:58.897" Score="0" ViewCount="" Body="&lt;p&gt;To the technically oriented people I usually say I'm a coder. For others or in semi-official situations I say I'm a Software Designer.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-15T18:25:58.897" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="4028" PostTypeId="1" CreationDate="2010-09-15T18:28:12.520" Score="13" ViewCount="362" Body="&lt;p&gt;As programmers, we often take incredible pride in our skills and hold very strong opinions about what is 'good' code and 'bad' code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At any given point in our careers, we've probably had some legacy system dropped in our laps, and thought 'My god, this code sucks!' because it didn't fit into our notion of what good code should be, despite the fact that it may have well been perfectly functional, maintainable code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you prepare yourself mentally when trying to get your head around another programmer's work? &lt;/p&gt;&#xA;" OwnerUserId="1972" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:07:13.683" LastActivityDate="2010-09-29T23:07:13.683" Title="How do you overcome your own coding biases when handed legacy code?" Tags="&lt;experience&gt;&lt;development-process&gt;&lt;code-quality&gt;&lt;coding-standards&gt;" AnswerCount="12" CommentCount="1" FavoriteCount="1" />
  <row Id="4029" PostTypeId="2" ParentId="539" CreationDate="2010-09-15T18:28:17.903" Score="1" ViewCount="" Body="&lt;p&gt;Delphi Dev's should get CNPack to do the nesting highlights + outlines which are awesome and I can't live without.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No one else in my office seems to be able to stand black on white, but my eyes were burning out of their sockets a few months ago and since I've switched I've felt a lot better.  (also cranked up the font size to 14)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/ngkzr.jpg&quot; alt=&quot;IDE Color Scheme&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-09-15T18:28:17.903" CommunityOwnedDate="2010-09-16T13:10:40.707" CommentCount="1" />
  <row Id="4030" PostTypeId="2" ParentId="3886" CreationDate="2010-09-15T18:31:23.503" Score="1" ViewCount="" Body="&lt;p&gt;I don't like being in the dark in general and I don't like it when I'm programming. I sit by the window so maybe half of the year I have enough natural light most of the day. When not, I use every available light to make it as bright as possible.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-15T18:31:23.503" />
  <row Id="4032" PostTypeId="2" ParentId="4000" CreationDate="2010-09-15T18:33:38.053" Score="1" ViewCount="" Body="&lt;p&gt;I haven't had the pleasure of working somewhere that would provide or purchase useful tools, software, or on-topic education... so maybe I'm just used to it, but I've come to see the reason why.  The requests would never end, and then the arguments would start.  Basically, if so-and-so can have X, why can't I have Y?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since I also do development other than just at my day job, I don't mind picking up some expenses.  I purchased Directory Opus (An absolute necessity for me,) and a TechNet subscription..  ReSharper is next on my list, since my trial just expired and I found it very helpful.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't want the employer to start expecting a return value for every expenditure either, and that alone is worth the money I'm spending.&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-09-15T18:33:38.053" />
  <row Id="4033" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T18:36:49.520" Score="1" ViewCount="" Body="&lt;p&gt;How to write a FizzBuzz program.&lt;/p&gt;&#xA;" OwnerUserId="1993" LastActivityDate="2010-09-15T18:36:49.520" CommunityOwnedDate="2010-09-15T18:36:49.520" />
  <row Id="4034" PostTypeId="2" ParentId="4028" CreationDate="2010-09-15T18:37:24.353" Score="3" ViewCount="" Body="&lt;p&gt;If I have the time &lt;strong&gt;I attack it&lt;/strong&gt; and kill the poorly written code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;It's war.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-09-15T18:37:24.353" CommentCount="1" />
  <row Id="4035" PostTypeId="2" ParentId="4028" CreationDate="2010-09-15T18:37:30.703" Score="6" ViewCount="" Body="&lt;p&gt;Laugh at it, try hard not to judge it too much, and just get through it.  It's not good to be a real code-nazi... There is definitely such a thing as 'good enough' or even 'good enough at the time.'  There are many times where something is developed or bandaged to fix a crisis, then never revisited.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's really bad, see if you can make a case for re-writing it.. if it's not important, just get in and get out.&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-09-15T18:37:30.703" />
  <row Id="4036" PostTypeId="2" ParentId="2130" CreationDate="2010-09-15T18:37:32.780" Score="7" ViewCount="" Body="&lt;p&gt;I've found my immediate supervisor to be a better predictor of my situation than the size of a company. Large companies have bureaucracy, but good managers insulate you from that. I've had managers who've mapped out, scheduled, and approved payment of all my training. Support was spread out among trainers, admins and occasionally developers. I attended very few meetings outside my department. At a small company, you're on your own and get involved in everything. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At one small software company the owner (no technical background) was very receptive and encouraged your input, but you had to back it up. There are others where once they get a thought in their head; it's stuck and they make all the decisions. If they were in a larger company, their control could be lessened due to some committee.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Larger companies can benefit in gaining experience. You may use different technologies and deal with larger datasets. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I prefer a small company. You're a bigger part of what drives the company. It can be easier to be 'surrounded' by good people. I'd rather work with one other person who was really good than add an additional 12 fools.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-15T18:37:32.780" CommentCount="1" />
  <row Id="4037" PostTypeId="2" ParentId="3886" CreationDate="2010-09-15T18:37:47.990" Score="4" ViewCount="" Body="&lt;p&gt;If it were up to me, this office would cut the lights and my speakers would be playing a shoutcast stream all day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the brightness of the lights and the humming noise off the lights that really get to me&lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-09-15T18:37:47.990" />
  <row Id="4038" PostTypeId="2" ParentId="4000" CreationDate="2010-09-15T18:37:51.623" Score="5" ViewCount="" Body="&lt;p&gt;I consider myself responsible for my own education.  It's an investment that &lt;em&gt;I&lt;/em&gt; reap the rewards from, so it stands to reason that I should have to make it myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I definitely appreciate when a company pays for education and training, but I don't expect it.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-15T18:37:51.623" CommentCount="1" />
  <row Id="4039" PostTypeId="2" ParentId="3897" CreationDate="2010-09-15T18:38:43.260" Score="3" ViewCount="" Body="&lt;p&gt;Perhaps because there are not organizations that demand organizations to stop buying your books because of their sexist use of female pronouns?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some universities have had groups make such demands over the use of male pronouns.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-15T18:38:43.260" CommentCount="2" />
  <row Id="4040" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T18:39:16.270" Score="12" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/Unicode.html&quot; rel=&quot;nofollow&quot;&gt;The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-15T18:39:16.270" CommunityOwnedDate="2010-09-15T18:39:16.270" />
  <row Id="4041" PostTypeId="2" ParentId="3974" CreationDate="2010-09-15T18:39:28.297" Score="55" ViewCount="" Body="&lt;p&gt;I would like more experience with female programmers, where can I find them?&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-09-15T18:39:28.297" CommunityOwnedDate="2010-09-16T16:16:52.033" CommentCount="8" />
  <row Id="4042" PostTypeId="2" ParentId="3897" CreationDate="2010-09-15T18:42:31.547" Score="1" ViewCount="" Body="&lt;p&gt;The stereotypical programmer is male. The rational behind the book is probably to push against the stereotype to the politically correct, non-sexist prototype (50:50).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This could be by choice (political correctness is all the rage at the moment), or by policy.&lt;/p&gt;&#xA;" OwnerUserId="1355" LastActivityDate="2010-09-15T18:42:31.547" />
  <row Id="4043" PostTypeId="2" ParentId="2306" CreationDate="2010-09-15T18:42:55.557" Score="1" ViewCount="" Body="&lt;p&gt;I think XML is a bit too talkative, but it is a very handy format if you need to exchange data across platforms, especially when that includes user-supplied strings. It is cross-platform per definition, does Unicode out of the box, and comes with a lot of parsing support on just about every platform.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This healed all the hurts I got from endianess woes and the painful encoding troubles we got ourselves into in a company I used to work for when we tried to do this ourselves across Mac (PowerPC), Windows (x86) and half a dozen Solaris, BSD, and Linux versions (several different hardware platforms). &lt;/p&gt;&#xA;" OwnerUserId="1512" LastActivityDate="2010-09-15T18:42:55.557" />
  <row Id="4044" PostTypeId="2" ParentId="3897" CreationDate="2010-09-15T18:43:54.867" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The standard in the English language is for male pronouns to refer to mankind in general&lt;/strong&gt;, unless the context specifies otherwise.  There is a politically-correct movement out there to change lots of the English language with the idea being that social change can be brought about by linguistic changes.  So it gives those who use it that warm fuzzy liberal feeling that they have actually affected change.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-09-15T18:43:54.867" CommentCount="2" />
  <row Id="4045" PostTypeId="2" ParentId="4028" CreationDate="2010-09-15T18:45:43.723" Score="3" ViewCount="" Body="&lt;p&gt;Often I find it useful to get a feel for what the original devs thought good was.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look for patterns and themes to what they did and a lot of times you find that there were reasons for some of the odd decisions in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes you find that the original dev was actually bad, but you have an idea of what sort of bad they were selling back then.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either way, after doing this you should have a better picture of where you could start a re-write or what a quick-fix would look like without having to refactor everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most importantly, don't immediately assume that just because it is ugly it is bad.  Nothing makes you look more foolish that to spend time modernizing something only to find out it is less capable than the original.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-15T18:45:43.723" />
  <row Id="4046" PostTypeId="2" ParentId="4000" CreationDate="2010-09-15T18:45:52.120" Score="1" ViewCount="" Body="&lt;p&gt;Most companies see training and education as being solely the responsibility of the worker, and they will spend a great deal of time, money, and resources into recruiting a worker who already has training and education.  I have been reading a bit about the state of the job market recently, and experts are saying that there is a &quot;mismatch&quot; crisis where there are a lot of unemployed people, but companies are unable to fill positions because the unemployed don't have the relevant skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether or not an employer ethically &lt;em&gt;should&lt;/em&gt; take partial responsibility for employees' training isn't a debate I want to get into.  However, it seems to me that it would greatly advantage a company to hire smart and dedicated, but uneducated workers in order to provide them with education themselves.  This would go along with an initial lower salary and could work out cheaper in the end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure there are a lot of people out there who could be great programmers, but don't have the resources to get the education they need.  Employers could take advantage of that.&lt;/p&gt;&#xA;" OwnerUserId="1984" LastEditorUserId="1984" LastEditorDisplayName="" LastEditDate="2011-06-03T17:24:34.190" LastActivityDate="2011-06-03T17:24:34.190" />
  <row Id="4047" PostTypeId="2" ParentId="4028" CreationDate="2010-09-15T18:47:05.020" Score="5" ViewCount="" Body="&lt;p&gt;You wait until you've been around long enough to run into your own crappy legacy code. It's a humbling experience and part of the learning process. I long for the time when I knew everything. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think Fosco had a great point to be able to put it into the context of potential time &amp;amp; functionality restrictions. Sometimes you're forced to get something working.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And last, come to the understand that this is why you have a job.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-15T18:47:05.020" CommentCount="1" />
  <row Id="4048" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T18:47:41.100" Score="11" ViewCount="" Body="&lt;p&gt;Data is more important than code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your data is smart, the code can be dumb.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dumb code is easy to understand. So is smart data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Almost every algorithmic grief I've ever had has been due to data being in the wrong place or abused of its true meaning. If your data has meaning &lt;em&gt;put that meaning into the type system&lt;/em&gt;.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-15T18:47:41.100" CommunityOwnedDate="2010-09-15T18:47:41.100" CommentCount="1" />
  <row Id="4049" PostTypeId="2" ParentId="3897" CreationDate="2010-09-15T18:48:32.470" Score="1" ViewCount="" Body="&lt;p&gt;Probably because cs book writers spend a lot of time than others. And, they wish they could spend their times with their wives/fiances. Hence, it is SHE that rumbles around their heads. Again, their all time colleague is a bot, not a female executive/assistant. :)&lt;/p&gt;&#xA;" OwnerUserId="1994" LastActivityDate="2010-09-15T18:48:32.470" CommentCount="6" />
  <row Id="4050" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T18:55:35.093" Score="1" ViewCount="" Body="&lt;p&gt;Code is only beautiful if it does what it's supposed to do.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-15T18:55:35.093" CommunityOwnedDate="2010-09-15T18:55:35.093" />
  <row Id="4052" PostTypeId="2" ParentId="1483" CreationDate="2010-09-15T18:58:24.053" Score="0" ViewCount="" Body="&lt;p&gt;I'm from Finland and all the programs I know have been written in English. I have seen few Finnish comments though, but they are certainly not the accepted practice. In some databases I have seen even some column names in Finnish, but that too is considered wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As it is perfectly possible that some day you have a coworker from another country like Pakistan, I think that coding in Finnish would be just irresponsible. The sole exception are some customer specific terms and especially acronyms since they can be very hard to translate and the translation would probably be hard to understand. Also you wouldn't be able to use the whole Finnish character set in variables etc.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-15T18:58:24.053" CommunityOwnedDate="2010-09-15T18:58:24.053" />
  <row Id="4053" PostTypeId="2" ParentId="4000" CreationDate="2010-09-15T19:00:22.427" Score="11" ViewCount="" Body="&lt;p&gt;I think that a developer's career is ultimately not the company's responsibility. That said, if there are things that the company requires, such as certification (I've seen companies who require you to get certified in X within a year or two of being hired, for example), then the company should foot the bill.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or if there's a conference directly related to the company's line of business, it'd be nice if the company sprung for attendance for one or two of the developers, with the assumption that they'd come back and teach the rest what they've learned. I find that there are events I'd gladly go to (and even spend vacation time on), but just can't afford the entry fee.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond that, it's up to the developer to buy books, attend classes, practice programming, seek out local groups or events that'd advance their career, etc.&lt;/p&gt;&#xA;" OwnerUserId="226" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2011-06-03T17:50:17.650" LastActivityDate="2011-06-03T17:50:17.650" />
  <row Id="4055" PostTypeId="2" ParentId="4000" CreationDate="2010-09-15T19:03:28.287" Score="3" ViewCount="" Body="&lt;p&gt;Your job belongs to your employer, your career belongs to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your employer is happy to subsidise your education, great, but I wouldn't expect them to other than for short training courses that might be necessary for their immediate requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tools are really a separate issue.  If there is a compelling business case for purchasing a particular tool then it probably makes sense to do so, assuming the money is available.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-15T19:03:28.287" />
  <row Id="4056" PostTypeId="2" ParentId="3918" CreationDate="2010-09-15T19:18:04.883" Score="-1" ViewCount="" Body="&lt;h2&gt;Use a style checking tool&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Start using &lt;strong&gt;StyleCop&lt;/strong&gt; or similar and enforce code style rules and also make it an obligation for all developers to use it. All code will look the same without exception. And get together with &lt;em&gt;wiseheads&lt;/em&gt; to discuss most appropriate rules for your organisation. Even though default rules are very similar to .net framework code itself already.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the easiest way of doing it. I found myself correcting someone else's code at one of my previous employers because this other guy was writing code with excessive amounts of empty lines and no indentation rules whatsoever. Code was actually unreadable by an average developer. If StyleCop would exist back then it would make many of us really happy.&lt;/p&gt;&#xA;" OwnerUserId="1894" LastEditorUserId="1894" LastEditorDisplayName="" LastEditDate="2010-09-30T19:44:26.337" LastActivityDate="2010-09-30T19:44:26.337" CommentCount="3" />
  <row Id="4057" PostTypeId="2" ParentId="358" CreationDate="2010-09-15T19:19:31.027" Score="4" ViewCount="" Body="&lt;p&gt;RPG the code had to be fixed length per row.  The rows are split into columns that each havea different function.  It's ugly to look at, and almost always is legacy code, for a IBM green screen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/IBM_RPG&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/IBM_RPG&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-09-15T19:19:31.027" CommunityOwnedDate="2010-09-30T22:46:32.880" CommentCount="1" />
  <row Id="4058" PostTypeId="2" ParentId="3897" CreationDate="2010-09-15T19:21:25.577" Score="1" ViewCount="" Body="&lt;p&gt;I've not personally seen this computer books.  But where I have seen it (in other books), I usually attribute it to political correctness.  And/or poor writing skills.  In almost every case where a writer wants to use a &quot;him&quot; or &quot;her&quot;, a gender neutral &quot;they&quot; can be substituted with minimal alteration.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-15T19:21:25.577" CommentCount="2" />
  <row Id="4059" PostTypeId="2" ParentId="4000" CreationDate="2010-09-15T19:26:57.373" Score="2" ViewCount="" Body="&lt;p&gt;If they have the money to pay for training, certification, conferences, etc., they could just increase your salary and you'd spend it as you see fit. All the recommendations to take control of you career should be heeded. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They may want to pay for a class on the latest version of Visual Studio (easy to justify to the CFO because you 'have' to upgrade), but you'd rather figure it out on your own and take a class for Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the company can possibly declare this as an expense and avoid taxes. This way, you get more for your money. Ideally, tell them to keep their money, give you 5 days off uninterupted with pay and you'll come back knowing more than you could learn in any classroom. And a heck of a lot of software for your new open source project ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;  I also think that companies that require things and not pay for them are asking employees to start looking for a better job now that they have the qualifications.&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2011-06-03T17:35:30.037" LastActivityDate="2011-06-03T17:35:30.037" />
  <row Id="4060" PostTypeId="2" ParentId="3974" CreationDate="2010-09-15T19:27:59.937" Score="12" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What's your experience with female programmers?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Well, it's none. &lt;code&gt;:(&lt;/code&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I have another interesting data point to contribute. I had been &lt;strong&gt;&lt;em&gt;teaching&lt;/em&gt;&lt;/strong&gt; C++ to CS students for a couple of years. The curriculum wasn't classical CS, but rather media-oriented with a fair amount of web stuff, audio, video, and design courses intermingled. Accordingly, it was less attractive for geeks fluently in assembler, and more attractive to the rather visual types. I taught &lt;strong&gt;&lt;em&gt;C++ as the second language&lt;/em&gt;&lt;/strong&gt; to students who had one year of exposure to Java. A written test at the end of the semester contributed 50% to the final grade, the other 50% came from answers given to questions that accompanied the programming tasks handed out for the lab time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a discussion about the topic of this question, I once did some math on my students' results depending on their gender. This was a informal discussion, so the following are quite rough numbers over 4 semesters somewhere closer to the end of my teaching time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually started out with 25-35 students, 15-20% of which were women.&lt;br&gt;&#xA;The surprisingly stable number of ~20% of my students dropped out of the course; among those rarely ever were any women.&lt;br&gt;&#xA;Among the top 30% usually were 30-50% women.&lt;br&gt;&#xA;Among the bottom 30% were usually 10-20% women.&lt;br&gt;&#xA;Of the 25-35% of my students whose results differed &amp;lt;20% between the written test (each students alone with a pen and their knowledge) and their lab answers (the whole web available for help), the percentage of women was slightly higher than those 15-20%. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Conclusions drawn when these results were discussed back then: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;female students were, on average, somewhat better than male students&lt;/li&gt;&#xA;&lt;li&gt;on average, male students covered a broader spectrum of grades than female students, with some of them much better, and some of them much worse&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Keep in mind that these are the results of one course at one university taught by one person over only four semesters, and that the numbers are only roughly calculated. &lt;/p&gt;&#xA;" OwnerUserId="1512" LastActivityDate="2010-09-15T19:27:59.937" CommunityOwnedDate="2010-09-16T16:16:52.033" CommentCount="4" />
  <row Id="4061" PostTypeId="1" AcceptedAnswerId="4093" CreationDate="2010-09-15T19:31:35.333" Score="2" ViewCount="76" Body="&lt;p&gt;How long would it take and what resources would you need to train someone right out of high school and make them a 'technically' employable programmer? Granted they may not be mature enough to pass many inteviews, have the required time-based or domain experience.&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2010-09-15T19:50:50.137" LastActivityDate="2010-09-15T20:21:43.563" Title="A Programmers Version of Pygmalion" Tags="&lt;training&gt;&lt;students&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="4062" PostTypeId="2" ParentId="3975" CreationDate="2010-09-15T19:32:00.230" Score="2" ViewCount="" Body="&lt;p&gt;Does a pencil and paper count?&lt;/p&gt;&#xA;" OwnerUserId="2021" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-15T21:35:03.247" LastActivityDate="2010-09-15T21:35:03.247" CommentCount="1" />
  <row Id="4063" PostTypeId="1" AcceptedAnswerId="4064" CreationDate="2010-09-15T19:32:58.963" Score="3" ViewCount="677" Body="&lt;p&gt;I had an interview question once which went...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interviewer: &quot;Could you tell me how many people will eat curry for their dinner this evening&quot;&#xA;Me: &quot;Er, sorry?&quot;&#xA;Interviewer: &quot;Not the &lt;em&gt;actual&lt;/em&gt; number just an estimate&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I actually started to stumble my way through it, when I stopped and questioned what it had to do with anything about the job.  The interviewer mumbled something and moved on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess the question is, what is the point in the ridiculous questions?  I just don't understand why they started coming up with these things.&lt;/p&gt;&#xA;" OwnerUserId="1951" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-15T19:39:55.140" LastActivityDate="2010-09-16T00:45:29.817" Title="Why did an interviewer ask me a question about people eating curry?" Tags="&lt;interview-questions&gt;" AnswerCount="7" CommentCount="4" FavoriteCount="1" />
  <row Id="4064" PostTypeId="2" ParentId="4063" CreationDate="2010-09-15T19:35:19.163" Score="22" ViewCount="" Body="&lt;p&gt;The question is there to see how you would solve it. It's meant to test your ability to think on your feet as well as gain some insight into your problem solving methodology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, they're looking for you to start talking your way through the problem:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Come up with a list of reasonable givens (e.g. the size of the population, how much curry a person can eat, etc.)&lt;/li&gt;&#xA;&lt;li&gt;Derive a way to figure out the unknowns (e.g. how popular is curry, is the night special)&lt;/li&gt;&#xA;&lt;li&gt;Come up with a reasonable answer based on (1) and (2).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-15T19:35:19.163" CommentCount="2" />
  <row Id="4065" PostTypeId="2" ParentId="1877" CreationDate="2010-09-15T19:35:59.333" Score="4" ViewCount="" Body="&lt;p&gt;There is research into this topic but it will give you a complex answer.  You can increase how much a person can take in from a UI if you use different sensory modalities rather than just one.  For example using sights and sounds you may be able to pump more information into a user than using just sight or just sound.  There are also findings that suggest that if your user has to really process or think about the inputs there are more significant bottlenecks that are more difficult to avoid even if you cross sensory modalities.  Training helps.  Expert users can process more but in the typical cases you will run into limits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But to get down to your question of how fast you can change the display in particular table:  You can look into the Psychology literature on the topic of &quot;Attentional Blink&quot;  and &quot;Psychological Refractory Period (PRP)&quot;  but the general advice that I can give you from that is don't push faster than changes every 500ms for a single watched location.  Typical users can need that much time to process even simple single location changing input.  If you're doing it continuously 500ms is a speedy but perhaps roughly workable rate.  You may be able to push down to 250ms but this will depend on what percentage of your users you're willing to put off.  Also if your users are having to scan multiple locations for possible changes you may have to slow down even from a 500ms change rate.  This doesn't necessarily mean 1000ms if you have two locations.  It's not a linear relationship but the answer for that is going to be more complex and depend a lot more on what your UI looks like exactly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Attentional_blink&quot; rel=&quot;nofollow&quot;&gt;Wikipedia: Attentional Blink&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2016" LastActivityDate="2010-09-15T19:35:59.333" CommentCount="1" />
  <row Id="4066" PostTypeId="2" ParentId="4028" CreationDate="2010-09-15T19:36:09.817" Score="17" ViewCount="" Body="&lt;p&gt;I can't tell you how many times I've said &quot;Oh, this is totally wrong&quot;, rewritten it, and then found out the hard way just why that code was written that way. Usually, it's some non-obvious unwritten/undocumented requirement. At least, that's true in the legacy code I'm currently working on.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-15T19:36:09.817" CommentCount="1" />
  <row Id="4067" PostTypeId="2" ParentId="4063" CreationDate="2010-09-15T19:37:13.310" Score="12" ViewCount="" Body="&lt;p&gt;You can thank Microsoft for that. Bill Gates has a fascination with puzzles, and that led Microsoft to use puzzles as interview questions. Sometime within the past decade, Microsoft realized that an interviewee's ability to solve puzzles has &lt;em&gt;nothing&lt;/em&gt; to do with their ability to be a good programmer, so they stopped. Some people haven't caught up yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people say that it's about how you approach the problem, but I'm not really convinced that it tells you anything important.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastActivityDate="2010-09-15T19:37:13.310" CommentCount="2" />
  <row Id="4068" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T19:39:03.443" Score="0" ViewCount="" Body="&lt;p&gt;Don't forget about the person who is going to use the software you're creating.&lt;/p&gt;&#xA;" OwnerUserId="2030" LastActivityDate="2010-09-15T19:39:03.443" CommunityOwnedDate="2010-09-15T19:39:03.443" />
  <row Id="4069" PostTypeId="2" ParentId="4063" CreationDate="2010-09-15T19:39:13.393" Score="2" ViewCount="" Body="&lt;p&gt;Look like a &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Fermi_problem&quot; rel=&quot;nofollow&quot;&gt;Fermi Question&lt;/a&gt;&lt;/strong&gt; &lt;/p&gt;&#xA;" OwnerUserId="19" LastActivityDate="2010-09-15T19:39:13.393" />
  <row Id="4070" PostTypeId="2" ParentId="4063" CreationDate="2010-09-15T19:41:04.743" Score="6" ViewCount="" Body="&lt;p&gt;This is a typical question to see how well can you give ballpark figures, which in turn shows  your thinking process. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, this particular rehash of the question sucks because it's not easy to know how popular curry is in India, nor how many people actually dine, nor if it's given to children and so on. Other questions on that type are more tractable because the unknowns are more tractable, or map better to general knowledge, like &quot;how many gas stations are in the US?.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, what's important is how many parameters can you find that are relevant, and how do you estimate them and why.&lt;/p&gt;&#xA;" OwnerUserId="2018" LastActivityDate="2010-09-15T19:41:04.743" CommentCount="1" />
  <row Id="4071" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T19:42:10.470" Score="8" ViewCount="" Body="&lt;p&gt;Never blame on the user what could be fixed with a cleaner user experience or better documentation. Often, programmers automatically assume the user is an idiot who can't do anything right, when the problem is a poor overall experience or lack of communication. Programs are meant to be used, and to treat the user with contempt is to miss the point of programming in the first place.&lt;/p&gt;&#xA;" OwnerUserId="8" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-12-30T11:05:46.797" LastActivityDate="2010-12-30T11:05:46.797" CommunityOwnedDate="2010-09-15T19:42:10.470" />
  <row Id="4072" PostTypeId="1" AcceptedAnswerId="4118" CreationDate="2010-09-15T19:43:37.093" Score="4" ViewCount="266" Body="&lt;p&gt;According to &lt;a href=&quot;http://www.computerweekly.com/blogs/inside-outsourcing/2010/09/is-offshoring-making-computer-science-graduates-the-largest-unemployed-group.html?sms_ss=reddit&quot; rel=&quot;nofollow&quot;&gt;this article&lt;/a&gt;, CS graduates may be the group hit hardest by off-shoring:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Here is the full unemployment rate for&#xA;  2009 graduates in different&#xA;  professions.&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;Computer science 17%&lt;/li&gt;&#xA;  &lt;li&gt;Communications 14%&lt;/li&gt;&#xA;  &lt;li&gt;Architecture 13%&lt;/li&gt;&#xA;  &lt;li&gt;Engineering 13%&lt;/li&gt;&#xA;  &lt;li&gt;Creative arts 13%&lt;/li&gt;&#xA;  &lt;li&gt;(...)&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Is increasing unemployment rates a real scenario and is it caused by off-shoring? Personally I enjoy programming so I'd like to continue working as a developer, but it could be difficult to compete with cheap labor countries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compare it to manufacturing; shoes and clothes, cellphones and computers are being manufactured in cheap labor countries, while much of the product design and brand ownership stay where the original market is. The people previously building the products had to move on to other kinds of jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what would be the equivalent for a software developer? Become a software product designer? Architect? Manager for software projects distributed over several countries? Is there an obvious &quot;career move&quot; to be made?&lt;/p&gt;&#xA;" OwnerUserId="170" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T20:37:37.663" LastActivityDate="2010-09-18T20:37:37.663" Title="What is the next step after the programming jobs have been off-shored? (if they are)" Tags="&lt;career&gt;&lt;jobs&gt;&lt;prediction&gt;&lt;computer-science&gt;&lt;off-shore&gt;" AnswerCount="2" CommentCount="4" FavoriteCount="2" />
  <row Id="4073" PostTypeId="2" ParentId="3519" CreationDate="2010-09-15T19:44:17.327" Score="1" ViewCount="" Body="&lt;p&gt;I like to first learn about the language fundamentals like the type system etc to get a feeling how things work as well as to see some basic example on how the code looks like. My preferred way of doing this is reading a book and I mean a real book that I can read while lying in the bed or wherever I want. The basics should be explained in maximum of 100 pages, preferably in much less. If no book is available, I try to find the information from the internet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reading the whole book is obviously a waste of time, because you are not going to understand the more advanced topics without any hands-on experience. At work there's usually already some code to work with so in that case I just start working on the task at hand. I learn little by little by reading what others have done and if I run into a problem, I try to google for the answer or that failing, ask from a coworker. After I have been working on a while, I try to finish the book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I have to start from scratch, I start by hello world, then try input from keyboard and file handling. Depending on the language, I might do some UI exercise. After that I would start programming the &quot;real&quot; program.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-15T19:44:17.327" />
  <row Id="4074" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T19:44:33.003" Score="0" ViewCount="" Body="&lt;p&gt;All data has to live somewhere. You can find it if you look hard enough.&lt;/p&gt;&#xA;" OwnerUserId="2035" LastActivityDate="2010-09-15T19:44:33.003" CommunityOwnedDate="2010-09-15T19:44:33.003" />
  <row Id="4075" PostTypeId="2" ParentId="2051" CreationDate="2010-09-15T19:44:46.403" Score="17" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Do some work for free.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-09-15T19:44:46.403" CommunityOwnedDate="2010-09-15T19:44:46.403" CommentCount="1" />
  <row Id="4076" PostTypeId="2" ParentId="2757" CreationDate="2010-09-15T19:47:45.780" Score="4" ViewCount="" Body="&lt;p&gt;This is the first place where I've worked that provided dual monitors. I will never go back to just one. I will make sure to put it in my employment contract the next time I change jobs!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to put some things always in the same monitor (Outlook is on the left, often buried but always there and Excel generally lives on the right), but others move around depending on what I'm doing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I often have two different versions of SSMS (SQL Server Management Studio) running, one in each monitor which makes it easier for me to compare different things in different databases or lately I am working in two schemas in the same database that has a gazillion tables, so I filter for  each schema in the object browser in a differnt SSMS on a differnt monitor. Or one might be for one project and the other for a different project. It is nice to be able to do a quick fix on one screen without losing your place on the task you will be retuning to. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Long running tasks that just need occasional glances to check progress always go on the right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also often have the requirements doc open on one side the and SSIS package on the other, to make sure I don't miss any required tasks in my ETL process. Or if I'm creating documentation, I have the word doc on one side and the interface I want to take screen shots from on the other. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I have the raw version of a file I'm importing open on one screen so I can compare what the client sent with what is in the database.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I have a help window open it goes on the right and what I'm working on that I needed help with is on the left. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find I tend to do more concentrated work on the left and quick reference glances on the right. I think that has to do with the cubicle set-up where the aisle is to my left as I feel the need to see if someone is coming (get attacked in the office and you won't want to work were you can't see who is coming either, it was almost 30 years ago and I still hate having people approach me when I can't see them, they actually had to rearrange the cubes before I could sit here as they faced the wrong direction). &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-15T19:47:45.780" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="4077" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T19:48:11.257" Score="1" ViewCount="" Body="&lt;p&gt;Fixing code requires more intelligence than writing the same code initially.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, if you write code at the limit of your cleverness then you are, by definition, not smart enough to fix it when it breaks.&lt;/p&gt;&#xA;" OwnerUserId="2033" LastActivityDate="2010-09-15T19:48:11.257" CommunityOwnedDate="2010-09-15T19:48:11.257" />
  <row Id="4078" PostTypeId="2" ParentId="552" CreationDate="2010-09-15T19:48:55.517" Score="4" ViewCount="" Body="&lt;p&gt;Alan Kay.  &quot;The best way to predict the future is to invent it.&quot; - and he earned the right to say that.&lt;/p&gt;&#xA;" OwnerUserId="59" LastActivityDate="2010-09-15T19:48:55.517" CommunityOwnedDate="2010-09-17T19:05:49.223" />
  <row Id="4079" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T19:50:46.803" Score="1" ViewCount="" Body="&lt;p&gt;Write your data structures first -- that means everything from database schemas to swizzling/serialization mechanisms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most projects are about storing and moving data from point A to point B in format C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When all is said and done about 90% of your code will be logic for doing the formatting, but the real killer is just having a format to access and write your data. Once you have an API for data access you can play around with the formatting however you want, but once you start production with a storage API it can really hurt to realize that you screwed it up.&lt;/p&gt;&#xA;" OwnerUserId="2040" LastActivityDate="2010-09-15T19:50:46.803" CommunityOwnedDate="2010-09-15T19:50:46.803" />
  <row Id="4080" PostTypeId="2" ParentId="4063" CreationDate="2010-09-15T19:51:29.840" Score="3" ViewCount="" Body="&lt;p&gt;I can't remember where I read this, but I read that before Microsoft had all the tracking tools they have today that send back reports about how users use their software, when it was time to make decisions about which function to implement and how to implement it, the best they could do was to have a debate about it and the decision was made according to who was the most convincing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;By asking these questions that have no definite solution they could see how you solve problems and also see if you can figure out an answer and defend it convincingly, which was the winning virtue in feature implementation discussions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm guessing some companies just followed suit. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-15T19:51:29.840" CommentCount="3" />
  <row Id="4081" PostTypeId="2" ParentId="2757" CreationDate="2010-09-15T19:51:48.680" Score="0" ViewCount="" Body="&lt;p&gt;I have a laptop at work so I'm using the display of the laptop and 24&quot; external display, the external display being on the right. At the laptop's display I keep Outlook and Skype to keep me connected all the time and to avoid switching from window to another every time someone skypes me.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-15T19:51:48.680" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="4082" PostTypeId="2" ParentId="2757" CreationDate="2010-09-15T19:51:58.357" Score="1" ViewCount="" Body="&lt;p&gt;At work:&#xA;2 19&quot; horizontal monitors. I have in the past added a virtual desktop to one of them through VirtuaWin.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One typically has the IDE, the other is everything else -- another IDE for referencing code in other solutions, Outlook, browsers, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At home:&#xA;currently a single 23&quot; monitor running at 1920x1200. I don't do a lot of coding from home at the moment, but when I do I find I can just minimize windows to gain some real estate, so the push to clean my desk to make room for a second monitor has been relatively light. :)&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-15T19:51:58.357" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="4083" PostTypeId="2" ParentId="552" CreationDate="2010-09-15T19:52:59.893" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Richard_Stallman&quot; rel=&quot;nofollow&quot;&gt;Richard Stallman&lt;/a&gt;. Personally I don't agree with everything he says, and so on, but he has had a big impact on open source development and the GPL is a cool hack on the copyright law. So an &quot;idol&quot; more than a &quot;role model&quot; for me.&lt;/p&gt;&#xA;" OwnerUserId="170" LastActivityDate="2010-09-15T19:52:59.893" CommunityOwnedDate="2010-09-17T19:05:49.223" CommentCount="3" />
  <row Id="4084" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T19:53:01.447" Score="1" ViewCount="" Body="&lt;p&gt;In Steve Yegge's 5 essential phone screen questions, he's trying to make sure interviewees have a basic knowledge of:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Coding. The candidate has to write some simple code, with correct syntax, in C, C++, or Java. &lt;/li&gt;&#xA;&lt;li&gt;OO design. The candidate has to define basic OO concepts, and come up with classes to model a simple problem.&lt;/li&gt;&#xA;&lt;li&gt;Scripting and regexes. The candidate has to describe how to find the phone numbers in 50,000 HTML pages. &lt;/li&gt;&#xA;&lt;li&gt;Data structures. The candidate has to demonstrate basic knowledge of the most common data structures.&lt;/li&gt;&#xA;&lt;li&gt;Bits and bytes. The candidate has to answer simple questions about bits, bytes, and binary numbers.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://sites.google.com/site/steveyegge2/five-essential-phone-screen-questions&quot; rel=&quot;nofollow&quot;&gt;http://sites.google.com/site/steveyegge2/five-essential-phone-screen-questions&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the time he wrote this, he was at Amazon, but works (and probably conducts interviews) at Google now.  This just gets you past the screen. Here's how he described what he was looking for:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;what I'm looking for here is a total vacuum in one of these areas. It's OK if they struggle a little and then figure it out. It's OK if they need some minor hints or prompting. I don't mind if they're rusty or slow. What you're looking for is candidates who are utterly clueless, or horribly confused, about the area in question.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1534" LastActivityDate="2010-09-15T19:53:01.447" CommunityOwnedDate="2010-09-15T19:53:01.447" />
  <row Id="4086" PostTypeId="2" ParentId="3726" CreationDate="2010-09-15T19:56:07.097" Score="3" ViewCount="" Body="&lt;p&gt;I don't know much about how accurate it is, but I'd love to see Scala higher than the current position (50) that it is at.   Considering that Twitter is moving everything to Scala, and I believe Foursquare and several other social media sites use it, I see it as being fairly popular.  The problem is that I know it's popular in my circle, but I don't really know how popular is is outside that range, so I can't really say much besides my opinion.&lt;/p&gt;&#xA;" OwnerUserId="990" LastEditorUserId="990" LastEditorDisplayName="" LastEditDate="2010-09-15T22:54:22.110" LastActivityDate="2010-09-15T22:54:22.110" />
  <row Id="4087" PostTypeId="2" ParentId="3918" CreationDate="2010-09-15T19:56:51.560" Score="0" ViewCount="" Body="&lt;p&gt;I feel you are thinking it is offensive to do so... ? For example, I myself would immediately fix this code &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int myFunction( ) {&#xA;&#xA;    int i ;&#xA;  return  0;&#xA;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;to become&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int myFunction() {&#xA;    int i;&#xA;    return 0;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;so... should I be punished because of my action? In real life, I actually have tons of SVN logs read 'Formatting'. ;-)&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-09-15T19:56:51.560" />
  <row Id="4088" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T19:59:22.587" Score="2" ViewCount="" Body="&lt;p&gt;Cryptography. You don't have to be able to write your own encryption algorithm, but you have to have a basic understanding of how encryption, message authentication and the PKI works. I have struggled for too long with blind trial and error in this area. Recently I have picked up the book &quot;Cryptography Engineering&quot; (by Ferguson, Schneier, Kohno) and it has been a real eye-opener.&lt;/p&gt;&#xA;" OwnerUserId="2037" LastActivityDate="2010-09-15T19:59:22.587" CommunityOwnedDate="2010-09-15T19:59:22.587" CommentCount="1" />
  <row Id="4089" PostTypeId="2" ParentId="1879" CreationDate="2010-09-15T20:01:35.123" Score="1" ViewCount="" Body="&lt;p&gt;I keep hearing about the changes that will come in 1.7, from various sources (mostly through Twitter), but I doubt it's coming any time soon.  Scala's what I'm moving towards currently.&lt;/p&gt;&#xA;" OwnerUserId="990" LastActivityDate="2010-09-15T20:01:35.123" />
  <row Id="4090" PostTypeId="2" ParentId="2264" CreationDate="2010-09-15T20:06:16.960" Score="2" ViewCount="" Body="&lt;p&gt;In my opinion (and that's worth all of $0.02) if you can code in C# you can code in JAVA.  Software is software to an extent, I don't want to bring in some GURU that claims to be a JAVA master but can't learn C# down the road.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What if we need to use a new framework or tool-kit down the road?  I want someone that can pick up things on the fly if need be.  &lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-09-15T20:06:16.960" />
  <row Id="4091" PostTypeId="2" ParentId="3974" CreationDate="2010-09-15T20:08:05.743" Score="5" ViewCount="" Body="&lt;p&gt;Speaking as a female programmer who has worked with many programmers, both male and female: I've found, in general, that the average female programmer is stronger than the average male programmer. Not by just a little, but a &lt;em&gt;lot&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you're a woman, it's easy to &lt;em&gt;not&lt;/em&gt; take the CS classes. It's easy to be intimidated out of the tech field. It's easy to move to &quot;traditional women's work.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only women (again, in &lt;em&gt;my&lt;/em&gt; experience) who stick around are those who really enjoy it and/or are really good at it. For the others, it's just too easy to go off and do other things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, there are duds of both genders. That's just the way things go. But given a choice, and all other things being equal, I'll hire a woman—she's usually worked much harder just to get to the point where she's equal.&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-09-15T20:08:05.743" CommunityOwnedDate="2010-09-16T16:16:52.033" CommentCount="8" />
  <row Id="4092" PostTypeId="2" ParentId="2252" CreationDate="2010-09-15T20:08:53.700" Score="2" ViewCount="" Body="&lt;p&gt;People can see what's on your resume - but you need to fit the company in more than one way.  If you're a great coder but have zero social skills and nothing else going on, I dunno if you're the best fit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember you're working on projects with other people and team interaction is important.  So just take a deep breath and relax.&lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-09-15T20:08:53.700" />
  <row Id="4093" PostTypeId="2" ParentId="4061" CreationDate="2010-09-15T20:12:21.643" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;6 months&lt;/strong&gt; of hard training.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It really depends on a lot of factors, including your definition of technically employable.  Assuming a reasonably well motivated highschool student with a respectable aptitude for programming (eg, the sort of person who would otherwise want to go to college for Comp Sci), I'd say 6 months as a gut estimate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having never trained someone to program, the best reference I have is my own school's curriculum.  Skipping all the nonessentials (LA, sciences, calc, etc), and also the non-regular use programming classes (intro to AI, algorithm design, OS classes, etc), I'd say that you need at least the following to be functional:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The intro CS sequence (fundamentals of programming): CS1, CS2, CS3&lt;/li&gt;&#xA;&lt;li&gt;The Software Engineering course (team work, oop, version control)&lt;/li&gt;&#xA;&lt;li&gt;Software Design (subsystem architecture)&lt;/li&gt;&#xA;&lt;li&gt;Personal SE (learning new languages/frameworks)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That's 6 classes- assuming an abnormally high work level, you could cram them into 3 months.  Throw in another 3 months of on-project training, and I think you could pump out a programmer by the end.&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="6" LastEditorDisplayName="" LastEditDate="2010-09-15T20:21:43.563" LastActivityDate="2010-09-15T20:21:43.563" CommentCount="1" />
  <row Id="4094" PostTypeId="2" ParentId="3974" CreationDate="2010-09-15T20:14:29.973" Score="0" ViewCount="" Body="&lt;p&gt;I worked with several female programmers, and they were all quite competent and thorough. They were just like the good male programmers, perhaps even above the average due to their accuracy and commitment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However... I meet some &lt;em&gt;very good&lt;/em&gt; programmers, and few &lt;em&gt;extraordinarily goods&lt;/em&gt; programmers, and they were all males and quite geek and/or nerd. I suspect that being more than good requieres some degree of geekiness or nerdness and in Italy I never met a geek or nerd woman...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then, I never met women that program at home for pleasure. All the great programmers enjoyed to program at home on personal projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know why, I suspect that there's some cultural legacy. But I would like to meet a geek woman and falling in love with her.&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-15T20:37:32.620" LastActivityDate="2010-09-15T20:37:32.620" CommunityOwnedDate="2010-09-16T16:16:52.033" CommentCount="5" />
  <row Id="4095" PostTypeId="2" ParentId="2214" CreationDate="2010-09-15T20:14:41.187" Score="5" ViewCount="" Body="&lt;p&gt;At the end of a particularly annoying project a few of us were asked to go out behind the building where we found the rest of the team had taken the servers for the decommissioned predecessor application out in the parking lot, and stuffed them with newspaper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The two of us that had the lion-share of the support were given a lighter, a pick-axe and a sledgehammer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that we went out for beers...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually I just go out for dinner or beers without all the toxic smoke and bashing of hardware these days.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-15T20:14:41.187" CommunityOwnedDate="2011-03-31T09:31:23.023" />
  <row Id="4096" PostTypeId="2" ParentId="4063" CreationDate="2010-09-15T20:17:57.400" Score="7" ViewCount="" Body="&lt;p&gt;They're trying to see if you are management material.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-15T20:17:57.400" CommentCount="1" />
  <row Id="4097" PostTypeId="2" ParentId="2700" CreationDate="2010-09-15T20:21:31.887" Score="2" ViewCount="" Body="&lt;p&gt;There was a base class for creating confirmation dialogs for different operations on tree nodes. You would need only to provide a message to be displayed in the dialog and the action to run if it was confirmed. Nice system but it allowed no special handling in case there was no tree node selected. As a result, the text in one of the dialogs said: &quot;Please select no&quot;. If you selected yes, it threw an exception. Very nice user experience, indeed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I fixed this by disabling the invalid operations.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-15T20:21:31.887" CommentCount="1" />
  <row Id="4098" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T20:25:05.427" Score="0" ViewCount="" Body="&lt;p&gt;Can't comment yet, but on the topic of &quot;Testing and debugging skills&quot;, &lt;a href=&quot;http://nedbatchelder.com/text/fix-err-hand.html&quot; rel=&quot;nofollow&quot;&gt;this little gem&lt;/a&gt; by Ned Batchelder is a must-read. (Then gain, much of what he has to say on debugging and assertions is worthy of consideration.)&lt;/p&gt;&#xA;" OwnerUserId="2048" LastActivityDate="2010-09-15T20:25:05.427" CommunityOwnedDate="2010-09-15T20:25:05.427" />
  <row Id="4099" PostTypeId="2" ParentId="3897" CreationDate="2010-09-15T20:26:01.627" Score="1" ViewCount="" Body="&lt;p&gt;Because the English language lacks a gender-neutral pronoun.&lt;/p&gt;&#xA;" OwnerUserId="2052" LastActivityDate="2010-09-15T20:26:01.627" CommentCount="1" />
  <row Id="4100" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T20:27:13.157" Score="30" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Don't be clever; be clear.&lt;/li&gt;&#xA;&lt;li&gt;Use before reuse.&lt;/li&gt;&#xA;&lt;li&gt;Names matter.&lt;/li&gt;&#xA;&lt;li&gt;A function does 1 thing and does it well.&lt;/li&gt;&#xA;&lt;li&gt;Small is better than big.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2055" LastActivityDate="2010-09-15T20:27:13.157" CommunityOwnedDate="2010-09-15T20:27:13.157" CommentCount="2" />
  <row Id="4101" PostTypeId="2" ParentId="3918" CreationDate="2010-09-15T20:31:23.877" Score="1" ViewCount="" Body="&lt;p&gt;If he's changing it so that it meets your team's coding standards, you should follow the standards next time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If he changes it such that it no longer follows your team's coding standards, inform him what he's doing wrong and have him change it back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...Your team does have a set of code formatting standards that are used by everyone, right?&lt;/p&gt;&#xA;" OwnerUserId="1767" LastActivityDate="2010-09-15T20:31:23.877" />
  <row Id="4102" PostTypeId="2" ParentId="2306" CreationDate="2010-09-15T20:32:00.490" Score="1" ViewCount="" Body="&lt;p&gt;An XML file with 449,000 lines is fine, &lt;em&gt;so long as it is being used in the right way&lt;/em&gt;. Yes, using it in place of a database would be really dumb. However, using it as a way of exporting data from that database so that other applications can consume it would be a sensible use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;XML is primarily useful for its ability to facilitate interoperability. It has become a defacto standard, so that many applications can both read XML and output it. Most modern programming languages and frameworks can write and read XML and therefore if you want to interchange data between two systems then XML is a great way to do so. It also has the advantage of being human-readable and verifiable against a schema.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-15T20:32:00.490" />
  <row Id="4103" PostTypeId="2" ParentId="3726" CreationDate="2010-09-15T20:32:00.490" Score="0" ViewCount="" Body="&lt;p&gt;I don't agree with Java being #1.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;li&gt;It's slow (still, despite all the propaganda that says otherwise.)&#xA;&lt;li&gt;It uses a virtual machine, rather than running natively on the intended target.&#xA;&lt;li&gt;I can't come up with a single example Java application that I like.&#xA;&lt;li&gt;The silly naming conventions (beans, jars, wars, ears)&#xA;&lt;li&gt;I'm one of those people who thinks that 'write once run anywhere' is a CON instead of a PRO, since you wind up with a crappy product that runs crappily everywhere.&#xA;&lt;li&gt;I haven't even started with issues about the actual language and implementation problems.&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-09-15T20:32:00.490" CommentCount="20" />
  <row Id="4104" PostTypeId="1" AcceptedAnswerId="4583" CreationDate="2010-09-15T20:32:28.943" Score="1" ViewCount="492" Body="&lt;p&gt;How much quicker is it to build a site in Rails instead of PHP (using any PHP Framework)?&#xA;I've been told that rails is much faster and i'm curious as to how much faster it is when compared to say PHP?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thankyou in advance ;-)&lt;/p&gt;&#xA;" OwnerUserId="2053" LastActivityDate="2010-09-20T23:18:19.680" Title="How much quicker is it to build a website in Rails instead of PHP (using any PHP Framework)?" Tags="&lt;php&gt;&lt;ruby-on-rails&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="1" />
  <row Id="4105" PostTypeId="2" ParentId="2264" CreationDate="2010-09-15T20:35:54.483" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Absolutely not&lt;/strong&gt;. We hate you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just kidding. C# and Java are very much alike and there's absolutely no reason why you wouldn't hire a C# programmer. Well, unless you are specifically looking for an experience Java programmer. But in general the transition is fairly easy and I think it is even easier from C# to Java since you basically just need to forget some of the more modern features of C# (introduced by C#1&amp;amp;2). Of course it takes some time to get familiar with the API, but that shouldn't be an issue.&lt;br&gt;&#xA;I myself started as Java programmer and now I'm doing both. I find switching from language to another to be very easy.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-15T20:35:54.483" />
  <row Id="4106" PostTypeId="2" ParentId="3918" CreationDate="2010-09-15T20:36:34.650" Score="4" ViewCount="" Body="&lt;p&gt;IMO you and your team should be using a coding standard anyway. If this is the case, then the questions becomes 'did your original code conform to the standard?' If 'yes' then your colleague should not be touching your code unless to change it functionally. If 'no' then I'm afraid your colleague has every right to tidy up your code. As a project lead I find myself doing it all the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're not using a coding standard then the whole argument of what constitutes 'good code' becomes way too subjective. Hence why you should be using a coding standard :)&lt;/p&gt;&#xA;" LastActivityDate="2010-09-15T20:36:34.650" />
  <row Id="4107" PostTypeId="1" AcceptedAnswerId="4120" CreationDate="2010-09-15T20:37:39.080" Score="4" ViewCount="165" Body="&lt;p&gt;I was browsing some old code that I wrote (first year in the university) and noticed that I used to write comment titles preceeding various parts of the code. Stuff like (this is from a Monopoly game): &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/*Board initialization*/&#xA;...code...&#xA;&#xA;/*Player initialization*/&#xA;...code...&#xA;&#xA;/*Game logic starts here*/&#xA;/*Displaying current situation*/&#xA;...code...&#xA;&#xA;/*Executing move*/&#xA;...code...&#xA;&#xA;/*Handle special event*/&#xA;...code...&#xA;&#xA;/*Commit changes, switch to next player*/&#xA;...code...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This might be redundant, and arguably unnecessary if the code is really super clear, but as I scanned through the file it surprised me how strongly I felt like I know what's going on even though I hardly looked at the actual code. I can definitely see this as being fitting in certain circumstances, so I wonder- do you do this? Do you think it's a good idea? Or is it too much? &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:29:35.977" LastActivityDate="2010-09-29T23:29:35.977" Title="Do you write titles in code comments?" Tags="&lt;best-practices&gt;&lt;style-guide&gt;" AnswerCount="4" />
  <row Id="4108" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T20:38:55.863" Score="0" ViewCount="" Body="&lt;p&gt;Every programmer should know that the only thing s/he knows is that s/he knows nothing. There is a lot to be learnt.&lt;/p&gt;&#xA;" OwnerUserId="2061" LastActivityDate="2010-09-15T20:38:55.863" CommunityOwnedDate="2010-09-15T20:38:55.863" />
  <row Id="4109" PostTypeId="2" ParentId="4107" CreationDate="2010-09-15T20:40:15.707" Score="2" ViewCount="" Body="&lt;p&gt;I think that is useful in situations where you have gigantic source files with dozens of functions and you can loosely organize them into chunks like that.  I'm not saying I like that better than smaller, more focused source files however...&lt;/p&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-15T20:40:15.707" />
  <row Id="4110" PostTypeId="2" ParentId="4107" CreationDate="2010-09-15T20:42:25.830" Score="1" ViewCount="" Body="&lt;p&gt;I do that all the time.  Both to mark what the code is doing, and probably more importantly, as you said, to make it easy to scan &amp;amp; find a chunk of code.  Sometimes, also, I'll write down an involved process in comments, and 'fill in' the code under the comments as I go.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-15T20:42:25.830" />
  <row Id="4111" PostTypeId="2" ParentId="4072" CreationDate="2010-09-15T20:44:07.280" Score="1" ViewCount="" Body="&lt;p&gt;Well, someone has to manage said offshore developers, and fix whatever mess they make.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-15T20:44:07.280" />
  <row Id="4112" PostTypeId="1" AcceptedAnswerId="4173" CreationDate="2010-09-15T20:44:38.480" Score="1" ViewCount="139" Body="&lt;p&gt;If you were to run across code like this in your travels would the short names bother you?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;let setPropertyAssignment = &#xA;    parser {&#xA;        let! a = setIdentifierName&#xA;        let! b = propertyName&#xA;        let! c = openParenthesis &#xA;        let! d = propertySetParameterList&#xA;        let! e = closeParenthesis &#xA;        let! f = openCurlyBracket &#xA;        let! g = functionBody&#xA;        let! h = closeCurlyBracket&#xA;        return Node(NodeType.PropertyAssignment, [a;b;c;d;e;f;g;h])&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Here is the largest parser in the project:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;let iterationStatement = &#xA;    parser {&#xA;        let! a = doKeyWord&#xA;        let! b = statement&#xA;        let! c = whileKeyWord&#xA;        let! d = openParenthesis&#xA;        let! e = expression&#xA;        let! f = closeParenthesis&#xA;        let! g = statementTerminator&#xA;        let symbols = [a; b; c; d; e; f; g]&#xA;        return Node(NodeType.IterationStatement, symbols)&#xA;    } +++ parser {&#xA;        let! a = whileKeyWord&#xA;        let! b = openParenthesis&#xA;        let! c = expression&#xA;        let! d = closeParenthesis&#xA;        let! e = statement&#xA;        let symbols = [a; b; c; d; e]&#xA;        return Node(NodeType.IterationStatement, symbols)&#xA;    } +++ parser {&#xA;        let! a = forKeyWord&#xA;        let! b = openParenthesis&#xA;        let! c = maybeOne expressionNoIn&#xA;        let! d = semiColon&#xA;        let! e = maybeOne expression&#xA;        let! f = semiColon&#xA;        let! g = maybeOne expression&#xA;        let! h = closeParenthesis&#xA;        let! i = statement&#xA;        let symbols = [a;b] @ c @ [d] @ e @ [f] @ g @ [h;i]              &#xA;        return Node(NodeType.IterationStatement, symbols)&#xA;    } +++ parser {&#xA;        let! a = forKeyWord&#xA;        let! b = openParenthesis&#xA;        let! c = varKeyWord&#xA;        let! d = variableDeclarationListNoIn&#xA;        let! e = semiColon&#xA;        let! f = maybeOne expression&#xA;        let! g = semiColon&#xA;        let! h = maybeOne expression&#xA;        let! i = closeParenthesis&#xA;        let! j = statement&#xA;        let symbols = [a;b;c;d;e] @ f @ [g] @ h @ [i;j]&#xA;        return Node(NodeType.IterationStatement, symbols)&#xA;    } +++ parser {&#xA;        let! a = forKeyWord&#xA;        let! b = openParenthesis&#xA;        let! c = leftHandSideExpression&#xA;        let! d = inKeyWord&#xA;        let! e = expression&#xA;        let! f = closeParenthesis&#xA;        let! g = statement&#xA;        let symbols = [a;b;c;d;e;f;g]               &#xA;        return Node(NodeType.IterationStatement, symbols)&#xA;    }  +++ parser {&#xA;        let! a = forKeyWord&#xA;        let! b = openParenthesis&#xA;        let! a = varKeyWord&#xA;        let! c = variableDeclarationNoIn&#xA;        let! a = inKeyWord&#xA;        let! c = expression&#xA;        let! d = closeParenthesis&#xA;        let! e = statement&#xA;        let symbols = [a; b; c; d; e]&#xA;        return Node(NodeType.IterationStatement, symbols)&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="712" LastEditorUserId="712" LastEditorDisplayName="" LastEditDate="2010-09-15T20:58:30.950" LastActivityDate="2010-09-15T22:54:17.023" Title="Should I bother with trying to come up with names for these?" Tags="&lt;f#&gt;&lt;naming-conventions&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="1" />
  <row Id="4113" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T20:45:48.213" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;build something that people want&lt;/li&gt;&#xA;&lt;li&gt;build something that you want to use every day&lt;/li&gt;&#xA;&lt;li&gt;if you don't comment your code, make sure it reads cleanly&lt;/li&gt;&#xA;&lt;li&gt;comment your code&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastActivityDate="2010-09-15T20:45:48.213" CommunityOwnedDate="2010-09-15T20:45:48.213" />
  <row Id="4114" PostTypeId="1" CreationDate="2010-09-15T20:46:18.577" Score="1" ViewCount="178" Body="&lt;p&gt;Python is a &lt;em&gt;cool&lt;/em&gt; language and Django is a &lt;em&gt;cool&lt;/em&gt; framework so why aren't there more screencasts/videos for these?&#xA;There are loads of screencasts/videos for PHP and Ruby on Rails so why not Python? I'm confused?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you in advance ;-)&lt;/p&gt;&#xA;" OwnerUserId="2053" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-23T03:27:35.903" LastActivityDate="2010-09-23T03:27:35.903" Title="Why aren't there more screencasts/videos for Python and Django?" Tags="&lt;php&gt;&lt;python&gt;&lt;ruby-on-rails&gt;&lt;django&gt;" AnswerCount="2" />
  <row Id="4115" PostTypeId="2" ParentId="4114" CreationDate="2010-09-15T20:49:13.920" Score="-1" ViewCount="" Body="&lt;p&gt;I'm gonna go out on a limb here and say there arent more because people havent made them and posted them online.  &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-15T20:49:13.920" CommentCount="1" />
  <row Id="4117" PostTypeId="2" ParentId="4112" CreationDate="2010-09-15T20:50:54.077" Score="2" ViewCount="" Body="&lt;p&gt;Depends on the complexity.  With something this size, it's pretty obvious what you're doing and why.  Make it much bigger--a page or so--and it'll get very confusing very quickly.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-15T20:50:54.077" CommentCount="1" />
  <row Id="4118" PostTypeId="2" ParentId="4072" CreationDate="2010-09-15T20:53:20.627" Score="6" ViewCount="" Body="&lt;p&gt;After they get off-shored, they'll get re-shored. The two most expensive parts of software development are communication and maintenance, both of which take a lot more time to do with an off-shored team. Unless the whole business (including marketing and management) is off-shored, eventually someone concludes that the whole off-shoring idea isn't as wonderful as it sounds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Building software is more like building houses than building cell phones. You don't off-shore house construction either.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-15T20:53:20.627" CommentCount="4" />
  <row Id="4119" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T20:57:36.240" Score="5" ViewCount="" Body="&lt;p&gt;How to use Google&lt;/p&gt;&#xA;" OwnerUserId="2074" LastActivityDate="2010-09-15T20:57:36.240" CommunityOwnedDate="2010-09-15T20:57:36.240" />
  <row Id="4120" PostTypeId="2" ParentId="4107" CreationDate="2010-09-15T20:57:48.480" Score="7" ViewCount="" Body="&lt;p&gt;This is code smell. This say what and not &lt;strong&gt;why&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this is necessary, split the code in small functions.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-15T20:57:48.480" CommentCount="5" />
  <row Id="4121" PostTypeId="1" AcceptedAnswerId="4132" CreationDate="2010-09-15T20:59:30.503" Score="11" ViewCount="527" Body="&lt;p&gt;If you can choose whether to work on a project alone or in a team, what would be your choice and why? And if you want to work in a team, what is the ideal team size?&lt;/p&gt;&#xA;" OwnerUserId="837" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:06:59.110" LastActivityDate="2010-11-25T14:17:30.137" Title="Do you want to work alone or in a team?" Tags="&lt;team&gt;&lt;work&gt;" AnswerCount="10" FavoriteCount="2" />
  <row Id="4122" PostTypeId="2" ParentId="4028" CreationDate="2010-09-15T21:00:03.553" Score="3" ViewCount="" Body="&lt;p&gt;I always reason that ugly code is code that has seen many debuggings, with many subtleties that aren't apparent with a cursory inspection. If I replace it, or deeply redesign it, I need to make sure that I understand absolutely every aspect of what the code does. If I don't have the time to get to the bottom, I must take an approach of minimal risk, making the smallest possible change to achieve my goals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually I'll make a small fix / change, and propose a feature for later development that would excuse getting to the bottom of things and refactoring the whole thing. Then I do my best to ignore the code until the feature ends up on the roadmap.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-15T21:00:03.553" />
  <row Id="4123" PostTypeId="1" AcceptedAnswerId="7233" CreationDate="2010-09-15T21:00:10.240" Score="15" ViewCount="755" Body="&lt;p&gt;What's the BEST way to really understand OOP? Any video's/Screencasts that you would recommend?&lt;/p&gt;&#xA;" OwnerUserId="2053" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T16:05:00.360" LastActivityDate="2010-12-05T03:42:21.760" Title="What's the BEST way to really understand OOP?" Tags="&lt;learning&gt;&lt;object-oriented&gt;" AnswerCount="11" CommentCount="6" FavoriteCount="8" />
  <row Id="4124" PostTypeId="2" ParentId="4107" CreationDate="2010-09-15T21:01:05.127" Score="2" ViewCount="" Body="&lt;p&gt;I look at these things as a way to make the code clearer or not. If you can tell based on the methods in the file what each part is then there is no need however if you &lt;em&gt;have&lt;/em&gt; to have multiple sections then it can be useful. Perhaps when a code file gets too large it needs to be broken down which might reduce the need for such comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say if working within a team to come up with a standard so you are all at least coding and commenting the same way so looking at the code becomes easier.&lt;/p&gt;&#xA;" OwnerUserId="2073" LastActivityDate="2010-09-15T21:01:05.127" />
  <row Id="4125" PostTypeId="2" ParentId="2776" CreationDate="2010-09-15T21:02:13.770" Score="4" ViewCount="" Body="&lt;p&gt;I like it but if I were using it to evaluate a company I wouldn't equally weigh all the items. Not having source control is a much bigger problem then not buying the best tools money can buy.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-15T21:02:13.770" />
  <row Id="4126" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T21:04:17.467" Score="2" ViewCount="" Body="&lt;p&gt;Unit testing is not a silver bullet. You can still introduce bugs, write wrong tests and it should not be the only form of tests you do.&lt;/p&gt;&#xA;" OwnerUserId="2073" LastActivityDate="2010-09-15T21:04:17.467" CommunityOwnedDate="2010-09-15T21:04:17.467" />
  <row Id="4127" PostTypeId="1" CreationDate="2010-09-15T21:04:46.937" Score="3" ViewCount="486" Body="&lt;p&gt;C first and then Objective C or shall i get stuck in with Objective C straight away ? I love to make some apps for the iphone and want to know if i need to learn C first? What advice would you give?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you in advance ;-)&lt;/p&gt;&#xA;" OwnerUserId="2053" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T03:52:21.807" LastActivityDate="2011-05-05T21:02:31.770" Title="C first and then Objective C or shall i get stuck in with Objective C straight away?" Tags="&lt;iphone&gt;&lt;c&gt;&lt;objective-c&gt;" AnswerCount="11" />
  <row Id="4128" PostTypeId="2" ParentId="3997" CreationDate="2010-09-15T21:05:27.613" Score="3" ViewCount="" Body="&lt;p&gt;I worked for a company that tried to outsource a major component of a particular project that was export controlled. This meant that the third party could not, by US law, test their component against the rest of the product because the software wasn't allowed to leave the country. Instead they had a &quot;simulator&quot; for our product. You can imagine how that went. The phrase &quot;it works in the simulator!&quot; became the new &quot;it works on my machine!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We did have a little PDA app get outsourced, and it worked out well. It wasn't the most usable thing in the world but it worked well enough. It was probably a good decision. But the above example was a disaster. We had to take off one of our best programmers to &lt;em&gt;rewrite&lt;/em&gt; the entire component. It literally did not work &lt;em&gt;at all&lt;/em&gt;. We ended up spending a ton of money either using our own man hours to fix outsourced problems or flying in and putting up the outsourced programmers to work for a month at a time. Both were crazy expensive and we'd have been better off just doing it ourselves.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastActivityDate="2010-09-15T21:05:27.613" />
  <row Id="4129" PostTypeId="2" ParentId="4121" CreationDate="2010-09-15T21:07:47.087" Score="1" ViewCount="" Body="&lt;p&gt;it always depends on the size of the project for small pet projects i prefer doing it alone,but if doing work as a freelancer it is good to have a partner on who to discuss design ideas and complement yours also is good for peer reviews and have someone to lauhg abuot you customer crazy ideas. i have been working in a 2 -3 team size for some years now &lt;/p&gt;&#xA;" OwnerUserId="128" LastActivityDate="2010-09-15T21:07:47.087" />
  <row Id="4130" PostTypeId="2" ParentId="4127" CreationDate="2010-09-15T21:09:03.063" Score="7" ViewCount="" Body="&lt;p&gt;I don't think learning straight C first would pay off very well, although it could certainly be beneficial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you'd make faster progress if you just started writing some iPhone apps with Objective-C and learned from experience. &lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-15T21:09:03.063" />
  <row Id="4131" PostTypeId="2" ParentId="358" CreationDate="2010-09-15T21:10:04.370" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://kornshell.com/&quot; rel=&quot;nofollow&quot;&gt;Korn shell&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was a 1000 line shell script. It read from three different configuration files and used a few large blocks of AWK as part of its execution. It was so bad that it made PHP look good, which is probably why I don't mind programming in PHP on a daily basis.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-15T21:10:04.370" CommunityOwnedDate="2010-09-30T22:46:32.880" CommentCount="2" />
  <row Id="4132" PostTypeId="2" ParentId="4121" CreationDate="2010-09-15T21:10:51.577" Score="24" ViewCount="" Body="&lt;p&gt;I like working in a team. It's nice to be able to split up some tasks, bounce ideas off of each other, etc. I find that the code and the project generally benefits from that sort of collaboration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, if the team isn't cohesive, then I'd rather work by myself to get the job done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the ideal team size, I think it depends on the size of the project, but anywhere from 2 to 5 people would work well.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-15T21:10:51.577" CommentCount="4" />
  <row Id="4133" PostTypeId="2" ParentId="4121" CreationDate="2010-09-15T21:10:52.950" Score="3" ViewCount="" Body="&lt;p&gt;I prefer working on a team because it's always good to have somebody pretty familiar with the work that I can bounce ideas off of.  Being able to pairing as well on tasks helps out a lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for an ideal size, it really depends on the size of the overall project, but I'd say no larger than 5-7 people.&lt;/p&gt;&#xA;" OwnerUserId="62" LastActivityDate="2010-09-15T21:10:52.950" />
  <row Id="4134" PostTypeId="2" ParentId="4123" CreationDate="2010-09-15T21:11:14.640" Score="0" ViewCount="" Body="&lt;p&gt;for easy oop basic concepts there is a learning center designed for begginers that explain the concepts in a smooth manner&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/beginner/cc963989.aspx&quot; rel=&quot;nofollow&quot;&gt;http://msdn.microsoft.com/en-us/beginner/cc963989.aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="128" LastActivityDate="2010-09-15T21:11:14.640" />
  <row Id="4135" PostTypeId="2" ParentId="3974" CreationDate="2010-09-15T21:12:01.017" Score="4" ViewCount="" Body="&lt;p&gt;I think this question is better answered by a psychological phenomena called &lt;a href=&quot;http://en.wikipedia.org/wiki/Stereotype_threat&quot; rel=&quot;nofollow&quot;&gt;stereotype threat&lt;/a&gt;. There are cultural stigmas which suggest women aren't as good at math related fields as men, such as computer science and engineering.  These stereotypes are deep rooted, and are often reinforced as young as grade school.  When women are pitted against men in these fields, not only to they have to overcome the same obstacles as men do, but they also have to overcome their the cultural stereotypes associated with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From an outside prospective, it's easy to dismiss stereotype threat, but it's profound and far reaching.  Studies have shown when a stereotype is introduced, even if it makes no sense relative to the group it's applied to, the same effects can be observed.  Similarly, when conditions are altered to alleviate the threat, test scores seem to even out.  This is the same reason why certain minorities in American culture consistently score lower on standardized tests, despite have the same aptitude scores as their white peers.&lt;/p&gt;&#xA;" OwnerUserId="2079" LastActivityDate="2010-09-15T21:12:01.017" CommunityOwnedDate="2010-09-16T16:16:52.033" CommentCount="1" />
  <row Id="4136" PostTypeId="2" ParentId="4121" CreationDate="2010-09-15T21:13:45.003" Score="2" ViewCount="" Body="&lt;p&gt;Depends on the size, although for me the smaller the better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Small Projects - I hate working in a large team for a small project. If I do it myself, I don't have to worry about merges, branches, keeping coding standards consistent, other people's IDEs, other peoples coding speed, other people, and all the extra headache that comes along with a team&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Big projects - In big projects where its just not possible to do it alone or X is really complicated, I would like to work in a team, just to help divide up the work. If we keep things seperate enough, then I'm perfectly fine. Its the separation though that's important. If people are working on my module at the same time I am, then I get frustrated.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-15T21:13:45.003" />
  <row Id="4137" PostTypeId="2" ParentId="4123" CreationDate="2010-09-15T21:24:30.457" Score="12" ViewCount="" Body="&lt;p&gt;I was taught at the very beginning like this (I'm going to pretend reflection doesn't exist):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Classes are like blueprints: You can't use the blueprints as your house (Eg using house plans as your house), but you can use it to build the house. Here you define what the house does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Methods are like appliances: They do a specific task and exist in the blueprints. You have a microwave, an oven, and a stove. You use the microwave to defrost many things, but you take each of those things you defrosted (the result or returned value), and do something else. You might pass it to the oven or the stove, or you might not do anything with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Constructors are the installers for the appliances: They set everything up but don't actually use the appliances. They plug in the microwave, stove, and oven; and put food in the cabinet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Objects are the house: You have the house, and now you can do whatever was defined in the blueprints. If you want to use the washing machine, then you call the washing machine method. If there is no washing machine, then you need to edit the &quot;blueprints&quot; an add one. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;You can obviously expand on the examples above, but thats a nice way to introduce OOP to someone who has never done it before. To someone transitioning from procedural or functional languages, you probably don't have to dumb it down as much, but you can still use this example&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-15T21:24:30.457" CommentCount="2" />
  <row Id="4138" PostTypeId="2" ParentId="4114" CreationDate="2010-09-15T21:28:11.503" Score="2" ViewCount="" Body="&lt;p&gt;What possible benefit could you get from a screencast of a programming language? Books/written tutorials are &lt;em&gt;much&lt;/em&gt; better suited for what is, after all, a written medium. You wouldn't want video tutorials on writing books, would you? And there &lt;em&gt;are&lt;/em&gt; excellent textual tutorials available for both &lt;a href=&quot;http://docs.python.org/tutorial/&quot; rel=&quot;nofollow&quot;&gt;Python&lt;/a&gt; and &lt;a href=&quot;http://docs.djangoproject.com/en/dev/intro/tutorial01/&quot; rel=&quot;nofollow&quot;&gt;Django&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-15T21:28:11.503" CommentCount="4" />
  <row Id="4139" PostTypeId="2" ParentId="2776" CreationDate="2010-09-15T21:29:17.860" Score="1" ViewCount="" Body="&lt;p&gt;The Joel Test does not test how good a team is.  It tests how how well your team adheres to the Joel Test. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a better test of how good your team is.  I call it the GrandmasterB test.  It has one question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1) Is the software you write any good?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its irrelevant to me whether you 'hallway test' or not, or what source control you have, or what your build process is (if there is one - not every lanugage has them).  The true measure of a team is the quality of the software they create.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, you could follow every single step of the Joel Test, and still end up with crap code and products that never ship.  For example, source control does not magically make one a better coder, it makes code easier to manage.  And having the latest Visual Studio doesnt mean your app will work better than if it was written with VS2005.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-15T21:29:17.860" CommentCount="4" />
  <row Id="4140" PostTypeId="2" ParentId="358" CreationDate="2010-09-15T21:29:41.010" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Piet_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Piet&lt;/a&gt;, obviously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Granted, that wasn't a &quot;real&quot; project, just some Christmas fun for internal use, but still.&lt;/p&gt;&#xA;" OwnerUserId="325" LastActivityDate="2010-09-15T21:29:41.010" CommunityOwnedDate="2010-09-30T22:46:32.880" />
  <row Id="4141" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T21:30:46.687" Score="0" ViewCount="" Body="&lt;p&gt;Know the basic regular expression syntax including conditional grouping. Stay away from using library specific regex command addons or at least comment/factor out those parts. &lt;/p&gt;&#xA;" LastActivityDate="2010-09-15T21:30:46.687" CommunityOwnedDate="2010-09-15T21:30:46.687" />
  <row Id="4142" PostTypeId="1" CreationDate="2010-09-15T21:34:35.917" Score="5" ViewCount="124" Body="&lt;p&gt;Often when stating a new project I'll require a &lt;em&gt;&quot;quick 'n' dirty&quot;&lt;/em&gt; content management solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally something that can read my database schema and generated HTML forms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Previously I've used; &lt;a href=&quot;http://www.phpmyedit.org/&quot; rel=&quot;nofollow&quot;&gt;phpMyEdit&lt;/a&gt; and &lt;a href=&quot;http://www.phpmyadmin.net/home_page/index.php&quot; rel=&quot;nofollow&quot;&gt;phpMyAdmin&lt;/a&gt; but they are lacking is key areas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My wish list woulds be:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Database independent&lt;/li&gt;&#xA;&lt;li&gt;Foreign key aware&lt;/li&gt;&#xA;&lt;li&gt;Handles views as-well-as tables&lt;/li&gt;&#xA;&lt;li&gt;Generates modern HTML and CSS&lt;/li&gt;&#xA;&lt;li&gt;AJAX interface.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;What's your swiss army knife when it comes to CMS on a project?&lt;/p&gt;&#xA;" OwnerUserId="96" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-17T02:41:32.050" LastActivityDate="2010-09-17T02:41:32.050" Title="What are some easy-to-implement scaffolding systems?" Tags="&lt;php&gt;&lt;database-development&gt;&lt;cms&gt;" AnswerCount="1" CommentCount="5" FavoriteCount="2" />
  <row Id="4143" PostTypeId="2" ParentId="4028" CreationDate="2010-09-15T21:36:13.740" Score="3" ViewCount="" Body="&lt;p&gt;When legacy code is more than a couple of years old, it may have been written that way because of limitations in the language or operating systems etc. that existed at the time the code was written. Hey it looks bad now but was it bad then? I try to assume the developer had a reason for what he or she did. That reason may no longer apply but assuming there was one instead of just general incompetence (young programmers will be thinking the same thing about your code in 5 years maybe even less) makes you less angry about it. If it works and there are no problems associated with it, cherish that legacy code, no matter how ugly, as it will let you get on solving more exciting problems.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-15T21:36:13.740" CommentCount="1" />
  <row Id="4144" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T21:42:26.047" Score="2" ViewCount="" Body="&lt;p&gt;Computers don't understand semantics.  Suppose you have this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var ferrari = new Ferrari();&#xA;ferrari.DriveTo(Places.Seattle);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;To the computer, you may as well have used different type names and used:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var mxEEcceqs = new safHBBdueWE();&#xA;mxEEcceqs.HYBbQAW(n3dNm.pDojeW);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Naming things is very important, but don't make the mistake of assuming the computer knows what you &quot;mean&quot; just because you named your type &quot;Ferrari&quot; or your method &quot;DriveTo&quot;.&lt;/p&gt;&#xA;" OwnerUserId="214" LastActivityDate="2010-09-15T21:42:26.047" CommunityOwnedDate="2010-09-15T21:42:26.047" />
  <row Id="4145" PostTypeId="2" ParentId="2776" CreationDate="2010-09-15T21:43:43.060" Score="2" ViewCount="" Body="&lt;p&gt;The only deal-breaker for me is:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; 8. Do programmers have quiet working conditions?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Interesting it's the question most likely to be failed by Stack Overflow job postings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of the questions are difficult to fail, particularly if there is more than one programmer in the company:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; 1. Do you use source control?&#xA; 2. Can you make a build in one step?&#xA; 4. Do you have a bug database?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Most of the others I don't really care about. I mean, honestly:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;12. Do you do hallway usability testing?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;There is one to detect liars:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; 5. Do you fix bugs before writing new code?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="735" LastActivityDate="2010-09-15T21:43:43.060" CommentCount="2" />
  <row Id="4146" PostTypeId="2" ParentId="3851" CreationDate="2010-09-15T21:46:32.097" Score="12" ViewCount="" Body="&lt;p&gt;Personally I think that any programmer who can look at their own code that they wrote a while ago and not find something wrong with it is not a good one. &quot;A while&quot; can scale with experience... I'd say between a few weeks up to a year or so.&lt;/p&gt;&#xA;" OwnerUserId="1767" LastActivityDate="2010-09-15T21:46:32.097" CommunityOwnedDate="2010-12-13T18:51:52.480" CommentCount="2" />
  <row Id="4147" PostTypeId="2" ParentId="843" CreationDate="2010-09-15T21:48:03.750" Score="0" ViewCount="" Body="&lt;p&gt;Why should frequent changes to prod be avoided? Because they can cause performance problems and user issues. Users need to be aware of the changes that might affect them espcially if the roll to prod might involve a lot of performance hits to the database and thus cause slowdowns. Because the users don't like it when they get locked out for an upgrade just when they need to run payroll. Users are often on the application all day long every day, they get cranky when lots of changes over a short period of time happen and they complain to their bosses who complain to your boss' boss who will yell at your boss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prod rolls are also risky. It is the rare place which actually tests against production level usage (heck way too many places don't even test code against produstion size databases), so things that appear to work fine in QA can cause the whole system to come to a crashing halt in a production enviroment. So the fewer times you go to prod with new code the fewer times your boss is at risk of being called on the carpet.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-15T21:48:03.750" />
  <row Id="4148" PostTypeId="2" ParentId="4104" CreationDate="2010-09-15T21:48:26.250" Score="0" ViewCount="" Body="&lt;p&gt;Having experience with PHP alone, PHP with Code Igniter, and RoR, I'd say that the answer is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Somewhat.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since there's really no way to measure what you're asking, that's the best I can do.  To be honest, a lot of the benefits of RoR are just the benefits of a good framework (and there are plenty of PHP frameworks) along with a decent community and the fact that it's Ruby, not PHP (see &lt;a href=&quot;http://programmers.stackexchange.com/questions/696/why-do-you-hate-love-php&quot;&gt;http://programmers.stackexchange.com/questions/696/why-do-you-hate-love-php&lt;/a&gt;).&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-15T21:48:26.250" CommentCount="5" />
  <row Id="4149" PostTypeId="2" ParentId="293" CreationDate="2010-09-15T21:48:53.600" Score="1" ViewCount="" Body="&lt;p&gt;Real scoping of some form or another, because frankly, what Python has now really sucks.  :(&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-15T21:48:53.600" CommentCount="1" />
  <row Id="4150" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T21:52:27.077" Score="4" ViewCount="" Body="&lt;p&gt;How to accurately estimate how much time a feature is going to take to implement.  More importantly, how to convey you're not bullshitting when you submit that estimate.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-15T21:52:27.077" CommunityOwnedDate="2010-09-15T21:52:27.077" CommentCount="1" />
  <row Id="4151" PostTypeId="2" ParentId="3975" CreationDate="2010-09-15T21:53:09.147" Score="1" ViewCount="" Body="&lt;p&gt;SSIS packages in SQL Server (starting with 2005) are graphical, although they can have code within them.  It's pretty powerful and cool.&lt;/p&gt;&#xA;" OwnerUserId="88" LastActivityDate="2010-09-15T21:53:09.147" />
  <row Id="4152" PostTypeId="2" ParentId="3974" CreationDate="2010-09-15T21:55:32.403" Score="1" ViewCount="" Body="&lt;p&gt;From my personal experience, I've been working closely with four fellow female developers, and, in the three cases, they have been quite competent and capable and one was a disaster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of them was also my boss (which I suppose can be even less frequent, as she was older) and she is really awesome, both as a boss and as a developer. Probably you can take into account that she was being working with the same related technologies for most of her career, but she knows the company software extremely well, and it isn't an easy one. These days her job is more related to management, but she really enjoys to code and is eager to help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the other two, one was a girl that has just finished her degree and was quite intelligent and fast learner (although, of course, you can't expect the same expertise as someone with more experience) and the other one a good, reliable developer. Nothing that really makes you raise an eyebrow but no bad surprises.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The last one was simply bad. Not only a bad programmer, but also a bad team worker, which is even worse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was a coworker of a couple more, but those four were the ones that I can really evaluate them as I have been working closely, reading their code, discuss designs, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I suppose I have more or less the full spectrum. ;-) Probably if I compare them as a group with men, probably men will lose in general, but I have worked with a lot more men, so I cannot really extract those kind of conclussions...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PD: Reading other responses, curiously, none of them could be considered as &quot;nerds&quot; or &quot;geeks&quot;, although I worked with a girl (who was not a developer) who was absolutely a computer geek&lt;/p&gt;&#xA;" OwnerUserId="1571" LastEditorUserId="1571" LastEditorDisplayName="" LastEditDate="2010-09-15T22:04:32.840" LastActivityDate="2010-09-15T22:04:32.840" CommunityOwnedDate="2010-09-16T16:16:52.033" />
  <row Id="4153" PostTypeId="2" ParentId="4112" CreationDate="2010-09-15T21:56:51.510" Score="1" ViewCount="" Body="&lt;p&gt;You'd benefit from a wrapper function that takes a list of parsers of &lt;code&gt;'a&lt;/code&gt; (your &lt;code&gt;a&lt;/code&gt; to &lt;code&gt;i&lt;/code&gt; above) and returns a single parser of &lt;code&gt;'a list&lt;/code&gt;. That way you wouldn't need to assign names to these intermediate parsers; you could drop them directly into a list.&lt;/p&gt;&#xA;" OwnerUserId="1420" LastActivityDate="2010-09-15T21:56:51.510" CommentCount="2" />
  <row Id="4154" PostTypeId="2" ParentId="293" CreationDate="2010-09-15T21:57:01.523" Score="2" ViewCount="" Body="&lt;p&gt;The ability to write a decorator which takes &lt;code&gt;*args, **kwords&lt;/code&gt; but when wrapped around a function displays the actual function calls of that function without having to resort to some eval magic, a la decorator decorator.  Such as&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;def wrapIt(func):&#xA;    def foo(*args, **kwords):&#xA;        print &quot;ok, got here&quot;&#xA;        return func( args, kwords )&#xA;    return foo&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Then&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;@wrapIt&#xA;def addOne( bar ):&#xA;    return bar + 1&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and when I call it I don't see &quot;*args, **kwords&quot; as it's signature, I see &quot;bar&quot;!  Aarg, what I wouldn't give for that feature.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-15T21:57:01.523" CommentCount="2" />
  <row Id="4155" PostTypeId="2" ParentId="1999" CreationDate="2010-09-15T21:57:18.007" Score="5" ViewCount="" Body="&lt;p&gt;I found one way to make sure you are heard is to put it in writing. The boss makes a risky choice that you don't agree with, point out the risks in an email and not just a conversation. If there will be a paper trail showing they were told of the risk, the average manager is less willing to take the risk. They want to be able to blame someone else when things go bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It doesn't even have to be that confrontational an email. Sometimes pointing out the problems by simply asking questions about how will we handle this or avoid this risk of that methodology is enough. In a really bad case, a cc to his boss may be in order, but save this for the really serious stuff because embarrassing your boss may not be the best choice when you have to continue to work for him.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-15T21:57:18.007" />
  <row Id="4156" PostTypeId="2" ParentId="3975" CreationDate="2010-09-15T22:00:27.667" Score="0" ViewCount="" Body="&lt;p&gt;We're using Visio and Rational Rose (ugh!)  I like the former somewhat, I don't like the later the way it's setup and done at the office.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-15T22:00:27.667" />
  <row Id="4157" PostTypeId="2" ParentId="2776" CreationDate="2010-09-15T22:04:59.370" Score="6" ViewCount="" Body="&lt;p&gt;It's interesting that point 8 now reads:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;8. Do programmers have quiet working conditions?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;when it used to read (something like)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;8. Do programmers have their own office?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and the last paragraph still starts:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Now let's move them into separate offices with walls and doors.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I was always suspicious of this test as in all the places I've worked - both as employee and visitor - the only people with their own offices are the directors and senior managers. Writing software in the real world is a team activity, you need to talk to your team-mates to bounce ideas around etc. and that is so much harder with people in separate offices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I would say is that each team needs to be in it's own office of 6-8 people (assuming that's the size of the team). That way they can interact without disturbing the other teams (if there are any) and get on with their work without being disturbed by the sales team or visitors (at one place I worked you came through the front door straight into the development area).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are working with other developers, but each is working on separate projects, then a shared office &lt;em&gt;can&lt;/em&gt; be useful - but only if you are strict about taking meetings to the meeting room and respecting other people's deadlines etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the others are self evident truths.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-09-29T22:00:12.930" LastActivityDate="2010-09-29T22:00:12.930" CommentCount="10" />
  <row Id="4158" PostTypeId="2" ParentId="4121" CreationDate="2010-09-15T22:14:44.530" Score="4" ViewCount="" Body="&lt;p&gt;As usual, it depends. In most professional projects is better to be a team member. But I like work on personal projects alone. Is seems obvious but I like because I can exercise another kind of work, another kind of process and thoughts. Working alone I have different challenges. &lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-15T22:14:44.530" />
  <row Id="4159" PostTypeId="2" ParentId="554" CreationDate="2010-09-15T22:15:15.927" Score="0" ViewCount="" Body="&lt;p&gt;I'm right out of school with a fresh CS degree, and have found a job in this job market. So, with whatever authority that gives me (personal anecdote), I can say: The degree did help me get a job. Many of the postings I found asked for either a CS degree or 2-3 years experience. As a person with no professional experience in developing, I was able to get interviews that wouldn't be available without it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to the other question, I feel like my CS degree (which focused heavily on software development as well) did prepare me for some aspects. I was able to come into my job and begin being productive almost immediately because of the knowledge I gained. And then, it all came grinding to a halt as soon as I had to do something with Maven. So, you will miss having knowledge of specific tools, but you will understand broad topics better. And your code will be much higher quality with the tools a degree gives you.&lt;/p&gt;&#xA;" OwnerUserId="2091" LastActivityDate="2010-09-15T22:15:15.927" />
  <row Id="4160" PostTypeId="2" ParentId="4104" CreationDate="2010-09-15T22:18:08.803" Score="0" ViewCount="" Body="&lt;p&gt;CakePHP is probably the best PHP framework to compare to RoR.   Its designed to mimic most of RoR's funtionality and methods (Or at least with inspiration from RoR.) and it's probably the fastest php framework to program with. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Between RoR and CakePHP I have no idea which is actually faster because I've yet to try out Ruby. But those two are probably as close as you are going to get to a decent comparison.  I don't think they are too far apart in speed.  I just know CakePHP is very fast. (to program with.  its a slug resource wise)&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-09-15T22:18:08.803" />
  <row Id="4161" PostTypeId="2" ParentId="293" CreationDate="2010-09-15T22:18:17.233" Score="1" ViewCount="" Body="&lt;p&gt;I would like the ability to have blocks of code set off by something I can see (although I know this is never going to happen). I'd also like true lambdas. &lt;/p&gt;&#xA;" OwnerUserId="2091" LastActivityDate="2010-09-15T22:18:17.233" CommentCount="4" />
  <row Id="4162" PostTypeId="2" ParentId="2776" CreationDate="2010-09-15T22:18:45.407" Score="2" ViewCount="" Body="&lt;p&gt;Although I think it makes quite sense in general sense, I found the list quite centered on the specific kind of software that Fog Creek does (Shrinkwrap). That's not really surprising, as he also talks about that on &lt;a href=&quot;http://www.joelonsoftware.com/articles/FiveWorlds.html&quot; rel=&quot;nofollow&quot;&gt;another post&lt;/a&gt;. And there are lots of developments outside that world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some conditions that really don't make a lot of sense if you develop for example embedded software for a satellite or a vending machine, like daily builds (3) or usability testings (12).   &lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-09-15T22:18:45.407" CommentCount="2" />
  <row Id="4163" PostTypeId="2" ParentId="4121" CreationDate="2010-09-15T22:25:12.430" Score="2" ViewCount="" Body="&lt;p&gt;I prefer small teams by far. No more than 3 people. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some nice things about working alone though. You don't have to convince anyone on a certain way to do things. Just do it and move on.&lt;/p&gt;&#xA;" OwnerUserId="1801" LastActivityDate="2010-09-15T22:25:12.430" />
  <row Id="4164" PostTypeId="2" ParentId="1483" CreationDate="2010-09-15T22:33:27.337" Score="0" ViewCount="" Body="&lt;p&gt;Most programming languages are designed for English and English is the international language of programming.  The same for Aviation, anywhere in the world at any airport, English is the default language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a few programming languages I believe that are designed for different languages, either Russian or a variation of Mandarin but I have no idea how used they are or what they are called.&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-09-15T22:33:27.337" CommunityOwnedDate="2010-09-15T22:33:27.337" />
  <row Id="4165" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T22:35:15.700" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://regex.info/&quot; rel=&quot;nofollow&quot;&gt;Regular expressions&lt;/a&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/lMOyg.gif&quot; alt=&quot;THE Book about regular expressions&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't say how many times simple regular expressions converted data that people thought would take days to manipulate. It must be present in every programmer toolbox.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, we can't forget xkcd:&#xA;&lt;img src=&quot;http://i.imgur.com/sEJSC.png&quot; alt=&quot;Wait, forgot to escape a space.  Wheeeeee—taptaptap—eeeeee.&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2097" LastActivityDate="2010-09-15T22:35:15.700" CommunityOwnedDate="2010-09-15T22:35:15.700" CommentCount="1" />
  <row Id="4166" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T22:38:09.907" Score="-1" ViewCount="" Body="&lt;p&gt;How to search the Usenet with Google Groups and limit a search to a specific site. &lt;/p&gt;&#xA;" OwnerUserId="2097" LastActivityDate="2010-09-15T22:38:09.907" CommunityOwnedDate="2010-09-15T22:38:09.907" />
  <row Id="4167" PostTypeId="2" ParentId="3897" CreationDate="2010-09-15T22:39:24.663" Score="5" ViewCount="" Body="&lt;p&gt;My personal guess: it's the &lt;a href=&quot;http://en.wikipedia.org/wiki/Von_Restorff_effect&quot; rel=&quot;nofollow&quot;&gt;Von Restorff effect&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;She&quot; and &quot;her&quot; are &lt;em&gt;not&lt;/em&gt; actually used more than &quot;he&quot; and &quot;him&quot;; it's just that when they're used, it's unexpected/novel/jarring—and so, more remembered.&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-09-15T22:39:24.663" CommentCount="1" />
  <row Id="4168" PostTypeId="2" ParentId="4121" CreationDate="2010-09-15T22:41:43.363" Score="1" ViewCount="" Body="&lt;p&gt;In an university setting, I've found out that if you are in a team you'll have to wait for the other to finish something. If he has other things to do and thus unavailable, this tends to be less productive for the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thus, in this setting I rather like to work alone than in a team, but in a work setting it would be the reverse...&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-25T14:17:30.137" LastActivityDate="2010-11-25T14:17:30.137" />
  <row Id="4169" PostTypeId="2" ParentId="1785" CreationDate="2010-09-15T22:42:30.710" Score="0" ViewCount="" Body="&lt;p&gt;Every programmer should know how a processor works.&lt;/p&gt;&#xA;" OwnerUserId="331" LastActivityDate="2010-09-15T22:42:30.710" CommunityOwnedDate="2010-09-15T22:42:30.710" />
  <row Id="4170" PostTypeId="2" ParentId="4121" CreationDate="2010-09-15T22:46:15.180" Score="2" ViewCount="" Body="&lt;p&gt;It´s always more fun to work as part of a team. Also, you'll learn more. Anything up to 4-5 I think it's great, as you can really work with everyone and not making subgroups. Maybe the ideal number is 3 as the communication can be extremely fluid and productive. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But for small projects you can do some interesting stuff working by your own. But usually you will tend to generate dirtier and less understandable code, as you can have all the project in your head and don't need to show/explain/coordinate with no one.&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-09-15T22:46:15.180" />
  <row Id="4171" PostTypeId="2" ParentId="4121" CreationDate="2010-09-15T22:51:53.517" Score="2" ViewCount="" Body="&lt;p&gt;Smaller is better, but two (good) heads are better than one. The larger a team grows, the harder it is to maintain cohesiveness, conceptual integrity, forward progress and even good morale. Management of the group as a whole is far more important after it grows beyond a small handful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been working as the sole programmer in a two-person partnership (the other person is a domain specialist) and I like it pretty well, but it would be nice to have another software type to collaborate with and to be able to have some kind of division of labor. Having to know everything about everything at every level is quite demanding.&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-09-15T22:51:53.517" />
  <row Id="4172" PostTypeId="1" CreationDate="2010-09-15T22:52:13.313" Score="1" ViewCount="159" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/487/how-would-you-design-a-programming-language&quot;&gt;How would you design a programming language?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;What code do you wish you could write?&lt;/p&gt;&#xA;" OwnerUserId="40" LastActivityDate="2010-09-16T00:19:26.913" ClosedDate="2010-09-16T03:03:15.747" Title="What would code in your ideal language look like?" Tags="&lt;programming-languages&gt;" AnswerCount="2" CommentCount="7" FavoriteCount="1" />
  <row Id="4173" PostTypeId="2" ParentId="4112" CreationDate="2010-09-15T22:54:17.023" Score="1" ViewCount="" Body="&lt;p&gt;The singe char variable names keeps the important parts readable.  To my eye that is much more valuable that naming the throwaway variables.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know little about F#, but if something like the example below is possible I would find that slightly more straightforward since there are not extra assignments involved:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;let setPropertyAssignment = &#xA;  parser {&#xA;    return Node(NodeType.PropertyAssignment,&#xA;                  [&#xA;                   Lazy.force setIdentifierName;&#xA;                   Lazy.force propertyName;&#xA;                   Lazy.force openParenthesis;&#xA;                   Lazy.force propertySetParameterList;&#xA;                   Lazy.force closeParenthesis;&#xA;                   Lazy.force openCurlyBracket;&#xA;                   Lazy.force functionBody;&#xA;                   Lazy.force closeCurlyBracket&#xA;                  ]&#xA;               )&#xA;  }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-15T22:54:17.023" CommentCount="4" />
  <row Id="4174" PostTypeId="2" ParentId="4121" CreationDate="2010-09-15T22:57:24.803" Score="5" ViewCount="" Body="&lt;p&gt;My preference is to work alone.  I'm a total control freak and unless I totally trust the other programmers on a team and they're top notch, I'd rather do it myself.  &lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-15T22:57:24.803" CommentCount="1" />
  <row Id="4175" PostTypeId="2" ParentId="1483" CreationDate="2010-09-15T22:58:33.970" Score="0" ViewCount="" Body="&lt;p&gt;As Spaniard working in Ireland, now I do all my code in English.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I have worked previously on Spain for a multinational project and we have to code everything in English (although no one was English-speaker, mostly Spanish and French, which leads sometimes to some really funny weird comments). And after that, I worked on a Spanish company and all the code has to be on Spanish.&#xA;The problem on setting variables in Spanish is that you can't use (depending on the language) all the characters, as some are not available in ASCII. So that always leads to some deliberate typos on variables, which some times can be annoying.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// English&#xA;int size = 0;&#xA;// Proper, non-ascii Spanish&#xA;int tamaño = 0;&#xA;// Bad but ascii Spanish&#xA;int tamanno = 0;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Another curious effect is that there are a lot of characters used on programming (like #{}[], etc) that are much more easily accessible on a English keyboard than on a Spanish one. I found more comfortable to program on English layout (now that I have get used to it) as I have to make less weird key combinations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These days, when I code for personal projects, I code in English, but probably because I'm used to it...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day, it's just a matter of who do you expect to read your code, I guess... If I had to program just by my own for a while, probably I will revert to Spanish. &lt;/p&gt;&#xA;" OwnerUserId="1571" LastEditorUserId="1571" LastEditorDisplayName="" LastEditDate="2010-09-15T23:14:37.900" LastActivityDate="2010-09-15T23:14:37.900" CommunityOwnedDate="2010-09-15T22:58:33.970" />
  <row Id="4176" PostTypeId="2" ParentId="419" CreationDate="2010-09-15T22:59:05.757" Score="6" ViewCount="" Body="&lt;p&gt;Post on twitter that it's Programmers Day.  Then proceed to not do anything else about it.&lt;/p&gt;&#xA;" OwnerUserId="990" LastActivityDate="2010-09-15T22:59:05.757" />
  <row Id="4177" PostTypeId="1" CreationDate="2010-09-15T22:59:42.237" Score="7" ViewCount="477" Body="&lt;p&gt;You've got this repetitive task that must be done automatically...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or you need a very simple application that does something something really specific for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What scripting or programming language would you choose to accomplish this task quickly and why?&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-09-20T19:49:58.073" LastActivityDate="2010-09-21T17:39:03.420" Title="If you need to script something fast, what language would you choose?" Tags="&lt;programming-languages&gt;&lt;productivity&gt;&lt;recommendations&gt;&lt;scripting&gt;" AnswerCount="19" CommentCount="1" FavoriteCount="2" />
  <row Id="4178" PostTypeId="2" ParentId="4177" CreationDate="2010-09-15T23:02:12.867" Score="17" ViewCount="" Body="&lt;p&gt;Depends on what I want to do. If I just want to run a couple of commands repeatedly, I'd use a shell script (*NIX) or a batch file (Windows), because this is often the quickest (and dirtiest) way of doing it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For GUI automation on Windows, I use &lt;a href=&quot;http://www.autoitscript.com/autoit3/index.shtml&quot; rel=&quot;nofollow&quot;&gt;AutoIt&lt;/a&gt; because it's bloody brilliant for those kinds of tasks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For anything more involved, Python is my go to language because it's easy to use, but still has a great interface to the underlying OS (using the &lt;code&gt;subprocess&lt;/code&gt;, &lt;code&gt;sys&lt;/code&gt; and &lt;code&gt;os&lt;/code&gt; modules). At the same time, it's a &quot;grown-up&quot; language with exceptions, etc.&lt;/p&gt;&#xA;" OwnerUserId="61" LastEditorUserId="61" LastEditorDisplayName="" LastEditDate="2010-09-15T23:44:15.907" LastActivityDate="2010-09-15T23:44:15.907" CommentCount="1" />
  <row Id="4179" PostTypeId="2" ParentId="4177" CreationDate="2010-09-15T23:04:46.890" Score="5" ViewCount="" Body="&lt;p&gt;For REALLY SIMPLE things (a long command line call or just a batch of commands) I use bash.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For anything more complex than that, Python.&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-09-15T23:04:46.890" />
  <row Id="4180" PostTypeId="1" CreationDate="2010-09-15T23:11:05.707" Score="12" ViewCount="497" Body="&lt;p&gt;Just curious, what Web2.0 websites do employers use (if any) to pre-screen potential employees?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does any employer actually refer to a user's online &quot;reputation&quot; to get a job?&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T20:37:02.097" LastActivityDate="2010-09-18T20:37:02.097" Title="Does having a high &quot;rep&quot; on StackOverflow help you get a job? What other community sites do?" Tags="&lt;jobs&gt;&lt;employment&gt;&lt;reputation&gt;" AnswerCount="8" CommentCount="6" FavoriteCount="2" />
  <row Id="4181" PostTypeId="2" ParentId="4177" CreationDate="2010-09-15T23:13:01.693" Score="3" ViewCount="" Body="&lt;p&gt;Depending on what task shall be done, I use plain &lt;code&gt;sh&lt;/code&gt; combined with &lt;code&gt;awk&lt;/code&gt;, &lt;code&gt;perl&lt;/code&gt; and &lt;code&gt;sed&lt;/code&gt;. If my script involve complex calculus, I use &lt;code&gt;dc&lt;/code&gt; as well. If the task has to be performed in an editor, I write &lt;code&gt;vim&lt;/code&gt; macros and functions. If it needs a GUI I use &lt;code&gt;tcl/tk&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-09-15T23:13:01.693" />
  <row Id="4182" PostTypeId="2" ParentId="4172" CreationDate="2010-09-15T23:15:29.923" Score="2" ViewCount="" Body="&lt;p&gt;Suppose you had a table, &lt;code&gt;CUSTOMERS&lt;/code&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;CREATE TABLE CUSTOMERS&#xA;(&#xA;    id   INTEGER,&#xA;    name VARCHAR(500),&#xA;    age  INTEGER&#xA;)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I wish there was a language that would let me do something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for customer in customers:&#xA;    if customer.age &amp;gt; 50:&#xA;        print(customer.name)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The language would automatically translate this (behind the scenes) into the following SQL query:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;SELECT name FROM CUSTOMERS WHERE age &amp;gt; 50&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I understand that LINQ has helped bring this possibility closer, but I am more interested in a language whereby the &lt;em&gt;data flow anlysis&lt;/em&gt; of the program generates the query. Such a language would probably be better suited to stored procedures than general programming.&lt;/p&gt;&#xA;" OwnerUserId="241" LastActivityDate="2010-09-15T23:15:29.923" CommentCount="14" />
  <row Id="4183" PostTypeId="1" AcceptedAnswerId="4201" CreationDate="2010-09-15T23:20:38.930" Score="7" ViewCount="395" Body="&lt;p&gt;A friend of mine told me that at a &lt;strong&gt;very&lt;/strong&gt; big company, the programmers were told they are expected to actually work about 60% of the time&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Added:&lt;/strong&gt; She meant 60% of the time they were at work, they are supposed to work, the rest if spent on surfing the web playing pool or ping pong or whatever, chatting, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think I'm at about 70%  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How much do you?&lt;/p&gt;&#xA;" OwnerUserId="2104" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-19T19:23:29.373" LastActivityDate="2010-09-19T20:30:20.067" Title="How much of your time at work is actually devoted to working?" Tags="&lt;productivity&gt;&lt;work-time&gt;" AnswerCount="12" CommentCount="6" />
  <row Id="4184" PostTypeId="2" ParentId="4177" CreationDate="2010-09-15T23:27:36.983" Score="0" ViewCount="" Body="&lt;p&gt;C# with &lt;a href=&quot;http://www.linqpad.net/&quot; rel=&quot;nofollow&quot;&gt;LinqPad&lt;/a&gt;&#xA;&lt;br&gt;&#xA;Why?  Easy to code just about anything, familiarity with the libraries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Runner up: batch scripts&#xA;&lt;br&gt;&#xA;Mainly for development deployment type things.&lt;/p&gt;&#xA;" OwnerUserId="719" LastActivityDate="2010-09-15T23:27:36.983" CommentCount="2" />
  <row Id="4185" PostTypeId="2" ParentId="4183" CreationDate="2010-09-15T23:33:30.483" Score="1" ViewCount="" Body="&lt;p&gt;I think it could be a misunderstood on a completely different thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe your friend was referring that, in big companies,usually people only works for up to 70% of their year working hours working directly on &quot;outside&quot; projects. That means time that is directly charged as part of a project that some client(s) has paid in some way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The rest of the time can be things like working for internal projects (projects that the company is not receiving income for), training, mentoring of other programmers, general management, installing their computers or cleaning viruses, filling boring internal forms, analyze and prepare offers or proposals for clients that lead to nowhere, etc. Those are assignments that cannot be directly charged for the company to anyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are ways of measuring that overhead, and it's more or less accepted that if the company it's getting more than 70%, people is either really overload with work or not doing homework (like making maintenance) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, I'm just somehow guessing ;-)&lt;/p&gt;&#xA;" OwnerUserId="1571" LastEditorUserId="1571" LastEditorDisplayName="" LastEditDate="2010-09-15T23:39:12.967" LastActivityDate="2010-09-15T23:39:12.967" />
  <row Id="4186" PostTypeId="2" ParentId="4180" CreationDate="2010-09-15T23:38:05.060" Score="2" ViewCount="" Body="&lt;p&gt;I don't think so, but the contributions probably raise a little your chances.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead, bad contributions could put away any chances :-)&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-15T23:38:05.060" />
  <row Id="4187" PostTypeId="2" ParentId="4180" CreationDate="2010-09-15T23:43:59.370" Score="4" ViewCount="" Body="&lt;p&gt;I don't think it's currently helping &lt;strong&gt;a lot&lt;/strong&gt;, but probably it's a good move as it can attract the correct employers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ones that gives value that you openly expose yourself and shows that you at least try to answer things. As well as showing an interest for learning and sharing information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I could be perceived as a risky move, as you can have errors, but I feel that the right kind of employers (the ones that you want to be working for) will appreciate it.&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-09-15T23:43:59.370" />
  <row Id="4188" PostTypeId="2" ParentId="4183" CreationDate="2010-09-15T23:51:24.533" Score="0" ViewCount="" Body="&lt;p&gt;I currently work on a project for a large company through University. So instead of classes I go there to work on a project. The project has a deadline, so for the entire 3 months so far my time devoted to work is 100% of the allocated work day time, then even some more after work and on weekends.&lt;/p&gt;&#xA;" OwnerUserId="2109" LastActivityDate="2010-09-15T23:51:24.533" />
  <row Id="4189" PostTypeId="2" ParentId="4172" CreationDate="2010-09-16T00:19:26.913" Score="2" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;10 automatically determine customer requirements&#xA;20 implement features&#xA;30 test features&#xA;40 deploy&#xA;50 goto 10&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1360" LastActivityDate="2010-09-16T00:19:26.913" CommentCount="2" />
  <row Id="4190" PostTypeId="2" ParentId="4183" CreationDate="2010-09-16T00:27:33.557" Score="3" ViewCount="" Body="&lt;p&gt;...No Comment....&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-16T00:27:33.557" CommentCount="2" />
  <row Id="4191" PostTypeId="2" ParentId="4177" CreationDate="2010-09-16T00:33:44.320" Score="2" ViewCount="" Body="&lt;p&gt;Bash scripting as a default, quickly going to Lua for text generation/processing (specially if it involves lots of table operations). But my favourite is using vim macros (recorded with 'q', replayed with '.', prefixed with number for repeat counts) and/or regular expressions to quickly convert lists of filenames to commands operating on them, etc.&lt;/p&gt;&#xA;" OwnerUserId="2120" LastActivityDate="2010-09-16T00:33:44.320" />
  <row Id="4192" PostTypeId="2" ParentId="4177" CreationDate="2010-09-16T00:34:27.160" Score="1" ViewCount="" Body="&lt;p&gt;For simple file and data manipulation I usually just use MSAccess for throwaway code like this. It has a really simple syntax/tools for data manipulation, an easy to use command-window, no need to compile anything or build a project,  plus I have about a zillion little scriptlets for various tedious tasks tucked away in in.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-16T00:34:27.160" />
  <row Id="4193" PostTypeId="2" ParentId="4183" CreationDate="2010-09-16T00:35:37.203" Score="1" ViewCount="" Body="&lt;p&gt;60% sounds about right for me. I spend 40% or more of my work time reading blogs, stack overflow and other stackexchange sites, forums and guides that'll help me do my task later. I consider that as slacking off on my part but it helps me relax and do my job effectively later on.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-09-16T00:35:37.203" />
  <row Id="4194" PostTypeId="2" ParentId="3590" CreationDate="2010-09-16T00:40:18.690" Score="0" ViewCount="" Body="&lt;p&gt;I shut off almost everything that can buzz -- non-corporate IMing, social networks, etc. My regular email is kept open but with no notifications -- I check it between tasks when the context switch won't hurt productivity (i.e., no twitchy alt-tabbing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only exception goes for family, of course -- my wife has my corporate IM address in case she needs something urgent when the phone would be a bigger interruption and the IM will do.&lt;/p&gt;&#xA;" OwnerUserId="2120" LastActivityDate="2010-09-16T00:40:18.690" />
  <row Id="4195" PostTypeId="2" ParentId="1217" CreationDate="2010-09-16T00:41:15.057" Score="7" ViewCount="" Body="&lt;p&gt;I think the real reason is that ordinary computer users, even if they should go on to become programmers, are conditioned to believe &lt;em&gt;they can't do anything about errors.&lt;/em&gt; Think about it. What do non-programmer types do when they encounter a cryptic error message*? They might read it, but nine times out of ten they'll simply dismiss it and try again. Only if it consistently fails will they look it up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, when beginning to learn how to program, people &lt;em&gt;don't&lt;/em&gt; immediately realise that the error they're getting contains useful information on how to fix it; and yea, though compiler errors can be nigh unreadable even to the trained professional (I'm looking at you, C++ template metaprogramming), at least they provide a general starting point, and once you've seen the same error a couple of times, you'll always know what you've done to cause it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*Honestly, though, most error messages look to Joe Average like &quot;Error X2412: Unable to establish frobnicatory interplatforming dongledash: please verify bandersnatch settings or contact your system administrator.&quot;&lt;/p&gt;&#xA;" OwnerUserId="2107" LastActivityDate="2010-09-16T00:41:15.057" />
  <row Id="4196" PostTypeId="2" ParentId="4063" CreationDate="2010-09-16T00:45:29.817" Score="8" ViewCount="" Body="&lt;p&gt;Response: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How much of your development team is&#xA;  eating curry right now because it is&#xA;  dinner-time where they live?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-16T00:45:29.817" />
  <row Id="4197" PostTypeId="2" ParentId="1483" CreationDate="2010-09-16T00:46:26.710" Score="0" ViewCount="" Body="&lt;p&gt;I'm from Brazil, and I spent a lot of time in university coding half English, half Portuguese software. Later I switched to full English for almost everything, particularly any projects I was opening up for people elsewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now that I'm living and working in England I've started using UK spelling for variables and the like. It's slightly annoying to mix a variable &lt;code&gt;colour&lt;/code&gt; and ActionScript attribute &lt;code&gt;color&lt;/code&gt;, but I'll live. :)&lt;/p&gt;&#xA;" OwnerUserId="2120" LastActivityDate="2010-09-16T00:46:26.710" CommunityOwnedDate="2010-09-16T00:46:26.710" />
  <row Id="4198" PostTypeId="2" ParentId="1785" CreationDate="2010-09-16T00:47:13.697" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;All problems&lt;/strong&gt; in computer science can be solved by another level of indirection.&lt;/p&gt;&#xA;" OwnerUserId="2122" LastActivityDate="2010-09-16T00:47:13.697" CommunityOwnedDate="2010-09-16T00:47:13.697" CommentCount="1" />
  <row Id="4199" PostTypeId="2" ParentId="3974" CreationDate="2010-09-16T00:50:09.697" Score="2" ViewCount="" Body="&lt;p&gt;First off you are pretty brave for openly asking such a loaded question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal experience with female programmers has not been good.  Most of the female programmers I've worked with have been vastly inferior to their male colleagues and most really didn't seem to care about advancing their skills or have any passion for programming.  This is surprising, since a) I think anybody in a role counter to society expectations is usually awesome at their jobs (think male receptionists) and b) most of the male developers I've worked with weren't very good either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, like others have said, this is a small sample, and many of the female developers I've met on Twitter have been awesome and demonstrate a total passion for their craft.  (i.e. &lt;a href=&quot;http://twitter.com/datachick&quot; rel=&quot;nofollow&quot;&gt;@datachick&lt;/a&gt;, &lt;a href=&quot;http://twitter.com/aalear&quot; rel=&quot;nofollow&quot;&gt;@aalear&lt;/a&gt;, &lt;a href=&quot;http://twitter.com/CarolFil&quot; rel=&quot;nofollow&quot;&gt;@CarolFil&lt;/a&gt;, etc..)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also 2 female developers who specifically stand out are &lt;a href=&quot;http://twitter.com/hillarief&quot; rel=&quot;nofollow&quot;&gt;@hillarief&lt;/a&gt; who solved a problem for me earlier this week that none of the awesome male developers I asked were able to help me with.  And then you've got &lt;a href=&quot;http://twitter.com/TessFerrandez&quot; rel=&quot;nofollow&quot;&gt;@TessFerrandez&lt;/a&gt; who is just mind blowingly awesome.  I wish I was half the tech @TessFerrandez is.  (Actually @TessFerrandez is a MS production debugger ... but I'd say that qualifies as a programmer)&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-16T00:50:09.697" CommunityOwnedDate="2010-09-16T16:16:52.033" CommentCount="3" />
  <row Id="4200" PostTypeId="1" AcceptedAnswerId="4215" CreationDate="2010-09-16T00:54:02.603" Score="12" ViewCount="571" Body="&lt;p&gt;Why would you hire in-house over outsourcing in developing a product for your company? I can only think of a few but I'm not entirely sure if they're good enough reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is actually for a debate that I'm going to have in class. I'm more inclined on the outsourcing part but unfortunately, I was asked to switch to the in-house side of the debate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any ideas?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for the answers guys. The debate went well because of them. I'm pretty sure our side won the debate because of the points presented here.&lt;/p&gt;&#xA;" OwnerUserId="500" LastEditorUserId="1328" LastEditorDisplayName="" LastEditDate="2010-12-20T02:57:45.037" LastActivityDate="2010-12-28T21:20:52.857" Title="Why would you hire in-house software developers instead of outsourcing them to develop a product for your company?" Tags="&lt;jobs&gt;&lt;software-developer&gt;&lt;hiring&gt;&lt;outsourcing&gt;&lt;homework&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="2" />
  <row Id="4201" PostTypeId="2" ParentId="4183" CreationDate="2010-09-16T00:55:25.703" Score="6" ViewCount="" Body="&lt;p&gt;I work for a &lt;strong&gt;very&lt;/strong&gt; large company, and I spend nearly 100% of my time working on projects. Most days I even work through my lunch. In my case, it is largely due to my team lead, who is very sharp and has high expectations for all members of his team. I prefer it this way though, I have had jobs where I was working about 60/40, spending a lot of time reading blogs, etc. The day goes by so much slower and is less fulfilling, IMO.&lt;/p&gt;&#xA;" OwnerUserId="2123" LastActivityDate="2010-09-16T00:55:25.703" CommentCount="1" />
  <row Id="4202" PostTypeId="2" ParentId="3974" CreationDate="2010-09-16T01:01:20.610" Score="1" ViewCount="" Body="&lt;p&gt;Gender isn't the real issue here. It's the &lt;strong&gt;attitude&lt;/strong&gt; towards programming. I'm a web developer and here at my office I worked as a team with 3 females, and there's no problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say it's the &lt;strong&gt;attitude&lt;/strong&gt; because I've known some guys who could give they're best but they didn't. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I'd say it's better to work with girls (women).&lt;/p&gt;&#xA;" OwnerUserId="2126" LastActivityDate="2010-09-16T01:01:20.610" CommunityOwnedDate="2010-09-16T16:16:52.033" CommentCount="2" />
  <row Id="4203" PostTypeId="2" ParentId="3974" CreationDate="2010-09-16T01:02:55.017" Score="73" ViewCount="" Body="&lt;p&gt;I have a fascinating anecdote about female programmers. One of my coworkers is from the Philippines, which is where she attended university to study software engineering. There is one major software engineering school in the country, and the overwhelming majority (perhaps even &lt;em&gt;all&lt;/em&gt;) of her classmates were female. As they graduate and find work within the country, everybody ends up working with their classmates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those who venture outside the country to live, like my coworker, find themselves in an awkwardly male-dominated profession.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The interesting part is that the Philippine male students shy away from software engineering, considering it &quot;soft&quot; and &quot;women's work&quot;. Guys there tend to do electrical engineering, or civil engineering, or hardware design, etc. Apparently they aren't content with mere software and need to have hands-on activities where they build something tangible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After years of being in male-dominated educational and professional settings, I still have trouble wrapping my head around the concept of it being the other way around.&lt;/p&gt;&#xA;" OwnerUserId="348" LastActivityDate="2010-09-16T01:02:55.017" CommunityOwnedDate="2010-09-16T16:16:52.033" CommentCount="8" />
  <row Id="4204" PostTypeId="2" ParentId="1785" CreationDate="2010-09-16T01:09:55.297" Score="2" ViewCount="" Body="&lt;p&gt;What lexing and parsing are, just a vague overview is fine. Better yet, passing familiarity with at least one parser generator framework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the most horrid WTFs I've seen is people's custom parsing routines. Horrible to initially code, worse to maintain.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-16T01:09:55.297" CommunityOwnedDate="2010-09-16T01:09:55.297" />
  <row Id="4205" PostTypeId="2" ParentId="3851" CreationDate="2010-09-16T01:10:58.050" Score="11" ViewCount="" Body="&lt;p&gt;Those who ignore warnings on their codes and cares only on errors.&lt;/p&gt;&#xA;" OwnerUserId="2126" LastActivityDate="2010-09-16T01:10:58.050" CommunityOwnedDate="2010-12-13T18:51:52.480" CommentCount="0" />
  <row Id="4206" PostTypeId="2" ParentId="1785" CreationDate="2010-09-16T01:12:36.427" Score="8" ViewCount="" Body="&lt;p&gt;True skill is reflected in the ability to execute a simple design well, not in the ability to make a complicated design work at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This skill comes from greater mastery of the fundamentals, not in mastery of the arcane. A high-caliber programmer isn't defined by their ability to code what others cannot (using higher level functions, advanced functional programming, what-have-you) but rather in their ability to refine perfectly mundane coding. Choosing the appropriate decomposition of functionality between classes; building in robustness; using defensive programming techniques; and using patterns and names that lead to greater self-documentation, these are the bread and butter of high-caliber programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing good code that you, or someone else, can come back to in a week a month or a year and understand how to use, modify, enhance, or extend that code is crucial. It saves you time and mental effort. It greases the wheels of productivity by removing roadblocks that you would have stumbled over before (perhaps interrupting your train of thought, or perhaps taking hours or days of effort away from other work, etc.) It makes it easier to concentrate on the hard problems, and sometimes it makes the hard problems go away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a word: elegance. Every class, every method, every condition, every block, every variable name: strive for elegance.&lt;/p&gt;&#xA;" OwnerUserId="2124" LastActivityDate="2010-09-16T01:12:36.427" CommunityOwnedDate="2010-09-16T01:12:36.427" />
  <row Id="4207" PostTypeId="2" ParentId="1785" CreationDate="2010-09-16T01:16:09.487" Score="0" ViewCount="" Body="&lt;p&gt;Design your code, and if your manager wants to use a RAD style approach try and get as many details as possible. Then when more functionality is added try and think if the existing code can be rewritten before just piling on more code and you end up with a highrise instead of a house.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-16T01:16:09.487" CommunityOwnedDate="2010-09-16T01:16:09.487" />
  <row Id="4208" PostTypeId="2" ParentId="616" CreationDate="2010-09-16T01:22:03.223" Score="1" ViewCount="" Body="&lt;p&gt;I'm a fan of changing my work location, even if for only a couple of hours.  Sometimes just a little nudge like that will help me see the problem/project with a different view.  My favorite spots are my deck, the library or a conference room with a whiteboard to myself. &lt;/p&gt;&#xA;" OwnerUserId="2127" LastActivityDate="2010-09-16T01:22:03.223" />
  <row Id="4209" PostTypeId="2" ParentId="4200" CreationDate="2010-09-16T01:26:30.087" Score="2" ViewCount="" Body="&lt;p&gt;One reason to do it in-house is because you are using data encryption technology that cannot be exported to certain countries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software can arguably be done faster, at higher quality and meet the customer's expectations better when a small, local team of developers is used that can communicate face-to-face using an iterative model.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The iterative model is arguably less effective with outsourcing; outsourcing requires more work developing requirements, using BDUF (big design up-front).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the application is large, and portions of the mundane stuff can be broken up into small, well-defined libraries, then outsourcing can be valuable for producing those pieces.  &lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-09-16T01:26:30.087" />
  <row Id="4210" PostTypeId="2" ParentId="492" CreationDate="2010-09-16T01:26:40.840" Score="7" ViewCount="" Body="&lt;p&gt;I'd bet that touch-typing is more important for the collaborative parts of my work than for the Technical parts.  I know some hunt and peck people who can type faster than some touch typists, but overall I've found that tho hunters tend to under communicate because typing is such a chore.    &lt;/p&gt;&#xA;" OwnerUserId="2127" LastActivityDate="2010-09-16T01:26:40.840" CommunityOwnedDate="2011-03-20T20:58:56.467" CommentCount="1" />
  <row Id="4211" PostTypeId="2" ParentId="4180" CreationDate="2010-09-16T01:33:00.527" Score="4" ViewCount="" Body="&lt;p&gt;Another programmer site with a &quot;jobs&quot; section is &lt;a href=&quot;http://jobs.github.com&quot; rel=&quot;nofollow&quot;&gt;http://jobs.github.com&lt;/a&gt;. I suppose the idea there is that your portfolio of Git repositories is part of your extended CV. Or, that it's attractive for employers because those who participate on Github might be a step above your average programmer.&lt;/p&gt;&#xA;" OwnerUserId="348" LastActivityDate="2010-09-16T01:33:00.527" />
  <row Id="4212" PostTypeId="2" ParentId="3974" CreationDate="2010-09-16T01:34:53.427" Score="0" ViewCount="" Body="&lt;p&gt;My experience working with American born female progs is positive, but most of the American born women I've worked with had &gt;10 years work experience. I think that given social pressures, if a woman isn't hacking it, she'll tend to drift into other allied fields. Unlike men who will drift job to job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Among Chinese or Indian women, they're about even with the men, I think largely because there seems to be less stigma attached from what I can see so you get a better cross section. (That's just from my perspective though).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I have seen though is that most women developers I've worked with prefer to remain individual contributors and avoid situations where they would be in the limelight/spotlight like they'd get cancer from it. I think it has to do with the idea that in most cultures most women still tend to be more focused on their families than men are, despite what NOW would have you believe. Even the most feminist woman I've worked with was way more focused on her family than any man I've worked with. I don't think there's anything wrong with it either... everyone needs to choose their own priorities.  &lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-16T01:34:53.427" CommunityOwnedDate="2010-09-16T16:16:52.033" />
  <row Id="4213" PostTypeId="2" ParentId="1785" CreationDate="2010-09-16T01:35:34.080" Score="0" ViewCount="" Body="&lt;p&gt;Run the code or logic in your head or paper first. Don't rush to hit the compile and run command to test it out.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-16T01:35:34.080" CommunityOwnedDate="2010-09-16T01:35:34.080" />
  <row Id="4214" PostTypeId="2" ParentId="1785" CreationDate="2010-09-16T01:38:07.210" Score="1" ViewCount="" Body="&lt;p&gt;Learn how to deploy your code, tests and software package well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the worst habits of developers I have seen in industry is a common ignorance of how to put your software in the hands of other people, here are some bad signs:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;New development environment-itus:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I wanted to learn Ruby so we wrote&#xA;our stuff in it, the customer and the&#xA;main build will have to pick up a&#xA;Ruby environment now&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Version-itus:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Our team moved to compiler version&#xA;X+1 because it's the latest, didn't&#xA;we tell anyone?&lt;/li&gt;&#xA;&lt;li&gt;We need library version Y, oh, your stuff doesn't work with that?&lt;/li&gt;&#xA;&lt;li&gt;We tested on a really old release, it doesn't work with the latest&#xA;build?&lt;/li&gt;&#xA;&lt;li&gt;We hacked a special version of kernel to get the release to work&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Binary-only-itus:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Our build environment is really&#xA;complicated, we'll just give you&#xA;binaries&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Multi-core-itus:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Disable SMP, our stuff only works on uniprocessor environment &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Hard-coded-feature-itus:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Uncomment this #define to enable feature X, what do you mean you want it at runtime?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2131" LastActivityDate="2010-09-16T01:38:07.210" CommunityOwnedDate="2010-09-16T01:38:07.210" />
  <row Id="4215" PostTypeId="2" ParentId="4200" CreationDate="2010-09-16T01:40:46.530" Score="17" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;An in-house team will be more responsive to your needs, since they're actually part of your company, so they have a better idea of what you want.&lt;/li&gt;&#xA;&lt;li&gt;An in-house team is easier to communicate with- nothing beats regular face-to-face contact.&lt;/li&gt;&#xA;&lt;li&gt;Your in-house team will have more domain-specific knowledge that an external team would have to learn.&lt;/li&gt;&#xA;&lt;li&gt;You're investing not just in the software, but in the expertise solving the types of software problems your company has.  Using your own developers builds up a stock of programmers who've dealt with those specific problems before.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(For counter-arguments, see &lt;a href=&quot;http://www.joelonsoftware.com/items/2007/12/04.html&quot; rel=&quot;nofollow&quot;&gt;Joel's take on it&lt;/a&gt;.)&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-16T01:40:46.530" CommentCount="5" />
  <row Id="4216" PostTypeId="2" ParentId="1785" CreationDate="2010-09-16T01:43:50.970" Score="1" ViewCount="" Body="&lt;p&gt;Simplicity, Clarity, Generality.  &lt;a href=&quot;http://www.math.harvard.edu/computing/programming/rules.html&quot; rel=&quot;nofollow&quot;&gt;http://www.math.harvard.edu/computing/programming/rules.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;build systems as networks of simple processes connected by sockets / pipes&lt;/li&gt;&#xA;&lt;li&gt;exchange data in a simple text format:  sets of records of &quot;key: value&quot; pairs, or TSV&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&quot;The most effective debugging tool is still careful thought, coupled with judiciously placed print statements.&quot;  BWK&lt;/p&gt;&#xA;" OwnerUserId="2137" LastActivityDate="2010-09-16T01:43:50.970" CommunityOwnedDate="2010-09-16T01:43:50.970" />
  <row Id="4217" PostTypeId="2" ParentId="358" CreationDate="2010-09-16T01:49:11.577" Score="5" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;HAI&#xA;CAN HAS STDIO?&#xA;VISIBLE Is worst language ever?&#xA;VISIBLE Is LOLCODE&#xA;KTHXBYE&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1461" LastActivityDate="2010-09-16T01:49:11.577" CommunityOwnedDate="2010-09-30T22:46:32.880" CommentCount="3" />
  <row Id="4218" PostTypeId="1" CreationDate="2010-09-16T01:54:13.043" Score="7" ViewCount="383" Body="&lt;p&gt;It's probably common knowledge that the number of reported bugs is not going to be the best indicator of this. What's the organizational equivalent of &quot;code smell&quot; that points to things not being done well software-wise that might ultimately end up biting your company in the ass?&lt;/p&gt;&#xA;" OwnerUserId="2131" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:23:17.730" LastActivityDate="2011-04-30T05:06:01.393" CommunityOwnedDate="2010-09-16T02:44:29.593" Title="How do you spot your company is not very good at software development?" Tags="&lt;recommendations&gt;&lt;organization&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="1" />
  <row Id="4219" PostTypeId="2" ParentId="4218" CreationDate="2010-09-16T01:56:46.903" Score="14" ViewCount="" Body="&lt;p&gt;Sales calls the shots, i.e. the schedule and the features.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-16T01:56:46.903" />
  <row Id="4220" PostTypeId="2" ParentId="3975" CreationDate="2010-09-16T02:01:25.610" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://wb.mysql.com/&quot; rel=&quot;nofollow&quot;&gt;MySQL Workbench&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1461" LastActivityDate="2010-09-16T02:01:25.610" />
  <row Id="4221" PostTypeId="2" ParentId="4218" CreationDate="2010-09-16T02:01:45.700" Score="5" ViewCount="" Body="&lt;p&gt;That the only real form of scheduling is the weekly bug status and triage meeting.&lt;/p&gt;&#xA;" OwnerUserId="2073" LastActivityDate="2010-09-16T02:01:45.700" CommentCount="1" />
  <row Id="4222" PostTypeId="2" ParentId="4218" CreationDate="2010-09-16T02:01:47.203" Score="14" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;If you &lt;em&gt;routinely&lt;/em&gt; find yourself writing a feature then never seeing it make it to production... you're churning away on things that ultimately bring 0 value and not making the stuff that brings value as good as it can be.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If no one on the &quot;business side&quot; cares one whit about the &quot;technical bits&quot;... especially if you're a software company. I've found that most successful projects I've been on, key stakeholders actually care to some level about the under the hood bits. Not at a detail level mind you, but at least at an overview level.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Hours worked... there certainly are times when you need to burn the midnight oil anywhere, but if you are doing it constantly, it's time to either figure out what &lt;em&gt;you&lt;/em&gt; are doing wrong, or find another job.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You know the guy who is always the &quot;hero&quot; when there's a problem is also the guy who created the problem in the first place.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The schedule is committed to clients before development or anyone in IT knows about it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Short of it... if there's a big disconnect between the technical people and the business people, you've got a problem.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-09-16T02:27:32.557" LastActivityDate="2010-09-16T02:27:32.557" CommentCount="1" />
  <row Id="4223" PostTypeId="2" ParentId="4180" CreationDate="2010-09-16T02:17:09.997" Score="1" ViewCount="" Body="&lt;p&gt;On one hand... if your potential boss is technical enough and smart enough to evaluate your contributions, then bring it on!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I hope in general that the answer is NO. The sites are too easily gamed if they're only going to go by rep count.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-16T02:17:09.997" CommentCount="2" />
  <row Id="4224" PostTypeId="2" ParentId="4218" CreationDate="2010-09-16T02:17:57.890" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Missed Deadlines&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Projects being over schedule and/or budget is one of the surest signs that they're being poorly managed (especially if it happens repeatedly)&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-16T02:17:57.890" />
  <row Id="4225" PostTypeId="2" ParentId="3975" CreationDate="2010-09-16T02:36:23.467" Score="1" ViewCount="" Body="&lt;p&gt;I edit the binaries in Photoshop. &lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-16T02:36:23.467" />
  <row Id="4226" PostTypeId="2" ParentId="3851" CreationDate="2010-09-16T02:51:19.727" Score="9" ViewCount="" Body="&lt;p&gt;When I was a team leader in a smallish shop, there were several folks who I had to have reassigned (neither I or my direct supervisor had termination capability without a ton of &lt;b&gt;Red Tape&lt;/b&gt; and a pile of documentation.) or to have no contract renewal at the end of the current engagement. Some of the types enumerated also worked for other team leaders, and they pretty much took the same view. &#xA;Things which took folks into the &quot;Bad Programmer&quot; category in my book:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Untrainable or Ossified in the past&lt;br&gt;&#xA;When the 'programmer' doesn't seem to be able to absorb the new system, new tool or whatever is being deployed, no matter how the training/education is done. Has to repeat said training on a frequent basis.&lt;br&gt;&#xA;When the 'programmer' only knows the technology or coding paradigm that they used 10 or 15 years ago. It was good enough then, so why should they change?&lt;/li&gt;&#xA;&lt;li&gt;Cowboy coder&lt;br&gt;&#xA;The person who codes first, without a plan. The 'programmer' who makes untested changes to the production code and/or data &quot;because we gotta get it fixed now&quot; and then is surprised when the &quot;fix&quot; fails.&lt;br&gt;&#xA;The Cowboy is also most definitely not a team player. Doesn't need no stinkin' team.&lt;/li&gt;&#xA;&lt;li&gt;The weather-vane&lt;br&gt;&#xA;This 'programmer' is enamored with the &quot;technology &lt;em&gt;du jour&lt;/em&gt;&quot; and sees every new framework, language, methodology or whatever is new and &lt;strong&gt;hot&lt;/strong&gt; as the &lt;/li&gt;&#xA;&lt;li&gt;The &quot;Big Brain&quot;&lt;br&gt;&#xA;This 'programmer' is so sure of his talent and capabilities that things are done which don't make a lot of project sense. &lt;em&gt;e.g.&lt;/em&gt; Rewriting a standard library &quot;because it is inefficient for our system&quot; or introducing tools and techniques not suitable for the problem at hand. &lt;em&gt;e.g.&lt;/em&gt; Introducing Lisp or Forth in a mainframe environment.&lt;/li&gt;&#xA;&lt;li&gt;LOC&lt;sup&gt; a.&lt;/sup&gt; Sandbagger&lt;br&gt;&#xA;This 'programmer' uses obfuscation and mis-direction to increase the  &lt;sup&gt;a.&lt;/sup&gt; LOC: &lt;em&gt;Lines of Code&lt;/em&gt; that get paid for. I have seen code in this situation that was was page after page, screen after screen of duplicate structure and logic, with only the paragraph or control variable names changed to pump up the line count.&lt;/li&gt;&#xA;&lt;li&gt;Indispensable Expert&lt;br&gt;&#xA;The 'programmer' who has the domain knowledge to solve the problems at hand, but since they &quot;know&quot; everything about it. As a matter of fact, if they were to be hit by a bus, then the whole organization would come crashing down. {&lt;em&gt;Observation:&lt;/em&gt; Those who think they are indispensable usually are. (Anyone got the source on this aphorism?)}&lt;/li&gt;&#xA;&lt;li&gt;The Pasta Chef&lt;br&gt;&#xA;This 'programmer' specializes in spaghetti code, spiced with identifiers that are just too hard to follow without a syntactically implemented IDE. &lt;em&gt;e.g.&lt;/em&gt; IndexI1O0, Index1I0O, etc.&lt;/li&gt;&#xA;&lt;li&gt;Summer Intern - Specifically subtype Walking Disaster&lt;br&gt;&#xA;My old shop used to hire a number of late high school or college age interns. One time a department needed a small database to track some equipment usage, (now this was waay back, and it was using dBase III). The guy coded along all summer, but was not done when college started in the fall. He got a one week extension then a second week.  At the end of the second week, I got sent out to take his project over and bring it back in to Systems Development to be finished. He showed me the stuff he had done, and then the unfinished part. What worked had nice eye candy, but the application &lt;b&gt;was&lt;/b&gt; incomplete. When I opened the new box of formatted floppies to get copies, he said, &quot;just a second, let me delete my test files...&quot; and before I could say anything, he'd deleted a bunch of files.&lt;br&gt;&#xA;Being the suspicious sort, and finding that his application was almost nothing but eye candy when I got back to my shop, I went back to the department and pulled out Norton and undeleted the files he'd deleted, trying to find some additional logic, even if incomplete.&lt;br&gt;&#xA;I found, not bad logic, but bad behavior. The printer attached to the PC he was using was a daisy wheel printer. The character set normally mounted was a swiss variant. The output of the deleted programs put out a name, address, DOB, some letter codes and some type of id number. The format and layout bothered me. All the birth dates for multiple people were barely legal drinking age. Most of the addresses were not there, when I looked them up in our criss-cross directory. When I showed the printouts to his supervisor, he looked at me and said &quot;Driver's licenses, don't you think?&quot; I said I did so. He said that was why he'd found the transparency stock all cut up in the trash next to the Xerox.  Our bad boy had made overlays to adjust his and and his friends ages on their drivers licenses. We reported it to the authorities. He was &lt;strong&gt;not&lt;/strong&gt; paid for his last two weeks.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;These are just some of the bad characters I have had to work with....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;/s/ BezantSoft&lt;/p&gt;&#xA;" OwnerUserId="2140" LastEditorUserId="2140" LastEditorDisplayName="" LastEditDate="2010-09-16T07:32:44.697" LastActivityDate="2010-09-16T07:32:44.697" CommunityOwnedDate="2010-12-13T18:51:52.480" CommentCount="1" />
  <row Id="4227" PostTypeId="2" ParentId="1180" CreationDate="2010-09-16T02:55:31.550" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C# because I can switch between it and Java with minimal effort&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;VB.NET is entirely different syntax.  C#, being similar to Java and other languages gives me a better position to quickly adapt to new things.  Since the output of C# and VB.NET are virtually interchangeable, it makes sense to go with C#.  Plus, if your company's code is in C#, you're more likely to be able to train a Java developer how to code C# than a Java developer VB.  There are only subtle advantages, but subtle is still an advantage.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-16T02:55:31.550" CommunityOwnedDate="2010-09-16T02:55:31.550" />
  <row Id="4228" PostTypeId="2" ParentId="3886" CreationDate="2010-09-16T02:59:58.150" Score="0" ViewCount="" Body="&lt;p&gt;I have the MacBook Pro with the backlight keyboard, so I prefer to program with the backlight turned all the way up, the screen brightness set to half, and all the lights in the room off. I took a programming class that was taught in a computer lab with florescent lights and could barely function in that room, let alone write decent code.&lt;/p&gt;&#xA;" OwnerUserId="2145" LastActivityDate="2010-09-16T02:59:58.150" />
  <row Id="4229" PostTypeId="2" ParentId="3974" CreationDate="2010-09-16T03:03:56.447" Score="4" ViewCount="" Body="&lt;p&gt;My experience with female programmers has been: there aren't enough of them!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, I've been doing this for 14+ years now working at 4 different places and worked with a grand total of maybe 8 to 10 female programmers out of some 200+ male colleagues. What is up with that?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aside from the utter lack of representation, as others have mentioned, the ratio of good-to-bad seems about the same as it is for males. I can't say that I've seen any evidence to suggest that female programmers are less likely to be good at the job.&lt;/p&gt;&#xA;" OwnerUserId="2142" LastActivityDate="2010-09-16T03:03:56.447" CommunityOwnedDate="2010-09-16T16:16:52.033" CommentCount="1" />
  <row Id="4230" PostTypeId="2" ParentId="4177" CreationDate="2010-09-16T03:06:13.007" Score="1" ViewCount="" Body="&lt;p&gt;I will first jump to Windows Batch, then pull up bash in my linux box.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For more complicated stuff, I honestly script in PHP. I know its bad bla bla bla but it gets the job done extremely quickly, and lets me be lazy. No static typing, no classes, no nothing. Just a few lines here and there and your done.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-16T03:06:13.007" />
  <row Id="4231" PostTypeId="2" ParentId="1180" CreationDate="2010-09-16T03:09:10.033" Score="3" ViewCount="" Body="&lt;p&gt;Here's a way of looking at it:&#xA;Between SO and CodePlex, which language is more popular? C# or VB.Net?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes, following the herd is a good thing because it's the herd that's going to be able to help you when you need it.&#xA;By default, C# will be faster than Vb.Net. I believe using Option Strict might equalize it though. The last time I compared IL between the two, VB.Net's type safety ended up adding about 15% more to the IL. This translates into extra overhead. AND... given languages that do basically the same thing, I'll take the faster one. My convenience should not override my user's experience in general.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-16T03:09:10.033" CommunityOwnedDate="2010-09-16T03:09:10.033" />
  <row Id="4232" PostTypeId="2" ParentId="4183" CreationDate="2010-09-16T03:11:00.897" Score="0" ViewCount="" Body="&lt;p&gt;I prefer to work 70% and rest to keep for learning new things.&lt;/p&gt;&#xA;" OwnerUserId="1564" LastActivityDate="2010-09-16T03:11:00.897" />
  <row Id="4234" PostTypeId="2" ParentId="4183" CreationDate="2010-09-16T03:41:51.680" Score="7" ViewCount="" Body="&lt;p&gt;On your first day: 99%&lt;br&gt;&#xA;After you discover stackoverflow.com: 70%&lt;br&gt;&#xA;After you discover meta.stackoverflow.com: 50%&lt;br&gt;&#xA;After you discover chat.meta.stackoverflow.com: 10%&lt;br&gt;&#xA;After you discover programmers.stackexchange.com: N/A&lt;br&gt;&#xA;After you discover careers.stackoverflow.com: GOTO 10&lt;/p&gt;&#xA;" OwnerUserId="94" LastActivityDate="2010-09-16T03:41:51.680" CommentCount="1" />
  <row Id="4235" PostTypeId="2" ParentId="4183" CreationDate="2010-09-16T03:54:37.157" Score="0" ViewCount="" Body="&lt;p&gt;Our team works between 9:30 AM till 8:30PM - 11 hrs, they spend 2 hrs for break. We were able to bill about 7 hrs per day. Their actual working ours is 8 hrs, as per our policy. But billing all the 8 hrs might not be possible. We work on Saturdays. So, total billable hours would be 42 hrs a week. So it comes to 63%. But the company average might be less than than.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-16T03:54:37.157" />
  <row Id="4236" PostTypeId="2" ParentId="616" CreationDate="2010-09-16T03:58:23.860" Score="0" ViewCount="" Body="&lt;p&gt;One of my client said, when he stuck on projects, he used to feel like someone is pulling down his trousers. That was fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I move out of the place, speak to people, read..mostly it worked when I come back to sit and solve.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-16T03:58:23.860" />
  <row Id="4237" PostTypeId="2" ParentId="1785" CreationDate="2010-09-16T04:04:53.253" Score="1" ViewCount="" Body="&lt;p&gt;Use the right tool for the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The programmer is the important element, and the language and tools should be chosen based on the problem. Don't be afraid of new languages and projects. &lt;/p&gt;&#xA;" OwnerUserId="2157" LastActivityDate="2010-09-16T04:04:53.253" CommunityOwnedDate="2010-09-16T04:04:53.253" />
  <row Id="4238" PostTypeId="2" ParentId="3851" CreationDate="2010-09-16T04:06:43.863" Score="5" ViewCount="" Body="&lt;p&gt;Someone who does not pay attention to the details and is always in &quot;it works, so I'm leaving it alone. All those exceptions in the logs don't matter&quot; mode.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-09-16T04:06:43.863" CommunityOwnedDate="2010-12-13T18:51:52.480" />
  <row Id="4239" PostTypeId="2" ParentId="2948" CreationDate="2010-09-16T04:14:31.150" Score="3" ViewCount="" Body="&lt;p&gt;It's been effective for me in teams of 3 and 5 people, and I've seen it used effectively for a team of event planners that had about 20 people in it.  You have to keep it short, you have to keep it moving.  It's fine if you sit but there shouldn't be any extra stuff (handouts, whiteboard, video, etc.)&lt;/p&gt;&#xA;" OwnerUserId="2159" LastActivityDate="2010-09-16T04:14:31.150" CommunityOwnedDate="2011-02-21T11:56:32.877" />
  <row Id="4240" PostTypeId="1" CreationDate="2010-09-16T04:22:26.777" Score="9" ViewCount="325" Body="&lt;p&gt;My goal in life is to get a good job where I can spend my time with the kids as they grow up.  I don't want a job were I work tirelessly at the office and never get to see them.  Of course I'll be getting paid less (Gross) than if I were to work a full 40 hours...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started on the Sysadmin side of the house (MCSE) and I discovered I worked endlessly with no hope for personal time.  In addition, I'd often have to work nights and weekends to manage upgrades and such.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the hope that more knowledge gives me more options; I taught myself C# programming and got my MCSD over the past 2 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you probably know the development world better than me, what is the best job role &amp;amp; industry combination that would work for a guy with my priorities?&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T20:38:35.947" LastActivityDate="2010-10-08T21:42:24.203" Title="What job &amp; industry is more likely allow me to work shorter days?" Tags="&lt;career&gt;&lt;free-time&gt;&lt;career-advice&gt;" AnswerCount="9" FavoriteCount="2" />
  <row Id="4241" PostTypeId="2" ParentId="4240" CreationDate="2010-09-16T04:32:50.687" Score="3" ViewCount="" Body="&lt;p&gt;I've known programmers that in wanting to work less hours got programming jobs working for the state.  From what I hear, the expectations are low, and people are always shoving off early.  They are also at a lower salary grade; raises are hard to come by when your budget is based on tax revenue.  In general, I usually see a correlation between level of pay and level of expectation.  I don't know if this a universal characteristic of US state jobs; probably a YMMV situation.&lt;/p&gt;&#xA;" OwnerUserId="1777" LastActivityDate="2010-09-16T04:32:50.687" CommentCount="1" />
  <row Id="4242" PostTypeId="2" ParentId="4240" CreationDate="2010-09-16T04:34:27.470" Score="1" ViewCount="" Body="&lt;p&gt;In my experience flexible work schedules would vary by company more than industry.  When looking for a job or during the interview you could ask if you'd be on an application support rotation or just on project development as well as try to understand their flexible scheduling policy.  If they do have a flexible schedule, they'll probably advertise it as a benefit.  With a larger company there may be more chance that if you did have to be on-call, you may not come up in the rotation as frequently.&lt;/p&gt;&#xA;" OwnerUserId="2164" LastActivityDate="2010-09-16T04:34:27.470" />
  <row Id="4243" PostTypeId="2" ParentId="1785" CreationDate="2010-09-16T04:36:37.427" Score="0" ViewCount="" Body="&lt;p&gt;Being Lazy and Reuse&lt;/p&gt;&#xA;" OwnerUserId="2165" LastActivityDate="2010-09-16T04:36:37.427" CommunityOwnedDate="2010-09-16T04:36:37.427" />
  <row Id="4244" PostTypeId="2" ParentId="4240" CreationDate="2010-09-16T04:40:27.820" Score="3" ViewCount="" Body="&lt;p&gt;Programming is wonderful for that.  Just go for it - be bold and tell companies you apply to that you are looking for 30hrs/week or whatever.  You'd be suprised how many companies will go for it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Life is just too short to kill yourself over a job.  In every big choice in life, stop and think... &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;'if I was on my deathbed right now,&#xA;  would I be happy that I chose to miss&#xA;  my kids 6th birthday party so that my&#xA;  boss could score some points with his&#xA;  boss and advance his career?'.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Its just not worth it.  Especially since most companies will show little or no loyalty back to you and cut your job the second they get a bad quarterly report.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-16T04:40:27.820" />
  <row Id="4245" PostTypeId="2" ParentId="4200" CreationDate="2010-09-16T04:40:34.807" Score="5" ViewCount="" Body="&lt;p&gt;If the software is to be used tactically or strategically or is core to your business, then having programmers who also understand the business can be key.  They also need to understand the support and life cycle and what will cost your company to support the systems after release.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think that cost is generally a real factor.  If someone claims it is, they're ignorant or lying.  If you outsource, you're paying someone else's profit margin on top of their costs.  Any savings due to geographic labor market differentials is usually quickly made up in increased cost of communication and education, and the rate differentials are not as large as they used to be, since the developing world is called that for a reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are lots of kinds of software out there.  In many cases, you can outsource something and be fine.  The problem is that that decision needs to be taken on a per case basis, and you cannot solve it in a one-size fits all situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure there are a million things to look for in the decision-making process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There would be cases where development of a well-specified yet core piece of software might easily be outsourced to a company who specialized in that kind of work - for instance a system-level thing like a device driver or web server might still be outsourced by a company who made an appliance and wanted to specialize on the user experience more than the building blocks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if you're going to be driving that web server in special ways and even though you have it well-specified, you are going to have this component tightly tied to major multi-phase development initiatives, you probably aren't going to want to outsource that.&lt;/p&gt;&#xA;" OwnerUserId="2163" LastActivityDate="2010-09-16T04:40:34.807" />
  <row Id="4246" PostTypeId="2" ParentId="4240" CreationDate="2010-09-16T04:43:40.700" Score="1" ViewCount="" Body="&lt;p&gt;Development will generally be less crazy hours than the sysadmin side, but it will depend on the company and role. Do not go into a start up if you value your time. You'll work longer hours and make less to boot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would look for Insurance, Accounting or other professional services firm to work for (but not medical). Freelancing may be a good option if you can get the right network and get one or two regular clients that give you steady work. I've known a couple of people that make it work for them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of all your possible careers, development is definitely one where you can have the most opportunity for flex time, as long as you get the right company to work for. Remote working a couple of days a week is also a possibility for many firms. Not having a commute is a big deal for some.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-16T04:43:40.700" CommentCount="3" />
  <row Id="4247" PostTypeId="2" ParentId="1039" CreationDate="2010-09-16T04:44:55.297" Score="2" ViewCount="" Body="&lt;p&gt;Professional memberships, magazines, books&lt;/p&gt;&#xA;" OwnerUserId="2163" LastActivityDate="2010-09-16T04:44:55.297" />
  <row Id="4249" PostTypeId="2" ParentId="4218" CreationDate="2010-09-16T04:56:14.213" Score="2" ViewCount="" Body="&lt;p&gt;When they do not care about the standard, development process and the quality&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-09-16T04:56:14.213" CommunityOwnedDate="2010-09-16T04:56:14.213" />
  <row Id="4250" PostTypeId="1" CreationDate="2010-09-16T04:56:54.330" Score="13" ViewCount="368" Body="&lt;p&gt;I'm sure many of us have seen method names like this at one point or another:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;UploadTheFileToTheServerPlease&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;CreateATemporaryFile&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;WriteTheRecordToTheDatabase&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;ResetTheSystemClock&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That is, method names that are also grammatically-correct English sentences, and include extra words purely to make them read like prose. Personally, I'm not a huge fan of such &quot;literal&quot; method names, and prefer to be succint, while still being as clear as possible. To me, words like &quot;a&quot;, &quot;an&quot;, and &quot;the&quot; just look plain awkward in method names, and it makes method names needlessly long without really adding anything useful. I would prefer the following method names for the previous examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;UploadFileToServer&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;CreateTemporaryFile&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;WriteOutRecord&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;ResetSystemClock&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In my experience, this is far more common than the other approach of writing out the lengthier names, but I have seen both styles and was curious to see what other people's thoughts were on these two approaches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, are you in the &quot;method names that read like prose&quot; camp or the &quot;method names that say what I mean but read out loud like a bad foreign-language-to-English translation&quot; camp?&lt;/p&gt;&#xA;" OwnerUserId="986" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:29:26.617" LastActivityDate="2011-02-09T20:30:14.863" Title="&quot;A&quot;, &quot;an&quot;, and &quot;the&quot; in method and function names: What's your take?" Tags="&lt;style-guide&gt;&lt;naming-conventions&gt;" AnswerCount="6" CommentCount="2" />
  <row Id="4251" PostTypeId="2" ParentId="4240" CreationDate="2010-09-16T04:59:52.223" Score="-1" ViewCount="" Body="&lt;p&gt;I think this will totally depend on your temperament in most larger shops.  If you scale back, typically the expectations (and salary) will scale back.  Any big shop has a mix of people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In smaller shops, this usually isn't an option.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll certainly be capping yourself either way, though, if you're saying you only want to put in 30-40 total career-related hours a week.  Just like the IT pro side, the development side changes rapidly and if you want to keep up, there is a ton of outside reading and work just to know where things are going, let alone how to actually use the new techniques and technologies.  I figure between work and non-work programming and reading (and forums), most of the people aiming to really accelerate their personal growth are doing at least 50-60 hours a week average - usually simply by giving up TV.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The younger the kids are, the more sleep they need, so the early bedtimes when they are young gives an opportunity to pick up the kids, get home, cook dinner, bath and then hit the computer like I did tonight (I also went out for ice cream and the supermarket with the daughter while my wife did open house for the son).  All this with about 10 hours work, too.  It ain't easy, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally you'd find a company who is family-friendly.  As a boss, I always pushed hard, but if someone had family commitments that came first no matter what.  I always expect people to give 100%, knowing that they could take pride in a workplace where they mattered and made a difference.  Most places will not show that loyalty back - that's all the more reason not to work at places like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also recommend glassdoor.com&lt;/p&gt;&#xA;" OwnerUserId="2163" LastActivityDate="2010-09-16T04:59:52.223" />
  <row Id="4252" PostTypeId="2" ParentId="4250" CreationDate="2010-09-16T05:09:29.973" Score="6" ViewCount="" Body="&lt;p&gt;From programmers perspective  &quot;UploadFileToServer&quot; makes more sense and easier to read and understand than &quot;UploadTheFileToTheServerPlease&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;More than English grammar, readability and understandability matters more in programming!  &lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-09-16T05:09:29.973" CommentCount="3" />
  <row Id="4253" PostTypeId="2" ParentId="4250" CreationDate="2010-09-16T05:12:10.337" Score="10" ViewCount="" Body="&lt;p&gt;To paraphrase Lawrence from Office Space...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;No, no, man, I do believe that if someone I worked with around&#xA;  here named a function&#xA;  'UploadTheFileToTheServerPlease', he'd&#xA;  get his a-- kicked, man.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-16T05:12:10.337" />
  <row Id="4254" PostTypeId="2" ParentId="4218" CreationDate="2010-09-16T05:19:51.080" Score="3" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;When the time taken to develop a project is less than the time to fix the bugs on the same.&lt;/li&gt;&#xA;&lt;li&gt;When upper management does not have a software background, and is ignorant of the issues involved.&lt;/li&gt;&#xA;&lt;li&gt;Test tools and processes are an afterthought.&lt;/li&gt;&#xA;&lt;li&gt;The employee attrition rate is increasing over time.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2168" LastEditorUserId="2168" LastEditorDisplayName="" LastEditDate="2010-09-16T05:38:16.890" LastActivityDate="2010-09-16T05:38:16.890" CommunityOwnedDate="2010-09-16T05:19:51.080" />
  <row Id="4255" PostTypeId="2" ParentId="4250" CreationDate="2010-09-16T05:24:06.007" Score="7" ViewCount="" Body="&lt;p&gt;Such &quot;long&quot; names &lt;strong&gt;do not sound like prose&lt;/strong&gt;.  When alone—perhaps, but accompanied with the rest of the code, they just make more of a mess.  Check it out:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;bool ResultOfTheUpload&#xA;      = UploadTheFileToTheServerPlease(TheNameOfTheFile, TheServersAddress);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Yuuuuk!..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't a valid English text, and in no programming language will it look like one.  So there's no sense in spending bytes on articles.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-16T05:24:06.007" CommentCount="3" />
  <row Id="4256" PostTypeId="2" ParentId="4250" CreationDate="2010-09-16T05:39:25.420" Score="16" ViewCount="" Body="&lt;p&gt;I'll agree that prose methods suck with one exception:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Unit Test Cases&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are generally never called in your code and show up in test reports.  As such, it's handy to have readouts with a bit more prose:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;AddingACustomerOrderFailWhenCustomersIdIsInvalid : Failed&lt;/li&gt;&#xA;&lt;li&gt;OutOfBoundsPriceReturnsAnError : Passed&lt;/li&gt;&#xA;&lt;li&gt;CanDeleteAnEventFromASeason : Passed&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Even this should be done sparingly, but I can see it as at least one case where grammatical additions can make it a little easier to express what passed and what failed.  This is, of course, unless your language/framework provides a good mechanism for test-descriptions in the test readout other than method names, in which case ignore this one too.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-16T05:39:25.420" CommentCount="2" />
  <row Id="4257" PostTypeId="2" ParentId="4250" CreationDate="2010-09-16T05:41:01.100" Score="2" ViewCount="" Body="&lt;p&gt;Given how many typos my life features, I'd end up with&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* UploadTehFileToTehServerPleaz&#xA;* WriteTehRecordToTehDatabase&#xA;* ResetTehSystemClock&#xA;* ICanHazTehCheezburger&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Seriously, I would even look at what my class name was as well.&#xA;If my class was called &quot;File&quot;, I would probably just go with &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;*UploadToServer&#xA;*DownloadFromServer&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So it would be&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;   File file = new file;&#xA;   file.UploadtoServer(ServerAddress);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Just a trivial example, but hopefully that's illustrative enough.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-16T05:41:01.100" CommentCount="1" />
  <row Id="4258" PostTypeId="2" ParentId="4218" CreationDate="2010-09-16T06:05:55.857" Score="3" ViewCount="" Body="&lt;p&gt;No source control, and no-one cares. 7-Zip is &lt;em&gt;not&lt;/em&gt; an acceptable substitute.&lt;/p&gt;&#xA;" OwnerUserId="562" LastActivityDate="2010-09-16T06:05:55.857" CommunityOwnedDate="2010-09-16T06:05:55.857" />
  <row Id="4259" PostTypeId="2" ParentId="4200" CreationDate="2010-09-16T06:09:50.643" Score="1" ViewCount="" Body="&lt;p&gt;Outsourcing (locally) makes sense if the company doesnt have the resources to do the development or the know-how to even start.  For example, a shoe company that wants to make an Android app.  There's not much point in them doing that in-house.  If its a software company, outsourcing a project doesnt make a lot of sense, though some gaps might be filled with outside contractors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's another form of outsourcing... buying up companies to obtain and rebrand their products.  That is, a larger company will search around for an existing product, buy it, and rebrand it as their own.  The net effect of that is essentially the same as outsourcing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For off shoring, thats not always the good financial decision that managers would want you to think.  There's too much domain knowlege (industry knowlege) required in most development that simply cant be 'bought' like that, and its extremely difficult to get a remote team to duplicate that with only a spec to guide them.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-16T06:09:50.643" />
  <row Id="4260" PostTypeId="2" ParentId="361" CreationDate="2010-09-16T06:16:17.337" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;Learn How to Program in 10 Years&lt;/a&gt;!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You've finished your degree. Congratulations! You're now ready to &lt;em&gt;start&lt;/em&gt; learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, don't worry about what you don't know. Hopefully the feeling that &quot;I know nothing about anything; the more I learn the less I know!&quot; will never go away. If it does, you'll know your brain's stopped working.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-16T06:16:17.337" />
  <row Id="4261" PostTypeId="2" ParentId="3519" CreationDate="2010-09-16T06:18:24.857" Score="2" ViewCount="" Body="&lt;p&gt;Get a broad overview of the language by reading the complete manual; seems tedious, but will give you a sweeping view of the language, even if you do not understand most of the part. This advice is in contract to what 'BioBuckyBall' says above, but if the language manual is small you can easily complete the book in a couple of days.The main point is to &quot;get&quot; the gist of the language; at some point in reading, the whole concept of the language just &quot;clicks&quot;!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next create a small project in the language in the domain you love. Initially do not try to dig deeper into the details. Usually if I'm learning a new language I try to create some functions or classes related to Statistics: like Standard Deviation and averages. This quickly gets me into arrays, iterations and data types. When learning a different language, again try these same examples, which will allow you to compare the syntax and semantics of the different languages on the same problem domain.&lt;/p&gt;&#xA;" OwnerUserId="2168" LastEditorUserId="2168" LastEditorDisplayName="" LastEditDate="2010-09-16T07:33:12.717" LastActivityDate="2010-09-16T07:33:12.717" />
  <row Id="4262" PostTypeId="2" ParentId="1785" CreationDate="2010-09-16T06:23:50.230" Score="1" ViewCount="" Body="&lt;p&gt;There is no crying in programming!&lt;/p&gt;&#xA;" OwnerUserId="2181" LastActivityDate="2010-09-16T06:23:50.230" CommunityOwnedDate="2010-09-16T06:23:50.230" />
  <row Id="4263" PostTypeId="2" ParentId="742" CreationDate="2010-09-16T06:44:08.497" Score="1" ViewCount="" Body="&lt;p&gt;I can only speak for myself, but yes, for me, the GeekDesk is great and worth every penny. Have had mine for a couple years now. The main advantage of motorized, though it sounds &quot;lazy,&quot; is that you can change positions &lt;em&gt;often&lt;/em&gt; and &lt;em&gt;easily&lt;/em&gt;, so...well... you DO. I use a few different chairs (all &amp;lt; $275) -- a no-name adjustable office/swivel chair, a bar stool, and a kneeling (aka &quot;balans&quot;) chair -- and change up my working position throughout the day. That helps a LOT (back / neck / shoulders, energy level, etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to get a nicer task chair eventually (preferably with headrest; no idea what brand yet), but I've got NO regrets on having upgraded the desk first. Highly recommended. &lt;/p&gt;&#xA;" OwnerUserId="2182" LastActivityDate="2010-09-16T06:44:08.497" />
  <row Id="4264" PostTypeId="2" ParentId="4218" CreationDate="2010-09-16T07:02:49.087" Score="7" ViewCount="" Body="&lt;p&gt;This is quite an interesting article:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;The Joel Test: 12 Steps to Better Code&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He goes on to say:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A score of 12 is perfect, 11 is&#xA;  tolerable, but 10 or lower and you've&#xA;  got serious problems. The truth is&#xA;  that most software organizations are&#xA;  running with a score of 2 or 3, and&#xA;  they need serious help, because&#xA;  companies like Microsoft run at 12&#xA;  full-time.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2186" LastActivityDate="2010-09-16T07:02:49.087" CommunityOwnedDate="2010-09-16T07:02:49.087" />
  <row Id="4266" PostTypeId="2" ParentId="4180" CreationDate="2010-09-16T07:38:40.613" Score="0" ViewCount="" Body="&lt;p&gt;I may do it, when I have a little bit more than 82 reps.&lt;/p&gt;&#xA;" OwnerUserId="1041" LastActivityDate="2010-09-16T07:38:40.613" />
  <row Id="4267" PostTypeId="1" AcceptedAnswerId="4323" CreationDate="2010-09-16T07:41:57.853" Score="7" ViewCount="333" Body="&lt;ol&gt;&#xA;&lt;li&gt;Basically I am looking for what is it that you goof up and you are out from the remaining process ?&lt;/li&gt;&#xA;&lt;li&gt;Are elimination rounds a fair way to judge a person ? Anyone can have a bad hour :-( &lt;/li&gt;&#xA;&lt;li&gt;Should you code the best possible or should you get the Algorithm right ? I generally first code a workable solution and then work on it till a level I think it looks beautiful to me. Is this a wrong approach ?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Recently I had a telephonic interview in which I was asked to write a variation of Level Order traversal in 20 minutes. I could get the Algorithm and working code in 20 minutes but couldn't get the Exception handling and the coding convention right, after which I didn't hear back from them :-( All the other questions in the interview went very well this was the only thing which was 'not upto the mark'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Needless to say I like the company and will apply again but want to get it right the next time :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please share your experiences and valuable suggestions.&lt;/p&gt;&#xA;" OwnerUserId="672" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:21:59.667" LastActivityDate="2010-09-18T21:21:59.667" Title="What top companies look for in an Interview ?" Tags="&lt;experience&gt;&lt;great-programmer&gt;&lt;interview&gt;&lt;top-companies&gt;" AnswerCount="2" FavoriteCount="3" />
  <row Id="4268" PostTypeId="2" ParentId="4200" CreationDate="2010-09-16T07:50:57.973" Score="1" ViewCount="" Body="&lt;p&gt;We only have a small internal team, and have only used small external teams, but the internally produced software has always been far better than the externally written software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Internally we use documented patterns, appropriate business layer logic (not just classes that call other methods in the data layer passing back a DataTable with no actual logic anywhere), and we have a library of code we can re use from other applications that fit within our domain.&lt;/p&gt;&#xA;" OwnerUserId="2195" LastActivityDate="2010-09-16T07:50:57.973" />
  <row Id="4269" PostTypeId="2" ParentId="4180" CreationDate="2010-09-16T07:54:47.803" Score="0" ViewCount="" Body="&lt;p&gt;I kinda figured people answered questions here to help the community and get involved a bit. I appreciate everyone who gives answers. But imo, no it won't help in general, and bad answers might hurt your chances.&lt;/p&gt;&#xA;" OwnerUserId="2198" LastActivityDate="2010-09-16T07:54:47.803" />
  <row Id="4272" PostTypeId="1" AcceptedAnswerId="4337" CreationDate="2010-09-16T07:58:25.453" Score="8" ViewCount="995" Body="&lt;p&gt;From time to time I have tried some monitors. My main work is coding (work, phd, etc). At work I have an LG Flatron L246WH which I highly recommend. However at home I have an LG W2363V with which I feel pretty uncomfortable when coding. Fonts, subpixels or whatever mess with my minds when using smooth fonts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently, what are the best monitors out there, to best fit our needs?&lt;/p&gt;&#xA;" OwnerUserId="2197" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T16:04:54.010" LastActivityDate="2010-10-02T16:04:54.010" Title="What are the best monitors for programming?" Tags="&lt;productivity&gt;&lt;monitor&gt;" AnswerCount="10" CommentCount="2" FavoriteCount="3" />
  <row Id="4273" PostTypeId="2" ParentId="3851" CreationDate="2010-09-16T08:00:01.147" Score="4" ViewCount="" Body="&lt;p&gt;Not willing to admit they don't know the answer and/or unwilling to look things up. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't know it, don't give up - figure it out and get it done.&lt;/p&gt;&#xA;" OwnerUserId="2198" LastActivityDate="2010-09-16T08:00:01.147" CommunityOwnedDate="2010-12-13T18:51:52.480" />
  <row Id="4274" PostTypeId="1" CreationDate="2010-09-16T08:03:31.180" Score="4" ViewCount="237" Body="&lt;p&gt;I'm an ASP.Net/C# programmer using SQL Server as a back end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am the Technical Director of the company, I'm extremely happy in everything I do and consider the languages and system we use to be perfect for what we do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the back of my mind though I know that over time programmers can become stale. I remember as a wee youngster that all those &quot;old&quot; developers were past it and couldn't keep up with the youngsters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So considering I'm happy in everything I'm doing. What options are there for keeping up with everything and avoiding becoming stale.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One particular idea that I use is to let all the new developers use and showcase the things that they think are cool. If anything catches my eye then absolutely it will be something we all use going forward.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thoughts?&lt;/p&gt;&#xA;" OwnerUserId="183" LastActivityDate="2010-11-08T10:15:57.557" Title="Should I change language to stop becoming stale?" Tags="&lt;programming-languages&gt;&lt;experience&gt;&lt;advice&gt;" AnswerCount="8" FavoriteCount="1" />
  <row Id="4275" PostTypeId="2" ParentId="3684" CreationDate="2010-09-16T08:09:38.187" Score="0" ViewCount="" Body="&lt;p&gt;I'm weird - I don't like &quot;cheat sheets&quot; made by other people...and my &quot;cheat sheets&quot; are just bits of code from my other code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;eg. connecting to a DB, I copy/paste. Or, some strange JQuery -- same thing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, originally I had to look it up, but once I add it to my &quot;cheat sheet&quot; organized how my brain wants things set up, it's a snap to find things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, imo, the &quot;best&quot; cheat sheet is one you make yourself. Personalized.&lt;/p&gt;&#xA;" OwnerUserId="2198" LastActivityDate="2010-09-16T08:09:38.187" CommentCount="3" />
  <row Id="4276" PostTypeId="2" ParentId="4274" CreationDate="2010-09-16T08:12:55.803" Score="11" ViewCount="" Body="&lt;p&gt;Learning many languages gives you different insights - different tools - into problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's very important to learn several &lt;em&gt;very&lt;/em&gt; different languages. Maybe a functional language (Scheme, Haskell), a object-oriented one (Smalltalk, Ruby), a concurrency-oriented one (Erlang), a logic programming one (Prolog) and and and.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The important thing here is that the languages shouldn't be more of the same. If you know C#, learning Java isn't going to teach you that much. If you know C, learning Pascal isn't going to expand your intellectual horizons.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-16T08:12:55.803" CommentCount="2" />
  <row Id="4277" PostTypeId="2" ParentId="4274" CreationDate="2010-09-16T08:21:00.497" Score="5" ViewCount="" Body="&lt;p&gt;To add to @Frank's answer: it's worthwhile learning new languages &lt;em&gt;even if you never intend to use them in your job&lt;/em&gt;. [*]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The important point is that learning a language you're not accustomed to (say, Haskell) makes you a better programmer in the one you use daily (C#). It helps you appreciate the difference between fundamental logic that applies to all programs versus idiosyncrasies in your day-to-day programming language that you've taken for granted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;([*] In fact, it's a bad idea to start checking in code in a language that you've only been using for a week.)&lt;/p&gt;&#xA;" OwnerUserId="1420" LastActivityDate="2010-09-16T08:21:00.497" />
  <row Id="4278" PostTypeId="2" ParentId="4127" CreationDate="2010-09-16T08:21:11.810" Score="2" ViewCount="" Body="&lt;p&gt;Objective C is different enough from C to make learning C pretty unnecessary, and in fact might just cause confusion when you move to Objective C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just go to Objective C.. It would probably be a few years before you needed to use any strict C.&lt;/p&gt;&#xA;" OwnerUserId="1724" LastActivityDate="2010-09-16T08:21:11.810" CommentCount="1" />
  <row Id="4279" PostTypeId="2" ParentId="3629" CreationDate="2010-09-16T08:24:35.473" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;A powerball helps to prevent/relieve keyboard wrist pain, and is a whole lot of fun to play with, even while reading stuff on the monitor.&lt;/li&gt;&#xA;&lt;li&gt;A &lt;a href=&quot;http://www.ikea.com/us/en/catalog/products/00103102&quot; rel=&quot;nofollow&quot;&gt;good chair&lt;/a&gt; (Ikea's MARKUS) is also invaluable when spending long lengths of time in front of the computer&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1771" LastActivityDate="2010-09-16T08:24:35.473" CommunityOwnedDate="2010-09-16T13:07:08.047" />
  <row Id="4280" PostTypeId="2" ParentId="492" CreationDate="2010-09-16T08:26:51.020" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes&lt;/strong&gt;, being able to type fast, &lt;strong&gt;without looking at keyboard &lt;em&gt;or&lt;/em&gt; screen&lt;/strong&gt;, definitely helps your productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;It doesn't matter how you type&lt;/strong&gt;, nor whether you use the same technique on words as on code, &lt;strong&gt;once it is without thinking&lt;/strong&gt;, but you're still aware of any mistakes so you can plan to fix them immediately.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-09-16T08:26:51.020" CommunityOwnedDate="2011-03-20T20:58:56.467" CommentCount="3" />
  <row Id="4281" PostTypeId="2" ParentId="4274" CreationDate="2010-09-16T08:31:32.193" Score="0" ViewCount="" Body="&lt;p&gt;According to the Pragmatic programmers you should learn one new language every year. This does help you avoid becoming stale. There are so many different mindsets to programming, and each language encourages you to view problems from a different angle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C# is a language that is rapidly evolving. It started as a simple OO language, then it developed a load of functional features (LINQ), and with C# 4 it has moved into the dynamic language realm. To fully embrace all these new ideas, it can really help to learn a language where that paradigm is the main focus of the language. This will give you the mental agiliy to fully utilise the relevant aspect of C# that will best solve your problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are now loads of langauges that you can learn without leaving the .Net framework. Learn F# to take on functional programming, IronRuby or IronPython for some dynamic programming. Boo for (whatever Boo is good at)... As its all in .Net these languages can talk directly to eachother, so you may be able to use them directly in your work.&lt;/p&gt;&#xA;" OwnerUserId="1724" LastActivityDate="2010-09-16T08:31:32.193" CommentCount="1" />
  <row Id="4282" PostTypeId="2" ParentId="4123" CreationDate="2010-09-16T08:31:40.977" Score="1" ViewCount="" Body="&lt;p&gt;The best way is thinking of using OPP to deal with changing requirements. When requirements are changed, OOP helps me dealing with minimum effort in modifying codes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(sorry for my poor English :)&lt;/p&gt;&#xA;" OwnerUserId="681" LastActivityDate="2010-09-16T08:31:40.977" />
  <row Id="4283" PostTypeId="2" ParentId="3974" CreationDate="2010-09-16T08:39:09.773" Score="0" ViewCount="" Body="&lt;p&gt;I used to have a couple of female classmates and they were great. Not only in doing their jobs but also for the change of atmosphere they caused. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I switched schools I no longer had female classmates and I didn't like it very much ;-)&lt;/p&gt;&#xA;" OwnerUserId="2206" LastActivityDate="2010-09-16T08:39:09.773" CommunityOwnedDate="2010-09-16T16:16:52.033" />
  <row Id="4285" PostTypeId="2" ParentId="539" CreationDate="2010-09-16T08:51:54.497" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Spectacular&lt;/strong&gt; in Textmate:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://grab.by/grabs/276dfe3590799662253043b60ecb765e.png&quot; alt=&quot;Screnshot&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="891" LastActivityDate="2010-09-16T08:51:54.497" CommunityOwnedDate="2010-09-16T13:10:40.707" />
  <row Id="4286" PostTypeId="2" ParentId="3684" CreationDate="2010-09-16T08:52:30.250" Score="0" ViewCount="" Body="&lt;p&gt;If you're a .NET Developer; get a copy of Sara Ford's book on Visual Studio: &quot;Microsoft Visual Studio Tips. 251 Ways to Improve Your Productivity&quot;&lt;/p&gt;&#xA;" OwnerUserId="2206" LastActivityDate="2010-09-16T08:52:30.250" />
  <row Id="4287" PostTypeId="2" ParentId="4127" CreationDate="2010-09-16T08:58:36.657" Score="1" ViewCount="" Body="&lt;p&gt;Start with Objective-C but never forget that all of C power is available. Many Objective-C programmers stick to Objective-C and  try to build constructs which would be far more elegant and simple in plain C. I think of basic arrays when you just need to store objets and don't need all of &lt;code&gt;NSArray&lt;/code&gt;: just use &lt;code&gt;id table[N];&lt;/code&gt; The same is true with frameworks and libraries. Sometimes, calling &lt;code&gt;system()&lt;/code&gt; is more efficient than using &lt;code&gt;NSTask&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-09-16T08:58:36.657" />
  <row Id="4288" PostTypeId="2" ParentId="4267" CreationDate="2010-09-16T09:15:03.537" Score="3" ViewCount="" Body="&lt;p&gt;When people ask you to code simple algorithms in a very limited amount of time, coding conventions and exception handling would be the last thing they look at.  Unless you're doing something awful, of course, like naming your traversing function &lt;code&gt;func&lt;/code&gt;, and all variables &lt;code&gt;a&lt;/code&gt;, &lt;code&gt;b&lt;/code&gt;, &lt;code&gt;c&lt;/code&gt;.  Perhaps, there was another reason why they didn't call you back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, anyone can have a bad hour.  But it's a bad sign if you're likely to have one bad hour out of those five you spend on several interview rounds, and if you can't get prepared to important actions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I think that getting something that works and improving it then is a wrong approach.  Many people (including me) think that if a person writes code that looks like a mess, he has a mess in his head as well.  I'd suggest you to write code slower, but in a more thoughtful way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And even more personally (and, perhaps, offensive), I don't think you're good enough at algorithms.  Solely because you spell it as &quot;the Algorithm&quot; with the capital A.  You don't spell something you're not afraid of like this.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-16T09:15:03.537" CommentCount="1" />
  <row Id="4291" PostTypeId="2" ParentId="3519" CreationDate="2010-09-16T09:32:12.460" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Read a book &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Write some code&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you have some doubts/problems then refer to Stack - Overflow &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Repeat&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-16T09:32:12.460" />
  <row Id="4294" PostTypeId="2" ParentId="4274" CreationDate="2010-09-16T09:37:36.813" Score="1" ViewCount="" Body="&lt;p&gt;I'm not a technical director, but if I became one, I would do this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd arrange certain fraction of working hours for side-projects where developers should write something neat using languages and tools, which are different from those you usually utilize.  I'm sure that you can find a program you need (but don't know that yet).  Here are some ideas:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ruby on Rails-based system that collects votes from team members for different pizza types, and automatically orders pizza according to the vote distribution.  Very useful when making a corporative party.&lt;/li&gt;&#xA;&lt;li&gt;If you start allocating your time between different projects, you surely may need a time tracking system that collects and analyzes how developers spend their working hours.  Say, implemented in C++?  (some our Perl programmers are actually doing this right now).&lt;/li&gt;&#xA;&lt;li&gt;A patch to the web-based bug tracking system you use that reflects your very specific way of managing bugs?  Oh, the system's implemented in Perl, but it's the whole point!&lt;/li&gt;&#xA;&lt;li&gt;...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you dig you can find a lot of &quot;useful&quot; programs that help developers in office.  Of course, you could just purchase them with full-time support, but you could as well use them as projects that prevent people from becoming stale.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-16T09:37:36.813" CommentCount="1" />
  <row Id="4295" PostTypeId="2" ParentId="4274" CreationDate="2010-09-16T09:38:56.900" Score="-3" ViewCount="" Body="&lt;p&gt;You're the Technical Director and you want to learn a new programming language ?!?  That's what you hire grunts like me for.  Upwards and onwards, learn management accounting, head for CEO.&lt;/p&gt;&#xA;" OwnerUserId="1704" LastActivityDate="2010-09-16T09:38:56.900" CommentCount="4" />
  <row Id="4296" PostTypeId="1" CreationDate="2010-09-16T09:47:06.283" Score="8" ViewCount="446" Body="&lt;p&gt;att, anyone has started the migration from Java to Scala? If yes, how do you do that?&lt;/p&gt;&#xA;" OwnerUserId="488" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-09-16T10:37:28.087" LastActivityDate="2011-01-01T17:35:53.720" Title="How do you encourage your organization to move from Java to Scala?" Tags="&lt;java&gt;&lt;scala&gt;&lt;migration&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="2" />
  <row Id="4297" PostTypeId="2" ParentId="3629" CreationDate="2010-09-16T09:48:34.627" Score="0" ViewCount="" Body="&lt;p&gt;A box or similar to raise my laptop. Who needs fancy stands?&lt;/p&gt;&#xA;" OwnerUserId="1698" LastActivityDate="2010-09-16T09:48:34.627" CommunityOwnedDate="2010-09-16T13:07:08.047" />
  <row Id="4298" PostTypeId="2" ParentId="4272" CreationDate="2010-09-16T09:51:06.260" Score="2" ViewCount="" Body="&lt;p&gt;I love both my monitor at work (&lt;strong&gt;Samsung 245T&lt;/strong&gt;) and at home (&lt;strong&gt;Dell U2410&lt;/strong&gt;).&lt;/p&gt;&#xA;" OwnerUserId="488" LastActivityDate="2010-09-16T09:51:06.260" />
  <row Id="4299" PostTypeId="2" ParentId="2148" CreationDate="2010-09-16T10:06:34.363" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Your child&lt;/strong&gt;, especially if you work at home and love your child :)&lt;/p&gt;&#xA;" OwnerUserId="488" LastActivityDate="2010-09-16T10:06:34.363" CommentCount="3" />
  <row Id="4300" PostTypeId="2" ParentId="2972" CreationDate="2010-09-16T10:08:22.067" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Mind_map&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;MindMapping&lt;/strong&gt;&lt;/a&gt; could help a lot. The tool is unimportant, but the ability to see connection between ideas is just natural.&lt;/p&gt;&#xA;" OwnerUserId="488" LastActivityDate="2010-09-16T10:08:22.067" />
  <row Id="4301" PostTypeId="2" ParentId="257" CreationDate="2010-09-16T10:10:10.037" Score="1" ViewCount="" Body="&lt;p&gt;Check your bank account every one in a while :)&lt;/p&gt;&#xA;" OwnerUserId="488" LastActivityDate="2010-09-16T10:10:10.037" />
  <row Id="4302" PostTypeId="2" ParentId="2148" CreationDate="2010-09-16T10:13:13.510" Score="5" ViewCount="" Body="&lt;p&gt;I think life-hacker illustrates it perfectly with this picture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/7YHcJ.jpg&quot; alt=&quot;http://lifehacker.com/5593523/deal-with-distractions-in-a-web-workers-world?skyline=true&amp;amp;s=i&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's from an &lt;a href=&quot;http://lifehacker.com/5593523/deal-with-distractions-in-a-web-workers-world?skyline=true&amp;amp;s=i&quot; rel=&quot;nofollow&quot;&gt;article&lt;/a&gt; about dealing with distractions.&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-16T10:13:13.510" />
  <row Id="4303" PostTypeId="2" ParentId="4272" CreationDate="2010-09-16T10:15:30.263" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Fonts, subpixels or whatever mess with my minds when using smooth fonts.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Depending on your OS/Applications there may be options (including or addon) to adjust the settings of sub-pixel rendering. Different panels have different sub-pixel layouts, and the rendering of the glyphs need to be set up to match the layout. The default matches common panels.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another option is to consider switching fonts. There are lots to chose from.&lt;/p&gt;&#xA;" OwnerUserId="542" LastActivityDate="2010-09-16T10:15:30.263" />
  <row Id="4304" PostTypeId="2" ParentId="4296" CreationDate="2010-09-16T10:20:05.807" Score="9" ViewCount="" Body="&lt;p&gt;Probably the easiest way is to first use Scala only for testing. In this case, you might even not have to tell your boss :-) If he asks, tell him &quot;that's just my private test case, it's so much easier and faster to use Scala for it&quot;. Once you (and your organization) has enough experience with Scala you can start using it for the 'real' code.&lt;/p&gt;&#xA;" OwnerUserId="2217" LastActivityDate="2010-09-16T10:20:05.807" CommentCount="2" />
  <row Id="4305" PostTypeId="1" AcceptedAnswerId="4318" CreationDate="2010-09-16T10:29:12.793" Score="5" ViewCount="417" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/1106/when-can-you-call-yourself-good-at-language-x&quot;&gt;When can you call yourself good at language X?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I'm enrolled in UG, how would I know that &quot;Yes !! I know &lt;em&gt;this&lt;/em&gt; language &quot;. If you're gonna say take the projects, then what kind of projects are we talking about here and where can I find them. Well I need generalized answer for everyone (like me) out there. &#xA;(For me its C, C++, Java)&lt;/p&gt;&#xA;" OwnerUserId="1368" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:20:38.060" LastActivityDate="2010-09-19T04:21:42.560" ClosedDate="2010-09-19T04:29:02.167" Title="How do I know that I know a language ?" Tags="&lt;programming-languages&gt;&lt;self-improvement&gt;" AnswerCount="10" CommentCount="3" FavoriteCount="1" />
  <row Id="4306" PostTypeId="2" ParentId="4305" CreationDate="2010-09-16T10:31:17.597" Score="6" ViewCount="" Body="&lt;p&gt;When I can answer some questions for that language on stackoverflow.com.&lt;/p&gt;&#xA;" OwnerUserId="488" LastActivityDate="2010-09-16T10:31:17.597" CommentCount="2" />
  <row Id="4307" PostTypeId="2" ParentId="4272" CreationDate="2010-09-16T10:32:30.837" Score="5" ViewCount="" Body="&lt;p&gt;As long as it's a widescreen monitor :) Not that I write extra-wide lines of code, but those toolboxes and stuff really eat up the workspace.&lt;/p&gt;&#xA;" OwnerUserId="1922" LastActivityDate="2010-09-16T10:32:30.837" CommentCount="1" />
  <row Id="4308" PostTypeId="2" ParentId="2192" CreationDate="2010-09-16T10:33:17.950" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Spent too much time programming&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you really like programming, spent too much time on it will eventually burn you out...&lt;/p&gt;&#xA;" OwnerUserId="488" LastActivityDate="2010-09-16T10:33:17.950" CommunityOwnedDate="2011-01-05T06:12:52.770" />
  <row Id="4309" PostTypeId="2" ParentId="257" CreationDate="2010-09-16T10:35:41.550" Score="3" ViewCount="" Body="&lt;p&gt;If you also use your working computer for other activities (e.g., gaming) try setting up a different account or workspace in it. Anything that creates a barrier between your current work set-up and a distraction will help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Letting people in the house know what you're doing is also paramount. Make them your allies!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Working at night certainly works best for me. No distractions around, generally quieter, etc.&lt;/p&gt;&#xA;" OwnerUserId="2120" LastActivityDate="2010-09-16T10:35:41.550" CommentCount="1" />
  <row Id="4311" PostTypeId="2" ParentId="1785" CreationDate="2010-09-16T10:48:10.167" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Binary&lt;/strong&gt; with basic understanding of signed and unsigned.&lt;/li&gt;&#xA;&lt;li&gt;Understand how any positional numeral system works.&lt;/li&gt;&#xA;&lt;li&gt;Understand how basic data structures are stored in memory.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2222" LastActivityDate="2010-09-16T10:48:10.167" CommunityOwnedDate="2010-09-16T10:48:10.167" CommentCount="1" />
  <row Id="4312" PostTypeId="2" ParentId="4296" CreationDate="2010-09-16T10:48:48.317" Score="4" ViewCount="" Body="&lt;p&gt;From the companies perspective it is better to stay with Java if there is no distinct advantage that they will get by migrating to Scala. It is easier for them to hire Java programmers to build and maintain the application. You might just leave after implementing everything in Scala :-) No offenses :-)&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-09-16T10:48:48.317" CommentCount="1" />
  <row Id="4313" PostTypeId="2" ParentId="4272" CreationDate="2010-09-16T10:48:51.303" Score="4" ViewCount="" Body="&lt;p&gt;More than one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm currently using one main monitor for coding (&quot;the work&quot;) and one to keep open &quot;related&quot; things (i.e. documentation, bug tracker, ...)&lt;/p&gt;&#xA;" OwnerUserId="1402" LastActivityDate="2010-09-16T10:48:51.303" />
  <row Id="4314" PostTypeId="2" ParentId="539" CreationDate="2010-09-16T10:55:09.440" Score="0" ViewCount="" Body="&lt;p&gt;I use default, in Geany. The only thing I turn off is code folding. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The time I save on using default color scheme I'm spending on keymap customization, including operating system and Compiz-Fusion key config. Did you know that Gnome can map keyboard layout change to Caps Lock?&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-09-16T10:55:09.440" CommunityOwnedDate="2010-09-16T13:10:40.707" />
  <row Id="4315" PostTypeId="2" ParentId="4272" CreationDate="2010-09-16T10:57:05.047" Score="0" ViewCount="" Body="&lt;p&gt;I have a HP w2448hc at work and I absolutely love it. Can't wait until my second one arrives next week. Very bright and very clear. Something you might dislike about it is that it is kinda shiny. &lt;/p&gt;&#xA;" OwnerUserId="2206" LastActivityDate="2010-09-16T10:57:05.047" />
  <row Id="4316" PostTypeId="2" ParentId="3732" CreationDate="2010-09-16T11:13:05.530" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Code with no comments&lt;/strong&gt; - what does this do? Why did you do like this? Why??&lt;/p&gt;&#xA;" OwnerUserId="1698" LastActivityDate="2010-09-16T11:13:05.530" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="2" />
  <row Id="4317" PostTypeId="2" ParentId="1785" CreationDate="2010-09-16T11:13:22.940" Score="4" ViewCount="" Body="&lt;p&gt;Coding style matters:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;consistent indentation matters,&lt;/li&gt;&#xA;&lt;li&gt;consistent use of white space (e.g. around operators) matters,&lt;/li&gt;&#xA;&lt;li&gt;consistent placement of { } s matters,&lt;/li&gt;&#xA;&lt;li&gt;well chosen identifiers matter,&lt;/li&gt;&#xA;&lt;li&gt;etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;... and good design matters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally, the programmer learns these things before (or during) his/her first code review.  In the worst case, the programmer learns them when the boss tells him/her to make some non-trivial changes to some horrible code in a hurry.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-09-16T11:13:22.940" CommunityOwnedDate="2010-09-16T11:13:22.940" />
  <row Id="4318" PostTypeId="2" ParentId="4305" CreationDate="2010-09-16T11:17:57.240" Score="13" ViewCount="" Body="&lt;p&gt;You may know a language at different levels. Let's generalize.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Beginner&lt;/li&gt;&#xA;&lt;li&gt;Intermediate&lt;/li&gt;&#xA;&lt;li&gt;Advanced&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Beginner&lt;/strong&gt; : You are a beginner if you &lt;strong&gt;know the constructs&lt;/strong&gt;. Say, how to write &lt;em&gt;for&lt;/em&gt;, &lt;em&gt;do...while&lt;/em&gt;, &lt;em&gt;if....else&lt;/em&gt;,  &lt;em&gt;functions&lt;/em&gt; etc&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Intermediate&lt;/strong&gt; : You are in intermediate stage if you can &lt;strong&gt;use&lt;/strong&gt; that language. Say, solve some programming problems with it, create small apps etc&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Advanced&lt;/strong&gt; : You are advanced if you know the &lt;strong&gt;ins and outs&lt;/strong&gt; of a language. say, you can interpret and understand compiler messages, write slick and efficient codes, you know how your compiler interprets your program, how does it generate/optimize codes you write, you know distinct styles, routines of that specific language etc&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="1994" LastActivityDate="2010-09-16T11:17:57.240" CommentCount="7" />
  <row Id="4319" PostTypeId="1" AcceptedAnswerId="5754" CreationDate="2010-09-16T11:31:59.300" Score="11" ViewCount="1071" Body="&lt;p&gt;Hi folks,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been learning touch-typing for about two weeks now, and I'm really commited to mastering this skill.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventhough I'm doing ok with prose already, I'm struggling with &lt;strong&gt;programming syntax&lt;/strong&gt; and even more with &lt;strong&gt;keybindings&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those stray you away from the home row more than regular words, and aren't as easy to practice. So I often hunt and peck in order to just get it out, but when reverting to old habits like this, I find it hard to get back into the touch-typing mindframe quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One little trick that has helped me so far when getting lost is to reposition every finger on its home row key, and mentally visualize the layout bias of the keyboard, ie the backslash kind of alignment of key columns. It's hard to describe though and probably a bit weird...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope you guys have better tips !&lt;/p&gt;&#xA;" OwnerUserId="2115" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:06:46.960" LastActivityDate="2010-10-17T07:00:54.857" Title="Which tips helped you learn touch-typing ?" Tags="&lt;learning&gt;&lt;keyboard&gt;&lt;typos&gt;&lt;touch-typing&gt;" AnswerCount="24" CommentCount="3" FavoriteCount="3" />
  <row Id="4320" PostTypeId="1" AcceptedAnswerId="4351" CreationDate="2010-09-16T11:34:06.313" Score="5" ViewCount="287" Body="&lt;p&gt;As you can see many thing mentioned &lt;a href=&quot;http://programmers.stackexchange.com/questions/2148/what-distractions-can-happen-during-programming&quot;&gt;here&lt;/a&gt; can distract a programmer and it &lt;a href=&quot;http://programmers.stackexchange.com/questions/2148/what-distractions-can-happen-during-programming/2171#2171&quot;&gt;takes time&lt;/a&gt; got catch the same rhythm. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can we avoid distraction or reduce productivity loss in a distraction?&lt;/p&gt;&#xA;" OwnerUserId="2227" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:06:02.700" LastActivityDate="2010-09-29T23:06:02.700" Title="What do you do to keep distractions away?" Tags="&lt;productivity&gt;&lt;distractions&gt;" AnswerCount="9" CommentCount="3" FavoriteCount="2" />
  <row Id="4321" PostTypeId="2" ParentId="539" CreationDate="2010-09-16T11:40:59.997" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I've tried to create a VS2010 theme that uses &lt;em&gt;consistency&lt;/em&gt; to inform color choices:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.hackification.com/2010/05/16/designing-a-vs2010-color-scheme-consistency-consistency-consistency/&quot; rel=&quot;nofollow&quot;&gt;http://www.hackification.com/2010/05/16/designing-a-vs2010-color-scheme-consistency-consistency-consistency/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Mmv0A.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The linked article describes &lt;em&gt;why&lt;/em&gt; I made the choices (as opposed to randomly picking colors from a hat).&lt;/p&gt;&#xA;" OwnerUserId="2229" LastActivityDate="2010-09-16T11:40:59.997" CommunityOwnedDate="2010-09-16T13:10:40.707" CommentCount="1" />
  <row Id="4322" PostTypeId="2" ParentId="3732" CreationDate="2010-09-16T11:41:16.317" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Having to program what other people tell me to.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I’d much rather follow my own whims and inspiration. But in this world we have to sell ourselves to an employer in order to not starve.&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-16T11:41:16.317" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="1" />
  <row Id="4323" PostTypeId="2" ParentId="4267" CreationDate="2010-09-16T11:44:03.190" Score="2" ViewCount="" Body="&lt;p&gt;When doing technical interviews, I'm honestly looking for people to hit a home run. If the candidate doesn't look like they know their stuff, they're not going to be effective in their role (I'm talking senior developers positions here).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look at it this way: Would you rather have a tough interview where you don't get the job (because you're not a good fit), or an easy interview where you &lt;em&gt;do&lt;/em&gt; get the job, but then get let go after 90 days because you're in over your head?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen far too many developers in the latter camp. If you didn't get the job because you flubbed the technical part, consider it a blessing in disguise. If you don't like rejection, bone up on your technical skills.&lt;/p&gt;&#xA;" OwnerUserId="378" LastActivityDate="2010-09-16T11:44:03.190" CommentCount="2" />
  <row Id="4324" PostTypeId="2" ParentId="539" CreationDate="2010-09-16T11:45:03.093" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Monokai&lt;/strong&gt; in Notepad++&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://img412.imageshack.us/img412/7440/nppe.jpg&quot; rel=&quot;nofollow&quot;&gt;http://img412.imageshack.us/img412/7440/nppe.jpg&lt;/a&gt;&lt;br&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/yJQqH.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;br&gt;&#xA;Pretty colours!&lt;/p&gt;&#xA;" OwnerUserId="1698" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-10-23T22:54:09.193" LastActivityDate="2010-10-23T22:54:09.193" CommunityOwnedDate="2010-09-16T13:10:40.707" CommentCount="1" />
  <row Id="4325" PostTypeId="1" AcceptedAnswerId="4336" CreationDate="2010-09-16T11:45:41.893" Score="11" ViewCount="464" Body="&lt;p&gt;I have never had the opportunity to work from home on certain days, but I would definitely like to try it if I can.  What are the pros and cons?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll list a few that I can think of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pros:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You don't need to do any work.  (That's a JOKE)&lt;/li&gt;&#xA;&lt;li&gt;You can be a lot more productive.  No commute, relaxed, no meetings, no interruptions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Cons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Less of a team effort.&lt;/li&gt;&#xA;&lt;li&gt;Other team members can get held up due to having to wait for information for an off-site member&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Apologies if this has been asked before - I did a search but couldn't find a pros and cons discussion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: It appears &lt;a href=&quot;http://theoatmeal.com/comics/working_home&quot; rel=&quot;nofollow&quot;&gt;The Oatmeal&lt;/a&gt; has already covered this! :-)&lt;/p&gt;&#xA;" OwnerUserId="221" LastEditorUserId="221" LastEditorDisplayName="" LastEditDate="2010-09-16T11:51:04.297" LastActivityDate="2010-11-05T07:59:23.280" Title="Pros and Cons of working Remotely/from Home" Tags="&lt;productivity&gt;&lt;home&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="6" />
  <row Id="4326" PostTypeId="2" ParentId="4319" CreationDate="2010-09-16T11:46:40.407" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Don't look at the keyboard!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just don't.  As a programmer, who've been coding for several ages, you already can touch-type.  You just &lt;em&gt;don't even try actually doing it&lt;/em&gt;, and look at keyboard to enter text.  As soon as you stop, you'll notice that you don't need any tricks.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-16T11:46:40.407" />
  <row Id="4327" PostTypeId="2" ParentId="4319" CreationDate="2010-09-16T11:51:18.477" Score="1" ViewCount="" Body="&lt;p&gt;During my initial days I would chat in Yahoo and other chat providers. This drastically increased my speed as well as  touch-type. &lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-09-16T11:51:18.477" />
  <row Id="4328" PostTypeId="2" ParentId="3732" CreationDate="2010-09-16T11:53:21.407" Score="4" ViewCount="" Body="&lt;p&gt;Typing...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...&lt;/p&gt;&#xA;" LastActivityDate="2010-09-16T11:53:21.407" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="2" />
  <row Id="4329" PostTypeId="2" ParentId="4319" CreationDate="2010-09-16T11:56:07.443" Score="1" ViewCount="" Body="&lt;p&gt;I got a &lt;a href=&quot;http://en.wikipedia.org/wiki/Microsoft_Natural_keyboard&quot; rel=&quot;nofollow&quot;&gt;Microsoft Natural Keyboard&lt;/a&gt;. The curved shape makes it much harder to type using a hunt-and-peck technique; it's more comfortable to put your fingers on the home keys, although it's harder to type at first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After using the natural keyboard regularly, my typing speed caught up with what it was before, and got quicker once I was actually touch typing. I use a standard keyboard now, but I never forgot how to touch type.&lt;/p&gt;&#xA;" OwnerUserId="1420" LastActivityDate="2010-09-16T11:56:07.443" />
  <row Id="4330" PostTypeId="2" ParentId="3974" CreationDate="2010-09-16T11:56:50.353" Score="1" ViewCount="" Body="&lt;p&gt;I've found they generally smell nicer than male programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from that, there's little difference. They tend to follow the same distribution of skill as male developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interesting side-note: The word &quot;computer&quot; was coined in World War 1, and was used to describe someone whose job was to receive radioed-in coordinates from artillery units in the field, perform the necessary geometric operations, and return a firing solution. These workers were universally female.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-09-16T11:56:50.353" CommunityOwnedDate="2010-09-16T16:16:52.033" />
  <row Id="4331" PostTypeId="2" ParentId="2757" CreationDate="2010-09-16T12:00:50.960" Score="31" ViewCount="" Body="&lt;p&gt;This is my current configuration:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://img6.imageshack.us/img6/5485/newmonitors.jpg&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I continue to &lt;a href=&quot;http://www.codinghorror.com/blog/2010/04/three-monitors-for-every-user.html&quot; rel=&quot;nofollow&quot;&gt;recommend a triple monitor setup&lt;/a&gt; because it gives you a &quot;center&quot;, and it's the practical sweet spot (or limit, if you will) for head turning anyway.&lt;/p&gt;&#xA;" OwnerUserId="37" LastActivityDate="2010-09-16T12:00:50.960" CommunityOwnedDate="2011-01-26T13:55:26.910" CommentCount="10" />
  <row Id="4332" PostTypeId="2" ParentId="1237" CreationDate="2010-09-16T12:01:53.873" Score="4" ViewCount="" Body="&lt;p&gt;When I've been working on a project for a while, I try keep one failing test. So my last act at the end of the day is to write at least the start of the test for my next feature (even if it's just a descriptive test name with &lt;code&gt;Self.Fail('ImplementMe');&lt;/code&gt;).&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-16T12:01:53.873" CommentCount="1" />
  <row Id="4333" PostTypeId="2" ParentId="4319" CreationDate="2010-09-16T12:05:23.160" Score="17" ViewCount="" Body="&lt;p&gt;You could always go with the &lt;a href=&quot;http://www.daskeyboard.com/model-s-ultimate/&quot; rel=&quot;nofollow&quot;&gt;Das Keyboard Ultimate&lt;/a&gt;, which has blank keys:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://www.daskeyboard.com/images/products/ultimate/1.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll either get better at typing fast, or get &lt;em&gt;really&lt;/em&gt; frustrated fast.&lt;/p&gt;&#xA;" OwnerUserId="37" LastActivityDate="2010-09-16T12:05:23.160" CommentCount="7" />
  <row Id="4334" PostTypeId="2" ParentId="4272" CreationDate="2010-09-16T12:06:50.093" Score="2" ViewCount="" Body="&lt;p&gt;When I'll get some cash I'll be on the market for a couple of LCDs with the following features, in decreasing order of importance :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a pivot for portrait mode (always lusted for this)&lt;/li&gt;&#xA;&lt;li&gt;at least 1080p (the more the better !)&lt;/li&gt;&#xA;&lt;li&gt;IPS panel (they are just better)&lt;/li&gt;&#xA;&lt;li&gt;LED backlit (ditto)&lt;/li&gt;&#xA;&lt;li&gt;at least 21 inches&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It would take a seriously bad manufacturer to produce such a screen that wouldn't be great for programming !&lt;/p&gt;&#xA;" OwnerUserId="2115" LastActivityDate="2010-09-16T12:06:50.093" />
  <row Id="4335" PostTypeId="2" ParentId="4325" CreationDate="2010-09-16T12:08:03.023" Score="6" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://theoatmeal.com/comics/working_home&quot; rel=&quot;nofollow&quot;&gt;Oatmeal's&lt;/a&gt; take on it.&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-16T12:08:03.023" CommentCount="2" />
  <row Id="4336" PostTypeId="2" ParentId="4325" CreationDate="2010-09-16T12:08:53.320" Score="15" ViewCount="" Body="&lt;p&gt;Pro:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;No commute.&lt;/li&gt;&#xA;&lt;li&gt;Unless you have annoying neighbours, your environment's as quiet as you like.&lt;/li&gt;&#xA;&lt;li&gt;If you have kids, you have the &lt;em&gt;option&lt;/em&gt; of seeing them during the day.&lt;/li&gt;&#xA;&lt;li&gt;You decide when best to work: maybe you're a night owl. Maybe you want to time-shift your work day into the evening so you can spend more time with your children.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Con:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you're the only person not colocated, you're left out. (&quot;Why's Foo not answering my mail?&quot; &quot;Dude, he resigned a WEEK ago. Didn't you hear? Oh. Noone thought to mail you!&quot;)&lt;/li&gt;&#xA;&lt;li&gt;You have to bring your own discipline to the party.&lt;/li&gt;&#xA;&lt;li&gt;It's tough to explain to your children just why you aren't available to play Lego.&lt;/li&gt;&#xA;&lt;li&gt;Cabin fever, if you're prone to it. (I'm not.) Some people just need to get out their domestic environments.&lt;/li&gt;&#xA;&lt;li&gt;Unless you're disciplined with your time, you can easily start working outside your required hours.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-09-17T07:21:17.530" LastActivityDate="2010-09-17T07:21:17.530" CommentCount="3" />
  <row Id="4337" PostTypeId="2" ParentId="4272" CreationDate="2010-09-16T12:10:17.327" Score="13" ViewCount="" Body="&lt;p&gt;The main thing you want to know is the type of panel -- is it TN, VA, or IPS?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2007/11/not-all-lcd-panels-are-created-equal.html&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/2007/11/not-all-lcd-panels-are-created-equal.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They all have strengths and weaknesses, but the TN has a lot of weaknesses and only one primary strength -- &lt;strong&gt;it's cheap&lt;/strong&gt;. Apple, for example, has NEVER to my knowledge ever shipped a TN LCD.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I strongly advise avoiding TN panels if you want to &lt;em&gt;invest&lt;/em&gt; in an LCD you won't mind keeping for a few years.&lt;/p&gt;&#xA;" OwnerUserId="37" LastActivityDate="2010-09-16T12:10:17.327" CommentCount="1" />
  <row Id="4338" PostTypeId="2" ParentId="4319" CreationDate="2010-09-16T12:10:23.847" Score="2" ViewCount="" Body="&lt;p&gt;Practice!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's really the best advice I can give.  Touch typing eventually becomes such a muscle memory thing, that you don't have to think about it much at all.  Just keep at it, and you'll get better over time.&lt;/p&gt;&#xA;" OwnerUserId="990" LastActivityDate="2010-09-16T12:10:23.847" />
  <row Id="4339" PostTypeId="2" ParentId="492" CreationDate="2010-09-16T12:14:59.367" Score="62" ViewCount="" Body="&lt;p&gt;Well, I &lt;a href=&quot;http://www.codinghorror.com/blog/2008/11/we-are-typists-first-programmers-second.html&quot; rel=&quot;nofollow&quot;&gt;said my piece on this&lt;/a&gt; here:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;When you're a fast, efficient typist, you spend less time between thinking that thought and expressing it in code.&lt;/strong&gt; Which means, if you're me at least, that you might actually get some of your ideas committed to screen before you completely lose your train of thought. Again.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Personally, I can't take slow typists seriously as programmers. When was the last time you saw  a hunt-and-peck pianist?&lt;/p&gt;&#xA;" OwnerUserId="37" LastActivityDate="2010-09-16T12:14:59.367" CommunityOwnedDate="2011-03-20T20:58:56.467" CommentCount="19" />
  <row Id="4340" PostTypeId="2" ParentId="4272" CreationDate="2010-09-16T12:15:04.113" Score="0" ViewCount="" Body="&lt;p&gt;I think having a stand that can lift the monitor up to the correct eye level is pretty important. Yes you can use a monitor stand but these take up desk space converting the footprint of an LCD back into that of a CRT.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know you can get desks that are split so you can have the front and back on different levels, but these are bl***y expensive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My old DELL FP2001's are ideal in this respect. They are now getting on for 10 years old and I'm getting some &quot;burn in&quot; and I'd like to replace them, but all the newer monitors I've seen don't have the height.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-16T12:15:04.113" />
  <row Id="4341" PostTypeId="1" AcceptedAnswerId="4356" CreationDate="2010-09-16T12:16:54.657" Score="11" ViewCount="516" Body="&lt;p&gt;I am student currently attending my fourth year at a Swedish university and will, if all goes well, take my Master's degree in Computer Science in winter of 2011. It is a respectable university, at least here, and am overall satisfied with my choice - both of university and major.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I've learned much in the courses I've attended, I am a bit concerned if what being taught is sufficient when moving from the safe practice grounds of the university to the volatile battlefields of industry. In truth, I would say more than half of my programming skills and soft- and hardware knowledge have been self-taught on my own spare time - either through projects initiated on my own accord or studying non-mandatory topics of material in conjunction with courses. Indeed, sometimes these &quot;off-topics&quot; have proven more interesting and valuable than the course material itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of programming skills, even less have been learned directly through university courses. To my knowledge, I don't know of a single course at my university which covers how to program efficiently. Sure, there are many courses in how to program in a particular language, several in how to write algorithms for solving a particular problem, as well as one in how to program under pressure, but none in how to &lt;em&gt;think&lt;/em&gt; about programming and how to approach problems in an efficient manner. Also, I encounter many students who have never concerned themselves with C or C++: languages heavily used in industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even after having written code in one form or another for 15 years, I still feel I have so much left to learn. In truth, the more I learn, the more ignorant I feel. All this leave me with a concern that, had I relied solely on what I've been taught at university, I would not be adequately equipped for facing the working market; and even with my spare time learning I am not sure my skills are adequate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this a common problem? Are programming skills and knowledge taught at university sufficient for industry? What experience have you employers had with new workers fresh from univeristy in terms of their knowledge and skills? Do you feel that they are adequate, or should the universities improve or revise their teachings?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt;&#xA;I originally asked this question on SO (&lt;a href=&quot;http://stackoverflow.com/questions/3720486/are-programming-skills-and-computer-knowledge-taught-at-university-sufficient-for&quot;&gt;http://stackoverflow.com/questions/3720486/are-programming-skills-and-computer-knowledge-taught-at-university-sufficient-for&lt;/a&gt;), but it was closed as it wasn't suitable for a Q&amp;amp;A website such as that. But I was recommended to post it here instead so I've simply copy-pasted the question.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T16:53:48.240" LastActivityDate="2010-11-16T15:22:52.423" Title="Are programming skills and computer knowledge taught at university sufficient for industry?" Tags="&lt;experience&gt;&lt;learning&gt;&lt;school&gt;&lt;skills&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="2" />
  <row Id="4342" PostTypeId="2" ParentId="4319" CreationDate="2010-09-16T12:19:14.073" Score="2" ViewCount="" Body="&lt;p&gt;Pressure&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Needing to be fast enough that I can hammer out a progress report 30 seconds before it is due, rather than wasting time I could be doing something actually useful with my time was a large motivator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an aside, I find that I don't really need to touch type when I'm writing code.  The transfer of code from brain to screen isn't the biggest bottleneck for me.&lt;/p&gt;&#xA;" OwnerUserId="2238" LastActivityDate="2010-09-16T12:19:14.073" CommentCount="2" />
  <row Id="4343" PostTypeId="2" ParentId="3974" CreationDate="2010-09-16T12:23:21.780" Score="0" ViewCount="" Body="&lt;p&gt;I think the distribution of female programmers has a lot to do with how daughters have been raised in a traditionally patriarchal and patronising society. For those women who do become programmers, or go into any profession that is traditionally male-dominated, I think something very &lt;em&gt;right&lt;/em&gt; must have been done in their upbringing, as they do not let superficial boundaries inhibit them from fulfilling their potentials in life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say that although we've made progress since the last century, there are still far too many homes where girls are condescended to and groomed away from any kind of intellectual pursuit, so professional aspirations among these girls is rapidly quenched (except in the rare case of an individual with a very strong sense of self, who knows what they want from life and won't let go). And I'm sorry to say it, but this has a lot to do with the belief that you can get by in life on the merits of your body alone, which, as long as certain men support that, will be at least partly true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: I'd also like to point out that this is by no means a new opinion; for example, Caitlin Kelleher's doctoral research at Carnegie Mellon created &lt;a href=&quot;http://alice.org/kelleher/storytelling/index.html&quot; rel=&quot;nofollow&quot;&gt;Storytelling Alice&lt;/a&gt; (a derivative of generic Alice), in which she had the particular idea of getting girls at a middle school level interested in programming.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-16T22:42:13.143" CommunityOwnedDate="2010-09-16T16:16:52.033" />
  <row Id="4344" PostTypeId="2" ParentId="4319" CreationDate="2010-09-16T12:25:36.700" Score="8" ViewCount="" Body="&lt;p&gt;For a lark I took a typing class in High School (many years ago now) and the class actually used something called a &quot;typewriter&quot; with actual paper rolled into them. :-)  Who would have known that it would end up as one of the most important classes that I ever took.  Seriously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The one thing I remember from that class was just the endless repetition.  Every class we would fill many pages with rows of letters and combinations of letters.  It was maddening at the time but really did help.  Once we went through the whole alphabet, we started with simple prose and worked up to transposing different types of documents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would keep at it.  I would use some sample code as something to practice with.  Find some code on the internet that looks interesting and instead of copy/paste (or downloading), type it all line by line.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is the type of skill that really does well with lots of repetition.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-16T12:25:36.700" CommentCount="6" />
  <row Id="4345" PostTypeId="2" ParentId="552" CreationDate="2010-09-16T12:28:22.527" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/D._Richard_Hipp&quot; rel=&quot;nofollow&quot;&gt;D. Richard Hipp&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as I know he is the only programmer who practice what every programmer says it the best practices in programming in a public project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SQLite is the best written code I ever have seen.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-16T21:27:27.840" LastActivityDate="2010-09-16T21:27:27.840" CommunityOwnedDate="2010-09-17T19:05:49.223" />
  <row Id="4346" PostTypeId="2" ParentId="2804" CreationDate="2010-09-16T12:29:16.697" Score="11" ViewCount="" Body="&lt;p&gt;When other people give me code, if it's just short snippets, I have to go through and do a little reformatting to fit my personal style preferences before I'm able to look at what they're doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also irks me when I'm helping people with something and their style is almost nonexistent.&lt;/p&gt;&#xA;" OwnerUserId="990" LastActivityDate="2010-09-16T12:29:16.697" CommunityOwnedDate="2011-03-15T08:09:28.653" CommentCount="4" />
  <row Id="4347" PostTypeId="2" ParentId="2148" CreationDate="2010-09-16T12:30:26.520" Score="1" ViewCount="" Body="&lt;p&gt;Anything that can distract me at any other time is able to distract me while programming.&lt;/p&gt;&#xA;" OwnerUserId="990" LastActivityDate="2010-09-16T12:30:26.520" />
  <row Id="4348" PostTypeId="2" ParentId="3732" CreationDate="2010-09-16T12:31:29.450" Score="5" ViewCount="" Body="&lt;p&gt;The evils of case sensitivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2005/12/the-case-for-case-insensitivity.html&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/2005/12/the-case-for-case-insensitivity.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If I had a nickel for every time Case-Sensitivity or Case-Insensitivity bit me, I'd have like seven or eight bucks. Seriously.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="37" LastActivityDate="2010-09-16T12:31:29.450" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="2" />
  <row Id="4349" PostTypeId="2" ParentId="4320" CreationDate="2010-09-16T12:35:47.993" Score="2" ViewCount="" Body="&lt;p&gt;If I really need to be focused, I work from home.  No noise (unless I'm playing some music).  No one dropping by your cube to say hi.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-16T12:35:47.993" />
  <row Id="4350" PostTypeId="2" ParentId="3732" CreationDate="2010-09-16T12:36:13.067" Score="19" ViewCount="" Body="&lt;p&gt;All these hot chicks throwing themselves at me once they find out &lt;em&gt;I write code for a living!&lt;/em&gt;  It can get so wearing at times, you know what I mean?&lt;/p&gt;&#xA;" OwnerUserId="698" LastActivityDate="2010-09-16T12:36:13.067" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="5" />
  <row Id="4351" PostTypeId="2" ParentId="4320" CreationDate="2010-09-16T12:39:21.013" Score="9" ViewCount="" Body="&lt;p&gt;Headphones with music.  Or sometimes just headphones on will deter anyone from bothering me-- no music necessary!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other times, I just turn off Outlook, Gmail, cellphone, and any other live feed of social media.  Basically I'm controlling when I'll check these kinds of feeds to a few times per day rather than every few minutes.&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-16T12:39:21.013" CommentCount="1" />
  <row Id="4352" PostTypeId="1" CreationDate="2010-09-16T12:46:39.957" Score="20" ViewCount="683" Body="&lt;p&gt;What project follows what every programmer says about programming best practices?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What project has good comments documenting the code properly and has good, clean, elegant and readable style, unit tests, code coverage, etc. extensively and properly?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And what about cohesiveness, correctness, reliability, efficiency (speed and memory consumption), maintainability, good understanding of the domain, architectural design?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's mainly about the code.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:53:49.237" LastActivityDate="2011-02-23T16:27:49.477" Title="What is the best written code you ever have seen on a public project?" Tags="&lt;style-guide&gt;&lt;code-quality&gt;" AnswerCount="9" CommentCount="10" FavoriteCount="11" />
  <row Id="4353" PostTypeId="2" ParentId="4320" CreationDate="2010-09-16T12:47:11.480" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/4476/&quot; rel=&quot;nofollow&quot;&gt;Leechblock&lt;/a&gt;. And headphones with electronica / dance music (no words).&lt;/p&gt;&#xA;" OwnerUserId="2242" LastActivityDate="2010-09-16T12:47:11.480" />
  <row Id="4354" PostTypeId="2" ParentId="4352" CreationDate="2010-09-16T12:47:20.300" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.sqlite.org/&quot; rel=&quot;nofollow&quot;&gt;SQLite&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-16T12:47:20.300" />
  <row Id="4355" PostTypeId="2" ParentId="4320" CreationDate="2010-09-16T12:52:33.417" Score="4" ViewCount="" Body="&lt;p&gt;Forbidding myself from going to StackOverflow, Programmers.StackExchange, or any other site like them (except for strictly research reasons... hrrm maybe this might not work afterall)&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-09-16T12:52:33.417" />
  <row Id="4356" PostTypeId="2" ParentId="4341" CreationDate="2010-09-16T12:58:35.283" Score="8" ViewCount="" Body="&lt;p&gt;What the university should teach you are basic skills, a good broad overview, and &lt;strong&gt;the ability to learn&lt;/strong&gt;. No one coming from any school will be fit for the workplace, but most of the time has a great tool set to work from - obviously this depends on the school and the workplace.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the fascinating things about our profession: we will never stop learning - at least if you don't want to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually people directly from university I worked with did not have the insight you seem to express here and were kind of know-it-alls.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many programmers don't use the 'right' algorithm - the fastest or most robust one for the problem at hand - but are more pragmatic. They learned about project management, and worst, about politics. Things rarely taught in universities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just keep humble and teachable and you will be flying in a short time.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-16T12:58:35.283" />
  <row Id="4357" PostTypeId="2" ParentId="4341" CreationDate="2010-09-16T12:58:39.877" Score="5" ViewCount="" Body="&lt;p&gt;I did not think that the college I attended prepared me sufficiently for a job in programming, however it did provide me with a good foundation. Most of what I do now is self-taught but the basic knowledge I learned in school combined with the resources it gave me was enough to give me a good starting point.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-09-16T12:58:39.877" />
  <row Id="4358" PostTypeId="2" ParentId="4325" CreationDate="2010-09-16T12:58:46.973" Score="0" ViewCount="" Body="&lt;p&gt;Well if you are in a position where you are leading a Project, you will be Missed. In such a situation your availability generally speeds up things. It is time consuming to clarify a few things on email. Otherwise generally good, saves travel time.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-09-16T12:58:46.973" />
  <row Id="4359" PostTypeId="2" ParentId="3974" CreationDate="2010-09-16T13:01:10.370" Score="0" ViewCount="" Body="&lt;p&gt;In my experience, the chance of finding a really good programmer in a small group of programmers is very very low. I find most of them won't even be &quot;average&quot; (sometimes I wonder if the word &quot;average&quot; is a misnomer in this case). If you sample from a (relatively) small group of random programmers, the chance of getting a very good programmer is practically nil, irrespective of gender. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where I live, seeing girls involved in programming (or even in the CS department of a university) is still pretty rare. So, it follows that finding a good one (programming wise that is :P) is unlikely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, I do know of at least one girl who is really good (much better than many male coders I know), and have seen some very good ones online (e.g. contributors to Open Source projects, coders at sites like TopCoder, SPOJ etc.)&lt;/p&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-09-16T13:01:10.370" CommunityOwnedDate="2010-09-16T16:16:52.033" />
  <row Id="4360" PostTypeId="2" ParentId="4341" CreationDate="2010-09-16T13:01:36.733" Score="2" ViewCount="" Body="&lt;p&gt;Programming skills taught at most universities are most certainly not sufficient from the industry's point of view. But should they be? I don't think so. I see university more as a place to &lt;strong&gt;gather knowledge, not skills&lt;/strong&gt;. There are lower level degrees to teach you more about the actual programming. What separates people with higher education from others is the deeper understanding of the theoretical aspects of the domain. Of course one could ask shouldn't the education aim to provide the society with professionals with skills they are going to need when working. But I think whatever you teach and however you do it, in any case &lt;strong&gt;most of the skills must be learned at the workplace&lt;/strong&gt;. And since there are so many programming languages and environments out there, I don't think picking one to teach would be very useful anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I have recently graduated and have been working as a programmer for some years, I understand your insecurity about your skills. But you don't need to worry. In my experience &lt;strong&gt;employers are not expecting you to be an expert programmer when you graduate&lt;/strong&gt;. What they expect is you to have the necessary &lt;strong&gt;basic knowledge&lt;/strong&gt;, which will help you in learning the skills you are actually going to need.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-16T13:01:36.733" CommentCount="3" />
  <row Id="4361" PostTypeId="2" ParentId="552" CreationDate="2010-09-16T13:02:53.687" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Why_the_lucky_stiff&quot; rel=&quot;nofollow&quot;&gt;why the lucky stiff&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While he was an enigma i do find he was a very nice breath of fresh air to the whole &lt;em&gt;programming community&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;/I3az/&lt;/p&gt;&#xA;" OwnerUserId="2245" LastActivityDate="2010-09-16T13:02:53.687" CommunityOwnedDate="2010-09-17T19:05:49.223" />
  <row Id="4362" PostTypeId="2" ParentId="3629" CreationDate="2010-09-16T13:07:08.047" Score="0" ViewCount="" Body="&lt;p&gt;Pen and paper ... a brain can help too sometimes ...&lt;/p&gt;&#xA;" OwnerUserId="2248" LastActivityDate="2010-09-16T13:07:08.047" CommunityOwnedDate="2010-09-16T13:07:08.047" />
  <row Id="4363" PostTypeId="2" ParentId="4320" CreationDate="2010-09-16T13:08:08.450" Score="0" ViewCount="" Body="&lt;p&gt;I listen to music mostly. When I need to be really focused I find this white-noise inspired pandora station to be particularly effective: &lt;a href=&quot;http://www.pandora.com/stations/a52646bc67130e65c5a5d7655195e57865a0e38f2e7a0c70&quot; rel=&quot;nofollow&quot;&gt;Ovals&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-09-16T13:08:08.450" />
  <row Id="4364" PostTypeId="2" ParentId="4180" CreationDate="2010-09-16T13:08:50.647" Score="11" ViewCount="" Body="&lt;p&gt;I can tell you that there &lt;em&gt;are&lt;/em&gt; certain employers who do care about your stack overflow reputation score, and will factor it into their hiring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do I know? Because those employers made me implement -- and I really didn't want to -- a reputation sort on &lt;a href=&quot;http://careers.stackoverflow.com&quot;&gt;http://careers.stackoverflow.com&lt;/a&gt;. It is not the default sort, though, because I insisted that it not be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, we always tell employers the same thing, that they should &lt;em&gt;look&lt;/em&gt; at the content and evaluate someone's merit based on more than a number; the number is just shorthand for a bunch of other factors.&lt;/p&gt;&#xA;" OwnerUserId="37" LastActivityDate="2010-09-16T13:08:50.647" CommentCount="3" />
  <row Id="4365" PostTypeId="2" ParentId="3974" CreationDate="2010-09-16T13:10:05.417" Score="1" ViewCount="" Body="&lt;p&gt;I only ever hired 2 and they were very good.  I only ever had to terminate male programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also worked with 2 programming non-programmers (data analysts) and they are pretty good, certainly compared to other people on the team.  On the data side (DBAs and data professionals), you do tend to see a lot more women than on the pure programming side.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If we generalize that sample, there are obviously no bad female programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given the programming population is overwhelmingly male, I'm actually surprised your sample is not more like mine, because you really do expect all but the most dedicated ones to be driven out.&lt;/p&gt;&#xA;" OwnerUserId="2163" LastActivityDate="2010-09-16T13:10:05.417" CommunityOwnedDate="2010-09-16T16:16:52.033" />
  <row Id="4366" PostTypeId="2" ParentId="539" CreationDate="2010-09-16T13:10:40.707" Score="0" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://studiostyles.info/schemes/son-of-obsidian&quot; rel=&quot;nofollow&quot;&gt;Son of Obsidian&lt;/a&gt; mostly. However I frequently get inspired and try something else out from &lt;a href=&quot;http://studiostyles.info/&quot; rel=&quot;nofollow&quot;&gt;Studio Styles&lt;/a&gt; from time to time. After a while though I tend to revert back to Son of Obsidian though.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-09-16T13:10:40.707" CommunityOwnedDate="2010-09-16T13:10:40.707" />
  <row Id="4367" PostTypeId="2" ParentId="3766" CreationDate="2010-09-16T13:12:51.430" Score="2" ViewCount="" Body="&lt;p&gt;If the boss is the kind that can be reasoned with, try to support your position with &lt;strong&gt;data&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735619670&quot; rel=&quot;nofollow&quot;&gt;Code Complete&lt;/a&gt;, for example, has a ton of citations with actual research and experimental data at least providing semi-scientific evidence for doing things a certain way rather than &quot;this influential guy on the internet says it's good&quot;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I point to him with whatever link I can find on the internet trying to prove my point, in the end he uses his authority to shut us out!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This doesn't bode well, however.&lt;/p&gt;&#xA;" OwnerUserId="37" LastActivityDate="2010-09-16T13:12:51.430" CommunityOwnedDate="2010-09-16T13:12:51.430" CommentCount="3" />
  <row Id="4368" PostTypeId="2" ParentId="4272" CreationDate="2010-09-16T13:15:33.207" Score="0" ViewCount="" Body="&lt;p&gt;I love the &lt;a href=&quot;http://www.dell.com/us/en/dfo/peripherals/monitor-dell-u2410/pd.aspx?refid=monitor-dell-u2410&amp;amp;s=dfo&quot; rel=&quot;nofollow&quot;&gt;Dell U2410&lt;/a&gt;, I have two of them at home. However at work I have 2 Philips 190S's and a &lt;a href=&quot;http://www.tomshardware.com/reviews/a-16-9-lcd-monitor,1211-22.html&quot; rel=&quot;nofollow&quot;&gt;Viewsonic VP231wb&lt;/a&gt;. The thing I've found is that it is important for me to have a monitor that can rotate to portrait. As long as I have a second monitor to the portrait monitor I find that the portrait rotation can be very useful for viewing code.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-09-16T13:15:33.207" />
  <row Id="4369" PostTypeId="2" ParentId="4325" CreationDate="2010-09-16T13:17:50.963" Score="4" ViewCount="" Body="&lt;p&gt;For me, the cons ended up outweighing the pros.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have two young kids, and they don't understand why Daddy can't come out to play with them right now.  He's HERE, isn't he?  Why doesn't he want to play with us?  Every step through the office door, even just to the bathroom, ended up with tantrums when I had to go back in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also found that my self-discipline was sorely lacking.  I wouldn't get as much done because of all the distractions like, oh, say, EVERY SITE ON THE INTERWEBS.  Much easier to let yourself go and slack off in that kind of environment, especially if you're stressed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things got much calmer around the house once I got into an office.&lt;/p&gt;&#xA;" OwnerUserId="1071" LastEditorUserId="1071" LastEditorDisplayName="" LastEditDate="2010-09-16T13:36:42.773" LastActivityDate="2010-09-16T13:36:42.773" CommentCount="4" />
  <row Id="4370" PostTypeId="2" ParentId="3886" CreationDate="2010-09-16T13:18:02.240" Score="3" ViewCount="" Body="&lt;p&gt;There's a substantive article on workstation lighting at Dan's Data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.dansdata.com/eclipse.htm&quot; rel=&quot;nofollow&quot;&gt;http://www.dansdata.com/eclipse.htm&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Glare happens when there are small things in your field of vision that are much brighter than the general scene. Such small light sources can't be handled well by your irises; your eyes' pupil size is matched to the overall scene illumination, and so small light sources will appear really bright and draw lines on your retinas. The more of them there are, and the brighter they are, the more work your eyes end up doing and the sooner they'll get tired.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Indirect lighting solves this problem. Indirect lights don't point straight at the thing you want lit. Instead, they point at a reflector, usually a wall or the ceiling, and the light that bounces off the reflector does the work of lighting the area. It's impossible to look straight at the light source itself.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The result is a nice wide diffuse field of illumination that won't give you glare problems, and won't cast sharp shadows either.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Indirect lighting is less efficient than direct - you lose a lot of intensity when you point your lights at the walls - but that's about the only reason not to like it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You want a lot of &lt;em&gt;indirect&lt;/em&gt; lighting, which is why I think a lot of programmers gravitate to darker rooms.&lt;/p&gt;&#xA;" OwnerUserId="37" LastActivityDate="2010-09-16T13:18:02.240" CommentCount="2" />
  <row Id="4371" PostTypeId="2" ParentId="4028" CreationDate="2010-09-16T13:20:00.733" Score="16" ViewCount="" Body="&lt;p&gt;For any legacy code base, the correct way to prepare yourself mentally for dealing with it is to &lt;strong&gt;start by writing unit tests for it&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether it sucks or not, you need to first have the confidence to be able to change it without breaking stuff!&lt;/p&gt;&#xA;" OwnerUserId="37" LastActivityDate="2010-09-16T13:20:00.733" CommentCount="4" />
  <row Id="4372" PostTypeId="2" ParentId="2148" CreationDate="2010-09-16T13:20:59.463" Score="1" ViewCount="" Body="&lt;p&gt;My distractions (in no particular order):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;StackOverflow (and more recently other stakexchange sites)&lt;/li&gt;&#xA;&lt;li&gt;chatting over IM&lt;/li&gt;&#xA;&lt;li&gt;SPOJ&lt;/li&gt;&#xA;&lt;li&gt;Google Reader / Hacker news&lt;/li&gt;&#xA;&lt;li&gt;friends (not the TV show)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;(The following distractions occur only at home, not work)&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;My 7 year old nephew (he raids my room whenever he fells like playing a game).&lt;/li&gt;&#xA;&lt;li&gt;Power Cuts (yes, I live in a developing country, where most people live :) ).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-09-16T13:20:59.463" />
  <row Id="4373" PostTypeId="2" ParentId="565" CreationDate="2010-09-16T13:24:43.103" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.developerdotstar.com/printable/mag/articles/reeves_design.html&quot; rel=&quot;nofollow&quot;&gt;What Is Software Design?&lt;/a&gt; by Jack W. Reeves&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-16T13:24:43.103" />
  <row Id="4374" PostTypeId="2" ParentId="552" CreationDate="2010-09-16T13:26:45.800" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;My undergrad computer science professor(s).&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Inspiring me, telling me cool stories about &quot;how you had to program on punch-cards back in the day, you have it so easy&quot;, staying late talking about programming problems in the lab, and generally showing me all the possibilities of software development.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, that person was and is Dr. Ross Grable:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Lw0Nx.jpg&quot; alt=&quot;Professors!&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-16T13:26:45.800" CommunityOwnedDate="2010-09-17T19:05:49.223" CommentCount="2" />
  <row Id="4375" PostTypeId="2" ParentId="779" CreationDate="2010-09-16T13:26:51.790" Score="16" ViewCount="" Body="&lt;p&gt;&quot;What animal would you be if you could be any animal you wanted to be?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was 20 years old then and I chose &quot;human&quot;, but that was an unacceptable answer.  They persisted, and I started to think they were a bit loopy.  A week later they offered me the job, which I later declined.&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-09-16T13:26:51.790" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="3" />
  <row Id="4376" PostTypeId="2" ParentId="3732" CreationDate="2010-09-16T13:28:40.617" Score="0" ViewCount="" Body="&lt;p&gt;In a way I agree with Mr. C's answer. I think the biggest downside are other &lt;strong&gt;programmers&lt;/strong&gt;. Not because I hate them, but because &lt;strong&gt;they are all the same&lt;/strong&gt;. In general, I dislike homogeneity and spending eight hours a day with people exactly like you is just plain boring. I want to be able to interact with different people. I'm thankfully in a good position in that I get to work also with our domain experts, most of whom are women. I believe that working in a pure IT company would be a nightmare.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-16T13:28:40.617" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="4" />
  <row Id="4377" PostTypeId="2" ParentId="565" CreationDate="2010-09-16T13:31:01.797" Score="2" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/APIWar.html&quot; rel=&quot;nofollow&quot;&gt;How Microsoft Lost the API War&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;by Joel Spolsky&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-16T13:31:01.797" CommentCount="2" />
  <row Id="4378" PostTypeId="2" ParentId="4325" CreationDate="2010-09-16T13:33:49.807" Score="1" ViewCount="" Body="&lt;p&gt;Cons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You have to provide your own tea,&#xA;coffee, and food, and wash your own&#xA;dishes, instead of making the most of&#xA;office freebies and the cleaning&#xA;lady.  &lt;/li&gt;&#xA;&lt;li&gt;Your household heating bills&#xA;are a lot higher in the winter.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1804" LastActivityDate="2010-09-16T13:33:49.807" CommentCount="1" />
  <row Id="4379" PostTypeId="2" ParentId="4325" CreationDate="2010-09-16T13:34:18.760" Score="2" ViewCount="" Body="&lt;p&gt;I don't see that many pros. I would say it's not for me, at least not regularly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pro:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You can have exactly the kind of work environment you like.&lt;/li&gt;&#xA;&lt;li&gt;No commute.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Con:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You are alone all day.&lt;/li&gt;&#xA;&lt;li&gt;Home becomes your workplace.&lt;/li&gt;&#xA;&lt;li&gt;I can't focus at home. There are simply too many others things to do.&lt;/li&gt;&#xA;&lt;li&gt;It's harder to ask for help if you get stuck.&lt;/li&gt;&#xA;&lt;li&gt;It's harder to communicate with your coworkers. You might miss something important said at the office.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-16T13:34:18.760" />
  <row Id="4380" PostTypeId="2" ParentId="4341" CreationDate="2010-09-16T13:36:18.770" Score="1" ViewCount="" Body="&lt;p&gt;I'm going to turn this around and say if &lt;strong&gt;all&lt;/strong&gt; you learned at your university was programming/computer skills, you would not be prepared to work in industry. Just like passing a certification test is not enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At a university there is a weeding-out process of getting rid of those without enough apptitude and effort (Unfortunately, you could add money as well.). We'd like to think they are there to teach, but that's not always the case. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is something to say about someone who has achieved a degree. It shows a level of dedication. Please don't confuse &lt;strong&gt;not&lt;/strong&gt; having a degree and &lt;strong&gt;can't&lt;/strong&gt; get a degree. Most computer professionals could probably go back to school and be a great student if given the money and time. Most don't see the point. That's why they have entrance requirements and don't just take everyone's money and water-down the department.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should be proud of what you've taught yourself. As Mark Twain said, &quot;Never let school get in the way of your education.&quot; Another student may have as good or better grades than you, but they will probably not get better recommendations or be as qualified.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-16T13:36:18.770" />
  <row Id="4381" PostTypeId="2" ParentId="565" CreationDate="2010-09-16T13:39:41.417" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://docs.sun.com/source/806-3568/ncg_goldberg.html&quot; rel=&quot;nofollow&quot;&gt;What Every Computer Scientist Should Know About Floating-Point Arithmetic&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(An easier explanation of the same thing at &lt;a href=&quot;http://www.johndcook.com/blog/2009/04/06/anatomy-of-a-floating-point-number/&quot; rel=&quot;nofollow&quot;&gt;Anatomy of a floating point number&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The title says it all.  If you're doing any math-oriented application, you will run into this.&lt;/p&gt;&#xA;" OwnerUserId="1622" LastActivityDate="2010-09-16T13:39:41.417" CommentCount="2" />
  <row Id="4382" PostTypeId="2" ParentId="3590" CreationDate="2010-09-16T13:40:56.343" Score="0" ViewCount="" Body="&lt;p&gt;I generally keep Pidgin on but not Facebook. Checking FaceBook is not really necessary in all the time, I can do that when I'm not working. I like keeping IMs open because it is a whole lot easier if I just have a simple thing to ask a co-worker than having to stop what I'm doing and walk to the other room, make him stop whatever he is doing, get the answer and then come back and try to go back to the mental state I was in before the question. As another answer pointed out, it is also better or when someone has to ask me something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also keep the IM on when I'm coding on a leisure project, usually from home. When at home, IM is the only useful means of communication with people I need for whatever it is I'm working on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do sometimes turn off the IM when I'm doing something really really urgent, tough or important (usually all three) or when interruptions from friends just saying hello starts getting annoying.&lt;/p&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-09-16T13:40:56.343" />
  <row Id="4383" PostTypeId="2" ParentId="1483" CreationDate="2010-09-16T13:56:47.473" Score="0" ViewCount="" Body="&lt;p&gt;I am from Bangladesh, and every single coder I know use English in their code. We even switch to English (or at least Bengali with lots of English words) when we talk about programming. This is true even for people who are otherwise not very comfortable in English. I have seen some people use Bengali for variable names and small comments, but that is always in very short scripts, throwaway programs, solutions to programming puzzles etc. and almost always as something of a joke intended to amuse the reader.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this is true for programmers in most non-english speaking countries. Most good books, tutorials, documentation are in English, as are the comments,docstrings and variable names in any code you can find. English is also the preferred language to communicate with other programmers from around the world. So IMHO learning and using English in an everyday basis is not something a programmer can easily avoid. It forms a base for the common culture of programmers everywhere.&lt;/p&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-09-16T13:56:47.473" CommunityOwnedDate="2010-09-16T13:56:47.473" />
  <row Id="4384" PostTypeId="1" AcceptedAnswerId="6035" CreationDate="2010-09-16T13:59:42.063" Score="19" ViewCount="1517" Body="&lt;p&gt;Tell us the story behind the project or task that made you most proud in your programming life, or that gained you a programmer hero status!&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-28T10:28:38.653" LastActivityDate="2010-11-19T19:26:39.787" Title="What’s the most heroic programming task you’ve accomplished?" Tags="&lt;experience&gt;" AnswerCount="28" CommentCount="12" FavoriteCount="9" />
  <row Id="4385" PostTypeId="2" ParentId="4384" CreationDate="2010-09-16T14:00:10.913" Score="29" ViewCount="" Body="&lt;p&gt;I ported a &lt;strong&gt;huge&lt;/strong&gt; DOS C application to Windows, basically by adding 3 files and leaving almost untouched the existing source code. The application was in “kiosk mode” – full screen with no access to the operating system shell – and served as a front end to a dummy serial connected hardware device.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The DOS application was the classical “infinite loop” that at each cycle polled for user input, checked the serial queue, displayed graphics and verified the completion of some dummy timers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main thread of the Windows version created a window and listened for keyboard input and other basic window messages, but also created a new worker thread that run the “infinite loop” (with 100% CPU occupation, but the scheduler does its job). All the keyboard input was put in a queue and the legacy code continued to call getc, but actually called my version of the function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The application used a commercial DOS graphic library, with bitmap fonts and so on, and I wrote a Windows version of the library to output to a GDI bitmap and a quite simple logic to display only the updated portion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I wrote an “Epson ESC printer” language emulator, and redirected the output to the Windows printer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, working for a month, I saved 10 years of development, introduced no regressions as the existing code was untouched, and the application gained access to all printers and Microsoft network. It was a relatively simple task to do, but I was regarded as a hero :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually, I also rewrote the timer logic so that the application stopped to loop when no timer was due and no serial and keyboard input was in the queue (so the CPU usage dropped to 1-2%).&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-22T09:12:30.627" LastActivityDate="2010-09-22T09:12:30.627" CommentCount="1" />
  <row Id="4386" PostTypeId="2" ParentId="4325" CreationDate="2010-09-16T14:00:31.390" Score="0" ViewCount="" Body="&lt;p&gt;I like the ability to do both, but most companies and/or managers just can't handle it. People are more likely to think you are working while sitting at your desk looking at Facebook than when you checkin great code on time. Personally, I'm not a 9-5 worker. I like to break it up. I have no problem spending several hours with my wife for dinner or just watching TV and getting a few hours of work in before going to sleep. And I like to take naps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your company has to give you access to a much software &amp;amp; services at home as you do at the office. Remoting into you work computer is nice, but not ideal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I miss having lunch and other personal interactions with coworkers while at home. I would prefer to have 1-2 days at the office.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-16T14:00:31.390" />
  <row Id="4387" PostTypeId="2" ParentId="3684" CreationDate="2010-09-16T14:02:51.253" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.quicklycode.com/&quot; rel=&quot;nofollow&quot;&gt;Quicklycode.com&lt;/a&gt; is the best website for cheat sheets and other resources for programmers&lt;/p&gt;&#xA;" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-19T18:09:42.347" LastActivityDate="2010-09-19T18:09:42.347" />
  <row Id="4388" PostTypeId="2" ParentId="3974" CreationDate="2010-09-16T14:09:07.493" Score="1" ViewCount="" Body="&lt;p&gt;I really can't say, since I'm the only female programmer I've ever worked with.  Gender, sex, religion or any related characteristic is not a correlation to how likely someone will be a sucky programmer or a good programmer - I think you just experienced a poor statistical sample. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Western society is getting better about encouraging women to explore the so-called &quot;male-dominated&quot; professions, so I think the distribution of the sexes regarding programming will even out slowly over time.  When I was in college, about 1 in 8 of the computer science students were female and about half of my instructors were female.  I was treated no different from my male classmates as far as work expectations.  Hearing stories of the things my mother was told regarding her intellectual ability when she was going through high school makes me feel very, very fortunate that I was able to pursue my career of choice with encouragement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also think the stereotype of all programmers being white, mouth-breathing, anti-social  males with obsessions with WoW and questionable personal hygiene is still prevalent.  When you're someone who doesn't fit the stereotype in the least bit, people notice you more when you screw up.&lt;/p&gt;&#xA;" OwnerUserId="95" LastActivityDate="2010-09-16T14:09:07.493" CommunityOwnedDate="2010-09-16T16:16:52.033" />
  <row Id="4389" PostTypeId="2" ParentId="67" CreationDate="2010-09-16T14:09:52.127" Score="0" ViewCount="" Body="&lt;p&gt;The other posts have basically covered all my other favourites (and then some). The only one I see missing is &lt;a href=&quot;http://www.catonmat.net/&quot; rel=&quot;nofollow&quot;&gt;Peteris Krumins' blog&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-09-16T14:09:52.127" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="4390" PostTypeId="2" ParentId="4320" CreationDate="2010-09-16T14:11:28.960" Score="0" ViewCount="" Body="&lt;p&gt;If you have a laptop and a spare meeting room, locking yourself away can help.  People don't know where to find you, your desk toys are out of arm's reach and being in a different environment reinforces the idea that you're there for a reason.  It's not a long-term solution, but helpful when you need to cram.&lt;/p&gt;&#xA;" OwnerUserId="2238" LastActivityDate="2010-09-16T14:11:28.960" />
  <row Id="4391" PostTypeId="1" AcceptedAnswerId="4393" CreationDate="2010-09-16T14:22:48.373" Score="6" ViewCount="277" Body="&lt;p&gt;I've programmed a bit of Haskell and Prolog as part of a couple of uni courses, but that's about it. And I've never seen it been used in industry (not that I've had much of working experience to begin with but I've never seen an ad where you are required to know them).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So should we be using functional and/or logic programming languages more often? Are there any advantages or disadvantages for using or not using them?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-16T15:08:29.563" Title="Should we be using functional and/or logic programming languages more?" Tags="&lt;programming-languages&gt;&lt;functional-programming&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="4392" PostTypeId="2" ParentId="4320" CreationDate="2010-09-16T14:25:15.663" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;https://chrome.google.com/extensions/detail/laankejkbhbdhmipfmgcngdelahlfoji&quot; rel=&quot;nofollow&quot;&gt;StayFocused&lt;/a&gt; - a Chrome plugin&#xA;&lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/4476/&quot; rel=&quot;nofollow&quot;&gt;LeachBlock&lt;/a&gt; - a Firefox plugin&lt;/p&gt;&#xA;" OwnerUserId="2260" LastActivityDate="2010-09-16T14:25:15.663" CommentCount="1" />
  <row Id="4393" PostTypeId="2" ParentId="4391" CreationDate="2010-09-16T14:29:52.650" Score="5" ViewCount="" Body="&lt;p&gt;I believe in using the right tool for the job. Both imperative and functional languages have their place and there's no need to push for using one kind more than the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the advantages/disadvantages, I don't think I could beat &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/&quot; rel=&quot;nofollow&quot;&gt;Eric Lippert&lt;/a&gt;'s answer to the &lt;a href=&quot;http://stackoverflow.com/questions/2835801/why-hasnt-functional-programming-taken-over-yet-closed&quot;&gt;&quot;Why hasn't functional programming taken over yet?&quot;&lt;/a&gt; SO question.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-16T14:29:52.650" CommentCount="3" />
  <row Id="4394" PostTypeId="2" ParentId="2051" CreationDate="2010-09-16T14:46:35.207" Score="1" ViewCount="" Body="&lt;p&gt;Make websites...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;without version control&lt;/li&gt;&#xA;&lt;li&gt;create them on the production server&lt;/li&gt;&#xA;&lt;li&gt;make changes using FTP direct to the production server&lt;/li&gt;&#xA;&lt;li&gt;start programming with no finalised idea of features or design&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2264" LastActivityDate="2010-09-16T14:46:35.207" CommunityOwnedDate="2010-09-16T14:46:35.207" CommentCount="1" />
  <row Id="4395" PostTypeId="2" ParentId="4384" CreationDate="2010-09-16T14:54:05.070" Score="10" ViewCount="" Body="&lt;p&gt;I was given 50,000+ lines of C++ (ATL) code and asked to write a spec for conversion to to Java. I had no experience in Java but was tasked because I was a C++ programmer at the time. Some of time client provided had already taken up by others and I had only 10 days left. Those 10 days were very stressful because the client contract depended on the spec being correct. The code had no documentation and little comments. Luckily the code was pretty clean. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We got the contract and I got an award. &lt;/p&gt;&#xA;" OwnerUserId="921" LastActivityDate="2010-09-16T14:54:05.070" CommentCount="3" />
  <row Id="4396" PostTypeId="2" ParentId="4384" CreationDate="2010-09-16T14:56:20.680" Score="10" ViewCount="" Body="&lt;p&gt;Back in the 80s when I couldn't own a PC, and I was starting to learn and hooked on BASIC (G/W, BASICA..). The only access was before and after lessons at school. Back at home, I kept a booklet where I literally wrote codes for my BASIC programs (yes with pencil). Though not perfect, the codes usually worked with minimal changes once I 'copied' onto the PC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Despite having done many more complex and larger software system in my 10 over years as a software engineer, none can beat the sense of satisfaction when I completed one mini flight simulation game written in BASIC which the objective is to navigate the plane to land on an aircraft carrier. Skeleton line-based graphics but was awesome to my eyes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: Nothing great to most guys but still my personal most heroic programming memory&lt;/p&gt;&#xA;" OwnerUserId="2262" LastActivityDate="2010-09-16T14:56:20.680" CommentCount="2" />
  <row Id="4397" PostTypeId="2" ParentId="4391" CreationDate="2010-09-16T14:57:08.580" Score="2" ViewCount="" Body="&lt;p&gt;A programming language is a form of representation of information. In this case instructions for the computer to follow. However, the representation also is important for the target audience (i.e. the programmers). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Functional/logical concept are not as commonly used in daily life as procedural concepts. If you read instructions (i.e. how to use your television, dvd player, or build some furniture from IKEA), they are mostly written in a procedural way (albeit in natural language).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, a lot of people that are not very deeply involved in math or sciences often are far more familiar with such procedural concepts than the logical or functional ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this has a lot of impact in the choice of which class of programming language is used. In the end, the set of problems that can be solved with any of such programming languages is pretty much the same (as long as they are all turing complete).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, a lot of procedural languages obtaining more and more facets of other concepts. Python can do lambda-calculus and closures, ruby as well. Javascript which is haevily used in industry is actually really a functional language (even most people &quot;misuse&quot; is by using it more in a procedural way). Therefore, it is really the task of the programmer to use those features appropriately where they fit.&lt;/p&gt;&#xA;" OwnerUserId="2261" LastActivityDate="2010-09-16T14:57:08.580" CommentCount="5" />
  <row Id="4398" PostTypeId="2" ParentId="4391" CreationDate="2010-09-16T15:08:29.563" Score="3" ViewCount="" Body="&lt;p&gt;First of all - because the compiler have to do much more. If you want to create imperative compiler you can nearly do 1-1 transformation to assembler and the code produced will have acceptable speed (sure - there could be much to do but it is 'basicly' 1-1 compilation + optimalisation). Functional compilers HAVE TO handle well heavy inlineing, tail-call optimalisation etc. Therefore implementation of functional languages were much slower then C/C++/... in past (however they gain much speed each iteration as compilers are getting better).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly - programmers are so used to state that they cannot 'accept' &quot;there is no spoo... state&quot; approach. Sure - the lack of state is not useful in each condition but the lack of (global) state does not mean lack of local state.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thirdly - functional programming have no nice story behind it. The OOP have nice story as the objects maps to nouns and how intuitive it is. Afterwards you know that it is not so simple because you cannot create a class &lt;code&gt;Manager&lt;/code&gt; as subclass of &lt;code&gt;Employee&lt;/code&gt; as &lt;code&gt;Employee&lt;/code&gt; may get promote to &lt;code&gt;Manager&lt;/code&gt; and you have to play around decorators. The functional programs have story in mathematics which is IMHO more useful but less marketable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As internally from the computer perspective - there is no difference between parallel and concurrent computing many programmers do not see a difference and many languages have the same primitives to handle both. Thank to lack of local state and lightweight threads in functional programming languages the parallelisation of algorithm is much easier. However concurrent programming is not made automatically easier as concurrency is about  global state.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally - there is a lot of older programs written in inperative style. Even porting from imperative language to imperative language is much simpler then to functional one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as I know investment banks start embracing the functional programs internally so they DO come into XXI c. (in very important although hidden area) - so they do gain momentum.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS. While I believe that functional programs are &quot;better&quot; in meaning they hide the complexity better then other approaches it does not mean that there are no areas such as scripts that are inherently imperative.&lt;/p&gt;&#xA;" OwnerUserId="103" LastActivityDate="2010-09-16T15:08:29.563" />
  <row Id="4399" PostTypeId="1" AcceptedAnswerId="4402" CreationDate="2010-09-16T15:22:23.090" Score="8" ViewCount="275" Body="&lt;p&gt;How much should programmers help testers in designing tests?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think they should help at all.  My worry is that if they help testers in designing tests for their own code, they'll 'infect' the testers with their own prejudices and blind spots about that code.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel that the requirements should be sufficient for giving the information needed for testers to create their tests.  If there is some part of the implementation that the programmers find worrisome, then I think it's their duty to implement unit tests to test that part or even run their own informal system tests to test that part.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not everyone I know agrees with this though (and I understand some of their points to a certain extent).  What do others think about this?  Is this discussed in the literature anywhere?&lt;/p&gt;&#xA;" OwnerUserId="2268" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T04:07:58.520" LastActivityDate="2010-12-17T18:20:53.327" Title="Should programmers help testers in designing tests?" Tags="&lt;team&gt;&lt;testing&gt;" AnswerCount="8" />
  <row Id="4400" PostTypeId="1" AcceptedAnswerId="4403" CreationDate="2010-09-16T15:23:24.350" Score="8" ViewCount="256" Body="&lt;p&gt;There are so many (good) programming blogs out there. Some of them are consistent in what they post - as in they stick to programming topics. Some of them occasionally post on other unrelated topics. Also, not every programming post might be relevant to me. I might have read one good post once, and not wishing to miss any future good ones - subscribed to the blog. Subscribing to too many blog feeds usually leads to just skimming through all of them (which takes time as well). Another option might be to subscribe to aggregators, like Hacker News - but that too has a huge rate of link accumulation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you manage if you wish to keep up with the programming blogosphere and still maintain a good signal to noise ratio?&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-09-16T22:39:48.067" Title="How do you deal with information overload?" Tags="&lt;information&gt;&lt;overload&gt;&lt;blogs&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="4" />
  <row Id="4401" PostTypeId="2" ParentId="4399" CreationDate="2010-09-16T15:31:02.873" Score="6" ViewCount="" Body="&lt;p&gt;I think there's room for developers and testers to coexist peacefully in the realm of QA. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More specifically, I think developers should be responsible for the first level of testing -- unit tests and basic integration tests to make sure that their stuff works in most cases before they hand it off to the testers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's up to the testers to create acceptance tests based on requirements that are completely agnostic of any implementation details (this is typically referred to as 'black box testing'). If there's a discrepancy in how testers and developers understand the requirements, it's a problem that should be addressed either by the project manager (if any) or by making sure everyone is on the same page back in the design phase of the feature.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-16T15:31:02.873" />
  <row Id="4402" PostTypeId="2" ParentId="4399" CreationDate="2010-09-16T15:32:27.910" Score="10" ViewCount="" Body="&lt;p&gt;I agree. Programmers can help the testers to understand the functional specs, to find resources for research but should not pollute the testers' minds with their own ideas about how to approach testing.&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-16T15:47:02.537" LastActivityDate="2010-09-16T15:47:02.537" CommentCount="1" />
  <row Id="4403" PostTypeId="2" ParentId="4400" CreationDate="2010-09-16T15:33:06.303" Score="9" ViewCount="" Body="&lt;p&gt;Here is the kicker... don't. To be honest I read most programming blogs for entertainment and really don't learn much from them. What you need to do is pick a topic &lt;em&gt;(In my case it is currently parser combinators.)&lt;/em&gt; then pick a language &lt;em&gt;(F#)&lt;/em&gt;. Then invoke your learning method:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Topic topic = new Topic(&quot;parser combinators&quot;);&#xA;Language language = new Language(&quot;F#&quot;);&#xA;bool bored = false;&#xA;while (!bored)&#xA;{&#xA;    Research research = DoSomeResearch(topic);&#xA;    Code code = WriteSomeCode(research, language);&#xA;    bored = Synthesize(research, code);  &#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-16T15:33:06.303" CommentCount="2" />
  <row Id="4404" PostTypeId="1" AcceptedAnswerId="4447" CreationDate="2010-09-16T15:45:53.190" Score="7" ViewCount="450" Body="&lt;p&gt;Looking back, I happened to have a unique teacher who included boolean algebra/binary arithmetic (base2, and/or operators) in elementary school (early 1980s).  I never realized until much later at Uni I then was learning minor foundations of programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't see anything like this in public US elementary curricula today.  Did you have any classes like this and would this not be a good elementary maths knowledge in today's digital age?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Interesting references to this topic:  &lt;a href=&quot;http://en.wikipedia.org/wiki/New_Math&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/New_Math&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="2274" LastEditorDisplayName="" LastEditDate="2010-09-28T23:48:55.800" LastActivityDate="2010-11-01T19:09:45.103" Title="Did you take Binary Arithmetic in elementary school?" Tags="&lt;learning&gt;&lt;school&gt;" AnswerCount="20" FavoriteCount="3" />
  <row Id="4405" PostTypeId="2" ParentId="4400" CreationDate="2010-09-16T15:48:03.170" Score="4" ViewCount="" Body="&lt;p&gt;I have a list of rss feeds that I go through with google reader.  If its something I'm interested in I'll skim the article and decide whether its worth reading or not.  If its something I want to read then I usually post it to delicious so that I can read it later, otherwise I just mark it has read and move on.  It tends to be a good way to build up a set of links for reading later. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can then take the links and run ChaosPandion's algorithm on them. :-)&lt;/p&gt;&#xA;" OwnerUserId="641" LastActivityDate="2010-09-16T15:48:03.170" CommentCount="4" />
  <row Id="4406" PostTypeId="2" ParentId="1785" CreationDate="2010-09-16T15:52:27.020" Score="4" ViewCount="" Body="&lt;p&gt;That there are -&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Other programming paradigms beyond just OO (object orientation)&#xA;2) Other better IDEs beyond Visual Studio (this one is especially for programmers who have worked only on Windows and only on MS technologies)&lt;/p&gt;&#xA;" LastActivityDate="2010-09-16T15:52:27.020" CommunityOwnedDate="2010-09-16T15:52:27.020" />
  <row Id="4407" PostTypeId="2" ParentId="4404" CreationDate="2010-09-16T15:53:01.763" Score="2" ViewCount="" Body="&lt;p&gt;Nope. I didn't have any binary arithmetic (none that I can remember anyway) until I got to comp sci-related classes in high school. It was in Russia, but still. I'm pretty sure high school in Canada also didn't cover anything binary.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-16T15:53:01.763" />
  <row Id="4408" PostTypeId="2" ParentId="4404" CreationDate="2010-09-16T15:53:19.047" Score="7" ViewCount="" Body="&lt;p&gt;No. And I won't advocate for it. It would be great for students at advanced level of their class but realistically for most students they already have a hard time keeping up with Decimal Arithmetic.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-16T15:53:19.047" CommentCount="5" />
  <row Id="4409" PostTypeId="2" ParentId="4404" CreationDate="2010-09-16T15:54:24.513" Score="2" ViewCount="" Body="&lt;p&gt;Aw, man.  My math classes didn't touch boolean logic or stray from base 10 until I was in college.  That would have been pretty sweet, though.  Put me down for &quot;No, but damn straight it'd be worth teaching today.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(FWIW, I graduated high school in '91, and spent all of my grade school years in Iowa.)&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-16T15:54:24.513" />
  <row Id="4410" PostTypeId="2" ParentId="4400" CreationDate="2010-09-16T15:58:23.833" Score="0" ViewCount="" Body="&lt;p&gt;If you have an iPhone, then give Instapaper a go. In your browser, you can say you want to read an article/blog/webpage later, and it'll add that to your account which syncs with your iPhone. You effectively then have a list of articles on your iPhone that you know you want to read. It means that you can read them away from your computer - great for when you're on the loo!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've recently started my own blog, and wrote an article about exactly this:&lt;br&gt;&#xA;&lt;a href=&quot;http://www.coderhell.com/2010/google-reader-instapaper-iphone-combo/&quot; rel=&quot;nofollow&quot;&gt;http://www.coderhell.com/2010/google-reader-instapaper-iphone-combo/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="600" LastActivityDate="2010-09-16T15:58:23.833" CommentCount="1" />
  <row Id="4411" PostTypeId="2" ParentId="4404" CreationDate="2010-09-16T15:59:07.493" Score="3" ViewCount="" Body="&lt;p&gt;I wish, but with the way the public school system is with no child left behind and spending more and more money on ESL there is no way they can do this.&lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-09-16T15:59:07.493" />
  <row Id="4412" PostTypeId="2" ParentId="4404" CreationDate="2010-09-16T16:02:16.570" Score="1" ViewCount="" Body="&lt;p&gt;I did binary arithmetic when I did an 'A' Level in Computer Studies in 1987 (A levels are a British qualification that are normally taken by 16-18 years before going to University). Can't remember much about it, now, though. I also remember being taught about punched cards and magnetic drum storage. We did our programming on Research Machines 380z computers running CP/M. Makes me feel old!&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-16T16:02:16.570" />
  <row Id="4413" PostTypeId="2" ParentId="4399" CreationDate="2010-09-16T16:05:31.617" Score="2" ViewCount="" Body="&lt;p&gt;I found myself in this weird position that I need to implement and write test cases in Selenium afterward since we're short on QA staff. I believe test-driven development would be extremely helpful but it's not adapted in my shop yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing I find writing tests helpful is that I find bugs when I write tests. I think in different perspective to help me write more robust code. But it's true that the test coverage could be limited. In this case, QAs can always let us know what they would like to be covered. Or, we can passively add more tests when we see errors.&lt;/p&gt;&#xA;" OwnerUserId="422" LastActivityDate="2010-09-16T16:05:31.617" />
  <row Id="4414" PostTypeId="2" ParentId="3974" CreationDate="2010-09-16T16:16:52.033" Score="0" ViewCount="" Body="&lt;p&gt;My girlfriend is a great developer, sometimes knowing that she is better developer than me makes me uncomfortable. She inspired me and gave great ideas lots of times when I was stuck with a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My brother's wife is is also developer, I never found a chance to see her works but since many companies want to work with her I assume that she is also very good at what she is doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;According to my experience female developers can be quite good or quite bad, when they are good they are better than males (same thing is true for when they are bad).&lt;/p&gt;&#xA;" OwnerUserId="1517" LastActivityDate="2010-09-16T16:16:52.033" CommunityOwnedDate="2010-09-16T16:16:52.033" CommentCount="3" />
  <row Id="4415" PostTypeId="2" ParentId="2804" CreationDate="2010-09-16T16:23:28.900" Score="0" ViewCount="" Body="&lt;p&gt;It bothers me to try to read/work with long functions. I detest scrolling so when someone writes a function that is long (usually 75 lines or more where it's longer than my screen size) I simple can't leave it along without doing refactor -&gt; extract method. If the function has a very large loop or conditional in it, there is no way I can fight off the urge to break it up.&lt;/p&gt;&#xA;" OwnerUserId="1801" LastActivityDate="2010-09-16T16:23:28.900" CommunityOwnedDate="2011-03-15T08:09:28.653" />
  <row Id="4416" PostTypeId="2" ParentId="3732" CreationDate="2010-09-16T16:36:28.770" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Why does it take such a long time to get a small change done?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="921" LastActivityDate="2010-09-16T16:36:28.770" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="1" />
  <row Id="4417" PostTypeId="2" ParentId="4400" CreationDate="2010-09-16T16:36:58.210" Score="0" ViewCount="" Body="&lt;p&gt;I have a tab on my main &lt;a href=&quot;http://netvibes.com&quot; rel=&quot;nofollow&quot;&gt;Netvibes&lt;/a&gt; dashboard that contains this site's RSS feed, then those from &lt;a href=&quot;http://stackoverflow.com&quot;&gt;StackOverflow&lt;/a&gt;, and many other Emacs- and free software-friendly sites.  I browse that while I'm having my morning tea.  At lunch I browse Wordpress.  I don't feel like it's overload at all.&lt;/p&gt;&#xA;" OwnerUserId="1935" LastActivityDate="2010-09-16T16:36:58.210" />
  <row Id="4418" PostTypeId="1" AcceptedAnswerId="4459" CreationDate="2010-09-16T16:38:24.020" Score="4" ViewCount="461" Body="&lt;p&gt;While hacking on some static analysis tool, I realized I could make the task at hand (irrelevant for this question) much easier by saving the source files on-the-fly, while they were being edited.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This seemed weird at first, but being a lazy cat I actually did it, and it turns out I find this pretty useful :   &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;no need to check if all files were saved before running a compiler/interpreter&lt;/li&gt;&#xA;&lt;li&gt;forces you to make granular commits much more regularly&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;My editor has been behaving this way for a couple of days, I never had such a clean commit history, and didn't get burned yet. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the days of DVCS when by saving we actually mean commit, do you think that manually saving files is still a relevant practice ?&lt;/p&gt;&#xA;" OwnerUserId="2115" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-10-12T01:51:05.213" LastActivityDate="2010-10-12T01:51:05.213" Title="Do we really need to save source code ?" Tags="&lt;version-control&gt;&lt;text-editor&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="1" />
  <row Id="4419" PostTypeId="2" ParentId="565" CreationDate="2010-09-16T16:38:26.490" Score="2" ViewCount="" Body="&lt;p&gt;Some simple things we just know, but why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://userweb.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html&quot; rel=&quot;nofollow&quot;&gt;Why numbering should start at zero&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-16T16:38:26.490" />
  <row Id="4420" PostTypeId="2" ParentId="4320" CreationDate="2010-09-16T16:39:54.567" Score="0" ViewCount="" Body="&lt;p&gt;Embrace the distraction for 5 minutes. I find that if I try to ignore a distraction, it'll bother me for longer than if I just got it over with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5 minutes isn't a lot of time to lose, and once it's over I feel that I don't need to think about whatever it was and I can work again.&lt;/p&gt;&#xA;" OwnerUserId="1732" LastActivityDate="2010-09-16T16:39:54.567" />
  <row Id="4421" PostTypeId="2" ParentId="4320" CreationDate="2010-09-16T16:48:21.640" Score="1" ViewCount="" Body="&lt;p&gt;Unplug the network cable.&lt;/p&gt;&#xA;" OwnerUserId="1591" LastActivityDate="2010-09-16T16:48:21.640" />
  <row Id="4422" PostTypeId="2" ParentId="3974" CreationDate="2010-09-16T16:51:27.727" Score="2" ViewCount="" Body="&lt;p&gt;I know at least two female programmers who are totally indoctrinated with Java, and are very dogmatic.  They see Java as the one true way.  I don't at all attribute that to their sex or gender, but to who they have learned from (mostly very misinformed people).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, my advisor is not dogmatic, could be called a programmer and is a brilliant scientist.  And she's a woman.  I'm not.  I agree with XKCD, it happens too much and people are too willing to answer the question (of whether gender affects aptitude) by giving random examples of a few people they know.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also agree with &lt;a href=&quot;http://programmers.stackexchange.com/questions/3974/whats-your-experience-with-female-programmers/3976#3976&quot;&gt;Chinmay&lt;/a&gt; that most so-called &quot;programmers&quot; are not very knowledgeable and tend to emphasize the concrete aspects of the work.  The scientists I know, on the other hand, who happen to make programming a large part of their work, are very good programmers.  At least half of them are women.&lt;/p&gt;&#xA;" OwnerUserId="1935" LastActivityDate="2010-09-16T16:51:27.727" CommunityOwnedDate="2010-09-16T16:51:27.727" />
  <row Id="4423" PostTypeId="2" ParentId="4400" CreationDate="2010-09-16T16:52:12.700" Score="1" ViewCount="" Body="&lt;p&gt;Except for a very select group of people, namely, Joel Spolsky, Paul Graham, and Jeff Atwood, I don't read &lt;strong&gt;any&lt;/strong&gt; programming blogs.  Waste of time.  I just read books.  (And the first two people I mentioned are published authors whose blog entries have ended up in books.)&lt;/p&gt;&#xA;" OwnerUserId="2268" LastActivityDate="2010-09-16T16:52:12.700" />
  <row Id="4424" PostTypeId="2" ParentId="4352" CreationDate="2010-09-16T16:52:45.007" Score="1" ViewCount="" Body="&lt;p&gt;A nice example in python is Task Coach: &lt;a href=&quot;http://www.taskcoach.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.taskcoach.org/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a medium-ish sized GUI app written with wxPython that is pretty easy to figure out.  It has a logically laid out directory structure that is commented but not overly so.  It uses meaningful variable names rather than commentary to be understandable.  It is nicely OO and uses several design patterns to reduce coupling, includes code coverage and lots of testing (heavy emphasis on unit testing, somewhat lighter on integration and system testing), uses i18n to support 40 languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a code that is small enough to study but large enough to see how it would apply to a really big project.&lt;/p&gt;&#xA;" OwnerUserId="2270" LastActivityDate="2010-09-16T16:52:45.007" />
  <row Id="4426" PostTypeId="2" ParentId="4404" CreationDate="2010-09-16T16:59:04.103" Score="1" ViewCount="" Body="&lt;p&gt;I did, but I was mostly homeschooled and my dad was my teacher :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also got something like this once I went to college, although to be fair the degree I was going for was programming-related.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think it would be good for the public school systems today because a lot of kids are lost enough with math and it would just confuse them further. Perhaps if you were in some kind of computer class in school it might be worth teaching, but not regular Math.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-09-16T16:59:04.103" CommentCount="3" />
  <row Id="4428" PostTypeId="2" ParentId="4418" CreationDate="2010-09-16T17:07:19.527" Score="2" ViewCount="" Body="&lt;p&gt;Auto Saving has been in some IDEs for quite some time.  It is a must-have feature IMHO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would not be in favor of auto commit to source control because I do not commit changes until I have at least done a build and seen the app spin up and where appropriate, run my automated tests.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-16T17:07:19.527" CommentCount="1" />
  <row Id="4429" PostTypeId="2" ParentId="4404" CreationDate="2010-09-16T17:11:44.040" Score="5" ViewCount="" Body="&lt;p&gt;I had the concept of base(not 10) math in third or fourth grade, but very little time was spent on it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They did not discuss the specific operators or anything, the exercise was mostly addition and subtraction as I recall and converting from one base to another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it was more just to explain that the concept existed.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-16T17:11:44.040" />
  <row Id="4430" PostTypeId="2" ParentId="4352" CreationDate="2010-09-16T17:11:53.820" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.boost.org/&quot; rel=&quot;nofollow&quot;&gt;boost&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1880" LastActivityDate="2010-09-16T17:11:53.820" CommentCount="1" />
  <row Id="4431" PostTypeId="2" ParentId="4404" CreationDate="2010-09-16T17:13:40.830" Score="1" ViewCount="" Body="&lt;p&gt;Yes. I had binary arithmetic in school and I'm from India. I guess it's still there in syllabus. &lt;/p&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-09-16T17:13:40.830" CommentCount="4" />
  <row Id="4432" PostTypeId="2" ParentId="4404" CreationDate="2010-09-16T17:16:30.710" Score="1" ViewCount="" Body="&lt;p&gt;I got it a little in 7th and 8th grade back in the 1960s. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-16T17:16:30.710" CommentCount="2" />
  <row Id="4433" PostTypeId="1" AcceptedAnswerId="4454" CreationDate="2010-09-16T17:27:43.923" Score="18" ViewCount="1671" Body="&lt;p&gt;Admittedly this question is a bit of fun...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example of answer would be:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;He's as sly as a fox...pro.  He is the most interesting programmer in the world.&quot;&lt;/p&gt;&#xA;" OwnerUserId="2283" LastEditorUserId="2283" LastEditorDisplayName="" LastEditDate="2010-09-17T16:00:12.367" LastActivityDate="2011-03-22T04:57:38.380" ClosedDate="2011-01-03T19:58:15.287" Title="Who is the &quot;most interesting&quot; programmer in the world?" Tags="&lt;fun&gt;&lt;famous-people&gt;" AnswerCount="24" CommentCount="5" FavoriteCount="10" />
  <row Id="4434" PostTypeId="2" ParentId="4433" CreationDate="2010-09-16T17:30:02.513" Score="5" ViewCount="" Body="&lt;p&gt;His thumb drive is the size of a fist.  He is the most interesting programmer in the world.&lt;/p&gt;&#xA;" OwnerUserId="2287" LastActivityDate="2010-09-16T17:30:02.513" CommentCount="1" />
  <row Id="4435" PostTypeId="2" ParentId="4418" CreationDate="2010-09-16T17:31:31.340" Score="2" ViewCount="" Body="&lt;p&gt;Yes, we really do need to be able to specify when we save our code. Every now and then my cat likes to walk on my keyboard. I really don't want my cat's edits saved. And it's real nice that I can fix it with &lt;code&gt;M-x revert-buffer&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2142" LastActivityDate="2010-09-16T17:31:31.340" CommentCount="1" />
  <row Id="4436" PostTypeId="2" ParentId="1166" CreationDate="2010-09-16T17:33:14.030" Score="2" ViewCount="" Body="&lt;p&gt;When I started working dress codes were very formal. For the first 15 years, I wore suits and dresses with a jacket and stockings and heels. No slacks allowed for women (jeans were out of the question for everyone). No bare legs - stockings were a requirement. All the men wore suits and ties (except the military folks who wore uniforms) and while it was sometime acceptable to take off the jacket, it was never acceptable to take off the tie. &#xA;In one of those jobs I spent a good bit of time on the floor hooking computers up in a dress. Those days were stupid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I wear jeans and a top. I don't even own any heels or stockings. And I think I have one non-party type dress in my closet. I might consider a job where I had to wear nice slacks instead of jeans, but no way am I ever going back to the suit days.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-16T17:33:14.030" CommunityOwnedDate="2011-01-30T18:03:58.527" CommentCount="1" />
  <row Id="4437" PostTypeId="2" ParentId="1785" CreationDate="2010-09-16T17:34:55.203" Score="1" ViewCount="" Body="&lt;p&gt;There is no such thing as a bug that cannot possibly happen.&lt;/p&gt;&#xA;" OwnerUserId="354" LastActivityDate="2010-09-16T17:34:55.203" CommunityOwnedDate="2010-09-16T17:34:55.203" />
  <row Id="4438" PostTypeId="2" ParentId="4404" CreationDate="2010-09-16T17:35:44.157" Score="1" ViewCount="" Body="&lt;p&gt;Boolean algebra was on our (Indian ICSE 2000) syllabus from at least the 9th standard (one year before 'O'-levels). I vaguely remember a particularly brave/foolhardy teacher trying to teach us boolean arithmetic, but I don't think we were ever tested on it. Pretty much the only thing I remember from it are De Morgan's laws, which are still handy to know. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;These were very much part of the computers syllabus, not maths: I think we did a bit of number bases (base 8, base 16 and suchlike) at some point in maths, but I imagine that was really early on, in the 7th standard or so. I didn't study computers in JC ('A'-levels), so I don't know if this was taught there.&lt;/p&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-09-16T17:35:44.157" />
  <row Id="4439" PostTypeId="2" ParentId="4418" CreationDate="2010-09-16T17:38:44.150" Score="5" ViewCount="" Body="&lt;p&gt;I compulsively save my source files. I can rarely get through more than three lines of code without saving a file. I like being able to save precisely when I want to, so yes, it's necessary for me.&lt;/p&gt;&#xA;" OwnerUserId="354" LastActivityDate="2010-09-16T17:38:44.150" CommentCount="1" />
  <row Id="4440" PostTypeId="2" ParentId="1106" CreationDate="2010-09-16T17:42:52.987" Score="1" ViewCount="" Body="&lt;p&gt;You can claim you are &quot;good&quot; at something once you have been doing it long enough that you've long since forgotten how to do anything else.&lt;/p&gt;&#xA;" OwnerUserId="2142" LastActivityDate="2010-09-16T17:42:52.987" CommunityOwnedDate="2010-09-16T17:42:52.987" />
  <row Id="4441" PostTypeId="2" ParentId="4433" CreationDate="2010-09-16T17:48:19.090" Score="13" ViewCount="" Body="&lt;p&gt;He does metaprogramming in machine language. He is the most interesting programmer in the world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Stay nerdy, my friends.&quot;&lt;/p&gt;&#xA;" OwnerUserId="2142" LastActivityDate="2010-09-16T17:48:19.090" />
  <row Id="4442" PostTypeId="1" AcceptedAnswerId="4615" CreationDate="2010-09-16T17:48:23.800" Score="1" ViewCount="108" Body="&lt;p&gt;I have had the question posed at my work that, since we are planning to eventually move to Sharepoint 2010 for most of our Development, and since Sharepoint 2010 supports asp.net web parts, should we start moving all of our new development to be exclusively asp.net web parts?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was also asked how prism factors into all of this.  (not sure what that is)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are now a mostly client/server based location but are moving to an SOA framework (slowly though).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this a good idea?  Is it better to have some apps in WPF and Winforms hitting the services or should we just go to web parts solely?  What are we going to miss out on if we make this move?&lt;/p&gt;&#xA;" OwnerUserId="71" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T03:25:53.053" LastActivityDate="2010-09-23T03:25:53.053" Title="Are asp.net web parts good enough for exclusive development?" Tags="&lt;asp.net&gt;&lt;wpf&gt;&lt;standardization&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="4443" PostTypeId="2" ParentId="1166" CreationDate="2010-09-16T17:48:57.387" Score="8" ViewCount="" Body="&lt;p&gt;Dress code is very important to me: I would never want to code at a place that had one!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to dress &quot;business casual&quot; most of the time anyway, but there's a big difference between dressing like that because I feel like it and having it imposed on me.  If they want to hire me and pay me money to write code for them, they're hiring me and paying me money &lt;em&gt;to write code for them&lt;/em&gt;, not to dress a certain way.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-16T17:48:57.387" CommunityOwnedDate="2011-01-30T18:03:58.527" />
  <row Id="4444" PostTypeId="2" ParentId="4404" CreationDate="2010-09-16T17:49:09.417" Score="1" ViewCount="" Body="&lt;p&gt;No, I didn't. But we did cover Venn Diagrams/simple sets in Junior High. Didn't see them again until I took a relational database course in college.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-16T17:49:09.417" CommentCount="1" />
  <row Id="4445" PostTypeId="2" ParentId="2730" CreationDate="2010-09-16T17:54:16.767" Score="8" ViewCount="" Body="&lt;p&gt;The same language is used for all parts of a web application: presentation, logic, data base connection in manipulation.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-16T17:54:16.767" CommentCount="4" />
  <row Id="4447" PostTypeId="2" ParentId="4404" CreationDate="2010-09-16T18:01:52.490" Score="4" ViewCount="" Body="&lt;p&gt;There was a great series of books called &quot;Elements of Mathematics&quot; back in the 80s.  It went beyond just binary and symbolic logic into probability, groups, rings &amp;amp; fields, number theory...  Really advanced stuff, and it just never occurred to us that we were &quot;too young&quot; (although to be fair it was middle school not elementary school).  I refer back to this stuff more than any math I learned at undergrad.&lt;/p&gt;&#xA;" OwnerUserId="2270" LastActivityDate="2010-09-16T18:01:52.490" />
  <row Id="4450" PostTypeId="2" ParentId="4433" CreationDate="2010-09-16T18:09:43.053" Score="38" ViewCount="" Body="&lt;p&gt;His pick-up lines are in RegEx. They work, but you don't understand why. He is the most interesting programmer in the world.&lt;/p&gt;&#xA;" OwnerUserId="73" LastActivityDate="2010-09-16T18:09:43.053" CommentCount="3" />
  <row Id="4454" PostTypeId="2" ParentId="4433" CreationDate="2010-09-16T18:31:07.427" Score="53" ViewCount="" Body="&lt;p&gt;He can smell a syntax error at 20 feet.&lt;br&gt;&#xA;When root runs &lt;code&gt;sudo&lt;/code&gt;, the command is run as him.&lt;br&gt;&#xA;His programs are all also epic poems that happen to compile.&lt;br&gt;&#xA;He doesn't often belch, but when he does, it's in valid xml.&lt;br&gt;&#xA;A valid proof that P=NP would be &quot;Because he said so.&quot;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;He is the most interesting programmer in the world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I don't always discuss code, but when I do, I prefere Programmers.StackExchange.com.&quot;&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-16T18:31:07.427" CommentCount="4" />
  <row Id="4455" PostTypeId="2" ParentId="4319" CreationDate="2010-09-16T18:32:58.203" Score="2" ViewCount="" Body="&lt;p&gt;Switch your keyboard layout to Dvorak, and &lt;em&gt;don't&lt;/em&gt; keep a reference chart or re-mark the keys. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Within a week, I was touch-typing at 20WPM, and a couple weeks later, I was up past my hunt-and-peck 40WPM QWERTY speed, with fewer errors. The crucial part was having to guess-and-learn the layout. If I had had to do the same for QWERTY, I probably would touch-type.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, if Dvorak is out of the question, just get a Das Ultimate or scrape your keys clean. :)&lt;/p&gt;&#xA;" OwnerUserId="83" LastEditorUserId="83" LastEditorDisplayName="" LastEditDate="2010-09-22T17:05:43.237" LastActivityDate="2010-09-22T17:05:43.237" CommentCount="1" />
  <row Id="4457" PostTypeId="2" ParentId="4433" CreationDate="2010-09-16T18:33:50.997" Score="-2" ViewCount="" Body="&lt;p&gt;Duh, &lt;a href=&quot;http://www.youtube.com/watch?v=8Bc0WjTT0Ps&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; man of course. &lt;/p&gt;&#xA;" OwnerUserId="1863" LastActivityDate="2010-09-16T18:33:50.997" CommentCount="1" />
  <row Id="4458" PostTypeId="2" ParentId="4433" CreationDate="2010-09-16T18:39:41.563" Score="11" ViewCount="" Body="&lt;p&gt;His mother has a tattoo &quot;011100110110111101101110&quot;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;He can speak .NET, in Lisp.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He has been known to cure code block, just by walking into the room.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He knows assembly, not bytecode, but he's also a bytecode comiler guru, so don’t get any ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;His shirts never stain of hot pockets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if he forgets to hit send on his email, it gets there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knuth often questions him, just because he find him interesting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a website was built in his honor, stackoverflow would close, due to poor attendance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On every keyboard in the world, there is a function key named after him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;His OS never gets loaded. It sits there, waiting for his input.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I don't always code, but when I do I prefer Korn.&quot;&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="2274" LastEditorDisplayName="" LastEditDate="2010-09-16T18:48:22.687" LastActivityDate="2010-09-16T18:48:22.687" CommentCount="3" />
  <row Id="4459" PostTypeId="2" ParentId="4418" CreationDate="2010-09-16T18:44:25.593" Score="4" ViewCount="" Body="&lt;p&gt;I often use the opportunity to keep editing the file while the build is in progress.  If they were auto-saved, the build would break while I'm editing (a broken code would be complied), and I'd just &lt;strong&gt;have to wait&lt;/strong&gt; while the code is compiling.  This is unproductive and boring.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-16T18:44:25.593" CommentCount="1" />
  <row Id="4461" PostTypeId="2" ParentId="3974" CreationDate="2010-09-16T18:47:36.790" Score="0" ViewCount="" Body="&lt;p&gt;Well, to give my two cents worth is that gender really has little to do with skill and ability.  I've worked with great and terrible programmers of both genders.  What I do find in common is that the ones that are really terrible at programming are the best a kissing superiors rears and being the &quot;best friend&quot; to everyone in the office. They tend to have those &quot;intangible&quot; skills like kissing up, redirecting work, and talking way above their skill level - while finding wonderful excuses on why they aren't as productive as most of the other programmers.  Either they blame another team or programmer that has hender them or &quot;its the process&quot; why &quot;we&quot; fail politcal move to get out of responsibilty for such horrible code and design decisions.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And for the record 3 of the 5 best programmers I have worked with over the last 15 years have been female.  So gender is not even a consideration to potential/quality of work for me.  &lt;/p&gt;&#xA;" OwnerUserId="1789" LastActivityDate="2010-09-16T18:47:36.790" CommunityOwnedDate="2010-09-16T18:47:36.790" />
  <row Id="4462" PostTypeId="1" CreationDate="2010-09-16T18:48:45.310" Score="7" ViewCount="198" Body="&lt;p&gt;Do you have a favorite place to code other than your own office/desk?&lt;/p&gt;&#xA;" OwnerUserId="93" LastActivityDate="2010-09-19T01:37:48.663" CommunityOwnedDate="2010-09-16T18:48:45.310" ClosedDate="2011-02-14T11:52:23.207" Title="Where is your favorite place to code other than your desk/office?" Tags="&lt;productivity&gt;&lt;favorite&gt;&lt;coding&gt;" AnswerCount="10" FavoriteCount="2" />
  <row Id="4466" PostTypeId="2" ParentId="4305" CreationDate="2010-09-16T18:50:07.113" Score="1" ViewCount="" Body="&lt;p&gt;when you can explain the language to another beginner ... that means that you're confident enough about that language and know some of the inner workings on the languages. &#xA;But again, there might be multiple different flavors/toolkits/extensions of a language, by saying that you're fluent with C++ doesn't mean that you're fluent in FLTK or GTK ... likewise saying that you're fluent in C# doesn't mean that you're fluent in ASP.NET. &#xA;Also for languages such as C#, it's constantly being evolved ... knowing C# 4.0 is different from knowing C# 2.0 ... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;that's my 2 cents. &lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-09-16T18:50:07.113" CommentCount="2" />
  <row Id="4469" PostTypeId="2" ParentId="4462" CreationDate="2010-09-16T18:53:13.897" Score="1" ViewCount="" Body="&lt;p&gt;I like grabbing a laptop once in a while and flopping on the couch for some &quot;TV and code&quot; time.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-16T18:53:13.897" CommunityOwnedDate="2010-09-16T18:53:13.897" />
  <row Id="4470" PostTypeId="2" ParentId="4462" CreationDate="2010-09-16T18:54:08.093" Score="3" ViewCount="" Body="&lt;p&gt;Coffee Shops - Starbucks or any other local coffee shops ... &lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-09-16T18:54:08.093" CommunityOwnedDate="2010-09-16T18:54:08.093" />
  <row Id="4474" PostTypeId="2" ParentId="4433" CreationDate="2010-09-16T18:59:19.013" Score="15" ViewCount="" Body="&lt;p&gt;He would have more points than Jon Skeet on SO, but they rolled-over.&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2011-01-03T17:31:59.543" LastActivityDate="2011-01-03T17:31:59.543" CommentCount="2" />
  <row Id="4475" PostTypeId="1" CreationDate="2010-09-16T18:59:35.057" Score="12" ViewCount="287" Body="&lt;p&gt;I have several projects coming up soon for public release, both commercial and open source. The projects are all downloadable, not web apps. I've worked on them alone and would like to get feedback during a beta period, but I don't currently have a large audience (though the markets are large). What are the best ways to get participation in the betas? Are there any existing sites or communities that specialize in software testing that I can reach out to? At this point, I'm specifically looking for technical testers who aren't intimidated diving into the code and can help spot security bugs, logical errors, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: I'm looking for websites or communities similar to &lt;a href=&quot;http://www.inviteshare.com/&quot; rel=&quot;nofollow&quot;&gt;Invite Share&lt;/a&gt;. Invite Share itself would be perfect, but there doesn't seem to be any public information about how to submit a beta.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Bounty Explanation&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While Joel's article on running a beta is helpful, I wonder if there isn't an existing community available for beta testing of any sort, technical or user. As a self-taught and sole developer, I don't have a lot of technical contacts that would be appropriate approaching for testing. I did propose a &lt;a href=&quot;http://area51.stackexchange.com/proposals/13487/beta-launch-software-and-website-testing&quot;&gt;Beta Testing&lt;/a&gt; site in Area 51 a few months ago, but it seems as if it either got buried, there wasn't a whole lot of interest, or it's a poor fit for StackExchange. If you know of existing testing communities, sites like InviteShare, or other ways to get testers, please share.&lt;/p&gt;&#xA;" OwnerUserId="73" LastEditorUserId="73" LastEditorDisplayName="" LastEditDate="2010-09-29T22:50:09.170" LastActivityDate="2010-10-25T17:38:19.177" Title="What are the best ways to get beta testers?" Tags="&lt;best-practices&gt;&lt;beta&gt;" AnswerCount="3" CommentCount="8" FavoriteCount="8" />
  <row Id="4479" PostTypeId="2" ParentId="1407" CreationDate="2010-09-16T19:02:44.170" Score="4" ViewCount="" Body="&lt;p&gt;IE6.  Yep, IE6.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why ? Well someone has to. And I work for a corporation and found out today that with ie developer toolbar you can edit css attributes. This will save me mucho time.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-16T19:02:44.170" CommentCount="5" />
  <row Id="4485" PostTypeId="2" ParentId="2757" CreationDate="2010-09-16T19:17:10.043" Score="0" ViewCount="" Body="&lt;p&gt;A 17inch flat screen, one of them :-( . I work for a national corporation (in the UK).&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-16T19:17:10.043" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="4486" PostTypeId="2" ParentId="1237" CreationDate="2010-09-16T19:19:45.947" Score="3" ViewCount="" Body="&lt;p&gt;A good nights sleep; and working freelance is a good motivator.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-16T19:19:45.947" />
  <row Id="4491" PostTypeId="2" ParentId="4305" CreationDate="2010-09-16T19:31:09.670" Score="0" ViewCount="" Body="&lt;p&gt;Every language tends to have some standard book or books with exercises.  For example, &lt;em&gt;Thinking in Java&lt;/em&gt; for Java or &lt;em&gt;ANSI Common Lisp&lt;/em&gt; by Paul Graham for Common Lisp.  When I've read the entire book from cover to cover and &lt;strong&gt;done every single exercise&lt;/strong&gt; in that book, then I consider myself fluent in the language.  Doing the exercises is the most important part.&lt;/p&gt;&#xA;" OwnerUserId="2268" LastActivityDate="2010-09-16T19:31:09.670" CommentCount="1" />
  <row Id="4492" PostTypeId="2" ParentId="3732" CreationDate="2010-09-16T19:32:36.297" Score="0" ViewCount="" Body="&lt;p&gt;Computers.  What does computer programming have to do with computers?  It's just math, isn't it?&lt;/p&gt;&#xA;" OwnerUserId="2268" LastActivityDate="2010-09-16T19:32:36.297" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="1" />
  <row Id="4496" PostTypeId="2" ParentId="1106" CreationDate="2010-09-16T19:45:29.387" Score="1" ViewCount="" Body="&lt;p&gt;The only time you can be sure if you're good at something is when you're sure you're bad at it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;John Cleese spoke about this:&#xA;At 9:00&#xA;&lt;a href=&quot;http://www.youtube.com/watch?v=zGt3-fxOvug&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=zGt3-fxOvug&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2304" LastActivityDate="2010-09-16T19:45:29.387" CommunityOwnedDate="2010-09-16T19:45:29.387" />
  <row Id="4499" PostTypeId="1" CreationDate="2010-09-16T19:50:24.467" Score="3" ViewCount="331" Body="&lt;p&gt;I'm currently using one called PhpStorm, but its buggy and I'd really like to find something more stable that allows me to just get the job done.&lt;/p&gt;&#xA;" OwnerUserId="53" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:54:03.450" LastActivityDate="2010-10-02T15:54:03.450" Title="What is the best PHP Editor in a Linux Environment?" Tags="&lt;php&gt;&lt;ide&gt;&lt;text-editor&gt;" AnswerCount="6" CommentCount="2" />
  <row Id="4500" PostTypeId="2" ParentId="4319" CreationDate="2010-09-16T19:51:27.450" Score="0" ViewCount="" Body="&lt;p&gt;I don't know exactly how I learned, but it was probably from spending too much time talking about programming on IRC (see &lt;a href=&quot;http://freenode.net&quot; rel=&quot;nofollow&quot;&gt;http://freenode.net&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't remember when I noticed, but it &lt;em&gt;really&lt;/em&gt; became obvious that I could touch type when the letters started to fade off my keyboard and it didn't really bother me except sometimes when I was trying to use seldom-used key combos commands or type a password.&lt;/p&gt;&#xA;" OwnerUserId="1806" LastActivityDate="2010-09-16T19:51:27.450" />
  <row Id="4501" PostTypeId="2" ParentId="3732" CreationDate="2010-09-16T19:53:24.020" Score="2" ViewCount="" Body="&lt;p&gt;The scape-goat nature of programming (and other IT departments).  I've watched a Fortune 500 CEO throw IT under the bus for a quarterly earnings loss but nobody there ever seemed to acknowledge that without the programs they used day in and day out, no revenue would be generated as nobody could fathom how to do things manually.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-09-16T19:53:24.020" CommunityOwnedDate="2010-09-16T19:53:24.020" CommentCount="2" />
  <row Id="4503" PostTypeId="2" ParentId="3732" CreationDate="2010-09-16T19:58:24.757" Score="0" ViewCount="" Body="&lt;p&gt;That it takes copious amounts of experience, all kinds of after hours research, contributions to open source projects, maintaining a blog and all other sorts of extra work just to compete against the non-programming programmer down the hall for a job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I research on my time, work on pet projects instead of open source ones and keep a professional diary instead of a blog then on paper (ie. resume/cv) I look no different the some other scrub who couldn't care less, and has 5x1 year experience.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-16T19:58:24.757" CommunityOwnedDate="2010-09-16T19:58:24.757" />
  <row Id="4504" PostTypeId="2" ParentId="4499" CreationDate="2010-09-16T20:00:20.327" Score="2" ViewCount="" Body="&lt;p&gt;I know &lt;a href=&quot;http://www.phpeclipse.com/&quot; rel=&quot;nofollow&quot;&gt;PHPEclipse&lt;/a&gt; is really nice to do PHP development on Windows. I haven't tried it on Linux, but it should be very similar and it should be compatible since it's an extension of Eclipse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example Screenshot :&#xA;&lt;img src=&quot;http://i.imgur.com/Eyqqa.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="41" LastActivityDate="2010-09-16T20:00:20.327" />
  <row Id="4506" PostTypeId="2" ParentId="4462" CreationDate="2010-09-16T20:02:23.870" Score="1" ViewCount="" Body="&lt;p&gt;Occasionally I code outside under a tree or something. (Crazy, right?)&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-09-16T20:02:23.870" CommunityOwnedDate="2010-09-16T20:02:23.870" CommentCount="3" />
  <row Id="4507" PostTypeId="1" CreationDate="2010-09-16T20:02:28.197" Score="5" ViewCount="381" Body="&lt;p&gt;Considering the fact that you don't have to get involved in setting up/buying a server or even buying a domain, do you think that fact alone is enough to choose one over the other?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't necessarily want to work on Google App Engine, I just find it convenient when it comes to hosting/environment/etc. and wondering if that's a good enough reason to learn python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case, I'm not looking for a debate between python and ruby but more on Google App Engine and whether its value is enough to dictate the language you should learn.&lt;/p&gt;&#xA;" OwnerUserId="2308" LastEditorUserId="2308" LastEditorDisplayName="" LastEditDate="2010-09-16T20:46:21.417" LastActivityDate="2010-11-24T14:10:58.570" Title="Do you think that GAE alone is enough to justify learning Python over Ruby?" Tags="&lt;python&gt;&lt;ruby&gt;&lt;google-app-engine&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="1" />
  <row Id="4509" PostTypeId="1" AcceptedAnswerId="4514" CreationDate="2010-09-16T20:02:59.550" Score="0" ViewCount="79" Body="&lt;p&gt;A gotcha I've run into a few times in C-like languages is this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;original | included &amp;amp; ~excluded   // BAD&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Due to precedence, this parses as:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;original | (included &amp;amp; ~excluded)   // '~excluded' has no effect&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Does anyone know what was behind the original design decision of three separate precedence levels for &lt;em&gt;bitwise&lt;/em&gt; operators? More importantly, do you agree with the decision, and why?&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-09-16T20:12:40.580" ClosedDate="2010-09-17T00:51:09.427" Title="Bitwise operator predence" Tags="&lt;language-design&gt;&lt;operators&gt;" AnswerCount="1" CommentCount="4" />
  <row Id="4510" PostTypeId="2" ParentId="3732" CreationDate="2010-09-16T20:06:14.073" Score="10" ViewCount="" Body="&lt;p&gt;As a web developer....supporting IE6. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, writing bad code to patch up old horrid code that can't be changed for whatever reason. &lt;/p&gt;&#xA;" OwnerUserId="2305" LastActivityDate="2010-09-16T20:06:14.073" CommunityOwnedDate="2010-09-16T20:06:14.073" />
  <row Id="4512" PostTypeId="2" ParentId="4462" CreationDate="2010-09-16T20:10:32.813" Score="5" ViewCount="" Body="&lt;p&gt;My couch with my laptop.  &lt;/p&gt;&#xA;" OwnerUserId="278" LastActivityDate="2010-09-16T20:10:32.813" CommunityOwnedDate="2010-09-16T20:10:32.813" CommentCount="1" />
  <row Id="4513" PostTypeId="2" ParentId="4507" CreationDate="2010-09-16T20:12:18.397" Score="4" ViewCount="" Body="&lt;p&gt;Sure, why not? Both Ruby and Python are very capable languages, so it just comes down to what you specifically are looking to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to work with GAE and have to learn a language, it might as well be Python.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-16T20:12:18.397" CommentCount="2" />
  <row Id="4514" PostTypeId="2" ParentId="4509" CreationDate="2010-09-16T20:12:40.580" Score="1" ViewCount="" Body="&lt;p&gt;StackOverflow is more appropriate for this question...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My guess:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because you can replace&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;| with +&#xA;&amp;amp; with *&#xA;~ with -&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And you have:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;original | included &amp;amp; ~excluded &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;equivalent with&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;original + included * (-excluded)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and then it makes sense...&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-09-16T20:12:40.580" />
  <row Id="4515" PostTypeId="2" ParentId="4499" CreationDate="2010-09-16T20:12:55.447" Score="3" ViewCount="" Body="&lt;p&gt;I'm being serious when I say any &lt;code&gt;vi&lt;/code&gt; variant that can syntax color.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-16T20:12:55.447" CommentCount="3" />
  <row Id="4516" PostTypeId="2" ParentId="4462" CreationDate="2010-09-16T20:14:03.593" Score="2" ViewCount="" Body="&lt;p&gt;No replacement than devising a data schema in a notebook, you remember, like this:&#xA;&lt;img src=&quot;http://i.imgur.com/AA74Z.gif&quot; alt=&quot;Notebook&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-16T20:14:03.593" CommunityOwnedDate="2010-09-16T20:14:03.593" CommentCount="2" />
  <row Id="4519" PostTypeId="2" ParentId="4462" CreationDate="2010-09-16T20:18:04.687" Score="0" ViewCount="" Body="&lt;p&gt;Haven't gotten to do it in a long time but my favorite has always been laptop and a lawn chair sitting down by the river.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One plus, as this was pre-3G/4G/etc, it was a chance to fully unplug from distractions.&lt;/p&gt;&#xA;" OwnerUserId="144" LastActivityDate="2010-09-16T20:18:04.687" CommunityOwnedDate="2010-09-16T20:18:04.687" />
  <row Id="4520" PostTypeId="2" ParentId="4433" CreationDate="2010-09-16T20:18:38.587" Score="10" ViewCount="" Body="&lt;p&gt;His pheromones are the instruction set of the female libido, and he unit tests frequently. He is the most interesting programmer in the world.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-16T20:18:38.587" CommentCount="1" />
  <row Id="4521" PostTypeId="2" ParentId="552" CreationDate="2010-09-16T20:27:17.773" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/&quot; rel=&quot;nofollow&quot;&gt;Eric Lippert&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He works with a technology that I'm a huge fan of, he works for company that I admire, his knowledge is (or appears to be, I don't actually know him) so thorough, and the product of his work is phenomenal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He answered one of my SO questions once, and I was all star struck. If only for a moment.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-16T20:27:17.773" CommunityOwnedDate="2010-09-17T19:05:49.223" CommentCount="2" />
  <row Id="4522" PostTypeId="1" AcceptedAnswerId="4526" CreationDate="2010-09-16T20:34:17.597" Score="8" ViewCount="481" Body="&lt;p&gt;I see a few developers that like to use virtual machines for web development.  Are there others that do this? If there are, why do you do it?  Are there any pros / cons to developing on a VM rather than in a non virtualised environment?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would think things are slower in a VM.&lt;/p&gt;&#xA;" OwnerUserId="810" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-16T21:09:55.390" LastActivityDate="2010-09-19T16:35:30.617" Title="Does anyone use virtual machines for web development, and why?" Tags="&lt;productivity&gt;&lt;tools&gt;&lt;virtualization&gt;" AnswerCount="9" CommentCount="1" />
  <row Id="4523" PostTypeId="2" ParentId="552" CreationDate="2010-09-16T20:34:55.757" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Alan_turing&quot; rel=&quot;nofollow&quot;&gt;Alan Turing&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-09-16T20:34:55.757" CommunityOwnedDate="2010-09-17T19:05:49.223" />
  <row Id="4525" PostTypeId="2" ParentId="4522" CreationDate="2010-09-16T20:50:22.267" Score="0" ViewCount="" Body="&lt;p&gt;I've certainly used virtual machines for testing websites, but not for writing code in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The benefit of virtual machines is that you can have different OS's and browsers set up, to test the inevitable css bugs you'll discover in IE6 / 7 / 8.&lt;/p&gt;&#xA;" OwnerUserId="55" LastActivityDate="2010-09-16T20:50:22.267" />
  <row Id="4526" PostTypeId="2" ParentId="4522" CreationDate="2010-09-16T20:52:02.643" Score="13" ViewCount="" Body="&lt;p&gt;I use VMs for IE testing. I do have a dedicated Windows machine, but I lean towards using VMs for a few reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's a hassle to switch computers, even if it's right next to you&lt;/li&gt;&#xA;&lt;li&gt;It's extremely easy to rollback a VM to have a clean testing environment&lt;/li&gt;&#xA;&lt;li&gt;I'd rather use an environment users are &lt;em&gt;actually going to use&lt;/em&gt; rather than kludges like IETester, and you generally can't run multiple versions of IE at the same time.&lt;/li&gt;&#xA;&lt;li&gt;It's cheaper to run multiple VM instances than it is to buy multiple testing computers&lt;/li&gt;&#xA;&lt;li&gt;VMs, at least the ones for Mac OS X, have gotten so good in the past couple of years that the &quot;slow&quot; stigma given to VMs is unwarranted.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-16T20:52:02.643" CommentCount="2" />
  <row Id="4527" PostTypeId="2" ParentId="4499" CreationDate="2010-09-16T20:53:08.790" Score="6" ViewCount="" Body="&lt;p&gt;Netbeans is a great IDE with lots of PHP support.  I can't even start to name all the features I use but there are a fair amount.  Check it out here:&lt;br&gt;&#xA;&lt;a href=&quot;http://netbeans.org/features/scripting/index.html&quot; rel=&quot;nofollow&quot;&gt;http://netbeans.org/features/scripting/index.html&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://netbeans.org/features/php/index.html&quot; rel=&quot;nofollow&quot;&gt;http://netbeans.org/features/php/index.html&lt;/a&gt;&lt;br&gt;&#xA;I've used both Eclipse for Java and Netbeans for PHP and I feel Netbeans is a bit stronger for PHP as well as XHTML and CSS. Thats my personal preference anyways.    &lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-09-16T20:53:08.790" CommentCount="2" />
  <row Id="4528" PostTypeId="2" ParentId="4522" CreationDate="2010-09-16T20:59:04.973" Score="2" ViewCount="" Body="&lt;p&gt;Testing environments is a big one as others have mentioned.  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;browser testing (ie, safari, etc,...) &lt;/li&gt;&#xA;&lt;li&gt;clean testing environment &lt;/li&gt;&#xA;&lt;li&gt;easy to have multiple configurations &lt;/li&gt;&#xA;&lt;li&gt;accessibility testing (screen readers and the like)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I have a VM strictly for profiling and debugging my code which has kcachegrind already setup, along with selenium, xdebug and a few other tools configured to easily profile and debug my code.  Yes some may say this is what a development environment already would be but personally I like having a VM on my desktop dedicated to this sort of task.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, regarding the slowness in a VM: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things are slower in a VM because of the overhead requires to &quot;virtualize&quot; the environment.   However, the VM is becoming closer and closer to the hypervisor which lessens the overhead required for the VM. &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-16T20:59:04.973" />
  <row Id="4529" PostTypeId="2" ParentId="3997" CreationDate="2010-09-16T21:01:04.010" Score="8" ViewCount="" Body="&lt;p&gt;From my observations of having worked with two different off-shore teams over the years:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;b&gt;It's hard to interview people from thousand miles away.&lt;/b&gt;&lt;br&gt;It's not just that it's difficult to interview via skype and mail. You're paying a fixed amount per programmer per month to an intermediary, and in both cases I've experienced the intermediary's financial incentives ran counter to what we needed. The more programmers he can get us to need for the same work, the better. The cheaper the programmers he can hire for the same job, the better.&lt;/li&gt;&#xA;&lt;li&gt;&lt;b&gt;Insufficient knowledge of the english language&lt;/b&gt;&lt;br&gt;&#xA;I get mails that clearly came from google translate on a regular basis, despite a supposedly &quot;excellent&quot; knowledge of english.&lt;/li&gt;&#xA;&lt;li&gt;&lt;b&gt;It takes a long time to get people worked in&lt;/b&gt;&lt;br&gt;&#xA;There's the language barrier, and there's the fact that you're doing stuff across skype, mail and chat. Actually sitting down with someone &lt;em&gt;really&lt;/em&gt; speeds things up. All the hours spent teaching are hours counted double, once off-shore and once in-house. This is very expensive time.&lt;/li&gt;&#xA;&lt;li&gt;&lt;b&gt;It is difficult to get them to understand exactly what you need&lt;/b&gt;&lt;br&gt;&#xA;The in-house people end up spending a lot of time writing specs instead of building software. Our best programmers spend their days writing word documents and e-mails. It's a shame.&lt;/li&gt;&#xA;&lt;li&gt;&lt;b&gt;You never know what the problem is&lt;/b&gt;&lt;br&gt;&#xA;When a feature is late or badly coded, it's never obvious where the problem is at. Is the person not worked in enough? Was the spec not good enough? Was the spec not explained well enough? Is the person actually doing the work, and not just looking at squirrels all day long? Is the person actually competent at programming? You're a thousand miles away, and it's (almost) impossible to figure out what's going wrong.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;My experiences have led me to conclude that off-shoring just the coding is a bad idea. Off-shoring the whole business, that works. Off-shoring testing, that works well also (I have excellent experiences with that). But shipping a spec to a different continent to have it coded up? At best it's a break-even, at least in my experience.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-16T21:01:04.010" />
  <row Id="4530" PostTypeId="2" ParentId="552" CreationDate="2010-09-16T21:02:24.353" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://martinfowler.com/&quot; rel=&quot;nofollow&quot;&gt;Martin Fowler&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He proved that it's possible to strike a balance between theory and practice in programming literature. I love all of his books, even the one on such a boring topic like UML was an exciting read.&lt;/p&gt;&#xA;" OwnerUserId="2313" LastActivityDate="2010-09-16T21:02:24.353" CommunityOwnedDate="2010-09-17T19:05:49.223" />
  <row Id="4531" PostTypeId="2" ParentId="4507" CreationDate="2010-09-16T21:04:31.247" Score="6" ViewCount="" Body="&lt;p&gt;If you want to develop for Google App Engine, you'd definitely want to learn Python (Java is also an option, but the people behind GAE seem to be Pythonistas).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing to keep in mind is that writing something in Python doesn't mean you get Google App Engine for free. There are several people, including people at Google, who have had to &lt;a href=&quot;http://friendfeed.com/bgolub/8344b78f/i-deleted-my-slicehost-account-this-morning-for&quot; rel=&quot;nofollow&quot;&gt;&quot;port&quot; their projects to GAE&lt;/a&gt; (&lt;a href=&quot;http://www.rssmeme.com/&quot; rel=&quot;nofollow&quot;&gt;RSSmeme&lt;/a&gt; is another example) even though they're written in Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is because GAE has its own restrictions and specialized environment: for example, you don't access to things like MySQL, threading, or local file storage. The &lt;a href=&quot;http://code.google.com/appengine/kb/general.html&quot; rel=&quot;nofollow&quot;&gt;General FAQ for GAE&lt;/a&gt; touches upon several of these &quot;quirks&quot;.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-16T21:04:31.247" />
  <row Id="4533" PostTypeId="2" ParentId="4522" CreationDate="2010-09-16T21:07:19.887" Score="0" ViewCount="" Body="&lt;p&gt;I don't see a reason to develop websites in a virtual machine, there isn't a need for it for a Windows user.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can run everything in a Windows install (Portable IEs, Chrome, Firefox, Safari, ...),&lt;br&gt;&#xA;alternatively you could use &lt;a href=&quot;http://www.microsoft.com/expression/products/SuperPreview_TopFeatures.aspx&quot; rel=&quot;nofollow&quot;&gt;Expression SuperPreview&lt;/a&gt; to enter a new world of cross-browser testing. &lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-16T21:07:19.887" CommentCount="6" />
  <row Id="4534" PostTypeId="2" ParentId="4319" CreationDate="2010-09-16T21:13:09.013" Score="1" ViewCount="" Body="&lt;p&gt;When I was younger I spent a fair amount of time on MSN typing to friends.  At some point I just realized I wasn't looking at the keyboard anymore and could type as fast as anyone.  I hated learning to type &quot;properly&quot; in school, it was just too formal and made me think about it too much.     &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Really I think the best way to learn is just type a lot and the skill will show up eventually.&lt;/strong&gt;     &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest problem I have with typing that I still have to master is switching keyboards.  I can't stand split keyboards as they mess with my style and I can't stand French keyboards as they have that stupid slash where the shift is supposed to be. (I live in Canada and my laptop has a french keyboard, which I didnt realize when I got it.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Another method I've used is (I believe its called:) Blitz Writing.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basicly its type a story as fast as possible, no stopping, no backspaces.  That same method can also be used in programming but its a bit harder to translate.  Its great for getting plans out quickly though&lt;/p&gt;&#xA;" OwnerUserId="1013" LastEditorUserId="1013" LastEditorDisplayName="" LastEditDate="2010-09-16T21:22:39.367" LastActivityDate="2010-09-16T21:22:39.367" />
  <row Id="4535" PostTypeId="2" ParentId="4522" CreationDate="2010-09-16T21:16:01.423" Score="2" ViewCount="" Body="&lt;p&gt;I prefer to use VMs for pretty much all development... especially when I'm working with a team of developers.  VMs allow me to build an &quot;environment in a box&quot; that can be quickly set-up with little headache.  Since I use a MBP as my primary machine, I prefer VMWare... it's a lot less painful especially in a &quot;mostly-Windows&quot; environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as speed is concerned, it honestly varies from setup to setup.  The only real issues I've seen with VM speed involve a.) not having enough physical resources (memory, etc.) or b.) not allocating enough resources to your VM.  Otherwise, I actually prefer working in a Windows VM on my Mac than working on a native box.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-09-16T21:16:01.423" />
  <row Id="4537" PostTypeId="2" ParentId="3997" CreationDate="2010-09-16T21:21:40.387" Score="6" ViewCount="" Body="&lt;p&gt;The short answer is that if you do this solely in order to reduce costs by delegating all the shitty work outside, then you're already screwed. On the other hand off-shoring can deliver brilliant results when you treat the other side as a partner, not a cheap work force.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Hire a skilled team that is able to work independently&lt;/strong&gt;. This definitely won't be the cheapest one, but you'll save some money anyway on the difference of wages between countries.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Assign well defined sub-projects to the teams&lt;/strong&gt;. Schedule daily meetings and weekly reviews, but avoid the temptation to micro-manage. Delegate the responsibility for the project with adequate amount of authority. Try not to be the bottleneck, only then the process can scale and bring real value.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Build a trust between the teams&lt;/strong&gt;. Start with a simple project that is not critical to your operations. Once the team delivers, start rising the bar. If you are satisfied with the results, stick to the same team even if somebody else offers you &quot;a bargain&quot;. In contrary to the common opinion off-shoring programmers are not interchangeable resources.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2313" LastEditorUserId="2313" LastEditorDisplayName="" LastEditDate="2010-09-16T22:18:40.920" LastActivityDate="2010-09-16T22:18:40.920" CommentCount="2" />
  <row Id="4538" PostTypeId="2" ParentId="360" CreationDate="2010-09-16T21:24:10.687" Score="0" ViewCount="" Body="&lt;p&gt;If we're talking about .NET, you really ought to take a look at what the guys over at the &lt;a href=&quot;http://www.mono-project.com/Main_Page&quot; rel=&quot;nofollow&quot;&gt;Mono Project&lt;/a&gt; are up to.  They've done some incredible work with the iPhone (&lt;a href=&quot;http://www.monotouch.net&quot; rel=&quot;nofollow&quot;&gt;MonoTouch&lt;/a&gt;) and native OSX development via &lt;a href=&quot;http://www.mono-project.com/MonoMac&quot; rel=&quot;nofollow&quot;&gt;MonoMac&lt;/a&gt;.  Of course, you'll need to pick up a Mac (may I recommend the MacBook Pro) in order to use any of the tools.  If you have projects that you want to port from .NET to Mono, you can use a tool called the Mono Migration Analyzer or MoMA.  Either way, it's a great way to leverage your C# skills across multiple platforms.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-09-16T21:24:10.687" />
  <row Id="4539" PostTypeId="2" ParentId="1302" CreationDate="2010-09-16T21:28:51.847" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/&quot;&gt;StackOverflow&lt;/a&gt; for Q&amp;amp;A.  &lt;a href=&quot;http://codeproject.com/&quot; rel=&quot;nofollow&quot;&gt;CodeProject&lt;/a&gt; for samples, etc.  &lt;a href=&quot;http://codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;CodePlex&lt;/a&gt; for open source goodness.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-09-16T21:28:51.847" CommunityOwnedDate="2010-09-16T21:28:51.847" CommentCount="1" />
  <row Id="4540" PostTypeId="2" ParentId="4319" CreationDate="2010-09-16T21:32:02.290" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.dvzine.org/zine/01-toc.html&quot; rel=&quot;nofollow&quot;&gt;Learn Dvorak&lt;/a&gt;&lt;/strong&gt; with 10 fingers, without moving the keys around you will not be looking at the keyboard. ;-)&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-16T21:32:02.290" />
  <row Id="4541" PostTypeId="2" ParentId="4522" CreationDate="2010-09-16T21:32:14.263" Score="5" ViewCount="" Body="&lt;p&gt;The other reason people use a VM for web development is to virtualise a server environment that they can turn off really easily. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At home I always use a VM for setting up personal projects so that I can turn it all off completely when I want to, say, play a game. In a work environment you might want to turn it off so that you have full resources to transcode a video to FLV. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It just gives you that flexibility to do what you want with your resources.&lt;/p&gt;&#xA;" OwnerUserId="1350" LastActivityDate="2010-09-16T21:32:14.263" />
  <row Id="4542" PostTypeId="2" ParentId="552" CreationDate="2010-09-16T21:36:05.077" Score="1" ViewCount="" Body="&lt;p&gt;Math and Lisp hacker &lt;a href=&quot;http://en.wikipedia.org/wiki/Bill_Gosper&quot; rel=&quot;nofollow&quot;&gt;Bill Gosper&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2268" LastActivityDate="2010-09-16T21:36:05.077" CommunityOwnedDate="2010-09-17T19:05:49.223" />
  <row Id="4544" PostTypeId="2" ParentId="4522" CreationDate="2010-09-16T21:52:15.707" Score="2" ViewCount="" Body="&lt;p&gt;I use virtual machines all the time. For testing purposes, the reasoning is obvious, but I also use it for my actual development environment, mainly because 1) it makes migration to new hardware a no-brainer, and 2) it gives me an easy &quot;snapshot&quot; (or &lt;em&gt;set&lt;/em&gt; of snapshots) fall back to as needed for those configurations of my development environment.  My needs may be unique -- I am primarily a Delphi developer using multiple versions of Delphi, and lots of third-party components -- but the amount of time and headache having my development environment inside of a virtual machine has saved, probably could not be overstated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, don't scrimp on the box you run them on, especially when it comes to memory. ; )&lt;/p&gt;&#xA;" OwnerUserId="2182" LastEditorUserId="2182" LastEditorDisplayName="" LastEditDate="2010-09-19T01:47:04.833" LastActivityDate="2010-09-19T01:47:04.833" />
  <row Id="4545" PostTypeId="2" ParentId="4319" CreationDate="2010-09-16T21:54:58.900" Score="3" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/J8478.jpg&quot; alt=&quot;Mavis Beacon Teaches Soul-Crushing Typing&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Mavis_Beacon_Teaches_Typing&quot; rel=&quot;nofollow&quot;&gt;Mavis Beacon&lt;/a&gt;. From 2nd to 7th grade, we had &quot;computer class&quot; which mainly consisted of playing Mavis Beacon. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over and over. For 5 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After the first year, the only way to stave off soul-crushing boredom was to make a game out of getting the highest WPM. Once you get past a certain WPM threshold, touch-typing is the only way to go.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-16T21:54:58.900" CommentCount="1" />
  <row Id="4546" PostTypeId="1" CreationDate="2010-09-16T22:00:52.327" Score="4" ViewCount="107" Body="&lt;p&gt;.NET 1.1. IE6. Java 1.1. All of these are old ancient versions of software that still for some reason exist in organizations that are too scared to upgrade, don't like change, or follow the &quot;If its not broken, don't fix it&quot; principle. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But when do you drop support for such old versions of software? What determines when a platform is too old? &lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T22:56:28.977" LastActivityDate="2010-09-29T23:13:00.713" Title="When do you drop support for an old program version?" Tags="&lt;old-software&gt;&lt;support&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="4547" PostTypeId="2" ParentId="4546" CreationDate="2010-09-16T22:06:21.017" Score="8" ViewCount="" Body="&lt;p&gt;I generally go by what the first party considers &lt;a href=&quot;http://en.wikipedia.org/wiki/End-of-life_%28product%29&quot; rel=&quot;nofollow&quot;&gt;End of Life&lt;/a&gt;: if the person who &lt;em&gt;made the software&lt;/em&gt; won't support it anymore, there's very little hope for a third party to provide anything beyond a nominal level of support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do make exceptions for things that have exceptional market share (read: IE6), but once other, much larger companies axe their third party support, I follow suit. In the case of IE6, I stopped supporting it when Google stopped.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-16T22:06:21.017" CommentCount="1" />
  <row Id="4548" PostTypeId="2" ParentId="4418" CreationDate="2010-09-16T22:07:47.317" Score="1" ViewCount="" Body="&lt;p&gt;I manually save very frequently now that I use Netbeans. It has a very nice self contained history mechanism that allows me to walk back through each of my saves and even diff them independently of revision control. As for automated saving, save-on-build is as automated as I need to get for saving.&lt;/p&gt;&#xA;" OwnerUserId="1374" LastActivityDate="2010-09-16T22:07:47.317" />
  <row Id="4549" PostTypeId="2" ParentId="552" CreationDate="2010-09-16T22:11:53.677" Score="4" ViewCount="" Body="&lt;p&gt;Admiral Grace Hopper. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-16T22:11:53.677" CommunityOwnedDate="2010-09-17T19:05:49.223" CommentCount="1" />
  <row Id="4550" PostTypeId="1" AcceptedAnswerId="4555" CreationDate="2010-09-16T22:17:19.733" Score="10" ViewCount="427" Body="&lt;p&gt;This question is a result of the question &lt;a href=&quot;http://programmers.stackexchange.com/questions/2846/which-programming-language-do-you-really-hate&quot;&gt;Which programming language do you really hate?&lt;/a&gt; where, unsurprisingly, all of the most popular languages are listed.  Most of the top 15 are extremely common programming languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One comment brings up &lt;strong&gt;&lt;a href=&quot;http://haxe.org/doc/intro&quot; rel=&quot;nofollow&quot;&gt;haXe&lt;/a&gt;&lt;/strong&gt; as an alternative to ActionScript, a language that can target Flash, PHP, JavaScript or native applications. Another similar alternative to JavaScript is GWT. I worked at a company a year ago that decided to adopt GWT for our next product. That didn't pan out as well as hoped because GWT hasn't really taken off. There's little example of best practice, limited support libraries, and some features are so immature that they are ridiculously difficult to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, worst of all for something like haXe or GWT, it's nearly impossible to find programmers who are already familiar with the platform and are ready to go, let alone bring their own expertise when you lose a developer (or want to grow).  With a language like Java, it's not terribly difficult to find a rock star programmer to jump in and immediately make a difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is, even though there are many complaints about established languages, and many innovative improvements, variations, or completely new languages, are the alternatives simply too dangerous or costly for the corporate environment?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If so, how will these innovative languages ever become adopted?  It seems like technology moves too fast for innovations, even really good ones, to have time to build a following big enough to stay around when things start to change.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-17T00:09:23.277" LastActivityDate="2010-09-17T03:54:15.223" Title="Are innovative programming languages too dangerous?" Tags="&lt;programming-languages&gt;&lt;technology&gt;&lt;business&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="3" />
  <row Id="4552" PostTypeId="2" ParentId="4550" CreationDate="2010-09-16T22:27:28.953" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;And, worst of all for something like&#xA;  haXe or GWT, it's nearly impossible to&#xA;  find programmers who are already&#xA;  familiar with the platform and are&#xA;  ready to go, let alone bring their own&#xA;  expertise when you lose a developer&#xA;  (or want to grow).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;On the other hand, are you comfortable hiring developers who are only willing to stick to what they know and aren't willing to learn anything new?  If you're hiring a great developer, it's worth the ramp-up time for them to get familiar with the new language and/or tools.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-09-16T22:27:28.953" CommentCount="6" />
  <row Id="4553" PostTypeId="2" ParentId="4550" CreationDate="2010-09-16T22:28:30.353" Score="0" ViewCount="" Body="&lt;p&gt;From a Software Engineering perspective it's bad to choose the most innovative technology available,&lt;br&gt;&#xA;this will introduce delays in the schedule because people are not experienced and thus work slower...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These will become adopted because people will learn them in the time that's scheduled for that puprose,&lt;br&gt;&#xA;so for example one might introduce time after the project is done to be able to learn new technology.  &lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-16T22:28:30.353" />
  <row Id="4555" PostTypeId="2" ParentId="4550" CreationDate="2010-09-16T22:31:05.530" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;So my question is, even though there&#xA;  are many complaints about established&#xA;  languages, and many innovative&#xA;  improvements, variations, or&#xA;  completely new languages, are the&#xA;  alternatives simply too dangerous or&#xA;  costly for the corporate environment?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If there's few libraries, little support, and almost no talent that can work in a language, few companies are inclined to adopt a brand new language.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If so, how will these innovative languages ever become adopted?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Adopted through a combination of the following&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;You have a major corporate backer, such as C# from Microsoft, Google's Go or Objective C/Next Step from Apple. These companies become strong supporters of languages and maintain associated frameworks. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You have a strong online community that fills in the support and library/framework creation roles. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Much of the decisions on what language to support are made by engineers, who may want to use the &quot;cool new thing&quot; and not the language that makes the most business sense.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="980" LastEditorUserId="980" LastEditorDisplayName="" LastEditDate="2010-09-16T23:35:15.460" LastActivityDate="2010-09-16T23:35:15.460" CommentCount="2" />
  <row Id="4556" PostTypeId="2" ParentId="4462" CreationDate="2010-09-16T22:32:39.267" Score="1" ViewCount="" Body="&lt;p&gt;At bed before sleeping. Too geek?&lt;/p&gt;&#xA;" OwnerUserId="2325" LastActivityDate="2010-09-16T22:32:39.267" CommunityOwnedDate="2010-09-16T22:32:39.267" CommentCount="1" />
  <row Id="4557" PostTypeId="2" ParentId="4499" CreationDate="2010-09-16T22:35:43.683" Score="1" ViewCount="" Body="&lt;p&gt;I really like &lt;a href=&quot;http://www.jetbrains.com/idea/&quot; rel=&quot;nofollow&quot;&gt;IntelliJ 9&lt;/a&gt; for PHP development.  And web development, and ActionScript development.  Oh yeah, and Java (what it was built for).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may be $249, but I've used it for 6 years (before it was good for anything but Java) and it was good then.  Since then it's only gotten better and more valuable as they expanded support for other languages, and I'm currently using it for all of the above.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was surprised at how well the PHP feature support matched Java. I was even able to use the dependencies tab in the project settings to add external sources (Smarty, PHPMailer, etc.) and then CTRL+click into code.  It even had support for running FlexUnit tests for Flash, so I imagine it probably has PHPUnit support too.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-09-16T22:35:43.683" />
  <row Id="4558" PostTypeId="2" ParentId="3732" CreationDate="2010-09-16T22:36:25.613" Score="3" ViewCount="" Body="&lt;p&gt;I know it's bad but the awful truth is that I hate design diagrams, write reports, etc. I love coding, nothing more.&lt;/p&gt;&#xA;" OwnerUserId="2325" LastActivityDate="2010-09-16T22:36:25.613" CommunityOwnedDate="2010-09-16T22:36:25.613" CommentCount="2" />
  <row Id="4559" PostTypeId="2" ParentId="1" CreationDate="2010-09-16T22:37:35.737" Score="3" ViewCount="" Body="&lt;p&gt;Even the most well-written book still likely has an introduction and chapter titles. Comments in well-documented code are still useful to describe high-level concepts, and explain how the code is organized.&lt;/p&gt;&#xA;" OwnerUserId="2326" LastActivityDate="2010-09-16T22:37:35.737" CommunityOwnedDate="2011-01-31T09:04:54.130" />
  <row Id="4560" PostTypeId="2" ParentId="4462" CreationDate="2010-09-16T22:39:13.330" Score="2" ViewCount="" Body="&lt;p&gt;I have a small table outside in the garden that's still within range of the WiFi.  Nice and quiet, very productive there even if it's only possible for a few months a year.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-16T22:39:13.330" CommunityOwnedDate="2010-09-16T22:39:13.330" />
  <row Id="4561" PostTypeId="2" ParentId="4400" CreationDate="2010-09-16T22:39:48.067" Score="3" ViewCount="" Body="&lt;p&gt;I don't. Seriously. I gave up. I have accepted the overload and I accept the frustration by not be able to read all I want.&lt;/p&gt;&#xA;" OwnerUserId="2325" LastActivityDate="2010-09-16T22:39:48.067" />
  <row Id="4562" PostTypeId="2" ParentId="4499" CreationDate="2010-09-16T22:40:54.727" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.activestate.com/komodo-edit&quot; rel=&quot;nofollow&quot;&gt;Komodo Edit&lt;/a&gt; seems like a very good IDE.  It's available both on Windows and Linux.  It's not as feature rich as &lt;a href=&quot;http://www.activestate.com/komodo-ide/features&quot; rel=&quot;nofollow&quot;&gt;Komodo IDE&lt;/a&gt; (which currently costs $295 for 1 user license) but it is very nice.  It still hasn't torn me away from Vim, but it's the closest any editor has come to doing so.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-09-16T22:40:54.727" />
  <row Id="4564" PostTypeId="2" ParentId="2846" CreationDate="2010-09-16T22:43:34.137" Score="2" ViewCount="" Body="&lt;p&gt;Haskell. I can't understand it. I hate what I don't understand.&lt;/p&gt;&#xA;" OwnerUserId="2325" LastActivityDate="2010-09-16T22:43:34.137" CommunityOwnedDate="2010-09-16T22:43:34.137" CommentCount="4" />
  <row Id="4565" PostTypeId="2" ParentId="552" CreationDate="2010-09-16T22:43:43.020" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Alan_Cooper&quot; rel=&quot;nofollow&quot;&gt;Alan Cooper&lt;/a&gt;, author of &lt;em&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0672326140&quot; rel=&quot;nofollow&quot;&gt;The Inmates Are Running the Asylum&lt;/a&gt;&lt;/em&gt;.  Yes, that's normally considered a design book, but I believe that developers can most benefit from reading it, second business managers, and third designers.  The reason why is that developers are the ones who are the source of the problems outlined in his book.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-09-16T22:43:43.020" CommunityOwnedDate="2010-09-17T19:05:49.223" />
  <row Id="4567" PostTypeId="2" ParentId="4305" CreationDate="2010-09-16T22:48:39.613" Score="3" ViewCount="" Body="&lt;p&gt;When a recognized language expert says to you &quot;You know the language&quot;.&lt;/p&gt;&#xA;" OwnerUserId="2325" LastActivityDate="2010-09-16T22:48:39.613" />
  <row Id="4568" PostTypeId="2" ParentId="4462" CreationDate="2010-09-16T22:49:16.353" Score="1" ViewCount="" Body="&lt;p&gt;The pub opposite the office.  Unfortunately, to be within in range of the company wi-fi we would have to sit by the window at the front, which made us visible to people coming and going at the office.  Apparently this was not an &quot;appropriate&quot; solution to the lack of available meeting rooms.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-16T22:49:16.353" CommunityOwnedDate="2010-09-16T22:49:16.353" CommentCount="1" />
  <row Id="4569" PostTypeId="2" ParentId="4177" CreationDate="2010-09-16T22:52:11.437" Score="6" ViewCount="" Body="&lt;p&gt;Powershell 2.0.&lt;/p&gt;&#xA;" OwnerUserId="2325" LastActivityDate="2010-09-16T22:52:11.437" />
  <row Id="4570" PostTypeId="1" CreationDate="2010-09-16T22:54:01.130" Score="6" ViewCount="287" Body="&lt;p&gt;Do you think that the criticisms in &lt;a href=&quot;http://yosefk.com/c++fqa/&quot; rel=&quot;nofollow&quot;&gt;Frequently Questioned Answers&lt;/a&gt; are accurate? &lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:18:03.900" LastActivityDate="2011-01-17T04:04:19.843" Title="What is your opinion of C++ Frequently Questioned Answers?" Tags="&lt;c++&gt;&lt;source-check&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="4571" PostTypeId="2" ParentId="4177" CreationDate="2010-09-16T22:57:02.137" Score="13" ViewCount="" Body="&lt;h3&gt;Perl.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;On Windows, OS X, and Linux. Perl is my preferred go to for scripting and integration. &lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-16T22:57:02.137" CommentCount="1" />
  <row Id="4572" PostTypeId="2" ParentId="4570" CreationDate="2010-09-16T23:01:41.520" Score="0" ViewCount="" Body="&lt;p&gt;Well, the author has a serious tendency to rant instead of simply informing, and IMO he's approaching a lot of topics from the wrong directions, but he's basically right about most things.  His discussions of the questions, once you peel away the layers of vitriol, reveal an admirably in-depth understanding of things that are going on under the hood, and do a good job of explaining why C++ is doing so many of those things wrong.&lt;/p&gt;&#xA;" OwnerUserId="935" LastEditorUserId="935" LastEditorDisplayName="" LastEditDate="2010-09-16T23:08:48.730" LastActivityDate="2010-09-16T23:08:48.730" CommentCount="1" />
  <row Id="4573" PostTypeId="1" CreationDate="2010-09-16T23:16:34.013" Score="5" ViewCount="501" Body="&lt;p&gt;For some time now, I've been unable to settle on a coding standard and use it concistently between projects. When starting a new project, I tend to change some things around (add a space there, remove a space there, add a line break there, an extra indent there, change naming conventions, etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I figured that I might provide a piece of sample code, in C++, and ask you to rewrite it to fit &lt;em&gt;your&lt;/em&gt; standard of coding. Inspiration is always good, I say. ^^ So here goes:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#ifndef _DERIVED_CLASS_H__&#xA;#define _DERIVED_CLASS_H__&#xA;&#xA;/**&#xA; * This is an example file used for sampling code layout.&#xA; *&#xA; * @author Firstname Surname&#xA; */&#xA;&#xA;&#xA;&#xA;#include &amp;lt;stdio&amp;gt;&#xA;#include &amp;lt;string&amp;gt;&#xA;#include &amp;lt;list&amp;gt;&#xA;#include &quot;BaseClass.h&quot;&#xA;#include &quot;Stuff.h&quot;&#xA;&#xA;&#xA;&#xA;/**&#xA; * The DerivedClass is completely useless. It represents uselessness in all its&#xA; * entirety.&#xA; */&#xA;class DerivedClass : public BaseClass {&#xA;&#xA;    ////////////////////////////////////////////////////////////&#xA;    //   CONSTRUCTORS / DESTRUCTORS&#xA;    ////////////////////////////////////////////////////////////&#xA;&#xA;public:&#xA;&#xA;    /**&#xA;     * Constructs a useless object with default settings.&#xA;     *&#xA;     * @param value&#xA;     *        Is never used.&#xA;     * @throws Exception&#xA;     *         If something goes awry.&#xA;     */&#xA;    DerivedClass (const int value)&#xA;     : uselessSize_ (0) {}&#xA;&#xA;    /**&#xA;     * Constructs a copy of a given useless object.&#xA;     * &#xA;     * @param object&#xA;     *        Object to copy.&#xA;     * @throws OutOfMemoryException&#xA;     *         If necessary data cannot be allocated.&#xA;     */&#xA;    DerivedClass (const DerivedClass&amp;amp; object) {}&#xA;&#xA;    /**&#xA;     * Destroys this useless object.&#xA;     */&#xA;    ~DerivedClass ();&#xA;&#xA;&#xA;&#xA;    ////////////////////////////////////////////////////////////&#xA;    //   PUBLIC METHODS&#xA;    ////////////////////////////////////////////////////////////&#xA;&#xA;public:&#xA;&#xA;    /**&#xA;     * Clones a given useless object.&#xA;     *&#xA;     * @param object&#xA;     *        Object to copy.&#xA;     * @return This useless object.&#xA;     */&#xA;    DerivedClass&amp;amp; operator= (const DerivedClass&amp;amp; object) {&#xA;        stuff_ = object.stuff_;&#xA;        uselessSize_ = object.uselessSize_;        &#xA;    }&#xA;&#xA;    /**&#xA;     * Does absolutely nothing.&#xA;     *&#xA;     * @param useless&#xA;     *        Pointer to useless data.&#xA;     */&#xA;    void doNothing (const int* useless) {&#xA;        if (useless == NULL) {&#xA;            return;&#xA;        }&#xA;        else {&#xA;            int womba = *useless;&#xA;&#xA;            switch (womba) {&#xA;                case 0:&#xA;                    cout &amp;lt;&amp;lt; &quot;This is output 0&quot;;&#xA;                    break;&#xA;&#xA;                case 1:&#xA;                    cout &amp;lt;&amp;lt; &quot;This is output 1&quot;;&#xA;                    break;&#xA;&#xA;                case 2:&#xA;                    cout &amp;lt;&amp;lt; &quot;This is output 2&quot;;&#xA;                    break;&#xA;&#xA;                default:&#xA;                    cout &amp;lt;&amp;lt; &quot;This is default output&quot;;&#xA;                    break;&#xA;            }&#xA;        }&#xA;    }&#xA;&#xA;    /**&#xA;     * Does even less.&#xA;     */&#xA;    void doEvenLess () {&#xA;        int mySecret = getSecret ();&#xA;        int gather = 0;&#xA;        for (int i = 0; i &amp;lt; mySecret; i++) {&#xA;            gather += 2;&#xA;        }&#xA;    }&#xA;&#xA;&#xA;&#xA;    ////////////////////////////////////////////////////////////&#xA;    //   PRIVATE METHODS&#xA;    ////////////////////////////////////////////////////////////&#xA;&#xA;private:&#xA;&#xA;    /**&#xA;     * Gets the secret value of this useless object.&#xA;     *&#xA;     * @return A secret value.&#xA;     */&#xA;    int getSecret () const {&#xA;        if ((RANDOM == 42) &amp;amp;&amp;amp; (stuff_.size() &amp;gt; 0) || (1000000000000000000 &amp;gt; 0)&#xA;            &amp;amp;&amp;amp; true) {&#xA;&#xA;            return 420;&#xA;        }&#xA;        else if (RANDOM == -1) {&#xA;            return ((5 * 2) + (4 - 1)) / 2;&#xA;        }&#xA;&#xA;        int timer = 100;&#xA;        bool stopThisMadness = false;&#xA;        while (!stopThisMadness) {&#xA;            do {&#xA;                timer--;&#xA;            } while (timer &amp;gt; 0);&#xA;&#xA;            stopThisMadness = true;&#xA;        }&#xA;    }&#xA;&#xA;&#xA;&#xA;    ////////////////////////////////////////////////////////////&#xA;    //   FIELDS&#xA;    ////////////////////////////////////////////////////////////&#xA;&#xA;private:&#xA;&#xA;    /**&#xA;     * Don't know what this is used for.&#xA;     */&#xA;    static const int RANDOM = 42;&#xA;&#xA;    /**&#xA;     * List of lists of stuff.&#xA;     */&#xA;    std::list &amp;lt;Stuff&amp;gt; stuff_;&#xA;&#xA;    /**&#xA;     * Specifies the size of this object's uselessness.&#xA;     */&#xA;    size_t uselessSize_;&#xA;&#xA;};&#xA;&#xA;&#xA;&#xA;#endif&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="8432" LastEditorDisplayName="" LastEditDate="2011-02-21T12:25:11.677" LastActivityDate="2011-02-21T17:56:33.193" Title="What C++ coding standard do you use?" Tags="&lt;style-guide&gt;&lt;coding-standards&gt;&lt;c++&gt;" AnswerCount="7" CommentCount="8" FavoriteCount="1" />
  <row Id="4574" PostTypeId="2" ParentId="4573" CreationDate="2010-09-16T23:30:30.060" Score="1" ViewCount="" Body="&lt;p&gt;Personally I like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Bar MyClass::foo(Bar _input){&#xA;    if( _input.next() != NULL ){&#xA;        string functionVar = &quot;something&quot;;&#xA;        _input.print( functionVar );&#xA;&#xA;        return m_MemberVariable + _input;&#xA;    }&#xA;    else{&#xA;        return m_MemberVariable;&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But I will use whatever standards my team agrees to use.  It's better that way for everybody.  If it really bothers you that much you can grab a code beautifier which runs during check-out and check-in to change the format to match your styles without violating company guildelines.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-16T23:30:30.060" />
  <row Id="4575" PostTypeId="2" ParentId="4177" CreationDate="2010-09-16T23:31:47.943" Score="4" ViewCount="" Body="&lt;p&gt;English:  &quot;Have the intern do it.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All joking aside, &lt;strong&gt;Python&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-16T23:31:47.943" />
  <row Id="4576" PostTypeId="2" ParentId="4570" CreationDate="2010-09-16T23:32:02.513" Score="11" ViewCount="" Body="&lt;p&gt;There are good reasons to dislike C++. The complexity, the multitude of poor, broken, or incomplete implementations, the impracticality of adapting it for specialized tasks...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But taking a FAQ, written to aid users who for whatever reason &lt;em&gt;are&lt;/em&gt; using it, and twisting that into a vehicle for voicing your own complaints, problems, and prejudices... no matter how valid or justifiable they might be on their own... is just ugly. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, it comes across as sour grapes: the author obviously struggled with C++ and has been more than happy to move on to something else, but lacks the confidence in his own convictions to give a fair comparison of its costs and its benefits, or even simply state, &quot;this didn't work for me when I tried to apply it to my problems&quot;. Instead, he seems to feel compelled to argue that the satisfaction he failed to attain is not worth trying for, that no grapes could &lt;em&gt;possibly&lt;/em&gt; be sweet enough to compensate him for his struggles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't recommend the FQA to &lt;em&gt;anyone&lt;/em&gt;, even if I were trying to dissuade them from using C++. &lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-16T23:32:02.513" CommentCount="1" />
  <row Id="4577" PostTypeId="2" ParentId="4142" CreationDate="2010-09-16T23:37:05.067" Score="2" ViewCount="" Body="&lt;p&gt;I think you're looking for &quot;scaffolding&quot;, where the software generates views that allow users to maintain the data without you having to do much or any work.  If you must stick with PHP, then look at CakePHP. &lt;a href=&quot;http://book.cakephp.org/view/105/Scaffolding&quot; rel=&quot;nofollow&quot;&gt;http://book.cakephp.org/view/105/Scaffolding&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But two quick suggestions for you. Look at this site: &lt;a href=&quot;http://www.phpscaffold.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.phpscaffold.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second suggestion: Consider switching to Python/Django or Ruby on Rails.  Both of those are better than what PHP has to offer in terms of scaffolding.  There may be something in PHP somewhere that's as good, but I have not seen it.  CakePHP is the closest I know of.&lt;/p&gt;&#xA;" OwnerUserId="1870" LastActivityDate="2010-09-16T23:37:05.067" />
  <row Id="4578" PostTypeId="2" ParentId="4305" CreationDate="2010-09-16T23:42:57.397" Score="0" ViewCount="" Body="&lt;p&gt;If you can go into a job interview, answer questions on the language for the interviewers, and have one comment to another &quot;Yep, this [guy|gal] knows $language&quot;, then you probably know the language.&lt;/p&gt;&#xA;" OwnerUserId="2332" LastActivityDate="2010-09-16T23:42:57.397" CommentCount="1" />
  <row Id="4580" PostTypeId="2" ParentId="1785" CreationDate="2010-09-16T23:54:09.283" Score="0" ViewCount="" Body="&lt;p&gt;Recognize that anything that can go wrong will go wrong.&#xA;Spend very little time writing code – but recognize and reuse common patterns. Refactor code constantly to reach the ideal design.&lt;/p&gt;&#xA;" OwnerUserId="2337" LastActivityDate="2010-09-16T23:54:09.283" CommunityOwnedDate="2010-09-16T23:54:09.283" />
  <row Id="4581" PostTypeId="2" ParentId="4522" CreationDate="2010-09-16T23:56:31.950" Score="1" ViewCount="" Body="&lt;p&gt;This is a late answer. I agree with all the points in the accepted answer, but I wanted to add that I use VMs exclusively for Web development, and not just for testing. I'm on an iMac using VirtualBox to run Windows, Fedora, and Ubuntu -- sometimes all at once. I don't have any problems with performance. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer working this way because I work for customers running both Fedora and Ubuntu servers and it allows me to closely match the development environment with the production environment. It also makes me a better systems administrator in the areas that are most important from a development standpoint. &lt;/p&gt;&#xA;" OwnerUserId="2335" LastActivityDate="2010-09-16T23:56:31.950" />
  <row Id="4582" PostTypeId="2" ParentId="4573" CreationDate="2010-09-17T00:00:06.640" Score="2" ViewCount="" Body="&lt;p&gt;I separate in a header (.hpp) and a code (.cpp) file, the documention is in the code file.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/**&#xA; * This is an example file used for sampling code layout.&#xA; *&#xA; * @author Firstname Surname&#xA; */&#xA;&#xA;#ifndef DERIVED_CLASS_H&#xA;#define DERIVED_CLASS_H&#xA;&#xA;#include &amp;lt;stdio&amp;gt;&#xA;#include &amp;lt;string&amp;gt;&#xA;#include &amp;lt;list&amp;gt;&#xA;&#xA;#include &quot;BaseClass.h&quot;&#xA;#include &quot;Stuff.h&quot;&#xA;&#xA;/**&#xA; * The DerivedClass is completely useless.&#xA; * It represents uselessness in all its entirety.&#xA; */&#xA;class DerivedClass : public BaseClass&#xA;{&#xA;public:&#xA;    DerivedClass(const int value);&#xA;    ItemList(const DerivedClass &amp;amp; object);&#xA;    ~ItemList();&#xA;&#xA;    DerivedClass&amp;amp; operator=(const DerivedClass &amp;amp; object);&#xA;&#xA;    void doNothing(const int * useless);&#xA;    void doEvenLess();&#xA;&#xA;private:&#xA;    int getSecret () const;&#xA;&#xA;    static const int RANDOM = 42; /**&amp;lt; Don't know what this is used for. */&#xA;    std::list &amp;lt;Stuff&amp;gt; _stuff;     /**&amp;lt; This is a list of lists of stuff. */&#xA;    size_t _uselessSize;          /**&amp;lt; Specifies the size of this object's uselessness. */&#xA;};&#xA;&#xA;#endif&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-17T00:00:06.640" CommentCount="3" />
  <row Id="4583" PostTypeId="2" ParentId="4104" CreationDate="2010-09-17T00:00:09.790" Score="4" ViewCount="" Body="&lt;p&gt;I did a good amount of complex site development on CakePHP, doing banking and stock exchange software for virtual worlds.  I used CakePHP for about a year, before finally deciding that I need to bite the bullet and learn Rails.  I ended up moving to Python and Django instead, for performance reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have 3 different answers for you:&#xA;* The first site you build in Django or Rails will be slower.&#xA;* The second site you build in Django or Rails will be faster.&#xA;* You may produce far better software once you invest the time to get comfortable with the approach of building Rails, or Django sites.  This is for a number of reasons I list below.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Scaffolding&lt;/strong&gt;.  Having the system automatically generate the basic add/change/delete views so that my customers could start working with figuring out aspects of the application has been a huge benefit.  This happens with CakePHP, though, also.  But the out-of-the-box Django scaffolding blows the doors off CakePHP (last time I saw CakePHP has been a while, though).  But there may be add-on projects that try to make CakePHP better in this regard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Execution Speed&lt;/strong&gt;.  Unless you use APC, a Django app is going to load and run a lot faster.  This is because Python pre-parses in much the same way that PHP's APC does-- except that the Python stuff is far far easier to get working than APC is.  For small sites this may mean nothing to you.  But on the apps I was working on, there were around 3000 lines of code between my app and the CakePHP framework that got loaded on most requests.  The difference when I redid things in Python and all that infrastructure was preparsed/preloaded was huge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Prebuilt components.&lt;/strong&gt;  The way you get real serious speed out of Rails or Django-- the truly revolutionary stuff that you dream about-- is by composing and tweaking prebuilt apps and putting them together.  An example would be something like a movie reviewing site: You take a user authentication app (prebuilt with either Rails or Django), you mix in a picture handling app, plus a tagging app, plus a voting app.  All of those things are pre-built components you can use for either Django or Rails.  The platforms are designed to be able to mix and match those components and re-skin them with your own UI personalization.  Then wham, site finished.  This is also possible on CakePHP, but to a lesser extent: it's more difficult to find the re-usable components you need there, and more difficult to integrate them.  There are CakePHP afficionados that would disagree with me here, and I'll admit that CakePHP has done an amaing job of immitating rails.  But there are limits, and there's nothing like the real thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Industrial strength packaging.&lt;/strong&gt; It is easier to re-use your own software in multiple projects in Python or Ruby than it is in PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These things can lead to an increase in productivity, once you become accustomed to them.  There is some up front cost to learn it.  But it's nothing compared to the cost of never learning anything new.  It'll totally be worthwhile to your career to spend some time learnign either Rails or Django, a couple of weeks on a play side project.  Even if you never switch, the time invested will be super worthwhile.&lt;/p&gt;&#xA;" OwnerUserId="1870" LastActivityDate="2010-09-17T00:00:09.790" />
  <row Id="4584" PostTypeId="2" ParentId="3732" CreationDate="2010-09-17T00:03:52.323" Score="0" ViewCount="" Body="&lt;p&gt;Being told the simplest solution is not the right solution, because it doesn't align with the &lt;strong&gt;decades old paradigms&lt;/strong&gt; that everything else has gone off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hello! There are these new things called decimals that we can use, we don't have to rely on floating points anymore -_-&lt;/p&gt;&#xA;" OwnerUserId="965" LastActivityDate="2010-09-17T00:03:52.323" CommunityOwnedDate="2010-09-17T00:03:52.323" />
  <row Id="4585" PostTypeId="1" AcceptedAnswerId="4599" CreationDate="2010-09-17T00:09:40.620" Score="4" ViewCount="302" Body="&lt;p&gt;I am trying to come up with a problem that is easily solvable in a parallel manner and that requires communication between threads for a test.  I also am trying to avoid problems that require require random waits, which rules out dining philosophers and producer-consumer (bounded buffer), two of the classics.  My goal is for the student to be able to write the program in less than 20-30 minutes in front of a computer not knowing of the problem beforehand.  (This is to prevent preparation more than to come up with something novel.)  I am trying to stress the communication aspect of the program, though the multi-threaded nature is also important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone have some ideas?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: I'm using Google Go for the language and testing comprehension of the goroutines/channels combo vs an actors library that I authored.&lt;/p&gt;&#xA;" OwnerUserId="865" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-24T22:29:51.380" LastActivityDate="2010-09-24T22:29:51.380" Title="Looking for parallel programming problem" Tags="&lt;parallelism&gt;&lt;go&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="4586" PostTypeId="2" ParentId="2846" CreationDate="2010-09-17T00:15:33.237" Score="12" ViewCount="" Body="&lt;h1&gt;Fortran&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;The single time I tried to learn and use it, I discovered the hard way that there no longer exists a Fortran IV compiler, and that in code written prior to 1980, it may as well be heavily-obfuscated C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a frightfully arcane language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(And no one's mentioned it yet?)&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-09-17T00:15:33.237" CommunityOwnedDate="2010-09-17T00:15:33.237" CommentCount="13" />
  <row Id="4587" PostTypeId="1" AcceptedAnswerId="4676" CreationDate="2010-09-17T00:16:50.840" Score="41" ViewCount="2003" Body="&lt;p&gt;When I co-oped during college, I had to fill out an evaluation of the co-op afterwards.  One metric I always had to rate was how much the company required me to &quot;Make ethical decisions related to your profession.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This always seemed kinda silly- I mean, my first co-op was writing java apps to manage industrial radios.  There wasn't much moral ambiguity going on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, I'm wonder what sort of ethical dilemmas one might actually encounter in software development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter. - Nathanial Borenstein&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6" LastEditorUserId="6" LastEditorDisplayName="" LastEditDate="2010-09-17T02:41:22.393" LastActivityDate="2011-03-15T09:47:51.053" CommunityOwnedDate="2011-01-07T00:56:11.870" Title="What ethical problems realistically arise in programming?" Tags="&lt;jobs&gt;&lt;ethics&gt;" AnswerCount="33" CommentCount="5" FavoriteCount="11" />
  <row Id="4588" PostTypeId="2" ParentId="4305" CreationDate="2010-09-17T00:21:54.167" Score="1" ViewCount="" Body="&lt;p&gt;This is totally subjective, but IMO the way I realized that I really know the language is when I started being able to look at a bug someone else introduced in the codebase and figure out, without asking them, whether this was put in there deliberately (as part of a fix to something else, perhaps) or accidentally, just by reading the code, and then explain my reasoning to the manager, who does not know the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I occasionally get &quot;why&quot; questions like that, so the manager can judge whether and how to fix something, and I've sort of learned what to look for to determine the intent of the person who wrote the code.  That's how I know I know the language: I can reason about not only what this code does, but why it does it that way.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-17T00:21:54.167" CommentCount="1" />
  <row Id="4589" PostTypeId="2" ParentId="4587" CreationDate="2010-09-17T00:22:07.620" Score="12" ViewCount="" Body="&lt;p&gt;Revealing a secret or non-released project to competitors, or passing source code to competitors. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-17T00:22:07.620" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="7" />
  <row Id="4590" PostTypeId="2" ParentId="4587" CreationDate="2010-09-17T00:28:39.957" Score="7" ViewCount="" Body="&lt;p&gt;Spend time talking about non-work and then count that as work time.  Not specific to software development at all, but still something to be aware of.&lt;/p&gt;&#xA;" OwnerUserId="88" LastActivityDate="2010-09-17T00:28:39.957" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="6" />
  <row Id="4591" PostTypeId="2" ParentId="4587" CreationDate="2010-09-17T00:32:28.043" Score="31" ViewCount="" Body="&lt;p&gt;The pressure (usually from higher-ups unfamiliar with the technical issues involved) to put DRM into the program &quot;to keep people from stealing it.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not only is this technically impossible in the Internet Age--all it takes is for one person anywhere to find one mistake and crack it one time and upload their crack, and anyone in the world can get your program for free--it's also morally repugnant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any other context, creating software that takes the control of the system out of the hands of the owner of the computer and causes the computer to act against the owner's will and against his interests is known as hacking, and it's a serious crime.  I see no reason why DRM shouldn't be regarded in exactly the same way, the DMCA notwithstanding.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-17T00:32:28.043" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="12" />
  <row Id="4592" PostTypeId="2" ParentId="4587" CreationDate="2010-09-17T00:39:16.623" Score="8" ViewCount="" Body="&lt;p&gt;One ethical decision most software developers have to make is the fight against what is best for the company and what is best for myself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example you may be tasked with making a small GUI app in C#.  If you were very experienced in Winforms and could hash it out in half a day you may decide instead to take 3 days and learn WPF and do it via WPF instead.  Because it's better for you.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-17T00:39:16.623" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="3" />
  <row Id="4593" PostTypeId="2" ParentId="4573" CreationDate="2010-09-17T00:49:44.563" Score="2" ViewCount="" Body="&lt;p&gt;I have a perhaps more compact style:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;My headers get listed first, followed by standard headers.&lt;/li&gt;&#xA;&lt;li&gt;I believe strongly in naming conventions that are self-documenting.&lt;/li&gt;&#xA;&lt;li&gt;I use comments sparingly, and only for documentation purposes, and most would probably call my code &quot;undocumented.&quot; It's documented, I just don't use Doxygen like everyone else.&lt;/li&gt;&#xA;&lt;li&gt;My indentation style is compact, and label-like syntax is always exdented.&lt;/li&gt;&#xA;&lt;li&gt;I do, in fact, use tabs, but under a single strict rule: only for indentation, &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;... And so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use a variation of the Google C++ Vim indent plugin to help me enforce it.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#ifndef DERIVED_CLASS_H&#xA;#define DERIVED_CLASS_H&#xA;&#xA;#include &quot;BaseClass.h&quot;&#xA;#include &quot;Stuff.h&quot;&#xA;&#xA;#include &amp;lt;stdio&amp;gt;&#xA;#include &amp;lt;string&amp;gt;&#xA;#include &amp;lt;list&amp;gt;&#xA;&#xA;/** A class that has no purpose, no value, and no use. Like me. */&#xA;&#xA;class CompletelyUseless : public BaseClass {&#xA;private:&#xA;&#xA;    static const int RANDOM = 42;&#xA;&#xA;    std::list &amp;lt;Stuff&amp;gt; stuff_;&#xA;&#xA;    size_t size_;&#xA;&#xA;public:&#xA;    CompletelyUseless (const int value)&#xA;        : size_ (0) {}&#xA;&#xA;    CompletelyUseless (const CompletelyUseless&amp;amp; object) {}&#xA;&#xA;    ~CompletelyUseless ();&#xA;&#xA;public:&#xA;    CompletelyUseless&amp;amp; operator= (const CompletelyUseless&amp;amp; object) {&#xA;        stuff_ = object.stuff_;&#xA;        uselessSize_ = object.uselessSize_;        &#xA;    }&#xA;&#xA;    void doAbsolutelyNothing (const int&amp;amp; useless) {&#xA;        switch (useless) {&#xA;        case 0:&#xA;            cout &amp;lt;&amp;lt; &quot;This is output 0&quot;;&#xA;            break;&#xA;&#xA;        case 1:&#xA;            cout &amp;lt;&amp;lt; &quot;This is output 1&quot;;&#xA;            break;&#xA;&#xA;        case 2:&#xA;            cout &amp;lt;&amp;lt; &quot;This is output 2&quot;;&#xA;            break;&#xA;&#xA;        default:&#xA;            cout &amp;lt;&amp;lt; &quot;This is default output&quot;;&#xA;            break;&#xA;        }&#xA;    }&#xA;&#xA;    void doEvenLess () {&#xA;        int mySecret = genSecretValue ();&#xA;        int gather = 0;&#xA;        for (int i = 0; i &amp;lt; mySecret; i++) {&#xA;            gather += 2;&#xA;        }&#xA;    }&#xA;&#xA;protected:&#xA;    int genSecretValue () const {&#xA;        if ((RANDOM == 42) &amp;amp;&amp;amp; (stuff_.size() &amp;gt; 0) &#xA;                || (1000000000000000000 &amp;gt; 0)&#xA;                &amp;amp;&amp;amp; true) {&#xA;            return 420;&#xA;        } else if (RANDOM == -1) {&#xA;            return ((5 * 2) + (4 - 1)) / 2;&#xA;        }&#xA;&#xA;        int timer = 100;&#xA;        bool stopThisMadness = false;&#xA;&#xA;        while (!stopThisMadness) {&#xA;            do {&#xA;                timer--;&#xA;            } while (timer &amp;gt; 0);&#xA;&#xA;            stopThisMadness = true;&#xA;        }&#xA;    }&#xA;};&#xA;&#xA;#endif//DERIVED_CLASS_H&#xA;/* vim:ci:sw=4 ts=4 sws=4 */&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="83" LastEditorUserId="83" LastEditorDisplayName="" LastEditDate="2010-10-09T00:47:59.133" LastActivityDate="2010-10-09T00:47:59.133" CommentCount="2" />
  <row Id="4594" PostTypeId="2" ParentId="4573" CreationDate="2010-09-17T00:50:12.057" Score="6" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;I don't write useless meta comments which describe parts of my code.&lt;/li&gt;&#xA;&lt;li&gt;Most comments are simply single line comments, so that I can comment out large blocks of code with /* and */ for testing.&lt;/li&gt;&#xA;&lt;li&gt;Braces are always on their own line because I find the code easier to read that way.&lt;/li&gt;&#xA;&lt;li&gt;I always have at most (if any) one public, private and protected section.&lt;/li&gt;&#xA;&lt;li&gt;I don't waste time in comments with formatting like &quot;This is a parameter name coming up!&quot;&lt;/li&gt;&#xA;&lt;li&gt;I don't put comments just to have one like on a destructor, I know it's a destructor, so does everyone else, no extra clarification needed.  &lt;/li&gt;&#xA;&lt;li&gt;I don't put separators into my code with big comment blocks. &lt;/li&gt;&#xA;&lt;li&gt;If I have a multi line comment that continues I will put a space before the second comment line starts after the //.&lt;/li&gt;&#xA;&lt;li&gt;I do add comments on parts of code that are not immediately obvious what it does.  Such as loops that do something.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#pragma once  &#xA;&#xA;#include &amp;lt;stdio&amp;gt;&#xA;#include &amp;lt;string&amp;gt;&#xA;#include &amp;lt;list&amp;gt;&#xA;&#xA;#include &quot;BaseClass.h&quot;&#xA;#include &quot;Stuff.h&quot;&#xA;&#xA;&#xA;//The DerivedClass is completely useless. It represents uselessness in &#xA;// all its entirety.&#xA;class DerivedClass : public BaseClass &#xA;{&#xA;public:&#xA;&#xA;    //Constructs a useless object with default value.&#xA;    DerivedClass (const int value)&#xA;     : uselessSize_ (0) &#xA;    {&#xA;    }&#xA;&#xA;    DerivedClass (const DerivedClass&amp;amp; object) &#xA;    {&#xA;    }&#xA;&#xA;    virtual ~DerivedClass();&#xA;&#xA;    //Clones a given useless object and returns itself&#xA;    // object specifies the object to clone from&#xA;    const DerivedClass&amp;amp; operator= (const DerivedClass&amp;amp; object) &#xA;    {&#xA;        stuff_ = object.stuff_;&#xA;        uselessSize_ = object.uselessSize_;&#xA;        return *this;&#xA;    }&#xA;&#xA;    //Does absolutely nothing&#xA;    // useless is a pointer to some useless int&#xA;    void doNothing (const int *useless) &#xA;    {&#xA;        if (useless == NULL) &#xA;        {&#xA;            return;&#xA;        }&#xA;        else &#xA;        {&#xA;            int womba = *useless;&#xA;&#xA;            switch (womba) &#xA;            {&#xA;                case 0:&#xA;                    cout &amp;lt;&amp;lt; &quot;This is output 0&quot;;&#xA;                    break;&#xA;&#xA;                case 1:&#xA;                    cout &amp;lt;&amp;lt; &quot;This is output 1&quot;;&#xA;                    break;&#xA;&#xA;                case 2:&#xA;                    cout &amp;lt;&amp;lt; &quot;This is output 2&quot;;&#xA;                    break;&#xA;&#xA;                default:&#xA;                    cout &amp;lt;&amp;lt; &quot;This is default output&quot;;&#xA;                    break;&#xA;            }&#xA;        }&#xA;    }&#xA;&#xA;    //Does even less.&#xA;    void doEvenLess () &#xA;    {&#xA;        int mySecret = getSecret ();&#xA;        int gather = 0;&#xA;        for (int i = 0; i &amp;lt; mySecret; i++) &#xA;        {&#xA;            gather += 2;&#xA;        }&#xA;    }&#xA;&#xA;private:&#xA;&#xA;    //Gets the secret value of this useless object.&#xA;    int getSecret() const &#xA;    {&#xA;        if ((RANDOM == 42) &#xA;          &amp;amp;&amp;amp; (stuff_.size() &amp;gt; 0) &#xA;          || (1000000000000000000 &amp;gt; 0)&#xA;          &amp;amp;&amp;amp; true) &#xA;        {//Continue looping until some condition is met&#xA;&#xA;            return 420;&#xA;        }&#xA;        else if (RANDOM == -1) &#xA;        {&#xA;            return ((5 * 2) + (4 - 1)) / 2;&#xA;        }&#xA;&#xA;        int timer = 100;&#xA;        bool stopThisMadness = false;&#xA;        while (!stopThisMadness) &#xA;        {&#xA;            do &#xA;            {&#xA;                timer--;&#xA;            } while (timer &amp;gt; 0);&#xA;&#xA;            stopThisMadness = true;&#xA;        }&#xA;    }&#xA;&#xA;    static const int RANDOM = 42;&#xA;    std::list &amp;lt;Stuff&amp;gt; stuff_;&#xA;    size_t uselessSize_;&#xA;};&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-09-17T01:00:32.000" LastActivityDate="2010-09-17T01:00:32.000" CommentCount="1" />
  <row Id="4595" PostTypeId="2" ParentId="4587" CreationDate="2010-09-17T01:13:27.487" Score="22" ViewCount="" Body="&lt;p&gt;A number of years ago I worked for a company which sold vehicle insurance through dealerships. When making a sale, payment, or claim, dealerships penned in and mailed forms to our processing centers. Afterward, these forms were punched into our accounting system a large data entry team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few months after I was hired, I was asked to create a system which allows our dealerships to submit forms online, where they would be inserted into our accounting system in near real time. After the system went into production, paper forms were slowly phased out, and my company laid off an entire data center of minimum wage working class people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure if its unethical, but its deeply unsettling knowing that you're writing software with the expectation of putting people out of a job.&lt;/p&gt;&#xA;" OwnerUserId="1467" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-09-17T11:39:55.490" LastActivityDate="2010-09-17T11:39:55.490" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="10" />
  <row Id="4596" PostTypeId="1" CreationDate="2010-09-17T01:26:57.147" Score="7" ViewCount="624" Body="&lt;p&gt;We have an offshore development crew who has a bad habit of installing nonsense software on corporate desktops (which has nothing to do with their job function) and so are considering removing their local administrator rights.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is Local Administrator, or local Power User a requirement with VS2010?  How do you run without elevated rights?  What issues will you run into?&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-19T19:20:20.347" LastActivityDate="2011-02-08T13:33:39.217" Title="Is local &quot;User&quot; rights enough or do developers need Local Administrator or Power User while coding?" Tags="&lt;visual-studio-2010&gt;" AnswerCount="8" CommentCount="2" />
  <row Id="4597" PostTypeId="2" ParentId="4587" CreationDate="2010-09-17T01:34:25.587" Score="29" ViewCount="" Body="&lt;p&gt;In certain fields (aerospace,  medical....) the pressure to deliver a build vs the desire to get everything right can be an ethical pull, when you start considering the consequences of letting an error slip through. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you do when you know your unit tests might not have covered all the edge cases, but you are out of time for testing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you do when reading the code shows a tiny chance that under very rare conditions the software can have an error, but there is no time (or maybe no possibility) to reliably test for those conditions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a conscientious developer, I work toward getting everything right, but I certainly have felt the pressure to &quot;just ship it&quot;.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-17T01:34:25.587" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="9" />
  <row Id="4598" PostTypeId="2" ParentId="4596" CreationDate="2010-09-17T01:38:38.360" Score="11" ViewCount="" Body="&lt;p&gt;A programmer should work as a limited user with admin access. That is, the programmer should be the admin of the machine, but while working, he should &lt;em&gt;always&lt;/em&gt; use a limited user account.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need elevated rights to work, for anything but installing software, you're doing something very wrong. Worse, if you work as a power user or disable UAC prompts or the like, you're ignoring issues that will affect end-users of your software, forcing them to run with the same privileges you did. This is wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is true, irrespective of the operating system you're on. Though Windows seems to be the only one where where it comes up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To clarify:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I say the developer should be a limited user, I mean that they should have full admin rights to the machine, but when they test their code, it should be done in a limited-user environment. For example, the developer could be operating the machine as an Admin-capable user, but runs all tests in a virtual machine or in a limited user account. On Linux, this means simply that the dev has &lt;code&gt;sudo&lt;/code&gt; access; on Windows, this may mean an Administrator-level account with UAC and other security features fully enabled.&lt;/p&gt;&#xA;" OwnerUserId="83" LastEditorUserId="83" LastEditorDisplayName="" LastEditDate="2011-02-08T00:21:24.543" LastActivityDate="2011-02-08T00:21:24.543" CommentCount="3" />
  <row Id="4599" PostTypeId="2" ParentId="4585" CreationDate="2010-09-17T01:52:35.923" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://video.google.com/videoplay?docid=810232012617965344&quot; rel=&quot;nofollow&quot;&gt;This presentation&lt;/a&gt; describes the use of channels to implement a prime number sieve. Very loosely, it works like this (sorry, don't know erlang, hopefully this pseudoerlang will be adequate):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;numbers(num) =&#xA;    receive&#xA;        { next, replyChan } -&amp;gt;&#xA;            replyChan ! { num };&#xA;            numbers(num + 1)&#xA;    end&#xA;&#xA;filter(sourceChannel, predicate) =&#xA;    receive&#xA;        { next, replyChan } -&amp;gt;&#xA;            sourceChannel ! { next, self() }&#xA;            receive&#xA;                { num } when predicate(num) == true -&amp;gt; replyChan ! { num }&#xA;                { _ } -&amp;gt; self() ! { next, replyChan }&#xA;            end&#xA;            filter(sourceChannel, predicate)&#xA;    end           &#xA;&#xA;primes(currentNumberStream, number) =&#xA;    receive&#xA;        { next, replyChan } -&amp;gt;&#xA;            print number&#xA;            newNumberStream = spawn(filter, [currentNumberStream, fun x -&amp;gt; x % number &amp;lt;&amp;gt; 0])&#xA;            newNumberStream ! { next, self() }&#xA;            receive&#xA;                { newPrime } -&amp;gt; prime(newNumberStream, newPrime)&#xA;            end&#xA;    end&#xA;&#xA;// init with:&#xA;//    counter = spawn(numbers, [3])&#xA;//    primeStream = spawn(primes, [counter, 2])&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Starting with an infinite stream of numbers, you filter the stream by a prime. You get the next prime and filter the first stream by your new prime. Continue the process indefinitely, should output a sequence of prime.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know if this is exactly what your looking for, but it should be a easy-to-understand introduction to channels and actors.&lt;/p&gt;&#xA;" OwnerUserId="1467" LastActivityDate="2010-09-17T01:52:35.923" CommentCount="1" />
  <row Id="4600" PostTypeId="2" ParentId="4596" CreationDate="2010-09-17T01:53:00.160" Score="5" ViewCount="" Body="&lt;p&gt;It depends on what you expect them to develop independently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some things like IIS configuration, remote debugging, modify access to the GAC, the ability to run your own MSI would definitely be affected.  If these are things you expect the outsourced resources to do independently I would not attempt it without a lot of testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your outsource people are working on a desktop app they can debug locally you would likely get away with it with few issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming they are using source control you could always schedule periodic re-image of the machines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most places I have worked do a whole lot of the first case, and expect high independence, so all devs are local admins and the corporate policy allows for disciplinary measures if you install unapproved software to any machine and cause problems.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-17T01:53:00.160" />
  <row Id="4601" PostTypeId="2" ParentId="4570" CreationDate="2010-09-17T02:00:01.410" Score="9" ViewCount="" Body="&lt;p&gt;The author obviously hates C++, and apparently doesn't know how to use the language very well.  Such criticisms of any topic are rarely worthwhile, and the FQA is no exception.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Randomly picking 17.7 as an example, we see that the author slightly misunderstands the question, and throws in unnecessary vituperation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looking at the whole section (about exceptions):  The author doesn't really like exceptions.  Fine.  He does say some good things about them, then that the good things don't apply to C++ exceptions - not bothering to give much in the way of reasons.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The author is flat wrong in 17.3:  destructors can call functions that may throw without problem, provided they catch all exceptions thrown and don't try to repropagate one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In 17.4, the author goes on a rant about smart pointers.  It's technically true that you can and often will create a lot of different smart pointer classes from &lt;code&gt;shared_ptr&lt;/code&gt;, but they all work in precisely the same way, making the author's further complaints moot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;17.5 and 17.6 basically agree with the FAQ-Lite advice, combined with exhortations not to use C++, and something the author doesn't like about the C++ philosophy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, there's really nothing you are going to learn about exceptions here, except that there is somebody who doesn't like them who isn't entirely logical.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-17T02:00:01.410" />
  <row Id="4602" PostTypeId="2" ParentId="4587" CreationDate="2010-09-17T02:12:14.977" Score="6" ViewCount="" Body="&lt;p&gt;Being asked to code something that obviously serves an unethical purpose.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-17T02:12:14.977" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="4" />
  <row Id="4603" PostTypeId="2" ParentId="4587" CreationDate="2010-09-17T02:21:29.410" Score="5" ViewCount="" Body="&lt;p&gt;Whether to delay shipping the software to allow time to fix more known bugs or ship the software earlier and make consumers pay for the fixes (obviously this depends on how much control you have over the release date).&lt;/p&gt;&#xA;" OwnerUserId="40" LastActivityDate="2010-09-17T02:21:29.410" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="1" />
  <row Id="4604" PostTypeId="2" ParentId="1" CreationDate="2010-09-17T02:24:03.663" Score="2" ViewCount="" Body="&lt;p&gt;Comments that are put in because someone thinks it's ok to have 700 lines in one method are a smell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Comments that are there because you know if you don't put in a comment, someone will make the same mistake yet again are a smell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Comments put in because some code analysis tool demands it are also a smell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People that won't &lt;em&gt;ever&lt;/em&gt; put in a comment, or write even a little help for other developers are also a smell. I'm amazed at how many people won't write stuff down, but will then turn around and acknowledge they can't remember what they did 3 months ago. I don't like to write docs, but I like to have to tell people the same thing over and over again even less.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-17T02:24:03.663" CommunityOwnedDate="2011-01-31T09:04:54.130" />
  <row Id="4605" PostTypeId="2" ParentId="4319" CreationDate="2010-09-17T02:31:17.657" Score="1" ViewCount="" Body="&lt;p&gt;I'd suggest to print out a small version of the keyboard layout and tape it to the bottom border of your display.  Instead of sneaking peaks at the keyboard, you can look at the posted layout and reset your fingers on the home row by feeling for the little bumps on the F and J keys.  Your eyes won't move too far from what you had been typing, and you don't have to lift your fingers off the keyboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This worked really well for me when I converted to Dvorak, but it would work just as well for learning qwerty.&lt;/p&gt;&#xA;" OwnerUserId="2270" LastActivityDate="2010-09-17T02:31:17.657" />
  <row Id="4606" PostTypeId="2" ParentId="4319" CreationDate="2010-09-17T02:37:34.883" Score="1" ViewCount="" Body="&lt;p&gt;I was a frustrated touch-typist when I first took typing classes.  But one day I began mentally drawing lines between the keys to see what shapes certain words made.  For example, the word &quot;talent&quot; makes a five-pointed star.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did this a little bit at a time, all day long.  After a couple of weeks doing this, my typing skills began to improve dramatically.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-09-24T19:05:18.740" LastActivityDate="2010-09-24T19:05:18.740" CommentCount="1" />
  <row Id="4607" PostTypeId="1" AcceptedAnswerId="4620" CreationDate="2010-09-17T02:40:20.147" Score="8" ViewCount="953" Body="&lt;p&gt;At present most applications are still developed with C++, painfully. Lack of portability, in compatible libraries, memory leaks, slow compilation, and poor productivity. Even if you pick only a single from these shortages, it's still a big headache. However the surprising truth is that C++ remains the first choice for desktop applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compared to C++ Java has lots of advantages. The success in server side development shows that the language itself is good, Swing is also thought to be as programmer friendly as the highly recognized QT framework (No, never say even a single word about MFC!). All the disadvantages of C++ listed above has a solution in Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Performance!&quot;, Well that might still be the problem but to my experience it's a slight problem. I'd been using Java to decode some screen video and generate key frames. The video has a duration of more than 1 hour. The time spent on an average machine is just 1 minute. With C++ I don't expect even faster speed. In recent days there are many news on the JIT performance improvements, that make us feel Java is gradually becoming very suitable for desktop development, without people realizing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Isn't it?&lt;/p&gt;&#xA;" OwnerUserId="2347" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-17T03:17:12.533" LastActivityDate="2011-03-14T15:20:18.737" Title="Isn't Java a quite good choice for desktop applications?" Tags="&lt;programming-languages&gt;&lt;java&gt;&lt;c++&gt;" AnswerCount="7" CommentCount="15" FavoriteCount="2" />
  <row Id="4608" PostTypeId="2" ParentId="4319" CreationDate="2010-09-17T02:41:55.233" Score="1" ViewCount="" Body="&lt;p&gt;I think what did it for me was games that used the keyboard. I'm pretty sure I know where WASD are. G for Grenade and R for Reload are also pretty stuck in my fingers.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-17T02:41:55.233" />
  <row Id="4609" PostTypeId="2" ParentId="4319" CreationDate="2010-09-17T02:51:14.397" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Work at a callcentre&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No, seriously. I did 3 years at a callcenter, with AS200 terminals and IBM Model M keyboards, now I can touchtype with the best of them (given I have a heavy keyboard. My WPM is maybe 40 on flimpy OEM keyboards)&lt;/p&gt;&#xA;" OwnerUserId="965" LastActivityDate="2010-09-17T02:51:14.397" />
  <row Id="4610" PostTypeId="2" ParentId="4433" CreationDate="2010-09-17T02:54:15.220" Score="7" ViewCount="" Body="&lt;p&gt;He has SVN checkins to code bases he's never worked on...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If he gave you a scathing code review while eating a chicken salad sandwich dismissively, you'd still have to fight the strong urge to thank him...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;His pointers free'd themselves when he was writing straight C...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He is, the most interesting programmer in the world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I don't always unit test, but when I do, I prefer Gallio.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1790" LastActivityDate="2010-09-17T02:54:15.220" CommentCount="1" />
  <row Id="4611" PostTypeId="2" ParentId="2192" CreationDate="2010-09-17T02:57:05.530" Score="2" ViewCount="" Body="&lt;p&gt;Answering questions on stackexchange.com, like this one.&lt;/p&gt;&#xA;" OwnerUserId="2347" LastActivityDate="2010-09-17T02:57:05.530" CommunityOwnedDate="2011-01-05T06:12:52.770" CommentCount="1" />
  <row Id="4613" PostTypeId="2" ParentId="2291" CreationDate="2010-09-17T03:02:27.397" Score="-3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;QBasic&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The programing language that I know in my high school text book.&lt;/p&gt;&#xA;" OwnerUserId="2347" LastActivityDate="2010-09-17T03:02:27.397" CommunityOwnedDate="2010-09-17T03:02:27.397" CommentCount="1" />
  <row Id="4614" PostTypeId="1" AcceptedAnswerId="4625" CreationDate="2010-09-17T03:04:34.090" Score="35" ViewCount="1549" Body="&lt;p&gt;You know who they are.  They are the rock stars of programming: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;They code 10X&#xA;faster.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Their code just works.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They not only know their primary&#xA;language inside and out, but they&#xA;also know how it works under the&#xA;hood.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They know the answer to most any&#xA;question before you ask it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A few of them invented the programming&#xA;principles we all use.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;And they tend to be &#xA;uncharacteristically humble, as well.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What is it about these folks?  Is there something about their thought process that is fundamentally different from the above-average programmer?  Or are they simply very talented people that work hard?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To put it another way: How can I be like them?  I know what I think I need to learn to be that good, but it seems like it will take me the next ten years to learn it, and then my knowledge will be obsolete.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2011-04-05T17:09:50.483" CommunityOwnedDate="2011-04-05T15:40:39.513" Title="What differentiates the exceptional programmers from the really good ones?" Tags="&lt;learning&gt;&lt;experience&gt;&lt;development-process&gt;" AnswerCount="17" CommentCount="15" FavoriteCount="24" />
  <row Id="4615" PostTypeId="2" ParentId="4442" CreationDate="2010-09-17T03:05:02.467" Score="2" ViewCount="" Body="&lt;p&gt;If you write the web parts and your service-architecture well, you'll end up with a very good solution that will have many of the upsides of a desktop application with all the benefits of integrating with your SharePoint.  Instead of using the traditional MVC I'd recommend a service-oriented approach with most of the work being done in Services and front end jQuery (or extjs if that's your thing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is going to be integrating with your existing client/server architecture as a stopgap during SOA coding and deployment.  You lose very little, especially because your Winforms applications are going to require access to the service layer anyway to be functional (I'm making an assumption here, but from your description it sounds like it), so you can guarantee access to SharePoint (again, making some assumptions about your network configuration).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All in all, having a one-stop shop in Sharepoint with all your functionality seamlessly integrated and in one place seems like a best-case scenario to the end users.  It is, admittedly, a little more difficult to code your front end in JS, especially if you're new to this kind of development.  The effort to learn and do it right pays off in spades, at least IME.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disclaimer:  That's all based on a lot of assumptions about your app and your environment based on your post and my knowledge of people in similar situations.  Your situation may be radically different in ways I just don't know about.  Good luck!&lt;/p&gt;&#xA;" OwnerUserId="1790" LastActivityDate="2010-09-17T03:05:02.467" />
  <row Id="4617" PostTypeId="2" ParentId="4614" CreationDate="2010-09-17T03:09:57.813" Score="22" ViewCount="" Body="&lt;p&gt;You hit on a lot of it in your very last bullet point:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;And they tend to be uncharacteristically humble, as well.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's a combination of humility -- not just outward but also inside their minds.  They accept being wrong, making a mistake, and have a very quick turn around from frustration.  A lot of programmers will try something, fail, and then get very emotionally wrought pretty quickly, a state that is anathema to writing good code.  You have to accept that you're not perfect, and that you're going to screw up (often!), and that the best thing you can do is learn how to quickly recover when you do screw up.  It's a humble &lt;em&gt;confidence&lt;/em&gt;, like &quot;I know I'm going to mess up, but I also know if I keep trying, I'll get there eventually.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a saying in NLP, &quot;There is no failure, only feedback.&quot;  To be a rock star programmer, I think you have to embrace that.  There is nothing you can't code.  You might be slow at it, at first, but if you just keep trying and refuse to stop when you fail or screw something up, you'll deliver.  And in that process you'll learn all the mental tricks you need to become one of the best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Advice is, of course, only as good as its source, so...  all just my opinion.&lt;/p&gt;&#xA;" OwnerUserId="1790" LastActivityDate="2010-09-17T03:09:57.813" CommunityOwnedDate="2011-04-05T15:40:39.513" CommentCount="2" />
  <row Id="4618" PostTypeId="2" ParentId="3558" CreationDate="2010-09-17T03:12:17.597" Score="1" ViewCount="" Body="&lt;p&gt;Don't let that get you down. As get older you have other responsibilities and your priorities change. Kids are an excellent example - why would you be coding when you could be with your little one? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have found that I lose interest in my private projects occasionally too. I go with it, leave it be and eventually I find myself drawn to some new and exciting shiny tech which I land up playing with at home. It all seems to be cyclic, such as everything else is life. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Chill out, go with it. Be diligent about your work and keep an open mind. You'll find yourself drawn back in when the time is right.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-17T03:12:17.597" />
  <row Id="4619" PostTypeId="2" ParentId="4587" CreationDate="2010-09-17T03:12:19.590" Score="24" ViewCount="" Body="&lt;p&gt;The advertising industry requires programmers (cf. Google) and can produce ethical dilemmas. There are some simple ones:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Are you writing software to spam people?&lt;/li&gt;&#xA;&lt;li&gt;Are you writing software which you need to trick people into installing? (spyware, adware, useless toolbars which grandma doesn't know how to uninstall)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and some trickier ones:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Collecting user data and using it to advertise at people. What's reasonable? What's not? Privacy. Google. Oooh.&lt;/li&gt;&#xA;&lt;li&gt;Marketing at kids. Exploiting kids? Exploiting parents through their kids?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and even trickier ones from affiliates of the industry:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.gaiaonline.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.gaiaonline.com/&lt;/a&gt; -- Gaia Online. Spend $5 and get some animated bubbles on your avatar for a week, or some nonsense like that. The bubbles have a marginal cost pretty close to zero. What the deal? Are you exploiting someone? Or should you rely on them knowing what's really in their economic self-interest, lest you implicitly denigrate their values? &#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you worked for / partnered with that site (say, programming the gift card infrastructure - which you can actually buy in real stores, it's totally crazy) is it going to leave you feeling sleazy? If it were icky, could you be justified in saying &quot;it's bog-standard computer engineering work, which is relatively fungible, and it's pretty inevitable, so it really doesn't make a difference who does it&quot; or something to that effect? &lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2348" LastActivityDate="2010-09-17T03:12:19.590" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="2" />
  <row Id="4620" PostTypeId="2" ParentId="4607" CreationDate="2010-09-17T03:16:01.333" Score="26" ViewCount="" Body="&lt;p&gt;I'll give you one reason why Java is terrible for desktop applications: &lt;strong&gt;user experience&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The UI frameworks available are the &lt;a href=&quot;http://en.wikipedia.org/wiki/Uncanny_valley&quot; rel=&quot;nofollow&quot;&gt;uncanny valley&lt;/a&gt; of user experience. Controls sorta, kinda look like their native counterparts, but they're still off. Java applications rarely, if ever, take advantage of OS-specific features or mannerisms. The same goes for almost all parts of the UI. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compare:&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Xcode (Native Cocoa/Aqua)&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/i7agA.jpg&quot; alt=&quot;Xcode&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Coda (Native Cocoa/Aqua)&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/VBqP9.jpg&quot; alt=&quot;Coda&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;NetBeans (Java)&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/bQnqp.png&quot; alt=&quot;Netbeans IDE&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Eclipse (Java)&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/gLe71.jpg&quot; alt=&quot;Eclipse IDE&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coda and Xcode look and feel like they belong on Mac OS X. They're a breeze to use because they take advantage of a Mac OS X user's expectations. NetBeans and Eclipse, on the other hand, look and feel like they were created by people who have never used a Mac.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And this problem isn't just present in these two IDEs: it's prevalent in &lt;em&gt;all&lt;/em&gt; Java desktop applications because the priority isn't getting the user experience right, it's being able to get it to compile on multiple platforms. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And that misplaced priority really limits Java's usefulness for applications that people actually need to &lt;em&gt;use&lt;/em&gt; to get things done.&lt;/p&gt;&#xA;" OwnerUserId="8" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-17T16:21:54.717" LastActivityDate="2010-09-17T16:21:54.717" CommentCount="14" />
  <row Id="4621" PostTypeId="2" ParentId="3363" CreationDate="2010-09-17T03:22:19.890" Score="0" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;int temp = start;   //Let's not get fancy w/ XOR and say we did.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And if we're counting regions...&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#region Thanks Dr. Crenshaw!&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1790" LastActivityDate="2010-09-17T03:22:19.890" CommunityOwnedDate="2010-09-17T03:22:19.890" />
  <row Id="4622" PostTypeId="2" ParentId="67" CreationDate="2010-09-17T03:24:53.450" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://successfulsoftware.net/&quot; rel=&quot;nofollow&quot;&gt;Successful Software&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2325" LastActivityDate="2010-09-17T03:24:53.450" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="4623" PostTypeId="2" ParentId="2846" CreationDate="2010-09-17T03:30:18.860" Score="2" ViewCount="" Body="&lt;p&gt;dBASE is a poor SQL.&lt;/p&gt;&#xA;" OwnerUserId="2325" LastActivityDate="2010-09-17T03:30:18.860" CommunityOwnedDate="2010-09-17T03:30:18.860" />
  <row Id="4625" PostTypeId="2" ParentId="4614" CreationDate="2010-09-17T03:39:21.003" Score="52" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Humble:&lt;/strong&gt; An exceptional programmer will never claim their code is the best, in fact they will always be looking for a better way &lt;em&gt;(Every chance they get.)&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Patient:&lt;/strong&gt; An exceptional programmer will have boundless patience &lt;em&gt;(This does not mean they will waste days on a problem. See: Troubleshooter)&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Troubleshooter:&lt;/strong&gt; An exceptional programmer will be able to solve a problem in minutes that may take days for your average programmer.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Curious:&lt;/strong&gt; An exceptional programmer will be unable to resist trying to figure out why something occurs.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Engineer:&lt;/strong&gt; An exceptional programmer will engineer systems rather than hobble together a mishmash of frameworks &lt;em&gt;(This does not mean they won't use frameworks.)&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-17T03:39:21.003" CommunityOwnedDate="2011-04-05T15:40:39.513" CommentCount="8" />
  <row Id="4626" PostTypeId="2" ParentId="3363" CreationDate="2010-09-17T03:43:40.110" Score="6" ViewCount="" Body="&lt;p&gt;I had a project where I just kept running into a situation where people would pull out code because they thought it was causing a bug but in reality it was not related at all. I forget what exactly it was, but I remember this part:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//Don't remove the following without talking to Jim because it will cause xxxx.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;immediately followed by&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//Removed, don't know why it was there.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Naturally, they'd never talked to me.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-17T03:43:40.110" CommunityOwnedDate="2010-09-17T03:43:40.110" CommentCount="1" />
  <row Id="4627" PostTypeId="2" ParentId="4614" CreationDate="2010-09-17T03:43:50.967" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What is it about these folks?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Really impressive facial hair.&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can try Rogaine, but at some point you just gotta accept that good genes go a long way...&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-17T03:43:50.967" CommunityOwnedDate="2011-04-05T15:40:39.513" CommentCount="1" />
  <row Id="4629" PostTypeId="2" ParentId="4341" CreationDate="2010-09-17T03:53:16.097" Score="0" ViewCount="" Body="&lt;p&gt;You only learn the basics at the university and those are not enough when you're already working.  You'll get more skills at work. &lt;/p&gt;&#xA;" OwnerUserId="1496" LastActivityDate="2010-09-17T03:53:16.097" />
  <row Id="4630" PostTypeId="2" ParentId="4550" CreationDate="2010-09-17T03:54:15.223" Score="1" ViewCount="" Body="&lt;p&gt;Sometimes new technologies build on older or more popular ones, and this can make them simple enough to ease their uptake. For instance, &lt;code&gt;node.js&lt;/code&gt; uses JavaScript (and Google's JavaScript engine developed for Chrome). The &lt;em&gt;additional&lt;/em&gt; code related to the project is quite small. Also, it has a niche in network programming that it fills very well even with a very slim core, and it can integrate readily with a larger codebase through HTTP, sockets, and JSON.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can succeed because it doesn't really &lt;em&gt;need&lt;/em&gt; much to take off.&lt;/p&gt;&#xA;" OwnerUserId="2348" LastActivityDate="2010-09-17T03:54:15.223" CommentCount="1" />
  <row Id="4631" PostTypeId="2" ParentId="4614" CreationDate="2010-09-17T03:56:19.633" Score="16" ViewCount="" Body="&lt;p&gt;They care deeply about their code.  &lt;/p&gt;&#xA;" OwnerUserId="278" LastActivityDate="2010-09-17T03:56:19.633" CommunityOwnedDate="2011-04-05T15:40:39.513" CommentCount="3" />
  <row Id="4634" PostTypeId="2" ParentId="4433" CreationDate="2010-09-17T04:06:41.940" Score="3" ViewCount="" Body="&lt;p&gt;Infinite recursions aren't actually infinite. They stop with him. He is the Most Interesting Programmer In the World.&lt;/p&gt;&#xA;" OwnerUserId="960" LastActivityDate="2010-09-17T04:06:41.940" />
  <row Id="4635" PostTypeId="2" ParentId="3363" CreationDate="2010-09-17T04:10:43.633" Score="3" ViewCount="" Body="&lt;p&gt;This is one was painful, but not destructive. It's in Perl.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;return !$@;#%&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2348" LastActivityDate="2010-09-17T04:10:43.633" CommunityOwnedDate="2010-09-17T04:10:43.633" CommentCount="4" />
  <row Id="4637" PostTypeId="2" ParentId="4596" CreationDate="2010-09-17T04:53:41.297" Score="2" ViewCount="" Body="&lt;p&gt;I suppose that removing admin rights from developers should come together with assigning one of the system administrators to install software for the team.  If you both don't have admin rights, and can't ask administrator to install stuff for you, you're just handless in front of challenges you're facing.  It's like you lock your offsore team in prison.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-17T04:53:41.297" />
  <row Id="4639" PostTypeId="2" ParentId="4614" CreationDate="2010-09-17T05:21:55.267" Score="8" ViewCount="" Body="&lt;p&gt;When I first started, I was working with this guy who I thought was absolutely brilliant at everything he did in terms of programming. He quite possibly still is, but he's moved up to be the director of a company in SE Asia now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyways, he kept things simple, and the simple stuff works. Never wanting to write more lines of code than necessary, everything he did just worked. I was playing catch up for a year just to get near his level. The other thing though, is time. He had been doing things for a lot longer than I had at the time, and he'd had the chance to ask these exact questions over and over, until he knew (seemingly) all the answers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He wasn't afraid to ask questions either. I think that's the biggest thing.&lt;/p&gt;&#xA;" OwnerUserId="2358" LastActivityDate="2010-09-17T05:21:55.267" CommunityOwnedDate="2011-04-05T15:40:39.513" CommentCount="4" />
  <row Id="4640" PostTypeId="2" ParentId="3363" CreationDate="2010-09-17T05:27:47.307" Score="0" ViewCount="" Body="&lt;p&gt;Once ... a very long time ago ... an undergraduate acquaintance wrote a disassembler for CDC 6000 (in CDC assembly language naturally).  He proudly showed everyone who was interested &quot;the comment&quot;.  It said:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;PROCESS EQUIBALANCED ELEPHANTS&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I don't know what happened to him after he left university.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-09-17T05:27:47.307" CommunityOwnedDate="2010-09-17T05:27:47.307" />
  <row Id="4641" PostTypeId="2" ParentId="485" CreationDate="2010-09-17T05:30:23.463" Score="0" ViewCount="" Body="&lt;p&gt;Yeah, I'm an outright dork, but &quot;solutioning&quot; high-volume mainframe data.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-17T05:30:23.463" />
  <row Id="4642" PostTypeId="2" ParentId="4341" CreationDate="2010-09-17T05:38:38.843" Score="0" ViewCount="" Body="&lt;p&gt;Learn at Uni, practice on your own and bounce your code off of a professor or two.  Never a bad thing to be on their good side.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, Uni is not designed to prepare you for work.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-17T05:38:38.843" />
  <row Id="4643" PostTypeId="2" ParentId="275" CreationDate="2010-09-17T05:40:06.760" Score="0" ViewCount="" Body="&lt;p&gt;It started for me with HTML in the beginning of middle school, making webpages for myself and friends, but I always wanted to be able to do more.  I got really into text based online war games during this time, and most of them were written in PHP, so I bought a PHP book and started working on it.  After that I bought a book called &quot;Game Programming for Teens&quot; which used the terrible language BlitzBASIC (you have to pay for the compiler, which I couldn't stand at the time).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I never really did too much work in either of those languages, HTML really being the only &quot;coding&quot; I felt I had much experience in.  Now I'm at the University of Mississippi, and I feel this is when I've really become a &quot;programmer&quot; instead of just a &quot;coder.&quot;  Since coming here I've been studying Java for the most part (yeah, it's a Java school, our curriculum isn't half bad though), and now I'm also taking a course on C and Assembly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my free time now, I'm trying out other languages.  This is one of those stories that I don't think will have an ending until I die, because I plan to continue learning until then!&lt;/p&gt;&#xA;" OwnerUserId="990" LastActivityDate="2010-09-17T05:40:06.760" CommunityOwnedDate="2011-02-13T14:40:48.817" />
  <row Id="4644" PostTypeId="2" ParentId="4614" CreationDate="2010-09-17T05:46:34.147" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Self-promotion&lt;/strong&gt;, and I mean that in the best way possible. Having a job like programming, especially in a team, means it's not immediately obvious where your personal contribution fits in to the large picture, or who was responsible for which bit. The people we hear about and learn about as &quot;great programmers&quot; are IMO those who have mastered the art of making their contributions known without sounding egotistic or self-centered about it. In many cases, this is by creating the tools, libraries and software the rest of us rely on to earn our daily bread.&lt;/p&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-09-17T05:46:34.147" CommunityOwnedDate="2011-04-05T15:40:39.513" CommentCount="7" />
  <row Id="4645" PostTypeId="2" ParentId="4614" CreationDate="2010-09-17T05:47:10.820" Score="11" ViewCount="" Body="&lt;p&gt;Personally, the best programmers I know/knew understood the basics and were NOT the expert in any given language.  They simply had sufficient experience on just about everything.  The canonical &quot;Jack of All Trades.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is more than foundational science, there is significant value in experience in actual operations.  Examples, those that understand the Unix Philosophy and thus could solve unknown problems with various tools given (IOW they knew where to look) far out-value the Java expert who coded a threaded and parallel solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The outstanding programmers also respect those who came before them.  They don't hate relational data models or cringe when they see SQL as a formal API, nor balk at FORTRAN in maths.  They know that OO is not the end-all, and above all else understand that programming is an ART, not a science.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-17T05:47:10.820" CommunityOwnedDate="2011-04-05T15:40:39.513" CommentCount="2" />
  <row Id="4646" PostTypeId="2" ParentId="275" CreationDate="2010-09-17T05:55:33.493" Score="0" ViewCount="" Body="&lt;p&gt;It was back in the mid eighties. I finished gymnasium, the school in Switzerland that leads to university usually, while the other school paths lead to an apprenticeship. So I decided to study history and politics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What a misfit. After a semester I had to recognize that this was the totally wrong path for me to take, and I contacted my father that worked in computers. He pointed me to the internal school for programmers at his company, and I gave it a shot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had worked with computers before. In my school they were used to learn typewriting and otherwise locked away. So my experience was minimal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now my father had taken the same courses that I was going to take now, and was the terror for the teachers. He reminded them of the famous mathematician Gauss, that at the age of five was driving his teachers nuts, as he was solving all problems in record times, discovering formulas to solve some of them more efficiently than had been known at the age (like adding up all positive integer up to a certain n using n(n+1)/2).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everybody in the school was looking forward to my coming with fear and trembling (so I was told and never took seriously), and I ended up teaching the very same classes half a year later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Classes about COBOL, Delta (a 4thGL), JCL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously it did not take very long for me to move on - my next endeavors included Pascal, Clipper, OS/2, C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I later on studied Math and Computer sciences, and now am looking forward to become a pastor after some 25 years of programming.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-17T05:55:33.493" CommunityOwnedDate="2011-02-13T14:40:48.817" />
  <row Id="4647" PostTypeId="1" CreationDate="2010-09-17T05:56:54.867" Score="8" ViewCount="454" Body="&lt;p&gt;There is a school of thought in linguistics that problem solving is very much tied to the syntax, semantics, grammar, and flexibility of one's own native spoken language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Working with various international development teams, I can clearly see a mental culture (if you will) in the codebase.  Programming language aside, the German coding is quite different from my colleagues in India.  As well, code is distinctly different in Middle America as it is in Coastal America (actually, IBM noticed this years ago).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you notice with your international colleagues (from ANY country) that coding style and problem solving are in-line with native tongues?&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T20:47:47.000" LastActivityDate="2011-01-31T11:57:36.563" Title="Does one's native spoken language affect quality of code?" Tags="&lt;culture&gt;&lt;problem-solving&gt;&lt;spoken-languages&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="1" />
  <row Id="4648" PostTypeId="2" ParentId="3629" CreationDate="2010-09-17T06:07:00.127" Score="0" ViewCount="" Body="&lt;p&gt;Assorted nerf weapons for sneak attacks on the sysadmins.&lt;/p&gt;&#xA;" OwnerUserId="940" LastActivityDate="2010-09-17T06:07:00.127" CommunityOwnedDate="2010-09-17T06:07:00.127" />
  <row Id="4649" PostTypeId="2" ParentId="4177" CreationDate="2010-09-17T06:17:03.903" Score="1" ViewCount="" Body="&lt;p&gt;Depending on what the task is, I'll pick one of bash, python, perl.&lt;/p&gt;&#xA;" OwnerUserId="1767" LastActivityDate="2010-09-17T06:17:03.903" />
  <row Id="4650" PostTypeId="2" ParentId="4433" CreationDate="2010-09-17T06:20:01.643" Score="4" ViewCount="" Body="&lt;p&gt;He writes ruby, in python.&lt;/p&gt;&#xA;" OwnerUserId="940" LastActivityDate="2010-09-17T06:20:01.643" CommentCount="3" />
  <row Id="4651" PostTypeId="2" ParentId="4319" CreationDate="2010-09-17T06:25:41.447" Score="1" ViewCount="" Body="&lt;p&gt;Try a kinesis contour keyboard. It's just awkward enough to do anything but touch type, but all the keys are better positioned so you wont have to stretch for those special characters.&lt;/p&gt;&#xA;" OwnerUserId="940" LastActivityDate="2010-09-17T06:25:41.447" />
  <row Id="4652" PostTypeId="2" ParentId="4647" CreationDate="2010-09-17T06:31:36.700" Score="4" ViewCount="" Body="&lt;p&gt;Till now with my experience I have noticed that my native internationl fellow did the same job compared to the non-native. The issue arises when they tried to explain the concept or the requirement. Else I suppose the syntax name doesn't play much role until you read what excatly they do. Once a programmer acquires the knowledge of the syntax then it doesn't count what is the actual meaning of the word used for syntax.&lt;/p&gt;&#xA;" OwnerUserId="1474" LastActivityDate="2010-09-17T06:31:36.700" CommentCount="2" />
  <row Id="4653" PostTypeId="2" ParentId="4433" CreationDate="2010-09-17T06:32:43.863" Score="22" ViewCount="" Body="&lt;p&gt;His beard is Turing complete.&lt;/p&gt;&#xA;" OwnerUserId="940" LastActivityDate="2010-09-17T06:32:43.863" />
  <row Id="4654" PostTypeId="1" CreationDate="2010-09-17T06:34:58.360" Score="9" ViewCount="270" Body="&lt;p&gt;I'm tired of how luggish my developments PC is. It's Core2 Duo, 2GB RAM, Seagate ST3500320AS HDD - not the top model, but quite a decent one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Typically I open several copies of Visual Studio 2008, lots of tabs in Firefox, Outlook, MSDN, plus the programs I debug are quite huge, plus whatever Windows thinks it can't live without so I end up with Task Manager showing something like 2,5 GB pagefile usage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All the software above becomes luggish to such extent that it's really annoying. Something like I click on a menubar in Visual Studio - and instead of just opening the menu it works the harddisk for say 10 seconds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to have some magic &quot;don't make me think&quot; solution - so that it is installed once and then the lugs disappear or at least decrease significantly. It should not be very expensive - something like the current price of a hybrid drive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will a hybrid drive magically help overcome my problem once and for all? Do you have experience using hybrid drives for similar purposes?&lt;/p&gt;&#xA;" OwnerUserId="587" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-17T13:31:58.037" LastActivityDate="2010-12-13T13:25:31.233" Title="Does hybrid hard drive improve programming experience?" Tags="&lt;productivity&gt;&lt;performance&gt;&lt;hardware&gt;" AnswerCount="4" FavoriteCount="2" />
  <row Id="4656" PostTypeId="2" ParentId="4200" CreationDate="2010-09-17T06:41:05.033" Score="0" ViewCount="" Body="&lt;p&gt;Because you probably don't know &lt;em&gt;exactly&lt;/em&gt; what needs to be built.&lt;/p&gt;&#xA;" OwnerUserId="940" LastActivityDate="2010-09-17T06:41:05.033" CommentCount="1" />
  <row Id="4658" PostTypeId="2" ParentId="4305" CreationDate="2010-09-17T06:45:43.377" Score="0" ViewCount="" Body="&lt;p&gt;The best way to learn a language is to develop application from it, at the same time when you find that you can develop different kind of application then you can assure yourself that you know that particular language.&lt;/p&gt;&#xA;" OwnerUserId="1474" LastActivityDate="2010-09-17T06:45:43.377" />
  <row Id="4659" PostTypeId="2" ParentId="4180" CreationDate="2010-09-17T06:52:05.427" Score="0" ViewCount="" Body="&lt;p&gt;I don't think employer is ever going to take a look that in which website you are receving the credits.&lt;br&gt;&#xA;But indirectly this is going to pay you in your next assignment, it is not possible that you can create so many errors that you see when people raise the questions. The only way to learn about them is by helping other to solve it which makes you much more stronger in your respective technical language/field.&lt;/p&gt;&#xA;" OwnerUserId="1474" LastActivityDate="2010-09-17T06:52:05.427" />
  <row Id="4661" PostTypeId="2" ParentId="3732" CreationDate="2010-09-17T07:00:35.827" Score="4" ViewCount="" Body="&lt;p&gt;Being stuck in front of a monitor all day long.&lt;/p&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-09-17T07:00:35.827" CommunityOwnedDate="2010-09-17T07:00:35.827" />
  <row Id="4662" PostTypeId="1" CreationDate="2010-09-17T07:01:54.497" Score="2" ViewCount="859" Body="&lt;p&gt;I want to know about Which language is best for long term career and How?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which language should I choose among Java and .NET Platform or Should I choose Oracle like DBMS Language (SQL/PLSQL)? I am confused?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Detailed answer would be appreciated.&lt;/p&gt;&#xA;" OwnerUserId="2364" LastActivityDate="2010-10-09T01:15:23.857" Title="Java Vs .NET Vs Oracle(DBMS), Which technology is for Long Term Career?" Tags="&lt;java&gt;&lt;.net&gt;" AnswerCount="10" CommentCount="2" FavoriteCount="1" />
  <row Id="4663" PostTypeId="1" AcceptedAnswerId="4668" CreationDate="2010-09-17T07:05:46.463" Score="0" ViewCount="477" Body="&lt;p&gt;How do I change the look and feel of Netbeans 6.9 or 6.10?  I want to find a dark theme so I'm not killing my eye's so much.  &lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-09-17T08:07:11.277" ClosedDate="2010-09-24T10:29:12.637" Title="Look and feel of Netbeans" Tags="&lt;ide&gt;&lt;theme&gt;" AnswerCount="1" FavoriteCount="2" />
  <row Id="4664" PostTypeId="2" ParentId="326" CreationDate="2010-09-17T07:06:52.310" Score="0" ViewCount="" Body="&lt;p&gt;At work I use a Google Docs spreadsheet on which everyone's jobs are listed, so it's easy to update and my boss can work out who to give jobs to. I don't really use one outside of work though.&lt;/p&gt;&#xA;" OwnerUserId="1698" LastActivityDate="2010-09-17T07:06:52.310" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="4665" PostTypeId="2" ParentId="4647" CreationDate="2010-09-17T07:10:43.680" Score="1" ViewCount="" Body="&lt;p&gt;It's not language but some kind of cultural background, &quot;national character&quot;. Which seems to work overall (e.g. Englishmen are cool, Germans are precise etc.), but it fails on individual persons. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, it's up to you to find out measuring system, pick projects from open source repositories, examine code, and make some statistics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would be better if you could collect some other attributes of authors: age, education, industry etc.&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-09-17T07:10:43.680" CommentCount="4" />
  <row Id="4666" PostTypeId="2" ParentId="525" CreationDate="2010-09-17T07:12:05.077" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://netbeans.org/&quot; rel=&quot;nofollow&quot;&gt;Netbeans&lt;/a&gt; is awsome, The best IDE I've used.  Really great PHP support&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-09-17T07:12:05.077" CommentCount="2" />
  <row Id="4667" PostTypeId="2" ParentId="4433" CreationDate="2010-09-17T07:17:52.623" Score="5" ViewCount="" Body="&lt;p&gt;The only thing he ever did not pass was the Turing test. Nobody believed to be talking to a human, as his thinker worked so fast and he made no mistakes.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-17T07:17:52.623" />
  <row Id="4668" PostTypeId="2" ParentId="4663" CreationDate="2010-09-17T07:19:35.973" Score="1" ViewCount="" Body="&lt;p&gt;Found what I needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Netbeans requires changes to Java's Look and Feel.  NimROD is a program that makes it fairly easy. &lt;a href=&quot;http://personales.ya.com/nimrod/download-en.html&quot; rel=&quot;nofollow&quot;&gt;http://personales.ya.com/nimrod/download-en.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a dark look-and-feel I like along with some instructions &lt;a href=&quot;http://www.mediabits.dk/php/netbeans-the-dark-side/&quot; rel=&quot;nofollow&quot;&gt;http://www.mediabits.dk/php/netbeans-the-dark-side/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is what Netbeans looks like now! :&#xA;&lt;img src=&quot;http://i.imgur.com/ibs1g.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;List item&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Instructions&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://personales.ya.com/nimrod/download-en.html&quot; rel=&quot;nofollow&quot;&gt;Download NimROD&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Edit NimROD at will and save. I just used &lt;a href=&quot;http://www.mediabits.dk/php/netbeans-the-dark-side/&quot; rel=&quot;nofollow&quot;&gt;this theme&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I put the NimROD jar file and the saved .theme file in &lt;code&gt;D:\Program Files\NetBeans\bin&lt;/code&gt; &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Open &lt;code&gt;D:\Program Files\NetBeans\etc\netbeans.conf&lt;/code&gt; and add to the end of &lt;code&gt;netbeans_default_options&lt;/code&gt; :&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;--laf com.nilo.plaf.nimrod.NimRODLookAndFeel&#xA;  -cp:p \&quot;D:\Program Files\NetBeans\bin\nimrodlf.jar\&quot;&#xA;  -J-Dnimrodlf.themeFile=DarkGrey.theme&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Restart Netbeans and the new Theme should load.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1013" LastEditorUserId="1013" LastEditorDisplayName="" LastEditDate="2010-09-17T08:07:11.277" LastActivityDate="2010-09-17T08:07:11.277" />
  <row Id="4669" PostTypeId="2" ParentId="326" CreationDate="2010-09-17T07:22:30.990" Score="0" ViewCount="" Body="&lt;p&gt;Post-it notes and FogBugz.&lt;/p&gt;&#xA;" OwnerUserId="73" LastActivityDate="2010-09-17T07:22:30.990" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="4670" PostTypeId="2" ParentId="4662" CreationDate="2010-09-17T07:22:38.353" Score="1" ViewCount="" Body="&lt;p&gt;It's difficult to make any predictions of the future of Java and .Net. Both are still widely supported and there are big projects being undertaken in each. .Net is still heavily pushed by Microsoft as the main development platform, and there is the Mono team doing good work too. Java on the other hand has just been brought by Oracle so perhaps it's official future is slightly less clear, but as nearly all of Java is open source and there are so many major teams doing Java related projects it's certainly not going to go away. Google's Android, just to name one, is heavily dependant on a modified version of the Java runtime, so Google will continue to support and develop that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's impossible to predict the future, so all I can really say here is that I would be very surprised if either wasn't still around in some form in 5 years time. Beyond that is anyone's guess.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I think every developer should know SQL, at least to some extent. So learn this on the side in addition to Java or .Net. When you are learning SQL for your chosen database pay attention to the differences between your database and ansi standard SQL, that way when you come to switch to a different database in the future you'll already know some of the bits to watch out for.&lt;/p&gt;&#xA;" OwnerUserId="134" LastActivityDate="2010-09-17T07:22:38.353" />
  <row Id="4671" PostTypeId="1" CreationDate="2010-09-17T07:29:44.780" Score="21" ViewCount="1636" Body="&lt;p&gt;What is the funniest or weirdest thing that you have programmed, only to realize that it isn't worth at all or that there is another simpler way to do the same thing?&lt;/p&gt;&#xA;" OwnerUserId="1474" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-24T22:30:02.693" LastActivityDate="2011-01-28T07:34:45.823" CommunityOwnedDate="2011-01-11T04:02:16.833" ClosedDate="2011-01-12T04:23:42.740" Title="What's the weirdest or funniest programming mistake you've made?" Tags="&lt;fun&gt;&lt;mistakes&gt;" AnswerCount="30" CommentCount="6" FavoriteCount="8" />
  <row Id="4672" PostTypeId="2" ParentId="4654" CreationDate="2010-09-17T07:31:16.117" Score="2" ViewCount="" Body="&lt;p&gt;Jeff talked about it on his blog just this week - &lt;a href=&quot;http://www.codinghorror.com/blog/2010/09/revisiting-solid-state-hard-drives.html&quot; rel=&quot;nofollow&quot;&gt;Revisiting Solid State Hard Drives&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;His conclusion was yes, hybrid drives bring the benefits of both worlds, improved performance and decent size.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He points to a &lt;a href=&quot;http://www.anandtech.com/show/3734/seagates-momentus-xt-review-finally-a-good-hybrid-hdd&quot; rel=&quot;nofollow&quot;&gt;review&lt;/a&gt; that says:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;While the Momentus XT isn't quite as&#xA;  fast as an SSD, it's a significant&#xA;  improvement over the mechanical drives&#xA;  found in notebooks today&quot;...&quot;The&#xA;  impact of adding just a small amount&#xA;  of SLC NAND is tremendous.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Although the ultimate conclusion is that it's great for laptops where you are limited on space, but for a desktop you'd probably be better off getting a smaller SSD for your OS &amp;amp; swap partition and a regular mechanical drive for your data.&lt;/p&gt;&#xA;" OwnerUserId="134" LastEditorUserId="134" LastEditorDisplayName="" LastEditDate="2010-09-17T08:25:17.437" LastActivityDate="2010-09-17T08:25:17.437" CommentCount="2" />
  <row Id="4674" PostTypeId="2" ParentId="4614" CreationDate="2010-09-17T07:48:42.580" Score="1" ViewCount="" Body="&lt;p&gt;most of them look reserved and nothing special..&#xA;some of them look super-smart..&#xA;they prefer to check/debug things twice from all possible points of view, their software is the bugless in world :p&#xA;IMO some programmers may be slower, but the quality is better, even ordinary people can understand how their software works!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i have a friend who wrote his first ASM program at the age of 10, now he is 24, didn't finish university, but that didn't stop him from creating his own company, making millions :)&#xA;but from what i see he is dexterous in everything :) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;exceptional programmers would most likely say this code can be coded in another- better way rather than saying its totally wrong an lower other programmers reputation :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;What is it about these folks? Is there something about their thought process that is fundamentally different from the above-average programmer? Or are they simply very talented people that work hard?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i think they are born that way, its inside their DNA :p &#xA;i don't know about their thought process, but the best programmer i ever knew had epilepsy&lt;/p&gt;&#xA;" LastActivityDate="2010-09-17T08:03:21.263" CommunityOwnedDate="2011-04-05T15:40:39.513" />
  <row Id="4675" PostTypeId="2" ParentId="326" CreationDate="2010-09-17T07:53:09.223" Score="0" ViewCount="" Body="&lt;p&gt;I don't use a TODO list.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For big tasks, I create an issue in the project's bug tracker.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For small tasks, I add FIXME or TODO comment to the source code, and use Hudson / Sonar to give me a report on outstanding tasks.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-09-17T07:53:09.223" CommunityOwnedDate="2010-09-17T07:53:09.223" />
  <row Id="4676" PostTypeId="2" ParentId="4587" CreationDate="2010-09-17T07:56:26.020" Score="73" ViewCount="" Body="&lt;p&gt;In my opinion, the most common ethical dilema related to the software development profession is in front of everybody and we rarely notice: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Incurring in '&lt;em&gt;technical debt&lt;/em&gt;' without letting the customer know it.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, being asked to implement a mediocre solution because of cost reasons when you know that in the long term that solution will bring more problems and eventually the cost will be greater to the customer (or company) than implementing a better solution from the beginning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes there is no choice and you have to do it. But I think that as professionals, we are ethically forced to explain how the cheap solution will impact long term costs and make sure that the customer understands the trade-off and is willing to deal with those consequences.&lt;/p&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-09-17T07:56:26.020" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="13" />
  <row Id="4677" PostTypeId="2" ParentId="3974" CreationDate="2010-09-17T08:09:23.917" Score="2" ViewCount="" Body="&lt;p&gt;never seen one inside a my city with population of 300,000 people, no company here has female programmers... i've been searching for her :P&lt;/p&gt;&#xA;" LastActivityDate="2010-09-17T08:09:23.917" CommunityOwnedDate="2010-09-17T08:09:23.917" CommentCount="1" />
  <row Id="4678" PostTypeId="2" ParentId="4433" CreationDate="2010-09-17T08:15:25.150" Score="1" ViewCount="" Body="&lt;p&gt;He rewrote his brain using a shoestring and a swiss army knife,&#xA;nobody ever found a single bug in his code,&#xA;his error messages are candidate for the nobel price for literature,&#xA;of course he refused the nobel price,&#xA;all his household appliances except the toaster pass the Turing test,&#xA;he already proposed a better toaster,&#xA;his source is so easy to maintain giving his entire team a 1000% production boost,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He is the most interesting programmer in the world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Sorry, my name is not Mel.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-17T08:15:25.150" CommentCount="1" />
  <row Id="4679" PostTypeId="2" ParentId="4433" CreationDate="2010-09-17T08:16:50.957" Score="0" ViewCount="" Body="&lt;p&gt;When you go to ask him a question - You don't really ask him a question. First he answers your questions , then he says &quot;now ASK&quot;, but you don't have more questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;now thats he.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-17T12:22:14.330" />
  <row Id="4680" PostTypeId="1" AcceptedAnswerId="4700" CreationDate="2010-09-17T08:17:50.100" Score="23" ViewCount="1492" Body="&lt;p&gt;Is it possible for people who don't like math to become a good programmer?&lt;/p&gt;&#xA;" OwnerUserId="2369" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-17T12:21:54.707" LastActivityDate="2011-03-09T05:38:36.020" CommunityOwnedDate="2011-03-08T17:21:03.470" Title="Is it possible to become a good programmer if you don't like math?" Tags="&lt;great-programmer&gt;&lt;math&gt;&lt;education&gt;" AnswerCount="20" CommentCount="11" FavoriteCount="11" />
  <row Id="4681" PostTypeId="2" ParentId="4680" CreationDate="2010-09-17T08:22:07.570" Score="2" ViewCount="" Body="&lt;p&gt;Yes, of course. They are entirely different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know many good programmers, when I say good they know design patterns have degrees from good universities and now work in commerce (finance sector). And have a number of large released successful products. They know A-level maths I would say (a-level is exam you take when you are 18 in uk, generally).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may be somewhat unusual to be a good programmer and not be interested maths. But I think a lot of people are prejudice in thinking one must like/be good at both. They are not dependent on one another.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-09-17T08:34:26.183" LastActivityDate="2010-09-17T08:34:26.183" CommunityOwnedDate="2011-03-08T17:21:03.470" CommentCount="1" />
  <row Id="4682" PostTypeId="2" ParentId="4680" CreationDate="2010-09-17T08:23:05.200" Score="6" ViewCount="" Body="&lt;p&gt;A &lt;em&gt;good&lt;/em&gt; one? Very unlikely. Most design patterns have at least some basis in mathematical concepts. Things that are essential to programming, like variables, loops, procedures, and objects, are analogues to concepts in mathematical fields like algebra, calculus, and set theory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider also that &lt;a href=&quot;http://en.wikipedia.org/wiki/Computer_science&quot; rel=&quot;nofollow&quot;&gt;computer science&lt;/a&gt; is a subset of mathematics: algorithms and formal logic, upon which all programming is based, are fundamentally &lt;a href=&quot;http://en.wikipedia.org/wiki/Algorithm&quot; rel=&quot;nofollow&quot;&gt;mathematics&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you hate math, you're going to &lt;em&gt;hate&lt;/em&gt; programming.&lt;/p&gt;&#xA;" OwnerUserId="8" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-17T08:41:25.783" LastActivityDate="2010-09-17T08:41:25.783" CommunityOwnedDate="2011-03-08T17:21:03.470" CommentCount="30" />
  <row Id="4683" PostTypeId="2" ParentId="4680" CreationDate="2010-09-17T08:23:39.357" Score="1" ViewCount="" Body="&lt;p&gt;Maybe, most programming jobs are about plumbing stuff together.&#xA;You could be a good programmer in that field.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-09-17T08:23:39.357" CommunityOwnedDate="2011-03-08T17:21:03.470" CommentCount="1" />
  <row Id="4685" PostTypeId="2" ParentId="4680" CreationDate="2010-09-17T08:26:44.060" Score="0" ViewCount="" Body="&lt;p&gt;I think it is possible. I personally know someone who sucks at math and as I know is a pretty good programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However IMHO programming has a relation to discrete math and being good at that does help you in your programming. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But being able to integrate and differentiate and that kind of math is not really relevant, while that is where most people have problems with math.&lt;/p&gt;&#xA;" OwnerUserId="560" LastActivityDate="2010-09-17T08:26:44.060" CommunityOwnedDate="2011-03-08T17:21:03.470" CommentCount="2" />
  <row Id="4686" PostTypeId="2" ParentId="4662" CreationDate="2010-09-17T08:29:05.737" Score="1" ViewCount="" Body="&lt;p&gt;SQL everyone should know. Personally I would then focuss getting decent at one of C#,Java, C++ or maybe F# which seems to be gaining ground.  Also a solid grounding in unix admin has been very helpful in my career.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-17T08:29:05.737" />
  <row Id="4688" PostTypeId="2" ParentId="4587" CreationDate="2010-09-17T08:39:06.530" Score="-3" ViewCount="" Body="&lt;p&gt;Working for a private company and having socialist principles.  I know numerous people who consider themselves socialist, and ethically sound yet work for a large &quot;evil&quot; corporation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find this very hypocritical.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-17T08:39:06.530" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="11" />
  <row Id="4690" PostTypeId="2" ParentId="4654" CreationDate="2010-09-17T08:51:06.383" Score="2" ViewCount="" Body="&lt;p&gt;Best upgrade I ever did. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;&#xA;Other than maxing out my ram.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-09-17T13:30:20.320" LastActivityDate="2010-09-17T13:30:20.320" CommentCount="5" />
  <row Id="4692" PostTypeId="2" ParentId="733" CreationDate="2010-09-17T09:00:19.843" Score="0" ViewCount="" Body="&lt;p&gt;medical imaging&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-17T09:00:19.843" />
  <row Id="4693" PostTypeId="1" AcceptedAnswerId="4697" CreationDate="2010-09-17T09:06:26.540" Score="62" ViewCount="39826" Body="&lt;p&gt;Not all programmers are arrogant but most are even quiet, &#xA;why?&lt;/p&gt;&#xA;" OwnerUserId="2369" LastEditorUserId="2369" LastEditorDisplayName="" LastEditDate="2010-11-25T02:47:46.873" LastActivityDate="2011-04-05T07:08:46.190" CommunityOwnedDate="2010-09-19T15:29:19.433" ClosedDate="2010-12-01T11:01:18.903" Title="Why are so many programmers arrogant?" Tags="&lt;behavior&gt;&lt;social-skills&gt;" AnswerCount="51" CommentCount="18" FavoriteCount="51" />
  <row Id="4696" PostTypeId="2" ParentId="4680" CreationDate="2010-09-17T09:31:41.410" Score="4" ViewCount="" Body="&lt;p&gt;I don't like math and I always got low math grades. I don't want to say that I'm a good programmer, however I'm in the software industry for 10 years with great success.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-17T09:31:41.410" CommunityOwnedDate="2011-03-08T17:21:03.470" CommentCount="2" />
  <row Id="4697" PostTypeId="2" ParentId="4693" CreationDate="2010-09-17T09:33:18.287" Score="155" ViewCount="" Body="&lt;p&gt;To quote Scott Adams in Dilbert Principle:&lt;br&gt;&#xA;&quot;In contrast to 'normal' people, engineers have rational objectives for social interactions: (1) Get it over with as soon as possible; (2) Avoid getting invited to something unpleasant; (3) &lt;strong&gt;Demonstrate mental superiority and mastery of all subjects.&lt;/strong&gt;&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is our nature. We want to be always right. We know we are always right.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-17T09:33:18.287" CommunityOwnedDate="2010-09-19T15:29:19.433" CommentCount="11" />
  <row Id="4698" PostTypeId="2" ParentId="4693" CreationDate="2010-09-17T09:41:52.470" Score="9" ViewCount="" Body="&lt;p&gt;Programmers stereotypically don't have much physical prowess when they are younger.  Perhaps the arrogance comes from a need to flex our mental muscles, since it is acceptable now that we are adults?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, perhaps we are just a subset of normal society, and in reality there is just as much arrogance in other disciplines as there is in programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm leaning towards the latter.&lt;/p&gt;&#xA;" OwnerUserId="1388" LastActivityDate="2010-09-17T09:41:52.470" CommunityOwnedDate="2010-09-19T15:29:19.433" CommentCount="1" />
  <row Id="4700" PostTypeId="2" ParentId="4680" CreationDate="2010-09-17T09:55:41.347" Score="28" ViewCount="" Body="&lt;p&gt;There are many different fields of programming and many of those don't require a particularly high standard of mathematical knowledge. You will never be able to write a 3D engine, but you will certainly be able to develop business and web applications. Let's face it - the most common mathematical operation in most computer programmes is incrementing a number by one. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll quite happily admit I've never particularly liked maths or been good at it (I actually graduated with a degree in English Literature!) and have worked as a professional developer for over 12 years now. I develop mostly web applications, which rarely require that much maths. More important is the ability to think logically, be able to break problems down into chunks and have a wide understanding of the various technologies and frameworks involved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a programmer you are much more likely to have to implement an &lt;em&gt;existing&lt;/em&gt; algorithm than devise an entirely &lt;em&gt;new&lt;/em&gt; one. Need to work out, say, compound interest? You don't need to figure it out yourself, just look-up the formula and apply it. Most of the problems have already been solved, you just need to know how to implement the solutions in your language of choice. That's not to say that being good at maths wouldn't be an &lt;em&gt;advantage&lt;/em&gt;; it's just that it isn't totally &lt;em&gt;essential&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I was at school in the mid 80's when home computers where not very common I often wrote programs to solve my maths homework. I often couldn't do it in my head, but I could apply whatever formula was required as a software routine. You don't need to be another Pythagoras to work out the longest side of a right-angled triangle, you simply need to be able to code up &lt;code&gt;a² + b² = h²&lt;/code&gt; in your language of choice.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-17T09:55:41.347" CommunityOwnedDate="2011-03-08T17:21:03.470" CommentCount="11" />
  <row Id="4704" PostTypeId="2" ParentId="4671" CreationDate="2010-09-17T10:32:46.203" Score="10" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;stopPressed?stopPressed=!stopPressed:stopPressed;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I was pretty confused seeing it the day after ...&lt;/p&gt;&#xA;" OwnerUserId="647" LastActivityDate="2010-09-17T10:32:46.203" CommunityOwnedDate="2011-01-11T04:02:16.833" CommentCount="5" />
  <row Id="4705" PostTypeId="2" ParentId="4680" CreationDate="2010-09-17T10:35:18.107" Score="5" ViewCount="" Body="&lt;p&gt;Can you become a good software developer without maths? Yes, I think so. Can you become the sort of heroic programmer that people talk about all the time? I think not. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is, most, if not all, heroic programmers (think Dennis Ritchie), have computer science or maths backgrounds. To become a truly great programmer, you need to understand algorithms at a level that's more than just superficial, which means you're forced to delve into formal computer science. And computer science is just applied maths. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, an understanding of lambda calculus would be invaluable to an OS architect or a language designer.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-17T10:35:18.107" CommunityOwnedDate="2011-03-08T17:21:03.470" />
  <row Id="4706" PostTypeId="2" ParentId="4433" CreationDate="2010-09-17T10:42:07.173" Score="3" ViewCount="" Body="&lt;p&gt;He solves NP-complete problems in O(1). He is the most interesting programmer in the world&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He doesn't have a hard disk, he just memorizes binary. He is the most interesting programmer in the world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To him, optical storage means reading. He is the most interesting programmer in the world.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-17T10:42:07.173" />
  <row Id="4708" PostTypeId="2" ParentId="4693" CreationDate="2010-09-17T10:48:29.203" Score="44" ViewCount="" Body="&lt;p&gt;I don't think it's arrogance at all, merely an inability or unwillingness to sugar-coat responses and be socially acceptable. Programming is a literal discipline, you don't say &quot;please&quot; or &quot;sorry&quot; to the computer, and you shouldn't have to do anything other than tell it like it is when someone asks you for a technical opinion. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you think the code is crap, why should you be required to say &quot;hmm... it could be improved&quot;, rather than &quot;this is crap code. do x, y and z instead&quot;? Most programmers can also provide a good rationale for why it's better their way. It's not really arrogance if you can back it up, merely confidence in your abilities.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-17T10:48:29.203" CommunityOwnedDate="2010-09-19T15:29:19.433" CommentCount="3" />
  <row Id="4709" PostTypeId="2" ParentId="4693" CreationDate="2010-09-17T11:03:49.700" Score="87" ViewCount="" Body="&lt;p&gt;The problem is this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The world that programmers inhabit is a Boolean one - it resists shades of grey whilst embracing black-and-white thinking. Often we choose programming because we're constitutionally inclined to dichotomous thinking, and this is reinforced by our professional practice.&#xA;This has a number of problems:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;We tend to think that any given viewpoint must either be true or false, correct or incorrect.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When we encounter two points of view, we assume that at least one is wrong.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;We often put a lot of thought into our own opinions, and so we assume that our &lt;em&gt;own&lt;/em&gt; opinion is the correct one.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Other people often seem less logical than us, so we assume that other people are often wrong.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;We're generally quite intelligent people, so we are actually right about things quite often. This reinforces our conviction that we’re likely to be right on any given occasion.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;We're often more concerned with arguments and ideas than we are with people's feelings, so we present our ideas in a way that others perceive as arrogant.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The important thing, however, is that I'm absolutely right about what I've said here. I must be. After all, I'm a programmer ;-)&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-09-17T11:03:49.700" CommunityOwnedDate="2010-09-19T15:29:19.433" CommentCount="13" />
  <row Id="4710" PostTypeId="2" ParentId="4587" CreationDate="2010-09-17T11:19:05.800" Score="13" ViewCount="" Body="&lt;p&gt;Read &lt;a href=&quot;http://programmers.stackexchange.com&quot;&gt;http://programmers.stackexchange.com&lt;/a&gt; during working hour.&lt;/p&gt;&#xA;" OwnerUserId="2386" LastActivityDate="2010-09-17T11:19:05.800" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="1" />
  <row Id="4711" PostTypeId="1" CreationDate="2010-09-17T11:25:28.593" Score="15" ViewCount="665" Body="&lt;p&gt;I asked &lt;a href=&quot;http://stackoverflow.com/questions/3731961/what-are-the-most-common-schools-of-knowledge-prevalent-in-great-programmers&quot;&gt;this question&lt;/a&gt; on StackOverflow but it got shot down fairly quickly. It was suggested that I ask it here, so I've copied it from there. Hope that's ok:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that the 'great' programmers become so mostly from being exposed to and interested in programming from early ages, as well as huge amounts of dedication.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately I only discovered programming at a later age, and I sometimes feel frustrated with the difficulties I experience in trying to grok some of the more fundamental concepts the 'greats' seem to take for granted..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is in relationt to that, if a 'great' programmer (i.e. top 10%) had to distill his or her knowledge into a few recommendations / books / concepts / suggestions / lessons, what would they be? What does a programmer who's willing to learn need to do to get on the right track towards becoming great? And to be more specific, I don't mean 'what does that person need to do', because the answer is almost invariably, 'practice!'. What I mean is, what does the programmer need to know?&lt;/p&gt;&#xA;" OwnerUserId="2388" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T20:45:37.953" LastActivityDate="2011-02-13T15:57:54.027" Title="What are the most common schools of knowledge prevalent in 'great' programmers?" Tags="&lt;learning&gt;&lt;career&gt;&lt;great-programmer&gt;&lt;education&gt;" AnswerCount="12" CommentCount="3" FavoriteCount="7" />
  <row Id="4712" PostTypeId="2" ParentId="4587" CreationDate="2010-09-17T11:28:41.423" Score="18" ViewCount="" Body="&lt;p&gt;Not sure if this is ethical necessarily, but I was recently asked to code a payment form where the users would provide their payment information (credit card, billing address, etc.) to be stored in a web-accessible database (obviously not &lt;strong&gt;directly&lt;/strong&gt; accessible from the web, but on the same server as the website and not extremely secure) and the site admins would then email this info to their suppliers.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I refused to code it since the people providing their payment info don't know that this is actually happening behind the scenes (I did say that I'd do it if they provided full disclosure and told people that their credit card details would be emailed around, though since most people don't read I felt that even this wasn't necessarily going far enough), and I feel it's our duty as technologists to understand the implications of the code we write and how it will be used.  Basically, I wouldn't want my name associated with an app that was going to be used that way.&lt;/p&gt;&#xA;" OwnerUserId="2387" LastActivityDate="2010-09-17T11:28:41.423" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="4" />
  <row Id="4713" PostTypeId="2" ParentId="4680" CreationDate="2010-09-17T11:35:29.333" Score="9" ViewCount="" Body="&lt;p&gt;I think it's important to look closely at why you don't like maths.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A dislike of an academic discipline is usually something that happens at school, and may be down to a conflict of some sort or another with a teacher, lack of confidence in your own ability within a subject, or peer group pressure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming != maths. It doesn't even &quot;feel&quot; like maths, for me (and I enjoyed maths, despite not doing so well towards the end of my formal studies in it).&#xA;Many skills that you might use in maths are useful, necessary even in programming, but many programmers teach themselves for the most part. Not liking maths in school has pretty much zero bearing on your ability or enjoyment of programming.&lt;/p&gt;&#xA;" OwnerUserId="100" LastActivityDate="2010-09-17T11:35:29.333" CommunityOwnedDate="2011-03-08T17:21:03.470" />
  <row Id="4714" PostTypeId="1" AcceptedAnswerId="18210" CreationDate="2010-09-17T11:52:26.353" Score="7" ViewCount="522" Body="&lt;p&gt;It seems to me that rapid-development web platforms are going to radically change the world of web applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has been five years since Rails 1.0 was released for Ruby, and since that time we have seen Grails for Groovy, Django for Python, and Roo for Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But to my knowledge (which is probably limited, being a Java/Groovy progammer) there is no similar framework for C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does such a thing exist?  If not, why not?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;  It's quite possible I'm not using the right words when I say &quot;rapid-development,&quot; but I'm talking about frameworks that can conceivably allow you to build a working blog engine in 30 minutes.  You couldn't reasonably do this with, say, Java, Spring, and Hibernate, given the various configuration needed to allow your controllers to be found, and both configuration and code necessary for your entities to persist and be retrieved.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I'm talking about frameworks that handle all of the CRUD with a convention-over-configuration mentality.  If someone has the right words for what I'm talking about, let me know.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-09-17T12:39:43.407" LastActivityDate="2010-11-10T23:48:01.127" Title="Why doesn't the .NET world have anything like rails/grails/django/roo?" Tags="&lt;web-development&gt;&lt;frameworks&gt;&lt;trends&gt;" AnswerCount="7" FavoriteCount="3" />
  <row Id="4715" PostTypeId="2" ParentId="4433" CreationDate="2010-09-17T11:57:27.573" Score="12" ViewCount="" Body="&lt;p&gt;He can dereference a null pointer and get the data it points to.&lt;br&gt;&#xA;Every one of his programs runs in O(-1).&lt;br&gt;&#xA;He types so fast his CPU had to enter Mitosis to keep up.&lt;br&gt;&#xA;He convinced Linus to respect his decision to use CVS.&lt;br&gt;&#xA;He fully understands C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He is the most interesting programmer in the world. &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2011-03-22T04:57:38.380" LastActivityDate="2011-03-22T04:57:38.380" CommentCount="2" />
  <row Id="4716" PostTypeId="2" ParentId="4714" CreationDate="2010-09-17T11:59:01.913" Score="5" ViewCount="" Body="&lt;p&gt;I come from the other side of the divide, so I don't know everything about rails etc, but what about &lt;a href=&quot;http://www.asp.net/mvc&quot; rel=&quot;nofollow&quot;&gt;ASP.NET MVC&lt;/a&gt;?&lt;/p&gt;&#xA;" OwnerUserId="1350" LastActivityDate="2010-09-17T11:59:01.913" CommentCount="2" />
  <row Id="4717" PostTypeId="2" ParentId="2233" CreationDate="2010-09-17T12:07:03.760" Score="0" ViewCount="" Body="&lt;p&gt;Caffiene. Of any sort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My particular prefence is Coca Cola.&lt;/p&gt;&#xA;" OwnerUserId="2382" LastActivityDate="2010-09-17T12:07:03.760" CommunityOwnedDate="2010-09-17T12:07:03.760" />
  <row Id="4718" PostTypeId="2" ParentId="4714" CreationDate="2010-09-17T12:10:06.140" Score="4" ViewCount="" Body="&lt;p&gt;I don't know what you mean by &quot;rapid development web platforms&quot;. The definition of &quot;rapid development&quot; that I'm familiar with has nothing to do with languages, paradigms, or frameworks, but rather the use of rapid prototyping and iterative development to produce a system. Any language or framework can be used equally well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never used Grails or Roo before, but Django and Rails are both MVC frameworks, so their counterpart in .NET would be &lt;a href=&quot;http://www.asp.net/mvc&quot; rel=&quot;nofollow&quot;&gt;ASP.NET MVC&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4" LastEditorUserId="4" LastEditorDisplayName="" LastEditDate="2010-09-17T12:17:14.353" LastActivityDate="2010-09-17T12:17:14.353" CommentCount="3" />
  <row Id="4719" PostTypeId="2" ParentId="4671" CreationDate="2010-09-17T12:10:36.217" Score="12" ViewCount="" Body="&lt;p&gt;Not directly programming, but related:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was programming some long session while reading things in a book (the paper variant). Then I needed to have some information from the book so I tried to select and copy the piece of text. Which of course didn't work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The universe API is missing some real important methods.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-17T12:10:36.217" CommunityOwnedDate="2011-01-11T04:02:16.833" CommentCount="9" />
  <row Id="4720" PostTypeId="2" ParentId="217" CreationDate="2010-09-17T12:13:17.427" Score="1" ViewCount="" Body="&lt;p&gt;It depends on the other stuff you have on your resume...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;If you have a lot of better things, it would only be a bloat entry.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you don't have much things, it could show that you are more broad...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure it has the notion of being educational, do not list it as a main language. ;-)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-17T12:13:17.427" />
  <row Id="4722" PostTypeId="2" ParentId="4654" CreationDate="2010-09-17T12:17:17.480" Score="6" ViewCount="" Body="&lt;p&gt;It sounds more to me like getting more RAM in your machine would be the best thing you can do. &lt;/p&gt;&#xA;" OwnerUserId="2242" LastActivityDate="2010-09-17T12:17:17.480" CommentCount="6" />
  <row Id="4723" PostTypeId="2" ParentId="4680" CreationDate="2010-09-17T12:19:08.653" Score="6" ViewCount="" Body="&lt;p&gt;&quot;Like&quot; and &quot;be competent at&quot; are entirely different things - so as long as you are properly numerate then I can't see a reason why you would &lt;em&gt;have&lt;/em&gt; to like maths.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But lets be absolutely clear here - programming has a strong basis in maths and sooner or later almost any non-trivial development is going to involve calculations - you can't hide from this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any programming involves logic (basis in maths), most modern programming probably involves things (like SQL) that involve set theory (even if its not obvious) and if it doesn't then it may well be the case that you're off in realms (like games programming) that are even more explicitly maths based (rendering - maths, AI -&gt; probability and randomness - maths...) and so it goes on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The upshot of the above is that you have to be comfortable with numbers - you certainly have to get why &quot;There are 10 types of people in the world, those who understand binary and those who don't&quot; is funny. But you're probably excused &quot;2 + 2 = 5... for very large values of 2&quot;.&lt;/p&gt;&#xA;" OwnerUserId="866" LastEditorUserId="866" LastEditorDisplayName="" LastEditDate="2011-03-08T09:03:10.487" LastActivityDate="2011-03-08T09:03:10.487" CommunityOwnedDate="2011-03-08T17:21:03.470" />
  <row Id="4724" PostTypeId="2" ParentId="1542" CreationDate="2010-09-17T12:21:05.490" Score="0" ViewCount="" Body="&lt;p&gt;Compare C# and F#, you will see a similar effect there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's easier to write control structures in C#, while it is easier to apply functions in F#.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-17T12:21:05.490" />
  <row Id="4726" PostTypeId="2" ParentId="3419" CreationDate="2010-09-17T12:26:43.353" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blog.stackoverflow.com/2008/09/what-was-stack-overflow-built-with/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Stack Overflow&lt;/strong&gt;&lt;/a&gt; - &lt;a href=&quot;http://en.wikipedia.org/wiki/ASP.NET&quot; rel=&quot;nofollow&quot;&gt;Microsoft ASP.NET&lt;/a&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;C#&lt;/a&gt; using &lt;a href=&quot;http://www.asp.net/mvc/&quot; rel=&quot;nofollow&quot;&gt;MVC&lt;/a&gt;, see more &lt;a href=&quot;http://blog.stackoverflow.com/2008/09/what-was-stack-overflow-built-with/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-17T12:26:43.353" CommunityOwnedDate="2010-09-17T12:26:43.353" />
  <row Id="4728" PostTypeId="2" ParentId="4596" CreationDate="2010-09-17T12:32:21.030" Score="5" ViewCount="" Body="&lt;p&gt;I need admin rights to fire up Apache on port 80 on my development MacBook. Apart from that, there's no reason I couldn't be on a locked down machine with no admin rights. And I could use a nonstandard port, if I really needed to. From an enterprise resources standpoint, it makes sense to have developers not be privileged users of their machines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, locking a developer down on their machine needs to come along with a responsive and willing admin team. If I can't install stuff myself, I need somebody who can do it for me chop chop, and without putting me through three rounds of approval paperwork about it. If the enterprise is unwilling to commit to that, then they should give developers full run of their boxen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer the latter, obviously, but I can see the wisdom of the former.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-09-17T12:32:21.030" />
  <row Id="4729" PostTypeId="2" ParentId="4680" CreationDate="2010-09-17T12:35:09.557" Score="1" ViewCount="" Body="&lt;p&gt;No, as long as you are talking about math apptitude and not grades and include all subjects: logic, algegra, geometry, trig. I did much better in geometry than algebra because I think I understand things 'spacially' and my teacher did not require any memorization which is good because I have none. Probably why I like working with databases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, it may have depended on your school system's math curriculum. Doing nothing but computations and memorization would have put me off.&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2011-03-08T20:57:33.893" LastActivityDate="2011-03-08T20:57:33.893" CommunityOwnedDate="2011-03-08T17:21:03.470" />
  <row Id="4730" PostTypeId="2" ParentId="4596" CreationDate="2010-09-17T12:35:58.010" Score="0" ViewCount="" Body="&lt;p&gt;It depends what you are writing software for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your software doesn't need to &lt;em&gt;intrude&lt;/em&gt; in your system, there is no need for administrator powers.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;A better solution: For installation/testing purposes one might want to use VMs or test lab computers.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-17T12:35:58.010" />
  <row Id="4731" PostTypeId="1" AcceptedAnswerId="4735" CreationDate="2010-09-17T12:37:26.930" Score="8" ViewCount="388" Body="&lt;p&gt;I think most great programmers make the effort to read blogs.  I know it helps to expose you to new technologies and ideas, but why does it really make a difference?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My main idea is that it shows you that there are much better programmers than you.  If you're working for a small company it's easy to be the best amongst your peers.  But if you're reading blogs you quickly realize that you're average at best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What about reading blogs makes you a better programmer?&lt;/p&gt;&#xA;" OwnerUserId="221" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:17:16.740" LastActivityDate="2010-09-18T21:17:16.740" Title="How does reading blogs make you a better programmer?" Tags="&lt;self-improvement&gt;&lt;blogs&gt;&lt;great-programmer&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="1" />
  <row Id="4732" PostTypeId="2" ParentId="2699" CreationDate="2010-09-17T12:42:13.673" Score="2" ViewCount="" Body="&lt;p&gt;I had to fix some confusing concurrency stuff last semseter, but the bug that still stands out the most for me was in a text based game I was writing in PDP-11 assembly for a homework assignment. It was based on Conway's Game of Life and for some strange reason a large part of the information next to the grid was constantly being overwritten with information that shouldn't have been there. The logic was also pretty straightforward, so it was very confusing. After going over it a bunch of times to rediscover that all the logic is correct I suddenly noticed what was the problem. This thing: &lt;code&gt;.&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In PDP-11 this little dot next to a number makes it base 10 instead of 8. It was next to a number that bounded a loop that was supposed to be limited to the grid, whose size was defined with the same numbers but in base 8. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It still stands out for me because the of the amount of damage such a tiny 4 pixel sized addition caused. &#xA;So what's the conclusion? Don't code in PDP-11 assembly. &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2010-11-02T21:18:45.947" LastActivityDate="2010-11-02T21:18:45.947" />
  <row Id="4733" PostTypeId="2" ParentId="4731" CreationDate="2010-09-17T12:44:03.577" Score="1" ViewCount="" Body="&lt;p&gt;Different people have different aspects. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the blogger has good writing skills to help you understand &lt;em&gt;his aspect&lt;/em&gt;, you've just earned yourself another point of view which helps you to be a better programmer. It doesn't matter if you agree with him or not; new points of view give you a flexier mind which will improve the quality of your judgement.&lt;/p&gt;&#xA;" OwnerUserId="1721" LastActivityDate="2010-09-17T12:44:03.577" CommentCount="1" />
  <row Id="4734" PostTypeId="2" ParentId="3730" CreationDate="2010-09-17T12:44:46.257" Score="4" ViewCount="" Body="&lt;p&gt;I was searching a couple of weeks ago for some info about google development methodologies and found the following which I &lt;a href=&quot;http://www.chrisdoesdev.com/?tag=methodologies&quot; rel=&quot;nofollow&quot;&gt;posted on my blog&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Steve Y - Good Agile vs Bad Agile&lt;/li&gt;&#xA;&lt;li&gt;A summary of google methodologies from Steve Y's post&lt;/li&gt;&#xA;&lt;li&gt;Google Product Development/Management Process&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I can't post more than one link at the moment, though, (stackexchange spam prevention apparently), so follow the link to my blog or google the above strings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Chris.&lt;/p&gt;&#xA;" OwnerUserId="2397" LastActivityDate="2010-09-17T12:44:46.257" CommentCount="1" />
  <row Id="4735" PostTypeId="2" ParentId="4731" CreationDate="2010-09-17T12:45:14.337" Score="7" ViewCount="" Body="&lt;p&gt;I think you're probably looking at it the wrong way. Reading blogs doesn't (necessarily) make you a better programmer, but a better programmer is more likely to read blogs, because they are out trying to improve in as many ways as they can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That aside, the best way to learn is to listen to people more knowledgeable than yourself; books, blogs, a smart co-worker, whatever it happens to be is more or less irrelevant.&lt;/p&gt;&#xA;" OwnerUserId="1350" LastActivityDate="2010-09-17T12:45:14.337" />
  <row Id="4737" PostTypeId="2" ParentId="4714" CreationDate="2010-09-17T12:52:46.120" Score="5" ViewCount="" Body="&lt;p&gt;It have. See &lt;a href=&quot;http://www.castleproject.org/monorail/index.html&quot; rel=&quot;nofollow&quot;&gt;MonoRail&lt;/a&gt; or whole Castle Project.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-17T12:52:46.120" CommentCount="2" />
  <row Id="4738" PostTypeId="2" ParentId="4693" CreationDate="2010-09-17T13:00:38.233" Score="0" ViewCount="" Body="&lt;p&gt;I think this is quite relative. A programmer may sound quite friendly to another programmer, but is not going to open up pretty quickly to someone whom she doesn't know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other aspects may be, they have to break their head, debug and fix some problems and at the same time if you interrupt them, they won't be sweet as they are ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or maybe they feel a bit superior sometimes (not all, but few of) as they get a good paycheck than some xyz gal.&lt;/p&gt;&#xA;" OwnerUserId="2167" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2010-11-13T12:44:27.497" LastActivityDate="2010-11-13T12:44:27.497" CommunityOwnedDate="2010-09-19T15:29:19.433" />
  <row Id="4739" PostTypeId="2" ParentId="4714" CreationDate="2010-09-17T13:03:33.233" Score="2" ViewCount="" Body="&lt;p&gt;You could go into Visual Studio and drag and drop controls on a web page and connect them to a database with little to no code. One click to test/view. And one click to upload to a website (ok, enter credentials).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not that this is the most used or even recommended way of doing it, but it really doesn't get much easier than this. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-17T13:03:33.233" />
  <row Id="4740" PostTypeId="2" ParentId="4680" CreationDate="2010-09-17T13:06:37.350" Score="3" ViewCount="" Body="&lt;p&gt;I have seen this topic argued back and forth.  I have worked with people who had degrees in mathematics that thought they could progam and within a year or two changed careers.  One of the best programmers I ever had the pleasure to work with had a Ph.D in Biochemistry and never took a formal programming/CS class in school but self-taught himself and started a successful software company! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately, what makes a good to great programmer is someone who is capable of understanding logic, workflows, can learn by example and willing to research for a solution.  Also, you HAVE TO LEARN THE BUSINESS your applications are for.  I hate programmers who are pround they don't understand accounting, yet write accountting applications.  They always make incorrect assumptions and really slow down development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will find, no matter what school you go to, you will learn more in one year out of school than you did in 4 years of school.  School teaches you how to learn with basic skill set - but real world experience is so much more valuable over time.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Experience is the best teacher and when you have to apply mathematics in to software development, as long as you learn the business - you will be fine.  Also, remember, as an earlier post said, unless you are trying to work on a 3D graphics engine or graphic coordinate systems like GIS application, math you learned through high school is all you really need.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've worked on Accounting and Billing systems - and I never had to figure out Log(x), SIN, COS, etc for handling a general ledger or allowing data entry.  An Aging Journal is not &quot;high mathematics&quot; but critical to evaluating AP issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Come to think about it, I've never meet an accountant with a scientific calculator on their desk!&lt;/p&gt;&#xA;" OwnerUserId="1789" LastActivityDate="2010-09-17T13:06:37.350" CommunityOwnedDate="2011-03-08T17:21:03.470" />
  <row Id="4741" PostTypeId="2" ParentId="3629" CreationDate="2010-09-17T13:09:00.043" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A Pencil.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(and a pencil sharpener)  I find it easier to sketch out ideas / take notes etc with a good 2H pencil.&lt;/p&gt;&#xA;" OwnerUserId="2397" LastActivityDate="2010-09-17T13:09:00.043" CommunityOwnedDate="2010-09-17T13:09:00.043" />
  <row Id="4742" PostTypeId="2" ParentId="4693" CreationDate="2010-09-17T13:11:19.347" Score="4" ViewCount="" Body="&lt;p&gt;People who are shy and/or introverted are often accused of being arrogant; our industry has its share individuals of this type. When you're expected to know everything about a computer, &quot;Hey you're the programmer, why is my fan all of the sudden making so much noise?&quot;, confidence can seem like arrogance. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And to be heard during a meeting with the &quot;Technology Committe&quot; we have to get up on our chairs (leaving the wheels unlocked to show how crazy we are) and shout WHAT IS WRONG WITH YOU PEOPLE!&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-17T13:11:19.347" CommunityOwnedDate="2010-09-19T15:29:19.433" />
  <row Id="4743" PostTypeId="2" ParentId="4693" CreationDate="2010-09-17T13:16:42.437" Score="10" ViewCount="" Body="&lt;p&gt;Quite a lot of programmers have &lt;a href=&quot;http://en.wikipedia.org/wiki/Asperger_syndrome&quot; rel=&quot;nofollow&quot;&gt;aspergers&lt;/a&gt; syndrome. Or rather, people with aspergers have a tendency to become obsessed with programming due to the way our brains work!&lt;/p&gt;&#xA;" OwnerUserId="1724" LastActivityDate="2010-09-17T13:16:42.437" CommunityOwnedDate="2010-09-19T15:29:19.433" CommentCount="6" />
  <row Id="4744" PostTypeId="2" ParentId="4731" CreationDate="2010-09-17T13:17:33.420" Score="2" ViewCount="" Body="&lt;p&gt;Programmers not only read blogs but write them, so by keeping a few of my favorites in my reader, I can stay on top of what is going on in the industry and keep up with emerging trends.  I can't count how many ideas I got from blogs.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-09-17T13:17:33.420" CommentCount="1" />
  <row Id="4745" PostTypeId="2" ParentId="4662" CreationDate="2010-09-17T13:17:34.870" Score="1" ViewCount="" Body="&lt;p&gt;I would hope that you are seeking a long-term career that you would actually enjoy as much as possible. Knowing more than one is pretty good advice, but you have to start somewhere. Do you want to be a programmer or a DBA? That is really going to drive how specific you get with Oracle. If you want to be a programmer, learn about databases, but in the context of writing applications for them. If you want to go the Microsoft route, it's .NET. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What will end up happening is you will pick one and then find work/projects with it or you'll end up being required to learn something else. Don't look at picking one and ending up in another as a bad thing. Life's a journey not a destination.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-17T13:17:34.870" />
  <row Id="4746" PostTypeId="2" ParentId="1460" CreationDate="2010-09-17T13:21:44.533" Score="0" ViewCount="" Body="&lt;p&gt;Even if Bill Gates, Steve Jobs, or Larry Ellison, really wanted to write code they could still do it. Not sure I'll ever find a job with more responsibilities and other time-sucking activities than theirs.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-17T13:21:44.533" CommentCount="1" />
  <row Id="4747" PostTypeId="2" ParentId="4671" CreationDate="2010-09-17T13:22:07.790" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://turbu-rpg.com/8/potion-of-death&quot; rel=&quot;nofollow&quot;&gt;The Potion of Death.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-17T13:22:07.790" CommunityOwnedDate="2011-01-11T04:02:16.833" CommentCount="1" />
  <row Id="4748" PostTypeId="2" ParentId="3849" CreationDate="2010-09-17T13:25:26.080" Score="1" ViewCount="" Body="&lt;p&gt;when they solve &lt;a href=&quot;http://en.wikipedia.org/wiki/P_versus_NP_problem&quot; rel=&quot;nofollow&quot;&gt;&quot;P Vs NP&quot;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-17T13:25:26.080" CommentCount="3" />
  <row Id="4749" PostTypeId="2" ParentId="2699" CreationDate="2010-09-17T13:26:20.340" Score="2" ViewCount="" Body="&lt;p&gt;I'm still on my most difficult bug hunt.  It's one of those sometimes its there and sometimes its not bugs.  Thats why I'm here, at 6:10am the next day.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Background:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Context: Language, Application, Environment, etc.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PHP OS Commerce&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;How was the bug identified ?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Random order's that work part way the randomly fail and redirect issues&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Who or what identified the bug ?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Client, and the redirect issue was obvious&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;How complex was reproducing the bug ?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I havent been able to reproduce, but client has been able to.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Hunting.&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What was your plan?&lt;br&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Add debug code, fill order, analize data, repeat&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;What difficulties did you encounter ?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Lack of repeatable problems and horrible code&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;How was the offending code finally found ?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;lots of offending code was found.. just not exactly what i needed.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Killing.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How complex was the fix ?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;very&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;How did you determine the scope of the fix ?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;there was no scope... it was everywhere&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;How much code was involved in the fix ?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;All of it?  I dont think there was a file untouched&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Postmortem.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What was the root cause technically ? buffer overrun, etc.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;bad coding practice&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;What was the root cause from 30,000 ft ?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I would rather not say...&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;How long did the process ultimately take ?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;forever and a day&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Were there any features adversely effected by the fix ?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;feature? or is it a bug?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;What methods, tools, motivations did you find particularly helpful ? ...horribly useless ?&lt;/li&gt;&#xA;&lt;li&gt;If you could do it all again ?............&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ctrl+a Del&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-09-17T13:26:20.340" CommentCount="1" />
  <row Id="4750" PostTypeId="2" ParentId="1460" CreationDate="2010-09-17T13:26:36.673" Score="2" ViewCount="" Body="&lt;p&gt;This is a hands down no. I don't mind leading a small team, but where I still get to code. The whole reason I went into software development was for my love of coding and making things work with elegant solutions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The day that is no longer fun, I guess I'll move up or out. But until that day...I'm a coder :)&lt;/p&gt;&#xA;" OwnerUserId="2305" LastActivityDate="2010-09-17T13:26:36.673" />
  <row Id="4752" PostTypeId="2" ParentId="4662" CreationDate="2010-09-17T13:28:01.900" Score="7" ViewCount="" Body="&lt;p&gt;All of them. Both are solid technologies and they will stay in mainstream for long long time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway the most characteristic of our career is change (evolution, new technologies introduction). You need learn new things forever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Technologies knowledge are not important to stay relevant on career, fundamentals, hard work, motivation and evolution is the key.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-17T14:18:03.660" LastActivityDate="2010-09-17T14:18:03.660" />
  <row Id="4753" PostTypeId="2" ParentId="4671" CreationDate="2010-09-17T13:32:49.790" Score="3" ViewCount="" Body="&lt;p&gt;forgot the $ symbol in front of an variable while coding PHP application, i've spent two days trying to figure what's going wrong with my for loop..&lt;br/&gt;back at time i use to develop with blocnote.&lt;/p&gt;&#xA;" OwnerUserId="2380" LastActivityDate="2010-09-17T13:32:49.790" CommunityOwnedDate="2011-01-11T04:02:16.833" CommentCount="4" />
  <row Id="4754" PostTypeId="1" AcceptedAnswerId="4756" CreationDate="2010-09-17T13:39:41.617" Score="9" ViewCount="396" Body="&lt;p&gt;I read a few questions about how you can benefit from reading blogs, but I wonder what is really the impact of writing one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had &lt;a href=&quot;http://www.juanformoso.com.ar&quot; rel=&quot;nofollow&quot;&gt;mine&lt;/a&gt;, but I neglected it (not having the time, not having fun with it (and I really try to avoid things that are not fun)) and now it's dead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I try harder on it? Or I can keep developing (pun) my abilities without having to maintain a blog?&lt;/p&gt;&#xA;" OwnerUserId="2403" LastActivityDate="2010-09-17T17:42:15.023" Title="Should I have a blog to be a better programmer?" Tags="&lt;self-improvement&gt;&lt;advice&gt;&lt;blogs&gt;" AnswerCount="8" FavoriteCount="2" />
  <row Id="4755" PostTypeId="2" ParentId="370" CreationDate="2010-09-17T13:44:10.503" Score="9" ViewCount="" Body="&lt;p&gt;I got my first programming job at age 37.  So that's not too old to start, if you are bright, eager to learn, and willing to accept the salary of a junior programmer.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-09-17T13:44:10.503" CommentCount="1" />
  <row Id="4756" PostTypeId="2" ParentId="4754" CreationDate="2010-09-17T13:44:13.073" Score="17" ViewCount="" Body="&lt;p&gt;I would say yes, you should.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find I often think I have a good grasp of a subject, but when I blog about it I sometimes need to go research some of the finer details.  Writing about a subject often helps you understand what you know and what you don't know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also helps you get involved with the development community which can only help you become a better programmer.  Getting other people's opinions about what you're writing is the best way of figuring out how well you know a subject.&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-17T13:44:13.073" CommentCount="4" />
  <row Id="4758" PostTypeId="2" ParentId="4754" CreationDate="2010-09-17T13:51:06.567" Score="4" ViewCount="" Body="&lt;p&gt;not really ... but regular participation in sites like StackOverflow or technical forum is goood&lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-09-17T13:51:06.567" />
  <row Id="4760" PostTypeId="2" ParentId="4671" CreationDate="2010-09-17T13:56:02.417" Score="32" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;&amp;lt;input onlick=&quot;Something.Start();&quot; value=&quot;click!&quot; /&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;After few good minutes trying to work out what the hell is wrong with my javascript code and why my &lt;code&gt;click&lt;/code&gt; event is not being fired I decided to &lt;em&gt;lick&lt;/em&gt; my screen. It worked like magic. Tasted bit funny though....&lt;/p&gt;&#xA;" OwnerUserId="2412" LastActivityDate="2010-09-17T13:56:02.417" CommunityOwnedDate="2011-01-11T04:02:16.833" CommentCount="4" />
  <row Id="4761" PostTypeId="2" ParentId="4754" CreationDate="2010-09-17T14:11:12.660" Score="1" ViewCount="" Body="&lt;p&gt;Any forum where you explain your ideas in a way that helps you think through them will help you become a better programmer.  Even if you think you have something all figured out, explaining it to others will clarify things, and expose the places where there are holes in your understanding.  This can be a blog, but giving talks to local users groups, colleges, or maybe even high schools would work as well.  You can also write a paper for an organization like the &lt;a href=&quot;http://accu.org&quot; rel=&quot;nofollow&quot;&gt;ACCU&lt;/a&gt;.  Even answering questions on places like Stack Overflow will help you improve.&lt;/p&gt;&#xA;" OwnerUserId="1427" LastActivityDate="2010-09-17T14:11:12.660" />
  <row Id="4763" PostTypeId="2" ParentId="4754" CreationDate="2010-09-17T14:15:43.283" Score="9" ViewCount="" Body="&lt;p&gt;&lt;b&gt;A blog in itself will not make you a better programmer, it's programming that will make you a better programmer&lt;/b&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Posting articles on a blog helps you clear your understanding of some notions. It is certainly interesting to publish medium to long articles on a personal blog, but it would be better to publish thoses articles on technology dedicated sites : you'll have a wider audience and comments : comments are the more important things to learn. They are a feedback to your ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Answers to very narrow technical questions have a greater impact on sites like stackoverflow.com. Your answers will help more directly the developers community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See also &lt;a href=&quot;http://www.codinghorror.com/blog/2005/05/blogging-about-blogging.html&quot; rel=&quot;nofollow&quot;&gt;blogging about blogging&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1905" LastEditorUserId="1905" LastEditorDisplayName="" LastEditDate="2010-09-17T14:28:28.173" LastActivityDate="2010-09-17T14:28:28.173" CommentCount="3" />
  <row Id="4764" PostTypeId="2" ParentId="4662" CreationDate="2010-09-17T14:15:55.233" Score="1" ViewCount="" Body="&lt;p&gt;Learn the concepts underlying the specific brands (for want of a better term).  Learn object-oriented design with Java / .NET as a tool to that end.  Learn about relational databases (and SQL, as that is fairly generic), with whatever database you have access to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was taught databases at university on Postgres but have never touched it since leaving the last exam.  I use MySQL, Oracle and SQL Server frequently, but everything I learned in classes and practical sessions is still entirely valid.&lt;/p&gt;&#xA;" OwnerUserId="2238" LastActivityDate="2010-09-17T14:15:55.233" />
  <row Id="4765" PostTypeId="1" AcceptedAnswerId="4780" CreationDate="2010-09-17T14:21:27.327" Score="30" ViewCount="938" Body="&lt;p&gt;Have you ever reached a point at your job when you just know it's time to move on? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When do you move to the point that you're willing to let go of the demons you know for the ones you don't know? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What was your deciding factor final straw so to speak when you finally faced the decision to find a new job? &lt;/p&gt;&#xA;" OwnerUserId="2305" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-24T22:30:15.250" LastActivityDate="2010-11-23T19:35:15.130" Title="When do you know it's time to move on from your current job?" Tags="&lt;jobs&gt;&lt;work-environment&gt;&lt;personality&gt;" AnswerCount="16" FavoriteCount="8" />
  <row Id="4766" PostTypeId="2" ParentId="4765" CreationDate="2010-09-17T14:24:19.587" Score="13" ViewCount="" Body="&lt;p&gt;When you are no longer learning or growing.&lt;/p&gt;&#xA;" OwnerUserId="2405" LastActivityDate="2010-09-17T14:24:19.587" CommentCount="3" />
  <row Id="4767" PostTypeId="2" ParentId="4765" CreationDate="2010-09-17T14:25:04.767" Score="1" ViewCount="" Body="&lt;p&gt;I didn't have one definite moment... the process started when I began to think about it as a possibility and it grew until I found a better opportunity and left.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It always was a slow process for me rather than a &lt;em&gt;final straw&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2403" LastActivityDate="2010-09-17T14:25:04.767" />
  <row Id="4768" PostTypeId="2" ParentId="4671" CreationDate="2010-09-17T14:26:11.800" Score="21" ViewCount="" Body="&lt;p&gt;Does forgetting the WHERE clause in a sql DELETE statement count? It wasn't funny at the time since I deleted the entire contents of a production database, but looking back at it I have to smile and know I will never, ever, make that mistake again.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-09-17T14:26:11.800" CommunityOwnedDate="2011-01-11T04:02:16.833" CommentCount="16" />
  <row Id="4769" PostTypeId="2" ParentId="4765" CreationDate="2010-09-17T14:26:47.433" Score="18" ViewCount="" Body="&lt;p&gt;When you're not enjoying (most of) the work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only if you're very lucky will you have job that 100% enjoyable 100% of the time, but if you find that most of the job isn't enjoyable any more then you're not doing yourself or your employer any favours by sticking around.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-17T14:26:47.433" CommentCount="1" />
  <row Id="4770" PostTypeId="2" ParentId="4754" CreationDate="2010-09-17T14:35:32.250" Score="1" ViewCount="" Body="&lt;p&gt;I don't think it will make you a better programmer, except perhaps in that it helps with practising communication skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it can be a useful way of documenting things that you've done, if only for your own benefit.  It may also open up opportunities.  If your blog establishes you as somebody who knows what they're talking about there may potentially be job offers or consulting opportunities as a result.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had a blog for about 4 years, although it's not always frequently updated.  I initially started it to have somewhere to provide details of a couple of open soure projects I was working on.  I also wrote a few opinionated articles but not so much recently.  Most recently I just announce new releases of my projects and document things I've done in case somebody (usually me in 6 months time) needs to do the same thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had a couple of enquiries about consulting work as a result of things I've written, but nothing that I've actually ended up getting involved in.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-17T14:35:32.250" CommentCount="1" />
  <row Id="4771" PostTypeId="2" ParentId="733" CreationDate="2010-09-17T14:36:00.703" Score="0" ViewCount="" Body="&lt;p&gt;I'm an HPC programmer (well, to be honest, I'm a Fortran programmer but most of the code I work on is parallel these days) embedded in a team of research geophysicists in a small oil company.  Lots of hairy maths in the codes we work on, lots of hairy programming too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've got the right maths, oil industry pays very well.  For us the right maths is Maxwell's equations and optimisation.&lt;/p&gt;&#xA;" OwnerUserId="1704" LastActivityDate="2010-09-17T14:36:00.703" />
  <row Id="4772" PostTypeId="2" ParentId="4680" CreationDate="2010-09-17T14:36:54.650" Score="3" ViewCount="" Body="&lt;p&gt;It's more about problem solving.  How much do you like solving story problems?  Or maybe how much do you like fixing things?  Do you give up quickly or spend all day trying to put your $5.00 headphones back together?&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-09-17T14:36:54.650" CommunityOwnedDate="2011-03-08T17:21:03.470" />
  <row Id="4773" PostTypeId="2" ParentId="4671" CreationDate="2010-09-17T14:40:02.887" Score="4" ViewCount="" Body="&lt;p&gt;I used to work in a company where we had PHP webservices, and often we'd insert &lt;code&gt;mail()&lt;/code&gt; statements in webservice methods to see if they got called properly. That one time I put it in a method that would cause timeouts, I realized too late that it was an infinite loop :(&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After stopping the webserver I spent most of the day downloading the same message over and over again.&lt;/p&gt;&#xA;" OwnerUserId="1922" LastActivityDate="2010-09-17T14:40:02.887" CommunityOwnedDate="2011-01-11T04:02:16.833" CommentCount="3" />
  <row Id="4774" PostTypeId="2" ParentId="4754" CreationDate="2010-09-17T14:40:19.680" Score="0" ViewCount="" Body="&lt;p&gt;It won't make you a better programmer, but it'll make you a better leader.&lt;/p&gt;&#xA;" OwnerUserId="78" LastActivityDate="2010-09-17T14:40:19.680" />
  <row Id="4775" PostTypeId="2" ParentId="4765" CreationDate="2010-09-17T14:43:23.133" Score="7" ViewCount="" Body="&lt;p&gt;When you would rather spend all day on StackExchange (or any other website) than actually do work.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-09-17T14:43:23.133" CommentCount="3" />
  <row Id="4776" PostTypeId="2" ParentId="4680" CreationDate="2010-09-17T14:46:21.357" Score="0" ViewCount="" Body="&lt;p&gt;I have always considered programming to be nothing &lt;em&gt;but&lt;/em&gt; mathematics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It just doesn't look like high school algebra.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-17T14:46:21.357" CommunityOwnedDate="2011-03-08T17:21:03.470" />
  <row Id="4777" PostTypeId="2" ParentId="4433" CreationDate="2010-09-17T14:48:31.523" Score="0" ViewCount="" Body="&lt;p&gt;He knows how to send control and meta characters to emacs with his brain :&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/ck91z.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1905" LastActivityDate="2010-09-17T14:48:31.523" CommentCount="1" />
  <row Id="4779" PostTypeId="2" ParentId="4754" CreationDate="2010-09-17T14:53:22.360" Score="2" ViewCount="" Body="&lt;p&gt;Yes, the effort to formulate your ideas into something publishable requires a great understanding of the topic you are discussing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an added bonus it will increase your desire to become an expert in some area of programming.  This stems from the desire to actually have people read your blog.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-09-17T14:53:22.360" />
  <row Id="4780" PostTypeId="2" ParentId="4765" CreationDate="2010-09-17T14:56:29.303" Score="32" ViewCount="" Body="&lt;p&gt;I had one job where I work up every morning wishing I was sick enough to go to the hospital so I wouldn't have to go to work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At another job, I was working so many hours I was having trouble actually driving home at 2 or 3 Am when I went home. Only job I ever quit without having another job, just physically couldn't take one more day and the final straw was when they asked me to do something unethical and illegal. Thanks to my exhaustion, I had a car accident in the parking lot the day I quit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other signs it's time to move on:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You aren't sure if your paycheck will&#xA;bounce or not&lt;/li&gt;&#xA;&lt;li&gt;You are part of a Death March&lt;/li&gt;&#xA;&lt;li&gt;The work is boring beyond belief&lt;/li&gt;&#xA;&lt;li&gt;You think someone is sabotaging you&#xA;in terms of office politics  - you&#xA;start getting fewer responsibilities&#xA;and less interesting assignments and&#xA;Joe is getting the credit for the&#xA;things you did and you are starting&#xA;to see emails blaming you for things&#xA;that someone else did.&lt;/li&gt;&#xA;&lt;li&gt;You simply can't live with the&#xA;corporate culture&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1093" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-20T19:51:26.980" LastActivityDate="2010-10-20T19:51:26.980" CommentCount="8" />
  <row Id="4781" PostTypeId="2" ParentId="4765" CreationDate="2010-09-17T14:59:07.203" Score="8" ViewCount="" Body="&lt;p&gt;&lt;b&gt;It depends in what you consider a successful career&lt;/b&gt;. Some people see having lots of money a success in itself. Others see developing useful products as major achievements in their life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should first know exactly what is the things that please you most (money, building products, having lots of good friends...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, try to see if your current position could lead, with time and effort, to a better situation from your point of view and your values. If not, then move on.&lt;/p&gt;&#xA;" OwnerUserId="1905" LastActivityDate="2010-09-17T14:59:07.203" CommentCount="1" />
  <row Id="4782" PostTypeId="2" ParentId="243" CreationDate="2010-09-17T15:04:45.373" Score="4" ViewCount="" Body="&lt;p&gt;Quitting and going freelance. Which was a changing point in a good way I hasten to add.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-17T15:04:45.373" CommunityOwnedDate="2010-09-17T15:04:45.373" />
  <row Id="4783" PostTypeId="2" ParentId="3241" CreationDate="2010-09-17T15:13:20.370" Score="1" ViewCount="" Body="&lt;p&gt;I think that &lt;strong&gt;this question is biased : it starts from the presupposition that correcting bugs is a phase similar than developing new functionalities&lt;/strong&gt;. This is not the case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good developer will not spend a lot of time debugging code as his code will be bug-free from the start. A bad developer will spend a lot of time debugging his code because he can't create suitable abstractions to solve real problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that developers should unit test their own code themselves. It's their job responsibility to deliver bug-free code. So it's hard to separate coding from debugging.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also a matter of priority. When developing, the time necessary to correct a bug is related exponentially to the time that has past since the moment you've inserted the bug in the code. So correcting bugs should be of greater priority than developing new functionalities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So instead of talking about &quot;time spent on bugs&quot;, you should talk about &quot;time spent on tests&quot; (integration tests, user acceptance tests...)&lt;/p&gt;&#xA;" OwnerUserId="1905" LastActivityDate="2010-09-17T15:13:20.370" />
  <row Id="4784" PostTypeId="2" ParentId="4731" CreationDate="2010-09-17T15:23:35.653" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What about reading blogs makes you a better programmer?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The &lt;em&gt;reading&lt;/em&gt; part. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either you're constantly absorbing new information - from &lt;em&gt;whatever&lt;/em&gt; sources are available - or you're stagnating.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-17T15:23:35.653" />
  <row Id="4785" PostTypeId="2" ParentId="3256" CreationDate="2010-09-17T15:23:48.833" Score="1" ViewCount="" Body="&lt;p&gt;My previous employer filed an injunction against me on the ground of the non-compete agreement I signed and I was out of work for a couple of months.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even the new employer agreed to move me to another group which was doing work unrelated to the same type of business, they still wouldn't let me. I could have fought in court, but it wasn't worth the time and effort plus I had to foot the legal bill if I lost, so I left and started job hunting again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only after this experience, I learned that this had happened to quite a few people including engineers.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-17T15:23:48.833" />
  <row Id="4786" PostTypeId="2" ParentId="4587" CreationDate="2010-09-17T15:24:16.443" Score="7" ViewCount="" Body="&lt;p&gt;I think there are lot of ethical challenges in the world of data mining. Programmers who don't care how much they can screw up other people's lives by not caring about the quality of the data they mine for credit reports comes to mind. I'll never forget  my sister being asked what kind of car my ex-sister-in-law (she and my briother had been divorced for ten years at that point) drove in a business credit application for instance. If they are using information like that which is totally irrelevant and outside the control of the applicant what else are they doing that is worse but we don't know about?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Data mining is also why I'm getting nasty creditor calls for some person I never heard of who probably lived in this house 30 years ago or who is a neighbor I don't know (I understand they do this to embarrass the creditor to his neighbors which is not only wrong but I'm pretty sure it's illegal, too).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you work in financial systems you could be asked to write a program to steal from the company in a way that it would be hard to find. This is likely not the corporation asking but it is possible someone who can fire you could ask for this if he or she were unethical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is unethical to store people's private information in an unecrypted fashion so that anyone who steals the database backups can see it. Lots of people have had their identities stolen this way and I know I have been notified several times (most recently by a Life insurance company, before that it was the company where we had our 401K) that my data had potentially been stolen. As a programmer you have a responsibility to protect the personal information you collect.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastEditorUserId="1093" LastEditorDisplayName="" LastEditDate="2011-01-06T22:05:01.183" LastActivityDate="2011-01-06T22:05:01.183" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="2" />
  <row Id="4787" PostTypeId="2" ParentId="243" CreationDate="2010-09-17T15:24:46.913" Score="6" ViewCount="" Body="&lt;p&gt;Anti-depressants.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, that and getting a job under a manager who understood how to create an environment where I was likely to succeed.  (My first two jobs out of college were awful, and the third was with a dot-bomb that closed the R&amp;amp;D office I worked at ten weeks after moving me out to take the job.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But up until age 27, I spent my life trying and mostly failing to deal with clinical depression on my own, with no outside help.  This went ... poorly.  A friend bullied me into getting the treatment I so desperately needed, and my life has been immeasurably better since -- including my professional life.  It's amazing what you can accomplish when you're no longer the single largest impediment to your own success.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I finally worked under a manager who insisted the project have clearly defined, achievable goals, and made sure I had the resources I needed to make a meaningful contribution.  That lovely confluence of events was when I finally realized &quot;Holy shit, I can actually &lt;b&gt;do&lt;/b&gt; this!&quot;&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-17T15:24:46.913" CommunityOwnedDate="2010-09-17T15:24:46.913" />
  <row Id="4788" PostTypeId="2" ParentId="4731" CreationDate="2010-09-17T15:31:01.817" Score="1" ViewCount="" Body="&lt;p&gt;You'd better read code than read blogs if you wish to be a better programmer. In fact, &lt;b&gt;you'd better program to be a better programmer&lt;/b&gt;. You'll read blog posts when google will list them as the result of a query you'll have make to find how to do something in the code your developing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should read books if you really want to learn something at a deeper level. Time is money, so you should better use time on something like books and source code than millions of disparate blog posts.&lt;/p&gt;&#xA;" OwnerUserId="1905" LastActivityDate="2010-09-17T15:31:01.817" CommentCount="4" />
  <row Id="4789" PostTypeId="2" ParentId="4711" CreationDate="2010-09-17T15:35:09.727" Score="1" ViewCount="" Body="&lt;p&gt;Read &lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book.html&quot; rel=&quot;nofollow&quot;&gt;SICP&lt;/a&gt; from start to end. Then program.&lt;/p&gt;&#xA;" OwnerUserId="1905" LastActivityDate="2010-09-17T15:35:09.727" />
  <row Id="4791" PostTypeId="2" ParentId="2757" CreationDate="2010-09-17T15:41:35.907" Score="0" ViewCount="" Body="&lt;p&gt;One. I've a laptop, so I've connected a keyboard, mouse and a monitor to it, effectively making it a desktop for ergonomic reasons. I still have the benefit using the laptop when not in office.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-09-17T15:41:35.907" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="4794" PostTypeId="2" ParentId="4765" CreationDate="2010-09-17T15:42:53.407" Score="0" ViewCount="" Body="&lt;p&gt;When you start finding mundane, everyday tasks (that you did without a moment's thought earlier ) boring and start skipping them.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastEditorUserId="1539" LastEditorDisplayName="" LastEditDate="2010-09-22T08:56:23.260" LastActivityDate="2010-09-22T08:56:23.260" />
  <row Id="4796" PostTypeId="2" ParentId="4711" CreationDate="2010-09-17T15:44:05.153" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Outliers_%28book%29&quot; rel=&quot;nofollow&quot;&gt;10,000 hours of practice&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2078" LastActivityDate="2010-09-17T15:44:05.153" CommentCount="1" />
  <row Id="4797" PostTypeId="2" ParentId="4711" CreationDate="2010-09-17T15:44:08.133" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;What does he need to know?  He needs to know experience.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that's not the answer you're looking for, but it is the answer.  The body of knowledge that makes up a great programmer is all the little things that accrue from working on different types of project, with different types of teams, and with different technologies.  That's all there is.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-17T15:44:08.133" />
  <row Id="4798" PostTypeId="2" ParentId="243" CreationDate="2010-09-17T15:44:27.330" Score="1" ViewCount="" Body="&lt;p&gt;After doing this for seven years something has recently dawned on me.  When you start a new gig, you have a choice: you can either sit back, blend in and collect a good paycheck or you can be passionate about what you do and stand apart from the rest of the crowd.  For people that fall in the latter category, it's difficult to do anything else.  It's been my experience that setting yourself apart, at least within the corporate world, has the unfortunate consequence of drawing you into messy political battles and pointless and self-serving personal agendas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realized that a life in a cubicle is a life wasted so, with my wife's support, I decided to join a very small team of developers in building a start-up company.  Some days are terrifying... some days are invigorating beyond my wildest imagination... most days are a combination of the two.  I realized that the job security I had felt over the last several years was merely an illusion and that at least here I had a more complete picture over where the company is as a whole.  On top of that, the feeling that you actually matter is, in my honest opinion, priceless.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-09-17T15:44:27.330" CommunityOwnedDate="2010-09-17T15:44:27.330" CommentCount="1" />
  <row Id="4799" PostTypeId="2" ParentId="243" CreationDate="2010-09-17T15:45:09.643" Score="0" ViewCount="" Body="&lt;h2&gt;Two Times:&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Sounds simple but &lt;strong&gt;I stopped fearing the Database&lt;/strong&gt;.  Worked at a wonderful company with very seasoned older folks (the best and most efficient):  Need to keep session state across lots of nodes: put it in a session table.  Manage secure data access: join in a role/permissions table   in the view when pulling the data.  It went on and on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I thought I was SO cool with my JVM knowledge and my non-DB-dependent solutions until I had REAL problems to solve, like cross-processing several billion data records before morning deadlines.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Prior to that, I worked under some very smart people at IBM in the mid-90s trying to re-write their app server because I thought I could do better.  Several weeks of development later, I ended up having to introduce &lt;em&gt;worse&lt;/em&gt; concepts just working around what I thought were downfalls in the project.  Failed/insufficient application containers that were real precursors to J2EE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The short of it is that we tend to advance as society, individuals and even programmers once we realize we do NOT always have the best practices and those who came before us likely have already faced the same challenges, embrace the knoweldge.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-17T15:45:09.643" CommunityOwnedDate="2010-09-17T15:45:09.643" />
  <row Id="4800" PostTypeId="2" ParentId="2233" CreationDate="2010-09-17T15:46:00.017" Score="1" ViewCount="" Body="&lt;p&gt;Good Lighting (around and above the desk).&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-09-17T15:46:00.017" CommunityOwnedDate="2010-09-17T15:46:00.017" />
  <row Id="4801" PostTypeId="5" CreationDate="2010-09-17T15:47:36.977" Score="0" ViewCount="0" Body="&lt;p&gt;A programming language is an artificial language designed to express computations that can be performed by a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine, to express algorithms precisely, or as a mode of human communication.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many programming languages have some form of written specification of their syntax (form) and semantics (meaning). Some languages are defined by a specification document. For example, the C programming language is specified by an ISO Standard. Other languages, such as Perl, have a dominant implementation that is used as a reference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The earliest programming languages predate the invention of the computer, and were used to direct the behavior of machines such as Jacquard looms and player pianos. Thousands of different programming languages have been created, mainly in the computer field, with many more being created every year. Most programming languages describe computation in an imperative style, i.e., as a sequence of commands, although some languages, such as those that support functional programming or logic programming, use alternative forms of description.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From &lt;a href=&quot;http://en.wikipedia.org/wiki/Programming_language&quot; rel=&quot;nofollow&quot;&gt;Wikipedia&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="-1" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-02-03T23:59:25.357" LastActivityDate="2011-02-03T23:59:25.357" />
  <row Id="4802" PostTypeId="4" CreationDate="2010-09-17T15:47:36.977" Score="0" ViewCount="0" Body="Artificial languages for instructing computers to do steps of computation in order to complete tasks. They allow programmers to communicate with computers." OwnerUserId="-1" LastEditorUserId="12750" LastEditorDisplayName="" LastEditDate="2011-04-27T21:35:34.567" LastActivityDate="2011-04-27T21:35:34.567" />
  <row Id="4803" PostTypeId="2" ParentId="3256" CreationDate="2010-09-17T15:48:37.787" Score="0" ViewCount="" Body="&lt;p&gt;They kept increasing my pay. Eventually the company went bust and I left anyway, but I can't help but think that if they weren't paying me so much they would have lasted a little longer and maybe used the extra time to fix the issues that killed the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also sometimes think that if I was being paid so much, what were my seniors and management being paid?!&lt;/p&gt;&#xA;" OwnerUserId="1732" LastActivityDate="2010-09-17T15:48:37.787" />
  <row Id="4804" PostTypeId="2" ParentId="4693" CreationDate="2010-09-17T15:52:00.470" Score="18" ViewCount="" Body="&lt;p&gt;Arrogance is often an indication of incomplete social skills. Like any other skills, social skills need to be learned and practiced and that takes time (10000-hours rule).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of programmers chose to spend their 10000 hours on learning programming. The same can be said about astronomers, authors and - unfortunately - doctors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And given that programming as a profession constantly evolves and we have to relearn and reinvent the skill sets, I would suggest that even after the initial 10000 hours are spent, there is still better return on investment by spending extra time on programming than on the multiple hours required to get even 'basic' social skills right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, if 'people' skills become part of the deliverables, we often have to learn them and do learn them. I had to do tech-support for 3 years and it really did push some social skills on me. People now have troubles believing I really am an introvert. &lt;/p&gt;&#xA;" OwnerUserId="2435" LastActivityDate="2010-09-17T15:52:00.470" CommunityOwnedDate="2010-09-19T15:29:19.433" CommentCount="1" />
  <row Id="4805" PostTypeId="2" ParentId="4711" CreationDate="2010-09-17T15:52:24.867" Score="8" ViewCount="" Body="&lt;p&gt;I think this is a good question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I knew a few programmers who could be in that category. They were at the MIT AI Lab in the 70s. There were other places having great programmers, like Bell Labs, Xerox PARC, Berkeley, Stanford AI Lab, Carnegie-Mellon, and the UK. There must have been many in other places I wasn't aware of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The things they all had in common were:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;They were experts in something else first, like engineering, science, music, etc., and they did not learn their programming in classes, thereby avoiding &quot;right thinking&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They did not &lt;em&gt;follow the crowd&lt;/em&gt;. Rather they had good reasons for doing what they did, and the &lt;em&gt;crowd followed them&lt;/em&gt;, sometimes.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;From MIT, where I was, here are some things I learned:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Richard Greenblatt and Tom Knight: When they would explain the how and why of some piece of software or hardware, they would quickly get into the information theoretic rationale. From that, I have always considered &lt;em&gt;information theory&lt;/em&gt; in its various forms as the underlying &quot;physics&quot; of computation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Terry Winograd: Explicated the &lt;em&gt;procedural representation of data&lt;/em&gt;. To me, that's always been a powerful concept.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pat Winston: His thesis was about manipulation of descriptions in machine learning. There's no way to underestimate the power of a &lt;em&gt;good description&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There were also bad ideas at MIT, notably an &lt;em&gt;arrogance&lt;/em&gt; that I've been trying to overcome ever since.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-09-17T16:01:32.330" LastActivityDate="2010-09-17T16:01:32.330" />
  <row Id="4806" PostTypeId="2" ParentId="4711" CreationDate="2010-09-17T15:52:56.363" Score="2" ViewCount="" Body="&lt;p&gt;It's important to differentiate between great &lt;em&gt;developers&lt;/em&gt; and great &lt;em&gt;coders&lt;/em&gt;.  You can give a great coder a task... a very specific task... and rest assured that they will use every tool in their technical arsenal, which may or may not be vast, to build a killer yet often over-architected solution.  They're knowledge is &quot;limited&quot; to the technical space.  Great developers can see the forest for the trees.  They can take a business problem, not a technical problem, and use their technical toolkit to come up with and develop a solid solution.  The ability to pull a business problem apart and apply deep technical knowledge to it's solution is invaluable.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-09-17T15:52:56.363" CommentCount="1" />
  <row Id="4807" PostTypeId="2" ParentId="4607" CreationDate="2010-09-17T16:00:45.687" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;No, never say even a single word about MFC!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Say what you want about MFC or C++, I certainly don't enjoy them when doing UI coding. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But... If you need to call a native Windows API, they don't get in your way. Which is more than you can say for Java. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And Mark mentions Java UIs falling into the &quot;uncanny valley&quot; - well, on Windows Java UIs tend to stall out on the far side of the valley, failing to even come &lt;em&gt;close&lt;/em&gt; to looking or working the way users expect them to. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you don't get to use new or unique features of the platform you're running on, and you don't get to even &lt;em&gt;pretend&lt;/em&gt; that you're not some freak dragged in from the backwoods... You might as well just write a web app.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-17T16:00:45.687" CommentCount="5" />
  <row Id="4808" PostTypeId="2" ParentId="2777" CreationDate="2010-09-17T16:01:22.780" Score="24" ViewCount="" Body="&lt;p&gt;Code Complete is about software craftsmanship; it is an advanced-beginner/intermediate-level book, written for the working programmer, but it would still be very useful to someone who's been programming for at least a year.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thus the key points of Code Complete (2nd ed.) are nicely summarized in its Chapter 34, Themes in Software Craftsmanship.  As paraphrased from my notes:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Conquer Complexity&lt;/strong&gt;: reduce the cognitive load on your mind via discipline, conventions, and abstraction.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Pick Your Process&lt;/strong&gt;: be conscious of quality from start (requirements) to finish (deployment) and beyond (maintenance).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Write Programs for People First, Computers Second&lt;/strong&gt;: code readability is hugely important for comprehensibility, review-ability, error-rate, error-correction, modifiability, and the consequent development time and quality.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Program into Your Language, Not in it&lt;/strong&gt;: think of the What? and Why? before the How?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Focus Your Attention with the Help of Conventions&lt;/strong&gt;: conventions manage complexity by providing structure where it's needed, so that the ultimate resource - your attention - can be effectively used.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Program in Terms of the Problem Domain&lt;/strong&gt;: work at the highest level of abstraction possible; top-level code should describe the problem being solved.  Distinguish OS level, programming language level, low-level implementation structures, low-level problem domain terms, and finally, high-level problem-domain terms that would make total sense to the (non-coder) user.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Watch for Falling Rocks&lt;/strong&gt;: as programming merges art and science, good judgement is vital, including heeding warning signs.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Iterate, Repeatedly, Again and Again&lt;/strong&gt;: iterate requirements, design, estimates, code, code tuning. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Thou Shalt Render Software and Religion Asunder&lt;/strong&gt;: be eclectic and willing to experiment.  Don't be an inflexible zealot, it precludes curiosity and learning.  Go beyond having just a hammer in your toolbox.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;But the most important take-aways are in Chapter 33, Personal Character: once you consciously seek to improve as a coder, you can and will.  The fastest way to do so is to take on the the attitudes of master coders (humility, curiosity, intellectual honesty, discipline, creativity), while also practicing their habits (many good habits are listed in the book, e.g. choosing good variable names).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, the book makes clear that the gap between average and excellent in software is immense; that fact alone should drive the conscientious coder to better himself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's the short of it; the long version is in the book. :)  I can also send you my not-so-long, not-so-short notes if you want more details.  But the book is certainly money and time well-spent, even if the writing style is tiresome at times.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond Code Complete, I'd highly recommend &lt;a href=&quot;http://www.pragprog.com/titles/tpp/the-pragmatic-programmer&quot; rel=&quot;nofollow&quot;&gt;The Pragmatic Programmer&lt;/a&gt;.  It's for intermediate-level programmers, nicely-written and a great mix of high, medium, and low-level advice.&lt;/p&gt;&#xA;" OwnerUserId="2026" LastEditorUserId="2026" LastEditorDisplayName="" LastEditDate="2011-04-19T19:26:28.283" LastActivityDate="2011-04-19T19:26:28.283" CommentCount="2" />
  <row Id="4809" PostTypeId="2" ParentId="4711" CreationDate="2010-09-17T16:02:27.480" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Understand your interfaces&lt;/strong&gt;.  Be that a formal OO Interface, or an expected data format in a pipeline prior to &lt;code&gt;awk&lt;/code&gt;.  The vast majority of our software is useless without data.  &lt;em&gt;Model your data before coding&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-17T16:02:27.480" />
  <row Id="4810" PostTypeId="2" ParentId="4714" CreationDate="2010-09-17T16:05:43.353" Score="0" ViewCount="" Body="&lt;p&gt;Read this blog entry:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx&quot; rel=&quot;nofollow&quot;&gt;http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pretty easy and fast, CRUD is automatically implemented by EF4.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-17T16:05:43.353" />
  <row Id="4811" PostTypeId="2" ParentId="4711" CreationDate="2010-09-17T16:07:55.797" Score="11" ViewCount="" Body="&lt;p&gt;Here are the things I can think of off the top of my head. Some of them are really subjective:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1 : You will make mistakes, plenty of them. Never be ashamed to admit them AND never ever think that the logic you have developed is perfect. There is ALWAYS room for improvement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2 : Depending on the type of applications you work on, get to understand that area in general. For instance, desktop application development is radically different from web application development. So narrow down your field of interest and learn as much as you can about it. Just get the general feel of it as much as you can. For instance, for desktop application development, you need to understand platforms and the underlying technology a little. For web, you need to understand how the whole thing works. Headers, DNS, security, permissions etc. etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3 : Always consider that what you are about to dive into has probably already been done. So make sure to check how others have handled that situation in the past. Even if your situation is different from others, there is a good chance that you can learn a good amount from other similar situations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4 : Have a solid understanding of boolean algebra.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5 : Understand why memory matters and why the time-space problem is more valid to programing than astro-physics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;6 : Any time that you spend beautifying your code will eventually be saved when you later revisit it. So make sure that your code is readable not only to you but also to other humans. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;7 : It's always good to dry run your logic on paper before even touching the keyboard. There are several ways to go about the same problem, so make sure that the one you choose at least seems the best of several other possibilities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;8 : Do not be bullied into adopting a certain paradigm just because everyone else is doing it. Understand that OOP is not always the answer. Sometimes it's just faster, easier and sensible to write simple code like a 10 year old.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;9 : If something works, it doesn't mean that you nailed it down. Always be very skeptical about your code. It's better to spend a couple of hours making sure that you covered every scenario than finding out from angry customers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;10 : Understand that it is not important to come up with the shortest code but it &lt;strong&gt;&lt;em&gt;is&lt;/em&gt;&lt;/strong&gt; important to come up with the right code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;11 : Never be afraid to ask questions. If in doubt, ASK.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;12 : Make sure that you understand the problem clearly before you even begin thinking of a solution. A huge percentage of projects fail because what the client wanted and what the developer provided are completely different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;13 : It's probably best to pick up an easy language to work with and then work your way up. After you hold the basics right, the language you code in becomes kinda irrelevant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;14 : Make sure you understand your caffeine requirements. Have a pot ready :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;15 : Stop looking at your clock unless you're facing a deadline. In fact, if you are facing a deadline, then it's a great time to stop looking at the clock. The more under pressure you are, the more likely it is that you will end up making mistakes.&lt;/p&gt;&#xA;" OwnerUserId="2440" LastEditorUserId="1996" LastEditorDisplayName="" LastEditDate="2011-02-13T15:57:54.027" LastActivityDate="2011-02-13T15:57:54.027" CommentCount="5" />
  <row Id="4812" PostTypeId="2" ParentId="3974" CreationDate="2010-09-17T16:08:12.363" Score="0" ViewCount="" Body="&lt;p&gt;One factor is that a lot of good programmer are somewhere on the “autism spectrum disorder”, there are many less ladies with autism then male.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another factor is that if you are good at logic/science/maths/programming and &lt;strong&gt;can commutate&lt;/strong&gt; you can make a lot more money by being in sales or management.    Ladies tend to be better at the commutating, so are more likely to get the better jobs and not remain programmers for long.&lt;/p&gt;&#xA;" OwnerUserId="1114" LastActivityDate="2010-09-17T16:08:12.363" CommunityOwnedDate="2010-09-17T16:08:12.363" CommentCount="1" />
  <row Id="4813" PostTypeId="2" ParentId="2284" CreationDate="2010-09-17T16:09:20.010" Score="1" ViewCount="" Body="&lt;p&gt;I would create an IDE that would recognize voice &amp;amp; motion, but would only work in a private office and crash anyone's computer who interupted.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-17T16:09:20.010" CommentCount="1" />
  <row Id="4814" PostTypeId="2" ParentId="4765" CreationDate="2010-09-17T16:18:18.560" Score="3" ViewCount="" Body="&lt;p&gt;I had a job where I was criticized for trying too hard. I not only quit; I changed professions.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-17T16:18:18.560" CommentCount="1" />
  <row Id="4815" PostTypeId="2" ParentId="4693" CreationDate="2010-09-17T16:20:12.940" Score="0" ViewCount="" Body="&lt;p&gt;Programmers like to report facts and do not adorn them with pleasantries very well.  When a business person has to take those facts and weigh them against other considerations, the response may not be to the programmer's liking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The programmer, secure in his/her facts, will then proclaim, &quot;I am right!  Why can't others see this!&quot;&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-09-17T16:20:12.940" CommunityOwnedDate="2010-09-19T15:29:19.433" />
  <row Id="4816" PostTypeId="1" AcceptedAnswerId="4822" CreationDate="2010-09-17T16:20:43.563" Score="6" ViewCount="208" Body="&lt;p&gt;Does anyone have any experiences, that they would like to share, of being asked to leave their job and go it alone with a friend or a colleague and then either:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Instantly regretting it and the whole venture flops&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The best thing you ever done&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1951" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:16:58.660" LastActivityDate="2010-09-18T23:46:58.003" Title="Moving to a startup" Tags="&lt;career&gt;&lt;experience&gt;&lt;startups&gt;" AnswerCount="4" FavoriteCount="2" />
  <row Id="4817" PostTypeId="2" ParentId="3974" CreationDate="2010-09-17T16:23:56.630" Score="3" ViewCount="" Body="&lt;p&gt;Well, I have worked with a small number of female programmers, who I wouldn't say were better or worse than males as a generalization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also taught undergraduate CS at a university.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I could make a purely personal off-the-cuff observation, rife with exceptions, it is similar to the gender roles in a family. To the children, the mother is the responsible one, and the father is the fun one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In teaching, the women students were all business. They worked hard, got good grades, etc. So were many of the men. However, the idea that programming is &lt;em&gt;fun&lt;/em&gt; seemed to be more heavily distributed among the males.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The very good programmers I've known all considered programming fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know why there is this difference, or maybe I'm just wrong.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-09-17T16:30:51.070" LastActivityDate="2010-09-17T16:30:51.070" CommunityOwnedDate="2010-09-17T16:23:56.630" CommentCount="3" />
  <row Id="4818" PostTypeId="2" ParentId="1745" CreationDate="2010-09-17T16:24:01.980" Score="4" ViewCount="" Body="&lt;p&gt;Computers and software improve working process by itself.&lt;/p&gt;&#xA;" OwnerUserId="2325" LastActivityDate="2010-09-17T16:24:01.980" CommunityOwnedDate="2010-09-17T16:24:01.980" />
  <row Id="4819" PostTypeId="1" CreationDate="2010-09-17T16:33:53.820" Score="11" ViewCount="342" Body="&lt;p&gt;I'm very familiar with which schools your degree will give you a lot of clout for a business degree (Harvard, Stanford, Northwstern, etc) and those for general engineering (MIT, IIT, CIT, etc.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what schools do you guys perceive as the most valuable to have on a programmer's resume?&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-18T00:59:53.440" Title="What are the most respected schools (colleges) for their computer science (or other programming related) programs?" Tags="&lt;career&gt;&lt;education&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="0" />
  <row Id="4821" PostTypeId="2" ParentId="4816" CreationDate="2010-09-17T16:37:08.850" Score="1" ViewCount="" Body="&lt;p&gt;Yes, someone has expereience of being asked that and one of those things happening.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-17T16:37:08.850" CommentCount="3" />
  <row Id="4822" PostTypeId="2" ParentId="4816" CreationDate="2010-09-17T16:39:59.687" Score="4" ViewCount="" Body="&lt;p&gt;I've done this and it has been the best career move I ever made. While I definitely learned a lot working in larger organizations, the ability to make a real difference and have a lot more choice and control about what I do each day was too good an opportunity to pass up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the hardest thing when making this decision is to understand the cashflow of the business and where the money is going to come from. In this case it was an easy choice because the business model was to fund our software development with consulting work (which was already lined up), so the problem of cashflow and funding was non-existent. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition, working with a few trusted reliable people meant that I knew I wasn't going to be taken for a ride and the fact that we were friends before we were working together meant that we could be very open and honest about what was working and what wasn't, without having to dance around company politics.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-17T16:39:59.687" />
  <row Id="4824" PostTypeId="2" ParentId="4819" CreationDate="2010-09-17T16:45:13.853" Score="4" ViewCount="" Body="&lt;p&gt;At the last company I worked at, where the founder was MIT-cubed (bachelors, master's, doctorate) in CS, he was willing to consider anyone from the Ivy League, MIT, Stanford, or CMU.  Most of the people there were from one of those schools with a CS degree - but that's after they passed our tests/problems as well.  A degree from a top school was certainly no guarantee of competence in itself, which surprised a lot of us at the time. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bearing those caveats in mind, the median graduate from a top CS school is still likely (not certain, just likely) to be better than the median graduate from an average school, or someone without formal CS training.  Knowledge of multiple languages, data structures, algorithms, compilers, and discrete math is useful for doing all kinds of programming.  Also, someone who underwent rigorous training with smart peers &lt;em&gt;might&lt;/em&gt; be more aware of how little he or she knows - and humility is very valuable in software.&lt;/p&gt;&#xA;" OwnerUserId="2026" LastEditorUserId="2026" LastEditorDisplayName="" LastEditDate="2010-09-17T19:52:07.767" LastActivityDate="2010-09-17T19:52:07.767" />
  <row Id="4825" PostTypeId="2" ParentId="1719" CreationDate="2010-09-17T16:51:30.677" Score="7" ViewCount="" Body="&lt;p&gt;&lt;em&gt;A language that doesn't affect the way you think about programming, is not worth knowing. - Alan Perlis&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As some of the other answers have touched on, if you are learning one new language per year, the why? is to expand your capabilities as a programmer.  The how? is by learning languages with distinct paradigms from those of languages you already know, and taking stock of the paradigms you already know determines what language to learn next. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are these paradigms?  The advanced book &lt;a href=&quot;http://www.info.ucl.ac.be/~pvr/book.html&quot; rel=&quot;nofollow&quot;&gt;Concepts, Techniques, and Models of Computer Programming&lt;/a&gt; provides an excellent &lt;a href=&quot;http://www.info.ucl.ac.be/~pvr/paradigms.html&quot; rel=&quot;nofollow&quot;&gt;overview with a graphical map&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thus, if you only know C-like imperative languages, then learning Scheme/Lisp is extremely useful.  If you already know imperative and functional languages, then learning Prolog will be useful, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A recent book that tries to teach multiple languages and paradigms is &lt;a href=&quot;http://pragprog.com/titles/btlang/seven-languages-in-seven-weeks&quot; rel=&quot;nofollow&quot;&gt;Seven Languages in Seven Weeks&lt;/a&gt;.  Of course, you won't be fluent in each language after a week of study, but it does seem to provide an approachable, practitioner-oriented multi-paradigm perspective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you do grok another paradigm, it's truly a Zen moment; going from imperative to functional programming made me see the world of computing in an entirely new light.  Happy learning!&lt;/p&gt;&#xA;" OwnerUserId="2026" LastEditorUserId="2026" LastEditorDisplayName="" LastEditDate="2010-09-17T21:38:31.033" LastActivityDate="2010-09-17T21:38:31.033" CommunityOwnedDate="2010-09-17T16:51:30.677" />
  <row Id="4826" PostTypeId="2" ParentId="4816" CreationDate="2010-09-17T16:54:02.263" Score="1" ViewCount="" Body="&lt;p&gt;I also was asked, and the decision was helped by the bankruptcy of my employer at the time. So I took the money from my pension fund (not much left after I built a house with it some years prior) and lived off it for a while.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would not miss the time. I learned a lot about fund raising, investment companies, business angels. I got to see a lot of Germany, as there were more potential clients there than in Switzerland. I learned to write and tweak a business plan. And for about a year I got to write a great prototype of a software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my further career this proved to be more than helpful. I used methods of statistics, AI, natural language processing in a real world problem, learned to communicate with different stakeholders, and showed that I was willing to take a risk instead of just going to the unemployment office.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end, my 2 friends started to use unethical methods (nothing really bad) to try to get the thing to fly. This was the reason I finally had to quit. So have a good look at your partners, especially their pattern of reacting to pressure.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-17T16:54:02.263" CommentCount="1" />
  <row Id="4828" PostTypeId="2" ParentId="1662" CreationDate="2010-09-17T16:55:51.473" Score="0" ViewCount="" Body="&lt;p&gt;You should of course take into consideration the work hours when you take a job. Only you can determine what those factors are. Most people with families prefer to be on a schedule that meshes with their kids' school times and after school activities, others (often single) prefer to come in late and stay late. We even have several married couples who seem to split the difference, one coming in early and one late because one is responsible for getting the kids off to school or daycare and the other for picking them up. I've even worked with one guy who thought coming in at 11 and leaving at 3 (with and hour for lunch) was acceptable (he didn't stay employed very long at that company).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I;ve never worked anywhere that didn't at least have core hours you had to be there. It's hard to have necessary meetings when the people on the team don't work at least some of the same hours. Further, if you work for a business whose main business is NOT programming, you are less likely to be allowed to come in later than 9:30. The other people can't do that and they resent it when programmers do. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't like early mornings, be wary of working for the military or a military contractor, they love those early mornings and will have required meetings at such horrible times as 6:30 AM. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-17T16:55:51.473" />
  <row Id="4830" PostTypeId="2" ParentId="2516" CreationDate="2010-09-17T16:57:17.670" Score="2" ViewCount="" Body="&lt;p&gt;The bug you can't reproduce.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Extra pain points if someone else &lt;em&gt;swears&lt;/em&gt; the bug is there, but never when you're around.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't reproduce it, how do you know what to fix?  If you try to fix it, how do you know if you've succeeded?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These aren't impossible, just painful:  do lots of research, lots of reading code, lots of deciphering logs (hopefully), lots of conjecture, until you come up with a working theory.  Then you need a way to test the theory, which sometimes can take a fair bit of creativity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of my early examples was back at the dawn of the web, I had been with a company for a couple months, and our ticket purchase system started crashing every 2-3 days.  We could find nothing that triggered it directly.  Finally I tracked a memory leak (by reading code, IIRC) which meant the app would crash every so many transactions done via the website.  It had never been a problem before, as the webapp would usually be restarted (for whatever reason) before the leaked memory could pile up.  Once sales picked up, we weren't recycling often enough, and kaboom.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most recent, and a bit minor example, was this week:  a user-acceptance tester announced that IE8 was throwing Javascript errors on one of our pages.  None of us could reproduce it.  ?!?!?   Turned out to only happen in IE8 with Developer Tools enabled and a certain compatibility mode selected -- which I happened upon myself, the tester didn't know this.&lt;/p&gt;&#xA;" OwnerUserId="1791" LastActivityDate="2010-09-17T16:57:17.670" CommentCount="2" />
  <row Id="4831" PostTypeId="2" ParentId="4819" CreationDate="2010-09-17T17:04:36.550" Score="9" ViewCount="" Body="&lt;p&gt;One nice thing about programming as a profession is that where you got your degree from doesn't matter &lt;em&gt;that&lt;/em&gt; much.  I mean, MIT is more prestigious than RIT, but the difference isn't nearly as great as, say, a lawyer coming from Harvard vs one coming from a no-name small town college.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And once you've been in the work force a year, it hardly matters at all.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-17T17:04:36.550" CommentCount="2" />
  <row Id="4832" PostTypeId="2" ParentId="510" CreationDate="2010-09-17T17:14:19.980" Score="7" ViewCount="" Body="&lt;p&gt;I recently interviewed with a major company (top 25 in Fortune 500, not a software company).  The interview consisted of two stages of phone interviews after which I was invited to an on-campus face to face interview.  I was given one of these salary sheets to fill out and bring with me.  It was a little different in that it asked about the last 3 years, not 3 companies (and I'd only been with one company for those 3 years).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;What's the main purpose of asking for this information from the company's perspective?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As another answer said, they want this because it gives them all the power in the offer process.  The company that I interviewed with didn't use it to lowball you (they offered a bit of a bump), but they didn't want people coming in demanding a certain salary without the history to show that the demand is reasonable.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;If you are serious about applying for a job there, would you give that information?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was given specific instructions regarding the salary sheet, and I asked the recruiter whether I should give the information or be worried about giving it.  He told me that because of their size, they have the luxury of basically not going through to the offer stage with anyone who doesn't want to fill in the information.  He said there was basically no point resisting because I simply wouldn't be considered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They also made very clear to me that if I were to accept their offer, they would validate that information, and if they uncovered any misinformation it would terminate the offer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may feel like saying as another answer did, &quot;it's none of their business&quot; and that's true, they have no inherent right to ask you. But if you want to work there, they have every right to ask you to play by their rules.  Or you can just pass on the opportunity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's true that it gives them a bit of an unfair advantage, but that's why you see the big players doing it and not the small companies.  They have the luxury of thousands and thousands of applicants.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will say I would resist giving out the information very early in the process.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;What are the pros and cons of giving out that information?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;: Be considered for the job. Typically to keep turnover low, a large company has to make these types of policies worth it for the employees, so you will likely be rewarded with a decent salary and bonuses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;: Gives them the negotiation advantage. They know what you are worth to other companies, but you have no idea what they offer other (even similar) candidates.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In the end, I got an offer but accepted an offer from a different company, that was not as big (Fortune 1000). They didn't ask for salary history at all, and were much more informal, but the offers were nearly equivalent.  I don't think it negatively affected me  to comply with the salary history request.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-09-17T17:14:19.980" CommentCount="1" />
  <row Id="4833" PostTypeId="2" ParentId="552" CreationDate="2010-09-17T17:26:19.780" Score="1" ViewCount="" Body="&lt;p&gt;Dr. Jack Crenshaw -- a physicist that I never physically met.  He wrote the &lt;a href=&quot;http://compilers.iecc.com/crenshaw/&quot; rel=&quot;nofollow&quot;&gt;Let's Build a Compiler&lt;/a&gt;, series, which I started reading when I was 12 and probably fully understood by about 19.  Even though I didn't know Turbo Pascal, or the assembly language he was generated, I kept plugging away at it and trying to understand what he was doing until I could write a recursive descent parser in any language I know quickly and efficiently.  Reading this and working to translate it and expand on it really sparked my love of programming, and understanding how compilers and interpreters work has given me a major leg-up in my professional career.&lt;/p&gt;&#xA;" OwnerUserId="1790" LastActivityDate="2010-09-17T17:26:19.780" CommunityOwnedDate="2010-09-17T19:05:49.223" CommentCount="2" />
  <row Id="4834" PostTypeId="2" ParentId="4240" CreationDate="2010-09-17T17:28:34.217" Score="-1" ViewCount="" Body="&lt;p&gt;You probably aren't going to like my answer because it won't get you what you want right away.  But, I have similar goals to you (be able to spend time with family) so maybe it will help you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Job: &lt;strong&gt;Entrepreneur&lt;/strong&gt;&lt;br/&gt;&#xA;Industry: &lt;strong&gt;Software&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm young, so I haven't quite proven that this is the only way to get that yet.  But, the fact is that a person who merely works for someone else and makes a priority of spending less time working is never going to shine.  As you get older and your family grows up you are going to need to increase your salary as you go.  This will be very difficult if it's too apparent to your employer that they are not your top priority.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The easiest way to make money in less time is to make yourself the boss. Every owner of every startup I've worked for has been very young.  They worked hard, but also had a lot of time for vacations and could basically spend any amount of time with their family that they wanted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[&lt;strong&gt;Edit&lt;/strong&gt;]: &lt;strong&gt;I want to make it clear that I know being an entrpreneur isn't easy, and that it doesn't mean fewer hours right now.  But separating your income from your time (aside from packing away savings likely until well after you are 60 years old) is the only way to earn the right to spend your day doing what you want&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason for this is that when you are simply an employee, you have a finite amount of value for the company, determined by the role you are in, and the time you spend doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an owner, your value to the company (and therefore your own income) has no upper bound, and is affected much more by how smart you work in planning, marketing, hiring, etc.  Spend a long week interviewing and find a rock star, and the rest of the year you could be making more money and therefore spend less time in the office.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know if you are entrepreneurial - it's not for everyone.  But, it will get you what you need if you do it and stick with it.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-10-08T21:42:24.203" LastActivityDate="2010-10-08T21:42:24.203" CommentCount="6" />
  <row Id="4835" PostTypeId="2" ParentId="1877" CreationDate="2010-09-17T17:34:56.503" Score="0" ViewCount="" Body="&lt;p&gt;By user, do you mean the web surfer or the one &quot;using&quot;? Either way, &lt;a href=&quot;http://www.milliondollarhomepage.com/&quot; rel=&quot;nofollow&quot;&gt;this page&lt;/a&gt; comes to mind.&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-17T17:34:56.503" />
  <row Id="4836" PostTypeId="2" ParentId="314" CreationDate="2010-09-17T17:39:39.460" Score="2" ViewCount="" Body="&lt;p&gt;The other answers are decent, but I wanted to mention that a good way to get an idea is to respond to several job inquiries coming to you through LinkedIn or friend referrals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those referrals will likely be either direct from a company or from a recruiter.  If it's a company, ask them what the salary &quot;range&quot; is (the nice term for asking a company what they'll pay you). If it's a recruiter, feel them out to find a good one, be open with them about your salary, and ask them what companies are paying for similar positions.  If you're careful and read between the lines you'll find out whether you are underpaid, overpaid, or right on, merely by the way they talk about what positions you might be good for.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-09-17T17:39:39.460" />
  <row Id="4838" PostTypeId="2" ParentId="4240" CreationDate="2010-09-17T17:40:48.473" Score="2" ViewCount="" Body="&lt;p&gt;High-school dude - they get off early, on weekends, holidays, and summers.&lt;/p&gt;&#xA;" OwnerUserId="2405" LastActivityDate="2010-09-17T17:40:48.473" />
  <row Id="4840" PostTypeId="2" ParentId="4754" CreationDate="2010-09-17T17:42:15.023" Score="0" ViewCount="" Body="&lt;p&gt;You might differentiate between a tech-blog and a general one. The later is, in my opinion, a waste of time. We've all had one and I believe, most of us made the same experience u did. As for the first, I'd agree with my previous speakers. Posting about stuff forces -or at least should- you to get into a topic and therefore helps improve your skills.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-17T17:42:15.023" CommentCount="1" />
  <row Id="4841" PostTypeId="2" ParentId="4240" CreationDate="2010-09-17T17:42:42.650" Score="0" ViewCount="" Body="&lt;p&gt;&quot;Consulting&quot; programming used to be a good gig.  Estimate 80 hours and take 50, a good 30 hours reading slashdot and figuring out sendmail rules to get the high prio emails a text to your brand new TDMS Nokia so you can be &quot;mobile.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would not recommend programming or technical consulting any longer for the sole reason that you will undoubtedly be working on both international (development) hours as well as customer hours for care.  Hours are scrutinized significantly more now (good thing surely), and few customers can financially handle appropriate and realistic hours in order to accomplish said interface | customization.  So it will be undersold and all hell breaks loose because the provided estimates are half what was communicated by consultant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As stated, I would search for large corporation IT departments.  You can get lost in the crowd and miss deliverables left and right with minor infraction.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-17T17:42:42.650" />
  <row Id="4845" PostTypeId="2" ParentId="2235" CreationDate="2010-09-17T17:46:43.017" Score="1" ViewCount="" Body="&lt;p&gt;Honestly, and most practically I seriously need to write something to solve &lt;a href=&quot;http://stackoverflow.com/q/78756/215170&quot;&gt;the tracking notes as a developer problem&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that doesn't make me more efficient, then nothing will.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, the one thing I &lt;em&gt;DID&lt;/em&gt; write that not only made me more efficient, but every other employee for a large corporation is proprietary, so I cant even talk about it.. much less collect royalties.&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-17T17:46:43.017" CommentCount="1" />
  <row Id="4847" PostTypeId="2" ParentId="2223" CreationDate="2010-09-17T17:53:06.840" Score="0" ViewCount="" Body="&lt;p&gt;I am probably &lt;strong&gt;still in awe&lt;/strong&gt; from when I was able to &lt;code&gt;finger&lt;/code&gt; &lt;a href=&quot;http://www.livinginternet.com/i/ia_myths_coke.htm&quot; rel=&quot;nofollow&quot;&gt;the first internet coke machine&lt;/a&gt;.  &lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-17T17:53:06.840" />
  <row Id="4849" PostTypeId="2" ParentId="243" CreationDate="2010-09-17T18:04:14.427" Score="0" ViewCount="" Body="&lt;p&gt;Doing three years as BEA senior technical support. Before that, I was a classical (non-agile) developer. I thought I knew what I was doing and that my explanation and troubleshooting skills were great.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Started doing tech support and realized (after about a year of solid suffering) that I needed to learn a lot more human and IT skills to be successful. Thanks to that job, I now have very deep understanding of HTTP protocol, various troubleshooting tools and techniques (bow to Wireshark...) and (better) ability to explain complex problems to non-technical users. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I built a tool for parsing and visualizing java stack traces, started a blog, wrote a couple of journal/online articles and presented at JavaOne (twice) and &lt;a href=&quot;http://www.infoq.com/presentations/maintaining-production-java-apps&quot; rel=&quot;nofollow&quot;&gt;InfoQ&lt;/a&gt; based on those experiences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To imagine the kind of skills deep technical support requires imagine the following scenario. A bank technical manager calls you and says: 'We have registered a double-transaction of $10000 using our web-based bank interface. Our software is built on top of your application server and we think this is your fault. Please identify and fix the bug ASAP'. (upvote for full answer but the hints keywords are &lt;em&gt;transation time&lt;/em&gt;, &lt;em&gt;fail-over architecture&lt;/em&gt;, &lt;em&gt;HTTP GET vs. POST&lt;/em&gt; and &lt;em&gt;default configuration&lt;/em&gt;)&lt;/p&gt;&#xA;" OwnerUserId="2435" LastActivityDate="2010-09-17T18:04:14.427" CommunityOwnedDate="2010-09-17T18:04:14.427" />
  <row Id="4852" PostTypeId="2" ParentId="358" CreationDate="2010-09-17T18:11:46.810" Score="2" ViewCount="" Body="&lt;p&gt;Brainf*ck&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haven't &quot;used&quot; it for anything worthwhile, but it's crazy trying to keep up with what you've written.&lt;/p&gt;&#xA;" OwnerUserId="990" LastActivityDate="2010-09-17T18:11:46.810" CommunityOwnedDate="2010-09-30T22:46:32.880" CommentCount="2" />
  <row Id="4853" PostTypeId="2" ParentId="501" CreationDate="2010-09-17T18:14:50.687" Score="0" ViewCount="" Body="&lt;h2&gt;REGEX / &lt;code&gt;preg_match()&lt;/code&gt; in PHP&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Firstly, its completely different syntax than PHP uses. While the &lt;code&gt;preg_match()&lt;/code&gt; function emulates regex quite excellently, I have to completely switch my mode of thinking to work with it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, its just plain obscurification half the time. I usually have to quite literally take out a scratch pad and figure out WTF its doing half the time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, I program in PHP, not Perl. If I liked Perl, I would program in Perl. (no, sir I don't like it.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To make matters worse, with the new PCRE delimiter format, you can practically use any character, which includes having to escape that same nested character, making the pattern &lt;strong&gt;even more&lt;/strong&gt; obscure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, its great if you want to be cryptic.. or even efficient... but holy hell the amount of time it wastes to normally perform simple tasks.&lt;/p&gt;&#xA;" OwnerUserId="2449" LastEditorUserId="14712" LastEditorDisplayName="" LastEditDate="2011-02-27T11:09:11.187" LastActivityDate="2011-02-27T11:09:11.187" CommunityOwnedDate="2010-09-17T18:14:50.687" CommentCount="3" />
  <row Id="4855" PostTypeId="2" ParentId="610" CreationDate="2010-09-17T18:27:30.047" Score="1" ViewCount="" Body="&lt;h2&gt;&lt;strong&gt;PHP&lt;/strong&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;On-the-fly &lt;code&gt;include()&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It simply work great for inserting a function library, 3rd party API, headers, footers, and really anything else I can think of. There is no rule as to where its placed within the file, so I never have to fight with my compiler.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?&#xA;// the web page&#xA;include('header.php');&#xA;echo '&amp;lt;span&amp;gt;some HTML I want here&amp;lt;/span&amp;gt;';&#xA;include('body-template.php');&#xA;echo '&amp;lt;span&amp;gt;some stuff I want here&amp;lt;/span&amp;gt;';&#xA;include('footer.php');&#xA;?&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;oh oops, I forgot my javascript I want in my footer.. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?&#xA;// footer.php&#xA;echo '&amp;lt;/div&amp;gt;'; // body content wrapper&#xA;echo '&amp;lt;span&amp;gt;my footer is just this line.&amp;lt;br /&amp;gt;&amp;lt;/span&amp;gt;';&#xA;echo '&amp;lt;/html&amp;gt;';&#xA;include('javascript.js.php'); // &amp;lt;--- yeah I just added this just now, no problem&#xA;?&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;For me it makes the process so much easier.&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-17T18:27:30.047" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="6" />
  <row Id="4857" PostTypeId="2" ParentId="4680" CreationDate="2010-09-17T18:32:07.463" Score="-3" ViewCount="" Body="&lt;p&gt;Nice try.  You already know the answer if you're asking.  Stop avoiding math and get a good foundation, otherwise prepare for a life of having this issue repeatedly haunt you...&lt;/p&gt;&#xA;" OwnerUserId="2461" LastActivityDate="2010-09-17T18:32:07.463" CommunityOwnedDate="2011-03-08T17:21:03.470" />
  <row Id="4858" PostTypeId="1" AcceptedAnswerId="4870" CreationDate="2010-09-17T18:33:21.610" Score="13" ViewCount="409" Body="&lt;p&gt;At least in my experience, most of my web applications are not static web pages but dynamic from a scripting engine.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just curious, does anyone use HTML comments aside from for IE fixes anymore? &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-28T00:41:09.390" Title="Does anyone put comments in HTML anymore?" Tags="&lt;comments&gt;&lt;html&gt;" AnswerCount="15" CommentCount="1" FavoriteCount="1" />
  <row Id="4859" PostTypeId="2" ParentId="4693" CreationDate="2010-09-17T18:34:17.157" Score="3" ViewCount="" Body="&lt;p&gt;Programmers are arrogant because we're the most clever people in the world.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-17T18:34:17.157" CommunityOwnedDate="2010-09-19T15:29:19.433" CommentCount="1" />
  <row Id="4860" PostTypeId="2" ParentId="4858" CreationDate="2010-09-17T18:34:33.090" Score="1" ViewCount="" Body="&lt;p&gt;They tend to show up a lot in articles at &lt;a href=&quot;http://thedailywtf.com/&quot; rel=&quot;nofollow&quot;&gt;The Daily WTF.&lt;/a&gt;  The authors put them in there as jokes for people who know to look at the source...&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-17T18:34:33.090" />
  <row Id="4861" PostTypeId="2" ParentId="4858" CreationDate="2010-09-17T18:34:49.110" Score="2" ViewCount="" Body="&lt;p&gt;I do... I comment everything - maybe obsesively&lt;/p&gt;&#xA;" OwnerUserId="2405" LastActivityDate="2010-09-17T18:34:49.110" />
  <row Id="4862" PostTypeId="2" ParentId="501" CreationDate="2010-09-17T18:35:23.300" Score="5" ViewCount="" Body="&lt;h2&gt;Array declarations in C and C++.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Typically, a variable declaration is of the format &lt;code&gt;type variable_name&lt;/code&gt;.  You can easily read those declarations in a left-to-right manner.  But &lt;code&gt;int foo[size]&lt;/code&gt; looks at first like it's declaring &lt;code&gt;foo&lt;/code&gt; as an int, and then you read further and see that foo's of type &quot;array of integers.&quot;  &lt;code&gt;int[size] foo&lt;/code&gt; reads much better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I also hate it when programmers declare pointers like this for a similar reason: &lt;code&gt;int *foo&lt;/code&gt;.  For some reason I haven't figured out, that's the &lt;em&gt;typical&lt;/em&gt; way it's written.&lt;/p&gt;&#xA;" OwnerUserId="1777" LastEditorUserId="147" LastEditorDisplayName="" LastEditDate="2010-09-18T12:09:41.553" LastActivityDate="2010-09-18T12:09:41.553" CommunityOwnedDate="2010-09-17T18:35:23.300" CommentCount="8" />
  <row Id="4863" PostTypeId="1" AcceptedAnswerId="5094" CreationDate="2010-09-17T18:37:42.763" Score="26" ViewCount="3218" Body="&lt;p&gt;Which languages almost nobody talks about but has some interesting features or concepts?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It must satisfy the following 2 criteria:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It must have been created in 2000 or later. Ex.: REBOL, Squeak, Oberon, etc. are out.&lt;/li&gt;&#xA;&lt;li&gt;It can't have &lt;strong&gt;some&lt;/strong&gt; fame among programmers. Ex.: Groovy, C#, Scala, Go, Clojure, D, etc are out.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The language doesn't need be good or totally implemented. License or platform doesn't matter. The language needs to be new and interesting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I posted a good example of language I wanna know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you wish &lt;a href=&quot;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&quot; rel=&quot;nofollow&quot;&gt;TIOBE&lt;/a&gt; can be used as reference to measure &quot;fame&quot;, but don't cling on it.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T17:15:34.687" LastActivityDate="2011-02-03T15:09:31.790" CommunityOwnedDate="2010-10-22T23:54:06.263" Title="What almost unknown programming language of 21st century a programmer should be introduced to?" Tags="&lt;programming-languages&gt;&lt;recommendations&gt;&lt;trends&gt;" AnswerCount="35" CommentCount="8" FavoriteCount="21" />
  <row Id="4864" PostTypeId="2" ParentId="4858" CreationDate="2010-09-17T18:37:57.380" Score="3" ViewCount="" Body="&lt;p&gt;In large environments even if you do your optimization devices strip them before they reach the client.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-17T18:37:57.380" />
  <row Id="4865" PostTypeId="1" AcceptedAnswerId="4931" CreationDate="2010-09-17T18:38:12.647" Score="6" ViewCount="300" Body="&lt;p&gt;I go through the evaluation every year. I follow that makes sense. Most recommendations over years end up me thinking like &quot;I have been on the keyboard 10+ hours everyday for two decades and had no ergo related discomforts. Now you are telling me to do this and my shoulder is hurting, so I am just going back to what was comfortable to me.&quot; I do follow a bunch but I have trouble with a few. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is your experience? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Little bit more clarification. I do follow things like sitting straight, table height adjusted for the arms, top of the monitors at eye level etc. I even moved my mouse to left side because once I adjust the keyboard, mouse on right side is a bit far and I need to reach out. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I move closer to the table as recommended, it is comfortable until I start using the arrow keys. Then my elbow is going behind my body and that is not comfortable. I use arrow keys a lot. &lt;/p&gt;&#xA;" OwnerUserId="921" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-19T09:51:31.217" LastActivityDate="2010-09-21T09:38:13.447" Title="Do you follow ergonomic recommendations when coding?" Tags="&lt;recommendations&gt;&lt;ergonomics&gt;" AnswerCount="7" FavoriteCount="1" />
  <row Id="4866" PostTypeId="2" ParentId="4858" CreationDate="2010-09-17T18:38:26.093" Score="8" ViewCount="" Body="&lt;p&gt;Yes, I do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why?  Well, because their content is also dynamic and I use it as debug output! &lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-17T18:38:26.093" />
  <row Id="4867" PostTypeId="2" ParentId="4858" CreationDate="2010-09-17T18:38:27.713" Score="0" ViewCount="" Body="&lt;p&gt;Sometimes I'll &quot;comment stuff out&quot; when using technologies that don't have server-side-directive comments and accidentally leave it in.  Also, sometimes it's helpful when setting up a skeletal site layout for someone to point out stuff like &quot;put your menu items here,&quot; or &quot;put your page content here.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1777" LastActivityDate="2010-09-17T18:38:27.713" />
  <row Id="4868" PostTypeId="2" ParentId="4858" CreationDate="2010-09-17T18:39:48.067" Score="8" ViewCount="" Body="&lt;p&gt;I tend to use server side comments in favour of client-side comments. But that's because my comments can be rather rude and I wouldn't want anyone viewing source and seeing them! :)&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-17T18:39:48.067" CommentCount="3" />
  <row Id="4869" PostTypeId="2" ParentId="4863" CreationDate="2010-09-17T18:40:09.487" Score="11" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Nemerle&quot; rel=&quot;nofollow&quot;&gt;Nemerle&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-17T18:40:09.487" CommunityOwnedDate="2010-10-22T23:54:06.263" CommentCount="4" />
  <row Id="4870" PostTypeId="2" ParentId="4858" CreationDate="2010-09-17T18:40:10.170" Score="9" ViewCount="" Body="&lt;p&gt;I don't for one reason. It is sent to the client. It may not matter where bandwidth is unlimited but it does matter to people who pay by (M)bytes.&lt;/p&gt;&#xA;" OwnerUserId="921" LastActivityDate="2010-09-17T18:40:10.170" CommentCount="1" />
  <row Id="4871" PostTypeId="2" ParentId="3851" CreationDate="2010-09-17T18:42:57.997" Score="1" ViewCount="" Body="&lt;p&gt;Those who don't know principles such as SOLID, DRY, OOP and so on. It's important to have good understanding of programming principles and foundations rather than knowing specific technologies. Those with solid foundation will be able to learn new topics easily and will produce better code.&lt;/p&gt;&#xA;" OwnerUserId="656" LastActivityDate="2010-09-17T18:42:57.997" CommunityOwnedDate="2010-12-13T18:51:52.480" />
  <row Id="4872" PostTypeId="2" ParentId="4858" CreationDate="2010-09-17T18:43:44.720" Score="3" ViewCount="" Body="&lt;p&gt;No I try to avoid it. I will often give a div a rather descriptive id so that if someone is looking for some code they can quickly find it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main reason why is b/c the comments you write are easily seen by anyone who bothers to view the source. If it's not something the end user should see, don't put it in the HTML comments. &lt;/p&gt;&#xA;" OwnerUserId="2305" LastActivityDate="2010-09-17T18:43:44.720" CommentCount="1" />
  <row Id="4873" PostTypeId="2" ParentId="940" CreationDate="2010-09-17T18:47:59.263" Score="6" ViewCount="" Body="&lt;p&gt;I wouldn't say the best, but one with very interesting features and concepts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Fossil_%28software%29&quot; rel=&quot;nofollow&quot;&gt;Fossil&lt;/a&gt; is a distributed version control, bug tracking and wiki project built on SQLite database as repository.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-17T18:47:59.263" CommunityOwnedDate="2011-03-07T21:04:52.237" />
  <row Id="4875" PostTypeId="2" ParentId="44" CreationDate="2010-09-17T18:50:01.970" Score="3" ViewCount="" Body="&lt;p&gt;One value a certification can have is proof of interest.  If you are having an extended period of unemployment gaining certification during that period can be a good counter to the blank work time on your resume. &quot;Well, while I was looking I took the time to study and gain a good grasp of $TECHNOLOGY&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1209" LastActivityDate="2010-09-17T18:50:01.970" />
  <row Id="4877" PostTypeId="2" ParentId="1" CreationDate="2010-09-17T18:52:52.203" Score="1" ViewCount="" Body="&lt;h2&gt;Of course comments are a code smell...&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;every programmer knows we all eventually &lt;a href=&quot;http://stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered&quot;&gt;turn insane&lt;/a&gt; due to the amount of work, debugging, or just plain madness we run into. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Do this!&quot; your project manager says.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You respond, &quot;It can't be done.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They say, &quot;Then we will find someone else to do it.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You say, &quot;OK, well maybe it can be done.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then spend the next X number of days.. weeks.. months.. trying to figure it out. Throughout the process, you will try and fail, and try and fail. &lt;strong&gt;We all do this.&lt;/strong&gt; The true answer is there are two types of programmers, those that comment and those that don't. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Those that do are either making their own job easier by documenting for future reference, commenting out failed routines that didn't work (the smell is not deleting them after finding the one that works.), or breaking up the code with comment formatting to &lt;em&gt;hopefully&lt;/em&gt; make it a bit easier to read or understand. Seriously, I can't blame them. But in the end, they snap and then you have this:&#xA;&lt;code&gt;// dammit this code sucks! swear! curse! i hate it! i am going to write something here to vent my anger!!!!&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Those that don't are either pretending to be a superhero, or &lt;a href=&quot;http://www.codinghorror.com/blog/2007/06/in-programming-one-is-the-loneliest-number.html&quot; rel=&quot;nofollow&quot;&gt;are living in a cave&lt;/a&gt;. They simply have reckless disregard for others, themselves, and could care less about the code, or what meaning it could possibly have for later. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now don't get me wrong.. self-documenting variables and functions can avoid this entirely.. and &lt;strong&gt;&lt;em&gt;trust me&lt;/em&gt;&lt;/strong&gt; you can never do enough code-cleanup. But the simple truth is that as long as you keep backups, you can &lt;strong&gt;ALWAYS&lt;/strong&gt; delete comments.&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-17T18:52:52.203" CommunityOwnedDate="2011-01-31T09:04:54.130" CommentCount="1" />
  <row Id="4878" PostTypeId="2" ParentId="4863" CreationDate="2010-09-17T18:56:38.760" Score="0" ViewCount="" Body="&lt;p&gt;How do you feel about actionScript ? Created in July, 2000.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also I beleive a new version of Self was released shortly after... Its an object-oriented language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check 'em out, may be what your looking for.&lt;/p&gt;&#xA;" OwnerUserId="2405" LastActivityDate="2010-09-17T18:56:38.760" CommunityOwnedDate="2010-10-22T23:54:06.263" CommentCount="6" />
  <row Id="4879" PostTypeId="1" CreationDate="2010-09-17T18:57:34.593" Score="5" ViewCount="164" Body="&lt;p&gt;Code needs to be written to file, on way or another. While all programmers should strive to write no more code than necessary, this &quot;small&quot; portion needs to be written nevertheless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What tips do you have for improving the code writing effort? Usage of IDEs? Different keyboards or character layouts? Minimal usage of mouse? Code generation tools? What else can you think of?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-20T19:00:28.213" Title="How to improve the code writing effort?" Tags="&lt;productivity&gt;&lt;coding&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="4880" PostTypeId="2" ParentId="2235" CreationDate="2010-09-17T18:58:14.640" Score="2" ViewCount="" Body="&lt;p&gt;My company has a comment web client that we end up re-skinning for each of our clients. The re-skinning process took a very VERY long time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found a bog post about .less and how it could help with cleaning up the stylesheets we use. I spent a good amount of time cleaning up the web client and moving all our css files to use .less instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now the re-skinning process takes one person about 2 hours to complete. It's pretty awesome. And it makes everything so much easier to maintain and support.&lt;/p&gt;&#xA;" OwnerUserId="2305" LastActivityDate="2010-09-17T18:58:14.640" />
  <row Id="4881" PostTypeId="2" ParentId="4865" CreationDate="2010-09-17T18:59:35.663" Score="0" ViewCount="" Body="&lt;p&gt;I would expect anything new (especially if doing it another way for 20 yrs) to be painful at first, but may be beneficial in the long-run and possibly slow down the debilitating effects of bad habits. Also, as we get older, we have to change our ways to adjust to our changing bodies. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once everything is in position (chair, monitor height, etc), I just have to remind myself to sit up straight.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-17T18:59:35.663" />
  <row Id="4883" PostTypeId="2" ParentId="44" CreationDate="2010-09-17T19:01:03.537" Score="1" ViewCount="" Body="&lt;p&gt;Certifications are most probably not worth it. Most employers look more at what you did before.That said, studying for certifications is worth it and will help you pick up the core basics.  Preparing for it might give you more confidence when facing interviews since you will have sealed the basics by then.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The SCJP is not really a highly regarded certification amongst Java developers, but big employers love it. Some of the books to prepare for it are thorough and give you many opportunities to pick up nitty-gritties of the language - some known that you revisit, some unknown which might be really important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have stumbled across a lot of blog posts where programmers rave about something they just discovered in the language, but which are known to most people who leafed through the certification books.&lt;/p&gt;&#xA;" OwnerUserId="2004" LastActivityDate="2010-09-17T19:01:03.537" />
  <row Id="4884" PostTypeId="2" ParentId="552" CreationDate="2010-09-17T19:01:46.403" Score="2" ViewCount="" Body="&lt;p&gt;Anyone who knows more than me is my idol.&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-17T19:01:46.403" CommunityOwnedDate="2010-09-17T19:05:49.223" CommentCount="2" />
  <row Id="4885" PostTypeId="2" ParentId="940" CreationDate="2010-09-17T19:04:14.407" Score="-1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Revision_Control_System&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;RCS - Revision Control System&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Solo coding made so easy.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-17T19:04:14.407" CommunityOwnedDate="2011-03-07T21:04:52.237" CommentCount="10" />
  <row Id="4886" PostTypeId="1" CreationDate="2010-09-17T19:04:24.180" Score="0" ViewCount="241" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/4671/whats-the-weirdest-or-funniest-programming-mistake-youve-made&quot;&gt;What&amp;#39;s the weirdest or funniest programming mistake you&amp;#39;ve made?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Mistakes that took hours to debug and in the end it was a semi-colon next to the if statement. :)&lt;/p&gt;&#xA;" OwnerUserId="2223" LastActivityDate="2010-09-18T01:07:03.550" ClosedDate="2010-09-18T04:30:09.177" Title="What is your biggest in-the-face programming mistake?" Tags="&lt;coding&gt;&lt;mistakes&gt;" AnswerCount="7" CommentCount="0" />
  <row Id="4888" PostTypeId="1" AcceptedAnswerId="4906" CreationDate="2010-09-17T19:08:36.270" Score="6" ViewCount="402" Body="&lt;p&gt;Working a 9-5 job, 1 hour for lunches, I'm the only developer on one project with a deadline about 50 days out, I decided to start mapping out all my daily interruptions (people talking to me, phone calls, emails I get, meetings, etc...). My primary reason for being here is to do development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a snapshot of my day:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Time interrupted at, &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Interrupt   Resume  Focused     Lost&#xA;09:30       09:40   09:44       00:15&#xA;09:56       09:57   09:58       00:02&#xA;10:17       10:19   10:20       00:02&#xA;10:22       10:23   10:23       00:01&#xA;10:31       10:41   10:42       00:11&#xA;10:45       11:23   11:30       00:45&#xA;11:34       11:35   11:35       00:01&#xA;11:35       11:39   11:40       00:05&#xA;11:50       11:55   11:56       00:06&#xA;11:56       12:00   12:00       00:04&#xA;12:00       13:00   13:00       01:00&#xA;*           *       *           *           Lunch&#xA;14:00       14:18   14:27       00:27&#xA;14:30       14:40   14:41       00:01&#xA;15:34       15:36   15:38       00:04&#xA;16:00       16:08   16:10       00:10&#xA;16:45       16:46   16:47       00:01&#xA;16:47       16:53   16:55       00:10&#xA;&#xA;Day total:  03:59 + 00:05/07:00 ==%57 unproductive time... (9-930 is going through useless emails)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;How do you find the time to deal with interruptions to your work day? Less than half my day I get to work on the project, and I've been interrupted 17 times (once every 25 minutes??).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel like I need to be put into a black box somewhere disconnected from my inbox and phone and people waving at me and calling me over to their desk because &quot;I'm good with computers, right?? -- How do I fix excel?&quot; KILLS my productivity.&lt;/p&gt;&#xA;" OwnerUserId="1525" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-17T19:12:49.050" LastActivityDate="2010-10-04T19:33:30.293" Title="Dealing with interruptions / Working in solitary confinement?" Tags="&lt;productivity&gt;&lt;work-environment&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="4" />
  <row Id="4889" PostTypeId="1" AcceptedAnswerId="4892" CreationDate="2010-09-17T19:10:31.833" Score="19" ViewCount="1237" Body="&lt;p&gt;why not combine the best features of the all existent programming languages and fit it in a universal programming language?&lt;/p&gt;&#xA;" OwnerUserId="2369" LastEditorUserId="2369" LastEditorDisplayName="" LastEditDate="2010-09-19T10:35:15.377" LastActivityDate="2011-04-22T01:28:23.977" CommunityOwnedDate="2011-03-24T12:24:29.673" Title="Why can't there be an &quot;universal&quot; programming language that serves all purposes?" Tags="&lt;programming-languages&gt;&lt;features&gt;" AnswerCount="19" CommentCount="10" FavoriteCount="2" />
  <row Id="4890" PostTypeId="2" ParentId="4886" CreationDate="2010-09-17T19:12:21.733" Score="2" ViewCount="" Body="&lt;p&gt;Mistakes like this happen all the time, and to the best of programmers. We're human, we mis-key. Especially if you use multiple languages (they keep movin those semi-colon's around on us!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that said... It sure does suck when you keep reading over the same code - then you realize the syntax is correct.... but not for the language you are using :( FAIL&lt;/p&gt;&#xA;" OwnerUserId="2405" LastActivityDate="2010-09-17T19:12:21.733" />
  <row Id="4891" PostTypeId="2" ParentId="4765" CreationDate="2010-09-17T19:14:01.463" Score="8" ViewCount="" Body="&lt;p&gt;When you are told that you cannot wear jeans to work because it is against company policies while the guys on the other side of the aisle are, of course, wearing jeans :)&lt;/p&gt;&#xA;" OwnerUserId="2004" LastActivityDate="2010-09-17T19:14:01.463" />
  <row Id="4892" PostTypeId="2" ParentId="4889" CreationDate="2010-09-17T19:14:01.833" Score="57" ViewCount="" Body="&lt;p&gt;For the same reason you don't use a &lt;a href=&quot;http://www.swissarmy.com/Cutlery/Pages/Product.aspx?category=rosewood%20handle%20slicing%20knives&amp;amp;product=47143&amp;amp;&quot; rel=&quot;nofollow&quot;&gt;Swiss army knife&lt;/a&gt; to carve a chicken...&lt;/p&gt;&#xA;" OwnerUserId="55" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2011-04-22T01:28:23.977" LastActivityDate="2011-04-22T01:28:23.977" CommunityOwnedDate="2011-03-24T12:24:29.673" CommentCount="11" />
  <row Id="4893" PostTypeId="2" ParentId="257" CreationDate="2010-09-17T19:14:10.577" Score="2" ViewCount="" Body="&lt;p&gt;I work for myself and I swear this video from &lt;a href=&quot;http://www.ted.com/talks/dan_pink_on_motivation.html&quot; rel=&quot;nofollow&quot;&gt;Dan Pink about motivation&lt;/a&gt; helped change my whole outlook on things. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, because anything motivational really only drives you for so long, I have found the beauty of working off a wireless laptop. If I need a change of atmosphere, I can move to a different chair. If I need to get out of the house, I can go to a wifi coffee shop. If that one isn't working, I go to a different one. &lt;strong&gt;There are even times I go to places with no internet so it forces me to get work done offline.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess what sums it up &lt;em&gt;for me&lt;/em&gt; is that because I work for myself, I have to motivate myself. And I try to keep track of things that do just that, and do them more. &lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-17T19:14:10.577" />
  <row Id="4894" PostTypeId="2" ParentId="4886" CreationDate="2010-09-17T19:14:13.227" Score="1" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;Update Table Set&#xA;    Column = Null&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-17T19:14:13.227" CommentCount="3" />
  <row Id="4895" PostTypeId="2" ParentId="4889" CreationDate="2010-09-17T19:16:58.020" Score="3" ViewCount="" Body="&lt;p&gt;The best features of some languages conflict with the best features of others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example: Type aware reflections is a really nice feature, but it would not be worth very much in a loosely typed language, but loose typing can be a real benefit at times as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even within one language you cannot always use all the best features at the same time because they conflict with each other.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-17T19:16:58.020" CommunityOwnedDate="2011-03-24T12:24:29.673" CommentCount="4" />
  <row Id="4896" PostTypeId="2" ParentId="4879" CreationDate="2010-09-17T19:19:36.303" Score="0" ViewCount="" Body="&lt;p&gt;Since I use SQL Server Management Studio a lot, I have a pretty good template library. Someone on this site recommended SSMS Tool Pack, so I'm checking that out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best is copy &amp;amp; paste. I'M JUST KIDDING!&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-17T19:19:36.303" />
  <row Id="4897" PostTypeId="2" ParentId="4886" CreationDate="2010-09-17T19:20:04.690" Score="1" ViewCount="" Body="&lt;p&gt;Null checks. Or lack thereof :)&lt;/p&gt;&#xA;" OwnerUserId="2004" LastActivityDate="2010-09-17T19:20:04.690" />
  <row Id="4898" PostTypeId="2" ParentId="4889" CreationDate="2010-09-17T19:21:03.793" Score="5" ViewCount="" Body="&lt;p&gt;There is. None tool is the best to everything, but some tools like many programming languages &lt;strong&gt;serve&lt;/strong&gt; to all purposes, not &lt;strong&gt;best&lt;/strong&gt; to all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can choose the best tool for the job but there are programming languages able to be used on all purposes and you can choose them. I don't recommend it but it's possible.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-18T14:04:30.783" LastActivityDate="2010-09-18T14:04:30.783" CommunityOwnedDate="2011-03-24T12:24:29.673" />
  <row Id="4899" PostTypeId="2" ParentId="4858" CreationDate="2010-09-17T19:23:45.247" Score="2" ViewCount="" Body="&lt;p&gt;Yes, I often use them to mark where, for example, banner ad code should be, or other dynamic content, for use in debugging should things not be showing up correctly.  The comments, though, dont look like the ones you'd put in source code.  They're usually just markers.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-17T19:23:45.247" />
  <row Id="4902" PostTypeId="2" ParentId="4888" CreationDate="2010-09-17T19:27:39.483" Score="1" ViewCount="" Body="&lt;p&gt;Well you can disconnect from your inbox and put your phone on silent. If you must be reached for work reasons try talking to your colleagues about doing so in predefined times when you'll be taking calls and answering mail. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that, you have my deepest sympathies. I myself wish I could work in some isolated room where no one would bother me. The best you could do is try telling them to not call you for any reason not related to what you do (no tech support) and try to explain that your productivity depends on being able to achieve long contunious periods of concentration. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-17T19:27:39.483" CommentCount="3" />
  <row Id="4903" PostTypeId="2" ParentId="4888" CreationDate="2010-09-17T19:28:39.647" Score="2" ViewCount="" Body="&lt;p&gt;How much time did you lose just keeping track of all of your interruptions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make yourself appear to be less approachable..  Wear big obnoxious headphones, stop bathing, start responding to others in unrecognizable grunts.  Or just deal.&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-09-17T19:28:39.647" CommentCount="3" />
  <row Id="4905" PostTypeId="2" ParentId="4889" CreationDate="2010-09-17T19:31:22.517" Score="17" ViewCount="" Body="&lt;p&gt;What you have in programming is a very large problem domain.  This domain ranges extremely and in many directions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is why embedded flight controllers are written in C and websites are written in PHP, Java, Rails, .NET and a host of others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the embedded flight controller I have about 128k of memory to work with and on top of that if my code gets an unhandled exception the plane crashes, 200 people die and I get sued to tune of $1B, and have to send engineers to every airport in the world to fix aircraft that are grounded loosing my customers $10M / day. I have to work with a language that is very tight and has a small number of moving parts that could go wrong. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For my web application I have several GB of memory to work with, but network speed is limited (to a lesser degree everyday, but this is probably the web greatest limit).  I will be looking at a language that gives me a ton of features and produces output that can be transmitted as fast as possible.  I don't really care if my site goes down, I will maybe loose a few sales ($100) and have to patch the use case that bombed, no big deal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Web sites haven't been written in C for over 15years (anybody do any cgi scripts?) and as far as I know flight controllers are just now beginning to look at C++, but even then in a very restricted way.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-09-17T19:31:22.517" CommunityOwnedDate="2011-03-24T12:24:29.673" />
  <row Id="4906" PostTypeId="2" ParentId="4888" CreationDate="2010-09-17T19:33:01.700" Score="6" ViewCount="" Body="&lt;p&gt;Sadly I have to deal with that environment as well (and this website isn't exactly helping me either). Best I can do is make sure that my managers understand how it is cutting into my production time and have them talk to other employees if that is a problem for them.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-09-17T19:33:01.700" CommentCount="1" />
  <row Id="4907" PostTypeId="2" ParentId="4889" CreationDate="2010-09-17T19:33:35.147" Score="27" ViewCount="" Body="&lt;p&gt;Because &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;nobody wants to rewrite all the legacy code. &lt;/li&gt;&#xA;&lt;li&gt;It's difficult to agree on all the purposes&lt;/li&gt;&#xA;&lt;li&gt;Once you put together a comprehensive list of purposes, they would change before you could get it built.&lt;/li&gt;&#xA;&lt;li&gt;Somebody would start a completely different language due to a new purpose.&lt;/li&gt;&#xA;&lt;li&gt;Microsoft&lt;/li&gt;&#xA;&lt;li&gt;Apple&lt;/li&gt;&#xA;&lt;li&gt;Open Source&lt;/li&gt;&#xA;&lt;li&gt;What would we do with all the Babel Fish?&lt;/li&gt;&#xA;&lt;li&gt;Couldn't even make SQL universal.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2011-03-24T15:49:25.697" LastActivityDate="2011-03-24T15:49:25.697" CommunityOwnedDate="2011-03-24T12:24:29.673" CommentCount="4" />
  <row Id="4912" PostTypeId="2" ParentId="3069" CreationDate="2010-09-17T19:38:52.443" Score="0" ViewCount="" Body="&lt;p&gt;As others have almost said, learning a niche language just because it's a niche language doesn't make much sense. Often, though, niche languages explore a concept further/more deeply than mainstream languages can afford to, or want to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And sometimes niche languages have been around far, far longer than any of the mainstream languages - Smalltalk, Prolog and the Lisp languages leap to mind. They might not be popular, but they're not disappearing either.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-17T19:38:52.443" />
  <row Id="4913" PostTypeId="2" ParentId="565" CreationDate="2010-09-17T19:39:02.097" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://softwarecreation.org/2010/the-toolkit-for-increasing-productivity-of-software-teams/&quot; rel=&quot;nofollow&quot;&gt;The Toolkit for Increasing Productivity of Software Teams&lt;/a&gt; by Andriy Solovey&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A very wide strategies to improve the productivity in programming projects. Well organized with useful links to more information about each topic.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-17T19:39:02.097" />
  <row Id="4915" PostTypeId="2" ParentId="565" CreationDate="2010-09-17T19:43:34.920" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.dreamincode.net/forums/blog/324/entry-2619-an-in-depth-look-at-hash-tables/&quot; rel=&quot;nofollow&quot;&gt;In depth look at hash tables&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Jeff Atwood - my daily read&#xA;&lt;a href=&quot;http://www.codinghorror.com/blog/&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hacker news - another daily read&#xA;&lt;a href=&quot;http://news.ycombinator.com/&quot; rel=&quot;nofollow&quot;&gt;http://news.ycombinator.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Phil Haack - Great personal &amp;amp; MS MVC blog&#xA;&lt;a href=&quot;http://haacked.com/&quot; rel=&quot;nofollow&quot;&gt;http://haacked.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scott Gu&#xA;&lt;a href=&quot;http://weblogs.asp.net/scottgu/&quot; rel=&quot;nofollow&quot;&gt;http://weblogs.asp.net/scottgu/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is just a short list of my most visited blogs... hope you enjoy them as much as I do.&lt;/p&gt;&#xA;" OwnerUserId="2405" LastActivityDate="2010-09-17T19:43:34.920" CommentCount="2" />
  <row Id="4916" PostTypeId="2" ParentId="4305" CreationDate="2010-09-17T19:45:13.640" Score="1" ViewCount="" Body="&lt;p&gt;It's wider than you asked but maybe it helps find a properly answer:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm&quot; rel=&quot;nofollow&quot;&gt;Programmer Competency Matrix&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many topics to help identify what's your level on programming topics.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-17T19:45:13.640" CommentCount="1" />
  <row Id="4918" PostTypeId="2" ParentId="4879" CreationDate="2010-09-17T19:47:04.157" Score="1" ViewCount="" Body="&lt;p&gt;Getting as much of the crap out of the developers way is the way to go.  Anything that makes me think of anything other than the task in hand is a waste of my clock cycles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, what this actually is will differ from person to person.  Some people touch the mouse as little as possible.  Other people hate to have to remember keyboard shortcuts.  Some people want silence, others like the hum of a working office.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anything mechanical or repetitive should be automated.  Code formatting tools, version control commit-hooks for lint checking, cruise control, etc, etc are good and fairly generally applicable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aside from that, give developers the choice to make their own decisions on what works for them.  Some decisions have to be made at a department / company level (code style, build system, possibly even IDE, depending on your level of integration), but everything else should be left to the person who has to get that small amount of code into the file.&lt;/p&gt;&#xA;" OwnerUserId="2238" LastActivityDate="2010-09-17T19:47:04.157" CommentCount="1" />
  <row Id="4919" PostTypeId="2" ParentId="16" CreationDate="2010-09-17T19:47:33.680" Score="7" ViewCount="" Body="&lt;p&gt;You're giving way too much technical credit to Enterprise decision makers. There is an old saying, &quot;Nobody got fired for buying IBM.&quot; If you go a different route and things get rocky (they always do), nobody wants to risk being blamed. Stick to the standards and blame someone else. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a lot of younger companies that will eventually become the enterprises of tomorrow and will be using those languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And let's not forget the buggillion lines of code written in VBA!&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-17T19:47:33.680" />
  <row Id="4920" PostTypeId="2" ParentId="565" CreationDate="2010-09-17T19:48:42.650" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://aymanh.com/9-javascript-tips-you-may-not-know&quot; rel=&quot;nofollow&quot;&gt;JavaScript tips you may not know&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2405" LastActivityDate="2010-09-17T19:48:42.650" CommentCount="1" />
  <row Id="4921" PostTypeId="2" ParentId="358" CreationDate="2010-09-17T19:48:51.030" Score="1" ViewCount="" Body="&lt;p&gt;Perl.  Wait, I mean Python.  Or was it Scheme?  C?  Lisp, that was it.&lt;/p&gt;&#xA;" OwnerUserId="1935" LastActivityDate="2010-09-17T19:48:51.030" CommunityOwnedDate="2010-09-30T22:46:32.880" />
  <row Id="4922" PostTypeId="2" ParentId="565" CreationDate="2010-09-17T19:48:56.023" Score="1" ViewCount="" Body="&lt;p&gt;anything by Jon Skeet ... but this one in particular ... &#xA;&lt;a href=&quot;http://csharpindepth.com/Articles/General/Singleton.aspx&quot; rel=&quot;nofollow&quot;&gt;http://csharpindepth.com/Articles/General/Singleton.aspx&lt;/a&gt; &#xA;since most of us uses the singleton pattern (sometimes even over using it ..)&#xA;this is a good reminder of how to write it correctly!&lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-09-17T19:48:56.023" />
  <row Id="4923" PostTypeId="2" ParentId="501" CreationDate="2010-09-17T19:51:06.647" Score="8" ViewCount="" Body="&lt;p&gt;I despise the fact that curly braces can be optional after an if/while/for statement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Especially when I see code like,&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (...)&#xA;    for(...)&#xA;        ... One line of stuff ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Please just put the braces in and be done with it.&lt;/p&gt;&#xA;" OwnerUserId="905" LastActivityDate="2010-09-17T19:51:06.647" CommunityOwnedDate="2010-09-17T19:51:06.647" CommentCount="12" />
  <row Id="4924" PostTypeId="2" ParentId="4889" CreationDate="2010-09-17T19:51:39.147" Score="3" ViewCount="" Body="&lt;p&gt;&quot;Jack of all trades - master of none.&quot; springs to mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some programs require speed, others large amounts of memory or fast access to the disk. Some languages are good at one, but bad at another - I don't think you'd get a language that was good at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, while you can write virtually any program in any language, what you get isn't guaranteed to be the &quot;best&quot; program you could write to solve that problem.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-17T19:51:39.147" CommunityOwnedDate="2011-03-24T12:24:29.673" />
  <row Id="4927" PostTypeId="2" ParentId="16" CreationDate="2010-09-17T19:57:07.773" Score="0" ViewCount="" Body="&lt;p&gt;Enterprises are just not adopting new languages and tools fast enough and there are good reasons for it. But, when one of the mainstream tools like C# implement some of these features, then they will get trickle into the mainstream enterprises .... &lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-09-17T19:57:07.773" />
  <row Id="4928" PostTypeId="2" ParentId="4614" CreationDate="2010-09-17T19:57:44.780" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm&quot; rel=&quot;nofollow&quot;&gt;Programmer Competency Matrix&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many topics to help identify what's your level on programming topics.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-17T19:57:44.780" CommunityOwnedDate="2011-04-05T15:40:39.513" />
  <row Id="4929" PostTypeId="2" ParentId="940" CreationDate="2010-09-17T19:58:29.693" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Source_Code_Control_System&quot; rel=&quot;nofollow&quot;&gt;SCCS&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, if you happen not to have been living a cave for the last 38 years, &lt;strong&gt;&lt;a href=&quot;http://cssc.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;CSSC&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, my company is using &lt;a href=&quot;http://en.wikipedia.org/wiki/Sun_WorkShop_TeamWare&quot; rel=&quot;nofollow&quot;&gt;TeamWare&lt;/a&gt;, which is a kind of pseudo DVCS based on SCCS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No, I'm not kidding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sun switched to mercurial from TeamWare only a few years ago. Now you should understand why Java seemed to move so slow.&lt;/p&gt;&#xA;" OwnerUserId="2467" LastActivityDate="2010-09-17T19:58:29.693" CommunityOwnedDate="2011-03-07T21:04:52.237" />
  <row Id="4931" PostTypeId="2" ParentId="4865" CreationDate="2010-09-17T19:59:55.840" Score="2" ViewCount="" Body="&lt;p&gt;I follow them almost religiously. Keep in mind that following ergonomic recommendations correctly is not all that easy. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, many people, when trying to adjust their chairs to support a more ergonomic position, end up adjusting themselves to the chair, not the chair to themselves. It's not enough to immitate the look of correct seating, your chair must actually support all the right points and at all the right amounts of resistance. Many people have chairs that are not adjastable enough, or the wrong size for them, or are just ergonomic for pretend, and it's actually downright impossible to adjust them correctly. But people don't realize this, and from their ventage point the only thing they see is how the position should look like from the side, and they assume that immitating the shape is in and of itself enough to make it ergonomic. What this can result in is people forcing themselves into a ergonomically looking sitting position where their body is not correctly supported, and it compensates by using the back muscles to hold itself, which defeats the whole purpose. So if your back/shoulders/neck hurts, there's a pretty good chance that you actually are sitting wrong. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Table related adjustments are another common thing people get wrong. Screen too far, or too low, keyboard too high, etc. etc. When wrongly adjusted, they may actually cause you to fight against your sitting position (for example, in the case of screen being too far you will feel the need to lean forward, and if your chair is tilted backwards this will cause quite a strain on your back and neck. Also, if your keyboard tray is too high, and you raised the chair so high that your feet don't reach the ground, it will put strain on your lower back). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Jeff O is correct in saying that you might experience some pain initially for absolutely natural reasons, depending on how different your normal seating position is from the ergonomic one, but be forewarned that it's not just the sitting position itself, but also support in the right points, at the right amount of pressure, that makes a sitting position ergonomic, and your environment (distance from screen, screen height, keyboard height) must contribute to it. &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2010-09-17T20:20:19.967" LastActivityDate="2010-09-17T20:20:19.967" />
  <row Id="4934" PostTypeId="2" ParentId="4433" CreationDate="2010-09-17T20:09:55.423" Score="23" ViewCount="" Body="&lt;p&gt;&quot;He once broke a build, to see how it felt.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;All his global variables and objects are inherently thread-safe.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;He's the keynote speaker at conferences he's never attended.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;He's the only person to complete a Waterfall project on time, in budget and to the customer's satisfaction.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Sales people actual consult him before making promises.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Windows automatic updates come from his Continuous Integration Server.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He is the most interesting programmer in the world.&lt;/p&gt;&#xA;" OwnerUserId="2283" LastActivityDate="2010-09-17T20:09:55.423" CommentCount="3" />
  <row Id="4935" PostTypeId="2" ParentId="4693" CreationDate="2010-09-17T20:10:29.450" Score="0" ViewCount="" Body="&lt;p&gt;In all honestly, I don't think it's just programmers that are arrogant. If you look at pretty much any career where you are able to step back at the end of the day point at something and say &quot;I made that.&quot; you find at lot of arrogant people. This tends to be a bit worse in fields where the skills needed to succeed are not something that can be learned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, I think that programmers and those in IT tend to get a harder wrap because it's still a new career field and people are still getting used to the idea that computers are here to stay and that in some ways they are like cars - you might be able to fix them, but you need to go to a specialist if you have any really hard problems.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2010-11-13T12:36:48.437" LastActivityDate="2010-11-13T12:36:48.437" CommunityOwnedDate="2010-09-19T15:29:19.433" />
  <row Id="4937" PostTypeId="2" ParentId="4888" CreationDate="2010-09-17T20:16:00.120" Score="1" ViewCount="" Body="&lt;p&gt;Steve Maguire in &lt;a href=&quot;http://www.amazon.com/Debugging-Development-Process-Practical-Strategies/dp/B00005R08G&quot; rel=&quot;nofollow&quot;&gt;Debugging the Development Process&lt;/a&gt; said that he already had this kind of problem. What he advises us is to stop your email client and read your email only at certain times in the day preferably before lunch, and before the end of the day to avoid interruptions during coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I once worked at Hewlett Packard in an open office environment and they gave us noise-canceling headphones to isolate ourselves. You can have pretty much the same effect with a phone headset (2 ears) connected to your phone. It will isolate you and people will not try to disturb you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can configure your phone to always send calls to your voicemail. If it's not possible, pick up the phone discreetly, people will send you emails if they cannot reach you by phone. Most of the time, phone calls are not that urgent. You probably have a mobile phone for emergency for example.&lt;/p&gt;&#xA;" OwnerUserId="1905" LastActivityDate="2010-09-17T20:16:00.120" />
  <row Id="4939" PostTypeId="2" ParentId="1" CreationDate="2010-09-17T20:19:22.227" Score="1" ViewCount="" Body="&lt;p&gt;I'd argue that not using &lt;em&gt;some&lt;/em&gt; comments in your code is a code smell. While I agree that code should be self documenting as much as possible, you hit a certain point where you are going to see code that makes no sense regardless of how well the code is written. I've seen some code in business applications where the comments are pretty much mandatory because:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You need to do something on a case by case basis and there's no good logic for it.&lt;/li&gt;&#xA;&lt;li&gt;The code will likely change in a year or two when the laws are changed and you want to find it again quickly.&lt;/li&gt;&#xA;&lt;li&gt;Someone edited the code in the past because they didn't understand what the code was doing.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Also, company style guides might tell you to do something a certain way - if they say that your could should have comments outlining what blocks of code in a function is doing, then include the comments. &lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-09-17T20:19:22.227" CommunityOwnedDate="2011-01-31T09:04:54.130" />
  <row Id="4941" PostTypeId="1" CreationDate="2010-09-17T20:25:11.073" Score="18" ViewCount="640" Body="&lt;p&gt;Hello:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hate fingerprints on my monitor. I hate them. They look messy and when you have a dark background they are distracting, too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All my colleagues are people I like, and I don't want to be rude or impolite. I also feel that if I say &quot;please don't touch my screen&quot; I'll come off as arrogant and weird.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've tought about putting a funny note that will say &quot;please leave your fingerprints in my monitor (if you want to be punched in the face)&quot; and, while funny (and not serious), it will bring the point across.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you manage this?&lt;/p&gt;&#xA;" OwnerUserId="2472" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-17T23:38:29.407" LastActivityDate="2010-10-12T22:48:11.073" ClosedDate="2010-10-14T14:48:29.370" Title="How do you politely keep colleagues from leaving fingerprints on your monitor?" Tags="&lt;work-environment&gt;&lt;behavior&gt;&lt;monitor&gt;" AnswerCount="18" CommentCount="14" FavoriteCount="6" />
  <row Id="4942" PostTypeId="2" ParentId="4941" CreationDate="2010-09-17T20:28:22.630" Score="15" ViewCount="" Body="&lt;p&gt;No, &lt;strong&gt;do&lt;/strong&gt; say &quot;don't touch the monitor&quot; every time they do. I found that this is one of the few sentiments that non geeks seem to understand when confronted with. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-17T20:28:22.630" />
  <row Id="4943" PostTypeId="2" ParentId="4865" CreationDate="2010-09-17T20:29:00.603" Score="0" ViewCount="" Body="&lt;p&gt;I don't follow proper ergonomic procedure as much as I should, but I do take a lot of care to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Line up the top of my monitor with my eyes;&lt;/li&gt;&#xA;&lt;li&gt;Adjust my chair so I have my arms at the proper height for the keyboard;&lt;/li&gt;&#xA;&lt;li&gt;Make sure I can step flat on the floor.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;With the above set up, even when I slouch or lean too forward, I'll find myself to be in an improper position (because of equipment arrangement) and I'll correct myself naturally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I should probably look more carefully into proper lombar support (i.e., make sure my chair is properly configured) and maybe a better keyboard; but at least I'm not constantly slouched in front of the computer.&lt;/p&gt;&#xA;" OwnerUserId="2120" LastActivityDate="2010-09-17T20:29:00.603" />
  <row Id="4944" PostTypeId="2" ParentId="4941" CreationDate="2010-09-17T20:29:47.653" Score="3" ViewCount="" Body="&lt;p&gt;Your co-workers will undstand if you just polietly tell them. In this field we all have our quirks... it just comes with the territory.&lt;/p&gt;&#xA;" OwnerUserId="2405" LastActivityDate="2010-09-17T20:29:47.653" />
  <row Id="4945" PostTypeId="2" ParentId="4941" CreationDate="2010-09-17T20:30:01.147" Score="9" ViewCount="" Body="&lt;p&gt;I don't have coworkers who touch my monitor, but I once had a coworker who felt more strongly about this than you probably do. One day, someone walked into his office and licked the front of his monitor in front of him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I thought he was going to blow a head gasket.&lt;/p&gt;&#xA;" OwnerUserId="905" LastActivityDate="2010-09-17T20:30:01.147" CommentCount="2" />
  <row Id="4947" PostTypeId="2" ParentId="4941" CreationDate="2010-09-17T20:36:14.857" Score="2" ViewCount="" Body="&lt;p&gt;I have a L shaped desk, and keeping the monitors far back in the corner under a shelf discourages this as you cannot lean down to do it without hitting your head and only one person at a time can sit close enough to reach and they have the mouse.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-17T20:36:14.857" CommentCount="2" />
  <row Id="4949" PostTypeId="2" ParentId="2233" CreationDate="2010-09-17T20:41:35.837" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.puttyworld.com/&quot; rel=&quot;nofollow&quot;&gt;THINKING PUTTY&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its suprisingly more usefull than it sounds. &lt;/p&gt;&#xA;" OwnerUserId="2405" LastActivityDate="2010-09-17T20:41:35.837" CommunityOwnedDate="2010-09-17T20:41:35.837" />
  <row Id="4950" PostTypeId="2" ParentId="4865" CreationDate="2010-09-17T20:43:01.843" Score="1" ViewCount="" Body="&lt;p&gt;I wish! But no!&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-17T20:43:01.843" />
  <row Id="4951" PostTypeId="1" AcceptedAnswerId="4964" CreationDate="2010-09-17T20:43:49.580" Score="16" ViewCount="634" Body="&lt;p&gt;What are the key differences between software engineers and programmers?&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-18T03:49:10.700" LastActivityDate="2010-11-08T02:27:57.350" Title="What are the key differences between software engineers and programmers?" Tags="&lt;career&gt;&lt;job-definition&gt;&lt;job-title&gt;" AnswerCount="11" CommentCount="3" FavoriteCount="1" />
  <row Id="4952" PostTypeId="2" ParentId="4693" CreationDate="2010-09-17T20:44:24.463" Score="3" ViewCount="" Body="&lt;p&gt;I think 'confidence' is often mislabeled as 'arrogance'.  People with self-esteem issues can feel threatened by co-workers who demonstrate a higher level of confidence in their skills or a 'cannot fail' attitude, and label it arrogance.  But such a trait ('arrogance') is also very, very common in some other professions - surgeons, pilots, and laywers, for example.  They're all professions where people have to face consequences of failure (and in some cases, death, for doing so), so they have to develop a supreme level of confidence in themselves to face the challenges.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not talking about braggarts, of course - those would be individuals with poorly developed social skills.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-17T20:44:24.463" CommunityOwnedDate="2010-09-19T15:29:19.433" />
  <row Id="4955" PostTypeId="2" ParentId="4951" CreationDate="2010-09-17T20:47:10.390" Score="3" ViewCount="" Body="&lt;p&gt;No differences.  They are the same thing.  Companies, though, may have formal job descriptions using the terms, and then there may be some company-specific meaning to the term.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-17T20:47:10.390" />
  <row Id="4957" PostTypeId="2" ParentId="4951" CreationDate="2010-09-17T20:49:18.097" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://discuss.joelonsoftware.com/default.asp?joel.3.112837.37&quot; rel=&quot;nofollow&quot;&gt;Joel has already asked this question&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't an easy question to answer and I'm not sure if there is a clear answer. &#xA;But I do know that Joel has already posed that question.&lt;/p&gt;&#xA;" OwnerUserId="2405" LastActivityDate="2010-09-17T20:49:18.097" CommentCount="1" />
  <row Id="4958" PostTypeId="2" ParentId="4433" CreationDate="2010-09-17T20:49:43.150" Score="1" ViewCount="" Body="&lt;p&gt;The first internet coke machine &lt;strong&gt;called him.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-17T20:49:43.150" />
  <row Id="4959" PostTypeId="2" ParentId="4951" CreationDate="2010-09-17T20:50:54.537" Score="4" ViewCount="" Body="&lt;p&gt;Software engineers make programs by operating people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers make programs by operating machines.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-17T20:50:54.537" CommentCount="1" />
  <row Id="4960" PostTypeId="2" ParentId="4319" CreationDate="2010-09-17T20:54:35.100" Score="0" ViewCount="" Body="&lt;p&gt;Practice &amp;amp; peristance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When we learned this back in highschool - the teacher taped a piece of construction paper over our keyboards... She was a LEARN or DIE kinda gal... so we learned. &lt;/p&gt;&#xA;" OwnerUserId="2405" LastActivityDate="2010-09-17T20:54:35.100" />
  <row Id="4961" PostTypeId="2" ParentId="4858" CreationDate="2010-09-17T20:55:08.530" Score="1" ViewCount="" Body="&lt;p&gt;I'll often use them when doing a table or something with a small amount of HTML, and a bunch of repetitive PHP, just to quickly say what's in this column. Usually something small, like `&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;&amp;lt;!-- Phone number --&amp;gt;&#xA;    &amp;lt;?php echo $user-&amp;gt;phone ?&amp;gt;&#xA;&amp;lt;/td&amp;gt;&#xA;&amp;lt;td&amp;gt;&amp;lt;!-- Email --&amp;gt;&#xA;    &amp;lt;?php echo $user-&amp;gt;email ?&amp;gt;&#xA;&amp;lt;/td&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Bad example, due to just an echo, but it's usually to help visually identify and compartmentalize my code. I have issues reading things if they're too jumbled without something to split them up, like green comments, rather than orange in my PHP :P&lt;/p&gt;&#xA;" OwnerUserId="2416" LastActivityDate="2010-09-17T20:55:08.530" />
  <row Id="4962" PostTypeId="2" ParentId="4671" CreationDate="2010-09-17T21:03:05.373" Score="9" ViewCount="" Body="&lt;h2&gt;PHP&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;In an include file not being worked on but at the start of the CMS, I added...&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?&#xA;define('true',false);&#xA;define('false',true);&#xA;?&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;...and went to lunch. &lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-17T21:03:05.373" CommunityOwnedDate="2011-01-11T04:02:16.833" CommentCount="1" />
  <row Id="4963" PostTypeId="2" ParentId="3684" CreationDate="2010-09-17T21:13:53.663" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://colorcharge.com/jquery/&quot; rel=&quot;nofollow&quot;&gt;JQuery Cheat Sheet&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/2r1uA.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2405" LastActivityDate="2010-09-17T21:13:53.663" CommentCount="1" />
  <row Id="4964" PostTypeId="2" ParentId="4951" CreationDate="2010-09-17T21:16:08.580" Score="16" ViewCount="" Body="&lt;p&gt;When hiring, we look for a distinction between someone who is going to be able to help us architect our system, define processes, create technical specifications, implement advanced refactoring, etc. and someone who is going to help us complete programming tasks off a checklist.  I believe you could call the former a &lt;strong&gt;Software Engineer&lt;/strong&gt; and the latter a &lt;strong&gt;Programmer&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-09-17T21:16:08.580" />
  <row Id="4965" PostTypeId="2" ParentId="1768" CreationDate="2010-09-17T21:42:36.290" Score="-3" ViewCount="" Body="&lt;h2&gt;PHP&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Yes its my favorite.. And before you laugh, think about it. Everything you need practically &lt;strong&gt;requires&lt;/strong&gt; networking and some sort of GUI interface for the everyday office worker, in other words, a web interface and proper design. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is highly convoluted to spend extra time and energy to try and pipeline everything through the network to make it uber-efficient, when really &lt;em&gt;that is a scaling problem&lt;/em&gt;, not so much a programming problem. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The amount of database-connectivity libraries available in PHP is insane, &lt;strong&gt;even obscure ones&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;For things like datamining stocks, datafeeds, etc.. websites on PHP do that &lt;strong&gt;everyday&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Your best GUI designers are by far in the website industry, not the &lt;strong&gt;app world&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Besides, what is the point of starting on a massive project like this without thinking about the future. Its all going web-based cross-platform. Do you want to worry about having to re-design or re-write your application just because a new O/S came out? Maybe the new networking or database server software has compatibility issues?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But this has always kind of irritated me about corporate thin-client-have-to-run-this-through-network-shell stuff. Its a time waster, and really all it does is obscure the way the information is communicating through the network, not actually improve that information &lt;em&gt;design&lt;/em&gt; in any way. Its like putting an encrypted database inside an encrypted database inside an encrypted database, but then having to optimize it 3 times to get the same speed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately, this is probably not the best choice, because it will end up being a completely new approach to the problem and everyone will get the &quot;I am confused, there are too many cooks in the kitchen&quot; syndrome. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thing to keep in mind is the best ERP programmers are probably using the languages ERPs are currently running. Yet, I really have to ask - do you want something that works like it is the way now, or do you want something that might be &lt;em&gt;better&lt;/em&gt;?&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-17T21:42:36.290" CommentCount="4" />
  <row Id="4966" PostTypeId="2" ParentId="4951" CreationDate="2010-09-17T21:45:44.757" Score="0" ViewCount="" Body="&lt;p&gt;The difference between engineering and programming is, in my view, best explained by observation of two different areas. I don't know how to clearly articulate it otherwise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider the culture difference between a &quot;hard&quot; engineering company and a &quot;web 2.0&quot; company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Airplane failures due to software &lt;em&gt;versus&lt;/em&gt; social media operational failures due to software.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-17T21:45:44.757" />
  <row Id="4967" PostTypeId="2" ParentId="4693" CreationDate="2010-09-17T21:47:52.880" Score="88" ViewCount="" Body="&lt;p&gt;The wild programmer (Scriptus exemplarus aspergerii) is generally a shy creature when in its natural habitat. While some deviant boisterous specimens do exist, they are the oddity rather than the rule. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;He is content with spending his life staring at rectangular pieces of backlit canvas, and occasionally bashing on rectangular pieces of polished material. Come to think of it, most of his activities revolve around rectangles: the rectangular nutrient clumps he tends to favor eating, the rectangular primitive communication device he always carries around, the beige or black boxes he is so attached to, even organizing his workspace into cubes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The programmer's activity involves stringing together symbols in intricate patterns  which they place on their canvases, obeying complicated self-imposed rules. They are inevitably proud of their symbols and compare them among each other to advance in the hierarchy. Some deem their symbols so valuable that they never show them to another, while others do the same for fear their symbols are not up to par.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Amongst themselves, they can quickly sense when someone is inferior to the standards they uphold, and most often attempt to enlighten less gifted peers; the same less gifted peers will often not take that kindly and, in a surprising twist, both consider the other group arrogant and come off as arrogant themselves. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When taken out of his natural habitat however, the programmer is utterly confused and sees the world around him as a great challenge. Anything that does not conform to the patterns clearly laid out in his symbols is deemed illogical and useless, which causes concern among humans (which is an entirely different species, despite the similarities). He will often try to improve various aspects of the world around him using the methods learned when dealing with symbols, and usually fail; however, his failure only gives him reason to point out that he actually acted correctly, and that outside influences (which are usually humans) are to blame for everything that goes wrong. This usually has the side effect of the same humans considering the programmer arrogant or stupid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When dealing with programmers it is best to avoid upsetting them; however that may not prove an easy task, as their minds work very differently from those of other species. The best defense is to arm yourself with a modicum of information about symbols (you don't have to understand them yourself) or even better, about specific symbols written by famous programmers. It's enough to mention them to calm him down and make him go into a lot of detail on why those symbols are completely wrong and his are better. This is especially useful if you happen to remember symbols from a dialect that is opposed or otherwise dissonant to the programmer's natural one (like C-SHARP [ˈsi.ˈʃaɾp] versus JAVA [ˈdʒavɐ]), although in some specimens it can also produce bouts of rage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also remember that due to his peculiar habits, programmers have a hard time reproducing and as such they are considered an endangered species. Efforts to instigate them to reproduce (much like in the case of giant pandas, Ailuropoda melanoleuca) have been mostly met with failure. So try to be kind to them, as they are generally docile and not a danger unless provoked by displays of misplaced affection or (what they would deem as) illogical thinking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers are part of our heritage and we should do our best to preserve this wondrous species for future generations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;©TLDR Inc.&lt;/p&gt;&#xA;" OwnerUserId="2455" LastActivityDate="2010-09-17T21:47:52.880" CommunityOwnedDate="2010-09-19T15:29:19.433" CommentCount="8" />
  <row Id="4968" PostTypeId="2" ParentId="4671" CreationDate="2010-09-17T21:52:37.483" Score="1" ViewCount="" Body="&lt;p&gt;Well, I was downloading some data from the serial port one day. I had a few boxes on my desk...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just &lt;em&gt;nothing&lt;/em&gt; was getting through. I was starting to panic. My schedule was up against the wire, and, well, it just was scary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I look over and the other end of the cable was in the wrong box. Boy, that was a relief. And embarrassing too.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-17T21:52:37.483" CommunityOwnedDate="2011-01-11T04:02:16.833" />
  <row Id="4969" PostTypeId="1" CreationDate="2010-09-17T21:53:09.767" Score="8" ViewCount="803" Body="&lt;p&gt;What is the coolest,best thing you've ever written, or been a part of team that wrote it?&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-12-28T13:08:05.797" ClosedDate="2010-12-28T23:31:33.560" Title="What's the coolest thing you've ever programmed?" Tags="&lt;software-developer&gt;" AnswerCount="21" CommentCount="5" FavoriteCount="2" />
  <row Id="4970" PostTypeId="2" ParentId="4693" CreationDate="2010-09-17T21:53:34.023" Score="5" ViewCount="" Body="&lt;p&gt;From the &lt;a href=&quot;http://randsinrepose.com/archives/2007/11/11/the_nerd_handbook.html&quot; rel=&quot;nofollow&quot;&gt;Nerd Handbook&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;a majority of the folks on the planet either have no idea how a computer works or they look at it and think “it’s magic”. Nerds know how a computer works. They intimately know how a computer works. When you ask a nerd, “When I click this, it takes awhile for the thing to show up. Do you know what’s wrong?” they know what’s wrong. A nerd has a mental model of the hardware and the software in his head. While the rest of the world sees magic, your nerd knows how the magic works, he knows the magic is a long series of ones and zeros moving across your screen with impressive speed, and he knows how to make those bits move faster. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Not saying this makes the arrogance &lt;em&gt;justified&lt;/em&gt;, but this could be one reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. The Nerd Handbook is a &lt;strong&gt;must-read&lt;/strong&gt; for all nerds and anyone who spends a lot of time with said nerds. :)&lt;/p&gt;&#xA;" OwnerUserId="27" LastActivityDate="2010-09-17T21:53:34.023" CommunityOwnedDate="2010-09-19T15:29:19.433" />
  <row Id="4971" PostTypeId="2" ParentId="4969" CreationDate="2010-09-17T21:56:29.527" Score="10" ViewCount="" Body="&lt;p&gt;I wrote an x86 emulator that could run Windows 3.1 in standard mode, in about a week. (I had my wisdom teeth pulled, and there was nothing else to do...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It felt pretty good to finally see that old GUI draw itself on the screen :)&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-09-17T21:56:29.527" CommentCount="5" />
  <row Id="4972" PostTypeId="2" ParentId="4693" CreationDate="2010-09-17T22:05:12.230" Score="8" ViewCount="" Body="&lt;p&gt;Rather than all the &lt;a href=&quot;http://en.wiktionary.org/wiki/trite&quot; rel=&quot;nofollow&quot;&gt;trite&lt;/a&gt; answers given so far:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I'm constantly asked to do more than I could get done, and then manage to get it done, sooner or later, it's going to go to my head. And remind me... what's one of our most frequent complaints about our projects? Impossible deadlines, no?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also think that to just survive in an environment where when things go well, no one can remember your name, but everyone knows you when they go badly, you need to build some defenses. If you don't build a defense, you burn out and turn into a mental ball of &lt;a href=&quot;http://en.wiktionary.org/wiki/goo&quot; rel=&quot;nofollow&quot;&gt;goo&lt;/a&gt; (or a manager, same difference).  An arrogant attitude is one such defense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you think developers are arrogant, try hanging out with doctors.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2010-11-13T12:24:50.487" LastActivityDate="2010-11-13T12:24:50.487" CommunityOwnedDate="2010-09-19T15:29:19.433" CommentCount="2" />
  <row Id="4973" PostTypeId="2" ParentId="1135" CreationDate="2010-09-17T22:05:29.480" Score="3" ViewCount="" Body="&lt;p&gt;We use it extensively. I find it has several advantages over traditional methods:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The team takes more  ownership of estimates&lt;/li&gt;&#xA;&lt;li&gt;Often programmer archetypes favor introverts - this method encourages them to contribute where they might otherwise defer to more extroverted personalities&lt;/li&gt;&#xA;&lt;li&gt;When a feature has a wide distribution of estimates it is a good indicator of risk&lt;/li&gt;&#xA;&lt;li&gt;Just by doing the estimate you learn more about the tasks&lt;/li&gt;&#xA;&lt;li&gt;Nothing beats putting people in a room communicating effectivly&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2489" LastEditorUserId="2489" LastEditorDisplayName="" LastEditDate="2010-09-17T22:52:25.727" LastActivityDate="2010-09-17T22:52:25.727" />
  <row Id="4974" PostTypeId="2" ParentId="4951" CreationDate="2010-09-17T22:05:41.497" Score="5" ViewCount="" Body="&lt;p&gt;So there is the &quot;Software Engineer&quot;, the &quot;Programmer&quot;, and also the &quot;Developer&quot;, &quot;Coder&quot; and you can never forget the &quot;SOA expert&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are all marketing terms for people who cannot say something meaningful in their CV, such as their actual role (not just job-title) in previous positions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On job ads, the difference is down to the HR person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line:&#xA;every person has his own take on &quot;what makes a good employee-that-works-with-code&quot;, and some like to associate such and such skills with such and such titles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you need to do?&#xA;Job ads should be descriptive about the required skills, and CVs should explain the candidate's experience details.&lt;/p&gt;&#xA;" OwnerUserId="2487" LastActivityDate="2010-09-17T22:05:41.497" />
  <row Id="4975" PostTypeId="2" ParentId="4951" CreationDate="2010-09-17T22:05:52.850" Score="6" ViewCount="" Body="&lt;p&gt;One thinks that they're better than the other. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;define One = Random.Next() %2 == 0 ? &quot;Software Engineers&quot; : &quot;Programmers&quot;&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-17T22:05:52.850" />
  <row Id="4976" PostTypeId="2" ParentId="670" CreationDate="2010-09-17T22:08:17.120" Score="2" ViewCount="" Body="&lt;p&gt;I like the challenge of using new technologies on new projects.  As our industry is ever-changing, so are my outside projects.  Since all of my outside projects are the for-pay type, completing them quickly keeps my attention.&lt;/p&gt;&#xA;" OwnerUserId="2488" LastActivityDate="2010-09-17T22:08:17.120" />
  <row Id="4978" PostTypeId="2" ParentId="4969" CreationDate="2010-09-17T22:10:48.947" Score="1" ViewCount="" Body="&lt;p&gt;I wrote a Greenhouse control system, which would work by taking input from properitiery sensors and based on the parameters defined would decide if heating, humidity etc should be turned on etc. Pretty elaborate system, the first deployment was in University of Queensland, Australia. Several other VERY elaborate installations with several different modules were done. Feels pretty good to see it in action and the whole green house being controlled from one PC. &lt;/p&gt;&#xA;" OwnerUserId="2440" LastActivityDate="2010-09-17T22:10:48.947" CommentCount="1" />
  <row Id="4979" PostTypeId="2" ParentId="1135" CreationDate="2010-09-17T22:11:23.110" Score="2" ViewCount="" Body="&lt;p&gt;It makes everyone talk and think about what's being done. Even if I'm not going to work on it, I have to pay attention to estimate. That helps me when 2 months from now I need to work on something that touches that area.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also easy to grasp. Show people a work breakdown structure and their eyes glaze over and they start drooling in their sleep. Show them a list of tasks for the next 2-4 weeks and they can understand that.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-17T22:11:23.110" />
  <row Id="4980" PostTypeId="2" ParentId="4886" CreationDate="2010-09-17T22:12:00.717" Score="0" ViewCount="" Body="&lt;p&gt;Syntax errors are annoying, but can usually be caught by a compiler/linter. Logical errors can be real time-sinks to diagnose though. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One that cost me far too much time in the past is using a single equals rather than a double, e.g.:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$x = 1;&#xA;$y = 2;&#xA;if ($x = $y)&#xA;{&#xA;    // why is this always evaluating to true?&#xA;    ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="141" LastActivityDate="2010-09-17T22:12:00.717" />
  <row Id="4982" PostTypeId="2" ParentId="4941" CreationDate="2010-09-17T22:15:46.903" Score="4" ViewCount="" Body="&lt;p&gt;I just tell them that no matter how hi-tech my system seems, it is NOT touch screen and they usually understand :)&lt;/p&gt;&#xA;" OwnerUserId="2440" LastActivityDate="2010-09-17T22:15:46.903" />
  <row Id="4983" PostTypeId="2" ParentId="4969" CreationDate="2010-09-17T22:16:37.217" Score="3" ViewCount="" Body="&lt;p&gt;At my high school I programmed an autonomous automatic weed eating robot in 2 weeks. That was the most painful things to write since the deadline was so close and it used &lt;a href=&quot;http://www.intelitekdownloads.com/easyCPRO/&quot; rel=&quot;nofollow&quot;&gt;drag and drop C&lt;/a&gt;, and the deadline was so hard to meet. Still awesome. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Name: CyLawn&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/vS8VN.jpg&quot; alt=&quot;CyLawn Robot&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-18T02:18:10.177" LastActivityDate="2010-09-18T02:18:10.177" CommentCount="5" />
  <row Id="4984" PostTypeId="2" ParentId="4969" CreationDate="2010-09-17T22:19:24.123" Score="5" ViewCount="" Body="&lt;p&gt;Was bored during March Break in high school, grade 12, didn't really know much about threading or anything, but wrote a semi-working game engine in Java. 2D platformer, could walk &amp;amp; fly around, and had a large blob that would suck your life. You could shoot, can't remember if you could kill the blob or not... Only consider it cool because I'd not really done anything like it before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing a co-op term in college, and had literally nothing to do for a couple weeks, so decided to look busy and wrote an instant messenger client &amp;amp; server in 2 days. Multi-user, worked across the network, all the usual stuff you'd expect, except that it was purposefully stateless. Nothing would be saved after something was closed, to keep the chance of somebody reading it later to a minimum. kept improving it for a bit afterward, until I got some actual work to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A project in one of my final semester classes, VB.NET, in college was to write a library to read &amp;amp; write the ID3 tags from MP3 files. To save our time, we were told we could just write a wrapper for an open-source library, which the rest of the class did. I got bored, and went to the specs and wrote my own parser for the binary data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just realized, my main motivation for doing these was I was bored...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, I know, none as fancy or elaborate as the rest of you've done, but they seemed cool to me :P&lt;/p&gt;&#xA;" OwnerUserId="2416" LastActivityDate="2010-09-17T22:19:24.123" CommentCount="1" />
  <row Id="4985" PostTypeId="2" ParentId="670" CreationDate="2010-09-17T22:19:52.980" Score="2" ViewCount="" Body="&lt;p&gt;I have never used Ruby on Rails or Python in a system that I got paid for. Heck, I've never even put built anything of significance with them. But, I enjoyed learning at least some of the basics and the perspective I got from &quot;another side of the programming planet&quot; has helped me a lot with solving problems. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So... if I'm just using my &quot;5-9&quot; time for learning things in my normal day to day technologies, then I think I'm just working longer hours. If I'm using that time to learn things outside of the things I do &quot;9-5&quot;, then that's my own hobby.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think though that not enough devs who are committed to learning outside of &quot;9-5&quot; aren't learning the right things. Another language is great, but when was the last time you spend time reading up/thinking about the kinds of things we hate like planning and estimating? Do most of us even know they are different things? Don't neglect that portion of your after hours education, you might find you can learn better approaches for things you currently hate to do.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-17T22:19:52.980" />
  <row Id="4986" PostTypeId="2" ParentId="4941" CreationDate="2010-09-17T22:22:59.263" Score="2" ViewCount="" Body="&lt;p&gt;&quot;Hey! Hands off the merchandise!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's to the point and it sounding humerous might not make them feel like their fingers are at risk - even though they are.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-17T22:22:59.263" />
  <row Id="4988" PostTypeId="2" ParentId="4941" CreationDate="2010-09-17T22:26:49.843" Score="5" ViewCount="" Body="&lt;p&gt;I just make a show of wiping it off (do the old fog it with your breath thing and get really vigorous about wiping it)... I worked through school as a glazier, so I can actually focus on glass fairly easily which makes finger prints a severe annoyance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I find with LCDs, it's a lot less annoying than CRTs. I mean I &lt;em&gt;really&lt;/em&gt; got annoyed with the slightest smudge on a CRT. It was like trying to see through paint for me.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-17T22:26:49.843" CommentCount="1" />
  <row Id="4989" PostTypeId="2" ParentId="4865" CreationDate="2010-09-17T22:29:06.443" Score="1" ViewCount="" Body="&lt;p&gt;I see a chiropractor regularly because I don't follow the recommendations. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You know when your mom said &quot;don't make that face or it'll stay that way!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;She lied to you, but if she were talking about your bones, she would have been right. Sitting with a hunched back, or poor support will cause your bones (spine is the big one here) to conform to that position - and it will be 'comfortable'. Changing that via posture/chiropractice care/ergonomics will attempt to change that, but it will hurt because it isn't what your body is used to.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-17T22:29:06.443" />
  <row Id="4990" PostTypeId="2" ParentId="4969" CreationDate="2010-09-17T22:35:13.843" Score="1" ViewCount="" Body="&lt;p&gt;An IM application for the intranet as a hobby project. This was in 1998-1999 after seeing Yahoo Pager. Most people at work didn't have internet access. I wrote a P2P IM that worked only in the intranet and only in one subnet. It was written in C++ with Win32 and WinSock. In addition to text, you could send files, view BMP/JPEG images and a few other tricks from the system tray like shutdown or lock the computer. I may still have the source code somewhere on my home server. &lt;/p&gt;&#xA;" OwnerUserId="921" LastActivityDate="2010-09-17T22:35:13.843" />
  <row Id="4992" PostTypeId="2" ParentId="2291" CreationDate="2010-09-17T22:42:24.417" Score="0" ViewCount="" Body="&lt;p&gt;In the process of learning python.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-17T22:42:24.417" CommunityOwnedDate="2010-09-17T22:42:24.417" />
  <row Id="4993" PostTypeId="2" ParentId="670" CreationDate="2010-09-17T22:43:38.500" Score="7" ViewCount="" Body="&lt;p&gt;The question was, How do you remain motivated to learn at home, even after a hard day's work?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Answer: You don't. :)  That is, don't do it after a hard day's work.  Do it &lt;strong&gt;before&lt;/strong&gt;, and invest in yourself first thing in the day.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are specifically trying to learn beyond your current ability, you'll need all the focus and energy you can muster - why make it doubly difficult by waiting until you're fatigued?  Relax after work, get to sleep early, then wake up refreshed and itching to start the day with some learning and no distractions.  Who knows, by practising programming first thing in the morning, you may take your new knowledge into the office and actually become more effective and efficient at work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1-2 hours per day, first thing in the morning, doing/something challenging and fun, will quickly pay rich dividends.&lt;/p&gt;&#xA;" OwnerUserId="2026" LastActivityDate="2010-09-17T22:43:38.500" />
  <row Id="4994" PostTypeId="2" ParentId="4969" CreationDate="2010-09-17T22:45:34.007" Score="8" ViewCount="" Body="&lt;p&gt;it was the &quot;Hello World&quot; my first program&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No Bugs&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ever works&lt;/p&gt;&#xA;" OwnerUserId="2369" LastActivityDate="2010-09-17T22:45:34.007" />
  <row Id="4996" PostTypeId="2" ParentId="648" CreationDate="2010-09-17T22:50:49.473" Score="9" ViewCount="" Body="&lt;p&gt;It depends on what the estimate is for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For an initial, high-level estimate for a business case then the key things are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Speed. Whatever method you use it needs to be quick. The whole point is the stakeholders aren't sure if it is even worth doing the project - which is why they need the numbers for the business case. If the business case was solid they wouldn't need your estimates. The bulk of these projects won't go ahead so it is important that too much effort isn't expended providing the estimate.&lt;/li&gt;&#xA;&lt;li&gt;Give a range. Make it broad. You have had no time to analyse requirements, workshop with stakeholders, validate assumptions. A wide range tells the recipient of the estimate &quot;Software projects are naturally complex and risky - if you want a proper estimate you need to give me more details and more time&quot;. The problem with giving a single number or a narrow range is that it paints you into a corner by setting expectations before any real analysis is done.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I find the best technique to pick a comparable project that &quot;feels&quot; the same. &quot;Feel&quot; is completely subjective - but with this kind of estimate my experience tells me you won't find objective measurements. Then provide a wide range. I've read some books that say a range of -50% to +100% is good but it depends on many factors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a detailed, low-level estimate:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You need a baseline. If the baseline isn't stable the estimate is meaningless.&lt;/li&gt;&#xA;&lt;li&gt;Bottom up is best. Get a detailed work breakdown, estimate each component then roll it up into a larger number. I find planning poker to be a great technique here.&lt;/li&gt;&#xA;&lt;li&gt;Document contingency. Make it clear where any contingency (if any) is added. Is it added to each line item? Or to the whole estimate? Or to specific risks? Or is there none?&lt;/li&gt;&#xA;&lt;li&gt;State your assumptions. Validate as many as possible given the time frame.&lt;/li&gt;&#xA;&lt;li&gt;State explicitly what is included and excluded in the estimate. For example, is review included? Are technical delays included?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2489" LastEditorUserId="2489" LastEditorDisplayName="" LastEditDate="2010-09-17T23:28:36.137" LastActivityDate="2010-09-17T23:28:36.137" CommentCount="1" />
  <row Id="4997" PostTypeId="2" ParentId="4888" CreationDate="2010-09-17T22:54:43.927" Score="3" ViewCount="" Body="&lt;p&gt;I generally turn off IM and email (or just ignore them). When my IM client is on, I have a link to this in my status message: &lt;a href=&quot;http://tantek.pbworks.com/CommunicationProtocols#InstantmessagingandIRC&quot; rel=&quot;nofollow&quot;&gt;http://tantek.pbworks.com/CommunicationProtocols#InstantmessagingandIRC&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That helps with the electronic stuff, but the real world is trickier. Headphones help drown out distractions but don't stop people from approaching. To deal with that problem, &#xA;I do two things*:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Try to divide my work into the smallest possible discrete chunks each day - that way, physical interruptions don't require as a much mental 'paging' when I resume.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;In instances where I'm holding a lot of state in my head when an interruption hits, I find that people are generally okay with, &quot;Hold on just a second while I get this down,&quot; while I quickly type out a description of what I was doing or thinking. That makes the mental 'paging' a little faster when I resume. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Obviously, these don't completely keep you from losing state and having to rebuild it after each interruption, and you still lose the time required for the interruption itself. But they can mitigate the damage done. To some degree, interruptions are just part of working with other human beings and you have to simply build that time into your estimates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*In extreme cases, most people respond just fine to, &quot;I'm sorry, but I'm on a deadline for this and I really need to concentrate on it right now. Can I get back to you later?&quot;  &lt;/p&gt;&#xA;" OwnerUserId="2498" LastActivityDate="2010-09-17T22:54:43.927" />
  <row Id="4999" PostTypeId="2" ParentId="1135" CreationDate="2010-09-17T23:09:36.097" Score="1" ViewCount="" Body="&lt;p&gt;Another good thing: The discussions about whether task X is a '3' or an '8' help the team nail down exactly what the scope is - so later on, there isn't a discrepancy about what task X entailed.&lt;/p&gt;&#xA;" OwnerUserId="2504" LastActivityDate="2010-09-17T23:09:36.097" />
  <row Id="5000" PostTypeId="2" ParentId="4888" CreationDate="2010-09-17T23:12:32.553" Score="3" ViewCount="" Body="&lt;p&gt;Stop obsessing over it. The obsession with &quot;distraction&quot; is itself a distraction. At BEST you're going to get 5-6 hours a day. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stop working 9-5. Explain to your boss the number of distractions and ask if you can at least time shift an hour or two. I often find I get more done between 5pm and 6pm than 9am-5pm. When I worked in an office where I was about the only full time dev, I took lunch at 2 so I could work the period most people were at lunch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You also should ask yourself what you may be doing to encourage interruption. It may seem like it's prudent to be a nice person and help anyone that asks, but stop it. Are people interrupting you because documentation is a waste of your time? I've found that if there's something more than one other person needs to know, it helps to write it down. Then you just send them the link.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-17T23:12:32.553" />
  <row Id="5003" PostTypeId="2" ParentId="4858" CreationDate="2010-09-17T23:26:18.747" Score="1" ViewCount="" Body="&lt;p&gt;I'll use them if there's something that is potentially unclear. If I'm closing a tag, and the opening of the tag is several screens of code above the closing, I'll often mark that with a comment. If I've done something weird to work around some obscure browser bug, I'll mark that, too. And I'll often use them to mark large sections of the page. (HTML 5  tags are good mojo, but sometimes a nice syntax-highlighted comment makes your HTML easier to grok.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I definitely use fewer HTML comments than CSS comments, or comments in whatever language I'm writing the business logic of the site in. And when I'm working with a templating language, I'll often leave comments in the template that don't get rendered to html, especially if the comment only makes sense if you're looking at the template, rather than the rendered code.&lt;/p&gt;&#xA;" OwnerUserId="2162" LastActivityDate="2010-09-17T23:26:18.747" />
  <row Id="5008" PostTypeId="2" ParentId="4951" CreationDate="2010-09-17T23:36:20.927" Score="4" ViewCount="" Body="&lt;p&gt;Programming is about the code. Software engineering is about the end product.&lt;/p&gt;&#xA;" OwnerUserId="2489" LastActivityDate="2010-09-17T23:36:20.927" />
  <row Id="5009" PostTypeId="2" ParentId="2291" CreationDate="2010-09-17T23:36:45.417" Score="0" ViewCount="" Body="&lt;p&gt;compass assembler on a CDC 3150&lt;br&gt;&#xA;Yes that is before x86 or x88 chips.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-09-17T23:36:45.417" CommunityOwnedDate="2010-09-17T23:36:45.417" />
  <row Id="5010" PostTypeId="2" ParentId="2291" CreationDate="2010-09-17T23:44:19.600" Score="0" ViewCount="" Body="&lt;h1&gt;SNOBOL4&lt;/h1&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-17T23:44:19.600" CommunityOwnedDate="2010-09-17T23:44:19.600" CommentCount="1" />
  <row Id="5011" PostTypeId="2" ParentId="670" CreationDate="2010-09-17T23:53:33.760" Score="1" ViewCount="" Body="&lt;p&gt;I do mostly embedded programming in C for my 9-5 work.  So at home, I'm currently learning Ruby by using it to solve &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt; problems.  Quite eye-opening.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-17T23:53:33.760" />
  <row Id="5012" PostTypeId="2" ParentId="4614" CreationDate="2010-09-17T23:56:29.977" Score="4" ViewCount="" Body="&lt;p&gt;Exceptional programmers:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Care about their code&lt;/li&gt;&#xA;&lt;li&gt;Care about the users who use their code&lt;/li&gt;&#xA;&lt;li&gt;Care about the people who will maintain their code&lt;/li&gt;&#xA;&lt;li&gt;Care about productivity&lt;/li&gt;&#xA;&lt;li&gt;Care about the process, not just the product&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Two things about the &quot;10x&quot; factor:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It has to be applied end-to-end. It is no good writing code 10x faster if it takes 10x longer to test, rework and maintain.&lt;/li&gt;&#xA;&lt;li&gt;I believe the &quot;10x&quot; factor is a reflection of how poor a high number of programmers are rather as opposed to how good a small number of programmers are.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2489" LastActivityDate="2010-09-17T23:56:29.977" CommunityOwnedDate="2011-04-05T15:40:39.513" />
  <row Id="5013" PostTypeId="2" ParentId="44" CreationDate="2010-09-17T23:59:43.387" Score="5" ViewCount="" Body="&lt;p&gt;If you already have the knowledge then by all means get the certification. Don't let the certification be the reason you're learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Certification shows you take your career seriously but says little about your competence.&lt;/p&gt;&#xA;" OwnerUserId="2489" LastActivityDate="2010-09-17T23:59:43.387" />
  <row Id="5015" PostTypeId="1" AcceptedAnswerId="5033" CreationDate="2010-09-18T00:08:01.383" Score="3" ViewCount="271" Body="&lt;p&gt;I'm currently using Planning Poker to do our detailed estimates. This works great but relies upon a fairly detailed work breakdown. Often it takes 6-8 weeks to get a sufficiently detailed design and work breakdown.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found the 6-8 weeks of analysis are often wasted as the estimate comes out so high it doesn't make economic sense to continue the project. I think providing a high-level estimate up front with a wide range might be better to weed out these shaky business cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What tools and techniques exist for high-level initial estimates?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now I just pick a previous project that &quot;feels&quot; the same and provide a -50%/+100% range.&lt;/p&gt;&#xA;" OwnerUserId="2489" LastActivityDate="2010-09-18T07:49:01.357" Title="What is a good estimation technique for initial, high-level estimates?" Tags="&lt;estimation&gt;" AnswerCount="3" FavoriteCount="3" />
  <row Id="5017" PostTypeId="2" ParentId="3241" CreationDate="2010-09-18T00:14:01.650" Score="1" ViewCount="" Body="&lt;p&gt;I think you're right - you're not going to get any meaningful metric due to sher number of influencing factors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it helps I can tell you projects I work on (enterprise space, large complex systems, lots of integration to other systems) have a ratio of about 3:2. Most of these are not faults with the code - more usually faults with the interfaces. For example, system A and B talk to each other through interface X. The developers of system A interpret interface X slightly differently than the developers of system B. Comedy ensues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One observation to make is that development of code and testing/bug fixing of code shouldn't be two distinct phases. If you test as you develop the &quot;cost&quot; of bug fixing is less.&lt;/p&gt;&#xA;" OwnerUserId="2489" LastActivityDate="2010-09-18T00:14:01.650" />
  <row Id="5018" PostTypeId="2" ParentId="3069" CreationDate="2010-09-18T00:19:52.183" Score="0" ViewCount="" Body="&lt;p&gt;I'm currently learning Ruby by using it to solve &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt; problems, just because I spend most of my day programming in C or PHP (and sometimes C#) and I want to broaden my horizons.  So far it has really opened my eyes to what can be done.  Even if I never use it for any &quot;real&quot; work, I believe the time spent learning about it will be worthwhile.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-18T00:19:52.183" />
  <row Id="5019" PostTypeId="1" AcceptedAnswerId="5023" CreationDate="2010-09-18T00:21:40.540" Score="7" ViewCount="767" Body="&lt;p&gt;I know several programmer friends/ex-colleagues of mine who envisioned themselves to be software architects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would label myself as a software engineer who also does programming. Of course I've worked with architects as part of various project teams and also performed architecting tasks for smaller projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Somehow I don't think I want to be an architect-only guy. I like to get my hands dirty with occassional mundane coding, challenging design proposals made by real architects etc. Can I advance up the technical ladder without being an architect, and become more like a senior-senior-whatever software engineer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or perhaps my perception of architect as a major career milestone for a programmer is not valid?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: I'm refering to the scope for a career of a technical nature as compared to a managerial/administrative one.&lt;/p&gt;&#xA;" OwnerUserId="2262" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-24T13:13:02.493" LastActivityDate="2010-11-24T13:13:02.493" Title="Do all/most programmers aspire to become an architect?" Tags="&lt;career&gt;&lt;architect&gt;&lt;senior-developer&gt;" AnswerCount="11" CommentCount="3" FavoriteCount="2" />
  <row Id="5020" PostTypeId="2" ParentId="3974" CreationDate="2010-09-18T00:24:41.577" Score="0" ViewCount="" Body="&lt;p&gt;In my experience the ratio of good:bad programmers is the same for males and females.&lt;/p&gt;&#xA;" OwnerUserId="2489" LastActivityDate="2010-09-18T00:24:41.577" CommunityOwnedDate="2010-09-18T00:24:41.577" />
  <row Id="5021" PostTypeId="2" ParentId="5015" CreationDate="2010-09-18T00:24:43.170" Score="3" ViewCount="" Body="&lt;p&gt;Estimation for everything generally starts by breaking it down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get as granular as you can, even if that's only to the level of major features, and estimate those.  Even at that level, you can still use a planning poker meeting (or any other consensus-based estimation method, for that matter).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also some formulaic estimation systems out there (&lt;a href=&quot;http://en.wikipedia.org/wiki/COCOMO&quot; rel=&quot;nofollow&quot;&gt;COCOMO&lt;/a&gt; comes to mind), but I personally don't put much stock in them.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-18T00:24:43.170" CommentCount="1" />
  <row Id="5022" PostTypeId="2" ParentId="4693" CreationDate="2010-09-18T00:27:44.877" Score="0" ViewCount="" Body="&lt;p&gt;So? &lt;a href=&quot;http://www.polyvore.com/cgi/img-set/BQcDAAAAAwoDanBnAAAABC5vdXQKFm11RVc5RVNCM2hHWDVHbnNTTS1VZ2cAAAACaWQKAXgAAAAEc2l6ZQ.jpg&quot; rel=&quot;nofollow&quot;&gt;Why are you so serious?&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-09-18T00:27:44.877" CommunityOwnedDate="2010-09-19T15:29:19.433" />
  <row Id="5023" PostTypeId="2" ParentId="5019" CreationDate="2010-09-18T00:28:20.947" Score="23" ViewCount="" Body="&lt;p&gt;Not at all.  Among my friends I can list:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A guy that only ever wants to code&lt;/li&gt;&#xA;&lt;li&gt;A guy that wants to go managerial as soon as possible&lt;/li&gt;&#xA;&lt;li&gt;A guy that wants to get out of code and into requirements gathering / client interfacing&lt;/li&gt;&#xA;&lt;li&gt;A guy that wants to do QA for the rest of his career.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;None of them have any interest in architecture.  And even among those that do want to do it, there's differences.  Eg, my one friend who wants to do nothing but architecture vs myself, who wants to do a mix of architecture and hands-on coding.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-18T00:28:20.947" />
  <row Id="5024" PostTypeId="2" ParentId="4693" CreationDate="2010-09-18T00:29:45.420" Score="0" ViewCount="" Body="&lt;p&gt;Many do, and many don't, but pessimists tend to remember the ones who are arrogant. And, sad but true - amongst programmers they happen to regard the non-arrogant ones as if they don't know their trade because they are quiet. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is bad, but that's the way it is. Programmers don't do higher level inferences, they just brain dump to you loads of facts that is right in a narrow context and then as you think you need to waste 4-5 hours to argue with them on each point then you give up and they win.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thing is that normally people to people communication talk generalisations, but cutting code don't have much room for it. Programmers are too used to making clarifications and detecting semantic loop holes. Some come across as arrogant when they ask you a question. And then there are the know alls but you get this type anywhere, some regard sense of superiority important to them.&lt;/p&gt;&#xA;" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2010-11-13T12:21:19.570" LastActivityDate="2010-11-13T12:21:19.570" CommunityOwnedDate="2010-09-19T15:29:19.433" />
  <row Id="5025" PostTypeId="2" ParentId="4546" CreationDate="2010-09-18T00:46:19.423" Score="0" ViewCount="" Body="&lt;p&gt;We have an enterprise app that is almost quarter million lines of C# code written in .NET 1.1. Microsoft has made a lot things in .NET 1.1 obsolete. As Bill said, the resources needed to make the leap is not justified easily. Usually end of life notifications gets some attention. &lt;/p&gt;&#xA;" OwnerUserId="921" LastActivityDate="2010-09-18T00:46:19.423" />
  <row Id="5026" PostTypeId="2" ParentId="2410" CreationDate="2010-09-18T00:46:47.843" Score="5" ViewCount="" Body="&lt;p&gt;I love &lt;a href=&quot;http://chrismcmahonsblog.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;Chris McMahon's&lt;/a&gt; analogy of Software development being like the creation of music, particularly jazz music.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;This is Ella Fitzgerald and Count Basie doing the song One O'Clock Jump. The song is a twelve-bar blues, which is the jazz equivalent of a database app with a UI. By which I mean: just as every programmer has built a database app with a UI, every American musician has played twelve-bar blues. It is a framework on which many many many songs are hung, from Count Basie to Jimi Hendrix to the Ramones.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;This particular video is a great&#xA;  example of agile practice. Listen to&#xA;  how the voice and piano influence each&#xA;  other. This is a lot like pair&#xA;  programming, and it's a lot like TDD:&#xA;  voice does something; piano responds;&#xA;  piano does something; voice responds.&#xA;  And notice the eye contact. These&#xA;  people are intensely aware of what's&#xA;  going on instant-to-instant. They have&#xA;  no sheet music (BDUF). They are&#xA;  involved in an activity that takes&#xA;  intense concentration and skill, just&#xA;  like good software development. They&#xA;  are also clearly aware that there is&#xA;  an audience, just as good software&#xA;  development should be aware of the&#xA;  needs of the people paying the bills.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Here's the link to the blog post in which he discusses it: &#xA;&lt;a href=&quot;http://chrismcmahonsblog.blogspot.com/2007/05/example-of-analogy-monks-vs-music.html&quot; rel=&quot;nofollow&quot;&gt;http://chrismcmahonsblog.blogspot.com/2007/05/example-of-analogy-monks-vs-music.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-18T00:46:47.843" CommunityOwnedDate="2011-03-03T17:06:14.173" CommentCount="1" />
  <row Id="5027" PostTypeId="2" ParentId="4886" CreationDate="2010-09-18T00:50:26.013" Score="0" ViewCount="" Body="&lt;p&gt;I forgot to initialize a variable so the program threw a NullPointerException. It's just basic but there are times that I really commit mistakes. Now, I learned my lesson.&lt;/p&gt;&#xA;" OwnerUserId="1496" LastActivityDate="2010-09-18T00:50:26.013" CommentCount="1" />
  <row Id="5028" PostTypeId="2" ParentId="4886" CreationDate="2010-09-18T00:54:54.500" Score="0" ViewCount="" Body="&lt;p&gt;Template metaprogramming in C++ is something that'll throw you off on some TOTALLY wayward path. You make a little typing error and BOOM 300 errors with some simple reason that's hard to find.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastActivityDate="2010-09-18T00:54:54.500" />
  <row Id="5029" PostTypeId="2" ParentId="1768" CreationDate="2010-09-18T01:00:16.180" Score="1" ViewCount="" Body="&lt;h2&gt;Large ERP&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I'm talking about green field scenarios, not legacy code. You should not worry about a specific language as large projects will use multiple languages anyway. For example, you may use functional languages (F# / Clojure) for data analysis and script languages (Javascript) for web user interface. Most code may be developed using object-oriented (Java / C#). Your main focus should be:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Developer productivity: You should use a mature IDE (Visual Studio, Eclipse) with the essencial tools (advanced refactoring, debugger, visual designer) and also the good stuff: version control system, build automation. &lt;/li&gt;&#xA;&lt;li&gt;Target environment (&lt;a href=&quot;http://en.wikipedia.org/wiki/Middleware&quot; rel=&quot;nofollow&quot;&gt;Middleware&lt;/a&gt;): if you are in a Microsoft land (Windows/SQL Server), C# is good choice. Otherwise, Java is good starting point.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;h2&gt;Small Business&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Here you have more freedom to use your favorite language. You name it: PHP, Phyton, Ruby&lt;/p&gt;&#xA;" OwnerUserId="2520" LastActivityDate="2010-09-18T01:00:16.180" />
  <row Id="5030" PostTypeId="2" ParentId="4941" CreationDate="2010-09-18T01:05:18.110" Score="10" ViewCount="" Body="&lt;p&gt;I tape a printout of the following on my monitor's bezel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/bZvnf.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It hasn't been very successful.  Perhaps it is too small for people to read.  Next step... print it on 30&quot; x 20&quot; poster board.&lt;/p&gt;&#xA;" OwnerUserId="2517" LastActivityDate="2010-09-18T01:05:18.110" />
  <row Id="5031" PostTypeId="2" ParentId="4433" CreationDate="2010-09-18T01:06:27.593" Score="0" ViewCount="" Body="&lt;p&gt;The name on his birth certificate is in binary.&lt;br&gt;&#xA;With him, discussions of Soap and AJAX have nothing to do with cleaning.&lt;br&gt;&#xA;He is considered the Shakespeare of Dynamic Link Libraries.&lt;/p&gt;&#xA;" OwnerUserId="2287" LastActivityDate="2010-09-18T01:06:27.593" />
  <row Id="5032" PostTypeId="2" ParentId="4886" CreationDate="2010-09-18T01:07:03.550" Score="0" ViewCount="" Body="&lt;p&gt;Copy-and-modify. You know it's wrong, it bites you again and again, yet you keep doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And by &quot;you&quot; I mean &quot;me,&quot; of course.&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-09-18T01:07:03.550" />
  <row Id="5033" PostTypeId="2" ParentId="5015" CreationDate="2010-09-18T01:08:48.413" Score="3" ViewCount="" Body="&lt;p&gt;If you are doing detailed planning poker sessions for all of the requirements up front, you are wasting a lot of time, as in my experience, detailed project requirements simply aren't that fixed, so you spend a lot of time estimating items that you never build, or are so greatly changed by the time you build them that the initial estimate is not valid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All estimates are guesses, but you can get better at estimating if you do it often and keep data about how accurate your estimates are. Estimation is best done at two levels, once initially on the project and another as an ongoing process within the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, when asked for a project estimate - estimate at the feature level, using your experience on previous projects. Keep the data on your previous initial estimates and see how you track against them. You can do this initial estimate similarly to planning poker, but don't break the work down into tasks. Simply give yourself some big buckets (increments of a half week or week for the features could work, but not much more granular than that) to estimate. If more than one team member is estimating, don't waste time on too much discussion at this point, just go with the most pessimistic estimate rather than getting down into the weeds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, as you work through your short project iterations (assuming that you do have short iterations), you pick the highest priority items and estimate them at the task level (and of course develop and deliver them). Once you've cycled through that first iteration you can see how accurate your detailed estimates are, as well as how they compare to your initial ballpark estimates. Now you can revise those initial estimates as you see how accurate they are, and once you have a few cycles under your belt you can give a confidence interval for the project completion date.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The units for the ballpark estimate are a good communication tool for the precision of the estimate. Your initial units are in days or weeks, but your detailed estimates are in hours.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-18T01:08:48.413" />
  <row Id="5034" PostTypeId="1" AcceptedAnswerId="5063" CreationDate="2010-09-18T01:14:50.850" Score="4" ViewCount="373" Body="&lt;p&gt;I'd like to know at what point can be considerated an AI implementation? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I means, what is the minimal requeriment for that?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you give a simple code example?&lt;/p&gt;&#xA;" OwnerUserId="2369" LastEditorUserId="145" LastEditorDisplayName="" LastEditDate="2010-11-24T22:45:23.690" LastActivityDate="2010-11-25T01:17:27.313" Title="What 's the minimal requirement for a code be considered an AI implementation?" Tags="&lt;artificial-intelligence&gt;&lt;minimal-requirements&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="4" />
  <row Id="5035" PostTypeId="2" ParentId="5034" CreationDate="2010-09-18T01:16:22.530" Score="2" ViewCount="" Body="&lt;p&gt;I'd say some sort of decision-making and/or learning algorithm would be involved. You can read about different sub-problems within AI in &lt;a href=&quot;http://en.wikipedia.org/wiki/Artificial_intelligence#Problems&quot; rel=&quot;nofollow&quot;&gt;this Wikipedia article&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on what you needed AI for, there'd need to be an implementation of some subset of those.&lt;/p&gt;&#xA;" OwnerUserId="226" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2010-09-18T01:21:49.007" LastActivityDate="2010-09-18T01:21:49.007" CommentCount="1" />
  <row Id="5036" PostTypeId="2" ParentId="2254" CreationDate="2010-09-18T01:23:24.487" Score="12" ViewCount="" Body="&lt;p&gt;Things I love about my IBM Model M Compact:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Buckling_spring&quot; rel=&quot;nofollow&quot;&gt;Buckling spring&lt;/a&gt; keyswitches&lt;/li&gt;&#xA;&lt;li&gt;No number pad means shorter distance to the mouse&lt;/li&gt;&#xA;&lt;li&gt;Unlike other compact keyboards, it still has dedicated function, arrow, and page up/page down keys&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/QdFYD.jpg&quot; alt=&quot;IBM Model M Compact&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2523" LastEditorUserId="2523" LastEditorDisplayName="" LastEditDate="2010-10-19T10:42:55.270" LastActivityDate="2010-10-19T10:42:55.270" CommunityOwnedDate="2011-01-17T21:43:24.260" CommentCount="9" />
  <row Id="5037" PostTypeId="1" CreationDate="2010-09-18T01:30:01.967" Score="1" ViewCount="520" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/2846/which-programming-language-do-you-really-hate&quot;&gt;Which programming language do you really hate?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Please provide the reasons.&lt;/p&gt;&#xA;" OwnerUserId="2524" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T16:51:02.677" LastActivityDate="2010-09-30T16:51:02.677" ClosedDate="2010-09-19T13:07:13.193" Title="Programming language you wish you've never learned" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;experience&gt;" AnswerCount="7" CommentCount="4" />
  <row Id="5039" PostTypeId="2" ParentId="3974" CreationDate="2010-09-18T02:06:05.293" Score="0" ViewCount="" Body="&lt;p&gt;My female coworker, she was cool. She could answer my questions, when she writes code it doesnt look wrong (or runs incorrectly!) and she could find my mistakes in my code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The exact opposite applies to my female programming boss. Maybe her code isnt terrible but she did design a database without a single foreign key and in every single instance she could not communicate her answer to me or comprehend what i was saying (no other person had the problem).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So i'll say i have a 50-50 experience with good/terrible female programmers. &lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-18T02:06:05.293" CommunityOwnedDate="2010-09-18T02:06:05.293" />
  <row Id="5040" PostTypeId="2" ParentId="5019" CreationDate="2010-09-18T02:07:15.867" Score="5" ViewCount="" Body="&lt;p&gt;I have no desire at all to be an architect.  My passion is coding and I would dread having to be so close to a programming project and not be able to build it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually my first career was as as architect, a building architect, but I digress...  Once I feel my coding career is ending, I'll probably move on to something completely different.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-18T02:07:15.867" CommentCount="1" />
  <row Id="5042" PostTypeId="2" ParentId="2291" CreationDate="2010-09-18T02:16:40.167" Score="1" ViewCount="" Body="&lt;h1&gt;Applescript&lt;/h1&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-18T02:16:40.167" CommunityOwnedDate="2010-09-18T02:16:40.167" CommentCount="1" />
  <row Id="5045" PostTypeId="2" ParentId="4546" CreationDate="2010-09-18T02:27:54.020" Score="1" ViewCount="" Body="&lt;p&gt;When you released it in 2001, it has multiple security flaws and bugs, it's universally loathed, ritually cursed, and your current version, which is three versions later, is in public beta.&lt;/p&gt;&#xA;" OwnerUserId="73" LastActivityDate="2010-09-18T02:27:54.020" CommentCount="2" />
  <row Id="5046" PostTypeId="2" ParentId="4433" CreationDate="2010-09-18T02:35:10.840" Score="4" ViewCount="" Body="&lt;p&gt;He drank some beers and wrote assembly in hexadecimal on a napkin in a bar. He is the most interesting programmer in the world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: This is a true story that happened to me. I was shocked.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-18T02:35:10.840" />
  <row Id="5047" PostTypeId="2" ParentId="5019" CreationDate="2010-09-18T02:46:02.723" Score="12" ViewCount="" Body="&lt;p&gt;My step-father, who is in the construction business used to have this on his wall:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An engineer is someone who starts out knowing a lot about a little and goes on knowing more and more about less and less until he knows everything about nothing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An architect is someone who starts out knowing a little about a lot and goes on knowing less and less about more and more until he knows nothing about everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A contractor starts out knowing everything about everything but due to his association with architects and engineers ends up knowing nothing about nothing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I'm a coder with no desire to be an architect as the term is commonly used by management types. There are way too many architects out there for me to be comfortable. Even a big organization should only have handful at most of architects. Unfortunately, with most companies not having a good advancement track for the software crew, architect has become almost synonymous with &quot;top level engineer&quot;. The other, worse kind, of architect is the one who couldn't hack it because they couldn't handle the details anymore but sure can write white papers. That's the useless kind. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I don't see our career paths as dev&gt;engineer&gt;architect&gt;pain vs dev&gt;manager&gt;vp. I see architect and engineer as really orthogonal concepts, not progressive. That said, I agree that if you are an architect and you don't get your hands dirty, you are a waste of oxygen and the trees you kill with your white papers.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-18T02:46:02.723" CommentCount="2" />
  <row Id="5048" PostTypeId="1" AcceptedAnswerId="5103" CreationDate="2010-09-18T02:49:16.587" Score="0" ViewCount="242" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/501/what-syntax-element-do-you-hate-most-in-a-programming-language-you-use-frequently&quot;&gt;What syntax element do you hate most in a programming language you use frequently?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Inspired by &lt;a href=&quot;http://programmers.stackexchange.com/questions/5038/which-programming-language-would-you-eliminate-and-why&quot;&gt;this question&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My vote is for implicit semicolons in JavaScript.&lt;/p&gt;&#xA;" OwnerUserId="886" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:14:45.853" LastActivityDate="2010-09-18T21:14:45.853" ClosedDate="2010-09-18T12:20:33.493" Title="Which programming language *feature* would you eliminate and why?" Tags="&lt;programming-languages&gt;&lt;language-features&gt;" AnswerCount="1" CommentCount="6" FavoriteCount="1" />
  <row Id="5050" PostTypeId="2" ParentId="4969" CreationDate="2010-09-18T03:03:55.813" Score="0" ViewCount="" Body="&lt;p&gt;I wrote a &lt;a href=&quot;https://bitbucket.org/BillyONeal/pevfind&quot; rel=&quot;nofollow&quot;&gt;mini interpreted domain specific language&lt;/a&gt; for the Command Line which is used as a component of &lt;a href=&quot;http://www.bleepingcomputer.com/combofix/how-to-use-combofix&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="886" LastEditorUserId="886" LastEditorDisplayName="" LastEditDate="2010-12-28T03:37:14.937" LastActivityDate="2010-12-28T03:37:14.937" CommentCount="3" />
  <row Id="5051" PostTypeId="2" ParentId="4941" CreationDate="2010-09-18T03:12:14.103" Score="3" ViewCount="" Body="&lt;p&gt;Maybe, a sign that said in LARGE LETTERS something like:  &quot;Warning! - Ebola virus - do not touch screen!&quot;.  That would make your point in a humorous way.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-09-18T03:12:14.103" />
  <row Id="5052" PostTypeId="2" ParentId="4969" CreationDate="2010-09-18T03:19:26.297" Score="0" ViewCount="" Body="&lt;p&gt;i made something to allow me to use arrays as pointers in vb6. It was SO easy to use.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-18T03:19:26.297" />
  <row Id="5053" PostTypeId="2" ParentId="5037" CreationDate="2010-09-18T03:23:55.650" Score="3" ViewCount="" Body="&lt;p&gt;Turing. I had to do it in gr11 engineering. It was boring, i didnt learn anything from it and i never used or referred to it since.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-18T03:23:55.650" CommentCount="1" />
  <row Id="5054" PostTypeId="2" ParentId="940" CreationDate="2010-09-18T03:43:47.757" Score="4" ViewCount="" Body="&lt;p&gt;I have used a multitude of version control systems in my long history:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;RPPT - (Rolls of Punched Paper Tape). In a shoe box. I'm not kidding.&lt;/li&gt;&#xA;&lt;li&gt;PVCS - (Polytron Version Control System). The first real VCS I used.&lt;/li&gt;&#xA;&lt;li&gt;SCCS - so long ago, I don't remember any thing exceptionally good or bad about it.&lt;/li&gt;&#xA;&lt;li&gt;RCS - as others have pointed out, would rather suck sweaty donkey balls.&lt;/li&gt;&#xA;&lt;li&gt;CVS - it was only a pain when used with more then 2 programmers.  best feature: rcs2cvs.&lt;/li&gt;&#xA;&lt;li&gt;VSS - it works, except on tuesdays, when it corrupts your entire repository.&lt;/li&gt;&#xA;&lt;li&gt;Perforce - costs more than my car. The VCS itself is acceptable, but the dickhead IT guys that control every aspect of using it will never land it on my &quot;preferred&quot; list.&lt;/li&gt;&#xA;&lt;li&gt;SVN - branching and merging is a bitch, but in general it is better than any of the previous.  Not so good with lots of tiny outstanding changes awaiting review.&lt;/li&gt;&#xA;&lt;li&gt;Mercurial - what little experience I do have with it, I like. I might try it on my next project.&lt;/li&gt;&#xA;&lt;li&gt;Git - never had the opportunity to use it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Although a couple were horrors, most were &quot;fine&quot;. They didn't get in my way. As long as a tool &lt;strong&gt;doesn't make my life significantly more difficult&lt;/strong&gt;, I don't really mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The real thing is to understand the strengths and weaknesses of each. Understand the target environment:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&lt;li&gt;distributed or local&lt;/li&gt;&#xA;&lt;li&gt;small team or large&lt;/li&gt;&#xA;&lt;li&gt;hosted vcs service or not&lt;/li&gt;&#xA;&lt;li&gt;easy integration into other tools&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Joel also came out with an important observation:  Learn the tool and its true model of use.  He struggled mightily trying to make Mercurial behave like Subversion.&lt;/p&gt;&#xA;" OwnerUserId="2534" LastEditorUserId="2534" LastEditorDisplayName="" LastEditDate="2010-09-18T03:56:15.110" LastActivityDate="2010-09-18T03:56:15.110" CommunityOwnedDate="2011-03-07T21:04:52.237" CommentCount="5" />
  <row Id="5055" PostTypeId="1" AcceptedAnswerId="5157" CreationDate="2010-09-18T03:45:13.887" Score="1" ViewCount="250" Body="&lt;p&gt;So right now I'm looking for programming conferences around my area (Northern Virginia) and this conference looks very nice &lt;a href=&quot;http://www.nofluffjuststuff.com/conference/reston/2010/11/home&quot; rel=&quot;nofollow&quot;&gt;http://www.nofluffjuststuff.com/conference/reston/2010/11/home&lt;/a&gt;&#xA;This is the only decent conference I can find around here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However a ticket cost almost $1000. I asked my friend who recently went to a RoR conference which was only about $150. Now I'm only a recent college graduate with an entry level software position so no way would my company sponsor me for this. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is, why are these programming conferences SO expensive? I just wanted to learn more about programming and I thought this would be a good experience.&lt;/p&gt;&#xA;" OwnerUserId="2538" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-18T03:51:56.063" LastActivityDate="2010-09-18T23:59:45.227" ClosedDate="2010-09-19T00:12:23.043" Title="Programming Conferences" Tags="&lt;programming-practices&gt;&lt;conferences&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="1" />
  <row Id="5056" PostTypeId="2" ParentId="5019" CreationDate="2010-09-18T03:45:15.057" Score="2" ViewCount="" Body="&lt;p&gt;Some do. The ones who do, fall into two categories&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Those who want to be an architect because it's a status symbol for them. This is particularly prevalent in cultures where managerial positions are seen as more successful than &quot;just coding&quot; ones.&lt;/li&gt;&#xA;&lt;li&gt;Those who want to be an architect because they want to have a much more wider perspective of the product. These are also the ones who don't stop coding after they become architects.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-09-18T03:45:15.057" />
  <row Id="5057" PostTypeId="1" AcceptedAnswerId="5065" CreationDate="2010-09-18T03:48:08.607" Score="3" ViewCount="375" Body="&lt;p&gt;Replacing a function and depreciating the original or to end of life support for a particular API that has fallen out of favor requires little explanation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is more difficult to justify the idea of removing a in-use language feature without replacing it's functionality, but this sort of discussion is found everywhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think the motivation is?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;form over function?&lt;/li&gt;&#xA;&lt;li&gt;no experience with the situations where you have to use ugly features?&lt;/li&gt;&#xA;&lt;li&gt;rage from too many bad experiences with the ugly features being used poorly?&lt;/li&gt;&#xA;&lt;li&gt;something else?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="841" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-24T22:26:02.247" LastActivityDate="2010-11-08T14:12:13.837" Title="Why do programmers discuss removing core language features rather than improving them?" Tags="&lt;programming-languages&gt;&lt;language-features&gt;&lt;language-design&gt;" AnswerCount="6" CommentCount="3" />
  <row Id="5058" PostTypeId="2" ParentId="5057" CreationDate="2010-09-18T03:54:09.830" Score="9" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;In anything at all, perfection is finally attained not when there is no longer anything to add, but when there is no longer anything to take away, when a body has been stripped down to its nakedness.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;It results from this that perfection of invention touches hands with absence of invention, as if that line which the human eye will follow with effortless delight were a line that had not been invented but simply discovered, had in the beginning been hidden by nature and in the end been found by the engineer.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;-- Antoine de Saint-Exupery&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Stripping a language down to its kernel simplifies reasoning about the language and programs in it, while simultaneously creating motivation to find a way to make those habitability features possible to create &lt;i&gt;on top of&lt;/i&gt; the base language instead of making them part of the kernel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, by foreclosing the well-worn road, it can drive investigation down unexplored trails that can in the end lead to entirely new approaches to solving a problem, and these new discoveries can often be reapplied in more conventional or utilitarian programming languages.&lt;/p&gt;&#xA;" OwnerUserId="2539" LastEditorUserId="2539" LastEditorDisplayName="" LastEditDate="2010-09-18T03:59:40.197" LastActivityDate="2010-09-18T03:59:40.197" CommentCount="3" />
  <row Id="5059" PostTypeId="2" ParentId="5034" CreationDate="2010-09-18T04:06:37.830" Score="4" ViewCount="" Body="&lt;p&gt;Depends on how your want to define AI.  The working definition I was given in my intro to AI class was:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;AI is any program that does something computers are not traditionally good at but humans are.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Examples being game AI, natural language processing, image processing, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming such a definition for AI, there's no 'minimal requirements'- a Tic-Tac-Toe AI is just a simple decision tree, for example.  For a small enough subset of NLP, &quot;Hello World&quot; is AI.  There's no real answer to your question in that regard.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-18T04:06:37.830" CommentCount="3" />
  <row Id="5060" PostTypeId="2" ParentId="5037" CreationDate="2010-09-18T04:08:25.283" Score="5" ViewCount="" Body="&lt;p&gt;None.  Granted, there have been a number of them that have lead to many, many trips to the bar after spending a day working in it (Informix-4GL comes to mind).  But overall I've learned something valuable from every language I've spent time in.&lt;/p&gt;&#xA;" OwnerUserId="62" LastActivityDate="2010-09-18T04:08:25.283" CommentCount="3" />
  <row Id="5061" PostTypeId="2" ParentId="3241" CreationDate="2010-09-18T04:13:53.527" Score="5" ViewCount="" Body="&lt;p&gt;The equilibrium percentage of total capacity allocated to defect-fixing is equal to the &lt;em&gt;defect injection rate&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many factors can affect this rate, among them, of course: what kind of product the team is developing, what technologies and technical practices they use, the team's skill level, the company culture, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Considering Team B, if they create on average 8 units of rework for every 10 units of work they complete, then working those 8 units will create new 6.4 units of rework.  We can estimate the total effort they will eventually have to expend as the sum of a geometric progression:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;10 + 8 + 6.4 + 5.12 + ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The number of bugs will decrease exponentially with time, but Team B has such a coefficient in their exponent that it will go to zero very slowly.  Actually, the sum of the first three terms in the above series is only 24.4; of the first five, 33.6; of the first 10, 45; of the entire series, 50.  So, Team B summary: defect injection rate, 0.8; feature development, 10/50 = 20%; defect-fixing, 80%.  20/80 is their sustainable capacity allocation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By contrast, Team A is in much better shape.  Their progression looks like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;40 + 10 + 2.5 + 0.625 + ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The sum of this series is 53 1/3, so Team A's feature development allocation is 40/(53 1/3) = 75% and defect-fixing allocation is 25%, which matches their defect injection rate of 10/40 = 0.25.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, all terms in Team A's series after the first three are negligibly small.  What this means in practical terms is that Team A can probably squash all their bugs with a couple of maintenance releases, the second release being pretty small in scope.  This also creates an illusion that &lt;strong&gt;any&lt;/strong&gt; team can do that.  But not Team B.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I thought about this equivalence while reading &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0984521402&quot; rel=&quot;nofollow&quot;&gt;David Anderson's new book, &quot;Kanban&quot;&lt;/a&gt;.  When discussing software quality, Anderson quotes &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201485427&quot; rel=&quot;nofollow&quot;&gt;this book, by Capers Jones, &quot;Software Assessments, Benchmarks, and Best Practices&quot;&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;...in 2000... measured software quality for North American teams... ranged from 6 defects per function point down to less than 3 per 100 function points, a range of 200 to 1.  &lt;strong&gt;The midpoint is approximately 1 defect per 0.6 to 1.0 function points.  This implies that it is common for teams to spend more than 90 percent of their effort fixing defects.&lt;/strong&gt;&quot;  He cites an example provided by one of his colleagues of a company that spends 90% of the time fixing their bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fluency with which Anderson goes from the defect injection rate to the defext-fixing capacity allocation (which he later in his book terms the &quot;&lt;em&gt;failure load&lt;/em&gt;&quot;) suggests that the equivalence of the two things is well known to software quality researchers and has probably been known for some time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key words in the line of reasoning that I'm trying to present here are &quot;equlibrium&quot; and &quot;sustainable&quot;.  If we take away sustainability, then there's an obvious way to cheat these numbers: you do the initial coding, then move on to code somewhere else, and leave maintenance to others.  Or you run up the technical debt and unload it on a new owner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, no particular allocation will suit all teams.  If we decreed that 20% must be spent on bugs, then, if a team has an ultra-low defect injection rate, they will simply not have enough bugs to fill the time, and if a team had a very high rate, their bugs will continue to accumulate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The math I used here is way simplified.  I neglected things like transation costs (planning and estimation meetings, post-mortems, etc.), which would affect the percentages somewhat.  I also omitted equations simulating sustaining one product and developing another one concurrently.  But the conclusion still stands.  Do what you can, in terms of technical practices, like unit-testing, continuous integration, code reviews, etc., to reduce your defect injection rate and, consequently, your failure load.  If you can create only one bug for every 10 features, you will have a lot of free time to develop new features and satisfy your customers.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-09-18T04:13:53.527" />
  <row Id="5062" PostTypeId="2" ParentId="2291" CreationDate="2010-09-18T04:16:08.397" Score="0" ViewCount="" Body="&lt;p&gt;Fortran IV LSU 1975&lt;/p&gt;&#xA;" OwnerUserId="2534" LastActivityDate="2010-09-18T04:16:08.397" CommunityOwnedDate="2010-09-18T04:16:08.397" />
  <row Id="5063" PostTypeId="2" ParentId="5034" CreationDate="2010-09-18T04:16:33.173" Score="10" ViewCount="" Body="&lt;p&gt;Any program in which the decisions made at time &lt;em&gt;t&lt;/em&gt; are impacted by the outcome of decisions made at time &lt;em&gt;t-1&lt;/em&gt;.  It learns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A very simple construct within the field of Neural Networks is a &lt;a href=&quot;http://en.wikipedia.org/wiki/Perceptron&quot; rel=&quot;nofollow&quot;&gt;Perceptron&lt;/a&gt;.  It &lt;em&gt;learns&lt;/em&gt; by adjusting weights given to different input values based on the accuracy of the result.  It is &lt;em&gt;trained&lt;/em&gt; with a known set of good inputs.  Here is an article that covers the theory behind a &lt;a href=&quot;http://www.computing.dcu.ie/~humphrys/Notes/Neural/single.neural.html&quot; rel=&quot;nofollow&quot;&gt;single layer Perceptron network&lt;/a&gt; including an introduction to the the proof that networks of this type can solve specific types of problems:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If the exemplars used to train the perceptron are drawn from two linearly separable classes, then the perceptron algorithm converges and positions the decision surface in the form of a hyperplane between the two classes.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Here is a &lt;a href=&quot;http://www.bcp.psych.ualberta.ca/~mike/Book3/pdfstuff/Chapter11.pdf&quot; rel=&quot;nofollow&quot;&gt;book chapter&lt;/a&gt; in PDF form that covers the topic.  Here is an &lt;a href=&quot;http://www.cs.nott.ac.uk/~gxk/courses/g5aiai/006neuralnetworks/perceptron.xls&quot; rel=&quot;nofollow&quot;&gt;Excel Spreadsheet&lt;/a&gt; that explains a bit more with a concrete example. And finally, here is a beautiful &lt;a href=&quot;http://intsys.mgt.qub.ac.uk/notes/perceptr.html&quot; rel=&quot;nofollow&quot;&gt;Javascript Example&lt;/a&gt; that you can watch learn.  &lt;/p&gt;&#xA;" OwnerUserId="1609" LastEditorUserId="1609" LastEditorDisplayName="" LastEditDate="2010-09-18T16:58:22.260" LastActivityDate="2010-09-18T16:58:22.260" CommentCount="5" />
  <row Id="5064" PostTypeId="2" ParentId="368" CreationDate="2010-09-18T04:26:46.733" Score="4" ViewCount="" Body="&lt;p&gt;One reason is that &lt;strong&gt;people trust what others say instead of what they see&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;According what I was told when I first started programming, Java is &quot;slower&quot; than C++, and reason why Java could be used is because it's &quot;convenient and easier&quot;. It's very commonly believed that Java brings Safety and convenience, at the cost of performance. Even when later C# is invented people believe it's faster than Java because it's &quot;native&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the truth people see without sensing it, is that, eclipse, the IDE that's built with Java, is absolutely the FASTEST IDE in class. I've used nearly all main stream IDEs, those from MS and GNU, Borland..., eclipse is the absolute king, of IDEs, largely because of it's fast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another reason is its &lt;strong&gt;long start up time&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java is not suitable for developing a tiny app that stay in system tray, consumes a little memory, popup a dialog reminding you to take a break; or a notepad that you use to open a text file, read it and close it. It should be used on something BIG, like a web server that's always there, make optimized use of you computing resource, respond to millions of requests every hour. Or an IDE like eclipse that manage thousands of workspace files. You don't know you Java app is fast until it has run for at least several hours, I believe.&lt;/p&gt;&#xA;" OwnerUserId="2347" LastEditorUserId="2347" LastEditorDisplayName="" LastEditDate="2010-09-18T06:08:56.050" LastActivityDate="2010-09-18T06:08:56.050" CommentCount="10" />
  <row Id="5065" PostTypeId="2" ParentId="5057" CreationDate="2010-09-18T04:26:56.613" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Replacing a function and depreciating the original or to end of life support for a particular API that has fallen out of favor requires little explanation.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Actually, that's not entirely true. Indeed, WinAPI has traditionally made supporting APIs &lt;em&gt;long&lt;/em&gt; past their &quot;best before&quot; date &lt;a href=&quot;http://www.joelonsoftware.com/articles/APIWar.html&quot; rel=&quot;nofollow&quot;&gt;a matter of policy&lt;/a&gt;. There's something to be said for making sure your new API is actually able to completely replace your old before marking them for destruction&lt;sup&gt;*&lt;/sup&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And this is doubly true for languages, as patching old programs to replace now-missing syntax or adjust for a changed interpretation can be far more tedious and error-prone than simply replacing one API call with another (or introducing a compatibility library).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, programmers&lt;sup&gt;†&lt;/sup&gt; tend to see things in black and white: if they don't use a given feature, and &lt;em&gt;especially&lt;/em&gt; if they don't use a feature because it once gave them problems, then that feature is undoubtedly unnecessary, and probably too dangerous for other&lt;sup&gt;‡&lt;/sup&gt; programmers to be using either - therefore, it should be purged from the language without delay for the good of all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;*&lt;sub&gt;and that &quot;something&quot; is: &quot;oh, if only Microsoft would actually &lt;em&gt;do&lt;/em&gt; this rather than releasing and then abandoning one half-baked API after another...&quot;&lt;/sub&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;†&lt;sub&gt;especially the ones who take &quot;...considered harmful&quot; essays seriously&lt;/sub&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;‡&lt;sub&gt;lesser&lt;/sub&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-18T04:26:56.613" CommentCount="1" />
  <row Id="5066" PostTypeId="2" ParentId="4969" CreationDate="2010-09-18T04:32:35.150" Score="1" ViewCount="" Body="&lt;p&gt;This has nothing to do with me, but this is one of the coolest things I've recently seen somebody -- Mike Davey -- devote massive amounts of coding (and building) effort: &lt;a href=&quot;http://www.aturingmachine.com/&quot; rel=&quot;nofollow&quot;&gt;A Turing Machine&lt;/a&gt;. It is such a beautiful incarnation of a fundamental theoretical concept into quite practical control and signal processing circuits, not to mention the firmware! &lt;/p&gt;&#xA;" OwnerUserId="2540" LastActivityDate="2010-09-18T04:32:35.150" CommentCount="1" />
  <row Id="5067" PostTypeId="2" ParentId="4889" CreationDate="2010-09-18T04:38:00.283" Score="10" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Go to your garage (or your parents' garage).&lt;/li&gt;&#xA;&lt;li&gt;Open the tool box.&lt;/li&gt;&#xA;&lt;li&gt;If you see more than one tool, think about how that applies to your question.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If you have no toolbox, or only have one of those little hammers with the screwdriver bits in the hollow handle, then I have great sympathy for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously.  If you go to an auto shop, does your mechanic have only one single do-it-all tool in his toolchest?  He (or she) is a professional, with professional-grade tools specifically designed to perform various automobile repair tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, professional software developers should possess a sufficient set of tools to perform his/her trade.  If you open your toolbox and see only [the software equivalent of ] a Philips screwdriver, then you cannot consider yourself a professional.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can turn a bolt with an open-end wrench, a box-end wrench, a ratchet wrench, or an adjustable wrench. You can even turn a bolt in a pinch with slip-joint pliers, clumsily, with minor to severe damage. But it is quite difficult to turn a bolt with a sledge hammer.&lt;/p&gt;&#xA;" OwnerUserId="2534" LastEditorUserId="1996" LastEditorDisplayName="" LastEditDate="2011-03-24T15:57:38.040" LastActivityDate="2011-03-24T15:57:38.040" CommunityOwnedDate="2011-03-24T12:24:29.673" CommentCount="2" />
  <row Id="5068" PostTypeId="2" ParentId="5019" CreationDate="2010-09-18T04:41:24.740" Score="0" ViewCount="" Body="&lt;p&gt;Would an astronaut 'aspire' to work behind a desk at mission control?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually I find this question a bit offensive.  I'm a 'mere' programmer, yet do everything a supposed 'architect' does and a hell of a lot more.  &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-18T04:41:24.740" />
  <row Id="5069" PostTypeId="2" ParentId="2233" CreationDate="2010-09-18T04:56:15.380" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Notebook or paper for taking notes, ideas, scratch.  Computers are great, but sometimes it is quicker to draw a picture or make a notation.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Clear desk space for drinks coaster, an arm's length away from keyboards, laptops, etc. (From experience.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2534" LastActivityDate="2010-09-18T04:56:15.380" CommunityOwnedDate="2010-09-18T04:56:15.380" />
  <row Id="5070" PostTypeId="2" ParentId="5037" CreationDate="2010-09-18T05:02:05.973" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.muppetlabs.com/~breadbox/bf/&quot; rel=&quot;nofollow&quot;&gt;Brainfuck&lt;/a&gt;... Do I really need to provide the reasons?&lt;/p&gt;&#xA;" OwnerUserId="2543" LastActivityDate="2010-09-18T05:02:05.973" />
  <row Id="5071" PostTypeId="2" ParentId="4969" CreationDate="2010-09-18T05:09:24.573" Score="0" ViewCount="" Body="&lt;p&gt;I wrote a free game for iPhone and iPod Touch using Objective-c and c.  (&lt;strong&gt;warning&lt;/strong&gt;: shameless plug)  Here's a link to the &lt;a href=&quot;http://www.cheeseislandgame.com&quot; rel=&quot;nofollow&quot;&gt;website&lt;/a&gt; and &lt;a href=&quot;http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=371286375&amp;amp;mt=8&quot; rel=&quot;nofollow&quot;&gt;iTunes&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1067" LastActivityDate="2010-09-18T05:09:24.573" />
  <row Id="5072" PostTypeId="2" ParentId="3886" CreationDate="2010-09-18T05:15:08.150" Score="0" ViewCount="" Body="&lt;p&gt;I prefer working in low light or no light as it keeps my eyes on monitor only, nothing else. A programmer wont need light to look at the keyboard atleast :l &lt;/p&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-09-18T05:15:08.150" />
  <row Id="5073" PostTypeId="2" ParentId="5055" CreationDate="2010-09-18T05:17:45.803" Score="2" ViewCount="" Body="&lt;p&gt;You might try &lt;a href=&quot;http://stackoverflow.carsonified.com/&quot; rel=&quot;nofollow&quot;&gt;DevDays&lt;/a&gt;.  Dunno how close it will be to you.  But it was pretty awesome when I went... and I believe the cost is only $99.&lt;/p&gt;&#xA;" OwnerUserId="1067" LastActivityDate="2010-09-18T05:17:45.803" CommentCount="1" />
  <row Id="5074" PostTypeId="1" CreationDate="2010-09-18T05:33:00.857" Score="3" ViewCount="94" Body="&lt;p&gt;What are the preferred use cases for the following sets of terms:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Log in / Log out&lt;/li&gt;&#xA;&lt;li&gt;Log on / Log off&lt;/li&gt;&#xA;&lt;li&gt;Sign in / Sign out&lt;/li&gt;&#xA;&lt;li&gt;Sign on / Sign off&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;From what I can guess, &quot;Logging in&quot; should be used for a long-lived session (like a website), whereas &quot;Sign in&quot; should be for something that you will be attending to (like IM or a financial transaction).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a little fuzzy here...&lt;/p&gt;&#xA;" OwnerUserId="2544" LastActivityDate="2010-09-18T11:16:11.607" Title="What are the proper uses of the various &quot;Sign-in&quot; terminologies?" Tags="&lt;jargon&gt;&lt;terminology&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="2" />
  <row Id="5075" PostTypeId="2" ParentId="5074" CreationDate="2010-09-18T05:39:34.823" Score="1" ViewCount="" Body="&lt;p&gt;I've always used Login/Logout without the space.   I notice that Microsoft is preferential to Sign in/Sign out.&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-09-18T05:39:34.823" CommentCount="1" />
  <row Id="5076" PostTypeId="2" ParentId="4889" CreationDate="2010-09-18T05:56:10.450" Score="6" ViewCount="" Body="&lt;p&gt;A different kind of answer to the others - I actually think there &lt;em&gt;is potential&lt;/em&gt; for a language to become a &quot;universal&quot; one, allowing the features and paradigms of many other languages, though not perhaps a strictly designed language you might be thinking of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To use &lt;a href=&quot;http://programmers.stackexchange.com/questions/4889/why-cant-there-be-an-universal-programming-language-that-serves-all-purposes/4924#4924&quot;&gt;brettmjohnson's analogy&lt;/a&gt; above, the idea that each programming language is the tool inside a box (or on a swiss army knife) is the assumption everyone is making, but is really a flawed assumption. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What if the programming language was the toolbox?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mean, what if you can add and remove features from the language as you please, and have your own toolbox with the tools you need in it - even if the tools are for different purposes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The concept exists partially already. For example, languages like &lt;a href=&quot;http://nemerle.org/Main_Page&quot; rel=&quot;nofollow&quot;&gt;Nemerle&lt;/a&gt; allow you to &lt;a href=&quot;http://nemerle.org/Macros_tutorial#Adding_new_syntax_to_the_compiler&quot; rel=&quot;nofollow&quot;&gt;add syntax to the language&lt;/a&gt;, and as such, you might be able to take &quot;the best feature from language X&quot;, and add it to Nemerle (or your own). This doesn't necessarily mean writing your own macros all the time either - each language (or paradigm) could be defined inside a macro in a standard library - such that a you could &lt;code&gt;import Haskell; import Prolog;&lt;/code&gt;, and begin writing the two languages as if it were part of your language?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question then is - how do you get the features of different languages/paradigms to work with each other? While I can't answer that, frameworks like .Net and JVM offer some of the solution - the languages are at least partially compatible because of the way they're compiled. You can take any code written in C# for example, and use it from F# without complaints. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The 'problem' with the solution as it is today, is that using these languages together requires you to create them as separate projects, which cannot reference each other - you can only have a 1 way reference. The language barrier is that each project compiles all it's files separately to Common Intermediate Language before any other project can access it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A stepping stone towards removing that barrier would be to allow code of different languages (eg, C# and F#) to compile inside the same project. In theory you could compile each file separately (or in groups - if they have partial types or circular references), and then compile files of a different language which can access those already compiled (CIL) objects. You would need to strictly define the order of compilation for this to work though - but order of compilation is already required in the case of F#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, I'm not saying &quot;there can definitely be a universal language&quot;. I'm suggesting that there's the potential for much better interoperability between languages that what currently exists. In reality, it's not likely to improve greatly very soon, just because of the huge amount of work it is to implement a language and the libraries, the tools etc. needed to use it.&lt;/p&gt;&#xA;" OwnerUserId="356" LastActivityDate="2010-09-18T05:56:10.450" CommunityOwnedDate="2011-03-24T12:24:29.673" />
  <row Id="5077" PostTypeId="2" ParentId="5074" CreationDate="2010-09-18T06:05:51.637" Score="0" ViewCount="" Body="&lt;p&gt;There &lt;em&gt;isn't&lt;/em&gt; a &quot;proper use.&quot; It's all preference. They're all synonyms, as far as the Web At Large is concerned.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-09-18T06:05:51.637" />
  <row Id="5078" PostTypeId="2" ParentId="5019" CreationDate="2010-09-18T06:12:26.493" Score="7" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/00000/1000/800/1890/1890.strip.gif&quot; alt=&quot;code monkey&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1303" LastActivityDate="2010-09-18T06:12:26.493" />
  <row Id="5079" PostTypeId="2" ParentId="5074" CreationDate="2010-09-18T06:15:03.460" Score="0" ViewCount="" Body="&lt;p&gt;There are benefits for signing on.&lt;/p&gt;&#xA;" OwnerUserId="356" LastActivityDate="2010-09-18T06:15:03.460" CommentCount="1" />
  <row Id="5080" PostTypeId="2" ParentId="5057" CreationDate="2010-09-18T06:27:11.293" Score="3" ViewCount="" Body="&lt;p&gt;One reason you'd want to remove a feature from a language is because it makes it very easy for a programmer to shoot themselves in the foot, and there's no reasonable mechanism to prevent them from doing so beyond a documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To use an example, the &lt;a href=&quot;http://en.wikipedia.org/wiki/Call_super&quot; rel=&quot;nofollow&quot;&gt;call super&lt;/a&gt; anti-pattern is a pain should you ever encounter it. While it's a very easy problem to solve from the POV of the implementor, the consumer is stuck with a broken tool - he doesn't know his code is broken until he runs it. (and my not find that out immediately).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to, &quot;features for improving&quot; this problem - there aren't really any, so far as adding attributes to the base method to instruct the compiler to throw an error if an overridden method in a derived class forgets to call the base. Eg, mark it with &lt;code&gt;[CallSuper]&lt;/code&gt; (for .Net) to require that derived classes call the base - but then you've still not solved the problems. Does the derived class call the base before or after (or inbetween) his implementation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you simply remove the ability to call the base method from within a derived one, you eliminate this problem completely - because the implementor will be forced to implement the solution, which is the way he should've done it anyway.&lt;/p&gt;&#xA;" OwnerUserId="356" LastActivityDate="2010-09-18T06:27:11.293" />
  <row Id="5081" PostTypeId="1" CreationDate="2010-09-18T06:30:21.767" Score="2" ViewCount="297" Body="&lt;p&gt;I am a C#/.net developer with DirectX experience and I'm using backend as SQL server, I have one year experience in that field and my current work experience is also of 1 year, I am in small concern, can I get a good job and a good income with these skills? Especially as I'm good in C#/.Net.am i need to know asp.net for further career growth&lt;/p&gt;&#xA;" OwnerUserId="2384" LastEditorUserId="2384" LastEditorDisplayName="" LastEditDate="2010-12-10T10:49:39.270" LastActivityDate="2010-12-10T10:49:39.270" Title="Career advice for programmer" Tags="&lt;c#&gt;&lt;career-advice&gt;" AnswerCount="3" CommentCount="7" />
  <row Id="5082" PostTypeId="2" ParentId="4614" CreationDate="2010-09-18T06:39:20.157" Score="3" ViewCount="" Body="&lt;p&gt;I learned the answer to this question in a book about Texas Hold'em poker, but it applies to all frustrating endeavors. The best coders never go on tilt. Going on Tilt is the time when something doesn't work as you expected, and you respond in a way that creates exponential mistakes in the overall application. In tournament poker it causes you to place bad bets and get knocked out. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In programming, tilt causes you to pull out your hair and write ridiculous patches of code that only work in certain instances of your application. Tilt causes programmers to ignore the needs of the project as a whole, grasping for instant gratification to solve the immediate problem now. Often times the problem gets solved today, but the application suffers tomorrow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best coders take the tilt concept and manage it in a way that allows them to look at problems from an outside perspective, always. If that fails drink some caffeine.&lt;/p&gt;&#xA;" OwnerUserId="2548" LastActivityDate="2010-09-18T06:39:20.157" CommunityOwnedDate="2011-04-05T15:40:39.513" CommentCount="2" />
  <row Id="5083" PostTypeId="2" ParentId="3886" CreationDate="2010-09-18T06:41:17.297" Score="0" ViewCount="" Body="&lt;p&gt;I'm a typical developer mushroom. They keep me in the dark and feed me manure. But I prefer a medium level of light. Enough that there's no real dark spots, but enough that there's no glare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that this is really a moot question though: Most offices are by any standard I've ever seen for ergonomics too brightly lit and with the wrong kind of lights / light bulbs. I've only been in one office where they actually measured the light and made sure it was the right brightness and color temperature according to an ergonomics guideline. It was pretty remarkable how many lights they pulled out. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My current office, if we hadn't popped out bulbs and generally only leave one bank of lights on, we'd have 1/4 of the ceiling lit up with the typical 3 bulb/4 foot long fixture you find at least in the States. My kitchen is very brightly lit with ONE 2 bulb fixture.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-18T06:41:17.297" />
  <row Id="5084" PostTypeId="2" ParentId="3851" CreationDate="2010-09-18T06:55:47.187" Score="2" ViewCount="" Body="&lt;p&gt;Quiet obviously when a programmer writes A LOT of code. Very large functions, maybe copy/paste lines or code blocks, using way more ifs then necessary, etc. This could be because the programmer doesnt know a standard function to do what he wants but much of the time it isnt.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-18T06:55:47.187" CommunityOwnedDate="2010-12-13T18:51:52.480" />
  <row Id="5085" PostTypeId="2" ParentId="4693" CreationDate="2010-09-18T06:56:43.113" Score="5" ViewCount="" Body="&lt;p&gt;You've got shy/asshole confusion. A &lt;a href=&quot;http://en.wikipedia.org/wiki/Larry_david&quot; rel=&quot;nofollow&quot;&gt;Larry David&lt;/a&gt; quote sums it up:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Larry: I don't know why you call him&#xA;  an asshole. He's not an asshole, he's&#xA;  just shy.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Cheryl: No, he's not shy. He thinks&#xA;  he's smarter than everybody else and&#xA;  he sits there and he judges and he-&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Larry: No, he doesn't, he's just shy!&#xA;  You've got shy/asshole confusion, my&#xA;  friend.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2548" LastActivityDate="2010-09-18T06:56:43.113" CommunityOwnedDate="2010-09-19T15:29:19.433" />
  <row Id="5087" PostTypeId="2" ParentId="4879" CreationDate="2010-09-18T07:39:55.253" Score="2" ViewCount="" Body="&lt;p&gt;For me, an IDE with autocomplete is important. A programming language that requires less keystrokes &lt;em&gt;would be&lt;/em&gt; nice (type less, read less) but keeping it understandable (unlike &lt;a href=&quot;http://en.wikipedia.org/wiki/J_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;J&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keyboard layout: I don't think it's a problem. I switched the layout a few times (US/CH, PC/Mac), and after some time the brain adjusted. Code generation: I avoid them, except to generate getters, setter, and implement an interface.&lt;/p&gt;&#xA;" OwnerUserId="2217" LastActivityDate="2010-09-18T07:39:55.253" CommentCount="1" />
  <row Id="5088" PostTypeId="2" ParentId="5015" CreationDate="2010-09-18T07:49:01.357" Score="0" ViewCount="" Body="&lt;p&gt;We do this by creating two tasks instead of one:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;a task to estimate work to be done&lt;/li&gt;&#xA;&lt;li&gt;a task to actually do the work (within the estimates made)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;You can estimate the first with poker, and, after the &quot;long&quot; estimation is completed, you have enough information to estimate the second.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, sometimes it results in conclusion that this work is too expensive to be done.  But unless you actually spend work on its estimation, you can't know it anyway.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-09-18T07:49:01.357" />
  <row Id="5089" PostTypeId="2" ParentId="4693" CreationDate="2010-09-18T07:52:40.530" Score="26" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;“Being a creator of software systems is like being a god. Only without the omnipotence, omnipresence or omniscience.”&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;— Brent Snook (@&lt;a href=&quot;http://twitter.com/brentsnook/statuses/23905614232&quot; rel=&quot;nofollow&quot;&gt;brentsnook&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="415" LastActivityDate="2010-09-18T07:52:40.530" CommunityOwnedDate="2010-09-18T07:52:40.530" CommentCount="4" />
  <row Id="5091" PostTypeId="2" ParentId="4662" CreationDate="2010-09-18T08:22:56.273" Score="2" ViewCount="" Body="&lt;p&gt;So you want to stick to one language/technology for the time being (long-term relationship). Well, if I were you, I wouldn't do that. Actually I already did it twice and the outcome is bad. I was once Object Pascal (or Delphi as many people call it). It was fun, but the job market dried out. Now I stick to Localization/Internationalization programming niche. No good career perspectives either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I am going to do (and in fact what I am doing) is to learn &lt;strong&gt;constantly&lt;/strong&gt; and try out new things like Google Go, Scala, new frameworks and/or programming models. I am afraid that if you want long-term job security, it is the only way to go.&lt;/p&gt;&#xA;" OwnerUserId="2554" LastActivityDate="2010-09-18T08:22:56.273" />
  <row Id="5092" PostTypeId="2" ParentId="5074" CreationDate="2010-09-18T08:40:35.533" Score="0" ViewCount="" Body="&lt;p&gt;SO sites goes with Log in and Log out! So it could a standard way!&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-09-18T08:40:35.533" />
  <row Id="5093" PostTypeId="2" ParentId="4693" CreationDate="2010-09-18T08:57:32.793" Score="3" ViewCount="" Body="&lt;p&gt;Arrogance is a job requirement for a software developer. It is the confidence-builder that lets you keep walking toward the thin cutting edge. It's what lets you forget that your knowledge will be old in a year, you've never seen this new technology before, you have only a dim understanding of what you're doing, but who cares since you'll figure it all out somehow.&lt;/p&gt;&#xA;" OwnerUserId="2559" LastActivityDate="2010-09-18T08:57:32.793" CommunityOwnedDate="2010-09-19T15:29:19.433" />
  <row Id="5094" PostTypeId="2" ParentId="4863" CreationDate="2010-09-18T09:03:34.850" Score="12" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Fantom_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Fantom&lt;/a&gt; is a OOP/Functional language with Actor model target to JRE, CLR and Javascript. Static and dynamic type system. Simplicity, elegance and modern useful concepts.&lt;/p&gt;&#xA;" OwnerUserId="2325" LastActivityDate="2010-09-18T09:03:34.850" CommunityOwnedDate="2010-10-22T23:54:06.263" />
  <row Id="5095" PostTypeId="2" ParentId="4863" CreationDate="2010-09-18T09:08:57.190" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Cobra_%28programming_language_from_Cobra_Language_LLC%29&quot; rel=&quot;nofollow&quot;&gt;Cobra&lt;/a&gt; is inspired on Python, C#, Eiffel and Objective C. Good for scripting or large projects.&lt;/p&gt;&#xA;" OwnerUserId="2325" LastActivityDate="2010-09-18T09:08:57.190" CommunityOwnedDate="2010-10-22T23:54:06.263" CommentCount="1" />
  <row Id="5096" PostTypeId="2" ParentId="4969" CreationDate="2010-09-18T09:12:22.293" Score="14" ViewCount="" Body="&lt;p&gt;It was for one of MSc courses. We had to make a quad rotor fly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It involved:&#xA;- writing software for estabilishing the link between PC and QR&#xA;- writing software that will stabilize the device in air&#xA;- writing a fancy PC client that will display information during flight&#xA;- make a link (through PC) from joystick to QR&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/74c19.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of our first engine tests: &lt;a href=&quot;http://www.youtube.com/watch?v=42wI6Z4ZZ2g&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=42wI6Z4ZZ2g&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tech details:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Programming language: C&lt;/li&gt;&#xA;&lt;li&gt;Platform (PC): Linux&lt;/li&gt;&#xA;&lt;li&gt;GUI: Gtk&lt;/li&gt;&#xA;&lt;li&gt;QR having an Nexys2 Spartan 3E FPGA&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-09-18T09:12:22.293" CommentCount="1" />
  <row Id="5097" PostTypeId="2" ParentId="2254" CreationDate="2010-09-18T09:30:29.573" Score="5" ViewCount="" Body="&lt;p&gt;I don't know if it is a good to programming but seems interesting: &lt;a href=&quot;http://www.datahand.com/&quot; rel=&quot;nofollow&quot;&gt;DataHand&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/wHW2o.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2325" LastActivityDate="2010-09-18T09:30:29.573" CommunityOwnedDate="2011-01-17T21:43:24.260" CommentCount="1" />
  <row Id="5098" PostTypeId="2" ParentId="2410" CreationDate="2010-09-18T09:37:02.777" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.artima.com/intv/garden.html&quot; rel=&quot;nofollow&quot;&gt;Gardenning&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2325" LastActivityDate="2010-09-18T09:37:02.777" CommunityOwnedDate="2011-03-03T17:06:14.173" />
  <row Id="5099" PostTypeId="2" ParentId="4863" CreationDate="2010-09-18T09:57:28.693" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://ooc-lang.org/&quot; rel=&quot;nofollow&quot;&gt;OOC&lt;/a&gt; -- C++ light. &lt;/p&gt;&#xA;" OwnerUserId="2051" LastActivityDate="2010-09-18T09:57:28.693" CommunityOwnedDate="2010-10-22T23:54:06.263" CommentCount="3" />
  <row Id="5100" PostTypeId="2" ParentId="4693" CreationDate="2010-09-18T10:06:18.493" Score="18" ViewCount="" Body="&lt;p&gt;Arrogance for a programmer it's not a luxury but a necessity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Larry_Wall&quot; rel=&quot;nofollow&quot;&gt;Larry Wall&lt;/a&gt; in his famous book &lt;em&gt;Programming Perl&lt;/em&gt; said:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3 Virtues of a Programmer are:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Lazines&lt;/li&gt;&#xA;&lt;li&gt;Impatience&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Hubris&lt;/strong&gt;--Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won't want to say bad things about.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I wish all programmers would be like Larry Wall.&lt;/p&gt;&#xA;" OwnerUserId="343" LastActivityDate="2010-09-18T10:06:18.493" CommunityOwnedDate="2010-09-19T15:29:19.433" CommentCount="1" />
  <row Id="5101" PostTypeId="2" ParentId="4969" CreationDate="2010-09-18T10:15:44.317" Score="0" ViewCount="" Body="&lt;p&gt;5 years ago, I wrote a web-based DXF viewer with a combination of PHP to encode to SVG, and ActionScript to render the SVG. Getting good performance was tricky. The PHP engine uses lots of regex parsing, and the Flash engine uses a cooperative multi-threading engine with prioritized layers to allow the background content to stream in while the user is interacting with the DXF file.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-18T10:15:44.317" />
  <row Id="5102" PostTypeId="2" ParentId="5081" CreationDate="2010-09-18T10:16:45.157" Score="1" ViewCount="" Body="&lt;p&gt;You'll need to get more experience under your belt before you can expect the big bucks. Your best bet is to get a junior role in a company that will help you to develop your skills and where you can get real-world development experience. The more experience you get, the more valuable your skills become as you will have seen more of the unusual problems and learned how to solve them!&lt;/p&gt;&#xA;" OwnerUserId="2568" LastActivityDate="2010-09-18T10:16:45.157" />
  <row Id="5103" PostTypeId="2" ParentId="5048" CreationDate="2010-09-18T10:22:06.210" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;My vote is for implicit semicolons in&#xA;  JavaScript.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The thing is, in languages that don't require line termination, you have to put in continuation characters...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;JavaScript (Chosen because you do need to end your lines)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var myString = &quot;Hello world&quot; + someOtherVariable +&#xA;    &quot; and some more text&quot;;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Classic ASP (Chosen because you don't need to end your lines)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Dim myString = &quot;Hello world&quot; &amp;amp; someOtherVariable &amp;amp; _&#xA;    &quot;and some more text&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So you need to &quot;hint&quot; to any language about lines of code. I actually prefer line termination to line continuation in this respect.&lt;/p&gt;&#xA;" OwnerUserId="2568" LastActivityDate="2010-09-18T10:22:06.210" CommentCount="2" />
  <row Id="5104" PostTypeId="2" ParentId="4969" CreationDate="2010-09-18T10:49:07.573" Score="0" ViewCount="" Body="&lt;p&gt;Software that &lt;strong&gt;back-ups&lt;/strong&gt; a folder to a sub folder (that contains current &lt;strong&gt;date and time&lt;/strong&gt;) of another folder.&lt;br&gt;&#xA;Was specific for a customer of our computer store, only sold a small amount of it... But worth the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An &lt;strong&gt;order list&lt;/strong&gt; for the same computer store to tracks orders (+ customers) from hardware distributors...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haven't yet written something more impressive (that I finished) but I will do over the next months/years. :-)&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-18T10:49:07.573" />
  <row Id="5108" PostTypeId="2" ParentId="2410" CreationDate="2010-09-18T11:12:01.367" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.artima.com/weblogs/viewpost.jsp?thread=255898&quot; rel=&quot;nofollow&quot;&gt;Writing Software Is Like... Writing!&lt;/a&gt; ^^&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-18T11:12:01.367" CommunityOwnedDate="2011-03-03T17:06:14.173" />
  <row Id="5109" PostTypeId="2" ParentId="5074" CreationDate="2010-09-18T11:16:11.607" Score="0" ViewCount="" Body="&lt;p&gt;They are all similar, occasionally you might even see Enter / Exit or Start / Stop or ...&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-18T11:16:11.607" />
  <row Id="5112" PostTypeId="2" ParentId="5081" CreationDate="2010-09-18T12:20:00.343" Score="1" ViewCount="" Body="&lt;p&gt;With only one year experience you will need to get more experience before your pay will go up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the meantime, always learn new things while developing your skills via your job as well!&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-09-18T12:20:00.343" />
  <row Id="5113" PostTypeId="1" CreationDate="2010-09-18T12:37:11.360" Score="13" ViewCount="622" Body="&lt;p&gt;It's no secret that programming is a profession that involves few physical activities.  Brute force as well is not used (normally) by programmers to solve problems they encounter at work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No wonder that some programmers disregard keeping their bodies in shape.  And no wonder that treatment of fat, weak and unhealthy people is OK amongst programmers.  That's how things should be in a healthy society.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I started noticing exactly the opposite.  If a man or a woman is in a good shape*, works out a lot, he or she is treated with suspicion.  It seems that for some people it's very hard to perceive well-built people as good programmers.  And if you look like a square-shaped bruiser, you're likely to face even hostility!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Did you encounter such treatment?  Is it common? How should it be handled?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;*for women there's also a problem when she's just beautiful, but that is a topic for other question&lt;/p&gt;&#xA;" OwnerUserId="34" LastEditorUserId="34" LastEditorDisplayName="" LastEditDate="2010-09-18T13:07:38.013" LastActivityDate="2010-11-24T20:03:42.073" Title="Does good physical shape make peers underestimate you as a programmer?" Tags="&lt;office&gt;&lt;social&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="2" />
  <row Id="5114" PostTypeId="1" CreationDate="2010-09-18T12:46:58.843" Score="3" ViewCount="191" Body="&lt;p&gt;Hi all, I am a developer with good PHP background and I want to start learning python. I would like to ask for a good resources over the web to find some interesting things related to this programming language. I need something apart from official websites and something like this, instead it will be great to find some resources where you can find for example ready to use sample codes from beginner to advanced programmer, or some forums related just to this language and so on. Also some tutorials that a easy to follow and involve interesting learning process. Thanks.&lt;/p&gt;&#xA;" OwnerUserId="1632" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T16:04:48.563" LastActivityDate="2010-10-02T16:04:48.563" Title="Which good Python resources is available?" Tags="&lt;learning&gt;&lt;python&gt;&lt;resources&gt;" AnswerCount="3" FavoriteCount="3" />
  <row Id="5116" PostTypeId="2" ParentId="5114" CreationDate="2010-09-18T13:06:23.290" Score="2" ViewCount="" Body="&lt;p&gt;There are a few freely available books meant for beginners.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://learnpythonthehardway.org/index&quot; rel=&quot;nofollow&quot;&gt;Learn Python the Hard Way&lt;/a&gt; by Zed Shaw&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://diveintopython.org/&quot; rel=&quot;nofollow&quot;&gt;Dive Into Python&lt;/a&gt; by Mark Pilgrim&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.ibiblio.org/swaroopch/byteofpython/read/&quot; rel=&quot;nofollow&quot;&gt;A Byte of Python&lt;/a&gt; by Swaroop C. H.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In case you haven't found it yet, there is a great &lt;a href=&quot;http://docs.python.org/tutorial/&quot; rel=&quot;nofollow&quot;&gt;official tutorial&lt;/a&gt; as well.&lt;/p&gt;&#xA;" OwnerUserId="2313" LastActivityDate="2010-09-18T13:06:23.290" />
  <row Id="5118" PostTypeId="2" ParentId="3363" CreationDate="2010-09-18T13:14:16.437" Score="0" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;     /**&#xA;     * !!! DIRTY HACK !!!&#xA;     * !!! DO NOT USE THIS METHOD !!!&#xA;     * !!! DIRTY HACK !!!&#xA;     *&#xA;     * Set changed attribute to all vars.&#xA;     *&#xA;     * @return    self&#xA;     */&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2580" LastActivityDate="2010-09-18T13:14:16.437" CommunityOwnedDate="2010-09-18T13:14:16.437" />
  <row Id="5119" PostTypeId="1" AcceptedAnswerId="5125" CreationDate="2010-09-18T13:17:49.983" Score="7" ViewCount="153" Body="&lt;p&gt;I'm freelancing on a project where I'm the only programmer, and find myself at the end of a line of four middlemen, who stand between me and the actual customer, each passing my work as internal to their own company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Communication is terrible and the requirements, made by an advertising company, are flimsy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've managed to communicate with people upper the ladder by keeping asking questions that made people face their ignorance, but they won't let me contact the end client since, from his end, it's pretty much a done deal. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The project will soon be over though, and I've decided it's the last time I'll be working under these conditions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The middlemen, are pretty much useless from the perspective of shipping a product, but still necessary to me since they are the ones bringing the contracts in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hence I'm not thinking about crossing them altogether, which would probably end badly. Rather I'm looking for a way to make them understand I need to be part of the requirements and design process, meet the clients, and shouldn't have to go through a whole channel of clueless people each time I require some information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry for the venting :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any ideas ?&lt;/p&gt;&#xA;" OwnerUserId="2115" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T04:06:21.123" LastActivityDate="2010-09-23T04:06:21.123" Title="How to bypass middlemen?" Tags="&lt;project-management&gt;&lt;contracting&gt;&lt;freelancing&gt;" AnswerCount="2" FavoriteCount="2" />
  <row Id="5120" PostTypeId="1" AcceptedAnswerId="5128" CreationDate="2010-09-18T13:19:37.703" Score="12" ViewCount="441" Body="&lt;p&gt;Let me explain this a little.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a previous job, I had a coworker that has a good reputation with the management. He always finished on time. And the bosses were happy with his progress so het got certain privileges.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem was that the other programmers knew his secret. He has optimized the 80/20 rule, so he worked his 20 percent time to finish 80 percent of the code. The other (hard) 20% was left to the maintenance programmers. Who (not surprisingly) got penalized because of their lack of progress. But because this programmer had a good reputation with the management, it was almost imposible to shift the blame to him. (Fortunately he left the company).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is, what to do as programming team if you have such a programmer within your team. Do you try to warn management with risk of ruining your own chances? Do you accept the fact? Or are there other options.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-19T19:22:37.860" LastActivityDate="2010-09-22T15:01:00.787" Title="How to handle egocentric programmers?" Tags="&lt;behavior&gt;" AnswerCount="6" CommentCount="7" FavoriteCount="1" />
  <row Id="5121" PostTypeId="2" ParentId="5114" CreationDate="2010-09-18T13:21:48.143" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://hyperpolyglot.wikidot.com/scripting&quot; rel=&quot;nofollow&quot;&gt;Scripting language comparison&lt;/a&gt;: since you already know PHP, looking both languages side by side should be interesting&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596007973&quot; rel=&quot;nofollow&quot;&gt;Python Cookbook&lt;/a&gt;: has lots of ready to use examples&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://code.activestate.com/recipes/langs/python/&quot; rel=&quot;nofollow&quot;&gt;Python Recipes at ActiveState&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikibooks.org/wiki/Python_Programming&quot; rel=&quot;nofollow&quot;&gt;Python Wiki book&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-18T14:03:37.643" LastActivityDate="2010-09-18T14:03:37.643" CommentCount="1" />
  <row Id="5122" PostTypeId="2" ParentId="5113" CreationDate="2010-09-18T13:21:59.507" Score="7" ViewCount="" Body="&lt;p&gt;A lot of the programmers on our team are biking to work. So no problem with shape.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides biking gives you a clear mind.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-18T13:21:59.507" CommentCount="3" />
  <row Id="5124" PostTypeId="2" ParentId="5113" CreationDate="2010-09-18T13:34:15.873" Score="6" ViewCount="" Body="&lt;p&gt;If you are EXCESSIVELY in shape I believe it can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am somewhere in the middle of the road, and I have many co-workers who are in better shape than I am that are very good, but I have not run across many folks with a bodybuilder physique that are good.  The last few times the company has hired those sorts of people I recall even the fitness oriented folks making some comments that Mr Bodybuilder must spend all his time in the gym or be a dumb Jock or whatever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often they are right when you are talking about someone who obviously spends the majority of their out of work ours in a gym and dedicates a large part of their life to those activities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would not venture to guess if it is causational in one way or the other, but if you spend all your time in the gym you don't spend any of your own time improving your skills and that may results in you having less developed skills.  Conversely, if your primary love is bodybuilding your primary love is not programming.  Neither situation is ideal if you are looking for top-notch folks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, if you have some balance in your activities I think the worst grief you should expect is people giving you a hard time if you don't want to go out for burgers at the end of the day, or get some pizza during an all-nighter.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-18T13:34:15.873" CommentCount="4" />
  <row Id="5125" PostTypeId="2" ParentId="5119" CreationDate="2010-09-18T13:36:19.270" Score="2" ViewCount="" Body="&lt;p&gt;Sell the middlemen on giving some progress demos to the client then lead the client into some of the issues that you are facing during the demo.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-18T13:36:19.270" CommentCount="2" />
  <row Id="5126" PostTypeId="2" ParentId="5113" CreationDate="2010-09-18T13:36:21.797" Score="2" ViewCount="" Body="&lt;p&gt;This question is oddly phrased, but I gotta say that being 6'6&quot; and about 200 pounds with no glasses, I don't look much like a stereotypical geek, and I have encountered this situation when meeting people for the first time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Guess I need to work on that geek cred.&lt;/p&gt;&#xA;" OwnerUserId="2115" LastActivityDate="2010-09-18T13:36:21.797" CommentCount="10" />
  <row Id="5127" PostTypeId="2" ParentId="501" CreationDate="2010-09-18T13:37:27.597" Score="3" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://stackoverflow.com/questions/500504/javascript-for-in-with-arrays&quot;&gt;for ... in&lt;/a&gt; construct in JavaScript and the &lt;a href=&quot;http://php.net/manual/en/control-structures.foreach.php&quot; rel=&quot;nofollow&quot;&gt;foreach&lt;/a&gt; construct in PHP when looping over arrays. Both of them make it easier to write bugs than correct code.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-18T13:37:27.597" CommunityOwnedDate="2010-09-18T13:37:27.597" CommentCount="3" />
  <row Id="5128" PostTypeId="2" ParentId="5120" CreationDate="2010-09-18T13:49:12.303" Score="12" ViewCount="" Body="&lt;p&gt;Try to implement a code review team. It sounds like this programmer was working solo on a project with no team interaction. I'd try to encourage a more team-based workflow so that he can't just stomp over everything and then leave it on your door.&lt;/p&gt;&#xA;" OwnerUserId="1767" LastActivityDate="2010-09-18T13:49:12.303" CommentCount="1" />
  <row Id="5129" PostTypeId="2" ParentId="3363" CreationDate="2010-09-18T14:13:27.723" Score="9" ViewCount="" Body="&lt;p&gt;// Drunk, I'll fix it later&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-18T14:13:27.723" CommunityOwnedDate="2010-09-18T14:13:27.723" />
  <row Id="5130" PostTypeId="2" ParentId="3363" CreationDate="2010-09-18T14:18:01.740" Score="12" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;#define false true // Happy Debugging, Suckers!!! &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-09-18T14:18:01.740" CommunityOwnedDate="2010-09-18T14:18:01.740" CommentCount="1" />
  <row Id="5131" PostTypeId="2" ParentId="4863" CreationDate="2010-09-18T14:20:34.533" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx&quot; rel=&quot;nofollow&quot;&gt;Axum&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A simple CLR based language with C#-like syntax aimed at creating scalable, parallel apps. It's nothing entirely new, as many of the concepts already exist in languages like Erlang, but it provides a nice solution I've not seen in any other CLR language for having completely isolated memory states. A nice thing about it is the ability to work with C# directly with Axum (although it's a slightly modified C# which does things like eliminate &lt;code&gt;static&lt;/code&gt; fields). There's also a variant at work which uses the F# syntax because it seems more approachable with mutable types and other language elements that are already in F#.&lt;/p&gt;&#xA;" OwnerUserId="356" LastActivityDate="2010-09-18T14:20:34.533" CommunityOwnedDate="2010-10-22T23:54:06.263" />
  <row Id="5132" PostTypeId="1" CreationDate="2010-09-18T14:24:23.687" Score="0" ViewCount="454" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/154/what-is-your-favorite-programmer-cartoon&quot;&gt;What is your favorite “programmer” cartoon?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/84556/whats-your-favorite-programmer-cartoon&quot;&gt;This question&lt;/a&gt; on Stack Overflow (and &lt;a href=&quot;http://programmers.stackexchange.com/questions/154/what-is-your-favorite-programmer-cartoon&quot;&gt;this question&lt;/a&gt; in programmers.SE) asking about favorite (individual) cartoons introduced me to several programming-related (or at least occasionally having programming jokes) ongoing webcomics that I didn't know about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is your favorite programming-related webcomic (&lt;em&gt;i.e. a website and not an individual cartoon&lt;/em&gt;)?&lt;/p&gt;&#xA;" OwnerUserId="1303" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-24T22:25:35.977" LastActivityDate="2010-09-24T22:25:35.977" ClosedDate="2011-02-14T11:53:00.350" Title="What's your favorite programming-related webcomic?" Tags="&lt;favorite&gt;&lt;fun&gt;&lt;humor&gt;&lt;pop-culture&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="1" />
  <row Id="5133" PostTypeId="2" ParentId="5132" CreationDate="2010-09-18T14:26:07.403" Score="17" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://xkcd.com&quot; rel=&quot;nofollow&quot;&gt;XKCD&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sub&gt;Community wiki because I don't want to get rep for being the first to answer my own question with the most obvious answer.&lt;/sub&gt;&lt;/p&gt;&#xA;" OwnerUserId="1303" LastActivityDate="2010-09-18T14:26:07.403" CommunityOwnedDate="2010-09-18T14:26:07.403" />
  <row Id="5134" PostTypeId="2" ParentId="5132" CreationDate="2010-09-18T14:29:00.863" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://notinventedhe.re/&quot; rel=&quot;nofollow&quot;&gt;Not Invented Here&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-18T14:29:00.863" />
  <row Id="5135" PostTypeId="2" ParentId="5132" CreationDate="2010-09-18T14:29:58.493" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://dilbert.com/&quot; rel=&quot;nofollow&quot;&gt;Dilbert&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1303" LastActivityDate="2010-09-18T14:29:58.493" CommunityOwnedDate="2010-09-18T14:29:58.493" />
  <row Id="5136" PostTypeId="2" ParentId="5114" CreationDate="2010-09-18T14:30:55.637" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://code.google.com/edu/languages/&quot; rel=&quot;nofollow&quot; title=&quot;Google U&quot;&gt;Google University&lt;/a&gt; has some presentations on Python including a &lt;a href=&quot;http://code.google.com/edu/languages/google-python-class/index.html&quot; rel=&quot;nofollow&quot;&gt;Google Python Class&lt;/a&gt;. Google also has some great talks on more advanced topics (look for Alex Martelli).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://showmedo.com/videotutorials/python&quot; rel=&quot;nofollow&quot;&gt;ShowMeDo&lt;/a&gt; has videos and tutorials on everything from getting started with Python to more advanced topics such as Numpy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://mail.python.org/pipermail/tutor/&quot; rel=&quot;nofollow&quot;&gt;Python Tutor Mailing list&lt;/a&gt; has been around for ages. I haven't asked that many questions but I've learned a lot by reading the archives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And don't discount &lt;a href=&quot;http://www.github.com&quot; rel=&quot;nofollow&quot;&gt;GitHub&lt;/a&gt; and &lt;a href=&quot;http://code.google.com/hosting/search?q=label%3aPython&quot; rel=&quot;nofollow&quot;&gt;Google Code&lt;/a&gt; for just looking at code. Guido van Rossum, Python's creator, has projects on Google code such as &lt;a href=&quot;http://code.google.com/p/rietveld/&quot; rel=&quot;nofollow&quot;&gt;Rietveld&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="462" LastActivityDate="2010-09-18T14:30:55.637" />
  <row Id="5137" PostTypeId="2" ParentId="5120" CreationDate="2010-09-18T14:36:28.910" Score="5" ViewCount="" Body="&lt;p&gt;Is the management dividing the requirements into tasks? If not then there lies your problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The programmer can't finish 80% of everything if he were locked to only the tasks he should be on, then instead of spending time on other tasks he could spend time on making his own tasks more perfect.&#xA;Testing, Documentation, Refactoring, a next Task that is on his schedule... &lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-18T14:36:28.910" CommentCount="1" />
  <row Id="5138" PostTypeId="2" ParentId="5113" CreationDate="2010-09-18T14:37:19.143" Score="6" ViewCount="" Body="&lt;p&gt;That's rubbish !&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Mens sana in corpore sano!&lt;/em&gt;&lt;br&gt;&#xA;(A healthy mind in a healthy body!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... the old Romans knew that ...&lt;br&gt;&#xA;(but people like &lt;a href=&quot;http://en.wikipedia.org/wiki/Rationalization_%28making_excuses%29&quot; rel=&quot;nofollow&quot;&gt;making excuses to themselves&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-18T14:37:19.143" CommentCount="1" />
  <row Id="5139" PostTypeId="2" ParentId="5119" CreationDate="2010-09-18T14:42:49.013" Score="1" ViewCount="" Body="&lt;p&gt;Based on Bill's answer, accept his answer instead if you plan to accept my answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prototyping the customer with demos which he should send feedback on is probably the best idea, the middlemen can't say no to a methodology that is being used in a lot of software companies. And if they still disagree with that I suggest you to give them a last chance or else move on and find something else, there is no use to developing a product that the the end-user probably doesn't want...&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-18T14:42:49.013" CommentCount="2" />
  <row Id="5140" PostTypeId="2" ParentId="5132" CreationDate="2010-09-18T14:47:40.490" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://okcancel.com/&quot; rel=&quot;nofollow&quot;&gt;OK/Cancel&lt;/a&gt;&amp;nbsp; &amp;nbsp; &lt;sup&gt;&lt;sub&gt;(Too bad it hasn't been updated lately)&lt;/sub&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-09-18T14:47:40.490" />
  <row Id="5142" PostTypeId="2" ParentId="5055" CreationDate="2010-09-18T14:51:27.163" Score="2" ViewCount="" Body="&lt;p&gt;If you are looking to learn more about programming then get involved in local user groups and, even better, figure out something to present to a local user group.  Look for code camps (typically free or very inexpensive) and other free/low cost events in the area.  They're out there if you look and building relationships with programmers close to where you live will be far more valuable than going to conferences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Going to these high-priced conferences are great for networking and maybe schwag but I've found in my experience that they usually are pretty low on content.  You might pick up a thing or two here and there but for the most part you're getting the Intro 101 or high level overviews that are appropriate for large audiences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, a lot more of these conferences are streaming and/or publishing video from the talks.  You might not be there and get the cool schwag (ala Google I/O) but you'll have access to the same talks that everyone that was there got to see.&lt;/p&gt;&#xA;" OwnerUserId="2020" LastActivityDate="2010-09-18T14:51:27.163" />
  <row Id="5143" PostTypeId="2" ParentId="154" CreationDate="2010-09-18T15:11:50.127" Score="12" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/0HJUk.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="562" LastActivityDate="2010-09-18T15:11:50.127" CommentCount="1" />
  <row Id="5144" PostTypeId="2" ParentId="2254" CreationDate="2010-09-18T15:22:10.880" Score="1" ViewCount="" Body="&lt;p&gt;Up until a few months ago, I would have said the Kensington SlimType Keyboard.  But then, I fell in love with this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.apple.com/keyboard/&quot; rel=&quot;nofollow&quot;&gt;The Apple Aluminum Keyboard&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They key separation by the aluminum faceplate on the new Apple keyboard is absolutely incredible for preventing fat-finger errors.  I highly recommend it, no matter what operating system is being used.&lt;/p&gt;&#xA;" OwnerUserId="2587" LastActivityDate="2010-09-18T15:22:10.880" CommunityOwnedDate="2011-01-17T21:43:24.260" CommentCount="5" />
  <row Id="5145" PostTypeId="2" ParentId="2254" CreationDate="2010-09-18T15:44:22.867" Score="4" ViewCount="" Body="&lt;p&gt;Rather than suggest a keyboard, I'd suggest that you try several and go with the one that works for you. I was going to say that there was less variation in keyboard designs than mouse designs, but the images posted as answers have convinced me otherwise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things to look out for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Keys need to be where you expect them to be and the right shape. Normally the return/enter key is two rows deep and slightly &quot;L&quot; shaped. I've used keyboards where it wasn't and found entering a newline a chore rather than something automatic.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You need to be able to reach all the keys while you've got &quot;Shift&quot;, &quot;Alt&quot; or &quot;Ctrl&quot; pressed &lt;em&gt;with the same hand&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A num pad isn't essential - I hardly ever use one, but miss it when it isn't there.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Is there good tactile feedback when you press the keys. A definite click is probably too much, but without any resistance you may find yourself pressing the keys harder than you need to which can cause RSI.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(I'm typing this on an old Dell QuietKey I liberated when the office was closed and I was made redundant.)&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-18T15:44:22.867" CommunityOwnedDate="2011-01-17T21:43:24.260" />
  <row Id="5146" PostTypeId="2" ParentId="370" CreationDate="2010-09-18T15:47:40.173" Score="1" ViewCount="" Body="&lt;p&gt;I don't think there should be an age limit on development, simply because any development shop worth working for would screen their developers and see if they have the competency to program to the standard required.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If anything, experience should be valued by the software industry as much as it can be in management, business, etc.&lt;/p&gt;&#xA;" OwnerUserId="1037" LastActivityDate="2010-09-18T15:47:40.173" />
  <row Id="5147" PostTypeId="2" ParentId="154" CreationDate="2010-09-18T15:49:44.273" Score="8" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/KA3tY.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-18T15:49:44.273" CommentCount="2" />
  <row Id="5148" PostTypeId="2" ParentId="154" CreationDate="2010-09-18T15:52:52.957" Score="14" ViewCount="" Body="&lt;p&gt;I've always liked &lt;a href=&quot;http://stackoverflow.com/questions/84556/whats-your-favorite-programmer-cartoon/84603#84603&quot;&gt;this one&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://dilbert.com/strips/comic/2006-01-29/&quot; rel=&quot;nofollow&quot; title=&quot;Dilbert.com&quot;&gt;&lt;img src=&quot;http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/00000/1000/100/1125/1125.strip.sunday.gif&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="886" LastActivityDate="2010-09-18T15:52:52.957" CommentCount="1" />
  <row Id="5149" PostTypeId="2" ParentId="370" CreationDate="2010-09-18T16:02:50.227" Score="4" ViewCount="" Body="&lt;p&gt;While acting as team lead, I've had several occasions to have someone over 50 (and one over 60) working on my team. I can only tell you the experience was good. What I would question is if I saw someone with the last 10 years as a manager or architect trying to apply for a dev job. They may have gotten downsized and are just looking for a job. But if they've been hands on, I wouldn't question it at all. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;By that age, all the wanna-be managers and architects are managers and architects... anyone still coding &lt;em&gt;wants&lt;/em&gt; to code.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-18T16:02:50.227" />
  <row Id="5150" PostTypeId="1" CreationDate="2010-09-18T16:08:44.003" Score="0" ViewCount="151" Body="&lt;p&gt;I hate when my computer is dirty. I especially hate dust but can't find any way to avoid it (not with a reasonable amount of money), so I vacuum and use compressed gas to keep it as clean as possible. Still, it's hard to clean the dust when it's already fixed on the computer (and its inside components).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So how do you keep your computer clean? &lt;/p&gt;&#xA;" OwnerUserId="488" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T21:13:55.403" LastActivityDate="2010-09-18T21:13:55.403" ClosedDate="2010-09-18T18:50:45.093" Title="How do you keep your computer clean?" Tags="&lt;maintenance&gt;&lt;cleaning&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="5151" PostTypeId="2" ParentId="275" CreationDate="2010-09-18T16:09:10.427" Score="0" ViewCount="" Body="&lt;p&gt;Started out in high school with VB6 and vanilla HTML. I was the kid at the back of the class who finished the assignment in 10 minutes and spent the rest of the time making Aarkanoid clones and sketching.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learned a bit of C and Java before going to uni, decided programming wasn't for me. Went on to get a degree in graphic design, and picked up JavaScript/PHP along the way. Still wasn't too big on the programming side though, I billed myself as a designer. A couple years after that, I picked up Python first, then Common Lisp (by way of &lt;a href=&quot;http://www.paulgraham.com/onlisp.html&quot; rel=&quot;nofollow&quot;&gt;On Lisp&lt;/a&gt; and &lt;a href=&quot;http://www.gigamonkeys.com/book/&quot; rel=&quot;nofollow&quot;&gt;PCL&lt;/a&gt;), Scheme (by way of &lt;a href=&quot;http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/&quot; rel=&quot;nofollow&quot;&gt;the SICP lectures&lt;/a&gt;), Ruby (randomly, though &lt;a href=&quot;http://sites.google.com/site/steveyegge2/ruby-tour&quot; rel=&quot;nofollow&quot;&gt;Yegge&lt;/a&gt; contributed more than his fair share) in the span of about a year and a half. Then I got into Emacs and Elisp, and realized that I actually did love programming, just not in VB/C/Java.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-09-19T01:08:17.930" LastActivityDate="2010-09-19T01:08:17.930" CommunityOwnedDate="2011-02-13T14:40:48.817" />
  <row Id="5153" PostTypeId="1" CreationDate="2010-09-18T16:10:31.327" Score="6" ViewCount="312" Body="&lt;p&gt;Hi, I was just curious to know about how to become a good technical architect Or what are the things makes a Developer good architect. Please share your insights and articles. &lt;/p&gt;&#xA;" OwnerUserId="2595" LastActivityDate="2011-02-05T05:34:05.190" Title="What are the things necessary to become good technical architect" Tags="&lt;career&gt;&lt;software-developer&gt;&lt;architect&gt;" AnswerCount="5" FavoriteCount="2" />
  <row Id="5155" PostTypeId="2" ParentId="5120" CreationDate="2010-09-18T16:20:22.037" Score="5" ViewCount="" Body="&lt;p&gt;People should have to support what they develop, otherwise they never learn to develop supportable things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Realistically you cannot always do this 100% of the time, but even a little is enough to straighten out a lot of this sort of issue much of the time.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-18T16:20:22.037" />
  <row Id="5157" PostTypeId="2" ParentId="5055" CreationDate="2010-09-18T16:37:39.100" Score="4" ViewCount="" Body="&lt;p&gt;$1,000 is expensive for a conference? Aside from devdays I don't think I've ever attended one that was cheaper than $1500. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want low-cost options to learn, try to find a local user group. Conferences are expensive because...&lt;br&gt;&#xA;(1) They are generally for-profit endeavors;&lt;br&gt;&#xA;(2) Most people aren't buying their own ticket so there isn't much downward pressure on prices. and&lt;br&gt;&#xA;(3) They hold them at fancy hotels in resort areas that charge insane amounts like $1,000/day for internet access in the exhibit hall or $25 for a pot of coffee.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh yeah, and in a lot of conference locations they force the organizers to use union labor. Want to plug in a projector - can't do it yourself, you need a $150/hr union electrician for that! Want to move boxes from one room to another, better let the union guys do that or your boxes might just get 'lost' at the loading dock.&lt;/p&gt;&#xA;" OwnerUserId="287" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-09-18T23:59:45.227" LastActivityDate="2010-09-18T23:59:45.227" />
  <row Id="5158" PostTypeId="2" ParentId="5153" CreationDate="2010-09-18T16:43:51.270" Score="2" ViewCount="" Body="&lt;p&gt;It depends on how you define the role.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some organizations define it as the person who designs the overall solution to a problem or set of problems.  That role needs someone with a lot of design and programming experience who can get up to speed on new things and has an interest in keeping up on new tech and new challenges from the business side of things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other organization define it as the person who identifies new opportunities or builds the road map to the future state.  This version is much more powerful, but also much more dangerous.  You need all the requirements above, but you also need a fairly intimate level of knowledge of how the work actually happens and all the little bits that are never documented that human reason, timing, current nature of the clients, etc. takes care of for you.  These people almost never are successful unless they come from within the organization or a nearly identical situation or are given months or years to familiarize themselves with the workings of the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A developer with a reasonable variety and length of experience can do the first, but only a developer with the right specific industry knowledge is likely to do well in a reasonable amount of time at the latter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO in both cases it helps to be a developer who is more interested in practical problem solving than theoretical perfection.  If you find yourself uncomfortable with making ugly compromises when needed you will likely not enjoy this role.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-18T16:43:51.270" />
  <row Id="5159" PostTypeId="2" ParentId="501" CreationDate="2010-09-18T16:54:50.623" Score="8" ViewCount="" Body="&lt;p&gt;&lt;H2&gt;VBScript Doesn't Have Logical Operators&lt;/H2&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unlike nearly every sensible language, VBScript uses bitwise operators instead of logical operators. What does this mean in practice? Well, as &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2004/07/15/184431.aspx&quot; rel=&quot;nofollow&quot;&gt;Eric Lippert points out&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;If Blah = True Then Print &quot;True!&quot; Else Print &quot;False!&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;If Blah Then Print &quot;True!&quot; Else Print &quot;False!&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;are NOT the same in VBScript!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even worse, though, this means that there is no short-circuit evaluation in VBScript so that the following statement will &lt;em&gt;crash&lt;/em&gt; your program if &lt;code&gt;Blah&lt;/code&gt; is &lt;code&gt;Nothing&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;If (Not Blah Is Nothing) And (Blah.Frob = 123) Then&#xA;...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That's right, VBScript will evaluate &lt;em&gt;both&lt;/em&gt; parts of the AND comparison, even if the first one is false! Just let that sink in...&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-18T16:54:50.623" CommunityOwnedDate="2010-09-18T16:54:50.623" CommentCount="1" />
  <row Id="5160" PostTypeId="1" CreationDate="2010-09-18T16:57:10.947" Score="8" ViewCount="203" Body="&lt;p&gt;I'd like to sell software, but I'm worried about infringing on software patents.  What should I do/research prior to writing code?&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-12-05T19:41:28.213" Title="How does a one-person ISV handle software patent research? What due-dilligence is required?" Tags="&lt;isv&gt;&lt;software-patent&gt;&lt;research&gt;" AnswerCount="4" />
  <row Id="5161" PostTypeId="2" ParentId="5132" CreationDate="2010-09-18T17:07:20.603" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.smbc-comics.com/&quot; rel=&quot;nofollow&quot;&gt;Saturday Morning Breakfast Cereal&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-18T17:07:20.603" />
  <row Id="5162" PostTypeId="2" ParentId="5034" CreationDate="2010-09-18T17:09:06.210" Score="0" ViewCount="" Body="&lt;p&gt;It passes the &lt;a href=&quot;http://en.wikipedia.org/wiki/Turing_test&quot; rel=&quot;nofollow&quot;&gt;Turing Test&lt;/a&gt;? In other words, a human being wouldn't be able to definitely tell the actions of your code from that of another human being attempting to do the same thing. Basically, can it fool someone?&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-18T17:09:06.210" CommentCount="5" />
  <row Id="5163" PostTypeId="2" ParentId="5132" CreationDate="2010-09-18T17:10:50.077" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://theoatmeal.com/&quot; rel=&quot;nofollow&quot;&gt;The Oatmeal&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/pLqNl.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-18T17:10:50.077" />
  <row Id="5164" PostTypeId="2" ParentId="1745" CreationDate="2010-09-18T17:11:31.603" Score="44" ViewCount="" Body="&lt;p&gt;If you havent gone to university, you are not suitable for the job&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-18T17:11:31.603" CommunityOwnedDate="2010-09-18T17:11:31.603" CommentCount="16" />
  <row Id="5165" PostTypeId="2" ParentId="154" CreationDate="2010-09-18T17:12:17.617" Score="20" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/FjPNU.png&quot; alt=&quot;alt text&quot;&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/FtblC.jpg&quot; alt=&quot;alt text&quot;&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/CM2He.jpg&quot; alt=&quot;alt text&quot;&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/bpQOM.png&quot; alt=&quot;alt text&quot;&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/jEXH2.png&quot; alt=&quot;alt text&quot;&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/yrVJ7.png&quot; alt=&quot;alt text&quot;&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/AYtwW.png&quot; alt=&quot;alt text&quot;&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/tqYKw.png&quot; alt=&quot;alt text&quot;&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/gwku0.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://theoatmeal.com/comics/design_hell&quot; rel=&quot;nofollow&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-18T17:12:17.617" CommentCount="1" />
  <row Id="5166" PostTypeId="2" ParentId="5150" CreationDate="2010-09-18T17:23:19.483" Score="4" ViewCount="" Body="&lt;p&gt;I just don't care. My computer either sits on the floor, on the table, in a cabinet, etc. If the case gets dusty, I don't care. If the insides get dusty, I don't care. I don't look inside my computer, so why should I keep it clean?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only time I ever clean up my computer with a can of air is when my fan sounds like its struggling or I'm installing a new component.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-18T17:23:19.483" CommentCount="1" />
  <row Id="5167" PostTypeId="2" ParentId="4941" CreationDate="2010-09-18T17:37:08.387" Score="0" ViewCount="" Body="&lt;p&gt;Break their fingers.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-09-18T17:37:08.387" CommentCount="5" />
  <row Id="5168" PostTypeId="1" AcceptedAnswerId="5192" CreationDate="2010-09-18T17:49:19.327" Score="17" ViewCount="459" Body="&lt;p&gt;Being a programmer makes you more aware of security issues and vulnerabilities, so it's only natural that developers tend to be more acutely aware of potential security issues in the software they use and the websites they visit. So what issues have you &lt;em&gt;personally&lt;/em&gt; discovered in released software or websites that have shocked you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, I've seen a number of websites that pass SQL queries around on the query string, and a good while ago (late 90's) I found an e-commerce site that actually passed the prices of goods around on the query string! Yes, you could change them to minus figures and get a negative bill at the checkout (though I never actually completed an order as this would probably constitute fraud).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what's the worst examples you've found? And what did you do about it?&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-10-26T14:40:02.780" Title="What's the biggest software security vulnerabilty you've personally discovered?" Tags="&lt;software&gt;&lt;websites&gt;&lt;security&gt;&lt;vulnerabilities&gt;&lt;bad-practice&gt;" AnswerCount="13" CommentCount="5" FavoriteCount="3" />
  <row Id="5169" PostTypeId="2" ParentId="5150" CreationDate="2010-09-18T17:51:14.710" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;clean your room / workspace / table regularly (&lt;em&gt;only a week?)&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;do not eat / drink stuff (&lt;em&gt;tea/coffee is ok, but that's pretty much it)&lt;/em&gt; near it&lt;/li&gt;&#xA;&lt;li&gt;equally, do not work on it with greasy hands from food, oily hands after fixing your bike etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Just plain reason actually.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not use any cleaning materials whatsoever, and my 2 year old laptop doesn't seem to have much dust on it, as far as one can notice. Or any other kind of dirt.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-18T17:51:14.710" />
  <row Id="5170" PostTypeId="2" ParentId="5168" CreationDate="2010-09-18T17:55:48.423" Score="3" ViewCount="" Body="&lt;p&gt;While working on an internal web application I found that various pages allowed you to execute arbitrary JavaScript. Fortunately you have to know what you are doing to take advantage of it. To fix the issue I simply escaped all of our output &lt;em&gt;(Total rocket science am I right?)&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-18T17:55:48.423" />
  <row Id="5171" PostTypeId="2" ParentId="5168" CreationDate="2010-09-18T18:04:17.980" Score="4" ViewCount="" Body="&lt;p&gt;Not sure this really counts, but I once published a means of crashing IE that ended up allowing execution of arbitrary code. The really &lt;em&gt;sad&lt;/em&gt; part of that was, when I dug around a bit I found a previous report - on an MS newsgroup - from several years earlier. So chances are, &lt;em&gt;someone&lt;/em&gt; had been using it before the &quot;official&quot; 0-day...&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-18T18:04:17.980" />
  <row Id="5172" PostTypeId="2" ParentId="5160" CreationDate="2010-09-18T18:10:45.003" Score="0" ViewCount="" Body="&lt;p&gt;If the amount of budget that phrama companies invest in dealing with patents is any indicator, compliance with patents would requires a lot of resources and time on you side, which is just one reason why the whole system is rotten. So you will pretty much have to hire a small team of lawyers and/or experts to do this kind of research for you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have the money I suppose you can file a patent on just about anything you do, and if it doesn't get approved use some &lt;a href=&quot;http://www.techdirt.com/articles/20100330/0241388782.shtml&quot; rel=&quot;nofollow&quot;&gt;Black Magic&lt;/a&gt; and get it anyway. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still though, I'm no lawyer, so you should probalby contact one to get a better answer. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-18T18:10:45.003" />
  <row Id="5173" PostTypeId="2" ParentId="5168" CreationDate="2010-09-18T18:16:41.897" Score="5" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;The ability to upload and execute PHP code to a webstie of an old school through an upload feature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming an upload form should be sufficiently secured. Was fixed later...&lt;br&gt;&#xA;    (I guess the test file stayed after I removed the entry for it) &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Generating a serial by just importing a .NET DLL and calling a function with some random garbage...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People that write .NET applications should be more aware of Reflector and Obfuscation.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-18T20:09:14.503" LastActivityDate="2010-09-18T20:09:14.503" />
  <row Id="5174" PostTypeId="2" ParentId="3519" CreationDate="2010-09-18T18:45:19.247" Score="1" ViewCount="" Body="&lt;p&gt;I'm currently learning Ruby by using it to solve &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt; problems.  I do mostly embedded C work (also some PHP and C#) in my 9-5 job, so the Ruby stuff is just to expand my horizons a bit.  I picked up a couple of Ruby books, then installed a good &lt;a href=&quot;http://www.jetbrains.com/ruby/index.html&quot; rel=&quot;nofollow&quot;&gt;IDE&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-18T18:45:19.247" />
  <row Id="5175" PostTypeId="2" ParentId="5168" CreationDate="2010-09-18T18:46:09.877" Score="4" ViewCount="" Body="&lt;p&gt;One company I used to work for had roled its own license system. When I needed to port the application to a different language, I found out, that an empty license file was flagged as a valid license.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-18T18:46:09.877" />
  <row Id="5176" PostTypeId="2" ParentId="5150" CreationDate="2010-09-18T18:48:44.630" Score="0" ViewCount="" Body="&lt;p&gt;At the local drugstore they have disposable tissues with alcohol for cleaning glasses. These have proven great for cleaning pc's and screens.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-18T18:48:44.630" />
  <row Id="5177" PostTypeId="2" ParentId="5160" CreationDate="2010-09-18T18:49:22.773" Score="7" ViewCount="" Body="&lt;p&gt;If it's just you, I wouldn't worry about infringing software patents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Companies do not enforce software patents unless they think they can extort a license fee out of you, intimidate you into discontinuing the &quot;infringed use&quot;, or remove you from the marketplace as a competitor.  In all these cases, you must be large enough for the company to notice.  Neither you or a software lawyer will be able to predict when this might occur, and if it does, the company holding the patent has to prove that damages have occurred.  This seems unlikely if it is just you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are developing your own stuff in isolation (and not actively trying to steal someone else's intellectual property, or knowingly duplicating someone else's novel software invention), the likelihood that, as an individual, you will be sued over a software patent is relatively small.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Researching software patents doesn't help.  Even if you know about all of them (likely impossible), many are frivolous, and if a company really wants to get you off their lawn, they may &lt;a href=&quot;http://www.audioholics.com/news/industry-news/blue-jeans-strikes-back&quot; rel=&quot;nofollow&quot;&gt;make a fringe claim&lt;/a&gt; against you anyway (one that is not really covered by their patent).  &lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-09-18T19:08:34.613" LastActivityDate="2010-09-18T19:08:34.613" CommentCount="2" />
  <row Id="5178" PostTypeId="2" ParentId="5160" CreationDate="2010-09-18T19:01:55.783" Score="1" ViewCount="" Body="&lt;p&gt;Configure whatever search engine you use to omit patent hits from search results. Seriously. It's an option for Google Scholar, anyway.&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-09-18T19:01:55.783" CommentCount="0" />
  <row Id="5179" PostTypeId="2" ParentId="370" CreationDate="2010-09-18T19:02:30.793" Score="3" ViewCount="" Body="&lt;p&gt;I'm a freelance programmer (doing mostly embedded C, also some PHP and C#), and am over 60.  I currently have four active contracts.  In many of my jobs, I never even meet the people I'm working with.  I don't list any dates on my on-line resume older than about 1990.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-18T19:02:30.793" />
  <row Id="5180" PostTypeId="2" ParentId="4941" CreationDate="2010-09-18T19:08:40.587" Score="3" ViewCount="" Body="&lt;p&gt;try{&lt;/p&gt;&#xA;&#xA;&lt;p&gt;polite();&lt;/p&gt;&#xA;&#xA;&lt;p&gt;System.out.println(&quot;Don't touch my monitor please&quot;);&lt;/p&gt;&#xA;&#xA;&lt;p&gt;}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;catch(Exception e){&lt;/p&gt;&#xA;&#xA;&lt;p&gt;impolite();&lt;/p&gt;&#xA;&#xA;&lt;p&gt;System.out.println(&quot;Get out of my room !!&quot;);&lt;/p&gt;&#xA;&#xA;&lt;p&gt;}&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-18T19:08:40.587" />
  <row Id="5181" PostTypeId="2" ParentId="1599" CreationDate="2010-09-18T19:13:14.197" Score="1" ViewCount="" Body="&lt;p&gt;Ending every sentence with a semi-colon.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-09-18T19:13:14.197" CommunityOwnedDate="2010-09-18T19:13:14.197" CommentCount="1" />
  <row Id="5182" PostTypeId="2" ParentId="275" CreationDate="2010-09-18T19:17:53.060" Score="0" ViewCount="" Body="&lt;p&gt;A classmate had a Vic-20, and each day we went to his house playing games and making little programs in basic. A while later I bought my own, and quickly got bored with the games. I started hacking the games and learned to read and write 6502 assembler. Which was kind of hard without a real assembler program so I had to manually convert the instructions into bytes.&#xA;Then they got some CP/M machines at school. Each free moment we spend our time writing programs and of course we cheated with games.&#xA;When I had to make a choice for university, I chose Computer Science. And I still write software for a living. Although I stopped cheating with games.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-18T19:17:53.060" CommunityOwnedDate="2011-02-13T14:40:48.817" CommentCount="1" />
  <row Id="5183" PostTypeId="2" ParentId="4183" CreationDate="2010-09-18T19:24:31.830" Score="1" ViewCount="" Body="&lt;p&gt;It depends. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work 32 hours a week. Subtract 2 hours for meetings, leaves 30. 4 hours spend with customers service leaving 26 hours. Another (ok 2) hours for chatting and some internet stuff leaves 24. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Subtract another hour for rebooting and compiling the system (23). 1 for interruptions of coworkers (22) and 2 for missing productivity because of blonde moments. Leaving 20 hours of coding,... except.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Minus 2 hours of documentation and testing. Minus another hour for personal adminsistration (planning and time records) leaves 17.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So about 50% of the time is spend coding. &lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-18T19:24:31.830" CommentCount="2" />
  <row Id="5184" PostTypeId="2" ParentId="5132" CreationDate="2010-09-18T19:26:23.947" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.userfriendly.org/&quot; rel=&quot;nofollow&quot;&gt;User friendly&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-18T19:26:23.947" />
  <row Id="5185" PostTypeId="2" ParentId="5168" CreationDate="2010-09-18T19:31:18.897" Score="5" ViewCount="" Body="&lt;p&gt;I was an architect at a large payment processing company a few years ago.  I, along with another developer, was tasked with automating a previously-manual processing system.  Through the process of building an automation infrastructure, we discovered several security holes throughout the system... I mean, major security holes... we're talking unencrypted SSNs, payments that would just &quot;disappear&quot;... that sort of thing.  We brought our concerns to the powers that be and were told that either &quot;We have plans to address that.&quot; or &quot;It's never happened before.&quot;  Disheartened, we both left the company shortly thereafter.  A year later, this company had the largest industry security breach in US history.  I guess &quot;It's never happened before.&quot; wasn't a good enough answer.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-09-18T19:31:18.897" CommentCount="2" />
  <row Id="5186" PostTypeId="2" ParentId="275" CreationDate="2010-09-18T19:34:01.980" Score="2" ViewCount="" Body="&lt;p&gt;I was in the process of getting my BSEE degree in the 60's.  For my senior design project, which involved some filter design, my advisor suggested I simulate the circuit in FORTRAN.  That was the first program I ever wrote (running on an IBM-360).  I got hooked, but finished my EE degree anyway (switching majors was not an option since there wasn't a formal CS department at my university yet, and all the programming courses were in the math department which would have set me back a year or two).   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got a job doing logic design for one of the first electronic telephone exchanges.  This was before microprocessors, but it occurred to me that the logic I was designing could just as well be a done with a computer program.  So I decided to get an MSCS degree, which took me several years of night school.  By the time I finished, I had switched from hardware design to writing assembly programs for the telephone switch I had earlier helped design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A couple of years later, I quit the telephone industry and went out on my own as a freelance consultant/contract programmer, which I have been doing every since.   I still do a mixture of hardware and software (mostly embedded C), but have also done a lot of web programming in PHP plus some C++, C# and J2ME.  I am currently learning Ruby just for fun.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-09-18T19:45:31.230" LastActivityDate="2010-09-18T19:45:31.230" CommunityOwnedDate="2011-02-13T14:40:48.817" CommentCount="1" />
  <row Id="5187" PostTypeId="2" ParentId="616" CreationDate="2010-09-18T19:40:06.660" Score="0" ViewCount="" Body="&lt;p&gt;Go to a movie which you can lose yourself in.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-18T19:40:06.660" />
  <row Id="5189" PostTypeId="2" ParentId="275" CreationDate="2010-09-18T20:01:16.340" Score="0" ViewCount="" Body="&lt;p&gt;I had always wanted to pursue a career in computers but wasn't sure what exactly I wanted to do.  After I graduated from high school, I went on to a local community college and decided to major in Network Engineering.  As part of my degree plan, I had to take an Introduction to Programming course.  It was all Pascal and I had quite possibly the meanest battle-axe teacher that I've ever had before.  Despite all of that, I immediately fell in love with it.  I would stay up for nights at a time, either at home or the computer lab just hacking away at random stuff.  After college, I picked up a number of dead-end jobs, fully convinced that I couldn't achieve a rewarding career in software development without a bachelors degree.  I was wrong... seven years ago, my wife convinced me to start talking to some recruiters... the rest is history.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-09-18T20:01:16.340" CommunityOwnedDate="2011-02-13T14:40:48.817" />
  <row Id="5190" PostTypeId="2" ParentId="4183" CreationDate="2010-09-18T20:04:17.013" Score="3" ViewCount="" Body="&lt;p&gt;For planning purposes, my team currently assumes 50% of my time will be spent actually working on tasks assigned to me (be it researching on StackOverflow, debugging, or actually typing code directly related to a task).  The rest of my time is spent doing things like code reviews, helping others with particularly nasty tasks that are assigned to them, and even socializing with people (in the asker's words:  playing pool, ping pong, chatting, etc).  All of these things help us, as programmers, to &lt;strong&gt;do our &lt;em&gt;actual&lt;/em&gt; jobs better&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code reviews familiarize me with sections of code that I might not otherwise have reason to ever see.  This pays off six months down the line when I'm writing code that might have a nasty interaction that I hadn't initially considered, and I can check to make sure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Helping others helps the team in the short-term, by helping them get a task done earlier; but it also helps me in the long-term, by giving me a social lubricant (&quot;leverage&quot;) in the future to get them to help me on my particularly nasty task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Socializing helps you get to know other people -- what they're good at, what they like to do, what they dislike to do, etc, etc.  While this might not seem directly useful, it can give you great insights in to how others think: what to look for the next time you're code reviewing (if they hate SQL, pay particularly close attention to the SQL they're changing!).  It also help you know who might be a good resource to get help from (if you're working on a tricky bit of UI, go talk to the best UI guy you know).  The most important thing is to make sure you're socializing with a broad set of folks -- don't just restrict yourself to your own team -- hang out with somebody from another team completely separate from yours, make friends with on of the IT guys (he might prioritize unlocking your AD account next time you've forgotten your password!), make friends with the marketing department (they might give you a heads up when they start thinking about promising a feature that isn't in the requirements), etc, etc.&lt;/p&gt;&#xA;" OwnerUserId="2600" LastActivityDate="2010-09-18T20:04:17.013" CommentCount="1" />
  <row Id="5191" PostTypeId="2" ParentId="275" CreationDate="2010-09-18T20:05:11.193" Score="0" ViewCount="" Body="&lt;p&gt;Discovered Visual Studio 6 books in a cabinet when I was around 10 y.o., tried them out.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-18T20:05:11.193" CommunityOwnedDate="2011-02-13T14:40:48.817" />
  <row Id="5192" PostTypeId="2" ParentId="5168" CreationDate="2010-09-18T20:18:17.703" Score="16" ViewCount="" Body="&lt;p&gt;During the beta for an MMO, I found that the client was being trusted to provide the Item ID's for various rewards.  I wrote an in-memory process patcher as a proof of concept, played around with the Item ID's until I found an extremely valuable one, and then exploited it.  I contacted the game management team and received a call from Sony to explain the situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not really a vulnerability, but... There was a piece of software about 15 years ago that claimed to 'double your RAM'.  It was really just a fraud, but it sold millions of copies.  I was the first to file a class action lawsuit against them.  I was 16, so the filing had to be in my fathers name, but it bought my first car.&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-09-18T20:18:17.703" CommentCount="5" />
  <row Id="5193" PostTypeId="2" ParentId="4183" CreationDate="2010-09-18T20:20:40.620" Score="2" ViewCount="" Body="&lt;p&gt;This question came up at a former employer.  They figured that they could actually expect 5 hours of &lt;strong&gt;development&lt;/strong&gt; time out of an 8 hour workday.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As John MacIntyre puts in it the comments: &quot;if you're not goofing off, you're working.&quot;  And even some goofing off is worth counting, as our minds need some time to refresh.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-09-18T20:20:40.620" CommentCount="1" />
  <row Id="5195" PostTypeId="2" ParentId="5153" CreationDate="2010-09-18T21:09:26.390" Score="1" ViewCount="" Body="&lt;p&gt;From &lt;a href=&quot;http://en.wikipedia.org/wiki/Software_architect&quot; rel=&quot;nofollow&quot;&gt;Wikipedia&lt;/a&gt; : &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Software architect is a general term&#xA;  with many accepted definitions, which&#xA;  refers to a broad range of roles.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I think the moment you start designing a software before-hand, you're an architect. You try to organize things to remove complexity before coding anything. The main goal of an architect is quality in its broad sense. So if you want to be a good architect you have to know what quality is. Here are a few starting points in quality :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Availability&lt;/li&gt;&#xA;&lt;li&gt;Maintainability&lt;/li&gt;&#xA;&lt;li&gt;Performance&lt;/li&gt;&#xA;&lt;li&gt;Testability&lt;/li&gt;&#xA;&lt;li&gt;Usability&lt;/li&gt;&#xA;&lt;li&gt;Security&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The goal of an architect is to clearly define what the customer expects from the software in terms of quality, and design a solution that answers to every quality requirements expressed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are ways to formally express quality attributes. Read &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321154959&quot; rel=&quot;nofollow&quot;&gt;Software Architecture in Practice&lt;/a&gt; by Bass, Clement and Kazman. They cleary define architecture, terms and associated practices.&lt;/p&gt;&#xA;" OwnerUserId="1905" LastActivityDate="2010-09-18T21:09:26.390" />
  <row Id="5196" PostTypeId="2" ParentId="2490" CreationDate="2010-09-18T21:11:56.917" Score="12" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/user/GoogleTechTalks&quot; rel=&quot;nofollow&quot;&gt;Google Tech Talks&lt;/a&gt; is not strictly related to coding, but there's still a wealth of relevant information there.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-18T21:11:56.917" CommentCount="2" />
  <row Id="5197" PostTypeId="2" ParentId="4693" CreationDate="2010-09-18T21:32:44.860" Score="0" ViewCount="" Body="&lt;p&gt;Why are so many discussions in the Meta-SEs about &quot;What questions can be asked to fit the system of SE?&quot; but not more like &quot;How can we improve SE to fit the users' needs?&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well programmers think everything can be solved with a fitting pattern or system.&#xA;To fit a certain pattern the input has to be digitalized, parametrized.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;BUT&lt;/strong&gt;&lt;br&gt;&#xA;The world is not digital!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beginning from the fact that humans began to create the clock to put continuos time in some computable form, mankind began to digitalize everything. The day doesn't begin when the alarm-clock rings - it does when the sun rises.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers are just the peak of this development. Often they just don't want to accept that there are things which can not be parametrized. But exactly those things make the world a nice place to be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You just can't describe a hug from a beautiful woman in an N-dimensional vector.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's hard to accept for programmers that the most important things can (and should) not be explained.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To get to my first question: Those question are about &quot;computable&quot; criterions but not about individuals needs.&lt;/p&gt;&#xA;" OwnerUserId="647" LastActivityDate="2010-09-18T21:32:44.860" CommunityOwnedDate="2010-09-19T15:29:19.433" />
  <row Id="5198" PostTypeId="2" ParentId="5153" CreationDate="2010-09-18T22:02:29.470" Score="2" ViewCount="" Body="&lt;p&gt;IMHO, a good architect:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Can be open minded about platform / language / technology - selecting the best mix for the project (and not the current fad).&lt;/li&gt;&#xA;&lt;li&gt;Takes into account the internal and external constraints on a project&lt;/li&gt;&#xA;&lt;li&gt;Designs a solution which meets the customers current requirements (or their perceived requirements)&lt;/li&gt;&#xA;&lt;li&gt;Considers possible future requirements&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The sign of a good architect is a project that is a pleasure to work on months or years later.  &lt;/p&gt;&#xA;" OwnerUserId="2397" LastActivityDate="2010-09-18T22:02:29.470" />
  <row Id="5199" PostTypeId="2" ParentId="4399" CreationDate="2010-09-18T22:03:03.783" Score="1" ViewCount="" Body="&lt;p&gt;The way I see it is that it's not QA's job to test my code. The tester's job is to make sure my code fulfills all the requirements for that task. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I pass something to QA, I make sure they know the task I was doing, not the specifics of my code. I never pass anything to QA that has 'bone head' bugs in it. That wastes my time, their time...and pretty much everyone's time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At my last job, we had QA involved from the beginning. That sat in the requirements gathering sessions, the project meetings, and the design meetings as well. They listened and asked questions and while the developers were writing code, they were writing their test plans. It worked out great and we caught a lot of issues that probably would have slipped through.&lt;/p&gt;&#xA;" OwnerUserId="2305" LastActivityDate="2010-09-18T22:03:03.783" />
  <row Id="5200" PostTypeId="2" ParentId="2291" CreationDate="2010-09-18T22:12:37.277" Score="0" ViewCount="" Body="&lt;h2&gt;Matlab&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;If we're not counting special-purpose languages, then I can't remember if I tried Scheme or Python first.&lt;/p&gt;&#xA;" OwnerUserId="1935" LastActivityDate="2010-09-18T22:12:37.277" CommunityOwnedDate="2010-09-18T22:12:37.277" />
  <row Id="5201" PostTypeId="2" ParentId="4319" CreationDate="2010-09-18T22:21:05.110" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.gnu.org/software/gtypist/&quot; rel=&quot;nofollow&quot;&gt;GNU Typist&lt;/a&gt; did it for me. And lots of discipline. Don't look at the keyboard! Cover your hands with a cloth. Just don't look, whatever happens.&lt;/p&gt;&#xA;" OwnerUserId="2610" LastActivityDate="2010-09-18T22:21:05.110" />
  <row Id="5202" PostTypeId="2" ParentId="4319" CreationDate="2010-09-18T22:35:32.507" Score="0" ViewCount="" Body="&lt;p&gt;My &quot;finger&quot;-tips.  Hahaha.  I apologize.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-09-18T22:35:32.507" />
  <row Id="5203" PostTypeId="2" ParentId="1997" CreationDate="2010-09-18T23:12:25.710" Score="0" ViewCount="" Body="&lt;p&gt;Learn to admit what you don't know. If you don't know the answer, say so. Don't try to make something up just so you can give an answer. That will get you in trouble in the long run.&lt;/p&gt;&#xA;" OwnerUserId="2305" LastActivityDate="2010-09-18T23:12:25.710" />
  <row Id="5204" PostTypeId="2" ParentId="1997" CreationDate="2010-09-18T23:30:37.623" Score="1" ViewCount="" Body="&lt;p&gt;Realize that if you are in a waterfall development environment, requirement documents, BRDs, etc. are, in general, fairy tales.  Requirements and software projects as a whole are in a constant state of flux and it is extremely rare to have a set of requirements that don't change throughout the lifecycle of the project.  Business people are finicky and like to change their minds a lot.  This being said, most software shops still operate with a waterfall mindset.  There is a growing movement that supports Agile methodologies (change is inevitable and should be embraced), but I, personally, have never seen or heard of a modern, enterprise development project that had concrete requirements, practices, etc. for its entire lifetime.  The key take-away is that things pretty much always change.  In my experience, the likely degree to which things change is directly proportional to the length of the project... which is also in a constant state of flux.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-09-18T23:30:37.623" CommentCount="1" />
  <row Id="5205" PostTypeId="2" ParentId="2666" CreationDate="2010-09-18T23:33:24.107" Score="27" ViewCount="" Body="&lt;p&gt;Not a day: ten of them.  I just spent almost two months fixing an algorithm in a library that was causing paradoxical behavior in the output of a simulation.  After all that hard work, I re-ran the simulation and was still getting the same wrong results, so for a week and a half I examined every bloody line in my simulation, every day getting no change.  So by now I have about nine weeks of disappointed looks from my advisor, who has no advice to offer.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I figure out that I'm still using the old library.&lt;/p&gt;&#xA;" OwnerUserId="1935" LastEditorUserId="1935" LastEditorDisplayName="" LastEditDate="2011-01-27T02:48:35.797" LastActivityDate="2011-01-27T02:48:35.797" CommunityOwnedDate="2011-01-10T19:05:03.687" CommentCount="1" />
  <row Id="5206" PostTypeId="2" ParentId="2291" CreationDate="2010-09-18T23:37:06.437" Score="1" ViewCount="" Body="&lt;h2&gt;Pascal&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I un-learned it as soon as I could.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-09-18T23:37:06.437" CommunityOwnedDate="2010-09-18T23:37:06.437" />
  <row Id="5207" PostTypeId="2" ParentId="4816" CreationDate="2010-09-18T23:46:58.003" Score="0" ViewCount="" Body="&lt;p&gt;I did this in 1998, and again in 2004.  They were probably the best decisions I ever made.  Going to work in a resource-constrained environment with self-directed goals is likely to provide you with an excellent learning environment, and an experience you likely will view fondly in hindsight, particularly if you are young and starry-eyed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The 1998 decision fell into both categories.  The business itself crashed horribly, and the experience ended with a spectacularly painful lawsuit.  End result is that I still wouldn't trade the experience for anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The 2004 decision falls into the latter category.  It's been a lot of fun, a compelling challenge, and financially lucrative, as well.&lt;/p&gt;&#xA;" OwnerUserId="2587" LastActivityDate="2010-09-18T23:46:58.003" />
  <row Id="5208" PostTypeId="2" ParentId="2291" CreationDate="2010-09-19T00:15:23.020" Score="0" ViewCount="" Body="&lt;h1&gt;HASKELL!&lt;/h1&gt;&#xA;" OwnerUserId="354" LastActivityDate="2010-09-19T00:15:23.020" CommunityOwnedDate="2010-09-19T00:15:23.020" CommentCount="1" />
  <row Id="5209" PostTypeId="1" CreationDate="2010-09-19T00:15:40.383" Score="6" ViewCount="138" Body="&lt;p&gt;Inspired by &lt;a href=&quot;http://programmers.stackexchange.com/questions/5055/programming-conferences-closed&quot;&gt;this&lt;/a&gt;, just how useful are programming conferences of various types?  What do they offer that you can't get from just reading and researching subject online?&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-19T18:25:10.143" Title="How valuable are programming conferences?" Tags="&lt;conferences&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="4" />
  <row Id="5210" PostTypeId="2" ParentId="2291" CreationDate="2010-09-19T00:26:41.983" Score="0" ViewCount="" Body="&lt;p&gt;a derivative of BASIC on Z80 processors.&lt;/p&gt;&#xA;" OwnerUserId="2391" LastActivityDate="2010-09-19T00:26:41.983" CommunityOwnedDate="2010-09-19T00:26:41.983" />
  <row Id="5211" PostTypeId="2" ParentId="2291" CreationDate="2010-09-19T00:30:39.220" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;ROM BASIC on a TRS-80 Model I&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also called TRS-80 Level I Basic.&lt;/p&gt;&#xA;" OwnerUserId="978" LastEditorUserId="4603" LastEditorDisplayName="" LastEditDate="2010-10-13T19:23:00.157" LastActivityDate="2010-10-13T19:23:00.157" CommunityOwnedDate="2010-09-19T00:30:39.220" CommentCount="1" />
  <row Id="5212" PostTypeId="2" ParentId="5209" CreationDate="2010-09-19T00:38:06.087" Score="5" ViewCount="" Body="&lt;p&gt;The most valuable aspect of programming conferences for me has been the networking: the opportunity to meet peers outside my normal 'social' circle and discuss problems, solutions and approaches. At conferences, that group often includes the speakers themselves so you get a chance to discuss issues with experts in various fields.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition, taking you physically outside your normal working space has the effect of letting you reset your environment for learning, forget about your day job (to some extent) and focus on trying out new things in a collaborative, hands-on space. Even if the sessions themselves are not hands-on, conference attendees will generally try out at least some of what they're seeing during conference.&lt;/p&gt;&#xA;" OwnerUserId="2613" LastActivityDate="2010-09-19T00:38:06.087" CommentCount="2" />
  <row Id="5213" PostTypeId="2" ParentId="4319" CreationDate="2010-09-19T00:39:58.923" Score="1" ViewCount="" Body="&lt;p&gt;Some people like to buy the unmarked keyboards, but I found they were a bit out of my price range. So I took an old keyboard that I wasn't using and spray-painted it gray so I couldn't see the letter labels. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without being able to see what it key is, you are forced to memorize them quickly. After a few weeks, I could type touch type without any problems. &lt;/p&gt;&#xA;" OwnerUserId="29" LastActivityDate="2010-09-19T00:39:58.923" />
  <row Id="5214" PostTypeId="2" ParentId="2291" CreationDate="2010-09-19T00:53:28.483" Score="1" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/REALbasic&quot; rel=&quot;nofollow&quot;&gt;RealBasic&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I'm surprised no one else started here.  It was fun.  :)&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-19T00:53:28.483" CommunityOwnedDate="2010-09-19T00:53:28.483" />
  <row Id="5215" PostTypeId="1" CreationDate="2010-09-19T00:59:30.560" Score="11" ViewCount="619" Body="&lt;p&gt;What programming conferences do you attend (or wish you could)? Inspired by &lt;a href=&quot;http://programmers.stackexchange.com/questions/5055/programming-conferences-closed&quot;&gt;this closed question&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="40" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-10-02T15:36:40.783" LastActivityDate="2010-10-02T15:40:35.963" ClosedDate="2011-05-23T03:04:25.667" Title="What are some good programming conferences?" Tags="&lt;recommendations&gt;&lt;conferences&gt;" AnswerCount="20" FavoriteCount="5" />
  <row Id="5216" PostTypeId="2" ParentId="2291" CreationDate="2010-09-19T01:05:45.597" Score="3" ViewCount="" Body="&lt;h2&gt;HyperTalk&lt;/h2&gt;&#xA;" OwnerUserId="2615" LastActivityDate="2010-09-19T01:05:45.597" CommunityOwnedDate="2010-09-19T01:05:45.597" CommentCount="2" />
  <row Id="5217" PostTypeId="2" ParentId="5215" CreationDate="2010-09-19T01:13:33.397" Score="7" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.joelonsoftware.com/items/2009/05/12.html&quot; rel=&quot;nofollow&quot;&gt;Dev Days&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I'd like to attend one of 'em at some point.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-19T01:13:33.397" />
  <row Id="5218" PostTypeId="2" ParentId="4865" CreationDate="2010-09-19T01:19:24.433" Score="1" ViewCount="" Body="&lt;p&gt;I think the biggest thing is changing your position regularly (and, well, making sure you exercise once in a while!). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most ergonomic recommendations I've read seem far too focused on a static position, and sitting-only. I use an easily-adjusted desk (a  &lt;a href=&quot;http://www.GeekDesk.com&quot; rel=&quot;nofollow&quot;&gt;GeekDesk&lt;/a&gt;, which I highly recommend) and spend a lot of my time working standing or kneeling now. It's really helped my back issues a &lt;em&gt;lot&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few years ago, I started dealing w/RSI more, in my wrists. For that, I must say the Microsoft Natural keyboards have been very helpful, as well as dictation software for non-coding typing. I do think wrist position in typing is pretty important, across the board. I also found moving to a stylus (mine is a &lt;a href=&quot;http://www.wacom.com/bamboo/bamboo_pen_touch.php&quot; rel=&quot;nofollow&quot;&gt;Bamboo&lt;/a&gt;) rather than a mouse to be very helpful in this department. (There's pretty strong evidence that the fine-motor skils of mousing are better left to the fingers, rather than the arm and shoulders). I too switch that up, right-to-left, like you do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More recently, I finally bit the bullet and bought an adjustable monitor stand too (a generic used one), initially mostly just to clear more desk space, but I'm finding being able to easily move its angle and distance to be a big plus too. Again, variety.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All these things are helpful, but as I get older I'm also noticing that I need to stretch a LOT more than I do when left to my own devices (&quot;reminder&quot; software helps), and also exercise more. Shoulders and arms especially. I'm still looking for better techniques and methods for those specific areas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also say pay attention to the pain. There's a &quot;healthy&quot; kind of pain that one feels in a good stretch and some kinds exercise, but for the most part, pain is your body trying to tell you that what you're doing is not a good idea. It's best to listen to that, IMHO.&lt;/p&gt;&#xA;" OwnerUserId="2182" LastActivityDate="2010-09-19T01:19:24.433" />
  <row Id="5219" PostTypeId="2" ParentId="4272" CreationDate="2010-09-19T01:25:20.053" Score="0" ViewCount="" Body="&lt;p&gt;I've been thinking about actually using an LCD projector part-time, to give some serious focal distance and rest my eyes a bit from close-distance work all the time. Haven't tried it yet, but pretty convinced it would help with comfort. YMMV.&lt;/p&gt;&#xA;" OwnerUserId="2182" LastActivityDate="2010-09-19T01:25:20.053" />
  <row Id="5220" PostTypeId="2" ParentId="3975" CreationDate="2010-09-19T01:30:42.457" Score="0" ViewCount="" Body="&lt;p&gt;Not nearly as much as I'd like to. Would love to know what tools out there would even &quot;count&quot; as examples. (&lt;a href=&quot;http://www.devexpress.com/Products/Index/frameworks.xml&quot; rel=&quot;nofollow&quot;&gt;DevExpress's frameworks&lt;/a&gt; are about as close as I've seen in real-world, but they are not &quot;visual&quot; at the level I think you are meaning).&lt;/p&gt;&#xA;" OwnerUserId="2182" LastActivityDate="2010-09-19T01:30:42.457" />
  <row Id="5221" PostTypeId="2" ParentId="4671" CreationDate="2010-09-19T01:33:23.760" Score="12" ViewCount="" Body="&lt;p&gt;I wasn't the one who did this, but I was one of a room full of programmers who failed for over an hour to figure out the problem:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$ cc -o test helloworld.c&#xA;$ gdb test&#xA;(gdb) run&#xA;Hello world!&#xA;(gdb) quit&#xA;$ test&#xA;$&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Why did the program give output when we ran it in the debugger but no output when we ran it from the command-line?&lt;/p&gt;&#xA;" OwnerUserId="471" LastActivityDate="2010-09-19T01:33:23.760" CommunityOwnedDate="2011-01-11T04:02:16.833" CommentCount="3" />
  <row Id="5222" PostTypeId="2" ParentId="2291" CreationDate="2010-09-19T01:34:54.937" Score="1" ViewCount="" Body="&lt;h1&gt;Scheme&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;With the great book &lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book.html&quot; rel=&quot;nofollow&quot;&gt;Structure and Interpretation of Computer Programs&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before that I did some BASIC stuff but I wouldn't really consider that programming.&lt;/p&gt;&#xA;" OwnerUserId="2616" LastActivityDate="2010-09-19T01:34:54.937" CommunityOwnedDate="2010-09-19T01:34:54.937" />
  <row Id="5223" PostTypeId="2" ParentId="4462" CreationDate="2010-09-19T01:37:48.663" Score="0" ViewCount="" Body="&lt;p&gt;Overlooking the ocean.&lt;/p&gt;&#xA;" OwnerUserId="2182" LastActivityDate="2010-09-19T01:37:48.663" CommunityOwnedDate="2010-09-19T01:37:48.663" />
  <row Id="5224" PostTypeId="2" ParentId="3662" CreationDate="2010-09-19T01:42:50.273" Score="0" ViewCount="" Body="&lt;p&gt;Haven't found much correlation. I just oscillate randomly: Disaster -&gt; Clean -&gt; Disaster -&gt; Clean -&gt; Disaster -&gt; Clean -&gt; [repeat]&lt;/p&gt;&#xA;" OwnerUserId="2182" LastActivityDate="2010-09-19T01:42:50.273" />
  <row Id="5225" PostTypeId="1" AcceptedAnswerId="5228" CreationDate="2010-09-19T01:43:41.547" Score="12" ViewCount="330" Body="&lt;p&gt;Suppose I develop a useful library and decide to publish it as open source. Some time later I have a business need to do something that wouldn't comply with the open source licence. Am I allowed to do that?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How should I publish the software in a way that I keep ownership and don't block myself from using the library in the future in any way?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep in mind that at least in theory, other developers may decide to contribute to my open-source project. Can I specify in a licence that I as the original developer get ownership of their contributions as well? Don't get me wrong here, I'm not trying to be evil and get ownership of other's work - I just want to keep ownership of mine, and if someone posts an important bugfix I could be rendered unable to use the original code unless I use his work as well.&lt;/p&gt;&#xA;" OwnerUserId="2616" LastEditorUserId="6" LastEditorDisplayName="" LastEditDate="2010-09-19T02:20:38.407" LastActivityDate="2010-09-19T07:58:52.190" Title="Does open source licensing my code limit me later?" Tags="&lt;open-source&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="2" />
  <row Id="5226" PostTypeId="2" ParentId="3155" CreationDate="2010-09-19T01:46:17.627" Score="0" ViewCount="" Body="&lt;p&gt;&quot;The more complex the activities of the mind, the greater the need for play.&quot; – Star Trek&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See: &lt;a href=&quot;http://www.braindance.com/5mmap.htm&quot; rel=&quot;nofollow&quot;&gt;Synergistic Oscillation&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2182" LastActivityDate="2010-09-19T01:46:17.627" />
  <row Id="5227" PostTypeId="2" ParentId="5168" CreationDate="2010-09-19T01:48:01.167" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Storing login credentials in plain text cookies&lt;/li&gt;&#xA;&lt;li&gt;Not escaping user data before putting it into a database...&lt;/li&gt;&#xA;&lt;li&gt;...with credit card numbers stored in plain text&lt;/li&gt;&#xA;&lt;li&gt;Not escaping or validating user input before passing it to exec()&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What's sad is I've seen websites with multiple cases of the above occurring. &lt;/p&gt;&#xA;" OwnerUserId="1299" LastActivityDate="2010-09-19T01:48:01.167" />
  <row Id="5228" PostTypeId="2" ParentId="5225" CreationDate="2010-09-19T02:03:34.420" Score="23" ViewCount="" Body="&lt;p&gt;You always keep ownership under open-source licenses.  The work you created is your property, and you can do whatever you want to with it, (within legal limits, of course,) including allowing &lt;em&gt;other people&lt;/em&gt; to use it under the terms of an open-source license.  If you want to use it for a proprietary project, you're welcome to do so, unless you have completely turned over the rights to someone else by contract.  But this is not what open-source licenses do.  They're about sharing usefulness, not about giving up ownership.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things get a bit sticker once other people start contributing.  It's their work, then, not yours, and you need to get their permission.  One thing you can do is publish your library under a dual license.  That's what Sam Lantinga, the primary creator and maintainer of &lt;a href=&quot;http://libsdl.org&quot; rel=&quot;nofollow&quot;&gt;SDL&lt;/a&gt;, does.  Because Apple doesn't like dynamic link libraries for iOS, and complying with the LGPL in a statically linked app is more trouble than it's worth, he publishes SDL under both the LGPL and a commercial license for static iPhone apps.  When anyone submits a patch, he explicitly asks them for permission to deploy their patch in the library under both licenses, and if they don't like that, he doesn't add it to the codebase.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-19T02:03:34.420" CommentCount="1" />
  <row Id="5229" PostTypeId="2" ParentId="5225" CreationDate="2010-09-19T02:08:10.817" Score="4" ViewCount="" Body="&lt;p&gt;I am not a lawyer and this is not legal advice. If you need legal assurance, hire an attorney.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You absolutely can dual-license your software - Trolltech did that for many years with Qt, and Linden Lab did it with the SecondLife client.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can use any license you like. Some licenses are compatible with closed commercial environments, such as the Mozilla MPL, MIT and BSD licenses, and (I believe) Sun's CDDL and the Apache licenses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you need the flexibility to release your software both as an open source project and as a closed-source product, you are absolutely allowed to do that as the original author. The only problem is the issue of user contributions. You can't incorporate the contributions of others into your commercial version of the software &lt;em&gt;unless&lt;/em&gt; they legally release the Copyright to you. GNU does this for the sole reason that they will update their licenses in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do note that users and &lt;em&gt;especially&lt;/em&gt; contributors will probably not like this, so it will affect the community around your project, probably adversely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again, consult an attorney for details.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-09-19T02:08:10.817" />
  <row Id="5230" PostTypeId="2" ParentId="4693" CreationDate="2010-09-19T02:11:41.063" Score="3" ViewCount="" Body="&lt;p&gt;The answer... is not. Programmers aren't arrogant. Arrogant people are programmers. Programming is about creating things the way you want them to be, and having full control over them (unless you code in PHP of course, at which point not even God has control). I digress. This control complex is derived from arrogance.&lt;/p&gt;&#xA;" OwnerUserId="825" LastActivityDate="2010-09-19T02:11:41.063" CommunityOwnedDate="2010-09-19T15:29:19.433" CommentCount="1" />
  <row Id="5231" PostTypeId="2" ParentId="161" CreationDate="2010-09-19T02:17:04.780" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://flask.pocoo.org/&quot; rel=&quot;nofollow&quot;&gt;Flask&lt;/a&gt; - It's a really cool Python web framework with really low overhead, enterprise capabilities, SQLAlchemy integration, secure cookie sessions, full WSGI support and the potential for becoming a replacement for folks who have hit the ceiling with Django and want to control the way they do things. The problem is that it's so new. Who knows what problems folks will have.&lt;/p&gt;&#xA;" OwnerUserId="825" LastEditorUserId="825" LastEditorDisplayName="" LastEditDate="2010-09-19T08:20:31.653" LastActivityDate="2010-09-19T08:20:31.653" />
  <row Id="5232" PostTypeId="1" AcceptedAnswerId="5292" CreationDate="2010-09-19T02:57:41.937" Score="31" ViewCount="1468" Body="&lt;p&gt;I tend to understand things rather quickly, but after 2 years of programming in Python I still stumble across things (like Flask today) that amaze me. I look at the code, have no idea what's going on, and then feel very humbled. I feel like an absolute expert each time this happens, up until the moment it happens. Then, for about a 2 week period I feel like an absolute beginner. Will this always happen, or does this mean that I have soooo much more to learn before I'm even a &quot;good&quot; programmer?&lt;/p&gt;&#xA;" OwnerUserId="825" LastActivityDate="2010-09-19T15:50:02.907" Title="Am I a bad programmer, or does everyone have this feeling?" Tags="&lt;education&gt;" AnswerCount="9" CommentCount="7" FavoriteCount="9" />
  <row Id="5233" PostTypeId="1" AcceptedAnswerId="5253" CreationDate="2010-09-19T02:58:52.353" Score="12" ViewCount="1485" Body="&lt;p&gt;I have a BS in a discipline that is laughable in the computer world.  I'm the first in my lab to make jokes about my liberal arts degree, and its fine because I'm also the one people come to when they've got an issue that needs fixed.  I got quite a bit out of my &quot;useless&quot; degree and I was able to make a pretty good living from it for a while, but a while back I decided I wanted to go back to school to get into what I enjoy most, programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I enrolled myself in a few classes at the community college solely for the purpose of getting an internship at one of the big companies we have around here.  It worked as planned.  The next step in my plan was going to be transfer to my old university to complete a Computer Science degree.  Since I already have a bachelors degree, I would only need to take CS classes to complete my second degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At my internship I have been able to prove myself as a competent programmer, and I have learned their internal APIs, so it looks like I might be sticking around for a real job after my internship ends.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This makes me question the next step in my plan.  If I already have that programming job, and I really going to miss anything if I choose not to spend 2 more years in school for that degree?  I study obsessively on my own, but is there some golden nugget of knowledge that I won't get from my own studies?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;//edit&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To clarify some things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;By saying 'in the door' I do not mean I am assuming my internship is going to magically turn into a job.  I am saying I have been given reason to believe so.&lt;/li&gt;&#xA;&lt;li&gt;The question is not if I should take the job or go back to school, but just should I continue with school.  If the question was the former, the answer is that my wife and I need to eat and books don't taste so good.&lt;/li&gt;&#xA;&lt;li&gt;Money for school isn't really the issue either. If my stay at this company continues, my school is on their tuition reimbursement list. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1428" LastEditorUserId="1428" LastEditorDisplayName="" LastEditDate="2010-09-19T15:26:00.390" LastActivityDate="2010-12-24T02:11:35.107" ClosedDate="2010-12-27T11:45:34.207" Title="Is it worth getting a Computer Science degree if you're already in the door?" Tags="&lt;experience&gt;&lt;career&gt;&lt;computer-science&gt;&lt;education&gt;&lt;career-advice&gt;" AnswerCount="15" CommentCount="4" FavoriteCount="4" />
  <row Id="5234" PostTypeId="2" ParentId="5232" CreationDate="2010-09-19T03:15:20.590" Score="8" ViewCount="" Body="&lt;p&gt;The one constant in my path as a programmer has been that I always have more to learn.  It sounds cliche, but it's true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That isn't to say I don't &lt;em&gt;feel&lt;/em&gt; at all times, even now, like I've learnt most of what I'll learn in my life.  The thing is, I felt that last year- looking back at that point now, I clearly still had a lot to learn then.  Same thing for the year before, and the year before that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're always learning- exposing yourself to really good code and developers is a great way to remind yourself of that.&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="6" LastEditorDisplayName="" LastEditDate="2010-09-19T03:29:32.803" LastActivityDate="2010-09-19T03:29:32.803" />
  <row Id="5235" PostTypeId="2" ParentId="5233" CreationDate="2010-09-19T03:18:30.160" Score="12" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Assuming you really are a competent programmer&lt;/em&gt;,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Probably not.  Some companies these days prevent people without degrees in their field from advancing beyond a certain point, but they're few and far between.  Experience is what counts after you've been in the working world for a bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember, there are a lot of top-notch developers who started out as electrical engineers, back before CS was really a viable career path.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-19T03:18:30.160" CommentCount="3" />
  <row Id="5238" PostTypeId="2" ParentId="5232" CreationDate="2010-09-19T03:47:38.520" Score="5" ViewCount="" Body="&lt;p&gt;Take a walk through a library. If it doesn't make you feel very, very small, you're not getting it. If you want it in nerd-speak, it's all about the derivative, not the actual quantity of your knowledge. It's OK to feel better about what you're learning than what you know, though you also shouldn't overdo it. Having learned something &lt;em&gt;is&lt;/em&gt; an accomplishment, it's just that you can't ever consider it complete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, two years is not much experience. I had more than that much experience before I was out of college (not counting classes), though I was fortunate to get those opportunities.&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-09-19T03:47:38.520" />
  <row Id="5239" PostTypeId="2" ParentId="5232" CreationDate="2010-09-19T03:56:42.540" Score="17" ViewCount="" Body="&lt;p&gt;No, this is not the sign of a bad programmer.  You should always be learning, and you should generally assume that there is something else to learn about a given topic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The bad programmer is the one who believes that he already knows the best way to do everything, and isn't open to the possibility that he has something to learn.&lt;/p&gt;&#xA;" OwnerUserId="2620" LastActivityDate="2010-09-19T03:56:42.540" />
  <row Id="5240" PostTypeId="2" ParentId="5233" CreationDate="2010-09-19T04:05:50.333" Score="0" ViewCount="" Body="&lt;p&gt;If you are 'in the door' - and I don't know if being an intern counts as being in the door, I'll leave that to you - then don't complete the CS degree just for the sake of it.  It's expensive and time consuming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, if you are going to get value from the study and you can afford the time and money, education is good.  But consider other options - a non-degree private college, a technology certification (Java certification or MCPD etc), professional training courses - and choose that which suits you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started a Masters degree in IT but once I got that IT job I dropped out due to the prohibitive cost and lack of real value (in terms of education).  I was only doing it to get the piece of paper, which I only needed to get the job.  I may go back one day, but the focus has shifted from 'getting into the industry' to 'improving my skills'.  I assume that the type of study I'd pursue would reflect that.&lt;/p&gt;&#xA;" OwnerUserId="2620" LastActivityDate="2010-09-19T04:05:50.333" CommentCount="2" />
  <row Id="5241" PostTypeId="2" ParentId="5233" CreationDate="2010-09-19T04:18:07.577" Score="0" ViewCount="" Body="&lt;p&gt;Its been my experience that, after a while on the job, there is no correlation whatsoever between the capability of a programmer and their college degree... or even if they went to college.  The guy I consider a mentor was a history major.  The best programmers I've worked with never even finished college.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, I might even go so far as to say having an education in other fields can actually help you.  A programmer with a compsci degree knows programming.  A programmer with an accounting degree understands &lt;em&gt;both&lt;/em&gt; programming and accounting.  Thats more valuable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So - &lt;em&gt;unless your employer is telling you that a comp sci degree is needed for advancement&lt;/em&gt; - rather than going back and learning in two years what you can learn in three months on the job, you might instead consider going back to school for a masters.  A programmer that only knows programming is valuable.  But a programmer that knows finance, economics, law, business administration... is more valuable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only caveat to that would be if you truly intend to get into the more engineer-y side of things - chip design, etc.  Then you'd need a good, solid technical education background in that.  &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-19T04:18:07.577" CommentCount="1" />
  <row Id="5242" PostTypeId="2" ParentId="4305" CreationDate="2010-09-19T04:21:42.560" Score="0" ViewCount="" Body="&lt;p&gt;If you can sit at your machine and write a simple app or solve a simple problem without using any reference materials, I believe that you 'know' the language.  You don't need to be particularly good at it to know it.&lt;/p&gt;&#xA;" OwnerUserId="2620" LastActivityDate="2010-09-19T04:21:42.560" />
  <row Id="5243" PostTypeId="2" ParentId="5232" CreationDate="2010-09-19T04:25:03.980" Score="35" ViewCount="" Body="&lt;p&gt;You will never, ever, ever, ever, ever, in the entirety of your career, be in a position where you immediately understand every programming technology simply by looking at it.  There's just too much there.  Its the accumulation of research and knowlege of millions of individuals over many decades.  If you ever find yourself thinking you are at that point, seek a therapist to discuss your delusions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The trait you need most is the ability and willingness to learn.  If you have that, nothing will be beyond you.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-19T04:25:03.980" CommentCount="1" />
  <row Id="5244" PostTypeId="2" ParentId="5233" CreationDate="2010-09-19T05:12:28.417" Score="0" ViewCount="" Body="&lt;p&gt;It depends on where you want to work. At my workplace, no one ever asked or ever cared about my degree, though I already got a Master degree of IT Engineering for years.... just in case. :D&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-09-19T05:12:28.417" />
  <row Id="5245" PostTypeId="2" ParentId="5233" CreationDate="2010-09-19T05:16:08.923" Score="3" ViewCount="" Body="&lt;p&gt;This is a hard one to call.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With respect to your current job, assuming that you are really &quot;in the door&quot; ... as you say.  Unless your employer has policies (stated or de facto) that make the lack of a relevant formal qualification an impediment to progression, you are OK for as long as you want to stay with your current employer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you need to &lt;em&gt;change&lt;/em&gt; employer, you may find the qualification issue an impediment.  Now you won't be in the same place as you were before, because you should have more / broader experience.  But that may not be enough to get you the new job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I was in your shoes, I'd go back to Uni:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learning new stuff is interesting.  As a mature student with workplace experience, you'll get more out of the courses than typical undergraduates.&lt;/li&gt;&#xA;&lt;li&gt;You should get course credits and pre-requisite waivers for your experience.  (But don't try to skip the theoretical foundations courses ... like discrete maths.)&lt;/li&gt;&#xA;&lt;li&gt;You are in a better position to choose elective courses, because you'll have a better idea of what interests you, and what your (current, preferred future) job might require.&lt;/li&gt;&#xA;&lt;li&gt;If possible aim for a Masters-level degree.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-09-19T05:16:08.923" CommentCount="2" />
  <row Id="5246" PostTypeId="2" ParentId="2291" CreationDate="2010-09-19T05:43:33.583" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Turing_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;&lt;h1&gt;Turing&lt;/h1&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was a pretty good language for beginners, as I recall.&lt;/p&gt;&#xA;" OwnerUserId="2622" LastActivityDate="2010-09-19T05:43:33.583" CommunityOwnedDate="2010-09-19T05:43:33.583" CommentCount="1" />
  <row Id="5247" PostTypeId="2" ParentId="5232" CreationDate="2010-09-19T05:55:46.243" Score="0" ViewCount="" Body="&lt;p&gt;This use to happen to me. Then it stopped. Not because i stopped progressing and didnt look at difficult code but because i eventually became very good. This to use happen in C++ for me. Boost (source code) doesnt scare me.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-19T05:55:46.243" />
  <row Id="5249" PostTypeId="2" ParentId="4693" CreationDate="2010-09-19T06:16:52.037" Score="0" ViewCount="" Body="&lt;p&gt;In my opinion, some of those who acquire knowledge, probably from some hard work and effort,  believe that they are superior than others, and simply wants to put on the face of arrogance to show it; not just programmers. &lt;/p&gt;&#xA;" OwnerUserId="2629" LastActivityDate="2010-09-19T06:16:52.037" CommunityOwnedDate="2010-09-19T15:29:19.433" />
  <row Id="5250" PostTypeId="2" ParentId="2051" CreationDate="2010-09-19T06:23:33.570" Score="4" ViewCount="" Body="&lt;p&gt;Can you add some post-processing so that the red part of this greyscale image is emphasised more than the green and blue parts?&lt;/p&gt;&#xA;" OwnerUserId="2626" LastActivityDate="2010-09-19T06:23:33.570" CommunityOwnedDate="2010-09-19T06:23:33.570" />
  <row Id="5252" PostTypeId="2" ParentId="5215" CreationDate="2010-09-19T07:24:54.870" Score="0" ViewCount="" Body="&lt;p&gt;I don't know what languages you are into, but I find &lt;a href=&quot;http://railscamps.com/&quot; rel=&quot;nofollow&quot;&gt;Railscamps&lt;/a&gt; to be extraordinarily awesome, inexpensive and some of the craziest learning experiences of my life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I attend the Australian Railscamps and they're about $200 for a ticket. Included in the $200 is food and accommodation for three nights on a campground. After you factor in flights (which are generally less than $500), a $50 keg ticket and transportation to the venue from the airport (which is usually organized), the rest is pretty much taken care of. All that's left to do is hack with the smartest people in your area.&lt;/p&gt;&#xA;" OwnerUserId="2632" LastActivityDate="2010-09-19T07:24:54.870" />
  <row Id="5253" PostTypeId="2" ParentId="5233" CreationDate="2010-09-19T07:29:04.640" Score="17" ViewCount="" Body="&lt;p&gt;The one thing that seems to escape people about a Computer Science degree is that it's not all about programming. That's what tech schools are for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Computer Science has made me a better problem solver, more attentiveness toward detail and understand management concepts through working with other people. It's endless what the degree has provided.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some things to consider is that you will never make more than someone at your level who has a degree. You might get stuck in one particular aspect of programming and not be prepared to shift gears if something goes sour in that field of programming. Lastly, in the current economy, not that our field has suffered really from it, the people who are getting killed right now DON'T have a college degree. Liberal arts is something, but come on now =)   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something you might consider is getting your masters in computer science. With a BA already, a lot of people are doing this right now. &lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-09-19T07:29:04.640" CommentCount="2" />
  <row Id="5254" PostTypeId="2" ParentId="5037" CreationDate="2010-09-19T07:34:31.743" Score="0" ViewCount="" Body="&lt;p&gt;Prolog, I never got any value from it. Perhaps I didn't use it enough.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-09-19T07:34:31.743" />
  <row Id="5255" PostTypeId="2" ParentId="5225" CreationDate="2010-09-19T07:58:52.190" Score="-1" ViewCount="" Body="&lt;p&gt;I am not a lawyer too, but...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from restrictive (that will force you to Open Source each project that uses them) licenses like GPL, there are also non-restrictive (meaning that you can use such piece of software in a commercial project) like Lesser GPL or Apache License (2.0?). So maybe you can simply release your software under non-restrictive terms.&lt;/p&gt;&#xA;" OwnerUserId="2554" LastActivityDate="2010-09-19T07:58:52.190" CommentCount="2" />
  <row Id="5256" PostTypeId="2" ParentId="161" CreationDate="2010-09-19T08:00:28.000" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://nodejs.org&quot; rel=&quot;nofollow&quot;&gt;Node.js&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;do I need to say more?&lt;/p&gt;&#xA;" OwnerUserId="2642" LastActivityDate="2010-09-19T08:00:28.000" CommentCount="2" />
  <row Id="5257" PostTypeId="2" ParentId="5037" CreationDate="2010-09-19T08:35:12.390" Score="5" ViewCount="" Body="&lt;p&gt;Java,&#xA; horrible designed copycat of objective-c, inconsistent, overcomplicated and constrictive.&#xA;It's the only language I have nothing learned from.&#xA;Objective-c on the other hand is awesome. &lt;/p&gt;&#xA;" OwnerUserId="2644" LastActivityDate="2010-09-19T08:35:12.390" CommentCount="2" />
  <row Id="5258" PostTypeId="2" ParentId="5232" CreationDate="2010-09-19T08:38:06.077" Score="2" ViewCount="" Body="&lt;p&gt;I've been writing code on and off for over 20 years now, there have been times when I considered myself to be unassailable for skill and expertise but I discovered that there's always someone better. What you do need to bear in mind is that there is a multitude who are also worse, much worse, than you. Software engineering is not a static field, new approaches, techniques and even languages are being developed all the time and it would be impossible to keep up with all of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing that usually has me sitting, looking dumbfounded at some new code I've just opened is the style of coding. That's usually a function of how comfortable the programmer was with the problem space, more comfort tends toward more abstract code in my experience. If you do open a piece of code and it doesn't leap into understanding then don't beat yourself up, sit down, read it carefully, make notes (yes, on paper) and step through code manually (if you have time). Understanding will come and it's you need to understand it that makes you a good programmer! :)&lt;/p&gt;&#xA;" OwnerUserId="2643" LastActivityDate="2010-09-19T08:38:06.077" />
  <row Id="5259" PostTypeId="1" AcceptedAnswerId="29621" CreationDate="2010-09-19T09:01:41.427" Score="12" ViewCount="544" Body="&lt;p&gt;I have a colleague who want to go back to programming after 5 years of doing something else.  Five year ago he was working with C++ / linux, delphi, and a lot with mSQL . He asked me to help him to go back to programming. I started to support him (in C# and Java) but I see that he is less and less motivated to practice. Probably he is getting frustrated about slow progress or overwhelm by things he had forgotten. I am looking currently for a way how to encourage him. Currently I think about two possible approaches:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;find an opensource project that he can start to work &lt;/li&gt;&#xA;&lt;li&gt;set up a project together (e.g., on assembla.com) and try to develop together something that is interesting for him. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Maybe I should advice him to start with script languages (e.g., groovy, jython) that let to program faster and to not write so much boiler code?&lt;/p&gt;&#xA;" OwnerUserId="2648" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T04:01:12.340" LastActivityDate="2010-12-23T19:56:26.680" Title="How to teach programming a person who completed CS studies but for 5 years was working in other profession?" Tags="&lt;non-programmers&gt;&lt;problem-solving&gt;&lt;teaching&gt;" AnswerCount="14" CommentCount="6" FavoriteCount="1" />
  <row Id="5260" PostTypeId="2" ParentId="5232" CreationDate="2010-09-19T09:17:17.773" Score="4" ViewCount="" Body="&lt;p&gt;There is a model of learning where you move through four stages:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Unconsciously incompetent: you don't know you don't know.&lt;/li&gt;&#xA;&lt;li&gt;Consciously incompetent: you know you don't know.&lt;/li&gt;&#xA;&lt;li&gt;Consciously competent: you know you know.&lt;/li&gt;&#xA;&lt;li&gt;Unconsciously competent: you don't know you know.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Clearly level 1 is a problem, but it's where everyone starts, but quickly moved from. As you learn until you reach the point where you just do it at level 4. With something like another module or library on an existing platform you inevitably slip back to 1 or 2 (hopefully 2). This is &lt;em&gt;normal&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(BTW. stage 4 can be a problem, too easy to fail to keep up with the latest techniques.)&lt;/p&gt;&#xA;" OwnerUserId="542" LastActivityDate="2010-09-19T09:17:17.773" />
  <row Id="5261" PostTypeId="2" ParentId="966" CreationDate="2010-09-19T09:35:28.980" Score="4" ViewCount="" Body="&lt;p&gt;I'm surprised nobody has suggested any fiction. I would have though reading some fiction every now and then would improve your thinking skills. Anyway, here's my 2c.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The Hitchhiker's Guide to the Galaxy&#xA;  is a wholly remarkable book. Perhaps&#xA;  the most remarkable, certainly the&#xA;  most successful book ever to come out&#xA;  of the great publishing corporations&#xA;  of Ursa Minor - of which no Earthman&#xA;  had ever heard of. More popular than&#xA;  the Celestial Home Care Omnibus,&#xA;  better selling than Fifty-Three More&#xA;  Things to do in Zero Gravity, and more&#xA;  controversial than Oolon Colluphid's&#xA;  trilogy of philosophical blockbusters&#xA;  Where God Went Wrong, Some More of&#xA;  God's Greatest Mistakes and Who is&#xA;  this God Person Anyway? It's already&#xA;  supplanted the Encyclopedia Galactica&#xA;  as the standard repository of all&#xA;  knowledge and wisdom, for two&#xA;  important reasons. First, it's&#xA;  slightly cheaper; and secondly it has&#xA;  the words &lt;strong&gt;DON'T PANIC&lt;/strong&gt; printed in&#xA;  large friendly letters on its cover.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2448" LastActivityDate="2010-09-19T09:35:28.980" CommunityOwnedDate="2011-01-06T15:42:27.030" CommentCount="3" />
  <row Id="5262" PostTypeId="2" ParentId="4475" CreationDate="2010-09-19T09:35:36.627" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What are the best ways to get participation in the betas?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Joel (on Software) has an excellent article on this: &lt;a href=&quot;http://www.joelonsoftware.com/articles/BetaTest.html&quot; rel=&quot;nofollow&quot;&gt;Top Twelve Tips for Running a Beta.&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Are there any existing sites or communities that specialize in software testing that I can reach out to?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't think there will be much &quot;We Test Your Code&quot; sites so you will have to start a webpage yourself and advertise it to the right audience...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;At this point, I'm specifically looking for technical testers who aren't intimidated diving into the code and can help spot security bugs, logical errors, etc.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This seems more like a job description that you need technical testers in your company and is less like beta testing, perhaps it can still be alpha testing... But those aren't always technical either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Test-Driven Development helps you prevent bugs and errors, thinking about the security can help too...&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-19T09:35:36.627" />
  <row Id="5263" PostTypeId="2" ParentId="5233" CreationDate="2010-09-19T09:42:07.240" Score="2" ViewCount="" Body="&lt;p&gt;I would go for 'finish your studies'. Of course, you might have to stop working for a while but is more complicated to finish your studies later than to find work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm still young but I've seen my older colleagues that decided to pick work instead of school. Most of then decide, in the end, that they need a master degree (or even bachelor + master). So they have to go to school at 30, 40 or even 50 years and that seems to be complicated. Sometimes they decide to not go because they have families and going to school will reduce the family income. Also, work tends to be demanding and you don't have time even for part-time university programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, do it now while is cheap ;)&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-09-19T09:42:07.240" />
  <row Id="5264" PostTypeId="2" ParentId="2291" CreationDate="2010-09-19T09:53:15.057" Score="0" ViewCount="" Body="&lt;p&gt;BASIC (on a DEC PDP 11/70)&lt;/p&gt;&#xA;" OwnerUserId="2652" LastActivityDate="2010-09-19T09:53:15.057" CommunityOwnedDate="2010-09-19T09:53:15.057" />
  <row Id="5265" PostTypeId="2" ParentId="161" CreationDate="2010-09-19T09:55:34.643" Score="2" ViewCount="" Body="&lt;p&gt;Google &lt;a href=&quot;http://en.wikipedia.org/wiki/Google_Native_Client&quot; rel=&quot;nofollow&quot;&gt;Native Client&lt;/a&gt; (NaCl).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a nutshell, it's like ActiveX but more portable and safer. However, the implementation is under heavy development and not suitable for production use yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For even &lt;em&gt;more bleeding&lt;/em&gt; bleeding edge, you can use it with Google Go (see &lt;a href=&quot;http://programmers.stackexchange.com/questions/161/what-are-the-bleeding-edge-software-technologies-of-the-2010/242#242&quot;&gt;Chinmay Kanchi's answer&lt;/a&gt;).&lt;/p&gt;&#xA;" OwnerUserId="1303" LastActivityDate="2010-09-19T09:55:34.643" CommentCount="2" />
  <row Id="5266" PostTypeId="2" ParentId="5232" CreationDate="2010-09-19T10:04:18.840" Score="0" ViewCount="" Body="&lt;p&gt;I don't know if you are bad programmer or not, but I consider myself as a good programmer :D, even I don't know everything. For me, the difference of good and bad programmer is the capability and methodology for getting the job done. If I had a BASICA pgrammer, who can build the application I need in time that running well, and be able to maintain his code base to make reasonable change according to the request, so I'd consider him/her as a good programmer even he/she knows only BASICA and nothing else. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, feeling humble is also one of a good thing for programmers -- the career that needs constant learning all the time.&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-09-19T10:04:18.840" />
  <row Id="5267" PostTypeId="1" AcceptedAnswerId="5277" CreationDate="2010-09-19T10:30:47.607" Score="17" ViewCount="814" Body="&lt;p&gt;Well, probably I shouldn't even writing this posting now because the Deadline for my current project is due tomorrow morning and I'm just feeling sad, demotivated and depressed, because I know that I won't make it. Even pulling several all-nighters didn't change this fact. My head fills with excuses to justify myself and it's blocking my work process. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just started college two weeks ago, moved to a new town and this project is the largest and some kind important for my (semi) start-up, which I founded with some friends some months ago. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you handle this stress and how do you communicate these delays? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. Maybe these kind of questions doesn't belong here (some might argue)&lt;br&gt;&#xA;P.S.S. The next deadline is tomorrow morning ;)&lt;/p&gt;&#xA;" OwnerUserId="2572" LastEditorUserId="2572" LastEditorDisplayName="" LastEditDate="2010-12-06T01:30:12.323" LastActivityDate="2010-12-06T13:18:13.477" Title="I cannot reach my deadline. What to do?" Tags="&lt;experience&gt;&lt;motivation&gt;" AnswerCount="9" CommentCount="12" FavoriteCount="6" />
  <row Id="5268" PostTypeId="2" ParentId="5267" CreationDate="2010-09-19T10:44:11.997" Score="2" ViewCount="" Body="&lt;p&gt;Hi Henrik,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These questions might belong here and might not, but we're both &quot;here&quot; right now, so let's try and make something of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best way I've found to assess the work you have, and make a deadline, is to start by breaking the big assignment into smaller tasks. Instead of thinking about Input, Logic, UI, or whatever you have in your app, try to think about the actual work required. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, Input might require you to learn how to programatically read XML files, or it might require you to set up a SQL database. If you've set up a DB before then you know how long it takes &lt;strong&gt;you&lt;/strong&gt; to do it, if you don't then you can assess, or just assume it'll take you some time to learn it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some great tools to help you break down your task, estimate times, and track your time. I work with &lt;a href=&quot;http://www.fogbugz.com&quot; rel=&quot;nofollow&quot;&gt;FogBugz&lt;/a&gt; which is free for small startups and academic teams.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding the stress... I find that keeping a good estimate of my times and managing my work and personal schedule keeps me calm. Feeling secure about a deadline will make you enjoy your work more, and certainly feel less guilty about your leisure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck,&lt;br&gt;&#xA;Asaf&lt;/p&gt;&#xA;" OwnerUserId="2655" LastActivityDate="2010-09-19T10:44:11.997" />
  <row Id="5269" PostTypeId="1" CreationDate="2010-09-19T11:07:19.290" Score="15" ViewCount="570" Body="&lt;p&gt;I got a personal question for you guys out there: what's your reason for learning Clojure ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(For me, it's the same thing as it was with Java over C, it promises a better programming experience)&lt;/p&gt;&#xA;" OwnerUserId="2657" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2010-10-19T01:43:09.073" LastActivityDate="2011-04-15T04:05:52.357" Title="What's your reason to learn Clojure?" Tags="&lt;learning&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="5" />
  <row Id="5270" PostTypeId="2" ParentId="2291" CreationDate="2010-09-19T11:20:06.073" Score="0" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://clojure.org/&quot; rel=&quot;nofollow&quot;&gt;Clojure&lt;/a&gt;&lt;/h1&gt;&#xA;" OwnerUserId="2661" LastActivityDate="2010-09-19T11:20:06.073" CommunityOwnedDate="2010-09-19T11:20:06.073" />
  <row Id="5272" PostTypeId="2" ParentId="1006" CreationDate="2010-09-19T11:44:52.823" Score="3" ViewCount="" Body="&lt;p&gt;I would advice to use &lt;a href=&quot;http://www.pomodorotechnique.com/4.1.2.&quot; rel=&quot;nofollow&quot;&gt;pomodoro technique&lt;/a&gt;. In short, the technique is about decomposing your work into 25 minutes sub-jobs. After every 25 minutes, you take a 5 minute break. The aim of the break is to relax and prepare for the next run. I really like this technique however it is not very easy to really stick to it. This technique helps me to:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Really focus on my task &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It forces me to take breaks when I&#xA;can regain energy for the next&#xA;sprint.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Learn me how to better estimate&#xA;effort required for a task2.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2648" LastEditorUserId="2648" LastEditorDisplayName="" LastEditDate="2010-09-19T12:04:52.737" LastActivityDate="2010-09-19T12:04:52.737" CommentCount="3" />
  <row Id="5273" PostTypeId="2" ParentId="5037" CreationDate="2010-09-19T11:50:48.867" Score="0" ViewCount="" Body="&lt;p&gt;turbo pascal. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;even though it got me started with programming during high school, i wish i learned something more usefull&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-09-19T11:50:48.867" />
  <row Id="5274" PostTypeId="2" ParentId="5037" CreationDate="2010-09-19T11:53:44.723" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;PHP&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Took me some time to write clean code and get used to strongly typed languages afterwards.&lt;/p&gt;&#xA;" OwnerUserId="2572" LastActivityDate="2010-09-19T11:53:44.723" />
  <row Id="5275" PostTypeId="2" ParentId="161" CreationDate="2010-09-19T12:00:28.513" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/WebGL&quot; rel=&quot;nofollow&quot;&gt;WebGL&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any technology that lets you &lt;a href=&quot;http://code.google.com/p/quake2-gwt-port/&quot; rel=&quot;nofollow&quot;&gt;port Quake II to JavaScript&lt;/a&gt; is cool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also find the &lt;a href=&quot;http://learningwebgl.com/blog/?p=1828&quot; rel=&quot;nofollow&quot;&gt;GPGPU&lt;/a&gt; angle fascinating.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-19T12:00:28.513" />
  <row Id="5276" PostTypeId="2" ParentId="5267" CreationDate="2010-09-19T12:05:50.730" Score="1" ViewCount="" Body="&lt;p&gt;If you can't make a deadline, you need to discuss it as soon as possible with the person expecting you to keep to it. It is only fair to them to keep them informed. Discuss the problem, discuss realistic solutions, and come to a new agreement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. You should keep people in the loop if the possibility exists that a deadline won't be reached. In other words, if you're pulling all-nighters and not keeping people informed you're that hard up against the wall, you're not communicating appropriately. I can get really annoyed when developers on my team try to hide from me that they're behind schedule. I can't solve schedule problems I don't know about.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-19T12:05:50.730" />
  <row Id="5277" PostTypeId="2" ParentId="5267" CreationDate="2010-09-19T12:08:07.643" Score="40" ViewCount="" Body="&lt;p&gt;Communicating delays early is probably the most important thing to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A term that gets bandied about a lot is &quot;manage expectations&quot;.  That just means you should let people know early if there's a problem. If they're expecting that you'll be finished tomorrow, then there's pressure on you to deliver.  If you told them at the start of last week &quot;Not looking likely i'll be finished...&quot;, then midweek told them &quot;No chance I'll be finished...&quot; at least they know.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of the time, the people you report to have to report to someone else.  If you've been saying all along &quot;yeah everything's great&quot;, they'll be passing the message on, and everyone will think everything's ok.  Then when you get to the deadline and say &quot;Not quite done...&quot;, they then are in a difficult position as they have to pass that message on, which can reflect badly on them...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regular, honest, updates are always the best thing.&lt;/p&gt;&#xA;" OwnerUserId="55" LastActivityDate="2010-09-19T12:08:07.643" CommentCount="7" />
  <row Id="5279" PostTypeId="2" ParentId="5259" CreationDate="2010-09-19T12:25:56.230" Score="6" ViewCount="" Body="&lt;p&gt;I think he just needs to do something else besides academic projects. If all you do is academic work then something like this can get boring&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you said, just join/start an open source project in what ever language he's learning that does something interesting. Maybe its a robot, a very simple game, video player, or anything else that he finds fun or interesting but where there is usually visible progress. Then write it out. You should be there to help him out and motivate him throughout the process. And if you want it even simpler, write an abstraction layer so that he doesn't have to do much of the boilerplate code to get things done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if you think its the language or static-typing in general, then do try another language thats more beginner friendly, like PHP or Python; a language that he can pick up quickly. Then do what I said above. I wouldn't take this tactic lightly though, as learning a new language when he's already stressed about one might just backfire.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-19T12:25:56.230" CommentCount="1" />
  <row Id="5280" PostTypeId="2" ParentId="16" CreationDate="2010-09-19T12:52:20.400" Score="1" ViewCount="" Body="&lt;p&gt;No, I don't think dynamically typed languages deserve all the criticism. (Or if you prefer, they deserve as much criticism as statically typed languages.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience (and I make no attempt at trying to generalise this statement), the programmers who criticise dynamic languages haven't used them. The conversation usually goes &quot;but with static typing the compiler catches so many errors!&quot; and I say &quot;well, that's just not a problem, in my experience&quot;. (Usually the other programmer's from a Java, Delphi or similar background; I don't know any Haskell or ML programmers.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only thing that really gripes me is when someone claims that technique Foo can't &lt;em&gt;possibly&lt;/em&gt; be done (or might be very hard to do) in a dynamically typed language... when that technique was invented in, by and for a dynamically typed language. IDEs? Smalltalk. Automatic refactoring? Smalltalk. Callers-of/implementors-of? Smalltalk.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-19T12:52:20.400" CommentCount="1" />
  <row Id="5281" PostTypeId="2" ParentId="5267" CreationDate="2010-09-19T13:13:55.470" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;How do you handle this stress and how do you communicate these delays?&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Communication is one of the main things in &lt;a href=&quot;http://en.wikipedia.org/wiki/Agile_software_development&quot; rel=&quot;nofollow&quot;&gt;Agile&lt;/a&gt; programming. You should communicate your progress every day. This way, you can perceive the delay comming and then take actions to deal with it. Even if you can't use agile methodologies, &lt;a href=&quot;http://en.wikipedia.org/wiki/Stand-up_meeting&quot; rel=&quot;nofollow&quot;&gt;stand-up meetings&lt;/a&gt; are a good way to start. Of course, you should take actions when you see the problems comming, otherwise, the meetings will worth nothing.&lt;/p&gt;&#xA;" OwnerUserId="1124" LastActivityDate="2010-09-19T13:13:55.470" />
  <row Id="5282" PostTypeId="2" ParentId="5057" CreationDate="2010-09-19T13:29:08.310" Score="4" ViewCount="" Body="&lt;p&gt;Programming language communities are religions, and like all religions they attract puritans and fundamentalists.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-19T13:29:08.310" />
  <row Id="5283" PostTypeId="2" ParentId="4693" CreationDate="2010-09-19T13:36:14.320" Score="0" ViewCount="" Body="&lt;p&gt;I think the same could be said about IT people in general, and it largely comes down to having such an in depth knowledge of what it is we're doing that when half-wit manager comes in and says &quot;no, we can't do that&quot;, even though you as the IT/programmer guy have run the model through your head dozens of times or likely encountered a similar experience in the past. You have to develop some sort of arrogance to get around the managers who feel like they are the be-all end-all to a project because they have &quot;manager&quot; in their title.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We don't see the world as a hierarchy as they do, we see them and everyone else as the same. They're morons. And they're morons with financial decision-making.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't go to the doctor and tell the doctor they're wrong about your diagnosis (I hope not), you don't take your car to the dealer with a problem and tell them they're wrong (I would hope not either).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So why sit in a meeting and tell a programmer/IT guru they're wrong when it comes to technology decision making?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In order to deal with such people, you &lt;em&gt;have&lt;/em&gt; to develop an arrogance about your skills. You have to push it that you know what you're talking about.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-19T13:36:14.320" CommunityOwnedDate="2010-09-19T15:29:19.433" />
  <row Id="5284" PostTypeId="2" ParentId="4693" CreationDate="2010-09-19T13:59:48.537" Score="0" ViewCount="" Body="&lt;p&gt;Maybe they are contaminated by French, using too much Cartesian thinking from French philosopher René Descartes...&#xA;Would french programers be more arrogant than non french programers ? or the origin of arrogance would be too hard to distinguish from both potential causes...&lt;/p&gt;&#xA;" LastActivityDate="2010-09-19T13:59:48.537" CommunityOwnedDate="2010-09-19T15:29:19.433" />
  <row Id="5285" PostTypeId="2" ParentId="5267" CreationDate="2010-09-19T14:36:24.553" Score="9" ViewCount="" Body="&lt;p&gt;Since it sounds like you are a newer developer I think that there is one important point the other answers here miss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;DEADLINES GET MISSED.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Communicating the situation and explaining the reasons why are important, but I have seen far too many new devs work themselves into a ball of stress (or try to hide the problem in worst case) over blowing a deadline.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It happens, it will always happen.  You try to minimize it but sometimes the work just isn't going to go the way you expect or something in life is going to get in your way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I blew to deadlines last week.  Requirements missed an important logical loophole in a work flow and the work flow would not have served it's intended purpose IRL without going back and addressing that, nobody on the team found a reasonable fix short of re-writing it, so I am.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Explain the situation as early as you know there may be an issue, try to minimize the impact, but sometimes it is going to happen sometimes.  If the people you are working for/with cannot understand that (assuming you don't miss too many) you likely are not working for the right people&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-19T14:36:24.553" CommentCount="2" />
  <row Id="5286" PostTypeId="2" ParentId="4693" CreationDate="2010-09-19T14:38:36.707" Score="17" ViewCount="" Body="&lt;p&gt;Because:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;We deal with vague, non qualified questions (just like this question, actually) all day (ie: &quot;It doesn't work!&quot;. That's totally void of any information we could use to fix the problem, or accurately understand your current problem and give a better answer).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;We're often managed by non-programmers. It's worse if we're managed by people who are new to managing software projects.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When I've tried to explain a complex system in non-engineer terms, I've sometimes got back, &quot;Oh, that doesn't sound that hard, what if we just reverse the polarity&quot; (or something that, while it makes sense in the context of the analogy, doesn't make sense in the details). So now I've got to back track in my analogy, looking (in their eyes) like an idiot because I didn't see the &quot;obvious and simple&quot; answer, while I explain to them that the system really isn't a race car, so pulling the engine out would gut most of the project and destroy most of the work done so far, actually. I've dumbed it down enough to explain it to a non technical person (you), but the devil's in the details I'm not explaining to you.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When questioned about the functionality of the program, I've gotten into the habit of opening up the source code in that particular section and making statements based on that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suspect that makes me look arrogant, because I am looking at the ultimate source of truth in this matter (What the system is actually programmed to do, which might differ from what you &lt;em&gt;thought&lt;/em&gt; it should do (you fault), or might differ from the spec you gave us (our fault).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;While in one way engineers are replaceable parts, in another way we know (rightly or wrongly) that the success of your project depends on us. We have the most context and understanding of the system, we understand the working environment, etc etc. You can replace us, but we know that that means a long-ish ramp up period (even using a standard technology stack) for the new guy, where he won't be as productive as us. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Part of this is fact (there will be a ramp up period), and part of this might be arrogance (the new guy won't be as productive as us), but depending on the engineer you're replacing, might actually be somewhat closer to fact.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is even worse if the engineer knows that the engineer team has cobbled the system up with the electronic equivalent of spit, balling wire, and magic only 4 people in the world (including him) understand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thus, what you might see as arrogance. Bob knows he's the one holding up the company, thus he might be arrogant about it a bit. When you fire Bob you realize too late that he really &lt;em&gt;was&lt;/em&gt; the guy holding up the company.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The good engineers know that it's very hard, if not impossible to measure programmer productivity&lt;br&gt;&#xA;(&quot;I need a metric to manage programmer productivity... umm... hey, how about &lt;a href=&quot;http://folklore.org/StoryView.py?project=Macintosh&amp;amp;story=Negative_2000_Lines_Of_Code.txt&quot; rel=&quot;nofollow&quot;&gt;lines of code written&lt;/a&gt;. That'll work great, because all these programmers are doing is typing on computers...&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the engineer has been around the block before, he's either seen an attempt made (and fail), or has done reading himself about the topic (at the very least, seen SO questions like &lt;a href=&quot;http://stackoverflow.com/questions/324399/what-is-a-fair-productivity-measurement-technique-for-programmers&quot;&gt;What is a fair productivity measuring technique for programmers&lt;/a&gt;. So the (non-technical) manager comes up with a new way of measuring productivity... and we've seen it fail before. Also, we're really smart people, and can (if we wanted to) game about any metric you tossed at us, or at least poke holes in it until you give up.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;This is not just a programming thing. Ever seen those war movies where the green LT comes into a troop of experienced soliders, and the soliders snort at the LT for the first hour of the movie? Yeahh... Same goes for the green radio operator, for that matter.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;We might be arrogant, but we're (often) the first people to blame when a project fails. Some of what you see might be defenses around, or because of, exactly that.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;We've seen non technical people (especially managers) do all manner of stupid things that, even though this industry is only 60 some odd years old, that were proven wrong 50 years ago. For example, adding people to a late project will just make it later (and no, your project is not a special exception to this rule).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Although I will admit to a certain bit of arrogance, the rock star programmer mentality. I will admit that sometimes managing programmers is like herding cats, or carrying water without a bucket. (In the latter case, if you hold the water loose, you'll get more water to the destination, but if you squeeze your water tight so you don't lose it, well, actually you will lose it. Certain programmers don't like to be managed tightly, for example having a manager managing resources and their capacity + overtime divided by this line on a Gnatt chart... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have a suspicion for these Gnatt charts, especially if we've been on projects where the &quot;1.0 delivered on March 20&quot; line has been drawn arbitrarily and without regard for the actual possibility of the task... which means impossible deadlines for us. Which means overtime, or getting blamed about missing deadlines (or both! What fun!)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;We might appear arrogant because (possibly) we've been in this business longer than you. That business might be programming, it might be actual working with (or a larger working knowledge about) computers.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;We bill at a high hourly rate, so we're often very conscious and proud of this fact. (&quot;You just wasted almost $200 by starting out this 6 engineer conference call by talking about baseball for 15 minutes. I hope you're happy with what you just cost the client&quot;)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Having people come to us every week to &quot;fix&quot; their printer (aka: turn it on), when they show willful ignorance on this topic (&quot;Oh, I don't know about all these computers&quot;, while we're thinking, &quot;It's the 21st century, you've used computers in every office you've been in for the last 20 years... seriously? PAY ATTENTION.&quot;). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Family and friends are one thing (sure, Aunt Carol), but in an office environment we expect a certain level of... competence around the tools you're using every day to get your job done.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2706" LastEditorUserId="21940" LastEditorDisplayName="" LastEditDate="2011-04-05T07:08:46.190" LastActivityDate="2011-04-05T07:08:46.190" CommunityOwnedDate="2010-09-19T15:29:19.433" CommentCount="3" />
  <row Id="5287" PostTypeId="2" ParentId="4693" CreationDate="2010-09-19T14:46:14.733" Score="6" ViewCount="" Body="&lt;p&gt;I would contest the idea that &quot;many&quot; programmers are arrogant - or at least no more a percentage than in any other technical field. My evidence for the defence:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Look at the wealth of open-source software that many developers contribute their time and effort to for free. It takes a degree of humility to devote a lot of expenditure to an enterprise that has no reward in itself apart from satisfaction of producing something that will be of benefit to other people. When religious people do the same we call them saints!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Look at the success of &lt;a href=&quot;http://en.wikipedia.org/wiki/Stack_Overflow&quot; rel=&quot;nofollow&quot;&gt;Stack Overflow&lt;/a&gt;, a community-led site where many top developers devote a lot of their time to helping people. OK, there is definitely a part of this that is about ego and showing-off, but even so top-contributors like &lt;a href=&quot;http://stackoverflow.com/users/22656/jon-skeet&quot;&gt;Jon Skeet&lt;/a&gt; et al. devote a lot of time to teaching and helping others and answering questions.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A lot of developers I know are eager to learn. I can only speak from self-experience, but I will happily abandon doing things &quot;my way&quot; if I can see that someone else has a better way of achieving the same thing. I'm sure this is true for a lot of other developers. After all, good developers are people who continually improve, and one of the major ways you improve is by learning from others. Therefore you can't be a good developer and be totally arrogant.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="607" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2010-11-13T12:14:58.137" LastActivityDate="2010-11-13T12:14:58.137" CommunityOwnedDate="2010-09-19T15:29:19.433" CommentCount="1" />
  <row Id="5288" PostTypeId="2" ParentId="3684" CreationDate="2010-09-19T15:03:55.077" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Assembly&lt;/strong&gt; sure needs a Cheat Sheet:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/LhBsT.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-19T15:03:55.077" CommentCount="3" />
  <row Id="5289" PostTypeId="2" ParentId="4693" CreationDate="2010-09-19T15:14:26.753" Score="3" ViewCount="" Body="&lt;p&gt;According to Allan Cooper, programmers take revenge from the wet towel slaps&#xA; they got by the jocks in highschool. &lt;/p&gt;&#xA;" LastActivityDate="2010-09-19T15:14:26.753" CommunityOwnedDate="2010-09-19T15:29:19.433" />
  <row Id="5291" PostTypeId="1" AcceptedAnswerId="5323" CreationDate="2010-09-19T15:46:19.340" Score="1" ViewCount="64" Body="&lt;p&gt;I'm on the move a lot and can't always bring my laptop with me, but would still like to work on my website. There are some web based FTP clients out there but none to my liking. So, I'm looking for something like &lt;a href=&quot;http://www.net2ftp.com&quot; rel=&quot;nofollow&quot;&gt;net2ftp.com&lt;/a&gt;, but with a better editing environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone know of such a service?&lt;/p&gt;&#xA;" OwnerUserId="1259" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T16:02:57.227" LastActivityDate="2010-10-02T16:02:57.227" ClosedDate="2010-09-19T18:58:22.840" Title="What's a good web based FTP service" Tags="&lt;ide&gt;&lt;web-development&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="5292" PostTypeId="2" ParentId="5232" CreationDate="2010-09-19T15:50:02.907" Score="20" ViewCount="" Body="&lt;p&gt;I call it the &quot;Freshman Feeling&quot;.  When it seems like everyone else has it together, is going faster, knows all of the buildings on campus, isn't struggling, etc.  In programming, I'm disoriented, uncomfortable, unsure whether or not I'll meet the deadline - it's fear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The feeling goes away when I acknowledge the fear for what it is, then ignore it, dive in and begin to learn - struggling through each problem one at a time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing is, now, I use it as my gauge to tell me when I'm really learning.  If I don't feel it once in a while, I know I'm not moving forward - I'm stagnant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the programmers at work has this motto, &quot;Comfort is the enemy.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That feeling you talk about can be your best friend if you want to get better.&lt;/p&gt;&#xA;" OwnerUserId="2671" LastActivityDate="2010-09-19T15:50:02.907" CommentCount="3" />
  <row Id="5293" PostTypeId="2" ParentId="4693" CreationDate="2010-09-19T15:50:17.713" Score="6" ViewCount="" Body="&lt;p&gt;If you think programmers are arrogant, then you must qualify &lt;a href=&quot;http://en.wikipedia.org/wiki/Chemist&quot; rel=&quot;nofollow&quot;&gt;chemists&lt;/a&gt; and many people in the hard sciences in that way as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We try to state facts, as wishing won't change them. Same for the sciences. Other programmers understand this. Other chemists understand this. Other physicists understand this. Managers seem to think that if they ask nicely, it will change the code as it is already written. This is not more the case than it would change the physical constants of the universe. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are damned if we do, damned if we don't. I have, in the past been told I was being condescending when I explained something in simplified terms so a layman could understand it. When I try and explain it in technical terms, I am asked to explain it to a layman.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Social interaction IS important. But being 'nice' doesn't change the facts on the ground. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Management often makes schedules without any understanding of what we can do and when. They will promise feature Z before Y, when from a code view, Y may be easier, and we need to build Y to get Z. Then when the schedule slips, we invariably get blamed, even though it is management's fault.&lt;/p&gt;&#xA;" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2010-11-13T12:11:14.143" LastActivityDate="2010-11-13T12:11:14.143" CommunityOwnedDate="2010-09-19T15:50:17.713" CommentCount="1" />
  <row Id="5294" PostTypeId="2" ParentId="5120" CreationDate="2010-09-19T15:54:35.633" Score="1" ViewCount="" Body="&lt;p&gt;The whole team has to kick his ass ! Believe me, his behavior will change forever.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-19T15:54:35.633" />
  <row Id="5295" PostTypeId="2" ParentId="5267" CreationDate="2010-09-19T15:58:48.277" Score="1" ViewCount="" Body="&lt;p&gt;You've been given plenty of good advice on how to handle missed deadlines: communicate delays early, stay aware of your progress, always be wary if unknown technologies are involved. Having that one covered, let me now tell you how to avoid them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've always been terrible when it came to setting deadlines for myself. Like most programmers, I often ignored &quot;trivial&quot; tasks and focussed on the interesting ones. But the trivial things are often the ones that make up the bulk of the work and also the ones that'll always come back to bite you in the ass at some point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's no way to easily account for these tasks. Instead, you should try to come up with an estimate for what you &lt;em&gt;think&lt;/em&gt; you'll have to do and then double that estimate as a start (depending on how badly you miss your deadlines, you might even have to triple them). This will seem like plenty of time -- don't be mislead by your programmer machismo again, just stick to your estimate whenever somebody asks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll most likely find that you end up with a deadline that leaves you plenty of room after you think you're already done. While it's great to finish projects way ahead of time, this is also likely to lead to false expectations. Instead, try to use some of that time for additional testing (you &lt;em&gt;are&lt;/em&gt; testing your code, right?), documentation, refactoring and other polish. If you have time left after doing all that, feel free to hand in the project now. Few managers will complain if projects are completed &lt;em&gt;too early&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep on doing this for the next couple of projects. Depending on how much time you have left after &lt;em&gt;finishing&lt;/em&gt; the project (i.e. making it work), you might want to raise or lower your next estimates. As your perception of how much time you'll need is going to be highly subjective, nobody can really tell you how much you need to adjust that factor (I find that my factor usually lies between 50-100%, though it's shrinking now that my intuitive estimates get better). Just keep in mind that you'll always need to leave a small margin for unforeseeable problems along the road (e.g. delays, interruptions or personal reasons).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;tl;dr:&lt;/strong&gt; If your estimates don't work, double them and fine-tune them as you get a better understanding of how much time you need.&lt;/p&gt;&#xA;" OwnerUserId="2734" LastActivityDate="2010-09-19T15:58:48.277" />
  <row Id="5296" PostTypeId="2" ParentId="5215" CreationDate="2010-09-19T16:06:55.020" Score="4" ViewCount="" Body="&lt;p&gt;User group meetings are free, provide some networking opportunities, and are kind of a box of chocolates - some months the topic may have no relevance at all to what you do, and some months it may be outstandingly great. They also connect you to the larger community so that you can learn about code camps and small local conferences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code camps are free and local conferences are generally a few hundred dollars. They don't have an advertising budget, but their organizers will come to user group meetings and announce them. Often there is also a discount for user group members.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then there are more like national conferences. They cost a thousand or two and you probably have to buy a plane ticket, book a hotel, eat in restaurants etc. These are a big investment. If you are going only for the sessions you will not get your money's worth. You need to be going for the sessions, for the trade show (because you're going to find a vendor you didn't know existed that is going to save you months of effort for a reasonable price), for networking, and so on. If you don't know how to work a show and get the full value from the on-site experience, don't go yet. Start with something smaller and cheaper so you can learn how it works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I go to &lt;a href=&quot;http://www.microsoftpdc.com&quot; rel=&quot;nofollow&quot;&gt;PDC&lt;/a&gt; some years, speak at &lt;a href=&quot;http://www.msteched.com/&quot; rel=&quot;nofollow&quot;&gt;Tech Ed&lt;/a&gt; every year (I would not attend the US one if I wasn't speaking, and probably would attend Europe if I lived there, speaking or not), speak at &lt;a href=&quot;http://www.devteach.com&quot; rel=&quot;nofollow&quot;&gt;DevTeach&lt;/a&gt; when it's convenient, and recommend it to local attendees, speak at Microsoft Canada events like &lt;a href=&quot;http://www.techdays.ca&quot; rel=&quot;nofollow&quot;&gt;TechDays&lt;/a&gt; and recommend it to local attendees, try very hard never to miss a local code camp, and go to 3 or 4 different local user groups as often as my schedule permits. If you have no idea what is happening in your geography and your technology, start with user groups - that's where you'll learn what's going on.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-09-19T16:06:55.020" CommentCount="1" />
  <row Id="5297" PostTypeId="1" AcceptedAnswerId="5310" CreationDate="2010-09-19T16:07:40.773" Score="9" ViewCount="543" Body="&lt;p&gt;I've only been a year in the industry and I've had some problems making estimates for specific tasks. Before you close this, yes, I've already read this: &lt;a href=&quot;http://programmers.stackexchange.com/questions/648/how-to-respond-when-you-are-asked-for-an-estimate&quot;&gt;http://programmers.stackexchange.com/questions/648/how-to-respond-when-you-are-asked-for-an-estimate&lt;/a&gt; and that's about the same problem I'm having. But I'm looking for a more specific gauge of experiences, something quantifiable or probably other programmer's average performances which I should aim for and base my estimates.  The answers range from weeks, and I was looking more for an answer on the level of a task assigned for a day or so. (Note that this doesn't include submitting for QA or documentations, just the actual development time from writing tests if I used TDD, to making the page, before having it submitted to testing)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My current rate right now is as follows (on ASP.NET webforms):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Right now, I'm able to develop a simple data entry page with a grid listing (no complex logic, just Creating and Reading) on an already built architecture, given one full day's (8 hours) time.  &lt;/li&gt;&#xA;&lt;li&gt;Adding complex functionality, and Update and Delete pages add another full day to the task.&lt;/li&gt;&#xA;&lt;li&gt;If I have to start the page from scratch (no solution, no existing website) it takes me another full day.&lt;/li&gt;&#xA;&lt;li&gt;(Not always) but if I encounter something new or haven't done yet it takes me another full day.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Whenever I make an estimate that's longer than the expected I feel that others think that I'm lagging a lot behind everyone else. I'm just concerned as there have been expectations that when it's just one page it should take me no more than a full day. Yes, there definitely is more room for improvement.  There always is. I have a lot to learn. But I would like to know if my current rate is way too slow, just average, or average for someone no longer than a year in the industry. &lt;/p&gt;&#xA;" OwnerUserId="1668" LastActivityDate="2010-10-13T19:40:15.627" Title="Am I programming too slow?" Tags="&lt;time-management&gt;&lt;estimation&gt;" AnswerCount="3" CommentCount="4" FavoriteCount="4" />
  <row Id="5298" PostTypeId="1" AcceptedAnswerId="5301" CreationDate="2010-09-19T16:07:46.013" Score="10" ViewCount="146" Body="&lt;p&gt;So, I have this opportunity to specialize in a vendor software package (like SAS, SAP, PeopleSoft, Pega, Lombardi BPM...).  You know the deal - they need a coder to learn their package and &lt;em&gt;&quot;there's all this demand for the skill&quot;&lt;/em&gt;; &lt;em&gt;&quot;big growing companies are using it&quot;&lt;/em&gt;, etc, etc.  And (now, at least), the money's better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm worried about whether or not I'll be able to keep my &quot;normal&quot; programming skills current.&lt;br&gt;&#xA;I'm worried about what it will look like on a resume if I switch back to &quot;normal&quot; programming in a couple of years.&lt;br&gt;&#xA;I'm worried about whether or not it will be fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think?&lt;/p&gt;&#xA;" OwnerUserId="2671" LastEditorUserId="2671" LastEditorDisplayName="" LastEditDate="2010-09-19T17:53:19.173" LastActivityDate="2010-09-19T17:53:19.173" Title="Specializing in a Vendor Software Package - am I putting my career at risk?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;career-advice&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="5300" PostTypeId="2" ParentId="1717" CreationDate="2010-09-19T16:20:29.980" Score="2" ViewCount="" Body="&lt;p&gt;I truly believe that renaming Avalon to Windows Presentation Foundation is responsible for at least 25% drop in confidence and enthusiasm regarding this technology.&lt;/p&gt;&#xA;" OwnerUserId="280" LastActivityDate="2010-09-19T16:20:29.980" CommentCount="2" />
  <row Id="5301" PostTypeId="2" ParentId="5298" CreationDate="2010-09-19T16:20:53.353" Score="6" ViewCount="" Body="&lt;p&gt;The vendor software packages you list are definitely a shift, but not so much away from normal programming.  You'll find that a SAP expert spends about 10% of his time on software problems, and 90% on business problems.  So it's a shift away from programming in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is definitely a good career move.  You won't be putting your career at risk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SAP or SAS are significantly less fun tho.  There is generally very little room for expriment.  Switching to vendor specific packages is advisable when:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You need money&lt;/li&gt;&#xA;&lt;li&gt;You start valuing other things in life over work&lt;/li&gt;&#xA;&lt;li&gt;You're interested in a career move away from programming&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2752" LastActivityDate="2010-09-19T16:20:53.353" />
  <row Id="5302" PostTypeId="2" ParentId="4693" CreationDate="2010-09-19T16:22:49.223" Score="8" ViewCount="" Body="&lt;p&gt;I'm a programmer and I fully agree, if a doctor told you about your medical problems in medical jargon and treated you like an idiot for not understanding you would call him arrogant, most of my colleagues seem to believe that because they know the meaning of certain buzzwords and acronyms they're somehow superior to everyone else. It's also not as if any of it is really that hard to understand. Everyone would know what a &quot;front-end&quot; is if explained in plain English (or whatever your tongue may be) but that would demystify the entire thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen clients make horrible business decisions, not because they didn't know what they wanted but because none of the tech types would explain to them in simple terms what exactly they'd be getting one way or another. To continue with the medical analogy that's like explaining with some jargon that a patient would be better off if he just had the leg amputated instead of putting a band aid on the wound and the patient trusting the experts advice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love programming but I hate most programmers I come in contact with exactly for that reason. What I think is hilarious though is that the most of the more skilled programmers I've come in contact with have this a lot less than the ones who got a degree and haven't learned anything useful since (but are still convinced that they know best). It seems a universal truth in business that the loudest ones make the rules, not the smartest ones.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-19T16:22:49.223" CommunityOwnedDate="2010-09-19T16:22:49.223" />
  <row Id="5303" PostTypeId="2" ParentId="16" CreationDate="2010-09-19T16:33:13.410" Score="1" ViewCount="" Body="&lt;p&gt;Note: this is mostly subjective and based on my experiences and impressions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dynamically typed languages are very different from statically typed languages. These differences probably become more important in heavyweight enterprise software than in most other applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Statically typed languages tend to be very prescriptive. A method will only take input that exactly matches its signature. Access levels tend to be very important and interfaces are defined explicitly, with verbose but unambiguous restrictions in place to enforce those definitions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dynamically typed languages on the other hand are very much pragmatic. Type conversions often happen implicitly, functions may even play along if you provide the wrong type of input as long as it behaves sufficiently similar. In languages like Python, even access levels will be based on contract rather than technical restrictions (i.e. it's only &lt;code&gt;private&lt;/code&gt; because you're told not to use it and it has a funny name).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many programmers prefer dynamic languages because they (arguably) allow rapid prototyping. The code often ends up shorter (if only because of the lack of type declarations) and if you want to violate proper protocol because you need a quick and dirty solution or want to test something, that's easily possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, the reason that &quot;enterprisey&quot; companies often prefer statically typed languages is exactly that they are more restrictive and more explicit about those restrictions. Though in practice even statically typed code can be broken by idiots with a compiler, many problems will be much more visible much earlier into the process (i.e. prior to runtime). This means that even if the codebase is large, monolithic and complex, many errors can be caught easily, without having to run the code or send it over to the QA department.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason that benefit doesn't outweigh the downsides for many programmers outside that environment is that these are errors that will often be easily caught by thorough inspection of the code or even by attempting to run it. Especially when following a test-driven methodology, these errors often become trivial to catch and easy to fix. Also, with many such companies having a much shorter release cycle, productivity is often more important than rigidity and a lot of (basic) testing is being done by the developers themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other reason that enterprisey corporations don't use dynamically typed languages much is legacy code. As silly as it may seem to us nerds, large corporations will often stick to solutions that work, even if they are well past their shelf-life. This is why so many major companies enforce Internet Explorer 6 and are so slow to upgrade their OSes. This is also why they will often write new code in &quot;old&quot; languages (e.g. ancient versions of Java): it's much easier to add a few lines of code to an unliving piece of software than to get approval for a complete rewrite in a new language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;tl;dr:&lt;/strong&gt; static languages feel more like bureaucracy, so enterprisey managers like them better.&lt;/p&gt;&#xA;" OwnerUserId="2734" LastActivityDate="2010-09-19T16:33:13.410" />
  <row Id="5304" PostTypeId="2" ParentId="5269" CreationDate="2010-09-19T16:34:52.413" Score="9" ViewCount="" Body="&lt;p&gt;I can think of at least two major aspects of your question: Why learn a Lisp? and, Why learn this Lisp dialect, Clojure?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lisp is worth learning because it is elegant, powerful, and supports multiple paradigms (functional, OO, declarative).  I won't try to repeat badly and too briefly what others have written more eloquently, as über-hackers - people at the very top of CS and software - have long advocated for learning and using Lisp:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Paul Graham's &lt;a href=&quot;http://www.paulgraham.com/lisp.html&quot; rel=&quot;nofollow&quot;&gt;Lisp page&lt;/a&gt; and especially, &lt;a href=&quot;http://www.paulgraham.com/avg.html&quot; rel=&quot;nofollow&quot;&gt;Beating the Averages&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Peter Norvig, &lt;a href=&quot;http://norvig.com/paip-preface.html#whylisp&quot; rel=&quot;nofollow&quot;&gt;Why Lisp?&lt;/a&gt; from the classic book &lt;em&gt;&lt;a href=&quot;http://norvig.com/paip.html&quot; rel=&quot;nofollow&quot;&gt;Paradigms of Artificial Intelligence Programming&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Norvig, in turn, called SICP the greatest introduction to computer science ever written - and SICP teaches via Scheme/Lisp: &lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html&quot; rel=&quot;nofollow&quot;&gt;http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As for the second part, Why learn this Lisp dialect called Clojure?  Well besides having all the goodness of the Lisp approach, Clojure is functional in philosophy (immutable data structures, lazy evaluation), was specifically designed to handle concurrency nicely (software transactional memory, agents) in an increasingly &lt;a href=&quot;http://www.pcworld.com/businesscenter/article/198692/seamicros_cloud_server_sports_512_atom_processors.html&quot; rel=&quot;nofollow&quot;&gt;multicore world&lt;/a&gt;, and has access to all Java libraries.  That combination packs quite a lot of power, and makes it an exciting language to learn and develop with.&lt;/p&gt;&#xA;" OwnerUserId="2026" LastEditorUserId="2026" LastEditorDisplayName="" LastEditDate="2010-09-19T17:11:28.610" LastActivityDate="2010-09-19T17:11:28.610" CommentCount="1" />
  <row Id="5305" PostTypeId="2" ParentId="4522" CreationDate="2010-09-19T16:35:30.617" Score="1" ViewCount="" Body="&lt;p&gt;Have found using VMs a good way of keeping a client-specific development setup.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a past consultancy company, Devs knew that firing up a specific VM meant you had a working environment for developing/testing and deploying the software we supported for that client. Particularly useful when supporting some real oddball systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For new apps, you'd have the latest and greatest setup on your main Dev machine. But what about when you need to bugfix some old VB6 app that your company still supports. Fancy installing Visual Studio 6 on your lovely clean VS2010 machine? I don't think so!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also meant it was pretty easy for any Dev to support any client.&lt;/p&gt;&#xA;" OwnerUserId="2757" LastActivityDate="2010-09-19T16:35:30.617" />
  <row Id="5306" PostTypeId="2" ParentId="3684" CreationDate="2010-09-19T16:40:44.660" Score="-2" ViewCount="" Body="&lt;p&gt;I'm a big fan of &lt;a href=&quot;http://refcardz.dzone.com/&quot; rel=&quot;nofollow&quot;&gt;RefCardz&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-09-19T16:40:44.660" CommentCount="1" />
  <row Id="5307" PostTypeId="2" ParentId="1717" CreationDate="2010-09-19T16:44:15.490" Score="15" ViewCount="" Body="&lt;p&gt;It's very clever - it makes them seem like the default choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So Microsoft becomes synonymous with word processing (MS Word), GUIs (windows), SQL etc&#xA;They are subconsciously the obvious choice, you have to make a conscious decision to trust WibbleBlah for your new word processor over whatever Microsoft make.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's as if Ford called their products the car, or the truck.&lt;/p&gt;&#xA;" OwnerUserId="2021" LastActivityDate="2010-09-19T16:44:15.490" CommentCount="2" />
  <row Id="5308" PostTypeId="2" ParentId="3684" CreationDate="2010-09-19T16:46:54.023" Score="0" ViewCount="" Body="&lt;p&gt;I turn to the &lt;a href=&quot;http://www.lagmonster.org/docs/vi.html&quot; rel=&quot;nofollow&quot;&gt;vi cheat sheet&lt;/a&gt; frequently at work. (vi is not my editor of choice)&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-09-19T16:46:54.023" />
  <row Id="5309" PostTypeId="2" ParentId="1717" CreationDate="2010-09-19T16:49:05.357" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Apple&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keynote&lt;/p&gt;&#xA;&#xA;&lt;p&gt;iWork&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Final Cut Pro&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Garage Band&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Adobe&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Illustrator&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Photoshop&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(don't mention Dreamweaver or ColdFusion they are bought products)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-10-13T06:55:43.227" LastActivityDate="2010-10-13T06:55:43.227" />
  <row Id="5310" PostTypeId="2" ParentId="5297" CreationDate="2010-09-19T16:53:30.660" Score="7" ViewCount="" Body="&lt;p&gt;If you're programming for a job, and your superiors are happy with the rate you're turning stuff out at, then I'd say you're doing fine.  As you've lasted a year, they're clearly not outraged with your output.  Also, you've &lt;em&gt;only&lt;/em&gt; been there a year, and assuming they've been managing people for more than a day, they know that there's a learning curve when you're still green.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for estimates... I've been in the industry for 5 years now (certainly not veteran territory, I know!), and my personal estimates still suck.  I overestimate almost as often as I underestimate, and I do both far more than I get it right.  Something will come up, somewhere, and bite you.  Sometimes you'll find a library that does everything you thought you had to do yourself, and a week's work disappears in half a day.  Other times a stupid bug will stretch a day's work out to 2, 3, 4...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're repeating a lot of the same work over and over, and you feel like you've maxed out your throughput on it, maybe you should ask to be moved to another task. 'Cross-pollination' and other PHB-friendly terms are definitely of benefit to devs.  If you spend a month or more on something else, maybe you'll find something you're better suited to.  If not, or you're not able to stay away from webforms, the change won't do you any harm, and you might come back with a bit more knowledge and experience that will help you.&lt;/p&gt;&#xA;" OwnerUserId="2238" LastActivityDate="2010-09-19T16:53:30.660" CommentCount="2" />
  <row Id="5311" PostTypeId="2" ParentId="5297" CreationDate="2010-09-19T17:00:02.857" Score="1" ViewCount="" Body="&lt;p&gt;If you are doing things that are somewhat unique each time getting down to fine detail tasks or getting a very accurate estimate is always going to be difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally like the challenge, but sometimes it can make you look a bit silly if you are just looking at a task list or a time line.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are doing tests as you go sometimes I would say that the examples you gave are fairly quick depending on the complexity of what you are doing.  I have worked on projects where each item, even some if the items inside your bullet points, had at least a day assigned to them.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-19T17:00:02.857" />
  <row Id="5312" PostTypeId="2" ParentId="5269" CreationDate="2010-09-19T17:16:16.833" Score="6" ViewCount="" Body="&lt;p&gt;I was looking for a language to really learn and tried a few but non really clicked. Almost bought a book an Scala but then I saw one of Rich Hickys Videos on &lt;a href=&quot;http://clojure.blip.tv/&quot; rel=&quot;nofollow&quot;&gt;http://clojure.blip.tv/&lt;/a&gt; and then all the rest of them and then basically everything else I could find on the web. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clojure  has me hooked and I tell you why ....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clojure is like a chair it has four legs and i am going to say somethings about every leg.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Functional Programming, Lisp, Java and Concurrency. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of I think Functional Languages are superior to imperative Languages (note that its not about OO vs FP its about FP vs imperative you can do OO in Clojure, depending on you view of OO of course) because FP allow you to reason about (almost) every function without context. It much (much!) easier to reason about the code. A other thing that you avoid a lot of errors if you don't let things change until you start with a FP Language you don't even notice how much time you waste witch such things. There is more to be said about FP but I will leave it at that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now look at Lisp. Lisp like languages have lots of great  features that are disagreeable. Lisp languages allow a really fast feedback-cycle because you can work with the REPL.  The killer feature you get you of being a lisp is the macro system. There is no greater power you can have in programming languages. You have the same power as the language designer to change the language to your need and it allows for some nice DSLs. This of course works  because Data is Code and Code is Data. Thats not just good for macros its good for other things too. Lets make a example. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clojure Code is represented in Clojure Data Structures.&#xA;Clojure Data is represented in Clojure Data Structures.&#xA;Clojure Meta Data is represented in Clojure Data Structures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Know Java&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java Code is a string.&#xA;Java Data is in Java Arrays or Java Collections.&#xA;Java Meta Data is represented with annotations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This gives you a great uniformity. I leave it at that but lisp brings more to the table but I leave that to you to explore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lets talk Java :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java as a language sucks (in my opinion) but there is a lot of good stuff going on with the Ecosystem. The Hotspot JIT and the GC are GREAT. Java today is very very fast. Its just consider slow because it was slow 5-10 Years ago and most people will NEVER change there opinion. So Clojure can get to the speed of Java in conclusion this means that Clojure is a very fast dynamic Language. Way faster then most other dynamic languages. Then there are all this Java Libraries. The Interop Story to Java is just fantastic in Clojure probably the best there is (maybe groofy or scala are better its subjective). So you don't have to write Rappers but often people write to make it more clojurey to work with the libraries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the last thing to talk is Concurrency. Today with have multi core blablabla .... you know the talk. Clojure has a great Concurrency story. Everything you do in Clojure is Threadsafe that means even if you go in to your single core code you wrote and add thread you are going to be safe. Then there is the agent model (yes agent not actor). They are like actors in the scene that the allow asynchronous concurrency, but there are differences too,  check it out yourself. Last but not least we should look at the STM. Its great if you can do everything without shred memory but sometimes things just change but if the get changed from more then one thread you have control that somehow. A TM System allows you to do that safely without to much work on your part.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now some meta stuff. The Clojure mailing list (and IRC too) is really great, no flamewars like in other lisp groups. It's really beginner friendly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The IDE support is not Java like but its quite ok, there are plugins for all the big IDEs but most people (me included) work with emacs. I just started learning it too and its not that hard. There is great Clojure support for Vim too if you are a vim guy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Last but not least we should talk about the build tool. Because of Java you have to work with maven or ant but because nobody wants to do that there is a great project called leiningen (there are others too) which allows you to manage your dependencies, compile your code and more. It's really really easy and no XML crap like in the Java tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Come to the IRC if you have more questions.&lt;/p&gt;&#xA;" OwnerUserId="2743" LastEditorUserId="17841" LastEditorDisplayName="" LastEditDate="2011-04-15T04:05:52.357" LastActivityDate="2011-04-15T04:05:52.357" CommentCount="2" />
  <row Id="5313" PostTypeId="2" ParentId="5267" CreationDate="2010-09-19T17:26:00.203" Score="2" ViewCount="" Body="&lt;p&gt;As soon as you know you've got a problem, you need to be communicating that and managing expectations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When something like this happens, it's important to take a look and figure what caused the delays - something like the Five Whys can be a good start.  Incorporating this into something like an agile restrospective is the best way to talk about what's going wrong and how to improve it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then finding ways to act to prevent problems like this are important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These things happen all the time.  There's nothing wrong with making a mistake, only in repeating it.&lt;/p&gt;&#xA;" OwnerUserId="2135" LastActivityDate="2010-09-19T17:26:00.203" />
  <row Id="5314" PostTypeId="2" ParentId="5120" CreationDate="2010-09-19T17:35:17.653" Score="5" ViewCount="" Body="&lt;p&gt;It sounds like it's a fundamental problem with the way you track work or manage your projects.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;An engineer or group of engineers should be responsible for delivering complete features and functionality.  It isn't done until it's shipped or running in production without problems.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you let someone only work on select pieces of the project, you will always be victim to political gaming of the system.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It sounds like this person was very effective at cherry picking work without delivering value.&lt;/p&gt;&#xA;" OwnerUserId="2135" LastActivityDate="2010-09-19T17:35:17.653" />
  <row Id="5315" PostTypeId="2" ParentId="4693" CreationDate="2010-09-19T17:43:16.140" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Look at the wealth of open-source&#xA;  software that many developers&#xA;  contribute their time and effort to&#xA;  for free. It takes a degree of&#xA;  humility to devote a lot of&#xA;  expenditure to an enterprise that has&#xA;  no reward in itself apart from&#xA;  satisfaction of producing something&#xA;  that will be of benefit to other&#xA;  people. When religious people do the&#xA;  same we call them saints!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It also need some degree of arrogance (besides intelligence and skills) to participate in important open source projects. The difference is, this arrogance will be between programmers and newbies, not to the managers or end users anymore.&lt;/p&gt;&#xA;" OwnerUserId="2772" LastActivityDate="2010-09-19T17:43:16.140" CommunityOwnedDate="2010-09-19T17:43:16.140" />
  <row Id="5316" PostTypeId="2" ParentId="1879" CreationDate="2010-09-19T17:43:59.790" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://javaposse.com/&quot; rel=&quot;nofollow&quot;&gt;http://javaposse.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These guys have been following developments and events around Java and the JVM for years (more of the latter now with Java somewhat stagnant and Scala, JRuby, Jython, etc. coming into the picture).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best part is the podcast, which I can listen to while I run or drive.  They make it a point to stay somewhat unbiased, interview luminaries, track events in the industry, etc.  ...and they have fun while they do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All 4 are Java programmers, so there is plenty of solid technical content.&lt;/p&gt;&#xA;" OwnerUserId="2671" LastActivityDate="2010-09-19T17:43:59.790" CommentCount="1" />
  <row Id="5317" PostTypeId="1" CreationDate="2010-09-19T17:51:10.430" Score="7" ViewCount="280" Body="&lt;p&gt;Because of the economic crises in this country, getting job has been more difficult. Because of that I am looking for good suggestions for ways to build a portfolio on a hobby basis, so that I can show it on a possible interview. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Type of job I'm looking for is basically IT consultant / system administrator area. I’m not sure what stuff I can do to build the portfolio on hobby basis for this kind of job. So hoping for some good suggestions so that I can stand out from the crowd when applying for a job&lt;/p&gt;&#xA;" OwnerUserId="2785" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-19T19:26:03.583" LastActivityDate="2010-09-20T15:38:37.457" Title="Standing out from the crowd when applying job" Tags="&lt;jobs&gt;&lt;portfolio&gt;" AnswerCount="6" CommentCount="2" />
  <row Id="5318" PostTypeId="2" ParentId="5317" CreationDate="2010-09-19T17:57:38.430" Score="7" ViewCount="" Body="&lt;p&gt;Read &lt;a href=&quot;http://pragprog.com/titles/mjwti/my-job-went-to-india&quot; rel=&quot;nofollow&quot;&gt;My Job Went To India&lt;/a&gt;. It's a great book that will explain you what to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/k09Dm.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-19T17:57:38.430" CommentCount="6" />
  <row Id="5319" PostTypeId="2" ParentId="5019" CreationDate="2010-09-19T18:12:37.427" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Somehow I don't think I want to be an&#xA;  architect-only guy. I like to get my&#xA;  hands dirty with occassional mundane&#xA;  coding&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Good architects write code. An architect that doesn't write code intensively anymore is scary, and I wouldn't hire it in my company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO, aspiration changes over time. Today you see your career path as technical only, but with age, your goals may change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not every programmers wants to become an architect. Lot of them want to. Today. But probably not tomorrow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Bonus&lt;/strong&gt;: &lt;a href=&quot;http://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf&quot; rel=&quot;nofollow&quot;&gt;Who needs an architect&lt;/a&gt; from &lt;strong&gt;Martin Fowler&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-19T18:12:37.427" CommentCount="3" />
  <row Id="5320" PostTypeId="2" ParentId="5209" CreationDate="2010-09-19T18:25:10.143" Score="1" ViewCount="" Body="&lt;p&gt;For me, a good programmer's conference once in a while &quot;raises the bar&quot; (once a year?).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Working at my job, head down, day after day, I only see what those around me can do.  Getting to rub shoulders with people that come from a completely different perspective and others who are just really smart - is inspiring.  It shows me what &lt;em&gt;could&lt;/em&gt;  be done.  Different ways to solve a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer shorter, smaller format conferences - less than a week.  With a week-long conference, you tend to experience the &quot;4th day mind overload&quot;.  With larger conferences, I find that it's harder to get to know people. &lt;/p&gt;&#xA;" OwnerUserId="2671" LastActivityDate="2010-09-19T18:25:10.143" />
  <row Id="5322" PostTypeId="2" ParentId="3062" CreationDate="2010-09-19T18:34:21.337" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://feedproxy.google.com/planet_fsharp&quot; rel=&quot;nofollow&quot;&gt;http://feedproxy.google.com/planet_fsharp&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/fsharp/default.aspx&quot; rel=&quot;nofollow&quot;&gt;http://msdn.microsoft.com/en-us/fsharp/default.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.reddit.com/r/fsharp/&quot; rel=&quot;nofollow&quot;&gt;http://www.reddit.com/r/fsharp/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.delicious.com/tag/f%23&quot; rel=&quot;nofollow&quot;&gt;http://www.delicious.com/tag/f%23&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2766" LastActivityDate="2010-09-19T18:34:21.337" />
  <row Id="5323" PostTypeId="2" ParentId="5291" CreationDate="2010-09-19T18:40:11.543" Score="1" ViewCount="" Body="&lt;p&gt;The issue with web based clients is that they aren't very powerful, and using a technology in a way it wasn't meant to be used (for non-ajax based sites). You not going to find a more powerful browser client than net2ftp.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can carry around a flash drive, you can carry &lt;a href=&quot;http://portableapps.com/apps/internet/filezilla_portable&quot; rel=&quot;nofollow&quot;&gt;FileZilla Portable&lt;/a&gt;. Its Windows only however, so your going to need to find equivelent portable clients on *nix. And you can even carry around your IDE/Editor along with you as well&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-19T18:40:11.543" />
  <row Id="5324" PostTypeId="2" ParentId="2192" CreationDate="2010-09-19T18:49:47.580" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Politics&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;eg: When more than one person owns the requirements (or worse, two different vested interests), and they make competing and conflicting changes to the requirements whilst development is underway.&lt;/p&gt;&#xA;" OwnerUserId="2397" LastActivityDate="2010-09-19T18:49:47.580" CommunityOwnedDate="2011-01-05T06:12:52.770" />
  <row Id="5325" PostTypeId="2" ParentId="1006" CreationDate="2010-09-19T18:51:55.757" Score="1" ViewCount="" Body="&lt;p&gt;imo, you first have to get over the fear of having to &quot;...come back and re-work [your code]&quot;. Ironically, that might be one thing demotivating you. I think everyone has to, at some time or another, re-work their code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over time, I've tracked what activities motivate me. It's different for everyone. For me, I like watching movies/tv that are about good people doing amazing things. Movies like &quot;Contact&quot; (yeah, I'm a nerd) or tv shows like &quot;PitchMen&quot; (http://en.wikipedia.org/wiki/PitchMen).&lt;/p&gt;&#xA;" OwnerUserId="2198" LastActivityDate="2010-09-19T18:51:55.757" />
  <row Id="5326" PostTypeId="2" ParentId="4863" CreationDate="2010-09-19T19:16:48.973" Score="2" ViewCount="" Body="&lt;p&gt;The OSCON emerging languages camp had a lot of possibilities.  I'm going to look into Frink, mirah, IO and factor&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://emerginglangs.com/speakers/&quot; rel=&quot;nofollow&quot;&gt;http://emerginglangs.com/speakers/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://radar.oreilly.com/2010/08/oscon-emerging-languages-camp.html&quot; rel=&quot;nofollow&quot;&gt;http://radar.oreilly.com/2010/08/oscon-emerging-languages-camp.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://radar.oreilly.com/2010/07/the-next-wave-of-programming-l.html&quot; rel=&quot;nofollow&quot;&gt;http://radar.oreilly.com/2010/07/the-next-wave-of-programming-l.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2766" LastActivityDate="2010-09-19T19:16:48.973" CommunityOwnedDate="2010-10-22T23:54:06.263" />
  <row Id="5327" PostTypeId="2" ParentId="5267" CreationDate="2010-09-19T19:16:53.037" Score="1" ViewCount="" Body="&lt;p&gt;Henrik,&#xA;This may help:&#xA;Keep in mind that this is not a black-white world.&lt;br /&gt;&#xA;You HAVE made SOME kind of progress, so be sure to let your customer know the most progress that you have indeed made.  Often that will give them something to work with.&lt;br /&gt;&#xA;Also, in the time you have left, think about what you CAN deliver. Also think about the task from the point of view of your customer: What are the most important outcomes or deliverables? Give the best set of deliverables that you can give, in the time before the deadline. Then keep on going after the deadline, working on the rest of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I strongly support all the other comments about letting the customer know early and often.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;General Clayton Powell had a saying:&lt;br /&gt;&#xA;Don't let your psyche fall along with your position.&lt;br /&gt;&#xA;In other words, don't let this missed deadline stop you - learn from it and keep going.&lt;/p&gt;&#xA;" OwnerUserId="2800" LastActivityDate="2010-09-19T19:16:53.037" />
  <row Id="5328" PostTypeId="2" ParentId="3419" CreationDate="2010-09-19T19:17:12.593" Score="0" ViewCount="" Body="&lt;p&gt;Twitter started with Ruby (and still uses Ruby on the front end).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They had to move to Scala to handle some of their performance issues on the back end (servers) - I think they chose Scala to be able to write multi-thread code easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://37signals.com&quot; rel=&quot;nofollow&quot;&gt;http://37signals.com&lt;/a&gt;   =   Ruby, Ruby on Rails&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yahoo! = PHP&lt;/p&gt;&#xA;" OwnerUserId="2671" LastEditorUserId="2671" LastEditorDisplayName="" LastEditDate="2010-09-19T20:04:59.333" LastActivityDate="2010-09-19T20:04:59.333" CommunityOwnedDate="2010-09-19T19:17:12.593" />
  <row Id="5329" PostTypeId="2" ParentId="5317" CreationDate="2010-09-19T19:30:43.847" Score="2" ViewCount="" Body="&lt;p&gt;Next time I apply for a job I'm considering to put the list of my favorite programming blogs and programming books. It shows that you're a hobbyist (which companies love, or so I heard), and that you take your craft seriously and try to improve yourself outside of the job. &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2010-09-19T23:56:18.000" LastActivityDate="2010-09-19T23:56:18.000" CommentCount="1" />
  <row Id="5330" PostTypeId="2" ParentId="1952" CreationDate="2010-09-19T19:31:18.830" Score="1" ViewCount="" Body="&lt;p&gt;There's also &lt;a href=&quot;http://www.ohloh.net&quot; rel=&quot;nofollow&quot;&gt;ohloh&lt;/a&gt;, with a tagged listing of lots of open source projects. &lt;/p&gt;&#xA;" OwnerUserId="2802" LastActivityDate="2010-09-19T19:31:18.830" />
  <row Id="5331" PostTypeId="1" AcceptedAnswerId="5335" CreationDate="2010-09-19T19:36:33.637" Score="11" ViewCount="276" Body="&lt;p&gt;So you take a contract where you have solid experience with 75% of the technology necessary.  How do you handle your time to learn the other 25%?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Work it into the billing time?  Expose the 25% in the contract as 'research'?  Do the learning on my own time (not billed)?  Not take the contract (too large of an unknown for me &lt;em&gt;and&lt;/em&gt; the customer)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the extreme end of this, I keep hearing a story about Mark Cuban (Dallas billionaire who started broadcast.com and sold it to Yahoo!) when he was at Indiana University.  Someone asked him if he could build a business app for them and he immediately said &quot;Yes&quot;... he had no idea how.  So he bought a book, stayed up nights, studied and coded... He finished it it (I'm sure it was ugly), it worked and he kept going.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not suggesting doing contracts this way (the stress!), but there's a middle ground.  What is it, and how would you (or would you?) bill for the unknown?&lt;/p&gt;&#xA;" OwnerUserId="2671" LastEditorUserId="2671" LastEditorDisplayName="" LastEditDate="2010-09-19T19:51:59.107" LastActivityDate="2010-11-20T17:36:13.227" Title="Contract Billing - How would you handle 'learning time'?" Tags="&lt;contracting&gt;&lt;billing&gt;&lt;code-contracts&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="4" />
  <row Id="5332" PostTypeId="2" ParentId="5317" CreationDate="2010-09-19T19:43:25.713" Score="0" ViewCount="" Body="&lt;p&gt;If i wanted a programming job I could go build something interesting, possibly even useful. Show how I can actually deliver on something outside of the academic environment. Programming is ok, but my interest is system administration not sure how to beat people with many year industry experience&lt;/p&gt;&#xA;" OwnerUserId="2785" LastActivityDate="2010-09-19T19:43:25.713" CommentCount="1" />
  <row Id="5334" PostTypeId="1" CreationDate="2010-09-19T19:53:33.743" Score="7" ViewCount="309" Body="&lt;p&gt;I'm trying to figure out the best way to manage all the ideas related to a project (drawings, text, pseudocode, etc.). Until now I tried:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Notebooks/paper:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pros:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cheap&lt;/li&gt;&#xA;&lt;li&gt;Easy to use&lt;/li&gt;&#xA;&lt;li&gt;Hard to change&lt;/li&gt;&#xA;&lt;li&gt;Easy to draw&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Cons:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Doesn't give the ability to 'move stuff around' &lt;/li&gt;&#xA;&lt;li&gt;Doesn't give an overview of everything&lt;/li&gt;&#xA;&lt;li&gt;Hard to share&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Post-it:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pros:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cheap&lt;/li&gt;&#xA;&lt;li&gt;Easy to use&lt;/li&gt;&#xA;&lt;li&gt;Easy to move around (small distances)&lt;/li&gt;&#xA;&lt;li&gt;Quite easy to change&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Cons:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Hard to transport&lt;/li&gt;&#xA;&lt;li&gt;Takes a lot of space&lt;/li&gt;&#xA;&lt;li&gt;Small surface might be a problem&lt;/li&gt;&#xA;&lt;li&gt;If moved to often they need to be redo because they don't stick anymore&lt;/li&gt;&#xA;&lt;li&gt;Hard to share&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Whiteboard:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pros:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Lots of space&lt;/li&gt;&#xA;&lt;li&gt;Fun&lt;/li&gt;&#xA;&lt;li&gt;Easy to share with a few people&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Cons:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Not really cheap&lt;/li&gt;&#xA;&lt;li&gt;Space is limited and old information is lost&lt;/li&gt;&#xA;&lt;li&gt;Not easy to make big changes&lt;/li&gt;&#xA;&lt;li&gt;Takes a lot of space&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Software (like OneNote or wikis):&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pros:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;More expensive than paper (depends)&lt;/li&gt;&#xA;&lt;li&gt;Medium ease of usage (no touch screen)&lt;/li&gt;&#xA;&lt;li&gt;Easy to move/change&lt;/li&gt;&#xA;&lt;li&gt;'Infinite' space&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Cons:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Might or might not give an overview (depending on screen size)&lt;/li&gt;&#xA;&lt;li&gt;Requires extra screen if you want permanent overview&lt;/li&gt;&#xA;&lt;li&gt;Alt-Tab to view notes is killing me&lt;/li&gt;&#xA;&lt;li&gt;Hard to draw&lt;/li&gt;&#xA;&lt;li&gt;Multiple docs =&gt; no easy way of merging the information&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So, I wasn't able to find a solution that works for me :( Post-it seems the most appropriate but it takes a lot of space. I realize that is no perfect solution but I'm still looking for one that has only few limitations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you take notes and how you deal with limitations?&lt;/p&gt;&#xA;" OwnerUserId="782" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T16:50:48.170" LastActivityDate="2010-09-30T18:07:14.037" Title="How do you organize ideas?" Tags="&lt;experience&gt;&lt;organization&gt;&lt;notes&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="6" />
  <row Id="5335" PostTypeId="2" ParentId="5331" CreationDate="2010-09-19T19:55:58.673" Score="14" ViewCount="" Body="&lt;p&gt;If I'm learning something that I'll take away with me (like say a mainstream new API, or a new feature of .NET or a language that's somewhat useful) then I don't bill, I consider that time time spent sharpening my saw, and it's not the client's fault I didn't know that stuff yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, if it's something obscure, I bill for it at my normal rate.  Some examples:  APIs and protocols which are not mainstream (industry specific, small 3rd party or just niche products); internal tools, configuration formats and services inside the client organization; a non-standard database schema, database query language or security model; etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never had any objections about the way I do this, and I'm very transparent about it in my proposals.&lt;/p&gt;&#xA;" OwnerUserId="1790" LastActivityDate="2010-09-19T19:55:58.673" CommentCount="3" />
  <row Id="5336" PostTypeId="1" AcceptedAnswerId="5343" CreationDate="2010-09-19T20:00:40.943" Score="7" ViewCount="560" Body="&lt;p&gt;I'm currently managing a startup company and I'm experiencing a lot of stress due to alot of work, primarly programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently I'm working from the home office, finishing off the current project, elevating it out of beta after 1 year of development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I get chest pains and aches, some times panic attacks due to working to much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know people deal with working 11 hours a day, and I did so too, 2-3 years ago, with no problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not exercise, because I get dizzy and almost faint every time I try to get my body up and running again. I eat really healthy but use alot of chewing tobacco (not sigarettes).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What can I do to get my bodily functions back up to normal so I can deal with my schedule?&lt;/p&gt;&#xA;" OwnerUserId="2811" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-19T21:14:43.510" LastActivityDate="2010-10-01T16:19:14.957" Title="How to deal with stress symptoms of overworking" Tags="&lt;learning&gt;&lt;self-improvement&gt;&lt;startups&gt;&lt;personal-traits&gt;" AnswerCount="8" CommentCount="8" FavoriteCount="4" />
  <row Id="5337" PostTypeId="2" ParentId="4693" CreationDate="2010-09-19T20:07:31.860" Score="2" ViewCount="" Body="&lt;p&gt;I'm not arrogant, I'm just right all the time.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-19T20:07:31.860" CommunityOwnedDate="2010-09-19T20:07:31.860" />
  <row Id="5338" PostTypeId="2" ParentId="4693" CreationDate="2010-09-19T20:07:45.933" Score="4" ViewCount="" Body="&lt;p&gt;We are not arrogant, we are awesome.&lt;/p&gt;&#xA;" OwnerUserId="1066" LastActivityDate="2010-09-19T20:07:45.933" CommunityOwnedDate="2010-09-19T20:07:45.933" />
  <row Id="5339" PostTypeId="2" ParentId="5334" CreationDate="2010-09-19T20:07:52.610" Score="1" ViewCount="" Body="&lt;p&gt;If using Emacs does not pose a barrier, definitely try &lt;a href=&quot;http://orgmode.org/&quot; rel=&quot;nofollow&quot;&gt;Org-mode&lt;/a&gt; - it has the Pros of the software solutions you noted, while mitigating or removing many of the Cons.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, it provides very flexible tree/hierarchical overviews with quick folding and unfolding, tagging, archives, dated entries, linking to other files/websites, and more.  You can also draw simple diagrams like entity-relationship diagrams using Emacs artist-mode, and export them to nice-looking graphics with &lt;a href=&quot;http://ditaa.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;ditaa&lt;/a&gt;, all with just a few keystrokes from Org-mode.  And since it's all plain-text, it's easy to share, send, and version-control.&lt;/p&gt;&#xA;" OwnerUserId="2026" LastActivityDate="2010-09-19T20:07:52.610" />
  <row Id="5340" PostTypeId="2" ParentId="5334" CreationDate="2010-09-19T20:08:34.543" Score="3" ViewCount="" Body="&lt;p&gt;I like wikis and onenote (and I get onenote for free), but for organizing project ideas - especially in early stages, I prefer &lt;a href=&quot;http://en.wikipedia.org/wiki/Mind_mapping&quot; rel=&quot;nofollow&quot;&gt;mindmapping&lt;/a&gt;. I use  &lt;a href=&quot;http://www.mindomo.com&quot; rel=&quot;nofollow&quot;&gt;mindomo&lt;/a&gt;, but there are plenty of other options. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use it the same way I use a whiteboard, but since I work in a number of locations, it's like taking the whiteboard with me.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastEditorUserId="1240" LastEditorDisplayName="" LastEditDate="2010-09-19T20:44:32.077" LastActivityDate="2010-09-19T20:44:32.077" CommentCount="1" />
  <row Id="5341" PostTypeId="1" AcceptedAnswerId="5361" CreationDate="2010-09-19T20:14:11.787" Score="1" ViewCount="62" Body="&lt;p&gt;I've had a couple of times in the time I've working, moments when I get an error ocurring in just 1 computer and it often takes me hours or days to figure out because it is (or at least seems) an isolated incident as it is not being presented in any other instance of whatever I'm checking. How do you guys deal with this? I've often had to just change the computer per se (like formatting, or stuff like that) because I simply cannot replicat the issue.&lt;/p&gt;&#xA;" OwnerUserId="2781" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T03:53:45.553" LastActivityDate="2010-09-23T03:53:45.553" Title="How do you deal when an error occurs on 1 instance of your website/program/app?" Tags="&lt;problem-solving&gt;&lt;errors&gt;" AnswerCount="3" />
  <row Id="5342" PostTypeId="2" ParentId="5336" CreationDate="2010-09-19T20:16:41.683" Score="4" ViewCount="" Body="&lt;p&gt;It sounds to me that your &lt;em&gt;schedule&lt;/em&gt; is the problem to your bodily functions not being up to date. Perhaps you should reduce your workload, get a checkup, and start getting that exercise back on track. In that order.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt;&#xA;And when you start exercising again, start slow. Remember that physical stamina and strength is a quality with expiration date: you need to keep doing it or else you will lose it. And once you've lost it, you must work to get it back. Start with something easy, like walking once a day as everyone here has already mentioned. When you can do that effortlessly, pick up the pace. Eventually you'll be able to run without your body screaming to stop. But I would also recommend that you do something that you enjoy, because often many people find running to be boring and don't do it. As long as you do &lt;em&gt;something&lt;/em&gt; physical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But don't forget that checkup. It might not be your workload at all that's the problem, but something else, and something that makes you dizzy and close to fainting should definitely be checked. Either way, better make sure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And is the stress really worth enough that you'd be willing to risk your life for it? You can always go back to work, but you can't go back to life.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-09-20T09:51:58.980" LastActivityDate="2010-09-20T09:51:58.980" CommentCount="1" />
  <row Id="5343" PostTypeId="2" ParentId="5336" CreationDate="2010-09-19T20:16:54.877" Score="13" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Go see a doctor. &lt;em&gt;(Forgot about this.)&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Stop chewing tobacco. Nicotine is not good for anyone but it can really kill some people.&lt;/li&gt;&#xA;&lt;li&gt;Running is bad for you, start walking 30 minutes 4 times a week. If you work in an office do as many laps around the parking lot as it takes. You can use this time to analyze problems and to pretend you don't want any nicotine &lt;em&gt;(Yes I know it will be painful.).&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Don't eat for 3 hours before you go to sleep.&lt;/li&gt;&#xA;&lt;li&gt;Sleep at least 6 hours each night.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I walk &lt;strong&gt;ALL THE TIME&lt;/strong&gt; and it helps.&lt;/p&gt;&#xA;" OwnerUserId="712" LastEditorUserId="712" LastEditorDisplayName="" LastEditDate="2010-09-19T20:57:32.450" LastActivityDate="2010-09-19T20:57:32.450" CommentCount="9" />
  <row Id="5344" PostTypeId="2" ParentId="1056" CreationDate="2010-09-19T20:20:42.380" Score="2" ViewCount="" Body="&lt;p&gt;Pretty simple.  Will anyone pay me to use it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A couple of years ago (I'm a C, C++ and C# guy mainly) I got a sweet gig, but I had to use VB6 (it was horrible, spaghetti code, but I felt like a code archaeologist delving into it's dungeon-like depths to find treasure and kill bugs.  It was great fun).  So I learned VB6.  I never really wanted to learn a Basic-derived language, and I'd much rather have learned Ruby or something interesting, but to date, no one's paid me to, so I don't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;LISP is the sole exception, because I find it fascinating and I consider the concepts it embodies to teach so much about programming.  Most of the 'new features' in C# 3 and 4 are just implementations of concepts that were in LISP before I was born.  Despite knowing and loving it, I don't expect to ever get to actually use it professionally.&lt;/p&gt;&#xA;" OwnerUserId="1790" LastActivityDate="2010-09-19T20:20:42.380" />
  <row Id="5345" PostTypeId="1" AcceptedAnswerId="5349" CreationDate="2010-09-19T20:25:11.427" Score="3" ViewCount="335" Body="&lt;p&gt;... including the headers, of course.  Also, please name the platform (or if cross platform).&lt;/p&gt;&#xA;" OwnerUserId="2671" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-09-19T20:31:57.040" LastActivityDate="2010-10-08T03:03:18.233" Title="What's your favorite tool to monitor HTTP requests/responses?" Tags="&lt;tools&gt;&lt;recommendations&gt;&lt;web-development&gt;&lt;web-applications&gt;" AnswerCount="8" FavoriteCount="1" />
  <row Id="5346" PostTypeId="2" ParentId="5341" CreationDate="2010-09-19T20:28:24.967" Score="0" ViewCount="" Body="&lt;p&gt;If I have physical access to the machine, I debug it by whatever means necessary because there's obviously some kind of flaw that my app should be handling better than it is (if the app is bailing with intelligent logging and a good message then I should have a rough idea of what's wrong the environment already).  I've had to do this via just checking around the system logs, active debugging, and special debug builds with additional logging built in, but it's almost always worth it in what it exposes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I don't have physical access to the machine there are a few things I'll always try to have the user check (Event log, any logs in my app, etc.), and usually a few things specific to the app, like registry settings, DLL registration, whatever.  I don't get too far beyond that, because the risks of deep-diving on a probably-compromised machine remotely are too scary to contemplate.&lt;/p&gt;&#xA;" OwnerUserId="1790" LastActivityDate="2010-09-19T20:28:24.967" />
  <row Id="5348" PostTypeId="2" ParentId="4183" CreationDate="2010-09-19T20:30:20.067" Score="0" ViewCount="" Body="&lt;p&gt;There was a time when I could honestly say about 50%.  However now that my career is advanced somewhat, I work (kid you not) absolutely no less than 100%.  Why I spend a few minutes on sites like this is beyond me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some may argue companies do not support learning in 100% expectation environments.  Maybe they're right, but on each project (most all in parallel) I oversee 2-10 folks and I simply just don't have the time.  Take care of East Coast and overnight work from India in the mornings, my customers for 8am-5pm then back at admin tasks and queuing up the next round for India at night through about 11pm-Midnight.  About 15 hour days...so is that actually 180%+?&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-19T20:30:20.067" />
  <row Id="5349" PostTypeId="2" ParentId="5345" CreationDate="2010-09-19T20:31:32.970" Score="10" ViewCount="" Body="&lt;p&gt;The cross-platform &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/1843/&quot; rel=&quot;nofollow&quot;&gt;Firebug&lt;/a&gt; Firefox extension has a &lt;strong&gt;net&lt;/strong&gt; tab that does this.&lt;/p&gt;&#xA;" OwnerUserId="40" LastActivityDate="2010-09-19T20:31:32.970" />
  <row Id="5350" PostTypeId="2" ParentId="5317" CreationDate="2010-09-19T20:32:23.857" Score="-1" ViewCount="" Body="&lt;p&gt;Learn some sales and marketing theory and practice, and maybe some NLP or other rapport-building technique.  I've found that most programmers tend to be a little off socially, and by being able to bring high-level development skills and pretty polished social/business skills to the table has always put me ahead of the crowd.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Talk to the level of the person interviewing you always.  Explain things in ways they immediately grasp and focus more on being socially engaging than technically right; don't get me wrong, you should be right too, but as nerds we have a tendency to get pedantic and detailed that just isn't necessary in an interview unless it's a straight technical interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Salesman have been convincing people to buy things for many centuries.  Learn how they do what they do and do it with yourself as the product.&lt;/p&gt;&#xA;" OwnerUserId="1790" LastActivityDate="2010-09-19T20:32:23.857" CommentCount="4" />
  <row Id="5351" PostTypeId="2" ParentId="5345" CreationDate="2010-09-19T20:34:00.397" Score="16" ViewCount="" Body="&lt;p&gt;Fiddler - &lt;a href=&quot;http://www.fiddler2.com&quot; rel=&quot;nofollow&quot;&gt;http://www.fiddler2.com&lt;/a&gt; is wonderful for this and more (it's Windows only though).&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-09-19T20:34:00.397" CommentCount="1" />
  <row Id="5352" PostTypeId="2" ParentId="5345" CreationDate="2010-09-19T20:48:37.417" Score="6" ViewCount="" Body="&lt;p&gt;Firefox's &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/3829/&quot; rel=&quot;nofollow&quot;&gt;Live HTTP Headers&lt;/a&gt; plugin is a lighter-weight alternative to the always awesome Firebug&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And there's always &lt;a href=&quot;http://www.wireshark.org&quot; rel=&quot;nofollow&quot;&gt;Wireshark&lt;/a&gt; if you want a sledgehammer for that walnut (site down atm, but it's on Windows and Linux at least).&lt;/p&gt;&#xA;" OwnerUserId="2238" LastActivityDate="2010-09-19T20:48:37.417" />
  <row Id="5353" PostTypeId="2" ParentId="5336" CreationDate="2010-09-19T20:49:33.407" Score="10" ViewCount="" Body="&lt;p&gt;There simply is no substitute for physical activity. Aside from smoking, excessive drinking or street drugs, little is worse for your health than being sedentary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Walking is actually very good for you and pretty much optimal for maintaining health. I won't really make you look like an athlete, but it will stave off the kinds of physical decline that undermine health and your potential for longevity and vitality over however many years you get.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, since you appear to be experiencing symptoms from even mild exertion, you should see a doctor before you do anything else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finding things that really make you laugh, whatever they may be, is valuable, too.&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-09-19T20:49:33.407" CommentCount="3" />
  <row Id="5354" PostTypeId="1" AcceptedAnswerId="8116" CreationDate="2010-09-19T20:50:26.620" Score="16" ViewCount="888" Body="&lt;p&gt;Does anyone have experience with NoSQL databases (CouchDB, MongoDB, Google's BigTable, Dynamo, Cassandra...)?  What was it like? Was it actual production/on the job experience?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What will happen to the relational databases in 5 years?  10 years?&lt;/p&gt;&#xA;" OwnerUserId="2671" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-19T22:55:25.387" LastActivityDate="2010-12-29T19:01:12.567" Title="Are NoSQL databases going to take the place of relational databases? Is SQL going away?" Tags="&lt;database-development&gt;&lt;trends&gt;&lt;sql&gt;&lt;nosql&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="6" />
  <row Id="5355" PostTypeId="2" ParentId="5341" CreationDate="2010-09-19T20:52:12.377" Score="1" ViewCount="" Body="&lt;p&gt;The same way as a bug that happens on multiple machine, but not my own. Add diagnostic code and beef up the error handling as much as possible in the locations you may suspect. Also, how about adding a diagnostic logging feature that you can turn on to write to a log file on the machine with the problem?&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-19T20:52:12.377" />
  <row Id="5356" PostTypeId="1" AcceptedAnswerId="5431" CreationDate="2010-09-19T20:52:38.383" Score="3" ViewCount="100" Body="&lt;p&gt;When you are setting up your system landscape for large and/or multiple application deployments, do you consider mainframe?  If not, why not?  If so, what factors are you considering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you take a &lt;em&gt;real&lt;/em&gt; TCO look at large ERP and/or consolidated application landscapes, mainframe is actually quite cost-effective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My own consultations have included recommendations for scale-up/mainframe/mid-size systems on some specific needs.  Honestly, I've never had a customer take said recommendation, rather defaulting to countless scale-out VMs on Intel boxen (in non-trivial cost) and yet still to this day have system management and performance issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Curious your take on this.  We need to remember that the virtual machines we manage (and apparently love in IT departments) today have been done for decades on mainframe.  Most mid-size and mainframe shops have small fractions of support persons managing larger and more complex applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your thoughts appreciated.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-20T04:28:55.953" Title="Do you consider mainframe as part of large application deployments?" Tags="&lt;java&gt;&lt;virtualization&gt;&lt;mainframe&gt;&lt;intel&gt;" AnswerCount="1" FavoriteCount="2" />
  <row Id="5357" PostTypeId="2" ParentId="5336" CreationDate="2010-09-19T20:57:17.457" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Walk. Stand-up at least once an hour and walk around the home office. If you're on the phone, walk around. If you're getting dizzy, stop walking, and start again as soon as you're not dizzy.  If you really can't walk, look up &quot;desk exercises&quot; and start doing those. Being a sedentary programmer will eventually catch up with you and bring you more and more health problems.&lt;/li&gt;&#xA;&lt;li&gt;You need to make time for your brain to do its problem solving in the background. Schedule yourself at least one break a day where you're not interrupted and you're not &quot;on.&quot; These could be for a power-nap or meditation.  Think of these breaks like little &quot;reboots&quot; for your head to defragment your mind.&lt;/li&gt;&#xA;&lt;li&gt;Cut the tobacco. Don't compensate with something else like caffeine. You probably won't be able to do it &quot;cold turkey&quot; so track your consumption, set a goal (30-days?) and gradually stop. Consider the symptoms of nicotine poisoning:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Abdominal cramps&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Agitation, restlessness, or excitement&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Muscular twitching&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Breathing - rapid&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Breathing - stops&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Burning sensation in mouth&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Coma&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Confusion&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Convulsions&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Depression&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Difficulty breathing&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Drooling (increased salivation)&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Fainting&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Headache&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Heartbeat - pounding and rapid,&#xA;  followed by slow heart rate&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;High blood pressure, which then drops&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Vomiting&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Weakness&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Obviously, you're not in a coma, but a lot of these other symptoms could be present. While you might be &quot;getting through the day&quot; with a chew, it could be magnifying your problems with stress.&lt;/p&gt;&#xA;" OwnerUserId="2819" LastActivityDate="2010-09-19T20:57:17.457" CommentCount="1" />
  <row Id="5358" PostTypeId="2" ParentId="5345" CreationDate="2010-09-19T20:58:00.340" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;https://addons.mozilla.org/it/firefox/addon/966/&quot; rel=&quot;nofollow&quot;&gt;Tamper data&lt;/a&gt; does the job for me. (Firefox add-on, so it's multi-platform)&lt;/p&gt;&#xA;" OwnerUserId="1200" LastActivityDate="2010-09-19T20:58:00.340" />
  <row Id="5359" PostTypeId="2" ParentId="1717" CreationDate="2010-09-19T21:00:42.007" Score="0" ViewCount="" Body="&lt;p&gt;Product names composed of invented words, or misspellings of words, tend to annoy me. I prefer product names to be self-descriptive whenever it's practical.&lt;/p&gt;&#xA;" OwnerUserId="2818" LastActivityDate="2010-09-19T21:00:42.007" CommentCount="1" />
  <row Id="5360" PostTypeId="2" ParentId="5354" CreationDate="2010-09-19T21:07:26.210" Score="9" ViewCount="" Body="&lt;p&gt;NoSQL puts the burden of managing your data directly upon the programmer to work with the information primitives whatever NoSQL database provides. Think of a relational database as a ready-to-use package of information management functions within its framework of storage and computation. Programming a NoSQL system is a lot like having the parts of a disassembled relational database and bolting them together into devices that provide the minimal amount of infrastructure required to implement a feature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;File systems are still here despite the existence of relational databases, so too will relational databases be here despite the existence of NoSQL databases. They're still a valuable tool for certain kinds of data. As computers get &quot;larger&quot; with available memory, bandwidth or disk space, there are datasets that could migrate away from NoSQL-style solutions back into relational, or perhaps, to distributed file systems that scale beyond what NoSQL or relational databases can provide.&lt;/p&gt;&#xA;" OwnerUserId="2819" LastActivityDate="2010-09-19T21:07:26.210" CommentCount="2" />
  <row Id="5361" PostTypeId="2" ParentId="5341" CreationDate="2010-09-19T21:08:20.223" Score="2" ViewCount="" Body="&lt;p&gt;You have to try to isolate what's different about that machine/environment to every other machine/environment where your application works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That will involve checking the state of your application by adding diagnostics, checking the state of the machine - which may involve remote logging or even physical access, and checking what the user is doing at every step of the way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had many problems that only repeated for one user or on one machine and it was only by understanding what they were doing and how they were doing it were we able to resolve things.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-19T21:08:20.223" />
  <row Id="5362" PostTypeId="2" ParentId="5057" CreationDate="2010-09-19T21:11:37.230" Score="3" ViewCount="" Body="&lt;p&gt;Simplification leads to elegance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compare a programming language to Lego blocks: it's more desirable to have simpler, more generic elements that can be used multiple ways, than to have lots of special-purpose elements that are inflexible.&lt;/p&gt;&#xA;" OwnerUserId="2818" LastActivityDate="2010-09-19T21:11:37.230" />
  <row Id="5363" PostTypeId="2" ParentId="5334" CreationDate="2010-09-19T21:14:20.313" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Notepad or simple Text editor&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? Because its easy! You can put down all of your idea's, have notes, comments, everything you wanted in one simple file. No software to install, no website to install, no setup, no anything. Just create and go.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-19T21:14:20.313" />
  <row Id="5364" PostTypeId="2" ParentId="5336" CreationDate="2010-09-19T21:15:13.280" Score="7" ViewCount="" Body="&lt;p&gt;Stop overworking. It really works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your body is talking to you, listen to it!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using productivity methodologies or calming down the symptoms with relaxation or pills will just rush your to the burnout. Or worse, the heart attack.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-09-20T10:25:57.877" LastActivityDate="2010-09-20T10:25:57.877" CommentCount="2" />
  <row Id="5366" PostTypeId="1" AcceptedAnswerId="5369" CreationDate="2010-09-19T21:25:22.450" Score="9" ViewCount="613" Body="&lt;p&gt;If so, what was it like?  Did you enjoy it?  Did he?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you're really old, I'm assuming he wasn't actually coding.  But how was he on encouraging code quality over, say, the immediate business need?&lt;/p&gt;&#xA;" OwnerUserId="2671" LastActivityDate="2010-09-20T05:15:06.977" Title="Has anyone ever actually worked with Bill Gates?" Tags="&lt;code-quality&gt;&lt;great-programmer&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="2" />
  <row Id="5367" PostTypeId="2" ParentId="745" CreationDate="2010-09-19T21:35:36.107" Score="0" ViewCount="" Body="&lt;p&gt;5-Hour Energy (I like the orange flavor best).  Really does work, but don't make a habit of it.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-19T21:35:36.107" CommentCount="3" />
  <row Id="5368" PostTypeId="2" ParentId="1006" CreationDate="2010-09-19T21:36:44.133" Score="7" ViewCount="" Body="&lt;p&gt;Relax. Seriously, relax. Get off that chair, look out the window, go for a walk, take a shower, or do anything else that is entirely unrelated to your programming task and allows you to clear your mind (i.e. don't turn to the telly or check on Reddit).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I generally find it much easier to get into the flow if I'm actively thinking about what it is I want to do, creating a mental model of the application. But this can't be forced. Keep away from distractions and let your mind wander a bit to achieve that mental reset, often that is all it takes for everything to &quot;click&quot; into place and get the machine running again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If none of the answers are helping, you might also want to look into the more general problem of dealing with procrastination (because, face it, if you're avoiding something you think you &lt;em&gt;should&lt;/em&gt; be doing, you're probably procrastinating).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you always find it hard to get into the mood to write code and would much rather do other things, chances are good you're either working for the wrong company/clients (i.e. try a different field -- not everyone enjoys writing financial applications, for example) or in the wrong job (maybe you don't actually want to be a programmer? There are other jobs that are &lt;em&gt;related&lt;/em&gt; to programming but don't involve much code writing, maybe you should consider one of those?). I'm not saying you shouldn't be programming, but (in contrast to what certain puritans will tell you) it is important that you &lt;em&gt;enjoy&lt;/em&gt; what you do for a living -- after all you'll spend most of your working life doing it.&lt;/p&gt;&#xA;" OwnerUserId="2734" LastActivityDate="2010-09-19T21:36:44.133" />
  <row Id="5369" PostTypeId="2" ParentId="5366" CreationDate="2010-09-19T21:38:41.650" Score="19" ViewCount="" Body="&lt;p&gt;Ask Joel: &lt;a href=&quot;http://www.joelonsoftware.com/items/2006/06/16.html&quot; rel=&quot;nofollow&quot;&gt;&quot;My First BillG Review&quot;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-19T21:38:41.650" CommentCount="1" />
  <row Id="5370" PostTypeId="2" ParentId="3892" CreationDate="2010-09-19T21:53:14.700" Score="0" ViewCount="" Body="&lt;p&gt;Give honest feedback, but act professionally and politely at the same time. If the interviewer insists, just answer the damn question. Slamming a door or arguing won't leave a good impression. You can always reject the offer later, but you're in much better position to make a reasonable decision once you have the offer.&lt;/p&gt;&#xA;" OwnerUserId="2313" LastActivityDate="2010-09-19T21:53:14.700" CommentCount="1" />
  <row Id="5371" PostTypeId="2" ParentId="5334" CreationDate="2010-09-19T22:04:10.757" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Personal Use&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;3x5 cards and binder clips have been a part of my &quot;portable&quot; kit of idea capturing and organization--they're more durable than Post-It notes. Always write on the fronts of the cards &lt;em&gt;only&lt;/em&gt; so that you can tape or glue them into my other more permanent kit data storage, the composition book. 3x5 cards and composition books are ubiquitous--you'll almost never be able to buy them.  These are only going to be for your direct personal use--for collaboration, you'll need to escalate to something else. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Group Situations (In Person)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides Post-Its, 3M makes giant &quot;Easel pads&quot;-- and these are far superior than trying to use a whiteboard for group brainstorming. When you're finished with your room and meeting, you can take them with you to summarize into some other system--maybe something as simple as a digital camera and a tripod to digitize them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Group Situations (Virtual)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is where things get tricky. I have never seen a digital whiteboard system that effectively captures the spirit of interaction between people in the same room. (Plus, they're expensive.) Not everyone can be on the same platform and owning the same software or hardware.  It really depends on how &lt;em&gt;interactive&lt;/em&gt; your communications are. If everyone's spread out across 5 wildly different time-zones, you'll need something like e-mail or wiki to keep interactions asynchronous. A collaborative blog can be useful. If you're lucky and everyone is within the same realm of time, Internet Relay Chat or some other group-chatting system (as long as you can archive it) is good.  In the end, with a virtual situation, you need to pick and solidly decide on which particular protocols or applications you're going to use or your ability to keep attention on what the group is doing will be hopelessly fragmented.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;K.I.S.S. and K.I.C.S.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everyone's heard of K.I.S.S, I'm going to add K.I.C.S. to the mix: Keep It Consistent, Stupid. There's a theme here: do the simplest thing that could possibly work and stick to it until it doesn't work. It is far too easy to fall into &quot;yak shaving&quot; trying to find the best tool for the job by trying out all of the New! and Exciting! and Technologically-Sweet! tools the come around the bend. Do that in your spare time (like you have any). Everyone has e-mail and everyone has a web browser. Paper requires no software, batteries or training. Well, maybe not so much on the training. :)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Digital Paper is an Abomination&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3x5 cards or composition books... what about this digital stuff, it sounds great-- a special pen, special paper, special software.  It is not cheap however, the cost of paper being orders of magnitude more expensive than ordinary paper and in addition, you must use a special pen to write with (what happens when a friend annotates your paper with their favorite Zebra pen? Now you'll have to scan your paper again or trace their handwriting with your special pen--this is &quot;simpler?&quot;). Let's not get into the can of worms involved with privacy--since all digital paper on the market today seems to be systems to uniquely assign ownership to tiny areas of virtual paper-space. Stay away from digital paper systems, they're not KISS/KICS. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;On Organizing Ideas&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Capture. Review. &lt;em&gt;Summarize.&lt;/em&gt;  When capturing, date-stamp your notes with a brief title on why you were writing them. Nothing is more frustrating than seeing your own handwriting describing an idea and not understanding why you were writing about it. Write down the questions and goals or missions you're considering.  You may not have any thoughts on them today, but days after you have captured your questions or ideas, review them, because you're likely to have new view points on them. Repeat this process until you can summarize the intents of your idea or inventions--now is the time to bring it to others for out-of-singular-mind brainstorming. [Or not, some ideas are just inherently bad. Keep them to yourself. ;) ]  The beauty of using paper is it will never distract you with red squiggly lines of spell checking or frustrate you with ham-fisted mouse-drawing limitations because you don't own a graphics tablet. Just draw it. It doesn't have to &quot;look good&quot; until you understand it intimately and you're ready to share it with others.  Sharing comes after understanding. Keeping things dated and sequenced properly helps you review and discard the old notes. Don't be afraid to re-write them again forward in your notebooks if it helps you consolidate the amount of paper you need to manage (notebook defragging).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Overcoming the Limitations&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No one sits down to write the Lionel Gelber Prize-winning tome in one perfect marthon session, so you shouldn't expect your programming notes to be instantly perfect the first time you write them on paper or share them over e-mail.  The more hours you exercise your mind upon the paper, the better you'll become. They say that for writers to become better writers they must write. For a programmer to become a better organizer you must, organize. For me, all too often, it's easier to do it on paper than to do it on a machine. Management of ideas to me is all about the distillation and summary of those ideas. You can't manage something you don't understand.  Don't worry about wasting paper--because turning back the pages you've written before is nothing other than paper's implementation of ^Z.&lt;/p&gt;&#xA;" OwnerUserId="2819" LastActivityDate="2010-09-19T22:04:10.757" />
  <row Id="5372" PostTypeId="1" CreationDate="2010-09-19T22:10:16.100" Score="23" ViewCount="1104" Body="&lt;p&gt;Being a programmer is not a very healthy profession - long hours of sitting in front of a computer, with impending deadlines just over the cubicle. This takes a toll on the body and mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what tips do you have for programmers in order to stay healthy?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2011-01-08T16:28:14.737" CommunityOwnedDate="2010-09-19T22:10:16.100" ClosedDate="2011-01-10T00:22:12.063" Title="How do programmers stay healthy?" Tags="&lt;health&gt;&lt;profession&gt;" AnswerCount="17" CommentCount="8" FavoriteCount="16" />
  <row Id="5373" PostTypeId="1" AcceptedAnswerId="5400" CreationDate="2010-09-19T22:20:37.080" Score="2" ViewCount="504" Body="&lt;p&gt;For Rails developers, how's your job market? Are you guys highly in-demand or still looking for works? I understand that the answer might varies (i.e. depends if you're networking heavily, depends if you're famous in Rails circle, etc). But I'd like to get a feel of Rails job market in general and what do you think about the future/longevity of this market?&lt;/p&gt;&#xA;" OwnerUserId="1649" LastActivityDate="2010-11-22T15:24:53.797" Title="How's the Rails job market?" Tags="&lt;jobs&gt;&lt;contracting&gt;&lt;ruby-on-rails&gt;&lt;ruby&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="2" />
  <row Id="5374" PostTypeId="2" ParentId="5372" CreationDate="2010-09-19T22:20:58.510" Score="33" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Join a gym that is close to work&lt;/li&gt;&#xA;&lt;li&gt;Walk/Bike to work&lt;/li&gt;&#xA;&lt;li&gt;Drink a lot of water at work (increase your water intake, and force you to take break to use the washroom, win-win situation)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2829" LastActivityDate="2010-09-19T22:20:58.510" CommunityOwnedDate="2010-09-19T22:20:58.510" CommentCount="3" />
  <row Id="5375" PostTypeId="2" ParentId="5372" CreationDate="2010-09-19T22:21:00.647" Score="7" ViewCount="" Body="&lt;p&gt;I'm 54 and weight is a problem.  I run 3 - 4 days a week... try to do some kind of workout every day.  I also have to watch my calories - try to stay under 2300 a day.  Seems to work.  I find that I can concentrate better for longer periods with exercise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice would be to do &lt;em&gt;something&lt;/em&gt; every day.  Walk, ride a bike, strength training.  Some of us need variety.  Use physical activity for your break from the machine.  Once you're in the habit, you won't even think about it and you might even like the way you feel.  &lt;/p&gt;&#xA;" OwnerUserId="2671" LastActivityDate="2010-09-19T22:21:00.647" CommunityOwnedDate="2010-09-19T22:21:00.647" CommentCount="1" />
  <row Id="5376" PostTypeId="2" ParentId="5372" CreationDate="2010-09-19T22:26:36.047" Score="30" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Eat well&lt;/strong&gt;: Not going for fast food a lot and drinking water or other healthy drinks can help. Variation!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Take pauses&lt;/strong&gt;: Preferable using the &lt;a href=&quot;http://www.pomodorotechnique.com&quot; rel=&quot;nofollow&quot;&gt;pomodoro technique&lt;/a&gt;... After every 25 mins, take a 5 min break.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keep yourself fit&lt;/strong&gt;: In your free time you could go jogging, if boring do sport or take dance lessons.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sit well behind your computer&lt;/strong&gt;: 90 degree angles, adjusted heights, sit straight, ...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sleep well&lt;/strong&gt;: Helps in a lot of aspects: Being healthy, energy, less stressed/tired, productivity, ...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;If you are a perfectionist you could implement the pomodoro technique, watch your calories,&lt;br&gt;&#xA;think about improvements in your daily activities (eg. stairs instead of elevator, try to do things less lazy), ... &lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-19T22:26:36.047" CommunityOwnedDate="2010-09-19T22:26:36.047" CommentCount="5" />
  <row Id="5377" PostTypeId="2" ParentId="5372" CreationDate="2010-09-19T22:54:34.783" Score="3" ViewCount="" Body="&lt;p&gt;The same goes for programmers as it goes for pretty much everyone else ... watch your intake (&lt;em&gt;most people today - even the skinny ones - take lots more in then they need&lt;/em&gt;) and do some kind of physical activity (&lt;em&gt;swimming, running and cycling for example&lt;/em&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, most would say ... &lt;em&gt;I haven't got the time for that.&lt;/em&gt; - but it is all questionable. For, programming is first thinking, typing second (or third) - you haven't actually got to be at your computer all of the time to do your work, as long as you can think of it (this has some issues with certain people, but if you show you're good at what you do they usually agree that they don't have to make you sit on your chair all the time, for you to do your job) and have the mental capabilities to visualize it in your head (most do).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... all there is to it, really. People are ment to move and have been moving for several millenia now ... no &lt;em&gt;magic&lt;/em&gt; in that area (in regards to food, diets, whatever) will let them stay healthy if they sit on their &lt;em&gt;respected ones&lt;/em&gt; all they long.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;p.s. Laptops help ... you can work in several places (e.g. from the garden at home, ... can easily rearrange your office at work ... Hell, you can go to the mountains in your car, just find a nice place, lay somewhere and enjoy the scenery and work ...)&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-19T22:54:34.783" CommunityOwnedDate="2010-09-19T22:54:34.783" />
  <row Id="5378" PostTypeId="2" ParentId="3684" CreationDate="2010-09-19T22:54:50.030" Score="0" ViewCount="" Body="&lt;p&gt;Check these out: &lt;a href=&quot;http://www.dreamincode.net/forums/topic/17947-programming-reference-sheets/&quot; rel=&quot;nofollow&quot;&gt;http://www.dreamincode.net/forums/topic/17947-programming-reference-sheets/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2835" LastActivityDate="2010-09-19T22:54:50.030" />
  <row Id="5379" PostTypeId="2" ParentId="5372" CreationDate="2010-09-19T22:58:48.307" Score="1" ViewCount="" Body="&lt;p&gt;Over my last school semester (6th semester of Electrical Engineering) I managed to stay somewhat in shape by doing intense 20 minute workouts daily or every second day.  Also, cutting out fast food and any kind of soft drink (soda, etc).&lt;/p&gt;&#xA;" OwnerUserId="2835" LastActivityDate="2010-09-19T22:58:48.307" CommunityOwnedDate="2010-09-19T22:58:48.307" CommentCount="1" />
  <row Id="5380" PostTypeId="2" ParentId="5334" CreationDate="2010-09-19T23:00:34.197" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/MindManager&quot; rel=&quot;nofollow&quot;&gt;Mind Manager&lt;/a&gt; is a place to put every unstructured irregular information that I can use in future, including my ideas. &lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-19T23:00:34.197" />
  <row Id="5381" PostTypeId="2" ParentId="5372" CreationDate="2010-09-19T23:06:58.290" Score="1" ViewCount="" Body="&lt;p&gt;Zed Shaw has written a good article on &lt;a href=&quot;http://sheddingbikes.com/posts/1281257293.html&quot; rel=&quot;nofollow&quot;&gt;common programmer health problems&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2313" LastActivityDate="2010-09-19T23:06:58.290" CommunityOwnedDate="2010-09-19T23:06:58.290" />
  <row Id="5382" PostTypeId="2" ParentId="237" CreationDate="2010-09-19T23:07:05.447" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;https://launchpad.net/&quot; rel=&quot;nofollow&quot;&gt;LaunchPad&lt;/a&gt; has a concept innovative comparing with first generation project repositories. It has most tools that any project can need. It uses Bazaar as version control which can decrease the interest of some programmers.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-19T23:07:05.447" />
  <row Id="5383" PostTypeId="2" ParentId="5336" CreationDate="2010-09-19T23:41:09.970" Score="1" ViewCount="" Body="&lt;p&gt;Start smoking a cigar after work instead of chewing throughout the day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find some &quot;me&quot; time. Take a weekend and hack together a project. &lt;strong&gt;Playing helps, it's not just for kids.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read the paper, take naps. Overworking yourself doesn't solve issues, it forces you to adopt overworking as a norm, &lt;strong&gt;which it should never be&lt;/strong&gt;. Plan your days ahead with achievable goals and once you meet them stop. Divide your work into four areas. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/w2VOq.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep as much as possible out of area I and in area II. Utilize area IV sparingly but &lt;em&gt;do make use of it&lt;/em&gt;. Neglecting yourself is sure to lead to far greater issues later on, like a &lt;a href=&quot;http://en.wikipedia.org/wiki/Wall_Street_%281987_film%29&quot; rel=&quot;nofollow&quot;&gt;Gordon Gekko complex&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-19T23:41:09.970" CommentCount="3" />
  <row Id="5384" PostTypeId="1" CreationDate="2010-09-19T23:41:51.980" Score="49" ViewCount="8827" Body="&lt;p&gt;Because I'm a programmer, people constantly ask me to fix their computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you handle this situation? Do you make exceptions for relatives, friends and coworkers? Do you charge people for it?&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-09-20T00:06:43.793" LastActivityDate="2011-03-05T18:51:33.850" CommunityOwnedDate="2010-09-20T14:25:59.460" Title="How do you deal with people who ask you to fix their computer?" Tags="&lt;behavior&gt;&lt;users&gt;&lt;job-definition&gt;&lt;social&gt;" AnswerCount="61" CommentCount="16" FavoriteCount="17" />
  <row Id="5385" PostTypeId="2" ParentId="3356" CreationDate="2010-09-19T23:51:07.687" Score="1" ViewCount="" Body="&lt;p&gt;You might want to look at &lt;a href=&quot;http://www.zend.com/en/&quot; rel=&quot;nofollow&quot;&gt;Zend's site&lt;/a&gt;. Their based in Tel-Aviv, which is &quot;right around the corner&quot; from Europe, but they also have several branches in Europe. If there's a big PHP committee I'm guessing their people will be their (or even organize it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have a nice trip!&lt;/p&gt;&#xA;" OwnerUserId="2655" LastActivityDate="2010-09-19T23:51:07.687" />
  <row Id="5386" PostTypeId="2" ParentId="5373" CreationDate="2010-09-19T23:55:57.710" Score="0" ViewCount="" Body="&lt;p&gt;it is time related, If I answer this question now, it will out of date when others saw it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OK, ruby on rails is hot in China. but PHP is still in heavy use, and need lots of good programmers.&lt;/p&gt;&#xA;" OwnerUserId="2840" LastEditorUserId="2840" LastEditorDisplayName="" LastEditDate="2010-09-20T00:49:26.517" LastActivityDate="2010-09-20T00:49:26.517" CommentCount="3" />
  <row Id="5387" PostTypeId="2" ParentId="1785" CreationDate="2010-09-20T00:03:29.207" Score="1" ViewCount="" Body="&lt;p&gt;write code for people! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;no more magic number!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;don't write all code in one line!&lt;/p&gt;&#xA;" OwnerUserId="2840" LastActivityDate="2010-09-20T00:03:29.207" CommunityOwnedDate="2010-09-20T00:03:29.207" />
  <row Id="5388" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T00:03:55.090" Score="2" ViewCount="" Body="&lt;p&gt;You can try, but some of these people will be the ones that call the monitor &quot;the computer&quot; and not know what the funny little box beneath the desk is. It's probably not worth the energy to clarify. But, sometimes a metaphor can help: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the computer was a car, the programmer is the one that configures how and when it burns the fuel in different situations before it leaves the factory. The &quot;computer guy&quot; is the mechanic that repairs the car when it breaks or tunes it for speed, or perhaps does an after-market modification. &lt;/p&gt;&#xA;" OwnerUserId="2819" LastActivityDate="2010-09-20T00:03:55.090" CommunityOwnedDate="2010-09-20T14:25:59.460" />
  <row Id="5389" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T00:10:54.207" Score="0" ViewCount="" Body="&lt;p&gt;I'm from China, If I write code for myself, I use English, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I write code with my Chinese coworkers, I use Chinese comment, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I write code with other Foreigners, I use English.&lt;/p&gt;&#xA;" OwnerUserId="2840" LastActivityDate="2010-09-20T00:10:54.207" CommunityOwnedDate="2010-09-20T00:10:54.207" />
  <row Id="5390" PostTypeId="2" ParentId="501" CreationDate="2010-09-20T00:14:08.813" Score="17" ViewCount="" Body="&lt;h2&gt;Commenting in CSS&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;//&lt;/code&gt; doesn't comment out lines of code like it does in many other languages, like PHP and Javascript. Although &lt;code&gt;/* this is commented out */&lt;/code&gt; works, I prefer to use &lt;code&gt;//&lt;/code&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its a nuisance, because half the time I forget I am editing CSS and then have to go back and fix the error. &lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-20T00:14:08.813" CommunityOwnedDate="2010-09-20T00:14:08.813" CommentCount="2" />
  <row Id="5391" PostTypeId="2" ParentId="5372" CreationDate="2010-09-20T00:19:18.973" Score="3" ViewCount="" Body="&lt;p&gt;Read &lt;a href=&quot;http://www.fourmilab.ch/hackdiet/&quot; rel=&quot;nofollow&quot;&gt;The Hacker's Diet&lt;/a&gt;. It presents an engineer's approach to exercise and food intake.&lt;/p&gt;&#xA;" OwnerUserId="348" LastActivityDate="2010-09-20T00:19:18.973" CommunityOwnedDate="2010-09-20T00:19:18.973" />
  <row Id="5392" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T00:31:08.527" Score="9" ViewCount="" Body="&lt;p&gt;If it's close friends or family, I just tell them fixing configuration problems isn't my thing, and while I &lt;em&gt;can&lt;/em&gt; do it, I can't do it as efficiently as somebody who specializes in this.  I also point out that I won't get to it for a while, and point out they're better off going to a hole in the wall computer store &amp;amp; asking them to fix it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anybody else, I tell them basically the same thing, but emphasize the 'efficiency' thing, and point out that the people who do specialize in this, charge less than half the hourly rate I do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the rare cases where they continue to ask, the focus is turned to how can they find a person who does specialize in this type of thing, and I'm all to happy to help them with that (always for free).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This has been a very effective strategy for me.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-20T00:31:08.527" CommunityOwnedDate="2010-09-20T14:25:59.460" />
  <row Id="5393" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T00:34:20.250" Score="7" ViewCount="" Body="&lt;p&gt;I handle such requests by fixing the computers in question. The requests are rare enough that they don't take up much of my time, and besides, I happen to enjoy mucking about with computers.&lt;/p&gt;&#xA;" OwnerUserId="94" LastActivityDate="2010-09-20T00:34:20.250" CommunityOwnedDate="2010-09-20T14:25:59.460" CommentCount="1" />
  <row Id="5394" PostTypeId="1" AcceptedAnswerId="5528" CreationDate="2010-09-20T00:36:02.827" Score="7" ViewCount="461" Body="&lt;p&gt;Converse to the &lt;a href=&quot;http://programmers.stackexchange.com/questions/486/whats-the-best-project-youve-worked-on&quot;&gt;best project you have worked on&lt;/a&gt;, what is the worst?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had some nasty ones that had &lt;code&gt;error_reporting&lt;/code&gt; turned off, then discover there were thousands of warnings and depreciated code that was unknown to anyone because of the fact. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone else have anything like this?&lt;/p&gt;&#xA;" OwnerUserId="2449" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-24T22:25:20.047" LastActivityDate="2011-02-10T17:04:19.040" CommunityOwnedDate="2010-09-20T00:36:02.827" Title="What is the worst project you have worked on?" Tags="&lt;project&gt;&lt;bad-code&gt;" AnswerCount="4" CommentCount="4" FavoriteCount="3" />
  <row Id="5395" PostTypeId="2" ParentId="5354" CreationDate="2010-09-20T00:45:49.113" Score="6" ViewCount="" Body="&lt;p&gt;Not anytime in our present careers.  SQL syntax may change a few more times, but the relational model is a strong one, and SQL is a sufficient API (yes I said API), and without a fundamental computational database shift, I think SQL or it's children's syntax will be here for a long time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2008 was the last year that I was directly involved with FORTRAN (77 actually).  That's like 40+ years.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-20T00:45:49.113" />
  <row Id="5396" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T00:46:30.957" Score="2" ViewCount="" Body="&lt;p&gt;If it's family or close friends, I fix it if I can, or if I can't I promise to deal with the problem until it's solved (&lt;em&gt;Okey, bring it to me ... sure, just leave on your way' in the mornin' and I'll look it up. I don't think it's serious, but if I can't handle it, I'll take it to ... and you'll get it on Wednesday, latest. I'll give you a call if something needs to be replaced, but it looks like it shouldn't.&lt;/em&gt;) Refund usually comes in the form of &lt;em&gt;apfelstrudl&lt;/em&gt; on delivery :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For pretty much all others, I either help them with a piece of advice or two (which in a lots of cases does help with the problem) or advise them where it would be best for them to take the machine, and so on. Quick internet searches included. And I really don't mind helping people if I can (I don't think most of us in these community sites mind helping, after all.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from the above, most people don't ask ... although I have the reputation of a &quot;computer guy&quot;, I don't however have one of a &quot;chatty guy&quot; - so most never get a chance to ask :-)&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="2180" LastEditorDisplayName="" LastEditDate="2010-09-23T13:29:28.380" LastActivityDate="2010-09-23T13:29:28.380" CommunityOwnedDate="2010-09-20T14:25:59.460" />
  <row Id="5397" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T00:49:18.120" Score="4" ViewCount="" Body="&lt;p&gt;Every time I fantasize about telling people to go away, and every time I end up giving in because they're family/friends/girlfriend(I wish :p ). But I have to admit that it's hard to argue against this set of people, so I do have a hierarchy that goes something like this (from the most willing to help to less willing):&lt;br&gt;&#xA;girlfriend &gt; family &gt; friends &gt; Hitler &gt; co-workers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A girlfriend is a no brainer, and friends are usually polite enough about it, and ask only on rare occasions. It's the family members who are the most pushy, but, well... I'm sure it wasn't very fun for your mother to cook for you for 18 years, I suppose you can return the favor, within the limits of it not getting in the way of other things...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But strangers have no business asking you for help, and that includes co-workers. Just charge an outrageous fee and tell them you'll get to it in 2 weeks. That should take care of that. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-20T00:49:18.120" CommunityOwnedDate="2010-09-20T14:25:59.460" CommentCount="1" />
  <row Id="5398" PostTypeId="2" ParentId="5373" CreationDate="2010-09-20T00:49:24.207" Score="2" ViewCount="" Body="&lt;p&gt;Here are some raw metrics from the currently listed jobs on &lt;a href=&quot;http://careers.stackoverflow.com/&quot;&gt;http://careers.stackoverflow.com/&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Rails:&lt;/strong&gt; 26 worldwide, 29 in the USA (WTF?)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Django:&lt;/strong&gt; 15 worldwide, 11 in the USA&lt;br&gt;&#xA; &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Python:&lt;/strong&gt; 65 worldwide, 62 in the USA (WTF again?)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ruby:&lt;/strong&gt; 56 worldwide, 61 in the USA&lt;br&gt;&#xA; &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;PHP:&lt;/strong&gt; 64 worldwide, 70 in the USA (......)&lt;br&gt;&#xA; &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Total jobs listed:&lt;/strong&gt; 301 worldwide, 337 in the USA&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm not sure what's up with the odd results for USA vs. worldwide, though.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-09-20T00:49:24.207" CommentCount="4" />
  <row Id="5399" PostTypeId="2" ParentId="5334" CreationDate="2010-09-20T00:54:59.200" Score="0" ViewCount="" Body="&lt;p&gt;I noticed that most of my notes have a hierarchical structure, that's why I love &lt;strong&gt;outliners&lt;/strong&gt;. The best one I've used so far is definitely &lt;a href=&quot;http://www.omnigroup.com/products/omnioutliner/&quot; rel=&quot;nofollow&quot;&gt;OmniOutliner&lt;/a&gt;, in fact it was the main reason why I switched to Mac. Nowadays I use &lt;a href=&quot;http://bike-nomad.com/vim/vimoutliner.html&quot; rel=&quot;nofollow&quot;&gt;The Vim Outliner&lt;/a&gt;. It's very basic but I like the fact that the data is stored in plain-text and I can make use of my Vim fu.&lt;/p&gt;&#xA;" OwnerUserId="2313" LastEditorUserId="2313" LastEditorDisplayName="" LastEditDate="2010-09-30T18:07:14.037" LastActivityDate="2010-09-30T18:07:14.037" CommentCount="1" />
  <row Id="5400" PostTypeId="2" ParentId="5373" CreationDate="2010-09-20T01:01:18.213" Score="2" ViewCount="" Body="&lt;p&gt;In Australia, there's definitely some serious need for Rails developers. Many shops here are looking to sponsor some training courses for recent university graduates because there just aren't decent people on the market.&lt;/p&gt;&#xA;" OwnerUserId="2632" LastActivityDate="2010-09-20T01:01:18.213" CommentCount="3" />
  <row Id="5401" PostTypeId="2" ParentId="5366" CreationDate="2010-09-20T01:04:25.077" Score="3" ViewCount="" Body="&lt;p&gt;Nobody works &lt;em&gt;with&lt;/em&gt; Bill Gates. People work &lt;em&gt;for&lt;/em&gt; Bill Gates. I have learned that this is an important distinction. (Bill Gates had nothing to do with me learning that lesson, I'm thinking of another boss I once had. But I'm sure it still applies to some degree.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To provide an actual answer to your question, though: yes, someone has worked with Bill Gates, but, you know, way back in the day. I will say that I once got to share an hour of his time with three other people. The topic was the future of computing, not code &lt;em&gt;per se&lt;/em&gt;, but I got the impression that he really did care about coding and was &quot;one of us&quot; &amp;#8212; that is, technical people &amp;#8212; at heart.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;#60;/2&amp;#162;&amp;#62;&lt;/p&gt;&#xA;" OwnerUserId="94" LastActivityDate="2010-09-20T01:04:25.077" />
  <row Id="5402" PostTypeId="2" ParentId="3684" CreationDate="2010-09-20T01:08:44.863" Score="1" ViewCount="" Body="&lt;p&gt;I use this one all the time.. &lt;a href=&quot;http://www.addedbytes.com/cheat-sheets/download/mod_rewrite-cheat-sheet-v2.pdf&quot; rel=&quot;nofollow&quot;&gt;mod_rewrite cheat sheet&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-20T01:08:44.863" />
  <row Id="5403" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T01:13:18.970" Score="4" ViewCount="" Body="&lt;p&gt;It's usually an &lt;a href=&quot;http://en.wikipedia.org/wiki/ID-Ten-T_Error&quot; rel=&quot;nofollow&quot;&gt;ID10T&lt;/a&gt; error. But normally, its a hardware or software issue. So as a website programmer, I simply say &lt;strong&gt;&quot;Sorry I only work on websites. Besides, it sounds like a hardware issue, you need a hardware tech, and I don't know anything about that anymore.&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, I normally have to make exceptions for friends and family members.. but it irritates me. I almost always will procrastinate on it, since it is low-priority to me. &lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-20T01:13:18.970" CommunityOwnedDate="2010-09-20T14:25:59.460" />
  <row Id="5404" PostTypeId="2" ParentId="5345" CreationDate="2010-09-20T01:17:07.947" Score="3" ViewCount="" Body="&lt;p&gt;The developer tools in Google Chrome, I have found are more stable and work better for me than Firebug for Firefox. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am also a big fan of Fiddler for sorting out SSL packets.&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-20T01:17:07.947" />
  <row Id="5405" PostTypeId="1" CreationDate="2010-09-20T01:23:39.773" Score="4" ViewCount="146" Body="&lt;p&gt;When I get a new laptop, it usually takes me about two weeks to reinstall all my developer programs, utilities and tweak the O/S settings to how I like them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know there are utilities out there to backup/restore systems, but this is usually if it is on the same hardware. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would you recommend?&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-20T04:33:18.410" Title="Setting up a new developer system - how to speed up the process?" Tags="&lt;web-development&gt;&lt;software&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="5407" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T01:32:15.867" Score="15" ViewCount="" Body="&lt;p&gt;Like it or not, you have to make exceptions for family members, in the end they're family, right? When it comes to other people I used to invent some kind of excuse. Anything from &quot;I'm extremely busy at the moment&quot; to not answering their phone calls. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem isn't helping them it's 1) you help them once and afterwards you're their official tech support 'dude' and 2) if something worse happens that you did not expect they will kinda blame it on you. In the end I like to keep my distance from them.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm gonna link a very funny post from TheOatMeal assuming you have't seen it already. Enjoy :-) &#xA;&lt;a href=&quot;http://theoatmeal.com/comics/computers&quot; rel=&quot;nofollow&quot;&gt;http://theoatmeal.com/comics/computers&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="2849" LastActivityDate="2010-09-20T01:32:15.867" CommunityOwnedDate="2010-09-20T14:25:59.460" CommentCount="2" />
  <row Id="5408" PostTypeId="2" ParentId="5405" CreationDate="2010-09-20T01:39:47.697" Score="3" ViewCount="" Body="&lt;p&gt;Portable external disc (the regular spinning kind) with images of all your software on it, along with an image mounting program. All except the OS of course. Really speeds up the installation on a new system compared to the time when installing from CD/DVDs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Put all your settings files in one place - for me it's &quot;user-home&quot; directory on C drive. Also, all portable software goes in there (in general, all software which can be easily copied). So that leaves only the installable programs. Before reinstalling get a screen shot of your Start menu (&lt;em&gt;as stupid as it sounds - it works - you'll always forget to reinstall something, and it's a pain discovering it when you need it and haven't got the installation media near&lt;/em&gt;) and go from top to bottom.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't know what else to say ... could you be more specific with your question?&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-20T01:39:47.697" CommentCount="2" />
  <row Id="5409" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T01:41:07.760" Score="1" ViewCount="" Body="&lt;p&gt;Just say, &quot;If you're interested, I'll draw up a quote for you.&quot; That usually either makes them a little less interested or makes you a little more spending money. The other option is asking for a favor in return.&lt;/p&gt;&#xA;" OwnerUserId="73" LastActivityDate="2010-09-20T01:41:07.760" CommunityOwnedDate="2010-09-20T14:25:59.460" />
  <row Id="5410" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T01:42:37.090" Score="0" ViewCount="" Body="&lt;p&gt;English is not my mother language but I definitely use strictly English for everything. To be perfectly honest I absolutely hate to see non-English comments or something else written in a language besides English.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mainly, because I think it's one of the most beautiful languages and probably (maybe) because for the languages/frameworks/more I learned/learn I use strictly english materials(like textbooks, online tutorials).&lt;/p&gt;&#xA;" OwnerUserId="2849" LastActivityDate="2010-09-20T01:42:37.090" CommunityOwnedDate="2010-09-20T01:42:37.090" />
  <row Id="5411" PostTypeId="2" ParentId="5405" CreationDate="2010-09-20T01:51:31.733" Score="1" ViewCount="" Body="&lt;p&gt;That is way longer than it should take. How much time are you devoting to it? How much do you keep up with the progress bars?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have another computer, you can use it to check the progress of your dev system. Once you've installed your OS, immediately install network drivers, then VPN/VNC software like &lt;a href=&quot;http://www.uvnc.com/&quot; rel=&quot;nofollow&quot;&gt;UltraVNC&lt;/a&gt; or Windows Remote Desktop. Then just login to the machine and install everything remotely. All you have to do is alt-tab, see where the progress bar is, then alt-tab back to your work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you get a laptop, why not just put it right next to you? Easy.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;For settings, just backup the %appdata% folder on Windows or your entire home directory in Linux. This should get most of your settings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For theme, just save the theme file in Windows or backup your theme according to your DE in Linux.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;For me, it takes about a full day with Windows, and a day or two with Linux. 2 weeks is an excessive amount to be spending on reinstalling an OS.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-20T01:51:31.733" CommentCount="2" />
  <row Id="5412" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T01:58:19.993" Score="99" ViewCount="" Body="&lt;p&gt;Here's what you do:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If it's a Windows box say, &quot;I only know how to fix Macs&quot;.&lt;/li&gt;&#xA;&lt;li&gt;If it's a Mac say, &quot;I only know how to fix PCs&quot;.&lt;/li&gt;&#xA;&lt;li&gt;If it's a Linux box say, &quot;You're a Linux user... fix it &lt;em&gt;yourself&lt;/em&gt;!&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2142" LastActivityDate="2010-09-20T01:58:19.993" CommunityOwnedDate="2010-09-20T14:25:59.460" CommentCount="8" />
  <row Id="5413" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T02:03:04.793" Score="1" ViewCount="" Body="&lt;p&gt;In the past I've been fairly amenable to helping friends and family with computer problems (hell, I had to go visit my Great Aunt every time daylight savings changed to update the clock on their VCR).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The worst is going to try and sort out the &quot;family computer&quot; which will usually be virus riddled and have no current security software. It's worse if they have a teenage son as I'll invariably come across their stash of illicit image and movie files that they've hidden away somewhere, and thus end up in the middle of that mess. Disillusioned many a parent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These days I'll tend to maintain a 15 minute rule. If I'm there and I can fix it in 15 minutes then I'll do it (no charge, even with my customers). I see it as good will. Usually uninstalling any software they don't need, and running &lt;a href=&quot;http://www.piriform.com/ccleaner&quot; rel=&quot;nofollow&quot;&gt;ccleaner&lt;/a&gt; will clean up a lot of problems. I'll also do a quick scan with &lt;a href=&quot;http://vil.nai.com/vil/stinger/&quot; rel=&quot;nofollow&quot;&gt;stinger&lt;/a&gt; and if I find anything let them know that they need to take it somewhere to get more thoroughly looked at.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of the time the simple fact of the matter is the computer is too old and it's not gonna get much faster than it is already.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aside: I once correctly diagnosed a computer problem my barber was having as a faulty keyboard from the description he gave me during the haircut. Still had to pay for the haircut mind you...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The one exception to the rule is my parents. They always get free computer support 'cause afterall, they supported me through uni and all, so they might as well get something back for it. (Mind you, when I was working from home, I did end up threatening to invoice my Dad if he kept showing up during work hours.) I've also got a &lt;a href=&quot;http://www.uvnc.com/addons/singleclick.html&quot; rel=&quot;nofollow&quot;&gt;reverse VNC&lt;/a&gt; system set up so I can remote connect to their desktops to see what's going on.&lt;/p&gt;&#xA;" OwnerUserId="415" LastActivityDate="2010-09-20T02:03:04.793" CommunityOwnedDate="2010-09-20T14:25:59.460" />
  <row Id="5414" PostTypeId="2" ParentId="5372" CreationDate="2010-09-20T02:04:06.280" Score="0" ViewCount="" Body="&lt;p&gt;They write an intentional bug in The Matrix that &lt;em&gt;subtracts&lt;/em&gt; all calories from Jolt Cola from their daily intake. And you always thought it was because of the caffeine!&lt;/p&gt;&#xA;" OwnerUserId="2142" LastActivityDate="2010-09-20T02:04:06.280" CommunityOwnedDate="2010-09-20T02:04:06.280" />
  <row Id="5415" PostTypeId="1" CreationDate="2010-09-20T02:14:25.687" Score="11" ViewCount="292" Body="&lt;p&gt;Frequently, I have been finding myself overloaded with contracts. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the time, I find myself juggling with at least 2 projects, in addition to the numerous websites I have to upkeep and perform maintenance on. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, many of my clients will expect updates constantly - are constantly adding more to the to-do list than any one programmer could keep up with, and freaking out because the deadline was already overdue when I started on a project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I constantly run into the fact most clients do not really understand the amount of work that can be involved behind the scenes, especially if it is non-visually-impacting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone know of good ways to handle these situations I might be overlooking?&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-21T00:03:12.553" Title="How to handle demanding clients?" Tags="&lt;project-management&gt;&lt;time-management&gt;&lt;client&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="4" />
  <row Id="5416" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T02:28:03.113" Score="0" ViewCount="" Body="&lt;p&gt;My parents ask me this most often, and I always help them. They paid for enough things in my life that I feel the least I can do is keep their computers up and running smoothly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For everyone else I say &quot;sure&quot;, then I take 5-10 minutes and do as much non-permanent damage as I possibly can. I uninstall features, add extra logins, change device settings, and change path variables. Eventually, I say &quot;I give up&quot;, and they pay someone else to fix their now /really/ broken system. So far, nobody has ever asked me to fix their computer twice.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T18:27:26.693" LastActivityDate="2010-09-30T18:27:26.693" CommunityOwnedDate="2010-09-20T14:25:59.460" CommentCount="11" />
  <row Id="5417" PostTypeId="2" ParentId="5415" CreationDate="2010-09-20T02:28:29.273" Score="2" ViewCount="" Body="&lt;p&gt;At the risk of stating the obvious, the way I'd handle this is by just not taking on more contracts than I can deal with in the first place.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-20T02:28:29.273" />
  <row Id="5418" PostTypeId="2" ParentId="5415" CreationDate="2010-09-20T02:48:46.907" Score="15" ViewCount="" Body="&lt;p&gt;Charge more.&#xA;Learn to say no.&#xA;Get some help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're freaking out because they don't know what they are doing and are trying to motivate you. Every feature 'must' be included. They're all #1 priority. And they were due yesterday. Basically their boss is on their case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take control of the project and bring some sanity to the situation. Start with a small piece of the project. Make a plan. Set a time-frame for your development and for their part (reviews, testing, approval, etc.). When they want to change the plan, just ask them, &quot;What other part should I remove or how far should I backup the due date?&quot; Remind them that this is what you agreed on and you don't mind making changes, but something has to give. This should help create a history of what they should expect from you in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So far, you haven't mentioned that anyone is trying to dump you. You must be doing something right or you found clients no on else wants. Maybe you could dump the clients and stick it to your competition ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: The art of saying no is in your mind you're saying no, but don't actually use the word. Features, Time, and resources are a constant compromise. It is important to let the client know the problems and don't just assume they will expect the form to take longer to load when you add 50 more fields.&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2010-09-20T14:41:59.400" LastActivityDate="2010-09-20T14:41:59.400" CommentCount="2" />
  <row Id="5419" PostTypeId="2" ParentId="5415" CreationDate="2010-09-20T02:49:28.147" Score="0" ViewCount="" Body="&lt;p&gt;What kind of time frame (SLA) are you committing to for the updates (which are what probably hurt your productivity the most)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you know you have 48 hours, or maybe 2 business days, to get all the small changes done once the request is made, you can group them by client or type of request.  Just knowing you have the 'wiggle room' can take off a lot of the pressure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they need it sooner, maybe there's an extra charge - to make them work harder to plan ahead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might be thinking that they wouldn't stand for it - but they do the same thing (or should) for their business... whatever the reasonable lead time is.&lt;/p&gt;&#xA;" OwnerUserId="2671" LastActivityDate="2010-09-20T02:49:28.147" />
  <row Id="5420" PostTypeId="2" ParentId="5405" CreationDate="2010-09-20T02:58:28.390" Score="0" ViewCount="" Body="&lt;p&gt;I'm a huge fan of VMs (virtual machines) when it comes to development environments.  The benefit of virtual machines is that you have a portable, machine independent snapshot of your environment.  If you wind up working on team with other developers, cloning the VM is a snap.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-09-20T02:58:28.390" />
  <row Id="5421" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T02:59:45.733" Score="2" ViewCount="" Body="&lt;p&gt;Had the pregnant spouse of a friend of a co-worker call me about a printer problem. Finally, I had to tell her to return it and sat on the phone for what seemed like an hour just listening to her sob. Now I tell horror stories about all the computers I've screwed up. I hate working with: hardware, networking, security, and other people's code. Pretty much in that order.&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="2180" LastEditorDisplayName="" LastEditDate="2010-09-23T13:26:01.120" LastActivityDate="2010-09-23T13:26:01.120" CommunityOwnedDate="2010-09-20T14:25:59.460" />
  <row Id="5422" PostTypeId="2" ParentId="5372" CreationDate="2010-09-20T03:08:04.103" Score="0" ViewCount="" Body="&lt;p&gt;Lot's of good advice in previous answers. But I think young people have a false sense of security when it comes to health and don't realize that if you don't have good habits now, it will be tough to change when you get older. If you like to run, keep running.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-20T03:08:04.103" CommunityOwnedDate="2010-09-20T03:08:04.103" CommentCount="1" />
  <row Id="5423" PostTypeId="2" ParentId="3069" CreationDate="2010-09-20T03:08:35.573" Score="0" ViewCount="" Body="&lt;p&gt;Speaking as a professional developer in a &lt;a href=&quot;http://stackoverflow.com/questions/3169051/code-golf-word-frequency-chart/3173781#3173781&quot;&gt;niche language&lt;/a&gt;, it's possible to make a living.  There are upsides and downsides, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things that are harder:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Finding a job takes longer&lt;/li&gt;&#xA;&lt;li&gt;Jobs are more likely to require you to move&lt;/li&gt;&#xA;&lt;li&gt;You will get little respect from mainstream programmers (and hence, more resistance).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Things that are easier:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The small pool of programmers makes&#xA;&lt;em&gt;competing&lt;/em&gt; for jobs easier&lt;/li&gt;&#xA;&lt;li&gt;You can know every programmer of significance&#xA;in your field&lt;/li&gt;&#xA;&lt;li&gt;Developing a reputation is easier than in the mainstream&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Things that just &lt;em&gt;are&lt;/em&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pay tends to be more variable, since there are few standards&lt;/li&gt;&#xA;&lt;li&gt;Much time is spent on educating others about strengths and weaknesses of your niche&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Overall, if a career is your concern, you should never be a one-trick pony, mainstream or niche.&lt;/p&gt;&#xA;" OwnerUserId="2851" LastEditorUserId="2851" LastEditorDisplayName="" LastEditDate="2010-09-20T03:14:00.270" LastActivityDate="2010-09-20T03:14:00.270" />
  <row Id="5424" PostTypeId="2" ParentId="5334" CreationDate="2010-09-20T03:16:12.310" Score="1" ViewCount="" Body="&lt;p&gt;A journal and Post-its! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You got to have a consistent way of jotting down your notes that makes sense to you, keep it organised on paper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's just that simple, sure I look like a dork with my Journal but I'm an organised dork =)&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-09-20T03:16:12.310" />
  <row Id="5425" PostTypeId="2" ParentId="5415" CreationDate="2010-09-20T03:16:44.523" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Don't take on too many jobs at once. &lt;/li&gt;&#xA;&lt;li&gt;Clearly define your responsibilities from the outset. &lt;/li&gt;&#xA;&lt;li&gt;Any spec additions or complications cost money.&lt;/li&gt;&#xA;&lt;li&gt;Make your contract in a way that you have a hold on them.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;take a deposit&lt;/li&gt;&#xA;&lt;li&gt;you have the right to terminate if they don't respond in a timely manner&lt;/li&gt;&#xA;&lt;li&gt;define their responsibilities&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="67" LastEditorUserId="67" LastEditorDisplayName="" LastEditDate="2010-09-21T00:03:12.553" LastActivityDate="2010-09-21T00:03:12.553" CommentCount="2" />
  <row Id="5426" PostTypeId="2" ParentId="5366" CreationDate="2010-09-20T03:18:30.697" Score="8" ViewCount="" Body="&lt;p&gt;I got to be part of a presentation once to Bill on advances in software testing. He was nice, engaging, asked great questions, and liked what we had to say. I'm sure he was just nice because we didn't talk about products at all. I remember that we had a really flimsy visualization for one of the tools we were showing him - and that the visualization was one of the things he liked the most. Luckily, it didn't break for him. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We were supposed to do a follow up a year later, but a lot of things changed and we never got back to him (or maybe he cancelled - it was years ago, and I can't remember).&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-09-20T03:18:30.697" />
  <row Id="5427" PostTypeId="1" AcceptedAnswerId="5429" CreationDate="2010-09-20T03:33:57.570" Score="16" ViewCount="1360" Body="&lt;p&gt;Other than being annoyed at whitespace as syntax, I'm not a hater, I just don't get the fascination with Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I appreciate the poetry of Perl, and have programmed beautiful web services in bash &amp;amp; korn, and shebang &lt;code&gt;gnuplot&lt;/code&gt;.  I write documents in &lt;code&gt;troff&lt;/code&gt; and don't mind REXX.  Didn't find tcl any more useful years ago, but &lt;strong&gt;what's the big stink about Python&lt;/strong&gt;?  I see job listings and many candidates with this as a prize &amp;amp; trophy on their resumes.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I guess in reality, I'm trying to personally become sold on this, I just can't find a reason.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="2274" LastEditorDisplayName="" LastEditDate="2010-09-20T03:46:43.577" LastActivityDate="2011-01-19T10:13:42.907" Title="Why such popularity with Python?" Tags="&lt;python&gt;&lt;bash&gt;&lt;perl&gt;" AnswerCount="15" CommentCount="13" FavoriteCount="6" />
  <row Id="5428" PostTypeId="2" ParentId="5427" CreationDate="2010-09-20T03:39:08.900" Score="10" ViewCount="" Body="&lt;p&gt;I hope this doesn't sound too cynical, but IMO Python is so popular for the exact same reason Java, C# and Objective-C are.  Not because there's anything spectacular about the languages themselves, but because they've each got a magacorporate sponsor that's able to produce a lot of hype, a lot of advertising, and a lot of libraries and support for their preferred language.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-20T03:39:08.900" CommentCount="8" />
  <row Id="5429" PostTypeId="2" ParentId="5427" CreationDate="2010-09-20T03:52:57.493" Score="29" ViewCount="" Body="&lt;p&gt;Python is a well-designed language with a reasonably clean syntax, a comprehensive standard library, excellent included and third party documentation, widespread deployment, and the immediacy of a &quot;scripting&quot; style language (ie. no explicit compile step).&lt;/p&gt;&#xA;" OwnerUserId="348" LastActivityDate="2010-09-20T03:52:57.493" CommentCount="3" />
  <row Id="5430" PostTypeId="2" ParentId="5427" CreationDate="2010-09-20T04:02:59.783" Score="31" ViewCount="" Body="&lt;p&gt;I've found Python to be the most natural programming language that I've ever written code in. I've coded in a lot of languages before and after Python, and to a greater or lesser extent, you have to fight the language to get it to do what you want. Python reduces this struggle massively. Eric S Raymond said it &lt;em&gt;much&lt;/em&gt; better than I can in &lt;a href=&quot;http://www.linuxjournal.com/article/3882&quot; rel=&quot;nofollow&quot;&gt;Why Python?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a related point, Python maintains its cleanness even while evolving rapidly. In most languages I've worked with, introduction of new language features introduces a lot of wrinkles. But with Python, even major language features (decorators come to mind) are added all the time, without feeling like ugly hacks.&lt;/p&gt;&#xA;" OwnerUserId="61" LastEditorUserId="61" LastEditorDisplayName="" LastEditDate="2010-09-20T04:15:27.427" LastActivityDate="2010-09-20T04:15:27.427" CommentCount="3" />
  <row Id="5431" PostTypeId="2" ParentId="5356" CreationDate="2010-09-20T04:28:55.953" Score="1" ViewCount="" Body="&lt;p&gt;It seems to me that you're doing more to express your opinion (&quot;If you take a real TCO look at large ERP and/or consolidated application landscapes, mainframe is actually quite cost-effective.&quot;) than really ask a question. On that basis, I'm &lt;em&gt;tempted&lt;/em&gt; to vote to close, but won't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the question (to the extent there is one), I'm going to assume that by &quot;mainframe&quot;, you mean something like an IBM z series machine, rather than (for example) one of the big Fujitsu SPARC boxes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think for many people, it's hard to recommend mainframes for a couple of reasons. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Every vendor has TCO numbers to &quot;prove&quot; their product is the best. Why should somebody trust numbers from IBM more than from Microsoft, Oracle, etc?&lt;/li&gt;&#xA;&lt;li&gt;Even if a mainframe really would make sense, such a recommendation is unlikely to be taken seriously, and whoever made such a recommendation will often be treated as a pariah.&lt;/li&gt;&#xA;&lt;li&gt;Even if the TCO would theoretically work out better in some respects, introducing machines with which existing staff are thoroughly unfamiliar would often be a mistake anyway.&lt;/li&gt;&#xA;&lt;li&gt;Using a mainframe would often lose versatility in other ways. Just for example, an Intel box can easily run Windows Terminal Server to make Word and Excel available, which is a bit tougher to do with a mainframe.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-09-20T04:28:55.953" CommentCount="3" />
  <row Id="5432" PostTypeId="2" ParentId="5405" CreationDate="2010-09-20T04:33:18.410" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Over the years I've come to this set of habits, which works well for me:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;I stopped customizing so much.&lt;/strong&gt; Before I used to tweak my desktop and Windows settings greatly. After a while I realized I grew dependent on these tweaks, and would get uncomfortable when working at a co-workers PC, on family members' PCs etc. Now I keep it down to just a few must-have changes, and generally keep my Windows and less important tools at default settings.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;I use multiple PCs, each dedicated to specific tasks.&lt;/strong&gt; My work PC is a laptop, which I keep 'clean' for lack of a better word -- no private stuff, almost no games/multimedia/accessories, just my primary work tools. As such it rarely (actually, almost never) breaks, and I spend often keep the same Windows installation until it's time to replace the hardware (2-3 years). My home gaming PC on the other hand gets reinstalled far more frequently. But I don't care, it is easy to just reinstall and allow Steam to redownload all my games.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Optional, use full-disk backup with system state.&lt;/strong&gt; Actually I'm thinking about quitting this habit, because I haven't had to reload a system backup in ~3 years. But in the olden day Acronis Trueimage saved me a few times, by allowing me to just overwrite my full Windows + applications state with a known working backup. The built-in Windows Vista / 7 backup tool can AFAIK do something similar.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Embrace Virtualization.&lt;/strong&gt; I do all testing of new software in a VM, and I keep 'invasive' software (mostly enterprise server software) contained in VMs. I have my VMs on a external USB2 2.5&quot; HDD; it's not the fastest but it works for me.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2863" LastActivityDate="2010-09-20T04:33:18.410" CommentCount="2" />
  <row Id="5433" PostTypeId="2" ParentId="5415" CreationDate="2010-09-20T04:35:16.527" Score="0" ViewCount="" Body="&lt;p&gt;In addition to the other advice offered, it's important to establish clear expectations. Preempt their concerns and questions. &lt;strong&gt;Educate&lt;/strong&gt; your clients from the beginning about time and cost. Don't let them bully you into something that can't be done in a certain time frame. What's more, &lt;strong&gt;put it in writing&lt;/strong&gt; in the form of a &lt;strong&gt;contract&lt;/strong&gt; so that both of you can sign it. Make it clear that if a client increases scope, the cost of the project in terms of both cost and time will increase.&lt;/p&gt;&#xA;" OwnerUserId="73" LastActivityDate="2010-09-20T04:35:16.527" />
  <row Id="5435" PostTypeId="1" AcceptedAnswerId="5506" CreationDate="2010-09-20T04:40:22.173" Score="8" ViewCount="317" Body="&lt;p&gt;These days one only gets to hear the anti-outsourcing argument citing failed projects, lost jobs, cultural differences, communication issues and so on. The success stories, cost savings, shared cultural experiences often get conveniently ignored.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What can programmers from both sides of the globe do as a community to improve the way outsourcing works and to make it more meaningful and relevant? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please suggest constructive ideas/experiences rather than letting this be another opportunity for ranting.&lt;/p&gt;&#xA;" OwnerUserId="2861" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T04:00:51.687" LastActivityDate="2010-10-15T16:51:34.403" Title="What can we do to improve the way outsourcing/offshoring works?" Tags="&lt;experience&gt;&lt;outsourcing&gt;" AnswerCount="6" FavoriteCount="3" />
  <row Id="5436" PostTypeId="1" CreationDate="2010-09-20T04:43:23.933" Score="5" ViewCount="297" Body="&lt;p&gt;I'm looking for advice on how to be able to program productively on a 13&quot; inch notebook screen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples might be:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Reconfigure Visual Studio/Eclipse/XCode to hide as much chrome as possible&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Throw out the IDE altogether and use a text editor + command line tools&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Use multiple desktops&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It would be most helpful if you could be specific about the programming language or platform/environment your tip works for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="2857" LastEditorUserId="2857" LastEditorDisplayName="" LastEditDate="2010-09-20T14:39:01.163" LastActivityDate="2010-09-26T20:48:36.980" CommunityOwnedDate="2010-09-20T04:43:23.933" Title="What are your usability tips for programming on a small screen?" Tags="&lt;productivity&gt;&lt;tools&gt;&lt;recommendations&gt;&lt;usage&gt;" AnswerCount="4" CommentCount="5" FavoriteCount="4" />
  <row Id="5438" PostTypeId="2" ParentId="5436" CreationDate="2010-09-20T04:54:47.700" Score="4" ViewCount="" Body="&lt;p&gt;I choose option (2). I use &lt;a href=&quot;http://vim.org&quot; rel=&quot;nofollow&quot;&gt;Vim&lt;/a&gt; and &lt;a href=&quot;http://www.gnu.org/software/screen/&quot; rel=&quot;nofollow&quot;&gt;Screen&lt;/a&gt; and usually have three screen windows:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;source control (Git)&lt;/li&gt;&#xA;&lt;li&gt;editing (Vim)&lt;/li&gt;&#xA;&lt;li&gt;run/debug shell (separate so I can just uparrow-enter to rerun)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I use a Mac at home and Windows connected to Linux machines at work, and this workflow works exactly the same in both places. For Windows, I use &lt;a href=&quot;http://www.chiark.greenend.org.uk/~sgtatham/putty/&quot; rel=&quot;nofollow&quot;&gt;PuTTY&lt;/a&gt; which has a full-screen mode that eliminates all window decorations and results in a completely clutter-free workspace.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm usually working in Python or C++ on non-GUI programs. However, the above works even for GUI programs, either desktop or browser. Obviously for browser apps, the &quot;run&quot; step is &quot;Alt+Tab to browser and hit reload&quot;.&lt;/p&gt;&#xA;" OwnerUserId="348" LastActivityDate="2010-09-20T04:54:47.700" CommunityOwnedDate="2010-09-20T04:54:47.700" CommentCount="1" />
  <row Id="5439" PostTypeId="2" ParentId="5435" CreationDate="2010-09-20T05:01:40.467" Score="9" ViewCount="" Body="&lt;p&gt;It is all about communication. Defining the problem and acceptance criteria and accurately communicating them is the key.  This leads to piece work or project work, but not a mix unless the contractors are senior people that you have worked with before and the problem is well understood by everyone involved.  The main problems I have had in the past were when I didn't do a good enough job defining acceptance criteria.  Always realize that &lt;a href=&quot;http://en.wiktionary.org/wiki/TMTOWTDI&quot; rel=&quot;nofollow&quot;&gt;There Is More Than One Way To Do It&lt;/a&gt; and provide sufficient direction or context to ensure that what you get meets your needs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am currently working in a fully remote development environment and constant communication is key.&lt;/p&gt;&#xA;" OwnerUserId="1609" LastActivityDate="2010-09-20T05:01:40.467" CommentCount="1" />
  <row Id="5440" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T05:01:50.060" Score="4" ViewCount="" Body="&lt;p&gt;I usually tell them they need to upgrade.&lt;/p&gt;&#xA;" OwnerUserId="2620" LastActivityDate="2010-09-20T05:01:50.060" CommunityOwnedDate="2010-09-20T14:25:59.460" CommentCount="1" />
  <row Id="5441" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T05:07:42.120" Score="0" ViewCount="" Body="&lt;p&gt;I have been told by friends the the original SAP database system was codded entirely in German. Once they were bought out however, it was likely this was ported over to English.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T05:07:42.120" CommunityOwnedDate="2010-09-20T05:07:42.120" />
  <row Id="5442" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T05:10:59.283" Score="1" ViewCount="" Body="&lt;p&gt;Happend to me and most developers so many times, what I try to do is to explain the difference between software and hardware and around 50% times I heard that &quot;You are worthless computer engineer if you can't fix computer.&quot; I know they said it in frustration because they thought by calling me they will get their job done for free :-P&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes people laungh when I say that even I cal hardware engineer when I face any hardware engineer. :-(&lt;/p&gt;&#xA;" OwnerUserId="1474" LastActivityDate="2010-09-20T05:10:59.283" CommunityOwnedDate="2010-09-20T14:25:59.460" />
  <row Id="5444" PostTypeId="2" ParentId="5415" CreationDate="2010-09-20T05:18:01.223" Score="0" ViewCount="" Body="&lt;p&gt;By fulfiling their demand. I am sorry but if you are in a service based industry then you have to do for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I still agree with &quot;Jeff O&quot;, learn to say no. &lt;/p&gt;&#xA;" OwnerUserId="1474" LastActivityDate="2010-09-20T05:18:01.223" CommentCount="2" />
  <row Id="5445" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T05:22:56.093" Score="0" ViewCount="" Body="&lt;p&gt;I just start a PHP code with the following lines:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?php&#xA;/* -----------------------------------------------------------------------------&#xA; file name     : DOCUMENTROOT/index.php&#xA; compatibility : PHP 5.2.x / UTF-8 [LF]&#xA; description   : &#xA; copyright     : Copyright(C)2010 by *********&#xA; date          : managed since [2010-09-01 19.05 (JST: GMT+0900) @462]&#xA; encode phrase : 時々京の方向に幅が細くて美しい線が入った飾りを持つ雀が往く&#xA; encode phrase : 男は傷の拳で美しく印刷された一冊の書を持ち憎い相手の笑いに応じた&#xA; encode phrase : 牀前看月光/疑是地上霜/擧頭望山月/低頭思故郷&#xA; encode phrase : 茨菰葉爛別西灣/蓮子花開猶未還/妾夢不離江上水/人傳郎在鳳凰山&#xA; encode phrase : 上記の文はエディタにエンコード判定させるためのダミー文です。&#xA; Git revision  :&#xA;----------------------------------------------------------------------------- */&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;to tell my text editor its encoding. Most text editors will not appropriately recognize an encoding of text file when it was opened in it.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T05:22:56.093" CommunityOwnedDate="2010-09-20T05:22:56.093" />
  <row Id="5446" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T05:33:47.877" Score="38" ViewCount="" Body="&lt;p&gt;It's better to pretend you don't know anything about computers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;WHY?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check out &lt;a href=&quot;http://theoatmeal.com/comics/computers&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-20T05:33:47.877" CommunityOwnedDate="2010-09-20T14:25:59.460" CommentCount="3" />
  <row Id="5447" PostTypeId="2" ParentId="5372" CreationDate="2010-09-20T05:39:17.740" Score="4" ViewCount="" Body="&lt;p&gt;Use an adjustable-height desk if you can get one. Being able to work standing up if you feel like it is a great help.&lt;/p&gt;&#xA;" OwnerUserId="108" LastActivityDate="2010-09-20T05:39:17.740" CommunityOwnedDate="2010-09-20T05:39:17.740" CommentCount="3" />
  <row Id="5448" PostTypeId="2" ParentId="5317" CreationDate="2010-09-20T05:42:13.067" Score="0" ViewCount="" Body="&lt;p&gt;To address the part of your question about hobbyist IT consultant/sysadmin stuff, you might consider volunteering your services for various charitable organizations. Church groups, local school events, etc, can often use someone familiar with networking and computers.&lt;/p&gt;&#xA;" OwnerUserId="108" LastActivityDate="2010-09-20T05:42:13.067" />
  <row Id="5449" PostTypeId="2" ParentId="5345" CreationDate="2010-09-20T06:12:33.493" Score="1" ViewCount="" Body="&lt;p&gt;I wrote &lt;a href=&quot;http://fetch.scritch.org/&quot; rel=&quot;nofollow&quot;&gt;my own tool&lt;/a&gt; for this. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I noticed, despite all the available tools, I was still using telnet to port 80 a lot, crafting my own request headers (which you can only do up to a certain level). The tool has evolved into a generic HTTP/HTTP pocketknife for analyzing HTTP and HTML details, including an explanation of headers and response codes, settable user agents, SEO information, information about embedded content, and so on. And I'm still not done yet :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The underlying HTML parsing library (on top of lxml.html, it's python based) allowed me to easily implement a second tool, a &lt;a href=&quot;http://guess.scritch.org/&quot; rel=&quot;nofollow&quot;&gt;CMS detector&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2874" LastActivityDate="2010-09-20T06:12:33.493" />
  <row Id="5450" PostTypeId="2" ParentId="5345" CreationDate="2010-09-20T06:21:11.197" Score="1" ViewCount="" Body="&lt;p&gt;I hate using browsers for things like this, as I'm generally working &lt;em&gt;in them&lt;/em&gt; and don't want to devote one to HTTP request/response tracking, especially when an HTTP request might be blocking. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead, I use the aptly-named &lt;a href=&quot;http://ditchnet.org/httpclient/&quot; rel=&quot;nofollow&quot;&gt;HTTP Client&lt;/a&gt; for Mac OS X:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/0SXWA.png&quot; alt=&quot;HTTP Client Screenshot&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simple and to the point.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-09-20T06:21:11.197" />
  <row Id="5452" PostTypeId="1" AcceptedAnswerId="5599" CreationDate="2010-09-20T06:30:54.993" Score="16" ViewCount="326" Body="&lt;p&gt;I've enjoyed a number of (fiction/non-fiction books) about hacker culture and running a software business in the 80's, 90's. For some reason things seemed so much more exciting back then. Examples are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0061624268&quot; rel=&quot;nofollow&quot;&gt;Microserfs (Douglas Coupland)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0887308554&quot; rel=&quot;nofollow&quot;&gt;Accidental Empires (Robert X. Cringely&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.wordplace.com/ap/&quot; rel=&quot;nofollow&quot;&gt;Almost Pefect (W.E. Peterson, online!)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1430219483&quot; rel=&quot;nofollow&quot;&gt;Coders at Work (Peter Seibel)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Today I'm an entrepeneur and programmer. Back in the 80's a I was a young geek hacking DOS TSR's and coding GWBasic / QBasic. In the 90's I was a C.S. university student, experiencing the rise of the Internet world wide.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When reading these books running a software business seemed so much more fun than it is nowadays. Things used to be so much simpler, opportunities seemed to be everywhere and the startups seemed to work with much more real problems (inventing spreadsheets, writing word processors in assembly on 6 different platforms) than all our current web 2.0 social networking toys.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone share these feelings? Does anyone have any good (personal) stories from back then or know of other good books to read?&lt;/p&gt;&#xA;" OwnerUserId="2874" LastActivityDate="2010-12-27T22:10:08.620" Title="Books and stories on programming culture, specifically in the 80's / early 90's" Tags="&lt;books&gt;&lt;history&gt;&lt;culture&gt;" AnswerCount="6" FavoriteCount="10" />
  <row Id="5453" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T06:34:28.870" Score="1" ViewCount="" Body="&lt;p&gt;If it's family, I just play dumb (it just confirms what they already thought).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's friends, I tell them life's too short to do what I hate - and that's why I started charging friends.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any body else, &quot;No&quot;.&lt;/p&gt;&#xA;" OwnerUserId="2671" LastActivityDate="2010-09-20T06:34:28.870" CommunityOwnedDate="2010-09-20T14:25:59.460" />
  <row Id="5454" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T06:36:50.050" Score="0" ViewCount="" Body="&lt;p&gt;I'm Dutch and often code in English, even my personal, internal code. My English vocabulary is also richer when it comes to programming / computer science and it doesn't make a lot of sense to (try to) use Dutch words. I.e. if I would be naming a method signature a &quot;Methode handtekening&quot; I doubt if any fellow Dutch coders would understand what I mean.&lt;/p&gt;&#xA;" OwnerUserId="2874" LastActivityDate="2010-09-20T06:36:50.050" CommunityOwnedDate="2010-09-20T06:36:50.050" />
  <row Id="5455" PostTypeId="2" ParentId="5452" CreationDate="2010-09-20T06:38:39.763" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1556152116&quot; rel=&quot;nofollow&quot;&gt;Programmers at Work&lt;/a&gt; - I think this inspired the &quot;Founders at Work&quot; and &quot;Coders at Work&quot; books.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0316491977&quot; rel=&quot;nofollow&quot;&gt;Soul of a New Machine&lt;/a&gt; - about DEC and one of their products in development.&lt;/p&gt;&#xA;" OwnerUserId="2671" LastActivityDate="2010-09-20T06:38:39.763" CommentCount="2" />
  <row Id="5456" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T06:39:14.973" Score="0" ViewCount="" Body="&lt;p&gt;I'm from Spain: in a time now, I'm mixing code in English and Spanish. From now on, I will set it strictly in English. The idea of doing everything in English is not crazy, is the future.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T06:39:14.973" CommunityOwnedDate="2010-09-20T06:39:14.973" />
  <row Id="5457" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T06:42:47.790" Score="0" ViewCount="" Body="&lt;p&gt;At a company I used to work for, the management purchased codebase for a soccer game from an Italian company.  None of us really played much soccer, and most of the variables and comments were written in Italian.  That was not a fun project.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T06:42:47.790" CommunityOwnedDate="2010-09-20T06:42:47.790" />
  <row Id="5458" PostTypeId="2" ParentId="5427" CreationDate="2010-09-20T06:47:31.867" Score="6" ViewCount="" Body="&lt;p&gt;My experience is that the people who find true joy in programming often seek a language that fits them better than what they learned at school or university. Basically this means that they will move from the default PHP / Visual Basic / C++ / Java / C# to something more exotic (business/careerwise) such as Python, Ruby, Haskell and even perl (because of it's enormous hack value and obscurity).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong, there are &lt;em&gt;very&lt;/em&gt; experienced C# / VB.net programmers who take great pride and joy in their work and code (the StackOverflow guys are a very good example), but you don't become a python programmer just because that's what they taught you in school; it has to be your own decision.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think Jeff Atwoord had a blog post on this, but I can't find it. If I find it I'll update this comment.&lt;/p&gt;&#xA;" OwnerUserId="2874" LastActivityDate="2010-09-20T06:47:31.867" />
  <row Id="5460" PostTypeId="1" CreationDate="2010-09-20T06:54:25.453" Score="10" ViewCount="547" Body="&lt;p&gt;This question was taken from &lt;a href=&quot;http://www.codinghorror.com/blog/2006/07/linus-torvalds-visual-basic-fan.html&quot; rel=&quot;nofollow&quot;&gt;CodingHorror&lt;/a&gt;. On my list would be (and some actually are):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Android Development (and possibly iPhone development)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://golang.org&quot; rel=&quot;nofollow&quot;&gt;Go language and its concurrency&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;NoSQL, specifically &lt;a href=&quot;http://couchdb.org&quot; rel=&quot;nofollow&quot;&gt;CouchDB&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rctk.googlecode.com/&quot; rel=&quot;nofollow&quot;&gt;RCTK&lt;/a&gt;, which happens to be my own idea / project (but all ideas have been thought or already, what matters is my implementation)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But I don't think I'm being cutting-edge/thinking-outside-the-box here. What's on your list?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please don't restrict yourself to the list above - that's &lt;em&gt;my&lt;/em&gt; list. I'm interested in hearing what others find interesting new technology.&lt;/p&gt;&#xA;" OwnerUserId="2874" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-20T11:41:29.633" LastActivityDate="2010-12-27T08:59:29.157" ClosedDate="2011-01-04T20:55:05.877" Title="If you had three months to learn one relatively new technology, which one would you choose?" Tags="&lt;self-improvement&gt;&lt;technology&gt;" AnswerCount="17" CommentCount="2" FavoriteCount="4" />
  <row Id="5461" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T06:58:48.203" Score="2" ViewCount="" Body="&lt;p&gt;I will try to fix the computer, and usually I'm failed, because I'm really a programmer not a technician. Next time, they'll think one more time before asking me again.&lt;/p&gt;&#xA;" OwnerUserId="488" LastActivityDate="2010-09-20T06:58:48.203" CommunityOwnedDate="2010-09-20T14:25:59.460" />
  <row Id="5462" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T07:04:27.960" Score="1" ViewCount="" Body="&lt;p&gt;For family members and close friends I usually respond by simply fixing the problem, or at least having a look it. I might grumble about being the PC maintenance guy to myself or on Twitter, but I certainly wouldn't consider charging - if it get's to the point where I think it would take that much of my time then chances are the problem is such that I can simply explain that they should take it to a specialist. I wouldn't take apart someone else's PC for the same reason I don't like to build systems for other people, as I don't want to get the blame for any damaged components.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that nearly all problems referred to me are either a slow running computer, or an infected computer where they haven't replaced / purchased the trial AV software that comes pre-installed on most PC's. In both cases, it's usually not that big a deal for me to fix things - I just leave the computer switched on in the corner of the room running whatever diagnostics / clean / repair software it needs to while periodically checking up on it.&lt;/p&gt;&#xA;" OwnerUserId="562" LastActivityDate="2010-09-20T07:04:27.960" CommunityOwnedDate="2010-09-20T14:25:59.460" />
  <row Id="5463" PostTypeId="2" ParentId="5435" CreationDate="2010-09-20T07:17:58.017" Score="3" ViewCount="" Body="&lt;p&gt;Following Agile methodologies can be a good idea. You get working software every 2-3 weeks so you don't get a big surprise at the end. Agile also enforces strong communication, the developers can approach the client directly for questions etc. Other practices like TDD, Code coverage ensure that you get a good quality code that can be modified without the risk of breaking something.&lt;/p&gt;&#xA;" OwnerUserId="2887" LastActivityDate="2010-09-20T07:17:58.017" />
  <row Id="5464" PostTypeId="2" ParentId="5460" CreationDate="2010-09-20T07:19:34.020" Score="8" ViewCount="" Body="&lt;p&gt;Learning mobile development such as iPhone/iPad &amp;amp; Android is certainly a good choice.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-20T07:19:34.020" CommentCount="4" />
  <row Id="5465" PostTypeId="2" ParentId="5460" CreationDate="2010-09-20T07:23:12.887" Score="2" ViewCount="" Body="&lt;p&gt;I think if I had 3 months I would probably go for &lt;strong&gt;iPhone&lt;/strong&gt; development.  It's such a massive market and &lt;em&gt;Cocoa&lt;/em&gt; seems pretty cool.&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-20T07:23:12.887" CommentCount="1" />
  <row Id="5466" PostTypeId="1" CreationDate="2010-09-20T07:23:49.890" Score="14" ViewCount="862" Body="&lt;p&gt;Sometimes I can't stand it when project managers ask me to estimate time to complete for various tasks.  An estimate is a guess, and guesses can be wrong.  Generally, bad requirements and documentation will lead to bad guesses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I often wonder if the project managers were ever in my shoes trying to guess at how long task X and Y will take, and how difficult it is to assign a number to it based on what little is known and collected from the client.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question then is: &lt;strong&gt;Do good project managers need to have a programming background?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or maybe the question should be, &lt;strong&gt;do good project managers need to have been a &lt;em&gt;good&lt;/em&gt; programmer before?&lt;/strong&gt;  Is there any correlation?&lt;/p&gt;&#xA;" OwnerUserId="14" LastEditorUserId="14" LastEditorDisplayName="" LastEditDate="2010-09-20T08:14:18.580" LastActivityDate="2010-11-15T06:20:46.503" Title="Do good project managers need a programming background?" Tags="&lt;experience&gt;&lt;project-management&gt;&lt;work&gt;" AnswerCount="15" FavoriteCount="6" />
  <row Id="5467" PostTypeId="2" ParentId="5435" CreationDate="2010-09-20T07:25:06.597" Score="6" ViewCount="" Body="&lt;p&gt;After 10 years of offshoring experience and interactions with hundred of people worldwide, I have only one advice:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Practice.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The top reason of failures is &lt;strong&gt;communication&lt;/strong&gt;, certainly not competence of offshore developers. Proper communication is your responsability. Be able to communicate with a different culture can't be learnt in books. You have to learn by &lt;strong&gt;communicating&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Offshoring is just great! You met with incredible people worldwide. World diversity and cultures is so amazing.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-09-20T08:42:19.503" LastActivityDate="2010-09-20T08:42:19.503" CommentCount="1" />
  <row Id="5469" PostTypeId="2" ParentId="5466" CreationDate="2010-09-20T07:27:29.290" Score="14" ViewCount="" Body="&lt;p&gt;Manager with strong technical background usually understands better how their team &quot;think&quot;. It's always better to have a manager that understands you isn't?&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-20T07:27:29.290" CommentCount="1" />
  <row Id="5470" PostTypeId="2" ParentId="5466" CreationDate="2010-09-20T07:30:15.367" Score="17" ViewCount="" Body="&lt;p&gt;Managing IT projects is definately not the same as managing other types of projects. I once heard of a project manager with &lt;em&gt;no&lt;/em&gt; IT experience. He ended up frustrating the programmers and basically scaring them away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, a programmer that becomes a Project Manager may become a control freak, thinking he can fix things if (s)he can't get the programmers to do it properly (that has been my problem in similar situations)&lt;/p&gt;&#xA;" OwnerUserId="2874" LastActivityDate="2010-09-20T07:30:15.367" CommentCount="8" />
  <row Id="5471" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T07:38:00.987" Score="15" ViewCount="" Body="&lt;p&gt;Spain has a traditional problem with foreign languages. Spaniards younger than 40 are supposed to know English from school but the plain fact is that the level of English is close to zero almost everywhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So there're basically two type of software environments: code that's supposed to be shared with international parties (open source projects, Spanish offices of foreign multinationals, vendors who sell abroad) and code that's sold locally. The former is of course written in English but the latter is normally written in Spanish, both variable names and documentation. Words in variables lose accents and tildes as required to fit into 7-bit ASCII (&lt;code&gt;dirección&lt;/code&gt; -&gt; &lt;code&gt;direccion&lt;/code&gt;) and English bits &lt;em&gt;may&lt;/em&gt; be used when they represent a standard language feature (&lt;code&gt;getDireccion&lt;/code&gt;) or a concept without an universally accepted translation (&lt;code&gt;abrirSocket&lt;/code&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It happens that the Spanish word for &lt;em&gt;year&lt;/em&gt; (año) becomes the word for anus when you remove the tilde. I don't have any problem with writing &lt;code&gt;ano&lt;/code&gt; but most other programmers avoid it at any cost and produce all sort of funny alternatives like &lt;code&gt;anno&lt;/code&gt; or &lt;code&gt;anyo&lt;/code&gt; :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some samples:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/**&#xA; * Devuelve una cadena aleatoria de la longitud indicada elegidos entre la lista proporcionada;&#xA; * contempla caracteres multi-byte&#xA; */&#xA;function mb_cadena_aleatoria($longitud=16, $caracteres='0123456789abcdefghijklmnopqrstuvwxyz'){ // v2010-06-03&#xA;    $cadena = '';&#xA;    $max = mb_strlen($caracteres)-1;&#xA;&#xA;    for($i=0; $i&amp;lt;$longitud; $i++){&#xA;        $cadena .= mb_substr($caracteres, mt_rand(0, $max), 1);&#xA;    }&#xA;    return $cadena;&#xA;}&#xA;&#xA;/*&#xA; * Da formato a un número para su visualización&#xA; *&#xA; * numero (Number o String) - Número que se mostrará&#xA; * decimales (Number, opcional) - Nº de decimales (por defecto, auto)&#xA; * separador_decimal (String, opcional) - Separador decimal (por defecto, coma)&#xA; * separador_miles (String, opcional) - Separador de miles (por defecto, ninguno)&#xA; */&#xA;function formato_numero(numero, decimales, separador_decimal, separador_miles){ // v2007-08-06&#xA;    numero=parseFloat(numero);&#xA;    if(isNaN(numero)){&#xA;        return &quot;&quot;;&#xA;    }&#xA;&#xA;    if(decimales!==undefined){&#xA;        // Redondeamos&#xA;        numero=numero.toFixed(decimales);&#xA;    }&#xA;&#xA;    // Convertimos el punto en separador_decimal&#xA;    numero=numero.toString().replace(&quot;.&quot;, separador_decimal!==undefined ? separador_decimal : &quot;,&quot;);&#xA;&#xA;    if(separador_miles){&#xA;        // Añadimos los separadores de miles&#xA;        var miles=new RegExp(&quot;(-?[0-9]+)([0-9]{3})&quot;);&#xA;        while(miles.test(numero)) {&#xA;            numero=numero.replace(miles, &quot;$1&quot; + separador_miles + &quot;$2&quot;);&#xA;        }&#xA;    }&#xA;&#xA;    return numero;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2888" LastEditorUserId="2888" LastEditorDisplayName="" LastEditDate="2010-09-20T15:35:44.307" LastActivityDate="2010-09-20T15:35:44.307" CommunityOwnedDate="2010-09-20T07:38:00.987" CommentCount="4" />
  <row Id="5472" PostTypeId="2" ParentId="5460" CreationDate="2010-09-20T07:38:32.710" Score="0" ViewCount="" Body="&lt;p&gt;I would go for Ruby / Ruby on Rails. I think it has huge potential and only needs more adoption. I also like Ruby as a programming language, its clean, OO and fast and can help you do multiple things (scripts/websites etc.)&lt;/p&gt;&#xA;" OwnerUserId="2887" LastActivityDate="2010-09-20T07:38:32.710" CommentCount="1" />
  <row Id="5473" PostTypeId="1" CreationDate="2010-09-20T07:44:12.173" Score="9" ViewCount="458" Body="&lt;p&gt;I was reading the &lt;a href=&quot;http://en.wikipedia.org/wiki/Programming_style&quot; rel=&quot;nofollow&quot;&gt;wikipedia article on programming style&lt;/a&gt; and noticed something in an argument against vertically aligned code:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Reliance on mono-spaced font; tabular&#xA;  formatting assumes that the editor&#xA;  uses a fixed-width font. Most modern&#xA;  code editors support proportional&#xA;  fonts, and the &lt;strong&gt;programmer may prefer&#xA;  to use a proportional font for&#xA;  readability&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;To be honest, I don't think I've ever met a programmer who preferred a proportional font.  Nor can I think of any really good reasons for using them.  Why would someone prefer a proportional font?&lt;/p&gt;&#xA;" OwnerUserId="1626" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-20T11:47:18.250" LastActivityDate="2010-12-30T15:01:34.273" Title="Does anyone prefer proportional fonts?" Tags="&lt;ide&gt;&lt;style-guide&gt;&lt;fonts&gt;" AnswerCount="7" CommentCount="5" FavoriteCount="1" />
  <row Id="5474" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T07:45:49.957" Score="0" ViewCount="" Body="&lt;p&gt;I noticed that is more easy for small groups to maintain an English-only standard. Big, bloated projects tends towards to use a mixed convention (English and Italian in my cases).&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T07:45:49.957" CommunityOwnedDate="2010-09-20T07:45:49.957" />
  <row Id="5476" PostTypeId="2" ParentId="5452" CreationDate="2010-09-20T07:56:57.493" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Free_as_in_Freedom%3a_Richard_Stallman%27s_Crusade_for_Free_Software&quot; rel=&quot;nofollow&quot;&gt;Free as in Freedom: Richard Stallman's Crusade for Free Software&lt;/a&gt; - Sam Williams&lt;br&gt;&#xA;Free biography of Richard Stallman - Contains lots of stories of programming culture at MIT.&#xA;I've read most of this and it's quite interesting. If you're interested in the FSF and how the whole free software movement started this is worth a read.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0141000511&quot; rel=&quot;nofollow&quot;&gt;Hackers: Heroes of the Computer Revolution&lt;/a&gt; - Steven Levy (&lt;a href=&quot;http://en.wikipedia.org/wiki/Hackers%3a_Heroes_of_the_Computer_Revolution&quot; rel=&quot;nofollow&quot;&gt;Wikipedia page&lt;/a&gt;)&lt;br&gt;&#xA;&quot;describes the people, the machines, and the events that defined the Hacker Culture and the Hacker Ethic, from the early mainframe hackers at MIT, to the self-made hardware hackers and game hackers.&quot; - I haven't read this yet, but it's on my to do list.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="134" LastActivityDate="2010-09-20T07:56:57.493" />
  <row Id="5477" PostTypeId="2" ParentId="5336" CreationDate="2010-09-20T07:57:16.370" Score="1" ViewCount="" Body="&lt;p&gt;I see this question making as much sense as &quot;How do I deal with the dying symptoms of putting a bullet in my brain?&quot;  You don't deal with those symptoms.  To prevent dying, the best choice of action is not to put a bullet in your brain.  Or more in context, the best way to prevent being stressed out is to not overwork yourself.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-09-20T07:57:16.370" />
  <row Id="5478" PostTypeId="2" ParentId="5427" CreationDate="2010-09-20T07:57:37.900" Score="1" ViewCount="" Body="&lt;p&gt;Python is a very 'webby' language in both the frameworks available (Django, Zope etc) and in the easily importable libraries, which again cover many web functions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For web developers making the move from just a HTML, CSS + JS skillset (anecdotally a large source of new programmers over the past few years), I think this makes it a very attractive proposition (ditto Ruby).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, Google isn't Microsoft....&lt;/p&gt;&#xA;" OwnerUserId="2816" LastActivityDate="2010-09-20T07:57:37.900" CommentCount="1" />
  <row Id="5479" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T08:00:13.053" Score="3" ViewCount="" Body="&lt;p&gt;I'm from Germany and I write my class, method, variable names all in english and I think most of the people do this as well.&#xA;But in comments it depends on whom I'm working with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I have to admit if I see code written in some other language than english I really hate it cause you can't &quot;read the code&quot;. It's like if someone would write a sentence in german mixed with english.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A other reason you definitely should use english when coding is that API calls and language specific calls are always written in english. So why switching languages? I would even say using english helps you thinking cause you don't have to switch languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also all those documentations and most questions and answers on the internet are in english so IMO you HAVE TO work in english anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One example I think it is horrible to see is&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;meinObst = &quot;Apfel;Himbeere;Traube&quot;&#xA;meinGeteiltesObst = meinObst.split(&quot;;&quot;)&#xA;&#xA;for obst in meinGeteiltesObst:&#xA;    ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You absolutely can see it in the for statement you are switching from one language to an other and that's not a good thing IMO.&lt;/p&gt;&#xA;" OwnerUserId="2892" LastEditorUserId="2892" LastEditorDisplayName="" LastEditDate="2010-09-20T08:11:48.783" LastActivityDate="2010-09-20T08:11:48.783" CommunityOwnedDate="2010-09-20T08:00:13.053" CommentCount="1" />
  <row Id="5480" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T08:03:02.003" Score="1" ViewCount="" Body="&lt;p&gt;I do know that (at least back in Excel 5.0) the entire object model of Excel is/was localised in VBA macros for languages such as Spanish. So you dealt with &lt;code&gt;CuadroTextos&lt;/code&gt; instead of &lt;code&gt;TextBoxes&lt;/code&gt; for example. Visual Basic is still English though, so VBA programming is done in a kind of &lt;a href=&quot;http://en.wikipedia.org/wiki/Pidgin&quot; rel=&quot;nofollow&quot;&gt;pidgin&lt;/a&gt; English.&lt;/p&gt;&#xA;" OwnerUserId="2893" LastActivityDate="2010-09-20T08:03:02.003" CommunityOwnedDate="2010-09-20T08:03:02.003" CommentCount="2" />
  <row Id="5481" PostTypeId="2" ParentId="2909" CreationDate="2010-09-20T08:05:20.827" Score="2" ViewCount="" Body="&lt;p&gt;If you use a mouse, avoid using a mousemat or anything that restricts the area you can move it in. This definitely strains my wrist less.&lt;/p&gt;&#xA;" OwnerUserId="2816" LastActivityDate="2010-09-20T08:05:20.827" />
  <row Id="5482" PostTypeId="2" ParentId="5466" CreationDate="2010-09-20T08:07:01.453" Score="3" ViewCount="" Body="&lt;p&gt;No. Two completely different skills.  A bad project manager is not necessarily someone who doesn't understand IT, and vice versa.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being reasonable, rational, organised, understanding the project goals and associated &lt;em&gt;business&lt;/em&gt;, and a good motivator are not at all dependent on being able to program.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-09-20T08:12:15.150" LastActivityDate="2010-09-20T08:12:15.150" />
  <row Id="5483" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T08:13:08.990" Score="2" ViewCount="" Body="&lt;p&gt;I am from Norway, we code in English. Meaning variable names, method names, comments etc are in English. There is some variation however. You might find comments in Norwegian and the code itself in English.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code developed by government institutions or very small companies might be in Norwegian. In general it is very impractical to use Norwegian because companies hire people who don't speak Norwegian or might want to do outsourcing. Using Norwegian code would then just complicate things. For most companies of a certain size that deal with customers abroad English is the company language. Meaning emails, announcements etc will be in English although employees obviously speak Norwegian to each other.&lt;/p&gt;&#xA;" OwnerUserId="2896" LastActivityDate="2010-09-20T08:13:08.990" CommunityOwnedDate="2010-09-20T08:13:08.990" />
  <row Id="5484" PostTypeId="2" ParentId="5436" CreationDate="2010-09-20T08:13:22.377" Score="3" ViewCount="" Body="&lt;p&gt;Use emacs as your IDE. Disable tool-bar, menu-bar and scrollbars. Make it take full screen. Eshell or ansi-term can be used as command-line if needed. Magit is integration with git. It also has integration with make and gdb.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I worked with this setup on 12&quot; notebook for a few years. And stiil use it even on 19&quot; display :)&lt;/p&gt;&#xA;" OwnerUserId="1027" LastActivityDate="2010-09-20T08:13:22.377" CommunityOwnedDate="2010-09-20T08:13:22.377" />
  <row Id="5485" PostTypeId="2" ParentId="5460" CreationDate="2010-09-20T08:14:06.450" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/3482510/new-technology-for-java-freelancer-to-learn-vaadin-gwt&quot;&gt;vaadin or google web toolkit&lt;/a&gt; , or yes android development; I'm from a java background if you hadn't guessed.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-20T08:14:06.450" CommentCount="1" />
  <row Id="5486" PostTypeId="2" ParentId="4693" CreationDate="2010-09-20T08:17:33.593" Score="0" ViewCount="" Body="&lt;p&gt;Programmers often just lack empathy skills. Not that other people don't, but programmers tend to hang out with less people, so fewer programmers might (statistically) learn to use empathy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They usually command other enities (computers) to do their bidding - if it works, the programmer is great, if it doesn't work, it's the computers' fault and the programmer has to fix it. After the fix it works and the programmer is great again.&lt;/p&gt;&#xA;" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2010-11-13T11:57:18.970" LastActivityDate="2010-11-13T11:57:18.970" CommunityOwnedDate="2010-09-20T08:17:33.593" />
  <row Id="5487" PostTypeId="2" ParentId="5466" CreationDate="2010-09-20T08:32:39.923" Score="1" ViewCount="" Body="&lt;p&gt;I dont think a project manager of an IT project &lt;em&gt;requires&lt;/em&gt; an IT background. But he/she has to definitely understand IT, and should know how IT projects work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Though IT background is an added advantage, lack of it does not make one a not-so-good IT project manager. Also having a IT background is not the deciding factor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have worked with both types, and each had their unique set of qualities and problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With IT backround:&lt;br&gt;&#xA; - Would understand when we say performance error because the code is not multi threaded&lt;br&gt;&#xA; - But, in some situations, would say &quot;hey come on, it is just adding 4 lines of code, you can do it in 10 days&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without IT background:&lt;br&gt;&#xA; - Would be very comfortable to negotiate for changing a deadline comfortable&lt;br&gt;&#xA; - For an project without any requirements (at all, yet), would sometimes say &quot;can we give a rough estimate of 100 days and mention a 30% buffer.&lt;/p&gt;&#xA;" OwnerUserId="2902" LastActivityDate="2010-09-20T08:32:39.923" />
  <row Id="5488" PostTypeId="2" ParentId="5466" CreationDate="2010-09-20T08:36:08.963" Score="0" ViewCount="" Body="&lt;p&gt;Definitely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have to be careful with this one cause it is based on true stories but I will try to explain my pain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm working as a software engineer and we have a project manager with whom I'm working a lot lately. He has no technical background and it seems that it doesn't interest him at all but that's not the problem (everyone has there own interests). &#xA;If you don't like to have technical know-how cause it's kinda &quot;freakish&quot; than it's yours BUT if it is your job to talk with the customer on a technical level it is essential to have technical know-have which he doesn't have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway there is this guy he doesn't understand anything about how a server works, how a web page works, how programming works and so on. Sometimes I feel like he doesn't know ANYTHING.&#xA;So Every time I'm trying to make him clear what we have to do now or what the problem is what we have at the moment he doesn't understand anything.&#xA;AND he is not that kind of a guy who would say &quot;Hang on a second. Can you repeat that I really don't quite understand it.&quot;.&#xA;No, he is that kind of guy who don't want to show that he didn't understand anything in the whole conversation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it doesn't ends here cause he then calls the customer and talks something that's basically not true.&#xA;And it's ends up that we have to call the customer together to make it clear again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's why I say it really is ESSENTIAL to have some basic technical background and technical know-how.&#xA;He shouldn't be able to write code but he should be able to understand what is going on and what processes have to be done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW since I'm working with him my job is no fun anymore.&lt;/p&gt;&#xA;" OwnerUserId="2892" LastActivityDate="2010-09-20T08:36:08.963" CommentCount="3" />
  <row Id="5489" PostTypeId="1" AcceptedAnswerId="5573" CreationDate="2010-09-20T08:42:57.697" Score="4" ViewCount="123" Body="&lt;p&gt;I have about 1 year to my university education. I am probably going for either taking the &lt;a href=&quot;http://www.comp.nus.edu.sg/undergraduates/is_is_prospective.html&quot; rel=&quot;nofollow&quot;&gt; information systems&lt;/a&gt; or the &lt;a href=&quot;http://www.comp.nus.edu.sg/undergraduates/cs_cm_prospective.html&quot; rel=&quot;nofollow&quot;&gt;communications and media&lt;/a&gt; specializations. Considering the subjects for those courses, which do u suggest I start learning? Are there any books I should read?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;also, what is your opinion on which specialization i should take? the information systems 1 is a &quot;safer&quot; route as i don't know about job prospects in game development &lt;/p&gt;&#xA;" OwnerUserId="526" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T04:00:31.323" LastActivityDate="2010-09-23T04:00:31.323" Title="What to expect from a university education and how to prepare for it?" Tags="&lt;jobs&gt;&lt;education&gt;&lt;courses&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="5490" PostTypeId="1" AcceptedAnswerId="5692" CreationDate="2010-09-20T08:50:42.930" Score="5" ViewCount="731" Body="&lt;p&gt;At my first workplace we were using Digital Standard MUMPS on a PDP 11-clone (TPA 440), then we've switched to Micronetics Standard MUMPS running on a Hewlett-Packard machine, HP-UX 9, around early 90's.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is still MUMPS alive? Are there anyone using it? If yes, please write some words about it: are you using it in character mode, does it acts as web server? etc. (I mean Caché, too.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've been used it, what was your feelings about it? D'ya liked it?&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2011-03-29T20:26:13.433" Title="Is MUMPS alive?" Tags="&lt;programming-languages&gt;&lt;history&gt;" AnswerCount="10" CommentCount="6" FavoriteCount="1" />
  <row Id="5491" PostTypeId="2" ParentId="5466" CreationDate="2010-09-20T08:52:19.100" Score="2" ViewCount="" Body="&lt;p&gt;Everything else being equal, i'd prefer a project manager with strong, &lt;em&gt;up-to-date&lt;/em&gt; technical experience. However in the real world, programmers who graduate into full-time project management are more likely to allow their skill-set to become stale and outdated, which isn't a lot better than them having no technical background.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've worked with good project managers and some terrible ones, and I can honestly say that i've seen little correlation between their management ability and their technical  background. The most important factor is not technical background, but how much experience they have managing &lt;em&gt;software&lt;/em&gt; projects. If you have two people managing their first project, the programmer graduating into project management is going to be just as bad as the project manager with no IT background. Both are going to go through a steep learning process. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The argument over the ability of project managers without a technical background reminds me a little of this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/O5j5U.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="562" LastActivityDate="2010-09-20T08:52:19.100" />
  <row Id="5492" PostTypeId="2" ParentId="5394" CreationDate="2010-09-20T08:55:13.693" Score="2" ViewCount="" Body="&lt;p&gt;Projects where individual goals are too distant from the team or company goal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually happens in large enterprise software development projects.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-20T08:55:13.693" CommunityOwnedDate="2010-09-20T08:55:13.693" />
  <row Id="5493" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T08:56:44.910" Score="9" ViewCount="" Body="&lt;p&gt;I just try and fix it for them.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-20T08:56:44.910" CommunityOwnedDate="2010-09-20T14:25:59.460" />
  <row Id="5494" PostTypeId="1" CreationDate="2010-09-20T09:08:41.207" Score="8" ViewCount="241" Body="&lt;p&gt;We're developing a new project that is to be deployed on a large number of client sites.&#xA;The project contains a web-based GUI as one of it's &quot;access points&quot;.&#xA;Speed of the web interface is a priority for this project, second only to security.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the past, we've always created &quot;web sites&quot; in Visual Studio, which, when published, results in one dll and one aspx file for each page within the system.&#xA;However, I am aware that you can actually create a &quot;web application&quot; and have it compile everything down to a single dll.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me (based on no real data, just gut feeling), compiling the site as a single dll sounds like it would be better for both security and speed (if only marginally).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the considerations we should look at, and are there any obvious pitfalls we should be aware of when choosing the method that's right for us?&lt;/p&gt;&#xA;" OwnerUserId="1025" LastActivityDate="2010-09-20T18:18:24.817" Title="Should we compile our website to a single dll, or a dll per page?" Tags="&lt;web-development&gt;&lt;best-practices&gt;&lt;websites&gt;&lt;c#&gt;&lt;web-applications&gt;" AnswerCount="2" CommentCount="6" FavoriteCount="3" />
  <row Id="5495" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T09:16:24.067" Score="1" ViewCount="" Body="&lt;p&gt;I'm doing software development for more than 20 years now and with many different languages. But all those languages have one thing in common: the keywords, function names, etc. are in English. So I choose English as my language for all my identifiers etc. too. So it's simply more fluently to read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the beginning I commented in my native language, German. But one the net and OSS became more and more interesting I even switched commenting to English. So a larger community has the chance to read, understand, use, and improve my code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;mue&lt;/p&gt;&#xA;" OwnerUserId="2917" LastActivityDate="2010-09-20T09:16:24.067" CommunityOwnedDate="2010-09-20T09:16:24.067" />
  <row Id="5496" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T09:19:39.310" Score="1" ViewCount="" Body="&lt;p&gt;I am from Israel.&#xA;I work as a consultant for companies so it's fair to say I have seen hundreds of coding methods, coding systems with different technologies and languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;every single one of them, even if it was a hebrew client side, the back-end was written in english, the variable names were english the method names were english like&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;checkIfCustomFieldsHaveAttachments(customField:CustomField):void&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and so on and so forth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;personally, I am using english to code all of the time, I never use anything else.&lt;/p&gt;&#xA;" OwnerUserId="2918" LastActivityDate="2010-09-20T09:19:39.310" CommunityOwnedDate="2010-09-20T09:19:39.310" />
  <row Id="5497" PostTypeId="2" ParentId="5452" CreationDate="2010-09-20T09:23:23.490" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.gutenberg.org/etext/101&quot; rel=&quot;nofollow&quot;&gt;The Hacker Crackdown: Law and Disorder on the Electronic Frontier&lt;/a&gt; by Bruce Sterling tells the story of the 'meeting' of law enforcement and the cracker/phreaker subculture of the 1990s. Also, it describes in detail the Secret Service &lt;a href=&quot;http://en.wikipedia.org/wiki/Steve_Jackson_Games,_Inc._v._United_States_Secret_Service&quot; rel=&quot;nofollow&quot;&gt;raid&lt;/a&gt; on Steve Jackson Games. That little incident almost put SJG out of business, all for a &lt;em&gt;role-playing supplement&lt;/em&gt; (not, as the Secret Service described it, a &quot;hacker's manual&quot;). (Edit: Turns out that the Secret Service were actually after copies of a leaked Bell South E911 document.)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-09-20T12:39:03.883" LastActivityDate="2010-09-20T12:39:03.883" />
  <row Id="5498" PostTypeId="2" ParentId="5473" CreationDate="2010-09-20T09:28:47.570" Score="2" ViewCount="" Body="&lt;p&gt;Smalltalk environments like Pharo use proportional fonts and due to the language style it looks very good there. But in C-style languages like Go or others like Erlang or Python I prefer monospaced fonts.&lt;/p&gt;&#xA;" OwnerUserId="2917" LastActivityDate="2010-09-20T09:28:47.570" />
  <row Id="5499" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T09:31:05.010" Score="25" ViewCount="" Body="&lt;p&gt;Tell them, it is like asking a psychiatrist to do a brain surgery.&lt;/p&gt;&#xA;" OwnerUserId="2922" LastActivityDate="2010-09-20T09:31:05.010" CommunityOwnedDate="2010-09-20T14:25:59.460" CommentCount="5" />
  <row Id="5500" PostTypeId="2" ParentId="501" CreationDate="2010-09-20T09:31:37.733" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Javascript/Java etc, equals comparison, eg if(a==1)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How many times do I write if(a=1) ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a human I read that perfectly. But the darn interpreter/compiler says, &quot;hey I'll assign 1 to a, then check if a is equal to 1, and would you believe it yes it is!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Drives me up the wall.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if(a==1) is far less readable, and the interpreter/compiler should know what I mean anyway; many other lesser languages (VB) have been working it out successfully for hundreds of years.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T09:31:37.733" CommunityOwnedDate="2010-09-20T09:31:37.733" CommentCount="5" />
  <row Id="5501" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T09:33:23.717" Score="0" ViewCount="" Body="&lt;p&gt;hell yeah from Morocco!&lt;br/&gt;&#xA;well i'm talking about my case, some people mix between english french and arabic.&lt;/p&gt;&#xA;" OwnerUserId="2380" LastActivityDate="2010-09-20T09:33:23.717" CommunityOwnedDate="2010-09-20T09:33:23.717" />
  <row Id="5502" PostTypeId="2" ParentId="5473" CreationDate="2010-09-20T09:36:07.707" Score="8" ViewCount="" Body="&lt;p&gt;I used to use a proportional font, mostly because I find punctuation is actually easier to differentiate, but over time I've given up because nobody else does it and everybody unconsciously assumes mono spaced fonts (as the wikipedia article mentions, trying to do tabular formatting, ascii art in comments and so on).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus, &lt;a href=&quot;http://connect.microsoft.com/VisualStudio/feedback/details/179193/visual-studio-editor-considers-ligatures-to-be-a-single-character&quot; rel=&quot;nofollow&quot;&gt;issues in Visual Studio&lt;/a&gt;, that Microsoft don't want to fix, basically make it impossible to use well-designed proportional fonts anyway.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-09-20T09:36:07.707" CommentCount="4" />
  <row Id="5503" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T09:39:37.800" Score="0" ViewCount="" Body="&lt;p&gt;I write my code in spanish :P&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T09:39:37.800" CommunityOwnedDate="2010-09-20T09:39:37.800" />
  <row Id="5504" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T09:44:04.643" Score="2" ViewCount="" Body="&lt;p&gt;I'm Italian.  I usually use English for everything(*), but when I was writing web stuff I couldn't manage to use English for database objects. Having to translate concepts between a &quot;program language&quot; and a &quot;documentation/URL/UI/customer language&quot; adds too much burden. Besides, sometimes your database objects take their names from bureaucratic terms that are hard or impossible to translate. So I used Italian for database objects and anything related to that.  Comments were also in Italian, since they refer to those same objects and it would sound awkward (many English technical words do not exist in Italian, but DB is a field where the lexicon is pretty complete).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, when I wrote class libraries meant to be reused, I strictly used English, for all of classes, variables, and comments (except maybe the toplevel comment, which had code samples and was bilingual).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(*) one exception: I consistently name my dummy variables pippo and pluto (&quot;Goofy&quot; and &quot;Pluto&quot;) rather than foo and bar. :)&lt;/p&gt;&#xA;" OwnerUserId="2927" LastActivityDate="2010-09-20T09:44:04.643" CommunityOwnedDate="2010-09-20T09:44:04.643" />
  <row Id="5505" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T09:45:52.573" Score="14" ViewCount="" Body="&lt;p&gt;Say you'll fix their computer. Then open their temporary internet files folder and then look totally &lt;em&gt;shocked&lt;/em&gt; when you discover the obligatory hardcore porn images that are bound to be there. They probably will be too ashamed to ever ask again... :) &lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-20T09:45:52.573" CommunityOwnedDate="2010-09-20T14:25:59.460" />
  <row Id="5506" PostTypeId="2" ParentId="5435" CreationDate="2010-09-20T09:49:25.843" Score="15" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Make sure there are all possible means of comunication  (phone, instant messengers, remote connectivity tools) available.&lt;br&gt;&#xA;A direct phone line to communicate, well, directly to someone, but also to make sure that the recipient does exist and did get the message. (An email with a return receipt is not an alternative)&lt;br&gt;&#xA;An instant messaging tool to communicate exactly what you are trying to communicate.&lt;br&gt;&#xA;Desktop sharing tool to make sure what you are seeing is what you are intended to see.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Both the onshore and the offshore team should work on a common code base. Daily/Weekly &lt;em&gt;code drop&lt;/em&gt; are a thing of the past.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Be aware of the differences and prorities, cultural, and others.&lt;br&gt;&#xA;Here in India, many use 'Ok' to mean a state &lt;em&gt;between yes and no&lt;/em&gt;. I have seen western clients taking this &lt;em&gt;Ok&lt;/em&gt; as a &lt;em&gt;Yes&lt;/em&gt; and this causing major issues in projects. Both the sides should understand the differences, especially the issues that would affect day to day activities.&lt;br&gt;&#xA;I have seen clients and the outsourcing companies conduct day long sessions to explain differences like &lt;em&gt;many Indians eat using their hand (without fork/knife)&lt;/em&gt;, &lt;em&gt;red is considered lucky in China&lt;/em&gt;, and ignoring those differences that are important in daily work.&lt;br&gt;&#xA;Another example: For many in India, the work city is not their hometown. This means many would want to leave early on Friday so that they can stay with their family for the weekend.&lt;br&gt;&#xA;In the workcity the company provides transport to where they stay (during the week, in the work city) and this means of transport is generally a office bus. So you stay for 2 minutes more, you miss the bus. Plan for meetings during this period in advance. The person may be willing to stay for 2 more hours (and plan for an alternate means of transport,  the 'next bus', a cab etc) but would not be willing to stay for 5 more mins. (You miss the bus by 5 mins, wait for the bus for next 1 hour is not very pleasant). If you dont get solid answers during this (generally 15 min) period, the person may be in a hurry to catch the bus.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Many outsourcing employees are called &lt;em&gt;consultants&lt;/em&gt; or &lt;em&gt;specialists&lt;/em&gt;. But that does not mean they are from the sky. They are also normal human beings, and do the same miskates as other programmers (sometimes even more, due to a variety of reasons)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The (technical) work environment in the oursourcing service company need not be the same as the clients. This can be as trivial as a minor version mismatch (tomcat 10.5.1 instead of tomcat 10.5.2), and as serious as different application servers altogether (weblogic vs websphere. why? probably because weblogic for development is free). This &lt;em&gt;can&lt;/em&gt; be solved by having both the teams to connect to a common set of servers using remote tools.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The (non-technical) work environment can be different between the onshore and offshore locations. The work environment can be noisy, insanely hot, furniture uncomfortable (or even broken). These impact productivity directly and more often than not you &lt;em&gt;cannot&lt;/em&gt; do much about these. These should be taken into account while estimating and measuring productivity  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A thin onshore team from the outsourcing provider is essential. No matter how many remote tools you introduce, you cannot emulate the client company offshore. The reason is not just communication. If you work for a company, you cannot do much justice if you don't understand the DNA of the company. You understand the DNA only being part of the crowd, not via powerpoint presentations.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2902" LastActivityDate="2010-09-20T09:49:25.843" CommentCount="3" />
  <row Id="5507" PostTypeId="1" CreationDate="2010-09-20T09:50:43.617" Score="6" ViewCount="292" Body="&lt;p&gt;I've been a software engineer now for just over a decade. In that time I've had several jobs, each covering a different application domain and in a different industry (electronic design automation, ecological simulation, finance and now energy). At the heart of each of these jobs has been algorithmic software development relying on a decent understanding of maths (I did a Physics degree before becoming a software engineer) but apart from that they've not had a huge amount in common.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I've learnt from my career so far is that if you play your cards right, being a software engineer can put you in a very privileged position: you bring useful and scarce skills into the institution you are working for, but to be useful for them they need to teach you, to a high degree, the in-depth workings of their application domain. As a result I have spent ten years in continuous learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Despite really enjoying everything I've done so far,  the roles have all seemed fairly conventional. But it's got me to wondering: what is the real range of applications for software developers? What are the outlier jobs that are few and far between but really interesting and unusual? Who out there writes the code for deep water submersibles, or for radio telescope arrays, or for quantum cryptography? Or for all the other, more unusual jobs that my limited imagination is failing to conjure?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone care to share?&lt;/p&gt;&#xA;" OwnerUserId="2895" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T16:50:24.160" LastActivityDate="2010-09-30T16:50:24.160" Title="What was/is your most unusual/interesting programming job?" Tags="&lt;career&gt;&lt;experience&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="5508" PostTypeId="2" ParentId="5460" CreationDate="2010-09-20T09:53:44.343" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.scala-lang.org/&quot; rel=&quot;nofollow&quot;&gt;Scala&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1402" LastActivityDate="2010-09-20T09:53:44.343" CommentCount="1" />
  <row Id="5509" PostTypeId="2" ParentId="4693" CreationDate="2010-09-20T09:56:04.123" Score="2" ViewCount="" Body="&lt;p&gt;There is a premise in your question that may or may not be true. This invalidates the question because I have to agree with you before I can answer.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T09:56:04.123" CommunityOwnedDate="2010-09-20T09:56:04.123" />
  <row Id="5510" PostTypeId="2" ParentId="5473" CreationDate="2010-09-20T09:57:13.733" Score="2" ViewCount="" Body="&lt;p&gt;I remember in Bjarne Stroustrup's book &lt;strong&gt;&lt;em&gt;The C++ Programming Language&lt;/em&gt;&lt;/strong&gt;, propotianitely spaced fonts was used for code. (I am unable to find any sample pages on the web)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't remember the exact reasons, but think he mentioned this and one another change (I think the C++ language itself) as a &lt;em&gt;new introductions&lt;/em&gt; in that book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I prefer fixed space ones. Consolas is my favorite.&lt;/p&gt;&#xA;" OwnerUserId="2902" LastActivityDate="2010-09-20T09:57:13.733" CommentCount="3" />
  <row Id="5511" PostTypeId="2" ParentId="5427" CreationDate="2010-09-20T09:59:50.253" Score="6" ViewCount="" Body="&lt;p&gt;Firstly, trifling language quirks like forced indentation in Python matters little if the language itself is powerfully expressive and useful. I was also turned away at first due to it, but soon learnt to look past it and now don't even feel it as a hindrance, because the language is so much easier for me to work in. Its like sigils in variables in Perl, its a harmless language quirk and anyone comfortable in the language don't feel bothered by it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To understand the reasons why so many people think Python is great, just try and learn the language. The reasons are mostly the same as Perl. I find I like the syntax in Python (e.g. list comprehensions, OOP syntax, etc.), but that is really subjective and your opinion might differ. I prefer Python for larger projects, while I still use Perl for smaller scripts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And &lt;em&gt;that&lt;/em&gt; is the answer to your question. You compare Python to Perl, bash and tcl. The thing is that is that is not a fair comparison. Languages like bash was designed for writing small scripts to automate common tasks. Some people think Perl also gets unwieldy if the code gets sufficiently large (well written Perl does not, but well written code is hard to come by in a large project). IMHO Python differs from other 'scripting' languages in that it scales very well to large projects as well as small one-off scripts. I think Ruby also has that same quality.&lt;/p&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-09-20T09:59:50.253" />
  <row Id="5512" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T10:25:05.420" Score="0" ViewCount="" Body="&lt;p&gt;I'm from Holland. Here, because very few dutch programmer resources exist, most people think and code in English. There are things in my personal life I couldn't explain in English, there are algorithms and patterns I couldn't possibly explain Dutch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my native language is dutch, except when it comes to IT related stuff.&lt;/p&gt;&#xA;" OwnerUserId="2937" LastActivityDate="2010-09-20T10:25:05.420" CommunityOwnedDate="2010-09-20T10:25:05.420" />
  <row Id="5513" PostTypeId="1" AcceptedAnswerId="5521" CreationDate="2010-09-20T10:28:41.837" Score="11" ViewCount="540" Body="&lt;p&gt;In the past I have worked with designers, BAs and project managers, all who regularly produce project artifacts, yet very really do they understand the concept of versioning.  When I try to explain it to them (even in its most simple form of mulitple differently named files) they seem to have some kind of mental block.  Why do you think this is?&lt;/p&gt;&#xA;" OwnerUserId="2926" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-20T11:18:54.660" LastActivityDate="2010-12-02T11:53:01.520" Title="Why does it seem so hard for non programmers to understand versioning?" Tags="&lt;development-process&gt;&lt;non-programmers&gt;&lt;versioning&gt;" AnswerCount="9" CommentCount="4" FavoriteCount="1" />
  <row Id="5515" PostTypeId="2" ParentId="5466" CreationDate="2010-09-20T10:29:30.870" Score="1" ViewCount="" Body="&lt;p&gt;@NimChimpsky I agree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a matter of &lt;em&gt;what&lt;/em&gt;, not how (Active Listening is a nice tool).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Estimation works for small technical tasks, but for planning you need to work together to see the whole complexity. And you are no rivals.&lt;/p&gt;&#xA;" OwnerUserId="2928" LastActivityDate="2010-09-20T10:29:30.870" />
  <row Id="5516" PostTypeId="2" ParentId="485" CreationDate="2010-09-20T10:40:18.810" Score="5" ViewCount="" Body="&lt;p&gt;Having a boss who is highly competent both at programming and management. Having a boss that cares about you as a person, as well as what you bring to the company. One that's prepared to go the extra mile to allow you to do your job, keep the paperwork out of your hair and keep upper management off your back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Why, yes, I do have someone particular in mind!)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-20T10:40:18.810" CommentCount="0" />
  <row Id="5517" PostTypeId="2" ParentId="1785" CreationDate="2010-09-20T10:43:04.163" Score="0" ViewCount="" Body="&lt;p&gt;If something can go wrong , then it will .&#xA;Assume the worst case&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T10:43:04.163" CommunityOwnedDate="2010-09-20T10:43:04.163" />
  <row Id="5518" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T10:54:04.853" Score="0" ViewCount="" Body="&lt;p&gt;I'm programming in germany. Most usually I see code written in english (as all the books we learn from and all the design patterns are english, and of course all official APIs are in english), but comments are frequently in german.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I try to write comments in english too, but I know thats not very common.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T10:54:04.853" CommunityOwnedDate="2010-09-20T10:54:04.853" />
  <row Id="5519" PostTypeId="2" ParentId="5466" CreationDate="2010-09-20T10:58:47.200" Score="1" ViewCount="" Body="&lt;p&gt;It would definitely help especially if their not a good project manager. For a good  project manager it does really matter.&lt;/p&gt;&#xA;" OwnerUserId="2940" LastActivityDate="2010-09-20T10:58:47.200" />
  <row Id="5520" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T10:59:17.263" Score="0" ViewCount="" Body="&lt;p&gt;I think there is a lot of cognitive overhead when your code is part english, part some other language, especially if you're using some large API where you end up with english method calls on types declared in antoher tongue etc. So I'll use english unless I have a good reason not to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of these reasons, which I haven't seen mentioned, is &lt;code&gt;ubiquitous language&lt;/code&gt; (as per the Domain Driven Design principles). If doing contracted work for which I rely on the knowledge of business experts, with whom I call one thing one way, and then in the code define the type in english, things get confusing, especially if that's and odd/unusual vocabulary which I'm not accustomed to...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hence I've often been using a mix of the two, where business-critical objects and methods are named in the language AND tongue of the domain, and the rest of the code which is more of an infrastructure/technical concern is in english, to match the apis more smoothly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But from a craftsman's point of view, I must say I have mixed feelings about this, and don't find this a very satisfying solution.&lt;/p&gt;&#xA;" OwnerUserId="2115" LastEditorUserId="2115" LastEditorDisplayName="" LastEditDate="2010-09-20T11:24:37.240" LastActivityDate="2010-09-20T11:24:37.240" CommunityOwnedDate="2010-09-20T10:59:17.263" />
  <row Id="5521" PostTypeId="2" ParentId="5513" CreationDate="2010-09-20T11:00:58.900" Score="10" ViewCount="" Body="&lt;p&gt;This is because the human has difficulties projecting himself in time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use the time machine analogy. Your life is versionned. Every day you have a new version of your life: new things and lost things. Hopefully more assets, less debts,... but more fat, less hairs, ... hopefully more knowledge, less doubts, ....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you will have to explain branching ;) And there you hope they are fans of Fringe ;)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-20T11:00:58.900" CommentCount="6" />
  <row Id="5522" PostTypeId="2" ParentId="5513" CreationDate="2010-09-20T11:01:12.207" Score="6" ViewCount="" Body="&lt;p&gt;Because, in the non-programming world, to change a competed product is very hard.  Intentional changes, which are thought through, are not easy—take buildings, for example.  And once the changes are made, it's hard to &quot;revert&quot; to previous version.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Contrary to that, changing software is very easy (easier than even other media products; say, a movie) , and &quot;checkout an older version&quot; is a common task in the software world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thus, the notion of versioning contradicts out everyday experience, which usually confirms that &lt;strong&gt;only one, current version of a thing exists&lt;/strong&gt; (for software it's not true).   That's why it's hard.&lt;/p&gt;&#xA;" OwnerUserId="34" LastEditorUserId="34" LastEditorDisplayName="" LastEditDate="2010-09-20T15:03:59.220" LastActivityDate="2010-09-20T15:03:59.220" />
  <row Id="5523" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T11:11:03.093" Score="0" ViewCount="" Body="&lt;p&gt;I'm from Romania, and where I am working there is a strict policy of adhering to standard notations and English. Even documents and how-to guides and wiki's are written in english. &#xA;There is even no thought that you might write in the native tongue. English is by-default, and the company invests in compulsory English courses.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T11:11:03.093" CommunityOwnedDate="2010-09-20T11:11:03.093" />
  <row Id="5524" PostTypeId="2" ParentId="5436" CreationDate="2010-09-20T11:11:55.187" Score="3" ViewCount="" Body="&lt;p&gt;On linux, use a tiling window manager with no windows decorations and a togglable status bar, so that you don't waste an inch of screen real-estate. I recommend &lt;a href=&quot;http://www.nongnu.org/stumpwm/&quot; rel=&quot;nofollow&quot;&gt;StumpWM&lt;/a&gt; but there are less radical alternatives out there.&lt;/p&gt;&#xA;" OwnerUserId="2115" LastActivityDate="2010-09-20T11:11:55.187" CommunityOwnedDate="2010-09-20T11:11:55.187" CommentCount="1" />
  <row Id="5525" PostTypeId="2" ParentId="5507" CreationDate="2010-09-20T11:14:00.240" Score="9" ViewCount="" Body="&lt;p&gt;I used to be a web developer in the porn industry a long long time ago. One of my very first job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That was both unusual and really interesting.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-20T11:14:00.240" CommentCount="3" />
  <row Id="5526" PostTypeId="2" ParentId="5513" CreationDate="2010-09-20T11:17:42.763" Score="5" ViewCount="" Body="&lt;p&gt;You can use the book analogy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you write a book, you first write a draft version. Then you read it, make some changes and reread it. Until you give it to somebody else to read. And of course they have remarks too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each change makes a new version. And although you normally use the latest version, sometimes, you regret a change and want to rollback. Possibly the whole book, possibly a single chapter. Versioning gives you this opportunity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then the subject of branching.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The book is almost finished, and it needs to be translated into French. So you make a copy of the book and send it to the translator. In the meantime, you make some changes to the original book. Some of them are added to the French translation and others never make it there.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-20T11:17:42.763" CommentCount="2" />
  <row Id="5527" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T11:21:18.340" Score="0" ViewCount="" Body="&lt;p&gt;All identifiers are English. They look silly with the English keywords.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Comments are either in English or Dutch, not certain if that good, but the codebase is too big to adapt.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-20T11:21:18.340" CommunityOwnedDate="2010-09-20T11:21:18.340" />
  <row Id="5528" PostTypeId="2" ParentId="5394" CreationDate="2010-09-20T11:21:20.400" Score="7" ViewCount="" Body="&lt;p&gt;Many years ago I worked on a project to rewrite and modernize a first generation Windows application.  The project was cancelled part way through the rewrite.  Then several years later a new business owner wanted to update the same application.  Three quarters of the way through a $500k project it was again cancelled.  Then several years later another new business owner wanted a new version of the same application.  This time the app was fully coded, completed and QA tested and THEN cancelled.  The last cancellation was devistating.  We were just a week away from deploying it and finally being rid of an old app that requires tons of support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To this day, the same first generation Windows app is still in production and can only be run in Windows 7 in a Virtual PC running XP.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-09-21T18:40:18.490" LastActivityDate="2010-09-21T18:40:18.490" CommunityOwnedDate="2010-09-20T11:21:20.400" CommentCount="6" />
  <row Id="5529" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T11:24:33.013" Score="22" ViewCount="" Body="&lt;p&gt;I just ask them to clean my shower in exchange:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://dilbert.com/strips/comic/2006-02-01/&quot; rel=&quot;nofollow&quot;&gt;http://dilbert.com/strips/comic/2006-02-01/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2952" LastActivityDate="2010-09-20T11:24:33.013" CommunityOwnedDate="2010-09-20T14:25:59.460" />
  <row Id="5530" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T11:25:19.820" Score="0" ViewCount="" Body="&lt;p&gt;Most programmers are knowledgeable in computer Hardware and anyway most problems often involve solving operating system failures in Windows, Linux or Mac OS X etc...&#xA;People from the &quot;outside&quot; view computer science as a whole that incorporates programming as well as electronics and embedded systems. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personnally I help family most of the time but since I've graduated I find it harder and harder to find the time to help friends, and even family about their daily software problems which to windows users are legion... &#xA;Sometimes there will be hours of troubleshooting included to solve a problem of compatibility between two products that have been bought by the person initially with no knowledge of whether or not they are actually compatible... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So it depends on the selfishness of it, if I'm asked whether or not I can help build a machine and install the stuff on it and the other person actually sticks through the whole process then I don't feel like I'm being used. It's all about giving and receiving. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you feel you're being used then something's wrong.&#xA;If I were you I'd just advise buying thrice the price outdated hardware from Apple to those who are really helpless so you won't ever be bothered again :D.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T11:25:19.820" CommunityOwnedDate="2010-09-20T14:25:59.460" />
  <row Id="5531" PostTypeId="1" CreationDate="2010-09-20T11:25:24.653" Score="13" ViewCount="385" Body="&lt;p&gt;I define &lt;strong&gt;defect&lt;/strong&gt; as :&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;something within the application design or code which prevents it functioning as per requirements.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'm looking for ideas about the causes of defects, eg the human factor, lack of testing, lack of prototyping, and possible ideas to mitigate these.&lt;/p&gt;&#xA;" OwnerUserId="2397" LastActivityDate="2010-10-28T19:19:54.713" Title="What do you consider to be the prime cause of software defects (and how to minimize them)" Tags="&lt;experience&gt;&lt;programming-practices&gt;&lt;bugs&gt;" AnswerCount="17" CommentCount="2" FavoriteCount="1" />
  <row Id="5532" PostTypeId="2" ParentId="5507" CreationDate="2010-09-20T11:26:16.743" Score="4" ViewCount="" Body="&lt;p&gt;I once wrote web software (PHP) for company based elections. There was a lot to do about security and my code was completely scanned and checked by a coworker. During the elections, there were several people trying to hack the system, but none of them succeeded. Which was fun because it was my first serious web application. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which proves again that good design is vital for any non trivial piece of code.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-20T11:26:16.743" CommentCount="1" />
  <row Id="5533" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T11:32:26.870" Score="0" ViewCount="" Body="&lt;p&gt;I'm from Israel, and professional programmers almost always use strictly English. However, sometimes, Hebrew seeps through, for example see &lt;a href=&quot;http://www.php.net/manual/en/language.oop5.paamayim-nekudotayim.php&quot; rel=&quot;nofollow&quot;&gt;PHP's scope operator&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2954" LastActivityDate="2010-09-20T11:32:26.870" CommunityOwnedDate="2010-09-20T11:32:26.870" />
  <row Id="5534" PostTypeId="2" ParentId="5531" CreationDate="2010-09-20T11:33:22.477" Score="13" ViewCount="" Body="&lt;p&gt;The prime cause of software defects is interpretation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The customer interpretation of a feature differs from the designer interpretation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The designer interpretation differs from the programmer interpretation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most methodologies have invented ways to counter this effect. But in the end, we are only humans and we are not flawless. Besides, often there is a time pressure and most methodology magic is often skipped while under pressure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Testing can only detect the problems early. But even testers are human, and it is imposible to test 100%. If you want to release before the universe ends.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-20T11:33:22.477" CommentCount="6" />
  <row Id="5535" PostTypeId="2" ParentId="5531" CreationDate="2010-09-20T11:34:12.717" Score="8" ViewCount="" Body="&lt;p&gt;I consider the prime cause of software defects to be programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not saying that &lt;em&gt;just&lt;/em&gt; to be funny, but because one of the big problems I've observed at my job is poor requirements gathering, coupled with poor understanding of the problem domain, causing major defects and usability issues in the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Part of that comes from not being willing to learn/understand the terminology of the end user, causing misunderstandings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Part of that comes from talking tech too early in the process to people who don't have a clue what you are talking about or why it matters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best example of that was when I overheard one of the programmers trying to figure out how long the questions/answers were going to be in characters... I knew he was trying to figure out what size field to use in the database, but the department requesting this hadn't the foggiest why that mattered - or that spaces counted. To us that seems obvious, but to them it was a real revelation.&lt;/p&gt;&#xA;" OwnerUserId="1043" LastActivityDate="2010-09-20T11:34:12.717" />
  <row Id="5536" PostTypeId="2" ParentId="5531" CreationDate="2010-09-20T11:42:09.630" Score="7" ViewCount="" Body="&lt;p&gt;The primary cause of defects is &lt;strong&gt;bad management&lt;/strong&gt; ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, a developer that works in good condition, that is not asked to overwork, to cut on quality, have proper tools, quiet working conditions and so on will produce less bugs than someone working under hard pressure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also management hiring bad developers also helps increasing the number of bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Bad management&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(disclaimer: I'm supposed to hire &amp;amp; manage developers)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-20T11:42:09.630" CommentCount="4" />
  <row Id="5537" PostTypeId="2" ParentId="5460" CreationDate="2010-09-20T11:50:17.183" Score="5" ViewCount="" Body="&lt;p&gt;I know I am in the minority here, but I am really interested in &lt;a href=&quot;http://silverlight.net/&quot; rel=&quot;nofollow&quot;&gt;Silverlight&lt;/a&gt;.  Seems like the platform has finally matured and the development process much better that now is the time to jump in.&lt;/p&gt;&#xA;" OwnerUserId="93" LastActivityDate="2010-09-20T11:50:17.183" CommentCount="2" />
  <row Id="5538" PostTypeId="2" ParentId="5489" CreationDate="2010-09-20T11:53:07.460" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;which do u suggest i start learning?&lt;br&gt;&#xA;  ...&lt;br&gt;&#xA;  what is your opinion on which specialization i should take?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The course that interests you most, we can't choose for you.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;maybe advice/tips or books to read will be great&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Books that you need (or additional material) for the courses could be nice to look in to have a head start.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The infomation systems 1 is like a &quot;safer&quot; route as i dunno about job prospects in game development&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;For Game Development, the Communications and Media seem to allow you to specialize in it.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-20T11:53:07.460" />
  <row Id="5539" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T12:08:03.317" Score="0" ViewCount="" Body="&lt;p&gt;We use English in most projects just to follow the APIs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you shouldn't be dogmatic about it because there are always exceptions. For instance if you work for a German insurance company you will face so many domain specific concepts and terms which are not translatable at all you should consider using the native language. This is a team decision.&lt;/p&gt;&#xA;" OwnerUserId="2928" LastActivityDate="2010-09-20T12:08:03.317" CommunityOwnedDate="2010-09-20T12:08:03.317" />
  <row Id="5540" PostTypeId="1" AcceptedAnswerId="5546" CreationDate="2010-09-20T12:11:14.203" Score="10" ViewCount="421" Body="&lt;p&gt;How should code in version control be stored? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Developer friendly&lt;/strong&gt;? so that programmer can quickly take the latest and able to run from his editor without doing many changes? (like config files pointing to dev DB..etc)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should it be &lt;strong&gt;production friendly&lt;/strong&gt;? source should be in a manner which is easy to deploy on production environment and when developer takes the latest, he should perform changes as per his development needs.&lt;/p&gt;&#xA;" OwnerUserId="1564" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-16T12:40:47.907" LastActivityDate="2010-11-16T12:40:47.907" Title="How should code in version control be stored?" Tags="&lt;version-control&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="5541" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T12:13:19.160" Score="1" ViewCount="" Body="&lt;p&gt;Bolivian coder here - 100% of our code is in English, comments and variables. Why decided upon this because &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A)&lt;/strong&gt; By not using English you are essentially cutting off help from a very large pool of professionals &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;B)&lt;/strong&gt; The vast majority of programmers know English to some extent.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T12:13:19.160" CommunityOwnedDate="2010-09-20T12:13:19.160" />
  <row Id="5542" PostTypeId="2" ParentId="959" CreationDate="2010-09-20T12:14:47.827" Score="6" ViewCount="" Body="&lt;p&gt;No. Why? Because each time we crack a difficult problem (vision, playing chess, ...) we stop calling it &quot;Artificial intelligence&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;AI's the name we give to &quot;stuff we don't yet know how to do&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-20T12:14:47.827" CommunityOwnedDate="2011-04-19T01:26:27.260" CommentCount="2" />
  <row Id="5543" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T12:16:31.863" Score="1" ViewCount="" Body="&lt;p&gt;I'm Norwegian, and while I've met many people coding in (and seen lots of code in) Norwegian, I only code in English. This question was brought up on StackOverflow once, and the reason I gave for only using English es consistency (getAlder() seems weird) and the question of what to do with our three special characters æ, ø and å (getKjøretøy() might not work in all languages). According to friends of mine, at least one large public project is coded in a combination where the technical terms are in Norwegian.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't speak a word of French, but when I was learning PHP and Mysql I read a tutorial (in English) which was obviously written by a French programmer, because all the variable names were in French. When I copied the example into my project, I couldn't be bothered to change the variable names, and I stuck to those names for a very long time, so most of my Php code was littered with French variable names.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T12:16:31.863" CommunityOwnedDate="2010-09-20T12:16:31.863" />
  <row Id="5544" PostTypeId="2" ParentId="5540" CreationDate="2010-09-20T12:18:01.877" Score="2" ViewCount="" Body="&lt;p&gt;It should be production-friendly, otherwise it is problematic to maintain automated builds.&lt;/p&gt;&#xA;" OwnerUserId="587" LastActivityDate="2010-09-20T12:18:01.877" CommentCount="1" />
  <row Id="5545" PostTypeId="2" ParentId="733" CreationDate="2010-09-20T12:23:03.093" Score="0" ViewCount="" Body="&lt;p&gt;Companies that write modeling software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We use math a lot for our modeling software. Almost anything on environmental effects on the quality of living. (noise, air quality, light polution, fire hazards).&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-20T12:23:03.093" />
  <row Id="5546" PostTypeId="2" ParentId="5540" CreationDate="2010-09-20T12:24:58.157" Score="36" ViewCount="" Body="&lt;p&gt;Why choose ? It should be both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your development environment should be configured so it's as easy as doing a checkout, open, build, run, debug (eg: no absolute path!). You can do that easily with compilation directives, configuration class + dependancy injection, or even tricks like the perso.config in ASP.NET&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your automated build script should be customized enought to take care of specific production configuration, clean up, packaging etc.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-09-20T12:44:35.993" LastActivityDate="2010-09-20T12:44:35.993" CommentCount="2" />
  <row Id="5547" PostTypeId="2" ParentId="5466" CreationDate="2010-09-20T12:27:51.923" Score="1" ViewCount="" Body="&lt;p&gt;No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good project manager is someone who can empathize and understand what his team's needs, preferences, and capabilities are, whether it be at the construction site, the manufacturing floor, or the software development house.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good or bad project manager can have any sort of background: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad managers with technical backgrounds could've been ace programmers who do not appreciate the difficulty novices face when dealing with mundane, &quot;easy&quot; concepts like pointers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good manager could be that average programmer who wasn't as brilliant or as clever as his colleagues but had a deep understanding of project structure, requirements, and understood the lessons of The Mythical Man Month by heart because he &lt;em&gt;lived&lt;/em&gt; bad coding days himself and got chewed on for not finishing his deliverables on time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good manager could be that software sales guy who found out that his coder friends couldn't go out with him on weekends because of unrealistic promises he himself had given to the client.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Technical knowledge do not predetermine a programmer's qualifications as a manager, because the skillsets required in both jobs are utterly different. So no.&lt;/p&gt;&#xA;" OwnerUserId="2960" LastActivityDate="2010-09-20T12:27:51.923" />
  <row Id="5548" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T12:31:58.437" Score="0" ViewCount="" Body="&lt;p&gt;We ALWAYS code in english. Comments and documentation are written in spanish if the customer really asks for it.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T12:31:58.437" CommunityOwnedDate="2010-09-20T12:31:58.437" />
  <row Id="5549" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T12:35:10.973" Score="0" ViewCount="" Body="&lt;p&gt;I give them the example of a dentist, a neurosurgeon and an orthopedic surgeon (e.g. would you go to the first if you had a broken bone?) People who ask you to fix their computers are unaware of the distinction between programmers, hardware engineers etc (and the specializations therein). &lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-09-20T12:35:10.973" CommunityOwnedDate="2010-09-20T14:25:59.460" />
  <row Id="5550" PostTypeId="2" ParentId="5490" CreationDate="2010-09-20T12:36:59.487" Score="1" ViewCount="" Body="&lt;p&gt;You should read this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://thedailywtf.com/Articles/A_Case_of_the_MUMPS.aspx&quot; rel=&quot;nofollow&quot;&gt;http://thedailywtf.com/Articles/A_Case_of_the_MUMPS.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;about MUMPS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I work in the DC area and run into people fairly regularly that not only know what MUMPS is they work in it frequently.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-09-20T12:36:59.487" CommentCount="2" />
  <row Id="5551" PostTypeId="2" ParentId="5513" CreationDate="2010-09-20T12:37:30.200" Score="1" ViewCount="" Body="&lt;p&gt;In my experience they catch on pretty quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Version 1.0 - We sell for money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Version 1.1 - Small enhancements for some customers: we sell for a smaller amount of money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Version 2.0 - Big improvements. We sell for lots of money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Version 2.1 - Small enhancements for some customers: we se... &quot;Wait a minute&quot; says PM/BA &quot;Rename that to 2.5 and we'll charge 5x as much&quot;. No amount of &lt;em&gt;discussion&lt;/em&gt; from engineering will convince them otherwise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Version &lt;strike&gt;2.2&lt;/strike&gt; 3.0 etc...&lt;/p&gt;&#xA;" OwnerUserId="2951" LastActivityDate="2010-09-20T12:37:30.200" />
  <row Id="5552" PostTypeId="2" ParentId="5490" CreationDate="2010-09-20T12:50:43.017" Score="2" ViewCount="" Body="&lt;p&gt;Yes MUMPS is very much alive. A good portion of the VA Hospitals in the US use MUMPS.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-09-20T12:50:43.017" CommentCount="2" />
  <row Id="5553" PostTypeId="2" ParentId="5466" CreationDate="2010-09-20T13:00:01.173" Score="2" ViewCount="" Body="&lt;p&gt;I honestly think the answer is no.  There is a whole baggage of competences required to be a good project manager and being a programmer is not one of them.  A good project manager could manage any project of any type given that there are good people on the project team who know what they are doing.  The main quality a project manager should have is &lt;strong&gt;communication skills&lt;/strong&gt;.  A project manager's job is to coordinate the project's tasks and keep the communications flowing between the customer, project teams and any other stakeholders.  He/she should know at all times the progress of the team and if they are experiencing roadblocks, but doesn't need to know what the problem is or what you need to fix it, unless it implicates another person on the team whose time will need to be adjusted to help fix the problem.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for giving estimates, that's a reality of life in any job.  You could never get a house built on time if the electrician couldn't tell you how long it will take him to do the wiring - when would you know to book your walls guy?  I agree though that it's really hard in IT to give estimates because of the high number of imponderables.  Customers don't always know what they want and they tend to forget to tell you a bunch of things.  What I used to do is estimate roughly how long I thought it would take, then multiply it by 2!  And a good program manager shouldn't crucify you when your estimate proves wrong, it will cause him some headaches to re-organize the schedule, talk to the customer, explain to the bosses that it's going to cost more, etc...  But that's part of their job - again, good &lt;strong&gt;communication skills&lt;/strong&gt; are mostly what's required.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I would even say that &lt;strong&gt;not having any programming skills is even better&lt;/strong&gt; - an ex-programmer might attempt to do the estimating on their own or second guess your estimates.  And we all know that IT skills get outdated really fast.  You need to start asking questions when your project manager is more interested on how you are going to do a task than on how long it might take and when you'll be done.  They could ask you to evaluate alternatives and let you hash out the details but the main point is to know how you're going to affect the project's schedule.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, I'm not saying that no IT skills are necessary to manage an IT project - IT people being the type who just cannot seem to be able to vulgarize what they are saying for the common folk (!), it helps to know the basic jargon to be able to communicate with them!  Also &lt;strong&gt;knowing the basic steps is crucial&lt;/strong&gt; - you need to setup a server before running a website on it.  I couldn't manage a construction project if I didn't know that the electrician has to finish the wiring before I close the walls!!&lt;/p&gt;&#xA;" OwnerUserId="2975" LastActivityDate="2010-09-20T13:00:01.173" CommentCount="1" />
  <row Id="5554" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T13:01:35.557" Score="0" ViewCount="" Body="&lt;p&gt;From my experience here in Germany, most professional programmers (as in capable ones) code in English. In my opinion, variable, function and class names in non-English are just plain ugly. :-)&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T13:01:35.557" CommunityOwnedDate="2010-09-20T13:01:35.557" />
  <row Id="5555" PostTypeId="1" CreationDate="2010-09-20T13:09:01.983" Score="16" ViewCount="1772" Body="&lt;p&gt;According to my experience, programmers generally are not strong believers and most of the programmers I know are skeptics. Of course I have seen very conservative ones but the ratio is quite low compared to the whole population's conservativeness.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your experiences?&lt;/p&gt;&#xA;" OwnerUserId="1517" LastEditorUserId="61" LastEditorDisplayName="" LastEditDate="2010-09-20T14:45:53.210" LastActivityDate="2010-11-24T07:45:49.673" ClosedDate="2010-09-21T20:34:24.207" Title="Do programmers have higher tendency to be atheists than non programmers?" Tags="&lt;spirituality&gt;&lt;ideology&gt;" AnswerCount="18" CommentCount="9" FavoriteCount="11" />
  <row Id="5556" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T13:16:42.573" Score="1" ViewCount="" Body="&lt;p&gt;Question: being this question was posed in English doesnt that bias the answer set?&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T13:16:42.573" CommunityOwnedDate="2010-09-20T13:16:42.573" CommentCount="1" />
  <row Id="5557" PostTypeId="2" ParentId="5555" CreationDate="2010-09-20T13:17:26.163" Score="20" ViewCount="" Body="&lt;p&gt;I think there is a relation between education level and religion level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not an atheist, but I can't accept the fact that there are so many religions and only one of them is right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, programmers are sceptic. We have too much experience with people asking A while needing B.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-20T13:17:26.163" CommentCount="11" />
  <row Id="5558" PostTypeId="2" ParentId="5540" CreationDate="2010-09-20T13:17:36.067" Score="2" ViewCount="" Body="&lt;p&gt;When it's an open source project where people are expected to contribute, I'd certainly opt for developer friendly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My biggest dislike about open source projects is that very rarely does the repository contain all the dependencies needed to build the code (sometimes for practical or legal reasons), but when they don't - some don't even bother to tell you what dependencies you need, or more importantly, which version of them you need. (and preferably where to get them from)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes you can spend over half a day fetching and compiling several other projects in order to build the project you're after.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, this is really only relevant for development on Windows.&lt;/p&gt;&#xA;" OwnerUserId="356" LastActivityDate="2010-09-20T13:17:36.067" CommentCount="1" />
  <row Id="5559" PostTypeId="2" ParentId="5555" CreationDate="2010-09-20T13:19:48.373" Score="13" ViewCount="" Body="&lt;p&gt;I don't think programming has anything to do with it. It is true, however, that the hacker culture encourages one to become more inquisitive, so that could lead a religious programmer to question his/her beliefs. In that sense, a religious person is more likely to become an atheist being a programmer, than being an usher, for example... But that's obvious and maybe unrelated to your question.&lt;/p&gt;&#xA;" OwnerUserId="2979" LastActivityDate="2010-09-20T13:19:48.373" CommentCount="6" />
  <row Id="5560" PostTypeId="1" CreationDate="2010-09-20T13:24:07.673" Score="18" ViewCount="670" Body="&lt;p&gt;It's all the rage nowadays. &quot;Everyone&quot; recommends it. That in and of itself makes me suspicious.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some disadvantages you have found when doing test-first (test-driven) development? I'm looking for personal experiences from knowledgeable practitioners--I can read the hypothetical musings of a hundred wannabes elsewhere on the internet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I ask not because I am looking to hate TDD, but because it is my job to improve software development process, and the more we can learn about the problems people encounter, the better chance we have of improving the process.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-10-14T17:04:56.307" Title="What are the disadvantages of test-first programming?" Tags="&lt;development-process&gt;&lt;tdd&gt;" AnswerCount="5" FavoriteCount="6" />
  <row Id="5561" PostTypeId="2" ParentId="5560" CreationDate="2010-09-20T13:27:33.083" Score="20" ViewCount="" Body="&lt;p&gt;There are quite a few, but the advantages &lt;em&gt;far&lt;/em&gt; outweigh the disadvantages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;There's a steep learning curve.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many developers seem to expect that they can be efficient with test-first programming right from day one.  Unfortunately it takes a lot of time to gain experience and program at the same speed as before.  You can't get around it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be more specific, it's very easy to get wrong.  You can very easily (with very good intentions) end up writing a whole bunch of tests which are either difficult to maintain or testing the wrong stuff.  It's difficult to give examples here - these kind of issues simply take experience to solve.  You need to have a good feel of separating concerns and designing for testability.  My best advice here would be to do pair-programming with someone who knows TDD really well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;You do more coding up front.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Test-first means you can't skip tests (which is good) and means you'll end up writing more code up front.  This means more time.  Again, you can't get around it.  You get rewarded with code that's easier to maintain, extend and generally less bugs, but it takes time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Can be a tough sell to managers.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software managers are generally only concerned with timelines.  If you switch to test-first programming and you're suddenly taking 2 weeks to complete a feature instead of one, they're not gonna like it.  This is definitely a battle worth fighting and many managers are enlightened enough to get it, but it can be a tough sell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Can be a tough sell to fellow developers.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since there's a steep learning curve not all developers like test-first programming.  In fact, I would guess that &lt;em&gt;most&lt;/em&gt; developers don't like it at first.  You can do things like pair-programming to help them get up to speed, but it can be a tough sell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, the advantages outweigh the disadvantages, but it doesn't help if you just ignore the disadvantages.  Knowing what you're dealing with right from the start helps you to negotiate some, if not all, of the disadvantages.&lt;/p&gt;&#xA;" OwnerUserId="221" LastEditorUserId="221" LastEditorDisplayName="" LastEditDate="2010-09-20T13:46:17.493" LastActivityDate="2010-09-20T13:46:17.493" CommentCount="12" />
  <row Id="5562" PostTypeId="2" ParentId="5555" CreationDate="2010-09-20T13:27:39.747" Score="27" ViewCount="" Body="&lt;p&gt;I agree that the more educated people are, the more they are skeptical. Programming needs a lot of logical thinking which could lead to more critical / rational thinking, so I wouldn't be surprised that there are slightly more atheists / agnostics in the programmer community than those in other professions.&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-20T21:50:09.710" LastActivityDate="2010-09-20T21:50:09.710" CommentCount="9" />
  <row Id="5563" PostTypeId="2" ParentId="959" CreationDate="2010-09-20T13:31:08.817" Score="4" ViewCount="" Body="&lt;p&gt;It is &lt;strong&gt;not possible&lt;/strong&gt; for a machine to develop true human-like intelligence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason is that human intelligence is a product of a human mind, and the human mind develops intelligence in the context of a human body that occupies the natural world, operates in a human social context, and which exists to enable is to achieve human goals. This is why &lt;strong&gt;The human mind is unique&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hypothetically, it may be possible to produce an artificial human with all the characteristics and experiences required to develop human-like intelligence. However, the cost of doing so would be prohibitive, and the benefits would be minimal. Most of the benefits of &quot;AI&quot; research have been to produce machines that &lt;em&gt;augment&lt;/em&gt; our natural abilities, not &lt;em&gt;reproduce&lt;/em&gt; them.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-09-20T13:31:08.817" CommunityOwnedDate="2011-04-19T01:26:27.260" CommentCount="8" />
  <row Id="5564" PostTypeId="1" CreationDate="2010-09-20T13:34:42.483" Score="2" ViewCount="135" Body="&lt;p&gt;Need a Free, Fast(development and runtime) and Reliable(transactions and locking) tool set for creating an enterprise application for SMBs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm thinking of an application framework + UI framework + DB which will help me in developing the software faster. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As it is known, business softwares need lot of similar UIs to be created. &#xA;My idea is ...to create a new form with N number of fields and connecting it to the database for basic CRUD operations within 30min to 1hr. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got the taste of Intersystems Cache technology stack with an app framework on top of it. To be frank...it is amazing... &#xA;I'm looking out for something similar to this in opensource.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any suggestions?&lt;/p&gt;&#xA;" OwnerUserId="2982" LastActivityDate="2010-09-20T20:37:33.953" Title="What is the best toolset for developing an enterprise application for SMBs ?" Tags="&lt;programming-languages&gt;&lt;open-source&gt;&lt;database-development&gt;&lt;frameworks&gt;&lt;erp&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="5565" PostTypeId="2" ParentId="5460" CreationDate="2010-09-20T13:35:23.253" Score="6" ViewCount="" Body="&lt;p&gt;Haskell or Erlang&lt;/p&gt;&#xA;" OwnerUserId="2587" LastActivityDate="2010-09-20T13:35:23.253" />
  <row Id="5566" PostTypeId="2" ParentId="293" CreationDate="2010-09-20T13:35:33.937" Score="1" ViewCount="" Body="&lt;p&gt;I'd like &lt;code&gt;zip&lt;/code&gt; to raise an Exception if the sequences are not equal in length.&lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-09-20T13:35:33.937" />
  <row Id="5567" PostTypeId="2" ParentId="180" CreationDate="2010-09-20T13:38:17.173" Score="0" ViewCount="" Body="&lt;p&gt;&lt;code&gt;&quot;Hello world.&quot;&lt;/code&gt; is not grammatical English, though use of commas in this case has diminished in recent years; &lt;code&gt;&quot;Hello, world.&quot;&lt;/code&gt; would be pedantically correct. But see above for history.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-09-20T13:38:17.173" />
  <row Id="5568" PostTypeId="2" ParentId="5540" CreationDate="2010-09-20T13:42:09.543" Score="0" ViewCount="" Body="&lt;p&gt;I tend to strive for production-friendly.  It keeps your builds clean and prevents extraneous settings from making it into production.&lt;/p&gt;&#xA;" OwnerUserId="144" LastActivityDate="2010-09-20T13:42:09.543" />
  <row Id="5569" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T13:43:56.577" Score="3" ViewCount="" Body="&lt;p&gt;This thread needs some amazing 1C-code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Если ДатаЧисло(НачДата) &amp;lt; 10 Тогда&#xA;ЧислоДата = &quot;0&quot;+ДатаЧисло(НачДата);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Иначе&#xA;    ЧислоДата =  ДатаЧисло(НачДата);&#xA;КонецЕсли;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Если ДатаМесяц(НачДата) &amp;lt; 10 Тогда&#xA;    МесяцДата = &quot;0&quot;+ДатаМесяц(НачДата);&#xA;Иначе&#xA;    МесяцДата =  ДатаМесяц(НачДата);&#xA;КонецЕсли;            &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Если ДатаЧисло(КонДата) &amp;lt; 10 Тогда&#xA;    КонЧислоДата = &quot;0&quot;+ДатаЧисло(КонДата);&#xA;Иначе&#xA;    КонЧислоДата =  ДатаЧисло(КонДата);&#xA;КонецЕсли;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Если ДатаМесяц(КонДата) &amp;lt; 10 Тогда&#xA;    КонМесяцДата = &quot;0&quot;+ДатаМесяц(КонДата);&#xA;Иначе&lt;br&gt;&#xA;    КонМесяцДата =  ДатаМесяц(КонДата);&#xA;КонецЕсли;            &lt;/p&gt;&#xA;&#xA;&lt;p&gt;/// ... где-то ниже&#xA;ЧислоДата+&quot;/&quot;+МесяцДата+&quot;/&quot;+ДатаГод(НачДата)+&quot;;&quot;+КонЧислоДата+&quot;/&quot;+КонМесяцДата+&quot;/&quot;+ДатаГод(КонДата)&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T13:43:56.577" CommunityOwnedDate="2010-09-20T13:43:56.577" CommentCount="1" />
  <row Id="5570" PostTypeId="2" ParentId="5427" CreationDate="2010-09-20T13:45:13.220" Score="3" ViewCount="" Body="&lt;p&gt;Many Python lovers I see just switched from C surroundings and were impressed with stuff like &lt;code&gt;&quot;Hello &quot;+ &quot;World&quot;&lt;/code&gt; is &lt;code&gt;&quot;Hello World&quot;&lt;/code&gt;. So I would say this is the first scripting language that does not gathered esoteric/specific tag and so spread around among martyred people like fire in a dried forest. And so created fashion now lives on its own.&lt;/p&gt;&#xA;" OwnerUserId="2051" LastActivityDate="2010-09-20T13:45:13.220" />
  <row Id="5572" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T13:46:45.900" Score="1" ViewCount="" Body="&lt;p&gt;I'm russian, here we code in MSVC++, this is what the code looks like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    #include &quot;stdafx.h&quot;&#xA;#include &amp;lt;iostream&amp;gt;&#xA;&#xA;использовати площадь какобычно аминь1&#xA;&#xA;наместе двояко провѣрятичегоглаголют молчаливо&#xA;кагбе&#xA;    ѣжѣли получалка.сломалася молчаливо тогдауж &#xA;    кагбе &#xA;      молвити &quot;Не лепо молвишь, барин!&quot; аминь1&#xA;      возвѣрнути нуль спасихоспади1&#xA;    ага&#xA;    возвѣрнути один аминь1&#xA;ага&#xA;&#xA;цѣло голова(цѣло количество_указов, глаголют указы[])&#xA;кагбе &#xA;  дваждыточно первыйсундук, второйсундук, отвѣт аминь1&#xA;  буквица знако спасихоспади1&#xA;  творити &#xA;  кагбе&#xA;    молвити &quot;молви первый цифирь, барин: &quot; аминь1&#xA;    получити первыйсундук аминь1&#xA;&#xA;    ѣжѣли провѣрятичегоглаголют молчаливо еси ложъ тогдауж прѣрвати спасихоспади1&#xA;&#xA;    молвити &quot;молви деяние, барин: &quot; аминь1&#xA;    получити знако спасихоспади1&#xA;&#xA;    ѣжѣли провѣрятичегоглаголют молчаливо еси ложъ тогдауж прѣрвати спасихоспади1&#xA;&#xA;    ѣжѣли знако еси 'q' тогдауж прѣрвати аминь1&#xA;&#xA;    молвити &quot;молви второй цифирь, барин: &quot; аминь1&#xA;    получити второйсундук аминь1&#xA;&#xA;    ѣжѣли провѣрятичегоглаголют молчаливо еси ложъ тогдауж прѣрвати спасихоспади1&#xA;&#xA;    избирати знако &#xA;    тогдауж  кагбе&#xA;      выборъ '+' сталобыти&#xA;        отвѣт буде первыйсундук да второйсундук аминь1&#xA;        прѣрвати спасихоспади1&#xA;      выборъ '-' сталобыти&#xA;        отвѣт буде первыйсундук бѣзо второйсундук аминь1&#xA;        прѣрвати спасихоспади1&#xA;      выборъ '*' сталобыти&#xA;        отвѣт буде первыйсундук повторити_столько_сколько второйсундук аминь1&#xA;        прѣрвати спасихоспади1&#xA;      выборъ '/' сталобыти&#xA;        отвѣт буде первыйсундук убрати_столько_сколько второйсундук аминь1&#xA;        прѣрвати спасихоспади1&#xA;    ага&#xA;&#xA;    молвити &quot;Отвѣт есьм: &quot; аминь1&#xA;    молвити отвѣт да_промолчати спасихоспади1&#xA;&#xA;  ага&#xA;  пока (истино) аминь1&#xA;&#xA;  возвѣрнути нуль спасихоспади1&#xA;ага&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2998" LastActivityDate="2010-09-20T13:46:45.900" CommunityOwnedDate="2010-09-20T13:46:45.900" CommentCount="1" />
  <row Id="5573" PostTypeId="2" ParentId="5489" CreationDate="2010-09-20T13:51:58.683" Score="2" ViewCount="" Body="&lt;p&gt;This is actually a very open questions.  This will primarily depend on your choice of university.  &quot;Information System&quot; courses could be very non-technical and just focus on project management and SDLC theory.  Of course, if you go into &quot;Information Systems&quot; (IS), please take programming classes as part of your electives/minor.&#xA;  Unfortunately, there is a lot if &quot;IS&quot; majors that don't require more than one or two programming classes. Also, I have found most QA/Testers have IS degrees, as opposed to developers who have more technical CS,Engineer, etc degrees so be prepared to work your way into a developer position (And that may not be a bad thing either - some of the best programmers I worked with in the past started with their companies working in QA/support departments).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, PLEASE TAKE ALL THE DATABASE CLASSES YOU CAN!  The hardest part of working with anyone who has just come out of school is teahcing them how to work with and good design methodologies to databases and SQL.  Too many people get IS, CS, etc degrees without really understanding database design and best practices or really doing much SQL besides SELECT statements.  &lt;/p&gt;&#xA;" OwnerUserId="1789" LastActivityDate="2010-09-20T13:51:58.683" CommentCount="4" />
  <row Id="5574" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T13:54:23.367" Score="0" ViewCount="" Body="&lt;p&gt;I give them a visiting card (made for the special occasion) and I ask them to schelude an appointment to talk about the problem. End of the story.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T13:54:23.367" CommunityOwnedDate="2010-09-20T14:25:59.460" />
  <row Id="5575" PostTypeId="2" ParentId="5560" CreationDate="2010-09-20T13:54:24.150" Score="12" ViewCount="" Body="&lt;p&gt;Test-first assumes you are writing code that is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;testable in a unit-test manner&lt;/li&gt;&#xA;&lt;li&gt;that what you are developing has an obvious approach and will not require extensive prototyping or experimentation&lt;/li&gt;&#xA;&lt;li&gt;that you will not need to refactor too heavily or that you have the time to repeatedly rewrite hundreds or thousands of test cases&lt;/li&gt;&#xA;&lt;li&gt;nothing is sealed&lt;/li&gt;&#xA;&lt;li&gt;everything is modular&lt;/li&gt;&#xA;&lt;li&gt;everything is injectable or mockable&lt;/li&gt;&#xA;&lt;li&gt;that your organization places a high enough value on low-defects to justify the resource sink&lt;/li&gt;&#xA;&lt;li&gt;that there is something of benefit to test at a unit test level&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If your project does not meet those requirements you will have difficulty.  The promoters of TDD have no good answers to this other to suggest that you redesign your product to better fall within those lines.  There are situations where that is impossible or undesirable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In practice there can also me a huge problem with people thinking the test-first tests actually prove anything about the correct function of the program.  In many cases this is not true, but even in the cases where it is true it is far from a complete picture of correctness.  People see hundreds of passing tests and assume it is safe to test less since before TDD they only did a few hundred test cases anyway.  In my experience TDD means that you need to have even more integration tests as the developers will also have the false security and the pain of changing all the tests to do a big redactor can lead developers to make interesting work arounds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal best example is when writing security code for asp.net.  If they are meant to run in a hostile environment from the machine config, they are gac'ed, signed and sealed, and because they are running against IIS god objects they are very difficult to mock very much of correctly.  Add in some constraints for performance and memory use and you very quickly loose the flexibility to use placeholder objects in the remaining areas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any sort of micro controller or other low resource environment code may not be possible to do truly OO style design as the abstractions do not optimize out and you have low resource limits.  The same can be said for high performance routines in many cases as well.&lt;/p&gt;&#xA;" OwnerUserId="841" LastEditorUserId="841" LastEditorDisplayName="" LastEditDate="2010-09-20T15:44:39.437" LastActivityDate="2010-09-20T15:44:39.437" CommentCount="5" />
  <row Id="5576" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T13:56:01.370" Score="5" ViewCount="" Body="&lt;p&gt;I'm from Canada, but live in the States now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It took me a while to get use to writing boolean variables with an &quot;Is&quot; prefix, instead of the &quot;Eh&quot; suffix that Canadians use when programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;MyObj.IsVisible&#xA;&#xA;MyObj.VisibleEh&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" LastActivityDate="2010-09-20T13:56:01.370" CommunityOwnedDate="2010-09-20T13:56:01.370" />
  <row Id="5577" PostTypeId="2" ParentId="959" CreationDate="2010-09-20T13:57:33.193" Score="1" ViewCount="" Body="&lt;p&gt;I think the only difference between weak and strong AI is complexity; we just currently don't have proper architecture to do it. &lt;/p&gt;&#xA;" OwnerUserId="2051" LastActivityDate="2010-09-20T13:57:33.193" CommunityOwnedDate="2011-04-19T01:26:27.260" />
  <row Id="5578" PostTypeId="2" ParentId="5372" CreationDate="2010-09-20T13:57:35.987" Score="11" ViewCount="" Body="&lt;p&gt;A lot of people propose cardio here, but I will take a different route and recommend strength training. Compared to the former it has the following advantages:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Improved posture and strength: When you get stronger sitting, walking and standing with good posture will become a lot easier, will feel more natural and you will start to do it without constantly reminding yourself. Other common task like house holding or carrying objects will get a lot easier as well.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Permanent fat loss: Strength training will increase muscle. And one of the benefits of increased muscle is an increase in the number of calories your body naturally burns at rest. In addition to this your body will burn calories during the weight lifting session and will require additional calories to repair your muscles after it. These three effects in combination work really well: When I started to lift weights I became a lot stronger and leaner within a few months without changing my diet habits at all.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Less time consuming: 3 x 45 minutes per a week is enough.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Increased motivation: Pure cardio tends to be boring and repetitive. If you take strength training seriously you will try to lift more weight, perfect your technique and try to break your own records every workout (and if you just started to lift weights, you will most likely break them every workout). If you are a gamer, you probably know this kind of motivation from RPGs, where your character get stronger from level to level.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Various other benefits: Strength training increases endurance, bone density and testosterone levels. It also strengthens your joints, lowers cholesterol and improves your sleep.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It will make you look good: Strength training will not only make you leaner, it will add muscles to your body as well. You won’t become a body builder or anything close to that. You will look athletic and in shape. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you want to start with strength training, I recommend you to read &lt;a href=&quot;http://stronglifts.com/stronglifts-5x5-beginner-strength-training-program/&quot; rel=&quot;nofollow&quot;&gt;Stronglifts&lt;/a&gt; as an introduction. It is a great site that will offer you everything you need as beginner: Workout programs, articles about exercise technique and nutrition advice.&lt;/p&gt;&#xA;" OwnerUserId="2955" LastActivityDate="2010-09-20T13:57:35.987" CommunityOwnedDate="2010-09-20T13:57:35.987" CommentCount="4" />
  <row Id="5580" PostTypeId="2" ParentId="5555" CreationDate="2010-09-20T14:10:17.990" Score="1" ViewCount="" Body="&lt;p&gt;Very interesting question, and honestly I never thought about it. I do believe that programmers are smart people and yeah, at some point in their lives they will start questioning things. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe however, that it has nothing to do with programmers in general but more with the ammount of education of the said person. Note that by education I don't mean degrees because often school(s) !=  culture.&lt;/p&gt;&#xA;" OwnerUserId="2849" LastActivityDate="2010-09-20T14:10:17.990" />
  <row Id="5581" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T14:13:29.267" Score="3" ViewCount="" Body="&lt;p&gt;For Windows: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Person: Blah, blah , blah .... (describing their problem).&#xA;Me: I don't know the solution to this. You need format.&#xA;Person: Great, can you do it?&#xA;Me: No. I don't know how things work on Windows 7.&#xA;Person: Oh, you run Linux right? &#xA;Me: Ehm...well, yes.&#xA;Person: Ok, thanx anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Ubuntu:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Person: Blah, blah, blah... (usually asking how to make their desktop very cool)&#xA;Me: I don't remember, google it.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T14:13:29.267" CommunityOwnedDate="2010-09-20T14:25:59.460" CommentCount="1" />
  <row Id="5582" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T14:16:41.760" Score="8" ViewCount="" Body="&lt;p&gt;I have an amazon.com wish list. I do genuinely like helping people, however I feel my time is worth something. Where accepting cash may not feel 100% appropriate, sending them my Amazon wish list has worked very well for me.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T14:16:41.760" CommunityOwnedDate="2010-09-20T14:25:59.460" />
  <row Id="5583" PostTypeId="2" ParentId="5555" CreationDate="2010-09-20T14:17:43.977" Score="5" ViewCount="" Body="&lt;p&gt;Programming is based on computer science, which is itself, obviously, a science. Science and the irrational belief in [insert name of deity/deities here] do not mix. &lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-20T14:17:43.977" CommentCount="15" />
  <row Id="5584" PostTypeId="2" ParentId="5513" CreationDate="2010-09-20T14:18:21.370" Score="0" ViewCount="" Body="&lt;p&gt;Do you mean versioning or branching/merging?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it is pretty straightforward to understand versioning. &quot;We saved the version from Tuesday. Then we did more work. Now it is Wednesday. We can go back to Tuesday's version.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Branching and merging is much harder to explain. &quot;Well, Bob made changes in 1.1 that conflicted with Alice's view of 1.1 and submitted first, so 1.2 has Bob's changes, but 1.3 has Alice's changes too except some of Bob's got integrated later, so...&quot;&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-09-20T14:18:21.370" CommentCount="5" />
  <row Id="5585" PostTypeId="2" ParentId="5427" CreationDate="2010-09-20T14:21:41.880" Score="3" ViewCount="" Body="&lt;p&gt;To me Python has been a dear friend. It's a decent scripting and prototyping language. The key things I can think of are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Clean syntax, very simplistic and easy to understand&lt;/li&gt;&#xA;&lt;li&gt;Multi-paradigm, use it as a imperative language? Sure. OOP? No problem. It also has some light functional language features, e.g. lambda, list comprehensions, etc.&lt;/li&gt;&#xA;&lt;li&gt;For basic computing needs, it has native support for the essential data structures, array, tuple, dictionary (associative array), set, etc.&lt;/li&gt;&#xA;&lt;li&gt;Other features can make a programmer very productive, e.g. duck-typing, reflection, meta-programming, decorators, generators, etc.&lt;/li&gt;&#xA;&lt;li&gt;Rich library support&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-20T23:45:37.683" LastActivityDate="2010-09-20T23:45:37.683" CommentCount="4" />
  <row Id="5586" PostTypeId="2" ParentId="4028" CreationDate="2010-09-20T14:24:21.640" Score="0" ViewCount="" Body="&lt;p&gt;In the past when I didn't have the time to piss on someone else's code and beat it into &quot;my&quot; style, I have had to resort to being very task-driven:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What am I trying to add to this code/fix/make work?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Is what I'm doing working toward that goal?&lt;/em&gt; If not, stop doing it, and revert to the last time I was making task-oriented changes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Am I done with this task?&lt;/em&gt; If so, stop tinkering with the code, even though it looks like it was written by non-sentient Martian mold.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-09-20T14:24:21.640" />
  <row Id="5587" PostTypeId="2" ParentId="5555" CreationDate="2010-09-20T14:25:51.567" Score="28" ViewCount="" Body="&lt;p&gt;Because programmers believes they ares gods themselves, so they don't have to believe in any other superior being. :)&lt;/p&gt;&#xA;" OwnerUserId="19" LastActivityDate="2010-09-20T14:25:51.567" CommentCount="6" />
  <row Id="5588" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T14:25:55.690" Score="0" ViewCount="" Body="&lt;p&gt;I speak Afrikaans as a first language.  When I code I usually use a mix of Afrikaans and English variables and I mostly comment in Afrikaans.  As we have 11 official languages I would code in English for official purposes (government projects etc.).  If I quickly write code to test things I almost always code and comment in Afrikaans.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T14:25:55.690" CommunityOwnedDate="2010-09-20T14:25:55.690" />
  <row Id="5589" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T14:25:59.460" Score="2" ViewCount="" Body="&lt;p&gt;I actually turned this problem into a small business.  I don't make much with it at this point, but it is definitely worth it.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T14:25:59.460" CommunityOwnedDate="2010-09-20T14:25:59.460" />
  <row Id="5590" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T14:31:48.987" Score="3" ViewCount="" Body="&lt;p&gt;I travel between Egypt and America often. I believe that there is a good argument for coding in your mother tongue, especially when your character set is not Latin. &lt;a href=&quot;http://www.bbc.co.uk/news/health-11181457&quot; rel=&quot;nofollow&quot;&gt;Studies&lt;/a&gt; have shown that the brain is trained to processes information differently for different languages. I have witnessed the difficulties faced by Arabic speaking programmers first hand. Being that English is my mother tongue I cannot imagine how difficult it would be for me to code professionally in Arabic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The activity of programming is that of an artist expressing a dream world as an interactive experience. Programmers enter a state comparable to deep meditation while at work. In this state they use critical and creative thinking drawn from their experiences across a wide array of disciplines. Forcing a programmer to use a non-native language not only hinders them in this process, but also creates an unnecessary barrier to entry for new programmers who may be otherwise proficient.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With this in mind we are creating an Arabic programming language. We realize that to do so from scratch would mean to give up all the benefits of existing programming languages. Thus we are implementing it as a Domain Specific Language in Scala. Here is a simple example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;&#xA;حين( عد &amp;gt; 5 ) {&#xA; اذا ( 0 &gt; 1 ){&#xA;اطبع(&quot;yes&quot;) &#xA;  }اخر &#xA;اطبع(&quot;no&quot;) &#xA;  }  &#xA;  عد += 1  &#xA;}&#xA;&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If anyone is interested in participating or has any thoughts please feel free to email me at scala_arabic[at]whiteslate.com.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T14:36:49.373" CommunityOwnedDate="2010-09-20T14:31:48.987" CommentCount="1" />
  <row Id="5591" PostTypeId="2" ParentId="1849" CreationDate="2010-09-20T14:34:53.227" Score="12" ViewCount="" Body="&lt;p&gt;Firstly, I agree with you - if you are writing your unit tests on already completed code, or you are manually unit testing your code, I find that extremely boring too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find there are two ways of unit testing for me that really make it enjoyable:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;By using Test Driven Development (TDD) - writing the tests first allows me to think about the next piece of functionality or behaviour that I need in my code. I find driving towards my end goal in tiny steps and seeing tangible progress towards that goal every few minutes extremely rewarding and enjoyable.&lt;/li&gt;&#xA;&lt;li&gt;When there are bugs, rather than going straight to the debugger, it's a fun challenge to figure out a way to write a failing unit test that reproduces the bug. It's extremely satisfying to finally figure out the circumstances that make your code fail, then fix it and watch the bar turn green for the new failing test (and stay green for all of your existing tests).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="38" LastEditorUserId="38" LastEditorDisplayName="" LastEditDate="2010-09-20T14:48:36.070" LastActivityDate="2010-09-20T14:48:36.070" CommentCount="5" />
  <row Id="5592" PostTypeId="1" AcceptedAnswerId="5595" CreationDate="2010-09-20T14:41:22.643" Score="6" ViewCount="334" Body="&lt;p&gt;I was told once that the best place to work as a developer is a company where the software you write is what makes the company money, whether it be software production or software services like consulting.  This is opposed to a company where the software you write is just to support some other part of the business that makes the money, like manufacturing or finance.  I know there are always exceptions, but in general, are employees treated better if they are on the front lines of profit generation, as opposed to being just another cost center?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;cost center (n.)&lt;/strong&gt; - A cost center is part of an organization that does not produce direct profit and adds to the cost of running a company. Examples of cost centers include research and development departments, marketing departments, help desks and customer service/contact centers.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-20T23:45:38.463" LastActivityDate="2010-12-10T02:46:44.290" Title="Is it best to try to work at a company where your software directly makes the company money?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;business&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="3" />
  <row Id="5593" PostTypeId="2" ParentId="5555" CreationDate="2010-09-20T14:41:50.080" Score="17" ViewCount="" Body="&lt;p&gt;There is definitely a correlation between lack of belief and intelligence, as demonstrated by &lt;a href=&quot;http://en.wikipedia.org/wiki/Religiosity_and_intelligence#Studies_comparing_religious_belief_and_I.Q.&quot; rel=&quot;nofollow&quot;&gt;Helmuth Nyborg in his 2008 study&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;His results, published in the&#xA;  scientific journal Intelligence&#xA;  demonstrated that on average, Atheists&#xA;  scored 1.95 IQ points higher than&#xA;  Agnostics, 3.82 points higher than&#xA;  Liberal persuasions, and 5.89 IQ&#xA;  points higher than Dogmatic&#xA;  persuasions. &quot;I'm not saying that&#xA;  believing in God makes you dumber. My&#xA;  hypothesis is that people with a low&#xA;  intelligence are more easily drawn&#xA;  toward religions, which give answers&#xA;  that are certain, while people with a&#xA;  high intelligence are more skeptical,&quot;&#xA;  says the professor.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I would venture that computer programmers are probably more intelligent than average, therefore it would be reasonable to extrapolate that programmers are more likely to be atheists. On top of this, evidence also shows that &lt;a href=&quot;http://www.stephenjaygould.org/ctrl/news/file002.html&quot; rel=&quot;nofollow&quot;&gt;scientists are far more likely to be atheists&lt;/a&gt; than other occupations. Given that programming is a deeply rational occupation, like science, therefore I would assume that programmers are similar to scientists in their make-up with regard to belief in god.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;The question of religious belief&#xA;  among US scientists has been debated&#xA;  since early in the century. Our latest&#xA;  survey finds that, among the top&#xA;  natural scientists, disbelief is&#xA;  greater than ever—almost total - &lt;a href=&quot;http://www.stephenjaygould.org/ctrl/news/file002.html&quot; rel=&quot;nofollow&quot;&gt;source&quot;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-20T14:41:50.080" CommentCount="2" />
  <row Id="5594" PostTypeId="2" ParentId="5555" CreationDate="2010-09-20T14:43:58.227" Score="12" ViewCount="" Body="&lt;p&gt;Atheism has been shown to be correlated with both &lt;a href=&quot;http://www.guardian.co.uk/commentisfree/belief/2009/oct/08/atheism-religion-class-science&quot; rel=&quot;nofollow&quot;&gt;high levels of education&lt;/a&gt; and &lt;a href=&quot;http://edition.cnn.com/2010/HEALTH/02/26/liberals.atheists.sex.intelligence/&quot; rel=&quot;nofollow&quot;&gt;IQ&lt;/a&gt;. Since programmers tend to be both highly educated and intelligent, it follows that programming is one of the professions with a higher than average proportion of atheists. Personally, I think that the correlation has less to do with IQ and more to do with education, since high IQ and high education also (probably) correlate well with each other, and the systematic training encountered in higher degrees probably contributes more than a person's intelligence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition, programming, like most science and engineering professions, requires high levels of analytical thinking and a constant questioning of assumptions. This in turn is likely to bleed into a programmer's day-to-day life, leading to questioning one's own belief in an entity or entities in the absence of hard proof. &lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-20T14:43:58.227" CommentCount="2" />
  <row Id="5595" PostTypeId="2" ParentId="5592" CreationDate="2010-09-20T14:50:14.277" Score="9" ViewCount="" Body="&lt;p&gt;Oh, hell yes. Otherwise, you're relying on the head of IT to do a fantastic job of justifing/selling everyone in the company on your profitability. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can be done, but most don't have the skill, time, or absence of office politics to over come it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[Edit] Everyone wants to do a cost/benefit analysis, but without calculating the benefit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which company do you think is more likely to put a former programmer in charge: a software company or an insurance company?&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2010-12-10T02:46:44.290" LastActivityDate="2010-12-10T02:46:44.290" CommentCount="2" />
  <row Id="5596" PostTypeId="2" ParentId="5592" CreationDate="2010-09-20T14:52:37.533" Score="1" ViewCount="" Body="&lt;p&gt;If it doesn't help make profit, so why a cost center is maintained?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even the girl cleaning the restrooms is contributing to company's profits.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-20T14:52:37.533" CommentCount="6" />
  <row Id="5597" PostTypeId="1" AcceptedAnswerId="5612" CreationDate="2010-09-20T14:55:02.860" Score="24" ViewCount="1134" Body="&lt;p&gt;The title says it all, but here's the personal side of it:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been doing design and programming for about as long as I can remember. If there's a programming problem, I can figure it out. (Though admittedly StackOverflow has allowed me to skip the &lt;em&gt;figuring out&lt;/em&gt; and get straight to the &lt;em&gt;doing&lt;/em&gt; in many instances.) I've made games, esoteric programming languages, and widgets and gizmos galore. I'm currently working on a general-purpose programming language. There's nothing I do better than programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I'm just as passionate about design. Thus when I felt leaving high school that my design skills were lacking, I decided to attend university for New Media Design and Imaging, a digital design-related major. For a year, I diligently studied art and programmed in my free time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As the next year progressed, however, I was obligated to take fewer art and design classes and more technical classes. The trouble was of course that these classes were geared toward non-technical students, and were far beneath my skill level at the time. No amount of petitioning could overcome the institution's reluctance to allow me to test out of such classes, and the major offered no promise for any greater challenge in the future, so I took the extreme route: I switched into the technical equivalent of the major, New Media Interactive Development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of my credits moved over into the new major, but many didn't. It would have been infeasible to switch to a more rigorous technical major such as Computer Science, and having tutored Computer Science students at every level here, I doubt I would be exposed to anything that I haven't already or won't eventually find out on my own, since I'm so involved in the field.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm now on track to graduate perhaps a year later than I had planned, which puts a significant financial strain on my family and my future self. My schedule continues to be bogged down with classes that are wholly unnecessary for me to take. I'm being re-introduced to subjects that I've covered a thousand times over, simply because I've always been interested in it all. And though I succeed in avoiding the cynical and immature tactic of failing to complete work out of some undeserved sense of superiority, I'm becoming increasingly disillusioned by the lack of intellectual stimulation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Further, my school requires students to complete a number of quarters of co-op work experience proportional to their major. My original major required two quarters, but my current requires three, delaying my graduation even more. To top it all off, college is putting a severe strain on my relationship with my very close partner of a few years, so I've searched diligently for co-op jobs in my area, alas to no avail.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm now in my third year, and approaching that point past which I can no longer handle this. Either I keep my head down, get a degree no matter what it takes, and try to get a job with a company that will pay me enough to do what I love that I can eventually pay off my loans; or I cut my losses now, move wherever there is work, and in six months start paying off what debt I've accumulated thus far.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the real question is: &lt;strong&gt;is a university education really more than just a formality?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a big decision, and one I can't make lightly. I think this is the appropriate venue for this kind of question, and I hope it sticks around for the sake of others who might someday find themselves in similar situations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My heartfelt thanks for reading, and in advance for your help.&lt;/p&gt;&#xA;" OwnerUserId="2107" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-20T15:03:25.773" LastActivityDate="2011-01-30T14:42:18.630" CommunityOwnedDate="2011-01-26T20:35:39.517" Title="Is a university education really worth it for a good programmer?" Tags="&lt;school&gt;&lt;work&gt;&lt;education&gt;&lt;motivation&gt;&lt;career-advice&gt;" AnswerCount="22" CommentCount="5" FavoriteCount="9" />
  <row Id="5598" PostTypeId="2" ParentId="5452" CreationDate="2010-09-20T14:55:17.453" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1590597141&quot; rel=&quot;nofollow&quot;&gt;Founders at Work&lt;/a&gt; - interviews with startup founders, starting from the early 80's. It's more about how the founders built up their companies, but it has interesting insights into the programming culture prevalent then as well.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-09-20T14:55:17.453" CommentCount="2" />
  <row Id="5599" PostTypeId="2" ParentId="5452" CreationDate="2010-09-20T14:56:37.437" Score="6" ViewCount="" Body="&lt;p&gt;All excellent; Hackers (already mentioned) by Levy is probably the best though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0316528692&quot; rel=&quot;nofollow&quot;&gt;The Fugitive Game: Online with Kevin Mitnick&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1416507787&quot; rel=&quot;nofollow&quot;&gt;The Cuckoo's Egg: Tracking a Spy Through the Maze of Computer Espionage &lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0140291776&quot; rel=&quot;nofollow&quot;&gt;Insanely Great: The Life and Times of Macintosh, the Computer That Changed Everything&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0684832674&quot; rel=&quot;nofollow&quot;&gt;Where Wizards Stay Up Late: The Origins Of The Internet &lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0684818620&quot; rel=&quot;nofollow&quot;&gt;CYBERPUNK: Outlaws and Hackers on the Computer Frontier&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0316528579&quot; rel=&quot;nofollow&quot;&gt;The Watchman: The Twisted Life and Crimes of Serial Hacker Kevin Poulsen &lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0786889136&quot; rel=&quot;nofollow&quot;&gt;Takedown: The Pursuit and Capture of Kevin Mitnick, America's Most Wanted Computer Outlaw-By the Man Who Did It &lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0767906993&quot; rel=&quot;nofollow&quot;&gt;Geeks: How Two Lost Boys Rode the Internet Out of Idaho &lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0316491977&quot; rel=&quot;nofollow&quot;&gt;The Soul of A New Machine&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1306" LastEditorUserId="1306" LastEditorDisplayName="" LastEditDate="2010-12-27T22:10:08.620" LastActivityDate="2010-12-27T22:10:08.620" CommentCount="3" />
  <row Id="5600" PostTypeId="2" ParentId="5452" CreationDate="2010-09-20T14:57:35.587" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0684818620&quot; rel=&quot;nofollow&quot;&gt;Cyberpunk&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0759285780&quot; rel=&quot;nofollow&quot;&gt;Show Stoppers&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0140257314&quot; rel=&quot;nofollow&quot;&gt;Startup&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0786889136&quot; rel=&quot;nofollow&quot;&gt;Takedown&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2857" LastActivityDate="2010-09-20T14:57:35.587" CommentCount="2" />
  <row Id="5601" PostTypeId="2" ParentId="5597" CreationDate="2010-09-20T14:57:36.827" Score="0" ViewCount="" Body="&lt;p&gt;University is a nice experience to live. And it will certainly helps you getting a first job (unless you have strong professional experience which is very unlikely at that age).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For both reasons above, if I was able to go back it time, I would have decided to stay at school instead of leaving it to chase girls in clubs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes you can do that while staying at university too ;)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-20T14:57:36.827" CommunityOwnedDate="2011-01-26T20:35:39.517" CommentCount="3" />
  <row Id="5602" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T14:58:18.993" Score="73" ViewCount="" Body="&lt;p&gt;Here's a win-win:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a 12-year old son, so I tell people that my son will fix their computer for $20-$25. Then I tell them to bring the computer over.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I help my son resolve the problem. He learns a little more about computers, makes a few bucks, and has some &quot;job experience&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Folks don't mind paying a kid for something they'd expect for free from me. And I don't have to go to their house.&lt;/p&gt;&#xA;" OwnerUserId="3041" LastActivityDate="2010-09-20T14:58:18.993" CommunityOwnedDate="2010-09-20T14:58:18.993" CommentCount="11" />
  <row Id="5603" PostTypeId="2" ParentId="4693" CreationDate="2010-09-20T15:01:59.660" Score="3" ViewCount="" Body="&lt;p&gt;Who is not arrogant? Programmers? Physicists? Mathematicians? Doctors? Arrogance is there in every one of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is just a gross generalization that programmers are arrogant, possibly because today posing clever arguments and humbling others and showing off your accumulated information as knowledge gives people kicks.&lt;/p&gt;&#xA;" OwnerUserId="3043" LastActivityDate="2010-09-20T15:01:59.660" CommunityOwnedDate="2010-09-20T15:01:59.660" />
  <row Id="5604" PostTypeId="2" ParentId="5597" CreationDate="2010-09-20T15:04:14.773" Score="3" ViewCount="" Body="&lt;p&gt;This is a highly personal question, and depends greatly on what kind of development you plan to be doing.  Device drivers and real-time embedded systems with plenty of algorithm analysis?  You're probably better off going to school.  CRUD web applications?  Probably not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can speak only for myself.  I have done very well in my career without a CS degree, or a college-level degree of any kind.  Some of this is skill and intelligence, but I'd be loathe to not credit a fair bit of luck, as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I sometimes regret not gaining training in the modes of thought required for genuine formal analysis and proofs.&lt;/p&gt;&#xA;" OwnerUserId="2587" LastActivityDate="2010-09-20T15:04:14.773" CommunityOwnedDate="2011-01-26T20:35:39.517" CommentCount="1" />
  <row Id="5605" PostTypeId="2" ParentId="5555" CreationDate="2010-09-20T15:06:43.210" Score="7" ViewCount="" Body="&lt;p&gt;I think people who follow more analytical career paths (programmers, professors, academics, scientists) tend to be more inquisitive.  These kind of people seem more likely to question the nature of why they were lead to believe something by the culture in which they were raised and change the spiritual and ethical constructs that don't work for them.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do agree that there seems to be a correlation in regard to atheism: the majority of programmers I've known have been atheist, agnostic or part of a very liberal spiritual tradition.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I have my own beliefs and don't consider myself an atheist, I would not have found my current tradition without exploring other traditions or lack thereof and asking many questions in regard to what I consider important.  I don't think there a single correct path to the Divine or human good, if it makes you feel whole and happy, do it!&lt;/p&gt;&#xA;" OwnerUserId="95" LastActivityDate="2010-09-20T15:06:43.210" CommentCount="1" />
  <row Id="5606" PostTypeId="2" ParentId="5597" CreationDate="2010-09-20T15:08:07.570" Score="4" ViewCount="" Body="&lt;p&gt;HR and hiring managers do look at your education, so my answer is YES.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about it, what's the chance if a person graduated from a decent university's CS department with excellent GPA and he ended up being a failure? It's still possible, but the goal is to lower the risk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For geniuses like Bill Gates it's OK for them to be without a degree. They will do well regardless. However for the vast majority of people education is still a great indicator, especially for people who don't have much work experience.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-20T15:08:07.570" CommunityOwnedDate="2011-01-26T20:35:39.517" CommentCount="3" />
  <row Id="5607" PostTypeId="2" ParentId="5597" CreationDate="2010-09-20T15:09:12.770" Score="3" ViewCount="" Body="&lt;p&gt;It's not what you know- it's who knows what you know. You feel you already have the skills. You're more than past the halfway point to graduation, do you think you can get the job you want? Are you in an area where most of the job posts require a degree? Have you been making connections? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In an interview, how do you answer the question; why did you drop out of school? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't put too much confidence in the ability of people doing the hiring to spot talent. Everyone has their biases and crutches (How could I know they would be this bad? They had a certification!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe you're more of an entreprenuer and can go into business yourself?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you decide to quit school, set some standards and time-frame for yourself on what job do you have to get, making how much money, and how much time will you pursue this before going back to school.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-20T15:09:12.770" CommunityOwnedDate="2011-01-26T20:35:39.517" CommentCount="1" />
  <row Id="5608" PostTypeId="2" ParentId="5460" CreationDate="2010-09-20T15:20:18.950" Score="3" ViewCount="" Body="&lt;p&gt;I'd like to learn &lt;a href=&quot;http://clojure.org/&quot; rel=&quot;nofollow&quot;&gt;Clojure&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only problem is I figure you need to be really good at it for it to have any practical purpose, so I never get round to it.&lt;/p&gt;&#xA;" OwnerUserId="1724" LastActivityDate="2010-09-20T15:20:18.950" />
  <row Id="5609" PostTypeId="2" ParentId="265" CreationDate="2010-09-20T15:21:32.770" Score="2" ViewCount="" Body="&lt;p&gt;You're capable of managing an ecommerce website by figuring out problems on your own and getting them done with little to no supervision.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just make sure you can turn this into a positive during your next job interview when they ask you if you can work within a team.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-20T15:21:32.770" />
  <row Id="5610" PostTypeId="2" ParentId="4863" CreationDate="2010-09-20T15:25:47.393" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Factor_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Factor&lt;/a&gt; is stack-oriented programming language like Forth.&lt;/p&gt;&#xA;" OwnerUserId="2325" LastActivityDate="2010-09-20T15:25:47.393" CommunityOwnedDate="2010-10-22T23:54:06.263" />
  <row Id="5611" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T15:27:43.823" Score="0" ViewCount="" Body="&lt;p&gt;People who have computer problems run windows. As I ditched Windows back when win98SE was all the rage, I can safely affirm that I known absolutely nothing about windows (though it's not absolutely true about XP, I never even used an actual Vista/7 machine). &lt;/p&gt;&#xA;" OwnerUserId="2875" LastActivityDate="2010-09-20T15:27:43.823" CommunityOwnedDate="2010-09-20T15:27:43.823" CommentCount="1" />
  <row Id="5612" PostTypeId="2" ParentId="5597" CreationDate="2010-09-20T15:28:03.420" Score="15" ViewCount="" Body="&lt;p&gt;Hooboy.  This is a tough position to be in; you have my sympathies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm biased towards getting a degree, most likely because 1) I have one (BS in Computer Science) and 2) I've often found the knowledge gained pursuing it to be very useful.  But it's hardly a pre-requisite for a successful career; the IT world is rich with people who kick ass, are acknowledged as kicking ass, and who technically don't have more than a high school diploma.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The nice thing about a university degree is that you can put it on hold and come back to it later when life permits.  (Though the dangerous thing about the previous sentence is that it's a good way to simply quit without admitting to yourself you're quitting.)  You can test the waters and see what kind of job you could get by sending your resume out today and seeing what kind of nibbles you get; you haven't committed to anything until you actually say yes to a job offer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And it sounds like your school is a bad fit for you, regardless.  If you're so consistently bored with everything they're throwing at you, then you may need to find a school that will do a better job of giving you your money's worth and making you &lt;b&gt;work&lt;/b&gt; for that degree.  Have you considered transferring somewhere better?&#xA;&lt;hr&gt;&#xA;&lt;b&gt;Edit:&lt;/b&gt;  Based on your comments elsewhere, given how much you love the high-level theoretic aspects of programming, have you considered that the best way to continue to explore that and get paid may be a career in academia?  Which would definitely require you to get your degree.  :-)&lt;/p&gt;&#xA;" OwnerUserId="17" LastEditorUserId="17" LastEditorDisplayName="" LastEditDate="2010-09-20T15:45:46.213" LastActivityDate="2010-09-20T15:45:46.213" CommunityOwnedDate="2011-01-26T20:35:39.517" CommentCount="3" />
  <row Id="5613" PostTypeId="1" AcceptedAnswerId="5616" CreationDate="2010-09-20T15:34:01.350" Score="17" ViewCount="684" Body="&lt;p&gt;With all of the frameworks available these days ORM's DI/IoC etc. I find that many programmers are losing or don't have the problem solving skills needed to solve difficult issues.  I've seen many times unexpected behaviour creep into applications and the developers unable to really dig in and find the issues.  It seems to me that deep understanding of whats going on under the hood is being lost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Don't get me wrong&lt;/strong&gt;, I'm not suggesting these frameworks aren't good and haven't moved the industry forward, only asking if as a unintended consequence developers aren't gaining the knowledge and skill needed for deep understanding of systems.&lt;/p&gt;&#xA;" OwnerUserId="1306" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T16:54:02.703" LastActivityDate="2010-09-30T16:54:02.703" Title="Is the abundance of Frameworks dumbing down programmers?" Tags="&lt;experience&gt;&lt;frameworks&gt;" AnswerCount="12" CommentCount="4" FavoriteCount="4" />
  <row Id="5614" PostTypeId="2" ParentId="5473" CreationDate="2010-09-20T15:36:25.107" Score="8" ViewCount="" Body="&lt;p&gt;You can pry my monospaced font from my cold, dead, still-trying-to-program hands.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-09-20T15:36:25.107" />
  <row Id="5615" PostTypeId="2" ParentId="5317" CreationDate="2010-09-20T15:38:37.457" Score="0" ViewCount="" Body="&lt;p&gt;There are not any tricks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best way is to be adept at whatever specific role you are aiming for . Prove this with qualifications and experience/a portfolio, and being able to answer any technical questions they pose.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask for feedback.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-20T15:38:37.457" />
  <row Id="5616" PostTypeId="2" ParentId="5613" CreationDate="2010-09-20T15:40:21.967" Score="14" ViewCount="" Body="&lt;p&gt;Agreed.  I presently work on a software package that is so encumbered by frameworks it makes it quite nearly impossible to understand the business.  Once frameworks remove you from actually solving business problems instead of just solving MVC, it has gone too far.  As you state, IMO many programmers try and architect/program to solve the ORM &amp;amp; MVC and rarely ask if that actually helps in any way to solve the problem the software is there for in the first place.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Yeah, I know seeing some raw SQL in a JSP page is a &quot;no-no&quot; but if you're a field consultant with where this fits a specific solution?  And no that doesn't mean that the framework is not right, not all customers have $20k sitting around at every turn to ensure that a minor data point is projected on the page.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="2274" LastEditorDisplayName="" LastEditDate="2010-09-20T16:14:52.227" LastActivityDate="2010-09-20T16:14:52.227" CommentCount="1" />
  <row Id="5617" PostTypeId="2" ParentId="5460" CreationDate="2010-09-20T15:42:22.507" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.hibernate.org/&quot; rel=&quot;nofollow&quot;&gt;Hibernate&lt;/a&gt; / &lt;a href=&quot;http://www.nhibernate.com/&quot; rel=&quot;nofollow&quot;&gt;NHibernate&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems like these ORMs are being used more frequently, especially with ASP.NET MVC becoming a bigger player in the webapp market.&lt;/p&gt;&#xA;" OwnerUserId="688" LastActivityDate="2010-09-20T15:42:22.507" CommentCount="1" />
  <row Id="5618" PostTypeId="2" ParentId="5460" CreationDate="2010-09-20T15:45:12.143" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.asp.net/mvc&quot; rel=&quot;nofollow&quot;&gt;ASP.Net MVC&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As automated testing becomes more of a standard in web development, we will likely see this technology used more and more. Personally, I'm a fan of moving away from the webforms architecture and into something more structured such as MVC.&lt;/p&gt;&#xA;" OwnerUserId="688" LastActivityDate="2010-09-20T15:45:12.143" />
  <row Id="5619" PostTypeId="2" ParentId="5597" CreationDate="2010-09-20T15:48:56.990" Score="10" ViewCount="" Body="&lt;p&gt;If you can find at least one job right away without it, and can prove your skill on paper, then no, it's not worth it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel for you, and I was in a similar situation. In my case (in which I was &lt;em&gt;&lt;strong&gt;far&lt;/strong&gt;&lt;/em&gt; more financially 'motivated'), I left and did find development work soon (5 months). Lookin back, it was only 2 years ago, but here's the pros and cons as I've seen them:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pros: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I got a job doing what I love. Can't really beat that.&lt;/li&gt;&#xA;&lt;li&gt;I've been able to stop 'living like a student'&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Cons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Sense of accomplishment: a degree would have been nice, even if I knew that it didn't actually mean that I knew anything.&lt;/li&gt;&#xA;&lt;li&gt;It's not easy to find a job without experience xor a degree purely because it's hard to prove skill on paper.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Once you do have that formal experience, then finding work - which is the ultimate goal of getting an education, isn't as hard. That's why it's important to know if you can find work soon if you decide to leave.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-09-20T17:05:43.890" LastActivityDate="2010-09-20T17:05:43.890" CommunityOwnedDate="2011-01-26T20:35:39.517" CommentCount="4" />
  <row Id="5620" PostTypeId="2" ParentId="5597" CreationDate="2010-09-20T15:52:51.033" Score="1" ViewCount="" Body="&lt;p&gt;One thing to consider is that you do not always have to do a Computer Science degree. I went through Software Engineering and it provided a different aspect to regular ol' programming. There were tons of things that I would have never learned -- mostly dealing with project management and quality assurance. Also, we did a significant amount of low level learning that wouldn't have been possible without the aid of a professor, in my opinion. Formal education has so much to offer but you &lt;em&gt;may&lt;/em&gt; need to go to a &quot;better&quot; school to reap all of those benefits.&lt;/p&gt;&#xA;" OwnerUserId="688" LastActivityDate="2010-09-20T15:52:51.033" CommunityOwnedDate="2011-01-26T20:35:39.517" />
  <row Id="5621" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T15:53:52.300" Score="13" ViewCount="" Body="&lt;p&gt;Eventually if I wear &lt;a href=&quot;http://www.thinkgeek.com/tshirts/itdepartment/388b/&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;  often enough , people get the hint ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://www.thinkgeek.com/images/products/front/will-not-fix.jpg&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="3053" LastActivityDate="2010-09-20T15:53:52.300" CommunityOwnedDate="2010-09-20T15:53:52.300" CommentCount="5" />
  <row Id="5622" PostTypeId="2" ParentId="5597" CreationDate="2010-09-20T15:55:20.287" Score="4" ViewCount="" Body="&lt;p&gt;Getting hired is easier with a degree.  I have a BSc. with a strong CS foundation in it, but not a CS degree.  I've been able to explain away in interviews, but I have no idea how many times I've been filtered out of a stack of resumes because of it...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say that if you want to work in a big organization, it's a huge advantage to have the piece of paper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to work at a startup (and to be honest, based on what you've said so far, that might be a better fit for you) then there won't be as much competition, and there will likely be less reliance on your education and more on personality, drive, and experience.  You'll probably also be looking at lower pay, possibly with some of it in the form of less-than-liquid assets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to work for yourself, your first paycheck will be 0$, and how much you make the next month will depend on your devotion to finding work and some degree of luck in finding something that fits you.  It's hard to get someone to trust a project to you without you having a number of successful projects already under your belt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where do you rank priorities like money, enjoyment/challenge of work, time for recreation, time for relationship, etc.  How much risk are you willing to take?  Think about what's important to you and what you're willing to do to get it.  Is the short term pain worth the chance of a better future, or should you take what you have and run with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an aside, can you switch into another program and get out faster?  Some people I went to university with switched to &quot;computer math&quot; and got out with a 3 year (non-honours) degree.  After a little work experience, the H at the end of your education means increasingly little.&lt;/p&gt;&#xA;" OwnerUserId="849" LastActivityDate="2010-09-20T15:55:20.287" CommunityOwnedDate="2011-01-26T20:35:39.517" />
  <row Id="5623" PostTypeId="2" ParentId="5460" CreationDate="2010-09-20T15:55:39.740" Score="0" ViewCount="" Body="&lt;p&gt;I do keep a list actually, in my tiddly wiki. It is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx&quot; rel=&quot;nofollow&quot;&gt;Rx&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/data/aa937723.aspx&quot; rel=&quot;nofollow&quot;&gt;EF4&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.silverlight.net/&quot; rel=&quot;nofollow&quot;&gt;Silverlight&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/netframework/aa663328.aspx&quot; rel=&quot;nofollow&quot;&gt;WWF&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.python.org/&quot; rel=&quot;nofollow&quot;&gt;Python&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The list grows nearly daily, and I'm constantly having to trim in order to keep it at around 5 items.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-20T15:55:39.740" />
  <row Id="5624" PostTypeId="1" CreationDate="2010-09-20T15:59:08.837" Score="8" ViewCount="425" Body="&lt;p&gt;What's the dumbest programming mistake related to hardware that you've ever done?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Reposted from a Slashdot question asked over ten years ago [I think]. It stuck in my mind because of how many anecdotes included some variant of &quot;... and when I came-to, all the lights were out.&quot;)&lt;/p&gt;&#xA;" OwnerUserId="17" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-03-12T17:41:07.963" LastActivityDate="2011-03-12T17:41:07.963" Title="What have you learned from your hardware programming mistakes? " Tags="&lt;hardware&gt;&lt;mistakes&gt;" AnswerCount="12" CommentCount="9" FavoriteCount="5" />
  <row Id="5625" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T16:00:33.210" Score="0" ViewCount="" Body="&lt;p&gt;I'm from Brazil and in all the jobs that I had most of the code was written in Portuguese. Variables, classes, methods etc. Most of the programmers and other people don't speak english.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is some code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function buscaFotosMateria($idMateria) {&#xA;&#xA;        global $conexao;&#xA;&#xA;        $consultas['Materia']['pegaFoto'] = &quot;SELECT * FROM sgc_materias_fotos&quot;;&#xA;&#xA;        $params = array();&#xA;        if($idMateria) {&#xA;            $consultas['Materia']['pegaFoto'] .= &quot; WHERE mfot_mate_iden = ?&quot;;&#xA;             $params[] = $idMateria;&#xA;        }&#xA;&#xA;        $conexao-&amp;gt;executaConsulta($consultas['Materia']['pegaFoto'], $params);&#xA;&#xA;        return  $conexao-&amp;gt;resulConsulta; // VARIÁVEL DE INSTÂNCIA DA CLASSE QUE ARMAZENA RESULTSET DA CONSULTA REALIZADA&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3054" LastActivityDate="2010-09-20T16:00:33.210" CommunityOwnedDate="2010-09-20T16:00:33.210" />
  <row Id="5626" PostTypeId="2" ParentId="1542" CreationDate="2010-09-20T16:01:16.657" Score="2" ViewCount="" Body="&lt;p&gt;I do not see this as a tension between Functional Programming and Object-Oriented Programming, but rather between FP and non-FP. I think Scala demonstrates that FP and OO are not incompatible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I see the issue to be &lt;em&gt;incidental complexity&lt;/em&gt;. Boilerplate, e.g. When you have first-class functions which inherently admit higher-order functions, many things change and you find that at least for the issues one faces at the &quot;programming in the small&quot; level, functional programming admits substantially more concise code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this leads one to attempt more sophisticated things and we're led to type-level programming, which is simply unfamiliar to many people (myself included) and that unfamiliarity is experienced as &quot;complexity&quot; or &quot;intrinsic difficulty&quot; of the language itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But once mastered, more conceptual patterns can be captured directly at the level of the language and we are freed from repeatedly writing trivial variations on a particular chunk of code (which is the classic OO notion of a pattern). Thus what once were patterns to be instantiated by repeatedly writing code for that pattern are now simply library components that can be reused directly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately, once one achieves a degree of mastery in this kind of programming, one can be much more productive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least this is my view as someone who is still more on the outside than the inside of the FP world, so I may be anywhere from somewhat to very far off the mark.&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-09-20T16:01:16.657" CommentCount="1" />
  <row Id="5627" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T16:06:01.043" Score="0" ViewCount="" Body="&lt;p&gt;I'm french and working in Germany, in research (physics). My codes are using mainly english words, but also french ones here and there, and even sometimes from other languages, especially when the word is shorter there for instance.&#xA;As for comments, I usually write them in french if they are supposed to be temporary, during the coding, and in english if they are supposed to stay permanently and help a possible reader. But sometimes temporary comments stay longer than expected, so there is language mixing there as well..&#xA;Anyway, probably I would uniformize all this if my codes were shared with other users/programmers. It really depends on the environment: in my research work &amp;amp; team, people exchange more their ideas, results, .. than their codes themselves - codes are sometimes specific to a project, sometimes not to the project to the programmer - this works up to a certain level of coding complexity, I heard of some codes (or &quot;families of codes&quot;) shared by dozens of labs and evolving since years, these are surely only in english.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T16:06:01.043" CommunityOwnedDate="2010-09-20T16:06:01.043" />
  <row Id="5628" PostTypeId="2" ParentId="5540" CreationDate="2010-09-20T16:08:08.997" Score="2" ViewCount="" Body="&lt;p&gt;Both, but it depends on how frequent you make your production. For many customized application, deployments are done manually and locally. On the other hand, developer will  constantly commit code, no matter how small or big the project is. In my opinion, I think it is more important to make sure the developer can use the version control correctly, hence make their life easier so they will have time to focus on the code rather than finding the way through the version control.&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-09-20T16:08:08.997" CommentCount="1" />
  <row Id="5630" PostTypeId="2" ParentId="5624" CreationDate="2010-09-20T16:11:29.383" Score="7" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Once upon a time in a land far, far away (Wisconsin) an undergraduate had the great good fortune to run a small campus computing lab with a PDP-11/45 with two massive (80 MB) disk drives with removable disk packs. One day one of those drives experienced a head crash, but the naive undergrad, who had never encountered such a thing before, simply thought there was a disk problem. He put in the backup disk pack. Now there were two destroyed disk packs.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The same lad, just a year or two before in a different university job once tripped over the power cord of a timesharing system while the system was in heavy use leading up to the end of the term. Happily, he escaped the mob with its pitchforks and torches.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;This same miscreant once reversed the arguments to the version 6 Unix &quot;backup&quot; command, causing the super block of the file system to be overwritten with a backup tape header.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Take your pick...&lt;/p&gt;&#xA;" OwnerUserId="1301" LastEditorUserId="1301" LastEditorDisplayName="" LastEditDate="2010-09-20T16:25:03.350" LastActivityDate="2010-09-20T16:25:03.350" CommentCount="4" />
  <row Id="5631" PostTypeId="2" ParentId="5624" CreationDate="2010-09-20T16:16:03.337" Score="3" ViewCount="" Body="&lt;p&gt;A few years ago I decided to do a small upgrade on my desktop and picked up a new power supply and video card. The video card required a power connector as well and that was the first time I've seen that. Not knowing any better, I put the video card and one of my harddrives on the same power rail. The drive lasted precisely one boot-up and then was fried till completely dead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Needless to say I've never made the same mistake again.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-20T16:16:03.337" CommentCount="2" />
  <row Id="5632" PostTypeId="2" ParentId="4693" CreationDate="2010-09-20T16:17:19.713" Score="2" ViewCount="" Body="&lt;p&gt;It takes a certain level of overconfidence to complete new software engineering tasks. This is probably the reason why there are fewer female software engineers. Dudes have less problem BSing themselves into thinking they can easily code up something. Software engineering is less like &quot;engineering&quot; and more like being a test pilot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can have a PhD in CS and be an algorithmic genius, but when working with some new buggy API everyone is going to go in blind and have to feel their way around.&lt;/p&gt;&#xA;" OwnerUserId="3064" LastActivityDate="2010-09-20T16:17:19.713" CommunityOwnedDate="2010-09-20T16:17:19.713" />
  <row Id="5633" PostTypeId="2" ParentId="5613" CreationDate="2010-09-20T16:18:32.380" Score="12" ViewCount="" Body="&lt;p&gt;Does automatic transmission or rain-sensing windshield wipers make us worse drivers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think coding without frameworks necessarily implies a better understanding of underlying systems. This is evidenced by employers having to ask simple coding questions at interviews just to make sure the candidate can pull a coherent method together.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately it's up to the developer to learn. Good ones do, bad ones don't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And in a similar vein, picking a framework just because it's there without actually analyzing its capabilities and pros/cons is also a sign of poor development practices.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-20T16:18:32.380" CommentCount="9" />
  <row Id="5634" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T16:22:49.360" Score="0" ViewCount="" Body="&lt;p&gt;I charge em a home cooked dinner, cups of tea and an evening of entertainment. I learn stuff about computers and it makes me feel warm inside to know that I am useful in some way.&lt;/p&gt;&#xA;" OwnerUserId="1724" LastActivityDate="2010-09-20T16:22:49.360" CommunityOwnedDate="2010-09-20T16:22:49.360" />
  <row Id="5635" PostTypeId="2" ParentId="4177" CreationDate="2010-09-20T16:24:40.213" Score="1" ViewCount="" Body="&lt;p&gt;For anything beyond a &quot;really simple&quot; Bash script, I usually reach for Ruby. Bash syntax is ugly and klunky, whereas Ruby is much simpler and more elegant.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-09-20T16:24:40.213" />
  <row Id="5636" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T16:27:19.397" Score="0" ViewCount="" Body="&lt;p&gt;For people who are neither family nor friends, I make an appointment and charge $40/hour.  For family I usually go over and stay for supper.  Luckily everyone in my family either knows enough tech that they don't call me, or is a really good cook.  Friends go on a case by case basis.  One of them is a car guy, so he gets all his tech support free and as quick as I can get to it, and in exchange he takes care of car trouble for me.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T16:27:19.397" CommunityOwnedDate="2010-09-20T16:27:19.397" />
  <row Id="5637" PostTypeId="2" ParentId="1106" CreationDate="2010-09-20T16:29:28.427" Score="0" ViewCount="" Body="&lt;p&gt;Not sure about &quot;good&quot;, but I say I &quot;know&quot; a language when it's not my knowledge of the language, but rather my understanding of the problem (or problem domain), that prevents me from implementing a piece of software to solve that problem.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-09-20T16:29:28.427" CommunityOwnedDate="2010-09-20T16:29:28.427" />
  <row Id="5638" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T16:31:25.053" Score="0" ViewCount="" Body="&lt;p&gt;I tell them &quot;I'm a programmer, not a hardware or computer fix it guy. It'd be like going to a Pediatrician and asking them to look at your feet to determine if you should get orthotics.&quot;&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T16:31:25.053" CommunityOwnedDate="2010-09-20T16:31:25.053" />
  <row Id="5639" PostTypeId="2" ParentId="678" CreationDate="2010-09-20T16:35:29.487" Score="2" ViewCount="" Body="&lt;p&gt;(Disclaimer: I do hardly any UI stuff, so I can't discuss TDD for UIs.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use TDD in pretty much everything I do, from trivial apps to entire SIP stacks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't use TDD in a legacy PHP website I took over. I find it painful not having tests. And I find it intensely annoying accidentally breaking parts of the site because I don't have a regression test suite telling me I broke something. The client doesn't have the budget for me to (a) write tests for the codebase and (b) in the process make the code testable in the first place, so I just put up with it.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-20T16:35:29.487" />
  <row Id="5640" PostTypeId="2" ParentId="35" CreationDate="2010-09-20T16:39:49.403" Score="3" ViewCount="" Body="&lt;p&gt;I once had a Pointy Haired Boss (PHB) ask me if I was a Pointy Haired Programmer (PHP).&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-20T16:39:49.403" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="2" />
  <row Id="5641" PostTypeId="2" ParentId="4127" CreationDate="2010-09-20T16:39:59.107" Score="3" ViewCount="" Body="&lt;p&gt;When I started with Mac programming, I just learned Objective-C and brushed up on C as-needed (such as when using C frameworks like Core Foundation). I did have a basic knowledge of C, but I got my feet wet right away with Objective-C.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-09-20T16:39:59.107" />
  <row Id="5642" PostTypeId="2" ParentId="5592" CreationDate="2010-09-20T16:41:05.017" Score="5" ViewCount="" Body="&lt;p&gt;There's two factors that I see.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One is that, when the software is the product, there's a very great tendency for sales to overpromise, perhaps in epic scale, and for the developers to be pressured to deliver.  In any case, software deadlines tend to be treated as harder by software vendors.  Software for internal use tends to have softer deadlines (although there are sometimes legal constraints), and death marches are somewhat less likely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another is that, when the software is the product, most of the higher-level execs will at least try to get a clue as to how it's done, and will in any case try to keep money flowing to the developers.  When software is developed for internal use, there's a tendency to try to spend as little as possible, without really paying attention to whether cuts and/or outsourcing is a good idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some companies that develop software for internal use that they use as a competitive advantage.  That can be the best of both worlds.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-20T16:41:05.017" />
  <row Id="5643" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T16:42:12.143" Score="0" ViewCount="" Body="&lt;p&gt;if I like them, and it seems like something I wouldn't hate, I'll say sure, but you owe me dinner. Done a number of things for my one friend, gotten free meal every time, and just had fun after, good excuse to hang out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, politely say no thanks, you can find the info on the internet, and if they keep bugging me, tell them I don't know how to fix it, I'm a Linux guy.&lt;/p&gt;&#xA;" OwnerUserId="2416" LastActivityDate="2010-09-20T16:42:12.143" CommunityOwnedDate="2010-09-20T16:42:12.143" />
  <row Id="5644" PostTypeId="2" ParentId="634" CreationDate="2010-09-20T16:44:32.920" Score="1" ViewCount="" Body="&lt;p&gt;In Objective-C, there're a couple key things I wouldn't mind seeing, including:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Built-in syntax for arrays and dictionaries, à la Python&lt;/li&gt;&#xA;&lt;li&gt;Better syntax for string concatenation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I recognize (and appreciate) that Objective-C is, syntactically, a rather small language, so I don't know if the addition of these features would &quot;ruin&quot; the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also like to see support for closures in Objective-C with a better syntax than blocks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Operator overloading in Objective-C would be nice, too, but again -- I understand that one of the design goals of Objective-C is to have a small syntax with a standard way of making method calls.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and namespaces -- I wish Objective-C had those, too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to get &lt;em&gt;really&lt;/em&gt; fancy, Lisp's macros are missing from just about every language but Lisp. :)&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-09-20T16:44:32.920" CommunityOwnedDate="2011-03-10T10:29:28.597" />
  <row Id="5645" PostTypeId="2" ParentId="1063" CreationDate="2010-09-20T16:45:38.517" Score="0" ViewCount="" Body="&lt;p&gt;Well, it's possible to write a program as a &lt;a href=&quot;http://shakespearelang.sourceforge.net/report/shakespeare/&quot; rel=&quot;nofollow&quot;&gt;Shakespearean dialog&lt;/a&gt;. The sky's the limit.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-09-20T16:45:38.517" />
  <row Id="5646" PostTypeId="2" ParentId="3732" CreationDate="2010-09-20T16:53:01.170" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Knowing with absolute certainty nobody understands what the hell I am talking about.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;...Except for programmers, but why the hell would I want to talk to you? You ramble about Java and Cobol...&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-20T16:53:01.170" CommunityOwnedDate="2010-09-20T16:53:01.170" />
  <row Id="5647" PostTypeId="2" ParentId="5597" CreationDate="2010-09-20T16:57:42.330" Score="1" ViewCount="" Body="&lt;p&gt;Many, many places look at the piece of paper first, and then the qualifications, or else require the paper with the qualifications.  Like others have advised, see what kind of jobs are availble to you without the degree, but do remember that it will limit your future choices too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, some places will also help pay for the degree, so if you can get a job without it, and they're willing to help pay for it, you can then have it for the future, as needed.&lt;/p&gt;&#xA;" OwnerUserId="88" LastActivityDate="2010-09-20T16:57:42.330" CommunityOwnedDate="2011-01-26T20:35:39.517" />
  <row Id="5648" PostTypeId="2" ParentId="5624" CreationDate="2010-09-20T17:00:08.817" Score="1" ViewCount="" Body="&lt;p&gt;I once spent a week trying to get video through a Token Ring network card. Yeah, and it would have worked too if it wasn't for those meddling kids!!&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-20T17:00:08.817" />
  <row Id="5649" PostTypeId="2" ParentId="634" CreationDate="2010-09-20T17:02:55.083" Score="1" ViewCount="" Body="&lt;p&gt;C#:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Checked exceptions (a la Java)&lt;/li&gt;&#xA;&lt;li&gt;Better, built-in, support for common design patterns&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(and I won't repeat some of the others already posted)&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-20T17:02:55.083" CommunityOwnedDate="2011-03-10T10:29:28.597" CommentCount="3" />
  <row Id="5650" PostTypeId="2" ParentId="5555" CreationDate="2010-09-20T17:04:51.037" Score="5" ViewCount="" Body="&lt;p&gt;Might it have as much to do with where you live as your profession?  Because I live in a very conservative area of our state which is also a high tech center.  I think I've known and worked with as many or more religious programmers as not.  In this area, the predominant religions are Christianity and LDS, and the proportions in the programmers (and scientists too) seems to correlate with the general population of the area.&lt;/p&gt;&#xA;" OwnerUserId="88" LastActivityDate="2010-09-20T17:04:51.037" CommentCount="7" />
  <row Id="5651" PostTypeId="2" ParentId="5555" CreationDate="2010-09-20T17:05:22.410" Score="1" ViewCount="" Body="&lt;p&gt;As the others who posted before me stated, programming is heavily reliant on the logical process and the scientific method. Religion, on the other hand, stems from a deep sense within oneself that there is a higher power in the world. From my viewpoint, it seems as if programming is more of a science whereas religion is more of an &quot;art&quot; in the sense that its existence and power come from the feelings that it evokes (whether you believe those feelings are induced by a deity or not). In the same way that finding magnificent programmers who are able to design UI's well is rare, the same is the case with religion - the reasons that people benefit from programming or religion depends on two very different parts of the brain, and most people tend to favor one side over the other.&lt;/p&gt;&#xA;" OwnerUserId="3075" LastActivityDate="2010-09-20T17:05:22.410" CommentCount="1" />
  <row Id="5652" PostTypeId="2" ParentId="5555" CreationDate="2010-09-20T17:08:54.883" Score="6" ViewCount="" Body="&lt;p&gt;Just to present the alternative point of view:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe I'm just from a bit of a different background, but the stuff that people are reporting in here don't fit my experience at all.  In college, everyone in my programming classes was religious.  Where I work, the hiring standards are extremely high--we only accept people who really know their code--and we've got people from all over the Christianity spectrum, plus one Jew and at two Hindus.  I think there's a grand total of one atheist here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The studies a few people have quoted linking atheism to high IQ and high levels of education were hardly from unbiased sources.  Heck, one of them is from Steven Jay Gould's personal site!  Have a look at &lt;a href=&quot;http://www.guardian.co.uk/commentisfree/belief/2009/oct/05/atheist-religion-education-demographics-class&quot; rel=&quot;nofollow&quot;&gt;this post&lt;/a&gt; for a very interesting counterpoint that you don't hear too much about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Historically, the great scientists that come up with revolutionary new ideas have been almost exclusively theists, including Charles Babbage.  And we all know how inclined programmers are towards religious modes of thinking &lt;a href=&quot;http://programmers.stackexchange.com/questions/tagged/holy-war&quot;&gt;when it comes to languages and language features.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;It is true, that a little philosophy inclineth man's mind to atheism, but depth in philosophy bringeth men's minds about to religion.&quot;  - Francis Bacon&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-20T17:08:54.883" CommentCount="3" />
  <row Id="5654" PostTypeId="2" ParentId="1768" CreationDate="2010-09-20T17:15:05.183" Score="0" ViewCount="" Body="&lt;p&gt;For years I worked in NC manufacturing. The language of choice at that time was FORTRAN. I used FORTRAN for system independent code, C &amp;amp; C++ for system dependent / lower level code, and BASIC for quick fix / down and dirty local system code. Currently, I work with windows exclusively, so FORTRAN and C are out. Now most of my programming is in ASPX, VB.NET, C#.NET and SQL for online sales.&#xA;&lt;BR&gt;&#xA;All this to say that the language should be selected for the application.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-09-20T17:15:05.183" />
  <row Id="5655" PostTypeId="2" ParentId="180" CreationDate="2010-09-20T17:17:19.670" Score="0" ViewCount="" Body="&lt;p&gt;I prefer just &lt;code&gt;&quot;Lo!&quot;&lt;/code&gt; in ode to the &lt;a href=&quot;http://www.cs.ucla.edu/~lk/LK/Inet/1stmesg.html&quot; rel=&quot;nofollow&quot;&gt;first ARPANET message&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(unrelated &lt;code&gt;l-shift-o&lt;/code&gt; the shorthand way to type &lt;code&gt;LOAD&lt;/code&gt;... brings me back to the days I wrote my first program on a C=64, which was needlessly complex because I used &lt;code&gt;POKE&lt;/code&gt; commands instead of &lt;code&gt;PRINT&lt;/code&gt;.) &lt;/p&gt;&#xA;" OwnerUserId="2449" LastEditorUserId="2449" LastEditorDisplayName="" LastEditDate="2010-09-20T17:32:40.450" LastActivityDate="2010-09-20T17:32:40.450" />
  <row Id="5656" PostTypeId="2" ParentId="2227" CreationDate="2010-09-20T17:24:55.537" Score="0" ViewCount="" Body="&lt;p&gt;Know you environment you developing on (not deploying to), specifically the OS you are working with. OS shortcuts, command line tricks etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also I would include going through the &lt;a href=&quot;http://www.howtogeek.com/&quot;&gt;How-to-Geek&lt;/a&gt; website. Yes, there are some simplistic things that most programmers know, but I guarantee that there is at least one tip listed there that will improve your day-to-day development.&lt;/p&gt;&#xA;" OwnerUserId="2545" LastActivityDate="2010-09-20T17:24:55.537" />
  <row Id="5657" PostTypeId="2" ParentId="634" CreationDate="2010-09-20T17:36:33.813" Score="1" ViewCount="" Body="&lt;p&gt;JavaScript&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;string templates &lt;/li&gt;&#xA;&lt;li&gt;implicit return of the last value in a function &lt;/li&gt;&#xA;&lt;li&gt;tail call optimization&lt;/li&gt;&#xA;&lt;li&gt;defmacro/define-syntax or similar (eval doesn't quite do it, sadly)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;PHP&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;everything from above except string templates (which it has)&lt;/li&gt;&#xA;&lt;li&gt;a REPL&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;PLT Racket&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;C literals (actually, pretty much every non-C language could use this feature, so I'll say no more about it)&lt;/li&gt;&#xA;&lt;li&gt;Interpreted web server (so that you could evaluate expressions directly on the running environment instead of changing it, then relaunching the server)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Erlang&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Better way to differentiate variables from symbols than capitalization&lt;/li&gt;&#xA;&lt;li&gt;HTML/XML literals instead of a custom Erlang markup language&lt;/li&gt;&#xA;&lt;li&gt;defmacro/define-syntax&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;ELisp&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;namespaces&lt;/li&gt;&#xA;&lt;li&gt;hygenic macros (that's it. The lack of closures has yet to bite me in the ass in this particular language, YMMV.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Common Lisp&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;included batteries&lt;/li&gt;&#xA;&lt;li&gt;better function naming conventions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Python&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Less focus on OO programming, more functional programming support (things like a functional sort, and fewer procedures/methods that modify their data in place, or at least a consistent naming convention to differentiate them)&lt;/li&gt;&#xA;&lt;li&gt;better concurrency support&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Ruby&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;more consistant block syntax (you can do &lt;code&gt;aList.each{ ... }&lt;/code&gt;, but usually you have to use the slightly more verbose &lt;code&gt;do ... end&lt;/code&gt;. Nothing against the latter, but I kinda feel a language should pick one)&lt;/li&gt;&#xA;&lt;li&gt;better concurrency support&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Java&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;less f***ing words&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Haskell&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;less rampant syntactic sugar&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2011-03-26T16:19:00.730" LastActivityDate="2011-03-26T16:19:00.730" CommunityOwnedDate="2011-03-10T10:29:28.597" CommentCount="9" />
  <row Id="5658" PostTypeId="2" ParentId="2227" CreationDate="2010-09-20T17:37:17.447" Score="3" ViewCount="" Body="&lt;p&gt;Every programmer should know enough about computer repair to fix their own machine if it breaks.  These are valuable skills in smaller companies where everyone has to wear multiple hats, and especially valuable if you are in business for yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, it may be advisable in some scenarios to &lt;a href=&quot;http://programmers.stackexchange.com/questions/5384/how-do-you-deal-with-people-who-ask-you-to-fix-their-computer&quot;&gt;downplay&lt;/a&gt; that you possess such knowledge.  However, in some instances it could turn into a little extra income on the side.&lt;/p&gt;&#xA;" OwnerUserId="95" LastActivityDate="2010-09-20T17:37:17.447" CommentCount="3" />
  <row Id="5659" PostTypeId="2" ParentId="959" CreationDate="2010-09-20T17:40:00.937" Score="1" ViewCount="" Body="&lt;p&gt;Natural intelligence is a monumental kludge created over hundreds of millions of years of evolution.  It works on a finite basis:  we have only limited (although very large) numbers of neurons, and we more or less kinda know how they sort of work, so we can theoretically create computers that can surpass that level of processing, and those computers can be intelligent.  We can make very powerful computers now, and our abilities continue to increase, so even with our current lack of understanding the chemical complexity a computer as powerful as a brain looks distinctly possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We don't even have to aim at a human brain.  The really difficult AI problems are generally those that can be easily solved by a cat, and the human extensions onto cat intelligence seem easier in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once we have a sufficiently powerful computer, we really don't know how to program intelligence.  We can go for feeding things into it and trying to end up with something intelligent, which is essentially how natural intelligence developed.  This can be done far faster than natural development, which is a good thing because that took hundreds of millions of years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, once we have an artificial intelligence, we won't know how we did it, or how it works.  I'm positive intelligence is far too complex to be understood.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-20T17:40:00.937" CommunityOwnedDate="2011-04-19T01:26:27.260" CommentCount="1" />
  <row Id="5660" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T17:43:25.423" Score="0" ViewCount="" Body="&lt;p&gt;(True incident.. but edited as required)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Person X: hey there mate, listen my laptop/computer is kind of slow and I've still got 2 GB of Hard Disk Space left. dunno know what the problem is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: Haven't I already told you that running Game while Burning a CD and downloading  at the sometime is a little too much for a Pentium IV processor with 256 MB of RAM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Person X:C'mon man, nothing you can't fix right? do that fragment thing again or something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: Well there is one thing we could do, how about a hardware upgrade, first lets get you a good mobo and a processor with lots of RAM it'll only cost you around $1000 its notl like you're buying a new computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Person X:Well um..hmmm...I just remembered.. I did'nt empty my recycle bin. Silly me . See ya .&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me : Bye. Good luck with that.&lt;/p&gt;&#xA;" OwnerUserId="985" LastActivityDate="2010-09-20T17:43:25.423" CommunityOwnedDate="2010-09-20T17:43:25.423" />
  <row Id="5661" PostTypeId="2" ParentId="733" CreationDate="2010-09-20T17:52:14.407" Score="0" ViewCount="" Body="&lt;p&gt;CAD software requires a grasp of geometry.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-20T17:52:14.407" />
  <row Id="5662" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T17:53:31.597" Score="0" ViewCount="" Body="&lt;p&gt;I tell them it costs €50/hour or €200 flat. People should not expect to use your skills for free. At least not on a regular basis.&lt;/p&gt;&#xA;" OwnerUserId="3087" LastActivityDate="2010-09-20T17:53:31.597" CommunityOwnedDate="2010-09-20T17:53:31.597" />
  <row Id="5663" PostTypeId="2" ParentId="5466" CreationDate="2010-09-20T17:58:26.577" Score="2" ViewCount="" Body="&lt;p&gt;A PM really needs to know what the project will do, which likely requires some technical background but not developing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that, it's a matter of having respect for the field and the developers, more than actual knowledge.  A PM needs to take the developers seriously, what they need, what they can do, what they can't, how much time will take.  A PM who has some idea what he or she doesn't know can be very effective.  A PM who thinks he or she has all the answers is bad.  This can be an ex-developer who believes he or she knows everything and doesn't, or one who never developed and doesn't think he or she needs any special technical knowledge to manage.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-20T17:58:26.577" />
  <row Id="5664" PostTypeId="2" ParentId="3684" CreationDate="2010-09-20T17:58:56.403" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://whatis.techtarget.com/definition/0,,sid9_gci826135,00.html&quot; rel=&quot;nofollow&quot;&gt;http://whatis.techtarget.com/definition/0,,sid9_gci826135,00.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.cheat-sheets.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.cheat-sheets.org/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.addedbytes.com/cheat-sheets/&quot; rel=&quot;nofollow&quot;&gt;http://www.addedbytes.com/cheat-sheets/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1525" LastActivityDate="2010-09-20T17:58:56.403" />
  <row Id="5666" PostTypeId="2" ParentId="5624" CreationDate="2010-09-20T18:03:01.387" Score="4" ViewCount="" Body="&lt;p&gt;I don't think i've ever done anything too bad, apart from one time when I was about 15 when for reasons I can't remember, I wondered what would happen if I flipped the tiny little voltage switch (the one that should have been labelled 'Self-Destruct') on the back of my dad's PC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm still afraid of PSU's to this day. Whenever I assemble a new PC, the first time I switch it on it it's always done from a safe place under my workbench.&lt;/p&gt;&#xA;" OwnerUserId="562" LastActivityDate="2010-09-20T18:03:01.387" CommentCount="1" />
  <row Id="5667" PostTypeId="2" ParentId="5494" CreationDate="2010-09-20T18:13:33.437" Score="2" ViewCount="" Body="&lt;p&gt;If it is a large application, there should be natural areas of division in your business logic (software tiers, if you will) which can go in their own DLL's.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would be nice if the core website functionality could go into a single DLL.  It eases deployment concerns, and is a natural unit anyway. One DLL per page seems excessively granular.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-09-20T18:13:33.437" CommentCount="1" />
  <row Id="5668" PostTypeId="2" ParentId="1768" CreationDate="2010-09-20T18:14:31.773" Score="1" ViewCount="" Body="&lt;p&gt;Trying to pick a single best language is almost pointless. Almost any reasonable implementation will use a bare minimum of two languages: SQL for the database, and something else for the &quot;front end&quot;. I'm guessing that your interest is primarily in what language to use for the front end, since you can &lt;em&gt;almost&lt;/em&gt; take SQL for granted on the database side.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, you haven't given enough information to provide a meaningful answer to that. First of all, you have to decide on a division of labor between the front-end and back-end. You could basically write all the logic for the application in SQL stored procedures, so the front-end is basically doing little more than formatting output for display and collecting input to select which shared procedures to run, and supply parameters to those shared procedures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At more or less the opposite extreme, you can basically treat your database as little more than a dumb container for raw data, and put all the intelligence into the front-end. In this case, you'll be doing enough more in the front-end language that its choice will make a much bigger difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least IMO, both extremes are poor choices. SQL works well for queries and triggers, but quite frankly rather poorly for a lot of other logic -- it was designed for queries, and that's what it's still really the best at. Contrariwise, keeping the database completely &quot;dumb&quot;, with all the logic in the front-end makes it difficult to keep the database consistent at all times. You end up having to build full transaction logic into nearly everything you do in the front-end, which is difficult and error prone at best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot will also depend on the type of access you need to support. Few languages are equally suited to producing desktop and web-based applications. For desktop applications, you need to consider all the usual things like whether you care about portability or not, and if so to what platforms. A bit also depends on how &quot;cool&quot; you want it to look on each platform. Just for example, a Java front-end can be pretty portable, but looks somewhat foreign and clumsy on each platform. If you &lt;em&gt;really&lt;/em&gt; want your application to look &quot;native&quot; on each platform, that can restrict your choices quite a bit. You've said Windows is the priority, and Mac/Linux secondary, but that doesn't really say &lt;em&gt;how&lt;/em&gt; secondary they are. In some cases, &quot;secondary&quot; means means &quot;it'd be nice, but we don't really need it or care too much if we can never support it&quot;, but in other cases it means &quot;we don't need it right away, but definitely need to at least leave the door open to supporting it eventually.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a web application, you &lt;em&gt;probably&lt;/em&gt; need to increase the minimum number of languages from two languages to three: SQL for the database, something like Javascript, Silverlight or Java for the client-side, and a third language in the middle. Java is a candidate for the middle tier, which keeps you to two languages. Personally, I would &lt;em&gt;not&lt;/em&gt; choose Java for the client side for Windows though -- a fair number of clients don't want to deal with installing the JVM, and most people find Java-based UIs slow, clumsy and foreign. OTOH, if you want to support (for example) the Android, Java goes from being a poor choice to being not only a good choice, but nearly the only choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While the client-side choice doesn't absolutely govern the middle-tier choice, it can certainly have a substantial effect. If you're using Java for the client-side, using it for the middle tier becomes almost a no-brainer. Likewise, if you're using Silverlight for the front-end, a .NET language for the middle tier is a pretty obvious choice. OTOH, you might easily want (for example) to run Linux on your servers even though your clients are (almost) entirely on Windows. Mono keeps .NET as an option in that case, but (quite frankly) it's only a really obvious choice for running on Windows; on Linux it's more something you &lt;em&gt;could&lt;/em&gt; do than the obvious choice.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-09-20T18:14:31.773" />
  <row Id="5669" PostTypeId="2" ParentId="5613" CreationDate="2010-09-20T18:14:44.627" Score="6" ViewCount="" Body="&lt;p&gt;I think the problem is that new programmers are starting off at higher and higher levels of abstraction, and thus dont get exposed to the bits and bytes of things 'under the hood'.  So they arent learning some of the really basic coding fundamentals that would be the first things learned in years past.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I shake my head every time on here when an obviously new programmer is asking something   about, say, storing some data, and everyone immediately tells them to use an ORM tool.  &lt;strong&gt;No, no, no, no, no... they need to learn how to do it themselves first.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-20T18:14:44.627" CommentCount="8" />
  <row Id="5670" PostTypeId="2" ParentId="634" CreationDate="2010-09-20T18:18:05.793" Score="3" ViewCount="" Body="&lt;p&gt;I have always wanted to be able to declare local types and local functions in C#. If I need a helper class to structure data for the duration of a method call, there's no reason to dirty the namespace of the method's enclosing class.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also love to see something like SML's signatures/structures/functors in .net. They make code packaging and encapsulation much cleaner, especially when multiple types are required in the interface to a module.&lt;/p&gt;&#xA;" OwnerUserId="12" LastActivityDate="2010-09-20T18:18:05.793" CommunityOwnedDate="2011-03-10T10:29:28.597" CommentCount="5" />
  <row Id="5671" PostTypeId="2" ParentId="5494" CreationDate="2010-09-20T18:18:24.817" Score="1" ViewCount="" Body="&lt;p&gt;apply the concept of &quot;separation of concerns&quot; if possible, meaning the businesslogic could be in dll, data access layer another and ui for another ... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;this might come in handy if you happen to lose the source code ... when decompiling the dll might be easier.&lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-09-20T18:18:24.817" />
  <row Id="5672" PostTypeId="2" ParentId="5613" CreationDate="2010-09-20T18:28:39.073" Score="14" ViewCount="" Body="&lt;p&gt;Abstraction is a key concept of computer programming and frameworks help programmers achieve this. This is a good thing. I doubt many us would like to develop complex systems in assembly language! The problem comes, I think, when programmers have little idea of what the abstraction layer is masking. In other words, you need to have some idea of what goes on under the hood, even if you don't directly interact or interface with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I remember developing some of the first dynamic websites back in the mid 90's, using C and &lt;a href=&quot;http://en.wikipedia.org/wiki/Common_Gateway_Interface&quot; rel=&quot;nofollow&quot;&gt;CGI&lt;/a&gt; (at a time when the majority of websites were still static HTML). There weren't really any mature server-side scripting languages (like PHP or ASP) and very few libraries, so you had to write out the entire HTTP response stream to the server with every page. Parsing GET and POST parameters required writing your own library. It was tedious, slow, hard-work and very error prone. I don't miss it one bit!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I also feel frameworks like ASP.NET web-forms abstract the whole stateless nature of the web to a point where many new web developers have little clue of what actually is going on under the hood. This leads to inefficient, bloated code that performs poorly because the developer is plumbing components together using a &quot;drag'n'drop&quot; methodology without realising what is going on at the HTTP level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I believe frameworks are essential for developing high-level software, but they don't absolve developers of having some understanding of what is being abstracted away. Yes, frameworks can make you dumb, but only if you fail to understand them.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-20T18:28:39.073" />
  <row Id="5673" PostTypeId="2" ParentId="5624" CreationDate="2010-09-20T18:30:12.503" Score="12" ViewCount="" Body="&lt;p&gt;1st year out of school, I was testing the automated packaging machine I had programmed.&#xA;Part of the machine released trays from a stack one at a time, by means of two pairs of grippers on the ends of penumatic cylinders.  The upper grippers would extend, grabbing tray 1, then the lower ones would retract, dropping tray 0 onto the belt below. Then the lower grippers close, the upper ones open, and the rest of the trays would shift down.  It was a literal &lt;code&gt;tray = stack.shift()&lt;/code&gt;.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It wasn't working quite right, and I suspected that one of the photosensors that detected the presence of trays was not working correctly.  So, for reasons that are still not clear to me, I waved my finger in front of it...   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Luckilly, the plastic trays had some give, so instead of a crushed digit, all I ended up with was a deep bruise, and a much more cautious approach to debugging powered machinery.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-20T18:30:12.503" CommentCount="1" />
  <row Id="5674" PostTypeId="2" ParentId="5555" CreationDate="2010-09-20T18:32:52.110" Score="4" ViewCount="" Body="&lt;p&gt;Programmers are lazy. Atheism is the best excuse not to get up early on a Sunday and waste time in a church.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers are impatient. All this mumbo jumbo and in the end the answer is just &quot;God did it!&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A programmer's hubris doesn't allow the thought about a higher being than himself.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris.&quot; -- Larry Wall, Programming Perl (1st edition), well known Christian. ;-)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3091" LastActivityDate="2010-09-20T18:32:52.110" />
  <row Id="5675" PostTypeId="2" ParentId="5490" CreationDate="2010-09-20T18:36:15.923" Score="1" ViewCount="" Body="&lt;p&gt;One of the big companies working in medical records, &lt;a href=&quot;http://en.wikipedia.org/wiki/Epic_Systems_Corporation&quot; rel=&quot;nofollow&quot;&gt;Epic Systems&lt;/a&gt;, still uses MUMPS in their applications. &lt;/p&gt;&#xA;" OwnerUserId="3096" LastActivityDate="2010-09-20T18:36:15.923" />
  <row Id="5676" PostTypeId="2" ParentId="5613" CreationDate="2010-09-20T18:37:40.447" Score="2" ViewCount="" Body="&lt;p&gt;Frameworks are great. But you have to know what’s under the hood. So the problem is that programmers rely too much on the frameworks, without having enough knowledge of the underlying system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A somehow outdatet example is MFC: a programmer could save a lot of time by using MFC instead of the Windows API, but without knowledge of the API (which means having a background of real work with the raw API) they would be often stuck. It almost never happens, because typical MFC programmer had Windows API knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, with Windows Forms on .NET, thanks to the better encapsulation and better object model, a programmer can almost ignore that he is using just another Windows API wrapper. So there are less chances of being stuck, but when it happens, it may hurt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately time to market is always shorter and projects are increasingly complex, so programmers don’t have the time to go deep. That’s the sad software industry...&lt;/p&gt;&#xA;" OwnerUserId="235" LastEditorUserId="235" LastEditorDisplayName="" LastEditDate="2010-09-20T21:16:23.103" LastActivityDate="2010-09-20T21:16:23.103" />
  <row Id="5678" PostTypeId="2" ParentId="5624" CreationDate="2010-09-20T18:41:55.383" Score="4" ViewCount="" Body="&lt;p&gt;When we were students (long time ago), we bought a PC (80286, 40MB Hdd, VGA color monitor, DOS 4). Which was great because we could do useful things (for study, and of course some games). But one day (waranty period was already over) we heard a loud bang and the PC was silent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I opened the case and saw a big black spot on the motherboard and a lose screw. (Which meant we were screwed). Luckily only a few cupper tracks where broken. And no components visibly damaged. So I used the soldering iron to replace the print tracks with wire. Put the case together, and to my surprise, the PC came back to life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We had a lot of PC's following this one, but we kept the phoenix pc and it still works. Its probably the only working PC with a 5 1/2 inch floppy.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-20T18:41:55.383" CommentCount="4" />
  <row Id="5680" PostTypeId="2" ParentId="5597" CreationDate="2010-09-20T18:49:06.693" Score="6" ViewCount="" Body="&lt;p&gt;Short answer: no, it is not worth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;University will give you a strong background in many fields, most of them only slightly related to computer science. You will have a lot of physics and math background. This is always a good thing. However university is time and money consuming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started to work as a programmer just after high school. I was self-thought in programming but I was enough expert to be immediately productive. Some coworkers with a degree were quite behind me. I eventually got a degree in my spare time, but I never had really the chance to apply in my work anything I learned at university.&lt;/p&gt;&#xA;" OwnerUserId="235" LastEditorUserId="235" LastEditorDisplayName="" LastEditDate="2010-09-20T21:18:30.263" LastActivityDate="2010-09-20T21:18:30.263" CommunityOwnedDate="2011-01-26T20:35:39.517" />
  <row Id="5681" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T18:51:36.517" Score="0" ViewCount="" Body="&lt;p&gt;Swede here. I believe in Sweden most code is written in English simply since that's the way most programmers learn to program. All literature, all samples etc used in teaching (and on the web) is in English so it's natural to code in English. And I believe that's the way it should be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is one area though where it becomes problematic and that's when you start applying Domain Driven Development and want to follow the pattern of Ubiquitous Language. Now suddenly you want your code to be in English but at the same time you want your team and the business representatives to use the same terminology and although there is a lot of Swenglish in corporate Sweden you get an awfully uggly conversation when people start to mix the two languages.&lt;/p&gt;&#xA;" OwnerUserId="2942" LastActivityDate="2010-09-20T18:51:36.517" CommunityOwnedDate="2010-09-20T18:51:36.517" />
  <row Id="5682" PostTypeId="2" ParentId="4879" CreationDate="2010-09-20T19:00:28.213" Score="0" ViewCount="" Body="&lt;p&gt;(Copying my answer from SO...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As @Thomas-Mueller said back on SO, type less, not faster. In addition, try to follow DRY (Don't repeat yourself). I used to hear people raving about &quot;cookie cutter code&quot;, where you could supposedly get a lot done quickly by cutting and pasting large amounts of code. The reason that's a problem is if there's a need to change the original code, now you have to change N copies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers are like noisy channels. If they have to make 10 changes to the code, if they're really good, they'll get 8 of them right. The ones they don't get right are &lt;em&gt;new bugs&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's why short code and DRY matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's also why compiler languages are better than assembler, and why domain specific languages (DSL) are better yet, &lt;em&gt;when they apply&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-09-20T19:00:28.213" />
  <row Id="5683" PostTypeId="2" ParentId="5384" CreationDate="2010-09-20T19:02:12.030" Score="8" ViewCount="" Body="&lt;p&gt;I ask them to clean my house. No one has accepted yet.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-20T19:02:12.030" CommunityOwnedDate="2010-09-20T19:02:12.030" />
  <row Id="5684" PostTypeId="1" CreationDate="2010-09-20T19:14:41.307" Score="5" ViewCount="190" Body="&lt;p&gt;It can be a specific software or a technique to express roadmaps on another medium (sheet of paper, word document, ...).&lt;/p&gt;&#xA;" OwnerUserId="3108" LastActivityDate="2010-09-20T22:06:36.100" Title="What tool do you use for creating software development roadmaps?" Tags="&lt;tools&gt;&lt;development-process&gt;&lt;software-craftsmanship&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="5685" PostTypeId="2" ParentId="5684" CreationDate="2010-09-20T19:19:12.530" Score="1" ViewCount="" Body="&lt;p&gt;I use Excel. Also for backlogs.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-20T19:19:12.530" />
  <row Id="5686" PostTypeId="2" ParentId="5592" CreationDate="2010-09-20T19:19:24.603" Score="0" ViewCount="" Body="&lt;p&gt;Company´s profile is the measure for your choice, not kind of work at company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In common world, even when software is the product that makes money, they don´t cares about your cost center (yeah, you always a cost center number). The goals are sales amount, sales count, revenue, profit, cost and a infinite indicators based on commercial process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You realise that when you raise your goals and they offer you a kind of geek/tech cadget insted a real promotion. &lt;/p&gt;&#xA;" OwnerUserId="3082" LastActivityDate="2010-09-20T19:19:24.603" />
  <row Id="5687" PostTypeId="2" ParentId="5624" CreationDate="2010-09-20T19:23:44.267" Score="4" ViewCount="" Body="&lt;p&gt;A friend had one of the first CD burners ever made (a 4x2x2 HP something-or-other), and he gave it to me. I tried putting it in my PC, but the PC wouldn't power on with it connected. So I had the brilliant idea of turning on the PC &lt;em&gt;first&lt;/em&gt;, and then plugging in the CD-RW power. Very soon, magic smoke started pouring out of the video card (of all things).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I threw away the CD burner, but kept the video card -- the one IC in the middle is bubbled up like crazy and looks like an abstract sculpture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even funnier was the fact that my family was watching TV 4 feet away from all this, and they didn't notice a thing. :)&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-09-20T19:23:44.267" />
  <row Id="5688" PostTypeId="2" ParentId="5592" CreationDate="2010-09-20T19:28:53.057" Score="2" ViewCount="" Body="&lt;p&gt;Here's an alternate perspective: If you provide internal services, you don't have to deal with the vagaries of marketing and product managers, focus groups, &quot;us vs. our competitors feature matrices&quot; and other technically baseless factors. E.g., QA contributes directly to product success, but its &quot;customers&quot; are the product developers. They're all rational technologists, right?&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-09-20T19:28:53.057" />
  <row Id="5689" PostTypeId="2" ParentId="634" CreationDate="2010-09-20T19:43:50.140" Score="1" ViewCount="" Body="&lt;p&gt;Delphi, 64 bit code.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-20T19:43:50.140" CommunityOwnedDate="2011-03-10T10:29:28.597" CommentCount="1" />
  <row Id="5690" PostTypeId="2" ParentId="5684" CreationDate="2010-09-20T19:45:10.467" Score="0" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.atlassian.com/software/jira/&quot; rel=&quot;nofollow&quot;&gt;JIRA&lt;/a&gt;.  It has a project roadmap view for each project, which lists bugs and features against upcoming releases and indicates how much progress has been made.  Individual users can view their own personal roadmap that consists only of items assigned to them.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-20T19:45:10.467" CommentCount="1" />
  <row Id="5691" PostTypeId="2" ParentId="4177" CreationDate="2010-09-20T19:48:54.947" Score="2" ViewCount="" Body="&lt;p&gt;Ruby, the best.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T19:48:54.947" />
  <row Id="5692" PostTypeId="2" ParentId="5490" CreationDate="2010-09-20T19:51:56.657" Score="5" ViewCount="" Body="&lt;p&gt;Intersystems sell a MUMPS derivative : &lt;a href=&quot;http://www.intersystems.com&quot; rel=&quot;nofollow&quot;&gt;http://www.intersystems.com&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of the most interesting people in MUMPS are probably here : &lt;a href=&quot;http://www.outoftheslipstream.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.outoftheslipstream.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started blogging about Cache (the MUMPS derivative) a couple of years ago : &lt;a href=&quot;http://cachetastic.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;http://cachetastic.blogspot.com/&lt;/a&gt; (but then changed jobs)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having been out of that world for a couple of years, my thinking is that the NoSQL movement is probably the best and worst thing to happen to MUMPS. Ultimately it's likely to both vindicate and kill it. Because somebody, at some point, is going to reinvent MUMPS's database and query structure almost identically, but with no connection to the MUMPS tradition. Then people will rave about this new storage system. But no-one will ever choose a MUMPS derivative again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, a month or two ago, I was talking with a colleague about using redis to cache a look-up of something in our Django application. We had a large number of records addressed by a triple of three keys, and needed to quickly get subsets matching one or two of these keys (but different combinations at different times).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is the kind of thing that MUMPS eats for breakfast. But we were finding it hard to squash into redis's key,val pair structure. Even with dictionaries. (Same would be true of memcached etc.) For the first time in my life, I found myself actually regretting that I couldn't write this module in Cache ObjectScript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some more thoughts on Cache here :&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good : &lt;a href=&quot;http://cachetastic.blogspot.com/2008/07/ok-after-mentioning-some-bad-things.html&quot; rel=&quot;nofollow&quot;&gt;http://cachetastic.blogspot.com/2008/07/ok-after-mentioning-some-bad-things.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad : &lt;a href=&quot;http://cachetastic.blogspot.com/2008/07/some-mumps-dissing-and-more-positive.html&quot; rel=&quot;nofollow&quot;&gt;http://cachetastic.blogspot.com/2008/07/some-mumps-dissing-and-more-positive.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3111" LastEditorUserId="3111" LastEditorDisplayName="" LastEditDate="2010-09-20T20:15:09.817" LastActivityDate="2010-09-20T20:15:09.817" />
  <row Id="5693" PostTypeId="2" ParentId="5490" CreationDate="2010-09-20T19:58:01.050" Score="1" ViewCount="" Body="&lt;p&gt;Well, I have never ever heard of anyone using it, in any context or for any reason, except for on The Daily WTF.  What conclusions can be drawn from this are up to the reader. ;)&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-20T19:58:01.050" />
  <row Id="5694" PostTypeId="2" ParentId="4177" CreationDate="2010-09-20T20:05:16.233" Score="1" ViewCount="" Body="&lt;p&gt;Perl or excel+VBA.&lt;/p&gt;&#xA;" OwnerUserId="1525" LastActivityDate="2010-09-20T20:05:16.233" />
  <row Id="5695" PostTypeId="2" ParentId="5684" CreationDate="2010-09-20T20:15:53.640" Score="0" ViewCount="" Body="&lt;p&gt;Whiteboards, then photos of whiteboards, then a chart tool like Visio if things need to be pretty.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-20T20:15:53.640" />
  <row Id="5696" PostTypeId="2" ParentId="5613" CreationDate="2010-09-20T20:28:27.490" Score="13" ViewCount="" Body="&lt;p&gt;This is an argument that pops up regularly, in many fields and in many forms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The general form of this argument is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does having [x:tool/technology] make people worse at [y:function affected by x]?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Does CAD software make for worse engineers?&lt;/li&gt;&#xA;&lt;li&gt;Do calculators in high school make students worse at math?&lt;/li&gt;&#xA;&lt;li&gt;Does social software stunt people's in-person social skills?&lt;/li&gt;&#xA;&lt;li&gt;Does accounting software produce worse accountants?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;From memory, the ubiquitous answer is almost always: not really. You'll always have people that are good and bad at doing [y] but now they're just bad at a different facet of the skill. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A deeper understanding of the fundamentals with any job is going to help, no matter what you do - even jobs that are considered 'remedial'. Knowledge always helps.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-20T20:28:27.490" CommentCount="1" />
  <row Id="5697" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T20:29:06.070" Score="0" ViewCount="" Body="&lt;p&gt;Hola soy de Argentina y siempre usamos variables y comentarios en Castellano.&#xA;En algunos casos los clientes solicitan la documentación en ingles y solo en estos casos se usa otro idioma.&#xA;Saludos!&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T20:29:06.070" CommunityOwnedDate="2010-09-20T20:29:06.070" />
  <row Id="5698" PostTypeId="2" ParentId="5555" CreationDate="2010-09-20T20:31:51.857" Score="5" ViewCount="" Body="&lt;p&gt;It all depends.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-20T20:31:51.857" CommentCount="3" />
  <row Id="5699" PostTypeId="2" ParentId="4177" CreationDate="2010-09-20T20:33:44.663" Score="0" ViewCount="" Body="&lt;p&gt;Groovy - can use any of java libraries + Windows ActiveX integration + (xml) builders + ... = a great scripting language for developing prototypes&lt;/p&gt;&#xA;" OwnerUserId="2648" LastActivityDate="2010-09-20T20:33:44.663" />
  <row Id="5700" PostTypeId="2" ParentId="5564" CreationDate="2010-09-20T20:37:33.953" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What is the best toolset for living a&#xA;  fullfilling life for suburban&#xA;  professionals?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Need a convenient, functional toolset&#xA;  for living my life.  I'm thinking of a&#xA;  moral code + religion + culture which&#xA;  will help me life happier and better.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Ok I couldn't help myself.  You're asking for religion and any answer you get will be based more on personal preferences than one being actually &quot;better&quot; than another.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, go with Ruby.  It's free, fully functional and comes with a lot of stuff, like Rails and an active community.  And, you get to look down on everyone else as a bonus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My background is in Java and .NET, but if I had to start from scratch at this moment, I'd probably learn Ruby.&lt;/p&gt;&#xA;" OwnerUserId="311" LastActivityDate="2010-09-20T20:37:33.953" />
  <row Id="5701" PostTypeId="2" ParentId="1106" CreationDate="2010-09-20T20:37:38.477" Score="0" ViewCount="" Body="&lt;p&gt;I think the article you were looking for was Teach Yourself Programming in 10 years by Peter Norvig  refers to requiring about 10,000 hours to become good at something.  In addition I've seen it pop up in other places like &quot;The Element&quot; by Ken Robinson and on a lifehacker blog talking about reducing the number of hobbies you have.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T20:37:38.477" CommunityOwnedDate="2010-09-20T20:37:38.477" />
  <row Id="5702" PostTypeId="2" ParentId="4001" CreationDate="2010-09-20T20:42:24.753" Score="2" ViewCount="" Body="&lt;p&gt;I live in the US and worked for a foreign company.  Technically they had US offices but the division we worked with was solely in Europe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Language barrier is obvious and was mostly handled on their end since they knew English.  After working with them for a little while, the accent was easy to understand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Culture barrier was interesting.  They take off a lot of the summer, but since we're still working, it's somewhat demoralizing (and hard to get answers to questions).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, we met in person every 6 months or so (either us going there or them coming here).  Really, this was vital to getting on the same page.  We did a lot through desktop sharing and over the phone and email, but sometimes it takes an in-person meeting.  &lt;/p&gt;&#xA;" OwnerUserId="311" LastActivityDate="2010-09-20T20:42:24.753" CommentCount="1" />
  <row Id="5703" PostTypeId="2" ParentId="5555" CreationDate="2010-09-20T20:43:07.093" Score="10" ViewCount="" Body="&lt;p&gt;Programmers demonstrably believe in a higher power more often than others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Programmers have a high incidence of faith in a higher power (ie, that that rigorous/scientific testing is not required).&lt;/li&gt;&#xA;&lt;li&gt;Programmers routinely explain away empirical evidence in favor of faith (ie, it must be the configuration of the QA machine, not the code)&lt;/li&gt;&#xA;&lt;li&gt;Programmers believe in intelligent design (ie, it's not MY code that's wrong)&lt;/li&gt;&#xA;&lt;li&gt;Programmers believe that rigorous adherence to rituals will show the divine presence (i.e. copy-n-paste code will somehow result in a working system)&lt;/li&gt;&#xA;&lt;li&gt;Programmers believe unsubstantiated miracles (ie, but it worked on MY machine!)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Oh, sure -- programmers as a whole may say they believe in NONE of these things, but a thorough examination of their true beliefs (i.e. code review) will reveal all to be true.&lt;/p&gt;&#xA;" OwnerUserId="3103" LastEditorUserId="1968" LastEditorDisplayName="" LastEditDate="2010-11-24T07:45:49.673" LastActivityDate="2010-11-24T07:45:49.673" CommentCount="3" />
  <row Id="5705" PostTypeId="1" AcceptedAnswerId="5790" CreationDate="2010-09-20T20:50:12.323" Score="12" ViewCount="569" Body="&lt;p&gt;I've used Emacs quite a bit, and I'm comfortable with the most basic commands/shortcuts, but I know Emacs has a lot more to offer than what I'm using. What are some of the lesser known features of emacs that can help me become a more productive programmer?&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2011-02-06T08:01:34.820" Title="What are some ways to be more productive with Emacs?" Tags="&lt;text-editor&gt;&lt;emacs&gt;" AnswerCount="7" CommentCount="4" FavoriteCount="3" />
  <row Id="5707" PostTypeId="2" ParentId="1106" CreationDate="2010-09-20T20:56:11.973" Score="1" ViewCount="" Body="&lt;p&gt;Everytime I thought I was good at programming in a particular language, six months later I was convinced that at that time I sucked at it, and &lt;em&gt;now&lt;/em&gt; i was good at it.  So I guess it is a relative term.  Maybe it would be better to call yourself &quot;good enough to do Y&quot; where Y is a particular project in that language.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-09-20T20:56:11.973" CommunityOwnedDate="2010-09-20T20:56:11.973" />
  <row Id="5708" PostTypeId="2" ParentId="1768" CreationDate="2010-09-20T20:57:22.660" Score="1" ViewCount="" Body="&lt;p&gt;Personally, I'd go with Qt C++.  Gives you cross platform GUI development, easy database interfacing, etc. all in one&lt;/p&gt;&#xA;" OwnerUserId="2835" LastActivityDate="2010-09-20T20:57:22.660" CommentCount="2" />
  <row Id="5709" PostTypeId="2" ParentId="5555" CreationDate="2010-09-20T20:58:23.097" Score="8" ViewCount="" Body="&lt;p&gt;I'm a committed and believing Catholic as well as a &lt;a href=&quot;http://programmers.stackexchange.com/questions/272/when-someone-asks-you-what-you-do-what-do-you-say-e-g-programmer-developer-c/4022#4022&quot;&gt;developer of excellent software&lt;/a&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best thing about being a programmer and not an, for instance, embryonic stem cell researcher, is that for the most part you don't have to compromise faith and morals to make a decent living.  (unless, of course, you're a video game designer)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the programmers I work with are at least nominally Christian, only one guy is an avowed atheist and that's because he grew up in the USSR.  It may be a different story in school, but when you get out into the workforce with family people, the programmers are as religious as everyone else. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-09-20T20:58:23.097" CommentCount="4" />
  <row Id="5710" PostTypeId="2" ParentId="5555" CreationDate="2010-09-20T21:01:59.690" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Engineering is not a profession most people associate with religion. The concrete trade of buildings and bridges seems grounded in the secular principles of science. But the failed attack this Christmas by mechanical engineer Umar Farouk Abdulmutallab was a reminder that the combination has a long history of producing violent radicals.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&amp;mdash; &lt;a href=&quot;http://www.slate.com/id/2240157/&quot; rel=&quot;nofollow&quot;&gt;Why do so many terrorists have engineering degrees?&lt;/a&gt;&#xA;  Benjamin Popper, writing for Slate&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Anecdotes are fun...&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-20T21:01:59.690" />
  <row Id="5711" PostTypeId="2" ParentId="1202" CreationDate="2010-09-20T21:03:40.497" Score="7" ViewCount="" Body="&lt;p&gt;John W. Backus kicked off this whole &quot;high level programming&quot; thing with Fortran. Everything else is just a footnote.&lt;/p&gt;&#xA;" OwnerUserId="3111" LastActivityDate="2010-09-20T21:03:40.497" CommunityOwnedDate="2010-09-20T21:03:40.497" />
  <row Id="5712" PostTypeId="2" ParentId="5684" CreationDate="2010-09-20T21:07:29.730" Score="1" ViewCount="" Body="&lt;p&gt;Have a look to &lt;a href=&quot;http://www.pivotaltracker.com&quot; rel=&quot;nofollow&quot;&gt;Pivotal Tracker&lt;/a&gt;.&lt;br&gt;&#xA;It's a free story-based project planning tool that allows teams to collaborate and instantly react to real-world changes.&lt;/p&gt;&#xA;" OwnerUserId="74" LastActivityDate="2010-09-20T21:07:29.730" CommentCount="1" />
  <row Id="5713" PostTypeId="2" ParentId="5555" CreationDate="2010-09-20T21:10:22.533" Score="4" ViewCount="" Body="&lt;p&gt;The genius of religion is that for any level of intelligence and scientific understanding, there will always be room for &quot;divine intervention&quot;. Therefore any person, no matter what their education level can rationalize the existence of god(s).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it is true that more intellectuals are atheists, it is probably not related to being a programmer or not. I've met many evangelical religious engineers who see no conflict between their work and faith.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would bet that the likelihood of atheism is more influenced by culture, than education or IQ. Therefore, you may want to examine how culture impacts the programmers you are referencing in your questions. For example, many high-tech areas are located in less conservative areas, therefore the people coming out of these climates could be more aware of alternative viewpoints, and more willing to challenge their &quot;OEM&quot; belief system.&lt;/p&gt;&#xA;" OwnerUserId="3122" LastEditorUserId="3122" LastEditorDisplayName="" LastEditDate="2010-09-20T21:26:32.857" LastActivityDate="2010-09-20T21:26:32.857" />
  <row Id="5714" PostTypeId="2" ParentId="5613" CreationDate="2010-09-20T21:11:45.620" Score="1" ViewCount="" Body="&lt;p&gt;It puts the smarts where it needs to be.  One does not need to understand quantum mechanics and Newtonian physics to set up a mechanism that drops a ball from the top of a building.  Every new layer in software &lt;em&gt;should&lt;/em&gt; build upon the last and &lt;em&gt;remove the boilerplate&lt;/em&gt; from the construction of useful applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those who need or want to know the &quot;stuff&quot; behind the framework will study and investigate by hook or crook.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-09-20T21:11:45.620" />
  <row Id="5715" PostTypeId="2" ParentId="1454" CreationDate="2010-09-20T21:14:09.890" Score="2" ViewCount="" Body="&lt;p&gt;I use a 75 cent pocket notebook from Wal-Mart.  Doesn't fit any of your criteria, but it works for me in conjunction with using Google apps for keeping track of things as a backup.&lt;/p&gt;&#xA;" OwnerUserId="990" LastActivityDate="2010-09-20T21:14:09.890" CommentCount="1" />
  <row Id="5716" PostTypeId="2" ParentId="5613" CreationDate="2010-09-20T21:22:21.147" Score="1" ViewCount="" Body="&lt;p&gt;No, absolutely not. Frameworks are, at their core, a combination of a subroutine library and a template, two tried-and-true programmer tools. 'Tis a poor workman blames his tools...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...and there are a &lt;em&gt;lot&lt;/em&gt; of poor workmen using and blaming frameworks.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-20T21:22:21.147" CommentCount="2" />
  <row Id="5717" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T21:27:25.367" Score="0" ViewCount="" Body="&lt;p&gt;I worked in a Japanese software company for a while. The code, including variable and function names, was all in English. Comments and inline strings were in Japanese. Occasionally the function names were poorly translated, which made programming ... interesting... at times.&lt;/p&gt;&#xA;" OwnerUserId="3128" LastActivityDate="2010-09-20T21:27:25.367" CommunityOwnedDate="2010-09-20T21:27:25.367" />
  <row Id="5718" PostTypeId="1" CreationDate="2010-09-20T21:29:42.167" Score="4" ViewCount="238" Body="&lt;p&gt;I've seen a few products that profess to make writing comprehensive C# XML Comments a lot easier by providing WYSIWYG style tooling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.innovasys.com/products/dx2010/overview.aspx&quot; rel=&quot;nofollow&quot;&gt;Document! X&lt;/a&gt; seems to be the most pro from the ones I've seen, but is pretty pricey.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wondering if anyone has used Document! X or similar, and if so what your experiences have been with them.&lt;/p&gt;&#xA;" OwnerUserId="316" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-16T12:32:08.957" LastActivityDate="2010-11-16T15:00:13.503" Title="Do you use a C# XML Comments WYSIWYG editor?" Tags="&lt;tools&gt;&lt;c#&gt;&lt;documentation&gt;&lt;xml&gt;" AnswerCount="3" CommentCount="0" />
  <row Id="5719" PostTypeId="2" ParentId="651" CreationDate="2010-09-20T21:30:39.637" Score="0" ViewCount="" Body="&lt;p&gt;I use four spaces when I'm doing homework and often when I'm publishing the code or sending it to people I know prefer four..  For my own use I typically use two, because it takes up much less space.&lt;/p&gt;&#xA;" OwnerUserId="990" LastActivityDate="2010-09-20T21:30:39.637" />
  <row Id="5721" PostTypeId="2" ParentId="5592" CreationDate="2010-09-20T21:38:13.713" Score="0" ViewCount="" Body="&lt;p&gt;Software vendors and IT service companies can scale-up to deliver the same service or app to many more customers, and they benefit from the economies of scale.  The same thing could apply to software which runs the core services of a company, like banking software for a bank, or logistics software for a delivery company like UPS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience programming positions where the focus is on &lt;a href=&quot;http://www.joelonsoftware.com/articles/FiveWorlds.html&quot; rel=&quot;nofollow&quot;&gt;'internal' or 'departmental' software&lt;/a&gt; the projects are perpetually under-maintained.  After years working in these conditions all I could come up with for a reason was: simple economies of scale.  There just isn't enough time/money being lost by the poor-quality or poor-fitting software to justify the cost of a test/release cycle.  But for smaller user bases your manager's hands might be tied by the economic reality: he/she might not be able to justify the test cost to let you fix a bug you found over a year ago, even if that bug is causing occasional errors in a production system.  Imagine yourself explaining a situation like that to an end user, now imagine that happening two dozen times over the course of a year.  That might be the economic reality you're signing up to live with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my advice for anyone considering taking an 'internal programming' job is: beware.  I believe most of the software industry requires a 1:100 or 1:1000 ratio of developers to users to really justify active development.  If you can find that kind of ratio inside a company then maybe you'll be fine (developing an app for a 10,000-person department by a team of 3-5 programmers).  But most don't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course there are a ton of assumptions here and many exceptions.  Highly profitable industries (like finance) would have much smaller ratios and still justify the higher development costs.  I'm also assuming software projects that provide basic 'information worker labor savings' over human processes and workflows (which was my experience are the mainstay of internal programmers).&lt;/p&gt;&#xA;" OwnerUserId="2176" LastActivityDate="2010-09-20T21:38:13.713" />
  <row Id="5722" PostTypeId="2" ParentId="2935" CreationDate="2010-09-20T21:57:42.543" Score="3" ViewCount="" Body="&lt;p&gt;It chose me. I was a management analyst in the days beforethere were pcs in the office. When we got them, I ended up doing a lot of things to get them to do statistical analysis on large sets of data and in the process learned to query databases and then I went to work as a writer-editor for an audit agency and ended up helping the auditors query mainframes as part of their audits instead, then I quit the government to do computer consulting and eventually ended up as a database specialist.  But it all started because I had data I wanted to do something with and there were no programmers handy.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-20T21:57:42.543" />
  <row Id="5723" PostTypeId="2" ParentId="5705" CreationDate="2010-09-20T22:05:48.037" Score="1" ViewCount="" Body="&lt;p&gt;Two commands I tend to use every now and then are &lt;code&gt;string-rectangle&lt;/code&gt; and &lt;code&gt;kill-rectangle&lt;/code&gt;. The former allows you to insert repeated text in a particular column over several rows; the latter does the opposite.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-20T22:05:48.037" />
  <row Id="5724" PostTypeId="2" ParentId="5684" CreationDate="2010-09-20T22:06:36.100" Score="0" ViewCount="" Body="&lt;p&gt;An Excel spreadsheet is good for not too big projects. It has support for operations with cells which makes it even more powerful. That's what I use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other prefer MS Project but the feedback I heard is of both types. Some love it, some hate it... Try it and see if it works for you. I like it but I think is too complex for my needs.&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-09-20T22:06:36.100" />
  <row Id="5725" PostTypeId="2" ParentId="1202" CreationDate="2010-09-20T22:17:59.903" Score="3" ViewCount="" Body="&lt;h1&gt;Yukihiro Matsumoto,&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;a.k.a. Matz, Japanese programmer who is the chief designer of &lt;strong&gt;Ruby&lt;/strong&gt;, my favorite new language :)&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-20T22:17:59.903" CommunityOwnedDate="2010-09-20T22:17:59.903" />
  <row Id="5726" PostTypeId="2" ParentId="1483" CreationDate="2010-09-20T22:18:42.223" Score="1" ViewCount="" Body="&lt;p&gt;I'm from Mexico, and I personally never use Spanish for anything, even my own hobby projects (because I figure maybe someday I'd like to share the code or ask buddies to help out). I generally oppose to anything but English when it comes to tech stuff. One major pet peeve of mine is when companies use Spanish (in my case) as the default lang in their software... Apache (Tomcat) does this, so does Google. E.g., if (in the case of Tomcat) you're looking for more info on an Exception in Spanish, you're likely gonna get less results compared to the English description of the Exception. Same with Google, results in Spanish pretty much suck if you're looking for almost anything (lousy websites, outdate info...) Facebook and many open source apps do some horrible translations, too. Also translations might not fit everyone's needs. In Spain a 'file' is normally a &quot;fichero&quot; while in Mexico it's an &quot;archivo&quot;... Other Latin American countries have their own variations too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may sound a bit harsh for some people, but in my opinion coding in English is a &quot;best practice&quot;. It's not a matter of xenophobia or racism or nationalism; it's a matter of scope and standards. English is generally accepted as an international business language, and it works. This has of course its own disadvantages (like bad English comments or specs &lt;em&gt;gulp!&lt;/em&gt;), but I think that it's got more advantages. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One gem that I can remember was an error message that said:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;An error has happened!&quot; (Mex code)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Indian code is also good stuff for a healthy laugh... Nobody's perfect, but the important thing is that we can understand each other (internationally speaking) instead of bringing more mess to our code.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-20T22:18:42.223" CommunityOwnedDate="2010-09-20T22:18:42.223" />
  <row Id="5727" PostTypeId="1" AcceptedAnswerId="5730" CreationDate="2010-09-20T22:19:05.610" Score="7" ViewCount="299" Body="&lt;p&gt;Especially when writing 'standard' (non-HPC) applications, do you consider what sorting algorithm to pick, or just settle with quicksort (which is what most libraries just call sort)? To some extent it may be profitable in specific situations, but on the other hand proper optimization requires some time to analyse the problem and make benchmarks. &lt;/p&gt;&#xA;" OwnerUserId="2051" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-21T08:53:26.920" LastActivityDate="2010-12-22T13:27:23.883" Title="Quicksort and don't bother?" Tags="&lt;algorithms&gt;&lt;sorting&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="5728" PostTypeId="2" ParentId="5727" CreationDate="2010-09-20T22:21:40.880" Score="1" ViewCount="" Body="&lt;p&gt;Although it obviously doesn't matter to the bits and timeslices. I find merge sort to be easier to write and understand than quicksort.  So if I'm going to write my own sorting algorithm I'd use that.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-09-20T22:21:40.880" CommentCount="1" />
  <row Id="5729" PostTypeId="2" ParentId="5727" CreationDate="2010-09-20T22:23:27.930" Score="1" ViewCount="" Body="&lt;p&gt;This is the time to pull out the classic quote about premature optimization.  In most cases, it really doesn't matter.  Heck, with the speed of CPUs these days, you could probably bubble sort most data sets and not really notice much.  But when you're sorting really large data sets, and sort performance starts to become an issue, then you should definitely look at other options.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-20T22:23:27.930" CommentCount="3" />
  <row Id="5730" PostTypeId="2" ParentId="5727" CreationDate="2010-09-20T22:24:08.027" Score="10" ViewCount="" Body="&lt;p&gt;In general, using the default methods unless there is a specific need to do something more exotic keeps everything a lot more readable/understandable down the road IMHO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you experience (or in some cases, strongly suspect) that you have a performance problem that is the time to add complexity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if you are using a low enough language that there is not a built-in sort for the kind of objects you need to sort try to pick one or two that cover all your bases and implement those.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-20T22:24:08.027" />
  <row Id="5731" PostTypeId="2" ParentId="1015" CreationDate="2010-09-20T22:32:31.957" Score="0" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.roboform.com/&quot; rel=&quot;nofollow&quot;&gt;RoboFormPro&lt;/a&gt; and love it.  Works well with IE, FireFox and Chrome.  It has a companion program called &lt;a href=&quot;http://www.goodsync.com/&quot; rel=&quot;nofollow&quot;&gt;GoodSync&lt;/a&gt;, so if you change a password when visiting a site on one computer, it can be synced with your other ones.  Also handles credit cards and filling in address fields. I have no connection with the company, just a happy customer.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-20T22:32:31.957" />
  <row Id="5732" PostTypeId="2" ParentId="5705" CreationDate="2010-09-20T22:32:37.190" Score="4" ViewCount="" Body="&lt;p&gt;Check out this SO page, it has enough tips to boost your Emacs productivity by at least 2x:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/60367?tab=votes&amp;amp;page=1&quot;&gt;http://stackoverflow.com/questions/60367?tab=votes&amp;amp;page=1&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, you absolutely positively must use Org-mode if you're an Emacs user:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://orgmode.org/&quot; rel=&quot;nofollow&quot;&gt;http://orgmode.org/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2026" LastActivityDate="2010-09-20T22:32:37.190" />
  <row Id="5733" PostTypeId="2" ParentId="3851" CreationDate="2010-09-20T22:35:58.237" Score="2" ViewCount="" Body="&lt;p&gt;An embedded programmer that doesn't understand interrupts very well or multitasking.  Also programmers that need to work with bit fields but don't grasp logical operations on them and shifting.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-20T22:35:58.237" CommunityOwnedDate="2010-12-13T18:51:52.480" />
  <row Id="5734" PostTypeId="2" ParentId="5613" CreationDate="2010-09-20T22:38:07.273" Score="3" ViewCount="" Body="&lt;p&gt;Perhaps the distribution of &quot;dumbness&quot; hasn't really changed, and we're instead simply handing out bigger and more complicated ways for developers to shoot themselves in the foot? &lt;/p&gt;&#xA;" OwnerUserId="1791" LastActivityDate="2010-09-20T22:38:07.273" />
  <row Id="5735" PostTypeId="2" ParentId="5592" CreationDate="2010-09-20T22:49:30.910" Score="3" ViewCount="" Body="&lt;p&gt;Oh yeah, many things, generally speaking, are going to be better if you're a developer  at a company whose business is to create and sell &lt;em&gt;software&lt;/em&gt;, compared to being a developer in a company doing something else (at a more or less peripheral department). (This is of course a gross simplification, as software plays an important role in many kinds of products today, and as there's a huge variance in overall atmosphere and job satisfaction between different companies.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Chances are, in the former case, that the work is more interesting (i.e. &lt;a href=&quot;http://www.youtube.com/watch?v=u6XAPnuFjJc&quot; rel=&quot;nofollow&quot;&gt;motivating&lt;/a&gt;) and your colleagues smarter (smart people prefer to work with interesting stuff). Of course your work is also less likely to be outsourced, and so on. Just the feeling that you're closer to the &lt;em&gt;core&lt;/em&gt; of the company, and do things that really matter, can be pretty neat. (Perhaps e.g. the most senior guys in your team or department are some of the key people in the whole company.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, the wording of the question prompts me to add this: I guess it's somewhat rare that software &lt;em&gt;directly&lt;/em&gt; makes the money. At least on the B2B/enterprisey side of software business, there's typically a considerable sales push needed to make money out of a software solution (the software product itself and, often, related services). Even if you're working on a core product at a software house R&amp;amp;D team, it's possible that your day-to-day work is quite detached from the money-making (customer-facing) side of it all. (In fact, from one particular point of view, &lt;em&gt;salespeople&lt;/em&gt; make the money by closing deals; all other work merely supports sales...) So, if you want to completely escape the notion of &lt;em&gt;cost center&lt;/em&gt; that you mentioned, either write software that markets and sells itself, or become a salesperson or technical presales consultant. :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The above rambling is based on working many years at a software product company's R&amp;amp;D dept., yet &lt;em&gt;nowhere near&lt;/em&gt; the &quot;front lines of profit generation&quot; as you put it.&lt;/p&gt;&#xA;" OwnerUserId="281" LastEditorUserId="281" LastEditorDisplayName="" LastEditDate="2010-09-20T23:01:12.413" LastActivityDate="2010-09-20T23:01:12.413" CommentCount="1" />
  <row Id="5736" PostTypeId="2" ParentId="5727" CreationDate="2010-09-20T22:51:05.157" Score="1" ViewCount="" Body="&lt;p&gt;At least in a competently written library, I'd expect the built-in &lt;code&gt;sort&lt;/code&gt; to be implemented as an &lt;a href=&quot;http://ralphunden.net/?q=a-guide-to-introsort&quot; rel=&quot;nofollow&quot;&gt;Introsort&lt;/a&gt; rather than just a Quicksort. The difference rarely matters much, but Introsort eliminates the bad worst-case performance of Quicksort with minimal effect on the more common cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer your question, however: yes -- that's what you should usually start with, and until/unless you have profiler results indicating that it's a problem, that's where it should remain.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-09-20T22:51:05.157" />
  <row Id="5737" PostTypeId="2" ParentId="2935" CreationDate="2010-09-20T22:52:51.293" Score="4" ViewCount="" Body="&lt;p&gt;I was in the process of getting my BSEE degree in the 60's. For my senior design project, which involved some filter design, my advisor suggested I simulate the circuit in FORTRAN. I wrote a program, put it on punch cards and ran it on the university's IBM-360.  That was my first exposure to writing software.  I got hooked, and thought about switching majors, however since there wasn't a formal CS department at my university yet (all the programming courses were in the math department), I would also have had to switch from engineering to humanities, which would set me back more than a year.  So I finished my EE degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I then got a job doing logic design for one of the first electronic telephone exchanges.  A lot of the design was repetitive, so I wrote a large SNOBOL4 program to do the boring parts.  Soon I was the largest user of timesharing in the whole lab.  But I was outproducing everyone else, so my manager didn't mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It occurred to me that the logic I was designing could just as well be done with a computer program someday (this was just before microprocessors were invented). So I decided to get an MSCS degree, which took me several years of night school. By the time I finished, I had switched from hardware design to writing assembly programs for the telephone switch I had earlier helped design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A couple of years later, I quit the telephone industry and went out on my own as a freelance consultant/contract programmer, which I have been doing every since. I still do a mixture of hardware and software (mostly embedded C), but have also done a lot of web programming in PHP plus some C++, C# and J2ME. I am currently learning Ruby just for fun.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-20T22:52:51.293" />
  <row Id="5738" PostTypeId="2" ParentId="2254" CreationDate="2010-09-20T22:59:27.597" Score="2" ViewCount="" Body="&lt;p&gt;An old and faithful Logitech Cordless Desktop or whatever it was called at the time:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/QNojn.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2105" LastActivityDate="2010-09-20T22:59:27.597" CommunityOwnedDate="2011-01-17T21:43:24.260" />
  <row Id="5739" PostTypeId="2" ParentId="4104" CreationDate="2010-09-20T23:18:19.680" Score="-5" ViewCount="" Body="&lt;p&gt;Don't use RoR, PHP FTW&lt;/p&gt;&#xA;" OwnerUserId="3139" LastActivityDate="2010-09-20T23:18:19.680" />
  <row Id="5740" PostTypeId="2" ParentId="5597" CreationDate="2010-09-20T23:25:05.450" Score="1" ViewCount="" Body="&lt;p&gt;A university &lt;em&gt;education&lt;/em&gt;, particularly one in which you are taught how to read and write, is valuable for a good programmer, or indeed for just about anybody that's good at anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The value of a university &lt;em&gt;degree&lt;/em&gt;, on the other hand, is much more contingent.  I've had a long and reasonably successful career in software development, and I never completed my undergraduate degree - which was in history and cultural geography, anyway.  I've also been an independent consultant for most of the last 20 years, and while I &lt;em&gt;have&lt;/em&gt; a resume, it's been a very long time since anyone actually looked at it.  I actually don't know what my experience would be like if I had to find a real job.&lt;/p&gt;&#xA;" OwnerUserId="3138" LastActivityDate="2010-09-20T23:25:05.450" CommunityOwnedDate="2011-01-26T20:35:39.517" />
  <row Id="5741" PostTypeId="2" ParentId="2254" CreationDate="2010-09-20T23:27:15.170" Score="9" ViewCount="" Body="&lt;p&gt;Wow. Can't believe no one has mentioned the venerable &lt;a href=&quot;http://en.wikipedia.org/wiki/Model_M_keyboard&quot; rel=&quot;nofollow&quot;&gt;Model M&lt;/a&gt; yet. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/xB3zZ.jpg&quot; alt=&quot;The best keyboard ever built.&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Advantages:&lt;/h3&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Built like a tank. Mine was manufactured in 1987, and is still going strong.&lt;/li&gt;&#xA;&lt;li&gt;Removable / replaceable key caps. Great if you want to remap to something weird like Dvorak, or just remove entirely to show off your touch-typing skills.&lt;/li&gt;&#xA;&lt;li&gt;Clean separation of alphanumeric keys, function keys, cursor keys, and numeric keypad. Getting your hands into the right position is never a problem.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Wonderful, tactile, &quot;clicky&quot; buckling-spring key switches!&lt;/strong&gt; I can type for &lt;em&gt;hours&lt;/em&gt; on this thing without the impact-pain commonly caused by softer, lesser keyboards.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h3&gt;Disadvantages:&lt;/h3&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Large. If reaching for your mouse puts your arm outside your comfort area when using a normal keyboard, you'll &lt;em&gt;hate&lt;/em&gt; this one. &lt;/li&gt;&#xA;&lt;li&gt;Noisy. But if someone complains, throw it at them. Don't worry, &lt;em&gt;it&lt;/em&gt; won't break.&lt;/li&gt;&#xA;&lt;li&gt;Hard to get working with USB-only devices. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-20T23:27:15.170" CommunityOwnedDate="2011-01-17T21:43:24.260" CommentCount="5" />
  <row Id="5742" PostTypeId="2" ParentId="5466" CreationDate="2010-09-20T23:29:13.980" Score="1" ViewCount="" Body="&lt;p&gt;I've never seen a project manager with no IT experience who could manage a non-trivial software development project worth a damn.  I've seen very few project managers &lt;em&gt;with&lt;/em&gt; IT experience who could do that either, but they seemed to screw it up less.&lt;/p&gt;&#xA;" OwnerUserId="3138" LastActivityDate="2010-09-20T23:29:13.980" CommentCount="2" />
  <row Id="5743" PostTypeId="2" ParentId="5427" CreationDate="2010-09-20T23:40:13.313" Score="5" ViewCount="" Body="&lt;p&gt;I started to love Python for the same reason that Eric S. Raymond describes:  the act of writing programs in Python is conceptually very similar to thinking the act of designing code in my head.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning to be a good Python programmer made me a &lt;em&gt;much&lt;/em&gt; better C# programmer.  It made understanding LINQ much easier, for one.  I might never have embraced a type like &lt;code&gt;Dictionary&amp;lt;string, Func&amp;lt;T&amp;gt;&amp;gt;&lt;/code&gt;, or gotten comfortable using &lt;code&gt;yield return&lt;/code&gt;, if I hadn't used classes and generators in Python.  AOP is a lot easier to understand now that I've used Python decorators.  The list goes on.&lt;/p&gt;&#xA;" OwnerUserId="3138" LastActivityDate="2010-09-20T23:40:13.313" />
  <row Id="5744" PostTypeId="2" ParentId="3851" CreationDate="2010-09-20T23:44:23.597" Score="2" ViewCount="" Body="&lt;p&gt;An immediate recognition signal is someone saying:  &quot;I don't understand why it doesn't work.  I did everything right.&quot;&lt;/p&gt;&#xA;" OwnerUserId="3138" LastActivityDate="2010-09-20T23:44:23.597" CommunityOwnedDate="2010-12-13T18:51:52.480" CommentCount="2" />
  <row Id="5745" PostTypeId="2" ParentId="5415" CreationDate="2010-09-21T00:01:10.047" Score="1" ViewCount="" Body="&lt;p&gt;In addition to Jeff O's very good advice, I'd add this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Track the client's performance as closely as they are tracking your own and incorporate it into your project planning.  If it takes them 72 hours to respond to a query, push your schedule.  Let them know you're doing this, and why.  Don't be a jerk about it, but keep this information in front of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This works in two cases:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It works on clients that are playing power-tripping dominance games with you because it is the language they speak.  It alerts them to the fact that you can play this game too.  Unless they're very sophisticated (and not many people who play power-tripping dominance games are sophisticated, or they'd be doing something more effective), they'll see in this a fight they can't win and back off.  This makes them easier to work with.  I can't count the times in my career a client realized early on in a project that scapegoating me would fail and became downright cooperative.  (I come by this perspective honestly; I've worked on large government IT projects where participants are often actively hostile towards one another.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It works on clients who are genuinely interested in getting the work done quickly because it tells them exactly what they should be doing to facilitate that.  These clients appreciate the fact that you're letting them be of service to the goals of the project.  This makes them easier to work with.&lt;/p&gt;&#xA;" OwnerUserId="3138" LastActivityDate="2010-09-21T00:01:10.047" />
  <row Id="5746" PostTypeId="2" ParentId="1483" CreationDate="2010-09-21T00:10:22.130" Score="0" ViewCount="" Body="&lt;p&gt;I'm from Latvia, and I'm coding only in English. Makes the code look much more fluent and pure. Plus, my language is filled with all the fancy characters like &quot;š&quot;, &quot;ž&quot;, &quot;č&quot;.. and therefore, makes it kind of unhealthy for the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But that's only my opinion..&lt;/p&gt;&#xA;" OwnerUserId="3143" LastActivityDate="2010-09-21T00:10:22.130" CommunityOwnedDate="2010-09-21T00:10:22.130" />
  <row Id="5747" PostTypeId="2" ParentId="5372" CreationDate="2010-09-21T00:11:51.133" Score="1" ViewCount="" Body="&lt;p&gt;Drink a lot of water, dont eat a lot, snack on junk food evenly or less then snacking on fruits/veg in the fridge (many times i have them precut).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do that and i LOSE weight and i walk &amp;lt; 1hour a day. This is impossible? Well almost. I break even much of them time the days i go out and walk the streets i come home 1/2 pound lighter. I always feel energies and the water helps (I drink 3L a day bro ;P. No joke)&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-21T00:11:51.133" CommunityOwnedDate="2010-09-21T00:11:51.133" />
  <row Id="5748" PostTypeId="1" CreationDate="2010-09-21T00:35:26.997" Score="7" ViewCount="219" Body="&lt;p&gt;I'm not talking about a diff tool.  I'm really looking to see if a project contains code that may have been &quot;refactored&quot; from another project.  It would be likely that function names, variable names and whatnot would be changed.  Conditionals might be reversed, etc.&lt;/p&gt;&#xA;" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-21T03:29:38.287" LastActivityDate="2011-05-19T12:15:13.300" Title="Are there tools to determine code similarity?" Tags="&lt;tools&gt;&lt;comparison&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="2" />
  <row Id="5749" PostTypeId="1" AcceptedAnswerId="5753" CreationDate="2010-09-21T00:39:01.953" Score="22" ViewCount="551" Body="&lt;p&gt;I work as the back-end developer, front-end developer, systems admin, help desk and all-around 'guy who knows computers' at a small marketing company of about 15 people. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was wondering if others could share their experiences flying solo at companies that aren't necessarily inclined toward the technology industry. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I originally took the job in order to transition from front-end developer/designer to full-time coder. It's been a good experience to a point. I definitely get to occupy the role of 'rock star' programmer - because frankly, no one really understands my job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lately, it feels like a very solitary position. I rarely get to bounce ideas off of people, and everyone looks to me like I have magic powers that will make all the computers work and land us first on Google searches. I've also felt a strong disconnect versus between what we say we want (projects with large, months-long development schedules) versus what we actually do (copy-edit our sites over and over).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So who else finds themselves being the 'tech guy' in a company that thinks technology is all a bit magical, and what is your take on your situation?&lt;/p&gt;&#xA;" OwnerUserId="1972" LastEditorUserId="19" LastEditorDisplayName="" LastEditDate="2010-09-27T13:35:03.067" LastActivityDate="2010-10-01T18:37:04.613" Title="Working as the sole programmer at a non-tech company" Tags="&lt;career&gt;&lt;jobs&gt;&lt;work-environment&gt;&lt;one-man-army&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="7" />
  <row Id="5750" PostTypeId="2" ParentId="5748" CreationDate="2010-09-21T00:39:40.420" Score="1" ViewCount="" Body="&lt;p&gt;Even if you're not talking about a diff tool, you can still use one for this, to a certain extent at least.  If I see two sections of code that look similar, for example, I frequently paste both into BeyondCompare to see how much work it would be to simplify it by refactoring the common functionality out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if you don't know where the similar code is, but you're just wondering if any exists somewhere... what are you looking for?  An automated tool to detect plagiarism?  I'm not sure any such thing exists.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-21T00:39:40.420" CommentCount="1" />
  <row Id="5751" PostTypeId="1" AcceptedAnswerId="5755" CreationDate="2010-09-21T00:51:31.957" Score="6" ViewCount="228" Body="&lt;p&gt;In relation to the fab question here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/2254/what-are-good-keyboards-for-programming&quot;&gt;http://programmers.stackexchange.com/questions/2254/what-are-good-keyboards-for-programming&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where do you map your Control key and why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/z0syX.png&quot; alt=&quot;Control Key&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-21T11:51:30.653" Title="Where do you have your Control key?" Tags="&lt;productivity&gt;&lt;keyboard&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="5752" PostTypeId="2" ParentId="5751" CreationDate="2010-09-21T00:56:04.367" Score="5" ViewCount="" Body="&lt;p&gt;I don't move it from the standard location.  That means that I can use other keyboards when I go to other places / work environments fluently and without mistakes.  My small effort towards efficiency.&lt;/p&gt;&#xA;" OwnerUserId="2620" LastActivityDate="2010-09-21T00:56:04.367" />
  <row Id="5753" PostTypeId="2" ParentId="5749" CreationDate="2010-09-21T00:59:42.063" Score="14" ViewCount="" Body="&lt;p&gt;Take advantage of the situation you have - to a certain extent, I think you have a little bit of &quot;grassisgreeneritis&quot;.  Sorry, I'm not trying to be funny here but rather serious.  What I mean is that there are short-comings in every position at every company.  Yours are starting to get to you more because they are now very familiar.  But, at tech companies, schedules and time commitments become an issue.  At larger non-tech companies, overcoming political stupidity and procedure can be big issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So take advantage of what you have now; learn what you can.  Once you believe you can't really learn more, it is probably time to move on.  There is no harm in that; it sounds like you are one of those people that have to grow to be happy with a job. Your current company should understand that when you reach that point and honestly, if they don't, leaving is definitely the right thing to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said all that, there is more you can do in your current position.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are feeling solitary, make some changes to eliminate that feeling.  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Use on-line communities to bounce ideas off of people (StackOverflow is great for this).&lt;/li&gt;&#xA;&lt;li&gt;Do some research with Google to find out what it would take to land your company first and then put a proposal together to get it to happen.  &lt;/li&gt;&#xA;&lt;li&gt;When going through projects, take the initiative and change how things happen.  Don't go for the impractical, long projects. Instead, propose month long incremental improvements.  Over a year, those add up and can really help you feel like you've accomplished something. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1236" LastActivityDate="2010-09-21T00:59:42.063" />
  <row Id="5754" PostTypeId="2" ParentId="4319" CreationDate="2010-09-21T01:00:30.380" Score="6" ViewCount="" Body="&lt;p&gt;I got a color coded keyboard diagram which showed which fingers were for which keys.  I decided from then on, I would never use the wrong fingers on a key.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/VxygM.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At first my typing speed dropped considerably, but I noticed that every project due date, my typing speed would improve dramatically.  By the time I finished my programming course, I was typing faster than anybody I knew.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This image kind of sucks, the one I had was a lot better, but I couldn't find anything really good immediately.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-21T01:00:30.380" CommentCount="4" />
  <row Id="5755" PostTypeId="2" ParentId="5751" CreationDate="2010-09-21T01:08:15.963" Score="3" ViewCount="" Body="&lt;p&gt;I don't have a Caps Lock key (it's completely useless) so the key to the left of &lt;kbd&gt;A&lt;/kbd&gt; is my Ctrl key. I remap that key because both Screen and Vim make heavy use of Ctrl keystrokes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use other computers reasonably infrequently, so don't often run into unremapped keyboards. But it's no trouble to adapt as necessary.&lt;/p&gt;&#xA;" OwnerUserId="348" LastActivityDate="2010-09-21T01:08:15.963" CommentCount="1" />
  <row Id="5756" PostTypeId="2" ParentId="4693" CreationDate="2010-09-21T01:16:31.383" Score="-2" ViewCount="" Body="&lt;p&gt;If you have to ask I'm not telling you.&lt;/p&gt;&#xA;" OwnerUserId="486" LastActivityDate="2010-09-21T01:16:31.383" CommunityOwnedDate="2010-09-21T01:16:31.383" CommentCount="1" />
  <row Id="5757" PostTypeId="1" CreationDate="2010-09-21T01:18:36.483" Score="7" ViewCount="1103" Body="&lt;p&gt;I have found that there are only 3 ways to unit test (mock/stub) dependencies that are static in C#.NET:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://research.microsoft.com/en-us/projects/pex/&quot; rel=&quot;nofollow&quot;&gt;Moles&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.typemock.com/typemock-isolator-product3/&quot; rel=&quot;nofollow&quot;&gt;TypeMock&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.telerik.com/products/mocking.aspx&quot; rel=&quot;nofollow&quot;&gt;JustMock&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Given that two of these are not free and one has not hit release 1.0, mocking static stuff is not too easy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does that make static methods and such &quot;evil&quot; (in the unit testing sense)?  And if so, why does resharper want me to make anything that can be static, static? (Assuming resharper is not also &quot;evil&quot;.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Clarification:&lt;/strong&gt;&#xA;I am talking about the scenario when you want to unit test a method and that method calls a static method in a &lt;em&gt;different&lt;/em&gt; unit/class.  By most definitions of unit testing, if you just let the method under test call the static method in the other unit/class then you are &lt;strong&gt;not&lt;/strong&gt; unit testing, you are &lt;em&gt;integration&lt;/em&gt; testing.  (Useful, but not a unit test.)&lt;/p&gt;&#xA;" OwnerUserId="71" LastEditorUserId="71" LastEditorDisplayName="" LastEditDate="2010-09-21T15:50:10.403" LastActivityDate="2010-11-09T23:10:08.273" Title="Is static universally &quot;evil&quot; for unit testing and if so why does resharper recommend it?" Tags="&lt;c#&gt;&lt;unit-testing&gt;&lt;static&gt;&lt;mocking&gt;&lt;mocks&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="2" />
  <row Id="5758" PostTypeId="2" ParentId="5751" CreationDate="2010-09-21T01:21:34.363" Score="11" ViewCount="" Body="&lt;p&gt;I have it exactly where the maker of the keyboard putted it. That being said, I also use the CapsLock key (for writing anything in all caps that has more than two letters) and all those other keys that were also putted there with a purpose (NumLock, ScrollLock ...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, I never move keys from their original places. Saves trouble when switching keyboards and the like.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-21T01:21:34.363" CommentCount="4" />
  <row Id="5759" PostTypeId="2" ParentId="5705" CreationDate="2010-09-21T01:23:22.970" Score="1" ViewCount="" Body="&lt;p&gt;I know you specifically asked about methods and commands, but I would suggest the following all-around approach:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Read a book on Emacs: there are several including the &lt;a href=&quot;http://www.gnu.org/software/emacs/manual/emacs.html&quot; rel=&quot;nofollow&quot;&gt;Emacs Manual&lt;/a&gt;, and &lt;a href=&quot;http://oreilly.com/catalog/9780596006488&quot; rel=&quot;nofollow&quot;&gt;Learning Gnu Emacs&lt;/a&gt; by Cameron Et al.  I know &quot;read the manual&quot; sounds trite and condescending, but what I'm really saying is that every time &lt;em&gt;I&lt;/em&gt; read the manual, I find out about something really cool that I didn't even think of.  I &lt;strong&gt;always&lt;/strong&gt; feel like I haven't spent enough time reading the manual.&lt;/li&gt;&#xA;&lt;li&gt;Get into the Emacs Community: &lt;a href=&quot;http://emacswiki.org&quot; rel=&quot;nofollow&quot;&gt;Emacswiki&lt;/a&gt; is a great place to communicate with other Emacs users and find out about cool packages.  Also joining &lt;a href=&quot;http://lists.gnu.org/mailman/listinfo/help-gnu-emacs&quot; rel=&quot;nofollow&quot;&gt;help-gnu-emacs&lt;/a&gt; can be good, because people will ask for help on features that they're using, and by proxy you can find out about those features.  I have found many interesting features by seeing someone asking for help and then reading about it in the manual.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/emacs/manual/elisp.html&quot; rel=&quot;nofollow&quot;&gt;Learn some Lisp&lt;/a&gt;: When you can at least discuss Emacs Lisp, you'll be in a much better place to learn about new features.&lt;/li&gt;&#xA;&lt;li&gt;Use Emacs all the time.  I use Emacs for everything except web browsing (which it you can also do), and I'm therefore always in an opportunity to learn how to do some new thing better with some feature provided by Emacs.  I use Emacs for &lt;a href=&quot;http://www.gnu.org/software/emacs/manual/gnus.html&quot; rel=&quot;nofollow&quot;&gt;mail&lt;/a&gt;, &lt;a href=&quot;http://www.gnu.org/software/emacs/manual/org.html&quot; rel=&quot;nofollow&quot;&gt;scheduling and planning&lt;/a&gt;, &lt;a href=&quot;http://www.xsteve.at/prg/vc_svn/&quot; rel=&quot;nofollow&quot;&gt;version control&lt;/a&gt;, &lt;a href=&quot;http://www.gnu.org/software/auctex/&quot; rel=&quot;nofollow&quot;&gt;LaTeX&lt;/a&gt; documents, &lt;em&gt;and&lt;/em&gt; programming.  About all my time is spent in either Emacs or Firefox.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1935" LastActivityDate="2010-09-21T01:23:22.970" CommunityOwnedDate="2010-09-21T01:23:22.970" />
  <row Id="5760" PostTypeId="2" ParentId="565" CreationDate="2010-09-21T01:23:42.073" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.cs.nott.ac.uk/~cah/G51ISS/Documents/NoSilverBullet.html&quot; rel=&quot;nofollow&quot;&gt;No Silver Bullet: Essence and Accidents of Software Engineering&lt;/a&gt; by Frederick P. Brooks, Jr.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most programmers look for silver bullets to improve something in their work. This article explain very well that there is no silver bullets.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-21T01:23:42.073" />
  <row Id="5761" PostTypeId="2" ParentId="5748" CreationDate="2010-09-21T01:34:36.417" Score="2" ViewCount="" Body="&lt;p&gt;You might be able to use the &lt;a href=&quot;http://pmd.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;PMD tool&lt;/a&gt; to find what you are looking for.  It is meant to detect cut and paste within a code base but if you include the suspected origin project source it might help you see where code was copied from it.&lt;/p&gt;&#xA;" OwnerUserId="694" LastActivityDate="2010-09-21T01:34:36.417" CommentCount="1" />
  <row Id="5762" PostTypeId="2" ParentId="5748" CreationDate="2010-09-21T01:42:21.617" Score="1" ViewCount="" Body="&lt;p&gt;This &lt;a href=&quot;http://en.wikipedia.org/wiki/Duplicate_code&quot; rel=&quot;nofollow&quot;&gt;article on wikipedia&lt;/a&gt; on the subject also includes links to several tools that can be used to find similar or duplicate code. We have an internal tool for this, so I'm not familiar with the external tools mentioned in the article.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-09-21T01:42:21.617" />
  <row Id="5763" PostTypeId="2" ParentId="5748" CreationDate="2010-09-21T01:59:00.280" Score="1" ViewCount="" Body="&lt;p&gt;The closest thing I know of to what you are looking for is &lt;a href=&quot;http://clonedetectivevs.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;Clone Detective.&lt;/a&gt; It is a Visual Studio plug-in.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Clone Detective is a Visual Studio&#xA;  integration that allows you to analyze&#xA;  C# projects for source code that is&#xA;  duplicated somewhere else. Having&#xA;  duplicates can easily lead to&#xA;  inconsistencies and often is an&#xA;  indicator for poorly factored code.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="29" LastActivityDate="2010-09-21T01:59:00.280" />
  <row Id="5764" PostTypeId="2" ParentId="1106" CreationDate="2010-09-21T02:11:30.833" Score="0" ViewCount="" Body="&lt;p&gt;When you can look at the source code of something like boost (in c++. or boost equivalent in another language) and NOT BE &lt;strong&gt;afraid&lt;/strong&gt; of it.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-21T02:11:30.833" CommunityOwnedDate="2010-09-21T02:11:30.833" />
  <row Id="5765" PostTypeId="2" ParentId="5384" CreationDate="2010-09-21T02:57:13.850" Score="0" ViewCount="" Body="&lt;p&gt;Easy i say.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just reformat it. If they get viruses so easily they may not use a computer often so may not care if it gets rid of the virus. If i am 5mins walking distance from the computer i'll go, open up MS config, check out the non MS services, uncheck some boot up apps and i am 'done'. If it doesnt work i say 'reformat it'.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-21T02:57:13.850" CommunityOwnedDate="2010-09-21T02:57:13.850" />
  <row Id="5766" PostTypeId="2" ParentId="5384" CreationDate="2010-09-21T03:17:01.143" Score="0" ViewCount="" Body="&lt;p&gt;If its someone I know, I tell them I don't fix computers anymore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's Family, always.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't like to make money on computer repair and maintenance because I feel like a crook. Charging someone to remove viruses or 5 minutes to place and configure PCI-hardware components just doesn't seem right to me.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-09-21T03:17:01.143" CommunityOwnedDate="2010-09-21T03:17:01.143" CommentCount="1" />
  <row Id="5768" PostTypeId="2" ParentId="5757" CreationDate="2010-09-21T03:38:06.757" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;I believe it's partly because static methods are &quot;faster&quot; to call than instance methods. (In quotes because this smells of micro optimization) see &lt;a href=&quot;http://dotnetperls.com/static-method&quot; rel=&quot;nofollow&quot;&gt;http://dotnetperls.com/static-method&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;It's telling you that it doesn't need state, therefore could be called from anywhere, removing the instatiation overhead if that's the only thing someone needs.&lt;/li&gt;&#xA;&lt;li&gt;If I want to mock it, then I think it's generally the practice that it's declared on an interface. &lt;/li&gt;&#xA;&lt;li&gt;If it's declared on an interface then R# won't suggest you make it static.&lt;/li&gt;&#xA;&lt;li&gt;If it's declared virtual, then R# won't suggest you make it static either.&lt;/li&gt;&#xA;&lt;li&gt;Holding state (fields) statically is something that should always be considered &lt;em&gt;carefully&lt;/em&gt;. Static state and threads mix like lithium and water. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;R# isn't the only tool that will make this suggestion. FxCop/MS Code Analysis will also do the same. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would generally say that if the method is static, generally it should be testable as is as well. That brings some design consideration and probably more discussion than I have in my fingers right now, so patiently awaiting the down votes and comments... ;)&lt;/p&gt;&#xA;" OwnerUserId="1865" LastEditorUserId="1865" LastEditorDisplayName="" LastEditDate="2010-09-21T05:45:41.530" LastActivityDate="2010-09-21T05:45:41.530" CommentCount="2" />
  <row Id="5769" PostTypeId="2" ParentId="5757" CreationDate="2010-09-21T03:38:38.553" Score="0" ViewCount="" Body="&lt;p&gt;I believe that Resharper is giving you guidence and apply the coding guidelines it has been setup with. When I have used Resharper and it has told me that a method should be static it is bound to be on a private method that does not act on any instance variables.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now as for testablity this scenario shouldn't be an issue as you shouldn't test private methods anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the testability of static methods that are public then unit testing does become hard when static methods touch static state. Personally I would keep this to a minimum and use static methods as pure functions as much as possible where any dependencies are passed into the method which can be controlled via a test fixture. However this is a design decision.&lt;/p&gt;&#xA;" OwnerUserId="2073" LastActivityDate="2010-09-21T03:38:38.553" CommentCount="1" />
  <row Id="5770" PostTypeId="1" AcceptedAnswerId="5930" CreationDate="2010-09-21T03:46:36.363" Score="5" ViewCount="702" Body="&lt;p&gt;What's the smallest device/screen you've coded on? Small corrections count, because of the difficulty involved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you ever made a website from an Android, iPhone etc? Fixed a company webpage on the go?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Small means a mobile device with nonstandard keyboard layout etc that hinders typing and running code.&lt;/p&gt;&#xA;" OwnerUserId="67" LastEditorUserId="67" LastEditorDisplayName="" LastEditDate="2010-09-21T04:01:38.410" LastActivityDate="2010-11-16T12:27:29.443" ClosedDate="2010-10-12T20:08:23.677" Title="What's the smallest screen you've ever coded on?" Tags="&lt;tools&gt;&lt;monitor&gt;&lt;challenge&gt;" AnswerCount="28" CommentCount="3" FavoriteCount="1" />
  <row Id="5771" PostTypeId="2" ParentId="2715" CreationDate="2010-09-21T03:47:16.197" Score="0" ViewCount="" Body="&lt;p&gt;When I was first learning programming at 12, I put the braces on the next line because the Microsoft coding tutorials are like that. I also indented with 4-space TABS that time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After a few years, I learned Java and JavaScript, and saw more braces-on-same-line code, so I changed. I also began to indent with 2-spaces SPACES.&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-09-21T03:47:16.197" CommunityOwnedDate="2010-11-02T20:52:36.780" CommentCount="1" />
  <row Id="5772" PostTypeId="2" ParentId="2715" CreationDate="2010-09-21T03:57:48.380" Score="2" ViewCount="" Body="&lt;p&gt;Second example, I'm very big on readability. I can't stand looking at if blocks any other way =(&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-09-21T03:57:48.380" CommunityOwnedDate="2010-11-02T20:52:36.780" />
  <row Id="5773" PostTypeId="2" ParentId="5770" CreationDate="2010-09-21T03:59:12.187" Score="28" ViewCount="" Body="&lt;p&gt;The screen on the TI-81:&#xA;96x64 pixels,&#xA;16x8 characters&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/h5ObL.png&quot; alt=&quot;The TI-81&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="3157" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-09-22T01:14:29.070" LastActivityDate="2010-09-22T01:14:29.070" CommentCount="7" />
  <row Id="5774" PostTypeId="2" ParentId="5384" CreationDate="2010-09-21T04:08:02.550" Score="0" ViewCount="" Body="&lt;p&gt;I actually can do repairs and whatnot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I charge an hourly rate. Minimum one hour.&lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-09-21T04:08:02.550" CommunityOwnedDate="2010-09-21T04:08:02.550" />
  <row Id="5775" PostTypeId="2" ParentId="5770" CreationDate="2010-09-21T04:10:14.713" Score="2" ViewCount="" Body="&lt;p&gt;While the screen was a little bigger than what Ryan posted, it was my Commodore Vic 20, which was 24x40 characters. If that wasn't bad enough when playing with Basic, when I dialed into the school mainframe, it used an 80 character line. So each line wrapped onto two lines on my tv and reading my code was incredibly confusing.&lt;/p&gt;&#xA;" OwnerUserId="1236" LastActivityDate="2010-09-21T04:10:14.713" />
  <row Id="5776" PostTypeId="2" ParentId="5384" CreationDate="2010-09-21T04:26:11.533" Score="0" ViewCount="" Body="&lt;p&gt;Immediate family gets whatever I can do. If my father is willing to come over Sunday afternoon and fix a broken water pipe, I can get the printer working for his construction business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Friends/other family get by with a trade.  For instance, I fixed an in-laws computer remotely for a beer magazine subscription... next time I'm asking her to send me some scotch!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Co-workers and other peripheral types better be willing to part with some cash! I've run a PC repair business, with some degree of success, so I know they are willing to pay if they have to..  ;)&lt;/p&gt;&#xA;" OwnerUserId="1215" LastActivityDate="2010-09-21T04:26:11.533" CommunityOwnedDate="2010-09-21T04:26:11.533" />
  <row Id="5777" PostTypeId="2" ParentId="1106" CreationDate="2010-09-21T04:29:54.023" Score="0" ViewCount="" Body="&lt;p&gt;When you start imagining how a software you are looking was written in that language.&lt;/p&gt;&#xA;" OwnerUserId="1345" LastActivityDate="2010-09-21T04:29:54.023" CommunityOwnedDate="2010-09-21T04:29:54.023" />
  <row Id="5778" PostTypeId="2" ParentId="3684" CreationDate="2010-09-21T04:30:50.407" Score="1" ViewCount="" Body="&lt;p&gt;It's not downloadable yet (I'm working on it), but I think a lot of web developers may have found the &lt;a href=&quot;http://www.virtuosimedia.com/tutorials/ultimate-ie6-cheatsheet-how-to-fix-25-internet-explorer-6-bugs&quot; rel=&quot;nofollow&quot;&gt;Ultimate IE6 Cheatsheet&lt;/a&gt; that I wrote useful. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thankfully, it's becoming &lt;em&gt;less&lt;/em&gt; useful with each passing month. We're dropping IE6 support on our next redesign since our demographics allow for it. But it's there if you need it.&lt;/p&gt;&#xA;" OwnerUserId="73" LastActivityDate="2010-09-21T04:30:50.407" />
  <row Id="5779" PostTypeId="2" ParentId="5751" CreationDate="2010-09-21T04:32:15.120" Score="2" ViewCount="" Body="&lt;p&gt;Worst has got to be the Thinkpad keyboard.... their &quot;function&quot; key is in the left bottom and the left control is right next to it. If you don't use the thinkpad that often, you are hitting the function key constantly because you think it's the control. Most people I've seen who do keyboard cut and paste make it all left handed, so that really messes them up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I say worst because it's so close to what you think it should be, but then screws with your mind on something so fundamental for many of us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.thinkpads.com/2009/08/31/finally-photos-of-new-thinkpad-usb-trackpoint-keyboard/&quot; rel=&quot;nofollow&quot;&gt;Here&lt;/a&gt;'s an external keyboard with the same thing going.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-21T04:32:15.120" CommentCount="1" />
  <row Id="5780" PostTypeId="1" AcceptedAnswerId="5795" CreationDate="2010-09-21T04:33:34.417" Score="46" ViewCount="2310" Body="&lt;p&gt;My wife asked me and I didn't know.&lt;/p&gt;&#xA;" OwnerUserId="1444" LastEditorUserId="1444" LastEditorDisplayName="" LastEditDate="2010-09-21T04:48:14.750" LastActivityDate="2011-05-13T10:00:53.670" CommunityOwnedDate="2011-01-31T19:23:00.177" Title="Why are there so few female programmers?" Tags="&lt;gender&gt;" AnswerCount="20" CommentCount="10" FavoriteCount="20" />
  <row Id="5781" PostTypeId="2" ParentId="220" CreationDate="2010-09-21T04:38:41.230" Score="1" ViewCount="" Body="&lt;p&gt;Wow.  I'd try to keep a friend on the hook that I could call when I was in trouble - and talk through the coding problem.  You know what I mean... just the act of explaining a problem out loud brings a solution to &lt;em&gt;my&lt;/em&gt; mind 90% of the time.&lt;/p&gt;&#xA;" OwnerUserId="2671" LastActivityDate="2010-09-21T04:38:41.230" CommentCount="2" />
  <row Id="5782" PostTypeId="2" ParentId="326" CreationDate="2010-09-21T04:40:40.133" Score="0" ViewCount="" Body="&lt;p&gt;Never forget again: &lt;a href=&quot;http://reminderfox.mozdev.org/&quot; rel=&quot;nofollow&quot;&gt;ReminderFox&lt;/a&gt; remembers things so that you don't have to! &lt;/p&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-09-21T04:40:40.133" CommunityOwnedDate="2010-09-21T04:40:40.133" />
  <row Id="5783" PostTypeId="2" ParentId="5770" CreationDate="2010-09-21T04:45:49.610" Score="1" ViewCount="" Body="&lt;p&gt;A Hewlett-Packard HP-33E. The display was (IIRC) 10 digits of 7-segment LEDs. Since it was all I had at the time, I wrote quite a bit on it. When I got an HP-41C with 10 &lt;em&gt;alphanumeric&lt;/em&gt; characters, I figured that was pretty darned cool. Come to think of it, it was -- I have an hp 49G+, but I still use the 41 a lot more. After ~30 years, I've gotten fairly used to it...&lt;/p&gt;&#xA;" OwnerUserId="902" LastEditorUserId="902" LastEditorDisplayName="" LastEditDate="2010-09-21T05:01:40.813" LastActivityDate="2010-09-21T05:01:40.813" CommentCount="2" />
  <row Id="5784" PostTypeId="2" ParentId="5770" CreationDate="2010-09-21T04:56:56.010" Score="0" ViewCount="" Body="&lt;p&gt;A Handspring Deluxe, with a 160x160 monochrome display, using only Graffiti.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was too difficult to write moderately complex code, and I soon gave up on it.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-09-21T04:56:56.010" CommentCount="1" />
  <row Id="5785" PostTypeId="2" ParentId="4177" CreationDate="2010-09-21T04:58:42.423" Score="3" ViewCount="" Body="&lt;p&gt;Perl or Python. I need to find the right tool for the job analyzed by case-by-case basis. One day, I made a mass image crawler in Perl, and it generates F# code (parallelized) to download them all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fluency matters, if I forgot the syntax of Perl, or how to open files in F#, that will waste time. Also, I must look up how to make one-line for loops in Bash.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(try this: &lt;code&gt;cat /usr/share/dict/words | pcregrep &quot;^[a-foisA-FOIS]+$&quot; | perl -ne &quot;print;y/a-fA-Fois/A-FA-F015/;print '-&amp;gt; ';print&quot;&lt;/code&gt;, hexspeak dictionary, I used &lt;code&gt;pcregrep&lt;/code&gt; because of the lack of knowledge)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After repeated use of the script, I will rewrite it as a generalized utility.&lt;/p&gt;&#xA;" OwnerUserId="1325" LastEditorUserId="1325" LastEditorDisplayName="" LastEditDate="2010-09-21T05:04:33.933" LastActivityDate="2010-09-21T05:04:33.933" />
  <row Id="5786" PostTypeId="2" ParentId="5613" CreationDate="2010-09-21T05:04:17.647" Score="2" ViewCount="" Body="&lt;p&gt;It's not the frameworks that dumb down programmers.  Dumb programmers will be dumb whether they use frameworks or not.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's certainly true that understanding the low-level work that a tool or framework helps you to streamline makes you a better user of the tools and frameworks.  You can also debug problems more easily, and work around the tools' inevitable gaps in functionality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I took a class in Compiler Design in college, where we coded an LR parser from scratch in C, before learning to use parser generators like lex and yacc.  It was very educational, and since then I've had a better understanding and appreciation for all programming languages I used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I'm not saying every programmer is required to toil away waxing Mr. Miyagi's car for years and years before they can be permitted to work at a high level.  A lot of programming work is intellectual, deciding what the software &lt;em&gt;needs to do&lt;/em&gt;, not the mechanical work of coding in a particular language or tool.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That intellectual work is where smartness vs. dumbness is even more important.&lt;/p&gt;&#xA;" OwnerUserId="471" LastActivityDate="2010-09-21T05:04:17.647" />
  <row Id="5787" PostTypeId="2" ParentId="1768" CreationDate="2010-09-21T05:07:07.813" Score="0" ViewCount="" Body="&lt;p&gt;For business applications C# or VB using &lt;a href=&quot;http://www.microsoft.com/visualstudio/en-us/lightswitch&quot; rel=&quot;nofollow&quot;&gt;Visual Studio Lightswitch&lt;/a&gt; is a new fast and powerfull way to start business applications and the scale as needed.&lt;/p&gt;&#xA;" OwnerUserId="232" LastActivityDate="2010-09-21T05:07:07.813" />
  <row Id="5788" PostTypeId="2" ParentId="5780" CreationDate="2010-09-21T05:12:54.030" Score="1" ViewCount="" Body="&lt;p&gt;Based on my experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back when I was college, female population where more than the male when we graduated in our IT department. But after that, those females did not went to seek jobs that inline them. One said, trouble about programming just have to stay to her college life. Maybe that's one reason.&lt;/p&gt;&#xA;" OwnerUserId="2126" LastActivityDate="2010-09-21T05:12:54.030" CommunityOwnedDate="2011-01-31T19:23:00.177" />
  <row Id="5789" PostTypeId="2" ParentId="5770" CreationDate="2010-09-21T05:34:56.843" Score="2" ViewCount="" Body="&lt;p&gt;1-bit, non-backlit LCD display you could barely read even indoors, but you know what, it rocked.&#xA;&lt;img src=&quot;http://i.imgur.com/xhaN3.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-21T05:34:56.843" CommentCount="1" />
  <row Id="5790" PostTypeId="2" ParentId="5705" CreationDate="2010-09-21T05:46:57.193" Score="5" ViewCount="" Body="&lt;p&gt;Learn elisp.   &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;It allows you to program any shortcut you can think of.  Any time you find yourself performing a multi-step process for something useful, you make a function out of it and bind it to a hotkey combo.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It lets you experiment with functional programming - learning a new paradigm is a good way to expand your horizons.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="145" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-24T05:26:40.550" LastActivityDate="2010-09-24T05:26:40.550" CommentCount="1" />
  <row Id="5791" PostTypeId="2" ParentId="5780" CreationDate="2010-09-21T05:52:50.910" Score="11" ViewCount="" Body="&lt;p&gt;Probably something to do with social expectations. It wasn't that long ago we were supposed to stay at home and raise a family, and it takes a while for that to work its way out of a generation.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-09-21T05:52:50.910" CommunityOwnedDate="2011-01-31T19:23:00.177" CommentCount="6" />
  <row Id="5792" PostTypeId="2" ParentId="220" CreationDate="2010-09-21T05:58:43.837" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Either work to well defined sprints, or deliberately choose a Kanban approach. Don't accidentally end up in Kanban&lt;/li&gt;&#xA;&lt;li&gt;Bugs first, features second.&lt;/li&gt;&#xA;&lt;li&gt;Still keep a focus on Value vs. feature bloat. (YAGNI over Gold Plating)&lt;/li&gt;&#xA;&lt;li&gt;Retrospectives are just as valuable. And just as importantly, make process changes in small chunks. Don't decide that today you're going start to go TDD, Mock and IoC in one shot unless you really have no external features to deliver ATM. Bring one in at a time.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Ultimately, I define Agile really as &quot;doing what makes sense for your team and customer and not adhering to old practices because they happened to look like they worked in the past.&quot; &lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-21T05:58:43.837" />
  <row Id="5793" PostTypeId="2" ParentId="5770" CreationDate="2010-09-21T06:15:45.607" Score="6" ViewCount="" Body="&lt;p&gt;I have typed (numerical keypad!) and tried little python programs on a &lt;a href=&quot;http://en.wikipedia.org/wiki/Nokia_6600&quot; rel=&quot;nofollow&quot;&gt;nokia 6600&lt;/a&gt; with the pys60 python implementation. It has a 176x208 display. I don't think I've used anything smaller. They were just a few lines, nothing serious.&lt;/p&gt;&#xA;" OwnerUserId="2874" LastActivityDate="2010-09-21T06:15:45.607" CommentCount="4" />
  <row Id="5794" PostTypeId="2" ParentId="5780" CreationDate="2010-09-21T06:19:45.367" Score="9" ViewCount="" Body="&lt;p&gt;Most games are targeted at the macho market. Don't underestimate that hook. I would have never ended up in an IT field if I didn't have to fight with 640K to get games to run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think part of the answer lies in the answer to one of the hardest questions in a marriage (assuming it's a traditional marriage): Why does the woman care so much about that paint color while the man cares so little?&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-21T06:19:45.367" CommunityOwnedDate="2011-01-31T19:23:00.177" CommentCount="2" />
  <row Id="5795" PostTypeId="2" ParentId="5780" CreationDate="2010-09-21T06:20:29.003" Score="55" ViewCount="" Body="&lt;p&gt;Could it be cos it's such a stoopid job. Sitting in a darkened room, staring at a flickering screen, mumbling to yourself, trying to figure out why the page renders one pixel too far to the left. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps the girls are just too smart :-)&lt;/p&gt;&#xA;" OwnerUserId="598" LastActivityDate="2010-09-21T06:20:29.003" CommunityOwnedDate="2011-01-31T19:23:00.177" CommentCount="6" />
  <row Id="5796" PostTypeId="2" ParentId="5780" CreationDate="2010-09-21T06:22:50.180" Score="3" ViewCount="" Body="&lt;p&gt;There is a big &lt;a href=&quot;http://ezinearticles.com/?The-Theory-of-Biological-Real-Differences-Between-Men-and-Women&amp;amp;id=3688653&quot; rel=&quot;nofollow&quot;&gt;biological&lt;/a&gt; part. We are programmed to behave differently, and thanks to that, we can combine our efforts to allow procreation. But this doesn't prevent us to do &quot;unconventional&quot; decisions. In fact, I like the idea to be unconventional.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is also the cultural aspect. In western countries, it's not common, but in some countries like India, there is a lot of female programmers. Certainly because there, programming is less a passion than a profession.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still today, I've haven't met any girl programming by passion. I know they exist since one of them actually wrote a wonderful book called &quot;Design Patterns, Head First&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe it's a combination of the biological &amp;amp; cultural reason.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-09-21T12:09:29.667" LastActivityDate="2010-09-21T12:09:29.667" CommunityOwnedDate="2011-01-31T19:23:00.177" CommentCount="11" />
  <row Id="5797" PostTypeId="2" ParentId="5749" CreationDate="2010-09-21T06:32:39.363" Score="5" ViewCount="" Body="&lt;p&gt;There are advantages and disadvantages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You listed the most important disadvantage to me: you can't share with colleagues. But you are here with us right ? You can share with us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main advantages are the following:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;You are the top&lt;/strong&gt; in your field in your company, and you will be there for a long time. This is very important. In large enterprise where you have dozens of developers, there is lots of competition, and most are affected by that. That's stupid, but it's the human nature.&lt;/li&gt;&#xA;&lt;li&gt;Since it's a small company, you will be likely the guy to get the approval from to hire new IT people that you will manage. This will put in a nice position where &lt;strong&gt;you will have many choices&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Being the only one to manage IT (even in a small company), &lt;strong&gt;is an opportunity&lt;/strong&gt;. You will be credited for the successes.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-21T06:32:39.363" CommentCount="1" />
  <row Id="5798" PostTypeId="2" ParentId="1483" CreationDate="2010-09-21T06:39:20.833" Score="0" ViewCount="" Body="&lt;p&gt;Have a look on this Chinese markup language project site:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://code.google.com/p/chtml/&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/p/chtml/&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-09-21T06:39:20.833" CommunityOwnedDate="2010-09-21T06:39:20.833" />
  <row Id="5799" PostTypeId="2" ParentId="5770" CreationDate="2010-09-21T07:09:34.783" Score="2" ViewCount="" Body="&lt;p&gt;Not sure if it counts, but way back in the 80's. There were computers with a display of 4 + 2 seven segment displays. Perfectly suitable for programming in machine code.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-21T07:09:34.783" CommentCount="1" />
  <row Id="5800" PostTypeId="2" ParentId="5749" CreationDate="2010-09-21T07:10:09.537" Score="8" ViewCount="" Body="&lt;p&gt;There is one distinct disadvantage to being the only developer - &lt;strong&gt;you have nobody to learn from&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion the best way to become a better programmer is to work with people who are better developers.  If you're the solo developer you have to go out of your way to learn new technologies, concepts and language features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's important for any serious programmer to surround himself with other programmers who can challenge him at what he does.  If you're working on your own you're missing out on a large chunk of what programming is all about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can probably earn a decent salary doing this and make yourself indispensable, but &lt;strong&gt;in the long term&lt;/strong&gt; you're not going to grow as much as you can and I think the disadvantages outweigh the advantages in this case. &lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-21T07:10:09.537" />
  <row Id="5801" PostTypeId="2" ParentId="3282" CreationDate="2010-09-21T07:19:15.680" Score="2" ViewCount="" Body="&lt;p&gt;I got lots of scary code to maintain right now on one of our large projects.  It really makes me sick every time I'm facing in front of my laptop untangling spaghetti code.  One of those are nonsense for-loops with nonsense variables in it.  The person responsible for it already left our company and he didn't fix the code ever.&lt;/p&gt;&#xA;" OwnerUserId="1496" LastActivityDate="2010-09-21T07:19:15.680" CommunityOwnedDate="2011-01-14T18:11:43.393" />
  <row Id="5802" PostTypeId="2" ParentId="2541" CreationDate="2010-09-21T07:26:16.760" Score="1" ViewCount="" Body="&lt;p&gt;I frown when I'm really angry then I shift back my focus to coding.&lt;/p&gt;&#xA;" OwnerUserId="1496" LastActivityDate="2010-09-21T07:26:16.760" CommunityOwnedDate="2011-02-24T18:42:53.810" />
  <row Id="5803" PostTypeId="2" ParentId="5770" CreationDate="2010-09-21T07:29:04.663" Score="3" ViewCount="" Body="&lt;p&gt;The smallest screen I ever had coded on was the 240×128px screen of the voyage 200 calculator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/zHUPg.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="139" LastActivityDate="2010-09-21T07:29:04.663" CommentCount="3" />
  <row Id="5804" PostTypeId="2" ParentId="5780" CreationDate="2010-09-21T07:32:21.723" Score="6" ViewCount="" Body="&lt;p&gt;In my country, take an example of my class. there was around 62 students in computer science engineering out of which 24 was girls. Believe me or not out of 24 twenty got passed with good score. Imagine out of first 10 students 7 was girls. Of course they showed more intelligence than boys but alas only 3-4 of them are interested in doing job. They all wanted to get higher degree but not to work. I asked to few of them and they replied that they just want to get married and nothing else. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But from last two years I can see lots of female programmers and they are working very good. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And the moral of the story is that &quot;It's all about necessity and interest&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1474" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-21T10:50:00.603" LastActivityDate="2010-09-21T10:50:00.603" CommunityOwnedDate="2011-01-31T19:23:00.177" CommentCount="1" />
  <row Id="5805" PostTypeId="2" ParentId="1202" CreationDate="2010-09-21T07:32:33.487" Score="-1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://ejohn.org/about/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;John Resig&lt;/strong&gt;&lt;/a&gt; creator of Jquery&lt;/p&gt;&#xA;" OwnerUserId="3168" LastActivityDate="2010-09-21T07:32:33.487" CommunityOwnedDate="2010-09-21T07:32:33.487" CommentCount="2" />
  <row Id="5806" PostTypeId="2" ParentId="5466" CreationDate="2010-09-21T07:36:00.477" Score="0" ViewCount="" Body="&lt;p&gt;I have no idea but my manger do need some technical knowledge. It is impossible to explain him sometimes.&lt;/p&gt;&#xA;" OwnerUserId="1474" LastActivityDate="2010-09-21T07:36:00.477" />
  <row Id="5807" PostTypeId="2" ParentId="1768" CreationDate="2010-09-21T07:37:32.973" Score="8" ViewCount="" Body="&lt;p&gt;There is objectively no &quot;right&quot; answer to this question.  A lot of modern languages are suitable for this kind of task, and it id not possible to objectively choose between them based on the requirements you have stated.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Team skills doesn't matter. It's a green field project.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Team skills DO matter.  Even for a green field project.  Developers do not grow on trees, especially good ones&lt;sup&gt;*&lt;/sup&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are not sufficiently experienced &lt;em&gt;as a software developer&lt;/em&gt; to make these decisions for yourself, you need to recruit a lead developer with the technical knowledge and experience, and let &lt;strong&gt;him&lt;/strong&gt; make the decision about which implementation language(s) to use.  Things that a competent tech lead would consider include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the scope of the project; i.e. how much functionality&lt;/li&gt;&#xA;&lt;li&gt;the timescales for delivery of the first release of the project&lt;/li&gt;&#xA;&lt;li&gt;the required software quality&lt;/li&gt;&#xA;&lt;li&gt;the target size of the team&lt;/li&gt;&#xA;&lt;li&gt;the availability of skilled staff in your area ... in the salary range you are prepared to pay&lt;/li&gt;&#xA;&lt;li&gt;the scope for building on existing software (e.g. existing open source projects)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;All of these issues are relevant in one way or another to picking the best language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;* Good developers, not good trees :-)&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-11-24T02:58:35.937" LastActivityDate="2010-11-24T02:58:35.937" />
  <row Id="5808" PostTypeId="2" ParentId="5757" CreationDate="2010-09-21T07:37:58.653" Score="2" ViewCount="" Body="&lt;p&gt;Check this out: &lt;a href=&quot;http://misko.hevery.com/2008/12/15/static-methods-are-death-to-testability/&quot; rel=&quot;nofollow&quot;&gt;&quot;Static Methods are Death to Testability&quot;&lt;/a&gt;. Short summary of the argument:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To unit test you need to take a small piece of your code, rewire its dependencies and test it in isolation. This is hard with static methods, not only in the case they access global state but even if they just call other static methods.&lt;/p&gt;&#xA;" OwnerUserId="2696" LastActivityDate="2010-09-21T07:37:58.653" CommentCount="3" />
  <row Id="5810" PostTypeId="2" ParentId="604" CreationDate="2010-09-21T07:45:45.137" Score="1" ViewCount="" Body="&lt;p&gt;It's arbitrary, but there is a non-arbitrary limit to what is easy to read. I find that super-wide columns of text are very hard to scan and read, regardless of if they are code or prose. Further, as a lot of other answers have pointed out, it's not like this code is going to be the only thing up on your screen. It's great to have two or more windows of code up at the same time, and have them fit on one wide screen monitor.&lt;/p&gt;&#xA;" OwnerUserId="2617" LastActivityDate="2010-09-21T07:45:45.137" />
  <row Id="5812" PostTypeId="2" ParentId="272" CreationDate="2010-09-21T08:25:09.650" Score="2" ViewCount="" Body="&lt;p&gt;Software Developer unless I'm speaking to someone completely non technical (eg. a friend of my Mum's) where I'll call myself a Computer Programmer.&lt;/p&gt;&#xA;" OwnerUserId="3179" LastActivityDate="2010-09-21T08:25:09.650" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="5813" PostTypeId="1" AcceptedAnswerId="5840" CreationDate="2010-09-21T08:29:06.900" Score="2" ViewCount="142" Body="&lt;p&gt;In pretty much every installer, and most places you can change your locale settings, you're presented with a lovely long list of the various languages you can choose from.&#xA;However, the one language that never seems to appear in that list is British/English English, or just &quot;English&quot;. Almost always the choice seems to be between US English, and International English.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But as the founding country of the often misused and abused language, it seems a little unfair that the true &quot;English&quot; isn't represented - especially when &quot;US English&quot; appears.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a reason for the omission?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;:)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Added some example screenshots:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/p2dih.png&quot; alt=&quot;Example 1&quot;&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/T2280.gif&quot; alt=&quot;Example 2&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1025" LastEditorUserId="1025" LastEditorDisplayName="" LastEditDate="2010-09-21T09:00:58.330" LastActivityDate="2010-09-21T09:32:08.327" ClosedDate="2010-09-21T13:49:06.397" Title="Why is there never an ENGLISH English - it's always US English or International English?" Tags="&lt;spoken-languages&gt;&lt;international&gt;" AnswerCount="2" CommentCount="9" />
  <row Id="5814" PostTypeId="2" ParentId="5770" CreationDate="2010-09-21T08:30:14.030" Score="2" ViewCount="" Body="&lt;p&gt;Remembering &lt;a href=&quot;http://en.wikipedia.org/wiki/Sinclair_ZX81&quot; rel=&quot;nofollow&quot;&gt;ZX81&lt;/a&gt; :&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/GEKDr.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The screen was text only, 32 characters wide by 24 high. Blocky graphics with a resolution of 64 by 48 pixels were possible by the use of the PLOT command, which selected among a set of 16 graphics characters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because the display was generated primarily by software in the ZX81 ROM, it was possible to override the interrupt service routine  and generate the display oneself. Several &quot;hi-res&quot; (meaning, 256×192, rather than 64×48) games did this, notably from a company called Software Farm.&lt;/p&gt;&#xA;" OwnerUserId="1905" LastActivityDate="2010-09-21T08:30:14.030" CommentCount="1" />
  <row Id="5816" PostTypeId="2" ParentId="5749" CreationDate="2010-09-21T08:39:54.760" Score="4" ViewCount="" Body="&lt;p&gt;I spent a few years as a solo programmer in a non tech company.  I was employed for my techie skills but soon found a use for my programming skills (from writing small utilities to reasonable size dev projects).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the benefits was that I was able to read up on &quot;best practice&quot; and implement them within the organisation (eg source control, unit testing, functional testing etc...).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also gave me an insight into the full lifecycle, from requirements gathering and use case specification through to post release support and release management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel that the experience made me a more rounded developer, and the experience has been a benefit now that I work for a software dev company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With regards to feeling solitary, I agree - I felt the same way. Internet communities are useful for bouncing ideas off, and local user groups can also prove entertaining.  Don't have one local? Start one - there's likely to be people local to you in the same boat!&lt;/p&gt;&#xA;" OwnerUserId="2397" LastActivityDate="2010-09-21T08:39:54.760" />
  <row Id="5819" PostTypeId="2" ParentId="5770" CreationDate="2010-09-21T08:56:16.527" Score="1" ViewCount="" Body="&lt;p&gt;The smallest screen I ever worked on was one LED, I programmed it to flicker by rewiring the hardware.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-21T08:56:16.527" CommentCount="2" />
  <row Id="5820" PostTypeId="2" ParentId="5372" CreationDate="2010-09-21T09:00:59.437" Score="0" ViewCount="" Body="&lt;p&gt;Two words:  Treadmill desk.  It took some doing to find the right cheap treadmill on Craigslist and figure out how to fit it with a desktop, and I'm still getting used to it, but already my nagging back problems are becoming less nagging.  And I don't have any more trouble fitting exercise into my work day than I do fitting work into my work day.&lt;/p&gt;&#xA;" OwnerUserId="3138" LastActivityDate="2010-09-21T09:00:59.437" CommunityOwnedDate="2010-09-21T09:00:59.437" CommentCount="2" />
  <row Id="5821" PostTypeId="2" ParentId="2291" CreationDate="2010-09-21T09:01:01.340" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://msdn.microsoft.com/fr-fr/vcsharp/default.aspx&quot; rel=&quot;nofollow&quot;&gt;C#&lt;/a&gt;&lt;/strong&gt;: in school&lt;/p&gt;&#xA;" LastActivityDate="2010-09-21T09:01:01.340" CommunityOwnedDate="2010-09-21T09:01:01.340" />
  <row Id="5829" PostTypeId="2" ParentId="1004" CreationDate="2010-09-21T09:14:10.257" Score="1" ViewCount="" Body="&lt;p&gt;I suspect that JRuby is used a lot more than is obvious, and it definitely has a lot more potential still. It seems to be thought of as a Java compatibility shim but it can be used as a straight replacement for MRI/YARV with excellent Windows support. After I heard about the Microsoft decision I reevaluated JRuby, and it's now my preferred Ruby version for Windows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;JRuby also makes Ruby very capable in areas where the main implementation is weak, such as graphical interfaces. Going forward, there's the Rubuto project for running JRuby on Android and the Torquebox application server, which could become a big deal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, I suspect that most people will stick with the default Ruby implementation out of inertia.&lt;/p&gt;&#xA;" OwnerUserId="3183" LastEditorUserId="3183" LastEditorDisplayName="" LastEditDate="2010-09-27T21:02:47.707" LastActivityDate="2010-09-27T21:02:47.707" CommentCount="1" />
  <row Id="5831" PostTypeId="2" ParentId="5813" CreationDate="2010-09-21T09:15:29.197" Score="1" ViewCount="" Body="&lt;p&gt;When the list of languages is a bit more extensive, English (UK) will be there.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you can imagine that it takes some effort to provide your app in multiple languages. So adding an English (UK) next to English (US) might have less priority as it doesn't really increase your target audience that much. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, the fact that it is usually English (US) instead of English (UK) is probably because the US has had more influence on software. At least, that's what I think.&lt;/p&gt;&#xA;" OwnerUserId="560" LastActivityDate="2010-09-21T09:15:29.197" />
  <row Id="5834" PostTypeId="1" CreationDate="2010-09-21T09:16:53.780" Score="8" ViewCount="612" Body="&lt;p&gt;No doubt, the programmer's job is quite unique: it's creative as you implement new stuff so you can then see and try the results of your efforts. It's challenging as you often have to use different technologies, solve complex problems. It can make you learn a lot if you'd like to be valuable or just interested. It's also quite geeky and technical. Please, forget about all the drawbacks in the industry for now. I'm interested if there is some other jobs with similar features. If one decides to leave the industry where else they can fine the similar mix of creativity/tech ?&lt;/p&gt;&#xA;" OwnerUserId="3189" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-21T10:54:23.383" LastActivityDate="2010-10-07T17:48:12.810" Title="What job is similar to programmer's?" Tags="&lt;jobs&gt;" AnswerCount="21" CommentCount="2" FavoriteCount="3" />
  <row Id="5836" PostTypeId="2" ParentId="2051" CreationDate="2010-09-21T09:19:28.743" Score="3" ViewCount="" Body="&lt;p&gt;&quot;Is there a way to make bar codes appear on the screen so that the user can scan them into the computer?&quot;&lt;/p&gt;&#xA;" OwnerUserId="3138" LastActivityDate="2010-09-21T09:19:28.743" CommunityOwnedDate="2010-09-21T09:19:28.743" CommentCount="4" />
  <row Id="5839" PostTypeId="2" ParentId="2214" CreationDate="2010-09-21T09:24:26.300" Score="5" ViewCount="" Body="&lt;p&gt;Sushi with the team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A bellyfull of glorious, delicious, fresh raw fish simply can't be beat.&lt;/p&gt;&#xA;" OwnerUserId="819" LastActivityDate="2010-09-21T09:24:26.300" CommunityOwnedDate="2011-03-31T09:31:23.023" CommentCount="1" />
  <row Id="5840" PostTypeId="2" ParentId="5813" CreationDate="2010-09-21T09:32:08.327" Score="4" ViewCount="" Body="&lt;p&gt;Maybe it's to do with locales: English (UK) might suggest that the software will use British conventions, such as dd/mm/yyyy dates and £ as the currency indicator. English (International) is probably dd/mm/yyyy dates but with $ as the currency indicator, as used by many Anglophone countries (Australia, New Zealand, Canada, Singapore).&lt;/p&gt;&#xA;" OwnerUserId="122" LastActivityDate="2010-09-21T09:32:08.327" CommentCount="1" />
  <row Id="5841" PostTypeId="2" ParentId="5834" CreationDate="2010-09-21T09:35:28.383" Score="2" ViewCount="" Body="&lt;p&gt;Electronician is very close.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-21T09:35:28.383" CommentCount="3" />
  <row Id="5842" PostTypeId="2" ParentId="3317" CreationDate="2010-09-21T09:35:32.610" Score="0" ViewCount="" Body="&lt;p&gt;There are already a bunch of answers, but I still wanted to add my own perspective.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, the way I see it is that someone who programs is a programmer and someone who develops is a developer. (Pretty lame I know)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you are a programmer if you write code and you are a developer if you are involved in more aspects of the creation of the software in question. &quot;That's what ChrisF said!&quot; you say. Well I would like to add that usually a developer is also a programmer. You might even say that 'developers' is a subset of 'programmers', but there is probably someone who can find &lt;em&gt;some&lt;/em&gt; counter example for that.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, as mentioned in the other answers, the usage of those term depends heavily on the person using it.&lt;/p&gt;&#xA;" OwnerUserId="560" LastActivityDate="2010-09-21T09:35:32.610" />
  <row Id="5843" PostTypeId="2" ParentId="4001" CreationDate="2010-09-21T09:36:27.187" Score="1" ViewCount="" Body="&lt;p&gt;The language barrier will be the first hurdle i.e. the accents take getting used to on both sides. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a tendency to do all the design work onshore and send over word documents (or low level designs) for the offshore team to code. This means trouble and leads to clarification calls on a regular basis. On top of that, you're likely to meet those who &quot;code by google&quot; or &quot;plz-send-me-the-codes&quot;. Most of them frequent SO as well I guess.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What we had in our company is daily stand up calls with both onsite and offshore teams. This builds a sense of common ownership for the project, rather than an &quot;Us v Them&quot; mentality. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over a period of time, the onsite team get more comfortable delegating independent modules or say the maven build process offshore. Provided there is a review mechanism in place, this works out quite fine for all. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also our specific coding environment was TDD which means the reviewing team can see the daily build reports for code checked-in, along with unit tests, findbugs reports, lint4j reports etc (all for java). So this also helps in seeing what the guys are up to, rather than a Waterfall-based Failure at the time of testing.&lt;/p&gt;&#xA;" OwnerUserId="1681" LastActivityDate="2010-09-21T09:36:27.187" />
  <row Id="5844" PostTypeId="2" ParentId="4865" CreationDate="2010-09-21T09:38:13.447" Score="0" ViewCount="" Body="&lt;p&gt;I worked remotely for last couple of months and I found a rather strange position for coding. I lay on my back and put my laptop on my stomach. Then I keep holding my head up without any support. I can do it for many hours strait.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not long ago I switched my job and now I work at the office table. I still find it pretty strange and quite inconvenient.&lt;/p&gt;&#xA;" OwnerUserId="3191" LastActivityDate="2010-09-21T09:38:13.447" />
  <row Id="5846" PostTypeId="2" ParentId="5749" CreationDate="2010-09-21T09:40:54.613" Score="3" ViewCount="" Body="&lt;p&gt;My experience has been similar to ChrisB's. I was effectively the sole application developer for my department for three years until we (recently) brought in a second developer, and that has changed the situation a lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The great thing about being only technical guy is that you can learn something new and implement it without convincing or training anyone else. Once you have other technical people then you need to carry them with you, which slows things down a lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The big disadvantage is that there a limit to what you can or will learn on your own, so you need to work harder to stay disciplined and keep progressing, and will eventually reach a limit. I think that once you reach a certain point you can't easily progress further except by interacting with developers more expert that yourself - advocates of Software Craftsmanship ideas have a lot of interesting things to say about mentoring.&lt;/p&gt;&#xA;" OwnerUserId="3183" LastActivityDate="2010-09-21T09:40:54.613" />
  <row Id="5849" PostTypeId="2" ParentId="4507" CreationDate="2010-09-21T09:56:39.953" Score="5" ViewCount="" Body="&lt;p&gt;Well. Ruby community has &lt;a href=&quot;http://heroku.com/&quot; rel=&quot;nofollow&quot;&gt;http://heroku.com/&lt;/a&gt; Free quotas are not as big as Google's but one can use traditional persistence mechanisms. So it's much easier to migrate to your own infrastructure later on (or move a stand-alone app to Heroku).&lt;/p&gt;&#xA;" OwnerUserId="3191" LastActivityDate="2010-09-21T09:56:39.953" />
  <row Id="5851" PostTypeId="2" ParentId="5834" CreationDate="2010-09-21T10:10:59.193" Score="7" ViewCount="" Body="&lt;p&gt;In the music business is a lot going on either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lots of similarities:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Both are creative jobs.&lt;/li&gt;&#xA;&lt;li&gt;They require a certain amount of skill.&lt;/li&gt;&#xA;&lt;li&gt;They both have a design part to create the piece, then it can be run/played whenever you like.&lt;/li&gt;&#xA;&lt;li&gt;The product is easy to copy.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-21T10:10:59.193" CommentCount="3" />
  <row Id="5852" PostTypeId="2" ParentId="5780" CreationDate="2010-09-21T10:13:02.987" Score="8" ViewCount="" Body="&lt;p&gt;I would have voted up and commented on the other answer that had similar content to mine (and was voted down), but I need to add support to the biological component despite my lack of 15 reputation to do so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before you vote me (or him) down, consider whether political correctness is impairing your critical thinking. Males and females are very different, in a multitude of areas. Women have demonstrated in numerous cultures that they are just as capable as men in being able to learn the skills and perform the tasks involved with highly technical professions such as programming, but the disparity comes down to a case of motivation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whilst there are certainly exceptions to every rule (some boys like dolls, some girls like guns), by and large, women trend towards feminine activities (which tend to have a focus on creative and social components) and men trend towards masculine activities (which tend to have technical, physical and competitive components).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not 50's chauvinism at work, this is millions of years of evolution and biology. Women are not discouraged from this field at all, they just don't trend towards actually being interested in it at all.&lt;/p&gt;&#xA;" OwnerUserId="3198" LastActivityDate="2010-09-21T10:13:02.987" CommunityOwnedDate="2011-01-31T19:23:00.177" CommentCount="8" />
  <row Id="5853" PostTypeId="2" ParentId="5394" CreationDate="2010-09-21T10:13:52.460" Score="6" ViewCount="" Body="&lt;p&gt;The worst project I ever worked on was a 19-month-long death march that employed over 50 consultants at a total cost well north of $17 million.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(That's a disputed figure; the consulting organization believes that the total cost was $35 million, but $17 million's what the company I worked for paid them.  It will give you an idea how bad the behavior was on both sides of the relationship that despite the fact that we paid them $17 million and got nothing usable, and despite the fact that we stiffed them on $18 million in billings, neither company sued the other.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's really no way for me to adequately describe this project in a single post.  Here's an anecdote, though, that will give you an idea of the &lt;em&gt;texture&lt;/em&gt; of this project.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eleven months in, it had become clear to me that we didn't have any kind of scope control, and the consultants were responding to the pitching and yawing of my idiot CEO the way the workers do every time Cary Grant changes his mind in &lt;em&gt;Mr. Blandings Builds His Dream Home&lt;/em&gt;.  So I decreed, having just read Steve McConnell's &lt;em&gt;Software Project Survival Guide&lt;/em&gt; in an attempt to understand what was happening, that we needed a change-control board.  I made a good enough case for it that even the consultants agreed it was worth doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first meeting of the CCB included, on the consultants' side:  the program manager, the overall product manager, the client project managers (each of whom managed the relationship with one of our clients - yes, this really happened), the database administrator, the technical architect - in short, the cost to us for this meeting was about $2000 an hour.  Here's the meeting agenda our $350/hour program manager came up with:  What should our process be?&lt;/p&gt;&#xA;" OwnerUserId="3138" LastActivityDate="2010-09-21T10:13:52.460" CommunityOwnedDate="2010-09-21T10:13:52.460" CommentCount="2" />
  <row Id="5854" PostTypeId="2" ParentId="2291" CreationDate="2010-09-21T10:15:37.850" Score="0" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/IBM_BASICA&quot; rel=&quot;nofollow&quot;&gt;IBM BASICA&lt;/a&gt;&lt;/h2&gt;&#xA;" OwnerUserId="1622" LastEditorUserId="1622" LastEditorDisplayName="" LastEditDate="2010-09-21T10:22:57.133" LastActivityDate="2010-09-21T10:22:57.133" CommunityOwnedDate="2010-09-21T10:15:37.850" />
  <row Id="5855" PostTypeId="2" ParentId="5384" CreationDate="2010-09-21T10:20:30.117" Score="0" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;    if (isPersonHotChick)&#xA;    {&#xA;         me.FixDaDamnComputer();&#xA;         me.AskHerNumber();       &#xA;    }&#xA;    else&#xA;    {&#xA;         me.Say(&quot;yeah sure i'll have a look, during my pause (of the year 2999).&quot;);&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2380" LastActivityDate="2010-09-21T10:20:30.117" CommunityOwnedDate="2010-09-21T10:20:30.117" />
  <row Id="5856" PostTypeId="2" ParentId="5770" CreationDate="2010-09-21T10:23:46.960" Score="0" ViewCount="" Body="&lt;p&gt;I feel distinctly inadequate saying that I've only managed to go as small as a G1, aside from graphing calculators at college. HVGA, albeit a very small HVGA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Got to love the hardware keyboard =) Writing Java with all those braces with an on-screen would be a nightmare!&lt;/p&gt;&#xA;" OwnerUserId="2238" LastActivityDate="2010-09-21T10:23:46.960" CommentCount="1" />
  <row Id="5857" PostTypeId="2" ParentId="1516" CreationDate="2010-09-21T10:29:13.207" Score="3" ViewCount="" Body="&lt;p&gt;The standards writers have thought of things that haven't occurred to you, such as accessibility concerns. Standards exist for a reason. And, with HTML5, standards are fairly easy to follow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There may, occasionally, be reason to not follow the standard, but following it should be your default behaviour.&lt;/p&gt;&#xA;" OwnerUserId="2406" LastActivityDate="2010-09-21T10:29:13.207" CommentCount="1" />
  <row Id="5858" PostTypeId="2" ParentId="4693" CreationDate="2010-09-21T10:29:29.503" Score="1" ViewCount="" Body="&lt;p&gt;Do you know what it means reduce costs to management? That exactly means, use cheap developers. Developers are the side of expenses. While management is on side of money winners.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a game of hate that was thrown inside the developer community by the system. How software is developed nowadays is about maximising profit, etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This created a too competitive environment in which people don't cooperate and help, but compete. Winning is most important, and if everything else fails, then winning is better! This is the game that was put on us while we were explained that &quot;it's the way to do the business&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, yes, probably someone &quot;higher up&quot; has some satisfaction from this kind of working.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If someone could explain why it became acceptable to refer to management as &quot;higher&quot; level and development as &quot;lower&quot; level, then we could answer all questions here.&lt;/p&gt;&#xA;" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2010-11-13T11:06:52.737" LastActivityDate="2010-11-13T11:06:52.737" CommunityOwnedDate="2010-09-21T10:29:29.503" />
  <row Id="5859" PostTypeId="2" ParentId="5780" CreationDate="2010-09-21T10:29:33.910" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.hanselman.com/blog/HanselminutesPodcast203WomenInTechnologyInTheMuslimWorld.aspx&quot; rel=&quot;nofollow&quot;&gt;Hanselman had an interesting podcast&lt;/a&gt; not too long ago that dealt with women programmers in the &lt;strong&gt;Muslim&lt;/strong&gt; world.  He interviewed two women and their perspective on why there are so few western women in IT was surprising.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I could be misremembering but I think freedom of choice was cited.  Also, one woman's story was dripping with irony: she wanted to leave IT but her father made her stick with it.&lt;/p&gt;&#xA;" OwnerUserId="1622" LastActivityDate="2010-09-21T10:29:33.910" CommunityOwnedDate="2011-01-31T19:23:00.177" />
  <row Id="5862" PostTypeId="2" ParentId="5834" CreationDate="2010-09-21T10:39:01.337" Score="4" ViewCount="" Body="&lt;p&gt;I hate to be a downer, but I really cannot understand why programmers hold our job up on such a pedestal when other skilled workers in similar office-based fields like advertising, marketing and business have tough jobs that are creative, require skill and produce tangible benefits to a company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As stated, it's down to what you see as the appeal in programming. For those who like being creative it's very similar to writing, for those who like building software it's like being a mechanic. The one area where it is somewhat unique is that it encompasses a business in so many ways; for those lucky few they can be as creative as an author and as constructive as a mechanic, all within a single 9-5 job.&lt;/p&gt;&#xA;" OwnerUserId="1037" LastActivityDate="2010-09-21T10:39:01.337" CommentCount="9" />
  <row Id="5863" PostTypeId="2" ParentId="5751" CreationDate="2010-09-21T10:40:49.600" Score="2" ViewCount="" Body="&lt;p&gt;I don't move the control key, but I have one of these Lenovo Thinkpad's where they insist on adding stupid keys to the layout.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The 2 keys above the left and right arrows do an MDI page switch between documents in an MDI application (e.g. would switch tabs in Firefox).  Although conceptually neat - they always get hit when I'm aiming for the arrow keys thus a SHIFT + -&gt; to select a word in my code may end up changing files on me!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Needless to say on my keyboard I disabled them (&lt;em&gt;If I owned the PC, I would rip them off the keyboard&lt;/em&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/1vF0B.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="3199" LastActivityDate="2010-09-21T10:40:49.600" CommentCount="2" />
  <row Id="5866" PostTypeId="2" ParentId="5490" CreationDate="2010-09-21T10:48:33.600" Score="1" ViewCount="" Body="&lt;p&gt;VistA (Veterans Health Information Systems and Technology Architecture) is AFAIK still in active development: &lt;a href=&quot;http://en.wikipedia.org/wiki/VistA_EMR&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/VistA_EMR&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2725" LastActivityDate="2010-09-21T10:48:33.600" />
  <row Id="5868" PostTypeId="2" ParentId="5770" CreationDate="2010-09-21T11:06:32.587" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://fr.wikipedia.org/wiki/Casio_Graph_25&quot; rel=&quot;nofollow&quot;&gt;Casio Graph 25&lt;/a&gt; (when I was young) : 79 × 47&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/vZIDh.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I made several little text adventure games on these. Couldn't have the TI calculators (far more expensive). When I got the Graph 100, I did some more deep RPG games (in text) and several turn-based strategy games (in text again). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel very geek now.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-09-21T11:06:32.587" />
  <row Id="5872" PostTypeId="2" ParentId="696" CreationDate="2010-09-21T11:25:14.530" Score="7" ViewCount="" Body="&lt;p&gt;I have a love/hate relationship with PHP for various valid reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;LOVE&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The documentation resources are extensive and are quick to find what you are looking for.&lt;/li&gt;&#xA;&lt;li&gt;Thousands and thousands of library functions to do practically anything.&lt;/li&gt;&#xA;&lt;li&gt;Can be used as an HTML pre-parser, or as a commandline utility.&lt;/li&gt;&#xA;&lt;li&gt;It doesn't require a proprietary editor to write code.&lt;/li&gt;&#xA;&lt;li&gt;It doesn't require a master project file that requires special care to insert a unit.&lt;/li&gt;&#xA;&lt;li&gt;Follows most other OOP langauges in form and function. (with only minor quirks, but they all have them)&lt;/li&gt;&#xA;&lt;li&gt;Code is easily modular and re-usable if designed properly. &lt;/li&gt;&#xA;&lt;li&gt;Can flow like a natural language if a good naming convention is used.&lt;/li&gt;&#xA;&lt;li&gt;Is &lt;em&gt;not&lt;/em&gt; and overly terse or strict language. (this is my preference)&lt;/li&gt;&#xA;&lt;li&gt;Error reporting is mostly straightforward and doesn't give me cryptic reasons for crashing when it does.&lt;/li&gt;&#xA;&lt;li&gt;I can learn something from it everyday as a programmer, and rarely fight with the code. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;It makes me $$$ as a programmer.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;HATE&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I get bashed/downvoted/disrespected as a PHP programmer nowadays, when most people don't realize I've worked with 10 other languages over the last 20 years. &lt;/li&gt;&#xA;&lt;li&gt;Tends to have a &quot;too many cooks in the kitchen&quot; syndrome. In other words, because it's &lt;em&gt;not&lt;/em&gt; a strict-typed language, programmers tend to have different styling techniques which becomes confusing.&lt;/li&gt;&#xA;&lt;li&gt;MVC frameworks tend to be &quot;greedy&quot;, in other words are incompatible with other MVCs and APIs. They will either &lt;code&gt;unset&lt;/code&gt; session variables, pages or just plain not work.&lt;/li&gt;&#xA;&lt;li&gt;It can be a gateway programming language, being easy to learn and pick up. Thus, many examples are just plain poor code or highly insecure. Part of this is due to it not being a strict-typed language, so these programming habits are not learned until a strict-typed language is learned. &lt;/li&gt;&#xA;&lt;li&gt;Too much emphasis on MVCs in general, when function libraries would work just fine. 99% of the PHP function set &lt;em&gt;is&lt;/em&gt; library based, not MVC, so I am curious when this trend started happening. &lt;/li&gt;&#xA;&lt;li&gt;Everyone tends to point out the crazy things you can do with the language you would never &lt;strong&gt;really&lt;/strong&gt; ever want to do. Many other languages have quirks like this here and there, but with one difference. PHP is loosely-typed and other languages are strict-typed. (exactly the same reason people hate javascript)&lt;/li&gt;&#xA;&lt;li&gt;Common syntax on whether to use single-quote or double quote is always up for debate, so I almost always have to recode 3rd party APIs to fit my own syntax style. &lt;/li&gt;&#xA;&lt;li&gt;Security is overlooked far too often in production environments. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;All in all, there are things with any programming language you can love and hate. The difference with me, is there are not &lt;strong&gt;unfixable&lt;/strong&gt; problems like I have found in other languages. (there always seems to be a workaround.) These are things such as (VBasic and Delphi) the requirement to include a &lt;code&gt;.DLL&lt;/code&gt; with your executable, (Java, Flash) the requirement to have a plug-in, (CGI) the inability to improve previous code without source as its compiled, (.NET) horrible documentation and support, (.ASP) inflexible work environment and directory strucutre, (Javascript) poor at best cross-browser compatability. (&lt;em&gt;again all this is IMHO&lt;/em&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess that leaves... &lt;strong&gt;ever try JQuery?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-21T11:25:14.530" CommentCount="1" />
  <row Id="5873" PostTypeId="2" ParentId="5834" CreationDate="2010-09-21T11:28:42.307" Score="7" ViewCount="" Body="&lt;p&gt;I like to see my job as craftsmanship. For instance a traditionnal carpenter would feel the same sense of accomplishment when designing and making a tricky roof.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-09-21T11:28:42.307" CommentCount="1" />
  <row Id="5874" PostTypeId="2" ParentId="5751" CreationDate="2010-09-21T11:29:25.957" Score="1" ViewCount="" Body="&lt;p&gt;As an emacs user, the control key is pretty vital, and I've &lt;strong&gt;swapped it with Alt&lt;/strong&gt;, so that I can &lt;strong&gt;press it with my thumb&lt;/strong&gt; while staying on home row.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used to remap Caps Lock to Ctrl, but find this setup more comfortable, and Caps is now Alt, guess that'd confuse a lot of people, but I find this quite ergonomic !&lt;/p&gt;&#xA;" OwnerUserId="2115" LastEditorUserId="2115" LastEditorDisplayName="" LastEditDate="2010-09-21T11:51:30.653" LastActivityDate="2010-09-21T11:51:30.653" CommentCount="3" />
  <row Id="5875" PostTypeId="2" ParentId="1483" CreationDate="2010-09-21T11:35:48.910" Score="0" ViewCount="" Body="&lt;p&gt;I'm not a native english speaker but yes I code and write all my comments, class names, variable names, function names in english. Why? Well just because it makes more sense for me and it makes it much easier to share my code. Just my 2 cents&lt;/p&gt;&#xA;" LastActivityDate="2010-09-21T11:35:48.910" CommunityOwnedDate="2010-09-21T11:35:48.910" />
  <row Id="5876" PostTypeId="2" ParentId="2008" CreationDate="2010-09-21T11:37:32.007" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Talk directly when the discussion is important - that requires immediate processing.&lt;/li&gt;&#xA;&lt;li&gt;Use a (lightweight) IM for less important, like gtalk - all that can be ignored for some time by the others - allow each people to manage it's interruptions.&lt;/li&gt;&#xA;&lt;li&gt;Bug-tracker comments for ticket-specific discussions that don't require 1. &lt;/li&gt;&#xA;&lt;li&gt;Email for general informations that have to be shared with several people.&lt;/li&gt;&#xA;&lt;li&gt;Comments code-contextual messages (reminders or often jokes that can't work with another context).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-09-21T11:37:32.007" />
  <row Id="5879" PostTypeId="2" ParentId="2846" CreationDate="2010-09-21T11:52:19.530" Score="-15" ViewCount="" Body="&lt;h2&gt;.NET&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;For one, I simply can't learn it with the horrid documentation. Perhaps its not horrid, but it's horrid to navigate. Besides, being a Microsoft product, my trust factor is very low. not to say, M-Soft hasn't come out with some good products (XBox360).. it just so happens .NET isn't one of them, IMHO. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, I have actually watched the progression of .NET and its evolution over its lifetime and I have little faith it will be even remotely close to what it is now in five years. I simply refuse to invest the kind of time and energy to learn something like this without knowing the rug of obsolesce will be whisked out from under me at some future point in time. &lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-21T11:52:19.530" CommunityOwnedDate="2010-09-21T11:52:19.530" CommentCount="10" />
  <row Id="5881" PostTypeId="2" ParentId="5834" CreationDate="2010-09-21T11:58:33.963" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;ARTIST&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Both require enormous amounts of creativity.&lt;/li&gt;&#xA;&lt;li&gt;The end result is almost always subjective, even to the author.&lt;/li&gt;&#xA;&lt;li&gt;Both many times are introverted, egotistical and elitist. &lt;/li&gt;&#xA;&lt;li&gt;Less experienced of either produce knock-offs.&lt;/li&gt;&#xA;&lt;li&gt;Both industries very frequently are uncut by the foreign outsourced market.&lt;/li&gt;&#xA;&lt;li&gt;There are many of each but only very few famous ones.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-21T11:58:33.963" />
  <row Id="5882" PostTypeId="2" ParentId="1963" CreationDate="2010-09-21T11:59:59.107" Score="1" ViewCount="" Body="&lt;p&gt;Just make informations go to you instead of having to look for it:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;use NetVibes or Google (?) to put all news flux together, have a quick look at least each day;&lt;/li&gt;&#xA;&lt;li&gt;register some programming news websites on Twitter and make sure you're notified often in the day (if you can be interrupted easily);&lt;/li&gt;&#xA;&lt;li&gt;keep contact with people that work in different domains but still in programming : web devs, embedded soft devs, desktop devs, linux or windows devs, etc. are all interested in different language features, tools etc. Let them know that you're interested in any news about advanced in their domains;&lt;/li&gt;&#xA;&lt;li&gt;each time you think about a possible tool, search for it in google. For example, I often think about different philosophies of scripting languages. That makes me know a lot of different scripting languages that are not very well known but are promising on their own respect. Another example is when the other day I asked myself if there could be a language that have chances to replace C++ in video-game industry. Just looking for &quot;system programming language&quot; made me learn a lot about D, Go and other languages. You'll have too google any tool idea that come to you, check if it exists and the different implementations.&lt;/li&gt;&#xA;&lt;li&gt;allow yourself to pass a lot of time searching for informations about some technologies : having some keywords in your rss flux and twitter will not be enough to understand what's the new tech is all about. Taking time for search interest is not really easy for everybody because ... it's time consuming. Maybe you can't do it at work, maybe you prefer just live your non-programmer life first. Anyway, that's the only way to really understand what you've heard of. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-09-21T11:59:59.107" />
  <row Id="5883" PostTypeId="2" ParentId="5834" CreationDate="2010-09-21T12:04:20.393" Score="19" ViewCount="" Body="&lt;p&gt;Porn star. You make a living from what you loved doing/dreamt of as a teenager and you swear a lot :D&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-09-21T12:04:20.393" CommentCount="4" />
  <row Id="5884" PostTypeId="2" ParentId="5834" CreationDate="2010-09-21T12:05:55.883" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Writers&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I went to a book reading and was surprised at the process writers go through. This author had just published a book 10 years after a previous success. He had a small writing group that he belonged to and they would regularly meet, read and critique his work (Sounds like code review). The amount of research surprised me since this was fiction (I ignorantly assumed they just made stuff up.). Outlines (Specs).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Musicians&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Granted some just seem to show up to the studio and make hits, but it usually is more planned out and organized. Pete Townshend makes a complete demo of each song to present it to the band; reminds me of prototyping. We hate trying to do estimates but can you imagine someone asking, &quot;How long is it going to take to make this album?&quot; &quot;Will you have that solo done today?&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Financial Analysts&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not just some of the VBA coding they do in Excel and the other number crunching, they have to go through various financial documents and tease out some of the values. I mean how many different EBITDA's can a company have? Aparently there can be a lot to choose from. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Out of all of these examples, the common threads to me are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Creation in an iterative process&lt;/li&gt;&#xA;&lt;li&gt;Need for quiet &amp;amp; independent time, but ultimately have to pull it toether with others&lt;/li&gt;&#xA;&lt;li&gt;Having a structure to work within.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-21T12:05:55.883" />
  <row Id="5890" PostTypeId="2" ParentId="5770" CreationDate="2010-09-21T12:24:52.257" Score="0" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/GmylS.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think worse than the small screen was the small buttons, the real reason pockets protectors were needed, since they always seemed to bust ball-point pens out.&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-21T12:24:52.257" CommentCount="4" />
  <row Id="5891" PostTypeId="2" ParentId="2008" CreationDate="2010-09-21T12:30:52.477" Score="1" ViewCount="" Body="&lt;p&gt;For really urgent messages and to get immediate attention, we had a USB rocket launcher: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/ojgpE.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2612" LastActivityDate="2010-09-21T12:30:52.477" />
  <row Id="5893" PostTypeId="2" ParentId="5834" CreationDate="2010-09-21T12:32:13.660" Score="1" ViewCount="" Body="&lt;p&gt;I guess it depends upon what part of programming you are going to focus in on. Personally I think that some forms of engineering (i.e. mechanical, electrical) are similar in that you have requirements and need to implement them with the tools at hand but I also tend to the think that architecture is similar in that you are designing something based purely on someones needs.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-09-21T12:32:13.660" />
  <row Id="5894" PostTypeId="2" ParentId="2008" CreationDate="2010-09-21T12:38:37.097" Score="1" ViewCount="" Body="&lt;p&gt;I got one of those device on my desk, useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/VoGfx.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="19" LastActivityDate="2010-09-21T12:38:37.097" />
  <row Id="5895" PostTypeId="2" ParentId="604" CreationDate="2010-09-21T12:42:26.760" Score="0" ViewCount="" Body="&lt;p&gt;I switched to 120 col a loooooong time ago. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You mean people still use 80?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not like it matters anyways, I rarely see code that sticks to the convention anyhow - half the time I am chasing the EOL out to col 1024...&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-21T12:42:26.760" />
  <row Id="5896" PostTypeId="2" ParentId="5780" CreationDate="2010-09-21T12:46:30.230" Score="1" ViewCount="" Body="&lt;p&gt;The same question gets asked for the engineering field and I think that here in the United States the &quot;answer&quot; that most people have started to accept is that there are cultural differences that lead young women to make different career choices than men. Likewise, I've read a couple articles saying that women who started out interested in going into software development decided not too after starting college for a verity of reasons (e.g. harassment by men, didn't find the classes interesting, work was too tedious, etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One interesting issue is that the statistics can be skewed a bit by industry in that some sectors have a more balanced gender ratio (assuming that 50-50 is possible). Based upon my observations in the industry I work in, there are a lot more women doing laboratory work than men and a fairly even distribution of women with PhDs as well. On the IT side of things, the development teams tend to have more women in them, but usually they are roles such as project manager or analyst as opposed to the developer positions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The US Department of Labor has some interesting reading on this subject from a more generallized standpoint in their &lt;a href=&quot;http://www.dol.gov/wb/media/reports/main.htm&quot; rel=&quot;nofollow&quot;&gt;Women's Bureau&lt;/a&gt; section if you want a bit of light reading.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-09-21T12:46:30.230" CommunityOwnedDate="2011-01-31T19:23:00.177" />
  <row Id="5897" PostTypeId="2" ParentId="4384" CreationDate="2010-09-21T12:46:40.917" Score="2" ViewCount="" Body="&lt;p&gt;I did some &lt;strong&gt;boat-programming&lt;/strong&gt; when we were stranded on an island somewhere off the coast of Mexico and the GPS, CB-Radio and the Sonar all went out at once. It was heroic because we were getting swarmed by sharks and there was a hurricane coming in. Not to mention, one person was strung by a jellyfish and had to get treatment right away. We would have died in the coral reefs without the Sonar, for sure...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yeah. That never happened.&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-21T12:46:40.917" CommentCount="6" />
  <row Id="5898" PostTypeId="1" AcceptedAnswerId="5910" CreationDate="2010-09-21T12:52:14.370" Score="4" ViewCount="168" Body="&lt;p&gt;In another question, it was revealed that one of the pains with TDD is keeping the testing suite in sync with the codebase during and after refactoring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I'm a big fan of refactoring. I'm not going to give it up to do TDD. But I've also experienced the problems of tests written in such a way that minor refactoring leads to lots of test failures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you avoid breaking tests when refactoring? &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you write the tests 'better'? If so, what should you look for? &lt;/li&gt;&#xA;&lt;li&gt;Do you avoid certain types of refactoring? &lt;/li&gt;&#xA;&lt;li&gt;Are there test-refactoring tools?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-09-21T13:29:20.563" Title="How do you keep your unit tests working when refactoring?" Tags="&lt;development-process&gt;&lt;tdd&gt;&lt;refactoring&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="2" />
  <row Id="5899" PostTypeId="2" ParentId="729" CreationDate="2010-09-21T12:54:49.870" Score="3" ViewCount="" Body="&lt;h2&gt;Stackoverflow/StackExchange&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I've gotten in the habit, if its something I don't know, or something someone else might need to know - I'll ask it as a question. that way, if I want to find it later I can reference back in my list and easily find the answer. Plus its reliably good insight half of the time, so I am not trying to implement a method I find out later is just the wrongest way of going about it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for everything else, I usually just make sure a copy of the document stays with whatever project its attached to. If its generic or all encompassing, I have a master &lt;em&gt;personal&lt;/em&gt; project for that. &lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-21T12:54:49.870" CommunityOwnedDate="2011-03-07T21:12:42.693" CommentCount="1" />
  <row Id="5901" PostTypeId="2" ParentId="5770" CreationDate="2010-09-21T13:03:23.867" Score="2" ViewCount="" Body="&lt;p&gt;I learned the fundamentals of programming (variables, conditionals, looping) on a &lt;a href=&quot;http://en.wikipedia.org/wiki/TI-57&quot; rel=&quot;nofollow&quot;&gt;TI-57&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/PM3Zt.gif&quot; alt=&quot;TI-57: 5 buttons by 8 buttons, one-line red-lit screen&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has I think a 13 character screen, each character being a multi-segment display able to show 0-F. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It used its own form of assembly language, and you had to walk through the 'lines' of your program one by one, reviewing or updating them, with the memory position taking up 2 precious characters at the end of the screen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also came with one of the best introductory programming books ever, &lt;strong&gt;&lt;a href=&quot;http://openlibrary.org/books/OL4565109M/Making_tracks_into_programming&quot; rel=&quot;nofollow&quot;&gt;&quot;Making Tracks Into Programming&quot;&lt;/a&gt;&lt;/strong&gt;, which used a train analogy for teaching execution...&lt;/p&gt;&#xA;" OwnerUserId="2983" LastEditorUserId="2983" LastEditorDisplayName="" LastEditDate="2010-09-21T13:19:55.773" LastActivityDate="2010-09-21T13:19:55.773" />
  <row Id="5902" PostTypeId="2" ParentId="729" CreationDate="2010-09-21T13:03:33.847" Score="1" ViewCount="" Body="&lt;p&gt;I use GMail with some Filter/Tag automatic-organisation-fu. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Makes searches really easier too.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastEditorUserId="1921" LastEditorDisplayName="" LastEditDate="2010-09-22T21:15:34.707" LastActivityDate="2010-09-22T21:15:34.707" CommunityOwnedDate="2011-03-07T21:12:42.693" />
  <row Id="5903" PostTypeId="2" ParentId="565" CreationDate="2010-09-21T13:06:26.933" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.defmacro.org/ramblings/fp.html&quot; rel=&quot;nofollow&quot;&gt;Functional Programming For The Rest of Us&lt;/a&gt; explains functional programming easily understandable.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-21T13:06:26.933" CommentCount="1" />
  <row Id="5904" PostTypeId="2" ParentId="696" CreationDate="2010-09-21T13:07:05.573" Score="1" ViewCount="" Body="&lt;p&gt;It's not my only language, but I have a very high opinion of PHP.  PHP has made me a lot of money over the past 10 years, and is often my language of choice for a lot of tasks.  It's quick and easy, and I know it like the back of my hand.  I also use and like C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the issues that people list don't bother me, and they seem pedantic.  Everything we do is dealing with the language we're using.  I use it, and I don't see a point in complaining about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just don't understand the hate.. save it for a language worth hating (like Java.)  :P&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-09-21T13:07:05.573" />
  <row Id="5905" PostTypeId="2" ParentId="5834" CreationDate="2010-09-21T13:09:44.767" Score="0" ViewCount="" Body="&lt;p&gt;Pilot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Flying mixes science, careful thinking, beauty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not only that, it gets you out of doors.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-09-21T13:09:44.767" CommentCount="3" />
  <row Id="5906" PostTypeId="2" ParentId="5898" CreationDate="2010-09-21T13:16:07.340" Score="7" ViewCount="" Body="&lt;p&gt;One of the benefits of having unit tests is so you can confidently refactor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the refactoring does not change the public interface then you leave the unit tests as is and ensure after refactoring they all pass.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the refactoring does change the public interface then the tests should be rewritten first. Refactor until the new tests pass.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would never avoid any refactoring because it breaks the tests. Writing unit tests can be a pain in a butt but its worth the pain in the long run.&lt;/p&gt;&#xA;" OwnerUserId="919" LastActivityDate="2010-09-21T13:16:07.340" />
  <row Id="5907" PostTypeId="2" ParentId="5780" CreationDate="2010-09-21T13:21:46.773" Score="15" ViewCount="" Body="&lt;p&gt;From my experiences women are put off by programming for two reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's an inherently single-threaded activity, and women prefer multi-tasking more than men do (on the average).&lt;/li&gt;&#xA;&lt;li&gt;The field requires a mindset of rigidity and rule-following, which attracts people that prefer stereotypical gender roles. Most of the men in the field have a higher tendency than men on average to treat women according to gender roles.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;While the second reason is culturally driven, I think the first reason is primarily due to biology. This seems to be backed up by studies I've seen on the relative performance of women and men at multi-tasking. It's possible that the whole thing is 100% cultural, but it seems unlikely. I find it very hard to believe that the biological difference between men and women is strictly cosmetic, when the cosmetic difference is so radical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I agree there is gender inequality in the field of programming, I reject the implication that we should strive for a 50/50 split. Gender equality is not about statistics, it is about individual opportunity. We should have equal encouragement and opportunity for girls and boys to get into the field of programming, and equal treatment after they enter the field. But we can get that equal opportunity and still end up with an 80/20 split.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-21T13:21:46.773" CommunityOwnedDate="2011-01-31T19:23:00.177" CommentCount="5" />
  <row Id="5908" PostTypeId="2" ParentId="5613" CreationDate="2010-09-21T13:25:45.847" Score="1" ViewCount="" Body="&lt;p&gt;Quoting from James Larus's excellent &lt;a href=&quot;http://research.microsoft.com/pubs/70581/tr-2008-69.pdf&quot; rel=&quot;nofollow&quot;&gt;&quot;Spending Moore's Dividend&quot;&lt;/a&gt; (emphasis added:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;Thirty years&#xA;ago, Bill Gates changed the prompt in Altair Basic from “READY” to “OK” to save 5 bytes of&#xA;memory. Today, it is inconceivable that developers would be aware of this level of detail of their&#xA;program, let alone concerned about it, and rightly so, since a change of this magnitude is today&#xA;unnoticeable...  There is &lt;i&gt;no&#xA;way&lt;/i&gt; we could produce today’s systems using the artisan, handcrafted practices that were possible&#xA;(necessary) on machines with 4K of memory.&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I think it's probably misleading to say that frameworks let you avoid the skills necessary to solve difficult issues or let you avoid deep understanding.  Instead, the &lt;i&gt;only&lt;/i&gt; reason we're able to build today's complex systems (whose complexity can generate difficult issues and defy deep understanding) is because we have frameworks (and high-level OO garbage-collected languages, and IDEs with context-sensitive help and on-the-fly syntax checking, and all of the other software development advances that are sometimes criticized as dumbing down programmers).&lt;/p&gt;&#xA;" OwnerUserId="3223" LastActivityDate="2010-09-21T13:25:45.847" />
  <row Id="5909" PostTypeId="2" ParentId="5834" CreationDate="2010-09-21T13:27:49.213" Score="15" ViewCount="" Body="&lt;p&gt;Architect.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both jobs require a strong technical base, have the requirements set by the client, and allow a good deal of creativity in the implementation.  &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-21T13:27:49.213" CommentCount="2" />
  <row Id="5910" PostTypeId="2" ParentId="5898" CreationDate="2010-09-21T13:28:04.657" Score="8" ViewCount="" Body="&lt;p&gt;What you're trying to do is not really refactoring.  With refactoring, by definition, you don't change &lt;strong&gt;what&lt;/strong&gt; your software does, you change &lt;strong&gt;how&lt;/strong&gt; it does it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start with all green tests (all pass), then make modifications &quot;under the hood&quot; (e.g. move a method from a derived class to base, extract a method, or encapsulate a &lt;em&gt;Composite&lt;/em&gt; with a &lt;em&gt;Builder&lt;/em&gt;, etc.).  Your tests should still pass.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you're describing seems to be not refactoring, but a redesign, which also augments the functionality of your software under test.  TDD and refactoring (as I tried to define it here) are not in conflict.  You can still refactor (green-green) and apply TDD (red-green) to develope the &quot;delta&quot; functionality.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-09-21T13:28:04.657" CommentCount="2" />
  <row Id="5911" PostTypeId="2" ParentId="5834" CreationDate="2010-09-21T13:28:52.353" Score="0" ViewCount="" Body="&lt;p&gt;Let's see I used all those type of skills when I was a management analyst doing manpower studies, when I did efficiency studies (I was the equivalent of an industrial engineer), when I was a technical writer-editor, when I taught, when I was a sewer planner, and when I create art.  I have seen finacial analysts use the same types of techniques as well as senior business people. There are plots iof jobs that are creative and challenging and let you solve puzzles and which are highly techinical intheir own specialized fields of knowledge. The only thing missing is that most of them aren't allowed to be geeky since they have more public contact. But geekiness is not necessary for programming either.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-21T13:28:52.353" />
  <row Id="5912" PostTypeId="2" ParentId="5898" CreationDate="2010-09-21T13:29:20.563" Score="2" ViewCount="" Body="&lt;p&gt;If your tests break when you're refactoring, then you're not, by definition, refactoring, which is &quot;changing the structure of your program without changing the behaviour of your program&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes you DO need to change the behaviour of your tests. Maybe you need to merge two methods together (say, bind() and listen() on a listening TCP socket class), so you have other parts of your code trying and failing to use the now altered API. But that's not refactoring!&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-21T13:29:20.563" CommentCount="2" />
  <row Id="5914" PostTypeId="2" ParentId="3974" CreationDate="2010-09-21T13:30:22.570" Score="0" ViewCount="" Body="&lt;p&gt;I recently was at a place, watching the &quot;IT Torch being passed&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The person leaving was a girl who started as a secretary and taught herself Quickbooks, Samba and a whole slew of networking and Linux technologies. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although it's not programming per se, it is impressive.&lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-09-21T13:30:22.570" CommunityOwnedDate="2010-09-21T13:30:22.570" />
  <row Id="5915" PostTypeId="2" ParentId="5613" CreationDate="2010-09-21T13:35:24.033" Score="1" ViewCount="" Body="&lt;p&gt;When building software, frameworks save time. When learning to build software, frameworks get in the way of understanding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the problem is mainly one of computers having gotten too powerful. For most programmers there's no sensible reason anymore to &quot;get down to basics&quot;. It just takes more time to do the same stuff, and at run time there's no meaningful difference. The only way to solve that is to introduce artificial restrictions, the way competitions like js1k do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe schools should have a dedicated subject &quot;optimized design&quot; where you have to build programs under strong space and time restrictions?&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-21T13:35:24.033" />
  <row Id="5916" PostTypeId="1" AcceptedAnswerId="5918" CreationDate="2010-09-21T13:35:56.653" Score="23" ViewCount="1008" Body="&lt;p&gt;Someone once said we should prefix all our methods with the  &lt;code&gt;/// &amp;lt;summary&amp;gt;&lt;/code&gt; comment blocks (C#) and I am wondering if that is true or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started to use them and found they annoyed me quite a bit, so stopped using them except for libraries and static methods. They're bulky and I'm always forgetting to update them. Do you recommend using them? Why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: I normally use &lt;code&gt;//&lt;/code&gt; comments all the time, it's just the &lt;code&gt;/// &amp;lt;summary&amp;gt;&lt;/code&gt; blocks I was wondering about&lt;/p&gt;&#xA;" OwnerUserId="1130" LastEditorUserId="1130" LastEditorDisplayName="" LastEditDate="2010-10-01T13:28:22.470" LastActivityDate="2011-03-09T02:42:59.273" Title="Does anyone actually use the /// comment blocks?" Tags="&lt;c#&gt;&lt;comments&gt;" AnswerCount="13" CommentCount="5" FavoriteCount="3" />
  <row Id="5918" PostTypeId="2" ParentId="5916" CreationDate="2010-09-21T13:42:16.360" Score="54" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Use them as much as possible.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes, those are special comments that become the documentation for the method. The contents of &lt;code&gt;&amp;lt;summary&amp;gt;&lt;/code&gt;, the parameter tags, etc. that are generated show up in intellisense when you or someone else is getting ready to call your method.  They can essentially see all the documentation for your method or class without having to go to the file itself to figure out what it does (or try to just read the method signature and hope for the best).&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-09-21T13:47:41.530" LastActivityDate="2010-09-21T13:47:41.530" CommentCount="4" />
  <row Id="5919" PostTypeId="2" ParentId="5916" CreationDate="2010-09-21T13:42:39.417" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;using them except for libraries &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's the time they are useful. With XML Documentation generation turned on and a reference to the assembly, without its project, will show more detail in intellisense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But for the internals of the current project, they just get in the way.&lt;/p&gt;&#xA;" OwnerUserId="542" LastActivityDate="2010-09-21T13:42:39.417" />
  <row Id="5920" PostTypeId="1" CreationDate="2010-09-21T13:42:45.313" Score="20" ViewCount="885" Body="&lt;p&gt;How do you style your resume or CV, and how do you manage it? Doc files? Pdf? LaTeX in a git repo? Html+css?&lt;/p&gt;&#xA;" OwnerUserId="1767" LastActivityDate="2011-02-21T07:22:54.553" Title="How do you manage your Resume/CV" Tags="&lt;career&gt;&lt;resume&gt;" AnswerCount="12" CommentCount="3" FavoriteCount="10" />
  <row Id="5921" PostTypeId="1" CreationDate="2010-09-21T13:43:49.600" Score="19" ViewCount="600" Body="&lt;p&gt;Our hands are one of the physical tools of our trade. What do you do to keep them healthy and avoid injuries? What about wrists/shoulders or your whole body in general?&lt;/p&gt;&#xA;" OwnerUserId="1767" LastEditorUserId="1256" LastEditorDisplayName="" LastEditDate="2011-03-26T14:37:06.113" LastActivityDate="2011-03-26T14:37:06.113" CommunityOwnedDate="2011-03-26T13:37:08.243" Title="How do you keep your hands in good condition?" Tags="&lt;health&gt;&lt;rsi&gt;" AnswerCount="22" CommentCount="6" FavoriteCount="7" />
  <row Id="5922" PostTypeId="2" ParentId="361" CreationDate="2010-09-21T13:45:12.920" Score="1" ViewCount="" Body="&lt;p&gt;This is because you went to a university for a bachelor degree in computer science (maybe an emphasis on programming) and not a technical school for a degree/certification in programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are expected to write some bad code and through: reading some books, taking a training class, and getting coworker feedback, fix the problems and limit the same mistake in the future. As you learn about development, you're going to constantly be wondering if you know enough or whether your code is ever good enough. There will be plenty of new techniques, languages and methodology trends to keep you busy for the rest of your career. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because anyone that spent that much money, gave up 4-5 years employment, and stayed up all those nights, should have learned how to learn. If not, you will be exposed as the fool you really are and get downvoted frequently (I know, I asked for it.).&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-21T13:45:12.920" />
  <row Id="5924" PostTypeId="2" ParentId="5770" CreationDate="2010-09-21T13:47:18.783" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/HP-48_series&quot; rel=&quot;nofollow&quot;&gt;HP-48&lt;/a&gt;, 131x64 pixels. I don't remember much of what I wrote on it though, mostly programs to help me do my homework faster. The irony that I spent way more time writing those programs than I saved was lost on me at the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also managed to get my hands on a lot of games and apps at one point from a HP FTP server. I lost a LOT of time on &lt;a href=&quot;http://www.ufoot.org/babal/hp48&quot; rel=&quot;nofollow&quot;&gt;Babal&lt;/a&gt;. And the TV remote program was way too tempting not to use it to play pranks on teachers.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-21T13:47:18.783" />
  <row Id="5925" PostTypeId="2" ParentId="5921" CreationDate="2010-09-21T13:47:21.233" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Excercices&lt;/strong&gt;. I use &lt;a href=&quot;http://www.workrave.org/&quot; rel=&quot;nofollow&quot;&gt;Work Rave&lt;/a&gt;. But this nice piece of software will take care of the rest of your body as well.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-21T13:47:21.233" CommunityOwnedDate="2011-03-26T13:37:08.243" CommentCount="2" />
  <row Id="5926" PostTypeId="2" ParentId="5920" CreationDate="2010-09-21T13:48:18.313" Score="14" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://careers.stackoverflow.com/cv&quot;&gt;http://careers.stackoverflow.com/cv&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-21T13:48:18.313" />
  <row Id="5927" PostTypeId="2" ParentId="5916" CreationDate="2010-09-21T13:55:28.857" Score="1" ViewCount="" Body="&lt;p&gt;Your class, method, &amp;amp; property naming should be self evident, so if you need these, it's probably a smell.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I would recommend using them on any public classes, methods, &amp;amp; properties in an API, library, etc...   At the very least, they will generate the docs to help any dev using your it, and will prevent you from having to write them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But anyway you slice it, maintain them or delete them.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-21T13:55:28.857" CommentCount="8" />
  <row Id="5928" PostTypeId="2" ParentId="94" CreationDate="2010-09-21T13:55:40.090" Score="4" ViewCount="" Body="&lt;p&gt;I like to have an interviewee explain their previous projects and what they did.  From this answer I can have followup questions: why they did things a certain way, how did they solve a particular problem if they mentioned one, but most importantly what was the purpose of the project and what business problem this solved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do this to see if they can articulate in a way that makes me understand what they were doing, and see if they understood what they were doing as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's surprising that the last question about the purpose of the project and the business problem solved that trips a lot of people up.  They have no idea WHY the project they were working on was being done at all.  If you don't know why your project exists in the first place, it makes me wonder if you are contributing solutions, or just doing as you are told.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Figured I throw this one in there, since all the other answers tend to be technical. I want people that know why they are solving the problems they are solving too, otherwise, they tend to solve the wrong problems that the end user doesn't care about :)&lt;/p&gt;&#xA;" OwnerUserId="3073" LastActivityDate="2010-09-21T13:55:40.090" />
  <row Id="5929" PostTypeId="2" ParentId="5921" CreationDate="2010-09-21T14:00:35.390" Score="9" ViewCount="" Body="&lt;p&gt;I have had some issues with RSI in my hands, mostly due to mouse usage, and have the following tricks to help me avoid problems:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Left-handed mice usage at home, right-handed at work&lt;/li&gt;&#xA;&lt;li&gt;Use only mice with very low click-thresholds.&lt;br&gt;Logitech mice require very little force to click. I use nothing else.&lt;/li&gt;&#xA;&lt;li&gt;Use mice with a thumb button, and map the thumb button to middle-click&lt;br&gt;&#xA;Using my middle finger to click was something I did often and caused a lot of irritation. My thumb never gets irritated. In case of real problems, I could always remap it to left-click and not use any finger except my thumb.&lt;/li&gt;&#xA;&lt;li&gt;Most important: keep my hands warm at all times. Good gloves in winter are very important.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As for general issues, like back and shoulder aches, I've found regular martial arts practice to help a lot. Correct posture is of course also not a bad idea, but it's not 100 percent of the solution for me.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-21T14:00:35.390" CommunityOwnedDate="2011-03-26T13:37:08.243" CommentCount="6" />
  <row Id="5930" PostTypeId="2" ParentId="5770" CreationDate="2010-09-21T14:01:17.400" Score="6" ViewCount="" Body="&lt;p&gt;Given the edits to the question, here's another answer--&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, I have coded on my iPhone, over an SSH link, while being driven down the highway. Wrote HTML, wrote perl, got a website up and running &lt;em&gt;en route&lt;/em&gt; to a conference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coding on the iPhone keyboard is awful, especially in perl where half of what you type is non-alpha-numeric. Keeping context in your head with a 6 line display is also challenging.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-09-21T14:01:17.400" CommentCount="3" />
  <row Id="5931" PostTypeId="2" ParentId="5916" CreationDate="2010-09-21T14:03:03.097" Score="6" ViewCount="" Body="&lt;p&gt;If your coding standard demands that you use such comments (and a coding standard for an API or a framework may demand that), then you have no choice, you have to use such comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, consider seriously not using such comments.  You can avoid them in most cases by changing your code like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    /// &amp;lt;summary&amp;gt;&#xA;    /// Checks if a user is authorized to access the resource&#xA;    /// &amp;lt;/summary&amp;gt;&#xA;    public bool SecurityCheck( User user ) {&#xA;&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;to&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    /// &amp;lt;summary&amp;gt;&#xA;    /// Checks if a user is authorized to access the resource&#xA;    /// &amp;lt;/summary&amp;gt;&#xA;    public bool IsAuthorizedToAccessResource( User user ) {&#xA;&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;to &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    public bool IsAuthorizedToAccessResource( User user ) {&#xA;&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-09-21T14:03:03.097" CommentCount="7" />
  <row Id="5933" PostTypeId="2" ParentId="5916" CreationDate="2010-09-21T14:05:06.073" Score="0" ViewCount="" Body="&lt;p&gt;Yes, I've created them. [when building new systems from scratch]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No, I've never benefited from them. [when working on existing systems that needed maintenance]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found that &quot;Summary&quot; comments eventually tend to get out of sync with code. And once I notice a few badly behaving comments, I tend to lose faith in all comments on that project - you're never sure which ones to trust.&lt;/p&gt;&#xA;" OwnerUserId="153" LastActivityDate="2010-09-21T14:05:06.073" CommentCount="1" />
  <row Id="5934" PostTypeId="2" ParentId="5920" CreationDate="2010-09-21T14:05:28.180" Score="2" ViewCount="" Body="&lt;p&gt;XML with an XSLT transform to output HTML.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a couple XSLT parameters that match up the XML attributes to tailor the output depending on the job target (i.e. Java vs. C# job)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I usually just take the HTML and save it as a Word doc, because most HR types still want a word doc in email, unfortunately.&lt;/p&gt;&#xA;" OwnerUserId="3073" LastActivityDate="2010-09-21T14:05:28.180" />
  <row Id="5935" PostTypeId="2" ParentId="5921" CreationDate="2010-09-21T14:11:23.807" Score="1" ViewCount="" Body="&lt;p&gt;Training with free weights at the gym with no gloves will keep the soft, smooth office hands away! &#xA;Seriously, the training will prevent injuries.&lt;/p&gt;&#xA;" OwnerUserId="208" LastActivityDate="2010-09-21T14:11:23.807" CommunityOwnedDate="2011-03-26T13:37:08.243" />
  <row Id="5936" PostTypeId="2" ParentId="361" CreationDate="2010-09-21T14:11:53.227" Score="2" ViewCount="" Body="&lt;p&gt;Like any job, you have to work hard and get experience in the job before anyone wants you doing any serious work.  People don't graduate from Law school as an expert lawyer. Doctors don't get out of school and start operating on patients. (Would you want them to?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a good reason why job postings for high level software engineering jobs always want 5-10 years of experience.  That means we don't want no n00bs in this job.  We want someone who's done this several times before, knows the pitfalls, or, as an interviewer put it to me, someone who has been burned a few times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only way around this is to be doing entry level programming for a side job throughout school.  This is common in my field of indie development.  A lot of guys I know actually end up dropping out of school when they realize they're already pulling in huge salaries after working 3 or more years during school (or simply working for themselves). &lt;/p&gt;&#xA;" OwnerUserId="1223" LastActivityDate="2010-09-21T14:11:53.227" />
  <row Id="5937" PostTypeId="2" ParentId="5920" CreationDate="2010-09-21T14:11:58.610" Score="10" ViewCount="" Body="&lt;p&gt;I keep a &lt;strong&gt;Word Document&lt;/strong&gt; titled '&lt;strong&gt;Curriculum Vitae - Jaco Pretorius&lt;/strong&gt;'.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might want to name yours something else.&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-21T14:11:58.610" CommentCount="2" />
  <row Id="5938" PostTypeId="2" ParentId="5920" CreationDate="2010-09-21T14:12:34.540" Score="20" ViewCount="" Body="&lt;p&gt;I use Microsoft Word (.doc file). Sometimes I need to tailor it slightly for different employers. Before I send it out to a recruiter, I usually convert it to PDF then send it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For style: I use a simple Word template.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could easily use Open Office Writer or any other word processor and convert your document to PDF whenever you need.&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-21T16:05:51.860" LastActivityDate="2010-09-21T16:05:51.860" CommentCount="8" />
  <row Id="5939" PostTypeId="2" ParentId="5921" CreationDate="2010-09-21T14:13:59.950" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Chinese metal spheres&lt;/strong&gt;; the ones you rotate using one hand.  They are both entertaining, tress relieving, and a good massage for your palm and fingers.&lt;/p&gt;&#xA;" OwnerUserId="3228" LastEditorUserId="3228" LastEditorDisplayName="" LastEditDate="2010-09-21T16:50:11.727" LastActivityDate="2010-09-21T16:50:11.727" CommunityOwnedDate="2011-03-26T13:37:08.243" />
  <row Id="5940" PostTypeId="2" ParentId="4384" CreationDate="2010-09-21T14:20:37.653" Score="2" ViewCount="" Body="&lt;p&gt;A few months ago I created an HL7 data generator in Delphi using a language I created and turned into Chompsky Normal Form saved in a database that's 100% in 3-nf.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may seem very 'normal', but it was only heroic because of belief that I could blindly write code using some principles I learned in college and it would actually work.  Turned out to be a pretty confusing jumble of oddly named classes, but it's better documented than most of the other stuff I've written since I started working.  It works and it's easy to add features to. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-09-21T14:20:37.653" />
  <row Id="5941" PostTypeId="2" ParentId="5780" CreationDate="2010-09-21T14:20:53.330" Score="22" ViewCount="" Body="&lt;p&gt;Cultural factors at work.  Many of the answers here cite biological differences, but I find that difficult to believe given: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;In the US, programming was initially considered &quot;women's work.&quot;  The ENIAC was the first computer developed in the US (used to automate ballistics computation during WWII) and most of the programming was done by 6 women.  At the time, programming was seen as clerical work, akin to secretarial work.  Jennifer Light's paper, &lt;a href=&quot;http://labweb.education.wisc.edu/steinkuehler/elpa940/readings/Light.pdf&quot; rel=&quot;nofollow&quot;&gt;When computers were women&lt;/a&gt;, is an interesting read on this topic.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;In other areas of the world, such as India, China, and Eastern Europe, the gender ratio is much more balanced.  If I remember correctly, women actually earn a slightly higher percentage of computer science degrees than men do in Bulgaria -- I don't recall the exact figures, but this is mentioned in Cordelia Fine's book Delusions of Gender (not enough reputation to post a link), which has nearly an entire chapter discussing the under-representation of women in computer science.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3226" LastActivityDate="2010-09-21T14:20:53.330" CommunityOwnedDate="2011-01-31T19:23:00.177" CommentCount="10" />
  <row Id="5942" PostTypeId="2" ParentId="5921" CreationDate="2010-09-21T14:22:24.160" Score="15" ViewCount="" Body="&lt;p&gt;You can have a not computer/keyboard related hobby. To avoid repetitive strain on your hands.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I make chainmail. But there are countless other options.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-21T14:22:24.160" CommunityOwnedDate="2011-03-26T13:37:08.243" CommentCount="7" />
  <row Id="5943" PostTypeId="2" ParentId="5921" CreationDate="2010-09-21T14:22:42.237" Score="1" ViewCount="" Body="&lt;p&gt;Using a clicky keyboard, such as an IBM Model M feels like a much better work out than one of those silent keyboards, and my fingers and wrists haven't suffered for it.  &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-09-21T14:22:42.237" CommunityOwnedDate="2011-03-26T13:37:08.243" CommentCount="2" />
  <row Id="5944" PostTypeId="2" ParentId="5921" CreationDate="2010-09-21T14:24:30.967" Score="4" ViewCount="" Body="&lt;p&gt;Reduce your stress and you will reduce your injury rate. This is much easier said than done. Exercise (even just walking around outside) helps. Time away from the monitor helps. Taking classes on relaxation or meditation or whatever works for you, helps. Massages, from a professional, if you can afford it, help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pick up an addictive hobby that is NOT Xbox or PS3 or WoW. I play Warhammer--the painting part is hand-intensive but uses different muscles, and mostly it involves standing around moving models and thinking very hard about tactics, perfect for letting the arms relax. Or dancing, or singing, or other things that encourage motion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do some strength training in your hands and arms and neck--AFTER you heal form initial injury. Strength seems to help keep the right postures so you avoid injury.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Switch up your workplace frequently. Move your keyboard tray up and down. Switch between different keyboards and mice. Sit in different chairs.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-09-21T14:24:30.967" CommunityOwnedDate="2011-03-26T13:37:08.243" />
  <row Id="5945" PostTypeId="2" ParentId="296" CreationDate="2010-09-21T14:24:56.120" Score="2" ViewCount="" Body="&lt;p&gt;I believe that Delphi steadily will grow and swallow Java, C++ and VB (or at least Java and VB). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anybody want to bet 5 bucks?&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-09-21T14:24:56.120" CommentCount="6" />
  <row Id="5947" PostTypeId="2" ParentId="1237" CreationDate="2010-09-21T14:30:46.363" Score="1" ViewCount="" Body="&lt;p&gt;Sometimes just getting forcing yourself to focus for a short while is all you need. I use &lt;a href=&quot;http://tomatoi.st&quot; rel=&quot;nofollow&quot;&gt;Tomatoi&lt;/a&gt; which is just a simple timer set to 25 minutes and then tell myself that within that time period I am not allowed to touch anything else than the work I'm supposed to do. Once you get going it's usually not so difficult to keep going. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also tend to quit working while it still is going ok. If I quit while I'm having a good time programming it's usually easier to get going again.&lt;/p&gt;&#xA;" OwnerUserId="2942" LastActivityDate="2010-09-21T14:30:46.363" />
  <row Id="5949" PostTypeId="2" ParentId="1237" CreationDate="2010-09-21T14:35:47.750" Score="4" ViewCount="" Body="&lt;p&gt;Why not the 'forementioned &lt;strong&gt;&lt;em&gt;jogging&lt;/em&gt;&lt;/strong&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It isn't a bad idea to wake up physically before waking up mentally, and besides, it's good for you, if you're gonna sit through the day. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Feel free to replace the sport suggestion with whatever flavour suits you the most.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-21T14:35:47.750" CommentCount="2" />
  <row Id="5951" PostTypeId="1" CreationDate="2010-09-21T14:37:59.633" Score="7" ViewCount="83" Body="&lt;p&gt;A well-tested codebase has a number of examples, but testing certain aspects of the system results in a codebase that is resistant to some types of change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example is testing for specific output--e.g., text or HTML. Tests are often (naively?) written to expect a particular block of text as output for some input parameters, or to search for specific sections in a block. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Changing the behavior of the code, to meet new requirements or because usability testing has resulted in change to the interface, requires changing the tests as well--perhaps even tests that are not specifically unit tests for the code being changed.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;How do you manage the work of finding and rewriting these tests? What if you can't just &quot;run 'em all and let the framework sort them out&quot;?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;What other sorts of code-under-test result in habitually fragile tests?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-09-21T17:19:07.207" Title="How do you efficiently keep your tests working as you redesign?" Tags="&lt;development-process&gt;&lt;tdd&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="1" />
  <row Id="5953" PostTypeId="2" ParentId="5834" CreationDate="2010-09-21T14:39:36.607" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Blacksmith.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need a new tool, you can always hammer one into shape. Just like coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, practitioners tend to have a long beard and get looked at with a mixture of envy and confusion on the street...&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-09-21T14:39:36.607" CommentCount="2" />
  <row Id="5954" PostTypeId="2" ParentId="5920" CreationDate="2010-09-21T14:40:39.227" Score="8" ViewCount="" Body="&lt;p&gt;I mark mine up using LaTeX. It looks beautiful, but it's kind of annoying since a lot of places want a Microsoft Word document, even though, you know, PDF is more portable... I'm thinking about using XML instead, so I can convert it into different formats easily.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-09-21T14:40:39.227" CommentCount="7" />
  <row Id="5955" PostTypeId="2" ParentId="5834" CreationDate="2010-09-21T14:43:17.643" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Novelist&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was surprised how similar writing fiction was to coding. You have to come up with a design, implement it, and test it, before debugging and refining it. You have to balance constraints from the language itself, from your customers, and from your creative goals. You have to understand how to work as a part of a creative team if you expect to be published.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The lack of a good testing infrastructure, IDE, or refactoring tools makes writing English very annoying in comparison to writing code--it's one thing if you just change the name of a character, but if, for example, you change a character's gender, there is no good way to go back and fix all the pronouns and interactions. And the tools for modularizing and organizing the text itself mostly suck--see my posts elsewhere on banging &lt;code&gt;git&lt;/code&gt; into shape for this purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And don't get me started on the lack of encapsulation in narrative fiction.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-09-21T14:43:17.643" CommentCount="7" />
  <row Id="5957" PostTypeId="2" ParentId="5770" CreationDate="2010-09-21T14:48:16.900" Score="1" ViewCount="" Body="&lt;p&gt;The Lego Mindstorms NXT kit...&lt;/p&gt;&#xA;" OwnerUserId="3231" LastActivityDate="2010-09-21T14:48:16.900" CommentCount="2" />
  <row Id="5958" PostTypeId="2" ParentId="5916" CreationDate="2010-09-21T14:55:10.747" Score="0" ViewCount="" Body="&lt;p&gt;I use them, but as some other people have said not universally. For small methods they can easily be larger than the code they're explaining. They are most useful for generating documentation that can be given to people new to the system so that they have something to refer to while learning it. Even though, as programmers, we can usually ferret out what some code is for it is nice to have the comments to guide us and act as a crutch. If it &lt;strong&gt;has&lt;/strong&gt; to be written down somewhere then in the code is the place it is most likely to stay updated (more likely than some Word document floating around).&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-09-21T14:55:10.747" />
  <row Id="5959" PostTypeId="2" ParentId="2204" CreationDate="2010-09-21T14:55:33.443" Score="2" ViewCount="" Body="&lt;p&gt;Typically, I have seen that deeply indented code is usually problematic code. If you are facing this problem, then step back and evaluate if your function is doing too many things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the same time, to answer your question, if there is a need for indentation that deep, I would suggest that you let it be there. For the simple reason that in such code, the indentation will help since it is likely to be a very long piece of code.&lt;/p&gt;&#xA;" OwnerUserId="3231" LastActivityDate="2010-09-21T14:55:33.443" />
  <row Id="5960" PostTypeId="2" ParentId="5920" CreationDate="2010-09-21T14:57:16.667" Score="2" ViewCount="" Body="&lt;p&gt;I keep mine in a Word file, which, unless asked otherwise (&lt;em&gt;some actually ask for a Word file format&lt;/em&gt;), I usually convert to PDF before sending.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although I think that LaTeX looks nicer, it doesn't matter - Word is the industry standard today.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-21T14:57:16.667" CommentCount="2" />
  <row Id="5961" PostTypeId="2" ParentId="296" CreationDate="2010-09-21T14:58:16.573" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/CommonJS&quot; rel=&quot;nofollow&quot;&gt;&lt;h2&gt;CommonJS&lt;/h2&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also a.k.a. ServerJS or Server-side JavaScript (SSJS). This language has all the attributes that Steve Yegge talked about in his &lt;a href=&quot;http://steve-yegge.blogspot.com/2007/02/next-big-language.html&quot; rel=&quot;nofollow&quot;&gt;blog post - The Next Big Language&lt;/a&gt;. I admit that I haven't been totally convinced by him yet, but it's clear to me SSJS's performance is getting much better and there is a huge community out there to try to make it better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have been warned. :-}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I enjoyed very much his talks and interview.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=tz-Bb-D6teE&quot; rel=&quot;nofollow&quot;&gt;Dynamic language strike back&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=1QD9XQm_Jd4&quot; rel=&quot;nofollow&quot;&gt;Rhino on Rails&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-21T14:58:16.573" CommentCount="1" />
  <row Id="5962" PostTypeId="2" ParentId="1237" CreationDate="2010-09-21T14:59:44.247" Score="2" ViewCount="" Body="&lt;p&gt;if it's possible, leave a simple part of current day's work for the next day. this way you'll start the new day with a simple job and this will get the engine started. if you start the new day with a big job ahead of you, then you'll need to overcome a bigger inertia to get rollin.&lt;/p&gt;&#xA;" OwnerUserId="3049" LastActivityDate="2010-09-21T14:59:44.247" />
  <row Id="5963" PostTypeId="2" ParentId="5757" CreationDate="2010-09-21T15:00:57.280" Score="7" ViewCount="" Body="&lt;p&gt;Looking at the other answers here, I think there might be some confusion between static methods that hold static state or cause side-effects (which sounds to me like a really bad idea), and static methods that merely return a value.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Static methods which hold no state and cause no side effects should be easily unit testable.  In fact, I consider such methods a &quot;poor-man's&quot; form of functional programming; you hand the method an object or value, and it returns an object or value.  Nothing more.  I don't see how such methods would negatively affect unit testing at all.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-09-21T15:00:57.280" CommentCount="3" />
  <row Id="5964" PostTypeId="1" CreationDate="2010-09-21T15:01:52.467" Score="4" ViewCount="240" Body="&lt;p&gt;We frequently recruit fresh talent into our company straight from the Universities. While a lot of training goes on for these developers, I think there should be a training program that simply teaches them good coding skills (note, I am not talking about knowledge of .net framework).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I am looking for is a software which allows me to automate some of this training. The part that should be automated is&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Create coding assignments&lt;/li&gt;&#xA;&lt;li&gt;Automatic submission of assignment&lt;/li&gt;&#xA;&lt;li&gt;Automatic evaulation of the submitted assignment on code quality&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Have you guys ever seen something like this in the wild?&lt;/p&gt;&#xA;" OwnerUserId="3231" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-21T16:24:18.657" LastActivityDate="2010-09-21T18:44:53.793" Title="&quot;How to code better&quot; training" Tags="&lt;coding&gt;&lt;training&gt;" AnswerCount="3" />
  <row Id="5965" PostTypeId="2" ParentId="1963" CreationDate="2010-09-21T15:02:18.423" Score="7" ViewCount="" Body="&lt;p&gt;I suggest you study the concepts promoted 1-60 years ago. You'll be more up to date than about 95% of all programmers. Most of the things perceived as cool, hot or new today are really just shiny, buzzword-packaged versions of really old concepts. Nowadays the vast majority of people uses the word OOP without having understood a thing about it, although it's been coined about 50-60 years ago.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So far, I haven't seen A THING, where it is important to discover it right when it came out. That's due to the fact, that today a lot of things are shared, when they are just proofs of concept.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a lot of clever people having a lot of clever ideas. The problem with clever people is, they like reinventing the wheel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;greetz&lt;br&gt;&#xA;back2dos&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-09-21T15:02:18.423" CommentCount="1" />
  <row Id="5966" PostTypeId="2" ParentId="5921" CreationDate="2010-09-21T15:08:07.113" Score="0" ViewCount="" Body="&lt;p&gt;My hands are in terrible condition. Not that that's anything to brag about. I'm guilty of cracking knuckles.&lt;/p&gt;&#xA;" OwnerUserId="1732" LastActivityDate="2010-09-21T15:08:07.113" CommunityOwnedDate="2011-03-26T13:37:08.243" />
  <row Id="5967" PostTypeId="2" ParentId="361" CreationDate="2010-09-21T15:11:43.237" Score="0" ViewCount="" Body="&lt;p&gt;According to Malcom Gladwell in &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0316017922&quot; rel=&quot;nofollow&quot;&gt;Outliers&lt;/a&gt;, it takes 10,000 hours of practice to become an &lt;a href=&quot;http://en.wikipedia.org/wiki/Expert&quot; rel=&quot;nofollow&quot;&gt;expert&lt;/a&gt; at anything, whether its figure-skating, painting, or programming a computer.  Some use the figure of 10 years instead of 10,000 hours.  (Do a Google search on &lt;em&gt;10,000 hours expert&lt;/em&gt; for more on this topic.)  I got an MSCS almost 35 years ago, and am still learning.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-21T15:11:43.237" />
  <row Id="5969" PostTypeId="2" ParentId="5964" CreationDate="2010-09-21T15:18:38.353" Score="3" ViewCount="" Body="&lt;p&gt;I have yet to see something 100% automated to do what you ask. That said, you can automate some of it and remove the subjectivity by using a static analysis tool like NDepend (http://www.ndepend.com/) or whatever is applicable to your language / framework. The submitted assignments could be processed by the tool first to get a baseline metric. Alternatively you could use FxCop (http://msdn.microsoft.com/en-us/library/bb429476(VS.80).aspx) (or it's descendants) to do the same sort of analysis for things like naming conventions, etc.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-09-21T15:18:38.353" CommentCount="2" />
  <row Id="5970" PostTypeId="2" ParentId="4384" CreationDate="2010-09-21T15:29:33.173" Score="3" ViewCount="" Body="&lt;p&gt;In 1994 I was given 100,000+ lines of C (scattered through many source files), written by a FORTRAN programmer teaching himself C. All code was up against the left margin and it was &quot;goto&quot; central. I spent days using lint and such just to make it readable / parse-able for humans. I added comments (almost none pre-existing in the whole assemblage) where I had figured something out. After each set of edits I'd build the whole thing to be sure I wasn't breaking anything. After all of that I could finally figure out where the graphics files were being produced from and create another function that created a CGM output file instead of the default DXF output. After all the work and testing the feature went out to clients and was used exactly once.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have worked on lots of other &quot;heroic&quot; efforts since then and acquired the weariness that other people are talking about in their answers, making me leery of doing such efforts anymore (getting older probably contributes to this also), but this first baptism-by-fire still stands out in my mind. I was proud of myself for getting through it and it convinced me that given the time and tools I could come out the other side of most any development challenge.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-09-21T15:29:33.173" CommentCount="4" />
  <row Id="5971" PostTypeId="2" ParentId="5757" CreationDate="2010-09-21T15:29:55.007" Score="3" ViewCount="" Body="&lt;p&gt;You seem to be confusing static &lt;em&gt;data&lt;/em&gt; and static &lt;em&gt;methods&lt;/em&gt;. Reflector, if I remember correctly, recommends making &lt;code&gt;private&lt;/code&gt; methods within a class static if they can be made so - I believe this yields a small performance benefit. It &lt;em&gt;doesn't&lt;/em&gt; recommend making &quot;anything that can be&quot; static!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is nothing wrong with static methods and they are easy to test (so long as they don't change any static data). For instance, think of a Maths library, which is good candidate for a static class with static methods. If you have a (contrived) method like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public static long Square(int x)&#xA;{&#xA;    return x * x;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;then this is eminently testable and has no side effects. You just check that when you pass in, say, 20 you get back 400. No problem.&lt;/p&gt;&#xA;" OwnerUserId="607" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-09T23:10:08.273" LastActivityDate="2010-11-09T23:10:08.273" CommentCount="9" />
  <row Id="5972" PostTypeId="1" CreationDate="2010-09-21T15:38:25.197" Score="15" ViewCount="1716" Body="&lt;p&gt;This has nothing to do with having a favourite editor or anything like that. I was just wondering, per language, what are the most popular Integrated Development Environments? Maybe a top 2-3 if there is some contention. (Perceived popularity is enough)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thus Far:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;C#&lt;/strong&gt; - Visual Studio, SharpDevelop&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Java&lt;/strong&gt; - Eclipse, NetBeans, IDEA&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Objective-C&lt;/strong&gt; - Xcode&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Delphi&lt;/strong&gt; - RAD Studio&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Object Pascal&lt;/strong&gt; - Delphi, Lazarus&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;C, C++&lt;/strong&gt; - Visual Studio, Vim&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;PL/SQL&lt;/strong&gt; - RapidSQL, Oracle SQLDeveloper&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;PHP&lt;/strong&gt; - Eclipse, NetBeans, Nusphere PHPed&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Actionscript (AS2, AS3)&lt;/strong&gt; - FlashDevelop&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Flex&lt;/strong&gt; - Flash Builder 4&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt; - Eclipse, IDLE&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Perl&lt;/strong&gt; - Padre&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Common Lisp&lt;/strong&gt; - Lispworks, Emacs&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Ruby&lt;/strong&gt; - TextMate&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Haskell&lt;/strong&gt; - Vim&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Fortran&lt;/strong&gt; - Vim&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Visual Basic&lt;/strong&gt; - Visual Studio&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2010-09-22T17:42:28.200" LastActivityDate="2011-05-01T03:30:21.017" CommunityOwnedDate="2011-04-30T19:57:04.087" ClosedDate="2011-05-01T03:54:11.700" Title="What are the most popular IDEs per language?" Tags="&lt;programming-languages&gt;&lt;ide&gt;" AnswerCount="33" CommentCount="13" FavoriteCount="7" />
  <row Id="5973" PostTypeId="1" CreationDate="2010-09-21T15:40:36.800" Score="3" ViewCount="500" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/2260/which-keymap-for-programmers-dvorak&quot;&gt;Which keymap for programmers? Dvorak?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard#Programmer_Dvorak&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard#Programmer_Dvorak&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had no idea this existed and was curious if any one out there has actually used it in their day to day programming.  If you have...&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Did you notice any difference in&#xA;your programming speed?&lt;/li&gt;&#xA;&lt;li&gt;How long did it take you to feel&#xA;comfortable using it?&lt;/li&gt;&#xA;&lt;li&gt;Can you switch between that and&#xA;QWERTY?&lt;/li&gt;&#xA;&lt;li&gt;Was it worth it?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I'm usually typing: C#, SQL, HTML, javascript&lt;/p&gt;&#xA;" OwnerUserId="3240" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:12:00.020" LastActivityDate="2010-11-16T15:12:00.020" ClosedDate="2010-09-22T12:29:34.453" Title="“Programmer Dvorak” keyboard layout?" Tags="&lt;productivity&gt;&lt;keyboard&gt;" AnswerCount="4" CommentCount="0" />
  <row Id="5974" PostTypeId="2" ParentId="5834" CreationDate="2010-09-21T15:42:43.160" Score="3" ViewCount="" Body="&lt;p&gt;Ok, let's try a serious answer (although my other answer seems to have popularity), because there is a thing I really think most people missed here. There is somthing I like to call &quot;hierarchical knowledge&quot; for the lack of a better term.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Hierarchical knowledge&lt;/strong&gt; is the opposite of &quot;flat knowlegde&quot;, knowledge, that allows random access. For example, in literature, or philosophy, it is not required, that you know and understand results obtained 400 years ago to understand results obtained 100 years ago, as you would need in mathematics or physics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another example, I have heard once is: Have both a professor of mathematics and philosophy study the last semester of the other subject respectively. How many exams do you think they will each be able to pass?&lt;br&gt;&#xA;Well, I am not the only one to expect the professor of mathematics to get better results. He can even be less intelligent (assuming there were reasonable metrics), but the point is, you can understand Sartre without understanding Socrates, but you cannot understand Wiles without understanding Galois.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Experience is much like hierarchical knowledge&lt;/strong&gt;, in that you need time to achieve it. However experience is an even much more complicated thing than knowledge, because experience is about &lt;em&gt;abilities&lt;/em&gt;, while knowledge is about ... well ... &lt;em&gt;knowing&lt;/em&gt;, not about &lt;em&gt;actually doing&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Programming requires hierarchical knowledge&lt;/strong&gt;. A lot of it. A lot less than scientific research. But a lot more than creative writing (I picked this, because it seems many consider this similar to programming).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Programming requires experience&lt;/strong&gt;. As basically any profession (that can't basically be carried out by a machine). It requires a lot of experience other than the field you're actually in, such as analyzing, planning, managing, communicating, etc.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Now &lt;strong&gt;if you decide to switch&lt;/strong&gt; fields, &lt;strong&gt;a lot&lt;/strong&gt; of the things you needed years to build up, &lt;strong&gt;goes out the window&lt;/strong&gt;. Programming is not just about being creative or having a general technical understanding. It's about an immense knowledge of many things. If you're smart and train yourself by doing the mental abilities required of programmers, then yes, you may be better than average in other fields. But it will take a lot of time for you to become just as good in a new field. Because most of your hierarchical knowledge isn't transferable, and even a considerable part of your experience isn't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, I would never dare to walk into an experienced mechanical engineers office claiming I can do his job, since I come from a &quot;similar&quot; field. And if that happened to me, I'd hammer the crap out of the guy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I doubt, you can become a good programmer without a longing for a profound understanding of your field. And once you've achieved that, it will leave a void if you switch over to something else. A lot of alternatives have been provided, but to me, they'd all pose the same problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;greetz&lt;br&gt;&#xA;back2dos&lt;/p&gt;&#xA;" OwnerUserId="667" LastEditorUserId="667" LastEditorDisplayName="" LastEditDate="2010-09-21T15:56:39.207" LastActivityDate="2010-09-21T15:56:39.207" CommentCount="1" />
  <row Id="5975" PostTypeId="2" ParentId="5972" CreationDate="2010-09-21T15:43:16.640" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Visual Basic&lt;/strong&gt; - Visual Studio&lt;br&gt;&#xA;&lt;strong&gt;C++, Fortran&lt;/strong&gt; - Visual Studio, Vim, Emacs   &lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-09-21T17:16:35.920" LastActivityDate="2010-09-21T17:16:35.920" CommunityOwnedDate="2011-04-30T19:57:04.087" CommentCount="8" />
  <row Id="5976" PostTypeId="2" ParentId="5972" CreationDate="2010-09-21T15:45:03.773" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Java&lt;/strong&gt; - Eclipse, NetBeans&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt; - IDLE? (Ships by default, don't know about popularity)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Perl&lt;/strong&gt; - Padre&lt;/p&gt;&#xA;" OwnerUserId="1767" LastActivityDate="2010-09-21T15:45:03.773" CommunityOwnedDate="2011-04-30T19:57:04.087" CommentCount="3" />
  <row Id="5977" PostTypeId="2" ParentId="5916" CreationDate="2010-09-21T15:45:54.357" Score="1" ViewCount="" Body="&lt;p&gt;Forgetting to do something doesn't make it a bad idea.  Forgetting to update any documentation is.  I've found these very useful in my programming and people that inherit my code are thankful to have them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is one of the most visible ways to document your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a pain to have to find the source code to read inline documentation or dig up a document that goes over what code does.  If you can have something useful pop up through intelligence then people will love you.&lt;/p&gt;&#xA;" OwnerUserId="3240" LastActivityDate="2010-09-21T15:45:54.357" />
  <row Id="5979" PostTypeId="2" ParentId="5972" CreationDate="2010-09-21T15:49:30.950" Score="11" ViewCount="" Body="&lt;p&gt;Java - IDEA, Eclipse, NetBeans.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-09-21T15:49:30.950" CommunityOwnedDate="2011-04-30T19:57:04.087" CommentCount="12" />
  <row Id="5980" PostTypeId="2" ParentId="5972" CreationDate="2010-09-21T15:52:25.720" Score="1" ViewCount="" Body="&lt;p&gt;I'm not sure, but I would say that the most popular in Python is Eclipse + pyDev&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everyone Ruby programmer I know uses TextMate in MacOS&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-09-21T15:52:25.720" CommunityOwnedDate="2011-04-30T19:57:04.087" CommentCount="2" />
  <row Id="5981" PostTypeId="2" ParentId="4001" CreationDate="2010-09-21T15:54:33.000" Score="5" ViewCount="" Body="&lt;p&gt;I've been at both ends of the off-shore model, and my experience with it have been &quot;not so good&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Feeling of ownership/responsibility or the lack of it, I thought, was the key.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you are the off-shored resource, in a &quot;typical&quot; environment, you will not be given the &quot;bigger&quot; picture and chances are you will never ever meet the client (end user). Decisions will be made for you, and all that is expected from you is to write code. This would have been fine, if the code by itself was super exciting, but in most cases its the &quot;business&quot; that makes things interesting, not pushing data in and out of ORMs. When requirements get messed up (which you as a developer had no say in) you are expected to bear the brunt and rewrite stuff, may be even work longer hours that day. When things go fine, you get an email that reads - &quot;thank you for your hard work and support&quot;. It is no mystery that you eventually lose interest in the well-being of the project and its success or failure mean little to you. When this happens you get bad code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you are working with off-shored resources and are having a not-so-good experience, either what I stated above is happening where good programmers have lost interest, OR you didn't choose good programmers. If you believe that your off-shore project manager will choose the smartest and brightest resources for your project, you are mistaken. He has other things to consider, he has to put together a team quickly, he has to deal with high attrition rates, etc. Finding good programmers is in his list, but not at the top of his list. Always interview the off-shore resource you are going to work with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel, the closer you are to the client, the more interested you are in the success of the project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If teams were geometric shapes, the client should be at the center of the circle and the team members should make up the circumference. In an off-shore model this figure is generally a line, with the client at one end and the developer at the another, both having zero visibility of each other.&lt;/p&gt;&#xA;" OwnerUserId="153" LastActivityDate="2010-09-21T15:54:33.000" CommentCount="1" />
  <row Id="5982" PostTypeId="2" ParentId="5384" CreationDate="2010-09-21T16:02:37.373" Score="0" ViewCount="" Body="&lt;p&gt;I say one of &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I dont' use Windows and this is why&lt;/li&gt;&#xA;&lt;li&gt;I use GNU/Linux, Windows is too hard for me&lt;/li&gt;&#xA;&lt;li&gt;I don't use Macs, I think they're ugly; Dell hardware looks better with my current decor&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Which one depends on the situation and my mood.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: I will &lt;strong&gt;always&lt;/strong&gt; make an effort to help my wife, and lately Windows software, (particularly) Word, has actually gotten &lt;em&gt;way&lt;/em&gt; too complicated for me to understand.  So option 2 above is close to the truth.&lt;/p&gt;&#xA;" OwnerUserId="1935" LastActivityDate="2010-09-21T16:02:37.373" CommunityOwnedDate="2010-09-21T16:02:37.373" />
  <row Id="5984" PostTypeId="2" ParentId="4177" CreationDate="2010-09-21T16:12:01.393" Score="1" ViewCount="" Body="&lt;h2&gt;Bash&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Then Scheme (Guile), then Emacs Lisp.&lt;/p&gt;&#xA;" OwnerUserId="1935" LastActivityDate="2010-09-21T16:12:01.393" />
  <row Id="5986" PostTypeId="2" ParentId="4177" CreationDate="2010-09-21T16:16:55.600" Score="3" ViewCount="" Body="&lt;p&gt;Use &lt;strong&gt;whatever language you know best&lt;/strong&gt;, no language is going to help you implement it faster if you have to ramp up on it first.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-21T16:16:55.600" CommentCount="2" />
  <row Id="5987" PostTypeId="2" ParentId="5951" CreationDate="2010-09-21T16:17:59.880" Score="0" ViewCount="" Body="&lt;p&gt;I know the TDD folks will hate this answer, but a large part of it for me is to choose carefully where to test something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I go too crazy with unit tests in the lower tiers then no meaningful change can be made without altering the unit tests.  If the interface is never exposed and not intended to be reused outside the app then this is just needless overhead to what might have been a quick change otherwise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Conversely if what you are trying to change is exposed or re-used every one of those tests you are going to have to change is evidence of something you might be breaking elsewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In some projects this may amount to designing your tests from the acceptance tier down rather than from the unit tests up. and having fewer unit tests and more integration style tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It does not mean that you cannot still identify a single feature and code until that feature meets its acceptance criteria.  It simply means that in some cases you do not end up measuring the acceptance criteria with unit tests.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-21T16:17:59.880" CommentCount="2" />
  <row Id="5989" PostTypeId="2" ParentId="5384" CreationDate="2010-09-21T16:21:20.557" Score="0" ViewCount="" Body="&lt;p&gt;If I don't want to do it then I just bill them for, what I think will be, more than they can afford.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they still agree... well then I just made $200 for replacing a hard drive.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-21T16:21:20.557" CommunityOwnedDate="2010-09-21T16:21:20.557" />
  <row Id="5990" PostTypeId="2" ParentId="5964" CreationDate="2010-09-21T16:25:14.437" Score="4" ViewCount="" Body="&lt;p&gt;Personally this is not something I would attempt to automate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not think that removing the mentoring and the discussion of the subjective aspects of the code generated by new developers is ultimately doing the organization or the developers is ultimately a positive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you are recruiting from schools that do not produce a good result you are pretty much describing what many schools do in 100 and 200 level CS classes (except the &quot;automation&quot; is the prof's grad students)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are out of school, it is time to show them how real problems get solved in the real world.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-21T16:25:14.437" CommentCount="1" />
  <row Id="5991" PostTypeId="2" ParentId="5972" CreationDate="2010-09-21T16:25:21.593" Score="2" ViewCount="" Body="&lt;p&gt;For PHP there is also Nusphere PHPed which is absolutely great, not free but one of the best. I used to use it all the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Haskell I would say vim,and that probably goes for C too.&lt;/p&gt;&#xA;" OwnerUserId="2849" LastActivityDate="2010-09-21T16:25:21.593" CommunityOwnedDate="2011-04-30T19:57:04.087" />
  <row Id="5992" PostTypeId="2" ParentId="5973" CreationDate="2010-09-21T16:30:02.367" Score="1" ViewCount="" Body="&lt;p&gt;I dabbled with switching, and still do on occasion. I also drew up a &lt;a href=&quot;http://joshuakehn.com/blog/index.php/basic/view/48/Programmers-Character-Frequency&quot; rel=&quot;nofollow&quot;&gt;programming character frequency&lt;/a&gt; post not too long ago.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's obvious that due to the differences between written text and almost any programming language that our needs will be different. However unless you want to make a dedicated effort to switch and &lt;em&gt;stick with it&lt;/em&gt; I doubt it would be much helpful. I learned to touch type over the course of about a year. Relearning everything (and then keeping both sets in my head) might be harder then you think. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-21T16:30:02.367" />
  <row Id="5993" PostTypeId="2" ParentId="5972" CreationDate="2010-09-21T16:30:53.127" Score="16" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;All languages&lt;/strong&gt; - &lt;a href=&quot;http://www.vim.org/&quot; rel=&quot;nofollow&quot;&gt;VIM&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't like IDE's. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I'm on OSX I'll use TextMate at time, but mostly I do everything (JavaScript, Java, Python, PHP) in VIM. I'm also quicker then several colleagues who use an IntelliJ.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-21T16:30:53.127" CommunityOwnedDate="2011-04-30T19:57:04.087" CommentCount="11" />
  <row Id="5995" PostTypeId="2" ParentId="5951" CreationDate="2010-09-21T16:39:39.283" Score="2" ViewCount="" Body="&lt;p&gt;I just completed a major overhaul of my SIP stack, rewriting the entire TCP transport. (This was a near refactor, on a rather grand scale, relative to most refactorings.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In brief, there's a TIdSipTcpTransport, subclass of TIdSipTransport. All TIdSipTransports share a common test suite. Internal to TIdSipTcpTransport were a number of classes - a map containing connection/initiating-message pairs, threaded TCP clients, a threaded TCP server, and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's what I did:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Deleted the classes I was going to replace.&lt;/li&gt;&#xA;&lt;li&gt;Deleted the test suites for those classes.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Left&lt;/em&gt; the test suite specific to TIdSipTcpTransport (and there was still the test suite common to all TIdSipTransports).&lt;/li&gt;&#xA;&lt;li&gt;Ran the TIdSipTransport/TIdSipTcpTransport tests, to make sure they all failed.&lt;/li&gt;&#xA;&lt;li&gt;Commented out all but one TIdSipTransport/TIdSipTcpTransport test.&lt;/li&gt;&#xA;&lt;li&gt;If I needed to add a class, I'd add it write tests to build up enough functionality that the sole uncommented test passed.&lt;/li&gt;&#xA;&lt;li&gt;Lather, rinse, repeat.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I thus knew what I still needed to do, in the form of the commented-out tests (*), and knew that the new code was working as expected, thanks to the new tests I wrote.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(*) Really, you don't need to comment them out. Just don't run them; 100 failing tests isn't very encouraging. Also, in my particular setup compiling fewer tests means a faster test-write-refactor loop.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-21T16:39:39.283" />
  <row Id="5996" PostTypeId="2" ParentId="5921" CreationDate="2010-09-21T16:52:22.517" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Tennis balls&lt;/strong&gt; or some ball made of hard spongy foam.  You can squeeze it to exersice your fingers.&lt;/p&gt;&#xA;" OwnerUserId="3228" LastActivityDate="2010-09-21T16:52:22.517" CommunityOwnedDate="2011-03-26T13:37:08.243" />
  <row Id="5997" PostTypeId="2" ParentId="5972" CreationDate="2010-09-21T16:52:22.733" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Common Lisp&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Commercially, probably LispWorks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Outside of the commercial implementations, almost certainly EMACS + SLIME&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-21T16:52:22.733" CommunityOwnedDate="2011-04-30T19:57:04.087" CommentCount="1" />
  <row Id="5998" PostTypeId="2" ParentId="5921" CreationDate="2010-09-21T16:54:24.480" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Large strong elastic bands&lt;/strong&gt; (really large).  You can exercise your whole arm by stretching them.&#xA;I suffer more from my shoulders than my arms, so this helps me a lot.&lt;/p&gt;&#xA;" OwnerUserId="3228" LastActivityDate="2010-09-21T16:54:24.480" CommunityOwnedDate="2011-03-26T13:37:08.243" />
  <row Id="6000" PostTypeId="2" ParentId="5972" CreationDate="2010-09-21T16:56:22.480" Score="0" ViewCount="" Body="&lt;p&gt;Mine&lt;/p&gt;&#xA;&#xA;&lt;p&gt;.Net (3.5) - Visual studio 2008&#xA;.net 4 - visual studio 2010&lt;/p&gt;&#xA;&#xA;&lt;p&gt;flex - flash builder 4 / eclipse&#xA;Java - Eclipse&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ROR - TextMate&#xA;HTML/CSS/JS etc - TextMate&lt;/p&gt;&#xA;" OwnerUserId="2918" LastActivityDate="2010-09-21T16:56:22.480" CommunityOwnedDate="2011-04-30T19:57:04.087" />
  <row Id="6001" PostTypeId="2" ParentId="5972" CreationDate="2010-09-21T16:59:50.600" Score="5" ViewCount="" Body="&lt;p&gt;For Delphi, the Delphi IDE.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-21T16:59:50.600" CommunityOwnedDate="2011-04-30T19:57:04.087" CommentCount="4" />
  <row Id="6002" PostTypeId="2" ParentId="5972" CreationDate="2010-09-21T17:01:13.783" Score="1" ViewCount="" Body="&lt;p&gt;Was never really a fan of an IDE and find I learn the language better without the assistance.  VIM was mentioned but at times I really am not interested in VIM and would rather use nano.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.nano-editor.org/&quot; rel=&quot;nofollow&quot;&gt;Nano Editor&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-21T17:01:13.783" CommunityOwnedDate="2011-04-30T19:57:04.087" />
  <row Id="6003" PostTypeId="2" ParentId="5972" CreationDate="2010-09-21T17:02:43.280" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C++&lt;/strong&gt;: Visual Studio with Visual Assist X&lt;/p&gt;&#xA;" OwnerUserId="112" LastActivityDate="2010-09-21T17:02:43.280" CommunityOwnedDate="2011-04-30T19:57:04.087" />
  <row Id="6004" PostTypeId="2" ParentId="5972" CreationDate="2010-09-21T17:03:52.747" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Object Pascal&lt;/strong&gt; - Delphi, Lazarus&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;C,C++&lt;/strong&gt; - Bloodshed Dev C++ , Visual Studio 2008 C++&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;PL/SQL&lt;/strong&gt; - RapidSQL (by Embarcadero), Oracle SQLDeveloper&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;C#&lt;/strong&gt; - Visual Studio (Currently in 2008, but 2010 looks sweet when I upgrade!)&lt;/p&gt;&#xA;" OwnerUserId="1789" LastActivityDate="2010-09-21T17:03:52.747" CommunityOwnedDate="2011-04-30T19:57:04.087" CommentCount="2" />
  <row Id="6005" PostTypeId="1" CreationDate="2010-09-21T17:04:33.370" Score="11" ViewCount="394" Body="&lt;p&gt;To the outside world, programmers, computer scientists, software engineers, and developers may all seem alike, but that's far from the case for the people who create software for a living.  Any single programmer's ability and knowledge can range very widely, as well as their tools (OS, language, and yes, preferred editor), and that diversity spawns many sub-cultures in software - like programmers who actively use Stack Overflow and this site, versus many more who don't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm curious to hear from others what software sub-cultures they've encountered, belonged to, admired, disliked, or even created.  For starters, I've encountered:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Microsoft-driven companies and developers&lt;/strong&gt;: their entire stack is from Redmond, WA.  E-mail is Outlook is e-mail.  The web is IE and IIS.  They have large binders of their MS Developer Network subscription full of multiple versions of VB, .net, Visual Studio, etc.  Avoids working with a shell/command-line.  Don't see what the fuss with open-source and such is all about.  MS-centric companies tend to be 9-5 and quite corporate (driven by business managers, not software people). Nowadays (given the wide availability of non-MS tools), this is the antithesis of hacker culture.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Old-school CS people&lt;/strong&gt;: they often know Lisp and Unix extremely well; sometimes, they may have written a semi-popular Lisp themselves, or a system utility. Few, if any, &quot;software engineering&quot; things are new to them, nor are they impressed by such.  Know the references, history, and higher-level implications of programming languages like Lisp, C, Prolog, and Smalltalk.  Can be bitter about AI outcomes of the 80's and 90's. Tend to be Emacs users.  Can type out multi-line shell commands without blinking an eye.  Their advice can by cryptic, but contains gold once understood.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;New-school web developers&lt;/strong&gt;: played with computers and video games growing up, but often only really started programming in the late '90s or early '00's.  Comfortable with 1 to 1.5 scripting/dynamic languages; think C and languages outside of Ruby/Perl/Python are unnecessary/magical.  May have considered HTML as programming initially.  Tend to get a Mac and be fanatical/irrational about it.  Use frameworks more than build them.  Often overly-enthusiastic about NoSQL and/or Ruby On Rails.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;New-school CS&lt;/strong&gt;: lots of training in statistics, Bayesian models and inference; don't say &quot;AI,&quot; say &quot;machine learning.&quot; More Java than Lisp, but could also be expert Haskell programmers.  Seeing major real-world successes by experts in their field (Google, finance/quants) often makes them (over) confident.  But big data, and the distributed processing of such, really are changing the world.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The examples above are by no means complete, correct, orthogonal, or objective. :)  Just what I've seen personally, and provided to spark some discussion and outline of the broader question.  Feel free to disagree!&lt;/p&gt;&#xA;" OwnerUserId="2026" LastEditorUserId="2026" LastEditorDisplayName="" LastEditDate="2010-09-30T21:42:50.247" LastActivityDate="2010-09-30T21:42:50.247" Title="What programming/software sub-cultures exist? What defines them? Which do you belong to?" Tags="&lt;culture&gt;&lt;social&gt;" AnswerCount="10" CommentCount="3" FavoriteCount="4" />
  <row Id="6006" PostTypeId="2" ParentId="5972" CreationDate="2010-09-21T17:14:34.433" Score="1" ViewCount="" Body="&lt;h2&gt;PHP&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Actual PHP programming&lt;/strong&gt;  - Netbeans (PHP version) or Eclipse (PHP Development Tools)&lt;br&gt;&#xA;&lt;strong&gt;PHP Templating&lt;/strong&gt;  - Dreamweaver&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note - By actual PHP programing I mean (for example) OOP using frameworks like CakePHP, Symfony or CodeIgniter.&lt;br&gt;&#xA;By templating I mean using simple PHP for including headers/footers or formatting.  &lt;/p&gt;&#xA;" OwnerUserId="1013" LastEditorUserId="1013" LastEditorDisplayName="" LastEditDate="2010-11-03T18:41:59.997" LastActivityDate="2010-11-03T18:41:59.997" CommunityOwnedDate="2011-04-30T19:57:04.087" CommentCount="12" />
  <row Id="6007" PostTypeId="2" ParentId="5951" CreationDate="2010-09-21T17:19:07.207" Score="1" ViewCount="" Body="&lt;p&gt;When tests are fragile, I find its usually because I'm testing the wrong thing. Take for example, HTML output. If you check the actual HTML output your test will be fragile. But you aren't interested in the actual output, you are interested in whether it conveys the information that it should. Unfortunately, doing that requires making assertions about the contents of user's brains and so can't be done automatically.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Generate the HTML as a smoke test to make sure it actually runs&lt;/li&gt;&#xA;&lt;li&gt;Use a template system, so you can test the template processor and data sent to the template, without actually testing the exact template itself.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The same sort of things happens with SQL. If you assert the actual SQL your classes attempt to make you are going to be in trouble. You really want to assert the results. Hence I use a SQLITE memory database during my unit tests to make sure that my SQL actually does what its supposed to.&lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-09-21T17:19:07.207" CommentCount="3" />
  <row Id="6008" PostTypeId="2" ParentId="5757" CreationDate="2010-09-21T17:23:21.600" Score="1" ViewCount="" Body="&lt;p&gt;Statics aren't necessarily evil, but they can limit your options when it comes to unit-testing with fakes/mocks/stubs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are two general approaches to mocking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first one (traditional - implemented by RhinoMocks, Moq, NMock2; manual mocks and stubs are in this camp, too) relies on test seams and dependency injection.  Suppose you're unit-testing some static code and it has dependencies.  What happens often in the code designed this way is that statics create their own dependencies, inverting &lt;em&gt;dependency inversion&lt;/em&gt;.  You soon discover that you can't inject mocked interfaces into code under test that is designed this way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second one (mock anything - implemented by TypeMock and apparently JustMock and Moles) relies on .NET's &lt;a href=&quot;http://msdn.microsoft.com/en-us/magazine/cc188743.aspx&quot; rel=&quot;nofollow&quot;&gt;Profiling API&lt;/a&gt;.  It can intercept any of your CIL instructions and replace a chunk of your code with a fake.  This allows TypeMock and other products in this camp to mock anything: statics, sealed classes, private methods - things not designed to be testable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's an ongoing debate between two schools of thought.  One says, follow &lt;em&gt;SOLID principles&lt;/em&gt; and design for testability (that often includes going easy on statics).  The other one says, buy TypeMock and don't worry.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-09-21T17:23:21.600" />
  <row Id="6009" PostTypeId="2" ParentId="5921" CreationDate="2010-09-21T17:34:39.217" Score="1" ViewCount="" Body="&lt;p&gt;Climbing is probably the best finger exercise you can ever get. But it's unfortunately easy to injure them, so you got to be careful. You also got to keep your fingernails short and your skin lotioned, 'cause the chalk dries it out.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-21T17:34:39.217" CommunityOwnedDate="2011-03-26T13:37:08.243" CommentCount="3" />
  <row Id="6010" PostTypeId="2" ParentId="5921" CreationDate="2010-09-21T17:35:22.263" Score="2" ViewCount="" Body="&lt;p&gt;Wow, 10 answers so far, and no one so far mentioned any kind of sports activity !! Now, I know programmers are not the most sports oriented people on this little piece of rock we call Earth, but they're also (rather) rational people, and probably understand the importance of keeping (not just your hands) healty, but healthy in general (&lt;em&gt;no point being smart, if you're gonna die from a heart condition at 65, is there?&lt;/em&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Jogging, cycling and tennis are my choices. I also, never had any problems with my hands whatsoever.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-21T17:35:22.263" CommunityOwnedDate="2011-03-26T13:37:08.243" CommentCount="1" />
  <row Id="6011" PostTypeId="2" ParentId="6005" CreationDate="2010-09-21T17:38:06.843" Score="0" ViewCount="" Body="&lt;p&gt;Count me down as the 'old-school' guy.  I never did LISP well, though.  Emacs? Nah, &lt;code&gt;vi&lt;/code&gt; and &lt;code&gt;set -o vi&lt;/code&gt; in my shell for me thank you.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-21T17:38:06.843" />
  <row Id="6012" PostTypeId="2" ParentId="6005" CreationDate="2010-09-21T17:38:52.580" Score="1" ViewCount="" Body="&lt;p&gt;I'm probably a combination of &lt;strong&gt;Old-school CS people&lt;/strong&gt; and &lt;strong&gt;New-school web developers&lt;/strong&gt;: I learned programming by writing websites with PHP, Javascript and SQL, and am now attending university where everything is done in command-prompts and Emacs under UNIX.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-21T17:38:52.580" />
  <row Id="6013" PostTypeId="2" ParentId="4177" CreationDate="2010-09-21T17:39:03.420" Score="1" ViewCount="" Body="&lt;p&gt;In the world of web development,  &lt;strong&gt;PHP&lt;/strong&gt; is a really quick and dirty language thats easy to bend to your will.&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-09-21T17:39:03.420" />
  <row Id="6014" PostTypeId="1" AcceptedAnswerId="6019" CreationDate="2010-09-21T17:42:02.063" Score="16" ViewCount="837" Body="&lt;p&gt;A lot of us started seeing this phenomenon with jQuery about a year ago when people started asking how to do absolutely insane things like &lt;a href=&quot;http://stackoverflow.com/questions/901115/get-querystring-with-jquery&quot;&gt;retrieve the query string with jQuery&lt;/a&gt;.  The difference between the &lt;em&gt;library&lt;/em&gt; (jQuery) and the &lt;em&gt;language&lt;/em&gt; (JavaScript) is apparently lost on many programmers, and results in a lot of inappropriate, convoluted code being written where it is not necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe it's just my imagination, but I swear I'm starting to see an uptick in the number of questions where people are asking to do similarly insane things with Linq, like &lt;a href=&quot;http://stackoverflow.com/questions/3762202/get-range-of-integers-with-linq&quot;&gt;find ranges in a sorted array&lt;/a&gt;.  I can't get over how thoroughly inappropriate the Linq extensions are for solving that problem, but more importantly the fact that the author just &lt;em&gt;assumed that the ideal solution would involve Linq&lt;/em&gt; without actually &lt;em&gt;thinking&lt;/em&gt; about it (as far as I can tell).  It seems that we are repeating history, breeding a new generation of .NET programmers who can't tell the difference between the language (C#/VB.NET) and the library (Linq).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is responsible for this phenomenon?  Is it just hype?  Magpie tendencies?  Has Linq picked up a reputation as a form of magic, where instead of actually writing code you just have to utter the right incantation?  I'm hardly satisfied with those explanations but I can't really think of anything else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More importantly, is it really a problem, and if so, what's the best way to help enlighten these people?&lt;/p&gt;&#xA;" OwnerUserId="3249" LastActivityDate="2011-05-03T11:27:05.167" Title="Is Linq having a mind-numbing effect on .NET programmers?" Tags="&lt;programming-practices&gt;&lt;.net&gt;" AnswerCount="9" CommentCount="8" FavoriteCount="1" />
  <row Id="6015" PostTypeId="2" ParentId="565" CreationDate="2010-09-21T17:42:49.747" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://alistair.cockburn.us/Characterizing+people+as+non-linear,+first-order+components+in+software+development&quot; rel=&quot;nofollow&quot;&gt;Characterizing people as non-linear, first-order components in software development&lt;/a&gt; by Alistair A.R. Cockburn&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This paper is about human behavior that should be considered in software design.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-21T17:42:49.747" />
  <row Id="6016" PostTypeId="2" ParentId="5972" CreationDate="2010-09-21T17:47:16.140" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Objective-C&lt;/strong&gt; - Xcode&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-09-21T17:47:16.140" CommunityOwnedDate="2011-04-30T19:57:04.087" CommentCount="8" />
  <row Id="6017" PostTypeId="2" ParentId="5973" CreationDate="2010-09-21T17:48:36.577" Score="1" ViewCount="" Body="&lt;p&gt;I tried Dvorak a few years ago. Took me about 2-3 months before I was up to the same speed as with Qwerty. I didn't really type any faster than before, but I did type fewer mistakes. It also felt &quot;better&quot; to type, since the most frequent keys were all on the home row, and you alternated between typing with each hand about equally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem was that I forgot Qwerty as I became more proficient with Dvorak and used Qwerty less and less, which meant I was completely handicapped when sitting on another computer (but the same applied for anyone sitting at my computer, hehe). Also, the key shortcuts where no longer shortcuts but often akward finger-bending combinations. So I used it for about a year before going back to Qwerty. That switch took a few weeks. Though I have heard about people who can switch quickly between Dvorak and Qwerty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Was it worth it? Hm, well, I don't know. It was an interesting experience, though.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-21T17:48:36.577" />
  <row Id="6018" PostTypeId="2" ParentId="5972" CreationDate="2010-09-21T17:57:21.407" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Java - Eclipse&lt;/strong&gt; (Java EE, with Google App Eng, and GWT, and Plug-in for Version Control)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;C++ - EMacs/Eclipse/GEdit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;GEdit does a pretty good just at color coding most languages.&lt;/p&gt;&#xA;" OwnerUserId="386" LastActivityDate="2010-09-21T17:57:21.407" CommunityOwnedDate="2011-04-30T19:57:04.087" />
  <row Id="6019" PostTypeId="2" ParentId="6014" CreationDate="2010-09-21T18:01:41.913" Score="30" ViewCount="" Body="&lt;p&gt;It's basically because programming is fundamentally difficult.  It requires a lot of logical, structured thought in a way that a lot of people just don't know how to do.  (Or &lt;a href=&quot;http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html&quot; rel=&quot;nofollow&quot;&gt;simply can't do,&lt;/a&gt; depending on who you listen to.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stuff like LINQ and jQuery makes certain common data-manipulation tasks a whole lot easier.  That's great for those of us who know what we're doing, but the unfortunate side effect is that it lowers the bar. It makes it easier for people who have no idea what they're doing to start writing code and make things work.  And then when they run into reality, and find something fundamentally difficult that their simple, high-abstraction-level techniques are not well suited to, they're lost, because they don't understand the platform that their library is built upon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your question is sort of on the right track, but much like the perennial controversy about violent video games &quot;turning kids violent,&quot; it has the direction of the link backwards.  Easy programming techniques don't make programmers stupid; they just attract stupid people to programming.  And there's really not much you can do about it.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-21T18:01:41.913" CommentCount="7" />
  <row Id="6020" PostTypeId="2" ParentId="6014" CreationDate="2010-09-21T18:03:34.350" Score="8" ViewCount="" Body="&lt;p&gt;To me it's the new toy phenomenon.  Something new comes out (LINQ) and now every developer wants to play with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They see LINQ as a hammer and every problem is a nail.  Who cares if it's simpler to do it another way?  LINQ must be the answer!  Like when everyone was using XML for EVERYTHING!  Configuration file? XML.  Storing Data? XML.  Etc etc&lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-09-21T18:03:34.350" CommentCount="6" />
  <row Id="6022" PostTypeId="2" ParentId="6014" CreationDate="2010-09-21T18:06:18.520" Score="2" ViewCount="" Body="&lt;p&gt;If you use Linq properly, and understand it under the hood, you will find all sorts of &lt;a href=&quot;http://chakkaradeep.wordpress.com/2008/04/10/c-30-language-enhancements-for-linq-part-1/&quot; rel=&quot;nofollow&quot;&gt;new cutting-edge programming techniques.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you think deeply about the enhancements, I argue that it makes you a better programmer.  Whether a given programmer actually does this or not, is not Linq's fault.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same argument can be made for Object-Relational Mappers.  Does anyone really write raw SQL queries against database tables anymore? :)&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-09-21T19:48:17.940" LastActivityDate="2010-09-21T19:48:17.940" CommentCount="14" />
  <row Id="6023" PostTypeId="2" ParentId="5384" CreationDate="2010-09-21T18:14:15.810" Score="0" ViewCount="" Body="&lt;p&gt;I fixed her computer (the printer was unplugged!) Now 4 years later - we're married&lt;/p&gt;&#xA;" LastActivityDate="2010-09-21T18:14:15.810" CommunityOwnedDate="2010-09-21T18:14:15.810" CommentCount="1" />
  <row Id="6024" PostTypeId="2" ParentId="2323" CreationDate="2010-09-21T18:24:05.847" Score="25" ViewCount="" Body="&lt;p&gt;PHP has many problems. Most of them have historical reasons, but ultimately they are why many programmers think of it as a terrible language.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;The &lt;code&gt;&amp;lt;?php&lt;/code&gt; and &lt;code&gt;?&amp;gt;&lt;/code&gt; &quot;tags&quot; and all their cousins&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;These mostly stem from PHP's early history as a template language. While most (experienced) PHP programmers these days start almost all their files with the opening tag, these encourage a linear programming style, which is a terrible choice for anything bigger than a CGI-script.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These tags help if you want to use PHP as a template language, but otherwise they are misleading at best (e.g. it is considered best practice to omit the closing tag because it would allow for trailing whitespace to be printed).&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Lack of conventions&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;PHP's standard library mostly evolved naturally, without any consistent naming guidelines. Consequently the naming schemes and order of arguments are inconsistent at best, often varying even within the same package. PEAR managed to avoid these problems by enforcing a strict policy but when you're pondering which way the needle and haystack went in &lt;code&gt;strpos&lt;/code&gt; or whether there's an underscore in &lt;code&gt;htmlspecialchars&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Batteries included&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;To a newcomer, the standard library must seem pretty exhaustive. The problem is that despite its gargantuan size, it is often actually not all that helpful. The functions often try to provide extra functionality that makes them more complicated to use than they would need to be, or they are more specialised than they should be. The lack of namespaces makes this problem even worse.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Type coercion&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Not much to say about this one. PHP is a weakly typed dynamically typed language, which means it is incredibly forgiving (and &quot;clever&quot;) when it comes to the type of variables. This isn't much of a problem in quick-and-dirty code, but it can easily lead to unforeseen consequences and encourage a very defensive programming style for more complex applications, making the benefits of a dynamically typed language mostly irrelevant.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Terrible Unicode support&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Though there are &quot;multibyte&quot; functions in the standard library to provide non-ASCII alternatives to the rest of the library, this kind of &quot;separate but equal&quot; treatment of Unicode strings often creates problems even for advanced users of the language. There is talk about PHP shifting its strings to full Unicode in a future version, but considering the slow adoption rate of past releases, I wouldn't be too hopeful about ever seeing native Unicode support in PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One could argue that many languages have an ASCII mindset, but considering PHP is pretty much &lt;em&gt;the&lt;/em&gt; server-side scripting language of the web today, this shortcoming is a constant thorn in every PHP (non-American?) programmer's side. In the meantime there are workarounds, but compared to how other frameworks handle this, they feel hacky at best.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;A language and a framework&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;One of PHP's greatest strengths and one of its greatest problems is that its standard library doubles as a web framework. The superglobals for example make sense if you consider PHP a framework, but can complicate things if you want to use another framework built on top of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A related problem is that PHP encourages placing scripts in the web-root (which is a bad idea), leading to many shared hosting set-ups only providing a web-root as home directory (i.e. if it's on the server, it's on the web).&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Unambiguous syntax&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Because of the way PHP's interpreter was originally written, PHP enforces a policy that operators and syntax should be completely unambiguous: accessing an array/hash (the distinction between regular arrays and &quot;associative&quot; ones is magical, though sadly not non-existent) uses an other operator than accessing an object's properties which uses an other operator than accessing a class's static members which uses an other operator than accessing a namespace.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Though this lack of ambiguity ideally makes PHP easier to interpret (which it isn't, as many have found out the hard way), it also adds unnecessary emphasis to implementation details, which is quite the opposite of what other languages do by providing magical accessor methods (i.e. making get/set methods mimic regular property access). This is probably a subjective thing, but this is what ultimately lead to things like the choice of the backslash character for namespace access (which even PHP programmers mostly consider unfortunate, though unavoidable).&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;The gateway drug&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;PHP's ubiquity means there is a high demand for PHP programmers (though the market saturation is pretty high, too). This also means that many PHP programmers picked PHP as their first programming language, often with no prior experience or formal training (and often with no real interest in programming; e.g. web designers who want to edit a template or sysadmins who are told to modify a WordPress installation). This in turn means that there are many &quot;programmers&quot; actively contributing to the language's community that are inexperienced and/or ignorant about best practices. The result is a vast amount of really terrible code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Though bad code can be written in any language, the size of the PHP community and its low average skill level allow it to flood the Internet with more bad code than any other language alive today. This isn't necessarily the language's fault and it doesn't mean that there aren't any good PHP programmers, it just means the signal to noise ratio is especially low.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because of this, many good programmers don't stick with PHP but instead move to other languages. This makes the problem even worse, because it means that in addition to the incoming stream of unskilled programmers, the skilled programmers have a good chance of abandoning (or avoiding) the language in the long run.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;And everything else&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;This list is far from exhaustive. There are loads and loads of other problems and a few searches on the web will provide you with enough information about why PHP &quot;sucks&quot; on a technical level. Though there are enough (qualified) people who defend it, most of its opponents regard it simply as sloppy; and I think that feeling explains it best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP's strongest advantage is probably that it is so ubiquitous and relatively easy to pick up (the basics, at least). Few web developers can afford to ignore it completely, even if they try to avoid it when possible. Maybe it's telling that most PHP shops these days advertise themselves as Typo3/WordPress/Drupal/ experts and focus on customising and maintaining existing Open Source software rather than writing new applications from scratch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;tl;dr:&lt;/strong&gt; PHP is to web programming what Microsoft Word is to web authoring.&lt;/p&gt;&#xA;" OwnerUserId="2734" LastActivityDate="2010-09-21T18:24:05.847" CommentCount="4" />
  <row Id="6025" PostTypeId="2" ParentId="6014" CreationDate="2010-09-21T18:25:26.750" Score="6" ViewCount="" Body="&lt;p&gt;I think LINQ offers a really good opportunity in C# at solving problems using a more functional approach.   We shouldn't dismiss a new style of problem solving just because we already have something that works.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coming from a heavy SQL background, I like having the option of using set based logic in my C# to better describe the intent of my operations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said; context is king, and anything can be overused.&lt;/p&gt;&#xA;" OwnerUserId="3260" LastActivityDate="2010-09-21T18:25:26.750" CommentCount="2" />
  <row Id="6026" PostTypeId="2" ParentId="6005" CreationDate="2010-09-21T18:29:43.933" Score="1" ViewCount="" Body="&lt;p&gt;I'm kind of in the Alt.NET/old-school CS camp. I work with Microsoft tech (C#, etc.), but I'm aware that there's a whole world around me, other languages, algorithms, frameworks, &quot;stuff under the hood&quot;, etc. Not perfect, obviously, but it's a work in progress.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-21T18:29:43.933" CommentCount="1" />
  <row Id="6027" PostTypeId="2" ParentId="539" CreationDate="2010-09-21T18:37:52.840" Score="0" ViewCount="" Body="&lt;h2&gt;PSPad's Multi-Highlighter&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Its a custom config, but goes back to my old Pascal days.. Each language is a different color scheme too, so it helps quickly tell what I'm working with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/ItR6G.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2449" LastEditorUserId="2449" LastEditorDisplayName="" LastEditDate="2010-09-21T18:43:32.063" LastActivityDate="2010-09-21T18:43:32.063" CommunityOwnedDate="2010-09-21T18:37:52.840" />
  <row Id="6028" PostTypeId="2" ParentId="5964" CreationDate="2010-09-21T18:44:53.793" Score="0" ViewCount="" Body="&lt;p&gt;Automated grading is great for algorithmic challenges where people compete against each other and the only important factors are speed, correctness and performance. Working on a project is completely different. In almost every case code readability beats micro-optimization and programmers should be able to cooperate, not compete with other. Training involving experienced human being that covers these matters would be much more useful. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless your company hires people who don't know how to program, then all bets are off...&lt;/p&gt;&#xA;" OwnerUserId="2313" LastActivityDate="2010-09-21T18:44:53.793" CommentCount="2" />
  <row Id="6029" PostTypeId="2" ParentId="4127" CreationDate="2010-09-21T18:51:49.533" Score="2" ViewCount="" Body="&lt;p&gt;I think starting with Objective-C right away will get up up and developing iPhone apps quicker. I don't have much C experience and come from .Net background mostly. I have worked on several iPhone projects by now. I had to learn Objective-C from scratch. Knowing OO principles was definitely more beneficial than knowing C. If you're looking for good resources to get you developing faster, consider &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321566157&quot; rel=&quot;nofollow&quot;&gt;Programming in Objective-C 2.0 by Stephen Kochan&lt;/a&gt;, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321503619&quot; rel=&quot;nofollow&quot;&gt;Cocoa(R) Programming for Mac(R) OS X&lt;/a&gt;, and &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321659570&quot; rel=&quot;nofollow&quot;&gt;The iPhone Developer's Cookbook: Building Applications with the iPhone 3.0 SDK&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="3262" LastEditorDisplayName="" LastEditDate="2010-09-21T19:28:25.653" LastActivityDate="2010-09-21T19:28:25.653" CommentCount="1" />
  <row Id="6030" PostTypeId="2" ParentId="4384" CreationDate="2010-09-21T18:56:27.327" Score="20" ViewCount="" Body="&lt;p&gt;About 15 years ago I was working as a contract programmer on a satellite TV system for Latin America.   I had earlier worked on a US system, so with that experience I was picked to write many of the technical specifications for the new system.  Part of the task was to spec a GUI for the scheduling of pay-per-view movies and so forth.   Although most of the system was to run on HP-UX and other Unix boxes, Windows NT 3.51 has just come out and I proposed that the GUI be developed for that, and we would network the NT boxes with the Unix ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After finishing the specifications, I developed a proof-of-concept version of the scheduler that could be shown to management.  Meanwhile a separate group of six developers was put together to write the &quot;real&quot; scheduler over the next several months.   The deadline for finishing the scheduler was December 15, since that was when system testing would begin after launching of the satellite.  The system was slated to go into service the following spring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The scope of the scheduler GUI kept getting bigger, and the project fell behind.  On October 31 (I remember it because it was Halloween), my manager (who was also managing the group developing the real GUI) told me the other scheduler was still way behind schedule, and asked what would it take for me to modify my proof-of-concept version to allow the broadcast center to begin system testing on schedule in six weeks.  I said I would need one more person to help with the interfaces, while I worked on the GUI.  She presented the plan to upper management, but it was turned down as a waste of money since they believed the other group could still get something ready in time, if not the final product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A couple of days later I was paid a visit from someone in upper management (a director, or vice-president, I can't remember now).  He asked me, &quot;Can you &lt;em&gt;really&lt;/em&gt; get your scheduler ready by December 15?&quot;.  I said yes.  I was given the go-ahead, along with another warm body.  Around December 1, we flew down to the broadcast center, and worked in a temporary trailer next to the broadcast center.  Meanwhile the other developers continued to work on the &quot;real one&quot; back home.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One December 12, a little ahead of schedule, the GUI was ready for use by the broadcast center staff.  They asked me to stay down there for support, and got me an apartment nearby (I got to go home a couple of days around Christmas.)  January and February came and went, and the &quot;real scheduler&quot; was still was not ready.  They ended up going live on the air with my &quot;modified proof-of-concept&quot; version.  I stayed there a few more months and then came back home.  The &quot;real scheduler&quot; was cancelled and I was merged into the group as the lead programmer, who were now maintaining and expanding the one I wrote.  I stayed in that position for the next year and a half, until I was sent to Japan to work on a satellite TV system there.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-21T18:56:27.327" CommentCount="7" />
  <row Id="6031" PostTypeId="1" AcceptedAnswerId="8502" CreationDate="2010-09-21T18:56:46.073" Score="4" ViewCount="375" Body="&lt;p&gt;If you know MariaDB, what's your opinion about migrate applications to use MariaDB instead of MySQL?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What we gain and what we lost with this change?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it really unnecessary to change the application in any situation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any tip to assure the application run smoothly on MariaDB?&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-30T12:08:36.237" Title="Is it time to use MariaDB instead of MySQL on application development? Why?" Tags="&lt;database-development&gt;&lt;migration&gt;&lt;mysql&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="3" />
  <row Id="6032" PostTypeId="2" ParentId="2323" CreationDate="2010-09-21T19:03:56.373" Score="8" ViewCount="" Body="&lt;p&gt;Some of the most popular sites ever were made with PHP&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Wikipedia&lt;/li&gt;&#xA;&lt;li&gt;Facebook&lt;/li&gt;&#xA;&lt;li&gt;Flickr&lt;/li&gt;&#xA;&lt;li&gt;Wordpress&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In no way does it prove that PHP is a great language, but it's definitely a powerful one. I haven't programmed in PHP for ages, but I try not to join the fad of depreciating it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I especially dislike the elitist view that the harder the language is to grasp the better. I claim it's a good thing that programming gets more mainstream and it doesn't mean that there will be less opportunities for skilled professionals. When the fields gets bigger, everybody benefits.&lt;/p&gt;&#xA;" OwnerUserId="2313" LastActivityDate="2010-09-21T19:03:56.373" CommentCount="4" />
  <row Id="6033" PostTypeId="2" ParentId="6005" CreationDate="2010-09-21T19:05:20.833" Score="1" ViewCount="" Body="&lt;p&gt;I don't entirely agree with this statement about MS subculture: &quot;Don't see what the fuss with open-source and such is all about - besides, who needs to know another language? Generally, I've found such places to be 9-5 and quite corporate (driven by business managers, not software people). The anti-thesis of the hacker culture.&quot;. I've worked at two .Net shops by now and the environment was actually very hacker-like. We've employed many open-source projects in our work. In my option, it all depends on the kind of people that one works with. If they're true developers, they will constantly look for ways to improve, branch out. What technologies they use is irrelevant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't forget about the Agile Methodology subculture that incorporates developers from different backgrounds.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="3262" LastEditorDisplayName="" LastEditDate="2010-09-21T19:22:11.627" LastActivityDate="2010-09-21T19:22:11.627" CommentCount="2" />
  <row Id="6034" PostTypeId="2" ParentId="2948" CreationDate="2010-09-21T19:06:56.623" Score="2" ViewCount="" Body="&lt;p&gt;How valuable (or not) do you think daily stand-up meetings are?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Offcource all the scrum Framework meetings are important but I think the daily standup meeting is the 'most' important meeting in the Scrum Framework. It is like a heart in a body. If the heart does not pump blood regularly then the body is bound to die, the body in this case is the Organisation or the Project following scrum and the heart is the scrum meeting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you think this practice has value?&#xA;Yes.Daily Scrums improve communications, eliminate other meetings, identify and remove impediments to development, highlight and promote quick decision-making, and improve everyone's level of project knowledge.&#xA;The Daily Scrum is not a status meeting. The Daily Scrum is an inspection of the progress toward that Sprint Goal (the three questions). Follow-on meetings usually occur to make adaptations to the upcoming work in the Sprint. The intent is to optimize the probability that the Team will meet its Goal. This is a key inspect and adapt meeting in the Scrum empirical process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone worked at a place that's done it, and what did you think?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, In my last project we followed the Scrum Framework and Agile practices. We were very serious about the Scrum Framework in general and we did not do it half heartedly. Initially I was in a team of 5, then I moved to a larger team of around 9, and then again back to a 6 spread around a 4 year time frame. The daily scrum meeting made sure everyone was in sync, impediments were transparent, and we as Team could see how the Team was progressing with the burn-down in front of us and we knew exactly who was working on what, and where we could contribute ourselves. It is definitely easier to do when you have teams of 6 or less.&#xA;The purpose of a scrum meeting is to do a self inspection check, and if any thing is found going not in the direction of the goal or if something is blocked, the self organised team adapts, so I think it is very crucial that you have it.&lt;/p&gt;&#xA;" OwnerUserId="3125" LastActivityDate="2010-09-21T19:06:56.623" CommunityOwnedDate="2011-02-21T11:56:32.877" />
  <row Id="6035" PostTypeId="2" ParentId="4384" CreationDate="2010-09-21T19:08:35.740" Score="7" ViewCount="" Body="&lt;p&gt;I once worked on a team developing a consumer operating system. The debug version of the operating system had a plethora of asserts and other error checking that were capable of finding a massive number of application defects way before they could be found by any other means (all sorts of memory errors, invalid parameters to system APIs, etc. as well as a suite of disgnostic commands built into the debugger).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem was, that the debug version was pretty much ignored for an entire product cycle. As a huge fan of debugging and &quot;making things work&quot;, when I was invited to join the team working on a new version, I signed up for the task of making the debug version of the os &quot;work&quot;. When I started, it wouldn't even come close to booting. I had to deal with a lot of assembly code and spent 95% of my day working in a debugger to slowly iron out the issues. In addition to the coding challenges, I also had to work with a lot of other team members and external teams to get bugs fixed outside of my control. In the end, we were capable of running our debug os without any problems and we found and fixed a lot of bugs (unfortunately, the project still didn't reach the quality levels we hoped for, but I like to tell myself it would have been much worse without my efforts).&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-09-21T19:08:35.740" CommentCount="3" />
  <row Id="6037" PostTypeId="2" ParentId="5972" CreationDate="2010-09-21T19:11:15.377" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Actionscript(AS2,AS3)&lt;/strong&gt; - FlashDevelop&lt;/p&gt;&#xA;" OwnerUserId="2188" LastActivityDate="2010-09-21T19:11:15.377" CommunityOwnedDate="2011-04-30T19:57:04.087" />
  <row Id="6038" PostTypeId="2" ParentId="6014" CreationDate="2010-09-21T19:15:39.533" Score="0" ViewCount="" Body="&lt;p&gt;LINQ and jQuery are the latest &quot;toys&quot; and developers love showing off how they can do stuff using the latest thing.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-21T19:15:39.533" CommentCount="2" />
  <row Id="6040" PostTypeId="2" ParentId="5770" CreationDate="2010-09-21T19:18:18.077" Score="0" ViewCount="" Body="&lt;p&gt;I wrote some code in &lt;a href=&quot;http://www.lispme.de/lispme/index_en.html&quot; rel=&quot;nofollow&quot;&gt;LispMe&lt;/a&gt; on a Zire 71 to implement a simple cipher I encountered while playing the game &lt;a href=&quot;http://www.wurb.com/if/game/43&quot; rel=&quot;nofollow&quot;&gt;Christminster&lt;/a&gt; on it.&lt;/p&gt;&#xA;" OwnerUserId="1806" LastActivityDate="2010-09-21T19:18:18.077" />
  <row Id="6041" PostTypeId="2" ParentId="724" CreationDate="2010-09-21T19:20:30.443" Score="6" ViewCount="" Body="&lt;p&gt;Sets in Delphi are very useful, pretty much just a named boolean array. They're very useful for saving a settings form with 32 checkboxes.  But they've got all the same set theory functions (i.e. difference, intersection, union). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure if they've fallen out of fashion, but I use them all the time.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-09-21T19:20:30.443" CommentCount="2" />
  <row Id="6042" PostTypeId="1" CreationDate="2010-09-21T19:21:30.333" Score="11" ViewCount="323" Body="&lt;p&gt;I offered to do a little bit training in F# at my company and they seemed to show some interest. They are generally VB6 and C# programmers who don't follow programming with too much passion. That being said I feel like it is easier to write correct code when you think in a functional matter so they should definitely get some benefit out of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can anyone offer up some advice on how I should approach this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Ideas&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Don't focus on the syntax, instead focus on how this language and the idioms it promotes can be used.&lt;/li&gt;&#xA;&lt;li&gt;Try and think of examples that are a pain to write in an imperative fashion but translates to elegant code when written in a declarative fashion.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="712" LastEditorUserId="712" LastEditorDisplayName="" LastEditDate="2010-10-12T18:21:54.443" LastActivityDate="2010-12-29T19:14:09.017" Title="What are some good practices when trying to teach declarative programming to imperative programmers?" Tags="&lt;c#&gt;&lt;f#&gt;&lt;training&gt;&lt;declarative-programming&gt;" AnswerCount="4" CommentCount="11" FavoriteCount="0" />
  <row Id="6043" PostTypeId="2" ParentId="6005" CreationDate="2010-09-21T19:24:39.327" Score="4" ViewCount="" Body="&lt;p&gt;I represent the lonely contingent of Delphi Devs under 30.  Our caucus is small, but our hearts are big.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-09-21T19:24:39.327" CommentCount="2" />
  <row Id="6044" PostTypeId="2" ParentId="729" CreationDate="2010-09-21T19:25:11.493" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.pmwiki.org&quot; rel=&quot;nofollow&quot;&gt;pmWiki&lt;/a&gt; -- a flat-file, PHP (!!!) wiki from &quot;the pumpking for the Rakudo Perl 6 compiler.&quot; Okay, so he's no longer the prime, active maintainer, but he's got chops! And the work he put into pmWiki made it a flexible, extensible, secure multi-user simultaneously-editable CMS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use pmwiki for a &lt;a href=&quot;http://www.xradiograph.com/&quot; rel=&quot;nofollow&quot;&gt;personal site&lt;/a&gt;, a &lt;a href=&quot;http://www.bestandroidresources.com&quot; rel=&quot;nofollow&quot;&gt;commercial-oriented-site&lt;/a&gt; and as a departmental knowledge-base-behind-a-work-firewall in my department at work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's easy to &lt;a href=&quot;http://www.pmwiki.org/wiki/PmWiki/Installation&quot; rel=&quot;nofollow&quot;&gt;set up&lt;/a&gt;, easy to &lt;a href=&quot;http://www.pmwiki.org/wiki/Cookbook/Cookbook&quot; rel=&quot;nofollow&quot;&gt;extend&lt;/a&gt;, &lt;a href=&quot;http://www.pmwiki.org/wiki/PmWiki/DocumentationIndex&quot; rel=&quot;nofollow&quot;&gt;well-documented&lt;/a&gt;, and has a &lt;a href=&quot;http://www.pmwiki.org/wiki/PmWiki/MailingLists&quot; rel=&quot;nofollow&quot;&gt;great dev community&lt;/a&gt; with ready responses to issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus, it's a wiki, dammit. Wikis rock! I can create pages with nothing but link-dumps that I can can then organize, re-org, cross-reference, add notes, screenshots, code-samples, and revisit months and years later. It's not in the cloud, so what. I own the data. It's mine!&lt;/p&gt;&#xA;" OwnerUserId="3103" LastActivityDate="2010-09-21T19:25:11.493" CommunityOwnedDate="2011-03-07T21:12:42.693" />
  <row Id="6045" PostTypeId="1" AcceptedAnswerId="6058" CreationDate="2010-09-21T19:25:17.520" Score="11" ViewCount="423" Body="&lt;p&gt;Some projects we run internally using scrum, whilst still being &quot;fixed everything&quot; to the customer.  Mixed success on our part (the customer likes the visibility of the burndown chart).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any experiences on doing fixed price with agile?&lt;/p&gt;&#xA;" OwnerUserId="2397" LastActivityDate="2011-05-13T16:33:53.360" Title="Can fixed scope + fixed deadline + fixed price contract ever be made to work with &quot;agile&quot;?" Tags="&lt;experience&gt;&lt;agile&gt;&lt;scrum&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="2" />
  <row Id="6046" PostTypeId="2" ParentId="2051" CreationDate="2010-09-21T19:25:19.517" Score="6" ViewCount="" Body="&lt;p&gt;The question is in Bold, It needed a build up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Client: &quot;You need to write Automated tests using RFT against our popular Web application&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: &quot;Okay, in which environment is it deployed?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Client: &quot;It is deployed in QA but you don't have permission to access it&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: &quot;Yikes&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Client: &lt;strong&gt;&quot;Can you somehow finish writing the Automated tests without the application?&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me (in my mind): &quot;I could, if I was superman or Chuck Norris&quot;&lt;/p&gt;&#xA;" OwnerUserId="3125" LastActivityDate="2010-09-21T19:25:19.517" CommunityOwnedDate="2010-09-21T19:25:19.517" />
  <row Id="6047" PostTypeId="2" ParentId="5384" CreationDate="2010-09-21T19:28:26.433" Score="0" ViewCount="" Body="&lt;p&gt;Take their money! Why not, it buys Josta same as any other money.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-09-21T19:28:26.433" CommunityOwnedDate="2010-09-21T19:28:26.433" />
  <row Id="6048" PostTypeId="2" ParentId="6005" CreationDate="2010-09-21T19:30:33.140" Score="9" ViewCount="" Body="&lt;p&gt;I'd consider myself part of the &lt;strong&gt;Real-Time Systems&lt;/strong&gt; group.   There are some 'Old School' characteristics but with less focus on CS, more on hardware.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The archetype:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Has expert knowledge of 'C'&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Has an original copy of K&amp;amp;R&lt;/li&gt;&#xA;&lt;li&gt;Writes in other languages as if they were just an alternate syntax for 'C'&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Can predict the assembler output from their code.&lt;/li&gt;&#xA;&lt;li&gt;Can read a circuit diagram&lt;/li&gt;&#xA;&lt;li&gt;Doesn't know how to write code without doing 'premature optimization'.&lt;/li&gt;&#xA;&lt;li&gt;Is quite comfortable with the command line.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-21T19:30:33.140" CommentCount="7" />
  <row Id="6049" PostTypeId="2" ParentId="6005" CreationDate="2010-09-21T19:33:44.473" Score="3" ViewCount="" Body="&lt;p&gt;I guess that there exists several cultures which somehow live alongside rather then fight and are somehow transcendent:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Hacker/Open Source culture&lt;/strong&gt;: sharing code, uses real name or not. Concentrated probably on small tools that solve one problem. Allows in-program hacks. Languages: &lt;em&gt;C&lt;/em&gt;, &lt;em&gt;Lisp&lt;/em&gt;, &lt;em&gt;C++&lt;/em&gt;, &lt;em&gt;Python&lt;/em&gt;. Probably overlaps with yours &lt;strong&gt;Old-school CS people&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Academia&lt;/strong&gt;: concentration on algorithms and doing things in the right way. The real name is must (it appears on paper anyway). Languages: &lt;em&gt;Java&lt;/em&gt;, &lt;em&gt;Haskell&lt;/em&gt;, (&lt;em&gt;F#&lt;/em&gt;?)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Corportate&lt;/strong&gt;: concentration on solutions (probably of everything). If open source that &lt;a href=&quot;http://en.wikipedia.org/wiki/Why_the_lucky_stiff&quot; rel=&quot;nofollow&quot;&gt;giving the name is not necessary&lt;/a&gt;. Languages: &lt;em&gt;Java&lt;/em&gt;, &lt;em&gt;C#&lt;/em&gt;, &lt;em&gt;VB.net&lt;/em&gt;, &lt;em&gt;Ruby&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&quot;&lt;strong&gt;High School&lt;/strong&gt;&quot;: it goods if it work but it doesn't have to. Concentration on names like &quot;SuperProgram 1.0 for Windows XP&quot;. (sorry - I haven't found good name but I mean the programmers who started mastering CS and are not good at it - at least yet). Languages: &lt;em&gt;PHP&lt;/em&gt;, &lt;em&gt;VB&lt;/em&gt;, &lt;em&gt;Ruby&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;New School Web Developers&lt;/strong&gt;: As above.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Please note that:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it is possible to mix the cultures in organizations and in single person. In fact it often does.&lt;/li&gt;&#xA;&lt;li&gt;The languages are &lt;strong&gt;EXAMPLES&lt;/strong&gt; and it is for example quite large group of &quot;hackers&quot; working on C#. It is more of game of associations the real study so please don't be offended (yes - I do know that there are great programms written in PHP with good engeneering practice etc. but it tend to be first language for many people who don't know what for example XSS is)&lt;/li&gt;&#xA;&lt;li&gt;I didn't want to offend anyone by name High School. I meant that it is often first step into programming via this culture (and hopefully not last)&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;&lt;strong&gt;Edit:&lt;/em&gt;&lt;/strong&gt;  &lt;strong&gt;Academia&lt;/strong&gt; does not mean that person is in academia as well as being in academia does not mean that someone belongs to &lt;strong&gt;academia&lt;/strong&gt; (despite being briliant scientist/researcher etc.). It denotes that he preferes the tools which gives clear, obviously correct solution even if it lacks performance/takes longer time/... Similary &lt;strong&gt;Corporate&lt;/strong&gt; culture is not equivlent to corporations.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think I'm currently mostly Open Source with slight influence of Academia (passive). &lt;/p&gt;&#xA;" OwnerUserId="103" LastEditorUserId="103" LastEditorDisplayName="" LastEditDate="2010-09-21T20:15:47.360" LastActivityDate="2010-09-21T20:15:47.360" CommentCount="4" />
  <row Id="6050" PostTypeId="2" ParentId="4384" CreationDate="2010-09-21T19:35:58.983" Score="2" ViewCount="" Body="&lt;p&gt;I once combined three old, gnarly COBOL programs into a single C++ program. I've never written COBOL, and this was my first real C++ assignment. All while recovering from surgery.&lt;/p&gt;&#xA;" OwnerUserId="3264" LastActivityDate="2010-09-21T19:35:58.983" />
  <row Id="6051" PostTypeId="2" ParentId="5780" CreationDate="2010-09-21T19:39:51.500" Score="53" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/7SAZN.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-21T19:39:51.500" CommunityOwnedDate="2011-01-31T19:23:00.177" CommentCount="8" />
  <row Id="6052" PostTypeId="2" ParentId="6005" CreationDate="2010-09-21T19:40:07.163" Score="1" ViewCount="" Body="&lt;p&gt;I think there would be some middle ground between &lt;strong&gt;Old School CS&lt;/strong&gt; and &lt;strong&gt;New School Web Developers&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would traditionally consider myself a &quot;Web Developer.&quot; PHP and Java and first class citizens to me, along with proper, symantic, &lt;em&gt;valid&lt;/em&gt; HTML / CSS. Throw in SQL and you have a robust, well rounded skill set. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Move &lt;strong&gt;New School&lt;/strong&gt; to &lt;strong&gt;Script Kiddies&lt;/strong&gt; and rebrand the &lt;strong&gt;Web Developer&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Script Kiddies&lt;/strong&gt; - People with little, if any, &quot;under the hood&quot; knowledge about the language. Tends to google for tutorials before blindly copy / pasting code into place. Typically doesn't fully understand the syntax of more then one language. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-21T19:40:07.163" />
  <row Id="6053" PostTypeId="1" CreationDate="2010-09-21T19:51:31.043" Score="7" ViewCount="290" Body="&lt;p&gt;For instance, I have an AutoHotkey script that maps Shift+F10 to left-click + Run To Cursor. My hand is already on Shift and F9-F12 while I'm debugging, so I can run to a line of code just as easily as looking at it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also have a few keys set aside for searching the web for selected text:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Win+G = Google   (add shift for surrounding by quotes, and/or add alt for &quot;I'm feeling lucky&quot;)&lt;/li&gt;&#xA;&lt;li&gt;Win+W = Wikipedia&lt;/li&gt;&#xA;&lt;li&gt;Win+A = Wayback machine&lt;/li&gt;&#xA;&lt;li&gt;Win+T = Thesaurus&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What shortcuts do you have set up to make things quicker?&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-12-01T15:37:54.257" Title="What time-saving shortcuts have you created?" Tags="&lt;productivity&gt;&lt;shortcuts&gt;" AnswerCount="11" CommentCount="3" FavoriteCount="2" />
  <row Id="6054" PostTypeId="2" ParentId="6053" CreationDate="2010-09-21T19:58:57.500" Score="2" ViewCount="" Body="&lt;p&gt;There is one that saves me tons of time every day.  &lt;a href=&quot;http://www.launchy.net/&quot; rel=&quot;nofollow&quot;&gt;Launchy&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's simply a fantastic and simplistic tool.  Alt-space and maybe 3 keystrokes later, and whatever app I wanted is already opening.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;You'll never use the start menu again.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-21T19:58:57.500" CommentCount="5" />
  <row Id="6056" PostTypeId="2" ParentId="6053" CreationDate="2010-09-21T20:03:00.540" Score="0" ViewCount="" Body="&lt;p&gt;The following are some from my ahk script:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;kbd&gt;Win&lt;/kbd&gt;+&lt;kbd&gt;C&lt;/kbd&gt;: open command line, if the&#xA;current windows is explorer, the path&#xA;in the address bar will be used as&#xA;the command line start directory&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;kbd&gt;Win&lt;/kbd&gt;+&lt;kbd&gt;B&lt;/kbd&gt;: open bash, if the current&#xA;windows is explorer, same above ...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;kbd&gt;Win&lt;/kbd&gt;+&lt;kbd&gt;V&lt;/kbd&gt;: VS 2008&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;kbd&gt;Win&lt;/kbd&gt;+&lt;kbd&gt;arrow&lt;/kbd&gt;, &lt;kbd&gt;Win&lt;/kbd&gt;+&lt;kbd&gt;shift&lt;/kbd&gt;+&lt;kbd&gt;arrow&lt;/kbd&gt;,&#xA;&lt;kbd&gt;Win&lt;/kbd&gt;+&lt;kbd&gt;alt+&lt;/kbd&gt;arrow: move, adjust the&#xA;current window size/location by the&#xA;near by windows and screen border.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;kbd&gt;Win&lt;/kbd&gt;+&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;arrow&lt;/kbd&gt;: dock the current window to the half of the current screen&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="844" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-21T20:40:32.460" LastActivityDate="2010-09-21T20:40:32.460" />
  <row Id="6057" PostTypeId="2" ParentId="6053" CreationDate="2010-09-21T20:03:25.750" Score="3" ViewCount="" Body="&lt;h2&gt;Firefox bookmark keyword with search parameter&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I associate popular search websites with keywords, E.g. &quot;g&quot; for Google. When I need to search on Google for &quot;foo&quot;, I only need 6 keystrokes including the search word (&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;D&lt;/kbd&gt; is counted as one).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;D&lt;/kbd&gt;, &lt;kbd&gt;g&lt;/kbd&gt;, &lt;kbd&gt;Space&lt;/kbd&gt;, foo, &lt;kbd&gt;Enter&lt;/kbd&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can anyone beat that? :-}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;other frequently used search keywords are,&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;d: dictionary.com&lt;/li&gt;&#xA;&lt;li&gt;af: acronymfinder.com&lt;/li&gt;&#xA;&lt;li&gt;am: amazon.com&lt;/li&gt;&#xA;&lt;li&gt;eb: ebay.com&lt;/li&gt;&#xA;&lt;li&gt;gq: Google Finance stock quote&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There are many of them.&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-12-01T14:37:22.697" LastActivityDate="2010-12-01T14:37:22.697" CommentCount="5" />
  <row Id="6058" PostTypeId="2" ParentId="6045" CreationDate="2010-09-21T20:03:58.813" Score="5" ViewCount="" Body="&lt;p&gt;Well, I've worked mostly in &quot;agile&quot; environments (although we don't use the lingo), and I've done fixed cost things.  Generally what it amounts to is cost-plus, since no company can afford to do everything for free, and requirements do change and evolve as the customer figures out more clearly what they want.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The initial requirements for the fixed cost portion have to be done much more carefully than they are done in a typical iterative environment, making the process somewhat less iterative.  The &quot;plus&quot; part of the contract can be more iterative, provided we have fulfilled the fixed cost portion more or less satisfactorily to the customer.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-09-21T20:03:58.813" />
  <row Id="6059" PostTypeId="2" ParentId="6045" CreationDate="2010-09-21T20:04:52.993" Score="3" ViewCount="" Body="&lt;p&gt;Sure, as long as your quality bar is kept remarkably low. I'm a believer in the old iron triangle of &quot;delivery time / quality / price&quot; where you can pick two, but then the other one floats. It sounds like you've fixed the delivery time and price (and also the features) so really the only thing that can give is the quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, if you're using a burndown chart and you have the highest priority items being done first it might be acceptable to have a handful of the most important items done in the specified time-frame for the specified monetary amount. At the very least your client will see that you are controlling the process somewhat, with a deliverable at the end of each iteration and they have the ability to say what's most important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise I think that committing to a fixed time, feature set and price is foolhardy and will lead to heroic efforts resulting in lower quality and less maintainable code. Agile is not magic fairy dust.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-09-21T20:04:52.993" CommentCount="1" />
  <row Id="6061" PostTypeId="2" ParentId="5384" CreationDate="2010-09-21T20:07:46.387" Score="22" ViewCount="" Body="&lt;p&gt;I actually have two hierarchies that govern who and to what extent I will help:&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Relationship to Person&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Parents:&lt;/strong&gt; Just fix it.  I owe them that, and then some.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Siblings:&lt;/strong&gt; Fix it, expecting a modest favour in return (dinner/pizza/etc.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Friends/Relatives:&lt;/strong&gt; They bring the machine to me, along with booze, and entertain me for the duration.  Bartering is also acceptable, if they can offer something I genuinely want.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Coworkers/Family Friends:&lt;/strong&gt; Standard consulting fees apply.  2 hour minimum.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;Severity of Problem&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Trivial:&lt;/strong&gt; E-mail a URL to a tutorial/help page.  Usually includes screen shots, so it's easier for both of us.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Minor:&lt;/strong&gt; If it takes 10 minutes or less (i.e. set up a printer), I just do it on the spot.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Major:&lt;/strong&gt; Malware, OS upgrades, etc.  Relationship hierarchy applies directly.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Severe:&lt;/strong&gt; E.g. system won't boot, hard drive crashed. I tell them truthfully that it's beyond my area of expertise and that they need to get a replacement/repair (hopefully still under warranty).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This tends to work pretty well for me.  The only time it gets dicey is when dealing with the &quot;friends who aren't really friends but only call when they want free help.&quot;  In these rare cases I usually say I'll help but act distracted or incompetent so that they'll just give up and ask somebody else.  I don't really care if that's dishonest, they're already being jerks by abusing the very tenuous friendship.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and one other thing: &lt;em&gt;I make sure that everybody I help understands this hierarchy&lt;/em&gt;, so that they don't decide to &quot;recommend&quot; me to all of &lt;em&gt;their&lt;/em&gt; family/friends as free labour.&lt;/p&gt;&#xA;" OwnerUserId="3249" LastActivityDate="2010-09-21T20:07:46.387" CommunityOwnedDate="2010-09-21T20:07:46.387" />
  <row Id="6064" PostTypeId="2" ParentId="2948" CreationDate="2010-09-21T20:19:41.587" Score="4" ViewCount="" Body="&lt;p&gt;Long before SCRUM and Agile were ever thought of, I was a team lead on a manpower study that took 2 years to do. It would have taken far longer without daily meetings. In the first place, human beings being human beings, they will slack off if they know no one is paying attention. If they have to show progress every day, they slack off less. If Joe seems to be making more progress than they are, they slack off less.  Further, it lets the manager (or whoever) know when problems occur before they become a crisis. So if Steve is going to be a week late and Harry is ahead, then we can move some tasks around. This keeps the project from getting behind because one person got stuck. Further, usually someone else will be able to help the person get unstuck. The daily meeting was the key to my success on this team and the later job where I managed 30 studies going on all over the world and not one was late or over budget and all easily passed quality control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I worked one place where we gave a big project to a new employee. (I was not his boss.) The progress reports he gave his managers were &quot;everything is great, it will all be done on time&quot; but no specifics and no one required him to say exactly what progress he had made since the day before. He, as I'm sure the experienced among you have guessed, quit with no notice a week before the deadline and none of his tasks were complete or even in a state where the &quot;work&quot; he had done was useable. This is why the daily meetings are needed  - to keep these people making real progress and to find out when they aren't before the whole project goes down the tubes. I ended up doing his tasks and mine and working overtime all summer so we could keep the multimillion dollar customer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yeah we all like to believe that our devs are all internally motivated and will always produce the goods for us, but the truth is you have to protect the team and the organization from people like this. You never know who they will be; sometimes it's not the new employee, but the one who is mad at the organization (justifiably or not) or the one who just lost his wife (at least you often know who these people are, but not everyone shares their personal problems). &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-21T20:19:41.587" CommunityOwnedDate="2011-02-21T11:56:32.877" />
  <row Id="6065" PostTypeId="2" ParentId="2410" CreationDate="2010-09-21T20:19:44.673" Score="2" ViewCount="" Body="&lt;p&gt;Helping a fast idiot pass a math class that requires a written essay.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-21T20:19:44.673" CommunityOwnedDate="2011-03-03T17:06:14.173" />
  <row Id="6067" PostTypeId="1" AcceptedAnswerId="6088" CreationDate="2010-09-21T20:25:37.743" Score="20" ViewCount="2055" Body="&lt;p&gt;What programming language that you don't know yet are you curious to learn next?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would be helpful if you write only &lt;strong&gt;one&lt;/strong&gt; programming language per answer, for voting purposes. And if there exist an answer with that programming language, you should vote up the existing answer instead of writing your own answer.&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T17:15:47.137" LastActivityDate="2010-10-27T20:28:59.483" CommunityOwnedDate="2010-09-22T08:38:26.843" ClosedDate="2010-12-28T14:46:05.087" Title="What programming language are you curious to learn next?" Tags="&lt;programming-languages&gt;&lt;learning&gt;" AnswerCount="50" CommentCount="4" FavoriteCount="6" />
  <row Id="6069" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T20:28:36.587" Score="14" ViewCount="" Body="&lt;h2&gt;D programming language&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;It's a better C++ language.&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-22T13:05:55.730" LastActivityDate="2010-09-22T13:05:55.730" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="7" />
  <row Id="6070" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T20:29:13.747" Score="5" ViewCount="" Body="&lt;h2&gt;C++&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I actually want to go back to C++. I know bits of it, but I'd like to reach some level of fluency. Yes, I'm enough of a masochist to be excited about it. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that, I'm thinking of learning Silverlight/XNA (which while not language in themselves are technologies I'm completely unfamiliar with) for Windows Phone 7 development.&lt;/p&gt;&#xA;" OwnerUserId="226" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-21T21:58:30.090" LastActivityDate="2010-09-21T21:58:30.090" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="4" />
  <row Id="6071" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T20:31:34.307" Score="14" ViewCount="" Body="&lt;h2&gt;Objective-C&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I'm looking to get into some Mac development.  There's a market for it, but there doesn't seem to be that much talent out there with decent objective-c/cocoa experience (though iOS development is expanding that pool).&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-21T21:56:06.327" LastActivityDate="2010-09-21T21:56:06.327" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="5" />
  <row Id="6073" PostTypeId="2" ParentId="4384" CreationDate="2010-09-21T20:32:22.637" Score="2" ViewCount="" Body="&lt;p&gt;A little over 5 years ago, my first big project after getting hired on my first job: take a delphi application that rendered and manipulated floor plan drawings and port the viewer aspects of it to the web.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Degrees of difficulty:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;200+ kloc of undocumented source code, a C++ design bolted onto Delphi&lt;/li&gt;&#xA;&lt;li&gt;No developers who really understood the existing codebase&lt;/li&gt;&#xA;&lt;li&gt;No clear division between rendering and editing (e.g. the rendering subsystem was reused to do snapping while editing, which someone probably considered a very clever hack)&lt;/li&gt;&#xA;&lt;li&gt;Drawing objects were stored in a proprietary byte-stream format, the parser was the documentation (leading to questions like &quot;wtf are bulge arcs?&quot;).&lt;/li&gt;&#xA;&lt;li&gt;The existing system wasn't bug-free, with a complex and broken styling subsystem.&lt;/li&gt;&#xA;&lt;li&gt;The resulting app had to be a combination of PHP and flash, so no reusing of the existing code.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It ended up taking me 6 months to get it done. Then the requirements changed, and I spent 2 months further extending it. The end result is a PHP SVG generator, with a Flash rendering engine (similar to svgweb, but more specialized). The drawings were so big that I had to implement a poor man's threading engine in ActionScript to shunt parsing and rendering into background threads to avoid blocking the UI. Working around the Flash engine's many bugs and quirks was a bundle of fun in itself. The most tricky bug was one that hung the browser on a particular layer but not on any subset of that layer (which turned out to be caused by the combination of two subsets of that layer).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The project got me instant respect from my co-workers, but I didn't really have enough experience for a project like that at the time. Luck and a stubborn head got me through. I was physically ill from stress several times. I would manage a similar project in a completely different way now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got the chance to go back to the old system to document it and clean it up. Now it works much better and there are other developers who can work on it.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-21T20:32:22.637" />
  <row Id="6074" PostTypeId="2" ParentId="6053" CreationDate="2010-09-21T20:36:08.793" Score="1" ViewCount="" Body="&lt;h2&gt;Control-T to drop down a terminal window&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Via &lt;a href=&quot;http://visor.binaryage.com/&quot; rel=&quot;nofollow&quot;&gt;Visor&lt;/a&gt;.  As someone who uses a terminal a lot while programming for quick tasks, this guy is essential.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-21T20:36:08.793" CommentCount="1" />
  <row Id="6075" PostTypeId="2" ParentId="6005" CreationDate="2010-09-21T20:36:13.147" Score="6" ViewCount="" Body="&lt;p&gt;Don't forget the mainframe programmers. They are a sub culture too.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-21T20:36:13.147" CommentCount="2" />
  <row Id="6077" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T20:38:02.203" Score="38" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;F#&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm curious to learn F#, but I already know Standard ML and C#. The main reason is that I see a benefit of doing GUI-programming in a functional programming language.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-21T20:38:02.203" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="2" />
  <row Id="6078" PostTypeId="2" ParentId="6053" CreationDate="2010-09-21T20:38:12.183" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;None&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have never found many shortcut keys outside of a very few in my IDE useful. Most require awkward positions to arch your hand in to press them or lock you in to a program/OS/computer. The only reason I learn certain shortcuts is because they exist in an entire family of OS's (Eg &lt;kbd&gt;Windows Key&lt;/kbd&gt;+&lt;kbd&gt;R&lt;/kbd&gt; to run), are very extremely useful (&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;Left&lt;/kbd&gt; in Gnome to switch workspaces), or I use the command so much that a shortcut would actually be nice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, I don't bother. Clicking works just as well. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-21T20:38:12.183" CommentCount="2" />
  <row Id="6079" PostTypeId="2" ParentId="6045" CreationDate="2010-09-21T20:41:57.510" Score="19" ViewCount="" Body="&lt;p&gt;I would like to pose a counter-question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Can fixed scope + fixed deadline + fixed price contract ever be made to work, &lt;em&gt;period&lt;/em&gt;?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;good/fast/cheap - pick two&quot; saying isn't just some silly engineering joke.  Every project manager worth his salt knows about the &lt;a href=&quot;http://en.wikipedia.org/wiki/Project_management_triangle&quot; rel=&quot;nofollow&quot;&gt;Project Management Triangle&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/a/a6/The_triad_constraints.jpg/250px-The_triad_constraints.jpg&quot; alt=&quot;Project Management Triangle&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're telling us that the cost, scope, and schedule are all fixed.  That leaves no room for maneuverability or error.  &lt;em&gt;None&lt;/em&gt;.  You could choose to view &quot;Quality&quot; as an attribute, but it's not a &quot;real&quot; attribute, it's more like a meta-attribute that's derived from the other attributes (cost/scope/schedule).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is that this &lt;em&gt;never happens&lt;/em&gt; in reality as long as your project is being planned and executed by humans.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Requirements and specifications never cover every edge case unless they've been drawn up in immense detail by qualified architects and designers, in which case the project is already half-done; and &lt;em&gt;even then&lt;/em&gt; there's still the possibility of error.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Unexpected costs will pop up leading to budget overruns.  A subscription expired.  A manufacturer discontinued their support for a product you're using and you have to find a new one.  An hourly contractor raised his rate under threat of departure.  Your entire team just went on strike, demanding a 10% raise and an extra week of vacation.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Schedules slip.  Unforeseeable problems crop up; that charting component you've been using for 5 straight years isn't compatible with Windows 95, which your client is still using.  An obscure bug in 64-bit Windows causes serious UI glitches and you spend nearly a week tracking it down and developing a workaround (this actually happened to me).  Your senior developer got hit by a bus and you have to go recruit and train a new one.  Your estimated delivery date is always wrong.  Always.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See &lt;a href=&quot;http://en.wikipedia.org/wiki/Hofstadter%27s_law&quot; rel=&quot;nofollow&quot;&gt;Hofstadter's Law&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Agile methods are all about juggling around the cost, schedule, and scope.  Most of the time, they're specifically about juggling around the &lt;em&gt;scope&lt;/em&gt; and sometimes the &lt;em&gt;schedule&lt;/em&gt;, which is why you start with nebulous user stories and plan revisions instead of full versions.  Different methodologies use different terminology but it's all the same basic premise: Frequent releases and a rebalancing of the schedule and scope with each release.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This makes &lt;em&gt;no sense&lt;/em&gt; with a project that is (or claims to be) &lt;em&gt;either&lt;/em&gt; fixed scope &lt;em&gt;or&lt;/em&gt; fixed schedule.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If &lt;em&gt;one&lt;/em&gt; project attribute (cost/scope/schedule) were fixed, I would tell you that it &lt;em&gt;might&lt;/em&gt; not be a good fit for agile methodologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If &lt;em&gt;two&lt;/em&gt; project attributes are fixed, then your project is &lt;em&gt;definitely&lt;/em&gt; not a good fit for agile methodologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If &lt;em&gt;all three&lt;/em&gt; attributes are fixed, then your project is probably going to fail.  If it actually ships, then either the original schedule was massively fudged, or the client has managed to delude itself into thinking that you actually delivered what was promised.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this contract is still on the table, I urge you to reject it.  And if you've already accepted it, may God have mercy on your soul.&lt;/p&gt;&#xA;" OwnerUserId="3249" LastActivityDate="2010-09-21T20:41:57.510" CommentCount="7" />
  <row Id="6080" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T20:45:51.067" Score="6" ViewCount="" Body="&lt;h2&gt;Common Lisp&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;My hobby language right now is Common Lisp. When I feel comfortable with Common Lisp, I will move to learning Haskell.&lt;/p&gt;&#xA;" OwnerUserId="148" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-29T15:16:49.863" LastActivityDate="2010-09-29T15:16:49.863" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="1" />
  <row Id="6082" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T20:47:54.480" Score="1" ViewCount="" Body="&lt;p&gt;Python &amp;amp; objective c&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-21T20:47:54.480" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="0" />
  <row Id="6083" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T20:48:52.467" Score="11" ViewCount="" Body="&lt;h2&gt;clojure,&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;haskell and erlang&lt;/p&gt;&#xA;" OwnerUserId="3267" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-29T20:59:19.157" LastActivityDate="2010-09-29T20:59:19.157" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="3" />
  <row Id="6084" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T20:55:18.027" Score="5" ViewCount="" Body="&lt;h2&gt;C#&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I'm about to learn &lt;strong&gt;C#&lt;/strong&gt; (finally), but later on I'm going to dive into &lt;strong&gt;C++&lt;/strong&gt; since its pretty much a requirement. &lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-22T11:42:29.240" LastActivityDate="2010-09-22T11:42:29.240" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="7" />
  <row Id="6085" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T20:55:19.620" Score="21" ViewCount="" Body="&lt;h2&gt;Ruby&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;more specifically the Rails framework.&lt;/p&gt;&#xA;" OwnerUserId="190" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-22T13:04:37.623" LastActivityDate="2010-09-22T13:04:37.623" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="5" />
  <row Id="6086" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T20:55:28.233" Score="1" ViewCount="" Body="&lt;p&gt;I always wanted to learn &lt;strong&gt;Eiffel&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="235" LastActivityDate="2010-09-21T20:55:28.233" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="1" />
  <row Id="6087" PostTypeId="2" ParentId="6053" CreationDate="2010-09-21T20:58:40.817" Score="1" ViewCount="" Body="&lt;p&gt;I really like Windows 7's pinning to the taskbar, along with the shortcut keys tied to the taskbar (Win+1 for the first, Win+2 for the second, etc.)  This way when I come into work every day and hit Win+1,2,3,4 and have all the main apps I need for the day open (Browser,Shell,IM, and Email)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also set up multiple home pages in Chrome, so whenever I open up my browser I have all my project management, bug tracking, and dev sites opened by default.&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-09-21T20:58:40.817" />
  <row Id="6088" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T21:00:43.923" Score="44" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt; - coming from a Delphi / .net / java world I'm interested to feel some &quot;dynamic language&quot; love.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also recently found this book from prag prog: &lt;a href=&quot;http://pragprog.com/titles/btlang/seven-languages-in-seven-weeks&quot; rel=&quot;nofollow&quot;&gt;Seven Languages in Seven Weeks&lt;/a&gt; which might be fun.&lt;/p&gt;&#xA;" OwnerUserId="2397" LastEditorUserId="2397" LastEditorDisplayName="" LastEditDate="2010-09-22T10:50:12.397" LastActivityDate="2010-09-22T10:50:12.397" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="5" />
  <row Id="6089" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T21:02:11.920" Score="21" ViewCount="" Body="&lt;h2&gt;Scala&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I keep hearing about it and it seems to be gaining popularity.  It looks promising from the little I've played with it (about 3 hours).&lt;/p&gt;&#xA;" OwnerUserId="998" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-22T13:06:33.117" LastActivityDate="2010-09-22T13:06:33.117" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="2" />
  <row Id="6090" PostTypeId="2" ParentId="5973" CreationDate="2010-09-21T21:03:15.553" Score="0" ViewCount="" Body="&lt;p&gt;Been using Dvorak for ~5 years or so now.  I've heard this question asked a bit and wrote a blog article awhile back on exactly whath the switch was like for me. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/b/jaredpar/archive/2009/01/12/dvorak-keyboard-is-it-really-faster-gasp.aspx&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com/b/jaredpar/archive/2009/01/12/dvorak-keyboard-is-it-really-faster-gasp.aspx&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="278" LastActivityDate="2010-09-21T21:03:15.553" />
  <row Id="6091" PostTypeId="1" AcceptedAnswerId="6096" CreationDate="2010-09-21T21:04:08.813" Score="4" ViewCount="147" Body="&lt;p&gt;I've seen the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;CLOC&lt;/li&gt;&#xA;&lt;li&gt;TLOC&lt;/li&gt;&#xA;&lt;li&gt;LOC&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;When using this esoteric metric what abbreviation is most commonly used?&lt;/p&gt;&#xA;" OwnerUserId="3270" LastActivityDate="2010-09-21T21:07:09.200" Title="What is the commonly used abbreviation for total lines of code?" Tags="&lt;learning&gt;&lt;recommendations&gt;" AnswerCount="2" CommentCount="6" />
  <row Id="6092" PostTypeId="2" ParentId="6091" CreationDate="2010-09-21T21:05:07.783" Score="6" ViewCount="" Body="&lt;p&gt;I've always known it to be &lt;strong&gt;SLOC&lt;/strong&gt; - Source Lines Of Code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is assuming you only care about the actual &lt;em&gt;code&lt;/em&gt;.  If you're taking whitespace and comments into consideration (I'd ask why, but then again, we're already talking about lines of code as a metric...) then SLOC wouldn't be the right term.&lt;/p&gt;&#xA;" OwnerUserId="3249" LastActivityDate="2010-09-21T21:05:07.783" />
  <row Id="6093" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T21:05:20.387" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://boo.codehaus.org/&quot; rel=&quot;nofollow&quot;&gt;Boo&lt;/a&gt;&lt;/strong&gt; &lt;/p&gt;&#xA;" OwnerUserId="3082" LastEditorUserId="3082" LastEditorDisplayName="" LastEditDate="2010-09-22T11:32:33.560" LastActivityDate="2010-09-22T11:32:33.560" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="3" />
  <row Id="6094" PostTypeId="2" ParentId="5972" CreationDate="2010-09-21T21:05:26.003" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C# / Mono&lt;/strong&gt; - I'd add MonoDevelop. Cross platform, so you have a C# IDE on Linux and Mac as well as Windows.&lt;/p&gt;&#xA;" OwnerUserId="3271" LastActivityDate="2010-09-21T21:05:26.003" CommunityOwnedDate="2011-04-30T19:57:04.087" CommentCount="1" />
  <row Id="6095" PostTypeId="2" ParentId="6014" CreationDate="2010-09-21T21:06:56.357" Score="1" ViewCount="" Body="&lt;p&gt;Some of those insane things are because people are using the wrong hammer, others are because they are building a really elegant super-hammer, but they have run into an oddball detail that needs to be overcome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, if you see a question about using linq to generate dynamic linq to use against non-dynamic linq nine times out of ten the person is either just curious if it is possible, or barking up the wrong tree, but there are a few things you can solve this way that are difficult to the point of unreasonable to solve otherwise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I take these sort of questions in two parts:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;can it be done, and if so what would it look like&lt;/li&gt;&#xA;&lt;li&gt;should it be done, is there a risk, or a better alternative&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I have found that I almost always do them in that order.  It answers the question and also helps you make a better explanation for potential alternatives.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-21T21:06:56.357" />
  <row Id="6096" PostTypeId="2" ParentId="6091" CreationDate="2010-09-21T21:07:09.200" Score="15" ViewCount="" Body="&lt;p&gt;I've always just seen:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;LOC (lines of code)&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;KLOC (thousands of lines of code)&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-21T21:07:09.200" CommentCount="1" />
  <row Id="6097" PostTypeId="2" ParentId="3684" CreationDate="2010-09-21T21:08:47.033" Score="0" ViewCount="" Body="&lt;p&gt;SpyreStudios has published a &lt;a href=&quot;http://spyrestudios.com/mega-collection-of-cheatsheets-for-designer-developers/&quot; rel=&quot;nofollow&quot;&gt;mega collection of 100+ cheatsheets for designers and developers&lt;/a&gt;: CSS, HTML, Javascript, PHP, MySQL, and much more.&lt;/p&gt;&#xA;" OwnerUserId="915" LastActivityDate="2010-09-21T21:08:47.033" />
  <row Id="6098" PostTypeId="2" ParentId="1785" CreationDate="2010-09-21T21:11:31.083" Score="0" ViewCount="" Body="&lt;p&gt;If the system works and you change it and it stops working, the change you made is what broke it, even if that cannot possibly be the case.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-21T21:11:31.083" CommunityOwnedDate="2010-09-21T21:11:31.083" />
  <row Id="6099" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T21:13:56.790" Score="8" ViewCount="" Body="&lt;p&gt;OCaml.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It supports Functional, OO and imperative programming paradigms.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-21T21:13:56.790" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="2" />
  <row Id="6100" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T21:16:11.687" Score="1" ViewCount="" Body="&lt;p&gt;Hindi or Chinese?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;in serious tone, I would like to master (I know some) lisp and it's emacs implementation.&lt;/p&gt;&#xA;" OwnerUserId="1863" LastEditorUserId="1863" LastEditorDisplayName="" LastEditDate="2010-09-22T05:47:18.960" LastActivityDate="2010-09-22T05:47:18.960" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="2" />
  <row Id="6101" PostTypeId="2" ParentId="5921" CreationDate="2010-09-21T21:21:45.057" Score="0" ViewCount="" Body="&lt;p&gt;Trade in QWERTY for &lt;a href=&quot;http://colemak.com/&quot; rel=&quot;nofollow&quot;&gt;Colemak&lt;/a&gt;. It's easy to install, a bit harder to learn but it pays off. Prepare for a lot of slow typing for a week, and after a few weeks you're typing back at old speed, but a lot more relaxed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, Colemak has a lot of keys in common with QWERTY, so I can switch between the two with only a little mental effort.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-21T21:21:45.057" CommunityOwnedDate="2011-03-26T13:37:08.243" />
  <row Id="6102" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T21:24:11.680" Score="6" ViewCount="" Body="&lt;h2&gt;C&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What will I do without all that extra stuff in c++ I never figured out?&lt;/p&gt;&#xA;" OwnerUserId="39" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-21T21:59:41.957" LastActivityDate="2010-09-21T21:59:41.957" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="3" />
  <row Id="6103" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T21:30:19.390" Score="28" ViewCount="" Body="&lt;h2&gt;Haskell&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Haskell. After moving from openbox to a tiling wm I chose xmonad which is made in guess what, haskell. I started tweaking and building my cofig and haskell is such a different language for me so I became interested. &lt;/p&gt;&#xA;" OwnerUserId="2849" LastEditorUserId="1220" LastEditorDisplayName="" LastEditDate="2010-09-23T22:51:20.067" LastActivityDate="2010-09-23T22:51:20.067" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="2" />
  <row Id="6104" PostTypeId="2" ParentId="5920" CreationDate="2010-09-21T21:32:49.540" Score="0" ViewCount="" Body="&lt;p&gt;For a while I maintained mine as a CGI script because HTML formatting seemed like a reasonable compromise between Word and LaTeX, and so I could conditionally enable sections easily for different kinds of employers. These days I don't send it around often enough for that to be worth it.&lt;/p&gt;&#xA;" OwnerUserId="1713" LastActivityDate="2010-09-21T21:32:49.540" />
  <row Id="6105" PostTypeId="2" ParentId="6005" CreationDate="2010-09-21T21:34:44.903" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Academics that make research using computers, not research about computers.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They:&lt;br&gt;&#xA;   - are writing software that can consume unlimited quantities of CPU time, memory and disc space so they care (or at least try to care) of performance, &lt;em&gt;either&lt;/em&gt; by using stuff like &lt;code&gt;-O3&lt;/code&gt;, &lt;code&gt;time&lt;/code&gt;, profilers, memcheck, and spend hours more or less randomly changing the code to gather some speedup &lt;em&gt;or&lt;/em&gt; mindlessly applying some mythical tricks to their scrips.&lt;br&gt;&#xA; - use real numbers and know that it is tricky enough so a separate science named &quot;numerics&quot; can exist.&lt;br&gt;&#xA; - often use some very specific programming languages/libraries/programs and are very fanatic about it; flame wars are common, mostly about performance.&lt;br&gt;&#xA; - call their programs &quot;codes&quot; to highlight that they have so obfuscated user interface so only their creators know how to use it.&lt;br&gt;&#xA; - usually work on Linux or at least use PuTTY to ssh to some Linux workstation/cluster.&lt;/p&gt;&#xA;" OwnerUserId="2051" LastActivityDate="2010-09-21T21:34:44.903" CommentCount="3" />
  <row Id="6106" PostTypeId="2" ParentId="5973" CreationDate="2010-09-21T21:35:00.987" Score="0" ViewCount="" Body="&lt;p&gt;Try &lt;a href=&quot;http://www.colemak.com&quot; rel=&quot;nofollow&quot;&gt;Colemak&lt;/a&gt;. Same advantages to QWERTY, easier to switch back and forth. Only punctuation difference: semicolon/colon is now at P.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-21T21:35:00.987" />
  <row Id="6107" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T21:43:17.373" Score="-2" ViewCount="" Body="&lt;p&gt;Not really a language, but I want to learn how to write regular expressions so I (hopefully) no longer have to ask SO &quot;How do I do this in regular expressions?&quot;&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-09-22T09:51:30.490" LastActivityDate="2010-09-22T09:51:30.490" CommunityOwnedDate="2010-09-22T08:38:26.843" />
  <row Id="6109" PostTypeId="2" ParentId="5718" CreationDate="2010-09-21T21:48:42.300" Score="0" ViewCount="" Body="&lt;p&gt;I haven't used any external WYSIWYG tools, but with Visual Studio you can use /// with Xml tags for documentation. &lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-09-21T21:48:42.300" CommentCount="1" />
  <row Id="6110" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T21:48:50.137" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Boo&lt;/strong&gt; is in my todo list but a language unfinished and almost 1 year with no updates scares me.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-21T21:48:50.137" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="1" />
  <row Id="6111" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T21:53:41.713" Score="13" ViewCount="" Body="&lt;h1&gt;Lua&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I am enchanted by simplicity, flexibility and relative power of &lt;strong&gt;&lt;a href=&quot;http://www.lua.org&quot; rel=&quot;nofollow&quot;&gt;Lua&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="825" LastEditorDisplayName="" LastEditDate="2010-09-29T04:08:24.843" LastActivityDate="2010-09-29T04:08:24.843" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="4" />
  <row Id="6112" PostTypeId="1" CreationDate="2010-09-21T21:57:37.513" Score="8" ViewCount="220" Body="&lt;p&gt;When I started my passion for software development, in 80´s, the designer role was done by myself. The result was a little bit awful. After this, I discovered that it is common for a good programmer not to have a good sense in UX design. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few years ago, I had an opportunity to learn about usability process and figure out other ways to make software. This concept has helped me to understand better the final users needs. &#xA;What do you think about usability concepts? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This concepts could help programmers to do better softwares? Or lets this task for the design guy?&lt;/p&gt;&#xA;" OwnerUserId="3082" LastEditorUserId="1996" LastEditorDisplayName="" LastEditDate="2011-03-31T02:05:31.947" LastActivityDate="2011-03-31T02:05:31.947" ClosedDate="2011-03-31T08:59:50.887" Title="Programming and Usability" Tags="&lt;learning&gt;&lt;design&gt;&lt;books&gt;&lt;resources&gt;&lt;ux&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="3" />
  <row Id="6114" PostTypeId="2" ParentId="5718" CreationDate="2010-09-21T21:59:39.413" Score="1" ViewCount="" Body="&lt;p&gt;I've tried Document X and cannot recommend it.  It crashed so often on my dev machine that I simply quit using it.  Document X didn't offer anything that I needed that I couldn't easily do by maintaining the XML comments in the source files.&lt;/p&gt;&#xA;" OwnerUserId="3275" LastActivityDate="2010-09-21T21:59:39.413" CommentCount="1" />
  <row Id="6115" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T21:59:47.303" Score="17" ViewCount="" Body="&lt;h2&gt;Go&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I think many programmers will try Go in next years. Maybe I will too.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="1220" LastEditorDisplayName="" LastEditDate="2010-09-23T22:52:06.057" LastActivityDate="2010-09-23T22:52:06.057" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="6" />
  <row Id="6116" PostTypeId="2" ParentId="1599" CreationDate="2010-09-21T22:02:52.700" Score="1" ViewCount="" Body="&lt;p&gt;Whenever I see a statement such as &lt;em&gt;this = that&lt;/em&gt; - which clearly was meant as &lt;em&gt;this&lt;/em&gt; is equal to &lt;em&gt;that&lt;/em&gt; - I mentally change it to &lt;code&gt;this == that&lt;/code&gt; in order to avoid overwriting.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-21T22:02:52.700" CommunityOwnedDate="2010-09-21T22:02:52.700" />
  <row Id="6117" PostTypeId="2" ParentId="5920" CreationDate="2010-09-21T22:12:21.943" Score="1" ViewCount="" Body="&lt;p&gt;My resume is a LaTeX document based on a &lt;a href=&quot;http://jblevins.org/projects/cv-template/&quot; rel=&quot;nofollow&quot;&gt;great CV template&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2313" LastActivityDate="2010-09-21T22:12:21.943" />
  <row Id="6118" PostTypeId="1" AcceptedAnswerId="6126" CreationDate="2010-09-21T22:14:36.557" Score="1" ViewCount="140" Body="&lt;p&gt;I've been a Windows programmer for a decade or more now, and I'm currently doing my first ever Macintosh project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the things that is driving me bonkers is how the keyboard maps differently. There's the little things, like how the equivalent of ALT+TAB in Windows is COMMAND+TAB, which for a standard USB keyboard winds up being WINDOWS+TAB. Then there's the really annoying things, like maneuvering through text in a document is different. In Windows if I want to select a line's text I can position my cursor at the end with the END key, hold SHIFT and hit HOME. On the Macintosh the END key takes you to the end of the document (which, to be fair, is somewhat logical) and holding down SHIFT and the HOME key just selects the entire document up until the cursor. The ALT+arrow keys are more what I'm looking to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My attitude towards this has been basically to suck it up and learn the new way of doing things and adapt to the idea of going back and forth. My reasoning is that this likely won't be the last new platform I ever program for in my career and it probably benefits me both as a programmer and a computer user to be flexible. In addition, there's always going to be machines I go to where mapping the keyboard isn't in place already, or may not be an option (i.e., helping troubleshoot a QA machine). Plus not everything I'm used to in Windows is going to have a Macintosh equivalent. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, right now I'd be considerably more productive if I were to make things more like Windows. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For people who have been working with multiple platforms, do you change the mappings to make everything like what you're familiar with? Or do you do what I'm currently doing which is to suck it up and learn the different way of doing things?&lt;/p&gt;&#xA;" OwnerUserId="3080" LastActivityDate="2010-09-22T14:10:13.423" Title="When programming for a new platform, do you change the keyboard mapping to what you're familiar with?" Tags="&lt;windows&gt;&lt;keyboard&gt;&lt;platform&gt;&lt;mac&gt;" AnswerCount="4" />
  <row Id="6119" PostTypeId="2" ParentId="5770" CreationDate="2010-09-21T22:16:24.483" Score="0" ViewCount="" Body="&lt;p&gt;Back in 1988, I had a programmable calculator. If I remember correctly, it could store a 32 step &quot;program&quot;. There were variables, inputs and loops, it might even have been Turing Complete. Although the display could show 10 or so digits, when programming, you had to type in the required button presses without any visual feedback. If you made a mistake, you had to start again. So, 10 or so digit display with none used whilst programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With some effort, I managed to get the quadratic formula into it: &lt;code&gt;x = (-b+-root(b.b-4.a.c))/2.a&lt;/code&gt; and get both results out.&lt;/p&gt;&#xA;" OwnerUserId="914" LastActivityDate="2010-09-21T22:16:24.483" CommentCount="2" />
  <row Id="6120" PostTypeId="2" ParentId="6112" CreationDate="2010-09-21T22:17:31.087" Score="5" ViewCount="" Body="&lt;p&gt;In a team environment, it always helps to understand what the people around you are doing, especially when your work is co-dependent. It greases the wheels of both communication and execution. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're flying solo, your application has a much steeper climb in terms of adoption if you don't understand and implement a usable UI. I would argue that in this case, UI design skills for the programmer are essential.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, yes, programmers should learn how to create aesthetically pleasing and usable designs.&lt;/p&gt;&#xA;" OwnerUserId="73" LastActivityDate="2010-09-21T22:17:31.087" />
  <row Id="6121" PostTypeId="1" AcceptedAnswerId="6123" CreationDate="2010-09-21T22:21:52.543" Score="13" ViewCount="202" Body="&lt;p&gt;For as long as I've programmed, I've never really been entirely satisfied with any projects that I've finished. Sure, they do what I've set out to do, but there has always been &lt;em&gt;something&lt;/em&gt; in the code that I, in retrospect, would have done differently but can't be bothered to refactor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this just me, or is it a common programming trait?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-22T04:04:17.543" Title="Why am I never completely satisfied with my program?" Tags="&lt;personal-traits&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="4" />
  <row Id="6122" PostTypeId="2" ParentId="2815" CreationDate="2010-09-21T22:22:08.743" Score="2" ViewCount="" Body="&lt;p&gt;I'd like to see the ability to pass properties by reference.  Like&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int.TryParse(some_numeric_string, out MyProperty)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It's already been done in VB, so it's definitely possible.&lt;/p&gt;&#xA;" OwnerUserId="900" LastActivityDate="2010-09-21T22:22:08.743" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="3" />
  <row Id="6123" PostTypeId="2" ParentId="6121" CreationDate="2010-09-21T22:25:51.217" Score="11" ViewCount="" Body="&lt;p&gt;IMHO, it is common. Can't speak for others naturally, &lt;em&gt;and avoiding that crap about striving for perfection and all that&lt;/em&gt;, it is partially because you know where all the &lt;em&gt;weak points&lt;/em&gt; in your program are / and what are they.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, you're not satisfied.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, most users will never notice most of those, and therefore will always have a higher regard to your program then you will.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember, it is not striving for perfection, but being &lt;em&gt;just good enough&lt;/em&gt; that make good programmers / engineers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;p.s. Interesting what kind of crazy philosophical posts I can write at 00:30 after 4 cups of tea ...&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-21T22:25:51.217" />
  <row Id="6124" PostTypeId="2" ParentId="6121" CreationDate="2010-09-21T22:26:08.483" Score="3" ViewCount="" Body="&lt;p&gt;I'd say that this is quite common for any kind of engineer. Our job is, by definition, an on going process of design, construction, and revision. We as programmers tend to know know the problem areas in our applications better than any other person involved in the final product and thus they stick out to us like a sore thumb. In addition to that fact, a good engineer is always seeking ways to improve his or her efforts so that the next thing they work on is (hopefully) better than the last.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't say that I personally have ever been &lt;em&gt;completely&lt;/em&gt; satisfied with a product I've shipped, but I see that as a motivation toward self-improvement, rather than an indication of poor work or perpetual of malcontent.&lt;/p&gt;&#xA;" OwnerUserId="13" LastActivityDate="2010-09-21T22:26:08.483" />
  <row Id="6125" PostTypeId="2" ParentId="4384" CreationDate="2010-09-21T22:28:04.753" Score="3" ViewCount="" Body="&lt;p&gt;I wrote a fully functional version of Monopoly complete with graphics and AI players in J2ME for the &lt;a href=&quot;http://en.wikipedia.org/wiki/Nokia_3410&quot; rel=&quot;nofollow&quot;&gt;Nokia 3410&lt;/a&gt; which had a 96x64 monochrome screen and a maximum JAR file of 49K. I did a few other, more powerful phones as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did all the programming and testing, and I've still got all the source code too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I now can't stand Monopoly. There is no skill to it.&lt;/p&gt;&#xA;" OwnerUserId="914" LastActivityDate="2010-09-21T22:28:04.753" CommentCount="1" />
  <row Id="6126" PostTypeId="2" ParentId="6118" CreationDate="2010-09-21T22:35:02.657" Score="3" ViewCount="" Body="&lt;p&gt;No, I just adapt to the new environment best I can. Trying to configure everything as before usually just leads to more &lt;em&gt;pain&lt;/em&gt; (all within reasonable limits of course). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly.&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Specialization is for insects.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-21T22:35:02.657" />
  <row Id="6127" PostTypeId="2" ParentId="1785" CreationDate="2010-09-21T22:40:01.750" Score="0" ViewCount="" Body="&lt;p&gt;They need to know about the power of closures and start using them.&lt;/p&gt;&#xA;" OwnerUserId="2743" LastActivityDate="2010-09-21T22:40:01.750" CommunityOwnedDate="2010-09-21T22:40:01.750" />
  <row Id="6129" PostTypeId="2" ParentId="2815" CreationDate="2010-09-21T22:45:33.933" Score="1" ViewCount="" Body="&lt;p&gt;Mine's a fairly simple one - i'd have preferred it if properties and methods were &lt;code&gt;virtual&lt;/code&gt; by default.&lt;/p&gt;&#xA;" OwnerUserId="562" LastActivityDate="2010-09-21T22:45:33.933" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="2" />
  <row Id="6130" PostTypeId="2" ParentId="6118" CreationDate="2010-09-21T22:47:09.360" Score="0" ViewCount="" Body="&lt;p&gt;I went through this about 5 years ago.  I got used to the command/ctrl difference pretty quickly, but the home and end keys drove me crazy.  I found a program called Double Command that switched the function of these with their Mac equivalents (which are CMD &amp;rarr; for &lt;em&gt;end&lt;/em&gt; and CMD &amp;larr; for &lt;em&gt;home&lt;/em&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with this utility was that certain platform-agnostic applications (usually Java-based like IntelliJ) already re-mapped the home and end keys to other things and because underneath that was already doing the translation, it essentially reverted those keys in those programs, or worse, did nothing. After a couple upgrades to new versions of Mac OS, the Double Command program kept crashing and eventually I gave up, and learned to use the built in commands.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wish I would have just gone with that at first.  I find that now I can switch between a PC and Mac quite seamlessly, which I think is subconsciously linked to the feel of the keyboard that I'm using.  Anytime I've ever plugged a PC keyboard into a Mac, I've been totally lost and confused.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;[Edit]&lt;/em&gt; Oh, I will say that if my IDE on a PC supports it, I do add additional key mappings to use Mac-standard window commands:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ctrl+W&lt;/strong&gt;: close window&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ctrl+L&lt;/strong&gt;: go to line&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ctrl+G&lt;/strong&gt;: find next&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Shift Ctrl+G&lt;/strong&gt;: find previous&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-09-21T22:47:09.360" />
  <row Id="6131" PostTypeId="2" ParentId="6121" CreationDate="2010-09-21T22:47:55.930" Score="3" ViewCount="" Body="&lt;p&gt;I think it's one of those things along the lines of &quot;if I ever think I know it all, I must not know anything&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I can't find anything to improve, I think that is a sign that I'm letting ego get in the way of critical thinking. Which means the whole thing probably is terrible.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastEditorUserId="1865" LastEditorDisplayName="" LastEditDate="2010-09-22T00:03:47.930" LastActivityDate="2010-09-22T00:03:47.930" />
  <row Id="6132" PostTypeId="2" ParentId="6112" CreationDate="2010-09-21T22:49:12.323" Score="0" ViewCount="" Body="&lt;p&gt;If you're letting the design guy worry about it, then do you have a team environment? Or just a bunch of silos? &lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-21T22:49:12.323" CommentCount="3" />
  <row Id="6133" PostTypeId="1" AcceptedAnswerId="6156" CreationDate="2010-09-21T22:51:18.230" Score="5" ViewCount="95" Body="&lt;p&gt;There are some really common usability errors in everyday software we used; errors that result from the ways the particular programmer has learned without learning of all the other ways there are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, talking about Windows software in particular, the following common flaws come to mind:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Failure to support multiple screens. For example, windows centered in the virtual desktop (instead of a specific screen) and hence displayed spanning the monitor boundary in a dual monitor setup.&lt;/li&gt;&#xA;&lt;li&gt;Failure to support serious keyboard users. For example, utterly messed up tab order; duplicate or completely missing accelerator keys.&lt;/li&gt;&#xA;&lt;li&gt;Alt+Tab order mess-ups. For example, a window that doesn't go to the end of the tab order when minimized.&lt;/li&gt;&#xA;&lt;li&gt;Subtle breakage of common controls that were reimplemented for one reason or another. E.g. failure to implement Ctrl+Left/Right on a textbox; failure to add an Alt+Space window menu to a skinnable window, failure to make Ctrl+Insert copy to clipboard, etc, etc. This one is a huge category in its own right.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There are a gazillion of things like this. How can we ever make sure we don't break a large proportion of these? After all they aren't all written down anywhere... or are they?&lt;/p&gt;&#xA;" OwnerUserId="3278" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-17T12:30:39.770" LastActivityDate="2010-11-17T12:30:39.770" Title="How do you ensure your product meets basic usability guidelines?" Tags="&lt;experience&gt;&lt;development-process&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="6134" PostTypeId="2" ParentId="2" CreationDate="2010-09-21T22:52:34.127" Score="2" ViewCount="" Body="&lt;p&gt;Almost all embedded programming on 8 and 16-bit microcontrollers is now done in C (rather than assembler, as it used to be), which accounts for a large degree of its continued popularity. C has been #1 or #2 on the TIOBE index (referenced in another answer) for 25 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would guess that there are more CPU's running C than any other language in the world (simply because microcontroller sales are measured in the billions of units per year), which in one sense would qualify as the &quot;most used&quot;.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-09-21T23:20:31.060" LastActivityDate="2010-09-21T23:20:31.060" />
  <row Id="6135" PostTypeId="2" ParentId="2815" CreationDate="2010-09-21T23:03:04.340" Score="41" ViewCount="" Body="&lt;p&gt;Erase from history C# 1.0 along with .NET 1.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the legacy of the non-generic past is the single biggest detriment to the consistency of the whole platform.&lt;/p&gt;&#xA;" OwnerUserId="3278" LastActivityDate="2010-09-21T23:03:04.340" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="9" />
  <row Id="6136" PostTypeId="2" ParentId="2815" CreationDate="2010-09-21T23:04:35.223" Score="3" ViewCount="" Body="&lt;p&gt;Get rid of the C# 2.0 syntax for anonymous methods.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's worse than the lambda syntax, and the only reason we need both is for backwards compatibility with C# 2.0 code.&lt;/p&gt;&#xA;" OwnerUserId="3278" LastActivityDate="2010-09-21T23:04:35.223" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="3" />
  <row Id="6137" PostTypeId="2" ParentId="2815" CreationDate="2010-09-21T23:05:42.070" Score="19" ViewCount="" Body="&lt;p&gt;Make types shorter than &lt;code&gt;int&lt;/code&gt; first-class members.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's just crazy to have to cast the result of &lt;code&gt;byte xor byte&lt;/code&gt; back to &lt;code&gt;byte&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3278" LastEditorUserId="3278" LastEditorDisplayName="" LastEditDate="2010-09-22T10:28:39.643" LastActivityDate="2010-09-22T10:28:39.643" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="1" />
  <row Id="6138" PostTypeId="2" ParentId="2815" CreationDate="2010-09-21T23:09:34.950" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;https://connect.microsoft.com/VisualStudio/feedback/details/602150/a-practical-new-access-modifier-for-net-to-aid-in-developing-bullet-proof-code&quot; rel=&quot;nofollow&quot;&gt;Enable the creation of classes that have access to each other's private members, without letting the whole assembly see them.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use case: basically pretty much every time you use &quot;internal&quot; on a field or a method. This usually means you require a backdoor which the client code should not have. But if the client code should not have that backdoor, why should the rest of your assembly? Limit it to just the one or two classes that actually need that backdoor.&lt;/p&gt;&#xA;" OwnerUserId="3278" LastEditorUserId="3278" LastEditorDisplayName="" LastEditDate="2010-09-22T10:39:03.153" LastActivityDate="2010-09-22T10:39:03.153" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="8" />
  <row Id="6139" PostTypeId="2" ParentId="6133" CreationDate="2010-09-21T23:10:30.673" Score="2" ViewCount="" Body="&lt;p&gt;I think one thing to keep in mind is to remember the source reason for most software usability problems &amp;mdash; &lt;strong&gt;usability is a human issue&lt;/strong&gt;, and as such, is difficult to define with a set of rules.  This is totally at odds with the rules-world that most programmers want to live in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because of that I think you need to throw out the belief that a checklist of usability problems could ever be helpful.  Believing that is thinking like a programmer and will only result in more usability problems that you simply hadn't thought of (or that are the result of sticking to a usability &quot;rule&quot; that never really should have been a rule).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;One of the biggest differences can be made by designing first (read Alan Cooper's &lt;em&gt;&lt;a href=&quot;http://www.uidesign.net/1999/books/oct_books1.html&quot; rel=&quot;nofollow&quot;&gt;The Inmates are Running the Asylum&lt;/a&gt;&lt;/em&gt;).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Second, make sure your software goes through usability testing with real users.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Third, don't think like a programmer. The possible idea in your question is a perfect example of why this is important to remember.  Even good ideas (avoiding non-standard controls) are not &lt;em&gt;always&lt;/em&gt; going to hold true.  Those controls may be faulty themselves or may be used for something they shouldn't.  The perfect solution for your form or user input may not have been invented yet, or may simply be not widely used or implemented (the iPhone is a great case study for this).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As another illustration of the problem with &quot;usability checklists&quot;, the list you presented may well be common to you, and I agree they are problems, but I hadn't really thought of most of them prior to reading your list.  On the other hand, I've experienced tons of annoyances with Windows since being given a PC for my day-job:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;(Windows 7) Mousing over a task bar button and then over a Window thumbnail drops all other windows to just outlines.  I've done this by accident a number of times and had what I was reading simply disappear.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The Alt+tab pane can now be moused over to temporarily bring the window to the front.  However, when you let go you think it's going to stay there, and it doesn't.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;(MS Outlook - I know, sort of a cheap shot) If I open a new email and then close it, even if I haven't added any text it asks me if I want to save the draft.  Then if I say no, it moves it to my deleted items folder.  As an &lt;em&gt;unread&lt;/em&gt; email, leaving me with a big blue &quot;&lt;strong&gt;(1)&lt;/strong&gt;&quot; until I go delete it or &quot;read&quot; it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-09-21T23:37:26.807" LastActivityDate="2010-09-21T23:37:26.807" CommentCount="2" />
  <row Id="6141" PostTypeId="2" ParentId="487" CreationDate="2010-09-21T23:16:32.113" Score="2" ViewCount="" Body="&lt;p&gt;To try new ideas:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would make a dynamic-typed functional programming language, it allows you to do all the statement expression tricks and the simplest lambda syntax with pattern matching. Off-side rule enabled.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// a view pattern (or Active Pattern in F#)&#xA;default = \def val: !!val.Type val def&#xA;&#xA;// usage of the pattern&#xA;greet = \name&amp;lt;(default &quot;world&quot;) `and` hasType Str&amp;gt;:&#xA;  p &quot;Hello, \{name}!&quot;&#xA;&#xA;(p &quot;Enter your name&quot;, .input).greet // (, ) is a sequence expression, returning the last value&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Here is an explanation:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;default =&lt;/code&gt; sets the storage, &lt;code&gt;\def val&lt;/code&gt; begins a curried function with two arguments, &lt;code&gt;val.Type&lt;/code&gt; is same as &lt;code&gt;Type[val]&lt;/code&gt;, &lt;code&gt;!!&lt;/code&gt; converts to boolean, and boolean can be applied, so &lt;code&gt;val&lt;/code&gt; and &lt;code&gt;def are after it.&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;f x&lt;/code&gt; = &lt;code&gt;f[x]&lt;/code&gt; = &lt;code&gt;x.f&lt;/code&gt;&#xA;&lt;code&gt;.f&lt;/code&gt; = &lt;code&gt;f[]&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and in &lt;code&gt;greet&lt;/code&gt;, it used &lt;code&gt;name&amp;lt;(default &quot;world&quot;)&lt;/code&gt;and&lt;code&gt;hasType Str&amp;gt;&lt;/code&gt;, it means the pattern &lt;code&gt;default &quot;world&quot;&lt;/code&gt; will be used and bound to &lt;code&gt;name&lt;/code&gt;. The default pattern specifies a default value.&#xA;&lt;code&gt;and&lt;/code&gt; is another pattern that chains two patterns together. the &lt;code&gt;default&lt;/code&gt; pattern can't fail while &lt;code&gt;hasType&lt;/code&gt; can fail. In that case, it throws an exception.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Variables are actually storages, which can be functionally passed, and storage tables can be references, created and destroyed as scopes change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hashes and such will be like in Lua and JavaScript's.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I'm going to make a compiled language, I'm going to make an F# for Java, with Haskell-like features. It's a pure functional language, except there is a feature that mixes Quotations and Comp Exprs together to achieve imperative programming by writing pseudocode-like blocks.&lt;/p&gt;&#xA;" OwnerUserId="1325" LastEditorUserId="1325" LastEditorDisplayName="" LastEditDate="2010-09-21T23:24:14.327" LastActivityDate="2010-09-21T23:24:14.327" CommentCount="1" />
  <row Id="6142" PostTypeId="2" ParentId="6118" CreationDate="2010-09-21T23:18:00.010" Score="0" ViewCount="" Body="&lt;p&gt;I just install Vim. Then, it doesn't matter what the platform is; I've got my &lt;code&gt;.vimrc&lt;/code&gt;. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I do try to learn the keyboard shortcuts of the platform. I just tend to use different platforms so scarcely, that I never get the time to do so.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-09-21T23:18:00.010" />
  <row Id="6146" PostTypeId="1" AcceptedAnswerId="7444" CreationDate="2010-09-21T23:41:55.913" Score="6" ViewCount="243" Body="&lt;p&gt;I've recently been frequented by erroneous error messages from mod_security. Its filter sets cover outdated PHP exploits, and I have to rewrite my stuff because Wordpress&amp;amp;Co had bugs years ago.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does this happen to anyone else?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Apache mod_security blocks possibly&#xA;  dangerous HTTP requests before they&#xA;  reach applications (PHP specifically).&#xA;  It uses various filter sets, mostly&#xA;  regex based.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;So I have a nice shared hosting provider, technically apt and stuff. But this bugged me:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just last week I had to change a parameter name &lt;code&gt;&amp;amp;src=&lt;/code&gt; in one of my apps because mod_security blocks ANY requests with that. I didn't look up its details, but this filter rule was preventing the exploitability of another app which I don't use and probably never had heard about. Still I had to rewrite &lt;em&gt;my code&lt;/em&gt; (renaming parameter often suffices to trick mod_security) which had nothing to do or in common with that!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And today, a silly regex blocks form submissions, because I wanted to submit php sample code. Given, this is the simple stuff that mod_security is there to protect against. But I don't believe mod_security can detect seriously obfuscated code, and just goes off at obvious (and in this case totally trivial) php snippets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically I'm getting penalized by mod_security because other people released bug-prone apps. (Not saying my apps are ultra secure - I'm pretty security wary, but make no hyperbolic claims.)&lt;br&gt;&#xA;I've already asked my provider to disable it anyway, the benefits are too minuscle IMO and for my apps.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;What do you think? Does mod_security make much sense outside of WP hosting? Or is it really just a bunch of blacklists of long passed security bugs? Which of its rules are actually helpful? Is there an application level equivalent?&lt;/p&gt;&#xA;" OwnerUserId="1245" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-09-22T00:12:56.437" LastActivityDate="2010-09-26T17:11:44.730" Title="Is mod_security a good thing?" Tags="&lt;php&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="2" />
  <row Id="6148" PostTypeId="2" ParentId="6067" CreationDate="2010-09-21T23:44:15.223" Score="0" ViewCount="" Body="&lt;p&gt;I actually want to see if learning how to think/speak in &lt;a href=&quot;http://en.wikipedia.org/wiki/Lojban&quot; rel=&quot;nofollow&quot;&gt;Lojban&lt;/a&gt; will improve my reasoning while programming.&lt;/p&gt;&#xA;" OwnerUserId="1525" LastActivityDate="2010-09-21T23:44:15.223" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="1" />
  <row Id="6150" PostTypeId="2" ParentId="3363" CreationDate="2010-09-21T23:54:39.773" Score="0" ViewCount="" Body="&lt;p&gt;Not my idea, stems from &lt;a href=&quot;http://stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered/740603#740603&quot;&gt;this&lt;/a&gt; but I have since implemented it. ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;// Autogenerated, do not edit. All changes will be undone.&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-21T23:54:39.773" CommunityOwnedDate="2010-09-21T23:54:39.773" CommentCount="1" />
  <row Id="6151" PostTypeId="2" ParentId="539" CreationDate="2010-09-21T23:54:55.920" Score="2" ViewCount="" Body="&lt;p&gt;I use the excellent &lt;a href=&quot;http://github.com/irfn/zen-and-art&quot; rel=&quot;nofollow&quot;&gt;zen-and-art&lt;/a&gt;, for TextMate:&#xA;&lt;img src=&quot;http://i.imgur.com/N1pC5.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-09-21T23:54:55.920" CommunityOwnedDate="2010-09-21T23:54:55.920" CommentCount="3" />
  <row Id="6152" PostTypeId="2" ParentId="3824" CreationDate="2010-09-21T23:55:50.427" Score="1" ViewCount="" Body="&lt;p&gt;My sample is very small to deduce percentages from, but here goes anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One was a fabless chip + firmware company, which did fanatical testing. 24/7 automated tests on tens of installations, each testing tens of units in parallel. Software teams dedicated to developing testing software. Hardware teams dedicated to building test rigs. Compatibility testing against tens of competitors. Heck, they even bought a multi-million dollar chip tester installation to develop and debug some of the tests that the fabs run when the chips leave the foundry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another one was a bank. This one is a completely different environment: no product releases, but lots and lots of in-house software to keep running continuously. These guys tested the cr*p out of every single change they made. They had very strict separation of DEV/QA/PROD environments, automated regression testing, mandatory QA testing signed off by end-users before releasing into production, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So yeah, people do do methodical testing. But as you can tell I've never worked at a place that ships your typical GUI software for the typical computer user.&lt;/p&gt;&#xA;" OwnerUserId="3278" LastActivityDate="2010-09-21T23:55:50.427" />
  <row Id="6154" PostTypeId="2" ParentId="724" CreationDate="2010-09-22T00:05:05.867" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Ruby&lt;/strong&gt;'s &lt;strong&gt;inject&lt;/strong&gt; method combined with the &lt;a href=&quot;http://blog.thoughtfolder.com/2008-02-25-a-detailed-explanation-of-ruby-s-symbol-to-proc.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Symbol#to_proc&lt;/strong&gt;&lt;/a&gt; feature of Ruby 1.9 lets one write some incredibly concise (but still readable) code:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;e.g. &lt;code&gt;(1..10).inject(:+)&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;which sums the integers 1 through 10 =&gt; 55&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seeing examples like this made me want to learn Ruby, which I've just started doing.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-22T00:05:05.867" CommentCount="4" />
  <row Id="6155" PostTypeId="2" ParentId="3824" CreationDate="2010-09-22T00:34:57.570" Score="1" ViewCount="" Body="&lt;p&gt;I currently write embedded firmware for a small startup company making wireless medical devices.  We are required to do rigorous testing, and have a completely separate quality department headed by someone who reports directly to the CEO.  I have never had my code so thoroughly tested before by separate testers (the only time that compares, is when I was working on satellite TV systems about 15 years ago.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our test results get submitted to the FDA (so far we have gotten two FDA clearances -- each submittal was around 500 pages long).  Both our development and testing methodologies are both subject to periodic auditing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So it is not only the big companies that do lots of formal testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note -- in my 25+ years of contract programming/consulting, I have also worked for many companies that did virtually no formal testing.  Most of them are not around anymore.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-22T00:34:57.570" />
  <row Id="6156" PostTypeId="2" ParentId="6133" CreationDate="2010-09-22T00:49:46.220" Score="1" ViewCount="" Body="&lt;p&gt;I'm not aware of such a list (perhaps you could create one?), but there is a way to solve this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Beta testing&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your community is large enough, release a beta version. Even if its not large, just ask people to try it out and see what they think. Tell them they don't have to use it after their done, just that you want their opinion on it. They'll try.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beta testing allows you to see if your program meets the general consensus. Beta users are more likely technical people, so things like simplicity are going to be hard to test for since technical people know how to work around software like that. However if even the beta testers can't figure it out, then you have a serious problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other things like dual monitor support, keyboard shortcuts, integration with their OS, stability, etc can be easily tested for with beta software. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-22T00:49:46.220" />
  <row Id="6157" PostTypeId="1" CreationDate="2010-09-22T00:52:17.893" Score="27" ViewCount="1606" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/1913/what-are-the-must-have-development-tools-for-windows&quot;&gt;What are the must have development tools for Windows?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;What are some tools every programmer know about? Some examples i thought were&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Source control. (No explanation needed)&lt;/li&gt;&#xA;&lt;li&gt;Profiler. Many could go without but its good to know how to use one when the occasion arise&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What else? I was thinking a bug report software but i havent used one so i wasnt sure. Should programmers know how to use TRAC? I remember in the past a person telling me if i was making a shared library i should know (Some Name) which generates docs from the source (in that case C++). What was that called and what else should i know about?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-edit- what about team management software? any software you could not live without in a specific project would be a good mention. I'll also mention i use VMs frequently during the prototype or end phase to see if there are any issues on a clean XP or linux distro and if i forgot anything in my redistribution. I cant imagine the end/release and testing phase of a project without a VM.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-03-28T15:13:19.280" LastActivityDate="2011-03-28T15:13:19.280" CommunityOwnedDate="2010-09-24T20:35:46.053" ClosedDate="2011-03-28T15:13:50.043" Title="What tools should every programmer know?" Tags="&lt;tools&gt;" AnswerCount="31" CommentCount="4" FavoriteCount="13" />
  <row Id="6159" PostTypeId="2" ParentId="6157" CreationDate="2010-09-22T00:56:05.430" Score="32" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Grep&quot; rel=&quot;nofollow&quot;&gt;grep&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;'nuff said.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-22T00:56:05.430" CommentCount="18" />
  <row Id="6160" PostTypeId="2" ParentId="5770" CreationDate="2010-09-22T00:56:57.043" Score="4" ViewCount="" Body="&lt;p&gt;My dad's PalmPilot. The screen looks bigger, but it's only &lt;code&gt;160x160&lt;/code&gt; pixels.&lt;br&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/oeVjt.jpg&quot; alt=&quot;PalmPilot&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2616" LastActivityDate="2010-09-22T00:56:57.043" CommentCount="3" />
  <row Id="6161" PostTypeId="2" ParentId="6157" CreationDate="2010-09-22T00:57:03.157" Score="44" ViewCount="" Body="&lt;p&gt;The debugger. Its so obvious it shouldn't have to be mentioned.&lt;/p&gt;&#xA;" OwnerUserId="227" LastActivityDate="2010-09-22T00:57:03.157" CommentCount="3" />
  <row Id="6162" PostTypeId="2" ParentId="6121" CreationDate="2010-09-22T00:57:51.860" Score="2" ViewCount="" Body="&lt;p&gt;As an engineering student, I see myself constantly criticizing my own work.  As well, I find that if I don't sit down and design something throughly from start to finish (such as my second attempt to write an Assembler for a VonNeumann Emulator I wrote as part of course work), I end up second guessing myself and compensating for my own work everywhere (such as my first attempt at writing a Von-Neumann emulator).  I still think there are drastic improvements that can be made in these programs, etc etc.  So you aren't alone.  Me and everyone else who posted here seem to agree with you.&lt;/p&gt;&#xA;" OwnerUserId="2835" LastActivityDate="2010-09-22T00:57:51.860" />
  <row Id="6163" PostTypeId="2" ParentId="6157" CreationDate="2010-09-22T01:01:03.383" Score="8" ViewCount="" Body="&lt;p&gt;If you find yourself reaching for the mouse frequently while coding, you probably need to learn how to make better use of your &lt;strong&gt;text editor&lt;/strong&gt; or find a better text editor.  &lt;/p&gt;&#xA;" OwnerUserId="2269" LastActivityDate="2010-09-22T01:01:03.383" CommentCount="2" />
  <row Id="6164" PostTypeId="2" ParentId="6067" CreationDate="2010-09-22T01:02:35.890" Score="-1" ViewCount="" Body="&lt;p&gt;I really want to get to know the C standard better (little things like declaring a string like char * str = &quot;hello&quot;; creates a constant...) and learn some of the APIs and underlying features (like sockets, threads, etc.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really need to go find my second edition of &quot;The C Programming Language&quot; and give it a good read through, just to get everything clarified to the fullest =)&lt;/p&gt;&#xA;" OwnerUserId="2835" LastActivityDate="2010-09-22T01:02:35.890" CommunityOwnedDate="2010-09-22T08:38:26.843" />
  <row Id="6165" PostTypeId="2" ParentId="6157" CreationDate="2010-09-22T01:08:42.057" Score="2" ViewCount="" Body="&lt;p&gt;An office suite and a good e-mail program for communicating and exchanging documents/information with the other aspects of the business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And a good ftp program.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-22T01:08:42.057" CommentCount="10" />
  <row Id="6166" PostTypeId="1" AcceptedAnswerId="6230" CreationDate="2010-09-22T01:11:31.100" Score="19" ViewCount="409" Body="&lt;p&gt;To quote Arthur C. Clarke:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Any sufficiently advanced technology is indistinguishable from magic.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Used to be I looked on technology with wonder and amazement. I wanted to take it apart, understand how it worked, figure it all out. Technology was magical. I'm older, I know more and I spend my days creating stuff that, hopefully, fills other people with that kind of wonder. But lately I've found my own awe for technology has been seriously curtailed. More often I'm just annoyed that it isn't as elegant or seamless or as polished or perfectly delivered as it seemed to be in my youth. It all looks broken and awkward, or cobbled together and poorly tested.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has programming ruined your ability to enjoy technology? Have you stopped wondering in awe and just started saying, &quot;They could have done this better&quot; every time you pick up a bit of technology?&lt;/p&gt;&#xA;" OwnerUserId="762" LastActivityDate="2010-09-22T14:12:35.283" Title="Has programming for a living ruined your ability to enjoy technology?" Tags="&lt;experience&gt;&lt;technology&gt;" AnswerCount="11" CommentCount="1" />
  <row Id="6167" PostTypeId="2" ParentId="6157" CreationDate="2010-09-22T01:17:47.817" Score="6" ViewCount="" Body="&lt;h2&gt;Hex editors&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Essential for writing code that reads/writes binary files.&lt;/p&gt;&#xA;" OwnerUserId="40" LastActivityDate="2010-09-22T01:17:47.817" />
  <row Id="6168" PostTypeId="2" ParentId="2023" CreationDate="2010-09-22T01:19:41.650" Score="0" ViewCount="" Body="&lt;p&gt;Regardless of which diff/merge tool you use, you might find the &lt;a href=&quot;http://diff-ext.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;diff-ext&lt;/a&gt; handy. It allows you to easily select the files to compare in your file manager.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Versions available for Windows Explorer (Windows), Nautilus (Gnome), Konqueror (KDE) and Thunar (XFCE). (I've only ever used under Windows)&lt;/p&gt;&#xA;" OwnerUserId="415" LastActivityDate="2010-09-22T01:19:41.650" />
  <row Id="6169" PostTypeId="2" ParentId="6157" CreationDate="2010-09-22T01:20:51.157" Score="29" ViewCount="" Body="&lt;p&gt;A &lt;strong&gt;diff&lt;/strong&gt; program of any sort. These days I rely on &lt;strong&gt;Windiff&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/375913/what-can-i-use-to-profile-c-code-in-linux/378024#378024&quot;&gt;This &lt;strong&gt;&quot;profiler&quot;&lt;/strong&gt;.&lt;/a&gt; It's simple, requires no tool except a debugger, and, IMHO, blows the others away.&lt;br&gt;&#xA;(To skeptics, i.e. everyone, &lt;a href=&quot;http://stackoverflow.com/questions/1777556/alternatives-to-gprof/1779343#1779343&quot;&gt;here's some rationale&lt;/a&gt;.)&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-09-22T01:27:59.820" LastActivityDate="2010-09-22T01:27:59.820" CommentCount="7" />
  <row Id="6170" PostTypeId="2" ParentId="6166" CreationDate="2010-09-22T01:22:14.683" Score="1" ViewCount="" Body="&lt;p&gt;Nope. I just look to different fields to find the magic these days.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Exotic cars: who hasn't drooled over a veyron?&lt;/li&gt;&#xA;&lt;li&gt;Medicine: I forget who, but someone recently synthesized a living cell(1). The physical technology wasn't amazing, but its application was.&lt;/li&gt;&#xA;&lt;li&gt;The quantum computer created a few years back at D-Wave in Vancouver&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Various others. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(1) The details of this are fuzzy, but I recall being thoroughly impressed with the work.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-22T01:22:14.683" CommentCount="1" />
  <row Id="6171" PostTypeId="2" ParentId="6157" CreationDate="2010-09-22T01:24:09.360" Score="9" ViewCount="" Body="&lt;p&gt;&lt;code&gt;find&lt;/code&gt; - it's a horrible, horrible thing, but sometimes you gotta. Also &lt;code&gt;sed&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="735" LastActivityDate="2010-09-22T01:24:09.360" CommentCount="5" />
  <row Id="6172" PostTypeId="2" ParentId="6157" CreationDate="2010-09-22T01:24:43.537" Score="54" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Google&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Google is probably the single most important tool right after the text editor and compiler/interpreter. &lt;/p&gt;&#xA;" OwnerUserId="3287" LastActivityDate="2010-09-22T01:24:43.537" CommentCount="9" />
  <row Id="6173" PostTypeId="2" ParentId="2815" CreationDate="2010-09-22T01:29:50.350" Score="19" ViewCount="" Body="&lt;p&gt;I would eliminate Null by default from language and framework. Null just when boxing on Nullable class.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-10-01T19:26:47.807" LastActivityDate="2010-10-01T19:26:47.807" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="12" />
  <row Id="6174" PostTypeId="2" ParentId="6166" CreationDate="2010-09-22T01:42:34.100" Score="0" ViewCount="" Body="&lt;p&gt;Almost every time I have picked up a program I saw a bug, future feature, or improvement. Most of the time I actually think (theoretically) how it would be done. And most of the time I'll file a bug report or post in the forum if the software company actually tries to get feedback from its customers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't say that its ruined my ability to enjoy things though. Gaming is still fun, most programs are still fun, and even most websites are still fun to visit; all regardless of the bugs that I notice. Most anyway are small, things that would escape testing, or they are huge UI improvements that a developer wouldn't of noticed since it makes sense to them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I still like my technology. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-22T01:42:34.100" />
  <row Id="6175" PostTypeId="2" ParentId="39" CreationDate="2010-09-22T01:47:51.013" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;...  one of the main causes of the fall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- Robert Firth&lt;/p&gt;&#xA;" OwnerUserId="1792" LastEditorUserId="3270" LastEditorDisplayName="" LastEditDate="2010-09-22T02:10:09.863" LastActivityDate="2010-09-22T02:10:09.863" CommunityOwnedDate="2010-09-22T01:47:51.013" />
  <row Id="6176" PostTypeId="2" ParentId="39" CreationDate="2010-09-22T01:48:41.527" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I am one of those culprits who created the problem.  I used to write those programs back in the '60s and '70s, and was so proud of the fact that I was able to squeeze a few elements of space by not having to put '19' before the year.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- Alan Greenspan, former Federal Reserve chair&lt;/p&gt;&#xA;" OwnerUserId="1792" LastEditorUserId="3270" LastEditorDisplayName="" LastEditDate="2010-09-22T02:09:50.843" LastActivityDate="2010-09-22T02:09:50.843" CommunityOwnedDate="2010-09-22T01:48:41.527" />
  <row Id="6177" PostTypeId="1" AcceptedAnswerId="6179" CreationDate="2010-09-22T01:51:34.660" Score="8" ViewCount="233" Body="&lt;p&gt;Been out of school  for about 3.5 years and in the .NET environment doing C# UI work (WinForms/WPF/Silverlight) as well as some Java work, server side.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All in all I have done no real web development. I am wanting to expand my knowledge to include some web knowledge. My company makes use of the Spring stack so I was going down that path so that it had value at my current place of employment. They make absolutely no use of Ruby/Rails however that would allow me to learn a language versus a stack. I have thought of going the ASP route which the company also makes heavy use of, since I am familiar with C# and the .NET environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am in favor of what MS has brought to the table so me stepping out of the .NET environment feels both interesting and exciting. I'm not sure if I am avoiding ASP to simply broaden my knowledge bank...so based on the above knowledge what route would you all take?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What has the most value long term? ASP? Spring stack? Ruby/Rails? Something else I am ignoring...?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All input is greatly appreciated, thanks.&lt;/p&gt;&#xA;" OwnerUserId="3289" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-22T03:00:29.360" LastActivityDate="2010-09-22T04:41:50.807" Title="How can I expand my web programming knowledge?" Tags="&lt;learning&gt;&lt;experience&gt;&lt;web-development&gt;" AnswerCount="2" FavoriteCount="3" />
  <row Id="6179" PostTypeId="2" ParentId="6177" CreationDate="2010-09-22T02:08:19.460" Score="9" ViewCount="" Body="&lt;p&gt;If you have never stepped into web development before, then start with the &lt;strong&gt;fundamentals:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;HTML, CSS, and JavaScript&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without these you won't know whats going on underneath, and it can be a very big shortcoming in the future. You need to know these just to do even the simplest task. Learn these before continuing ANY further. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;If you already know these, then I would say go with the heavyweights: A Java Spring stack and a ASP/.NET stack. These are huge and not going away any time soon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also learn another web language like PHP, since its used everywhere. To get more experimental a Ruby/Rails route would be okay, although which is more valuable is unknown to me. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-22T02:08:19.460" CommentCount="7" />
  <row Id="6181" PostTypeId="2" ParentId="2410" CreationDate="2010-09-22T02:13:20.347" Score="0" ViewCount="" Body="&lt;p&gt;I am fond of the concept of a recipe for cooking. &lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-22T02:13:20.347" CommunityOwnedDate="2011-03-03T17:06:14.173" />
  <row Id="6182" PostTypeId="2" ParentId="6166" CreationDate="2010-09-22T02:37:37.353" Score="14" ViewCount="" Body="&lt;p&gt;Programming has no more ruined my ability to enjoy technology than knowing biology has ruined my ability to enjoy a flower.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastActivityDate="2010-09-22T02:37:37.353" CommentCount="3" />
  <row Id="6184" PostTypeId="2" ParentId="6157" CreationDate="2010-09-22T02:47:58.347" Score="20" ViewCount="" Body="&lt;h2&gt;Stack Overflow&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I can't remember what I did before Stack Overflow!&lt;/p&gt;&#xA;" OwnerUserId="447" LastActivityDate="2010-09-22T02:47:58.347" CommentCount="6" />
  <row Id="6186" PostTypeId="2" ParentId="4693" CreationDate="2010-09-22T02:50:52.080" Score="1" ViewCount="" Body="&lt;p&gt;First let me say that I totally agree with your opinion. Of course not all are the same, but... More than the average. I am a programmer and suffer to live with the arrogance of my co-workers. I am really not like that... And I feel arrogancy as a misconception of life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the main reasons to me?&#xA;- Programmers are gods. Better than God. Programmers create worlds that work. In their own logic, all is perfect, some of them even have tests to prove it!&#xA;- Like Kramii said &quot;We tend to think that any given viewpoint must either be true or false, correct or incorrect.&quot; So as we create worlds that work, it means that we are on the right side&#xA;- Programmers live in their own head all day long. They do not express things, because they think, think, all day long...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The consequence of these facts is that a programmer thinks she might be wrong, or someone else might be right, it means that she is not God anymore, she does not belong to the Right side, and that what she does all day simply does not work! She is buggy&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All that leads to a simple conclusion: programmers give way too much importance to their work!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hate programmers' arrogancy.&lt;/p&gt;&#xA;" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2010-11-13T10:48:22.780" LastActivityDate="2010-11-13T10:48:22.780" CommunityOwnedDate="2010-09-22T02:50:52.080" />
  <row Id="6189" PostTypeId="2" ParentId="6067" CreationDate="2010-09-22T02:59:59.137" Score="0" ViewCount="" Body="&lt;p&gt;I think I'd like to learn &lt;a href=&quot;http://www.bigzaphod.org/taxi/&quot; rel=&quot;nofollow&quot;&gt;Taxi&lt;/a&gt;. Not for any useful purpose, obviously, but I need something entertaining to do in my spare time. I'm kind of in between other things.&lt;/p&gt;&#xA;" OwnerUserId="3476" LastActivityDate="2010-09-22T02:59:59.137" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="2" />
  <row Id="6190" PostTypeId="1" AcceptedAnswerId="6561" CreationDate="2010-09-22T03:09:12.377" Score="7" ViewCount="491" Body="&lt;p&gt;I am planning to create a utility, which will query the database and store some information (on another table in the database). Its a multi-threaded utility and require to run for every 5 or 10 minutes/later may be thrice in a day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I see two options to achieve this in C#/DotNet programming. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;creating windows service having timer approach inside it.&lt;/li&gt;&#xA;&lt;li&gt;a console program and schedule it using windows task scheduler.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Which one do you prefer and why? &lt;/p&gt;&#xA;" OwnerUserId="1564" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-22T12:08:09.447" LastActivityDate="2010-09-23T05:49:09.333" Title="Windows Service or Windows Task Scheduler?" Tags="&lt;.net&gt;" AnswerCount="5" CommentCount="13" FavoriteCount="3" />
  <row Id="6191" PostTypeId="2" ParentId="6067" CreationDate="2010-09-22T03:09:35.200" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Golfscript&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because I like puzzles, and I like to show off to my friends (referring to length of programs). This fits these two things together pretty nicely. But, more seriously, I'm interested in the stack-based methodology of the language. You don't do it that way often. And I'm always interested at seeing how different approaches work.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-22T03:09:35.200" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="1" />
  <row Id="6192" PostTypeId="2" ParentId="6157" CreationDate="2010-09-22T03:09:39.880" Score="5" ViewCount="" Body="&lt;p&gt;Testing framework/code coverage tool.&lt;/p&gt;&#xA;" OwnerUserId="1303" LastActivityDate="2010-09-22T03:09:39.880" />
  <row Id="6195" PostTypeId="2" ParentId="6166" CreationDate="2010-09-22T03:49:42.937" Score="1" ViewCount="" Body="&lt;p&gt;It didn't ruin my love for technology. I just complain more now because I know how the magic in programming works already. Also, it's not like programming is the only field in Technology. The magic never ends.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-09-22T03:49:42.937" />
  <row Id="6196" PostTypeId="2" ParentId="6121" CreationDate="2010-09-22T04:04:17.543" Score="0" ViewCount="" Body="&lt;p&gt;For me, it's just normal.  When I see something unsatisfactory in my code, I'm doing any thing just to improve it.&lt;/p&gt;&#xA;" OwnerUserId="1496" LastActivityDate="2010-09-22T04:04:17.543" />
  <row Id="6197" PostTypeId="2" ParentId="6166" CreationDate="2010-09-22T04:13:30.790" Score="4" ViewCount="" Body="&lt;p&gt;Keep &lt;a href=&quot;http://en.wikipedia.org/wiki/Sturgeon%27s_law#.E2.80.9CNinety_percent_of_everything_is_crud.E2.80.9D&quot; rel=&quot;nofollow&quot;&gt;Sturgeon's (second) Law&lt;/a&gt; in mind: “Ninety percent of everything is crud”.  When one studies how the sausage is made, one loses one's taste for sausage.  But one also gets a deeper appreciation for the other 10% of everything that isn't crud.  (I can't really keep the sausage metaphor going—perhaps because I haven't actually studied how it's made.)  And one can wonder at and be inspired by the 1% of everything that is truly great.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't have my rich respect and admiration for the inspired achievements in programming if I didn't program for a living.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love listening to &lt;a href=&quot;http://www.newyorker.com/online/podcasts/fiction&quot; rel=&quot;nofollow&quot;&gt;writers talk about other writers they admire&lt;/a&gt;.  As they learn the craft, I'm sure it's easy to be disillusioned at all the cruddy writing out there.  But most (if not all) great writers are avid readers—and find joy in the works of those they respect and are inspired by.&lt;/p&gt;&#xA;" OwnerUserId="307" LastActivityDate="2010-09-22T04:13:30.790" CommentCount="2" />
  <row Id="6198" PostTypeId="2" ParentId="6157" CreationDate="2010-09-22T04:22:18.487" Score="19" ViewCount="" Body="&lt;p&gt;A real text editor. Have you ever watched someone try to code in notepad or pico?&lt;/p&gt;&#xA;" OwnerUserId="940" LastActivityDate="2010-09-22T04:22:18.487" CommentCount="5" />
  <row Id="6199" PostTypeId="2" ParentId="6166" CreationDate="2010-09-22T04:31:07.807" Score="2" ViewCount="" Body="&lt;p&gt;When I started programming most &quot;normal&quot; people though of computers as essentially magic, and I routinely had to try to explain how they were really fairly normal devices, subject to the same physical laws and limitations as anything else. Although it would have been a &lt;em&gt;fair&lt;/em&gt; amount of work, I knew I could design a build a CPU if I really wanted to -- and while I never build an entire CPU, I did design and build enough pieces of logic complex enough to have a solid understanding of what that would take, not just a theoretical speculation that I had to be possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, most people think of computers as quite normal. A while back as I was eating supper, two waiters at the restaurant discussing choices of laptops -- and doing so in an informed, intelligent fashion. At the same time, I look at processors with operating frequencies well into the microwave region, with multiple independent cores, each containing multiple, independent execution units, doing speculative, out-of-order execution, branch prediction, register renaming, caching, etc. -- and now &lt;em&gt;I'm&lt;/em&gt; the one who's convinced that they're barely short of magic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If anything, I think knowing about programming makes technology even more fascinating and enjoyable.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-09-22T04:31:07.807" />
  <row Id="6200" PostTypeId="1" AcceptedAnswerId="6205" CreationDate="2010-09-22T04:32:51.070" Score="24" ViewCount="1786" Body="&lt;p&gt;Largely subjective, but do you think there are any programmers who get rich doing just that:  programming?  It is a career, but an advancing career?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure there are a few folks who make it big, but the % of full financial success programming I would venture is low.  Is this a field of work for simply the love of it?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Update: I should have specified further that yes indeed numerous named persons have become financially wealthy from some of their programming endeavors.  I do not believe however that the rate of equal financial success is equal to that of--say--stock brokers (despite the last few years)&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-22T12:14:21.620" LastActivityDate="2011-02-02T16:52:00.060" CommunityOwnedDate="2011-02-02T16:52:00.060" Title="Are there rich programmers?" Tags="&lt;culture&gt;&lt;financial&gt;" AnswerCount="20" CommentCount="8" FavoriteCount="7" />
  <row Id="6201" PostTypeId="2" ParentId="6177" CreationDate="2010-09-22T04:34:09.377" Score="2" ViewCount="" Body="&lt;p&gt;Since you wanted to expand your &quot;web programming&quot; knowledge, just do the tutorials of some of the most popular and/or capable web frameworks in use today:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rubyonrails.org/&quot; rel=&quot;nofollow&quot;&gt;Ruby on Rails&lt;/a&gt;, MVC patterned, dynamic/scripting language&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.djangoproject.com/&quot; rel=&quot;nofollow&quot;&gt;Django&lt;/a&gt;, MVC patterned, uses Python (similar paradigm as Ruby)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.seaside.st/about&quot; rel=&quot;nofollow&quot;&gt;Seaside&lt;/a&gt;, continuations-based framework, in Smalltalk (pure OO)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://liftweb.net/&quot; rel=&quot;nofollow&quot;&gt;Lift&lt;/a&gt;, inspired by Seaside, in Scala (OO + functional, JVM-based)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;For Javascript, be sure to read &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596517742&quot; rel=&quot;nofollow&quot;&gt;Javascript: The Good Parts&lt;/a&gt;, and look into &lt;a href=&quot;http://jquery.com/&quot; rel=&quot;nofollow&quot;&gt;jQuery&lt;/a&gt; for AJAX and as an abstraction layer over the nuisances of browsers.  HTML and CSS, just google it, and/or get &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596009879&quot; rel=&quot;nofollow&quot;&gt;Web Design in a Nutshell&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2026" LastEditorUserId="2026" LastEditorDisplayName="" LastEditDate="2010-09-22T04:41:50.807" LastActivityDate="2010-09-22T04:41:50.807" CommentCount="1" />
  <row Id="6202" PostTypeId="2" ParentId="6200" CreationDate="2010-09-22T04:56:26.383" Score="5" ViewCount="" Body="&lt;p&gt;The only way to get &quot;rich&quot; in programming is to apply some aspect of business, e.g. entrepreneurship. Plenty of programmers advance into higher level positions, often involving some kind of leadership or management. It's not a track to being rich but it can you can live very comfortably, especially with a good bit of savings and investment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: See Aaronaught's answer for a much more in depth explanation of the essence I was trying to get at.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastEditorUserId="1360" LastEditorDisplayName="" LastEditDate="2010-09-23T20:25:09.707" LastActivityDate="2010-09-23T20:25:09.707" CommunityOwnedDate="2011-02-02T16:52:00.060" />
  <row Id="6203" PostTypeId="2" ParentId="6200" CreationDate="2010-09-22T04:58:53.400" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I wouldn't say so much rich as well off.&lt;/strong&gt;  Good programmers are not a dime a dozen.&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-09-22T04:58:53.400" CommunityOwnedDate="2011-02-02T16:52:00.060" CommentCount="4" />
  <row Id="6204" PostTypeId="2" ParentId="6200" CreationDate="2010-09-22T05:00:33.053" Score="1" ViewCount="" Body="&lt;p&gt;what about the guys who did fb and all am sure they are also rich !&lt;/p&gt;&#xA;" OwnerUserId="1485" LastActivityDate="2010-09-22T05:00:33.053" CommunityOwnedDate="2011-02-02T16:52:00.060" />
  <row Id="6205" PostTypeId="2" ParentId="6200" CreationDate="2010-09-22T05:08:16.650" Score="36" ViewCount="" Body="&lt;p&gt;Programming is no different from any other profession in this regard, really.  You certainly can become 'well off' or 'comfortable' working as an employee.  But to really become wealthy you need some level of ownership over your work - either as an entrepreneur, a partner in a business, etc.  &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-22T05:08:16.650" CommunityOwnedDate="2011-02-02T16:52:00.060" CommentCount="2" />
  <row Id="6206" PostTypeId="2" ParentId="6067" CreationDate="2010-09-22T05:11:23.443" Score="-1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;FLEX&lt;/strong&gt; Really For good UI in the WEB&lt;/p&gt;&#xA;" OwnerUserId="3301" LastActivityDate="2010-09-22T05:11:23.443" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="3" />
  <row Id="6207" PostTypeId="2" ParentId="6200" CreationDate="2010-09-22T05:13:09.643" Score="15" ViewCount="" Body="&lt;p&gt;Chris Sawyer, who created the original &lt;a href=&quot;http://en.wikipedia.org/wiki/RollerCoaster_Tycoon&quot; rel=&quot;nofollow&quot;&gt;Roller Coaster Tycoon&lt;/a&gt; game, received $30 million in royalties from the game, and in 2005 was suing Atari for an additional $4.8 million according to this &lt;a href=&quot;http://www.gamasutra.com/php-bin/news_index.php?story=7111&quot; rel=&quot;nofollow&quot;&gt;article&lt;/a&gt;.  (He must have burned through the first 30 mil and needed some more spending money.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sawyer wrote RCT almost entirely in 80x86 assembly language, quite unusual for a game of such complexity.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-22T05:13:09.643" CommunityOwnedDate="2011-02-02T16:52:00.060" CommentCount="5" />
  <row Id="6209" PostTypeId="2" ParentId="6200" CreationDate="2010-09-22T05:39:33.273" Score="5" ViewCount="" Body="&lt;p&gt;John D. Carmack is a good example: &lt;a href=&quot;http://en.wikipedia.org/wiki/John_D._Carmack&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/John_D._Carmack&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A game developer too &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mention him because he is very rich and still code intensively in his company.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-09-22T12:47:40.177" LastActivityDate="2010-09-22T12:47:40.177" CommunityOwnedDate="2011-02-02T16:52:00.060" />
  <row Id="6210" PostTypeId="2" ParentId="2410" CreationDate="2010-09-22T05:43:42.077" Score="6" ViewCount="" Body="&lt;p&gt;Programming is like a &lt;strong&gt;box of chocolates&lt;/strong&gt;. Sometimes you find what you're looking for right away, but most of the time it takes a lot of trial and error. Sometimes you get coconut.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Traffic lights&lt;/strong&gt;. Cars are either moving or stopping. One traffic light is easy to imagine setting up, but what happens if you add another? How about a third? What about an entire city? A transit system is made up of thousands of stop lights, each one simple in and of itself, but when taken as a whole, it becomes a complex system. If one of those traffic lights malfunctions or is off by just a few seconds, it throws the whole system into chaos. If everything is in sync, you just enjoy the ride.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A &lt;strong&gt;motivational speaker&lt;/strong&gt; finds keys to unlock the puzzle of people's motivations, dreams, and ideas. Each situation, each person is different. What worked in the past may not be appropriate now. Sometimes a key can be reused, but needs to be adapted to the individual. Other times, the key must be fashioned anew. What is most rewarding is when the person has been unlocked and you see them go out and conquer the world. The most devastating is when you feel close, but just aren't able to unlock the potential.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A &lt;strong&gt;detective story&lt;/strong&gt;, where the detective slowly builds his case by searching for clues and gathering evidence. Methodical, smart, and accurate will win the day. Sloppy, ignorant, and lazy will doom the case. Eventually, the work will stand or fall before a jury of peers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A &lt;strong&gt;slot machine&lt;/strong&gt;. You put all your coins in and pull the lever. Sometimes you win big, sometimes you sit there for hours and nothing happens. Sometimes someone else just casually walks by, pulls the lever once, and wins the jackpot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Music&lt;/strong&gt;. One note is simple enough, but a measure is more complex. A complete song has many measures with many notes. If one note is off, it can ruin the entire performance. If every note is perfectly delivered, the performance fades into the background and only the music exists.&lt;/p&gt;&#xA;" OwnerUserId="73" LastEditorUserId="73" LastEditorDisplayName="" LastEditDate="2010-09-22T21:01:59.103" LastActivityDate="2010-09-22T21:01:59.103" CommunityOwnedDate="2011-03-03T17:06:14.173" CommentCount="1" />
  <row Id="6211" PostTypeId="2" ParentId="6200" CreationDate="2010-09-22T05:57:59.820" Score="55" ViewCount="" Body="&lt;p&gt;I have a wife and two kids, still healthy. My parents are both alive. I have a place to live and some great friends. Or do you mean the monetary variant?&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-22T05:57:59.820" CommunityOwnedDate="2011-02-02T16:52:00.060" CommentCount="5" />
  <row Id="6212" PostTypeId="2" ParentId="6053" CreationDate="2010-09-22T05:58:03.377" Score="0" ViewCount="" Body="&lt;p&gt;Most of the shortcuts mentioned here use KB , but its fun to try mouse gestures (certainly not on a dev machine you get bored later) ! I remember i had mouse gestures installed in my old laptop in a linux machine ! had most shortcuts just by drawing on my monitor ! i mean it s sort of also a show off thing :P&lt;/p&gt;&#xA;&#xA;&lt;p&gt;just draw a &#xA;circle - &gt; restart &#xA;g -&gt; google&#xA;etc .. &lt;/p&gt;&#xA;" OwnerUserId="1485" LastActivityDate="2010-09-22T05:58:03.377" />
  <row Id="6213" PostTypeId="2" ParentId="6200" CreationDate="2010-09-22T05:58:06.627" Score="2" ViewCount="" Body="&lt;p&gt;Yes. Some programmers have made themselves millionaires, mainly by writing a very useful piece of tech and getting themselves bought out.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-22T05:58:06.627" CommunityOwnedDate="2011-02-02T16:52:00.060" />
  <row Id="6215" PostTypeId="2" ParentId="6067" CreationDate="2010-09-22T06:03:51.540" Score="3" ViewCount="" Body="&lt;h2&gt;Cobol&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Cobol, just to know why people hate it so much.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-29T15:17:52.833" LastActivityDate="2010-09-29T15:17:52.833" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="3" />
  <row Id="6217" PostTypeId="2" ParentId="6053" CreationDate="2010-09-22T06:17:29.820" Score="0" ViewCount="" Body="&lt;p&gt;Saving my most frequently used websites to my bookmarks bar and deleting the title text, so only the favicon remains. Three rows of UI in Chrome: tabs, address bar, bookmarks bar with one-click access to about 30 websites. Should work for almost any browser.&lt;/p&gt;&#xA;" OwnerUserId="73" LastActivityDate="2010-09-22T06:17:29.820" />
  <row Id="6218" PostTypeId="2" ParentId="2815" CreationDate="2010-09-22T06:26:44.287" Score="4" ViewCount="" Body="&lt;p&gt;I've always wanted static interfaces for some reason.  Maybe it's just me.&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-22T06:26:44.287" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="3" />
  <row Id="6219" PostTypeId="2" ParentId="4384" CreationDate="2010-09-22T06:55:10.897" Score="2" ViewCount="" Body="&lt;p&gt;One of my first programming tasks was to write a CAD file parser and renderer so our app could display drawings of our products to the user (and also print them). The CAD drawings happened to be storred in a text-based plotter format called HPGL-1.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My initial attempt was slow, but tolerable. I realized that most of the time was spent in the parser. To speed things up, I developed a simple binary file format that mirrored the functionality of the HPGL-1 format, and converted all the CAD files over to it. This allowed the parser to be simplified substantially. Result: instantaneous rendering. Also, the files took only a small fraction of the original space required.&lt;/p&gt;&#xA;" OwnerUserId="2818" LastActivityDate="2010-09-22T06:55:10.897" />
  <row Id="6220" PostTypeId="2" ParentId="4384" CreationDate="2010-09-22T07:00:49.553" Score="5" ViewCount="" Body="&lt;p&gt;For a Stanford contest, I wrote an AI-vs-AI game of Pong ... without using variables.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead, I had to use C-like syntax to control a finite automaton that could travel to any pixel on the screen and either read its color or paint it a different color.  I used imperceptably different shades of black and green to represent the different kinds of things on the screen (ball, paddles, boundary wall, and score numbers) and to encode information such as the speed and direction the ball was traveling.&lt;/p&gt;&#xA;" OwnerUserId="3305" LastEditorUserId="3305" LastEditorDisplayName="" LastEditDate="2010-09-22T07:08:15.517" LastActivityDate="2010-09-22T07:08:15.517" CommentCount="2" />
  <row Id="6221" PostTypeId="2" ParentId="279" CreationDate="2010-09-22T07:09:03.523" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Green_threads&quot; rel=&quot;nofollow&quot;&gt;Green threads&lt;/a&gt;&lt;/strong&gt; so it can do concurrency on par with Erlang.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-22T07:09:03.523" CommunityOwnedDate="2011-05-10T09:21:11.253" CommentCount="5" />
  <row Id="6222" PostTypeId="2" ParentId="2815" CreationDate="2010-09-22T07:18:22.780" Score="7" ViewCount="" Body="&lt;p&gt;The ability to write a &lt;code&gt;ToString()&lt;/code&gt; extension method for &lt;code&gt;enum&lt;/code&gt;s.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I can do something like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public enum AmazingEnum&#xA;{&#xA;    amazingValue = 0&#xA;   ,reallyAmazingValue&#xA;   ,unbelievablyAmazingValue&#xA;}&#xA;&#xA;public static class AmazingEnumExtension&#xA;{&#xA;    public static string ToString(this AmazingEnum amazingEnum)&#xA;    {&#xA;        switch(amazingEnum)&#xA;        {&#xA;         case AmazingEnum.amazingValue:&#xA;              return &quot;This is amazing!&quot;;&#xA;         case AmazingEnum.reallyAmazingValue:&#xA;              return &quot;This is REALLY amazing!&quot;;&#xA;         case AmazingEnum.unbelievablyAmazingValue:&#xA;              return &quot;This is UNBELIEVABLY amazing!&quot;;&#xA;        }&#xA;&#xA;        throw new ArgumentException(&quot;This is an invalid AmazingEnum&quot;, &quot;amazingEnum&quot;);&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and call it like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;string value = AmazingEnum.amazingValue.ToString();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;As things work at the moment, the &lt;code&gt;ToString()&lt;/code&gt; of &lt;code&gt;System.Enum&lt;/code&gt; gets called due to how override resolution works.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastEditorUserId="1069" LastEditorDisplayName="" LastEditDate="2010-09-22T11:13:02.207" LastActivityDate="2010-09-22T11:13:02.207" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="13" />
  <row Id="6223" PostTypeId="2" ParentId="2815" CreationDate="2010-09-22T07:19:53.823" Score="-1" ViewCount="" Body="&lt;p&gt;Remove &lt;code&gt;static&lt;/code&gt; entirely, and replace with &lt;code&gt;pure&lt;/code&gt; for methods and &lt;code&gt;threadlocal&lt;/code&gt; for fields. Any data to be shared between threads should be passed as immutable data.&lt;/p&gt;&#xA;" OwnerUserId="356" LastEditorUserId="356" LastEditorDisplayName="" LastEditDate="2010-09-22T12:36:29.640" LastActivityDate="2010-09-22T12:36:29.640" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="3" />
  <row Id="6225" PostTypeId="2" ParentId="4384" CreationDate="2010-09-22T07:25:32.537" Score="2" ViewCount="" Body="&lt;p&gt;Debugging cross language issues is bad at the best of times.&#xA;But if you don't have a debugger its harder.&#xA;If you can't build the binary, aren't allowed to have the binary, and only have access to a small part of the source code its worse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That happened to me when developing some binary output code for some clearance controlled FORTRAN77 code. The output had to be in C as the version of FORTRAN used didn't have any binary output functions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The FORTRAN was old and huge (I believe over 1M lines), not too many GOTOs, but heaps of globals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd take my C and FORTRAN mishmash to my supervisor and he'd compile it and it'd usually crash .... eventually got it working, but it was pain I'd never want to repeat.&lt;/p&gt;&#xA;" OwnerUserId="3307" LastActivityDate="2010-09-22T07:25:32.537" />
  <row Id="6226" PostTypeId="2" ParentId="2815" CreationDate="2010-09-22T07:33:10.100" Score="-1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Improved support for defining local helper functions. Anonymous methods bring disproportionate runtime + code-size overhead, can't be generic, and recursive anonymous methods are very clumsy.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Support for a generic type parameter constraint specifying constructor signature(s).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Support for a generic type parameter constraint specifying method/property signature(s).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Nullability should be handled consistently across reference and value types and disabled by default. &quot;nullable string&quot; and &quot;string&quot; should not be represented by the same type. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A module system like SML's. The closest things C# has to approximating this are generics + interfaces and neither can unify multiple implementations of a set of related types and functions.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Allow a default value to be specified for automatically generated property getters/setters&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Convenience features stolen from functional languages: pattern matching expression, let..in expression, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Extension properties, extension constructors.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="12" LastActivityDate="2010-09-22T07:33:10.100" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="3" />
  <row Id="6227" PostTypeId="2" ParentId="5921" CreationDate="2010-09-22T07:34:57.657" Score="0" ViewCount="" Body="&lt;p&gt;I had a problem with my shoulder blades..They use to pain like hell..But now i am following few little steps to overcome this,&#xA;Take small breaks in between the work and&#xA;Stretch your hands and make circles clock-wise and anti clockwise for about 20 times. That really worked for me. At the end of it take a deep breath.&#xA;We need to keep our eyes as well safe, look at a distant object in between to reduce the strain.&lt;/p&gt;&#xA;" OwnerUserId="3304" LastActivityDate="2010-09-22T07:34:57.657" CommunityOwnedDate="2011-03-26T13:37:08.243" />
  <row Id="6228" PostTypeId="2" ParentId="6157" CreationDate="2010-09-22T07:53:23.433" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Documentation storage&lt;/strong&gt;&lt;br /&gt;&#xA;By that I don't mean a place where you can store automatically generated documentation (i.e. from Doxygen).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always find that I need a supplemental place where to store the high-level documents for each project, i.e. requirements, architecture, application wireframes, UAT test case documents, agreements, etc. This can usually be a private &lt;strong&gt;wiki&lt;/strong&gt; instance, but I've seen the likes of Team-Rooms in Lotus Notes being abused for it (with mixed results).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So every programmer should know how to use these effectively.&lt;/p&gt;&#xA;" OwnerUserId="1117" LastActivityDate="2010-09-22T07:53:23.433" />
  <row Id="6229" PostTypeId="2" ParentId="6157" CreationDate="2010-09-22T08:05:27.420" Score="3" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.gimp.org/&quot; rel=&quot;nofollow&quot;&gt;Gimp&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;A good image manipulation tool can do wonders, not just with websites, but with documents and screenshots.  However knowing a tool like Gimp is like truly knowing a very complicated text editor (thing vim / emacs) and should not be undertaken lightly.  &lt;/p&gt;&#xA;" OwnerUserId="2926" LastActivityDate="2010-09-22T08:05:27.420" CommentCount="5" />
  <row Id="6230" PostTypeId="2" ParentId="6166" CreationDate="2010-09-22T08:09:52.860" Score="26" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It has ruined my ability to enjoy technology in fiction.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can suspend my disbelief whilst the hero of the [book / film / drama] can withstand numerous karate kicks, fire an infinite number of bullets, leap across a 50ft gap between two buildings, fall from a great height onto a pile of conveniently stacked boxes etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What makes me shout at the screen in disbelief is when the hero then steps up to a computer, and: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;performs a search with some application that has more apparent power than google.&lt;/li&gt;&#xA;&lt;li&gt;hacks into a supposedly secure system with a few key presses and a wink.&lt;/li&gt;&#xA;&lt;li&gt;copies the entire hard disk to a memory stick in a matter of seconds with a convenient &quot;% complete&quot; window (which just happens to work with the operating system of the computer he's copying)&lt;/li&gt;&#xA;&lt;li&gt;does anything that involves zooming an image from a CCTV camera to get a high resolution print out of the suspects face.  AAAARHG!!!!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2397" LastEditorUserId="2397" LastEditorDisplayName="" LastEditDate="2010-09-22T09:08:02.193" LastActivityDate="2010-09-22T09:08:02.193" CommentCount="9" />
  <row Id="6233" PostTypeId="2" ParentId="6067" CreationDate="2010-09-22T08:38:26.843" Score="1" ViewCount="" Body="&lt;h2&gt;C#&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;is next on my list, although I'm still getting to grips with &lt;strong&gt;Python&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1698" LastActivityDate="2010-09-22T08:38:26.843" CommunityOwnedDate="2010-09-22T08:38:26.843" CommentCount="4" />
  <row Id="6234" PostTypeId="2" ParentId="6166" CreationDate="2010-09-22T08:40:58.763" Score="0" ViewCount="" Body="&lt;p&gt;Maybe it has. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But there is hope in the next generation. My youngest really likes to take things apart and create new machines with the parts he took. Reminds me of me, way back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I still like wondering how things work. I resolve to mind experiments and sometimes, when the screws are to tight, I gladly help him, taking things apart.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-22T08:40:58.763" />
  <row Id="6236" PostTypeId="2" ParentId="5770" CreationDate="2010-09-22T09:10:56.077" Score="4" ViewCount="" Body="&lt;p&gt;In university for microcomputer lab we used a similar device (see the image) for programming. It only had 6-digit hexadecimal display. We were directly entering hex codes to memory, using the keypad. The whole process was very painful, in 2 hours we had to make the assignment work. In every class only a couple of teams succeeded.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/NnaFe.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1517" LastActivityDate="2010-09-22T09:10:56.077" />
  <row Id="6239" PostTypeId="2" ParentId="6067" CreationDate="2010-09-22T09:23:37.717" Score="-1" ViewCount="" Body="&lt;p&gt;OpenCV&#xA;Python Python has been on my TODO list for long. :)&lt;/p&gt;&#xA;" OwnerUserId="3319" LastActivityDate="2010-09-22T09:23:37.717" CommunityOwnedDate="2010-09-22T09:23:37.717" CommentCount="1" />
  <row Id="6241" PostTypeId="2" ParentId="6067" CreationDate="2010-09-22T09:37:36.827" Score="-1" ViewCount="" Body="&lt;p&gt;Its Ruby for me, I'm a bit sold on the hype, want to see for myself what its like, then maybe Java for Android development&lt;/p&gt;&#xA;" OwnerUserId="3242" LastActivityDate="2010-09-22T09:37:36.827" CommunityOwnedDate="2010-09-22T09:37:36.827" CommentCount="1" />
  <row Id="6243" PostTypeId="2" ParentId="1599" CreationDate="2010-09-22T10:07:03.330" Score="4" ViewCount="" Body="&lt;p&gt;Googling &lt;em&gt;everything&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-09-22T10:07:03.330" CommunityOwnedDate="2010-09-22T10:07:03.330" CommentCount="1" />
  <row Id="6244" PostTypeId="2" ParentId="2204" CreationDate="2010-09-22T10:12:30.503" Score="0" ViewCount="" Body="&lt;p&gt;Indentation is really a think to fight, indeed.&#xA;What I learned to do is to divide the method into pieces first, then use a weird trick to skip every following pieces if one piece failed.&#xA;Here is an example :&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of : &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; {if (networkCardIsOn() == true)&#xA;     {if (PingToServer() == true)&#xA;        {if (AccesLogin(login,pass) == true)&#xA;             {if (nextCondition == true)&#xA;                ...&#xA;         }&#xA;     }&#xA; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I currently write :&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; {vbContinue = true;&#xA;&#xA; if (vbContinue) {&#xA;       vbContinue = networkCardIsOn();&#xA;       if (vbContinue == false) {&#xA;             code to Handle This Error();&#xA;       } &#xA; }&#xA;&#xA; if (vbContinue) {&#xA;       vbContinue = PingToServer();&#xA;       if (vbContinue == false) {&#xA;             code to HandleThisError2();&#xA;       } &#xA; }&#xA;&#xA; if (vbContinue) {&#xA;       vbContinue = AccesLogin(login,pass);&#xA;      if (vbContinue == false) {&#xA;             HandleThisErrorToo();&#xA;       } &#xA; }&#xA; ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This has seem strange to me at a first, but since I use this, the maintenance cost has been divided by half, and my brain is cooler at the end of the day. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, the gain introduced by this &quot;technique&quot; is that the code complexity is really divided because the code is less dense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While reading the code, you don't have to remember anything about the past conditions : if your are at that point X in the code, the previous steps are passed and have succeeded.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another gain is that &quot;escape path and condition&quot; from all those nested &quot;if-else&quot; is simplified.&lt;/p&gt;&#xA;" OwnerUserId="133" LastEditorUserId="133" LastEditorDisplayName="" LastEditDate="2010-09-22T10:36:58.300" LastActivityDate="2010-09-22T10:36:58.300" CommentCount="6" />
  <row Id="6245" PostTypeId="2" ParentId="6067" CreationDate="2010-09-22T10:28:37.867" Score="-2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Ong&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its a little language I'm writing myself when I get a spare moment.&lt;/p&gt;&#xA;" OwnerUserId="1724" LastActivityDate="2010-09-22T10:28:37.867" CommunityOwnedDate="2010-09-22T10:28:37.867" CommentCount="3" />
  <row Id="6246" PostTypeId="1" AcceptedAnswerId="6261" CreationDate="2010-09-22T10:38:31.870" Score="26" ViewCount="592" Body="&lt;p&gt;Most software developers want to keep application logic in the application layer, and it probably feels natural for us to keep it here. Database developers seem to want to put application logic in the database layer, as triggers and stored procedures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I would prefer to keep as much as possible in the application layer to make it easier to debug and keep the responsibilities of the layers separate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your thoughts on this, and what should or should not be ok to implement in the database layer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt; This question is also covered on &lt;a href=&quot;http://dba.stackexchange.com/questions/2450/what-are-the-arguments-against-or-for-putting-application-logic-in-the-database-l&quot;&gt;dba.se&lt;/a&gt;, from the DBAs perspective. As programmers.se &amp;amp; dba.se have different audiences and biases, future readers might want to review both sets of answers before deciding what works best for them.&lt;/p&gt;&#xA;" OwnerUserId="1020" LastEditorUserId="21297" LastEditorDisplayName="" LastEditDate="2011-05-01T21:37:01.250" LastActivityDate="2011-05-02T07:00:32.347" Title="What are the arguments against or for putting application logic in the database layer?" Tags="&lt;database-development&gt;" AnswerCount="10" CommentCount="3" FavoriteCount="3" />
  <row Id="6247" PostTypeId="2" ParentId="6200" CreationDate="2010-09-22T10:45:15.100" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Larry_Ellison&quot; rel=&quot;nofollow&quot;&gt;Larry Ellison, of Oracle&lt;/a&gt;, one of the richest men in the world, in view of personal wealth; activelly programmed at the beginning of his career.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-09-22T12:54:22.193" LastActivityDate="2010-09-22T12:54:22.193" CommunityOwnedDate="2011-02-02T16:52:00.060" />
  <row Id="6248" PostTypeId="2" ParentId="6067" CreationDate="2010-09-22T10:49:15.563" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://force7.de/nimrod/&quot; rel=&quot;nofollow&quot; title=&quot;Nimrod&quot;&gt;Nimrod&lt;/a&gt; is a language I have been very impressed by. In particular, the Macros which remind me of LISP, and yet it maintains C-like performance. Coming from a Delphi/C/LISP background it took the best of all three and blended them nicely. Unfortunately, the language although functional is still very immature (which is part of why I'm mentionning here hint hint ;) )&lt;/p&gt;&#xA;" OwnerUserId="3324" LastActivityDate="2010-09-22T10:49:15.563" CommunityOwnedDate="2010-09-22T10:49:15.563" CommentCount="1" />
  <row Id="6249" PostTypeId="2" ParentId="2815" CreationDate="2010-09-22T10:49:23.803" Score="4" ViewCount="" Body="&lt;p&gt;I want to be able to have lambda expressions in custom attributes. For example...&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;[SomeAttribute(p =&amp;gt; some_code(p))]&#xA;public string SomeField;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;For reasonable flexibility, custom attributes should be able to be generic, so that the lambda expression can be properly typed:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;[SomeAttribute&amp;lt;string&amp;gt;(str =&amp;gt; some_code(str))]&#xA;public string SomeField;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This should be pretty simple to implement in the CLR and the C# compiler, too. Just turn the lambda expression into a static method on a special compiler-generated static type that contains all these methods for all those lambda expressions in custom attributes. Then compile the custom attribute data to one that contains the metadata token for that method. The CLR would recognise that the parameter is of a delegate type and automatically turn the metadata token into a delegate by calling &lt;code&gt;Delegate.CreateDelegate()&lt;/code&gt; when the custom attribute is requested.&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-22T10:49:23.803" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="4" />
  <row Id="6250" PostTypeId="2" ParentId="2815" CreationDate="2010-09-22T10:51:27.027" Score="5" ViewCount="" Body="&lt;p&gt;I would implement &lt;strong&gt;&lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2009/08/24/iterator-blocks-part-seven-why-no-anonymous-iterators.aspx&quot; rel=&quot;nofollow&quot;&gt;anonymous iterators&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-22T10:51:27.027" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="7" />
  <row Id="6251" PostTypeId="2" ParentId="2815" CreationDate="2010-09-22T10:55:42.853" Score="6" ViewCount="" Body="&lt;p&gt;I would have designed &lt;code&gt;out&lt;/code&gt; and &lt;code&gt;ref&lt;/code&gt; parameters properly, not the hack that C# has now. In particular:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;code&gt;out&lt;/code&gt; should have been implemented just like the return value: the value should be copied into the &lt;code&gt;out&lt;/code&gt; location when the method returns.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Inside the method body, assignments to an &lt;code&gt;out&lt;/code&gt; parameter within the method should not modify a storage location outside the method (which was passed in by reference).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;code&gt;ref&lt;/code&gt; should have been implemented in such a way that it would be functionally equivalent to having two parameters: one &lt;em&gt;in&lt;/em&gt; and one &lt;em&gt;out&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;This would enable &lt;code&gt;out&lt;/code&gt; parameters to be &lt;em&gt;contravariant&lt;/em&gt; just like the return type, and just like &lt;em&gt;in&lt;/em&gt; parameters are &lt;em&gt;covariant&lt;/em&gt;. Only &lt;code&gt;ref&lt;/code&gt; would need to be invariant.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-22T10:55:42.853" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="2" />
  <row Id="6252" PostTypeId="2" ParentId="2815" CreationDate="2010-09-22T10:57:21.913" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Virtual methods&lt;/strong&gt; could have been a lot more flexible. A derived type should be able to make a virtual method more general. In particular:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;A virtual-method override should be able to specify a more general parameter type (a base class or an interface).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A virtual-method override should be able to specify a more specific return type (a subclass).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A virtual-method override should be able to loosen the constraints on its generic type parameters.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A virtual-method override should be able to broaden the accessibility modifier.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;None of these would cause any trouble with compile-time type safety, nor any accessibility loopholes.&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-22T10:57:21.913" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="5" />
  <row Id="6253" PostTypeId="2" ParentId="2815" CreationDate="2010-09-22T11:02:21.717" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.valuetype.aspx&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;System.ValueType&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.enum.aspx&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;System.Enum&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.delegate.aspx&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;System.Delegate&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt; would be a lot more useful if they worked everywhere where you can reasonably expect them to work. Currently they do not work:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;as generic type parameter constraints. (Why? This is quite mysterious. &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/bb335710.aspx&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;System.Linq.Expressions.Expression&amp;lt;T&amp;gt;&lt;/code&gt;&lt;/a&gt; would benefit from having a Delegate constraint!)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;as parameter types on custom attributes. (Admittedly, &lt;code&gt;Delegate&lt;/code&gt; would only make sense here if you could also specify a reference to a static method when using the custom attribute, but certainly &lt;a href=&quot;https://connect.microsoft.com/VisualStudio/feedback/details/507907&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;System.ValueType&lt;/code&gt; and &lt;code&gt;System.Enum&lt;/code&gt; should work?!&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-22T11:02:21.717" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="1" />
  <row Id="6255" PostTypeId="1" CreationDate="2010-09-22T11:05:51.023" Score="15" ViewCount="490" Body="&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000069.html&quot; rel=&quot;nofollow&quot;&gt;Joel Spolsky&lt;/a&gt; said in one of his famous posts:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The single worst strategic mistake&#xA;  that any software company can make: &#xA;  rewrite the code from scratch.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://chadfowler.com/2006/12/27/the-big-rewrite&quot; rel=&quot;nofollow&quot;&gt;Chad Fowler&lt;/a&gt; wrote:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;You’ve seen the videos, the weblog&#xA;  posts and the hype, and you’ve decided&#xA;  you’re going to re-implement your&#xA;  product in Rails (or Java, or .NET, or&#xA;  Erlang, etc.).&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Beware. This is a longer, harder, more&#xA;  failure-prone path than you expect.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Have you ever been involved in a BIG Rewrite?&lt;br&gt;&#xA;I'm interested in your experience about this tragic topic, and in particular, in any big rewrite that was completed succesfully (if any).&lt;/p&gt;&#xA;" OwnerUserId="74" LastActivityDate="2011-04-06T12:30:43.947" Title="Have you ever been involved in a BIG Rewrite?" Tags="&lt;jobs&gt;&lt;experience&gt;&lt;history&gt;" AnswerCount="13" CommentCount="3" FavoriteCount="5" />
  <row Id="6256" PostTypeId="2" ParentId="6190" CreationDate="2010-09-22T11:08:52.890" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Services&lt;/strong&gt; are either used for administrative purposes or to offer a service to multiple applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Schedules&lt;/strong&gt; are used for running a task multiple times which don't necessarily require extra permissions.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-22T11:08:52.890" />
  <row Id="6259" PostTypeId="2" ParentId="6255" CreationDate="2010-09-22T11:29:16.927" Score="2" ViewCount="" Body="&lt;p&gt;A company I worked for started a major refactor of the codebase.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Half the team was set to work on the refactor, and the other half continuing to maintain and improve the existing product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you can imagine, the refactor never really came to a point where anything worked - it was just a constant on-going process that didn't really ever have anything to show for itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea was that the refactored codebase would be better to work with and we could just &quot;drop in&quot; in the new features the team had added to the existing product afterit was done, and &quot;catch up&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it ended up being the company's downfall.&lt;/p&gt;&#xA;" OwnerUserId="1732" LastActivityDate="2010-09-22T11:29:16.927" />
  <row Id="6260" PostTypeId="2" ParentId="2066" CreationDate="2010-09-22T11:29:19.197" Score="0" ViewCount="" Body="&lt;p&gt;Throw a stress ball at them and tell them to knock it off.&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-22T11:29:19.197" />
  <row Id="6261" PostTypeId="2" ParentId="6246" CreationDate="2010-09-22T11:32:57.927" Score="19" ViewCount="" Body="&lt;p&gt;Off the top of my head, &lt;strong&gt;advantages&lt;/strong&gt; of putting logic in the application layer.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Testability&lt;/strong&gt;.  This should be a good enough reason on it's own actually.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Better code structure&lt;/strong&gt;.  It's very difficult to follow proper OO-architecture with SQL.  This usually also makes the code easier to maintain.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Easier to code&lt;/strong&gt;.  Due to all the different language features available in whatever language you're using it's usually easier to code in the application layer.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Code re-use&lt;/strong&gt;.  It's a whole lot easier to share code with libraries than sharing code in the database.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-22T11:32:57.927" CommentCount="4" />
  <row Id="6262" PostTypeId="2" ParentId="2815" CreationDate="2010-09-22T11:47:14.467" Score="0" ViewCount="" Body="&lt;p&gt;i'd have preferred if LINQ to SQL is compatible with the others database types (Oracle,MySQL,PostgreSQL...)&lt;/p&gt;&#xA;" OwnerUserId="2380" LastActivityDate="2010-09-22T11:47:14.467" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="3" />
  <row Id="6263" PostTypeId="2" ParentId="6246" CreationDate="2010-09-22T11:49:37.517" Score="7" ViewCount="" Body="&lt;p&gt;While it is possible to use version control with stored procedures, it's not as straight forward as it is with application code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My default position is that logic should be kept out of the database layer, however, if there is something that would be more efficient implemented in the database then that's the way to go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You must make sure you can track changes to this code.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-22T11:49:37.517" CommentCount="4" />
  <row Id="6264" PostTypeId="2" ParentId="6255" CreationDate="2010-09-22T11:51:27.313" Score="6" ViewCount="" Body="&lt;p&gt;I've been involved with several rewrites that were from VB6 to .NET.  In 2 cases the rewrites went smoothly and we were actually finished ahead of schedule.  The other rewrite did take longer than expected but completed without any major issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In our particular case rewritting was NOT the worst decision that our company could make.  The end results were actually much more stable than the originals and put us in a much better place.  &lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-22T11:51:27.313" CommentCount="2" />
  <row Id="6266" PostTypeId="2" ParentId="6190" CreationDate="2010-09-22T11:55:46.367" Score="0" ViewCount="" Body="&lt;p&gt;why don't you try Quartz.net&lt;br/&gt;i used it once and i can say it's a powerful framework to create you own scheduler, and it provide a pre builded Service that will run your scheduled Job's (stored in database or just in a XML file)&#xA;&lt;a href=&quot;http://quartznet.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;http://quartznet.sourceforge.net/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2380" LastActivityDate="2010-09-22T11:55:46.367" CommentCount="1" />
  <row Id="6268" PostTypeId="1" AcceptedAnswerId="6303" CreationDate="2010-09-22T11:56:33.353" Score="34" ViewCount="970" Body="&lt;p&gt;Just read the &lt;a href=&quot;http://programmers.stackexchange.com/questions/6255/have-you-ever-been-involved-in-a-big-rewrite&quot;&gt;question about the Big Rewrites&lt;/a&gt; and I remembered a question that I've been wanting answered myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a horrible project passed down to me, written in old Java, using Struts 1.0, tables with inconsistent relationships, or no relationships at all and even tables without primary keys or fields meant to be primary keys but aren't unique at all. Somehow most of the app &quot;just works&quot;. Most of the pages are reused (copy pasted code) and hard-coded. Everyone who's ever worked on the project has cursed it in one form or the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I had long considered to propose to upper management a total rewrite of this horrendous application.  I'm slowly attempting to on personal time but I really feel that this deserves some dedicated resources to make it happen. Having read the articles on big rewrites I'm having second thoughts. And that's not good when I want to convince my superiors to support my rewrite. (I work in a fairly small company so the proposal has the possibility of being approved)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TL;DR&#xA;When is a big rewrite the answer and what arguments can you use to support it?&lt;/p&gt;&#xA;" OwnerUserId="1668" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2011-04-02T17:06:12.387" LastActivityDate="2011-04-06T10:53:33.177" Title="When is a BIG Rewrite the answer?" Tags="&lt;experience&gt;" AnswerCount="10" CommentCount="4" FavoriteCount="12" />
  <row Id="6269" PostTypeId="2" ParentId="6166" CreationDate="2010-09-22T11:56:59.720" Score="6" ViewCount="" Body="&lt;p&gt;I’m less excited by mediocre technology now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I think I’m more impressed by and excited about the great stuff, because I know how hard it is to make great stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I’m excited that I can be involved in making great stuff — that’s a much more lasting and fulfilling kind of excitement than the thrill of something new and shiny when I was young.&lt;/p&gt;&#xA;" OwnerUserId="3329" LastActivityDate="2010-09-22T11:56:59.720" CommentCount="2" />
  <row Id="6270" PostTypeId="2" ParentId="6246" CreationDate="2010-09-22T12:01:12.223" Score="6" ViewCount="" Body="&lt;p&gt;In one company where I worked there was a lot of red tape involved with releasing code to production and involving a DBA for a code release was always a nightmare.  We always put the logic in the application layer to eliminate having to deal with DBA's that were hard to work with.  It's a totally lame reason but one derived from out of necessity.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-22T12:01:12.223" CommentCount="7" />
  <row Id="6271" PostTypeId="2" ParentId="696" CreationDate="2010-09-22T12:04:51.277" Score="2" ViewCount="" Body="&lt;p&gt;I like that PHP doesn't try to hide how the www/http works. You link to pages with query strings and use &lt;code&gt;$_GET&lt;/code&gt; or submit a form and use &lt;code&gt;$_POST&lt;/code&gt;. Furthermore, the front-end output is basically what you decide it to be and it doesn't shove in some god-awful form covering the entire page. This is true for PHP frameworks as well, as opposed to some other languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really like PHP's associative arrays, and the fact you can build them on the fly and add stuff to them. However, I find the output syntax a little verbose. &lt;code&gt;&amp;lt;?=$var['abc']?&amp;gt;&lt;/code&gt; doesn't look as good as &lt;code&gt;&amp;lt;?=$var-&amp;gt;abc?&amp;gt;&lt;/code&gt; (when syntax highlighted at least) and it's more difficult to build objects (particularly sub-objects) on the fly without warnings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The huge number of built in functions and documentation is great as others have mentioned. I would much prefer native objects though: &lt;code&gt;$array-&amp;gt;contains($var)&lt;/code&gt; would be so much better than trying to remember in which order I should put the arguments to &lt;code&gt;in_array&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="456" LastActivityDate="2010-09-22T12:04:51.277" />
  <row Id="6272" PostTypeId="2" ParentId="6268" CreationDate="2010-09-22T12:09:21.940" Score="19" ViewCount="" Body="&lt;p&gt;I have participated in two big rewrites. First was a small project. The second was the main product of a software company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are several pitfalls:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;rewrites always take longer than expected.&lt;/li&gt;&#xA;&lt;li&gt;rewrites have no direct effects/benefits for the customer.&lt;/li&gt;&#xA;&lt;li&gt;capacity devoted to rewriting isn't used to support the customer.&lt;/li&gt;&#xA;&lt;li&gt;you wil lose functionality with a rewrite unless you have 100% documentation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Rewrites are seldom the real answer. You can refactor much of the code without losing anything and without a lot of the risk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rewrites can be the answer if:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;you are switching to another language or platform.&lt;/li&gt;&#xA;&lt;li&gt;you are switching frameworks/external components.&lt;/li&gt;&#xA;&lt;li&gt;the existing codebase is not maintainable anymore.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But I strongly advise the slow approach using refactoring. It's less risky and you keep your customers happy.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-04-03T19:20:18.890" LastActivityDate="2011-04-03T19:20:18.890" CommentCount="4" />
  <row Id="6273" PostTypeId="2" ParentId="6190" CreationDate="2010-09-22T12:09:26.263" Score="3" ViewCount="" Body="&lt;p&gt;I've heard the arguments for using Windows Scheduler but have always opted for writting my app as a service.  At first I thought it would be a better solution in a clustered environment but that's not really true.  The bottom line is I didn't have a good reason other than it &quot;felt&quot; like better design.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-22T12:09:26.263" />
  <row Id="6274" PostTypeId="2" ParentId="696" CreationDate="2010-09-22T12:12:05.210" Score="0" ViewCount="" Body="&lt;p&gt;If your previous experience was with classic ASP, PHP is heaven.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, I'm not doing much web work for a living. No experience with ASP.Net. Missing time exception.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-22T12:12:05.210" />
  <row Id="6275" PostTypeId="1" AcceptedAnswerId="6314" CreationDate="2010-09-22T12:14:45.170" Score="9" ViewCount="226" Body="&lt;p&gt;To be clear, this question is what you think might be added in C# 5, not what you would like to be added.&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-22T16:59:31.673" LastActivityDate="2010-09-22T16:59:31.673" Title="What do you think will be added in C# 5?" Tags="&lt;c#&gt;&lt;prediction&gt;&lt;language-features&gt;&lt;wish-list&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="1" />
  <row Id="6276" PostTypeId="2" ParentId="6268" CreationDate="2010-09-22T12:18:30.300" Score="2" ViewCount="" Body="&lt;p&gt;I had a case very similar to yours only the code wasn't even using Struts.  What I did instead was target areas that were particularly crappy AND causing a lot of problems.  This targeted approach got us incrementally better.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over a 2 year period we worked on refactoring bits and pieces alongside enhancement work.  We always worked a 'Hardening' task into a project plan.  By focusing on the specific areas that didn't work well we got the most bang for the buck. The stuff that worked we left alone.  Also critical is that this work was done in the course of normal development and was released.  The problem with a big rewrite it you go off for a year or more and then by the time you come back every things changed anyway and some of the nasty bugs got smoothed over and you lost your ROI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We never did re-write the whole thing.  We did stop using that platform for new work though, and pitched a new fresh platform for a big new project.  That got approved and we delivered a great product in a reasonable amount of time.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-09-22T12:18:30.300" CommentCount="1" />
  <row Id="6277" PostTypeId="2" ParentId="6268" CreationDate="2010-09-22T12:19:22.903" Score="12" ViewCount="" Body="&lt;p&gt;It's time for a rewrite when:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The cost of rewriting the application + maintaining the rewritten application is less than the cost of maintaining the current system over time.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some factors that make maintaining the current one more expensive:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The language is so old you have to pay people that know it a lot of money to program in it (COBOL).&lt;/li&gt;&#xA;&lt;li&gt;(from experience, unfortunately) The system is on a hardware architecture that is so old that they have to scour Ebay and COLLECT parts to add to the machine it is running on because they aren't made anymore.  This is called &quot;hardware life support&quot; and is expensive because as parts become more scarce, they (may) go up in price or they (absolutely) will eventually run out.&lt;/li&gt;&#xA;&lt;li&gt;It has become so complex that the &lt;code&gt;//Here be dragons.&lt;/code&gt; comment is all over your code.&lt;/li&gt;&#xA;&lt;li&gt;You can't write any other projects and add new value to the company because you're always patching this ugly beast.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-09-22T13:47:15.800" LastActivityDate="2010-09-22T13:47:15.800" CommentCount="6" />
  <row Id="6278" PostTypeId="2" ParentId="6268" CreationDate="2010-09-22T12:21:28.063" Score="1" ViewCount="" Body="&lt;p&gt;According to Joel, big rewrites are the &lt;strong&gt;single worst strategic mistake&lt;/strong&gt; a company can make:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000069.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/fog0000000069.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3287" LastActivityDate="2010-09-22T12:21:28.063" CommentCount="4" />
  <row Id="6279" PostTypeId="2" ParentId="6157" CreationDate="2010-09-22T12:31:58.463" Score="2" ViewCount="" Body="&lt;p&gt;My vote is for the combination of &lt;em&gt;emacs&lt;/em&gt; and &lt;em&gt;git&lt;/em&gt;. Emacs to write and document your code; git to back it up and document the rationale behind your code decisions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a student's perspective: They have both been essential in my education ever since I learned them both. Providing rationales with commits in git has been very helpful to me when writing code because it forced me to really think about the code I just wrote and was about to commit. Describing your design decisions will also help you become better at communicating your rationales to others in a team later on when you start working.&lt;/p&gt;&#xA;" OwnerUserId="3336" LastActivityDate="2010-09-22T12:31:58.463" />
  <row Id="6280" PostTypeId="2" ParentId="2815" CreationDate="2010-09-22T12:37:11.933" Score="24" ViewCount="" Body="&lt;p&gt;Allow default value setting in auto-properties, and the addition of the &lt;code&gt;readonly&lt;/code&gt; keyword. eg &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public int MyProperty { get; private readonly set = 100; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="356" LastActivityDate="2010-09-22T12:37:11.933" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="1" />
  <row Id="6281" PostTypeId="2" ParentId="2815" CreationDate="2010-09-22T12:41:23.147" Score="5" ViewCount="" Body="&lt;p&gt;Introduce an abstract/interface .ctor, which would require derived types to implement a .ctor with matching arguments. This would solve the limitations of the &lt;code&gt;new()&lt;/code&gt; constraint in generics. I'd also make the constructor named &lt;code&gt;this&lt;/code&gt;, or &lt;code&gt;self&lt;/code&gt; for consistency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition, constructors could be made virtual to mean they are replicated in subclasses (unless overridden). So that you don't need to bother manually adding those constructors who just pass their arguments to the base class anyway. (and do nothing else).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Delayed construction would be useful here, in the event you wish to perform some calculations on the parameters before calling the base constructor - although this can be a dangerous weapon if used incorrectly.&lt;/p&gt;&#xA;" OwnerUserId="356" LastActivityDate="2010-09-22T12:41:23.147" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="1" />
  <row Id="6282" PostTypeId="2" ParentId="2806" CreationDate="2010-09-22T12:41:32.640" Score="4" ViewCount="" Body="&lt;p&gt;I think you are looking at this in completely the wrong way. A GUI app and a web page are worlds apart so the exact same definition of MVC will never work for both. MVC is more about the ideal: separating certain parts of the app like display and logic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In PHP (or the web in general), a &lt;strong&gt;View&lt;/strong&gt; is the web page itself: the HTML output. It's not &quot;live&quot; as per your definition, but you simply click links to go back to the controller (i.e. another page request).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;strong&gt;Controller&lt;/strong&gt; and &lt;strong&gt;Model&lt;/strong&gt; is where things do differ, like you explained. In PHP the model tends to be the data layer, interacting with the database and so on. But it is still modelling the situation, and the controller still controls the application flow, if only once per page load.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the name &quot;Model-View-Controller&quot; is perfectly logical, albeit a different implementation in GUI apps vs web apps.&lt;/p&gt;&#xA;" OwnerUserId="456" LastActivityDate="2010-09-22T12:41:32.640" CommentCount="1" />
  <row Id="6283" PostTypeId="2" ParentId="6255" CreationDate="2010-09-22T12:42:11.857" Score="3" ViewCount="" Body="&lt;p&gt;I'm involved in a huge code rewrite now... the only problem is I'm the only one working on it! The maintenance costs of our current software is outrageous, it has a lot of bugs, and we have 1 FT employee maintaining it so we decided to build our own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its much slower then I expected it to be but ultimately I think it will be so much better because we'll have our own codebase so any changes they want in the future can easily be implemented (the software needs to change frequently to keep up with current times). Also we're making some major changes to the design while we rewrite it.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-09-22T12:42:11.857" CommentCount="4" />
  <row Id="6284" PostTypeId="1" AcceptedAnswerId="6317" CreationDate="2010-09-22T12:43:38.580" Score="7" ViewCount="1145" Body="&lt;p&gt;What killer features are in one, but not in the other ?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What really annoys you about one, and is not present in the other ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you were starting a greenfield project, for an enterprise scale human resources management system with a web interface, what would you choose and why ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its greenfield there is an equal number of team members (with either Java or C#) and with the same level of expertise.  There is no existing platform. Resources are available for purchasing development tools  - however these are dependent and determined by a good business case.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="120" LastEditorDisplayName="" LastEditDate="2010-10-04T11:50:10.027" LastActivityDate="2010-11-22T19:18:19.317" ClosedDate="2011-03-12T21:55:37.040" Title="What is better Java or C# ?" Tags="&lt;java&gt;&lt;c#&gt;&lt;comparison&gt;" AnswerCount="5" CommentCount="8" FavoriteCount="2" />
  <row Id="6285" PostTypeId="2" ParentId="6246" CreationDate="2010-09-22T12:45:24.830" Score="0" ViewCount="" Body="&lt;p&gt;Most applications need to have some way to provide integration. Ideally, you would have a full API, a web service or at least make some database objects containing business logic available. Everyone is not in a time/resource position to build an API, so you have to compromise.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-22T12:45:24.830" />
  <row Id="6287" PostTypeId="2" ParentId="6200" CreationDate="2010-09-22T13:00:38.243" Score="1" ViewCount="" Body="&lt;p&gt;I think how much you will be rich is depended on what level of your developing skill ... and, of course, is related much more condition&lt;/p&gt;&#xA;" OwnerUserId="3338" LastActivityDate="2010-09-22T13:00:38.243" CommunityOwnedDate="2011-02-02T16:52:00.060" CommentCount="1" />
  <row Id="6288" PostTypeId="2" ParentId="2410" CreationDate="2010-09-22T13:04:22.610" Score="2" ViewCount="" Body="&lt;p&gt;Programming is like building things with &lt;strong&gt;Lego&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You're sticking lots of small bits together to make bigger things&lt;/li&gt;&#xA;&lt;li&gt;The small bits come in a limited number of shapes and sizes&lt;/li&gt;&#xA;&lt;li&gt;The small things can only fit together in certain ways&lt;/li&gt;&#xA;&lt;li&gt;Playing with this stuff can be a lot of fun&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1928" LastEditorUserId="1928" LastEditorDisplayName="" LastEditDate="2010-10-20T13:00:15.573" LastActivityDate="2010-10-20T13:00:15.573" CommunityOwnedDate="2011-03-03T17:06:14.173" />
  <row Id="6289" PostTypeId="2" ParentId="2124" CreationDate="2010-09-22T13:05:13.403" Score="4" ViewCount="" Body="&lt;p&gt;Daniel Markham asks valid questions in his &lt;a href=&quot;http://www.whattofix.com/blog/archives/2010/09/agile-ruined-my.php&quot; rel=&quot;nofollow&quot;&gt;&quot;Agile Ruined My Life blog post&lt;/a&gt;.  His post was discussed heavily on blogs and Twitter about two weeks ago.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of all the rebuttals, &lt;a href=&quot;http://testobsessed.com/2010/09/08/agile-backlash/&quot; rel=&quot;nofollow&quot;&gt;this one was probably the best-written and certainly the most memorable&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-09-22T13:05:13.403" CommentCount="3" />
  <row Id="6290" PostTypeId="2" ParentId="6200" CreationDate="2010-09-22T13:08:34.880" Score="1" ViewCount="" Body="&lt;p&gt;In addition to the above answers, I've read that the guys building the stock trading software for some of the major investment houses are pulling in nice change.&lt;/p&gt;&#xA;" OwnerUserId="7285" LastActivityDate="2010-09-22T13:08:34.880" CommunityOwnedDate="2011-02-02T16:52:00.060" CommentCount="2" />
  <row Id="6291" PostTypeId="2" ParentId="6268" CreationDate="2010-09-22T13:10:12.147" Score="2" ViewCount="" Body="&lt;p&gt;I worked for a small software company that had a couple of DOS applications that were upgraded to handle Y2K, rewritten as a Windows 16-bit app and then totally rewritten as a 32 bit app with one additional 'small' feature (ultimately only utilized by one customer) that impacted the entire structure. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Moving the 16 bit code to 32 could have been done in a month by one person, but NOOOOOOOOO, we had to rewrite it to make is Soooooooooo much better. This thing could be adapted for other industries, would have full specs and psuedo-code before they even got started. The specs were created, but it took so long there wasn't even time to write the real code. It was released late, with more bugs than the 16 bit 'started' with (it was on v.3.0 and finally to the point where we almost made it a week without someone reporting a new bug).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'd think rewriting the same application 3-4 times would bring about some improvements, but I just don't think a GUI front-end can be justified that much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This was my first IT job as head of technical support. I should write a book on how not to develope software for distribution. Obviously we made many mistakes, but the fact that we continued to rewrite applications compounded the incompetancy.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-22T13:10:12.147" />
  <row Id="6292" PostTypeId="1" AcceptedAnswerId="8215" CreationDate="2010-09-22T13:12:20.133" Score="3" ViewCount="340" Body="&lt;p&gt;Is there a place where I may view videos from &lt;a href=&quot;http://www.oracle.com/us/javaonedevelop/062264.html&quot; rel=&quot;nofollow&quot;&gt;JavaOne 2010&lt;/a&gt;? Unfortunately, the site itself seems pretty scarce and YouTube seems to only bring back videos of Oracle executives talking enterprisey.&lt;/p&gt;&#xA;" OwnerUserId="241" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-22T13:21:15.993" LastActivityDate="2010-09-29T13:16:50.347" ClosedDate="2010-09-29T18:06:57.810" Title="Where can I view JavaOne 2010 presentations?" Tags="&lt;java&gt;&lt;conferences&gt;&lt;javaone&gt;" AnswerCount="2" CommentCount="4" FavoriteCount="1" />
  <row Id="6293" PostTypeId="2" ParentId="6284" CreationDate="2010-09-22T13:20:13.000" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java&quot; rel=&quot;nofollow&quot;&gt;Wikipedia&lt;/a&gt; has a very detailed comparison for the two languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, if you have to choose it's more of a choice of platforms, are you better off going with Microsoft's platform and solutions or you want to run on all sorts of platforms, e.g. Linux, Unix, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: if you are planning to run .Net applications on &lt;a href=&quot;http://mono-project.com/Compatibility&quot; rel=&quot;nofollow&quot;&gt;Mono&lt;/a&gt;, you must investigate Mono's compatibility with the standard Microsoft .Net implementations. See the comments below.&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-23T17:31:40.513" LastActivityDate="2010-09-23T17:31:40.513" CommentCount="14" />
  <row Id="6294" PostTypeId="2" ParentId="6292" CreationDate="2010-09-22T13:22:05.193" Score="0" ViewCount="" Body="&lt;p&gt;JavaOne is still in progress, so we may have to wait for a few days.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-22T13:22:05.193" CommentCount="1" />
  <row Id="6296" PostTypeId="2" ParentId="6255" CreationDate="2010-09-22T13:25:41.883" Score="2" ViewCount="" Body="&lt;p&gt;I took part in a complete rewrite in my previous job. And we were very happy to have done so. Let's just say that sometimes the codebase is so rotten that it's better to start again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was an internal application - the main business application, in fact.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We maintained the old system as we wrote version 2. If I recall correctly, it took us about a year (two programmers, and then a third). We didn't need to touch the database though, so at least data migration wasn't an issue.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-22T13:25:41.883" CommentCount="2" />
  <row Id="6303" PostTypeId="2" ParentId="6268" CreationDate="2010-09-22T13:37:11.640" Score="51" ViewCount="" Body="&lt;p&gt;Sorry, this is going to be long, but it's based on personal experience as both architect and developer on multiple rewrite projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The following conditions should cause you to consider some sort of rewrite.  I'll talk about how to decide which one to do after that.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Developer ramp-up time is very high.  If it takes any longer than below (by experience level) to ramp up a new developer, then the system needs to be redesigned.  By ramp-up time, I mean the amount of time before the new developer is ready to do their first commit (on a small feature)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fresh out of college - 1.5 months&lt;/li&gt;&#xA;&lt;li&gt;Still green, but have worked on other projects before - 1 month&lt;/li&gt;&#xA;&lt;li&gt;Mid level - 2 weeks&lt;/li&gt;&#xA;&lt;li&gt;Experienced - 1 week&lt;/li&gt;&#xA;&lt;li&gt;Senior level - 1 day&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Deployment cannot be automated, because of the complexity of the existing architecture&lt;/li&gt;&#xA;&lt;li&gt;Even simple bug fixes take too long because of the complexity of existing code&lt;/li&gt;&#xA;&lt;li&gt;New features take too long, and cost too much because of the interdependence of the codebase (new features cannot be isolated, and therefore affect existing features)&lt;/li&gt;&#xA;&lt;li&gt;The formal testing cycle takes too long because of the interdependence of the existing codebase.&lt;/li&gt;&#xA;&lt;li&gt;Too many use cases are executed on too few screens. This causes training issues for the users and developers.&lt;/li&gt;&#xA;&lt;li&gt;The technology that the current system is in demands it&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Quality developers with experience in the technology are too hard to find&lt;/li&gt;&#xA;&lt;li&gt;It is deprecated (It can't be upgraded to support newer platforms/features)&lt;/li&gt;&#xA;&lt;li&gt;There is simply a much more expressive higher-level technology available&lt;/li&gt;&#xA;&lt;li&gt;The cost of maintaining the infrastructure of the older technology is too high&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These things are pretty self-evident. When to decide on a complete rewrite versus an incremental rebuild is more subjective, and therefore more politically charged. What I can say with conviction is that to uncategorically state that it is &lt;em&gt;never&lt;/em&gt; a good idea is wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a system can be incrementally redesigned, and you have the full support of project sponsorship for such a thing, then you should do it.  Here's the problem, though. Many systems cannot be incrementally redesigned. Here are some of the reasons I have encountered that prevent this (both technical and political).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Technical&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The coupling of components is so high that changes to a single component cannot be isolated from other components.  A redesign of a single component results in a cascade of changes not only to adjacent components, but indirectly to all components.&lt;/li&gt;&#xA;&lt;li&gt;The technology stack is so complicated that future state design necessitates multiple infrastructure changes. This would be necessary in a complete rewrite as well, but if it's required in an incremental redesign, then you lose that advantage.&lt;/li&gt;&#xA;&lt;li&gt;Redesigning a component results in a complete rewrite of that component anyway, because the existing design is so fubar that there's nothing worth saving. Again, you lose the advantage if this is the case.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Political&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The sponsors cannot be made to understand that an incremental redesign requires a long-term commitment to the project. Inevitably, most organizations lose the appetite for the continuing budget drain that an incremental redesign creates. This loss of appetite is inevitable for a rewrite as well, but the sponsors will be more inclined to continue, because they don't want to be split between a partially complete new system and a partially obsolete old system.&lt;/li&gt;&#xA;&lt;li&gt;The users of the system are too attached with their &quot;current screens.&quot; If this is the case, you won't have the license to improve a vital part of the system (the front-end). A redesign lets you circumvent this problem, since they're starting with something new. They'll still insist on getting &quot;the same screens,&quot; but you have a little more ammunition to push back.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Keep in mind that the total cost of redesiging incrementally is always &lt;em&gt;higher&lt;/em&gt; than doing a complete rewrite, but the impact to the organization is usually smaller.  In my opinion, if you can justify a rewrite, and you have superstar developers, then do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only do it if you can be certain that there is the political will to see it through to completion.  This means both executive and end user buy-in.  Without it, you will fail. I'm assuming that this is why Joel says it's a bad idea.  Executive &lt;em&gt;and&lt;/em&gt; end-user buy-in looks like a two-headed unicorn to many architects. You have to sell it aggressively, and campaign for its continuation continuously until it's complete.  That's difficult, and you're talking about staking your reputation on something that some will not want to see succeed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some strategies for success:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you do, however, &lt;em&gt;do not try to convert existing code.&lt;/em&gt; Design the system from scratch. Otherwise you're wasting your time. I have never seen or heard of a &quot;conversion&quot; project that didn't end up miserably.&lt;/li&gt;&#xA;&lt;li&gt;Replace the old system team at a time. Identify the teams that have the MOST pain with the existing system, and migrate them first. Let them spread the good news by word of mouth. This way your new system will be sold from within.&lt;/li&gt;&#xA;&lt;li&gt;Design your framework as you need it. Don't start with some I-spent-6-months-building-this framework that has never seen real code.&lt;/li&gt;&#xA;&lt;li&gt;Keep your technology stack as small as possible. Don't over-design. You can add technologies as needed, but taking them out is difficult. Additionally, the more layers you have, the more work it is for developers to do things. Don't make it difficult from the get-go.&lt;/li&gt;&#xA;&lt;li&gt;Involve the users directly in the design process, but don't let them dictate &lt;em&gt;how&lt;/em&gt; to do it. Earn their trust by showing them that you can give them what they want better if you follow good design principles.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3340" LastEditorUserId="3340" LastEditorDisplayName="" LastEditDate="2011-04-06T10:53:33.177" LastActivityDate="2011-04-06T10:53:33.177" CommentCount="4" />
  <row Id="6304" PostTypeId="2" ParentId="6200" CreationDate="2010-09-22T13:37:28.223" Score="2" ViewCount="" Body="&lt;p&gt;If you are looking to get rich, try some other profession, especially sales position. I'm sure with your heavy power intellect you can earn more money from sales compare to if you stick in programming. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming as a profession is not going to optimize your monetary gain. Trust me. Unless you are going to become a boss or start a startup or something. But by then you are making money because of your business skill, not your programming skill. &lt;/p&gt;&#xA;" OwnerUserId="468" LastActivityDate="2010-09-22T13:37:28.223" CommunityOwnedDate="2011-02-02T16:52:00.060" />
  <row Id="6305" PostTypeId="2" ParentId="6268" CreationDate="2010-09-22T13:38:11.480" Score="2" ViewCount="" Body="&lt;p&gt;So here I am sitting at my desk, I started re-writing the code for this absolute mess of one big aspx file, the database behind it, and replacing the MS Access interface to the MsSQL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This asp program is littered with things like &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;include(close.aspx)&lt;/code&gt; which inside has one line of code that closes the last open database connection. &lt;/li&gt;&#xA;&lt;li&gt;Legacy code just commented out randomly&lt;/li&gt;&#xA;&lt;li&gt;No consideration for security&lt;/li&gt;&#xA;&lt;li&gt;Spaghetti code, thousands of lines of it. All in one file.&lt;/li&gt;&#xA;&lt;li&gt;Functions and variables with no clear meaning behind their names&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If we ever need to make a slight change, it's like playing five simultaneous games of kal-toh on nightmare mode.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was hired to replicate functionality and make a product that could be customizable and salable to others in the industry. The problem is this thing has been written over the past 10 years to fill every single business need (well, I'd say about five or six sigma of them anyway).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;If we didn't want to sell the product, they probably wouldn't have needed a re-write as it does most of what they want-- perhaps not elegantly, but it wasn't prudent to spend the money on making nice code 'do the same thing.'&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1525" LastActivityDate="2010-09-22T13:38:11.480" />
  <row Id="6306" PostTypeId="2" ParentId="6067" CreationDate="2010-09-22T13:38:55.860" Score="4" ViewCount="" Body="&lt;h2&gt;Prolog&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I want to learn Prolog. Just because its so diffrent. &lt;/p&gt;&#xA;" OwnerUserId="2743" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-29T15:17:30.867" LastActivityDate="2010-09-29T15:17:30.867" CommunityOwnedDate="2010-09-22T13:38:55.860" />
  <row Id="6308" PostTypeId="2" ParentId="6200" CreationDate="2010-09-22T13:43:51.873" Score="4" ViewCount="" Body="&lt;p&gt;You wouldn't really say someone made millions being a 'carpenter' because they bought a huge section of land and hired a bunch of people to help them build houses and sold them at the height of the real estate bubble.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think if you only consider the value of the contribution of the writing of code, my answer would be very few. Usually, you have to have some type of leverage where there are other's who are doing the marketting, supporting, selling, and managing a team of developers to get an app to the level of making millions. If you made a million dollars and writing software is half of what you contributed, you don't qualify. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not sure there are any.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-22T13:43:51.873" CommunityOwnedDate="2011-02-02T16:52:00.060" />
  <row Id="6309" PostTypeId="2" ParentId="6284" CreationDate="2010-09-22T13:43:55.133" Score="4" ViewCount="" Body="&lt;p&gt;As a language C# (and when I say C#, I mean C#3) is more modern and very nice to use. I prefer it in almost everything over Java. However, when we compare .NET and Java libraries, I like Java somewhat better. For example collections are in my mind more elegant and nicer to use. However, WPF and LINQ are a big plus for C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java also has a big edge over C#/.NET when it comes to documentation. In Java you can just go to the API, use your browser's search to find the class and then you see everything at the same page. .NET documentation is no where near to being as easy and fast to use. Besides, getting sources of the Java library can help a lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C#'s future seems brighter, so I would probably select it unless I need to support multiple platforms. However, I would have no trouble using Java either, it's a good language and platform.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-22T13:43:55.133" CommentCount="16" />
  <row Id="6310" PostTypeId="2" ParentId="5916" CreationDate="2010-09-22T13:44:38.273" Score="0" ViewCount="" Body="&lt;p&gt;two or three years before, i believe must have details comments, but recently i prefer to more readable code than comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;there are some more difficult to synchronize &quot;///&quot; and other comments with code, especially when code refactoring&lt;/p&gt;&#xA;" OwnerUserId="3338" LastActivityDate="2010-09-22T13:44:38.273" />
  <row Id="6312" PostTypeId="2" ParentId="6200" CreationDate="2010-09-22T13:49:48.107" Score="7" ViewCount="" Body="&lt;p&gt;Generally, you won't get rich of of spinning a propeller hat all day. Money comes from business, you need to do business. You can write software that fills a business/market need (like everyone at Y-Combinator), or you can dig yourself deep into a large organization like a bank and be the only person who knows how the COBOL running things works because you were one of the few people who wrote it 20 years ago, then you're just asking for a raise every year or something to sit around, but you'll hardly be stinking rich from that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Money comes from business, not code.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1525" LastActivityDate="2010-09-22T13:49:48.107" CommunityOwnedDate="2011-02-02T16:52:00.060" CommentCount="2" />
  <row Id="6314" PostTypeId="2" ParentId="6275" CreationDate="2010-09-22T14:00:26.793" Score="9" ViewCount="" Body="&lt;p&gt;Here's a quote from Q&amp;amp;A with Lisa Feigenbaum (a Community Program Manager for the Visual Studio Managed Languages team at Microsoft): &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Given the number of C# developers, you can imagine that we receive an enormous number of requests! I'll share a few of the most popular ones: &lt;strong&gt;tuples, immutable types, non-nullable types, a null propagating member access operator, an &quot;infoof&quot; operator, XML literals, arithmetic constraints on generics, and extension everything (properties, events, etc.)&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While we have hundreds of feature requests, it's interesting to note that we actually wouldn't want to program in a language that had all of the features we want in it -- it would be too complex! Figuring out which subset of features to include is part of the art of language design&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Full Article: &lt;a href=&quot;http://reddevnews.com/articles/2010/07/29/csharp-qa-with-lisa-feigenbaum.aspx&quot; rel=&quot;nofollow&quot;&gt;http://reddevnews.com/articles/2010/07/29/csharp-qa-with-lisa-feigenbaum.aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-09-22T14:00:26.793" CommentCount="2" />
  <row Id="6315" PostTypeId="2" ParentId="6255" CreationDate="2010-09-22T14:01:48.430" Score="19" ViewCount="" Body="&lt;p&gt;I've been involved in a few rewrites over my career and they were all disasters.&#xA;I think they all fail for the same reasons&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Vast underestimate of effort required:  Every time someone wants a rewrite, it's because the old system is using old technology and difficult to maintain.  What they fail to consider is that because of it's age, it may have 30-40 man years of development effort into it.  Thinking you can then rewrite the whole thing in 6 months with a team of 5 is silly.&lt;/li&gt;&#xA;&lt;li&gt;Lost knowledge:  The old system has been around so long, it does a lot of stuff, and is hooked into everything.  There is no up-to-date documentation, and no single point of authority that actually knows all the things the system does.  There will be pieces of knowledge with particular users in particular departments, and finding them all is difficult or impossible.&lt;/li&gt;&#xA;&lt;li&gt;Poor Management Decisions: The rewrites I've been involved in had a similar expectations from management: The new system should be 'done', and the old system could simply be turned off on a particular date, period.  No other option was acceptable.  I think they get this in their head, because they are spending all this money to hire new people for this huge project.  In reality, the better risk mitigation strategy is to rewrite the major functions of the old system, say tackle 50-75% of the old system for a first release, and then see how it works!  Because of #1 and #2 above, this would probably work out much better, as we find out some of the features that were missed, and what's needed to actually turn off the old system.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3073" LastActivityDate="2010-09-22T14:01:48.430" />
  <row Id="6316" PostTypeId="2" ParentId="6166" CreationDate="2010-09-22T14:05:32.047" Score="0" ViewCount="" Body="&lt;p&gt;I wouldn't be a programmer if I didn't enjoy technology in the first place. So no. Technology changes very, very fast. There's always more new things to enjoy.&lt;/p&gt;&#xA;" OwnerUserId="1668" LastActivityDate="2010-09-22T14:05:32.047" />
  <row Id="6317" PostTypeId="2" ParentId="6284" CreationDate="2010-09-22T14:06:25.587" Score="9" ViewCount="" Body="&lt;p&gt;What I get from my own trend-watching attempts: putting all your chips on &lt;em&gt;Java language&lt;/em&gt; is becoming increasingly risky. At the same time, ignoring &lt;em&gt;Java VM&lt;/em&gt; completely is perilous. This means &lt;em&gt;C#&lt;/em&gt; scores points as a language, but &lt;em&gt;.NET&lt;/em&gt; is far from the answer to everything. Sounds complicated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One respectable expert opinion is that the innovation in Java has slowed down in recent years and been outpaced by the innovation happening in the .NET world.  &lt;a href=&quot;http://www.thoughtworks.com/radar/&quot; rel=&quot;nofollow&quot;&gt;Thoughtworks Technology Radar&lt;/a&gt; went as far ealier this year as to put it bluntly: &lt;strong&gt;Java language end of life&lt;/strong&gt; (see page 3). They currently rate this concept between &quot;Assess&quot; and &quot;Trial.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the same time, there is a lot of interest in functional languages, and if we were to name a few, we'd realize that for example, both &lt;em&gt;Scala&lt;/em&gt; and &lt;em&gt;Clojure&lt;/em&gt; run on the Java Virtual Machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The results of the Java vs. C# comparison and of the Java VM vs. .NET comparison may be completely different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; added first paragraph for clarity.&lt;/p&gt;&#xA;" OwnerUserId="464" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-09-22T15:30:35.040" LastActivityDate="2010-09-22T15:30:35.040" CommentCount="7" />
  <row Id="6318" PostTypeId="2" ParentId="6118" CreationDate="2010-09-22T14:10:13.423" Score="0" ViewCount="" Body="&lt;p&gt;I don't remap the whole platform, but when I went to a place using emacs after years of DOS and Windows programming, I did remap the cursor-manipulation keys (Shift-Home, Ctrl-End, ...) to match the shortcuts that are hard-wired into my fingers. &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-22T14:10:13.423" />
  <row Id="6319" PostTypeId="2" ParentId="6190" CreationDate="2010-09-22T14:10:22.540" Score="0" ViewCount="" Body="&lt;p&gt;If you want the user to have more control without you having to build it, use the Task Scheduler. Looks like Google does this with their apps update. Depending on the user, it's not difficult manage the task. Take the user out of the loop and create a service. Most people will never touch them. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-22T14:10:22.540" />
  <row Id="6320" PostTypeId="2" ParentId="6166" CreationDate="2010-09-22T14:12:35.283" Score="0" ViewCount="" Body="&lt;p&gt;I still enjoy technology as a programmer, but some small things like counting bullets in a gun on a show/movie (always seem to have infinite bullets) and little things like that distract me.  I also notice bugs in programs and video games very fast and my friends don't know what I'm talking about (which makes me laugh).  {And my use of parentheses\braces in normal posting\emails, lol.}&lt;/p&gt;&#xA;" OwnerUserId="3092" LastActivityDate="2010-09-22T14:12:35.283" />
  <row Id="6321" PostTypeId="2" ParentId="6067" CreationDate="2010-09-22T14:13:44.250" Score="1" ViewCount="" Body="&lt;p&gt;Nobody is talking about Gopher or Lush, I am quite surprised. :-)&lt;/p&gt;&#xA;" OwnerUserId="3334" LastActivityDate="2010-09-22T14:13:44.250" CommunityOwnedDate="2010-09-22T14:13:44.250" CommentCount="1" />
  <row Id="6322" PostTypeId="2" ParentId="6255" CreationDate="2010-09-22T14:15:27.260" Score="2" ViewCount="" Body="&lt;p&gt;Actually I am starting a big refactoring. 4MLocs probably should be downsizing to 800KLocs or less. This project has a lot of Copy&amp;amp;Paste, misunderstanding language features, lots and lots of repetitive useless comments, poor decisions, temporary hacking and more hacking turned permanent (including workarounds), complete lack of knowledge on &lt;strong&gt;basic&lt;/strong&gt; principles on Computer Science or Software Engineering. Probably maintenance team of 32 bad programmers will be replaced by 2 good ones after refactoring.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-22T14:15:27.260" />
  <row Id="6323" PostTypeId="2" ParentId="6268" CreationDate="2010-09-22T14:18:25.560" Score="3" ViewCount="" Body="&lt;p&gt;I think I'm in the only situation in my career where the big rewrite is the answer:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Company merger, huge overlap in systems functionality.  Many, many systems have been merged and retired, and others still in the process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've inherited a system from the other company that still lives on.  It has a huge code base, which used to support multiple departments very similar to our own, but with a completely different design and frameworks.  There is only one business sector left using it, which makes enough money that keeps this thing alive in a zombie state.  All the old expertise is gone, there is no documentation.  The support burden is high, with failures every week.  It has not been merged into our companies systems, because our company never supported this particular sector of the business, so we don't have the functionality or expertise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It looks like this is the one case where the rewrite is needed.  It looks like I'm going to have to figure out this behemoth, pull out the bits of functionality dedicated to this business, and rewrite the pieces that need to be added to our existing systems.  Once that is done, our existing systems can support this new sector, and this beast can be put out of it's misery.  Otherwise I'm going to lose my sanity.&lt;/p&gt;&#xA;" OwnerUserId="3073" LastActivityDate="2010-09-22T14:18:25.560" CommentCount="1" />
  <row Id="6325" PostTypeId="2" ParentId="6246" CreationDate="2010-09-22T14:19:29.893" Score="2" ViewCount="" Body="&lt;p&gt;Some trading systems provide a way to extend the existing functionality with scripts, basically put in the database. My experience with this is rather negative, at least in a multi-user setting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'd put logic in a database, because you'd want to be able to modify that logic easily.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How would you do version control?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What is the code history? What were the changes? By whom?&lt;/li&gt;&#xA;&lt;li&gt;How yould you handle changes on the same code fragments?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;How would you identify and guarantee a consistent code state?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You could track this in an additional file-based VCS, but then what's the benefit of the database?&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-09-22T14:24:49.257" LastActivityDate="2010-09-22T14:24:49.257" />
  <row Id="6326" PostTypeId="2" ParentId="6255" CreationDate="2010-09-22T14:25:32.350" Score="1" ViewCount="" Body="&lt;p&gt;I wrote a blogging engine in 3 weeks. I rewrote it in 8 hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Planning ahead is  &lt;em&gt;key&lt;/em&gt; to a successful rewrite. Knowing the system inside and out it also a benefit. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-22T14:25:32.350" CommentCount="6" />
  <row Id="6328" PostTypeId="2" ParentId="6246" CreationDate="2010-09-22T14:29:34.283" Score="5" ViewCount="" Body="&lt;p&gt;Database agnostic applications require all logic out of databases. It's very hard to build and maintain code to many different databases providers.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-22T14:29:34.283" CommentCount="1" />
  <row Id="6330" PostTypeId="2" ParentId="6246" CreationDate="2010-09-22T14:40:32.200" Score="3" ViewCount="" Body="&lt;p&gt;Putting &lt;em&gt;application&lt;/em&gt; logic in the DB sounds like a bad idea to me. OTOH putting logic in the DB that is specifically part of maintaining DB state (e.g. triggers/sprocs to update de-normalized tables) is a much different proposition.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Alternately, this can be stated as: there are good arguments for putting the logic needed to abstract away how the database really works from how you want it to look into the database.&lt;/p&gt;&#xA;" OwnerUserId="1572" LastEditorUserId="1572" LastEditorDisplayName="" LastEditDate="2010-09-22T16:59:46.820" LastActivityDate="2010-09-22T16:59:46.820" />
  <row Id="6331" PostTypeId="2" ParentId="19" CreationDate="2010-09-22T14:42:33.493" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.jobstats.co.uk/&quot; rel=&quot;nofollow&quot;&gt;http://www.jobstats.co.uk/&lt;/a&gt;  this specifically focusses on wages/skills and locations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The going rate for a senior dev (c#/java) in London is at £400+ a day.  Then, in the midlands and the north of England this reduces to £250-£350 a day.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-22T14:42:33.493" CommentCount="1" />
  <row Id="6332" PostTypeId="2" ParentId="724" CreationDate="2010-09-22T14:45:55.580" Score="11" ViewCount="" Body="&lt;p&gt;Lisp macros.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Lisp macro language is Lisp, with a few predefined syntax features for the sake of convenience.  Using them, it is possible to add major features to the language, such as one's choice of object orientation styles or Prolog-like deterministic matching, without looking out of place.  It makes the &lt;code&gt;setf&lt;/code&gt; macro possible, which is a conceptually very powerful macro:  &lt;code&gt;(setf A B)&lt;/code&gt; means that, when you evaluate &lt;code&gt;A&lt;/code&gt; you will get &lt;code&gt;B&lt;/code&gt;, and that can be extended to any limit you like.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ template metaprogramming is capable of similar things, but in a much different language than regular C++.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-22T14:45:55.580" CommentCount="4" />
  <row Id="6333" PostTypeId="1" CreationDate="2010-09-22T14:47:25.127" Score="0" ViewCount="158" Body="&lt;p&gt;Can you describe in few sentences or bullets program language you know best? It should be concise, not too long, lets say for one or two slides in presentation, but that contains important classifications of that language. Some details about usage and spread, supported platforms and available libraries. Some strengths and weaknesses. Most important concepts that language offers. Maybe some future expectations or plans in development. You can give score 1-10 if it helps you to grade things like speed or portability.&#xA;I'm trying to find best descriptions of popular programming languages.&lt;/p&gt;&#xA;" OwnerUserId="3348" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2010-09-22T15:01:37.463" LastActivityDate="2010-10-01T22:07:23.847" Title="Concise and systematic descriptions of programming languages" Tags="&lt;programming-languages&gt;&lt;language-features&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="6334" PostTypeId="2" ParentId="6200" CreationDate="2010-09-22T14:47:54.563" Score="15" ViewCount="" Body="&lt;p&gt;Most people seem to be missing the most important point:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Monetary gain is proportional to risk, not effort.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unlike what the designers of World of Warcraft would have you believe, you cannot become a billionaire simply by doing mindless repetitive tasks.  Even if you're one of the top experts in your field, getting paid a $500k salary, that's still not going to make you genuinely &quot;rich.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To become extremely financially wealthy, people have to &lt;em&gt;take extreme financial risks&lt;/em&gt;.  They have to &lt;strong&gt;invest&lt;/strong&gt; in something, whether that be stocks, real estate, or their own business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's one loophole in programming, and that's to create some piece of software that's so sought-after that a major company like Yahoo or Google buys it from you (think YouTube).  That takes very little risk (unless you count your personal time as an investment), but it also imposes a hard limit on the potential reward.  These monoliths don't pay you royalties, they either buy it outright for an amount that's riches to you but chump change to them, or they make their own and put you out of business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Problem is, there are so many people trying to access that loophole today that you have to have a &lt;em&gt;really&lt;/em&gt; brilliant idea, otherwise chances are it's already been done (better).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lots of programmers seem to be investing in the stock market these days, and the ones who are &lt;em&gt;good&lt;/em&gt; at it probably get rich.  And of course, you have a dozen examples here of programmers who started their own businesses; they get rich too.  I can also point to many programmers and engineers who do expensive consulting and make quite a pile doing that - but in order to get there, they also had to take significant risks, quitting their full-time jobs and working for peanuts to establish reputations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The common thread is that programmers &lt;em&gt;do&lt;/em&gt; get rich, but not just from &lt;em&gt;programming&lt;/em&gt; and sweating for the Man.  Like any other profession, in order to really hit it big, they have to put their money and their credibility on the line.&lt;/p&gt;&#xA;" OwnerUserId="3249" LastActivityDate="2010-09-22T14:47:54.563" CommunityOwnedDate="2011-02-02T16:52:00.060" CommentCount="4" />
  <row Id="6335" PostTypeId="2" ParentId="6333" CreationDate="2010-09-22T14:50:04.140" Score="0" ViewCount="" Body="&lt;p&gt;The wikipedia page for each language (&lt;a href=&quot;http://en.wikipedia.org/wiki/Java_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Java&lt;/a&gt;) would be a good place to start&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-22T14:56:46.393" LastActivityDate="2010-09-22T14:56:46.393" CommentCount="2" />
  <row Id="6336" PostTypeId="2" ParentId="1599" CreationDate="2010-09-22T14:55:58.250" Score="1" ViewCount="" Body="&lt;p&gt;ctrl+f and the sometimes i coding while dreaming..&lt;/p&gt;&#xA;" OwnerUserId="2380" LastActivityDate="2010-09-22T14:55:58.250" CommunityOwnedDate="2010-09-22T14:55:58.250" />
  <row Id="6337" PostTypeId="2" ParentId="724" CreationDate="2010-09-22T14:56:17.580" Score="3" ViewCount="" Body="&lt;p&gt;I really like the &lt;strong&gt;unless&lt;/strong&gt; modifier in &lt;strong&gt;Ruby&lt;/strong&gt;.  It seems so natural and replaces a lot of scenarios where your code just seems to be very messy without it.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;puts &quot;All good&quot; unless input.nil?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;How can you not like that? :D&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-22T14:56:17.580" CommentCount="1" />
  <row Id="6338" PostTypeId="1" CreationDate="2010-09-22T14:57:18.263" Score="7" ViewCount="345" Body="&lt;p&gt;Obviously related to &lt;a href=&quot;http://programmers.stackexchange.com/questions/940/whats-the-best-version-control-system&quot;&gt;What's the best version control system?&lt;/a&gt; but i did not find anything for my particular case.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I'm currently doing solo project all time. but other peoples may access it.&lt;/li&gt;&#xA;&lt;li&gt;Working on a ASP.net intranet administrative application.&lt;/li&gt;&#xA;&lt;li&gt;Also got a handful of VB6 apps that are still stored in Source Safe, may switch to .net someday. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="19" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-10-12T01:50:50.677" LastActivityDate="2010-10-12T01:50:50.677" Title="Which version control system a .net / vb6 developer in a small team should use?" Tags="&lt;tools&gt;&lt;version-control&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="1" />
  <row Id="6339" PostTypeId="2" ParentId="5120" CreationDate="2010-09-22T15:01:00.787" Score="0" ViewCount="" Body="&lt;p&gt;I'm amazed as I sit in a meeting and a manager bases whether or not to add a feature so they don't have to confront a particular person who always gets mad when given tasks. I point out that maybe I should get mad when asked to do things. My boss quickly mentions that this is a bad idea as she should.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-22T15:01:00.787" />
  <row Id="6341" PostTypeId="2" ParentId="6200" CreationDate="2010-09-22T15:09:20.663" Score="1" ViewCount="" Body="&lt;p&gt;The guy who writes Minecraft is going to be rich (as in he's already made about a million dollars from something he does in his spare time.)  The group of young gentlemen who wrote Fieldrunners for the iPhone have pulled down several million dollars.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find a niche, something new that hasn't been done, and fill it... If you build it, they will pay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an employee, though, there's really no chance of becoming rich doing much of anything (except professional sports.)&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-09-22T15:09:20.663" CommunityOwnedDate="2011-02-02T16:52:00.060" />
  <row Id="6342" PostTypeId="2" ParentId="6338" CreationDate="2010-09-22T15:09:24.890" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.fossil-scm.org/&quot; rel=&quot;nofollow&quot;&gt;Fossil&lt;/a&gt; is simple, reliable, ease and full of additional features like bug tracking and wiki. It's a distributed SCM like Git, Mercurial, but simpler. I think it fits very well to your needs. It has everything that a solo or small team needs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want a more traditional VCS, i would go to &lt;a href=&quot;http://subversion.apache.org/&quot; rel=&quot;nofollow&quot;&gt;SVN&lt;/a&gt;. Just a full centralized client-server VCS simple to use especially with &lt;a href=&quot;http://tortoisesvn.tigris.org/&quot; rel=&quot;nofollow&quot;&gt;TortoiseSVN&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both are free and open source.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-22T15:39:46.720" LastActivityDate="2010-09-22T15:39:46.720" CommentCount="0" />
  <row Id="6343" PostTypeId="2" ParentId="6333" CreationDate="2010-09-22T15:09:51.230" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/C%2B%2B&quot; rel=&quot;nofollow&quot;&gt;C++&lt;/a&gt; — multiparadigm language that conveys generic and object-oriented programming to domain of low-level computation.  C++ has all benefits and shortcomings that a low-level language (such as C) has:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;fast execution&lt;/li&gt;&#xA;&lt;li&gt;the effect of certain code is predictable and not obscure&lt;/li&gt;&#xA;&lt;li&gt;its code is unsafe by default&lt;/li&gt;&#xA;&lt;li&gt;its memory model is low-level (changing the order of class fields &lt;em&gt;makes difference&lt;/em&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;...while providing high-level features:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;object-oriented programming (though not the best, it's object model is powerful)&lt;/li&gt;&#xA;&lt;li&gt;templates (compile-time generation of functions and types, based on other types, with negligible overhead)—while having all benefits of being a statically-typed language&lt;/li&gt;&#xA;&lt;li&gt;multiparadigm-ness (you can even write functional code with C++!)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="34" LastEditorUserId="34" LastEditorDisplayName="" LastEditDate="2010-09-22T15:19:13.637" LastActivityDate="2010-09-22T15:19:13.637" />
  <row Id="6345" PostTypeId="2" ParentId="6338" CreationDate="2010-09-22T15:14:54.250" Score="0" ViewCount="" Body="&lt;p&gt;For solo projects I use &lt;a href=&quot;http://www.perforce.com/index.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Perforce&lt;/strong&gt;&lt;/a&gt;. It integrates greatly with Visual Studio and the UI is nice. You can request a free license if your projects are open source, otherwise they have a free non-expiring 2-user version. I found it a delight to use, especially branching and merging, which are a pain in SVN.&#xA;If you require more than two people, than SVN (with TortoiseSVN) is probably the best bet.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-09-22T15:14:54.250" />
  <row Id="6346" PostTypeId="2" ParentId="6338" CreationDate="2010-09-22T15:16:38.723" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://git-scm.com/&quot; rel=&quot;nofollow&quot;&gt;GIT&lt;/a&gt; Initially developed by Linus Torvalds no less. &lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-22T15:16:38.723" CommentCount="7" />
  <row Id="6348" PostTypeId="2" ParentId="6157" CreationDate="2010-09-22T15:30:42.607" Score="1" ViewCount="" Body="&lt;h3&gt;Memory error detector&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;for instance Valgrind's memcheck. Memory problems are often ignored (because they can produce no visible symptoms on a first sight), hard to track and produce very weired errors in final application (for instance depending on microstate of operating system). Not to mention security issues.&lt;/p&gt;&#xA;" OwnerUserId="2051" LastActivityDate="2010-09-22T15:30:42.607" />
  <row Id="6349" PostTypeId="2" ParentId="6338" CreationDate="2010-09-22T15:32:28.363" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://mercurial.selenic.com/&quot; rel=&quot;nofollow&quot;&gt;Mercurial&lt;/a&gt;. It works right on Windows. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a DVCS; it branches well. &lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-22T15:32:28.363" CommentCount="1" />
  <row Id="6350" PostTypeId="2" ParentId="6157" CreationDate="2010-09-22T15:36:51.473" Score="1" ViewCount="" Body="&lt;h3&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Indent_%28Unix%29&quot; rel=&quot;nofollow&quot;&gt;Indent&lt;/a&gt; (and &lt;a href=&quot;http://en.wikipedia.org/wiki/Indent_%28Unix%29#See_also&quot; rel=&quot;nofollow&quot;&gt;friends&lt;/a&gt;)&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Saves time, helps to read someone's else code, reduces clutter in diffs.&lt;/p&gt;&#xA;" OwnerUserId="2051" LastActivityDate="2010-09-22T15:36:51.473" />
  <row Id="6351" PostTypeId="2" ParentId="2124" CreationDate="2010-09-22T15:42:40.933" Score="1" ViewCount="" Body="&lt;p&gt;My thought on Agile is that it requires a certain type of project to actually function. Projects with the capability to iteratively build, to iteratively scale out, and to do so really fast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are whole domains where that just doesn't make sense. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has attracted &quot;consultants&quot; by the scads, and has a buzzwordy flavor reminiscent of Java/OO in the 90s. Further, it seems almost a religion for many programmers. These are not good traits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, like the object-oriented design approach, there are good aspects to 'agile'. Unfortunately, I have read somewhat in the software engineering literature circa 1970-1985, and I don't see anything really new in agile except the buzzwords. Certainly the solid take-aways are not new at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The concepts of the continuous build and TDD &lt;em&gt;are&lt;/em&gt; new, but I don't know if they could be properly placed in the 'agile' set.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-22T15:42:40.933" />
  <row Id="6352" PostTypeId="1" AcceptedAnswerId="6581" CreationDate="2010-09-22T15:42:51.760" Score="22" ViewCount="1012" Body="&lt;p&gt;Google has led many useful Java features (guava, gson); now that Oracle has purchased Sun will it effect its future enhancements and utilization as a development language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What exactly, or even approximately, are the legal ramifications? I thought Java was open source and would therefore remain unaffected ... ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should Google just buy Oracle to get rid of the whole mess, that would be cool wouldn't it ? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you think this is the beginning of the end for Java as a widely used language ? Its continued success as an open source/free technology is now doubtful?&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-22T15:59:10.087" LastActivityDate="2010-12-30T01:18:57.953" Title="Is Java &quot;dead in the water&quot; as a consequence of Oracle buying Sun and subsequently suing Google" Tags="&lt;java&gt;&lt;google&gt;&lt;oracle&gt;" AnswerCount="9" CommentCount="2" FavoriteCount="6" />
  <row Id="6354" PostTypeId="2" ParentId="1599" CreationDate="2010-09-22T15:46:04.063" Score="2" ViewCount="" Body="&lt;p&gt;An unwillingness to do anything or say anything more than once.&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-09-22T15:46:04.063" CommunityOwnedDate="2010-09-22T15:46:04.063" />
  <row Id="6355" PostTypeId="2" ParentId="696" CreationDate="2010-09-22T15:47:54.757" Score="0" ViewCount="" Body="&lt;p&gt;The language broken beyond repair. There are some good meta bits like cheap hosting ,but its not so spazial anymore, and good docs. I would want to use php for anything anymore.&lt;/p&gt;&#xA;" OwnerUserId="2743" LastActivityDate="2010-09-22T15:47:54.757" />
  <row Id="6357" PostTypeId="2" ParentId="6352" CreationDate="2010-09-22T15:49:38.520" Score="7" ViewCount="" Body="&lt;p&gt;Java will stay around, but I think these issues will lead Java down a road away from Open Source.  It will start to be more closed like C# and the .NET languages with how Oracle is suing Google even though it is &quot;open source&quot; (for now).  And Google created Go, which with this issue over Java may lead them to eventually recreate/modify Android to use Go as well as, or in place of Java.&lt;/p&gt;&#xA;" OwnerUserId="3092" LastActivityDate="2010-09-22T15:49:38.520" CommentCount="7" />
  <row Id="6362" PostTypeId="1" AcceptedAnswerId="6364" CreationDate="2010-09-22T16:05:39.850" Score="0" ViewCount="88" Body="&lt;p&gt;I find myself increasingly interested by YouTube's Content ID system, specifically how the fingerprinting and spectrograms work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have they published any in-depth information in the approach they take? Or this super secret proprietary technology like the PageRank algorithim?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alternatively, are there any good resources for doing similar comparative analysis of audio/visual media?&lt;/p&gt;&#xA;" OwnerUserId="1972" LastActivityDate="2010-09-22T16:18:53.543" ClosedDate="2010-09-23T05:27:06.683" Title="Has Google published anything on the technology of YouTube's Content ID?" Tags="&lt;technology&gt;&lt;computer-science&gt;&lt;algorithms&gt;&lt;google&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="1" />
  <row Id="6363" PostTypeId="2" ParentId="6275" CreationDate="2010-09-22T16:07:19.750" Score="1" ViewCount="" Body="&lt;p&gt;The option to allow implicit conversions&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-22T16:07:19.750" CommentCount="4" />
  <row Id="6364" PostTypeId="2" ParentId="6362" CreationDate="2010-09-22T16:18:53.543" Score="3" ViewCount="" Body="&lt;p&gt;This is not from Google itself, but check out Jeff Attwood's post from a few days ago: &lt;a href=&quot;http://www.codinghorror.com/blog/2010/09/youtube-vs-fair-use.html&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/2010/09/youtube-vs-fair-use.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In particular, he links to the &lt;a href=&quot;http://www.ted.com/talks/margaret_stewart_how_youtube_thinks_about_copyright.html&quot; rel=&quot;nofollow&quot;&gt;TED talk on ContentID&lt;/a&gt; and &lt;a href=&quot;http://www.csh.rit.edu/~parallax/&quot; rel=&quot;nofollow&quot;&gt;Fun with Youtube's Audio Content ID system&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-22T16:18:53.543" />
  <row Id="6365" PostTypeId="2" ParentId="6333" CreationDate="2010-09-22T16:21:42.247" Score="2" ViewCount="" Body="&lt;h1&gt;HelloWorld&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;An unreleased language designed by Jon Skeet. Here is its &lt;a href=&quot;http://stackoverflow.com/questions/284797/hello-world-in-less-than-20-bytes/284898#284898&quot;&gt;specification&lt;/a&gt;, quoted verbatim:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Very simple:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;h&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;  &#xA;  &lt;p&gt;This is from my unreleased &quot;HelloWorld&quot; language. It's an interpreted language, so there's no real compiled form. The language is very simple though - the above is the only valid program, with the well-defined behaviour of printing &quot;Hello World&quot;.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Arguably I could have designed it to only accept an empty file as input, but that would have been silly.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;h3&gt;Some details about usage and spread, supported platforms and available libraries.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Because Jon's reference implementation has not been released, the language is probably not used heavily in industry. It is conceivable that third parties may have written their own implementations. However, because of ambiguities in the specification (does it print &lt;code&gt;Hello World&lt;/code&gt; or &lt;code&gt;&quot;Hello World&quot;&lt;/code&gt;?), one can only hope that this has not happened until further clarification has been provided.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The language itself does not appear to have any explicit dependencies on any platform, thereby making it a viable candidate for cross-platform development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are no known libraries for the language, as the language does not support such functionality.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Some strengths and weaknesses.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;The language features an incredibly terse syntax. Jon admitted that it could be been made shorter, accepting an empty file as input. However, that would have been silly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, the language does not adhere to &lt;a href=&quot;http://programmers.stackexchange.com/questions/180/is-it-hello-world-or-hello-world&quot;&gt;proper English&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Most important concepts that language offers.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;The language is arguably the definitive solution to printing &lt;code&gt;Hello World&lt;/code&gt;* to output. Until now, the act of printing &lt;code&gt;Hello World&lt;/code&gt; has been replicated time and time again in countless languages and platforms, none of which have reached this language's level of expressiveness.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Maybe some future expectations or plans in development.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;There is only speculation at this point with regards to the future of the language. It is conceivable that internationalization may be an important addition.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;You can give score 1-10 if it helps you to grade things like speed or portability.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, performance benchmarks have not been released. However, I have implemented an interpreter in Java and can speak to its performance (requires the &lt;a href=&quot;http://code.google.com/p/guava-libraries/&quot; rel=&quot;nofollow&quot;&gt;Guava libraries&lt;/a&gt;):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class Interpreter {&#xA;&#xA;    public static void main(String... args) throws Exception {&#xA;        String fileContent = Files.toString(new File(args[0]), Charsets.US_ASCII);&#xA;&#xA;        if (!fileContent.equals(&quot;h&quot;)) {&#xA;            throw new IllegalArgumentException(&quot;Malformed source file&quot;);&#xA;        }&#xA;&#xA;        System.out.println(&quot;Hello World&quot;);&#xA;    }&#xA;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;A rudimentary benchmark completed in 1.057634 milliseconds. Performance gains may be obtained by re-writing it from scratch in C or assembly. However, it is probably I/O-bound rather than CPU-bound so minimal improvement is to be expected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;*&lt;/code&gt; Or &lt;code&gt;&quot;Hello World&quot;&lt;/code&gt;, depending on the interpretation of the specification. See &lt;em&gt;Some details about usage and spread...&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="241" LastActivityDate="2010-09-22T16:21:42.247" />
  <row Id="6366" PostTypeId="2" ParentId="1483" CreationDate="2010-09-22T16:27:35.687" Score="0" ViewCount="" Body="&lt;p&gt;I'm Mexican, living near the border with USA (in &lt;a href=&quot;http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=Hermosillo,+Sonora&amp;amp;sll=37.0625,-95.677068&amp;amp;sspn=52.947994,76.816406&amp;amp;ie=UTF8&amp;amp;hq=&amp;amp;hnear=Hermosillo,+Sonora,+Mexico&amp;amp;z=12&quot; rel=&quot;nofollow&quot;&gt;Hermosillo, Sonora&lt;/a&gt;). I code all of my work (personal and for the company) in English, and I encourage my friends and teammates to do so too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have found that this give us a flat terminology (everyone, here and in other parts of the world use the same word for the same thing) and make out integration with our clients seamless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here in Mexico, and especially in some part near the border with the USA, a new kind of &quot;Spanish&quot; has been talked among several population groups, the &quot;Spanglish&quot; (yes, it just not a [bad] movie, but also a cultural term) and sometimes, this permeates to the &quot;engineering layer&quot; and the they start using terms like &quot;linkear&quot; (to link, create a link) or &quot;parsear&quot; (to parse), so I ask every programmer that I know just use plain English.&lt;/p&gt;&#xA;" OwnerUserId="3140" LastActivityDate="2010-09-22T16:27:35.687" CommunityOwnedDate="2010-09-22T16:27:35.687" />
  <row Id="6368" PostTypeId="1" CreationDate="2010-09-22T16:34:14.013" Score="12" ViewCount="547" Body="&lt;p&gt;Think back to 1990, what OS were you using day-to-day?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What will the next 20 years have in-store? &lt;/p&gt;&#xA;" OwnerUserId="96" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-09-22T19:04:36.527" LastActivityDate="2010-10-14T16:02:29.177" ClosedDate="2011-01-16T21:00:38.650" Title="What will Operating Systems look like in 20 years?" Tags="&lt;prediction&gt;&lt;future&gt;&lt;operating-systems&gt;" AnswerCount="18" CommentCount="8" FavoriteCount="1" />
  <row Id="6369" PostTypeId="2" ParentId="1768" CreationDate="2010-09-22T16:34:56.543" Score="4" ViewCount="" Body="&lt;p&gt;The short answer: C++ for the application guts, and embed Python or Javascript to handle the GUI and scripting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I asked the same question in 1995 when I wrote EZSurvey. Perhaps the story will help you make a decision. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We knew that market forces would require us to issue a new version every 12-18 months, so whatever money we spent on developing the software, we had to earn back in about a year. The longer the software architecture could go between major revisions, the more money we would make.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We started with Borland C++ and OWL, because it wasn't certain whether Windows or OS/2 would win, and Borland had the best language tools. The first version was released with about 100k lines of code and 2 FTEs of programmer time behind it. C++ seemed like a good choice then, because there were a lot of algorithms in C/C++ floating around usenet and most programmers were good at C/C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a business application, your code spends most of its time iterating over lists. C++ is not particularly good at that, because it's easy to mistype a &lt;strong&gt;for&lt;/strong&gt; loop, but the preprocessor lets you write macros to create your own list syntax, like &lt;strong&gt;BEGIN(i,list) .. END&lt;/strong&gt;. C++ is also dangerous because it lets you use pointers, and you spend a lot of time tracking down uninitialized pointers, but you use container templates and smart pointers to get around that. A friend pointed out that any mature software system implements most of the features of common lisp, no matter what language they're written in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then Microsoft bought Borland's programmers, and we wondered whether we should switch to MFC. We decided that it wasn't worth the cost to learn the new framework and port our code, because the customers were more interested in getting new features &lt;strong&gt;now&lt;/strong&gt; than in what compiler we were using.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In 1997, we started &lt;em&gt;except for&lt;/em&gt; features, as in &quot;the customer wants the standard program, &lt;em&gt;except for&lt;/em&gt; this one menu they want disabled. This happens a lot in business applications. The C++ preprocessor makes it easy to make special builds for certain clients. But some clients wanted new features that nobody else would, and we didn't want to spend senior developer time on them, so we started work on embedding a scripting language so that less experienced staff could write extensions. (This seems to be a common approach nowadays).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By 2000, we had gone through several scripting languages. TCL just can't handle anything very complicated. Python seemed promising, and good programmers seemed to like it. But we were looking for a language that &lt;em&gt;bad&lt;/em&gt; programmers could write in. We settled on JavaScript, because people already knew it from fiddling with their web pages. But it doesn't have type-checking, so the application's core functionality stayed in C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In 2001, we realized that JavaScript was pretty nifty, and it was a lot cheaper to manipulate the application data in JavaScript than it was in C++, except that we still needed the type-checking that C++ enforced to keep the data architecture together. We started separating the GUI from the data handling, which is standard practice now, but it was kind of a new thing back then. For every function that manipulated the data model, we left a hook for it to be replaced by an external JavaScript script.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this point, the C++ code looked nothing like C++. All of the pointer and list manipulation was handled by macros, with frequent calls to the scripting language. Over the next 6 years, the C++ code stayed at about 250k lines, while the JavaScript code swelled to over 300k lines, mostly written by people other than (and cheaper than) the core developers, who were focused on updating the GUI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In 2007, we sold the company to Vovici. What we would have done next would be to re-write the GUI as a web application, executed mostly on the client side with that AJAX thing that everyone was talking about. Here, having a lot of the code already in JavaScript is a huge advantage. In fact, the tail wags the dog, and the scripting environment lives on as JSDB, &lt;em&gt;JavaScript for databases&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, to summarize:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Having the source code to all your libraries and components is really, really important. If we had used some third-party OCX control way back in 1999, we would have been totally screwed in 2003. &lt;/li&gt;&#xA;&lt;li&gt;Eventually, a customer will want you to port your logic to some weird platform (like Solaris or AIX), and being able to recompile the entire thing will get you the job.&lt;/li&gt;&#xA;&lt;li&gt;Choose a primary language for which there's a lot of code available. When you need a FFT to find periodicity in consumer transactions, you don't want to waste time porting boilerplate algorithms into, say, PHP. Java and C# both fit the bill today, as well as C++.&lt;/li&gt;&#xA;&lt;li&gt;The preprocessor can open up new lines of business, but chasing down pointer errors in C++ is a significant cost. If you choose C++, use macros and templates to handle pointers.&lt;/li&gt;&#xA;&lt;li&gt;Include an open-source scripting language like Python or JavaScript, depending on who you want to let fiddle with the application internals.&lt;/li&gt;&#xA;&lt;li&gt;GUI programming is where all those pointer problems come up. Do as much of that as you can in a scripting language.&lt;/li&gt;&#xA;&lt;li&gt;Don't bet against Microsoft.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3358" LastActivityDate="2010-09-22T16:34:56.543" CommentCount="1" />
  <row Id="6370" PostTypeId="2" ParentId="6368" CreationDate="2010-09-22T16:35:24.517" Score="1" ViewCount="" Body="&lt;p&gt;this might be a good start - &lt;a href=&quot;http://www.pcworld.com/article/143122/microsoft_develops_new_operating_system_from_scratch.html&quot; rel=&quot;nofollow&quot;&gt;http://www.pcworld.com/article/143122/microsoft_develops_new_operating_system_from_scratch.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the singularity OS from Microsoft using modern technologies and algorithms&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also think that ... we'll see very lean OS like we're seeing on embedded devices ... thus OS might be so embedded that the average user don't even know that it's there !!&lt;/p&gt;&#xA;" OwnerUserId="2296" LastEditorUserId="2296" LastEditorDisplayName="" LastEditDate="2010-09-22T20:05:17.847" LastActivityDate="2010-09-22T20:05:17.847" />
  <row Id="6372" PostTypeId="2" ParentId="5921" CreationDate="2010-09-22T16:37:10.973" Score="0" ViewCount="" Body="&lt;p&gt;I keep my wrists above the keyboard, and I type like I typist, alternating hands and using different hands for chords, the way I learned in typing class (on a typewriter).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have had one repetitive strain injury in my life, and it was from taking notes by hand in college, not from typing.  I fixed how I held my right hand on the desk and the problem went away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I only bother to respond because I see lots of computer users forcing their wrists down and reaching up further than they can comfortably reach with their wrists down; I also see a lot of discussion among programmers about hand and wrist injuries.  Coincidence?  My grandmother first pointed this out to me: she's been a secretary/typist for seventy years and has never had a strain injury.&lt;/p&gt;&#xA;" OwnerUserId="1935" LastActivityDate="2010-09-22T16:37:10.973" CommunityOwnedDate="2011-03-26T13:37:08.243" />
  <row Id="6376" PostTypeId="2" ParentId="6368" CreationDate="2010-09-22T16:41:25.237" Score="1" ViewCount="" Body="&lt;p&gt;the user interface will utilize &lt;a href=&quot;http://en.wikipedia.org/wiki/Augmented_reality&quot; rel=&quot;nofollow&quot;&gt;augmented reality&lt;/a&gt;, in 3d and be projected from your android handheld device and/or everyday appliances and items:yr car, glasses, refrigerator.  There will be no discernible difference between local data and that stored in the cloud/internet&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-09-22T19:49:52.487" LastActivityDate="2010-09-22T19:49:52.487" CommentCount="1" />
  <row Id="6377" PostTypeId="2" ParentId="1483" CreationDate="2010-09-22T16:44:01.513" Score="0" ViewCount="" Body="&lt;p&gt;Mexican here&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whend doing my own work, i mostly use english, as many tutorials and examples are in english, i do code a lot in english though all comments are done un spanish, but when working on my companies software, i do code all in spanish&lt;/p&gt;&#xA;" OwnerUserId="3363" LastActivityDate="2010-09-22T16:44:01.513" CommunityOwnedDate="2010-09-22T16:44:01.513" />
  <row Id="6378" PostTypeId="2" ParentId="39" CreationDate="2010-09-22T16:45:11.110" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I abhor a system designed for the&#xA;  &quot;user,&quot; if that word is a coded&#xA;  pejorative meaning &quot;stupid and&#xA;  unsophisticated.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Ken Thompson&lt;/p&gt;&#xA;" OwnerUserId="1935" LastActivityDate="2010-09-22T16:45:11.110" CommunityOwnedDate="2010-09-22T16:45:11.110" />
  <row Id="6380" PostTypeId="2" ParentId="6368" CreationDate="2010-09-22T16:54:32.870" Score="12" ViewCount="" Body="&lt;p&gt;The main screen will have a multi-colored logo, a text box, and a search button. Results will be in the form of a bunch of text links pointing to all relevant data chunks.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-22T16:54:32.870" CommentCount="2" />
  <row Id="6383" PostTypeId="2" ParentId="6368" CreationDate="2010-09-22T16:59:54.760" Score="2" ViewCount="" Body="&lt;p&gt;Somehow I suspect we'll still be stuck in a WIMP metaphor, at least some of the time. Touch is nice, but it doesn't scale to full day workloads.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-22T16:59:54.760" />
  <row Id="6384" PostTypeId="2" ParentId="5972" CreationDate="2010-09-22T17:02:51.990" Score="0" ViewCount="" Body="&lt;p&gt;C/C++ - Visual Studio&#xA;C# - Visual Studio&#xA;Java - Depends. I use java mostly for mobiles, so, for example, Blackberry I use the Blackberry JDE, for any other J2ME mobile, Java ME SDK 3. I once used JCreator PRO to develop, one, when i didnt knew specified tools existed to code for mobiles, xDDDDD&#xA;JavaScript - Visual Studio, and that's cause i use mostly on my ASP.Net web applications&#xA;Visual Basic - 6.0 on MSVB6, .Net on Visual Studio (there's a software my companie bought and that was debeloped on 6; I was assigned to mantain and develope it further&#xA;PHP - DreamWeaver&lt;/p&gt;&#xA;" OwnerUserId="3363" LastActivityDate="2010-09-22T17:02:51.990" CommunityOwnedDate="2011-04-30T19:57:04.087" />
  <row Id="6388" PostTypeId="2" ParentId="39" CreationDate="2010-09-22T17:06:28.150" Score="16" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Any fool can write code that a&#xA;  computer can understand. Good&#xA;  programmers write code that humans can&#xA;  understand.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Martin Fowler (in his book &lt;a href=&quot;http://martinfowler.com/books.html#refactoring&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Refactoring&lt;/em&gt;&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="281" LastActivityDate="2010-09-22T17:06:28.150" CommunityOwnedDate="2010-09-22T17:06:28.150" />
  <row Id="6390" PostTypeId="2" ParentId="1599" CreationDate="2010-09-22T17:09:26.817" Score="0" ViewCount="" Body="&lt;p&gt;I tend to construct sentences that are effectively impossible to parse without parenthesis that function as expression constructs rather than as the normal English construct.&lt;/p&gt;&#xA;" OwnerUserId="1572" LastActivityDate="2010-09-22T17:09:26.817" CommunityOwnedDate="2010-09-22T17:09:26.817" />
  <row Id="6392" PostTypeId="2" ParentId="6368" CreationDate="2010-09-22T17:12:10.880" Score="6" ViewCount="" Body="&lt;p&gt;I've got NO clue.  But I can't wait until it hits Beta!!&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-22T17:12:10.880" />
  <row Id="6393" PostTypeId="2" ParentId="39" CreationDate="2010-09-22T17:13:33.640" Score="9" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A few months writing code can save you a few hours in design.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Which is modified from:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A few months in the laboratory can save you a few hours in the library.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="8775" LastEditorDisplayName="" LastEditDate="2011-01-27T21:32:08.727" LastActivityDate="2011-01-27T21:32:08.727" CommunityOwnedDate="2010-09-22T17:13:33.640" />
  <row Id="6394" PostTypeId="1" AcceptedAnswerId="8822" CreationDate="2010-09-22T17:13:48.540" Score="9" ViewCount="386" Body="&lt;p&gt;When drafting a project proposal, do you use any standard template? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What features/information should be included? What is nice to have included? What sort of boiler plate information should I shove in?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you find any design pattern or concept particularly helpful?&lt;/p&gt;&#xA;" OwnerUserId="1525" LastActivityDate="2010-10-01T16:37:34.380" Title="Project Proposal templates/requirements" Tags="&lt;project-management&gt;&lt;business&gt;&lt;management&gt;&lt;documentation&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="5" />
  <row Id="6395" PostTypeId="1" AcceptedAnswerId="6402" CreationDate="2010-09-22T17:14:35.970" Score="22" ViewCount="490" Body="&lt;p&gt;What tools and techniques do you use for exploring and learning an unknown code base? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am thinking of tools like &lt;code&gt;grep&lt;/code&gt;, &lt;code&gt;ctags&lt;/code&gt;, unit-tests, functional test, class-diagram generators, call graphs, code metrics like &lt;code&gt;sloccount&lt;/code&gt; and so on. I'd be interested in your experiences, the helpers you used or wrote yourself and the size of the codebase, with which you worked with. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realize, that this is also a process (happening over time) and that learning can mean &quot;can give a ten minute intro&quot; to &quot;can refactor and shrink this to 30% of the size&quot;. Let's leave that open for now.&lt;/p&gt;&#xA;" OwnerUserId="436" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:07:32.923" LastActivityDate="2010-11-16T15:29:53.087" Title="How do you dive into large code bases?" Tags="&lt;learning&gt;&lt;tools&gt;" AnswerCount="10" CommentCount="0" FavoriteCount="14" />
  <row Id="6396" PostTypeId="2" ParentId="6352" CreationDate="2010-09-22T17:17:06.317" Score="8" ViewCount="" Body="&lt;p&gt;Companies keep suing each other, there are 100's of examples for that. This doesn't really mean end of the road all the time.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-09-22T17:17:06.317" CommentCount="2" />
  <row Id="6398" PostTypeId="2" ParentId="5921" CreationDate="2010-09-22T17:18:15.707" Score="0" ViewCount="" Body="&lt;p&gt;I keep one of these at my desk and have gotten into the habit of picking it up and doing a few reps when I'm waiting for builds, thinking hard, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/x4sG7.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="194" LastActivityDate="2010-09-22T17:18:15.707" CommunityOwnedDate="2011-03-26T13:37:08.243" />
  <row Id="6399" PostTypeId="2" ParentId="2204" CreationDate="2010-09-22T17:24:56.943" Score="0" ViewCount="" Body="&lt;p&gt;I don't see deep indentations as a categorical problem to be removed (nor do I see refactoring as the true answer for everything).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Typically instead of nested ifs, I like to write logical statements:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (foo &amp;amp;&amp;amp; bar &amp;amp;&amp;amp; baz) &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;rather than&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if foo &#xA; if bar&#xA;   if baz&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-22T17:24:56.943" CommentCount="3" />
  <row Id="6400" PostTypeId="2" ParentId="811" CreationDate="2010-09-22T17:24:57.517" Score="3" ViewCount="" Body="&lt;p&gt;Coders write code not English.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coders don't like writing documentation because it doesn't help the code run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coders aren't good at writing documentation because its a poor medium to express their ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Literate programming seems to be the idea of taking documentation to the next level where the code is more of an after-thought. Maybe it would work, but to most coder it looks like obnoxious documentation.&lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-09-22T17:24:57.517" CommentCount="5" />
  <row Id="6401" PostTypeId="2" ParentId="6352" CreationDate="2010-09-22T17:25:48.880" Score="2" ViewCount="" Body="&lt;p&gt;Programming languages evolve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that Google will evolve Java under a different name together with Dalvik as the VM. And Oracle will probably evolve Java in a different direction. Or Google could start to use Python or another languages more, and as the default language on Android.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think Google will use Go on Android since Go is meant to be a new &quot;system programming language&quot; for e.g. web servers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE: &lt;a href=&quot;http://www.infoq.com/news/2010/10/apple-deprecates-java&quot; rel=&quot;nofollow&quot;&gt;Apple deprecates Java&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;This means that the Apple-produced runtime will not be maintained at the same level, and may be removed from future versions of Mac OS X.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If Java wasn't already dead on the client side, I don't think it will be better now. Swing is pretty outdated as GUI framework and I don't think that Oracle will change that. So for now I only see Java as an alternative on the server-side.&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-21T21:11:50.877" LastActivityDate="2010-10-21T21:11:50.877" CommentCount="2" />
  <row Id="6402" PostTypeId="2" ParentId="6395" CreationDate="2010-09-22T17:27:05.720" Score="11" ViewCount="" Body="&lt;p&gt;what I've always done is the following:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Open multiple copies of my editor (Visual Studio/Eclipse/Whatever)  and then debug and do line breaks step through the code.  Find out the flow of the code, stack trace through to see where the key points are and go from there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can look at method after method - but it's nice if I can click on something and then see where in the code it's executed and follow along.  Let's me get a feel for how the developer wanted things to work.&lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-09-22T17:27:05.720" CommunityOwnedDate="2010-09-22T17:27:05.720" CommentCount="2" />
  <row Id="6403" PostTypeId="2" ParentId="39" CreationDate="2010-09-22T17:28:37.263" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;How do we convince people that in programming simplicity and clarity—in short: what mathematicians call &quot;elegance&quot;—are not a dispensable luxury, but a crucial matter that decides between success and failure?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;mdash; &lt;a href=&quot;http://www.cs.utexas.edu/users/EWD/transcriptions/EWD06xx/EWD648.html&quot; rel=&quot;nofollow&quot;&gt;Edsger W. Dijkstra&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="281" LastActivityDate="2010-09-22T17:28:37.263" CommunityOwnedDate="2010-09-22T17:28:37.263" CommentCount="2" />
  <row Id="6404" PostTypeId="2" ParentId="39" CreationDate="2010-09-22T17:29:31.567" Score="44" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;On two occasions I have been asked,&#xA;  &quot;Pray, Mr. Babbage, if you put into&#xA;  the machine wrong figures, will the&#xA;  right answers come out?&quot; In one case a&#xA;  member of the Upper, and in the other&#xA;  a member of the Lower House put this&#xA;  question. I am not able rightly to&#xA;  apprehend the kind of confusion of&#xA;  ideas that could provoke such a&#xA;  question.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; Charles Babbage&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Arguably the first documented case of a programmer encountering stupid user questions.&lt;/p&gt;&#xA;" OwnerUserId="3073" LastActivityDate="2010-10-08T11:29:17.330" CommunityOwnedDate="2010-09-22T17:29:31.567" CommentCount="1" />
  <row Id="6405" PostTypeId="2" ParentId="39" CreationDate="2010-09-22T17:30:05.423" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A beautiful program is like a&#xA;  beautiful theorem: It does the job&#xA;  elegantly. It has a simple and&#xA;  perspicuous structure; people say,&#xA;  “Oh, yes. I see that’s the way to do&#xA;  it.”&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- Butler Lampson&lt;/p&gt;&#xA;" LastEditorUserId="281" LastEditorDisplayName="" LastEditDate="2010-09-22T17:45:51.440" LastActivityDate="2010-09-22T17:45:51.440" CommunityOwnedDate="2010-09-22T17:30:05.423" />
  <row Id="6406" PostTypeId="2" ParentId="39" CreationDate="2010-09-22T17:37:14.123" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Debugging is like farting — it's not so bad when it's your own code.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="281" LastActivityDate="2010-09-22T17:37:14.123" CommunityOwnedDate="2010-09-22T17:37:14.123" CommentCount="1" />
  <row Id="6407" PostTypeId="2" ParentId="5972" CreationDate="2010-09-22T17:39:29.230" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Erlang&lt;/strong&gt; - Emacs&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-22T17:39:29.230" CommunityOwnedDate="2011-04-30T19:57:04.087" />
  <row Id="6408" PostTypeId="2" ParentId="779" CreationDate="2010-09-22T17:40:13.557" Score="16" ViewCount="" Body="&lt;p&gt;How many Functions are there in the Object Class ? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compared to the other answers posted, I think this one should win by miles :-).&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-09-22T17:40:13.557" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="3" />
  <row Id="6410" PostTypeId="2" ParentId="4384" CreationDate="2010-09-22T17:43:13.677" Score="2" ViewCount="" Body="&lt;p&gt;It may not seem much, but, when i got it working the way i wanted, i did felt like i destroyed a big rock to marble with juse my finger (props to whoever gets the reference)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been working solely on a blackberry application for the companie i work for. Recently, they wanted to integrate a bluethoot capable receipt printer to the application. The devices did cost quite a lot, and they where asking a licesing fee to use the bluethoot API from RIM and the API of the printer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They asked me to work on some other way to make it work. Well, using the bluethoot J2ME api, i was able to connect to the printer, then, using the developer manual i was able to get from the printer's manufacturer web site, and with no helpfull advice from their customer support, i was able to design a communication language between the blackberry and the printer, using tags, i created a parser, which read the info i wanted to print, in what format i wanted it to be printed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I kinda find it like a pretty impresive feat for me, because the whole communication had to be made via binnary code, and most of the code in the devs guide was stated in hex, and i had never had to deal with hex or binary before, well, not in that certain way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The hardest part was, i had no way to connect the printer to the blackberry simulator, to debug the code, i had to compile it, install it in my blackberry and then run the program from it, and that was each time i made a modification. But still, when i managed to make the program print what i wanted to print, in the way i wanted, and also, printing the image i wanted it to (man, that was the hardest part of all!!!!) i felt like i deserbed a pat in the back. Thoug no one gave me one and my bosses dismissed complete that part of the project, and decided that GPS localization was more important than receipt printing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, was awesome when it worked. I still hold that source code very dear to me, :D&lt;/p&gt;&#xA;" OwnerUserId="3363" LastActivityDate="2010-09-22T17:43:13.677" />
  <row Id="6411" PostTypeId="2" ParentId="5972" CreationDate="2010-09-22T17:46:54.303" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C&lt;/strong&gt; --- Emacs&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-22T17:46:54.303" CommunityOwnedDate="2011-04-30T19:57:04.087" />
  <row Id="6414" PostTypeId="2" ParentId="779" CreationDate="2010-09-22T18:09:09.977" Score="27" ViewCount="" Body="&lt;p&gt;&quot;What's the method signature of [I forget] from the [some Java reflection class]?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Uh... do you want me to look it up?&quot;   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The guy was visibly disgusted that I didn't know.  For a web applications job.&lt;/p&gt;&#xA;" OwnerUserId="1791" LastActivityDate="2010-09-22T18:09:09.977" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="1" />
  <row Id="6416" PostTypeId="2" ParentId="779" CreationDate="2010-09-22T18:17:26.460" Score="6" ViewCount="" Body="&lt;p&gt;How much can you drink (alcohol).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was a weird company, the boss and his son smoked so everyone worked in a smoke filled room. Luckily the found somebody else.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-22T18:17:26.460" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="1" />
  <row Id="6417" PostTypeId="1" AcceptedAnswerId="6420" CreationDate="2010-09-22T18:20:53.630" Score="6" ViewCount="172" Body="&lt;p&gt;It's not uncommon for projects to fail.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a programmer, how do you deal with projects that fail?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some definitions of failure:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Misses deadline.&lt;/li&gt;&#xA;&lt;li&gt;Code and functionality does not do what it's supposed to.&lt;/li&gt;&#xA;&lt;li&gt;Software becomes vapor-ware or endless number of phases, essentially undeliverable.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Or maybe you have your own definition(s) of failure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you start pointing fingers?  Do you blame yourself, the requirements, the technology, the management, the client, etc?  Do you do a lessons learned session as a team?&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-22T22:13:20.597" Title="How to deal with programming projects that fail?" Tags="&lt;team&gt;&lt;project&gt;&lt;failure&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="1" />
  <row Id="6419" PostTypeId="2" ParentId="4384" CreationDate="2010-09-22T18:33:20.523" Score="2" ViewCount="" Body="&lt;p&gt;As a consultant in Seattle, I was working for a small Macintosh house.  My task was to add AAF (the media container du jour) parsing support to their software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the AAF source code and specs were open-source for a fee, except for the Microsoft Structured Storage library it required.  After some digging, I discovered that Microsoft was using this container format for their Mac Office platform.  So, I was able to copy the library out of an Office install.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, the Structured Storage library was compiled as PEF, and the software + AAF needed to be compiled for Mach-O (the ABI du jour).  So I crafted a PPC assembly shim library to marshall the data and make the proper jump to and from the PEF library from Mach-O.&lt;/p&gt;&#xA;" OwnerUserId="3368" LastActivityDate="2010-09-22T18:33:20.523" CommentCount="1" />
  <row Id="6420" PostTypeId="2" ParentId="6417" CreationDate="2010-09-22T18:33:46.787" Score="5" ViewCount="" Body="&lt;p&gt;You should do lessons learned for all projects, failed or succeeded. There is a lot to learn from a good project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;True failed projects have been very rare for me. In addition to understanding what happened, I do the &quot;ask why 5 times&quot; thing to try to get to underlying causes. There is also the matter of why I didn't notice what was happening and either do something about it or at least get out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think everyone's first position is to blame everything - the client, the tech, the business problem being tackled, the methodology, the team members, the language, the platform, heck even the way we take our coffee in the morning. The nice thing about a retrospective (even if it happens only in your own head) is the chance to reconcile with some or all of those factors and realize they weren't the issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my only real failure of the last 30+ years, the project had been in requirements for literally years when we arrived. We got requirements settled. One came from management and hundreds from the end users. We wrote code, lots of code, some of it brilliant. There was testing and acceptance testing and changes and arguments and change requests and unpaid work and paid work and last minute bolt ons and surreal humour and escalations to VPs and all of that. Eventually it just all kind of stumbled to a halt. The reason for the failure was that the single management requirement was unacceptable to the end users. And no matter how many things they got their way on, they could not get past that one and would never accept the system. But management would not have it any other way. So that was that and though we got a lot of money it was, in the end, all horrible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I still work in that technology, I still use those processes and I still work with the same people. I would even do another project for that client. But when the end users say they don't like something their own management has injected into the requirements, I will remember that writing good code that works does not protect you from a failed project. And I will do something about it then, not a year or two later.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-09-22T18:33:46.787" CommentCount="2" />
  <row Id="6421" PostTypeId="2" ParentId="39" CreationDate="2010-09-22T18:41:39.070" Score="18" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A programmer is a device for turning&#xA;  caffeine into code.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(Not original to me, but associated with me through appearances on DotNetRocks etc. Lifted from a Usenet sig, I long ago forgot whose, which was no doubt inspired by &lt;a href=&quot;http://greatsayings.blogspot.com/2008/03/you-dont-have-to-be-rocket-scientist-to.html&quot; rel=&quot;nofollow&quot;&gt;Paul Erdos&lt;/a&gt;.)&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-09-22T18:41:39.070" CommunityOwnedDate="2010-09-22T18:41:39.070" CommentCount="3" />
  <row Id="6422" PostTypeId="2" ParentId="779" CreationDate="2010-09-22T18:43:26.957" Score="28" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;When does your visa expire?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'm a US citizen, Chinese-American.  English is my native language and the question came up after about 10 minutes of conversation.&lt;/p&gt;&#xA;" OwnerUserId="3226" LastActivityDate="2010-09-22T18:43:26.957" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="7" />
  <row Id="6423" PostTypeId="2" ParentId="779" CreationDate="2010-09-22T18:53:10.400" Score="8" ViewCount="" Body="&lt;p&gt;When I was near graduation in college, I had an interview with a woman who started every question like this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Share with me your feelings about...&#xA;  &lt;br&gt;&#xA;  Share with me your thoughts on...&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;She was not at all technical, so all these were touchy/feely questions about odd social behaviors and situations.  It was extremely awkward.&lt;/p&gt;&#xA;" OwnerUserId="3073" LastActivityDate="2010-09-22T18:53:10.400" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="2" />
  <row Id="6424" PostTypeId="2" ParentId="3066" CreationDate="2010-09-22T18:53:43.347" Score="0" ViewCount="" Body="&lt;p&gt;I didnt like how classes require me to name the this pointer instead of allowing me to access member variables implicitly. That was the #1 reason for me not to continue learning it. I felt if i cant access member vars easily that many other things will not be easy as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also wasnt impress with the go programming language. However i do like boo even tho i never programmed with it.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-22T18:53:43.347" />
  <row Id="6425" PostTypeId="1" AcceptedAnswerId="6439" CreationDate="2010-09-22T18:58:55.940" Score="6" ViewCount="537" Body="&lt;p&gt;I've heard that it's better to go in earlier (Like Wednesday if they say they are doing interviews Wednesday, Thursday, Friday) because they aren't sick and tired of interviewing people.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seems reasonable to think that if you scheduel an interview for 4pm on the last day that they might just want to get through it.  On the other hand you might be the one they remember most when making their decision...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thoughts?&lt;/p&gt;&#xA;" OwnerUserId="3240" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:54:07.833" LastActivityDate="2010-10-02T15:54:07.833" Title="Better to go in for an interview earlier or later?" Tags="&lt;career&gt;&lt;interview&gt;" AnswerCount="6" CommentCount="3" />
  <row Id="6427" PostTypeId="2" ParentId="724" CreationDate="2010-09-22T19:04:04.883" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Objective-C Categories&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Categories offer an easy way to extend an object's functionality at runtime (think composition versus inheritance).  The classic example is to add a spellchecker to the NSString class.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;@interface NSString (SpellChecker)&#xA;- (BOOL) checkSpelling;&#xA;@end&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Also useful for low impact bug-fixes, since a category's implementation of a method will override its parents implementation.&lt;/p&gt;&#xA;" OwnerUserId="3368" LastActivityDate="2010-09-22T19:04:04.883" CommentCount="1" />
  <row Id="6428" PostTypeId="2" ParentId="380" CreationDate="2010-09-22T19:04:44.587" Score="2" ViewCount="" Body="&lt;p&gt;A foosball table, and a boss who doesn't mind a game or two himself. Really helps the motivation even when it's time to work on the boring bits.&lt;/p&gt;&#xA;" OwnerUserId="3278" LastActivityDate="2010-09-22T19:04:44.587" CommentCount="2" />
  <row Id="6429" PostTypeId="2" ParentId="6425" CreationDate="2010-09-22T19:04:57.660" Score="2" ViewCount="" Body="&lt;p&gt;Abe, are you sure you are not over-thinking this? :-} If the interviewers are mature enough, I don't think any of these would make a huge difference.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-22T19:04:57.660" CommentCount="4" />
  <row Id="6430" PostTypeId="2" ParentId="6157" CreationDate="2010-09-22T19:06:20.253" Score="20" ViewCount="" Body="&lt;h2&gt;Regular Expressions&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Not just simple usage, but really understanding how to use REs.  This is probably the most important &lt;em&gt;tool&lt;/em&gt; that I have ever learned and I use it every day regardless of editor or platform.  Once you understand them well, the syntax is just sugar.&lt;/p&gt;&#xA;" OwnerUserId="3042" LastActivityDate="2010-09-22T19:06:20.253" CommentCount="2" />
  <row Id="6432" PostTypeId="2" ParentId="6425" CreationDate="2010-09-22T19:09:30.227" Score="7" ViewCount="" Body="&lt;p&gt;I've always tried to schedule interviews on Tuesday, Wednesday, and Thursday. My justification is this:&#xA; - on Monday people try to get into the flow of things at work again. Something may have come up over the weekend, to which they have to pay attention and may not be 100% there during an interview. &#xA; - on Friday, people are usually trying to wrap things up and hopefully take off early.&#xA;I apply the same justification for the time of day, so I usually prefer time slots around noon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, I've had interviews on Mondays and Fridays, when I was offered jobs. In the end it is all about your personality and skills. If you know what you are talking about, you can convince people that you're the right person for the job any day of the week.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-09-22T19:09:30.227" CommentCount="1" />
  <row Id="6433" PostTypeId="2" ParentId="6368" CreationDate="2010-09-22T19:15:36.173" Score="3" ViewCount="" Body="&lt;p&gt;There will be no OS. I think we will go back to terminal-mainframe architecture. All your files will be stored and executed remotely at central mainframe. All you have is a monitor, a keyboard and internet cable.&lt;/p&gt;&#xA;" OwnerUserId="193" LastActivityDate="2010-09-22T19:15:36.173" CommentCount="5" />
  <row Id="6434" PostTypeId="2" ParentId="380" CreationDate="2010-09-22T19:16:16.967" Score="2" ViewCount="" Body="&lt;p&gt;Hand-me-down hardware. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Upgraded our server to TB hdds, don't need the 250GB ones anymore. Asked the boss/owner if he wanted to donate them to the snorfus-needs-a-new-1Tb-raid0 fund.&lt;/li&gt;&#xA;&lt;li&gt;Upgraded from a couple of small, 4 port, Gb switches to a couple large 24 port ones... boss asked if I wanted one of the old ones&lt;/li&gt;&#xA;&lt;li&gt;We do lots of cabling in our business... I'm allowed reasonable quantities of cat5e. I have to get my own ends though (have my own crimper). Hardly a problem.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And with most companies, the product/service they offer are usually free/low cost for employees in comparison to what they normally sell for. True in my case, but I don't need our product/service really.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-22T19:16:16.967" />
  <row Id="6435" PostTypeId="2" ParentId="6368" CreationDate="2010-09-22T19:18:08.980" Score="6" ViewCount="" Body="&lt;p&gt;I think most general purpose computers will be a lot rarer in homes (used mainly by enthusiasts and businesses). Moore's law will make it more practical to use other devices for most things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Phones and tablets (with roll-out keyboards and styluses) for web browsing.&lt;/li&gt;&#xA;&lt;li&gt;Webapps on tablets for spreadsheets and word-processing.&lt;/li&gt;&#xA;&lt;li&gt;Tablets for image manipulation.&lt;/li&gt;&#xA;&lt;li&gt;Consoles for gaming.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Why:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's much harder or impossible to pirate webapps and embedded software/games, so companies will focus more resources on those platforms.&lt;/li&gt;&#xA;&lt;li&gt;Less flexible platforms allow developers to focus less on edge-cases.&lt;/li&gt;&#xA;&lt;li&gt;Tablets and phones are much more portable.&lt;/li&gt;&#xA;&lt;li&gt;Tablets, phones and consoles are locked down and so require less maintenance. This also means the manufacturer can provide more of a guarentee of fixing broken devices.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="40" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-09-22T21:25:36.363" LastActivityDate="2010-09-22T21:25:36.363" CommentCount="8" />
  <row Id="6437" PostTypeId="2" ParentId="811" CreationDate="2010-09-22T19:21:19.373" Score="-1" ViewCount="" Body="&lt;p&gt;I write horrible english (which is my native language) and great code. What do you think will happen if i tried literate programming? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, that code still looks like C++ and i have no idea how other languages will be handled. The wikipedia example looks completely stupid. &lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-22T19:21:19.373" />
  <row Id="6438" PostTypeId="2" ParentId="257" CreationDate="2010-09-22T19:24:28.300" Score="1" ViewCount="" Body="&lt;p&gt;I take &quot;programming retreats&quot; pretty regularly, letting folks know I'll unavailable. Like a vacation, except focused on productivity. Gives the no-interruption advantages of &quot;all night coding,&quot; but for stretches of days rather than just one night. Amazing how much I can get done that way, relative to &quot;normal work schedule.&quot;&lt;/p&gt;&#xA;" OwnerUserId="2182" LastActivityDate="2010-09-22T19:24:28.300" />
  <row Id="6439" PostTypeId="2" ParentId="6425" CreationDate="2010-09-22T19:31:11.197" Score="6" ViewCount="" Body="&lt;p&gt;IMO, earlier is better.  Once they see somebody they like, they'll shut their minds to everybody else.  Even if the first candidate they loved, turns down the job, everybody who came after, will have been forgotten or will have paled in comparison.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-22T19:31:11.197" CommentCount="3" />
  <row Id="6440" PostTypeId="1" CreationDate="2010-09-22T19:33:19.443" Score="8" ViewCount="212" Body="&lt;p&gt;Part of being a successful programmers means keeping up with the ever-changing industry, constantly trying to improve one's skills, learning new technologies, etc.&#xA;What do you, as a programmer, do in your everyday life to stay on top of the game? Read blogs, follow people on Twitter, work on a side project?&lt;/p&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T17:15:52.907" LastActivityDate="2010-09-30T17:15:52.907" Title="How do you keep up with the ever-changing industry?" Tags="&lt;experience&gt;&lt;learning&gt;&lt;skills&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="2" />
  <row Id="6441" PostTypeId="2" ParentId="811" CreationDate="2010-09-22T19:39:04.223" Score="0" ViewCount="" Body="&lt;p&gt;In my humble opinions, many companies have a culture who is the opposite to the objectives of Literate Programming: they want faster results (they only cry about quality when the app is in production). In my own experience, my bosses had refuse to understand that faster results doesn't mean &quot;a program runnable the day after I asking for.&quot; For them, if a developer isn't busy typing over his keyboard, he isn't working, is &quot;wasting his time in design-non-sense&quot;. Yes, I know, my boss is an arsehole.&lt;/p&gt;&#xA;" OwnerUserId="3267" LastActivityDate="2010-09-22T19:39:04.223" />
  <row Id="6442" PostTypeId="1" CreationDate="2010-09-22T19:39:57.403" Score="4" ViewCount="226" Body="&lt;p&gt;Assuming the language provides it, what are some things to do or libs to use that every programmer should know?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My list would be&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Regular Expressions&lt;/li&gt;&#xA;&lt;li&gt;Named Pipes&lt;/li&gt;&#xA;&lt;li&gt;standard IO (std in/out/error)&lt;/li&gt;&#xA;&lt;li&gt;Executing outside executables (like imagemagik and your own scripts)&lt;/li&gt;&#xA;&lt;li&gt;How to grab an http page as a string (mostly for updates and grabbing configs from servers)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I have a similar questions about &lt;a href=&quot;http://programmers.stackexchange.com/questions/6157/what-tools-should-every-programmer-know&quot;&gt;tools&lt;/a&gt;. Also i am looking for specific answers. i dont want answers that can be done in different ways (such as learn how to synchronize threads).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know how to do the above in 3+ languages. There always seems to be things programmers dont know how to do which can make their lives easier. For the longest time i didnt know what regular expression was (although i did hear of it) and I was surprised how many people who tried to make a toolchain or complex app and did not know how to (or that you could) get the stdout from an exe they launched (they checked for errors in a very weird way or just didnt and hope it produce the expected results).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think useful, not well known and should be something every senior (or starting out) programmer should know?&lt;/p&gt;&#xA;" OwnerUserId="2528" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-22T21:54:16.207" LastActivityDate="2010-11-01T21:38:06.580" Title="Language-agnostic libs every programmer should consider learning?" Tags="&lt;language-agnostic&gt;&lt;libraries&gt;" AnswerCount="6" FavoriteCount="2" />
  <row Id="6443" PostTypeId="2" ParentId="3066" CreationDate="2010-09-22T19:40:12.790" Score="1" ViewCount="" Body="&lt;p&gt;Well, I wanted to write a simple application to connect to a MySQL database and do mathematical functions on the data. Running functions on data seems to be a natural fit to a functional language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That didn't work well (you can find remnants of the project as questions on StackOverflow). My take-away from that project was that the MS database libraries are ridiculously duplicated and hard to use. Further, the imperative paradigm is &lt;em&gt;hard&lt;/em&gt; to directly map to F#. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, the syntax is 'relatively' easy to read, but very hard to understand well enough to write in a non-trvial fashion. I found at the time (2008) a terrible gap between the &quot;hello world&quot; tutorials and the advanced technique discussion. Today, a problem is that the language has evolved so that the early material on it breaks when compiled today.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a generalized gripe about whitespace delimiting in general, and F# unfortunately falls in that bucket.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I didn't have a good experience with it. But, I think if you have a &lt;strong&gt;full-time&lt;/strong&gt; project with it, in a &lt;strong&gt;domain that maps well&lt;/strong&gt;, F# is going to be a right solution (Along with Haskell, OCaml, and Lisp).&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-22T19:40:12.790" CommentCount="4" />
  <row Id="6444" PostTypeId="2" ParentId="6440" CreationDate="2010-09-22T19:41:00.513" Score="1" ViewCount="" Body="&lt;p&gt;I regularly visit &lt;a href=&quot;http://www.infoq.com/&quot; rel=&quot;nofollow&quot;&gt;InfoQ&lt;/a&gt; - &lt;em&gt;Tracking change and innovation in the enterprise software development community&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-22T19:41:00.513" />
  <row Id="6445" PostTypeId="2" ParentId="6425" CreationDate="2010-09-22T19:45:35.613" Score="2" ViewCount="" Body="&lt;p&gt;It seems every project I've been on for the last several years is in a constant hire mode, so I've gotten the chance to interview lots of folks in many scenarios.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I've generally seen is being either first or last is roughly the same... folks will remember you just the same. People in the middle of the schedule have the hardest time, but that's only when there's a small difference in candidates.  Stand out candidates do just that... stand out. Be prepared, be personable, be well dressed, etc and  let the rest sort itself out. (ie control what you can and relax about the rest).&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-22T19:45:35.613" />
  <row Id="6446" PostTypeId="2" ParentId="811" CreationDate="2010-09-22T19:46:15.377" Score="17" ViewCount="" Body="&lt;p&gt;I first saw it in a book of Knuth's writings, and thought it looked neat.  Then I tried to use the literary programming display to comprehend what was going on in the program, and found it harder than it looked.  It may have been that I was too used to going through program listings, but it seemed confusing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I looked at the source code, and that turned me off then and there.  I'd have to learn to write programs in an entirely new way, with less correspondence between the program text and what the compiler saw, and saw no corresponding benefit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition, people can write long and convincing arguments that the code is doing X when it's actually doing Y, and I've run into my share of misleading comments.  I developed a fondness for reading the code to see what it's doing fairly early.  Literate programming is the antithesis of that.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-22T19:46:15.377" CommentCount="1" />
  <row Id="6447" PostTypeId="2" ParentId="6368" CreationDate="2010-09-22T19:47:41.003" Score="5" ViewCount="" Body="&lt;p&gt;Minority Report style holographic touchable interfaces (as mentioned in every future tech article). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Minus Tom Cruise hopefully.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/01oPE.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-22T19:47:41.003" CommentCount="5" />
  <row Id="6448" PostTypeId="2" ParentId="6368" CreationDate="2010-09-22T19:49:28.120" Score="0" ViewCount="" Body="&lt;p&gt;In 1990, I was using Mac OS (long before OSX) and Solaris every day.  Oddly enough, my current Linux systems are very similar to a combination of the two.  Since I'm not seeing systems with easily usable interfaces and bad mechanics next to systems with robust mechanics and more complicated interfaces, I really don't see where the OS of the future is going.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-22T19:49:28.120" />
  <row Id="6450" PostTypeId="2" ParentId="6417" CreationDate="2010-09-22T19:58:07.680" Score="2" ViewCount="" Body="&lt;p&gt;Walk away, bitch for a few days to a week while I avoid doing things of significance, then try to figure out what went wrong and how not to let it happen again.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-22T19:58:07.680" />
  <row Id="6451" PostTypeId="1" AcceptedAnswerId="6481" CreationDate="2010-09-22T20:02:02.780" Score="5" ViewCount="281" Body="&lt;p&gt;So the title says it all.  What's your opinion?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think I could make an argument both ways.  You could argue that &lt;strong&gt;DBAs are absolutely necessary&lt;/strong&gt; - they help the developers design and optimize tables, indexes, etc to avoid performance issues down the line.  This way we don't have to end up doing major refactoring later on when it's difficult and error-prone.  Developers also tend to ignore the database and usually don't have the time or know-how to do performance analysis and optimization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, you could also argue that &lt;strong&gt;DBAs are absolutely useless&lt;/strong&gt;.  Developers already deal with all the difficult concepts in software - multithreading, concurrency, caching, etc - why can't they manage the database as well?  How difficult is it really to design tables and indexes?  This also clears up some of the unnecessary red-tape we also seem to have to deal with when DBAs join the party.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've always preferred to work without DBAs.  The most successful projects I've worked on have all been done with absolutely no DBAs involved - the developers simply picked up the slack.  I am also yet to meet a DBA who embraces &lt;strong&gt;things like ORMs&lt;/strong&gt; and don't try to force Stored Procedures or Hungarian notation on me.&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-23T02:04:37.237" Title="What's your opinion of working with or without Database Administrators (DBAs)?" Tags="&lt;recommendations&gt;&lt;holy-war&gt;&lt;team&gt;&lt;database-development&gt;" AnswerCount="8" CommentCount="1" FavoriteCount="3" />
  <row Id="6452" PostTypeId="2" ParentId="6417" CreationDate="2010-09-22T20:02:22.467" Score="0" ViewCount="" Body="&lt;p&gt;I blamed everyone except me.... haha, just kidding. I thing i do is write a &quot;Mea Culpa&quot; doc, with all the things &quot;i did&quot; wrong. maybe doesn't help to that project, but is a good way of not repeat the same mistakes&lt;/p&gt;&#xA;" OwnerUserId="3267" LastActivityDate="2010-09-22T20:02:22.467" />
  <row Id="6453" PostTypeId="2" ParentId="6368" CreationDate="2010-09-22T20:02:56.557" Score="7" ViewCount="" Body="&lt;p&gt;I think it will look something like this:&#xA;&lt;img src=&quot;http://i.imgur.com/vXkNx.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer this to anything proposed so far.&lt;/p&gt;&#xA;" OwnerUserId="1935" LastActivityDate="2010-09-22T20:02:56.557" CommentCount="5" />
  <row Id="6454" PostTypeId="2" ParentId="4384" CreationDate="2010-09-22T20:02:57.507" Score="1" ViewCount="" Body="&lt;p&gt;The most heroic accolade I ever got:  I'd made a change to a system, and it mostly worked.  One of our engineers asked if it could do X, and suddenly I realized what I'd done wrong, so I was immediately able to fix it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At that job, I also once had to devise an efficient way of doing something, so I rolled my own algorithm for a mutable priority queue and got it working.  I figured they didn't realize how lucky they were that I was the one working on that.  Come next review time, I found I was correct:  they didn't realize it.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-22T20:02:57.507" />
  <row Id="6456" PostTypeId="2" ParentId="6368" CreationDate="2010-09-22T20:07:33.290" Score="2" ViewCount="" Body="&lt;p&gt;It will be a huge browser window over something most people won't know what the hell it is (but some IT guys will called it &quot;linux&quot;)&lt;/p&gt;&#xA;" OwnerUserId="3267" LastActivityDate="2010-09-22T20:07:33.290" />
  <row Id="6458" PostTypeId="2" ParentId="6333" CreationDate="2010-09-22T20:11:07.207" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Objective-C:&lt;/strong&gt; The result of a drunken late-night tryst between C and Smalltalk.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-09-22T20:11:07.207" CommentCount="2" />
  <row Id="6459" PostTypeId="2" ParentId="6031" CreationDate="2010-09-22T20:12:03.023" Score="0" ViewCount="" Body="&lt;p&gt;far as i known MariaDb isn't productive quality already. But i think that she is (yes, is a woman) the future. Software is more the people involve in it that the branding name&lt;/p&gt;&#xA;" OwnerUserId="3267" LastActivityDate="2010-09-22T20:12:03.023" />
  <row Id="6460" PostTypeId="2" ParentId="6368" CreationDate="2010-09-22T20:14:30.520" Score="3" ViewCount="" Body="&lt;p&gt;I see computers (or computing surfaces) everywhere. Your operating system settings and &quot;favorite&quot; applications are associated with your login - giving you the same experience from apps to minor settings everywhere. Sort of like roaming profiles on a massive scale. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There may be just one or a few vendors making the &quot;base&quot; operating system (which includes just enough to boot a device). Applications and add-ons, however, will be made by &lt;em&gt;everyone&lt;/em&gt;. Sort of an &quot;app store&quot; for everything. Also - most applications will be rented - want Microsoft Office? No problem, pay $25 dollars a year - or $1 for a four-hour period (plus adjustments for inflation). The idea of buying an app to install will be about as popular as the floppy disk is today. Of course, bandwidth, processing power, and (some) local storage should be enough to satisfy gamers too.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-09-22T20:14:30.520" />
  <row Id="6461" PostTypeId="2" ParentId="6451" CreationDate="2010-09-22T20:15:39.573" Score="4" ViewCount="" Body="&lt;p&gt;It's nice to have the DBA's to handle all the sysadmin stuff, which is the least exciting aspect of the work.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-09-22T20:15:39.573" CommentCount="3" />
  <row Id="6462" PostTypeId="2" ParentId="6442" CreationDate="2010-09-22T20:16:18.897" Score="1" ViewCount="" Body="&lt;p&gt;How to print &quot;Hello World&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-09-22T20:16:18.897" CommentCount="1" />
  <row Id="6464" PostTypeId="2" ParentId="6442" CreationDate="2010-09-22T20:29:48.903" Score="1" ViewCount="" Body="&lt;p&gt;how about basic graphics operations? DrawLine, DrawRectangle, DrawPixel? &lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-09-22T20:29:48.903" />
  <row Id="6465" PostTypeId="2" ParentId="67" CreationDate="2010-09-22T20:32:40.373" Score="1" ViewCount="" Body="&lt;p&gt;I subscribe to about 50 programming blogs.  Those are my favorites that I gradually selected from &lt;a href=&quot;http://www.noop.nl/2009/06/top-200-blogs-for-developers-q2-2009.html&quot; rel=&quot;nofollow&quot;&gt;Jurgen Appelo's Top 200 Blogs for Developers&lt;/a&gt; (with a few additions that weren't in the his top 200).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the sake of brevity, here are some of those 50.  I'll try not to duplicate others' answers.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blog.dhananjaynene.com/&quot; rel=&quot;nofollow&quot;&gt;/var/log/mind&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://codemonkeyism.com/&quot; rel=&quot;nofollow&quot;&gt;Code Monkeyism&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://codebetter.com/&quot; rel=&quot;nofollow&quot;&gt;CodeBetter.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.codethinked.com/&quot; rel=&quot;nofollow&quot;&gt;CodeThinked&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.targetprocess.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Edge of Chaos&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://gojko.net/&quot; rel=&quot;nofollow&quot;&gt;Gojko Adzic&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.estherderby.com/weblog/blogger.html&quot; rel=&quot;nofollow&quot;&gt;Insights you can use&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.tedneward.com/&quot; rel=&quot;nofollow&quot;&gt;Interoperability Happens&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.noop.nl/&quot; rel=&quot;nofollow&quot;&gt;NOOP.NL&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.markhneedham.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Mark Needham&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://testobsessed.com/&quot; rel=&quot;nofollow&quot;&gt;Test Obsessed&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.yourdonreport.com/-&quot; rel=&quot;nofollow&quot;&gt;The Yourdon Report&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-09-22T20:32:40.373" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="6466" PostTypeId="2" ParentId="6451" CreationDate="2010-09-22T20:37:51.990" Score="1" ViewCount="" Body="&lt;p&gt;My battles with DBA's (especially Oracle DBAs) were legendary in these parts.  I think the root of it comes from most of them being failed programmers or control freaks who use their administrative rights over their databases to create a little fiefdom over which they have dictatorial power (especially Oracle DBAs).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;DBA: &quot;We dont like the structure or column names for the new table, so we're not going to add it&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: &quot;Dont care.  Thats what the new version uses, and it will pop up a message box if that table isnt there telling the user that the DBA hasnt kept the database up to date.  Then you can explain to underwriting why the whole department is at a standstill.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;DBA: &quot;I hate you&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: &quot;back at ya&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Needless to say, unless the database is so truly massive such that it requires full time administration just to keep it running, DBAs are, in my book, completely optional.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-22T20:37:51.990" CommentCount="7" />
  <row Id="6467" PostTypeId="2" ParentId="6440" CreationDate="2010-09-22T20:38:21.867" Score="1" ViewCount="" Body="&lt;p&gt;About blogs: &lt;a href=&quot;http://programmers.stackexchange.com/questions/67/can-you-recommend-some-good-programming-blogs/6465#6465&quot;&gt;here's my answer to the question about programming blog recommendations&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About Twitter: I've gradually compiled two Twitter lists, one agile/lean, another mostly coding and language experts.  (Of course, many of these people defy such strict categorization.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are the links:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://twitter.com/#/list/az1/languages-and-coding&quot; rel=&quot;nofollow&quot;&gt;Languages and coding list&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://twitter.com/az1/agile-and-lean&quot; rel=&quot;nofollow&quot;&gt;Agile and lean list&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-09-22T20:38:21.867" />
  <row Id="6468" PostTypeId="2" ParentId="3684" CreationDate="2010-09-22T20:40:03.550" Score="2" ViewCount="" Body="&lt;p&gt;I always have the &lt;a href=&quot;http://testobsessed.com/wp-content/uploads/2007/02/testheuristicscheatsheetv1.pdf&quot; rel=&quot;nofollow&quot;&gt;Test Heuristics Cheat Sheet&lt;/a&gt; put together by Elisabeth Hendrickson, Dale Hemery and others to hand. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not language specific, but it's a great tool for test driven development and unit testing when thinking about missing functionality and how to make your code more robust.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-22T20:40:03.550" />
  <row Id="6469" PostTypeId="2" ParentId="6451" CreationDate="2010-09-22T20:44:26.243" Score="1" ViewCount="" Body="&lt;p&gt;It is necessary to have ONE ONLY person to do db tasks, because &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;(s)he&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;maintains development, production, testing.. environments.&lt;/li&gt;&#xA;&lt;li&gt;resolves any design conflicts to other team members.&lt;/li&gt;&#xA;&lt;li&gt;reviews all scripts from other team members to avoid the data lost issues&lt;/li&gt;&#xA;&lt;li&gt;just does backups and know where its are located :)&lt;/li&gt;&#xA;&lt;li&gt;is a person who is responsible for these &quot;%#$%@@%$&quot; databases. :) &lt;/li&gt;&#xA;&lt;li&gt;is thinking in other way as dba than is doing a developer.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1483" LastActivityDate="2010-09-22T20:44:26.243" />
  <row Id="6471" PostTypeId="2" ParentId="6440" CreationDate="2010-09-22T20:45:00.953" Score="1" ViewCount="" Body="&lt;p&gt;My main sources, in order, are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Twitter&lt;/li&gt;&#xA;&lt;li&gt;Podcasts&lt;/li&gt;&#xA;&lt;li&gt;Blogs&lt;/li&gt;&#xA;&lt;li&gt;Books&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Twitter is an endless flow of awesome information once &lt;a href=&quot;http://www.tweetdeck.com/&quot; rel=&quot;nofollow&quot;&gt;you know how to use it&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-22T20:45:00.953" />
  <row Id="6472" PostTypeId="2" ParentId="6451" CreationDate="2010-09-22T20:49:26.690" Score="1" ViewCount="" Body="&lt;p&gt;It helps when the roles and responsibilities are clearly defined.  As a developer having a DBA means when the server goes down, it's not my problem (I love that part).  It also means I've got a gatekeeper for all my database development (I hate that part).  But I shouldn't expect them to have all the responsibility of keeping the database up and running and no have the authority to say what happens on the server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Problems arise when the DBA goes on a power trip, and roadblocks development.  I don't think it's it's a problem with having a DBA, it's a problem with that person.  Both parties need to have an understanding of the priorities of the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the same time, butting heads often brings about a better solution then any one person can on their own.&lt;/p&gt;&#xA;" OwnerUserId="1620" LastActivityDate="2010-09-22T20:49:26.690" />
  <row Id="6473" PostTypeId="2" ParentId="1262" CreationDate="2010-09-22T20:50:32.960" Score="8" ViewCount="" Body="&lt;p&gt;Another feature I find incredibly useful is the ability to change indentation. &lt;code&gt;:15,30&amp;gt;&amp;gt;&lt;/code&gt; indents all lines from 15-30 (inclusive) twice, while &lt;code&gt;:15,30&amp;lt;&amp;lt;&lt;/code&gt; de-indents the same lines twice.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-22T20:50:32.960" />
  <row Id="6474" PostTypeId="2" ParentId="6451" CreationDate="2010-09-22T20:53:06.813" Score="5" ViewCount="" Body="&lt;p&gt;I have yet to see a database designed by application programmers that performed well over time or that correctly enforced data integrity. And I've look at hundreds of databases designed by a lot of people.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having a specialist as early as possible is the smartest thing you can do. Databases will maintain the company's data for long after the application and the fancy new tool has been replaced by something else.  Databases are harder to refactor, so considering performance must happen in the intial design if you don't want a company performance-based shut-down in a couple of years. This is not premature optimization, there are known bad designs and known poor query techiniques. They should not be used because the developer wants to save a couple of minutes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason why application programmers and dbas don't get along is often that they have different priorities. For me, a database MUST have data integrity (or the data is worthless), the database performance trumps things like &quot;elegant&quot; code, and if you can't query the data after you put it in due to poor design, what good is it?  Database people are inherently more conservative about change as databasea are hard to fix once they have a couple of million rows in them and the performance problems that were there all along become so bad that no one can work. Application devs always want to use the next new cool tool, database people know that there is a good chance the newest tool will make their database work badly as they grow in size, so we resist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Database are often also affected from many sources other than your applciation or affect other databases in turn. Application programmers tend to be focused on their piece of the puzzle, dbas have to look at the large picture. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both sides are at fault in this war. Some dbas are unwilling to hear the devs concerns about deadlines and speeding up development and some application programmers dismiss everything a dba says as unimportant. (see @GrandmasterB'd response). The relationship works best when both sides talk to each other, both sides behave like adults and treat each other with respect, and when both are involved in design. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And no we are not all failed programmers. Most of us just like data. No wonder some of you can't get along with your dbas if you have attitudes like that. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-22T20:53:06.813" CommentCount="2" />
  <row Id="6475" PostTypeId="2" ParentId="6067" CreationDate="2010-09-22T21:04:07.543" Score="0" ViewCount="" Body="&lt;p&gt;As someone else mentioned above, &lt;strong&gt;F#&lt;/strong&gt;. Been enjoying very much Jon Skeets Functional Programming in F# and C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once I get my C# (and possibly F# if it keeps up) up to speed, I plan on going to C++, C and/or Assembly. Work my way up into high-end, current languages... then work my way down to the guts/nitty gritty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still new here, so I couldn't upvote other answers, or comment.&lt;/p&gt;&#xA;" OwnerUserId="2536" LastActivityDate="2010-09-22T21:04:07.543" CommunityOwnedDate="2010-09-22T21:04:07.543" />
  <row Id="6476" PostTypeId="1" AcceptedAnswerId="6901" CreationDate="2010-09-22T21:06:47.337" Score="9" ViewCount="173" Body="&lt;p&gt;Lately I've been experimenting with using a collaborative text editor (or plugin such as NppNetNote for Notepad++) for two or more partners to edit source code. I've been met with unexpected success, and the workflow differs from anything I've ever experienced. My findings:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;It's fun to fight over code, but also very satisfying to collaborate on it in real time.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Two people can work collaboratively &lt;em&gt;or&lt;/em&gt; separately, and be constantly aware of each other's changes.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The comments end up becoming a free-form IM conversation about the code around them.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The medium is &lt;em&gt;enormously&lt;/em&gt; less restrictive than trying to work back and forth over IM proper.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It's like pair programming, but with no overhead to switch roles between driver and navigator.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Has anyone tried this before? What were some of the advantages and problems that you encountered? For those that haven't tried it, I strongly encourage you to find a friend (or two, or more!) and make an attempt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; See &lt;a href=&quot;http://en.wikipedia.org/wiki/Pair_programming#Remote_pair_programming&quot; rel=&quot;nofollow&quot;&gt;Wikipedia&lt;/a&gt; for something like more explanation, though in the context of pair programming specifically.&lt;/p&gt;&#xA;" OwnerUserId="2107" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T00:09:47.607" LastActivityDate="2011-01-25T17:09:09.983" Title="Have you tried programming via Collaborative Text Editing?" Tags="&lt;productivity&gt;&lt;development-process&gt;&lt;team&gt;&lt;collaboration&gt;" AnswerCount="2" CommentCount="5" FavoriteCount="2" />
  <row Id="6477" PostTypeId="2" ParentId="5972" CreationDate="2010-09-22T21:07:42.360" Score="10" ViewCount="" Body="&lt;h2&gt;Ruby&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;There's &lt;a href=&quot;http://survey.hamptoncatlin.com/survey/stats#question_6&quot; rel=&quot;nofollow&quot;&gt;a question in the Hampton's Ruby Survey&lt;/a&gt; that may provide some concrete numbers about the &quot;text editor&quot; of preference in the Ruby world. Here's a chart of the results (&lt;em&gt;at the time of writing&lt;/em&gt;):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Szskw.png&quot; alt=&quot;A chart of the results for the &amp;quot;text editor of preference&amp;quot; question of the Hampton's Ruby Survey&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The results suggest that &lt;strong&gt;TextMate&lt;/strong&gt; is the most popular text editor among Ruby developers. It is worth noting that TextMate's popularity seems to be declining; so is the popularity of Eclipse based editors. On the other hand, the popularity of Vim, which I personally use, seems to be increasing.&lt;/p&gt;&#xA;" OwnerUserId="915" LastActivityDate="2010-09-22T21:07:42.360" CommunityOwnedDate="2011-04-30T19:57:04.087" CommentCount="2" />
  <row Id="6478" PostTypeId="2" ParentId="5269" CreationDate="2010-09-22T21:08:33.093" Score="2" ViewCount="" Body="&lt;p&gt;Clojure (and lisp in general) is a different way of think about programming that the mainstream programming languages (I'm not talking about history, I know that lisp is one of the older pl, but that isn't the point), and &lt;em&gt;that&lt;/em&gt; is a very good reason to learned it.&lt;/p&gt;&#xA;" OwnerUserId="3267" LastEditorUserId="3267" LastEditorDisplayName="" LastEditDate="2010-09-22T21:34:24.260" LastActivityDate="2010-09-22T21:34:24.260" CommentCount="1" />
  <row Id="6479" PostTypeId="2" ParentId="4274" CreationDate="2010-09-22T21:09:13.153" Score="1" ViewCount="" Body="&lt;p&gt;Not only should you look into another language, but make plans to immerse yourself in it (Rosetta Stone software uses this approach.). You don't want to run the risk of, &quot;I know how to do this in C#, so what's it called in Python?&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take a look at what you've been doing and identify the problem areas. Then find a language that does it better. You may have to try out more than one, but once you find the best candidate, start a project using it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or use your same language, but develope on a different platform like smart phones.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-22T21:09:13.153" />
  <row Id="6480" PostTypeId="2" ParentId="380" CreationDate="2010-09-22T21:14:13.833" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Free gym membership.&lt;/li&gt;&#xA;&lt;li&gt;Flexible working hours.&lt;/li&gt;&#xA;&lt;li&gt;Relaxed and friendly coworkers.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3374" LastActivityDate="2010-09-22T21:14:13.833" CommentCount="3" />
  <row Id="6481" PostTypeId="2" ParentId="6451" CreationDate="2010-09-22T21:16:51.503" Score="6" ViewCount="" Body="&lt;p&gt;This is such a loaded question because of the way the industry separates programmers from DBAs in most shops.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I like to have a &lt;strong&gt;Data Architect&lt;/strong&gt; on the project team.  I call this person a Data Architect, rather than a DBA, because I see this is a completely distinct role.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A Data Architect is someone that is on the project team, reporting to the project management the same way as the programmers, and has the ability to help design the database to meet the projects needs.  This person will also be a database specialist so they know how to design and manage the database to be both efficient, and support the projects features.  These folks are FABULOUS to work with, because they use their database tuning skills to improve the project in a way that non-database specialist may not know how to do.  I have only met 2 or 3 people in my entire career that I would call Data Architects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The vast majority of DBA's have a completely different purpose and mindset.  Their responsibility is care and feeding of the databases themselves, backups, keeping the server running, finding and killing blocking processes, and trying to tune existing tables based on metrics of already poorly written queries.  In the vast majority of places, DBA's work for the infrastructure groups, and HAVE ABSOLUTELY NO incentive to help a project move forward.  Their job is to not have database problems, which is nearly impossible to do if they don't work on the project helping design the database.  So what happens is they become a hindrance to the project, becoming gatekeepers and preventing change.  These types of people, I don't like working with.  They act only as a obstruction to normal progress.&lt;/p&gt;&#xA;" OwnerUserId="3073" LastActivityDate="2010-09-22T21:16:51.503" CommentCount="5" />
  <row Id="6483" PostTypeId="2" ParentId="6157" CreationDate="2010-09-22T21:28:26.063" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Your keyboard&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learn to write touch. Some of my co-workers still look at their keyboard sometimes. &lt;/li&gt;&#xA;&lt;li&gt;Learn to use CTRL+ left and right arrow keys to effectively skip words with your caret. ( You'd be surprised how many people don't know about this one)&lt;/li&gt;&#xA;&lt;li&gt;The Home and End keys are your friend.&lt;/li&gt;&#xA;&lt;li&gt;Remap important shortcuts so you can do them with your left hand only. (example: I have mapped ALT+Z in Visual studio to switch between header and source ).&lt;/li&gt;&#xA;&lt;li&gt;Visual Studio has a nifty feature where if you hit ALT+ left or right you will navigate to previous and next location you've been in your code. Extremely useful when working in multiple files accross multiple functions.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also, although not entirely keboard related. Use Code Completion. I find it kind of strange that people would rather type a 50 character code line manually when they can get away with 4 keystrokes.&lt;/p&gt;&#xA;" OwnerUserId="3374" LastEditorUserId="3374" LastEditorDisplayName="" LastEditDate="2010-09-22T21:35:31.417" LastActivityDate="2010-09-22T21:35:31.417" CommentCount="5" />
  <row Id="6484" PostTypeId="2" ParentId="6442" CreationDate="2010-09-22T21:29:07.947" Score="1" ViewCount="" Body="&lt;p&gt;XML/INI parsing for configuration of your app. Once you know how to do this, changing based on the installation becomes so much easier, and you don't have to write your own. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-22T21:29:07.947" CommentCount="1" />
  <row Id="6485" PostTypeId="2" ParentId="6442" CreationDate="2010-09-22T21:33:27.193" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;File system manipulation:&#xA;open,read,write,append,close,delete,rename,make&#xA;directory,change directory,remove&#xA;directory,modify permissions,modify&#xA;ownership (stdio was already&#xA;mentioned but this goes beyond that)&lt;/li&gt;&#xA;&lt;li&gt;Date and time handling&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-22T21:33:27.193" CommentCount="1" />
  <row Id="6486" PostTypeId="1" AcceptedAnswerId="6494" CreationDate="2010-09-22T21:34:16.310" Score="4" ViewCount="448" Body="&lt;p&gt;Have you ever encountered a person who you thought was a good or really good programmer, only to be baffled that he or she used hunt-and-peck when typing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since programmer strive to write as little code as possible, I figured that the best programmer out there probably is a hunt-and-pecker. Why? Because his/her code is so damn awesome and small that even with hunt-and-peck, that person outperforms all touch-typing programmers. ^^&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-18T17:37:59.257" Title="Do good hunt-and-peck programmers exist?" Tags="&lt;productivity&gt;&lt;great-programmer&gt;&lt;touch-typing&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="1" />
  <row Id="6487" PostTypeId="2" ParentId="6486" CreationDate="2010-09-22T21:37:35.503" Score="7" ViewCount="" Body="&lt;p&gt;Yes -- I consider myself one.  I pretty much know where all the keys are, but have never taken a touch typing course and generally only use a couple of fingers on each hand.  Yet I can type pretty fast, usually without looking at the keys very much.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-09-22T21:44:57.220" LastActivityDate="2010-09-22T21:44:57.220" CommentCount="8" />
  <row Id="6488" PostTypeId="2" ParentId="6395" CreationDate="2010-09-22T21:38:57.947" Score="2" ViewCount="" Body="&lt;p&gt;I always try and start with the entry point into the program, since all programs have one (Eg main method, main class, init, etc). This will then point me to what gets started and sometimes how things are linked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that I drill down. The database and DAO are configured somewhere, so I get a sense of how things are stored. Perhaps some kind of global instance class is started as well, and there I can figure out whats being stored. And with good refractoring tools, I can find out who calls what.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I then try and find where the interface is configured and handled, since this is the next entry point of information. Refractoring, searching, and debugging tools aid in my search. I can then figure out where the handling of information starts and ends, working my way through all the class files.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I then try and write the flow down on some paper, just to initially wrap my head around things. The submit button passes to the generic verification which then gets passed to the DAO or database and then gets stored in the database. This is a gross oversimplification of most apps, but its the general idea. Pen and paper are extremely helpful here, since you can jot down everything quickly and not have to worry about formatting in a program that was supposed to help you.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-22T21:38:57.947" CommunityOwnedDate="2010-09-22T21:38:57.947" />
  <row Id="6489" PostTypeId="2" ParentId="6486" CreationDate="2010-09-22T21:48:12.263" Score="2" ViewCount="" Body="&lt;p&gt;Hunt &amp;amp; peck - no, but I know/knew (&lt;em&gt;r.i.p.&lt;/em&gt;) several who used &lt;em&gt;slow two-fingers type technique&lt;/em&gt;. Some of them are very good at what they do, and mind you, this is not only my opinion. They came from an &lt;em&gt;old school&lt;/em&gt; which encouraged thinking before typing, since when typing before thinking, you usually just have to retype it again afterwards. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thinking first, then they developed the idea and process on paper (in rough), only then they start &lt;em&gt;developing it&lt;/em&gt; ... by that time they generally have the whole idea of how it should work, what should go where and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;p.s. Mind you, I know a lot of opposites as well, so any generalization as to this, will probably give false conclusions.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-22T21:48:12.263" CommentCount="3" />
  <row Id="6490" PostTypeId="2" ParentId="1262" CreationDate="2010-09-22T21:58:16.427" Score="4" ViewCount="" Body="&lt;p&gt;the command dd (delete current line).  I use this one so much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, being able to type something like 3dd and delete the next 3 lines is wonderful.  I've never seen this in another editor =D&lt;/p&gt;&#xA;" OwnerUserId="2835" LastActivityDate="2010-09-22T21:58:16.427" CommentCount="7" />
  <row Id="6491" PostTypeId="2" ParentId="6338" CreationDate="2010-09-22T22:01:52.067" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;SVN&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Has great tools on every OS, even in some IDEs&lt;/li&gt;&#xA;&lt;li&gt;Branching is easy&lt;/li&gt;&#xA;&lt;li&gt;Linear development cycle, perfect for single or multiple developers&lt;/li&gt;&#xA;&lt;li&gt;Extremely simple, and GUIs simplify even more&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-22T22:01:52.067" CommentCount="2" />
  <row Id="6492" PostTypeId="2" ParentId="2715" CreationDate="2010-09-22T22:03:05.587" Score="0" ViewCount="" Body="&lt;p&gt;I use the first method simply because it is more compact and allows more code on the screen. I myself have never had a problem with pairing up braces (I always write them out, together with the &lt;code&gt;if&lt;/code&gt; statement before adding the condition, and most environments allow you to jump to the matching brace).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you &lt;em&gt;did&lt;/em&gt; need to pair up braces visually, then I would prefer the second method. However that allows less code at one time which requires you to scroll more. And that, for me at least, has a greater impact on reading code than having neatly aligned braces. I hate scrolling. Then again, if you need to scroll across a single &lt;code&gt;if&lt;/code&gt; statement, it is most likely too large and needs refactoring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But; the most important thing of all is consistency. Use one or the other - never both!&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-22T22:03:05.587" CommunityOwnedDate="2010-11-02T20:52:36.780" />
  <row Id="6493" PostTypeId="2" ParentId="6440" CreationDate="2010-09-22T22:04:46.360" Score="2" ViewCount="" Body="&lt;p&gt;I'm currently experimenting one thing related to that:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On 10 questions I answer on StackOverflow, I try to pick at least 2 or 3 that I don't know (or I'm not sure of) the answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It force me to learn new things everyday, and it works very well. Every single day, I learn from others, thanks to their questions or the answers of others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I was a consultant, I applied the same strategy. Since I had the choice between many opportunities, I selected the ones in which I was the least qualified for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It works.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-09-22T22:23:21.780" LastActivityDate="2010-09-22T22:23:21.780" />
  <row Id="6494" PostTypeId="2" ParentId="6486" CreationDate="2010-09-22T22:05:27.407" Score="5" ViewCount="" Body="&lt;p&gt;Back when I first wrote Fortran for a mainframe, I got the privilege (?) of meeting one of the &quot;old hands&quot; there. His typing had been done mostly on card punches and (probably) teletype machines. So while it wasn't exactly hunt and peck, he still only used two fingers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He typed with a style clearly developed to ensure a clean &quot;punch&quot; on a manual card punch machine -- he'd start by bringing his forearm nearly vertical, basically as close to his shoulder as possible, with the forefinger extended and slightly curved. He then swung his forearm down so the forefinger &lt;em&gt;crushed&lt;/em&gt; the intended key, then repeated. He was quite proficient at that, managing around 35-40 WPM with two fingers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest problem was that he (quite literally) destroyed keyboards at a terrific pace. Within a month or so, nothing less than his style of typing would get any response from his terminal at all. After three or four months, the keyboard needed replacement. He was the only one there who got the privilege of a terminal with a detachable keyboard, simply because being able to replace it quickly and easily saved time and money in the long term (though his seniority may have helped).&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-09-22T22:05:27.407" CommentCount="2" />
  <row Id="6495" PostTypeId="2" ParentId="2051" CreationDate="2010-09-22T22:06:13.287" Score="3" ViewCount="" Body="&lt;p&gt;Client: When the power is lost, the electronic door lock should go to the failsafe position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: Yes, of course. Just for clarification -- the failsafe position is &quot;unlocked&quot;, right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Client: Could you make it configurable in software whether the door is locked or unlocked when the power fails?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: (speechless).&lt;/p&gt;&#xA;" OwnerUserId="631" LastActivityDate="2010-09-22T22:06:13.287" CommunityOwnedDate="2010-09-22T22:06:13.287" CommentCount="2" />
  <row Id="6496" PostTypeId="2" ParentId="6395" CreationDate="2010-09-22T22:09:16.290" Score="5" ViewCount="" Body="&lt;p&gt;How do you eat an elephant? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One bite at a time :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, I try to talk to the authors of the code first. &lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-22T22:09:16.290" CommunityOwnedDate="2010-09-22T22:09:16.290" CommentCount="4" />
  <row Id="6497" PostTypeId="2" ParentId="6417" CreationDate="2010-09-22T22:13:20.597" Score="1" ViewCount="" Body="&lt;p&gt;There is a great book on the subject called the Death March: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/013143635X&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Death-March-2nd-Edward-Yourdon/dp/013143635X&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I highly suggest you to read it. You may recognize your project(s) in many descriptions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no single answer as it highly depends on many complex components of your organization, including politics...&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-22T22:13:20.597" />
  <row Id="6498" PostTypeId="2" ParentId="6394" CreationDate="2010-09-22T22:15:18.297" Score="1" ViewCount="" Body="&lt;p&gt;I did the first one from scratch, then every time I have to write one, I improve the previous.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sort of refactoring process, but for project proposal :)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-22T22:15:18.297" />
  <row Id="6499" PostTypeId="2" ParentId="6486" CreationDate="2010-09-22T22:16:24.237" Score="2" ViewCount="" Body="&lt;p&gt;Programming isn't about typing; it's about thinking. I'm pretty sure the only reason I learned to touch type was all the time I &lt;strike&gt;wasted&lt;/strike&gt; spent on IRC. If I didn't learn that way, I might very possibly have learned when transcribing papers for college into the computer, but I very much doubt that programming had anything to do with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if a programmer can't touch type, it might take him a lot more time to write documentation, so maybe an efficient programmer must know how to touch type.&lt;/p&gt;&#xA;" OwnerUserId="1806" LastActivityDate="2010-09-22T22:16:24.237" />
  <row Id="6500" PostTypeId="2" ParentId="1262" CreationDate="2010-09-22T22:18:26.400" Score="1" ViewCount="" Body="&lt;p&gt;This is rather hard to answer, due somewhat to the vagueness of the question, and somewhat to the fact that IDE's differ, and many provide features that other don't (and the fact that I've just a few of them).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, what I believe distincts Vim from other editors (yes, even Emacs, on this one) is that it is really a great &lt;em&gt;editor&lt;/em&gt;. I've in the passing of time, used many editors, and can honestly say that very few come with such a complete set of features for manipulating text, like Vim does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My style of manipulating text for example, includes very often use of (line/selection of several lines) duplication, and moving (line/selection of several lines) up and down, for which I've long ago defined quick shortcuts. I miss those features in most IDE's (although I've heard ReSharper for VS has something similar).&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-22T22:18:26.400" />
  <row Id="6501" PostTypeId="2" ParentId="6395" CreationDate="2010-09-22T22:23:24.490" Score="2" ViewCount="" Body="&lt;p&gt;Divide and conquer. I look at each functionality and the associated code, step through them and go on to the next, slowly building a picture of the whole.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the project had unit tests, I like going through them too, they're always very revealing and enlightening.&lt;/p&gt;&#xA;" OwnerUserId="1345" LastActivityDate="2010-09-22T22:23:24.490" CommunityOwnedDate="2010-09-22T22:23:24.490" />
  <row Id="6502" PostTypeId="2" ParentId="1262" CreationDate="2010-09-22T22:34:54.067" Score="2" ViewCount="" Body="&lt;p&gt;&lt;code&gt;Esc ! }&lt;/code&gt; will shove the current paragraph off to a command line filter like &lt;code&gt;fmt&lt;/code&gt; or &lt;code&gt;wc&lt;/code&gt; or &lt;code&gt;which&lt;/code&gt; and return results to the editor.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-22T22:34:54.067" CommentCount="1" />
  <row Id="6503" PostTypeId="1" AcceptedAnswerId="6509" CreationDate="2010-09-22T22:52:08.980" Score="4" ViewCount="317" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/uQOgb.png&quot; alt=&quot;Compiling&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But seriously, what do you do during compiles or lengthy test runs except slacking off? I tried different approaches, but each has some flaws.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Just wait: It's difficult to just stare at the screen and do nothing.&lt;/li&gt;&#xA;&lt;li&gt;Check email: This gets you out of the flow and doesn't give enough time to get the inbox to zero, in result you will have to process stuff more than once. &lt;/li&gt;&#xA;&lt;li&gt;Check the news: Before you notice you're going to have dozens of new browser tabs open.&lt;/li&gt;&#xA;&lt;li&gt;Take a walk: Probably the most healthy option, but you don't know when to return.&lt;/li&gt;&#xA;&lt;li&gt;Continue with coding: Seems most productive, but often you will have to backtrack a bit or switch context when the build completes.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;PS. To be more specific, I'm thinking about builds taking 5-15min, and by build I mean both compilation and a full test run necessary before commit.&lt;/p&gt;&#xA;" OwnerUserId="2313" LastEditorUserId="2313" LastEditorDisplayName="" LastEditDate="2010-09-22T23:28:35.880" LastActivityDate="2010-09-23T09:49:43.213" Title="What do you do when your code is building?" Tags="&lt;productivity&gt;&lt;builds&gt;" AnswerCount="14" CommentCount="3" FavoriteCount="3" />
  <row Id="6504" PostTypeId="2" ParentId="1262" CreationDate="2010-09-22T22:53:32.440" Score="2" ViewCount="" Body="&lt;p&gt;The &lt;code&gt;c&lt;/code&gt; command. For example, &lt;code&gt;ci&quot;&lt;/code&gt; to change inside quotes. &lt;code&gt;cw&lt;/code&gt; to change word. Lots of handy tricks with it.&lt;/p&gt;&#xA;" OwnerUserId="1767" LastActivityDate="2010-09-22T22:53:32.440" />
  <row Id="6505" PostTypeId="2" ParentId="6503" CreationDate="2010-09-22T23:00:13.940" Score="2" ViewCount="" Body="&lt;h3&gt;Eat.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Chances are, once the build's done I'll need some energy...&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-22T23:00:13.940" CommentCount="1" />
  <row Id="6506" PostTypeId="2" ParentId="6451" CreationDate="2010-09-22T23:04:59.780" Score="0" ViewCount="" Body="&lt;p&gt;It is &lt;strong&gt;absolutely crucial&lt;/strong&gt; that all schema changes be approved and enacted by DBAs...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...&quot;waiting for DB changes&quot; is a much better excuse for extensive goofing off than &lt;a href=&quot;http://programmers.stackexchange.com/questions/6503/what-do-you-do-when-your-code-is-building&quot;&gt;&quot;my code's compiling&quot;&lt;/a&gt; now that compilers are faster. &lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-22T23:04:59.780" />
  <row Id="6507" PostTypeId="2" ParentId="6503" CreationDate="2010-09-22T23:09:17.757" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Blink&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because I work with server-based languages, and it takes just a moment to refresh a browser.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-09-22T23:09:17.757" CommentCount="4" />
  <row Id="6508" PostTypeId="2" ParentId="6503" CreationDate="2010-09-22T23:21:35.517" Score="1" ViewCount="" Body="&lt;p&gt;I just wait, because &lt;a href=&quot;http://delphi.org/2008/09/the-worst-thing-about-delphi/&quot; rel=&quot;nofollow&quot;&gt;it's rare for a build to take 5-15 mins, even on gigantic projects.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-22T23:21:35.517" CommentCount="5" />
  <row Id="6509" PostTypeId="2" ParentId="6503" CreationDate="2010-09-22T23:27:16.983" Score="9" ViewCount="" Body="&lt;p&gt;I usually fix bugs that I've spotted just after running make.&lt;/p&gt;&#xA;" OwnerUserId="2051" LastActivityDate="2010-09-22T23:27:16.983" CommentCount="1" />
  <row Id="6510" PostTypeId="1" CreationDate="2010-09-22T23:28:02.533" Score="4" ViewCount="161" Body="&lt;p&gt;What is a recommended setup in terms of source control, builds, testing, bug tracking, and deployment for a downloadable PHP application (a la Wordpress, phpBB, Magento, etc.)? As a developer working on the application, what would you expect? What about as a user of the application? Please describe a setup and workflow, as well as any resources you think might be relevant or helpful.&lt;/p&gt;&#xA;" OwnerUserId="73" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-10-12T01:50:39.960" LastActivityDate="2011-04-14T19:35:09.913" Title="What is the best setup for distributing a PHP application?" Tags="&lt;best-practices&gt;&lt;php&gt;&lt;version-control&gt;&lt;testing&gt;&lt;builds&gt;" AnswerCount="3" CommentCount="4" FavoriteCount="3" />
  <row Id="6511" PostTypeId="2" ParentId="6503" CreationDate="2010-09-22T23:37:57.390" Score="0" ViewCount="" Body="&lt;p&gt;I do mostly embedded programming in C, where a complete build of the system (compiling all modules and linking) takes under 10 seconds.  Downloading to the target takes a few more seconds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I remember back when I started programming (40 years ago), submitting batch runs on an IBM-360, if you were lucky you got two compiles during the day (one in the morning and another in the afternoon), and maybe another overnight.  Spent a lot of time looking at memory dumps printed on green-bar line-printer paper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then switched to embedded programming a few years later.  Compiling might take a half an hour, programming another ten minutes but only if there were blank EEPROMS's available.  Otherwise would have to erase some first.  Spent a lot of dump looking at hex dumps in the emulator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In each case I would usually find some bugs by the time the build was finished, and either work around them or start over again.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-09-22T23:52:24.723" LastActivityDate="2010-09-22T23:52:24.723" />
  <row Id="6512" PostTypeId="1" AcceptedAnswerId="6539" CreationDate="2010-09-22T23:41:42.360" Score="1" ViewCount="413" Body="&lt;p&gt;Clearly, this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;if( foo( 5, 6, 7 ))&#xA;  do_something( arr[ 5 ]);&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;if more readable than:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;if (foo(5, 6, 7))&#xA;  do_something(arr[5])&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;yet very few people use whitespace inside their parens.  The venerable &lt;b&gt;indent&lt;/b&gt; program doesn't really provide useful options for this behavior (the option to include whitespace inside parens adds a space between consecutive occurrences, which is pretty hideous), and certainly some people will argue that it's a waste of horizontal space (but those same people would probably omit the spaces after the comma as well, so their opinion is clearly suspect), but surely there's some valid reason that this style is not more popular.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why don't you use any whitespace inside your parentheses and/or braces?&lt;/p&gt;&#xA;" OwnerUserId="3379" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:28:41.393" LastActivityDate="2010-09-29T23:28:41.393" Title="Why don't people use white space inside parentheses?" Tags="&lt;holy-war&gt;&lt;style-guide&gt;" AnswerCount="6" CommentCount="3" />
  <row Id="6513" PostTypeId="2" ParentId="6512" CreationDate="2010-09-22T23:43:57.810" Score="23" ViewCount="" Body="&lt;p&gt;I don't find it more readable at all. In fact, if you are passing a number of arguments, I'd argue the extra white space makes it less readable because it would be more spread out on the line and it could cause wrapping to become a bigger problem.&lt;/p&gt;&#xA;" OwnerUserId="1236" LastActivityDate="2010-09-22T23:43:57.810" CommentCount="2" />
  <row Id="6514" PostTypeId="2" ParentId="6512" CreationDate="2010-09-22T23:47:05.950" Score="3" ViewCount="" Body="&lt;p&gt;No, in your current form it is clearly less readable... It's harder to see where the parentheses start and end. Also, the outer parentheses of the statements have an inconsistent amount of spaces. Also, it seems unnatural that the parentheses are touching the &lt;code&gt;if&lt;/code&gt; word. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;With all these corrections, you are using way too much white space over the place and that would introduce characters shattered all over the place. Hence, the normal way tends to be more readable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For long if conditions, the distance that you eyes have to travel even comes into play.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-22T23:47:05.950" />
  <row Id="6515" PostTypeId="2" ParentId="6512" CreationDate="2010-09-22T23:55:44.340" Score="1" ViewCount="" Body="&lt;p&gt;I guess the problem is that it's not clear (to me at least). I find the second snippet much more readable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I view the opening '[' as belonging to the index '5' - it looks weird (to me) pinned to the variable name and to the closing parenthesis instead of the index.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was going to say that I like spaces after commas in parameter values, but you included those in both examples &quot;foo( 5, 6, 7 )&quot;, and I fully agree that this convention is much easier to read than &quot;foo(5,6,7)&quot;&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-09-22T23:55:44.340" />
  <row Id="6516" PostTypeId="2" ParentId="6503" CreationDate="2010-09-22T23:56:10.223" Score="4" ViewCount="" Body="&lt;p&gt;Rest my eyes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For every 20 minutes there needs to be a 20 second rest, though our souls might have been meant for coding, the bodies... not so much :(&lt;/p&gt;&#xA;" OwnerUserId="1345" LastEditorUserId="1345" LastEditorDisplayName="" LastEditDate="2010-09-23T00:19:16.447" LastActivityDate="2010-09-23T00:19:16.447" />
  <row Id="6520" PostTypeId="2" ParentId="6395" CreationDate="2010-09-23T00:07:22.803" Score="1" ViewCount="" Body="&lt;p&gt;Some things I do...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) use a source analysis tool like Source Monitor to determine the various module sizes, complexity metrics etc.. to get a feel for the project and help identify the areas that are non-trivial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) drill through the code top to bottom in Eclipse (good to have an editor that can browse references etc..) until I get to know what going on and where in the code base.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) occasionally, I will draw diagrams in Viso to get a better picture of the architecture. This can be helpful for others on the project as well.&lt;/p&gt;&#xA;" OwnerUserId="1285" LastActivityDate="2010-09-23T00:07:22.803" CommunityOwnedDate="2010-09-23T00:07:22.803" />
  <row Id="6522" PostTypeId="2" ParentId="6503" CreationDate="2010-09-23T00:15:14.147" Score="3" ViewCount="" Body="&lt;p&gt;If you believe my blog title, While I Compile; I compile my thoughts.  ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In reality though, computers and compilers are so fast now a days, that even rather large projects don't give you a whole lot of time to do stuff like write SO answers, have a sword fight, or as some former colleagues used to do; play soccer /w a crumpled up piece of paper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Short answer, other than a quick bathroom break, grabbing a glass of water, or Twitter; not much.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-23T00:15:14.147" />
  <row Id="6523" PostTypeId="2" ParentId="6503" CreationDate="2010-09-23T00:22:38.610" Score="-2" ViewCount="" Body="&lt;p&gt;I &lt;a href=&quot;http://xkcd.com/303/&quot; rel=&quot;nofollow&quot;&gt;sword fight&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/nApTD.png&quot; alt=&quot;Sword Fight XKCD - 303&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="386" LastActivityDate="2010-09-23T00:22:38.610" CommentCount="4" />
  <row Id="6524" PostTypeId="2" ParentId="6512" CreationDate="2010-09-23T00:37:30.163" Score="1" ViewCount="" Body="&lt;p&gt;It makes it look like a list and not like function arguments. It takes you a second or two to realize its functions arguments with out the parenthesis right next to the numbers.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-23T00:37:30.163" />
  <row Id="6526" PostTypeId="1" AcceptedAnswerId="13125" CreationDate="2010-09-23T00:40:31.973" Score="3" ViewCount="289" Body="&lt;p&gt;Prevalence is a simple technique to provide ACID properties to an in-memory object model based on binary serialization and write-ahead logging.  It works like this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Start with a snapshot.  Serialize the object model and write it to a file.&lt;/li&gt;&#xA;&lt;li&gt;Create a journal file.  For every call into the object model, serialize the call and its arguments.&lt;/li&gt;&#xA;&lt;li&gt;When the journal gets too big, you're shutting down, or it's otherwise convenient, perform a checkpoint: write a new snapshot and truncate the journal.&lt;/li&gt;&#xA;&lt;li&gt;To roll back or recover from a crash or power hit, load the last snapshot and re-execute all the calls recorded in the journal.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The precautions needed to make this work are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Don't let mutable object references escape or enter the prevalence layer.  You need some sort of proxy or OID scheme, as if you were doing RPC.  (This is such a common newbie mistake it's been nicknamed the &lt;a href=&quot;http://www.prevayler.org/wiki/Baptism%20Problem&quot; rel=&quot;nofollow&quot;&gt;'baptism problem'&lt;/a&gt;.)&lt;/li&gt;&#xA;&lt;li&gt;All the logic reachable from a call must be completely deterministic, and must not perform business-logic-meaningful I/O or OS calls.  Writing to a diagnostic log is probably OK, but getting the system time or launching an asynchronous delegate is generally not.  This is so that the journal replays identically even if it's restored on a different machine or at a different time.  (Most prevalence code provides an alternate time call to get the transaction timestamp.)&lt;/li&gt;&#xA;&lt;li&gt;Writer concurrency introduces ambiguity in journal interpretation, so it is prohibited.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Is it because ...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;people developed a bad taste for them after trying to use one on a project that wasn't well suited&lt;sup&gt;*&lt;/sup&gt; to it?  &lt;/li&gt;&#xA;&lt;li&gt;Klaus Wuestefeld's &lt;a href=&quot;http://www.advogato.org/article/398.html&quot; rel=&quot;nofollow&quot;&gt;strident advocacy&lt;/a&gt; &lt;a href=&quot;http://www.theserverside.com/news/thread.tss?thread_id=30735&quot; rel=&quot;nofollow&quot;&gt;turned people off&lt;/a&gt;?&lt;/li&gt;&#xA;&lt;li&gt;people who like the imperative programming model dislike &lt;a href=&quot;http://c2.com/cgi/wiki?SeparateIoFromCalculation&quot; rel=&quot;nofollow&quot;&gt;separating I/O from calculation&lt;/a&gt;, preferring instead to interleave computation with I/O and threading calls?&lt;/li&gt;&#xA;&lt;li&gt;prevalence layers are so conceptually simple and so intimately bound to the characteristics of the framework they inhabit that they're usually custom-rolled for the project, which makes them too alien/nonstandard/risky?&lt;/li&gt;&#xA;&lt;li&gt;it's just too hard to keep straight what you have to be careful not to do?&lt;/li&gt;&#xA;&lt;li&gt;newbies' heads just seem to explode when faced with something that isn't the same kind of two-tier database-driven app they learned to write in school? ;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;*&lt;/sup&gt;The &lt;a href=&quot;http://www.prevayler.org/wiki/Prevalent%20Hypothesis&quot; rel=&quot;nofollow&quot;&gt;entire data set fits in RAM&lt;/a&gt;, you don't need writer concurrency, and you don't need to do ad-hoc queries, reporting, or export to a data warehouse.  With apologies to SQLite, prevalence is an improvement on save-files, not a replacement for Oracle.&lt;/p&gt;&#xA;" OwnerUserId="2539" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-24T20:43:03.630" LastActivityDate="2010-10-19T21:55:32.130" Title="Why do so many programmers absolutely hate object prevalence layers?" Tags="&lt;holy-war&gt;&lt;object-oriented&gt;" AnswerCount="2" CommentCount="8" FavoriteCount="1" />
  <row Id="6529" PostTypeId="2" ParentId="6503" CreationDate="2010-09-23T01:00:45.333" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;&lt;/em&gt;**COFFEE*&lt;em&gt;*&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, we started a clean sheet of paper project recently with nothing to compile other than what we've done in the last 3 weeks (read:15seconds or less to build and about 30-60secs to run UTs)... my coffee intake is down to 1/2 of normal. Made me realize how often I get another cup just to fill in the time.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-23T01:00:45.333" />
  <row Id="6530" PostTypeId="1" AcceptedAnswerId="6531" CreationDate="2010-09-23T01:01:58.623" Score="4" ViewCount="325" Body="&lt;p&gt;What technologies, techniques and mindsets would be most beneficial to web developers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a relatively new developer with only 3 months working for an actual web development company. Since I've started, I've learned the wonderful world of version control using Git and how useful the command line can be. I've also learned the world of good a decent editor such as Eclipse can do with it's RegEx Search and Find and few other features I actually use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I'm wondering is what are some other things you've learned over the years that have been been really helpful and might apply to a web developer? I work primarily in PHP and front end languages (HTML/CSS/JS). &lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2011-05-26T17:50:57.580" Title="How to improve myself as a web developer?" Tags="&lt;software-developer&gt;" AnswerCount="6" />
  <row Id="6531" PostTypeId="2" ParentId="6530" CreationDate="2010-09-23T01:13:09.693" Score="7" ViewCount="" Body="&lt;p&gt;Practice.  Same as any other niche programming.  Practice, practice, practice.  Experiment, build your own projects, freelance, get involved in open source software.  It all is the same, practice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to be an excellent craftsman, you need to practice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh and did I say you need to practice?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Web specifically, it cannot hurt to remain up on technology, newest javascript frameworks, accessibility techniques/standards, etc.  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;frameworks are great but do not forget the underlying details of the language &lt;/li&gt;&#xA;&lt;li&gt;new technology is great and you should experiment with it &lt;/li&gt;&#xA;&lt;li&gt;accessibility is a must in some markets (federally funded institutions for example) and you want to understand how screen readers work with dynamic content for example such as ajax&lt;/li&gt;&#xA;&lt;li&gt;new techniques and standards are a must&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Lastly, you seem to be missing any mention of databasing.  SQL would be worth your time.  &lt;/p&gt;&#xA;" OwnerUserId="136" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-09-23T14:43:55.587" LastActivityDate="2010-09-23T14:43:55.587" CommentCount="2" />
  <row Id="6532" PostTypeId="1" AcceptedAnswerId="6540" CreationDate="2010-09-23T01:45:37.223" Score="5" ViewCount="180" Body="&lt;p&gt;I have to choose between learning WP7 and Azure.. I wish I could do both but I cant.. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So which one do you think it is better to learn, to grow professionally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am pretty excited about both, but what makes me think twice about Azure is that with their current pricing scheme I'm pretty sure I'll never be able to afford little  live webpages/services to learn, so it would only be if my company wanted to use it (which it may but it would still be quite some years down the road and who knows if I'll still be there)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, WP7 makes me think of the &quot;little programmer who got rich on appstore&quot; possibility :P but then again it is really easy to find tutorials and info about it, and it is not so easy with azure...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which technology do you think has a bigger potential/benefit to a programmer?&lt;/p&gt;&#xA;" OwnerUserId="693" LastEditorUserId="693" LastEditorDisplayName="" LastEditDate="2010-09-23T05:20:35.057" LastActivityDate="2010-09-23T17:14:49.797" Title="What could be more useful to learn, Windows Azure or Windows Phone 7?" Tags="&lt;career&gt;&lt;conferences&gt;&lt;cloud&gt;&lt;mobile&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="6534" PostTypeId="2" ParentId="6451" CreationDate="2010-09-23T02:04:37.237" Score="0" ViewCount="" Body="&lt;p&gt;You need a DB designer if your app is db centric just like you need a UI designer if your app is user facing. It is a ROLE, not a person though and needs vary. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've often been in a position with my feet firmly in both the app and db camps and its worked, but only because I saw my role as being DB heavy and sought out the right learning. You can bet though that in apps where the DB really mattered I sought out full blown DB experts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;BUT&lt;/strong&gt; there are a lot of apps out there that I would say don't really need a DBA. Just because you use DB for persistence it doesn't automatically follow that your app is DB heavy. DB Heaviness is a function of how often your app goes beyond mere CRUD and volume. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My general approach is that unless it's a full time job on a project, you need to be careful about using a DBA as a primary contributor... making your project single threaded on a &quot;chicken&quot; is not a good recipe for success.  Better to use them as a consultant and reviewer than primary contrib.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-23T02:04:37.237" />
  <row Id="6535" PostTypeId="2" ParentId="4863" CreationDate="2010-09-23T02:07:37.100" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;https://launchpad.net/nimrod&quot; rel=&quot;nofollow&quot;&gt;Nimrod&lt;/a&gt;. I just found out here and seems look a very good new language.&lt;/p&gt;&#xA;" OwnerUserId="2325" LastActivityDate="2010-09-23T02:07:37.100" CommunityOwnedDate="2010-10-22T23:54:06.263" CommentCount="1" />
  <row Id="6536" PostTypeId="2" ParentId="4274" CreationDate="2010-09-23T02:11:29.640" Score="1" ViewCount="" Body="&lt;p&gt;The Pragmatic Bookshelf folks have a new book coming out, authored by Bruce A. Tate, entitled &quot;Seven Languages in Seven Weeks&quot;.  Its purpose is to cover seven very different languages with the intention of the reader gaining a meaningful understanding of each by the time they've finished.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.pragprog.com/titles/btlang/seven-languages-in-seven-weeks&quot; rel=&quot;nofollow&quot;&gt;http://www.pragprog.com/titles/btlang/seven-languages-in-seven-weeks&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's an excellent remedy to keep yourself fresh.&lt;/p&gt;&#xA;" OwnerUserId="3386" LastEditorUserId="3386" LastEditorDisplayName="" LastEditDate="2010-09-23T05:00:52.520" LastActivityDate="2010-09-23T05:00:52.520" />
  <row Id="6538" PostTypeId="2" ParentId="870" CreationDate="2010-09-23T02:18:28.977" Score="12" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0132350882&quot; rel=&quot;nofollow&quot;&gt;Robert C. Martin's &lt;em&gt;Clean Code&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/KuNB2.jpg&quot; alt=&quot;Robert C. Martin's &amp;quot;Clean Code&amp;quot;&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Languages, frameworks, methodologies come and go, but many ideas in this book are, I suspect, forever.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-09-23T02:18:28.977" CommunityOwnedDate="2011-01-21T21:28:48.980" />
  <row Id="6539" PostTypeId="2" ParentId="6512" CreationDate="2010-09-23T02:21:37.113" Score="6" ViewCount="" Body="&lt;p&gt;It's clear to me that the only place you did &lt;em&gt;not&lt;/em&gt; add whitespace is the only place I might - between the consecutive ones:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  if ( foo(5, 6, 7) )&#xA;    do_something(arr[5])&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I'll only use whitespace with parens to break up a series of them to make matching easier. &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-23T02:21:37.113" CommentCount="1" />
  <row Id="6540" PostTypeId="2" ParentId="6532" CreationDate="2010-09-23T02:55:45.000" Score="1" ViewCount="" Body="&lt;p&gt;TL;DR - Azure. Hands down. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Azure is the Microsoft cloud play and already has far more traction than WP7 has or ever will have. It along with the Amazon and Google cloud offerings are letting small groups bootstrap their companies for far less upfront infrastructure investment than was previously possible. You have a much better chance of grabbing any kind of &quot;rich&quot; with being an Azure guru (which is released) than with WP7 (which is not, and will not fare very well).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft has come very late to the smartphone game and have historically made a lot of noise but very little progress in the mobile space. Outside of vertical integration efforts with earlier versions of Windows Mobile there has been little market presence with Microsoft offerings. The recent debacle with the Kin device does not bode well either. Apple is the 800 lb. gorilla in this space and Google is right behind them with Android. They both have strong ecosystems and it would take some serious shift in public perception to get Microsoft a seat at that table. If anything HP might have a better shot re-tooling their Palm acquisition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyhow, long ramble, but take the time to wrap your head around Azure. Get a personal account as it is very inexpensive (at one point they did not charge you if you didn't exceed a certain bandwidth threshold). That way if your company takes an interest you are way ahead of the curve. If your company doesn't it is a good thing to have in your toolkit.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-09-23T02:55:45.000" CommentCount="8" />
  <row Id="6541" PostTypeId="2" ParentId="6530" CreationDate="2010-09-23T03:16:39.703" Score="3" ViewCount="" Body="&lt;p&gt;Chris covered a lot of great points with his answer. I thought I'd add these:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learn several technologies (for example Rails, ASP.NET, Silverlight) in addition to your PHP skills so that you are not in a single Web developer niche but can take advantage of and know the pros and cons of different technology stacks.&lt;/li&gt;&#xA;&lt;li&gt;Learn about some testing frameworks for web applications (for example the testing built into Rails, or things like Watir, WatiN, Selenium, ScrewUnit). A lot of web developers leave the testing up to the users, so it can be a real selling point to some customers (and help you stand out from the crowd) if you can leave a suite of tests for your application.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-23T03:16:39.703" CommentCount="1" />
  <row Id="6542" PostTypeId="1" CreationDate="2010-09-23T03:20:45.587" Score="3" ViewCount="244" Body="&lt;p&gt;&lt;em&gt;with emphasis on outside of cs science students &amp;amp; staff&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the &quot;good ol' days&quot; LaTeX was &lt;strong&gt;it&lt;/strong&gt;; mainly because of two reasons, first - it gave such a better quality document that nothing else came close, and second - there was pretty much nothing else as a valid alternative. &lt;em&gt;I'm talking 1985-1995 here.&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And because of that, a major part of technical (or medicine, biochems., ... which have a logical way of thinking in them) users (people in general, in those professions) used it for their documents. It wasn't too hard to learn, and gave excellent results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nowadays, however, &lt;em&gt;things are a changin&lt;/em&gt;, as old Dylan would put it. MS Word** for example as the most common one, is giving &lt;em&gt;quite a nice&lt;/em&gt; result, with a much higher gain/pain ratio. For most people, it is &lt;em&gt;good enough&lt;/em&gt;. If one wants to create a document for which there is no LaTeX template, pros start to weight even more on Word's side.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, the question is this - do you think /and why - argument it/ LaTeX &amp;amp; co. has a future outside of cs sciences world (which users are inclined towards programming, and therefore usually take in LaTeX structure naturally, or at least with much less effort) given the recent trends?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;** insert your favourite word processor; MS Word was taken just as an example&lt;/p&gt;&#xA;&#xA;&lt;p&gt;p.s. This was inspired by one other question that came about recently, but also with the trend I noticed recently, but which has been going for a while now (past few years) that even technical magazines, which used to demand articles in TeX, now ask for them in .doc format (or ...).&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T17:26:31.490" LastActivityDate="2010-09-23T19:06:46.397" Title="Does LaTeX have a future outside of CS?" Tags="&lt;experience&gt;" AnswerCount="8" CommentCount="1" FavoriteCount="2" />
  <row Id="6543" PostTypeId="1" AcceptedAnswerId="6544" CreationDate="2010-09-23T03:21:09.557" Score="16" ViewCount="862" Body="&lt;p&gt;I'm starting to use the ORM recommended by the framework I choose, and though I like the idea of the added layer of abstraction the ORM provides, I'm starting to realize what this really means. It means I'm no longer working with my database (mysql) and any mysql-specific features are gone, out the window, like they don't exist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea the ORM has is that it's trying to help me by making everything database agnostic. This sounds great, but often there is a reason why I choose a specific database system. But by going the database agnostic route, the ORM takes the lowest common denominator, which means I end up with the smallest set of features (the ones supported by all databases). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What if I know that for the long term I won't be switching the underlying database? Why not access the database-specific features, too?&lt;/p&gt;&#xA;" OwnerUserId="3388" LastEditorUserId="3388" LastEditorDisplayName="" LastEditDate="2010-10-08T20:39:29.163" LastActivityDate="2010-12-17T09:39:15.590" ClosedDate="2010-12-18T20:25:04.887" Title="What are the benefits of using database abstraction by ORM?" Tags="&lt;database-development&gt;&lt;orm&gt;" AnswerCount="14" CommentCount="3" FavoriteCount="5" />
  <row Id="6544" PostTypeId="2" ParentId="6543" CreationDate="2010-09-23T03:29:44.787" Score="12" ViewCount="" Body="&lt;p&gt;I see it the same way.  Any abstraction that doesn't allow you to get underneath it when necessary is evil, because it leads to all sorts of ugly abstraction inversions in your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At work we've got a homegrown ORM that works fairly well, but for the times when we need something that its features don't explicitly provide for, there's a method that takes a string and drops it directly into the query it's generating, allowing for the use of raw SQL when it's necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMO any ORM that doesn't have this feature isn't worth the bits it's compiled from.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-23T03:29:44.787" CommentCount="5" />
  <row Id="6547" PostTypeId="2" ParentId="2475" CreationDate="2010-09-23T04:27:07.330" Score="3" ViewCount="" Body="&lt;p&gt;Knowledge. Knowledge is power. Information is wealth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Money automatically follows the knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And about Mastering please check &lt;a href=&quot;http://www.swaroopch.com/blog/to-masters-or-not/&quot; rel=&quot;nofollow&quot;&gt;To Masters or not?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Software engineering will never be a rigorous discipline with proven&#xA;  results, because it involves human&#xA;  activity.&#xA;  ~ &lt;a href=&quot;http://www.drdobbs.com/architecture-and-design/217701907;jsessionid=LRR5X0JCXI0ZJQE1GHRSKHWATMY32JVN&quot; rel=&quot;nofollow&quot;&gt;Software engineering is not the same as Computer Science!&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;After reading these articles either you will be confused or convinced :)&lt;/p&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-09-23T04:27:07.330" />
  <row Id="6548" PostTypeId="2" ParentId="6543" CreationDate="2010-09-23T04:28:58.760" Score="3" ViewCount="" Body="&lt;p&gt;The idea is neat, but I've never been moved to the point to use an ORM tool.  Its just not been a problem for me to write the SQL myself (or handle whatever storage is used).  But, I do have the luxury of working on smaller numbers of projects with longer product lives, so once the hand coded SQL and DB manipulation is in place, its in place.  Plus, you obviously then can handle any direct SQL queries you need without having to fit your process into the ORM tool's way of thinking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I guess the questions should be before you jump into one:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you &lt;em&gt;actually&lt;/em&gt; gaining anything from using them?  That is, are you saving a sufficient amount of effort by implementing an ORM tool to make it worth using, and to make it worth adding an extra complication to your system? (this is particularly true of commercial apps, where that extra 'piece' is now an extra vector for potential support problems)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then, will the extra abstraction layer have a negative impact on the app?  Is it going to be slower than hand coded SQL, etc.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-23T04:28:58.760" />
  <row Id="6552" PostTypeId="2" ParentId="2475" CreationDate="2010-09-23T04:48:20.680" Score="1" ViewCount="" Body="&lt;p&gt;I did my Masters after I had several years of experience and my undergrad was not Comp Sci. From my observation at my Uni, I had a &lt;em&gt;much&lt;/em&gt; easier time &lt;em&gt;and&lt;/em&gt; got more out of my Masters education than students who went straight from undergrad to the MS program at my school. I had thought I would struggle a bit initially compared to folks with a BS in CS, but my experience seems to have been that real world experience was key to preparing me for learning more. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I think quite a few of the undergrad-straight-to-grad crew were trying to keep their student visas until they could get a job in the US, so I can't say how much motivation they had for learning.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-23T04:48:20.680" CommentCount="1" />
  <row Id="6553" PostTypeId="2" ParentId="745" CreationDate="2010-09-23T05:07:05.903" Score="0" ViewCount="" Body="&lt;p&gt;I rarely clock 12 straight. If I'm doing a 12+ hr day, I stop around 5-6 and go get dinner, take an hour to unwind, then go back at it. I've found that getting my mind clear and a little relaxed goes a lot further than all the energy drinks in the world. Caff and the worse crap in some of the energy drinks may get your body going, but won't help your attention span much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, I can put away a lot of coffee during the day if I have a lot of meetings or am compiling some of our bigger projects a lot.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-23T05:07:05.903" />
  <row Id="6554" PostTypeId="2" ParentId="742" CreationDate="2010-09-23T05:16:48.857" Score="0" ViewCount="" Body="&lt;p&gt;A desk with a monitor shelf. I'm developing a hunch in my desk now that I don't have one anymore. Constantly looking at your screen on a downward angle kills the neck.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-23T05:16:48.857" CommentCount="1" />
  <row Id="6555" PostTypeId="2" ParentId="6542" CreationDate="2010-09-23T05:18:27.600" Score="3" ViewCount="" Body="&lt;p&gt;Yes. I have friends (though they did take the optional one CS class in college) who have made the full switch from traditional Word processing tools to LateX.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've noticed that aside from CS students, Mathematics majors use it a lot too.  There's a future, but it's not for the faint of heart. I doubt it will go mainstream but it does have a decent following outside of CS.&lt;/p&gt;&#xA;" OwnerUserId="1668" LastActivityDate="2010-09-23T05:18:27.600" CommentCount="2" />
  <row Id="6556" PostTypeId="1" CreationDate="2010-09-23T05:27:35.473" Score="2" ViewCount="96" Body="&lt;p&gt;Oracle will no longer develop JavaFX script ( the language ) and now the applications would be coded through the API.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think JavaFX script was kind of neat. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does it seem reasonable to stop the development of the language, and use it only through the API?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Links:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://jonathangiles.net/blog/?p=916&quot; rel=&quot;nofollow&quot;&gt;http://jonathangiles.net/blog/?p=916&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://java.dzone.com/articles/javaone-2010-alternative-jvm&quot; rel=&quot;nofollow&quot;&gt;http://java.dzone.com/articles/javaone-2010-alternative-jvm&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="82" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T10:44:18.283" LastActivityDate="2010-09-23T12:52:52.637" Title="What do you think about JavaFX script retirement?" Tags="&lt;javafx&gt;&lt;retirement&gt;&lt;alternative&gt;" AnswerCount="4" />
  <row Id="6560" PostTypeId="2" ParentId="6352" CreationDate="2010-09-23T05:45:13.947" Score="3" ViewCount="" Body="&lt;p&gt;Oracle, as an application developer, has a big incentive to keep JEE at the top of the pile. They use Java in their database. Their toolset (eg JDeveloper, SQL Developer...) are all java based.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think Java is at any risk, except of abandonment by Open Source zealots who can't stand a commercial company that makes a profit out of selling software.&lt;/p&gt;&#xA;" OwnerUserId="114" LastActivityDate="2010-09-23T05:45:13.947" CommentCount="2" />
  <row Id="6561" PostTypeId="2" ParentId="6190" CreationDate="2010-09-23T05:49:09.333" Score="2" ViewCount="" Body="&lt;p&gt;Comments from a colleague of mine from yesterday regarding this very same topic&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;there is always going to be a varied opinion on this one... My rule of thumb would be if you need something that runs every five minutes (and you dont care what time it runs or how long a run takes) or something that responds to events, use a service. If you need something to run at a particular time each day and you are sure that there will not be an over lap, use the Scheduler provided with the OS. If you need a hybrid, either use both solutions for the varying cases or find something off the shelf. (Possibly Quartz .Net) &quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Jon Galloway's article from 2005 &lt;a href=&quot;http://weblogs.asp.net/jgalloway/archive/2005/10/24/428303.aspx&quot; rel=&quot;nofollow&quot;&gt;&quot;//TODONT: Use a Windows Service just to run a scheduled process&quot;&lt;/a&gt;&#xA;is a good read. I suggest that the comments also be read because the discussion still continues till today and provide some good counter-arguments as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I agree with my colleague on this one. Keep it simple for as long as possible. And if you are deploying to Win2008 server, check out the Task scheduler and all the features the standard scheduler offers. For me, the killer was to start a scheduled task when an event occurs.&lt;/p&gt;&#xA;" OwnerUserId="2545" LastActivityDate="2010-09-23T05:49:09.333" />
  <row Id="6563" PostTypeId="2" ParentId="2475" CreationDate="2010-09-23T05:56:15.487" Score="1" ViewCount="" Body="&lt;p&gt;You can buy knowledge with money. And you can get money with knowledge.&#xA;Both have the tendency to lose their value with age so you have to maintain them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its just what you prefer. I value knowledge above money (as long as I have enough to live).&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-23T05:56:15.487" />
  <row Id="6564" PostTypeId="2" ParentId="5168" CreationDate="2010-09-23T06:03:39.710" Score="3" ViewCount="" Body="&lt;p&gt;I found a Coldfusion page in an app I was maintaining in any unsecured directory that provided users/anyone to input &lt;strong&gt;any&lt;/strong&gt; SQL statement and execute it on the server and it returned the results. &lt;/p&gt;&#xA;" OwnerUserId="2545" LastActivityDate="2010-09-23T06:03:39.710" />
  <row Id="6565" PostTypeId="2" ParentId="1267" CreationDate="2010-09-23T06:19:54.827" Score="1" ViewCount="" Body="&lt;p&gt;My three creative interests are programming (which I do for a living), writing, and photography.  Of the three, I probably enjoy programming the most because of the almost immediate feedback -- either the program works or it doesn't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can sort of get the same feedback with photography, in that I can look at a photo or video, and say this is pretty good or its garbage.  But it's still very subjective.  As for my own writing, that's particularly hard to judge myself.  The best feedback I've gotten is from entering short stories in contests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So yes -- I enjoy programming.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-23T06:19:54.827" CommentCount="1" />
  <row Id="6566" PostTypeId="2" ParentId="6503" CreationDate="2010-09-23T06:39:11.467" Score="2" ViewCount="" Body="&lt;p&gt;I spend most of the time trying not to think of penguins.  It's hard.&lt;/p&gt;&#xA;" OwnerUserId="55" LastActivityDate="2010-09-23T06:39:11.467" CommentCount="1" />
  <row Id="6567" PostTypeId="2" ParentId="6543" CreationDate="2010-09-23T06:46:21.593" Score="1" ViewCount="" Body="&lt;p&gt;Last year I worked on an in-house app that changed frequently, and I was very happy we used an ORM. The app was a supporting app for a change management team, and as the larger project evolved, our little app got new requirements for situations that did not exist and could not be foreseen a few months before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks to the ORM (&lt;a href=&quot;http://www.propelorm.org/&quot; rel=&quot;nofollow&quot;&gt;Propel&lt;/a&gt;, in PHP), we split up some of the logic for the code, so one function added the &quot;is record valid&quot; part of the query, another the security part (&quot;show these records only if the user has these capabilities&quot;), ... If the underlying structure changed (an extra field that should be taken into consideration for &quot;record validness&quot;), we only had to change one function, not twenty SQL clauses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We came from a situation where all (well, most) SQL clauses were stored in a separate XML file, so &quot;database changes would be easy to handle&quot;. Believe me, they were not. One part was so horrible that I &lt;a href=&quot;http://thedailywtf.com/Articles/DELETE-No,-INSERT!-No,-SELECT!-.aspx&quot; rel=&quot;nofollow&quot;&gt;had to submit it to The Daily WTF&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a query was too complicated to express with Propel Criteria, or we needed some vendor-specific features (mostly full-text search, since we were using MySQL), this was no problem with Propel. You can add &lt;a href=&quot;http://www.propelorm.org/wiki/Documentation/1.3/Criteria#Criteria%3a%3aCUSTOM&quot; rel=&quot;nofollow&quot;&gt;custom criteria&lt;/a&gt;, or when really needed we used raw SQL (&lt;a href=&quot;http://propel.posterous.com/propel-154-released&quot; rel=&quot;nofollow&quot;&gt;now even more easy to combine&lt;/a&gt; with actual Propel objects). You can easily add your vendor-specific add-ons to the generated classes, so you have the best of both worlds: no SQL in your app code, but with all the capabilities of your database engine.&lt;/p&gt;&#xA;" OwnerUserId="3396" LastActivityDate="2010-09-23T06:46:21.593" />
  <row Id="6568" PostTypeId="2" ParentId="6512" CreationDate="2010-09-23T06:59:08.157" Score="2" ViewCount="" Body="&lt;p&gt;I don't use whitespace inside parentheses other than to separate arguments to function calls. However, I do add a whitespace between the parameter list and name of the function, i.e.: &lt;code&gt;foo (a, b, c)&lt;/code&gt;. Same with indexes into arrays (&lt;code&gt;foo [index]&lt;/code&gt;). For me, this makes things a bit more readable. Here's a full example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&#xA;if ((a &amp;gt; b) || (d &amp;lt; e)) {&#xA;    foo (bar);&#xA;    i = f [index];&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;On a side note, I did write a project using the excess-whitespace approach:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&#xA;if ( ( a &amp;gt; b ) || ( d &amp;lt; e ) ) {&#xA;    foo ( bar );&#xA;    i = f [ index ];&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In retrospect, this didn't make the code more readable at all; in fact, it made it &lt;em&gt;less&lt;/em&gt; readable since the entire code was usually equally spread out and made it hard to see what belonged with what. Also, it made lines too long and needed to wrap around on the next line, which further decreased readability.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-23T06:59:08.157" CommentCount="1" />
  <row Id="6569" PostTypeId="2" ParentId="2066" CreationDate="2010-09-23T07:02:42.637" Score="0" ViewCount="" Body="&lt;p&gt;Check that they aren't taking the same approach to people.&lt;/p&gt;&#xA;" OwnerUserId="2114" LastActivityDate="2010-09-23T07:02:42.637" />
  <row Id="6570" PostTypeId="2" ParentId="6543" CreationDate="2010-09-23T07:06:08.277" Score="2" ViewCount="" Body="&lt;p&gt;But the point is you get to program away from the database, meaning you don't need to think like you are in the database. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work in C# now and use LINQ a lot, so lots and lots of fluent methods. &#xA;I don't need to think about how my objects are stored or found, or even saved at the program level, and very little at the business layer level. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quite often the methods provided by the Specific Databases themselves are used in the DB Connector, so you get those optimizations without needing to know what they are. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can still write functions DB-side. Often you can just map them through.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And above all, separation like that allows testability and forces you (a little) to write better structured code&lt;/p&gt;&#xA;" OwnerUserId="705" LastActivityDate="2010-09-23T07:06:08.277" CommentCount="6" />
  <row Id="6571" PostTypeId="2" ParentId="2066" CreationDate="2010-09-23T07:22:51.673" Score="0" ViewCount="" Body="&lt;p&gt;Hitting equipment is an old habit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I remember the time of TV sets with vacuum tubes. Sometimes the quality declined and htting them helped solve it. The reason was, vacuum tubes where sticked in connectors and sometimes the connections got bad which could be solved by hitting. Modern computers don't use vacuum tubes (most CRT's are replaced too) so hitting them is meaningless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with hitting inanimate objects, is that it can be quite rewarding. It solves the temporary agression rush. And (as long as you keep hitting your own equipment) you won't get into jail for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Luckily I don't see this behaviour that much. But if it occurs, you need to find a solution, because it can break down the system sooner or later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are several options:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Provide equipment that can be hit: boxing equipment, a room with soft walls (lockable from the outside).&lt;/li&gt;&#xA;&lt;li&gt;Remove equipment when warnings do not help. (Only with backup from management).&lt;/li&gt;&#xA;&lt;li&gt;Make them feel stupid. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-23T07:22:51.673" />
  <row Id="6572" PostTypeId="2" ParentId="6530" CreationDate="2010-09-23T07:23:39.333" Score="2" ViewCount="" Body="&lt;p&gt;Three things really have helped me out:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1) Perform Code-Cleanup on your own code&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have found many times going back through to improve formatting, optimize some routines, boil out magic numbers and words with variables, I can normally find a few ways to improve on my codebase, or at least see what I would do better the second time around. This especially applies to older code I may not have touched in a year. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2) RTFM / Read Programmers Blogs / Check out some Open Source/3rd party APIs&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I learn something new every day. If you haven't been, you aren't looking hard enough. Sometimes even the most mundane problems, I will do a quick search to see if the top three answers take an angle to the problem any differently. Occasionally, I will find a rare gem, and many times that method can casade to all sorts of other problems.  I used to not touch AJAX with a 10-foot pole. Now I use it with most everything.  XML used to be a mystery to me, now its a absolute must-use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3) Try something new&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually, if you have an idea floating around in the back of your head, it means you want to improve your skills. At the very least, you might end up creating something that will make your life a bit easier as a programmer. But more often than not, no matter how challenging, daunting or impossible the task might be, in the end you will learn from it &lt;em&gt;even if you fail&lt;/em&gt;. if you succeed, you have another notch under your belt.&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-23T07:23:39.333" />
  <row Id="6573" PostTypeId="2" ParentId="6503" CreationDate="2010-09-23T07:25:13.803" Score="2" ViewCount="" Body="&lt;p&gt;Posting on one of these sites.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-23T07:25:13.803" />
  <row Id="6574" PostTypeId="2" ParentId="6543" CreationDate="2010-09-23T07:25:32.707" Score="11" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;the ORM takes the lowest common&#xA;  denominator&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I must disagree with your statement. I will take &lt;strong&gt;nHibernate&lt;/strong&gt; as an example. This framework supports lots of database, including the most popular ones, regardless the version (and supported features), just like most ORMs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Quick note: you only mention database abstraction. That's one of the many benefits, but I really think that object oriented features are more powerful (eg: inheritance). And &lt;code&gt;You design your domain model first&lt;/code&gt;...&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...Back to the abstraction. It's not the lowest common denominator. In &lt;strong&gt;nHibernate&lt;/strong&gt;, you have dialects. It allows you to use a same code to query different databases. Dialects take care of feature management for you. The correct statement is that &lt;code&gt;a given dialect will try to use all the power of a given database system&lt;/code&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an exemple take the &lt;code&gt;SqlServer2005&lt;/code&gt; dialect that when introduced was taking advantage of the new SQL Server 2005 paging features. Using that dialect instead of &lt;code&gt;SqlServer2000&lt;/code&gt; just boosted your performances.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course there are exceptions, but I didn't encounter a single one in many years of working with nHibernate, and my applications are very data centric.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-09-23T07:40:52.283" LastActivityDate="2010-09-23T07:40:52.283" CommentCount="5" />
  <row Id="6575" PostTypeId="2" ParentId="4863" CreationDate="2010-09-23T07:30:10.333" Score="-4" ViewCount="" Body="&lt;h2&gt;HTML5&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;You could say its &lt;em&gt;not unknown&lt;/em&gt;, but I say it is. Even though many websites have started to adapt it, most haven't. Part of the reason is browsers just had not caught up with it yet. (and they still are)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a result, most web programmers have stuck with the HTML4.01 standard or XHTML1.1 even. Programmers stuck in this rut for the most part have no clue the huge differences, or know very little. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, its a must learn, because eventually, inevitably it will be the new standard. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also say its not &quot;buzz wording&quot; since its simply a higher version number, however there has been a bit of buzz about it lately.&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-23T07:30:10.333" CommunityOwnedDate="2010-10-22T23:54:06.263" CommentCount="4" />
  <row Id="6576" PostTypeId="2" ParentId="6543" CreationDate="2010-09-23T07:35:10.403" Score="1" ViewCount="" Body="&lt;p&gt;ORMs &lt;strong&gt;can&lt;/strong&gt; give you access to database specific features as well, it depends on which ORM you're using and what features it provides.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For an example, in the current project I'm working on, we're using the Java Persistence API and Hibernate. Even so, we use several database specific features, such as searching in tables with soundex.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, the main benefit of using an ORM is not necessarily that it makes an application database agnostic (although that is a good thing as well), but that I for the most part don't have to think about how things are stored and retrieved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;However&lt;/strong&gt;, at some point you most likely have to think about this anyhow, depending on the requirements for your application. The ORM is not magic. &lt;/p&gt;&#xA;" OwnerUserId="1020" LastActivityDate="2010-09-23T07:35:10.403" />
  <row Id="6577" PostTypeId="2" ParentId="6542" CreationDate="2010-09-23T07:43:43.583" Score="4" ViewCount="" Body="&lt;p&gt;Right now I'm writing a book about Google Go. OK, it's still an IT related topic, but outside the university. The publisher allows type setting in TeX and has implemented his own style. For me that's very positve. Simple editing, working with satellite documents, and a very good looking result.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Modern text processors may be ok up do about 50 pages. But larger documents are defenitely better set in TeX.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;mue&lt;/p&gt;&#xA;" OwnerUserId="2917" LastActivityDate="2010-09-23T07:43:43.583" CommentCount="3" />
  <row Id="6578" PostTypeId="2" ParentId="6338" CreationDate="2010-09-23T07:45:13.710" Score="1" ViewCount="" Body="&lt;p&gt;Ok, I don't have a good answer, but I do have some opinions that will, hopefully, contribute to one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Firstly your choice is between a server based system and a distributed one (DVCS).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The server based model is one that is well understood - the repository lives on the server, you checkout files locally and you commit changes back. You can do branches and tags and merges - usually without too much stress - and its all good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;DVCS is a bit more interesting - the notion of a central server is gone (which is both a good and a bad thing) instead you have local repository that you can clone (copy in its entirety) to as many places as you want on your local machine or on a remote machine. You can then push and pull changes between repository instances. This gives you a couple of advantages, its very flexible and its fast(er) no handshake between client and server. DVCS also use much finer grained diff algorithms/storage which means that they are better at merging (not perfect, been bitten by that, just better). The speed and flexibility encourages you to commit more often and the quality of merge encourages branching for distinct development strands at a very low level. Couple of problems - both significant - first is that you don't need a server and if your source code is only on one machine then you're losing one of the key benefits of VCS. Second is that there's nowhere obvious to go for the &quot;definitive&quot; copy - the line that's the core that you could build and deploy your live system from (because its the source for your live system). Fortunately (!) this is not exactly a hard problem to solve, you clone your repository to a server location, make that the &quot;definitive&quot; copy and then push completed features and fixes to that copy (and similarly pull from that copy if you want a clean set of code).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether you have server based of DVCS you should also consider getting a continuous integration (CI) server that builds your application(s) each time they are committed to specific branches (specific server based repositories if DVCS).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifics...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use and can therefore recommend, I have for ages. Its good, it works and whilst yes, we've had some fun merging on occasions its very seldom been because of the limitations of SVN - more us not pulling changes over or inconsistencies in our IDE setups.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also take a look at Sourcegear's Vault - &lt;a href=&quot;http://www.sourcegear.com/vault&quot; rel=&quot;nofollow&quot;&gt;http://www.sourcegear.com/vault&lt;/a&gt; - commercial (i.e. not free) but built by people who know what they're doing explicitly to replace SourceSafe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm also playing with Mercurial which I like, a lot. I really &lt;em&gt;really&lt;/em&gt; like the ability to do a local commit (commit early, commit often...) and the fact that it in theory it means I can commit changes that I couldn't using SVN because they would cause the build to fail. I haven't fully worked out the &quot;server&quot; side yet (I haven't yet got a CI server on my personal stuff) but the idea is that one commits changes locally 'til one gets to a point where one has a set that can safely/collectively be pushed to the (appropriate) server repository and its the push to the server that will trigger a build. I also need to play more with the notion of multiple concurrent development branches (kind of tricky for solo development!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suggesting a CI server is much easier, go for TeamCity - &lt;a href=&quot;http://www.jetbrains.com/teamcity&quot; rel=&quot;nofollow&quot;&gt;http://www.jetbrains.com/teamcity&lt;/a&gt; (I'm looking at hudson as well for my personal stuff)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, opinions... I think, that if I were starting more or less from scratch, today, I would want a DVCS - for the &quot;local&quot; commit and the flexibility. I think they're harder to get to grips with if you have prior VCS experience but the benefits (if done right - got to be able to wire it into continuous integration) outweigh the challenges (e.g. the tooling isn't yet on a par with that for subversion - as evidenced by tortoiseSVN vs tortoiseHg).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would probably choose Mercurial - but look at git and bazaar and fossil (and worry if you should wait for veracity...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One last thought (I do go on) you need to think about how whatever you choose will fit into your organisation - the workflow you use get from source code in your repository to the live instance(s) of your application(s) - without a clear method for build and deploy (I deploy from builds from my CI server) you're not addressing the whole of the problem.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-09-23T07:45:13.710" />
  <row Id="6580" PostTypeId="2" ParentId="6543" CreationDate="2010-09-23T07:48:57.507" Score="3" ViewCount="" Body="&lt;h2&gt;What's the alternative?&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;This is an interesting notion.  By abstracting away the features of the underlying database we definitely lose some of the features of the specific database implementation.  (Whether or not we should depend on specific database features is another argument)  I guess this could be solved by database-specific ORMs which allow you to access the specific features, but that might just be more trouble than it's worth and a step in the wrong direction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day, you have to ask yourself - &lt;strong&gt;what's the alternative?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should we stop using ORMs and go back to writing all database access ourselves?  Sure we might lose access to a few database features through the ORM, but you can always access those using old-school techniques.  In the end the gains you get in productivity completely outweigh the disadvantages.&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-23T07:48:57.507" CommentCount="2" />
  <row Id="6581" PostTypeId="2" ParentId="6352" CreationDate="2010-09-23T07:49:32.090" Score="28" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is Java &quot;dead in the water&quot; &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Absolutely not.  Far too many companies and people have invested in building Java software for Java to be dead in the water.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What exactly, or even approximately, are the legal ramifications?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;On the face of it, there are two significant things alleged by Oracle's lawsuit:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The copyright violations are difficult to get a handle on, because it is not clear what Oracle is alleging has been copied.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The patent violations are more tangible, but it is unclear if the patents would stand a challenge based on prior art, inventiveness, etc, or whether the SCOTUS ruling in Bilski undermines them.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The legal outcome is unclear at this stage, and the consequences are unpredictable.  Maybe Google and Oracle will settle the lawsuit, some money will change hands, patents will be cross-licensed, and we're back to business as usual.  Or maybe it will go to court ...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I thought Java was open source and would therefore remain unaffected ... ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;All Sun Java sources that have been released under GPL will remain open sourced.  Java 6 and 7 cannot be un-GPL'ed.  Hypothetically, Oracle could change their mind about future releases, but I predict that it won't happen.  A couple of days ago Oracle announced they remained committed to Java being open source, and that they were going to open source JavaFX.  An about-face for Oracle on this issue now would be a publicity nightmare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Incidentally, the Google / Oracle spat is about Java on mobile devices; i.e. JavaME.  The JavaME codebase has NOT been open sourced.)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Should Google just buy Oracle to get rid of the whole mess, that would be cool wouldn't it ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Could they?  Probably not.  Oracle is probably too big for Google to buy.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should they?  Probably not.  But that would be a business decision, not a decision based on &quot;coolness&quot; ... or doing the Java community a favour.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would it actually be a favour for the Java community?  I'm not sure.  I'm not convinced that Java would survive the rampant moving-target-ism that seems to be rife in the Android world under Google's stewardship.  However, this may just be &quot;a teenage phase&quot; that Android is going through.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Do you think this is the beginning of the end for Java as a widely used language ?  Its continued success as an open source/free technology is now doubtful?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Unclear.  Probably not.  Java still has lots to offer, and the Google / Oracle debate (and even Java's open source-ness) is not relevant to most developers and businesses that use Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm inclined to the view that it is Oracle's ongoing &lt;strong&gt;level of investment in Java&lt;/strong&gt; that will determine Java's long term future.  And their ability to hang onto key Java engineers ... given the change in corporate culture.  If Oracle fumble this, there is a chance that Java will fragment, and that the long-term future will be in some non-Oracle dialect of Java.  (Maybe something coming out of Google or maybe something else.)&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-09-24T05:42:08.930" LastActivityDate="2010-09-24T05:42:08.930" CommentCount="1" />
  <row Id="6582" PostTypeId="2" ParentId="238" CreationDate="2010-09-23T07:53:48.380" Score="2" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0456554/&quot; rel=&quot;nofollow&quot;&gt;Grandma's Boy (2006)&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Its about a mid-30s game tester who gets evicted and has to move in with his Grandma. He has to win the girl and out-do the &quot;elite programmer&quot; who has it out for him and everyone else. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's got tons of great one-liners, and probably my favorite:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;J.P.: Are you afraid of it?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Kane: No I just don't like techno.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;J.P.: You would if you had robot ears. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2449" LastEditorUserId="2449" LastEditorDisplayName="" LastEditDate="2010-09-23T07:58:56.393" LastActivityDate="2010-09-23T07:58:56.393" CommentCount="1" />
  <row Id="6583" PostTypeId="2" ParentId="6556" CreationDate="2010-09-23T08:06:02.490" Score="0" ViewCount="" Body="&lt;p&gt;I won't miss it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mean, it never really appealed to me, exactly for the fact that was another language. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe merging it with the API will push me to try again with it using Java. Who knows...&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-09-23T08:06:02.490" />
  <row Id="6584" PostTypeId="2" ParentId="67" CreationDate="2010-09-23T08:06:49.213" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://code.google.com/events/io/2010/&quot; rel=&quot;nofollow&quot;&gt;Google IO&lt;/a&gt; and &lt;a href=&quot;http://www.youtube.com/user/GoogleTechTalks&quot; rel=&quot;nofollow&quot;&gt;Google TechTalks&lt;/a&gt; are a couple video blogs I watch, if that counts.  I've gleaned some pretty good info here and there. (not all of it is great, some is for the computer illiterate.)&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-23T08:06:49.213" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="6586" PostTypeId="2" ParentId="2051" CreationDate="2010-09-23T08:20:02.547" Score="4" ViewCount="" Body="&lt;p&gt;Boss: I find it disgusting that you come in at 11am every day. I want you here at 8am, to help the data in-putters with any problems, and stay and help the dev team. When they go home at 7pm, you can start uploading changes to the sites.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ofcourse, because of the ubersecurity for these sites (pharmaceutical company), we can only have one connection from our IP address to their servers, and I had 24 sites to upload. I was coming in at 11am because id be in the office till 3 or 4am uploading sites.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I left very shortly after.&lt;/p&gt;&#xA;" OwnerUserId="3314" LastActivityDate="2010-09-23T08:20:02.547" CommunityOwnedDate="2010-09-23T08:20:02.547" />
  <row Id="6587" PostTypeId="1" AcceptedAnswerId="6589" CreationDate="2010-09-23T08:26:54.643" Score="19" ViewCount="380" Body="&lt;p&gt;Recently reading the question &lt;a href=&quot;http://programmers.stackexchange.com/questions/6545/what-languages-do-you-use-without-an-ide&quot;&gt;What languages do you use without an IDE?&lt;/a&gt; One question asked in a few answers was &quot;is Notepad++ and IDE?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One answers to the original question said &quot;None, I use vim...&quot;, implying that vim is an IDE. But then another &lt;a href=&quot;http://programmers.stackexchange.com/questions/6545/what-languages-do-you-use-without-an-ide/6579#6579&quot;&gt;answer&lt;/a&gt; suggested vim isn't an IDE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So where is the line?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What about notepad, ed, or nano?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is the only non-IDE coding technique &lt;a href=&quot;http://xkcd.com/378/&quot; rel=&quot;nofollow&quot;&gt;the butterfly technique&lt;/a&gt;?&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-09-23T14:49:10.820" Title="What counts as an IDE?" Tags="&lt;ide&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="6588" PostTypeId="2" ParentId="4384" CreationDate="2010-09-23T08:27:43.057" Score="2" ViewCount="" Body="&lt;p&gt;The project I am most proud of is a complete redesign from scratch to another, old module. That was about 2 years ago.&#xA;The module (a small part in a very big application) has to get some definition of calculations in a memory database (custom made) and apply it to any change of other fields on that database.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of the problems the old code has:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Absolutely unmaintainable code. I mean that anyone that has ever try to approach to the code is either in a mental institution or has quit programming for the rest of their lives. The code was designed about 15 years ago and no one related to the design remains at the company. The first advice from my boss was: &quot;Don't even think of looking at the code, start 100% from scratch&quot;&lt;/li&gt;&#xA;&lt;li&gt;Heavy performance issues. The module work more or less well for a small number of calculations (about 200), but one client has more than 20.000, causing the CPU to be almost collapsed most of the time. That was mostly related to the fact that the module was polling the database constantly and I suspect (can't confirm as I didn't know the old code) that was also parsing the calculations each time.&lt;/li&gt;&#xA;&lt;li&gt;Bad granularity. The module check the database once each 9 seconds, and take almost 7 to make all the calculations (for those 7 seconds it takes as much CPU as possible). If something happen during this time, you'll have to wait to the next iteration.&lt;/li&gt;&#xA;&lt;li&gt;The process has to stop and restart when a calculation changes. That means about 5 minutes until the process was up and running. That was more a &quot;desire&quot;, as the calculations don't usually change.&lt;/li&gt;&#xA;&lt;li&gt;The objective was to deploy the new code for that client, and then include it on the main product.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Ok, so I make the new module. Some highlights of the process&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Done in C++ (but very C like, just some OOP). Not only because it's the obvious choice for performance, but also because it's the language used for he rest of the project. That also make easy to use internal libraries to connect to the other modules.&lt;/li&gt;&#xA;&lt;li&gt;Complete black box testing. The testing was quite complicated, and was mostly done making a copy of the database, running old module, changing values and picking outputs. The same for the new module. Make a diff to see the differences. We get some bugs (OK, weird things, as that's now the &quot;expected behavior&quot;) on the old code that way.&lt;/li&gt;&#xA;&lt;li&gt;The new code makes use of notifications (that wasn't available when the old code was designed). That means that instead of polling we can connect to the core system and get the changes to the database. That was obviously much faster, but has its problems. Like there was no documentation at all (internal developments!) So some trial and error and tweaking was needed until we get the data in the correct way.&lt;/li&gt;&#xA;&lt;li&gt;The old code has its own parser. Parsers are really hard to do, but it's a (mostly) solved software problem. I used &lt;a href=&quot;http://www.gnu.org/software/bison/&quot; rel=&quot;nofollow&quot;&gt;Bison&lt;/a&gt; which was really useful and it's a quite powerful tool. The calculations were parsed at init time, and then stored as much more efficient data structures. I suspected that the old code was parsing constantly, which is expensive.&lt;/li&gt;&#xA;&lt;li&gt;The module was a multithreaded application, basically cascading and filtering messages from the notifications, then discarding the non-relevant (the notifications contains ALL the changes of the DB), then stacking all the needed calculations (one input could be related to more than one calculation, and calculations can depend of another), then calculating the results, then storing the results back to the DB. It was important to process really fast the inputs, as any delay will mean that the notifications module will disconnect you. Other thread will redo the calculations if there is any change and then apply all at once, avoiding the need of restarting the application for a change in a formula.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I use &lt;a href=&quot;http://valgrind.org/&quot; rel=&quot;nofollow&quot;&gt;Valgrind&lt;/a&gt; to detect memory leaks and other problems that could be tricky on C/C++ It's really good tool, you should use it if you're working with C/C++&lt;/li&gt;&#xA;&lt;li&gt;Profiling is important. You'll find that the bottle necks are on the places you least expect. I know is quite obvious, but have to keep that in mind. I had to do lots of profiling, as you can imagine.&lt;/li&gt;&#xA;&lt;li&gt;Testing on the production environment was difficult, as is a critical system used all through Spain. We had a staging server that act more or less as a backup system, we run the new software in &quot;no write mode&quot; getting logs and compare to the results during the same time. As the new system has a better latency to changes, the analysis of the logs was more difficult. Once we were satisfied we try to deploy the new software in real production environment. It was difficult to get a deployment window of about 3 hours. We have to go to the client, make a careful backup, they will notify everyone on the other centers, substitute the module, and cross your fingers. After 5 minutes, you start getting calls from everywhere saying that they have unexpected behavior, so you try to make a good log, follow the problems to take good note of it and work with that back on the office after rolling back to the old module. We had to go through 3 deployments attempts until the final one (the second one was a really stupid bug), were apparently the phone calls were the usual ones and unrelated to our work :-P To get one of those windows, you need to wait for long time until the Stars Where On The Right Place.&lt;/li&gt;&#xA;&lt;li&gt;The project take about 3 months before the deployment. More or less 1 month for design and code and about two testing, correcting bugs, profiling, changing code to adapt to the way the notifications work and making the code work in general. Another valuable lesson, don't underestimate the testing time, specially if your code can't afford bugs. On other environments, the impact of a bug is less important and can be corrected while the application is in use, in that module that wasn't an option, so the tests have to be quite exhaustive. After that, we needed two months for the final deployment, with the process being: Request to go and deploy the new code. Get two weeks of emails discussing the date. Get a date. Cancel the date a couple of days after. Confirm another date. Go there. Find a bug. Go back to the office and correct the bug in one or two days. Start again...&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Final results:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The code is now much simpler and readable. Also, I made a couple of documents describing the design. Also, the code is about 1/5 of the size of the old code (in Lines of Code, which is a really bad metric, but gives some idea of complexity and maintainability)&lt;/li&gt;&#xA;&lt;li&gt;The performance has been greatly increased. The application uses now about 80% less CPU time than before. Also, it wasn't something searched, but uses about 30% of the memory the old code uses.&lt;/li&gt;&#xA;&lt;li&gt;But also the system has a smaller latency. Instead of having to wait 9 seconds, it will show changes almost instantly. That makes us detect that lots of times, they are getting random changes like change this value from 0 to 1 and then 100 ms later from 1 to 0. Those &quot;glitches&quot; were hidden in the old module, but come to light with the new one.&lt;/li&gt;&#xA;&lt;li&gt;The start up time is about 30 seconds, after some optimizations (nothing really fancy). It's not really important as the system adapts to changes on calculations without the need of a restart, but it's good anyway.&lt;/li&gt;&#xA;&lt;li&gt;No bug complains (not even one) from the client, at least for the about 6 months I stayed on that work after the deployment. And is a system that gets you phone calls 5 minutes after deployment complaining. So I'm quite satisfied with the quality. Well, to be true, there was ONE very minor bug report, for a related system (a UI tool to input the calculations), but it wasn't on the module, but on the UI side (which I have to adapt to make sure it check the syntax using the new module). That was about 4 months after the deployment.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So, it was quite a challenge, but I learn a lot of things, my boss was really pleased, as well as the client, as it has become a real problem for some time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not sure if it's heroic, but I am really proud of it ;-)&lt;/p&gt;&#xA;" OwnerUserId="1571" LastEditorUserId="1571" LastEditorDisplayName="" LastEditDate="2010-09-23T08:47:27.497" LastActivityDate="2010-09-23T08:47:27.497" CommentCount="4" />
  <row Id="6589" PostTypeId="2" ParentId="6587" CreationDate="2010-09-23T08:39:55.353" Score="20" ViewCount="" Body="&lt;p&gt;Taken literally, IDE = Integrated Development Environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is the way i look at it:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Integrated:&lt;/strong&gt; Means you can code / launch / compile / debug your app from the tool.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Development:&lt;/strong&gt; Means it can group files into projects, and does syntax highlighting for your language, maybe has refactoring tools, ability to generate files from templates (like unit test files, class files etc.), auto complete / intellisense&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Environment:&lt;/strong&gt; Means both of the above are available from the same tool&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Notepad++ allows for development (eg. you can write code), but the other areas of development are not covered. I've never used notepad++ for development, only for occasionally editing files.  &lt;/p&gt;&#xA;" OwnerUserId="55" LastActivityDate="2010-09-23T08:39:55.353" CommentCount="7" />
  <row Id="6590" PostTypeId="2" ParentId="6587" CreationDate="2010-09-23T08:40:52.953" Score="6" ViewCount="" Body="&lt;p&gt;IDE: Integrated Development Environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An IDE must have the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Editor (preferably with syntax highlighting and autocomplete).&lt;/li&gt;&#xA;&lt;li&gt;Integrated compiler or building.&lt;/li&gt;&#xA;&lt;li&gt;Preferably a debugger.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Other enhancements are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Integration with version control.&lt;/li&gt;&#xA;&lt;li&gt;Other tools (like profiler).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-23T08:40:52.953" CommentCount="1" />
  <row Id="6591" PostTypeId="1" AcceptedAnswerId="6903" CreationDate="2010-09-23T09:08:59.450" Score="25" ViewCount="571" Body="&lt;p&gt;Writing a book is a lot of work. Same for writing an article in a magazine or presenting in a conference. They need time and you may even make a mistake here and there that back fires (bad reviews, people calling you an idiot..) Also you do it for free (at least for magazine articles and conference presentations. For books you get something like a $5K deposit and you rarely get any additional sales royalties after that).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So should I bother? Has anyone here done this before? I may not write a book because it's way beyond what I'd like to commit time-wise, but should I bother giving conference presentations or writing shorter articles in magazines?&lt;/p&gt;&#xA;" OwnerUserId="3388" LastActivityDate="2010-12-09T20:24:46.977" Title="Is writing a book, article, or presenting at conference worth it?" Tags="&lt;career&gt;" AnswerCount="17" CommentCount="1" FavoriteCount="6" />
  <row Id="6592" PostTypeId="2" ParentId="6503" CreationDate="2010-09-23T09:09:30.497" Score="1" ViewCount="" Body="&lt;p&gt;Browse SO and try to answer some questions.&lt;/p&gt;&#xA;" OwnerUserId="123" LastActivityDate="2010-09-23T09:09:30.497" />
  <row Id="6593" PostTypeId="2" ParentId="6542" CreationDate="2010-09-23T09:12:00.897" Score="7" ViewCount="" Body="&lt;p&gt;TeX and LaTeX still lead for typesetting mathematics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Of course one could take the view that computer science, the academic discipline&amp;mdash;as opposed to software development and systems engineering, is just a branch of mathematics anyway.)&lt;/p&gt;&#xA;" OwnerUserId="542" LastActivityDate="2010-09-23T09:12:00.897" />
  <row Id="6595" PostTypeId="1" AcceptedAnswerId="6624" CreationDate="2010-09-23T09:19:02.020" Score="3" ViewCount="123" Body="&lt;p&gt;As part of being a programmer, you often are asked to provide estimates/ make slideware / do technical demos for Sales teams to present to end-clients. Sometimes we go along for the 'technical' discussions or 'strategic capability planning' or some similar mumbo-jumbo.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes, you kind of know which ones are totally going to fail and are not worth pursuing but the Sales guys present fake optimism and extract 'few more slides' out of you or the 'last conference call'. These don't lead to anywhere and are just a waste of time from other tasks for the week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is how do you get out of these situations without coming across as non-cooperative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Updated after &lt;a href=&quot;http://programmers.stackexchange.com/questions/6595/how-to-get-out-of-supporting-deadend-sales-pitches/6624#6624&quot;&gt;Kate Gregory's answer&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is related to projects we know are doomed (from the technical feedback we've received) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But Sales ain't convinced since they've just had a call higher up the management chain - so it's definitely going ahead !&lt;/p&gt;&#xA;" OwnerUserId="1681" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T15:20:01.243" LastActivityDate="2010-09-23T15:56:42.913" Title="How to get out of supporting deadend sales pitches?" Tags="&lt;jobs&gt;&lt;behavior&gt;&lt;organization&gt;" AnswerCount="5" />
  <row Id="6596" PostTypeId="2" ParentId="6503" CreationDate="2010-09-23T09:28:09.020" Score="0" ViewCount="" Body="&lt;p&gt;I check my (work-related)emails, and if I don't have some and the build is long enough I check work-related news, that is programming articles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I stay in the programming state of mind, the switch cost is really low and it allow me to continue to learn out of my own code while working.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-09-23T09:28:09.020" />
  <row Id="6597" PostTypeId="2" ParentId="238" CreationDate="2010-09-23T09:30:01.317" Score="-1" ViewCount="" Body="&lt;p&gt;Not so much a series/film but a clip that makes me smile because it is wrong on many levels:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=hkDD03yeLnU&quot; rel=&quot;nofollow&quot;&gt;CSI&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="914" LastActivityDate="2010-09-23T09:30:01.317" CommentCount="2" />
  <row Id="6598" PostTypeId="2" ParentId="6595" CreationDate="2010-09-23T09:32:02.323" Score="0" ViewCount="" Body="&lt;p&gt;&quot;how do you get out of these situations without coming across as non-cooperative&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Turn it into a positive. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You really want to get [insert whatever else you are working on] finished so it will help for future sales pitches.  You need to prioritize other work so you can be properly prepared for when the sales pitch [you think is waste of time and will never escalate] reaches a critical point.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-23T09:32:02.323" />
  <row Id="6599" PostTypeId="2" ParentId="238" CreationDate="2010-09-23T09:33:54.617" Score="4" ViewCount="" Body="&lt;p&gt;Not quite programming but...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.channel4.com/programmes/the-it-crowd&quot; rel=&quot;nofollow&quot;&gt;The IT Crowd&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And my favourite scene: &lt;a href=&quot;http://www.youtube.com/watch?v=vWU4APRTo-8&quot; rel=&quot;nofollow&quot;&gt;Amature Hour&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="914" LastEditorUserId="914" LastEditorDisplayName="" LastEditDate="2010-09-23T09:43:46.067" LastActivityDate="2010-09-23T09:43:46.067" CommentCount="1" />
  <row Id="6600" PostTypeId="2" ParentId="238" CreationDate="2010-09-23T09:36:13.080" Score="2" ViewCount="" Body="&lt;h2&gt; &lt;strong&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=oxZlQtvOmK4&quot; rel=&quot;nofollow&quot;&gt;The History Of Hacking&lt;/a&gt;&lt;/strong&gt; (Documentary / YouTube Link)&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The documentary is better than its title sounds, especially the first part which is about &lt;a href=&quot;http://en.wikipedia.org/wiki/Phreaking&quot; rel=&quot;nofollow&quot;&gt;phone phreaking&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2955" LastActivityDate="2010-09-23T09:36:13.080" />
  <row Id="6601" PostTypeId="2" ParentId="44" CreationDate="2010-09-23T09:38:53.747" Score="0" ViewCount="" Body="&lt;p&gt;I've only ever met one person who was certified in any development language, he now works in IT support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So no, they are not worth it. &lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-23T09:38:53.747" />
  <row Id="6602" PostTypeId="2" ParentId="6503" CreationDate="2010-09-23T09:49:43.213" Score="3" ViewCount="" Body="&lt;p&gt;I suggest that if you consistently have 5-15 min compile and test cycles, you take on two projects/stories/features/issues in parallel and toggle between them.  Depending on your environment, there should be some ways to get extra tasks that don't interfere much with your primary one.  You might have a backlog of smallish bugs, for example, or you could refine the documentation or the tooling.  Yes, there will be some mental context switch, but it can't be worse than spending what might be 30% to 50% of your day essentially idling.&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-09-23T09:49:43.213" />
  <row Id="6603" PostTypeId="2" ParentId="5" CreationDate="2010-09-23T09:51:36.770" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.pnotepad.org/&quot; rel=&quot;nofollow&quot;&gt;programmers notepad&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tried all the others and this is my favourite. Based on scintilla and it has tabbed file opening.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also &lt;a href=&quot;http://lifehacker.com/5604526/bend-makes-for-better-more-attractive-text-editing-on-windows&quot; rel=&quot;nofollow&quot;&gt;bend&lt;/a&gt; looks rather swishy &lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-23T09:51:36.770" CommunityOwnedDate="2011-03-08T02:44:19.193" CommentCount="1" />
  <row Id="6604" PostTypeId="2" ParentId="6556" CreationDate="2010-09-23T09:57:52.247" Score="2" ViewCount="" Body="&lt;p&gt;Nobody was really using it anyway, and there are plenty of useful alternatives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sun was a technology company.  People worked on cool things, and then management tried to market it (often badly).  Oracle is a business, and what they need to do when faced with a portfolio like Sun's is &lt;em&gt;focus&lt;/em&gt;.  So anything that doesn't make any money or provides a strategic advantage and has a chance for success needs to be cut aggressively.  So this move makes a lot of business sense, even if some will miss the technology.&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-09-23T09:57:52.247" />
  <row Id="6605" PostTypeId="2" ParentId="6591" CreationDate="2010-09-23T09:58:19.113" Score="2" ViewCount="" Body="&lt;p&gt;If you do your work well (i.e. you know what you're talking about and speak/write good) it's surely worth it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I remember reading an article somewhere saying you can make an income out of this in the long term, because you can gain trust, show expertise and likely be hired to just (or mainly) do that.&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-09-23T09:58:19.113" />
  <row Id="6606" PostTypeId="2" ParentId="5384" CreationDate="2010-09-23T10:02:09.123" Score="0" ViewCount="" Body="&lt;p&gt;I quote Dijkstra:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Computer science is no more about computers than astronomy is about telescopes.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-09-23T10:02:09.123" CommunityOwnedDate="2010-09-23T10:02:09.123" />
  <row Id="6607" PostTypeId="2" ParentId="6591" CreationDate="2010-09-23T10:08:56.367" Score="4" ViewCount="" Body="&lt;p&gt;Rands does a great &lt;a href=&quot;http://www.randsinrepose.com/archives/2010/06/28/how_to_write_a_book.html&quot; rel=&quot;nofollow&quot;&gt;article&lt;/a&gt; on writing a book in which he talks about, among other things, if you should.&lt;/p&gt;&#xA;" OwnerUserId="64" LastEditorUserId="64" LastEditorDisplayName="" LastEditDate="2010-09-24T10:15:19.260" LastActivityDate="2010-09-24T10:15:19.260" />
  <row Id="6608" PostTypeId="2" ParentId="6591" CreationDate="2010-09-23T10:10:47.563" Score="10" ViewCount="" Body="&lt;p&gt;Giving &lt;em&gt;good&lt;/em&gt; conferences or writing &lt;em&gt;good&lt;/em&gt; articles requires an almost complete knowledge of that specific topic. Your gain is this extra knowledge you gather, while preparing for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One other good outcome of this is that you actually help other people, spread your knowledge, feel confident about yourself.&lt;/p&gt;&#xA;" OwnerUserId="1721" LastActivityDate="2010-09-23T10:10:47.563" />
  <row Id="6609" PostTypeId="2" ParentId="5427" CreationDate="2010-09-23T10:16:04.937" Score="4" ViewCount="" Body="&lt;p&gt;I think to some degree Python is the only programming language you'll ever need, unless you want to write an OS kernel.  It is suitable for the interactive use, random hacks, system administration, scientific applications, operating system tools, web applications, GUI applications, embedding, etc. etc., it's portable, free, and widely used.  No other programming language really covers all those fields in practice.  It's a really good strategic investment for a person and a company.&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-09-23T10:16:04.937" CommentCount="1" />
  <row Id="6610" PostTypeId="2" ParentId="6591" CreationDate="2010-09-23T10:26:19.630" Score="4" ViewCount="" Body="&lt;p&gt;Writing a book, an article, or presenting at conference are essentially acts of self-marketing.  If you represent a company that sells something, or you are a consultant that wants to sell himself, or you have on an issue that is important to you, or you want to get  hired, or you want to improve your reputation for other reasons, you should present or publish (or blog or tweet etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the first few times, the act of researching the book or traveling to the conference or meeting new people as a result of your efforts are worth it by themselves.  But ultimately, most of those who publish or present a lot, always have something to market, and their efforts are focused around that, as are their cost calculations.&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-09-23T10:26:19.630" />
  <row Id="6611" PostTypeId="2" ParentId="5384" CreationDate="2010-09-23T10:29:09.750" Score="0" ViewCount="" Body="&lt;p&gt;they never ask me that. i'm too ugly...&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-09-23T10:29:09.750" CommunityOwnedDate="2010-09-23T10:29:09.750" />
  <row Id="6612" PostTypeId="2" ParentId="6591" CreationDate="2010-09-23T10:29:49.737" Score="2" ViewCount="" Body="&lt;p&gt;Hi JBlue, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;it is absolutely worth it. It also depends on what you are looking for since the returns vary. If your primary interest is to understand the topic better, share your experiences and knowledge it is absolutely worth the effort.  But if your idea is to make money out of it and gain recognition for yourself than that requires a totally different strategy. In both cases it is worthwhile as long as you don’t mind the effort.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-09-23T10:29:49.737" />
  <row Id="6613" PostTypeId="2" ParentId="5490" CreationDate="2010-09-23T10:34:53.670" Score="4" ViewCount="" Body="&lt;p&gt;Funny interstar should mention Redis.  I've actually reverse engineered almost all of Redis's behaviour using Mumps (both Cache and GT.M).  Emulating its simplistic and basic key/value pair structure and APIs has been a piece of cake and the Redis clients I've tested don't even know they're talking to a Mumps database instead of the proper Redis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, like interstar says, the Mumps database is capable of so much more in terms of both its data structure (actually a Mumps database can easily emulate all 4 NoSQL database types: key/value, tabular, document and graph, and can also model relational and object dbs - all at once if needed), and the properly sorted out and automatic balance between in-memory versus on disk.  Unlike the NoSQL databases that have been around for just a few years, the Mumps technologies are mature, tried, tested, well supported and have analytics and administration packages available, and have the kind of performance that many NoSQL databases such as CouchDB would die for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So why aren't the vendors of Cache and GT.M promoting hard into the NoSQL market rather than let someone reinvent their wheel as you say?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to the tired old bickering about the language and the use of that ancient and outdatad example from the Wikipedia site: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;a) The Mumps database can be accessed by your pet sexy modern language of choice if you want&lt;/p&gt;&#xA;&#xA;&lt;p&gt;b) that style of programming went out with the ark, and was written at the time like that to squeeze amazing performance from PDP computers that had less processing power than the chip in your watch. Modern Mumps coding is actually very similar in style to Python and can be just as clean, readable and maintainable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;c) Like any language there are good examples you can find and terrible ones.  Don't assume that Mumps coding needs to be as opaque and old-fashioned as the example on the Wikipedia site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;..and Mason, my conclusion would be that perhaps you aren't as familiar with the database landscape as you thought you were! :-)   If you've had any form of medical treatment in your life, your information will have been through umpteen Mumps systems along the way, including ones that manage requesting of your tests.  The contents of your daily newspaper may be managed by a Mumps system and even the pizza you ordered online was probably via a Mumps system too.  The logistics of items you might have had shipped overseas was probably managed via a Mumps system, and if you happened to be a researcher who needed some fancy metals or ceramics, you'll have probably ordered them via a Mumps system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the reasons you rarely hear about what is actually a surprisingly pervasive database is that the vendors have traditionally dealt directly with application/system developers rather than end users, so the database is usually embedded behind the scenes into products.&lt;/p&gt;&#xA;" OwnerUserId="3407" LastEditorUserId="3407" LastEditorDisplayName="" LastEditDate="2010-09-23T11:37:07.673" LastActivityDate="2010-09-23T11:37:07.673" CommentCount="8" />
  <row Id="6614" PostTypeId="2" ParentId="6591" CreationDate="2010-09-23T10:37:05.120" Score="4" ViewCount="" Body="&lt;p&gt;First: I find talking about something I think it's worth knowing quite interesting and it's even better if other people find it interesting!&#xA;If it's going to be &quot;real hard work&quot;, unless you are at a position where it's needed, probably it's going to be quite disgusting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As any other thing, it improves with time, so each time will be a little less hard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are also some good side effects of that: You can improve the perception of other people about you, you'll learn more about the subject you're talking about, you'll share information with people interested on the same area... There are even people that live of writing books or talk in conferences, but I think that should be an outcome. If you start with that idea, that you're making an article just because you want to get paid, or you want to be perceived as an expert... well, probably you'll find it really frustrating, as it something to achieve on the long run...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think definitively it's worth it.&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-09-23T10:37:05.120" />
  <row Id="6615" PostTypeId="2" ParentId="6556" CreationDate="2010-09-23T10:45:46.670" Score="0" ViewCount="" Body="&lt;p&gt;lots of companies bother to make their stuff in Java or look like Java to leverage the skills of Java programmers&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;GoogleWebToolkit looks like Java &lt;/li&gt;&#xA;&lt;li&gt;dependency injections frameworks can be configured with xml, but the option to do it programmaticaly from Java also exits (like Spring; Google Guice is Java all the way) and seem favoured&lt;/li&gt;&#xA;&lt;li&gt;Object-Relational Mapping frameworks prefer Java style (through annotations) over to xml (like Hibernate)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;the idea is to leverage as much as you can. be it your Java skills or even more; Clojure, JRuby, Scala (relying on the JavaVirtualMachine) are able to take advantage of the JavaFX SDK&lt;/p&gt;&#xA;&#xA;&lt;p&gt;me like this idea of a JavaFX API :)&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-09-23T10:45:46.670" />
  <row Id="6616" PostTypeId="2" ParentId="6591" CreationDate="2010-09-23T10:47:59.530" Score="5" ViewCount="" Body="&lt;p&gt;Define &quot;worth it&quot;. It may not be worth the money but you very much enjoy doing it. Or you may get shitloads of money but hate doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Concerning writing a book, check out the top answer for this SO question: &lt;a href=&quot;http://stackoverflow.com/questions/347821/do-programmers-read-books-or-is-the-book-industry-dead&quot;&gt;http://stackoverflow.com/questions/347821/do-programmers-read-books-or-is-the-book-industry-dead&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-23T10:47:59.530" />
  <row Id="6617" PostTypeId="2" ParentId="6591" CreationDate="2010-09-23T10:50:54.723" Score="2" ViewCount="" Body="&lt;p&gt;I'm now writing articles and book reviews for more than 11 years, and right now additionally a book about Google Go. Additionally I'm giving talks at conferences. I definitely have to say it's worth it. Not because of the directly earned money. But writing and presenting helps to keep open-minded for new technologies or trends as well as it supports networking and is giving a good reputation. That opens doors, e.g. for new jobs.&lt;/p&gt;&#xA;" OwnerUserId="2917" LastActivityDate="2010-09-23T10:50:54.723" />
  <row Id="6618" PostTypeId="2" ParentId="5" CreationDate="2010-09-23T11:23:07.233" Score="6" ViewCount="" Body="&lt;p&gt;I'm shocked that nobody mentioned Emacs. The best version for Windows development IMHO is &lt;a href=&quot;http://ourcomments.org/Emacs/EmacsW32.html&quot; rel=&quot;nofollow&quot;&gt;EmacsW32&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2610" LastActivityDate="2010-09-23T11:23:07.233" CommunityOwnedDate="2011-03-08T02:44:19.193" CommentCount="2" />
  <row Id="6619" PostTypeId="5" CreationDate="2010-09-23T11:23:12.617" Score="0" ViewCount="0" Body="&lt;p&gt;C# is a multiparadigm, managed, garbage-collected object-oriented programming language created by Microsoft in conjunction with the .NET platform, but also used with non-Microsoft implementations (most notably, &lt;a href=&quot;http://www.mono-project.com/&quot; rel=&quot;nofollow&quot;&gt;Mono&lt;/a&gt;).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Versions 1.0/1.2 and 2.0 of C# were submitted and approved as both &lt;a href=&quot;http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf&quot; rel=&quot;nofollow&quot;&gt;ECMA&lt;/a&gt; and &lt;a href=&quot;http://standards.iso.org/ittf/PubliclyAvailableStandards/c042926_ISO_IEC_23270_2006%28E%29.zip&quot; rel=&quot;nofollow&quot;&gt;ISO/IEC&lt;/a&gt; standards.  As of December 2010, there are no ECMA or ISO/IEC specifications for C# 3.0 and 4.0, however language specifications are available from Microsoft (&lt;a href=&quot;http://download.microsoft.com/download/3/8/8/388e7205-bc10-4226-b2a8-75351c669b09/CSharp%20Language%20Specification.doc&quot; rel=&quot;nofollow&quot;&gt;3.0&lt;/a&gt; and &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=dfbf523c-f98c-4804-afbd-459e846b268e&quot; rel=&quot;nofollow&quot;&gt;4.0&lt;/a&gt; respectively).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The language's type-system was originally static, with only explicit variable declarations allowed. However, the introduction of &lt;code&gt;var&lt;/code&gt; (C# 3.0) and &lt;code&gt;dynamic&lt;/code&gt; (C# 4.0) allow it to use type-inference for implicit variable typing, and to consume dynamic type-systems, respectively. Delegates (especially with lexical-closure support for anonymous-methods (C# 2.0) and lambda-expressions (C# 3.0)) allow the language to be used for functional programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compilation is usually to the Common Intermediate Language (CIL), which is then JIT-compiled to native code (and cached) during execution in the Common Language Runtime (CLR); however, options like &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/6t9t5wcf.aspx&quot; rel=&quot;nofollow&quot;&gt;Ngen&lt;/a&gt; (.NET) and &lt;a href=&quot;http://www.mono-project.com/AOT&quot; rel=&quot;nofollow&quot;&gt;AOT&lt;/a&gt; (Mono) mean this isn't the only option. Additionally, some frameworks (e.g. the Micro Framework) act as CIL interpreters, with no JIT.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps unusually, generics in C# are provided (in part) by the runtime, unlike (for comparison) C++ templates, or Java's generics (which use type-erasure).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the combination of Microsoft .NET for Windows (desktop/server), Mono (desktop/server/mobile), Silverlight / Moonlight (browser/mobile), Compact Framework (mobile), and Micro Framework (embedded devices), it is available for a wide range of platforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Hello World&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;using System;&#xA;class Hello&#xA;{&#xA;    static void Main() &#xA;    {&#xA;        Console.WriteLine(&quot;Hello, World&quot;);&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;FAQs&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/247621/what-are-the-correct-version-numbers-for-c&quot;&gt;What are the correct version numbers for C#?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/767999/random-number-generator-not-working-the-way-i-had-planned-c&quot;&gt;Why is &lt;code&gt;Random&lt;/code&gt; giving the same results every time?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/3416758/outer-variable-trap&quot;&gt;Captured variables in loops&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/1777800/in-c-is-it-possible-to-cast-a-listchild-to-listparent&quot;&gt;Why can't I convert &lt;code&gt;List&amp;lt;Banana&amp;gt;&lt;/code&gt; to &lt;code&gt;List&amp;lt;Fruit&amp;gt;&lt;/code&gt;?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Does C# pass objects by reference?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Resources&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkId=188622&quot; rel=&quot;nofollow&quot;&gt;Specification&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Wikipedia Article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/&quot; rel=&quot;nofollow&quot;&gt;Eric Lippert's blog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/67ef8sbd.aspx&quot; rel=&quot;nofollow&quot;&gt;Programming Guide&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Books&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.microsoft.com/learning/en/us/books.aspx?id=13874&amp;amp;locale=en-us&quot; rel=&quot;nofollow&quot;&gt;CLR via C#&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.albahari.com/nutshell/&quot; rel=&quot;nofollow&quot;&gt;C# in a Nutshell&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.manning.com/skeet2/&quot; rel=&quot;nofollow&quot;&gt;C# in Depth&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://apress.com/book/view/9781430225379&quot; rel=&quot;nofollow&quot;&gt;Accelerated C#&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1449380344&quot; rel=&quot;nofollow&quot;&gt;Head First C#&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;The C# Programming Language (&lt;a href=&quot;http://www.informit.com/store/product.aspx?isbn=0321562992&quot; rel=&quot;nofollow&quot;&gt;3rd Edition&lt;/a&gt;, &lt;a href=&quot;http://www.informit.com/store/product.aspx?isbn=0321741765&quot; rel=&quot;nofollow&quot;&gt;4th Edition&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321545613&quot; rel=&quot;nofollow&quot;&gt;Framework Design Guidelines&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Essential C# (&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321694694&quot; rel=&quot;nofollow&quot;&gt;4.0 (3rd Edition)&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="-1" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-02-14T23:25:52.950" LastActivityDate="2011-02-14T23:25:52.950" />
  <row Id="6620" PostTypeId="4" CreationDate="2010-09-23T11:23:12.617" Score="0" ViewCount="0" Body="C# is a multiparadigm, managed, garbage-collected object-oriented programming language created by Microsoft in parallel with the .NET platform" OwnerUserId="-1" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-02-14T23:25:52.997" LastActivityDate="2011-02-14T23:25:52.997" />
  <row Id="6621" PostTypeId="2" ParentId="6591" CreationDate="2010-09-23T11:29:44.587" Score="3" ViewCount="" Body="&lt;p&gt;A lot depends on your current job and what you would like as your next job. If you work for a large company and intend to do so indefinitely (you like the location, benefits etc) then your gains from being an author or speaker are restricted to what you learn by preparing and the enjoyment you get from actually doing it or from being able to look back and see that you did it. In fact, you may have to do things like take vacation days in order to speak at a conference. Your extra abilities (confidence, technical knowledge, comfort speaking) may lead to promotions at work, or they may not. The downsides are the time, typically harvested from family time (evenings, weekends) and the stress (especially for a book, which has deadlines -- author review time is insane as any published author will tell you). Most people can write only one book in their free time. Beyond that you need to free up the time some other way, such as using up vacation time or banked overtime.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you work for a small company (whether you own it or not) then management is likely to see a benefit to the company of you demonstrating your knowledge. In the best case, the time you spend prepping is considered working, the time you spend traveling and presenting is considered working, and you're rewarded in the workplace for what you've done - in addition to learning the material, gaining confidence, working on the &quot;brand of you&quot;, and getting to travel to cool places. This is how it works for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is also the matter of your next job - both the knowledge and the confidence will take you a long way there, and of course your next employer may have already heard of you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it worth it? Well, lots of people are doing it and they look pretty happy. I know I am. Articles and speaking are more granular than a book. Start there. As long as you are realistic about the benefits, and have thought about how that fits with your job, it can work beautifully.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-09-23T11:29:44.587" />
  <row Id="6622" PostTypeId="2" ParentId="6595" CreationDate="2010-09-23T11:36:20.677" Score="2" ViewCount="" Body="&lt;p&gt;You can't do their job. You shouldn't try to do their job. What you should do however is giving your opinion. Always.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you are 100% sure of what you say, don't try to convince them with affirmations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My trick: &lt;strong&gt;ask questions&lt;/strong&gt;. By asking questions, you can safely try to understand, and you will see that, sometimes, they may be right too.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-23T11:36:20.677" />
  <row Id="6623" PostTypeId="2" ParentId="6587" CreationDate="2010-09-23T11:37:30.510" Score="1" ViewCount="" Body="&lt;p&gt;It's got to allow you to edit, compile/build, and debug.&lt;/p&gt;&#xA;" OwnerUserId="2180" LastActivityDate="2010-09-23T11:37:30.510" />
  <row Id="6624" PostTypeId="2" ParentId="6595" CreationDate="2010-09-23T11:41:36.563" Score="2" ViewCount="" Body="&lt;p&gt;One-by-one, you can't. You're at your desk, sales calls and says excitedly that they've set up another meeting with Mr Big, and are you free at 2? And can you make another demo by then? It's just never going to be an appropriate response for you to say &quot;dude, Mr Big is totally not buying this software, that meeting would waste my time, no, I'm not going.&quot; Whether Mr Big is buying or not is something the sales guy is supposed to know more about than you. (In fact, he might even be right.) So for that call, you have to suck it up and say sure. And do a good job on the slides!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Longer term, a chat with your boss about this &quot;supporting the sales team&quot; role would probably be helpful. Is your issue the time spent? Or that you object to investing time in something that is doomed? In my experience, it is highly unusual for the number of technical people in the room to &lt;em&gt;shrink&lt;/em&gt; as the sales process goes on - normally the tech people only show up once things are getting warm, and more of them come to each meeting until the client is landed. So you wanting to bail from the process before the sale is closed will appear strange to management and sales. Discussing this with management may help you to understand how your presence increases the chance of a sale. I think it's unlikely management will grant you a pass to bail on selected client pitches based on your opinion of whether they are going to buy or not, but you could talk about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, you clearly are expected to produce slides and demos as part of your job, so approach them with the same dignity as &quot;real code&quot;. Reuse, have a repository, be modular, don't repeat yourself, figure out how to waste as little time as possible giving sales what they need. Remember, when Mr Big does write that cheque, he's funding your salary. You want him to buy. You want to help sales. You just want to do so as quickly and efficiently as possible.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-09-23T11:41:36.563" CommentCount="1" />
  <row Id="6625" PostTypeId="1" AcceptedAnswerId="19289" CreationDate="2010-09-23T11:50:51.223" Score="6" ViewCount="383" Body="&lt;p&gt;I would like to start an open source project, and would like to do a collaborative effort in starting it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a clear idea of what I want, but not yet a formal specification (I would like to do also the design as a collaborative effort, as well as the choice of the language and platform).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;What should I do before the start?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Then where should I host the project and especially where can I advertise it to find collaborators?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Is there a (free) tool to help the collaborative design? Can I simply rely on a wiki + forum?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I wrote the question as generic as possible in order for being useful for all the audiences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that usually open source projects &lt;em&gt;just starts&lt;/em&gt; with the initial work of one or few developers, but I'm really trying to avoid that development model (I want to start from scratch in a collaborative way).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please don't answer &quot;you shouldn't&quot; (which would be an off topic answer). I want to go that way anyway, starting by building a &quot;product team&quot; just like any company would do for any non-trivial project.&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-10-13T08:51:32.983" LastActivityDate="2010-11-16T10:29:04.267" Title="How to recruit programmers for an open source project and kick-start it?" Tags="&lt;open-source&gt;&lt;design&gt;&lt;collaboration&gt;&lt;project-hosting&gt;&lt;recruiting&gt;" AnswerCount="8" CommentCount="13" FavoriteCount="6" />
  <row Id="6626" PostTypeId="2" ParentId="6591" CreationDate="2010-09-23T11:50:51.583" Score="14" ViewCount="" Body="&lt;p&gt;That's funny because just yesterday, my lawyer sent a letter to the editor of a book I wrote in 2002. I want my copy rights back to put the whole content on the internet (Creative Common or eBook, I'm not decided yet).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why ? Because, even if I've been well paid to write it (one reason to write one), I want my contribution to be used and read by more people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really think that everybody should create, contribute and deliver intellectual property. That's why I'm involved in open source projects as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So writing a book is certainly one of the best way to contribute in changing this world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to change the world. Contribute.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-09-23T13:49:06.673" LastActivityDate="2010-09-23T13:49:06.673" CommentCount="7" />
  <row Id="6627" PostTypeId="2" ParentId="6625" CreationDate="2010-09-23T11:56:43.487" Score="2" ViewCount="" Body="&lt;p&gt;If you know what language you want to use, why not talk about your project in that language's forum?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an example, if I wanted to start up a project using Squeak, I'd talk about it in &lt;a href=&quot;http://lists.squeakfoundation.org/pipermail/squeak-dev/&quot; rel=&quot;nofollow&quot;&gt;squeak-dev&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Added: since you want the choice of language to be part of the design, you'll need to find those collaborators in a language-agnostic way. You could, where appropriate, announce your intentions to start in whatever fora you usually frequent, or ask in your social circle.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-09-23T12:50:03.730" LastActivityDate="2010-09-23T12:50:03.730" CommentCount="1" />
  <row Id="6628" PostTypeId="2" ParentId="6625" CreationDate="2010-09-23T12:02:21.570" Score="7" ViewCount="" Body="&lt;p&gt;Just &lt;em&gt;start&lt;/em&gt;. You are likely to gain collaboration only if you provide the initial momentum.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where you host/find collaborators largely depends on what type of project it is. For example, for a new .NET framework/library, you should probably use &lt;a href=&quot;http://www.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;CodePlex&lt;/a&gt; or &lt;a href=&quot;http://github.com&quot; rel=&quot;nofollow&quot;&gt;GitHub&lt;/a&gt;. For something involving &lt;a href=&quot;http://www.gnome.org&quot; rel=&quot;nofollow&quot;&gt;GNOME&lt;/a&gt; you would likely use either the GNOME infrastructure, or something like &lt;a href=&quot;https://launchpad.net/&quot; rel=&quot;nofollow&quot;&gt;Launchpad&lt;/a&gt;. Similarly, like the other answer suggested, different programming languages or operating systems likely have 'core sites' that focus on that programming language/platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as collaborative design goes, some sites have tools like Launchpad's &lt;a href=&quot;https://blueprints.launchpad.net/&quot; rel=&quot;nofollow&quot;&gt;Blueprints&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="3411" LastEditorUserId="3411" LastEditorDisplayName="" LastEditDate="2010-10-18T20:56:39.657" LastActivityDate="2010-10-18T20:56:39.657" CommentCount="10" />
  <row Id="6629" PostTypeId="2" ParentId="4384" CreationDate="2010-09-23T12:03:41.393" Score="2" ViewCount="" Body="&lt;p&gt;My story is not specific to the 'coding part' of programming but supporting a major UK website during a performance issue that took it offline, and with some analysis we took it back online and fixed stuff along the way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The list of platform level checks and plan of action that was formulated later became a series of steps to check for in any future crisis. I eventually put that &lt;a href=&quot;http://jojovedder.blogspot.com/2009/05/slow-server-response-part-4-platform.html&quot; rel=&quot;nofollow&quot;&gt;list out on the net here&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1681" LastActivityDate="2010-09-23T12:03:41.393" />
  <row Id="6630" PostTypeId="2" ParentId="6031" CreationDate="2010-09-23T12:07:09.530" Score="1" ViewCount="" Body="&lt;p&gt;I really don't see the point.  MySQL is a mess anyway, and a fork of it is going to inherit all its quirks and gitches.  If you want to move off of MySQL, why not just switch to Firebird, a free and open source DB that doesn't feel like a toy whenever you try to use it?&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-23T12:07:09.530" CommentCount="2" />
  <row Id="6632" PostTypeId="2" ParentId="5" CreationDate="2010-09-23T12:10:33.363" Score="0" ViewCount="" Body="&lt;p&gt;I like &lt;a href=&quot;http://www.notetab.com&quot; rel=&quot;nofollow&quot;&gt;NoteTab Std&lt;/a&gt;.  Some of its features:    &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Handles many documents at once&#xA;through a tabbed interface.&lt;/li&gt;&#xA;&lt;li&gt;Runs off USB drives and does not&#xA;require installation with a Setup&#xA;program.&lt;/li&gt;&#xA;&lt;li&gt;Allows multi-line search-and-replace&#xA;across open documents, or search any&#xA;file on disk.&lt;/li&gt;&#xA;&lt;li&gt;Integrates the PCRE regular&#xA;expressions engine for flexible&#xA;wildcard search-and-replace&#xA;operations&lt;/li&gt;&#xA;&lt;li&gt;Text statistics tool shows number of&#xA;characters, words, and frequency of&#xA;each word in a document.&lt;/li&gt;&#xA;&lt;li&gt;Calculates the value of mathematical&#xA;expressions entered in NoteTab.&lt;/li&gt;&#xA;&lt;li&gt;Clipbook tool makes it easy to save,&#xA;reuse, expand, and auto-correct any&#xA;kind of text.&lt;/li&gt;&#xA;&lt;li&gt;Includes a scripting language that&#xA;enables the creation of custom&#xA;text-processing tools.&lt;/li&gt;&#xA;&lt;li&gt;Enables creating your own custom&#xA;toolbars.&lt;/li&gt;&#xA;&lt;li&gt;Provides a thesaurus and a&#xA;multilingual spell checker.&lt;/li&gt;&#xA;&lt;li&gt;Lets you create and edit NoteTab&#xA;Outline documents.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I have no connection with the company, just a happy customer of several years&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-23T12:10:33.363" CommunityOwnedDate="2011-03-08T02:44:19.193" />
  <row Id="6633" PostTypeId="1" AcceptedAnswerId="6742" CreationDate="2010-09-23T12:12:58.287" Score="17" ViewCount="425" Body="&lt;p&gt;I always had this question in mind but couldn't find a proper place to ask. There are some really nice and great open source free software available on the net. How do these products sustain themselves financially? It is one thing writing a small utility which does something nice but writing a complicated product with whole lot of features is a totally different ball game. So to repeat myself again, how do they work financially?&lt;/p&gt;&#xA;" OwnerUserId="123" LastEditorUserId="25" LastEditorDisplayName="" LastEditDate="2010-09-23T16:48:26.400" LastActivityDate="2011-05-10T03:04:52.097" Title="How are open-source projects able to sustain themselves?" Tags="&lt;open-source&gt;&lt;financial&gt;" AnswerCount="8" FavoriteCount="2" />
  <row Id="6635" PostTypeId="2" ParentId="6595" CreationDate="2010-09-23T12:17:31.307" Score="2" ViewCount="" Body="&lt;p&gt;You're always going to do this and sales people by nature are going to optimistic, head strong, and fight a deal to the end. They don't take no for an answer and we give no for an answer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, be thankful they are there. Seriously, you have to take the good with the bad and their character trait is what keeps them going after the 200th cold call.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of isolating a particular deal and calling saying no, rank it with the other open deals. Just tell them we would be better off focusing on other ones. Do this even if you think they're all bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A company should look into sales staff or anyone else who is hogging technical resources.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-23T12:17:31.307" CommentCount="2" />
  <row Id="6636" PostTypeId="2" ParentId="44" CreationDate="2010-09-23T12:20:00.053" Score="1" ViewCount="" Body="&lt;p&gt;If a developer showed up at an interview with a bunch of certifications on his resume, I would develop serious doubts as to his value system. There are zero situations in which I'd value time spent obtaining a certification over time spent working on a project. Any project.&lt;/p&gt;&#xA;" OwnerUserId="12" LastActivityDate="2010-09-23T12:20:00.053" />
  <row Id="6637" PostTypeId="2" ParentId="5" CreationDate="2010-09-23T12:20:33.223" Score="0" ViewCount="" Body="&lt;p&gt;I use EmEditor. It can handle really huge files.&lt;/p&gt;&#xA;" OwnerUserId="656" LastActivityDate="2010-09-23T12:20:33.223" CommunityOwnedDate="2011-03-08T02:44:19.193" />
  <row Id="6638" PostTypeId="2" ParentId="3086" CreationDate="2010-09-23T12:24:25.377" Score="0" ViewCount="" Body="&lt;p&gt;I haven't seen anyone mention trigonometry, perhaps because its just a given.  But I've had to brush up on my trigonometry skills several times over the years, particularly when dealing with computer graphics.  Also shows up in some embedded programming work.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-23T12:24:25.377" />
  <row Id="6639" PostTypeId="1" CreationDate="2010-09-23T12:27:25.073" Score="11" ViewCount="1543" Body="&lt;p&gt;I'm looking for a pair of headphones to block out noise at work while I program; I'm probably 10x more effective in a quiet environment, and I'd use Steve McConnell's stats in the Software Project Survival Guide to back that up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I work in a cube farm. It's noisy, and I sit next to many people who aren't developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want these to be comfortable for at least an hour, hopefully three.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In-ear designs seem bad, because then coworkers can't see I have headphones on, and they think I'm ignoring them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suggestions on what headphones to look at?  I have a larger head - I'm a big guy - so Sennheiser seems poor for me. &lt;/p&gt;&#xA;" OwnerUserId="3412" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-02-18T08:45:48.930" LastActivityDate="2011-02-18T08:45:48.930" ClosedDate="2011-01-02T22:01:01.663" Title="What headphones work best to block out the cubical office noise?" Tags="&lt;office&gt;" AnswerCount="11" CommentCount="3" FavoriteCount="4" />
  <row Id="6640" PostTypeId="2" ParentId="5" CreationDate="2010-09-23T12:27:37.200" Score="0" ViewCount="" Body="&lt;p&gt;I use vim within cygwin/zsh/mintty. Vim supports typing and navigating nearly any text-based file efficiently and provides a consistent user experience on nearly all platforms you will encounter. Similarly, zsh/cygwin provides an interface for navigating the filesystem and performing common tasks across nearly all platforms you will encounter. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Familiarity with tools like these will allow you to be instantly comfortable in new environments no matter where your career takes you. It's well worth the learning curve, even if you are exclusively a windows developer at the moment.&lt;/p&gt;&#xA;" OwnerUserId="12" LastActivityDate="2010-09-23T12:27:37.200" CommunityOwnedDate="2011-03-08T02:44:19.193" />
  <row Id="6642" PostTypeId="2" ParentId="6639" CreationDate="2010-09-23T12:40:34.970" Score="0" ViewCount="" Body="&lt;p&gt;I've tried a few, these are my favourites &lt;a href=&quot;http://www.amazon.co.uk/Klipsch-Image-X1-Headphones/dp/B002EL3P5U&quot; rel=&quot;nofollow&quot;&gt;Klipsch X1&lt;/a&gt; for ~£20. &lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-23T12:40:34.970" />
  <row Id="6643" PostTypeId="2" ParentId="1785" CreationDate="2010-09-23T12:43:19.563" Score="0" ViewCount="" Body="&lt;p&gt;Hexadecimal notation.  Also bit fields -- ANDing, ORing (inclusive and exclusive), complementing (1's and 2's), bit shifting.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-23T12:43:19.563" CommunityOwnedDate="2010-09-23T12:43:19.563" />
  <row Id="6645" PostTypeId="2" ParentId="6639" CreationDate="2010-09-23T12:46:34.223" Score="2" ViewCount="" Body="&lt;p&gt;I bought the &quot;Sennheiser HD-280 Pro&quot;, but they fell apart after a couple of years. I also found that they block too much outside noise, so I am currently using an open-back headphone where you run the risk of annoying co-workers if you listen too loudly, they leak a lot of sound.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try going to &lt;a href=&quot;http://www.headphone.com/headphones/&quot; rel=&quot;nofollow&quot;&gt;HeadRoom&lt;/a&gt; and reading over their reviews and selection guides. You are  probably looking for someting in their the &quot;Closed&quot; or &quot;Full Size&quot; categories. I feel they give good unbiased reviews.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's hard to make a recommendation since you didn't give a price range. I had a pair of &quot;AKG K240M&quot; for about 20 years before they blew a driver, but I currently prefer the sound signature of Grados, with the caveat that all Grados are open back. My current work cans are the &quot;Grado SR-60&quot;. Inexpensive and very good sounding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To help confuse the issue you could spend some time on the &lt;a href=&quot;http://www.head-fi.org/&quot; rel=&quot;nofollow&quot;&gt;Head-Fi&lt;/a&gt; forums reading everybody's opinions about practically any pair of headphones made.&lt;/p&gt;&#xA;" OwnerUserId="749" LastActivityDate="2010-09-23T12:46:34.223" CommentCount="6" />
  <row Id="6646" PostTypeId="2" ParentId="67" CreationDate="2010-09-23T12:50:11.533" Score="1" ViewCount="" Body="&lt;p&gt;Don't forget about Jakob Nielsen's &lt;a href=&quot;http://www.useit.com/alertbox/&quot; rel=&quot;nofollow&quot;&gt;http://www.useit.com/alertbox/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've learned a LOT about usability from reading his articles.&lt;/p&gt;&#xA;" OwnerUserId="1043" LastActivityDate="2010-09-23T12:50:11.533" CommunityOwnedDate="2010-09-23T12:50:11.533" />
  <row Id="6647" PostTypeId="2" ParentId="6633" CreationDate="2010-09-23T12:51:21.337" Score="3" ViewCount="" Body="&lt;p&gt;Here's one potential way: support.  Support can be a money-maker.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Linux distros are &quot;free&quot;, but there are training costs to companies as most employees won't be familiar with the technologies.  So consultancy becomes a viable source of income for open-source projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A real-world example: the company I work for wanted to introduce automated acceptance testing (using tools like selenium, fitnesse, fitsharp etc.)  The tools are all free, but to implement them in an effective way is not that straightforward. So a consultant (somebody who actually developed these tools) was brought in to suggest the best ways to implement them.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure other answers will give other ways that open source projects can sustain themselves, this is just one way...&lt;/p&gt;&#xA;" OwnerUserId="55" LastActivityDate="2010-09-23T12:51:21.337" />
  <row Id="6648" PostTypeId="2" ParentId="4384" CreationDate="2010-09-23T12:52:22.963" Score="6" ViewCount="" Body="&lt;p&gt;About ten years ago, my employer at the time had sent the app offshore to be written, and it came back bloated.  Very bloated.  Displaying a list to screen was 1000+ lines of code, across many layers; JSP, JavaScript, Java, SQL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wrote a Java library that took a very small amount of input to generate dynamic lists/tables onscreen, formatted in a very standard way.  You passed it SQL, and that was all; the SQL would specify column names, and the first call of new SQL would determine data types by reflection, then cache that data.  That library took maybe 20 lines of code, total, to do the same thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seemed ridiculous to the manager, and I pushed on with it two or three nights after hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It cut over a hundred thousand lines of code out of the system.  It added new functionality system-wide.  It cleared up dozens of small bugs some of those screens were having.  I was really proud of this, as it was the largest (yet simple!) single round of refactoring I've ever done, and it worked blissfully well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Today, I'd just use DisplayTag, for what it's worth.&lt;/p&gt;&#xA;" OwnerUserId="3412" LastActivityDate="2010-09-23T12:52:22.963" />
  <row Id="6649" PostTypeId="2" ParentId="6639" CreationDate="2010-09-23T12:52:25.047" Score="0" ViewCount="" Body="&lt;p&gt;I got &lt;a href=&quot;http://shop.skype.com/headsets/wireless/iss-talk-5192-freetalk/&quot; rel=&quot;nofollow&quot;&gt;these&lt;/a&gt; for use with Skype, but found they are incredibly comfortable for long periods when listening to music also, due to their padded earpieces (the microphone folds up out of the way).  They are wireless, one charge lasts about four hours.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They block noise so well that the other day the fire alarm went off, and someone had to come over and tap me on the shoulder because I didn't hear it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case, I would definitely look into wireless earphones, it is really nice not to be tethered to your computer.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-23T12:52:25.047" />
  <row Id="6650" PostTypeId="2" ParentId="6556" CreationDate="2010-09-23T12:52:52.637" Score="0" ViewCount="" Body="&lt;p&gt;I really liked the language, I'll miss it. It was doing interesting stuff with the declarative syntax, binding, etc., that won't be able to be replicated in Java. I think they should have strengthened the Java API but let the JavaFX script language live for people who want it.&lt;/p&gt;&#xA;" OwnerUserId="3390" LastActivityDate="2010-09-23T12:52:52.637" />
  <row Id="6651" PostTypeId="2" ParentId="6639" CreationDate="2010-09-23T12:53:20.537" Score="2" ViewCount="" Body="&lt;p&gt;You didn't mention price range, so I'll suggest the Rolls Royce of headphones.  I've used noise-cancelling headphones from &lt;a href=&quot;http://www.bose.com/controller?url=/shop_online/headphones/noise_cancelling_headphones/index.jsp&quot; rel=&quot;nofollow&quot;&gt;Bose&lt;/a&gt; for years and love them both for at work and on a plane.  They have fantastic sound and you'll wonder how you ever went without the noise-cancelling feature after you use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/12GTT.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-23T12:53:20.537" CommentCount="9" />
  <row Id="6653" PostTypeId="2" ParentId="1599" CreationDate="2010-09-23T12:57:29.850" Score="4" ViewCount="" Body="&lt;p&gt;I hate priority rules in traffic because they’re not deadlock-free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What happens when four cars arrive at the same time at a crossing? Who has priority?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(This is just an example; a lot of real-life situations are based on compromises that are not fool-proof and may fail badly in theory, but rarely do in practice. Always give me the creeps.)&lt;/p&gt;&#xA;" OwnerUserId="2366" LastActivityDate="2010-09-23T12:57:29.850" CommunityOwnedDate="2010-09-23T12:57:29.850" />
  <row Id="6654" PostTypeId="2" ParentId="1338" CreationDate="2010-09-23T13:05:09.803" Score="4" ViewCount="" Body="&lt;p&gt;I worked for a short time in Japan. I was doing complex mathematical coding. The company coding standard was to have absolutely no comments. It was difficult as I would have liked to add some comments to explain the complex calculations and not forget myself after few weeks. Pity the next guy who comes after me to understand what the code was doing.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was the first time I ever saw that coding comments were prohibited.&lt;/p&gt;&#xA;" OwnerUserId="3414" LastActivityDate="2010-09-23T13:05:09.803" CommunityOwnedDate="2010-09-23T13:05:09.803" />
  <row Id="6655" PostTypeId="2" ParentId="6591" CreationDate="2010-09-23T13:12:08.197" Score="7" ViewCount="" Body="&lt;p&gt;Nobody has mentioned this yet but I find it worth pointing out that &lt;strong&gt;it’s fun!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, that would be my primary motivation to do any of those things. Mastering a topic and preparing a presentation / writing an article or a book is immense fun. So is the feeling of satisfaction for a work well done.&lt;/p&gt;&#xA;" OwnerUserId="2366" LastActivityDate="2010-09-23T13:12:08.197" />
  <row Id="6656" PostTypeId="1" CreationDate="2010-09-23T13:17:32.913" Score="3" ViewCount="554" Body="&lt;p&gt;This is related to my C++ teacher of semester one and, unfortunately, the coming second semester as well. I have already completed the first assignment; needless to say, it's horrible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can I gently tell my professor that the homework he is forcing us to do is giving us a bad example of good OOP as well as bad OOP practice in C++. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, he is forcing us to class all of our functions, use get/set methods for all members and painstakingly horrible functions to call our data. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is an example of the homework project we have to do:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;AuctionApplication aA;&#xA;Auction *auction = aA.CreateAuction(&quot;Hello&quot;);&#xA;Bidder *bidder   = aA.CreateBidder(&quot;, World&quot;);&#xA;Bid *bid         = aA.bid(bidder, auction, 0);&#xA;&#xA;std::cout &amp;lt;&amp;lt; &quot;Auction:  &quot;  &amp;lt;&amp;lt; aA.GetLatestBid(auction)-&amp;gt;GetAuction()-&amp;gt;GetName()&#xA;          &amp;lt;&amp;lt; &quot;\nBidder:  &quot; &amp;lt;&amp;lt; aA.GetLatestBid(auction)-&amp;gt;GetBidder()-&amp;gt;GetName()&#xA;          &amp;lt;&amp;lt; &quot;\nPrice:  &quot;  &amp;lt;&amp;lt; aA.GetLatestBid(auction)-&amp;gt;GetPrice() &amp;lt;&amp;lt; &quot;\n\n&quot;;&#xA;&#xA;std::cout &amp;lt;&amp;lt; &quot;Auction:  &quot;  &amp;lt;&amp;lt; bid-&amp;gt;GetAuction()-&amp;gt;GetName()&#xA;          &amp;lt;&amp;lt; &quot;\nBidder:  &quot; &amp;lt;&amp;lt; bid-&amp;gt;GetBidder()-&amp;gt;GetName()&#xA;          &amp;lt;&amp;lt; &quot;\nPrice:  &quot;  &amp;lt;&amp;lt; bid-&amp;gt;GetPrice();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Every single function must have a non-void return type, I cannot simply retrieve any data whatsoever without jumping through hoops. Above that, it's not even encapsulated properly, as I can easily get a bid member and then, if I was an unknowing programmer, continue programming with said value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no const-correctness, there is no efficiency (everything is pass by value, even vectors and lists), there is no exception safety, nothing whatsoever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The homework assignments are bug-ridden and goes against the nature of C++, which is, in my opinion, OOP in moderation, as it demands.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure if it's me, and how my other classmates feel about it. I know my friend feels the same way, but most of the class is struggling as it is with a fail-rate of 60% on exams.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any way I can tell my teacher to try and give better assignments in a more C++ style environment without possibly raising his ire?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Posting this in Programmers as opposed to SO since the question deals with how to talk to programming professors, not write actual code :)&lt;/p&gt;&#xA;" OwnerUserId="68" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-23T13:21:48.950" LastActivityDate="2010-12-13T15:38:42.850" Title="How to Subtly Tell a Professor About our Poor Programming Assignments?" Tags="&lt;school&gt;&lt;social-skills&gt;" AnswerCount="12" CommentCount="4" FavoriteCount="1" />
  <row Id="6659" PostTypeId="2" ParentId="6587" CreationDate="2010-09-23T13:26:37.437" Score="3" ViewCount="" Body="&lt;p&gt;Other than the obvious features like integrated build, debug and source control, etc. I want to highlight that &lt;a href=&quot;http://en.wikipedia.org/wiki/IntelliSense&quot; rel=&quot;nofollow&quot;&gt;IntelliSense&lt;/a&gt; can help the developer to be really productive with a language with a large library. E.g.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Visual Studio&lt;/li&gt;&#xA;&lt;li&gt;Eclipse&lt;/li&gt;&#xA;&lt;li&gt;Wing IDE (not free)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/905005/python-and-intellisense&quot;&gt;Vim can be setup&lt;/a&gt; to do this too.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-23T13:26:37.437" CommentCount="1" />
  <row Id="6660" PostTypeId="1" CreationDate="2010-09-23T13:28:56.780" Score="2" ViewCount="191" Body="&lt;p&gt;Normally unit tests were written by developer who write the code, i.e. Test Driven Development. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what does Software Engineer in Test do?&lt;/p&gt;&#xA;" OwnerUserId="3415" LastActivityDate="2010-09-23T17:18:56.340" Title="What does Software Engineer in Test do?" Tags="&lt;development-process&gt;&lt;unit-testing&gt;&lt;tdd&gt;&lt;testers&gt;" AnswerCount="5" CommentCount="4" />
  <row Id="6661" PostTypeId="2" ParentId="6660" CreationDate="2010-09-23T13:33:13.773" Score="1" ViewCount="" Body="&lt;p&gt;They write code to test Software Engineers' code. A lot of times they develop automated test tools. AFAIK, Google, Microsoft and other big software companies hire a lot of SETs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Test engineers utilize three types of testing strategies which are known as black box, white box and gray box testing.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://degreedirectory.org/articles/How_Does_a_Software_Testing_Engineer_Do.html&quot; rel=&quot;nofollow&quot;&gt;How does a software test engineer do?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.wisegeek.com/what-does-a-software-test-engineer-do.htm&quot; rel=&quot;nofollow&quot;&gt;What Does a Software Test Engineer Do?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-23T14:01:11.397" LastActivityDate="2010-09-23T14:01:11.397" CommentCount="3" />
  <row Id="6662" PostTypeId="1" AcceptedAnswerId="6666" CreationDate="2010-09-23T13:34:19.790" Score="11" ViewCount="207" Body="&lt;p&gt;I've been on the constant road of learning new concepts in OOP, Software Design, Architecture, etc. But there are times when you are in a team where those concepts are foreign to them and they don't have the time or the same eagerness to learn as you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is if you design your code the &quot;right&quot; way, the people who code with 2kLOC classes won't understand it. Would you sacrifice good coding principles to support your team? What about a scenario where this will be a long term arrangement?&lt;/p&gt;&#xA;" OwnerUserId="1668" LastActivityDate="2010-09-23T13:49:32.293" Title="Have You Ever Had To Code &quot;Badly&quot; For Your Team?" Tags="&lt;experience&gt;" AnswerCount="2" FavoriteCount="2" />
  <row Id="6663" PostTypeId="2" ParentId="6639" CreationDate="2010-09-23T13:34:43.203" Score="2" ViewCount="" Body="&lt;p&gt;I own Bose, and it does a pretty good job. I also use Shure earphones which actually also do a good job since they fit very well in the ear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, my biggest defense is that I turn music on - I can mostly work well (sometimes better) with good music in my ears.&lt;/p&gt;&#xA;" OwnerUserId="3231" LastActivityDate="2010-09-23T13:34:43.203" CommentCount="1" />
  <row Id="6664" PostTypeId="2" ParentId="6639" CreationDate="2010-09-23T13:35:05.173" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You want in-ear monitors.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Okay, okay, so your mates will think you're ignoring them. How long will it take them to learn you have these newfangled little devices that work real well? I'd say it's worth it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They block out a tremendous amount of noise, upwards of 30 dB for the better ones. They are more effective than any active noise cancelling headphones (like the Bose QuietComfort), which only work to block out ambient noise like airplane engines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The two mainstream suppliers of IEMs are &lt;a href=&quot;http://www.shure.com/&quot; rel=&quot;nofollow&quot;&gt;Shure&lt;/a&gt; and &lt;a href=&quot;http://www.etymotic.com/&quot; rel=&quot;nofollow&quot;&gt;Etymotic&lt;/a&gt;. A number of other manufacturers have caught on in recent years and started making more affordable IEMs for the average consumer. For a good, rated list, check out the &lt;a href=&quot;http://www.headphone.com/headphones/in-ear.php&quot; rel=&quot;nofollow&quot;&gt;HeadRoom page&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, the comparison between Etymotic and Shure products goes something like this: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Etymotic products provides an &lt;em&gt;unprecedented&lt;/em&gt; level of detail and clarity, to the point where you will literally hear things in your music that you've never heard before. I've used a lot of stereo equipment over the years and never found something as revealing as even the cheaper ER-6 model. They have a neutral frequency response and provide little bass. However, I always found this easy to fix with an equalizer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Shure products are a little more well balanced, delivering more powerful bass. They're also better to wear if you're going to ever use them for walking or running. If you're wearing even normal headphones, and you slide your fingers across the cable, notice how you can hear that sound? Well, it's about 100x worse with IEMs, and Shure's designs have this clever bit where you loop the cable around the top of your ear (see their pictures), which drastically cuts down on the amount of vibration that makes it to your ear.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastEditorUserId="1360" LastEditorDisplayName="" LastEditDate="2010-09-23T13:40:29.187" LastActivityDate="2010-09-23T13:40:29.187" />
  <row Id="6665" PostTypeId="1" AcceptedAnswerId="6721" CreationDate="2010-09-23T13:41:49.683" Score="4" ViewCount="177" Body="&lt;p&gt;Under the context that a class diagram is modeled on the System Requirements, and that it is important to create solutions based on those requirements. If I have said class diagram should I strictly adhere to it? What about refactoring? What if the diagram did not provide some design principle that I feel were left out?&lt;/p&gt;&#xA;" OwnerUserId="1668" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T15:12:59.550" LastActivityDate="2011-02-17T16:24:02.007" Title="Should You Strictly Follow Class Diagrams?" Tags="&lt;uml&gt;&lt;software-engineering&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="1" />
  <row Id="6666" PostTypeId="2" ParentId="6662" CreationDate="2010-09-23T13:46:40.917" Score="8" ViewCount="" Body="&lt;p&gt;Welcome in the real world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I worked with hundred of different developers around the world, in startups and large enterprises. The vast majority of them doen't understand advanced concepts, and won't in the future. It's just too complicated to master something unless you spend over a decade in that particular field. Very few are able to do that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's why I'm really upset when one of my developers is too &quot;CV driven&quot; and try to implement design patterns that do nothing better but allow him to put something new in his resume (or the title &quot;Architect&quot;), while the rest of the team is strugling to understand and maintain HIS code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's why I think that a good developer is not the technically supperior, but the most pragmatic of the pack:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;An excellent developer try to convert&#xA;  a functionnality the business ask by&#xA;  maximizing the ROI.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;IMHO, keeping things simple, is the way to go. If you want to do the &quot;right&quot; stuff, do it at home. Your boss is especting something else from you.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-23T13:46:40.917" CommentCount="4" />
  <row Id="6667" PostTypeId="2" ParentId="6625" CreationDate="2010-09-23T13:47:07.147" Score="0" ViewCount="" Body="&lt;p&gt;Who do you know personally that might be interested?  Who have you encountered on-line and thought might be interested?  You're going into the team-building phase with very little, so the only real credibility you've got is going to be you.  I doubt many people will be interested in a project that's nothing but a neat idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alternately, you could write a very basic implementation in Python as a proof of concept.  (I'm suggesting Python as being generally readable, fast to work in, and often not the final language.  There are other languages that may be suitable.)  Put enough work in to make it clear what the idea is, and enough work to make a solid implementation, but no more than that.  You don't want to discourage a potential collaborator from saying &quot;Hey, this is great, but we should re-implement it in LOLCODE!&quot; (well, maybe you do want to discourage some of that).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You've got two forms of credibility:  yourself, and working code.  Use your own credibility as much as possible, and go minimal on the code.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-23T13:47:07.147" />
  <row Id="6668" PostTypeId="2" ParentId="6543" CreationDate="2010-09-23T13:47:52.490" Score="1" ViewCount="" Body="&lt;p&gt;You can use SQL mapper frameworks like myBatis if you want to utilize sql features.&lt;/p&gt;&#xA;" OwnerUserId="3416" LastActivityDate="2010-09-23T13:47:52.490" CommentCount="1" />
  <row Id="6669" PostTypeId="2" ParentId="6662" CreationDate="2010-09-23T13:49:32.293" Score="3" ViewCount="" Body="&lt;p&gt;I think there's a difference between what you're referring to and &lt;strong&gt;technical debt&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Technical debt is when you deliberately do a hacky and quick implementation with the full knowledge that you will have to change the design at a later stage.  Similar to financial debt this can be beneficial to a project but you need to be aware of it and eliminate it at a later stage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of deliberately not using certain language features - I have been in that situation as well.  I remember I once implemented &lt;strong&gt;anonymous delegates&lt;/strong&gt; just after &lt;strong&gt;C# 2.0&lt;/strong&gt; came out, and a few months later I saw someone had simply deleted my delegate and replaced it with a normal method.  They simply didn't understand the code :-(&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, it's not always a bad thing.  &lt;strong&gt;Let's keep it simple&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-23T13:49:32.293" CommentCount="4" />
  <row Id="6670" PostTypeId="2" ParentId="6625" CreationDate="2010-09-23T13:51:44.180" Score="10" ViewCount="" Body="&lt;p&gt;I tried starting several projects over the number of years. They ALL failed. The main thing i got out of it was&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Do all of the work yourself. Everything. Just keep programming and doing it. It sucks no one is helping you but thats how it goes&lt;/p&gt;&#xA;&#xA;&lt;p&gt;but also&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Get involve with the community and make occasional post. Like progress every month or so. Tell people about it so people know about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea is your doing the whole thing yourself and people see that it is making progress. If they think you can do it all yourself and finish it they'll consider joining to make contributions so they can get (some) credit at the end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tried emailing and PMing specific guys (and girls) on art forums. I tried contacting a dozen programmers. I posted on many forums about the project and i even wrote out a huge doc and email people who did the project before and ask to assist with the one or two parts they know. That all failed. What i didn't do was continuously work on the project without having anyone to help and i think that was the major difference.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-23T13:51:44.180" />
  <row Id="6671" PostTypeId="2" ParentId="6532" CreationDate="2010-09-23T13:52:00.067" Score="0" ViewCount="" Body="&lt;p&gt;I think Windows Phone 7 might still be a good bet. I have seen a number of enterprises making a move to SharePoint and office based computing in recent times. Windows Phone 7 will be one of other Enterprise components as it comes online (believe it or not, not many enterprises want to deploy iPhones, and are still into Windows Mobile based solutions).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thing I feel is that its not that hard to learn Azure since it is not ALL that different from what you do on the regular server. So, it can be picked up fairly quickly as well. While with Windows Phone 7, it is a brand new learning curve, so if you have time now, better to invest it there. If you need Windows Azure down the line, you can get up to speed on it much faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, its not that cheap to learn btw (I already had a bad experience paying for it while using their personal/development account).&lt;/p&gt;&#xA;" OwnerUserId="3231" LastActivityDate="2010-09-23T13:52:00.067" CommentCount="1" />
  <row Id="6672" PostTypeId="2" ParentId="1338" CreationDate="2010-09-23T13:53:22.617" Score="2" ViewCount="" Body="&lt;p&gt;At a previous job, the C# standard was to have at least two spaces between type name and variable name in declarations, the method name must begin on the next line from the access modifiers and return type, a space must occur before any open-punctuation (parenthesis or bracket), all variable declarations at the beginning of the method, declarations separate from assignment and the indentation was 3 spaces.  Example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private static int&#xA;ThisIsTheMethod (int  code, string  message)&#xA;{&#xA;   int  i;&#xA;   int  j;&#xA;   int  k;&#xA;&#xA;   for (i = 0; i &amp;lt; message.Length; i++)&#xA;   {&#xA;      if (message [i] == '!') return -1;&#xA;   }&#xA;&#xA;   j = SomeMethod (code);&#xA;   k = OtherMethod (j);&#xA;&#xA;   return k;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;While ugly, it was workable with the exception that Visual Studio really didn't want things that way and it was more an extra step after coding &quot;normally&quot; to reformat it as this.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-09-23T13:53:22.617" CommunityOwnedDate="2010-09-23T13:53:22.617" CommentCount="4" />
  <row Id="6673" PostTypeId="2" ParentId="6543" CreationDate="2010-09-23T13:57:24.893" Score="1" ViewCount="" Body="&lt;p&gt;I wrote my own which helps me do selects and inserts easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Evey db specific thing is available. I just need to write the query myself which the library  assist me with (i can use '?' and params instead of manually name a parameter and use .Add)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess mine half sucks half useful. I get some help in the ORM world and do significant parts in the query world.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-23T13:57:24.893" />
  <row Id="6674" PostTypeId="2" ParentId="6660" CreationDate="2010-09-23T13:58:04.067" Score="2" ViewCount="" Body="&lt;p&gt;I currently work as a sort of SET (although my job designation is still SE). What I do mainly is to create unit tests and load tests for the finished application (or almost finished) in addition to those made by the people actually coding on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on the app I am testing, it involves the creation of unit tests, automated UI tests, and writing various test scripts to interact with and test the application. Often this involves the use of one or more test tools/frameworks and a small amount of coding.&lt;/p&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-09-23T13:58:04.067" />
  <row Id="6675" PostTypeId="2" ParentId="6639" CreationDate="2010-09-23T13:58:57.063" Score="0" ViewCount="" Body="&lt;p&gt;I have at least 10 different sets of headphones of all types.  I actually don't like the noise-cancelling variety.  It just sounds like extra static to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My newest set is the Dr. Dre Beats Solo HD's.  They are &quot;On-Ear,&quot; and as long as you turn them up you won't be hearing any outside noise.  I am using them at work and they definitely help me concentrate.  Pricey at $199 though.&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-09-23T13:58:57.063" />
  <row Id="6676" PostTypeId="2" ParentId="6656" CreationDate="2010-09-23T14:06:41.160" Score="5" ViewCount="" Body="&lt;p&gt;Talk with him about how you feel after class and see if you can find out why he's giving such homework assignments. It could be that he thinks some concepts are too advanced for his students, or that he has to stick with some school-mandated program. Try to use terms such as &quot;I feel...&quot; or &quot;I think ...&quot; rather then &quot;You are...&quot; or &quot;This is...&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had both cases in the past... some assignments were because the teacher was just trying to get his entire class to pass and some where just following the program guide they were given. By talking to him you can let him know that some of his students are intelligent enough to grasp more advanced concepts, and that they want to learn them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure if you're attending a for-profit or non-profit school but that also matters. From my experience, for-profit schools will generally do more to make sure their students are happy and if the majority of the class feels he is a bad teacher and not listening to what you're saying, you can file a complaint with the school about it.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-09-23T14:06:41.160" />
  <row Id="6677" PostTypeId="1" AcceptedAnswerId="6682" CreationDate="2010-09-23T14:06:55.763" Score="8" ViewCount="393" Body="&lt;p&gt;The way I see it if you create one before you get the advantage of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Planning ahead&lt;/li&gt;&#xA;&lt;li&gt;Overview of the project&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;but you lose:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Time (doing work you'll probably end up repeating when writing code)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I could just create them all after writing my code just to keep it as a reference for future developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which one serves the purpose of class diagrams and which is more advantageous?&lt;/p&gt;&#xA;" OwnerUserId="1668" LastActivityDate="2011-05-23T18:21:43.967" Title="Should you Create Class Diagrams before or after implementation?" Tags="&lt;best-practices&gt;&lt;uml&gt;" AnswerCount="12" CommentCount="1" FavoriteCount="1" />
  <row Id="6678" PostTypeId="2" ParentId="6677" CreationDate="2010-09-23T14:08:56.337" Score="3" ViewCount="" Body="&lt;p&gt;This is part of design and therefore should be created prior to implementation.  This is not to say they cannot be refined during/after implementation to reflect the current implementations state.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Providing a design after implementation is what I would call &quot;cowboy coding,&quot; and sure you can thrive in the wild wild west but remember cowboys usually end up dead at some point or another.  &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-23T14:08:56.337" />
  <row Id="6679" PostTypeId="2" ParentId="6656" CreationDate="2010-09-23T14:08:57.290" Score="-1" ViewCount="" Body="&lt;p&gt;send him a link to this question ? &lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-23T14:08:57.290" CommentCount="2" />
  <row Id="6680" PostTypeId="2" ParentId="6591" CreationDate="2010-09-23T14:12:29.823" Score="2" ViewCount="" Body="&lt;p&gt;yes it's definitely worth it ... specifically for 2 reasons:&#xA;1) mastery of a subject (or part of a subject) - if you are able to present at a conference most likely means that you understand the subject or have something new to present regarding a subject ... either way it's a good thing&#xA;2) learning through teaching ... if you're able to publish an article (not just research article) - i am thinking along the lines of maybe an article on CodeProject, or your blog or a computer magazine ... shows that you know how to accomplish something and is able to explain to your audience ... which is also a good skill to have.&lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-09-23T14:12:29.823" />
  <row Id="6681" PostTypeId="2" ParentId="3363" CreationDate="2010-09-23T14:14:50.140" Score="2" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;die('BITCH!');    // DUKE NUKEM WAS HERE!&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2580" LastActivityDate="2010-09-23T14:14:50.140" CommunityOwnedDate="2010-09-23T14:14:50.140" />
  <row Id="6682" PostTypeId="2" ParentId="6677" CreationDate="2010-09-23T14:21:39.383" Score="7" ViewCount="" Body="&lt;p&gt;If you create them before, they will be part of the design phase.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you create them after, you can just use them for documentation. But documenting is better and faster if you do that during design and coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, you don't lose time in doing design! The coding part will be faster. And better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After all, you think that doing design of a skyscraper or of a bridge is a loss of time instead of just starting building it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A compromise is to starting creating some dummy code during the design phase (just prototypes of classes/functions) and use this code skeleton to build the class diagrams.&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-23T14:34:43.803" LastActivityDate="2010-09-23T14:34:43.803" CommentCount="1" />
  <row Id="6683" PostTypeId="2" ParentId="6591" CreationDate="2010-09-23T14:26:03.233" Score="2" ViewCount="" Body="&lt;p&gt;As has been said in other responses, the answer depends largely on your definition of &quot;worth it&quot;. I've written a book, contributed to a few others, wrote a handful of magazine articles, and speak at conferences four or five times a year, and to me, it's &quot;worth it&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But &lt;em&gt;to me&lt;/em&gt;, it's worth it because I want to help others in my profession (software testing) understand the true challenges of their job, get better or think about something differently. So far, I've had some success, so I keep going - and along the way, I learn a lot of new things too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OTOH, if you're writing or speaking for fame and fortune it may not be as satisfying to you.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-09-23T14:26:03.233" />
  <row Id="6684" PostTypeId="2" ParentId="6633" CreationDate="2010-09-23T14:28:06.223" Score="2" ViewCount="" Body="&lt;p&gt;If a project is popular then donations can help offset some of the costs or even make money. Its most likely not going to be much unless the audience is huge, but its enough to pay for webhosting or a few bills. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the long run its for pay support or consultancy. Ubuntu is completely open source, but Canonical provides enterprise level support and consultancy for it and makes decent money from it. The issue with this though is that your project has to be large enough for enough people to want to migrate or setup software to yours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Getting to the point of making money can take years of building a consumer base and lots of hard work. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-23T14:28:06.223" CommentCount="1" />
  <row Id="6686" PostTypeId="2" ParentId="6660" CreationDate="2010-09-23T14:36:12.773" Score="4" ViewCount="" Body="&lt;p&gt;Short answer: SETs (or SDETs as we call them at MS) test well beyond what can be done by unit testing (integration, performance, scale, reliability, etc.), and write programs, tools, and automated tests to aid in the effort. The role is quite similar at Google.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Longer answer: I've written about the role (both directly and indirectly) on my blog. Start with &lt;a href=&quot;http://angryweasel.com/blog/?p=153&quot; rel=&quot;nofollow&quot;&gt;this post&lt;/a&gt; on careers, or search the site for SDET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Longest answer: Read &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735624259&quot; rel=&quot;nofollow&quot;&gt;my book&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-09-23T14:36:12.773" />
  <row Id="6687" PostTypeId="2" ParentId="6530" CreationDate="2010-09-23T14:36:43.593" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Experiment&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something that wasn't mentioned in other answers is this. If you push the limits of what you know, you will inevitably find a new way to do things. You probably know how to do this already, but for me I just simply looked at the articles under the heading &quot;AJAX&quot; in a tutorial I was using and experimented with it. I then realized how extreamly helpful such things are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some things to try out&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;HTML5&lt;/li&gt;&#xA;&lt;li&gt;Javascript specifically in browsers with custom JS implmentations like Firefox and/or Internet Explorer&lt;/li&gt;&#xA;&lt;li&gt;New CSS rules available in Firefox&lt;/li&gt;&#xA;&lt;li&gt;Flash and its usefulness to you&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-23T14:36:43.593" CommentCount="2" />
  <row Id="6688" PostTypeId="2" ParentId="6530" CreationDate="2010-09-23T14:38:50.383" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://jquery.com/&quot; rel=&quot;nofollow&quot;&gt;jquery&lt;/a&gt; such a big timesaver&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-23T14:38:50.383" CommentCount="1" />
  <row Id="6690" PostTypeId="2" ParentId="6677" CreationDate="2010-09-23T14:39:20.990" Score="1" ViewCount="" Body="&lt;p&gt;Before Implementation. As one of my former co-workers once said 'I like to do as much programming as possible before I start coding', and I think that's a good approach to it.&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-09-23T14:39:20.990" />
  <row Id="6692" PostTypeId="2" ParentId="6677" CreationDate="2010-09-23T14:48:04.160" Score="3" ViewCount="" Body="&lt;p&gt;It depends on the depth of the design. Some people insist on writing class diagrams for even the most trivial classes, because &quot;it's good practice.&quot; I think it's a waste of time to draw something when you already know exactly how it's going to be implemented. When &lt;em&gt;creating&lt;/em&gt; a new design, something that's unfamiliar, it's definitely useful to draw some diagrams first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I never use UML tools though, because the design usually changes so much during implementation that I have to redraw the diagram. I suppose a good two-way tool would handle these changes, but I've never used a good one (I've only used free ones, though). Instead, I draw on paper or on a whiteboard to help me sort through the design. After I've implemented it and am reasonably sure that it's sound, I'll do a more formal diagram.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, let's not forget the other types of diagrams. I've always found sequence diagrams to be among the most useful, and I use them often when there's a lot of communication between components.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastActivityDate="2010-09-23T14:48:04.160" />
  <row Id="6694" PostTypeId="2" ParentId="6591" CreationDate="2010-09-23T14:50:34.597" Score="5" ViewCount="" Body="&lt;p&gt;&quot;Teaching&quot; via writing books and preparing presentations is one of the best ways to learn, so in that respect it is very worth it. I studied for my calculus exams by writing a &quot;book&quot; covering all the material (there was a teachers strike so I had plenty of time for that), and it helped me immensly. That is also why I write blogs. You don't have to actually release anything you write. Write for your own satisfaction, but write it as if you plan to release it. Otherwise it may not be very good. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-23T14:50:34.597" />
  <row Id="6695" PostTypeId="2" ParentId="3363" CreationDate="2010-09-23T14:54:44.683" Score="0" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;const float accelerationDueToGravity = 9.8; //g&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Thanks for the clarification. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-23T14:54:44.683" CommunityOwnedDate="2010-09-23T14:54:44.683" CommentCount="1" />
  <row Id="6696" PostTypeId="2" ParentId="6677" CreationDate="2010-09-23T14:56:28.350" Score="0" ViewCount="" Body="&lt;p&gt;With &lt;a href=&quot;http://www.topcased.org/&quot; rel=&quot;nofollow&quot;&gt;Topcased&lt;/a&gt;, I create my class diagrams during design phase. Then I click on &quot;Generate code&quot; button for producing a canvas of my implementation. Then I fill in the placeholders with code.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-09-23T14:56:28.350" />
  <row Id="6698" PostTypeId="2" ParentId="6656" CreationDate="2010-09-23T14:58:47.983" Score="1" ViewCount="" Body="&lt;p&gt;It may be that he is teaching you through a progression and starting with something he thinks is understandable to the majority of the students and working up to the more advanced concepts where he can show you how much better they work. You can't evaluate after only one assignment. Sometimes the ones you dislike the most at first end up being the ones who push you the hardest to learn. Sometimes it is because of how bad they are, that you take the initiative and learn on your own (it is your future career after all) and sometimes they really are not as bad as it appears once you learn more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still if you feel the need to discuss his approach, by all means do so - just don't expect to be successful in getting him to change. And whatever you do, do not approach him in a public place. People don't care for being ambushed publicly. And he does still control your grade.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep the discussion professional not personal. Ask why he is approaching it this way rather than starting by immediately attacking his method. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And the truth is, you will have to put up with bad professors just as you will have to put up with bad co-workers, bad bosses and bad clients. Consider learning to cope with it as part of your education in how to get along in the workplace. There are no perfect workplaces either. Note I am not saying you shouldn't try to improve your workplace, but that there will always be colleagues whose approach you don't like or whose personality grates on your nerves. There will always be tasks that you would prefer to do differntly but sometimes what you want isn't what the organization wants no matter how good an organization is. And sometimes it is you that is the one in the wrong no matter how good you are. Everyone is wrong sometimes. Plus, studies have shown that most people overestimate how good they are. My personal experience backs this up as well. I've seen the worst employees I work with be furious when they don't get an outstanding appraisal even though everyone else is wondering why they didn't get fired.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-23T14:58:47.983" />
  <row Id="6700" PostTypeId="2" ParentId="6656" CreationDate="2010-09-23T15:01:33.117" Score="2" ViewCount="" Body="&lt;p&gt;Write a well worded email. The email aspect will keep you from having to confront him in person, and will also allow him more time to think about it. Keep the tone honest and present it as &quot;I'm concerned about it because...&quot; and &quot;this is what I think it should be like&quot;. Your professor should be open for a debate and be academically honest with himself. If he's not, then there isn't much you can do, except maybe contact the other faculty members, maybe even the person in charge of it. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-23T15:01:33.117" />
  <row Id="6702" PostTypeId="2" ParentId="6633" CreationDate="2010-09-23T15:04:05.483" Score="0" ViewCount="" Body="&lt;p&gt;Apple pays for maintaining &lt;a href=&quot;http://www.cups.org/&quot; rel=&quot;nofollow&quot;&gt;CUPS&lt;/a&gt;, &lt;a href=&quot;http://webkit.org/&quot; rel=&quot;nofollow&quot;&gt;WebKit&lt;/a&gt; and many other open source projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They use these technologies in products and services they sell.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-09-23T15:04:05.483" />
  <row Id="6705" PostTypeId="2" ParentId="35" CreationDate="2010-09-23T15:12:42.187" Score="2" ViewCount="" Body="&lt;p&gt;Anything on &lt;a href=&quot;http://xkcd.com&quot; rel=&quot;nofollow&quot;&gt;XKCD&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://xkcd.com/742/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://imgs.xkcd.com/comics/campfire.png&quot; alt=&quot;campfire&quot; title=&quot;100 years later, this story remains terrifying--not because it&amp;#39;s the local network block, but because the killer is still on IPv4.&quot;&gt;&lt;/a&gt;&#xA;&lt;a href=&quot;http://xkcd.com/138/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://imgs.xkcd.com/comics/pointers.png&quot; alt=&quot;pointers&quot; title=&quot;Every computer, at the unreachable memory address 0x-1, stores a secret.  I found it, and it is that all humans ar-- SEGMENTATION FAULT.&quot;&gt;&lt;/a&gt;&#xA;&lt;a href=&quot;http://xkcd.com/607/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://imgs.xkcd.com/comics/2038.png&quot; alt=&quot;y2k unix style&quot; title=&quot;If only we&amp;#39;d chosen 1944-12-02 08:45:52 as the Unix epoch, we could&amp;#39;ve combined two doomsday scenarios into one and added a really boring scene to that Roland Emmerich movie.&quot;&gt;&lt;/a&gt;&#xA;&lt;a href=&quot;http://xkcd.com/272/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://imgs.xkcd.com/comics/linux_user_at_best_buy.png&quot; alt=&quot;linux rocks&quot; title=&quot;We actually stand around the antivirus displays with the Mac users just waiting for someone to ask.&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="317" LastEditorDisplayName="" LastEditDate="2010-09-23T21:25:37.700" LastActivityDate="2010-09-23T21:25:37.700" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="3" />
  <row Id="6706" PostTypeId="1" AcceptedAnswerId="6733" CreationDate="2010-09-23T15:15:41.713" Score="2" ViewCount="275" Body="&lt;p&gt;I'd forgotten about the Blub language, until reminded by this blog post: &lt;a href=&quot;http://www.lessonsoffailure.com/developers/language-flamewars-blub-paradox/&quot; rel=&quot;nofollow&quot;&gt;http://www.lessonsoffailure.com/developers/language-flamewars-blub-paradox/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My current Blub language is C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is the latest in a series going back through Visual Basic, Visual C++, various scripting languages and C. Oddly, one that's stayed constant (for me at least) has been SQL, mostly the T-SQL dialect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think being conscious of your bias is important so that it does not stop you from learning new things. That said, nothing Paul Graham has ever written has convinced me to try Lisp.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-09-23T20:38:04.420" ClosedDate="2010-12-28T15:15:28.960" Title="What's your Blub language?" Tags="&lt;programming-languages&gt;&lt;experience&gt;&lt;philosophy&gt;" AnswerCount="3" CommentCount="3" />
  <row Id="6707" PostTypeId="2" ParentId="6656" CreationDate="2010-09-23T15:16:48.937" Score="1" ViewCount="" Body="&lt;p&gt;Talk to him/her as if you discussed about the course and assignments with a buddy of yours in a different school and say your opinion as if it was from that imaginary buddy of yours ;)&lt;/p&gt;&#xA;" OwnerUserId="3432" LastActivityDate="2010-09-23T15:16:48.937" />
  <row Id="6709" PostTypeId="2" ParentId="6542" CreationDate="2010-09-23T15:17:55.270" Score="4" ViewCount="" Body="&lt;p&gt;LaTeX is still the lingua franca in mathematics and I doubt that will change as a result of developments from Microsoft.  It's entrenched.   In other words, in the math community it has the advantage that Microsoft has everywhere else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there's more to it than that.  LaTeX (and markup in general) is just in my opinion a much better way to work.  It's the right tool for the job.  Sometimes hypertext is the right tool for the job and I use that.  Word, in my case, is never the right tool.  Someone recently asked me &quot;What if someone payed you to use Word?&quot;  My response: &quot;I have been payed to use it.  It's not a professional tool, it's a tricycle.  LaTeX is a Ferrari.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had people say to me &quot;Well, Word now understands LaTeX formulae, so you can just use those in Word.&quot;  They still don't get it.  The reasons I use LaTeX are for its structured markup, its &lt;em&gt;ease of use&lt;/em&gt;, the quality of the output (which is still lightyears better than anything Word can produce), and because it's free software.  I write plenty of documents that have absolutely no math in them, and if I plan on printing them out, they are always better in LaTeX.&lt;/p&gt;&#xA;" OwnerUserId="1935" LastActivityDate="2010-09-23T15:17:55.270" CommentCount="5" />
  <row Id="6710" PostTypeId="2" ParentId="6677" CreationDate="2010-09-23T15:19:15.870" Score="3" ViewCount="" Body="&lt;p&gt;In either case they will stick around as part of the documentation.  Nobody will update them when changes are made to the implementation.  The diagrams won't have dates on them so you won't even know what version of the code they refer to.  When a new person is added to the project you will give him or her the diagrams saying &quot;Here are some diagrams that were created at some point during the design or implementation.  We don't know how up-to-date they are.&quot;&lt;/p&gt;&#xA;" OwnerUserId="984" LastActivityDate="2010-09-23T15:19:15.870" CommentCount="1" />
  <row Id="6713" PostTypeId="2" ParentId="6542" CreationDate="2010-09-23T15:30:30.397" Score="2" ViewCount="" Body="&lt;p&gt;In the academic world, LaTeX has two problems:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;It's very hard to write collaboratively with LaTeX, because of (a) no change tracking and (b) all collaborators have to know it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Several journals in many fields (biology is a prime example) don't accept LaTeX documents, and require the document to be sent in an editable form (so converting to PDF is out).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Until 1. is fixed and 2. changes, LaTeX is not going to be an option for the majority of people in fields that are traditionally non-mathematical.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-09-23T15:30:30.397" CommentCount="7" />
  <row Id="6715" PostTypeId="2" ParentId="6677" CreationDate="2010-09-23T15:42:17.477" Score="0" ViewCount="" Body="&lt;p&gt;I find that the act of drawing a diagram usually alerts me to missing information. This will also happen if I am just typing in a code editor without having drawn the diagram, but the instances will be spaced further apart (because I will spend time writing algorithms and calculations and tests and such) and so I might allow more time to go by before getting my missing information. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if the design you vaguely have in your head turns out to be crap, you will notice that more quickly if you diagram it first. Therefore I at least draw something quick and informal. Whether it turns into an electronic diagram others can use for reference will depend on the project.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-09-23T15:42:17.477" />
  <row Id="6716" PostTypeId="2" ParentId="6042" CreationDate="2010-09-23T15:43:01.760" Score="0" ViewCount="" Body="&lt;p&gt;I would recommend:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the presentation &lt;a href=&quot;http://www.infoq.com/presentations/Taming-Effect-Simon-Peyton-Jones&quot; rel=&quot;nofollow&quot;&gt;Taming Effects with Functional Programming&lt;/a&gt; by &lt;em&gt;Simon Peyton-Jones&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;the book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1933988924&quot; rel=&quot;nofollow&quot;&gt;Real World Functional Programming: With Examples in F# and C#&lt;/a&gt; by &lt;em&gt;Tomas Petricek&lt;/em&gt; and &lt;em&gt;Jon Skeet&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-23T15:43:01.760" />
  <row Id="6717" PostTypeId="2" ParentId="5490" CreationDate="2010-09-23T15:47:36.453" Score="2" ViewCount="" Body="&lt;p&gt;MUMPS is very much alive.  It has been one of the most trust-worthy systems going in the proper hands.  The programming staff is usually small and the up-time is impressive.  It may seem to the uninitiated that MUMPS is obtuse, but it is possible to write very lucid and highly functional code in very few key strokes and the data structures supported by MUMPS make it extremely powerful and very transportable across various different architectures.  All of the VA hospitals are using MUMPS and the mean-time-to-repair is very quick in most cases.  The VistA system written in MUMPS is easily downloaded from Source Forge and the poly-modal nature (the database can be accessed by many ways, roll and scroll, thin client, browser, or RPC, or other program interface) of VistA and MUMPS comes through for many who delve into it.  MUMPS is a simple language with very few commands and one data type.  It is easy to learn because it is an interpreted language and leaves the stack and the symbol table intact to see exactly what was going on when the application stopped for debug.  VistA has been used to run the Department of Defense hospitals (Composite Health Care System, CHCS) as well as the Indian Health Service (IHS RPMS), and the was once used by the US Public Health Service.  It saved the country many millions of dollars in operational costs.  MUMPS runs on nearly anything.  It models nearly any other database model easily and provides surprisingly fast access to the databases.  The MUMPS model can actually get faster performance with more users on the system (in some cases, due to the cacheing aspects of MUMPS where the pointer blocks needed to find a data block are already in memory and they don't need to be fetched again, BTW, the pointer overhead for MUMPS runs just about 2%, so most of your database is actual user data).  MUMPS was originally written to run on a 2K machine.  The onslaught of new technology has only expanded the full features of the MUMPS environment into a realm where whole hospitals are now being run on low-cost commodity servers.  Early on, MUMPS divorced itself from the hardware and has benefited very well from that decision.  We don't worry about the word size or the precision, or how many or how big.  The database is late binding and grows as the specific record needs.  No record in any database is any larger than it needs to be.  The database can be expanded or pruned as per part of a record or as a whole record.  Is MUMPS still around?, you betcha?  An instead of getting 8 users on a PDP-11/34, you can get a couple of hundred users on the desk-top PC under your desk.  It is being used in Banking, the European Stock Exchange, the travel industry (hotels and bookings agents), some auto parts houses, and most successful hospitals (commercial, private, or community) are running MUMPS in some form.  The VA currently has over 30 years of outcomes histories for their over 9 million patients.  That in itself is something that no other healthcare system has accomplished, except for Beth Israel/Deaconess Hospital in Boston that has over 35 years of outcome in their home built MUMPS system.&lt;/p&gt;&#xA;" OwnerUserId="3430" LastActivityDate="2010-09-23T15:47:36.453" CommunityOwnedDate="2010-09-23T15:47:36.453" />
  <row Id="6718" PostTypeId="2" ParentId="6542" CreationDate="2010-09-23T15:50:20.040" Score="2" ViewCount="" Body="&lt;p&gt;LaTeX is still the most popular tool for typesetting physics papers, as well as (as others have mentioned) mathematics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Rook wanted to know about the trend.  On the one hand Physical Review (a group of high-profile physics journals) apparently started accepting MS Word submissions in 2003 (see &lt;a href=&quot;http://www.rmp.aps.org/word03.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;), so the fact that there was a demand for this suggests an increasing use of MS Word in the last decade.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I finished a physics grad program less than two years ago, and &lt;em&gt;everyone&lt;/em&gt; I knew was using LaTeX for their papers and dissertations.  (The &lt;em&gt;real&lt;/em&gt; nerds even used LaTeX to typeset their homework papers.)  I suspect that's the case at most U.S. institutions anyway.  Perhaps things are different overseas.&lt;/p&gt;&#xA;" OwnerUserId="151" LastEditorUserId="151" LastEditorDisplayName="" LastEditDate="2010-09-23T18:39:56.640" LastActivityDate="2010-09-23T18:39:56.640" CommentCount="2" />
  <row Id="6719" PostTypeId="2" ParentId="6677" CreationDate="2010-09-23T15:54:00.560" Score="0" ViewCount="" Body="&lt;p&gt;I'm going to vote for answer (C) Don't bother. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're largely unnecessary. Personally, I never bother to look at them when they are provided. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're unnecessary before development, because the design will change anyway. And if you don't think the design of your classes will change, then you're already handcuffing yourself and preventing your future self from being able to properly solve the problem. If you think you have to stick to some pre-existing class diagrams, then you either work for NASA or you're shooting yourself in the foot. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Afterwards, they're unnecessary documentation. If you can't figure out what the classes are doing or how they're related to each other with a little code inspection, then you have a hole in your skill set as a software developer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, this answer sounds really arrogant and opinionated; oh well. &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-09-23T15:54:00.560" />
  <row Id="6721" PostTypeId="2" ParentId="6665" CreationDate="2010-09-23T15:56:42.350" Score="4" ViewCount="" Body="&lt;p&gt;Short Answer: No. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your output should be working (hopefully tested) code that performs the business function it's supposed to do. How you accomplish that task shouldn't be mandated (again, unless you work for NASA). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lame analogy: I get into a taxi and tell them where to go. I leave it up to them to drive me there. I trust them to get me there safely and in a timely manner. I am not going to sit there and micromanage the taxi driver and tell him when to turn on his turn signal, how much to press the accelerator, or when to get gas. That's his job. &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-09-23T15:56:42.350" CommentCount="4" />
  <row Id="6722" PostTypeId="2" ParentId="6595" CreationDate="2010-09-23T15:56:42.913" Score="2" ViewCount="" Body="&lt;p&gt;Use the meeting as an opportunity to practice your presentation skills.  Every time you explain the benefits of your project you get better at it.  In my experience, the customers least likely to adopt your solution are the ones who ask the toughest questions about it.  Pay attention to their concerns - some may be out in left field, but some will give you good ideas on what you need to do to provide a technical advantage over the competition or to add value to a new corner of the market. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This lets you become the guy who always has the right technical answers that help seal the sales that are winnable. Management &lt;em&gt;should&lt;/em&gt; notice this and give you a bigger role in shaping the future of the project - and that can be a really satisfying reward&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-23T15:56:42.913" />
  <row Id="6723" PostTypeId="1" AcceptedAnswerId="6737" CreationDate="2010-09-23T15:58:12.287" Score="3" ViewCount="50" Body="&lt;p&gt;Here is a theoretical problem.  It could apply to many systems.  Let's assume RESTful Web services for example.  You want to find out something but as it happens you can't get it in a single query.  You can make multiple queries.  For example, you have a joint bank account (or a company bank account) and you want to find out how much money is in there.  Meanwhile someone else transfers money from checking to savings.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Checking:  $5,000   Savings:  $3,000&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Me:  Query Checking.    Response: $5,000&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Joe:  Transfer $4,000 from Checking to Savings&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Checking: $1,000   Savings:  $7,000&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Me:  Query Savings.  Response:  $7,000&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Total $12,000.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you avoid anomalies like this?  The example shows two accounts at one bank, but it can also happen with two accounts at two different banks. &lt;/p&gt;&#xA;" OwnerUserId="984" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-23T21:21:48.447" LastActivityDate="2010-09-23T21:21:48.447" Title="Getting a coherent view of the state of the data" Tags="&lt;programming-practices&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="6724" PostTypeId="1" AcceptedAnswerId="6734" CreationDate="2010-09-23T16:00:32.203" Score="9" ViewCount="460" Body="&lt;p&gt;Suppose I get a little bored at my current job because too much of it has become maintenance and not much can be learned anymore. I am trying to talk to a potential employer who may offer a more interesting project for me to work on. I'm interested in designing and implementing new software. But if they asked, how would I respond? Is it a good idea to not sugarcoat reality? My concern is that at any job maintenance may become a big part of the developer's job at some point.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-24T06:50:17.940" Title="How would you respond to a question &quot;Why do you want to leave your current job?&quot;?" Tags="&lt;career-advice&gt;" AnswerCount="11" FavoriteCount="1" />
  <row Id="6725" PostTypeId="2" ParentId="264" CreationDate="2010-09-23T16:01:46.273" Score="6" ViewCount="" Body="&lt;p&gt;For real geekiness, how about Greenwich, the home of the Prime Meridian and H-1, the first regulator clock that kept good enough time to advance the science of Navigation.  There is also, NCAR, the National Center for Atmospheric Research in the foothills outside Boulder Colorado.  Or the Johnson Space Center in Houston Texas, with some of the largest lawn ornaments known to man, as well as the technology that got us to the moon and brought back souvenirs from the moon (sorry, no t-shirt, just rocks and dirt).  &lt;/p&gt;&#xA;" OwnerUserId="3430" LastActivityDate="2010-09-23T16:01:46.273" CommentCount="4" />
  <row Id="6726" PostTypeId="2" ParentId="6724" CreationDate="2010-09-23T16:03:21.107" Score="1" ViewCount="" Body="&lt;p&gt;I usually answer &quot;career development&quot; and go on to list the things I'm looking forward to in the new role.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-09-23T16:03:21.107" />
  <row Id="6727" PostTypeId="2" ParentId="6724" CreationDate="2010-09-23T16:03:55.910" Score="5" ViewCount="" Body="&lt;p&gt;The &quot;I needed a new challenge&quot; is neutral an most often true.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-23T16:03:55.910" CommentCount="1" />
  <row Id="6728" PostTypeId="2" ParentId="6724" CreationDate="2010-09-23T16:04:38.440" Score="7" ViewCount="" Body="&lt;p&gt;I wouldn't say anything negative (ie. being bored).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say that you're always looking to grow and learn - move forward and make every effort to not stagnate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This not only puts a good light on you, but puts the employer in a position where if they don't want you to leave, they need to make sure you have something to keep you interested - which is always a good thing.&lt;/p&gt;&#xA;" OwnerUserId="1732" LastActivityDate="2010-09-23T16:04:38.440" CommentCount="3" />
  <row Id="6730" PostTypeId="2" ParentId="6677" CreationDate="2010-09-23T16:05:09.530" Score="10" ViewCount="" Body="&lt;p&gt;When I've had them created before coding, we view them as &quot;temporary&quot; documents. That is, we create the diagrams and get our thoughts onto paper. We start coding from those class diagrams. We then throw them out. It's not worth spending the time to maintain them once coding has started. And if you want up-to-date class models, use a tool to create them from the code. &lt;/p&gt;&#xA;" OwnerUserId="1236" LastActivityDate="2010-09-23T16:05:09.530" />
  <row Id="6731" PostTypeId="2" ParentId="6724" CreationDate="2010-09-23T16:05:42.570" Score="3" ViewCount="" Body="&lt;p&gt;Say you are looking for more growth, take on more responsability etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But whatever you do don't speak poorly of your current employer.&lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-09-23T16:05:42.570" />
  <row Id="6732" PostTypeId="2" ParentId="6724" CreationDate="2010-09-23T16:08:56.943" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I have looked in the mirror every&#xA;  morning and asked myself: 'If today&#xA;  were the last day of my life, would I&#xA;  want to do what I am about to do&#xA;  today?' And whenever the answer has&#xA;  been 'No', for too many days in a row,&#xA;  I know I need to change something.&#xA;  Steve Jobs&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you are not happy in the morning when you drive to your office, change something.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-23T16:08:56.943" CommentCount="7" />
  <row Id="6733" PostTypeId="2" ParentId="6706" CreationDate="2010-09-23T16:15:14.680" Score="4" ViewCount="" Body="&lt;p&gt;Rather than having and worrying about a Blub language, I focus on being stuck in a Blub paradigm, and being ignorant of other perspectives which could eliminate incidental complexity (as opposed to required/unavoidable complexity) in tackling a problem.  I consider unwitting entrapment in Blub paradigms to be more fundamental a limitation, now that I know several languages (my Blub paradigm was object-oriented programming).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lisp, BTW, has readily adapted and supported all major paradigms, and still has tricks up its sleeve that most other languages can't match.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To get a sense of said paradigms, check out the &lt;a href=&quot;http://www.info.ucl.ac.be/~pvr/paradigms.html&quot; rel=&quot;nofollow&quot;&gt;map of programming paradigms&lt;/a&gt; from the well-regraded (new classic?) book, &lt;a href=&quot;http://www.info.ucl.ac.be/~pvr/book.html&quot; rel=&quot;nofollow&quot;&gt;Concepts, Techniques, and Models of Computer Programming&lt;/a&gt;,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/vDlJQ.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2026" LastEditorUserId="2026" LastEditorDisplayName="" LastEditDate="2010-09-23T16:23:15.493" LastActivityDate="2010-09-23T16:23:15.493" CommentCount="1" />
  <row Id="6734" PostTypeId="2" ParentId="6724" CreationDate="2010-09-23T16:19:11.907" Score="8" ViewCount="" Body="&lt;p&gt;Be sincere (but nice and polite)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the fact that you are making a lot of maintenance is an issue to you, you should say so on an interview. Or do you want to change your current job for a new one when you keep doing a lot of maintenance?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can say that you want to develop your own software, instead of maintaining other people software. I don't see that as a negative thing to say from your current job. You can say that you have learn a lot about maintenance and that you want to learn new things that your current position doesn't offer. Or that maybe a little maintenance is OK, but you are searching for new projects...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But try to aim to a company where the main point of searching a new one is not going to be your primary assignment!&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-09-23T16:19:11.907" />
  <row Id="6735" PostTypeId="2" ParentId="220" CreationDate="2010-09-23T16:19:58.333" Score="5" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Limit work in progress&lt;/strong&gt; (in addition to time-boxing).  Even if you use an iterative method (as opposed to Kanban), let's say your velocity is 8 points per iteration.  Don't start working on all 8 at once.  Limiting WIP by either the number of stories or story points is fine.&lt;/li&gt;&#xA;&lt;li&gt;Have automated acceptance tests for all of your user stories.  Automate as much as you can in general.&lt;/li&gt;&#xA;&lt;li&gt;Err on the side of making user stories too small.  As a rule of thumb, make the &lt;strong&gt;ratio of biggest to smallest story 3:1&lt;/strong&gt;.  If you underestimate a story in Scrum and it turns out too big, multiple developers can swarm it to get it back on track.  But you don't have enough people.&lt;/li&gt;&#xA;&lt;li&gt;If, in a regular-sized-team context, you would hesitate whether to split a spike off a user story - in the solo or small-team context, do the spike without hesitation.  This helps to keep stories smaller and more predictable.&lt;/li&gt;&#xA;&lt;li&gt;Retrospectives are important in agile in general, so Kanban (that would be Personal Kanban) scores extra points here, because its retrospective process is more data-driven.  It's hard to play Triple Nickels when you don't have enough people.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These things apply probably to both solo and small-team (2 or 3 developers) situations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ADDED: sometime after I wrote this answer, I found this conference talk and was very impressed: &lt;a href=&quot;http://oredev.org/2010/sessions/personal-kanban-optimizing-the-individual-coder&quot; rel=&quot;nofollow&quot;&gt;Personal Kanban: Optimizing the Individual Coder&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="464" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2011-03-05T16:36:17.787" LastActivityDate="2011-03-05T16:36:17.787" />
  <row Id="6737" PostTypeId="2" ParentId="6723" CreationDate="2010-09-23T16:23:38.250" Score="3" ViewCount="" Body="&lt;p&gt;You need some form of concurrency control to deal with problems like this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some possible solutions in your example:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Ensure that the service can return both Savings and Checking figures in a single query, perhaps as a Total.&lt;/li&gt;&#xA;&lt;li&gt;Implement some kind of session so that the user requesting values can lock the data until she has finished reading all the values in which she is interested. This approach is often called &quot;pessimistic concurrency control&quot;.&lt;/li&gt;&#xA;&lt;li&gt;Design the service so that you can pass your previous Checking figure back when you request a Savings figure. If the Checking figure no longer matches its previous value, the service should indicate an error rather than return a value for Savings. This approach is a variation of &quot;optomistic concurrency control&quot;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-09-23T16:23:38.250" CommentCount="6" />
  <row Id="6739" PostTypeId="2" ParentId="1338" CreationDate="2010-09-23T16:25:22.100" Score="2" ViewCount="" Body="&lt;p&gt;(C++)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All return values had to be HRESULTS  (the standard ones - not user defined hresults)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This was just a few years ago.  The senior people were still so infatuated with COM and they never read or learned of other best practices.  It was an amazingly closed environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same place also did not allow using STL.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I left shortly after I found out that tidbit.&lt;/p&gt;&#xA;" OwnerUserId="3439" LastActivityDate="2010-09-23T16:25:22.100" CommunityOwnedDate="2010-09-23T16:25:22.100" />
  <row Id="6740" PostTypeId="2" ParentId="6723" CreationDate="2010-09-23T16:26:08.340" Score="0" ViewCount="" Body="&lt;p&gt;Assuming this is a secure API you could only allow one user to view/edit an account at any given time. So the credentials might look like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;    User: Joe&#xA;    Password: dog&#xA;    Account: Z123456X&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Once the user logs in a timed lock is started that is reset with every query to the API. If they log out the lock is completely removed. If this is impossible then there really isn't much you can do. There is always going to be race conditions when dealing with data like this. The best you can do when someone queries the API is return the actual value as well as the pending value based of any pending transactions. This minimizes the chance of stale data.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;    Actual: $5,000 &#xA;    Pending: $1,000&#xA;&lt;/pre&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-23T16:26:08.340" />
  <row Id="6741" PostTypeId="2" ParentId="35" CreationDate="2010-09-23T16:43:19.823" Score="20" ViewCount="" Body="&lt;p&gt;Why do programmers get Halloween and Christmas confused?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because OCT 31 == DEC 25!&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-09-24T23:39:26.283" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="4" />
  <row Id="6742" PostTypeId="2" ParentId="6633" CreationDate="2010-09-23T16:55:48.477" Score="11" ViewCount="" Body="&lt;p&gt;There's lots of different answers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some projects are maintained by people who just want to do it for assorted reasons, including prestige or the knowledge that they're doing something good or because they thought somebody had to do it and nobody else was.  This section is almost certainly not as large as it was.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some projects are maintained by people who want to be paid for support and the like.  Most Open Source companies are like that:  they want to create a popular product for free so that they can charge for related things.  It's a form of advertising.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some projects are maintained by companies who aren't in that exact business.  Quite a few companies benefit from being able to use Linux, for example, or Apache, because they then have access to high-quality software that they don't have to write all themselves.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suppose your company wants to sell web servers.  You want to have as much of the customers' money going to you as possible.  If you sell them Windows-based servers with IIS, a chunk of that money is going to Microsoft.  If you sell them Linux-based servers with Apache, you get to keep that money, and you have a lot more control over what you sell.  That may well be worth donating resources to assorted projects.  (Obviously, Microsoft has the opposite opinion.  They'd like the server people to produce cheap hardware that runs Windows and IIS.  Microsoft is likely the company most inherently opposed to Open Source, but even they take advantage of it in some ways.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's look at Apple's use.  Apple makes their money selling hardware, but the main distinguishing feature is their ability to make user interfaces.  The iPhone does nothing previous smart phones didn't do, it's just a lot easier to use, and so it sold millions really fast and redefined the market.  They have a good idea as to what they're selling.  Nobody's going to buy Apple for operating internals, so by having the Darwin part of the OS as Open Source they can get some outside help on it.  They also started with Open Source after failing to produce a top-quality operating system themselves.  Nobody's going to buy Apple for the printer software, so it was easier and faster to use CUPS.  They will for the interface, so that's closed down tight.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-23T16:55:48.477" CommentCount="1" />
  <row Id="6743" PostTypeId="2" ParentId="6724" CreationDate="2010-09-23T16:57:14.933" Score="1" ViewCount="" Body="&lt;p&gt;Good advice on not saying negative things about your current job, but make it clear that you want to do more design work on new software. It's not that you don't like to do maintenance (OK, no one really does.), but you just want a larger part of your job to focus on design. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I've worked for many small companies and have had to do everything from design &amp;amp; developement to project management, maintenance, testing, training, technical support, documenation, billing and moving furniture. I wanted to focus more on programming and that's why I have reluctantly left good companies/jobs to be able to be more focused.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is going to limit potential jobs, but you don't want to find yourself in the same situation anyway.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-23T16:57:14.933" />
  <row Id="6745" PostTypeId="2" ParentId="6706" CreationDate="2010-09-23T17:02:07.530" Score="2" ViewCount="" Body="&lt;p&gt;I was pretty much stuck in C/C++ for several years.  Then I started using PHP for web development, plus some J2ME for mobile applications.  The next language I dabbled in was C#.  Same old, same old.  So I guess C/C++/PHP/Java/C# are my Blub language(s).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I felt like I needed to try something completely different.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had used Lisp a little in grad school, so I looked at Common Lisp and Scheme again.  Also checked out Python and Haskell.  (I had already used Perl for a couple of years before switching to PHP.)  None of these felt &quot;right&quot;.  Then I discovered Ruby.  It seemed to be able to do a lot of the things people using Lisp/Python/Haskell were talking about, but in a friendlier (at least to me) way.  So now I'm trying to learn Ruby 1.9.  It certainly has enough new concepts to keep me occupied for awhile.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-23T17:02:07.530" />
  <row Id="6746" PostTypeId="2" ParentId="6724" CreationDate="2010-09-23T17:06:22.777" Score="1" ViewCount="" Body="&lt;p&gt;Don't criticize but be honest. You can tell them you are bored of the monotus work or you want a life there is just too much work in the older place. It is important to be honest you don't want to go to a place which is the same as the older one. &#xA;'Growth and Development and Challenges' all sound good but what if they put you in a challenge which you would rather not take. &#xA;There is no shame in following your heart, you could want a challenge or might want to walk away from it,, either way is fine..&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-09-23T17:06:22.777" />
  <row Id="6747" PostTypeId="2" ParentId="6660" CreationDate="2010-09-23T17:06:42.927" Score="0" ViewCount="" Body="&lt;p&gt;That is what I currently do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I focus on being the Other Guy, the Adversary who stands in for the customer and tries to break the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I write piles of functional tests and supporting libraries.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-23T17:06:42.927" />
  <row Id="6749" PostTypeId="2" ParentId="6532" CreationDate="2010-09-23T17:14:49.797" Score="2" ViewCount="" Body="&lt;p&gt;Azure has the virtue of not being years late to a rapidly-changing party.  The smart phone market was revolutionalized by the iPhone a few years back, and Android's been filling up the spaces Apple hasn't.  Both are rapidly innovating.  The current fourth-generation iPhone is a lot better than the first generation in many ways.  In the meantime, the Blackberry is ensconced in many businesses, and RIM isn't standing still, either.  Given the historical reluctance I see in Microsoft to move too far away from Windows, I really don't think Windows Phone 7 is going to be all that popular or successful.  It will sell to some businesses, but I don't really see a lot of hope for making an App Store killing.  People won't spend much on apps for their company phone.  In the consumer space, well, some people do like their Zunes, but they're part of the also-ran pack.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are commercial cloud services now, but there's obviously large voids.  Nobody's come along and set a rapidly changing standard everybody's got to follow.  There's still a lot of concerns that can be addressed in different ways by different companies.  For that matter, &quot;cloud computing&quot; is a very vague concept, and can be implemented in different ways.  It will also depend heavily on enterprise needs, and that's an area Microsoft is very strong in.  I would give Azure a much greater chance to succeed than Windows Phone 7.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those reasons, I'd be reluctant to spend much time learning WP7 rather than iOS or Android, but I think Azure could go places and there could be opportunities for people who know Azure.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-23T17:14:49.797" />
  <row Id="6750" PostTypeId="2" ParentId="6660" CreationDate="2010-09-23T17:18:56.340" Score="0" ViewCount="" Body="&lt;p&gt;Yuksss,, there code doesn't get shipped :-(:-(&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-09-23T17:18:56.340" />
  <row Id="6751" PostTypeId="2" ParentId="6723" CreationDate="2010-09-23T17:49:22.160" Score="0" ViewCount="" Body="&lt;p&gt;This is why there are processes to indicated cleared and pending activity. Just like you would have both the withdrawal and the deposit in the same transaction, the balances have to be coorinated and indicate that there are pending transfers, so all balances may not be available. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-23T17:49:22.160" />
  <row Id="6752" PostTypeId="2" ParentId="5" CreationDate="2010-09-23T17:54:22.003" Score="0" ViewCount="" Body="&lt;p&gt;I like &lt;a href=&quot;http://www.jedit.org/&quot; rel=&quot;nofollow&quot;&gt;jEdit&lt;/a&gt;. It's free and very powerful, requires jre.&lt;/p&gt;&#xA;" OwnerUserId="3448" LastActivityDate="2010-09-23T17:54:22.003" CommunityOwnedDate="2011-03-08T02:44:19.193" />
  <row Id="6753" PostTypeId="2" ParentId="6656" CreationDate="2010-09-23T18:06:54.903" Score="7" ViewCount="" Body="&lt;p&gt;You can certainly ask him in class specific questions about your assignments like 'do you have to return a value there?  Can we instead pass by reference?', etc.  That might get him thinking about future assignments.  But I would never, ever tell him 'you're teaching things wrong'.  For two reasons.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One, he's the teacher, and he may actually know and understand a whole lot more about what he's teaching than you, the student, knows and understands.  As someone else pointed out, he may be teaching along a progression and have purposes beyond what the young padawan can see.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two, if you already 'know' whats 'correct' OOP, then what purpose does it serve to 'correct' the instructor other than to appear pedantic? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really think he's teaching wrong, then you're appearently a C++ expert already who doesnt need that class, so take the easy A and move on.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-23T18:06:54.903" CommentCount="2" />
  <row Id="6754" PostTypeId="1" CreationDate="2010-09-23T18:09:14.257" Score="24" ViewCount="1028" Body="&lt;p&gt;Programming is not the worst profession out there, but it has it's own disadvantages nonetheless. Do you want your (future) kids to follow your steps? I know it all would go down to what THEY want, but parents still have huge influence on such decisions. Would you be pushing rather towards programming or away from it?&lt;/p&gt;&#xA;" OwnerUserId="193" LastActivityDate="2011-02-12T10:47:37.113" CommunityOwnedDate="2011-01-02T21:42:15.923" Title="Do you want your kids to become programmers?" Tags="&lt;career&gt;" AnswerCount="29" CommentCount="3" FavoriteCount="6" />
  <row Id="6755" PostTypeId="1" CreationDate="2010-09-23T18:16:14.603" Score="14" ViewCount="552" Body="&lt;p&gt;We all know that &lt;code&gt;goto&lt;/code&gt; is evil, &lt;code&gt;goto&lt;/code&gt; is considered harmful, etc. But it's still around (presumably) because of the rare cases where it can be used as part of an awesome, elegant algorithm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's the best real-world example of excellent &lt;code&gt;goto&lt;/code&gt; use you've seen?&lt;/p&gt;&#xA;" OwnerUserId="2276" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-25T00:34:44.120" LastActivityDate="2010-12-22T17:44:36.703" Title="What's the most acceptable use of 'goto' you've ever seen?" Tags="&lt;best-practices&gt;&lt;code-quality&gt;&lt;goto&gt;" AnswerCount="14" CommentCount="3" />
  <row Id="6756" PostTypeId="2" ParentId="6656" CreationDate="2010-09-23T18:17:38.033" Score="8" ViewCount="" Body="&lt;p&gt;If its anything I learned in the world of academics, you really can't judge a professor until the class has ended.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Theres usually a reason he makes you work within confined rules whether it is to teach you something specific or it is to make grading easier, either way, no class is as straight forward as you think it should be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had a professor, by law they have to give you a grading scale and a syllabus. But this professor had no intension of sticking to it. He created his test as hard and as long as possible and let the chips fall where they may. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Averages were 30 on his exams out of 100. He adjusted the grading scales to fit those averages but I learned the most from this professor. It doesn't do much for your self esteem but I took two classes with him and he made me a much better programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the full working name of this class your taking and what degree does this fall under? &lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-09-23T18:17:38.033" CommentCount="3" />
  <row Id="6757" PostTypeId="2" ParentId="6724" CreationDate="2010-09-23T18:21:27.010" Score="4" ViewCount="" Body="&lt;p&gt;I'd be honest with them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can be honest without (a) sugar-coating anything and (b) talking bad about your current employer. I don't happen to think there is anything wrong with what you've written in the OP. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're bored. You're not challenged; you aren't learning anything new and there's no room for growth or improvement. You're in maintenance mode with no prospect of new projects on the horizon. And that's what I'd say. I'd say, &quot;Hey, I understand all projects eventually go into maintenance mode, but where I am at now, I have no chance for new projects at all. The challenge is gone and I'm not ready to spend my career doing 100% maintenance mode coding&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If prospective employers don't want to hear that, then they don't have a job that fits you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Being honest helps you and prospective employers find the right fit.&lt;/strong&gt; &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-09-23T18:21:27.010" />
  <row Id="6758" PostTypeId="1" CreationDate="2010-09-23T18:24:58.017" Score="3" ViewCount="186" Body="&lt;p&gt;So I initially asked this question on StackOverflow but it got closed because it was not technically programming-related. I was told to move it here. If you're interested in the original question it is here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/3765553/reputable-computer-engineering-colleges-in-california-closed&quot;&gt;http://stackoverflow.com/questions/3765553/reputable-computer-engineering-colleges-in-california-closed&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm currently a Junior in a competitive high school. I've loved programming all my life, but I barely have time for it with the demanding schedule of the last few years. It's time I start thinking about college, and for some reason I've had a burning desire to move out to California (specifically San Fran). I figured the transition to college would be a good time to do it. Of course, if I get accepted to a legendary school like MIT I'll certainly take the opportunity, but not everyone can go to MIT.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since many of the users here have been working and hiring for years, I figured this would be a good place to get an idea of the real-world reputation of some California schools. So my question is essentially this: Of the exceptional programmers you have worked with,&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Where in California did they get their education?&lt;/li&gt;&#xA;&lt;li&gt;Did they enjoy their experience?&lt;/li&gt;&#xA;&lt;li&gt;Did they think their university really contributed to their success?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I have found some other college-suggestion questions on SO, but they are not quite what I'm looking for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/109089/what-college-univ-has-the-best-computer-science-software-engineering-program&quot;&gt;http://stackoverflow.com/questions/109089/what-college-univ-has-the-best-computer-science-software-engineering-program&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/257476/your-college-cs-experience&quot;&gt;http://stackoverflow.com/questions/257476/your-college-cs-experience&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/2663326/education-after-high-school-closed&quot;&gt;http://stackoverflow.com/questions/2663326/education-after-high-school-closed&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3449" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-23T21:07:17.937" LastActivityDate="2010-09-24T01:25:23.573" Title="Reputable computer engineering colleges in California?" Tags="&lt;programming-languages&gt;&lt;programming-practices&gt;&lt;software-engineering&gt;" AnswerCount="2" CommentCount="3" />
  <row Id="6759" PostTypeId="2" ParentId="6591" CreationDate="2010-09-23T18:25:56.963" Score="2" ViewCount="" Body="&lt;p&gt;I don't have much to say that others haven't said already, but here goes...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've done all those things, and fame and fortune decidedly did &lt;em&gt;not&lt;/em&gt; follow.&#xA;Nevertheless, I got it &quot;off my chest&quot;.&#xA;And, there is a certain microscopic amount of respect that it earns in some quarters (and disrespect in others :).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Frankly, for discussing issues and viewpoints, these stack* forums are pretty good.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-09-23T18:25:56.963" CommentCount="2" />
  <row Id="6760" PostTypeId="1" CreationDate="2010-09-23T18:35:35.220" Score="26" ViewCount="928" Body="&lt;p&gt;What is the most strange or counter-productive data type you've ever encountered? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;These could be either in code, or in actual data.&lt;/p&gt;&#xA;" OwnerUserId="95" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-24T22:19:51.163" LastActivityDate="2010-09-30T05:27:27.347" Title="Data types that make you go WTF" Tags="&lt;data-types&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="3" />
  <row Id="6761" PostTypeId="2" ParentId="6755" CreationDate="2010-09-23T18:37:05.757" Score="6" ViewCount="" Body="&lt;p&gt;I haven't used &lt;code&gt;goto&lt;/code&gt; since the 80's... but sometimes my life in pseudo-code uses it:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;slackOffAtWork:&#xA;browse StackOverflow&#xA;browse Programmers&#xA;browse SuperUser&#xA;check ChatMetaStackOverflow&#xA;if bossApproaching goto doSomeWork&#xA;goto slackOffAtWork&#xA;&#xA;dosomeWork:&#xA;browse currentProject&#xA;write nextLOC&#xA;if bossInVicinity goto dosomeWork&#xA;goto slackOffAtWork&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-09-23T18:37:05.757" />
  <row Id="6762" PostTypeId="2" ParentId="6760" CreationDate="2010-09-23T18:37:17.073" Score="10" ViewCount="" Body="&lt;p&gt;A client tasked me with converting a set of binary files from an &quot;old DOS&quot; based program to a newer format.  As I'm figuring out record lengths and beginning to hack together a conversion program, I determine that all the numeric fields were 4 bytes in length, but their format made no sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take the hex data &lt;code&gt;00 06 68 1F&lt;/code&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An int? 419871, nope doesn't match.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A 32-bit IEEE single? 5.883645875145253e-40... definitely not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After looking through the included paperwork again, it's meaning became clear:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;00 06 68 1F&lt;/code&gt; == 66.81&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every single number in every record in the fileset the client gave me was stored in this manner.  I dont' know if this is a product of the system they were working on (the details of which are murky), or the product of a programmer who so disliked looking at numeric values in hex that they invented their own numeric type.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: We'll, I've been schooled in the ways of binary coded decimals.  I didn't realize this was once pretty common, so I wouldn't call this a &quot;WTF&quot; data type, just unusual in this day and age.&lt;/p&gt;&#xA;" OwnerUserId="95" LastEditorUserId="95" LastEditorDisplayName="" LastEditDate="2010-09-27T15:32:03.537" LastActivityDate="2010-09-27T15:32:03.537" CommentCount="12" />
  <row Id="6763" PostTypeId="2" ParentId="6754" CreationDate="2010-09-23T18:38:54.510" Score="24" ViewCount="" Body="&lt;p&gt;Even though I am not parent I have thought about this. I believe that it is the duty of the parent to expose their child to a lot of things to help them develop. That being said I think it is appropriate to show your children examples of programming and give them the opportunities to program. That doesn't mean you should force it on them. The odds are that they will resent you for forcing it on them anyway. You should also expose them to things that you might plainly dislike &lt;em&gt;(Within reason as some hobbies are extremely expensive.)&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Drawing&lt;/li&gt;&#xA;&lt;li&gt;Hockey&lt;/li&gt;&#xA;&lt;li&gt;Hiking&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Its my opinion that the more you expose your child to the easier it will be for them to make informed decisions about what they will do with their life. Who knows eventually you might have a well rounded adult who actually came to programming of their own free will and you can start your own company.&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-23T18:38:54.510" CommunityOwnedDate="2011-01-02T21:42:15.923" CommentCount="2" />
  <row Id="6764" PostTypeId="2" ParentId="6656" CreationDate="2010-09-23T18:39:37.140" Score="1" ViewCount="" Body="&lt;p&gt;I was a professor, and I hated it when other professors would do things like that. The quality control in academia is pretty poor, and professors tend to assume they are &quot;right&quot; just because they are professors. There is precious little partnership with industry on how the graduates are doing as programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong. Many or most professors care very much about their students and about doing a quality job. That said, you don't have to look very far to find those with a &quot;sink or swim&quot; attitude, and nothing corrects them.&#xA;The concept that behind each student are parents who are &lt;em&gt;painfully&lt;/em&gt; paying for that student to be there is hardly ever considered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure what to recommend, but I wouldn't get into your position. Computer Science is one thing. Programming is another. The only programming course I ever took, I hated. I think it's better to &quot;come from&quot; another technical field. I was based in mechanical engineering, and then some electrical, before I got into CS.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-09-23T20:26:53.357" LastActivityDate="2010-09-23T20:26:53.357" />
  <row Id="6765" PostTypeId="2" ParentId="6754" CreationDate="2010-09-23T18:41:00.810" Score="2" ViewCount="" Body="&lt;p&gt;From my personal experience, although not programmers a lot of my family are engineers in some technical trade.  mechanical, electrical, etc.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe not a programmer, but I would love for my kids to engulf themselves in a technical profession that presents challenges on a daily basis and continually motivates them to improve upon their skillset.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it will be my children's own right to determine their own best path.  Whether this is armed forces, teaching, medicine or anything else but technical engineering type professions.  We all want our kids to be just like us and the best way is to lead by example.  Do not force your child to be anything, let them &quot;be&quot;.  &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-23T18:41:00.810" CommunityOwnedDate="2011-01-02T21:42:15.923" />
  <row Id="6766" PostTypeId="2" ParentId="6760" CreationDate="2010-09-23T18:45:38.303" Score="2" ViewCount="" Body="&lt;p&gt;From the Linux accept(2) man page:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;The socklen_t type&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The  third  argument of accept() was originally declared as an int * (and is that under libc4 and libc5 and on many other systems like 4.x BSD, SunOS 4, SGI); a POSIX.1g draft standard wanted to change it into a size_t *, and that is what it is for  SunOS  5.  Later POSIX drafts have socklen_t *, and so do the Single Unix Specification and glibc2.  Quoting Linus Torvalds:&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;&lt;em&gt;Any&lt;/em&gt;  sane  library  &lt;em&gt;must&lt;/em&gt;  have &quot;socklen_t&quot; be the same size as int.  Anything else breaks any BSD socket layer stuff.  POSIX initially did make it a size_t, and I (and hopefully others, but obviously not too many) complained to them very  loudly  indeed.  Making  it  a  size_t is completely broken, exactly because size_t very seldom is the same size as &quot;int&quot; on 64-bit architectures, for example.  And it has to be the same size as &quot;int&quot; because that's what the BSD socket interface is.  Anyway, the POSIX  people eventually  got  a clue, and created &quot;socklen_t&quot;.  They shouldn't have touched it in the first place, but once they did they felt it had to have a named type for some unfathomable reason (probably somebody didn't like losing face over having done the original stupid thing, so they silently just renamed their blunder).&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-09-23T18:45:38.303" CommentCount="1" />
  <row Id="6767" PostTypeId="2" ParentId="6754" CreationDate="2010-09-23T18:51:45.967" Score="0" ViewCount="" Body="&lt;p&gt;It would sure be nice to have a common interest.  Make it a lot easier to have something to talk with them about, especially during the teen years, no?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if they aren't into it, trying to force them to be a programmer really isn't any different from overbearing parents trying to force any other personal interest on their kids.  So sure, I'll expose my kids to what I do and try to stimulate an interest in it, but if that interest just isn't there, then so be it.  Let them follow their own paths.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-23T18:51:45.967" CommunityOwnedDate="2011-01-02T21:42:15.923" />
  <row Id="6768" PostTypeId="2" ParentId="6755" CreationDate="2010-09-23T18:54:54.510" Score="11" ViewCount="" Body="&lt;p&gt;The humble &lt;code&gt;GOTO&lt;/code&gt; isnt really evil, its just easy for inexperienced or undisciplined programmers to mis-use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I might use one if I'm, say, deep into maintaining a large function that someone else wrote, and typically nested far too deeply with loops and conditionals, and some behavior needed to change without a complete rejiggering of the function.  In that special case, I might use GOTO as a means to break out of multiple loops in one shot.  I think I did that a couple of years ago, for the purpose of making my changes as unobtrusive as possible. &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-23T18:54:54.510" CommentCount="1" />
  <row Id="6769" PostTypeId="2" ParentId="6754" CreationDate="2010-09-23T18:55:10.937" Score="15" ViewCount="" Body="&lt;p&gt;Yes I do but it doesn't matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My 10 year old son plays a lot of games (Nintendo DS and Wii). One day I asked him, &quot;do you want daddy to teach you how to program so you can write your own games?&quot;. &quot;Thanks, but no thanks, dad&quot;, he says.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-23T18:55:10.937" CommunityOwnedDate="2011-01-02T21:42:15.923" CommentCount="1" />
  <row Id="6770" PostTypeId="2" ParentId="6755" CreationDate="2010-09-23T18:55:35.417" Score="0" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;setup();&#xA;loop() {&#xA;   ... &#xA;   loop() {&#xA;      ...&#xA;      loop() {&#xA;         ...&#xA;         if(somecondition)&#xA;            goto cleanup;&#xA;      }&#xA;   }&#xA;}&#xA;&#xA;cleanup:&#xA;   cleanup();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;There are various other ways to do this to avoid the goto, try/throw/catch, flags in each loop condition.  But really, the goto is just as clean in this case, in my opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Goto isn't inherently evil, just easily abused.&lt;/p&gt;&#xA;" OwnerUserId="3073" LastActivityDate="2010-09-23T18:55:35.417" CommentCount="3" />
  <row Id="6771" PostTypeId="2" ParentId="6760" CreationDate="2010-09-23T18:55:52.760" Score="30" ViewCount="" Body="&lt;p&gt;I saw this once and immediately changed it.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public enum Bool&#xA;{&#xA;    No = 0,&#xA;    Yes = 1,&#xA;    Maybe = 2,&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5" LastActivityDate="2010-09-23T18:55:52.760" CommentCount="11" />
  <row Id="6772" PostTypeId="2" ParentId="6754" CreationDate="2010-09-23T18:55:59.030" Score="0" ViewCount="" Body="&lt;p&gt;I also don't have children, but considering that my fiance and I (of 5 or 6 years) are planning to, I have put a fair bit of thought into the matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally have an aptitude for the technical and the sciences, while my fiance has an aptitude for the arts so we both would do our part introducing the topics and helping them explore each of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's my view that the sciences, maybe moreso than the arts, are applicable in every aspect of life, so I would stress learning, experimenting and exploring them at all times but it would all come down to natural aptitude/inclination. As long as they are strong in the basics, then if they are wonderful at ballet, then they will be encouraged to become the best ballerina that they can be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said; if they have an aptitude and a like for programming, I'd certainly impart my my knowledge and love of it onto them. It's a fun and challenging career that I would welcome my children into.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-23T18:55:59.030" CommunityOwnedDate="2011-01-02T21:42:15.923" />
  <row Id="6773" PostTypeId="2" ParentId="6755" CreationDate="2010-09-23T18:56:01.357" Score="8" ViewCount="" Body="&lt;p&gt;Handling error cases in C is more elegant with goto when you want to return from a function without forgetting to free() locally malloc'ed resources.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-09-23T18:56:01.357" CommentCount="2" />
  <row Id="6774" PostTypeId="2" ParentId="6656" CreationDate="2010-09-23T18:56:05.963" Score="1" ViewCount="" Body="&lt;p&gt;I'll leave the &quot;How do I approach the teacher&quot; answers to the rest of the board. However I would like to say that if your discussions with your professor do fail, you should be able to have a discussion about the topic with the chair of the department. However, I would definitely wait on this as it is better to see if this assignment is a fluke or has some some sort of a means to an end that you may be missing.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-09-23T18:56:05.963" CommentCount="2" />
  <row Id="6775" PostTypeId="2" ParentId="6542" CreationDate="2010-09-23T18:58:05.313" Score="1" ViewCount="" Body="&lt;p&gt;I have a friend working as a Senators aide and he writes all his papers with LaTeX. He says that having all of his custom macros is invaluable.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-09-23T18:58:05.313" />
  <row Id="6776" PostTypeId="2" ParentId="6754" CreationDate="2010-09-23T18:58:34.097" Score="1" ViewCount="" Body="&lt;p&gt;Because both parents are developers, the kids have a high geek count. They are also extremely intelligent and autistic (diagnosed).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the only thing we wish, is that they are happy. And we don't push them in any direction.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-23T18:58:34.097" CommunityOwnedDate="2011-01-02T21:42:15.923" />
  <row Id="6777" PostTypeId="2" ParentId="6755" CreationDate="2010-09-23T18:59:00.647" Score="1" ViewCount="" Body="&lt;p&gt;In maintaining some old code, sometimes, goto can save you from the fear of having to restructure the existing code.&lt;/p&gt;&#xA;" OwnerUserId="844" LastActivityDate="2010-09-23T18:59:00.647" />
  <row Id="6778" PostTypeId="2" ParentId="6755" CreationDate="2010-09-23T19:01:07.400" Score="0" ViewCount="" Body="&lt;p&gt;I haven't use a real goto for a while. I use multiple exit points and sometimes methods to jump out of a loop.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-23T19:01:07.400" />
  <row Id="6779" PostTypeId="2" ParentId="6755" CreationDate="2010-09-23T19:01:29.130" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/3085277/do-perl-loop-labels-count-as-a-goto&quot;&gt;Perl loop labels&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-09-23T19:01:29.130" />
  <row Id="6780" PostTypeId="2" ParentId="6755" CreationDate="2010-09-23T19:04:45.847" Score="5" ViewCount="" Body="&lt;p&gt;In the 80's I used to sneak into WHSmiths and Boots, where they used to sell &lt;a href=&quot;http://en.wikipedia.org/wiki/ZX_Spectrum&quot; rel=&quot;nofollow&quot;&gt;Sinclair ZX Spectrums&lt;/a&gt;, and break into whatever demo or game they were running on the display model and then enter the following immortal lines of &lt;a href=&quot;http://en.wikipedia.org/wiki/Sinclair_BASIC&quot; rel=&quot;nofollow&quot;&gt;Sinclair BASIC&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;10 PRINT &quot;Dan is Ace!&quot;&#xA;20 GOTO 10&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;By far the best use of GOTO ever :D&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-23T19:04:45.847" CommentCount="1" />
  <row Id="6781" PostTypeId="2" ParentId="6526" CreationDate="2010-09-23T19:04:49.513" Score="6" ViewCount="" Body="&lt;p&gt;I think you first need to demonstrate that so many developers absolutely hate them. I don't think that's the case. Consider that fowler, a while back, formalized a pattern of sorts for this &lt;a href=&quot;http://martinfowler.com/ap2/snapshot.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-23T19:04:49.513" CommentCount="4" />
  <row Id="6782" PostTypeId="2" ParentId="6755" CreationDate="2010-09-23T19:06:28.963" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.vb6.us/tutorials/error-handling&quot; rel=&quot;nofollow&quot;&gt;Error handling in VB6&lt;/a&gt;, because there is no other way to handle errors in that lanugage.&lt;/p&gt;&#xA;" OwnerUserId="95" LastActivityDate="2010-09-23T19:06:28.963" CommentCount="2" />
  <row Id="6783" PostTypeId="2" ParentId="6542" CreationDate="2010-09-23T19:06:46.397" Score="1" ViewCount="" Body="&lt;p&gt;It is still very difficult to automatically generate Word for high-volume use.  In truth, LaTeX isn't nearly as easy as &lt;code&gt;groff&lt;/code&gt;.  People could say that &lt;code&gt;troff&lt;/code&gt; is dead too, but billing systems and other high-volume page outputs are scripted with these types of programs.  OK, granted I don't know of anyone producing invoicing or bills with LaTeX...&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-23T19:06:46.397" />
  <row Id="6784" PostTypeId="1" AcceptedAnswerId="6789" CreationDate="2010-09-23T19:12:12.027" Score="1" ViewCount="252" Body="&lt;p&gt;Hi guys, and thanks for your experienced advice,&#xA;I have to make a decision between two employers and I just don`t seem to figure out which one is better for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have near 5 years of experience.&#xA;I have a .Net background, but I always wanted to dive into the linux world.&#xA;I'm also looking for a place with high standards and agile development.&#xA;I've been playing with RoR on the side and I really like it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1- Big and old company, (+100years) with a very high standard, so high that I'm wondering if I'm strong enough for them. I will have to work over asp.net mvc2 and maintain over WebForms. Coding is stricly in TDD which is perfect for me. I will probably be the newbie there, people looked damn smart during my interview. I will be within a team of 8 developers + ScrumMaster + project manager (product owner?) + architect. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;2- Ruby on rails job, as a back-end developper. I'm going be the newbie again because I don't know much of ruby, but I seem to have a great level of design for them. They don't do agile yet, they seems pretty interested in me because I have also good agile background and they want to start doing it. I'm going to be the 7th developer and will be in a team of 3 devs to develop a new product I don`t know yet (backend stuff they said). First assignement will be to write unit and integrated tests to cover existing apps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT : I thought many times of starting my own company one day and rails seems like the perfect technology for it.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-23T20:18:25.560" Title="Which developer job would you choose?" Tags="&lt;jobs&gt;&lt;career-advice&gt;" AnswerCount="6" CommentCount="4" />
  <row Id="6785" PostTypeId="2" ParentId="6755" CreationDate="2010-09-23T19:14:04.253" Score="11" ViewCount="" Body="&lt;p&gt;'Old vb error code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;On Error Goto Hell&#xA;&#xA;&#xA;Hell:&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-23T19:14:04.253" CommentCount="1" />
  <row Id="6786" PostTypeId="2" ParentId="6755" CreationDate="2010-09-23T19:14:32.927" Score="3" ViewCount="" Body="&lt;p&gt;In C#, the &lt;code&gt;switch&lt;/code&gt; statement doesn't allow fall through for non-empty labels. You have to use &lt;code&gt;goto&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;switch(n)&#xA;{&#xA;case 1:&#xA;    foo += 25;&#xA;    break;&#xA;case 2:&#xA;    foo += 25;&#xA;    goto case 3; // Fall through to case 3&#xA;case 3:&#xA;    foo += 50;&#xA;    goto case1; // Can also fall 'up' since it's regular goto and labels&#xA;default:&#xA;    Console.WriteLine(&quot;Invalid selection. Please select 1, 2, or 3.&quot;);&#xA;    break;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Please note that I'm not necessarily advocating any particular use of the &lt;code&gt;switch&lt;/code&gt; statement, only pointing out that for complicated switch logic, it can be useful and is a little less disastrous than how it's usually used in loops.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastEditorUserId="1360" LastEditorDisplayName="" LastEditDate="2010-09-23T19:29:34.387" LastActivityDate="2010-09-23T19:29:34.387" CommentCount="2" />
  <row Id="6787" PostTypeId="2" ParentId="6784" CreationDate="2010-09-23T19:19:01.327" Score="3" ViewCount="" Body="&lt;p&gt;I'd go with 1. Working with smart people is hard to beat; it'll only make you better, and assuming that they're not a$$holes then you'll potentially learn tonnes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I assume that intentionally leaving out the monetary compensation implies that you're not taking it into account? Sometimes that can affect the decision as well.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-23T19:19:01.327" CommentCount="1" />
  <row Id="6788" PostTypeId="2" ParentId="6784" CreationDate="2010-09-23T19:20:09.023" Score="2" ViewCount="" Body="&lt;p&gt;I wouldn't look at it in terms of technology or process, I'd look at it in terms of &lt;em&gt;influence&lt;/em&gt;. At large companies, changes are slow to happen. It sounds like the Rails job might be offered by a much smaller company. If that's the case, you'll find yourself having a much larger hand in influencing the tools and process that your team and even the whole company will use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I hate jobs where I'm just another number. Small companies (or even large companies run like small companies) greatly appeal to me because I know that what I do and say matters a lot more. If that's something important to you, I'd think twice about the big company. I'm kind of guessing here since I don't have enough information about either company, so take it with a grain of salt.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastActivityDate="2010-09-23T19:20:09.023" CommentCount="2" />
  <row Id="6789" PostTypeId="2" ParentId="6784" CreationDate="2010-09-23T19:20:51.193" Score="6" ViewCount="" Body="&lt;p&gt;Job #1. I've been in software for close to 20 years now. Four or five times in my career, I've felt like I was completely unqualified to do the job that was assigned to me - and &lt;em&gt;every single one of those occassions has been a huge part of my growth.&lt;/em&gt; The fact that you recognize job #1 as something that will be a huge challenge is a &lt;em&gt;good&lt;/em&gt; thing in my book - enough that I would definitely take it on over the other job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I would almost always choose an agile shop over a non-agile shop (frosting on the cake).&lt;/p&gt;&#xA;" OwnerUserId="1240" LastEditorUserId="1240" LastEditorDisplayName="" LastEditDate="2010-09-23T19:34:07.793" LastActivityDate="2010-09-23T19:34:07.793" CommentCount="3" />
  <row Id="6790" PostTypeId="1" AcceptedAnswerId="6795" CreationDate="2010-09-23T19:25:01.483" Score="8" ViewCount="488" Body="&lt;p&gt;I've recently read through Joel's guide to finding great developers (&lt;a href=&quot;http://www.joelonsoftware.com/articles/FindingGreatDevelopers.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/FindingGreatDevelopers.html&lt;/a&gt;), and I feel really strongly that I am &lt;em&gt;smart&lt;/em&gt; and &lt;em&gt;get things done&lt;/em&gt;. The problem is, I didn't learn how to &lt;em&gt;get things done&lt;/em&gt; until about halfway through college, so my GPA is less than stellar. Additionally, I've got a few other things going against me: late into the job market (~30), no internship, state college instead of university, and when I graduated, I pretty much had to take the first job that offered. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;With all of these things piled together, my resume (the first step to getting a job), is not terribly impressive. What can I do to let people know that I'm a great developer and would complement the best companies in the world? &lt;/p&gt;&#xA;" OwnerUserId="2091" LastActivityDate="2011-02-19T18:36:29.910" Title="How can I let prospective employers know I'm a great developer?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;great-programmer&gt;&lt;hiring&gt;&lt;resume&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="2" />
  <row Id="6791" PostTypeId="2" ParentId="6790" CreationDate="2010-09-23T19:29:08.043" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Open Source Projects&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you worked on any other projects before?  Hard work trumps GPA in most all cases.  Work on an open source project in your spare time and show off those contributions to potential employers.  Even if you don't have any software development experience for a company, the fact that you take the initiative to learn and work on your craft is more valuable to an employer than someone who has experience, has become complacent and is only in it for the paycheck.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-23T19:29:08.043" />
  <row Id="6792" PostTypeId="2" ParentId="6784" CreationDate="2010-09-23T19:30:07.540" Score="1" ViewCount="" Body="&lt;p&gt;Well, not having a lot information about your life goals (e.g. do you want to do a startup someday?), and seeing that you seem to care about the technology you use, this post and its discussion on HN may be of interest:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://whatupdave.tumblr.com/post/1170718843/leaving-net&quot; rel=&quot;nofollow&quot;&gt;Leaving .Net&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://news.ycombinator.com/item?id=1719277&quot; rel=&quot;nofollow&quot;&gt;HN discussion of above&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;RoR is not the ultimate technology, but it sounds like you want the freedom to choose your tools.  And considering life in general, pick the path that gets you excited to wake up in the morning.&lt;/p&gt;&#xA;" OwnerUserId="2026" LastActivityDate="2010-09-23T19:30:07.540" CommentCount="1" />
  <row Id="6793" PostTypeId="2" ParentId="6790" CreationDate="2010-09-23T19:30:23.627" Score="2" ViewCount="" Body="&lt;p&gt;I've found that these things help to show that you're passionate about programming:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;active on &lt;strong&gt;Twitter&lt;/strong&gt;, given you tweet about technology&lt;/li&gt;&#xA;&lt;li&gt;have a &lt;strong&gt;blog&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;be part of local technology &lt;strong&gt;P2P groups&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;participate in &lt;strong&gt;open-source projects&lt;/strong&gt; or have your own project that you're actively working on. If you can present it somehow (live or link to a page) is a plus.-&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="3262" LastEditorDisplayName="" LastEditDate="2010-09-23T19:35:52.460" LastActivityDate="2010-09-23T19:35:52.460" />
  <row Id="6794" PostTypeId="2" ParentId="6784" CreationDate="2010-09-23T19:31:27.213" Score="0" ViewCount="" Body="&lt;p&gt;I would go with Job #1 because of the experience I'd get learning from them. I work for a small company now and there have been many times that I have wished there was someone more experienced then me around so I could ask them questions and learn from them. Also, if you leave it would probably look good on your Resume to have worked for them :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's just me though, you may be different.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-09-23T19:31:27.213" />
  <row Id="6795" PostTypeId="2" ParentId="6790" CreationDate="2010-09-23T19:32:44.270" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Personal projects.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can contribute to open source projects or write something on your own. If you can literally point to something and say &quot;I wrote this&quot; it's very impressive. Further, it shows that you're &lt;em&gt;passionate&lt;/em&gt; about what you do because you're doing it for free in your spare time. List them on your resume under a projects section. If you have a website that nicely showcases what you've done, all the better.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastActivityDate="2010-09-23T19:32:44.270" CommentCount="7" />
  <row Id="6796" PostTypeId="1" CreationDate="2010-09-23T19:39:33.543" Score="3" ViewCount="155" Body="&lt;p&gt;&lt;strong&gt;What is the best help desk software you have ever seen?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been looking for one for a start up but there are just so many of them.  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PHP code-base preferred (Ruby, Perl, Python are options)  &lt;/li&gt;&#xA;&lt;li&gt;must be able to integrate seamlessly into a PHP website. Hosted is an option if there is a decent api.  &lt;/li&gt;&#xA;&lt;li&gt;Bonus: integration with LogMeIn Rescue and/or TeamViewer  &lt;/li&gt;&#xA;&lt;li&gt;Bonus: Would be nice if it has a decent code base or API, I'm tired of garbage.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Thank you&lt;/p&gt;&#xA;" OwnerUserId="1013" LastEditorUserId="1013" LastEditorDisplayName="" LastEditDate="2010-09-24T10:08:00.630" LastActivityDate="2010-09-24T13:24:54.533" ClosedDate="2010-09-24T22:21:59.693" Title="Help Desk Software" Tags="&lt;experience&gt;&lt;php&gt;&lt;python&gt;&lt;ruby-on-rails&gt;&lt;perl&gt;" AnswerCount="5" CommentCount="9" />
  <row Id="6797" PostTypeId="2" ParentId="6790" CreationDate="2010-09-23T19:41:26.647" Score="0" ViewCount="" Body="&lt;p&gt;Do you have an idea for some software to write and sell?  Or a website you can support with membership fees or advertising?  If so, do it.  Nothing proves you can 'get things done' better than actually showing that you have &lt;em&gt;gotten&lt;/em&gt; things done.  It doesnt have to be massive - just enough to show that you can start from an idea, and actually finish it.  That is a highly valued trait.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-23T19:41:26.647" />
  <row Id="6799" PostTypeId="2" ParentId="6796" CreationDate="2010-09-23T19:45:32.193" Score="2" ViewCount="" Body="&lt;p&gt;I use Kayako.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.kayako.com&quot; rel=&quot;nofollow&quot;&gt;http://www.kayako.com&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-23T19:45:32.193" />
  <row Id="6800" PostTypeId="2" ParentId="6790" CreationDate="2010-09-23T19:49:10.707" Score="7" ViewCount="" Body="&lt;p&gt;Please, don't try to look good by doing things you wouldn't have done otherwise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an employer, I'm looking for problem solvers. Employers have something in common:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;They have lots of problems.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;When they ask you about your past experiences, &lt;em&gt;explain how you solved business problems&lt;/em&gt; rather than enumerating all the technologies you master.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-23T19:49:10.707" />
  <row Id="6801" PostTypeId="2" ParentId="2948" CreationDate="2010-09-23T19:51:26.900" Score="3" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Yes or no&lt;/em&gt; and &lt;em&gt;are they valuable&lt;/em&gt; are two different questions.  The answers may also be different.  In case of the latter question, the answer may depend on the perspective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The 1st question, yes or no?  It's a &lt;strong&gt;yes&lt;/strong&gt;.  From the Scrum or XP point of view, the standup is an essential activity.  If you don't have daily scrums, then it's not really Scrum, it's called &quot;scrum, but we don't do daily standups&quot; or &lt;em&gt;scrumbut&lt;/em&gt; for short.  if you want to include a Kanban perspective, most Kanban teams do standups, even though their method doesn't prescribe them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The 2nd question, (how) are they valuable, is more complicated.  If you practice Scrum or XP, you've got to believe that the standups are essential to promote collaboration, teamwork and make your team more effective.  So the answer is &lt;strong&gt;definitely valuable&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The lean proponents' perspective is &lt;strong&gt;very different&lt;/strong&gt;.  An extreme lean view is that your customer doesn't care if you do standups, so they are just waste.  What do you with waste?  You cut it to the minimum, ideally to zero.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A more moderate lean view is that while not exactly waste, daily standups are a &lt;em&gt;coordination cost&lt;/em&gt; and &lt;strong&gt;not a value-added activity&lt;/strong&gt;.  You can play devil's advocate with your Scrum colleagues and ask them: if you think your 15-minute standups are a value-added activity, why don't you do 30 minutes of them every day or 45 minutes and easily magnify the value added?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Kanban, which has lean roots but aims to deliver on the Agile Manifesto principles, resolves this paradox by doing standups, but using a very different meeting structure than the traditional agile standup format.  The result is a much shorter meeting, which aligns with the Lean point of view.  &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0984521402&quot; rel=&quot;nofollow&quot;&gt;This book has an example where a 50-person Kanban team does daily standups in 10 minutes&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To summarize, whether or not to do daily standups, the answer is a definite &lt;strong&gt;yes&lt;/strong&gt;.  But, are they valuable, how valuable are they -- &lt;strong&gt;it depends&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-09-23T19:51:26.900" CommunityOwnedDate="2011-02-21T11:56:32.877" />
  <row Id="6802" PostTypeId="2" ParentId="6758" CreationDate="2010-09-23T19:52:44.573" Score="3" ViewCount="" Body="&lt;p&gt;I'm going to go and say something here that some people may not agree with.  After the first few years in your career, no one gives two craps where you did your Undergrad work at.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're a good engineer you're a good engineer. I'm also convinced that certain people are just wired that way and try as some people might they will never be able to code.  To me it's like art, you either can or you can't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said.  University will help you a bit but not from the standpoint most people initially think.  If you're going for IS/IT then you should be going to learn how to learn.  Learn how to learn on your feet, how to study, how to pick up new things.  Go to learn how to socialize, network, work in teams, be a leader (if that's your style).  And lastly, don't expect to come out college totally prepared for the working world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll learn more in the first 6 months at your job than you probably will have learned in 4 years of undergrad.&lt;/p&gt;&#xA;" OwnerUserId="657" LastEditorUserId="657" LastEditorDisplayName="" LastEditDate="2010-09-23T20:05:28.063" LastActivityDate="2010-09-23T20:05:28.063" CommentCount="2" />
  <row Id="6804" PostTypeId="2" ParentId="4384" CreationDate="2010-09-23T19:58:04.290" Score="-2" ViewCount="" Body="&lt;p&gt;wow, those are some real heroic task, adore them, got some good ideas too. Well i would be rather simple but still like to write it here. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am talking of (tiny - viny ) FCKEditor. Its an RICH TEXT EDITOR. Ok the story is that FCKEditor have been one of the most popular javascript RTE in dates. The editor is so powerful that u can get a feel that you are working on microsoft word or OOO document editor. There have been a lot of plugins and utilites out there which help to get your specific task done. Well i did the same. The editor was used to for an EMAIL marketing system. Sending bulk email, shooting, mailing list, autoresponders etc. The editor has very boring and not so good browser for files including objects, files , images, doc etc. I have created an entire new version of file uploader and browser. Its minimal version is used in the system. But i have still working on the same till date. The uploader have functionality of uploading, browser step by step, detailed information, deleting, moving, editing, renaming, downloading, watching, listening, resizing and using functionality. Its like a complete web version of you file system of Os. The base is in aspx page CS behind .and using Javascript (especially jQuery ) at its core. Its using the very best feautres of jquery - some professional animations, ajax and so on. The upload is done using asyncajax control. Now implementing Flash upload for choosing multiple files at once. Have a functionality of cropping, editing. Rich &amp;amp; advance search option where you can add tags to the file so that u have more vertical of searching again. Saves the file on per user base. When used in the editor. Give SEO friendly url to be used. The files are saved using GUID naming  so that cannot be recognized easily. When used in Editor or published on web - when the file is displayed on click or display it give a messgae to server of the ip address from where it was used or served. Count and the browser agent information.&#xA;Load time for the page on average is 6 sec initially and once cached most of them 2 sec. Have kept performace parameter in mind all the time so achieved them very nicely phew. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have teawked most of other fckeditor toolbar function to get more grip on them (eg  : creating table, link, form fields, rulers, adding custom tag and configuring them to function as something etc ) and FCKeditor and diving in those complicated javascript code is so much fun. Thats a heroic thing for me. Thanks.&lt;/p&gt;&#xA;" OwnerUserId="3455" LastActivityDate="2010-09-23T19:58:04.290" CommentCount="1" />
  <row Id="6807" PostTypeId="2" ParentId="6760" CreationDate="2010-09-23T19:59:57.410" Score="14" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.pps.jussieu.fr/~jch/software/polipo/&quot; rel=&quot;nofollow&quot;&gt;Polipo&lt;/a&gt;'s multi-state &lt;a href=&quot;http://www.pps.jussieu.fr/~jch/software/polipo/manual/Configuring-Polipo.html#Configuring-Polipo&quot; rel=&quot;nofollow&quot;&gt;configuration options&lt;/a&gt; always makes me giggle.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;‘boolean’: a truth value, one of ‘true’ or ‘false’;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Simple.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;‘tristate’: one of ‘false’, ‘maybe’ or ‘true’;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Fine, but not majorly uncommon or weird&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;‘4-state’, one of ‘false’, ‘reluctantly’, ‘happily’ or ‘true’;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;‘5-state’, one of ‘false’, ‘reluctantly’, ‘maybe’, ‘happily’ or ‘true’; &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Wait, what? When was the last time software executes with reluctancy or happiness? (Excluding software written in INTERCAL, of course)&lt;/p&gt;&#xA;" OwnerUserId="912" LastActivityDate="2010-09-23T19:59:57.410" CommentCount="3" />
  <row Id="6810" PostTypeId="2" ParentId="616" CreationDate="2010-09-23T20:13:27.293" Score="1" ViewCount="" Body="&lt;p&gt;Keeping some good music (slow volume) so you keep in the mood. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you feel that you are not able to concentrate on whatever you are doing. Trying to move your legs or tap them or bounce them for a while that will make your blood flow wild again. The reason for you becoming disturbed is the reason so some tensions or lack of blood flow in body as the body is staying in a same position for a time. Try to circulate your blood better and u get your job done. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to talk to someone about what you are doing (someone close to you, in my case my fiance). Its not important if the other person understand it or not but get a good feel for sure. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you get stucked get your pen paper and get the thing visualized with some boxes, names, arrows etc try to understand the flow. Rethink over it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get something to eat and just sit and eat for a while an idea might struck you :P.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get a screwdriver and open you machine or laptop or notebook and try to find out what wrong with it...??? why its not giving me expected result :P (kidding)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The one that i personally do most of the time when i get stuck, funny though - get a mirror start looking on to it. Make faces, talk to myself, start wondering keeping it in front of me. keep staring at myself. That help me out to get fresh again and increase my power again. Wierd eh....but works for me.&lt;/p&gt;&#xA;" OwnerUserId="3455" LastActivityDate="2010-09-23T20:13:27.293" />
  <row Id="6812" PostTypeId="2" ParentId="6784" CreationDate="2010-09-23T20:18:25.560" Score="0" ViewCount="" Body="&lt;p&gt;I'm guessing that job #2 is with a smaller company?  I'd take that over #1 any day.  You're far more likely to have an impact with the smaller company.  The bigger companies... far too much in the way of politics and such.  And they'll axe you without a second thought the minute their stock price falls.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I think you'd learn a lot more at the smaller company anyways, because you'll then likely have to 'wear more hats', and be involved in more aspects of the company.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-23T20:18:25.560" />
  <row Id="6813" PostTypeId="2" ParentId="6760" CreationDate="2010-09-23T20:21:19.283" Score="3" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/417w8b3b%28VS.80%29.aspx&quot; rel=&quot;nofollow&quot;&gt;com_ptr_t&lt;/a&gt; type and it's COM variants.  Let's invent a smart pointer but then make public the increment ref count and decrement ref count.  'Cause nothing bad could come of that...&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-23T20:21:19.283" />
  <row Id="6814" PostTypeId="2" ParentId="35" CreationDate="2010-09-23T20:26:29.517" Score="5" ViewCount="" Body="&lt;p&gt;An update of &lt;a href=&quot;http://programmers.stackexchange.com/questions/35/whats-your-favorite-programming-joke/318#318&quot;&gt;the earlier binary joke&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are 10 types of people in the world -- those who understand ternary, those who don't, and those who mistake it for another base.&lt;/p&gt;&#xA;" OwnerUserId="317" LastActivityDate="2010-09-23T20:26:29.517" CommunityOwnedDate="2010-09-23T20:40:04.303" CommentCount="3" />
  <row Id="6815" PostTypeId="1" CreationDate="2010-09-23T20:33:07.390" Score="8" ViewCount="341" Body="&lt;p&gt;As I advance in my career, I have found that I do less technical work and more project management work.  I joke that I am getting dumber every day.  Each time I go back to doing technical work it seems to be a little harder to get things going.  What suggestions do people have for maintaining technical expertise throughout your career.&lt;/p&gt;&#xA;" OwnerUserId="3459" LastActivityDate="2010-12-21T10:47:54.280" Title="Transitioning from Programmer to Project Manager" Tags="&lt;project-management&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="6816" PostTypeId="2" ParentId="6706" CreationDate="2010-09-23T20:38:04.420" Score="0" ViewCount="" Body="&lt;p&gt;Funny, i didnt think i could link to &lt;a href=&quot;http://programmers.stackexchange.com/questions/5038/which-programming-language-would-you-eliminate-and-why/5044#5044&quot;&gt;this answer&lt;/a&gt; in yet another thread. Read the second line.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-23T20:38:04.420" />
  <row Id="6817" PostTypeId="2" ParentId="6790" CreationDate="2010-09-23T20:38:33.937" Score="1" ViewCount="" Body="&lt;p&gt;When I was interviewing coming out of college, I put together a portfolio of projects I had done similar to what a graphic artist would do.  I had some sample database diagrams, documentation, and screenshots.  The portfolio provided a good talking point for some of the projects.  In some cases, I could answer technical questions by showing how I did it in an actual project.&lt;/p&gt;&#xA;" OwnerUserId="3459" LastActivityDate="2010-09-23T20:38:33.937" />
  <row Id="6818" PostTypeId="2" ParentId="35" CreationDate="2010-09-23T20:40:04.303" Score="18" ViewCount="" Body="&lt;p&gt;A man was crossing a road one day when a frog called out to him and said, &quot;If you kiss me, I'll turn into a beautiful princess.&quot; He bent over, picked up the frog, and put it in his pocket. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The frog spoke up again and said, &quot;If you kiss me and turn me back into a beautiful princess, I will tell everyone how smart and brave you are and how you are my hero.&quot; The man took the frog out of his pocket, smiled at it, and returned it to his pocket. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The frog spoke up again and said, &quot;If you kiss me and turn me back into a beautiful princess, I will be your loving companion for an entire week.&quot; The man took the frog out of his pocket, smiled at it, and returned it to his pocket. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The frog then cried out, &quot;If you kiss me and turn me back into a princess, I'll stay with you for a year and do ANYTHING you want.&quot; Again the man took the frog out, smiled at it, and put it back into his pocket. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, the frog asked, &quot;What is the matter? I've told you I'm a beautiful princess, that I'll stay with you for a year and do anything you want. Why won't you kiss me?&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The man said, &quot;Look, I'm a computer programmer. I don't have time for a girlfriend, but a talking frog is cool.&quot;&lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-09-23T20:40:04.303" CommunityOwnedDate="2010-09-23T20:40:04.303" />
  <row Id="6819" PostTypeId="2" ParentId="6760" CreationDate="2010-09-23T20:42:32.993" Score="9" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;$months = array(&quot;Apples&quot;, &quot;Jan.&quot;, &quot;Feb.&quot;, &quot;Mar.&quot;, &quot;Apr.&quot;, &quot;May.&quot;, &quot;Jun.&quot;, &quot;Jul.&quot;, &#xA;            &quot;Aug.&quot;, &quot;Sept.&quot;, &quot;Oct.&quot;, &quot;Nov.&quot;, &quot;Dec.&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I am not the one who found it (is actually from the daily WTF &lt;a href=&quot;http://thedailywtf.com/Articles/The-0th-Month.aspx&quot; rel=&quot;nofollow&quot;&gt;http://thedailywtf.com/Articles/The-0th-Month.aspx&lt;/a&gt;) but I think is the most weird one&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-09-23T20:42:32.993" CommentCount="4" />
  <row Id="6820" PostTypeId="2" ParentId="6754" CreationDate="2010-09-23T20:43:43.760" Score="-4" ViewCount="" Body="&lt;p&gt;No. No one needs another being &lt;a href=&quot;http://stackoverflow.com/users/34537/acidzombie24&quot;&gt;wreaking havoc&lt;/a&gt; on SO (see question count).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I pity the fool who follows my footsteps.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-23T20:43:43.760" CommunityOwnedDate="2011-01-02T21:42:15.923" CommentCount="4" />
  <row Id="6821" PostTypeId="2" ParentId="1338" CreationDate="2010-09-23T20:45:30.310" Score="4" ViewCount="" Body="&lt;p&gt;I had a job years ago where all our code had to be left-aligned - no indenting.  The guy who came up with that policy disliked having to scroll back and forth horizontally when viewing long lines of code, equating it playing ping-pong with his eyes.&lt;/p&gt;&#xA;" OwnerUserId="3460" LastEditorUserId="3460" LastEditorDisplayName="" LastEditDate="2010-09-23T20:50:31.003" LastActivityDate="2010-09-23T20:50:31.003" CommunityOwnedDate="2010-09-23T20:45:30.310" CommentCount="2" />
  <row Id="6822" PostTypeId="2" ParentId="6755" CreationDate="2010-09-23T20:48:46.530" Score="1" ViewCount="" Body="&lt;p&gt;I used &lt;code&gt;GOTO&lt;/code&gt; in my Quick Basic programas in the 80´s and a &lt;code&gt;GOSUB&lt;/code&gt; too. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In TSQL scripts that using cursor technique is common to use &lt;code&gt;GOTO&lt;/code&gt; instructions. It saves me sometimes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although this command (as it was called) became evil, in that time was essencial to deal with limited language structures. I´m not shame to have used it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you think in terms of machine code generated by compiler of our programs, it uses &lt;code&gt;JUMP&lt;/code&gt; instruction that is, in real, a &lt;code&gt;GOTO&lt;/code&gt;, right? :)&lt;/p&gt;&#xA;" OwnerUserId="3082" LastActivityDate="2010-09-23T20:48:46.530" />
  <row Id="6823" PostTypeId="2" ParentId="6796" CreationDate="2010-09-23T20:52:49.857" Score="0" ViewCount="" Body="&lt;p&gt;Vision Helpdesk&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.thevisionworld.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.thevisionworld.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-09-23T20:52:49.857" />
  <row Id="6824" PostTypeId="2" ParentId="6796" CreationDate="2010-09-23T20:54:06.143" Score="0" ViewCount="" Body="&lt;p&gt;Zendesk&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.zendesk.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.zendesk.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-09-23T20:54:06.143" />
  <row Id="6825" PostTypeId="1" CreationDate="2010-09-23T20:56:57.393" Score="5" ViewCount="164" Body="&lt;p&gt;I know there are site tools to check if your webpage is alive, has compression, etc but lets not get into that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are useful sites to paste code in and to share links of? The three i know are&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://codepad.org/&quot; rel=&quot;nofollow&quot;&gt;http://codepad.org/&lt;/a&gt;  shows source and runs code online&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.pastie.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.pastie.org/&lt;/a&gt; share source with syntax highlighting&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jsfiddle.net/&quot; rel=&quot;nofollow&quot;&gt;http://jsfiddle.net/&lt;/a&gt; great for JS help or for the occasional test.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What else do you know of?&#xA;One answer per question. I'll let lints and validators slide since you do paste code into them. Mention a weakness if you do know one so others wont be surprised or disappointed.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-23T21:36:43.877" LastActivityDate="2010-12-27T09:40:34.710" CommunityOwnedDate="2010-09-23T20:56:57.393" Title="Useful code paste site tools" Tags="&lt;web-tools&gt;&lt;code&gt;&lt;syntax-highlight&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="5" />
  <row Id="6826" PostTypeId="2" ParentId="6825" CreationDate="2010-09-23T21:02:45.450" Score="1" ViewCount="" Body="&lt;p&gt;I like &lt;a href=&quot;http://pastebin.com/&quot; rel=&quot;nofollow&quot;&gt;http://pastebin.com/&lt;/a&gt; for its privacy, expiration, and syntax-highlighting options. Plus the Firefox addon is handy.&lt;/p&gt;&#xA;" OwnerUserId="248" LastActivityDate="2010-09-23T21:02:45.450" CommunityOwnedDate="2010-09-23T21:02:45.450" CommentCount="1" />
  <row Id="6827" PostTypeId="1" CreationDate="2010-09-23T21:04:16.260" Score="7" ViewCount="361" Body="&lt;p&gt;This includes architecture decisions, platform choices or any situation where a such a bad choice led to negative consequences.&lt;/p&gt;&#xA;" OwnerUserId="3463" LastActivityDate="2010-09-24T03:06:17.053" Title="What's the worst technology decision you have ever seen ?" Tags="&lt;technology&gt;&lt;architect&gt;" AnswerCount="10" FavoriteCount="1" />
  <row Id="6828" PostTypeId="2" ParentId="6825" CreationDate="2010-09-23T21:07:47.777" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://gist.github.com&quot; rel=&quot;nofollow&quot;&gt;http://gist.github.com&lt;/a&gt; is extremely convenient. You can treat pastes as git repos themselves. There's options for private gists. There's an api for command line tools to use. It also has syntax highlighting.&lt;/p&gt;&#xA;" OwnerUserId="1767" LastActivityDate="2010-09-23T21:07:47.777" CommunityOwnedDate="2010-09-23T21:07:47.777" CommentCount="1" />
  <row Id="6829" PostTypeId="1" CreationDate="2010-09-23T21:08:51.153" Score="0" ViewCount="123" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/6395/how-do-you-dive-into-large-code-bases&quot;&gt;How do you dive into large code bases?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I've just started at my job, and I am going to be writing an application which interfaces with several of our existing products. The problem is, these existing products are giant J2EE applications with no documentation whatsoever. There are no javadocs, comments, specs, UML diagrams... the only thing I've found is how to install GlassFish on Windows (I'm on a Linux machine though). What are the best techniques for learning a large codebase like this?&lt;/p&gt;&#xA;" OwnerUserId="2091" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2011-04-26T15:00:46.743" LastActivityDate="2011-04-26T15:00:46.743" ClosedDate="2010-09-24T10:13:50.440" Title="How do you learn your way around an undocumented project?" Tags="&lt;learning&gt;&lt;documentation&gt;" AnswerCount="4" CommentCount="0" />
  <row Id="6830" PostTypeId="2" ParentId="6829" CreationDate="2010-09-23T21:11:45.550" Score="0" ViewCount="" Body="&lt;p&gt;Two important techniques.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Read the code.  If you're working at this job, presumably you know the language well enough to read things and figure out what they're doing, at least on a local level.&lt;/li&gt;&#xA;&lt;li&gt;Ask your coworkers.  They've been working on these projects for years now and are likely to know their way around the codebase pretty well.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I know these seem really simple, but really all you can do will come down to some combination of these two.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-23T21:11:45.550" CommentCount="0" />
  <row Id="6831" PostTypeId="2" ParentId="6827" CreationDate="2010-09-23T21:13:40.443" Score="0" ViewCount="" Body="&lt;p&gt;Writing modern operating systems in C/C++.  We've known since the Morris Worm (late 80s) that it's a completely unsuitable language for building networked software in, but that hasn't stopped anyone from doing it, which basically amounts to criminal negligence IMO.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-23T21:13:40.443" CommentCount="10" />
  <row Id="6832" PostTypeId="1" AcceptedAnswerId="7020" CreationDate="2010-09-23T21:13:56.947" Score="15" ViewCount="703" Body="&lt;p&gt;Both in &lt;em&gt;Code Complete&lt;/em&gt; by Steve McConnell and &lt;em&gt;The Pragmatic Programmer&lt;/em&gt; by Andrew Hunt &amp;amp; David Thomas, they allege that most programmers don't read programming-related books as a habit, or at least not often enough. Does this still hold? Are programmers who do read such books still rare?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I must admit that only quite recently did I start reading (and now I can't stop; it's burning a whole in my wallet!). Before I was actually against it and argued that it's better to write programs than to waste time reading about it. Now I realize that the best outcome, for me at least, is to do both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; I actually meant &lt;em&gt;any&lt;/em&gt; kind of books that on way or another was related to programming; be it either on a particular language, technology, pattern, paradigm - &lt;em&gt;anything&lt;/em&gt; as long as it may benefit you as a programmer. I was just referring to &lt;em&gt;Code Complete&lt;/em&gt; and &lt;em&gt;The Pragmatic Programmer&lt;/em&gt; because that's where I read that programmers don't usually read such books. It would have looked stranged if the title just read &quot;Are programmers who read books still rare?&quot;&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-09-23T21:57:52.790" LastActivityDate="2010-10-10T22:52:13.030" Title="Are programmers who read programming-related books still rare?" Tags="&lt;books&gt;&lt;habits&gt;" AnswerCount="18" CommentCount="1" FavoriteCount="5" />
  <row Id="6833" PostTypeId="2" ParentId="6827" CreationDate="2010-09-23T21:14:01.537" Score="4" ViewCount="" Body="&lt;p&gt;Implementing SAP&lt;/p&gt;&#xA;" OwnerUserId="5" LastEditorUserId="5" LastEditorDisplayName="" LastEditDate="2010-09-23T21:58:33.607" LastActivityDate="2010-09-23T21:58:33.607" CommentCount="0" />
  <row Id="6834" PostTypeId="1" CreationDate="2010-09-23T21:14:17.603" Score="13" ViewCount="828" Body="&lt;p&gt;Modern IDEs have a lot of tricks up their sleeves to help with code writing, refactoring,  searching. All those are very helpful, but rarely any of them looks like a real &quot;magic&quot; and makes me think &quot;Wow! How did it figure that out?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you name any impressive IDE code automation (or other) features that blew your mind first time you saw them?&lt;/p&gt;&#xA;" OwnerUserId="193" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T15:53:37.613" LastActivityDate="2010-11-02T14:40:33.530" Title="What are the most impressive tricks an IDE could pull off with the code?" Tags="&lt;ide&gt;&lt;automation&gt;" AnswerCount="22" CommentCount="4" FavoriteCount="6" />
  <row Id="6835" PostTypeId="2" ParentId="6829" CreationDate="2010-09-23T21:14:19.833" Score="0" ViewCount="" Body="&lt;p&gt;Find or write a static analysis tool to display the interrelationships between thingies.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-23T21:14:19.833" />
  <row Id="6836" PostTypeId="2" ParentId="6834" CreationDate="2010-09-23T21:16:06.200" Score="12" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.jetbrains.com/resharper/&quot; rel=&quot;nofollow&quot;&gt;ReSharper's&lt;/a&gt; ability to guess what I want a variable named continues to amaze me.&#xA;Here is a very simple example but you get the idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/OAvlr.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="5" LastEditorUserId="5" LastEditorDisplayName="" LastEditDate="2010-09-23T21:24:07.780" LastActivityDate="2010-09-23T21:24:07.780" CommentCount="5" />
  <row Id="6837" PostTypeId="2" ParentId="6834" CreationDate="2010-09-23T21:16:56.243" Score="3" ViewCount="" Body="&lt;p&gt;I think the most impressive IDE feature I've seen is &lt;a href=&quot;http://delphi.about.com/od/productreviews/ss/delphi2005first_2.htm&quot; rel=&quot;nofollow&quot;&gt;SyncEdit&lt;/a&gt;, which AFAIK is only available in Delphi.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-23T21:16:56.243" CommentCount="7" />
  <row Id="6838" PostTypeId="2" ParentId="6829" CreationDate="2010-09-23T21:16:57.897" Score="1" ViewCount="" Body="&lt;p&gt;Why don't you take on the effort of documenting it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can kill two birds with one stone: You'll learn it AND make it easier for the next programmer that has to work on it.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-23T21:16:57.897" CommentCount="4" />
  <row Id="6839" PostTypeId="2" ParentId="2948" CreationDate="2010-09-23T21:18:04.943" Score="1" ViewCount="" Body="&lt;p&gt;Unless there's a good reason to have a fully networked communication between the whole team daily, it sounds like a big waste of time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rather have weeklies.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-23T21:18:04.943" CommunityOwnedDate="2011-02-21T11:56:32.877" />
  <row Id="6840" PostTypeId="2" ParentId="6834" CreationDate="2010-09-23T21:19:17.907" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Code completion&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When all you've seen is a text editor, this is impressive&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-23T21:19:17.907" CommentCount="9" />
  <row Id="6841" PostTypeId="2" ParentId="35" CreationDate="2010-09-23T21:21:19.247" Score="14" ViewCount="" Body="&lt;p&gt;Some programmers and their managers were going to a conference by train. At the station, the managers bought one ticket each and the software engineers bought one ticket for the whole group. On the train, the managers proclaimed that the engineers would miss out on all the cool stuff at the conference as they would all be booted off the train when the guard come to inspect their tickets. When the guard is in the next carriage, the engineers bundle into the rest room. As the guard passes through the train, he knocks on the rest room door, the programmers slip their ticket under the door, the guard checks it and hands it back. The managers, seeing this, complement the engineers on their plan.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the return journey, the managers, remembering the engineers ruse, buy a single ticket for the group. The engineers, however, don't buy any tickets at all. Again, the managers think that the engineers will get thrown off the train for not having a ticket. As the guard approaches, the managers head off to the rest room. Once inside, the engineers knock on the door...&quot;Ticket please&quot;&lt;/p&gt;&#xA;" OwnerUserId="914" LastActivityDate="2010-09-23T21:21:19.247" CommunityOwnedDate="2010-09-23T21:21:19.247" CommentCount="2" />
  <row Id="6842" PostTypeId="2" ParentId="6827" CreationDate="2010-09-23T21:25:33.363" Score="3" ViewCount="" Body="&lt;p&gt;Rewriting a Telco grade voice mail system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The previous system was running on Unix and around the late 90's Microsoft's COM technology came along. Many developers were working on this new NT based system. After a lot of effort its performance was still no where near that of the Unix system's and a big customer who bought this new system was pissed. Company had to be sold and some people had to leave the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was ugly. All this happened about two years before Joel wrote his article: &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000069.html&quot; rel=&quot;nofollow&quot;&gt;Things You Should Never Do, Part I&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-23T21:25:33.363" />
  <row Id="6843" PostTypeId="2" ParentId="6633" CreationDate="2010-09-23T21:25:46.297" Score="0" ViewCount="" Body="&lt;p&gt;This is the key: &lt;a href=&quot;http://www.codinghorror.com/blog/2010/06/the-vast-and-endless-sea.html&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/2010/06/the-vast-and-endless-sea.html&lt;/a&gt;&lt;br&gt;&#xA;The thing that business people do not understand. You have a bunch of good developers, who really get all of the intrinsic motivators you could get. You don't have to pay the whole infrastructure a commercial product comes with (an enterprise with a lot of people not needed to create the product, such as administration, lawyers, marketing, advertisement, etc.). Some projects actually generate enough income (through donations, commercial support/licences), but that's rather rare. And then there are a few projects which are basically open sourced because it makes them much cheaper to maintain, or because they couldn't be sold.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-09-23T21:25:46.297" />
  <row Id="6844" PostTypeId="2" ParentId="6827" CreationDate="2010-09-23T21:26:44.687" Score="18" ViewCount="" Body="&lt;p&gt;Years ago, I was the lead developer on a database centered application that started throwing errors. I tracked it down to the fact there were duplicate values in a database field that shouldn't have allowed them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was beating myself up about forgetting to set a unique constraint on the database when I had pushed it to production because it was just so obvious that this field needed one. I commiserated to one of my fellow developers who corrected me...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Other Developer&lt;/strong&gt;: &quot;Oh you didn't forget, there was a unique constraint on that field. I just removed it.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Me&lt;/strong&gt;: &quot;Why did you remove it?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Other Developer&lt;/strong&gt;: &quot;I did that a few weeks back. I was getting data files from the customer and they wouldn't import because the unique constraint was blocking the new data. So I removed the constraint so that I could finish importing it.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Me:&lt;/strong&gt; &quot;Did you stop to consider that maybe there was a problem if we were getting new data that overlapped with existing data and think about mentioning it to someone before importing it?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Other Developer&lt;/strong&gt;: (blank stare)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Me&lt;/strong&gt;: Facepalm.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-23T21:26:44.687" CommentCount="1" />
  <row Id="6845" PostTypeId="2" ParentId="6832" CreationDate="2010-09-23T21:27:15.147" Score="0" ViewCount="" Body="&lt;p&gt;I must confess that I don't read programming books as much as I should, not cover-to-cover anyway.  I'm too busy coding; that's the way I seem to learn the quickest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I will skim a book to try and get a gist for something that I would like to write.  Then I will attempt to write some code, and go back to the book if I can't figure it out.  For some reason that's the only way I can make it stick nowadays.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consequently, I am almost always programming with incomplete information, based on what I need to know to get the job done or the problem solved.  That sounds scarier than it actually is: typically I will do several hours of research on a particular problem to make sure my approach is sound.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I just got an IPad primarily to put computer books on, so maybe that will help me become more well-rounded in this area.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-09-23T21:27:15.147" />
  <row Id="6846" PostTypeId="2" ParentId="4711" CreationDate="2010-09-23T21:28:46.787" Score="7" ViewCount="" Body="&lt;p&gt;When I consider the things written by the top people in the computer land, some things stand out:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Drive for new knowledge in everything&lt;/li&gt;&#xA;&lt;li&gt;Hunger to understand the &lt;em&gt;entire&lt;/em&gt; stack&lt;/li&gt;&#xA;&lt;li&gt;Ability to focus for long periods of time&lt;/li&gt;&#xA;&lt;li&gt;Ability to bring different threads of knowledge together&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;They aren't &lt;em&gt;geeks&lt;/em&gt; in terms of the stereotypical basement-dwelling dweebs. They have a tremendous variety of interests and engage with them. Usually they can get tons of work done. They are a mix of creative and logical. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I doubt that those characteristics are unique to the top people in computing; I suspect those characteristics are common to the top people in any field.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-23T21:28:46.787" CommentCount="2" />
  <row Id="6847" PostTypeId="1" CreationDate="2010-09-23T21:30:24.643" Score="30" ViewCount="3330" Body="&lt;p&gt;As an opposite of &lt;a href=&quot;http://programmers.stackexchange.com/questions/2846/which-programming-language-do-you-really-hate&quot;&gt;Which programming language do you really hate?&lt;/a&gt;, whats your favorite programming language to work with? What is the one programming language that you get somewhat excited for if a new project comes up that uses it? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before you say &quot;The best language for the task&quot;, thats not what I meant. We all like a language, this is simply asking for that. This is not about what task it would be used for&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I &lt;a href=&quot;http://programmers.stackexchange.com/questions/6063/what-is-you-language-shop-choice&quot;&gt;can't believe&lt;/a&gt; this &lt;a href=&quot;http://programmers.stackexchange.com/search?q=favorite+language&quot;&gt;hasn't been&lt;/a&gt; &lt;a href=&quot;http://www.google.com/search?q=site%3aprogrammers.stackexchange.com+favorite+language&amp;amp;hl=en&amp;amp;client=firefox-a&amp;amp;hs=ERr&amp;amp;rls=org.mozilla%3aen-US%3aofficial&amp;amp;prmd=iv&amp;amp;ei=ezKZTJSJCMX6lwfey8Rv&amp;amp;start=0&amp;amp;sa=N&quot; rel=&quot;nofollow&quot;&gt;asked before&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-24T10:49:42.290" LastActivityDate="2010-12-05T11:31:30.203" CommunityOwnedDate="2010-09-24T02:42:27.103" ClosedDate="2010-12-28T14:35:56.463" Title="What’s your favorite programming language?" Tags="&lt;programming-languages&gt;&lt;favorite&gt;" AnswerCount="44" CommentCount="12" FavoriteCount="10" />
  <row Id="6848" PostTypeId="2" ParentId="2331" CreationDate="2010-09-23T21:31:25.163" Score="5" ViewCount="" Body="&lt;p&gt;&lt;code&gt;PLEASE&lt;/code&gt; in INTERCAL. Don't use it enough, it complains. Use it too much, it complains.&lt;/p&gt;&#xA;" OwnerUserId="912" LastActivityDate="2010-09-23T21:31:25.163" CommentCount="5" />
  <row Id="6849" PostTypeId="2" ParentId="6832" CreationDate="2010-09-23T21:32:05.733" Score="0" ViewCount="" Body="&lt;p&gt;I would still like to pick up a book to learn the basics of a language. This way I can look at it and get an idea of what I'm doing any time of the day/week and not have to worry about a laptop. Once I've read the book, then I'll start learning with code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Theory, then practice.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-09-23T21:32:05.733" />
  <row Id="6850" PostTypeId="2" ParentId="6847" CreationDate="2010-09-23T21:33:14.693" Score="64" ViewCount="" Body="&lt;h2&gt;C#&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I have enjoyed programming since I was little, but I genuinely believe that ever since I know C#, it has become even more fun, and going back to anything inferior now would be painful.&lt;/p&gt;&#xA;" OwnerUserId="147" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-11-19T19:32:47.813" LastActivityDate="2010-11-19T19:32:47.813" CommunityOwnedDate="2010-09-27T21:57:05.800" CommentCount="36" />
  <row Id="6851" PostTypeId="2" ParentId="6847" CreationDate="2010-09-23T21:35:16.750" Score="49" ViewCount="" Body="&lt;h2&gt;Delphi&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;It's the standard, imperative, object-oriented paradigm that most coders are familiar with, but it gets all the little details &lt;em&gt;right&lt;/em&gt; that the C family always gets wrong.  Plus the more recent versions have started to add support for mixing in functional programming concepts, without running into the ugly abstraction inversions that typically come with functional languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/1111537/why-do-you-use-delphi&quot;&gt;For all these reasons too.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="935" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2010-10-06T15:10:44.267" LastActivityDate="2010-10-06T15:10:44.267" CommunityOwnedDate="2010-09-27T21:57:05.800" CommentCount="14" />
  <row Id="6852" PostTypeId="2" ParentId="6847" CreationDate="2010-09-23T21:36:18.323" Score="71" ViewCount="" Body="&lt;h2&gt;Python&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;A great scripting and prototyping language.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-23T21:36:18.323" CommunityOwnedDate="2010-09-27T21:57:05.800" CommentCount="8" />
  <row Id="6853" PostTypeId="2" ParentId="6832" CreationDate="2010-09-23T21:37:14.517" Score="3" ViewCount="" Body="&lt;p&gt;Well, I can't speak to other programmers really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I try to read &lt;strong&gt;high-quality&lt;/strong&gt; computer books.&#xA;Currently I'm working on a read-through of Mythical Man-Month.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My next book is probably either Russell/Norvig AI book or McConnell's Software Estimation. In the not-to-distant future, Seibel's Practical Common Lisp looms.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-23T21:37:14.517" CommentCount="2" />
  <row Id="6854" PostTypeId="2" ParentId="6832" CreationDate="2010-09-23T21:38:01.097" Score="6" ViewCount="" Body="&lt;p&gt;I can't stop growing my Amazon wishlist. The most recent book I've been working through is &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0132350882&quot; rel=&quot;nofollow&quot;&gt;Clean Code by Robert C. Martin&lt;/a&gt; (Uncle Bob). Recently a bunch of programmers in my area even formed a book club, so that we can learn best practices together and exchange our experiences. I don't think I'd be the same programmer if I did not read books on the programming craft. There's a great wealth of material out there and it is nice when somebody condenses it for you and gives you a starting point before you go experimenting on your own.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-09-23T21:38:01.097" CommentCount="1" />
  <row Id="6855" PostTypeId="2" ParentId="6847" CreationDate="2010-09-23T21:38:29.507" Score="6" ViewCount="" Body="&lt;h2&gt;Go&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;For systems programming. It's especially good for concurrent software system.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-23T21:38:29.507" CommunityOwnedDate="2010-09-27T21:57:05.800" />
  <row Id="6856" PostTypeId="2" ParentId="6847" CreationDate="2010-09-23T21:38:31.610" Score="44" ViewCount="" Body="&lt;h1&gt;C++&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;The most flexible language for multiple abstraction levels ranging from bit-level drivers to large-scale software systems.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I am enjoying watching the votes go up and down here.&lt;/p&gt;&#xA;" OwnerUserId="148" LastEditorUserId="148" LastEditorDisplayName="" LastEditDate="2010-09-23T22:48:04.087" LastActivityDate="2010-09-23T22:48:04.087" CommunityOwnedDate="2010-09-27T21:57:05.800" CommentCount="16" />
  <row Id="6857" PostTypeId="2" ParentId="6847" CreationDate="2010-09-23T21:40:17.853" Score="27" ViewCount="" Body="&lt;h2&gt;Lisp&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The classic language family for handling the most complex abstractions we know of. Most influential language for modern dynamic languages.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-23T21:40:17.853" CommunityOwnedDate="2010-09-27T21:57:05.800" CommentCount="5" />
  <row Id="6858" PostTypeId="2" ParentId="6832" CreationDate="2010-09-23T21:42:03.617" Score="-1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;(Wow, 5 upvotes and 5 downvotes — this opinion seems to be more controversial than I imagined!)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don’t read books such as &lt;em&gt;Code Complete&lt;/em&gt; or similar, nor do I feel that I “should”. What does that mean, anyway? What happens if I don’t?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of all, I don’t think such books make me a better programmer. They might work for other people, but not for me. The factual information they contain is not very detailed or technical, so I already know the vast majority of it. The rest is opinions that I may or may not agree with, but which I certainly won’t slavishly adopt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only programming-related literature I’ve actually found interesting to read are &lt;em&gt;purely technical&lt;/em&gt; documents with &lt;em&gt;an absolute minimum of subjectivity&lt;/em&gt;. My favourites so far are the C# language specification 4.0 and the Unicode standard 5.0. Other people find this a very dry and boring read, but I find that it engages my mind, and it potentially provides information that I didn’t already know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update 2010-Oct-07:&lt;/strong&gt; I just had &lt;em&gt;The Pragmatic Programmer&lt;/em&gt; pointed out to me, so I looked at the first few pages on Amazon. In the section “Who should read this book?” it says: “Perhaps you feel frustrated that you don’t seem to be achieving your potential. Perhaps you look at colleagues who seem to be using tools to make themselves more productive than you.” Uhm, no. None of that applies to me. I am frustrated because my colleagues are much &lt;em&gt;less&lt;/em&gt; productive than me (and they don’t care). I feel that I’m achieving my potential (what little of it I have, anyway). So yeah. No point in reading this book. Just a case in point.&lt;/p&gt;&#xA;" OwnerUserId="147" LastEditorUserId="147" LastEditorDisplayName="" LastEditDate="2010-10-10T22:52:13.030" LastActivityDate="2010-10-10T22:52:13.030" CommentCount="13" />
  <row Id="6859" PostTypeId="2" ParentId="6832" CreationDate="2010-09-23T21:49:57.520" Score="4" ViewCount="" Body="&lt;p&gt;I assume you're talking about books on the practice of programming and software development rather than on specific technologies...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I tend to avoid these books because so few of them have anything useful to say. For every pair of pragmatic programmers, there's a hoard of authors pushing their personal methodologies / prejudices / grand unified theories... and while it can be great fun to listen to them argue in a podcast, reading their books is only somewhat more entertaining than reading their shopping lists... and probably less useful. You'll get a lot of the same advice on forums and... whatever this place is... with the added advantage that disagreements get argued out between people who actually believe them rather than between the author and his strawmen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The meat in Code Complete, Mythical Man-Month, etc. are observations that most experienced readers are at least subconsciously familiar with already. This makes them most useful for reinforcing assertions, and teaching &lt;em&gt;intermediate&lt;/em&gt; programmers.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-23T21:49:57.520" CommentCount="2" />
  <row Id="6860" PostTypeId="2" ParentId="6847" CreationDate="2010-09-23T21:55:55.577" Score="24" ViewCount="" Body="&lt;h1&gt;Ruby (1.9)&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I'm just starting to learn it, but it is the most interesting language I have ever worked with.  (In the past, I have used FORTRAN, SNOBOL4, PL/I, C, Lisp, Pascal, C++, Perl, PHP, Java, Delphi, JavaScript and C# in pretty much that order.)&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-09-27T15:52:22.460" LastActivityDate="2010-09-27T15:52:22.460" CommunityOwnedDate="2010-09-27T21:57:05.800" CommentCount="10" />
  <row Id="6861" PostTypeId="2" ParentId="6832" CreationDate="2010-09-23T21:56:54.873" Score="0" ViewCount="" Body="&lt;p&gt;I got a new Kindle (Wifi+3G) last week and I love it, I can't stop reading. I've bought several technical ebooks from both Amazon and other publishers, and am plowing through them at a heck of a rate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Physical books now seem terribly old-fashioned to me now. I didn't quite expect that so soon.&lt;/p&gt;&#xA;" OwnerUserId="348" LastActivityDate="2010-09-23T21:56:54.873" CommentCount="3" />
  <row Id="6862" PostTypeId="2" ParentId="6827" CreationDate="2010-09-23T21:59:18.223" Score="7" ViewCount="" Body="&lt;p&gt;Using Visual Sourcesafe&lt;/p&gt;&#xA;" OwnerUserId="5" LastActivityDate="2010-09-23T21:59:18.223" CommentCount="1" />
  <row Id="6863" PostTypeId="2" ParentId="6827" CreationDate="2010-09-23T22:01:20.140" Score="0" ViewCount="" Body="&lt;p&gt;What I saw....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back in the 1980s, there was a company called Prime that produced computers running a version of the Pick database and BASIC.  The user department of the place I was working at the time that bought one was absolutely convinced that this would save them oodles of money, that they'd get the processing and results they wanted with one business analyst at one-quarter time.  It wasn't long at all before there were four full-time programmer analysts and a backlog of work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Big mistake in estimating what the technology would do for them.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-23T22:01:20.140" CommentCount="1" />
  <row Id="6865" PostTypeId="2" ParentId="6847" CreationDate="2010-09-23T22:01:46.060" Score="1" ViewCount="" Body="&lt;h1&gt;7Basic&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;7Basic is a cross-platform, strongly-typed, object-oriented language. It's eventual goal is to be able to compile code into native Win32 PE and ELF executables.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://launchpad.net/7basic&quot; rel=&quot;nofollow&quot;&gt;More details.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="231" LastActivityDate="2010-09-23T22:01:46.060" CommunityOwnedDate="2010-09-27T21:57:05.800" />
  <row Id="6866" PostTypeId="2" ParentId="6834" CreationDate="2010-09-23T22:02:47.907" Score="0" ViewCount="" Body="&lt;p&gt;moving the Program Counter to another line and continuing to run.&lt;/p&gt;&#xA;" OwnerUserId="3468" LastEditorUserId="3468" LastEditorDisplayName="" LastEditDate="2010-10-04T14:58:51.853" LastActivityDate="2010-10-04T14:58:51.853" CommentCount="5" />
  <row Id="6867" PostTypeId="2" ParentId="6847" CreationDate="2010-09-23T22:02:49.723" Score="12" ViewCount="" Body="&lt;h2&gt;Perl&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The classic Unix sysadmin tool. Works great. Has the greatest potential for compiling correctly when your cat sits on the keyboard of any known language besides J.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-23T22:02:49.723" CommunityOwnedDate="2010-09-27T21:57:05.800" CommentCount="5" />
  <row Id="6868" PostTypeId="2" ParentId="6827" CreationDate="2010-09-23T22:03:37.407" Score="3" ViewCount="" Body="&lt;p&gt;Not sure if this counts as a &lt;em&gt;technology&lt;/em&gt; decision, but I was responsible for a CMS-like document-managing website written in PHP for four years. Throughout these years, I attempted multiple times to get people (managers, users, feature-requestors) to perhaps, possibly, like, &lt;em&gt;maybe&lt;/em&gt;, consider the possibility of sitting together and thinking about the requirements and the future direction of the thing. It never happened. It was always “add this feature”, “add that feature”, and everyone was blissfully unaware of all the different ways in which everyone &lt;em&gt;else&lt;/em&gt; used the website. By the time I left, it became a huge mess of interconnected but unrelated features, and I was the only one in the entire company who knew every feature. Now, nobody does. Mwahaha.&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-09-23T22:03:37.407" CommentCount="1" />
  <row Id="6869" PostTypeId="2" ParentId="237" CreationDate="2010-09-23T22:03:52.990" Score="3" ViewCount="" Body="&lt;p&gt;I liked assembla back when private project accounts were allowed. Since your open sourced check them out. I highly recommend them. Otherwise try &lt;a href=&quot;http://code.google.com/projecthosting/&quot; rel=&quot;nofollow&quot;&gt;google code&lt;/a&gt; or codeplex. Github is good but git is a major hassle to get up and running and i found problems with regular use as well (maybe its fixed now but i tried 6mo ago which is fairly recent)&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-23T22:03:52.990" CommentCount="1" />
  <row Id="6870" PostTypeId="2" ParentId="6754" CreationDate="2010-09-23T22:04:57.607" Score="0" ViewCount="" Body="&lt;p&gt;Ya.  He has already decided to be a programmer, so I help him learn in whatever direction he wants to go.&lt;/p&gt;&#xA;" OwnerUserId="3468" LastActivityDate="2010-09-23T22:04:57.607" CommunityOwnedDate="2011-01-02T21:42:15.923" />
  <row Id="6871" PostTypeId="2" ParentId="6827" CreationDate="2010-09-23T22:06:20.900" Score="1" ViewCount="" Body="&lt;p&gt;Adopting an external library (in this case being &lt;a href=&quot;http://spring-rich-c.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Spring RCP&lt;/a&gt;) before it's first release version, based on a SVN snapshot. It's pretty much guaranteed that the project will end up more or less dead and you will find yourself tied to the corpse. Well, in our case it could have been worse. Still a big risk. &lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-23T22:06:20.900" CommentCount="1" />
  <row Id="6872" PostTypeId="2" ParentId="6847" CreationDate="2010-09-23T22:11:37.533" Score="5" ViewCount="" Body="&lt;h2&gt;Objective-C&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Because of the categories, dynamic typing and protocols. Inheritance isn't everything OOP is about!&lt;/p&gt;&#xA;" OwnerUserId="2353" LastActivityDate="2010-09-23T22:11:37.533" CommunityOwnedDate="2010-09-27T21:57:05.800" CommentCount="4" />
  <row Id="6873" PostTypeId="2" ParentId="6834" CreationDate="2010-09-23T22:13:14.910" Score="5" ViewCount="" Body="&lt;p&gt;The most impressive programming environment I have ever heard of is the Genera operating system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could click on any widget in the windowing system and obtain a full readout of source code &amp;amp; documentation of the item. Being a dynamic programming language (Lisp), you could edit the widget's source on the fly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ZMACS from the Lisp Machine world is still said to be a better editor than Emacs, which is an editor environment without peer.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-23T22:13:14.910" CommentCount="4" />
  <row Id="6874" PostTypeId="2" ParentId="6834" CreationDate="2010-09-23T22:22:25.260" Score="6" ViewCount="" Body="&lt;p&gt;Visually showing the structure of the program (programs/functions/routines/...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/7fuOz.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-23T22:22:25.260" CommentCount="6" />
  <row Id="6875" PostTypeId="2" ParentId="6825" CreationDate="2010-09-23T22:31:15.200" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.cl1p.net/&quot; rel=&quot;nofollow&quot;&gt;http://www.cl1p.net/&lt;/a&gt; and &lt;a href=&quot;http://paste.pocoo.org/&quot; rel=&quot;nofollow&quot;&gt;http://paste.pocoo.org/&lt;/a&gt; are the two I use (the nice thing about pocoo is that there is a &lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1965&quot; rel=&quot;nofollow&quot;&gt;Vim plugin&lt;/a&gt; which enables you to paste to pocoo directly)&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-23T22:31:15.200" CommunityOwnedDate="2010-09-23T22:31:15.200" />
  <row Id="6876" PostTypeId="2" ParentId="6847" CreationDate="2010-09-23T22:34:10.493" Score="2" ViewCount="" Body="&lt;h1&gt;Make&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;(The language of Linux Makefiles)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the most widespread somewhat declarative language today.  Coupled with standard Linux console utils, it is capable of integrating several components into one complex system, with just a moderate need to write a lot of accompanying cruft.&lt;/p&gt;&#xA;" OwnerUserId="34" LastEditorUserId="34" LastEditorDisplayName="" LastEditDate="2010-10-04T12:21:18.537" LastActivityDate="2010-10-04T12:21:18.537" CommunityOwnedDate="2010-09-27T21:57:05.800" />
  <row Id="6878" PostTypeId="2" ParentId="6847" CreationDate="2010-09-23T22:37:13.777" Score="4" ViewCount="" Body="&lt;h1&gt;MATLAB&lt;/h1&gt; &#xA;&#xA;&lt;p&gt;Enables me to think of what should I do, instead of how should I do it. Has a bunchload of functions so I pretty much don't have to write anything common, just expand on the already defined ones. And produces beautiful plots, which are the second most important thing in my line of work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from that, Fortran. And I was always fond of Perl - don't ask why; I just like the simplicity of it.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-23T22:37:13.777" CommunityOwnedDate="2010-09-27T21:57:05.800" CommentCount="5" />
  <row Id="6879" PostTypeId="2" ParentId="6790" CreationDate="2010-09-23T22:37:29.487" Score="0" ViewCount="" Body="&lt;p&gt;Don't worry about a low GPA.  That can only count against you if the interviewers find out about it, and most of the time they don't care either way.  I don't even list mine on my resume--not because it was low, but because I find it irrelevant--and I've never had any prospective employer ask about it anyway, so apparently they find it irrelevant too.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-23T22:37:29.487" CommentCount="1" />
  <row Id="6880" PostTypeId="2" ParentId="6754" CreationDate="2010-09-23T22:39:36.063" Score="1" ViewCount="" Body="&lt;p&gt;I have two daughters. The younger is just a few weeks old, so it's too early to plan her future. The older one is almost 3 years old and starts to show quite good skills in puzzles and memory games. A lot can change in following years, but I think she won't have problems with mathematics and logic.&#xA;If she shows interest in programming, I will support her.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P. S. I like the idea to have an employee who works for candy :-))&lt;/p&gt;&#xA;" OwnerUserId="3471" LastActivityDate="2010-09-23T22:39:36.063" CommunityOwnedDate="2011-01-02T21:42:15.923" CommentCount="2" />
  <row Id="6882" PostTypeId="2" ParentId="2331" CreationDate="2010-09-23T22:53:10.130" Score="6" ViewCount="" Body="&lt;h2&gt;&quot;Failing silently&quot; in Flash Player as default behavior&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Ok, not really a feature of the language itself but still pretty closely related.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suddenly your Flash/Flex application stops working and nobody can give you the slightest hint what the f* has happened. No error message, no stacktrace, no nothing. It's just that suddenly the screen transition doesn't happen (or happens in a completely wrong way), or buttons don't react to clicks any longer, or comboboxes are empty instead of being populated with some entries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That &quot;feature&quot; alone is responsible for several &lt;a href=&quot;http://stackoverflow.com/questions/2349378/new-programming-jargon-you-coined/2353466#2353466&quot;&gt;shrug reports&lt;/a&gt; and a whole bunch of gray hair I've been getting. -.- While popping up some cryptic message in the user's face isn't desirable either, it can at least help the developer getting the problem fixed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But Flash Player leaves you stabbing around in the dark, relying on the user's description (while the problem may actually originate from a completely different location in the code that doesn't have anything to do with what the user was doing). Only if you use the Debug Player you actually get the popup window with an error message and a stacktrace.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it can be quite interesting to watch flash embedded movies on certain news sites and get repeated messages about Null references from the used embedded player SWF. :D&lt;/p&gt;&#xA;" OwnerUserId="3453" LastActivityDate="2010-09-23T22:53:10.130" CommentCount="2" />
  <row Id="6883" PostTypeId="2" ParentId="6829" CreationDate="2010-09-23T22:55:01.670" Score="1" ViewCount="" Body="&lt;p&gt;Start with something like &lt;a href=&quot;http://www.scitools.com/index.php&quot; rel=&quot;nofollow&quot;&gt;SciTools Understand&lt;/a&gt; to learn about how the program is structured. After that go one by one function/routine/class whatever, and document locally how it does, what it does. Source control while doing this is a must, since things tend to get messy - but that's the point of it. You're learning about it as you go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With enough effort, pieces will start to fall in their places.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-23T22:55:01.670" CommentCount="1" />
  <row Id="6884" PostTypeId="1" AcceptedAnswerId="6894" CreationDate="2010-09-23T22:56:02.527" Score="15" ViewCount="233" Body="&lt;p&gt;I'm sure that many of you have encountered a bad client. I'm also sure you took some measures to prevent such encounters in the future. What is the most influential characteristic of a client that warns you to walk away?&lt;/p&gt;&#xA;" OwnerUserId="3471" LastActivityDate="2010-10-19T23:28:12.027" Title="How to recognize a bad client before you start to work for him?" Tags="&lt;experience&gt;&lt;project-management&gt;" AnswerCount="2" CommentCount="4" FavoriteCount="3" />
  <row Id="6885" PostTypeId="2" ParentId="6847" CreationDate="2010-09-23T22:59:05.793" Score="3" ViewCount="" Body="&lt;h2&gt;C# and Python&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;(Hear me out)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It totally depends on what I'm doing. For quick and dirty sites, Django or Google App Engine (Python) are both super quick to develop in and deploy. Python is extremely easy to learn and develop with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I need to build something a little more robust, I go with C#. With compile-time checking and the ability to more easily build in concepts like IoC and unit tests (although they are obviously available in other languages as well), it just feels more solid. C# also has the concept of Interfaces which Python doesn't, which makes unit testing (for me) easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FWIW, neither C# nor Python have really amazing communities like Ruby has managed to build. They're both mature and reliable languages, but they could stand to learn something from the Ruby community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line - it doesn't matter. Use whatever gets the job done the best!&lt;/p&gt;&#xA;" OwnerUserId="731" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-23T23:06:15.353" LastActivityDate="2010-09-23T23:06:15.353" CommunityOwnedDate="2010-09-27T21:57:05.800" />
  <row Id="6887" PostTypeId="1" AcceptedAnswerId="6898" CreationDate="2010-09-23T23:14:03.750" Score="11" ViewCount="405" Body="&lt;p&gt;I graduated in June from Ohio State with a B.S. in Computer Science and Engineering and I'm frustrated with figuring out what to look for in a job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't had much help from Engineering Career Services. I've had a couple appointments at the school but they've mostly only helped me with mock interviews, going over my resume, etc. The problem is that I haven't gotten any C.S. specific advice. This is why I come to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So far, my experience has been that places want only to hire for Senior positions. This is unfortunate, as I'm fresh out of school. I don't have 5+ years work experience, and I can't get it until I get a job. It's the same old familiar catch-22. Of course, the answer to this frustration is that it's hard for everyone right now, and you just have to try that much harder to find something, or have an internship on your resume. I don't have one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another problem is that I want to be able to see my fiance, and my family, in Ohio. Unfortunately, this puts me in the position of trying to find a Software Engineering job in a market that seems to only want people to take care of their RDB needs. I don't mind databases, but I want more of a challenge, and to do something a little more interesting than simply writing an inventory system, or working with data storage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't want to get stuck in a position where I come out with a few years of experience working with Oracle and Visual Basic and can't move on to the job I really want, developing at least semi-interesting software in my trusty C/C++, C#, or Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My dream since I was 5 years old was to be a game developer. I understand that you have to be realistic with these things, though. Let's face it, the game industry is saturated in every way possible. Most studios have the talent they need and the ones that don't, in my experience, are trying to develop the next low budget, multi-million dollar yielding game for the iPhone. Regardless of the ridiculous deadlines and overtime, I still took every class that I could that would prepare me for making games.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't mind a compromise in this area. I'm realistic. I know you have to take what you can get. I'm a huge geek, so I can be happy in a different programming job. Writing code and designing software is all I've wanted to do for the past 6 years. I'd even be happy in web development. (Gasp!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I could work anywhere and continue to enjoy working on little projects at home. But, I went to school so I wouldn't have to do it at home without getting paid anymore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, I don't want to write a huge wall of text. I suppose I'll just put my main questions here:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What kind of job title should I keep an eye out for? I really have no idea. Software Engineer? Software Developer? Programmer?&lt;/li&gt;&#xA;&lt;li&gt;What city should I look in?&lt;/li&gt;&#xA;&lt;li&gt;Am I being too picky?&lt;/li&gt;&#xA;&lt;li&gt;I've been using indeed.com for my search. Is this the best place?  Edit:  This isn't the only site I've been using.  It's just an aggregator.  I suppose I should have changed this to:  &quot;Are there any other sites you would suggest?&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;TL;DR: I want to be an employed programmer. I'm just really lost on where I would fit. I understand it's a pretty cliche post, but my frustration is real.&lt;/p&gt;&#xA;" OwnerUserId="3475" LastEditorUserId="3475" LastEditorDisplayName="" LastEditDate="2010-09-24T03:53:42.917" LastActivityDate="2010-09-24T03:53:42.917" Title="I graduated with a degree in C.S. and now I'm lost. I need help." Tags="&lt;jobs&gt;&lt;career-advice&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="6" />
  <row Id="6888" PostTypeId="2" ParentId="724" CreationDate="2010-09-23T23:19:39.557" Score="3" ViewCount="" Body="&lt;h2&gt;fancy python argument syntaxes&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I'm not sure how unique this is, but in python you can do cool stuff like have keyword pairs automatically made into a dictionary and back. Same with lists:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):&#xA;    print &quot;-- This parrot wouldn't&quot;, action,&#xA;    print &quot;if you put&quot;, voltage, &quot;volts through it.&quot;&#xA;    print &quot;-- Lovely plumage, the&quot;, type&#xA;    print &quot;-- It's&quot;, state, &quot;!&quot;&#xA;&#xA;&#xA;parrot(1000)&#xA;parrot(action = 'VOOOOOM', voltage = 1000000)&#xA;parrot('a thousand', state = 'pushing up the daisies')&#xA;parrot('a million', 'bereft of life', 'jump')&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://docs.python.org/tutorial/controlflow.html#keyword-arguments&quot; rel=&quot;nofollow&quot;&gt;python docs (scroll down for more argument pasing stuff)&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1220" LastActivityDate="2010-09-23T23:19:39.557" CommentCount="1" />
  <row Id="6889" PostTypeId="2" ParentId="6887" CreationDate="2010-09-23T23:23:00.253" Score="2" ViewCount="" Body="&lt;p&gt;I graduated in May with my Bachelor's in C.S. as well, and I hit a few of the same problems it seems like you're experiencing (initially, anyway). The important thing was just to be persistent and keep trying. I applied for about 45 or 50 positions in various locations and various fields and landed exactly one interview, but it was all it took for me to get hired (I started working in June). So tip number 1 is: don't get dejected. It's rough, and the difficult part in the current economic climate is that people who were previously laid off from mid- to high-level positions are now trying to re-enter the workforce. It's stiff competition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will also note that I did have three internships on my resume straight out of college. Not having any does put you at a bit of a disadvantage, but there are other things you can try to take advantage of. Highlight your grades if they were really good. Point out any leadership positions or clubs that are relevant to C.S. Research projects are another good bullet point if you have one, just don't expect to sell yourself completely with it unless it's particularly impressive. Don't over-fluff it, but make sure that you aren't selling yourself short either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another option these days is independent development, with the particularly big market being mobile devices. Learn how to write software for a mobile platform (Android, iOS, Blackberry/J2ME, etc) and try making an app while you look for work. If nothing else, you'll learn something, and you can put a new skill on your resume. If you're not interested in that angle, there's also plenty of open source software that you can contribute to. Even if you can only contribute small patches, it's still real-world experience you can point to during an interview. Plus it will help to show potential employers that you're able to read documentation and pick up a codebase on your own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't forget to network as much as possible. Career counseling centers and whatnot can be good, but you might be even better off talking to your professors (particularly if you knew them well). Not only will they be able to give you advice, but they almost certainly know people in industry who might be able to lend a hand. If you can think of any professors to talk to, think about friends, family, neighbors, etc. It may seem awkward, but knowing someone that can get you in the door really &lt;em&gt;does&lt;/em&gt; make a big difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for cities, I think this is largely preference. There are software engineering jobs all over the place, though some have much higher concentrations. Off the top of my head, the big ones include: Raleigh/Durham, NC (where I live), Northern VA and the D.C. area, and California. There are lots of big-name tech companies in these areas. Raleigh/Durham includes IBM, Red Hat, SAS and Nvidia, among others. In any case, it's up to you in the end. You can be picky and go a little while unemployed, but at some point you might decide you just want to suck it up and take a job that isn't &quot;ideal.&quot; That's really a decision that you just have to make for yourself when the time comes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hopefully some of that helps. Sorry for the verbosity!&lt;/p&gt;&#xA;" OwnerUserId="3476" LastEditorUserId="3476" LastEditorDisplayName="" LastEditDate="2010-09-23T23:45:02.830" LastActivityDate="2010-09-23T23:45:02.830" CommentCount="1" />
  <row Id="6891" PostTypeId="2" ParentId="237" CreationDate="2010-09-23T23:27:07.233" Score="8" ViewCount="" Body="&lt;p&gt;I like bitbucket. I consider Mercurial to be the best source control system out there.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-23T23:27:07.233" CommentCount="1" />
  <row Id="6892" PostTypeId="2" ParentId="6887" CreationDate="2010-09-23T23:29:13.580" Score="1" ViewCount="" Body="&lt;p&gt;Your problem might be very distant to me, but I'll try...&#xA;My opinion is that you have to start working. Not anything, but don't be too picky. Why? First of all, working gives you unique experience of... Working! After some time you will understand what I'm talking about. While working keep your eyes and ears open to opportunities you are interested in and (this is very important) keep learning the methods and technologies that are needed for your dream job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might even start your own dream job after some time.&lt;/p&gt;&#xA;" OwnerUserId="3471" LastActivityDate="2010-09-23T23:29:13.580" CommentCount="1" />
  <row Id="6893" PostTypeId="2" ParentId="237" CreationDate="2010-09-23T23:48:10.250" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;CodePlex&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For .NET projects, it's hard to beat CodePlex.  It's Microsoft sponsored and hosts the code using Team Foundation Server (or optionally, Mercurial), which if you're using Visual Studio 2010, is pretty awesome.  Also, bugs that are submitted via the CodePlex site it creates for your project are automatically added to TFS.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-23T23:48:10.250" CommentCount="4" />
  <row Id="6894" PostTypeId="2" ParentId="6884" CreationDate="2010-09-23T23:49:50.107" Score="8" ViewCount="" Body="&lt;p&gt;Some time ago I read &lt;a href=&quot;http://freelanceswitch.com/clients/6-warning-signs-of-a-problem-client/&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; and found it a good 'bad client smell' list.&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-09-23T23:49:50.107" CommentCount="2" />
  <row Id="6895" PostTypeId="2" ParentId="6847" CreationDate="2010-09-23T23:53:22.203" Score="34" ViewCount="" Body="&lt;h1&gt;Java&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;anyone?&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-09-23T23:53:22.203" CommunityOwnedDate="2010-09-27T21:57:05.800" CommentCount="9" />
  <row Id="6897" PostTypeId="2" ParentId="6887" CreationDate="2010-09-24T00:00:40.507" Score="3" ViewCount="" Body="&lt;p&gt;My advice from personal experience: use the &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;Joel Test&lt;/a&gt; on any companies you apply at.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I didn't and now I'm more or less stuck (for the moment) at a company where&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;each developer has his own component to work on which results in 4 different single-points-of-failure where each single one can bring down the whole project (instead of actually doing some organized teamwork)&lt;/li&gt;&#xA;&lt;li&gt;unit tests are seens as useless&lt;/li&gt;&#xA;&lt;li&gt;documenting and commenting your code is considered a waste of time&lt;/li&gt;&#xA;&lt;li&gt;development process and project management are barely existent (the project schedule is updated at most once per month)&lt;/li&gt;&#xA;&lt;li&gt;specifications are incomplete and sometimes even faulty&lt;/li&gt;&#xA;&lt;li&gt;the build and deployment process involves several steps that can't be automated (at least I guess so because even after working for that company for almost 2 years I still haven't been shown the steps required to do deployment)&lt;/li&gt;&#xA;&lt;li&gt;the developers were told to do bug tracking with Excel and Outlook (in the end we managed to &quot;convince&quot; the management of the advantages of using a dedicated bugtracker)&lt;/li&gt;&#xA;&lt;li&gt;the only important thing is how fast you can deliver visible results - code quality be damned&lt;/li&gt;&#xA;&lt;li&gt;the CEO tells us again and again how dependent the developers and testers were, but every single time the developers and testers decided something on their own he stepped in and overruled that decision, enforcing a much worse alternative&lt;/li&gt;&#xA;&lt;li&gt;my attempts of introducing a modern development process (something similar to FDD) and at least moderate project management (stand-up meetings) were repeatedly shot down because my idea of a good development process couldn't be fully visualized on two PowerPoint slides (I'm not kidding you!)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Don't make the same mistake. Ask critical questions. Ask to see the working space of a developer. Ask to take a look at the development and build/deployment processes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But not only that, also consider what else the company has to offer. Do they allow flexible work time? Are they offering social programs and activities (e.g. doing sports together, or having a grill party once a month)? Do they offer other benefits, e.g. a cellphone which you can use for private calls (if you don't abuse that privilege, of course) or additional insurance benefits?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think you have to &quot;take what you can get&quot;. If you don't pick your choice carefully you'll regret it - and even worse, waste much of your time.&lt;/p&gt;&#xA;" OwnerUserId="3453" LastActivityDate="2010-09-24T00:00:40.507" CommentCount="3" />
  <row Id="6898" PostTypeId="2" ParentId="6887" CreationDate="2010-09-24T00:31:07.557" Score="5" ViewCount="" Body="&lt;p&gt;I was in this situation 18 months ago (the height of the 'economic crisis'). In the end, it took me moving 3000Km to get a job - and that job didn't even pay well. Things that I learned from my wee bit of experience and the wise words I received from others:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Treat each and every application like it's the only one in existence&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tailor your resume for that very job. Don't send one out to every potential employer. If they're a Java shop, pimp your Java skills first, C#: likewise. Ditto for your cover letter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Follow-up&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Hi my name is [dtext]. I applied for the [position] a few days ago and was wondering if you had received my resume and had a chance to look it over? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've gotten phone-interviews on the spot following up (one lead to a job - in another field).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they have looked over your resume, and decided not to hire you then ask politely if there was any obvious reasons why. Most people will shoot you down, but I got &lt;em&gt;ONE&lt;/em&gt; person that turned down my resume to give me feedback. The next version of my resume using that info got me the very next job I applied for. Maybe a coincidence, maybe not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Don't worry too much about the job requirements&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I might get flamed for this, but if you think you have the skills for an 'intermediate x programmer' that requires 3-5 years of experience, even though you've got no professional experience, then apply. I don't know of anyone who hired someone because they had every single minutia of the requirements posted in the ad. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, don't apply for jobs that you won't be able to do, but consider the requirements to have a little bit of flex in them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Some things to remember&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Were you a group leader for any projects? I practically taught a friend of mine C#/XNA for our senior practicum. List it. &lt;/li&gt;&#xA;&lt;li&gt;Notable projects: I wrote an IM client/server, an XNA game, an implementation of an OS security model for projects at school. They were 4-8 month projects. I've produced production software that was less demanding in the last 18 months. List them.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Your questions&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What kind of job title should I keep an eye out for? I really have no idea. Software Engineer? Software Developer? Programmer?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you can do them, all of them.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What city should I look in?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you're willing to move, all of them. Seriously. It's not always easy to get a job farther away, but it's not impossible if you're willing to move. If the fiance isn't willing to move, then you might have a bit of trouble. I was fortunate there.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Am I being too picky?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;No.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I've been using indeed.com for my search. Is this the best place?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Is it the best? Maybe, maybe not.&#xA;Is it the worst? Probably not.&#xA;Should it be the only place you look? Definately not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look at:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Indeed&lt;/li&gt;&#xA;&lt;li&gt;Normal job sites&lt;/li&gt;&#xA;&lt;li&gt;Government job sites&lt;/li&gt;&#xA;&lt;li&gt;Company web sites that you want to work for&lt;/li&gt;&#xA;&lt;li&gt;Online classifieds&lt;/li&gt;&#xA;&lt;li&gt;Newspaper classifieds&lt;/li&gt;&#xA;&lt;li&gt;Chamber of commerce in your city&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Friends and family&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've said too much. Good luck!&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-24T00:31:07.557" CommentCount="2" />
  <row Id="6899" PostTypeId="2" ParentId="6815" CreationDate="2010-09-24T00:35:48.377" Score="3" ViewCount="" Body="&lt;p&gt;Get down and dirty in the trenches as often as possible, and admit that your directs are possibly/probably better than you (that's why they do the job).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll gain some respect for &quot;actually working&quot; (from your directs' perspectives) and you'll stay as sharp as you can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Heck, you'll hopefully/probably even learn from them.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-24T00:35:48.377" />
  <row Id="6900" PostTypeId="2" ParentId="275" CreationDate="2010-09-24T00:39:43.873" Score="0" ViewCount="" Body="&lt;p&gt;When I was a kid I tinkered on my C64, and then played with Pascal and QBASIC on my 386DX plus played with a HTML and Javascript - but I didn't want to be a programmer because it seemed too nerdy and I wanted to be rich.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So more than a few years later I was working as a business analyst and then project manager for a small company, looking after a small IT team. I quickly realised a few things&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the programmers I was working with were no better at the job than I would be, even without any experience&lt;/li&gt;&#xA;&lt;li&gt;they weren't under the sort of irrational pressure I was (being a project manager is not particularly fun)&lt;/li&gt;&#xA;&lt;li&gt;they got to design stuff and see the results immediately&lt;/li&gt;&#xA;&lt;li&gt;being paid for a concrete, transferable and generic skill (a profession) rather than the industry specific knowledge that most people have&lt;/li&gt;&#xA;&lt;li&gt;it seemed like a fun job, to boot&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Well, I quit my job and took a fairly low-paying but easy (38 hour week) job whilst I enrolled in a non-IT graduate Masters. I did that for about a year before I started applying for IT jobs, realising that real experience would be more useful, more fun and more profitable than studying.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I landed an entry level job, quickly learned what I needed to, got a few promotions, read a ton of stuff and got into everyone's face... stir gently, season to taste... here I am.&lt;/p&gt;&#xA;" OwnerUserId="2620" LastActivityDate="2010-09-24T00:39:43.873" CommunityOwnedDate="2011-02-13T14:40:48.817" />
  <row Id="6901" PostTypeId="2" ParentId="6476" CreationDate="2010-09-24T00:41:40.233" Score="3" ViewCount="" Body="&lt;p&gt;I often use GNU screen to share terminals (and terminal based editors) for pair programming and remote collaboration. I think one of the most important things that can make this go smoothly is a voice connection (phone, VoIP, etc.) with the other collaborators. Without a voice connection, you incur a lot of overhead and clunkiness as you have to IM (preferably in a separate window) at the same time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Short sharing the same terminal, each sharing a separate terminal (her read/my write, her write, my read). This allows for simultaneous use but also prevents you from working on exactly the same file.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also been using &lt;a href=&quot;http://tmux.sourceforge.net&quot; rel=&quot;nofollow&quot;&gt;tmux&lt;/a&gt; recently (a program similar to GNU screen) and while I find it better in some aspects I find other aspects less desirable.&lt;/p&gt;&#xA;" OwnerUserId="3461" LastActivityDate="2010-09-24T00:41:40.233" CommentCount="1" />
  <row Id="6902" PostTypeId="2" ParentId="6352" CreationDate="2010-09-24T01:02:09.550" Score="0" ViewCount="" Body="&lt;p&gt;Does any language ever actually disappear? I wish some would, but that's another matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with corporate ownership of any software base is they start acting like the world is their cash cow, making changes, roping everybody into upgrades, and making it impossible to stay with older versions that work just fine. To me, that's the primary value of GNU - they don't do that.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-09-24T01:02:09.550" CommentCount="4" />
  <row Id="6903" PostTypeId="2" ParentId="6591" CreationDate="2010-09-24T01:14:30.167" Score="18" ViewCount="" Body="&lt;p&gt;It all depends: what are your goals?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;**&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[Note: my background is as a programmer, but I've been making a living as a &lt;a href=&quot;http://www.amazon.com/Dori-Smith/e/B000APH4B8/&quot; rel=&quot;nofollow&quot;&gt;tech writer&lt;/a&gt;/speaker for the last 12 years. After 15 titles, dozens of magazine articles, and speaking internationally, I think I'm at least as qualified as anyone else here.]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;**&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your goal is to make money, don't bother. Really. I know a lot of people in this business, and very few make a decent hourly wage from writing. Of the ones who do make a living at it, &lt;em&gt;all&lt;/em&gt; of them write for beginners (tip: there are &lt;em&gt;always&lt;/em&gt; more beginners than  intermediate or advanced users).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However…&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;IF&lt;/strong&gt; you're currently working as a consultant &lt;strong&gt;and&lt;br&gt;&#xA;if&lt;/strong&gt; you want more consulting gigs with bigger companies at a higher price &lt;strong&gt;and&lt;br&gt;&#xA;if&lt;/strong&gt; you've been offered a book contract and/or speaking gigs&lt;br&gt;&#xA;… then go for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't think of it in terms of work with low compensation; instead, think of it as just part of the training and prep you already do in order to get those consulting jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Screw writing articles for magazines/sites that don't pay — or say you'll write for them, on the condition that they run your article without ads. If they're making money, you should be too. However, if the magazine helps you get those high-profile consulting gigs, see the advice in the previous paragraph.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;**&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Speaking gigs, though, are almost always worth it. At a minimum, you'll meet other presenters, which is how I've met some &lt;a href=&quot;http://en.wikipedia.org/wiki/Webstock#Webstock_2006&quot; rel=&quot;nofollow&quot;&gt;truly amazing people&lt;/a&gt;. Networking opportunities abound.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;**&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand…&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;IF&lt;/strong&gt; you have an amazing idea for a great book that no one else has written &lt;strong&gt;and&lt;br&gt;&#xA;if&lt;/strong&gt; you can't rest until you see that book in print&lt;br&gt;&#xA;… then go for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this case, it's about love, not money. If you can handle a life where this book doesn't exist, then don't write it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;**&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it's really all about where you want your career to go. If a book helps you get to that place, then see if works for you.&lt;/p&gt;&#xA;" OwnerUserId="99" LastEditorUserId="99" LastEditorDisplayName="" LastEditDate="2010-12-09T20:24:46.977" LastActivityDate="2010-12-09T20:24:46.977" CommentCount="4" />
  <row Id="6904" PostTypeId="2" ParentId="6827" CreationDate="2010-09-24T01:15:33.817" Score="1" ViewCount="" Body="&lt;p&gt;One example I recall involved committing to a particular Java application server early on despite the fact that it did not yet have the features required for the project, just a roadmap for when they would be implemented.  Naturally the vendor did not deliver as promptly as originally indicated, which should have been a big problem but in reality was just one of many cock-ups on the slow road to failure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most instances of this kind of problem that I have come across have involved committing to an unproven/immature technology, often because somebody influential on the technical side is a proponent of resumé-driven development.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-24T01:15:33.817" />
  <row Id="6905" PostTypeId="1" CreationDate="2010-09-24T01:24:18.800" Score="5" ViewCount="422" Body="&lt;p&gt;I've used TestNG and JUnit.  What's your favorite?  Why?  (Pros/cons).&lt;/p&gt;&#xA;" OwnerUserId="2671" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:47:35.410" LastActivityDate="2011-03-23T07:09:57.180" Title="What's the best unit test framework for Java?" Tags="&lt;java&gt;&lt;unit-testing&gt;&lt;tdd&gt;&lt;testing&gt;&lt;scala&gt;" AnswerCount="3" CommentCount="3" />
  <row Id="6906" PostTypeId="2" ParentId="6758" CreationDate="2010-09-24T01:25:23.573" Score="2" ViewCount="" Body="&lt;p&gt;&lt;sup&gt;(as the person who initially suggested moving this here, I guess I should dupe my answer…)&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a general breakdown, based on how (imo) the job market values each:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Tier One&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Caltech&lt;/li&gt;&#xA;&lt;li&gt;Stanford&lt;/li&gt;&#xA;&lt;li&gt;UC Berkeley&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Tier Two&lt;/strong&gt; (see &lt;a href=&quot;http://en.wikipedia.org/wiki/Public_Ivy&quot; rel=&quot;nofollow&quot;&gt;this list&lt;/a&gt; of &quot;Public Ivies&quot;)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;UC Davis&lt;/li&gt;&#xA;&lt;li&gt;UC Irvine&lt;/li&gt;&#xA;&lt;li&gt;UCLA&lt;/li&gt;&#xA;&lt;li&gt;UC San Diego&lt;/li&gt;&#xA;&lt;li&gt;UC Santa Barbara&lt;/li&gt;&#xA;&lt;li&gt;Harvey Mudd College&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Tier Three&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cal Poly Pomona&lt;/li&gt;&#xA;&lt;li&gt;Cal Poly San Luis Obispo&lt;/li&gt;&#xA;&lt;li&gt;UC Riverside&lt;/li&gt;&#xA;&lt;li&gt;UC Santa Cruz&lt;/li&gt;&#xA;&lt;li&gt;USC&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Tier Four&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;UC Merced&lt;/li&gt;&#xA;&lt;li&gt;Cal State Universities&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Keep in mind that if you're from out of state, you'll end up paying as much for a UC education as you would for a private school.&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-09-24T01:25:23.573" CommentCount="2" />
  <row Id="6907" PostTypeId="2" ParentId="1338" CreationDate="2010-09-24T01:29:31.827" Score="4" ViewCount="" Body="&lt;p&gt;Worst standard I've ever had to face:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;StyleCop&lt;/strong&gt; for C#&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take every pointless standard ever and put it into a tool that runs at compile time instead of in the IDE at design time.  &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//this is not a legal comment.&#xA;//  nor is this&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;// must be followed by a single space, if you are debugging, use //// to comment code.&#xA;Properties must also have 'triple slash' comments and they must read &quot;Gets or Sets xxxxx&quot; complete with a period at the end and properly capitalized.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ugh. Maybe there's a point with widely published APIs but my main beef is they surely could have built it as a plugin a la R#.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-24T01:29:31.827" CommunityOwnedDate="2010-09-24T01:29:31.827" CommentCount="3" />
  <row Id="6908" PostTypeId="1" CreationDate="2010-09-24T01:34:48.627" Score="3" ViewCount="363" Body="&lt;p&gt;What have you used?  A text editor with Subversion?  A word processor?  Something with a LaTEX plugin?  What's worked well for you?&lt;/p&gt;&#xA;" OwnerUserId="2671" LastActivityDate="2010-09-24T12:10:25.637" ClosedDate="2010-09-24T19:54:05.343" Title="What software do you recommend using to write a book?" Tags="&lt;text-editor&gt;&lt;writing&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="1" />
  <row Id="6909" PostTypeId="2" ParentId="1338" CreationDate="2010-09-24T01:40:16.717" Score="3" ViewCount="" Body="&lt;p&gt;Our method names had to be in the format 'Get/Set/Add/Delete' + name of the target object + names of all the parameters.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;GetUserById(userId);&#xA;InsertUser(user);&#xA;DeleteUser(user);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Fair enough - but the rule very strict.  Complex object types were not allowed to be abbreviated, and operations always had to list every request parameter, no matter how ridiculous:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;GetCustomerOrderDeliveryDetailsByCustomerIdAndDeliveryDateAndOrderStatus(...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;After adding in the full variable names (which weren't allowed to be shortened, either) you can imagine how long some simple method calls were.  Word wrappingly long.&lt;/p&gt;&#xA;" OwnerUserId="2620" LastActivityDate="2010-09-24T01:40:16.717" CommunityOwnedDate="2010-09-24T01:40:16.717" />
  <row Id="6910" PostTypeId="2" ParentId="6908" CreationDate="2010-09-24T01:54:26.763" Score="4" ViewCount="" Body="&lt;p&gt;One big consideration: what file format does the editor/publisher require? In my experience, it's always been MS Word, or at least MS Word-compatible.&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-09-24T01:54:26.763" CommentCount="1" />
  <row Id="6911" PostTypeId="2" ParentId="6887" CreationDate="2010-09-24T02:05:53.130" Score="2" ViewCount="" Body="&lt;p&gt;Just get the jobs you can now. The first few years in the work force really are about padding your resume. Few devs keep the same gig for more than 5 years, and 2 or 3 seems to be a huge number for most. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I've been using indeed.com for my&#xA;  search. Is this the best place?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;What? No place is the best place unless it gets you a job. If the job board is free to post on, doesn't look like a pure spam factory, and even remotely relevant, then post there. You don't know what the recruiter who will hook you up with a job will be looking at. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's something that surprises a lot of folks: Posting to a corporate web site's &quot;careers&quot; section is often the worst way to get your resume through the door. It may vary by company, but most big companies tend to let external recruiters do all the leg work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get involved in a local users' group for a language/tech you like to work in, maybe even two. That is a good way to both learn more about the language as well as meet people who might help direct you in your job search. It helped me a lot... even though I didn't get any job leads out of it, I got a lot of good exposure to what was going on in the area in addition to the plain learning I got (and practice at public speaking).&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-24T02:05:53.130" CommentCount="1" />
  <row Id="6912" PostTypeId="2" ParentId="6908" CreationDate="2010-09-24T02:13:51.983" Score="5" ViewCount="" Body="&lt;p&gt;If you have a publisher (like Springer) who &quot;works with&quot; LaTeX, you can get them to give you a style file, and then write the book in LaTeX. I won't draw on the advantages of this, since they are relatively known.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If not, you will most probably have the option to choose your own Word Processor, like Word, OpenOffice (i.e. their format), and afterwards, after you give your publisher the text, he will do the post processing (although Word now has its templates, and styles it is still far from what usually goes in the printshop), with you having some word in the design of the book (or not :-/)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're however, asking in which software to &quot;write a book&quot;, i.e., to &quot;collect text&quot; &lt;em&gt;while&lt;/em&gt; writing it, then I'd probably go with either LaTeX combined with a good editor for it, like &lt;a href=&quot;http://www.texniccenter.org/&quot; rel=&quot;nofollow&quot;&gt;TeXnicCenter&lt;/a&gt; which supports projects (several TeX files in one project to enable better organization) or with one of those treepad notepads. Alternatively, and this is also rather popular amongst my coleagues, you can use Word with a master file (google on this), and divide chapters into separate documents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of this naturally depends on the area your book covers (whether you will have a lot of equations, or lot of pictures, or will you go for some &quot;fancy design&quot; in the final stages ... and based on this, all of this approaches have their advantages and drawbacks).&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-24T02:13:51.983" />
  <row Id="6913" PostTypeId="2" ParentId="6847" CreationDate="2010-09-24T02:55:01.913" Score="11" ViewCount="" Body="&lt;h2&gt;D&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I don't use it on actual projects. Strictly on technical issues, features, syntax, semantics, etc. D is the best for me.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-24T02:55:01.913" CommunityOwnedDate="2010-09-24T02:55:01.913" CommentCount="2" />
  <row Id="6914" PostTypeId="2" ParentId="6827" CreationDate="2010-09-24T03:06:17.053" Score="1" ViewCount="" Body="&lt;p&gt;Three years ago, our BusDev department said they had to build their content mgmt system on Documentum because the Pharma companies they were trying to reach know the name and were comfortable with the technology. So we spent a lot of money to build it then shelved it 12 months later.&lt;/P&gt;&#xA;In Feb this year they announced the new system would be based on Sharepoint 2010. Want to guess why?  Because, suddenly, THIS was the name known by Pharmas and one they were comfortable with!&lt;br&gt;&#xA;We'll see what 2012 bring!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;\\uSlackr&lt;/p&gt;&#xA;" OwnerUserId="3485" LastActivityDate="2010-09-24T03:06:17.053" />
  <row Id="6915" PostTypeId="2" ParentId="6908" CreationDate="2010-09-24T03:15:27.177" Score="3" ViewCount="" Body="&lt;p&gt;I wrote my book (as well as most of my magazine articles) using Word. Most publishers insist on following a template, and most of those have word templates they'd like you to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I plan to write my next book using &lt;a href=&quot;http://www.literatureandlatte.com/scrivener.html&quot; rel=&quot;nofollow&quot;&gt;scrivener&lt;/a&gt; - especially now that a windows version is on the short term horizon - not sure if it will cause problems with a publisher (when I find one), but in my limited experience using scrivener on a Mac, it's been quite helpful.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-09-24T03:15:27.177" />
  <row Id="6916" PostTypeId="2" ParentId="6796" CreationDate="2010-09-24T03:40:34.017" Score="1" ViewCount="" Body="&lt;p&gt;I've gotta say we didn't regret going with &lt;a href=&quot;http://salesforce.com&quot; rel=&quot;nofollow&quot;&gt;Salesforce&lt;/a&gt;.  Cheap, easy, reliable, and works incredibly well.&lt;/p&gt;&#xA;" OwnerUserId="3412" LastActivityDate="2010-09-24T03:40:34.017" />
  <row Id="6917" PostTypeId="2" ParentId="6887" CreationDate="2010-09-24T03:45:14.337" Score="1" ViewCount="" Body="&lt;p&gt;I moved out of Pittsburgh for seven years - to Washington, DC - because nothing here was hiring at the end of the .com boom.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What the heck is indeed.com, and why are you only looking in one place?  Monster.com, Dice.com, craigslist would be a minimum.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're up for looking for jobs in Pittsburgh, we have an unusually large number of web developer jobs (mostly Java and C#) and a large number of robotics jobs (C++).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know the web developer gigs aren't as sexy as building the next great videogame, but without moving to a city that &lt;em&gt;does&lt;/em&gt; game development, you're probably not going to find a videogame-industry job... and Ohio (and PA!) aren't known for game dev.  You'd need to move to one coast or the other for that, most likely.&lt;/p&gt;&#xA;" OwnerUserId="3412" LastActivityDate="2010-09-24T03:45:14.337" CommentCount="1" />
  <row Id="6918" PostTypeId="2" ParentId="2331" CreationDate="2010-09-24T03:52:03.560" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.docjar.com/docs/api/sun/misc/Unsafe.html&quot; rel=&quot;nofollow&quot;&gt;sun.misc.unsafe&lt;/a&gt; is my alltime favorite; the collection of &quot;we needed this to implement things, but really, really don't think you should use it.&quot;&lt;/p&gt;&#xA;" OwnerUserId="3412" LastActivityDate="2010-09-24T03:52:03.560" CommentCount="1" />
  <row Id="6919" PostTypeId="2" ParentId="6352" CreationDate="2010-09-24T03:54:08.550" Score="2" ViewCount="" Body="&lt;p&gt;Java is still open source.  The problem is J2ME, the mobile edition.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll note the numerous lawsuits about Linux, the Linux Kernel, SCO, etc, etc, etc... haven't really hurt Linux at all, have they?&lt;/p&gt;&#xA;" OwnerUserId="3412" LastActivityDate="2010-09-24T03:54:08.550" CommentCount="1" />
  <row Id="6920" PostTypeId="2" ParentId="6724" CreationDate="2010-09-24T03:58:39.883" Score="1" ViewCount="" Body="&lt;p&gt;Put the truth in there, because otherwise, you may find yourself falling back into what you don't like.  I really think the job you posted seems more interesting than my current position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're just looking for some indication the reason for switching jobs is both normal and doesn't indicate anything majorly negative about you.&lt;/p&gt;&#xA;" OwnerUserId="3412" LastActivityDate="2010-09-24T03:58:39.883" />
  <row Id="6921" PostTypeId="1" CreationDate="2010-09-24T04:13:09.627" Score="16" ViewCount="567" Body="&lt;p&gt;I've lived in several cities in the past few years, and I've never been in a single one with public libraries that carry programming books. Oh, sure, they have &lt;em&gt;Java for Dummies&lt;/em&gt; and &lt;em&gt;Getting the Most from Photoshop&lt;/em&gt;, but not entries on &quot;programming books every programmer should read&quot; &lt;a href=&quot;http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read&quot;&gt;lists&lt;/a&gt;, like &lt;em&gt;Code Complete&lt;/em&gt; or &lt;em&gt;The Pragmatic Programmer&lt;/em&gt;. In some cases, I've even had a hard time finding such books in stock in bookstores. Where do you find your programming books?&lt;/p&gt;&#xA;" OwnerUserId="94" LastEditorUserId="94" LastEditorDisplayName="" LastEditDate="2011-04-07T18:59:04.670" LastActivityDate="2011-05-25T04:17:23.023" Title="Where can I get programming books?" Tags="&lt;books&gt;" AnswerCount="10" CommentCount="3" FavoriteCount="2" />
  <row Id="6922" PostTypeId="2" ParentId="6921" CreationDate="2010-09-24T04:15:51.400" Score="24" ViewCount="" Body="&lt;p&gt;When I hear of a book I might be interested in, say mentioned here at SO or in a forum, I actually look for it at Amazon.  You can often get &lt;strong&gt;very good&lt;/strong&gt; deals on used books that way.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-24T04:15:51.400" CommentCount="14" />
  <row Id="6923" PostTypeId="2" ParentId="6921" CreationDate="2010-09-24T04:16:59.250" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://half.com&quot; rel=&quot;nofollow&quot;&gt;&lt;h2&gt;Half.com&lt;/h2&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't mind used books. Sometimes you can find huge bargains on half.com, especially the books that have been published for a while.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For books you are not trying to get in a hurry you can add them to your wish list and set target prices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over the years I have bought many books from Amazon but even more from Half.&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="1725" LastEditorDisplayName="" LastEditDate="2011-04-07T03:20:46.203" LastActivityDate="2011-04-07T03:20:46.203" />
  <row Id="6924" PostTypeId="2" ParentId="6921" CreationDate="2010-09-24T04:21:02.430" Score="6" ViewCount="" Body="&lt;p&gt;I buy a lot of books - but unless it's a new release, I go to &lt;a href=&quot;http://www.abebooks.com&quot; rel=&quot;nofollow&quot;&gt;AbeBooks&lt;/a&gt; (they consolidate 100's of used book stores)  - great deals, and I've never had a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hear good things about that Amazon company too - they may be around for a while :}&lt;/p&gt;&#xA;" OwnerUserId="1240" LastEditorUserId="1240" LastEditorDisplayName="" LastEditDate="2010-09-24T04:51:19.857" LastActivityDate="2010-09-24T04:51:19.857" CommentCount="2" />
  <row Id="6925" PostTypeId="2" ParentId="6921" CreationDate="2010-09-24T04:23:00.213" Score="13" ViewCount="" Body="&lt;p&gt;Another option is to go get a subscription to &lt;a href=&quot;http://www.safaribooksonline.com/&quot; rel=&quot;nofollow&quot;&gt;Safari Books Online&lt;/a&gt;, where for the price of one book a month, you can get unlimited access to the full text of thousands of programming (and other) books from publishers like O'Reilly, John Wiley &amp;amp; Sons, Addison-Wesley, and others.  A great resource when you need to find something at 3 in the morning.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-24T04:23:00.213" CommentCount="4" />
  <row Id="6926" PostTypeId="2" ParentId="2331" CreationDate="2010-09-24T04:24:02.400" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://php.net/manual/en/language.variables.variable.php&quot; rel=&quot;nofollow&quot;&gt;Variable Variables&lt;/a&gt; in PHP&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just because you &lt;code&gt;$can&lt;/code&gt; doesn't mean you &lt;code&gt;$$should&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="255" LastEditorUserId="255" LastEditorDisplayName="" LastEditDate="2010-09-24T19:14:14.807" LastActivityDate="2010-09-24T19:14:14.807" CommentCount="8" />
  <row Id="6927" PostTypeId="2" ParentId="6832" CreationDate="2010-09-24T04:31:56.820" Score="1" ViewCount="" Body="&lt;p&gt;I don't buy as many programming books in paper format as I used to.  I have a subscription to &lt;a href=&quot;http://www.safaribooksonline.com&quot; rel=&quot;nofollow&quot;&gt;Safari Books Online&lt;/a&gt;, where for the price of one book a month, I get unlimited access to the full text of thousands of programming (and other) books from publishers like O'Reilly, John Wiley &amp;amp; Sons, Addison-Wesley, and others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also have a first generation Kindle and sometimes buy programming books for it; however I think the large Kindle DX (which came out after I got mine) would be a better platform for technical material.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-24T04:31:56.820" />
  <row Id="6928" PostTypeId="2" ParentId="4863" CreationDate="2010-09-24T04:44:31.617" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Pike_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Pike description&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://pike.ida.liu.se/&quot; rel=&quot;nofollow&quot;&gt;Pike website&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Amazingly fast string manipulation, great for building a web server if you had the inclination.&#xA;Originally used for interacting with text based MUD / MOO environments then graduated to being a language.&lt;/p&gt;&#xA;" OwnerUserId="3490" LastActivityDate="2010-09-24T04:44:31.617" CommunityOwnedDate="2010-10-22T23:54:06.263" CommentCount="2" />
  <row Id="6929" PostTypeId="1" AcceptedAnswerId="6950" CreationDate="2010-09-24T04:47:56.590" Score="9" ViewCount="298" Body="&lt;p&gt;I've got an itch and it needs to be scratched. I've got nothing to program these days. Normally I'd just pick my flavour of the month technology and fiddle with it, but I want to make something and take a break from serious research/experimentation for a while and just write something for fun (ie. not necessarily purely educational/professional development).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Problem is, &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I can't think of software that I need that I don't already have.&lt;/li&gt;&#xA;&lt;li&gt;Sifting through the open-source projects on various sites to help out on is excruciating (5 hrs down the tubes so far - not worth the trouble)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm not looking for a specific suggestion for what to work on because that would be a terribly hard task. I don't think that here knows nearly enough about eachother to effectively give good suggestions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I ask, is there any mental exercise that you use to decide what to make when you're not &quot;fiddlin'&quot;?&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-24T21:00:06.197" LastActivityDate="2010-09-28T13:00:43.727" Title="How do you decide what to work on in your own time?" Tags="&lt;free-time&gt;&lt;personal-project&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="2" />
  <row Id="6930" PostTypeId="2" ParentId="6929" CreationDate="2010-09-24T04:51:39.117" Score="6" ViewCount="" Body="&lt;p&gt;What are your hobbies, outside of programming?  Make something for one of them.  This way you'll have some actual interest in the project, and it may end up being something useful to others.  &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-24T04:51:39.117" />
  <row Id="6931" PostTypeId="2" ParentId="6832" CreationDate="2010-09-24T04:53:09.640" Score="1" ViewCount="" Body="&lt;p&gt;Good bathroom reading. Otherwise, not exceptionally useful.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-09-24T06:24:16.727" LastActivityDate="2010-09-24T06:24:16.727" CommentCount="2" />
  <row Id="6932" PostTypeId="2" ParentId="6929" CreationDate="2010-09-24T05:02:48.183" Score="10" ViewCount="" Body="&lt;p&gt;When I run out of applications or utilities I want to write, I usually go solve math problems on &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt; (I also often use those problems when I'm learning a new language). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Solving math-based problems programatically may not be the most rounded use for programming skills, but I've had a lot of fun and learned some things as well (ymmv).&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-09-24T05:02:48.183" CommentCount="3" />
  <row Id="6933" PostTypeId="1" CreationDate="2010-09-24T05:26:34.763" Score="1" ViewCount="267" Body="&lt;p&gt;When some erros come it throws you to catch block. What i want is, when some errors come i must be able to repair it. In others word i must be able to do some task agaist that exception. So rest statements can be executed properly. For example: consider a try block with 10 statements. Suppose the 3rd statement throws exception. So the control shall go to catch block. I want it return back to 4th statement after taking action against exception generated by 3rd statement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that it seems impossible. Still suggest me if you have any idea. It can help me to work on slow connection.&lt;/p&gt;&#xA;" OwnerUserId="3201" LastEditorUserId="2051" LastEditorDisplayName="" LastEditDate="2010-09-24T06:40:43.443" LastActivityDate="2010-09-24T23:54:07.050" ClosedDate="2010-09-24T09:36:24.550" Title="Java exception handling: i want to repair errors" Tags="&lt;java&gt;&lt;exceptions&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="1" />
  <row Id="6934" PostTypeId="2" ParentId="6933" CreationDate="2010-09-24T05:34:32.707" Score="1" ViewCount="" Body="&lt;p&gt;You can use nested &lt;code&gt;try-catch&lt;/code&gt; blocks, or you can use &lt;code&gt;goto&lt;/code&gt;. But we all know &lt;a href=&quot;http://xkcd.com/292/&quot; rel=&quot;nofollow&quot;&gt;what happens&lt;/a&gt; when you use &lt;code&gt;goto&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;try{&#xA;    statement1();&#xA;    statement2();&#xA;    try{&#xA;        statement3();&#xA;    }&#xA;    catch(SomeException someException){&#xA;        //handle-repair it&#xA;    }&#xA;    statement4();&#xA;    ...&#xA;}&#xA;catch(Exception e){&#xA;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1721" LastActivityDate="2010-09-24T05:34:32.707" CommentCount="7" />
  <row Id="6935" PostTypeId="2" ParentId="6815" CreationDate="2010-09-24T05:36:58.177" Score="1" ViewCount="" Body="&lt;p&gt;If your career path is taking you towards management, you need to decide if that's where you want to go.  It sounds like you are already halfway down that path.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stick with project management if that's what you enjoy (or there are other things about it that you enjoy, perhaps, like the dollars or the power) - but know that it's essentially a non technical role.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you want to remain in a hands-on role, you need to make it clear to your boss etc that you want to shift towards a technical role and leave the management to someone else.  It may even mean finding a new job where people don't see you in project manager kind of role.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you let things come to you then you're not making a conscious decision, and instead you'll end up doing what someone else wants (filling a gap) rather than doing what you want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in a nutshell, project managers don't code.  If you're going to be a project manager then spend your time being a good project manager rather than trying to keep up with the developers. &lt;/p&gt;&#xA;" OwnerUserId="2620" LastActivityDate="2010-09-24T05:36:58.177" />
  <row Id="6937" PostTypeId="2" ParentId="6832" CreationDate="2010-09-24T06:01:43.043" Score="4" ViewCount="" Body="&lt;p&gt;I really love programming books. I have 150+ of them. And still room for more.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-24T06:01:43.043" CommentCount="6" />
  <row Id="6938" PostTypeId="2" ParentId="4863" CreationDate="2010-09-24T06:06:37.387" Score="9" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Fortress_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Fortress&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;It's a functional language developed by Sun with some interesting features, and runs on the JVM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of its unique features is a pretty-printer that formats the source code to look like mathematical equations. Here's an example from the &lt;a href=&quot;http://projectfortress.sun.com/Projects/Community/wiki/IntegerSquareRoot&quot; rel=&quot;nofollow&quot;&gt;Fortress website&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://projectfortress.sun.com/Projects/Community/chrome/site/fortified/tracfss/2d675fa68250ecc790b3657d2afca225.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1303" LastActivityDate="2010-09-24T06:06:37.387" CommunityOwnedDate="2010-10-22T23:54:06.263" CommentCount="5" />
  <row Id="6939" PostTypeId="2" ParentId="6815" CreationDate="2010-09-24T06:09:49.907" Score="3" ViewCount="" Body="&lt;h2&gt;Keep on coding&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I've always tried to steer away from a &lt;strong&gt;position&lt;/strong&gt; where I'm forced to do more management than coding.  In fact it's something I always point out in interviews - I'm a coder - always will be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say that's #1 on keeping your technical skills sharp - as simply as it sounds - &lt;strong&gt;keep on coding&lt;/strong&gt;.  Whether or not that's what you want to do is a different story.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also try being more involved with &lt;strong&gt;group code reviews&lt;/strong&gt;.  Not only is this a great way of sharing knowledge and elimination key-person dependency, it will also show you what's going on in the codebase and keep your skills sharp.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem (in my opinion) with programmers moving into project manager positions is that there is absolutely &lt;em&gt;nothing&lt;/em&gt; that says if you're good at programming you will be good at project management.  In my experience the exact opposite is usually true.&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-24T06:09:49.907" CommentCount="1" />
  <row Id="6940" PostTypeId="2" ParentId="4863" CreationDate="2010-09-24T06:13:56.840" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://haxe.org/doc/intro&quot; rel=&quot;nofollow&quot;&gt;haXe&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;multi-platform&lt;/li&gt;&#xA;&lt;li&gt;concise, expressive, powerfull&lt;/li&gt;&#xA;&lt;li&gt;open-source&lt;/li&gt;&#xA;&lt;li&gt;evolving&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-09-24T06:13:56.840" CommunityOwnedDate="2010-10-22T23:54:06.263" />
  <row Id="6941" PostTypeId="1" AcceptedAnswerId="6945" CreationDate="2010-09-24T06:14:59.390" Score="5" ViewCount="373" Body="&lt;p&gt;&lt;strong&gt;Background&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Okay, so I'm college student and have been looking for jobs while not in class. I finally got callbacks from two companies and both understand I wont be full time and both have my college schedule.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Jobs&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Job 1)&lt;/em&gt; First off it's an equity position for a year. However, the product is being advertised at 4 digits, that I could never afford. I lack the experience and knowledge they want- somehow I over read this information. Regardless, they called and the women was impressed with my enthusiasm and willing to learn the required knowledge they called me again to give me an in person interview. After looking at their site placeholder, I discovered the people on the team are quiet impressive. Although this scared me a bit, I was also reassured that this product could sell if these people are putting their time into it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Job 2)&lt;/em&gt; This one pays, however I currently don't know the expected salary but where I live full time for this position is about $60,000/year, so even half that would be great for being in college. I had the phone interview this afternoon and follow up email questions. Unlike the previous job, I have great understanding of the work that is expected from me and feel comfortable preforming my task. However, I'm not sure I'll gain anything in terms of experience or knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both have their ups and downs and both will help me in the future. However, the second job will give me the money I need now to pay for school and food- but there is no guarantee that I will get the job as of tonight. The first job seemed to only be relying on my enthusiasm and sense of humor, so it feels as those I could be &quot;hired&quot;. I have my interview Monday- which doesn't seem like enough time for the second job to hire me if I'm right for the position. The first seems to have a great payoff and if I'm convinced that the product would sell, then I would pick it, but it's a risk. I'm leaning to the second one because it pays, but there's not 100% chance I will get the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What I'm Looking For&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to hear experience from programmers who have picked one of the jobs above and why you picked it. Even better would be for those who have been in this situation and how you dealt with it. For example, was the reward worth not being paid for a year, or the lack of not expanding your knowledge bore you to quit? Also things I'd might ask in the interview about working for free for a year without pay, or what to say about waiting for another company to get back with me first, etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know this isn't a lot of detail, but I want many similar experiences as to what's above so I can see my position from another prospective. Thanks so much everybody!&lt;/p&gt;&#xA;" OwnerUserId="1635" LastActivityDate="2010-11-03T04:00:27.763" Title="Paid Job or Unpaid Job" Tags="&lt;career&gt;&lt;jobs&gt;&lt;learning&gt;&lt;experience&gt;&lt;salary&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="1" />
  <row Id="6942" PostTypeId="2" ParentId="6933" CreationDate="2010-09-24T06:23:08.490" Score="1" ViewCount="" Body="&lt;p&gt;What you are looking for is a form of exception handling called &lt;a href=&quot;http://en.wikipedia.org/wiki/Exception_handling#Continuable_exceptions&quot; rel=&quot;nofollow&quot;&gt;&quot;resumption model&quot; exception handling&lt;/a&gt;.  In this model, an exception handler can &lt;code&gt;resume&lt;/code&gt; an exception, causing execution to continue immediately after the &lt;code&gt;throw&lt;/code&gt; statement that generated the exception.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first (and only) time I've encountered resumption model exception handling was in the Mesa programming language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problems with resumption model exception handling are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;It is hard to use resumption effectively.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;There are few cases where you actually really need to use resumption.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The possibility that an exception might be resumed means that applications need to deal with this possibility.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Resumption of exceptions that are thrown by the language (e.g. NPEs in Java) gets really messy.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It is complicated to implement.  Since any exception handler may potentially resume an exception, the exception propagation code cannot pop stack frames.  Instead the handler must execute in a new frame on the top of the stack, and the propagation code can only pop stack frames when an exception handler catches an exception and &lt;em&gt;does not&lt;/em&gt; resume it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;IIRC, the consensus of the Mesa designers was that supporting exception resumption was a mistake.   Either way, Java does not support it and (IMO) it would be a bad thing if it did. &lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-09-24T08:50:36.753" LastActivityDate="2010-09-24T08:50:36.753" CommentCount="1" />
  <row Id="6943" PostTypeId="2" ParentId="6933" CreationDate="2010-09-24T06:40:52.650" Score="2" ViewCount="" Body="&lt;p&gt;Try making your methods atomic with the ability to roll back changes on exceptions. Then deal with whatever exception as you like, and re-call the method in question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, if you really want something like this, then you might want try using return codes instead of exceptions in the underlying code, so it'll like like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;static void method()&#xA;{&#xA;    statement1();&#xA;    statement2();&#xA;    if (statement3() == resultCode.ERROR)&#xA;    {&#xA;        /* fix */&#xA;    }&#xA;&#xA;    statement4();&#xA;&#xA;    /* ... */&#xA;}&#xA;&#xA;static resultCode statement3()&#xA;{&#xA;    try&#xA;    {&#xA;        /* ... */&#xA;    }&#xA;    catch&#xA;    {&#xA;        return resultCode.Error;&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Personally, I don't like it and it feels like a throwback to my C++ days... but it's perfectly reasonable if you can get the team on board with this style.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-24T06:40:52.650" CommentCount="1" />
  <row Id="6944" PostTypeId="2" ParentId="6832" CreationDate="2010-09-24T06:44:05.233" Score="4" ViewCount="" Body="&lt;p&gt;I read them, so add 1 to the your sightings list.   (How many before we are off the endangered species list?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, I'm surprised that the top vote-getters at the moment are the people saying they see little value in programming books.  There are certainly some I wish I hadn't spent the money on, but there are several which have totally opened my eyes to new concepts &amp;amp; techniques and which made me a better programmer.  For instance:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;The Zen of Code Optimization&lt;/em&gt; by Abrash - I think this one is the main reason I am a real-time programmer today. &lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Ruminations on C++&lt;/em&gt; by Koening &amp;amp; Moo - The real value of iterators and the STL did not click until I read this one.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Refactoring&lt;/em&gt; by Fowler - Taught me how to structure and restructure code.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Extreme Programming Explained&lt;/em&gt; by Beck - Even though I never completely drank the agile kool-aid, this book changed the way I think about requirements, testing, and managing the development process.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I learned how to code in school, but I didn't learn how to code well until I read some great books.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-24T06:44:05.233" />
  <row Id="6945" PostTypeId="2" ParentId="6941" CreationDate="2010-09-24T06:46:04.137" Score="9" ViewCount="" Body="&lt;p&gt;Firstly - the real world is not college not by quite a long way, either job will give you experience and insight that you would not otherwise gain and that is hard to teach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In particular I'd be frankly &lt;em&gt;astonished&lt;/em&gt; if the second job gives you neither experience nor knowledge - even if technically you learn little new you should learn a great deal about the practical application of your skills and working in a real (commercial) environment where you have to listen to the client and, at times, compromise to deliver results within real world constraints (time, budget, quality).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pragmatically you've got neither job yet - no point in worrying about choices 'til you have them, if you do then the question are a) what is the financial value of the job (and will that value ever materialise - BTDT all I got is 1 embroidered shirt...) and b) what is the value in terms of experience (which will amount to more than just &quot;programming&quot;). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One last concern - at this point you need to make sure that you are focusing sufficient attention on your studies it sounds to me like the unpaid job could be a dangerous distraction.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-09-24T06:46:04.137" CommentCount="4" />
  <row Id="6946" PostTypeId="1" AcceptedAnswerId="6949" CreationDate="2010-09-24T06:46:59.863" Score="2" ViewCount="374" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/4680/is-it-possible-to-become-a-good-programmer-if-you-dont-like-math&quot;&gt;Is it possible to become a good programmer if you don&amp;#39;t like math?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;From comments in &lt;a href=&quot;http://programmers.stackexchange.com/questions/1745/whats-the-most-absurd-myth-about-programming-issues/1811#1811&quot;&gt;this answer&lt;/a&gt; are all good programmers good at math? Are they related or not related at all?&lt;/p&gt;&#xA;" OwnerUserId="2528" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-24T21:00:59.347" LastActivityDate="2010-09-24T21:00:59.347" ClosedDate="2010-09-24T08:12:45.060" Title="Are all good programmers good at math?" Tags="&lt;great-programmer&gt;&lt;math&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="6947" PostTypeId="2" ParentId="6724" CreationDate="2010-09-24T06:50:17.940" Score="2" ViewCount="" Body="&lt;p&gt;although this not answering your question... why don't you learn new stuff on your own (to get rid of the boredom) ? learn a new language or learn a new framework. maybe you can even do a presentation to your colleagues (will relax your working day) and possibly prepare for a future raise. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;you could even start working on a personal project or get involved in some open source (provided that your employer allows that; you can ask him for some time for yourself or, since you already know the maintenance part cause you got the experience there, you can just do your job and them move on to your interests). who knows what may come out of a side project for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;switching jobs is one option if your taking the initiative to improve your skills (which is great), but there are other options. i mean, you already know how to do that job, take advantage of the extra time and the position you have&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-09-24T06:50:17.940" CommentCount="2" />
  <row Id="6948" PostTypeId="2" ParentId="6946" CreationDate="2010-09-24T06:52:16.373" Score="1" ViewCount="" Body="&lt;p&gt;I did not finish high school, and I sometimes feel it when facing some complex mathematical problems. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks to Internet, knowledge is just few clicks ahead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My answer is that your generalization is not accurate, but it certainly helps to be good at math. Especially if you are programming low level modules.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-24T06:52:16.373" CommentCount="1" />
  <row Id="6949" PostTypeId="2" ParentId="6946" CreationDate="2010-09-24T06:52:57.073" Score="1" ViewCount="" Body="&lt;p&gt;No, not all but most.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a &lt;a href=&quot;http://steve-yegge.blogspot.com/2006/03/math-for-programmers.html&quot; rel=&quot;nofollow&quot;&gt;good blog item&lt;/a&gt; (Steve Yegge) about why math matters.&lt;/p&gt;&#xA;" OwnerUserId="2825" LastActivityDate="2010-09-24T06:52:57.073" CommentCount="1" />
  <row Id="6950" PostTypeId="2" ParentId="6929" CreationDate="2010-09-24T07:02:32.887" Score="3" ViewCount="" Body="&lt;p&gt;since you don't seem interested in helping open source projects, start your own project (open source or not) but try helping a community out there on the internet. find one first, that you actually enjoy spending time with, and create something for them: a website or a tool or something. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;i mean, your a programmer, use your skills in the real world (outside your job). it will even get you to learn new technologies because you'll want to do certain things that might be outside your programming knowledge. you'll be like your own analyst and the client is the community&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-09-24T07:02:32.887" />
  <row Id="6951" PostTypeId="2" ParentId="6946" CreationDate="2010-09-24T07:09:18.600" Score="1" ViewCount="" Body="&lt;p&gt;You don't have to be great at math, but there are a few things that Math skills give you that programmers can never go a day without.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Detail oriented skills&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Problem Solving skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I struggled with Math all through college, I had to retake a couple courses but I managed. I would say you definitely have to have some mathematical ability to program.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-09-24T07:09:18.600" />
  <row Id="6952" PostTypeId="1" CreationDate="2010-09-24T07:14:09.043" Score="6" ViewCount="248" Body="&lt;p&gt;Sometimes, after having done a very thorough analysis/research, you can think of a number of solutions to a problem, but they all have considerable downsides. What do you do in such a situation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I can think of a number of options:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Randomly choose one of the solutions.&lt;/li&gt;&#xA;&lt;li&gt;Postpone the issue, do something else in the meanwhile, and revisit the problem a few months later.&lt;/li&gt;&#xA;&lt;li&gt;Find someone who is willing to take the decision (and therefore also the responsibility) for you?&lt;/li&gt;&#xA;&lt;li&gt;Obstinately keep on looking for alternative solutions.&lt;/li&gt;&#xA;&lt;li&gt;Find people to discuss it with, and hope for a moment of clarity.&lt;/li&gt;&#xA;&lt;li&gt;Leave the current situation unchanged; that is: don't solve the problem at all.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1095" LastActivityDate="2010-12-14T17:55:32.140" Title="What to do when all solutions are equally bad?" Tags="&lt;problem-solving&gt;&lt;decisions&gt;" AnswerCount="9" CommentCount="3" />
  <row Id="6953" PostTypeId="2" ParentId="6952" CreationDate="2010-09-24T07:25:25.620" Score="2" ViewCount="" Body="&lt;p&gt;Here I assume problem as a bug in software or complex logic to achieve a feature. Both the things are highly related with Client's need. If Client needs the stable system immediately then we need to work on that instantly. So, I would pick the Solution that has minimal downsides as well as it meets the client's requirement. If there is a workaround to balance the downside I would go for that else I'll intimate the Client and allow him to decide what he wants&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-09-24T07:25:25.620" CommentCount="1" />
  <row Id="6954" PostTypeId="2" ParentId="6952" CreationDate="2010-09-24T07:26:49.500" Score="1" ViewCount="" Body="&lt;p&gt;Intuition......&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-24T07:26:49.500" />
  <row Id="6956" PostTypeId="1" AcceptedAnswerId="7521" CreationDate="2010-09-24T07:32:50.567" Score="6" ViewCount="931" Body="&lt;p&gt;The obvious assumption here is that you try to learn more than one framework. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please mention all the ones you tried to learn and which was the easiest. You can also say why: there was lots of training (or there was no training and that's just what you like), it just clicked with your style.. whatever comes to mind&lt;/p&gt;&#xA;" OwnerUserId="3388" LastEditorUserId="3388" LastEditorDisplayName="" LastEditDate="2010-09-24T07:37:52.647" LastActivityDate="2011-06-03T10:21:55.170" Title="Your easiest PHP framework to learn" Tags="&lt;php&gt;&lt;frameworks&gt;" AnswerCount="6" FavoriteCount="2" />
  <row Id="6957" PostTypeId="2" ParentId="6946" CreationDate="2010-09-24T07:35:21.480" Score="1" ViewCount="" Body="&lt;p&gt;Good programmers need to be good at solving problems logically.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most Maths puzzles are solvable with a calculator and knowing the rules, same with programming. Just need to know the language construct and a reference book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sit me down infront of a Maths puzzle with no information I wouldn't get it. Tell me where to find the information, or give me a book and I would solve it eventually.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would think that mathematicians would be the same with Programming. &lt;/p&gt;&#xA;" OwnerUserId="1276" LastActivityDate="2010-09-24T07:35:21.480" />
  <row Id="6958" PostTypeId="1" AcceptedAnswerId="7307" CreationDate="2010-09-24T07:40:58.070" Score="1" ViewCount="386" Body="&lt;p&gt;How many hours on average would it take to create a realistic PHP MVC driven framework? What's your guess and why (as in time per component or sub-framework)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I read somewhere that the cost of building one of the frameworks I use was&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;$4.6 million&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Does this make any sense?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If you're not smart enough to help&#xA;  with some good insights into this,&#xA;  you're missing the point.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3388" LastEditorUserId="3388" LastEditorDisplayName="" LastEditDate="2010-09-24T23:01:05.283" LastActivityDate="2010-09-25T22:38:26.217" ClosedDate="2010-09-25T23:58:34.243" Title="How many hours to build a framework" Tags="&lt;php&gt;&lt;frameworks&gt;" AnswerCount="6" CommentCount="15" FavoriteCount="2" />
  <row Id="6959" PostTypeId="2" ParentId="6952" CreationDate="2010-09-24T07:47:13.927" Score="3" ViewCount="" Body="&lt;p&gt;One approach is to implement the solution that's can be completed with the lowest risk of failure.  See where the land lies at that point and build on that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.itsmsolutions.com/newsletters/DITYvol6iss19.htm&quot; rel=&quot;nofollow&quot;&gt;KT problem solving analysis&lt;/a&gt; can sometimes help get things into perspective also.&lt;/p&gt;&#xA;" OwnerUserId="2397" LastActivityDate="2010-09-24T07:47:13.927" />
  <row Id="6960" PostTypeId="2" ParentId="6946" CreationDate="2010-09-24T07:47:56.107" Score="4" ViewCount="" Body="&lt;p&gt;Be good at maths is not being good at every kind of maths. Maths is a big field.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Program is describing a problem in mathematical way, so the computer can solve it making calculations, so I think that every programmer need to be good at that field of maths. Which doesn't mean EVERY other field.&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-09-24T07:47:56.107" CommentCount="1" />
  <row Id="6962" PostTypeId="2" ParentId="6832" CreationDate="2010-09-24T07:55:28.397" Score="2" ViewCount="" Body="&lt;p&gt;Read, read, read, read... From books, from blogs, whatever... Better from good books, but even reading critically bad books will help. But keep learning. Keep learning everyday.&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-09-24T07:55:28.397" CommentCount="1" />
  <row Id="6963" PostTypeId="2" ParentId="6933" CreationDate="2010-09-24T08:18:17.320" Score="-1" ViewCount="" Body="&lt;p&gt;I found some alternate way suggested by my colleague. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using some boolean variable. Set the variable in catch block and recall the method again. If variable is set then skip statements that you don't want to execute again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is just an later night. If someone find more better way then please suggest me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for Stephen to inform me about resumption model.&lt;/p&gt;&#xA;" OwnerUserId="3201" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-24T23:54:07.050" LastActivityDate="2010-09-24T23:54:07.050" CommentCount="3" />
  <row Id="6964" PostTypeId="2" ParentId="6929" CreationDate="2010-09-24T08:18:33.453" Score="0" ViewCount="" Body="&lt;p&gt;You mean programming can be fun?&lt;/p&gt;&#xA;" LastActivityDate="2010-09-24T08:18:33.453" CommentCount="3" />
  <row Id="6965" PostTypeId="2" ParentId="913" CreationDate="2010-09-24T08:19:21.233" Score="0" ViewCount="" Body="&lt;p&gt;I don't have hard data on this yet, but I suspect the most ergonomic mouse is a keyboard.&lt;/p&gt;&#xA;" OwnerUserId="2114" LastActivityDate="2010-09-24T08:19:21.233" CommunityOwnedDate="2010-09-24T08:19:21.233" />
  <row Id="6966" PostTypeId="2" ParentId="913" CreationDate="2010-09-24T08:29:44.813" Score="0" ViewCount="" Body="&lt;p&gt;I absolutely love thumb trackballs. Unfortunately, I only have one option (well, two with the wireless option): &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/B9IXN.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You only have to move your thumb, and your arm (and wrist) rests on the table&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-09-24T08:29:44.813" CommunityOwnedDate="2010-09-24T08:29:44.813" />
  <row Id="6967" PostTypeId="2" ParentId="6929" CreationDate="2010-09-24T08:33:00.790" Score="5" ViewCount="" Body="&lt;p&gt;Make a game.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That way you can increase your skills in almost any area you want.&#xA;You'll need to touch many of the things mentioned below, but you can have extra focus on those bits that interests you the most. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You want to program AI? Go ahead!&lt;/li&gt;&#xA;&lt;li&gt;Graphics programming? Check!&lt;/li&gt;&#xA;&lt;li&gt;Physics? Check!&lt;/li&gt;&#xA;&lt;li&gt;Resource managment? Check&lt;/li&gt;&#xA;&lt;li&gt;Network programming? If you want to.&lt;/li&gt;&#xA;&lt;li&gt;Ui programming!&lt;/li&gt;&#xA;&lt;li&gt;Gameplay programming&lt;/li&gt;&#xA;&lt;li&gt;Mixing sounds&lt;/li&gt;&#xA;&lt;li&gt;Creating graphics&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The list goes on and on!&lt;/p&gt;&#xA;" OwnerUserId="3374" LastActivityDate="2010-09-24T08:33:00.790" CommentCount="4" />
  <row Id="6968" PostTypeId="2" ParentId="913" CreationDate="2010-09-24T08:44:57.870" Score="1" ViewCount="" Body="&lt;p&gt;I once worked with someone who just had several mice laying around, so he could change every few days. Small, large, standard, ergonomical: it was the &lt;em&gt;variation that prevented pain&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because I could find no mouse that didn't start to hurt after a while, I got a &lt;a href=&quot;http://www.wacom.com/bamboo/bamboo_pen_touch.php&quot; rel=&quot;nofollow&quot;&gt;Wacom Bamboo Pen &amp;amp; Touch&lt;/a&gt;. I wanted the pen, and got the combined version because I like a large trackpad, but I currently only use it in pen mode. I really like it: I never felt pain in my hands anymore. It is possible that it is slower than using a mouse, but on the other hand people think that you are more creative, because you use a tablet like the cool graphics people :-)&lt;/p&gt;&#xA;" OwnerUserId="3396" LastActivityDate="2010-09-24T08:44:57.870" CommunityOwnedDate="2010-09-24T08:44:57.870" CommentCount="1" />
  <row Id="6969" PostTypeId="2" ParentId="6952" CreationDate="2010-09-24T08:58:03.093" Score="6" ViewCount="" Body="&lt;p&gt;Picking a solution when the choice isn't obvious can't be cut down into a set of rules.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, you say &lt;em&gt;when all solutions are equally bad?&lt;/em&gt;, this sort of implies that you have just one scale on how to judge the &quot;goodness&quot; of a solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In practice, you don't, you have many.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things to consider:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Risk of failure&lt;/li&gt;&#xA;&lt;li&gt;Risk of security or other problems with that solution&lt;/li&gt;&#xA;&lt;li&gt;Cost of implementing&lt;/li&gt;&#xA;&lt;li&gt;Benefit to the user&lt;/li&gt;&#xA;&lt;li&gt;...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Now, it might be that you have some sort of system that takes things like this into account so that you can compare solutions, but rarely is all solutions similar in all but one dimension. If they were, you would just pick the best one in that dimension and be done with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also note that the act of doing nothing is also a solution. It might not be a good one, but seeing as it already competes with other solutions that aren't good either, it is definitely worth looking into, with the same criteria as above.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And... to look for more solutions is also a solution. You postpone the decision, pending new information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But there really isn't a basic &quot;calculate X and pick the greatest&quot; type of function here. It all comes down to this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;It depends&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="472" LastActivityDate="2010-09-24T08:58:03.093" CommentCount="1" />
  <row Id="6970" PostTypeId="2" ParentId="6958" CreationDate="2010-09-24T09:01:49.503" Score="13" ViewCount="" Body="&lt;p&gt;The correct answer to this question is this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;It depends&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What does it depend on?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All the things you left out of your question:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What features of MVC do you want to implement?&lt;/li&gt;&#xA;&lt;li&gt;Have you looked at existing frameworks and can list reasons for why they don't work for you?&lt;/li&gt;&#xA;&lt;li&gt;What kind of PHP experience does the people involved have?&lt;/li&gt;&#xA;&lt;li&gt;How much MVC knowledge do they have? Will they have to learn the basics of MVC as part of the project?&lt;/li&gt;&#xA;&lt;li&gt;Do you plan on making the framework testable, and writing unit tests for it?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you want a number, here's one: 42.&lt;/p&gt;&#xA;" OwnerUserId="472" LastActivityDate="2010-09-24T09:01:49.503" CommentCount="5" />
  <row Id="6971" PostTypeId="1" CreationDate="2010-09-24T09:03:37.143" Score="0" ViewCount="111" Body="&lt;p&gt;I am a Chinese Java programmer and I want to improve my English.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, Java is my job. I am also interested in Ruby, Lisp and others...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to create a blog in English and a forum to exchange with other programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you give me some suggestions? Thank you.&lt;/p&gt;&#xA;" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-24T09:50:48.737" LastActivityDate="2010-09-24T09:50:48.737" ClosedDate="2010-09-26T15:04:21.793" Title="Tell me the online communities about Java and other programming languages." Tags="&lt;java&gt;" AnswerCount="1" CommentCount="4" />
  <row Id="6973" PostTypeId="2" ParentId="6971" CreationDate="2010-09-24T09:23:34.067" Score="1" ViewCount="" Body="&lt;p&gt;here is one &lt;a href=&quot;http://stackoverflow.com/questions/tagged/java&quot;&gt;Q &amp;amp; A java community site&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2126" LastActivityDate="2010-09-24T09:23:34.067" />
  <row Id="6974" PostTypeId="1" CreationDate="2010-09-24T09:24:13.680" Score="25" ViewCount="1806" Body="&lt;p&gt;What's the worst programming-related or technical book you've ever read? This can be any book which one way or another can be connected to programming, as long as it's not fiction.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-16T09:53:50.930" LastActivityDate="2010-10-16T14:56:20.137" ClosedDate="2010-10-16T17:51:30.673" Title="What's the worst programming book you've ever read?" Tags="&lt;books&gt;" AnswerCount="28" CommentCount="4" FavoriteCount="6" />
  <row Id="6975" PostTypeId="2" ParentId="6933" CreationDate="2010-09-24T09:29:48.867" Score="0" ViewCount="" Body="&lt;p&gt;Maybe a variation on the answer by Erkan will work for you:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;abstract class Statement {&#xA;public void execute() throws Exception {&#xA;   statement();&#xA;  }&#xA;  protected abstract void statement() throws Exception;&#xA; }&#xA;&#xA; abstract class HandledStatement extends Statement {&#xA;  @Override&#xA;  public void execute() throws Exception {&#xA;   try {&#xA;    statement();&#xA;   } catch (Exception e) {&#xA;    handle(e);&#xA;   }&#xA;  }&#xA;  protected abstract void handle(Exception e);&#xA; }&#xA;&#xA; public static doSomething() {&#xA;  try{&#xA;      statement1();&#xA;      statement2();&#xA;      new HandledStatement() {&#xA;       @Override&#xA;       protected void statement() throws Exception {&#xA;        statement3();&#xA;       }&#xA;       @Override&#xA;       protected void handle(Exception e) {&#xA;        //handle-repair it&#xA;       }&#xA;      }.execute();&#xA;      statement4();&#xA;      ...&#xA;  }&#xA;  catch(Exception e) {&#xA;  }&#xA; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3518" LastActivityDate="2010-09-24T09:29:48.867" CommentCount="1" />
  <row Id="6976" PostTypeId="2" ParentId="6952" CreationDate="2010-09-24T09:35:18.950" Score="1" ViewCount="" Body="&lt;p&gt;At the end of the day if it needs to be solved you have to pick a solution (there's always one choice that seems marginally less awful) and get on with it. (I have, too often, been the person who has to make the decision and I have, too often, procrastinated using all of your suggested methods).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you start working on the solution you will gain more insight and that should either tell you you're doing as good a job as can be done &lt;em&gt;or&lt;/em&gt; give you sufficient understanding to find/implement a better approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question can only arise if you actually have to solve the problem to reach your goal - if it doesn't then why are you worrying about it? Yes, by all means, search and discuss but if it needs to be done then do something - one of the better things about programming is that it is possible to refactor (sometimes on a truly epic scale) the solutions you have.&lt;/p&gt;&#xA;" OwnerUserId="866" LastEditorUserId="866" LastEditorDisplayName="" LastEditDate="2010-09-24T11:15:58.227" LastActivityDate="2010-09-24T11:15:58.227" />
  <row Id="6977" PostTypeId="2" ParentId="2580" CreationDate="2010-09-24T09:49:44.013" Score="7" ViewCount="" Body="&lt;p&gt;I have a tendency to optimize anything I do. Like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;find the shortest route from home to work.&lt;/li&gt;&#xA;&lt;li&gt;minimize the amount of work when doing repetitive tasks.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I even profile some of my work. For example, I create chainmail which takes a lot of time and a lot of repetition. I once timed several moves to optimize the amount of time spend.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-24T09:49:44.013" CommunityOwnedDate="2011-03-14T16:26:25.523" CommentCount="1" />
  <row Id="6978" PostTypeId="2" ParentId="6974" CreationDate="2010-09-24T09:53:56.550" Score="0" ViewCount="" Body="&lt;p&gt;We had a course at the university about knowledge systems. The book was real bad, it wasn't finished and hard to read. The teacher did not follow the book (although it was required for the course) and the exam consisted of multiple choise questions not related to both the book and the course. But fortunately the teacher reused questions of previous exams so the students learned them.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-24T09:53:56.550" CommentCount="2" />
  <row Id="6979" PostTypeId="1" CreationDate="2010-09-24T10:17:52.247" Score="32" ViewCount="612" Body="&lt;p&gt;A book? A website? A blog? A person?&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2011-05-04T22:57:41.007" CommunityOwnedDate="2011-05-04T09:36:28.593" Title="What source of information most shaped your career?" Tags="&lt;career&gt;&lt;education&gt;" AnswerCount="25" CommentCount="2" FavoriteCount="12" />
  <row Id="6980" PostTypeId="2" ParentId="6974" CreationDate="2010-09-24T10:24:52.863" Score="11" ViewCount="" Body="&lt;p&gt;I still remember how bad this book was:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/vYgSk.jpg&quot; alt=&quot;Oracle9i: A Beginner's Guide&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0072192798&quot; rel=&quot;nofollow&quot;&gt;Oracle9i: A Beginner's Guide&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was angry reading through it.  I'll quote from my Amazon review:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Almost immediately, I was disappointed: Chapter 1 is a tribute to how amazing Oracle is and how godlike Larry Ellison is and it's filled with pages and pages of revenues and sales. What a waste of paper. Then Chapter 2 tells me how to use newsgroups and Google: more wasted paper. I come to Chapter 3 and I think I finally get into learning something. Then I notice they concentrate on Sun Solaris as the operating system which isn't very helpful to a person trying to learn this on his own at home. &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Then on page 84 I read, &quot;In earlier releases of the Beginner's Guide, we walked you through the Oracle server installation. With Oracle 8i and now 9i, it's too big a topic to cover in a book this size.&quot; That's how they start out their step-by-step walkthrough of setting up your first Oracle database. Oh, the last step reads, &quot;12. Read the rest of this book.&quot; To me, the book wasted 80 pages then tells me installation would take too long. Very disappointing. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1622" LastEditorUserId="1622" LastEditorDisplayName="" LastEditDate="2010-09-27T17:47:44.660" LastActivityDate="2010-09-27T17:47:44.660" CommentCount="3" />
  <row Id="6981" PostTypeId="2" ParentId="6979" CreationDate="2010-09-24T10:27:13.997" Score="4" ViewCount="" Body="&lt;p&gt;While I studied a B.Sc., the source that most shaped me as a programmer can only be &lt;a href=&quot;http://c2.com/cgi/wiki&quot; rel=&quot;nofollow&quot;&gt;Ward's Wiki&lt;/a&gt;. That site introduced me to Smalltalk, Common Lisp, tail recursion, functional programming, how to raise children (&lt;a href=&quot;http://c2.com/cgi/wiki?PositiveCommands&quot; rel=&quot;nofollow&quot;&gt;no, really!&lt;/a&gt;), design patterns, and more.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-24T10:27:13.997" CommunityOwnedDate="2011-05-04T09:36:28.593" CommentCount="2" />
  <row Id="6982" PostTypeId="2" ParentId="6979" CreationDate="2010-09-24T10:28:34.077" Score="2" ViewCount="" Body="&lt;p&gt;For me, that was a combination of books (that I consider as a whole see below). You will notice that none are computer related.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0142000280&quot; rel=&quot;nofollow&quot;&gt;Getting Things Done&lt;/a&gt; (that one saved my life)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0743269519&quot; rel=&quot;nofollow&quot;&gt;7 Habits Of Effective People&lt;/a&gt; (read this one first)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1591841666&quot; rel=&quot;nofollow&quot;&gt;The Dip: A Little Book That Teaches You When to Quit&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0767927419&quot; rel=&quot;nofollow&quot;&gt;Career Renegade: How to Make a Great Living Doing What You Love&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The combination of those 4 is a great cocktail ;) It will not only boost your career, it will boost your whole life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want one and only book, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0976694018&quot; rel=&quot;nofollow&quot;&gt;My Job Went To India, 52 Way To Save Your Job&lt;/a&gt; is the one. This one is programming related.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-09-24T10:59:39.383" LastActivityDate="2010-09-24T10:59:39.383" CommunityOwnedDate="2011-05-04T09:36:28.593" CommentCount="2" />
  <row Id="6984" PostTypeId="2" ParentId="6979" CreationDate="2010-09-24T10:30:09.267" Score="2" ViewCount="" Body="&lt;p&gt;Books and websites are great for information. But I'm shaped most by talking to and working with other developers.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-24T10:30:09.267" CommunityOwnedDate="2011-05-04T09:36:28.593" />
  <row Id="6985" PostTypeId="2" ParentId="6979" CreationDate="2010-09-24T10:31:34.253" Score="5" ViewCount="" Body="&lt;p&gt;A person: My second boss early on in my career invested in me a great deal and had me come with him as pre-sales technical consultant. This early on gave me a feel for the customer, when I still was a geek.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A book: Later the book &quot;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0932633439&quot; rel=&quot;nofollow&quot;&gt;Peopleware&lt;/a&gt;&quot; by Tom DeMarco and Tim Lister helped me make the switch into project management and group lead more easily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A blog: &lt;a href=&quot;http://www.randsinrepose.com/&quot; rel=&quot;nofollow&quot;&gt;Rands&lt;/a&gt; aided me too becoming a better leader.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And my believe in Jesus Christ, that made me become a better person.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-24T10:31:34.253" CommunityOwnedDate="2011-05-04T09:36:28.593" />
  <row Id="6986" PostTypeId="2" ParentId="4418" CreationDate="2010-09-24T10:43:25.903" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Delphi&lt;/strong&gt; uses your buffers as-is when building, so &quot;build project&quot; doesn't require you to save your files. That's really handy for trying out a brief experiment. If the experiment works, you save your file. If not, you just undo.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Delphi 7 and earlier keep two copies of your file, the current one (Foo.pas) and a backup (Foo.~pas). More recent ones keep a longer history of your saves, allowing you to rollback to earlier versions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Smalltalk&lt;/strong&gt; doesn't have this concept: your source consists entirely of objects in your image, and your edits are stored in a changes file. Your file-saving's turned into per-method saving: when you hit M-s/Cmd-s after editing a method, your text's compiled and saved as a &lt;code&gt;CompiledMethod&lt;/code&gt; object. Every now and then you need to save your image of course; that's a bit like making a snapshot of your machine rather than saving a file.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-24T10:43:25.903" />
  <row Id="6987" PostTypeId="2" ParentId="6979" CreationDate="2010-09-24T10:43:56.140" Score="12" ViewCount="" Body="&lt;p&gt;The internet. :-)&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-24T10:43:56.140" CommunityOwnedDate="2011-05-04T09:36:28.593" CommentCount="1" />
  <row Id="6989" PostTypeId="2" ParentId="6979" CreationDate="2010-09-24T10:48:02.347" Score="1" ViewCount="" Body="&lt;p&gt;Both a book and a person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A friend of mine introduced me to a Mac - since then I've never looked back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I picked up Aaron Hillegass' book &quot;Cocoa Programming for Mac OS X&quot; and started my awesome journey towards Cocoa, Mac OS X and eventually ended up becoming an iPhone Developer.&lt;/p&gt;&#xA;" OwnerUserId="1732" LastActivityDate="2010-09-24T10:48:02.347" CommunityOwnedDate="2011-05-04T09:36:28.593" />
  <row Id="6990" PostTypeId="2" ParentId="3023" CreationDate="2010-09-24T10:55:51.970" Score="0" ViewCount="" Body="&lt;p&gt;C# specification manual&lt;br&gt;&#xA;+ Your IDE's object browser&#xA;+ Reading open source project code &#xA;+ MSDN&#xA;+ Q&amp;amp;A sites like StackOverflow&lt;/p&gt;&#xA;" LastActivityDate="2010-09-24T10:55:51.970" />
  <row Id="6991" PostTypeId="2" ParentId="6847" CreationDate="2010-09-24T10:56:11.597" Score="23" ViewCount="" Body="&lt;h2&gt;Haskell&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;It's so elegant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I first started to learn it, it broke my brain. As I've continued to learn it, rebuilding my brain to work with Haskell has been a great amount of fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Functional programming is a great tool to add to my set, and Haskell's type inference system makes thinking about how to write functions a dream.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currying, list comprehensions, infix operators, etc., (when I finally get monads, them too!) there's so much to like about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's my first real introduction to functional programming and I can't get enough of it.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-09-24T10:56:11.597" CommunityOwnedDate="2010-09-24T10:56:11.597" CommentCount="3" />
  <row Id="6992" PostTypeId="2" ParentId="6979" CreationDate="2010-09-24T11:00:05.637" Score="3" ViewCount="" Body="&lt;p&gt;By now I am about 4+ years into programming professionally. First 2+ years wasn't really great though I browse Google and latter on I heard SO and been member here for almost an Year and that's period I would say I had a exponential Growth and the curve still ON :)&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-09-24T11:00:05.637" CommunityOwnedDate="2011-05-04T09:36:28.593" />
  <row Id="6993" PostTypeId="2" ParentId="1921" CreationDate="2010-09-24T11:02:40.953" Score="2" ViewCount="" Body="&lt;p&gt;This is not as bad as it looks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are still a lot of mainframes around. But the people that can use/program/manage them are retiring fast. And the remaining have a nice income. Besides, its fun to learn a new (old) envionment.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-24T11:02:40.953" CommentCount="1" />
  <row Id="6995" PostTypeId="2" ParentId="6952" CreationDate="2010-09-24T11:13:04.597" Score="14" ViewCount="" Body="&lt;p&gt;Adapting from &lt;a href=&quot;http://en.wikipedia.org/wiki/Occam%27s_razor&quot; rel=&quot;nofollow&quot;&gt;Occam's razor&lt;/a&gt;: Choose the simplest solution.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-24T11:13:04.597" />
  <row Id="6996" PostTypeId="2" ParentId="6979" CreationDate="2010-09-24T11:15:03.313" Score="1" ViewCount="" Body="&lt;p&gt;When I was young in the 80's, I read a special issue of a magazine on artificial intelligence. Inside, there was an article about robots developed in research labs throughout the world. Some labs in USA, some in Japan, and one in France at about fifty kilometers from where I lived then!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consciouly or not, I managed to get my PhD in that lab.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-09-24T11:15:03.313" CommunityOwnedDate="2011-05-04T09:36:28.593" />
  <row Id="6997" PostTypeId="2" ParentId="3023" CreationDate="2010-09-24T11:16:10.740" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.yoda.arachsys.com/csharp/&quot; rel=&quot;nofollow&quot;&gt;Jon Skeet's C# and .NET articles and links&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-24T11:16:10.740" CommentCount="1" />
  <row Id="6998" PostTypeId="2" ParentId="6974" CreationDate="2010-09-24T11:19:08.253" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.amazon.co.uk/UML-Nutshell-Sinan-Alhir/dp/B00007FYAU/ref=sr_1_5?ie=UTF8&amp;amp;s=books&amp;amp;qid=1285326956&amp;amp;sr=8-5&quot; rel=&quot;nofollow&quot;&gt;UML in a NutShell&lt;/a&gt; (1st edition).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/thQ3d.jpg&quot; alt=&quot;UML In a NutShell&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially unreadable, needed reviewers to tell the author to start again with some explanation, not just a summary of the standards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The 2nd edition, on the other hand, is readable and useful.&lt;/p&gt;&#xA;" OwnerUserId="542" LastActivityDate="2010-09-24T11:19:08.253" CommentCount="4" />
  <row Id="6999" PostTypeId="2" ParentId="6847" CreationDate="2010-09-24T11:24:18.507" Score="6" ViewCount="" Body="&lt;h2&gt;Smalltalk&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Trivial, uniform syntax.&lt;/li&gt;&#xA;&lt;li&gt;A few concepts taken pretty much as far as they can go. &quot;Objects all the way down.&quot;&lt;/li&gt;&#xA;&lt;li&gt;Extremely malleable.&lt;/li&gt;&#xA;&lt;li&gt;Everything's available all the time: want to extend the syntax? Change the compiler.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-24T11:24:18.507" CommunityOwnedDate="2010-09-24T11:24:18.507" CommentCount="2" />
  <row Id="7000" PostTypeId="1" CreationDate="2010-09-24T11:30:05.547" Score="4" ViewCount="177" Body="&lt;p&gt;Processors are getting more and more cores these days, which leaves me wondering...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should we, programmers, adapt to this behavior and spent more effort on programming for multiple cores?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To what extent should we do and optimize this? Thread? Affinity? Hardware optimiziations? ...?&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-10-09T20:02:43.277" Title="How much effort should we spend to programming for multiple cores?" Tags="&lt;multi-core&gt;" AnswerCount="7" />
  <row Id="7001" PostTypeId="2" ParentId="7000" CreationDate="2010-09-24T11:43:25.050" Score="9" ViewCount="" Body="&lt;p&gt;No matter how good you are, it will be unlikely that you'll come up with a better scheme of managing threads etc. than the &lt;em&gt;teams&lt;/em&gt; developing the language and compiler you are writing your code in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need your application to be multi-threaded then create the threads you need and let the compiler and OS get on with their jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You do need to be aware of how those threads are managed so you can make best use of the resources. Not creating too many thread springs to mind as an example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You also need to be aware of what is going on (see Lorenzo's comment) so you can provide hints to the thread management (or override it in special cases), but I would have thought that these would be few and far between.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-09-24T16:40:04.350" LastActivityDate="2010-09-24T16:40:04.350" CommentCount="3" />
  <row Id="7002" PostTypeId="2" ParentId="7000" CreationDate="2010-09-24T11:48:30.767" Score="2" ViewCount="" Body="&lt;p&gt;We do, but we write calculation heavy software so we benefit directly from multiple cores.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes the scheduler moves threads between cores a lot. If that is not acceptable, you can play with the core affinity.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-24T11:48:30.767" />
  <row Id="7003" PostTypeId="2" ParentId="6974" CreationDate="2010-09-24T11:50:25.110" Score="7" ViewCount="" Body="&lt;p&gt;The worst book I ever read was &lt;strong&gt;Ingegneria del codice&lt;/strong&gt; by McConnell Steve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/lCqrQ.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, it is the Italian translation of the best book I ever read: Code Complete. But the translation was so bad that I had to buy the original version. It has been the last translated technical book I bought. Since then, I only read technical books in English.&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-27T16:10:04.817" LastActivityDate="2010-09-27T16:10:04.817" CommentCount="20" />
  <row Id="7004" PostTypeId="2" ParentId="7000" CreationDate="2010-09-24T11:51:00.067" Score="3" ViewCount="" Body="&lt;p&gt;I'm a .NET programmer, and I know that .NET has a high-level abstraction for multithreading called Tasks.  It protects you from having to know too much about how to do proper multithreading against the metal.  I assume that other current development platforms have similar abstractions.  So if you are going to do anything with multithreading, I would try to work at that level if at all possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, to the question of &lt;em&gt;should&lt;/em&gt; you even care about multithreading in your particular application.  The answer to that question is very dependent on the application you are writing.  If you are writing an application that does processing on thousands (or more) independent things, and this processing can be done in parallel, then you will almost certainly get an advantage from multithreading.  However, if you are writing a simple data-entry screen, multithreading might not buy you much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the very least, you need to be concerned with multithreading when you are working on a UI.  You don't want to fire off a long-running operation from the UI and have it become unresponsive because you hijacked the UI thread to do that operation.  Fire off a background thread, and at least give the user a Cancel button so they don't have to wait for it to complete if they made a mistake.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-09-24T11:51:00.067" />
  <row Id="7006" PostTypeId="2" ParentId="6952" CreationDate="2010-09-24T11:55:41.480" Score="1" ViewCount="" Body="&lt;p&gt;Seems to me like a case of Cost-Benefit Analysis.  You take your different solution options (and BTW, &quot;don't do anything&quot; and &quot;defer the decision&quot; can both be options).  You list out all of the pros and cons to each option.  Then, you figure out a way to quantify those different pros and cons.  The quantification could be in dollars, or it could be in arbitrary &quot;points&quot;, development hours, technical debt, etc.  Yes, this is going to be subjective, but you make your best educated guess at things.  It is better than nothing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After you have done this, you will end up with a metric for each option's costs and benefits.  Most likely one option will have either less cost or more benefit or both, and will be the most appealing choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is highly unlikely that all of the options will end up at the same amount.  But if they do, then they really are equivalent, and you can pick arbitrarily or pick your favorite.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-09-24T11:55:41.480" />
  <row Id="7007" PostTypeId="2" ParentId="6847" CreationDate="2010-09-24T11:56:35.993" Score="5" ViewCount="" Body="&lt;h2&gt;Erlang/OTP&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Mature, scaleable, concurrent, robust ...&lt;/p&gt;&#xA;" OwnerUserId="2917" LastActivityDate="2010-09-24T11:56:35.993" CommunityOwnedDate="2010-09-24T11:56:35.993" />
  <row Id="7008" PostTypeId="1" CreationDate="2010-09-24T11:57:04.853" Score="4" ViewCount="179" Body="&lt;p&gt;What different types of security do there exist? Why and when should they be implemented?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example: SQL Injection Prevention&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-24T12:14:59.840" LastActivityDate="2010-12-06T00:46:17.580" Title="What security practices should you be aware of when writing software?" Tags="&lt;comparison&gt;&lt;security&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="7009" PostTypeId="2" ParentId="6979" CreationDate="2010-09-24T12:01:55.777" Score="16" ViewCount="" Body="&lt;p&gt;Books at first, before the Internet was widely available.  Once the Internet gained popularity, a lot of my career knowledge came from blogs, vendor websites, podcasts, etc.  But there are still some go-to books for me that the Internet can't replace.  They are relevant to any kind of programming job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201835959&quot; rel=&quot;nofollow&quot;&gt;Mythical Man Month&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/020161622X&quot; rel=&quot;nofollow&quot;&gt;Pragmatic Programmer&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735619670&quot; rel=&quot;nofollow&quot;&gt;Code Complete&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201633612&quot; rel=&quot;nofollow&quot;&gt;Design Patterns&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-09-24T12:01:55.777" CommunityOwnedDate="2011-05-04T09:36:28.593" CommentCount="3" />
  <row Id="7010" PostTypeId="2" ParentId="885" CreationDate="2010-09-24T12:06:50.907" Score="1" ViewCount="" Body="&lt;p&gt;I have conducted a decent amount of interviews for programming positions, and reviewed lots of resumes.  If two candidates are equal in career experience, personality, communication skills, technical aptitude (BTW that list isn't in any order of importance), then a graduate degree might be a tie-breaker.  But education isn't even close to the first thing I look at.  I find that university education makes a person well-rounded, which is certainly a benefit, but it does not contribute much to their ability to do programming.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-09-24T12:06:50.907" CommentCount="2" />
  <row Id="7011" PostTypeId="2" ParentId="6908" CreationDate="2010-09-24T12:10:25.637" Score="1" ViewCount="" Body="&lt;p&gt;I never wrote an entire book, but if I had to I'd use the &lt;strong&gt;DocBook&lt;/strong&gt; format, working with a VCS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, that's how I write all the text documents I produce, at work. DocBook is an XML format that describes a book (chapters, paragraphs, tables, cross-references, footnotes, citations, etc). You can split your work in separate files (for example, one file per chapter). As it's a text-based format, it's easy to work with a VCS. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use &lt;strong&gt;XmlMind&lt;/strong&gt; for visually editing Docbook files.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I don't know if the publishers support this format directly. O'Reilly use it (actually, they designed it), so this format is appropriate for real-world publishing. From a DocBook document, you can generate a PDF, or even an OpenOffice document.&lt;/p&gt;&#xA;" OwnerUserId="3527" LastActivityDate="2010-09-24T12:10:25.637" />
  <row Id="7012" PostTypeId="2" ParentId="2580" CreationDate="2010-09-24T12:12:03.940" Score="1" ViewCount="" Body="&lt;p&gt;There are a ton of skills that are crucial in programming that also help in everyday life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Problem Solving&lt;br&gt;&#xA;Changing a process to be more efficient&lt;br&gt;&#xA;Logical analysis&lt;br&gt;&#xA;Abstract thinking&lt;br&gt;&#xA;Estimation and planning&lt;br&gt;&#xA;Clear communication  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That list isn't complete, but you get the idea.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-09-24T12:12:03.940" CommunityOwnedDate="2011-03-14T16:26:25.523" />
  <row Id="7013" PostTypeId="2" ParentId="6958" CreationDate="2010-09-24T12:14:41.740" Score="6" ViewCount="" Body="&lt;p&gt;For writing frameworks, stop thinking in hours, and start thinking in weeks or months.  Also, never write a framework to solve generic problems unless you have at least 2 real-world examples of problems that you plan to solve using the framework.  And also, every time you think you need to write a framework to solve something, most likely someone else already has, and you can either use their framework or at least &quot;borrow&quot; some ideas from it.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-09-24T12:14:41.740" CommentCount="0" />
  <row Id="7014" PostTypeId="2" ParentId="6979" CreationDate="2010-09-24T12:16:51.257" Score="6" ViewCount="" Body="&lt;p&gt;Working with better programmers. I've been lucky enought to work with several. You just pick up on so many ideas and better practices without even knowing it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently, I'm the only programmer in my office, so SO has taken the place in the mean time.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-24T12:16:51.257" CommunityOwnedDate="2011-05-04T09:36:28.593" />
  <row Id="7015" PostTypeId="2" ParentId="5081" CreationDate="2010-09-24T12:17:21.463" Score="0" ViewCount="" Body="&lt;p&gt;With 1 year of experience, you will most likely have to start at an entry-level programming job.  However, once you have your foot in the door, how quickly you advance through the ranks is entirely up to you.  If you do well at your job, meet or exceed expectations, solve problems that no one asked you to solve (or never knew they had), help others, work well with the team, etc., then you will be making the big bucks in no time.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-09-24T12:17:21.463" />
  <row Id="7016" PostTypeId="2" ParentId="3023" CreationDate="2010-09-24T12:20:41.543" Score="0" ViewCount="" Body="&lt;p&gt;I like Jason Haley's &lt;a href=&quot;http://jasonhaley.com/blog/&quot; rel=&quot;nofollow&quot;&gt;&quot;Interesting Finds&lt;/a&gt;&quot;. It's similar to The Morning Brew, where you get a snapshot of news for the day.&lt;/p&gt;&#xA;" OwnerUserId="378" LastActivityDate="2010-09-24T12:20:41.543" />
  <row Id="7017" PostTypeId="1" CreationDate="2010-09-24T12:22:03.490" Score="15" ViewCount="563" Body="&lt;p&gt;I've done Java for ten years, and stopped doing any C++ sometime in the mid-90's.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's the best way to quickly relearn C++?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Near as I can figure, the language has changed significantly in 15 years; or, writing good 1995 C++ &lt;em&gt;isn't&lt;/em&gt; the same as writing modern good C++.  RAII is one thing that keeps coming up, and I still don't quite know what it is.&lt;/p&gt;&#xA;" OwnerUserId="3412" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T16:04:33.900" LastActivityDate="2010-10-24T18:16:44.547" Title="Best way to relearn C++?" Tags="&lt;learning&gt;&lt;java&gt;&lt;c++&gt;" AnswerCount="10" CommentCount="2" FavoriteCount="4" />
  <row Id="7018" PostTypeId="2" ParentId="7008" CreationDate="2010-09-24T12:23:07.137" Score="3" ViewCount="" Body="&lt;h2&gt;Preventing &lt;a href=&quot;http://en.wikipedia.org/wiki/Buffer_overflow&quot; rel=&quot;nofollow&quot;&gt;Buffer overflow&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I cannot count the exploit that are based on this.&lt;/p&gt;&#xA;" OwnerUserId="19" LastActivityDate="2010-09-24T12:23:07.137" CommentCount="4" />
  <row Id="7019" PostTypeId="2" ParentId="6974" CreationDate="2010-09-24T12:23:10.323" Score="4" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/IwORQ.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;img src=&quot;http://i.imgur.com/iKWKm.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you find this crap in a tester's cubicle--immediately fire him/her. This book is for imbeciles written by an imbecile.&lt;/p&gt;&#xA;" OwnerUserId="343" LastActivityDate="2010-09-24T12:23:10.323" CommentCount="2" />
  <row Id="7020" PostTypeId="2" ParentId="6832" CreationDate="2010-09-24T12:24:16.930" Score="12" ViewCount="" Body="&lt;p&gt;Everyone seems to be answering this question personally, as in &quot;I do read such-and-such.&quot;  However, as a person hanging out at this site, you are already a cut above your &quot;average&quot; programmer IMO.  So this skews the numbers dramatically.  To answer the question directly: yes, programmers that read books are a rare breed.  I've worked with dozens of programmers, and only know two or three that would pick up a book to solve a problem.  Most of them would search Google for a particular program, or just stare blankly at the screen hoping for divine inspiration. :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And the &quot;theory&quot; books such as Pragmatic Programmer and Code Complete are even more rarely read by average programmers.  If a programmer is going to read a book, it is more likely to be a technical book on the specific language, framework, or technology they are working on.  The &quot;soft&quot; books are not even on most programmers radar.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-09-24T12:24:16.930" CommentCount="1" />
  <row Id="7021" PostTypeId="2" ParentId="2254" CreationDate="2010-09-24T12:24:35.920" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://i.imgur.com/RNyw6.jpg&quot; rel=&quot;nofollow&quot;&gt;Kinesis Advantage&lt;/a&gt;.  My wrists stopped working for awhile, and this saved my career.  I &lt;em&gt;love&lt;/em&gt; it.&lt;/p&gt;&#xA;" OwnerUserId="3412" LastActivityDate="2010-09-24T12:24:35.920" CommunityOwnedDate="2011-01-17T21:43:24.260" CommentCount="1" />
  <row Id="7022" PostTypeId="2" ParentId="6979" CreationDate="2010-09-24T12:25:55.730" Score="5" ViewCount="" Body="&lt;p&gt;Used to love &lt;a href=&quot;http://en.wikipedia.org/wiki/Byte_%28magazine%29&quot; rel=&quot;nofollow&quot;&gt;Byte&lt;/a&gt; Magazine.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;@Rook do you remember this one &lt;a href=&quot;http://en.wikipedia.org/wiki/Nibble_%28magazine%29&quot; rel=&quot;nofollow&quot;&gt;Nibble&lt;/a&gt; It goes way back.&lt;/p&gt;&#xA;" OwnerUserId="1306" LastEditorUserId="1306" LastEditorDisplayName="" LastEditDate="2010-09-24T12:48:29.553" LastActivityDate="2010-09-24T12:48:29.553" CommunityOwnedDate="2011-05-04T09:36:28.593" CommentCount="1" />
  <row Id="7023" PostTypeId="2" ParentId="4863" CreationDate="2010-09-24T12:26:26.277" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/DarkBASIC&quot; rel=&quot;nofollow&quot;&gt;DarkBasic&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A very good language to create games.&lt;/p&gt;&#xA;" OwnerUserId="3082" LastActivityDate="2010-09-24T12:26:26.277" CommunityOwnedDate="2010-10-22T23:54:06.263" />
  <row Id="7024" PostTypeId="2" ParentId="6979" CreationDate="2010-09-24T12:26:26.463" Score="4" ViewCount="" Body="&lt;p&gt;When I was about 8-9 years old, I wanted a computer more than anything. Unfortunately we couldn't afford it for a long time. However, somehow I found a C64 in our basement, along with a German programming book. I did not speak German, but I tried typing everything into the computer and soon I discovered what C64 Basic looked like. I started learning to program this way. Later, I got my hands on an English book, which I still didn't speak at the time, but had some vague knowledge of it and that really boosted my learning process. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this was a great way of learning and I'm grateful for it. My life would have turned out different if I got that computer when I asked my parents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interestingly, I just started learning NES development as a hobby, and the NES has the very same CPU (6502) that the Commodore 64 had. &lt;/p&gt;&#xA;" OwnerUserId="3530" LastActivityDate="2010-09-24T12:26:26.463" CommunityOwnedDate="2011-05-04T09:36:28.593" CommentCount="1" />
  <row Id="7025" PostTypeId="2" ParentId="885" CreationDate="2010-09-24T12:33:11.767" Score="5" ViewCount="" Body="&lt;p&gt;Well, I did, so naturally I think so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recognize now that, before being exposed to new ideas in grad school (not just from classes, but from some of the world's best programmers and thinkers) my programming was very much like that of most programmers I see today. That is, thinking it's all about data structure. If OOP had been hot at that time, I probably would have bought into it, like every other fish on a hook. When it did come along, for a while I actually did think it was the sun, moon, and stars of programming. Fortunately, I soon realized it was distracting me from thinking about the problems I was trying to solve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now the good news (IMHO :-) is that I think I'm a far more effective programmer, because I know how to analyze problems from a linguistic and information-theoretic viewpoint, coming up with a range of solutions with tradeoffs, not just &quot;the design&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The bad news is I'm pretty much alone in this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So take your pick.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-09-24T12:46:20.380" LastActivityDate="2010-09-24T12:46:20.380" CommentCount="3" />
  <row Id="7026" PostTypeId="2" ParentId="6941" CreationDate="2010-09-24T12:46:31.540" Score="4" ViewCount="" Body="&lt;p&gt;Job 1 sounds like a possible scam IMHO&lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-09-24T12:46:31.540" CommentCount="1" />
  <row Id="7027" PostTypeId="2" ParentId="6974" CreationDate="2010-09-24T12:58:01.657" Score="2" ViewCount="" Body="&lt;p&gt;I don't remember the title, but I recently saw a high school text book for Visual Basic. The first two chapters were not about coding or even VB related (A history of BASIC would have been an improvement.). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The school could have saved a lot of money by just Googling 'VB Hello World'. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-24T12:58:01.657" />
  <row Id="7028" PostTypeId="2" ParentId="7017" CreationDate="2010-09-24T12:59:06.240" Score="3" ViewCount="" Body="&lt;p&gt;&quot;The best way&quot; and &quot;Crashcourse&quot; don't combine well so I'm going to provide what I think is the best way:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html&quot; rel=&quot;nofollow&quot;&gt;Thinking in C++ 2nd Edition by Bruce Eckel&lt;/a&gt;&lt;br&gt;&#xA;is a very good book if you already know a programming language and you need to learn C++ by heart.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you still have sufficient knowledge about C++ a tutorial site (eg. &lt;a href=&quot;http://en.wikibooks.org/wiki/Subject%3aC%2B%2B_programming_language&quot; rel=&quot;nofollow&quot;&gt;Wikibooks - C++&lt;/a&gt;) might be better.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-24T12:59:06.240" CommentCount="1" />
  <row Id="7029" PostTypeId="2" ParentId="2254" CreationDate="2010-09-24T13:01:42.900" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Microsoft Natural Keyboard Elite&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/iqnQF.jpg&quot; alt=&quot;Best Keyboard Ever&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There can be only one!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Very vintage, hard to find, but it's the Best.&lt;/p&gt;&#xA;" OwnerUserId="3533" LastEditorUserId="3533" LastEditorDisplayName="" LastEditDate="2010-09-24T21:30:29.420" LastActivityDate="2010-09-24T21:30:29.420" CommunityOwnedDate="2011-01-17T21:43:24.260" CommentCount="6" />
  <row Id="7030" PostTypeId="2" ParentId="885" CreationDate="2010-09-24T13:07:47.220" Score="0" ViewCount="" Body="&lt;p&gt;Short Answer: It Depends&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Longer Answer: It depends on a lot of different variables to include: what your career goals are, how you feel about continuing education, how much free time you have to invest in graduate school, and who would be paying for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, you really don't need much more than a Bachelors degree and skill to get pretty far and in fact, a graduate degree can hurt you in some cases since your education might exceed the needs of the position. However, on the same token, a Masters degree can open up some doors that the Bachelors by it self will not, or that you may need a lot of experience or luck to encounter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the bigger questions as you get older is going to be who is going to pay for the degree (I've heard the rule of thumb is that a Masters degree costs an average of $10,000 in the United States) as well as the opportunity cost in terms of the time it will take to get the degree. Leaving industry to go back to school for a couple years might cause some issues when you graduate and are looking for a job and you are also going to be making less money while you are working on the degree. Likewise, if you go to night school to work on the Masters you might find you don't have much of a life outside of work and school. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you can get work to pay for the degree then it might be worth your while as most larger companies that are willing to pay for a Masters degree generally seem to have internal promotion schemes that could allow you to get a promotion earlier due to the Masters than you would with just the Bachelors degree. I've heard that generally a Masters is worth about $10,000 more a year in terms of salary so it could pay itself off very quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a longer term standpoint, I wouldn't be surprised if some of the more advanced positions start requiring Masters degrees as the number of people in industry start to get them. So from that standpoint it might be a worth while investment as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day though, every situation is different and you need to think about what is best for yourself as well. There is definitely an opportunity cost involved with getting a Masters - both in terms of time and money - but I feel they do tend to pay for themselves in the long run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that I haven't said anything about getting a PhD. The reason for this is simple, everyone that I've talked to says that you get a PhD because you really like researching some area in the realm of Computer Science and that people with PhD's generally aren't going to be writing large applications.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-09-24T13:07:47.220" />
  <row Id="7031" PostTypeId="2" ParentId="6974" CreationDate="2010-09-24T13:08:48.937" Score="5" ViewCount="" Body="&lt;p&gt;I've come across lots of bad programming books, but those have always been ones that I just happened to come accross (e.g. in a bookstore, at a friend's place etc.). The only really bad book that I have ever bought and tried to follow that turned out to be utter garbage was &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0072224207&quot; rel=&quot;nofollow&quot;&gt;Java 2: The Complete Reference&lt;/a&gt; by Herb Schild. The TA actually recommended that book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/LWg5C.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I spent the whole semester wondering why that book was filled with irrelevance (that book isn't sure whether it is a tutorial or a reference IMHO). I know of some people who have liked it and claim they derived some benefit from it, but I just ditched the book near the end of the semester and focused on the class notes. Later on I found better books on Java, and really learnt the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:&#xA;Someone actually &quot;borrowed&quot; the book from me after some years, and failed to return it. So, I guess a least one person liked it.&lt;/p&gt;&#xA;" OwnerUserId="1454" LastEditorUserId="1454" LastEditorDisplayName="" LastEditDate="2010-09-24T14:04:59.683" LastActivityDate="2010-09-24T14:04:59.683" CommentCount="8" />
  <row Id="7032" PostTypeId="2" ParentId="6974" CreationDate="2010-09-24T13:10:17.357" Score="16" ViewCount="" Body="&lt;p&gt;Any book that allows you to teach yourself X in Y hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've read some in the past but once read you don't know any details whatsoever about X and you can't use the book as a reference for X either. After discovering that it seems better to go for the big books. &lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-24T13:10:17.357" CommentCount="6" />
  <row Id="7033" PostTypeId="2" ParentId="6847" CreationDate="2010-09-24T13:10:47.967" Score="0" ViewCount="" Body="&lt;h2&gt;IEC 61131-3&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;It's a language for programming PLCs. It combines 5 different languages (graphical programming and text based languages) with one data model. For every object or function you write you can choose the appropriate language individually.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is perfect for programming complex real time controllers. The newest version is fully object orientated. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me it is a pleasure to program in that language.&lt;/p&gt;&#xA;" OwnerUserId="625" LastActivityDate="2010-09-24T13:10:47.967" CommunityOwnedDate="2010-09-24T13:10:47.967" CommentCount="3" />
  <row Id="7034" PostTypeId="2" ParentId="6847" CreationDate="2010-09-24T13:11:23.300" Score="27" ViewCount="" Body="&lt;h2&gt;C&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;(not C++)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just simple and elegant, but still powerful. C++ is just a mess.&lt;/p&gt;&#xA;" OwnerUserId="2391" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-11-19T19:34:41.023" LastActivityDate="2010-11-19T19:34:41.023" CommunityOwnedDate="2010-09-24T13:11:23.300" CommentCount="1" />
  <row Id="7035" PostTypeId="2" ParentId="6796" CreationDate="2010-09-24T13:16:53.083" Score="0" ViewCount="" Body="&lt;h2&gt;&lt;strong&gt;&lt;a href=&quot;http://otrs.org/&quot; rel=&quot;nofollow&quot;&gt;OTRS&lt;/a&gt;&lt;/strong&gt;&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PHP&lt;/li&gt;&#xA;&lt;li&gt;Can integrate into existing PHP website&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://dev.otrs.org/&quot; rel=&quot;nofollow&quot;&gt;Has an API&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If it's a startup, then price is probably something to consider.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://otrs.org/praise/&quot; rel=&quot;nofollow&quot;&gt;Open Source Ticket Request System (OTRS)&lt;/a&gt; is open source, free, and is used by a lot of companies and institutions (Suse, Opera, MySQL, UCLA..) (we also use this at my work and is great).  If you set it up with incoming email, you can even have users send an email and it will automatically create a ticket in OTRS and place it in the queue.  Plus...it's FREE!&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-09-24T13:24:54.533" LastActivityDate="2010-09-24T13:24:54.533" />
  <row Id="7037" PostTypeId="2" ParentId="6832" CreationDate="2010-09-24T13:25:26.577" Score="2" ViewCount="" Body="&lt;p&gt;I read them back when I was just starting out, but now most of the books that I have around tend to be focused on the non-coding part of software development (e.g. &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735622531&quot; rel=&quot;nofollow&quot;&gt;The Practical Guide to Defect Prevention&lt;/a&gt;, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735605351&quot; rel=&quot;nofollow&quot;&gt;Software Estimation: Demystifying the Black Art&lt;/a&gt;), reference books, or books focused on a narrow computer science concepts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest problem I have is that the technology specific books tend to be obsolete in a couple of years (e.g. not many people writing Visual Basic 6 these days) so I've found that investing on those books that can become obsolete tend to be a bad investment, even more so when with how much information is available online these days. Likewise, some of the books on such things as design principles tend to be ignored in favor of some of the really good sites out there such as &lt;a href=&quot;http://www.alistapart.com/&quot; rel=&quot;nofollow&quot;&gt;A List Apart&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-09-24T13:25:26.577" />
  <row Id="7038" PostTypeId="1" AcceptedAnswerId="7102" CreationDate="2010-09-24T13:26:08.247" Score="13" ViewCount="941" Body="&lt;p&gt;I'm using VS 2010 since we're developing an app in .Net 4 and the performance is driving me crazy. It's mostly bad when I don't view the IDE for a while (such as when I get pulled away for a help desk call or come in in the morning). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realize it's probably built in WPF which unloads its resources when unused, but the few minute delay while it loads everything back up is really annoying. I've also noticed some significant delays when opening files or compiling.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-19T13:12:14.737" LastActivityDate="2011-02-04T15:44:24.957" Title="Can I do anything to improve performance in VS 2010?" Tags="&lt;ide&gt;&lt;performance&gt;&lt;visual-studio-2010&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="3" />
  <row Id="7039" PostTypeId="2" ParentId="2580" CreationDate="2010-09-24T13:31:22.087" Score="0" ViewCount="" Body="&lt;p&gt;How to break down a large problem into smaller components and tackle them one at a time&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-09-24T13:31:22.087" CommunityOwnedDate="2011-03-14T16:26:25.523" CommentCount="1" />
  <row Id="7040" PostTypeId="2" ParentId="885" CreationDate="2010-09-24T13:35:36.827" Score="0" ViewCount="" Body="&lt;p&gt;I have a master's degree but I can't really identify any significant difference it has made to my career.  I worked for about 3.5 years after graduating before starting the master's degree.  Financially I would have been better off without it as I would have saved on fees and not had to take a break from earning.  Maybe it has helped in getting job interviews but I can't really tell.  However, because I studied in a different country, it was a fantastic experience and something that I would choose to do again if I had to go back and re-make the decision.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-24T13:35:36.827" />
  <row Id="7041" PostTypeId="2" ParentId="6974" CreationDate="2010-09-24T13:40:25.043" Score="6" ViewCount="" Body="&lt;p&gt;Please forgive me... I was in college and was fascinated with Y2K.  The book proved to be boring and like the hype, was all sensationalism.  Complete garbage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/1qLGz.jpg&quot; alt=&quot;Time Bomb 2000&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-24T13:40:25.043" CommentCount="4" />
  <row Id="7042" PostTypeId="2" ParentId="6847" CreationDate="2010-09-24T13:43:16.537" Score="17" ViewCount="" Body="&lt;h2&gt;JavaScript&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;You can do some really fun things JavaScript, and the language itself it pretty brilliant. The whole prototype system, where you can alter how functions work at run time makes the possibilities endless.&lt;/p&gt;&#xA;" OwnerUserId="891" LastActivityDate="2010-09-24T13:43:16.537" CommunityOwnedDate="2010-09-24T13:43:16.537" CommentCount="2" />
  <row Id="7043" PostTypeId="2" ParentId="3023" CreationDate="2010-09-24T13:48:04.537" Score="0" ViewCount="" Body="&lt;p&gt;I peruse the c#-tagged questions at &lt;a href=&quot;http://www.stackoverflow.com/&quot; rel=&quot;nofollow&quot;&gt;stackoverflow.com&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-09-24T13:48:04.537" />
  <row Id="7044" PostTypeId="2" ParentId="6974" CreationDate="2010-09-24T13:54:04.740" Score="0" ViewCount="" Body="&lt;p&gt;I have yet to come across a book that I haven't found useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know why that is, but it is the way it is, isn't it?&lt;/p&gt;&#xA;" OwnerUserId="1732" LastActivityDate="2010-09-24T13:54:04.740" CommentCount="1" />
  <row Id="7045" PostTypeId="1" AcceptedAnswerId="7046" CreationDate="2010-09-24T13:54:22.227" Score="6" ViewCount="624" Body="&lt;p&gt;When you have a line of code with a parenthetical statement, do you include a space before the parenthetical?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, should it be&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;if()&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;if ()&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance!&lt;/p&gt;&#xA;" OwnerUserId="3440" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-30T08:05:54.350" LastActivityDate="2010-09-30T08:05:54.350" Title="Should it be if() or if ()?" Tags="&lt;style-guide&gt;&lt;coding-standards&gt;" AnswerCount="14" CommentCount="7" />
  <row Id="7046" PostTypeId="2" ParentId="7045" CreationDate="2010-09-24T13:55:47.530" Score="23" ViewCount="" Body="&lt;p&gt;It's all down to personal choice and style.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you're forced to follow a coding standard. Then you should be asking the person who decided on the coding standard.&lt;/p&gt;&#xA;" OwnerUserId="1732" LastActivityDate="2010-09-24T13:55:47.530" />
  <row Id="7047" PostTypeId="2" ParentId="7045" CreationDate="2010-09-24T13:56:36.927" Score="4" ViewCount="" Body="&lt;p&gt;I am going to have to go with yes.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-09-24T13:56:36.927" />
  <row Id="7048" PostTypeId="2" ParentId="7038" CreationDate="2010-09-24T13:57:41.570" Score="8" ViewCount="" Body="&lt;p&gt;Get a faster machine?&lt;/p&gt;&#xA;" OwnerUserId="882" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-24T16:41:14.023" LastActivityDate="2010-09-24T16:41:14.023" CommentCount="4" />
  <row Id="7049" PostTypeId="2" ParentId="6974" CreationDate="2010-09-24T13:58:27.360" Score="16" ViewCount="" Body="&lt;p&gt;Hardcore Java&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://covers.oreilly.com/images/9780596005689/lrg.jpg&quot; alt=&quot;alt Hardcore Java&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This book was written by a person that&#xA; truly did not understand the finer&#xA; points of java. He didn't even&#xA; understand by ref or by val parameter&#xA; passing. I'll quote the top rated&#xA; amazon review: (it's a 1 star)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In the preface, the author states that&#xA;  the goal of this book is to transform&#xA;  a developer from the intermediate&#xA;  level to a true guru. In the back&#xA;  cover it even promises that &quot;you'll&#xA;  master the art of writing error-prone&#xA;  (sic!) code&quot;, and the reference to&#xA;  &quot;error-prone code&quot; sadly finds its&#xA;  confirmation once one starts reading.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;It takes about two chapters to&#xA;  demolish the author's credibility as a&#xA;  guru, and you will be reading the rest&#xA;  of the book with a skeptical eye,&#xA;  doubting every assertion that looks&#xA;  questionable and suspecting that the&#xA;  author is talking well above his level&#xA;  of competence, and patronizing about&#xA;  it too!&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The first chapters are an atrocious&#xA;  review of some Java concepts, densely&#xA;  packed with serious mistakes, not&#xA;  typos, mistakes (plenty of typos too).&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;As an example, on page 9 the&#xA;  definition of the `for' statement is&#xA;  wrong, a simple check of the Java&#xA;  Language Specification would have&#xA;  spared the author some embarrassment.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;On page 15 the author gives us wrong&#xA;  rules for labels in Java, and in the&#xA;  same page he confuses the logic of the&#xA;  'break' and 'continue' statements,&#xA;  providing also a logically wrong code&#xA;  example, just to screw-up things even&#xA;  better.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I would not know how to describe the&#xA;  section on &quot;Chained deferred&#xA;  initialization&quot; on page 53, &quot;raving&quot;&#xA;  maybe. This one is cited in the errata&#xA;  page at oreilly.com, and the &quot;author&#xA;  regrets that it slipped through the&#xA;  proverbial cracks&quot;. I am more&#xA;  concerned that something like that has&#xA;  been actually written (complete with&#xA;  code samples!), than that it has&#xA;  passed unscathed through editing and&#xA;  reviewing. Let's hope it was written&#xA;  by somebody else playing with the&#xA;  author's laptop. Somebody who does not&#xA;  know what JVM means.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;There are also less severe but equally&#xA;  confidence-abating points, like, on&#xA;  page 25, the form:&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;new String(&quot;A button to show&quot; + text);&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;which we should not find in books for&#xA;  guru wannabes.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The author is probably a productive&#xA;  software architect, some points, later&#xA;  in the book, are interesting, though&#xA;  nothing could be defined advanced, but&#xA;  he does not know Java better than an&#xA;  average developer, and this book does&#xA;  not add very much to an intermediate&#xA;  level, apart, maybe, from a warning&#xA;  about writing books: writing a book&#xA;  can transform you from a good&#xA;  developer into a bad author.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;It is sad that we are flooded with&#xA;  such mediocre and unprofessional&#xA;  &quot;error-prone&quot;publications from such&#xA;  once reputable publishers, from time&#xA;  to time I still re-read and enjoy the&#xA;  conciseness, clarity and value of&#xA;  classics like K&amp;amp;R's &quot;The C Programming&#xA;  Language&quot; and I wonder why today's&#xA;  output is so vastly inferior.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;As one of the few exceptions, I&#xA;  strongly recommend Bloch's &quot;Effective&#xA;  Java&quot; (Addison-Wesley) which is truly&#xA;  a book written by a guru. After&#xA;  reading that one, &quot;Hardcore Java&quot; will&#xA;  seem even emptier.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Its &lt;a href=&quot;http://oreilly.com/catalog/hardcorejv/errata/hardcorejv.confirmed&quot; rel=&quot;nofollow&quot;&gt;errata&lt;/a&gt; on O'Reilly is (last time I checked) 20+ pages long.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit: just checked it, default settings in word, it's 23 pages long.&lt;/p&gt;&#xA;" OwnerUserId="3542" LastEditorUserId="3542" LastEditorDisplayName="" LastEditDate="2010-10-06T21:07:08.563" LastActivityDate="2010-10-06T21:07:08.563" CommentCount="5" />
  <row Id="7050" PostTypeId="2" ParentId="7017" CreationDate="2010-09-24T14:00:03.480" Score="0" ViewCount="" Body="&lt;p&gt;just start coding!  find a project, say something open source, and start typing! Google is your friend, there are tons and tons of tutorials, e-books,  and sample code out there!&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-09-24T14:00:03.480" CommentCount="2" />
  <row Id="7051" PostTypeId="2" ParentId="7000" CreationDate="2010-09-24T14:00:33.157" Score="1" ViewCount="" Body="&lt;p&gt;In the land of Objective-C and Mac OS X and iOS, the frameworks (like many others) are written to take advantage of these increases in processor cores and present the developer with a nice interface to make use of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example on Mac OS X and iOS is Grand Central dispatch. There are additions to &lt;code&gt;libc&lt;/code&gt; (I believe) to facilitate queue based multi-threading. Then the Cocoa and Foundation frameworks (amongst others) are written on top of GCD, giving the developer easy access to dispatch queues and threading with very little boiler-plate code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many languages and frameworks have similar concepts.&lt;/p&gt;&#xA;" OwnerUserId="1732" LastActivityDate="2010-09-24T14:00:33.157" />
  <row Id="7052" PostTypeId="2" ParentId="7045" CreationDate="2010-09-24T14:02:18.890" Score="2" ViewCount="" Body="&lt;p&gt;VS 2010 automatically formats your &lt;code&gt;if&lt;/code&gt;s like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (IsTrue)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;but your methods like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void MethodName(string foo)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;which seems slightly weird to me. I just go with it...&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-09-24T14:02:18.890" CommentCount="1" />
  <row Id="7053" PostTypeId="2" ParentId="7045" CreationDate="2010-09-24T14:04:34.473" Score="9" ViewCount="" Body="&lt;p&gt;I go with whatever &lt;code&gt;Ctrl+E, D&lt;/code&gt; gives me in VS :)&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-09-24T14:04:34.473" CommentCount="3" />
  <row Id="7054" PostTypeId="2" ParentId="7045" CreationDate="2010-09-24T14:05:29.027" Score="14" ViewCount="" Body="&lt;p&gt;For me it feels like this&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The condition shouldn't hit the if word or it becomes too compressed, thus &lt;code&gt;if (&lt;/code&gt;.&lt;br&gt;&#xA;The parameters should hit the method name as it is called, thus &lt;code&gt;void MethodName(string foo)&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-24T14:05:29.027" CommentCount="3" />
  <row Id="7055" PostTypeId="1" AcceptedAnswerId="7087" CreationDate="2010-09-24T14:14:47.587" Score="16" ViewCount="985" Body="&lt;p&gt;Which design pattern do you think is the most popular?&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2011-04-21T15:47:37.353" CommunityOwnedDate="2011-03-03T21:02:19.503" Title="What is the most frequently used design pattern?" Tags="&lt;design-patterns&gt;&lt;popularity&gt;" AnswerCount="16" CommentCount="9" FavoriteCount="5" />
  <row Id="7056" PostTypeId="2" ParentId="7038" CreationDate="2010-09-24T14:16:31.177" Score="6" ViewCount="" Body="&lt;p&gt;In addition of the Muad'Dib answer, I would recommend you a simple upgrade:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Replace you old hard drive by a &lt;strong&gt;solid state drive&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The performance increase of Visual Studio .NET is incredible.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-24T16:47:59.287" LastActivityDate="2010-09-24T16:47:59.287" CommentCount="7" />
  <row Id="7057" PostTypeId="1" CreationDate="2010-09-24T14:18:23.633" Score="3" ViewCount="122" Body="&lt;p&gt;How should I be keeping track of a php script's versions/changes when it pertains to a single script in one file?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I have a separate changelog, and if so (1) what should it be named, (2) how should the contents of the log be formatted, and (3) how should the log be associated with the php script/file?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, should I include the changes in a comment at the top of the php file?  Currently, I have the following comments at the top of the file:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/**&#xA; * @author    John Doe &amp;lt;contact@John Doe.com&amp;gt;&#xA; * @version   1.0&#xA; * @copyright Copyright (c) 2010, John Doe&#xA; */&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance for your response!&lt;/p&gt;&#xA;" OwnerUserId="3440" LastActivityDate="2010-10-16T12:05:53.997" Title="How should I be keeping track of php script version/changes?" Tags="&lt;development-process&gt;&lt;php&gt;&lt;best-practices&gt;&lt;feedback&gt;" AnswerCount="2" />
  <row Id="7058" PostTypeId="2" ParentId="7017" CreationDate="2010-09-24T14:18:47.127" Score="0" ViewCount="" Body="&lt;p&gt;this might be a good idea ... translate or rewrite one of your JAVA programs in C++? Since you already know the logic, you are not actually solving any problems (or learn to solve prob) per se .. in this case you're just re-learning the language ... &lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-09-24T14:18:47.127" CommentCount="5" />
  <row Id="7059" PostTypeId="2" ParentId="885" CreationDate="2010-09-24T14:19:02.367" Score="0" ViewCount="" Body="&lt;p&gt;To further one's education, it's almost always worth it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for if it's worth the money, that's something that's been in a lot of blog/articles lately.  See &lt;a href=&quot;http://www.mint.com/blog/how-to/is-grad-school-worth-the-money/&quot; rel=&quot;nofollow&quot;&gt;Is Grad School Worth the Money?&lt;/a&gt; and &lt;a href=&quot;http://www.mint.com/blog/how-to/is-college-worth-it-09172010/&quot; rel=&quot;nofollow&quot;&gt;Is A College Education Worth The Money?&lt;/a&gt;.  Both from MintLife.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So essentially:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Waste of time?  No.&lt;br&gt;&#xA;Waste of money?  Maybe.&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-24T14:19:02.367" />
  <row Id="7060" PostTypeId="2" ParentId="6832" CreationDate="2010-09-24T14:25:01.107" Score="1" ViewCount="" Body="&lt;p&gt;I haven't read a technical book in years...literally years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Partly its about availability of information elsewhere. Blogs, articles, white papers, reference sites, peer support sites like SO...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Partly it's to do with the expense and impracticality of paper books. Think of the numbers you used to read something as gospel only to find it was subjective, or perhaps out of date. Even reference manuals date quickly, given the ever-changing nature of our world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not knocking technical books per se,  but gone are the days where they were your only source of information on a technical subject. We get our information from a variety of sources now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll confess to missing them somewhat, but for me at least, times have moved on.&lt;/p&gt;&#xA;" OwnerUserId="3545" LastActivityDate="2010-09-24T14:25:01.107" />
  <row Id="7061" PostTypeId="2" ParentId="7055" CreationDate="2010-09-24T14:29:52.430" Score="19" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;MVC&lt;/strong&gt; and its variations is definitely one of the top design patterns.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-09-24T14:29:52.430" CommunityOwnedDate="2011-03-03T21:02:19.503" CommentCount="1" />
  <row Id="7062" PostTypeId="2" ParentId="3363" CreationDate="2010-09-24T14:30:39.450" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://cobaia.net/2010/09/top-funny-source-code-comments/&quot; rel=&quot;nofollow&quot;&gt;http://cobaia.net/2010/09/top-funny-source-code-comments/&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-09-24T14:30:39.450" CommunityOwnedDate="2010-09-24T14:30:39.450" />
  <row Id="7063" PostTypeId="2" ParentId="7045" CreationDate="2010-09-24T14:33:14.487" Score="0" ViewCount="" Body="&lt;p&gt;I like to have a space between logic and parentheses &lt;code&gt;if () { }&lt;/code&gt; but not between method names &lt;code&gt;method()&lt;/code&gt; and parentheses. By doing this it gives more visual distinction to the type of code that is present. In other words by adding the space it is less likely for an external programmer to confuse a variable inside parentheses as something being checked vs a parameter. Yes I know that the presence of the &lt;code&gt;if&lt;/code&gt; should make this pretty clear but the extra visual cue does make it somewhat less taxing going back and touching code that has not been touched in a while.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-09-24T14:33:14.487" />
  <row Id="7064" PostTypeId="2" ParentId="7045" CreationDate="2010-09-24T14:33:23.630" Score="18" ViewCount="" Body="&lt;p&gt;The second way is correct.  &lt;code&gt;if&lt;/code&gt; is a keyword, it stands alone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The parentheses are part of the &lt;code&gt;function()&lt;/code&gt; call.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-24T14:33:23.630" CommentCount="2" />
  <row Id="7065" PostTypeId="2" ParentId="7055" CreationDate="2010-09-24T14:36:55.963" Score="18" ViewCount="" Body="&lt;p&gt;If you're talking about &lt;em&gt;Gang-of-Four&lt;/em&gt; design patterns I would have to say &lt;strong&gt;Singleton&lt;/strong&gt;.  This is a really sad state of affairs - almost as if programmers hear about the magic of design patterns and then simply stop after the first one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're talking about &lt;em&gt;architectural-style&lt;/em&gt; patterns (in other words, design patterns which span multiple classes or layers) I would have to say &lt;strong&gt;MVC&lt;/strong&gt;.  A few other popular ones are the &lt;strong&gt;repository&lt;/strong&gt; pattern and &lt;strong&gt;service-locator&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-24T14:36:55.963" CommunityOwnedDate="2011-03-03T21:02:19.503" CommentCount="7" />
  <row Id="7066" PostTypeId="2" ParentId="7057" CreationDate="2010-09-24T14:41:39.690" Score="8" ViewCount="" Body="&lt;p&gt;Aren't you using a VCS such as SVN, Git or Mercurial? There's no better way to keep track of the changes than being able to see the difference of the file. Of course, you would want to include the changelog on both: the main comment block and the last commit you do.&lt;/p&gt;&#xA;" OwnerUserId="1773" LastActivityDate="2010-09-24T14:41:39.690" CommentCount="2" />
  <row Id="7067" PostTypeId="2" ParentId="6974" CreationDate="2010-09-24T14:43:04.713" Score="2" ViewCount="" Body="&lt;p&gt;Programming in C++ by Dewhurst and Stark:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/P1YbC.jpg&quot; alt=&quot;Programming in C++&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may not have been the worst ever.  It makes my list because the first edition cover looked exactly like K&amp;amp;R's &lt;em&gt;The C Programming Language&lt;/em&gt;, so I was expecting a work of similar quality.  I got a copy 20 years ago, just as C++ was starting to get widespread notice.  This book taught the syntax, but it did nothing to show a C programmer how to take advantage of C++'s features.  I found it a very frustrating book.&lt;/p&gt;&#xA;" OwnerUserId="145" LastEditorUserId="145" LastEditorDisplayName="" LastEditDate="2010-09-24T14:50:48.983" LastActivityDate="2010-09-24T14:50:48.983" CommentCount="1" />
  <row Id="7068" PostTypeId="2" ParentId="7055" CreationDate="2010-09-24T14:43:46.380" Score="2" ViewCount="" Body="&lt;p&gt;Talking about Gang-of-Four design patterns, I can't think of a program that does not use the Observer pattern. Also, as Jaco mentioned, Singleton is highly used too, unfortunately it has become a hammer (any programmer uses it even if it's not completely needed).&lt;/p&gt;&#xA;" OwnerUserId="1773" LastActivityDate="2010-09-24T14:43:46.380" CommunityOwnedDate="2011-03-03T21:02:19.503" CommentCount="3" />
  <row Id="7069" PostTypeId="2" ParentId="7045" CreationDate="2010-09-24T14:44:09.480" Score="6" ViewCount="" Body="&lt;p&gt;To somewhat balance the crowd of people hurt by VS; I always use &lt;code&gt;if(...)&lt;/code&gt;, but just because I think it looks nicer. &lt;/p&gt;&#xA;" OwnerUserId="2051" LastActivityDate="2010-09-24T14:44:09.480" CommentCount="4" />
  <row Id="7070" PostTypeId="2" ParentId="6929" CreationDate="2010-09-24T14:44:47.780" Score="1" ViewCount="" Body="&lt;p&gt;Personally, I've got a genealogy project on hold, and I'm concentrating on a (simple) game for my daughter. It's not an entirely contrived project, my daughter wants the game, though it could be easily be played on paper, and it will allow me to learn a bit about WCF. Like many other people, I learn more by doing than by simply reading about generic examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't have a specific need or inspiration, simply pick an existing app or tool that uses a technology or feature that you are interested in, and build your own from scratch. Specifically, try to build a better one from scratch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On my might-get-around-to-it-one-day list, is a synching tool like SyncToy and a replacement for SwitchOff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Better still, in the UK their is a programme call &lt;a href=&quot;http://www.it4communities.org.uk&quot; rel=&quot;nofollow&quot;&gt;IT4communities&lt;/a&gt; that tries to match needy charities with technical help from volunteers - many of which are programming projects - why not earn yourself some good karma in the process. Some countries have similar schemes running, perhaps under a Circuit Riders label.&lt;/p&gt;&#xA;" OwnerUserId="3545" LastActivityDate="2010-09-24T14:44:47.780" />
  <row Id="7071" PostTypeId="2" ParentId="7000" CreationDate="2010-09-24T14:51:22.943" Score="0" ViewCount="" Body="&lt;p&gt;As it stands, processor frequency isn't going to increase in the near future.  We're stuck around the 3 GHz mark (w/o overclocking).  Certainly, for many applications it may not be necessary to go beyond very basic multi-threading.  Obviously if you're building a user interface application, any intensive processing should be done on a background thread.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're building an application that is processing huge amounts of data that must be real-time, then yes, you probably should look into multi-threading programming.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For multi-threaded programming you will find that you will get diminishing returns on your performance; you can spend hours and improve the program by 15%, and then spend another week and only improve it by a further 5%.  &lt;/p&gt;&#xA;" OwnerUserId="3549" LastActivityDate="2010-09-24T14:51:22.943" />
  <row Id="7072" PostTypeId="2" ParentId="6979" CreationDate="2010-09-24T14:51:25.043" Score="19" ViewCount="" Body="&lt;p&gt;A person. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifically, an instructor I had when I was an undergraduate, who said (paraphrasing):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Languages are just tools in your&#xA;  toolbox. Don't be afraid to learn a&#xA;  new language. Don't memorize syntax;&#xA;  you can look that up. Instead, learn&#xA;  the constructs of programming; learn&#xA;  the fundamentals; the principles that govern all languages. Then you can work in&#xA;  any language.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It was invaluable advice. At the time, I felt overwhelmed at the idea of learning a new language; intimidated even. After that, I took the approach that I could learn any language in a matter of days, if not hours. A loop is a loop; an array is an array. Instead, I focused on principles: DRY, Single Responsibility Principle, etc. It changed my career. &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-09-24T14:51:25.043" CommunityOwnedDate="2011-05-04T09:36:28.593" />
  <row Id="7073" PostTypeId="2" ParentId="531" CreationDate="2010-09-24T14:52:14.887" Score="1" ViewCount="" Body="&lt;p&gt;Macbook Pro with an upgraded 1TB hard disk and Windows 7 through bootcamp.  The build quality pleases me as a hardware engineer and Windows 7 appeases my software engineer side.  OSX will suffice for iTunes. :)&lt;/p&gt;&#xA;" OwnerUserId="3550" LastActivityDate="2010-09-24T14:52:14.887" CommentCount="1" />
  <row Id="7074" PostTypeId="2" ParentId="6979" CreationDate="2010-09-24T14:55:43.333" Score="1" ViewCount="" Body="&lt;p&gt;I did a Developmentor training course in the late '90s that gave me a solid foundation in COM and Distributed Architecture that was the springboard to further learning.  Beyond that there have been various books that have been vital in staying one page ahead of the client whilst doing consultancy work!&lt;/p&gt;&#xA;" OwnerUserId="3550" LastActivityDate="2010-09-24T14:55:43.333" CommunityOwnedDate="2011-05-04T09:36:28.593" />
  <row Id="7075" PostTypeId="2" ParentId="6974" CreationDate="2010-09-24T14:58:57.903" Score="8" ViewCount="" Body="&lt;p&gt;This book was our reading list for a module on C++ in college.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seemed to be a kinda of 2 for 1 purchase so we wouldn't have to buy a UML book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The book's huge size combined with no flow and an obsession with ants is why it get my vote.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/wgSoI.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it may be in the running for the worst cover on a computer book.&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-24T14:58:57.903" CommentCount="9" />
  <row Id="7077" PostTypeId="2" ParentId="885" CreationDate="2010-09-24T15:00:37.147" Score="0" ViewCount="" Body="&lt;p&gt;I'm biased (because this is what I did), but I believe the best plan is to get your undergraduate and graduate degrees in two different but related fields (I have a BSEE and an MSCS).  This combination has been the core of my successful consulting career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I would agree with the other posters and not spend the time getting an MSCS if you are going to have a undergrad degree in CS, unless you are going into research etc.  But if you have an interest in business, get an MBA instead.  Or whatever field you might be interesting in applying your programming skills to.  You will then be a lot more employable in that field with the combination of degrees.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-24T15:00:37.147" />
  <row Id="7078" PostTypeId="2" ParentId="6929" CreationDate="2010-09-24T15:06:29.740" Score="0" ViewCount="" Body="&lt;p&gt;I look for tasks in my life which could automated, or more easily facilitated, and then try to find a programmatic solution.  This usually results in a nice backlog of projects, and I pick the one which closely matches what skills I want to develop.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some questions I continually ask are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What kind of data am I working with/on?  Will I ever want to analyze it (graphically, or otherwise) in the future?  Does it have any relationship to other data I'm working with?&lt;/li&gt;&#xA;&lt;li&gt;What repetitive tasks am I performing?  Am I working with something which has a programmable interface?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Once I get an idea, I try to capture it in a &lt;a href=&quot;http://freemind.sourceforge.net/wiki/index.php/Main_Page&quot; rel=&quot;nofollow&quot;&gt;mind map&lt;/a&gt; and store it somewhere so I can go back to it.  If it's very compelling, I try to work through the basic requirements and decide if it has priority over what I'm currently working on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also try to keep tabs on my wife and what tasks she regularly performs.  If there's something she does which could be made into an application, I see if she's interested.  If she is, I work through a few basic requirements with her, and do my own development cycle and walk through some prototypes with her.  This usually helps inspire a number of ideas for extensions or other projects.&lt;/p&gt;&#xA;" OwnerUserId="2294" LastActivityDate="2010-09-24T15:06:29.740" />
  <row Id="7079" PostTypeId="2" ParentId="1319" CreationDate="2010-09-24T15:06:42.637" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;What do people hate the most about&#xA;working for your company?&lt;/li&gt;&#xA;&lt;li&gt;What are you doing to grow and what&#xA;are the projections?&lt;/li&gt;&#xA;&lt;li&gt;How are you perceived in your&#xA;industry?&lt;/li&gt;&#xA;&lt;li&gt;Is the company involved in any&#xA;charity work?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-24T15:06:42.637" CommentCount="2" />
  <row Id="7082" PostTypeId="2" ParentId="837" CreationDate="2010-09-24T15:14:25.263" Score="0" ViewCount="" Body="&lt;p&gt;I just think the 10 year mark is a cut-off to make sure you are getting someone experienced, but you don't want to limit the pool so much by asking for 16 yrs. At that point you need to start looking into other factors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, what is the years of experience cut-off before you get into age discrimination? &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-24T15:14:25.263" />
  <row Id="7083" PostTypeId="2" ParentId="6974" CreationDate="2010-09-24T15:14:38.693" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Applying Domain-Driven Design and Patterns: With Examples in C# and .NET&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/hUEqS.jpg&quot; alt=&quot;Applying Domain-Driven Design and Patterns: With Examples in C# and .NET&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The shame was that I love DDD, love the ideas presented in the book and the author is intelligent and knowledgeable; but I've tried reading this book through maybe 5-10 times now and just can't do it. The author needs to know when to stop talk, stop going on tangents, stop providing 'did you know' or 'story about this paragraph' sections on damn near every single page and stop trying to name drop on every paragraph.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line: The book's got some good information/ideas, except that they're buried in so much BS, that you'll never get to them. This book could have been 1/4 its content, and it would have been good.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-24T15:14:38.693" CommentCount="3" />
  <row Id="7085" PostTypeId="2" ParentId="885" CreationDate="2010-09-24T15:22:38.767" Score="0" ViewCount="" Body="&lt;p&gt;Well no, it's not &lt;em&gt;necessary.&lt;/em&gt;  Personally, though, I know it's gotten my foot in the door on more jobs than I can count.  In our field, it's effectively a terminal degree.  Also getting some professional certifications (MCPD was a good one) really boosts your marketability.  I was laid off recently, and in this economy, I was out for a grand total of 6 weeks.  It helps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also felt like I learned more in the relatively short time I spent in grad school than in years of undergrad.  If you like academic environments but are sick of people who clearly don't want to be there dragging the experience down, take grad courses - it's night and day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get a PhD only if it's either a personal goal to attain one or you want to teach.&lt;/p&gt;&#xA;" OwnerUserId="1071" LastActivityDate="2010-09-24T15:22:38.767" />
  <row Id="7086" PostTypeId="2" ParentId="396" CreationDate="2010-09-24T15:25:41.927" Score="4" ViewCount="" Body="&lt;p&gt;I think one of the critical things when you have a group who work together is to have a small conference space with a whiteboard and a computer hookup (so you can remote in to your work computers) with a screen and a conference telephone. If you can't get the conference space, make sure the manager gets an office with room for a small conference table and a whiteboard. You need a place to exchange ideas freely and brainstorm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have a bunch of these here (we have over 100 devlopers) and they are in constant use for teams to discuss technicial issues or design possibilities, or for confernce calls with clients, etc. It keeps the discusions out of the work area so those not involved in the discussion can work without interruption. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Office space, ideally private offices for everyone, not likely you will get that though, so at least try for cubicles where you are all near each other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was once attacked in the office once, so I insist on a cubicle where I face outward and can see who is coming up on me. I think almost everyone feels more comfortable this way. Cubicles where every one faces the wall and everyone comes up from behind make people jumpy and they can be dangerous.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-09-24T15:25:41.927" />
  <row Id="7087" PostTypeId="2" ParentId="7055" CreationDate="2010-09-24T15:27:47.290" Score="26" ViewCount="" Body="&lt;p&gt;I'm pretty sure the most common is 'The Big Ball of Mud'.  Unfortunately for us all.&#xA;&lt;br&gt;&#xA;&lt;a href=&quot;http://en.wikipedia.org/wiki/Big_ball_of_mud&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Big_ball_of_mud&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3073" LastActivityDate="2010-09-24T15:27:47.290" CommunityOwnedDate="2011-03-03T21:02:19.503" CommentCount="3" />
  <row Id="7089" PostTypeId="2" ParentId="7045" CreationDate="2010-09-24T15:32:36.093" Score="2" ViewCount="" Body="&lt;p&gt;I &lt;strong&gt;never&lt;/strong&gt; put a space between the statement and the braket.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use spaces &lt;em&gt;inside&lt;/em&gt; keywords:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if( condition )&#xA;&#xA;while( condition )&#xA;&#xA;return( value )&#xA;&#xA;for( int i; i &amp;lt; condition; i++ )&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And for methods and functions I don't use spaces:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function(int i)&#xA;&#xA;class::method(int i, char c)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-24T15:32:36.093" CommentCount="6" />
  <row Id="7090" PostTypeId="2" ParentId="6847" CreationDate="2010-09-24T15:34:11.150" Score="5" ViewCount="" Body="&lt;h2&gt;Forth&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Because it is so malleable, it facilitates implementing domain specific languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Forth love if honk then&lt;/p&gt;&#xA;" OwnerUserId="3555" LastEditorUserId="1935" LastEditorDisplayName="" LastEditDate="2010-09-24T16:30:53.577" LastActivityDate="2010-09-24T16:30:53.577" CommunityOwnedDate="2010-09-24T15:34:11.150" CommentCount="1" />
  <row Id="7091" PostTypeId="2" ParentId="6157" CreationDate="2010-09-24T15:36:01.590" Score="4" ViewCount="" Body="&lt;p&gt;A &lt;strong&gt;Scripting Language&lt;/strong&gt; good for text processing.  Because you are going to have data that's in the wrong format for import or analysis or something. Having a tool that let's you reshape it quickly is invaluable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me that tool was first awk, then ruby. &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-24T15:36:01.590" CommentCount="3" />
  <row Id="7093" PostTypeId="1" AcceptedAnswerId="7110" CreationDate="2010-09-24T15:39:50.433" Score="6" ViewCount="390" Body="&lt;p&gt;I'm searching for an explanation of how MapReduce works with visuals. Specifically, a flow chart of actions and pictures of how it deals with information on the stack/memory in parallel to return.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone have source for this?&lt;/p&gt;&#xA;" OwnerUserId="1525" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-27T21:37:51.237" LastActivityDate="2010-09-27T22:11:57.257" Title="MapReduce explained with diagrams?" Tags="&lt;functional-programming&gt;&lt;teaching&gt;&lt;distributed-computing&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="6" />
  <row Id="7094" PostTypeId="2" ParentId="6974" CreationDate="2010-09-24T15:41:14.570" Score="-3" ViewCount="" Body="&lt;p&gt;There are far too many to list.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of the SAMS books qualify.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I generally don;t care to remember the shitty books.  I sometimes just rip them down the spine (if they are paperback) and throw them out or burn them.  I have not bought too many books recently.  &lt;/p&gt;&#xA;" OwnerUserId="3439" LastEditorUserId="3439" LastEditorDisplayName="" LastEditDate="2010-10-15T01:59:33.643" LastActivityDate="2010-10-15T01:59:33.643" CommentCount="1" />
  <row Id="7098" PostTypeId="2" ParentId="6974" CreationDate="2010-09-24T15:52:21.307" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.pragprog.com/titles/svn/pragmatic-version-control-using-subversion&quot; rel=&quot;nofollow&quot;&gt;Pragmatic Version Control using Subversion&lt;/a&gt; - Easily in the bottom rung among all the Pragmatic Programmer books I've read till now. Extremely thin on content. Some might argue that this book is for absolute beginners who are starting out with version control, but that's rubbish - whatever the book has, is not actually worth writing a book for.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-09-24T15:52:21.307" CommentCount="11" />
  <row Id="7100" PostTypeId="2" ParentId="6979" CreationDate="2010-09-24T15:57:27.250" Score="3" ViewCount="" Body="&lt;p&gt;When I was about 13 years old I read a Mexican video games magazine (Club Nintendo) that published a 3 series tutorial on making plain HTML pages. I read it, made my first web page and haven't stopped ever since.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I guess tearing apart computers since I was 8 years old (and making my dad very very angry) had something to do with it.&lt;/p&gt;&#xA;" OwnerUserId="3558" LastActivityDate="2010-09-24T15:57:27.250" CommunityOwnedDate="2011-05-04T09:36:28.593" />
  <row Id="7102" PostTypeId="2" ParentId="7038" CreationDate="2010-09-24T16:00:18.430" Score="4" ViewCount="" Body="&lt;p&gt;I had a similar problem after installing a couple of extensions. I ended up disabling them all and enabling them only when I actually use them. This really helped the experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: There seems to be a problem with certain Video Cards and drivers. You can check all the info here: &lt;a href=&quot;http://blogs.msdn.com/b/ddperf/archive/2010/09/16/vs2010-performance-and-bad-video-drivers-hardware-redux.aspx&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com/b/ddperf/archive/2010/09/16/vs2010-performance-and-bad-video-drivers-hardware-redux.aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3558" LastEditorUserId="3558" LastEditorDisplayName="" LastEditDate="2010-09-27T20:56:35.590" LastActivityDate="2010-09-27T20:56:35.590" CommentCount="5" />
  <row Id="7103" PostTypeId="2" ParentId="4384" CreationDate="2010-09-24T16:01:46.050" Score="8" ViewCount="" Body="&lt;p&gt;I took my PowerBook to a government facility somewhere in in the Nevada desert. Area 45 or something, I don't remember.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, while there I wrote a virus in a completely non-existant programming language without ever having written a line of code before in my life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I uploaded it into some big Alien space computer using some kind of off-world FTP protocol, and it brought their shields down. I ROFL'd and the army blew them up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Felt pretty heroic to me.&lt;/p&gt;&#xA;" OwnerUserId="1732" LastActivityDate="2010-09-24T16:01:46.050" CommentCount="4" />
  <row Id="7104" PostTypeId="2" ParentId="7038" CreationDate="2010-09-24T16:04:18.827" Score="1" ViewCount="" Body="&lt;p&gt;Are you running anti-virus software?  If so, try turning it off for a while and see if you notice an improvement.  It may be that it's configured for on-access scanning of certain file types, which can be a real performance killer with typical developer usage patterns.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-09-24T16:04:18.827" CommentCount="1" />
  <row Id="7108" PostTypeId="2" ParentId="7045" CreationDate="2010-09-24T16:20:32.133" Score="1" ViewCount="" Body="&lt;p&gt;I put a space between &lt;code&gt;if&lt;/code&gt; and &lt;code&gt;()&lt;/code&gt; -- &lt;code&gt;if&lt;/code&gt; is a keyword, not a function.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-09-24T16:20:32.133" />
  <row Id="7110" PostTypeId="2" ParentId="7093" CreationDate="2010-09-24T16:25:01.253" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=mVXpvsdeuKU&quot; rel=&quot;nofollow&quot;&gt;Here's a video lecture&lt;/a&gt; I saw a while ago that explains it, with diagrams and everything.  Unfortunately, the code examples are all in Scheme, but the explanation the professor gives of how it works is detailed and quite good.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-24T16:25:01.253" CommentCount="2" />
  <row Id="7113" PostTypeId="2" ParentId="837" CreationDate="2010-09-24T16:29:31.557" Score="0" ViewCount="" Body="&lt;p&gt;10 Years ago I was programming in MFC (Windows Desktop Programming).  In that time period Java matured and in my case was supplanted by Ruby on Rails. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Technology moves at a wicked pace, so very few people are going to have more than 10 years experience in anything specific other than a dead end language (Cobol, MUMPS, etc.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my case I have moved in and out of Management positions, but only my most recent jobs provide any relevant skills.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-09-24T16:29:31.557" />
  <row Id="7114" PostTypeId="2" ParentId="6974" CreationDate="2010-09-24T16:29:39.453" Score="6" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/XFVyA.jpg&quot; alt=&quot;Pro PHP Security&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://books.google.com/books?id=lVXnmsCCd3wC&quot; rel=&quot;nofollow&quot;&gt;Pro PHP Security&lt;/a&gt; by Snyder &amp;amp; Southwell for Apress.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whilst I've met a lot of webdev books and tutorials with an extremely poor attitude to security (hence &lt;a href=&quot;http://stackoverflow.com/q/2119083/18936&quot;&gt;this&lt;/a&gt; cry for help), this book reaches new depths by having code packed full of security holes &lt;em&gt;in a book that is supposed to be all about security&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I never read it in full, with loads of chapters barely touching on PHP, but even a cursory flick through revealed HTML-injections (XSS) in almost every example, even in the chapter about how to avoid XSS attacks. There's SQL-injection. There's directory traversal. This is in the ‘how to do it’ examples, not the ‘here's a common mistake to avoid’ bit! There are even (inadequate) suggestions on how to ‘safely’ use &lt;code&gt;eval&lt;/code&gt; and &lt;code&gt;system&lt;/code&gt;, which could much more sensibly be replaced by the word ‘DON'T’.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What solutions it does offer are largely wrong-headed and discredited approaches based on ‘sanitising’ or randomly escaping at the input stage, instead of really understanding how text escaping works and how you need to do the right kind of encoding as and when output in a particular format is required. This misunderstanding is a widespread cause of broken apps and it is heartbreaking to see it in a ‘security’ book. And then there are the totally bizarre recommendations like adding an ‘admin lock’ column to all your tables to try to enforce access logic. Whut? Oh, and the code's a mess of mixed-up logic and markup, natch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4 stars at Amazon! Buy your copy now!&lt;/p&gt;&#xA;" OwnerUserId="3561" LastActivityDate="2010-09-24T16:29:39.453" CommentCount="2" />
  <row Id="7115" PostTypeId="2" ParentId="7008" CreationDate="2010-09-24T16:32:15.300" Score="1" ViewCount="" Body="&lt;p&gt;It depends completely on the type of app, what a potential exploit might accomplish and the expected environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are running in an environment assumed to be safe then you could argue few to none.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are writing a web app that is publicly exposed, or an app that involves a publicly exposed API you would have to think through the likely scenarios like defacement, false submissions, authentication exploits, getting access to data not belonging to you, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are building an app that stores data locally you might need to be concerned with the security of that data, keeping it separate between users on a multi-user system, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO there are not any security concerns that are ALWAYS applicable in every situation.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-24T16:32:15.300" />
  <row Id="7116" PostTypeId="2" ParentId="6847" CreationDate="2010-09-24T16:33:01.867" Score="10" ViewCount="" Body="&lt;h2&gt;Scheme&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;An alternative Lisp.  My preferred implementation is &lt;a href=&quot;http://www.gnu.org/software/guile/guile.html&quot; rel=&quot;nofollow&quot;&gt;Guile&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1935" LastActivityDate="2010-09-24T16:33:01.867" CommunityOwnedDate="2010-09-24T16:33:01.867" />
  <row Id="7118" PostTypeId="2" ParentId="7038" CreationDate="2010-09-24T16:35:19.597" Score="2" ViewCount="" Body="&lt;p&gt;With 2GB of RAM, I would really start right there. The larger the projects in your solutions, the more RAM you will need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you're away from VS and resume, do you notice the hard drive working very hard? That's an indicator it's using the disk to handle increased demands for RAM... RAM runs in nanoseconds, disks in milliseconds, so you can see the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;RAM is cheap (2GB should be well less than 100USD unless your machine is very old), but your OS may limit how much you can have. It also is as simple of an upgrade as you can pull off in most cases.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-24T16:35:19.597" CommentCount="2" />
  <row Id="7119" PostTypeId="2" ParentId="6952" CreationDate="2010-09-24T16:36:19.070" Score="1" ViewCount="" Body="&lt;p&gt;If the solutions are equally bad or equally good in all possible estimates then I think you get to choose which one you would prefer.  Prefer to code and prefer to maintain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many of the answers have good points about checking that they are actually equal, but if they are from the current known data then pick the one that is the most comfortable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have already done that and the team is in a tie vote, bring in a tie breaker.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-24T16:36:19.070" />
  <row Id="7122" PostTypeId="2" ParentId="7000" CreationDate="2010-09-24T16:38:41.963" Score="2" ViewCount="" Body="&lt;p&gt;The hard part is all in splitting your CPU intensive algorithm to chunks of execution that could be threaded.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, a thread continuously jumping from a core to another will have performance penalties (due to missed first and second level CPU cache), especially in architectures where two distinct physical dies are employed. In this case thread-core affinity is a good thing.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-24T16:38:41.963" />
  <row Id="7125" PostTypeId="2" ParentId="531" CreationDate="2010-09-24T16:46:02.747" Score="1" ViewCount="" Body="&lt;p&gt;Google/HTC Nexus One&lt;/p&gt;&#xA;" OwnerUserId="3567" LastActivityDate="2010-09-24T16:46:02.747" />
  <row Id="7126" PostTypeId="1" AcceptedAnswerId="11017" CreationDate="2010-09-24T16:46:47.777" Score="18" ViewCount="1260" Body="&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: this question is an edited excerpt from a &lt;a href=&quot;http://trashbird1240.wordpress.com/2010/07/08/object-oriented-programming-i-just-dont-get-it/&quot; rel=&quot;nofollow&quot;&gt;blog posting&lt;/a&gt; I wrote a few months ago.  After placing a link to the blog in a &lt;a href=&quot;http://programmers.stackexchange.com/q/5427/1935&quot;&gt;comment&lt;/a&gt; on Programmers.SE someone requested that I post a question here so that they could answer it.  This posting is my most popular, as people seem to type &quot;I don't get object-oriented programming&quot; into Google &lt;em&gt;a lot&lt;/em&gt;.  Feel free to answer here, or in a comment at Wordpress.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What is object-oriented programming? &#xA;  No one has given me a satisfactory&#xA;  answer.  I feel like you will not get&#xA;  a good definition from someone who&#xA;  goes around saying “object” and&#xA;  “object-oriented” with his nose in the&#xA;  air. Nor will you get a good&#xA;  definition from someone who has done&#xA;  nothing but object-oriented&#xA;  programming. No one who understands&#xA;  both procedural and object-oriented&#xA;  programming has ever given me a&#xA;  consistent idea of what an&#xA;  object-oriented program actually does.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Can someone please give me their ideas of the advantages of object-oriented programming?&lt;/p&gt;&#xA;" OwnerUserId="1935" LastEditorUserId="1935" LastEditorDisplayName="" LastEditDate="2010-09-25T15:39:48.803" LastActivityDate="2011-02-09T23:41:22.823" Title="I don't get object-oriented programming" Tags="&lt;object-oriented&gt;" AnswerCount="11" CommentCount="8" FavoriteCount="7" />
  <row Id="7128" PostTypeId="2" ParentId="6847" CreationDate="2010-09-24T16:50:18.300" Score="1" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Befunge&quot; rel=&quot;nofollow&quot;&gt;Befunge&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Useful? No. Easy to use? No. Fun and interesting? Hell yes.&lt;/p&gt;&#xA;" OwnerUserId="2241" LastActivityDate="2010-09-24T16:50:18.300" CommunityOwnedDate="2010-09-24T16:50:18.300" />
  <row Id="7129" PostTypeId="2" ParentId="6974" CreationDate="2010-09-24T16:52:16.117" Score="5" ViewCount="" Body="&lt;p&gt;Oh, and, well, controversially, this, I guess:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://imgur.com/S5kUC.jpg&quot; alt=&quot;Stroustrup 3rd ed&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stroustrup's &lt;a href=&quot;http://www2.research.att.com/~bs/3rd.html&quot; rel=&quot;nofollow&quot;&gt;The C++ Programming Language, third edition&lt;/a&gt;. It's not the worst programming book I've ever read by a long chalk, but it's certainly the most disappointing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I remember liking the second edition, which was, at least, an attempt at writing in the same terse style as K&amp;amp;R's C masterpiece. Sadly, that edition predates templates and other features of the modern language, so isn't much use today.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The third edition jettisons any attempt at that terseness, ending up with a book three times as long as its predecessor, filling up its pages with endless tedious discussions of the author's ideas of best practices for object-oriented coding and software development in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Somewhere in between all the rambling there's a description of how the C++ language works, but good luck finding it. It's a sprawling mess of a book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Much like the language, eh?) (Sorry, that was uncalled for.) (Well maybe a &lt;em&gt;bit&lt;/em&gt; called for.)&lt;/p&gt;&#xA;" OwnerUserId="3561" LastActivityDate="2010-09-24T16:52:16.117" CommentCount="5" />
  <row Id="7130" PostTypeId="2" ParentId="7055" CreationDate="2010-09-24T16:52:52.220" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Facade&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think of any REST interface like Twitter or the SO APIs.  It's hiding a bunch of back end stuff that, at least in twitters case, can be horribly complex.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do I care which db tables @apklusk's tweets are stored in?  And that it has a fast cache?  And that @shemnon has such low readership the tweets are always out of memory?  That's the magic of the Facade.&lt;/p&gt;&#xA;" OwnerUserId="486" LastActivityDate="2010-09-24T16:52:52.220" CommunityOwnedDate="2011-03-03T21:02:19.503" />
  <row Id="7131" PostTypeId="2" ParentId="7017" CreationDate="2010-09-24T16:56:42.120" Score="8" ViewCount="" Body="&lt;p&gt;IMO, the real question isn't &quot;What should I do?&quot;, but &quot;Which book should I read?&quot; &lt;em&gt;Thinking in C++&lt;/em&gt; has already been mentioned, and it's a reasonable one. Under the circumstances, I think I'd probably go for &lt;em&gt;Accelerated C++&lt;/em&gt; instead though. Where &lt;em&gt;Thinking in C++&lt;/em&gt; mostly assumes you know nothing about programming and starts from the beginning, &lt;em&gt;Accelerated C++&lt;/em&gt; assumes you've programmed in some other language, and have a reasonable idea about programming in general. Rather than start from the very beginning, it just tries to teach you how to use C++ to do the kinds of tasks with which you're already familiar.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-09-24T16:56:42.120" CommentCount="2" />
  <row Id="7132" PostTypeId="2" ParentId="7126" CreationDate="2010-09-24T16:57:44.060" Score="0" ViewCount="" Body="&lt;p&gt;I think the Wikipedia page is a good place to get the fundamentals:&lt;br&gt;&#xA;&lt;a href=&quot;http://en.wikipedia.org/wiki/Object-oriented_programming&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Object-oriented_programming&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically the idea is that procedural programming, which is what OOP was trying to improve upon, focused on the processes being modeled.  OOP shifts to a model where the focus is on the &quot;things&quot; you are modeling, and the processes and data of those things are contained within those things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, as an example, let's say you were designing an application to track a task list.  In procedural programming, your top level entities in the model would be the processes that occur, such as creating a task, removing a task, changing the task info, etc.  In an OOP model, you would instead focus on creating a Task, and think about what data and processes that Task should be responsible for.  And then focus on what other objects Task should interact with, such as possibly a Note or something if you want to keep notes about Tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope that helps.  Just keep on reading about it and looking at code and it will suddenly &quot;click&quot;.  That was my experience.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-09-24T16:57:44.060" CommentCount="1" />
  <row Id="7135" PostTypeId="2" ParentId="1319" CreationDate="2010-09-24T17:12:48.790" Score="0" ViewCount="" Body="&lt;p&gt;I didn't see these mentioned.  Apologies if I overlooked.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What was your most recent project like?&lt;/li&gt;&#xA;&lt;li&gt;What is your process for estimation and planning?&lt;/li&gt;&#xA;&lt;li&gt;How do you structure your SLDC process?&lt;/li&gt;&#xA;&lt;li&gt;Will I be expected to be on call?&lt;/li&gt;&#xA;&lt;li&gt;How many developers have joined the team recently?  How many have left?  Why?&lt;/li&gt;&#xA;&lt;li&gt;What is the process if I wanted to request specific hardware or software to do my job?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-09-24T17:12:48.790" />
  <row Id="7136" PostTypeId="2" ParentId="3023" CreationDate="2010-09-24T17:16:53.100" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.dotnetrocks.com/&quot; rel=&quot;nofollow&quot;&gt;Dot Net Rocks&lt;/a&gt; podcast.  Also the &lt;a href=&quot;http://dnrtv.com/&quot; rel=&quot;nofollow&quot;&gt;DNRTV&lt;/a&gt; screencast from the same crew.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-09-24T17:16:53.100" />
  <row Id="7137" PostTypeId="2" ParentId="7126" CreationDate="2010-09-24T17:17:18.007" Score="29" ViewCount="" Body="&lt;p&gt;From your blog, it seems that you're familiar with both imperative and functional programming, and that you're familiar with the basic concepts involved in object-oriented programming, but you've just never really had it &quot;click&quot; as to what makes it useful.  I'll try to explain in terms of that knowledge, and hope that it's helpful to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At its core, OOP is a way to use the imperative paradigm to better manage high degrees of complexity by creating &quot;smart&quot; data structures that model the problem domain.  In a (standard procedural non-object-oriented) program, you've got two basic things: variables, and code that knows what to do with them.  The code takes input from the user and various other sources, stores it in variables, operates on it, and produces output data which goes to the user or various other locations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Object-oriented programming is a way to simplify your program by taking that basic pattern and repeating it on a smaller scale.  Just like a program is a large collection of data with code that knows what to do with it, each object is a small piece of data bound to code that knows what to do with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By breaking down the problem domain into smaller pieces and making sure as much data as possible is bound directly to code that knows what to do with it, you make it a lot easier to reason about the process as a whole and also about the sub-issues that make up the process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By grouping data into object classes, you can centralize code related to that data, making relevant code easier both to find and to debug.  And by encapsulating the data behind access specifiers and only accessing it through methods, (or properties, if your language supports them,) you greatly reduce the potential for data corruption or the violation of invariants.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And by using inheritance and polymorphism, you can reuse preexisting classes, customizing them to fit your specific needs, without having to either modify the originals or rewrite everything from the ground up.  (Which is a &lt;a href=&quot;http://joelonsoftware.com/articles/fog0000000069.html&quot; rel=&quot;nofollow&quot;&gt;thing you should never do&lt;/a&gt;, if you can avoid it.)  Just be careful you understand your base object, or you could end up with &lt;a href=&quot;http://www.snopes.com/humor/nonsense/kangaroo.asp&quot; rel=&quot;nofollow&quot;&gt;killer kangaroos&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, these are the fundamental principles of object-oriented programming: complexity management, code centralization and improved problem-domain modeling through the creation of object classes, inheritance and polymorphism, and increased safety without sacrificing power or control through the use of encapsulation and properties.  I hope this helps you understand why so many programmers find it useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: In response to Joel's question in the comments,&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Can you explain what an &quot;object-oriented program&quot; contains&#xA;  (other than these fancy defintions you've outlined) that is fundamentally&#xA;  different from an imperative program? How do you &quot;get the ball rolling?&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;A little disclaimer here.  My model of &quot;an object-oriented program&quot; is basically the Delphi model, which is very similar to the C#/.NET model since they were created by former Delphi team members.  What I'm saying here may not apply, or not apply as much, in other OO languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An object-oriented program is one in which all the logic is structured around objects.  Of course this has to be bootstrapped somewhere.  Your typical Delphi program contains initialization code that creates a singleton object called &lt;code&gt;Application&lt;/code&gt;.  At the start of the program, it calls &lt;code&gt;Application.Initialize&lt;/code&gt;, then a call to &lt;code&gt;Application.CreateForm&lt;/code&gt; for every form you want to load into memory from the beginning, and then &lt;code&gt;Application.Run,&lt;/code&gt; which displays the main form on screen and starts up the input/event loop that forms the core of any interactive computer programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Application and your forms poll for incoming events from the OS and translate them into method calls on your object.  One thing that's very common is the use of event handlers, or &quot;delegates&quot; in .NET-speak.  An object has a method that says, &quot;do X and Y, but also check to see if this particular event handler is assigned, and call it if it is.&quot;  An event handler is a method pointer--a very simple closure that contains a reference to the method and a reference to the object instance--that's used to extend the behavior of objects.  For example, if I have a button object on my form, I customize its behavior by attaching an OnClick event handler, which causes some other object to execute a method when the button is clicked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So in an object-oriented program, most of the work gets done by defining objects with certain responsibilities and linking them together, either through method pointers or by one object directly calling a method defined in another object's public interface.  (And now we're back to encapsulation.)  This is an idea that I had no concept of back before I took OOP classes in college.&lt;/p&gt;&#xA;" OwnerUserId="935" LastEditorUserId="935" LastEditorDisplayName="" LastEditDate="2010-09-24T20:22:29.513" LastActivityDate="2010-09-24T20:22:29.513" CommentCount="7" />
  <row Id="7138" PostTypeId="1" CreationDate="2010-09-24T17:17:19.227" Score="1" ViewCount="83" Body="&lt;p&gt;If you do a google search for pubvantage.com you will see that the  text is the name of a person named Ken. This has nothing to do with the site; we want it removed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, if you look at the site's sourcecode, the person's name &quot;ken lauer&quot; is nowhere to be found.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How is this possible, and how do we resolve as soon as possible?&lt;/p&gt;&#xA;" OwnerUserId="3576" LastActivityDate="2010-09-24T19:35:23.080" ClosedDate="2010-09-24T23:56:13.727" Title="A domain I own displays header text that appears nowhere in the source code. How do we get rid of this?" Tags="&lt;html&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="7141" PostTypeId="1" AcceptedAnswerId="7146" CreationDate="2010-09-24T17:23:07.780" Score="4" ViewCount="433" Body="&lt;p&gt;I asked this on Stack but I want to hear your guys opinions as well. Plus it's more suited to this site anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hey guys, so I'm in I guess kind of an interesting situation right now. Here it goes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I graduated college in June of this year. While I was in school, I had two jobs as a developer. My first job was a couple of years ago for about a year where I worked with LAMP. My second job was about a year ago where I worked for like 6 months with C#/ASP.NET/Oracle/SQL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using both of those jobs as experience I got hired right out of school in June for a company that does VB.NET/ASP.NET MVC/SQL. I have been here since July.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been getting some feedback from some of my past recruiters that I should start looking for something in the C# world, as that's where the money lies and that's where I should go to prepare for advancement in my future. He seems to think I'll get stale if I stay with VB.NET and this company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, this company has said if I stayed here for another year and kept up the good work I would most likely fit their Sr. Developer status and receive a promotion to that level. I told him this and he thinks that no matter the level, staying in VB.NET is a bad idea in general, and he thinks I should get out as soon as possible if I have the chance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you guys think? And if any of you are hiring managers at your companies, do you mind shining some light on the situation as well too? Thanks.&lt;/p&gt;&#xA;" OwnerUserId="3577" LastActivityDate="2010-09-28T22:37:32.300" Title="Current Software Developer Career Path Question" Tags="&lt;career&gt;&lt;c#&gt;&lt;career-advice&gt;&lt;vb.net&gt;" AnswerCount="3" CommentCount="3" />
  <row Id="7142" PostTypeId="2" ParentId="7045" CreationDate="2010-09-24T17:24:13.403" Score="3" ViewCount="" Body="&lt;p&gt;I always use &lt;code&gt;if (...)&lt;/code&gt; to differentiate it from function call, and by the reason that it is more widely used than &lt;code&gt;if(...)&lt;/code&gt;. Formatting for me is for readability, not for being unique. Hence I've been always use the format that has been widely adapted, unless I have really good reason not to do so. Most of formatting arguments I have ever had were just biased debates for personal preference, rather than the usability or readability itself.&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-09-24T17:24:13.403" />
  <row Id="7143" PostTypeId="2" ParentId="7045" CreationDate="2010-09-24T17:24:16.603" Score="0" ViewCount="" Body="&lt;p&gt;I prefer &lt;code&gt;if ()&lt;/code&gt; over &lt;code&gt;if()&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again, like the others above have stated, it's totally a matter of personal tastes and coding styles.  I'll usually do method names like &lt;code&gt;this()&lt;/code&gt;, but I don't necessarily consider &lt;code&gt;if&lt;/code&gt; to be a method name.  If I don't add the space after the keyword, it almost feels like a run-on sentence to me.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-09-24T17:24:16.603" />
  <row Id="7144" PostTypeId="2" ParentId="7126" CreationDate="2010-09-24T17:26:56.880" Score="0" ViewCount="" Body="&lt;p&gt;OOP attempts to model real world concepts in terms of objects and interactions between them. As humans, we tend to process the world in terms of objects. The world is full of objects that have certain properties and can do stuff like interact with other objects. OOP allows to model the world in similar terms.&#xA;For example,&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Person is an Object. A person has some properties, like age and gender. A person can do things: eat, sleep, drive a car.&lt;/li&gt;&#xA;&lt;li&gt;Car is also an Object (although of different type). It also has properties like make, model and year. A car can do things: move.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But a car can't move on its own, it needs a person to drive it - interaction between Objects.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-09-24T17:26:56.880" CommentCount="1" />
  <row Id="7145" PostTypeId="2" ParentId="531" CreationDate="2010-09-24T17:27:05.943" Score="1" ViewCount="" Body="&lt;p&gt;A 30 inch primary monitor.  Way less horizontal scrolling of source code while still having useful panels docked to the sides of Visual Studio.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The existing 20&quot; monitor is still attached as a secondary (in portrait orientation) to display the web app while debugging.&lt;/p&gt;&#xA;" OwnerUserId="3578" LastActivityDate="2010-09-24T17:27:05.943" CommentCount="1" />
  <row Id="7146" PostTypeId="2" ParentId="7141" CreationDate="2010-09-24T17:29:54.403" Score="7" ViewCount="" Body="&lt;p&gt;While I hate to say it the recruiter probably has a point.  Too many HR departments have a template for a job by title and screen by it.  In the late 90s this created classics like &quot;requires 8 years Java experience&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a programmer I realize that you knowing $HOT_LANGUAGE is less important than you understanding the field (with some caveats...if we're a functional programming shop, for example, and you've got none on you resume I might go &quot;hmmm&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, stay with a job if it suits your needs in terms of challenge, enjoyment, and pay.  You can get the experience elsewhere.  Lots of people on the web talk about building a portfolio.  Next time you're developing a private app do it in C# and put it on your website.  Join a C# open source project and get some commits in that you can point at.  Join your local .NET user's group and do presentations about C# work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You probably will be limited by only having VB on your resume but you can get the C# on it (or LISP or Ruby or whatever) without changing jobs.&lt;/p&gt;&#xA;" OwnerUserId="1209" LastActivityDate="2010-09-24T17:29:54.403" CommentCount="3" />
  <row Id="7148" PostTypeId="2" ParentId="7055" CreationDate="2010-09-24T17:38:39.820" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Observer&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've ever used an event. You've used Observer.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-24T17:38:39.820" CommunityOwnedDate="2011-03-03T21:02:19.503" CommentCount="1" />
  <row Id="7149" PostTypeId="2" ParentId="531" CreationDate="2010-09-24T17:40:44.137" Score="0" ViewCount="" Body="&lt;p&gt;Help and Manual - &lt;a href=&quot;http://www.ec-software.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.ec-software.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;H&amp;amp;M has saved me &lt;em&gt;so&lt;/em&gt; much time in creating and maintaining help files.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-24T17:40:44.137" />
  <row Id="7150" PostTypeId="2" ParentId="531" CreationDate="2010-09-24T17:42:37.503" Score="7" ViewCount="" Body="&lt;p&gt;Internet. No lie; I programmed without access to the internet for a time (I was really, really broke).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I, of course, take it for granted now. But when I remember back to a couple of years ago having to take a bus to a library or campus to get online to read a technical paper, msdn article, or a blog... I thank the heavens for high speed internet at home.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-24T17:42:37.503" CommentCount="1" />
  <row Id="7151" PostTypeId="2" ParentId="7138" CreationDate="2010-09-24T17:45:34.970" Score="1" ViewCount="" Body="&lt;p&gt;Ask &lt;a href=&quot;http://www.linkedin.com/in/kenlauher&quot; rel=&quot;nofollow&quot;&gt;Ken Lauher&lt;/a&gt;. He is Director of Marketing at ContextWeb, the company that hosts your website.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Technically, it looks like it is a web page published on &lt;a href=&quot;http://www.pubvantage.com&quot; rel=&quot;nofollow&quot;&gt;http://www.pubvantage.com&lt;/a&gt; that redirects you to the hosted website at &lt;a href=&quot;http://exchange.contextweb.com/sellingdesk/pubvantage/&quot; rel=&quot;nofollow&quot;&gt;http://exchange.contextweb.com/sellingdesk/pubvantage/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the page that redirects has Ken Lauher as the title, this is a problem as Google will take it in consideration.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-09-24T19:35:23.080" LastActivityDate="2010-09-24T19:35:23.080" />
  <row Id="7152" PostTypeId="2" ParentId="7126" CreationDate="2010-09-24T17:49:28.753" Score="0" ViewCount="" Body="&lt;p&gt;The way I first understood it is :&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before Object-oriented programming, you had &lt;a href=&quot;http://en.wikipedia.org/wiki/Structured_programming&quot; rel=&quot;nofollow&quot;&gt;Structured programming&lt;/a&gt;. Everything is centered around the process. The first question you got to ask yourself is &quot;&lt;em&gt;What I want to do with the information?&lt;/em&gt;&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With Object-oriented programming, it's centered around the data. The first question you got to ask yourself is &quot;&lt;em&gt;Witch information I need to deals with?&lt;/em&gt;&quot;. This make abstraction easier.&lt;/p&gt;&#xA;" OwnerUserId="19" LastEditorUserId="19" LastEditorDisplayName="" LastEditDate="2010-09-24T19:11:47.590" LastActivityDate="2010-09-24T19:11:47.590" />
  <row Id="7153" PostTypeId="2" ParentId="7126" CreationDate="2010-09-24T17:56:57.373" Score="1" ViewCount="" Body="&lt;p&gt;It really sounds like &quot;I don't get C programming. Can't we just use assembly language?&quot; to me.&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-09-24T17:56:57.373" CommentCount="4" />
  <row Id="7154" PostTypeId="2" ParentId="7126" CreationDate="2010-09-24T17:58:14.783" Score="0" ViewCount="" Body="&lt;p&gt;I wrote a blog post a while ago that you might find helpful: &lt;a href=&quot;http://www.virtuosimedia.com/tutorials/procedural-vs-oop-explained&quot; rel=&quot;nofollow&quot;&gt;Procedural vs. OOP Explained&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="73" LastActivityDate="2010-09-24T17:58:14.783" />
  <row Id="7155" PostTypeId="2" ParentId="2331" CreationDate="2010-09-24T18:10:06.783" Score="-2" ViewCount="" Body="&lt;p&gt;The language feature that allows programmers to write uncommented or meaningless-commented code.&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-09-24T18:10:06.783" CommentCount="4" />
  <row Id="7156" PostTypeId="2" ParentId="1013" CreationDate="2010-09-24T18:28:53.690" Score="5" ViewCount="" Body="&lt;p&gt;Bloodshead's DevC++. The editor is a shambles, half of the stated features don't work, or only work some of the time, hasn't been maintained in many years, ships with G++ 3.x... need I go on?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eclipse is a close second. Just can't stand the emphasis on making the IDE look pretty instead of making it functional -- it's the Zune software of IDEs. And there were severe problems with the subversion plugin last time I used it which made it impossible to rename files...&lt;/p&gt;&#xA;" OwnerUserId="886" LastActivityDate="2010-09-24T18:28:53.690" CommunityOwnedDate="2010-09-24T18:28:53.690" CommentCount="14" />
  <row Id="7157" PostTypeId="1" AcceptedAnswerId="7322" CreationDate="2010-09-24T18:37:39.077" Score="8" ViewCount="308" Body="&lt;p&gt;I was wondering if there was a standard for laying out a class's regions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I currently use&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Fields&#xA;Constructor&#xA;Properties&#xA;Public Methods&#xA;Private Methods&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Fields&lt;/code&gt; being Private Properties and &lt;code&gt;Properties&lt;/code&gt; being the public ones. I'll normally use subregions within that if needed, or will occasionally add other regions below (such as interface or baseClass members). &lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2011-03-05T03:14:49.983" Title="How do you normally layout a class's regions?" Tags="&lt;programming-practices&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="2" />
  <row Id="7158" PostTypeId="2" ParentId="2254" CreationDate="2010-09-24T18:38:56.157" Score="1" ViewCount="" Body="&lt;p&gt;Currently using my second best choice (as we don't have any MS Ergo keyboards around here for me to use)...  Sun Microsystems &quot;Unix&quot; keyboard.  Not as good a feel as an IBM, but better than most.  Capslock and control reversed from what most other keyboards have (capslock being pretty much useless unless you're posting about LOL CATS).  Small backspace key (I absolutely HATE those oversized backspace keys!).  A little wider than I like what with having the Sun specific keys, but since I occasionally use a SunRay, it is handy to have them (instead of having to memorize wacky key combos).&lt;/p&gt;&#xA;" OwnerUserId="715" LastActivityDate="2010-09-24T18:38:56.157" CommunityOwnedDate="2011-01-17T21:43:24.260" />
  <row Id="7159" PostTypeId="2" ParentId="7157" CreationDate="2010-09-24T18:42:19.660" Score="10" ViewCount="" Body="&lt;p&gt;Sub Regions? Does your class have a &lt;a href=&quot;http://en.wikipedia.org/wiki/Single_responsibility_principle&quot; rel=&quot;nofollow&quot;&gt;Single Responsibility&lt;/a&gt;? (implicit in that ... my answer is &quot;Rarely any regions, except maybe to group properties, constructors and methods&quot;... but even then, I don't use it that much)&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-24T18:42:19.660" CommentCount="2" />
  <row Id="7160" PostTypeId="2" ParentId="7157" CreationDate="2010-09-24T18:42:45.323" Score="4" ViewCount="" Body="&lt;p&gt;It varies from language to language.  Since I'm a Delphi coder, I tend to follow the Delphi standard convention, which looks like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;type&#xA;  TMyClass = class(TBaseClass)&#xA;  private&#xA;    private fields&#xA;    private methods&#xA;  protected&#xA;    protected fields&#xA;    protected methods&#xA;    protected properties&#xA;  public&#xA;    constructor(s)&#xA;    destructor&#xA;    public methods&#xA;    public properties&#xA;  end;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I find it a good way to organize information that's easy to read and understand.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-24T18:42:45.323" CommentCount="2" />
  <row Id="7161" PostTypeId="2" ParentId="7157" CreationDate="2010-09-24T18:49:35.097" Score="2" ViewCount="" Body="&lt;p&gt;It's a judgement call for me.  I use regions when they are needed for readability.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also use a different color in my Visual Studio color scheme (currently a dark red) to make them stand out from the rest of the code.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;An example of where I might use a #region: If I write a test method for a unit test that requires a multi-line snippet of XML, the XML string will break the usual indentation (since it starts along the left-hand margin of the code window.  To hide the ugliness, I will wrap it in a #region, so that I can collapse it.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-03-05T03:14:49.983" LastActivityDate="2011-03-05T03:14:49.983" />
  <row Id="7162" PostTypeId="2" ParentId="4319" CreationDate="2010-09-24T18:53:48.083" Score="1" ViewCount="" Body="&lt;p&gt;In my experience the best way to learn programming symbols you don't use often is to pick a couple to concentrate on and &lt;strong&gt;add these symbols to your passwords&lt;/strong&gt;.  Force yourself to touch-type your password no matter how long it takes or even if you have to peek. Because most people enter many passwords per day you'll learn the symbols by necessity! When you've mastered those symbols, change your password to include a few others you want to work on. &#xA;So you basically you get dual benefit, learning to type symbols and having stronger more swapped out passwords.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;{myPassword}&lt;/p&gt;&#xA;" OwnerUserId="3584" LastActivityDate="2010-09-24T18:53:48.083" />
  <row Id="7163" PostTypeId="1" AcceptedAnswerId="7182" CreationDate="2010-09-24T19:09:12.883" Score="6" ViewCount="148" Body="&lt;p&gt;I am a college grad student. I love programming in java. I understand that C# has brighter days ahead. I am planning to broaden my appeal to my prospective recruiters by learning more languages but I don't know  much about the .NET platform. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I coded a bit in C++, but I have a strong resistance towards it because I feel it is too cumbersome, whereas in Java, everything is so intuitive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So do you think C# is similar to Java?&lt;/p&gt;&#xA;" OwnerUserId="2158" LastActivityDate="2010-09-24T20:17:02.793" Title="If one is proficient in Java, is it easy to cross over to C# ?" Tags="&lt;recommendations&gt;" AnswerCount="5" CommentCount="2" />
  <row Id="7164" PostTypeId="2" ParentId="966" CreationDate="2010-09-24T19:14:32.873" Score="3" ViewCount="" Body="&lt;p&gt;This is a very inspirational book on creativity.  Something sorely needed in this 'new' tech world full of 'best practices' and 'accepted methodologies'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/bHLJD.jpg&quot; alt=&quot;Ignore Everybody&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-24T19:14:32.873" CommunityOwnedDate="2011-01-06T15:42:27.030" />
  <row Id="7165" PostTypeId="2" ParentId="57" CreationDate="2010-09-24T19:19:18.073" Score="1" ViewCount="" Body="&lt;p&gt;Apparently tabs mess stuff up in Delphi so I don't use tabs in Delphi. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However I do everything else using Emacs and always use tabs because my tabs go exactly where I want them to go.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-09-24T19:19:18.073" CommentCount="3" />
  <row Id="7166" PostTypeId="1" AcceptedAnswerId="7168" CreationDate="2010-09-24T19:22:15.120" Score="2" ViewCount="329" Body="&lt;p&gt;Thoughts on these?  Python is one example, and no this is not a stab against Python I like the language.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What languages have a indentation requirement?&lt;/p&gt;&#xA;" OwnerUserId="136" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:14:18.210" LastActivityDate="2010-11-16T16:05:24.133" Title="Do you find languages with indentation requirements cumbersome?" Tags="&lt;language-design&gt;" AnswerCount="7" CommentCount="8" />
  <row Id="7168" PostTypeId="2" ParentId="7166" CreationDate="2010-09-24T19:26:31.060" Score="11" ViewCount="" Body="&lt;p&gt;In Makefiles, it's annoying. In python, I find it very apropos and it makes the syntax a lot cleaner. I think the thing that makes it better in python is that no special characters are required, the only requirement is that you be consistent. You should be doing it anyway, so you get no cost added by following it.&lt;/p&gt;&#xA;" OwnerUserId="1767" LastActivityDate="2010-09-24T19:26:31.060" CommentCount="5" />
  <row Id="7169" PostTypeId="2" ParentId="7163" CreationDate="2010-09-24T19:28:01.353" Score="1" ViewCount="" Body="&lt;p&gt;Five years ago, I was exactly in the same situation as you. I went with the &lt;a href=&quot;http://www.codes-sources.com/livres/livre-precis-concis-227.aspx&quot; rel=&quot;nofollow&quot;&gt;French translation&lt;/a&gt; of O'reilly  &lt;a href=&quot;http://my.safaribooksonline.com/059600429X&quot; rel=&quot;nofollow&quot;&gt;C# language, Pocket Reference&lt;/a&gt;. With this book and my knowledge of OOP, I was up and running. It took more time to master the language, though&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is the &lt;a href=&quot;http://oreilly.com/catalog/0636920013365/&quot; rel=&quot;nofollow&quot;&gt;up-to-date version&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="3192" LastActivityDate="2010-09-24T19:28:01.353" />
  <row Id="7170" PostTypeId="2" ParentId="7163" CreationDate="2010-09-24T19:31:33.027" Score="1" ViewCount="" Body="&lt;p&gt;I had no problems at all being productive quickly in C# coming from a Java background.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is, without code review, the code you're going to start off writing in C# might not be the code you would have written with a year's experience, but it'll work, and the transition is pretty painless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The IDE is also really, really nice, in my opinion.&lt;/p&gt;&#xA;" OwnerUserId="3412" LastActivityDate="2010-09-24T19:31:33.027" />
  <row Id="7172" PostTypeId="2" ParentId="2254" CreationDate="2010-09-24T19:35:26.630" Score="0" ViewCount="" Body="&lt;p&gt;I don't much care which keyboard I use as long as it is the same for all of the computers I work on. I find that I wind up fixing typos far too frequently when the keyboards I'm using don't reasonably match.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-09-24T19:35:26.630" CommunityOwnedDate="2011-01-17T21:43:24.260" />
  <row Id="7173" PostTypeId="2" ParentId="154" CreationDate="2010-09-24T19:38:26.460" Score="8" ViewCount="" Body="&lt;p&gt;One of my favorites from long ago.  I think I lived this at least 3 times during the late 90s before the .com implosion:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/vMaDw.gif&quot; alt=&quot;http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/20000/3000/800/23887/23887.strip.gif&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="3073" LastActivityDate="2010-09-24T19:38:26.460" />
  <row Id="7176" PostTypeId="2" ParentId="1013" CreationDate="2010-09-24T19:43:09.343" Score="1" ViewCount="" Body="&lt;p&gt;Harvest Version Control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Computer Associates should be embarrassed to put a name on this thing.  Everything is wrong with it from a version control point of view, and they market it as version control, which it's not; it's deployment control.&lt;/p&gt;&#xA;" OwnerUserId="3412" LastActivityDate="2010-09-24T19:43:09.343" CommunityOwnedDate="2011-02-01T07:56:02.387" CommentCount="1" />
  <row Id="7177" PostTypeId="2" ParentId="6847" CreationDate="2010-09-24T19:47:42.840" Score="3" ViewCount="" Body="&lt;h2&gt;Brainf*ck&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Minimalistic and with a name that says it all (actually the name applies to most languages I know, sometimes your just stare at the code wondering why it doesn't work or why it does works).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As it's a Turing-complete language, it is (with enough memory) capable of computing any computable function or simulating any other computational model.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not a practical language, but for academic exercises it's great.&lt;/p&gt;&#xA;" OwnerUserId="2725" LastActivityDate="2010-09-24T19:47:42.840" CommunityOwnedDate="2010-09-24T19:47:42.840" CommentCount="1" />
  <row Id="7178" PostTypeId="2" ParentId="6979" CreationDate="2010-09-24T19:48:08.830" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/&quot;&gt;stackoverflow.com&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-09-24T19:48:08.830" CommunityOwnedDate="2011-05-04T09:36:28.593" />
  <row Id="7179" PostTypeId="2" ParentId="2757" CreationDate="2010-09-24T19:52:39.310" Score="0" ViewCount="" Body="&lt;p&gt;Three, with the left being web browsers (output), center being vertical (code), and right being smaller (email, chat, API).&lt;/p&gt;&#xA;" OwnerUserId="3412" LastActivityDate="2010-09-24T19:52:39.310" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="7180" PostTypeId="2" ParentId="4123" CreationDate="2010-09-24T20:04:21.540" Score="0" ViewCount="" Body="&lt;p&gt;I used to &quot;Think&quot; I really understood OOP. Well, that was until I read &quot;Essential Actionscript 3.0&quot; by Colin Moock. Now I &quot;Think&quot; I really understand OOP.&lt;/p&gt;&#xA;" OwnerUserId="1785" LastActivityDate="2010-09-24T20:04:21.540" />
  <row Id="7181" PostTypeId="1" CreationDate="2010-09-24T20:04:31.600" Score="8" ViewCount="180" Body="&lt;p&gt;I have been using mysql for the same amount of time I have been using PHP. However I feel about 10x more confident in PHP; or any other programming language. But I just can't seem to really really grasp SQL. I mean, I can select, update, insert, delete, join, etc. but when it comes to more complex stuff I am lost. How to write a more complicated select statement, how to use indexes properly, which engine to use, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For some reason I really find the mysql docs hard to follow, but the php ones easy to follow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am starting to think that maybe my brain is just wired in a way that makes programming make since but sql confusing. I don't know. Most people think Regex is so confusing but to me it makes more scientific sense than how to construct an sql statement. Please don't get me wrong, I am not hating on SQL, I really like it, I just want to understand it better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whats the best/fastest way to really master MySQL? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I say &quot;master&quot; I don't mean the guru among gurus, I mean smart enough to figure out most of the questions I ask on SO myself without needing help. &lt;/p&gt;&#xA;" OwnerUserId="1785" LastActivityDate="2010-12-23T05:29:53.373" Title="How to really master MySQL?" Tags="&lt;mysql&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="5" />
  <row Id="7182" PostTypeId="2" ParentId="7163" CreationDate="2010-09-24T20:05:51.240" Score="7" ViewCount="" Body="&lt;p&gt;The language is VERY similar. The frameworks are VERY different. So depending on if you do web apps, client side apps, installed apps, or whatever, it might seem easy or alien.&lt;/p&gt;&#xA;" OwnerUserId="3564" LastActivityDate="2010-09-24T20:05:51.240" CommentCount="1" />
  <row Id="7183" PostTypeId="1" CreationDate="2010-09-24T20:10:42.073" Score="5" ViewCount="143" Body="&lt;p&gt;How to find really good programming seminars in your area?&lt;/p&gt;&#xA;" OwnerUserId="1785" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T16:54:49.813" LastActivityDate="2010-09-30T16:54:49.813" Title="How to find really good programming seminars in your area?" Tags="&lt;self-improvement&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="3" />
  <row Id="7184" PostTypeId="2" ParentId="7163" CreationDate="2010-09-24T20:13:13.440" Score="0" ViewCount="" Body="&lt;p&gt;As the languages are similar you'll probably find it easy to pick up the basics - but as you start getting more proficient in C# you'll start noticing the differences and idiosyncrasies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are still coding in both you might find that this causes you to try to use the wrong construct in the wrong language, but with modern IDEs with intellisense this is less of an issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C# is an easy language to pick up, but it's quite hard to master - if only because there's so much to learn.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-24T20:13:13.440" />
  <row Id="7185" PostTypeId="2" ParentId="1013" CreationDate="2010-09-24T20:13:37.163" Score="3" ViewCount="" Body="&lt;p&gt;This goes back a bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There was a lot to like about the IBM 360/370 and the OS.  Much of what now looks horribly primitive about it was reasonably innovative at the time.  The assembly language was quite nice, and it could come with compilers for the standard languages of the day, FORTRAN and COBOL (and also PL/I, if anybody actually wanted to use the thing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, everything that was done with the system was done with JCL, the Job Control Language, and that was a disaster.  Every executable had its own section in the resulting deck, and all files used had to be connected to the disk system in excruciating detail with their DD cards.  Any IBM shop would have several people whose only job was dealing with JCL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They did have canned procedures, which saved us from fist-sized bundles of punch cards to run COBOL programs, but even with that it took over a dozen cards to assemble and run an assembly language program, not counting the program deck.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-24T20:13:37.163" CommunityOwnedDate="2011-02-01T07:56:02.387" CommentCount="3" />
  <row Id="7186" PostTypeId="2" ParentId="1013" CreationDate="2010-09-24T20:13:59.207" Score="8" ViewCount="" Body="&lt;p&gt;Rational's (now IBM) suite of tools (although some are better than others.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a suite created and run by a group of people who were supposed to be experts in software development processes, their software sure does stink.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bonus bug: The last time I needed to use it, they used RequisitePro (maybe?) for requirements, but they did not buy enough licenses for the team.  Whenever too many people happened to try at once, the Rational license server would enter a hard loop, and bring down the entire suite until it was rebooted.  Fun stuff!&lt;/p&gt;&#xA;" OwnerUserId="3073" LastActivityDate="2010-09-24T20:13:59.207" CommunityOwnedDate="2011-02-01T07:56:02.387" CommentCount="6" />
  <row Id="7187" PostTypeId="2" ParentId="7163" CreationDate="2010-09-24T20:17:02.793" Score="0" ViewCount="" Body="&lt;p&gt;C# was originally created to be a competitor to Java iirc, and like Java it was designed to make for easier transitioning from c-style languages (C, C++, Java). So natuarally the syntax very similar. In recent years, C# and Java have seen additions in different directions, so they're slowly diverging from their common roots.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that said, the frameworks are can be quite different, which is the most common learning hurdle with a new language/platform.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-24T20:17:02.793" />
  <row Id="7188" PostTypeId="1" CreationDate="2010-09-24T20:21:12.697" Score="22" ViewCount="1448" Body="&lt;p&gt;We all know the list of classic programming books:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Code Complete&lt;/li&gt;&#xA;&lt;li&gt;Refactoring&lt;/li&gt;&#xA;&lt;li&gt;The Pragmatic Programmer&lt;/li&gt;&#xA;&lt;li&gt;Etc... &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That's not what I'm looking for here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead, tell me &lt;strong&gt;which programming books have you actually read more than once, and why?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any book worthy of a second read deserves community acclaim. The classics may still end up on this list, that's fine. But I hope we can draw attention to some of the &lt;strong&gt;lesser known tomes&lt;/strong&gt; that have made us better programmers though the years.&lt;/p&gt;&#xA;" OwnerUserId="3587" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:48:20.527" LastActivityDate="2011-02-10T20:01:22.253" CommunityOwnedDate="2011-02-10T17:23:39.897" Title="Which programming book have you read more than once?" Tags="&lt;learning&gt;&lt;self-improvement&gt;&lt;books&gt;" AnswerCount="32" FavoriteCount="18" />
  <row Id="7189" PostTypeId="2" ParentId="7188" CreationDate="2010-09-24T20:37:20.360" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The C Programming Language&lt;/strong&gt;&lt;br&gt;&#xA;By Brian Kernighan and Dennis Ritchie&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By far the best programming language book ever written. I read it from start to end three times. Every time I found something new and I was astonished by the quality of the text.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Programming Windows&lt;/strong&gt;&lt;br&gt;&#xA;By Charles Petzold&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not so good after all (I found better Windows API books) but in the early days it was my master, I read it at least twice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even Code Complete deserve some re-reads.&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-25T10:16:27.023" LastActivityDate="2010-09-25T10:16:27.023" CommunityOwnedDate="2011-02-10T17:23:39.897" CommentCount="2" />
  <row Id="7190" PostTypeId="2" ParentId="7183" CreationDate="2010-09-24T20:40:33.627" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.meetup.com/&quot; rel=&quot;nofollow&quot;&gt;Meetup.com&lt;/a&gt; is pretty decent.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-24T20:40:33.627" CommentCount="1" />
  <row Id="7192" PostTypeId="2" ParentId="7181" CreationDate="2010-09-24T20:48:08.930" Score="2" ViewCount="" Body="&lt;p&gt;Fastest way I found to &quot;master&quot; anything was to challenge myself with it. Take a set of data and write down eight to ten different things you would like to query for. A group of students you might want to find the average age of everyone grouped by the grade point average rounded to the nearest whole number. Then write the queries for them. Start with one table, then add more. Practice data joins and built in functions. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-24T20:48:08.930" />
  <row Id="7195" PostTypeId="2" ParentId="7126" CreationDate="2010-09-24T21:11:13.047" Score="3" ViewCount="" Body="&lt;p&gt;There's various sorts of OO systems, and it's hard to get a definition everybody will agree on.  Rather than try to show how Java's OO is similar to the Common Lisp Object System, I'll start with something more conventional, step by step.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suppose you have a lot of objects existing as scattered data.  Points, for example, might be elements in an X, a Y, and a Z array.  In order to consider a point itself, it makes sense to pull all the data together into something like a C &lt;code&gt;struct&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, for any data object, we've got the data all together.  However, in a procedural program, the code is scattered.  Suppose we're dealing with geometric shapes.  There's a large function to draw shapes, and it needs to know about all the shapes.  There's a large function to find area, and another for perimeter.  The code for a circle is scattered through multiple functions, and in order to add another type of shape we need to know which functions to change.  In an object-oriented system, we gather the functions into the same kind of thing (&lt;code&gt;class&lt;/code&gt;) as the data.  Therefore, if we want to look at all the circle code, it's there in the &lt;code&gt;Circle&lt;/code&gt; definition, and if we want to add a &lt;code&gt;Quartercircle&lt;/code&gt; we simply write its class and we've got the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One side benefit from this is that we can maintain class invariants, things that are true about each member of the class.  By restricting code outside the class from directly messing with class data members, we've got all the code that can change class data in one place, and we can confirm that it doesn't do anything screwy (like have a triangle with one leg longer than the other two combined).  This means we can count on some properties of every member of the class, and don't have to check to see if an object is sane every time we use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main benefit comes with inheritance and polymorphism.  By defining all of these various shapes as subclasses of a class called &lt;code&gt;Shape&lt;/code&gt;, we can have our code manipulate &lt;code&gt;Shape&lt;/code&gt;s, and it's the job of the shape subobjects to do whatever is called for by the manipulations.  This means we needn't touch the old tested code when we add new shapes or refine the behavior of older ones.  We automatically have old code that can directly take advantage of new code.  Instead of making the controlling code aware of all the different possible shapes, and having to maintain functions that are aware of all the different possible shapes, we merely deal with shapes and their properties, while maintaining &lt;code&gt;Shape&lt;/code&gt; subclasses.  This simplifies the controlling code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have several advantages here.  Since we have class invariants, we can reason about larger data objects in the same way we reason about built-in types, meaning we can often split up complex concepts into simpler ones.  Since the circle code is largely contained in &lt;code&gt;Circle&lt;/code&gt;, we have increased locality.  Since there aren't concepts of a circle scattered through several different functions in different places, we get less coupling between routines, and don't have to worry about keeping them in sync.  Since classes are, in effect, types, we can take advantage of the existing type system to catch incompatible use of our classes.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-24T21:11:13.047" />
  <row Id="7196" PostTypeId="2" ParentId="6979" CreationDate="2010-09-24T21:19:17.940" Score="1" ViewCount="" Body="&lt;p&gt;Although I'm not a big Joel Spolsky fan, somewhat like 10 years ago when I was a young newbie programmer, the old &lt;a href=&quot;http://joelonsoftware.com&quot; rel=&quot;nofollow&quot;&gt;Joel On Software&lt;/a&gt; blog really opened my eyes to a whole new way of understanding the software development profession with classics like &lt;a href=&quot;http://joelonsoftware.com/articles/LeakyAbstractions.html&quot; rel=&quot;nofollow&quot;&gt;The Law of Leaky Abstractions&lt;/a&gt; and &lt;a href=&quot;http://joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;The Joel Test&lt;/a&gt; and the interesting conversations on the (now practically dead) Joel On Software forum.&lt;/p&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-09-24T21:19:17.940" CommunityOwnedDate="2011-05-04T09:36:28.593" />
  <row Id="7197" PostTypeId="2" ParentId="7188" CreationDate="2010-09-24T21:19:39.590" Score="24" ViewCount="" Body="&lt;p&gt;&lt;em&gt;The&lt;/em&gt; classical book on software engineering, &lt;strong&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201835959&quot; rel=&quot;nofollow&quot;&gt;The Mythical Man-Month: Essays on Software Engineering&lt;/a&gt;&lt;/strong&gt;, first published in 1975and republished in an anniversary edition in 1995.  It is here we first hear of Brooks's Law: &quot;Adding manpower to a late software project makes it later.&quot;   The story of developing operating system for the IBM-360 in the 1960's.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, I've really read it more than once.  Second time was to reacquaint myself with the concepts before taking part in a big project.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-09-24T21:49:35.567" LastActivityDate="2010-09-24T21:49:35.567" CommunityOwnedDate="2011-02-10T17:23:39.897" CommentCount="3" />
  <row Id="7198" PostTypeId="2" ParentId="7188" CreationDate="2010-09-24T21:24:20.957" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Practices Of An Agile Developer&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/WKC18.jpg&quot; alt=&quot;Practices Of An Agile Developer&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="19" LastEditorDisplayName="" LastEditDate="2011-02-10T20:01:22.253" LastActivityDate="2011-02-10T20:01:22.253" CommunityOwnedDate="2011-02-10T17:23:39.897" />
  <row Id="7200" PostTypeId="2" ParentId="5624" CreationDate="2010-09-24T21:34:46.017" Score="3" ViewCount="" Body="&lt;p&gt;Well, I know of an acquaitance who screwed up real bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He had just bought a brand new computer for about $2,000, I think. It was all good stuff: the latest Intel i7 core, 6GB DDR3 RAM, some high-end graphics card and motherboard, an Intel 40GB SSD (the fast kind), a 1.5TB HDD, and a 750W Corsair PSU.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The anticipated package arrived in the mail, and he started hooking everything up. All set, and he flicked the switch. The computer seemed to be booting, but there was no image on the screen. No POST or anything. He called a friend of mine who is good with fixing hardware problems and they figured it must be the graphics card. So he took one of his own cards that he didn't use and went over. They replaced the graphics card and rebooted; same thing. &quot;Hm, maybe there was something wrong with that card, too&quot; and they tried another card he also happened to have lying around. They were no bad cards, mind you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When that didn't work either they started stripping the computer of all unnecessary components and had only the motherboard, CPU, RAM and graphics card connected. No change. My friend finally removed the graphics card just for the sake of it and booted. &lt;em&gt;TSSSSSS!&lt;/em&gt; and smoke rose from the north bridge on the mobo. &quot;Ah well, guess we've found the error&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fellow sent the mobo back to the store and got a replacement. Hooked that up with only the CPU and RAM. &lt;em&gt;TSSSSS!&lt;/em&gt; and smoke rose from the same circuit. Obviously, the ghost was not in the mobo. But what could possibly be causing the motherboard to burn? You guessed it, the PSU. And 750W going berserk, what else could it have fried?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They took all components over to my friend's place for testing on a separate computer. They tried the CPU: no POST. They tried the RAM: no post. They tried the graphics card: no image. They tried both the graphics cards that my friend had brought over: no image. They tried the SSD: detected only a device on 1GB or so. Every god damn component that had ever been connected with that PSU, on way or another, had been fried!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It took about a month or so before all components had been replaced by the store. In the meantime, my acquaintance got to hear on his job about how you are not suppose to take the phrase &quot;blow the computer&quot; (Swedish colloqual for &quot;formatting the computer&quot;) literally.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-24T21:34:46.017" />
  <row Id="7201" PostTypeId="2" ParentId="7188" CreationDate="2010-09-24T21:36:26.413" Score="13" ViewCount="" Body="&lt;h2&gt;The Structure and Interpretation of Computer Programs, aka SICP&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;There's nothing more to add to &lt;a href=&quot;http://www.amazon.com/review/R403HR4VL71K8/&quot; rel=&quot;nofollow&quot;&gt;Norvig's&lt;/a&gt; praising this book as the greatest introduction to computer science ever written.  Well OK, since the Why? was requested: SICP covers the fundamentals in a satisfyingly deep way, raising many perspectives and questions about the nature of computation — quite a few of which remain open issues — while leading the reader to see beyond the superficial aspects of telling the machine what to do, or how to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html#%_toc_start&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://ecx.images-amazon.com/images/I/41CPGEDXMDL._SL500_AA300_.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not at the same level, but still worth re-reading, is &lt;em&gt;The Pragmatic Programmer&lt;/em&gt; - much more engagingly written than most coding practices books (particularly Code Complete), and with practical advice that's appreciated with growing experience.&lt;/p&gt;&#xA;" OwnerUserId="2026" LastEditorUserId="2026" LastEditorDisplayName="" LastEditDate="2010-09-24T22:02:42.483" LastActivityDate="2010-09-24T22:02:42.483" CommunityOwnedDate="2011-02-10T17:23:39.897" CommentCount="1" />
  <row Id="7202" PostTypeId="2" ParentId="6832" CreationDate="2010-09-24T21:36:45.843" Score="0" ViewCount="" Body="&lt;p&gt;A personal story:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I once gave a presentation to a room full of 50 or 60 developers about some .NET related stuff (they all worked for the same company). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft was sponsoring the talk and gave me a couple of copies of David West's &quot;Object Thinking&quot; book (by Microsoft Press).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coincidentally, I had just read that book and found it a very nice read. I even recommended it to the audience explaining that I had some copies to give away and that if someone was interested all they had to do was to ask for one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Several people came over to browse the book, but none of them, I repeat, &lt;strong&gt;no one&lt;/strong&gt;, not a single person decided to keep it.&lt;/p&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-09-24T21:36:45.843" CommentCount="1" />
  <row Id="7204" PostTypeId="2" ParentId="7188" CreationDate="2010-09-24T21:49:17.517" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;CLR Via C#&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/cwrpk.jpg&quot; alt=&quot;CLR Via C#&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I only have the 2nd edition though. Looking to pick up a copy of the newest edition. Easily one of the best C# books around.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-24T21:49:17.517" CommunityOwnedDate="2011-02-10T17:23:39.897" CommentCount="2" />
  <row Id="7205" PostTypeId="1" AcceptedAnswerId="7211" CreationDate="2010-09-24T21:51:42.787" Score="9" ViewCount="504" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/1006/how-do-you-motivate-yourself-to-program-when-youd-really-rather-be-doing-someth&quot;&gt;How do you motivate yourself to program (when you&amp;#39;d really rather be doing something else)?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Sometimes I get into the flow, and I'm really productive. Other times I start surfing mindlessly and it often takes my whole day (thanks, Reddit). So what's the cure?&lt;/p&gt;&#xA;" OwnerUserId="3530" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-24T22:00:33.163" LastActivityDate="2010-09-25T14:20:43.377" ClosedDate="2010-09-26T15:03:54.863" Title="How do you beat procrastination?" Tags="&lt;productivity&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="4" />
  <row Id="7206" PostTypeId="2" ParentId="7205" CreationDate="2010-09-24T21:54:58.163" Score="4" ViewCount="" Body="&lt;p&gt;I don't beat it. It's my style of life.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Never do today what you can put off till tomorrow&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;By the way, this leads to higher quality of life and of work. If I know for sure that I can do something tomorrow, and tomorrow I'll be in a better mood to do it, the result will be better (and achieved faster).&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-24T22:13:17.320" LastActivityDate="2010-09-24T22:13:17.320" CommentCount="4" />
  <row Id="7207" PostTypeId="2" ParentId="7188" CreationDate="2010-09-24T21:55:26.243" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The Pragmatic Starter Kit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/H85Cv.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;img src=&quot;http://i.imgur.com/NudHf.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;img src=&quot;http://i.imgur.com/zgURL.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't read them anymore, but when I first started developing professionally and started working on more products than projects, they were invaluable.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-24T21:55:26.243" CommunityOwnedDate="2011-02-10T17:23:39.897" />
  <row Id="7208" PostTypeId="2" ParentId="5624" CreationDate="2010-09-24T22:00:29.183" Score="5" ViewCount="" Body="&lt;p&gt;Back when zero force CPU sockets were new (and I hadn't seen them yet) I 'installed' a CPU in a laptop without opening the socket via the lever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I may have inadvertently invented the no-pin architecture that some modern CPUs have now though! I saythat because when I was done, all of the pins on the CPU were gone or flat.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-24T22:00:29.183" CommentCount="1" />
  <row Id="7209" PostTypeId="2" ParentId="750" CreationDate="2010-09-24T22:01:05.953" Score="1" ViewCount="" Body="&lt;p&gt;The stock answer is to &lt;a href=&quot;http://c2.com/cgi/wiki?TestEverythingThatCouldPossiblyBreak&quot; rel=&quot;nofollow&quot;&gt;&quot;test everything that could possibly break&quot;&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's too simple to break?  Data fields, brain-dead property accessors, and similar boilerplate overhead.  Anything else probably implements some identifiable portion of a requirement, and may benefit from being tested.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, your mileage -- and your working environment's practices -- may vary.&lt;/p&gt;&#xA;" OwnerUserId="2539" LastActivityDate="2010-09-24T22:01:05.953" CommentCount="2" />
  <row Id="7210" PostTypeId="2" ParentId="7205" CreationDate="2010-09-24T22:06:28.423" Score="5" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Careful planning, of course.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/tSkn0.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-24T22:06:28.423" CommentCount="1" />
  <row Id="7211" PostTypeId="2" ParentId="7205" CreationDate="2010-09-24T22:06:56.740" Score="8" ViewCount="" Body="&lt;p&gt;If you're procrastinating on some act of authorship (code, design, documentation, etc.), then just write &lt;em&gt;something&lt;/em&gt;, anything. Then you have something concrete that you internal critic can start to work on, refine, extend and improve.&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-09-24T22:06:56.740" CommentCount="1" />
  <row Id="7213" PostTypeId="2" ParentId="7183" CreationDate="2010-09-24T22:45:45.440" Score="1" ViewCount="" Body="&lt;p&gt;Haven't spent much time on the site, but &lt;a href=&quot;http://lanyrd.com/&quot; rel=&quot;nofollow&quot;&gt;lanyrd&lt;/a&gt; was an instant bookmark.&lt;/p&gt;&#xA;" OwnerUserId="2115" LastActivityDate="2010-09-24T22:45:45.440" />
  <row Id="7214" PostTypeId="2" ParentId="1952" CreationDate="2010-09-24T23:12:07.850" Score="0" ViewCount="" Body="&lt;p&gt;Consider &lt;a href=&quot;http://www.mozart-oz.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.mozart-oz.org/&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a very different language that offers a combination of the functional, procedural and logic paradigms.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-24T23:12:07.850" />
  <row Id="7216" PostTypeId="2" ParentId="6979" CreationDate="2010-09-24T23:35:59.130" Score="1" ViewCount="" Body="&lt;p&gt;That source of information that most shaped my career would probably be source code and documentation (For the language not the software). Although I see a lot of people don't consider PHP a &quot;real&quot; language, it's how I got started in programming and made me want to learn more languages like C++, Java  and Python. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only recently have I found a source of information equal to source code/documentation, and honestly it's Stack Exchange. I've spend the past week (At night) reading posts on these forums and I have learned lots. So many varied opinions are a great way to gain perspective. &lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-09-24T23:35:59.130" CommunityOwnedDate="2011-05-04T09:36:28.593" />
  <row Id="7217" PostTypeId="1" CreationDate="2010-09-24T23:42:13.210" Score="11" ViewCount="1000" Body="&lt;p&gt;Most programmers defending methodologies politically correct like Agile, Waterfall, RUP, etc. Some of them follow the methodology, but not all of them. Frankly, if you can choose the methodology, you certainly would go to mainstream &quot;correct&quot; methodologies or you would prefer the &quot;easier&quot; methodology like comboy programming? Why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know it depends. Please, explain when you would use one or another. Please, say what advantages do you see on Cowboy coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See about &lt;a href=&quot;http://en.wikipedia.org/wiki/Cowboy_coding&quot; rel=&quot;nofollow&quot;&gt;Cowboy coding&lt;/a&gt; on Wikipedia&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-01T20:15:16.297" LastActivityDate="2010-12-21T21:05:43.393" Title="Frankly, do you prefer Cowboy coding?" Tags="&lt;development-process&gt;&lt;best-practices&gt;&lt;development-methodologies&gt;&lt;cowboy-coding&gt;" AnswerCount="11" CommentCount="6" FavoriteCount="4" />
  <row Id="7218" PostTypeId="2" ParentId="2757" CreationDate="2010-09-24T23:43:48.163" Score="0" ViewCount="" Body="&lt;p&gt;I've used a 28&quot; iMac with a 24&quot; second monitor at work for the past few months. Being a web developer, I had Eclipse/Terminal on the larger monitor and my web browser on the smaller monitor and that setup worked great (As great as it gets on a Mac). Now I've sadly switched to a Macbook Pro with the same 24&quot; monitor for my other screen. Haven't quite figured out my arrangement for that though.&lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-09-24T23:43:48.163" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="7219" PostTypeId="1" CreationDate="2010-09-24T23:46:53.100" Score="5" ViewCount="95" Body="&lt;p&gt;I've recently really dived into Ruby/Rails and I'm falling in love. I have a gut feeling this might be something that could last for a while.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I've been missing is interaction with people who are as passionate about Ruby, Rails and things closely related to these.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I live in a relatively small city, but was able to find five local people through a RoR website.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Weekly meetups with Macs, beer and bro-love rushed through my mental theater. Seriously though, I have no clue how I could approach these people. I have their e-mail addresses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any advice?&lt;/p&gt;&#xA;" OwnerUserId="1816" LastActivityDate="2010-09-25T00:08:27.690" Title="How to approach people you've found through internet with similar programming interests?" Tags="&lt;ruby-on-rails&gt;&lt;ruby&gt;&lt;social-networks&gt;&lt;meetings&gt;" AnswerCount="1" />
  <row Id="7220" PostTypeId="2" ParentId="4765" CreationDate="2010-09-24T23:52:43.557" Score="1" ViewCount="" Body="&lt;p&gt;From &lt;em&gt;The Tao of Programming&lt;/em&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thus spake the master programmer:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;When you have learned to snatch the error code from the trap frame, it will be time for you to leave.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.topsail.org/tao.html&quot; rel=&quot;nofollow&quot;&gt;http://www.topsail.org/tao.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3599" LastActivityDate="2010-09-24T23:52:43.557" />
  <row Id="7221" PostTypeId="2" ParentId="35" CreationDate="2010-09-24T23:54:31.993" Score="14" ViewCount="" Body="&lt;p&gt;&lt;em&gt;(Doesn't involve a programmer, but was first given to me in the context of writing bug reports, where the point certainly stands.)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An astronomer, a physicist, and a mathematician were traveling to Scotland.  Glancing from a train window, they observed a black sheep in the middle of a field.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;How interesting,&quot; observed the astronomer, &quot;all scottish sheep are black!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To which the physicist responded, &quot;No, no! Some Scottish sheep are black!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Scotland has at least one sheep which is black on one side at least some of the time,&quot; corrected the mathematician.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-24T23:54:31.993" CommunityOwnedDate="2010-09-24T23:54:31.993" CommentCount="3" />
  <row Id="7222" PostTypeId="1" CreationDate="2010-09-24T23:58:31.550" Score="6" ViewCount="342" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/217/should-i-keep-realbasic-on-my-resume&quot;&gt;Should I keep REALbasic on my resume? &lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Visual Basic has... a bit of a PR problem. There's a perception, among &lt;em&gt;some&lt;/em&gt; programmers at least, that it's limited to cheesy UIs and half-baked amateur applications. Never the less, it can and has been used effectively, and with a bit of care one can write fast, readable code in the language. I'm not ashamed of my experience in or familiarity with the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I don't particularly want to work in a &quot;VB shop&quot;, or get stuck maintaining legacy VB apps, and &lt;em&gt;certainly&lt;/em&gt; don't want to run the risk of being perceived as a poor or sloppy coder merely by association.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So is there value in listing a language that I don't want to use on a resume? Or is this sort of &quot;experience padding&quot; at best a distraction?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;One of the A51 proposed questions&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-25T11:31:52.893" ClosedDate="2010-09-26T09:53:58.937" Title="Should I keep Visual Basic on my resume?" Tags="&lt;career&gt;&lt;experience&gt;&lt;resume&gt;&lt;visual-basic&gt;" AnswerCount="4" CommentCount="6" />
  <row Id="7223" PostTypeId="2" ParentId="7222" CreationDate="2010-09-25T00:06:16.883" Score="1" ViewCount="" Body="&lt;p&gt;It depends on the other stuff you have on your resume...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;If you have a lot of better things, it would only be a bloat entry.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you don't have much things, it could show that you are more broad...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure it has the notion of being educational, do not list it as a main language. ;-)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-25T00:06:16.883" />
  <row Id="7224" PostTypeId="2" ParentId="7219" CreationDate="2010-09-25T00:08:27.690" Score="5" ViewCount="" Body="&lt;p&gt;Well, as long as it's the language you're in love with and not the other programmers themselves, just treat it as any other common-interest meeting.  Ask on the website, &quot;does anyone from the [where you're from] area want to get together and hang out?&quot;  You could even take the initiative: &quot;Ruby on Rails Interest Group meeting for anyone interested, this Saturday at 4 PM at the public library.&quot;  Public libraries work really well for this sort of thing, since they're quiet and tend to have free wi-fi and accomodations for laptop users.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-25T00:08:27.690" />
  <row Id="7225" PostTypeId="2" ParentId="7222" CreationDate="2010-09-25T00:25:42.330" Score="8" ViewCount="" Body="&lt;p&gt;Yes, if it has any relevance to the job you're applying to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;VB is a language, a tool like any other. And it is not a bad tool - quite the opposite, it is (well, was) an excellent tool for what it was made for. A language relatively easy to comprehend for non professional programmers who needed a language just like that to get their work done. Many used it, and quite a lot still do (VB6).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, it has a little PR problem as you say, but take into account that programmers can be a weird bunch (&lt;em&gt;don't take this personally guys, it is a general consensus of the rest of the population; besides I'm on our side :-)&lt;/em&gt; and they tend to get into noisy arguments over the most insignificant of details (&lt;em&gt;&quot;Should there be a space between this and this? What do you think?&quot;&lt;/em&gt;).&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-09-25T00:31:12.343" LastActivityDate="2010-09-25T00:31:12.343" CommentCount="2" />
  <row Id="7227" PostTypeId="2" ParentId="7222" CreationDate="2010-09-25T00:39:28.643" Score="2" ViewCount="" Body="&lt;p&gt;As per &lt;a href=&quot;http://programmers.stackexchange.com/questions/217/should-i-keep-realbasic-on-my-resume/258#258&quot;&gt;http://programmers.stackexchange.com/questions/217/should-i-keep-realbasic-on-my-resume/258#258&lt;/a&gt; and your comment &lt;em&gt;&quot;with a bit of care one can write fast, readable code in the language. I'm not ashamed of my experience in or familiarity with the language.&quot;&lt;/em&gt; - yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You appear to have useful experience where it's relevant you used Visual Basic, and you can talk about how you used it effectively, in order to demonstrate that you're better than the average programmer - so put it on there, to show the skills you have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, if you have more relevant experience to the specific job, there might be no added benefit to having it on there, but if you've got nothing better then why would you not use it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't want a job doing VB, simply don't accept or apply for jobs that require/mention VB.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-09-25T00:39:28.643" />
  <row Id="7228" PostTypeId="2" ParentId="6755" CreationDate="2010-09-25T00:55:19.527" Score="3" ViewCount="" Body="&lt;p&gt;Seen on Futurama:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;10 SIN&#xA;20 GOTO HELL&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3601" LastActivityDate="2010-09-25T00:55:19.527" />
  <row Id="7229" PostTypeId="2" ParentId="7217" CreationDate="2010-09-25T01:06:03.770" Score="18" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also prefer leaving my socks on the floor where I took them off, my desk covered in printouts and old snack wrappers, my sink full of dirty dishes, and my bed unmade.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't consider a vacation planned in advance to be a proper vacation, a meal eaten with a mind toward nutrition proper food, or staying on known trails proper hiking. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like to have fun, be surprised, learn new things, make mistakes, and never be quite sure if I'm going to make it back. And sometimes, that attitude is &lt;em&gt;exactly&lt;/em&gt; what's required to get a project off the ground...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...but most of the time, it's just irresponsible. When the dance ends, the piper will be paid... Forget this at your peril.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-25T01:06:03.770" CommentCount="1" />
  <row Id="7230" PostTypeId="1" CreationDate="2010-09-25T02:16:42.170" Score="9" ViewCount="198" Body="&lt;p&gt;While the basic scenarios are white on black and black on white, most programmers find more varied syntax highlighting useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What advantages do you find from a general setup?  (E.g. &quot;a dark background allows...&quot;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What specific tweaks do you find most helpful?  (E.g. &quot;&lt;em&gt;slightly&lt;/em&gt; off-white works to...&quot;, or &quot;highlighting quote marks and escapes, like \n, differently shows...&quot;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One answer per person, please; list multiple points as part of your one response, if needed.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-25T19:38:06.017" Title="How would you highlight code?" Tags="&lt;coding&gt;&lt;text-editor&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="1" />
  <row Id="7231" PostTypeId="2" ParentId="7230" CreationDate="2010-09-25T02:24:00.000" Score="2" ViewCount="" Body="&lt;p&gt;Either way though, I personally find that a white screen with dark text is too bright and hard on the eyes for long coding sessions.  The black is much less intrusive on my eyes.  &lt;/p&gt;&#xA;" OwnerUserId="136" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-25T02:46:58.993" LastActivityDate="2010-09-25T02:46:58.993" CommentCount="2" />
  <row Id="7232" PostTypeId="2" ParentId="699" CreationDate="2010-09-25T02:24:06.157" Score="1" ViewCount="" Body="&lt;p&gt;Yes, you should always be learning something new, and a new language every year is ideal. Having said that, it's probably hard to keep up with if you have a day job and a life outside programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think if I hadn't at least heard about and played with a new language for about three years, I'd start to worry that I was falling behind. &lt;/p&gt;&#xA;" OwnerUserId="3111" LastActivityDate="2010-09-25T02:24:06.157" />
  <row Id="7233" PostTypeId="2" ParentId="4123" CreationDate="2010-09-25T02:26:12.350" Score="14" ViewCount="" Body="&lt;p&gt;The best way to understand anything is to teach it. I finally understood OO (about 20 years after I first started doing it) when I had to explain and justify why certain things were the way they were, to a class full of students.&lt;/p&gt;&#xA;" OwnerUserId="3111" LastActivityDate="2010-09-25T02:26:12.350" CommentCount="4" />
  <row Id="7234" PostTypeId="2" ParentId="2227" CreationDate="2010-09-25T02:30:57.557" Score="1" ViewCount="" Body="&lt;p&gt;Packaging and deployment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hate it. I can't understand it. I'm always flumoxed when my program installs on a new machine and then the compiler can't find a crucial library (even if its there). Because I've screwed up some config. file somewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I know that I really &lt;em&gt;should&lt;/em&gt; know this stuff. And if I did, much of the pain in my life would diminish.&lt;/p&gt;&#xA;" OwnerUserId="3111" LastActivityDate="2010-09-25T02:30:57.557" />
  <row Id="7235" PostTypeId="2" ParentId="2227" CreationDate="2010-09-25T02:37:04.243" Score="1" ViewCount="" Body="&lt;p&gt;Learn how to educate yourself without (much) guidance. If you can't do this, you will not reach anywhere near your full potential.&lt;/p&gt;&#xA;" OwnerUserId="1767" LastActivityDate="2010-09-25T02:37:04.243" />
  <row Id="7236" PostTypeId="2" ParentId="1013" CreationDate="2010-09-25T02:46:29.387" Score="1" ViewCount="" Body="&lt;p&gt;The worst I had to use was this thing called Omnis 7... I don't if the tool was so bad or just the fact that we were using something that was basically a somewhat bigger brother of Access forms to build an entire business's management tools. It was good for window building and basic stuff, but anything beyond that.... shudder. It was definitely leveraging the 90s &quot;RAD fad&quot;. Let's just say I found VB5 to be paradise compared to it. I gather it may have grown up since then, but the fact that we were using it so far out of its obvious sweet spot left me very scarred.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-25T02:46:29.387" CommunityOwnedDate="2011-02-01T07:56:02.387" />
  <row Id="7237" PostTypeId="2" ParentId="7230" CreationDate="2010-09-25T02:56:05.637" Score="2" ViewCount="" Body="&lt;p&gt;Lately, I've been getting rid of blue and purple in favor of brown and orange. I find less eyestrain with them, at least for me.&#xA;I've always toned down the contrast. For quite a while, I used to set all the white backgrounds to a very pale yellow. Now, I'm also focusing using more warmer colors and fewer of the cool colors. In general, I find little difference between dark on light or vice versa... contrast and general color temperature seems to be more important than which way around.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you don't use the tool, the theories behind &lt;a href=&quot;http://www.stereopsis.com/flux/&quot; rel=&quot;nofollow&quot;&gt;f.lux&lt;/a&gt; are interesting.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-25T02:56:05.637" CommentCount="4" />
  <row Id="7238" PostTypeId="2" ParentId="49" CreationDate="2010-09-25T03:02:33.540" Score="-2" ViewCount="" Body="&lt;p&gt;Because it's harder to debug FP. &lt;/p&gt;&#xA;" OwnerUserId="3111" LastActivityDate="2010-09-25T03:02:33.540" CommentCount="5" />
  <row Id="7239" PostTypeId="2" ParentId="7230" CreationDate="2010-09-25T03:07:49.023" Score="0" ViewCount="" Body="&lt;p&gt;I find highlighting escape sequences useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In particular for Python, raw strings have different escaping:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/rUMyL.png&quot; alt=&quot;vim screenshot using xoria256&quot; title=&quot;vim screenshot using xoria256&quot;&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-09-25T03:07:49.023" CommentCount="0" />
  <row Id="7240" PostTypeId="2" ParentId="135" CreationDate="2010-09-25T03:07:59.227" Score="1" ViewCount="" Body="&lt;p&gt;I have a little list of &lt;a href=&quot;http://twitter.com/#/list/JohnMacIntyre/programmingelite&quot; rel=&quot;nofollow&quot;&gt;Programming Elite&lt;/a&gt; ... take the name lightly, there maybe a few on the list whom I only thought were elite, and it's by no means got everybody.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, the best way to find smart people to follow is to look at programmers whom you highly respect, and look at who they are following.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if you don't mind listening to a bit of babbling, you can always follow &lt;a href=&quot;http://twitter.com/JohnMacIntyre&quot; rel=&quot;nofollow&quot;&gt;me&lt;/a&gt;.  ;-)&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-25T03:07:59.227" CommunityOwnedDate="2011-02-11T07:48:02.420" />
  <row Id="7241" PostTypeId="2" ParentId="2730" CreationDate="2010-09-25T03:15:23.947" Score="1" ViewCount="" Body="&lt;p&gt;The ability to step &lt;em&gt;backwards&lt;/em&gt; in the debugger from the point when an error occurs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the moment, you have to keep guessing suitable points to put a break and to start stepping forwards through the program towards the error. But imagine the system just caught the error and then let you run backwards, so you could trace the cause of the error in a single sweep.&lt;/p&gt;&#xA;" OwnerUserId="3111" LastActivityDate="2010-09-25T03:15:23.947" CommentCount="5" />
  <row Id="7242" PostTypeId="1" CreationDate="2010-09-25T03:26:10.407" Score="32" ViewCount="1425" Body="&lt;p&gt;Who here is learning Go? Are other companies looking at using it? Is it likely to become widely used?&lt;/p&gt;&#xA;" OwnerUserId="3111" LastActivityDate="2011-04-30T07:35:19.217" Title="What are the chances of Google's Go becoming a mainstream language?" Tags="&lt;popularity&gt;&lt;go&gt;" AnswerCount="10" CommentCount="6" FavoriteCount="6" />
  <row Id="7243" PostTypeId="2" ParentId="1157" CreationDate="2010-09-25T03:36:00.547" Score="3" ViewCount="" Body="&lt;p&gt;Pattern matching arguments from Erlang, Haskell, ML etc. are a big win for conciseness.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think they're particularly hard to understand. They could fit perfectly well into standard OO languages (Java already dispatches different methods with the same name based on argument types)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why shouldn't javascript look like this?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function len([]) { return 0; }&#xA;function len(h|t) { return 1 + len(t); }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The main problem seems to be how to define different branches of anonymous functions, but this must be a problem Haskell etc. have solved?&lt;/p&gt;&#xA;" OwnerUserId="3111" LastActivityDate="2010-09-25T03:36:00.547" CommentCount="1" />
  <row Id="7244" PostTypeId="2" ParentId="7242" CreationDate="2010-09-25T03:41:06.343" Score="21" ViewCount="" Body="&lt;p&gt;When it comes to programming languages, the old adage, &quot;it's not who you are, it's who you know&quot; definitely holds true.  C and C++ were sponsored by AT&amp;amp;T, Java was brought to us by Sun, the .NET family came out of Microsoft, and all of them got very popular very quickly.  Then we have Objective-C and Python, which were around for quite a while and stayed really obscure until they were discovered and hyped up by Apple and Google, respectively, and then suddenly they really took off.  But languages without a major sponsor tend to languish in obscurity, no matter how good they are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go is sponsored by Google.  It's not difficult to arrive at the right conclusion here.  Give it five years and it's gonna be huge.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-25T03:41:06.343" CommentCount="11" />
  <row Id="7245" PostTypeId="1" AcceptedAnswerId="7696" CreationDate="2010-09-25T04:36:54.240" Score="9" ViewCount="592" Body="&lt;p&gt;I had a question posed to me the other day by another programmer.  I remember (a very long time ago) wondering the very same.  &lt;strong&gt;Why was a browser-side include tag never considered?  Or was it?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifically with a tag that instructed the browser to include additional HTML from other sources. e.g. &lt;code&gt;&amp;lt;include src=&quot;http://server/foo/bar.html&quot;&amp;gt;&lt;/code&gt;.  Many folks will make javascript calls and fill &lt;code&gt;innerHTML&lt;/code&gt; to accomplish the same, when the same outside a the javascript engine could be accomplished by the browser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would have been painful to have nested &lt;code&gt;&amp;lt;HTML&amp;gt;&lt;/code&gt;s &lt;code&gt;&amp;lt;BODY&amp;gt;&lt;/code&gt;s (i.e.) but we have to consider that aspect anywhere anyway.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-09-27T22:02:30.527" LastActivityDate="2011-01-13T05:32:30.787" Title="Why no client-side HTML include tag?" Tags="&lt;history&gt;&lt;html&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="7246" PostTypeId="2" ParentId="7245" CreationDate="2010-09-25T04:52:50.677" Score="3" ViewCount="" Body="&lt;p&gt;They did. It became the &lt;code&gt;&amp;lt;frameset&amp;gt;&lt;/code&gt; tag. Not long after, they added the &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt; tag.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the early web servers supported server-side includes, so a client-side textual include was likely thought to be unnecessary, given that the same functionality was available also with frames.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-09-25T04:52:50.677" CommentCount="9" />
  <row Id="7247" PostTypeId="2" ParentId="7230" CreationDate="2010-09-25T05:16:49.757" Score="0" ViewCount="" Body="&lt;p&gt;I think it totally depends upon your eyes; what's good to one person can be unreadable to the next.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like white background with dark letters. I also tend to turn down screen brightness to keep the glare down. And I've used &lt;a href=&quot;http://www.stereopsis.com/flux/&quot; rel=&quot;nofollow&quot;&gt;f.lux&lt;/a&gt; in the past (mentioned by Jim Leonardo) and that helps a lot.&lt;/p&gt;&#xA;" OwnerUserId="1236" LastActivityDate="2010-09-25T05:16:49.757" />
  <row Id="7248" PostTypeId="2" ParentId="7242" CreationDate="2010-09-25T05:18:30.753" Score="13" ViewCount="" Body="&lt;p&gt;I actually don't think that Go will be that successful. One reason to why it will not reach the big masses is that it is intended to be a language for system programming. Another reason is that it has to few modern features. C will remain strong as a language for system programming, but I think there is place for languages with higher abstractions like functional programming languages e.g. Haskell and Erlang. Erlang is designed for embedded systems with fault tolerance . It has unique constructs for hot code swap and high performance concurrency. Haskell is an advanced functional language with good support for concurrency and is in contrast to Erlang compiled to native code.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-25T05:18:30.753" CommentCount="9" />
  <row Id="7249" PostTypeId="2" ParentId="7205" CreationDate="2010-09-25T05:48:48.897" Score="0" ViewCount="" Body="&lt;p&gt;with a great big giant stick, when I get around to it--maybe tomorrow, after I have had my Mt. Dew.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-09-25T05:48:48.897" />
  <row Id="7250" PostTypeId="2" ParentId="7183" CreationDate="2010-09-25T05:50:18.950" Score="-2" ViewCount="" Body="&lt;p&gt;easy, there aren't any. seriously, I live in central Washington State--not exactly a high-tech mecca.  Best I can do is Seattle, WA and that is 2 hours away.  Sometimes I can find a webinar, but even those are few and far between.&lt;/p&gt;&#xA;" OwnerUserId="882" LastEditorUserId="882" LastEditorDisplayName="" LastEditDate="2010-09-25T06:52:33.827" LastActivityDate="2010-09-25T06:52:33.827" />
  <row Id="7251" PostTypeId="2" ParentId="7188" CreationDate="2010-09-25T06:23:35.093" Score="4" ViewCount="" Body="&lt;p&gt;There are many...but then I've been programming a long time, and learning to program all of that time (it is a never-ending process).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Key books that I read multiple times include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The UNIX Programming Environment (Kernighan &amp;amp; Pike)&lt;/li&gt;&#xA;&lt;li&gt;Software Tools (Kernighan &amp;amp; Plauger)&lt;/li&gt;&#xA;&lt;li&gt;The Elements of Programming Style (Kernighan &amp;amp; Plauger)&lt;/li&gt;&#xA;&lt;li&gt;The C Programming Language (that Kernighan guy, again, and Ritchie)&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The Practice of Programming (K...yes, him; and Pike...yes, him too!)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The Art of UNIX Programming (Raymond)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;The Mythical Man-Month (Brooks)&lt;/li&gt;&#xA;&lt;li&gt;The Psychology of Programming (Weinberg)&lt;/li&gt;&#xA;&lt;li&gt;Programming Pearls (Bentley)&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;More Programming Pearls (Bentley)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A large number of the books by C J Date on databases&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Plus a number of more specialized books.&lt;/p&gt;&#xA;" OwnerUserId="3611" LastActivityDate="2010-09-25T06:23:35.093" CommunityOwnedDate="2011-02-10T17:23:39.897" CommentCount="2" />
  <row Id="7252" PostTypeId="2" ParentId="7188" CreationDate="2010-09-25T06:44:35.183" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Software Tools in Pascal&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know lots of people prefer the original in RATFOR but I enjoyed this.  Building many Unix filter like tools may appear to be the point, but instead the book is mostly using them to convey a core philosophy those tools embodied.  I consider this book, much more than formal education, to be my jumping off point from hobbyist to professional.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Pragmatic Programmer&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to use this book as a developer's inspirational text.  The sections are short enough that I can read each one in a few minutes.  Reading one section a week is a form of professional devotional.&lt;/p&gt;&#xA;" OwnerUserId="1209" LastActivityDate="2010-09-25T06:44:35.183" CommunityOwnedDate="2011-02-10T17:23:39.897" CommentCount="2" />
  <row Id="7253" PostTypeId="2" ParentId="7242" CreationDate="2010-09-25T06:49:56.037" Score="1" ViewCount="" Body="&lt;p&gt;I suspect that whether it becomes mainstream will depend upon whether Google adopt it as a supported language for appengine and / or GWT. &lt;/p&gt;&#xA;" OwnerUserId="2397" LastActivityDate="2010-09-25T06:49:56.037" CommentCount="5" />
  <row Id="7254" PostTypeId="2" ParentId="7217" CreationDate="2010-09-25T07:23:15.097" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It completely depends on whether I'm working solo, or in a team.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I work in a team, &lt;em&gt;some&lt;/em&gt; conventions and agreements are required - everyone in the team must follow &lt;em&gt;some&lt;/em&gt; commonly agreed standard to work towards the common goal so that their efforts are compatible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if I work alone, then of course I want to be a cowboy. All great creations in the world have been invented by a single mind, or at most two, working cowboy-style. Just to name a few:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Classical mechanics? Cowboy Isaac Newton, later additions from Leibniz, Lagrange, Hamilton.&lt;/li&gt;&#xA;&lt;li&gt;Airplane? Cowboys Wright.&lt;/li&gt;&#xA;&lt;li&gt;Theory of relativity? Cowboy Albert Einstein.&lt;/li&gt;&#xA;&lt;li&gt;Fundamental science of computers? Cowboy Alan Turing.&lt;/li&gt;&#xA;&lt;li&gt;Transistor? Cowboys Walter Brattain and John Bardeen.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Teams are good at making incremental improvements and putting together new systems based on proven recipes fairly quickly (provided that they're being led well), but it's rare to hear about an actual invention made by a team. Team work and the methods it requires have their virtues, but so does cowboy coding.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-09-25T14:13:22.043" LastActivityDate="2010-09-25T14:13:22.043" />
  <row Id="7255" PostTypeId="2" ParentId="7205" CreationDate="2010-09-25T07:37:15.210" Score="2" ViewCount="" Body="&lt;p&gt;All productivity methodologies talk about &lt;a href=&quot;http://en.wikipedia.org/wiki/Timeboxing#Personal_timeboxing&quot; rel=&quot;nofollow&quot;&gt;timeboxing&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Put shortly, you decide two things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The thing/goal you're going to work on (say, writing documentation).&lt;/li&gt;&#xA;&lt;li&gt;The time you're going to do it now (say, 20 minutes; no more, no less).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;When you've timeboxed your first &quot;sprint&quot;, it's easy to force yourself to do it (and only it) because you know that after 20 minutes that sprint is done. Have a look at &lt;a href=&quot;http://www.pomodorotechnique.com/&quot; rel=&quot;nofollow&quot;&gt;Pomodoro technique&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thing is that in non-trivial tasks you need to separate from the goal the actions needed to achieve that goal. Once figure out the few concrete first steps towards the goal, it's much easier to get going. For example &quot;make some food&quot; is not a directly achievable goal, while &quot;heat the oven; put the fries there; wait for 15 minutes&quot; is.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-09-25T14:20:43.377" LastActivityDate="2010-09-25T14:20:43.377" CommentCount="1" />
  <row Id="7256" PostTypeId="2" ParentId="7245" CreationDate="2010-09-25T08:01:11.467" Score="8" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Why was a browser-side include tag never considered? Or was it?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It was certainly requested by every newbie web author who hadn't worked out Server Side Includes yet, back in the early days on the www-html list. But in those days W3 were happy to completely ignore web author pressure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If cross-site inclusion were allowed it would be a security disaster. You could pull in a page from the user's bank and read content from it. (Originally, DOM scripting was limited, but you could still have read from &lt;code&gt;document.links&lt;/code&gt;, &lt;code&gt;document.images&lt;/code&gt;, scripting functions dropped by the target page, etc. Since then you can do what you like with imported content.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If cross-site inclusion weren't allowed... well then the feature wouldn't have any advantage over server-side includes. It'd be more, slower work for the client to do that the server could have dealt with better. Unlike &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt;, an include would have to block page loading. SSIs would be in every way superior.&lt;/p&gt;&#xA;" OwnerUserId="3561" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-27T22:05:02.647" LastActivityDate="2010-09-27T22:05:02.647" CommentCount="4" />
  <row Id="7257" PostTypeId="2" ParentId="7230" CreationDate="2010-09-25T09:01:48.330" Score="0" ViewCount="" Body="&lt;p&gt;I find white text on black background most pleasing for my eyes as it feels less straining than black text on white background. And any colour on black is usually not a problem unless you're choosing very dark colours. Then again, a bright yellow on white background is absolutely unreadable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When it comes to colours for syntax highlighting, I think pretty much any colour combination will do as long it distinctly separates things such as keywords, variables, comments, etc. (Even better, keywords could be set in bold to further separate them.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, I find it very important to have a very distinct colouring on comments to allow me to quickly separate comments and code. I want to be able to ignore comments when reading code, and ignore code when reading comments.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-25T09:01:48.330" CommentCount="2" />
  <row Id="7258" PostTypeId="2" ParentId="2051" CreationDate="2010-09-25T09:20:10.897" Score="4" ViewCount="" Body="&lt;p&gt;i swear to $Deity that a client once asked me to change (a+b)*0.5 to (a+b)/2&lt;/p&gt;&#xA;" OwnerUserId="3615" LastActivityDate="2010-09-25T09:20:10.897" CommunityOwnedDate="2010-09-25T09:20:10.897" CommentCount="3" />
  <row Id="7259" PostTypeId="2" ParentId="7242" CreationDate="2010-09-25T09:35:07.193" Score="3" ViewCount="" Body="&lt;p&gt;I would say that this mainly depends on the libraries/services/software that will be created in/for/using Go. People use something in three situations (order matters): when they have practically no other option (Objective-C), when their surroundings use it (FORTRAN), when it makes their live easier (Ruby). &lt;/p&gt;&#xA;" OwnerUserId="2051" LastActivityDate="2010-09-25T09:35:07.193" />
  <row Id="7260" PostTypeId="2" ParentId="7205" CreationDate="2010-09-25T09:38:44.537" Score="0" ViewCount="" Body="&lt;p&gt;Personally I divide my to do list time into half day (or day), week, and &quot;other&quot;. So I know what needs to be done this morning and at some point this week, and put the rest aside.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This helps me to keep an eye on what's important, and if I'm letting time slip.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, I try to bear in mind the &lt;a href=&quot;http://en.wikipedia.org/wiki/Opportunity_cost&quot; rel=&quot;nofollow&quot;&gt;opportunity cost&lt;/a&gt; during my working hours. If I'm doing something idle or of low value then I've lost the opportunity to do something better (more useful).&lt;/p&gt;&#xA;" OwnerUserId="3526" LastActivityDate="2010-09-25T09:38:44.537" />
  <row Id="7261" PostTypeId="2" ParentId="7205" CreationDate="2010-09-25T09:46:53.077" Score="3" ViewCount="" Body="&lt;p&gt;There is one really effective way to beat procrastination. It has been described in the book Getting Things Done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First you have to maintain a list of things to do. The methodology proposed is great (read it on wikipedia).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then it's the way you write your tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rather than writing:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do the documentation of the new ui (ouch a good candidate for procrastinators)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wrtie:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Call robert to ask him to include&#xA;Take screenshots of the new ui&#xA;Write a summary about what to say&#xA;Etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The trick is that tasks are small, and are actual actions. It's easy to &lt;em&gt;start&lt;/em&gt;. And everybody here know that when you started, you have beated procrastination.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-25T09:46:53.077" CommentCount="3" />
  <row Id="7262" PostTypeId="2" ParentId="1180" CreationDate="2010-09-25T09:49:25.250" Score="3" ViewCount="" Body="&lt;p&gt;Putting my personal preferences aside. As someone who's been recruiting (and trying to be recruited) lately, when we had this debate in the office the general consensus was that we should look to move to C# from VB.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? Because C# was more prevalent in the market (around us anyway), allowing us to recruit more easily, and be recruited more easily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It looks like it's gone full circle; people learn C# because recruiters want it, because there are more candidates.&lt;/p&gt;&#xA;" OwnerUserId="3526" LastActivityDate="2010-09-25T09:49:25.250" CommunityOwnedDate="2010-09-25T09:49:25.250" />
  <row Id="7263" PostTypeId="2" ParentId="7188" CreationDate="2010-09-25T10:39:44.123" Score="6" ViewCount="" Body="&lt;p&gt;Effective C++&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Probably the best c++ book ever written&lt;/p&gt;&#xA;" OwnerUserId="3617" LastActivityDate="2010-09-25T10:39:44.123" CommunityOwnedDate="2011-02-10T17:23:39.897" />
  <row Id="7264" PostTypeId="2" ParentId="1180" CreationDate="2010-09-25T10:55:09.777" Score="1" ViewCount="" Body="&lt;p&gt;C#. It's just because I have done C and Java, so I feel that C# is more readable to me. C# is for me, as VB.NET is for former VB programmers.&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-09-25T10:55:09.777" CommunityOwnedDate="2010-09-25T10:55:09.777" />
  <row Id="7265" PostTypeId="2" ParentId="7205" CreationDate="2010-09-25T11:17:53.530" Score="1" ViewCount="" Body="&lt;p&gt;I've noticed that I tend to procrastinate only when I have no clear task to do. For me , it's important to maintain a task list and to make sure they are clear. I also tend to procrastinate more on longer tasks so either I split them in multiple smaller tasks or I try to get in the zone by doing a few smaller tasks first. Then when the ball is rolling, I feel comfortable in tackling bigger tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ernest Hemingway also offered a great tip about productivity:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The best way is always to stop when you are going good and when you know what will happen next. If you do that every day … you will never be stuck. Always stop while you are going good and don’t think about it or worry about it until you start to write the next day. That way your subconscious will work on it all the time. But if you think about it consciously or worry about it you will kill it and your brain will be tired before you start.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;em&gt;Ernest Hemingway&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="220" LastActivityDate="2010-09-25T11:17:53.530" CommentCount="2" />
  <row Id="7266" PostTypeId="2" ParentId="7222" CreationDate="2010-09-25T11:31:52.893" Score="5" ViewCount="" Body="&lt;p&gt;Any interviewer stumbling over a mention of visual basic on your resume probably isn't one you want to work for.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-25T11:31:52.893" />
  <row Id="7267" PostTypeId="2" ParentId="7230" CreationDate="2010-09-25T11:48:31.313" Score="0" ViewCount="" Body="&lt;p&gt;Dark text (#1d1d1d) on light background (#f5f5f5) all the way.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;High contrast, while not too bright&lt;/li&gt;&#xA;&lt;li&gt;Allows to turn the screen luminosity way down in a low light environment&lt;/li&gt;&#xA;&lt;li&gt;Readable even on glossy screens with lots of ambient light&lt;/li&gt;&#xA;&lt;li&gt;The text somehow just stands out better, it's easier to maintain visual context when scrolling&lt;/li&gt;&#xA;&lt;li&gt;More readable at small font sizes&lt;/li&gt;&#xA;&lt;li&gt;Makes &lt;a href=&quot;http://www.stereopsis.com/flux/&quot; rel=&quot;nofollow&quot;&gt;color adjusting programs&lt;/a&gt; pleasant to use rather than annoying&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2115" LastActivityDate="2010-09-25T11:48:31.313" />
  <row Id="7268" PostTypeId="2" ParentId="7188" CreationDate="2010-09-25T11:57:25.120" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0070296898&quot; rel=&quot;nofollow&quot;&gt;Enough Rope to Shoot Yourself in the Foot&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although it was written for C++ back in 1995, a lot of it is applicable to newer languages like C#.  I have been better at most OO languages since I first read it, and still refer to it occasionally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/l6iAE.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="113" LastActivityDate="2010-09-25T11:57:25.120" CommunityOwnedDate="2011-02-10T17:23:39.897" CommentCount="1" />
  <row Id="7269" PostTypeId="2" ParentId="7217" CreationDate="2010-09-25T12:25:21.787" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;No.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But for small projects I do it nevertheless. And regret it, every single time. It's like any other bad habit that I need to get rid of. &lt;/p&gt;&#xA;" OwnerUserId="3530" LastActivityDate="2010-09-25T12:25:21.787" CommentCount="2" />
  <row Id="7270" PostTypeId="2" ParentId="6958" CreationDate="2010-09-25T12:32:08.123" Score="2" ViewCount="" Body="&lt;p&gt;I agree with the other answers, it's almost impossible to estimate this project. But, what we can do is give a lower bound.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion, the absolutely minimal level of required functionality for a framework to actually get used would be this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Database layer (secure)&lt;/li&gt;&#xA;&lt;li&gt;Session management (+ anti-CSRF)&lt;/li&gt;&#xA;&lt;li&gt;User identity and permissions management&lt;/li&gt;&#xA;&lt;li&gt;E-mail engine (secure)&lt;/li&gt;&#xA;&lt;li&gt;Templating system (+ anti-XSS)&lt;/li&gt;&#xA;&lt;li&gt;ORM system (or some other sort of model)&lt;/li&gt;&#xA;&lt;li&gt;Form generator (or some other sort of view)&lt;/li&gt;&#xA;&lt;li&gt;Event system (or some other sort of controller)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Basically these modules have to wrap around PHP's built-in functionality and provide a different API to do the same things. Why?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Security&lt;br&gt; &#xA;Most of the effort is going to go into engineering all the sharp edges out of PHP. Using raw PHP is like using a laser-etched knife to pick the food from between your teeth. It can be done safely, but it's very tricky.&lt;/li&gt;&#xA;&lt;li&gt;Usability&lt;br&gt;&#xA;PHP already does everything out of the box, but it's difficult to use. Frameworks provide simpler API's to talk to the ones PHP already provides. That's the reason for their existence.&lt;/li&gt;&#xA;&lt;li&gt;Consistency&lt;br&gt;&#xA;In order to actually be considered a framework instead of a set of libraries, the whole API has to be consistent, unlike PHP's native one. The entirety of Zend Framework feels &quot;Zendy&quot;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I would put a minimal estimate of 60 md on average on these components, for the minimum level of functionality you can get away with and still find users, provided the people implementing it know their stuff well and can start coding right away. That makes roughly 500 md as the lower bound. Realistically speaking, it's going to end up higher, because the minimum is never quite sufficient, and some days are going to get spent not coding (API design, security research, ...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another way of approaching the problem is putting estimates on the competition. Take some metric like lines of code for the typical competing frameworks, run them through a few of the known models, and get ballpark figures for a competitor. I leave that as an exercise to the reader.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say your $4.6 million estimate doesn't sound too unreasonable. Anything less than that and you're not going to be able to call it a &quot;framework&quot;, much less compete with the bigger names.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-25T12:32:08.123" CommentCount="2" />
  <row Id="7271" PostTypeId="2" ParentId="7217" CreationDate="2010-09-25T12:45:10.010" Score="13" ViewCount="" Body="&lt;p&gt;This really comes down to the question of whether or not you can implement things correctly without a tight structure in place and lots of time eaten up in planning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm going to throw something out here on this one that may be really unpopular: &lt;strong&gt;customers generally want things handled in a cowboy fashion&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, they want to request something get done, and have someone jump on it, execute it, and get it out there. No project management, meetings, conference calls, or forms. Just do it. I've never had a customer say &quot;hey, this was done a little too quickly for our tastes, we'd appreciate it if you would put a little waterfall or something in there next time&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Team methodologies and structure are designed to level the playing field of a project and get varying levels of developers on the same page, working for the same goals, in the same ways.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The successful &quot;cowboys&quot; that I have worked with are able to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Identify the simplest way to implement something quickly&lt;/li&gt;&#xA;&lt;li&gt;Know at what point it will break&lt;/li&gt;&#xA;&lt;li&gt;Write clean, readable, and straightforward code&lt;/li&gt;&#xA;&lt;li&gt;Predict how the users will use it, abuse it, and break it&lt;/li&gt;&#xA;&lt;li&gt;Scale it / abstract it in the right places, and not go architecture astronaut on it&lt;/li&gt;&#xA;&lt;li&gt;Know where and how to handle edge cases and exceptions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;People like this produce truly great results with very little management and structure overhead, but they are rare.&lt;/p&gt;&#xA;" OwnerUserId="1596" LastEditorUserId="1596" LastEditorDisplayName="" LastEditDate="2010-09-25T13:46:52.010" LastActivityDate="2010-09-25T13:46:52.010" CommentCount="1" />
  <row Id="7272" PostTypeId="2" ParentId="7188" CreationDate="2010-09-25T13:02:25.503" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201704315&quot; rel=&quot;nofollow&quot;&gt;Modern C++ Design&lt;/a&gt;, simply because I don't think there's a way anyone can fully understand that template code the first time.  (As for what this says about C++...)&lt;/p&gt;&#xA;" LastActivityDate="2010-09-25T13:02:25.503" CommunityOwnedDate="2011-02-10T17:23:39.897" CommentCount="4" />
  <row Id="7273" PostTypeId="2" ParentId="7188" CreationDate="2010-09-25T13:36:09.757" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The Practice of Programming&lt;/strong&gt; by Kernighan and Pike.&#xA;Great read, and small enough to read more than once and/or not scare those who don't like to read.&lt;/p&gt;&#xA;" OwnerUserId="3228" LastActivityDate="2010-09-25T13:36:09.757" CommunityOwnedDate="2011-02-10T17:23:39.897" />
  <row Id="7274" PostTypeId="2" ParentId="7188" CreationDate="2010-09-25T13:38:37.503" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Mastering Regular Expressions&lt;/strong&gt; by Friedl.&lt;br&gt;&#xA;Not an easy read, but a must for those interested in RegExp.&lt;/p&gt;&#xA;" OwnerUserId="3228" LastActivityDate="2010-09-25T13:38:37.503" CommunityOwnedDate="2011-02-10T17:23:39.897" />
  <row Id="7276" PostTypeId="2" ParentId="7188" CreationDate="2010-09-25T13:44:28.477" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Unix in a Nutshell&lt;/strong&gt; by Arnold Robbins.&lt;br&gt;&#xA;It's literaly an arms lenght away from me on my desk.&lt;/p&gt;&#xA;" OwnerUserId="3228" LastActivityDate="2010-09-25T13:44:28.477" CommunityOwnedDate="2011-02-10T17:23:39.897" />
  <row Id="7277" PostTypeId="2" ParentId="1180" CreationDate="2010-09-25T13:54:21.387" Score="20" ViewCount="" Body="&lt;p&gt;I prefer C# over VB.NET because&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it's easier to find programmers/jobs:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/2ySwI.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it's easier to find help:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/5LP65.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;(from stackoverflow)&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="3623" LastEditorUserId="3623" LastEditorDisplayName="" LastEditDate="2010-09-25T14:58:23.613" LastActivityDate="2010-09-25T14:58:23.613" CommunityOwnedDate="2010-09-25T13:54:21.387" CommentCount="5" />
  <row Id="7278" PostTypeId="2" ParentId="7188" CreationDate="2010-09-25T13:54:24.317" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Design Patterns&lt;/li&gt;&#xA;&lt;li&gt;Mythical Man-Month&lt;/li&gt;&#xA;&lt;li&gt;Effective C++&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3624" LastActivityDate="2010-09-25T13:54:24.317" CommunityOwnedDate="2011-02-10T17:23:39.897" />
  <row Id="7279" PostTypeId="2" ParentId="7188" CreationDate="2010-09-25T14:00:17.637" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Don't Make Me Think&lt;/strong&gt; by Steve Krug.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The last time was when I bought &lt;strong&gt;Rocket Surgery Made Easy&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-25T14:00:17.637" CommunityOwnedDate="2011-02-10T17:23:39.897" />
  <row Id="7280" PostTypeId="2" ParentId="7188" CreationDate="2010-09-25T14:02:32.223" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0471694665&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://i.imgur.com/Ppbr5.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3252" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-27T01:02:30.387" LastActivityDate="2010-09-27T01:02:30.387" CommunityOwnedDate="2011-02-10T17:23:39.897" CommentCount="3" />
  <row Id="7281" PostTypeId="2" ParentId="7205" CreationDate="2010-09-25T14:13:32.947" Score="0" ViewCount="" Body="&lt;p&gt;I keep an IDE open with some fun projects that are not part of my job (thins that are fun to do, but my boss would kill me if I spent time on them), and I work on them whenever I can't seem to concentrate on my real work.&#xA;It motivates me, since it's fun, and sometimes I come up with creative solutions to problems we wouldn't have solved otherwise, which is also good for your reputation.&lt;/p&gt;&#xA;" OwnerUserId="3624" LastActivityDate="2010-09-25T14:13:32.947" CommentCount="2" />
  <row Id="7282" PostTypeId="2" ParentId="7188" CreationDate="2010-09-25T14:27:00.050" Score="1" ViewCount="" Body="&lt;p&gt;Effective Java and Clean Code&lt;/p&gt;&#xA;" OwnerUserId="3627" LastActivityDate="2010-09-25T14:27:00.050" CommunityOwnedDate="2011-02-10T17:23:39.897" />
  <row Id="7284" PostTypeId="2" ParentId="1013" CreationDate="2010-09-25T14:38:27.310" Score="3" ViewCount="" Body="&lt;p&gt;Rational ClearCase with standard integration in VS2003. You can't rename files, move files or add files without getting errors (which may has something do to with a server side script which forces comments, which VS does not add when renaming). Project explorer drops my files all the time, if I try to add it again I get another error. A bug in ClearCase explorer cost me 2 days of work recently. Poor piece of software, at least as its integrated in our company. I get the creeps every time I have to check in :&gt;&lt;/p&gt;&#xA;" OwnerUserId="3627" LastActivityDate="2010-09-25T14:38:27.310" CommunityOwnedDate="2011-02-01T07:56:02.387" CommentCount="1" />
  <row Id="7285" PostTypeId="2" ParentId="7217" CreationDate="2010-09-25T14:49:59.540" Score="49" ViewCount="" Body="&lt;p&gt;I think almost every experienced programmer has gone through three stages and some go through four:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cowboy coders&lt;/strong&gt; or &lt;strong&gt;nuggets&lt;/strong&gt; know little to nothing about design and view it as an unnecessary formality.  If working on small projects for non-technical stakeholders, this attitude may serve them well for a while; it Gets Things Done, it impresses the boss, makes the programmer feel good about himself and confirms the idea that he knows what he's doing (even though he doesn't).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Architecture Astronauts&lt;/strong&gt; have witnessed the failures of their first ball-of-yarn projects to adapt to changing circumstances.  Everything must be rewritten and to prevent the need for &lt;em&gt;another&lt;/em&gt; rewrite in the future, they create &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Inner_platform_effect&quot; rel=&quot;nofollow&quot;&gt;inner platforms&lt;/a&gt;&lt;/strong&gt;, and end up spending 4 hours a day on support because nobody else understands how to use them properly.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quasi-engineers&lt;/strong&gt; often mistake themselves for &lt;em&gt;actual&lt;/em&gt;, trained engineers because they are genuinely &lt;em&gt;competent&lt;/em&gt; and understand some engineering principles.  They're aware of the underlying engineering and business concepts: Risk, ROI, UX, performance, maintainability, and so on.  These people see design and documentation as a &lt;em&gt;continuum&lt;/em&gt; and are usually able to adapt the level of architecture/design to the project requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this point, many fall in love with methodologies, whether they be Agile, Waterfall, RUP, etc.  They start believing in the absolute infallibility and even &lt;em&gt;necessity&lt;/em&gt; of these methodologies without realizing that in the &lt;em&gt;actual&lt;/em&gt; software engineering field, they're merely tools, not religions.  And unfortunately, it prevents them from ever getting to the final stage, which is:&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.joelonsoftware.com/items/2009/09/23.html&quot; rel=&quot;nofollow&quot;&gt;Duct tape programmers&lt;/a&gt;&lt;/strong&gt; AKA &lt;strong&gt;gurus&lt;/strong&gt; or &lt;strong&gt;highly-paid consultants&lt;/strong&gt; know what architecture and design they're going to use within five minutes after hearing the project requirements.  All of the architecture and design work is still happening, but it's on an intuitive level and happening so fast that an untrained observer would mistake it for cowboy coding - &lt;em&gt;and many do&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally these people are all about creating a product that's &quot;good enough&quot; and so their works may be a little under-engineered but they are &lt;em&gt;miles&lt;/em&gt; away from the spaghetti code produced by cowboy coders.  Nuggets cannot even identify these people when they're &lt;em&gt;told about them&lt;/em&gt;, because to them, everything that is happening in the background just doesn't exist.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Some of you will probably be thinking to yourselves at this point that I haven't answered the question.  That's because the question itself is flawed.  Cowboy coding isn't a &lt;em&gt;choice&lt;/em&gt;, it's a &lt;em&gt;skill level&lt;/em&gt;, and you can't choose to be a cowboy coder any more than you can choose to be illiterate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are a cowboy coder, then you know no other way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've become an architecture astronaut, you are &lt;em&gt;physically and psychologically incapable&lt;/em&gt; of producing software with no design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are a quasi-engineer (or a professional engineer), then completing a project with little or no up-front design effort is a conscious choice (usually due to absurd deadlines) that has to be weighed against the obvious risks, and undertaken only after the stakeholders have agreed to them (usually in writing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if you are a duct-tape programmer, then there is never any reason to &quot;cowboy code&quot; because you can build a &lt;em&gt;quality&lt;/em&gt; product just as quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nobody &quot;prefers&quot; cowboy coding over other methodologies because it isn't a methodology.  It's the software development equivalent of mashing buttons in a video game.  It's OK for the beginner levels but anybody who's moved past that stage simply won't do it.  They might do something that &lt;em&gt;looks similar&lt;/em&gt; but it will not be the same thing.&lt;/p&gt;&#xA;" OwnerUserId="3249" LastActivityDate="2010-09-25T14:49:59.540" CommentCount="9" />
  <row Id="7286" PostTypeId="1" CreationDate="2010-09-25T15:04:52.673" Score="7" ViewCount="349" Body="&lt;p&gt;We've all met both kinds of people, which generally can be categorized by the status of their desks: the ones who have a clean, non-cluttered desk; and the ones whose desk look short of having been struck by a bomb shell. But what kind are programmers? Is programming driven by:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;either order &lt;em&gt;or&lt;/em&gt; chaos, but not both,&lt;/li&gt;&#xA;&lt;li&gt;a combination of both,&lt;/li&gt;&#xA;&lt;li&gt;or does it have no impact whatsoever?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-19T13:01:47.120" LastActivityDate="2010-11-19T13:59:17.147" Title="Are programmers inclined towards order or chaos?" Tags="&lt;personality&gt;&lt;personal-traits&gt;" AnswerCount="12" CommentCount="2" FavoriteCount="2" />
  <row Id="7287" PostTypeId="2" ParentId="7286" CreationDate="2010-09-25T15:07:27.303" Score="10" ViewCount="" Body="&lt;p&gt;Both are dangerous for the business (not related to quality of the code produced).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO, the best ones are those who are not too ordered, and not too messy. The pragmatic ones.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-25T15:07:27.303" CommentCount="1" />
  <row Id="7288" PostTypeId="2" ParentId="1013" CreationDate="2010-09-25T15:08:37.653" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Dreamweaver Templates&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dreamweaver had a bad habit of forgetting it's template when making small changes.  I could never get Dreamweaver's templating system to work consistantly, nor have I seen anyone but a beginner use it.  &lt;/p&gt;&#xA;" OwnerUserId="1013" LastEditorUserId="1013" LastEditorDisplayName="" LastEditDate="2010-09-30T01:10:41.103" LastActivityDate="2010-09-30T01:10:41.103" CommunityOwnedDate="2011-02-01T07:56:02.387" CommentCount="2" />
  <row Id="7289" PostTypeId="2" ParentId="7217" CreationDate="2010-09-25T15:29:44.220" Score="1" ViewCount="" Body="&lt;p&gt;Only when prototyping of very simple features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then once done and considered the right way, I ditch the code and get serious.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-09-25T15:29:44.220" />
  <row Id="7290" PostTypeId="2" ParentId="7286" CreationDate="2010-09-25T15:33:17.707" Score="3" ViewCount="" Body="&lt;p&gt;First, they know enjoy chaos. Then they learn how much it can hurt and learn a lot about order. But after some time they feel like in a prison of patterns, and start to put a bit of chaos in their order. When they become master, they just use ordered chaos.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everything that can survive for a long time is made of hard order around or in soft chaos (like flesh and bones).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, in video games programming/design, to control the player experience but still provide liberty of action to the player - for example to manage a game world built with gameplay-emergence in mind -, we often end with a structured graph (order) of &quot;sandbox&quot; spaces (chaos).  One excellent example of this might be Deus Ex. Or even Thief 1&amp;amp;2.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you think about it in a fractal way, there is a lot of chaos in ordered cells generating chaos contained in ordered bodies, etc.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastEditorUserId="1921" LastEditorDisplayName="" LastEditDate="2010-11-19T13:59:17.147" LastActivityDate="2010-11-19T13:59:17.147" CommentCount="3" />
  <row Id="7292" PostTypeId="1" CreationDate="2010-09-25T15:43:52.010" Score="15" ViewCount="413" Body="&lt;p&gt;We know about Google's 20% projects, whereby a developer can spend up to 20% of their time on a personal project which interests them.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your employer let you spend 20% of your time on a project that wasn't part of your day-to-day work, would you make use of it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can think of a couple of reasons why not:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It would make your normal work take 20% longer (extended deadline)&lt;/li&gt;&#xA;&lt;li&gt;You might want to keep your personal idea &quot;personal.&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2397" LastActivityDate="2010-09-25T16:03:51.200" Title="Would you make use of &quot;Google 20%&quot; time if your employer encouraged and funded it?" Tags="&lt;productivity&gt;&lt;jobs&gt;&lt;employment&gt;" AnswerCount="2" FavoriteCount="2" />
  <row Id="7293" PostTypeId="2" ParentId="49" CreationDate="2010-09-25T15:49:34.473" Score="8" ViewCount="" Body="&lt;p&gt;I was a professor and, just like programmers, professors are always looking for the Next Big Thing. When they think they've found one, they make it a bandwagon, and everyone piles on. Since they are preaching to students who think professors must be really smart, else why would they be professors, they get no resistance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Functional programming is such a bandwagon. Sure it's got lots of nice interesting questions to investigate, and lots of sort-of-interesting conference articles to write. It's not a particularly new idea, and you can do it in just about any modern language, and ideas don't have to be new to be interesting. It's also a good skill to have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given that, functional programming is just one arrow to have in your quiver, not the only one, just as OOP is not the only one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My beef with computer science academia is lack of practical interplay with industry to determine what actually makes real-world sense, i.e. quality control. If that quality control were there, there might be a different emphasis, on classifying problems and the ranges of solutions to them, with tradeoffs, rather than just the latest bandwagons.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-09-25T15:57:31.387" LastActivityDate="2010-09-25T15:57:31.387" CommentCount="1" />
  <row Id="7294" PostTypeId="2" ParentId="7217" CreationDate="2010-09-25T15:52:13.917" Score="1" ViewCount="" Body="&lt;p&gt;I've done it once on a real project (at the time we called it Samurai Programming, after the Samurai Tailor series of sketches on Saturday Night Live), and much to my amazement, it worked out well. Of course, what I started with was garbage, so there was little risk of making it worse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I am a &quot;neat&quot; at heart and dislike the shoot-from-the-hip style of development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, heavily process-laden modus operandi is not to my taste either. I just like to plan before I act.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All in all, I feel that the amount of formal process that is appropriate depends heavily on the magnitude (size of the code, duration of the project, number of developers, kinds of requirements, etc.) of the project. I want rigor and strict criteria to be imposed on people developing the software for avionics or biomedical equipment, e.g. For games, e.g., there's far less down-side to any failures, so the cost and burden of rigorous and methodical development practices is not really justified.&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-09-25T15:52:13.917" CommentCount="1" />
  <row Id="7295" PostTypeId="2" ParentId="7292" CreationDate="2010-09-25T15:54:45.050" Score="18" ViewCount="" Body="&lt;p&gt;First of all, Google's policy around the 20% time is that you can use it &lt;em&gt;if&lt;/em&gt; your other commitments and responsibilities are being met. I doubt they would happy if you were late on your team's project because you were focusing your energy on the 20% project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I think that Google's 20% idea is simply an official recognition of something that most great programmers are doing already anyway: spending some portion of their time on non-assigned project work attempting to make improvements wherever they can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If my employer made this an official policy then sure I'd take advantage of it as I'm already spending some amount of my time working on improving random processes and tools that we use.&lt;/p&gt;&#xA;" OwnerUserId="851" LastActivityDate="2010-09-25T15:54:45.050" CommentCount="2" />
  <row Id="7296" PostTypeId="2" ParentId="7217" CreationDate="2010-09-25T15:56:44.803" Score="2" ViewCount="" Body="&lt;p&gt;When I think &quot;traditional&quot; methodologies, I think &quot;management doesn't know how to understand developers, so instead of coming into the devs world and understanding enough to know what's going on, they make the devs come into their world&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fundamentally, when I think of &quot;Agile&quot;. I think &quot;you do what you need to do to minimize the inefficiencies introduced by multiple people working together.&quot; So I'm firmly in the camp that &quot;there's no such thing as &lt;em&gt;&lt;strong&gt;THE&lt;/strong&gt; Agile Methodology&lt;/em&gt;, just a set of values and principles&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, there's things you need to do on a very large project, and there's things you need to do on small projects, and there's things that you do on both. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;e.g. I would not have more than the simplest of backlogs for a project I'm working on myself... it would just be a to-do list. If there's two of us, I'd probably have that list shared, but in a very simple format (probably just a note stored in our code repo). Once I have 3 or 4, I'm looking for some sort of work item system. &lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-25T15:56:44.803" />
  <row Id="7297" PostTypeId="2" ParentId="7286" CreationDate="2010-09-25T16:02:56.520" Score="9" ViewCount="" Body="&lt;p&gt;The chaos level on my desk looks something like this graph, replace &lt;code&gt;Amplitude&lt;/code&gt; with &lt;code&gt;Chaos&lt;/code&gt; (image taken from &lt;a href=&quot;http://en.wikipedia.org/wiki/Sawtooth_wave&quot; rel=&quot;nofollow&quot;&gt;Wikipedia&lt;/a&gt;):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://imgur.com/eEOr3.gif&quot; alt=&quot;&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every few weeks, I clean my desk, throw away all the useless things that keep accumulating, and vow to keep my desk clean forever. Few weeks later, I do the same.&lt;/p&gt;&#xA;" OwnerUserId="1303" LastEditorUserId="1303" LastEditorDisplayName="" LastEditDate="2010-09-27T15:15:36.247" LastActivityDate="2010-09-27T15:15:36.247" CommentCount="1" />
  <row Id="7298" PostTypeId="2" ParentId="7292" CreationDate="2010-09-25T16:03:51.200" Score="7" ViewCount="" Body="&lt;p&gt;You must see that as an opportunity. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding extra 20% work necessary to meet a deadline, it's not directly your problem. You have already big responsabilites, such as doing good work, taking the responsabilities of your management is not a good idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding keeping your ideas for you, you have the choice:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Create your own company and develop your wonderful ideas. With chance you'll get 100% of the hypothetical return.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Stay at work, but keep your wonderful idea in your safe. Nobody will look at it, not even you. Good way to kill it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Use your employer's resources to develop it without risks. If it work you may not get 100%, but you will get valuable experience without risking anything, and you'll be famous in both your company and the industry you are in. This will provide you with lots of new opportunities.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;IMOH, if you have a good idea that can make the world a better place, and the free time + free resources to develop it, not going ahead is pure crazyness.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-25T16:03:51.200" CommentCount="2" />
  <row Id="7299" PostTypeId="2" ParentId="7166" CreationDate="2010-09-25T16:39:20.313" Score="6" ViewCount="" Body="&lt;p&gt;I like Python's indentation rule.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I said this elsewhere and will repeat here, whoever complains about Python in this respect should be asked to maintain poorly indented source code. If you understand how painful it is to read through that kind of source code, you would appreciate this rule.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-25T16:39:20.313" CommentCount="2" />
  <row Id="7300" PostTypeId="2" ParentId="7217" CreationDate="2010-09-25T17:07:40.823" Score="2" ViewCount="" Body="&lt;p&gt;Yes, but you have to recognize when NOT to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On anything small you are probably fine, but if you have something complex, dangerous, constrained, etc you need to be able to recognize when a proper design is worth the extra time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also think you should definitely think through Aaronaught's answer.  Cowboy means different things to different people.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-25T17:07:40.823" />
  <row Id="7301" PostTypeId="2" ParentId="7286" CreationDate="2010-09-25T17:12:07.897" Score="0" ViewCount="" Body="&lt;p&gt;My work life is order (non cluttered desk).  My home life is chaos (cluttered everything).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The difference is that I am solely in control of my non cluttered desk - I have a wife and kids to share the cluttered home with :)&lt;/p&gt;&#xA;" OwnerUserId="2397" LastActivityDate="2010-09-25T17:12:07.897" CommentCount="3" />
  <row Id="7302" PostTypeId="2" ParentId="7188" CreationDate="2010-09-25T17:19:21.353" Score="8" ViewCount="" Body="&lt;p&gt;This will probably only get me bad karma, but here goes:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://upload.wikimedia.org/wikipedia/en/7/77/UNIX-HATERS_Handbook_cover_ISBN_1-56884-203-1.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not only it's very amusing to read[1], but I believe &lt;a href=&quot;http://en.wikipedia.org/wiki/The_UNIX-HATERS_Handbook&quot; rel=&quot;nofollow&quot;&gt;The UNIX-HATERS Handbook&lt;/a&gt; is one of the most misunderstood books. The writers don't hate Unix; their criticism is mostly constructive and valid criticism. Most of the problems are solved in more 'modern' Unix systems, but I still think it's a good read for any Unix user[2].&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The morale of the book is that no matter how widespread and 'standard' something is, it's not the only way to do things, and it's always OK to criticize it, at least in hope of improving it. If you are a long-time Unix user, once you read this book, you begin to question most widespread technologies, even ones not mentioned in the book (being younger than the book itself). HTTP is an inconsistent bloated mess, x86 is an inefficient excuse of a CPU architecture, and SMTP is the biggest mistake in Internet history.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I read it many times over to remind myself of what good criticism should look like.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to read it, it's available for free online: &lt;a href=&quot;http://simson.net/ref/ugh.pdf&quot; rel=&quot;nofollow&quot;&gt;PDF&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[1] I once had to suppress a giggle in a University class because I understood a joke from the book a long time after reading it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[2] Or even Windows users, but don't expect to understand most of the humor.&lt;/p&gt;&#xA;" OwnerUserId="1303" LastActivityDate="2010-09-25T17:19:21.353" CommunityOwnedDate="2011-02-10T17:23:39.897" CommentCount="6" />
  <row Id="7303" PostTypeId="2" ParentId="4863" CreationDate="2010-09-25T17:24:34.560" Score="3" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://reia-lang.org/&quot; rel=&quot;nofollow&quot;&gt;Reia&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Reia (pronounced RAY-uh) is a Ruby/Python-like scripting language for the Erlang virtual machine (BEAM). Reia aims to expose all the features and functionality of Erlang in a language more familiar to programmers of scripting languages, while improving string handling, regular expressions, linking with external libraries, and other tasks which are generally considered outside the scope of Erlang.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/BPkHs.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-25T17:24:34.560" CommunityOwnedDate="2010-10-22T23:54:06.263" CommentCount="1" />
  <row Id="7304" PostTypeId="2" ParentId="35" CreationDate="2010-09-25T17:27:25.570" Score="3" ViewCount="" Body="&lt;p&gt;New methodology in town.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;&lt;strong&gt;Go eXtreme Horse (XGH)&lt;/strong&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1 - He thought, is not XGH.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;XGH not think, do the first thing that comes to mind. There is no second option, the only option is the fastest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2 - There are three ways to solve a problem, correct, the wrong and XGH, which is equal to the wrong, only faster.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;XGH is faster than any software development methodology that you know (See Axiom 14).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3 - The more XGH you do, more you need to do.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For every problem solved using XGH, plus a 7 is created. But all will be solved in the form XGH. XGH tends to infinity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;4 - XGH is entirely reactive.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The errors exist only when they appear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;5 - XGH anything goes.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Solved the problem? Compiled? Commit and that was it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;6 - Commit ever before update.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it go crappy, your share will always be correct... blame your colleagues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;7 - XGH has no deadline.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The time spent by your client are mere details. You will ALWAYS be able to implement on time (even if this requires accessing the database through a hacking script).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;8 - Be prepared to jump off when the boat begins to sink... or put the blame on someone or something.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;XGH who use it, one day the boat sank. The more time passes, the more the system becomes a monster. The day the house down, it's better you be registered on careers.stackoverflow.com, or have something to blame.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;9 - Be authentic, XGH not respect standards.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Enter the code as you want, if resolve the problem, commit, and that was it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;10 - No refactoring, just rework.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it go crappy, redo a quick XGH that solves the problem. The day the rework lead in rewriting the entire application, get out, the boat will sink (see Axiom 8).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;11 - XGH is totally anarchic.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The figure of a project manager is fully disposable. Nobody owns, everyone does what they want when the problems and requirements arise (see Axiom 4).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;12 - Ever deceived with promises of improvements.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Put ALL the code as a promise to help improve the developer XGH not feel remorse or guilt for the crappy he did. Of course, the refactoring will never be done (see Axiom 10).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;13 - XGH is absolute, no connection to related things.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Time and cost are absolute, quality is totally relative. Never think about the quality but in less time than the solution will be implemented, by the way... do not think, do! (see Axiom 1).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;14 - XGH is timeless.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scrum, XP... it's all fad. The XGH is not related to the folk songs of the moment, this is something for sissies. XGH always been and always will be used by those who despise the quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;15 - XGH not always HOP.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hacking Oriented Programming (aka cowboy programming) requires a very high reasoning, XGH not thinks (see Axiom 1).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;16 - Do not try to swim against the wave.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your XGH coworkers use to program and you are a nerd that likes to make things neat, forget it! For each design pattern that you use it correctly, your colleagues will generate 10 times more rotten code using XGH.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;17 - XGH is not dangerous until a little order.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This axiom is very complex, but suggests that the project is using XGH amid the chaos. Do not try to rule the XGH (See Axiom 16) it is useless and you can play a valuable time in the trash. This will cause the project to sink even faster (see Axiom 8). Do not try to manage the XGH, it is self sufficient (see Axiom 11), as well as chaos.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;18 - XGH is your brother, but vindictive.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While you want, XGH will always be with you. But beware, do not forsake. If you start using a XGH system and abandon it to use a fashion methodology, you're f*cked. The XGH not allow refactoring (see axiom 10), and your new system will collapse. Now, only the XGH can save you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;19 - If it is working, don't touch!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never change, much less questioning a working code. It's a waste of time, because there is no refactoring (See Axiom 10). Time is the gear that moves the XGH and quality is a negligible detail.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;20 - Testing is for wimps.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you put your hand in a system XGH, it's better to know what you're doing. And if you know what you are doing, will test for what? Tests are a waste of time if the code compiles, it is enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;21 - Be prepared to the feeling of impending doom.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The failure and success always go side by side, and XGH is no different. People often think that the chances of project failure using XGH are always bigger than its being successful. But success and failure are a matter of perspective. The project fell through but you learn something? So to you it was a success!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;22 - The only problem is when your name is in the Doc class.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never put your hand in a class whose author is not you. If a team member dies or becomes ill for a long time, the boat will sink! In this case, use the Axiom 8.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-25T17:27:25.570" CommunityOwnedDate="2010-09-25T17:27:25.570" CommentCount="4" />
  <row Id="7305" PostTypeId="1" CreationDate="2010-09-25T17:49:26.903" Score="12" ViewCount="708" Body="&lt;p&gt;What is your favorite method to declare a pointer?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int* i;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int *i;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int * i;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int*i;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Please explain why.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;see also: &lt;a href=&quot;http://www2.research.att.com/~bs/bs_faq2.html#whitespace&quot; rel=&quot;nofollow&quot;&gt;http://www2.research.att.com/~bs/bs_faq2.html#whitespace&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="116" LastEditorUserId="116" LastEditorDisplayName="" LastEditDate="2010-09-26T16:57:14.137" LastActivityDate="2010-10-16T10:31:21.913" Title="int* i; or int *i; or int * i;" Tags="&lt;holy-war&gt;&lt;style-guide&gt;&lt;pointers&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="2" />
  <row Id="7306" PostTypeId="2" ParentId="7305" CreationDate="2010-09-25T18:01:31.263" Score="31" ViewCount="" Body="&lt;p&gt;I prefer &lt;code&gt;int* i&lt;/code&gt; because &lt;code&gt;i&lt;/code&gt; has the type &quot;pointer to an int&quot;, and I feel this makes it uniform with the type system. Of course the well-known behavior comes in, when trying to define multiple pointers on one line (namely, the star need to be put before each variable name to declare a pointer), but I simply don't declare pointers this way. Also, I think it's a severe defect in C-style languages.&lt;/p&gt;&#xA;" OwnerUserId="3530" LastActivityDate="2010-09-25T18:01:31.263" CommentCount="9" />
  <row Id="7307" PostTypeId="2" ParentId="6958" CreationDate="2010-09-25T18:02:22.963" Score="4" ViewCount="" Body="&lt;p&gt;It should be noted that the valuation Ohloh gives for CakePHP is based only on what they think it would &lt;a href=&quot;http://www.ohloh.net/wiki/project_codebase_cost&quot; rel=&quot;nofollow&quot;&gt;take to develop it&lt;/a&gt;, not it's actual worth. For example, according to this, &lt;a href=&quot;http://www.ohloh.net/p/jQuery&quot; rel=&quot;nofollow&quot;&gt;jQuery&lt;/a&gt; is only worth $428,606 and &lt;a href=&quot;http://www.ohloh.net/p/wordpress&quot; rel=&quot;nofollow&quot;&gt;Wordpress&lt;/a&gt; weighs in at just under $1.9 million. jQuery has a ridiculous market share, being used by &lt;a href=&quot;http://royal.pingdom.com/2010/03/26/jquery-triumphant-march-to-success/&quot; rel=&quot;nofollow&quot;&gt;28% of all websites&lt;/a&gt;, and Wordpress powers about &lt;a href=&quot;http://w3techs.com/technologies/overview/content_management/all&quot; rel=&quot;nofollow&quot;&gt;12% of the internet&lt;/a&gt;. I'd venture to say that both of those valuations fall a little short of what the projects are actually worth. As popular is CakePHP is, I doubt it's worth more than jQuery or Wordpress. However, that doesn't mean the valuation for &lt;em&gt;developing&lt;/em&gt; CakePHP is off, it just needs to be taken with a grain of salt. It also may not factor in writing unit tests or documentation, both of which are vitally important to any project. There is also no way that it can estimate how long developers spent researching and referencing other code and how many times they had to rewrite and refactor it before committing it to SVN.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've written my PHP framework/library from scratch. It includes an ORM/database abstraction layer, form validation and filter, file and directory management, ACL, pagination and table sorting, translation, caching, and XML manipulation. It's not strictly MVC, but it can be used that way if needed. It's not quite as big as some of the other frameworks I listed above.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It took me about a 8 months to a year (I can't be more exact than that, sorry) to write it by myself and I have yet to write documentation or get complete test coverage for it. Much of that time was spent researching best practices and playing around with the API, trying to get it just right. In some ways, it helped being the only one writing it because it gave the project a stronger and more consistent direction. I think that if I had others working on it, more time would have been taken up in discussion, but perhaps less time in actually coding it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are more features that I would like to add, perhaps even making my framework completely MVC. I'd like to think that as I gain more experience, it would take less time to get it right. When I started, I was still learning a lot and probably didn't realize the size of the project I was undertaking. If I had to do it over again from scratch, knowing what I know now, the framework would probably take 6-8 months by myself. Of course, other developers probably code faster than I do and a team environment would probably reduce that time by a lot.&lt;/p&gt;&#xA;" OwnerUserId="73" LastActivityDate="2010-09-25T18:02:22.963" CommentCount="5" />
  <row Id="7308" PostTypeId="2" ParentId="7305" CreationDate="2010-09-25T18:09:35.610" Score="11" ViewCount="" Body="&lt;p&gt;For C, where we don't have a strong focus on types, I prefer:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;int *i;&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because it has an emphesis on the &lt;code&gt;int&lt;/code&gt;, not the pointer. What is the &lt;code&gt;int&lt;/code&gt;? &lt;code&gt;*i&lt;/code&gt; is the int.&lt;/p&gt;&#xA;" OwnerUserId="227" LastActivityDate="2010-09-25T18:09:35.610" CommentCount="1" />
  <row Id="7309" PostTypeId="2" ParentId="7305" CreationDate="2010-09-25T18:14:41.013" Score="0" ViewCount="" Body="&lt;p&gt;I'd go for &lt;code&gt;int* i;&lt;/code&gt; since the first part denotes the variable type (pointer to int), while the second part denotes the name (&lt;code&gt;i&lt;/code&gt;). It wouldn't make sense to me that the type is &lt;code&gt;int&lt;/code&gt; and the name is &lt;code&gt;*i&lt;/code&gt;. Also, &lt;code&gt;int * i;&lt;/code&gt; looks a bit like multiplication to me.&lt;/p&gt;&#xA;" OwnerUserId="135" LastActivityDate="2010-09-25T18:14:41.013" CommentCount="4" />
  <row Id="7310" PostTypeId="2" ParentId="7305" CreationDate="2010-09-25T18:15:04.633" Score="0" ViewCount="" Body="&lt;p&gt;I actually use all three conventions in specific circumstances. At first glance I seem inconsistent, but...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;int *&lt;/code&gt; when the identifier is not present, to visually reinforce that the name is not present.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;int* intptr&lt;/code&gt; on &lt;code&gt;typedef&lt;/code&gt;s and similar declarations to visually reinforce that it's part of the type. Similarly with function pointer declarations: &lt;code&gt;(int* (*foo)(int))&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;int *identifier&lt;/code&gt; and &lt;code&gt;class &amp;amp;identifier&lt;/code&gt; on function parameters to visually reinforce that the parameter is potentially a so-called &quot;out&quot; parameter.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;const int * const * const&lt;/code&gt; whenever I use &lt;em&gt;c-v&lt;/em&gt; qualifiers.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;int * foo;&lt;/code&gt; on local declarations.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I guess I am somewhat visually-oriented.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-09-25T18:15:04.633" />
  <row Id="7311" PostTypeId="2" ParentId="7157" CreationDate="2010-09-25T18:15:15.460" Score="1" ViewCount="" Body="&lt;p&gt;I tend to lay them out the following way:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Public fields (usually static constants)&#xA;Constructors&#xA;Public methods&#xA;Private methods&#xA;Private fields&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Haven't used a language which uses &lt;code&gt;Properties&lt;/code&gt; so that's why those are not laid out. I put private methods and fields at the bottom because if someone else is using this file in their code, they should only need to concern themselves with the API, which is the public stuff. And all text editors I know of, and even IDEs, sets the cursor at the top when opening files.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-25T18:15:15.460" CommentCount="1" />
  <row Id="7312" PostTypeId="2" ParentId="7305" CreationDate="2010-09-25T18:15:23.590" Score="42" ViewCount="" Body="&lt;p&gt;If you write:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int* i, j, k;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;you misleadingly suggest that all of i, j and k are pointers to &lt;code&gt;int&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I contend it's superior to annex the * to the variable name.&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-09-25T18:15:23.590" CommentCount="4" />
  <row Id="7313" PostTypeId="2" ParentId="7017" CreationDate="2010-09-25T18:30:42.847" Score="1" ViewCount="" Body="&lt;p&gt;Even if the language had not changed, I would still recommend you to pick up a book or read a good online tutorial (but C++ is a big language, so that's one long tutorial to have to read on-screen). A lot will have been forgotten in those 15-20 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The differences between Java and C++, as you may know, are vast despite their similarities in syntax. This makes it easy to introduce practices which work well in Java but may be very inefficient or even disastrous in C++. Especially when you've worked a long time with one but not the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So do yourself a favour and make the effort to relearn C++ &quot;from scratch&quot;. Don't just jump straight into coding; it will save you a lot of headache. And memory leakage. Also, you will hopefully not have to face the following scenario:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;-WTF is this piece of code?! Hey! You there! Did you write this? What the hell were you thinking?!&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;-But that's how you do it in Java...&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;-THIS ISN'T JAVA, STUPID!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-25T18:30:42.847" CommentCount="2" />
  <row Id="7314" PostTypeId="2" ParentId="6958" CreationDate="2010-09-25T18:38:28.303" Score="2" ViewCount="" Body="&lt;p&gt;Many of those &quot;this project would have cost xxxxx to create&quot; info boxes you see for F/OSS projects are based purely on an estimate of how long it takes to create a line of code * how much an average project costs per line of code * how many lines of code in the source&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, it looks like most of those use a pretty liberal definition of what a line of code is(often counting comments as well as generated code) or a very loose assumption on how long it takes to create a line of code (e.g. using C++ metrics for Python). It's marketing even though it's F/OSS and should be taken with the same grain of salt you use for any marketing material.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-25T18:38:28.303" />
  <row Id="7318" PostTypeId="2" ParentId="7286" CreationDate="2010-09-25T19:24:00.950" Score="1" ViewCount="" Body="&lt;p&gt;I've never been much into filing things (i.e. filing cabinets with neatly labeled folders).  I generally have several stacks of paper on my desk, so to find something I have to search through (usually just one) of the piles.  The thing is, &lt;em&gt;I know pretty much where everything is&lt;/em&gt; and can find a given paper pretty quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I work for a startup, and I have moved offices probably four times in thast couple of years.  Every time that happens, my stacks of paper wind up in filing cabinets and then I have no idea where anything is (for a while).&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-25T19:24:00.950" CommentCount="2" />
  <row Id="7319" PostTypeId="2" ParentId="7286" CreationDate="2010-09-25T19:31:03.047" Score="6" ViewCount="" Body="&lt;p&gt;Order or Chaos?  Hmm... well, I'm usually Chaotic Good, though I have been known to play Paladins from time to time, just for a change of pace... ;)&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-25T19:31:03.047" CommentCount="3" />
  <row Id="7320" PostTypeId="2" ParentId="7157" CreationDate="2010-09-25T19:35:30.413" Score="0" ViewCount="" Body="&lt;p&gt;I currently layout classes like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class types&#xA;constructors&#xA;destructor&#xA;accessors&#xA;methods&#xA;properties (where properties are present in the language)&#xA;member variables&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and then prefix the access level to each declaration (sort of, sometimes group by access). I used to do top level grouping by access, but at somepoint, I don't know when, it didn't work quite as well as the above. For example in C++/CLI (which I'm forced to use at the moment :-( ) you can do this, which messes up the grouping-by-access:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public: property int SomeProperty&#xA;{&#xA;private: void set (int value) { ... }&#xA;public: int get () { ... }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="914" LastEditorUserId="914" LastEditorDisplayName="" LastEditDate="2010-09-27T09:07:15.150" LastActivityDate="2010-09-27T09:07:15.150" CommentCount="3" />
  <row Id="7321" PostTypeId="2" ParentId="2240" CreationDate="2010-09-25T19:41:33.150" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.dofactory.com/Default.aspx&quot; rel=&quot;nofollow&quot;&gt;.NET Design Pattern and Architectural Guidance&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="656" LastActivityDate="2010-09-25T19:41:33.150" />
  <row Id="7322" PostTypeId="2" ParentId="7157" CreationDate="2010-09-25T19:41:58.907" Score="2" ViewCount="" Body="&lt;p&gt;Class-Related Enums or occasionally structs/pure-data classes (above actual class definition)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;---Class definition---&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Private members&lt;/p&gt;&#xA;&#xA;&lt;p&gt;CTORs/DTORs if the language has DTORs&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Public properties&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Utility methods (private or protected methods with small-scope)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Class functionality (May be divided into multiple regions depending on scope of class).&lt;/p&gt;&#xA;" OwnerUserId="1790" LastActivityDate="2010-09-25T19:41:58.907" />
  <row Id="7323" PostTypeId="2" ParentId="7286" CreationDate="2010-09-25T19:43:05.613" Score="0" ViewCount="" Body="&lt;p&gt;We just moved a couple of months ago. The whole house is more or less finished, except for my room which is a plain mess. But as a certified member of the ADD club, this is not a surprise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fun part is that I'm quite ordered while programming. But chaotic with other tasks.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-09-25T19:43:05.613" />
  <row Id="7324" PostTypeId="2" ParentId="7305" CreationDate="2010-09-25T19:53:18.177" Score="1" ViewCount="" Body="&lt;p&gt;In declarations I use &lt;code&gt;int * i;&lt;/code&gt;, you read it as &lt;code&gt;i is a pointer to an integer&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The pointer contributes to both the type and the variable so it should be in the middle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a good thing to avoid declaring multiple things on the same line: &lt;code&gt;int * i, j;&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-25T19:53:18.177" />
  <row Id="7325" PostTypeId="1" AcceptedAnswerId="7327" CreationDate="2010-09-25T19:53:45.530" Score="3" ViewCount="172" Body="&lt;p&gt;A typical curly brace programming lang has two types of AND and OR: logical and bitwise. &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt; and &lt;code&gt;||&lt;/code&gt; for logical ops and &lt;code&gt;&amp;amp;&lt;/code&gt; and &lt;code&gt;|&lt;/code&gt; for bitwise ops. Logical ops are more commonly used than bitwise ops, why logical ops are longer to type? Do you think they should be switched?&lt;/p&gt;&#xA;" OwnerUserId="1325" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:13:31.923" LastActivityDate="2010-11-16T15:13:31.923" Title="Logical Operators" Tags="&lt;syntax&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="7326" PostTypeId="2" ParentId="7325" CreationDate="2010-09-25T20:07:55.080" Score="1" ViewCount="" Body="&lt;p&gt;I think that's because processors don't have boolean values (thus, no notion of logical operations), so in early implementations bitwise operator may have been implemented before logical operators.&lt;/p&gt;&#xA;" OwnerUserId="87" LastEditorUserId="87" LastEditorDisplayName="" LastEditDate="2010-09-25T20:13:56.010" LastActivityDate="2010-09-25T20:13:56.010" />
  <row Id="7327" PostTypeId="2" ParentId="7325" CreationDate="2010-09-25T20:20:34.557" Score="4" ViewCount="" Body="&lt;p&gt;Probably a legacy thing. Bitwise operations may not be very common nowadays, but when coding on very low level you use them all the time. So when C was deviced in the 70's or whenever it was created, bitwise OPs were probably more common than logical OPs. And since C has it that way, I take it many other languages (such as Java, indirectly from C++) followed the same convention.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now that I've used the double notation (&lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt; and &lt;code&gt;||&lt;/code&gt;) for so long, I'd only be confused if they were switched. But for completely new programmers, it would probably be a nice thing: you save a whopping 50% per logical operation! Imagine the productivity! ^^&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; Provided these changed were done in a new language, of course, not in any existing languages.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-09-25T22:27:39.650" LastActivityDate="2010-09-25T22:27:39.650" CommentCount="1" />
  <row Id="7328" PostTypeId="2" ParentId="7325" CreationDate="2010-09-25T20:24:14.267" Score="0" ViewCount="" Body="&lt;p&gt;Bitwise op's were around before high-level languages, i.e. they are part of most CPU's basic instruction sets (as AND or OR instructions on registers or memory).  &amp;amp; and | just became shorthand for them in C and some other high-level languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a sequence point after the logical operators &amp;amp;&amp;amp; and || (i.e., the left operand is completely evaluated before the right operand).  They are not inherently part of the CPU's instruction set.  So I think it is appropriate they have the double symbol.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-25T20:24:14.267" />
  <row Id="7329" PostTypeId="1" CreationDate="2010-09-25T20:43:21.787" Score="7" ViewCount="614" Body="&lt;p&gt;Ah the humblest of the pieces of furniture... the noble desk!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers spend lots of times sitting at desks. What specific requirements do you have for a desk? What do you look for? What geek/programming specific stuff do you require to assist you in your endless hours of programming? Is there a specific desk/brand you would recommend for the programmer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Related: &lt;a href=&quot;http://programmers.stackexchange.com/questions/2233/what-things-are-essential-on-a-programmers-desk&quot;&gt;What things are essential on a programmer&amp;#39;s desk?&lt;/a&gt;  &lt;/p&gt;&#xA;" OwnerUserId="980" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-28T11:25:06.033" LastActivityDate="2011-02-09T19:31:14.193" ClosedDate="2011-05-05T04:50:27.120" Title="What type of desk is recommended for a programmer?" Tags="&lt;desk&gt;" AnswerCount="7" CommentCount="4" />
  <row Id="7330" PostTypeId="2" ParentId="7329" CreationDate="2010-09-25T20:52:27.703" Score="7" ViewCount="" Body="&lt;p&gt;Lots of space, no intrusions beneath except somewhere to put my feet on.&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-09-25T20:52:27.703" />
  <row Id="7331" PostTypeId="2" ParentId="7325" CreationDate="2010-09-25T20:54:53.580" Score="2" ViewCount="" Body="&lt;p&gt;Answering the last part of your question: Do you think they should be switched? I have to assume that because you didn't ask &quot;if I'm creating a new language...&quot; that means for existing languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this was switched in an existing language, I wouldn't even want to begin to think of the bugs that would occur... it would mean every line of every app that is ported needs to be looked at explicitly by a developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IF you are building a language want do get rid of &amp;amp;&amp;amp; and ||, then please use completely different symbols for bitwise and don't &lt;em&gt;switch&lt;/em&gt; them. Even still, I'd leave it alone or use difft symbols altogether for all of them. Some of us need to go between languages ;)&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-25T20:54:53.580" />
  <row Id="7333" PostTypeId="2" ParentId="7329" CreationDate="2010-09-25T21:09:13.120" Score="1" ViewCount="" Body="&lt;p&gt;I put a huge emphasis on height, I am fairly tall and most desks are just not built for tall people. &lt;a href=&quot;http://www.ergopro.com&quot; rel=&quot;nofollow&quot;&gt;These&lt;/a&gt; don't look the best, but better than being a hunchback for the rest of my life.&lt;/p&gt;&#xA;" OwnerUserId="3642" LastActivityDate="2010-09-25T21:09:13.120" CommentCount="1" />
  <row Id="7334" PostTypeId="2" ParentId="7217" CreationDate="2010-09-25T21:21:06.993" Score="1" ViewCount="" Body="&lt;p&gt;It depends (heavily) on the size of the project. On one hand, to get a decent result you need to &lt;em&gt;have&lt;/em&gt; a design. On the other hand, if the project is small enough that you can conceptualize the entire design (are most of it anyway) without writing it down, drawing diagrams, etc., then you're probably just as well off without that extra work of documenting everything you do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Almost everybody has heard enough horror stories to realize that trying to jump in without a clear idea of what you're doing and where things are going is a recipe for disaster. What's far more rarely pointed out is that the opposite can be equally disastrous. Just for example, most of us routinely write small tools in the process of programming. Writing a complete specification, tests, documentation often just isn't worthwhile. There's a threshold below which productization isn't worthwhile -- people often dislike reinventing the wheel, but in some cases it's easier to reinvent than avoid it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In cases like this, what's often &lt;em&gt;is&lt;/em&gt; worthwhile is productizing a library to make tasks like this easy. With that, the front-end code often becomes so trivial that writing (or modifying) code to do what you want becomes easier than sorting out how to get a complete program to do what you want. Consider, for exmaple, gnu indent with its 50+ different flags, many of which interact in various subtle ways, so about the only reasonable choices are 1) don't use it at all, or 2) decide to like what it gives you instead of trying to get what you originally wanted.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-09-25T21:21:06.993" />
  <row Id="7335" PostTypeId="2" ParentId="2240" CreationDate="2010-09-25T21:23:03.937" Score="2" ViewCount="" Body="&lt;h2&gt;Design patterns : elements of reusable object-oriented software&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/nnkld.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1116" LastActivityDate="2010-09-25T21:23:03.937" />
  <row Id="7336" PostTypeId="2" ParentId="7188" CreationDate="2010-09-25T21:26:43.307" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735621837&quot; rel=&quot;nofollow&quot;&gt;Programming Microsoft Visual Basic&lt;/a&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/Hj0Nr.jpg&quot; alt=&quot;alt text&quot;&gt; by Francesco Balena.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Balena made my transition from VB3-6 to VB.Net an eye-opening pleasure. Unfortunately the latest edition was published before the release of Framework 3.5 and beyond. I hope Francesco publishes an update someday.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I write this used copies are available for $1.50 on Amazon. Most of the book is still pertinent to the work you do today. It's well worth the price.&lt;/p&gt;&#xA;" OwnerUserId="3587" LastEditorUserId="3587" LastEditorDisplayName="" LastEditDate="2011-02-10T15:47:12.270" LastActivityDate="2011-02-10T15:47:12.270" CommunityOwnedDate="2011-02-10T17:23:39.897" CommentCount="2" />
  <row Id="7337" PostTypeId="1" AcceptedAnswerId="7379" CreationDate="2010-09-25T21:31:43.080" Score="13" ViewCount="637" Body="&lt;p&gt;What database system do you enjoy working with from a programming perspective (not as a database administrator)?&lt;/p&gt;&#xA;" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-09-25T22:19:33.500" LastActivityDate="2011-04-17T18:21:50.450" ClosedDate="2011-04-19T10:52:37.033" Title="As a programmer, what is your favorite database managment system and why?" Tags="&lt;favorite&gt;&lt;database-development&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="5" />
  <row Id="7338" PostTypeId="2" ParentId="7188" CreationDate="2010-09-25T21:46:26.287" Score="0" ViewCount="" Body="&lt;p&gt;Every time a new edition of &quot;Thinking In Java&quot; by Bruce Eckel comes out, I buy it and read it cover-to-cover.  (Starting with the first edition.)&lt;/p&gt;&#xA;" OwnerUserId="984" LastActivityDate="2010-09-25T21:46:26.287" CommunityOwnedDate="2011-02-10T17:23:39.897" CommentCount="1" />
  <row Id="7339" PostTypeId="2" ParentId="7337" CreationDate="2010-09-25T21:58:13.667" Score="8" ViewCount="" Body="&lt;p&gt;My ORM tells me I like most of them.  :-) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In reality I do not really have a preference myself, my database is usually dictated by some other subset of the project that I have no control over so I usually just live with what I have.  Which is why I end up with an ORM in place because the DB choice is beyond me and it makes it easy for me to continue developing and switch as they keep change their minds. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if I had a preference I would say MySQL because it is open source. &lt;/p&gt;&#xA;" OwnerUserId="136" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-10-23T13:10:53.073" LastActivityDate="2010-10-23T13:10:53.073" CommentCount="7" />
  <row Id="7340" PostTypeId="1" AcceptedAnswerId="7412" CreationDate="2010-09-25T22:25:30.693" Score="9" ViewCount="375" Body="&lt;p&gt;I want to read a good book about operating systems. More specifically, I want to read about how common problems - such as managing virtual memory, handling traps, doing context switches, managing processes and threads, etc. - are usually solved. To wit, I'm not looking for a book about how to program &lt;em&gt;towards&lt;/em&gt; an operating system; I'm looking for a book about how to &lt;em&gt;write&lt;/em&gt; an operating system. I hope this makes the question clear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please only write &lt;strong&gt;one book per answer&lt;/strong&gt;, for voting purposes.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-09-26T08:59:24.843" LastActivityDate="2010-09-28T23:04:19.337" Title="Which operating system book do you recommend?" Tags="&lt;books&gt;&lt;operating-systems&gt;" AnswerCount="4" CommentCount="7" FavoriteCount="4" />
  <row Id="7341" PostTypeId="2" ParentId="2240" CreationDate="2010-09-25T22:28:06.920" Score="0" ViewCount="" Body="&lt;p&gt;For some decent implementations, I used to take a look at the ones on &lt;a href=&quot;http://www.dofactory.com/Patterns/Patterns.aspx&quot; rel=&quot;nofollow&quot;&gt;dofactory&lt;/a&gt; (didn't buy the books though).&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-25T22:28:06.920" />
  <row Id="7342" PostTypeId="2" ParentId="7305" CreationDate="2010-09-25T22:32:02.223" Score="3" ViewCount="" Body="&lt;p&gt;I prefer &lt;code&gt;int* i&lt;/code&gt; (C++-style).&lt;br&gt;&#xA;I avoid declaring multiple variables in one statement due to the resulting visual ambiguity (&lt;code&gt;int* i, j&lt;/code&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See also &lt;a href=&quot;http://www2.research.att.com/~bs/bs_faq2.html#whitespace&quot; rel=&quot;nofollow&quot;&gt;Bjarne Stroustrup's C++ Style and Technique FAQ&lt;/a&gt; for rationales.&lt;/p&gt;&#xA;" OwnerUserId="3644" LastEditorUserId="3644" LastEditorDisplayName="" LastEditDate="2010-09-26T18:46:27.457" LastActivityDate="2010-09-26T18:46:27.457" />
  <row Id="7343" PostTypeId="2" ParentId="7329" CreationDate="2010-09-25T22:33:01.547" Score="1" ViewCount="" Body="&lt;p&gt;A large and clear desk surface, with monitors up off the surface. I have a dual monitor stand that clamps at the back of my desk at home and now cannot stand my setup at work where they are both sitting on the desk. I've asked my boss about getting one and it's come to naught. Soon I will just reach into my own pocket and spring for it. I was amazed how much of a difference it made.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-09-25T22:33:01.547" />
  <row Id="7344" PostTypeId="2" ParentId="6543" CreationDate="2010-09-25T22:33:23.840" Score="2" ViewCount="" Body="&lt;p&gt;An ORM basically amounts to &quot;&lt;strong&gt;Unstored Procedures&lt;/strong&gt;&quot;. There, I coined a term.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everything an ORM does, you could replicate with Views, Triggers and Stored Procedures. They help abstracting raw SQL away and can keep normalized databases consistent. But it only works well for simple cases. If there is too mach data to process they can become a performance drain. (ORMs in PHP often take the data script-side, because the SQL builder chains cannot abstract everything.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But as usual, it all depends on the application and task at hand.&lt;/p&gt;&#xA;" OwnerUserId="1245" LastActivityDate="2010-09-25T22:33:23.840" CommentCount="2" />
  <row Id="7345" PostTypeId="2" ParentId="6958" CreationDate="2010-09-25T22:38:26.217" Score="1" ViewCount="" Body="&lt;p&gt;Won't answer your question. But the quality of PHP frameworks is not influenced by the amount of time it takes to spit out code, but by the &lt;em&gt;time spent on researching beforehand&lt;/em&gt;. Oh and let me just sneak in a spamlink to my current &lt;a href=&quot;http://matrix.include-once.org/framework/&quot; rel=&quot;nofollow&quot;&gt;framework research project&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The development time for a new framework could also be significantly reduced by just reusing some of the existing code base. There is enough choice and variety. So IMO the mentioned $4.6 Mio are mostly caused by NIH syndrome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Friendly reminder: programmers.stackex is for subjective discussions and opinions.&lt;/p&gt;&#xA;" OwnerUserId="1245" LastActivityDate="2010-09-25T22:38:26.217" />
  <row Id="7346" PostTypeId="2" ParentId="7305" CreationDate="2010-09-25T22:41:15.197" Score="6" ViewCount="" Body="&lt;p&gt;I have preferred &lt;em&gt;int* i&lt;/em&gt; for years.  However, there is a strong argument for &lt;em&gt;int *i&lt;/em&gt; because when using the former style, you still must remember the multiple declaration rule:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int* a, *b; // not int* a, b;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Because you must remember this rule, you don't gain any simplicitly—but I wouldn't say it's more complex, either.  Avoiding multiple declarations on one line is just another way to say you remember this rule.  The difference between the two styles is moot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even as I use it, however, it feels a bit silly to pretend C declaration syntax works other than it does, by placing the asterisk next to the type rather than the variable to which it is syntactically bound.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't buy into that one &lt;a href=&quot;http://www2.research.att.com/~bs/bs_faq2.html#whitespace&quot; rel=&quot;nofollow&quot;&gt;emphasizes&lt;/a&gt; the pointer type (for &lt;em&gt;i&lt;/em&gt;) while the other emphasizes the int type (for &lt;em&gt;*i&lt;/em&gt;), but that may be that after 15 years of C and C++ use, it just &lt;em&gt;is&lt;/em&gt; when I look at it, without having to think about it⁠—⁠something most beginners that ask this question can't yet do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, even given my preference, I don't find it awkward to read/write code in the other style. Consistency, bla bla blah.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No need to even mention &lt;em&gt;int * i.&lt;/em&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-09-26T00:49:44.540" />
  <row Id="7347" PostTypeId="1" AcceptedAnswerId="7384" CreationDate="2010-09-25T23:03:13.247" Score="17" ViewCount="969" Body="&lt;p&gt;I'm talking about the way we write simple routines in order to improve performance without making your code harder to read... for instance, this is the typical for we learned:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for(int i = 0; i &amp;lt; collection.length(); i++ ){&#xA;   // stuff here&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But, I usually do this when a &lt;code&gt;foreach&lt;/code&gt; is not applicable:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for(int i = 0, j = collection.length(); i &amp;lt; j; i++ ){&#xA;   // stuff here&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I think this is a better approach since it will call the &lt;code&gt;length&lt;/code&gt; method once only... my girlfriend says it's cryptic though. Is there any other simple trick you use on your own developments?&lt;/p&gt;&#xA;" OwnerUserId="1773" LastActivityDate="2011-01-31T02:51:57.657" Title="What simple techniques do you use to improve performance?" Tags="&lt;code-quality&gt;&lt;performance&gt;" AnswerCount="15" CommentCount="16" FavoriteCount="4" />
  <row Id="7348" PostTypeId="2" ParentId="7340" CreationDate="2010-09-25T23:18:06.613" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131429388&quot; rel=&quot;nofollow&quot;&gt;Operating Systems Design and Implementation (3rd Edition)&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/pGIA5.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Revised to address the latest version of MINIX (MINIX 3), this streamlined, simplified new edition remains the only operating systems book to first explain relevant principles, then demonstrate applications using a Linux-like operating system as the detailed example.  Designed especially for high reliability and for use in embedded systems. Minux features a simpler presentation than previous versions, with less than 4,000 lines of code in the kernel. The book is has been fully updated, with significant changes to the sections on CPU scheduling, deadlocks, file system reliability and security.      The book’s reference section has been updated to reference modern literature.   Written by the creator of Minux, professional programmers will now have the most up-to-date tutorial and reference available today. &lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-09-26T11:36:58.130" LastActivityDate="2010-09-26T11:36:58.130" CommentCount="0" />
  <row Id="7349" PostTypeId="1" AcceptedAnswerId="7370" CreationDate="2010-09-25T23:44:39.360" Score="4" ViewCount="603" Body="&lt;p&gt;As a &lt;strong&gt;general purpose&lt;/strong&gt; programmer, what should you learn first and what should you learn later on?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some skills I wonder about...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;SQL  &lt;/li&gt;&#xA;&lt;li&gt;Regular Expressions  &lt;/li&gt;&#xA;&lt;li&gt;Multi-threading / Concurrency  &lt;/li&gt;&#xA;&lt;li&gt;Functional Programming  &lt;/li&gt;&#xA;&lt;li&gt;Graphics  &lt;/li&gt;&#xA;&lt;li&gt;The mastery of your mother programming language's syntax/semantics/featureset  &lt;/li&gt;&#xA;&lt;li&gt;The mastery of your base class framework libraries  &lt;/li&gt;&#xA;&lt;li&gt;Version Control System  &lt;/li&gt;&#xA;&lt;li&gt;Unit Testing  &lt;/li&gt;&#xA;&lt;li&gt;XML  &lt;/li&gt;&#xA;&lt;li&gt;Do you know other important ones? Please specify them...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;On which skills should I focus first?&lt;/p&gt;&#xA;" LastActivityDate="2010-10-15T19:55:27.273" Title="How would you rank these programming skills in order of learning them?" Tags="&lt;self-improvement&gt;&lt;skills&gt;&lt;general-purpose&gt;" AnswerCount="9" CommentCount="2" FavoriteCount="5" />
  <row Id="7350" PostTypeId="2" ParentId="7325" CreationDate="2010-09-25T23:45:25.287" Score="0" ViewCount="" Body="&lt;p&gt;All the discussion of which one came first is besides the point.  They are completely different operations.  Just because the language does not have a named Boolean does not mean the designers didn't get the concept.   '&amp;amp;' is for operating on bits, '&amp;amp;&amp;amp;' is for operating on true/false states ( where true is defined as non-zero).   There is a good reason that 1&amp;amp;2 != 1&amp;amp;&amp;amp;2. &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-25T23:45:25.287" />
  <row Id="7351" PostTypeId="2" ParentId="5384" CreationDate="2010-09-25T23:46:24.880" Score="0" ViewCount="" Body="&lt;p&gt;I read a recent tweet along the lines of &quot;Asking a computer scientist to fix your computer is like asking a botanist to mow your lawn.&quot; &lt;a href=&quot;https://twitter.com/#!/jondoda/status/24891585482&quot; rel=&quot;nofollow&quot;&gt;found it&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal strategy is just to be very, very busy. I can get to something as trivial, yet time consuming, as most computer issues are in 2-3 weeks.  Nine out of ten times, they'll find other help by the time I get around to it.&lt;/p&gt;&#xA;" OwnerUserId="3645" LastEditorUserId="3645" LastEditorDisplayName="" LastEditDate="2010-09-25T23:51:58.003" LastActivityDate="2010-09-25T23:51:58.003" CommunityOwnedDate="2010-09-25T23:46:24.880" />
  <row Id="7352" PostTypeId="2" ParentId="7349" CreationDate="2010-09-25T23:49:17.137" Score="12" ViewCount="" Body="&lt;p&gt;In my experience, programmers who are &quot;trying to be good programmers&quot; by learning things like they would learn basic math are never as good as those who program with a purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just learn what you need to do to accomplish an idea you have; learning any of the points you listed is useless if you're not going to use it.&lt;/p&gt;&#xA;" OwnerUserId="2099" LastActivityDate="2010-09-25T23:49:17.137" CommentCount="1" />
  <row Id="7353" PostTypeId="2" ParentId="7347" CreationDate="2010-09-25T23:52:00.453" Score="11" ViewCount="" Body="&lt;p&gt;From your question and the comment thread, it sounds like you &quot;think&quot; that this code change improves performance, but you don't really know whether it does or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a fan of &lt;a href=&quot;http://en.wikipedia.org/wiki/Kent_Beck&quot; rel=&quot;nofollow&quot;&gt;Kent Beck's&lt;/a&gt; philosophy:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Make it work, make it right, make it fast.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;My technique to improve code performance, is first get the code passing the unit tests and well factored and then (particularly for looping operations) write a unit test that checks performance and then refactor the code or think of a different algorithm if the one I've chosen isn't working as expected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, to test speed with .NET code I use &lt;a href=&quot;http://nunit.org/index.php?p=timeout&amp;amp;r=2.5&quot; rel=&quot;nofollow&quot;&gt;NUnit's Timeout attribute&lt;/a&gt; to write assertions that a call to a particular method will execute within a certain amount of time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using something like NUnit's timeout attribute with the code example you gave (and a large number of iterations for the loop), you could actually prove whether or not your &quot;improvement&quot; to the code really did help with the perfomance of that loop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One disclaimer: While this is effective at the &quot;micro&quot; level, it is certainly not the only way to test performance and doesn't take into account issues that might arise at the &quot;macro&quot; level - but it's a good start.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-25T23:52:00.453" CommentCount="6" />
  <row Id="7354" PostTypeId="2" ParentId="7349" CreationDate="2010-09-25T23:52:50.997" Score="0" ViewCount="" Body="&lt;p&gt;I don't mean this to be the trite answer it is, but I always wish I could find a programmer who could truly just know both Perl and SQL.  I figure with those two knowledge bases, one could nearly grasp anything.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;(Edit) Fair enough:  perl (IMHO) encapsulates nearly the whole of programming in terms of understanding streams, records, regexp, data transformation, (de)references, both low- and high-level data structures, arrays and associative arrays (hashes).  Understanding the language nearly conveys some level of mastery in programming.  I know a lot of .NET, PHP and even Java hacks, rare to see a hack that writes Perl.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Add SQL to it (really understanding it, not just simple selects) and I wager that someone who understands these minus fitting the &quot;perl profile&quot; (someone who may have at times their own ill-placed say at things) would be able to quickly and with respectable mastery solve any programming need in the majority of environments.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="2274" LastEditorDisplayName="" LastEditDate="2010-09-26T04:14:38.273" LastActivityDate="2010-09-26T04:14:38.273" CommentCount="1" />
  <row Id="7355" PostTypeId="2" ParentId="7349" CreationDate="2010-09-26T00:06:23.893" Score="0" ViewCount="" Body="&lt;p&gt;I don't think you need to &quot;mastery&quot; all those areas. Just learn some basic concepts and the other stuff [database systems, version controls] will come when you need it...&lt;/p&gt;&#xA;" OwnerUserId="3445" LastActivityDate="2010-09-26T00:06:23.893" />
  <row Id="7356" PostTypeId="2" ParentId="7286" CreationDate="2010-09-26T00:08:47.160" Score="0" ViewCount="" Body="&lt;p&gt;For me answer is 3. No Impact.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, I think that we tend to categorize everything because we are a kind of science professionals and is difficult to us treat people without making an analysis based on some kind of statistic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Certainly, one of my bad habits too, of course. :)&lt;/p&gt;&#xA;" OwnerUserId="3082" LastActivityDate="2010-09-26T00:08:47.160" />
  <row Id="7360" PostTypeId="2" ParentId="7347" CreationDate="2010-09-26T00:22:53.307" Score="1" ViewCount="" Body="&lt;p&gt;Wait six months, get your boss to buy everyone new computers.  Seriously.  Programmer time is way more expensive than hardware in the long run.  High performance computers allow coders to write code in a straightforward manner without being as concerned about speed.&lt;/p&gt;&#xA;" OwnerUserId="1111" LastActivityDate="2010-09-26T00:22:53.307" CommentCount="6" />
  <row Id="7361" PostTypeId="2" ParentId="7349" CreationDate="2010-09-26T00:32:30.403" Score="2" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Basic love of problem / puzzle solving. Without this you won't be much good.&lt;/li&gt;&#xA;&lt;li&gt;Ability to break a complex problem down into parts&lt;/li&gt;&#xA;&lt;li&gt;Flow charts, should be able to show you the flow for solving the problem.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;That's it. Master that and what language or system you use to solve the problem becomes simply a lesson in learning how it breaks the problem down. There are not &quot;right ways&quot; to master programming skills, there isn't some sort of &quot;golden rule&quot; that will teach you everything in the right order. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-26T00:32:30.403" />
  <row Id="7363" PostTypeId="2" ParentId="7337" CreationDate="2010-09-26T00:39:00.030" Score="6" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.mongodb.org/&quot; rel=&quot;nofollow&quot;&gt;MongoDB&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I love MongoDB's fast, simplistic setup and query syntax. I find it much more flexible to work with then any RDBMS. I even backed my blog &lt;a href=&quot;http://joshuakehn.com/blog/view/15/Finished-moving&quot; rel=&quot;nofollow&quot;&gt;with it for storage&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have to make schema changes? You don't have to touch a thing, just plug them in and go. Embedded objects, arrays, sorting, Map / Reduce functionality. All fast and easy to understand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know there is a place for RDBM systems, however for prototyping an application Mongo rocks, specifically because there is no setup, no issues with schema, and no conflicts when changing things on the fly. I'll often lay out a system over Mongo and then migrate to MySQL or Oracle when the schema is solid and the client has decided to stop sending improvement tickets. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-26T00:39:00.030" CommentCount="3" />
  <row Id="7364" PostTypeId="1" AcceptedAnswerId="7373" CreationDate="2010-09-26T00:43:10.880" Score="7" ViewCount="272" Body="&lt;p&gt;This question is something that's been bugging me for the past 3 months since I switched from being a freelancer to working at a Web Design firm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our sales people often ask us something similar to the following series of questions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How much does it cost to program a widget&lt;/li&gt;&#xA;&lt;li&gt;How many hours will it take to convert this website to this software.&lt;br&gt;&#xA;(Without knowing what the website currently runs)&lt;/li&gt;&#xA;&lt;li&gt;etc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;How can we give a quote without any information? (&lt;strong&gt;No, I can't ask for more info!&lt;/strong&gt;)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I have another question if a project goes over budget it's bad. Recently, I missed an entire menu when calculating the cost of transferring a website over to a new platform so the project went over budget. My boss was not happy at all, and it's my opinion that some things like this can't be avoided.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;   2.  What is the general practice for dealing with going over budget&lt;br&gt;&#xA;           and do projects like web development often go over budget?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you work at a web development/design/similar company:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;   3.  How does your billable hour system work?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, we have a time tracking application that we record how many hours we spend on which project and if they are billable or internal (AKA non-billable). If don't meet xx billable hours a week we can get in trouble/fired eventually. Work you do for the company or for clients that isn't billable isn't part of this system, and we often &lt;em&gt;have&lt;/em&gt; to do internal work, so I'm wondering if any alternative systems exist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; Ok I am a developer at this firm not a designer :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, I am paid salary, but here is how management looks at it. You have 35 hours a week that you must work. You could be doing work that they bill to clients in that 35 hours and you should. If they figure out a project will take 50 hours and I take 55 hours, that 5 hours could have been spent on another project that wasn't over budget so we just &quot;lost&quot; money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another example is that if I only have 1 project, that is due in two weeks and I spend a day  doing internal work, some how we lost money because I wasn't working. If I worked that day, I would finish a day early and still have no work. Either way, the work is contract so we will get paid the same amount regardless of which days I work!&lt;/p&gt;&#xA;" OwnerUserId="3382" LastEditorUserId="3382" LastEditorDisplayName="" LastEditDate="2010-09-26T11:45:23.783" LastActivityDate="2010-09-27T19:33:11.827" Title="Is it acceptable for projects to go over budget?" Tags="&lt;work&gt;&lt;budget&gt;" AnswerCount="5" CommentCount="3" />
  <row Id="7366" PostTypeId="2" ParentId="1271" CreationDate="2010-09-26T00:43:47.557" Score="2" ViewCount="" Body="&lt;p&gt;The general theme of the SO version of this question seems to be about right: &lt;a href=&quot;http://stackoverflow.com/questions/1430164/differences-between-emacs-and-vim&quot;&gt;http://stackoverflow.com/questions/1430164/differences-between-emacs-and-vim&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, emacs makes a better environment to live in, whereas vim is a more efficient editor. One way to think of it is &quot;developing in the small&quot; vs &quot;developing in the large&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, I'm biased. I love vim, and am proficient with older vi variants. One of the main reasons I originally chose vi over emacs is that vi really is everywhere by default in the unix world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that said, the organization of vim is terrible. Cntrl-] has an opposite, but it's not Cntrl-[ (for important, though historical, reasons). The vimscript syntax is nice, but if you want to do something outside it's capability... well... you just can't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I look at emacs more as an interpreter than an editor, and have run it in order to run various 3rd party apps built entirely in emacs' lisp variant. Expert emacs users that I've seen don't actually leave emacs for anything. Think of it as having a completely scriptable desktop platform, with a project/text editor to boot.&lt;/p&gt;&#xA;" OwnerUserId="3645" LastActivityDate="2010-09-26T00:43:47.557" CommunityOwnedDate="2011-04-12T23:03:04.020" />
  <row Id="7367" PostTypeId="2" ParentId="3851" CreationDate="2010-09-26T00:45:43.737" Score="2" ViewCount="" Body="&lt;p&gt;Being repreategly shown the &lt;em&gt;right&lt;/em&gt; way to do it, and repeatedly just doing it the easy way.&lt;/p&gt;&#xA;" OwnerUserId="2388" LastActivityDate="2010-09-26T00:45:43.737" CommunityOwnedDate="2010-12-13T18:51:52.480" />
  <row Id="7368" PostTypeId="2" ParentId="7364" CreationDate="2010-09-26T01:02:35.397" Score="1" ViewCount="" Body="&lt;p&gt;I think the best thing you can do is make an itemised list in your quote. Putting times next to each &quot;task&quot;. Breaking it down like this will not only help you think about what needs do be done, but will also tell your boss and/or client the scope of your quote. It would be great to get this scope/quote signed off before you begin work by your boss/account manager/client. This way, if you forget something, the blame can be spread, and it doesn't all fall on the developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think if you can't get any extra details about the project, you have to show the people evolved, exactly what you assumptions are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is also good because one you have done a few of these quotes, you can refer back to old ones when you are creating a new one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can attempt to take in Hofstadter's Law, &lt;a href=&quot;http://programmers.stackexchange.com/questions/39/whats-your-favourite-quote-about-programming/143#143&quot;&gt;but that will never work&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="447" LastEditorUserId="447" LastEditorDisplayName="" LastEditDate="2010-09-27T19:33:11.827" LastActivityDate="2010-09-27T19:33:11.827" CommentCount="2" />
  <row Id="7370" PostTypeId="2" ParentId="7349" CreationDate="2010-09-26T01:20:35.093" Score="3" ViewCount="" Body="&lt;p&gt;SQL -- learn immediately.  Don't worry about DBA stuff, but master queries, table and view creation, some optimization, joins, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regular Expressions -- Handy but almost never critical.  Any time I need a RegEx I just google around for it and test until I find a good one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Multi-threading / Concurrency -- Useful to some but difficult to learn.  Learn them when you're working on things that require them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Functional Programming -- Not generally useful on a professional level.  Fun to know, and many FP concepts are making their way into mainstream languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Graphics -- Awesome if you have fun with them or work in an industry that uses them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The mastery of your mother programming language's syntax/semantics/featureset -- #1 thing&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The mastery of your base class framework libraries -- #2 thing&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Version Control System -- #3 thing (know at least one proficiently)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unit Testing -- High useful to know and be able to talk about.  Most shops will talk about unit testing, only some will actually do it, but very good to know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;XML -- Can learn as you go generally.  Not worth independent study.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My additions:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SOAP/JSON:  If you do any web or service development, these are huge.  Even my desktop development is starting to rely heavily on these two for integration.  Great to know for many vocations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TCP/IP:  You should know how a socket works, how to open one, the difference between TCP and UDP.  You should be able to send an E-mail address via Telnet or using a simple socket-based environment.  Understanding the protocol that underlies so many others is very helpful sometimes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your IDE:  You will likely spend a ridiculous number of hours in your IDE, and every single one of them has features which can save you lots and lots of time and aggravation.  It's worth getting a book just to learn the hidden tricks of your IDE du jour.&lt;/p&gt;&#xA;" OwnerUserId="1790" LastActivityDate="2010-09-26T01:20:35.093" CommentCount="5" />
  <row Id="7373" PostTypeId="2" ParentId="7364" CreationDate="2010-09-26T02:37:59.037" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Our sales people often ask us&#xA;  something similar to the following&#xA;  series of questions:&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;How much does it cost to program a&#xA;  widget How many hours will it take to&#xA;  convert this website to this software.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Why are your sales people asking the designers? Sales should have a prestocked list of quotes and system for estimation that has little, if any, correlation to your actual costs. I'm assuming you are salaried. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How can we give a quote without any information? (No, I can't ask for more info!)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Short answer? You can't, don't try.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The long answer is still short. If I call you up and say I have a website were people can login, post messages to other users, upload pictures, and make friends, what would it cost to build, what would you say? I could have described the worst social network imaginable, or Facebook. You don't have enough information so you can't give an accurate assessment. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I have another question if a project&#xA;  goes over budget it's bad. Recently, I&#xA;  missed an entire menu when calculating&#xA;  the cost of transferring a website&#xA;  over to a new platform so the project&#xA;  went over budget. My boss was not&#xA;  happy at all, and it's my opinion that&#xA;  some things like this can't be&#xA;  avoided.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Define &quot;over budget.&quot; Again, I'm assuming salary not hourly. If you went over your &lt;em&gt;time&lt;/em&gt; budget, pull some long nights and don't make the same mistake (of missing something) again.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;For me, we have a time tracking&#xA;  application that we record how many&#xA;  hours we spend on which project and if&#xA;  they are billable or internal (AKA&#xA;  non-billable). If don't meet xx&#xA;  billable hours a week we can get in&#xA;  trouble/fired eventually. Work you do&#xA;  for the company or for clients that&#xA;  isn't billable isn't part of this&#xA;  system, and we often have to do&#xA;  internal work, so I'm wondering if any&#xA;  alternative systems exist.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'm not sure how I would set that up if I had to create a record of &quot;billable&quot; hours. You would probably wind up with a hundred hours +/- a few ever week. I don't stop thinking about code, should that count? &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-26T02:37:59.037" CommentCount="2" />
  <row Id="7374" PostTypeId="2" ParentId="7347" CreationDate="2010-09-26T02:55:39.623" Score="1" ViewCount="" Body="&lt;p&gt;Try not to optimize too much ahead of time, then when you do optimize worry a bit less about readability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There little I hate more than unnecessary complexity, but when you hit a complex situation a complex solution is often required.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you write the code the most obvious way then make a comment explaining why it has been altered when you make the complex change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifically to your meaning though, I find that a lot of times doing the Boolean opposite of the default approach sometimes helps:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for(int i = 0, j = collection.length(); i &amp;lt; j; i++ ){&#xA;// stuff here&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;can become&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for(int i = collection.length(); i &amp;gt; 0; i-=1 ){&#xA;// stuff here&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In many languages as long as you make appropriate adjustments to the &quot;stuff&quot; part and it is still readable.  It just doesn't approach the problem the way most people would think of doing it first because it counts backwards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;in c#for example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;        string[] collection = {&quot;a&quot;,&quot;b&quot;};&#xA;&#xA;        string result = &quot;&quot;;&#xA;&#xA;        for (int i = 0, j = collection.Count() - 1; i &amp;lt; j; i++)&#xA;        {&#xA;            result += collection[i] + &quot;~&quot;;&#xA;        }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;could also be written as:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;        for (int i = collection.Count() - 1; i &amp;gt; 0; i -= 1)&#xA;        {&#xA;            result = collection[i] + &quot;~&quot; + result;&#xA;        }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(and yes, you should o that with a join or a stringbuilder, but I am trying to make a simple example)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many other tricks one can use that are not difficult to follow but many of them do not apply across all languages like using mid on the left side of an assignment in old vb to avoid the string reassignment penalty or reading text files in binary mode in .net to get past the buffering penalty when the file is too big for a readtoend.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only other really generic case I can think of that would apply everywhere would be to apply some Boolean algebra to complex conditionals to try to transform the equation to something that stands a better chance of taking advantage of a short-circuiting conditional or turn a complex set of nested if-then or case statements into an equation entirely.  Neither of these work in all cases, but they can be significant time savers.&lt;/p&gt;&#xA;" OwnerUserId="841" LastEditorUserId="841" LastEditorDisplayName="" LastEditDate="2010-09-26T16:07:24.287" LastActivityDate="2010-09-26T16:07:24.287" CommentCount="4" />
  <row Id="7375" PostTypeId="1" CreationDate="2010-09-26T03:30:40.717" Score="2" ViewCount="124" Body="&lt;p&gt;I am a graduate student in CIS, had BS in EE. I will be graduating next spring. This means I still have one more semester before I graduate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really don't want to start looking for jobs after I graduate. The problem is that I will be doing some heavy courses along with a project next semester. I really want to snag something this semester, but do you think employers would recruit candidates so early?  &lt;/p&gt;&#xA;" OwnerUserId="2158" LastEditorUserId="2158" LastEditorDisplayName="" LastEditDate="2010-09-26T03:39:24.120" LastActivityDate="2010-09-26T03:40:37.497" Title="When is it the right time to start applying for jobs?" Tags="&lt;jobs&gt;" AnswerCount="2" />
  <row Id="7376" PostTypeId="2" ParentId="7375" CreationDate="2010-09-26T03:36:56.137" Score="1" ViewCount="" Body="&lt;p&gt;It really depends on the company. My company recruited me 4 months before I started work. Some companies though, have a fixed number of vacancies and either need someone now (or to start during the next month or so), or don't need someone at all.&lt;/p&gt;&#xA;" OwnerUserId="2616" LastActivityDate="2010-09-26T03:36:56.137" />
  <row Id="7377" PostTypeId="2" ParentId="7375" CreationDate="2010-09-26T03:40:37.497" Score="2" ViewCount="" Body="&lt;p&gt;Here is my experience. I started looking for an apprentice job, some two or three months before graduation. Went on an interview, where we talked and decided it would maybe be a good compromise if I graduated on something they (the company) needed (related to their work), and the professor accepted that as part of my mandatory project and thesis. He didn't mind, quite the opposite ... (read: he didn't have to deal with my thesis problems :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Why not try that? No harm in asking, right?&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-26T03:40:37.497" />
  <row Id="7378" PostTypeId="2" ParentId="7347" CreationDate="2010-09-26T03:40:42.677" Score="6" ViewCount="" Body="&lt;p&gt;This kind of optimization is usually not recommended. That piece of optimization can easily be done by compiler, you are working with a higher level programming language instead of assembly, so think in the same level.&lt;/p&gt;&#xA;" OwnerUserId="2347" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-01-30T21:52:19.803" LastActivityDate="2011-01-30T21:52:19.803" CommentCount="7" />
  <row Id="7379" PostTypeId="2" ParentId="7337" CreationDate="2010-09-26T04:03:06.363" Score="12" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.sqlite.org/&quot; rel=&quot;nofollow&quot;&gt;SQLite&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I've grown to really like SQLite.  Its become my go-to standard for storage in my desktop applications.  Its easy to implement, fast, stable, and supports the SQL features I need it to support.  Whats not to love? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For servers, probably MySQL.  Mainly because its not let me down in the past.  I'd like to try Mongo at some point, but I dont have any projects planned right now for which I think it'd be appropriate.&lt;/p&gt;&#xA;" OwnerUserId="897" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-04-17T18:21:50.450" LastActivityDate="2011-04-17T18:21:50.450" CommentCount="0" />
  <row Id="7380" PostTypeId="1" AcceptedAnswerId="7393" CreationDate="2010-09-26T04:06:10.487" Score="4" ViewCount="164" Body="&lt;p&gt;Do you think we'll ever see an IL (or other bytecode) processing unit? It sounds possible, and would have a major benefit because we wouldn't need the JITter. This isn't the same as compiling .net directly to machine code, since the bytecode here is designed to be programmed and disassembled easily, unlike the bytecode used in x86 processors which is designed to work faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's stopping Intel (for example) from partnering with Microsoft and making such a .net-optimised processor?&lt;/p&gt;&#xA;" OwnerUserId="2616" LastActivityDate="2010-09-28T06:13:26.227" Title=".Net processing unit" Tags="&lt;.net&gt;&lt;future&gt;&lt;cpu&gt;" AnswerCount="3" CommentCount="0" FavoriteCount="1" />
  <row Id="7381" PostTypeId="2" ParentId="3482" CreationDate="2010-09-26T04:07:37.857" Score="0" ViewCount="" Body="&lt;p&gt;These days, I ship with assert() turned on.  It doesn't cost much and it can make life a lot easier in hostile situations (i.e., your customer's environments are often more hostile than your dev or QA environments).&lt;/p&gt;&#xA;" OwnerUserId="3203" LastActivityDate="2010-09-26T04:07:37.857" />
  <row Id="7383" PostTypeId="1" AcceptedAnswerId="7408" CreationDate="2010-09-26T04:18:41.887" Score="6" ViewCount="252" Body="&lt;p&gt;Like all the undergraduate students, who are studying in a college. They have to learn many things in one semester. For example right now I am having Java, DBMS, Operating-Systems and Computer architecture in my syllabus. I am concentrating more on Java but DBMS and OS are also important subjects. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So how can one master all the subjects? Should one go for only one subject and leave others to study only in exam time or study all subjects with same interest and give all subjects the same time. If one give same time to all subjects then he/she would not be able to be master in all but if he concentrates on only one subject then he/she can be a master in that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you guys suggest?&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-27T01:40:11.840" Title="Studying more than one subject" Tags="&lt;learning&gt;" AnswerCount="6" />
  <row Id="7384" PostTypeId="2" ParentId="7347" CreationDate="2010-09-26T04:36:13.760" Score="24" ViewCount="" Body="&lt;p&gt;&lt;em&gt;insert premature-discussion-is-the-root-of-all-evil lecture&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, here are some habits I've gotten into to avoid unnecessary efficiency, and in some cases, make my code simpler and more correct as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't a discussion of general principles, but of some things to be aware of to avoid introducing unnecessary inefficiencies into code.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Know your &lt;a href=&quot;http://en.wikipedia.org/wiki/Big_O_notation#Orders_of_common_functions&quot; rel=&quot;nofollow&quot;&gt;big-O&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;This should probably be merged into the lengthy discussion above.  It's pretty much common sense that a loop inside of a loop, where the inner loop repeats a calculation, is gonna be slower.  For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for (i = 0; i &amp;lt; strlen(str); i++) {&#xA;    ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This will take a horrendous amount of time if the string is really long, because the length is being recalculated on every iteration of the loop.  Note that &lt;a href=&quot;http://gcc.gnu.org/&quot; rel=&quot;nofollow&quot;&gt;GCC&lt;/a&gt; actually optimizes this case because &lt;code&gt;strlen()&lt;/code&gt; is marked as a pure function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When sorting a million 32-bit integers, &lt;a href=&quot;http://www.youtube.com/watch?v=k4RRi_ntQc8&quot; rel=&quot;nofollow&quot;&gt;bubble sort would be the wrong way to go&lt;/a&gt;.  In general, sorting can be done in O(n * log n) time (or better, in the case of radix sort), so unless you know your data is going to be small, look for an algorithm that's at least O(n * log n).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Likewise, when dealing with databases, be aware of indexes.  If you &lt;code&gt;SELECT * FROM people WHERE age = 20&lt;/code&gt;, and you don't have an index on people(age), it'll require an O(n) sequential scan rather than a much faster O(log n) index scan.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Integer arithmetic hierarchy&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;When programming in C, bear in mind that some arithmetic operations are more expensive than others.  For integers, the hierarchy goes something like this (least expensive first):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;+ - ~ &amp;amp; | ^&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;&amp;lt; &amp;gt;&amp;gt;&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;*&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;/&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Granted, the compiler will usually optimize things like &lt;code&gt;n / 2&lt;/code&gt; to &lt;code&gt;n &amp;gt;&amp;gt; 1&lt;/code&gt; automatically if you're targeting a mainstream computer, but if you're targeting an embedded device, you might not get that luxury.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, &lt;code&gt;% 2&lt;/code&gt; and &lt;code&gt;&amp;amp; 1&lt;/code&gt; have different semantics.  Division and modulus usually rounds toward zero, but it's implementation defined.  Good ol' &lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;amp;&lt;/code&gt; always rounds toward negative infinity, which (in my opinion) makes a lot more sense.  For instance, on my computer:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;printf(&quot;%d\n&quot;, -1 % 2); // -1 (maybe)&#xA;printf(&quot;%d\n&quot;, -1 &amp;amp; 1); // 1&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Hence, use what makes sense.  Don't think you're being a good boy by using &lt;code&gt;% 2&lt;/code&gt; when you were originally going to write &lt;code&gt;&amp;amp; 1&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Expensive floating point operations&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Avoid heavy floating point operations like &lt;code&gt;pow()&lt;/code&gt; and &lt;code&gt;log()&lt;/code&gt; in code that doesn't really need them, especially when dealing with integers.  Take, for example, reading a number:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int parseInt(const char *str)&#xA;{&#xA;    const char *p;&#xA;    int         digits;&#xA;    int         number;&#xA;    int         position;&#xA;&#xA;    // Count the number of digits&#xA;    for (p = str; isdigit(*p); p++)&#xA;        {}&#xA;    digits = p - str;&#xA;&#xA;    // Sum the digits, multiplying them by their respective power of 10.&#xA;    number = 0;&#xA;    position = digits - 1;&#xA;    for (p = str; isdigit(*p); p++, position--)&#xA;        number += (*p - '0') * pow(10, position);&#xA;&#xA;    return number;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Not only is this use of &lt;code&gt;pow()&lt;/code&gt; (and the &lt;code&gt;int&lt;/code&gt;&amp;lt;-&gt;&lt;code&gt;double&lt;/code&gt; conversions needed to use it) rather expensive, but it creates an opportunity for precision loss (incidentally, the code above doesn't have precision issues).  That's why I wince when I see this type of function used in a non-mathematical context.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, notice how the &quot;clever&quot; algorithm below, which multiplies by 10 on each iteration, is actually more concise than the code above:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int parseInt(const char *str)&#xA;{&#xA;    const char *p;&#xA;    int         number;&#xA;&#xA;    number = 0;&#xA;    for (p = str; isdigit(*p); p++) {&#xA;        number *= 10;&#xA;        number += *p - '0';&#xA;    }&#xA;&#xA;    return number;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3650" LastEditorUserId="3650" LastEditorDisplayName="" LastEditDate="2010-11-04T16:18:44.110" LastActivityDate="2010-11-04T16:18:44.110" CommentCount="5" />
  <row Id="7385" PostTypeId="2" ParentId="7337" CreationDate="2010-09-26T04:36:20.847" Score="2" ViewCount="" Body="&lt;p&gt;Not sure what you mean by database manager -- if you mean RDBMS, I'd say MSSQL -- too many of the T-SQL additions are useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you mean things that actually &quot;manage&quot; the database, I'd have to say LINQ.&lt;/p&gt;&#xA;" OwnerUserId="886" LastActivityDate="2010-09-26T04:36:20.847" CommentCount="2" />
  <row Id="7386" PostTypeId="2" ParentId="7383" CreationDate="2010-09-26T04:43:35.850" Score="3" ViewCount="" Body="&lt;p&gt;The thing to understand is that graduating college with a Comp Sci (or any) degree does not mean you've mastered the subjects.  It means you are now in a good position to actually &lt;em&gt;start&lt;/em&gt; learning them.  So if you are getting out of college and dont think you really know a whole lot, well, you dont.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider a 3 credit class.  Thats 3 hours /week for what, 15 weeks.  Take out some time for tests and snow days and whatever, and you get 40 hours.  Thats not even a full work week for a lot of people.  You could spend all your optional credits on a specific technology... so what?  Thats maybe the equivalent of a few months work experience, if you're lucky.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my advice, &lt;em&gt;dont sweat it&lt;/em&gt;.  Learn what the technologies are, but dont over-concern yourself with the details.  By the time you graduate, a lot of that will have changed anyways (look how fast NoSQL db's are catching on).&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-26T04:43:35.850" CommentCount="2" />
  <row Id="7387" PostTypeId="2" ParentId="7349" CreationDate="2010-09-26T04:48:23.987" Score="1" ViewCount="" Body="&lt;p&gt;I guess you've already got your answer by now. I would like to add some more things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First read some non programming books to develop your interest in programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some good books are&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Code complete&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The pragmatic programmer&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;After that think on which field you wanna go. I mean which kinda work you would like to do? Whether you want to be a game developer, a system programmer, a web developer etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that learn some basics of mathematics, learn about data structures and algorithms. &#xA;Then select a language on which you want to implement those algorithms. You can select C/C++/Java etc according on your interest. Learn the syntax of the language and learn how to implement those algorithms that you've designed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some knowledge about Functional programming is also a must have skill. Here's a great article on FP. &lt;a href=&quot;http://bit.ly/c6TRfv&quot; rel=&quot;nofollow&quot;&gt;Click here&lt;/a&gt; to see.&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-26T04:48:23.987" />
  <row Id="7388" PostTypeId="2" ParentId="7286" CreationDate="2010-09-26T05:00:58.883" Score="2" ViewCount="" Body="&lt;p&gt;Others often tell me that my office looks incredibly cluttered and unorganized.  But it isnt. Their limited minds just cannot grasp the elegant expression of mathematics and algorithms that coalesce into a beautiful display of esthetic order and symmetry in my office - one that is far beyond their comprehension.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I find that if I keep all the surfaces covered, I never have to dust.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-26T05:00:58.883" />
  <row Id="7389" PostTypeId="2" ParentId="1719" CreationDate="2010-09-26T05:03:30.320" Score="6" ViewCount="" Body="&lt;p&gt;C - as the essential, &quot;underlies everything&quot;, systems programming language&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lisp (Scheme)- the strange but incredibly powerful ur-language that great hackers think defines cool&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Smalltalk - because this is what OO was meant to be &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Erlang (or other Actor language) to understand Actors&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haskell - to understand Monads&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Javascript - because its everywhere and essential for scripting the browser&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of Python / Ruby / Perl (but it really doesn't matter which) - so you know what a popular, modern, high-level scripting language with good library support feels like&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SQL - so you can talk to relational databases &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prolog - because you still need to blow your mind&lt;/p&gt;&#xA;" OwnerUserId="3111" LastActivityDate="2010-09-26T05:03:30.320" CommunityOwnedDate="2010-09-26T05:03:30.320" CommentCount="3" />
  <row Id="7390" PostTypeId="2" ParentId="7364" CreationDate="2010-09-26T05:10:58.183" Score="2" ViewCount="" Body="&lt;p&gt;Do what Scotty does: come up with a reasonable estimate, and double it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your doubled estimate will a) usually be more realistic, because humans are crappy estimators, b) give you a little bit of slack, so that you have room for sudden features and other emergencies, and c) allow you to occasionally come in under time and under budget.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never mention the fact that you are doubling your estimates to your boss, or to sales. Businesspeople are delicate creatures, and often can't handle the hard truths we engineers have to deal with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck.&lt;/p&gt;&#xA;" OwnerUserId="2162" LastActivityDate="2010-09-26T05:10:58.183" CommentCount="5" />
  <row Id="7391" PostTypeId="2" ParentId="966" CreationDate="2010-09-26T05:12:34.563" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1400064287&quot; rel=&quot;nofollow&quot;&gt;Made to Stick&lt;/a&gt; - Absolutely essential for building skills on getting your ideas across to others (especially non-programmers) and looking at things from others' (read customers') perspectives.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-09-26T05:12:34.563" CommunityOwnedDate="2011-01-06T15:42:27.030" />
  <row Id="7392" PostTypeId="2" ParentId="7383" CreationDate="2010-09-26T05:23:10.177" Score="7" ViewCount="" Body="&lt;p&gt;I would suggest that you concentrate more on the core Comp Sci subjects - these will build your base as a programmer. Btw, Java is not a &quot;subject&quot; - certainly not in the sense that DBMS, OS and Computer Arch are. The latter are far more important than learning any language. Learn Java (or any other language), by all means - but learn it to implement your ideas - whereas you need to learn the other core subjects to build your programming foundation.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastEditorUserId="1539" LastEditorDisplayName="" LastEditDate="2010-09-26T05:40:09.857" LastActivityDate="2010-09-26T05:40:09.857" CommentCount="1" />
  <row Id="7393" PostTypeId="2" ParentId="7380" CreationDate="2010-09-26T05:35:20.617" Score="4" ViewCount="" Body="&lt;p&gt;Theoretically possible, but I doubt it:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cost of developing the CPU would far outweigh the benefits&lt;/li&gt;&#xA;&lt;li&gt;The JITer already does a &quot;good enough&quot; job&lt;/li&gt;&#xA;&lt;li&gt;IL is subject to change with new releases of .Net, so benefits would be short-lived&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Sorry - nice idea, but unlikely to happen.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastEditorUserId="1928" LastEditorDisplayName="" LastEditDate="2010-09-28T06:13:26.227" LastActivityDate="2010-09-28T06:13:26.227" CommentCount="2" />
  <row Id="7394" PostTypeId="2" ParentId="2804" CreationDate="2010-09-26T05:43:15.133" Score="20" ViewCount="" Body="&lt;p&gt;Atleast two Ctrl+S's to make sure it's saved.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastEditorUserId="14905" LastEditorDisplayName="" LastEditDate="2011-03-15T10:31:56.233" LastActivityDate="2011-03-15T10:31:56.233" CommunityOwnedDate="2011-03-15T08:09:28.653" CommentCount="8" />
  <row Id="7395" PostTypeId="1" AcceptedAnswerId="7396" CreationDate="2010-09-26T05:50:33.317" Score="3" ViewCount="393" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/5372/how-do-programmers-stay-healthy&quot;&gt;How do programmers stay healthy?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I have bad posture, kinda weak, not fat but a bit of a gut and some chin sag. The posture comes from sitting in front of a computer all day, and my back hurts all the time because my core is not strong because of sitting and using the chair to support me instead of my own muscles. Wondering who else has this issue and if anyone out there is a programmer and also a demigod physically, if so what is your routine?&lt;/p&gt;&#xA;" OwnerUserId="785" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-27T20:04:39.577" LastActivityDate="2010-09-27T20:04:39.577" ClosedDate="2010-09-26T15:03:40.000" Title="Are there any athletic (good posture) fit programmers out there, and how can I achieve that sitting down for 8 hours a day?" Tags="&lt;self-improvement&gt;&lt;health&gt;" AnswerCount="7" CommentCount="2" />
  <row Id="7396" PostTypeId="2" ParentId="7395" CreationDate="2010-09-26T05:58:18.200" Score="1" ViewCount="" Body="&lt;p&gt;I don't know about being a &quot;demigod&quot; but I believe I fit the description in the title.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To have a good posture having a good musculature helps, but I think it's mostly habit. To have a good musculature just go to the gym, eat healthy, and learn how to train efficiently on websites like &lt;a href=&quot;http://forum.bodybuilding.com/&quot; rel=&quot;nofollow&quot;&gt;bodybuilding.com&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't really think that whether you're standing 8 hours a day or sitting makes that much of a difference; an ice cream vendor who stands all day won't be much better off if he or she doesn't work out or do physical activity.&lt;/p&gt;&#xA;" OwnerUserId="112" LastActivityDate="2010-09-26T05:58:18.200" CommentCount="1" />
  <row Id="7397" PostTypeId="2" ParentId="1719" CreationDate="2010-09-26T06:03:43.650" Score="0" ViewCount="" Body="&lt;p&gt;This is sort of a me-specific answer, as my programming background is a little unusual: I haven't learned Java or C# yet.  The languages I've learned already are, in order:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/HyperCard&quot; rel=&quot;nofollow&quot;&gt;HyperCard&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Various BASIC-like languages&lt;/li&gt;&#xA;&lt;li&gt;C&lt;/li&gt;&#xA;&lt;li&gt;68000 assembly&lt;/li&gt;&#xA;&lt;li&gt;C++&lt;/li&gt;&#xA;&lt;li&gt;ActionScript&lt;/li&gt;&#xA;&lt;li&gt;Bash&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.ecere.com/&quot; rel=&quot;nofollow&quot;&gt;eC&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;PHP/HTML/JavaScript/PostgreSQL&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Haskell&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The last one is bolded because a.) I picked it up only 5 months ago, and b.) It's vastly different than the procedural languages I've been using.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way I started learning Haskell was by using it in &lt;a href=&quot;http://code.google.com/codejam&quot; rel=&quot;nofollow&quot;&gt;Google Code Jam&lt;/a&gt;.  This experience has convinced me that solving algorithmic challenges is a fantastic way to learn a new language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The next language on my list will probably be &lt;strong&gt;C#&lt;/strong&gt; .  The biggest program I have written in a &lt;code&gt;public&amp;nbsp;static&amp;nbsp;void&lt;/code&gt; language was an Easter calculator in Java, which involved little more than importing Joda-Time and doing C-style arithmetic.  The reason I'm choosing C# over Java is because the C# language seems to be growing more rapidly, and it already has plenty of cool features I can learn about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that (or maybe before; I'm not sure), I plan to learn a major scripting language, probably Python.&lt;/p&gt;&#xA;" OwnerUserId="3650" LastActivityDate="2010-09-26T06:03:43.650" CommunityOwnedDate="2010-09-26T06:03:43.650" />
  <row Id="7398" PostTypeId="2" ParentId="7395" CreationDate="2010-09-26T06:06:48.417" Score="11" ViewCount="" Body="&lt;h2&gt;Get up each morning and go running.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Easy.  Simple.  Don't complain, just get out of bed and &lt;strong&gt;get out the door&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-26T06:06:48.417" CommentCount="10" />
  <row Id="7399" PostTypeId="2" ParentId="7395" CreationDate="2010-09-26T06:15:48.117" Score="0" ViewCount="" Body="&lt;p&gt;Deadlifts.  Heavy and with proper form.  There is nothing greater.&lt;/p&gt;&#xA;" OwnerUserId="2587" LastActivityDate="2010-09-26T06:15:48.117" CommentCount="1" />
  <row Id="7400" PostTypeId="2" ParentId="7395" CreationDate="2010-09-26T06:21:14.853" Score="1" ViewCount="" Body="&lt;p&gt;Yes, there are Ironman class triathletes who pay the bills programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How?  Same way bankers, stock brokers, salesmen, and everyone else at that class does:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Regular exercise that is part of a program (not just random play).&lt;/li&gt;&#xA;&lt;li&gt;Regular unstructured exercise.&lt;/li&gt;&#xA;&lt;li&gt;Correct and controlled eating.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Note: #1 can be as little as 18 hours a week and #2 just 1-3 hours (in theory you can skip #2 and often #2 is an &quot;off season&quot; thing).  You can do it by choosing to make it a priority (often over wasteful things like TV anyway).&lt;/p&gt;&#xA;" OwnerUserId="1209" LastActivityDate="2010-09-26T06:21:14.853" CommentCount="9" />
  <row Id="7401" PostTypeId="2" ParentId="7305" CreationDate="2010-09-26T06:42:03.773" Score="0" ViewCount="" Body="&lt;p&gt;I use &lt;code&gt;int *i&lt;/code&gt; because it's easier to see that it is a pointer, though I don't think it is really matter.&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-09-26T06:42:03.773" />
  <row Id="7403" PostTypeId="2" ParentId="7364" CreationDate="2010-09-26T06:48:52.730" Score="0" ViewCount="" Body="&lt;p&gt;You must find your way to more information. I've never given even the estimation of any project if the requirement has not been stated clearly. If they persist you can't have that, you better just quit. &lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-09-26T06:48:52.730" />
  <row Id="7404" PostTypeId="2" ParentId="7395" CreationDate="2010-09-26T06:58:02.670" Score="0" ViewCount="" Body="&lt;p&gt;Maybe your goal of trying to achieve being fit and healthy by sitting down for 8 hours per day is &lt;em&gt;unrealistic&lt;/em&gt;.  There have been a lot of blogs and articles posted that state that even with a healthy lifestyle, that simply sitting for 8 hours per day negates that workout.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As human beings, we were not meant to sit in front of a monitor and keyboards for hours on end every day.  Sure there may be some programmers that are healthy and are able to sit for hours on end and have good posture and health.  But I would venture to say that most programmers are a tad over, to very overweight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's your health and posture that's of concern to you, instead of trying to achieve fitness and good posture from doing something that's already unhealthy, maybe you should &lt;em&gt;just do less of the things that is unhealthy&lt;/em&gt;-- sitting for 8 hours per day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't sit.  Try standing.  Take frequent breaks.  Etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some sources:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://opinionator.blogs.nytimes.com/2010/02/23/stand-up-while-you-read-this/&quot; rel=&quot;nofollow&quot;&gt;Stand Up While You Read This!&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Note: I'll add more sources once I can find them in my bookmarks.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-26T06:58:02.670" />
  <row Id="7405" PostTypeId="2" ParentId="7329" CreationDate="2010-09-26T07:06:28.503" Score="4" ViewCount="" Body="&lt;p&gt;I like Jeff Atwood's blog post on this on Coding Horror: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2006/03/the-ideal-computer-desk.html&quot; rel=&quot;nofollow&quot;&gt;The Ideal Computer Desk&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/d7bzz.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-26T07:06:28.503" CommentCount="3" />
  <row Id="7406" PostTypeId="2" ParentId="1600" CreationDate="2010-09-26T07:21:28.607" Score="2" ViewCount="" Body="&lt;p&gt;I quit programming and started selling drugs to homeless people. It has changed my life for the better. Remember to hire some muscle to deal with the problem customers.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-26T07:21:28.607" CommentCount="1" />
  <row Id="7407" PostTypeId="2" ParentId="7395" CreationDate="2010-09-26T07:27:17.490" Score="1" ViewCount="" Body="&lt;p&gt;When you walk, stand or sit, remember your posture. Make it a habit. Get your (good/honest/caring) friends to remind you when they see you slouching - because you'll do it without thinking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start exercising half an hour every other day. Start any exercise by taking small but consistent steps. The hardest part is doing it on a regular basis. Start with basics like sit-ups and toe-touches because if your core is weak, deadlifts, etc., will injure you and/or burn you out (discourage you). Walking or biking is good too - walking is especially easy to get done if you can walk from work to lunch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be careful of places like bodybuilding.com. There is just as much misinformation as good so you have to evaluate everything yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Diet is very important. As with exercise, start making small/simple changes so you can adjust and maintain interest. For example, cut soda to every other day only. Or bring a healthy sack lunch a few times a week. Then as these become &quot;normal&quot; activities, increase their frequency. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you're confident adding more won't burn you out (be honest, if you're feeling excitement and/or adrenaline while thinking of the &quot;next level&quot; then you're not serious), go ahead and do so. Regarding diet, you can start doing things like counting calories and/or custom diets (always make your own diet after plenty of research - never use &quot;cookie cutter&quot; diets, or diets from books, websites, etc...they can be reference, but shouldn't be primary sources). With exercise, you could join a gym - this is a big step for a first timer. So please take it slow, maybe 1 exercise per body part per day, 3x/week for a month or two. And please please ignore any urges to &quot;up the weight&quot;. Ignore what is going on around you and focus on what your body needs, and can do - everyone will be benching 135, but if you cannot with proper form, do not. No egos. If you can, find a level-headed(!) friend to show you exercises...and as with programming, you have to learn the basics and then implement them as YOU see fit. The basics are HOW to do each exercise, and WHAT each exercise is and does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've ever played baseball and had a coach teach you to hit the ball, they would say: &quot;...just make contact, don't try and kill the ball...make contact first, then once you're comfortable with that, then we can add power...&quot; This is EXACTLY THE SAME with every single movement in the gym. So, take your basic one-arm dumbell curl: start with 2.5lbs (uber-light) and figure out the best movement for YOU...practice it until it is totally easy (not easy because it's light, easy because you don't have to think about how to move) and second-nature...THEN add weight. The more weight, the more sloppy you get, the more you NEED an automatic reaction by your nervous system (most people don't realize that you MUST grow your nerves as you grow your muscles or you'll never get past your current growth &quot;level&quot;). Doing it with 70lbs can happen but only if doing it with 60lbs can be done STRICT, but that only happens if 50lbs can be done strict...and on down to 2.5lbs being done strict.&#xA;The other thing about starting with 2.5lbs (ie. uber-light on whatever exercise is new to you) is that you get a chance to feel all sorts of angles without getting tired or injuring yourself -- see what stresses the target muscle (in this case, bicep) the most, and the least, and do the setup (angle, incline, hand position, elbow position, shoulder position, etc) that hits it the most. Experiment!&#xA;You've got to do this with EVERY exercise in the gym - so, it can take years to master each one - from the curl to powercleans, deadlifts, pushdowns, squats, etc...but doing a little of each kind of body movement will give a good, solid overall development that will help posture, gut, and chin sag.&lt;/p&gt;&#xA;" OwnerUserId="2198" LastActivityDate="2010-09-26T07:27:17.490" />
  <row Id="7408" PostTypeId="2" ParentId="7383" CreationDate="2010-09-26T07:55:38.600" Score="4" ViewCount="" Body="&lt;p&gt;You're not going to &lt;em&gt;master&lt;/em&gt; any subject in one semester or two. It takes years of hands-on experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you're supposed to do is to learn the &lt;em&gt;basics&lt;/em&gt; of several subjects so that you have some ground to build on when you find what you actually need in a given project. In the field of computing there are zillions of technologies, and they change continuously. That said, there are some &lt;em&gt;fundamentals&lt;/em&gt; that are relatively stable. Computer and OS architectures and DBMS are among them. And while Java is just one programming language among others, it's not going to go away any time soon. So I think those subjects are equally important and should be studied with equal vigor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning the basics of several subjects moves you from the &quot;you don't know what you don't know&quot; state towards much better &quot;you do know what you don't know&quot; state. When working on a real world project, one of the most important skills is to &lt;strong&gt;know what can be done using what&lt;/strong&gt;, even if you don't know exactly the details. You can then dig deeper to the subject, once you know where to dig.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, if you have no idea about the basic principles of achieving concurrency, you're going to waste tons of time when you need that, because you're missing the link from the need to the approximate solution. But once you know that concurrency can be done with threads, and that you need to be extra careful when accessing mutable data shared among &gt;1 threads, you already know a lot. Then just check out the details from somewhere.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-09-26T08:28:45.353" LastActivityDate="2010-09-26T08:28:45.353" CommentCount="3" />
  <row Id="7409" PostTypeId="2" ParentId="7395" CreationDate="2010-09-26T08:07:11.920" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Play music games like Dance Dance Revolution or Pump It Up&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing about traditional exercise is that I find it boring and tedious as I count how many kilometers I've run or how many times I've lifted the freaking weight. Playing dance music games like DDR and PIU make you forget how boring exercise is since you're focused into the game. I prefer doing those rather than traditional cardio exercises like running. You'll find yourself wanting to do it more often as you play.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-09-26T08:07:11.920" />
  <row Id="7410" PostTypeId="2" ParentId="7329" CreationDate="2010-09-26T08:24:44.640" Score="5" ViewCount="" Body="&lt;p&gt;AC Power Sockets that are easy to reach. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hate crawling under the desk to plug/unplug my laptop.&lt;/p&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-09-26T08:24:44.640" />
  <row Id="7411" PostTypeId="2" ParentId="7383" CreationDate="2010-09-26T08:55:11.750" Score="1" ViewCount="" Body="&lt;p&gt;Just in relation to studying, a recent study has shown it is better so study multiple subjects for a short period than one over a long period i.e. if your studying for 3 hours it is better for your retention to study 3 subjects each for an hour than one subject for 3 hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a link to the paper for anyone interested.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://uweb.rc.usf.edu/~drohrer/pdfs/Taylor&amp;amp;Rohrer2010ACP.pdf&quot; rel=&quot;nofollow&quot;&gt;http://uweb.rc.usf.edu/~drohrer/pdfs/Taylor&amp;amp;Rohrer2010ACP.pdf&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't leave any subject to the last minute. Cramming doesn't work. You will forget everything an hour after the exam.&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-09-26T08:55:11.750" />
  <row Id="7412" PostTypeId="2" ParentId="7340" CreationDate="2010-09-26T09:20:49.333" Score="10" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/zXcNi.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0470128720&quot; rel=&quot;nofollow&quot;&gt;Operating System Concepts&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;by &lt;em&gt;Abraham Silberschatz,  Peter B. Galvin and  Greg Gagne&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was the one that was used in my university course. I like it but I haven't read many other books on the subject that I can compare with. I have glimpsed through &lt;em&gt;Operating Systems - Design and Implementation&lt;/em&gt; but I found it wasn't as readable as the book by Silberschatz, but that's my opinion.&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-26T16:20:55.263" LastActivityDate="2010-09-26T16:20:55.263" CommentCount="2" />
  <row Id="7415" PostTypeId="2" ParentId="5354" CreationDate="2010-09-26T10:27:37.493" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Will the equation 2+2=4 be outdated and replaced by 2+2 &gt; 4 or 2+2 &amp;lt; 4  ... any time soon ??&lt;/strong&gt; &#xA;The Relational model is not just a technology. Its based on Relational Calculus and Relational Algebra... whose foundation is the very heart  of   mathematics : The Set Theory. &#xA; &lt;strong&gt;The  operations like  filtering, joins, projections ... on relational data that SQL exposes are not mere system calls.  They are in league with addition , subtraction, multiplication etc.&lt;/strong&gt;&lt;br&gt;&#xA; File systems might be replaced by some other storage abstraction, object oriented programming might be superseded by some X oriented programming paradigm, even the very act of  computer programming itself might not be there but  &lt;strong&gt;forget about mathematics  being out dated&lt;/strong&gt;  for at least a hundred years from now.  &lt;/p&gt;&#xA;" LastActivityDate="2010-10-25T21:33:23.127" CommentCount="2" />
  <row Id="7416" PostTypeId="2" ParentId="7364" CreationDate="2010-09-26T10:31:30.610" Score="0" ViewCount="" Body="&lt;p&gt;You are in a very common scenario. Sales don't have a clue and rely on technical people to do their job. You will fail again and again to give accurate estimates because it's impossible to know.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What you actually do is called empirical estimation.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You get better at that with &lt;em&gt;time and experience&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any other we designer in the company ? If yes, I highly suggest you to do &lt;a href=&quot;http://en.wikipedia.org/wiki/Planning_poker&quot; rel=&quot;nofollow&quot;&gt;Planning Poker&lt;/a&gt;. It's a very powerful collective estimation technique.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Planning Poker is a consensus-based technique for estimating, mostly used to estimate effort or relative size of tasks in software development.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It will helps you getting more accurate estimations by using knowledge and experience of more people, and the estimation responsibility will be spread across the team instead of one single person. The sales will be happy since they will get more accurate estimations. And it's easier to say &quot;we can't estimate&quot; when you are 4 or 5 than when you are only yourself.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-09-26T10:53:10.603" LastActivityDate="2010-09-26T10:53:10.603" />
  <row Id="7417" PostTypeId="2" ParentId="7383" CreationDate="2010-09-26T11:04:08.140" Score="1" ViewCount="" Body="&lt;p&gt;Studying is just a fraction of learning and helps you get a grip on the fundamental concepts and interdependencies of the various sub-topics.&lt;br&gt;&#xA;However, in my opinion, real understanding only comes from practice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a Chinese proverb attributed to Confucius says,&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Tell me and I'll forget; show me and I&#xA;  may remember; involve me [&lt;em&gt;or:&lt;/em&gt; let me&#xA;  do] and I'll understand.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;A good way that helps you master many subjects at a time is working projects that somehow involves them and that go well beyond the scope of the usual course exercises, for example writing a useful application in Java that heavily relies on a database to function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will learn a lot from designing and implementing such a thing, and questions will automatically arise seemingly out of nowhere which will drive you further in your learning process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you feel that you do not have enough knowledge and experience to do such a project, approach it in a top-down manner, for example (speaking of a software project):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What do I want to create ?&lt;/li&gt;&#xA;&lt;li&gt;How is it supposed to work ? What should it do ?&lt;/li&gt;&#xA;&lt;li&gt;How could I implement a particular function ? What do I need to accomplish my task ?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Additionally, you can also learn a lot from reading other people's code.&lt;br&gt;&#xA;I found it useful to take an open source program I use and ask myself how it performs a particular task, going through the application step by step to see what it does, why it does it and why it does it that way and not differently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On understanding operating systems concepts, well... that may be a bit more difficult but I think that getting good at software design and hands-on experience with multiprocess/multithreaded architectures are probably important because you will understand the problems OSes have to deal with &amp;ndash; knowing the question helps you find the answer.&lt;/p&gt;&#xA;" OwnerUserId="3644" LastActivityDate="2010-09-26T11:04:08.140" />
  <row Id="7418" PostTypeId="2" ParentId="7349" CreationDate="2010-09-26T11:24:37.557" Score="3" ViewCount="" Body="&lt;p&gt;As an independent contractor I consider the number one skill I have and need is communication. It is absolutely necessary for programmers to understand their clients needs. You can be a guru in SQL, c#, etc but if you don't deliver what client the requires then you are sunk. &lt;/p&gt;&#xA;" OwnerUserId="919" LastEditorUserId="919" LastEditorDisplayName="" LastEditDate="2010-10-15T10:26:54.900" LastActivityDate="2010-10-15T10:26:54.900" />
  <row Id="7419" PostTypeId="2" ParentId="7340" CreationDate="2010-09-26T11:39:43.730" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0136006639&quot; rel=&quot;nofollow&quot;&gt;Modern Operating Systems&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/QOWED.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The widely anticipated revision of this worldwide best-seller incorporates the latest developments in operating systems technologies.  The Third Edition includes up-to-date materials on relevant operating systems such as Linux, Windows, and embedded real-time and multimedia systems. Includes new and updated coverage of multimedia operating systems, multiprocessors, virtual machines, and antivirus software. Covers internal workings of Windows Vista (Ch. 11); unique even for current publications. Provides information on current research based Tanenbaum’s experiences as an operating systems researcher. A useful reference for programmers.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-26T11:39:43.730" CommentCount="6" />
  <row Id="7420" PostTypeId="2" ParentId="7340" CreationDate="2010-09-26T11:42:30.007" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0136006329&quot; rel=&quot;nofollow&quot;&gt;Operating Systems: Internals and Design Principles&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/MCIK6.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Blending up-to-date theory with state-of-the-art applications, this book offers a comprehensive treatment of operating systems, with an emphasis on internals and design issues. It helps readers develop a solid understanding of the key structures and mechanisms of operating systems, the types of trade-offs and decisions involved in OS design, and the context within which the operating system functions (hardware, other system programs, application programs, interactive users). Process Description And Control. Threads, SMP, And Microkernels. Concurrency: Mutual Exclusion And Synchronization. Concurrency: Deadlock And Starvation. Memory Management. Virtual Memory. Uniprocessor Scheduling. Multiprocessor And Real-Time Scheduling. I/O Management And Disk Scheduling. File Management. Distributed Processing, Client/Server, And Clusters. Distributed Process Management. Security. For product development personnel (Programmers, Systems Engineers, Network Designers, and others involved in the design of data communications and networking products), Product marketing personnel, and Information system and computer system personnel. &lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-26T11:42:30.007" CommentCount="1" />
  <row Id="7422" PostTypeId="2" ParentId="6146" CreationDate="2010-09-26T11:59:56.860" Score="0" ViewCount="" Body="&lt;p&gt;In my opinion of you are a novice programming mod_security is a good idea, but if you take the time to write your applications correctly and avoid writing insecure code that uses eval or concatenate GET strings directly into SQL, you should be alright without it. mod_security will never stop the serious hackers and if you have a good application the script kiddies will give up and move on to the next really weak and insecure app out there.&lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-09-26T11:59:56.860" CommentCount="1" />
  <row Id="7423" PostTypeId="2" ParentId="7380" CreationDate="2010-09-26T12:06:06.543" Score="1" ViewCount="" Body="&lt;p&gt;Its been done - for JVM, but the problem is that whilst this was being developed it turned out that Intel and AMD had moved generic processors on far enough that there was no performance benefit and the costs were way higher. Bear in mind that Intel and AMD have the benefits of scale that bring the cost of their processors down&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a bit of article that references the existence of native JVM processors...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://onjava.com/pub/a/onjava/synd/2001/08/15/embedded.html?page=2&quot; rel=&quot;nofollow&quot;&gt;http://onjava.com/pub/a/onjava/synd/2001/08/15/embedded.html?page=2&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="866" LastEditorUserId="866" LastEditorDisplayName="" LastEditDate="2010-09-26T16:37:37.670" LastActivityDate="2010-09-26T16:37:37.670" CommentCount="3" />
  <row Id="7424" PostTypeId="2" ParentId="7380" CreationDate="2010-09-26T12:22:52.473" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;IL is processor and system agnostic.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's is the main purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IL is compiled by the &lt;strong&gt;&lt;a href=&quot;http://www.dotnet-guide.com/jit.html&quot; rel=&quot;nofollow&quot;&gt;JIT&lt;/a&gt;&lt;/strong&gt; on the host system and &lt;strong&gt;is optimized to take advantage of the processor(s) features&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your objective is to compile for a specific processor, you can compile .NET code directly using tools like &lt;a href=&quot;http://www.xenocode.com&quot; rel=&quot;nofollow&quot;&gt;Xenocode&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowing how (and &lt;strong&gt;why&lt;/strong&gt;) .NET works like that is essential to develop robust application. Please consider purchasing &lt;a href=&quot;http://www.microsoft.com/learning/en/us/book.aspx?ID=6522&amp;amp;locale=en-us&quot; rel=&quot;nofollow&quot;&gt;CLR via C#&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, Microsoft is already doing much of it with its &lt;a href=&quot;http://msdn.microsoft.com/en-us/netframework/bb278106.aspx&quot; rel=&quot;nofollow&quot;&gt;.NET Micro Framework&lt;/a&gt; and some ARM processors. But it's related to embedded system chips that you usually use in your own hardware that you control. So it makes sense.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-09-26T12:28:01.350" LastActivityDate="2010-09-26T12:28:01.350" CommentCount="4" />
  <row Id="7425" PostTypeId="2" ParentId="1600" CreationDate="2010-09-26T13:13:45.073" Score="0" ViewCount="" Body="&lt;p&gt;I've been there, stuck in a rut for months where I had no interest in programming anymore. It wasn't even as if I wasn't learning things. The problem was that I wasn't having any fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to find a way to have fun coding. For some people it's learning new technologies. For others it's the enjoyment of making things people find useful. Find a way to make it fun, or you're going to leave the field entirely.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-26T13:13:45.073" />
  <row Id="7426" PostTypeId="1" AcceptedAnswerId="7434" CreationDate="2010-09-26T13:49:37.857" Score="3" ViewCount="217" Body="&lt;p&gt;I'm planning to write an Admin panel. It should be capable of adding/removing/modifying/deleting a product. It's rather a simple task but I want to learn new technology along doing that. I don't have any deadline to do that. I know &lt;code&gt;HTML&lt;/code&gt;, &lt;code&gt;php&lt;/code&gt; and basics of &lt;code&gt;JS&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What RIA technology you would recommend to learn? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Flex&lt;/code&gt;, &lt;code&gt;HTML5&lt;/code&gt; + &lt;code&gt;JQuery&lt;/code&gt;, &lt;code&gt;GWT&lt;/code&gt; or maybe something else?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;UPDATE:&#xA;I have mysql database with products, what I want to achieve is: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;simple authentication mechanism&lt;/li&gt;&#xA;&lt;li&gt;ability to show a product and fill in title and description by looking on product picture&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2311" LastEditorUserId="2311" LastEditorDisplayName="" LastEditDate="2010-09-26T20:05:36.220" LastActivityDate="2010-09-27T08:04:19.463" Title="Which web technology use to make admin panel?" Tags="&lt;learning&gt;&lt;self-improvement&gt;&lt;web-development&gt;&lt;trends&gt;&lt;html&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="1" />
  <row Id="7427" PostTypeId="1" CreationDate="2010-09-26T13:59:16.800" Score="20" ViewCount="1530" Body="&lt;p&gt;Hello everybody&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a junior, what would you think and do if you getting humiliated by your lead programmer if you can't handle his expectations ?&lt;/p&gt;&#xA;" OwnerUserId="3664" LastActivityDate="2011-04-01T21:52:49.413" Title="Getting humiliated by your senior programmer..." Tags="&lt;jobs&gt;&lt;co-workers&gt;" AnswerCount="13" CommentCount="10" FavoriteCount="6" />
  <row Id="7428" PostTypeId="2" ParentId="7427" CreationDate="2010-09-26T14:01:09.303" Score="30" ViewCount="" Body="&lt;p&gt;That he is an a**hole.&#xA;No one should humiliate you, no matter what they think of your technical skill.&lt;/p&gt;&#xA;" OwnerUserId="3624" LastActivityDate="2010-09-26T14:01:09.303" CommentCount="6" />
  <row Id="7429" PostTypeId="2" ParentId="7349" CreationDate="2010-09-26T14:03:08.470" Score="-1" ViewCount="" Body="&lt;p&gt;You have forgotten a lot of important stuff, that really distinguishes the advanced programmer from the novice. (Notice that I have only worked with &lt;em&gt;native&lt;/em&gt; Windows development, and has a preference for low-level stuff.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, if you work on the Windows platform, you need eventually to &lt;em&gt;master&lt;/em&gt; the Windows API, even if you are a Delphi developer, say (and hence can do a lot of things in the VCL alone). You need to learn to work with HWNDs, HBITMAPs, HMENUs and all other kinds of kernel objects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, one very important thing: you need to be able to design and implement custom data structures and algorithms. &lt;em&gt;Every&lt;/em&gt; decent programmer should be able to write a syntax-highlighting text editor in a week or so, from scratch. To go even further, I think that a professional programmer really should know how to allocate and use raw memory on the heap manually, in order to store data in some custom structure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, you should be able to understand and design binary file formats. You should be able to write decoders and encoders for simple binary file formats, such as Windows version 3 bitmaps, at least.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Further, if you are working with native development, a good understanding of assembly is a sure sign of maturity as a programmer.&lt;/p&gt;&#xA;" OwnerUserId="1218" LastActivityDate="2010-09-26T14:03:08.470" CommentCount="1" />
  <row Id="7430" PostTypeId="2" ParentId="7427" CreationDate="2010-09-26T14:18:52.897" Score="0" ViewCount="" Body="&lt;p&gt;In most cases, it tells something of the person. In those few cases, it isn't necessarily bad - a little humiliation will definitely help you to remember the error in question and never to make it again. So, swallow your pride and act rational ... if even when you're doing your best he still strives to make you miserable all the time, think whether you wish to stay with him (i.e. in the company).&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-26T14:18:52.897" />
  <row Id="7431" PostTypeId="2" ParentId="7427" CreationDate="2010-09-26T14:22:01.913" Score="26" ViewCount="" Body="&lt;p&gt;If he humiliates you it's only because he is unsecure person. Think about that each time he does it. And if he is unsecure, it's probably because he has been humiliated himself in the past, by his friends or worse, by his parents... think about it too. He may not be a bad person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Strategy 1: use his weakness&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The good strategy would be to come to his desk 10 minutes later and tell him that he is right and you want to learn from his technical knowledge. You tell him it's a chance to work with someone like him and you will be very proud to get advices from him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In most case, it will change his attitude forever. When you will do a mistake (you will do many in the future), we will take it personnaly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may want to dig deeper in his personnality and try to understand why his life sucks like that. Having a such person in your team will affect everybody. Every team member has the responsability to help other team members, including him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Strategy 2: use your force&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It happened to me only once. I was surprised because I don't have the physic of the guy you want to humiliate. I waited few minutes then I sent him an email to tell him I wanted to talk in private. When we were in the meeting room, I said that the next time he talk to me like that, I would %#@&amp;amp; his face. Of course he never did it again, but with time, I do think it's not the good attitude to have with your team members ;) (I changed, I promise)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Strategy 3: use your feet&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Walk away...or better... run! Having such people in your team will not affect only you, but the whole team. In a great team, people help each other, and there is no place for humiliation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Strategy 4: use your resistance&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you show nothing but indifference, he will likely stop doing it. That's that simple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case... good luck !&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="165" LastEditorDisplayName="" LastEditDate="2010-09-26T15:46:38.907" LastActivityDate="2010-09-26T15:46:38.907" CommentCount="5" />
  <row Id="7432" PostTypeId="2" ParentId="7427" CreationDate="2010-09-26T14:48:49.283" Score="17" ViewCount="" Body="&lt;p&gt;If you're referring to a public humiliation, then this person is completely off base and you should talk to his supervisor and let them know what transpired.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If he's making you feel humiliated but doing it in private, then it is not &lt;em&gt;as&lt;/em&gt; bad, though still an undesirable way to deal with an employee who's not meeting expectations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, you should do your best to set aside your emotional response and try to assess how much truth there is in the dressing down, even though it was handled extremely poorly. If his criticism is at all valid, you should still address it by trying to rectify the shortcomings he identified.&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-09-26T14:48:49.283" />
  <row Id="7433" PostTypeId="2" ParentId="7427" CreationDate="2010-09-26T15:05:22.683" Score="0" ViewCount="" Body="&lt;p&gt;I think he's a jerk-ass and it's time to find another job.  But, also, look at any criticism and see if there is any value to what he/she is saying. if so, work to change/fix anything that needs fixing.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-09-26T15:05:22.683" />
  <row Id="7434" PostTypeId="2" ParentId="7426" CreationDate="2010-09-26T15:41:40.707" Score="3" ViewCount="" Body="&lt;p&gt;For that, you definitely don't need a technology that require you to install a plugin.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend to go with HTML5 + jQuery on the client side. And use what you already know on the server side; PHP and maybe learn a framework like Kohana.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-26T15:41:40.707" CommentCount="2" />
  <row Id="7435" PostTypeId="2" ParentId="7426" CreationDate="2010-09-26T15:47:55.647" Score="0" ViewCount="" Body="&lt;p&gt;It's hard to tell other people what they should learn, but since you are already a web-developer I would probably stick to technologies that are web-based and established. With that in mind, then, I'd suggest getting to grips with jQuery and then looking into HTML5, Canvas and JS/jQuery.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? Well, jQuery is becoming the &lt;em&gt;defacto&lt;/em&gt; standard for rich HTML applications and this will continue for sometime until HTML5 becomes more established (and by then I'm sure jQuery will will still play an active part). It's cross-browser, doesn't require any propriety technology to learn, doesn't require people having browser-plugins installed etc. It's also cheap and easy to learn without tying yourself to an OS, buying particular tools or tying yourself to a particular manufacturer's product.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-26T15:47:55.647" CommentCount="1" />
  <row Id="7436" PostTypeId="2" ParentId="7347" CreationDate="2010-09-26T16:18:46.970" Score="8" ViewCount="" Body="&lt;p&gt;Bear in mind that your compiler may well turn:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for(int i = 0; i &amp;lt; collection.length(); i++ ){&#xA;   // stuff here&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;into:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int j = collection.length();&#xA;for(int i = 0; i &amp;lt; j; i++ ){&#xA;   // stuff here&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or something similar, if &lt;code&gt;collection&lt;/code&gt; is unchanged over the loop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this code is in a time critical section of your application it would be worth finding out whether this is the case or not - or indeed whether you can change the compiler options to do this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This will maintain the readability of the code (as the former is what most people will expect to see), while gaining you those few extra machine cycles. You are then free to concentrate on the other areas where the compiler can't help you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a side note: if you change &lt;code&gt;collection&lt;/code&gt; inside the loop by adding or removing elements (yes, I know it's a bad idea, but it does happen) then your second example either won't loop over all the elements or will try to access past the end of the array.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-09-26T16:18:46.970" CommentCount="5" />
  <row Id="7437" PostTypeId="2" ParentId="5113" CreationDate="2010-09-26T16:21:02.767" Score="1" ViewCount="" Body="&lt;p&gt;Why not &lt;a href=&quot;http://www.bennadel.com/ask-ben/ask-ben-nadel.htm&quot; rel=&quot;nofollow&quot;&gt;Ask&lt;/a&gt; &lt;a href=&quot;http://www.bennadel.com&quot; rel=&quot;nofollow&quot;&gt;Ben Nadel&lt;/a&gt; if being a &lt;a href=&quot;http://www.bennadel.com/blog/2016-Saturday-Hackathon-Building-A-Photo-Upload-Site-For-Twitter.htm&quot; rel=&quot;nofollow&quot;&gt;computer geek&lt;/a&gt; and being &lt;a href=&quot;http://www.bennadel.com/blog/1986-Project-HUGE-Deadlifting-With-WSF-s-Griptech-Rubberized-Lifting-Straps.htm&quot; rel=&quot;nofollow&quot;&gt;good physical shape&lt;/a&gt; are mutually exclusive?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;I know programmers in good shape, bad shape, and every shape in between - it doesn't seem to affect their skills, and I've seen no indication of different perceptions/treatment/prejudices based on how they look.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I certainly do see a correlation that those who put effort into looking after themselves physically are also those that work on improving themselves mentally, and thus are better programmers - neither causing the other, but both coming from an overall aim of self-improvement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But yeah, I don't know anyone who would say &quot;he's rather bulky; must be a crap programmer&quot; - instead, most programmers seem happy to let people demonstrate their level of abilities before they make judgement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;I suspect what's more likely is that there's a correlation between people who are prejudicial towards others and people that believe stereotypes represent an accurate 90% of whatever they are aimed at (rather than being more an exaggerated combination of maybe 30-50% of what it represents) - but that's a different issue, not really related to programming or physical shape.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-09-26T16:21:02.767" />
  <row Id="7438" PostTypeId="2" ParentId="2804" CreationDate="2010-09-26T16:26:24.090" Score="4" ViewCount="" Body="&lt;p&gt;My biggest idiosyncrasy is probably descriptive (and perhaps overly so to some) variable names. I would much rather see/read customerName in lieu of c_name, etc.&lt;/p&gt;&#xA;" OwnerUserId="3488" LastActivityDate="2010-09-26T16:26:24.090" CommunityOwnedDate="2011-03-15T08:09:28.653" CommentCount="1" />
  <row Id="7439" PostTypeId="1" CreationDate="2010-09-26T16:28:27.167" Score="8" ViewCount="350" Body="&lt;p&gt;If you were hiring programmers, and could choose between one of (say) the top 100 coders on topcoder.com, or one of the top 100 on stackoverflow.com, which would you choose?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least to me, it would appear that topcoder.com gives a more objective evaluation of pure ability to solve problems and write code. At the same time, despite obvious &lt;em&gt;technical&lt;/em&gt; capabilities, this person may lack any hint of social skills -- he may be purely a &quot;lone coder&quot;, with little or no ability to help/work with others, may lack mentoring ability to help transfer his technical skills to others, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, stackoverflow.com would at least appear to give a much better indication of peers' opinion of the coder in question, and the degree to which his presence and useful and helpful to others on the &quot;team&quot;. At the same time, the scoring system is such that somebody who just throws up a lot of mediocre (or even poor answers) will almost inevitably accumulate a positive total of &quot;reputation&quot; points -- a single up-vote (perhaps just out of courtesy) will counteract the effects of no fewer than 5 down-votes, and others are discouraged (to some degree) from down-voting because they have to sacrifice their own reputation points to do so. At the same time, somebody who makes little or no technical contribution seems unlikely to accumulate a reputation that lands them (even close to) the top of the heap, so to speak.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, which provides a more useful indication of the degree to which this particular coder is likely to be useful to your organization? If you could choose between them, which set of coders would you rather have working on your team?&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-09-29T11:38:17.140" Title="Which web site gives the most accurate indication of a programmer's capabilities?" Tags="&lt;programming-practices&gt;&lt;great-programmer&gt;&lt;team&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="1" />
  <row Id="7440" PostTypeId="2" ParentId="1768" CreationDate="2010-09-26T16:30:19.637" Score="1" ViewCount="" Body="&lt;h2&gt;F#&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I think that F# is a very good fit for a business application. First of all, it's a functional programming language and by that, you program in a more declarative way. Functional programming languages are easier to test since a pure function is stateless and you only have to test what the function returns. They are also easier to refactor since the order of the instructions are less important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Functional programming languages like Ocaml are popular in the financial industry and F# has borrowed much from Ocaml. When I do business applications it's rare that I have to do mutable objects, mostly I want them to be immutable so they aren't mutated by mistake. Mostly information in my system evolve to new versions and old information is kept for accountability reasons. See also my question &lt;a href=&quot;http://stackoverflow.com/questions/3511120/why-shouldnt-i-use-immutable-pojos-instead-of-javabeans&quot;&gt;Why shouldn't I use immutable POJOs instead of JavaBeans?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Why not other functional programming languages?&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;With F# you can use WPF, which is a great modern and declarative GUI framework. You can use it for desktop applications on the Windows platform, or on Silverlight rich Internet applications. Many other functional programming languages doesn't have any decent support for GUI frameworks.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-26T16:30:19.637" />
  <row Id="7441" PostTypeId="2" ParentId="1600" CreationDate="2010-09-26T16:30:53.547" Score="1" ViewCount="" Body="&lt;p&gt;Whenever you start to ask yourself question like &quot;&lt;strong&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/1600/how-do-you-know-when-you-are-tired-of-programming-in-your-life&quot;&gt;How do you know when you are tired of programming in your life?&lt;/a&gt;&lt;/strong&gt;&quot;, it's a pretty good clue that you are starting to get bored. When you ask them  on a Q&amp;amp;A website, it's a pretty good clue that you have crossed a line.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, it's a trigger to do something &lt;strong&gt;OUTSIDE&lt;/strong&gt; of programming, anything form rushing though a Video game, a TV-Series or some DIY things.   &lt;/p&gt;&#xA;" OwnerUserId="19" LastEditorUserId="19" LastEditorDisplayName="" LastEditDate="2010-12-06T13:22:34.237" LastActivityDate="2010-12-06T13:22:34.237" />
  <row Id="7442" PostTypeId="2" ParentId="7427" CreationDate="2010-09-26T16:57:09.683" Score="2" ViewCount="" Body="&lt;p&gt;What do I think?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Welcome to the real world - it happens.&lt;/li&gt;&#xA;&lt;li&gt;Within certain bounds it shouldn't (sometimes people do actually dig themselves into holes where its almost inevitable) - its really poor management/leadership and unlikely to help the junior or the situation&lt;/li&gt;&#xA;&lt;li&gt;Not necessarily the fault of the lead (bear with me here) - people are often promoted to lead because of their programming skills not their people or managment skills, worse programmers frequently struggle to grasp that not everyone can do what they do (or knows what they know) and yet more worse they're having to delegate which is horrible... (just because you wouldn't have done it like that doesn't mean that &quot;that&quot; is wrong). I know that it took me a &lt;strong&gt;long time&lt;/strong&gt; to even begin to learn the skills you need over and above the technical skills a lead should have.&lt;/li&gt;&#xA;&lt;li&gt;Once - once you might have to let go, more than once needs to be dealt with - how will depend on the structure of your company, if you want to stay then you need to work with the broader management otherwise find your way out (and a good reason for going)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-09-26T16:57:09.683" />
  <row Id="7443" PostTypeId="2" ParentId="7426" CreationDate="2010-09-26T17:00:24.287" Score="0" ViewCount="" Body="&lt;p&gt;If you're just looking for something to mess with try writing it all in &lt;code&gt;cgi-bin&lt;/code&gt;, Python, Ruby, Scala, or find an obscure language &lt;em&gt;cough&lt;/em&gt; Perl &lt;em&gt;cough&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of people are saying HTML5, jQuery, and someother frontend junk that I'm 90% sure you &lt;em&gt;don't need&lt;/em&gt;. Why would you need canvas on an admin section unless you're drawing something? &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-26T17:00:24.287" CommentCount="2" />
  <row Id="7444" PostTypeId="2" ParentId="6146" CreationDate="2010-09-26T17:11:44.730" Score="1" ViewCount="" Body="&lt;p&gt;I personally see mod_security as a patch. I use it on some of our servers where we can't control the code that's uploaded (shared hosting servers, for example), but it's never really felt like a good solution to me. Based on it's wide and very general blacklist approach, it's more of a patch to cover up security holes than a good security policy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can also provide a false sense of security. mod_security can reveal some common attacks but can by no means prevent any attack. Again, it's a blacklist of common known attacks. If you simply install mod_security and think that you're magically secure, you're horribly mistaken.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have found a much better policy to me managed servers where my team reviews all code that is placed on them, combined with lots of logs, logfile analysis, reporting systems, and intrusion detection/intrusion prevention systems (IPS). Everytime third-party or open-source software is installed (I'm looking at &lt;em&gt;you&lt;/em&gt;, WordPress!) we keep a log of where it was installed, and when new versions are released we update every copy that was installed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again, you're more likely to find mod_security on a shared hosting server, as you're experiencing now. As you grow you can move to a VPS or clod based hosting provider where you get your own managed environment and can more tightly control the available software.&lt;/p&gt;&#xA;" OwnerUserId="246" LastActivityDate="2010-09-26T17:11:44.730" CommentCount="1" />
  <row Id="7445" PostTypeId="2" ParentId="7427" CreationDate="2010-09-26T17:17:33.393" Score="6" ViewCount="" Body="&lt;p&gt;Your question doesn't really go into much detail.  Probably the most important thing to ask is, did this just happen one time, or is it a regular pattern?  If he just said something once that made you feel humiliated, you're probably just being a bit oversensitive.  Engineers aren't particularly known for their social skills, and he most likely thought he was pointing out something that could be improved.  Try to take the advice as it as intended.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if this is someone who makes a regular habit of humiliating you, then you're probably dealing with a bully.  How senior is he?  How is the environment in your office structured?  It's an unfortunate truth that bullies don't usually understand anything but power.  You don't have any, but management does.  Is there any way you can use the system to get your boss or other people above him to pressure him to stop?  If not, depending on how bad it is, you may need to consider more radical steps, such as finding a different job, or (only in severe cases) legal action.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-26T17:17:33.393" CommentCount="2" />
  <row Id="7446" PostTypeId="2" ParentId="7439" CreationDate="2010-09-26T17:19:52.800" Score="15" ViewCount="" Body="&lt;p&gt;Why choose? When you are hiring, you want to post your offer everywhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hiring based on reputation points or any other online results is a terrible idea and I'm pretty sure &lt;strong&gt;no one is doing it&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure that having 30K on StackOverflow will helps getting the attention of the hiring guy, but you will get hired for many others facts.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The experience in your domain or industry of the candidate&lt;/li&gt;&#xA;&lt;li&gt;His physical location related to your office&lt;/li&gt;&#xA;&lt;li&gt;The amount of $$$ he is asking for the job&lt;/li&gt;&#xA;&lt;li&gt;His personnal interests (yes it has an influence, at least on me)&lt;/li&gt;&#xA;&lt;li&gt;His recommandations&lt;/li&gt;&#xA;&lt;li&gt;What people said about him during references checks&lt;/li&gt;&#xA;&lt;li&gt;And more importantely, his seduction abilities! (during interview, you have to seduce within the first 5 minutes)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;They are so many factors you can't summarize the hiring process to programmer's (supposed) capabilities.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-26T17:19:52.800" CommentCount="2" />
  <row Id="7447" PostTypeId="2" ParentId="1600" CreationDate="2010-09-26T17:40:14.143" Score="12" ViewCount="" Body="&lt;h2&gt;It's called burnout.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;It's not limited to the programming industry.  Not matter what job you do you will get tired of it at some stage - we are human at all.  (Well, most of us - Jon Skeet, I'm looking at YOU)  Unless you've never really liked programming all along, I'm guessing that you're simply stuck and looking for some new inspiration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's what I would recommend - &lt;strong&gt;stop programming&lt;/strong&gt;.  Just temporarily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do something else for a while.  There are obviously other stuff you enjoy doing - reading, running, answering questions on SO, whatever - focus on that for a while.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm also guessing that you're doing programming to pay the bills - that's why I'm not recommending that you quit your job.  Simply work the minimum amount of hours for a few weeks or months and stay away from computers outside of work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Before you know it you'll be burning to write the website for that new idea you thought up.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-26T17:40:14.143" CommentCount="3" />
  <row Id="7448" PostTypeId="2" ParentId="4863" CreationDate="2010-09-26T18:18:35.220" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Hololanguage&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A multiparadigm language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.inf.unisinos.br/~holo/Introduction_en.php&quot; rel=&quot;nofollow&quot;&gt;http://www.inf.unisinos.br/~holo/Introduction_en.php&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1429" LastActivityDate="2010-09-26T18:18:35.220" CommunityOwnedDate="2010-10-22T23:54:06.263" />
  <row Id="7449" PostTypeId="2" ParentId="567" CreationDate="2010-09-26T18:24:11.373" Score="2" ViewCount="" Body="&lt;p&gt;FWIW I proposed a paradigm in a book I wrote back in '93. I called it the Linguistic Method. It was based on analyzing problems from an information-theoretic perspective. It is the way I approach problems, and it is largely independent of language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I doubt if it will ever &quot;take off&quot;, at least I hope it doesn't. I'm very suspicious of things that &quot;take off&quot;. Usually they are marginally beneficial ideas that become bandwagons well beyond their intrinsic value. The problem is that their adherents seem to pile on with a total lack of healthy skepticism.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The word &quot;lemmings&quot; comes to mind.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-09-26T18:57:04.793" LastActivityDate="2010-09-26T18:57:04.793" />
  <row Id="7450" PostTypeId="2" ParentId="7305" CreationDate="2010-09-26T18:39:01.183" Score="5" ViewCount="" Body="&lt;p&gt;I prefer the first one. It comes natural as being a pointer is part of the type.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I use C#, it handles types in a more intuitive way than C, so there is no problem declaring several pointers in the same statement:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int* a, b, c; // three pointers&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-09-26T18:39:01.183" />
  <row Id="7451" PostTypeId="2" ParentId="2757" CreationDate="2010-09-26T18:53:23.900" Score="0" ViewCount="" Body="&lt;p&gt;Main screen 22&quot; horizontal. Secondary screen 22&quot; vertical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Main screen good for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;IDE's&lt;/li&gt;&#xA;&lt;li&gt;3rd Party clients with GUIs&lt;/li&gt;&#xA;&lt;li&gt;Outlook&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Secondary screen good for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;File Exploring&lt;/li&gt;&#xA;&lt;li&gt;Document review/writing (&quot;fit to page&quot; looks very clean)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2489" LastActivityDate="2010-09-26T18:53:23.900" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="7452" PostTypeId="2" ParentId="567" CreationDate="2010-09-26T18:57:42.493" Score="1" ViewCount="" Body="&lt;p&gt;I'm going with &lt;a href=&quot;http://cqrs.wordpress.com/&quot; rel=&quot;nofollow&quot;&gt;Command Query Responsibility Segregation&lt;/a&gt; as an architecture principal. It embraces splitting what used to be considered a single model into a read model and a write model. It also embraces the possibility of using different data stores for both. IMHO a single enterprise-wide source of truth causes more tradeoffs than it is worth. &lt;/p&gt;&#xA;" OwnerUserId="3470" LastActivityDate="2010-09-26T18:57:42.493" />
  <row Id="7453" PostTypeId="2" ParentId="5490" CreationDate="2010-09-26T19:07:42.843" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://cachetastic.blogspot.com/2008/07/some-mumps-dissing-and-more-positive.html&quot; rel=&quot;nofollow&quot;&gt;Interstar's example&lt;/a&gt; correctly written to use functions:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;f ;   &#xA;  new x  &#xA;  set x=$$g()  &#xA;  write x  &#xA;  quit  &#xA;&#xA;g()  &#xA;  new x  &#xA;  set x = 5  &#xA;  quit x  &#xA;&#xA;do f  &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;f&lt;/code&gt; is a procedure which is invoked with a do.  If, as in this case, it has no formal parameters, you don't need the &lt;code&gt;()&lt;/code&gt;.  A procedure just Quits and doesn't return anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;g()&lt;/code&gt; on the other hand is a function.  The new &lt;code&gt;x&lt;/code&gt; is crucial to correctly scope &lt;code&gt;x&lt;/code&gt;.  A function is invoked by preceding its name with &lt;code&gt;$$&lt;/code&gt; and it QUITs with a return value.  A function must have a formal parameter list declared even if it's empty as here.  Actually you could write this instance of &lt;code&gt;g()&lt;/code&gt; as just:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;g()  &#xA; quit 5&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It will all behave perfectly now.  For some reason a lot of Mumps developers don't seem to have noticed or understood the existence of functions, or understand the difference between them and procedures.  I think this is one of the reasons why people new to Mumps throw their hands up in horror (not surprisingly) - there's an awful lot of terrible code out there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Written as shown above, it's all quite clean and respectable stuff.  However, it's up to the programmer to explicitly scope variables within functions and procedures.  Leave them out and they'll be global and leak everywhere.  The trick is to build and test each function as you go in isolation and ensure that they rely on nothing but their formal parameters and, when finished, they leave nothing behind.&lt;/p&gt;&#xA;" OwnerUserId="3407" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-26T20:50:58.100" LastActivityDate="2010-09-26T20:50:58.100" CommentCount="10" />
  <row Id="7454" PostTypeId="2" ParentId="7325" CreationDate="2010-09-26T19:36:48.930" Score="0" ViewCount="" Body="&lt;p&gt;If designing a language from scratch nowadays and without any legacy baggage to worry about then, yes, it would probably make more sense to use &lt;code&gt;&amp;amp;&lt;/code&gt; and &lt;code&gt;|&lt;/code&gt; for logical operations and &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt; and &lt;code&gt;|&lt;/code&gt; for bitwise operations. But trying to switch them now for existing languages would be crazy (as it would break all existing software) and it would probably be too confusing to use them for new languages since existing programmers have gotten used to their current meaning.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-09-26T19:36:48.930" />
  <row Id="7455" PostTypeId="1" AcceptedAnswerId="7457" CreationDate="2010-09-26T19:45:42.533" Score="6" ViewCount="225" Body="&lt;p&gt;I mean, I still have a MSX2 with a Z80 processor and if you look at any Konami's game made for that computer in its time (roughly between '84 and '90) is amazing the high quality code of those games. I was a kid at the time, trying to learn how to program a computer and still today fascinated me how well made they are, mostly zero bugs or glitches, despite the really complex behavior. What hardware/software tools could they have used to accomplish that quality, which metodology? I know computers are really more complex today but at that time, even a stock control program I made in Basic was plagued with many bugs and was painful to debug. Any light you can shed will be deeply appreciated. &lt;/p&gt;&#xA;" OwnerUserId="1969" LastActivityDate="2010-09-26T22:02:56.790" Title="What hardware/software tools were used to build commercial quality 8-bits games?" Tags="&lt;tools&gt;&lt;development-process&gt;&lt;video-game&gt;" AnswerCount="1" FavoriteCount="2" />
  <row Id="7456" PostTypeId="1" AcceptedAnswerId="7593" CreationDate="2010-09-26T19:48:34.190" Score="17" ViewCount="351" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Linguistic_relativity&quot; rel=&quot;nofollow&quot;&gt;Linguistic relativity&lt;/a&gt; is the idea that language shapes the way we think.  My question is, how much, and to what extent, does this apply to programming?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Are some native, natural languages better-suited for thinking about programming than others?  For instance, can the following be stated more concisely in a non-English language?  &lt;code&gt;Select a pivot.  Move all the items less than the pivot to one side of the list, and all the items greater than the pivot to the other side.&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Does a Chinese-speaking programmer view programming in a radically different lens than an English-speaking programmer, or do the differences fade away when both are immersed in the subject?&lt;/li&gt;&#xA;&lt;li&gt;Are some programming languages and domains easier to think about in one language or another.  For instance, is it any easier to grok Ruby if you are Japanese because the &lt;a href=&quot;http://en.wikipedia.org/wiki/Yukihiro_Matsumoto&quot; rel=&quot;nofollow&quot;&gt;creator of Ruby&lt;/a&gt; is Japanese?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Note that this question is not focused on &quot;how do programming languages affect the way people think about programming&quot;, but rather &quot;how do &lt;strong&gt;natural&lt;/strong&gt; languages affect the way people think about programming&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To get it out of the way, one language that clearly has a pragmatic advantage is &lt;strong&gt;English&lt;/strong&gt;.  I think the advantage has little to do with programming languages choosing English keywords like &lt;code&gt;if&lt;/code&gt;, &lt;code&gt;for&lt;/code&gt;, &lt;code&gt;while&lt;/code&gt;, and &lt;code&gt;do&lt;/code&gt;, just as musicians who don't speak Italian aren't tripped up by words like &lt;em&gt;forte&lt;/em&gt;.  It has more to do with communication of ideas with other programmers, as English is the lingua franca these days, at least in the programming world.  For instance, to ask a question in StackOverflow, you really need to know English and know it pretty well if you want good answers.  Although this sounds like an imperialist attitude, it really is true in practice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That aside, how do the intrinsic properties of languages affect how programmers who speak them think about data structures, algorithms, etc.?  Are any languages particularly concise when it comes to talking about logic and programming, allowing native speakers of those languages to think faster?&lt;/p&gt;&#xA;" OwnerUserId="3650" LastActivityDate="2010-09-27T15:55:28.630" Title="What natural language has the advantage when it comes to programming?" Tags="&lt;philosophy&gt;&lt;natural-language&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="2" />
  <row Id="7457" PostTypeId="2" ParentId="7455" CreationDate="2010-09-26T20:21:08.743" Score="6" ViewCount="" Body="&lt;p&gt;I don't know anything about Konami, so I'm taking an educated guess here.  Games on machines like the MSX would have required direct access to the hardware, so that pretty much limits the choice of languages to either C or Z80 assembly language.  (There were C compilers for the Z80 back then, for example &lt;a href=&quot;http://www.bdsoft.com/resources/bdsc.html&quot; rel=&quot;nofollow&quot;&gt;this one&lt;/a&gt;.) I doubt if the games were completely written in C, if at all; mostly likely a lot of assembly code for performance reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as platforms go, since the MSX didn't have a hard drive, I would further assume the programs were initially written on a larger Z80 system, perhaps running CP/M.  For debugging, the code could probably have been downloaded into a special game cartridge for the MSX that had RAM memory in place of ROM -- this would have allowed the developer to download the program over and over again without burning ROM chips.  Debugging (e.g. setting breakpoints) could have been accomplished by replacing the Z80 inside the MSX with an In-Circuit Emulator (&lt;a href=&quot;http://www.tauntek.com/Z80-In-Circuit-Emulator.htm&quot; rel=&quot;nofollow&quot;&gt;ICE&lt;/a&gt;) interface.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-09-26T22:02:56.790" LastActivityDate="2010-09-26T22:02:56.790" CommentCount="1" />
  <row Id="7458" PostTypeId="2" ParentId="7456" CreationDate="2010-09-26T20:21:48.847" Score="1" ViewCount="" Body="&lt;p&gt;I think it's more likely that the programming language you are using will shape the way you are thinking about the problem, the variable and class names, etc, are just characters representing something. Though it is very likely that programmers in different cultures think about programming differently because of their spoken language and the way that they learned.&lt;/p&gt;&#xA;" OwnerUserId="785" LastActivityDate="2010-09-26T20:21:48.847" />
  <row Id="7459" PostTypeId="2" ParentId="6847" CreationDate="2010-09-26T20:22:08.470" Score="7" ViewCount="" Body="&lt;h2&gt;PROLOG&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Code as data, data as code.&lt;/li&gt;&#xA;&lt;li&gt;Multi-use procedures (*).&lt;/li&gt;&#xA;&lt;li&gt;Head/tail recursion.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;No other language stretched my mind more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(*) The same procedure - say, append/3 may be used in multiple ways: &quot;append [1,2] and [3,4]&quot;,  or &quot;what list, appended with [3,4], gives, [1,2,3,4]&quot;, or &quot;what ways are there to append two lists to give [1,2,3,4]?&quot; or &quot;does [1,2] appended to [3,4], give [1,2,3,4]?&quot;&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-26T20:22:08.470" CommunityOwnedDate="2010-09-26T20:22:08.470" CommentCount="3" />
  <row Id="7460" PostTypeId="2" ParentId="5436" CreationDate="2010-09-26T20:48:36.980" Score="1" ViewCount="" Body="&lt;p&gt;I use Visual Studio both in the office and at home. In the office I have a multi-monitor setup which gives me plenty of screen space, but at home I generally work on my Vaio Z (13&quot; screen).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally I find I can work almost as well on my laptop as I can on the multi-monitor setup - provided I don't try to use Visual Studio the same way. The key in both setups is to avoid having to open and close windows, or even worse move them around. In the office I keep one screen clear of pretty much everything apart from the code, and the other screen has the various windows which I keep open at the same time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously this isn't possible on the laptop but the same principles apply - keep as much of the screen space for the code as possible. Typically I have the solution explorer docked on the right and the output window at the bottom (so I can see build and test output without fiddling around) - but it's not unusual for me to unpin these too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An important skill to go alongside this (and the real reason why text editors are recommended) is to learn the keyboard shortcuts inside out. If you're using Resharper (and if you're not and are using VS then leave the room now!) print out the keyboard shortcuts and put it close to where you work. Force yourself to use the shortcuts and even if initially it seems slower and strange, you'll find all the extra windows and menus gradually get less and less important and your coding speed increasing. This isn't just because you'll be mechanically quicker, but also because you can focus better on the problem and not thinking &quot;oh where's that menu entry to change the signature of that method&quot; or whatever. This applies to both big and small screen use, but on the small screen it saves a huge amount of pain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note I also use text editors and command line tools, especially for small changes or throwaway spikes - but for .net coding Visual Studio + Resharper is a tough one to beat and there's no need to abandon them just because of the small screen.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-09-26T20:48:36.980" CommunityOwnedDate="2010-09-26T20:48:36.980" />
  <row Id="7463" PostTypeId="2" ParentId="7456" CreationDate="2010-09-26T21:11:08.347" Score="9" ViewCount="" Body="&lt;p&gt;I don't know that any particular natural language lends itself to better programming (except maybe Latin?). I do know that knowing &lt;em&gt;more than one language&lt;/em&gt; is pretty powerful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dijkstra said in one of his last interviews (as reprinted in CACM Vol. 53 No. 8, p. 44):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;There is an enormous difference&#xA;  between one who is monolingual and&#xA;  someone who at least knows a second&#xA;  language well, because it makes you&#xA;  much more conscious about language&#xA;  structure in general. You will&#xA;  discover that certain constructions in&#xA;  one language you just can't translate.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-26T21:11:08.347" />
  <row Id="7464" PostTypeId="2" ParentId="7305" CreationDate="2010-09-26T21:14:09.333" Score="2" ViewCount="" Body="&lt;p&gt;If you want to declare multiple variables but don't want to repeat the asterisk:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;template &amp;lt;typename T&amp;gt;&#xA;struct pointer_to&#xA;{&#xA;    typedef T* type;&#xA;};&#xA;&#xA;pointer_to&amp;lt;int&amp;gt;::type p1, p2, p3;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(As you can see inside the struct template, I prefer the &lt;code&gt;int* i&lt;/code&gt; style.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And here is a more general solution:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;template &amp;lt;typename T&amp;gt;&#xA;struct identity&#xA;{&#xA;    typedef T type;&#xA;};&#xA;&#xA;identity&amp;lt;int*&amp;gt;::type p1, p2, p3;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This one works with any &quot;problematic type&quot;, for example arrays and references:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;identity&amp;lt;int[10]&amp;gt;::type a1, a2, a3;&#xA;&#xA;identity&amp;lt;int&amp;amp;&amp;gt;::type r1(*p1), r2(*p2), r3(*p3);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3684" LastEditorUserId="3684" LastEditorDisplayName="" LastEditDate="2010-10-16T10:31:21.913" LastActivityDate="2010-10-16T10:31:21.913" CommentCount="4" />
  <row Id="7465" PostTypeId="2" ParentId="7456" CreationDate="2010-09-26T21:18:05.070" Score="0" ViewCount="" Body="&lt;p&gt;English is actually pretty efficient and concise. Translation into most languages will make an idea &lt;a href=&quot;http://www.globalization-group.com/edge/2010/05/text-expansion-contraction-in-translation/&quot; rel=&quot;nofollow&quot;&gt;longer to express&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also generally accepted that there are &lt;a href=&quot;http://en.wikipedia.org/wiki/Origin_of_language#cite_note-1&quot; rel=&quot;nofollow&quot;&gt;no primitive natural languages&lt;/a&gt;. All natural languages in active use have an equal level of expressiveness. That isn't to say ideas aren't formed by language, but I don't think natural language is a big influence.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-26T21:18:05.070" CommentCount="2" />
  <row Id="7467" PostTypeId="2" ParentId="7439" CreationDate="2010-09-26T21:38:04.237" Score="1" ViewCount="" Body="&lt;p&gt;Depends on the job. If it's a web developer position, then the website that best indicates the programmers capabilities is more than likely the one that &lt;em&gt;they&lt;/em&gt; created.&lt;/p&gt;&#xA;" OwnerUserId="3683" LastActivityDate="2010-09-26T21:38:04.237" />
  <row Id="7469" PostTypeId="2" ParentId="7347" CreationDate="2010-09-26T21:45:39.923" Score="2" ViewCount="" Body="&lt;p&gt;This may not apply so much for general purpose coding, but I do mostly embedded development these days.  We have a specific target processor (which is not going to get faster - it will seem quaintly obsolete by the time they retire the system in 20+ years), and very restrictive timing deadlines for much of the code.  The processor, like all processors, has certain quirks regarding which operations are fast or slow.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have a technique used to ensure we are generating the most efficient code, while maintaining readibility for the whole team.  In those places where the most natural language construct does not generate the most efficient code, we have created a macros that do ensure the optimal code is used.  If we do a follow-on project for a different processor, we can update the macros for the optimal method on that processor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a specific example, for our current processor, branches empty the pipeline, stalling the processor for 8 cycles.  The compiler takes this code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; bool isReady = (value &amp;gt; TriggerLevel);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and turns it into the assembly equivalent of &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;isReady = 0&#xA;if (value &amp;gt; TriggerLevel)&#xA;{&#xA;  isReady = 1;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This will either take 3 cycles, or 10 if it jumps over &lt;code&gt;isReady=1;&lt;/code&gt;.  But the processor has a single-cycle &lt;code&gt;max&lt;/code&gt; instruction, so it is much better to write code to generate this sequence which is guaranteed to always take 3 cycles:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;diff = value-TriggerLevel;&#xA;diff = max(diff, 0);&#xA;isReady = min(1,diff);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Obviously, the intent here is less clear than the original.   So we have created a macro, which we use whenever we want a boolean Greater-Than comparison:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#define BOOL_GT(a,b) min(max((a)-(b),0),1)&#xA;&#xA;//isReady = value &amp;gt; TriggerLevel;&#xA;isReady = BOOL_GT(value, TriggerLevel);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;We can do similar things for other comparisons.  To an outsider, the code is a bit less readable than if we only used the natural construct. However it quickly becomes clear after spending a little time working with the code, and it is much better than letting every programmer experiment with their own optimization techniques.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-26T21:45:39.923" />
  <row Id="7470" PostTypeId="2" ParentId="7427" CreationDate="2010-09-26T21:47:46.820" Score="14" ViewCount="" Body="&lt;p&gt;Unlike most &amp;#8212; but not all &amp;#8212; of the other answerers so far, I don't think this is necessarily a bad show on the lead dev's part. I am a junior dev, and I know I've made mistakes. Heck, I've been making mistakes since way before I got into programming. We're all human, we all make mistakes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if I'm told that I've made a mistake in a perfectly reasonable way &amp;#8212; i.e. constructively criticized &amp;#8212; I feel bad about my mistake. Being told that you've made a mistake is &lt;em&gt;supposed&lt;/em&gt; to feel bad. It encourages you to not make the same mistake again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've known people who use the word &quot;humiliated&quot; even when they've just been the recipient of constructive criticism. &lt;strong&gt;For that reason alone&lt;/strong&gt;, I don't think the lead dev is necessarily in the wrong in this situation. The first thing to do here is to think about what happened to cause the &quot;humiliation,&quot; and whether any of it was reasonable. If you did something wrong and/or have room for improvement, &lt;em&gt;and&lt;/em&gt; your lead didn't go out of his way to make you look bad in front of others, then you probably don't need to do anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I don't use the term &quot;humiliated&quot; that way myself, and I think most people are like me in that regard. So, another answer: if the lead &lt;em&gt;was&lt;/em&gt; out of line, I'd give him the benefit of the doubt and let him know so privately, maybe through a quick e-mail. If it becomes a repeated thing, then maybe it would be time to take it to the project manager or HR, or start printing resumes.&lt;/p&gt;&#xA;" OwnerUserId="94" LastActivityDate="2010-09-26T21:47:46.820" CommentCount="4" />
  <row Id="7471" PostTypeId="2" ParentId="4863" CreationDate="2010-09-26T22:05:39.717" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Potion&lt;/strong&gt;  by _why the lucky stiff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From &lt;a href=&quot;http://www.runciter.net/potion/&quot; rel=&quot;nofollow&quot;&gt;A Short Pamphlet:&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;An Understanding&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Potion’s mantra is: &lt;em&gt;Everything is an object. But objects aren’t everything.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Etched beneath that in faint pencil: &lt;em&gt;Oh, and everything is a function.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Special Things?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So is there anything unusual about Potion? Anything of particular interest?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Potion compiles programs down to machine code.&lt;/li&gt;&#xA;&lt;li&gt;It includes a small generational near-exact garbage collector.&lt;/li&gt;&#xA;&lt;li&gt;It is two languages: one for code, one for data.&lt;/li&gt;&#xA;&lt;li&gt;It’s written in under 10,000 lines of C.&lt;/li&gt;&#xA;&lt;li&gt;Potion is inspired by fellow languages Io, Ruby, OCaml, Lua, REBOL and C. In that  order. (Also influenced by the works of Ian Piumarta, Nicolas Cannasse and Basile Starynkevitch.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Get it at &lt;a href=&quot;http://github.com/fogus/potion&quot; rel=&quot;nofollow&quot;&gt;github&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-26T22:05:39.717" CommunityOwnedDate="2010-10-22T23:54:06.263" />
  <row Id="7472" PostTypeId="1" AcceptedAnswerId="7473" CreationDate="2010-09-26T22:06:58.847" Score="9" ViewCount="325" Body="&lt;p&gt;Let's say a large corporation is planning to replace it's existing version control system. Let's say it is only considering systems from major vendors that cost hundreds of thousands of dollars because they have &quot;support.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does version control in an enterprisey environment have to be expensive?  Does your medium/large corporation use a FOSS VCS such as SVN/Git/Mercurial?  What has the experience been?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have to think it doesn't need to be expensive since there are so many free options, and there are probably companies that provide paid support for FOSS VCS if that is the main concern.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't intend this question to compare VCS or decide which is best, rather just understand experiences with VCS in a corporate IT environment.&lt;/p&gt;&#xA;" OwnerUserId="2164" LastActivityDate="2010-12-07T23:02:33.730" Title="Do FOSS version control systems work for enterprises?" Tags="&lt;experience&gt;&lt;version-control&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="7473" PostTypeId="2" ParentId="7472" CreationDate="2010-09-26T22:26:23.713" Score="27" ViewCount="" Body="&lt;h2&gt;Yes.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;  &lt;br&gt;&#xA;In my (admittedly limited) experience, the non-FOSS solutions tend to be more &quot;enterprise-y&quot;.  That is, &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;They integrate with everything under the sun.&lt;/li&gt;&#xA;&lt;li&gt;They have more built-in controls for complex business logic (permissions, access control, approval, etc).&lt;/li&gt;&#xA;&lt;li&gt;They come with support contracts and reasonably responsive tech support lines.&lt;/li&gt;&#xA;&lt;li&gt;They're well advertised to the non-technical people making VCS decisions at a high level in big companies.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These attributes make them attractive to large companies, especially to people who don't have to use them.  The FOSS alternatives, as counters to the above:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Have plenty of third-party tools to integrate them with everything under the sun (by virtue of being more popular than proprietary alternatives), and tend to be easier to develop third-party tools for, being OS.&lt;/li&gt;&#xA;&lt;li&gt;See previous- easier to to get external tools around a clean, simple, basic tool.&lt;/li&gt;&#xA;&lt;li&gt;By virtue of being more popular, they have a wider community-based support.&lt;/li&gt;&#xA;&lt;li&gt;They don't need said advertising.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Aside from that, my experience with common free VCS (mercurial/svn/etc) has them being faster, more reliable, and easier to use.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-26T22:26:23.713" CommentCount="3" />
  <row Id="7475" PostTypeId="2" ParentId="6847" CreationDate="2010-09-26T22:45:38.150" Score="8" ViewCount="" Body="&lt;h2&gt;F#&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I'm new to the language but it's already my favorite programming language. I like functional languages and have used a few before, like Erlang, Haskell and Standard ML. F# is a new language with many modern features. Interesting features are asynchronous workflows and reactive GUI programming together with WPF. Before, functional languages hasn't had great GUI frameworks and libraries but F# has the .NET Framework, and Silverlight is also supported.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-26T22:45:38.150" CommunityOwnedDate="2010-09-26T22:45:38.150" CommentCount="1" />
  <row Id="7476" PostTypeId="2" ParentId="7456" CreationDate="2010-09-26T22:48:06.150" Score="0" ViewCount="" Body="&lt;p&gt;In my opinion, the natural language doesn't matter (or at least shouldn't matter) at all when talking about the methods or ideas you are trying to realize with your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you said yourself, when working with the code itself and writing documentations &lt;em&gt;about the code&lt;/em&gt; english is the most appropriate. But as the code itself is just a &lt;em&gt;handcraft&lt;/em&gt;, the real strength of a programmer/computer scientist lies above that with ideas, algorithms and such things - and then, the language those things are described in is completely unimportant for the actual content.&lt;/p&gt;&#xA;" OwnerUserId="2762" LastActivityDate="2010-09-26T22:48:06.150" />
  <row Id="7477" PostTypeId="2" ParentId="6847" CreationDate="2010-09-26T22:56:48.553" Score="2" ViewCount="" Body="&lt;h2&gt;ActionScript (3)&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I have started my programming experience with ActionScript 1 quite a while ago and followed the development of the language with much pleasure. In my opinion, ActionScript 3 combines many good things from different languages and forms a strict yet very flexible language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I use many other languages and each of them has some better point (this can be applied to every single programming language though), like Python with its great simplicity, I still have the most fun when working with ActionScript.&lt;/p&gt;&#xA;" OwnerUserId="2762" LastActivityDate="2010-09-26T22:56:48.553" CommunityOwnedDate="2010-09-26T22:56:48.553" CommentCount="2" />
  <row Id="7479" PostTypeId="2" ParentId="7456" CreationDate="2010-09-26T23:20:14.813" Score="0" ViewCount="" Body="&lt;p&gt;This was a topic I was very interested at some time, therefore my even greater (now) sorrow, that I cannot find the bookmarks I had back then.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did save a link I stumbled the other day onto, &lt;a href=&quot;http://gizmodo.com/5623707/do-different-languages-equal-different-realities&quot; rel=&quot;nofollow&quot;&gt;Do Different Languages Equal Different Realities?&lt;/a&gt; that tangents somewhat onto it (read the comments as well). Some are interesting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyways ...&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-26T23:20:14.813" />
  <row Id="7480" PostTypeId="2" ParentId="2715" CreationDate="2010-09-26T23:43:20.397" Score="4" ViewCount="" Body="&lt;p&gt;Nearly all the responses here are saying some variation on &quot;Whatever you do, stick with either one or two&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I thought about it for a moment, and had to admit that I just don't see it as that important. Can anyone honestly tell me that the following is hard to follow?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int foo(int a, Bar b) {&#xA;    int c = 0;&#xA;    while(a != c)&#xA;    {&#xA;        if(b.value[a] == c) {&#xA;            c = CONST_A;&#xA;        }&#xA;        c++;&#xA;    }&#xA;    return c;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I'm not sure about anyone else...  but I have absolutely zero problems mentally switching back and forth between styles. It did take me a few moments to figure out what the code did, but that's the result of me just randomly typing C-like syntax. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my not-so-humble opinion, opening braces are almost completely irrelevant to code readability. There are a few corner cases listed above where one style or the other makes a difference, but for the most part, judicious use of blank lines cleans that up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FWIW, our coding styles at work use a slightly more structured form 1 and a modified form 3. (C++)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;            // blank line is required here&#xA;if (x) {&#xA;            //This blank line is required&#xA;   y = z;&#xA;}&#xA;            // blank line is required here too, unless this line is only another '}'&#xA;&#xA;if (x) y = z; //allowed&#xA;&#xA;if (x)&#xA;    y = z;  // forbidden&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I'm curious if those who strongly prefer form 2 would find this version of form 1 better, just because the blank line gives a stronger visual seperation.&lt;/p&gt;&#xA;" OwnerUserId="3645" LastActivityDate="2010-09-26T23:43:20.397" CommunityOwnedDate="2010-11-02T20:52:36.780" CommentCount="1" />
  <row Id="7481" PostTypeId="2" ParentId="7456" CreationDate="2010-09-27T00:06:35.577" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Turkish_language&quot; rel=&quot;nofollow&quot;&gt;Turkish&lt;/a&gt; is a very interesting language as it has strict rules without exceptions (that i am aware of), is nearly perfectly redundant-free, has no grammatical gender, and on word can express as much as a sentences in english.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In the past&#xA;  &quot;Çekoslovakyalılaştıramadıklarımızdan&#xA;  mısınız?&quot; which means &quot;Are you one of&#xA;  those people whom we couldn't make&#xA;  resemble from Czechoslovakia?&quot; was&#xA;  very popular and accepted as the&#xA;  longest word in Turkish. However, the&#xA;  question suffixes (mısınız in this&#xA;  case) are written separately, so&#xA;  though it is one word, it seems like&#xA;  two words when the word is written.&#xA;  Also, longer versions of this word&#xA;  could be made easily, such as&#xA;  &quot;Çekoslovakyalılaştırabildiklerimizden&#xA;  miydiniz?&quot;. For these reasons, the&#xA;  word lost its popularity, but it is&#xA;  still a popular tongue-twister in&#xA;  Turkey.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;talking in turkish makes me the think about what i want to achieve, what information I want to transmit, and less about what words to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;edit&lt;/strong&gt;&lt;br&gt;&#xA;Of course Turkish has words to represent the biological gender. But it doesn't have separation into he/she/it — in Turkish &quot;o&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or in Spanish you would say &quot;profesor/profesora&quot; and in German &quot;Lehrer/Lehrerin&quot;. In turkish you have to use extra words to indicate the gender — similar to english.&lt;br&gt;&#xA;In turkish teacher is öğretmen. To point out a female teacher you'd say &quot;kadın öğretmen&quot; — woman teacher. But despite of german, where — if not femalelized by adding an &quot;-in&quot; — the default is male, öğretmen has no gender, as there isn't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thing that isn't available in Turkish are articles like &quot;el/la&quot;, &quot;the&quot;, &quot;der/die/das&quot; — as it usually is just information that is already available by the context.&lt;br&gt;&#xA;But there are words to express &quot;this&quot;, &quot;este/esta&quot;, &quot;diese/dieses/diese&quot;, for example &quot;bu&quot;.&lt;br&gt;&#xA;This is extra information, as it is pointing on a certain object.&lt;/p&gt;&#xA;" OwnerUserId="2353" LastEditorUserId="2353" LastEditorDisplayName="" LastEditDate="2010-09-27T12:25:57.310" LastActivityDate="2010-09-27T12:25:57.310" CommentCount="4" />
  <row Id="7482" PostTypeId="1" CreationDate="2010-09-27T00:34:14.303" Score="22" ViewCount="618" Body="&lt;p&gt;As per &lt;a href=&quot;http://programmers.stackexchange.com/questions/6929/how-do-you-decide-what-to-work-on-in-your-own-time&quot;&gt;this&lt;/a&gt; question: I decided to implement the BitTorrent spec to make my own client/tracker.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I was going through the spec, I was about 70% done implementing the BEncoding when I found a link to an implementation of BEncoding in C# written by someone else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Normally, if I were working on production code, I'd use it as a reference to check my own work against, and a baseline to write some tests to run my code against, but I found myself thinking &quot;I'm making this, it's a for-fun project with no deadlines; I should really implement it myself - I could learn a lot&quot; but some voice in my head was saying &quot;Why bother re-inventing the wheel? Take the code, work it so that it's you're style/naming convention and you're done.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I'm a bit conflicted. I ended up doing the latter, and some parts of it I found better than what I had written, but I almost feel like I 'cheated'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's your take? Is it cheating myself? Perfectly normal? A missed opportunity to learn on my own? A good opportunity to have learned from someone else's example?&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-11T03:23:41.917" Title="What's your view on using other people's code?" Tags="&lt;code-reuse&gt;&lt;personal-project&gt;&lt;programming&gt;" AnswerCount="9" CommentCount="3" FavoriteCount="3" />
  <row Id="7483" PostTypeId="2" ParentId="7482" CreationDate="2010-09-27T01:05:53.960" Score="9" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Copy from one, it's plagiarism; copy from two, it's research.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;A good listener is not only popular everywhere, but after a while he gets to know something.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, copy all you want, but learn something from it as well. No great researcher/scientist/engineer ever got anywhere by relying on his own work only.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-27T01:05:53.960" />
  <row Id="7484" PostTypeId="2" ParentId="7482" CreationDate="2010-09-27T01:12:36.287" Score="4" ViewCount="" Body="&lt;p&gt;In that situation it really depends on how &lt;em&gt;you&lt;/em&gt; feel about it. I went through a couple things and made them Markdown compliant. Did I re-write the markdown parser in PHP? Nope, borrowed someone else's. I also added PDF conversions. Did I write my own PDF converter? One look at Zend_PDF documentation made me want to run screaming to the hills, so I will confess again to using someone else's code. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;If the expectation is a learning process I would use it as a guide. Write your own, and then compare. Use the comparison to improve your own code. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-11T03:23:04.040" LastActivityDate="2010-12-11T03:23:04.040" />
  <row Id="7485" PostTypeId="2" ParentId="2804" CreationDate="2010-09-27T01:16:49.053" Score="3" ViewCount="" Body="&lt;p&gt;I can't force myselt to start writing in a new block if it is &lt;strong&gt;not&lt;/strong&gt; surrounded with braces (or &lt;code&gt;end&lt;/code&gt; keyword is missing if I'm coding in Ruby). For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;def foo(bar)&#xA;  # I'm feeling &quot;insecure&quot; here&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;but&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;def foo(bar)&#xA;  # Now everything is OK!&#xA;end&#xA;&lt;/pre&gt;&#xA;" OwnerUserId="343" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2010-09-27T01:40:41.470" LastActivityDate="2010-09-27T01:40:41.470" CommunityOwnedDate="2011-03-15T08:09:28.653" CommentCount="2" />
  <row Id="7487" PostTypeId="2" ParentId="7482" CreationDate="2010-09-27T01:18:36.337" Score="19" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;If I have seen further it is by standing on the shoulders of giants.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Isaac Newton &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It is not cheating if the code is open source and you've taken the time to understand it. Now obviously this isn't always possible due to time constraints but try and always have high level overview of the code you are using. Always remember that C was derived from B.&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-09-27T01:18:36.337" CommentCount="0" />
  <row Id="7488" PostTypeId="2" ParentId="7383" CreationDate="2010-09-27T01:40:11.840" Score="1" ViewCount="" Body="&lt;p&gt;As others have said, the value of school should not be &lt;em&gt;what&lt;/em&gt; you learn.  It should be that you learn &lt;em&gt;how&lt;/em&gt; to learn.   It's the problem solving skills, the ability to decompose and analyze a problem, to come up with an approach for solving it - those are the skills you should be mastering in school. &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-27T01:40:11.840" />
  <row Id="7489" PostTypeId="2" ParentId="1785" CreationDate="2010-09-27T01:59:33.433" Score="2" ViewCount="" Body="&lt;p&gt;Order of execution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'd be amazed, when talking to programmers vs the people who've never seen or touched code or the pretend programmers*, the thing they don't get is the order of execution. If you meet someone who can't pick up on the control structures, get this idea in their head first. You'll find that they learn faster after that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*yes, those people who are able to get jobs as programmers, but when you ask them the simplest technical question they go brain fart.. I think we've all met one of those.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-27T01:59:33.433" CommunityOwnedDate="2010-09-27T01:59:33.433" />
  <row Id="7490" PostTypeId="2" ParentId="7482" CreationDate="2010-09-27T02:22:47.377" Score="2" ViewCount="" Body="&lt;p&gt;well here's my 2 cents ... &#xA;Why do colleges insist that students write their own hashtables, linklists, arrays, etc. instead of allowing them to use existing libraries? &#xA;1) so that they'll understand the underlying concepts of those data structures ... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, as a professional developer, i'm all for not reinventing the wheel, unless you're learning something new, or improving the current &quot;wheel&quot;. I'm all for learning from other people's code because sometimes i don't have time to write a new library, or sometimes i just need a functional module without knowing its inner working ... like i drive a car without really understanding all the machinery ... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, for personal enrichment - well it's totally up to you :P.&#xA;Learn as much as you can while not reinventing the wheel would be a good principal. &#xA;Or ... come up with something that replaces the wheel ... &lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-09-27T02:22:47.377" CommentCount="1" />
  <row Id="7491" PostTypeId="2" ParentId="1785" CreationDate="2010-09-27T03:08:00.977" Score="0" ViewCount="" Body="&lt;p&gt;Program with maintainability in mind.&lt;/p&gt;&#xA;" OwnerUserId="1635" LastActivityDate="2010-09-27T03:08:00.977" CommunityOwnedDate="2010-09-27T03:08:00.977" />
  <row Id="7493" PostTypeId="2" ParentId="567" CreationDate="2010-09-27T03:24:46.550" Score="0" ViewCount="" Body="&lt;p&gt;Declarative programming. Many things in WCF are a decent example. Also, with AOP you can (once the aspects/advices are created) make use of a lot of declarative style.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As per comment:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In WCF, when defining a Service Contract you attribute the class and all of its methods. For instance:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;[ServiceContract(SessionMode=SessionMode.Required)]&#xA;public interface IContractName&#xA;{&#xA;    [OperationContract(IsOneWay=true, IsInitiating=true, IsTerminating=true)]&#xA;    ReturnType MethodName(Param paramName);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The attributes on the class and on the method signature define &lt;strong&gt;behaviour&lt;/strong&gt; that gets applied to that class and to that method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Likewise, with AOP, you define behaviour within aspects/advices, and you can then declaratively apply that behaviour to methods elsewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's very empowering to develop that way and really is one of the best examples of code-reuse I can think of.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-09-27T16:20:43.740" LastActivityDate="2010-09-27T16:20:43.740" CommentCount="2" />
  <row Id="7495" PostTypeId="1" CreationDate="2010-09-27T04:34:35.673" Score="11" ViewCount="573" Body="&lt;p&gt;How important, if at all, is what school you go to towards your job prospects coming out of college?  That is, how much difference is there between how a graduate of MIT/Stanford/etc treated vs RIT vs Monroe Community College vs Joe's Discount Diploma shop?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm asking specifically outside of the education itself, and more towards the perceived value of your degree to prospective employers.  What do you think?&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2011-01-28T18:30:15.247" Title="How important is a big-name school for fresh grads?" Tags="&lt;career&gt;&lt;school&gt;" AnswerCount="10" CommentCount="1" />
  <row Id="7496" PostTypeId="2" ParentId="2715" CreationDate="2010-09-27T04:43:39.903" Score="3" ViewCount="" Body="&lt;p&gt;The cardinal rules are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Follow the project's existing coding standard.&lt;/li&gt;&#xA;&lt;li&gt;If there is no coding standard and you are editing an existing code-base owned by someone else - be consistent with the style of the existing code, no matter how much you like / dislike it.&lt;/li&gt;&#xA;&lt;li&gt;If you are working on a green-field project - discuss with other team members, and come to a consensus on a formal or informal coding standard.&lt;/li&gt;&#xA;&lt;li&gt;If you are working on a green-field project as the sole developer - make up your own mind, and then be ruthlessly consistent.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Even if you have no external constraints on you, it is (IMO) best to look for an existing (widely used) coding standard or style guideline, and try and follow that.  If you roll your own style, there's a good chance that you will come to regret it in a few years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, a style that is implemented / implementable using existing style checkers and code formatters is better than one that needs to be &quot;enforced&quot; manually.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-09-27T04:43:39.903" CommunityOwnedDate="2010-11-02T20:52:36.780" CommentCount="1" />
  <row Id="7497" PostTypeId="2" ParentId="6847" CreationDate="2010-09-27T04:49:28.177" Score="13" ViewCount="" Body="&lt;h2&gt;PHP&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;It's a love/hate relationship. Overall PHP is loosly typed, quick and dirty language.  I like it because it's quick to learn, easy to put something out, and if a decent framework or coding convention is used it can be easy enough to maintain.  Plus PHP web servers are cheap.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/2846/which-programming-language-do-you-really-hate/2851#2851&quot;&gt;PHP is also widly hated&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-09-27T04:49:28.177" CommunityOwnedDate="2010-09-27T04:49:28.177" CommentCount="2" />
  <row Id="7498" PostTypeId="2" ParentId="7188" CreationDate="2010-09-27T05:04:34.917" Score="0" ViewCount="" Body="&lt;p&gt;Thinking in Java/C++&lt;/p&gt;&#xA;" LastActivityDate="2010-09-27T05:04:34.917" CommunityOwnedDate="2011-02-10T17:23:39.897" />
  <row Id="7499" PostTypeId="2" ParentId="7495" CreationDate="2010-09-27T05:17:53.673" Score="3" ViewCount="" Body="&lt;p&gt;I can't speak for the industry as a whole, but I know that at my current position and the one previously, I was never a member of an interview team that compared applicants based on the school they graduated from.  I have worked with people without degrees that felt they had hit glass ceilings because of it, but never worked with anyone who felt that way because of their alma mater.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It should always come down to experience, skills (both interpersonal and technical), and experience. Yes, I know I listed experience twice.  If you walk out of college with a degree alone, and are competing with people who have the same degree and 2 failed start-ups, you will loose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is, however, still something to say about the quality of &quot;people&quot; that you meet and interact with in the larger name schools.  It is somewhat a self fulfilling prophecy that people from big name schools are more successful because their peers are more successful.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Larger universities also tend to have more opportunities for students to gain access to internships simply because they graduate larger classes, and it is much more cost effective to interview 150 rather than 15 potential interns on a visit.&lt;/p&gt;&#xA;" OwnerUserId="1609" LastActivityDate="2010-09-27T05:17:53.673" />
  <row Id="7500" PostTypeId="2" ParentId="848" CreationDate="2010-09-27T05:28:50.873" Score="4" ViewCount="" Body="&lt;p&gt;Computer Science isn't.  There are MANY who would argue that there is no science at all in computer science and it is an ART.  Knuth defines &lt;em&gt;The Art of Computer Programming&lt;/em&gt;  clearly not as much a science, though he clearly defines a systematic body of knowledge of computers (well...maybe just programming).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/JXxLo.jpg&quot; alt=&quot;Knuth&quot;&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Against expectation, colleges may place more applicable computer classes in their arts program and more theory in sciences.  Fundamentally, I tend towards this field as being in arts, yet glad I have a BS in it.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-27T05:28:50.873" CommentCount="2" />
  <row Id="7501" PostTypeId="2" ParentId="7426" CreationDate="2010-09-27T05:33:30.630" Score="0" ViewCount="" Body="&lt;p&gt;Why not learn something in CMS ? like drupal , joomla&lt;/p&gt;&#xA;" OwnerUserId="1485" LastActivityDate="2010-09-27T05:33:30.630" />
  <row Id="7502" PostTypeId="1" CreationDate="2010-09-27T05:46:45.037" Score="3" ViewCount="95" Body="&lt;p&gt;I have the &quot;user's side&quot; of the story, I think they want it better if it's on Spanish. But, what about the programmers? Do you make your programs multi-language? Why? Why not? &#xA;Who translate your software? Are you ok with paying somebody to translate your app or you prefer doing it yourselves? Is the benefit bigger than the costs?&lt;/p&gt;&#xA;" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-10-03T02:10:11.187" LastActivityDate="2010-10-03T17:13:59.340" Title="Is it worth it to translate an Android app into Spanish and other languages?" Tags="&lt;languages&gt;" AnswerCount="2" />
  <row Id="7503" PostTypeId="2" ParentId="7495" CreationDate="2010-09-27T05:55:58.073" Score="2" ViewCount="" Body="&lt;p&gt;It does make a difference, but even if you've gone to &quot;Joe's Discount Diploma Shop&quot;, you can still put yourself above the MIT graduate by having an outstanding extra-curricular story. That is, if you've participated in projects outside of your degree, been an active contributor to open source software, even written programs on your own time (I used to write computer games in my university days) then you're going to look a lot better than someone who graduated from MIT but never did any work outside of what his degree required.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's hard to answer your question without more context, but I would say that if you have the opportunity to go to a good college, then definitely take it. But where ever you go, don't just try to cruise through doing the minimum work possible and expect the name of your alma mater to carry you.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-09-27T05:55:58.073" />
  <row Id="7505" PostTypeId="1" AcceptedAnswerId="7533" CreationDate="2010-09-27T06:17:36.900" Score="4" ViewCount="149" Body="&lt;p&gt;I've been handed the ER diagram for a quite complex database. &#xA;Complex to me at least, 849 tables. One of the architects says to understand the code, you need to understand the database and relationships.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I am basically a Java programmer hence not too familiar with this&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do I start? Should I start from something basic like USER or ORDER and see which relationships they have with other tables around them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any tips or tutorials would help a lot&lt;/p&gt;&#xA;" OwnerUserId="3491" LastActivityDate="2010-09-27T09:31:50.567" Title="How to read and understand ER diagrams" Tags="&lt;recommendations&gt;&lt;database-development&gt;" AnswerCount="1" />
  <row Id="7506" PostTypeId="2" ParentId="7495" CreationDate="2010-09-27T06:18:43.723" Score="7" ViewCount="" Body="&lt;p&gt;If you're heading for a Ph.D. or a research career, then getting to know influential researchers and the industry leaders they often work with is valuable.  For that, you want to be at the top research schools.  The chief value of big-name schools is not strictly the quality of the education, it's the network of contacts you make while you're there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't mean to say the education is poor -- obviously CMU and MIT and Stanford are top schools.  But in terms of bang for the buck, their worth diminishes, because you can get a great technology education at many other places for a fraction of the cost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, the importance of an education from a top school is not as great if you're just getting a Bachelor's degree.  You do need to be knowledgeable, but if you want a job out of school then your best method of being an attractive hire is to develop your complementary skills that make you the type of person who is &lt;a href=&quot;http://www.joelonsoftware.com/items/2007/06/05.html&quot; rel=&quot;nofollow&quot;&gt;Smart and Gets Things Done&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got a Bachelor's degree from the University of California, Santa Cruz.  UCSC's &lt;a href=&quot;http://www.soe.ucsc.edu/&quot; rel=&quot;nofollow&quot;&gt;Jack Baskin School of Engineering&lt;/a&gt; actually &lt;a href=&quot;http://www.soe.ucsc.edu/news/article?ID=1870&quot; rel=&quot;nofollow&quot;&gt;ranks as one of the top in the nation&lt;/a&gt;, if you measure by average number of citations per researcher.  I've never had anyone turn up their nose at my education, or failed to get a job based on my qualifications.&lt;/p&gt;&#xA;" OwnerUserId="471" LastEditorUserId="471" LastEditorDisplayName="" LastEditDate="2010-10-11T17:11:19.533" LastActivityDate="2010-10-11T17:11:19.533" CommentCount="2" />
  <row Id="7507" PostTypeId="2" ParentId="7472" CreationDate="2010-09-27T06:24:30.123" Score="6" ViewCount="" Body="&lt;p&gt;I agree with @Fishtoaster in that FOSS version control have all of the features (or can be integrated with other FOSS software that provides the features) which even the largest &quot;enterprise&quot; needs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, in my experience, many decisions in enterprises are not made by people who are technically knowledgable to &lt;em&gt;make&lt;/em&gt; that decision. That is, the people who are authorised to make purchases in an enterprise are directly targetted by the sales department of &lt;em&gt;other&lt;/em&gt; enterprises to buy their software. FOSS doesn't even get a look in because there's nobody selling &lt;em&gt;to&lt;/em&gt; them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In one place where I've worked, we used one of those &quot;enterprise&quot; version control solutions. It was slow (it literally took &lt;strong&gt;more than an hour&lt;/strong&gt; to do a complete &quot;check out&quot; of the latest version of the code!) and buggy and everybody complained about it. Many developers would actually do the checkout (taking, as I said, &lt;strong&gt;more than an hour&lt;/strong&gt;) then set up a local SVN or Mercurial repository on top of that checkout, do their coding against that repository and only check it back into the main repository when required.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We were lucky in that we were allowed to install whatever software we needed. But the fact that people subverted the &quot;process&quot; like this tells me that there was something seriously wrong with the process...&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-09-27T06:24:30.123" CommentCount="1" />
  <row Id="7508" PostTypeId="2" ParentId="1" CreationDate="2010-09-27T06:38:00.463" Score="8" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;// Dear me in the future. Please, resolve this problem.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// You think this code was written by somebody else. &#xA;// No, it wasn't. You ([some name]) did it.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1483" LastEditorUserId="1483" LastEditorDisplayName="" LastEditDate="2010-09-27T07:37:43.573" LastActivityDate="2010-09-27T07:37:43.573" CommunityOwnedDate="2011-01-31T09:04:54.130" CommentCount="1" />
  <row Id="7509" PostTypeId="2" ParentId="7495" CreationDate="2010-09-27T07:27:56.423" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;The best thing in the world is to go&#xA;  to Harvard for a year and drop out&#xA;  because everyone knows you were smart&#xA;  enough to get in&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Michael Arrington of TechCrunch quoted in an article -  '&lt;a href=&quot;http://www.aggregotutto.com/2010/09/26/students-you-are-probably-not-mark-zuckerberg-so-stay-in-school/&quot; rel=&quot;nofollow&quot;&gt;You Are Probably Not Mark Zuckerberg, So Stay In School&lt;/a&gt;' - that argues the opposite.&lt;/p&gt;&#xA;" OwnerUserId="2816" LastActivityDate="2010-09-27T07:27:56.423" CommentCount="1" />
  <row Id="7510" PostTypeId="2" ParentId="1" CreationDate="2010-09-27T07:42:40.707" Score="2" ViewCount="" Body="&lt;p&gt;Reading this I am reminded on something that I first read (from a longer list, preserved by taking photocopies) some decades back:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Real programmers don't write comments - if it was hard to write it should be hard to read&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;A rather older smell methinks.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-09-27T07:42:40.707" CommunityOwnedDate="2011-01-31T09:04:54.130" CommentCount="1" />
  <row Id="7511" PostTypeId="2" ParentId="7502" CreationDate="2010-09-27T07:52:32.560" Score="7" ViewCount="" Body="&lt;p&gt;There's really only one question you need to answer:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is there a demand for the application to be translated into one (or more) other language?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If the demand is there then you need to look into translation. There may be political (both with a lower case &quot;p&quot; and upper case &quot;P&quot; - bilingual countries like Canada spring to mind), social or ethical reasons that need to be considered as well as the cost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to the methodology - when I worked on software that was translated we got our German and French distributors to do the translation. The benefit of this is that you are using someone who knows the product and will (hopefully) choose the most appropriate translation when more than one is available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't have distributors familiar with the language then there are services available that will do the translation for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Failing that there's always Google Translate :)&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-10-02T22:58:59.273" LastActivityDate="2010-10-02T22:58:59.273" />
  <row Id="7513" PostTypeId="2" ParentId="1785" CreationDate="2010-09-27T07:55:34.897" Score="0" ViewCount="" Body="&lt;p&gt;There are some very good suggestions here, but I'm surprised no one has mentioned the excellent series of articles by Ulrich Drepper: &lt;a href=&quot;http://magazine.redhat.com/2007/10/26/ulrich-drepper-memory-article-series/&quot; rel=&quot;nofollow&quot;&gt;What every programmer should know about memory&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3706" LastActivityDate="2010-09-27T07:55:34.897" CommunityOwnedDate="2010-09-27T07:55:34.897" />
  <row Id="7514" PostTypeId="2" ParentId="7472" CreationDate="2010-09-27T07:59:42.137" Score="4" ViewCount="" Body="&lt;p&gt;The main difference between FOSS and commercial software is that the former is based on pride while the latter is based on income.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask yourself: How happy are the people who wrote software XYZ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's FOSS, they probably were very happy because otherwise, why would they bother to waste their time on it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's commercial software, you can't really tell. Chances are that the people got paid to write something they don't really like.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So FOSS software gets more love. That doesn't necessarily mean it's better but if it's a successful FOSS project, you can be pretty sure it is better than anything you can buy (&quot;Money can't buy happiness&quot;, remember?).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can you tell that it's successful? Check the website. If the website is current and looks nice, it's successful enough to waste time on the website (FOSS developers are hard core; they don't want to waste time on anything that doesn't scratch an itch).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That leaves the most important point: Support. Companies don't buy software to legally use it but to get support in case something goes wrong (thinking along the lines: If 100 people can't work and I get a fix within a day, that's worth $100,000). Luckily, you can buy support for FOSS software (just look at the website for pointers or ask on the mailing list).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So yes, if you do an evaluation and the FOSS meets your needs, there is no reason to prefer commercial software anymore.&lt;/p&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-09-27T07:59:42.137" />
  <row Id="7515" PostTypeId="2" ParentId="39" CreationDate="2010-09-27T07:59:55.677" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Let me re-assert that the question of whether there are limitations in principle of what problems man can make machines solve for him as compared to his own ability to solve problems, really is a technical question in recursive function theory.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;— John McCarthy&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3709" LastActivityDate="2010-09-27T07:59:55.677" CommunityOwnedDate="2010-09-27T07:59:55.677" />
  <row Id="7516" PostTypeId="1" AcceptedAnswerId="7520" CreationDate="2010-09-27T08:00:24.713" Score="15" ViewCount="904" Body="&lt;p&gt;If I would like to quickly set up a modern website, what programming language + framework has best support for this? E.g. short and easy to understand code for a beginner and a framework with support for modern features. Disregard my current knowledge, I'm more interested in the capacity of web programming languages and frameworks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some requirements:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Readable URIs: &lt;a href=&quot;http://example.com/category/id/page-title&quot; rel=&quot;nofollow&quot;&gt;http://example.com/category/id/page-title&lt;/a&gt; similar to the urls here on Programmers.&lt;/li&gt;&#xA;&lt;li&gt;ORM. A framework that has good database support and provide ORM or maybe a NoSQL-database.&lt;/li&gt;&#xA;&lt;li&gt;Good support for RESTful WebServices.&lt;/li&gt;&#xA;&lt;li&gt;Good support for testing and unit testing, to make sure the site is working as planned.&lt;/li&gt;&#xA;&lt;li&gt;Preferably a site that is ready to scale with an increasing number of users.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2011-02-28T16:26:57.703" LastActivityDate="2011-02-28T16:29:53.470" Title="What programming language and framework has best support for agile web development?" Tags="&lt;web-development&gt;&lt;agile&gt;&lt;frameworks&gt;" AnswerCount="12" CommentCount="4" FavoriteCount="5" />
  <row Id="7517" PostTypeId="2" ParentId="7426" CreationDate="2010-09-27T08:04:19.463" Score="-1" ViewCount="" Body="&lt;p&gt;As with others, I'd also suggest JQuery. That will enable the clicking on item images to bring up form fields to edit title/description/price, etc. This (loading &amp;amp; saving item info) would be done via AJAX/JSON (or, if you prefer, XML - but it's more bulky) written using your new JQuery knowledge, and some PHP server-side.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And authentication can be done many ways, but if you learn JQuery you can use it to write some AJAX/JSON to do your authentication slick...ie. w/o page re-loads.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Granted, anything done with JQuery can be done with pure JavaScript - JQuery is just a nice API (big community, robust, etc.) to speed up dev. Time invested in learning it, imo, will pay off mad dividends in the future, in the way of saved dev time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(aside: In your &quot;Update&quot;, #2, did you mean: &quot;ability to show a product and fill in title and description by &lt;i&gt;CLICKING&lt;/i&gt; on product picture&quot;?)&lt;/p&gt;&#xA;" OwnerUserId="2198" LastActivityDate="2010-09-27T08:04:19.463" CommentCount="2" />
  <row Id="7518" PostTypeId="2" ParentId="5384" CreationDate="2010-09-27T08:08:26.917" Score="0" ViewCount="" Body="&lt;p&gt;My conditions are: First half hour is free, after that, it's $100/hr.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reason: I like to help people but I don't like it when I'm abused as free support. So if it really is &quot;just a simple tiny thing&quot;, then no problem, can do. But often &quot;simply tiny problem&quot; stands for &quot;I have no idea what I'm talking about; just fix it!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As soon as money is involved, they stop and start thinking if it's really worth it.&lt;/p&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-09-27T08:08:26.917" CommunityOwnedDate="2010-09-27T08:08:26.917" />
  <row Id="7520" PostTypeId="2" ParentId="7516" CreationDate="2010-09-27T08:16:34.460" Score="13" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rubyonrails.org/&quot; rel=&quot;nofollow&quot;&gt;Rails&lt;/a&gt; (obviously!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has Restful URIS, ORM with Active Record, Webservices - easy, unit tests come as standard. Can scale just fine (v3 is better at this).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And Ruby is a real beginner friendly language, although the meta-programming aspect of it that can trip beginners up. Worth being wary of that.&lt;/p&gt;&#xA;" OwnerUserId="1724" LastActivityDate="2010-09-27T08:16:34.460" />
  <row Id="7521" PostTypeId="2" ParentId="6956" CreationDate="2010-09-27T08:18:55.830" Score="3" ViewCount="" Body="&lt;p&gt;I find &lt;a href=&quot;http://kohanaframework.org/&quot; rel=&quot;nofollow&quot;&gt;Kohana&lt;/a&gt; quite easy to learn, but I haven't used it much and have very little expericence with it, so far.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-27T08:18:55.830" CommentCount="0" />
  <row Id="7522" PostTypeId="2" ParentId="238" CreationDate="2010-09-27T08:22:48.107" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=u404SLJj7ig&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Code Rush&lt;/strong&gt;&lt;/a&gt;&#xA;Documentary from 1998 about the release of the Mozilla source code. Very interesting look behind the scenes of what went on at Netscape during the beginnings of one of the most famous open source projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers.&#xA;Jas.&lt;/p&gt;&#xA;" OwnerUserId="3668" LastActivityDate="2010-09-27T08:22:48.107" CommentCount="6" />
  <row Id="7523" PostTypeId="2" ParentId="7516" CreationDate="2010-09-27T08:27:20.373" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.seaside.st/&quot; rel=&quot;nofollow&quot;&gt;Seaside&lt;/a&gt; (obviously!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Smalltalk's where agile was invented. Seaside has an &lt;a href=&quot;http://book.seaside.st/book&quot; rel=&quot;nofollow&quot;&gt;excellent introductory book&lt;/a&gt;. Seaside's &lt;a href=&quot;http://www.seaside.st/about&quot; rel=&quot;nofollow&quot;&gt;sweet spot&lt;/a&gt; is complicated, highly interactive, web application design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has an extensive test suite, allows for multiple persistence frameworks (including Gemstone, probably the biggest OODB around), and is &lt;a href=&quot;http://stackoverflow.com/questions/1451989/does-seaside-scale&quot;&gt;scales easily&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Hosting:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For non-commercial stuff, there's &lt;a href=&quot;http://www.seasidehosting.st/&quot; rel=&quot;nofollow&quot;&gt;Seaside-Hosting&lt;/a&gt;. Otherwise, &lt;a href=&quot;http://onsmalltalk.com/&quot; rel=&quot;nofollow&quot;&gt;Ramon Leon's blog&lt;/a&gt; has loads of posts on hosting Seaside.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-12-08T10:50:42.720" LastActivityDate="2010-12-08T10:50:42.720" CommentCount="1" />
  <row Id="7524" PostTypeId="2" ParentId="1785" CreationDate="2010-09-27T08:32:21.017" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Hello world&quot; is not a complete application, as there is no demonstrated / programmatic assertion that the output is in fact &quot;Hello world&quot;. Code is not complete until it has been unit tested.&lt;/p&gt;&#xA;" OwnerUserId="3714" LastActivityDate="2010-09-27T08:32:21.017" CommunityOwnedDate="2010-09-27T08:32:21.017" />
  <row Id="7525" PostTypeId="2" ParentId="6956" CreationDate="2010-09-27T08:36:33.493" Score="2" ViewCount="" Body="&lt;p&gt;The hardest part of learning a framework is learning the conventions and methodology involved.&lt;br&gt;&#xA;&lt;a href=&quot;http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller&quot; rel=&quot;nofollow&quot;&gt;MVC&lt;/a&gt;. &lt;a href=&quot;http://en.wikipedia.org/wiki/HMVC&quot; rel=&quot;nofollow&quot;&gt;HMVC&lt;/a&gt; (Kohana uses this), &lt;a href=&quot;http://en.wikipedia.org/wiki/Object-oriented_programming&quot; rel=&quot;nofollow&quot;&gt;OOP&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://cakephp.org/&quot; rel=&quot;nofollow&quot;&gt;CakePHP&lt;/a&gt; was fairly easy to learn once you get your head around the conventions.  The documementation is also fairly decent but the best way to learn it is to look at the source code.&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-09-27T08:36:33.493" />
  <row Id="7526" PostTypeId="2" ParentId="238" CreationDate="2010-09-27T08:41:59.737" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.pbs.org/nerds/&quot; rel=&quot;nofollow&quot;&gt;Triumph of the Nerds&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From &lt;a href=&quot;http://en.wikipedia.org/wiki/Triumph_of_the_Nerds&quot; rel=&quot;nofollow&quot;&gt;Wikipedia&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Triumph of the Nerds: The Rise of Accidental Empires (1996) is a documentary film written and hosted by Robert X. Cringely and produced for British television by Oregon Public Broadcasting. The title refers to the 1984 film, Revenge of the Nerds, and the documentary itself is based on Cringely's book Accidental Empires. The three-part film first premiered on PBS in June 1996.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="14" LastEditorUserId="14" LastEditorDisplayName="" LastEditDate="2010-09-27T18:40:35.210" LastActivityDate="2010-09-27T18:40:35.210" />
  <row Id="7527" PostTypeId="2" ParentId="7516" CreationDate="2010-09-27T08:42:54.497" Score="5" ViewCount="" Body="&lt;p&gt;ASP.NET + nHibernate (obviously!)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;RESTful URIs: &lt;a href=&quot;http://example.com/category/id/page-title&quot; rel=&quot;nofollow&quot;&gt;http://example.com/category/id/page-title&lt;/a&gt; similar to the urls here on Programmers.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;programmers.stackexchange.com has been developped with ASP.NET&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;ORM. A framework that has good database support and provide ORM or maybe a NoSQL-database.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;nHibernate is probably the most powerful ORM out there for .NET&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Good support for RESTful WebServices.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You may want to use WCF.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Good support for testing and unit testing, to make sure the site is working as planned.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You have the choice between dozens of framework. Including the one included with the free version of Visual Studio.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Preferably a site that is ready to scale with an increasing number of users.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I guess stackoverflow.com is a pretty good example of scalability ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will also take advantage of the wonderful and free IDE called Visual Studio Express and the fast growing community of developers. &lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-27T10:37:08.527" LastActivityDate="2010-09-27T10:37:08.527" CommentCount="4" />
  <row Id="7528" PostTypeId="2" ParentId="39" CreationDate="2010-09-27T08:43:17.427" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Programmers are optimists by nature, they also have a keen eye for the downside. A hyperactive imagination for disaster scenarios is a professional asset; they have to think through everything that can go wrong in order to practice their craft.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- Scott Rosenberg&lt;/p&gt;&#xA;" OwnerUserId="3270" LastActivityDate="2010-09-27T08:43:17.427" CommunityOwnedDate="2010-09-27T08:43:17.427" />
  <row Id="7529" PostTypeId="2" ParentId="39" CreationDate="2010-09-27T08:43:53.517" Score="10" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Open source is free only if your time costs nothing&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Heard it from a guy I worked with. Don't know who came up with this.&lt;/p&gt;&#xA;" OwnerUserId="3624" LastEditorUserId="633" LastEditorDisplayName="" LastEditDate="2010-12-16T16:44:46.490" LastActivityDate="2010-12-16T16:44:46.490" CommunityOwnedDate="2010-09-27T08:43:53.517" CommentCount="12" />
  <row Id="7530" PostTypeId="1" AcceptedAnswerId="7544" CreationDate="2010-09-27T08:47:05.850" Score="14" ViewCount="723" Body="&lt;p&gt;There are many stories about intentionally bad code, not only on TheDailyWTF but also on SO. Typical cases include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Having a useless time-wasting construct (e.g. an empty loop counting to some huge value) so programmers can easily &quot;speed up&quot; the application by removing it when they are tasked to.&lt;/li&gt;&#xA;&lt;li&gt;Providing intentionally misleading, wrong or no documentation to generate expensive support requests.&lt;/li&gt;&#xA;&lt;li&gt;Readily generating errors, or worse, generating even though everything worked fine, locking up the application so an expensive support call is required to unlock.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These points display a more or less malicious attitude (even though sometimes by accident), especially the first point occurs rather often.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How should one deal with such constructs? Ignore the issue, or just remove the offending code? Notify their manager, or speak to the person who introduced the &quot;feature&quot;?&lt;/p&gt;&#xA;" OwnerUserId="596" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2011-02-14T14:40:30.270" LastActivityDate="2011-02-14T14:55:14.120" Title="How do you deal with intentionally bad code?" Tags="&lt;bad-code&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="2" />
  <row Id="7531" PostTypeId="2" ParentId="7530" CreationDate="2010-09-27T08:56:29.760" Score="1" ViewCount="" Body="&lt;p&gt;That attitude is the symptom of something worse.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Is management encouraging developer's competition ?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Where is the team spirit ?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Are tasks assigned by someone else than the team itself ?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In any case, removing the offending code is not enough. Complaining to his manager will certainly not help improving the team spirit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would try to speak with the person directly and try to understand why by asking many questions without judging him. The whole team has to do it without agressivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In most case, that constructive behavior put the real problem (the worse one) under light, and then you can work on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it really doesn't work. Remove that developer from the team.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-27T08:56:29.760" />
  <row Id="7532" PostTypeId="2" ParentId="7530" CreationDate="2010-09-27T09:02:35.823" Score="8" ViewCount="" Body="&lt;p&gt;Depends on the culture of the company.  More often than not, it's simply not your job to fix and clean up all bad code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From &lt;a href=&quot;http://www.codersatwork.com/&quot; rel=&quot;nofollow&quot;&gt;Coders at Work&lt;/a&gt;, Jamie Zawinski's thought on overengineering, which can also be applied in this situation:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;At the end of the day, ship the fucking thing! It’s great to rewrite your code and make it cleaner and by the third time it’ll actually be pretty. But that’s not the point—you’re not here to write code; you’re here to ship products.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;There's plenty of bad coders and code out there, and simply trying to fix them all as you come across it, at the expense of the current project/task, may simply not be worth it if the product &quot;is working&quot;.  Too often, we are all just duct-tape programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also see Joel Spolsky's post: &lt;a href=&quot;http://www.joelonsoftware.com/items/2009/09/23.html&quot; rel=&quot;nofollow&quot;&gt;The Duct Tape Programmer&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="14" LastEditorUserId="14" LastEditorDisplayName="" LastEditDate="2010-09-27T09:09:36.643" LastActivityDate="2010-09-27T09:09:36.643" CommentCount="7" />
  <row Id="7533" PostTypeId="2" ParentId="7505" CreationDate="2010-09-27T09:31:50.567" Score="3" ViewCount="" Body="&lt;p&gt;An ER Diagram is out there to visualize a design, which was made to accomplish a &lt;em&gt;certain job&lt;/em&gt;. Understand what the job is first, then ask questions to the diagram. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;How is an order stored?&quot;, &quot;How do I retrieve user information&quot;, &quot;How can I tell which user ordered a certain product between these intervals and with these options?&quot;. Such questions might help you understand the design. If there is a requirements analysis documentation, it will help you a lot with coming up with these questions. You can explore how certain requirements are handled.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suspect that a database with 849 tables is highly normalized so most of those tables might be lookup tables which does not have much effect on the relationships of the entities. Try to focus on the parent tables holding keys to those lookup tables.&lt;/p&gt;&#xA;" OwnerUserId="1721" LastActivityDate="2010-09-27T09:31:50.567" CommentCount="1" />
  <row Id="7534" PostTypeId="2" ParentId="1719" CreationDate="2010-09-27T09:42:56.400" Score="1" ViewCount="" Body="&lt;p&gt;1) Prolog: It's completely different to all the imperative languages you've been using so far, and it will change the way you think about problems&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Lisp: without it, you might as well be using Vi&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Erlang: Again, it's completely different, also, it seems quite fashionable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) Something from the Turing Tarpit (e.g. Brainfuck), and probably write a compiler or interpreter for it: I can't think of a reason to do this, but it feels like a good idea.&lt;/p&gt;&#xA;" OwnerUserId="628" LastActivityDate="2010-09-27T09:42:56.400" CommunityOwnedDate="2010-09-27T09:42:56.400" CommentCount="2" />
  <row Id="7535" PostTypeId="2" ParentId="7516" CreationDate="2010-09-27T09:58:55.453" Score="9" ViewCount="" Body="&lt;p&gt;I like &lt;a href=&quot;http://www.djangoproject.com/&quot; rel=&quot;nofollow&quot;&gt;Django&lt;/a&gt; which is a Python Web Framework.&#xA;RESTful URIs are default (also you can create any URL &amp;lt;-&gt; View Mapping you want). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has a build in ORM Mapper which allows you to to nearly everything without a single Line of SQL supporting PostgreSQL, MySQL, Oracle and SQLite (and other via 3rd party backend, see &lt;a href=&quot;http://docs.djangoproject.com/en/1.2/topics/install/#database-installation&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have easy access to &lt;a href=&quot;http://docs.djangoproject.com/en/dev/topics/cache/&quot; rel=&quot;nofollow&quot;&gt;caching&lt;/a&gt; (ie. memcached) entire pages or parts of the response, so scaling is not an issue (to a certain limit of course). And testing is also &lt;a href=&quot;http://docs.djangoproject.com/en/1.2/topics/testing/&quot; rel=&quot;nofollow&quot;&gt;build in&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Django is relatively wide used so there is a ton of community support. And while Django tries to make it easy and painless to create a webapp on a high level of abstraction it is relatively easy to dig deeper and change internals without.&lt;/p&gt;&#xA;" OwnerUserId="1402" LastActivityDate="2010-09-27T09:58:55.453" />
  <row Id="7536" PostTypeId="1" CreationDate="2010-09-27T10:02:49.717" Score="10" ViewCount="382" Body="&lt;p&gt;Thinking about &lt;a href=&quot;http://programmers.stackexchange.com/q/7305/209&quot;&gt;where we place our asterisks&lt;/a&gt;; how do those that prefer to keep the &quot;pointerness&quot; away from the type and with the identifier (&lt;em&gt;int *i&lt;/em&gt;) write code when the identifier is missing?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void f(int*); // 1&#xA;void f(int *); // 2&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The former seems much more common, no matter what your preference when with the identifier.  Is this a special case?  What makes it an exception?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the first still isn't universal, because I have seen the latter style.  Besides consistency along the lines of &quot;there's always a space with the identifier, so we have one without&quot;, are there any other reasons to prefer it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What about casts or array and function types?  How would you re-write these:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(void*)var /*or*/ (void *)var&#xA;&#xA;int[3] /*or*/ int [3]&#xA;// more relevant in C++ than C: Example&amp;lt;int[3]&amp;gt;&#xA;&#xA;void(int) /*or*/ void (int)&#xA;// more relevant in C++ than C: std::function&amp;lt;void(int)&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The latter two would rarely, if ever, be used in C, but are seen with C++ templates.&lt;/p&gt;&#xA;" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T23:28:17.680" LastActivityDate="2010-12-14T19:16:12.223" Title="If you favor &quot;T *var&quot;, do you ever write &quot;T*&quot;?" Tags="&lt;style-guide&gt;&lt;c++&gt;&lt;pointers&gt;&lt;c&gt;" AnswerCount="3" CommentCount="4" />
  <row Id="7537" PostTypeId="2" ParentId="7482" CreationDate="2010-09-27T10:15:04.663" Score="1" ViewCount="" Body="&lt;p&gt;My answer will be biased from my point for sure but using code from other people is like playing with a black box: you know the input and the output, but you don't know whats going on at all but there's something also true: you don't need to reinvent the wheel everyday&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on how it was written the third party code it can also draw a line with a warning &quot;from here we enter the domain of the unknown consequences&quot;&lt;/p&gt;&#xA;" OwnerUserId="254" LastActivityDate="2010-09-27T10:15:04.663" CommentCount="2" />
  <row Id="7538" PostTypeId="2" ParentId="7530" CreationDate="2010-09-27T10:19:32.893" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;How should one deal with such constructs? Ignore the issue, or just remove the offending code? Notify their manager, or speak to the person who introduced the &quot;feature&quot;?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Depending on the context, any one of those might be the most appropriate.  Other possibilities include, asking to transfer to a different project, getting a new job, and various acts of questionable morality and/or legality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, given that we don't know the real facts and the real people involved, there's no way that someone in the position you are describing should be paying much attention to our advice / 2 cents worth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this a real situation you are talking about, it might be worth having a quiet word with &lt;em&gt;your&lt;/em&gt; manager, asking their advice on what you should do.  If possible try to make the conversation about what &lt;em&gt;you&lt;/em&gt; can / should do, not about pointing the finger.  If possible, don't name names.  There's a fair chance that your manager already has an inkling of the problem.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the flip side is that you might be blowing this out of proportion.  Think long and hard about that before you do anything.  Think of the consequences, including the possibility that any steps you take might backfire on you ... badly.&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2011-02-14T14:30:49.223" LastActivityDate="2011-02-14T14:30:49.223" />
  <row Id="7539" PostTypeId="1" AcceptedAnswerId="7555" CreationDate="2010-09-27T10:30:43.937" Score="4" ViewCount="134" Body="&lt;p&gt;I'm writing a small database-centric application in Java Swing that will be used internally in a small company. I haven't much experience with developing production-level applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't use an ORM, just a few simple methods that run SQL queries with Java JDBC. On every method that access the database I use a &lt;code&gt;try-catch&lt;/code&gt; statement for &lt;code&gt;SQLException&lt;/code&gt; and &lt;code&gt;IOException&lt;/code&gt;. Should I do any logging here? In case I should, how much should I log? Please give me examples of good practice in this case.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-27T12:25:41.913" Title="How much logging should I do at production for SQLExcpetions?" Tags="&lt;java&gt;&lt;exceptions&gt;&lt;logging&gt;" AnswerCount="2" CommentCount="5" />
  <row Id="7540" PostTypeId="2" ParentId="4573" CreationDate="2010-09-27T10:42:06.753" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;_DERIVED_CLASS_H__ is a reserved identifier—in three(!) different ways (leading underscore at global scope, leading underscore followed by uppercase letter, adjacent underscores).  I &lt;a href=&quot;http://stackoverflow.com/questions/1744144/include-guards/1744302#1744302&quot;&gt;generate GUIDs&lt;/a&gt; (either the easy manual form or more formal auto-generated form) for include guards.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Always use &lt;em&gt;struct&lt;/em&gt; to declare classes.  Public inheritance is much more common (at least for me) than protected or private, and I like seeing the public interface first.  In template meta-programming, you might have 10-20 very short classes.  Removing all those publics adds up to significant readability improvements and slightly more consistency when declaring classes.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Zealous comment blocks (especially offset with dedicated lines) are just noise.  I do group public ctors and dtor together, however, as well as related methods and then operators.  I tend not to intersperse accessibility specifiers, having just one each of public, protected, and private; in that order.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Functions (and ctors) declarations and calls have no space before the opening paren.  But an object constructed with parameters does have a space, since it's not a function:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;T var (param, eters);&#xA;Ctor(int n) : Base(n), data (n) {}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Anything I consider obvious from a name does not need a comment.  (&quot;DoNothing&quot; is obvious enough to me.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Template argument and parameter lists have no space before the angle bracket, just as for function calls and declarations.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2010-09-27T10:42:06.753" CommentCount="5" />
  <row Id="7541" PostTypeId="2" ParentId="7539" CreationDate="2010-09-27T10:53:02.867" Score="0" ViewCount="" Body="&lt;p&gt;IMHO, here is the very minimum you should do. I assume you are using &lt;strong&gt;Log4J&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;try&#xA;{&#xA;   // open connection&#xA;&#xA;   // begin transaction&#xA;&#xA;   // my database stuff&#xA;&#xA;   // commit transaction&#xA;}&#xA;catch (SQLException ex)&#xA;{&#xA;   log.Error(&quot;An error occured while ...: &quot; + ex.Message, ex);&#xA;   // do stuff related to SQLException&#xA;&#xA;   // rollback transaction&#xA;}&#xA;catch (IOExcpetion ex)&#xA;{&#xA;   log.Error(&quot;An error occured while ...: &quot; + ex.Message, ex);&#xA;   // do stuff related to IOException&#xA;&#xA;   // rollback transaction&#xA;}&#xA;catch (Exception ex)&#xA;{&#xA;    log.Error(&quot;An error occured while ...: &quot; + ex.Message, ex);&#xA;    // manage this unhandled exception&#xA;&#xA;    // rollback transaction&#xA;}&#xA;finally&#xA;{&#xA;   // close connection&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-27T10:53:02.867" />
  <row Id="7543" PostTypeId="2" ParentId="7188" CreationDate="2010-09-27T11:13:20.087" Score="2" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.microsoft.com/learning/en/us/book.aspx?ID=6820&amp;amp;locale=en-us&quot; rel=&quot;nofollow&quot;&gt;Object Thinking&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;By David West.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I read it every time I think I need reminding what OOP is about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/ENYXE.gif&quot; alt=&quot;Object thinking cover&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-09-27T11:13:20.087" CommunityOwnedDate="2011-02-10T17:23:39.897" />
  <row Id="7544" PostTypeId="2" ParentId="7530" CreationDate="2010-09-27T11:18:44.223" Score="3" ViewCount="" Body="&lt;p&gt;Most bad code is due to a lack of understanding and the solution is education.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Intentionally&lt;/em&gt; bad code is entirely different, due to something completely unrelated to the coder's experience or the rest of the project.  As such, you have to find out why they are sabotaging the code &lt;em&gt;on purpose&lt;/em&gt; and deal with that issue.  This means, more often then not, office politics, and that's rarely a pleasant situation for anyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How I would handle the politics side depends on many (unstated above) circumstances.  How I would handle the code is to first make sure &lt;em&gt;I'm&lt;/em&gt; not the one misunderstanding—that it really is bad code—then fix the obvious deficiencies.  If reasonably possible, write tests that the bad code will fail.  Double-checking that I've understood correctly would mean talking to the person who wrote the code.  That should be done in a very nice, polite way, without assuming intent, and may help to find the underlying (political) reason needed later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Shipping is more important than ivory tower perfection, but there are two points worth addressing.  Fixing obvious deficiencies gets you 80% of the results with 20% of the effort, and that kind of &lt;a href=&quot;http://en.wikipedia.org/wiki/Pareto_principle&quot; rel=&quot;nofollow&quot;&gt;low-hanging fruit&lt;/a&gt; is seldom worth ignoring.  But more importantly, if you don't address the underlying (political) reason, it's likely more intentionally bad code will be written and cause further problems—and possibly prevent shipping.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-27T11:18:44.223" />
  <row Id="7545" PostTypeId="2" ParentId="7482" CreationDate="2010-09-27T11:31:00.890" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Whereas Newton could say, &quot;If I have seen a little farther than others, it is because I have stood on the shoulders of giants,&quot; I am forced to say, &quot;Today we stand on each other's feet.&quot; Perhaps the central problem we face in all of computer science is how we are to get to the situation where we build on top of the work of others rather than redoing so much of it in a &lt;em&gt;trivially different&lt;/em&gt; way. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;emsp; &amp;mdash; &lt;a href=&quot;http://en.wikipedia.org/wiki/Richard_Hamming&quot; rel=&quot;nofollow&quot;&gt;R.W. Hamming&lt;/a&gt;, 1968 Turing Award lecture [emphasis mine]&lt;/p&gt;&#xA;" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-11T03:23:41.917" LastActivityDate="2010-12-11T03:23:41.917" />
  <row Id="7547" PostTypeId="1" AcceptedAnswerId="7557" CreationDate="2010-09-27T11:31:51.087" Score="5" ViewCount="124" Body="&lt;p&gt;I develop a web application and we test it on browsers like Firefox and Internet Explorer. During our development we test the application on Firefox 3.5.&lt;strong&gt;2&lt;/strong&gt; and our testing team tests the same on 3.5.&lt;strong&gt;6&lt;/strong&gt; and found the UI looks good. But all of the sudden the client complains that it doesn't look good in 3.5.&lt;strong&gt;8&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do we handle these minor version issues? How can we check the browser compatibility during development and during testing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any tool to test the application on 3.5.&lt;strong&gt;X&lt;/strong&gt;, X being all the minor versions?&lt;/p&gt;&#xA;" OwnerUserId="156" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-27T11:59:52.370" LastActivityDate="2010-09-27T14:33:15.493" Title="Testing minor browser version compatibility" Tags="&lt;web-development&gt;&lt;testing&gt;&lt;web-applications&gt;&lt;browser&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="7548" PostTypeId="2" ParentId="3886" CreationDate="2010-09-27T11:32:39.163" Score="0" ViewCount="" Body="&lt;p&gt;I prefer artificial light, and it's best if it's dark or rainy outside.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Artificial light induces a working mood in me. Especially when combined with darkness outside.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When a room/office are lit entirely by natural light, and especially if it's sunny outside, it feels too much like I'm at home, on a weekend, relaxing.&lt;/p&gt;&#xA;" OwnerUserId="3278" LastActivityDate="2010-09-27T11:32:39.163" CommentCount="2" />
  <row Id="7549" PostTypeId="2" ParentId="7530" CreationDate="2010-09-27T11:33:23.267" Score="23" ViewCount="" Body="&lt;p&gt;I've never (in 20-odd years) come across intentionally bad code, but the examples you cite seem (to me at least, but IANAL) to be attempts to defraud either an employer or a customer, so you probably have a legal obligation to point it out to your manager.&lt;/p&gt;&#xA;" OwnerUserId="2180" LastActivityDate="2010-09-27T11:33:23.267" CommentCount="2" />
  <row Id="7550" PostTypeId="2" ParentId="4384" CreationDate="2010-09-27T11:42:02.343" Score="0" ViewCount="" Body="&lt;p&gt;Certainly I would consider, all my &quot;Hello World&quot; programs as most heroic programming task :) More than any great technical accomplishment the happiness that gets generated when I see &quot;Hello World&quot; is tremendous :)&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-09-27T11:42:02.343" />
  <row Id="7551" PostTypeId="1" AcceptedAnswerId="7552" CreationDate="2010-09-27T12:15:55.180" Score="17" ViewCount="1008" Body="&lt;p&gt;Why are there so many programming languages?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And what prompts someone to create a programming languages in spite of the fact that other languages already exist?&lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2011-02-14T18:01:54.383" Title="Why are there so many programming languages? Why are new languages still being made?" Tags="&lt;programming-languages&gt;" AnswerCount="14" FavoriteCount="1" />
  <row Id="7552" PostTypeId="2" ParentId="7551" CreationDate="2010-09-27T12:19:39.147" Score="16" ViewCount="" Body="&lt;h2&gt;Programming languages evolve&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;New programming languages often learn from existing languages and add, remove and combine features in a new way. There is a few different paradigms like &lt;em&gt;object oriented&lt;/em&gt; and &lt;em&gt;functional&lt;/em&gt; and many modern languages try to mix features from them both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is also new problems that needs to be solved, e.g. the increase of multi-core CPUs. The most common solution to that have been threads, but some programming languages try to solve the concurrency problem in a different way e.g. the Actor Model. See &lt;a href=&quot;http://www.infoq.com/presentations/erlang-software-for-a-concurrent-world&quot; rel=&quot;nofollow&quot;&gt;Erlang - Software for a Concurrent World&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="13162" LastEditorDisplayName="" LastEditDate="2011-02-14T15:29:03.483" LastActivityDate="2011-02-14T15:29:03.483" CommentCount="2" />
  <row Id="7553" PostTypeId="2" ParentId="7551" CreationDate="2010-09-27T12:22:58.797" Score="4" ViewCount="" Body="&lt;p&gt;Obviously one important motivation for creating a new language is to achieve something better than the already existing languages. And as there is always room for improvement, there will always be new languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Commercial interests are another big reason. I believe it is important for example Microsoft that they can offer a language for every need so companies and developers prefer their platforms.&lt;/p&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-09-27T12:22:58.797" />
  <row Id="7554" PostTypeId="2" ParentId="7551" CreationDate="2010-09-27T12:24:49.137" Score="8" ViewCount="" Body="&lt;p&gt;Legacy Code. If you start a new language you don't have to listen/consider all the complaints when you change an old language. Even if everyone agrees that the new implementation is better, it can't break the old code. And there is a lot of old code out there.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-27T12:24:49.137" />
  <row Id="7555" PostTypeId="2" ParentId="7539" CreationDate="2010-09-27T12:25:41.913" Score="4" ViewCount="" Body="&lt;p&gt;Two main things in production system are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Don't blow up the logs with information that is not interesting&lt;/li&gt;&#xA;&lt;li&gt;Allow raising the log level for troubleshooting purpose.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Use some kind of a logging infrastructure. If the exception can occur during the &lt;strong&gt;normal&lt;/strong&gt; operation, report it in debug level. If it is a real problem, report it in error level.&#xA;Either way you will have a way to troubleshoot the system by raising the log level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also - when you report an exception always make sure the the entire stack trace + inner exceptions are printed.&lt;/p&gt;&#xA;" OwnerUserId="3624" LastActivityDate="2010-09-27T12:25:41.913" />
  <row Id="7556" PostTypeId="2" ParentId="7551" CreationDate="2010-09-27T12:28:29.130" Score="0" ViewCount="" Body="&lt;p&gt;Like previously stated, languages try to target certain specific tasks and the new languages might target a new area.  These languages can take features from other languages that are currently out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another reason for new languages is trying to incorporate many different tasks and to be the language of choice for many different needs.  Some of these languages are trying to be all encompassing languages that you would always use, no matter the need you have.&lt;/p&gt;&#xA;" OwnerUserId="3092" LastActivityDate="2010-09-27T12:28:29.130" />
  <row Id="7557" PostTypeId="2" ParentId="7547" CreationDate="2010-09-27T12:42:48.773" Score="1" ViewCount="" Body="&lt;p&gt;I would say stick with the age-old traditions in web development.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Stick with the standards.&lt;/strong&gt;  Add small adjustments for the specific browsers your users are using if necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can't really do any better than that.  &lt;strong&gt;There is no tool&lt;/strong&gt; that will ensure your site works on every single browser and version.  Stick with the standards.  Add small adjustments.&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-27T12:42:48.773" />
  <row Id="7558" PostTypeId="2" ParentId="7547" CreationDate="2010-09-27T12:53:25.727" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Unit Test Your Webapps:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are several tools that let you check major and some minor versions of websites by comparing screenshots and unit testing frameworks that let you automatically drive the browser and both content AND functionality are correct.  If time is an issue, I would suggest option #1.  If you have time to write unit tests, which is the better option, then go with option #2.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Try &lt;a href=&quot;http://browsershots.org/&quot; rel=&quot;nofollow&quot;&gt;http://browsershots.org/&lt;/a&gt;.  There are others as well that do the same thing.  Without much work at all you can do spot checking of hundreds of browsers and versions.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you want to get more detailed, I would suggest writing web UI unit tests that give you more control over your testing.  Great libraries include &lt;a href=&quot;http://seleniumhq.org/&quot; rel=&quot;nofollow&quot;&gt;Selenium&lt;/a&gt; (C#, Java, Ruby and many more), or &lt;a href=&quot;http://watin.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;WatiN&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="221" LastEditorDisplayName="" LastEditDate="2010-09-27T13:12:39.260" LastActivityDate="2010-09-27T13:12:39.260" CommentCount="4" />
  <row Id="7559" PostTypeId="1" CreationDate="2010-09-27T12:57:23.610" Score="15" ViewCount="320" Body="&lt;p&gt;This happened at least once to me. I'm working on some part of the code base and find a small bug in a different part, and the bug stops me from completing what I'm currently trying to do. Fixing the bug could be as simple as changing a single statement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you do in that situation?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Fix the bug and commit it together with your current work&lt;/li&gt;&#xA;&lt;li&gt;Save your current work elsewhere, fix the bug in a separate commit, then continue your work [1]&lt;/li&gt;&#xA;&lt;li&gt;Continue what you're supposed to do, commit the code (even if it &lt;del&gt;breaks the build&lt;/del&gt; fails some tests), then fix the bug (and &lt;del&gt;the build&lt;/del&gt; make tests pass) in a separate commit&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;[1] In practice, this would mean: clone the original repository elsewhere, fix the bug, commit/push the changes, pull the commit to the repository you're working on, merge the changes, and continue your work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; I changed number three to reflect what I really meant.&lt;/p&gt;&#xA;" OwnerUserId="1303" LastEditorUserId="1303" LastEditorDisplayName="" LastEditDate="2010-09-28T11:56:53.373" LastActivityDate="2010-12-27T16:28:08.087" Title="Fixing a bug while working on a different part of the code base" Tags="&lt;bugs&gt;&lt;version-control&gt;" AnswerCount="11" CommentCount="7" FavoriteCount="1" />
  <row Id="7560" PostTypeId="2" ParentId="7551" CreationDate="2010-09-27T12:58:18.123" Score="0" ViewCount="" Body="&lt;p&gt;For the same reason there are so many &amp;lt;whatever&amp;gt; and we keep creating new &amp;lt;whatever&amp;gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a dozen PHP MVC frameworks, for example, but people will always create new ones to fill specific needs, to avoid becoming dependent on some other team, or just to try and create something better.  The same holds true for basically every type of tool or application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a very good thing, pretty much a win-win for everyone in my opinion.&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-09-27T12:58:18.123" />
  <row Id="7561" PostTypeId="2" ParentId="7559" CreationDate="2010-09-27T13:07:31.827" Score="12" ViewCount="" Body="&lt;p&gt;I have done 1 and 2 and in the end, I think I prefer #2. It allows for more visibility for the bug fix, which may be important for QA/release notes/other developers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also come across a situation where what I thought was a bug actually wasn't (not saying that this is the case here), and &quot;fixing&quot; it in a separate commit allowed another dev to contact me and explain what was what instead of the &quot;fix&quot; just getting lost in my normal check-in.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-27T13:07:31.827" />
  <row Id="7562" PostTypeId="2" ParentId="7559" CreationDate="2010-09-27T13:10:43.937" Score="8" ViewCount="" Body="&lt;p&gt;I generally go for #2.  It makes the repository cleaner, and makes the logs more understandable.  I hate it when other devs I work with commit 15 different bug fixes, features, and refactorings all in the same commit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, depending on how your team does defect tracking, you may need to search the defect repo to make sure that if the defect you are fixing is in there, you mark the item complete.  Or, you might need to create a new item and mark it complete so that the defect system and the code repo match up.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastEditorUserId="3124" LastEditorDisplayName="" LastEditDate="2010-09-27T16:44:51.420" LastActivityDate="2010-09-27T16:44:51.420" />
  <row Id="7563" PostTypeId="2" ParentId="7551" CreationDate="2010-09-27T13:13:21.073" Score="6" ViewCount="" Body="&lt;p&gt;It is a cycle.  You start a new language, and you are free to get away from all of the bad syntax and poor choices from your predecessors.  In version 1, the language looks great because it doesn't have any of that baggage, and it gets the job done.  Then, in newer versions, you start to experiment with features that may not work out, or you bring in features from other, newer languages that cause your syntax to be a little kludgey.  Lo and behold, after a few more versions, you realize that your language is now as complicated as the one you replaced, with silly syntax issues and legacy baggage.  And suddenly, you realize that if you created a &lt;em&gt;new&lt;/em&gt; language, you could fix all that...&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-09-27T13:13:21.073" CommentCount="4" />
  <row Id="7564" PostTypeId="2" ParentId="7472" CreationDate="2010-09-27T13:27:46.557" Score="2" ViewCount="" Body="&lt;p&gt;I have personally seen SVN work successfully in a large enterprise, and have heard accounts of other success stories.  I think one of the key things that scares enterprise about open source is lack of support.  They feel like they are on a tightrope without a safety net.  But often you can find companies that will provide support contracts for open source software.  For SVN, there is CollabNet and others.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-09-27T13:27:46.557" CommentCount="4" />
  <row Id="7565" PostTypeId="1" CreationDate="2010-09-27T13:40:57.550" Score="17" ViewCount="756" Body="&lt;p&gt;It seem that &lt;a href=&quot;http://programmers.stackexchange.com/questions/220/agile-for-the-solo-developer&quot;&gt;Agile for the solo developer&lt;/a&gt; is a good idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But how to learn it? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any good book, web reference or course that a solo developer could start from?&lt;/p&gt;&#xA;" OwnerUserId="19" LastEditorUserId="19" LastEditorDisplayName="" LastEditDate="2010-09-28T12:26:56.383" LastActivityDate="2010-12-16T17:36:07.773" Title="How to learn Agile as a Solo Developer" Tags="&lt;learning&gt;&lt;books&gt;&lt;websites&gt;&lt;agile&gt;&lt;one-man-army&gt;" AnswerCount="6" CommentCount="10" FavoriteCount="4" />
  <row Id="7566" PostTypeId="1" AcceptedAnswerId="7567" CreationDate="2010-09-27T13:41:59.700" Score="21" ViewCount="1141" Body="&lt;p&gt;Developer interviews are different than most other places, because not only do you worry about the people you work with, benefits, job description, etc., you also have EXTRA to worry about after getting the job.  Writing two application with exact requirements can be vastly different if you're working in a loud vs quiet environment, using VS2003/.NET 2.0 vs VS210/.NET 4.0., using SVN vs VSS.  Is it ok to give the potential employer the straight-up Joel Test?  I try to ask as many questions to get the type of environment I will be working in, which is extremely important from my perspective, but what's the best way to cut to the chase and just ask the tough questions (like they ask you during the same interview).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;NOTE: By the &quot;Joel Test&quot; I mean a specific list of things that are deal breakers that are important to you (not necessarily Joel), but you may not have time to get out using the traditional casual &quot;conversational&quot; way of asking them, so you decide to either email or schedule another meeting, or ask other people, etc.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-09-27T19:24:53.407" LastActivityDate="2010-10-27T20:31:06.067" Title="Is it bad etiquette to ask a potential employer how they score on the Joel Test?" Tags="&lt;jobs&gt;&lt;interview-questions&gt;&lt;interview&gt;&lt;joel-test&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="3" />
  <row Id="7567" PostTypeId="2" ParentId="7566" CreationDate="2010-09-27T13:45:27.960" Score="47" ViewCount="" Body="&lt;p&gt;A job interview goes both ways -- a company is interviewing you and you are interviewing the company. I wouldn't come out literally with a &quot;what's your Joel Test score?&quot;, but I would ask the individual questions that were particular deal-breakers for me in a work environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It doesn't need a huge build-up. A good time to ask these questions as at the technical part of the interview process, when they say &quot;do you have any questions for us?&quot;. You can lead in with something along the lines of &quot;can you describe a typical day on the job here?&quot; and go from there.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-27T13:45:27.960" CommentCount="5" />
  <row Id="7568" PostTypeId="1" AcceptedAnswerId="7569" CreationDate="2010-09-27T13:57:58.140" Score="17" ViewCount="827" Body="&lt;p&gt;Are there any good online IDEs which will help me program while I am learning something new on the net.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps, I am looking for an online IDE, for simple programming purposes, so that I don't need to switch to the basic IDEs which I use for every trivial programming purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are online IDEs feasible?&#xA;Can you suggest me a few?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance.&lt;/p&gt;&#xA;" OwnerUserId="4522" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-09-29T17:29:00.263" LastActivityDate="2011-04-04T13:09:23.037" Title="Good online IDEs" Tags="&lt;ide&gt;" AnswerCount="13" CommentCount="4" FavoriteCount="18" />
  <row Id="7569" PostTypeId="2" ParentId="7568" CreationDate="2010-09-27T14:08:13.207" Score="22" ViewCount="" Body="&lt;p&gt;You can give &lt;a href=&quot;http://www.coderun.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.coderun.com/&lt;/a&gt; a shot for ASP.NET, PHP, and AJAX.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-27T14:08:13.207" CommentCount="3" />
  <row Id="7570" PostTypeId="2" ParentId="7568" CreationDate="2010-09-27T14:10:03.063" Score="6" ViewCount="" Body="&lt;h3&gt;&lt;a href=&quot;https://mozillalabs.com/skywriter/&quot; rel=&quot;nofollow&quot;&gt;Mozilla Skywriter&lt;/a&gt;&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;formerly named Bespin.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's webbased and uses the HTML5 canvas element. See &lt;a href=&quot;http://www.youtube.com/watch?v=qRmC49JTx8M&quot; rel=&quot;nofollow&quot;&gt;Bespin Launch Demo&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-27T14:10:03.063" CommentCount="1" />
  <row Id="7571" PostTypeId="2" ParentId="5749" CreationDate="2010-09-27T14:11:06.293" Score="2" ViewCount="" Body="&lt;p&gt;I've known people in that position.  I'd say that the critical question is how much they respect you.  There are very small businesses that will take the attitude that the programmer is a necessary evil (one very good example I know of was a family-owned business), and very small businesses who will consider the programmer the resident computer expert.  It sounds like you're respected, particularly since you don't talk about having to do the odd tasks that people wind up doing in very small businesses.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-27T14:11:06.293" CommentCount="2" />
  <row Id="7572" PostTypeId="2" ParentId="7482" CreationDate="2010-09-27T14:13:40.397" Score="2" ViewCount="" Body="&lt;p&gt;You are using C#, so I assume you are already using a framework (.Net or Mono). The .Net Framework comes with a lot of things already done for you (for example the tcp communication), and I'm sure you also copy some code snippets you find in some sites like stackoverflow.com, so, why reinventing the wheel?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, you already learnt enough (by doing the 70% by yourself) to understand the other guy's code and to realize that it was better than yours in some points.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the code fits your needs and is open source then take it. But, on the other hand,  what I would not do is to change the code to make it more &lt;em&gt;like yours&lt;/em&gt;. Add your comments, set some headers to know where did you extract the code from, but don't modify it if you cannot enhance it.&lt;/p&gt;&#xA;" OwnerUserId="3730" LastActivityDate="2010-09-27T14:13:40.397" />
  <row Id="7573" PostTypeId="2" ParentId="7568" CreationDate="2010-09-27T14:14:50.517" Score="3" ViewCount="" Body="&lt;p&gt;There is an online compiler for &lt;a href=&quot;http://golang.org/&quot; rel=&quot;nofollow&quot;&gt;The Go Language&lt;/a&gt;, an interpreter for &lt;a href=&quot;http://ironpython.net/try/&quot; rel=&quot;nofollow&quot;&gt;IronPython&lt;/a&gt; and a compiler for &lt;a href=&quot;http://compilr.com&quot; rel=&quot;nofollow&quot;&gt;C# and other .Net Languages&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1431" LastActivityDate="2010-09-27T14:14:50.517" />
  <row Id="7574" PostTypeId="2" ParentId="7551" CreationDate="2010-09-27T14:16:27.430" Score="1" ViewCount="" Body="&lt;p&gt;Creating a programming language is rather fun.  It's close to pure creative work, since you aren't limited to previous requirements.  It's not that difficult to implement any more, since you can always compile to C and compile the C code for adequate performance if you're writing a compiler in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, most of us have fewer good ideas than we think we have, so they often wind up being disappointing, or not being loved by anybody other than the original designer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about any programming language you know.  You can easily come up with several things you dislike about it, right?  You presumably have ideas how those could be fixed.  With just a little more impetus, assuming you know much about compiler building (and lots of people do), you might start designing and even implementing your own.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-27T14:16:27.430" />
  <row Id="7575" PostTypeId="2" ParentId="7551" CreationDate="2010-09-27T14:22:15.430" Score="6" ViewCount="" Body="&lt;p&gt;Because we can.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-09-27T14:22:15.430" />
  <row Id="7576" PostTypeId="2" ParentId="238" CreationDate="2010-09-27T14:23:41.620" Score="2" ViewCount="" Body="&lt;h1&gt;Futurama&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Extremally short answer but I think anyone who knows it will agree with me. :-)&lt;/p&gt;&#xA;" OwnerUserId="3535" LastActivityDate="2010-09-27T14:23:41.620" CommentCount="4" />
  <row Id="7577" PostTypeId="2" ParentId="7568" CreationDate="2010-09-27T14:24:01.323" Score="9" ViewCount="" Body="&lt;p&gt;Well, I myself found an online ide.&#xA;It's feasible and supports as many as 58 programming languages.&#xA;It has its own limitations though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here it is: &lt;a href=&quot;http://ideone.com/&quot; rel=&quot;nofollow&quot;&gt;Ideone.com&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4522" LastActivityDate="2010-09-27T14:24:01.323" CommentCount="4" />
  <row Id="7578" PostTypeId="2" ParentId="7547" CreationDate="2010-09-27T14:33:15.493" Score="0" ViewCount="" Body="&lt;p&gt;This is &lt;em&gt;one solitary confined&lt;/em&gt; case where  I would say IE has the edge over other browsers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Version released. &lt;strong&gt;BAM!&lt;/strong&gt; Nothing till the next version. It has issues? Work around them. The key here is the issues are &lt;em&gt;consistent&lt;/em&gt; and &lt;em&gt;repeatable&lt;/em&gt; bugs. Firefox has about a half dozen versions in active use, from 3, 3.5, 3.6, 4, and the ones in between. Does everyone keep up on their version? &lt;em&gt;Probably not&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recommend testing in the latest stable build of Firefox, Chrome, Safari, and of course IE 7/8. If someone mentions an issue specific to another browser, open it up and make a fix. This could involve a compromise in design or reduction in the stylization level on the page. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All in all, &lt;em&gt;simple designs are better&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-27T14:33:15.493" />
  <row Id="7579" PostTypeId="2" ParentId="7565" CreationDate="2010-09-27T14:51:54.423" Score="7" ViewCount="" Body="&lt;p&gt;If you have to purchase only ONE book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Buy &lt;a href=&quot;http://pragprog.com/titles/pad/practices-of-an-agile-developer&quot; rel=&quot;nofollow&quot;&gt;Practices of an Agile Developer&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/WKC18.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-27T14:51:54.423" CommentCount="6" />
  <row Id="7580" PostTypeId="2" ParentId="7551" CreationDate="2010-09-27T15:08:55.843" Score="3" ViewCount="" Body="&lt;p&gt;Because they all suck (one way or the other).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now, we have created about 5000 languages to describe natural problems and none of them are available to write programs (an example would be &quot;English&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Until someone finds a way to create a programming language that can express what you can express in a sentence in a natural language, they will keep coming.&lt;/p&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-09-27T15:08:55.843" CommentCount="1" />
  <row Id="7581" PostTypeId="1" AcceptedAnswerId="7585" CreationDate="2010-09-27T15:10:55.100" Score="10" ViewCount="419" Body="&lt;p&gt;Is Java becoming the de facto standard from Linux application development in the same way .NET is the standard for Windows application development?  If not why not?  &lt;/p&gt;&#xA;" OwnerUserId="2527" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-27T15:23:24.877" LastActivityDate="2011-05-18T18:33:55.297" Title="Is Java to Linux what .NET is to Windows?" Tags="&lt;java&gt;&lt;.net&gt;&lt;comparison&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="7582" PostTypeId="2" ParentId="4384" CreationDate="2010-09-27T15:11:45.920" Score="1" ViewCount="" Body="&lt;p&gt;I built my first website for a sports club fans in Egypt, it was a huge experience to deal with the market&#xA;next year I was requested to write another website for the same sports club fans as the site become the first for that club.&#xA;the next year I've been hired for the main company that designs the main official website for the club and assigned the whole programming for the new official website.&#xA;the old official website was programmed by three developers, in my case I'm replaced with the three of them&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So at the end I assigned both websites the official and the fans club website&lt;br&gt;&#xA;and making the work of 3 developers at the same time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: I'm still studying computer science at college.&lt;/p&gt;&#xA;" OwnerUserId="3648" LastEditorUserId="5185" LastEditorDisplayName="" LastEditDate="2010-11-13T22:47:32.007" LastActivityDate="2010-11-13T22:47:32.007" />
  <row Id="7583" PostTypeId="2" ParentId="7551" CreationDate="2010-09-27T15:15:04.153" Score="2" ViewCount="" Body="&lt;p&gt;For the same reason there are hammers, screwdrivers, handsaws, bandsaws, jackhammers, crowbars, and a host of other tools: not every language is perfect for every task. Some languages are targeted at specific problem domains: R is particularly good for statistical analysis, C is particularly good for writing operating system kernels, Haskell is particularly good for math-heavy or financial computations, Erlang is particularly good at concurrent programming, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, for the same reason that shirts come in different colors: some people just like the &quot;style&quot; of one language over another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, of course, a lot of programmers find it fun to invent a new language, just to see what happens, or perhaps because they have some knowledge about languages and want to scratch an itch, or try out some ideas.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-09-27T15:15:04.153" />
  <row Id="7584" PostTypeId="2" ParentId="7559" CreationDate="2010-09-27T15:16:23.417" Score="2" ViewCount="" Body="&lt;p&gt;I choose the unwritten option (4): &lt;strong&gt;Divide your project into highly-specialized assemblies/libraries, so that unrelated bugs will always be in a different location in the version control tree.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I apologize if the above sounds snarky, but I mean it sincerely.  I cringe whenever I see a monolithic project with a hundred forms and namespaces that have nothing at all to do with each other.  I used to face this same dilemma often, wondering if and how I should break up commits that were dealing with different functional areas; it wasn't until much later that I realized that having all of these different functional areas in a single committable project was, in itself, a major design flaw.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I still frequently find totally unrelated bugs while I'm working on a specific feature.  I might be working on the UI and find a bug in some business logic, and have to fix it before I can move on.  The difference is that the business logic is &lt;em&gt;always&lt;/em&gt; in a different assembly/project from the UI, so all I have to do is make one very minor change to the BL and proceed with one very minor commit, then keep on working.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having a really good project organization makes it not only possible, but quite easy to handle these issues without burying a change, breaking the build, or getting mired in an irritating branch/merge (even if you're using a DVCS it's not &lt;em&gt;totally&lt;/em&gt; painless).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you lack this option - i.e. you're a junior dev with no say in the project organization - then I would simply go with #1 and make appropriate notes in the log so other people know why you did what you did.  If you've made a &lt;em&gt;major&lt;/em&gt; change then also file a bug report in your issue tracking system to give visibility into what you've fixed and why.&lt;/p&gt;&#xA;" OwnerUserId="3249" LastActivityDate="2010-09-27T15:16:23.417" CommentCount="2" />
  <row Id="7585" PostTypeId="2" ParentId="7581" CreationDate="2010-09-27T15:16:46.467" Score="19" ViewCount="" Body="&lt;p&gt;In short: No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It really depends on what sort of application you are writing. For many the answer is still regular old C/C++ (if doing, say Qt or GTK+ GUI development). Many doing GTK+ development may also be using Python + PyGTK. If doing web or web services development, you see lots of Ruby, Python, PHP, and Java.&lt;/p&gt;&#xA;" OwnerUserId="3411" LastActivityDate="2010-09-27T15:16:46.467" CommentCount="3" />
  <row Id="7586" PostTypeId="2" ParentId="7536" CreationDate="2010-09-27T15:19:09.403" Score="4" ViewCount="" Body="&lt;p&gt;I always separate the star from the type, so I use:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void f(int *);&#xA;&#xA;void f(int *x)&#xA;{&#xA;    char *y = (char *) x;&#xA;    char x[4];&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Obviously, I don't separate the brackets from the identifier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's how I learned to do it from K&amp;amp;R, and who am I to argue? (Also, it seems to be the most readable way.)&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-09-27T15:19:09.403" CommentCount="5" />
  <row Id="7587" PostTypeId="2" ParentId="4499" CreationDate="2010-09-27T15:22:10.133" Score="0" ViewCount="" Body="&lt;p&gt;well you can use &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;gedit with some extra plugins &lt;a href=&quot;http://www.micahcarrick.com/gedit-html-editor.html&quot; rel=&quot;nofollow&quot;&gt;Customizing gedit for web development&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Geany is wery good , light-weight and easy to use i really like it, and you'll find it in the repositories of ubuntu, and almost in all main repositores&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="3648" LastActivityDate="2010-09-27T15:22:10.133" />
  <row Id="7588" PostTypeId="1" AcceptedAnswerId="7590" CreationDate="2010-09-27T15:27:32.793" Score="5" ViewCount="928" Body="&lt;p&gt;We currently use once cc.net server for our build process, which builds both .net (using msbuild &amp;amp; nant) and java (using maven and ant).   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;CC.net monitors source control, and triggers a remote build running on a separate server.  CC.net then collates the results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When we run the remote build, it typically:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;runs nunit or junit or similar using mocked data&lt;/li&gt;&#xA;&lt;li&gt;optionally runs a DB script to create a fresh database instance or restore a database from a known position.&lt;/li&gt;&#xA;&lt;li&gt;runs selenium or similar to test UI&lt;/li&gt;&#xA;&lt;li&gt;runs emma or ncover for code coverage&lt;/li&gt;&#xA;&lt;li&gt;builds the system for various deployment environments (test, acceptance, production)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;We may have several builds running at a time, some .net and some java (from different project teams).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's quite time consuming to get the remote builds working when we set up a new project and we feel that there must be something more suited to remote builds than cc.net.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone have any experience with remote builds with continuous integration systems?&lt;br&gt;&#xA;I don't really want feature lists of CI servers, I'd more appreciate hearing about how you've used them in a multi language, multi server environment.&lt;/p&gt;&#xA;" OwnerUserId="2397" LastEditorUserId="2397" LastEditorDisplayName="" LastEditDate="2010-09-27T18:49:07.963" LastActivityDate="2010-11-26T16:07:13.820" Title="Continuous Build server (cc.net, hudson, bamboo, etc...) remote build experience?" Tags="&lt;best-practices&gt;&lt;software&gt;&lt;builds&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="7589" PostTypeId="2" ParentId="848" CreationDate="2010-09-27T15:29:29.797" Score="6" ViewCount="" Body="&lt;p&gt;At my school, they offered 3 flavors of a CS degree: Bachelor of Arts, Bachelor of Science, and Bachelor of Science in Computer Science &amp;amp; Engineering (BSCSE). I'll ignore the last, since that's an engineering degree. I took a Bachelor of Arts in computer science. The big differences were that I wasn't required to take a lot of the science classes, such as physics, that the BS students were required to take. I also wasn't &lt;em&gt;required&lt;/em&gt; to take the theory of computation course. I also wasn't required to do my capstone class in computer science -- I could take any capstone. Other than that, the degree program was mostly the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Put more abstractly, the BS focused more on science as a discipline, whereas the BA gave one leeway to take other courses (English, history, economics, whatever). Very few students were BA comp sci at my school; I think I graduated with just 2 or 3 others. Most of the BA CS students double-majored in economics (they wanted to focus on software startups, that sort of thing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why did I take a BA instead of a BS? I started off school as a creative writing student, and would've been hard-pressed to finish a BS in CS in 4 years by the time I switched to comp sci.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't really feel I missed out on much. I still took as much math as the BS students, and my job prospects haven't suffered because I have a BA instead of a BS. Also, as a combination CS/English student, I can write well, which is a much-prized skill among programmers, it seems.&lt;/p&gt;&#xA;" OwnerUserId="679" LastEditorUserId="679" LastEditorDisplayName="" LastEditDate="2010-09-27T16:04:18.353" LastActivityDate="2010-09-27T16:04:18.353" CommentCount="1" />
  <row Id="7590" PostTypeId="2" ParentId="7588" CreationDate="2010-09-27T15:43:06.077" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Hudson&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've used hudson in both Java and .NET enterprise environments for high visibility projects (you've probably been to some of the sites).  Hudson is solid from the start, but the best part is that there are lots of plugins to do just about anything you want.  Hudson is highly configurable, has a great community, and is really easy to set up in a cluster environment if you need multiple builds going at once.  It's my favorite CI server of all the ones I've used (CC.NET, Hudson, and TFS).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus, you can use the &lt;a href=&quot;http://wiki.hudson-ci.org/display/HUDSON/ChuckNorris+Plugin&quot; rel=&quot;nofollow&quot;&gt;ChuckNorris plugin&lt;/a&gt; to have him give you the thumbs up or down.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-27T15:43:06.077" CommentCount="1" />
  <row Id="7591" PostTypeId="2" ParentId="6760" CreationDate="2010-09-27T15:50:38.640" Score="2" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;enum Bool &#xA;{ &#xA;    True, &#xA;    False, &#xA;    FileNotFound &#xA;};&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx&quot; rel=&quot;nofollow&quot;&gt;http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3421" LastActivityDate="2010-09-27T15:50:38.640" />
  <row Id="7592" PostTypeId="1" AcceptedAnswerId="7595" CreationDate="2010-09-27T15:54:47.837" Score="16" ViewCount="697" Body="&lt;p&gt;If you had to reinstall Visual Studio 2010, what plugin would you immediately install?  (Assuming you primarily work with C#)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;CodeRush&lt;/li&gt;&#xA;&lt;li&gt;ReSharper&lt;/li&gt;&#xA;&lt;li&gt;Super SpellChecker Pro 9000 (may or may not be real)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-09-27T17:17:38.980" LastActivityDate="2010-12-10T21:02:37.393" Title="What is THE plugin to have for Visual Studio (C#)?" Tags="&lt;tools&gt;&lt;ide&gt;&lt;c#&gt;&lt;visual-studio-2010&gt;&lt;plugins&gt;" AnswerCount="13" CommentCount="3" FavoriteCount="5" />
  <row Id="7593" PostTypeId="2" ParentId="7456" CreationDate="2010-09-27T15:55:28.630" Score="1" ViewCount="" Body="&lt;p&gt;Ah, the Sapir-Whorf hypothesis vs. the Chomsky Deep Structure hypothesis wars...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is mathematics. Mathematics is applied philosophy. The question then becomes, which natural language can exactly describe mathematical concepts without significant head-scratching. Put another way, which languages can deal in Aristotelian metaphysics easily? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The proverbial 'savage' language may have &lt;em&gt;initial&lt;/em&gt; difficulty expressing the first-order abstractions that are required. However- &lt;em&gt;however!&lt;/em&gt; - humans can learn new words, and new concepts. Ancient Greek didn't start out with philosophical terms; they had to be invented and then ported to other langauges.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Considering that mathematics is a universal, I postulate that the strong Sapir-Whorf hypothesis is false. &lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-27T15:55:28.630" CommentCount="8" />
  <row Id="7594" PostTypeId="2" ParentId="7592" CreationDate="2010-09-27T15:59:44.507" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;ReSharper&lt;/strong&gt;, hands down! Even though VS 2010 has gotten a lot better with regards to refactoring code, I still find ReSharper indispensable.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-09-27T15:59:44.507" />
  <row Id="7595" PostTypeId="2" ParentId="7592" CreationDate="2010-09-27T15:59:46.637" Score="34" ViewCount="" Body="&lt;p&gt;ReSharper - I have a few others installed (Reflector, ANTS, etc) but Resharper is the only one that'd make me cry if you took it away.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-09-27T15:59:46.637" CommentCount="2" />
  <row Id="7596" PostTypeId="2" ParentId="7592" CreationDate="2010-09-27T16:01:21.477" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://gitextensions.googlecode.com/files/CommitLog.jpg&quot; rel=&quot;nofollow&quot;&gt;GitExtensions&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/lGwXy.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-10-18T20:15:39.717" LastActivityDate="2010-10-18T20:15:39.717" CommentCount="5" />
  <row Id="7597" PostTypeId="2" ParentId="7495" CreationDate="2010-09-27T16:06:28.520" Score="3" ViewCount="" Body="&lt;p&gt;In my experience, the school you went to will only matter for the first job, maybe slightly for the second.   The questions interviewers care about are &quot;what have you done, what do you know how to do, what can you learn to do?&quot;   Where you learned stuff doesn't really matter.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-27T16:06:28.520" />
  <row Id="7598" PostTypeId="2" ParentId="39" CreationDate="2010-09-27T16:20:26.647" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;If it wasn't for the last minute, nothing would get done.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&amp;mdash;Supposedly from &quot;Murphy's Laws&quot;; &lt;a href=&quot;http://www.murphys-laws.com/murphy/murphy-commerce.html&quot; rel=&quot;nofollow&quot;&gt;see here&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although I can do plenty of things without any pressure (like post answers here), I need a hint of fear to do what I'm supposed to be doing (like my homework).&lt;/p&gt;&#xA;" OwnerUserId="3650" LastEditorUserId="3650" LastEditorDisplayName="" LastEditDate="2010-09-28T17:11:24.767" LastActivityDate="2010-09-28T17:11:24.767" CommunityOwnedDate="2010-09-27T16:20:26.647" />
  <row Id="7599" PostTypeId="2" ParentId="7482" CreationDate="2010-09-27T16:23:59.733" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;The best code is the code that you&#xA;  don't have to write.&quot; - Unknown&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If the code is free to use and the license terms are suitable for what you will be using it for, then what's the problem?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using other people's code is a great way to save time and effort, and as long as you're doing it legally I think only good things can come of it.&lt;/p&gt;&#xA;" OwnerUserId="1732" LastActivityDate="2010-09-27T16:23:59.733" />
  <row Id="7600" PostTypeId="2" ParentId="7592" CreationDate="2010-09-27T16:24:47.987" Score="6" ViewCount="" Body="&lt;p&gt;I can't live without &lt;a href=&quot;http://submain.com/products/ghostdoc.aspx&quot; rel=&quot;nofollow&quot;&gt;GhostDoc&lt;/a&gt; and &lt;a href=&quot;http://www.testdriven.net/&quot; rel=&quot;nofollow&quot;&gt;TestDriven.net&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-27T16:24:47.987" CommentCount="15" />
  <row Id="7601" PostTypeId="2" ParentId="7559" CreationDate="2010-09-27T16:27:18.407" Score="1" ViewCount="" Body="&lt;p&gt;I try to do #2.  If it really is a separate issue, chances are good that it is in a file that is different than what you are working on. You should be able to check the file in as a separate commit, even if it is made in the same repository you are working on.  For all the reasons stated already, it just makes sense to have commits as independent as possible, for tracking and well as reverting the change if it is wrong.&lt;/p&gt;&#xA;" OwnerUserId="1427" LastActivityDate="2010-09-27T16:27:18.407" CommentCount="1" />
  <row Id="7602" PostTypeId="2" ParentId="7592" CreationDate="2010-09-27T16:36:19.563" Score="5" ViewCount="" Body="&lt;p&gt;If you're using subversion: &lt;a href=&quot;http://ankhsvn.open.collab.net/&quot; rel=&quot;nofollow&quot;&gt;ankhsvn&lt;/a&gt;. If you're using OnTime, then &lt;a href=&quot;http://www.axosoft.com/rocketsvn&quot; rel=&quot;nofollow&quot;&gt;RocketSVN&lt;/a&gt; is a copy of anksvn with additions for integrating with OnTime.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-10-18T17:44:28.570" LastActivityDate="2010-10-18T17:44:28.570" CommentCount="1" />
  <row Id="7603" PostTypeId="2" ParentId="7592" CreationDate="2010-09-27T16:36:40.207" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.wholetomato.com/&quot; rel=&quot;nofollow&quot;&gt;Visual Assist X&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-09-27T16:36:40.207" />
  <row Id="7604" PostTypeId="2" ParentId="3201" CreationDate="2010-09-27T16:37:30.187" Score="0" ViewCount="" Body="&lt;p&gt;The following are generally of the most globally useful:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Datawarehousing Datamining and&#xA;Information Retrieval&lt;/li&gt;&#xA;&lt;li&gt;Middleware&#xA;Architectures&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Though as mentioned, likely the least fun.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-27T16:37:30.187" />
  <row Id="7605" PostTypeId="2" ParentId="7592" CreationDate="2010-09-27T16:47:21.807" Score="6" ViewCount="" Body="&lt;p&gt;I find the &lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef&quot; rel=&quot;nofollow&quot;&gt;Visual Studio Productivity Power Tools&lt;/a&gt; to be quite good.  If you have ReSharper most of the features are probably duplicate (and ReSharper will add quite a bit more).  But, if you don't have the luxury of ReSharper they can be a good substitute.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-09-27T16:47:21.807" />
  <row Id="7606" PostTypeId="2" ParentId="7559" CreationDate="2010-09-27T16:55:49.040" Score="1" ViewCount="" Body="&lt;p&gt;I usually just fix the bug, and then continue what I was working on. When it's time to commit, assuming the bug fix is in a separate file, I do &lt;strong&gt;two&lt;/strong&gt; simultaneous commits -- the first is a partial commit containing &lt;em&gt;only&lt;/em&gt; the bug fix, and the second is everything else.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-09-27T16:55:49.040" />
  <row Id="7607" PostTypeId="2" ParentId="7559" CreationDate="2010-09-27T17:06:21.593" Score="5" ViewCount="" Body="&lt;p&gt;I do #2. Using tools like git makes it trivial to split it up into multiple commits. If you can't convince your team to switch to more modern tools, git-svn will give you a decent portion of what you'd use to solve this problem. This blog post gives a good overview of the workflow that you're trying to solve: &lt;a href=&quot;http://tomayko.com/writings/the-thing-about-git&quot; rel=&quot;nofollow&quot;&gt;The Thing About Git&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1767" LastActivityDate="2010-09-27T17:06:21.593" CommentCount="4" />
  <row Id="7608" PostTypeId="2" ParentId="7093" CreationDate="2010-09-27T17:07:29.720" Score="3" ViewCount="" Body="&lt;p&gt;I just pulled a description out of a internal hadoop training I gave and uploaded it to slideshare. It describes the operations in terms of aggregation of geometric shapes: &lt;a href=&quot;http://www.slideshare.net/jrideout/mapreduce&quot; rel=&quot;nofollow&quot;&gt;http://www.slideshare.net/jrideout/mapreduce&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3747" LastActivityDate="2010-09-27T17:07:29.720" />
  <row Id="7609" PostTypeId="2" ParentId="3732" CreationDate="2010-09-27T17:28:32.970" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Working indoors.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be payed the same, I'd do outside labor any day.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-27T17:28:32.970" CommunityOwnedDate="2010-09-27T17:28:32.970" CommentCount="3" />
  <row Id="7610" PostTypeId="2" ParentId="5215" CreationDate="2010-09-27T17:39:14.453" Score="4" ViewCount="" Body="&lt;p&gt;CodeMash - &lt;a href=&quot;http://codemash.org/&quot; rel=&quot;nofollow&quot;&gt;http://codemash.org/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="715" LastActivityDate="2010-09-27T17:39:14.453" />
  <row Id="7611" PostTypeId="2" ParentId="5215" CreationDate="2010-09-27T17:43:03.377" Score="2" ViewCount="" Body="&lt;h2&gt;Snowcode&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;If I could pick one conference to attend, it would be &lt;a href=&quot;http://www.snowcode.co.uk/&quot; rel=&quot;nofollow&quot;&gt;Snowcode&lt;/a&gt;.  No question.&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-27T17:43:03.377" />
  <row Id="7612" PostTypeId="1" CreationDate="2010-09-27T17:43:25.730" Score="8" ViewCount="186" Body="&lt;p&gt;Recently, I've started playing with Mercurial. So far I was using Git, and although I don't have any objections to it, I was pleasantly suprised with Mercurial's, so to say, &lt;em&gt;simplicity&lt;/em&gt; on Windows platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And since workload has been kind to me these last couple of weeks (&lt;em&gt;read: not so much of it&lt;/em&gt;), I've decided to spend some hours into it, to study it a little more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is, I prefer paper books to electronic ones, and unlike Git, I'm finding it increasingly difficult to find some good ones for Mercurial - the only one being &lt;a href=&quot;http://oreilly.com/catalog/9780596801311&quot; rel=&quot;nofollow&quot;&gt;O'Reilly's Mercurial Definite Guide&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone know of any good ones apart from the above?&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-10-12T01:50:16.620" LastActivityDate="2010-10-12T01:50:16.620" Title="What are some good Mercurial books?" Tags="&lt;recommendations&gt;&lt;books&gt;&lt;version-control&gt;&lt;mercurial&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="0" />
  <row Id="7613" PostTypeId="2" ParentId="848" CreationDate="2010-09-27T17:43:38.500" Score="0" ViewCount="" Body="&lt;p&gt;Just to throw another wrench in the works, mine is neither...  I have a BBA in CS/CIS.  :-)&lt;/p&gt;&#xA;" OwnerUserId="715" LastActivityDate="2010-09-27T17:43:38.500" />
  <row Id="7614" PostTypeId="2" ParentId="5215" CreationDate="2010-09-27T17:44:45.447" Score="4" ViewCount="" Body="&lt;h2&gt;Microsoft Tech-Ed&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;It's obviously incredibly pro-Microsoft (which can be annoying) but the nice part is that they take incredible care to send real experts to these events.  The hands-on attention is very cool.&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-27T17:44:45.447" CommentCount="2" />
  <row Id="7617" PostTypeId="2" ParentId="3201" CreationDate="2010-09-27T17:56:20.493" Score="0" ViewCount="" Body="&lt;p&gt;What matters more to you - learning the 'sexy subjects' or getting a good grade?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm going to go against the grain and suggest that you pick the ones which you will be able to get the highest grades in either because you understand them already or are good at them. If this means you don't end up doing the sexy subjects, then you can learn that in your own time or later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find out who will run each course and what influence they have in the department. If the head of computer science department runs Lambda Calculus, go do i0t. In all modules, ask questions that demonstrate that you're listening. Come exam time, the lecturer will be easier to pump for information around what is and isn't on the exam this year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It doesn't really matter which modules you pick for your Computer Science major - the vast majority of employers will employ you based on you having a good CS degree. In my experience, getting your degree is all about playing the university game - the university and lecturers set the rules, you have to learn them.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-09-27T17:56:20.493" />
  <row Id="7618" PostTypeId="1" CreationDate="2010-09-27T18:08:49.057" Score="21" ViewCount="819" Body="&lt;p&gt;Perhaps the greatest promise of using object-oriented paradigm is the code reuse. Some dispute that this was achieved. Why was it (not) achieved?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does code reuse as OOP defines it, make projects more productive?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or more manageable? Or easier to maintain? Or with more quality?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Probably we all agree that code reuse is a good thing, but there are several ways to achieve this goal. The question is about the method of code reuse offered by OOP. Was it a good thing? &lt;strong&gt;Are there better methods to achieved code reuse&lt;/strong&gt; than object orientation, sub-classing, polymorphism, etc.? What ways are better? &lt;strong&gt;Why&lt;/strong&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tell us your experience with OOP reuse or other paradigms reuse.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-04T23:34:39.513" LastActivityDate="2011-01-24T10:07:51.260" Title="Does OOP fulfill the promise of code reuse? What alternatives are there to achieve code reuse?" Tags="&lt;productivity&gt;&lt;code-quality&gt;&lt;object-oriented&gt;&lt;code-reuse&gt;" AnswerCount="15" CommentCount="13" FavoriteCount="6" />
  <row Id="7619" PostTypeId="2" ParentId="7566" CreationDate="2010-09-27T18:14:11.300" Score="19" ViewCount="" Body="&lt;p&gt;Is the Joel Test your device to gauge how good a potential employer is?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I went for a job interview and the office was open plan thus noisy, had lots of disparate systems, a bug backlog, they didn't use many commercial tools, there were no testers, we wrote no code during the interview and no hallway usability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;..but you could take your dog to the office, you got one day a week to work on your own projects, there was 24x7 food with awesome Sushi, chill-out areas, a &lt;em&gt;slide&lt;/em&gt; to get down stairs, free coke/coffee/OJ, and they make some of the most amazing software on earth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It scored low on the Joel test, as far as I could see, but would you turn down working for this employer# based on this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's noisy - you can put headphones on. If there's no testing, champion unit and/or automated testing. If there's no nightly builds, write a cron job or get CI installed somewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By all means, use the Joel test as a guide to what questions you might want to ask, but there are lots of other metrics, some which may matter more to you than others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.google.com/intl/en/jobs/index.html&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;(No prizes for guessing who the employer was!)&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-09-27T18:14:11.300" CommentCount="5" />
  <row Id="7620" PostTypeId="1" CreationDate="2010-09-27T18:28:54.680" Score="5" ViewCount="306" Body="&lt;p&gt;What was your experience like? Is it worth it, or an distraction? How did you approach learning, if you did so?&lt;/p&gt;&#xA;" LastActivityDate="2011-02-17T23:08:08.867" Title="Have you tried to learn multiple programming languages at the same time?" Tags="&lt;programming-languages&gt;" AnswerCount="7" FavoriteCount="2" />
  <row Id="7621" PostTypeId="2" ParentId="7620" CreationDate="2010-09-27T18:29:58.507" Score="3" ViewCount="" Body="&lt;p&gt;When I started learning rails for the first time, I had a great book to guide me - &lt;a href=&quot;http://pragprog.com/titles/rails2/agile-web-development-with-rails&quot; rel=&quot;nofollow&quot;&gt;Agile Web Development with Rails&lt;/a&gt;.  However, at that stage I was new to &lt;strong&gt;Ruby&lt;/strong&gt;, &lt;strong&gt;Rails&lt;/strong&gt;, &lt;strong&gt;HTML&lt;/strong&gt;, &lt;strong&gt;JavaScript&lt;/strong&gt;, &lt;strong&gt;Ajax&lt;/strong&gt; and &lt;strong&gt;MVC&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I guess you could say I tried to learn multiple programming languages at the same time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It didn't work out terribly well for me - I just got completely lost in all the different syntax and concepts.  Later on (after I learnt MVC, HTML, JavaScript on their own) I came back to Rails and found the going a lot easier.  Even then I still struggled to learn Rails and Ruby at the same time.  So again I focused on Ruby on its own, and it worked out a lot better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So in my opinion, &lt;strong&gt;it's not worth it&lt;/strong&gt;.  Try and focus &lt;strong&gt;on one language at a time&lt;/strong&gt; and it will be much easier.  I think the only exception would be if you're learning the same language on 2 different platforms - like Ruby and IronRuby.&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-27T18:29:58.507" />
  <row Id="7622" PostTypeId="2" ParentId="35" CreationDate="2010-09-27T18:31:15.663" Score="29" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Why doesn't C++ have garbage&#xA;  collection?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Because there would be nothing left.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Courtesy of Software Engineer Radio.&lt;/p&gt;&#xA;" OwnerUserId="64" LastEditorUserId="64" LastEditorDisplayName="" LastEditDate="2011-05-26T10:11:00.653" LastActivityDate="2011-05-26T10:11:00.653" CommunityOwnedDate="2010-09-27T18:31:15.663" CommentCount="2" />
  <row Id="7624" PostTypeId="2" ParentId="7612" CreationDate="2010-09-27T18:36:04.400" Score="4" ViewCount="" Body="&lt;p&gt;Joel does a great &lt;a href=&quot;http://hginit.com/&quot; rel=&quot;nofollow&quot;&gt;tutorial&lt;/a&gt; on Mercurial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well worth it and short enough to merit reading online.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suppose you could look for books on git as a lot the concepts should cross over.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you learn how to use Mercurial you can get onto the why and when.&lt;/p&gt;&#xA;" OwnerUserId="64" LastEditorUserId="64" LastEditorDisplayName="" LastEditDate="2010-09-27T19:03:50.160" LastActivityDate="2010-09-27T19:03:50.160" CommentCount="2" />
  <row Id="7625" PostTypeId="2" ParentId="7620" CreationDate="2010-09-27T18:42:38.140" Score="2" ViewCount="" Body="&lt;p&gt;About 8 years ago, back when I was in College, I learned (though not all are actual languages) VB.NET, C#, Java, T-SQL, VBScript, JSP, ASP.NET, C++, HTML/XML/XSL, CSS concurrently for 2 years. This included various frameworks, libraries and platforms (.net/com/dcom/com+/directx/opengl/etc). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The overlap for most languages is fairly large, so I found that focusing on the differences between them to be the key to not getting too confused. &lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-27T18:42:38.140" CommentCount="1" />
  <row Id="7626" PostTypeId="2" ParentId="7620" CreationDate="2010-09-27T18:42:56.010" Score="0" ViewCount="" Body="&lt;p&gt;Well, I usually learn new languages for fun, and in general I'm always working with different languages at the same time. So naturally I don't have a problem with learning different languages at the same time; plus I think working with multiple languages at the same time trains you and makes you stop thinking about a language's specifics when looking for a solution for a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The actual process of learning a new language is always the same: Get the basics by reading some documentation about the language and really &lt;em&gt;learn&lt;/em&gt; the language by using it on some project. It doesn't really matter what kind of project it is, just pick something that makes fun. And then it usually shouldn't be a problem to have multiple projects at the same time.&lt;/p&gt;&#xA;" OwnerUserId="2762" LastActivityDate="2010-09-27T18:42:56.010" />
  <row Id="7627" PostTypeId="2" ParentId="7618" CreationDate="2010-09-27T18:47:47.350" Score="22" ViewCount="" Body="&lt;p&gt;Code re-use is achieved in OOP but it is also achieved in functional programming.  Anytime you take a block of code and make it callable by the rest of your code such that you can use this functionality elsewhere is code re-use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This type of code re-use also makes code more manageable because changing this one callable block changes all places that it is called.  I would say this result increased quality too and readability.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not sure OOP is simply there to provide code reuse.  I look at OOP as more of a way to interact with objects and abstract away the details of the data structure.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Object-oriented_programming&quot; rel=&quot;nofollow&quot;&gt;From Wikpedia:&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Object-oriented programming has roots that can be traced to the 1960s. As hardware and software became increasingly complex, manageability often became a concern. Researchers studied ways to maintain software quality and developed object-oriented programming in part to address common problems by strongly emphasizing discrete, reusable units of programming logic[citation needed]. The technology focuses on data rather than processes, with programs composed of self-sufficient modules (&quot;classes&quot;), each instance of which (&quot;objects&quot;) contains all the information needed to manipulate its own data structure (&quot;members&quot;). This is in contrast to the existing modular programming that had been dominant for many years that focused on the function of a module, rather than specifically the data, but equally provided for code reuse, and self-sufficient reusable units of programming logic, enabling collaboration through the use of linked modules (subroutines). This more conventional approach, which still persists, tends to consider data and behavior separately.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-27T18:47:47.350" CommentCount="9" />
  <row Id="7628" PostTypeId="2" ParentId="7620" CreationDate="2010-09-27T18:59:27.693" Score="0" ViewCount="" Body="&lt;p&gt;It's not really worth learning new languages unless you're using them for something.  You'd have to have a lot of free time to learn and use multiple languages at the same time (unless they're all related to one project).&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-09-27T18:59:27.693" />
  <row Id="7629" PostTypeId="1" AcceptedAnswerId="7632" CreationDate="2010-09-27T18:59:51.593" Score="14" ViewCount="759" Body="&lt;p&gt;What coding standards do you think are important for .NET / C# projects?  This could be anything from dealing with curly braces and spacing and pedantry like that.  Or it could be more fundamental questions such as what namespaces in the .NET Framework to avoid, best practices with config files, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to avoid creating a post that is simply the corollary to another.  For example, it would be fine to have one post focusing on curly braces.  We don't need two to support one style vs. the other.  The idea is not to vote for your pet standard, but rather to flesh out what should be thought about when creating standards.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2011-06-01T19:39:13.650" Title="Recommended .NET / C# coding standards?" Tags="&lt;c#&gt;&lt;.net&gt;&lt;coding-standards&gt;" AnswerCount="11" FavoriteCount="11" />
  <row Id="7630" PostTypeId="2" ParentId="7612" CreationDate="2010-09-27T19:01:39.667" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://hgbook.red-bean.com/&quot; rel=&quot;nofollow&quot;&gt;Mercurial: The Definitive Guide&lt;/a&gt; &#xA;by Bryan O'Sullivan is a very good &lt;strong&gt;free&lt;/strong&gt; intro to Mercurial available online.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The couple of chapters about Mercurial Queues are specially valuable since I haven't found a lot of information online on the topic.&lt;/p&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-09-27T19:01:39.667" CommentCount="3" />
  <row Id="7631" PostTypeId="2" ParentId="7618" CreationDate="2010-09-27T19:03:39.553" Score="2" ViewCount="" Body="&lt;p&gt;For me, yes, but not all the time, and it could have been done other ways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the time by creating an abstract base class and creating concrete implementations of that class.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also many frameworks make use of inheritance to provide code reuse (Delphi, Java, .Net are just some that spring instantly to mind).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's not to say that lots of utility libraries and snippets of code couldn't have done the job as well, but there's something pleasing about a well designed object hierarchy.&lt;/p&gt;&#xA;" OwnerUserId="2397" LastActivityDate="2010-09-27T19:03:39.553" CommentCount="0" />
  <row Id="7632" PostTypeId="2" ParentId="7629" CreationDate="2010-09-27T19:04:46.097" Score="18" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms229042.aspx&quot; rel=&quot;nofollow&quot;&gt;Here is the official Microsoft Guide on coding standards for the .NET framework Version 4.0.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want the older version for 1.1, try &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/czefa0ke.aspx&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't necessarily follow this to a 'T', as they say.  However, when in doubt, this is the best place to start to be consistent with the current .NET framework, which makes it easier on everyone, no matter if they're new to your particular project or not.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-27T19:04:46.097" CommentCount="4" />
  <row Id="7633" PostTypeId="2" ParentId="7629" CreationDate="2010-09-27T19:06:23.630" Score="6" ViewCount="" Body="&lt;p&gt;Guidelines from Microsoft:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;.NET -  &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/czefa0ke.aspx&quot; rel=&quot;nofollow&quot;&gt;http://msdn.microsoft.com/en-us/library/czefa0ke.aspx&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;C# - &lt;a href=&quot;http://blogs.msdn.com/brada/articles/361363.aspx&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com/brada/articles/361363.aspx&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-09-27T19:06:23.630" />
  <row Id="7634" PostTypeId="2" ParentId="7620" CreationDate="2010-09-27T19:08:13.753" Score="2" ViewCount="" Body="&lt;p&gt;I learned Objective-C and Common Lisp at the same time (the former for work, the latter for fun). It was fine. I think that the reason it was fine was that the syntaxes of the two languages are completely different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What catches me lots of times is writing lots of PHP and then writing &lt;code&gt;foo = 1&lt;/code&gt; in Delphi (which uses &lt;code&gt;:=&lt;/code&gt; as the assignment operator), or the converse, writing lots of Delphi and then wondering why PHP's complaining about &lt;code&gt;$foo = 1;&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-27T19:08:13.753" CommentCount="1" />
  <row Id="7635" PostTypeId="1" AcceptedAnswerId="7641" CreationDate="2010-09-27T19:16:57.757" Score="5" ViewCount="193" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have some colleagues at work, they arrive at the morning, switch off email, phone, close the door, etc. Then they close their eyes and during 30 minutes try to focus on their programming (C++, C, etc) and remember what they did yesterday. Then and somehow the process or imagine the code on they mind, with closed eyes. And some time later they just grab pencil and dump code on a sheet of paper or on their IDE (Kdevelop, Visual Studio, Eclipse, etc). Some of these guys are really effective and develop very complicated code. Me, I can not do this and I wonder if some of you can do something similar, and in case, if you could give some advice on how to be able to focus so deep in a codde or problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="3761" LastActivityDate="2010-09-28T00:28:08.393" Title="Are you able to close your eyes and focus/think just on your code?" Tags="&lt;focus&gt;&lt;concentration&gt;" AnswerCount="9" CommentCount="2" FavoriteCount="2" />
  <row Id="7636" PostTypeId="1" AcceptedAnswerId="7638" CreationDate="2010-09-27T19:17:55.733" Score="18" ViewCount="898" Body="&lt;p&gt;What details, if any, do you record in your comments when committing to source control? Do you tend to commit every tiny change or only mega updates to your code? Do you have any system or style guide when it comes to commit comments? What &lt;em&gt;shouldn't&lt;/em&gt; be in a commit comment?&lt;/p&gt;&#xA;" OwnerUserId="73" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-10-12T01:49:50.967" LastActivityDate="2011-02-28T14:46:06.263" CommunityOwnedDate="2011-02-28T14:46:06.263" ClosedDate="2011-03-31T09:05:21.570" Title="What is your typical source control commit comment?" Tags="&lt;version-control&gt;&lt;comments&gt;" AnswerCount="18" CommentCount="2" FavoriteCount="2" />
  <row Id="7637" PostTypeId="2" ParentId="7636" CreationDate="2010-09-27T19:26:05.307" Score="8" ViewCount="" Body="&lt;p&gt;I tent to commit changes related to a single feature/bug/etc. If the changes involve many files than the commit pack is big, otherwise is small.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of comment, I briefly describe what the change is about:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&quot;Fixed timeout problems by adding retry logic&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I don't add details about code in comment because those changes are obvious if you look at the source files.&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-09-27T19:26:05.307" CommunityOwnedDate="2011-02-28T14:46:06.263" CommentCount="1" />
  <row Id="7638" PostTypeId="2" ParentId="7636" CreationDate="2010-09-27T19:26:54.540" Score="37" ViewCount="" Body="&lt;p&gt;I always add a meaningful description to my commits. &quot;Meaningful&quot; is different for everybody, but I try to ask myself: &quot;If somebody else on the team read my comment, would they understand what I have done to the code?&quot;. If you use any &lt;strong&gt;bug/issue tracking system, always add a reference,&lt;/strong&gt; so that somebody can always get more detailed information about your change. &lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-09-27T19:26:54.540" CommunityOwnedDate="2011-02-28T14:46:06.263" CommentCount="4" />
  <row Id="7639" PostTypeId="2" ParentId="7629" CreationDate="2010-09-27T19:28:07.793" Score="4" ViewCount="" Body="&lt;p&gt;Start with &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/bb429476%28VS.80%29.aspx&quot; rel=&quot;nofollow&quot;&gt;FxCop&lt;/a&gt;. It will tell you about best practices violations in your existing code.&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-09-27T19:28:07.793" CommentCount="1" />
  <row Id="7640" PostTypeId="2" ParentId="7636" CreationDate="2010-09-27T19:29:25.800" Score="6" ViewCount="" Body="&lt;p&gt;My typical comment is one line that describes what I changed - as simple as that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't do mega check-ins, unless they are after a merge (and then the comment describes what was merged and from where).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two rules of thumb:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;if the description is too long, then your commit is too large. Try to commit more frequently&lt;/li&gt;&#xA;&lt;li&gt;source control comments are not the place for documentation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-09-27T19:29:25.800" CommunityOwnedDate="2011-02-28T14:46:06.263" CommentCount="1" />
  <row Id="7641" PostTypeId="2" ParentId="7635" CreationDate="2010-09-27T19:29:40.883" Score="1" ViewCount="" Body="&lt;p&gt;I find myself doing this before I goto bed.  I would be uncomfortable doing this at work as I would think upper management would think I am not doing anything.  They typically do not have a grip on how code development works.  Usually, laying out code is the simple part, design is the hard part.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding your question, this is on a per person basis.  I do not personally think one particular method works for all.  Whatever enables you to concentrate on the problem at hand or design in question is what works for you.  I find music to be a help as well as driving.  Yes I design programs while I drive, probably why I went left of center officer but the next day my boss is obliged at the progress I have made.  &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-09-27T19:29:40.883" CommentCount="1" />
  <row Id="7642" PostTypeId="2" ParentId="7636" CreationDate="2010-09-27T19:30:31.897" Score="6" ViewCount="" Body="&lt;p&gt;Lots of my changes are bug related, so I'd say.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Bug 1234, reviewed by Jane Doe.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In the bug database, for the same bug I'd put the SVN rev number in there, so the change set and bug related info can correlate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the change set is unrelated to a bug, I'd use a short description like mentioned by others here.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-27T19:30:31.897" CommunityOwnedDate="2011-02-28T14:46:06.263" CommentCount="3" />
  <row Id="7643" PostTypeId="2" ParentId="7636" CreationDate="2010-09-27T19:31:22.597" Score="1" ViewCount="" Body="&lt;p&gt;I usually don't write the comments for someone else - &lt;strong&gt;I write them for myself&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's face it - most of the time if you need to figure out what a change did you'll simply ask the developer himself.  But I often find myself looking back through my changes and try and find a specific changeset.  This is where comments are useful.&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-27T19:31:22.597" CommunityOwnedDate="2011-02-28T14:46:06.263" CommentCount="5" />
  <row Id="7644" PostTypeId="2" ParentId="7620" CreationDate="2010-09-27T19:38:33.267" Score="0" ViewCount="" Body="&lt;p&gt;When I was in college, I too took multiple languages at the same time, one term learning 3 languages and taking a more advanced class that required the use of a forth.  There is a lot of overlap in concepts, and it develops useful skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, right now I'm working on SQL-Server stored procedures which are called in Crystal Reports, which will be called by Cold Fusion code.  Throw in some SSIS vb.net code, link to some Oracle databases, and read some c#.net along side that.  That's not abnormal, and it's useful to be able to be competent in all of them at the same time.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I think learning multiple languages is a good idea, both to see the syntax and concept overlaps, and to make you flexible in an environment that uses many languages, IDEs, tools, and more.&lt;/p&gt;&#xA;" OwnerUserId="88" LastActivityDate="2010-09-27T19:38:33.267" />
  <row Id="7645" PostTypeId="2" ParentId="7551" CreationDate="2010-09-27T19:39:34.770" Score="0" ViewCount="" Body="&lt;p&gt;Universities contribute a lot of programming languages, and so do very large corporations like Ericsson (Erlang = Ericsson language), Bell Labs (B and C languages), Google (Go language as of a few months prior). Many of the ones that were written as part of university research aren't used much. There are a few notable exceptions, though. I suppose writing your own language/compiler makes a good topic for PhD theses of people studying CS Theory or related disciplines. It strikes me that Python is one of the first languages to be born out of the collaborative online effort of various programmers around a single idea.&lt;/p&gt;&#xA;" OwnerUserId="1398" LastActivityDate="2010-09-27T19:39:34.770" CommentCount="1" />
  <row Id="7646" PostTypeId="2" ParentId="7636" CreationDate="2010-09-27T19:48:33.357" Score="2" ViewCount="" Body="&lt;p&gt;I'm picky about whitespace. I work on my own (at the moment at least) so &quot;office whitespace code convention&quot; means &quot;whatever I like&quot;. When I do edit whitespace, I keep those edits to a separate commit, and I add the comment &quot;Ignore. Whitespace change.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least if I put the comment there, rather than just leaving it blank, I don't go &quot;Hm, did I leave that comment blank because I was too lazy/busy to write something, or did I leave it blank because the code change should be obvious?&quot; Only, of course, if the change is so obvious, I'll still have to examine the diff; I wouldn't need to do that if I had a comment I could skim!&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-27T19:48:33.357" CommunityOwnedDate="2011-02-28T14:46:06.263" />
  <row Id="7647" PostTypeId="2" ParentId="7636" CreationDate="2010-09-27T19:50:47.337" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;got a fix in&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;broke something, check later&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Realized this isn't correct, dumping the branch&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;This broke the other function that was doing the frontend hook bit, fixed it by changing the sort order on the function&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Realize that often no-one reads these messages, and often I write sincere well thought out ones. However, every once in a while...&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-27T19:50:47.337" CommunityOwnedDate="2011-02-28T14:46:06.263" />
  <row Id="7649" PostTypeId="2" ParentId="2815" CreationDate="2010-09-27T19:59:08.433" Score="5" ViewCount="" Body="&lt;p&gt;It'd be nice if unassigned event handlers wouldn't throw a NullReferenceException and had a built-in thread-safe implementation for calling.  You should be able to do this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;PropertyChanged(this, new PropertyChangedEventArgs(&quot;Foo&quot;));&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;instead of having to do this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;PropertyChangedEventHandler h = PropertyChanged;&#xA;if (h != null)&#xA;{&#xA;   h(this, new PropertyChangedEventArgs(&quot;Foo&quot;));&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I really can't think of any risk a change like this would introduce, other than code not being backward-compatible once it was added to the language.&lt;/p&gt;&#xA;" OwnerUserId="3138" LastActivityDate="2010-09-27T19:59:08.433" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="1" />
  <row Id="7650" PostTypeId="2" ParentId="2815" CreationDate="2010-09-27T20:02:01.043" Score="6" ViewCount="" Body="&lt;p&gt;I would add&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;foreach(thing t in things)&#xA;{&#xA;//do stuff&#xA;}&#xA;else&#xA;{&#xA;//this only runs if there are no iterations above&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;probably could work with other loop types too&lt;/p&gt;&#xA;" OwnerUserId="785" LastActivityDate="2010-09-27T20:02:01.043" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="3" />
  <row Id="7651" PostTypeId="2" ParentId="7581" CreationDate="2010-09-27T20:03:54.007" Score="1" ViewCount="" Body="&lt;p&gt;While the answer may seem to be yes to the casual user, it really isn't a good comparison. There are many different computer languages that can run under Linux and Windows. In fact, the different .NET languages (such as C#) can run under Linux using Mono.  In addition, there are MANY programs written in Java that run just fine under Windows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A better comparison might be Java is to the Java Run Time Engine as C# is to the .Net Framework.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-27T20:03:54.007" />
  <row Id="7652" PostTypeId="1" CreationDate="2010-09-27T20:04:27.940" Score="14" ViewCount="821" Body="&lt;p&gt;Lets say you got some piece of code and you have no idea which language it was written in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the unique &quot;signature&quot; syntax constructions for each programming language that you can use to quickly determine code origin?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(PS. Mentioning only one language in an answer probably would be a good idea. Having more than one answer for the same language is fine, lets vote for the best one)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="193" LastActivityDate="2011-03-23T02:52:09.183" CommunityOwnedDate="2011-03-20T14:02:27.677" Title="Identifying programming languages by a piece of code" Tags="&lt;programming-languages&gt;" AnswerCount="22" CommentCount="8" FavoriteCount="2" />
  <row Id="7653" PostTypeId="2" ParentId="7636" CreationDate="2010-09-27T20:05:05.677" Score="3" ViewCount="" Body="&lt;p&gt;My commits are formatted roughly like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Summary of commit (bug number if relevant)&#xA;&#xA;Details of commit, if relevant,&#xA;across multiple lines&#xA;&#xA;Planned TOTO items if not a bugfix&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-09-27T20:05:05.677" CommunityOwnedDate="2011-02-28T14:46:06.263" />
  <row Id="7654" PostTypeId="2" ParentId="7635" CreationDate="2010-09-27T20:06:37.720" Score="0" ViewCount="" Body="&lt;p&gt;Not about the code per se, as in lines of code, but I do think about how code would interact. This helps me to do abstraction and modularize the code into classes and/or methods. I don't think anyone just hits the keys before having thought out at least this part first...&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-27T20:06:37.720" />
  <row Id="7655" PostTypeId="2" ParentId="7652" CreationDate="2010-09-27T20:13:26.510" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Perl&lt;/strong&gt; uses&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;use&quot; to include a module&lt;/li&gt;&#xA;&lt;li&gt;$ % @ for variables.&lt;/li&gt;&#xA;&lt;li&gt;&quot;my&quot; and &quot;our&quot; to declare variables&lt;/li&gt;&#xA;&lt;li&gt;&quot;sub&quot; to define a function&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-28T12:56:25.123" LastActivityDate="2010-09-28T12:56:25.123" CommunityOwnedDate="2011-03-20T14:02:27.677" CommentCount="1" />
  <row Id="7656" PostTypeId="1" AcceptedAnswerId="7660" CreationDate="2010-09-27T20:17:03.930" Score="13" ViewCount="553" Body="&lt;p&gt;Like the title says, do you ever write code with pen and paper? If so, why? Do those who don't do if have anything to gain by doing so more often?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2011-02-21T13:10:51.883" Title="Do you ever write code with pen and paper, and should we do it more often?" Tags="&lt;coding&gt;&lt;pen-and-paper&gt;" AnswerCount="15" CommentCount="2" FavoriteCount="4" />
  <row Id="7657" PostTypeId="2" ParentId="7636" CreationDate="2010-09-27T20:18:34.057" Score="-2" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;SELECT comment &#xA;FROM (&#xA;    SELECT TOP 1 comment, COUNT(comment) &#xA;    FROM hgCommits &#xA;    GROUP BY comment &#xA;    ORDER BY 2 DESC &#xA;)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Merged&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*No, I don't store my hgCommits in a sql database thanks ... that would be dumb&lt;/p&gt;&#xA;" OwnerUserId="2356" LastActivityDate="2010-09-27T20:18:34.057" CommunityOwnedDate="2011-02-28T14:46:06.263" CommentCount="1" />
  <row Id="7658" PostTypeId="2" ParentId="7635" CreationDate="2010-09-27T20:25:05.847" Score="0" ViewCount="" Body="&lt;p&gt;Like Chris, I do this at home -- I'm a freelance programmer, and do a lot of programming from my home office.  Sometimes when I am stuck, I will go into the next room and lie down for a bit to think about the problem.  For some reason I seem to think better when I'm horizontal.  I've also noticed when am trying to write a story, and I have writer's block, I will do the same thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is, as soon as I get up to write down anything, I start to lose it.  I have tried using a netbook while lying down  but that was not very convenient. Tried dictation using Dragon Naturally Speaking, but that's no good for code.  Pencil and paper is about the only thing that works.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-27T20:25:05.847" CommentCount="1" />
  <row Id="7659" PostTypeId="2" ParentId="4614" CreationDate="2010-09-27T20:30:33.860" Score="0" ViewCount="" Body="&lt;p&gt;Exceptional coders have influence on a project beyond the scope of their own code and spot problems before they happen because of their experience. They make everyone on the team better and save their projects from bad design and management. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They've actually created something that is exceptional.&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2011-04-05T17:09:50.483" LastActivityDate="2011-04-05T17:09:50.483" CommunityOwnedDate="2011-04-05T15:40:39.513" />
  <row Id="7660" PostTypeId="2" ParentId="7656" CreationDate="2010-09-27T20:31:16.260" Score="18" ViewCount="" Body="&lt;p&gt;Yes, I do it quite often and I think it's really good. I don't write code, merely &lt;strong&gt;pseudo-code&lt;/strong&gt; when I figuring out &lt;strong&gt;algorithms&lt;/strong&gt; for different problems. The biggest benefit is that you can  &lt;strong&gt;draw figures and arrows&lt;/strong&gt; together with the pseudo-code which is very helpful. I definitely recommend it.&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-27T22:06:10.773" LastActivityDate="2010-09-27T22:06:10.773" CommentCount="6" />
  <row Id="7666" PostTypeId="2" ParentId="7656" CreationDate="2010-09-27T20:36:34.147" Score="0" ViewCount="" Body="&lt;p&gt;I tend to draw out UML diagrams on paper first before designing a system. Having to interact with a keyboard or mouse in my UML modeling program hinders my ability to get the design out, so a pen and paper feels more natural.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of code, I don't tend to write algorithms or snippets by hand. I tend to leave a &quot;Sandbox&quot; program open, and do test development there.&lt;/p&gt;&#xA;" OwnerUserId="115" LastActivityDate="2010-09-27T20:36:34.147" />
  <row Id="7667" PostTypeId="2" ParentId="7656" CreationDate="2010-09-27T20:36:43.357" Score="1" ViewCount="" Body="&lt;p&gt;I did a lot in the past.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually My first steps was on paper. I practiced programming before I have access to a computer. I worked as a office boy and I always took a notepad (paper of course) and a pen to code while I was waiting at long lines on banks. When I bought my first computer (Sinclair Z80) I had lots of bugs to type. You read right, lots of bugs, not lots of code. Lesson: code write to a young guy without experience, on a paper standing on a bank line just produces bug :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Today I planned overall things on paper but never code on it.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-27T20:36:43.357" />
  <row Id="7675" PostTypeId="2" ParentId="7581" CreationDate="2010-09-27T20:46:45.183" Score="0" ViewCount="" Body="&lt;p&gt;Since when is Java the de facto standard for Linux development? GNU is mostly C, GTK and GNOME are mostly C, X Windowing System is C, KDE is C++. I use linux and I don't even bother to install Java - nothing I use needs it.&lt;/p&gt;&#xA;" OwnerUserId="227" LastActivityDate="2010-09-27T20:46:45.183" />
  <row Id="7678" PostTypeId="2" ParentId="7652" CreationDate="2010-09-27T20:50:26.013" Score="7" ViewCount="" Body="&lt;p&gt;Well, LISP-flavors tend to have a lot of parentheses.&lt;/p&gt;&#xA;" OwnerUserId="227" LastActivityDate="2010-09-27T20:50:26.013" CommunityOwnedDate="2011-03-20T14:02:27.677" CommentCount="1" />
  <row Id="7679" PostTypeId="2" ParentId="7652" CreationDate="2010-09-27T20:50:46.490" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;PHP&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The function names will be either be &lt;strong&gt;onecontinuousword()&lt;/strong&gt; or &lt;strong&gt;separated_by_underscores()&lt;/strong&gt;. The words within the function name will be &lt;strong&gt;complete_words()&lt;/strong&gt;, &lt;strong&gt;abbr()&lt;/strong&gt;, some sort of &lt;strong&gt;hungarian_n()&lt;/strong&gt;, or do something unexpected given the name, &lt;strong&gt;six2eight_weeks()&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Functions with the exact same parameters usually take care to reverse the order, just to make sure that you're giving them the proper amount of love and attention. Of course, attention and love are often needed by functions with the exact same parameters. Sibling rivalry and all that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If those methods of identification fail, you can always look for the PHP tags: &lt;code&gt;&amp;lt;?php ?&amp;gt;&lt;/code&gt;, &lt;code&gt;echo&lt;/code&gt;, the &lt;code&gt;$&lt;/code&gt; variable, &lt;code&gt;$_POST&lt;/code&gt;, &lt;code&gt;$_GET&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If looking at the code fails, look at the application. If it's a CMS, blog, forum, shopping cart, or a Facebook, Twitter, or Digg clone, chances are good that it's PHP.&lt;/p&gt;&#xA;" OwnerUserId="73" LastEditorUserId="73" LastEditorDisplayName="" LastEditDate="2010-09-27T22:18:23.910" LastActivityDate="2010-09-27T22:18:23.910" CommunityOwnedDate="2011-03-20T14:02:27.677" CommentCount="1" />
  <row Id="7680" PostTypeId="2" ParentId="1588" CreationDate="2010-09-27T20:52:14.820" Score="1" ViewCount="" Body="&lt;p&gt;If you can't afford a high-end enough laptop, get a desktop. 3 or more monitors - desktop. Ideally, I would only program when sitting at one desk, but it doesn't always work that way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't have an office at work, so sometimes I steal a conference room and use a laptop. &#xA;Some tasks are mundane and can be done watching TV. Others, require seclusion. Never know when you have to program on the train or some off-site location. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-27T20:52:14.820" CommunityOwnedDate="2011-01-27T05:21:04.337" />
  <row Id="7681" PostTypeId="2" ParentId="7656" CreationDate="2010-09-27T20:54:17.267" Score="0" ViewCount="" Body="&lt;p&gt;I often write psuedo-code with pen and paper to hash out ideas and flow. And since I write a lot in Python, it winds up being very close to what I write in the editor. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's something about a pencil/pen in hand that switches me into creative mode and requires less attention than typing. I also like the way paper gives me the option to diagram and write notes that I can go back to later when I'm writing up the documentation.&lt;/p&gt;&#xA;" OwnerUserId="462" LastActivityDate="2010-09-27T20:54:17.267" />
  <row Id="7682" PostTypeId="2" ParentId="7635" CreationDate="2010-09-27T21:00:22.407" Score="0" ViewCount="" Body="&lt;p&gt;Are you sure that they are not just using the time to wake up? ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I space out while thinking of a problem, just staring at nothing at all for a while. It doesn't last for more than a minute or so, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise it seem like I think better while coding, so I just start with the simple stuff while I'm thinking of how the more complicated stuff should work.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Some of these guys are really&#xA;  effective and develop very complicated&#xA;  code.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Either that's not an accurate description of what they are doing, or they aren't really good programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they are actually creating simple code to solve complicated problems, then they are worth all the admiration, but if they are in fact creating complicated code to solve any problem, they should rethink what they ary doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My favorite quote comes to mind:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Debugging is twice as hard as writing&#xA;  the code in the first place.&#xA;  Therefore, if you write the code as&#xA;  cleverly as possible, you are, by&#xA;  definition, not smart enough to debug&#xA;  it.&quot; - Brian W. Kernighan&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-09-27T21:00:22.407" CommentCount="1" />
  <row Id="7683" PostTypeId="2" ParentId="2815" CreationDate="2010-09-27T21:06:19.997" Score="-6" ViewCount="" Body="&lt;p&gt;I would restrict &lt;code&gt;var&lt;/code&gt; to enumerable query results (probably would change the keyword to &lt;code&gt;query&lt;/code&gt; at the same time), create a contextual keyword called &lt;code&gt;anon&lt;/code&gt; to deal with anonymous types outside of query results, and then make the class name optional on the &lt;em&gt;right side&lt;/em&gt; in an initialization statement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would cut out utter crap like &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var mystring = &quot;lol&quot;; // not permissable, lazy bum&#xA;var randomObject = ThisFunctionNameMeansNothing(); // get the freak out&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;While still cutting down on space produced by generics and long class names &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;MyRidiculouslyLongClassName&amp;lt;string, int, Foo&amp;gt; myClass = new();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3754" LastActivityDate="2010-09-27T21:06:19.997" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="1" />
  <row Id="7684" PostTypeId="2" ParentId="7618" CreationDate="2010-09-27T21:10:26.320" Score="11" ViewCount="" Body="&lt;p&gt;I agree with Chris, functional programming is a good way to reuse code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many programs has code structures that is recurring. For this some &lt;em&gt;design patterns&lt;/em&gt; are used in the OOP-world, but this can be achieved by &lt;strong&gt;recursive functions&lt;/strong&gt; and &lt;strong&gt;pattern matching&lt;/strong&gt; in functional programming languages. For more on this see the first chapter in &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1933988924&quot; rel=&quot;nofollow&quot;&gt;Real World Functional Programming&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that deep inheritance in OOP can be misleading in many cases. You have a class and many of the closely related methods are implemented in different files. As &lt;em&gt;Joe Armstrong&lt;/em&gt; said about OOP:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;High order functions&lt;/strong&gt; are also very useful when it comes to code reuse e.g. &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Map_%28higher-order_function%29&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;map&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Fold_%28higher-order_function%29&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;foldr&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt; that is the foundation for Google's &lt;a href=&quot;http://en.wikipedia.org/wiki/MapReduce&quot; rel=&quot;nofollow&quot;&gt;MapReduce&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Asynchronous message passing&lt;/strong&gt; is also a good way to organize complex software, and some computer scientists state that objects was assumed to communicate with eachother asynchronous as in the &lt;strong&gt;&lt;a href=&quot;http://pragprog.com/articles/tell-dont-ask&quot; rel=&quot;nofollow&quot;&gt;Tell, don't ask&lt;/a&gt;&lt;/strong&gt; OOP principle. See more about this in &lt;a href=&quot;http://www.infoq.com/news/2010/07/objects-smalltalk-erlang&quot; rel=&quot;nofollow&quot;&gt;&#xA;Object Oriented Programming: The Wrong Path?&lt;/a&gt; were &lt;em&gt;Joe Armstrong&lt;/em&gt; is quoted:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I started wondering about what object oriented programming was and I thought Erlang wasn't object oriented, it was a functional programming language. Then, my thesis supervisor said &quot;But you're wrong, Erlang is extremely object oriented&quot;. He said object oriented languages aren't object oriented. I might think, though I'm not quite sure if I believe this or not, but Erlang might be the only object oriented language because the 3 tenets of object oriented programming are that it's based on &lt;strong&gt;message passing&lt;/strong&gt;, that you have &lt;strong&gt;isolation&lt;/strong&gt; between objects and have &lt;strong&gt;polymorphism&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Asynchronous message passing as in event driven systems and in Erlang is also a very good way to decouple systems and &lt;strong&gt;loose coupling&lt;/strong&gt; is important in complex systems. With a sufficiently decoupled system you can evolve the system while it is running, maybe on different nodes. Unibet made a great presentation about this: &lt;a href=&quot;http://www.infoq.com/presentations/Domain-Event-Driven-Architecture&quot; rel=&quot;nofollow&quot;&gt;Domain Event Driven Architecture&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However I think that most of the code reuse is done by using libraries and frameworks.&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-28T06:48:21.200" LastActivityDate="2010-09-28T06:48:21.200" CommentCount="1" />
  <row Id="7685" PostTypeId="2" ParentId="7652" CreationDate="2010-09-27T21:12:28.617" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Ruby&lt;/strong&gt; uses&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;require&quot; to include a module&lt;/li&gt;&#xA;&lt;li&gt;&quot;def&quot; to define functions&lt;/li&gt;&#xA;&lt;li&gt;&quot;end&quot; to end a block&lt;/li&gt;&#xA;&lt;li&gt;&quot;nil&quot; for null&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-27T21:12:28.617" CommunityOwnedDate="2011-03-20T14:02:27.677" CommentCount="5" />
  <row Id="7686" PostTypeId="1" AcceptedAnswerId="7761" CreationDate="2010-09-27T21:18:24.303" Score="8" ViewCount="775" Body="&lt;p&gt;I am curious about experiences of programmers who have gone beyond college or university and now work in the industry. I am not talking about academia (you need PhD there anyway). Do you have a Master's degree? Has it helped your career? Are there any other benefits besides the knowledge one gains while pursuing the degree?&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-08T04:25:51.027" Title="Does having Master's degree in Computer Science help your career?" Tags="&lt;career&gt;&lt;experience&gt;&lt;education&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="2" />
  <row Id="7687" PostTypeId="2" ParentId="7636" CreationDate="2010-09-27T21:20:49.790" Score="0" ViewCount="" Body="&lt;p&gt;Just ask yourself these 2 questions. Is anyone else going to see the commit? Is it a big project?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If yes for either one, then you should commit often and comment properly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also tend to be a little bit lazy about commenting commits for test projects and new projects, some time into the project I start commenting better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And always refer to a source, if there is one, like bug tracker, forum discussion, ...&lt;/p&gt;&#xA;" OwnerUserId="1283" LastActivityDate="2010-09-27T21:20:49.790" CommunityOwnedDate="2011-02-28T14:46:06.263" />
  <row Id="7688" PostTypeId="2" ParentId="7652" CreationDate="2010-09-27T21:23:03.207" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;PHP&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check if 50% of the characters are dollar signs.&lt;/p&gt;&#xA;" OwnerUserId="1827" LastActivityDate="2010-09-27T21:23:03.207" CommunityOwnedDate="2011-03-20T14:02:27.677" CommentCount="5" />
  <row Id="7689" PostTypeId="2" ParentId="7652" CreationDate="2010-09-27T21:24:57.760" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;J, K,&lt;/strong&gt; and &lt;strong&gt;APL&lt;/strong&gt; look like a stream of censored swearing. In J, &lt;code&gt;+/%#&lt;/code&gt; actually does represent a four-letter word: &lt;em&gt;mean.&lt;/em&gt;  APL in particular can be distinguished by the high frequency of non-ASCII characters.&lt;/p&gt;&#xA;" OwnerUserId="998" LastActivityDate="2010-09-27T21:24:57.760" CommunityOwnedDate="2011-03-20T14:02:27.677" CommentCount="2" />
  <row Id="7690" PostTypeId="1" AcceptedAnswerId="7707" CreationDate="2010-09-27T21:25:12.060" Score="4" ViewCount="110" Body="&lt;p&gt;I'm asking this question because Oracle has decided not to give hardcopy certificates for all Sun certifications&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this good or bad? and does any employer ask for the certificate itself?&lt;/p&gt;&#xA;" OwnerUserId="1725" LastActivityDate="2010-09-27T22:22:42.173" Title="Do hardcopy certificates matter?" Tags="&lt;certification&gt;&lt;oracle&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="7692" PostTypeId="2" ParentId="7686" CreationDate="2010-09-27T21:34:55.730" Score="2" ViewCount="" Body="&lt;p&gt;I may be a bit of a special case because although I have an MS in Computer Science, my undergraduate degree was a BSEE.  The combination has been the core of my freelance embedded software  career (which I started about a year after getting my MS, some 32 years ago).  I did my graduate studies over a period of six years, going to night school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know having a master's degree on my resume is looked upon very favorably in interviews (I've been told as much).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think I also learned a lot more computer science in graduate school than I would have getting a BSCS, both because I took things more seriously (evidenced by a big jump in my GPA from undergraduate to graduate school), and because I wasn't distracted by taking all of the other required courses one must have to get a bachelor's degree.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-27T21:34:55.730" CommentCount="1" />
  <row Id="7693" PostTypeId="2" ParentId="7093" CreationDate="2010-09-27T21:36:47.240" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;A great lecture on Google Code Channel: &lt;a href=&quot;http://www.youtube.com/watch?v=-vD6PUdf3Js&amp;amp;feature=channel&quot; rel=&quot;nofollow&quot;&gt;Cluster Computing and MapReduce Lecture 2&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;A good presentation from Google: &lt;a href=&quot;http://www.youtube.com/watch?v=zVSSsJ_ua4Q&amp;amp;feature=related&quot; rel=&quot;nofollow&quot;&gt;MapReduce&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-27T22:11:57.257" LastActivityDate="2010-09-27T22:11:57.257" />
  <row Id="7695" PostTypeId="2" ParentId="7656" CreationDate="2010-09-27T21:41:31.227" Score="0" ViewCount="" Body="&lt;p&gt;As I mentioned in &lt;a href=&quot;http://programmers.stackexchange.com/questions/7635/are-you-able-to-close-your-eyes-and-focus-think-just-on-your-code&quot;&gt;this post&lt;/a&gt;, sometimes when working at home I will go into the next room and lie down to think about a problem I'm stuck on.  Ironically I've found that as soon as I get back up I start to lose the details of whatever solution I've come up with, so I've used pen and paper to capture my thoughts.  It's also more useful because I tend to draw diagrams at the same time.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-27T21:41:31.227" />
  <row Id="7696" PostTypeId="2" ParentId="7245" CreationDate="2010-09-27T21:42:18.803" Score="4" ViewCount="" Body="&lt;p&gt;Am I the last person on earth who remembers the (&lt;a href=&quot;http://en.wikipedia.org/wiki/Layer_element&quot; rel=&quot;nofollow&quot;&gt;Netscape 4-only&lt;/a&gt;) &lt;a href=&quot;http://www.blooberry.com/indexdot/html/tagpages/l/layer.htm&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;layer&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;http://www.blooberry.com/indexdot/html/tagpages/i/ilayer.htm&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;ilayer&lt;/code&gt;&lt;/a&gt; tags?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://developer.mozilla.org/index.php?title=en/Using_Web_Standards_in_your_Web_Pages&amp;amp;revision=8&quot; rel=&quot;nofollow&quot;&gt;Netscape 4 also allowed&lt;/a&gt; the &lt;code&gt;div&lt;/code&gt; tag to have a &lt;code&gt;src&lt;/code&gt; attribute, which accomplished the same thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Netscape submitted them to the W3C, who chose to not include them—use &lt;code&gt;iframe&lt;/code&gt; instead.&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-09-27T21:42:18.803" CommentCount="2" />
  <row Id="7698" PostTypeId="2" ParentId="7656" CreationDate="2010-09-27T21:43:01.177" Score="4" ViewCount="" Body="&lt;p&gt;I never write actual code on paper.  Pseudo-code or diagrams, yes.  Little notes about things I need for the next stage of coding, yes.  Code, no.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I write code out with a pen, I just have to retype it later.  It's easier to type it into the machine in the first place.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-27T21:43:01.177" />
  <row Id="7699" PostTypeId="2" ParentId="7656" CreationDate="2010-09-27T21:46:55.470" Score="4" ViewCount="" Body="&lt;p&gt;I do but mostly pseudo-code or simple diagrams.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It comes from growing up with an engineer for a father.  His first admonition when I had a issue solving a problem was &quot;draw a picture&quot;.  Thus, anytime I'm having difficulty wrapping my head around code I do just that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I probably do it most when reverse engineering someone else's code than when writing my own, though.&lt;/p&gt;&#xA;" OwnerUserId="1209" LastActivityDate="2010-09-27T21:46:55.470" CommentCount="2" />
  <row Id="7700" PostTypeId="2" ParentId="7652" CreationDate="2010-09-27T22:01:14.267" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C#&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A combination of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Classes will be in PascalCase, whereas all primitive types will be lower case(1)&lt;/li&gt;&#xA;&lt;li&gt;Interfaces will be in PascalCase starting with a capital 'I'&lt;/li&gt;&#xA;&lt;li&gt;using 'someNamespace' at the top of a class. C++ includes, Java imports&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These will obviously be different if the classes/interfaces are not from the .NET/Mono as naming conventions aren't enforced by the compiler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(1)which can let you distinguish from C++ and Java because C# uses string while C++/Java uses String (though the latter is still possible in C# as well - I've found it less common)&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-27T22:01:14.267" CommunityOwnedDate="2011-03-20T14:02:27.677" CommentCount="4" />
  <row Id="7702" PostTypeId="2" ParentId="7656" CreationDate="2010-09-27T22:02:27.013" Score="1" ViewCount="" Body="&lt;p&gt;Diagrams and such, especially in meetings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The actual coding process, though - at least the way I do it - doesn't lend itself to pen and paper. In much the same way that word processors promote rapid revision and more &quot;sculpting&quot; of documents than pen and paper or an old typewriter, interacting with the PC and the compiler real-time promotes constant innovation and inspiration, and lets your subconscious get in touch with the task at hand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, I couldn't write down a list of instructions for how I go about my job, but it seems to work pretty well. &lt;/p&gt;&#xA;" OwnerUserId="3772" LastActivityDate="2010-09-27T22:02:27.013" />
  <row Id="7703" PostTypeId="2" ParentId="7656" CreationDate="2010-09-27T22:04:35.293" Score="1" ViewCount="" Body="&lt;p&gt;Nope.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like others, I'll diagram stuff out and draw butchered UML (because actually &lt;em&gt;drawing&lt;/em&gt; compliant UML would take forever) but never code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can type pseudocode faster than I can hand-write anything.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-27T22:04:35.293" />
  <row Id="7704" PostTypeId="2" ParentId="2815" CreationDate="2010-09-27T22:08:37.110" Score="-3" ViewCount="" Body="&lt;p&gt;Get rid of the &lt;code&gt;var&lt;/code&gt; keyword.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Allow fall-through cases in &lt;code&gt;switch()&lt;/code&gt; without having to jump through hoops.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd love a version that's less entangled with the framework that could be used to generate &lt;em&gt;native&lt;/em&gt; code. C# is a &lt;strong&gt;lot&lt;/strong&gt; like Delphi (thanks, Anders!) which used the Borland C++ compiler back-end. There's no reason C# couldn't do the same with MSVC. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Support for inline assembly. Just because I'm crazy like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A neat trick would be to build something that compiles C# into C++. You'd get to keep succinct syntax, a great object model, good exception handling, etc. I know there's no 1:1 correspondence between the two languages on many points, but it's possible. Yeah, I'll get right on that (not).&lt;/p&gt;&#xA;" OwnerUserId="3772" LastActivityDate="2010-09-27T22:08:37.110" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="9" />
  <row Id="7705" PostTypeId="1" CreationDate="2010-09-27T22:18:09.603" Score="14" ViewCount="394" Body="&lt;p&gt;When dealing with complicated algorithms in languages with support for nested functions (such as Python and D) I often write huge functions (because the algorithm is complicated) but mitigate this by using nested functions to structure the complicated code.  Are huge (100+ line) functions still considered evil even if they're well-structured internally via the use of nested functions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:  For those of you not familiar with Python or D, nested functions in these languages also allow access to the outer function scope.  In D this access allows mutation of variables in the outer scope.  In Python it only allows reading.  In D you can explicitly disable access to the outer scope in a nested function by declaring it &lt;code&gt;static&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-17T08:56:29.930" LastActivityDate="2011-02-18T19:08:23.073" Title="Are long functions acceptable if they have internal structure?" Tags="&lt;style-guide&gt;&lt;coding-standards&gt;&lt;cowboy-coding&gt;&lt;legibility&gt;" AnswerCount="9" CommentCount="3" FavoriteCount="4" />
  <row Id="7706" PostTypeId="2" ParentId="7635" CreationDate="2010-09-27T22:21:03.690" Score="1" ViewCount="" Body="&lt;p&gt;Sounds like a nap to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I pace and talk to myself while I think; which is my implementation of the rubber duck technique.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-27T22:21:03.690" CommentCount="2" />
  <row Id="7707" PostTypeId="2" ParentId="7690" CreationDate="2010-09-27T22:22:42.173" Score="5" ViewCount="" Body="&lt;p&gt;If an employer ever asks you to prove that you have a certificate (and some will, because people DO lie about these things) that you list on a resume for instance, giving them a web address (and maybe a login) just won't do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should be able to print one out though.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-27T22:22:42.173" CommentCount="2" />
  <row Id="7708" PostTypeId="2" ParentId="7652" CreationDate="2010-09-27T22:24:56.100" Score="18" ViewCount="" Body="&lt;p&gt;Being my usual argumentative self, I offer a counterpoint to the other answers:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;------------------Snip---------------------&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;                                                                         (*O/*_/&#xA;Cu  #%* )pop mark/CuG 4 def/# 2 def%%%%@@P[TX---P\P_SXPY!Ex(mx2ex(&quot;SX!Ex4P)Ex=&#xA;CuG #%*                                                                  *+Ex=&#xA;CuG #%*------------------------------------------------------------------*+Ex=&#xA;CuG #%*   POLYGLOT - a program in seven languages      15 February 1991  *+Ex=&#xA;CuG #%*                                                                  *+Ex=&#xA;CuG #%*   Written by Kevin Bungard, Peter Lisle, and Chris Tham          *+Ex=&#xA;CuG #%*                                                                  *+Ex=&#xA;CuG #%*   We have successfully run this program using the following:     *+Ex=&#xA;CuG #%*     ANSI COBOL:            MicroFocus COBOL85 (not COBOL74)      *+Ex=&#xA;CuG #%*     ISO  Pascal:           Turbo Pascal (DOS &amp;amp; Mac), Unix PC,    *+Ex=&#xA;CuG #%*                            AIX VS Pascal                         *+Ex=&#xA;CuG #%*     ANSI Fortran:          Unix f77, AIX VS Fortran              *+Ex=&#xA;CuG #%*     ANSI C (lint free):    Microsoft C, Unix CC, GCC, Turbo C++, *+Ex=&#xA;CuG #%*                            Think C (Mac)                         *+Ex=&#xA;CuG #%*     PostScript:            GoScript, HP/Adobe cartridge,         *+Ex=&#xA;CuG #%*                            Apple LaserWriter                     *+Ex=&#xA;CuG #%*     Shell script:          gnu bash, sh (SysV, BSD, MKS), ksh    *+Ex=&#xA;CuG #%*     8086 machine language: MS-DOS 2.00, 3.03, 4.01, 5.00 beta    *+Ex=&#xA;CuG #%*                            VPix &amp;amp; DOS Merge (under unix)         *+Ex=&#xA;CuG #%*                            SoftPC (on a Mac), MKS shell          *+Ex=&#xA;CuG #%*                                                                  *+Ex=&#xA;CuG #%*   Usage:                                                         *+Ex=&#xA;CuG #%*     1. Rename this file to polyglot.[cob|pas|f77|c|ps|sh|com]    *+Ex=&#xA;CuG #%*     2. Compile and/or run with appropriate compiler and          *+Ex=&#xA;CuG #%*        operating system                                          *+Ex=&#xA;CuG #%*                                                                  *+Ex=&#xA;CuG #%*   Notes:                                                         *+Ex=&#xA;CuG #%*     1. We have attempted to use only standard language features. *+Ex=&#xA;CuG #%*        Without the -traditional flag gcc will issue a warning.   *+Ex=&#xA;CuG #%*                                                                  *+Ex=&#xA;CuG #%*     2. This text is a comment block in all seven languages.      *+Ex=&#xA;CuG #%*                                                                  *+Ex=&#xA;CuG #%*     3. When run as a .COM file with MS-DOS it makes certain      *+Ex=&#xA;CuG #%*        (not unreasonable) assumptions about the contents of      *+Ex=&#xA;CuG #%*        the registers.                                            *+Ex=&#xA;CuG #%*                                                                  *+Ex=&#xA;CuG #%*     4. When transfering from Unix to DOS make sure that a LF     *+Ex=&#xA;CuG #%*        is correctly translated into a CR/LF.                     *+Ex=&#xA;CuG #%*                                                                  *+Ex=&#xA;CuG #%*   Please mail any comments, corrections or additions to          *+Ex=&#xA;CuG #%*   peril@extro.ucc.su.oz.au                                       *+Ex=&#xA;CuG #%*                                                                  *+Ex=&#xA;CuG #%*------------------------------------------------------------------*QuZ=&#xA;CuG #%*                                                                  *+Ex=&#xA;CuG #%*!Mx)ExQX4ZPZ4SP5n#5X!)Ex+ExPQXH,B+ExP[-9Z-9Z)GA(W@'UTTER_XYZZY'CPK*+&#xA;CuG #(*                                                                  *(&#xA;C   # */);                                                              /*(&#xA;C   # *)  program        polyglot (output);                             (*+&#xA;C   #     identification division.&#xA;C   #     program-id.    polyglot.&#xA;C   #&#xA;C   #     data           division.&#xA;C   #     procedure      division.&#xA;C   #&#xA;C   # * ))cleartomark   /Bookman-Demi findfont 36 scalefont setfont     (&#xA;C   # *                                                                 (&#xA;C   #&#xA;C   # *                  hello polyglots$&#xA;C   #     main.&#xA;C   #         perform&#xA;C     * ) 2&amp;gt;_$$; echo   &quot;hello polyglots&quot;; rm _$$; exit&#xA;              print&#xA;C             stop run.&#xA;     -*,                'hello polyglots'&#xA;C&#xA;C         print.&#xA;C             display   &quot;hello polyglots&quot;.                              (&#xA;C     */  int i;                                                        /*&#xA;C     */  main () {                                                     /*&#xA;C     */      i=printf (&quot;hello polyglots\n&quot;); O= &amp;amp;i; return *O;         /*&#xA;C     *)                                                                (*&#xA;C     *)  begin                                                         (*&#xA;C     *)      writeln  ('hello polyglots');                             (*&#xA;C     *)                                                                (* )&#xA;C     * ) pop 60 360                                                    (&#xA;C     * ) pop moveto    (hello polyglots) show                          (&#xA;C     * ) pop showpage                                                  ((&#xA;C     *)&#xA;           end                                                          .(* )&#xA;C)pop%     program       polyglot.                                      *){*/}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;--------------------End snip---------------------------&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-09-27T22:24:56.100" CommunityOwnedDate="2011-03-20T14:02:27.677" CommentCount="10" />
  <row Id="7710" PostTypeId="2" ParentId="4614" CreationDate="2010-09-27T22:29:42.690" Score="1" ViewCount="" Body="&lt;p&gt;1st - They know what cut off when face the dead line.&lt;/p&gt;&#xA;" OwnerUserId="3728" LastActivityDate="2010-09-27T22:29:42.690" CommunityOwnedDate="2011-04-05T15:40:39.513" />
  <row Id="7711" PostTypeId="2" ParentId="4858" CreationDate="2010-09-27T22:33:08.547" Score="0" ViewCount="" Body="&lt;p&gt;I might do something like &lt;code&gt;&amp;lt;!-- ID: &amp;lt;?=$Id?&amp;gt; --&amp;gt;&lt;/code&gt; which can be handy for debugging all sorts of things. Let's you know which database column you're talking about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And recently I created a form of which every field was hidden for submitting data to PayPal. Some of the input names are rather odd and non-descriptive, so I included comments which I decided to put as HTML comments so I can read them in either view of the code.&lt;/p&gt;&#xA;" OwnerUserId="2406" LastActivityDate="2010-09-27T22:33:08.547" />
  <row Id="7712" PostTypeId="2" ParentId="4858" CreationDate="2010-09-27T22:40:53.470" Score="0" ViewCount="" Body="&lt;p&gt;I use them for giving credits to icon_packs/jquery_codes/css_frameworks/etc authors, when no visible linking is required. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise I use PHP comments.&lt;/p&gt;&#xA;" OwnerUserId="3774" LastActivityDate="2010-09-27T22:40:53.470" />
  <row Id="7713" PostTypeId="2" ParentId="7652" CreationDate="2010-09-27T22:55:13.590" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt;: lots of lines end with a colon, and the subsequent line has greater indentation.&lt;/p&gt;&#xA;" OwnerUserId="2129" LastActivityDate="2010-09-27T22:55:13.590" CommunityOwnedDate="2011-03-20T14:02:27.677" />
  <row Id="7715" PostTypeId="2" ParentId="7635" CreationDate="2010-09-27T23:01:31.913" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Some of these guys are really effective and develop very complicated code.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Writing complicated code is the opposite of being very effective.  There should be no need to spend 30 minutes reminding yourself of what you did yesterday; check out the diffs in your source control program and you should be up to speed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I &lt;em&gt;do&lt;/em&gt; see value in &quot;away&quot; time to ponder a problem, but that away time does not include sitting at my desk pretending to be in some zen state.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way I focus on my code, and this may sound weird but I'll say it anyway, is that I have my editor open and I'm writing code.  I can type much faster than I can write, I don't see much value in writing code per se on paper although sketching out components and interactions can certainly be useful.&lt;/p&gt;&#xA;" OwnerUserId="2129" LastActivityDate="2010-09-27T23:01:31.913" CommentCount="2" />
  <row Id="7716" PostTypeId="2" ParentId="7635" CreationDate="2010-09-27T23:07:12.113" Score="0" ViewCount="" Body="&lt;p&gt;Sounds like they are just trying to get ready to start the day :p&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally get straight into work when I get in the door, after checking emails, etc. I leave myself notes on what my next step is before I leave the office, so that reminds me where to pick up work from.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can visualise code, though. I've been told that it looks really weird when I &quot;do that Minority Report-style flick-things-around-the-screen trying to work out where things go, even though you're just sitting there, fingers flying about, with a concentrative look on your face&quot;. I embarrass myself. A lot.&lt;/p&gt;&#xA;" OwnerUserId="965" LastActivityDate="2010-09-27T23:07:12.113" />
  <row Id="7717" PostTypeId="2" ParentId="7347" CreationDate="2010-09-27T23:26:19.620" Score="3" ViewCount="" Body="&lt;p&gt;Well, the first advice would be to avoid such premature optimisations until you know exactly what's happening to the code, so that you are sure that you are actually making it faster, and not slower.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In C# for example the compiler will optimise the code if you are looping the length of an array, as it knows that it doesn't have to range check the index when you access the array. If you try to optimise it by putting the array length in a variable, you will break the connection between the loop and the array, and actually make the code a lot slower.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are going to micro-optimise, you should limit yourself to things that are known to use a lot of resources. If there is just a slight performance gain, you should go with the most readable and maintainable code instead. How computer work change over time, so something that you find out is slightly faster now, may not stay that way.&lt;/p&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-09-27T23:26:19.620" />
  <row Id="7718" PostTypeId="2" ParentId="7635" CreationDate="2010-09-27T23:37:55.433" Score="0" ViewCount="" Body="&lt;p&gt;I run (almost every day) - not very far, but enough to keep myself from dying (I hope). But more importantly, I bet I solve more problems in a 40 minute run than I do sitting in front of the computer. My desk time is largely about implementation, but that little bit of alone time away from gadgets is where a big chunk of my strategies, approaches, alternate plans, and architectures come from.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-09-27T23:37:55.433" CommentCount="2" />
  <row Id="7719" PostTypeId="2" ParentId="7636" CreationDate="2010-09-27T23:42:53.057" Score="7" ViewCount="" Body="&lt;p&gt;I frequently read other people's comments when I just want to see what they've done and if it affects me and the parts of the code I am working on. I write comments assuming others are doing the same. Therefore my comments include a mention of what components have been changed and if others must do something because of my changes. For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Task5668: Changed email notification system to use new scheduling system. Emails added to queue must now include priority number. DB schema update is required.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2279" LastActivityDate="2010-09-27T23:42:53.057" CommunityOwnedDate="2011-02-28T14:46:06.263" CommentCount="1" />
  <row Id="7720" PostTypeId="1" CreationDate="2010-09-27T23:50:01.277" Score="17" ViewCount="418" Body="&lt;p&gt;I'm looking at licensing some open source software and am looking at the GPL.  What are the pros and cons of using this license?&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-23T22:33:30.010" LastActivityDate="2010-10-25T10:25:52.530" Title="What are the Pros and Cons of the GPL?" Tags="&lt;legal&gt;&lt;license&gt;&lt;gpl&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="6" />
  <row Id="7721" PostTypeId="2" ParentId="7652" CreationDate="2010-09-27T23:51:29.870" Score="3" ViewCount="" Body="&lt;p&gt;&lt;b&gt;Ruby&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Usually 2-space indent&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;end&lt;/code&gt; finishes a block&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;require&lt;/code&gt; at top&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;&lt;/code&gt; means &lt;code&gt;extends&lt;/code&gt; in &lt;code&gt;class&lt;/code&gt; definitions&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;50.times&lt;/code&gt; loops&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;def&lt;/code&gt; ... &lt;code&gt;end&lt;/code&gt; for functions&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;nil&lt;/code&gt; is null&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Ruby vs. Python&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;2-space vs 4-space (or 4-space tab) indent, by coding conventions&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;:&lt;/code&gt; begins a block&lt;/li&gt;&#xA;&lt;li&gt;no &lt;code&gt;end&lt;/code&gt; in Python&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;true false nil&lt;/code&gt; vs. &lt;code&gt;True False None&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;list.each do |x|&lt;/code&gt; vs. &lt;code&gt;for x in list:&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;require&lt;/code&gt; vs. &lt;code&gt;import&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Smalltalk&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;5 + (6 * 5)&lt;/code&gt;, which has parens, unlike in other languages&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1325" LastEditorUserId="1325" LastEditorDisplayName="" LastEditDate="2010-09-28T22:47:09.393" LastActivityDate="2010-09-28T22:47:09.393" CommunityOwnedDate="2011-03-20T14:02:27.677" CommentCount="1" />
  <row Id="7722" PostTypeId="2" ParentId="7636" CreationDate="2010-09-27T23:59:03.363" Score="1" ViewCount="" Body="&lt;p&gt;A high-level summary, usually just one sentence, maybe two, then a point-by-point list of logical source changes that combine to effect that overall change for which the commit is being carried out.&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-09-27T23:59:03.363" CommunityOwnedDate="2011-02-28T14:46:06.263" />
  <row Id="7723" PostTypeId="2" ParentId="4614" CreationDate="2010-09-28T00:05:28.000" Score="1" ViewCount="" Body="&lt;p&gt;Very good related article: &lt;a href=&quot;http://www.randsinrepose.com/archives/2005/03/20/free_electron.html&quot; rel=&quot;nofollow&quot;&gt;The Free Electron (from randsinrepose.com)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I apologize for not summarizing the article here, but the points are not easily separated from the prose.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-09-28T00:05:28.000" CommunityOwnedDate="2011-04-05T15:40:39.513" CommentCount="2" />
  <row Id="7724" PostTypeId="2" ParentId="7720" CreationDate="2010-09-28T00:17:09.227" Score="20" ViewCount="" Body="&lt;p&gt;Ok, my list of pros and cons of GPL:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It makes people think hard about whether they really buy into Open Source; are you prepared to live by it, and let other people use what you've written, rather than just liking it because of what you can get out of it?&lt;/li&gt;&#xA;&lt;li&gt;It makes sure that when something has been developed by the Open Source community, it stays Open Source; no chance of someone taking all the work that others have been doing, repackaging it and selling it on.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's a complete no-no for most corporate organisations; they can't afford the risk of GPL-licenced code getting into their products, so virtually all medium-large companies have clauses explicitly banning GPL-licenced code.&lt;/li&gt;&#xA;&lt;li&gt;It puts people off Open Source.&lt;/li&gt;&#xA;&lt;li&gt;Is it really fair, that because I use your Open-Source image picker control in my app, my whole app must now be Open Source too?  Even if I improved the image picker and contributed that code back to the community?  The terms are too onerous for many developers.&lt;/li&gt;&#xA;&lt;li&gt;Lots of people aren't aware of the stringent terms of GPL, so use it as it's the licence they've heard of without realising what restrictions they're placing on anyone else that wants to use it.&lt;/li&gt;&#xA;&lt;li&gt;Its extremely viral.  If your project contains a component that contains a component that contains a component that is under the GPL (phew!), your whole project is subject to the GPL too.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Ultimately for me the cons outweigh the pros.  To me it smacks of Open Source Evangelists trying to trick the world into going Open Source instead of persuading the world of its benefits.&lt;/p&gt;&#xA;" OwnerUserId="3776" LastActivityDate="2010-09-28T00:17:09.227" CommentCount="8" />
  <row Id="7725" PostTypeId="2" ParentId="2541" CreationDate="2010-09-28T00:26:15.387" Score="4" ViewCount="" Body="&lt;p&gt;Feel the anger.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Feel it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FEEL IT.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's anger. See? You just felt it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are not your anger.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anger goes away.&lt;/p&gt;&#xA;" OwnerUserId="2817" LastActivityDate="2010-09-28T00:26:15.387" CommunityOwnedDate="2011-02-24T18:42:53.810" CommentCount="2" />
  <row Id="7726" PostTypeId="2" ParentId="7566" CreationDate="2010-09-28T00:27:31.410" Score="4" ViewCount="" Body="&lt;p&gt;I have 3 questions about the development environment for which a negative answer to any one is a show stopper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What version control software do you use?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What issue/bug tracker do you use?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does your development process resemble Scrum?&lt;/p&gt;&#xA;" LastActivityDate="2010-09-28T00:27:31.410" />
  <row Id="7727" PostTypeId="2" ParentId="7635" CreationDate="2010-09-28T00:28:08.393" Score="1" ViewCount="" Body="&lt;p&gt;I usually started my day by typing &lt;code&gt;hg log&lt;/code&gt; or &lt;code&gt;hg diff&lt;/code&gt; (I uses Mercurial for version control) in the Terminal.&lt;/p&gt;&#xA;" OwnerUserId="3733" LastActivityDate="2010-09-28T00:28:08.393" CommentCount="2" />
  <row Id="7728" PostTypeId="2" ParentId="4858" CreationDate="2010-09-28T00:28:18.617" Score="4" ViewCount="" Body="&lt;p&gt;I will occasionally use them to indicate the end of a tag:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;div id=main_content&amp;gt;&#xA;&#xA;...zillions of lines of stuff...&#xA;&#xA;&amp;lt;/div&amp;gt;&amp;lt;!-- #main_content&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That's proven useful on occasion, especially if I'm dealing with a lot of templates-inside-templates. Other than that not really.&lt;/p&gt;&#xA;" OwnerUserId="2817" LastActivityDate="2010-09-28T00:28:18.617" CommentCount="1" />
  <row Id="7729" PostTypeId="2" ParentId="7705" CreationDate="2010-09-28T00:36:11.060" Score="3" ViewCount="" Body="&lt;p&gt;The answer is it depends, however you should probably turn that into a class. &lt;/p&gt;&#xA;" OwnerUserId="3733" LastActivityDate="2010-09-28T00:36:11.060" CommentCount="3" />
  <row Id="7730" PostTypeId="2" ParentId="7720" CreationDate="2010-09-28T00:38:57.713" Score="3" ViewCount="" Body="&lt;p&gt;Although &lt;a href=&quot;http://programmers.stackexchange.com/questions/7720/what-are-the-pros-and-cons-of-the-gpl/7724#7724&quot;&gt;h4xxr&lt;/a&gt; definitely gave an answer FTW, here are a few more links which could prove useful, if you're unsure of what different types of licences represent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Comparison_of_free_software_licenses&quot; rel=&quot;nofollow&quot;&gt;Comparison of free software licenses&lt;/a&gt; (table comparison)&lt;br&gt;&#xA;&lt;a href=&quot;http://www.opensource.org/licenses/alphabetical&quot; rel=&quot;nofollow&quot;&gt;Open Source Initiative - Licenses by Name&lt;/a&gt; (what it says - commonly used licences in today's software world)&#xA;&lt;a href=&quot;http://www.gnu.org/licenses/license-list.html&quot; rel=&quot;nofollow&quot;&gt;List of software licences, including those compatible with GPL&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://fuckgpl.com/&quot; rel=&quot;nofollow&quot;&gt;F--- GPL&lt;/a&gt; &amp;lt;-- intelligent criticism (gotta love these &quot;pearls of wisdom&quot; :-)&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-09-28T00:44:12.183" LastActivityDate="2010-09-28T00:44:12.183" />
  <row Id="7731" PostTypeId="2" ParentId="4858" CreationDate="2010-09-28T00:41:09.390" Score="0" ViewCount="" Body="&lt;p&gt;Yes, to insert scripts in a &quot;Valid XHTML&quot; style.&lt;/p&gt;&#xA;" OwnerUserId="2051" LastActivityDate="2010-09-28T00:41:09.390" />
  <row Id="7732" PostTypeId="2" ParentId="7652" CreationDate="2010-09-28T01:04:27.740" Score="9" ViewCount="" Body="&lt;p&gt;I think the approach with one-language per post makes it difficult to provide a coherent way to distinguish languages, so I'm putting this into one post:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How to separate brace-and-semicolon languages (i.e. C, C++, C#, Java, Javascript):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;if it has &lt;code&gt;class&lt;/code&gt; or &lt;code&gt;new&lt;/code&gt; it's NOT C&lt;/li&gt;&#xA;&lt;li&gt;if it has &lt;code&gt;struct&lt;/code&gt; it's NOT Java&lt;/li&gt;&#xA;&lt;li&gt;if it has &lt;code&gt;var&lt;/code&gt; it's Javascript or C#&lt;/li&gt;&#xA;&lt;li&gt;if it has &lt;code&gt;template&lt;/code&gt; keyword (not just &amp;lt;&gt;s) it's C++&lt;/li&gt;&#xA;&lt;li&gt;if it has &lt;code&gt;function&lt;/code&gt; keyword it's Javascript/Actionscript&lt;/li&gt;&#xA;&lt;li&gt;if it has the main function inside a class, and it's written as &lt;code&gt;public static void main(String[] args)&lt;/code&gt; it's Java; otherwise if it has &lt;code&gt;static void Main(string[] args)&lt;/code&gt; it's C#&lt;/li&gt;&#xA;&lt;li&gt;if it has *p (pointers) it's neither Java nor Javascript/Actionscript&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;How to separate def-languages (i.e. Python and Ruby):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;if it has &lt;code&gt;end&lt;/code&gt; it's ruby&lt;/li&gt;&#xA;&lt;li&gt;if it has colons at the end of the def it's Python.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;How to separate line-noise language (e.g. perl, APL, J, K):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;if it has non-ascii letters, it's APL&lt;/li&gt;&#xA;&lt;li&gt;if it's still barely readable, it's perl&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3733" LastEditorUserId="3733" LastEditorDisplayName="" LastEditDate="2011-03-20T09:32:38.937" LastActivityDate="2011-03-20T09:32:38.937" CommunityOwnedDate="2010-12-02T08:05:18.267" CommentCount="19" />
  <row Id="7733" PostTypeId="1" AcceptedAnswerId="7737" CreationDate="2010-09-28T01:08:12.257" Score="18" ViewCount="602" Body="&lt;p&gt;&lt;em&gt;I first asked &lt;a href=&quot;http://stackoverflow.com/questions/3808858/good-questions-to-ask-a-potential-new-boss&quot;&gt;this question on Stack Overflow&lt;/a&gt;, but it turns out this is a better place for it.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imagine you were working as a software developer. Imagine that the manager of your team leaves and your company is looking for a replacement. Imagine that as part of the hiring process you had the opportunity to talk with him. You are not the only person doing an interview, and while it is not ultimately your decision whether or not to hire him, you do have an influence. What questions would you ask? What would you talk with him about?&lt;/p&gt;&#xA;" OwnerUserId="3782" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T16:04:19.750" LastActivityDate="2011-01-17T15:55:09.820" Title="Good questions to ask a potential new boss?" Tags="&lt;interview-questions&gt;&lt;boss&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="4" />
  <row Id="7734" PostTypeId="2" ParentId="7733" CreationDate="2010-09-28T01:10:19.200" Score="0" ViewCount="" Body="&lt;p&gt;I'd ask about what kind of environments he's worked in before, and ask what he expects of his team.&lt;/p&gt;&#xA;" OwnerUserId="2835" LastActivityDate="2010-09-28T01:10:19.200" />
  <row Id="7736" PostTypeId="2" ParentId="7618" CreationDate="2010-09-28T01:19:59.833" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;There really is no such thing as &quot;reuse&quot; the way that people describe it. Reuse is an &lt;em&gt;accidental&lt;/em&gt; property of anything. It's difficult to plan for it. What most people mean when they talk about &quot;reuse&quot; is &quot;use&quot;. It's a far less attractive and exciting term. When you use a library, you are using it for what it was intended for, normally. You are &lt;em&gt;not&lt;/em&gt; reusing it unless you're doing something really crazy with it.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;In that sense, reuse in the real world is about re-purposing things. I can reuse these seats here and rearrange them to form... a bed! Not a very comfortable bed, but I can do that. That's not their primary use. I am reusing them outside their original domain of applicability. [...] Tomorrow, I will fly back to the UK. I will &lt;em&gt;not&lt;/em&gt; reuse the plane. I will just use it for the purpose it was intended for, there's nothing fancy or exciting about that.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;— Kevlin Henney&lt;/p&gt;&#xA;" OwnerUserId="3684" LastActivityDate="2010-09-28T01:19:59.833" CommentCount="3" />
  <row Id="7737" PostTypeId="2" ParentId="7733" CreationDate="2010-09-28T01:24:43.900" Score="11" ViewCount="" Body="&lt;p&gt;&quot;What is your management style: hands on, or hands off?&quot; Basically you're trying to figure out if they are a micromanager, or if they will treat you like a professional and let you do your job without too much fuss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;What do you think is your best quality as an employee?&quot; You're asking this to see what sort of quality they tend to respect more in their employees.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;How do you resolve conflicts within your team?&quot; Basically you're trying to see if your potential manager will wimp out at the first sign of trouble or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;How would you expect your team to resolve issues and conflicts?&quot; You're asking how they expect the team to function in a crisis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Where do you see yourself in 5 years?&quot; Figure out if they are ambitious or not, and possibly if they'll step on you or use you to get themselves ahead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;What is something you struggle with professionally?&quot; You're trying to see if they have enough self awareness to meet your needs. If you don't care, then don't ask.&lt;/p&gt;&#xA;" OwnerUserId="3784" LastActivityDate="2010-09-28T01:24:43.900" />
  <row Id="7738" PostTypeId="2" ParentId="2051" CreationDate="2010-09-28T01:29:59.770" Score="3" ViewCount="" Body="&lt;p&gt;I was asked to create a tenant blacklist website for landlords handling rental properties.&lt;/p&gt;&#xA;" OwnerUserId="3784" LastActivityDate="2010-09-28T01:29:59.770" CommunityOwnedDate="2010-09-28T01:29:59.770" CommentCount="1" />
  <row Id="7739" PostTypeId="2" ParentId="7581" CreationDate="2010-09-28T02:00:33.607" Score="4" ViewCount="" Body="&lt;p&gt;I don't see Linux having a 'standard' development platform because one of the main differences with Microsoft 'ecosystem' is that is not a single-vendor platform. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;.NET is the standard platform on Windows only because it is made by the same company that makes the operating system.&lt;/p&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-09-28T02:00:33.607" />
  <row Id="7740" PostTypeId="2" ParentId="7618" CreationDate="2010-09-28T02:02:45.283" Score="8" ViewCount="" Body="&lt;p&gt;I would post a long answer but why? Udi Dahan explains it much better than I can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.udidahan.com/2009/06/07/the-fallacy-of-reuse/&quot; rel=&quot;nofollow&quot;&gt;http://www.udidahan.com/2009/06/07/the-fallacy-of-reuse/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is the start of the post:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;This industry is pre-occupied with&#xA;  reuse.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;There’s this belief that if we just&#xA;  reused more code, everything would be&#xA;  better.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Some even go so far as saying that the&#xA;  whole point of object-orientation was&#xA;  reuse – it wasn’t, encapsulation was&#xA;  the big thing. After that&#xA;  component-orientation was the thing&#xA;  that was supposed to make reuse&#xA;  happen. Apparently that didn’t pan out&#xA;  so well either because here we are now&#xA;  pinning our reuseful hopes on&#xA;  service-orientation.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Entire books of patterns have been&#xA;  written on how to achieve reuse with&#xA;  the orientation of the day. Services&#xA;  have been classified every which way&#xA;  in trying to achieve this, from entity&#xA;  services and activity services,&#xA;  through process services and&#xA;  orchestration services. Composing&#xA;  services has been touted as the key to&#xA;  reusing, and creating reusable&#xA;  services.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I might as well let you in on the&#xA;  dirty-little secret:&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Reuse is a fallacy&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3421" LastActivityDate="2010-09-28T02:02:45.283" CommentCount="4" />
  <row Id="7741" PostTypeId="2" ParentId="7482" CreationDate="2010-09-28T02:03:38.007" Score="2" ViewCount="" Body="&lt;p&gt;The best way to answer this question is to evaluate your goals.  Why did you start this pet project of yours?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Did you want to learn the technology, or experiment with a new language, or a new technique? If so, write your own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or did you start because you wanted a working final product? Does the project fill some need of yours?  If so, borrow and borrow often.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-28T02:03:38.007" CommentCount="1" />
  <row Id="7742" PostTypeId="2" ParentId="154" CreationDate="2010-09-28T02:10:02.340" Score="3" ViewCount="" Body="&lt;p&gt;There was a sad one on Dilbert a few days ago:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://dilbert.com/strips/2010-09-20/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/100000/00000/0000/700/100755/100755.strip.zoom.gif&quot; alt=&quot;GAA!! IT HURTS SO BAD!&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2515" LastEditorUserId="2515" LastEditorDisplayName="" LastEditDate="2010-10-05T01:04:50.757" LastActivityDate="2010-10-05T01:04:50.757" CommentCount="2" />
  <row Id="7743" PostTypeId="2" ParentId="2715" CreationDate="2010-09-28T02:10:16.723" Score="0" ViewCount="" Body="&lt;p&gt;There is a 4th option that keeps the braces aligned, but does not waste space:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (you.hasAnswer())&#xA;{    you.postAnswer();&#xA;     i.readAnswer();&#xA;}&#xA;else&#xA;{   you.doSomething();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The only problem is that most IDE's autoformatters choke on this.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-28T02:10:16.723" CommunityOwnedDate="2010-11-02T20:52:36.780" CommentCount="1" />
  <row Id="7744" PostTypeId="1" CreationDate="2010-09-28T02:21:38.817" Score="11" ViewCount="858" Body="&lt;p&gt;I'm very confused about choosing the programming langage to follow in the next step of my life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm right now so familiar with C++, VB.NET and PHP, but to jump to a higher level I must choose between &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;JEE&lt;/strong&gt;&lt;code&gt;(JSP, Servlets, JSF, Spring, EJB, Struts, Hibernate,...)&lt;/code&gt;  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;.NET&lt;/strong&gt;&lt;code&gt;(ASP.NET, C#)&lt;/code&gt;. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Because I cant learn them at the same time. And you realize that, when I mentioned JEE a lot of things comes to the head.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my personnal experience I prefere the &lt;code&gt;.NET&lt;/code&gt;, but &lt;code&gt;Java&lt;/code&gt; seems to be a better choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;believe me, i'm not writing a subjective topic. I just want to know what must I follow to get succes in my life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question here is :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Is there any things that can be done with &lt;code&gt;Java&lt;/code&gt;, and cannot be done with &lt;code&gt;.NET&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Is there any chances that I can follow the uncounted number of &lt;code&gt;frameworks&lt;/code&gt; that are always in developpement.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;... (also something not said) ?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3788" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-28T03:54:42.033" LastActivityDate="2011-02-21T14:49:57.097" Title="Confused about my future. Doubt about .Net or Java way." Tags="&lt;programming-languages&gt;&lt;java&gt;&lt;.net&gt;&lt;future&gt;&lt;object-oriented&gt;" AnswerCount="6" CommentCount="7" FavoriteCount="1" />
  <row Id="7745" PostTypeId="2" ParentId="7188" CreationDate="2010-09-28T02:26:10.810" Score="6" ViewCount="" Body="&lt;p&gt;Code Complete &lt;a href=&quot;http://cc2e.com/&quot; rel=&quot;nofollow&quot;&gt;http://cc2e.com/&lt;/a&gt; because it's so complicated and packed with so much information.  Each time you read it you get more out of it.  It does take forever though....  If anyone can actually say they picked up everything in this book after just one or even two readings, I am jealous of your skill :)&lt;/p&gt;&#xA;" OwnerUserId="3786" LastActivityDate="2010-09-28T02:26:10.810" CommunityOwnedDate="2011-02-10T17:23:39.897" CommentCount="2" />
  <row Id="7747" PostTypeId="1" CreationDate="2010-09-28T02:42:03.327" Score="19" ViewCount="710" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- &lt;a href=&quot;http://www.cs.virginia.edu/~cs655/readings/ewd498.html&quot; rel=&quot;nofollow&quot;&gt;Edsger W. Dijkstra&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have deep respect to Dijkstra but I don't agree with everything he said/wrote. I disagree specially with this quote on linked paper wrote 35 years ago about the &lt;a href=&quot;http://en.wikipedia.org/wiki/Dartmouth_BASIC&quot; rel=&quot;nofollow&quot;&gt;Dartmouth BASIC&lt;/a&gt; implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many of my coworkers or friends programmers started with BASIC, questions below have answers that indicate many programmers had their first experience on programming at BASIC. AFAIK many &lt;strong&gt;good&lt;/strong&gt; programmers started at BASIC programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not talking about Visual Basic or other &quot;modern&quot; dialects of BASIC running on machines full of resources. I'm talking about old times BASIC running on &quot;toy&quot; computer, that the programmer had to worry about saving small numbers that need not be calculated as a string to save a measly byte because the computer had only a few hundreds of them, or have to use computed goto for lack of a more powerful feature, and many other things which require the programmer to think much before doing something and forcing the programmer to be creative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you had experience with old time BASIC on a machine with limited resources (have in mind that a simple micro-controller today has much more resources than a computer in 1975, do you think that BASIC help your mind to find better solutions, to think like an engineer or BASIC drag you to dark side of programming and mutilated you mentally?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is good to learn a programming language running on a computer full of resources where the novice programmer can do all wrong and the program runs without big problems? Or is it better to learn where the programmer can't go wrong?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What can you say about the BASIC have helped you to be a better/worse programmer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would you teach old BASIC running on a 2KB (virtual) machine to a coming programmer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, only exposure to BASIC is bad. Maybe you share my opinion that modern BASIC doesn't help too much because modern BASIC, as long other programming languages, gives facilities which allow the programmer doesn't think deeper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please, share your experiences!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/1706/&quot;&gt;Do you remember your first time?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/2291/&quot;&gt;What was the first language you learned?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/2935/&quot;&gt;Why did you choose programming/development as your profession?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/275/&quot;&gt;How did you get started in programming?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT (Additional information): &lt;a href=&quot;http://www.basic256.org/whybasic&quot; rel=&quot;nofollow&quot;&gt;Why BASIC?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-10-22T21:16:40.870" LastActivityDate="2011-01-21T05:51:37.183" CommunityOwnedDate="2011-01-20T21:00:13.020" Title="Do you think that exposure to BASIC can mutilate your mind?" Tags="&lt;experience&gt;&lt;great-programmer&gt;&lt;skills&gt;&lt;basic&gt;" AnswerCount="17" CommentCount="9" FavoriteCount="4" />
  <row Id="7748" PostTypeId="2" ParentId="2541" CreationDate="2010-09-28T02:47:42.210" Score="2" ViewCount="" Body="&lt;p&gt;I think it's good to do something non-frustrating for a change, like read a few pages of a book, exercise, take the dog for a walk, and generally do something very different to give your brain a break and get perspective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not an exact parallel, but I get to a certain point in translation (usually a few long paragraphs) and I simply become temporarily exhausted, and need to do something different so I can continue later.&lt;/p&gt;&#xA;" OwnerUserId="2515" LastEditorUserId="2515" LastEditorDisplayName="" LastEditDate="2010-09-28T04:15:57.103" LastActivityDate="2010-09-28T04:15:57.103" CommunityOwnedDate="2011-02-24T18:42:53.810" CommentCount="3" />
  <row Id="7749" PostTypeId="1" AcceptedAnswerId="7763" CreationDate="2010-09-28T02:55:17.627" Score="32" ViewCount="1412" Body="&lt;p&gt;How do you go from being an okay programmer to being able to write maintainable clean code?  For example David Hansson was writing Basecamp when in the process he created Rails as part of writing Basecamp in a clean/maintainable way.  But how do you know when there is value in a side project like that?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a bachelors in computer science, and I am about to get a masters and I will say that colleges teach you to write code to solve problems, not neatly or anything.  Basically you think of a problem, come up with a solution, and write it down...not necessarily the most maintainable way in the world.  Also my first job was in a startup, and now my third is in a small team in a large company where the attitude was/is get it done yesterday (also most of my jobs are mainly database development with SQL with a few ASP.NET web pages/.NET apps on the side).  So of course cut/paste is more favored than making things more cleanly.  And they would rather have something yesterday even if you have to rewrite it next month rather than to have something in a week that lasts for a year.  Also spaghetti code turns up all over the place, and it takes very smart people to write/understand/maintain spaghetti code...However it would be better to do things so simple/clean that even a caveman/woman could do maintenance.  Also I get very bored/unmotivated having to go modify the same things cut/pasted in a few locations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this the type of skill that you need to learn by working with a serious software organization that has an emphasis on maintenance and maybe even an architect who designs a system architecture and reviews code?  Could you really learn it by volunteering on an open source project (it seems to me that a full time programmer job is way more practice than a few hours a week on an open source project)?  Is there some course where you can learn this?  I can attest that graduate school and undergraduate school do not really emphasize clean software at all.  They just teach the structures/algorithms and then send you off into the world to solve problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall I think the first thing is learning to write clean/maintainable code within the bounds of the project in order to become a good programmer.  Then the next thing is learning when you need to do a side project (like a framework) to make things more maintainable/clean even while you still deliver things for the deadline in order to become a great programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, you are making an SQL report and someone gives you 100 calculations for individual columns.  At what point does it make sense to construct a domain specific language to encode the rules in simply and then generate all the SQL as opposed to cut/pasting the query from the table a bunch of times and then adjusting each query to do the appropriate calculations.  This is the type of thing I would say a great programmer would know.  He/she would maybe even know ways to avoid the domain specific language and to still do all the calculations without creating an unmaintainable mess or a ton of repetitive code to cut/paste everywhere.&lt;/p&gt;&#xA;" OwnerUserId="3786" LastActivityDate="2011-04-26T01:17:45.520" CommunityOwnedDate="2011-02-13T16:19:27.957" Title="How do you go from a so so programmer to a great one?" Tags="&lt;best-practices&gt;&lt;great-programmer&gt;&lt;design&gt;&lt;maintenance&gt;" AnswerCount="24" CommentCount="2" FavoriteCount="21" />
  <row Id="7750" PostTypeId="2" ParentId="7749" CreationDate="2010-09-28T02:58:49.870" Score="5" ViewCount="" Body="&lt;p&gt;Just like anything else, the best way to get better is to practice, practice and practice some more.   Read other peoples code, read books, and code some more.  It is also good to have someone else that will look at your code with fresh eyes and can/will give you constructive criticism.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-09-28T02:58:49.870" CommunityOwnedDate="2011-02-13T16:19:27.957" CommentCount="4" />
  <row Id="7751" PostTypeId="2" ParentId="7749" CreationDate="2010-09-28T02:59:11.977" Score="2" ViewCount="" Body="&lt;h2&gt;Eat lots of spinach.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;There aren't any tricks or tips that will turn you magically into a &quot;great&quot; programmer. Programming is something &lt;em&gt;I&lt;/em&gt; love, and that is what (at least in my eyes) makes someone great at what they do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't absolutely enjoy it you will be hard pressed to do the things that lead to this &quot;greatness.&quot; Experimentation, play, practice, hard work, endurance, etc. This doesn't just apply to programming.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-28T02:59:11.977" CommunityOwnedDate="2011-02-13T16:19:27.957" CommentCount="8" />
  <row Id="7752" PostTypeId="2" ParentId="7744" CreationDate="2010-09-28T02:59:25.953" Score="8" ViewCount="" Body="&lt;p&gt;A) Why can't you do both?  .NET and Java are remarkably similar.  They have their differences, but basically .NET is Microsoft's copy of java.  I find that I can easily switch back/forth between .NET and Java.  Also you said you already know VB.NET and basically C# and VB.NET are the same library with a slightly different language which both have similar concepts in different ways.&lt;br&gt;&#xA;B) I suspect this is because you want a job.  You should probably do research in your area to see what type of jobs are available in which languages and what type of companies you want to work for.  I see a ton of Java and a ton of .NET but sometimes if you look at a specific industry in the area they are using one over the other.&lt;br&gt;&#xA;C) There are tons of frameworks.  Unless you need one for your own work, it may make sense to wait until you get a job and then see which frameworks you need to know there.  Literally tons of frameworks are coming out every day and if you try to know them all you will go crazy.&lt;/p&gt;&#xA;" OwnerUserId="3786" LastEditorUserId="3786" LastEditorDisplayName="" LastEditDate="2010-09-28T03:04:52.937" LastActivityDate="2010-09-28T03:04:52.937" CommentCount="1" />
  <row Id="7753" PostTypeId="2" ParentId="7427" CreationDate="2010-09-28T03:00:29.993" Score="2" ViewCount="" Body="&lt;p&gt;Ask yourself, what does your boss expect from you, and how can you achieve it. Work on it for yourself, not for your boss. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And whatever triggered his reaction, don't do it again.&lt;/p&gt;&#xA;" OwnerUserId="3774" LastActivityDate="2010-09-28T03:00:29.993" />
  <row Id="7754" PostTypeId="2" ParentId="7733" CreationDate="2010-09-28T03:04:00.347" Score="3" ViewCount="" Body="&lt;p&gt;About how many hours per week do you expect your employees to work?  Because at the end of the day if a place is a sweatshop, I'm just going to leave anyway, so might as well ask the question up front and if it is a sweatshop then move on to the next one.  The prospective boss shouldn't have incentive to lie since if it is a sweatshop and you say you don't like it, then he should know you are going to leave.  And if he lied to you, then at least you can say you gave him fair warning....&lt;/p&gt;&#xA;" OwnerUserId="3786" LastActivityDate="2010-09-28T03:04:00.347" />
  <row Id="7755" PostTypeId="2" ParentId="7686" CreationDate="2010-09-28T03:05:43.760" Score="0" ViewCount="" Body="&lt;p&gt;it certainly cant hurt.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-09-28T03:05:43.760" />
  <row Id="7756" PostTypeId="2" ParentId="7427" CreationDate="2010-09-28T03:08:58.063" Score="0" ViewCount="" Body="&lt;p&gt;I'm all for the indifference method. Yeah, he should not treat you like an idiot as a junior, but I think playing dumb is often the best solution for people like that. It takes away their mottivation.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-09-28T03:08:58.063" />
  <row Id="7757" PostTypeId="2" ParentId="5384" CreationDate="2010-09-28T03:15:24.763" Score="0" ViewCount="" Body="&lt;p&gt;My husband actually fixes computers for a living, so when someone says &quot;hey, can you see my computer? I think it has a virus&quot; I just send them to talk with my husband, even when I fix my own computing problems.&lt;/p&gt;&#xA;" OwnerUserId="3774" LastActivityDate="2010-09-28T03:15:24.763" CommunityOwnedDate="2010-09-28T03:15:24.763" />
  <row Id="7758" PostTypeId="2" ParentId="7747" CreationDate="2010-09-28T03:18:40.440" Score="22" ViewCount="" Body="&lt;p&gt;&lt;sub&gt;&lt;i&gt;A man can do nothing better than to eat and drink and find satisfaction in his work.&lt;/i&gt;&lt;/sub&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I learned BASIC before anything else (well, except for algebra I guess). If it didn't seriously warp my mind, then I'm not sure how to explain the 18 years that have followed...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, so what? Dijkstra might have a hard time teaching me anything because of my long-term exposure to BASIC, but he'd have a &lt;em&gt;harder&lt;/em&gt; time teaching me anything because of his long-term exposure to a subterranean pine box. And even with those factors removed, I've still never been a serious CS student, a serious mathematics student, or a serious student in any other discipline. The abyss between someone like me and the sort of programmer Dijkstra would have liked to see is so great as to be nearly unfathomable...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yet, we program. We who teethed on BASIC, toyed with FORTRAN, experimented with COBOL and all the rest, we also found a joy and a fascination with these little machines which, while perhaps &lt;em&gt;entirely dissimilar&lt;/em&gt; from that which first drew Mr. Edsger into his field, is no less a calling, the foundation for a life-long labor of love. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;...or maybe that's just what a mutilated mind &lt;em&gt;would&lt;/em&gt; say...&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-09-28T03:18:40.440" CommunityOwnedDate="2011-01-20T21:00:13.020" CommentCount="1" />
  <row Id="7759" PostTypeId="2" ParentId="7686" CreationDate="2010-09-28T03:20:18.597" Score="1" ViewCount="" Body="&lt;p&gt;Not sure how related my story is, but I actually double majored in Philosophy and Political Science, and programming was always just a hobby.  When I couldn't find any &quot;Philosopher Wanted&quot; adds on Craigslist and realized that people wanted software developers I dove right in and found a job. I think that because it was a hobby and not just bunch of classes I had to take, I became very passionate about learning the field and tried to do the best i could to match my CS classmates. Well now I have good job as a developer, but am definitely nervous what could happen in the future when I apply for a software engineering job with a basketweaving degree. I'm leaning towards not getting it and waiting a while, hoping that connections and experience will pay off. I wouldn't count on it in the science/military sectors though.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-09-28T03:20:18.597" />
  <row Id="7760" PostTypeId="2" ParentId="2148" CreationDate="2010-09-28T03:24:11.727" Score="0" ViewCount="" Body="&lt;p&gt;i'm procrastinating as i write this, so i would say stackexchange sites for sure&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-09-28T03:24:11.727" />
  <row Id="7761" PostTypeId="2" ParentId="7686" CreationDate="2010-09-28T03:27:09.710" Score="9" ViewCount="" Body="&lt;p&gt;Yes it does. It helps a lot in getting your resume shortlisted by the HR who have no idea on what programming is all about :-)&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-09-28T03:27:09.710" CommentCount="1" />
  <row Id="7762" PostTypeId="2" ParentId="7744" CreationDate="2010-09-28T03:34:19.277" Score="1" ViewCount="" Body="&lt;p&gt;I am in my last semester of full time college and working as a developer about 30 hours a week. My school is primarily a java school, but my job is in a 100% .net shop, so I have been forced to learn both pretty in depth. Not sure about implications on career(I hear java is a bit better but my job is c#.net so...), but I will say that I feel much more productive in .net, and I find the tools a lot more reliable. I also very much prefer .nets online knowledge base (ok msdn sucks, but plenty of other great resources).&#xA;I totally do not mean to start a flame war; after all I use and like both, but being someone who has literally had to start from scratch on both of these languages (came from python), this i what I found.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: the industry you work in can make a big difference in your region. I know that in the southeast, insurance carriers use .net almost exclusively, but startups tend to use java. a lot of financial sector around her(automated trading and whatnot) tend to lean towards python/ruby.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-09-28T03:34:19.277" CommentCount="3" />
  <row Id="7763" PostTypeId="2" ParentId="7749" CreationDate="2010-09-28T03:37:58.057" Score="31" ViewCount="" Body="&lt;p&gt;Aside from agreeing with Josh k's answer...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Read code and lots of it.&lt;/li&gt;&#xA;&lt;li&gt;Write code.&lt;/li&gt;&#xA;&lt;li&gt;Read books and lots of them. Work along with the examples.&lt;/li&gt;&#xA;&lt;li&gt;Write some more code. &lt;/li&gt;&#xA;&lt;li&gt;Speak with other programmers. This is often overlooked. There are lessons to be learned from everybody.&lt;/li&gt;&#xA;&lt;li&gt;Keep on writing code.&lt;/li&gt;&#xA;&lt;li&gt;Think of ideas when away from your machine.&lt;/li&gt;&#xA;&lt;li&gt;Still coding? I hope so.&lt;/li&gt;&#xA;&lt;li&gt;Remember to go over your code after taking a few hours or days away (if you have that kind of time.) It gives you a new perspective.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="67" LastEditorUserId="67" LastEditorDisplayName="" LastEditDate="2011-04-24T07:21:40.793" LastActivityDate="2011-04-24T07:21:40.793" CommunityOwnedDate="2011-02-13T16:19:27.957" CommentCount="7" />
  <row Id="7764" PostTypeId="2" ParentId="4863" CreationDate="2010-09-28T03:42:39.857" Score="2" ViewCount="" Body="&lt;p&gt;I would think Microsoft Powershell.  I'm not sure if it has any fame, but I find it to be pretty under utilized.  It is a lot better than dos batch files.  Some people do use it, however I don't see a tremendous amount of discussions about it.  So overall I'm not sure if it has a critical mass to not qualify for part 2.  But if it is not popular enough, then it is one worth learning for people who are on windows....&lt;/p&gt;&#xA;" OwnerUserId="3786" LastActivityDate="2010-09-28T03:42:39.857" CommunityOwnedDate="2010-10-22T23:54:06.263" CommentCount="1" />
  <row Id="7766" PostTypeId="2" ParentId="2563" CreationDate="2010-09-28T03:47:52.877" Score="2" ViewCount="" Body="&lt;p&gt;Whats the difference between my boss and my coworkers? reliable results. The people in charge dont care one bit how well every class is commented; they care about things working well and not taking six months when they could take two.&#xA;That being said, code needs to be clean enough that it can be used efficiently and effectively do the job it was intended for. clean code is not an absolute tenant of good code. throw away one-offs do not need the same grooming as a heavily used api. i love good clean code, but i've worked with people who can spend months on trivial tasks, making sure backend code has appropriate spacing. If it works, it works (although i would doubt that anyone could write totally sloppy code and also be bug free...)&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-09-28T03:47:52.877" />
  <row Id="7767" PostTypeId="2" ParentId="7636" CreationDate="2010-09-28T03:53:46.330" Score="0" ViewCount="" Body="&lt;p&gt;maybe i should write more detailed comments, but i typically only write a comment when I have published a working build and check in the entire solution, just for reference in case a later check in breaks it badly.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-09-28T03:53:46.330" CommunityOwnedDate="2011-02-28T14:46:06.263" />
  <row Id="7768" PostTypeId="2" ParentId="7581" CreationDate="2010-09-28T03:57:02.063" Score="2" ViewCount="" Body="&lt;p&gt;Linux defies standards in many ways, because it is such a diverse community. Personally I'm a big advocate of mono with c#, mostly because I feel more comfortable with the monodevelop ide (closer to visual studio) rather than eclipse, which ive always been particularly clumsy with.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastEditorUserId="3792" LastEditorDisplayName="" LastEditDate="2011-05-18T18:33:55.297" LastActivityDate="2011-05-18T18:33:55.297" />
  <row Id="7769" PostTypeId="2" ParentId="2563" CreationDate="2010-09-28T04:02:58.613" Score="4" ViewCount="" Body="&lt;p&gt;Yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But maybe not where you work now. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some organizations just want a bunch of keyboard bangers and are happy to create all kinds of rules to restrict the damage that they can do. The problem is those same rules hinder the top performer which in turn pisses off the top performers because one thing about top performers is that they seem to all want to perform at a top level. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other organizations pay well for top performers and create an environment where the top performers can thrive. Most top performers would happily be paid 2x that of their peers even though they produce 100x the net work because they start to care about the quality of their environment more than additional money. What's the point in making more if you end up spending all of your time working? Top performers over time drift either into free lancing or into these top organizations (measured by work environment, not bottom line) leaving the keyboard bangers for the other orgs.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-28T04:02:58.613" />
  <row Id="7772" PostTypeId="1" AcceptedAnswerId="7926" CreationDate="2010-09-28T04:16:27.197" Score="5" ViewCount="182" Body="&lt;p&gt;1,2,5 years. Im a relative novice, so I've never spent more than about 6 months developing one project, however I work with some people who have spent 5 years plus developing just one app (I think it was banking).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How about you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: this is not counting maintenance. think from the time the idea was conceived(or your boss told you better conceive one) and the time it went live.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-28T04:21:46.107" LastActivityDate="2010-09-28T17:09:22.690" Title="Whats the longest amount of time you have spent on one project?" Tags="&lt;development-process&gt;&lt;project&gt;" AnswerCount="6" />
  <row Id="7773" PostTypeId="2" ParentId="2541" CreationDate="2010-09-28T04:19:00.547" Score="1" ViewCount="" Body="&lt;p&gt;+1 on smoking &#xA;-1 on cancer&#xA;but sometimes its the only thing that clear my head. that and the temptations, which is my second goto.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-09-28T04:19:00.547" CommunityOwnedDate="2011-02-24T18:42:53.810" />
  <row Id="7774" PostTypeId="2" ParentId="7747" CreationDate="2010-09-28T04:26:53.367" Score="16" ViewCount="" Body="&lt;p&gt;The Basics popular at the time of the quote were very different from what we had even 20 years ago.  (Are you counting those among your &quot;modern&quot; dialects? ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Forget loops, subroutines, local variables, and everything that Structured Programming (of which Dijkstra and Knuth were big proponents) emphasized.  You had GOTO, and you &lt;em&gt;liked&lt;/em&gt; it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this context, programmers who only knew global variables, invented their own subroutines (using more global variables for parameters and return values!), and wrote spaghetti GOTOs really were mutilated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're 30-something or younger today and Basic was your first language, it wasn't the same language Dijkstra was talking about.  Even if you're older and your first Basic had some of these features, as Murph comments below, it still may not have been the same language Dijkstra was talking about.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;You've updated the question with context I never knew before:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Dijkstra's quote is from 1975.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It wasn't until version 6 that you got separately compilable procedures — which, I believe, shows the beginning of the shift in focus &lt;em&gt;away&lt;/em&gt; from GOTO.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&quot;In 1976, Steve Garland added &lt;a href=&quot;http://en.wikipedia.org/wiki/Structured_programming&quot; rel=&quot;nofollow&quot;&gt;structured programming&lt;/a&gt; features to create Dartmouth SBASIC, a precompiler which produced version 6 output...&quot; &lt;sup&gt;[&lt;a href=&quot;http://en.wikipedia.org/wiki/Dartmouth_BASIC&quot; rel=&quot;nofollow&quot;&gt;Wikipedia&lt;/a&gt;]&lt;/sup&gt; The context of the quote is clearly before what we now know as control structures, and many users of the time could've been more familiar with the second-to-latest version — i.e. &lt;em&gt;two&lt;/em&gt; versions before Garland's, which is v5 and before separately compilable procedures.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;GOSUB/RETURN still only handle &quot;simple subroutines&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&quot;Variable names were limited to A to Z, A0 to A9, B0 to B9, ..., Z0 to Z9, giving a maximum of 286 possible distinct variables.&quot; ...and they're all global.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2010-10-20T21:55:22.847" CommunityOwnedDate="2011-01-20T21:00:13.020" CommentCount="7" />
  <row Id="7776" PostTypeId="2" ParentId="7749" CreationDate="2010-09-28T04:36:13.430" Score="19" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Researchers have shown it takes about ten years to develop expertise in any of a wide variety of areas... &lt;strong&gt;The key is deliberative practice: not just doing it again and again, but challenging yourself...&lt;/strong&gt;&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; &lt;a href=&quot;http://www.norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;Peter Norvig&lt;/a&gt; [emphasis mine]&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Experts are made, not born.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; (unknown)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" LastActivityDate="2010-10-03T06:16:32.143" CommunityOwnedDate="2011-02-13T16:19:27.957" CommentCount="1" />
  <row Id="7777" PostTypeId="2" ParentId="7705" CreationDate="2010-09-28T04:44:45.403" Score="5" ViewCount="" Body="&lt;p&gt;Why use nested functions, rather than normal external functions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if the external functions are only ever used in your one, formerly-big function, it still makes the whole mess easier to read:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;DoThing(int x){&#xA;    x += ;1&#xA;    int y = FirstThing(x);&#xA;    x = SecondThing(x, y);&#xA;    while(spoo &amp;gt; fleem){&#xA;        x = ThirdThing(x+y);&#xA;    }&#xA;}&#xA;&#xA;FirstThing(int x){...}&#xA;SecondThing(int x, int y){...}&#xA;ThirdThing(int z){...}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-28T04:44:45.403" CommentCount="1" />
  <row Id="7779" PostTypeId="1" AcceptedAnswerId="7786" CreationDate="2010-09-28T04:55:07.650" Score="24" ViewCount="890" Body="&lt;p&gt;As a self-taught programmer myself competing in an industry dominated by CS majors, I often find myself intimidated. I have a BA in liberal arts but have found that many &quot;trained&quot; programmers tend to look down and assume I have huge holes in my understanding of fundamentals. I tend to not tell anyone, unless I have to, that I learned this way to avoid the stigma. Would it be better to embrace how I learned or would it be more prudent to continue to deliver while being less than open about my background?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: I guess I did not mention this, but I actually have taken many CS classes, but I never had the time to get the actual paper with the random requirements attached. I have all the core stuff like data structures and algorithms, etc. I've found that I learned more on my own, however, I was primarily concerned with how this approach was viewed by employers and whatnot.  Thanks for all of the great advice though!&lt;/p&gt;&#xA;" OwnerUserId="3792" LastEditorUserId="3792" LastEditorDisplayName="" LastEditDate="2010-09-28T20:05:46.047" LastActivityDate="2010-10-14T07:25:38.757" Title="Any advice from self-taught programmers on competing with more conventional types?" Tags="&lt;learning&gt;&lt;career&gt;&lt;career-advice&gt;&lt;education&gt;" AnswerCount="16" CommentCount="1" FavoriteCount="12" />
  <row Id="7780" PostTypeId="2" ParentId="7705" CreationDate="2010-09-28T05:01:39.820" Score="10" ViewCount="" Body="&lt;p&gt;Always remember the rule, a functions does one thing and does it well! If you can do so, avoid nested functions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It hinders readability and testing.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-09-28T05:01:39.820" CommentCount="6" />
  <row Id="7781" PostTypeId="2" ParentId="7772" CreationDate="2010-09-28T05:09:34.073" Score="3" ViewCount="" Body="&lt;p&gt;It was almost 5 years that I am working on a web application development. It started with a single static page and gone to extension such that it can be called as Enterprise Application. Still I am working on the same and we deliver the features in Sprints. Almost I have worked on all the pages :)&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-09-28T05:09:34.073" />
  <row Id="7782" PostTypeId="2" ParentId="7779" CreationDate="2010-09-28T05:13:43.040" Score="9" ViewCount="" Body="&lt;p&gt;Study theory as well as practice. All the practical how-to stuff in the books and the blogs are fine things to know, but most of what you encounter will not educate you about the principles of computing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest problems I see among the self-taught are these: 1) The erroneous belief that something they're attempting is impossible and 2) The erroneous belief that something they're attempting is possible.&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-09-28T05:13:43.040" CommentCount="2" />
  <row Id="7783" PostTypeId="2" ParentId="7772" CreationDate="2010-09-28T05:27:47.240" Score="1" ViewCount="" Body="&lt;p&gt;In my previous job, we worked on a single &quot;Software as a Service&quot; package. I was there for 6 years and the &quot;project&quot; itself was basically the same. Of course, the code I was working on when I started looked quite a bit different to the code I was working on when I left...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In another job, I worked on software that was over 20 years old. It originally ran COBOL on mainframes and over time migrated from mainframes to Unix hosts to Windows servers. It still generated COBOL even on the Windows hosts (and largely unchanged from what it generated on the mainframes). We still (to this day) maintain the mainframe code because there are still customers who are using it (even for new work!)&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-09-28T05:27:47.240" CommentCount="1" />
  <row Id="7784" PostTypeId="2" ParentId="7772" CreationDate="2010-09-28T05:32:10.027" Score="0" ViewCount="" Body="&lt;p&gt;For destinct, individual projects (a single product version), the longest I believe was about 3 years from concept to release.  Much of that time consisted of research.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For product lines (same product over multiple versions), I think my oldest is about 16 or 17 years from concept to today.  Which is why I'm so big on 1) easy to maintain code, and 2) keeping to tried and true techniques, rather than the day's hottest technology.  &lt;/p&gt;&#xA;" OwnerUserId="897" LastEditorUserId="897" LastEditorDisplayName="" LastEditDate="2010-09-28T05:42:40.477" LastActivityDate="2010-09-28T05:42:40.477" CommentCount="3" />
  <row Id="7785" PostTypeId="2" ParentId="7779" CreationDate="2010-09-28T05:41:58.507" Score="22" ViewCount="" Body="&lt;p&gt;Bah, dont be intimidated.  The best programmer's I've known didnt have CS degrees, if they had degrees at all.  They're lucky they have you... self-taught programmers tend to think outside of the box.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-28T05:41:58.507" CommentCount="2" />
  <row Id="7786" PostTypeId="2" ParentId="7779" CreationDate="2010-09-28T05:43:05.557" Score="6" ViewCount="" Body="&lt;p&gt;The best thing you can do is be a good programmer and let your work stand for your credibility. I'm also an arts major, and I've found that while I may be weaker in some areas, I'm generally better at architecture, strategy, and other &quot;big picture&quot; stuff than my peers. I don't know if that's from my background, or just me, but it gives me an area to (try to) stand out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find the areas where you may have strenghts your peers do not have (given the different background, there are bound to be some), and use those strengths to earn respect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And read. When I was first starting out, I read language specs, writing solid code, code complete, programming pearls, and dozens of others. Sometimes I had to read them twice - sometimes I &lt;em&gt;wanted&lt;/em&gt; to read them 3 or more times. But the study - and my ability to find practical applications for the theoretical stuff helped me hold my own - I expect it will do the same for you.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-09-28T05:43:05.557" />
  <row Id="7787" PostTypeId="2" ParentId="7779" CreationDate="2010-09-28T05:48:32.320" Score="5" ViewCount="" Body="&lt;p&gt;I have a Liberal-Arts degree myself (American Studies with a CS minor). One of my leads, who is a brilliant programmer, has no college at all--totally self-taught.&lt;br/&gt;  Don't hide your background, be proud of it.  You are who you are, and to hell with anyone who looks down on you because of it.  My biggest challenge has been getting through the HR filter and the prejudices that assume because I (we) have no CS degree we don't know what we are doing.  Being a Liberal Arts grad, I like to play up the strengths, such as the great communications skills that &quot;normal&quot; cs grads lack.  In most of cases, experience trumps a degree.&lt;/p&gt;&#xA;" OwnerUserId="882" LastEditorUserId="882" LastEditorDisplayName="" LastEditDate="2010-09-28T13:34:59.907" LastActivityDate="2010-09-28T13:34:59.907" CommentCount="2" />
  <row Id="7788" PostTypeId="2" ParentId="7656" CreationDate="2010-09-28T05:53:25.533" Score="1" ViewCount="" Body="&lt;p&gt;I started using pen and paper before I go to coding stage since college.  And I usually do it when I want to organize my thoughts.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the code is short, I write it first on paper before typing it.  Otherwise, I write pseudo-code or draw diagrams and flowcharts.&lt;/p&gt;&#xA;" OwnerUserId="1496" LastActivityDate="2010-09-28T05:53:25.533" />
  <row Id="7789" PostTypeId="2" ParentId="7705" CreationDate="2010-09-28T05:55:22.323" Score="0" ViewCount="" Body="&lt;p&gt;Is it acceptable?  That's really a question only you can answer.  Does the function achieve what it needs to?  Is it maintainable?  Is it 'acceptable' to the other members of your team?  If so, then that's what really matters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: I didn't see the thing about the nested functions.  Personally, I'd not use them.  I'd use regular functions instead.&lt;/p&gt;&#xA;" OwnerUserId="897" LastEditorUserId="325" LastEditorDisplayName="" LastEditDate="2011-02-18T18:58:38.507" LastActivityDate="2011-02-18T18:58:38.507" />
  <row Id="7790" PostTypeId="2" ParentId="565" CreationDate="2010-09-28T06:13:38.957" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blog.bitquabit.com/2009/07/01/one-which-i-call-out-hacker-news/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Coding StackOverflow In a Weekend&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;by Benjamin Pollack&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I learned while reading this rebuttal, and even had my attitude adjusted---it is easy to develop &quot;Stuff is Easy&quot; syndrome when you do not understand what it takes to accomplish a given task. See ClientsFromHell.net for classic examples. Now I appreciate much more what goes on behind the screen!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a teaser from the article:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The next time you see an application you like, think very long and hard about all the user-oriented details that went into making it a pleasure to use...&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(As far as I can tell, this is not a duplicate.)&lt;/p&gt;&#xA;" OwnerUserId="2515" LastEditorUserId="2515" LastEditorDisplayName="" LastEditDate="2010-09-28T08:26:35.073" LastActivityDate="2010-09-28T08:26:35.073" />
  <row Id="7791" PostTypeId="2" ParentId="7772" CreationDate="2010-09-28T06:21:06.337" Score="1" ViewCount="" Body="&lt;p&gt;5 years, on a SIP stack written in Delphi.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-28T06:21:06.337" />
  <row Id="7792" PostTypeId="2" ParentId="7779" CreationDate="2010-09-28T06:21:31.640" Score="3" ViewCount="" Body="&lt;p&gt;I'm a self-taught programmer, and I'm currently taking a CS major. My opinion? The CS courses is often not as well designed as some free internet resources. Maybe this is because I'm in my first years, and first year lecturers often justs sucks, but when I see the lecturers being so sloppy with his codes, it sometimes gives me some doubts about academically trained CS majors, especially those that doesn't seems to have self-learning attitude.&lt;/p&gt;&#xA;" OwnerUserId="3733" LastActivityDate="2010-09-28T06:21:31.640" />
  <row Id="7793" PostTypeId="2" ParentId="565" CreationDate="2010-09-28T06:22:55.193" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/Unicode.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-28T06:22:55.193" />
  <row Id="7794" PostTypeId="2" ParentId="7749" CreationDate="2010-09-28T06:25:51.023" Score="13" ViewCount="" Body="&lt;p&gt;Some really good ideas mentioned already, I will mention one more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Surround yourself with great programmers.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best way to learn is to &lt;em&gt;learn from the best&lt;/em&gt;.  Make sure you're not the best developer amongst your colleagues - if you are, it might be time to move on.&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-28T06:25:51.023" CommunityOwnedDate="2011-02-13T16:19:27.957" CommentCount="4" />
  <row Id="7796" PostTypeId="2" ParentId="7779" CreationDate="2010-09-28T06:43:58.737" Score="3" ViewCount="" Body="&lt;p&gt;I left high school easlyn so I started to get little jobs like dishwashing in restaurant, or &quot;nothing man&quot; at Ikea (not sure if you have that in US).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I then started to be interested in HTML programming mid-90's to build my personnal website. Then I decided (with zero experience) to get a job as an HTML programmer. I eventually got it, then rapidly after that (I would say 1 year), I became freelance. I wanted to do ASP applications and that was not possible in my current job (already one ASP developer I did want to take the job from).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Starting from that point, I did lot of mission as a developer and ALWAYS selected the mission that were proposed to me with the most unknown technologies. Before the interview I learned all the theory and when I was hired, I will go into them in details.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The more I learned, the more easy it was to get new knowledge. From personnal html website to large enterprise applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Few month ago, Microsoft asked me to run a course where I teach pragmatic enterprise development to university students! Me that never went to university.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To summarize my opinion, I will quote my favorite chinese:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I see, I forget, I hear, I remember, I&#xA;  do, I understand. Confucius&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;If you want to learn faster than others, take the most difficult path. Always.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-09-28T07:08:10.987" LastActivityDate="2010-09-28T07:08:10.987" CommentCount="2" />
  <row Id="7797" PostTypeId="2" ParentId="7618" CreationDate="2010-09-28T06:57:49.150" Score="1" ViewCount="" Body="&lt;p&gt;OOP is no special; you can make reusable code with or without OOP. &lt;strong&gt;Pure functions are particularly reusable&lt;/strong&gt;: for example, &lt;code&gt;java.lang.math.sqrt(double)&lt;/code&gt; takes a number in and gives a number out. No OOP, but definitely more reusable than most code out there.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-09-28T06:57:49.150" />
  <row Id="7798" PostTypeId="2" ParentId="565" CreationDate="2010-09-28T07:01:37.860" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.stevemcconnell.com/ieeesoftware/eic10.htm&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Cargo Cult Software Engineering&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;by Steve McConnell&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I discovered this short article over a year ago, as a crossover from Richard Feynman's &quot;cargo cult science&quot;, I believe. The article focuses more on practices than writing code itself. It responds to attempts to apply apparently successful approaches to a particular project without considering what made them successful in the first place. It is worth a read and a reread.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;We should not be debating process vs. commitment; we should be debating competence vs. incompetence. The real difference is not which style is chosen, but what education, training, and understanding is brought to bear on the project. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2515" LastActivityDate="2010-09-28T07:01:37.860" />
  <row Id="7799" PostTypeId="2" ParentId="7749" CreationDate="2010-09-28T07:05:38.033" Score="5" ViewCount="" Body="&lt;p&gt;I really think that the greatest programmers are those who understand business. And more specifically the impact of their output on the business.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A great programmer is the one that&#xA;  will maximum the &lt;strong&gt;ROI&lt;/strong&gt; (Return On&#xA;  Investment).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;To be able to do that, you have to be really interested in BOTH, &lt;strong&gt;programming&lt;/strong&gt; and &lt;strong&gt;business&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is very rare, and when a company get one, they usually try to keep it forever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are just a good technician, you can be replaced easily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seth Godin's coined a name for that kind of person.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Linchpin&lt;/strong&gt; - Are You Indispensable ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1591843162&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Linchpin-Are-Indispensable-Seth-Godin/dp/1591843162&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/9BSUy.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-28T07:05:38.033" CommunityOwnedDate="2011-02-13T16:19:27.957" CommentCount="2" />
  <row Id="7801" PostTypeId="2" ParentId="4863" CreationDate="2010-09-28T07:30:35.573" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://lolcode.com/&quot; rel=&quot;nofollow&quot;&gt;LOLCODE&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example 1:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;HAI&#xA;CAN HAS STDIO?&#xA;I HAS A VAR&#xA;IM IN YR LOOP&#xA;    UP VAR!!1&#xA;    VISIBLE VAR&#xA;    IZ VAR BIGGER THAN 10? KTHXBYE&#xA;IM OUTTA YR LOOP&#xA;KTHXBYE&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Example 2:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;HAI&#xA;CAN HAS STDIO?&#xA;I HAS A VAR&#xA;GIMMEH VAR&#xA;IZ VAR BIGGER THAN 10?&#xA;    YARLY&#xA;        BTW this is true&#xA;        VISIBLE &quot;BIG NUMBER!&quot;&#xA;    NOWAI&#xA;        BTW this is false&#xA;        VISIBLE &quot;LITTLE NUMBER!&quot;&#xA;    KTHX&#xA;KTHXBYE&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-09-28T07:30:35.573" CommunityOwnedDate="2010-10-22T23:54:06.263" CommentCount="5" />
  <row Id="7802" PostTypeId="2" ParentId="7618" CreationDate="2010-09-28T07:39:21.020" Score="2" ViewCount="" Body="&lt;p&gt;From a functional programming view OOP is mostly about managing state.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In functional programming you can easily have hundreds of useful functions for lists: &lt;a href=&quot;http://haskell.org/ghc/docs/6.12.1/html/libraries/base-4.2.0.0/Data-List.html&quot; rel=&quot;nofollow&quot;&gt;http://haskell.org/ghc/docs/6.12.1/html/libraries/base-4.2.0.0/Data-List.html&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would you have hundreds of methods in a List-class? Public methods are considered an interface to the internal state which you want to keep small.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sadly, instead of (re)using lots of small functions, some people duplicate functionality. To me that is because OOP &lt;strong&gt;does not encourage code reuse&lt;/strong&gt; as much as functional programming does.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-09-28T07:39:21.020" CommentCount="2" />
  <row Id="7803" PostTypeId="2" ParentId="7636" CreationDate="2010-09-28T07:52:49.420" Score="1" ViewCount="" Body="&lt;p&gt;As someone said above, whatever you write, keep it short. If you have to write more than one line, then you have to commit more often :)&lt;/p&gt;&#xA;" OwnerUserId="3752" LastActivityDate="2010-09-28T07:52:49.420" CommunityOwnedDate="2011-02-28T14:46:06.263" CommentCount="2" />
  <row Id="7804" PostTypeId="1" CreationDate="2010-09-28T08:07:30.630" Score="10" ViewCount="488" Body="&lt;p&gt;I tried programming Scala in Netbeans and Eclipse, but it is not what I'm looking for. In Netbeans suggestions for method names etc. are not working. In Eclipse I can't go to some classes sources by pressing F3. (e.g. scala List).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is support in IntelliJ IDEA any better? Are there other IDE's supporting Scala?&lt;/p&gt;&#xA;" OwnerUserId="3808" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:47:23.210" LastActivityDate="2010-10-18T17:21:50.090" Title="What is the best IDE for Scala?" Tags="&lt;ide&gt;&lt;scala&gt;" AnswerCount="2" />
  <row Id="7805" PostTypeId="2" ParentId="7636" CreationDate="2010-09-28T08:09:18.910" Score="0" ViewCount="" Body="&lt;p&gt;I've taken the approach of doing everything via an (internal) issue tracker system (Redmine). Whatever I'm committing must be related to some issue; otherwise I shouldn't be committing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then the commit message is simply something like&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Fixes #123.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The issue tracker system then interlinks the issue number with the revision number. This provides much more useful revision history than ad hoc commit messages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Granted, this approach requires making issues out of some technical details, and sometimes (for example, when refactoring) you'll add an appropriate issue just before committing a fix for it. In essence, this is all about moving the actual messages and explanations to the issue tracker system, and using the vc commit messages only to link revisions with the related issues.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-09-28T08:09:18.910" CommunityOwnedDate="2011-02-28T14:46:06.263" />
  <row Id="7806" PostTypeId="1" CreationDate="2010-09-28T08:23:49.647" Score="46" ViewCount="1761" Body="&lt;p&gt;And by that I mean any piece of code, or an idea/algorithm presented in pseudo code, something which is very important and is almost art now. I intend to put up a few paintings and work on paper around my office which depict engineering, rather celebrate engineering. I want them to be not so commonplace like e=mc2 or anything too geeky, like 42. They be special, they be important and have earned the position of being almost sacred owing to their contribution to their field. So I want a representation of computer programing as well. Thanks for your time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:After seeing a few initial responses I would like to mention that I am not looking for things which go on a t-shirt or mug, but huge framing on a wall. So anything funny/wicked/clever is not only not suitable, but I want it to be inspiring/celebrating. Not to say that I don't love the funny, but this time I want to focus on things serious.&lt;/p&gt;&#xA;" OwnerUserId="3813" LastEditorUserId="3813" LastEditorDisplayName="" LastEditDate="2010-09-28T09:05:27.307" LastActivityDate="2010-12-01T09:58:23.230" ClosedDate="2011-02-23T15:15:11.687" Title="What would be a few ideas/concepts from programming that I can have on paper and hang on a wall as art?" Tags="&lt;algorithms&gt;&lt;snippets&gt;" AnswerCount="30" CommentCount="8" FavoriteCount="42" />
  <row Id="7807" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T08:28:45.790" Score="45" ViewCount="" Body="&lt;p&gt;Neat question! Off the top of my head, what about a flowchart? Those are extremely important in programming as well as engineering.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Well! I have dug up a veritable treasure trove! And here they are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;New addition&lt;/strong&gt;: &lt;a href=&quot;http://www.ozonehouse.com/mark/periodic/&quot; rel=&quot;nofollow&quot;&gt;Periodic Table of the Operators (Perl 6)&lt;/a&gt; -- I was reminded of it by &lt;a href=&quot;http://stackoverflow.com/questions/1995113/strangest-language-feature/1999995#1999995&quot;&gt;this answer&lt;/a&gt;. (I think I have it my bookmarks somewhere).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.benjamin-erb.de/visual/sorting_algorithms/sort_poster_a1.pdf&quot; rel=&quot;nofollow&quot;&gt;Sorting Algorithm Visualization&lt;/a&gt; -- I was floored when I found this. You might be able to persuade the author to re-create it at a higher resolution.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.manetas.com/art/index.html&quot; rel=&quot;nofollow&quot;&gt;Art by Miltos Manetas&lt;/a&gt; -- He actually has some nice-looking computer-related paintings! (Everything on that page is a link.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.cafepress.com/+programming+art-posters&quot; rel=&quot;nofollow&quot;&gt;Programming Posters &amp;amp; Art Prints at CafePress&lt;/a&gt; -- These are hit-and-miss; some are clever or attractive, others look like two-minute homemade affairs. They are all for sale only.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://royal.pingdom.com/2008/06/04/it-posters-to-cover-your-empty-walls/&quot; rel=&quot;nofollow&quot;&gt;IT Posters to Cover Your Empty Walls (Royal Pingdom)&lt;/a&gt;&lt;/strong&gt; -- This is the gold. Almost twenty posters, a number of which are free to download.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.voidspace.org.uk/python/weblog/arch_d7_2008_12_06.shtml&quot; rel=&quot;nofollow&quot;&gt;Python Revolution Poster&lt;/a&gt; -- This one is for kicks. Not high-res.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/b/brada/archive/2008/10/29/net-framework-4-poster.aspx&quot; rel=&quot;nofollow&quot;&gt;.NET Framework 4 Universe&lt;/a&gt; -- A colorful reference chart. Click the second link below the thumbnail for the PDF.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.info.ucl.ac.be/~pvr/paradigms.html&quot; rel=&quot;nofollow&quot;&gt;Classification of the Principal Programming Paradigms&lt;/a&gt; -- A relational diagram of programming languages with a panel of detailed explanation. Excellent!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://chargen.matasano.com/storage/poster.gif&quot; rel=&quot;nofollow&quot;&gt;Matasano Security Unicode Chart&lt;/a&gt; -- An interesting, slick poster of Unicode values, security character replacements, and even &lt;em&gt;a frequency chart of the English alphabet&lt;/em&gt;. Wow.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.vijayforvictory.com/tag/poster/&quot; rel=&quot;nofollow&quot;&gt;Three Useful Posters (Vijay for Victory)&lt;/a&gt; -- Scroll past the campaign ads against driver cell phone use to find: (1) A Unix command reference chart, (2) a &lt;em&gt;beautiful&lt;/em&gt; regular expression &quot;cheat sheet&quot; for programmers, and (3) a graphical Vi command chart.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://fc04.deviantart.com/fs41/i/2009/031/2/2/Computer_hardware_poster_1_7_by_Sonic840.jpg&quot; rel=&quot;nofollow&quot;&gt;Computer Hardware Wall Chart&lt;/a&gt; -- To some this would be worth printing full-size at a shop. This high-resolution poster is complete and detailed, covering computer hardware from the 8086 to the Socket F, from DIPP (never heard of it!) to DDR3 memory, to hard disk storage, optical storage, ports, interfaces, buses, and power connectors!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://blog.techdreams.org/2007/11/net-framework-35-types-and-namespaces.html&quot; rel=&quot;nofollow&quot;&gt;.NET Framework 3.5 Commonly Used Types and Namespaces&lt;/a&gt; -- It  seems plain boring after the last, but it is there.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://oreilly.com/news/graphics/prog_lang_poster.pdf&quot; rel=&quot;nofollow&quot;&gt;History of Programming Languages&lt;/a&gt; -- O'Reilly has created a vector-based timeline of the &quot;evolution&quot; of programming languages. Now you only need a plotter to print this classic up to size.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.sektioneins.de/en/kontakt/php-security-poster/index.html&quot; rel=&quot;nofollow&quot;&gt;PHP Security Poster (SektionEins)&lt;/a&gt; -- Click &quot;Download PDF&quot; just above the form. If you live in Germany, Austria, or Switzerland you can mail-order a free copy right there. The page states &quot;we have stopped shipping the poster to countries outside of the DACH region (Germany, Austria, Switzerland) for free.&quot; It is not clear if you can pay them to send a poster outside the region or not.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.zazzle.com/programming_humor_poster-228946678545517693&quot; rel=&quot;nofollow&quot;&gt;No way!! It compiles! Ship it!!&lt;/a&gt; -- A humorous poster I wanted to share.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Finally, the &lt;strong&gt;SANS&lt;/strong&gt; (SysAdmin, Audit, Network, Security) &lt;strong&gt;Institute&lt;/strong&gt; has five dense, high-resolution posters available &lt;a href=&quot;http://www.sans.org/whatworks/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;. Each has two pages:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.sans.org/whatworks/poster-spring-2010.pdf&quot; rel=&quot;nofollow&quot;&gt;What Works in Internet Security Poster Spring 2010.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.sans.org/whatworks/20-critical-controls-poster-062010.pdf&quot; rel=&quot;nofollow&quot;&gt;WhatWorks in Implementing the 20 Critical Security Controls and SANS Cyber Attack Threat Map&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.sans.org/whatworks/poster_spring_09.pdf&quot; rel=&quot;nofollow&quot;&gt;COSEC: Compliance through Security&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.sans.org/whatworks/poster_fall_08.pdf&quot; rel=&quot;nofollow&quot;&gt;Six Defensive Walls for a Layered Approach to Security&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.sans.org/whatworks/poster_2008.pdf&quot; rel=&quot;nofollow&quot;&gt;Application &amp;amp; Information Security RoadMap 2008 and&#xA;&lt;em&gt;Common Security Errors in Programming&lt;/em&gt; (!)&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2515" LastEditorUserId="2515" LastEditorDisplayName="" LastEditDate="2010-10-05T07:37:15.793" LastActivityDate="2010-10-05T07:37:15.793" CommentCount="10" />
  <row Id="7808" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T08:29:16.567" Score="2" ViewCount="" Body="&lt;p&gt;My very first thought: &lt;a href=&quot;http://www.cs.cmu.edu/~dst/DeCSS/Gallery/&quot; rel=&quot;nofollow&quot;&gt;DeCSS&lt;/a&gt;. People have done some really nice artistic things that are, at the same time, pointed social commentary. That might be a political bombshell for Americans, I suppose?&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-28T08:29:16.567" CommentCount="2" />
  <row Id="7809" PostTypeId="2" ParentId="7652" CreationDate="2010-09-28T08:29:23.527" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Pascal/Delphi&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;begin end&lt;/strong&gt; marking a block of code&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;:=&lt;/strong&gt; assignment operator&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;=&lt;/strong&gt; comparison operator&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3531" LastEditorUserId="3531" LastEditorDisplayName="" LastEditDate="2010-09-28T08:34:35.003" LastActivityDate="2010-09-28T08:34:35.003" CommunityOwnedDate="2011-03-20T14:02:27.677" CommentCount="2" />
  <row Id="7810" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T08:53:28.680" Score="1" ViewCount="" Body="&lt;p&gt;I would look to 2 sources - &lt;a href=&quot;http://store.xkcd.com/&quot; rel=&quot;nofollow&quot;&gt;XKCD&lt;/a&gt; and &lt;a href=&quot;http://shop.theoatmeal.com/&quot; rel=&quot;nofollow&quot;&gt;The Oatmeal&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both have some really funny posters you could use and are definitely relevant to programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other one would be &lt;a href=&quot;http://www.27bslash6.com/shop.html&quot; rel=&quot;nofollow&quot;&gt;27slashB&lt;/a&gt;, but you can only buy t-shirts and tops on that site.  Which is a real shame - a poster of a 7-legged spider would be killer.&lt;/p&gt;&#xA;" OwnerUserId="221" LastEditorUserId="221" LastEditorDisplayName="" LastEditDate="2010-09-28T09:01:04.880" LastActivityDate="2010-09-28T09:01:04.880" CommentCount="4" />
  <row Id="7811" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T08:57:00.540" Score="1" ViewCount="" Body="&lt;p&gt;Load a picture of yourself in IE6. Print screen and frame it. Give it to your grandkids to remind them that, no matter how difficult things get, they've got it easy compared to what you had to deal with.&lt;/p&gt;&#xA;" OwnerUserId="73" LastActivityDate="2010-09-28T08:57:00.540" CommentCount="1" />
  <row Id="7812" PostTypeId="2" ParentId="7749" CreationDate="2010-09-28T08:58:33.447" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Keep learning (from programming resources and other domain : be curious!)&lt;/li&gt;&#xA;&lt;li&gt;Persevere&lt;/li&gt;&#xA;&lt;li&gt;Experience Programming : Write Code - Have spare time projects&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-09-28T08:58:33.447" CommunityOwnedDate="2011-02-13T16:19:27.957" />
  <row Id="7813" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T08:59:51.827" Score="0" ViewCount="" Body="&lt;p&gt;Some poster that prints Hello World in a gazillion of different programming languages (&lt;a href=&quot;http://www.c2.com/cgi/wiki?HelloWorldInManyProgrammingLanguages&quot; rel=&quot;nofollow&quot; title=&quot;Source&quot;&gt;source&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="2942" LastActivityDate="2010-09-28T08:59:51.827" CommentCount="1" />
  <row Id="7814" PostTypeId="2" ParentId="7779" CreationDate="2010-09-28T09:04:29.837" Score="1" ViewCount="" Body="&lt;p&gt;Show your skills. In our domain there is only one way to do it : show achieved works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Always have spare time projects ready to be shown. You can have many or you can have few, but showing something that works and is meaningfull is often better than showing a diploma. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only problem you could have is if the company set salaries relative to diploma. You'll then have to show that your experience (home &amp;amp; previous dayjobs) show that you have the level of one of the diploma and that you have more : experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't have any diploma and this strategy pays today. It's just not easy at first because you have to keep motivation on spare time projects to finish them and it's not always easy, but once you have finished something meaningful, it's the start of your golden age.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-09-28T09:04:29.837" />
  <row Id="7815" PostTypeId="2" ParentId="7779" CreationDate="2010-09-28T09:07:49.740" Score="0" ViewCount="" Body="&lt;p&gt;Read 'Design Patterns' by the gang of four (http://www.amazon.co.uk/Design-patterns-elements-reusable-object-oriented/dp/0201633612/ref=sr_1_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1285664774&amp;amp;sr=8-2) and the pragmatic programmer (http://www.amazon.co.uk/Pragmatic-Programmer-Andrew-Hunt/dp/020161622X/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1285664794&amp;amp;sr=1-1) and you'll be better equipped than if you had spent three years doing a batchelor's degree.&lt;/p&gt;&#xA;" OwnerUserId="561" LastActivityDate="2010-09-28T09:07:49.740" CommentCount="2" />
  <row Id="7816" PostTypeId="2" ParentId="7188" CreationDate="2010-09-28T09:09:39.517" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0974514047&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://i.imgur.com/4tDYo.jpg&quot; alt=&quot;Ship It!&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201633612&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://i.imgur.com/pExoo.jpg&quot; alt=&quot;Design Patterns&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/020161622X&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://i.imgur.com/rYpL1.jpg&quot; alt=&quot;The Pragmatic Programmers&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3820" LastActivityDate="2010-09-28T09:09:39.517" CommunityOwnedDate="2011-02-10T17:23:39.897" />
  <row Id="7817" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T09:24:22.177" Score="6" ViewCount="" Body="&lt;p&gt;I don't have a good link but how about the &quot;linux kernel map&quot; (&lt;a href=&quot;http://www.makelinux.net/kernel_map&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; or &lt;a href=&quot;http://fcgp.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;this one&lt;/a&gt;)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or a nice piece of &lt;a href=&quot;http://www.google.ch/images?q=intel+cpu+die+poster&amp;amp;um=1&amp;amp;hl=en&amp;amp;tbs=isch:1,simg%3aCAESEgmlIL1h-Z5VdyEBk1txmIT3Sw&amp;amp;iact=hc&amp;amp;vpx=127&amp;amp;vpy=58&amp;amp;dur=2703&amp;amp;hovh=245&amp;amp;hovw=206&amp;amp;tx=30&amp;amp;ty=332&amp;amp;ei=9rOhTN3AC-Kg4Qbb0sWFBA&amp;amp;oei=9rOhTN3AC-Kg4Qbb0sWFBA&amp;amp;esq=1&amp;amp;page=1&amp;amp;tbnh=147&amp;amp;tbnw=124&amp;amp;ved=1t:722,r:0,s:0&amp;amp;biw=1382&amp;amp;bih=913&quot; rel=&quot;nofollow&quot;&gt;naked CPU&lt;/a&gt;? (is that CPU pr0n?)&lt;/p&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-09-28T09:24:22.177" CommentCount="2" />
  <row Id="7818" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T09:32:49.373" Score="3" ViewCount="" Body="&lt;p&gt;Not to be taken as is, but maybe a source of inspiration: Éric Lévénez's &lt;a href=&quot;http://www.levenez.com/unix/&quot; rel=&quot;nofollow&quot;&gt;Unix history&lt;/a&gt; has already been used as a work of art.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another possibility would be &lt;a href=&quot;http://googlecode.blogspot.com/2009/07/apollo-11-missions-40th-anniversary-one.html&quot; rel=&quot;nofollow&quot;&gt;Apollo 11 source code&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-09-28T09:32:49.373" CommentCount="1" />
  <row Id="7819" PostTypeId="2" ParentId="7686" CreationDate="2010-09-28T09:33:23.717" Score="0" ViewCount="" Body="&lt;p&gt;I took an MSc in Computer Science mostly for the fun of it, but also to assist my career. I wasn't expecting massive returns financially from my input, but it certainly opened my eyes to a lot of new areas of compsci that I had not touched on in my BSc. It really helps putting &quot;University of Edinburgh - Distinction&quot;, and besides, it was a lot of fun, worked my ass but played just as hard too! Don't just do it for the career prospects, do it because you want to too.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-28T09:33:23.717" />
  <row Id="7820" PostTypeId="2" ParentId="7686" CreationDate="2010-09-28T09:54:23.113" Score="2" ViewCount="" Body="&lt;p&gt;It can surely help in &lt;em&gt;getting your career started&lt;/em&gt; - getting your first, maybe second job. But after you have a few years of experience under your belt, then it's what you've actually done that matters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A degree is, after all, just a degree. It's an indication that you've studied, but no more than that (nor less). Employers are interested in what you're going to &lt;strong&gt;do&lt;/strong&gt; if they hire you. When they're trying to figure that out (in the interview), a degree is certainly better indicator than nothing, but actually completed real-world projects (or lack of them) are way better indicators than a degree (or lack of it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Did Bill Gates ever graduate? Actually he did, in 2007, 30 years after dropping out of Harvard.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-09-29T10:37:28.413" LastActivityDate="2010-09-29T10:37:28.413" CommentCount="1" />
  <row Id="7821" PostTypeId="2" ParentId="7779" CreationDate="2010-09-28T10:16:25.783" Score="10" ViewCount="" Body="&lt;p&gt;Do remember that computers are something relatively recent. This means that &lt;em&gt;many awesome programmers never took a course on programming because there weren't any&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This also means that many software you're nowadays using actually evolved out of ideas of hobbyists, and that many things that are taught in programming courses were actually figured out by empirical observation of what very bright people without courses had done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Having a degree on programming is not a requirement for becoming an awesome programmer&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This also applies to a lot of technologies that are popping out every second. If it came out yesterday, you obviously didn't learn how to master it in your CS major.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, that being said, well structured classes on some matters can and will give a kick-ass background and will show you different ways of viewing and solving problems. Remember that if you have many music masters that learned everything by themselves, you have many more that were taught. So,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Having a defree on programming might actually help you become a better programmer&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what's the point here? Simple:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Don't get intimidated because you don't have a course on the subject&lt;/li&gt;&#xA;&lt;li&gt;Don't get cocky because you learned it all by yourself: there's always a lot more to learn and people who did take courses might have a lot to teach you&lt;/li&gt;&#xA;&lt;li&gt;Don't let others' cockyness get you down, because there's simply no reason for that&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3832" LastActivityDate="2010-09-28T10:16:25.783" CommentCount="2" />
  <row Id="7822" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T10:22:15.390" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://academics.triton.edu/faculty/fheitzman/tallofficebuilding.html&quot; rel=&quot;nofollow&quot; title=&quot;the tall office building artistically considered&quot;&gt;the tall office building artistically considered&lt;/a&gt; is a link I want to add to the discussion as it is an essay which captures the thoughts and ideas of the man, Louis H. Sullivan, who coined the phrase, &quot;Form follows function&quot;. I find it to be very relevant and specially the thoughts in it about halfway through the essay are a must read for any engineer. Thoughts which are true even hundred years since the essay, thoughts like,&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The man who designs in the spirit and with the sense of responsibility to the generation he lives in must be no coward, no denier, no bookworm, no dilettante. He must live of his life and for his life in the fullest, most consummate sense. He must realize at once and with the grasp of inspiration that the problem of the tall office building is one of the most stupendous, one of the most magnificent opportunities that the Lord of Nature in His beneficence has ever offered to the proud spirit of man.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3813" LastActivityDate="2010-09-28T10:22:15.390" />
  <row Id="7823" PostTypeId="1" AcceptedAnswerId="7829" CreationDate="2010-09-28T10:22:32.677" Score="18" ViewCount="447" Body="&lt;p&gt;I think that there are some cases when multiple assertions are needed (e.g. &lt;a href=&quot;http://xunitpatterns.com/Guard%20Assertion.html&quot; rel=&quot;nofollow&quot;&gt;Guard Assertion&lt;/a&gt;), but in general I try to avoid this. What is your opinion? Please provide a real word examples when multiple asserts are really &lt;em&gt;needed.&lt;/em&gt; Thanks!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the comment to &lt;a href=&quot;http://www.owenpellegrin.com/blog/testing/how-do-you-solve-multiple-asserts/&quot; rel=&quot;nofollow&quot;&gt;this great post&lt;/a&gt; Roy Osherove pointed to the &lt;a href=&quot;http://rauchy.net/oapt/&quot; rel=&quot;nofollow&quot;&gt;OAPT&lt;/a&gt; project that is designed to run each assert in a single test. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is written on projects home page:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Proper unit tests should fail for&#xA;  exactly one reason,&lt;/strong&gt; that’s why you&#xA;  should be using one assert per unit&#xA;  test.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And also Roy wrote in comments:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;My guideline is usually that you test&#xA;  one logical CONCEPT per test. you can&#xA;  have multiple asserts on the same&#xA;  &lt;em&gt;object&lt;/em&gt;. they will usually be the same concept being tested.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1716" LastEditorUserId="1716" LastEditorDisplayName="" LastEditDate="2010-09-28T21:32:48.600" LastActivityDate="2010-09-28T21:32:48.600" CommunityOwnedDate="2010-09-28T10:22:32.677" Title="Is it OK to have multiple asserts in a single unit test?" Tags="&lt;best-practices&gt;&lt;unit-testing&gt;" AnswerCount="5" FavoriteCount="3" />
  <row Id="7824" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T10:28:24.207" Score="3" ViewCount="" Body="&lt;p&gt;We have the &lt;a href=&quot;http://www.levenez.com/lang/&quot; rel=&quot;nofollow&quot;&gt;programming language history&lt;/a&gt; on the wall. This way you can see where all the ideas and concepts have evolved from. To me it's like looking at my family tree.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-09-28T10:28:24.207" CommentCount="1" />
  <row Id="7825" PostTypeId="2" ParentId="7823" CreationDate="2010-09-28T10:49:23.883" Score="8" ViewCount="" Body="&lt;p&gt;I have never thought that more than one assert was a bad thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do it all the time:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public void ToPredicateTest()&#xA;{&#xA;    ResultField rf = new ResultField(ResultFieldType.Measurement, &quot;name&quot;, 100);&#xA;    Predicate&amp;lt;ResultField&amp;gt; p = (new ConditionBuilder()).LessThanConst(400)&#xA;                                                        .Or()&#xA;                                                        .OpenParenthesis()&#xA;                                                        .GreaterThanConst(500)&#xA;                                                        .And()&#xA;                                                        .LessThanConst(1000)&#xA;                                                        .And().Not()&#xA;                                                        .EqualsConst(666)&#xA;                                                        .CloseParenthesis()&#xA;                                                        .ToPredicate();&#xA;&#xA;    Assert.IsTrue(p(ResultField.FillResult(rf, 399)));&#xA;    Assert.IsTrue(p(ResultField.FillResult(rf, 567)));&#xA;    Assert.IsFalse(p(ResultField.FillResult(rf, 400)));&#xA;    Assert.IsFalse(p(ResultField.FillResult(rf, 666)));&#xA;    Assert.IsFalse(p(ResultField.FillResult(rf, 1001)));&#xA;&#xA;    Predicate&amp;lt;ResultField&amp;gt; p2 = (new ConditionBuilder()).EqualsConst(true).ToPredicate();&#xA;&#xA;    Assert.IsTrue(p2(new ResultField(ResultFieldType.Confirmation, &quot;Is True&quot;, true)));&#xA;    Assert.IsFalse(p2(new ResultField(ResultFieldType.Confirmation, &quot;Is False&quot;, false)));&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Here I use multiple asserts to make sure complex conditions can be turned into the expected predicate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am only testing one unit (the &lt;code&gt;ToPredicate&lt;/code&gt; method), but I am covering everything I can think of in the test.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-09-28T10:49:23.883" CommunityOwnedDate="2010-09-28T10:49:23.883" CommentCount="7" />
  <row Id="7826" PostTypeId="1" CreationDate="2010-09-28T11:09:59.660" Score="5" ViewCount="148" Body="&lt;p&gt;I like the GPL license but the project I'm working on is a more general purpose one that will be used inside other programs. It doesn't run independently like a CMS or application would. So I'm looking around at other projects to see what they've done.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;JQuery has an interesting MIT/GPL license&lt;/li&gt;&#xA;&lt;li&gt;Zend framework has New BSD license&lt;/li&gt;&#xA;&lt;li&gt;Symfony framework has MIT license &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As developers, is there an established preference that we expect from libraries. I rarely cared because I never build applications that were sold or distributed, which eliminated the possibility that I would be in conflict with the license of a library I'm using, but I want to know what others are thinking. Will you avoid using a library or a framework if it's GPL? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a bit torn. I'd like to use GPL and as the only license (unlike JQuery for example) but I also worry that this will scare developers away who want to use the library to build distributable code. The other thing is I'm seeing that many libraries are frameworks are released as MIT, but I find the MIT license, well, a bit too &quot;loose&quot; for my taste.&lt;/p&gt;&#xA;" OwnerUserId="3839" LastEditorUserId="3839" LastEditorDisplayName="" LastEditDate="2010-09-28T11:16:34.967" LastActivityDate="2010-09-28T22:55:01.073" Title="Do libraries and frameworks swing more on the GPL or MIT side" Tags="&lt;web-development&gt;&lt;software&gt;&lt;open-source&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="7827" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T11:11:13.153" Score="0" ViewCount="" Body="&lt;p&gt;A classic Mandelbrot set would be nice. Maybe you could overlay it with the relevant source code or pseudocode in some way.&lt;/p&gt;&#xA;" OwnerUserId="2242" LastActivityDate="2010-09-28T11:11:13.153" CommentCount="1" />
  <row Id="7828" PostTypeId="2" ParentId="7826" CreationDate="2010-09-28T11:19:27.580" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Will you avoid using a library or a framework if it's GPL?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes. Using a GPL'd library would essentially require me to publish the source of my software that uses the library, or even GPL it (altough this is somewhat &lt;a href=&quot;http://en.wikipedia.org/wiki/GNU_General_Public_License#Linking_and_derived_works&quot; rel=&quot;nofollow&quot;&gt;unclear&lt;/a&gt; - but better not take legal risks).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Publishing sources (let alone GPL'ing a software product) is typically impossible with commercial software (depending on corporate policies). And even if I could publish the source, I dislike the idea that some 3rd party library's license defines how I should license my software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider using &lt;a href=&quot;http://www.gnu.org/licenses/lgpl.html&quot; rel=&quot;nofollow&quot;&gt;LGPL&lt;/a&gt;, or even better, another licence widely used in libraries the &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; rel=&quot;nofollow&quot;&gt;Apache License&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless of the details - all GPL licenses are quite incomprehensible and subject to continuous re-interpretation by lawyers and by the FSF - it's clear that the &lt;em&gt;spirit&lt;/em&gt; of GPL is to make all software free via viral licenses. In practice they're better to avoid, unless, of course, you agree with their goals and understand them.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-09-28T12:39:37.483" LastActivityDate="2010-09-28T12:39:37.483" CommentCount="2" />
  <row Id="7829" PostTypeId="2" ParentId="7823" CreationDate="2010-09-28T11:22:55.610" Score="15" ViewCount="" Body="&lt;p&gt;Great question.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think it's necessarily a &lt;strong&gt;bad thing&lt;/strong&gt;, but I do think we should &lt;strong&gt;strive towards only having single asserts&lt;/strong&gt; in our tests.  This means you write a lot more tests and our tests would end up testing only one thing at a time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, I would say maybe half of my tests actually only have 1 assert.  I think it only becomes a &lt;strong&gt;code (test?) smell&lt;/strong&gt; when you have about 5 or more asserts in your test.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.owenpellegrin.com/blog/testing/how-do-you-solve-multiple-asserts/&quot; rel=&quot;nofollow&quot;&gt;How do you solve multiple asserts?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="221" LastEditorUserId="221" LastEditorDisplayName="" LastEditDate="2010-09-28T11:28:45.223" LastActivityDate="2010-09-28T11:28:45.223" CommunityOwnedDate="2010-09-28T11:22:55.610" CommentCount="2" />
  <row Id="7831" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T11:43:25.600" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The .NET Framework posters&lt;/strong&gt; that are supplied by Microsoft are my favorite (for .NET development). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A quick search like &lt;a href=&quot;http://www.google.com/#sclient=psy&amp;amp;hl=en&amp;amp;safe=off&amp;amp;q=.net+framework+poster+4.0&amp;amp;aq=f&amp;amp;aqi=g1g-o1&amp;amp;aql=&amp;amp;oq=&amp;amp;gs_rfai=&amp;amp;pbx=1&amp;amp;fp=4e781b66e30e329a&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; will often get you what you want.  Poster PDFs and images can then be taken to Kinkos or some other printing store to get an awesome-sized poster to hang up!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These help you to make better design decisions as you can see at a glance if something is already implemented in the framework for you, or if you need to do it yourself/find another library.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/RRzIf.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-28T11:43:25.600" CommentCount="2" />
  <row Id="7832" PostTypeId="2" ParentId="7720" CreationDate="2010-09-28T12:06:44.337" Score="1" ViewCount="" Body="&lt;p&gt;FWIW I personally have a big open source project which I am lead developer on and I've adopted a multiple license model precisely because the GPL was holding some people back from using my code.  My code is licensed under a choose your own license model and allows any of the following licenses - GPL, LGPL, MIT&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The LGPL allows people to incorporate your code/library/executable as-is in their product providing it is not modified.  This is most useful for companies building commercial/closed source products that might need your product to function but don't need to change how your product functions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The MIT License is essentially a permissive license that lets people modify your work however they wish and repurpose it for their own work.  Use this if you've suspect users may want to do this and you don't mind not having access to the source of any modifications people might make.&lt;/p&gt;&#xA;" OwnerUserId="3845" LastActivityDate="2010-09-28T12:06:44.337" />
  <row Id="7833" PostTypeId="2" ParentId="7720" CreationDate="2010-09-28T12:15:42.410" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Benefit: you are legally guaranteed that people make their changes/contributions available to you.&lt;/li&gt;&#xA;&lt;li&gt;Cost: many commerical users can not use your code. They will not use your code and thus will never contribute. See &lt;a href=&quot;http://forum.libcinder.org/topic/compile-time-and-ways-to-speed-up#topic/23286000000016028&quot; rel=&quot;nofollow&quot;&gt;this thread&lt;/a&gt; explaining why the libcinder people can not use (L)GPL code. Even the LGPL can be problematic when they need to statically link the library.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-10-25T10:25:52.530" LastActivityDate="2010-10-25T10:25:52.530" CommentCount="2" />
  <row Id="7834" PostTypeId="1" AcceptedAnswerId="7835" CreationDate="2010-09-28T12:21:12.743" Score="7" ViewCount="565" Body="&lt;p&gt;&lt;strong&gt;NOTE: I was asked at Stackoverflow to post this here instead.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm two months away from getting my degree in Systems Engineering (which is to say, I learned how to code and code well using managed languages).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only reason I got into this career was because I wanted to create videogames. I know now that with my current skillset, I won't be able to create some of the things I have in my head.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.utepsa.edu/v2/ing-sistemas.php&quot; rel=&quot;nofollow&quot;&gt;You can see some of the courses I took during my 4 year college degree.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you think per a second degree in pure mathematics would help me with this goal? What are the type of courses I should be expecting? For example, during college I had classes that taught programming, but also some Systems Administrating, some accounting, and even a Law class that teaches us about laws that apply specifically towards us as programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for the suggestions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm also 21 years old, with a 18 month old boy and a baby girl on the way if that helps you guys give some more fleshed out answers. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt; Just to clarify, I don't mean working for a gaming company, but actually working on my own games with possibly a coworker or two.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-29T04:07:19.690" Title="Will getting a Math degree help me as a programmer?" Tags="&lt;career&gt;&lt;math&gt;" AnswerCount="8" CommentCount="1" />
  <row Id="7835" PostTypeId="2" ParentId="7834" CreationDate="2010-09-28T12:27:33.650" Score="6" ViewCount="" Body="&lt;p&gt;No type of degree will help you as a programmer more than programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Experience trumps studying. If you want to be a good programmer then &lt;strong&gt;start programming&lt;/strong&gt;. I don't have a degree but I've been programming on various projects for fun since I was around 15-16; needless to say I'm light years ahead of my friends who studied computer science at a university and ask me questions like &quot;is it better to check admin privileges for my website through PHP or the SQL GRANT option?&quot;.&lt;/p&gt;&#xA;" OwnerUserId="112" LastActivityDate="2010-09-28T12:27:33.650" CommentCount="8" />
  <row Id="7836" PostTypeId="2" ParentId="7826" CreationDate="2010-09-28T12:30:24.093" Score="1" ViewCount="" Body="&lt;p&gt;GPL (and even LGPL) has &lt;a href=&quot;http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-January/124027.html&quot; rel=&quot;nofollow&quot;&gt;major repercussions&lt;/a&gt; in image-based systems like, for instance, Squeak (*):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;LGPL code is completely unacceptable for inclusion in the main Squeak distribution, and doubly so if it is code that the FSF holds the copyright to.  RMS was unwilling to elaborate on the interpretation of the LGPL for image-based systems such as Squeak.  In his view, including a single LGPL class makes the entire image into a &quot;derived work&quot; that can only be redistributed subject to the restrictions of the LGPL.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;So this might (IANAL!) impact on other image-based systems like Common Lisp.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-28T12:30:24.093" CommentCount="2" />
  <row Id="7837" PostTypeId="2" ParentId="7559" CreationDate="2010-09-28T12:36:30.063" Score="0" ViewCount="" Body="&lt;p&gt;I usually do #2. Saving my current work elsewhere: this usually works fine by creating a patch. Also some IDEs (IntelliJ) allow for shelving changes which is exactly that: save the current work elsewhere. &lt;/p&gt;&#xA;" OwnerUserId="3850" LastActivityDate="2010-09-28T12:36:30.063" />
  <row Id="7838" PostTypeId="2" ParentId="880" CreationDate="2010-09-28T12:39:29.120" Score="0" ViewCount="" Body="&lt;p&gt;At work I'm working on a &lt;a href=&quot;http://www.hp.com/go/z600&quot; rel=&quot;nofollow&quot;&gt;HP z600&lt;/a&gt; with two quad-core Xeon X5550, 12 GB RAM and two 500 GB drives as RAID 0. Connected to that is a 24&quot; (1900*1200) and a 21&quot; (1600*1200) monitor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://xkcd.com/303/&quot; rel=&quot;nofollow&quot;&gt;xkcd&lt;/a&gt; still applies. :( I'm already thinking about switching to SSD, but I need to convince some people of that first...&lt;/p&gt;&#xA;" OwnerUserId="2929" LastEditorUserId="2929" LastEditorDisplayName="" LastEditDate="2010-09-28T12:46:32.337" LastActivityDate="2010-09-28T12:46:32.337" CommunityOwnedDate="2011-02-06T19:45:08.167" />
  <row Id="7839" PostTypeId="2" ParentId="7834" CreationDate="2010-09-28T12:46:14.537" Score="2" ViewCount="" Body="&lt;p&gt;A whole degree's worth of math would probably be overkill.  While knowing some math will help you a lot (especially in any serious attempt at 3D programming), i have a feeling that you won't be able to apply a lot of what you'd learn with a pure math degree.  However, i'd still recommend you take at least a few classes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the &quot;experience trumps studying&quot; argument, some amount of studying can keep you from having to learn as much through trial and error.  I know i'd much rather be able to say beforehand whether that thing i'm trying to do is the best way to do it (or will even work).  The trial-and-error crowd usually won't know the answer to that til they've wasted a good chunk of time.&lt;/p&gt;&#xA;" OwnerUserId="900" LastEditorUserId="900" LastEditorDisplayName="" LastEditDate="2010-09-29T02:54:31.310" LastActivityDate="2010-09-29T02:54:31.310" CommentCount="2" />
  <row Id="7841" PostTypeId="2" ParentId="6929" CreationDate="2010-09-28T12:52:27.447" Score="0" ViewCount="" Body="&lt;p&gt;I tend to try to recreate things I find interesting - for instance, I recently decided to make my own version of &lt;a href=&quot;http://tadalist.com/&quot; rel=&quot;nofollow&quot;&gt;Ta-Da list&lt;/a&gt;, just to see how it could be done.&lt;/p&gt;&#xA;" OwnerUserId="1698" LastActivityDate="2010-09-28T12:52:27.447" />
  <row Id="7842" PostTypeId="2" ParentId="6929" CreationDate="2010-09-28T13:00:43.727" Score="0" ViewCount="" Body="&lt;p&gt;For me &lt;a href=&quot;http://projecteuler.net/index.php&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt; and &lt;a href=&quot;http://www.facebook.com/careers/puzzles.php&quot; rel=&quot;nofollow&quot;&gt;Facebook Puzzles&lt;/a&gt; lately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See &lt;a href=&quot;http://programmers.stackexchange.com/questions/756/programming-puzzles/764#764&quot;&gt;my answer as an accepted answer to another question&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-28T13:00:43.727" />
  <row Id="7843" PostTypeId="2" ParentId="7779" CreationDate="2010-09-28T13:14:32.343" Score="1" ViewCount="" Body="&lt;p&gt;Even after you have the degree, the farther you get from it (in time), the less important it is - and the more important experience becomes.  Experience (&lt;em&gt;good experience&lt;/em&gt;, not &quot;doing time&quot;) and real knowledge are best equalizers.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day, what they really want to know is:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Can you get the job done?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Will it work?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;How hard will it be to maintain when you're gone?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2671" LastActivityDate="2010-09-28T13:14:32.343" />
  <row Id="7844" PostTypeId="2" ParentId="7652" CreationDate="2010-09-28T13:16:54.120" Score="2" ViewCount="" Body="&lt;p&gt;Use the unix &lt;code&gt;file&lt;/code&gt; command. It does this for you.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-09-28T13:16:54.120" CommunityOwnedDate="2011-03-20T14:02:27.677" />
  <row Id="7845" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T13:19:32.707" Score="0" ViewCount="" Body="&lt;p&gt;This is awfully simplistic, but how about the evolution of the increment operation, in a timeline of the major low and high level languages? For many people starting out learning a programming language, grokking the classic semantic of &lt;code&gt;n = n + 1&lt;/code&gt; is a big step forward. You could lay it out much like that well known image of the evolution of man, from earliest known to current day homo erectus. inc a, a = a + 1, a++ etc.&lt;/p&gt;&#xA;" OwnerUserId="3853" LastActivityDate="2010-09-28T13:19:32.707" CommentCount="1" />
  <row Id="7846" PostTypeId="2" ParentId="7652" CreationDate="2010-09-28T13:22:10.040" Score="0" ViewCount="" Body="&lt;p&gt;VB.NET declares its return type after the function parameters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But then again, VB.NET is pretty easy to discern no matter what =/&lt;/p&gt;&#xA;" OwnerUserId="3577" LastActivityDate="2010-09-28T13:22:10.040" CommunityOwnedDate="2011-03-20T14:02:27.677" />
  <row Id="7847" PostTypeId="2" ParentId="7747" CreationDate="2010-09-28T13:22:43.573" Score="11" ViewCount="" Body="&lt;p&gt;It isn't BASIC which hurts you, it's the failure to expose yourself to &lt;em&gt;other&lt;/em&gt; languages. Monoglot &quot;programmers&quot; aren't.&lt;/p&gt;&#xA;" OwnerUserId="3862" LastActivityDate="2010-09-28T13:22:43.573" CommunityOwnedDate="2011-01-20T21:00:13.020" CommentCount="1" />
  <row Id="7848" PostTypeId="2" ParentId="7656" CreationDate="2010-09-28T13:31:01.387" Score="4" ViewCount="" Body="&lt;p&gt;No, but maybe we should. 25 years of programming have taken away my ability to write anything readable by hand. &lt;/p&gt;&#xA;" OwnerUserId="3863" LastActivityDate="2010-09-28T13:31:01.387" CommentCount="1" />
  <row Id="7849" PostTypeId="2" ParentId="7747" CreationDate="2010-09-28T13:34:33.533" Score="3" ViewCount="" Body="&lt;p&gt;I think the exposure to most BASIC &lt;em&gt;examples&lt;/em&gt; in the world are what mutilate programmers' brains, not the language itself.  It's like the C# programmer who browses MSDN and doesn't think exception handling is necessary or that &lt;code&gt;IDisposable&lt;/code&gt; types don't &lt;em&gt;really&lt;/em&gt; need to be disposed.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-09-28T13:34:33.533" CommunityOwnedDate="2011-01-20T21:00:13.020" />
  <row Id="7851" PostTypeId="2" ParentId="7559" CreationDate="2010-09-28T13:42:03.543" Score="0" ViewCount="" Body="&lt;p&gt;What I do depends on whether the bug truly is in a different part. If it is, then checking it in is independent of my half done changes. I make the change, build that different part to be sure I haven't made some trivial error, test it (perhaps by doing whatever it was keeping me from doing) and check it in explaining what was happening. Often I will make a work item for it, and after the checkin/resolve, assign the WI to a tester. Then I go back to what I was doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's all mushed up with the files I have half changed, I can't build and test that part independently. In that case, I make another WI for it and when I check in my changes I resolve both WIs with the same checkin, which usually is against my principles, but applies well in this case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In both circumstances the bugfix ends up tested by me, checked in with some sort of trail so people understand why I randomly changed that code that day, and a WI is assigned to someone else to confirm it's correct now.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-09-28T13:42:03.543" />
  <row Id="7853" PostTypeId="2" ParentId="7629" CreationDate="2010-09-28T13:46:36.600" Score="5" ViewCount="" Body="&lt;p&gt;We adopted this in our office.  It's written by Lance Hunt, and it's fairly comprehensive:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://weblogs.asp.net/lhunt/pages/CSharp-Coding-Standards-document.aspx&quot; rel=&quot;nofollow&quot;&gt;http://weblogs.asp.net/lhunt/pages/CSharp-Coding-Standards-document.aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3784" LastEditorUserId="3784" LastEditorDisplayName="" LastEditDate="2010-09-28T18:50:45.373" LastActivityDate="2010-09-28T18:50:45.373" CommentCount="1" />
  <row Id="7854" PostTypeId="2" ParentId="7779" CreationDate="2010-09-28T13:47:03.587" Score="4" ViewCount="" Body="&lt;p&gt;I don't have a CS degree, but did go to one of those 1 year computer colleges.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;[they] assume I have huge holes in my&#xA;  understanding of fundamentals&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;My guess is they are probably right, at least I did (and still do).  My advice about this, is to be open about what you don't know, then learn what people say you are missing.  Turn your critics into your syllabus.  ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And like others have said many of the best programmers I know. don't have CS degrees, so you don't need to worry.  However, the downside of this is that you will never get a job at Oracle or MS writing a database engine.  As long as you're ok with that, you should be fine.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-28T13:47:03.587" CommentCount="1" />
  <row Id="7855" PostTypeId="2" ParentId="4028" CreationDate="2010-09-28T13:51:33.227" Score="1" ViewCount="" Body="&lt;p&gt;Unless you're prepared to own the code and any necessary fixes in the future, don't touch it. You'll overcome the tendency to want to fix something when you break something you didn't write because you didn't study it well enough before you dove in, and it takes you 2 days and a fire-drill to get it working again.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong... there are legitimate reasons to refactor code, but if a business demands that the code works, and you &quot;fix&quot; it without knowing the consequences before jumping in, you're asking for a world of hurt.&lt;/p&gt;&#xA;" OwnerUserId="3784" LastActivityDate="2010-09-28T13:51:33.227" />
  <row Id="7856" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T13:55:20.697" Score="2" ViewCount="" Body="&lt;p&gt;A &lt;a href=&quot;http://en.wikipedia.org/wiki/Quine_%28computing%29&quot; rel=&quot;nofollow&quot;&gt;Quine&lt;/a&gt;, perhaps? There are some really elegant ones around; I'm particularly impressed by how short they can be.&lt;/p&gt;&#xA;" OwnerUserId="314" LastActivityDate="2010-09-28T13:55:20.697" CommentCount="1" />
  <row Id="7857" PostTypeId="2" ParentId="7636" CreationDate="2010-09-28T13:55:50.947" Score="2" ViewCount="" Body="&lt;p&gt;I use TFS, so who I am, the date, and what Work Items (bugs) are associated are all recorded for me. Our internal process document on this (which I wrote) urges all developers to record their summation of WHAT they did (widened a field, added a validation, added a check for expired coupons) but not WHY (client has changed their mind, testing has uncovered a loophole) since that is in the work item. Since these appear in the subject line of the TFS alerts I get on checkin, I can tell if people are doing them poorly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We also had a brief bout of checkin comments as attempted workflow. &quot;Ready to test&quot;, &quot;Over to you, Bob&quot;, &quot;Ready for someone to write the RDL file&quot;, &quot;Sorry this was late&quot; and so on, so I have language in my document making it clear that does NOT belong.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-09-28T13:55:50.947" CommunityOwnedDate="2011-02-28T14:46:06.263" CommentCount="1" />
  <row Id="7858" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T13:56:05.597" Score="2" ViewCount="" Body="&lt;p&gt;Surely you want Agile art! - A frame around a collection of sticky notes and stories that you can assign story points, prioritize, and move tasks through each step until done.  Bonus points if you include a &lt;em&gt;Sharpie&lt;/em&gt; on a string for ad hoc editing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;e.g.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/v6Yqz.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="3199" LastActivityDate="2010-09-28T13:56:05.597" CommentCount="2" />
  <row Id="7859" PostTypeId="1" CreationDate="2010-09-28T13:59:56.563" Score="24" ViewCount="698" Body="&lt;p&gt;It seem that my question about &lt;a href=&quot;http://programmers.stackexchange.com/questions/7565/how-to-learn-agile-as-a-solo-developer&quot;&gt;How to learn Agile as a Solo Developer&lt;/a&gt; don't generate as much suggestion as I expected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since &lt;a href=&quot;http://programmers.stackexchange.com/users/136/chris&quot;&gt;Chris&lt;/a&gt; commented the above question :&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Well any agile books would suffice, I doubt there is a agile development specifically geared towards individual developers. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I ask a new question with more emphasis on &lt;strong&gt;books recommendations&lt;/strong&gt; and less on the solo developer part. I leave the other question open so any solo developer resource could be added there. &lt;/p&gt;&#xA;" OwnerUserId="19" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:54:46.803" LastActivityDate="2011-05-04T15:13:08.763" Title="What good book shoud I buy to learn Agile from scratch?" Tags="&lt;learning&gt;&lt;books&gt;&lt;agile&gt;" AnswerCount="12" CommentCount="2" FavoriteCount="11" />
  <row Id="7860" PostTypeId="2" ParentId="7779" CreationDate="2010-09-28T13:59:56.840" Score="-1" ViewCount="" Body="&lt;p&gt;Design patterns will help you a lot in many cases.  Once you learn a few patterns, and learn how to identify and apply them effectively in your real-world designs, you can shore up some theoretical knowledge and bring some value to the table.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: you should also brush up on your algorithm analysis skills, as the commenter suggests.&lt;/p&gt;&#xA;" OwnerUserId="3784" LastEditorUserId="3784" LastEditorDisplayName="" LastEditDate="2010-09-28T18:35:53.703" LastActivityDate="2010-09-28T18:35:53.703" CommentCount="2" />
  <row Id="7861" PostTypeId="1" CreationDate="2010-09-28T14:01:06.623" Score="59" ViewCount="2697" Body="&lt;p&gt;I know we've covered what questions you should ask about a company before you would decide to work there.  But what do you do with the answers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, what would you consider a dealbreaker?  I.e. what would scare you so much about a company that you wouldn't work there, even if everything else was great?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, if they tell me they don't use version control, I wouldn't work there.  End of story.&lt;/p&gt;&#xA;" OwnerUserId="221" LastEditorUserId="221" LastEditorDisplayName="" LastEditDate="2010-09-28T14:28:11.750" LastActivityDate="2010-10-29T00:43:33.117" CommunityOwnedDate="2010-10-01T04:30:47.273" Title="When deciding on whether or not to work for a new company, what are your dealbreakers?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;work-environment&gt;&lt;interview&gt;" AnswerCount="33" CommentCount="6" FavoriteCount="25" />
  <row Id="7862" PostTypeId="2" ParentId="7652" CreationDate="2010-09-28T14:02:20.170" Score="4" ViewCount="" Body="&lt;p&gt;Objective-C is an easy one. If there are a lot of square brackets, it's Objective-C&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;[[[[[MyClass alloc] init] autorelease] retain] release];&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1732" LastActivityDate="2010-09-28T14:02:20.170" CommunityOwnedDate="2011-03-20T14:02:27.677" CommentCount="2" />
  <row Id="7863" PostTypeId="2" ParentId="7823" CreationDate="2010-09-28T14:05:04.123" Score="0" ViewCount="" Body="&lt;p&gt;Having multiple assertions in the same test is only a problem when the test fails. Then you might have to debug the test or analyse the exception to find out which assertion it is that fails. With one assertion in each test it's usually easier to pinpoint what's wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't think of a scenario where multiple assertions are really &lt;em&gt;needed&lt;/em&gt;, as you can always rewrite them as multiple conditions in the same assertion. It may however be preferrable if you for example have several steps to verify the intermediate data between steps rather than risking that the later steps crash because of bad input.&lt;/p&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-09-28T14:05:04.123" CommunityOwnedDate="2010-09-28T14:05:04.123" CommentCount="2" />
  <row Id="7864" PostTypeId="2" ParentId="7779" CreationDate="2010-09-28T14:07:54.900" Score="1" ViewCount="" Body="&lt;p&gt;Don't carry a chip about how self-taught people are so much better than people who learned at university. The reverse snobbery is a tremendous irritant.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-28T14:07:54.900" />
  <row Id="7865" PostTypeId="2" ParentId="7861" CreationDate="2010-09-28T14:11:16.757" Score="11" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Are you ready to move away from your&#xA;  town to work abroad?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is definitely my Dealbreaker&lt;/p&gt;&#xA;" OwnerUserId="74" LastEditorUserId="74" LastEditorDisplayName="" LastEditDate="2010-09-30T10:44:42.377" LastActivityDate="2010-09-30T10:44:42.377" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="5" />
  <row Id="7866" PostTypeId="2" ParentId="7861" CreationDate="2010-09-28T14:15:22.820" Score="102" ViewCount="" Body="&lt;p&gt;Companies that feel the need to mention up-front that unpaid (for salaried employees) overtime is required 100% of the time.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-09-28T14:15:22.820" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="14" />
  <row Id="7867" PostTypeId="2" ParentId="3062" CreationDate="2010-09-28T14:18:51.837" Score="1" ViewCount="" Body="&lt;p&gt;For those of you based in or near London there's a well attended &lt;a href=&quot;http://skillsmatter.com/user-group/open-source-dot-net/london-f-sharp-user-group&quot; rel=&quot;nofollow&quot;&gt;F# meetup group&lt;/a&gt; that meets (roughly) once a month at SkillsMatter. It's not been going for that long and has already had talks by F# luminaries such as Don Syme, Jon Harrop, Tomas Petricek and Robert Pickering (the other talks have been good too though!).&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-09-28T14:18:51.837" CommentCount="1" />
  <row Id="7868" PostTypeId="2" ParentId="7747" CreationDate="2010-09-28T14:20:14.640" Score="7" ViewCount="" Body="&lt;p&gt;BASIC, from a structured point of view, was no worse than assembler or COBOL.  Back then, there wasn't the plethora of Algol-descended languages we have now, Pascal being the first introduction most people had to reasonable control structures (and I'm not all that fond of Pascal control structures).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If BASIC was enough to permanently harm people, then other early languages were also, and so we wouldn't have had people unharmed enough to develop all the languages we use today.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is possible that Dijkstra was then dealing with people who weren't good programmers and never would be, who learned to do some things in BASIC.  That's the most charitable interpretation I can put on the statement.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-28T14:20:14.640" CommunityOwnedDate="2011-01-20T21:00:13.020" CommentCount="8" />
  <row Id="7869" PostTypeId="2" ParentId="7861" CreationDate="2010-09-28T14:21:21.987" Score="31" ViewCount="" Body="&lt;p&gt;Any definite indication that I'm being lied to in the interview about important matters.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-28T14:21:21.987" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="11" />
  <row Id="7870" PostTypeId="2" ParentId="7834" CreationDate="2010-09-28T14:23:28.180" Score="5" ViewCount="" Body="&lt;p&gt;In general, a double major in math and computer science can pay off.  Speaking from experience, it has helped me immensely. I worked in aerospace/defense and finance; both can be pretty heavy with math. I don't do math on a daily basis.  However, the math degree gave me the skills to understand the domain knowledge much better than some of my peers. Google can give you formulas, but it won't help you understand them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your case, I would take one or two more math classes.  Some suggestions are linear algebra, diff equations, modeling, or geometry.  A math degree would take another 1-2 years; it isn't any easier than the computer science degree.  With another kid on the way, the money from from a job would be useful.&lt;/p&gt;&#xA;" OwnerUserId="3871" LastActivityDate="2010-09-28T14:23:28.180" CommentCount="1" />
  <row Id="7871" PostTypeId="2" ParentId="3062" CreationDate="2010-09-28T14:24:05.903" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://feeds.feedburner.com/planet_fsharp&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Planet F#&lt;/strong&gt;&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Planet F# is an aggregated news feed of all blog posts related to F#. It is your one stop shop for F# news.&lt;/p&gt;&#xA;" OwnerUserId="29" LastActivityDate="2010-09-28T14:24:05.903" CommentCount="1" />
  <row Id="7872" PostTypeId="2" ParentId="7823" CreationDate="2010-09-28T14:27:43.587" Score="2" ViewCount="" Body="&lt;p&gt;When I'm using unit testing to validate high-level behavior, I absolutely put multiple assertions into a single test.  Here's a test I'm actually using for some emergency notification code.  The code that runs before the test puts the system into a state where if the main processor gets run, an alarm gets sent.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&#xA;    @Test&#xA;    public void testAlarmSent() {&#xA;        assertAllUnitsAvailable();&#xA;        assertNewAlarmMessages(0);&#xA;&#xA;        pulseMainProcessor();&#xA;&#xA;        assertAllUnitsAlerting();&#xA;        assertAllNotificationsSent();&#xA;        assertAllNotificationsUnclosed();&#xA;        assertNewAlarmMessages(1);&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It represents the conditions that need to exist at every step in the process in order for me to be confident that the code is behaving the way I expect.  If a single assertion fails, I do not care that the remaining ones won't even get run; because the state of the system is no longer valid, those subsequent assertions wouldn't tell me anything valuable.*  If &lt;code&gt;assertAllUnitsAlerting()&lt;/code&gt; failed, then I wouldn't know what to make of &lt;code&gt;assertAllNotificationSent()&lt;/code&gt;'s success OR failure until I determined what was causing the prior error and corrected it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(* -- Okay, they might conceivably be useful in debugging the problem.  But the most important information, that the test failed, has already been received.)&lt;/p&gt;&#xA;" OwnerUserId="17" LastEditorUserId="17" LastEditorDisplayName="" LastEditDate="2010-09-28T14:47:23.347" LastActivityDate="2010-09-28T14:47:23.347" CommunityOwnedDate="2010-09-28T14:27:43.587" />
  <row Id="7873" PostTypeId="2" ParentId="7834" CreationDate="2010-09-28T14:32:18.500" Score="1" ViewCount="" Body="&lt;p&gt;I think that math is important, always. But learn more about programming stuff will help you more in this case. Most of complex algoritms is encapsuled and if you know basics concepts, like geometry, trigonometry and linear algebra, you can get this thing easily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, learning math is cool and help you more than you think if you have a motivation other than pass on a degree test. :O)&lt;/p&gt;&#xA;" OwnerUserId="3082" LastActivityDate="2010-09-28T14:32:18.500" />
  <row Id="7874" PostTypeId="2" ParentId="7861" CreationDate="2010-09-28T14:38:54.533" Score="62" ViewCount="" Body="&lt;p&gt;Any indication my Internet usage is going to be regulated or spied upon.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-28T14:38:54.533" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="20" />
  <row Id="7875" PostTypeId="2" ParentId="7861" CreationDate="2010-09-28T14:43:06.767" Score="84" ViewCount="" Body="&lt;p&gt;Any form of &quot;punching the clock&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I need flexible hours - give me challenging work, and I'll get it done. Start counting one second of my &quot;time on the clock&quot; as a measure of productivity and I'm out the door.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe what I really want is just plain &lt;strong&gt;trust&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-09-28T14:43:06.767" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="16" />
  <row Id="7876" PostTypeId="2" ParentId="7861" CreationDate="2010-09-28T14:43:07.610" Score="21" ViewCount="" Body="&lt;p&gt;A compensation package comprised mostly of creativity or promises.  The bank which holds my mortgage is not impressed by how much money I'll be making when the investors &quot;finally come through.&quot;&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-28T14:43:07.610" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="1" />
  <row Id="7877" PostTypeId="2" ParentId="7861" CreationDate="2010-09-28T14:43:54.907" Score="51" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Sales talks to the customer, then tells us what to build and when to build it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is a little more forgivable at companies that don't do software as their primary business, but any serious software company that doesn't allow developers/PMs to interact with the customers is going to produce crappy products, angry customers, missed deadlines, and a lot of misunderstood requirements.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-28T14:43:54.907" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="6" />
  <row Id="7878" PostTypeId="2" ParentId="7861" CreationDate="2010-09-28T14:45:28.000" Score="43" ViewCount="" Body="&lt;p&gt;Any indication that work/life balance won't be maintained.  If a company doesn't have a clear policy regarding family emergencies or life-altering changes (e.g. having a baby or getting married), I wouldn't want to pursue an opportunity with them.  This includes being forced to travel an inordinate amount of time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Work is important, but being present in your family is more so.&lt;/p&gt;&#xA;" OwnerUserId="2294" LastActivityDate="2010-09-28T14:45:28.000" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="2" />
  <row Id="7879" PostTypeId="2" ParentId="7861" CreationDate="2010-09-28T14:49:12.380" Score="5" ViewCount="" Body="&lt;p&gt;Anything that makes me think that they don't know how to manage a software project. 9 times out of 10, when they don't know anything about software development and want to develop software, it's because of one of two things:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;They write in-house software and want to offset the cost by selling it.&lt;/li&gt;&#xA;&lt;li&gt;They saw the margins on software sales in some business magazine and think it's their ticket to getting rich.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;And I refuse to work with either of them, ever again. &lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-28T14:49:12.380" CommunityOwnedDate="2010-10-01T04:30:47.273" />
  <row Id="7880" PostTypeId="2" ParentId="7861" CreationDate="2010-09-28T14:50:33.750" Score="8" ViewCount="" Body="&lt;p&gt;I have a short list:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Issues with a particular OS. Sure if I'm doing .NET stuff it's probably going to be Windows, but doing PHP / Java development there is &lt;em&gt;no&lt;/em&gt; reason to disallow a full range of operating systems. Have a personal grudge against Apple / Linux / Windows that's &lt;em&gt;your&lt;/em&gt; business, not mine.&lt;/li&gt;&#xA;&lt;li&gt;Companies that expect or mandate weekend hours. I'm sorry, my weekends are &lt;em&gt;mine&lt;/em&gt;. Sure most of the time I'm doing semi-work related stuff anyways, and I may even come in to the office. But sometimes I won't, and you don't have the right to pitch a fit because I don't.&lt;/li&gt;&#xA;&lt;li&gt;If you don't version control that speaks volumes.&lt;/li&gt;&#xA;&lt;li&gt;Non-diverse platforms. It's great that &lt;em&gt;everything&lt;/em&gt; is written in Java, however if you aren't open to other options (when there are clearly better languages for certain tasks) you aren't being flexible in an industry that &lt;em&gt;has to be flexible&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-09-28T17:42:27.760" LastActivityDate="2010-09-28T17:42:27.760" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="17" />
  <row Id="7881" PostTypeId="2" ParentId="7834" CreationDate="2010-09-28T14:51:27.840" Score="1" ViewCount="" Body="&lt;p&gt;having a background in math is great ... i think it'll definitely open some doors to scientific programming and even graphics programming - those two area specifically are more math intensive ... hopes this helps .&lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-09-28T14:51:27.840" />
  <row Id="7882" PostTypeId="2" ParentId="7656" CreationDate="2010-09-28T14:52:38.343" Score="0" ViewCount="" Body="&lt;p&gt;yes ... i did that in college for the algorithm analysis class ... nowadays it's more flow charts than actual pseudo code ... &lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-09-28T14:52:38.343" />
  <row Id="7883" PostTypeId="2" ParentId="7861" CreationDate="2010-09-28T14:56:20.133" Score="18" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;We use proprietary version control X&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The available free version control systems are so much better in nearly every respect.  Using a proprietary one, while not necessarily terrible on its own, but what it implies about the company is.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-28T14:56:20.133" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="11" />
  <row Id="7884" PostTypeId="2" ParentId="7861" CreationDate="2010-09-28T14:57:27.380" Score="22" ViewCount="" Body="&lt;p&gt;Working with a boss who thinks I am not apt for the job because I'm a woman (yes, it happened - to a friend).&lt;/p&gt;&#xA;" OwnerUserId="3624" LastActivityDate="2010-09-28T14:57:27.380" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="9" />
  <row Id="7885" PostTypeId="2" ParentId="7656" CreationDate="2010-09-28T15:01:28.823" Score="0" ViewCount="" Body="&lt;p&gt;I used to a lot of this back in the days when each student had limited access to the computers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recently did a fair amount of this again to prepare for interviews when I was asked to do a lot of whiteboard coding.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-28T15:01:28.823" CommentCount="1" />
  <row Id="7886" PostTypeId="2" ParentId="7779" CreationDate="2010-09-28T15:03:29.307" Score="0" ViewCount="" Body="&lt;p&gt;You don't mention the advantages to having a liberal arts degree. My degree is in Special Education. Task analysis is a skill you learn so you can break down something that everyone else just 'gets' for someone who doesn't have the ability to learn it under typical circumstances. How do you explain things to those that don't understand (and maybe you learn to actually care about it)? It required me to speak in front of groups more often. Nine years of teaching grade school to under graduate levels has been an a big help as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For interview purposes, I always say I learned to program inspite of not having a CS degree. I have a history of being able to pick up on new techiques / technologies without formal training (And in the real world you rarely get formal training.).  &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-28T15:03:29.307" />
  <row Id="7888" PostTypeId="2" ParentId="7861" CreationDate="2010-09-28T15:09:09.813" Score="7" ViewCount="" Body="&lt;p&gt;Showing up late for my inteview. You don't get a second chance to make a first impression.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-28T15:09:09.813" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="2" />
  <row Id="7889" PostTypeId="2" ParentId="7861" CreationDate="2010-09-28T15:12:14.877" Score="19" ViewCount="" Body="&lt;p&gt;My dealbreakers are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Working environment == Cubicles&lt;/li&gt;&#xA;&lt;li&gt;Working computers == tiny 15&quot; single monitor, 2 Gb or less of RAM&lt;/li&gt;&#xA;&lt;li&gt;No Internet connection&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3741" LastActivityDate="2010-09-28T15:12:14.877" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="17" />
  <row Id="7890" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T15:15:54.753" Score="3" ViewCount="" Body="&lt;p&gt;A blueprint of the &lt;a href=&quot;http://i.imgur.com/Jf1Gw.jpg&quot; rel=&quot;nofollow&quot;&gt;enigma machine&lt;/a&gt;? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or better yet, the &lt;a href=&quot;http://i.imgur.com/YrfcC.gif&quot; rel=&quot;nofollow&quot;&gt;Turing Bombe&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or A Turing Machine&lt;img src=&quot;http://i.imgur.com/rKkZE.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The First Computer Program from Ada Lovelace:&#xA;&lt;img src=&quot;http://i.imgur.com/kUHDK.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code for Grace Hopper's First Compiler A-0&lt;/p&gt;&#xA;" OwnerUserId="145" LastEditorUserId="145" LastEditorDisplayName="" LastEditDate="2010-09-28T17:53:57.440" LastActivityDate="2010-09-28T17:53:57.440" CommentCount="2" />
  <row Id="7891" PostTypeId="2" ParentId="7861" CreationDate="2010-09-28T15:17:35.200" Score="65" ViewCount="" Body="&lt;p&gt;My shortlist:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Overtime is mandatory (unless I call the shots). Overtime is always a sign of mismanagement. If someone f***s up and I can't do anything about it but waste my spare time to clean up after them, that's a no go for me.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I have to work with the provided tools. Sorry, I'm a &lt;em&gt;senior&lt;/em&gt; developer. I didn't spend years refining my skills to be limited arbitrarily.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Bad mood in the team. Dirty/messy workplace. This yells &quot;management doesn't care.&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Old computers. A decent computer costs around $1000 (pure hardware). That's about the same as one developer seat per day. If that's not in the budget, sorry, I don't see a point working for a bankrupt company. If the computer is decent, it has to have at least 4GB of RAM. That costs $120 today -&gt; no reason at all to have less.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If my boss is corrupt or tries to corrupt me (lying to customers, making software worse than it could be so we can magically &quot;fix&quot; it for more money, abusing people why they are not present, mobbing).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Agile without any of the rules/tools. Agile is just a label. You need a lot of discipline, rules and management support to be able to be agile. If agile just means for them &quot;we ship crap every two weeks instead of once a year,&quot; I quit.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Rules are more important than reality.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-09-28T15:17:35.200" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="13" />
  <row Id="7892" PostTypeId="2" ParentId="5215" CreationDate="2010-09-28T15:18:43.970" Score="0" ViewCount="" Body="&lt;p&gt;As I'm from Spain and don't have a big budget for travelling I will only attend some of these conferences in Europe:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://basta.net/&quot; rel=&quot;nofollow&quot;&gt;http://basta.net/&lt;/a&gt; (already done past week)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Teched Europe: &lt;a href=&quot;http://www.microsoft.com/europe/teched/&quot; rel=&quot;nofollow&quot;&gt;http://www.microsoft.com/europe/teched/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;DevDays &lt;a href=&quot;http://www.devdays.nl/&quot; rel=&quot;nofollow&quot;&gt;http://www.devdays.nl/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I'm looking forward for StackOverflow DevDays... &lt;a href=&quot;http://blog.stackoverflow.com/2010/06/devdays/&quot; rel=&quot;nofollow&quot;&gt;http://blog.stackoverflow.com/2010/06/devdays/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Meanwhile, I try to go to all the events of the communities in my city, you can find some .Net User Groups at: &lt;a href=&quot;http://ineta.org/&quot; rel=&quot;nofollow&quot;&gt;http://ineta.org/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3730" LastActivityDate="2010-09-28T15:18:43.970" />
  <row Id="7893" PostTypeId="2" ParentId="7823" CreationDate="2010-09-28T15:22:01.967" Score="0" ViewCount="" Body="&lt;p&gt;If your test fails, you won't know whether the following assertions will break, too. Often, that means you'll be missing valuable information to figure out the source of the problem. My solution is to use one assert but with several values:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;String actual = &quot;val1=&quot;+val1+&quot;\nval2=&quot;+val2;&#xA;assertEquals(&#xA;    &quot;val1=5\n&quot; +&#xA;    &quot;val2=hello&quot;&#xA;    , actual&#xA;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That allows me to see all failed assertions at once. I use several lines because most IDEs will display string differences in a compare dialog side-by-side.&lt;/p&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-09-28T15:22:01.967" CommunityOwnedDate="2010-09-28T15:22:01.967" />
  <row Id="7894" PostTypeId="2" ParentId="7834" CreationDate="2010-09-28T15:24:45.597" Score="1" ViewCount="" Body="&lt;p&gt;If your passion was simply to be a programmer then I would say math is not necessary. However, since you've specified the vertical in which you want to apply your skills, I would say knowing about that vertical can only help. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, &lt;strong&gt;math is absolutely essential for good game programming&lt;/strong&gt;. Now, it's debatable whether you need to pursue a full second degree in the subject. You could probably get by with a minor or even motivated self study. For game programming I would highly recommend anything &lt;strong&gt;linear algebra&lt;/strong&gt; based as it's the nuts and bolts of 3D.&lt;/p&gt;&#xA;" OwnerUserId="3883" LastActivityDate="2010-09-28T15:24:45.597" />
  <row Id="7895" PostTypeId="2" ParentId="7749" CreationDate="2010-09-28T15:26:01.087" Score="0" ViewCount="" Body="&lt;p&gt;There is just one way: Spend every waking hour in front of the computer. Look at everything that you can get your hands on, play a few days with everything (computer graphics, 3D, games, graph theory, number theory, tools, IDEs, visualization, using various applications, writing your own text editor, databases, HTML, create your own website, to name just a few). Don't only use applications but join the development teams, submit a couple of features or write your own version.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do that for 20 years and you will be a great programmer.&lt;/p&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-09-28T15:26:01.087" CommunityOwnedDate="2011-02-13T16:19:27.957" CommentCount="2" />
  <row Id="7896" PostTypeId="2" ParentId="4028" CreationDate="2010-09-28T15:27:05.897" Score="2" ViewCount="" Body="&lt;p&gt;Pick your battles.  Know the difference between &quot;I wouldn't write it this way&quot; and &quot;this creates a serious maintainence or support challenge&quot;&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-28T15:27:05.897" />
  <row Id="7898" PostTypeId="1" AcceptedAnswerId="7945" CreationDate="2010-09-28T15:30:26.293" Score="3" ViewCount="258" Body="&lt;p&gt;Is there a standard difference between the rate of pay when you're an intern vs. full time?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Around Arkansas, $10/hr is a pretty standard rate for programmer/developer interns, but I'm not sure what sort of salary a graduate full-time employee could expect. I don't want to ask for to little and seem like I don't know what I'm doing or too much and seem like I'm either greedy or full of it when I'm filling out an application that has requested/desired salary.&lt;/p&gt;&#xA;" OwnerUserId="33" LastActivityDate="2010-09-28T18:07:08.967" ClosedDate="2010-09-28T22:14:45.560" Title="How much can I expect to make full time compared to internship?" Tags="&lt;jobs&gt;&lt;salary&gt;" AnswerCount="2" CommentCount="6" />
  <row Id="7899" PostTypeId="2" ParentId="7861" CreationDate="2010-09-28T15:35:39.627" Score="3" ViewCount="" Body="&lt;p&gt;Windows. Any version. GTFO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key thing for me; at any point is it hinted at that you'll bleed into other roles? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example: one of my previous job titles was Analyst Programmer... which essentially meant &lt;em&gt;&quot;Sometimes programming, sometimes re-writing requirements document so you can actually start coding, occasionally doing the Analyst's job and other times, well, good luck. May the force be with you.&quot;&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're applying to be a developer make sure that's what your role will be once you're through the door. Get a feel for a developer's role on a typical project. Ask them to explain the role to you - make no assumptions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One other question I always ask is: &quot;Suppose technology X becomes the new hotness, how do you fill the technology gap?&quot;. If the answer is &quot;we just hire new people&quot; then i'd get out. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and Windows.&lt;/p&gt;&#xA;" OwnerUserId="3890" LastActivityDate="2010-09-28T15:35:39.627" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="8" />
  <row Id="7900" PostTypeId="1" AcceptedAnswerId="7924" CreationDate="2010-09-28T15:37:19.587" Score="1" ViewCount="185" Body="&lt;p&gt;There's a lot of talk about how PHP is a bad language for a various bunch of reasons, or how ROR is the new way of doing things. There's rhetoric about &quot;programming isn't about the language.&quot; Then we hear things like ROR is &quot;just better for dealing with &lt;em&gt;that&lt;/em&gt;.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm starting a community wiki in hopes we can get some depth into:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Should I switch from ROR/PHP to PHP/ROR?&lt;/li&gt;&#xA;&lt;li&gt;What advantages does this provide?&lt;/li&gt;&#xA;&lt;li&gt;Why should I even care about this&lt;/li&gt;&#xA;&lt;li&gt;Is this a lot of hype, just some fad, or something more?&lt;/li&gt;&#xA;&lt;li&gt;What's an example of how PHP/ROR is more suited for PHP/ROR with task X?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Suggest any more points you feel are relevant.&lt;/p&gt;&#xA;" OwnerUserId="1525" LastActivityDate="2010-09-28T17:02:26.573" CommunityOwnedDate="2010-09-28T15:37:19.587" ClosedDate="2010-09-28T17:06:23.537" Title="What's so special? ROR and PHP" Tags="&lt;php&gt;&lt;code-quality&gt;&lt;ruby-on-rails&gt;" AnswerCount="1" CommentCount="3" FavoriteCount="1" />
  <row Id="7901" PostTypeId="2" ParentId="7898" CreationDate="2010-09-28T15:40:15.913" Score="0" ViewCount="" Body="&lt;p&gt;When I took my first post-college job as a full-time code monkey, I think I made ~$35k a year.  And this was in 1997.  In Iowa.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Did you actually work as an intern?  If so, you might try asking your full-time colleagues from that gig what they're making.  It's a sensitive question, but if you assure them you'll keep it confidential and frame it like this (you're trying to figure out what's typical for the market), they might be willing to help you out.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-28T15:40:15.913" CommentCount="3" />
  <row Id="7902" PostTypeId="2" ParentId="7629" CreationDate="2010-09-28T15:51:54.103" Score="10" ViewCount="" Body="&lt;p&gt;Might want to take a look at &lt;a href=&quot;http://code.msdn.microsoft.com/sourceanalysis&quot; rel=&quot;nofollow&quot;&gt;StyleCop&lt;/a&gt;. You can even incorporate it into some build systems so that style errors will break the build. The default settings are mostly congruent with what MS suggests for guidelines (as posted by others).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also alter the rules that it comes with at default.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-28T15:51:54.103" CommentCount="1" />
  <row Id="7903" PostTypeId="2" ParentId="7565" CreationDate="2010-09-28T15:53:02.963" Score="2" ViewCount="" Body="&lt;p&gt;You're going to have to adapt. I doubt there are any books that specify one developer or 100 developers. If you want to learn about Agile development, there's plenty on the internet. I browsed a few books at the local book store and didn't see the need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Paired Programming - I happen to work at a firm with a lot of financial analysts that have been doing things in Excel that I convert to our application. I drag them over to look at my code occasionally and work through things with them. Saves a lot of back and forth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have plenty of people requesting software that can play all the other roles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stand Up Meeting - OK, this one freaks my coworkers out. Especially when I have to cut myself off for taking too much time. Just kidding, but I do keep a journal of what I did and what I'm going to do daily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as the requirements gathering, planning, unit and acceptance testing, you can follow whichever methodology seems to make sense. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to keep my 'sprints' to about a week. &lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2010-10-01T18:21:20.480" LastActivityDate="2010-10-01T18:21:20.480" />
  <row Id="7904" PostTypeId="2" ParentId="4028" CreationDate="2010-09-28T15:56:42.770" Score="1" ViewCount="" Body="&lt;p&gt;Refactoring a little at a time can be useful, but be extra careful about changing any tiny aspect of how the code actually behaves unless you understand why that behavior is there and what it affects.  Unfortunately, the code that needs it worst is sometimes the hardest to change without touching the behavior, although you can usually straighten out parts of it, or at least comment it.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-28T15:56:42.770" />
  <row Id="7905" PostTypeId="2" ParentId="7733" CreationDate="2010-09-28T16:03:41.417" Score="4" ViewCount="" Body="&lt;p&gt;Ask him about the programming environments of his recent workplaces.  Essentially, do a second-hand Joel test.  Observer his reactions, also:  if the version control was substandard, what does he think about it?  That it wasn't a problem, that it could have been a problem, that it was a problem he couldn't do anything about at the time?&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-28T16:03:41.417" />
  <row Id="7906" PostTypeId="2" ParentId="7565" CreationDate="2010-09-28T16:06:54.900" Score="6" ViewCount="" Body="&lt;p&gt;Daily scrums can be lonely :(&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, just be nimble. Agile has a heavy grounding in getting the most out of a team (standups, pair programming, etc). As an individual you're likely agile by your very nature - invent a process that works for you and go for it... just don't get entrenched by it. These development processes exist because managing IT projects across many functions is challenging... you're one man. You are the process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I track my tasks using post-its, I have a CI server checking my code and I iterate until myself and (volunteering) testers are happy. I design first, code later. I try to set achievable goals for the week, and tend not to think about the project months in advance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll get better results working in a way that you feel comfortable and have evolved into.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll be surprised how much of the agile process you &lt;strong&gt;naturally&lt;/strong&gt; do.&lt;/p&gt;&#xA;" OwnerUserId="3890" LastActivityDate="2010-09-28T16:06:54.900" CommentCount="1" />
  <row Id="7907" PostTypeId="2" ParentId="7859" CreationDate="2010-09-28T16:09:47.377" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Extreme Programming Explained&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Probably the oldest book I can remember which helped make Agile principles popular.  Agile is fast becoming a buzz word in the world of Tech.  I feel Extreme Programming (XP) is a good place to start before the term Agile just seems to lose meaning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/ZGAee.jpg&quot; alt=&quot;Extreme Programming Explained&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-28T16:09:47.377" CommentCount="5" />
  <row Id="7908" PostTypeId="2" ParentId="7859" CreationDate="2010-09-28T16:12:27.803" Score="5" ViewCount="" Body="&lt;p&gt;If you have to purchase only ONE book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Buy &lt;a href=&quot;http://pragprog.com/titles/pad/practices-of-an-agile-developer&quot; rel=&quot;nofollow&quot;&gt;Practices of an Agile Developer&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/WKC18.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/097451408X&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Amazon Reviews&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-28T16:12:27.803" CommentCount="4" />
  <row Id="7909" PostTypeId="2" ParentId="880" CreationDate="2010-09-28T16:13:09.857" Score="0" ViewCount="" Body="&lt;p&gt;I've got a two year old Mac Pro with a 23&quot; Apple Display. It came with 4 GB of RAM and 250ish GB of HD. I've added an additional 4 GB of RAM (for 8 GB total) and replaced the single HD with two 1 TB drives (one for normal use and one for Time Machine). I'm very happy with this set-up for my day-to-day work, which is mostly PHP/MySQL development and some VMWare to test web design in Windows. After making the changes I mentioned above, which were my first foray into a computer's guts, I am almost certainly going to build my next machine and run Windows or Ubuntu.&lt;/p&gt;&#xA;" OwnerUserId="2056" LastActivityDate="2010-09-28T16:13:09.857" CommunityOwnedDate="2011-02-06T19:45:08.167" CommentCount="2" />
  <row Id="7910" PostTypeId="2" ParentId="7629" CreationDate="2010-09-28T16:17:24.013" Score="1" ViewCount="" Body="&lt;p&gt;I try to pick a common set of styles from various sources. Some that were not mentioned before:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the documentation from &lt;a href=&quot;http://csharpguidelines.codeplex.com/releases/&quot; rel=&quot;nofollow&quot;&gt;C# Coding Guidelines&lt;/a&gt; - last update in 2010&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.idesign.net/idesign/download/IDesign%20CSharp%20Coding%20Standard.zip&quot; rel=&quot;nofollow&quot;&gt;IDesign C# Coding Standard&lt;/a&gt; - last update in 2008&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/gemrcsharpcs.pdf&quot; rel=&quot;nofollow&quot;&gt;Philips Healthcare - C# Coding Standard&lt;/a&gt; - last update in 2009&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://encodo.com/en/documents.php#csharp-handbook&quot; rel=&quot;nofollow&quot;&gt;Encodo C# Handbook&lt;/a&gt; - last update in 2009&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3896" LastEditorUserId="3896" LastEditorDisplayName="" LastEditDate="2010-09-28T16:30:09.307" LastActivityDate="2010-09-28T16:30:09.307" />
  <row Id="7911" PostTypeId="2" ParentId="6625" CreationDate="2010-09-28T16:22:13.263" Score="12" ViewCount="" Body="&lt;p&gt;There is no &quot;start from scratch in a collaborative way&quot; (unless, you're all starting as a team).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Linus once put it in a way that always remained stuck in my head.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Nobody should start to undertake a large project. You start with a small trivial project,&#xA;and you should never expect it to get large. If you do, you'll just overdesign and generally&#xA;think it's more important than it is likely at that stage. Or worse - you might be scared&#xA;away by the sheer size of the work you envision.&#xA;So start small, and think about the details. Don't think about some big picture and fancy&#xA;design. It if doesn't solve some fairly immediate need, it's almost certantly over designed.&#xA;And don't expect people to jump in and help you. That's not how it works. You need to get&#xA;something half way first, and only then others will say &quot;hey, that almost works for me&quot;,&#xA;and get involved in the project.&#xA;                    -- Linus Tordvalds&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-28T16:22:13.263" CommentCount="2" />
  <row Id="7912" PostTypeId="1" CreationDate="2010-09-28T16:25:08.543" Score="3" ViewCount="62" Body="&lt;p&gt;How do you endorse/support a code project that you find helpful, be it established, emergent or fledgling?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think there are some obvious answers, but hopefully there will be some novel suggestions too.&lt;/p&gt;&#xA;" OwnerUserId="3898" LastActivityDate="2010-09-28T17:24:25.627" Title="How do you endorse/support a code project that you find helpful?" Tags="&lt;project&gt;&lt;contribution&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="7913" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T16:31:44.757" Score="2" ViewCount="" Body="&lt;p&gt;I took the 486 Chip out of the first computer I ever owned in my life and framed it, along with my first Pentium CPU I even owned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are important to me because they are the machines on which my career began.  Maybe you have some piece of hardware that is near to your heart, you could frame a piece of it similarly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I should take a picture of it and post it when I get a chance.  I used some old ODE RAM to outline the edges of the frame.&lt;/p&gt;&#xA;" OwnerUserId="810" LastEditorUserId="810" LastEditorDisplayName="" LastEditDate="2010-09-28T16:38:45.480" LastActivityDate="2010-09-28T16:38:45.480" CommentCount="3" />
  <row Id="7914" PostTypeId="2" ParentId="880" CreationDate="2010-09-28T16:34:22.310" Score="0" ViewCount="" Body="&lt;p&gt;13&quot; Macbook Pro for my personal work. I have a 20&quot; Display that I connect it to at home, but I really like the the form factor - it's not too heavy, great to carry around on the off chance I find 30 mins of free time to code (train, bus, etc), and personally I really like developing on OSX (well that and I do alot of Objective-C so it's kinda important :)).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My employer has given me a lovely 15&quot; i7 MBP, 8Gb or ram and a 500Gb disk. It' stupidly quick, but a little on the heavy side. I prefer my 13&quot; MBP.&lt;/p&gt;&#xA;" OwnerUserId="3890" LastActivityDate="2010-09-28T16:34:22.310" CommunityOwnedDate="2011-02-06T19:45:08.167" />
  <row Id="7915" PostTypeId="1" AcceptedAnswerId="7985" CreationDate="2010-09-28T16:35:20.117" Score="11" ViewCount="574" Body="&lt;p&gt;I have been offered an interesting job, but there's a big caveat for me: they use pair programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hate the idea of pair programming, and I'm probably not suited for it: I like to do frequent pauses, I hate to see someone programming (I would constantly poke the pair away to code myself), I have to be in full control of the machine I'm working on, I like to work listening music, and basically I don't like to being tied to someone else. I'm not even a social person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have however never actually worked with true pair programming (besides few times for a short time to help someone else or to solve a complex task together)... so it is pair programming really that bad? And given my attitude, should I refuse the job or should I leave my current one and give a try?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;For people that asked about it: I'm looking for a job where formal design and development are used, as I hate my current job where we are &quot;coding in the wild&quot;. The company is very interested in my technical profile so they insisted even when I specified I never worked with pair programming and that I probably wouldn't like it (besides being an unsociable loner programmer, I don't like and believe the very concept of pair programming).&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-28T18:22:11.593" LastActivityDate="2010-09-28T22:46:03.780" Title="Should I accept a job if pair programming is required?" Tags="&lt;jobs&gt;&lt;pair-programming&gt;" AnswerCount="10" CommentCount="4" FavoriteCount="4" />
  <row Id="7916" PostTypeId="2" ParentId="7915" CreationDate="2010-09-28T16:40:04.953" Score="13" ViewCount="" Body="&lt;p&gt;Pair programming is a great tool! It can be way more efficient – two heads are better than one – and a great way to learn new techniques. Of course, there are other benefits too. But, if you are not buying into it, then you won’t get anything out of it. Given your attitude, it sounds like you would not fit into it at all and it would probably be a waste of time. It looks like your mind is already made up before you even give it a shot.&lt;/p&gt;&#xA;" OwnerUserId="882" LastEditorUserId="882" LastEditorDisplayName="" LastEditDate="2010-09-28T22:46:03.780" LastActivityDate="2010-09-28T22:46:03.780" CommentCount="6" />
  <row Id="7917" PostTypeId="2" ParentId="7915" CreationDate="2010-09-28T16:41:58.267" Score="1" ViewCount="" Body="&lt;p&gt;I'm somewhat germophobic. I hate the idea of anyone touching my mouse and keyboard. I hate the idea of touching someone else's mouse and keyboard. I take the long way around the perimeter of the office complex rather than going through the courtyard to get to the cafeteria just so I won't have to touch any door handles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I like the concept of programming in pairs. I might learn something interesting. Or I might instruct. Either way, it would be a good experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My proposal (for myself): do pair programming from a distance. Use Office Live Meeting and share your screen. Dude stays at his desk, I stay at mine.&lt;/p&gt;&#xA;" OwnerUserId="3754" LastActivityDate="2010-09-28T16:41:58.267" CommentCount="4" />
  <row Id="7918" PostTypeId="2" ParentId="7915" CreationDate="2010-09-28T16:49:41.310" Score="10" ViewCount="" Body="&lt;p&gt;Let's look at this from another POV: given your predisposition, you're likely doing a disservice to the employer.  They certainly don't want to hire someone who &quot;hates&quot; one of their development practices.  Have you informed them of your perspective given such a tight-collaborative environment?  If not, you're potentially misrepresenting yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an employer, I would be pretty frustrated to hire someone who knew, coming in, that they wouldn't be happy with the development practices we had put into place.  It's a recipe for discontentment and frustration for everyone involved.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;&#xA;Given that they understand where you're coming from (and are willing to take you on, as you mentioned in your comment), why not discuss how you feel with a few developers in the company?  It's possible they'll be able to address any concerns or biases you have against PP.  It's also important for them to know you're not terribly keen on the idea since you'll be working with them full-time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will also give you an opportunity to learn something about the people you'll be working with so closely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If everyone is on board, I would certainly advocate PP for the same reasons mentioned in the answers here.  You have immediate accountability for what you're writing; another set of eyes on your code will likely catch defects or trouble-spots you might otherwise miss; you get great exposure to someone else's perspective on coding (and get to provide your own experience); and the end result is very often much better than you would expect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I appreciate your bias against PP; there are times I want nothing more than to sit at a computer banging away at a problem, and PP gets frustrating (I'm also an introvert, which means PP leaves me feeling a bit more drained at the end of the day) because someone is always there.  This said, the results, in my experience, speak for themselves and I'm much more amicable to it on a regular basis.&lt;/p&gt;&#xA;" OwnerUserId="2294" LastEditorUserId="2294" LastEditorDisplayName="" LastEditDate="2010-09-28T18:41:10.973" LastActivityDate="2010-09-28T18:41:10.973" CommentCount="3" />
  <row Id="7919" PostTypeId="2" ParentId="7915" CreationDate="2010-09-28T16:49:44.540" Score="3" ViewCount="" Body="&lt;p&gt;I recently went to a pair-programming code retreat. I don't use it at work and am very new to it. I am like you in the sense that I like to have control of my own machine. Several programmers who pair-program a lot kept stressing that &lt;strong&gt;pair-programming significantly improves one's coding skills&lt;/strong&gt; because you get constant feedback, your code is being consistently reviewed, and you are less likely to write hacky code.&#xA;I agree with the fact that it is a significant change for someone who has never pair-programmed before. However, it is hard to have a strong opinion on the matter unless you try it for an extended period of time.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-09-28T16:49:44.540" CommentCount="4" />
  <row Id="7920" PostTypeId="2" ParentId="7915" CreationDate="2010-09-28T16:51:46.100" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I hate the idea of pair programming&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I never actually worked with pair programming &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You must clarify that first. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can't say you dislike something without trying it. I personnaly disliked tomato sauce until I actually tasted it.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-28T16:51:46.100" CommentCount="5" />
  <row Id="7921" PostTypeId="2" ParentId="7912" CreationDate="2010-09-28T17:00:10.463" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Financial Support&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you use an open source project or code, then consider making a donation, even if small.  Lots of hard work went into maing the software we love.  When you buy a pay-for product, you vote up or down with your dollar by making a purchase, which in turn supports the project.  In open source, you can of course contribute back with code, but if you don't have time, financial donations to the project are a great incentive to the current team to keep building the software - because people love it enough to endorse it with cold hard cash (and that's often rare in the age of software piracy)!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.eclipse.org/donate/&quot; rel=&quot;nofollow&quot;&gt;Eclipse&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.mozilla.org/foundation/donate.html&quot; rel=&quot;nofollow&quot;&gt;Mozilla (Firefox)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-09-28T17:24:25.627" LastActivityDate="2010-09-28T17:24:25.627" CommentCount="2" />
  <row Id="7922" PostTypeId="2" ParentId="7912" CreationDate="2010-09-28T17:00:52.167" Score="2" ViewCount="" Body="&lt;p&gt;It is really going to depend on what state the project is in.  If this is code that is avaialble as a completed app that's offered as free to try/purchase to continue then I'll probably pay for the app if I think I'll use it.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-28T17:00:52.167" />
  <row Id="7923" PostTypeId="2" ParentId="7772" CreationDate="2010-09-28T17:00:58.620" Score="1" ViewCount="" Body="&lt;p&gt;Well, my PhD took 10 years, 9 of them banging on the same system through multiple versions...does that count?&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-09-28T17:00:58.620" />
  <row Id="7924" PostTypeId="2" ParentId="7900" CreationDate="2010-09-28T17:02:26.573" Score="1" ViewCount="" Body="&lt;p&gt;For me personally, it depends on the type/scope of the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a client wants anything from a static &quot;brochure&quot; website to a general &quot;blog-o-zine&quot; type website, I usually stick with PHP.  The PHP would range from a few snippets inside a mostly HTML page, or if its more in the blog-o-zine world, I would use ExpressionEngine (written in PHP).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the project starts venturing into the Web App field, a framework is usually your best option, and this is where Rails or a PHP framework (CodeIgniter, CakePHP, etc.) would come into play.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everyone has their own preferences, but I think this approach is fairly common amongst your everyday web developer.&lt;/p&gt;&#xA;" OwnerUserId="3420" LastActivityDate="2010-09-28T17:02:26.573" CommunityOwnedDate="2010-09-28T17:02:26.573" CommentCount="2" />
  <row Id="7925" PostTypeId="2" ParentId="7915" CreationDate="2010-09-28T17:06:29.657" Score="2" ViewCount="" Body="&lt;p&gt;Is there any way you can do some pair programming independently, to get a better feel for it?  There seem to be people who like pair programming, and people who don't, and before committing to a job that uses pair programming you really do want to have the feeling you can do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alternately, you can talk to the hiring manager, or somebody in a similar position, and talk this over.  They may have use for a non-pair-programmer.  They may have experience with people who feel negative about pair programming.  Tell the manager why you're uncomfortable with pair programming, but emphasize that you have no experience and are very interested in the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now, you're in the best possible negotiating position with the company:  they've offered, and you haven't accepted yet.  The company has an interest in hiring you, and is very unlikely to drop you just because you need to talk to somebody in the company first.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-28T17:06:29.657" />
  <row Id="7926" PostTypeId="2" ParentId="7772" CreationDate="2010-09-28T17:09:22.690" Score="0" ViewCount="" Body="&lt;p&gt;About 30 years now and counting. A set of small programs I use in my daily work, and whose birth was in '79, or about then. They have been developed from something that started as part of my B.Sc. work, and from there upgraded with various options for various cases, as time went.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know if this counts as maintenance though. Features have been added, but in the core is the same program from 30 years ago. Under development, you might say.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I still have a list of the things I need to implement, but haven't had the time these last few years.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-28T17:09:22.690" />
  <row Id="7927" PostTypeId="1" AcceptedAnswerId="7936" CreationDate="2010-09-28T17:09:58.340" Score="17" ViewCount="646" Body="&lt;p&gt;No one's perfect, and no matter what we do, we are going to produce code that has bugs in it from time to time. What are some methods/techniques for reducing the number of bugs you produce, both when writing new software and changing/maintaining existing code?&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-10-04T17:56:06.610" Title="How to reduce the number of bugs when coding?" Tags="&lt;best-practices&gt;&lt;bugs&gt;" AnswerCount="16" FavoriteCount="7" />
  <row Id="7928" PostTypeId="2" ParentId="7927" CreationDate="2010-09-28T17:12:33.093" Score="20" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Unit Tests&lt;/strong&gt; let you reduce the number of bugs that pop up a second time.  If you find a bug in your code, writing a unit test will make sure it doesn't come back up later.  (Plus, thinking of all the cases and writing thousands of unit tests up front is hard to get done sometimes)&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-28T17:12:33.093" CommentCount="3" />
  <row Id="7929" PostTypeId="2" ParentId="7927" CreationDate="2010-09-28T17:12:56.553" Score="6" ViewCount="" Body="&lt;p&gt;Write &lt;strong&gt;unit tests&lt;/strong&gt; and &lt;strong&gt;integration tests&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-09-28T17:12:56.553" />
  <row Id="7930" PostTypeId="2" ParentId="7747" CreationDate="2010-09-28T17:14:25.103" Score="5" ViewCount="" Body="&lt;p&gt;I learned with BASIC on a TRS-80 and Apple II c/e, and consider myself a good programmer.  The two traits that I personally think led to not being destroyed by learning BASIC first are&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I kept trying to learn better ways to accomplish what I wanted with less effort, which led to learning other languages and the features in those languages that make them powerful, and&lt;/li&gt;&#xA;&lt;li&gt;I ran into and recognized problems with BASIC as a language, most especially the lack of subroutines (although I didn't have the experience to concisely describe the problems that I do now).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I will admit that learning object-oriented programming after the pure procedural of BASIC was a struggle for a while, but I don't know if that was truly related to BASIC, as I'd learned a fair amount of C by then as well.&lt;/p&gt;&#xA;" OwnerUserId="3047" LastActivityDate="2010-09-28T17:14:25.103" CommunityOwnedDate="2011-01-20T21:00:13.020" />
  <row Id="7931" PostTypeId="2" ParentId="7747" CreationDate="2010-09-28T17:14:59.030" Score="5" ViewCount="" Body="&lt;p&gt;I don´t agree with Dijkstra too. I thing that is more dificult to learn a second language because paradigms, not because is BASIC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BASIC was my first language on a personal computer called TK (Sinclair like) in 1985. It was a very limited resource machine. In that time, I wrote a BASIC compiler from a book using a hexa-decimal editor for fun. I bought a Z80 book and learned 8bit machine language after that. BASIC helped me a lot with this. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After I learn C and Pascal and play with Assembly for 8080/6. MSX-BASIC, Quick Basic in MS-DOS times... VB, Delphi, some Java in Windows times...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Today a work with progress (4gl), .net (C#/VB), php and I don´t feel like a cyclops. :O)&lt;/p&gt;&#xA;" OwnerUserId="3082" LastActivityDate="2010-09-28T17:14:59.030" CommunityOwnedDate="2011-01-20T21:00:13.020" />
  <row Id="7932" PostTypeId="2" ParentId="7927" CreationDate="2010-09-28T17:15:33.510" Score="7" ViewCount="" Body="&lt;p&gt;+1 on both of the unit test comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond that, set the highest warning level your compiler offers, and make sure warnings are treated as errors. Bugs often hide in those &quot;erroneous&quot; errors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, invest in static analysis tools that run at compile time (I view these as an extra level of compiler warnings).&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-09-28T17:15:33.510" />
  <row Id="7933" PostTypeId="2" ParentId="154" CreationDate="2010-09-28T17:19:08.120" Score="1" ViewCount="" Body="&lt;p&gt;Way back in the dark ages there was a Foxtrot toon that was so exceptional that I scanned it in. Waiting for it to appear on the internet was not acceptable because it would be too easy to forget. :(&#xA;&lt;br&gt;&#xA;Dad: SON, ALL I WANTED WAS A CUP OF COFFEE TO START MY DAY.&lt;br&gt;&#xA;Jason: THEN WHY'D YOU ASK FOR JAVA.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-09-28T17:19:08.120" />
  <row Id="7934" PostTypeId="2" ParentId="7927" CreationDate="2010-09-28T17:19:47.540" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Static Analysis Tools&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plugins and apps like &lt;a href=&quot;http://findbugs.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;FindBugs&lt;/a&gt; crawl your code and find places where there are &lt;em&gt;potential&lt;/em&gt; bugs.  Places where variables aren't initialized and used or just crazy things that 9 times out of 10, make it way easier for bugs to arise.  Tools like this help me prevent my bonehead moves down the road even if it's not a bug yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S.: Remember to always research &lt;em&gt;why&lt;/em&gt; a tool tells you something is bad.  Never hurts to learn (and not everything is right in all situations).&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-28T17:19:47.540" />
  <row Id="7935" PostTypeId="2" ParentId="7927" CreationDate="2010-09-28T17:20:58.847" Score="7" ViewCount="" Body="&lt;p&gt;In addition to what's been mentioned:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Don't ignore error codes - e.g. don't assume that you got a valid result, that a file has been successfully created, etc... Because some day, something will happen.&lt;/li&gt;&#xA;&lt;li&gt;Don't assume that your code will never enter some condition and that therefore &quot;it's safe to ignore that condition&quot;.&lt;/li&gt;&#xA;&lt;li&gt;Test your code, then have it tested by someone else.  I find I'm the worst person to test my own code.&lt;/li&gt;&#xA;&lt;li&gt;Take a break, then re-read your code and see if you &quot;missed the obvious&quot;.  Often happens to me.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Lots of other things I'm forgetting at the moment, but the others will surely think of them. :)&lt;/p&gt;&#xA;" OwnerUserId="3842" LastActivityDate="2010-09-28T17:20:58.847" CommentCount="1" />
  <row Id="7936" PostTypeId="2" ParentId="7927" CreationDate="2010-09-28T17:24:11.697" Score="33" ViewCount="" Body="&lt;p&gt;Avoid fancy coding.  The more complicated the code, the more likely there's bugs.  Usually on modern systems, clearly written code will be fast and small enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use available libraries.  The easiest way to not have bugs writing a utility routine is to not write it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn a few formal techniques for the more complicated stuff.  If there's complicated conditions, nail them down with pen and paper.  Ideally, know some proof techniques.  If I can prove code correct, it's almost always good except for big, dumb, obvious bugs that are easy to fix.  Obviously, this only goes so far, but sometimes you can formally reason about small but complicated things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For existing code, learn how to refactor:  how to make small changes in the code, often using an automated tool, that make the code more readable without changing the behavior.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't do anything too quickly.  Taking a little time up front to do things right, to check what you've done, and to think about what you're doing can pay off big time later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you've written the code, use what you've got to make it good.  Unit tests are great.  You can often write tests ahead of time, which can be great feedback (if done consistently, this is test-driven development). Compile with warning options, and pay attention to the warnings.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get somebody else to look at the code.  Formal code reviews are good, but they may not be at a convenient time.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-28T17:24:11.697" CommentCount="4" />
  <row Id="7937" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T17:26:28.173" Score="2" ViewCount="" Body="&lt;p&gt;I really like pictures of &lt;strong&gt;CPUs&lt;/strong&gt;. Here is a &lt;a href=&quot;http://commons.wikimedia.org/wiki/File%3aAMD_Phenom_die.png&quot; rel=&quot;nofollow&quot;&gt;CC licensed AMD Phenom die&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/C909W.jpg&quot; alt=&quot;AMD Phenom&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-28T17:26:28.173" />
  <row Id="7938" PostTypeId="2" ParentId="154" CreationDate="2010-09-28T17:30:14.053" Score="2" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/bx1wr.gif&quot; alt=&quot;board chow&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="19" LastActivityDate="2010-09-28T17:30:14.053" CommentCount="1" />
  <row Id="7939" PostTypeId="2" ParentId="7859" CreationDate="2010-09-28T17:35:09.270" Score="8" ViewCount="" Body="&lt;p&gt;For the best insight into overall agile project practices I recommend The Art of Agile by James Shore &amp;amp; Shane Warden. It's focussed on XP practices (but that's really because XP is where all the specific developer practices are defined), but has a big picture focus on how Agile projects work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/54XbZ.gif&quot; alt=&quot;The Art of Agile&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A great thing about this book is that James Shore is &lt;a href=&quot;http://jamesshore.com/Agile-Book/&quot; rel=&quot;nofollow&quot;&gt;publishing the whole text on his website&lt;/a&gt; for free, so you can try before you buy.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-28T17:35:09.270" CommentCount="2" />
  <row Id="7940" PostTypeId="2" ParentId="7834" CreationDate="2010-09-28T17:36:44.430" Score="2" ViewCount="" Body="&lt;p&gt;Math is great as a way of learning to think about formal systems, and there's a lot of useful things to learn from it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're thinking of going on to grad school sometime, you might want to go math-heavy.  That's likely to make you stand out, partly because it's generally easier to be a computer science major than a math major, and partly because it's a good foundation for learning more theoretical stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are parts of math you definitely want to know, but much of that will likely be taught in a Computer Science curriculum.  I would hope yours had some more or less disguised math classes in it, teaching things like complexity theory and graph theory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For videogames, you definitely want more math.  You need to be very good at linear algebra, and need to know calculus.  You need to know geometry, trigonometry, and algebra, but these (at least in these forms) aren't typically college classes.  Differential equations may or may not be useful.  You don't need a degree to show for it (although a math minor would be useful if you're looking to work with somebody else), but you need to know it, and I don't know a better way of learning it than college courses.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-28T17:36:44.430" />
  <row Id="7941" PostTypeId="2" ParentId="7859" CreationDate="2010-09-28T17:39:34.037" Score="13" ViewCount="" Body="&lt;p&gt;Another great book is Robert C. Martin's &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0135974445&quot; rel=&quot;nofollow&quot;&gt;Agile Software Development, Principles, Patterns, and Practices&lt;/a&gt;. This is focused on developer practices and coding and is a must read for any developer serious about agile software development. There is also a &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131857258&quot; rel=&quot;nofollow&quot;&gt;C# version of the book&lt;/a&gt; that he and his son Micah wrote, so if you are a .NET developer, that version might be the one for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/WnMRV.jpg&quot; alt=&quot;Agile Software Development, Principles, Patterns, and Practices&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-28T17:39:34.037" CommentCount="5" />
  <row Id="7942" PostTypeId="1" AcceptedAnswerId="7947" CreationDate="2010-09-28T17:39:46.453" Score="9" ViewCount="210" Body="&lt;p&gt;My supervisor is allowing my team to dip our toes in the water of working from home.  Considering a recent aquisition of another company is requiring some employees to love this new idea which will hack up to an hour off their commute into work every morning, I really want this to succeed.  In order to make it a success, we need good tools to make our lives a lot easier.  We currently are set up with OpenVPN, and Team Foundation Server 2010 with SharePoint 2010, and use Live Messenger (for SharePoint integration and easier remote desktop) for IM.  These are just what we use (and they are currently working well) , but you can suggest other products.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what are some great tools that will helps us collaborate, communicate, and generally work together when we're hours apart?&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-09-28T18:11:18.293" LastActivityDate="2010-09-28T18:11:18.293" Title="What tools are available for remote communication when working from home or with a distributed team?" Tags="&lt;work-environment&gt;&lt;co-workers&gt;&lt;communication&gt;&lt;collaboration&gt;&lt;work-from-home&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="7943" PostTypeId="2" ParentId="5215" CreationDate="2010-09-28T17:43:54.793" Score="1" ViewCount="" Body="&lt;p&gt;I have never gone, but was thinking about going this year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone like the &quot;&lt;strong&gt;&lt;a href=&quot;http://futureofwebapps.com/&quot; rel=&quot;nofollow&quot;&gt;Future of Webapps&lt;/a&gt;&lt;/strong&gt;&quot; conference?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The Future of Web Apps is a conference&#xA;  for web developers and entrepreneurs.&#xA;  You'll learn about cutting-edge tech&#xA;  and exciting new ideas.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="386" LastActivityDate="2010-09-28T17:43:54.793" CommentCount="2" />
  <row Id="7944" PostTypeId="2" ParentId="7859" CreationDate="2010-09-28T17:44:38.393" Score="4" ViewCount="" Body="&lt;p&gt;There is also a great list of &lt;a href=&quot;http://www.noop.nl/2010/08/top-100-agile-books.html&quot; rel=&quot;nofollow&quot;&gt;The Top 100 Agile Books&lt;/a&gt; on Jurgen Appelo's NOOP.NL site. He ranked the books based on Amazon.com and GoodRead.com reviews and popularity. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's worth taking a look through this. I think I own all of the top 20 books and a few others beside, but then I'm a bit of a bookworm.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-28T17:44:38.393" />
  <row Id="7945" PostTypeId="2" ParentId="7898" CreationDate="2010-09-28T17:48:09.467" Score="4" ViewCount="" Body="&lt;p&gt;Let me ask the internet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Internet - how much should a junior programmer make in Arkansas?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://swz.salary.com/salarywizard/layoutscripts/swzl_selectjob.asp?op=salswz_psr&amp;amp;hdSearchByOption=0&amp;amp;hdLocationOption=1&amp;amp;hdKeyword=junior+programmer&amp;amp;hdJobCategory=&amp;amp;hdZipCode=&amp;amp;hdStateMetro=94&amp;amp;hdNarrowDesc=&amp;amp;txtKeyword=junior+programmer&quot; rel=&quot;nofollow&quot;&gt;http://swz.salary.com/salarywizard/layoutscripts/swzl_selectjob.asp?op=salswz_psr&amp;amp;hdSearchByOption=0&amp;amp;hdLocationOption=1&amp;amp;hdKeyword=junior+programmer&amp;amp;hdJobCategory=&amp;amp;hdZipCode=&amp;amp;hdStateMetro=94&amp;amp;hdNarrowDesc=&amp;amp;txtKeyword=junior+programmer&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looks like between $38k p.a. to $62k p.a., and that's in Little Rock. Assuming a standard 2,000 hour work year (40 hrs/wk x 50 weeks, assuming 2 weeks vacation) you're looking at a range of between $19/hr to $31/hr.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Walk into you potential employer and do not discuss salary until it is brought up. Ideally you want to have an offer (i.e., they WANT you) before you start negotiating. If pressed, say that you've done the research an for this kind of position in this area the range is between X and Y and based on your experience and skills you'd put yourself in the middle of this range. Also add something about being flexible on compensation (this opens the door to other non-monetary perks like flex-time, working from home X days per week, training, etc.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will not come off as greedy, just informed. Some people will not dig that (preferring ignorance in their workers) and it might be just as well that you do not work for them. Others will see it as a mature move and respect it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you said, though, if you're going to a government job you will be able to find out right up front what the job pays, removing the need for jockeying around.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastEditorUserId="3010" LastEditorDisplayName="" LastEditDate="2010-09-28T18:07:08.967" LastActivityDate="2010-09-28T18:07:08.967" CommentCount="1" />
  <row Id="7946" PostTypeId="2" ParentId="154" CreationDate="2010-09-28T17:49:06.447" Score="6" ViewCount="" Body="&lt;p&gt;I find that I can interpret many non-programming cartoons as programming-related. Here's one from Peanuts from 1984(!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://comics.com/peanuts/1984-08-13/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://c0389161.cdn.cloudfiles.rackspacecloud.com/dyn/str_strip/249937.full.gif&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1303" LastActivityDate="2010-09-28T17:49:06.447" />
  <row Id="7947" PostTypeId="2" ParentId="7942" CreationDate="2010-09-28T17:52:32.433" Score="4" ViewCount="" Body="&lt;p&gt;We use &lt;a href=&quot;http://www.skype.com/intl/en-us/home&quot; rel=&quot;nofollow&quot;&gt;Skype&lt;/a&gt; and &lt;a href=&quot;http://www.teamviewer.com/index.aspx&quot; rel=&quot;nofollow&quot;&gt;Team Viewer&lt;/a&gt; for remote communication and pair programming. Both have free versions, but Team Viewer's license means you should pay for it if you are using it for commercial use (it's not too expensive).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of project and code collaboration, we use &lt;a href=&quot;https://www.assembla.com/&quot; rel=&quot;nofollow&quot;&gt;Assembla&lt;/a&gt;. With its wiki, ticketing system and hosted SVN repositories, it's the perfect way for us to run a project with distributed team members and customers.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-28T17:52:32.433" CommentCount="2" />
  <row Id="7948" PostTypeId="2" ParentId="7942" CreationDate="2010-09-28T17:52:51.260" Score="3" ViewCount="" Body="&lt;p&gt;I would add &lt;a href=&quot;http://office.microsoft.com/en-us/live-meeting/&quot; rel=&quot;nofollow&quot;&gt;Live Meeting&lt;/a&gt; to your list.  It'll be nice to share your desktop for code reviews or when you want to go over something with another deveopler or do a demo.  We use it all the time.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-09-28T18:03:30.870" LastActivityDate="2010-09-28T18:03:30.870" CommentCount="1" />
  <row Id="7949" PostTypeId="2" ParentId="7927" CreationDate="2010-09-28T17:57:17.777" Score="2" ViewCount="" Body="&lt;p&gt;In addition to all of the other suggestions here, &lt;em&gt;turn on all possible warnings to the highest level of sensitivity,&lt;/em&gt; and treat them as errors. Also use any linting tools the language has.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You would be &lt;em&gt;amazed&lt;/em&gt; at how many simple mistakes can be caught by warnings and how many of those simple things translate into real bugs in your code.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-09-28T17:57:17.777" />
  <row Id="7950" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T17:57:34.187" Score="2" ViewCount="" Body="&lt;p&gt;You could do the &lt;a href=&quot;http://en.wikipedia.org/wiki/Fast_inverse_square_root&quot; rel=&quot;nofollow&quot;&gt;fast inverse square root&lt;/a&gt;, found in the Doom source code;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;float InvSqrt(float x)&#xA;{&#xA;    union {&#xA;        float f;&#xA;        int i;&#xA;    } tmp;&#xA;    tmp.f = x;&#xA;    tmp.i = 0x5f3759df - (tmp.i &amp;gt;&amp;gt; 1);  // Seriously?? Magic numbers!&#xA;    float y = tmp.f;&#xA;    return y * (1.5f - 0.5f * x * y * y);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="33" LastActivityDate="2010-09-28T17:57:34.187" />
  <row Id="7951" PostTypeId="1" AcceptedAnswerId="8060" CreationDate="2010-09-28T17:58:54.620" Score="2" ViewCount="110" Body="&lt;p&gt;I'm a student of computer science but I am only taking entry level web development classes. I'm looking for some out-of-class reading, tutorials, and other ways of learning but I'm not sure what I should start in. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is a good set of programming languages (different paradigms?), frameworks, suggested projects, and maybe even some open-source communities that I should start to look at and start learning? Also, maybe even some books or blogs on development processes in the professional world. I'm looking to start getting in to professional development around the end of college.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I understand practicing it will be the best way to learn anything but if I don't know what I should practice, I'm lost at that. :)&lt;/p&gt;&#xA;" OwnerUserId="3910" LastActivityDate="2010-09-28T22:57:35.993" Title="What's a good &quot;toolset&quot; of languages, frameworks, and anything else I need as an entry developer?" Tags="&lt;programming-languages&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="7952" PostTypeId="2" ParentId="7942" CreationDate="2010-09-28T17:59:27.703" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://basecamphq.com/&quot; rel=&quot;nofollow&quot;&gt;Basecamp&lt;/a&gt;&lt;/strong&gt; from &lt;a href=&quot;http://37signals.com/&quot; rel=&quot;nofollow&quot;&gt;37signals&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-28T17:59:27.703" />
  <row Id="7953" PostTypeId="2" ParentId="7859" CreationDate="2010-09-28T18:02:22.137" Score="2" ViewCount="" Body="&lt;p&gt;Hi there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://pragprog.com/titles/jtrap/the-agile-samurai&quot; rel=&quot;nofollow&quot;&gt;The Agile Samurai&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just purchased this myself and found it to be a refreshing look on how to get started with agile. Might be of help to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers.&#xA;Jas.&#xA;&lt;img src=&quot;http://i.imgur.com/y9qil.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="3668" LastActivityDate="2010-09-28T18:02:22.137" CommentCount="2" />
  <row Id="7954" PostTypeId="2" ParentId="7942" CreationDate="2010-09-28T18:07:30.510" Score="2" ViewCount="" Body="&lt;p&gt;I make extensive use of &lt;a href=&quot;https://secure.logmein.com/&quot; rel=&quot;nofollow&quot;&gt;LogMeIn.com&lt;/a&gt; - so I can connect to my desktop dev pc from home.  That gives me pretty much all I need - best bit is that it supports multi monitors, and free for a single computer.&lt;/p&gt;&#xA;" OwnerUserId="2397" LastActivityDate="2010-09-28T18:07:30.510" CommentCount="1" />
  <row Id="7955" PostTypeId="2" ParentId="7951" CreationDate="2010-09-28T18:09:45.733" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/CoderToDeveloper.html&quot; rel=&quot;nofollow&quot;&gt;Coder to Developer&lt;/a&gt; is a great book, but not language / framework specific. It gives a set of development practices and tools that you would be well advised to use.&lt;/p&gt;&#xA;" OwnerUserId="2397" LastActivityDate="2010-09-28T18:09:45.733" />
  <row Id="7956" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T18:10:43.177" Score="6" ViewCount="" Body="&lt;p&gt;It would have to be a pretty big poster, &lt;a href=&quot;http://rendell-attic.org/gol/tm.htm&quot; rel=&quot;nofollow&quot;&gt;turing machine&lt;/a&gt; implemented in Conway's Game of Life:&#xA;&lt;img src=&quot;http://i.imgur.com/pAWfR.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1444" LastEditorUserId="1444" LastEditorDisplayName="" LastEditDate="2010-09-28T18:17:52.117" LastActivityDate="2010-09-28T18:17:52.117" />
  <row Id="7957" PostTypeId="2" ParentId="7915" CreationDate="2010-09-28T18:12:57.657" Score="4" ViewCount="" Body="&lt;p&gt;You sound like you are definitely not psyched to do pair programming, but the fact that you asked the question would lead me to believe that you're keeping an open mind to it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why not be up-front with the employer and let him know how you feel.  If they still think you are the candidate that they want then you could suggest a 2 week trial (or whatever time period works) to see if your intial feeling are valid or not.  If the employer declines, it doesn't sound like you really wanted the job to begin with so it's no great loss.  If the employer agrees then you will at least know definitively one way or the other for the next job.  &lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-28T18:12:57.657" CommentCount="2" />
  <row Id="7959" PostTypeId="1" AcceptedAnswerId="8028" CreationDate="2010-09-28T18:24:39.420" Score="7" ViewCount="134" Body="&lt;p&gt;So I find every project I get involved in, the start is great and I am all gun-ho lets do some coding.  Next thing you know, the project is nearing completion, we are refining, testing, revising, waxing the car if you will and I just cannot retain focus.  I get to this point and I cannot stop thinking about how to maintain and get the job done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any comments on how to retain focus as project nears end and you cannot wait for next project? &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-09T13:53:21.340" Title="The project is almost complete, what can I do to retain interest and not lose focus ?" Tags="&lt;development-process&gt;&lt;focus&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="1" />
  <row Id="7960" PostTypeId="2" ParentId="7927" CreationDate="2010-09-28T18:27:34.780" Score="2" ViewCount="" Body="&lt;p&gt;Some great answers here regarding unit testing and tools. The only thing I can add to them is this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Involve your testers as early as you can&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a test team, don't fall into the trap of treating them as the gatekeepers for your code quality and catching your defects for you. Instead, work with them and involve them as early as possible (on agile projects this will be from the project's beginning, but we can always find ways to involve them earlier if we really try).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Find out what their test plan is. Review their test cases with them - are you covering them all with your code? &lt;/li&gt;&#xA;&lt;li&gt;Ask them for their understanding of the requirements. Is it the same as yours? &lt;/li&gt;&#xA;&lt;li&gt;Give them early working builds to do exploratory testing on - you'll be amazed at the improvements they will suggest.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Having a good working relationship with your testers means that you can catch poor assumptions and defects really early on, before they can do any damage. It also means that the testers feel empowered to help with the product design and catch usability issues when there is time to fix them.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-28T18:27:34.780" />
  <row Id="7961" PostTypeId="1" AcceptedAnswerId="7984" CreationDate="2010-09-28T18:37:00.817" Score="9" ViewCount="432" Body="&lt;p&gt;I wonder how many concentration-breaking interruptions a day is common/normal and how many is ideally acceptable?&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-01T05:57:02.680" ClosedDate="2010-12-10T20:52:21.467" Title="How many interruptions a day is acceptable?" Tags="&lt;concentration&gt;&lt;programming&gt;&lt;interruptions&gt;" AnswerCount="10" CommentCount="5" FavoriteCount="2" />
  <row Id="7962" PostTypeId="2" ParentId="7961" CreationDate="2010-09-28T18:40:53.537" Score="1" ViewCount="" Body="&lt;p&gt;Great question. I would say &quot;interruptions are not acceptable&quot;. But that's not realistic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, the answer is: depends by your concentration cycle. I need several minutes to being concentrated and productive, and then if I'm interrupted I'll have a huge productivity loss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I asked my coworkers to mail me instead of coming at my workstation or calling by phone. When my concentration-cycle is falling (say, every 45 minutes) I check the mail and deal with my coworkers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course it is harder to avoid boss interruptions (but my boss isn't pointy-haired and understood my point), and also customers calling at phone (but you can unplug or turn off the damn thing).&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-28T19:03:11.997" LastActivityDate="2010-09-28T19:03:11.997" />
  <row Id="7963" PostTypeId="2" ParentId="7951" CreationDate="2010-09-28T18:41:35.397" Score="0" ViewCount="" Body="&lt;p&gt;I'm also currently a CS student. What I would suggest is to learn about unit tests and revision control. Definitely useful for the rest of your programming career even while you're still in college.&lt;/p&gt;&#xA;" OwnerUserId="2243" LastActivityDate="2010-09-28T18:41:35.397" CommentCount="2" />
  <row Id="7964" PostTypeId="2" ParentId="7959" CreationDate="2010-09-28T18:43:51.720" Score="1" ViewCount="" Body="&lt;p&gt;I tend to do this, and it is most likely because I'm now &quot;bored&quot; with the project. It's almost done, there isn't really much more thinking involved, my mind is moving on while I'm stuck on this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My solution is to just put my back into it. Layout definitive goals and tackle them as fast as possible. Complete unit testing could have eight or so systems under it that all need to be done. Break it down further. Litter your desk with sticky notes and remove them when done. Visually indicating progress helps me a &lt;em&gt;lot&lt;/em&gt; in this phase. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-28T18:43:51.720" CommentCount="1" />
  <row Id="7965" PostTypeId="2" ParentId="7747" CreationDate="2010-09-28T18:47:02.607" Score="3" ViewCount="" Body="&lt;p&gt;Anyone is going to have a problem if they can't identify the problems in their current language and not only be able to work around them, but find another one built to solve the problem. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And GOTO is only bad if you don't have line numbering ;)&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-28T18:47:02.607" CommunityOwnedDate="2011-01-20T21:00:13.020" />
  <row Id="7966" PostTypeId="1" AcceptedAnswerId="8069" CreationDate="2010-09-28T18:47:23.510" Score="21" ViewCount="761" Body="&lt;p&gt;I have been listening to Scott Hanselman and Rob Conery's podcast, &lt;a href=&quot;http://thisdeveloperslife.com&quot; rel=&quot;nofollow&quot;&gt;This Developer's Life&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the latest episode, they discuss personality traits:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;1.0.4 - Being Mean.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;What makes people mean in our&#xA;  industry? What about aggressive?&#xA;  Confident? What's the difference?&#xA;  Would you rather have a drill sergeant&#xA;  for a boss, or a zen master? We talk&#xA;  to Cyra Richardson and Giles Bowkett.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It got me thinking, what traits did the best managers &lt;em&gt;you've&lt;/em&gt; worked for have in common?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Just to clarify, as there have been a few close votes, I'm interested in whether there are traits common to managers of developers that are not necessarily those traits that a manager of some other profession requires. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for whether this is programming related or not, well I don't want to ask this question on a site that isn't about programming because, frankly, I'm not as interested in what people who make cans of soup for a living want from their managers as I am interested in what &lt;em&gt;developers&lt;/em&gt; want from their managers.&lt;/p&gt;&#xA;" OwnerUserId="38" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:46:20.297" LastActivityDate="2011-01-26T20:01:05.397" CommunityOwnedDate="2011-01-26T19:57:30.693" Title="What traits do the best managers you've worked for have in common?" Tags="&lt;management&gt;&lt;personal-traits&gt;" AnswerCount="16" CommentCount="7" FavoriteCount="10" />
  <row Id="7967" PostTypeId="2" ParentId="7961" CreationDate="2010-09-28T18:48:40.390" Score="2" ViewCount="" Body="&lt;p&gt;Modern organizational methods such as Scrum aim, among other things, to reduce the number of interruptions.  In Scrum, you have a daily meeting to synchronize with the team and other stakeholders, and at other times you are not supposed to be interrupted, and it's the scrummaster's job to ensure that.  So, approximately no interruptions ought to be achievable in practice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think Joel once stated, it might have been in the blog or the podcast, that each interruption costs about 15 minutes to recover from.  So if you get interrupted, say, 3 times a day, you already lose 10% productivity.&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-09-28T18:48:40.390" CommentCount="4" />
  <row Id="7968" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T18:49:11.133" Score="5" ViewCount="" Body="&lt;p&gt;I like projects graphically represented through their evolution (being a Version Control administrator, I &quot;connect&quot; with that kind of &quot;art&quot; ;) )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.research.ibm.com/visual/projects/history_flow/index.htm&quot; rel=&quot;nofollow&quot;&gt;History flow&lt;/a&gt;&lt;/strong&gt; (and &lt;a href=&quot;http://www.research.ibm.com/visual/projects/history_flow/gallery.htm&quot; rel=&quot;nofollow&quot;&gt;its gallery&lt;/a&gt;):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/jj51C.gif&quot; alt=&quot;Evolution on Wikipedia&quot;&gt;&lt;br&gt;&#xA;(History flow of the article &quot;Evolution&quot; on Wikipedia: evolution of Evolution, how meta)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://code.google.com/p/gource/&quot; rel=&quot;nofollow&quot;&gt;Gource&lt;/a&gt;&lt;/strong&gt; ( a software version control visualization tool, see &lt;a href=&quot;http://code.google.com/p/gource/wiki/Screenshots&quot; rel=&quot;nofollow&quot;&gt;its screenshots&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How about hanging on your wall a snapshot of a flurry of development on the Linux project&lt;/strong&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/yjYPy.jpg&quot; alt=&quot;alt text&quot;&gt;&#xA;(As Linux is a huge C language project, the files being worked on are predominately a mix of .c (shown in green) and .h header files (in red).)&lt;/p&gt;&#xA;" OwnerUserId="3915" LastActivityDate="2010-09-28T18:49:11.133" CommentCount="3" />
  <row Id="7969" PostTypeId="2" ParentId="7141" CreationDate="2010-09-28T18:49:32.973" Score="1" ViewCount="" Body="&lt;p&gt;I got stuck in the same boat. I started my career in VB/VBScript land, and now after 10 years I'm finally a C# coder.  My main response to the interview question &quot;Do you know C#&quot; was &quot;I haven't done much with C#, but I can figure 80% out of it given a week or two on the job.&quot; I followed up pointing out that I used the .NET Framework a lot with VB.NET, and that's half the battle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You know how to program and it's not hard to pick up another language once you know one already. That attitude got me in the door at Microsoft as a PM, and I was able to use the C# skills I picked up there to get me subsequent jobs programming in C#, as well as teaching PHP at a local college.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can take the chance and stick with your current employer. The experience and title always looks good on your resume.  HerbN is right though - stay fresh and expand your programming skill set with C# on your own time if you're worried about it. &lt;/p&gt;&#xA;" OwnerUserId="3784" LastActivityDate="2010-09-28T18:49:32.973" CommentCount="1" />
  <row Id="7970" PostTypeId="1" AcceptedAnswerId="8001" CreationDate="2010-09-28T18:49:50.937" Score="5" ViewCount="240" Body="&lt;p&gt;Have you ever worked on learning a language, or a project only to see the language go bye-bye? What language?&lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-09-28T20:29:38.320" Title="What &quot;promising technologies&quot; have you put work into, only to watch the platform disappear?" Tags="&lt;programming-languages&gt;" AnswerCount="8" />
  <row Id="7971" PostTypeId="1" AcceptedAnswerId="7977" CreationDate="2010-09-28T18:50:04.377" Score="5" ViewCount="100" Body="&lt;p&gt;I have always read articles and books about details of Language features and some technologies. To be have knowledge about language and technologies are not enough for me to create really good Software or even understand whole software logic which i try to understand. Also bad designed software become hard to develop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So i am looking resources which is about general software designs, layouts, patterns...etc which will help me understand general software structures and create softwares designed well.&lt;/p&gt;&#xA;" OwnerUserId="3664" LastActivityDate="2010-09-28T20:12:42.607" Title="Resources about general software logic, layout,patterns..." Tags="&lt;software&gt;&lt;design&gt;" AnswerCount="14" FavoriteCount="1" />
  <row Id="7972" PostTypeId="2" ParentId="7915" CreationDate="2010-09-28T18:54:12.200" Score="11" ViewCount="" Body="&lt;p&gt;Guess what - &lt;strong&gt;nobody likes pair programming at first&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I first tried pair programming I was against the idea and I had tons of objections similar to yours.  I don't like to watch someone else coding, I like to listen to music, I feel I'll be quicker working on my own, I don't want to stop and explain myself constantly, etc etc etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I tried it.  And guess what?  &lt;strong&gt;It still sucked&lt;/strong&gt;.  We were having all kinds of problems - I wanted to work &lt;strong&gt;different hours&lt;/strong&gt; to the other guy, we had different &lt;strong&gt;keyboard settings&lt;/strong&gt; and shortcuts, our &lt;strong&gt;desks&lt;/strong&gt; didn't work very well for pair programming etc etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This went on for about a week.  During that week we were rewriting the entire legacy login system for a distributed application.  We had to learn how some seriously difficult threading issues work, figure out how remoting sinks worked, change tons and tons of legacy code to work with our new login module and pretty much do some of the most hectic coding I've had to do in my career.  After a week of this we deployed it.. and &lt;strong&gt;everything just worked&lt;/strong&gt;.  &lt;em&gt;Not a single bug&lt;/em&gt;.  &lt;strong&gt;Not one&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's when I figured there might be something to this pair programming nonsense.  We started to do more pair programming.  We even started to force everyone to work in pairs.  It rocked.  &lt;em&gt;I probably learnt more in a month of doing that than I did in the previous 2 years&lt;/em&gt;.  The other issues didn't go away.  Sometimes you'll be stuck with a pair that you dislike.  It's gonna happen.  Sometimes you'll struggle to find overlapping working hours.  Sometimes you'll want to just work on your own.  But the advantages of pair programming are just incredible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since then I've always tried to do as much pair programming as possible.  It's simply the best way of learning.  This company forces everyone to do pair programming? &lt;strong&gt;Where do I sign up?&lt;/strong&gt;  It seems to me they are really enlightened and you will be in a really intense working environment.  Awesome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, make sure that the pairs are rotated often.  You don't want to be stuck developing with one other developer for months on end - you'll go out of your mind.  We're all human, after all.  Also, check that this has been an ongoing practice for a while.  If it's not, it's not the end of the world, but if it's an accepted practice it's a massive green light.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Trust me, you want to work for a company like that.&lt;/h2&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-28T18:54:12.200" CommentCount="1" />
  <row Id="7973" PostTypeId="2" ParentId="7966" CreationDate="2010-09-28T18:54:20.733" Score="21" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Being willing to listen to the people who work for them.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had very technically-inclined managers, and I've had some who didn't even know about multitasking (&quot;oh wow! Where'd you learn that Alt-Tab trick?&quot;), but the thing that all the ones I've actually enjoyed working for had in common is that they knew they didn't know everything, and were willing to listen when those of us actually doing the work they were supposed to be managing presented ideas, problems or suggestions about that work.&lt;/p&gt;&#xA;" OwnerUserId="935" LastEditorUserId="935" LastEditorDisplayName="" LastEditDate="2011-01-26T17:02:37.070" LastActivityDate="2011-01-26T17:02:37.070" CommunityOwnedDate="2011-01-26T19:57:30.693" CommentCount="1" />
  <row Id="7974" PostTypeId="2" ParentId="7915" CreationDate="2010-09-28T18:54:42.730" Score="2" ViewCount="" Body="&lt;p&gt;I tried pair programming and hated it. I share almost all the doubts and concerns you have expressed against it. I resigned for this very reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal advice is always against pair, and given your attitude I strongly advice you to not even give it a try.&lt;/p&gt;&#xA;" OwnerUserId="235" LastActivityDate="2010-09-28T18:54:42.730" CommentCount="1" />
  <row Id="7975" PostTypeId="2" ParentId="7970" CreationDate="2010-09-28T18:55:48.813" Score="1" ViewCount="" Body="&lt;p&gt;Symbolics LISP Machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nicest programming environment I have ever seen anywhere.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-09-28T18:55:48.813" />
  <row Id="7976" PostTypeId="2" ParentId="7961" CreationDate="2010-09-28T18:57:43.100" Score="2" ViewCount="" Body="&lt;p&gt;There are different degrees of interuptions. I give one point for each:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;my availability (in the zone, have a deadline)&lt;/li&gt;&#xA;&lt;li&gt;the seriousness of the problem&lt;/li&gt;&#xA;&lt;li&gt;the degree to which I am the person to solve your problem (your email doesn't work?)&lt;/li&gt;&#xA;&lt;li&gt;the timeliness of the problem (can it wait?)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The worse is when you are deep into a problem and you get interupted for something that doesn't require your attention at the moment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few minor (1-2), one medium (2-3). A 4 is unacceptable. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-28T18:57:43.100" CommentCount="1" />
  <row Id="7977" PostTypeId="2" ParentId="7971" CreationDate="2010-09-28T18:59:18.973" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;The &lt;a href=&quot;http://c2.com/ppr/&quot; rel=&quot;nofollow&quot;&gt;Portland Patterns Repository&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;The &lt;a href=&quot;http://c2.com/cgi/wiki&quot; rel=&quot;nofollow&quot;&gt;original Wiki&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://parlab.eecs.berkeley.edu/wiki/patterns/patterns&quot; rel=&quot;nofollow&quot;&gt;A Pattern Language for Parallel Programming&lt;/a&gt; (Not general, and a work in progress, and still very interesting.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-28T18:59:18.973" />
  <row Id="7978" PostTypeId="2" ParentId="7961" CreationDate="2010-09-28T18:59:28.290" Score="1" ViewCount="" Body="&lt;p&gt;Depends on whether or not you're referring to &lt;em&gt;interruptions that you make yourself&lt;/em&gt; (getting up to go get some water or coffee) or &lt;em&gt;someone else interrupting you&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I probably stop to do something else about &lt;strong&gt;once an hour or so&lt;/strong&gt;.  In my opinion the human brain just works better like that and you'll often find the answer to a problem you're having if you walk around and do something else for a few minutes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of interruptions by others, the &lt;strong&gt;less the better&lt;/strong&gt;.  But obviously this isn't possible - quite often someone will need input from you.  So I guess it depends on your position (if you're the team lead you're gonna have more interruptions) and the size of your team.  Having said that, it's important to have a &lt;strong&gt;culture of quiet working environments&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;It's one thing to interrupt me to ask me something about the code, it's a completely different scenario if you're simply speaking on your phone so loudly that it breaks my concentration.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-28T18:59:28.290" CommentCount="1" />
  <row Id="7979" PostTypeId="2" ParentId="7971" CreationDate="2010-09-28T19:00:17.070" Score="1" ViewCount="" Body="&lt;p&gt;Here's a pretty solid resource. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321127420&quot; rel=&quot;nofollow&quot;&gt;Patterns of Enterprise Application Architecture&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The implementations are in Java, but the patterns are relatively generic. Not all are completely useful today as lots of packages that you would/could use to develop software are implementations of them (ORM tools springs to mind).&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-28T19:00:17.070" />
  <row Id="7980" PostTypeId="2" ParentId="7966" CreationDate="2010-09-28T19:02:12.810" Score="33" ViewCount="" Body="&lt;p&gt;Joel Spolsky calls it the &quot;&lt;a href=&quot;http://www.joelonsoftware.com/articles/DevelopmentAbstraction.html&quot; rel=&quot;nofollow&quot;&gt;Abstraction Layer&lt;/a&gt;&quot;. Do what it takes to keep me programming. Let me know what's going on in the company, but keep me out of the politics. Eventhough I still have to do it, at least acknowledge that the request is bull sh!t. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-28T19:02:12.810" CommunityOwnedDate="2011-01-26T19:57:30.693" CommentCount="3" />
  <row Id="7981" PostTypeId="2" ParentId="7966" CreationDate="2010-09-28T19:03:11.420" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;They manage based on goals, not time, and are primarily concerned with me achieving those goals&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rather than being concerned with how long I'm sitting at my desk, they're concerned with what I need to accomplish a given task.  If this means removing obstacles or hindrances, or allowing me to work long hours/weekends, they're willing to trade-off the time.  If I get work done ahead of schedule and need some time for doctor appointments or family activities, they're flexible and understanding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I certainly want to be held accountable at work, but it should be for what I achieve, not how much time I spend at my desk.&lt;/p&gt;&#xA;" OwnerUserId="2294" LastActivityDate="2010-09-28T19:03:11.420" CommunityOwnedDate="2011-01-26T19:57:30.693" />
  <row Id="7982" PostTypeId="2" ParentId="7970" CreationDate="2010-09-28T19:04:49.193" Score="1" ViewCount="" Body="&lt;h3&gt;Java Swing&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I have taken several courses in &lt;strong&gt;object oriented programming&lt;/strong&gt; and &lt;strong&gt;user interface construction&lt;/strong&gt; where Java and Swing was used, and on top of that I made a big project using Java Swing. I have also invested time in reading a great book about it, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0132413930&quot; rel=&quot;nofollow&quot;&gt;Filthy Rich Clients&lt;/a&gt; and read many deep articles about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It haven't really disappeared, but Java Swing is pretty outdated.&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-28T19:11:21.547" LastActivityDate="2010-09-28T19:11:21.547" CommentCount="4" />
  <row Id="7983" PostTypeId="2" ParentId="7970" CreationDate="2010-09-28T19:08:22.577" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Managed DirectX&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was an API for accessing DirectX from .NET but Microsoft bailed on it in favour of XNA (which was a good idea, but still, time and effort was still wasted).&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-28T19:08:22.577" />
  <row Id="7984" PostTypeId="2" ParentId="7961" CreationDate="2010-09-28T19:08:48.020" Score="17" ViewCount="" Body="&lt;p&gt;I'll be the contrarian... I don't think interruptions are necessarily bad.  Before you jump down my throat let me explain.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been the technical lead for multiple projects all of which were on tight deadlines and my time was money.  But there are times were 5-10 minutes of my time was worth 1-2 days of the person who was asking the questions time. Aka, if I wouldn't have helped them, their task would have slipped 2 days on the schedule.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's important to note that if you are working with a team, even if you finish that piece of ever so important piece of code, if the surrounding pieces aren't there you got nothing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So &lt;strong&gt;any&lt;/strong&gt; unnecessary interruption is bad, but part of being a mid-senior level developer is helping out those below you and dealing with the interruption.&lt;/p&gt;&#xA;" OwnerUserId="3758" LastActivityDate="2010-09-28T19:08:48.020" CommentCount="5" />
  <row Id="7985" PostTypeId="2" ParentId="7915" CreationDate="2010-09-28T19:10:32.103" Score="3" ViewCount="" Body="&lt;p&gt;Based on your various comments here, you seem to to have a similar outlook/disposition to myself on the subject. And I &lt;em&gt;have&lt;/em&gt; experienced &quot;Pair Programming&quot;. And I certainly wouldn't join a company that required me to bite a scorpion. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I'd recommend is: Go with your gut.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the company would force you to do Pair Programming and you know you don't want to, don't join.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they'll give you the opportunity to show that you can produce better work faster than any two of their current developers combined, go ahead and prove it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before you decide for definite though, I'd certainly agree with the recommendation that you ask to talk to the existing developers there, and get a feel for them as people. (I'd probably recommend that for any new job, regardless of the methodologies used.)&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-09-28T19:10:32.103" />
  <row Id="7986" PostTypeId="2" ParentId="7951" CreationDate="2010-09-28T19:15:17.523" Score="0" ViewCount="" Body="&lt;p&gt;Things I wished i would have learned at school &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;SQL&lt;/li&gt;&#xA;&lt;li&gt;SCM&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Methodology/Patterns I wish I would have known better... &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Enterprise Layering Strategies (separation of concerns Service/Business/Data Layering). &lt;/li&gt;&#xA;&lt;li&gt;More effort to learn &lt;a href=&quot;http://www.dofactory.com/Patterns/Patterns.aspx&quot; rel=&quot;nofollow&quot;&gt;Design Patterns&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Things you should read once you get closer to entering the real world: Any article on this site: &lt;a href=&quot;http://joelonsoftware.com&quot; rel=&quot;nofollow&quot;&gt;Joel On Software&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When concerned about java... &lt;a href=&quot;http://javaposse.com/&quot; rel=&quot;nofollow&quot;&gt;Java Posse&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interested in .NET?  &lt;a href=&quot;http://weblogs.asp.net/scottgu/&quot; rel=&quot;nofollow&quot;&gt;Scott Gus Blog&lt;/a&gt; and &lt;a href=&quot;http://www.hanselman.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Scott Hanselman&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3758" LastActivityDate="2010-09-28T19:15:17.523" CommentCount="3" />
  <row Id="7987" PostTypeId="2" ParentId="6639" CreationDate="2010-09-28T19:16:35.140" Score="1" ViewCount="" Body="&lt;p&gt;Bose QuietComfort 15s are expensive, and, in my personal opinion, worth every penny.  They do a great job of killing ambient noise, and they sound REALLY good on music.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't care about playing music, and just want to kill ambient noise, hit an industrial safety company for earplugs and earmuffs.  Earplugs are usually good for about 28 dB isolation, and earmuffs another 28 dB.  The combination will give you about 58 dB of ambient noise isolation.  This is enough that you can stand next to a Bushmaster 50 mm chain gun being dry-cycled, and it is at the level of quiet conversation.  This is enough that, as you walk, you can hear, by bone conduction, your own bones creaking.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-09-28T19:16:35.140" />
  <row Id="7988" PostTypeId="1" CreationDate="2010-09-28T19:26:40.293" Score="1" ViewCount="127" Body="&lt;p&gt;It does not have to be ultimate haXor l33t thing (although it can be). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Here is my story&lt;/strong&gt;:&#xA;In college we had a programming course where we had to write C++ programs that an automated system compiled and rated. I managed to make the system accept perl scripts and instead of lengthy C++, I got away with a few lines of perl magic for each assignment. To do this I wrote a program that executed the perl script which path I hardcoded into it, so I was able to hand in the C++ source that the automated system compiled happily. Obviously this was very easy to implement but I was very proud for inventing it :).&lt;/p&gt;&#xA;" OwnerUserId="3530" LastActivityDate="2010-09-29T00:20:43.023" ClosedDate="2010-09-29T00:26:20.547" Title="How did you get away from doing lots of work by being a smart programmer?" Tags="&lt;stories&gt;" AnswerCount="2" CommentCount="9" />
  <row Id="7989" PostTypeId="2" ParentId="7971" CreationDate="2010-09-28T19:29:34.080" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.oodesign.com/&quot; rel=&quot;nofollow&quot;&gt;OODesign.com&lt;/a&gt; is my favorite reference.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-28T19:29:34.080" />
  <row Id="7990" PostTypeId="2" ParentId="7971" CreationDate="2010-09-28T19:30:43.750" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://martinfowler.com/eaaCatalog/&quot; rel=&quot;nofollow&quot;&gt;Patterns of Enterprise Application Architecture&lt;/a&gt; from Martin Fowler catalog.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-28T19:30:43.750" />
  <row Id="7991" PostTypeId="2" ParentId="7970" CreationDate="2010-09-28T19:31:12.563" Score="4" ViewCount="" Body="&lt;p&gt;C++ on Windows. It still useful for a lot of stuff (and we still use it on some useful stuff), but it's becoming more and more niche.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My hard-learned interpretations of subtle compiler, linker or program behaviour on the Windows platform is becoming less useful and more annoying (as in: why am I still doing this to myself?!! %&amp;amp;#¤% !!) each year.&lt;/p&gt;&#xA;" OwnerUserId="3917" LastEditorUserId="3917" LastEditorDisplayName="" LastEditDate="2010-09-28T20:20:26.220" LastActivityDate="2010-09-28T20:20:26.220" />
  <row Id="7992" PostTypeId="2" ParentId="7959" CreationDate="2010-09-28T19:33:07.283" Score="0" ViewCount="" Body="&lt;p&gt;The best part of a project coming together is that you get to work on those last 10% that make up 90% of the feel of a product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each fix makes the product much more complete, if you can imagine counting like that (I.e the 20th last fix accounts for 5%, the 2nd last fix for 50%).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love that phase, but it can be a grind too.&lt;/p&gt;&#xA;" OwnerUserId="3917" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-09-28T20:50:02.713" LastActivityDate="2010-09-28T20:50:02.713" />
  <row Id="7993" PostTypeId="1" CreationDate="2010-09-28T19:34:18.797" Score="3" ViewCount="123" Body="&lt;p&gt;During iteration retrospectives on agile projects, one of the topics that comes up most often for us is that the product owner is (or product owners are) not available or engaged in the project at a day to day level. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems to be a common theme that customers are unwilling to &quot;give up&quot; the necessary amount of their product owner's time to the project, but instead have them answer questions via email, or during product demos only. This has the effect of increasing the length of the feedback cycle and making the project less effective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you had to overcome this hurdle? How did you do it?&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-11-09T02:42:57.950" Title="How do you get your product owner more engaged on agile projects?" Tags="&lt;development-process&gt;&lt;agile&gt;&lt;product-owner&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="7994" PostTypeId="2" ParentId="7971" CreationDate="2010-09-28T19:34:34.387" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.brpreiss.com/&quot; rel=&quot;nofollow&quot;&gt;Data Structures and Algorithms&lt;/a&gt; books with examples to C++, Java C#, Python, Ruby, Lua, Perl e PHP.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-28T19:34:34.387" />
  <row Id="7995" PostTypeId="2" ParentId="7971" CreationDate="2010-09-28T19:36:22.530" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://sourcemaking.com/design_patterns&quot; rel=&quot;nofollow&quot;&gt;Design Patterns Reference&lt;/a&gt; has examples of patterns, anti-patterns and video courses.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-28T19:36:22.530" />
  <row Id="7996" PostTypeId="2" ParentId="7971" CreationDate="2010-09-28T19:38:49.507" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://java.sun.com/blueprints/enterprise/index.html&quot; rel=&quot;nofollow&quot;&gt;Enterprise Blueprints&lt;/a&gt; from Java.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-28T19:38:49.507" />
  <row Id="7998" PostTypeId="2" ParentId="6639" CreationDate="2010-09-28T19:40:45.727" Score="1" ViewCount="" Body="&lt;p&gt;I am a big fan of Beyerdynamic headphones. Using DT770 for office (closed design) and DT990 for home (half-open). They ain't cheap, but boy are they great.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Very comfortable (deep cups with soft cushions, your ears don't touch anything inside). I am happily wearing them 10+ hours every day for past 5 years. &lt;/li&gt;&#xA;&lt;li&gt;Sound quality is the best I've heard (DT990 my fav), amazing fidelity and the deepest base. &lt;/li&gt;&#xA;&lt;li&gt;Cancel noise nicely, can work with fire alarm ringing all day&lt;/li&gt;&#xA;&lt;li&gt;Very good building quality, made to last for years and years (one of a few things that is still made in Germany)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/0t0b8.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;img src=&quot;http://i.imgur.com/R5gRY.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="193" LastEditorUserId="193" LastEditorDisplayName="" LastEditDate="2010-09-28T19:47:33.717" LastActivityDate="2010-09-28T19:47:33.717" CommentCount="1" />
  <row Id="7999" PostTypeId="2" ParentId="7959" CreationDate="2010-09-28T19:41:09.033" Score="0" ViewCount="" Body="&lt;p&gt;I think at this point it would be best to just ship it. There are always ways to improve a project, and sometimes 'good enough' is just that. Get it out there to live users, you can see how they use it in the wild, and have a clearer look at what the project needs, and go from there.&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-09-28T19:41:09.033" CommentCount="1" />
  <row Id="8000" PostTypeId="2" ParentId="7971" CreationDate="2010-09-28T19:41:22.420" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.jeremydmiller.com/ppatterns/&quot; rel=&quot;nofollow&quot;&gt;Presentation Patterns&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-28T19:41:22.420" />
  <row Id="8001" PostTypeId="2" ParentId="7970" CreationDate="2010-09-28T19:42:30.187" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;VRML&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back at the end of millennium, when most people were only just encountering regular websites, I was discovering this intriguing world of 3D websites, created with &lt;a href=&quot;http://en.wikipedia.org/wiki/VRML&quot; rel=&quot;nofollow&quot;&gt;VRML&lt;/a&gt;, rendered via a browser plugin.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Was all very cool, but unfortunately never properly took off. Probably at least because there were never any secure cross-browser plugins for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;I do keep wanting to take a look at the modern day replacements, like &lt;a href=&quot;http://code.google.com/p/o3d/&quot; rel=&quot;nofollow&quot;&gt;O3D&lt;/a&gt;, but never seem to have the time. :(&lt;/p&gt;&#xA;" OwnerUserId="89" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-09-28T19:56:10.840" LastActivityDate="2010-09-28T19:56:10.840" CommentCount="1" />
  <row Id="8002" PostTypeId="2" ParentId="7971" CreationDate="2010-09-28T19:43:58.380" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.objectarchitects.de/arcus/&quot; rel=&quot;nofollow&quot;&gt;Arcus Patterns&lt;/a&gt; has some patterns less known but very useful in most business applications.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-28T20:08:44.843" LastActivityDate="2010-09-28T20:08:44.843" />
  <row Id="8003" PostTypeId="2" ParentId="7971" CreationDate="2010-09-28T19:47:55.270" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.doc.ic.ac.uk/~np2/patterns/scripting/&quot; rel=&quot;nofollow&quot;&gt;Patterns for Scripted applications&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-28T19:47:55.270" />
  <row Id="8004" PostTypeId="2" ParentId="7993" CreationDate="2010-09-28T19:48:30.860" Score="1" ViewCount="" Body="&lt;p&gt;Of course abundant availability is better, but the scrum process provide the team with a lot of opportunities to get feedback from the product owner if periodic meetings are held propely by the scrum master.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This include estimation sessions, sprint planning, sprint review, retrospective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a lot already.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your project is complex and demand a higher product owner implication, the scrum master has to solve the problem for the team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good start would be to tell the product owner about the team's needs.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-28T19:48:30.860" CommentCount="10" />
  <row Id="8005" PostTypeId="2" ParentId="7970" CreationDate="2010-09-28T19:49:43.793" Score="2" ViewCount="" Body="&lt;p&gt;Not quite disappeared yet, but one of my former companies hitched its wagon to &lt;a href=&quot;http://www.embarcadero.com/products/delphi&quot; rel=&quot;nofollow&quot;&gt;Delphi&lt;/a&gt; in 1996.  All well and good, but the legion of straight C developers we had led to some very not-object-oriented code and it's all but impossible to find Delphi developers in the Midwest.  I think I spent about nine years invested in that realm before jumping at &lt;a href=&quot;http://msdn.microsoft.com/en-us/vcsharp/aa336809.aspx&quot; rel=&quot;nofollow&quot;&gt;C#&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-09-28T19:49:43.793" CommentCount="2" />
  <row Id="8006" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T19:50:10.720" Score="0" ViewCount="" Body="&lt;p&gt;I wrote something like this in 2008 in my blog mixing some languages...&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#define injustice int32&#xA;&#xA;var hope, perseverance: int64;&#xA;&#xA;bool freedom = false;&#xA;&#xA;Public faith As Variant = Empty&#xA;&#xA;Sub Live()&#xA;&#xA;  injustice = int.parse(rnd * (2 ^ 32 - 1))&#xA;&#xA;  While (injustice &amp;gt; 0)&#xA;&#xA;    Begin&#xA;&#xA;      freedom := Fight(perseverance, hope);&#xA;&#xA;      If freedom Then&#xA;&#xA;        Live()&#xA;&#xA;      Else&#xA;&#xA;        If (hope == 0) &#xA;        {&#xA;          faith++;&#xA;        }&#xA;&#xA;      for each moment in life do:&#xA;        the_best_of_you().&#xA;      end.&#xA;&#xA;    End; &#xA;&#xA;End Sub&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3082" LastActivityDate="2010-09-28T19:50:10.720" />
  <row Id="8007" PostTypeId="2" ParentId="7971" CreationDate="2010-09-28T19:52:56.713" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.ambysoft.com/essays/processPatternsPaper.html&quot; rel=&quot;nofollow&quot;&gt;Process Patterns&lt;/a&gt; e-book.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-28T19:52:56.713" />
  <row Id="8008" PostTypeId="1" AcceptedAnswerId="8021" CreationDate="2010-09-28T19:53:40.700" Score="6" ViewCount="1077" Body="&lt;p&gt;Hello everyone, I was recently offered a job at a small ip telecom service company to work with python+django mostly. I'm on my 2nd day, getting familiar with their systems, but I haven't done all the paperwork yet or signed any contracts. I'm about to this week. It's essentially a 5-man company, 2 programmers. The environment is small but quiet (well'll be on their new floor). I'd say it passes Joel's test. Being a small company, there's a lot less bureaucracy and I'm guessing that development times can be pretty fast. There aren't a lot of other perks aside from this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But...Just now another well known company called me to interview to work on opensource systems with PHP and etc. They're really big in the open source community in my country. I was indicated by a past co-worker and last boss. It's a nationwide company that's been around for at least two decades here in Brazil and does contract work for a government bank. The salary and benefits are probably going to be better, but I'm not so sure yet. I'll go to interview tomorrow and find out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm very new at this salary negotiation process. But let's say they like me. Should I tell them that I have another offer that I'm about to settle for? Say the big company offers me a salary that's 10%-20% better than the one I got now, same benefits. If you were me, would you take it in the first place? BIG known company vs. Small unknown growing company. How do I tell my &quot;2-day&quot; boss that I'd want to leave for another job? Advices?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE 1:&lt;/strong&gt;&#xA;I went to the interview and from what I could understand, my job would be to lead a rather large open source project (300K+ lines) that's expanding at a fast rate and being adopted around my whole country. I'm supposed to fill the shoes of a person that left and is starting his own company. Also, I would be the ONLY developer for a while, which honestly scares me a bit given the size of the project. I read a bit about the project and I felt extremely overwhelmed by what the job entails, it's a first impression but I don't know to be exact. There are many many technologies that I haven't used or heard, even though he said the programming aspect is &quot;simple&quot; and given the fact that I would practically work alone it's not a good sign. The person that left said he would be available to help remotely, but you know...&#xA;They all told me that if I take it, I should be &lt;strong&gt;PREPARED&lt;/strong&gt; and &lt;strong&gt;READY&lt;/strong&gt; (given the circumstance, I don't think it's just a matter of confidence and dedication). In terms of future prospects, it would be invaluable because of networking, some consulting work, I might even have to give talks at conferences, it's all a huge plus. I was asked the money question and I told double of what my 1st company offered me. They're analyzing it (talking with the superiors) and I will maybe hear a preliminary decision from them today. The final decision would be next week though. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I went straight back to company 1, told about the interview, my interest in both companies, and that I would have to wait for company 2's final response. He obviously wasn't happy when I asked him if he could halt the paperwork process for three more days. He said something about the law not allowing him to hold my work documents for a certain number of days. He agreed to wait until I hear from them TODAY. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm in a huge huge dilemma. I have never had anything like this happen to me since I'm fairly young. My experience is really just entry-level. &#xA;My doubt is more related to which company I should choose. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's the breakdown:&#xA;Company 1 is small, pretty new, unknown, I'd be working on things under the radar, but still learning a lot from my peers. We would practically have our own quiet office. Even though it's new, it's stable and the few people working at it are all extremely nice (friendly environment) and very competent. Honestly, there appears to be a bright future of which I could be a crucial member.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Company 2 is essentially government owned, HUUUUGE. I'll be my own boss, working independently. Salary could be 50%-100% more than Company 1  (waiting for the department's boss's 'ok'). Heavier workload. The environment is kind of noisy :( due to a huge number of servers). Currently, I don't possess knowledge of a lot of the tools involved in order to keep the project going smoothly at least for the first couple of months. I do learn fast and have delivered results on my last temp job, but this one is harder and different. I could be overreacting though. If I don't do well, it would take longer for them to fire me &lt;strong&gt;right away&lt;/strong&gt; but it would still be an experience to talk about and I could just look for another job later. Otherwise, it could immensely change my career due to the nationwide visibility of the open-source project (10K members, companies/government districts using it). The last person doing this just started his own company probably due to excellent networking opportunities...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm overtly sorry for the wordy update. I'm just a young programmer, inexperienced career-wise, about to make a crucial decision. I thank everyone that replied to my post. I would appreciate it if people could give me advices, similar personal experience, etc. &lt;/p&gt;&#xA;" OwnerUserId="3922" LastEditorUserId="3922" LastEditorDisplayName="" LastEditDate="2010-09-29T20:08:00.977" LastActivityDate="2010-12-02T19:41:38.710" Title="Just started at a new job, but just got an interview" Tags="&lt;jobs&gt;&lt;advice&gt;&lt;interview&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="1" />
  <row Id="8009" PostTypeId="2" ParentId="7971" CreationDate="2010-09-28T19:56:05.227" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.workflowpatterns.com/&quot; rel=&quot;nofollow&quot;&gt;Workflow Patterns&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-28T19:56:05.227" />
  <row Id="8011" PostTypeId="2" ParentId="7966" CreationDate="2010-09-28T19:57:21.323" Score="17" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;She/he protects his team and assumes his/her responsabilies&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One in your team crash a server with production data. Your manager will take full responsability. He will eventually refuse to tell his upper manager who did the mistake and stand in front of his men.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-28T12:51:25.483" LastActivityDate="2010-10-28T12:51:25.483" CommunityOwnedDate="2011-01-26T19:57:30.693" />
  <row Id="8012" PostTypeId="1" CreationDate="2010-09-28T20:00:15.443" Score="4" ViewCount="88" Body="&lt;p&gt;My very first introduction to programming was in grade school, when I would purchase books full of BASIC code listings from the Scholastic school catalogue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lately I have been searching &lt;em&gt;teh Internetz&lt;/em&gt; for information on these books, but without any success.  Does anyone know or remember anything about these books?  All I can recall is that they were large paperbacks full of various BASIC code listings, some of which were game like.  They all included instructions on how to modify the code listings for the different systems of the day, and I distinctly remember that they would always ask for a number in order to seed the RANDOMIZE command (since I figured out on my own that RANDOMIZE TIMER eliminated the need for the question and answer).&lt;/p&gt;&#xA;" OwnerUserId="3920" LastActivityDate="2010-09-28T21:33:43.557" Title="Looking for information on Scholastic BASIC programming books from the mid-1980s" Tags="&lt;books&gt;&lt;basic&gt;" AnswerCount="1" />
  <row Id="8013" PostTypeId="2" ParentId="7993" CreationDate="2010-09-28T20:04:44.333" Score="4" ViewCount="" Body="&lt;p&gt;The product owner's presence in required meetings (Sprint Review and Planning) is (should be) non-negotiable.  Do what you need to negotiate a time that works, and then absolutely hold the product owner to it.  If something comes up, delay it but hold the product owner responsible for bringing the entire team to a halt.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the product owner is actually (from) your customer and they are unwilling to participate in that capacity, then maybe it makes sense to find an internal Product Owner that communicates with the customer but is capable/authorized to make some calls on their own, on the customer's behalf.  That is the typical arrangement anyhow, since there are some things that a Product Owner is responsible for that shouldn't really pass by a customer's eyes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, your only choice is basically to abandon agile.  You're not going to make it work without a PO at those meetings.&lt;/p&gt;&#xA;" OwnerUserId="3921" LastActivityDate="2010-09-28T20:04:44.333" />
  <row Id="8014" PostTypeId="2" ParentId="8008" CreationDate="2010-09-28T20:06:07.860" Score="8" ViewCount="" Body="&lt;p&gt;What happens if your boss is not happy with you after the 2nd day? Or if he found someone more attractive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are not happy with your job, use the mutual right that allows you to quit within the defined period in your contract (even if you did not sign yet).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Business is business. But please stay honest.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-28T22:12:58.413" LastActivityDate="2010-09-28T22:12:58.413" />
  <row Id="8015" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T20:10:08.383" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.wolframscience.com/downloads/colorimages.html&quot; rel=&quot;nofollow&quot;&gt;Cellular automata art&lt;/a&gt;.  Every cellular automaton is a little program.  And there's more &lt;a href=&quot;http://www.wolframscience.com/conference/2004/gallery/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The image shown here is by Michael Trott.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/7m0l2.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2268" LastEditorUserId="2268" LastEditorDisplayName="" LastEditDate="2010-09-28T20:15:53.403" LastActivityDate="2010-09-28T20:15:53.403" />
  <row Id="8016" PostTypeId="2" ParentId="7971" CreationDate="2010-09-28T20:11:16.503" Score="0" ViewCount="" Body="&lt;p&gt;Code using &lt;a href=&quot;http://www.vincehuston.org/dp/&quot; rel=&quot;nofollow&quot;&gt;Design Patterns&lt;/a&gt; compared with code that doesn't use patterns.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-28T20:11:16.503" />
  <row Id="8017" PostTypeId="2" ParentId="7971" CreationDate="2010-09-28T20:12:42.607" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.objectarchitects.de/ObjectArchitects/orpatterns/&quot; rel=&quot;nofollow&quot;&gt;Patterns for ORM&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-28T20:12:42.607" />
  <row Id="8018" PostTypeId="2" ParentId="7970" CreationDate="2010-09-28T20:12:53.180" Score="4" ViewCount="" Body="&lt;p&gt;ColdFusion &amp;amp; PowerBuilder&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-28T20:12:53.180" CommentCount="5" />
  <row Id="8019" PostTypeId="2" ParentId="7806" CreationDate="2010-09-28T20:16:21.533" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.mcdonaldland.info/2007/11/28/40/&quot; rel=&quot;nofollow&quot;&gt;GoF Design Patterns&lt;/a&gt; printed poster or free PDF.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/7AM7n.png&quot; alt=&quot;GoF Design Patterns&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-09-28T20:16:21.533" CommentCount="1" />
  <row Id="8020" PostTypeId="1" AcceptedAnswerId="8031" CreationDate="2010-09-28T20:17:43.480" Score="7" ViewCount="237" Body="&lt;p&gt;Console app (my favorite), quick &amp;amp; sloppy form, MS Paint (for GUI); what works best most of the time for your standard application? why?&lt;/p&gt;&#xA;" OwnerUserId="3792" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:53:53.840" LastActivityDate="2011-05-25T22:54:46.457" Title="Which format is best for the first prototype not on paper?" Tags="&lt;development-process&gt;&lt;testing&gt;" AnswerCount="7" FavoriteCount="1" />
  <row Id="8021" PostTypeId="2" ParentId="8008" CreationDate="2010-09-28T20:18:59.017" Score="9" ViewCount="" Body="&lt;p&gt;If it's a new company, then you want to start off by being open and honest with them IMO. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it were me (because I don't know you), I'd tell my current employer something along the lines of:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I received a call from one of the other companies that I had applied for. The position originally appealed to me a great deal. I'm excited to be working here, they're a bit late to the game but I do respect the work that they do and I'd be remiss if I didn't find out what they are offering.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At that point, your employer knows&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You are glad to be employed where you are.&lt;/li&gt;&#xA;&lt;li&gt;They weren't the only people you applied to.&lt;/li&gt;&#xA;&lt;li&gt;A company that you respect is potentially offering you something.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;And then, given your assumption, you have to make a choice: Which company do you want to work for most?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If it's the company you're interviewing with, and they offer more money - then leave.&lt;/li&gt;&#xA;&lt;li&gt;If it's the company you're interviewing with, and they offer less money - then tell them that they will have to match/beat the wage you're making now in order to get you to leave.&lt;/li&gt;&#xA;&lt;li&gt;If it's the company you're with now, and you are offered less money - then decline the position.&lt;/li&gt;&#xA;&lt;li&gt;If it's the company you're with now, and you are offered more money - then tell your current employer that you were given a generous offer, and you would be financially irresponsible not to take the position, but if they can give a better offer than they are currently giving you then you'd prefer to stay. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(better doesn't necessaryily mean beat or match the offer)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's the latter, and they can't do better than they are and you STILL want to stay, you can just say &quot;I've considered both situations, and, although money does matter, so does my life/family/whatever and I'll stay.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-28T20:18:59.017" CommentCount="4" />
  <row Id="8022" PostTypeId="1" AcceptedAnswerId="8032" CreationDate="2010-09-28T20:19:02.103" Score="17" ViewCount="585" Body="&lt;p&gt;As a programmer, I often great difficulty in expressing exactly what I'm trying to do, the specific problem, convey an abstract concept, or otherwise. This happens when talking to technical people (ie, other programmers), or business people (managers, clients, etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&#xA;If I'm sitting down with a client, I'll try and draw free-hand on paper while explaining things simply because if you aren't familliar with the concept you don't know how they fit together, so the concept of &quot;salt&quot; might not make sense that it's part of &quot;cryptography&quot; which is part of &quot;security&quot; and connected to &quot;user groups&quot; and how that connects to the file search platform. Often my drawings are a big scribble that doesn't make any sense. It's worse when I'm on the phone because I can't link things visually with people. On the other hand, when talking to technical people, I may entirely fail at expressing my exact problem in a way that makes sense to someone else, it could be unintentionally vague or overly complicated to the point where the person I'm communicating with has no idea what I'm talking about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you ever had a time where you couldn't convey ideas in such a way that other people can understand them? Have you had any success in changing that? Are there any known processes to improve this? What are some common pitfalls?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;How can I become more articulate with technical concepts?&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="1525" LastEditorUserId="1525" LastEditorDisplayName="" LastEditDate="2010-09-29T23:26:51.597" LastActivityDate="2010-09-29T23:26:51.597" Title="How do I become more articulate?" Tags="&lt;career&gt;&lt;communication&gt;" AnswerCount="10" CommentCount="9" FavoriteCount="6" />
  <row Id="8023" PostTypeId="2" ParentId="7961" CreationDate="2010-09-28T20:20:50.700" Score="9" ViewCount="" Body="&lt;p&gt;Your body will eventually tell you that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use a soft called workrave. It reminds me to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;do a 10 minutes pause every 45 minutes (I use that time to do phone call, take a coffee, walk, discuss with friends, or all together)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;stay on my computer no more than 5h a day&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This literally boosted my productivity.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-28T20:20:50.700" CommentCount="4" />
  <row Id="8024" PostTypeId="2" ParentId="8022" CreationDate="2010-09-28T20:22:37.703" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Practice.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find a relative or a friend and try to explain them something that you would find hard to express, and do this often. You will discover that most people tend to understand things by analogies and examples. &lt;/p&gt;&#xA;" OwnerUserId="3530" LastActivityDate="2010-09-28T20:22:37.703" />
  <row Id="8025" PostTypeId="2" ParentId="8008" CreationDate="2010-09-28T20:22:49.007" Score="0" ViewCount="" Body="&lt;p&gt;You should seriously consider the differences in the environment that you find yourself in.  At a small company you could concievably learn faster in more general things while at a larger company you're going to be learning things in a more specialized manner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, all that said, you've already taken a position with a company even if you haven't signed an agreement with them.  You need to let the 2nd company know your position and when they offer, be prepared to either ask for more (if it's lower.)  Don't play fast, hard and loose here.  You're in no position to negotiate by stretching the truth.  Worse, it could be that the first company becomes so irate (they stopped looking when they &quot;hired you&quot;) that they attempt to discredit your name.  If you lie and it's caught, that doesn't reflect well on you.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-28T20:22:49.007" CommentCount="1" />
  <row Id="8026" PostTypeId="2" ParentId="8022" CreationDate="2010-09-28T20:24:03.427" Score="5" ViewCount="" Body="&lt;p&gt;Read a lot of books from &lt;strong&gt;all genres&lt;/strong&gt;. Honestly. It's not just anecdotal evidence that the best writers and speakers read like it's going out of style.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I would like to additionally stress &lt;strong&gt;all genres&lt;/strong&gt;. Technical, Prose, Fiction, Non-Fiction, Sci-Fi, Fantasy, Romance; you name it. You may not even realize it happening, but your writing and your speaking will improve, drastically.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, when speaking to non-business people I find that metaphors and analogies often help bridge the gap.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-28T20:24:03.427" CommentCount="2" />
  <row Id="8027" PostTypeId="2" ParentId="7705" CreationDate="2010-09-28T20:25:50.710" Score="2" ViewCount="" Body="&lt;p&gt;Some have argued that &lt;a href=&quot;http://dubroy.com/blog/method-length-are-short-methods-actually-worse/&quot; rel=&quot;nofollow&quot;&gt;short functions can be more error-prone than long functions&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Card and Glass (1990) point out that the design complexity really involves two aspects: the complexity within each component and the complexity of the relationships among components.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Personally, I've found that well-commented straight-line code is easier to follow (especially when you weren't the one who originally wrote it) than when it is broken up into multiple functions that are never used elsewhere.  But it really depends on the situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the main take-away is that when you split up a block of code, you are trading one kind of complexity for another.  There is probably a sweet spot somewhere in the middle.&lt;/p&gt;&#xA;" OwnerUserId="3274" LastActivityDate="2010-09-28T20:25:50.710" CommentCount="1" />
  <row Id="8028" PostTypeId="2" ParentId="7959" CreationDate="2010-09-28T20:25:59.057" Score="3" ViewCount="" Body="&lt;p&gt;You are a perfectionist. Perfectionists = huge procrastinators&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a huge procrastinator. But I've found a solution that works pretty well:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Deliver your software early. By small iterations of 4 weeks. Ship it fast.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-28T20:25:59.057" CommentCount="1" />
  <row Id="8029" PostTypeId="2" ParentId="7970" CreationDate="2010-09-28T20:29:38.320" Score="1" ViewCount="" Body="&lt;p&gt;OpenDoc. Only a little investment of time, though, before Apple pulled the plug.&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-09-28T20:29:38.320" CommentCount="1" />
  <row Id="8031" PostTypeId="2" ParentId="8020" CreationDate="2010-09-28T20:32:30.237" Score="10" ViewCount="" Body="&lt;p&gt;Believe it or not, &lt;strong&gt;&lt;a href=&quot;http://blogs.msdn.com/b/jensenh/archive/2006/02/20/535444.aspx&quot; rel=&quot;nofollow&quot;&gt;PowerPoint&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know you may laugh, and I definitely did at first, but there are a lot of great things about PowerPoint that make it a good prototype tool.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Easily Deploy-Able&lt;/strong&gt; - Everyone has PowerPoint almost, so you don't have to worry about unneeded set-up just to get someone to be able to use a prototype.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Easy mock-ups&lt;/strong&gt; - Everyone pretty much knows how to get around in PowerPoint, so it's about as easy as drawing when it comes to creating the UI fast.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Interactivity&lt;/strong&gt; - This is where it gets good.  PowerPoint lets you create links on slides that take you to another specified slide by clicking on an area.  If you use this metaphor for buttons and other links for your proposed UI, you can set a user down in front of a maximized PowerPoint presentation and have them click away as you watch and take notes.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You can get add-on tools like &lt;a href=&quot;http://www.istartedsomething.com/20071018/powerpoint-prototype-toolkit-01/&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; to make it look better.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-28T20:32:30.237" CommentCount="4" />
  <row Id="8032" PostTypeId="2" ParentId="8022" CreationDate="2010-09-28T20:36:37.493" Score="9" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;Read&lt;/em&gt;&lt;/strong&gt; - expecially old classical books (for example, &lt;em&gt;Penguin Classics&lt;/em&gt;, but any will do). Old english (not &lt;em&gt;'old english&lt;/em&gt; but english language with its language constructions and style from let's say, the 18th to the 20th century) was more &quot;poetic&quot; like, and more emphasis was put then on long sentences in verbal communications. One sentence, could express a whole thought, and that is exactly what needs to be practiced in speech. A way to connect your thoughts so that they form a clear, non intermittent statement.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-28T20:36:37.493" CommentCount="3" />
  <row Id="8033" PostTypeId="2" ParentId="8022" CreationDate="2010-09-28T20:47:31.250" Score="5" ViewCount="" Body="&lt;p&gt;It might be partially due to &lt;strong&gt;nerves&lt;/strong&gt; when put on the spot or speaking among other people, especially if you find you're always articulating it better in your mind first. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try out a not-for-profit &lt;strong&gt;public speaking and communication&lt;/strong&gt; organization like Toastmasters Intl &lt;a href=&quot;http://reports.toastmasters.org/findaclub/&quot; rel=&quot;nofollow&quot;&gt;http://reports.toastmasters.org/findaclub/&lt;/a&gt; Clubs are located all over the place. They will help you fix up those skills and gain confidence while having fun doing it.  You will have to &lt;strong&gt;practice&lt;/strong&gt; while attending meetings. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Such has helped me immensely to communicate better at work and in many other circumstances. Vistors are always welcome so contact a local club and tell them you're checking them out soon to decide if there's a fit. Immerse yourself. Enjoy the results. &lt;/p&gt;&#xA;" OwnerUserId="1381" LastEditorUserId="1381" LastEditorDisplayName="" LastEditDate="2010-09-28T20:54:07.637" LastActivityDate="2010-09-28T20:54:07.637" CommentCount="4" />
  <row Id="8034" PostTypeId="1" AcceptedAnswerId="8035" CreationDate="2010-09-28T20:55:23.913" Score="6" ViewCount="119" Body="&lt;p&gt;In an open source project, a number of other open source libraries have been included to implement needed functionality, some as libraries (LGPL), and some as source code (non-LGPL). The new BSD license was selected for the project. The included open source libraries are licensed under the new BSD, MIT, Apache, and LGPL licenses, but no GPL licensed code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How should these other open source libraries be credited?&lt;br&gt;&#xA;Do all the library licenses need to be included in the main project license file?&lt;br&gt;&#xA;Is it sufficient to just provide links to the project web sites in the Help-&gt;About dialog and documentation?&lt;br&gt;&#xA;Is any credit &lt;em&gt;really&lt;/em&gt; needed?&lt;/p&gt;&#xA;" OwnerUserId="3925" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-23T22:32:22.973" LastActivityDate="2010-10-23T22:32:22.973" Title="License requirements for including open source software" Tags="&lt;open-source&gt;&lt;legal&gt;&lt;license&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="8035" PostTypeId="2" ParentId="8034" CreationDate="2010-09-28T21:05:50.383" Score="4" ViewCount="" Body="&lt;p&gt;Each library that you use as a dependency should have a LICENSE file in their source code. I would just take these licenses and rename them to &quot;LIBRARY_NAME_LICENSE&quot; and include it with the source code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know licenses (like the BSD license) require that the original license be included when any source code is reused.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are just using these as linked libraries, I don't believe any of this is needed. But I may be wrong about this one.&lt;/p&gt;&#xA;" OwnerUserId="3102" LastActivityDate="2010-09-28T21:05:50.383" />
  <row Id="8036" PostTypeId="2" ParentId="8022" CreationDate="2010-09-28T21:13:50.063" Score="1" ViewCount="" Body="&lt;p&gt;If you feel you are not prepared to give a good enough explanation, just say you want to think about it. Then get your idea organized.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Listen &amp;amp; Read&#xA;The TED Talks have a time constraint/have to get to the point, you may pick up some tips there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Practice with someone who will give you constructive feedback on your delivery.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Follow-up with people to see if they understood. Sometimes they'll only give you a reponse in private.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-28T21:13:50.063" />
  <row Id="8037" PostTypeId="2" ParentId="7961" CreationDate="2010-09-28T21:22:37.633" Score="1" ViewCount="" Body="&lt;p&gt;Depands on your abilities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They say that Napoleon could speak to seveeral people simulaniously understand exactly every message they bring and deliver accurate orders.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most people find parallel work hard and it harm thier productivity in one way or another.&#xA;You should find the balance that makes your direct and indirect work the most efficient to your team and this is more or less your best... let the other members of the group know this point... &quot;after 4 go to Bill or ask me tommorow unless...&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is all about you, so there is no a magic number.&#xA;Good luck &lt;/p&gt;&#xA;" OwnerUserId="3926" LastEditorUserId="3926" LastEditorDisplayName="" LastEditDate="2010-09-28T21:34:25.900" LastActivityDate="2010-09-28T21:34:25.900" />
  <row Id="8038" PostTypeId="2" ParentId="8022" CreationDate="2010-09-28T21:23:22.093" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blog.coryfoy.com/2010/09/how-to-10-tips-on-presenting-at-conferences/&quot; rel=&quot;nofollow&quot;&gt;Cory Foy recently wrote a blog post&lt;/a&gt; containing some tips about presenting at conferences. A lot of what he says holds true for just communicating ideas in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two particular resources he refers to in this post are very useful for knowing how to communicate ideas. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first one is &lt;a href=&quot;http://blog.coryfoy.com/2006/03/the-dreyfus-model-experiment/&quot; rel=&quot;nofollow&quot;&gt;The Dreyfus Model of Skills Acquisition&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;For those not familiar with the Dreyfus Model, it is a model of skills acquisition that describes how people progress in their knowledge. There are five levels to the model, summarized as:&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;&lt;p&gt;Novice – Needs to be told exactly what to do. Very little context to base decisions off of.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Advanced beginner – Has more context for decisions, but still needs rigid guidelines to follow.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Competent – Begins to question the reasoning behind the tasks, and can see longer term consequences.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Proficient – Still relies on rules, but able to separate what is most important.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Expert – Works mainly on intuition, except in circumstances where problems occur&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;  &#xA;  &lt;p&gt;When we are involved in a discussion, mark on each&#xA;  participants head a number in&#xA;  (imaginary!) magic marker which is the&#xA;  Dreyfus level you think of them at.&#xA;  Also put a (imaginary!) number on your&#xA;  head of your own Dreyfus level. Then,&#xA;  tailor the conversation to that. If&#xA;  you are the lower number one, bring&#xA;  the conversation to your level.&#xA;  Conversely, be sure you aren’t talking&#xA;  over the heads – and needs – of the&#xA;  other participants.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The second is to understand how people absorb information. He refers to &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0978577604&quot; rel=&quot;nofollow&quot;&gt;this book&lt;/a&gt; as a good resource (I agree with him, it's a great book):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/7fqR7.jpg&quot; alt=&quot;Even A Geek Can Speak&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-09-28T21:23:22.093" />
  <row Id="8039" PostTypeId="2" ParentId="8020" CreationDate="2010-09-28T21:26:22.553" Score="10" ViewCount="" Body="&lt;p&gt;For me hands down it is &lt;a href=&quot;http://www.balsamiq.com/builds/mockups-web-demo/?q=demos/mockups/Mockups.html&quot; rel=&quot;nofollow&quot;&gt;Balsamiq&lt;/a&gt; I love it for a number of reasons.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Easy to use&lt;/strong&gt; - The interface for Balsamiq is incredibly simple and fast for me to pull things together.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Looks like a mockup&lt;/strong&gt; - When showing it to clients/customers/vendors it looks like a mockup, so there isn't confusion that &quot;I'm almost done&quot; or something like that.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Looks professional&lt;/strong&gt; - In addition to the previous point, yes, it looks &quot;hand drawn&quot; but still looks professional.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Common UI Controls&lt;/strong&gt; - Are all available, to quickly build out mockups that resemble real apps. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1340" LastActivityDate="2010-09-28T21:26:22.553" CommentCount="5" />
  <row Id="8040" PostTypeId="2" ParentId="7705" CreationDate="2010-09-28T21:27:12.510" Score="1" ViewCount="" Body="&lt;p&gt;I don't like most nested functions. Lambdas fall in that category but usually don't flag me unless they have more than 30-40 characters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The basic reason is that it becomes a highly locally dense function with internal semantic recursion, &lt;em&gt;meaning&lt;/em&gt; that it's hard for me to wrap my brain around, and it's just easier to push some stuff out to a helper function that doesn't clutter the code space.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I consider that a function should Do Its Thing. Doing Other Things is what other functions do. So if you have a 200-line function Doing Its Thing, and it all flows, that's A-OK. &lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-28T21:27:12.510" />
  <row Id="8041" PostTypeId="2" ParentId="8012" CreationDate="2010-09-28T21:33:43.557" Score="3" ViewCount="" Body="&lt;p&gt;I've probably just re-traced your steps, but thought I'd share what I found just in case I haven't&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The publisher web site (Scholastic.com) does not appear to have anything for past editions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All I found on eBay was a reference to &quot;Problem Solving with BASIC&quot;, published in 1983, so it's probably contemporary to the books you are looking for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://cgi.ebay.com/Scholastic-computers-math-Problem-solving-Basic-/260157222217?pt=US_Nonfiction_Book&amp;amp;hash=item3c92942d49#ht_484wt_1128&quot; rel=&quot;nofollow&quot;&gt;http://cgi.ebay.com/Scholastic-computers-math-Problem-solving-Basic-/260157222217?pt=US_Nonfiction_Book&amp;amp;hash=item3c92942d49#ht_484wt_1128&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There is also a link here: &lt;a href=&quot;http://openlibrary.org/works/OL4311858W/Problem_solving_with_BASIC&quot; rel=&quot;nofollow&quot;&gt;http://openlibrary.org/works/OL4311858W/Problem_solving_with_BASIC&lt;/a&gt; . That same site holds some links to some promising leads for Scholastic books (http://openlibrary.org/search?q=basic&amp;amp;publisher_facet=Scholastic), including ISBN numbers:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://openlibrary.org/works/OL3987154W/Learn_BASIC_on_the_Apple_IIe&quot; rel=&quot;nofollow&quot;&gt;http://openlibrary.org/works/OL3987154W/Learn_BASIC_on_the_Apple_IIe&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://openlibrary.org/works/OL3987155W/Learn_BASIC_on_the_Commodore_64&quot; rel=&quot;nofollow&quot;&gt;http://openlibrary.org/works/OL3987155W/Learn_BASIC_on_the_Commodore_64&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://openlibrary.org/works/OL9469312W/Scholastic_computers_math&quot; rel=&quot;nofollow&quot;&gt;http://openlibrary.org/works/OL9469312W/Scholastic_computers_math&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This might be enough to get you going enough to get ahold of some used bookstores and trace back the ISBNs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-09-28T21:33:43.557" />
  <row Id="8042" PostTypeId="2" ParentId="7705" CreationDate="2010-09-28T21:38:25.240" Score="8" ViewCount="" Body="&lt;p&gt;Ideally, the entire function should be viewable without having to scroll. Sometimes, this isn't possible. But if you can break it up into pieces then it will make reading the code a lot easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that as soon as I push Page Up/Down or move to a different section of the code, I can only remember 7 +/- 2 things from the previous page. And unfortunately, some of those locations are going to be used when reading the new code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always like to think about my short-term memory like a computer's registers (CISC, not RISC). If you have the entire function on the same page, you can go to cache to get the required information from another section of the program. If the entire function cannot fit on a page, that would be the equivalent of always pushing any memory to disk after every operation.&lt;/p&gt;&#xA;" OwnerUserId="3102" LastActivityDate="2010-09-28T21:38:25.240" CommentCount="2" />
  <row Id="8043" PostTypeId="2" ParentId="8022" CreationDate="2010-09-28T22:00:26.800" Score="1" ViewCount="" Body="&lt;p&gt;It's possible that you would do better if you could speak to a diagram of some kind. I mean try explaining C++ pointers with and without a piece of paper! If you can, draw out an explanation of the point you're trying to make - on a sheet of paper one on one, at the whiteboard in a meeting. Those props are there for a reason!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over time you may be able to get people to see your diagram just by waving your arms, pointing to the same imaginary spot, or even looking at a particular person, but to start with props always help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If for some reason the diagram would be completely unthinkable, then rehearse for the talk with the diagram until you make good and clear points, then try without it. I don't mean memorize your speech, but practice talking about things you regularly are called on to talk about. It is also not wrong to have a tiny cheat sheet of the three points you need to remember to make (eg time, budget, features) so you don't wander around as you talk.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-09-28T22:00:26.800" />
  <row Id="8044" PostTypeId="2" ParentId="7779" CreationDate="2010-09-28T22:01:26.700" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/1745/whats-the-most-absurd-myth-about-programming-issues/5164#5164&quot;&gt;This answer is very relevant.&lt;/a&gt; What i find is a lot of companies have HR people who throw out your application seeing no education listed or no degree and i had one HR rep (who i believe was a programmer as i met him days before) said he respects my skill but is not allowed to hire me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have met four self taught programmers. The first was 30 and was REALLY REALLY good. Apparently he used to write assembly code for banks back in the day. He has no problem AFAIK. The second gets contracts but told me to get my degree so its easier to start and occasionally he has problems with companies that want contractors to have a degree no matter what credentials (past jobs) he has. He was very good as well, the 3rd i havent seen his code but he did beat me out at an annual competition and has gotten first on more then one occasion (the second time he placed first ppl suspected he cheated but i dont think he did since he got first the year before with a simpler game). Finally the 4th was just bad. I guess i had to meet a bad programmer some day and i have no idea how long he as been self taught but really the good self taught programmers i know tend to be better then the others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd ignore and not mention the self taught part. At my previous jobs no one had a problem with it once seeing some code i have done. Even if you do happen to have a hole in some part of CS its easier to learn that then learning how to program and practical problem solving as i hear some students complain about (that they don't teach C++ and there's too  much theory and they have no idea how to program a game for their amusement)&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-28T22:01:26.700" />
  <row Id="8045" PostTypeId="1" AcceptedAnswerId="8126" CreationDate="2010-09-28T22:10:00.710" Score="10" ViewCount="234" Body="&lt;p&gt;How do you improve your ability to design your applications? Where do you get your design ideas from? (I am asking about code design - not about a specific language and not about visual appeal).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I started programming, I found Design Patterns to be very helpful. These days I mainly poke around open source projects to see what other people did whenever I need to solve similar problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you do?&lt;/p&gt;&#xA;" OwnerUserId="3624" LastActivityDate="2010-11-26T10:57:47.083" Title="Learning about design" Tags="&lt;design&gt;&lt;design-patterns&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="5" />
  <row Id="8046" PostTypeId="2" ParentId="880" CreationDate="2010-09-28T22:13:31.493" Score="0" ViewCount="" Body="&lt;p&gt;Two (or more) CPUs (so one app locking up wont slow EVERYTHING down)&#xA;4gb. 1 for a VM, another for windows 7 (+ firefox), 1gb for several instance of visual studios (i typically have 3 open) and another gb for another VM (seting the VM to use 512mb ram) or extra instance or a major app in the background i dont typically use&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ability to have a 2nd monitor (i use a laptop so i dont usually have a 2nd monitor but i can)&#xA;preferably HIGH resolution (1366x768 saddens me)&#xA;enough HD space for songs, git or large svn repositories, VM images (luckely most linux distros are &amp;lt;4gb after installing the features you want), etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;bonus if your HD is fast but coding with C# i havent found compile time an issue.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-09-28T22:13:31.493" CommunityOwnedDate="2011-02-06T19:45:08.167" />
  <row Id="8047" PostTypeId="2" ParentId="8045" CreationDate="2010-09-28T22:14:09.097" Score="1" ViewCount="" Body="&lt;p&gt;Read questions and answers on stackoverflow. and very import: the comments&lt;/p&gt;&#xA;" OwnerUserId="2353" LastEditorUserId="2353" LastEditorDisplayName="" LastEditDate="2010-09-28T22:28:45.593" LastActivityDate="2010-09-28T22:28:45.593" CommentCount="1" />
  <row Id="8048" PostTypeId="2" ParentId="8045" CreationDate="2010-09-28T22:17:59.993" Score="1" ViewCount="" Body="&lt;p&gt;I read books/blogs/articles about specific architecture models and then try them out. I build a small app (usually something I've made before) to see if it is any easier or better than what I've done in the past. If it will potentially help any professional projects I'm on then I'll pitch the idea to my peers to see if they agree.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-28T22:17:59.993" CommentCount="2" />
  <row Id="8049" PostTypeId="2" ParentId="35" CreationDate="2010-09-28T22:19:30.303" Score="10" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Sherlock Holmes and Dr. Watson went on a hot air balloon ride. A storm took the balloon above the clouds, and after a few days brought it down close to the ground. Below a man was herding sheep.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;Where are we?&quot; - Dr. Watson cried to him.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The man looked at them and replied, &quot;You are in a hot air balloon.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The wind once again picked up and pulled the balloon beyond clouds.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;What do you think that man's profession is?&quot; asked Holmes.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;Why, he's a shepherd,&quot; answered Watson.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;No, he is a computer programmer.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;Why do you think so?&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;Elementary, my dear Watson. His answer was technically correct, but absolutely useless. So, Where do you think we are now?&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;I have no idea--he didn't say, did he?&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;We are in the Soviet Union.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;Why?&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;A computer programmer is herding sheep.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Source: &lt;a href=&quot;http://www.deadprogrammer.com/technically-correct&quot; rel=&quot;nofollow&quot;&gt;http://www.deadprogrammer.com/technically-correct&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I read this yesterday and I love it. (I came across it looking for the phrase &quot;technically correct, the best kind of correct.&quot;) There is another joke on the page which I won't spoil, so go read it!&lt;/p&gt;&#xA;" OwnerUserId="2515" LastActivityDate="2010-09-28T22:19:30.303" CommunityOwnedDate="2010-09-28T22:19:30.303" />
  <row Id="8050" PostTypeId="2" ParentId="7961" CreationDate="2010-09-28T22:24:00.533" Score="0" ViewCount="" Body="&lt;p&gt;Depends on what I'm doing. If I have lots of small tasks that involve many people, I find that interruptions actually help me because I juggle many tasks better than I work on them sequentially (it keeps me from procrastinating). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I work on something that actually requires &lt;strong&gt;thinking&lt;/strong&gt; I can't be bothered with idle talks, and usually I prefer to leave the office and go for a walk or take a ride, taking my notebook with me (Or go to the toilet. I get the best ideas in the toilet).&lt;/p&gt;&#xA;" OwnerUserId="3624" LastActivityDate="2010-09-28T22:24:00.533" />
  <row Id="8051" PostTypeId="2" ParentId="7141" CreationDate="2010-09-28T22:37:32.300" Score="0" ViewCount="" Body="&lt;p&gt;While you can do pretty much everything in VB.net that you can do in C# (and then some), please be aware that VB.NET + ASP.NET MVC + SQL skirts around any C-like-syntax language, of which there are many - C, C++, C#, Java, JavaScript, ActionScript, ECMAScript, etc. I feel strongly that some commercial experience in a C-like-syntax language would flex your language abilities and allow you to see the strengths/weaknesses/differences between the languages and the frameworks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On top of this, working with a Scripting language would teach you a huge amount: compiled vs interpreted, dynamic/duck typing, etc. JavaScript is en-vogue due to AJAX/Web2.0, but Python is also extremely popular.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure that a C or C++ are essential skills for a programmer nowadays, but it really wouldn't hurt your skills base to investigate them in your learning time.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-09-28T22:37:32.300" />
  <row Id="8052" PostTypeId="2" ParentId="880" CreationDate="2010-09-28T22:41:27.040" Score="2" ViewCount="" Body="&lt;p&gt;Have you simply tried to program on an old 386 with 16mb of RAM?  I know it sounds very anti-popular, but you can get a really good feel for good programming trying to do things a simple way just by being on an old computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/ReWJR.jpg&quot; alt=&quot;http://www.old-computers.com/museum/photos/ibm_ps1_1s.jpg&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do most website programming on a 64MB Pentium into which I &lt;code&gt;ssh&lt;/code&gt; under which I also run MySQL and Apache where I can get a really good understanding of the app hotspots.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-09-28T22:41:27.040" CommunityOwnedDate="2011-02-06T19:45:08.167" CommentCount="3" />
  <row Id="8053" PostTypeId="2" ParentId="6067" CreationDate="2010-09-28T22:42:26.980" Score="4" ViewCount="" Body="&lt;p&gt;Io (iolanguage.com)&lt;/p&gt;&#xA;" LastActivityDate="2010-09-28T22:42:26.980" CommunityOwnedDate="2010-09-28T22:42:26.980" CommentCount="1" />
  <row Id="8054" PostTypeId="2" ParentId="8022" CreationDate="2010-09-28T22:48:45.073" Score="1" ViewCount="" Body="&lt;p&gt;Along with all of these other great suggestions, you should probably look into joining the &lt;a href=&quot;http://www.toastmasters.org/&quot; rel=&quot;nofollow&quot;&gt;Toastmasters&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-09-28T22:48:45.073" CommentCount="2" />
  <row Id="8055" PostTypeId="1" AcceptedAnswerId="8059" CreationDate="2010-09-28T22:49:43.093" Score="19" ViewCount="699" Body="&lt;p&gt;If I would start to focus on the .NET platform and be self-employed, then I probably would like to have some Windows 7, Windows Server 2008, Visual Studio 2010 licenses just for the development environment and for testing, and then a few licenses for the production environment (a Windows Server 2008 Web) and added to that upgrades when new versions is available. This will end up in a quite big amount of money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any kind of volume discount that I can get from Microsoft in such a case? And what is the requirement to be able to get that discount?&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-23T22:31:38.483" LastActivityDate="2011-01-25T00:03:45.830" Title="Can a developer get volume discount for Microsoft products?" Tags="&lt;software-developer&gt;&lt;license&gt;&lt;microsoft&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="2" />
  <row Id="8056" PostTypeId="2" ParentId="7927" CreationDate="2010-09-28T22:51:21.407" Score="4" ViewCount="" Body="&lt;p&gt;I've developed a fairly functional style of programming, despite my primary languages being C++ and Python.  I found that if I pass all of the context to a function (or method) that that function needs to do its job, and return the meaningful data that I'm looking for, that my code has become much more robust.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Implicit state is the enemy and in my experience is the #1 source of bugs.  This state can be global variables or member variables, but if results are dependent on something that's not passed to the function you're asking for trouble.  Clearly it is not feasible to eliminate state, but minimizing it has huge positive effects on program reliability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also like to tell my coworkers that every branch (if, for, while, ?:) is a likely bug.  I can't say what the manifestation of the bug will be, but the less conditional behavior your code has, the more likely it is to be bug free simply due to the fact that the code coverage during execution will be more consistent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go figure, all of these things also have positive effects on performance too.  Win!&lt;/p&gt;&#xA;" OwnerUserId="2129" LastActivityDate="2010-09-28T22:51:21.407" />
  <row Id="8057" PostTypeId="2" ParentId="8055" CreationDate="2010-09-28T22:53:47.750" Score="5" ViewCount="" Body="&lt;p&gt;You should look into getting an &lt;a href=&quot;http://msdn.microsoft.com/en-us/subscriptions/aa718661.aspx&quot; rel=&quot;nofollow&quot;&gt;MSDN subscription&lt;/a&gt;. The &quot;free&quot; software you get can/will pay for itself pretty quickly.  &lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-09-28T22:53:47.750" />
  <row Id="8058" PostTypeId="2" ParentId="7826" CreationDate="2010-09-28T22:55:01.073" Score="3" ViewCount="" Body="&lt;p&gt;I had to post this answer because others are trying to scare you away from the GPL. Your fears are legitimate but you have to also think how your audience is going to think in different situations and prepare a plan accordingly. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you choose the MIT license, commercial companies will use your library in their commercial project and make money off of your hard work without needing to pay you anything and without releasing their full source code or their modifications and improvements to your code. You get nothing. If you're fine with that, by all means go for it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What others are not mentioning is that commercial companies can use your GPL project on their own terms, as long as they agree to pay you a fee. If they pay a fee, you waive the GPL requirement for them and your code becomes just like any other proprietary software or other product they need to expense, with the benefit of seeing and using the source before committing to it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they're willing to pay $200 for a desk and $2000 for a fancy couch in the lobby and $200 for pizza party for their clients, why can't they pay X$ for a software that took you (a software engineer, not a baker or carpenter) weeks or months to architect and write and debug (and will take you even more time to maintain). Software engineering is not an easy job you know, you're not baking bread or shaping wood, you're constantly thinking and squeezing your brain cells to write efficient code you know. If they're not convinced, they can just write their own code and see how much time and money it costs them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I say use GPL license and explain you're willing to waive it for commercial companies in exchange for a fee. &lt;/p&gt;&#xA;" OwnerUserId="3388" LastActivityDate="2010-09-28T22:55:01.073" CommentCount="3" />
  <row Id="8059" PostTypeId="2" ParentId="8055" CreationDate="2010-09-28T22:55:43.877" Score="21" ViewCount="" Body="&lt;p&gt;How about a 100% discount? If you are making software you intend to sell, &lt;a href=&quot;http://www.bizspark.com&quot; rel=&quot;nofollow&quot;&gt;you qualify for BizSpark&lt;/a&gt;, which gives all your developers MSDN subscriptions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you intend instead to offer your services, you don't qualify for BizSpark, but you still don't need to buy separate licenses for dev, staging etc. You can get an MSDN subscription, which covers one developer across any number of machines other than production. You don't install dev tools on production, and your clients are responsible for the Windows, SQL etc licenses they need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is generally useful to join the partner program. The Registered level is free and lets you buy an MSDN subscription at a dramatically reduced price, 80-90% off or so. The program names vary over time - Empower, Action Pack, etc so you would need to check the partner program to be sure what they are and what they cost at the moment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, back to the free angle, don't rule out Visual Studio Express, SQL Express etc - absolutely no cost ever and almost all the features of the full products.&lt;/p&gt;&#xA;" OwnerUserId="285" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-28T22:59:58.057" LastActivityDate="2010-09-28T22:59:58.057" CommentCount="3" />
  <row Id="8060" PostTypeId="2" ParentId="7951" CreationDate="2010-09-28T22:57:35.993" Score="3" ViewCount="" Body="&lt;p&gt;These would be my baseline recommendations for topics to cover, not necessarily in-depth, but at least a general understanding:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(in no particular order)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;A compiled language - C#, Java, C, or if you're brave, C++. Understand about source code gets compiled into something else and then run by the runtime.&lt;/li&gt;&#xA;&lt;li&gt;A scripted language - JavaScript, Python. Know the differences to (1) and the strengths in terms of dynamic typing and rapid development.&lt;/li&gt;&#xA;&lt;li&gt;HTML + CSS. Whether for documentation or test harnesses, you'll use it somewhere.&lt;/li&gt;&#xA;&lt;li&gt;SQL. Data lives in databases. They all have their own flavours, but a basic understanding of SQL helps a lot.&lt;/li&gt;&#xA;&lt;li&gt;Version Control. Pick any system - Subversion, Git, Mercurial, CVS - it doesn't matter which, just understand about the check out, modify, build, merge, review, build, commit workflow.&lt;/li&gt;&#xA;&lt;li&gt;Testing - whether unit testing, automated or manual. &lt;/li&gt;&#xA;&lt;li&gt;Security. Software systems get attacked - &lt;a href=&quot;http://www.bbc.co.uk/news/world-middle-east-11414483&quot; rel=&quot;nofollow&quot;&gt;even the un-sexy ones&lt;/a&gt; - and users' information is becoming worth more than their bank details.&lt;/li&gt;&#xA;&lt;li&gt;Algorithms - understand Big O notation and that choice of good algorithm matters much more than micro-optimisation.&lt;/li&gt;&#xA;&lt;li&gt;Design Patterns - no point in re-inventing the wheel.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Software_development_process&quot; rel=&quot;nofollow&quot;&gt;The Software Development Lifecycle&lt;/a&gt;. Doesn't matter which methodology you prefer, but go find out what they are.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;and when you've got the first job:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;11.. How your employer measures success. All of the above are moot if your employer has their own unique systems which you have to use. Find out how to be successful in your employers' eyes first and then introduce the items you've learned along the way.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-09-28T22:57:35.993" CommentCount="2" />
  <row Id="8062" PostTypeId="2" ParentId="7927" CreationDate="2010-09-28T23:05:39.603" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Write less code that does more.&lt;/li&gt;&#xA;&lt;li&gt;Think about the low-level implications and the high-level ramifications&lt;/li&gt;&#xA;&lt;li&gt;Contemplate the abstraction you are creating in your code.&lt;/li&gt;&#xA;&lt;li&gt;Write only the essential complexity if possible.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-28T23:05:39.603" CommentCount="3" />
  <row Id="8063" PostTypeId="2" ParentId="39" CreationDate="2010-09-28T23:09:52.657" Score="17" ViewCount="" Body="&lt;p&gt;My old answer from SO:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If the code and the comments disagree, then both are probably wrong.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Another good website: &lt;a href=&quot;http://www.sysprog.net/programming-quotes/&quot; rel=&quot;nofollow&quot;&gt;&quot;Quotes about Tech Writing&quot;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3949" LastActivityDate="2010-09-28T23:09:52.657" CommunityOwnedDate="2010-09-28T23:09:52.657" CommentCount="1" />
  <row Id="8064" PostTypeId="2" ParentId="6067" CreationDate="2010-09-28T23:11:43.377" Score="6" ViewCount="" Body="&lt;h2&gt;Lisp&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Just waiting for after next exam.&#xA;Especially &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1593272812&quot; rel=&quot;nofollow&quot;&gt;this book&lt;/a&gt; is inspiring me. It is still not published - at least in Germany.&#xA;Does anyone know the author?&lt;/p&gt;&#xA;" OwnerUserId="647" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-29T15:18:24.660" LastActivityDate="2010-09-29T15:18:24.660" CommunityOwnedDate="2010-09-28T23:11:43.377" />
  <row Id="8065" PostTypeId="2" ParentId="7961" CreationDate="2010-09-28T23:15:55.570" Score="0" ViewCount="" Body="&lt;p&gt;Interruptions are a normal part of daily life and you will need to learn to handle it at some point in time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm going to take a guess that you're asking because you're on the receiving end of multiple interruptions. If this is causing your work (or mental state!) to suffer, then you need to get a grip on the causes of the interruptions and whether the interrupters know how much disruption they're causing you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are several strategies to dealing with interruptions when you really need to knuckle down and get some work done:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Put some headphones on. This will deter the casual interrupter who may be able to ask the person next to you instead.&lt;/li&gt;&#xA;&lt;li&gt;Ask them if it's urgent, as you're in the middle of something right now. If they say it is, fine. If it isn't, you can get back to them later. If they say it is and it isn't, you can call them out  for wasting your time.&lt;/li&gt;&#xA;&lt;li&gt;If you've got a persistent interrupter, give them the feedback directly (calmly, professionally) that their interruptions are causing you to get behind with your work. You'd love to help, but you've got deadlines to meet and they're not helping.&lt;/li&gt;&#xA;&lt;li&gt;If the interruption means you have to re-prioritize your work, ensure that the interrupters' priorities are heading towards the teams/projects' goals. Your team/project manager can help keep away people who are trying to poach you. By all means, lead the interrupter by the hand to your team/project manager so that they can explain to them why you should be interrupted.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-09-28T23:15:55.570" />
  <row Id="8066" PostTypeId="2" ParentId="8022" CreationDate="2010-09-28T23:27:28.853" Score="0" ViewCount="" Body="&lt;p&gt;Not everybody responds well to spoken communication - whether you as the speaker, or the audience as listeners.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your situation, I have previously sought out a whiteboard + pens and then drawn up a quick diagram to help visualise the issue I am having trouble describing. I often find that as I am busy drawing it, 'the audience' are already describing it for me and I don't need to finish the diagram - we're all on the same page at that point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For further interesting, but might not be all that scientific, reading, Google for 'Representational Systems'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are also issues of confidence (nervous in front of others, self-doubt over subject matter), environment (too noisy, deathly silent) and your audience (office politics, attraction to other team members).&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-09-28T23:27:28.853" />
  <row Id="8067" PostTypeId="2" ParentId="7861" CreationDate="2010-09-28T23:33:57.497" Score="12" ViewCount="" Body="&lt;p&gt;Mailbox size. Storage is &lt;em&gt;cheap&lt;/em&gt;. If you make your employees waste any moment of time clearing out their mailboxes, you've got the wrong priorities. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My previous job had a 100MB limit on personal email accounts and the primary mode of documentation was 10MB+ Powerpoint decks. Given the salary of my then manager, I estimate that she wasted &lt;em&gt;at a minimum&lt;/em&gt; of $30k/year of company time organizing her email. Perhaps I was overly stubborn, but it became my personal goal to convince the powers that be that our email policy was easily costing the company on the order of $1mil+ of lost productivity per year.&lt;/p&gt;&#xA;" OwnerUserId="3956" LastActivityDate="2010-09-28T23:33:57.497" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="5" />
  <row Id="8068" PostTypeId="2" ParentId="8055" CreationDate="2010-09-28T23:42:13.717" Score="5" ViewCount="" Body="&lt;p&gt;There's also an &lt;a href=&quot;https://partner.microsoft.com/40016455&quot; rel=&quot;nofollow&quot;&gt;Action Pack&lt;/a&gt; Subscription in addition to the MSDN subscription and BizSpark program.  &lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-28T23:42:13.717" />
  <row Id="8069" PostTypeId="2" ParentId="7966" CreationDate="2010-09-29T00:04:38.500" Score="8" ViewCount="" Body="&lt;p&gt;In my experience, it's been a combination of the following:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Measures by results/output, rather than input.&lt;/li&gt;&#xA;&lt;li&gt;Motivating, inspirational leader that you can respect and look up to.&lt;/li&gt;&#xA;&lt;li&gt;Sensitive to team members' needs - support/training/career, etc.&lt;/li&gt;&#xA;&lt;li&gt;Quickly resolves conflict, diffuses difficult situations.&lt;/li&gt;&#xA;&lt;li&gt;Understands your job - they may be able to actually do your job, but hired you to do that.&lt;/li&gt;&#xA;&lt;li&gt;Handles/filters-out the stuff thats' not important or impairs the teams' productivity.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-09-29T00:04:38.500" CommunityOwnedDate="2011-01-26T19:57:30.693" />
  <row Id="8070" PostTypeId="2" ParentId="7988" CreationDate="2010-09-29T00:07:45.887" Score="0" ViewCount="" Body="&lt;p&gt;C:&gt;for /L %i in (1,1,50) DO ECHO &quot;I will pay more attention in my lessons from now on&quot; &gt; LPT1:&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-09-29T00:07:45.887" />
  <row Id="8071" PostTypeId="1" CreationDate="2010-09-29T00:08:16.260" Score="8" ViewCount="461" Body="&lt;p&gt;When you know things are bad, but you need to objectively determine &lt;em&gt;how&lt;/em&gt; bad, and how much of this badness is unfixable, what do you do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;Of course there's the &quot;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;Joel Test&lt;/a&gt;&quot; - a list of a dozen items that &lt;a href=&quot;http://www.joelonsoftware.com&quot; rel=&quot;nofollow&quot;&gt;Joel Spolsky&lt;/a&gt; thinks are critical to a good workplace - and there are some variations claiming to bring it &lt;a href=&quot;http://geekswithblogs.net/btudor/archive/2009/06/16/132842.aspx&quot; rel=&quot;nofollow&quot;&gt;up to date&lt;/a&gt; and &lt;a href=&quot;http://www.brandonsavage.net/adapting-the-joel-test-to-web-development/&quot; rel=&quot;nofollow&quot;&gt;adjusted to web development&lt;/a&gt; practises.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whatever you &lt;a href=&quot;http://programmers.stackexchange.com/questions/2776/what-do-you-think-about-the-joel-test&quot;&gt;think about the Joel Test&lt;/a&gt; and its adaptations, the questions in those tests relate mostly to &lt;em&gt;fixable&lt;/em&gt; problems - good developers can push for source control, single step builds, continuous integration, change management, better tools, and so on - this question is ignoring those parts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, this question is less focused on &lt;a href=&quot;http://programmers.stackexchange.com/questions/4765/when-do-you-know-its-time-to-move-on-from-your-current-job&quot;&gt;knowing when it's time to move on&lt;/a&gt;, since those are changable and subjective aspects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what the question &lt;em&gt;is&lt;/em&gt; asking: what are the &lt;strong&gt;fundamental things that cannot easily be changed&lt;/strong&gt;, which are signs that you need to move on from (or avoid joining) a company?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;One example does come from the Joel Test: quiet working conditions - if you've just had an office refurb/shuffle, and the development team is now in the middle of a noisy open plan office with no quiet places to escape to - that's clearly something that isn't about to get better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another example: you've got a 4MB broadband connection shared with the whole building - even though critical business systems and databases are located at a remote data-centre - and requests for better speeds and/or a developer-only connection are simply ignored.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What other things might indicate that pushing for a better development practises is just a waste of time, because there's always going to be certain things that wont get better?&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-09-30T14:38:19.817" Title="What are the signs that your workplace is bad, and wont get any better?" Tags="&lt;jobs&gt;&lt;best-practices&gt;&lt;work-environment&gt;" AnswerCount="9" CommentCount="2" FavoriteCount="2" />
  <row Id="8072" PostTypeId="2" ParentId="7966" CreationDate="2010-09-29T00:09:36.353" Score="5" ViewCount="" Body="&lt;p&gt;no yelling please...just don't. (no matter how stressed you are about the big deadline, stupid testers, etc.)&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-09-29T00:09:36.353" CommunityOwnedDate="2011-01-26T19:57:30.693" CommentCount="1" />
  <row Id="8073" PostTypeId="2" ParentId="8071" CreationDate="2010-09-29T00:14:46.060" Score="3" ViewCount="" Body="&lt;p&gt;not having the right tools. If you're a .net programmer who is still working on Visual Studio 2005, to me that seems like a close-fisted attitude that probably won't change. (Q: &quot;the tools worked just fine just a couple years ago; did they change?! A: &quot;no...thats the problem...&quot;)&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-09-29T00:14:46.060" CommentCount="7" />
  <row Id="8074" PostTypeId="2" ParentId="7988" CreationDate="2010-09-29T00:20:43.023" Score="0" ViewCount="" Body="&lt;p&gt;We had ti-83 calculators in high school physics. Teacher was really cool and said, &quot;use your calculator for whatever you want&quot;. I asked if i could use the assembly like programming functions built in and he had no problem with it since he figured no one would actually do it. I wrote programs to take inputs for all of the standard questions on the tests before hand. I walked out of every test within 5 minutes and got a perfect 100 in the class.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-09-29T00:20:43.023" CommentCount="2" />
  <row Id="8075" PostTypeId="2" ParentId="6067" CreationDate="2010-09-29T00:29:06.063" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Scratch&lt;/strong&gt;- not technically a &quot;serious&quot; language, but the way we program is stuck in 40 year old technology and i think the idea of a visual programming language is pretty interesting. Dont think that im saying that visual designers will take over and anyone will be able to program, scratch isnt like that. it has iteration and everything else the basic shell of a language needs (even OOP with the build your own blocks extension).&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-09-29T00:29:06.063" CommunityOwnedDate="2010-09-29T00:29:06.063" CommentCount="2" />
  <row Id="8076" PostTypeId="1" AcceptedAnswerId="8097" CreationDate="2010-09-29T00:29:16.233" Score="9" ViewCount="445" Body="&lt;p&gt;What is the worst example you've seen of someone using a language as if it was a different language or even a different paradigm. For example writing purely functional code in an object oriented language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Was this caused by an unwillingness to learn the language or a failure to change to thinking in the language? What can be learned from your example?&lt;/p&gt;&#xA;" OwnerUserId="3964" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:09:30.817" LastActivityDate="2010-12-19T09:29:08.533" CommunityOwnedDate="2010-10-03T02:28:58.733" Title="Language Contamination" Tags="&lt;programming-languages&gt;" AnswerCount="11" CommentCount="1" />
  <row Id="8077" PostTypeId="2" ParentId="7927" CreationDate="2010-09-29T00:35:20.367" Score="2" ViewCount="" Body="&lt;p&gt;Code inspection or other forms of peer review such as pair programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Structured code reviews such as Fagan inspection &lt;a href=&quot;http://www.methodsandtools.com/archive/archive.php?id=29&quot; rel=&quot;nofollow&quot;&gt;can be at least as effective and efficient&lt;/a&gt; as unit testing and has even proved to be better than unit testing in some cases.  Inspections can also be used earlier in the software lifecycle and with artifacts other than code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201734850&quot; rel=&quot;nofollow&quot;&gt;Peer Reviews in Software by Karl Wiegers&lt;/a&gt; is a great book on this subject.&lt;/p&gt;&#xA;" OwnerUserId="3966" LastActivityDate="2010-09-29T00:35:20.367" />
  <row Id="8078" PostTypeId="1" AcceptedAnswerId="8084" CreationDate="2010-09-29T00:47:13.407" Score="3" ViewCount="363" Body="&lt;ol&gt;&#xA;&lt;li&gt;I &lt;strong&gt;need&lt;/strong&gt; a job.&lt;/li&gt;&#xA;&lt;li&gt;I &lt;strong&gt;want&lt;/strong&gt; a development job.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I have recently changed my major from Mechanical Engineering to Computer Science.  I did not enjoy the M.E. curriculum well enough to suffer another 1.5 yrs to the completion of that degree, so I chose what I had taken up as a &quot;hobby&quot; for my new major.  However, I did complete my math sequence (Calculus I-III and Intro to Differential Equations) before deciding to switch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have only had one class in C (chose that over FORTRAN during my M.E. path) and one class in JAVA.  However, I did well in both of those (B/A).  As far as what I have &quot;taught myself&quot;, I would give myself a B- and equate my experience to that of most 300 level classes at university.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My English writing skills have been noted to be &quot;above average&quot; and my ability to synthesize data into sets and formal structures is hindered only by my underexposure to formal logic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently, my strongest desire has been to strengthen that part of my knowledge base and to gain a better understanding of algorithms. I am currently working my way through &lt;a href=&quot;http://www.brpreiss.com/books/opus6/&quot; rel=&quot;nofollow&quot;&gt;Data Structures and Algorithms with Object-Oriented Design Patterns in C#  - Bruno R. Preiss&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, I am married and we are struggling financially.  So much so that I was unable to attend classes this semester and the success of my wife in her courses may be in jeopardy if I am unable to find work soon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I am asking the faceless mass of knowledge that I have come to trust (from StackOverflow.com) - &lt;strong&gt;What would you do if you were in my shoes?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;More explicitly&lt;/em&gt;, how would you go about getting a development job (in the absence of a degree) in such a way that I will be taken seriously and given a chance to earn my stripes???&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FWIW, I do intend to formalize my Computer Science education at some point in the future - but I must obtain some form of employment (preferably coding - b/c I love it!) in order for that to happen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have shined my shoes, ironed my clothes, cut my hair/nails and washed my car...  Now I really would like to code...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What say you???&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TIA&lt;/p&gt;&#xA;&#xA;&lt;p&gt;E&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Oh yeah,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A small list of skills:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;C (solid understanding)&lt;/li&gt;&#xA;&lt;li&gt;C++ (can link and compile modest examples - no personal examples on hand)&lt;/li&gt;&#xA;&lt;li&gt;C# (solid understanding - many personal examples on hand - some quite elaborate)&lt;/li&gt;&#xA;&lt;li&gt;JAVA (See C# ;-) )&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;VBA (quite experienced with EXCEL, haven't had that much need for others, but I believe it is the same)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;MS SQL - (Modest ability - Not up to date on all benefits over other SQL servers)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;MySQL (solid understanding - well beyond 'SELECT * FROM all')&lt;/li&gt;&#xA;&lt;li&gt;SQLite (solid understanding - frequent use in my personal projects)&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;PostgreSQL/Firebird (Decent ability - you guys know there's nominal differences here...)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Can setup my own subversion server (and use one myself)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;Can setup a Linux web server (&amp;lt;- Fedora Core fanboy)&lt;/li&gt;&#xA;&lt;li&gt;Can set up MS Server 2003/2008 and administrate IIS - even multihosting)&lt;/li&gt;&#xA;&lt;li&gt;So much more... Kind of a jack of all trades thing going on here (I think you get the picture)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3959" LastEditorUserId="3959" LastEditorDisplayName="" LastEditDate="2010-09-29T00:52:29.370" LastActivityDate="2010-11-05T03:30:54.853" Title="'Need' Versus 'Want'. What would you do in my situation?" Tags="&lt;career&gt;&lt;work&gt;&lt;career-advice&gt;&lt;advice&gt;" AnswerCount="9" CommentCount="3" />
  <row Id="8079" PostTypeId="2" ParentId="7861" CreationDate="2010-09-29T00:53:58.623" Score="8" ViewCount="" Body="&lt;p&gt;If the first interview is with an HR rep who knows nothing about the job. Way too bureaucratic for me.&lt;/p&gt;&#xA;" OwnerUserId="2279" LastActivityDate="2010-09-29T00:53:58.623" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="5" />
  <row Id="8080" PostTypeId="2" ParentId="8071" CreationDate="2010-09-29T01:02:32.030" Score="12" ViewCount="" Body="&lt;p&gt;Don't get me started =(&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;They look for the cheapest developers when hiring.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They believe that an architect should not 'waste' his work getting his hands dirty with code.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They believe that the work of the architect ends at the start of the project with the architecture document.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;There is no development infrastructure other than programmer's computers (no build server, no integration server, no central repository)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They think that they can sell as a product a system that was developed for one client following &lt;em&gt;their&lt;/em&gt; specific requirements.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They spend three weeks making a detailed plan in Microsoft Project that is already out of date when published to the team.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Sells guys are the ones who win prizes and bonuses even before the project starts.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And those are just a few.&lt;/p&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-09-29T01:02:32.030" CommentCount="3" />
  <row Id="8081" PostTypeId="2" ParentId="8071" CreationDate="2010-09-29T01:15:11.713" Score="1" ViewCount="" Body="&lt;p&gt;When the management has shown over and over again that not only are they not helping development but actively hindering it it's time to think about moving on.  I have experienced a lot of clowns in my past but the few times I've seen active hinderance (what I called &quot;extreme friction on the development process&quot;) I've just been amazed at the skills on display.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also suggest that management who comes up with arbitrary deadlines, pushes them onto the team with the words, &quot;we've really got to push to get this done on time!&quot; and then comes into the office at 11, takes two hours for lunch, and leaves before 6...  Well this person is clearly not a team player.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then when that management ignores/demotes the people who say, &quot;we can't possibly do one year of work in six days,&quot; and then when the company is on the ropes blames those people for not bringing this up or some such nonsense...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hmm, all of this behavior was one person at one company.  So my advice is to avoid that company.  :)  Axe to grind?  I escaped.&lt;/p&gt;&#xA;" OwnerUserId="2129" LastActivityDate="2010-09-29T01:15:11.713" CommentCount="2" />
  <row Id="8082" PostTypeId="2" ParentId="8076" CreationDate="2010-09-29T01:17:00.013" Score="3" ViewCount="" Body="&lt;p&gt;Using C++ as if it was a &quot;pure&quot; OO language and making classes and hierarchies all over the place for what are truly procedural problems.  My favorite is the classes with only static methods and data.&lt;/p&gt;&#xA;" OwnerUserId="2129" LastActivityDate="2010-09-29T01:17:00.013" />
  <row Id="8083" PostTypeId="2" ParentId="8078" CreationDate="2010-09-29T01:20:48.590" Score="0" ViewCount="" Body="&lt;p&gt;Find some local developers that do work that you are interested in.  Figure out where these people go to lunch.  &quot;Bump&quot; into them and ask them if you can talk to them about getting a job in the industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That may well get you in the front door, if you can talk like someone who knows anything.  :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may be odd to just talk to random people at a dining establishment, but you never know...  For instance, if you wanted to get into games and were in Orange County California, you could just slum it in the Irvine Spectrum food court and talk to everyone who comes through the door.  Probably half of them/us are game developers...&lt;/p&gt;&#xA;" OwnerUserId="2129" LastActivityDate="2010-09-29T01:20:48.590" CommentCount="2" />
  <row Id="8084" PostTypeId="2" ParentId="8078" CreationDate="2010-09-29T01:26:00.610" Score="7" ViewCount="" Body="&lt;p&gt;Man, you've dug yourself into a hole there!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You've got no significant qualification, no significant experience, no job, ... and a track record that suggests to a future employer that you are not prepared to &quot;stick at it&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And the jobs market in the US is &quot;flat&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What can you do about it?  I suggest the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Get a job ... doing anything ... that will bring in some income to help your wife stay in college.  Flip burgers, clean toilets, whatever.  This won't look great on your CV, but it will look better than &quot;sat around at home for 6 months&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;In your &quot;spare&quot; time, get involved in some open source project that allows you to build up your IT skills / experience.  Do things that will allow you to build up your portfolio of completed software / sites / etc that you can &lt;em&gt;show&lt;/em&gt; to people who might be considering taking the risk of employing you.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do some IT voluntary work.  Do local charities need some help with their IT?  What about schools?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;While doing all of the above, track down and apply for lots and lots of entry level IT jobs.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;FOLLOWUP&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;1) Do you have any suggestion on matching an O/S project to my skill set, or should I just pick one that seems interesting and dive in?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Just pick a project that looks like it matches your interests and aspirations and dive in.  However, assuming that you are diving into an exist project, you may need to prove your abilities to them before they will grant commit rights, etc.  But that's just part of the process.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;2) ... you suggest hosting example projects on the web?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Why not?  Especially if they are a good example of the quality of your work.  (But the flip-side is that if they are objectively of low quality, of dubious value, in questionable taste, etc ... you might be advised NOT to put them where potential employers can see them.)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;3) Is there any pitfall to doing charity work? NDA/IP, etc...&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No more than for working in a paid job.  If they require you to sign an NDA or IP agreement, read it and decide if you can live with it.  Don't &lt;em&gt;expect&lt;/em&gt; to own any IP you create while doing voluntary work.  I don't know about you, but I find the &lt;em&gt;idea&lt;/em&gt; of making a buck from IP you create while doing voluntary work to be rather ... distasteful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I'm talking more broadly of voluntary / unpaid work for some &quot;worthy cause&quot; rather than specifically working for a &quot;charity&quot; in either a paid or unpaid capacity.)&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-09-29T02:47:51.143" LastActivityDate="2010-09-29T02:47:51.143" CommentCount="5" />
  <row Id="8085" PostTypeId="2" ParentId="7861" CreationDate="2010-09-29T01:44:30.623" Score="50" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Dealbreaker: I don't feel like I'm the dumbest person on the team.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I mean by this is that I don't want to be in a position where I can't learn &lt;em&gt;a lot&lt;/em&gt; from my peers.  You can always learn from others, but when I worked at one particular company, the people there were amazingly smart, and I felt like I should be back in first grade as far as my programming skills went.  However I learned more in a couple years with them than I had in the 5 years prior to that and including school.  Now, I try to find a place where my peers make me look bad, because then I know I'll learn a lot.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-29T01:44:30.623" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="4" />
  <row Id="8086" PostTypeId="2" ParentId="8071" CreationDate="2010-09-29T01:54:46.760" Score="6" ViewCount="" Body="&lt;p&gt;I'd say you should avoid companies that follow some of these practices&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Force the usage of a specific OS, Platform, or Software when not required (Ex: You can ONLY use Vim running on OpenBSD with no GUI, an extreme example just so you get the idea)&lt;/li&gt;&#xA;&lt;li&gt;The company has recently went through a lot of employees (Hiring, firing, repeat), not always a bad sign but normally it is&lt;/li&gt;&#xA;&lt;li&gt;Companies where the sales people give you a deadline and a price to complete a project within without having consulted you first (Hey, we promised ABC Client a full Ecommerce site in two days and you can only spend 12 hours on it)&lt;/li&gt;&#xA;&lt;li&gt;Companies who have seriously outdated technology or refuse to buy required software that will help you do your job way more efficiently should probably be avoided. Cutting costs in the short term when it will cost more in the long term indicate a serious lack of consideration and may show that management isn't fully qualified/capable.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Here are company issues that are problems but that you can probably resolve if you start working at the company and approach them correctly&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Non technical managers trying to manage technical people, almost always an issue. You basically need to &quot;teach&quot; the manager how to deal with technical people. At a company that does all PHP and Python work, we once had to integrate with a Java application. I brought up the fact that Bob knows Java and should probably work on the Java Interface part and my manager responded along the lines of &quot;Maybe we hired the wrong person then, we should have hired a Java developer&quot;. Quite obviously wrong, these attitudes can be changed&lt;/li&gt;&#xA;&lt;li&gt;Not having a spec, build server, or bug database can all be fixed by you&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-09-29T01:54:46.760" CommentCount="4" />
  <row Id="8087" PostTypeId="2" ParentId="8078" CreationDate="2010-09-29T02:03:57.537" Score="0" ViewCount="" Body="&lt;p&gt;Your skills seem to be adequate to get an entry-level software development position. At least they would be in a reasonable economy. So depending on where you are, you might be able to find something with the knowledge and experience you have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If not, keep working on things that will give you experience and a portfolio to show potential employers. Choose projects in the intersection between what are marketable skills, your own interests and any gaps in your knowledge.&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-09-29T02:03:57.537" CommentCount="1" />
  <row Id="8088" PostTypeId="2" ParentId="3272" CreationDate="2010-09-29T02:05:32.543" Score="2" ViewCount="" Body="&lt;p&gt;Starting from six years ago, I'm on my &lt;strong&gt;thirteenth&lt;/strong&gt; job.  But most of them have been contract jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some have been contract-to-hire, but that doesn't seem to mean anything these days.  I get the impression that a lot of companies have no intention of actually hiring, and just use the contract-to-hire designation to get people who otherwise wouldn't take contract jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Short-term stuff shouldn't be a no-interview red flag.  You should certainly ask about it in the interview, and give the candidate a chance to explain.  On the flip side, with that many jobs under your belt, you get exposed to a lot of different technologies and techniques.&lt;/p&gt;&#xA;" OwnerUserId="3963" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-29T04:06:31.080" LastActivityDate="2010-09-29T04:06:31.080" CommentCount="1" />
  <row Id="8089" PostTypeId="2" ParentId="8078" CreationDate="2010-09-29T02:07:57.853" Score="4" ViewCount="" Body="&lt;p&gt;Talk to your Java professor. Let her know your situation, and ask her if she has any leads on any entrepreneurial professors looking for software developers that she can recommend you to. At the very minimum, ask her if she would be willing to provide you with a recommendation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alternatively, if you can get a full-time job working with the university, your wife may be able to get a discount on her courses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Publicize yourself. Build a network on LinkedIn. Build up your rep on StackOverflow. It won't get you a job, but it can't hurt.&lt;/p&gt;&#xA;" OwnerUserId="1852" LastEditorUserId="1852" LastEditorDisplayName="" LastEditDate="2010-09-29T02:38:40.193" LastActivityDate="2010-09-29T02:38:40.193" CommentCount="4" />
  <row Id="8090" PostTypeId="1" AcceptedAnswerId="13355" CreationDate="2010-09-29T02:09:49.620" Score="9" ViewCount="285" Body="&lt;p&gt;&lt;strong&gt;Question first:&lt;/strong&gt; What are some feasible alternatives to time tracking for employees in a web/software development company, and why are they better options&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Explanation:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work at a company where we work like this. Everybody is paid salary. We have 3 types of work, Contract, Adhoc and Internal (Non billable). Adhoc is just small changes that take a few hours and we just bill the client at the end of the month. Contracts are signed and we have this big long process, the usual.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We figure out how much to charge by getting an estimation of the time involved (From the design and the developers), multiplying it by our hourly rate and that's it. So say we estimate 50 hours for a website. We have time tracking software and have to record the time in 15 we spend on it (7:00 to 7:15 for example), the project name, and give it some comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now if we go over the 50 hours, we are both losing money and are inefficient. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Now&lt;/strong&gt; that I've explained how the system works, my question is how else can it be done if a better method exists (Which I'm sure one must). Nobody here likes the current system, we just can't find an alternative. I'd be more than willing to work after hours longer hours on a project to get it done in time, but I'm much inclined to do so with the current system. I'd love to be able to sum up (Or link) to this post for my manager to show them why we should use abc system instead of this system.&lt;/p&gt;&#xA;" OwnerUserId="3382" LastEditorUserId="3382" LastEditorDisplayName="" LastEditDate="2010-09-29T02:34:09.007" LastActivityDate="2010-10-20T18:11:55.447" Title="Alternatives to time tracking methodologies" Tags="&lt;time-management&gt;&lt;programming&gt;" AnswerCount="4" />
  <row Id="8091" PostTypeId="2" ParentId="8090" CreationDate="2010-09-29T02:21:21.930" Score="0" ViewCount="" Body="&lt;p&gt;The problem with this method is that it takes no account of the inherent risk in estimates. A best practice for any estimates is to express it as a range of times, e.g. 50 hours ± 15 hours, or something similar. The error term is tough to come up with, but nobody believes it will take exactly 50 hours anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are other approaches aside from the fixed price model; you could use a lower rate, and bill straight hours, but these days, your clients will probably want to transfer the risk to you. That's fine, but it means you need to charge a reasonable risk premium based on the range of time estimates you come up with.&lt;/p&gt;&#xA;" OwnerUserId="1852" LastActivityDate="2010-09-29T02:21:21.930" />
  <row Id="8092" PostTypeId="2" ParentId="8076" CreationDate="2010-09-29T02:22:19.110" Score="4" ViewCount="" Body="&lt;p&gt;Using C idioms in languages where they're unnecessary.  This is common enough at work that we've got a term for it, &quot;writing C in Delphi.&quot;  It tends to crop up in older sections of the codebase, a lot of which was written by people who knew C a lot better than they knew Delphi.  Some of it's just annoying, like &lt;a href=&quot;http://stackoverflow.com/questions/2349378/new-programming-jargon-you-coined/2430307#2430307&quot;&gt;Yoda Conditions&lt;/a&gt;, but some is downright dangerous and prone to memory corruption, like using pointers and ReallocMem to implement dynamic arrays instead of Delphi's built-in, bounds-checked dynamic arrays.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-29T02:22:19.110" CommentCount="1" />
  <row Id="8093" PostTypeId="1" CreationDate="2010-09-29T02:44:21.977" Score="17" ViewCount="784" Body="&lt;p&gt;What are some somewhat common math formulas you learned that helped you write better algorithms and become a better programmer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example: I learned about the ecludian distance formula: &lt;code&gt;sqrt((x1-x2)^2+(y1-y2)^2)&lt;/code&gt; which helped me understand how to find like objects by comparing 2 factors. &lt;/p&gt;&#xA;" OwnerUserId="190" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T16:04:14.400" LastActivityDate="2010-12-31T23:14:24.980" Title="What are good mathematical formulas to know for programming?" Tags="&lt;learning&gt;&lt;math&gt;&lt;algorithms&gt;" AnswerCount="18" CommentCount="4" FavoriteCount="8" />
  <row Id="8094" PostTypeId="2" ParentId="7861" CreationDate="2010-09-29T02:57:23.853" Score="7" ViewCount="" Body="&lt;p&gt;Deal Breakers:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;No Source Control&lt;/li&gt;&#xA;&lt;li&gt;App tied to a Database that makes Windows 2000 look like the bleeding edge of technology&lt;/li&gt;&#xA;&lt;li&gt;No, or poor bug tracking&lt;/li&gt;&#xA;&lt;li&gt;Timesheets (when not on specific client work) esp. if implemented in a horrible system devised by your sucky payroll software.&lt;/li&gt;&#xA;&lt;li&gt;Any sign of Major Process Failure - e.g. TPS Reports&lt;/li&gt;&#xA;&lt;li&gt;No Internet&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="3199" LastActivityDate="2010-09-29T02:57:23.853" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="6" />
  <row Id="8095" PostTypeId="2" ParentId="8022" CreationDate="2010-09-29T03:00:08.213" Score="3" ViewCount="" Body="&lt;p&gt;How did you get good at programming? How does a mechanic get good at fixing cars? how does a hair stylist get good at doing hair?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Want to be better at speech? Debates? Socializing? Just do it. Hang out with people. Listen. Interact. Learn.&lt;/p&gt;&#xA;" OwnerUserId="2536" LastActivityDate="2010-09-29T03:00:08.213" />
  <row Id="8096" PostTypeId="2" ParentId="8093" CreationDate="2010-09-29T03:11:13.223" Score="4" ViewCount="" Body="&lt;p&gt;Basic statistics formulas are good to know. I've used &lt;a href=&quot;http://en.wikipedia.org/wiki/Linear_regression&quot; rel=&quot;nofollow&quot;&gt;linear regression&lt;/a&gt; at least a few times.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-09-29T03:11:13.223" />
  <row Id="8097" PostTypeId="2" ParentId="8076" CreationDate="2010-09-29T03:17:29.080" Score="6" ViewCount="" Body="&lt;p&gt;In C++, reinventing common classes and tools already found in STL and Boost. Common offenders are collections, smart pointers, events/callbacks and others. Sometimes it's justified, but usually not.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastActivityDate="2010-09-29T03:17:29.080" CommentCount="2" />
  <row Id="8098" PostTypeId="1" CreationDate="2010-09-29T03:25:37.213" Score="5" ViewCount="271" Body="&lt;p&gt;As I've implied through my other posts, I'm still fairly new to the workforce. During team meetings, I tend to be able to keep up with technical discussion, but when my project manager starts talking about how we've won a new contract, or we're involved in a new proposal bid, or... anything that's business rather than technical, really... I can get lost pretty quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the bare minimum all developers need to know about project management/business to function?&lt;/p&gt;&#xA;" OwnerUserId="94" LastActivityDate="2010-10-17T03:48:51.243" Title="What do programmers have to know about business/management?" Tags="&lt;project-management&gt;&lt;business&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="2" />
  <row Id="8099" PostTypeId="2" ParentId="8093" CreationDate="2010-09-29T03:28:43.090" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;algebra&lt;/li&gt;&#xA;&lt;li&gt;trigonometry&lt;/li&gt;&#xA;&lt;li&gt;vector (matrix operations)  &lt;/li&gt;&#xA;&lt;li&gt;calculus&lt;/li&gt;&#xA;&lt;li&gt;[various interpolations and their derivatives]&lt;/li&gt;&#xA;&lt;li&gt;[surfaces, NURBS]&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(the ones in brackers are more of an &quot;applied&quot; kind)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is difficult to give general directions, since it strongly depends on the field you're in. But the above covers the basics of quite a lot of engineering degrees. Mind you, these categories often overlap (trigonometry+matrix ops., calculus+matrix ops., and so on.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always have a Mathematical handbook close by. One is often unsure of something, and it helps to have it presented in an organized manner.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-29T03:28:43.090" />
  <row Id="8100" PostTypeId="2" ParentId="8093" CreationDate="2010-09-29T03:33:18.077" Score="15" ViewCount="" Body="&lt;p&gt;Knowing the powers of 2 is handy, especially when dealing with low-level bitwise operations.  &lt;/p&gt;&#xA;" OwnerUserId="145" LastEditorUserId="145" LastEditorDisplayName="" LastEditDate="2010-09-29T15:16:15.603" LastActivityDate="2010-09-29T15:16:15.603" CommentCount="7" />
  <row Id="8101" PostTypeId="2" ParentId="8098" CreationDate="2010-09-29T03:34:03.863" Score="1" ViewCount="" Body="&lt;p&gt;Not wanting to be mean, but I'd say &quot;they need to know to leave it in the hands of people who's job it is&quot;. As much as this sounds like heresy, you can't know everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, yes, one should know some minimums, some fundamentals of economy. So, let's say, fundamentals of microeconomics (microeconomics &amp;lt;- economics that deal with a small system, say a company), some basic economic theories (Is inflation good or bad for you? What does it mean? Is raising import good or bad? How does it affect other factors?), some basics of how the social system works (if you're in a country that is organized in that way), basics of bond trading (if you're in a company that is organized in that way) ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I've however, misunderstood your question, and you're asking what is a proposal, or a bid, ... those can be better explained on wikipedia. The rules concerning them are however, more of a law topic, than an economy one.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-29T03:34:03.863" CommentCount="2" />
  <row Id="8102" PostTypeId="2" ParentId="8093" CreationDate="2010-09-29T03:39:00.043" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Law of Cosines&lt;/strong&gt;, very important for a lot of geometrical problems,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/YPz5J.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;especially angle determination.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastEditorUserId="1842" LastEditorDisplayName="" LastEditDate="2010-09-29T17:04:19.800" LastActivityDate="2010-09-29T17:04:19.800" CommentCount="4" />
  <row Id="8103" PostTypeId="2" ParentId="7806" CreationDate="2010-09-29T03:43:29.103" Score="3" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/idpVJ.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had this on my cubical wall for a few months, until I changed companies. Twas a good icebreaker :)&lt;/p&gt;&#xA;" OwnerUserId="965" LastActivityDate="2010-09-29T03:43:29.103" CommentCount="5" />
  <row Id="8104" PostTypeId="1" AcceptedAnswerId="8203" CreationDate="2010-09-29T04:00:52.320" Score="10" ViewCount="1078" Body="&lt;p&gt;So I know everyone here is all about private offices, how many developers actually have them. I am sort of half skeptical. I can believe that lead developers have them, but thats normally just one person in your average office. If it would not be to much to ask:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you work in a totally awesome office or a nasty old cube? (or somewhere in between)&lt;/li&gt;&#xA;&lt;li&gt;What's your relative rank in the office? (junior, programmer II, senior, lead, etc.)&lt;/li&gt;&#xA;&lt;li&gt;are you doing internal software, or are you in a software-centric environment? (the general thought seems to be that internal developers get cubes while others live in &quot;Joel-Spolsky-Programmer-Candyland&quot;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2011-02-21T03:41:11.787" CommunityOwnedDate="2011-02-20T23:49:56.727" Title="How many developers actually have private offices?" Tags="&lt;jobs&gt;&lt;office&gt;&lt;job-title&gt;" AnswerCount="23" CommentCount="5" FavoriteCount="1" />
  <row Id="8105" PostTypeId="2" ParentId="7861" CreationDate="2010-09-29T04:01:35.033" Score="5" ViewCount="" Body="&lt;p&gt;Like a good spamfilter, there are few outright deal breakers, but there are a number of things that will score them up.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Cheap machines.  Slow machines with little memory shows they are not interested in maximizing the amount of work I can do for them.&lt;/li&gt;&#xA;&lt;li&gt;A need to have one machine for e-mail (usually Windows running Outlook) and another for primary duties (programming or system administration.)  Constantly jumping back and forth between the two breaks flow and makes it difficult to copy/paste work items into or from e-mail.&lt;/li&gt;&#xA;&lt;li&gt;Matrixed organizations.  When you work primarily with the product team from day to day, but your performance review is done by someone who rarely works with you, that's a recipe for disaster.&lt;/li&gt;&#xA;&lt;li&gt;A history of poor customer support or low customer loyalty numbers.  When a company doesn't treat their customers well, those attitudes from management bleed into how they treat the workforce.  Even worse, it can taint how the workforce treats each other.&lt;/li&gt;&#xA;&lt;li&gt;A history of regular mass layoffs.  A national IT company near me seems to have a story every year in the paper about how many they're laying off, and always within a couple weeks (plus or minus) of the New Year.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="3975" LastActivityDate="2010-09-29T04:01:35.033" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="7" />
  <row Id="8106" PostTypeId="2" ParentId="6067" CreationDate="2010-09-29T04:03:28.650" Score="0" ViewCount="" Body="&lt;h2&gt;Mathematica&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I think the &lt;a href=&quot;http://groups.engin.umd.umich.edu/CIS/course.des/cis400/math/While.html&quot; rel=&quot;nofollow&quot;&gt;syntax looks ugly and is hard to read&lt;/a&gt; (what can you do; maybe they could update it to self-format like &lt;a href=&quot;http://programmers.stackexchange.com/questions/4863/what-almost-unknown-programming-language-of-21st-century-a-programmer-should-be-i/6938#6938&quot;&gt;&lt;strong&gt;Fortress&lt;/strong&gt;&lt;/a&gt;), but Mathematica is &lt;em&gt;the&lt;/em&gt; language for analytical computation and symbolic math, and it can handle some numerical computation that is too difficult to set up in other environments. (I suppose MATLAB, then, is the de facto standard for numerical work, excepting niche statistic packages. Oh, and Fortran.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We had to learn its basics and do challenging experiments with it for my freshman physics lab. It is a wonderful tool, though, and capable of fantastic work. (You can start with the &lt;a href=&quot;http://en.wikipedia.org/wiki/Mathematica#Features&quot; rel=&quot;nofollow&quot;&gt;features&lt;/a&gt;. The syntax page is &lt;a href=&quot;http://reference.wolfram.com/mathematica/tutorial/TheSyntaxOfTheMathematicaLanguage.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;). I own two books I should learn from, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0126831920&quot; rel=&quot;nofollow&quot;&gt;A Physicist's Guide&lt;/a&gt; and &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0387495134&quot; rel=&quot;nofollow&quot;&gt;Essentials of Mathematica&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2515" LastEditorUserId="2515" LastEditorDisplayName="" LastEditDate="2010-10-04T16:21:25.167" LastActivityDate="2010-10-04T16:21:25.167" CommunityOwnedDate="2010-09-29T04:03:28.650" CommentCount="2" />
  <row Id="8107" PostTypeId="2" ParentId="8104" CreationDate="2010-09-29T04:03:45.117" Score="2" ViewCount="" Body="&lt;p&gt;I left a job 2 years ago because they took away my private office. The office manager complained that I was the newest person and that he didn't have an office, so they decided to make me share my office, and eventually devised a strategy to make things really delightful; Change offices and offices co-inhabitants once every two months, just to mix things up a bit :) My office wasn't the only reason, but it all started there. If you have trouble working outside of a quiet, dark room, avoid a cubical job. It'll make you hate programming.&lt;/p&gt;&#xA;" OwnerUserId="825" LastActivityDate="2010-09-29T04:03:45.117" CommunityOwnedDate="2011-02-20T23:49:56.727" CommentCount="3" />
  <row Id="8108" PostTypeId="2" ParentId="7834" CreationDate="2010-09-29T04:07:19.690" Score="1" ViewCount="" Body="&lt;p&gt;I have a math background, (B.Sc. with double major in pure and applied math, followed by Ph.D. in applied maths). However I've worked as a developer for the last 6 or so years. My maths degree got me my first development job (In the film vfx industry - so graphics heavy stuff). But the actual maths I used from my degrees in my work was minimal. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's two ways to think about a math degree. The first is that you're learning about complex math in essoteric subjects. That's (mostly) useless. The second is that you're training your brain to understand complex systems, find complex patterns and find solutions to complex problems. That is pretty core to serious software development. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO some people have a nack for that kind of problem solving (I certainly did), but they'll still improve with some formal learning (I certainly did again). That kind of training can be sorely lacking from some CS Engineering degrees.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say pick up as much math as you can, you'll not regret it. It doesn't age like a programming language does. (FORTRAN is out of date just 30 years on. C# will probably go the same way. But calculus, geometry, group-theory will all be here in a few hundreds of years time).&lt;/p&gt;&#xA;" OwnerUserId="3307" LastActivityDate="2010-09-29T04:07:19.690" />
  <row Id="8109" PostTypeId="2" ParentId="8104" CreationDate="2010-09-29T04:16:38.800" Score="5" ViewCount="" Body="&lt;p&gt;Quick comment on &lt;em&gt;French&lt;/em&gt; offices: cubicle are virtually unknown (very rare).&lt;br&gt;&#xA;When there are several desks involved, there is none (or very little) separation between each desk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have always (12 years+) worked only on:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;big rooms (4 to 8 people per room) for the smallest environments&lt;/li&gt;&#xA;&lt;li&gt;huge &lt;em&gt;open&lt;/em&gt;-spaces (15 to 30 people per space)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It sucks, but at least I learned to concentrate ,) Real hard...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only the upper management level gets individual offices.&lt;/p&gt;&#xA;" OwnerUserId="3915" LastActivityDate="2010-09-29T04:16:38.800" CommunityOwnedDate="2011-02-20T23:49:56.727" CommentCount="5" />
  <row Id="8110" PostTypeId="2" ParentId="648" CreationDate="2010-09-29T04:29:22.803" Score="5" ViewCount="" Body="&lt;p&gt;I did development for a guy who was very adamant about wanting accurate estimates.  What we settled on, which worked very well, was this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I billed for all the time I spent estimating.  It came to around 20-25% of what I billed.&lt;/li&gt;&#xA;&lt;li&gt;I did extremely detailed examination of the tasks.  No shooting from the hip.  I went into the code, figured out what lines needed to be changed, what other parts of the program it would affect, how much testing I'd have to do to ensure that things still worked.  I'd estimate each piece in units of .1 hours (6 minutes).&lt;/li&gt;&#xA;&lt;li&gt;I sent him my estimate for each task along with that detailed breakdown.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;20-25% of billing sounds like a lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But he'd ask me to make change XYZ, thinking it'd take about 2 hours.  In 1 hour of detailed estimating, I'd determine it'd take 8.5 hours.  So he'd decide whether it was worth 8.5 hours of pay.  If not, then he saved 7.5 hours over what it would've cost him if I'd done it without an estimate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if he &lt;em&gt;did&lt;/em&gt; want to invest the 8.5 hours, the detail work I did for the estimate was work I'd have had to do anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found that with this method I was able to bring most tasks in on time or even early, without having to heavily overestimate.  Because the time was broken down so minutely, I could tell early on if I was slipping.  If I hit roadblocks so that after 3 hours I could tell that my 8.5-hour task was going to take 12, I could talk to him about it before more time passed so he could reevaluate and yank the feature if he was concerned about the cost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Was he nickel-and-diming?  No, I looked at it as letting him apply his money where he saw the most benefit.  And I was glad to get experience in estimating, which I'd always been terrible at.&lt;/p&gt;&#xA;" OwnerUserId="3963" LastActivityDate="2010-09-29T04:29:22.803" CommentCount="2" />
  <row Id="8111" PostTypeId="1" AcceptedAnswerId="10456" CreationDate="2010-09-29T04:29:47.313" Score="12" ViewCount="669" Body="&lt;p&gt;I'm a self-taught programmer and have just started a computer science degree to supplement my knowledge and fill in the gaps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I'm already debating the direction of my education. I want a 4 year bachelor's degree for sure, but after that, I'm not sure: Is it worth it to get an M.Sc? What about a Ph.D.? What opportunities do these degrees open up?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently my goal is to be a software developer, but there are a number of fascinating fields in the software industry and I'm certainly interested in investigating many of them. It is in this respect that I think a higher degree may be worth it -- even if it wouldn't necessarily help a career of software development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So will it be worth it? Will grad school open doors?&lt;/p&gt;&#xA;" OwnerUserId="54" LastActivityDate="2010-10-11T14:30:11.120" Title="What is a Ph.D. good for in the software industry?" Tags="&lt;career-advice&gt;&lt;education&gt;" AnswerCount="10" CommentCount="3" FavoriteCount="3" />
  <row Id="8112" PostTypeId="2" ParentId="8111" CreationDate="2010-09-29T04:31:22.237" Score="4" ViewCount="" Body="&lt;p&gt;Spending a lot more time to earn the same wage.&lt;/p&gt;&#xA;" OwnerUserId="825" LastActivityDate="2010-09-29T04:31:22.237" CommentCount="2" />
  <row Id="8113" PostTypeId="2" ParentId="8078" CreationDate="2010-09-29T04:36:57.490" Score="3" ViewCount="" Body="&lt;p&gt;Go for a paid internship. There are lots around, and many do not expect you to know that much. It is a great opportunity to learn and be upfront when interviewing that you are eager to learn. This seems counter-intuitive (wouldn't they want someone who knows enough already?) but for an internship this shows a willingness to learn. It won't pay as much as a fulltime development jobs, but it should be better than burger-flipping. I was in a very similar situation not too long ago, but I did this, payed my dues, and now have a full-time position.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-09-29T04:36:57.490" />
  <row Id="8114" PostTypeId="2" ParentId="8111" CreationDate="2010-09-29T04:38:29.450" Score="4" ViewCount="" Body="&lt;p&gt;Grad school is worth it when you plan to have a career in the academic field. For typical employment in software development, grad school is not a requirement at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would benefit you in the sense that you'd likely get more interviews thanks to a Ph.D. looking pretty impressive on your resume. But in terms of actually using your knowledge, you'd have to look for specialized employment or do more research than development to really reap the rewards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I think a bachelor's degree is absolutely worth it. It exposes you to the world of computer science and gives you the foundation that makes it easier to learn in more depth whatever aspects either interest you or are needed for your job.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-29T04:38:29.450" CommentCount="2" />
  <row Id="8115" PostTypeId="2" ParentId="8111" CreationDate="2010-09-29T04:40:15.313" Score="5" ViewCount="" Body="&lt;p&gt;It might open up more technical positions and jobs at larger Oracle-type companies. The important thing it does though is gives you a very focused specialty. To employers, you are the best they can find in that specialty (on paper at least).&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-09-29T04:40:15.313" CommentCount="1" />
  <row Id="8116" PostTypeId="2" ParentId="5354" CreationDate="2010-09-29T04:43:22.283" Score="14" ViewCount="" Body="&lt;p&gt;I don't think so.  Basically most of the NoSQL solutions seem to store key value pairs more or less.  If you want to report on something, it is much easier to join a few tables together then to figure out how to string a whole bunch of key value pairs together.  Also many of the products have their own API so the skills don't translate as well as SQL.  Whether someone uses DB2, Oracle, PostgreSQL, MySQL, Mimer, SQL Server, etc. the general syntax of SQL is similar and the subset of ANSI SQL will work.  Then you just need to pick up a few particulars.  With the NoSQL solutions, just because you know how to use Hadoop and MapReduce does not mean that you can pick up Pig Latin in a day or two and use that....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also with line of businesses, a big deal is the reporting.  If NoSQL makes this harder, then it won't fly.  In most companies information is power and there is huge value in being able to efficiently share that information.  Basically you want the sales transactions to go into some type of data store where users can run reports, data mine, etc. to slice/dice/analyze that sales data and figure out corporate strategy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the chief advantages of NoSQL now is price.  Both DB2 and Oracle have shared nothing architectural solutions (I can't speak for Oracle but DB2 has had theirs since before 1999 and it worked pretty well at the time).  But these cost a fortune in licensing costs.  The advantage with Hadoop is that there are no licensing costs.  Buy your 20 computers, download it, and go....Or just buy some Amazon web services instances, install a linux image and use hadoop to get going there...The linux image that would enable you to use hadoop is much cheaper than just the windows operating system on amazon (without even the cost for SQL Server or Oracle).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also NoSQL can be simpler for the programmer.  There is no need to figure out a table structure in advanced to structure your data.  Also you don't need to work hard to map your objects to the table structure, you can just store them as key value pairs.  On the other side, these two advantages make it harder to report on.  If you use not well defined structures, this presents challenges on trying to read the data later to report on.  Also if the format is convenient for the program, you will spend a lot of time figuring out how to report on it as well.  Nevertheless if you need to get a product out the door yesterday, the time saved might matter....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that NoSQL solutions are basically one more tool in our toolbox.  And also they might force the open source database makers to focus more on scaling and shared nothing approaches.  Probably we will see some of the more popular features make their way into relational database systems over time...  This is similar to the way that a lot of relational databases now have data types and extensions for dealing with XML data while there was once talk of XML databases replacing relational databases.  Now where are the XML databases?  And yet the relational databases still remain in power....&lt;/p&gt;&#xA;" OwnerUserId="3786" LastActivityDate="2010-09-29T04:43:22.283" CommentCount="4" />
  <row Id="8117" PostTypeId="1" CreationDate="2010-09-29T05:09:48.657" Score="0" ViewCount="311" Body="&lt;p&gt;This question is for all the professionals who have been in IT industry from long time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have 4 years of experience in QA (&lt;strong&gt;manual testing&lt;/strong&gt;) from a MNC located in India.&#xA;I have been thinking about pursuing software developers job so I applied for some companies as a fresher and one company offered me to take as entry-level engineer.&#xA;But my present company does not want to loose me and they are offering me an on-site opportunity?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So which one should i go for &lt;strong&gt;Programmer job&lt;/strong&gt; or &lt;strong&gt;on-site (QA)&lt;/strong&gt; in terms of long term perspective?&lt;/p&gt;&#xA;" OwnerUserId="3978" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-10-08T23:48:55.123" LastActivityDate="2010-10-08T23:48:55.123" Title="Should I choose a programmer or on-site (QA) job?" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="4" />
  <row Id="8118" PostTypeId="2" ParentId="8104" CreationDate="2010-09-29T05:20:58.883" Score="1" ViewCount="" Body="&lt;p&gt;I have a semi-private office, i.e. a fairly spacious office with two large desks, bookcase, two credenzas and a whiteboard which I share with another programmer who is working on the same project as I am (embedded software). We are both senior level.  I have a separate lab for doing hardware-type stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only other programmer in the company (who works on our web GUI and backend) has a private office next to ours, about 2/3 the size of ours.  Our manager, who is also the architect and technical lead (he does some programming), has a single office the same size of ours with a desk, credenza, bookcase, whiteboard, and a table and four chairs for group meetings.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each developer also has two LCD wide-screen monitors, and the company has free soft-drinks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a small startup (~ 15 people).  At my last long-term contract, which was at a large company, I was in a cubicle, but at least it was a large cubicle with an outside window.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-09-29T13:52:28.837" LastActivityDate="2010-09-29T13:52:28.837" CommunityOwnedDate="2011-02-20T23:49:56.727" />
  <row Id="8119" PostTypeId="1" AcceptedAnswerId="8122" CreationDate="2010-09-29T05:26:15.897" Score="4" ViewCount="192" Body="&lt;p&gt;In what circumstances should an IT Consultant encrypt their hard drive to protect their code/data of their clients?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am thinking that if it does not add much to your work load you might as well use full disc encryption with a 'weak' password to at least prevent someone from accessing your email files and other documents if your laptop is stolen, even if they will not get access to any database files or other very sensitive data. &lt;/p&gt;&#xA;" OwnerUserId="1835" LastActivityDate="2010-10-07T16:25:51.840" Title="When should an IT consultant use full disc encryption?" Tags="&lt;best-practices&gt;&lt;security&gt;" AnswerCount="2" CommentCount="3" />
  <row Id="8120" PostTypeId="1" CreationDate="2010-09-29T05:28:52.890" Score="13" ViewCount="391" Body="&lt;p&gt;Do you expect to be programming the rest of your life? Where do you see yourself in 10 years? Do you want to become a manager or is it OK to be an individual contributor forever?&lt;/p&gt;&#xA;" OwnerUserId="940" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-09-29T08:44:27.427" LastActivityDate="2011-04-25T03:24:45.770" ClosedDate="2011-04-25T03:26:21.893" Title="What do you want to be when you grow up?" Tags="&lt;career&gt;" AnswerCount="12" CommentCount="4" FavoriteCount="3" />
  <row Id="8122" PostTypeId="2" ParentId="8119" CreationDate="2010-09-29T05:46:59.553" Score="5" ViewCount="" Body="&lt;p&gt;I agree that full-disc encryption is good, especially if you have sensitive data on your a laptop (you probably do). So, with the new laptop models being plenty fast, I'd say &quot;&lt;strong&gt;always&lt;/strong&gt;&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, there are caveats:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;if you forget your password, this means all your data are as good as gone (until you remember the password again).&lt;/li&gt;&#xA;&lt;li&gt;(corollary: any encryption solution that has a &quot;recover password&quot; option is likely snake oil, not encryption)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.whatsmypass.com/the-top-500-worst-passwords-of-all-time&quot; rel=&quot;nofollow&quot;&gt;weak passwords&lt;/a&gt; == no protection (your cow-orkers probably won't try to break into your computer, but a &lt;em&gt;stolen&lt;/em&gt; laptop's data could be worth some money; plus, &lt;a href=&quot;http://www.codinghorror.com/blog/2005/07/passwords-vs-pass-phrases.html&quot; rel=&quot;nofollow&quot;&gt;pass-&lt;em&gt;phrases&lt;/em&gt;&lt;/a&gt; are quite strong and easy to remember)&lt;/li&gt;&#xA;&lt;li&gt;the full-disk encryption could make sleep mode/hibernation impractical, if not impossible (check the product you plan to use)&lt;/li&gt;&#xA;&lt;li&gt;some data may be accessible from additional locations (e.g. your e-mails may be stored on a server, with a &lt;em&gt;copy&lt;/em&gt; stored locally in your computer)&lt;/li&gt;&#xA;&lt;li&gt;full-disc encryption is not magical pixie dust - it doesn't provide security against other attack vectors, you still need to address those separately (backups, antivirus, firewall, phishing protection, social engineering, &lt;a href=&quot;http://xkcd.com/538/&quot; rel=&quot;nofollow&quot;&gt;rubber hose cryptanalysis&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Note that encryption should not be seen as a way of securing the data &lt;em&gt;forever&lt;/em&gt; from &lt;em&gt;anyone&lt;/em&gt; - its goal is just to delay an attacker long enough to make the attack &lt;em&gt;uninteresting&lt;/em&gt;. With strong encryption, it should take years before the attacker gets to the data by brute force, at which point the data is so old that it's useless. Although the National Security Agency (or similarly powerful entity) can probably crack the encryption much faster (as it can throw enormous amounts of computing power at it), full-disk crypto is still good protection against &lt;em&gt;anyone else&lt;/em&gt; cracking it (e.g. your competitors or a random thief).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a bonus, encryption eliminates casual snooping: if you forget your (powered-off) laptop somewhere, an almost-honest person might decide to browse through your files before returning it to you, just out of curiosity. There's a proverb that says &quot;most locks are made to keep honest people honest&quot;; strong locks will do that, and also keep the really malicious people out for long enough.&lt;/p&gt;&#xA;" OwnerUserId="1545" LastEditorUserId="1545" LastEditorDisplayName="" LastEditDate="2010-10-07T16:25:51.840" LastActivityDate="2010-10-07T16:25:51.840" CommentCount="2" />
  <row Id="8123" PostTypeId="2" ParentId="7861" CreationDate="2010-09-29T05:56:25.697" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Companies which hire w/o asking the&#xA;  candidates to write code&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't want to work with a company where new &quot;Programmer&quot; in my team doesn't know how to &quot;Program&quot;.&lt;/p&gt;&#xA;" OwnerUserId="3299" LastActivityDate="2010-09-29T05:56:25.697" CommunityOwnedDate="2010-10-01T04:30:47.273" />
  <row Id="8124" PostTypeId="2" ParentId="8119" CreationDate="2010-09-29T05:56:31.363" Score="1" ViewCount="" Body="&lt;p&gt;1: &quot;weak&quot; passwords aren't an actual issue. Folks don't come around to offices and brute force their way into machines. The real issue is: 1) social engineering, or 2) Keyboard loggers; both of which render a &quot;strong&quot; password useless. Teach your IT department's less technical folks about those two things, how to spot them, and how to handle them, and you'll have no problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2: If somebody gets your encrypted disc in their hands, it won't matter that it's encrypted. They can get the data. It's just a matter of how much the data is worth to them. If you're protecting nuclear codes or Google's search algorithm, I'd go for armed guards and forget drive encryption.&lt;/p&gt;&#xA;" OwnerUserId="825" LastActivityDate="2010-09-29T05:56:31.363" CommentCount="5" />
  <row Id="8125" PostTypeId="2" ParentId="7927" CreationDate="2010-09-29T05:58:36.147" Score="-1" ViewCount="" Body="&lt;p&gt;Merge multiple bugs into one bug?&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-09-29T05:58:36.147" CommentCount="1" />
  <row Id="8126" PostTypeId="2" ParentId="8045" CreationDate="2010-09-29T06:11:48.117" Score="3" ViewCount="" Body="&lt;p&gt;read &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596007124&quot; rel=&quot;nofollow&quot;&gt;Head-First Design Patterns&lt;/a&gt;. it tells you how to get to a pattern but providing the design principle that gets you there. will help you a lot to design, so read it for the principles, even though its title is Design Patterns&lt;/p&gt;&#xA;&#xA;&lt;p&gt;another thing are the SOLID principles. see &lt;a href=&quot;http://en.wikipedia.org/wiki/Solid_%28object-oriented_design%29&quot; rel=&quot;nofollow&quot;&gt;link on wikipedia&lt;/a&gt; and also go for the links in the article and for the links at the reference area back page. the one from Uncle Bob is good&lt;/p&gt;&#xA;&#xA;&lt;p&gt;also, Uncle Bob has written about SOLID in his book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0135974445&quot; rel=&quot;nofollow&quot;&gt;Agile Software Development, Principles, Patterns, and Practices&lt;/a&gt;. there are only a few chapters about those in the book, still, you might be interested. if you want the shorter version, got for the link mentioned on wikipedia page&lt;/p&gt;&#xA;&#xA;&lt;p&gt;here is a video, &lt;a href=&quot;http://vimeo.com/17151526&quot; rel=&quot;nofollow&quot;&gt;on vimeo&lt;/a&gt;, about getting better at oop&lt;/p&gt;&#xA;" OwnerUserId="2657" LastEditorUserId="2657" LastEditorDisplayName="" LastEditDate="2010-11-26T10:57:47.083" LastActivityDate="2010-11-26T10:57:47.083" CommentCount="2" />
  <row Id="8127" PostTypeId="2" ParentId="8120" CreationDate="2010-09-29T06:16:42.827" Score="11" ViewCount="" Body="&lt;p&gt;personally, don't want to be a manager. hoping to get to expert level by that time. so, yea, still in programming in 10 years&lt;/p&gt;&#xA;&#xA;&lt;p&gt;here are some articles about experts&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;p&gt;&lt;a href=&quot;http://softwarecreation.org/2009/how-to-become-an-expert-embrace-reality/&quot; rel=&quot;nofollow&quot;&gt;How to become an Expert. Embrace Reality.&lt;/a&gt;&#xA;&lt;p&gt;&lt;a href=&quot;http://softwarecreation.org/2009/how-to-become-an-expert-the-effective-way/&quot; rel=&quot;nofollow&quot;&gt;How to Become an Expert. The Effective Way.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2657" LastEditorUserId="2657" LastEditorDisplayName="" LastEditDate="2010-10-02T15:33:46.537" LastActivityDate="2010-10-02T15:33:46.537" CommentCount="1" />
  <row Id="8128" PostTypeId="2" ParentId="2935" CreationDate="2010-09-29T06:19:24.783" Score="4" ViewCount="" Body="&lt;p&gt;&lt;p&gt;it allows me to create&#xA;&lt;p&gt;it's technical&#xA;&lt;p&gt;it's payed well enough&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-09-29T06:19:24.783" />
  <row Id="8129" PostTypeId="2" ParentId="8098" CreationDate="2010-09-29T06:31:08.390" Score="5" ViewCount="" Body="&lt;p&gt;Knowing about business and management - and marketing - certainly cant hurt.  It really depends on the context in which you work.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a large business where there's levels of management making decisions and where tasks are very well devided up based on job titles, it may not be that important.  Your company probably has dedicated people to handle that end of things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a small business, on the other hand, the more you know, the more direct value you are to a company.  For example, having a good marketing sense might help you feel out better/worse designs for a web site.  Or you may have to deal more with customers, or go along with a salesperson to help close a deal, or attend trade shows, or just plain be on the lookout for a possible new revenue source/saving opportunity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, as usual with a 'how much do I have to know' type question, the answer is, more knowlege is always better, but the extent of its importance really depends on your individual situation.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-29T06:31:08.390" CommentCount="1" />
  <row Id="8130" PostTypeId="2" ParentId="8020" CreationDate="2010-09-29T06:32:34.250" Score="0" ViewCount="" Body="&lt;p&gt;Probably depends on what platform you're going to build the app with (A web app? Desktop? C++? Java?), but I usually go directly from paper to the actual platform. Benefits: looks like the real thing because it is, and after you've figured out how to lay out the GUI, just add the needed functionality, and your app is done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's called &lt;a href=&quot;http://en.wikipedia.org/wiki/Rapid_application_development&quot; rel=&quot;nofollow&quot;&gt;Rapid Application Development&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-09-29T06:32:34.250" />
  <row Id="8131" PostTypeId="2" ParentId="8098" CreationDate="2010-09-29T06:36:50.593" Score="3" ViewCount="" Body="&lt;p&gt;At least you have to deeply understand that your salary is not just automatically coming from somewhere. You're not getting paid for sitting and coding. It's the success of sales and relationships with customers that makes or breaks your company's (and ultimately your) success. That's where the money comes from.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even in a large company where the programmers aren't directly in contact with end customers, it's worth emphasizing that it's &lt;strong&gt;shipping products early&lt;/strong&gt; that matters most. That's how the company wins sales and gets money and you get paid. Granted, shipping a half-assed product (too early) is a mistake too, and finding the right balance here is hard, but programmers tend to lean too much to the &quot;ship when it's completely done (which is almost never)&quot; side. But looking at the successful ones reveals the truth; few of them had a mature, finished, polished product to start with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowing and accepting that essence of running a business is the important thing. Even if you're not particularly interested in business (I'm not), you simply can't ignore it as &quot;white-collar stuff&quot; if you're yourself interested in getting paid. Technical details and vocabulary of business/management aren't that important to know, IMHO, although learning some basics certainly doesn't hurt.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-09-30T06:33:35.837" LastActivityDate="2010-09-30T06:33:35.837" />
  <row Id="8133" PostTypeId="2" ParentId="8120" CreationDate="2010-09-29T06:41:09.953" Score="5" ViewCount="" Body="&lt;p&gt;Entrepreneur! Nothing else! &lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-09-29T06:41:09.953" />
  <row Id="8134" PostTypeId="2" ParentId="7961" CreationDate="2010-09-29T06:47:06.563" Score="1" ViewCount="" Body="&lt;p&gt;According to &lt;a href=&quot;http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?isNumber=15476&amp;amp;arNumber=714843&amp;amp;isnumber=15476&amp;amp;arnumber=714843&quot; rel=&quot;nofollow&quot;&gt;van Solingen et al.&lt;/a&gt;, &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If more than 10 interrupts occur during a day, the time between interrupts becomes too short to accomplish product development work.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I agree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Linearly interpolating, 5 interrupts per day halves your productivity. This may or may not be acceptable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(It's obviously assumed that the interrupts occur at frequent intervals; 10 interrupts within 1 hour and then 7 hours of uninterrupted work should be ok.)&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-01T05:57:02.680" LastActivityDate="2010-10-01T05:57:02.680" />
  <row Id="8135" PostTypeId="2" ParentId="7861" CreationDate="2010-09-29T07:12:05.153" Score="5" ViewCount="" Body="&lt;p&gt;At this stage in my career, a dealbreaker is often the phrase, &quot;you will be required to do &lt;em&gt;some occasional&lt;/em&gt; support of existing legacy systems&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Too many times that has resulted in 90% of my time hacking at a VB6 app with no documentation to get it functional again.  You're the new guy, therefore the sh*tkicker who has to do the support work.&lt;/p&gt;&#xA;" OwnerUserId="91" LastActivityDate="2010-09-29T07:12:05.153" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="4" />
  <row Id="8136" PostTypeId="2" ParentId="8098" CreationDate="2010-09-29T07:18:29.347" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;but when my project manager starts talking about how we've won a new contract, or we're involved in a new proposal bid, or... anything that's business rather than technical, really... I can get lost pretty quickly.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The only to learn more about the business is to actually get involved. The meeting may not be the best forum to broach certain questions, but most definitely after such meetings ask your manager to expand on the proposal or the business related stuff that you got you lost. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Questions like, &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;what's the proposal process in the company?&lt;/li&gt;&#xA;&lt;li&gt;how did we get involved? &lt;/li&gt;&#xA;&lt;li&gt;how do we plan on billing the client?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Each of the above are small indicators of how your company works. It gets you closer to the internals and inner-workings so at least know how the business makes money. I think the main point here is to ask about the stuff you don't know!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also &quot;I can get lost pretty quickly&quot; either means to me, you give a sh1t or you really don't know. The attitude you have can make a difference if you want to learn more about it.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What is the bare minimum all developers need to know about project management/business to function?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;On this aspect, I don't think there is a concrete answer. My initial thoughts would be some basic accounting and people skills. Project management and running a business are two different things, however there will be some overlapping skill sets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just remember - the skills you learn as a developer 'sometimes' (if not most most times) become null and void when you shift to a higher position (such as a manager). Eg. your people skills will really need to more focussed on now compared to your previous role as a developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;General tip - learn/practise/improve on other less technical skills early in your career since this will be beneficial in later years (unless of course you &lt;a href=&quot;http://programmers.stackexchange.com/questions/8120/what-do-you-want-to-be-when-you-grow-up&quot;&gt;still deciding&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="2545" LastActivityDate="2010-09-29T07:18:29.347" />
  <row Id="8137" PostTypeId="2" ParentId="8120" CreationDate="2010-09-29T07:21:42.233" Score="13" ViewCount="" Body="&lt;p&gt;Great question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I often find that developers will say they only want to keep coding for about 5 years and then '&lt;em&gt;move onto something else&lt;/em&gt;'.  Usually that involves project management or something completely different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I never understand that.  &lt;strong&gt;If I win the lottery tomorrow I'll still keep coding&lt;/strong&gt;.  (Some other stuff might change though)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I guess my answer is: &lt;strong&gt;I want to be a programmer!&lt;/strong&gt; :D&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-29T07:21:42.233" CommentCount="1" />
  <row Id="8138" PostTypeId="2" ParentId="8098" CreationDate="2010-09-29T07:22:06.600" Score="4" ViewCount="" Body="&lt;p&gt;I think you need to understand how your company makes money. You also need to be able to evaluate if you should do anything to help it make more money, i.e. do your job better. Most importantly this means that you need to be able the tell which task you're working on you should put the most effort into and how to prioritize the tasks you've been given.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, programmers need to understand that even though something might technically be the best choice, that choice might not be the best choice for the business. And that is a good reason to not take the technically best way.&lt;/p&gt;&#xA;" OwnerUserId="2929" LastActivityDate="2010-09-29T07:22:06.600" CommentCount="1" />
  <row Id="8139" PostTypeId="2" ParentId="8117" CreationDate="2010-09-29T07:27:04.080" Score="4" ViewCount="" Body="&lt;p&gt;Onsite means you will go in europe or us?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's an opportunity for you to eat real fat food!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, people like you that spend few years in western countries and then come back in india are very valuable.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-29T07:27:04.080" CommentCount="3" />
  <row Id="8140" PostTypeId="2" ParentId="4404" CreationDate="2010-09-29T07:35:19.883" Score="1" ViewCount="" Body="&lt;p&gt;I can remember doing binary in 3rd or 4th grade (Junior school in England) back around 1970. It was part of a section dealing with non-base 10 work.&lt;/p&gt;&#xA;" OwnerUserId="598" LastActivityDate="2010-09-29T07:35:19.883" />
  <row Id="8141" PostTypeId="2" ParentId="8120" CreationDate="2010-09-29T07:50:21.393" Score="2" ViewCount="" Body="&lt;p&gt;I've no interest in management. It's &lt;em&gt;paperwork&lt;/em&gt;, for goodness' sake. &quot;Hi, I aspire to be a bureaucrat.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll settle for being better at what I'm good at, thanks: writing software.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-09-29T07:50:21.393" CommentCount="1" />
  <row Id="8142" PostTypeId="1" CreationDate="2010-09-29T07:53:22.130" Score="10" ViewCount="215" Body="&lt;p&gt;Coming from a &quot;standalone&quot; programmer job, which methods or tools do you use when the time has come to have to drive a team of programmers as project manager (but still coding with the crew) to explain, prepare and distribute the work to be done by the team ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So a big project is coming, you're chosen as Lead Programmer, what do you use as method and tools to have the job done by the team ?&lt;/p&gt;&#xA;" OwnerUserId="133" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-01T10:54:26.180" LastActivityDate="2010-10-13T17:30:09.120" Title="From programmer to programmers coach" Tags="&lt;career&gt;&lt;project-management&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="2" />
  <row Id="8143" PostTypeId="2" ParentId="8120" CreationDate="2010-09-29T07:55:59.963" Score="2" ViewCount="" Body="&lt;p&gt;I like very much to observe people &quot;like&quot; me but when they are 45 or 50 years old. It helps me see my (potential) future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I've observed is that there is very few developer that are 45 or 50 years old. And the few I met are clearly unhappy. I know there is some on P.SE, so please make me happy by telling me that old coders can be happy ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I already took the management path, but I still code. In my company, but also for my private fun projects (I'm building a robot with my kids and the Arduino open source platform).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The truth is that you don't know what will be your expectation in 10 or 15 years. Today you are happy with coding, some coffee, music in your head, and P.SE time waster, but what will you look like at your early fifthy's ?&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-29T07:55:59.963" CommentCount="3" />
  <row Id="8144" PostTypeId="2" ParentId="8142" CreationDate="2010-09-29T08:06:56.493" Score="1" ViewCount="" Body="&lt;p&gt;Your question remember me a project I was on. A developer was promoted &quot;team leader&quot; in a large enterprise project with no experience. Zero. Nada. He did his best. But that was more the military way. The project was a real war zone. That was a disaster. I learnt a lot from that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that if you want to be a coach, you must find a coach yourself. Or a mentor, but someone with experience that will helps you avoiding obvious mistakes and let you fail gently on others to help your learn and be an effective project manager or team leader.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your company is big enough, you will find people to talk with very easily. Invite them to lunch, talk about your situation, and keep in touch with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your company is small, ask your management to book some trainings and conferences on the subject. Then be careful and try to observe the consequence of your acts to find what worked and what worked less well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Management is a very hard thing as it's not as binary as programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are few pointers:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0932633439&quot; rel=&quot;nofollow&quot;&gt;Peopleware&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0767907698&quot; rel=&quot;nofollow&quot;&gt;Slack&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0140157352&quot; rel=&quot;nofollow&quot;&gt;Getting To Yes&lt;/a&gt; (very useful for conflict management)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0743269519&quot; rel=&quot;nofollow&quot;&gt;7 Habits of effective people&lt;/a&gt; (the second part of the book is about people)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0762428538&quot; rel=&quot;nofollow&quot;&gt;The 8th Habit&lt;/a&gt; (complementary to the book above)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0142000280&quot; rel=&quot;nofollow&quot;&gt;Getting Things Done&lt;/a&gt; (you must be very well organized yourself)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-29T08:06:56.493" CommentCount="2" />
  <row Id="8145" PostTypeId="1" CreationDate="2010-09-29T08:14:50.323" Score="6" ViewCount="427" Body="&lt;p&gt;Looking at common Agile practices it seems to me that they (intentionally or unintentionally?)  force developer to spend more time actually working as opposed to reading blogs/articles, chatting, coffee breaks and just plain procrastinating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In particular:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Pair programming - the biggest work-forcer, just because it is inconvenient to do all that procrastination when there are two of you sitting together.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Short stories - when you have a HUGE chunk of work that must be done in e.g. a month, it is pretty common to slack off in the first three weeks and switch to OMG DEADLINE mode for the last one. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And with the little chunks (that must be done in a day or less) it is exact opposite - you feel that time is tight, there is no space for maneuvering, and you will be held accountable for the task pretty soon, so you start working immediately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Team communication and cohesion - when you underperform in a slow, distanced and silent environment it may feel ok, but when at the end of the day at Scrum meeting everyone boasts what they have accomplished and you have nothing to say you may actually feel ashamed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) Testing and feedback - again, it prevents you from keeping tasks &quot;99% ready&quot; (when it's actually around 20%) until the deadline suddenly happens.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you feel that under Agile you work more than under &quot;conventional&quot; methodologies? Is this pressure compensated by the more comfortable environment and by the feeling of actually getting right things done quickly?&lt;/p&gt;&#xA;" OwnerUserId="1409" LastActivityDate="2011-05-11T07:06:45.203" Title="Does Agile force developers to work more?" Tags="&lt;agile&gt;" AnswerCount="8" CommentCount="3" />
  <row Id="8146" PostTypeId="2" ParentId="8120" CreationDate="2010-09-29T08:16:46.183" Score="8" ViewCount="" Body="&lt;p&gt;Happy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Garbage for the 15 character minimum)&lt;/p&gt;&#xA;" OwnerUserId="2856" LastActivityDate="2010-09-29T08:16:46.183" CommentCount="3" />
  <row Id="8147" PostTypeId="2" ParentId="7427" CreationDate="2010-09-29T08:20:02.927" Score="0" ViewCount="" Body="&lt;p&gt;Iv only experienced this once, but this wasnt from a senior, it was from a colleague, in a different team. Had the option of ignore it, have a quick informal chat with my boss, or make everything very formal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I went down the option of a Formal Grievance (am based in the UK), and made the whole thing very official.&lt;/p&gt;&#xA;" OwnerUserId="3314" LastActivityDate="2010-09-29T08:20:02.927" />
  <row Id="8148" PostTypeId="2" ParentId="8145" CreationDate="2010-09-29T08:25:03.343" Score="7" ViewCount="" Body="&lt;p&gt;I agree.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Pair programming&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Is a very intense and exhaustive way of working, and I never apply it unless I have some developers that needs to be coached by others (new comers for example)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Short stories&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Team communication and cohesion&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Testing and feedback&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes Agile and specifically &lt;strong&gt;Scrum&lt;/strong&gt; is a huge productivity booster. When applied correctly, the turn over can be up to 20% (1 developer on 5 leaves the company).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason is simple: &lt;strong&gt;Scrum&lt;/strong&gt; doesn't not provide more productivity, &lt;code&gt;it provides the whole company with much more visibility on what's going on&lt;/code&gt; (including in the management of course).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;It makes impossible for a developer to just do the bare minimum. The bare minium is now the team average!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It makes impossible for the management to not collaborate properly.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This is why I said (in my other answers in similar questions), that &lt;strong&gt;Agile is NOT for every organisation&lt;/strong&gt; (and for everyone).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, Public sector is really not suited for Agile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Agile being used as a pressure tool ? Of course, I've seen that many times. It just makes things much more worse.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-29T08:25:03.343" CommentCount="4" />
  <row Id="8149" PostTypeId="2" ParentId="8093" CreationDate="2010-09-29T08:33:07.890" Score="5" ViewCount="" Body="&lt;p&gt;In my experience, Mathematical formulae are used for very specific calculations, which may or may not apply to your project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need to calculate something, there is usually a function in a library or example source code around that can calculate it for you. For example, Excel's PMT() function, that calculates the payments required to repay a debt at X% over Y periods. Do you really want to have to know how it calculates it, or is it sufficient to just call the built-in one?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the last 10 years, I don't think I've needed to use anything from the Math library other than Ceil(), Min() and Max(), which shows that even though computers were devised to solved math-based problems, the common use today is decision-making around the flow of data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take, for example, Facebook, which has a massive amount of code. There's probably some Math in there somewhere, but I suspect mainly in the Crypto API, which is probably a system library. But the database access, authorization decisions, page building and information routing probably don't use a whole lot of Math.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, there are markets that need lots of Math - finance, physics, engineering - but in these industries, your primary discipline is more likely to be Math/Economics, Physics, Engineering, etc, so your questions would be 'how can I write formula f(x) in language Y?'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A better use of your time, IMO, would be to investigate Algorithms (including Big O notation) and Design Patterns.&lt;/p&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-09-29T08:39:06.140" LastActivityDate="2010-09-29T08:39:06.140" CommentCount="3" />
  <row Id="8150" PostTypeId="2" ParentId="7861" CreationDate="2010-09-29T08:40:27.487" Score="3" ViewCount="" Body="&lt;p&gt;My interview &quot;trick question&quot; is usually something along the lines of &quot;What do you guys do for fun?&quot;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, teams that really gel together end up doing fun stuff together outside of work as well -- bowling, playing badminton, wolpertinger hunting, it doesn't really matter.  A blank look from the interviewer at this point is usually a giant red flag for me.&lt;/p&gt;&#xA;" OwnerUserId="3991" LastActivityDate="2010-09-29T08:40:27.487" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="3" />
  <row Id="8151" PostTypeId="2" ParentId="8076" CreationDate="2010-09-29T08:41:36.057" Score="8" ViewCount="" Body="&lt;p&gt;Several of us have seen a Pascal/FORTRAN programmer define C or C++ macros like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  #define BEGIN {&#xA;  #define END   }&#xA;  #define AND   &amp;amp;&amp;amp;&#xA;  #define OR    ||&#xA;  #define NEQ   !=&#xA;  #define EQUAL ==&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;..and then continue to write Pascal/Fortran code in a C++ environment. I can understand the need to easily port existing code, but most text editors have Search-And-Replace functions nowadays!&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-09-29T08:41:36.057" CommentCount="2" />
  <row Id="8152" PostTypeId="2" ParentId="8145" CreationDate="2010-09-29T08:49:19.757" Score="2" ViewCount="" Body="&lt;p&gt;In our company,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pair Programming - When something really complex and does require broad analysis, even we would put two excellent people together and get the task done in QUICK time. Here the complexity of the task decides the need of pair programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Short Stories - Then slacking off for 3 weeks (approx 5-6 hours per day) and rushing at the last moment (approx 12 to 14 hours per day) as a developer I don't like to have a oscillation in my work burden. Work around 8 hours per day and keep your schedule stable and this always looks COOL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Team communication and cohesion - In scrum meeting we not only share the task status but  the obstacles too. Here when someone is really in need of help other members would actually come up with their ideas to help him out. But certainly you need a excellent Team for this and we are :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Testing and feedback - Certainly as a developer I do not want myself to be burdened with Bugs at last, the next moment after you find a bug was to fix it and again, this would allow me to have a good forecast of what should/can be done next and reschedule the deadline (if needed) accordingly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, as a developer I am much happy with the kind of task I take and damn sure I can say that I never felt the REAL pressure of deadline.&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-09-29T08:49:19.757" />
  <row Id="8153" PostTypeId="2" ParentId="6905" CreationDate="2010-09-29T08:56:55.680" Score="3" ViewCount="" Body="&lt;p&gt;I suggest to use TestNG as core unit test framework for Java project, because TestNG is more advance in parameterize testing, dependency testing and suite testing (Grouping concept). TestNG is meant for high-level testing and complex integration test. Its flexibility is especially useful with large test suites. In addition, TestNG also cover the entire core JUnit4 functionality. It’s just no reason for me to use JUnit anymore.&lt;/p&gt;&#xA;" OwnerUserId="3993" LastActivityDate="2010-09-29T08:56:55.680" CommentCount="1" />
  <row Id="8154" PostTypeId="2" ParentId="8117" CreationDate="2010-09-29T09:09:31.297" Score="1" ViewCount="" Body="&lt;p&gt;The onsite opportunity is a &lt;em&gt;temporary carrot&lt;/em&gt; offered by your company - it is a great opportunity for you to work abroad, experience a different culture and it looks good on your CV for the future too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;If you are happy with the QA job you're doing now, there's no reason to refuse this.&lt;/em&gt;&#xA;Remember testing is a very key aspect of software delivery, dont think it is menial - or that programming is more glamourous.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to shift to a Programming role, you could ask for that shift within your project. Get used to some basic activity within the company itself, usually by reading the source code and fixing bugs (perhaps which you have raised yourself ;)&#xA;Once you feel more confident, you could look outside for a better role.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only one person can answer this, and that is You. It depends on your current priorities and future plans. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My &lt;em&gt;personal&lt;/em&gt; opinion is to go onsite when you get the chance, you might like it very much.  &lt;/p&gt;&#xA;" OwnerUserId="1681" LastActivityDate="2010-09-29T09:09:31.297" />
  <row Id="8155" PostTypeId="2" ParentId="8145" CreationDate="2010-09-29T09:15:56.887" Score="11" ViewCount="" Body="&lt;p&gt;The main idea behind the agile methods is to help you be productive - in a positive sense. No one cares if you spend an hour surfing every day if you meet the deadline. Everyone gets mad if you surf half an hour every day but miss your deadline. The solution: Make it easier for you to meet the deadline.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you noticed, pair programming makes sure you stay focused (among all the other advantages like improving skill/knowledge spreading, better code, less bugs, uniform design, etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found that discipline is always a struggle for me. If I pair with someone, chances are that one of us wants some work done today and pulls the other along. So the &quot;work for a month&quot; often becomes turns into &quot;work together for one week&quot;, being surprised how that huge amount of work resolved in the end, spend a day or so recovering (refactoring, fixing TODOs in the code, adding a couple of tests, surfing with a clear conscience) and then grabbing the next month of work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Net result: I'm much more relaxed (more because than despite the constant supervision), team cohesion is much better, work gets done more quickly, people don't hang around some minor issue for hours or even days (because someone else can spot the problem much faster).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you say &quot;you may actually feel ashamed&quot;, isn't that a good thing? It means you feel that you did wrong and you should. You're not getting paid to get nothing done. Not getting anything done makes you feel helpless, unhappy, unworthy, miserable. Instead of feeling ashamed, stand back and think &quot;Why didn't I accomplish anything today?&quot; Do you need help? Is there something you don't understand? Is the current task too hard? You don't like it? Maybe you can switch the task with someone else. Maybe someone else can help you get through. Agile means: Assume responsibility instead of being micro-managed like a puppet on strings. You need a tool? Go to your boss and ask for it. Learn to argue. Learn to stand up and shout when you have to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for tests, there is a sweet spot when your code suddenly collapses from &quot;nice&quot; to &quot;perfect&quot;. That's the moment when you notice that you need to implement feature X and you thought that will be a nightmare and suddenly realize that the code is almost there. Just a small refactoring here and there. A new class and done. Four weeks of work suddenly became a day. Victory! Triumph!&lt;/p&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-09-29T09:15:56.887" CommentCount="1" />
  <row Id="8156" PostTypeId="2" ParentId="8145" CreationDate="2010-09-29T09:16:36.403" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Do you feel that under Agile you work more than under &quot;conventional&quot; methodologies? Is this pressure compensated by the more comfortable environment and by the feeling of actually getting right things done quickly?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It makes me work more, but above all, it makes me work on the right thing. &lt;em&gt;At any given moment I know what I should be doing&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's kind of positive pressure. That's quite different from some external &quot;you're already behind the schedule, work more, code overtime!&quot; -kind of pressure.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-09-29T09:16:36.403" />
  <row Id="8157" PostTypeId="1" AcceptedAnswerId="9271" CreationDate="2010-09-29T09:16:38.743" Score="8" ViewCount="219" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work at a company where we have a lot of different skillsets in the development team. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We do all of the following (generally geared towards web):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;.NET (MVC, Umbraco, ASP.NET, Surface)&lt;/li&gt;&#xA;&lt;li&gt;Java (Spring, Hibernate, Android) &lt;/li&gt;&#xA;&lt;li&gt;PHP (Zend, Code igniter) &lt;/li&gt;&#xA;&lt;li&gt;Actionscript 3&lt;/li&gt;&#xA;&lt;li&gt;AIR&lt;/li&gt;&#xA;&lt;li&gt;Objective-C&lt;/li&gt;&#xA;&lt;li&gt;Html/Javascript (obviously)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;We're trying to streamline our development process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We currently have a TeamCity server that builds and deploys .NET projects with msbuild/msdeploy/nant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I want is something like maven that will give us a standard project template structure that works for most projects to allow people from different teams to move between projects easily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently this works on one platform because we tend to do things in a standard way for that platform (as long as certain people have been involved) however I want to use something like maven to standardise how a project is laid out and built.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone tried anything like this before? Experiences? Books?&lt;/p&gt;&#xA;" OwnerUserId="3646" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:08:37.447" LastActivityDate="2010-11-16T15:08:37.447" Title="Creating a platform agnostic development team hegemony" Tags="&lt;best-practices&gt;&lt;team&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="1" />
  <row Id="8158" PostTypeId="2" ParentId="8120" CreationDate="2010-09-29T09:32:11.300" Score="0" ViewCount="" Body="&lt;p&gt;To be Coding and Shipping (or making it ship, but still coding as well).&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-09-29T09:32:11.300" />
  <row Id="8159" PostTypeId="1" CreationDate="2010-09-29T09:35:51.267" Score="4" ViewCount="361" Body="&lt;p&gt;This question arose after I noticed that a lot of the questions and answers here (and in other forums) have spelling and grammatical mistakes. I personally am very finicky about these things. Are all programmers like that? I feel it's directly tied in to the attention to detail that programmers have, and also a desire to get things right.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-05-05T11:10:53.353" LastActivityDate="2011-05-05T11:24:16.983" Title="Are programmers more nitpicky about spelling and grammar?" Tags="&lt;behavior&gt;&lt;programmers&gt;" AnswerCount="12" CommentCount="7" />
  <row Id="8160" PostTypeId="2" ParentId="7927" CreationDate="2010-09-29T09:37:41.750" Score="2" ViewCount="" Body="&lt;p&gt;A little less technical answer: don't program when you are tired (9h/day are enough), drunk or 'baked'. When I'm tired I don't have the required patience to write clean code.&lt;/p&gt;&#xA;" OwnerUserId="2391" LastActivityDate="2010-09-29T09:37:41.750" />
  <row Id="8161" PostTypeId="2" ParentId="8104" CreationDate="2010-09-29T09:42:27.157" Score="7" ViewCount="" Body="&lt;p&gt;I work in an open plan office, that is divided into several spaces by glass walls and doors (the entire business is on a single floor, and you can see end-to-end). There are several separate meeting and concentration rooms where you can go sit with your laptop if you need to focus, have meetings, make phone calls, .... The programmers all sit in a separate but shared space (no walls in between the programmers). There is the agreement that if you hold a conversation, and it starts to bother people, they can send you to one of the separate rooms. This tends to keep people in line automatically (they'll move to a separate room by themselves if they need to talk).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall, I can't say that I am bothered by noise. Sitting in a private office would not make it meaningfully easier to concentrate, and it would separate me physically from my fellow programmers, which I wouldn't like.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-29T09:42:27.157" CommunityOwnedDate="2011-02-20T23:49:56.727" />
  <row Id="8162" PostTypeId="2" ParentId="8159" CreationDate="2010-09-29T09:51:57.817" Score="2" ViewCount="" Body="&lt;p&gt;Hi there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When communicating, be it in code or email/documentation, etc, I strive to write clear, easy to understand text. For example, I use a spell checker extension for VS 2010 which catches misspellings in strings and code comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Communication in software development is, for me, a very crucial aspect of success.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers.&#xA;Jas.&lt;/p&gt;&#xA;" OwnerUserId="3668" LastActivityDate="2010-09-29T09:51:57.817" CommentCount="3" />
  <row Id="8163" PostTypeId="2" ParentId="2042" CreationDate="2010-09-29T09:54:48.257" Score="0" ViewCount="" Body="&lt;p&gt;I tried a few times and it worked great. Unfortunately most of the time if I can manually test my app I postpone unit tests until I feel too bored to implement something else or there is a bug I cannot easily fix.&lt;/p&gt;&#xA;" OwnerUserId="2391" LastActivityDate="2010-09-29T09:54:48.257" CommentCount="1" />
  <row Id="8164" PostTypeId="2" ParentId="8159" CreationDate="2010-09-29T09:59:46.273" Score="1" ViewCount="" Body="&lt;p&gt;I think so. It's probably mostly because when coding a single spelling mistake can degrade code ever-so-quickly.&lt;/p&gt;&#xA;" OwnerUserId="2616" LastActivityDate="2010-09-29T09:59:46.273" />
  <row Id="8165" PostTypeId="2" ParentId="8104" CreationDate="2010-09-29T10:14:33.770" Score="0" ViewCount="" Body="&lt;p&gt;At my work you have to have a very high rank to work in an office.  I'm coming up on 5 years and still have a long way to go to get to the level of having my own office.  In my group's defense we work for a big company and have to abide by their rules, my group at least caters to us with nice keyboards and monitors and other perks. On to your questions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I have a 'nasty old cube' assigned to me but i'm almost never there, my particular group happens to work in a secure lab with 20-ish developers all setup at lab benches in open space.&lt;/li&gt;&#xA;&lt;li&gt;I'm a Sr. software engineer, which may map more closely to 'Programmer II&quot;&lt;/li&gt;&#xA;&lt;li&gt;My group is pretty software centric but our company as a whole does lots of other stuff so we're not a 'software-only' shop&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Thanx, T.J.&lt;/p&gt;&#xA;" OwnerUserId="2492" LastActivityDate="2010-09-29T10:14:33.770" CommunityOwnedDate="2011-02-20T23:49:56.727" />
  <row Id="8166" PostTypeId="2" ParentId="8159" CreationDate="2010-09-29T10:28:00.317" Score="2" ViewCount="" Body="&lt;p&gt;It's not specific to programming world. It's everywhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is that the common language on the internet is &lt;code&gt;english&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But that's the native language of a part of the people involved in communities. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Too and many native english speakers forget that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My native language is not english, and I do my best to write it correctly. I think it's what most of us do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always appreciate when someone edit my post as it helps me to learn. That's the most constructive approach.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-29T10:28:00.317" CommentCount="2" />
  <row Id="8167" PostTypeId="2" ParentId="8159" CreationDate="2010-09-29T10:28:49.583" Score="0" ViewCount="" Body="&lt;p&gt;I think Yes. ===&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-29T10:28:49.583" />
  <row Id="8168" PostTypeId="2" ParentId="7861" CreationDate="2010-09-29T10:29:07.333" Score="1" ViewCount="" Body="&lt;p&gt;If the company doesn't have a control version, you can put it. You should be scared if they say in the interview, that everyone do unpaid overtime (because they are the best or whatever), or they focus too much on the money you will earn in the future (someday...).&lt;/p&gt;&#xA;" OwnerUserId="4008" LastActivityDate="2010-09-29T10:29:07.333" CommunityOwnedDate="2010-10-01T04:30:47.273" />
  <row Id="8169" PostTypeId="2" ParentId="5215" CreationDate="2010-09-29T10:33:41.430" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://brightonalt.net/&quot; rel=&quot;nofollow&quot;&gt;Brighton ALT.NET Beers&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4009" LastActivityDate="2010-09-29T10:33:41.430" />
  <row Id="8170" PostTypeId="2" ParentId="8104" CreationDate="2010-09-29T10:34:30.663" Score="2" ViewCount="" Body="&lt;p&gt;I worked in a security company which sells alarms. All the IT and Tech operations where in the same floor, with long lines of desks facing each other. It was hell to work there, since most of the time, some of the tests required some alarm to be set. All day long you were working with 60+ people, on-desk meetings, alarms going on and on.&#xA;Best place I worked at we had a small office for all three of us programmers. It was apart from the rest of the business departments and I loved it. The only conversations were technical or about girls.&lt;/p&gt;&#xA;" OwnerUserId="4007" LastActivityDate="2010-09-29T10:34:30.663" CommunityOwnedDate="2011-02-20T23:49:56.727" />
  <row Id="8171" PostTypeId="2" ParentId="8120" CreationDate="2010-09-29T10:34:49.337" Score="4" ViewCount="" Body="&lt;p&gt;I'm in my early 60's.  I have no plans to retire (oh, someday I might semi-retire and cut back to 40 hours a week). Both my father and grandfather had their own business, and each was still working some when they each died in their mid-80's, so I guess I take after them.  I've written programs in over a dozen languages and am currently learning two more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been writing code for 40 years, and freelancing for the last 32 years.   A few years after I started out on my own I was turning down work, and the idea came to me, if I hire some more people, I can pay them a fixed salary and bill them out a few dollars below my rate, and make a lot more money overall.  I was right -- in a couple of years I had an office with five rooms, four people working for me and I was bringing in gobs of money.  &lt;em&gt;I hated it.&lt;/em&gt;  I was spending all my time managing my employees, and hardly any time coding any more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I gradually let them go, and after a couple more years I was back to just myself again.  Which is how I have been ever since.  I love to code (I do embedded hardware/software mostly, but also some web stuff).   I currently have one full-time contract and three smaller ones.  I told the CEO at my main job (it's a small startup which I helped found) that I didn't want to be a manager or architect, I just wanted to code and design circuits, so he hired someone else to be a manager of our small (three person) group of programmers.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2011-04-25T03:24:45.770" LastActivityDate="2011-04-25T03:24:45.770" CommentCount="4" />
  <row Id="8172" PostTypeId="2" ParentId="8159" CreationDate="2010-09-29T10:36:21.843" Score="3" ViewCount="" Body="&lt;p&gt;Very much so in my case.  Some people call me &quot;the grammar Nazi&quot;.  I often find myself arguing with my boss not only about design and code, but also about grammar and spelling, as well as proper terminology - i.e. it's not because an expression means &quot;this&quot; that it is appropriate to use it &quot;here.&quot;  Our applications have to be available in both English and French, so that doubles the fun. :)  English is my second language though, and I'm still learning.  And it's not like French is that easy either.  Some people take it the wrong way when we correct them, but personally I see it as a learning opportunity.  In fact I'll take it the wrong way if someone notices an error I made - especially if I do it often - and doesn't tell me. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find it's important not only in the delivered applications (if anything, that's professionalism), but also in code comments.  We've had several people work on our project, and sometimes I run into comments so plagued with spelling and grammar mistakes that I'm not even sure what the hell they're saying...&lt;/p&gt;&#xA;" OwnerUserId="3842" LastActivityDate="2010-09-29T10:36:21.843" />
  <row Id="8173" PostTypeId="2" ParentId="7927" CreationDate="2010-09-29T10:36:53.297" Score="1" ViewCount="" Body="&lt;p&gt;I think the most important technique is &lt;em&gt;take your time&lt;/em&gt;. If you feel you need two days to code a new module, but you boss force you to code only in one day... your code will be probable more buggy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the books I read some time ago, said that you shouldn't live with &lt;em&gt;broken windows&lt;/em&gt;, because people won't care if anotherone gets broken... Coding is the same, everyone will care about being the first in doing something &lt;em&gt;bad but fast&lt;/em&gt;, but none will care about one &lt;em&gt;hell code&lt;/em&gt;, with lots of bugs, and very poor design and style.&lt;/p&gt;&#xA;" OwnerUserId="4008" LastActivityDate="2010-09-29T10:36:53.297" />
  <row Id="8174" PostTypeId="2" ParentId="8093" CreationDate="2010-09-29T10:37:09.567" Score="5" ViewCount="" Body="&lt;p&gt;There is no formula that can make you a better programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Math related skills can make you a better programmer:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Scientific method&lt;/strong&gt; - math/science way of thinking and&#xA;problem solving&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Abstraction&lt;/strong&gt; - ability to recognize abstractions and&#xA;patterns&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Inheritance&lt;/strong&gt; - reuse of existing work/methods in solving new&#xA;problems&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Experience&lt;/strong&gt; - understanding a set of problems and&#xA;solutions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2913" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-12-31T23:04:51.993" LastActivityDate="2010-12-31T23:04:51.993" CommentCount="1" />
  <row Id="8175" PostTypeId="2" ParentId="8120" CreationDate="2010-09-29T10:40:37.567" Score="0" ViewCount="" Body="&lt;p&gt;I think it is very difficult to be technologically updated for an artitrary time... You could program an old-fashined technology, without young people to be interested in... But it is matter of numbers, that every programmer cannot be manager in the future.&lt;/p&gt;&#xA;" OwnerUserId="4008" LastActivityDate="2010-09-29T10:40:37.567" />
  <row Id="8176" PostTypeId="2" ParentId="39" CreationDate="2010-09-29T10:42:11.603" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Linux is only free if your time has no value.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Memory is like an orgasm. It's a lot better if you don't have to fake it.&#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; Seymour Cray on virtual memory&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-10-29T09:11:16.483" CommunityOwnedDate="2010-09-29T10:42:11.603" CommentCount="3" />
  <row Id="8177" PostTypeId="2" ParentId="8142" CreationDate="2010-09-29T10:42:43.877" Score="1" ViewCount="" Body="&lt;p&gt;It's a great challenge to take on leadership position. I've ever tried to follow some psychology and management theories on my first time to be a leader. However, I didn't get them quite right. If you can get them right, congratulations, you are talented as a leader! If you don't, don't worry about it. At least you have opportunity to take leadership and learn from it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before you lead your team, make sure you understand yourself first. What are your style, motivations, strengths and weaknesses? There are a lot of frameworks out there, but the ones that apply to your team depend on yourself. Keep improving your knowledge as a programmer and a leader. Be interested in and learn from the people you lead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please don't leave out your technical knowledge, because your team members can laugh at your back if you eventually can't do anything about programming. If you have something you know but your team member doesn't know, be sure to show him rather than to tell him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you understand yourself, you may look at the following four points.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;How many people are within your team? What development style that may suit your team? Agile? Waterfall?&lt;/li&gt;&#xA;&lt;li&gt;What are each team member's hard skills?&lt;/li&gt;&#xA;&lt;li&gt;How is each team member's style? (I usually use Hersey-Blanchard Situational Leadership Theory and DISC personality assessment)&lt;/li&gt;&#xA;&lt;li&gt;How strong is each team member's motivation (I usually use Herzberg's Motivation-Hygiene Theory and Maslow's Theory of Motivation)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;All those four things are for you to distribute the load to your team. It doesn't have to be balanced; just make sure each of them can get to their full potential. Also, the four points are useful to help you understand why some things work well or don't work as you expected. You can look for further solutions if you understand reason why something is wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can look for other theories that you are comfortable with.&#xA;As this your first time, you may slip out at times. If that happens, practice admitting your mistakes and take charge. Also, when some of your team members slip out, it is best you cover for your team. This is to create sense of ownership throughout the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One book I can recommend is &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/032171153X&quot; rel=&quot;nofollow&quot;&gt;Reflections on Management: How to Manage Your Software Projects, Your Teams, Your Boss, and Yourself&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, this text doesn't explain much.. so go and look for any leaders you admire, and copy their good qualities. Leaders don't have to be in the top positions. Have fun!&lt;/p&gt;&#xA;" OwnerUserId="4011" LastActivityDate="2010-09-29T10:42:43.877" />
  <row Id="8178" PostTypeId="2" ParentId="8159" CreationDate="2010-09-29T10:45:47.620" Score="2" ViewCount="" Body="&lt;p&gt;I find it interesting that the question, and all the answers so far, have grammatical errors. Clearly this means I am a pedant for spotting them. I don't know many other programmers who are fanatical about correct grammar though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;p.s. I eagerly await a comment that highlights a grammatical error in this answer.&lt;/p&gt;&#xA;" OwnerUserId="4009" LastActivityDate="2010-09-29T10:45:47.620" CommentCount="6" />
  <row Id="8179" PostTypeId="2" ParentId="7427" CreationDate="2010-09-29T10:49:02.980" Score="1" ViewCount="" Body="&lt;p&gt;First you should tell &lt;strong&gt;him&lt;/strong&gt; you are not comfortable with that situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this doesn't work (typical), you should tell &lt;strong&gt;your boss&lt;/strong&gt; (that probably is not that senior programmer, because he is not qualified).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't, or this doesn't work, you should tell the &lt;strong&gt;person/department that hired you&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;You are not responsible of the frustration of your co-worker, none is born knowing to code, so he was in the same situation&lt;/strong&gt; in the past.&lt;/p&gt;&#xA;" OwnerUserId="4008" LastActivityDate="2010-09-29T10:49:02.980" />
  <row Id="8180" PostTypeId="2" ParentId="8159" CreationDate="2010-09-29T10:54:54.523" Score="8" ViewCount="" Body="&lt;p&gt;I'm known in our office as the nit-picky guy who always points out spelling errors in other people's PowerPoint presentations.  So one meeting I just stuffed it and let one go.  At the end of the slide, someone else piped up, &quot;Hey Tom, didn't you notice &lt;em&gt;such and such&lt;/em&gt; was misspelled?&quot;  So now I'm back to being the spelling cop again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(You'll also notice a lot of my posts are edited, like this one -- usually for grammatical errors I discover after the fact.)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-09-29T11:35:01.357" LastActivityDate="2010-09-29T11:35:01.357" CommentCount="1" />
  <row Id="8181" PostTypeId="2" ParentId="8145" CreationDate="2010-09-29T11:04:35.323" Score="1" ViewCount="" Body="&lt;p&gt;Agile doesn't force developers to work &lt;em&gt;more&lt;/em&gt;, but to work &lt;em&gt;more efficiently&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="4008" LastActivityDate="2010-09-29T11:04:35.323" />
  <row Id="8182" PostTypeId="2" ParentId="8076" CreationDate="2010-09-29T11:05:26.617" Score="3" ViewCount="" Body="&lt;p&gt;I begin to see examples of &lt;a href=&quot;http://en.wikipedia.org/wiki/Imperative_programming&quot; rel=&quot;nofollow&quot;&gt;imperative coding&lt;/a&gt; in a functional language like Scala: since it is based on the JVM stack, some Java developers are tempted to dabble in Scala without having taken the time to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;understand all the &lt;a href=&quot;http://stackoverflow.com/questions/3112725/advantages-of-scalas-type-system/3113741#3113741&quot;&gt;Scala Type system&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;the way Scala operates (like the &lt;a href=&quot;http://stackoverflow.com/questions/1052476/can-someone-explain-scalas-yield&quot;&gt;translations behind a simple &quot;for&quot;&lt;/a&gt; for instance)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3915" LastActivityDate="2010-09-29T11:05:26.617" CommentCount="1" />
  <row Id="8183" PostTypeId="2" ParentId="1701" CreationDate="2010-09-29T11:08:21.710" Score="4" ViewCount="" Body="&lt;p&gt;I've found &lt;a href=&quot;http://pragprog.com/titles/algh/land-the-tech-job-you-love&quot; rel=&quot;nofollow&quot;&gt;Land the Tech Job You Love&lt;/a&gt; which came out 2009 to be very useful. Practical advice on prioritizing you personal wish list for jobs, and simple advice about chucking out the unofficial CV rules to bring more relevant experience to the front.  &lt;/p&gt;&#xA;" OwnerUserId="4013" LastActivityDate="2010-09-29T11:08:21.710" />
  <row Id="8185" PostTypeId="1" CreationDate="2010-09-29T11:18:07.467" Score="9" ViewCount="753" Body="&lt;p&gt;Nerd sniping: Asking a question designed to make you stop what you're supposed to be doing and instead try to solve it. The more time it takes to answer, the better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The concept is probably better explained by this xkcd strip: &lt;a href=&quot;http://xkcd.com/356/&quot; rel=&quot;nofollow&quot;&gt;http://xkcd.com/356/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, which programming-themed nerd-sniping question stole the most of your time?&lt;/p&gt;&#xA;" OwnerUserId="4012" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T22:55:44.767" LastActivityDate="2010-10-05T20:49:35.770" Title="What is your favorite programming-themed nerd sniping question?" Tags="&lt;fun&gt;&lt;distractions&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="8" />
  <row Id="8186" PostTypeId="2" ParentId="8076" CreationDate="2010-09-29T11:18:20.413" Score="1" ViewCount="" Body="&lt;p&gt;The application I am maintaining (written in C#) used to have a class &lt;code&gt;Tools&lt;/code&gt; which was commented &quot;Functions just like delphi&quot;, containing about 15 methods that were used all over the place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I never met the guy who wrote the application, but I have a feeling I know him pretty well after reading his comments and code...&lt;/p&gt;&#xA;" OwnerUserId="1922" LastActivityDate="2010-09-29T11:18:20.413" CommentCount="1" />
  <row Id="8187" PostTypeId="1" AcceptedAnswerId="8193" CreationDate="2010-09-29T11:19:47.303" Score="9" ViewCount="380" Body="&lt;p&gt;A &lt;a href=&quot;http://stackoverflow.com/questions/3804108/is-email-address-a-bad-primary-key&quot; title=&quot;is email address a bad primary key?&quot;&gt;recent question on stackoverflow&lt;/a&gt; provoked a discussion about the immutability of primary keys. I had thought that it was a kind of rule that primary keys should be immutable. If there is a chance that some day a primary key would be updated, I thought you should use a surrogate key. However it is not in the SQL standard and some RDBMS' &quot;cascade update&quot; feature allows a primary key to change. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is: is it still a bad practice to have a primary key that may change ? What are the cons, if any, of having a mutable primary key ?&lt;/p&gt;&#xA;" OwnerUserId="4017" LastActivityDate="2010-10-08T16:34:29.587" Title="Should a primary key be immutable ?" Tags="&lt;best-practices&gt;&lt;database-development&gt;&lt;sql&gt;" AnswerCount="7" />
  <row Id="8188" PostTypeId="2" ParentId="8185" CreationDate="2010-09-29T11:22:04.943" Score="10" ViewCount="" Body="&lt;p&gt;Water when frozen has a larger volume that non frozen.  If the globe is warming, the ice caps will melt and thus cause the volume of water to decrease and sea levels to fall. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However the opposite is true - water levels will rise, how so ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Surely the ultimate nerdy/physics questions are these : &lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_unsolved_problems_in_physics&quot; rel=&quot;nofollow&quot;&gt;Unsolved problems in physics&lt;/a&gt; and for a more friendly, less physics based list, &lt;a href=&quot;http://www.newscientist.com/article/mg18524911.600-13-things-that-do-not-make-sense.html&quot; rel=&quot;nofollow&quot;&gt;these&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-09-29T13:09:38.270" LastActivityDate="2010-09-29T13:09:38.270" CommentCount="18" />
  <row Id="8189" PostTypeId="2" ParentId="8185" CreationDate="2010-09-29T11:23:33.103" Score="0" ViewCount="" Body="&lt;p&gt;I was caught for over an hour once with&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;struct node&#xA;{&#xA;    node* left;&#xA;    node* right;&#xA;    void* data;&#xA;}&#xA;&#xA;void bt2ll( node* base, node** first, node** last);&#xA;&#xA;Write the binary tree to linked list function bt2ll.&#xA;Input parameter base is root of tree.&#xA;Output parameters first and last are supposed to point to pointers to&#xA;first and last nodes of the linked list when the function returns.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4012" LastActivityDate="2010-09-29T11:23:33.103" />
  <row Id="8190" PostTypeId="2" ParentId="8159" CreationDate="2010-09-29T11:24:55.610" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Are all programmers like that?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No.  I'm sure you've encountered developers who cannot spell, and don't care that their code and documentation is full of spelling and grammatical errors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, I think peoples' ability spell and write grammatical English is more strongly correlated with:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;having English as their first language, and&lt;/li&gt;&#xA;&lt;li&gt;going to a school that emphasized good spelling and grammar.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And the second point means that there is a correlation with age ... since educators generally tend to place less emphasis on spelling and grammar these days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;FOLLOWUP&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Maybe I should rephrase my question as &quot;Are all good programmers like that?&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Again no.  There are lots of excellent programmers whose first language is not English, and who (understandably) have problems with English spelling and grammar.  You knew that, didn't you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, excellent programmers are undoubtedly good at picking holes in other people's logic :-)&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-09-29T13:01:42.623" LastActivityDate="2010-09-29T13:01:42.623" CommentCount="4" />
  <row Id="8191" PostTypeId="2" ParentId="8159" CreationDate="2010-09-29T11:26:39.053" Score="11" ViewCount="" Body="&lt;p&gt;Being a programmer means you have to be very concerned about details, because small things such as forgetting to write &quot;=&amp;lt;&quot; instead of &quot;&amp;lt;&quot; could produce very different effects. So I believe programmers are very picky about details in general; noticing spelling errors is just a side-effect. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, spelling errors can also lead to problems with requirements being unclear or ambiguous.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-29T11:26:39.053" />
  <row Id="8192" PostTypeId="2" ParentId="8076" CreationDate="2010-09-29T11:32:19.213" Score="1" ViewCount="" Body="&lt;p&gt;An example of official contamination: Csh, for shell scripting with C-like syntax. &lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-09-29T11:32:19.213" CommentCount="1" />
  <row Id="8193" PostTypeId="2" ParentId="8187" CreationDate="2010-09-29T11:35:03.790" Score="6" ViewCount="" Body="&lt;p&gt;You only &lt;em&gt;need&lt;/em&gt; the primary key to be immutable if it's linked to a foreign key, or if it's used as an identifier outside the database (for example in an URL pointing to a page for the item).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, you only &lt;em&gt;need&lt;/em&gt; to have a mutable key if it carries some information that might change. I always use a surrogate key if the record doesn't have a simple, immutable identifier that can be used as key.&lt;/p&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-09-29T11:35:03.790" />
  <row Id="8194" PostTypeId="2" ParentId="8093" CreationDate="2010-09-29T11:36:33.653" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Rule_of_three_%28mathematics%29#Rule_of_Three&quot; rel=&quot;nofollow&quot;&gt;Rule of Three&lt;/a&gt;&lt;/strong&gt; (type of Cross Multiplication)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;+1 for Basic statistics formulas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I saw many guys with difficulty to apply this simple rule on basics code.&lt;/p&gt;&#xA;" OwnerUserId="3082" LastActivityDate="2010-09-29T11:36:33.653" CommentCount="3" />
  <row Id="8195" PostTypeId="2" ParentId="7439" CreationDate="2010-09-29T11:38:17.140" Score="0" ViewCount="" Body="&lt;p&gt;I have built a site - interviewstreet.com which helps companies / recruiters create their own programming tests to evaluate programming ability of candidates.&lt;/p&gt;&#xA;" OwnerUserId="4022" LastActivityDate="2010-09-29T11:38:17.140" />
  <row Id="8196" PostTypeId="2" ParentId="8187" CreationDate="2010-09-29T11:45:08.313" Score="6" ViewCount="" Body="&lt;p&gt;A primary key &lt;em&gt;should&lt;/em&gt; be comprised of whatever tuples are necessary to determine uniqueness. Whether the data can change or not is irrelevant. Only the uniqueness of the record matters. That is the conceptual design of the database. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When we move into the realm of implementation, then the safest thing to do is simply use a surrogate key. &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-09-29T11:45:08.313" />
  <row Id="8197" PostTypeId="2" ParentId="8120" CreationDate="2010-09-29T11:54:37.343" Score="3" ViewCount="" Body="&lt;p&gt;I dunno. I have no plans so far to grow up.&lt;/p&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-09-29T11:54:37.343" />
  <row Id="8199" PostTypeId="2" ParentId="8187" CreationDate="2010-09-29T12:01:12.860" Score="1" ViewCount="" Body="&lt;p&gt;Caching mechanisms in between database and user will lose effectiveness if primary keys change.&lt;/p&gt;&#xA;" OwnerUserId="4028" LastActivityDate="2010-09-29T12:01:12.860" />
  <row Id="8200" PostTypeId="2" ParentId="7861" CreationDate="2010-09-29T12:02:40.650" Score="15" ViewCount="" Body="&lt;p&gt;I think people are putting to much focus on the technical side of things here. I won't even comment on statements like 'windows is a no go' because in that case a reality-check is in order which is beyond the scope of this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To get to the point: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I would not so much focus on technical aspects of a job. Sure it's nice if your new company is using a mature SCM solution like perforce or git, it's cool if the firewall has almost no restrictions and you work machine is a 8core with 32gigs of RAM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Desktop computers can be upgraded and new scm solutions can be implemented if you make valid arguments and manage to convince your boss of the benefits. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What can't be easily fixed is an unfriendly work environment. What can't be easily fixed or changed is the way the employer looks at employees - From my experience that is either (a) machines that you put coffee&amp;amp;cash into and sell the product or people that produce better code when they are treated well and have a good time at work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My desktop at work is not a power-house and I work with Java even though I'd love to do&#xA;low-level C programming on micro-controllers. However the working atmosphere is really great. We often have BBQs, regular small developer convention days where people present&#xA;new stuff they've come across during work etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You were quite possibly actually hoping for the kind of technical answers u've been mostly&#xA;given here so far. I just wanted to put notion on the fact that there is more to a good company than the technical details. Try to make out if the job looks like it has a healthy working environment that wants to make you go to work in the morning rather than shout and curse..&lt;/p&gt;&#xA;" OwnerUserId="4030" LastActivityDate="2010-09-29T12:02:40.650" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="1" />
  <row Id="8201" PostTypeId="2" ParentId="8185" CreationDate="2010-09-29T12:04:22.643" Score="1" ViewCount="" Body="&lt;p&gt;Basically any &lt;a href=&quot;http://stackoverflow.com/questions/tagged/code-golf&quot;&gt;code golf&lt;/a&gt; will do the trick ;)&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-09-29T12:04:22.643" />
  <row Id="8202" PostTypeId="2" ParentId="358" CreationDate="2010-09-29T12:07:01.503" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.mozart-oz.org/&quot; rel=&quot;nofollow&quot;&gt;Mozart Oz&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The language is very different from most other languages, but it has some charm. One fun feature is that no statement separator is needed, the grammar works without it. &lt;/p&gt;&#xA;" OwnerUserId="4025" LastActivityDate="2010-09-29T12:07:01.503" CommunityOwnedDate="2010-09-30T22:46:32.880" CommentCount="1" />
  <row Id="8203" PostTypeId="2" ParentId="8104" CreationDate="2010-09-29T12:07:09.720" Score="29" ViewCount="" Body="&lt;p&gt;I think the question should be &quot;How many developers &lt;em&gt;should have&lt;/em&gt; private offices?&quot; Which leads to the next question: &quot;Why should they have them?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the management world, were concentration on a task is not an issue, offices are a means to represent status. They think &quot;private office == more status, big private office == even more status, etc.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What most people fail to understand: Every time our concentration is broken, we create at least one bug and/or delay the deadline for another half-hour. Private offices is not a &quot;nice to have&quot; for developers but a must. This is not about status, this is about brain physics. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Working in an open space costs at least 30% productivity (I read that in a newspaper, start with &lt;a href=&quot;http://hivelogic.com/articles/open-offices-reduce-productivity-and-increase-stress&quot; rel=&quot;nofollow&quot;&gt;this blog post&lt;/a&gt; if you want to know more). Worst part: This goes unnoticed. If you always work in such an environment, you'll never notice that it happens! Until you wonder why your neck is stiff, you feel tense/nervous all the time, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want another productivity increase, take the telephones away, too. Unless you're doing production support, the next day is always soon enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To relax the team, supply free soft drinks. That costs $100-300/month for a team of 10 and makes sure they take regular breaks, drink enough (so they don't dehydrate).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The funny thing is: These aren't a bunch of myths but hard facts. Still, most companies ignore these simple, cheap ways to boost productivity. Well, except for the successful ones, of course (Google, Microsoft, etc).&lt;/p&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-09-29T12:07:09.720" CommunityOwnedDate="2011-02-20T23:49:56.727" CommentCount="12" />
  <row Id="8204" PostTypeId="2" ParentId="8078" CreationDate="2010-09-29T12:10:11.960" Score="1" ViewCount="" Body="&lt;p&gt;Register at a site like &lt;a href=&quot;http://www.rent-acoder.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.rent-acoder.com/&lt;/a&gt; and offer your services there. If you're good, your resume doesn't matter (as it should be).&lt;/p&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-09-29T12:10:11.960" CommentCount="1" />
  <row Id="8206" PostTypeId="2" ParentId="8187" CreationDate="2010-09-29T12:48:04.397" Score="1" ViewCount="" Body="&lt;p&gt;Why not? Because you want to eliminate a column? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just because the requirements call for three columns to be unique, doesn't mean it has to be the primary key. You may think that rule will last forever (Remember during that meeting when the pinhead department manager swore that would never change? You know, the one that just got fired.), but it won't. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't get paid for every cascade update I implement and a bonus if I code it myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The computer doesn't require any meaning for a key; IMHO, keys are for computers, let the people screw up the rest of the data.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-29T12:48:04.397" />
  <row Id="8207" PostTypeId="1" AcceptedAnswerId="8208" CreationDate="2010-09-29T12:48:41.157" Score="0" ViewCount="202" Body="&lt;p&gt;So first let me tell the background: I believe whether it's a work day or you are at home, we should always enjoy a beautiful day. And a beautiful day should be different at different hours, a fresh and energetic morning, a happy lunch, a quite and worm afternoon, and a dusk under the very long shadows of the tall trees created by sunset. (English isn't my mother language and I'm not good at literature and I'm just telling that the feeling is just beautiful.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in most of today's job we don't have the luck to enjoy these. We seldom see grass and sunshine, to say nothing of feathers, insects, rivers, trees... At most time we see only a big screen filled with windows, which could also be said as &quot;colorful&quot;, but never provide the feeling of rhythm that nature gives us. And that makes us feel tired.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I thought of developing an application, that should be simply a desktop clock. The difference is it's theme (mainly back ground image) changes in accord to the current time, eg: at 9am the background image should be birds singing together, at 1pm it should be family dinnering together, and at 5pm it should be youth dancing together... things like this, of cause the picture should be customizable cuz different people have different way of enjoy different hours. And it should jow every hour, to inform people that time has changed for - one hour.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And my question is that do you think a program like this can help people set up a rhythm in their endless 8 hours work in front of a computer? Or any suggestion for this &quot;requirement&quot;? Anybody have a similar idea or a better idea or is developing some app like that?&lt;/p&gt;&#xA;" OwnerUserId="2347" LastActivityDate="2010-09-29T13:10:54.257" Title="Anyone interested in developing such a program?" Tags="&lt;software&gt;" AnswerCount="3" CommentCount="5" />
  <row Id="8208" PostTypeId="2" ParentId="8207" CreationDate="2010-09-29T12:55:25.177" Score="1" ViewCount="" Body="&lt;p&gt;This is all over the place isn't it ?  Vista gadgets did it if I remember correctly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My new phone goes one better and has a windsreen wipers when it rains; its an android mobile a wiper(virtual) goes across screen when you come out of standby and its raining according to its weather widget/locale.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-29T12:55:25.177" CommentCount="1" />
  <row Id="8209" PostTypeId="2" ParentId="8185" CreationDate="2010-09-29T12:57:09.183" Score="0" ViewCount="" Body="&lt;p&gt;Telling me there is a huge project coming up that will use a different set of development tools, but don't start doing anything about it until next month. Example: I haven't used Crystal Reports in about 8 years. Maybe it hasn't changed that much.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-29T12:57:09.183" />
  <row Id="8210" PostTypeId="2" ParentId="8104" CreationDate="2010-09-29T12:59:55.123" Score="1" ViewCount="" Body="&lt;p&gt;Every person at my company has a private office( or the opportunity for one ), with the exception of warehouse staff and two accounting staff who work together so closely that a shared office makes more sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our UI developer is the one who has the option to have a private office, but he chooses to work in the hallway instead( don't ask, I don't get it either ).&lt;/p&gt;&#xA;" OwnerUserId="2587" LastActivityDate="2010-09-29T12:59:55.123" CommunityOwnedDate="2011-02-20T23:49:56.727" CommentCount="3" />
  <row Id="8211" PostTypeId="2" ParentId="8207" CreationDate="2010-09-29T13:04:39.900" Score="0" ViewCount="" Body="&lt;p&gt;I usually have a bunch of other stuff open and would never see it. Maybe this image could momentarily appear on the screen with a degree of transparency and a slight oscillating effect on the computer sound (SimplyNoise.com has an option to do this continuously).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I made a transparent text editor, so the user could have any type of background they wanted (just by placing it on top of any image, video, presentation) while creatively writing.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-29T13:04:39.900" />
  <row Id="8212" PostTypeId="2" ParentId="8098" CreationDate="2010-09-29T13:06:18.720" Score="0" ViewCount="" Body="&lt;p&gt;Knowing &lt;em&gt;what&lt;/em&gt; is asked to your manager can help you undestand why he asks somes things, or why work is done in the current way. You then can adapt yourself, or find a better way to give him what he wants/needs.&lt;/p&gt;&#xA;" OwnerUserId="2420" LastActivityDate="2010-09-29T13:06:18.720" />
  <row Id="8213" PostTypeId="2" ParentId="358" CreationDate="2010-09-29T13:07:02.847" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://nesdev.parodius.com/&quot; rel=&quot;nofollow&quot;&gt;NES Assembly&lt;/a&gt; (as a hobby, still doing it, going for an emulator in later plans)&lt;/p&gt;&#xA;" OwnerUserId="3530" LastActivityDate="2010-09-29T13:07:02.847" CommunityOwnedDate="2010-09-30T22:46:32.880" />
  <row Id="8214" PostTypeId="2" ParentId="8207" CreationDate="2010-09-29T13:10:54.257" Score="2" ViewCount="" Body="&lt;p&gt;Google do something similar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Enable iGoogle (from google.com) and apply a theme such as JR, Tea house, Spring scape. It'll change the background image depending on what time it is. (in two hour increments)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is quite nice.&lt;/p&gt;&#xA;" OwnerUserId="2757" LastActivityDate="2010-09-29T13:10:54.257" CommentCount="3" />
  <row Id="8215" PostTypeId="2" ParentId="6292" CreationDate="2010-09-29T13:16:50.347" Score="1" ViewCount="" Body="&lt;p&gt;The JavaOne, OpenWorld, Oracle Develop sessions can be found here:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://ondemandpreview.vportal.net/&quot; rel=&quot;nofollow&quot;&gt;http://ondemandpreview.vportal.net/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3906" LastActivityDate="2010-09-29T13:16:50.347" CommentCount="1" />
  <row Id="8217" PostTypeId="2" ParentId="729" CreationDate="2010-09-29T13:18:41.260" Score="2" ViewCount="" Body="&lt;p&gt;Three tools will solve your problem: Evernote, Google Code hosting and SugarSync(or dropbox， etc). All these services are cloud based so they are accessible everywhere. The detailed solution is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Put ebooks and podcasts in a synchronized folder under SugarSync.&#xA;Put your code snippets under google code, that the best way to store codes.&#xA;For web articles, blog posts, interesting emails, put them in evernote.&#xA;You'll find evernote is also a great way to manage your own essays, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For SO questions, of cause, SO is manage it best!&lt;/p&gt;&#xA;" OwnerUserId="2347" LastActivityDate="2010-09-29T13:18:41.260" CommunityOwnedDate="2011-03-07T21:12:42.693" />
  <row Id="8218" PostTypeId="2" ParentId="8104" CreationDate="2010-09-29T13:21:22.960" Score="1" ViewCount="" Body="&lt;p&gt;Right now, I'm quite privileged, I got a nice 10 X 15 ft. private office. I got a window to look at when I need to think and I could see a lake from it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work for a small company that just expanded its building before hiring me. The main purpose of the expansion was to get a bigger showroom/warehouse and some class rooms for client training. They build the class rooms on top of the showroom/warehouse with some private offices, so they moved the software/training department to the new part of the building. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just beside my office, there is a 15 X 20 ft. office that is for &quot;future expansion&quot;, but that expansion was postponed because of the economic troubles. So the next programmer we will hire will have a huge office, but he will have to share it, eventually. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before that, I had a government job with a cubicle,. Office space where highly regulated, and only management had a private office. Even it's an it's size was regulated among their position in the hierarchy.   &lt;/p&gt;&#xA;" OwnerUserId="19" LastActivityDate="2010-09-29T13:21:22.960" CommunityOwnedDate="2011-02-20T23:49:56.727" />
  <row Id="8219" PostTypeId="2" ParentId="8104" CreationDate="2010-09-29T13:31:18.023" Score="0" ViewCount="" Body="&lt;p&gt;My most productive project was one where the two of us had our own Skunkworks office. We took a traditionally waterfall company kicking and screaming into iterative development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two of us wrote a 500k+ user social networking app in 6 months.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But after going live, the team grew and are now in an open-plan workspace. Communication is better, but interruptions are a lot more frequent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both have their pluses and minuses I think.&lt;/p&gt;&#xA;" OwnerUserId="2757" LastActivityDate="2010-09-29T13:31:18.023" CommunityOwnedDate="2011-02-20T23:49:56.727" />
  <row Id="8220" PostTypeId="2" ParentId="729" CreationDate="2010-09-29T13:40:55.430" Score="2" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://office.microsoft.com/en-us/onenote/&quot; rel=&quot;nofollow&quot;&gt;Microsoft OneNote&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Integrates seamlessly with Outlook&lt;/li&gt;&#xA;&lt;li&gt;Easy to organize, gather context, and make notes readable (Evernote feels like notepad.exe compared to it)&lt;/li&gt;&#xA;&lt;li&gt;Syncs with SkyDrive and Office Webapps so I can work with notes on my Mac or any other PC.&lt;/li&gt;&#xA;&lt;li&gt;Multiple Live editing support so I can share my notes with others during a meeting and have them edit/add content on the same page and it shows up immediately.&lt;/li&gt;&#xA;&lt;li&gt;Can take audio of meetings and make it fully searchable.&lt;/li&gt;&#xA;&lt;li&gt;Handwritten notes become searchable&lt;/li&gt;&#xA;&lt;li&gt;Drag PDFs or any other document into OneNote and it automatically keeps the original and optionally converts it to images to take notes on top of.&lt;/li&gt;&#xA;&lt;li&gt;I could go on for days...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-29T13:40:55.430" CommunityOwnedDate="2011-03-07T21:12:42.693" CommentCount="1" />
  <row Id="8221" PostTypeId="2" ParentId="8104" CreationDate="2010-09-29T13:40:55.507" Score="0" ViewCount="" Body="&lt;p&gt;I had a private office for 3 years.  Then worked for a company that had the developers in cubicles.  At first the cubes had 4' walls then after some discussion they were replaced with 6' walls.  That change made a significant difference; probably because there was less visual distraction.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most developers I know, including me, are in cubicles or big open rooms.&lt;/p&gt;&#xA;" OwnerUserId="3914" LastActivityDate="2010-09-29T13:40:55.507" CommunityOwnedDate="2011-02-20T23:49:56.727" />
  <row Id="8222" PostTypeId="1" CreationDate="2010-09-29T13:46:20.910" Score="-1" ViewCount="87" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/6292/where-can-i-view-javaone-2010-presentations&quot;&gt;When attempting to find JavaOne 2010 videos&lt;/a&gt;, I discovered that the conference appears to have been assimilated into Oracle's &lt;a href=&quot;http://www.oracle.com/us/openworld/splash/index.html&quot; rel=&quot;nofollow&quot;&gt;OpenWorld conference&lt;/a&gt;. This piqued my curiosity. What does Oracle mean when it uses the term &quot;Open&quot; in &quot;OpenWorld&quot;? My initial instinct thought it had something to do with &quot;Open Source&quot;, but that doesn't seem to gel with Oracle's overall mindset (is that an understatement?). Is it a marketing thing? I have seen a video whereby Larry Ellison appears to use the term &quot;open&quot;, where &quot;cross-platform&quot; would be more accurate...&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Update&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;It wasn't Larry Ellison who I heard using the term &quot;open&quot;. Rather, it was John Fowler (EVP, &lt;a href=&quot;http://www.google.ca/search?sourceid=chrome&amp;amp;ie=UTF-8&amp;amp;q=define%3a+evp&quot; rel=&quot;nofollow&quot;&gt;whatever that means&lt;/a&gt;) in &lt;a href=&quot;http://www.youtube.com/watch?v=VYDYdZg19Xw&amp;amp;feature=related#t=1m59s&quot; rel=&quot;nofollow&quot;&gt;OpenWorld 2010 Highlights, starting at 1 minute, 29 seconds&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;First of all, Oracle is about having open systems. This is about building database technologies that run on any platform, middleware technologies that run on any platform, applications that run on a variety of platforms and so on.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="241" LastEditorUserId="241" LastEditorDisplayName="" LastEditDate="2010-09-29T15:01:51.020" LastActivityDate="2010-09-29T15:01:51.020" ClosedDate="2010-09-30T01:31:45.430" Title="Which definition of &quot;Open&quot; does Oracle refer to in &quot;OpenWorld&quot;?" Tags="&lt;open-source&gt;&lt;conferences&gt;&lt;oracle&gt;&lt;javaone&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="8223" PostTypeId="2" ParentId="6067" CreationDate="2010-09-29T13:50:19.130" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://smallbasic.com/&quot; rel=&quot;nofollow&quot;&gt;Small Basic&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;for those of us who are missing the basic language ... &lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-09-29T13:50:19.130" CommunityOwnedDate="2010-09-29T13:50:19.130" CommentCount="1" />
  <row Id="8224" PostTypeId="2" ParentId="8104" CreationDate="2010-09-29T13:51:01.857" Score="0" ViewCount="" Body="&lt;p&gt;In four programming jobs I've only ever had one office (and that was in my first job). In my current position there are four people sharing two to an office in a team of around 10, with everyone else in a &quot;shared working area&quot;. I've also been self-employed, where I had my own space by default.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-09-29T13:51:01.857" CommunityOwnedDate="2011-02-20T23:49:56.727" />
  <row Id="8225" PostTypeId="2" ParentId="7927" CreationDate="2010-09-29T13:53:21.970" Score="1" ViewCount="" Body="&lt;p&gt;I follow the practice of Test-Code-Test instead of Code-test-code-test. This helps me to think of use-cases and appropriately frame the logic&lt;/p&gt;&#xA;" OwnerUserId="4022" LastActivityDate="2010-09-29T13:53:21.970" />
  <row Id="8226" PostTypeId="2" ParentId="8104" CreationDate="2010-09-29T13:57:12.387" Score="0" ViewCount="" Body="&lt;p&gt;When I'm at the office I share room with two other developers. Often at least one of them is not there. As our group has recently moved to a completely empty floor everyone could have an office for himself, but most of my collegues seem to prefer offices with two or three people together. I prefer having other people nearby -- maybe it's because I come to work two days in the week and spend the rest alone working remotely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the other questions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I guess &quot;senior programmer&quot; would fit.&lt;/li&gt;&#xA;&lt;li&gt;We're sell software we're making.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2272" LastActivityDate="2010-09-29T13:57:12.387" CommunityOwnedDate="2011-02-20T23:49:56.727" />
  <row Id="8227" PostTypeId="2" ParentId="8222" CreationDate="2010-09-29T13:58:29.580" Score="3" ViewCount="" Body="&lt;p&gt;I think it means Oracle is open to taking over the whole world :-)&lt;/p&gt;&#xA;" OwnerUserId="4053" LastActivityDate="2010-09-29T13:58:29.580" />
  <row Id="8228" PostTypeId="1" AcceptedAnswerId="8287" CreationDate="2010-09-29T14:00:24.333" Score="7" ViewCount="231" Body="&lt;p&gt;I am rereading Refactoring by Martin Fowler. In Chapter 4, Building Tests, I came across the following passage.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;In fact, one of the most usefull times to write tests is before you start programming. When you need to add a feature, begin by writing the test. This isn't as backward as it sounds. By writing the test you are asking yourself what needs to be done to add the function. Writing the test also concentrates on the interface rather than the implementation (always a good thing). It also means you have a clear point at which you are done coding--when the test works.&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;While I am an advocate of test-driven development now, I did not remember having been introduced to the concept when I originally read this book nearly 5 years ago.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;According to Amazon.com, this book was originally published on July 8, 1999. Is this the first published reference to test-first programming or is there something even earlier?&lt;/p&gt;&#xA;" OwnerUserId="4040" LastEditorUserId="4040" LastEditorDisplayName="" LastEditDate="2011-05-23T01:13:41.550" LastActivityDate="2011-05-23T01:13:41.550" Title="What is the first published reference to test-first programming?" Tags="&lt;testing&gt;&lt;history&gt;" AnswerCount="3" CommentCount="5" FavoriteCount="1" />
  <row Id="8229" PostTypeId="2" ParentId="8185" CreationDate="2010-09-29T14:03:06.137" Score="12" ViewCount="" Body="&lt;p&gt;My coworkers and I were caught up on this one for about 2 hours:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  Find the next number in the series&#xA;  1 11 21 1211 111221 312211 13112221 ..&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The answer gave us quite a laugh.  We were waaaaaaay off :)&lt;/p&gt;&#xA;" OwnerUserId="2294" LastActivityDate="2010-09-29T14:03:06.137" CommentCount="11" />
  <row Id="8230" PostTypeId="2" ParentId="8228" CreationDate="2010-09-29T14:05:23.630" Score="2" ViewCount="" Body="&lt;p&gt;That was &lt;strong&gt;Kent Beck&lt;/strong&gt;, in his book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201616416&quot; rel=&quot;nofollow&quot;&gt;Extreme Programming&lt;/a&gt;, also published in &lt;strong&gt;1999&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/xE5AG.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-29T14:05:23.630" CommentCount="3" />
  <row Id="8231" PostTypeId="2" ParentId="8185" CreationDate="2010-09-29T14:10:19.413" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.toughestdeveloperpuzzleever.com/begin/&quot; rel=&quot;nofollow&quot;&gt;The Toughest Developer Puzzle Ever&lt;/a&gt; (and the sequel) did me in for quite a few hours.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-29T14:10:19.413" CommentCount="1" />
  <row Id="8232" PostTypeId="2" ParentId="8055" CreationDate="2010-09-29T14:11:06.177" Score="2" ViewCount="" Body="&lt;p&gt;The recommendations here for BizSpark and MSDN are great recommendations, in addition something that would be helpful is to look into becoming a &quot;Microsoft Certified Partner&quot;, the process is quite simple, and you get a multi-tenant MSDN license for development/test installations.  I did this for my consulting business three years ago and it was the best investment ever, and the price is right.  ($1,500 a year).&lt;/p&gt;&#xA;" OwnerUserId="1340" LastActivityDate="2010-09-29T14:11:06.177" />
  <row Id="8233" PostTypeId="2" ParentId="5921" CreationDate="2010-09-29T14:17:31.077" Score="2" ViewCount="" Body="&lt;p&gt;Advice I have had from various professionals over the years:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Eyes&lt;/strong&gt; Looking at one thing for a long time is not a natural thing for our eyes to do. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look away from your monitor on a regular basis. If you need glasses, wear them- your eyes will get worse for having to work to focus on a screen.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hands&lt;/strong&gt; Using your hands for a single task builds up muscle but also builds tightness in other directions and is a longer-term recipe for arthritis and RSI. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One exercise to help: With your palm upwards, gently pull your fingers down and backwards with your other hand.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Shoulder and Back&lt;/strong&gt; It is very common for regular mouse users to get a cold shoulder. This happens because through usage and in order to use the mouse precisely the muscle in the shoulder gets overdeveloped and puts pressure on the nerves that would otherwise potentially cause the hand to shake. The outcome is steady hands but a massive loss in shoulder movement. This is bad news because any stiffness in one part of the back tends to cause overcompensation in other parts, resulting in various problems in the spine and hips that can manifest in a broad selection of ways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can help yourself a bit by shrugging your shoulders on a regular basis ( perhaps look around the room shrugging your shoulders as though confused and baffled by your surroundings ) and changing mouse hand on a regular basis, although I find being ambimoustrous very difficult. Learning keyboard shortcuts will also help with that.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In terms of general positional wellbeing I recommend visiting a chiropractor or similar from time to time if you can find a good one. Having been treated by physiotherapists and chiropractors it was always the latter that proved effective in fixing things quickly. If you really want to be able to help yourself you might want to consider something like the Alexander Technique, which teaches body awareness so that you can learn to correct your own position in simple ways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given how much time you spend at the keyboard it is also important to have a good chair and to spend a few minutes figuring out how to adjust it correctly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.ccohs.ca/oshanswers/ergonomics/office/stretching.html&quot; rel=&quot;nofollow&quot;&gt;This list of workstation stretches&lt;/a&gt; is also useful.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-09-29T14:17:31.077" CommunityOwnedDate="2011-03-26T13:37:08.243" />
  <row Id="8234" PostTypeId="2" ParentId="5921" CreationDate="2010-09-29T14:27:52.720" Score="0" ViewCount="" Body="&lt;p&gt;Posture is important.  Keep your upper arms at your side and your wrists generally straight.  Arm rests on your chair can help a lot if they're at the right level.  Don't type too long at a time.  I'm not sure it matters what you do when not typing, but I frequently bend my wrists and look out the window.  (In a job like this, you're not always typing, or you're not thinking enough.)&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-29T14:27:52.720" CommunityOwnedDate="2011-03-26T13:37:08.243" />
  <row Id="8235" PostTypeId="2" ParentId="8104" CreationDate="2010-09-29T14:42:06.323" Score="0" ViewCount="" Body="&lt;p&gt;I'm a lead. I work in a shared space (cube-like, but open) that's about 20x30 with two other people.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not like other developers in that I like to have light while I work, so I have lamps in my section with the lights off elsewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I develop mostly web stuff (Flash, Javascript) and occasional apps (Air or Objective-C). I work in an ad agency.&lt;/p&gt;&#xA;" OwnerUserId="4058" LastActivityDate="2010-09-29T14:42:06.323" CommunityOwnedDate="2011-02-20T23:49:56.727" />
  <row Id="8236" PostTypeId="1" AcceptedAnswerId="8276" CreationDate="2010-09-29T14:44:19.047" Score="0" ViewCount="71" Body="&lt;p&gt;I just sent out emails to five local web design companies to my area asking to take drawings to HTML/CSS/jQuery. None of the ones who accepted the deal seem suitable to myself. Others rejected the offer because they wanted to 'provide an end-to-end solution' or are 'booked till June'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The local companies did not seem suitable to myself because my review process is this:&#xA;goto their website, do a view-source. I'll see really weird things (contact us forms that go nowhere), really old things (mm_menu.js), and portfolios that are non-existent (aren't on the site, don't link anywhere, or otherwise).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The company would like to hire as locally as they can rather than out-source to another country.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Answers I'm looking for&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Processes you use when searching for someone&lt;/li&gt;&#xA;&lt;li&gt;How you qualify their aptitude for the project&lt;/li&gt;&#xA;&lt;li&gt;Anything that you think I'm doing wrong, or should be doing also.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Answers I'm not looking for:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&quot;Hello sir please contact me we do everything for 10 dolla.&quot;&lt;/li&gt;&#xA;&lt;li&gt;My bud's great at this stuff, call him.&lt;/li&gt;&#xA;&lt;li&gt;example.com is the best for this.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1525" LastEditorUserId="1525" LastEditorDisplayName="" LastEditDate="2010-09-29T14:54:25.757" LastActivityDate="2010-09-29T16:31:09.723" Title="How do I find a qualified web designer in my area?" Tags="&lt;jobs&gt;&lt;web-development&gt;&lt;contracting&gt;" AnswerCount="1" />
  <row Id="8237" PostTypeId="2" ParentId="7629" CreationDate="2010-09-29T14:44:32.283" Score="2" ViewCount="" Body="&lt;p&gt;I have to recommend the standards made available by SSW (an Australian Consulting company).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not just coding, but Project Management etc...   An incredibly valuable resource.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.ssw.com.au/ssw/standards/default.aspx&quot; rel=&quot;nofollow&quot;&gt;http://www.ssw.com.au/ssw/standards/default.aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2757" LastActivityDate="2010-09-29T14:44:32.283" />
  <row Id="8238" PostTypeId="2" ParentId="8120" CreationDate="2010-09-29T14:45:03.030" Score="0" ViewCount="" Body="&lt;p&gt;Teaching college might be interesting, eventually, maybe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the meantime, they say that &quot;those who can't do, teach&quot; and I'm perfectly effective at Doing for the time being, so no big rush. (Also, I don't know if I'll have some other personal goals which are more important come up between now and then - things like a Family and the like).&lt;/p&gt;&#xA;" OwnerUserId="2348" LastActivityDate="2010-09-29T14:45:03.030" />
  <row Id="8239" PostTypeId="2" ParentId="358" CreationDate="2010-09-29T14:46:05.190" Score="0" ViewCount="" Body="&lt;p&gt;Excel and VBA being used to communicate with a PLC (programmable logic controller used for industrial automation).  I have also seen Excel used to do low-level socket communication.&lt;/p&gt;&#xA;" OwnerUserId="4059" LastActivityDate="2010-09-29T14:46:05.190" CommunityOwnedDate="2010-09-30T22:46:32.880" />
  <row Id="8240" PostTypeId="2" ParentId="729" CreationDate="2010-09-29T14:51:41.913" Score="1" ViewCount="" Body="&lt;p&gt;Hi there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.mindjet.com/products/mindmanager-9-win/overview&quot; rel=&quot;nofollow&quot;&gt;MindManager&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use this a lot for notes and programming techniques. The integration with MS Office products is handy for me, since we use MS OFfice at work. As Evan pointed out, FreeMind is a great free alternative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://fishcodelib.com/CodeLib.htm&quot; rel=&quot;nofollow&quot;&gt;CodeLib .NET&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been using this for a few years now and have found it to be really cool for storing all sorts - source code, url's images, etc. It's very flexible and highly recomended.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers.&#xA;Jas.&lt;/p&gt;&#xA;" OwnerUserId="3668" LastActivityDate="2010-09-29T14:51:41.913" CommunityOwnedDate="2011-03-07T21:12:42.693" />
  <row Id="8241" PostTypeId="1" AcceptedAnswerId="8242" CreationDate="2010-09-29T14:51:58.623" Score="6" ViewCount="598" Body="&lt;p&gt;There appear to be two ways to pronounce the last syllable based on deeply held beliefs and cultural divides and assumptions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Phi fi fo fum &lt;/li&gt;&#xA;&lt;li&gt;Fee phi fo fum?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I've heard that (2) is the American pronunciation (as in the motor parts corp Delphi), although it's not how we pronounce it in my office in America, which is probably largely the result of the Russian programmer who introduced us to Delphi. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say, I'd never pronounce the Greek &quot;Phi&quot; as as &quot;fee&quot;, but I don't speak Greek and if I did, I would probably pronounce it wrong.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-02-01T17:34:21.617" LastActivityDate="2011-02-01T17:34:21.617" Title="What's the history of the pronunciation of Delphi?" Tags="&lt;delphi&gt;&lt;pronunciation&gt;" AnswerCount="11" CommentCount="17" FavoriteCount="4" />
  <row Id="8242" PostTypeId="2" ParentId="8241" CreationDate="2010-09-29T14:53:47.623" Score="12" ViewCount="" Body="&lt;p&gt;I've always said &lt;code&gt;Dell fee&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In further support of this, the name was chosen (&lt;a href=&quot;http://en.wikipedia.org/w/index.php?title=Embarcadero_Delphi&amp;amp;oldid=386391894#History&quot; rel=&quot;nofollow&quot;&gt;cite&lt;/a&gt;) by one of Delphi's developers, &lt;a href=&quot;http://en.wikipedia.org/wiki/Danny_Thorpe&quot; rel=&quot;nofollow&quot;&gt;Danny Thorpe&lt;/a&gt;, who has a decidedly non-Greek name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you look into it further, you'll see the name is a reference to the Oracle at &lt;a href=&quot;http://en.wikipedia.org/w/index.php?title=Delphi&amp;amp;oldid=387256243&quot; rel=&quot;nofollow&quot;&gt;Delphi&lt;/a&gt;, which was pronounced in ancient Greek as &lt;code&gt;/ðelˈfi/&lt;/code&gt;, using the &lt;a href=&quot;http://en.wikipedia.org/w/index.php?title=Wikipedia%3aIPA_for_Greek&amp;amp;oldid=386994669&quot; rel=&quot;nofollow&quot;&gt;Ancient Greek IPA&lt;/a&gt;. (&lt;code&gt;i&lt;/code&gt; refers to the &quot;hard e&quot; sound, whereas &lt;code&gt;ai&lt;/code&gt; would refer to &quot;hard i&quot;). And according to &lt;a href=&quot;http://en.wikipedia.org/w/index.php?title=Delphi&amp;amp;oldid=387256243#cite_note-0&quot; rel=&quot;nofollow&quot;&gt;this footnote&lt;/a&gt;, &lt;code&gt;dell fi&lt;/code&gt; is actually the English corruption.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastEditorUserId="2276" LastEditorDisplayName="" LastEditDate="2010-09-29T15:29:09.360" LastActivityDate="2010-09-29T15:29:09.360" CommentCount="1" />
  <row Id="8243" PostTypeId="2" ParentId="8241" CreationDate="2010-09-29T14:56:31.240" Score="3" ViewCount="" Body="&lt;p&gt;Me, I've said &lt;code&gt;Dell feye&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-10-13T00:11:25.970" LastActivityDate="2010-10-13T00:11:25.970" CommentCount="6" />
  <row Id="8244" PostTypeId="2" ParentId="729" CreationDate="2010-09-29T14:57:03.267" Score="2" ViewCount="" Body="&lt;p&gt;I've started blogging about things I've learned. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just a simple free blog, I keep it private, if it's worth sharing I'll spend some time to transform it into a post that's intelligible enough someone else can read it and walk away with something. You can tag ideas and search by grouping later too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also helpful for creating an online identity for employment sake.&lt;/p&gt;&#xA;" OwnerUserId="1525" LastActivityDate="2010-09-29T14:57:03.267" CommunityOwnedDate="2011-03-07T21:12:42.693" CommentCount="1" />
  <row Id="8245" PostTypeId="2" ParentId="8241" CreationDate="2010-09-29T14:59:08.300" Score="1" ViewCount="" Body="&lt;p&gt;I have always refered to it as &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Del PHI&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3758" LastActivityDate="2010-09-29T14:59:08.300" CommentCount="2" />
  <row Id="8246" PostTypeId="2" ParentId="8241" CreationDate="2010-09-29T15:00:12.637" Score="7" ViewCount="" Body="&lt;p&gt;For what it's worth. The place/oracle it is named after in Greece is pronounced by the locals as &quot;Dell-Fee&quot;. So that is probably the most correct, but I've never heard an American call it anything other than &quot;Dell-Fi&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FYI: That is a truly awesome place to visit, I highly recommend it.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-09-29T15:00:12.637" />
  <row Id="8247" PostTypeId="2" ParentId="8241" CreationDate="2010-09-29T15:05:30.197" Score="14" ViewCount="" Body="&lt;p&gt;Well, the people from Embarcadero, and Borland before them, call it Del-FI, not Del-FEE.  I think that's about as authoritative as it gets. &lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-29T15:05:30.197" CommentCount="1" />
  <row Id="8248" PostTypeId="2" ParentId="880" CreationDate="2010-09-29T15:11:22.047" Score="0" ViewCount="" Body="&lt;p&gt;OK so the other answers just describe one machine.  In a way, they are right, since the best machine to program on is often just the one you are sat in front of.  But I think the question is: what should I look for in a programming machine?  Here's what I would recommend:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A laptop, unless you are sure you will never want to move it around.&lt;/li&gt;&#xA;&lt;li&gt;Big external screens.  Most people enjoy working with more space if possible. (you may also need a docking station. The USB ones are now worth getting, I have a dynadock and love it)&lt;/li&gt;&#xA;&lt;li&gt;Fast disk.  This means SSD these days.  Disks will be your bottleneck.&lt;/li&gt;&#xA;&lt;li&gt;Enough memory.  The amount you need depends on your OS, IDE, and other heavy tools such as local VMs or databases.&lt;/li&gt;&#xA;&lt;li&gt;A keyboard you can type comfortably on.&lt;/li&gt;&#xA;&lt;li&gt;An up to date operating system.  Do your compatibility testing for XP, Vista, OS9, Red Hat 7 or whatever else you want to support on testing machines or inside VMs.  Don't hamstring yourself by developing on your target platform.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4057" LastActivityDate="2010-09-29T15:11:22.047" CommunityOwnedDate="2011-02-06T19:45:08.167" />
  <row Id="8250" PostTypeId="2" ParentId="8241" CreationDate="2010-09-29T15:22:22.113" Score="2" ViewCount="" Body="&lt;p&gt;Apparently it is a country thing.  Gasp! (for us Americans)  The majority of the world pronounces it with a long E sound according to this &lt;a href=&quot;http://delphi.wikia.com/wiki/Delphi_Pronunciation&quot; rel=&quot;nofollow&quot;&gt;article&lt;/a&gt;.  (I've always pronounced it with a long I sound, like the Phi in the first letter of my fraternity name.)&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-09-29T15:32:24.317" LastActivityDate="2010-09-29T15:32:24.317" />
  <row Id="8251" PostTypeId="2" ParentId="8093" CreationDate="2010-09-29T15:23:49.457" Score="6" ViewCount="" Body="&lt;p&gt;I'd like to mention &lt;a href=&quot;http://en.wikipedia.org/wiki/Taylor_series&quot; rel=&quot;nofollow&quot;&gt;Taylor series&lt;/a&gt; which are quite useful to for getting quick approximations of &quot;heavier&quot; functions. For example &lt;code&gt;sin(x)&lt;/code&gt; around 0 can be approximated with &lt;code&gt;x-(x*x*x/6)&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, the idea that there are clever ways to approximate things quickly, instead of calculating them to the last significant digit (although for elementary functions, most modern processors contain fast hard-wired implementations so using Taylor to approximate sin may not be that significant speed gain).&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-09-30T07:46:56.593" LastActivityDate="2010-09-30T07:46:56.593" />
  <row Id="8253" PostTypeId="2" ParentId="880" CreationDate="2010-09-29T15:31:17.933" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.hanselman.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Scott Hanselman&lt;/a&gt; and &lt;a href=&quot;http://10rem.net/&quot; rel=&quot;nofollow&quot;&gt;Pete Brown&lt;/a&gt; put together the &quot;Ultimate Developer PC&quot; which can be read about &lt;a href=&quot;http://www.hanselman.com/blog/UltimateDeveloperPC20Part2UPDATEAndPODCASTOnBuildingAWEI79AndRFCForBuildingAGOMGodsOwnMachine.aspx&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://10rem.net/articles/ultimate-pc-2010&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.  Cost is right around $3,000 USD.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-09-29T15:31:17.933" CommunityOwnedDate="2011-02-06T19:45:08.167" />
  <row Id="8254" PostTypeId="1" CreationDate="2010-09-29T15:37:24.917" Score="7" ViewCount="429" Body="&lt;p&gt;I'm developing a statically- and strongly-typed, compiled language, and I'm revisiting the idea of whether to include function overloading as a language feature. I realized that I'm a little bit biased, coming mainly from a &lt;code&gt;C[++|#]&lt;/code&gt; background.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the most convincing arguments &lt;em&gt;for&lt;/em&gt; and &lt;em&gt;against&lt;/em&gt; including function overloading in a language?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; Is there nobody who has an opposing opinion?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bertrand Meyer (creator of Eiffel back in 1985/1986) calls method overloading this: &lt;sup&gt;&lt;sub&gt;&lt;a href=&quot;http://archive.eiffel.com/doc/manuals/technology/bmarticles/sd/dotnet.html&quot; rel=&quot;nofollow&quot;&gt;(source)&lt;/a&gt;&lt;/sub&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;a vanity mechanism that brings nothing to the semantic power of an O-O language, but hampers readability and complicates everyone's task&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Now those are some sweeping generalizations, but he's a smart guy, so I think it's safe to say he could back them up if he needed to. In fact, he almost had Brad Abrams (one of the CLSv1 developers) convinced that .NET shouldn't support method overloading. &lt;sup&gt;&lt;sub&gt;&lt;a href=&quot;http://blogs.msdn.com/b/brada/archive/2003/09/02/50285.aspx&quot; rel=&quot;nofollow&quot;&gt;(source)&lt;/a&gt;&lt;/sub&gt;&lt;/sup&gt; That's some powerful stuff. Can anyone shed some light on his thoughts, and whether his viewpoint is still justified 25 years later?&lt;/p&gt;&#xA;" OwnerUserId="2276" LastEditorUserId="2276" LastEditorDisplayName="" LastEditDate="2010-09-30T15:39:58.103" LastActivityDate="2010-12-04T23:08:23.287" Title="Function overloading? Yes or no" Tags="&lt;language-design&gt;" AnswerCount="9" />
  <row Id="8255" PostTypeId="2" ParentId="8093" CreationDate="2010-09-29T15:38:47.640" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Sequence&quot; rel=&quot;nofollow&quot;&gt;Sequence&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Series_%28mathematics%29&quot; rel=&quot;nofollow&quot;&gt;series&lt;/a&gt; math.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen too many schools teaching &quot;write a loop to sum all the numbers between x and y&quot; instead of &quot;algorithms are AWESOME&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also...&#xA;&lt;a href=&quot;https://docs.google.com/viewer?url=http://courses.csail.mit.edu/6.042/fall10/mcs-ftl.pdf&quot; rel=&quot;nofollow&quot;&gt;https://docs.google.com/viewer?url=http://courses.csail.mit.edu/6.042/fall10/mcs-ftl.pdf&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1525" LastEditorUserId="1525" LastEditorDisplayName="" LastEditDate="2010-09-29T16:44:06.050" LastActivityDate="2010-09-29T16:44:06.050" />
  <row Id="8256" PostTypeId="2" ParentId="8093" CreationDate="2010-09-29T15:39:19.377" Score="0" ViewCount="" Body="&lt;p&gt;haha how about the fibo sequence ... good for benchmarking &lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-09-29T15:39:19.377" />
  <row Id="8257" PostTypeId="1" CreationDate="2010-09-29T15:40:33.660" Score="4" ViewCount="74" Body="&lt;p&gt;I'm currently writing a load test for a cache which should test how a cache will react to persistent requests. A colleague and I had differing opinions on how this load testing should be performed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe that a load test should be as random as possible. It should model real-world load as much as possible, and the way towards that is randomality. So I have created this random test as follows:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Test data is held in spreadsheets and is loaded into TestRunner objects at startup&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The test data is &lt;strong&gt;not&lt;/strong&gt; random&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;The load test will run 10 random TestRunners in individual Threads at the same time&lt;/li&gt;&#xA;&lt;li&gt;The object returned by the cache will be tested to make sure it is sensible, it is not thoroughly tested&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Any tests that fail will be output at the end and each test has a unique ID to easily find failed tests&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;At random intervals, the cache will be cleared to model the real-world requirement of the cache being cleared at any time.&lt;/li&gt;&#xA;&lt;li&gt;The load test will run for a configurable amount of time&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;My colleague's idea of what a load test should do is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Test data is held in spreadsheets and is loaded into TestRunner objects at startup&lt;/li&gt;&#xA;&lt;li&gt;All TestRunner objects are run in a sequential manner&lt;/li&gt;&#xA;&lt;li&gt;Each time the load test is run, it will run the TestRunner objects in the same order&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Which methodology do you feel would produce the most reliable load test? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally think the random test will produce a more reliable load test as it will model real-world usage. It is not known what order requests will come in when this is released to production, so it should be tested with that unknown element taken into account. However, running all tests in the same sequence each time will make any failures reproducable, which is important during testing.&lt;/p&gt;&#xA;" OwnerUserId="154" LastEditorUserId="2671" LastEditorDisplayName="" LastEditDate="2010-09-29T15:46:10.893" LastActivityDate="2010-09-29T16:53:52.910" Title="Load Test Methodology" Tags="&lt;best-practices&gt;&lt;testing&gt;&lt;load-testing&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="8258" PostTypeId="2" ParentId="4863" CreationDate="2010-09-29T15:40:55.343" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/library/x-xslt/&quot; rel=&quot;nofollow&quot;&gt;What kind of language is XSLT&lt;/a&gt;? by Michael Kay&lt;/p&gt;&#xA;" OwnerUserId="2078" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-07T03:18:31.143" LastActivityDate="2010-11-07T03:18:31.143" CommunityOwnedDate="2010-10-22T23:54:06.263" CommentCount="3" />
  <row Id="8259" PostTypeId="2" ParentId="8120" CreationDate="2010-09-29T15:44:36.973" Score="0" ViewCount="" Body="&lt;p&gt;If I manage to realise my goals and ambitions, I'll be training horses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not exactly part of the typical programmer career path, but it's the thing I love doing beyond anything else and it would be a good chance to live my dream. If I do that, however, I'm sure that it will result in a switch of hobby and work, so I would keep programming on my own time because its an interesting thing to do and I enjoy it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't imagine wanting to go too far in to management because it's technical stuff that I find most interesting. I wouldn't mind building up a business and doing the entrepreneurial thing and I could enjoy a research and teaching oriented academic job, but I don't see myself leading a department or getting any great distance from the code face and being happy. Given that seems to be where people expect programmers to go if they want to be paid more, I'll go for the horses ( and doubtless a matching pay &lt;em&gt;cut&lt;/em&gt; ) if I can possibly find a way to make it work.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-09-29T15:44:36.973" CommentCount="1" />
  <row Id="8261" PostTypeId="2" ParentId="648" CreationDate="2010-09-29T15:50:04.563" Score="0" ViewCount="" Body="&lt;p&gt;Estimates for what? Small tasks or complete solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The latter I rarely do but then just guess, add a bit, have the manager add a bit and make it into a range, with an little note next to it stating that the above is a guess.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Small tasks - &lt;a href=&quot;http://en.wikipedia.org/wiki/Planning_poker&quot; rel=&quot;nofollow&quot;&gt;Planning poker&lt;/a&gt; I've found to work really well (not perfect, some 1pt tasks have taken much longer and some 5pt tasks took minutes, but it all evens out in the end).&lt;/p&gt;&#xA;" OwnerUserId="1896" LastActivityDate="2010-09-29T15:50:04.563" />
  <row Id="8262" PostTypeId="1" CreationDate="2010-09-29T15:50:17.823" Score="5" ViewCount="912" Body="&lt;p&gt;What are some things to know that can make you more productive with Notepad++?&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2011-03-14T10:29:54.687" Title="Notepad++ Tips and Tricks" Tags="&lt;text-editor&gt;&lt;notepad++&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="2" />
  <row Id="8263" PostTypeId="2" ParentId="8257" CreationDate="2010-09-29T15:51:19.387" Score="1" ViewCount="" Body="&lt;p&gt;Do you have a way to reset the data once the test is run (if this is even necessary)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If so, what about running the non-random test first - to look for failures when run that way (and possible anomalies caused by the data itself)?  Then, after resetting (if necessary), run the random tests to reflect the real world load.&lt;/p&gt;&#xA;" OwnerUserId="2671" LastActivityDate="2010-09-29T15:51:19.387" CommentCount="1" />
  <row Id="8265" PostTypeId="2" ParentId="8104" CreationDate="2010-09-29T15:53:21.750" Score="6" ViewCount="" Body="&lt;p&gt;The Master said: “A gentleman is easy to serve, and hard to please. Nought but what is right pleases him: he fits his behests to the man. The vulgar are hard to serve, and easy to please. What is wrong may yet please them: but of their men they expect all things.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I had a private office, I disliked my job for other reasons (I was actually happy with compensation, and was treated very well. The lack of smart co-workers bothered me, amongst a few other things). Now I do not even have a cube, but I am happy and productive (I bought myself excellent noise-cancelling headphones for only $150, which is cheaper than paying a union-backed worker to change one light-bulb in a union-controlled building).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of having luxury at work, I would rather take more $ home. Keeping my programming tools sharp is good for my salary, but I understand that a job is a job and dirty/dull work is not always avoidable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More development managers should wear programmer's shoes, but also more programmers should have a better business sense - for instance think about how much $ just went into project X, and in the hindsight decide whether they should have bought someone else's tool instead. Just an example, and I can find many more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many talented developers live in a business bubble where they want to work on fun projects all year long. Street-smart developers also understand that money makes the world go round, and good customer base=everything, and sales, support, &amp;amp; other folks at the company matter plenty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, a street-smart developer will over time move to a pasture that is as green as possible, start her/his own business perhaps.&#xA;An idealistic developer will ask questions on forums about how life should work, and/or will write a blog entry about how managers suck, and programmers rock, and the world is no fair to us, poor programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And in the long run we are all dead, so make sure to spend your weekends wisely, such as getting drunk, having lots of sex, hiking, hitting the beach, and do not forget about ping-pong. Your list may vary. After a nice weekend work-out, your euphoria may last till Wednesday, at which point you have only 3 days of suffering without a private office left.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;EDIT:&lt;/em&gt;&lt;/strong&gt; When scrumming, having no walls and being able to group the new team geographically is a big plus.&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-09-29T15:53:21.750" CommunityOwnedDate="2010-09-29T15:53:21.750" CommentCount="2" />
  <row Id="8266" PostTypeId="2" ParentId="7861" CreationDate="2010-09-29T15:55:09.873" Score="25" ViewCount="" Body="&lt;p&gt;The deal breaker is &quot;Anything you create on your own time belongs to the company, and anything that competes with any of several dozen other unrelated businesses owned (now or in the future) by our parent company is prohibited.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The work I do for the company belongs to the company -- no problem.  I'm not to compete with the business unit I'm working for -- no problem.  But beyond that, such agreements are just asking for trouble, and I can't afford the lawyer power that a company can.&lt;/p&gt;&#xA;" OwnerUserId="4070" LastActivityDate="2010-09-29T15:55:09.873" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="2" />
  <row Id="8267" PostTypeId="2" ParentId="8262" CreationDate="2010-09-29T15:55:42.210" Score="2" ViewCount="" Body="&lt;p&gt;The Record and Playback option. Great for repetive tasks: needing to put ' round 1000 items and a comma at the end of each line for instance. Do it once, repeat 999 times. Love it.&lt;/p&gt;&#xA;" OwnerUserId="550" LastActivityDate="2010-09-29T15:55:42.210" />
  <row Id="8268" PostTypeId="2" ParentId="8254" CreationDate="2010-09-29T15:56:19.187" Score="0" ViewCount="" Body="&lt;p&gt;You just described Java. Or C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why are you reinventing the wheel?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strike&gt;Make sure that the return type is part of the method signature and &lt;/strike&gt;Overload to your hearts content, it really cleans up the code when you don't have to say.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function getThisFirstWay(int type)&#xA;{ ... }&#xA;function getThisSecondWay(int type, double limit)&#xA;{ ... }&#xA;function getThisThirdWay(int type, String match)&#xA;{ ... }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-09-29T16:44:21.357" LastActivityDate="2010-09-29T16:44:21.357" CommentCount="5" />
  <row Id="8269" PostTypeId="1" AcceptedAnswerId="8275" CreationDate="2010-09-29T16:00:55.153" Score="8" ViewCount="360" Body="&lt;p&gt;Well known programmer and author &lt;a href=&quot;http://en.wikipedia.org/wiki/Larry_Wall&quot; rel=&quot;nofollow&quot;&gt;Larry Wall&lt;/a&gt; is noted for saying:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;The three chief virtues of a&#xA;  programmer are: Laziness, Impatience&#xA;  and Hubris.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Give examples of how each of these has applied in your career.&lt;/p&gt;&#xA;" OwnerUserId="1081" LastActivityDate="2010-10-03T05:30:40.950" CommunityOwnedDate="2010-09-29T16:00:55.153" Title="The Virtues of Laziness, Impatience and Hubris" Tags="&lt;career&gt;&lt;interview-questions&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="1" />
  <row Id="8270" PostTypeId="2" ParentId="8185" CreationDate="2010-09-29T16:05:35.163" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.olegkikin.com/md5game/&quot; rel=&quot;nofollow&quot;&gt;MD5game&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A &lt;a href=&quot;http://timhatch.com/ark/2010/09/21/md5game-in-2009&quot; rel=&quot;nofollow&quot;&gt;friend and I&lt;/a&gt; played with that for quite a while.&lt;/p&gt;&#xA;" OwnerUserId="4070" LastActivityDate="2010-09-29T16:05:35.163" />
  <row Id="8271" PostTypeId="2" ParentId="8093" CreationDate="2010-09-29T16:08:18.310" Score="0" ViewCount="" Body="&lt;p&gt;Knowing boolean algebra helps a lot. It keeps you from writing code like&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (x &amp;lt; 10)&#xA;    return true;&#xA;else&#xA;    return false;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3684" LastActivityDate="2010-09-29T16:08:18.310" CommentCount="3" />
  <row Id="8272" PostTypeId="2" ParentId="8254" CreationDate="2010-09-29T16:09:48.260" Score="3" ViewCount="" Body="&lt;p&gt;I've always preferred default parameters over function overloading. Overloaded functions generally just call a &quot;default&quot; version with default parameters. Why write&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int indexOf(char ch)&#xA;{&#xA;  return self.indexOf(ch, 0);&#xA;}&#xA;&#xA;int indexOf(char ch, int fromIndex)&#xA;{&#xA;  // Do whatever&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;When I could do:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int indexOf(char ch, int fromIndex=0)&#xA;{&#xA;  // Do whatever&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That said, I realize sometimes overloaded functions do different things, rather than just calling another variant with default parameters...but in such a case, it's not a bad idea (in fact, it's probably a &lt;em&gt;good&lt;/em&gt; idea) to just give it a different name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Also, Python-style keyword arguments work really nicely with default parameters.)&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-09-29T16:09:48.260" CommentCount="3" />
  <row Id="8273" PostTypeId="2" ParentId="8269" CreationDate="2010-09-29T16:11:57.527" Score="0" ViewCount="" Body="&lt;p&gt;I want everything to work efficiently and be easily maintainable, so when I need to make changes I can do them quickly, and there's less chance of negative impact.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-09-29T16:11:57.527" CommunityOwnedDate="2010-09-29T16:11:57.527" />
  <row Id="8274" PostTypeId="2" ParentId="8269" CreationDate="2010-09-29T16:28:35.047" Score="3" ViewCount="" Body="&lt;p&gt;I write code to make the changes easy for my lazy future-self.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-09-29T16:28:35.047" CommunityOwnedDate="2010-09-29T16:28:35.047" />
  <row Id="8275" PostTypeId="2" ParentId="8269" CreationDate="2010-09-29T16:28:36.170" Score="16" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Laziness&lt;/strong&gt;: I'm too lazy to do the same task repeatedly so write scripts to do that task for me. This makes people think I am intelligent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Impatience&lt;/strong&gt;: I'm too impatient to wait for my code to run so rewrite the code to improve performance. This makes people think I am a good programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Hubris&lt;/strong&gt;: When someone asks if I can do something I just say Yes, then go find out how to do it (Google!). This makes people think I can do anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately, it means I can make a career out of being Lazy, Impatient, and whatever verb would be used for Hubris.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-09-29T16:28:36.170" CommunityOwnedDate="2010-09-29T16:28:36.170" CommentCount="4" />
  <row Id="8276" PostTypeId="2" ParentId="8236" CreationDate="2010-09-29T16:31:09.723" Score="1" ViewCount="" Body="&lt;p&gt;I might start out by searching for people on google, because if their own site isn't findable, I won't trust that mine would be. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I would want to see some portfolio sites, ideally ones where they use the technology I'm wanting to use. If they don't have any, they don't get to do the job unless they can show they clearly understand what I'm talking about and how to implement it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be ready to widen the net- there are a lot of decent designers and developers around so no point settling for someone weak just because they are very local rather than somewhat local.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I can't find anyone convincing that way, I might look the other way- find some sites that do something like what I am looking for and then find out who developed them. &lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-09-29T16:31:09.723" />
  <row Id="8278" PostTypeId="2" ParentId="8254" CreationDate="2010-09-29T16:46:57.680" Score="4" ViewCount="" Body="&lt;p&gt;Allow function overloading, you can't do the following with optional parameters (or if you can, not nicely).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;trivial example assumes no&lt;/em&gt; &lt;code&gt;base.ToString()&lt;/code&gt; &lt;em&gt;method&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;string ToString(int i) {}&#xA;string ToString(double d) {}&#xA;string ToString(DateTime d) {}&#xA;...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1707" LastActivityDate="2010-09-29T16:46:57.680" />
  <row Id="8279" PostTypeId="2" ParentId="8254" CreationDate="2010-09-29T16:49:33.540" Score="0" ViewCount="" Body="&lt;p&gt;Comes down to context, but I think overloading makes a class much more useful when I'm using one written by someone else. You often end up with less redundancy.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-09-29T16:49:33.540" />
  <row Id="8280" PostTypeId="2" ParentId="8185" CreationDate="2010-09-29T16:50:27.550" Score="0" ViewCount="" Body="&lt;p&gt;Our IT staff wasted a decent amount of time on &lt;a href=&quot;http://try2hack.nl/&quot; rel=&quot;nofollow&quot;&gt;TryToHack&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-09-29T16:50:27.550" />
  <row Id="8281" PostTypeId="2" ParentId="8257" CreationDate="2010-09-29T16:53:52.910" Score="0" ViewCount="" Body="&lt;p&gt;Multi-thread tests are a pain. It might simulate a real-world scenario but will only tell you that 'There is a problem'. You will not be able to reproduce the test run and, most of the times, this means that you will not be able to find the bug.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The random execution model will reveal strange bugs that don't arise on normal usage - otherwise you would know about them just by 'playing' with the product. That's why the chance of reproducing the same bug with another random run is very small (unless you have infinite time :) ).&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-09-29T16:53:52.910" />
  <row Id="8282" PostTypeId="2" ParentId="8254" CreationDate="2010-09-29T16:53:59.163" Score="17" ViewCount="" Body="&lt;p&gt;Function overloading is absolutely critical for C++-style template code.  If I have to use different function names for different types, I can't write generic code.  That would eliminate a large and heavily used part of the C++ library, and much of C++'s functionality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's usually present in member function names.  &lt;code&gt;A.foo()&lt;/code&gt; can call an entirely different function from &lt;code&gt;B.foo()&lt;/code&gt;, but both functions are named &lt;code&gt;foo&lt;/code&gt;.  It's present in operators, as &lt;code&gt;+&lt;/code&gt; does different things when applied to integers and floating-point numbers, and it's often used as a string concatenation operator.  It seems odd not to allow it in regular functions as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It enables the use of Common Lisp-style &quot;multimethods&quot;, in which the exact function called depends on two data types.  If you haven't programmed in the Common Lisp Object System, try it before you call this useless.  It's vital for C++ streams.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I/O without function overloading (or variadic functions, which are worse) would require a number of different functions, either to print values of different types or to convert values of different types to a common type (like String).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without function overloading, if I change the type of some variable or value I need to change every function that uses it.  It makes it much harder to refactor code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It makes it easier to use APIs when the user doesn't have to remember which type naming convention is in use, and the user can just remember standard function names.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without operator overloading, we'd have to label each function with the types it uses, if that base operation can be used on more than one type.  This is essentially Hungarian notation, the bad way of doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall, it makes a language far more usable.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-29T16:53:59.163" CommentCount="1" />
  <row Id="8283" PostTypeId="1" AcceptedAnswerId="8307" CreationDate="2010-09-29T16:55:01.190" Score="11" ViewCount="814" Body="&lt;p&gt;What was a project or spec that got put on your desk that could not possibly be done? How did you explain the dilemma to the &quot;requester&quot;? More importantly, did they understand after you explained the fundamental issue? &lt;/p&gt;&#xA;" OwnerUserId="3792" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T16:02:30.550" LastActivityDate="2011-01-21T18:10:47.527" CommunityOwnedDate="2011-01-21T18:10:47.527" ClosedDate="2011-01-22T05:52:47.840" Title="Best (worst) logically impossible task assigned to you?" Tags="&lt;project-management&gt;&lt;communication&gt;" AnswerCount="16" CommentCount="1" FavoriteCount="4" />
  <row Id="8284" PostTypeId="1" AcceptedAnswerId="8308" CreationDate="2010-09-29T16:55:30.627" Score="5" ViewCount="341" Body="&lt;p&gt;What is a good strategy for a entry-level / junior developer when starting out in the real world?  I just started to work for a global company and although I have been gaining great experience in my language (Java) as well as new technologies (XSLT &amp;amp; XML), I just feel that &quot;climbing the ladder&quot; seems a bit tougher and more far-fetch than say a small company who would value my hard work and extra time a little more than a big corporation would.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is, should I just gain what I can from this company for a few years and look for a more rewarding position in another company?  Or just stick it out, keep putting in the hard work, and capitalize on opportunities that open up in this company? &lt;/p&gt;&#xA;" OwnerUserId="3581" LastActivityDate="2010-09-29T18:29:48.410" Title="What is a good strategy for a entry-level / junior developer?" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;software-developer&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="1" />
  <row Id="8285" PostTypeId="2" ParentId="8185" CreationDate="2010-09-29T17:01:06.653" Score="6" ViewCount="" Body="&lt;p&gt;One that causes a lot of argument is the Monty Hall problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a game show, there are three doors, apparently identical, and the contestant can choose one door and receive the prize behind it.  One door hides a very good prize, the other two show empty rooms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The order of actions:  the contestant chooses one door, and Monty then opens another door to show an empty room.  Monty then gives the contestant the option of sticking with the original door or switching.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's the best thing for the contestant to do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The answer is fairly simple, when looked at the right way, but it's apparently really easy to look at it the wrong way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this case, the sniping is not so much paralyzing the individual solving the problem, but the group in arguing about it.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-29T17:01:06.653" CommentCount="5" />
  <row Id="8287" PostTypeId="2" ParentId="8228" CreationDate="2010-09-29T17:02:54.140" Score="2" ViewCount="" Body="&lt;p&gt;Jon Bently in &lt;em&gt;Programming Pearls&lt;/em&gt; (originaly published 1986) does not specifically mention Test-First programming.   But in the chapter &quot;Writing Correct Programs&quot;, he describes writing an algorithm by first defining the preconditions, invariants and postconditions, and in the next chapter describes an automated testing framework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not quite test-first, but he was definitely laying some of the groundwork.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;CIO&lt;/strong&gt; Magazine, March 1993, &lt;em&gt;Bug Busters&lt;/em&gt;, by Lucie Juneau,  &lt;a href=&quot;http://books.google.com/books?id=Jw0AAAAAMBAJ&amp;amp;lpg=PA84&amp;amp;dq=write%20tests%20before%20code&amp;amp;pg=PA84#v=onepage&amp;amp;q=write%20tests%20before%20code&amp;amp;f=false&quot; rel=&quot;nofollow&quot;&gt;pg 84&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Test cases ... can be developed even&#xA;  before any code has been written. &#xA;  Ideally these cases are based on an&#xA;  application's requirements ... If developers are given requirements-based tests before they begin to write code, they will design a product that can pass those tests ... &quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="145" LastEditorUserId="145" LastEditorDisplayName="" LastEditDate="2010-09-29T18:00:23.337" LastActivityDate="2010-09-29T18:00:23.337" CommentCount="2" />
  <row Id="8288" PostTypeId="2" ParentId="8284" CreationDate="2010-09-29T17:05:36.927" Score="1" ViewCount="" Body="&lt;p&gt;Other than having a harder time getting promoted, what is wrong with your current situation? Many small companies have no ladder for developers and may require you to do more than just program. You have to decide what are the qualities of a job that you want and what do you consider as rewards. They come in many forms and don't always have a promotion.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-29T17:05:36.927" />
  <row Id="8289" PostTypeId="2" ParentId="5215" CreationDate="2010-09-29T17:06:27.033" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.ndc2010.no/&quot; rel=&quot;nofollow&quot;&gt;NDC&lt;/a&gt; And I am totally surprised how nobody mentioned it. You can find &lt;a href=&quot;http://www.ndc2010.no/index.aspx?id=361621&quot; rel=&quot;nofollow&quot;&gt;videos here&lt;/a&gt; and decide by yourself whether it's cool or great =)&lt;/p&gt;&#xA;" OwnerUserId="1716" LastActivityDate="2010-09-29T17:06:27.033" />
  <row Id="8290" PostTypeId="2" ParentId="8254" CreationDate="2010-09-29T17:07:26.073" Score="3" ViewCount="" Body="&lt;p&gt;I recommend at least being aware of type classes in Haskell.  Type classes were created to be a disciplined approach to operator overloading, but have found other uses, and to an extent, made Haskell what it is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, here's an example of ad-hoc overloading (not quite valid Haskell):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(==) :: Int -&amp;gt; Int -&amp;gt; Bool&#xA;x == y = ...&#xA;x /= y = not (x == y)&#xA;&#xA;(==) :: Char -&amp;gt; Char -&amp;gt; Bool&#xA;x == y = ...&#xA;x /= y = not (x == y)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And here's the same example of overloading with type classes:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Eq a where&#xA;    (==) :: a -&amp;gt; a -&amp;gt; Bool&#xA;    (/=) :: a -&amp;gt; a -&amp;gt; Bool&#xA;&#xA;    x /= y  =  not (x == y)&#xA;&#xA;instance Eq Int where&#xA;    x == y  = ...&#xA;&#xA;instance Eq Char where&#xA;    x == y  = ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;A downside of this is that you have to come up with funky names for all your typeclasses (like in Haskell, you have the rather abstract &lt;code&gt;Monad&lt;/code&gt;, &lt;code&gt;Functor&lt;/code&gt;, &lt;code&gt;Applicative&lt;/code&gt; as well as the simpler and more recognizable &lt;code&gt;Eq&lt;/code&gt;, &lt;code&gt;Num&lt;/code&gt;, and &lt;code&gt;Ord&lt;/code&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An upside is that, once you're familiar with a typeclass, you know how to use any type in that class.  Plus, it's easy to guard functions from types that don't implement the needed classes, as in:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;group :: (Eq a) =&amp;gt; [a] -&amp;gt; [[a]]&#xA;group = groupBy (==)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; In Haskell, if you wanted an &lt;code&gt;==&lt;/code&gt; operator that accepts two different types, you could use a multi-parameter type class:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Eq a b where&#xA;    (==) :: a -&amp;gt; b -&amp;gt; Bool&#xA;    (/=) :: a -&amp;gt; b -&amp;gt; Bool&#xA;&#xA;    x /= y  =  not (x == y)&#xA;&#xA;instance Eq Int Int where&#xA;    x == y  = ...&#xA;&#xA;instance Eq Char Char where&#xA;    x == y  = ...&#xA;&#xA;instance Eq Int Float where&#xA;    x == y  = ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Of course, this is probably a bad idea, since it explicitly lets you compare apples and oranges.  However, you might want to consider this for &lt;code&gt;+&lt;/code&gt;, since adding a &lt;code&gt;Word8&lt;/code&gt; to an &lt;code&gt;Int&lt;/code&gt; really is a sensible thing to do in some contexts.&lt;/p&gt;&#xA;" OwnerUserId="3650" LastEditorUserId="3650" LastEditorDisplayName="" LastEditDate="2010-09-29T17:43:09.970" LastActivityDate="2010-09-29T17:43:09.970" CommentCount="5" />
  <row Id="8291" PostTypeId="2" ParentId="7804" CreationDate="2010-09-29T17:08:27.763" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;IntelliJ IDEA&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Same question has been asked on Stack Overflow. Check out &lt;a href=&quot;http://stackoverflow.com/questions/419207/which-is-the-best-ide-for-scala-development&quot;&gt;Which is the best IDE for Scala development?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1373" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-09-29T17:22:24.137" LastActivityDate="2010-09-29T17:22:24.137" CommentCount="2" />
  <row Id="8292" PostTypeId="2" ParentId="8283" CreationDate="2010-09-29T17:11:38.350" Score="8" ViewCount="" Body="&lt;p&gt;It isn't an official assignment (yet) but the owner of this company keeps asking to put absolutely everything about our business &quot;On the Cloud&quot;. Lucky for me, I'm not the one responsible with formulating a reply to this :)&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-09-29T17:11:38.350" CommunityOwnedDate="2011-01-21T18:10:47.527" CommentCount="6" />
  <row Id="8293" PostTypeId="2" ParentId="8269" CreationDate="2010-09-29T17:14:38.513" Score="0" ViewCount="" Body="&lt;p&gt;Lazy - just can't mentally handle the repetitive stuff&#xA;Impatience - give me a problem and I want to come up with a solution and will drive myself nuts until I do.&#xA;Hubris - very helpful when dealing countering the requests from the sales staff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We're the perfect compliment to the computer. Otherwise they would be willing to repeatedly run whatever code you throw at them without giving it another though, sit there forever without any reguard for what you or anyone else thinks of it.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-29T17:14:38.513" CommunityOwnedDate="2010-09-29T17:14:38.513" />
  <row Id="8294" PostTypeId="2" ParentId="358" CreationDate="2010-09-29T17:14:44.863" Score="0" ViewCount="" Body="&lt;p&gt;SNOBOL, for a school project.  It's a pattern-matching language, very powerful in that it works with context-free grammars instead of regular expressions.  For many computer languages, you can create a SNOBOL pattern that reflects the entire grammar, and parse an entire program in one line.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The form of a statement, any statement, is:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;LABEL:  MAIN MATCH = SUBSTITUTE :JUMPS&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;any of which may be omitted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;code&gt;LABEL&lt;/code&gt; is a jump target, as you'd expect.  The &lt;code&gt;MAIN&lt;/code&gt; is text or something, and &lt;code&gt;MATCH&lt;/code&gt; is what's trying to match part or all of it.  If the match succeeds, &lt;code&gt;SUBSTITUTE&lt;/code&gt; is put into &lt;code&gt;MAIN&lt;/code&gt; instead of what was matched.  The &lt;code&gt;JUMPS&lt;/code&gt; have labels for when a match succeeds or fails, or possibly what to return from a function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, the only way to make a general conditional statement or loop is to build it with really awkward-looking jumps.  This caused me a great deal of frustration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It left me never wanting to touch SNOBOL again.  I've read of a follow-on language called ICON, but I've never been tempted to learn it. &lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-29T17:14:44.863" CommunityOwnedDate="2010-09-30T22:46:32.880" />
  <row Id="8295" PostTypeId="2" ParentId="8262" CreationDate="2010-09-29T17:16:32.737" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Here are few tricks I try:&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;File Association:&lt;/strong&gt;&lt;br&gt;&#xA;Go to Settings --&gt; Preferences... --&gt; Click the &quot;File Association&quot; tab&lt;br&gt;&#xA;Now add any file extension you like to edit in Notepad++ so when you double-click a file with that extension, it will automatically open Notepad++.  I have Notepad++ open txt, ini, bat, and xml files for ease of readability and editing.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Shortcut Mapper:&lt;/strong&gt;&lt;br&gt;&#xA;Go to Settings --&gt; Shortcut Mapper...&lt;br&gt;&#xA;Great for people who want more control of shortcuts on the keyboard for commands.  You can edit the existing ones with shortcuts or modify ones that currently don't have a shortcut.  The list is pretty big.  You can even do shortcuts for macros you created!!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Style Configurator:&lt;/strong&gt;&lt;br&gt;&#xA;Go to Settings --&gt; Style Configurator...&lt;br&gt;&#xA;Not really a productivity booster but some people like to code or edit things in different foreground and background colors.  There's even options to change highlight / font colors for keywords in your language.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I'm sure there is more, but just checking out the Settings menu can do some good in productivity boost.&lt;/p&gt;&#xA;" OwnerUserId="3581" LastActivityDate="2010-09-29T17:16:32.737" CommentCount="2" />
  <row Id="8296" PostTypeId="2" ParentId="8254" CreationDate="2010-09-29T17:19:57.780" Score="0" ViewCount="" Body="&lt;p&gt;If you're looking to have users with familiarity with the C-family languages then yes you should because your users will be expecting it.&lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-09-29T17:19:57.780" />
  <row Id="8297" PostTypeId="1" AcceptedAnswerId="8393" CreationDate="2010-09-29T17:21:06.147" Score="4" ViewCount="135" Body="&lt;p&gt;My management just asked an unprecedented question in my (admittedly brief) history with the organization: &quot;What can we do to help you?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simultaneously, we're working several big projects for a fairly new client whose ability to push requirements around mid-project is legend. Developing for these guys is like tap dancing on quicksand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seems like a prime opportunity to propose a shift to a more agile approach. The thing I know I'm going to get asked, and that I don't have any idea about, is how to quote/bid/bill for that sort of project. Do you go hourly? Do you bid a range of prices? Do you charge by the sprint?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More generally, the aspect of the Agile Manifesto that reads &quot;We value customer collaboration over contract negotiation&quot; is GOING to scare my management. How do you value that in the real world of customers who want a lot for a little?&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-10-23T11:49:13.983" Title="Customer relations in agile development" Tags="&lt;agile&gt;&lt;billing&gt;&lt;customer-relations&gt;" AnswerCount="3" />
  <row Id="8298" PostTypeId="2" ParentId="8284" CreationDate="2010-09-29T17:24:28.447" Score="1" ViewCount="" Body="&lt;p&gt;My experience was quite the contrary: I started out at a small company and then switched to a bigger one. To me, the size of the company doesn't matter, especially when you're just starting your career, it is the opportunities and knowledge that you can gain at that place. You mentioned that you have gained a lot of experience, which is key. If you think you still have a lot to learn at the company you are at, then don't base your decision on leaving or staying just on the size of the company. At this point in your career just try to learn as much as you can and build a foundation for your future.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-09-29T17:24:28.447" />
  <row Id="8299" PostTypeId="2" ParentId="8284" CreationDate="2010-09-29T17:25:35.263" Score="0" ViewCount="" Body="&lt;p&gt;Starting off... I would go with a small company to get a feel for things, set your own style and such. Granted, working with a small company may open you up to other IT related tasks but it may be useful in the future.&lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-09-29T17:25:35.263" />
  <row Id="8300" PostTypeId="2" ParentId="8283" CreationDate="2010-09-29T17:27:07.830" Score="5" ViewCount="" Body="&lt;p&gt;I and another couple of programmers were once asked why we couldn't find an algorithm to determine where holes were in 3-D geometries composed of triangles (&lt;a href=&quot;http://en.wikipedia.org/wiki/STL_%28file_format%29&quot; rel=&quot;nofollow&quot;&gt;STL files&lt;/a&gt;, for those who know them, and not exactly conforming to the proper specification of no-holes-allowed).  My boss didn't seem to understand how hard it could be, because after all, he could just look at the rendered model and point to the holes in it.&lt;/p&gt;&#xA;" OwnerUserId="3047" LastActivityDate="2010-09-29T17:27:07.830" CommunityOwnedDate="2011-01-21T18:10:47.527" CommentCount="2" />
  <row Id="8301" PostTypeId="1" CreationDate="2010-09-29T17:27:30.023" Score="26" ViewCount="1441" Body="&lt;p&gt;In my experience, software developers tend to wear multiple hats and fill multiple roles with different responsibilities.  From not only coding, but sometimes also writing SQL, designing the user-interface, designing the database, graphics manipulation, to even QA testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;If the primary role is to write software/code, what roles should the developer not take on?&lt;/strong&gt;  Are there any?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The intention of this question is not because a developer is incapable of filling another role-- but having the additional role actually &lt;em&gt;works against the primary role&lt;/em&gt;, or should really be a dedicated role of someone who does not primarily program.&lt;/p&gt;&#xA;" OwnerUserId="14" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T22:51:00.813" LastActivityDate="2010-12-04T00:23:06.797" Title="What hat should a programmer not wear?" Tags="&lt;software-developer&gt;" AnswerCount="19" CommentCount="12" FavoriteCount="3" />
  <row Id="8303" PostTypeId="2" ParentId="8098" CreationDate="2010-09-29T17:40:04.063" Score="0" ViewCount="" Body="&lt;p&gt;The bare minimum depends on the company.  I've worked at a place where other people were responsible for program design, and I had to translate detailed specs into COBOL.  That's really not much fun, but I didn't need to know anything about the business at first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you start having some say in program design (or, preferably, if you start there), you need to know what the business is doing, so you can understand what your users actually need.  Knowing more about the business means that people need to tell you things in less detail, so your value to the business grows.  You can sometimes do things on your own initiative that help the business, also increasing your value.  This is often reflected in your job title and paycheck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also helpful to have some idea of where the money comes from, where it goes, and why some of it goes into your pocket.  You really should have some sort of idea why the company pays you.  It may help your motivation to learn to know that those new contracts are the things that provide your pay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also likely to help if you know what business affairs mean to you, how a new contract affects you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, if you don't want to stay in a purely technical role forever (and, empirically, that seems a little rare), you will need to understand the business much better, but it will help anybody to understand what's going on.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-29T17:40:04.063" />
  <row Id="8304" PostTypeId="2" ParentId="7705" CreationDate="2010-09-29T17:40:26.153" Score="1" ViewCount="" Body="&lt;p&gt;I don't have the book in front of me right at this moment (to quote), but according to Code Complete the &quot;sweetspot&quot; for function length was around 25-50 lines of code according to his research.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are times where is ok to have long functions: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When the cyclomatic complexity of the function is low. Your fellow developers might get a little frustrated if they have to look at a function that contains a giant if statement and the else statement for that if is not on the screen at the same time.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The times where it's not ok to have long functions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You have a function with deeply nested conditionals. Do your fellow code readers a favor, improve the readability by breaking up the function. A function provides an indication to it's reader that &quot;This is a block of code that does one thing&quot;. Also ask yourself if the length of the function indicates that it's doing too much and it needs to be factored out to another class.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The bottom line is that maintainability should be one of the highest priorities on your list. If another dev can't look at your code and get a &quot;gist&quot; of what the code is doing in less than 5 seconds, ur code doesn't provide enough &quot;metadata&quot; to tell what it's doing. Other devs should be able to tell what your class is doing just by looking at the object browser in your chosen IDE instead of reading 100+ lines of code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Smaller functions have the following advantages:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Portability: It's much easier to move functionality around (either within the class on refactoring to a different one)&lt;/li&gt;&#xA;&lt;li&gt;Debugging: When you look at the stacktrace it's much faster to pinpoint an error if you are looking at a function with 25 lines of code rather than 100. &lt;/li&gt;&#xA;&lt;li&gt;Readability - The name of the function tells what an entire block of code is doing. A dev on your team might not want to read that block if they aren't working with it. Plus, in most modern IDE's another dev can have a better understanding what your class is doing by reading the function names in an object browser.&lt;/li&gt;&#xA;&lt;li&gt;Navigation - Most IDE's will let you search on the name of functions. Also, most modern IDE's have the ability to view the source of a function in another window, this gives other devs to look at your long function on 2 screens (if the multi-monitors) instead of making them scroll.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The list goes on.....&lt;/p&gt;&#xA;" OwnerUserId="1801" LastActivityDate="2010-09-29T17:40:26.153" />
  <row Id="8305" PostTypeId="2" ParentId="8301" CreationDate="2010-09-29T17:40:32.003" Score="7" ViewCount="" Body="&lt;p&gt;In general, it has been my experience that most programmers should not develop the look and feel of the user interface -- although I am certainly capable of developing a UI (and often create one when building a prototype or proof of concept), this is better left to a human factors person (who in our small company is a graphic artist who also does the screen layouts and creates most of the manuals and brochures).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, developers should not be doing QA testing -- that is the job of the QA department (the  company I work at makes embedded medical devices, so this is a requirement that the testing be done by a separate department).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I see no reason why developers cannot design databases and write SQL, if they have the background to do so -- I have done so many times.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-09-29T19:08:20.800" LastActivityDate="2010-09-29T19:08:20.800" CommentCount="19" />
  <row Id="8306" PostTypeId="2" ParentId="8301" CreationDate="2010-09-29T17:44:13.227" Score="7" ViewCount="" Body="&lt;p&gt;Two I can think of right off the bat.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Tech support. I'm not here to help clients work through the new site or teach them how to use features.&lt;/li&gt;&#xA;&lt;li&gt;While it may be necessary to interface with clients at various points in the process, unless you're a managing programmer you really shouldn't be directly communicating with them about features and design implementations. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;You could say that CSS / UI development would be outside of the programming &quot;realm&quot; but in my experience it is a necessary skill today. You can't just get away with tables and depend on someone else to implement it correctly. I may not like implementing design or altering the code to handle a new design, but that is part of the job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing queries is fine, Q/A testing is fine (and IMO &lt;em&gt;should&lt;/em&gt; be the job of the programmer, having an external department do it is find, but first you should test it). Server administration is a bit of a grey area. Depending on how large the project is or if you have a dedicated server admin it may or may not be needed. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-29T17:44:13.227" CommentCount="1" />
  <row Id="8307" PostTypeId="2" ParentId="8283" CreationDate="2010-09-29T17:46:57.840" Score="19" ViewCount="" Body="&lt;p&gt;I was told to make the printer print faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Serious, and I was written up for failing. The boss wasn't very tech savvy and didn't understand why I couldn't speed it up. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-29T17:46:57.840" CommunityOwnedDate="2011-01-21T18:10:47.527" CommentCount="5" />
  <row Id="8308" PostTypeId="2" ParentId="8284" CreationDate="2010-09-29T17:47:48.760" Score="7" ViewCount="" Body="&lt;p&gt;The answer to your question is &quot;yes&quot;. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, though, I would stick it out while you're still learning. I don't mean that in the &quot;while you're still junior&quot; sense, but literally in the &quot;while you're learning new stuff and enjoying your work&quot;. Once you're no longer learning, see what your options are at that time. You might come across a compelling opportunity within the company, or you might find something outside either at a small outfit or another large company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't worry about the ladder right off the bat. Explore your current rung to its fullest extent and the rest will sort itself out when the time's right.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-29T17:47:48.760" CommentCount="1" />
  <row Id="8309" PostTypeId="2" ParentId="5215" CreationDate="2010-09-29T17:51:58.010" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;JavaOne &amp;amp; OracleDevelop&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.oracle.com/us/javaonedevelop/index.html&quot; rel=&quot;nofollow&quot;&gt;http://www.oracle.com/us/javaonedevelop/index.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;San Francisco - September 19-23 2010&lt;/li&gt;&#xA;&lt;li&gt;Latin America - December 7-9 2010&lt;/li&gt;&#xA;&lt;li&gt;Beijing - December 13-16 2010&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3906" LastActivityDate="2010-09-29T17:51:58.010" CommentCount="1" />
  <row Id="8310" PostTypeId="1" AcceptedAnswerId="8369" CreationDate="2010-09-29T17:56:36.850" Score="10" ViewCount="272" Body="&lt;p&gt;When you add a programmer to a project with a large code base, what is the best way to get them involved right away? Do you give them formal training in the code base or let them figure it out themselves? What tasks are best to get them up to speed? What kind of tasks are &quot;safe&quot; until they are familiar enough with the project to contribute to it with a full understanding of what they're doing? How do you determine if they've reached a level of full understanding?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The project isn't behind a deadline. I work alone and want to add employees soon. I'd like to know how best to familiarize them with the code base.&lt;/p&gt;&#xA;" OwnerUserId="73" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T16:04:08.690" LastActivityDate="2010-10-02T16:04:08.690" Title="What is the best way to bring a new programmer up to speed on a project?" Tags="&lt;work-environment&gt;&lt;project-management&gt;" AnswerCount="7" CommentCount="2" />
  <row Id="8311" PostTypeId="1" AcceptedAnswerId="8397" CreationDate="2010-09-29T18:00:01.793" Score="5" ViewCount="386" Body="&lt;p&gt;This might be slightly off topic, but I'll risk it, as the site is about &lt;em&gt;Programmers&lt;/em&gt; !&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers are good at constantly learning new programming languages, but how good are they at learning a new spoken language ? Have you taken up a foreign language (French/Spanish/etc) &lt;strong&gt;as an adult&lt;/strong&gt; and mastered it? Was it easy?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I ask because I have been trying to learn French for quite some time now, and I'm still at the annoying &quot;Je parle un peu de Française&quot; stage. I've attended two French courses, one where the majority of the class were programmers, and one where they weren't and the difference in ability was quite apparent. Does a mathematical / logical inclination hinder learning a spoken language where grammar is not in ones and zeros? Or am I just transferring blame instead of simply accepting that I am not good with languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;[It is important that you have not been taught the language in school, as early exposure really gives you the upper hand. I've picked up and got quite good at languages I've been exposed to under the age of 10.]&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="153" LastActivityDate="2010-09-29T23:22:21.703" Title="Are programmers good at learning &quot;spoken&quot; languages ?" Tags="&lt;spoken-languages&gt;" AnswerCount="8" CommentCount="7" FavoriteCount="1" />
  <row Id="8312" PostTypeId="2" ParentId="5215" CreationDate="2010-09-29T18:00:44.383" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.barcamp.org&quot; rel=&quot;nofollow&quot;&gt;BarCamp&lt;/a&gt;. I attended the one in &lt;a href=&quot;http://www.barcamp.org/BarCamp-Saint-Louis-2009&quot; rel=&quot;nofollow&quot;&gt;St. Louis in 2009&lt;/a&gt;. There, I was introduced to &lt;a href=&quot;http://www.vim.org&quot; rel=&quot;nofollow&quot;&gt;vim&lt;/a&gt; and to &lt;a href=&quot;http://www.stackoverflow.com&quot; rel=&quot;nofollow&quot;&gt;StackOverflow&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3569" LastEditorUserId="3569" LastEditorDisplayName="" LastEditDate="2010-09-30T01:25:43.963" LastActivityDate="2010-09-30T01:25:43.963" />
  <row Id="8313" PostTypeId="2" ParentId="8310" CreationDate="2010-09-29T18:01:41.650" Score="-1" ViewCount="" Body="&lt;p&gt;Don't do that&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The mythical man month&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Assigning more programmers to a project running behind schedule will make it even later, because of the time required for the new programmers to learn about the project, as well as the increased communication overhead.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/The_Mythical_Man-Month&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/The_Mythical_Man-Month&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-29T18:01:41.650" CommentCount="4" />
  <row Id="8314" PostTypeId="2" ParentId="8187" CreationDate="2010-09-29T18:03:47.383" Score="0" ViewCount="" Body="&lt;p&gt;Everything that can possibly be immutable should be.  It helps to ensure correctness and helps when you want to make your application multithreaded.&lt;/p&gt;&#xA;" OwnerUserId="2129" LastActivityDate="2010-09-29T18:03:47.383" />
  <row Id="8315" PostTypeId="2" ParentId="8311" CreationDate="2010-09-29T18:05:28.973" Score="1" ViewCount="" Body="&lt;p&gt;Pour apprendre une langue, la meilleure solution c'est de pratiquer. L'ideal c'est te faire un ami avec qui tu peux correspondre tous les jours. J'ai appris l'anglais dans les livres de programmation, puis la prononciation en bossant a coté d'un irlandais.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-29T18:05:28.973" CommentCount="9" />
  <row Id="8316" PostTypeId="2" ParentId="5215" CreationDate="2010-09-29T18:08:03.493" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.yapc.org/&quot; rel=&quot;nofollow&quot;&gt;YAPC&lt;/a&gt; (Yet Another Perl Conference). For those interested in Perl, these are some of the best, yet inexpensive, conferences you can attend. You also get to meet some of the best in the field. At YAPC::NA this year, I gave a lightening talk, took a class with Damian Conway and visited with Randal Schwartz and Larry Wall after dinner.&lt;/p&gt;&#xA;" OwnerUserId="3569" LastActivityDate="2010-09-29T18:08:03.493" />
  <row Id="8317" PostTypeId="2" ParentId="8310" CreationDate="2010-09-29T18:10:07.560" Score="4" ViewCount="" Body="&lt;p&gt;My typical approach is to pick out a bug/feature that needs to be implemented that shouldn't require major rippling changes to the code base and let them work on it.  There's really no &quot;right&quot; task to start them out on as it really varies from project to project (and skill level).  I may walk them through the existing UI so they have an idea how to trigger the defect or where it should be most noticeable if they are not familiar with how the application works, but overall I let them dig in and make sure a senior level developer is around to answer questions as they come up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're really worried about major breakage, then make sure they are working on a branch in source control rather than the master and don't have them merge until a code review has been done.&lt;/p&gt;&#xA;" OwnerUserId="62" LastActivityDate="2010-09-29T18:10:07.560" />
  <row Id="8318" PostTypeId="2" ParentId="8310" CreationDate="2010-09-29T18:11:28.493" Score="5" ViewCount="" Body="&lt;p&gt;Writing some unit tests can be a good way to break someone into parts of the codebase.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-29T18:11:28.493" CommentCount="1" />
  <row Id="8319" PostTypeId="2" ParentId="8284" CreationDate="2010-09-29T18:14:20.863" Score="0" ViewCount="" Body="&lt;p&gt;Depends.  What are your goals?  Job security?  Increased authority, with an eye towards moving your career into a managerial or even executive track?  Get paid to play with awesome shiny toys?  Roll the dice and try to strike gold with a startup?  Maximize your software skills for your own pride or personal projects?  Make a comfortable living so that you may spend your leisure time pursuing your real passions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tell us where you want your career to go if you want good advice for getting there.  :-)&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-29T18:14:20.863" />
  <row Id="8320" PostTypeId="2" ParentId="8187" CreationDate="2010-09-29T18:15:52.693" Score="5" ViewCount="" Body="&lt;p&gt;Yes, in my opinion a primary key should be immutable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if there are obvious candidate keys, I always use a surrogate key. In the few occasion's I haven't done this i've nearly always regretted it. And no matter how immutable you think the key is, you can't safeguard against data-entry errors - telling users that they can't edit that bit of information because it's a primary key doesn't wash sadly.&lt;/p&gt;&#xA;" OwnerUserId="562" LastActivityDate="2010-09-29T18:15:52.693" CommentCount="3" />
  <row Id="8321" PostTypeId="2" ParentId="8310" CreationDate="2010-09-29T18:18:23.660" Score="2" ViewCount="" Body="&lt;p&gt;Some bugs to get their feet wet, then assign some small features to them. Once they are up to speed, you can assign some more involved feature to them.&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-29T19:07:17.870" LastActivityDate="2010-09-29T19:07:17.870" CommentCount="1" />
  <row Id="8322" PostTypeId="2" ParentId="8311" CreationDate="2010-09-29T18:18:58.103" Score="1" ViewCount="" Body="&lt;p&gt;I am absolutely horrible at foreign languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am currently trying to learn Chinese (mandarin).  I'm starting my 4th year of classes, once a week.  And I still can't understand a lick of Chinese spoken by a native.  It's driving me crazy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had 4 years of French in high school.  I wouldn't have been able to recall the entire sentence &quot;Je parle un peu de Française&quot;, but I know what it means now that I see it.  I have no idea what that other answer says :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's because languages are mostly memorization.  Basic grammar is simple, but to learn vocabulary is just memorize, memorize, memorize.  Programmers (and Scientists and Engineers, etc.) tend to understand things by modeling behavior in their mind, rather than memorizing facts.  I think most other people, and schooling teach people to be &quot;smart&quot; by memorizing facts, and thus end up better at the language thing.&lt;/p&gt;&#xA;" OwnerUserId="3073" LastEditorUserId="3073" LastEditorDisplayName="" LastEditDate="2010-09-29T18:45:20.953" LastActivityDate="2010-09-29T18:45:20.953" CommentCount="8" />
  <row Id="8323" PostTypeId="2" ParentId="358" CreationDate="2010-09-29T18:19:53.220" Score="0" ViewCount="" Body="&lt;p&gt;Databus... It is a simple language but you can't do much with it.&lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-09-29T18:19:53.220" CommunityOwnedDate="2010-09-30T22:46:32.880" />
  <row Id="8324" PostTypeId="2" ParentId="8310" CreationDate="2010-09-29T18:29:31.933" Score="2" ViewCount="" Body="&lt;p&gt;If this isn't under a deadline or something I would give them the code base and ask them to make changes. Even if the changes aren't necessary or needed, give them a separate branch and have them dick around with it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could also take working code and break specific things and have them work through the fix. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;The fastest way I've ever learned anything is diving right in and working through it. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-29T18:29:31.933" CommentCount="3" />
  <row Id="8325" PostTypeId="2" ParentId="8284" CreationDate="2010-09-29T18:29:48.410" Score="1" ViewCount="" Body="&lt;p&gt;My personal feeling is that company &lt;em&gt;size&lt;/em&gt; doesn't matter. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to identify what your career goals are and how you want to get there, as &lt;strong&gt;BlairHippo&lt;/strong&gt; said. What do you want to achieve? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For myself, I'm interested in financial security, continued growth as a developer and software craftsman, a feeling of happiness and general enjoyment of the work I do and a healthy life-work balance. I don't care about the size of the company because any sized company can provide what I am seeking; it's just a matter of finding the right fit. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I were you, I'd do this: Work, but always keep an eye and ear open to opportunity. You never know when opportunity will come knocking. You don't have to be actively searching for a new job like someone who is unemployed and desperate, constantly combing the web and newspapers and applying to every job that pops up, but it doesn't hurt to always be paying attention, networking, socializing, and paying attention to those opportunities. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the meantime, do your job. Learn, work, have fun. Enjoy the moment. Show your current boss that you can be an all-star. And if the rewards don't come directly from your current employer then they'll likely come from somewhere else. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All you can do is your best, all the time. &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-09-29T18:29:48.410" CommentCount="1" />
  <row Id="8326" PostTypeId="2" ParentId="8301" CreationDate="2010-09-29T18:33:40.430" Score="33" ViewCount="" Body="&lt;p&gt;You wear whatever hat your employer asks. That's what makes you a team player. That's what makes you a &lt;strong&gt;Problem Solver&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;People get way too caught up in the idea of being a &quot;developer&quot; or an &quot;architect&quot; or an &quot;analyst&quot;. Screw that. You should be a problem solver. Code is just a tool in your belt. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Problem Solving never goes out of style. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If my employer wants me to do tech support or build computers, so be it. It think they're wasting their money, considering a developer salary, but that's their business. I'm here to solve problems. However I can do that, I will do it. And if I feel like, after a certain amount of time, my talents are wasted or my job satisfaction isn't where I want it to be, then I have just a much of a right to move on to another job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But to the basic question - there isn't a hat you don't wear. Heck, if they want you to fetch coffee, do it. Solve their problems; just know that you have the right to find another job if you desire a change. &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-09-29T18:33:40.430" CommentCount="19" />
  <row Id="8327" PostTypeId="2" ParentId="8301" CreationDate="2010-09-29T18:40:05.393" Score="38" ViewCount="" Body="&lt;p&gt;Sysadmin.  Developing software and handling the IT infrastructure are two different skillsets that look similar to an outsider.  (It's all just banging on computers, right?)  For a smallish company, the temptation will be very strong to make The Computer Guy responsible for all the machines in the office.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have the skills to actually wear both hats, awesome; but it's one of those things that can be a much greater time sink than people realize, and if you're self-teaching as you go, chances are you're not doing it very well.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-29T18:40:05.393" CommentCount="8" />
  <row Id="8328" PostTypeId="2" ParentId="8283" CreationDate="2010-09-29T18:40:48.457" Score="3" ViewCount="" Body="&lt;p&gt;I once was asked to fix regex that was being used to parse C# function declarations because the QA team had found a way to break it.  This unfortunately is not a possible task as function declarations cannot be described as a regular language in C# (attributes, generic types, attribute arguments, etc ...).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I resolved the problem by simply explaining that it was an impossible task and detailing a few examples with nested generic types.  Management didn't believe me at first (was 2 weeks into the job) but I was able to explain the problem to a couple of senior developers and they in turn convinced management.  Eventually they decided to have a best effort regex and add a real parser in later.  &lt;/p&gt;&#xA;" OwnerUserId="278" LastActivityDate="2010-09-29T18:40:48.457" CommunityOwnedDate="2011-01-21T18:10:47.527" />
  <row Id="8329" PostTypeId="2" ParentId="8301" CreationDate="2010-09-29T18:40:53.213" Score="22" ViewCount="" Body="&lt;p&gt;You should be careful about becoming the &lt;strong&gt;go-to guy for office hardware problems&lt;/strong&gt;.  This can include PC troubleshooting, server admin, backups, and even phone system work.  I made the mistake of mentioning my previous hardware experience, and eventually my hardware/troubleshooting duties severly conflicted with my programming duties.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-09-29T18:40:53.213" CommentCount="6" />
  <row Id="8331" PostTypeId="2" ParentId="3732" CreationDate="2010-09-29T18:49:39.993" Score="8" ViewCount="" Body="&lt;p&gt;The assumption that a programmer's career ladder leads to a job as a manager.&lt;/p&gt;&#xA;" OwnerUserId="4060" LastActivityDate="2010-09-29T18:49:39.993" CommunityOwnedDate="2010-09-29T18:49:39.993" />
  <row Id="8332" PostTypeId="2" ParentId="1849" CreationDate="2010-09-29T18:56:14.880" Score="1" ViewCount="" Body="&lt;p&gt;The smug superiority you feel when you check in code that is rock-solid, robust, and stable. And if you write unit tests with a code coverage tool, you can boast in your check in comments that your code coverage is 90% or higher.&lt;/p&gt;&#xA;" OwnerUserId="4087" LastActivityDate="2010-09-29T18:56:14.880" />
  <row Id="8333" PostTypeId="1" AcceptedAnswerId="8345" CreationDate="2010-09-29T18:58:50.850" Score="10" ViewCount="334" Body="&lt;p&gt;We've just been through a hiring cycle and one thing that struck me was the fact that interviewees that threw every buzz word on the planet at us tended to rate the lowest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We gave them each a simple design problem and asked them how they would approach it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The people that sketched a simple process flow on the board were generally the ones that impressed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ones that leant back and then said something like &quot;This look like a typical xxx pattern. It's an interesting paradigm and probably requires a phase-shift in your current methodology&quot; didn't generally impress.&lt;/p&gt;&#xA;" OwnerUserId="4090" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T22:52:55.677" LastActivityDate="2010-09-29T22:52:55.677" Title="Is there a correlation between buzz words and ability?" Tags="&lt;job-interview&gt;&lt;buzzwords&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="2" />
  <row Id="8335" PostTypeId="2" ParentId="3732" CreationDate="2010-09-29T19:00:24.657" Score="0" ViewCount="" Body="&lt;p&gt;All the &lt;strong&gt;error handling&lt;/strong&gt; that has to be done. It's not the most interesting part of systems.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-09-29T19:00:24.657" CommunityOwnedDate="2010-09-29T19:00:24.657" />
  <row Id="8337" PostTypeId="2" ParentId="8104" CreationDate="2010-09-29T19:02:43.270" Score="4" ViewCount="" Body="&lt;p&gt;I work at home. My office is anything but private. My grandson crawls in to help me push buttons and wrinkle paper. My granddog comes in to push my arm up and demand some attention. My 22-year old comes in to say &quot;I'm bored&quot;. The phone rings all the time &amp;amp; it's not for me. But boy, you can't beat the commute!&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Other &quot;offices&quot; I've had:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;the botton of a garbage can turned over was my desk, along with a folding chair.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;in a microcomputer lab, sitting on a stool, listings on lap, stepping through code one instruction at a time. Good way to get a sore neck.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;a door on boxes in a bedroom of an apartment, starting up a start-up.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-09-30T07:04:01.133" LastActivityDate="2010-09-30T07:04:01.133" CommunityOwnedDate="2011-02-20T23:49:56.727" />
  <row Id="8338" PostTypeId="2" ParentId="8262" CreationDate="2010-09-29T19:04:42.930" Score="0" ViewCount="" Body="&lt;p&gt;This isn't exactly a notepad++ trick, but an autohotkey trick.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Add this to your autohotkey.ahk&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#n::Run &quot;C:\Program Files (x86)\Notepad++\notepad++.exe&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That will make notepad++ launch when you hit Super+N.&lt;/p&gt;&#xA;" OwnerUserId="3542" LastActivityDate="2010-09-29T19:04:42.930" CommentCount="3" />
  <row Id="8339" PostTypeId="2" ParentId="8311" CreationDate="2010-09-29T19:05:19.807" Score="0" ViewCount="" Body="&lt;p&gt;The phrasing of &lt;a href=&quot;http://programmers.stackexchange.com/questions/8301/what-hat-should-a-programmer-not-wear&quot;&gt;this question's headline&lt;/a&gt; sums up the answer pretty well. ;-)&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-09-29T19:05:19.807" CommentCount="4" />
  <row Id="8340" PostTypeId="1" CreationDate="2010-09-29T19:05:26.280" Score="3" ViewCount="163" Body="&lt;p&gt;For almost all of my professional development career (15+ years) I have been working on or managing development teams that primarily use Microsoft technologies (VB6, ASP, ASP.NET, C#, SQL Server, etc.) I've recently been approached by a company that seems very interested in me for a job managing their development team, which happens to be a Java shop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although I did recently take some college level Java courses, it was the typical programming academic environment, that is, lots of theory,excessive focus on syntax, and mostly console type apps, with only a trivial app at the end of the course with anything remotely resembling a modern Windowed UI. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not worried at all about the syntax elements, picking up new programming languages isn't all that difficult and C# is so similar to Java that I think it should be fairly seamless in that respect. However, thinking back over all the tools, frameworks and platform specific knowledge, lingo that I have amassed for MS development, I worry about how quickly I can get up to speed enough to be productive in that environment and earn the respect I will need to manage effectively a team of veteran programmers, who potentially may have biases against MS developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have any of you made the transition from a .NET shop to a Java shop? If so what were the toughest aspects of making the shift? Also, did you find it harder to get street cred on the team based on your experience in another platform? For those of you who already work on a Java team, how would you feel if a veteran .NET programmer/manager took over the reins of the team? What could that person do or say to make you feel more comfortable trusting them?&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-12T21:29:14.160" CommunityOwnedDate="2010-09-29T19:05:26.280" Title="Need advice on making the transition from a .NET development shop to a Java shop." Tags="&lt;java&gt;&lt;.net&gt;&lt;career-advice&gt;&lt;platforms&gt;" AnswerCount="1" CommentCount="4" />
  <row Id="8341" PostTypeId="2" ParentId="8333" CreationDate="2010-09-29T19:10:29.267" Score="6" ViewCount="" Body="&lt;p&gt;Every specialized field has its argot and it's important to be able to use it properly. What comes with this is the ability to, however shallowly, appear to be an expert by simply bandying about the terminology. However, it usually takes only a little exchange to ascertain whether the person is cognizant of the field whose terminology they're using or not.&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-09-29T19:10:29.267" CommentCount="3" />
  <row Id="8345" PostTypeId="2" ParentId="8333" CreationDate="2010-09-29T19:31:47.340" Score="6" ViewCount="" Body="&lt;p&gt;I'd agree with what you seem to be suggesting: there &lt;em&gt;is&lt;/em&gt; a correlation, and it's quite a strong correlation, and it's definitely a negative correlation (more buzzwords -&gt; less ability).&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-09-29T19:31:47.340" />
  <row Id="8348" PostTypeId="1" CreationDate="2010-09-29T19:42:28.237" Score="5" ViewCount="171" Body="&lt;p&gt;What certified or standardised professional programming courses have you completed? (not school/college/university)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How would you rate them in terms of how much their content has helped you to do your job*?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd be particularly interested to hear about anything security-related.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*rather than how much their inclusion on your résumé has helped you &lt;em&gt;get&lt;/em&gt; your job :)&lt;/p&gt;&#xA;" OwnerUserId="3898" LastEditorUserId="3898" LastEditorDisplayName="" LastEditDate="2010-09-29T20:38:50.573" LastActivityDate="2011-02-16T05:15:13.617" Title="What certified/standardised courses have you completed and how would you rate them?" Tags="&lt;education&gt;&lt;training&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="0" />
  <row Id="8351" PostTypeId="2" ParentId="8333" CreationDate="2010-09-29T19:45:42.597" Score="2" ViewCount="" Body="&lt;p&gt;Buzz words suck. When I interview the first think I have them do is define and explain every piece of &quot;tech&quot; they have listed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I point out the CSS 1 / 2 and HTML / XHTML are &lt;strong&gt;not&lt;/strong&gt; programming languages. For that matter neither is jQuery.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-29T19:45:42.597" CommentCount="2" />
  <row Id="8352" PostTypeId="1" CreationDate="2010-09-29T19:51:45.767" Score="3" ViewCount="231" Body="&lt;p&gt;I really like using &lt;code&gt;ClassNames&lt;/code&gt; and &lt;code&gt;memberNames&lt;/code&gt; as convention but I am not sure how I would name the file containing a class.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like making my classes defined in a file with the exact same name as the class. But I also like making php files all lowercase. So I am conflicted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I have a class called &lt;code&gt;ProductGroup&lt;/code&gt; should that be defined in &lt;code&gt;ProductGroup.php&lt;/code&gt;, &lt;code&gt;productgroup.php&lt;/code&gt;, or &lt;code&gt;product_group.php&lt;/code&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know there is no right answer, so I am looking for what is most common or your opinion of which to use.. which do you use?&lt;/p&gt;&#xA;" OwnerUserId="1785" LastActivityDate="2010-10-22T17:40:41.280" Title="What naming conventions do you use for php classes?" Tags="&lt;php&gt;&lt;naming-conventions&gt;" AnswerCount="6" />
  <row Id="8353" PostTypeId="2" ParentId="8352" CreationDate="2010-09-29T19:54:29.847" Score="1" ViewCount="" Body="&lt;p&gt;I would typically put a 'ProductGroup' class into a file named 'ProductGroupClass.php', typically stored in a 'classes' directory structure.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-29T19:54:29.847" CommentCount="1" />
  <row Id="8355" PostTypeId="1" CreationDate="2010-09-29T19:55:39.880" Score="5" ViewCount="184" Body="&lt;p&gt;The article &lt;a href=&quot;http://mitchlacey.com/docs/XR4PromiscuousPairingandBeginnersMind.pdf&quot; rel=&quot;nofollow&quot;&gt;&quot;Promiscuous Pairing and Beginner’s Mind&quot; (PDF)&lt;/a&gt; suggests that you put someone in the pair that knows the least about the particular area of the code base. It also suggests that you swap &lt;strong&gt;out&lt;/strong&gt; the senior member of the pair every 90 minutes or so.  Not only will the newbies learn about that area of the code but they will also think differently compared to someone who already knows the area.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anybody have experience with this strategy? Does it have any connection with reality?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found other questions about &lt;a href=&quot;http://programmers.stackexchange.com/q/500/4092&quot;&gt;when to use pair programming&lt;/a&gt; and &lt;a href=&quot;http://programmers.stackexchange.com/q/7915/4092&quot;&gt;whether to accept a job where pair programming is required&lt;/a&gt;, but I didn't find any that are specifically about promiscuous pairing and this &quot;beginner's mind&quot; strategy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are unfamiliar with pair programming, there are interesting articles on &lt;a href=&quot;http://en.wikipedia.org/wiki/Pair_programming&quot; rel=&quot;nofollow&quot;&gt;Wikipedia&lt;/a&gt; and &lt;a href=&quot;http://www.c2.com/cgi/wiki?PairProgrammingBenefits&quot; rel=&quot;nofollow&quot;&gt;c2.com&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4092" LastEditorUserId="4092" LastEditorDisplayName="" LastEditDate="2010-09-29T20:53:28.390" LastActivityDate="2010-09-29T20:53:28.390" Title="Any experience with &quot;beginner's mind&quot; in pair programming?" Tags="&lt;agile&gt;&lt;pair-programming&gt;" AnswerCount="1" CommentCount="4" FavoriteCount="1" />
  <row Id="8356" PostTypeId="2" ParentId="8352" CreationDate="2010-09-29T20:02:28.480" Score="1" ViewCount="" Body="&lt;p&gt;I try to name my files the same as the class name but in lower case. This helps out with &lt;code&gt;autoload&lt;/code&gt; functions as well.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-29T20:02:28.480" />
  <row Id="8357" PostTypeId="2" ParentId="7966" CreationDate="2010-09-29T20:05:22.700" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Keep me out of meetings that I don't need to be in.&lt;/strong&gt;  If managers could just manage to do this, they would be infinitely more valuable.&lt;/p&gt;&#xA;" OwnerUserId="221" LastActivityDate="2010-09-29T20:05:22.700" CommunityOwnedDate="2011-01-26T19:57:30.693" />
  <row Id="8358" PostTypeId="2" ParentId="8311" CreationDate="2010-09-29T20:07:26.287" Score="0" ViewCount="" Body="&lt;p&gt;They can be if they use their skills to develop personal language learning tools (though this is an augmentation and not a substitute for continual practice with native speakers and text).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've written many programs for personal and shared use in this field. The most successful quantitative data that I have is that users (me included) of a Spanish vocabulary flashcard web app I cobbled together learn on average 7+ new words every day during the first 3 months of use (calculated months later to include long-term retention). It's one of the ugliest, hackiest things I ever wrote, but easily the most rewarding (for the conversation and literature I am now able to enjoy).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Particularly, having constant statistics can be a great motivation for regular study and practice (as I'm sure users of these websites will know!) and helps build confidence. It's also great to be able to mine the user data to help better target your other study and practice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Also, general language learning tip: spend the majority of your time on verbs and everything else will fall into place.)&lt;/p&gt;&#xA;" OwnerUserId="3898" LastActivityDate="2010-09-29T20:07:26.287" />
  <row Id="8359" PostTypeId="2" ParentId="8076" CreationDate="2010-09-29T20:08:01.630" Score="2" ViewCount="" Body="&lt;p&gt;I had to help a fellow student who tried to write C using VHDL. Obviously, he hadn't written any C before (wonder if he had written any language at all) except some VHDL, so he assumed they were the same or at least similar. Of course the code didn't compile, but the worst language contamination if I ever saw one.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-29T20:08:01.630" />
  <row Id="8360" PostTypeId="2" ParentId="8076" CreationDate="2010-09-29T20:16:55.770" Score="3" ViewCount="" Body="&lt;p&gt;People do this with Perl &lt;strong&gt;all the time&lt;/strong&gt;. Perl is a very expressive (perhaps too expressive?), evolving language. Unfortunately, a lot of people who happen to use it don't seem to know that. What you get is very old, early 2000s-looking Perl using outdated idioms or, for lack of a better description, code that isn't very sexy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing sexy, concise Perl is important. It communicates to other Perl developers that you care about what's going on, as opposed to C, Java, or PHP programmers who program Perl &lt;em&gt;their way&lt;/em&gt; and skating by on parsable but unreadable code. I think this is what causes Perl to have a bad rap; its flexibility lends itself to abuse by foreigners.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perl has come a long way. Lots of big name Perl hackers are trying to push a &quot;modern Perl&quot; movement that advocates best practices. Not knowing about modern Perl is an unwillingness to learn Perl.&lt;/p&gt;&#xA;" OwnerUserId="3119" LastEditorUserId="3119" LastEditorDisplayName="" LastEditDate="2010-09-30T15:05:37.213" LastActivityDate="2010-09-30T15:05:37.213" />
  <row Id="8361" PostTypeId="2" ParentId="8283" CreationDate="2010-09-29T20:18:10.497" Score="10" ViewCount="" Body="&lt;p&gt;The sales´s guy asked me what should we do to stop bugs in product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My answer was: Sell it only after we finish it! :O)&lt;/p&gt;&#xA;" OwnerUserId="3082" LastEditorUserId="3082" LastEditorDisplayName="" LastEditDate="2011-01-21T17:44:54.320" LastActivityDate="2011-01-21T17:44:54.320" CommunityOwnedDate="2011-01-21T18:10:47.527" CommentCount="3" />
  <row Id="8362" PostTypeId="2" ParentId="8310" CreationDate="2010-09-29T20:19:46.413" Score="1" ViewCount="" Body="&lt;p&gt;What if I told you that you could code review every single line the new guy wrote before he checked in, so you know he's not doing anything daft, AND you could personally show him round the codebase and tell him about all the odd quirks you know about, so he doesn't have to just figure it out himself, AND share your programming experience to help him do stuff better, AND he would be writing code from the very first minute?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Welcome to &lt;a href=&quot;http://www.c2.com/cgi/wiki?PairProgramming&quot; rel=&quot;nofollow&quot;&gt;Pair Programming&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="627" LastActivityDate="2010-09-29T20:19:46.413" CommentCount="4" />
  <row Id="8363" PostTypeId="2" ParentId="8301" CreationDate="2010-09-29T20:22:01.477" Score="27" ViewCount="" Body="&lt;p&gt;Tester! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please send us testers straight out of tester school if need be!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without testers people expect everything to work off the bat because the programmer is the tester and they're very smart so it should work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not saying dogfooding isn't a good idea.  I just think testers are very important now that I'm a programmer. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2010-09-29T22:02:50.537" LastActivityDate="2010-09-29T22:02:50.537" CommentCount="9" />
  <row Id="8364" PostTypeId="1" CreationDate="2010-09-29T20:23:42.403" Score="2" ViewCount="197" Body="&lt;p&gt;Many developers recommend Firefox for web development for a variety of reasons. But, after looking at Opera, it seems to me that Opera has all of the same web development functionality that Firefox has built into it. So what is wrong with Opera for web development?&lt;/p&gt;&#xA;" OwnerUserId="4097" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-10-05T15:42:19.633" LastActivityDate="2011-04-07T00:11:33.713" Title="Opera for web development" Tags="&lt;web-development&gt;&lt;browser&gt;" AnswerCount="8" CommentCount="7" />
  <row Id="8365" PostTypeId="2" ParentId="8283" CreationDate="2010-09-29T20:25:31.520" Score="14" ViewCount="" Body="&lt;p&gt;Not assigned to me per se but just what my thoughts were on...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Could we build [something that mimics Excel functionality] as an online product, in a few months time?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Online spreadsheet functionality. The thing that the two greatest software companies in human history (Microsoft and Google) are working on. And you want to create a basic engine plus functionality that doesn't currently exist in either. In only a few months time. Using the talent we have in-house.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right...&lt;/p&gt;&#xA;" OwnerUserId="3119" LastActivityDate="2010-09-29T20:25:31.520" CommunityOwnedDate="2011-01-21T18:10:47.527" CommentCount="3" />
  <row Id="8366" PostTypeId="2" ParentId="8355" CreationDate="2010-09-29T20:25:55.997" Score="1" ViewCount="" Body="&lt;p&gt;I think your question understates (perhaps, confuses) Pair Programming and Promiscuous Pairing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you do pair programming and one of the programmers knows way more about the task at hand, the other programmer learns very quickly (the languages, the tools, the design or requirements of the product they're working on.  I do have experience with that and highly recommend it for bringing your co-workers or yourself up to speed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea of Promiscuous Pairing is when you &lt;strong&gt;have N programmers on the team&lt;/strong&gt; and make all possible pairs out of them and &lt;strong&gt;rotate those pairs frequently&lt;/strong&gt;, then such knowledge spreads throughout the team very quickly.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-09-29T20:25:55.997" CommentCount="2" />
  <row Id="8368" PostTypeId="1" AcceptedAnswerId="8375" CreationDate="2010-09-29T20:30:51.143" Score="14" ViewCount="290" Body="&lt;p&gt;Maybe it's me, but I've never encountered nearly as many problems, annoying challenges, indirect error messages and general frustrations with any other technology as I have with WCF.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the ACTUAL benefits? Not the MS Press Release benefits of 'a unified architecture for something something that's not going to work anyway.' And are those benefits worth the annoying frustrations?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm normally a big MS fanboy over here, but I just can't get behind WCF.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-09-29T21:21:41.740" LastActivityDate="2010-09-29T21:21:41.740" Title="Is .NET WCF worth the effort?" Tags="&lt;.net&gt;&lt;wcf&gt;&lt;benefits&gt;" AnswerCount="2" FavoriteCount="3" />
  <row Id="8369" PostTypeId="2" ParentId="8310" CreationDate="2010-09-29T20:33:11.373" Score="6" ViewCount="" Body="&lt;p&gt;We use a combination of techniques to get them up to speed.  &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;We start with training on using the product, what it is and why it exists, so that they get an understanding of our users.  &lt;/li&gt;&#xA;&lt;li&gt;We then put them into the QA team for a short period, again to get familiar with the product and how it works.  &lt;/li&gt;&#xA;&lt;li&gt;We then have them work on a number of applications that are not part of our core product - internal tools and the like.  This allows us to introduce our development process, source control, coding style etc.  It also gives us chance to code review their changes early on and get a feel for how quickly they are integrating into the team.&lt;/li&gt;&#xA;&lt;li&gt;As we gain confidence, we assign them bigger tasks to do, but still nothing on our critical path.  If we have to revert all their changes and throw them away, we won't be upsetting anyone.  We review 100% of all code produced by everyone on our team, but if you don't do that, I would certainly keep code reviewing the new team members code.&lt;/li&gt;&#xA;&lt;li&gt;Finally, we ask them to spend some time in product support fixing a few issues.  This gets them looking at many different areas of the system.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;As a few people have already pointed out, most developers learn from doing, so we try and focus on lots of doing.  However, we do need to balance out the risk of just letting them rip and causing more harm than good.&lt;/p&gt;&#xA;" OwnerUserId="4104" LastActivityDate="2010-09-29T20:33:11.373" CommentCount="1" />
  <row Id="8370" PostTypeId="2" ParentId="8364" CreationDate="2010-09-29T20:34:11.670" Score="7" ViewCount="" Body="&lt;p&gt;I think any browser you like to work in is the right browser to work in. I like Chrome--I think its developer interface is very nice indeed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Problem is, a very compliant browser is going to fool you when you switch to a less-compliant one (lookin at you, Internet Explorer). Things will be building nicely, and then your boss will look at it on IE6 and it'll be a calamity. So you've got to at least be looking very frequently at your work the browser that's simultaneously most popular and most breakage-prone.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-09-29T20:34:11.670" CommentCount="1" />
  <row Id="8371" PostTypeId="2" ParentId="3732" CreationDate="2010-09-29T20:35:05.367" Score="1" ViewCount="" Body="&lt;p&gt;The sedentary nature of the occupation. It promotes poor physical fitness and posture, etc. If there was a way to be digitally productive and more active (&quot;extreme programming&quot; perhaps? ;), I would like that.&lt;/p&gt;&#xA;" OwnerUserId="3119" LastActivityDate="2010-09-29T20:35:05.367" CommunityOwnedDate="2010-09-29T20:35:05.367" CommentCount="1" />
  <row Id="8372" PostTypeId="2" ParentId="8333" CreationDate="2010-09-29T20:36:42.960" Score="1" ViewCount="" Body="&lt;p&gt;Yes, in most cases anyone that has spent any time working on something will have some details/stories to tell about actually doing the work.  Generally the buzzwords to not apply to doing the actual work so the more of the conversation that is consumed by buzzwordification the less the person has to say about doing actual work, and unless they just interview poorly, that usually means the less experience they have doing actual work.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-29T20:36:42.960" />
  <row Id="8373" PostTypeId="2" ParentId="8364" CreationDate="2010-09-29T20:42:24.140" Score="3" ViewCount="" Body="&lt;p&gt;That's a good point about Opera, and it has been highly-rated whenever I have heard about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it may be best to test your sites in the browser(s) that your customers will be using most often.  Internet Explorer seems to have the hardest time handling websites, and developing in IE means that you'd see more bugs before your customers do.  Hitting F12 in Internet Explorer brings up the IE developer tools, which is very similar to Firebug and has nice Javascript debugging.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-09-29T20:42:24.140" CommentCount="1" />
  <row Id="8374" PostTypeId="2" ParentId="8311" CreationDate="2010-09-29T20:43:23.783" Score="1" ViewCount="" Body="&lt;p&gt;I think it mostly depends on the person. But here's my own experiences as a programmer from England, living and working in Germany.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think and learn very logically, if the logic of something is apparent, or if I can learn the rule to how something works, I can remember it easily. This has made learning German grammar quite a bit easier for me then maybe someone who learns just the words and learns grammar through association.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However while I find it easy to work with algorithms and maths, I struggle when working with art and design. Likewise in spoken communication, I am proficient in communicating, but lack somewhat when it comes to the more poetic side of language and also in remembering names (especially when the words are not very well documented and the choice of which to use must be learned through observation (i.e. (in German) menschen/leute raum/zimmer gleich/bald) or when words appear to be equivalent to English words, but differ in usage (fertig/bereit).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finding the grammar easier has made things much easier for me, it means that I have the structure of the sentences almost correct, and only need practice and frequent use of the dictionary and friends to learn the vocabulary (thankfully, I'm finding Germans to be generally very forgiving of mistakes, particularly when it comes to irregular grammar).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;/* Sorry in advance for any grammatical mistakes in the above, I need sleep. */&lt;/p&gt;&#xA;" OwnerUserId="4103" LastActivityDate="2010-09-29T20:43:23.783" CommentCount="1" />
  <row Id="8375" PostTypeId="2" ParentId="8368" CreationDate="2010-09-29T20:44:24.147" Score="12" ViewCount="" Body="&lt;p&gt;WCF shortcuts a whole lot of things in making a web service, but if you stray too far outside it's defaults you will have some additional work (usually configuration) to do that IMHO is not documented very well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compared to ASMX services is can be a huge timesaver, but if you are writing REST services sometimes it is easier to use a MVC project as a starting point these days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you get is all the endpoint options without having to code them, but the documentation on configuring the non-common ones is very sparse.  You also can get the ability to have one service speak in more than one format and the ability to expose a interface directly as a service with minimal additional code.  This is handy if the class is meant to be used locally or remotely depending on situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also gives you better hosting options for non-web services like tcp services without having to write the service management piece yourself.  If you want to skip all the string nonsense this is a big deal sometimes.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-29T20:44:24.147" CommentCount="5" />
  <row Id="8376" PostTypeId="2" ParentId="6067" CreationDate="2010-09-29T20:44:39.913" Score="1" ViewCount="" Body="&lt;h2&gt;Perl6&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I'm completely surprised about its lack of representation thus far. I think it will be sufficiently different from Perl (Perl5) that even Perl programmers need to sit back and study a bit. It's a bit of a &quot;Jesus language&quot; to me at this point, theoretically capable of curing all ills and whatnot. Very exciting times!&lt;/p&gt;&#xA;" OwnerUserId="3119" LastActivityDate="2010-09-29T20:44:39.913" CommunityOwnedDate="2010-09-29T20:44:39.913" CommentCount="1" />
  <row Id="8377" PostTypeId="2" ParentId="8352" CreationDate="2010-09-29T20:52:00.833" Score="3" ViewCount="" Body="&lt;p&gt;At work we use underscores as folder delimiters and name the files exactly the same as the path. The autoloader is very simple, it just has to replace _ with / and add '.php' to the end. ProjectName_Models_ProductGroup() will always reside in ProjectName/Models/ProductGroup.php. It can make for some very long class names, but it doesn't really matter with an IDE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could use the same convention, but just run strtolower() before including the file.&lt;/p&gt;&#xA;" OwnerUserId="4071" LastActivityDate="2010-09-29T20:52:00.833" CommentCount="3" />
  <row Id="8378" PostTypeId="2" ParentId="6067" CreationDate="2010-09-29T20:55:17.653" Score="-2" ViewCount="" Body="&lt;h1&gt;node.js&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Whilst not necessarily a new language, event-driven web application server-side code certainly is a big paradigm shift for me.&lt;/p&gt;&#xA;" OwnerUserId="4108" LastActivityDate="2010-09-29T20:55:17.653" CommunityOwnedDate="2010-09-29T20:55:17.653" CommentCount="2" />
  <row Id="8379" PostTypeId="2" ParentId="7861" CreationDate="2010-09-29T20:59:43.100" Score="3" ViewCount="" Body="&lt;p&gt;If I can't ssh home, that's it.&lt;/p&gt;&#xA;" OwnerUserId="4012" LastActivityDate="2010-09-29T20:59:43.100" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="4" />
  <row Id="8382" PostTypeId="2" ParentId="8311" CreationDate="2010-09-29T21:12:37.260" Score="2" ViewCount="" Body="&lt;p&gt;I can only speak for myself, but I find it difficult to learn spoken languages (I attempted 2 semesters of Spanish in college) beyond the very basics. Some other posts have brought up the points about memorizing and practicing being very important to learning a new language, and I believe that to be true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say this is the reason I do poorly; that is, I almost never memorize anything. Other developers may differ on this, but largely my approach is to favor the Why over the What. In calculus, I had a teacher scold me after taking a test. She had seen my derivation of a theorem in the margins, and claimed that I wouldn't have needed to do that kind of work during a test if I had memorized the theorem in the first place (or if I had done my homework.) I had to agree.&lt;/p&gt;&#xA;" OwnerUserId="4109" LastActivityDate="2010-09-29T21:12:37.260" CommentCount="1" />
  <row Id="8383" PostTypeId="2" ParentId="8333" CreationDate="2010-09-29T21:13:20.643" Score="4" ViewCount="" Body="&lt;p&gt;I've found buzzwords to be a good indication of what areas a candidate is interested in learning and not what they are completely and utterly technically proficient.  That said, there are a number of people if you just say &quot;speak to me like a developer&quot; who totally change their approach.  I think after a while they deal with so many HR, recruiters, managers, and such who haven't a clue except for those buzzwords that through the interview grind they learn to spout them out.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-29T21:13:20.643" CommentCount="1" />
  <row Id="8384" PostTypeId="1" AcceptedAnswerId="8438" CreationDate="2010-09-29T21:14:33.043" Score="6" ViewCount="507" Body="&lt;p&gt;Is there any code you write that is totally unnecessary but you write it anyway just because you're that cool? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me I like &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for I := ZeroValue to Pred(List.Count) do&#xA;begin&#xA;&#xA;end;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;instead of &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for I := 0 to List.Count - 1 do&#xA;begin&#xA;&#xA;end;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;to loop through a list in Delphi.  It's not clever, but it gets rid of those magic numbers like 0 and -1.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:47:46.377" LastActivityDate="2010-10-02T15:47:46.377" CommunityOwnedDate="2010-09-29T21:14:33.043" ClosedDate="2010-09-30T11:51:25.173" Title="What's your best unnecessary code?" Tags="&lt;code-related&gt;&lt;semantics&gt;" AnswerCount="7" CommentCount="15" FavoriteCount="2" />
  <row Id="8385" PostTypeId="2" ParentId="4662" CreationDate="2010-09-29T21:15:16.477" Score="4" ViewCount="" Body="&lt;p&gt;First, define &quot;Long Term&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you mean &quot;Five Years&quot; then any of these technologies are going to be safe bets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft, for example, typically provides support for developer tools for 10 years after the last version is withdrawn from sale. With .NET 4.0 just released, you've got at least 12-13 years of availability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you mean &quot;Ten Years&quot; or &quot;Twenty Years&quot;, then I think you might need to readjust your expectations. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is an industry of change - not only does the technology change at an ever increasing rate, but the whole reason for writing software is to change the way other people do their jobs. Change is inherent in what we do, and there's no way to avoid it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No technology stack is going to give you long term stability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can't spend &lt;em&gt;x&lt;/em&gt; years learning, then &lt;em&gt;y&lt;/em&gt; years doing (where &lt;em&gt;x&lt;/em&gt; &amp;lt; 5 and &lt;em&gt;y&lt;/em&gt; &gt; 10).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead, you need to commit to continuous learning. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an example: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My Computer Science degree focussed on C programming. (C++ was only a committee's wet dream at the time, 1990).&lt;br&gt;&#xA;First job out of university, the major programming I did was in an early version of FileMaker Pro (as in, I used FMPro, I wasn't creating it). Taught myself Delphi and SQL in my own time.&lt;br&gt;&#xA;Next job: Apple hardware support. Learnt that I'm a software guy. :-)&lt;br&gt;&#xA;Next job: Delphi Developer. Learnt some Java and XML on the job.&lt;br&gt;&#xA;Next Job: Delphi Developer, again. Taught myself XSLT and C# in my own time.&lt;br&gt;&#xA;Current Job: C# developer. Now learning functional programming (F#) and immutable data structures.&lt;br&gt;&#xA;Next Job: who knows?&lt;/p&gt;&#xA;" OwnerUserId="4099" LastEditorUserId="4099" LastEditorDisplayName="" LastEditDate="2010-10-09T00:43:57.020" LastActivityDate="2010-10-09T00:43:57.020" CommentCount="1" />
  <row Id="8386" PostTypeId="2" ParentId="6067" CreationDate="2010-09-29T21:15:51.823" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; - I haven't coded anything web related for at least 10 years.  I've been stuck writing server-side and desktop applications.  I'm fairly sick of it (but then again, I'm learning Android in my spare time, so...) but that's my fault for going with the easy money.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-29T21:15:51.823" CommunityOwnedDate="2010-09-29T21:15:51.823" CommentCount="1" />
  <row Id="8387" PostTypeId="2" ParentId="8368" CreationDate="2010-09-29T21:16:55.867" Score="2" ViewCount="" Body="&lt;p&gt;Simple, don't use WCF when you don't have to...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's only worth it when you need the benefits of WCF, don't use it just because it would be more clean.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's like a Windows Service, it would only benefit if it would be used by multiple things...&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-29T21:16:55.867" />
  <row Id="8388" PostTypeId="2" ParentId="8283" CreationDate="2010-09-29T21:19:03.367" Score="13" ViewCount="" Body="&lt;p&gt;Implement all the features we'd already sold.  I just kept my head down and kept working, and let the higher-ups realize what was going on.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-29T21:19:03.367" CommunityOwnedDate="2011-01-21T18:10:47.527" CommentCount="2" />
  <row Id="8389" PostTypeId="2" ParentId="1902" CreationDate="2010-09-29T21:20:12.290" Score="4" ViewCount="" Body="&lt;p&gt;The programmers who make and maintain the mysociety.org group of websites have had a radical effect on improving understanding, diffusion and public participation in the UK political system (and they mention that &lt;a href=&quot;http://www.mysociety.org/helpus/&quot; rel=&quot;nofollow&quot;&gt;they accept volunteer contributions&lt;/a&gt;). No matter what you think of established governments, everyone has a stake in at least one, and is affected by many, so improving government-public communication is big deal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a significant contribution to &lt;em&gt;democratisation&lt;/em&gt; and &lt;em&gt;empowerment&lt;/em&gt; of others, which in my opinion are great examples of world improvement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, you could start by writing a popular operating system, forcefully pursue its global dominance, make a packet of money and then start distributing it as a philanthropist through your &lt;a href=&quot;http://www.gatesfoundation.org/&quot; rel=&quot;nofollow&quot;&gt;foundation&lt;/a&gt; according to your whims in a completely anti-democratic process, with a commercial mindset and huge investments in big-agribusiness. Any error of judgement you make as an individual will adversely impact millions. (A. Please don't do this, and B. please excuse the rant, but I think it's a rather important point - &quot;given enough eyes all problems are shallow&quot; applies to the world in general too, and all those eyes are no use if only one mouth makes all the decisions).&lt;/p&gt;&#xA;" OwnerUserId="3898" LastEditorUserId="3898" LastEditorDisplayName="" LastEditDate="2010-09-29T21:57:14.790" LastActivityDate="2010-09-29T21:57:14.790" CommentCount="1" />
  <row Id="8390" PostTypeId="2" ParentId="8384" CreationDate="2010-09-29T21:30:06.387" Score="1" ViewCount="" Body="&lt;p&gt;The example below is probably worst practice and for sure THE most unrecommend way of retreiving the current SessionId. But it's the most fun and geeky way too!&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function GetCurrentSessionId: DWORD;&#xA;asm&#xA;  mov     eax,fs:[$00000018];   // Get TEB&#xA;  mov     eax,[eax+$30];        // PPEB&#xA;  mov     eax,[eax+$1d4];       // PEB.SessionId&#xA;end;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4111" LastActivityDate="2010-09-29T21:30:06.387" CommunityOwnedDate="2010-09-29T21:30:06.387" CommentCount="3" />
  <row Id="8391" PostTypeId="1" AcceptedAnswerId="8578" CreationDate="2010-09-29T21:30:25.210" Score="5" ViewCount="155" Body="&lt;p&gt;In a book I'm reading there is a chapter on documentation for your code. The book is about PHP and described some easy methods but also going for some complicated and time consuming methods (xml, xsl) like DocBook.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At my current small company (5 people) we even rarely write comments, but I'm wondering if in a big company how detailed documentation do they write? Do they use such tools like DocBook?&#xA;Is it complex or simple?&lt;/p&gt;&#xA;" OwnerUserId="1632" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-29T21:41:23.377" LastActivityDate="2010-09-30T16:21:35.207" Title="How complex is the documentation you write?" Tags="&lt;php&gt;&lt;documentation&gt;&lt;code&gt;" AnswerCount="6" CommentCount="2" />
  <row Id="8392" PostTypeId="2" ParentId="8311" CreationDate="2010-09-29T21:34:58.353" Score="1" ViewCount="" Body="&lt;p&gt;I don't know whether programmers are good at learning foreign languages, but I know that programming and computers in general helped me a lot learning the foreign language I am most proficient in – English.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, I was taught some English in high school, but I was studying German much earlier and I would have problems formulating a simple sentence in that language now. That's because I ever used German only in school. I think the most important thing about learning a foreign language is to actually &lt;em&gt;use&lt;/em&gt; it, not just visit a class once a week. Once you know the basics, start reading news sites, watch TV series (watching TV in a foreign language is much easier with subtitles, even if they are in that language), chat with people, etc.&lt;/p&gt;&#xA;" OwnerUserId="213" LastActivityDate="2010-09-29T21:34:58.353" />
  <row Id="8393" PostTypeId="2" ParentId="8297" CreationDate="2010-09-29T21:42:21.600" Score="2" ViewCount="" Body="&lt;p&gt;We have the same problem in my company.  There's a history of fixed-price, fixed-timeline projects, and our clients aren't generally very progressive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding development with no up-front commitments, I've heard so many fundamentalist agilists say, &quot;I know it's hard, but you just need to push the benefits&quot;, or, &quot;They might be skeptical but they'll see how well it went and come back to you next time&quot;.  In some industries, maybe. In ours, that's a load of crap. I can't see any of our customers agreeing to just let us do our thing with no commitment on scope or price.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What we've found is that it's not always necessary to change the way you quote/bid/bill customers for an agile project.  You can keep the agile process while sticking to your quote if you manage it properly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quote the way you normally would (with padding), and set some boundaries around the scope of the project.  From that point on, follow your agile methodology:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Prioritise the work with the customer - develop the important stuff first&lt;/li&gt;&#xA;&lt;li&gt;Develop in small iterations, showing your progress&lt;/li&gt;&#xA;&lt;li&gt;Collaborate with the customer to make sure you're actually developing what they want&lt;/li&gt;&#xA;&lt;li&gt;Grow the spec as you write the software&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But more importantly:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If a function turns out to be more complicated than what was originally requested, &lt;strong&gt;tell the customer immediately&lt;/strong&gt; and make sure they're aware it will affect the timeline and/or price.&lt;/li&gt;&#xA;&lt;li&gt;Treat major (or even minor) changes as chargeable change requests.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You're still using Agile internally and getting the benefits, but the customer is seeing a more familiar fixed-price, fixed-timeline, fixed-scope project. Any changes cost money and blow out the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The hardest part about this is setting the boundaries up front.  It's definitely not something that can be done by &lt;em&gt;just&lt;/em&gt; your sales guy, BA, or project manager. You need an experienced developer in those meetings.  You need to nail down the areas that could cause problems and decide on expectations.&lt;/p&gt;&#xA;" OwnerUserId="91" LastActivityDate="2010-09-29T21:42:21.600" />
  <row Id="8394" PostTypeId="2" ParentId="8391" CreationDate="2010-09-29T21:42:25.610" Score="1" ViewCount="" Body="&lt;p&gt;I tend to write documentation like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Method name(method signature)&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is &lt;code&gt;method&lt;/code&gt;.  Here is a high-level explanation of what it does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is what param 1 represents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is what param 2 represents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is what it will do if you pass it invalid data in the parameters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See also:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Method's class&#xA;Related method&#xA;Other related method&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-29T21:42:25.610" />
  <row Id="8395" PostTypeId="2" ParentId="8283" CreationDate="2010-09-29T21:47:39.283" Score="1" ViewCount="" Body="&lt;p&gt;Automatically generate a list of all valid search combinations that return results from the database. While not logically impossible from the standpoint of coding, given that the size of the database was always growing, it was highly unpractical and the sever would eventually slow to a crawl while trying to generate combinations.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-09-29T21:47:39.283" CommunityOwnedDate="2011-01-21T18:10:47.527" />
  <row Id="8396" PostTypeId="2" ParentId="2196" CreationDate="2010-09-29T21:49:43.043" Score="2" ViewCount="" Body="&lt;p&gt;As with anything, practice, practice, practice. Write code. Then write more code. Then rewrite your code. To be more efficient at documenting, read your own code a couple of months after writing it, then you will realize what comments would help.&lt;/p&gt;&#xA;" OwnerUserId="305" LastActivityDate="2010-09-29T21:49:43.043" />
  <row Id="8397" PostTypeId="2" ParentId="8311" CreationDate="2010-09-29T21:52:18.733" Score="10" ViewCount="" Body="&lt;p&gt;I find it easy and fun to learn new languages! The only reason I'm any good at programming is that I've got a strong inclination toward language. All human languages are fundamentally the same, and not even vast differences in phonology, grammar, and vocabulary can get in the way of the fact that all people work in basically the same way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find it immensely rewarding to draw parallels between etymologies, to discover the underlying nature of what makes a language tick, and to learn how native speakers understand their own language. Not to mention that studying a wide variety of orthographies has given me great clerical accuracy, which is a big help in programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, your mileage may vary&amp;mdash;I'm a programmer because I'm a linguist, not the other way round, and you can become proficient at programming in many different ways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are a few tips that I think can help programmers with language learning:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Natural languages are not programming languages.&lt;/strong&gt; Natural languages do not have rules, but they do have patterns. If you notice a pattern, don't claim it's a rule and then complain about all of the exceptions. Linguistics is not a black-and-white field. I've noticed that people of a technical mindset get caught up in whether they're &quot;correct&quot; and lose sight of the fact that it's more important to be &lt;em&gt;understood&lt;/em&gt;. Natural speech has inherent meaning that transcends literalism.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Learning a language is not about rote memorisation.&lt;/strong&gt; No native speaker of Spanish says to himself &quot;voy, vas, va, vamos, vais, van&quot; to remember how to conjugate &quot;to go&quot;. He just &lt;em&gt;does&lt;/em&gt; it in running speech because he has developed a sense over time of what sounds right. Do not take a &quot;phrasebook&quot; approach to language learning: you will find yourself lost for the appropriate phrase because you won't be able to produce your own. Learning vocabulary is &lt;em&gt;not&lt;/em&gt; the same as learning an API.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Natural languages are redundant and compressible,&lt;/strong&gt; and you can use this to your advantage as a student. If you pronounce or spell something wrong, chances are you will still be understood. Look up the etymologies of words to get a sense of their deeper meaning. Having a sense of the language as it was is just as important as knowing the language as it is. It's okay to make some mistakes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Step outside your comfort zone and experiment.&lt;/strong&gt; Try to talk the way native speakers do. If you notice that you pronounce or articulate something differently, try to discern exactly how. If you don't understand everything someone says, it's &lt;em&gt;okay&lt;/em&gt; to ask them to repeat themselves or explain. If you make a mistake, the worst that can happen is a misunderstanding, and if you're confident and outgoing then it turns into a funny situation rather than an awkward, embarrassing one. Have fun.&lt;/p&gt;&#xA;" OwnerUserId="2107" LastEditorUserId="2107" LastEditorDisplayName="" LastEditDate="2010-09-29T23:22:21.703" LastActivityDate="2010-09-29T23:22:21.703" CommentCount="5" />
  <row Id="8398" PostTypeId="2" ParentId="4240" CreationDate="2010-09-29T21:53:30.240" Score="1" ViewCount="" Body="&lt;p&gt;Since it hasn't been mentioned, I'm going to mention &quot;not finance&quot;. Guys in the financial sector are notorious for working super hard. They play hard as well and get compensated handsomely, but the time/money trade-off isn't for everyone.&lt;/p&gt;&#xA;" OwnerUserId="3119" LastActivityDate="2010-09-29T21:53:30.240" />
  <row Id="8399" PostTypeId="2" ParentId="8301" CreationDate="2010-09-29T21:55:00.443" Score="1" ViewCount="" Body="&lt;p&gt;Developers are stakeholders in the situation (like customers, owners, etc), so they have a right to expect a meaningful job.  In my opinion, that means the opportunity to work with your &lt;a href=&quot;http://www.delicious.com/ingvald/strengths&quot; rel=&quot;nofollow&quot;&gt;strengths&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, a developer should not wear a hat that doesn't energise, contribute to personal growth, and lead to peak performance - and steal time from &quot;hats&quot; that do these things for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than not being the only one testing their own code, I think any &quot;hat&quot; is ok if it's meaningful work for the developer wearing the hat.&lt;/p&gt;&#xA;" OwnerUserId="373" LastEditorUserId="373" LastEditorDisplayName="" LastEditDate="2010-12-03T17:16:59.973" LastActivityDate="2010-12-03T17:16:59.973" />
  <row Id="8400" PostTypeId="2" ParentId="8391" CreationDate="2010-09-29T21:58:30.523" Score="1" ViewCount="" Body="&lt;p&gt;It depends on a few things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;formalism of code. code that other people gets a finer comb than personal code&lt;/li&gt;&#xA;&lt;li&gt;technicality of code&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As a rule, all non-trivial functions get a line that says what they do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the other end:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//funcname&#xA;//purpose&#xA;//params and their meaning&#xA;//description incl. weirdnesses&#xA;//exceptions that might show up&#xA;//maintainer notes&#xA;//future todos&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Plus a few delimiters such as &lt;code&gt;///////////////////////////////////&lt;/code&gt; or what-have-you.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-29T21:58:30.523" />
  <row Id="8401" PostTypeId="1" AcceptedAnswerId="8405" CreationDate="2010-09-29T22:01:04.020" Score="1" ViewCount="106" Body="&lt;p&gt;I want to &quot;hide&quot;/encode a URL within a string, and then give a fellow programmer a hint that will allow him to decode the URL.  How should I encode this URL and what should the hint be?&lt;/p&gt;&#xA;" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-29T22:49:10.350" LastActivityDate="2010-09-29T23:13:07.423" ClosedDate="2010-10-01T20:17:46.953" Title="Can you help me create a puzzle for a programmer?" Tags="&lt;puzzles&gt;&lt;cryptography&gt;" AnswerCount="2" CommentCount="7" />
  <row Id="8402" PostTypeId="1" CreationDate="2010-09-29T22:08:24.537" Score="13" ViewCount="882" Body="&lt;p&gt;I've had an argument recently with a fellow programmer. He was interviewing for a new position and was asked this question:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Give a sequence of numbers starting at&#xA;  X and ending in Y but with one element&#xA;  missing so N is Y-X-1, find the&#xA;  missing element in O(N) or better.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Now, the answer is irrelevant here (but interesting). This started a discussion on whether this was even a good question to ask during an interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One side: Algorithms are an inherit part of programming and a candidates ability to answer this question supports that this candidate will be a good programmer and be able to solve larger problems and can handle most programming tasks which are ultimately easy to understand and answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other side: Writing algorithms from scratch is rarely used in modern programming and therefore is irrelevant in the bigger question of whether the person will be a good programmer. A person could successfully answer this question yet still not be able to do more common programmings tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your thoughts? Good interview question or not?&lt;/p&gt;&#xA;" OwnerUserId="4113" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-09-29T23:07:29.540" LastActivityDate="2010-09-30T20:05:16.183" Title="Are algorithm questions good interview questions?" Tags="&lt;interview-questions&gt;&lt;algorithms&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="3" />
  <row Id="8403" PostTypeId="2" ParentId="8401" CreationDate="2010-09-29T22:11:53.357" Score="0" ViewCount="" Body="&lt;p&gt;Depending on how complex you want to be you can use any of the following:&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;UTF-8&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;This is pretty standard, and doesn't completely encode the URL, however most computer illiterates would be lost to extract the original URI. One thing to note, you can still see most of the original characters.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;LETTER ROTATION / XOR&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I think a good &quot;hint&quot; is if you see &lt;code&gt;gsso9..&lt;/code&gt; it is the equivalent of &lt;code&gt;http://&lt;/code&gt; It's simple, but easily crackable.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;MD5&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Basically your URL is hashed with an MD5 algorithm. There are known reverse algorithms to reverse this HASH and obtain the original text. &lt;a href=&quot;http://www.md5decrypter.com/&quot; rel=&quot;nofollow&quot;&gt;MD5 decrypt&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2449" LastEditorUserId="2449" LastEditorDisplayName="" LastEditDate="2010-09-29T23:13:07.423" LastActivityDate="2010-09-29T23:13:07.423" CommentCount="4" />
  <row Id="8404" PostTypeId="2" ParentId="8301" CreationDate="2010-09-29T22:13:22.953" Score="5" ViewCount="" Body="&lt;p&gt;Tech support for something you had no hand in developing, deploying, or maintaining, and have gotten no training for and aren't kept up-to-date on major changes. Part of my job has become answering the phone for clients calling about why their internet isn't working. I don't deal with that half of the business, so I can't tell them anything of use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not having to do tech support, that there's no problem with. It's being a secretary/tech support guy while trying to develop things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It gets quite taxing having to listen to people complaining all day and not being able to tell them anything. I'd advise avoiding this at all costs.&lt;/p&gt;&#xA;" OwnerUserId="2416" LastActivityDate="2010-09-29T22:13:22.953" CommentCount="1" />
  <row Id="8405" PostTypeId="2" ParentId="8401" CreationDate="2010-09-29T22:13:34.163" Score="1" ViewCount="" Body="&lt;p&gt;Do:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Base64 encoding&lt;/li&gt;&#xA;&lt;li&gt;ASCII (or other) values for the string&lt;/li&gt;&#xA;&lt;li&gt;Substitution cypher or xor&lt;/li&gt;&#xA;&lt;li&gt;Some basic encryption hinting at the key&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Don't&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Hash&lt;/li&gt;&#xA;&lt;li&gt;Some obscure or not well known encryption algorithm&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Or&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to truly make it for a programmer, write some code that relies on being able to read it to solve the result.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public string GetResult(int lifeTheUniverseAndEverything)&#xA;{&#xA;    int[] encResult =&#xA;      { 62,75,76,73,20,10,11,86,77,84,82,86,84,79,18,72,85,84 };&#xA;&#xA;    string result = &quot;&quot;;&#xA;    for (int i=0; i&amp;lt;encResult; i++)&#xA;    {&#xA;        result += Convert.ToChar(encResult[i] - lifeTheUniverseAndEverything - i);&#xA;    }&#xA;&#xA;    return result;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Note, this is completely untested...&lt;/p&gt;&#xA;" OwnerUserId="91" LastEditorUserId="91" LastEditorDisplayName="" LastEditDate="2010-09-29T22:39:06.763" LastActivityDate="2010-09-29T22:39:06.763" CommentCount="7" />
  <row Id="8406" PostTypeId="2" ParentId="8391" CreationDate="2010-09-29T22:16:24.027" Score="1" ViewCount="" Body="&lt;p&gt;I firmly believe that 90%+ of the time, code should be self documenting, IOW, variable names, method names and class names should clearly tell the story of what's happening. Only in rare cases when I'm having to do something somewhat unexpected (iterating through a collection and lowercasing the values) will I document WHY I'm doing it (not WHAT I'm doing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've got a roughly 500K line code base and I'd bet there are less than 30 lines of comments in the entire thing and it's (mostly) clear what the code is doing and why.  I find I'm mostly documenting around external APIs.&lt;/p&gt;&#xA;" OwnerUserId="4113" LastActivityDate="2010-09-29T22:16:24.027" />
  <row Id="8407" PostTypeId="2" ParentId="8402" CreationDate="2010-09-29T22:26:44.063" Score="11" ViewCount="" Body="&lt;p&gt;I agree with asking a algorithm question, but I disagree with insisting on a specific big-O quality level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Asking this sort of question is interesting to see how the person approaches the problem and what pitfalls they consider in their attempt, but unless they are writing something insanely incorrect or inefficient the actual detail of what they write is not as telling as the fact that they get through the problem solving / design steps in a coherent manner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I ask a similar question, but the people that I have had the best luck with after hire are the folks that gave flawed answers but had the correct idea in their approach.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-09-29T22:26:44.063" />
  <row Id="8408" PostTypeId="2" ParentId="8391" CreationDate="2010-09-29T22:30:53.420" Score="1" ViewCount="" Body="&lt;p&gt;Depends on the type of work you're doing, how it is run, with which SDLC approach and the size of the team.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In one group where I work, documentation is a wished for entity with variable names of 1-3 letters each.  Half the time the class names are 1-3 letters each or a &quot;handler.&quot;  My own code is as much as possible self-documenting with about a 2-3 page word doc on how it should be used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the other group where I work it's a waterfall project.  We write 30-40 pages worth of documents for each stage (this last document I wrote complete with diagrams, tables and figures was 60 pages.)  There are 3 primary stages before code is even written and in each stage there is a specification, a preliminary, a checklist, a formal document, a verification matrix spreadsheet, and a review.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope that helps.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-29T22:30:53.420" />
  <row Id="8409" PostTypeId="2" ParentId="8364" CreationDate="2010-09-29T22:32:45.637" Score="2" ViewCount="" Body="&lt;p&gt;The main reason I stick with Firefox rather than Opera is that &lt;a href=&quot;https://bugzilla.mozilla.org/&quot; rel=&quot;nofollow&quot;&gt;this is what the Firefox bug tracking system looks like&lt;/a&gt;, and &lt;a href=&quot;https://bugs.opera.com/secure/Dashboard.jspa&quot; rel=&quot;nofollow&quot;&gt;this is what the Opera one looks like&lt;/a&gt; - when something's not working and I'm sure it's not my fault I like to be able to read (and contribute to) a discussion about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Incidentally, one reason why I prefer Firefox to Chrome is that I spend a significant amount of time trying to do web development on trains with no network connection, and &lt;a href=&quot;http://code.google.com/p/chromium/issues/detail?id=39875&quot; rel=&quot;nofollow&quot;&gt;Chrome has this issue&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4116" LastActivityDate="2010-09-29T22:32:45.637" CommentCount="4" />
  <row Id="8410" PostTypeId="2" ParentId="8402" CreationDate="2010-09-29T22:33:25.700" Score="4" ViewCount="" Body="&lt;p&gt;I would disagree with the idea that the ability to write algorithms is irrelevant in the bigger question of whether the person will be a good programmer.  Even if he never has to use it, (which is doubtful,) it still shows if he has the mental flexibility required to work out a logical solution to a problem that's more complicated than a simple set of requirements that's already written up and laid out in detail by the client.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd definitely not want to hire someone who doesn't know how to think and analyze.  That's what makes the difference between a code monkey and a computer programmer.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-29T22:33:25.700" />
  <row Id="8411" PostTypeId="2" ParentId="8283" CreationDate="2010-09-29T22:41:28.013" Score="10" ViewCount="" Body="&lt;p&gt;I was asked to figure out a way to determine when and if a thread would stop.  This was so we could find and prevent all these multi-threaded bugs.  Guess they'd never heard of the halting problem.  (then again, they also didn't believe in locks, mutex's, or using any sort of synchronization methods.)&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-09-29T22:41:28.013" CommunityOwnedDate="2011-01-21T18:10:47.527" CommentCount="2" />
  <row Id="8412" PostTypeId="2" ParentId="8283" CreationDate="2010-09-29T22:44:16.740" Score="10" ViewCount="" Body="&lt;p&gt;I was asked to implement search, in 2 days for our enterprise app... not too bad. I can do that. I specifically noted:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just so you know, I'm not google, so the fancy ranking and auto-suggestions and all of that... not likely gonna happen, especially not in 2 days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3 days later: &quot;But google does...&quot;&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-09-29T22:44:16.740" CommunityOwnedDate="2011-01-21T18:10:47.527" />
  <row Id="8413" PostTypeId="1" AcceptedAnswerId="8616" CreationDate="2010-09-29T22:50:24.323" Score="5" ViewCount="445" Body="&lt;p&gt;I'm new to working for an actual company (Did freelance previously) so I'd love to know what people mean when I keep seeing &quot;considering a developer's salary&quot; and similar. I live in Canada, so U.S. and Canadian salary averages only please.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Salary range for an experience and well qualified &lt;strong&gt;web developer&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Salary range for software programmers (Desktop Applications)&lt;/li&gt;&#xA;&lt;li&gt;Salary range for any other programmer/developer jobs&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm a very good programmer with over 5 years of programming experience. My main area of work is PHP, Python, HTML, CSS and JavaScript which I can do anything in (Given the limitations of the language of course :P)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also worked with C, C++, Java, I have a solid understanding of database administration, and I've setup and run several dedicated servers &quot;From scratch&quot; (Without Plesk/Cpanel). I've definitely got a good understanding of how to setup Apache, MySQL, PostgreSQL, Email Servers, and FTP servers with good security and in chroot environments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've worked on Macs, Windows, Linux and FreeBSD so I have experience in a wide range of platforms. &lt;strong&gt;What type of salaries would be reasonable for me?&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the primary reasons I'm asking this question is to obviously provide a resource for others and to see if I'm underpaid and am justified asking for a raise. I appreciate any and all insight!&lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-09-30T19:07:50.697" ClosedDate="2010-12-28T18:38:01.487" Title="Developer Salaries for different types" Tags="&lt;salary&gt;&lt;career-advice&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="8414" PostTypeId="2" ParentId="4546" CreationDate="2010-09-29T23:13:00.713" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;... to add to your question,&lt;/em&gt; ... or have reasons because of which they cannot upgrade or change easily or at all (i.e. without disproportionately large costs, or because of technical reasons - think things which are made with a lifespan of 30-40 years).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... but to answer it, when there is no more a significant number of users who use it, and who are willing to pay for it (support). Otherwise, if one drops support for product X, another company will start providing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;End of support usually comes because of several reasons:&lt;br&gt;&#xA;- end of development (from the programmer's side, e.g. lack of funds, unwillingness to port to another platform/OS/compiler, death of programmer)&lt;br&gt;&#xA;- change of factors on which the programmer cannot influence (e.g., change of platform, hardware unavailability)&lt;br&gt;&#xA;- end of need for the product (i.e. it is no longer sought by the market)  &lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-29T23:13:00.713" />
  <row Id="8415" PostTypeId="1" CreationDate="2010-09-29T23:17:36.900" Score="5" ViewCount="236" Body="&lt;p&gt;I'm looking for something that allows me to work out an algorithm on a computer similar to how I would do it on a whiteboard. At work, I have a huge whiteboard that I can use for this, but at home, I don't (and can't). This makes it difficult to design algorithms when I'm working on hobby projects. I think better when I use drawings as opposed to text, so pseudocode is no good. I guess what I'm looking for is something like a flowchart program, but that allows a less rigid approach to designing algorithms. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like the program to be cross-platform (Mac, Linux), but I'll be happy even if it just runs on Macs. Free is preferred, but reasonably priced programs are good too. I would prefer programs that people have used and had experiences with, rather than whatever turned up on Google, as I know of some flowchart and mind-mapping software, but haven't really been satisfied with either. I realise that a computer isn't the best platform for doing this kind of stuff, but assume for a moment that it's the only medium I possess.&lt;/p&gt;&#xA;" OwnerUserId="61" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-16T11:57:07.303" LastActivityDate="2010-12-06T00:18:27.377" Title="What is a good way to brainstorm algorithms on a computer?" Tags="&lt;design&gt;&lt;algorithms&gt;&lt;problem-solving&gt;&lt;flowchart&gt;" AnswerCount="4" CommentCount="10" FavoriteCount="3" />
  <row Id="8416" PostTypeId="1" AcceptedAnswerId="9739" CreationDate="2010-09-29T23:48:21.570" Score="2" ViewCount="91" Body="&lt;p&gt;I have a Java class that handles import and export of data. It started out as a simple&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private void export() {&#xA;}&#xA;private void import() {&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Of course, I wrote the export first, committed it, and then went on to write the import. But import is a keyword in Java - I can't use that as a function name. So I go back and rename both methods. I usually end up with &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private void doExport() {&#xA;}&#xA;private void doImport() {&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;which is both ugly and feels contrived. What do you think of these names? Got any better suggestions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: I'm asking now, because it's now happened thrice and that keyword is getting quite annoying.&lt;/p&gt;&#xA;" OwnerUserId="2616" LastActivityDate="2010-10-05T19:54:36.363" Title="How would you name import and export functions in Java?" Tags="&lt;java&gt;&lt;naming&gt;" AnswerCount="2" CommentCount="4" />
  <row Id="8417" PostTypeId="2" ParentId="8071" CreationDate="2010-09-29T23:48:45.347" Score="1" ViewCount="" Body="&lt;p&gt;When managers are completely unable to see &lt;a href=&quot;http://programmers.stackexchange.com/questions/1360/what-are-the-top-motivators-for-a-programmer&quot;&gt;what it is that motivates a developer&lt;/a&gt; - even when those &lt;a href=&quot;http://programmers.stackexchange.com/questions/1360/what-are-the-top-motivators-for-a-programmer/1361#1361&quot;&gt;things are exactly&lt;/a&gt; &lt;a href=&quot;http://programmers.stackexchange.com/questions/1360/what-are-the-top-motivators-for-a-programmer/1364#1364&quot;&gt;the same ones&lt;/a&gt; &lt;a href=&quot;http://programmers.stackexchange.com/questions/1360/what-are-the-top-motivators-for-a-programmer/1418#1418&quot;&gt;that all developers&lt;/a&gt; &lt;a href=&quot;http://programmers.stackexchange.com/questions/1360/what-are-the-top-motivators-for-a-programmer/1365#1365&quot;&gt;are motivated by&lt;/a&gt; - and instead repeatedly try (and fail) to use carrot or stick approaches.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-09-29T23:48:45.347" />
  <row Id="8418" PostTypeId="2" ParentId="8415" CreationDate="2010-09-29T23:56:23.270" Score="-1" ViewCount="" Body="&lt;p&gt;If I have to brainstorm some design stuff that takes more complexity than Notepad can cope with, I usually just use a pencil/pen and paper.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-29T23:56:23.270" CommentCount="2" />
  <row Id="8419" PostTypeId="2" ParentId="8348" CreationDate="2010-09-30T00:07:50.860" Score="1" ViewCount="" Body="&lt;h2&gt;None&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I'd say that's probably one of the best certification I can get.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I learn everything by doing. I'll give you a very recent example: if I want to learn how interpreters and compilers work, I don't go to class and waste weeks or months getting lectured. I take one day off and make a simple programming language instead. Now I know the basics, and I'm slowly learning how to compile this language into the CLR.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, if you're looking for a good CS class, I'd wholeheartedly recomment &lt;a href=&quot;http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/&quot; rel=&quot;nofollow&quot;&gt;Structure and Interpretation of Computer Programs&lt;/a&gt;. If you follow the link you'll find downloadable video lectures from 1986. They're old, but what they teach would change any non-functional programmer's perspective on programming forever.&lt;/p&gt;&#xA;" OwnerUserId="2616" LastActivityDate="2010-09-30T00:07:50.860" CommentCount="2" />
  <row Id="8420" PostTypeId="2" ParentId="3886" CreationDate="2010-09-30T00:10:26.677" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Dark, Dark, Dark!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I try and turn out everything around me into total darkness, my blinds are turned the other way around to block sunlight, there's stuff around the cracks of the door, I have big headphones on, any white-background websites (like this one) get zapped through scripts to a very mainframe-esque theme so it's green/gold on black.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The less light on other junk the more I can focus on just this. It's like an isolation tank of computer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as not being able to see my keyboard, that's not really an issue, I know where the keys are by touch... In the days of yore I used a keyboard that had light-up letters but the quality was junk and it busted after 10000 keystrokes or so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Surprisingly, I think I live a normal life outside this fortress of solitude.&lt;/p&gt;&#xA;" OwnerUserId="1525" LastActivityDate="2010-09-30T00:10:26.677" />
  <row Id="8421" PostTypeId="2" ParentId="8402" CreationDate="2010-09-30T00:21:18.603" Score="1" ViewCount="" Body="&lt;p&gt;I have several algorithm-like questions that I use on a regular basis, some of which are very difficult.  I use them to see how they mentally attack a problem and to see if they grok certain concepts.  (I've seen way too many developer candidates who just don't understand pointers.)&lt;/p&gt;&#xA;" OwnerUserId="3975" LastEditorUserId="3975" LastEditorDisplayName="" LastEditDate="2010-09-30T04:31:36.107" LastActivityDate="2010-09-30T04:31:36.107" CommentCount="1" />
  <row Id="8422" PostTypeId="2" ParentId="2757" CreationDate="2010-09-30T00:32:07.800" Score="1" ViewCount="" Body="&lt;p&gt;At work, twin 20&quot; 1680x1050 LCDs. At home, twin 19&quot; 1280x1024@72Hz CRTs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use them for different things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At work I do a fair amount of client/server development, making heavy use of virtual machines. I'll often have three or four remote desktop sessions maximized on my lefthand screen, switching between them using the taskbard conveniently docked on my righthand screen. Throw in a number of reference windows on the righthand screen (Outlook, Word, Excel, JIRA, TeamCity) and it's a highly productive environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At home, a wider variety of activities. For self paced training, reference notes on one screen and my work on the other. Often I'll have my RSS reader on one screen, and a collection of browser windows on the other. Usually OneNote is hiding beneath the RSS reader (just an Alt-Tab away) so I can take notes on what I'm reading. For writing blog entries or larger articles, I'll have Word (for writing) opposite OneNote and a browser (for notes and references).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I notice, when forced to use a single screen environment for anything, is that I seem to spend a lot more time switching between windows and finding my &quot;place&quot;. Having dual screens also seems conducive to entering a good &quot;flow&quot; state, probably due to the lower overhead.&lt;/p&gt;&#xA;" OwnerUserId="4099" LastActivityDate="2010-09-30T00:32:07.800" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="8423" PostTypeId="2" ParentId="2757" CreationDate="2010-09-30T00:46:43.327" Score="0" ViewCount="" Body="&lt;p&gt;If you ever want to debug custom drawing code, a dual monitor setup is almost essential&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Debug-&gt;Step draw line&#xA;  look at result&#xA;Debug-&gt;Step - write text&#xA;  look at result&lt;/p&gt;&#xA;&#xA;&lt;p&gt;etc...&lt;/p&gt;&#xA;" OwnerUserId="3316" LastActivityDate="2010-09-30T00:46:43.327" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="8424" PostTypeId="1" AcceptedAnswerId="8442" CreationDate="2010-09-30T01:15:12.487" Score="4" ViewCount="179" Body="&lt;p&gt;I always wonder when conducting an interview why a director or VP of Engineering is involved? If a team of engineers and hiring manager want to hire a person, I don't ever see a director or VP would veto, unless the candidate said something egregious. Is this just to make the candidate feel they are valued? What's the rationale?&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T14:32:57.487" LastActivityDate="2010-09-30T14:32:57.487" Title="How should a director conduct an interview for a programmer / software engineer position?" Tags="&lt;interview&gt;&lt;hiring&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="8425" PostTypeId="2" ParentId="5215" CreationDate="2010-09-30T01:37:59.973" Score="2" ViewCount="" Body="&lt;p&gt;If you are into Web technologies, I would recommend &lt;a href=&quot;http://code.google.com/events/io/2010/&quot; rel=&quot;nofollow&quot;&gt;Google I/O&lt;/a&gt; and &lt;a href=&quot;http://conferences.oreillynet.com/&quot; rel=&quot;nofollow&quot;&gt;O'Reilly's developer conferences&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-30T01:37:59.973" />
  <row Id="8426" PostTypeId="2" ParentId="8424" CreationDate="2010-09-30T01:38:01.723" Score="3" ViewCount="" Body="&lt;p&gt;If I were a manager/director type, I'd like to keep vaguely in touch with the people who work for me and have some understanding of and insight into what's going on. That includes a little participation in the hiring process - doubly so since I'd ultimately be responsible for their performance and its implications on the company at large. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a prospective employee, I'd like to get a brief introduction to the guy, since he's going to be in charge of my job, and it might behoove me to have him at least &lt;em&gt;recognize&lt;/em&gt; me if I ever should have to talk to him, and to make sure that he's a reasonable guy. (At the interview for my current job, I talked with the CEO for a few minutes. Granted, it was a sub-50-person company at the time... but does your VP of Engineering have a department of similar size?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, this sort of interview generally goes well at the end of the interview, and probably isn't the best place to do spectacularly in-depth technical stuff.&lt;/p&gt;&#xA;" OwnerUserId="2348" LastActivityDate="2010-09-30T01:38:01.723" />
  <row Id="8427" PostTypeId="1" AcceptedAnswerId="8465" CreationDate="2010-09-30T02:09:44.750" Score="2" ViewCount="253" Body="&lt;p&gt;I'm looking into finding a few open source projects to get some experience with. I'm currently not a user of ohloh.net but I might want to join if there are some people who use it for projects. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this a good alternative to Github? Or are they completely different?&lt;/p&gt;&#xA;" OwnerUserId="3910" LastEditorUserId="1767" LastEditorDisplayName="" LastEditDate="2010-09-30T03:00:27.443" LastActivityDate="2010-12-20T18:26:00.653" Title="Does anyone use ohloh.net for their open source projects?" Tags="&lt;open-source&gt;&lt;project-hosting&gt;&lt;github&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="8428" PostTypeId="2" ParentId="8071" CreationDate="2010-09-30T02:14:28.393" Score="3" ViewCount="" Body="&lt;p&gt;When the company culture is corrupt, this isn't something you can change, and moving on is the only option. Here are a a few signs that your company may be corrupt, taken from my personal experience as a programmer:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Turnover Rate&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I worked for a financial services firm where the partners proudly referred to themselves as scammers and explained to me many of their tax avoidance schemes. It seemed to me that their activities were not illegal, merely taking advantage of loopholes in the tax code until they were patched by new legislation and regulation. The software I was asked to write computed depreciation on financial derivatives by two methods: one for tax purposes that maximized their losses and one for the benefit of investors that maximized their profits. Again, at the time this was being done, none of it seemed to violate any laws or regulations. Nevertheless, it did seem highly unethical to me. And I quit. I was not alone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This company's culture of corruption was mirrored by its unusually high turnover rate: 50% by my estimate. Compare that to the national average (a mere 3.4%, I believe). High turnover rate is definitely a sign that the workplace is bad. At interviews, I usually ask questions to try and get a feel for turnover rate, like why the position opened up and how long it was occupied by the last person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Reverse Resume Fraud&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another company's sales rep altered my resume, adding programming experience I didn't have and changing my dates of graduation, in order to win a contract that was open to bidding from multiple vendors. When I was alerted to this fraud, I confronted the sales rep and asked him to correct it. He said it wasn't a big deal and that everyone did it. When I repeated my request for a correction, one of the company's partners told me they needed this contract or they'd go out of business. At that point, I started my job search.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Undercapitalizated or just exploitive?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Making new hires (or even job prospects) pay for their own tools, training, or travel can be a sign that the company is undercapitalized and therefore on the verge of shutdown. Or it could just be a sign that the owners are exploiting you. Here's another page from my job history:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prof Plum already mentioned ``not having the right tools.'' But what about having to buy the development tools yourself? I've worked for two different companies, several years apart, as a full-time, permanent employee (not a contractor), where I not only had to buy MS Visual Studio to get my own work done, but then got pressured by management into letting the other developers, working on separate projects, use my copy. I don't believe this infringed MS's IP (b/c it was licensed for use on something like 5 workstations) or I wouldn't have allowed it. Nevertheless, this is very pricey software that cut into my take-home pay. I never got reimbursed for it. And I couldn't deduct it from my taxes, b/c it didn't make the cutoff for the 2% rule (i.e., you can only deduct work-related expenses that exceed 2% of your AGI). BTW, F/OSS tools weren't an option in either case, as the clients were paying for solutions specific to proprietary MS platforms. Nor was I told this would be a requirement when I took the job. Since then, I've turned down two jobs where I was told up front I'd have to pay for training or travel.&lt;/p&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-09-30T02:14:28.393" CommentCount="2" />
  <row Id="8429" PostTypeId="1" AcceptedAnswerId="8431" CreationDate="2010-09-30T02:18:06.537" Score="14" ViewCount="200" Body="&lt;p&gt;Which way is more beneficial and productive?&lt;/p&gt;&#xA;" OwnerUserId="1373" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T16:54:16.803" LastActivityDate="2010-09-30T16:54:16.803" Title="Should one learn new languages or only should concentrate on languages you already know and increase your knowledge of it?" Tags="&lt;experience&gt;&lt;languages&gt;" AnswerCount="4" FavoriteCount="3" />
  <row Id="8430" PostTypeId="2" ParentId="8071" CreationDate="2010-09-30T02:23:05.987" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;They don't know what &lt;a href=&quot;http://en.wikipedia.org/wiki/State_of_the_art&quot; rel=&quot;nofollow&quot;&gt;SotA&lt;/a&gt; means.&lt;/li&gt;&#xA;&lt;li&gt;Standards enforce naming conventions but fail to address things like how date times are stored.&lt;/li&gt;&#xA;&lt;li&gt;You repeatedly get told &lt;strong&gt;&quot;You can't use new tools/techniques because some people in the project aren't smart enough to understand them.&quot;&lt;/strong&gt; If you hear that, get gone fast. That's a sure sign the organization doesn't want to improve.&lt;/li&gt;&#xA;&lt;li&gt;The organization doesn't want to ever do a retrospective, or retrospective's are just a couple of peoples' take on things.&lt;/li&gt;&#xA;&lt;li&gt;Process improvement is rare.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-09-30T02:23:05.987" />
  <row Id="8431" PostTypeId="2" ParentId="8429" CreationDate="2010-09-30T02:23:08.873" Score="8" ViewCount="" Body="&lt;p&gt;I think you need both. You have to focus on your core competencies and improve your understanding of them, but at the same time it's beneficial to look outside and see what else is out there. Exposure to other approaches and other languages is very important to make one a better developer overall. There are many ways to skin a cat, as it were, and knowing as many of them as possible will make you &lt;s&gt; a psychopath&lt;/s&gt; better at picking the right tool for a particular task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, spend most of your time getting better at your chosen proficiency and spend some of your time on learning something new.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-30T02:23:08.873" CommentCount="2" />
  <row Id="8432" PostTypeId="2" ParentId="7045" CreationDate="2010-09-30T02:34:36.167" Score="0" ViewCount="" Body="&lt;p&gt;Whatever helps you read the code better. Generally, as well, use whatever you type naturally.  For instance, in a similar case, and as mentioned here, I prefer this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;template&amp;lt;class T&amp;gt;&#xA;void MyClass&amp;lt;T&amp;gt;::MyMethod(T&amp;amp; data) {&#xA;    // My Function delcaration...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Over something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;template &amp;lt;class T&amp;gt; void MyClass&amp;lt;T&amp;gt;::MyMethod(T &amp;amp;data)&#xA;{&#xA;    // Code Here&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Both of which are perfectly valid C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, If I were you I'd stop worrying about it and just type what comes naturally. You'll eventually swing into one style or the other and stick with it.  It'll make you more fluent in the end.&lt;/p&gt;&#xA;" OwnerUserId="2835" LastActivityDate="2010-09-30T02:34:36.167" />
  <row Id="8433" PostTypeId="2" ParentId="8384" CreationDate="2010-09-30T02:34:41.390" Score="8" ViewCount="" Body="&lt;p&gt;in JavaScript I am addicted to the declaration of my iterable in my for loop:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for (var i = 0, a; a = objectset[i]; i++){&#xA;  //do something with a&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;it makes everyone look twice at the loop and it's a really bad way to use type coercion.&lt;/p&gt;&#xA;" OwnerUserId="1363" LastActivityDate="2010-09-30T02:34:41.390" CommunityOwnedDate="2010-09-30T02:34:41.390" CommentCount="3" />
  <row Id="8434" PostTypeId="2" ParentId="8384" CreationDate="2010-09-30T02:42:15.457" Score="1" ViewCount="" Body="&lt;p&gt;In brief,&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#include&amp;lt;stdio.h&amp;gt;&#xA;&#xA;int main(int argc, char** argv) {&#xA;    char *a;&#xA;    *a = 'h';&#xA;    *(a+1) = 'e';&#xA;    *(a+2) = 'l';&#xA;    *(a+3) = 'l';&#xA;    *(a+4) = 'o';&#xA;    *(a+5) = '\0';&#xA;    printf(&quot;%s&quot;, a);&#xA;    return 0;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Create a random pointer somewhere random and start placing values as I please.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While this is probably handled by compiler optimization, I'm sure there are some nasty things you could do with it ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not really a great example, but I felt like posting something&lt;/p&gt;&#xA;" OwnerUserId="2835" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2010-09-30T03:07:15.003" LastActivityDate="2010-09-30T03:07:15.003" CommunityOwnedDate="2010-09-30T02:42:15.457" CommentCount="1" />
  <row Id="8435" PostTypeId="2" ParentId="8429" CreationDate="2010-09-30T02:48:06.150" Score="3" ViewCount="" Body="&lt;p&gt;There are a lot of really good arguements on both sides.  Many years ago I was presented with that exact question... concentrate on my primary language and be attempt to become an &quot;expert&quot; OR pick up a new language and broaden my marketability.  I chose to concentrate on one language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's really not going to be a wrong answer.  Both have merits, it's really going to boil down to which one fits better for you and where you want your career to go.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-09-30T02:48:06.150" />
  <row Id="8436" PostTypeId="2" ParentId="2757" CreationDate="2010-09-30T02:49:28.487" Score="1" ViewCount="" Body="&lt;p&gt;It depends on whether I bring my laptop to work, but monitorwise 2-3.  One with Windows XP running AVR Studio or QtCreator, the other running Fedora 13 with datasheets and the like.  Sometime my laptop is also present running Matlab and Foobar2000.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At home, I have just my 15&quot; laptop and a 19&quot; LCD.  The LCD has media running on it, TV shows or whatever, and I have everything else confined to the main screen.  I just moved in to a new apartment, and don't have a desk yet, but I am getting a 40&quot; or 46&quot; TV and a desk within the next week or so, so I should be able to start using the 19&quot; for code again, and have the smaller screen for documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hell, maybe I'll even get the code going on the 40&quot;?&lt;/p&gt;&#xA;" OwnerUserId="2835" LastActivityDate="2010-09-30T02:49:28.487" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="8437" PostTypeId="2" ParentId="8429" CreationDate="2010-09-30T03:06:56.223" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Learning new languages&lt;/strong&gt; is mostly a means to get new concepts and increasing your efficiency with programming. &lt;strong&gt;Learning programming&lt;/strong&gt; in itself is very different from learning a new language to program in. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should concentrate on making your programs better (and there are a lot of metrics for measuring that, many subjective; does not matter, take your pick on the metrics and refine them over time, use them for your education). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said this, learning 'newer' languages (say, &lt;code&gt;Python&lt;/code&gt;) over your older list (like, say '&lt;code&gt;C&lt;/code&gt;' and many such) will help you think more efficiently and focus on those core concepts that should be made better. Taking the example further, it may not appear immediately but you might find your &lt;code&gt;C&lt;/code&gt; programming getting better because you have been thinking in Python. You might even start writing Python instead of psudo-code for &lt;code&gt;C&lt;/code&gt;. Now, that is a much more readable and verifiable psudo-code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which brings us to summarize on the primary question:&lt;br&gt;&#xA;Yes, you should focus on languages you already know and increase your knowledge in them -- as long as they are still in use for you. &lt;strong&gt;And&lt;/strong&gt;, you should also dabble in newer languages to give your brains newer tools to think (maybe even faster) solutions for your programming needs.&lt;/p&gt;&#xA;" OwnerUserId="4134" LastActivityDate="2010-09-30T03:06:56.223" />
  <row Id="8438" PostTypeId="2" ParentId="8384" CreationDate="2010-09-30T03:26:01.083" Score="9" ViewCount="" Body="&lt;p&gt;In C#, I am unhealthily obsessed with changing&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;string someText = &quot;&quot;;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;to&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;string someText = string.Empty;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3963" LastActivityDate="2010-09-30T03:26:01.083" CommunityOwnedDate="2010-09-30T03:26:01.083" CommentCount="3" />
  <row Id="8439" PostTypeId="2" ParentId="8384" CreationDate="2010-09-30T03:30:26.550" Score="4" ViewCount="" Body="&lt;p&gt;In Javascript, when I'm writing BS code that will never be used in IE, I love to add nutty stuff like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Array.prototype.__defineGetter__('last', function() {&#xA;   return this[this.length-1];&#xA;});&#xA;&#xA;Array.prototype.__defineSetter__('last', function(val) {&#xA;    this[this.length ? this.length-1 : 0] = val;&#xA;});&#xA;&#xA;&#xA;var array = ['omg', 'wtf', 'bbq'];&#xA;&#xA;alert(array.last); //bbq&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Sometimes brackets annoy me, so instead of using them, I'll use the ever versitile &lt;code&gt;comma&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;while (--i)&#xA;  do,&#xA;  some,&#xA;  stuff;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Look, I saved two characters!&lt;/p&gt;&#xA;" OwnerUserId="4135" LastActivityDate="2010-09-30T03:30:26.550" CommunityOwnedDate="2010-09-30T03:30:26.550" />
  <row Id="8440" PostTypeId="2" ParentId="1013" CreationDate="2010-09-30T03:34:21.427" Score="0" ViewCount="" Body="&lt;p&gt;R&amp;amp;R Report Writer for DBase III (ol' DOS days)&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-09-30T03:34:21.427" CommunityOwnedDate="2011-02-01T07:56:02.387" />
  <row Id="8441" PostTypeId="2" ParentId="2757" CreationDate="2010-09-30T03:34:51.720" Score="15" ViewCount="" Body="&lt;p&gt;I have &lt;strong&gt;3 x 22&quot;&lt;/strong&gt; for a cumulative resolution of 5760x1200.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And although I wholeheartedly agree with Jeff that &lt;a href=&quot;http://www.codinghorror.com/blog/2010/04/three-monitors-for-every-user.html&quot; rel=&quot;nofollow&quot;&gt;three monitors is the sweet spot&lt;/a&gt;, I'll probably have to get a fourth monitor when I have a fourth kid. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/179Rs.jpg&quot; alt=&quot;Three monitors, one for each kid?&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for usage, it's typically:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Docs for whatever API I'm using at the moment&lt;/li&gt;&#xA;&lt;li&gt;IDE &lt;/li&gt;&#xA;&lt;li&gt;Web browser for whatever app I'm working on at the moment&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="467" LastActivityDate="2010-09-30T03:34:51.720" CommunityOwnedDate="2011-01-26T13:55:26.910" CommentCount="1" />
  <row Id="8442" PostTypeId="2" ParentId="8424" CreationDate="2010-09-30T03:44:42.687" Score="3" ViewCount="" Body="&lt;p&gt;Trust, but verify.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, middle managers may filter the feedback going up the chain from the front-line interviewers for their own purposes. Sometimes they have a quota to fill, other times they are irrationally excited by a candidate. By staying involved, the higher-ups can see the unfiltered real feedback. This is vital to keep an organization strong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's like when you hire a general contractor to do work on your house. You try to keep abreast of their day-to-day decisions. One of the most important of these is who THEY are hiring. You would definitely want good skilled work going into your house. Similarly, if it was my company making products with my name on it, I'd want good skilled employees.&lt;/p&gt;&#xA;" OwnerUserId="980" LastActivityDate="2010-09-30T03:44:42.687" />
  <row Id="8443" PostTypeId="2" ParentId="1013" CreationDate="2010-09-30T04:27:55.240" Score="2" ViewCount="" Body="&lt;p&gt;As an undergraduate, coding pads, card punches, and 20 minute turnaround on batch jobs (if I was lucky).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At high school, 30-column optical marked cards, a temperamental card reader, and a 2 to 3 &lt;strong&gt;day&lt;/strong&gt; job turn-around.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-09-30T04:27:55.240" CommunityOwnedDate="2011-02-01T07:56:02.387" />
  <row Id="8444" PostTypeId="1" AcceptedAnswerId="8462" CreationDate="2010-09-30T04:28:05.533" Score="7" ViewCount="194" Body="&lt;p&gt;I like green-screen programming personally.  Most of my breaking up of long functions/methods/procedures were if my code extended too often beyond 72 characters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With 16:10 &amp;amp; 16:9 monitors today and our PuTTY screens with nice large fonts and much wider than 80 chars allows for much more comfortably deeper-indented functions, I've noticed this in many codebases of late.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Today, is there a new 80x24 optimal size for coding?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/gW3Aa.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-10T17:54:37.330" LastActivityDate="2010-12-10T17:54:37.330" Title="Is there a new (80x24) optimal size for coding?" Tags="&lt;code-width&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="8445" PostTypeId="1" CreationDate="2010-09-30T04:50:06.690" Score="9" ViewCount="408" Body="&lt;p&gt;After 15 years of C++, I've still haven't learn to love using const. I understand it's use, but I've never actually been in situation where being &lt;a href=&quot;http://en.wikipedia.org/wiki/Const-correctness&quot; rel=&quot;nofollow&quot;&gt;const correct&lt;/a&gt; would have avoided the problem I was facing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So how did you come to love benefits of consts?&lt;/p&gt;&#xA;" OwnerUserId="2857" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-30T19:04:07.930" LastActivityDate="2011-03-03T14:21:50.777" Title="How did you become a const correctness convert?" Tags="&lt;programming-practices&gt;&lt;c++&gt;" AnswerCount="7" CommentCount="4" />
  <row Id="8446" PostTypeId="2" ParentId="380" CreationDate="2010-09-30T04:52:00.690" Score="1" ViewCount="" Body="&lt;p&gt;-no interruptions:I'm pretty sure if I did not actively seek out my boss and give him updates every so often, I could go months without talking to him, and if I did not have something done I could say &quot;...working out the kinks&quot; and he would say &quot;sounds great, ask me if you need any help!&quot; (He's the manager, but also writes loads of stuff and has zillions of meetings, so he's pretty aloof about the details. It makes it nice when every time I go in and tell him I'm done with something, he is pleasantly surprised, since he forgot that he had anyone working on essential X or Y in the first place and was going to have to stress about it.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-09-30T04:52:00.690" />
  <row Id="8447" PostTypeId="2" ParentId="8402" CreationDate="2010-09-30T04:59:04.623" Score="1" ViewCount="" Body="&lt;p&gt;I agree that programmers must know algorithms very well, even with fancy new frameworks, but I'm not totally convinced about a brain teaser in an interview. My biggest concern would be that in a real environment, you write algorithms under very different conditions; aka, not under pressure with someone watching you every penstroke, with at least several minutes to think it over in silence. For those who advocate this evaluation method, how long do you generally give the person to solve it? I believe code is not so much about cranking out a solution in a feverish 3 minute terror, so convince me that this is actually a good way to see how someone will handle an everyday task.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-09-30T04:59:04.623" />
  <row Id="8448" PostTypeId="2" ParentId="1013" CreationDate="2010-09-30T05:19:45.097" Score="0" ViewCount="" Body="&lt;p&gt;I absolutely love telerik controls, however, for several months, the extension to visual studio would just go in and out so I would have to manually reload every reference every time I started a new instance of the IDE. Not a big deal one or two times, but multiple times a day for months means a whole lot of wasted time. I had to use them because it was a huge 2 year project with 4 or 5 people, and I wasn't even working on the UI, but I could not debug with a broken build. they have been working for the past few weeks so my fingers are crossed.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-09-30T05:19:45.097" CommunityOwnedDate="2011-02-01T07:56:02.387" />
  <row Id="8449" PostTypeId="2" ParentId="6760" CreationDate="2010-09-30T05:27:27.347" Score="1" ViewCount="" Body="&lt;h2&gt;An array with no closing delimiter&lt;/h2&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?&#xA;$__='([^/]+)@i\',$__,$___';$_=preg_match('@^(?:,)?([^/]+)@i',$__,$___);&#xA;echo $_.'&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;';&#xA;echo $__.'&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;';&#xA;print_r($___);&#xA;?&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Outputs this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;1&#xA;&#xA;([^/]+)@i',$__,$___&#xA;&#xA;Array ( [0] =&amp;gt; ([^ [1] =&amp;gt; ([^ ) &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;WTF???&lt;/p&gt;&#xA;" OwnerUserId="2449" LastActivityDate="2010-09-30T05:27:27.347" CommentCount="1" />
  <row Id="8450" PostTypeId="1" AcceptedAnswerId="8455" CreationDate="2010-09-30T05:30:13.483" Score="3" ViewCount="274" Body="&lt;p&gt;I have messed with MonoDevelop, which is what I use on my Ubuntu machine, but are there many other alternatives? It creeps me out being so tied down to one mega-corp. (no true logical reason, I know, but I want to feel more like a programmer stallion than a programmer sheep).&lt;/p&gt;&#xA;" OwnerUserId="3792" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T15:53:58.707" LastActivityDate="2010-10-02T15:53:58.707" Title="Best .net non-Visual Studio IDE" Tags="&lt;ide&gt;&lt;.net&gt;" AnswerCount="5" CommentCount="7" />
  <row Id="8451" PostTypeId="2" ParentId="8445" CreationDate="2010-09-30T05:41:42.763" Score="10" ViewCount="" Body="&lt;p&gt;I've never been a proponent of object-oriented programming, and if anything I've grown less so the more I learn about programming in general. As I've studied different programming paradigms, I've realised that immutability is one of &lt;em&gt;the&lt;/em&gt; central concepts of program design, affecting software written according to &lt;em&gt;any&lt;/em&gt; philosophy. It's hugely important in functional programming, with implications in optimisation and concurrency on top of the simple safety guarantees.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, everything that can be immutable probably &lt;em&gt;should&lt;/em&gt; be, unless you've got a good reason for mutable state. In my experience, writing programs in &lt;em&gt;any&lt;/em&gt; language in pursuit of this goal leads to safer, &lt;em&gt;better&lt;/em&gt; code. You have nothing to lose by using &lt;code&gt;const&lt;/code&gt; where applicable&amp;mdash;immutability is free!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Incidentally, I've toyed with the idea of creating a fork of GCC for a dialect of C++ in which all types are &lt;code&gt;const&lt;/code&gt; unless explicitly qualified as &lt;code&gt;mutable&lt;/code&gt;. If there's support for such a thing, I will totally commit to maintaining and using it.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From an OO standpoint, immutability enforces encapsulation by preventing unrestricted write access. It reduces coupling between classes because immutable objects must fully manage their own state and thus behave like ordinary values. Const correctness significantly eases the process of proving program correctness, especially in the context of concurrent programming. With C++ reference and C++0x rvalue reference semantics, you can make use of immutable objects without worrying about the overhead of copying them all over the place. Further, the compiler can work some pretty amazing optimisation magic if you're working with mostly immutable objects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know it sucks to type &lt;code&gt;const&lt;/code&gt; everywhere, but you rapidly get used to it, and the benefits become apparent over time in terms of reliability and maintainability. I'm not a brilliant writer, and it seems to be a proven difficult task to make a case for it, but I know that const correctness has been immensely helpful to me as a developer when designing and implementing programs, and I think experience is the best teacher in this regard.&lt;/p&gt;&#xA;" OwnerUserId="2107" LastEditorUserId="2107" LastEditorDisplayName="" LastEditDate="2010-09-30T15:18:00.877" LastActivityDate="2010-09-30T15:18:00.877" CommentCount="5" />
  <row Id="8452" PostTypeId="2" ParentId="8301" CreationDate="2010-09-30T05:51:58.107" Score="11" ViewCount="" Body="&lt;p&gt;A programmer should not be the only &lt;strong&gt;tester for his own code&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developers write code with a set of assumptions. If testers have the identical set of assumptions, they will not exercise the unexpected functionality outside of those bounds, and many issues will remain undetected. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Moreover, in order to move forward, devs are not highly motivated to try to break things, while testers are (perhaps at a subconscious level).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This does not imply dev testing is useless. Quite the opposite -- good dev testing enables testers to focus on finding deeper issues. However, dev testing is &lt;strong&gt;not a substitute&lt;/strong&gt; for a dedicated tester.&lt;/p&gt;&#xA;" OwnerUserId="2193" LastActivityDate="2010-09-30T05:51:58.107" />
  <row Id="8453" PostTypeId="2" ParentId="1013" CreationDate="2010-09-30T05:53:24.217" Score="15" ViewCount="" Body="&lt;p&gt;Many may not consider it a dev tool, but the primary tools I use for development are the IDE, schedule/bug tracking tools, and email.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my vote has to be for &lt;strong&gt;Lotus Notes&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I must stick to &quot;core&quot; dev tools, I used a C compiler on the original Macintosh back in the early 1990s that reported &quot;Syntax error&quot; for almost any problem. Once it reported a syntax error about half way down a large .c source file and it took me 3 days to find the problem - a missing semicolon in one of the headers (effectively thousands of lines earlier).&lt;/p&gt;&#xA;" OwnerUserId="1335" LastActivityDate="2010-09-30T05:53:24.217" CommunityOwnedDate="2011-02-01T07:56:02.387" CommentCount="3" />
  <row Id="8454" PostTypeId="1" AcceptedAnswerId="8703" CreationDate="2010-09-30T06:03:12.967" Score="3" ViewCount="121" Body="&lt;p&gt;I was having a chat with a coworker who is working on a polling app and framework. He was asking technical questions and I suggested he open source the application to get more quality opinions from developers who are interested in this problem and are willing to give it heavy though. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;He has a different point of view which I think is still valid so I want to open this question for discussion here. He says he believes something like a polling framework should &lt;strong&gt;not&lt;/strong&gt; be open sourced because it will reduce its security and validity as people reveal loopholes through which they can cheat. Can't say I completely disagree. I see a somewhat valid point there, but I always believed that solutions by a group of people are almost always better than a solution thought by a single person asking a small number of coworkers, no matter how smart that person is. Again I'm willing to accept that maybe some types of applications are different. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone have an argument in his favor? I'd really like to present your responses to him. &lt;/p&gt;&#xA;" OwnerUserId="3598" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T10:57:08.503" LastActivityDate="2010-10-06T19:19:27.617" Title="Should a poll framework be closed sourced" Tags="&lt;web-development&gt;&lt;php&gt;&lt;open-source&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="8455" PostTypeId="2" ParentId="8450" CreationDate="2010-09-30T06:03:20.627" Score="11" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.icsharpcode.net/OpenSource/SD/Default.aspx&quot; rel=&quot;nofollow&quot;&gt;SharpDevelop&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2856" LastActivityDate="2010-09-30T06:03:20.627" CommentCount="1" />
  <row Id="8456" PostTypeId="2" ParentId="8384" CreationDate="2010-09-30T06:09:08.507" Score="2" ViewCount="" Body="&lt;p&gt;Not one of mine, but I see a lot of VB5/6 programmers who don't understand reference counting and put&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Set x = Nothing&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;at the end of functions where x is a local variable.  Cargo cult programming.&lt;/p&gt;&#xA;" OwnerUserId="2856" LastActivityDate="2010-09-30T06:09:08.507" CommunityOwnedDate="2010-09-30T06:09:08.507" CommentCount="1" />
  <row Id="8457" PostTypeId="2" ParentId="8301" CreationDate="2010-09-30T06:14:53.770" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Artist&lt;/strong&gt; and &lt;strong&gt;User Interface Designer&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most programmers are very poor at artwork, but companies don't bother to pay for an artist to draw images and icons for their products, and just use &quot;programmer art&quot; - with hideous results. (Until Windows Vista, this was the most immediately obvious differentiating factor between Macs and PCs - Macs looked beautiful and friendly, PCs were an eyesore)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a similar way, a lot of programmers aren't very interested in user interface - they care primarily about their code. They simply expose the contents of their member variables directly into some editable fields, often not caring where they put buttons and fields on their forms, and assume that this is sufficient, resulting in unusable software. (The entire mobile phone industry was very guilty of this until the iPhone arrived to show them that you could actually make a phone UI that was nice to use)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lotus Notes is a shining example of how bad both of these things can be if you don't get a professional designer to help the programmers out.&lt;/p&gt;&#xA;" OwnerUserId="1335" LastActivityDate="2010-09-30T06:14:53.770" CommentCount="2" />
  <row Id="8458" PostTypeId="2" ParentId="8429" CreationDate="2010-09-30T06:19:46.483" Score="0" ViewCount="" Body="&lt;p&gt;If you are already good enough with the language you are familiar, there's no good to learn very detailed, specific tricks for a little cool... it'll be totally a waste of time. However when you're quite uncomfortable with a language the suggestion is to master that language first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides languages there's frameworks, patterns... to learn a framework you must know a language, so for very similar languages learning them helps nothing than bring some not so funny fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal opinion is you should always develop your capabilities to make faster, securer, more robust software, for more platforms, and make the time taken shorter, for that aim you may need to learn a new language, a new framework, a new IDE (that's just as important as a language), and only when you are for that purpose your investment is worthwhile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least don't learn a new language to increase the number of languages you know.&lt;/p&gt;&#xA;" OwnerUserId="2347" LastActivityDate="2010-09-30T06:19:46.483" />
  <row Id="8459" PostTypeId="2" ParentId="8185" CreationDate="2010-09-30T06:32:07.567" Score="3" ViewCount="" Body="&lt;p&gt;I once brought a New Year's Eve party to a crashing halt when I gave the host a copy of the &lt;a href=&quot;http://www.brandonbray.com/fun/test.html&quot; rel=&quot;nofollow&quot;&gt;Self-Referential Aptitude Test&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Highly recommended… if you have a lot of time to kill.&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-09-30T06:32:07.567" CommentCount="1" />
  <row Id="8460" PostTypeId="2" ParentId="8454" CreationDate="2010-09-30T06:36:22.263" Score="5" ViewCount="" Body="&lt;p&gt;In fact, &lt;a href=&quot;http://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/open-source-security.html&quot; rel=&quot;nofollow&quot;&gt;being open source helps you to be more secure&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look at Linux...&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-30T06:36:22.263" />
  <row Id="8461" PostTypeId="2" ParentId="1768" CreationDate="2010-09-30T06:53:14.870" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Multi platform is wishful. Windows is&#xA;  priority, but Linux and Mac are&#xA;  important too. Business applications&#xA;  usually are developed to desktop, but&#xA;  mobile and web is important too.&#xA;  Client/Server multi-tier is&#xA;  interesting too.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Thus I suggest &lt;strong&gt;Python&lt;/strong&gt;, because the application is mainly expected to run on desktop you probably need to use PyQt, which is very handy, the license is flexible enough too. Python has all networking modules you need for a CS architecture. Python also has a framework for web development. So finally the three modules: the server, the client and the web part can be developed in the same programming language and therefor share lots of codes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Python has been proved to be a solution that works, by leaders in different industries, and organizations. The language features, performance, deployment overhead are all OK for business application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And speaking of team work I don't see much connections it has with a programming language, you probably need to find a proper collaborating tool.&lt;/p&gt;&#xA;" OwnerUserId="2347" LastActivityDate="2010-09-30T06:53:14.870" />
  <row Id="8462" PostTypeId="2" ParentId="8444" CreationDate="2010-09-30T07:00:13.863" Score="4" ViewCount="" Body="&lt;p&gt;Longer identifiers and more complex coding constructs (I'm thinking of lambda expressions and extension methods in C#) do tend to push the righthand margin out somewhat, though the trend towards very small methods (5-7 lines) with expressive names does serve to mitigate this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to set a margin in my IDE at 99 characters, and to try to keep all code within that, though I treat it as a soft boundary and don't sweat too much over the occassional line going wider.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why 99 characters? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because code doesn't always stay on screen - sometimes it's useful to print out code for a (personal or peer) review. With an A4 page, 10mm margins, Courier New @ 9pt, 4 digit line numbers and some whitespace, you have room for 99 characters of code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's another factor to consider - I'm really agressive about seeing as much of my code as I can in one go - a 9pt font on a 1200px high screen is really good. But, I don't let the fact that I see lots of code at once tempt me into puttint lots of code in one method.&lt;/p&gt;&#xA;" OwnerUserId="4099" LastActivityDate="2010-09-30T07:00:13.863" />
  <row Id="8463" PostTypeId="2" ParentId="380" CreationDate="2010-09-30T07:04:19.840" Score="1" ViewCount="" Body="&lt;p&gt;Covered parking.  I work near Phoenix, AZ and the temp can regularly climb over 110 degrees F (43 deg C) in the summer.  &lt;em&gt;&quot;But it's a dry heat.&quot;&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-30T07:04:19.840" />
  <row Id="8464" PostTypeId="2" ParentId="380" CreationDate="2010-09-30T07:23:00.263" Score="2" ViewCount="" Body="&lt;p&gt;At my place we have a few perks already mentioned in other answers but what we do have that I think is great is our 4 day week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of working 8:30-5 Mon to Fri it's 7:30-6 Mon to Thur. An extra day to spend with family, pet projects and sometimes just doing nothing. (Plus the new hours means I'm never caught in traffic)&lt;/p&gt;&#xA;" OwnerUserId="680" LastActivityDate="2010-09-30T07:23:00.263" />
  <row Id="8465" PostTypeId="2" ParentId="8427" CreationDate="2010-09-30T07:28:09.833" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Does anyone use ohloh.net for their open source projects?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Clearly yes ... though not necessarily in the sense that you mean.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is this a good alternative to Github? Or are they completely different?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;They are rather different.  Github (and SourceForge, GoogleCode and a few others) are more or less &quot;full spectrum&quot; project hosting sites.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ohloh.net is more a social site for open source developers.  It is a good place for finding out who is &quot;big&quot;, who contributes to what projects, and what projects are valuable to the community.  The project download service is secondary to this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You cannot host a project on Ohloh because (for a start) there is no facility for code checkin. &lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-09-30T07:28:09.833" CommentCount="1" />
  <row Id="8466" PostTypeId="2" ParentId="1745" CreationDate="2010-09-30T07:40:51.020" Score="13" ViewCount="" Body="&lt;p&gt;That learning the syntax is the hard part. &lt;/p&gt;&#xA;" LastActivityDate="2010-09-30T07:40:51.020" CommunityOwnedDate="2010-09-30T07:40:51.020" />
  <row Id="8467" PostTypeId="1" AcceptedAnswerId="8507" CreationDate="2010-09-30T07:50:09.853" Score="3" ViewCount="191" Body="&lt;p&gt;I'm trying to learn a bit about the Spring framework and I'm wondering if anyone can recommend an open source project using it so that I can have a look through the source. Any other recommendations around learning Spring would be helpful too.&lt;/p&gt;&#xA;" OwnerUserId="3179" LastActivityDate="2010-09-30T12:48:10.767" Title="Example of an open source project using Spring" Tags="&lt;learning&gt;&lt;java&gt;&lt;open-source&gt;&lt;spring&gt;" AnswerCount="1" />
  <row Id="8468" PostTypeId="2" ParentId="7045" CreationDate="2010-09-30T07:54:43.330" Score="1" ViewCount="" Body="&lt;p&gt;As far as I'm concerned, &lt;code&gt;if&lt;/code&gt; is a function that takes a logical predicate and returns a boolean, so it should syntactically look like a function, that is like that: &lt;code&gt;foo()&lt;/code&gt;, because that emphasizes the fact that it's one logical construct where the second part is an integral part of the first, and not two different constructs. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-09-30T07:54:43.330" />
  <row Id="8469" PostTypeId="2" ParentId="154" CreationDate="2010-09-30T08:07:31.320" Score="11" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/GAVMd.png&quot; alt=&quot;This is how I explain computer problems to my cat. My cat usually seems happier than me.&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While it is not specifically about programming, it is good for perspective.&lt;/p&gt;&#xA;" OwnerUserId="4025" LastActivityDate="2010-09-30T08:07:31.320" />
  <row Id="8471" PostTypeId="2" ParentId="8301" CreationDate="2010-09-30T08:30:08.450" Score="1" ViewCount="" Body="&lt;p&gt;I tend to take any job that is thrown at me if and only if:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I warn in advance about my skill level and possible implications and my boss decides that it is acceptable&lt;/li&gt;&#xA;&lt;li&gt;There is a guru level person who can (and probably will at some stage) help me to deal with something unexpected&lt;/li&gt;&#xA;&lt;li&gt;Read through some documentation, asked questions online, etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This way I am mostly insured against my boss and if someone goes wrong it is at least fixable.&lt;/p&gt;&#xA;" OwnerUserId="1045" LastActivityDate="2010-09-30T08:30:08.450" />
  <row Id="8472" PostTypeId="2" ParentId="8445" CreationDate="2010-09-30T08:34:21.977" Score="3" ViewCount="" Body="&lt;p&gt;Being &lt;em&gt;const&lt;/em&gt; correct emphasises the correctness of the design which I treat close to a similar issue which is not using cast operators; so not using cast and being const correct, minimal usage of mutable - all of &lt;strong&gt;these are pointers to measure how good the design is&lt;/strong&gt; but not the actual tools to solve the overall problem in hand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;P.S.:&lt;/strong&gt; I got totally convinced of &lt;code&gt;const&lt;/code&gt; once I understood the &lt;em&gt;correctness&lt;/em&gt; in using it ;)&lt;/p&gt;&#xA;" OwnerUserId="4154" LastActivityDate="2010-09-30T08:34:21.977" CommentCount="1" />
  <row Id="8473" PostTypeId="1" CreationDate="2010-09-30T08:36:13.563" Score="0" ViewCount="242" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/272/when-someone-asks-you-what-you-do-what-do-you-say-e-g-programmer-developer-c&quot;&gt;When someone asks you what you do, what do you say (e.g. programmer, developer, code monkey)?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I have been programmer for quite a while now but yet not able to describe what I do daily, to non-technical people. I have tried it many times but failed. Some people even think that I doing some sort of hardware job and they do the software part (they basically use MS-Office). How do you handle these cases? how do you describe to them what you do on your job?&lt;/p&gt;&#xA;" OwnerUserId="123" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T18:36:54.943" LastActivityDate="2010-09-30T18:36:54.943" ClosedDate="2010-09-30T16:43:27.040" Title="How do you describe your job to non-technical people?" Tags="&lt;jobs&gt;&lt;non-programmers&gt;&lt;job-definition&gt;" AnswerCount="9" CommentCount="1" />
  <row Id="8474" PostTypeId="2" ParentId="1013" CreationDate="2010-09-30T08:37:36.823" Score="0" ViewCount="" Body="&lt;p&gt;Hi there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About 8 years ago, I worked for a company whose flagship product was a web based travel/holiday booking system. This was written in classic ASP, VB6 and SQL Server. The product was used by many customers, but some of those still booked/searched for holidays using  a technology called &lt;a href=&quot;http://en.wikipedia.org/wiki/Viewdata---&quot; rel=&quot;nofollow&quot;&gt;ViewData&lt;/a&gt;, which is also still used in travel agents in the UK (I don't know about other countries). ViewData looks like a TeleText/crappy DOS console application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We had to write a module to support ViewData, so that it could integrate with the flagship product. All I can recall about the development experience was:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The developer IDE was Notepad, saving&#xA;the files and running them under the&#xA;ViewData emulator.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I don't recall the language all that&#xA;well, but it felt a bit &lt;code&gt;COBOL-like&lt;/code&gt; and really sucked. It was hardly rich with syntax. The closet I can describe it is, trying to write a booking system using &lt;code&gt;DBase III&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I had to develop the &quot;UI&quot; like you&#xA;would for a QuickBasic (or &quot;your favourite DOS development software here&quot;) program by redrawing menu items and running a loop to capture keystorkes. I hadn't had to write a program like that for 4 years. That sucked since placing items on the screen wasn't all that easy. You had to position the text in specific columns on the screen. Not much fun, but was doable.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Testing the software was really&#xA;awkward, since I had to navigate&#xA;through many menu items to get the&#xA;single piece of code I wanted to&#xA;test. I couldn't skip parts of the&#xA;system to get the where I wanted to&#xA;be. To do that, I would have re-write&#xA;and hard code the system to get&#xA;straight to the code I wanted to&#xA;test. Doing that in itself would&#xA;likely break the system. Oh, those&#xA;where the days :)-&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'd rather execute a polar bear then work on another system like that again!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Really off topic, but to support my above point. I don't like those people you see on TV who do hunt polar bears, seals, etc - they are dickheads)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers.&#xA;Jas.&lt;/p&gt;&#xA;" OwnerUserId="3668" LastActivityDate="2010-09-30T08:37:36.823" CommunityOwnedDate="2011-02-01T07:56:02.387" />
  <row Id="8475" PostTypeId="2" ParentId="154" CreationDate="2010-09-30T08:40:42.740" Score="5" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/fHZhX.gif&quot; alt=&quot;Dilbert&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This was exactly what was happening on a game I was working on many years ago, the schedule was tied to the date of the E3 trade show and all the tasks required to complete the project were scaled to fit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had the 'scale the timelines to fit an end date' problems a few times. How I hate Microsoft Project and those meddlesome Gantt Charts.&lt;/p&gt;&#xA;" OwnerUserId="914" LastActivityDate="2010-09-30T08:40:42.740" />
  <row Id="8477" PostTypeId="2" ParentId="8473" CreationDate="2010-09-30T08:46:47.747" Score="0" ViewCount="" Body="&lt;p&gt;I just say that I program the computer that is embedded in the cool system they will use and I go on describing that system and the usage they will benefit from it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently I work for spacecrafts. I tell stories about TV shows and Internet being transmitted between Europe and America through space or pictures of their home taken from space and brought by Google maps to them.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-09-30T08:46:47.747" />
  <row Id="8478" PostTypeId="2" ParentId="8473" CreationDate="2010-09-30T08:56:10.917" Score="2" ViewCount="" Body="&lt;p&gt;I describe the product I build instead. Much simpler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's 10x better if your work has a mobile app associated with it. Then all you need to do is whip out the phone and say &quot;I made that&quot; and let them play with it (or if it's no fun, give them a demo).&lt;/p&gt;&#xA;" OwnerUserId="12" LastActivityDate="2010-09-30T08:56:10.917" />
  <row Id="8479" PostTypeId="1" CreationDate="2010-09-30T09:06:42.320" Score="3" ViewCount="206" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/2699/what-was-your-most-difficult-bug-hunt-and-how-did-you-find-it-and-kill-it&quot;&gt;What was your most difficult bug hunt and how did you find it and kill it?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Right now I'm resolving one single bug with user rights and the resolution lasts two weeks. It's just awful. I think it's the most complicated bug I've ever seen so far.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What about you?&lt;/p&gt;&#xA;" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T16:45:53.827" LastActivityDate="2010-09-30T16:45:53.827" ClosedDate="2010-09-30T12:26:38.447" Title="What was the most complicated bug(to resolve) in your life?" Tags="&lt;experience&gt;&lt;bugs&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="8480" PostTypeId="2" ParentId="8454" CreationDate="2010-09-30T09:10:16.707" Score="3" ViewCount="" Body="&lt;p&gt;The argument that open source &quot;will reduce its security and validity as people reveal loopholes&quot; is completely invalid. A secure product shouldn't have loopholes so when it is made open source there should be no loopholes to reveal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your product has loopholes that would be revealed by making it open source that isn't security, that's just hiding your lack of security behind your compiler. You might get away with it for a while, but eventually someone is going to reverse engineer your code and find one of those loopholes (that you may not even have known about)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would trust an open source security product far more than I would trust a closed source one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The security expert Bruce Schneier sums it up nicely:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If I take a letter, lock it in a safe,&#xA;  hide the safe somewhere in New York,&#xA;  then tell you to read the letter,&#xA;  that's not security. That's obscurity.&#xA;  On the other hand, if I take a letter&#xA;  and lock it in a safe, and then give&#xA;  you the safe along with the design&#xA;  specifications of the safe and a&#xA;  hundred identical safes with their&#xA;  combinations so that you and the&#xA;  world's best safecrackers can study&#xA;  the locking mechanism -and you still&#xA;  can't open the safe and read the&#xA;  letter - that's security.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;a href=&quot;http://www.schneier.com/book-applied-2preface.html&quot; rel=&quot;nofollow&quot;&gt;Bruce Schneier - Applied Cryptography&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="134" LastActivityDate="2010-09-30T09:10:16.707" />
  <row Id="8481" PostTypeId="2" ParentId="8479" CreationDate="2010-09-30T09:27:48.567" Score="3" ViewCount="" Body="&lt;p&gt;We once had a regression between two release versions.&#xA;After some painful manual delta debugging we found the regression happens even when the relevant code does not change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After some more debugging we found a numerical instable algorithm by some other guys. Different compiler optimzation lead to fluctuation of order e-16. The instable algorithm amplified this quantum noise.&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-09-30T11:17:31.627" LastActivityDate="2010-09-30T11:17:31.627" />
  <row Id="8482" PostTypeId="2" ParentId="8479" CreationDate="2010-09-30T09:32:56.283" Score="1" ViewCount="" Body="&lt;p&gt;Maybe not the hardest one until now but at the time it was harder to solve than anything I encountered before: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A grid that I added some filter functionality to suddenly stopped working after being used many times a day for about a week. As I came fresh from school there was not much debugging information forseen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After about a day of testing and thinking I found out that the day and month got swapped while sending the query to the SQL server due to localization. This error was ofcourse completely invisible until the 13th of the month, which is when the error started to appear constantly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By figuring this out I realized it's important to &quot;think outside the box&quot; while debugging. For a starting developer this was very interesting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think most of the bugs that will be posted here will be cases like this, where there is an easy fix but hard to find out about.&lt;/p&gt;&#xA;" OwnerUserId="2820" LastActivityDate="2010-09-30T09:32:56.283" />
  <row Id="8483" PostTypeId="2" ParentId="8473" CreationDate="2010-09-30T09:41:44.850" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&quot;I'm a programmer.&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;What do you program?&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;I mainly work on dynamic websites .. where you can log in and that have content that comes from a database .. like shopping websites .. sites like facebook .. intranet sites .. &quot; (I stop talking when I see they're either not following anymore or (pretend to) understand what I mean)&lt;/li&gt;&#xA;&lt;li&gt;&quot;Sounds interesting. Can you make a website for my barber shop?&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2820" LastActivityDate="2010-09-30T09:41:44.850" CommentCount="2" />
  <row Id="8484" PostTypeId="2" ParentId="279" CreationDate="2010-09-30T09:51:52.913" Score="1" ViewCount="" Body="&lt;p&gt;I'd like to second @Josip's request for Java-like enums; a while ago I posted an entry on my blog &lt;a href=&quot;http://www.edcourtenay.co.uk/2009/03/25/FakeJavaEnumsUsingCExtensionMethods.aspx&quot; rel=&quot;nofollow&quot;&gt;http://www.edcourtenay.co.uk/2009/03/25/FakeJavaEnumsUsingCExtensionMethods.aspx&lt;/a&gt; that covers how Java enums can be 'faked' in C# using extension methods, using the Planets example from the online Java documentation as a starting point.&lt;/p&gt;&#xA;" OwnerUserId="4162" LastActivityDate="2010-09-30T09:51:52.913" CommunityOwnedDate="2011-05-10T09:21:11.253" CommentCount="1" />
  <row Id="8485" PostTypeId="2" ParentId="8479" CreationDate="2010-09-30T10:03:13.520" Score="0" ViewCount="" Body="&lt;p&gt;It has to do with threads but, surprisingly, not with concurrency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When accessing some legacy C++ code via Java Native Interface, it occasionally crashed when called several times in a row. I knew that the C++ code was not thread-safe (it was quite complex and weirdly written, using some &lt;code&gt;static&lt;/code&gt; variables to communicate between functions), and therefore I had serialized access to it using a &lt;code&gt;synchronized&lt;/code&gt; lock around the Java &lt;code&gt;native&lt;/code&gt; method declaration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since I had the proper lock in place, I couldn't suspect that the crash could have something to do with threads, and so it was quite surprising to finally find out that the crashes were due to &lt;em&gt;consecutive calls from different threads&lt;/em&gt;, even though there absolutely never were more than one thread concurrently in the native code (I even double-checked that by using an extra lock in the native code too). Modifying the call stack so that there was just one specific, dedicated thread through which all calls to the native side were routed, fixed the issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I still don't know the root cause, but the code has behaved rock-solid since then. &lt;a href=&quot;http://stackoverflow.com/questions/1157836/invoking-time-consuming-jni-task-as-a-thread&quot;&gt;Here's&lt;/a&gt; a SO question on it.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-09-30T10:54:27.367" LastActivityDate="2010-09-30T10:54:27.367" />
  <row Id="8486" PostTypeId="2" ParentId="8479" CreationDate="2010-09-30T10:05:06.200" Score="1" ViewCount="" Body="&lt;p&gt;The bug that took me longest to pinpoint was one where we got sporadic 500 errors and only at a few customers. The error would be in batches, some days it worked fine, some days it occurred all the time. I tried a long time to find how our code could possibly cause it, until I figured out that it was due to a bug in IIS and how it handled client certificates. We switched away from client certificates and the bug disappeared.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most difficult set of bugs to solve was when I had the bright idea to try my hand at writing an Outlook add-in, in Delphi, using the COM bridging that it offers. Figuring out all the little things the documentation doesn't tell you anywhere about how to interact with Outlook's COM API without crashing the entire application was not my happiest time.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-09-30T10:05:06.200" />
  <row Id="8487" PostTypeId="1" CreationDate="2010-09-30T10:12:18.047" Score="8" ViewCount="247" Body="&lt;p&gt;I'd like to see (good) examples of optimizations performed by compilers (static and JIT). Why?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;To learn what we don't have to optimize ourselves (often leading to better code)&lt;/li&gt;&#xA;&lt;li&gt;To be amazed&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1065" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:09:38.100" LastActivityDate="2010-11-16T15:09:38.100" Title="Compiler optimization examples" Tags="&lt;compilers&gt;&lt;optimization&gt;&lt;jit&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="2" />
  <row Id="8488" PostTypeId="2" ParentId="8415" CreationDate="2010-09-30T10:36:39.737" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/netframework/aa663328.aspx&quot; rel=&quot;nofollow&quot;&gt;Windows Workflow Foundation&lt;/a&gt; allows you to brainstorm and develop algorithms in a flowchart way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://www.windowsworkflowfoundation.eu/images/Sequential.jpg&quot; alt=&quot;WWF Chart&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-30T10:36:39.737" CommentCount="3" />
  <row Id="8489" PostTypeId="2" ParentId="8093" CreationDate="2010-09-30T10:41:35.043" Score="3" ViewCount="" Body="&lt;p&gt;De Morgan's laws, about transforming Boolean &quot;and&quot; and &quot;or&quot; relative to negations, and a few related more elementary tidbits about Boolean logic (such as double negation).&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-09-30T10:41:35.043" />
  <row Id="8491" PostTypeId="2" ParentId="4475" CreationDate="2010-09-30T11:04:38.563" Score="0" ViewCount="" Body="&lt;p&gt;Invite Share handles invites for 37 different services, that's why you can't submit a beta to it... I don't think there is any open beta testing service, I guess it's the best thing to send your beta to several software sites. Sites like &lt;a href=&quot;http://www.filehippo.com/&quot; rel=&quot;nofollow&quot;&gt;FileHippo&lt;/a&gt; even allow users to show/hide betas and their updates...&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-09-30T11:04:38.563" />
  <row Id="8492" PostTypeId="2" ParentId="8473" CreationDate="2010-09-30T11:28:57.737" Score="0" ViewCount="" Body="&lt;p&gt;I say I make video games. (even when I'm not in a video game company, because in the end I went to programming for videogame making and spend almost all my spare time on game projects).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they are young, they start to see me like a rockstar (even if I didnt make anywthing noticeble yet).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they are old, they are not interested in going farther in this discussion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they are programmer, they often answer something like &quot;ouch&quot; because a lot of programmers know that video game making is technically a labor (of love if you have chance or if you make it like that).&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-09-30T11:28:57.737" />
  <row Id="8493" PostTypeId="2" ParentId="8445" CreationDate="2010-09-30T11:39:26.827" Score="15" ViewCount="" Body="&lt;p&gt;Well I wasn't convinced until I tried to embrace the philosophy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I first started by putting const to really read-only members of my most basic class members and member functions arguments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From there, I couldnt compile anymore. Then I persevered in going in the code using those basic classes, see if the previously const additions were really legitimate compared to the use I made of them. It helped me fix some bugs on the way as I added constness to other parts of the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's contagious. Most of the code got even more constness and I found easier to debug it because it makes you confident that the compiler will stop you if you start modifynig something you shouldn't. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once I got the application running again, it was faster (had to change some algorithms that I've discovered weren't right for the job), with a lot less bugs and easier to understand when reading the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was convinced. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I think that it's even better when you're using a lot of assertions in addition to constness because it makes you feel confident when you have to write new code or modify the current code. You know the compiler will stop you if necessary. It let you forget about having to check everything you shouldn't modify and then you have more thinking time for more business-specific thinking, or architerctural thinking.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-09-30T11:39:26.827" CommentCount="3" />
  <row Id="8494" PostTypeId="2" ParentId="8384" CreationDate="2010-09-30T11:45:37.810" Score="-1" ViewCount="" Body="&lt;p&gt;I Like to put an easter egg in my study projects with the other students not knowing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Putting a secret button somewhere off the form, but when resized and looked correctly u'll spot it.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mostly these easter eggs goes about our teachers (Luckily I've never been caught by a teacher!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;for example one of my teachers likes teasing beginning students with A b = new C() and then asking what b is/means. ( a reference to a object C which is of type A ;))&lt;/p&gt;&#xA;&#xA;&lt;p&gt;in my easter egg I would put&lt;/p&gt;&#xA;&#xA;&lt;p&gt;MessageBox.Show(&quot;mr .. says: A b = new C() , what is b?&quot;);&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Always fun when after we have gotten our grade, showing them the easter egg. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ps, its not always very nice what I put in those 'easter eggs/secrets'.. &lt;/p&gt;&#xA;" OwnerUserId="4168" LastActivityDate="2010-09-30T11:45:37.810" CommunityOwnedDate="2010-09-30T11:45:37.810" />
  <row Id="8495" PostTypeId="2" ParentId="8473" CreationDate="2010-09-30T11:50:09.533" Score="-1" ViewCount="" Body="&lt;p&gt;make a new project called Temp. Then put a button on the form, running the app. let them click on the button.. (offcourse nothing happens..)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then double click the button put a messagebox.show in the click event with the name of the person asking me.. Hello &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now someting DOES happen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I tell them that, everytime they press a button, I or my fellow programmers made sure something happend.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Works pretty good! Until you have to start explaining what else you do then make messages appear.. :P&lt;/p&gt;&#xA;" OwnerUserId="4168" LastActivityDate="2010-09-30T11:50:09.533" />
  <row Id="8496" PostTypeId="1" CreationDate="2010-09-30T11:57:00.533" Score="13" ViewCount="1442" Body="&lt;p&gt;I was wondering, when I'm finished with school and I have my Software Engineer diploma in my pocket. What can I earn? What's the maximum a SE can earn?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I even dare to ask THE question, what do you earn? :P &lt;/p&gt;&#xA;" OwnerUserId="4168" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-09-30T15:31:32.657" LastActivityDate="2010-09-30T23:38:51.857" ClosedDate="2010-09-30T23:57:05.073" Title="What's the salary a programmer can earn?" Tags="&lt;great-programmer&gt;&lt;salary&gt;&lt;startups&gt;&lt;grad-school&gt;" AnswerCount="13" CommentCount="7" FavoriteCount="3" />
  <row Id="8497" PostTypeId="2" ParentId="8487" CreationDate="2010-09-30T11:57:01.063" Score="4" ViewCount="" Body="&lt;p&gt;Someone once tried to examine optimizers in C code. They ran this code through various C compilers with different levels of optimization:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; main() {&#xA;      long i;&#xA;      double x;&#xA;&#xA;      for( i=0; i&amp;lt;100000; i++) {&#xA;           x = sin(.3)&#xA;      }&#xA;&#xA;      printf(&quot;%ld\n&quot;, i);&#xA; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;With &lt;code&gt;gcc&lt;/code&gt;, the code took about 20 seconds (that was in the age of the 486). With &lt;code&gt;gcc -O&lt;/code&gt;, it took so little time, they couldn't measure it anymore. What had happened?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First the compiler noticed that &lt;code&gt;x&lt;/code&gt; wasn't used anywhere, so it removed that:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; main() {&#xA;      long i;&#xA;&#xA;      for( i=0; i&amp;lt;100000; i++) {&#xA;           sin(.3)&#xA;      }&#xA;&#xA;      printf(&quot;%ld\n&quot;, i);&#xA; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;sin()&lt;/code&gt; is a function without side effects, so we don't need to call it if no one cares for the result:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; main() {&#xA;      long i;&#xA;&#xA;      for( i=0; i&amp;lt;100000; i++) {&#xA;      }&#xA;&#xA;      printf(&quot;%ld\n&quot;, i);&#xA; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The loop is empty, so we can remove that, too:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; main() {&#xA;      long i = 100000;&#xA;      printf(&quot;%ld\n&quot;, i);&#xA; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;A classical example of removing unused code.&lt;/p&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-09-30T11:57:01.063" CommentCount="8" />
  <row Id="8498" PostTypeId="2" ParentId="8473" CreationDate="2010-09-30T11:58:58.987" Score="0" ViewCount="" Body="&lt;p&gt;I'm an &lt;a href=&quot;http://en.wikipedia.org/wiki/Language_interpretation&quot; rel=&quot;nofollow&quot;&gt;interpreter&lt;/a&gt;. I translate ideas of people into a simple language that a computer can understand so it can support those people.&lt;/p&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-09-30T11:58:58.987" />
  <row Id="8499" PostTypeId="2" ParentId="8496" CreationDate="2010-09-30T12:01:12.490" Score="4" ViewCount="" Body="&lt;p&gt;I just graduated with a B.S. in C.S. and am earning $34,500 at my first job.  This is probably the lower end of the spectrum, and it probably has to do with me living in Louisiana (lower cost of living).&lt;/p&gt;&#xA;" OwnerUserId="3092" LastActivityDate="2010-09-30T12:01:12.490" CommentCount="6" />
  <row Id="8500" PostTypeId="2" ParentId="8496" CreationDate="2010-09-30T12:03:17.493" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It depends.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On where you live, what you do, who you work for, who your clients are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could certainly make well over $100K/yr once you're experienced and live in a place like silicon valley.  The absolute MOST you could make would probably be to be a VERY experienced, self employed software engineer consultant and land a government contract which requires a top secret clearance.  If you are ridiculously good, I could see getting near $200K/yr working at something like that (or more).&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-09-30T13:00:21.170" LastActivityDate="2010-09-30T13:00:21.170" CommentCount="9" />
  <row Id="8501" PostTypeId="2" ParentId="8473" CreationDate="2010-09-30T12:05:50.047" Score="0" ViewCount="" Body="&lt;p&gt;&quot;I make iPhone apps.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Their eyes light up, and then they start telling me about the great idea they have for an app, which usually duplicates functionality already in 20 projects in the App Store.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-09-30T12:05:50.047" />
  <row Id="8502" PostTypeId="2" ParentId="6031" CreationDate="2010-09-30T12:08:36.237" Score="2" ViewCount="" Body="&lt;p&gt;MySQL still has the advantage of being bigger than the forks and clones. Bigger in the sense of number of users and expertise that is available. It has taken a long time for MySQL to become a 'safe' choice to use for companies. That reputation wont be lost overnight, nor will it be gained by MariaDB soon either. In a commercial environment it matters and it will be hard to introduce MariaDB in a lot of places.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You mention migrating in your question. Migrating is hard, particularly for lower level 'stuff' and especially data storage. I wouldn't recommend it unless there was a specific benefit from doing it.&lt;/p&gt;&#xA;" OwnerUserId="1401" LastActivityDate="2010-09-30T12:08:36.237" />
  <row Id="8503" PostTypeId="2" ParentId="8496" CreationDate="2010-09-30T12:16:15.273" Score="4" ViewCount="" Body="&lt;p&gt;There are HUGE difference, depending on your status.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a freelance, it's common to get between $150K &amp;amp; $200K.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an employee, I don't know anyone that has more than $100K. And I know PLENTY that are under $45K.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-09-30T22:49:58.320" LastActivityDate="2010-09-30T22:49:58.320" CommentCount="2" />
  <row Id="8504" PostTypeId="2" ParentId="8496" CreationDate="2010-09-30T12:32:47.810" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.jobstats.co.uk/&quot; rel=&quot;nofollow&quot;&gt;for the UK&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-09-30T12:32:47.810" CommentCount="1" />
  <row Id="8505" PostTypeId="2" ParentId="8496" CreationDate="2010-09-30T12:34:55.480" Score="3" ViewCount="" Body="&lt;p&gt;Just for contrast, I describe how it is going in Hungary:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Absolute beginner starts from $4-$6 / hour, maybe a little more if you are lucky&lt;/li&gt;&#xA;&lt;li&gt;Junior programmer with some experience gets up to $7-$15 / hour (and that's the ceiling for most web developers)&lt;/li&gt;&#xA;&lt;li&gt;With more experience and in the non-web field it goes up to $25-$50 per hour and that's a quite well paid job in Hungary&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Going higher than that can be accomplished by becoming an architect or even better, a manager. Though the latter requires a whole different mindset.&lt;/p&gt;&#xA;" OwnerUserId="3530" LastEditorUserId="3530" LastEditorDisplayName="" LastEditDate="2010-09-30T20:39:42.710" LastActivityDate="2010-09-30T20:39:42.710" CommentCount="5" />
  <row Id="8506" PostTypeId="2" ParentId="4941" CreationDate="2010-09-30T12:41:34.957" Score="3" ViewCount="" Body="&lt;p&gt;You could try a message like: &quot;Faulty monitor, will shock on touch!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But just saying &quot;please don't touch the screen&quot; doesn't come off as impolite. Just think of all the people that insist on using coasters on coffee tables to avoid rings. I think most people are used to this sort of reaction and won't think any less of you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And while I'm not the kind to get upset with someone touching my monitor, I have been known to do it to others (don't shoot!) by mistake, and when they told me not to touch it I didn't take offense.&lt;/p&gt;&#xA;" OwnerUserId="4165" LastActivityDate="2010-09-30T12:41:34.957" CommentCount="1" />
  <row Id="8507" PostTypeId="2" ParentId="8467" CreationDate="2010-09-30T12:48:10.767" Score="2" ViewCount="" Body="&lt;p&gt;I'm sorry I can't give you some good recommendations myself, but a good place to start might be:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://sourceforge.net/search/?type_of_search=soft&amp;amp;words=spring&amp;amp;search=Search&quot; rel=&quot;nofollow&quot;&gt;http://sourceforge.net/search/?type_of_search=soft&amp;amp;words=spring&amp;amp;search=Search&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are at least a few projects using spring.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-30T12:48:10.767" CommentCount="1" />
  <row Id="8508" PostTypeId="2" ParentId="5513" CreationDate="2010-09-30T12:57:07.413" Score="1" ViewCount="" Body="&lt;p&gt;They need to be aware of various 'doomsday' scenarios. Computer, server, hard drive, whatever, breaks, isn't it great to have a backup? If you can't get them to agree on this concept, you can't move on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, what if they were asked to make a presentation, but on the third page, the client would like to see it with and without the graph. What would you do? Make a second copy with the changes. If they told you they didn't want the graph, would you throw away the 'version' with the graph? Probably not because you never know. If you can't get them to agree on this concept, you can't move on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you ever sent a file for review only to have the person change it? Did you keep your version? Did you have to give the file you sent them a different name because you know when they make changes it is too difficult to tell the difference or save them in the same folder? And aren't these names getting long? If you can't get them to agree on this concept, you can't move on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wouldn't it be nice if we has something that would just keep track of all of this for us? No more sending email attachments. No more wondering which one did the Boss make that change on, but I made another change and now we can't get them together. No more long file names trying to explain which 'version' we are on. If you can't get them to agree on this concept, you'll just havce to move on.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-30T12:57:07.413" />
  <row Id="8509" PostTypeId="2" ParentId="8473" CreationDate="2010-09-30T13:02:21.847" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;[moved to the correct question &lt;a href=&quot;http://programmers.stackexchange.com/questions/272/when-someone-asks-you-what-you-do-what-do-you-say-e-g-programmer-developer-c/8510#8510&quot;&gt;over there&lt;/a&gt;]&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-30T13:02:21.847" />
  <row Id="8510" PostTypeId="2" ParentId="272" CreationDate="2010-09-30T13:03:08.890" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;h3&gt;I'm a software developer.&lt;/h3&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Then they normally follow up with a nod that says that means I &lt;em&gt;can't&lt;/em&gt; fix their virus ridden Windows 98 machine. Which is the goal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm talking to peers I will say I normally do Java / PHP development, server side applications, and then &lt;em&gt;just because I can&lt;/em&gt; I'll throw a buzzword laden sentence at them.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I normally use MongoDB and Node.js to communicate through WebSockets and HTML5 to draw Canvas graphs indicating the time of day in seconds since epoch; but I would &lt;em&gt;love&lt;/em&gt; to be using Redis to support Web 2.0 dynamic based sites in jQuery and CSS.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That normally gets a good laugh.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-30T13:03:08.890" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="8511" PostTypeId="1" AcceptedAnswerId="8515" CreationDate="2010-09-30T13:15:43.013" Score="16" ViewCount="957" Body="&lt;p&gt;How should older programmers respond when interviewed and 'confronted' with questions similar to &quot;we are a young bunch, will you be able to fit into our culture?&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What about the experience an older programmer packs? (says it all really)&lt;/p&gt;&#xA;" OwnerUserId="4174" LastActivityDate="2010-11-30T09:34:47.377" Title="How should older programmers respond when interviewed..." Tags="&lt;experience&gt;&lt;interview&gt;" AnswerCount="14" CommentCount="8" FavoriteCount="1" />
  <row Id="8513" PostTypeId="2" ParentId="8511" CreationDate="2010-09-30T13:21:10.290" Score="6" ViewCount="" Body="&lt;p&gt;I think as long as you can show you're a team player, and come across as friendly in interview, it shouldn't be a problem. To be honest - they've got a good idea of how old you are from your CV - so they've already part made up their mind that it won't be a problem.&lt;/p&gt;&#xA;" OwnerUserId="550" LastActivityDate="2010-09-30T13:21:10.290" />
  <row Id="8514" PostTypeId="2" ParentId="272" CreationDate="2010-09-30T13:23:05.750" Score="6" ViewCount="" Body="&lt;p&gt;For most people over 60, I'm &quot;in computers&quot;.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-09-30T13:23:05.750" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="8515" PostTypeId="2" ParentId="8511" CreationDate="2010-09-30T13:23:19.627" Score="19" ViewCount="" Body="&lt;p&gt;Well, that's a legitimate question.  Some older people can get along with younger people really well; others, not so well.  You can be very good at what you do, but still not fit in will with the group who's doing it with you, and that can be bad both for you and for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say, forget about &quot;what about all my experience?&quot;  You wouldn't have gotten to the point in the interview where they're asking about fitting in if they didn't think you were qualified.  Interpret this as &quot;we think you're pretty good, but we want to make sure you don't end up working somewhere where cultural and communication issues will make it a miserable experience for you, and for us.&quot;&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-09-30T13:23:19.627" CommentCount="11" />
  <row Id="8516" PostTypeId="2" ParentId="8473" CreationDate="2010-09-30T13:25:41.540" Score="0" ViewCount="" Body="&lt;p&gt;I tell them that I work on the software that goes on the CD that ships with every product that we sell.&lt;/p&gt;&#xA;" OwnerUserId="749" LastActivityDate="2010-09-30T13:25:41.540" />
  <row Id="8517" PostTypeId="2" ParentId="4941" CreationDate="2010-09-30T13:32:32.290" Score="2" ViewCount="" Body="&lt;p&gt;With touch screen devices becoming more common, it will be harder to keep people from touching your screen. I find myself reaching for the screen on my laptop because my primary device is an iPad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So don't worry about it and clean the screen after they leave. Presumably, if you are discussing something important, you probably don't want to interrupt the flow of ideas by interrupting with something that's totally irrelevant to the conversation.&lt;/p&gt;&#xA;" OwnerUserId="749" LastActivityDate="2010-09-30T13:32:32.290" CommentCount="1" />
  <row Id="8518" PostTypeId="2" ParentId="4941" CreationDate="2010-09-30T13:37:52.407" Score="11" ViewCount="" Body="&lt;p&gt;When they're about to touch it blurt out &quot;Don't!! You'll get a shock!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When they say &quot;Really?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You say, &quot;Not yet, but if people keep putting their finger prints on my monitor, I'm planning to hook something up.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then smile.  ... the smile's important.  ;-)&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-30T13:37:52.407" />
  <row Id="8519" PostTypeId="2" ParentId="272" CreationDate="2010-09-30T13:39:22.833" Score="0" ViewCount="" Body="&lt;p&gt;I say I'm an embedded firmware developer.  Then I briefly explain what that means, by giving examples of ordinary devices that have microcontrollers in them (e.g. microwave oven, automobile cruise control, DVR etc.).&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-09-30T13:39:22.833" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="8520" PostTypeId="2" ParentId="4941" CreationDate="2010-09-30T13:39:38.347" Score="2" ViewCount="" Body="&lt;p&gt;Get a touch screen and write a small app that screams &quot;Hands off perve!&quot; in a ladies voice.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-09-30T13:39:38.347" />
  <row Id="8521" PostTypeId="2" ParentId="4941" CreationDate="2010-09-30T13:46:59.870" Score="2" ViewCount="" Body="&lt;p&gt;I just wrote a little sign &quot;No Fingerprints Please&quot;, and taped it to the bottom of the monitor. Seems to work.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-09-30T13:46:59.870" />
  <row Id="8522" PostTypeId="2" ParentId="4941" CreationDate="2010-09-30T13:50:10.407" Score="0" ViewCount="" Body="&lt;p&gt;Intercept their fingers mid-air. The discomfort should be enough to warrant immunity after the second time. You're welcome.&lt;/p&gt;&#xA;" OwnerUserId="1200" LastActivityDate="2010-09-30T13:50:10.407" CommentCount="1" />
  <row Id="8523" PostTypeId="2" ParentId="8496" CreationDate="2010-09-30T13:56:17.967" Score="5" ViewCount="" Body="&lt;p&gt;As the others have stated, it can vary widely based on your experience and position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing I've learned in my career:&#xA;&lt;br&gt;&#xA;&lt;strong&gt;You will make what YOU think you are worth!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For many years as a contractor, I had this pattern when finding a new contract (since I was looking often):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;They like my resume, interview for job, interview goes well.&lt;/li&gt;&#xA;&lt;li&gt;They ask what salary/hourly rate I want&lt;/li&gt;&#xA;&lt;li&gt;I give a number I like, which is higher than average&lt;/li&gt;&#xA;&lt;li&gt;They respond, &quot;Ooh, that's a little high.&quot;&lt;/li&gt;&#xA;&lt;li&gt;I wait.&lt;/li&gt;&#xA;&lt;li&gt;They come back with an offer at or near what I'm asking (sometimes some back and forth)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I've NEVER gotten to the stage where they are asking my salary, and NOT gotten a job offer because my request was too high!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I will admit I had to drop my standards after the .com implosion to get past the recruiters.  5 months of unemployment will do that :)&lt;/p&gt;&#xA;" OwnerUserId="3073" LastActivityDate="2010-09-30T13:56:17.967" />
  <row Id="8524" PostTypeId="2" ParentId="8450" CreationDate="2010-09-30T13:59:00.277" Score="0" ViewCount="" Body="&lt;p&gt;Is Emacs an IDE? If so, Emacs.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-09-30T13:59:00.277" CommentCount="4" />
  <row Id="8525" PostTypeId="2" ParentId="8402" CreationDate="2010-09-30T14:00:19.463" Score="2" ViewCount="" Body="&lt;p&gt;The problem with that specific question is that it's almost a trick question.  With one particular insight, you'll easily come up with O(n), otherwise you'll struggle to get better than O(n log n).  It almost reduces to &quot;Have you seen this one before?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure there are any good algorithmic questions.  If you asked one based on graph theory, say, it would depend on how familiar the interviewee was with graph theory - and, if you hire him or her, he or she could be up to speed on graph theory fairly quickly.  Again, we're back to &quot;Have you been exposed to this before?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There isn't time in a regular interview to do serious problem-solving, and I approach things differently when I can sit down, use Wikipedia, and generally take some time to figure things out.  There probably isn't time for the interviewer to carefully discuss what the interviewee knows in detail and pick out a suitable algorithmic question.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-30T14:00:19.463" CommentCount="5" />
  <row Id="8526" PostTypeId="2" ParentId="8071" CreationDate="2010-09-30T14:10:06.023" Score="1" ViewCount="" Body="&lt;p&gt;There was a time I brought up what I thought a legitimate concern (and still do think it was legitimate), argued that not fixing that was going to cut into productivity, and was told &quot;Well, of course you won't be productive if that's going to be your attitude about it.&quot;  Besides being insulting and patronizing, this is as clear a signal as you can get that the problem will not be fixed, and that any further problems you run into are very unlikely to get fixed.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-30T14:10:06.023" />
  <row Id="8527" PostTypeId="2" ParentId="272" CreationDate="2010-09-30T14:14:42.380" Score="2" ViewCount="" Body="&lt;p&gt;For fun with other software engineers I know I tend to go with &quot;Code Poet&quot;! (We had a long running joke/debate in our office about whether we were Code Poets or Code Ninjas. I think in the end we were all losers ;)).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And for marketing... Blue-sky-solutioneer, because they're mental and like made up nonsense titles. That last one is a joke. Honest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For most people I simply go with Software Engineer, occasionally Software Designer - I never use Programmer or Developer.&lt;/p&gt;&#xA;" OwnerUserId="3890" LastActivityDate="2010-09-30T14:14:42.380" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="8528" PostTypeId="2" ParentId="8450" CreationDate="2010-09-30T14:21:44.530" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://monodevelop.com/&quot; rel=&quot;nofollow&quot;&gt;MonoDevelop&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;..as this is what I use on OSX as well.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-30T14:21:44.530" />
  <row Id="8529" PostTypeId="2" ParentId="8511" CreationDate="2010-09-30T14:25:09.740" Score="4" ViewCount="" Body="&lt;p&gt;I'd ask if they knew what they were getting. If you pair a younger and an older person, there is going to be friction. That can be good or bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to stabilize a young genius (you know the type: Reckless, fearless, prone to making &quot;small&quot; last minute changes to code that is about to be installed in production), then pairing him with an experienced buff can make things easier for everyone. But both people must understand what the goal of this setup is. Otherwise, they'll just freak each other out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they know the shop knows they lack experience and want to learn from you, good. If they have no time, just need another pair of hands and there is just 0.2% blood left in the adrenaline system, things will become unpleasant eventually (you will seem to be &quot;slow&quot; while they will look &quot;stupid&quot; to you).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From my personal experience: I once worked with a guy who was 30 years my senior (not retiring next year but not too far off, either). He knew the system while I was pretty green. OTOH, when I found something that was important, I would bug him to fix it until we could do it. That meant we never broke the critical things during production hours but we also started to change things; older people lean towards &quot;if it works, don't touch it&quot; which causes the whole system to rot. So it was win-win but mostly because our manager clearly stated &quot;I want you two to work together so we make progress but not the wrong kind.&quot;&lt;/p&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-09-30T14:25:09.740" CommentCount="3" />
  <row Id="8530" PostTypeId="2" ParentId="7629" CreationDate="2010-09-30T14:26:17.713" Score="1" ViewCount="" Body="&lt;p&gt;Methods should be short&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most methods should use most fields in a class.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Choose your names well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;E.g read the &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0132350882&quot; rel=&quot;nofollow&quot;&gt;Clean Code&lt;/a&gt; book&lt;/p&gt;&#xA;" OwnerUserId="1114" LastActivityDate="2010-09-30T14:26:17.713" />
  <row Id="8531" PostTypeId="2" ParentId="8348" CreationDate="2010-09-30T14:32:33.993" Score="0" ViewCount="" Body="&lt;p&gt;I did some of the Microsoft Certification stuff in C# and .Net a few years ago, mostly because it helped get my employer on the Microsoft Partnership programme. In terms of what I learned, there was a lot of information in the course and it was useful to patch up a few holes in my existing knowledge that I had picked up from developing with those tools but probably not worth the cost of the course in it's own right.  Reading through some textbooks and doing some independant learning would have been as good for that. The real benefit was certainly in terms of the partnership programme and in terms of later employment.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-09-30T14:32:33.993" />
  <row Id="8532" PostTypeId="2" ParentId="6834" CreationDate="2010-09-30T14:36:17.077" Score="1" ViewCount="" Body="&lt;p&gt;Suggest code, but don't touch it.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-30T14:36:17.077" />
  <row Id="8533" PostTypeId="2" ParentId="8071" CreationDate="2010-09-30T14:38:19.817" Score="4" ViewCount="" Body="&lt;p&gt;I'd ask this question:  What happens when somebody who 1) is sensible and 2) has a bit of authority tries to fix things that are obviously broken?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do the problems tend to get fixed?  (&quot;You've found an option that improves our bandwidth by a factor of ten?  Good Lord, what are we waiting for?&quot;)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do they get acknowledged as problems, but the excuses for why they're not being fixed sound plausible?  (&quot;Yeah, our bandwidth is like a coffee can with a string, but the options around here suck so unless we're willing to relocate....&quot;)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do they get ignored or brushed-off?  (&quot;A better service plan just isn't in the budget.  We've been making do this long, so just deal.&quot;)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does ego interfere with any attempted solution?  (&quot;I worked damn hard choosing the best option for our needs!  Who are you to tell me I screwed up?&quot;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does the culture encourage putting a bullet in the messenger?  (&quot;Looking to spend some company money so you can download porn after-hours, eh?&quot;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No work environment is perfect.  Everybody makes mistakes.  The important thing is, do those mistakes get corrected, or entrenched?  Minor problems aren't so minor when any attempt to correct them is met with &quot;That's just how we &lt;b&gt;do&lt;/b&gt; things around here now &lt;b&gt;STFU!&lt;/b&gt;&quot;&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-30T14:38:19.817" CommentCount="2" />
  <row Id="8535" PostTypeId="2" ParentId="6834" CreationDate="2010-09-30T14:44:44.947" Score="24" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Backwards Debugging&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Visual Studio 2010 lets me &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd264915%28VS.100%29.aspx&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;debug backwards&lt;/strong&gt; with IntelliTrace.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never again will I have to re-live the moment where I hit F10 one too many times and have to restart debugging.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-30T14:44:44.947" CommentCount="6" />
  <row Id="8536" PostTypeId="2" ParentId="8450" CreationDate="2010-09-30T14:48:09.997" Score="0" ViewCount="" Body="&lt;p&gt;I can't believe no one has said &lt;strong&gt;&lt;em&gt;Crimson Editor&lt;/em&gt;&lt;/strong&gt;...&lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-09-30T14:48:09.997" CommentCount="1" />
  <row Id="8537" PostTypeId="2" ParentId="8269" CreationDate="2010-09-30T14:48:10.497" Score="0" ViewCount="" Body="&lt;p&gt;There is a type of radical laziness- when I was at school I would go to such great lengths to avoid doing my homework that I ended up working harder at evasions than I would have if I had done my homework. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this trait has helped me as a programmer because I will work hard to avoid having to do a job twice. This results in DRY code and interface designs that make things as easy as possible for users so that I don't have to spend too much time supporting them.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-09-30T14:48:10.497" CommunityOwnedDate="2010-09-30T14:48:10.497" />
  <row Id="8538" PostTypeId="2" ParentId="8487" CreationDate="2010-09-30T14:52:31.113" Score="2" ViewCount="" Body="&lt;p&gt;When I wrote the compiler for my implementation of ECMAScript I noticed that I could not perform recursion to a depth that was greater than 3000 calls. To me this was unacceptable so after a bit of experimentation I came up with the idea of replacing the return value with the arguments that were passed recursively. With this in place recursion became a viable option when writing code for my implementation.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public IDynamic Call(IDynamic thisObject, Args args)&#xA;{&#xA;    var engine = Engine.Instance.Value; // Thread Local&#xA;    var lexicalEnviroment = Scope.NewDeclarativeEnviroment();&#xA;    var thisBinding = thisObject ?? engine.GlobalEnviroment.GlobalObject;&#xA;    var newContext = new ExecutionContext(lexicalEnviroment, thisBinding);&#xA;    var result = default(IDynamic);&#xA;    var currentArgs = args;&#xA;&#xA;    engine.EnterContext(newContext);&#xA;    do&#xA;    {&#xA;        result = Function.Value(newContext, currentArgs);&#xA;        currentArgs = result as Args;&#xA;    } while (currentArgs != null);&#xA;    engine.LeaveContext();&#xA;&#xA;    return result;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't believe that you would ever see this technique used in a professional context. Given the current code a strong relationship is implied &lt;code&gt;(run-time -&amp;gt; compiler)&lt;/code&gt; and there really shouldn't be. I would expect any proper compiler would perform tail-call optimizations on the code itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a proper example of tail-call optimization:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;F#&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;let rec inner value input state =&#xA;    let r = p input state&#xA;    if r.IsEmpty then &#xA;        value, state, input &#xA;    else &#xA;        inner (value @ [r.Head.Value]) r.Head.Input r.Head.State&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Reflected CIL as C#&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;internal static Tuple&amp;lt;FSharpList&amp;lt;a&amp;gt;, b, LazyList&amp;lt;c&amp;gt;&amp;gt; inner@242&amp;lt;a, b, c&amp;gt;(FSharpFunc&amp;lt;LazyList&amp;lt;c&amp;gt;, FSharpFunc&amp;lt;b, FSharpList&amp;lt;Result&amp;lt;a, b, c&amp;gt;&amp;gt;&amp;gt;&amp;gt; p, FSharpList&amp;lt;a&amp;gt; value, LazyList&amp;lt;c&amp;gt; input, b state)&#xA;{&#xA;    while (true)&#xA;    {&#xA;        FSharpList&amp;lt;Result&amp;lt;a, b, c&amp;gt;&amp;gt; r = FSharpFunc&amp;lt;LazyList&amp;lt;c&amp;gt;, b&amp;gt;.InvokeFast&amp;lt;FSharpList&amp;lt;Result&amp;lt;a, b, c&amp;gt;&amp;gt;&amp;gt;(p, input, state);&#xA;        if (r.get_TailOrNull() == null)&#xA;        {&#xA;            return new Tuple&amp;lt;FSharpList&amp;lt;a&amp;gt;, b, LazyList&amp;lt;c&amp;gt;&amp;gt;(value, state, input);&#xA;        }&#xA;        state = r.Head.state;&#xA;        input = r.Head.input;&#xA;        value = Operators.op_Append&amp;lt;a&amp;gt;(value, FSharpList&amp;lt;a&amp;gt;.Cons(r.Head.value, FSharpList&amp;lt;a&amp;gt;.get_Empty()));&#xA;        p = p;&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Notice how the compiler is simply reusing the same stack frame in a while loop. This is very similar to what I implemented but without the unnecessary friendliness between the compiler and the run-time.&lt;/p&gt;&#xA;" OwnerUserId="712" LastEditorUserId="712" LastEditorDisplayName="" LastEditDate="2010-10-01T16:14:37.427" LastActivityDate="2010-10-01T16:14:37.427" />
  <row Id="8539" PostTypeId="2" ParentId="6834" CreationDate="2010-09-30T14:52:44.080" Score="10" ViewCount="" Body="&lt;p&gt;I was very impressed with Eclipse's &lt;a href=&quot;http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.jdt.doc.user/reference/ref-menu-refactor.htm&quot; rel=&quot;nofollow&quot;&gt;refactoring&lt;/a&gt; tools when I first encountered them.  The ability to extract methods (which, when you're learning better design is a common occurrence) from a large chunk of code and have everything handled for me was quite cool.&lt;/p&gt;&#xA;" OwnerUserId="2294" LastActivityDate="2010-09-30T14:52:44.080" />
  <row Id="8541" PostTypeId="2" ParentId="8496" CreationDate="2010-09-30T14:56:00.710" Score="2" ViewCount="" Body="&lt;p&gt;It depends. Things like location (state, city, etc.), type of job (web, internal apps, external apps), current economic conditions (right now there's a lot of people out there looking for work), how well you interview (more important than you think), etc. can all affect what you can earn. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am leaving out some non-monetary (to your paycheck, at least) items like benefits (health care insurance, life insurance, etc.), vacation time (including time for taking care of personal business), training (how much do you get, if any, and what kind), flex-time (ability to work from home sometimes, work four long days per week instead of five regular days), etc. that affect your quality of life. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally it is best to do your research. This is a good site to start with (for the US at least - I would imagine similar aggregates exist for other locations): &lt;a href=&quot;http://www.salary.com/salary/index.asp&quot; rel=&quot;nofollow&quot;&gt;http://www.salary.com/salary/index.asp&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Balance out what you are looking for with what's available and go from there. Do not just make it about the number on the check at the end of the month.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-09-30T14:56:00.710" />
  <row Id="8542" PostTypeId="2" ParentId="8511" CreationDate="2010-09-30T14:56:01.093" Score="1" ViewCount="" Body="&lt;p&gt;I'd say one of three cases exist:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;There isn't a problem.&lt;/li&gt;&#xA;&lt;li&gt;The young guys have a problem with older people (and it's not the candidates fault).&lt;/li&gt;&#xA;&lt;li&gt;One of them has a problem (and the age difference isn't it).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If there is an issue of age coming from the young end, I'd be willing to accept that it's caused by naivety. Alternately (and if it's going the other way, I'd strongly suspect) the age difference needn't be the root cause and one of the people might not get along no matter what. E.g. a lack of respect for experience or a patronizing assumption of inexperience, neither of which actually needs a difference in age.&lt;/p&gt;&#xA;" OwnerUserId="1572" LastActivityDate="2010-09-30T14:56:01.093" />
  <row Id="8543" PostTypeId="2" ParentId="8511" CreationDate="2010-09-30T14:58:23.913" Score="2" ViewCount="" Body="&lt;p&gt;I can act like I know everything and have a false sense of entitlement with the best of them ;) Maybe it's my teaching background, but I prefer a mixture. Can't say all my coworkers felt the same about me - F'em (Was that cool?).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To some point, I guess we're all either too young or too old. When you want to try new things, you're considered reckless and inexperienced. Stick to things that have worked and you're not flexible or creative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But what is it that 'old programmers' do that prevent them from getting along with younger people? I'm guessing those individuals probably don't get along with anybody. Maybe more mature people are just more likely to put up with their crap? It could be the longer / irregular hours? Fewer meetings? Complicated coffee machines? Pants on the ground?&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-30T14:58:23.913" />
  <row Id="8544" PostTypeId="1" AcceptedAnswerId="8589" CreationDate="2010-09-30T15:01:31.057" Score="10" ViewCount="1291" Body="&lt;p&gt;For someone with .Net experience and wanting to develop for iPhone/iPod/iPad, is it worth learning Objective-C? Is MonoTouch a good alternative? What are some of the trade-offs when using MonoTouch vs coding in Objective-C?&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-12-13T15:04:43.993" Title="MonoTouch vs Objective-C for iPhone/iPod/iPad development" Tags="&lt;c#&gt;&lt;.net&gt;&lt;iphone&gt;&lt;objective-c&gt;" AnswerCount="4" CommentCount="5" FavoriteCount="1" />
  <row Id="8545" PostTypeId="2" ParentId="6425" CreationDate="2010-09-30T15:02:15.953" Score="0" ViewCount="" Body="&lt;p&gt;Maybe during the first inteview it makes a difference. You're likely to get a less technical person doing the preliminary inteview and probably asks everyone the same questions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the second or third interview, there should be a specific set of questions tailored to each candidate. You're getting closer to 'crunch time' and they shouldn't be bored.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-30T15:02:15.953" />
  <row Id="8547" PostTypeId="1" AcceptedAnswerId="8559" CreationDate="2010-09-30T15:03:43.877" Score="8" ViewCount="419" Body="&lt;p&gt;Greetings everyone, I recently accepted an offer(Java Developer position) from one of the big IT companies. Working here for almost 3 weeks, things are going good, quite working flow and I am part of the small development team working on small module for the big project (that project is developed by same big IT company). Suddenly I got an offer from a small company what is starting some new business in the local area, and they badly need their first developer to start creating the project. This start-up looks very promising, the salary is higher there and being in the beginning of creating something that may be great software is one thing I wished for but... I am still confused whether to accecpt that offer (it will be very challenging and action based development) or stay in the BIC(big IT company and continue to rift down the flow). Maybe someone from here was in same boat and could give me advice how to make right decision? (I thing both are right but only one is choose-able...) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. I have approximately 5 years in IT development and 3 years of Java development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.P.S. Sorry for grammar mistake, English is not my native.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&#xA;Talked with HR person in that big company - she told me that she understand my decision and if something will go wrong in that startup project they are willing to take me back.&lt;/p&gt;&#xA;" OwnerUserId="4164" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-25T22:19:37.250" LastActivityDate="2010-11-25T22:19:37.250" Title="Started new job, but got very promising proposal" Tags="&lt;career-advice&gt;" AnswerCount="5" FavoriteCount="0" />
  <row Id="8549" PostTypeId="2" ParentId="8496" CreationDate="2010-09-30T15:05:50.567" Score="3" ViewCount="" Body="&lt;p&gt;One way in the USA to benchmark is to look at the US government pay. Computer Scientist is GS 1550; IT is 2200.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For 1550 here is the qualification scheme:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.usgs.gov/ohr/oars/quals/1550.html&quot; rel=&quot;nofollow&quot;&gt;http://www.usgs.gov/ohr/oars/quals/1550.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And here is the pay:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.fedjobs.com/pay/pay.html&quot; rel=&quot;nofollow&quot;&gt;http://www.fedjobs.com/pay/pay.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A BSCS no-honors starts at Grade 5.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Seattle, with the cost-of-living adjustment, that is about 33K. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So at this point in time, I reckon myself to be about a GS 9 or thereabouts, which is about 50K in the Seattle pay scheme. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can definitely make better in private work, but this sorta gives you a notion of what might be appropriate.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-09-30T15:05:50.567" CommentCount="2" />
  <row Id="8550" PostTypeId="2" ParentId="8076" CreationDate="2010-09-30T15:09:39.410" Score="2" ViewCount="" Body="&lt;p&gt;I once ran into a production data-loading Java program written by somebody who'd apparently never done object-oriented programming before.  100% of the functionality was shoehorned into the constructor.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-30T15:09:39.410" CommentCount="1" />
  <row Id="8551" PostTypeId="2" ParentId="6834" CreationDate="2010-09-30T15:09:43.323" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;ReSharper's ability to refactor.&lt;/strong&gt; In full disclosure, I may be behind the curve here since I think Java with Eclipse has had this type of functionality for some time, but I don't regularly work with Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The delta in capability that ReSharper adds to Visual Studio is so great, it's unbelievable. I know I sound like an ad, but I don't think I could ever go back to using a stock Visual Studio installation without ReSharper on top.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More generally, a &lt;strong&gt;semantic understanding of the code&lt;/strong&gt; would beat the pants off of a plain old text editor any day. This leads to things like &quot;find usages of variable&quot; or &quot;inline function&quot; or &quot;opportunity to use idiomatic pattern&quot;, etc.&lt;/p&gt;&#xA;" OwnerUserId="3119" LastActivityDate="2010-09-30T15:09:43.323" />
  <row Id="8552" PostTypeId="2" ParentId="510" CreationDate="2010-09-30T15:12:58.327" Score="1" ViewCount="" Body="&lt;p&gt;I say that, &quot;I wasn't prepared to discuss salary, but since they asked, what is the salary range for this position?&quot; Then ask for the criteria for determining where a candidate fits on the scale (experience, education, etc.). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they don't give an answer or you are not satisfied with the high end, you don't have to bother.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also mention that you are interested in this postion because of the higher demands than your current job and assume a higher salary is in order.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not sure, but they could check your references and get position and salary information. I've always wondered about this.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-30T15:12:58.327" />
  <row Id="8553" PostTypeId="2" ParentId="8496" CreationDate="2010-09-30T15:14:28.513" Score="0" ViewCount="" Body="&lt;p&gt;It depend upon your skills and experience starting salary may be around $40000&lt;/p&gt;&#xA;" LastActivityDate="2010-09-30T15:14:28.513" />
  <row Id="8554" PostTypeId="1" CreationDate="2010-09-30T15:15:02.193" Score="2" ViewCount="308" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/1220/programming-on-a-boat&quot;&gt;Programming on a boat&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Suppose I want to do software development on a boat, perhaps because there's stuff I need to get done when going on vacation.  Leaving the type of software development deliberately vague, what should I bring?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The things to consider about a 36-foot sloop:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Very limited storage space, figure there's room for a laptop case and 1-2 books.&lt;/li&gt;&#xA;&lt;li&gt;Very limited setup space.  Tables are very small, and so is the desk at the navigation station.&lt;/li&gt;&#xA;&lt;li&gt;Power outlets may be 12V DC or 110V AC, and are almost guaranteed to be in inconvenient places.&lt;/li&gt;&#xA;&lt;li&gt;Running extension cords may not be feasible; you certainly shouldn't have any on the floor.&lt;/li&gt;&#xA;&lt;li&gt;In a good wind, the boat will list 15-20 degrees to one side or another, and can be much more.&lt;/li&gt;&#xA;&lt;li&gt;It's always possible to hit choppy water, such as from a wake, and that can throw the boat around - figure rapidly alternating 20-degree lists to port and starboard.&lt;/li&gt;&#xA;&lt;li&gt;There's a lot of water around, and it's hard to guarantee it won't get below decks.&lt;/li&gt;&#xA;&lt;li&gt;It may be uncomfortably warm or cold below decks.&lt;/li&gt;&#xA;&lt;li&gt;Depending on crew size, there's the chance for an &quot;all hands on deck&quot; moment, which may or may not be predictable, and may or may not have half a minute warning.&lt;/li&gt;&#xA;&lt;li&gt;Wireless net access is likely at marinas, and 3G access when sufficiently close to certain pieces of shore.  Don't count on anything more.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What would you want under those conditions?  Alternately, what would you want under more favorable conditions (like going cross-country with an RV or truck)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I should of course explain why I don't think this a duplicate of &lt;a href=&quot;http://programmers.stackexchange.com/questions/1220/programming-on-a-boat-closed&quot;&gt;http://programmers.stackexchange.com/questions/1220/programming-on-a-boat-closed&lt;/a&gt; - that question was far too vague to be satisfactorily answered, and I've provided a list of the potential problems to be dealt with.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastEditorUserId="2344" LastEditorDisplayName="" LastEditDate="2010-09-30T15:24:42.523" LastActivityDate="2010-09-30T15:24:42.523" ClosedDate="2010-10-18T21:33:01.097" Title="Boat programming" Tags="&lt;boat-programming&gt;" AnswerCount="1" CommentCount="9" FavoriteCount="1" />
  <row Id="8555" PostTypeId="2" ParentId="6425" CreationDate="2010-09-30T15:15:34.597" Score="0" ViewCount="" Body="&lt;p&gt;Early of late should not matter if you have a good portfolio (either online or hard copy) with some of your best work and you show up with a positive attitude. You have to &lt;em&gt;WOW&lt;/em&gt; the interviewer. If you can not, then there will always be other opportunities. &lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-09-30T15:15:34.597" />
  <row Id="8556" PostTypeId="2" ParentId="8496" CreationDate="2010-09-30T15:17:10.680" Score="0" ViewCount="" Body="&lt;p&gt;We know for certain varying mid-level Google developers are making &lt;strong&gt;150K&lt;/strong&gt; per this article. Granted...it is Google...but it is also a reference point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://techcrunch.com/2010/09/01/google-making-extraordinary-counteroffers-to-stop-flow-of-employees-to-facebook/?utm_source=twitterfeed&amp;amp;utm_medium=twitter&amp;amp;utm_campaign=techcrunch&quot; rel=&quot;nofollow&quot;&gt;Google trying to stop flow of employees to Facebook&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3289" LastActivityDate="2010-09-30T15:17:10.680" CommentCount="1" />
  <row Id="8557" PostTypeId="2" ParentId="8547" CreationDate="2010-09-30T15:18:38.637" Score="9" ViewCount="" Body="&lt;p&gt;It really depends on your situation.  Can you handle the uncertainty of a startup?  If things go poorly and you get laid off in a year, can you manage until you get another job?  Things like having a family can affect that decision.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A number of my friends at a small company in the middle of nowhere in southern New York recently got laid off when their 30-person company had some bad breaks.  People with mortgages and kids.  It being a small town, they couldn't easily find new jobs in the area and had to uproot their whole lives to find new work elsewhere.  Something to consider when going for a less-stable job.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-30T15:18:38.637" CommentCount="1" />
  <row Id="8558" PostTypeId="2" ParentId="8554" CreationDate="2010-09-30T15:19:11.377" Score="0" ViewCount="" Body="&lt;p&gt;External backup device that is water proof, floats, and has a tracking device.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless it meant no vacation at all, a very good reason to not take this opportunity to fully get away.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-30T15:19:11.377" />
  <row Id="8559" PostTypeId="2" ParentId="8547" CreationDate="2010-09-30T15:26:07.660" Score="11" ViewCount="" Body="&lt;p&gt;If you leave your current job so soon after they hired you, you could be burning that bridge forever.  Unless the people who hired you are sympathetic to you leaving for a once-in-a-lifetime opportunity (which they may be!), it's possible that neither that company nor those people would ever be willing to employ you again.  You'll have the choice of either leaving this three-week stint off your resume entirely or having to answer some uncomfortable questions from potential future employers about why you left so quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not saying that means you &lt;b&gt;shouldn't&lt;/b&gt; leave, mind.  I'm just saying there may be consequences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should you leave?  Well, what do you want?  What would make you happier, the security of working for a big employer or the challenge of creating something new?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you take the job with the startup, can you handle it if the place goes out of business, as most startups do?  If you stay at your current job, would you live the rest of your life with a nagging regret if the startup takes off and becomes hugely successful without you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a hard decision, but it's always nice when you get to choose between two correct answers.  :-)  Best of luck to you, regardless of which way you jump.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-09-30T15:26:07.660" CommentCount="1" />
  <row Id="8560" PostTypeId="1" AcceptedAnswerId="8561" CreationDate="2010-09-30T15:27:50.100" Score="4" ViewCount="229" Body="&lt;p&gt;I'm currently working on throwing together some basic prototypes, partly to gather requirements and partly to design the final UI. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the moment I'm trailing building up the screen using post-it notes, with Yellow notes for information and pink for actions (buttons or menus). The idea being that you can easily move, remove and add information. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you use for lofi prototypes (pen, paper and a ruler, jump to &lt;a href=&quot;http://programmers.stackexchange.com/questions/8020/which-format-is-best-for-the-first-prototype-not-on-paper&quot;&gt;powerpoint&lt;/a&gt;) and do you do some upfront design or go to the user base with an empty page? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I tried some pen, paper and post-it note versions and they went down like a lead balloon (likely my drawing skills). In the end I used &lt;a href=&quot;http://balsamiq.com/&quot; rel=&quot;nofollow&quot;&gt;Balsamiq&lt;/a&gt;, which thus far is liked by most users and they get it is prototype. Alas some people are still having problems with the idea that first one should get an idea of what the application should do via some lofi prototypes and really want to &quot;see something on the screen&quot; before committing to anything.&lt;/p&gt;&#xA;" OwnerUserId="1896" LastEditorUserId="1896" LastEditorDisplayName="" LastEditDate="2010-11-04T16:05:37.740" LastActivityDate="2010-11-05T21:01:53.790" Title="How do you create lofi (none interactive) UI prototypes?" Tags="&lt;prototyping&gt;" AnswerCount="10" />
  <row Id="8561" PostTypeId="2" ParentId="8560" CreationDate="2010-09-30T15:33:01.330" Score="8" ViewCount="" Body="&lt;p&gt;I prefer a whiteboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It makes it easy to change as you make decisions without redrawing the whole thing.  It's easy to share with other (nearby) developers.  It's easy to annotate using sticky-notes or other colors.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-30T15:33:01.330" CommentCount="1" />
  <row Id="8562" PostTypeId="1" CreationDate="2010-09-30T15:33:29.450" Score="4" ViewCount="507" Body="&lt;p&gt;I do have 3 years of experience programming in java in various companies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I really like to learn new things and develop more and more challenging things. I still have a lot to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I realize that there are so many technologies frameworks around Java. One can develop so many different types of applications. I think it would be better to specialize in something rather than know and have experience from a lot of frameworks and specialize in using them. To be very good in spring and hibernate and develop classical either banking apps or others usual j2ee apps. Most of the times I couldn't decide which framework to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm attracted to developing frameworks like netty, hibernate, spring, axis or something like this. Something tough challenging. not just finish it and 'forget it', because there are a lot of other pages, DAOs, flows todo. But something which would made me a good java developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What to do? Try hard to develop something in my free time :) or without being so able try to get into companies where those things are developed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you for any thoughts&lt;/p&gt;&#xA;" OwnerUserId="4186" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T15:44:23.663" LastActivityDate="2011-06-01T17:20:51.167" Title="What should I do next as a Java developer?" Tags="&lt;java&gt;&lt;career&gt;" AnswerCount="9" FavoriteCount="2" />
  <row Id="8563" PostTypeId="2" ParentId="8544" CreationDate="2010-09-30T15:33:50.810" Score="1" ViewCount="" Body="&lt;p&gt;If you just want to get something out the door quickly, I believe monotouch would be the way to go.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Bad:&lt;/strong&gt; Remember that MonoTouch is $399 for a single developer.  That means if your app is priced at $0.99, then you essentially need to sell over 400 apps to even make money.  That's not taking into account that you won't get the full $0.99 for each app purchase.  Another thing to think about is that if you want other developers to join your project, the vast majority of iPhone devs still use Objective-C, so it will likely be harder to find partners.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Good:&lt;/strong&gt; Development time will be a lot faster.  Being early to market is typically a great advantage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Neutral:&lt;/strong&gt; You still have to learn the iPhone libraries, application lifecycle, and all the other little nuances of the iPhone.  So even though you don't have to learn Objective-C, you still have to learn the framework.  So, either way, your app can be equally awesome as it's still the iOS framework at the end of the day.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-09-30T15:41:30.847" LastActivityDate="2010-09-30T15:41:30.847" CommentCount="1" />
  <row Id="8564" PostTypeId="1" AcceptedAnswerId="8581" CreationDate="2010-09-30T15:34:43.667" Score="5" ViewCount="128" Body="&lt;p&gt;Obviously the size of the project you're working on will be a huge factor in how long you spend writing the design document/specification.  But do you go through everything, picking out every tiny detail? Or do you take a more agile approach and start writing the software quite early on and solve the problems as they come to you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've always found that there's only so far you can go with designing.  There will inevitably be some things that are missed, and at that point how well you can adapt to the situation means more than the specification itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I taking the right viewpoint on this? Is it actually an opinion, or is a perfect design spec always the best route to go?&lt;/p&gt;&#xA;" OwnerUserId="3549" LastActivityDate="2010-09-30T16:42:34.567" Title="How much time do you devote to the design document(s) for your software?" Tags="&lt;software&gt;&lt;design&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="8565" PostTypeId="1" AcceptedAnswerId="8570" CreationDate="2010-09-30T15:37:39.260" Score="9" ViewCount="292" Body="&lt;p&gt;Loose coupling is, to some developers, the holy grail of well-engineered software.  It's certainly a good thing when it makes code more flexible in the face of changes that are likely to occur in the foreseeable future, or avoids code duplication.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, efforts to loosely couple components increase the amount of indirection in a program, thus increasing its complexity, often making it more difficult to understand and often making it less efficient.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you consider a focus on loose coupling without any use cases for the loose coupling (such as avoiding code duplication or planning for changes that are likely to occur in the foreseeable future) to be an anti-pattern?  Can loose coupling fall under the umbrella of YAGNI?&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-26T05:20:59.723" Title="Is loose coupling w/o use cases an anti-pattern?" Tags="&lt;design&gt;&lt;design-patterns&gt;&lt;object-oriented&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="8566" PostTypeId="2" ParentId="8348" CreationDate="2010-09-30T15:38:38.620" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;RHCT &amp;amp; RHCE&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got 100/100 in both RHCT and RHCE exam.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wanted to know about system administration and thought it would be a good course to chose. I'm totally satisfied with that. I've learned many things while preparing for the exam. It's a good course to chose if you want to go in administration field. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Course &lt;a href=&quot;http://www.europe.redhat.com/training/certification/rhce/&quot; rel=&quot;nofollow&quot;&gt;details&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-09-30T15:38:38.620" />
  <row Id="8567" PostTypeId="2" ParentId="8562" CreationDate="2010-09-30T15:41:55.727" Score="2" ViewCount="" Body="&lt;p&gt;You're essentially saying that you're attracted to some technologies and asking whether you should develop your abilities with them in your free time or in a company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Isn't it obvious? Do it in your free time while trying to find a suitable job where you can do what you enjoy doing &lt;em&gt;plus&lt;/em&gt; get paid for it. That's the beauty of being a programmer.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-09-30T15:41:55.727" CommentCount="1" />
  <row Id="8569" PostTypeId="2" ParentId="8544" CreationDate="2010-09-30T15:46:22.977" Score="9" ViewCount="" Body="&lt;p&gt;I'm a seasoned C, C++, Delphi &amp;amp; .NET developer and I recently needed to tackle an iOS application development project with a .NET back-end. I initially got very excited about MonoTouch and climbed into it only to find that the learning curve was not really the language but rather the design patterns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also noted that the community support out there for MonoTouch was far less than that for Xcode and Objective-C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice, take the time and learn Objective-C. Read the Apple developer guidelines and learn how to do it right.&lt;/p&gt;&#xA;" OwnerUserId="4183" LastActivityDate="2010-09-30T15:46:22.977" />
  <row Id="8570" PostTypeId="2" ParentId="8565" CreationDate="2010-09-30T15:48:37.127" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Somewhat.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes loose coupling that comes without too much effort is fine, even if you don't have specific requirements demanding that some module be decoupled.  The low-hanging fruit, as it were.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, overengineering for ridiculous amounts of change will be a lot of unnecessary complexity and effort.  YAGNI, as you say, hits it on the head.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-09-30T15:48:37.127" />
  <row Id="8571" PostTypeId="2" ParentId="8450" CreationDate="2010-09-30T15:50:16.167" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.coderun.com&quot; rel=&quot;nofollow&quot; title=&quot;CodeRun&quot;&gt;CodeRun&lt;/a&gt; - Completely cloud-based IDE, so use it from any machine, anywhere. You just need a decent browser.&lt;/p&gt;&#xA;" OwnerUserId="2757" LastActivityDate="2010-09-30T15:50:16.167" />
  <row Id="8572" PostTypeId="2" ParentId="8560" CreationDate="2010-09-30T15:52:00.890" Score="1" ViewCount="" Body="&lt;p&gt;I use pen and paper first, then after drawing the UI a few quick times, I try to make it in powerpoint 2 or 3 times. Having 5 or 6 iterations before getting into the actual editor helps me cut down on unworkable UIs (such as generating content Y based on textbox X when the user has not even seen X yet). I see it as a chance to get out the stupids right away.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-09-30T15:52:00.890" />
  <row Id="8573" PostTypeId="2" ParentId="7495" CreationDate="2010-09-30T15:57:25.983" Score="1" ViewCount="" Body="&lt;p&gt;It doesn't matter at all, assuming you can do a couple things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.infoq.com/presentations/Sharpening-the-Tools&quot; rel=&quot;nofollow&quot;&gt;Become and demonstrate that you're an awesome developer&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0449207862&quot; rel=&quot;nofollow&quot;&gt;Learn to negotiate&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0385512058&quot; rel=&quot;nofollow&quot;&gt;Make connections in the industry&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Promote yourself (&lt;a href=&quot;http://wordpress.org&quot; rel=&quot;nofollow&quot;&gt;blog&lt;/a&gt;! &lt;a href=&quot;http://www.codeproject.com/&quot; rel=&quot;nofollow&quot;&gt;write articles&lt;/a&gt;! &lt;a href=&quot;http://github.com&quot; rel=&quot;nofollow&quot;&gt;OSS&lt;/a&gt;!)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm blessed with a wicked salary and a job I love... and I never attended college. I have a 20 year old friend that makes $80+/hr, and he dropped out of high school. However, neither of us would be where we are today if we weren't passionate about software craftsmanship.&lt;/p&gt;&#xA;" OwnerUserId="4187" LastActivityDate="2010-09-30T15:57:25.983" />
  <row Id="8574" PostTypeId="2" ParentId="8565" CreationDate="2010-09-30T15:59:46.917" Score="1" ViewCount="" Body="&lt;p&gt;For the majority of questions like this, the answer is &quot;it depends.&quot; On the whole if I can make a design logically loosely coupled in ways that make sense, without a major overhead to doing so, I will. Avoiding unnecessary coupling in code is, to my mind, an entirely worthwhile design goal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once it comes to a situation where it seems like components should logically be tightly coupled, I'll be looking for a compelling argument before I start breaking them up. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess the principle I work to with most of these types of practice is one of inertia. I have an idea of how I would like my code to work and if I can do it that way without making life any harder then I will. If doing it will make development harder but maintenance and future work easier I will try and figure out a guess at whether it will be more work across the lifetime of the code and use that as my guide. Otherwise it would need to be a deliberate design point to be worth going with.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-09-30T15:59:46.917" />
  <row Id="8575" PostTypeId="2" ParentId="8562" CreationDate="2010-09-30T16:04:33.897" Score="4" ViewCount="" Body="&lt;p&gt;Like most answers I give on StackOverflow to such questions, I usually suggest to do something language independent and work on skills and techniques. In your case, you seem to have tried most stuff, like DAOs, frameworks and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How about trying Java mobile development? J2ME or move to Game programming in Java / C#? Participate in open source development?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or moving into a completely different programming language / platform? Cloud-computing, DSA, PHP + Linux, Server-management? Networking? Client-Server communication?&lt;/p&gt;&#xA;" OwnerUserId="117" LastActivityDate="2010-09-30T16:04:33.897" CommentCount="1" />
  <row Id="8576" PostTypeId="2" ParentId="5215" CreationDate="2010-09-30T16:06:14.643" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.gdconf.com/&quot; rel=&quot;nofollow&quot;&gt;Game Developers Conference&lt;/a&gt;.   Maybe not the most educational, but definitely fun.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-09-30T16:06:14.643" CommentCount="1" />
  <row Id="8577" PostTypeId="2" ParentId="8562" CreationDate="2010-09-30T16:09:56.743" Score="6" ViewCount="" Body="&lt;p&gt;Learn Scala and/or Clojure. They will introduce you to a functional programming paradigm to compliment your object-oriented experience.&lt;/p&gt;&#xA;" OwnerUserId="3463" LastActivityDate="2010-09-30T16:09:56.743" CommentCount="1" />
  <row Id="8578" PostTypeId="2" ParentId="8391" CreationDate="2010-09-30T16:16:22.303" Score="2" ViewCount="" Body="&lt;p&gt;Working on PHP and NetBeans, the documentation style is pretty much PHPDoc way. Thus I write a little more than what the IDE generates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;e.g. IDE generates:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/**  &#xA; * Description for ClassA  &#xA; *  &#xA; *  &#xA; * @author Sam-Mauris Yong  &#xA; */  &#xA;&#xA;class ClassA{&#xA;&#xA;    function __construct(){&#xA;        echo &quot;5&quot;;&#xA;    }&#xA;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I'll probably write:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/**  &#xA; * Class A Helper Class&#xA; * Some example class used here&#xA; *  &#xA; * @author Sam-Mauris Yong&#xA; * @license GNU Public License v3&#xA; */  &#xA;&#xA;class ClassA{&#xA;&#xA;    /**&#xA;     * Constructor for example class&#xA;     * echos 5&#xA;     */&#xA;    function __construct(){&#xA;        echo &quot;5&quot;;&#xA;    }&#xA;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="117" LastActivityDate="2010-09-30T16:16:22.303" CommentCount="1" />
  <row Id="8579" PostTypeId="2" ParentId="8564" CreationDate="2010-09-30T16:17:30.863" Score="1" ViewCount="" Body="&lt;p&gt;It definitely depends on the size and structure of the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For client projects, detailed specifications are a must. I like to heavily involve the client during the design specification. This helps flush out extra considerations and It gives the client a better understanding of what to expect. There is usually a positive shift in attitude (towards time and pricing) after the discovery and specifications are complete. This also allows us to set milestones - and hit them - which is favorable for the client, and our development team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For internal projects and fun side projects, I generally create a flow chart and feature list, then start hacking it together. In these instances, what I find more important than a feature spec sheet, is the actual UI. I'll wireframe the site on paper and do a simple UI build (html/css). This helps me think through the user experience, which I value more than specific features on my own projects. I can always go back and piece together features later.&lt;/p&gt;&#xA;" OwnerUserId="2977" LastActivityDate="2010-09-30T16:17:30.863" />
  <row Id="8580" PostTypeId="2" ParentId="8391" CreationDate="2010-09-30T16:21:35.207" Score="2" ViewCount="" Body="&lt;p&gt;I follow this convention:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//-----------------------------------------------------------------------------&#xA;// MPlayer_PlayAlbum&#xA;//&#xA;// PURPOSE:&#xA;//  Creates a playback selection of the given album and starts playing it&#xA;//&#xA;// PARAMETERS:&#xA;//  int AlbumId  [in] Zero based index of the album to playback,&#xA;//                    or -1 to playback all the albums (not for iPod)&#xA;//  int ArtistId [in] Zero based ID of the artist, or -1 if AlbumId is from the&#xA;//                    global enumeration of albums; if AlbumId is -1 this&#xA;//                    parameter is ignored&#xA;//  int TrackId  [in] Zero based index of the track representing the first item&#xA;//                    to play; if AlbumId is -1 this parameter is ignored&#xA;//&#xA;// RETURNS:&#xA;//  ERROR_SUCCESS if the function succeeds&#xA;//  ERROR_UNINITIALIZED if the remote control is not initialized&#xA;//  ERROR_INVALID_PARAMETER if one ore more parameters are not correct&#xA;//  ERROR_DEVICE_NOT_AVAILABLE if no device is present&#xA;//  ERROR_DEVICE_IN_USE if it's currently impossible to use the device remotely&#xA;//-----------------------------------------------------------------------------&#xA;DWORD WINAPI MPlayer_PlayAlbum(int AlbumId, int ArtistId, int TrackId);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I avoid adding author name as source control already take care of tracing original author and contributors.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-09-30T16:21:35.207" CommentCount="1" />
  <row Id="8581" PostTypeId="2" ParentId="8564" CreationDate="2010-09-30T16:25:29.777" Score="2" ViewCount="" Body="&lt;p&gt;It depends a bit on your target audience, but my experience ( more in small/medium scale development than very large scale work ) is that detailed design documents are arduous and boring to write, rarely read and tend to end up out of date by the time a project is delivered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This does not mean that they are worthless - if you are delivering something for someone, there needs to be an authoritative and agreed statement of what will be delivered sufficiently detailed that everyone can point to it in case anyone is dissatisfied with the deal and say &quot;this is what we promised&quot; and evaluate it against what was delivered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I were setting up a company to build a product, however, I wouldn't worry so much about a detailed specification. I would want to document &lt;em&gt;what&lt;/em&gt; we were going to do, but I wouldn't want to go into too much depth regarding &lt;em&gt;how&lt;/em&gt; - that is the part that is most likely to change and leave the documents out of date and useless or even inaccurate enough to be actually obstructive. I would prefer to document the &quot;how&quot; stuff in code using whatever documentation format the language or IDE supports best, so that as the code changes it is easier to update the documentation at the same time. It won't stop it going out of date, but it will reduce it somewhat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally you would want a design document that could double as your manual when your code is complete, but I don't know of anyone who has managed that successfully. &lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-09-30T16:25:29.777" />
  <row Id="8582" PostTypeId="2" ParentId="252" CreationDate="2010-09-30T16:26:40.453" Score="6" ViewCount="" Body="&lt;p&gt;The Singleton pattern is basically just a lazily initialized global variable.  Global variables are generally and rightly considered evil because they allow spooky action at a distance between seemingly unrelated parts of a program.  However, IMHO there is nothing wrong with global variables that are set once, from one place, as part of a program's initialization routine (for example, by reading a config file or command line arguments) and treated as constants thereafter.  Such use of global variables is different only in letter, not in spirit, from having a named constant declared at compile time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, my opinion of Singletons is that they're bad if and only if they are used to pass mutable state between seemingly unrelated parts of a program.  If they don't contain mutable state, or if the mutable state that they do contain is completely encapsulated so that users of the object don't have to know about it even in a multithreaded environment, then there's nothing wrong with them.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-09-30T16:26:40.453" />
  <row Id="8583" PostTypeId="2" ParentId="2682" CreationDate="2010-09-30T16:34:34.533" Score="0" ViewCount="" Body="&lt;p&gt;If you are making some type of platform that can be expanded to a better degree through open source code than doing it yourself and charging, the apps you create and sell based ont he platform may be better off in the long run. I guess the key is not to give away all the code; especially the part that differencitates you to the point of being able to sell it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Isn't this what the people involved with Ruby on Rails did?&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-30T16:34:34.533" />
  <row Id="8584" PostTypeId="2" ParentId="8445" CreationDate="2010-09-30T16:41:43.397" Score="5" ViewCount="" Body="&lt;p&gt;The advantage of const correctness is that it imposes a discipline on the program, and makes it easier to reason about parts of the program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The discipline is that you need to know where something might get changed.  The corresponding advantage is that it's easier to see what a piece of code does when you can tell what might be changing the state.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-30T16:41:43.397" CommentCount="1" />
  <row Id="8585" PostTypeId="2" ParentId="8564" CreationDate="2010-09-30T16:42:34.567" Score="1" ViewCount="" Body="&lt;p&gt;Depends what you mean by design documents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I spend 1/3 to 1/2 of my time writing down designs for the software I write, in a note book, sketching things out, figuring out algorithms, relationships, stories, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't do this all up front.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't have a main signed and sealed document that I'm working from. I have in the past, and I never got any work done, because I was always waiting for some one to sign something off. That was more a problem with the bureaucracy of the company I was with than the concept of design everything up front, but I still prefer the more fluid/agile approach I have now.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-09-30T16:42:34.567" />
  <row Id="8586" PostTypeId="2" ParentId="8544" CreationDate="2010-09-30T16:44:37.603" Score="1" ViewCount="" Body="&lt;p&gt;I'm starting to develop an application using MonoTouch and I am finding it a good experience. With a tendency towards being productive rather than learning new tech, MonoTouch scratches the itch. The general feeling is that Novell have done a great job of making iOS functionality available to .NET developers and now with Apple's recent relaxations of the licensing (they now allow iPhone/iPad apps developed by 3rd party tools) MonoTouch is only going to gain ground. If you watch the #monotouch twitter tag you'll even see some developers / devshops PORTING their Obj-C apps over to .Net because it'll be easier/quicker to maintain/evolve in the long run. Oh, and all the Apple guidelines still apply even though you're working in .NET - in fact I find them pretty helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With MonoDroid on the way too, you'll likely be able to re-use core libraries of your own application across an iPhone AND Android application - how cool is that??&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a pretty upbeat interview with Wallace Mclure that captures a little of what I'm talking about:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://adtmag.com/articles/2010/09/29/monotouch-qa-with-wallace-mcclure.aspx&quot; rel=&quot;nofollow&quot;&gt;http://adtmag.com/articles/2010/09/29/monotouch-qa-with-wallace-mcclure.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say go for it! &lt;/p&gt;&#xA;" OwnerUserId="4185" LastEditorUserId="4185" LastEditorDisplayName="" LastEditDate="2010-12-13T15:04:43.993" LastActivityDate="2010-12-13T15:04:43.993" />
  <row Id="8587" PostTypeId="2" ParentId="2682" CreationDate="2010-09-30T16:50:54.503" Score="3" ViewCount="" Body="&lt;p&gt;You should definitely make the source available.  Whether it's freely available or only available to those who buy a license is up to you, but I would never use a third-party library with no source.  Unlike Robert Harvey, I emphatically &lt;strong&gt;do not&lt;/strong&gt; &quot;know that I will probably never need it.&quot;  Any library of non-trivial complexity is almost certain to have bugs in there somewhere, have missing or poorly-implemented features that could benefit from customization/extension, or most likely both.  (Yes, even yours.)  I've used a lot of different libraries, from different people and written in different languages, and I can't think of any that I've never needed the source from at one point or another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to do it right, add a provision in the license like what the GPL and MPL have, that if they make changes to the code and end up publishing a product using it, they have to publish the changes they made. That way you get free bugfixes and (potential) features just by letting other people use your code.&lt;/p&gt;&#xA;" OwnerUserId="935" LastEditorUserId="935" LastEditorDisplayName="" LastEditDate="2010-10-24T14:45:22.530" LastActivityDate="2010-10-24T14:45:22.530" />
  <row Id="8588" PostTypeId="1" AcceptedAnswerId="8591" CreationDate="2010-09-30T16:58:50.430" Score="8" ViewCount="458" Body="&lt;p&gt;SQL is officially pronounced as /ˌɛskjuːˈɛl/ like &quot;S-Q-L&quot;, as stated in &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Beaulieu, Alan (April 2009). Mary E. Treseler. ed. Learning SQL (2nd ed.). Sebastapol, CA, USA: O'Reilly. ISBN 978-0-596-52083-0.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;But often it is pronounced  /ˈsiːkwəl/ like &quot;sequel&quot;, what is the history behind this second pronunciation?&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-10-19T12:30:50.627" Title="What's the history of the non-official pronunciation of SQL?" Tags="&lt;history&gt;&lt;sql&gt;&lt;etymology&gt;&lt;pronunciation&gt;" AnswerCount="3" CommentCount="8" />
  <row Id="8589" PostTypeId="2" ParentId="8544" CreationDate="2010-09-30T16:59:04.027" Score="8" ViewCount="" Body="&lt;p&gt;MonoTouch is a fantastic alternative. I've been using it for pretty much one year now, and I can't ever imagine going back to objective-c. Highlights: LINQ, LINQ to XML, LINQ, C#, LINQ, Garbage collector, LINQ, MonoTouch.Dialog, and a lot of other things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, though.. nowadays most apps are always downloading data from the web, and you'll need to be converting that to objects, keeping them in lists, sorting and filtering them, and pushing them to databases. That stuff is so simple to do with C# and LINQ that I can't imagine people doing that in other languages. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The $400 dollar cost is not low, but you can probably make that money back in 1 month or so with no advertisement. And the amount of time MT will save you will offset that easily. Also remember, you don't have to pay until the app is ready for testing in a device, so its free for learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that said, yes, its still totally worthy to learn Objective-C. It'll make you a better developer for the platform, you'll understand why some things are the way they are, and so on. You'll also be able to read Obj-C examples in the web and translate them to C#. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, here's my suggestion: if you're thinking of getting in iOS development, go to MonoTouch. Spend a few weeks using it, and then make the decision of jumping to Obj-C. The hardest part of going to iOS development is not the Obj-C language, is all the new frameworks you'll have to learn. Being able to learn them in C# is a HUGE deal, you'll be a lot more productive from the start up. Just after you know those things look into Obj-C: everything will be already familiar, so it'll be easy to understand everything.&lt;/p&gt;&#xA;" OwnerUserId="4194" LastActivityDate="2010-09-30T16:59:04.027" />
  <row Id="8590" PostTypeId="2" ParentId="8093" CreationDate="2010-09-30T16:59:55.170" Score="11" ViewCount="" Body="&lt;p&gt;Boolean algebra was already mentioned, but I wanted to provide some practical examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Boolean algebra comes in handy very often when you work with complex boolean expressions (in &lt;code&gt;if&lt;/code&gt; statements for example).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Couple useful expressions and laws:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Distributivity&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A &amp;amp; (B | C) = (A &amp;amp; B) | (A &amp;amp; C)&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;A | (B &amp;amp; C) = (A | B) &amp;amp; (A | C)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;So next time you stumble upon such expression:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if((A || B) &amp;amp;&amp;amp; (A || C) &amp;amp;&amp;amp; (A || D) &amp;amp;&amp;amp; (A || E)) { ... }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You can easily shrink it to:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(A &amp;amp;&amp;amp; (B || C || D || E)) { ... }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Negation and De Morgan's Law&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;!(!A) = A&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;!(A &amp;amp; B) = !A | !B&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;!(A | B) = !A &amp;amp; !B&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Lets say you have such statement:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(!A &amp;amp;&amp;amp; !B &amp;amp;&amp;amp; !C) {..}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and you need to build the opposite of it. Writing:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(!(!A &amp;amp;&amp;amp; !B &amp;amp;&amp;amp; !C)) {...}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;would work, but doesn't look as cool as this equivalent:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(A | B | C) {...}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="193" LastActivityDate="2010-09-30T16:59:55.170" CommentCount="7" />
  <row Id="8591" PostTypeId="2" ParentId="8588" CreationDate="2010-09-30T17:04:25.223" Score="9" ViewCount="" Body="&lt;p&gt;To quote Wikipedia on this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;SQL was adopted as a standard by the American National Standards Institute (ANSI) in 1986 as SQL-86[19] and International Organization for Standardization (ISO) in 1987. The original SQL standard declared that the official pronunciation for SQL is &quot;es queue el&quot;.[2] Many English-speaking database professionals still use the nonstandard[20] pronunciation /ˈsiːkwəl/ (like the word &quot;sequel&quot;).&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Several other &lt;a href=&quot;http://databases.about.com/od/sql/a/sqlfundamentals.htm&quot; rel=&quot;nofollow&quot;&gt;links&lt;/a&gt; also confirm that a consensus on the matter of pronunciation still isn't close.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Btw, why does it matter?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: Another example of natural language evolution &lt;a href=&quot;http://en.wikipedia.org/wiki/Y%27all&quot; rel=&quot;nofollow&quot;&gt;y'all&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-09-30T17:15:43.440" LastActivityDate="2010-09-30T17:15:43.440" CommentCount="20" />
  <row Id="8592" PostTypeId="1" AcceptedAnswerId="8596" CreationDate="2010-09-30T17:09:44.677" Score="6" ViewCount="234" Body="&lt;p&gt;As the title suggests, what is a good shape of a table when doing pair programming ? Are there shapes that should be avoided? What are the reasons a certain shape is good or bad?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I &lt;em&gt;do&lt;/em&gt; have my own thoughts on this, but would like not to bias the discussion with that input just yet)&lt;/p&gt;&#xA;" OwnerUserId="4195" LastActivityDate="2010-09-30T22:06:13.633" Title="Optimal table shape for pair programming?" Tags="&lt;office&gt;&lt;pair-programming&gt;" AnswerCount="5" CommentCount="5" />
  <row Id="8593" PostTypeId="2" ParentId="8592" CreationDate="2010-09-30T17:18:21.950" Score="-3" ViewCount="" Body="&lt;h2&gt;Round&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;see &lt;a href=&quot;http://en.wikipedia.org/wiki/Round_Table&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Round_Table&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;The Round Table is King Arthur's&#xA;  famed table in the Arthurian legend,&#xA;  around which he and his Knights&#xA;  congregate. As its name suggests, it&#xA;  has no head, implying that everyone&#xA;  who sits there has equal status.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-Wikipedia&lt;/p&gt;&#xA;&#xA;&lt;p&gt;by the way I'm not being serious.&lt;/p&gt;&#xA;" OwnerUserId="1013" LastEditorUserId="1013" LastEditorDisplayName="" LastEditDate="2010-09-30T22:06:13.633" LastActivityDate="2010-09-30T22:06:13.633" CommunityOwnedDate="2010-09-30T22:03:05.360" CommentCount="3" />
  <row Id="8594" PostTypeId="2" ParentId="8588" CreationDate="2010-09-30T17:18:33.823" Score="14" ViewCount="" Body="&lt;p&gt;SEQUEL = Structured English QUEry Language. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a good historical perspective &lt;a href=&quot;http://www.mcjones.org/System_R/SQL_Reunion_95/sqlr95-System.html&quot; rel=&quot;nofollow&quot;&gt;read&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Don Chamberlin: ...A bunch of things were happening at about this time that I think we ought to mention just in passing. One was that we had to change the name of our language from SEQUEL to SQL. And the reason that we had to do that was because of a legal challenge that came from a lawyer. Mike, you probably can help me out with this. I believe it was from the Hawker Siddeley Aircraft Company in Great Britain, that said SEQUEL was their registered trademark. We never found out what kind of an aircraft a SEQUEL was, but they said we couldn't use their name anymore, so we had to figure out what to do about that. I think I was the one who condensed all the vowels out of SEQUEL to turn it into SQL, based on the pattern of APL and languages that had three-lettered names that end in L. So that was how that happened. ...&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1973" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2010-09-30T19:54:26.873" LastActivityDate="2010-09-30T19:54:26.873" CommentCount="5" />
  <row Id="8595" PostTypeId="2" ParentId="6067" CreationDate="2010-09-30T17:26:21.720" Score="2" ViewCount="" Body="&lt;h2&gt;Objective-J / Cappuccino &lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Looks very promising for developing client-side applications.&lt;/p&gt;&#xA;" OwnerUserId="2977" LastActivityDate="2010-09-30T17:26:21.720" CommunityOwnedDate="2010-09-30T17:26:21.720" CommentCount="1" />
  <row Id="8596" PostTypeId="2" ParentId="8592" CreationDate="2010-09-30T17:29:44.847" Score="5" ViewCount="" Body="&lt;h3&gt;Flat&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;That's the most important, I think. Implied of course that it's also level.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Rectangular&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Or at least having one straight side, long enough so that you can sit two persons side by side.&lt;/p&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-09-30T17:29:44.847" CommentCount="1" />
  <row Id="8597" PostTypeId="2" ParentId="8592" CreationDate="2010-09-30T17:30:02.893" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.instructables.com/image/FAHLP54FKUQF03A/Big-oak-desk-from-kitchen-worktops.jpg&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;&lt;em&gt;Long table&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; or an &lt;strong&gt;&lt;em&gt;L shaped desk&lt;/em&gt;&lt;/strong&gt; (possibly several of them connected).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This has nothing to do with &quot;everyone sitting there having equal status&quot;, but purely practical reasons. An oval/round desk has terrible space efficiency (actually used work space vs. total area for the desk to be placed + chairs) - even worse if it is hollow&quot; in the middle, and is very difficult to place it in most modern offices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers status is usually not determined by his place by the table, in any case.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-09-30T17:30:02.893" />
  <row Id="8598" PostTypeId="2" ParentId="6067" CreationDate="2010-09-30T17:33:16.027" Score="0" ViewCount="" Body="&lt;p&gt;I am learning PHP now :) I am .net developer.&lt;/p&gt;&#xA;" OwnerUserId="3613" LastActivityDate="2010-09-30T17:33:16.027" CommunityOwnedDate="2010-09-30T17:33:16.027" />
  <row Id="8602" PostTypeId="2" ParentId="8301" CreationDate="2010-09-30T17:48:47.630" Score="3" ViewCount="" Body="&lt;p&gt;Writing overall tests and test plans.  Seriously, guys, I can write my own test plans, but that means baking into the product whatever misapprehensions, false assumptions, and cognitive mistakes I made while writing the stuff.  It was the only thing I hated about one company I worked at; where I am now, we at least have code reviews that will likely catch this stuff.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-30T17:48:47.630" CommentCount="1" />
  <row Id="8603" PostTypeId="2" ParentId="8547" CreationDate="2010-09-30T17:54:11.693" Score="3" ViewCount="" Body="&lt;p&gt;I think it's important to remind you to consider the difference in work expectations. I'd assume your current gig is only looking for ~40hr/week. At a start-up, especially as developer #1, you're probably going to be expected to put in significantly more time than that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: That said, being #1 means you might get complete say over language and framework choices. Your pick of code style rules. Maybe even if you want a mac or a PC.&lt;/p&gt;&#xA;" OwnerUserId="3694" LastActivityDate="2010-09-30T17:54:11.693" />
  <row Id="8604" PostTypeId="1" CreationDate="2010-09-30T18:09:52.813" Score="0" ViewCount="60" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/6395/how-do-you-dive-into-large-code-bases&quot;&gt;How do you dive into large code bases?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I saw this question on reddit.(http://www.reddit.com/r/coding/comments/dhsug/what_methodstools_do_you_use_to_get_an/). It seems like it would be perfect for this StackExchange site.&lt;/p&gt;&#xA;" OwnerUserId="1974" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-09-30T18:11:46.890" LastActivityDate="2010-09-30T18:11:46.890" CommunityOwnedDate="2010-09-30T18:09:52.813" ClosedDate="2010-09-30T23:40:14.360" Title="What methods/tools do you use to get an understanding of a codebase that you have not written yourself?" Tags="&lt;recommendations&gt;&lt;programming-practices&gt;" CommentCount="0" FavoriteCount="0" />
  <row Id="8605" PostTypeId="1" CreationDate="2010-09-30T18:10:37.250" Score="6" ViewCount="125" Body="&lt;p&gt;Although I have a full-time development job, I have occasionally done some part-time paid work in evenings / weekends for various people who have contacted me as a result of open-source projects I have worked on. It's a nice way to earn a bit of extra cash, but obviously it is not always available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is, what is a good way of getting your name out there to do some small projects? I have seen a few programmers-for-hire type websites, but I don't know which I can trust or whether there are too many people willing to work for very low prices. Also, being UK based, I would want something which did not assume I have a US bank account.&lt;/p&gt;&#xA;" OwnerUserId="4180" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-09-30T18:24:36.047" LastActivityDate="2010-09-30T19:54:01.040" Title="Recommendations for finding part-time consultancy work" Tags="&lt;jobs&gt;&lt;recommendations&gt;" AnswerCount="4" FavoriteCount="3" />
  <row Id="8606" PostTypeId="2" ParentId="8592" CreationDate="2010-09-30T18:14:59.450" Score="1" ViewCount="" Body="&lt;p&gt;The only time I did pair programming was in college and we had trapezoidal tables with monitors mounted on very long arms which we could swing around.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;        /|&#xA;       / |&#xA;      |  |&#xA;     y|+ |&#xA;    x |  |&#xA;  /---\  |&#xA; /  +  \ |&#xA;/-------\| &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;x = me&#xA;  y = you&#xA;  + = our 30 inch monitors on a 4 foot swivel arm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something like that, except they weren't joined at 90 degree angles, more like 66 so you'd get more elbow room.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-09-30T18:14:59.450" CommentCount="2" />
  <row Id="8607" PostTypeId="2" ParentId="8605" CreationDate="2010-09-30T18:17:05.640" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Polish your resumé&lt;/li&gt;&#xA;&lt;li&gt;Write a letter that explain your goal (part-time consultancy work)&lt;/li&gt;&#xA;&lt;li&gt;Grab a list of all software shop within 25km radius&lt;/li&gt;&#xA;&lt;li&gt;Send both a paper letter and email to all of them&lt;/li&gt;&#xA;&lt;li&gt;If no result after 7 days repeat the process by increasing the radius&lt;/li&gt;&#xA;&lt;li&gt;Repeat&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-30T18:17:05.640" />
  <row Id="8608" PostTypeId="2" ParentId="5215" CreationDate="2010-09-30T18:17:16.387" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Qcon&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the most professional event I've ever attended, with many great speakers. Nowadays I usually go to conferences to socialize, but at this one I actually learned &lt;em&gt;a lot&lt;/em&gt; and had a hard time deciding which parallel talk to attend next. Moreover I like the idea of tracks dedicated to a specific topic (Agile, Architecture, NoSQL, Functional Programming etc.) overseen by a specialist in a given area.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Qcon takes place in San Francisco and London. You could take a look at &lt;a href=&quot;http://qconlondon.com/london-2010/schedule/&quot; rel=&quot;nofollow&quot;&gt;the schedule&lt;/a&gt; from the London 2010 edition.&lt;/p&gt;&#xA;" OwnerUserId="2313" LastActivityDate="2010-09-30T18:17:16.387" />
  <row Id="8609" PostTypeId="2" ParentId="8511" CreationDate="2010-09-30T18:19:27.927" Score="15" ViewCount="" Body="&lt;p&gt;Just say:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;no problem, I'm good with kids&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-01T20:37:10.690" LastActivityDate="2010-10-01T20:37:10.690" CommentCount="12" />
  <row Id="8610" PostTypeId="2" ParentId="8605" CreationDate="2010-09-30T18:19:50.693" Score="1" ViewCount="" Body="&lt;p&gt;Do you have craigslist or something like it in the UK?  Put an ad out there regularly that you're an experienced developer looking for contracts.  That might get you a few bytes.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-30T18:19:50.693" />
  <row Id="8611" PostTypeId="2" ParentId="8605" CreationDate="2010-09-30T18:29:43.083" Score="4" ViewCount="" Body="&lt;p&gt;Present at conferences, staff booths at conferences, hand your business cards out in between.  This is especially rather easy to get into if you are working in an open-source environment.  In general, conferences are the canonical way for freelancers in IT and similar fields to make contacts.&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-09-30T18:29:43.083" />
  <row Id="8612" PostTypeId="2" ParentId="5215" CreationDate="2010-09-30T18:41:51.330" Score="0" ViewCount="" Body="&lt;p&gt;Since MacHack &amp;amp; C4 have gone the way of the Dodo, WWDC is the conference for iOS and Mac OS developers.&lt;/p&gt;&#xA;" OwnerUserId="749" LastActivityDate="2010-09-30T18:41:51.330" />
  <row Id="8613" PostTypeId="2" ParentId="8565" CreationDate="2010-09-30T18:49:35.497" Score="11" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;Is programming practice&lt;/em&gt; X &lt;em&gt;good or bad?&lt;/em&gt;&lt;/strong&gt;  Clearly, the answer is &lt;em&gt;always&lt;/em&gt; &quot;it depends.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're looking at your code, wondering what &quot;patterns&quot; you can inject, then you're doing it wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are building your software so that unrelated objects don't fiddle around with each other, then you're doing it right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're &quot;engineering&quot; your solution so that it can be infinitely extended and changed, then you're actually making it more complicated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think at the end of the day, you're left with the single truth: is it more or less complicated to have the objects decoupled?  If it is less complicated to couple them, then that is the correct solution.  If it is less complicated to decouple them, then that is the right solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I am presently working in a fairly small codebase that does a simple job in a very complicated way, and part of what makes it so complicated is the lack of understanding of the terms &quot;coupling&quot; and &quot;cohesion&quot; on the part of the original developers.)&lt;/p&gt;&#xA;" OwnerUserId="2129" LastActivityDate="2010-09-30T18:49:35.497" CommentCount="1" />
  <row Id="8614" PostTypeId="2" ParentId="8142" CreationDate="2010-09-30T18:56:13.190" Score="0" ViewCount="" Body="&lt;p&gt;if you go for agile, i'd recommend a &lt;a href=&quot;http://www.infoq.com/minibooks/kanban-scrum-minibook&quot; rel=&quot;nofollow&quot;&gt;scrum and kanban mix&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3049" LastActivityDate="2010-09-30T18:56:13.190" />
  <row Id="8615" PostTypeId="2" ParentId="8402" CreationDate="2010-09-30T19:00:21.310" Score="0" ViewCount="" Body="&lt;p&gt;I like algorithm questions, because it's what we do.  I like constraints, because it's what we use.  Big-O is especially relevant in my industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not like requiring the answers to these sorts of questions to be &quot;write the code on the whiteboard&quot;.  The interviewee should be able to talk intelligently about the approach to the solution and engage in an ongoing discussion as the interviewers change the requirements while the discussion is underway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The original question is asked, the interviewee says, &quot;start at the beginning and march toward the end looking for the 'hole'&quot;.  Interviewer says that's too slow, because N is gargantuan.  Interviewee starts discussing binary search.  Interviewer says that all of the sudden the data is no longer sorted.  Interviewee says &quot;sort then search&quot;.  &quot;Now it's too slow&quot;.  Etc., etc.&lt;/p&gt;&#xA;" OwnerUserId="2129" LastActivityDate="2010-09-30T19:00:21.310" />
  <row Id="8616" PostTypeId="2" ParentId="8413" CreationDate="2010-09-30T19:07:50.697" Score="5" ViewCount="" Body="&lt;p&gt;In the United States start with Salary.com: &lt;a href=&quot;http://www.salary.com/salary/index.asp&quot; rel=&quot;nofollow&quot;&gt;http://www.salary.com/salary/index.asp&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Canada I found the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.payscale.com/research/CA/Country=Canada/Salary&quot; rel=&quot;nofollow&quot;&gt;http://www.payscale.com/research/CA/Country=Canada/Salary&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://swz.salary.com/csalarywizard/layoutscripts/cswzl_newsearch.asp&quot; rel=&quot;nofollow&quot;&gt;http://swz.salary.com/csalarywizard/layoutscripts/cswzl_newsearch.asp&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.itworldcanada.com/salarycalculator/&quot; rel=&quot;nofollow&quot;&gt;http://www.itworldcanada.com/salarycalculator/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In either case these are going to be averages, but better ones like Salary.com will show the ranges applicable to that situation. The spread between the bottom and the top can be significant (I've seen differences as much as $50k from the lowest to the highest).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally, in Canada, your pay will be lower than it is in the US, in just straight absolute dollars (i.e., a job that pays $80k (USD) in the US will pay less than $80k (CAD) in Canada). I am not 100% sure why this is but that has been my experience. The effect becomes more pronounced based on where you want to live in Canada. There are significant regional differences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides the geographic location of the job there is also the role. You mention a couple different kinds of development work, as well as sysadmin work. Unless you are a one-man show in a small company you will be applying for a role that does one particular thing. The larger the company you go to the more specific it will get.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without seeing a resume it is impossible to give much more guidance. I do not know what kind of education you have, nor how many positions you've had, and in what industries. I strongly suggest listening to this podcast and then reviewing your own resume: &lt;a href=&quot;http://www.manager-tools.com/2005/10/your-resume-stinks&quot; rel=&quot;nofollow&quot;&gt;http://www.manager-tools.com/2005/10/your-resume-stinks&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take a look at the sites, scan the local and regional jobs that are posted and compare to what you've been paid up until now as a freelance developer to come up with your own number. Each persons number will be different and has to take into account other things like non-monetary (to you, at least) compensation like benefits, vacation, training, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck with your search!&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;As a small critique, if your general writing skills are represented by the question you wrote you might want to look into some communication skills courses, specifically written. If you cannot write in a clear and grammatically correct manner you will have a challenge getting ahead. If you think that code is all you will ever have to handle you are mistaken. In the end software is as much about people as it is about code.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;If you want to get into the US as a Canadian you will need at least a bachelor's degree and five years of work experience. If you have no other attachments you can try it for a year on a TN visa and see if it's something you want to pursue further. Right now, though, there are not many US employers who are sponsoring employees.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-09-30T19:07:50.697" CommentCount="2" />
  <row Id="8617" PostTypeId="1" CreationDate="2010-09-30T19:08:41.547" Score="14" ViewCount="703" Body="&lt;p&gt;Following the worst line of questions, I'm curious as to what the worst conditions you have had to work in are in relation to the environmental influence. If you had to write Perl code on top of Mt. Everest that would probably take the brass ring.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-27T14:24:07.180" ClosedDate="2011-02-05T22:03:49.197" Title="Worst working conditions (environmental or otherwise)" Tags="&lt;work-environment&gt;" AnswerCount="14" CommentCount="5" FavoriteCount="4" />
  <row Id="8618" PostTypeId="2" ParentId="8617" CreationDate="2010-09-30T19:12:00.613" Score="4" ViewCount="" Body="&lt;p&gt;I sat in front of a Chinese woman who talked all day on the phone and cellphone to her friends - in Chinese. Talking, laughing, and giggling. And I mean ALL DAY, EVERY DAY. Not very conducive to concentration when making changes to production databases.&lt;/p&gt;&#xA;" OwnerUserId="4202" LastActivityDate="2010-09-30T19:12:00.613" CommentCount="4" />
  <row Id="8619" PostTypeId="2" ParentId="8511" CreationDate="2010-09-30T19:16:14.220" Score="4" ViewCount="" Body="&lt;p&gt;There are strict laws (in the US at least) about discriminating on age. This kind of question can easily lead to a law suit. In any major corporation, you would not be allowed to pose this question as you have it.&lt;/p&gt;&#xA;" OwnerUserId="4202" LastActivityDate="2010-09-30T19:16:14.220" CommentCount="2" />
  <row Id="8620" PostTypeId="2" ParentId="8617" CreationDate="2010-09-30T19:16:52.163" Score="4" ViewCount="" Body="&lt;p&gt;In a small office without windows, without air and with a smelly colleague.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-09-30T19:16:52.163" CommentCount="3" />
  <row Id="8621" PostTypeId="2" ParentId="8402" CreationDate="2010-09-30T19:22:48.753" Score="0" ViewCount="" Body="&lt;p&gt;Unless you are asking questions about algorithms/formulas the candidate needs to know for the job (fluid dynamics, for example, if the position requires that), I dont see their value.  The candidate is already likely worrying about how they're dressed, how they're speaking, etc... whether they can answer a math question on the spot doesnt prove anything other than maybe how they might fare on a tv game show.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I interview, I dont even ask 'programming' questions per se.  I have the candidate describe their past projects, how their code achieved goals, what their approaches are, etc.  From that I can tell pretty quickly whether the candidate knows what he's doing or if he's a poser.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-09-30T19:22:48.753" />
  <row Id="8622" PostTypeId="2" ParentId="8511" CreationDate="2010-09-30T19:34:35.687" Score="10" ViewCount="" Body="&lt;p&gt;Wow, I'd get smacked by HR pretty hard if I asked a question like that and they found out.  Most interviewers are smart enough to avoid something potentially discriminatory like that, or at least phrase it differently to be less obviously ageist.  Like &quot;We tend to work pretty late, would this bother you?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, deflect the question to something positive (like all questions that might offend you):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I don't care about the age of the people I'm working with.  I just care about the skill they use for the job.  We can always learn from each other no matter how much experience and skill we have.  There's always something new to learn.&quot;&lt;/p&gt;&#xA;" OwnerUserId="3073" LastActivityDate="2010-09-30T19:34:35.687" CommentCount="2" />
  <row Id="8623" PostTypeId="2" ParentId="5215" CreationDate="2010-09-30T19:41:20.803" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.nofluffjuststuff.com/home/main&quot; rel=&quot;nofollow&quot; title=&quot;No Fluff, Just Stuff&quot;&gt;No Fluff, Just Stuff&lt;/a&gt;  The name pretty much says it all.&lt;/p&gt;&#xA;" OwnerUserId="2266" LastActivityDate="2010-09-30T19:41:20.803" />
  <row Id="8624" PostTypeId="2" ParentId="8617" CreationDate="2010-09-30T19:41:37.987" Score="10" ViewCount="" Body="&lt;p&gt;Though not programming related, I worked in a warehouse for several years, winding transformers.  We used copious amounts of solder, which, in itself, isn't necessarily a hazard.  Our grinding process, however, was.  We would regularly grind down heavy amounts of solder (tin + lead) which would get everywhere: eyes, ears, mouth, nose (our protective gear consisted of an apron and plastic goggles).  One of my coworkers had severe rage issues, which I attributed to 15 years of exposure to the stuff.  We also dipped copper wires into &lt;a href=&quot;http://www.solderpot.com/&quot; rel=&quot;nofollow&quot;&gt;solder pots&lt;/a&gt;, which would heat up to 600-800 degrees, with little/no protective gear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We regularly drove forklifts, uncertified, lifting palates with hundreds of pounds of copper and steel 15 to 20 feet into the air to place on shelves.  Our workforce was primarily temp workers, and we received tax credits for hiring from the local halfway house.  Thus, a good portion of our employees were former convicts (which isn't itself a bad thing, but those who were less &quot;reformed&quot; tended to be a bit more careless with their work).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of our managers had rage issues and would throw 15-20 pound transformers across the warehouse when upset (he was a pretty big guy).  We had a &lt;a href=&quot;http://www.sefelec.com/en/HIPOT-TESTER.php&quot; rel=&quot;nofollow&quot;&gt;hi-pot&lt;/a&gt; testing machine which could go up to 5000 V (tripping at .05 A) which one of our temps would clip to his nipple rings (I think he could only get the dial up to 150 before he couldn't stand it).  I electrocuted myself several times on the higher-amperage testing equipment, though survived with minor burns on my fingers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our non-temp workforce regularly came in drunk, or high, and would proceed to use high-powered &lt;a href=&quot;http://www.broomfieldusa.com/wirewinding/900/&quot; rel=&quot;nofollow&quot;&gt;winding machines&lt;/a&gt;, belt sanders, and band saws in their regular work.  One of them chopped off the upper tip of his finger on a metal shearer (much like &lt;a href=&quot;http://www.alibaba.com/product-gs/281669344/Foot_power_shearer.html&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;) when he was flying off of his latest pot break.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh yeah, and there were wasp nests outside too :)&lt;/p&gt;&#xA;" OwnerUserId="2294" LastActivityDate="2010-09-30T19:41:37.987" CommentCount="5" />
  <row Id="8625" PostTypeId="2" ParentId="8592" CreationDate="2010-09-30T19:41:43.527" Score="1" ViewCount="" Body="&lt;p&gt;We pair on semi-circular desks (at the end of rows of rectangular desks).  This lets you both comfortably sit at the desk still facing directly at the screen. I struggle to think of anything better.&lt;/p&gt;&#xA;" OwnerUserId="627" LastActivityDate="2010-09-30T19:41:43.527" />
  <row Id="8626" PostTypeId="2" ParentId="2291" CreationDate="2010-09-30T19:43:39.443" Score="0" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Ada_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;ADA 95&lt;/a&gt;&lt;/h2&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-30T19:43:39.443" CommunityOwnedDate="2010-09-30T19:43:39.443" />
  <row Id="8627" PostTypeId="2" ParentId="8511" CreationDate="2010-09-30T19:49:03.557" Score="5" ViewCount="" Body="&lt;p&gt;I think you need to start by asking them what it is about their culture that makes them think that someone with experience wouldn't fit in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's because the younger people are a bit gung-ho, or seen to be more driven, then use this to your advantage - you could bring some stable, methodical thinking and experience to compliment the bluesky, bright ideas and potentially hazardous thinking of someone with less experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As someone who has recruited scores of staff over the years, I'd never ask the age question in an interview. Age should never really come up - normally I'd be looking for the level of experience someone has got (e.g. hardly any experience for a Junior role, but bags of enthusiasm) and whether they can communicate!&lt;/p&gt;&#xA;" OwnerUserId="3749" LastActivityDate="2010-09-30T19:49:03.557" />
  <row Id="8628" PostTypeId="2" ParentId="5531" CreationDate="2010-09-30T19:50:20.000" Score="5" ViewCount="" Body="&lt;p&gt;I don't see any one primary cause--but one cause that hasn't been mentioned is &lt;strong&gt;unintentional coupling with other code&lt;/strong&gt;. Writing code that has invisible side-effects, breaks through abstraction layers, makes assumptions about data (variables won't, constants aren't, and no input from a user is safe), mucks with things that it doesn't need to concern itself with, and so forth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the development practices that I study boil down to reducing &lt;code&gt;N&lt;/code&gt;, because the complexity of a program is at least &lt;code&gt;O(N^2)&lt;/code&gt; and possibly &lt;code&gt;O(k^N)&lt;/code&gt;. Defining &lt;code&gt;N&lt;/code&gt; is left as an exercise for the reader, but I'm thinking of things like cyclomatic complexity here. Encapsulating logic and data has the effect of reducing N by compartmentalizing the problem.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-09-30T19:50:20.000" />
  <row Id="8629" PostTypeId="2" ParentId="8605" CreationDate="2010-09-30T19:54:01.040" Score="6" ViewCount="" Body="&lt;p&gt;Start a blog and mention on the &quot;about&quot; page that you are available for part time work. Update it regularly. When you go to conferences or meetings, hand out business cards. Be active on technical sites like StackOverflow. These things should generally cause people to want to hire you. Believe it or not, the major issue is that potential customers believe you must already be fully booked or wouldn't be willing to take on their problem. Meeting people at user group meetings and conferences is a good way to dispel that illusion. You can flat out say &quot;I have time to take on one further project this quarter&quot; to anyone who will listen. They need not know that you are trying to get from 0 to 1 current projects.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-09-30T19:54:01.040" />
  <row Id="8630" PostTypeId="2" ParentId="5531" CreationDate="2010-09-30T19:57:04.160" Score="4" ViewCount="" Body="&lt;p&gt;The inablity to think of everything.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-30T19:57:04.160" CommentCount="0" />
  <row Id="8631" PostTypeId="1" CreationDate="2010-09-30T20:00:41.227" Score="4" ViewCount="418" Body="&lt;p&gt;When you are defining a function/variable/etc. and are not sure what to name it. What do you name it? How do you come up with a name?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you use a &lt;strong&gt;&lt;em&gt;temporary&lt;/em&gt;&lt;/strong&gt; name as a place-card until you give it it's real name. What temporary name do you use?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h3&gt;update&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I have been using things like &lt;code&gt;WILL_NAME_LATER&lt;/code&gt;, &lt;code&gt;NEEDS_NAME&lt;/code&gt;, or &lt;code&gt;TO_BE_NAMED&lt;/code&gt;.. I was hoping there was an adopted convention, I was actually hoping that if I used this adopted convention my IDE would hight-light the name until I changed it.&lt;/p&gt;&#xA;" OwnerUserId="1785" LastEditorUserId="1785" LastEditorDisplayName="" LastEditDate="2010-10-01T15:07:54.243" LastActivityDate="2010-10-02T05:40:53.743" Title="What do you name functions/variables/etc when you cant think of a good name?" Tags="&lt;naming-conventions&gt;&lt;variables&gt;&lt;functions&gt;" AnswerCount="18" CommentCount="7" />
  <row Id="8632" PostTypeId="2" ParentId="1750" CreationDate="2010-09-30T20:01:54.470" Score="1" ViewCount="" Body="&lt;p&gt;If you are given a task, and eithe the only way you can accomplish it on time, you don't really have a choice. I do think it is wise to let those in charge know what you are doing. You should not go outside the required source control (unless it just absolutely doesn't work at all?) testing and documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes a company may have to let a single developer start looking into a new area of development. Unfortunately, the code may make its way into production faster than anyone else can get up to speed. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-09-30T20:01:54.470" CommentCount="1" />
  <row Id="8633" PostTypeId="1" AcceptedAnswerId="8637" CreationDate="2010-09-30T20:02:03.843" Score="7" ViewCount="247" Body="&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/LordPalmerston.html&quot; rel=&quot;nofollow&quot;&gt;This quote by Joel Spolsky&lt;/a&gt; resonated with me:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;Which is better, XUL, Eclipse's SWT, or wxWindows? I don't know. They are all such huge worlds that I couldn't really evaluate them and tell. It's not enough to read the tutorials. You have to sweat and bleed with the thing for a year or two before you really know it's good enough...  Unfortunately, for most projects, you have to decide on which world to use before you can write the first line of code, which is precisely the moment when you have the least information.&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'm enough of a perfectionist that I &lt;i&gt;hate&lt;/i&gt; the thought of picking a framework for a new project without complete knowledge of what the best choice is, but the fact is that, as Joel says, there's no (practical) way to have complete knowledge of what the best choice is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now I'm trying to pick a web framework.  Right now, based on our target platforms and my judgment of various languages, I'd pick Python over Ruby, C# / ASP.NET, or Java / J2EE.  Of the available Python frameworks, based on &lt;a href=&quot;http://stackoverflow.com/questions/48681/pros-cons-of-django-vs-pylons&quot;&gt;this SO question&lt;/a&gt;, I'd pick Pylons over Django.  (Our intended projects are somewhat specialized, not content-related, so Pylons' flexibility sounds better than Django's CMS support and built-in admin.  Our team has relatively little experience in any of the alternatives, so that's not a significant factor.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But Django is substantially more popular than Pylons, and Ruby on Rails or ASP.NET are substantially more popular than Django.  So what am I to conclude?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The very popular choices are more popular because they're much better, so I should pick one of the more popular choices instead of what I'm currently planning.&lt;/li&gt;&#xA;&lt;li&gt;The very popular choices are not necessarily much better, but more popularity means better documentation, better community support, better add-ons, and an easier time finding developers with prior experience, so I should pick one of the more popular choices instead of what I'm currently planning.&lt;/li&gt;&#xA;&lt;li&gt;Any of the options would be good, so I should pick what sounds best for my target project without stressing about popularity.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="3223" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-01-25T02:13:13.953" LastActivityDate="2011-01-25T02:13:13.953" Title="How to pick a framework" Tags="&lt;frameworks&gt;&lt;decisions&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="8634" PostTypeId="2" ParentId="8631" CreationDate="2010-09-30T20:04:01.520" Score="3" ViewCount="" Body="&lt;p&gt;I name it what I think the function should do -- something that more or less conveys the intent. Once the body of the function is written, I find it obvious what to call it and go back and rename it if needed.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-09-30T20:04:01.520" CommentCount="20" />
  <row Id="8635" PostTypeId="2" ParentId="8402" CreationDate="2010-09-30T20:05:16.183" Score="0" ViewCount="" Body="&lt;p&gt;You want a question that will give you insight into the candidate. An algorithm question may give a good response, or it may not. And I'm not referring to them being able to answer it or not. If they work through it, and you understand and follow their reasoning, that's a good indicator. If they just sit there, no real response, don't seem to even know where to start, that's a bad indicator (maybe). The problem would be that some people freeze up, and differentiating freezing up from not having problem solving skills may be difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People will complain about asking just about anything in interviews, for various reasons. The applicant may freeze up, the applicant could have just looked that question up, the applicant may not know that particular piece of trivia/tech/whatever. All this is true, but an interview still needs to happen, and many of us in this profession hate that. We hate the idea of someone sitting in judgement of us. We immediately conjure up reasons why we could be judged unfairly, or how the test could be bogus or gamed.  Bottom line is, it doesn't matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you really want is an interviewer with the ability to determine skills that may or may not be presented during the interview. Questions are just the tools. To me, all hammers look the same. But to someone skilled enough with them, I'm sure there's difference.&lt;/p&gt;&#xA;" OwnerUserId="4109" LastActivityDate="2010-09-30T20:05:16.183" />
  <row Id="8636" PostTypeId="2" ParentId="8631" CreationDate="2010-09-30T20:05:46.017" Score="0" ViewCount="" Body="&lt;p&gt;I tend to use stuff on my desk.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cup&lt;/li&gt;&#xA;&lt;li&gt;Alt&lt;/li&gt;&#xA;&lt;li&gt;Foo&lt;/li&gt;&#xA;&lt;li&gt;b / a / c (single letter junk)&lt;/li&gt;&#xA;&lt;li&gt;alk (pronounceable multi-letter junk)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I also lean towards generic names (for functions at least):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;swap&lt;/li&gt;&#xA;&lt;li&gt;process&lt;/li&gt;&#xA;&lt;li&gt;reviseVar&lt;/li&gt;&#xA;&lt;li&gt;tinker&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This is for temporary stuff though. I &lt;em&gt;swear&lt;/em&gt; nothing makes it into the repository, much less production. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;...&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-30T20:05:46.017" CommentCount="2" />
  <row Id="8637" PostTypeId="2" ParentId="8633" CreationDate="2010-09-30T20:09:07.850" Score="6" ViewCount="" Body="&lt;h2&gt;Don't choose based on the community&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Well, unless you're looking for good documentation and support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find something that you are comfortable with and use that. Then pray it has a decent user base so when you get stuck you aren't up a creek. If it doesn't have that, create the user base. Rip the source apart and figure out how it works so when other people have questions you can answer them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, you're comparing ROR (Ruby) to Django (Python) and ASP.NET (.NET). There are different uses for each. Ruby people like ROR. Pyton people like Django. .NET developers will probably use ASP.NET. I don't see a lot of competition between languages, more like internal struggles. Compare CakePHP and CodeIgniter, or better yet, &lt;a href=&quot;http://stackoverflow.com/search?q=php+framework&quot;&gt;search SO for &lt;code&gt;php framework&lt;/code&gt;&lt;/a&gt; and see what you come up with.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I recently started work on a project, and the goal at the time was to use Java. Turns out I haven't done as much Java web development as I thought, heck there's a Struts &lt;em&gt;2&lt;/em&gt; now. After playing with about eight different frameworks I settled on Play! Then ended up scrapping that a month later in favor of ditching Java and moving to Node.js. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My point is sometimes you aren't going to know until you start coding, and even then you might be up to your knees before you realize that your choice was really &lt;em&gt;bad&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-30T20:09:07.850" />
  <row Id="8638" PostTypeId="2" ParentId="8631" CreationDate="2010-09-30T20:12:05.333" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;foo&lt;/strong&gt; and &lt;strong&gt;bar&lt;/strong&gt;.  Since there's no meaning behind naming functions/variables just yet, I use some combination of Foo and/or Bar with whatever I'm trying to define.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It makes it easy to search/find later on when I do have a better understanding of what it should be named.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also see &lt;a href=&quot;http://en.wikipedia.org/wiki/Foobar&quot; rel=&quot;nofollow&quot;&gt;Foobar on wikipedia&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The terms foobar, foo, bar, and baz are sometimes used as placeholder names (also referred to as metasyntactic variables) in computer programming or computer-related documentation. They have been used to name entities such as variables, functions, and commands whose purpose is unimportant and serve only to demonstrate a concept. The words themselves have no meaning in this usage. Foobar is sometimes used alone; foo, bar, and baz are sometimes used in that order, when multiple entities are needed.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-09-30T20:12:05.333" />
  <row Id="8639" PostTypeId="2" ParentId="8631" CreationDate="2010-09-30T20:14:17.257" Score="1" ViewCount="" Body="&lt;p&gt;WorkMagic or Abracadabra. &lt;/p&gt;&#xA;" OwnerUserId="1964" LastActivityDate="2010-09-30T20:14:17.257" />
  <row Id="8640" PostTypeId="2" ParentId="8631" CreationDate="2010-09-30T20:15:54.947" Score="15" ViewCount="" Body="&lt;p&gt;I always try to give my variables and functions &lt;strong&gt;great names&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I can't think of a great name, I'll settle for a &lt;strong&gt;good name&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I can't come up with a good name, I'll use an &lt;strong&gt;okay name&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have never, in 15 years of professional programming, been unable to come up with a decent name.&lt;/p&gt;&#xA;" OwnerUserId="467" LastActivityDate="2010-09-30T20:15:54.947" CommentCount="2" />
  <row Id="8641" PostTypeId="2" ParentId="8631" CreationDate="2010-09-30T20:22:16.690" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;blah&lt;/strong&gt;, but only temporarily.  I always go back and rename them to good variable names.&lt;/p&gt;&#xA;" OwnerUserId="3920" LastActivityDate="2010-09-30T20:22:16.690" />
  <row Id="8642" PostTypeId="2" ParentId="6394" CreationDate="2010-09-30T20:25:06.810" Score="3" ViewCount="" Body="&lt;p&gt;There are many different ways to do this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's one I found that I would endorse - it has the freelancer approach, but really this is what you want to be doing:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://tutorialblog.org/writing-a-project-proposal/&quot; rel=&quot;nofollow&quot;&gt;http://tutorialblog.org/writing-a-project-proposal/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are lots of guides online.  The trick is to know which one will suit your needs. I taught a class in this stuff. My endorsed article really seems to be the essence of what customers want, and what should get you in the door.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This does NOT replace a project plan, which can be a more elaborate animal entirely.&lt;/p&gt;&#xA;" OwnerUserId="3784" LastActivityDate="2010-09-30T20:25:06.810" />
  <row Id="8643" PostTypeId="2" ParentId="8631" CreationDate="2010-09-30T20:27:13.617" Score="7" ViewCount="" Body="&lt;p&gt;If you can't think of a good name on a variable or function, you either don't understand what you're doing or you got a poor design. Either way, slapping some arbitrary name like &quot;x&quot; (unless you're dealing with coordinates) won't solve your dilemma; it will only make it worse and the pain to maintain greater.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-30T20:27:13.617" CommentCount="12" />
  <row Id="8644" PostTypeId="2" ParentId="8511" CreationDate="2010-09-30T20:30:01.347" Score="2" ViewCount="" Body="&lt;p&gt;Part of that experience should be include the ability to work with a broad cross-section of people.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But rather than answer the question, I would be inclined to respond with &quot;What do you mean?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the &quot;culture&quot; being referenced?  Is this another way of asking will you join us at the watering hole after work, the golf course on the weekends, etc?&lt;/p&gt;&#xA;" OwnerUserId="4107" LastActivityDate="2010-09-30T20:30:01.347" />
  <row Id="8645" PostTypeId="2" ParentId="8631" CreationDate="2010-09-30T20:34:00.957" Score="0" ViewCount="" Body="&lt;p&gt;Prefix your function with something and give it a best-shot name for now. For example, a function that saves-all-products-for-the-selected-user-to-the-database could be &lt;code&gt;RENAME_SaveAllProductsForTheSelectedUserToTheDatabase&lt;/code&gt;()&lt;/p&gt;&#xA;" OwnerUserId="4202" LastActivityDate="2010-09-30T20:34:00.957" CommentCount="1" />
  <row Id="8646" PostTypeId="2" ParentId="8562" CreationDate="2010-09-30T20:35:56.397" Score="10" ViewCount="" Body="&lt;p&gt;If you've worked with solely Java for 3 years, I would recommend that you learn a different programming language. This is not to get you to move away from Java (as in &quot;Java bad! No use Java! Use this instead!&quot;) but to give you new insights on how you can do what you already do differently. To broaden your views, so to speak.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-09-30T20:35:56.397" CommentCount="6" />
  <row Id="8647" PostTypeId="2" ParentId="8297" CreationDate="2010-09-30T20:36:38.533" Score="0" ViewCount="" Body="&lt;p&gt;Try suggesting that your company negotiate a &lt;strong&gt;retainer&lt;/strong&gt; contract, and then adopt your agile methodology to service the customer needs. You get paid $X for Y number of hours a month from your team. Because the customer is driving the priorities, nobody is going to be out of pocket.  The beauty of the retainer is that they get your time regardless of what you're working on for them, and they can basically change their mind without killing you. The customer will get their value sooner for their money, and the model supports driving changes into the mix during development because of the agile methodology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the contract is not negotiable, then try the agile model anyways, but then you have to be diligent about making sure you're getting paid for your time.&lt;/p&gt;&#xA;" OwnerUserId="3784" LastActivityDate="2010-09-30T20:36:38.533" />
  <row Id="8648" PostTypeId="2" ParentId="7861" CreationDate="2010-09-30T20:38:03.273" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Asking for salary history.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's none of their business and likely to mean they aren't interested in talent so much as hiring warm bodies to burn through.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-09-30T20:38:03.273" CommunityOwnedDate="2010-10-01T04:30:47.273" CommentCount="2" />
  <row Id="8649" PostTypeId="2" ParentId="8631" CreationDate="2010-09-30T20:40:37.967" Score="2" ViewCount="" Body="&lt;p&gt;This question and especially its answers scare me senseless. Somebody's going to have to maintain that code in which you just named a variable &quot;Cup&quot;, you know. If you're not lucky, that somebody will be you!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You've got a variable. It's a thing. It represents a thing, anyway. And things have names. &lt;em&gt;That's how you know they're things!&lt;/em&gt; Are you really telling me you have to name a thing after another thing because you can't come up with the name of the actual thing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Iterators should be called i. Nested iterators are likely a mistake, but if you need them, then make your way through the rest of the vowels, in order (a, e, o, u, and god help me, yes, sometimes y). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from that, just call the thing what it is and be done with it!&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-09-30T20:40:37.967" CommentCount="4" />
  <row Id="8650" PostTypeId="2" ParentId="8631" CreationDate="2010-09-30T20:42:48.340" Score="7" ViewCount="" Body="&lt;p&gt;It's nearly impossible to not be able to think of a name for an artifact you want to design. You may not like what name you come up with because it isn't concise or sexy, but if you think too hard, you'll end up with a poorly named artifact.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's say you have something that helps you construct objects, but you don't know this is typically called a factory. Just call it ObjectCreator. It sounds obtuse, but at least it's clear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's say you have a dictionary that converts hostnames to IP addresses. Just go ahead and call it HostnamesToIpAddresses. Sure it's long, but it says exactly what it does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The inability to come up with a name for something means you don't know what it is doing, which also means you have a greater problem before you.&lt;/p&gt;&#xA;" OwnerUserId="3119" LastActivityDate="2010-09-30T20:42:48.340" CommentCount="1" />
  <row Id="8651" PostTypeId="2" ParentId="8631" CreationDate="2010-09-30T20:44:17.510" Score="1" ViewCount="" Body="&lt;p&gt;In the past I used &lt;strong&gt;bob&lt;/strong&gt; a lot, but this would be the only not-properly-named variable in the function/script because otherwise the code quickly gets unreadable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(bob is a hangover from uni days - getting away with calling variables bob and fred)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm happy to use &lt;strong&gt;i&lt;/strong&gt; for a counter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Better to use meaningful names, even if they're not short and snappy.&lt;/p&gt;&#xA;" OwnerUserId="4205" LastActivityDate="2010-09-30T20:44:17.510" CommentCount="3" />
  <row Id="8652" PostTypeId="2" ParentId="8631" CreationDate="2010-09-30T20:45:04.793" Score="0" ViewCount="" Body="&lt;p&gt;If I absolutely have no idea what to name the variable, which hasn't happened in over twenty years...names of old girlfriends, or women I wish had been girlfriends.  The last code with those identifiers was removed from production quite a few years ago.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-09-30T20:45:04.793" />
  <row Id="8653" PostTypeId="2" ParentId="7245" CreationDate="2010-09-30T20:48:06.367" Score="1" ViewCount="" Body="&lt;p&gt;Have you tried&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;object  type=&quot;text/html&quot; data=&quot;page.html&quot; height=&quot;500&quot; width=&quot;500&quot;&amp;gt;&#xA;What I see if that didn't work &#xA;&amp;lt;/object&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I think that's implemented in most browsers.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-09-30T20:48:06.367" CommentCount="1" />
  <row Id="8654" PostTypeId="1" CreationDate="2010-09-30T20:50:02.543" Score="2" ViewCount="97" Body="&lt;p&gt;We starting a new project and one of the requirements is to dynamically generate PDFs.  The application will be web based (probably JQuery or GWT based) and we must support mainstream browsers.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Would you generate the PDF on the client side (assuming all the data is there) or on the server?  I'm thinking the server side but I'm willing to be convinced that it can and should be done on the client instead.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;What libraries or other tools would you use to generate these PDFs?  IText comes to mind as does XSL:FO but are there better choices?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4122" LastActivityDate="2010-09-30T22:56:20.533" ClosedDate="2010-10-01T02:05:46.640" Title="What's the best way to generate PDFs for a web based application?" Tags="&lt;web-development&gt;&lt;libraries&gt;" AnswerCount="2" CommentCount="3" />
  <row Id="8655" PostTypeId="2" ParentId="5916" CreationDate="2010-09-30T20:57:33.327" Score="4" ViewCount="" Body="&lt;p&gt;We use &lt;code&gt;StyleCop&lt;/code&gt; at work, which forces things like this, and makes me ueber-happy. Programmers can never agree on style, and forget to comment things. StyleCop is a pretty damn good whip.&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-09-30T20:57:33.327" />
  <row Id="8656" PostTypeId="2" ParentId="2291" CreationDate="2010-09-30T20:59:38.553" Score="0" ViewCount="" Body="&lt;h1&gt;VBScript&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Yep, I worked as an ASP web developer. Although shortly thereafter I learned Java, and then Objective-C, and then...well, a bunch of others. I haven't touched VBScript since (not sure if I even remember it all that well).&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-09-30T20:59:38.553" CommunityOwnedDate="2010-09-30T20:59:38.553" />
  <row Id="8658" PostTypeId="2" ParentId="8654" CreationDate="2010-09-30T21:14:13.370" Score="1" ViewCount="" Body="&lt;p&gt;About 6 years ago I used &lt;a href=&quot;http://www.htmldoc.org/&quot; rel=&quot;nofollow&quot;&gt;HTMLDOC&lt;/a&gt; to generate PDFs from HTML on the server.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-09-30T21:14:13.370" />
  <row Id="8660" PostTypeId="1" AcceptedAnswerId="8662" CreationDate="2010-09-30T21:26:45.257" Score="8" ViewCount="172" Body="&lt;p&gt;We're integrating Mercurial slowly in our office and doing web-development we started using named branches.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We haven't quite found a good convention as far as naming our branches though.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We tried: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;FeatureName (Can see this causing problem down the line)&lt;/li&gt;&#xA;&lt;li&gt;DEVInitial_FeatureName (Could get confusing when developer come and go down the line)&lt;/li&gt;&#xA;&lt;li&gt;{uniqueID (int)}_Feature&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So far the uniqueID_featureName is winning, we are thinking of maintaining it in a small DB just for reference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would have:&#xA;branchID(int), featureName(varchar), featureDescription(varchar), date, who etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This would give us branches like: 1_NewWhizBangFeature, 2_NowWithMoreFoo, ... and we would have an easy reference as to what that branch does without having to check the log.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any better solution out there?&lt;/p&gt;&#xA;" OwnerUserId="2829" LastActivityDate="2010-10-01T02:50:06.900" Title="Good naming convention for named branches in {DVCS} of your choice." Tags="&lt;best-practices&gt;&lt;version-control&gt;&lt;mercurial&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="8661" PostTypeId="2" ParentId="8631" CreationDate="2010-09-30T21:46:11.097" Score="0" ViewCount="" Body="&lt;p&gt;It is best to put a good name in soon while you have the code in mind, than to wait until later when you'll be wishing you had named it well!&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-09-30T21:46:11.097" />
  <row Id="8662" PostTypeId="2" ParentId="8660" CreationDate="2010-09-30T21:50:02.440" Score="7" ViewCount="" Body="&lt;p&gt;If you don't have an issue tracker, I recommend setting one up and then using {issue tracker name}_{ticket number}. When someone years from now files a bug and you don't know exactly how the feature was supposed to work, it'll be easy to annotate the file and get back to where the user may have requested that exact functionality.&lt;/p&gt;&#xA;" OwnerUserId="4071" LastActivityDate="2010-09-30T21:50:02.440" CommentCount="3" />
  <row Id="8665" PostTypeId="2" ParentId="8496" CreationDate="2010-09-30T22:04:15.073" Score="1" ViewCount="" Body="&lt;p&gt;I don't know about the US, but I can give you a single example from the UK.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.softwire.com/recruitment.htm&quot; rel=&quot;nofollow&quot;&gt;My current employer&lt;/a&gt; (Yes, I know, shameless plug, but it's a valid example) offers the following package for recent graduates:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;2009 graduate starting salary of £28,000 - more for those with experience&lt;/li&gt;&#xA;&lt;li&gt;annual bonus and profit share to further reward your contribution to the company’s success – graduates can expect to earn in the region of £35,000 in their first full year&lt;/li&gt;&#xA;&lt;li&gt;pension, permanent health insurance and all the other boring stuff.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This example is for a relatively high salary (I think) for a beginner. To know how much an experienced developer can make, add roughly 8-10% per year (this is a just rough guess but sounds right to me).&lt;/p&gt;&#xA;" OwnerUserId="2616" LastActivityDate="2010-09-30T22:04:15.073" />
  <row Id="8666" PostTypeId="2" ParentId="8660" CreationDate="2010-09-30T22:17:46.190" Score="1" ViewCount="" Body="&lt;p&gt;I suggest to keep it simple and name branches according to the &lt;code&gt;FeatureName&lt;/code&gt; (or &lt;code&gt;feature-name&lt;/code&gt;) convention. Yes, this means a shared namespace, but this is rarely a problem in the real world. Once a feature is done and completely merged into the mainline the branch can be safely deleted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main idea of distributed version control is that it should be easy to branch, introducing additional bureaucracy, like the obligatory unique id, is only going to make this harder.&lt;/p&gt;&#xA;" OwnerUserId="2313" LastActivityDate="2010-09-30T22:17:46.190" CommentCount="4" />
  <row Id="8667" PostTypeId="2" ParentId="4863" CreationDate="2010-09-30T22:45:54.673" Score="0" ViewCount="" Body="&lt;p&gt;You would think with the success of XSLT that &#xA;&lt;a href=&quot;http://www.w3.org/TR/xslt20/&quot; rel=&quot;nofollow&quot;&gt;XSLT2&lt;/a&gt; would be a big success but it is still relatively unknown.  It contains several significant improvements over it's predecessor (grouping, regular expressions, support for XPath 2 etc).  With the rise of JSON as the web format of choice and landscape of HTML5 looks to be moving away from XML compliance, it looks like XSLT2 will never be as successful as its predecessor.  Also from the XML arena there numerous interesting and obscure languages (XQuery, SPARQL etc).&lt;/p&gt;&#xA;" OwnerUserId="4211" LastActivityDate="2010-09-30T22:45:54.673" CommunityOwnedDate="2010-10-22T23:54:06.263" />
  <row Id="8668" PostTypeId="2" ParentId="358" CreationDate="2010-09-30T22:46:32.880" Score="7" ViewCount="" Body="&lt;p&gt;VB3 on a (very) big project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;VB3 has an interesting error message that sometimes happens when you press Run:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Too much code.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's it. That's the entire error message. It meant I had to find an unused part of the code and delete it. Or just remove some comments, that usually fixed it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also had a limitation on the number of constants allowed. Since I had a constant id for each &quot;Plan&quot;, and the customer kept adding plans, I always had to find some constants to remove.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The number of functions allowed was also limited. The only option was to write long functions in the form of:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;If CalculationType = 1 Then&#xA;  ....&#xA;ElseIf CalculationType = 2 Then&#xA;  ....&#xA;ElseIf CalculationType = 3 Then&#xA;  ....&#xA;End If&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2616" LastActivityDate="2010-09-30T22:46:32.880" CommunityOwnedDate="2010-09-30T22:46:32.880" CommentCount="3" />
  <row Id="8669" PostTypeId="2" ParentId="8654" CreationDate="2010-09-30T22:56:20.533" Score="1" ViewCount="" Body="&lt;p&gt;I went through a &lt;a href=&quot;http://joshuakehn.com/blog/view/4/Download-Posts&quot; rel=&quot;nofollow&quot;&gt;similar issue&lt;/a&gt; and ended up using &lt;a href=&quot;http://codeigniter.com/wiki/PDF_generation_using_dompdf/&quot; rel=&quot;nofollow&quot;&gt;dompdf&lt;/a&gt; which supports a good amount of CSS rules.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-09-30T22:56:20.533" />
  <row Id="8671" PostTypeId="2" ParentId="8617" CreationDate="2010-09-30T23:10:47.137" Score="8" ViewCount="" Body="&lt;p&gt;Programming related:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This office:&lt;br&gt;&#xA;&lt;img src=&quot;http://i56.tinypic.com/iz287n.png&quot; alt=&quot;Office&quot;&gt;&lt;br&gt;&#xA;I had to squeeze in my seat so that people could get and out of the room. For some slighly bigger people I had to get up...&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Not programming related:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Inside a 1000-something litre fuel tank. Need I say more?&lt;/p&gt;&#xA;" OwnerUserId="2616" LastActivityDate="2010-09-30T23:10:47.137" CommentCount="5" />
  <row Id="8672" PostTypeId="2" ParentId="8496" CreationDate="2010-09-30T23:34:43.687" Score="2" ViewCount="" Body="&lt;p&gt;High end pay experience here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got my first job offer from IBM in Poughkeepsie in 2007 at $65k or so. A startup in California beat them out to pay me $74k, and now I'm making $96k (base salary). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;BUT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I had lots of preprofessional experience (including two internships at IBM, an internsip elsewhere, and a job during the school year doing sysadmin / web development for 4 years during college). I did hobby programming through highschool.&lt;/li&gt;&#xA;&lt;li&gt;I'm apparently pretty darned good? Or so they tell me. :b&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also, there's equity pay...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I got bought out, there was a $10k bonus and a few snazzy stock options. There was also an employee stock purchase plan. Acquiring company's stock tanked to $2 (some sort of &quot;credit crunch&quot; and &quot;recession&quot;). The options got repriced. The stock purchase plan price got locked in for 2 years. The stock is now trading over $20. People who participated in the stock plan stand to have made up to more than $100,000 on purchase-day day sales alone. I've been turning down random recruiters who inquire if I'm interested, saying &quot;maybe some other year; you're not really interested in the low six-figure buyout you need to get me over there before I make all this money.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nice deal, if you can get it.&lt;/p&gt;&#xA;" LastActivityDate="2010-09-30T23:34:43.687" CommentCount="1" />
  <row Id="8673" PostTypeId="2" ParentId="8496" CreationDate="2010-09-30T23:38:51.857" Score="0" ViewCount="" Body="&lt;p&gt;Just starting off it's not going to be much. But once you have a few skills under your belt then it becomes a different story. &lt;a href=&quot;http://www.payscale.com&quot; rel=&quot;nofollow&quot;&gt;This link may help.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-09-30T23:38:51.857" />
  <row Id="8674" PostTypeId="2" ParentId="358" CreationDate="2010-09-30T23:41:22.957" Score="2" ViewCount="" Body="&lt;p&gt;PS2 Vector Unit assembly.. just like regular assembly, except you write your code in two columns for the two instructions it can execute per cycle. Of course there are restrictions to which opcodes can be used in each column.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're a noob you can just write it sequentially and let the assembler handle it, but if you're not trying to write fast code, you probably shouldn't be working on the VUs!&lt;/p&gt;&#xA;" OwnerUserId="4217" LastEditorUserId="4217" LastEditorDisplayName="" LastEditDate="2010-11-14T23:16:56.710" LastActivityDate="2010-11-14T23:16:56.710" CommunityOwnedDate="2010-09-30T23:41:22.957" />
  <row Id="8676" PostTypeId="2" ParentId="8617" CreationDate="2010-09-30T23:45:12.007" Score="1" ViewCount="" Body="&lt;p&gt;A small, very dusty cubicle with an older lady sitting next to me who always want to talk all the time... mostly about her dogs. The worst part is... the company I worked for specialize in car audio equipment so I have to hear tech support testing sub woofers all day from the floor above me.&lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-09-30T23:45:12.007" CommentCount="1" />
  <row Id="8677" PostTypeId="1" AcceptedAnswerId="8678" CreationDate="2010-09-30T23:57:18.257" Score="5" ViewCount="142" Body="&lt;p&gt;I'm not sure if I'm using the correct term, but would you program using High-level abstractions like Powerbuilder, or some CMS like MODx or DotNetNuke? I haven't dabbled in any of these yet. The reason I'm asking is that I kind of feel intimidated by the whole notion of using any abstraction over the languages I'm using. I'm thinking that my job might be over-simplified. While it may provide business solutions faster, I'd rather be coding straight from, in my case, .NET. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do/Would you use abstractions like these or prefer them over programming in lower level languages?&lt;/p&gt;&#xA;" OwnerUserId="1668" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-02T07:57:20.523" LastActivityDate="2010-10-02T07:57:20.523" Title="Using High Level Abstractions" Tags="&lt;programming-languages&gt;&lt;abstractions&gt;&lt;software-development&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="8678" PostTypeId="2" ParentId="8677" CreationDate="2010-10-01T00:12:04.233" Score="7" ViewCount="" Body="&lt;p&gt;I've got no problem with using high-level abstractions, with two caveats:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Any abstraction that you can't get underneath when necessary is evil, because &lt;a href=&quot;http://www.joelonsoftware.com/articles/LeakyAbstractions.html&quot; rel=&quot;nofollow&quot;&gt;it will occasionally be necessary.&lt;/a&gt;  Avoid these.&lt;/li&gt;&#xA;&lt;li&gt;Don't ever use any abstraction without a solid understanding of what's really going on under the hood.  Not doing this will frequently cause performance problems, and occasionally cause correctness problems, both of which are very difficult to debug since you don't know what's really happening.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-01T00:12:04.233" />
  <row Id="8679" PostTypeId="2" ParentId="8617" CreationDate="2010-10-01T00:18:41.913" Score="2" ViewCount="" Body="&lt;p&gt;I developed software standing up on a concrete floor of a coca-cola bottling plant. Luckily, it was only for three days. Usually standing on concrete for a day is bad enough, but to add the clankity-clank of the bottles and machines.... oh! It still hurts. &lt;/p&gt;&#xA;" OwnerUserId="4218" LastActivityDate="2010-10-01T00:18:41.913" />
  <row Id="8681" PostTypeId="2" ParentId="8562" CreationDate="2010-10-01T00:27:56.163" Score="2" ViewCount="" Body="&lt;p&gt;I would say there are a few different directions you could go:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;You know Java and the Java platform. Try the &lt;strong&gt;.Net platform&lt;/strong&gt; with C# which is a similar languages and will be easy to learn for you.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You know Java and object oriented programming. Try &lt;strong&gt;functional programming&lt;/strong&gt; with &lt;a href=&quot;http://www.scala-lang.org/&quot; rel=&quot;nofollow&quot;&gt;Scala&lt;/a&gt; on the JVM and be able to use Java libraries.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Or learn more and go deeper with Java. Try &lt;a href=&quot;http://www.terracotta.org/&quot; rel=&quot;nofollow&quot;&gt;Terracotta&lt;/a&gt; &lt;strong&gt;cluster computing&lt;/strong&gt; with Java.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-01T00:27:56.163" CommentCount="1" />
  <row Id="8682" PostTypeId="2" ParentId="5916" CreationDate="2010-10-01T00:50:45.997" Score="1" ViewCount="" Body="&lt;p&gt;A good practice is use &lt;a href=&quot;http://submain.com/products/ghostdoc.aspx&quot; rel=&quot;nofollow&quot;&gt;GhostDoc&lt;/a&gt; to create an initial sub for your method comments. This is a fantastic product which is free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's important to use comments because 9 out of 10 projects will come back to haunt you if don't add comments. At the time of writing the method it made sense, 6 months later might be a very different story.&lt;/p&gt;&#xA;" OwnerUserId="4219" LastEditorUserId="4217" LastEditorDisplayName="" LastEditDate="2011-03-09T02:42:59.273" LastActivityDate="2011-03-09T02:42:59.273" />
  <row Id="8683" PostTypeId="2" ParentId="6284" CreationDate="2010-10-01T01:21:13.067" Score="2" ViewCount="" Body="&lt;p&gt;The epic war of Microsoft vs. Sun/Oracle&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Been a java trained and commercial developer converted to C# for past 3 years it’s impossible for me to recommend java over c#. &#xA;Java was amazing when it was released and I love the language however it’s become stagnate over years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Microsoft has continually improved and add new features, C# is the leader in the modern language stakes. Where I do start, C# 4.0 leaves java 6 for dead in many area. Linq, WCF, ASP.NET web forms, ASP.NET mvc, AppFabric its constantly improving whilst java is slowly changing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore Oracle is now suing Google which will lead to the slow death of java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;example of C# vs. Java&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;string found = &quot;&quot;;&#xA;ArrayList&amp;lt;Product&amp;gt; productItems = new ArrayList&amp;lt;Product&amp;gt;();&#xA;for(Product item : productItems)&#xA;{&#xA;   if(item.ProductName.equalsIgnoreCase(&quot;fridge&quot;))&#xA;   {&#xA;     found =item.ProductName;&#xA;   }&#xA;&#xA;} &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;in C# 3.0 +&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;List&amp;lt;Product&amp;gt; productItems = new List&amp;lt;Product&amp;gt;();&#xA;&#xA;    var result = (from item in productItems &#xA;                  where item.ProductName&#xA;                  .equal(&quot;fridge&quot;,StringComparison.OrdinalIgnoreCase)&#xA;                  select item).FirstOrDefault();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;unfortunately there is no comparison C# is more advance and easy to use language for everything at the moment.&lt;/p&gt;&#xA;" OwnerUserId="4219" LastEditorUserId="4219" LastEditorDisplayName="" LastEditDate="2010-10-01T06:23:24.013" LastActivityDate="2010-10-01T06:23:24.013" CommentCount="4" />
  <row Id="8684" PostTypeId="1" CreationDate="2010-10-01T01:25:02.230" Score="5" ViewCount="445" Body="&lt;p&gt;So, Silicon Valley is well known (with San Francisco/the Peninsula) as being packed with high-tech companies and high-tech jobs. If you want a job in tech, you can move out there and be reasonably confident that you can find a variety of options without much difficulty at all. If you lose your job because your company goes under, you can certainly find something else. (Qualifications and general state of the economy permitting, naturally.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is all fine and dandy, but I'm curious: what other places are hubs for jobs in technology and programming? What are they like, in terms of any huge companies (e.g. Microsoft) or bias toward a particular part of the industry (e.g. finance)? Any other insights about benefits or gotchas in the location (e.g. lousy weather, insane cost of living)? I'm mostly wondering about the US, but would be interested in hearing about major international hubs as well, particularly in English-speaking countries. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I'm setting this to &quot;Community Wiki&quot; since I think that's what I'm supposed to do when there's more than just one &quot;right answer&quot;.)&lt;/p&gt;&#xA;" OwnerUserId="2348" LastActivityDate="2010-12-22T15:37:34.637" CommunityOwnedDate="2010-10-01T01:25:02.230" Title="Where do programmers congregate to find jobs?" Tags="&lt;career&gt;&lt;geography&gt;&lt;job-market&gt;" AnswerCount="11" CommentCount="3" FavoriteCount="1" />
  <row Id="8685" PostTypeId="1" AcceptedAnswerId="8768" CreationDate="2010-10-01T01:27:28.887" Score="8" ViewCount="640" Body="&lt;p&gt;Every so often I get asked for an explanation for some programming-related bit of jargon.  Sometimes, if I know the person who's asking will get the joke, I make up the answer.  For example, today the word &quot;blitting&quot; crept into an email thread and one of the S&amp;amp;M folk replied,&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Not too sure what &quot;blitting&quot; is; a technical term perhaps ;-)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;and I wrote back,&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Yes.  It refers to the process of&#xA;  ensuring the Heidegger component&#xA;  integrity is unchallenged among shared&#xA;  resources vying for the bitmap; errors&#xA;  here often lead to crashes and in&#xA;  extreme cases (usually when the&#xA;  computer’s under heavy load and&#xA;  there’s a bug in the resource&#xA;  contention handling) it can lead to&#xA;  quantum irregularities in the&#xA;  hardware, resulting in several bytes&#xA;  of data in RAM being swapped to the&#xA;  state it represents in a parallel&#xA;  quantum universe.  Usually, this is&#xA;  unnoticed since the universe is nearby&#xA;  and the data is the same but&#xA;  occasionally it can be radically&#xA;  different and the image drawn to the&#xA;  screen is entirely wrong.  We want to&#xA;  avoid that since graphic bugs look bad&#xA;  to the user.  As a result, we blit the&#xA;  bitmaps first to ensure everything’s&#xA;  in a known solid state.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Cheers,&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;David&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What's the best fake (funny) technical explanation you've ever given someone?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you took advantage of someone's gullibility, please don't include that.  Good-natured jokes only :)  The best answer within a couple of days wins the coveted &quot;Accepted answer&quot; green flag...&lt;/p&gt;&#xA;" OwnerUserId="4146" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-30T01:29:04.400" LastActivityDate="2010-10-30T01:29:04.400" CommunityOwnedDate="2010-10-01T01:27:28.887" Title="Funniest technical explanation?" Tags="&lt;fun&gt;&lt;jargon&gt;" AnswerCount="11" CommentCount="9" FavoriteCount="0" />
  <row Id="8686" PostTypeId="2" ParentId="8684" CreationDate="2010-10-01T02:03:32.507" Score="1" ViewCount="" Body="&lt;p&gt;Seattle, Boston, New York, Austin, Dallas.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-01T02:03:32.507" CommunityOwnedDate="2010-10-01T02:03:32.507" CommentCount="1" />
  <row Id="8687" PostTypeId="2" ParentId="8684" CreationDate="2010-10-01T02:12:59.663" Score="1" ViewCount="" Body="&lt;p&gt;Washington, DC for government contracts.  It's a huge growing technology hub.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-01T02:12:59.663" CommunityOwnedDate="2010-10-01T02:12:59.663" CommentCount="1" />
  <row Id="8688" PostTypeId="2" ParentId="8684" CreationDate="2010-10-01T02:13:07.480" Score="3" ViewCount="" Body="&lt;p&gt;London. &lt;code&gt;&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="2616" LastActivityDate="2010-10-01T02:13:07.480" CommunityOwnedDate="2010-10-01T02:13:07.480" />
  <row Id="8689" PostTypeId="2" ParentId="4671" CreationDate="2010-10-01T02:16:11.160" Score="13" ViewCount="" Body="&lt;p&gt;My first programming job was at a school board where I worked on their Student Information System.  Towards the end of a school year I was asked to update the program that reset everyone's grade level for the coming year based on pass/fail status.  Due to a misplaced punctuation, I flunked all 90,000 active students in the system, plus all the ones who had graduated in prior years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But that wasn't the funny part.  The funny part was that it was like that for two days before anyone noticed.&lt;/p&gt;&#xA;" OwnerUserId="4169" LastActivityDate="2010-10-01T02:16:11.160" CommunityOwnedDate="2011-01-11T04:02:16.833" />
  <row Id="8690" PostTypeId="2" ParentId="3049" CreationDate="2010-10-01T02:17:37.763" Score="1" ViewCount="" Body="&lt;p&gt;I recommend looking into Erlang and &lt;a href=&quot;http://yaws.hyber.org/&quot; rel=&quot;nofollow&quot;&gt;yaws&lt;/a&gt;.  Erlang is a lightweight functional programming language with a great set of features, good libraries and an active development community.  Yaws is efficient and well matained.&lt;/p&gt;&#xA;" OwnerUserId="4122" LastEditorUserId="4122" LastEditorDisplayName="" LastEditDate="2010-10-01T03:04:23.963" LastActivityDate="2010-10-01T03:04:23.963" CommentCount="1" />
  <row Id="8692" PostTypeId="2" ParentId="8685" CreationDate="2010-10-01T03:07:15.610" Score="1" ViewCount="" Body="&lt;p&gt;I once explained that I was working on a bug which caused our embedded motor controller to &quot;glitch whenever it senses a disturbance in the force&quot;&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-01T03:07:15.610" CommunityOwnedDate="2010-10-01T03:07:15.610" />
  <row Id="8693" PostTypeId="2" ParentId="8684" CreationDate="2010-10-01T03:23:59.057" Score="1" ViewCount="" Body="&lt;p&gt;I'll stick with the US here, these are where I see the most interesting (vs. drudgery) work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;New York &amp;amp; Charlotte (much lesser degree) : Quantitative programmer&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Minneapolis &amp;amp; Phoenix : Retail systems programming&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rochester, MN : IBM 400/i&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Houston : Energy industry analysis and modeling, but few and far between&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Los Angeles : Lots and lots of mixed but short job work like innovative video transcoding&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-10-01T03:23:59.057" CommunityOwnedDate="2010-10-01T03:23:59.057" CommentCount="1" />
  <row Id="8694" PostTypeId="1" AcceptedAnswerId="8796" CreationDate="2010-10-01T03:31:12.463" Score="1" ViewCount="334" Body="&lt;p&gt;Specific to the US, but a story I heard at IBM once was that there was a time when IBM was not happy with the innovation made either at west coast or east coast facilities.  A result was to hire from &quot;middle america&quot; to introduce new methods/ways of thinking into software and solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess there is a Unix Wars argument on BSD vs. SysV from a while back argument that can be made.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you find that programmers/programs have any fundamental thought/architectural differences from programmers either from or educated in these areas?&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="2348" LastEditorDisplayName="" LastEditDate="2010-10-01T19:45:53.507" LastActivityDate="2010-10-01T19:45:53.507" ClosedDate="2010-10-02T04:29:26.140" Title="East- vs. West-Coast (USA) programming?" Tags="&lt;programming-practices&gt;&lt;geography&gt;&lt;bsd&gt;" AnswerCount="1" CommentCount="8" />
  <row Id="8695" PostTypeId="2" ParentId="8684" CreationDate="2010-10-01T03:36:01.473" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Canada&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Waterloo, ON: Variety; RIM, MS and google are there&lt;/li&gt;&#xA;&lt;li&gt;Ottawa, ON: Lots of gov't&lt;/li&gt;&#xA;&lt;li&gt;Toronto, ON: MS is here as well&lt;/li&gt;&#xA;&lt;li&gt;Vancouver, BC: Variety, I know that MS is hiring lots of XNA devs prepping for phone 7&lt;/li&gt;&#xA;&lt;li&gt;Montreal, QC: Lots of game companies iirc&lt;/li&gt;&#xA;&lt;li&gt;Quebec, QC&lt;/li&gt;&#xA;&lt;li&gt;Calgary, AB&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-10-01T16:38:50.430" LastActivityDate="2010-10-01T16:38:50.430" CommunityOwnedDate="2010-10-01T03:36:01.473" CommentCount="2" />
  <row Id="8696" PostTypeId="2" ParentId="8685" CreationDate="2010-10-01T03:39:45.413" Score="4" ViewCount="" Body="&lt;p&gt;I once told someone that a rare and large solar flare, in combination with the moon's gravitational pull caused the particles to move through the atmosphere faster, causing them to last longer in the air and get closer to the ground causing lots of interference for routers in the area (their router in particular wasn't working correctly).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;'After the flare's particles die out, your router should start working fine again.'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bought me a couple of days.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-01T03:39:45.413" CommunityOwnedDate="2010-10-01T03:39:45.413" CommentCount="4" />
  <row Id="8697" PostTypeId="2" ParentId="4587" CreationDate="2010-10-01T03:43:07.297" Score="3" ViewCount="" Body="&lt;p&gt;I was once asked to implement a feature in an order processing system that would create orders, and modify inventory, but not track any record of any 'sale' (or purchase orders or anything else). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was for cash sales that weren't being reported as earnings.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-01T03:43:07.297" CommunityOwnedDate="2011-01-07T00:56:11.870" />
  <row Id="8698" PostTypeId="2" ParentId="2291" CreationDate="2010-10-01T03:57:18.840" Score="0" ViewCount="" Body="&lt;h1&gt;VBA&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;It was an accident. :)&lt;/p&gt;&#xA;" OwnerUserId="4222" LastActivityDate="2010-10-01T03:57:18.840" CommunityOwnedDate="2010-10-01T03:57:18.840" />
  <row Id="8699" PostTypeId="2" ParentId="8631" CreationDate="2010-10-01T04:09:51.477" Score="2" ViewCount="" Body="&lt;p&gt;If I can't come up with a great name right away, I use an &quot;okay&quot; name temporarily, then keep coding. At least it'll be something that &lt;em&gt;adequately&lt;/em&gt; describes the item, even it's not &lt;em&gt;perfect&lt;/em&gt;. Almost always, by the time I'm done writing the first draft of that particular chunk of code, a more perfect name will have occurred to me. Through the process of coding, my intentions with that particular variable become more clear. (On the other hand, sometimes it occurs to me that the variable to was ill-conceived to begin with and I delete it in favor of something else.)&lt;/p&gt;&#xA;" OwnerUserId="4222" LastActivityDate="2010-10-01T04:09:51.477" />
  <row Id="8700" PostTypeId="2" ParentId="7861" CreationDate="2010-10-01T04:30:47.273" Score="3" ViewCount="" Body="&lt;p&gt;Dealbreaker: We don't wanna buy this software, let's pay developers write it, or let's spend months of developers' time wrangling with some crap free alternatives.&lt;br/&gt;&#xA;I always ask in the interviews what commercial applications you have got and why did you think it is useful for you. Very negative point about a company's resource management.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-01T04:30:47.273" CommunityOwnedDate="2010-10-01T04:30:47.273" />
  <row Id="8701" PostTypeId="2" ParentId="4587" CreationDate="2010-10-01T04:55:24.080" Score="9" ViewCount="" Body="&lt;p&gt;Nothing to do with programming, but at my first hi-tech job, I was a developer, tester, and network administrator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our VP of sales used to visit me on the last day of the quarter and ask me to set back the clock on the accounting server a few days (so they could get a few more days of sales in before reporting earnings) - this was a public company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did it once, then resigned just short of 3 months later (I just couldn't do it again).&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-10-01T04:55:24.080" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="3" />
  <row Id="8702" PostTypeId="2" ParentId="8685" CreationDate="2010-10-01T05:00:56.363" Score="5" ViewCount="" Body="&lt;p&gt;I tend to pick and choose from the &lt;a href=&quot;http://bofh.ntk.net/BOFH/bastard-excuse-board.php&quot; rel=&quot;nofollow&quot;&gt;Bastard Operator From Hell Excuse Board&lt;/a&gt;. Works very well, I recommend it.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-01T05:00:56.363" CommunityOwnedDate="2010-10-01T05:00:56.363" />
  <row Id="8703" PostTypeId="2" ParentId="8454" CreationDate="2010-10-01T05:28:27.777" Score="1" ViewCount="" Body="&lt;p&gt;You're talking about polls on websites, I'm assuming? The &quot;which is your favourite language, C#, Java or COBOL?&quot; type polls? If so, that's an interesting one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Normally I would agree with Simon's answer that if opening the source reveals loopholes, it was never secure to begin with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;However&lt;/em&gt;, for this sort of app.. the chances are that no, it &lt;em&gt;wasn't&lt;/em&gt; secure to begin with, and can't easily be made so. Problem is, I'm betting that you have a requirement for people to be able to just come to the website and vote in the poll, no registration required. And you &lt;em&gt;also&lt;/em&gt; have the incompatible requirement that people should only be able to vote once.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So whatever you do.. there's a loophole. Checking IP addresses? Visitor who wants to cheat knows to use a proxy. Cookies? Visitor who wants to cheat knows to clear his cookies. Opening the source makes it trivial to see how to cheat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But having said that.. it's trivial anyway. Doesn't take very long to try the alternatives and see which one allows multiple votes. It's just not possible to make this sort of anonymous poll secure, so you might as well open source it and at least get eyeballs spotting bugs!&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-10-01T05:28:27.777" />
  <row Id="8704" PostTypeId="2" ParentId="8364" CreationDate="2010-10-01T05:31:02.170" Score="0" ViewCount="" Body="&lt;p&gt;Chances are, you have a list of browsers that the site needs to work &quot;correctly&quot; in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And chances are, Opera is not on that list (I've never had a client ask for it - I'm not sure I've ever had a client that would even have heard of it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, using Firefox for development generally means &quot;develop in Firefox, then test in IE and Safari&quot;. Using Opera would mean &quot;develop in Opera, then test in IE, Safari &lt;strong&gt;and Firefox&lt;/strong&gt;.&quot; Just means more work for you to do.&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-10-01T05:31:02.170" CommentCount="5" />
  <row Id="8705" PostTypeId="2" ParentId="8684" CreationDate="2010-10-01T05:35:30.880" Score="2" ViewCount="" Body="&lt;h2&gt;New York City&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;in New York.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The amount of work I see here is astounding. I'm not sure where else I can take a train on a Saturday and overhear people talking about &lt;a href=&quot;http://joshuakehn.com/blog/index.php/basic/view/12/MongoDB-Node-js&quot; rel=&quot;nofollow&quot;&gt;MongoDB&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-01T05:35:30.880" CommunityOwnedDate="2010-10-01T05:35:30.880" CommentCount="1" />
  <row Id="8706" PostTypeId="2" ParentId="8685" CreationDate="2010-10-01T06:06:08.590" Score="7" ViewCount="" Body="&lt;p&gt;Note a fake one, but I like the &lt;a href=&quot;http://stackoverflow.com/questions/1638919/how-to-explain-dependency-injection-to-a-5-year-old&quot;&gt;How to explain Dependency Injection to a 5-year old&lt;/a&gt; question, especially &lt;a href=&quot;http://stackoverflow.com/users/31899/john-munsch&quot;&gt;John Munsch&lt;/a&gt;'s &lt;a href=&quot;http://stackoverflow.com/questions/1638919/how-to-explain-dependency-injection-to-a-5-year-old/1638961#1638961&quot;&gt;answer&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;When you go and get things out of the refrigerator for yourself, you can cause problems.&lt;br&gt;&#xA;  You might leave the door open, you might get something Mommy or Daddy doesn't want you to have. You might even be looking for something we don't even have or which has expired.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;What you should be doing is stating a need, &quot;I need something to drink with lunch,&quot; and then we will make sure you have something when you sit down to eat.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3915" LastActivityDate="2010-10-01T06:06:08.590" CommunityOwnedDate="2010-10-01T06:06:08.590" CommentCount="1" />
  <row Id="8707" PostTypeId="2" ParentId="8685" CreationDate="2010-10-01T06:17:58.817" Score="2" ViewCount="" Body="&lt;p&gt;People seem to like my similes. I tend to make up comparisons with recent news I've read about software companies, Patent suits, Copyright suits, and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't have a copy of one of my similes handy, but the use of hyperbolic adverbs and histrionic adjectives in my similes is like serving a lifetime supply of chocolate chip and fudge chocolate ice cream to an hysterical theobromine addict on withdrawals and hypoglycemia.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-10-01T06:17:58.817" CommunityOwnedDate="2010-10-01T06:17:58.817" CommentCount="3" />
  <row Id="8708" PostTypeId="2" ParentId="2815" CreationDate="2010-10-01T06:23:49.687" Score="5" ViewCount="" Body="&lt;p&gt;Get rid of &lt;code&gt;public static class&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's no reason to pack everything inside classes when the functions can do just as well as free functions in namespaces.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-10-01T06:23:49.687" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="3" />
  <row Id="8709" PostTypeId="2" ParentId="8631" CreationDate="2010-10-01T07:05:59.263" Score="0" ViewCount="" Body="&lt;p&gt;I almost never have a problem finding good, descriptive names.. but sometimes the naming becomes quite redundant, in that the class and variable names ar very similar.&#xA;    WebClient webclient = new Webclient (uri );&#xA;...and the like.&lt;/p&gt;&#xA;" OwnerUserId="4012" LastActivityDate="2010-10-01T07:05:59.263" />
  <row Id="8710" PostTypeId="1" AcceptedAnswerId="8717" CreationDate="2010-10-01T07:45:07.170" Score="3" ViewCount="413" Body="&lt;p&gt;At my last job, as a Project Manager, I argued (unsuccessfully) for the Developers to be able to use MP3 players while they were working. Unfortunately, the culture in that company was such that many of the so-called business people could not cope with the concept that some people would be able to use their music players, whilst others (e.g. Call Centre staff) could not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The company I worked at before that (as a Software Development Manager) were open to Developers using their iPods, and I found them more productive because of it - albeit they weren't allowed to plug in their iPods to their PCs for security and copyright reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to help me in my next job, if I come across this situation again, how would you successfully put the rationale behind allowing MP3 players?&lt;/p&gt;&#xA;" OwnerUserId="3749" LastActivityDate="2010-10-02T18:21:41.303" Title="What reasons do you have/give for using an MP3 player/iPod while programming?" Tags="&lt;experience&gt;&lt;work-environment&gt;&lt;management&gt;" AnswerCount="9" CommentCount="6" FavoriteCount="3" />
  <row Id="8711" PostTypeId="2" ParentId="8710" CreationDate="2010-10-01T07:56:53.403" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Shut out distracting noises&lt;/li&gt;&#xA;&lt;li&gt;Some developers like coding while listening to music&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The company you are referring to does not seem to be developer friendly at all. In fact, I would take a guess that senior management there is totally made up of non-technical people.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastEditorUserId="1539" LastEditorDisplayName="" LastEditDate="2010-10-01T08:44:52.887" LastActivityDate="2010-10-01T08:44:52.887" />
  <row Id="8712" PostTypeId="2" ParentId="8710" CreationDate="2010-10-01T07:58:23.613" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;A really boring task seems less boring, when i listen to music.&lt;/li&gt;&#xA;&lt;li&gt;I also use an app to help me keep a relaxed breathing rhythm.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In general i find music &lt;strong&gt;too distracting.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-10-01T16:01:04.497" LastActivityDate="2010-10-01T16:01:04.497" CommentCount="2" />
  <row Id="8713" PostTypeId="2" ParentId="8631" CreationDate="2010-10-01T08:30:26.903" Score="0" ViewCount="" Body="&lt;p&gt;Whatever I call these hard to name variables I make a  &lt;code&gt;//TODO find a better name&lt;/code&gt; comment so I can go back later to rename it  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually, when I start to use  the variable/function/class I find a better name for them.  &lt;/p&gt;&#xA;" OwnerUserId="1041" LastActivityDate="2010-10-01T08:30:26.903" />
  <row Id="8714" PostTypeId="2" ParentId="8617" CreationDate="2010-10-01T08:35:31.243" Score="1" ViewCount="" Body="&lt;p&gt;One room (no cubicles or walls) for programmers, designer, and computer operators. &#xA;Bugs (the real kind) on the hallways (counted 25 one day). &#xA;The ceiling is cracking and falling from time to time (after heavy rain). &#xA;No heating or hot water until it gets really cold outside (now it's just cold).&#xA;And to top it all off, the elevator got stuck with someone in it this morning.&lt;/p&gt;&#xA;" OwnerUserId="3207" LastActivityDate="2010-10-01T08:35:31.243" CommentCount="4" />
  <row Id="8715" PostTypeId="2" ParentId="8617" CreationDate="2010-10-01T08:41:54.927" Score="1" ViewCount="" Body="&lt;p&gt;Its horrible when you are from one part of country and in the company all speak an unknown language !&#xA;Programming wise : Worse when you are really fast in coding(not typing) and the wohle team lags even your lead&lt;/p&gt;&#xA;" OwnerUserId="1485" LastActivityDate="2010-10-01T08:41:54.927" />
  <row Id="8716" PostTypeId="1" CreationDate="2010-10-01T08:51:48.503" Score="5" ViewCount="297" Body="&lt;p&gt;I am a computer programmer. I like programming and learning to program more productively/on a higher level is one of my favorite hobbies. I have been programming for about 6 years now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is what should I learn next and in the future in order to achieve a higher level of productivity? For the sake of this discussion, I define increased productivity as being able to produce features faster or change existing features faster. I am not limiting this to languages, tools, or techniques. At this point I am not so much interested in learning how to develop new types of features, I simply want to learn how to more rapidly develop stuff I already know how to make. Currently I develop Windows Mobile/CE applications and websites. These are very data centric, communicate with each other (server and mobile client with intermittent internet access), and require easy to use user interfaces that can be understood and used effectively by almost anyone (even people who have poor computer skills but are forced to use these at work).&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Here are things that I know really well:&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;C# for desktop and mobile application development&lt;/li&gt;&#xA;&lt;li&gt;PHP for websites and code generation&lt;/li&gt;&#xA;&lt;li&gt;SQL&lt;/li&gt;&#xA;&lt;li&gt;Vim&lt;/li&gt;&#xA;&lt;li&gt;Visual Studio 2008&lt;/li&gt;&#xA;&lt;li&gt;ViEmu&lt;/li&gt;&#xA;&lt;li&gt;MVC Architecture&lt;/li&gt;&#xA;&lt;li&gt;3-layered Architecture (Business/Data/UI)&lt;/li&gt;&#xA;&lt;li&gt;Unit Testing and Test Driven Development&lt;/li&gt;&#xA;&lt;li&gt;Acceptance Testing and Acceptance Test Driven Development&lt;/li&gt;&#xA;&lt;li&gt;SpecFlow&lt;/li&gt;&#xA;&lt;li&gt;Continuous Integration&lt;/li&gt;&#xA;&lt;li&gt;Subversion&lt;/li&gt;&#xA;&lt;li&gt;Git&lt;/li&gt;&#xA;&lt;li&gt;HTML&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;Things that I know somewhat:&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Internal DSLs and code generation: I created an internal C# DSL that is used as a model. This model gets processed by both C# and php code to create a database and  generate C# code for working with the data locally and uploading or downloading that data to/from a server. I say I only know this somewhat because while I consider what I did to work well overall and be fairly easy to extend, there are some ways in which it is actually difficult to extend. Specifically it is a little inflexible in its ability to generate additional C# files and in different parts of the file system. Its strong points are its ease of use, and it is relatively easy to modify what code will be generated in the C# files that are presently being generated by it. Also this is the only example of something like this I have made or used extensively.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;C&lt;/li&gt;&#xA;&lt;li&gt;ASP.NET with MVC&lt;/li&gt;&#xA;&lt;li&gt;Java&lt;/li&gt;&#xA;&lt;li&gt;Code Coverage tools&lt;/li&gt;&#xA;&lt;li&gt;Profiling tools&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;Things I know a little of:&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;C++&lt;/li&gt;&#xA;&lt;li&gt;Ruby&lt;/li&gt;&#xA;&lt;li&gt;Scheme&lt;/li&gt;&#xA;&lt;li&gt;Multi-threaded programming in C#&#xA;(Done a descent amount of it but still pretty incompetent at it)&lt;/li&gt;&#xA;&lt;li&gt;Code Analysis tools (FxCop)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So far the answers have been helpful, but don't quite fit what I am looking for. I realize now that I don't really care about becoming more productive at website development right now and I am more focused on mobile device development, especially Windows Mobile/CE. The reason for this is I will probably start using ASP.NET instead of PHP for website development soon, and I can easily improve in that area by just learning more of the basics and practicing. As far as improving my productivity in Windows Mobile/CE development, my current productivity strong point is data saving and retrieval and converting retrieved data to good business objects. My weak points productivity wise in that area include UI development and testing. I have been building up my own framework for both the UI and being able to test it out of necessity, and it works well, but it requires a lot of code to do a little, and every time I use a new UI feature I have to add to the UI testing framework. Most of all, it just feels like the overall development process I am using is rather redundant. This is my general work flow. I work with my employers to get the specification complete for the next feature I will develop. I get the specification to be runnable with SpecFlow and NUnit. This involves changing the wording to be consistent and ususally adding some new code to test the specification. Next I create the UI using the Form designer as much as possible. I implement the features and the specs to pass, all the while doing unit TDD whenever adding or modifying classes or methods that are part of a library, and I always try to keep as much of my code as possible in unit testable libraries. I commit changes to the CI server on a regular basis and get automated feedback of pass/fail. Working this way does allow for productivity that is sustainable and is good for making programs of high quality that are maintanable but there is a lot of redundancy. It feels like everything gets implemented 4 times: 1 specification, 2 acceptance test code, 3 actual implementation, and 4 unit tests. I know I can't get rid of all redundancies and each of these steps are there for good reason but it feels like a lot of the redundancy could be done away with. Thanks in advance!&lt;/p&gt;&#xA;" OwnerUserId="2340" LastEditorUserId="2340" LastEditorDisplayName="" LastEditDate="2010-10-02T06:28:41.467" LastActivityDate="2010-10-02T10:50:21.400" ClosedDate="2010-10-03T03:06:18.323" Title="What Should I Learn To Reach A Higher Level Of Productivity" Tags="&lt;productivity&gt;&lt;learning&gt;&lt;tools&gt;&lt;technique&gt;&lt;automation&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="2" />
  <row Id="8717" PostTypeId="2" ParentId="8710" CreationDate="2010-10-01T09:01:30.737" Score="12" ViewCount="" Body="&lt;p&gt;Helps me to think, certain types of music I find lend themselves to this :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Working in an smallish office of 20+ helps me to concentrate by &lt;strong&gt;not&lt;/strong&gt; hearing, the conversations, telephone calls, radio, etc, etc, etc.  Especially important if l want concentrate on something l working on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One colleague l once worked with said in a data entry company it was almost mandatory to use a radio or MP3.  As it encourage workers to concentrate and reduced data entry errors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As selling it to management?  Less downtime with idle chit chat, more time concentrating and focused on the task.  The question is maybe do the management team trust their employees to do the work they are tasked with or micro manage each part of their day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Speaking to managers &quot;listening to music = greater productivity = profit&quot; look at this &lt;a href=&quot;http://www.articlesbase.com/self-help-articles/can-listening-to-music-help-us-work-better-68598.htm&quot; rel=&quot;nofollow&quot;&gt;Music whilst you work&lt;/a&gt;.  Does cite a couple studies but no links :-(  Might worth following up.  I really with working to Baroque music :-)&lt;/p&gt;&#xA;" OwnerUserId="4230" LastEditorUserId="4230" LastEditorDisplayName="" LastEditDate="2010-10-01T13:59:35.810" LastActivityDate="2010-10-01T13:59:35.810" CommentCount="6" />
  <row Id="8718" PostTypeId="2" ParentId="8716" CreationDate="2010-10-01T09:15:35.370" Score="1" ViewCount="" Body="&lt;p&gt;I'd say get a solid grasp of multi-threaded programming.  Not necessarily know how to use it in every situation purely with C# (or some other language), but the theory at least.  Since you're building data centric applications, knowing about object-relational mapping (ORM) would be good.  NHibernate is a great example of ORM for C#.&lt;/p&gt;&#xA;" OwnerUserId="3549" LastActivityDate="2010-10-01T09:15:35.370" CommentCount="1" />
  <row Id="8719" PostTypeId="2" ParentId="8716" CreationDate="2010-10-01T09:45:27.270" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Functional programming: it's a very different paradigm from imperative, and has useful things to learn.&lt;/li&gt;&#xA;&lt;li&gt;The Actor model of concurrency. It's not the only alternative to multithreading, but it's a very useful one.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Looking at those two together, I think I'm suggesting you learn Erlang or Clojure. (You can get both in other languages - Common Lisp and Squeak Smalltalk both have libraries for actor/actor-like concurrency, and you can happily program functionally in both - but Clojure and Erlang have these baked in.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-01T09:45:27.270" CommentCount="3" />
  <row Id="8720" PostTypeId="2" ParentId="8716" CreationDate="2010-10-01T10:27:44.413" Score="5" ViewCount="" Body="&lt;p&gt;I like this question because it is in my opinion, not directly related to pure technique, but psychology. And I love that topic (developer &amp;amp; entrepreneur's psychology).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, I assume that productivity means how much business requirement you satisfy in a given time at a given quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are few suggestions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;The more you know about a framework, the better it is&lt;/strong&gt;. For example, I've seen developers building their own Base64 function because they weren't aware that is was available in the framework.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;You must be well organized to be efficient&lt;/strong&gt;. Learn personnal productivity techniques like &lt;a href=&quot;http://fr.wikipedia.org/wiki/Getting_Things_Done&quot; rel=&quot;nofollow&quot;&gt;Getting Things Done&lt;/a&gt;. This will not improve your productivity, this will BOOST it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Learn how to say no&lt;/strong&gt;. I'm always amazed when I see someone looking at his ringing phone saying: &quot;how no, they disturb me all the time&quot;. Why not simply ignore the call? You are NOT commited to answer the phone, you can call him back at a better time. This statement is valid for everything including emails. They can wait another 3 hours to get an answer right? Those interuptions are real productivity killers.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Listen to your body and do regular pauses&lt;/strong&gt;. The time spent in pause is not a waste of time. It will regenerate your productivity battery level to 100%. Do a pause 10 minutes pause every 45 minutes. You can do simple things during those 10 minutes: from taking a coffee to cleaning your desk. The task can be anything but intellectual. I use &lt;a href=&quot;http://www.workrave.org&quot; rel=&quot;nofollow&quot;&gt;WorkRave&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Learn design patterns, but don't over apply them&lt;/strong&gt;. Yes, they can be useful, but too much developers tend to over apply them, which is a productivity killer. Start with &lt;a href=&quot;http://oreilly.com/catalog/9780596007126&quot; rel=&quot;nofollow&quot;&gt;Head First Design Patterns&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ask your colleagues&lt;/strong&gt;. I'm sure many problem you encounter can be solved by others just by telling you how they previously solved it. If you face a bug for too long, ask help.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That's just a few ideas. I may add more later.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-02T10:50:21.400" LastActivityDate="2010-10-02T10:50:21.400" CommentCount="4" />
  <row Id="8721" PostTypeId="1" AcceptedAnswerId="8725" CreationDate="2010-10-01T10:30:31.037" Score="42" ViewCount="2080" Body="&lt;p&gt;Here's a bit information about me, before starting with the question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am a Computer Science Undergraduate, Java being my primary coding language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The basic problem in my University are the teaching standards. No one is concerned about teaching coding knowledge to students, rather than just theoretical knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The effect being, most of my fellow college mates don't understand programming at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even I haven't been able to come out of the traditional programming environment, which limits my coding to an extent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the possible ways by which I can develop and expand my programming/coding skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, can you suggest the sources for the same?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edited&lt;/strong&gt;:&#xA;Sources suggesting development of coding skills.&lt;/p&gt;&#xA;" OwnerUserId="4522" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-11-26T04:00:54.540" LastActivityDate="2010-11-26T04:35:20.343" Title="How do I improve my coding skills?" Tags="&lt;learning&gt;&lt;career&gt;&lt;best-practices&gt;&lt;programming&gt;&lt;skills&gt;" AnswerCount="24" CommentCount="6" FavoriteCount="26" />
  <row Id="8722" PostTypeId="2" ParentId="5916" CreationDate="2010-10-01T10:33:00.533" Score="0" ViewCount="" Body="&lt;p&gt;I use the equivalent in VB (since they won't let me use C# - apparently it's too hard... no comment.)  I find them very convenient.  Most of the time I wait until the procedure or function is pretty much completed before putting them in, if only to avoid having to change the comments - or have them &quot;out of sync&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't necessarily write a novel - just the basics, the parameter description and some remarks (usually when there's something &quot;out of the ordinary&quot; going on in there - workaround or other crap that I'd rather not have in there but have no choice &quot;for now&quot;.) (Yeah, I know, that &quot;for now&quot; can last years.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm severely irritated by uncommented code.  A consultant wrote the initial version of one of our components and didn't comment anything and his choice of names leave to be desired here and there.  He's been gone over a year and we're still sorting out his stuff (in addition to working on our own stuff.)&lt;/p&gt;&#xA;" OwnerUserId="3842" LastActivityDate="2010-10-01T10:33:00.533" />
  <row Id="8723" PostTypeId="2" ParentId="8721" CreationDate="2010-10-01T10:39:13.817" Score="50" ViewCount="" Body="&lt;p&gt;My favorite quote is from Confucius:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I hear, I know. I see, I remember. I&#xA;  do, I understand.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;All knowledge I got, was from applying one and single strategy:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Take the most challenging path, always.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You want to learn C#? Get a job as a C# developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You want to learn Italian? Go there with a dictionnary english/italian, and talk Italian&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You want to learn coding ? &lt;strong&gt;Code!&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-01T12:33:16.777" LastActivityDate="2010-10-01T12:33:16.777" CommentCount="13" />
  <row Id="8724" PostTypeId="2" ParentId="8684" CreationDate="2010-10-01T10:41:14.157" Score="2" ViewCount="" Body="&lt;p&gt;Brussels, Amsterdam, Sidney, ... any big city&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-01T10:41:14.157" CommunityOwnedDate="2010-10-01T10:41:14.157" />
  <row Id="8725" PostTypeId="2" ParentId="8721" CreationDate="2010-10-01T10:55:20.017" Score="20" ViewCount="" Body="&lt;p&gt;Programming is one of the fields where experience matters.  Therefore, to become a better coder, you should code more.  However, writing is not the only thing you should do.  You also should &lt;em&gt;read&lt;/em&gt; code of other developers and learn from it what a good code is.  Refer to &lt;a href=&quot;http://stackoverflow.com/search?q=examples+of+open-source&quot;&gt;SO questions about this&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might also find books, which are specifically devoted to coding, useful; such as &quot;Code Complete&quot;. They contain descriptions of what good code is, which, combined with your fundamental knowledge, can make you a good programmer.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-10-01T10:55:20.017" CommentCount="3" />
  <row Id="8726" PostTypeId="2" ParentId="8415" CreationDate="2010-10-01T11:35:13.040" Score="1" ViewCount="" Body="&lt;p&gt;There is a sketch tool called &lt;strong&gt;&lt;a href=&quot;http://www.evolus.vn/pencil/&quot; rel=&quot;nofollow&quot;&gt;Pencil Project&lt;/a&gt;&lt;/strong&gt; that I saw by this days. &#xA;This is a open source project that runs at FireFox or stand-alone, but no Mac version yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://alternativeto.net/software/pencil-project/&quot; rel=&quot;nofollow&quot;&gt;Here&lt;/a&gt;&lt;/strong&gt; you can get other alternatives too. (provide by AlternativeTo service)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe you find one that fits with your need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, I prefer whiteboard to do this.&lt;/p&gt;&#xA;" OwnerUserId="3082" LastActivityDate="2010-10-01T11:35:13.040" CommentCount="2" />
  <row Id="8727" PostTypeId="2" ParentId="8633" CreationDate="2010-10-01T11:41:11.020" Score="3" ViewCount="" Body="&lt;h2&gt;Dive into the problem domain:&lt;/h2&gt;&#xA;&#xA;&lt;h3&gt;1. Write down the options known to you&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;You will miss a lot, but don't worry: you'll stumble upon more information in the process.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;2. Write down how those options relate to each other&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;E.g. what are the programming language used, the supported operating system, system requirements? Is the project active? Is it written in OOP or FP?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will miss a lot, but don't worry: you'll stumble upon more information in the process.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;3. Write down how those properties relate to you&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;E.g. do you hate Perl or have no clue about Forth? What would be hard or impossible in practise? Are you comfortable about a database-dependency?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will miss a lot, but don't worry: you'll stumble upon more information in the process.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;4. Filter the options and try those options left&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;E.g. exclude all projects written in C# because you're a Mac guy. Exclude projects with a small user base.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Implement a dummy with the left options to gain more insights.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start over with Step 1 if necessary.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-10-01T11:41:11.020" />
  <row Id="8728" PostTypeId="2" ParentId="7861" CreationDate="2010-10-01T11:46:18.843" Score="2" ViewCount="" Body="&lt;p&gt;You can't go round inspecting everything, but a trip to the toilets either before or after the interview can tell you everything you need to know about a company and how it treats its staff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not a hygene nut, but I do feel it's important that the facilities I'll be using every single day are decent.&lt;/p&gt;&#xA;" OwnerUserId="4235" LastActivityDate="2010-10-01T11:46:18.843" CommunityOwnedDate="2010-10-01T11:46:18.843" />
  <row Id="8729" PostTypeId="2" ParentId="5916" CreationDate="2010-10-01T11:51:28.967" Score="0" ViewCount="" Body="&lt;p&gt;If you find that you have to keep going back and editing your comments to correspond with new code, you might be doing them wrong in the first place. The summary element should contain exactly that - a summary - the &lt;em&gt;what&lt;/em&gt; and the &lt;em&gt;why&lt;/em&gt; of the thing your'e summarising.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Describing &lt;em&gt;how&lt;/em&gt; something works in comments violates DRY. If your code is not self-descriptive enough, maybe you should go back and refactor.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-10-01T11:51:28.967" />
  <row Id="8730" PostTypeId="2" ParentId="1" CreationDate="2010-10-01T11:51:50.070" Score="1" ViewCount="" Body="&lt;p&gt;I think code commenting gets a very poor start to life. I don't know about these days, but when I was first being taught programming at school I got assignments of the nature of &quot;Write a program that prints the numbers one to ten on separate lines. Make sure you comment your code.&quot; You'd get marked down if you didn't add comments because commenting your code is a GOOD THING.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But what is there to say about such a trivial process? So you end up writing the classic&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;i++; // add one to the &quot;i&quot; counter.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;just to get a decent grade and, if you've any nous at all, instantly forming a very low opinion of code comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code commenting is not a GOOD THING. It's a SOMETIMES NECESSARY THING, and Thomas Owens in the top answer provides an excellent explanation of the situations in which it's necessary. However, these situations rarely crop up in homework-type assignments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In many ways, adding a comment should be considered a last-resort choice, when what needs to be said cannot be said clearly in the active parts of the programming language. Although object naming can go stale, various human and computer lack-of-feedback mechanisms make it easy to forget to maintain comments and consequently comments go stale much more quickly than active code. For that reason, where a choice is possible, changing code to make it clearer should always be preferred to annotating unclear code with comments. &lt;/p&gt;&#xA;" OwnerUserId="4232" LastActivityDate="2010-10-01T11:51:50.070" CommunityOwnedDate="2011-01-31T09:04:54.130" CommentCount="1" />
  <row Id="8731" PostTypeId="2" ParentId="8710" CreationDate="2010-10-01T11:56:13.450" Score="2" ViewCount="" Body="&lt;p&gt;It's less to do with listening to music, and more to do with NOT listening to everything else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm lucky enough to work somewhere very relaxed about this sort of thing.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-10-01T11:56:13.450" />
  <row Id="8732" PostTypeId="2" ParentId="8721" CreationDate="2010-10-01T12:02:35.143" Score="3" ViewCount="" Body="&lt;p&gt;Code! Code! Code!&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-10-01T12:02:35.143" CommentCount="1" />
  <row Id="8733" PostTypeId="2" ParentId="4587" CreationDate="2010-10-01T12:14:20.233" Score="6" ViewCount="" Body="&lt;p&gt;I once worked for an ISP. Among the thousands of other web sites hosted on our servers was one site which offered &quot;modelling&quot; services. It had a database of models (who had paid quite a lot of money to be there), along with their &quot;glamour&quot; pics, mostly nudes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition to this one, the owner of this site also ran a number of other sites using our hosting offering various other not-quite-kosher services (another one he ran was basically a pay-me-to-do-your-homework-for-you service for lazy school kids), and had a reputation among the ISP staff for being quite an unpleasant person to work with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, he paid good money to the company to run all these sites, and also regularly paid for design and development work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My ethical dilemma came when I was first asked to do some development work on the &quot;glamour&quot; site. It was an extremely uncomfortable project, and some of the photos I saw on there I wish I hadn't seen. I did the work, under protest, since it was already paid for and promised and there was no-one else available, but I made it clear that I wouldn't work on a site like that again. Fortunately management respected me in that.&lt;/p&gt;&#xA;" OwnerUserId="4235" LastActivityDate="2010-10-01T12:14:20.233" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="2" />
  <row Id="8734" PostTypeId="1" CreationDate="2010-10-01T12:15:46.827" Score="5" ViewCount="107" Body="&lt;p&gt;Software is easy to build, but even easier to build the way the developers think it should function.  What about the end user?  How best to obtain feedback from them regarding a new product?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example: we recently released a new web based application for IT support and this is what the user must use to receive IT support.  They have no choice.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can we elicit feedback from them? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideas outside the box are most appreciated because I find the usual feedback form gets few submissions so I am looking for creative ways to get in touch with our user base and continue to develop this application (or any in the future) with their desires in mind. &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-01T14:12:16.597" Title="How to obtain feedback for a project ?" Tags="&lt;experience&gt;&lt;users&gt;&lt;feedback&gt;" AnswerCount="2" FavoriteCount="0" />
  <row Id="8735" PostTypeId="2" ParentId="5916" CreationDate="2010-10-01T12:21:50.823" Score="10" ViewCount="" Body="&lt;p&gt;Yes, absolutly use them for anything you want to keep, or might be shared. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, use them in conjunction with &lt;a href=&quot;http://blogs.msdn.com/b/sandcastle/&quot; rel=&quot;nofollow&quot;&gt;Sandcastle&lt;/a&gt; and the &lt;a href=&quot;http://shfb.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;Sandcastle Help File Builder&lt;/a&gt;, which takes the XML output and turns it into beautiful, MSDN-style documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/X0qwv.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Last place I worked we re-built the documentation every night and hosted it as an internal homepage. The company initials were MF, so it was MFDN ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Normally though I just produce a .chm file, which is easily shared around.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'd be surprised how addicted you get to documenting everything once you start seeing it in MSDN format!&lt;/p&gt;&#xA;" OwnerUserId="550" LastActivityDate="2010-10-01T12:21:50.823" />
  <row Id="8736" PostTypeId="2" ParentId="8734" CreationDate="2010-10-01T12:26:19.623" Score="4" ViewCount="" Body="&lt;p&gt;try this online solution, from &lt;a href=&quot;http://uservoice.com&quot; rel=&quot;nofollow&quot;&gt;UserVoice.com&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;they praise that &lt;em&gt;UserVoice’s platform makes it easy to build a customer community and quickly start engaging your customers&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;if you want to see someone that already uses UserVoice.com, go to &lt;a href=&quot;http://clojuredocs.org&quot; rel=&quot;nofollow&quot;&gt;ClojureDocs.org&lt;/a&gt;, click the &lt;em&gt;FEEDBACK&lt;/em&gt; on the right side, then click &lt;em&gt;Go To Feedback Forum&lt;/em&gt; and see how it works&lt;/p&gt;&#xA;&#xA;&lt;p&gt;looks pretty neat&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-01T12:26:19.623" CommentCount="4" />
  <row Id="8737" PostTypeId="2" ParentId="7861" CreationDate="2010-10-01T12:33:36.200" Score="7" ViewCount="" Body="&lt;p&gt;If the founders of the company have moved on, you should too.  This isn't an ironclad rule but I've found that companies often lose energy and focus when the founders move on.  The people who start successful companies are a rare breed and, though demanding, are great to work with.&lt;/p&gt;&#xA;" OwnerUserId="4122" LastActivityDate="2010-10-01T12:33:36.200" CommunityOwnedDate="2010-10-01T12:33:36.200" CommentCount="1" />
  <row Id="8738" PostTypeId="2" ParentId="4671" CreationDate="2010-10-01T12:37:47.220" Score="9" ViewCount="" Body="&lt;p&gt;&lt;code&gt;DELETE FROM criticalProductionTable WHERE ID - 123;&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This query happily deleted every record in which &lt;code&gt;(ID - 123)&lt;/code&gt; was true--that is, every row EXCEPT the one with id=123 (According to MySQL logic, 123 - 123 = 0 = FALSE, and, as I learned that day, 1 - 123 = -122 = TRUE). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wasn't funny at the time. Especially to my client.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-10-01T12:37:47.220" CommunityOwnedDate="2011-01-11T04:02:16.833" CommentCount="3" />
  <row Id="8739" PostTypeId="2" ParentId="8721" CreationDate="2010-10-01T12:53:23.973" Score="2" ViewCount="" Body="&lt;p&gt;You're getting a few similar answers and mine will also be the same. Write code. There are two good ways you could do that.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Pick something that really appeals to you or interests you and just go about implementing it. If you're into games, write a game. If you're interested in web stuff put together an interesting and original website. You might not manage to finish it even, but the experience will teach you a whole lot.&lt;/li&gt;&#xA;&lt;li&gt;Pick an open source project that you find interesting and get involved with it. Learn from the existing code and use it to fix bugs, build unit tests and implement new features.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Either of those will give you the direct experience of programming you need as well as the involvement in programming communities as you learn and have to ask questions to get more out of it. You will make many mistakes. This is good- if you stop making mistakes you have stopped learning and you need to find some new way of challenging yourself.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-01T12:53:23.973" />
  <row Id="8740" PostTypeId="2" ParentId="8721" CreationDate="2010-10-01T12:54:32.600" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Select good opensource projects and read the code.&lt;/li&gt;&#xA;&lt;li&gt;Take up a medium size project for yourself and start coding&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you're interested in web development, try to build an existing site from scratch using your favorite technology; how about twitter in django?&lt;/li&gt;&#xA;&lt;li&gt;If you are into desktop application development, start with a notepad and improvise it to support advanced features (regex based searches, to begin with).&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1482" LastActivityDate="2010-10-01T12:54:32.600" />
  <row Id="8741" PostTypeId="1" AcceptedAnswerId="8831" CreationDate="2010-10-01T13:00:24.067" Score="5" ViewCount="262" Body="&lt;p&gt;Currently I'm a student, but I'm about to go look for a job next semester, and I'm a bit worried that the jobs I'll get will have me stuck with a table that is too high, screen that is too low, and a chair that barely supports my back. This is pretty important to me since I already experienced various computer use pains due to a bad setting, and I really don't want this to be an issue when I apply to jobs. So I was wondering, how much control can I expect to have in the work place over the furniture/equipment I use? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I assume that it's not a big deal to plug in your own mouse/keyboard, but what about bringing your own chair, and maybe screen(s)? I'm guessing that the desk is usually hard/impossible to modify, but is it completely unheard of? And would the work environment ever be a deal breaker for you? &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-10-13T12:18:03.483" Title="How much control can I expect to have over my work environment?" Tags="&lt;work-environment&gt;&lt;ergonomics&gt;" AnswerCount="7" />
  <row Id="8742" PostTypeId="2" ParentId="8741" CreationDate="2010-10-01T13:08:44.927" Score="1" ViewCount="" Body="&lt;p&gt;If you bring your own stuff, it should definitely not be a problem. Rather, it should be the employer's responsibility to provide proper tools (office worker's tools include furniture) unless otherwise agreed. Crappy environment == crappy employer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't work for an employer that doesn't care about its employees' working conditions&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-01T13:08:44.927" />
  <row Id="8743" PostTypeId="2" ParentId="2196" CreationDate="2010-10-01T13:09:00.900" Score="1" ViewCount="" Body="&lt;p&gt;Master Regular Expressions and use them with your IDE/text editor (not just in your code).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may be able to convert your specs into code!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If nothing else, you can at least convert your hideous code into gorgeous code.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-01T13:09:00.900" />
  <row Id="8744" PostTypeId="2" ParentId="8741" CreationDate="2010-10-01T13:10:07.407" Score="1" ViewCount="" Body="&lt;p&gt;Bringing your own chair? Screen? First off I &lt;em&gt;highly&lt;/em&gt; doubt that it's going to be that bad. &lt;strong&gt;If it is just don't take the job&lt;/strong&gt;. If your employer is giving you a 1 Ghrz machine with 512 Mb of RAM and a stool that's his (or her) issue not yours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would expect to be able to work on my own computer, with my own setup. Sometimes people will want you to work on a company computer (for security / NDA concerns) but even then you should have a pick.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-01T13:10:07.407" CommentCount="2" />
  <row Id="8745" PostTypeId="2" ParentId="8741" CreationDate="2010-10-01T13:11:31.067" Score="2" ViewCount="" Body="&lt;p&gt;The &lt;strong&gt;work environment can absolutely be a deal breaker&lt;/strong&gt;, but most employers are reasonable to the extent you don't cost them a lot of extra money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are in a great position now that you don't work any particular place.  That puts you at an advantage since you can walk through your potential work environment, see the chair, desk, etc.  Then, once you see it, you can ask the potential employer exactly what changes can be made, which typically are as you said - everything but getting a new office.  However, ask the questions up front.  If they say you have to code in a basement with no windows and an alligator torture pit below you in case you complain about being uncomfortable, then you can just walk away.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-01T13:11:31.067" />
  <row Id="8746" PostTypeId="2" ParentId="8684" CreationDate="2010-10-01T13:11:32.253" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Raleigh, NC.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lots companies have offices here.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-01T13:11:32.253" CommunityOwnedDate="2010-10-01T13:11:32.253" />
  <row Id="8747" PostTypeId="2" ParentId="6394" CreationDate="2010-10-01T13:18:00.523" Score="2" ViewCount="" Body="&lt;p&gt;Do I use a standard template? Yes&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What features/info is included, nice to haves:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cover Sheet&lt;/li&gt;&#xA;&lt;li&gt;Meta Data: Customer Contact Info, Developer Contact Info, Project Name, Date&lt;/li&gt;&#xA;&lt;li&gt;Customer Profile (optional, but good): Includes competitor info, products or services sold by the customer, current situation and objectives, target market, market position. The average small business cannot provide most of these.&lt;/li&gt;&#xA;&lt;li&gt;Project Overview: Includes detail in outline format. This is where the project work is defined.&lt;/li&gt;&#xA;&lt;li&gt;Not Included: Things specifically omitted from the project.&lt;/li&gt;&#xA;&lt;li&gt;Initial Materials: A list of things needed from the customer to get started as well as the dates they are required.&lt;/li&gt;&#xA;&lt;li&gt;Site Map: Optional, but good if you're doing a website or complex application. Nice graphic.&lt;/li&gt;&#xA;&lt;li&gt;Demographics: Of the end-user, usually in the form of a nice graphic.&lt;/li&gt;&#xA;&lt;li&gt;Creative Brief: Optional. This is for designers, and includes things like communication history, the message, personality and tone, audience (current mind set) and audience (resulting mind set), competitor websites, example websites or products favored by the customer, company colors, style guide (usually external). It documents existing materials such as logos, brochures, etc.&lt;/li&gt;&#xA;&lt;li&gt;Project Timeline: A breakdown of when stuff should be done with final estimated completion date. My template has a big fat disclaimer that timelines depend heavily on customer participation.&lt;/li&gt;&#xA;&lt;li&gt;Cost Breakdown: The cost of the different task to be performed. When possible, this section also includes a &quot;return on investment&quot; analysis.&lt;/li&gt;&#xA;&lt;li&gt;Project Agreement: Payment terms, earnest money, 100% money back guarantee, single point of contact required, client supplied materials and approvals need to be timely, extra billing or time if the client changes the scope of work, hosting info (for websites), right to use the work for self-promotion, applicable laws, source code ownership statement, availability of software escrow, signatures.&lt;/li&gt;&#xA;&lt;li&gt;About Us: Includes company info with photos, examples of our work, testimonials, other services offered, team profile with photos.&lt;/li&gt;&#xA;&lt;li&gt;Conclusion: Thank you's and contact info. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Boiler plate: As much as possible. All of the above has &lt;em&gt;something&lt;/em&gt; even if it's just filler text. This article was influential for me: &lt;a href=&quot;http://articles.sitepoint.com/article/bulletproof-web-design-contract&quot; rel=&quot;nofollow&quot;&gt;http://articles.sitepoint.com/article/bulletproof-web-design-contract&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My proposals usually come out to 14 to 20.&lt;/p&gt;&#xA;" OwnerUserId="2335" LastActivityDate="2010-10-01T13:18:00.523" />
  <row Id="8748" PostTypeId="1" CreationDate="2010-10-01T13:21:37.977" Score="8" ViewCount="193" Body="&lt;p&gt;Quote from Wikipedia of the article &quot;High-level programming language&quot;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A high-level programming language is a programming language with strong abstraction from the details of the computer. In comparison to low-level programming languages, it may use natural language elements, be easier to use, or be more portable across platforms. Such languages hide the details of CPU operations such as memory access models and management of scope.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I.e., as the level of programming language increases, the further away the programmer goes from the hardware on which the program runs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I do not know the statistics of language usages across levels, but I would suspect that the higher level languages more and more are replacing the lower level languages. If so, can this lead to a deficit of programmers with computer architecture knowledge? Would this be a problem for the industry?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-02T07:51:18.500" LastActivityDate="2010-10-21T13:04:16.533" Title="Can increased usage of higher and higher programming languages lead to a deficit of programmers with computer architecture knowledge?" Tags="&lt;programming-languages&gt;&lt;hardware&gt;&lt;abstractions&gt;&lt;industry&gt;&lt;computer-architecture&gt;" AnswerCount="4" />
  <row Id="8749" PostTypeId="1" AcceptedAnswerId="8753" CreationDate="2010-10-01T13:30:13.717" Score="12" ViewCount="279" Body="&lt;p&gt;One mandatory course I took in uni was about functional and logical programming languages (Haskell and Prolog). It was mildly interesting, and most I talked to showed even less interest to the course (or even to learning any very-high-level languages, for that matter). The general consensus was that it is enough to know the common languages such as C, C++, Java, Python, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But are these kinds of languages underestimated? Should all programmers learn at least one very-high-level language, even though he or she may never have any practical use of it?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-02T07:48:51.587" LastActivityDate="2010-10-02T07:48:51.587" Title="Should all programmers learn at least one very-high-level language?" Tags="&lt;programming-languages&gt;&lt;paradigms&gt;&lt;abstractions&gt;&lt;type-system&gt;" AnswerCount="6" />
  <row Id="8750" PostTypeId="2" ParentId="2196" CreationDate="2010-10-01T13:33:41.053" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Know your tools well and USE them.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tools like &lt;a href=&quot;http://www.jetbrains.com/resharper/&quot; rel=&quot;nofollow&quot;&gt;Resharper&lt;/a&gt;, &lt;a href=&quot;http://submain.com/products/ghostdoc.aspx&quot; rel=&quot;nofollow&quot;&gt;GhostDoc&lt;/a&gt;, or just Visual Studio itself have tons of shortcuts to get to things fast.  Learn keyboard shortcuts one by one for the things you do most often.  As you get more familiar with them, you'll become wicked fast at refactoring, creating new code, navigating code to find methods and more.  &lt;strong&gt;Keyboard shortcuts&lt;/strong&gt; (combined with the right tools) are where it's at!&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-01T13:33:41.053" />
  <row Id="8751" PostTypeId="2" ParentId="8684" CreationDate="2010-10-01T13:45:23.800" Score="3" ViewCount="" Body="&lt;p&gt;Come to &lt;strong&gt;Texas&lt;/strong&gt; !! &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Dell and lots of gaming and web startups in &lt;em&gt;Austin&lt;/em&gt; area&lt;/li&gt;&#xA;&lt;li&gt;Energy related computing services in &lt;em&gt;Houston&lt;/em&gt; area &lt;/li&gt;&#xA;&lt;li&gt;Telecommunication(like RIM, TI, Nokia) stuff, defense related (Lockheed Martin) in &lt;em&gt;Dallas/FortWorth&lt;/em&gt; area, and lots of consulting work in the D/FW area due to the amount of HQ that are here ... like JCPenney, RadioShack, Frito Lay ... that are looking for IT personnels to help man their IT system.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-10-01T13:45:23.800" CommunityOwnedDate="2010-10-01T13:45:23.800" CommentCount="2" />
  <row Id="8752" PostTypeId="2" ParentId="8749" CreationDate="2010-10-01T13:45:57.630" Score="2" ViewCount="" Body="&lt;p&gt;All programmers should learn about each paradigms/concepts possible in programming. So Each language that is dynamic, high level, static, low level, templatized, or not, with or without abstraction of whatever feature you computer provide, will allow you to learn something by practice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I like to learn about high level, dynamic languages when I'm working with static language like C or C++ at work. And the other way around. I also like to take a look to other programming languages showing other ways of thinking about the same things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use C++, Python, Java, Javascript, C, and I'm learning a bit of Ruby, D, Haskell...&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-10-01T13:45:57.630" />
  <row Id="8753" PostTypeId="2" ParentId="8749" CreationDate="2010-10-01T13:46:13.217" Score="9" ViewCount="" Body="&lt;p&gt;Yes, every programmer should learn new languages, and particularly languages that uses a different &lt;a href=&quot;http://en.wikipedia.org/wiki/Programming_paradigm&quot; rel=&quot;nofollow&quot;&gt;programming paradigm&lt;/a&gt; e.g. &lt;a href=&quot;http://en.wikipedia.org/wiki/Functional_programming&quot; rel=&quot;nofollow&quot;&gt;functional programming&lt;/a&gt; or &lt;a href=&quot;http://en.wikipedia.org/wiki/Concurrent_computing&quot; rel=&quot;nofollow&quot;&gt;concurrency oriented programming&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you will not use the language, you will be a better programmer in the language you use by learning different concepts and see alternative solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is an upcoming book that can be interesting: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/193435659X&quot; rel=&quot;nofollow&quot;&gt;Seven Languages in Seven Weeks&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-01T14:44:33.670" LastActivityDate="2010-10-01T14:44:33.670" CommentCount="3" />
  <row Id="8754" PostTypeId="2" ParentId="8749" CreationDate="2010-10-01T13:47:30.937" Score="2" ViewCount="" Body="&lt;p&gt;I think all programmers should, at the very least, understand the concept of &quot;language levels.&quot;  If the easiest way to do this is to learn a very-high-level language in addition to the standard languages, then I'm all for that.  Programmers should at least be aware of what is out there, in case they ever come across a problem that is &lt;em&gt;much&lt;/em&gt; easier to solve with a higher level language (or, on the other hand, much more efficiently solved with a lower level language).&lt;/p&gt;&#xA;" OwnerUserId="4246" LastActivityDate="2010-10-01T13:47:30.937" />
  <row Id="8755" PostTypeId="2" ParentId="8749" CreationDate="2010-10-01T13:49:41.733" Score="4" ViewCount="" Body="&lt;p&gt;you should. because learning a functional language is quite huge difference from object-oriented language. this forces you to go to the underlying concepts of the new language, just be able to begin to understand it. you will learn about first-class function, immutable data, state, and many other things. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;after that you'll just get curious about what is it that makes your common languages tick. and you'll just get better in programming those once you know about them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;plus, knowledge of one type of language is not exclusive. you can use that knowledge into other types of languages. more power to you&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-01T13:49:41.733" />
  <row Id="8756" PostTypeId="2" ParentId="8748" CreationDate="2010-10-01T13:52:03.600" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It can&lt;/strong&gt;, but likely won't lead to a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's just economics.  If the vast majority of people lose the ability to understand the underlying architecture, and there is still a huge NEED to understand the underlying architecture, then the ones who do will have jobs and get paid more, while those who don't will only have jobs where that is not needed (and may still get paid more...who knows?).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it helpful to know? Absolutely. You'll likely be better.  Is it necessary in most cases?  No.  That's why abstraction is so great, we stand on the shoulders of giants without having to be giants ourselves (but there will always be giants around).&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-01T13:52:03.600" CommentCount="2" />
  <row Id="8757" PostTypeId="2" ParentId="8748" CreationDate="2010-10-01T13:54:13.357" Score="5" ViewCount="" Body="&lt;p&gt;Yes, I think people will understand hardware much less as languages progress (and, similarly, as instruction sets progress).  But as has been noted many other places, the primary constraint on most programs now days is not CPU time or efficiency, but programmer time.  &lt;strong&gt;If&lt;/strong&gt; people who design languages keep doing their job in making the abstraction efficient, and &lt;strong&gt;if&lt;/strong&gt; people keep using these abstractions properly, then an understanding of the computer architecture is not entirely necessary; at least a &lt;em&gt;complete&lt;/em&gt; knowledge is not &lt;em&gt;fundamental&lt;/em&gt; to being a good programmer these days. &lt;/p&gt;&#xA;" OwnerUserId="4246" LastActivityDate="2010-10-01T13:54:13.357" CommentCount="1" />
  <row Id="8758" PostTypeId="1" AcceptedAnswerId="8765" CreationDate="2010-10-01T14:04:46.027" Score="21" ViewCount="1726" Body="&lt;p&gt;Disclaimer: I by no means condone the use of pirated software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you ever witnessed the use of pirated software for development purposes? May be a company didn't have enough money to buy a piece of software and there were no free alternatives? May be a company wanted to try something out before buying and there were no trial licenses for that product. Whatever the circumstances, have you worked at a company where using pirated/cracked software was accepted? Were there any consequences to doing this?&lt;/p&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-01T14:38:52.937" LastActivityDate="2011-01-23T07:24:28.233" CommunityOwnedDate="2011-01-23T07:24:28.233" Title="Use of pirated/cracked software for development" Tags="&lt;ethics&gt;&lt;piracy&gt;" AnswerCount="19" CommentCount="15" FavoriteCount="4" />
  <row Id="8759" PostTypeId="2" ParentId="8749" CreationDate="2010-10-01T14:09:46.350" Score="1" ViewCount="" Body="&lt;p&gt;My philosophy on languages is not so much &quot;should&quot; you learn a new language or a certain type of language, but &quot;can&quot; you and &quot;will&quot; you learn a new language if it becomes necessary. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my time in this profession I've met basically two kinds of programmers: the first kind find a language that they love and stick with it, shooting holes in the flaws of other languages as a way to justify their position and stick with the language they love. The other kind of programmer says, &quot;I just want to use the best tool for the job, and if that's a language I don't know, I'll learn it.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The programmers in the second group seem to me to be much more open, inquisitive and aggressive about furthering their own education. &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-10-01T14:09:46.350" />
  <row Id="8760" PostTypeId="2" ParentId="8758" CreationDate="2010-10-01T14:10:50.793" Score="1" ViewCount="" Body="&lt;p&gt;Pretty much the entire Office suite, and several programs for the one guy's mac, that I know of, simply due to not wanting to pay. Thus far, have seen no repercussions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was a bit taken aback when I saw this, and switched to using Thunderbird rather than Outlook after awhile because the &quot;This copy of office is not genuine&quot; prompts got old, fast.&lt;/p&gt;&#xA;" OwnerUserId="2416" LastActivityDate="2010-10-01T14:10:50.793" CommunityOwnedDate="2011-01-23T07:24:28.233" />
  <row Id="8761" PostTypeId="2" ParentId="8734" CreationDate="2010-10-01T14:12:16.597" Score="2" ViewCount="" Body="&lt;p&gt;Go talk to them directly if you have the chance. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have found that when I have the opportunity, directly talking to my clients/users is simply the best. There is no substitute for it. Also, getting a chance to watch them use your software is invaluable. Users will do things that you didn't even think of and try and use the software in ways you didn't originally intend. Observation is powerful. &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-10-01T14:12:16.597" />
  <row Id="8762" PostTypeId="2" ParentId="8758" CreationDate="2010-10-01T14:13:38.473" Score="17" ViewCount="" Body="&lt;p&gt;All the time, &lt;em&gt;especially&lt;/em&gt; Adobe products.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which is why I use free software as much as I can. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-01T14:13:38.473" CommunityOwnedDate="2011-01-23T07:24:28.233" CommentCount="8" />
  <row Id="8763" PostTypeId="2" ParentId="8758" CreationDate="2010-10-01T14:14:50.930" Score="0" ViewCount="" Body="&lt;p&gt;At a previous employer:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No repercussions. I moaned about it until we upgraded our XPs to legit Windows 7 licenses.&lt;/p&gt;&#xA;" OwnerUserId="4248" LastActivityDate="2010-10-01T14:14:50.930" CommunityOwnedDate="2011-01-23T07:24:28.233" />
  <row Id="8764" PostTypeId="2" ParentId="8758" CreationDate="2010-10-01T14:17:53.970" Score="0" ViewCount="" Body="&lt;p&gt;In my years as a developer I have worked for a company that didn't have any licenses for any of their Windows stuff (servers, dev machines, etc). All the Macs (all the designer folks) had all the licenses they needed.&#xA;After a few years of constant bugging they decided to buy licenses to everything there was in the company...huge hit in that budget :)&lt;/p&gt;&#xA;" OwnerUserId="564" LastActivityDate="2010-10-01T14:17:53.970" CommunityOwnedDate="2011-01-23T07:24:28.233" />
  <row Id="8765" PostTypeId="2" ParentId="8758" CreationDate="2010-10-01T14:23:14.387" Score="30" ViewCount="" Body="&lt;p&gt;While I don't have any problem when some companies or individuals use unlicensed software when they can't afford them (yet), I'm always amazed to see how commercial software development factories do it without shame. They are unrespectful to their own profession!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks to programs like &lt;a href=&quot;http://www.microsoft.com/bizspark/&quot; rel=&quot;nofollow&quot;&gt;Microsoft Bizspark&lt;/a&gt; (3 years of free Microsoft softwares for any startup that generate less than 1.000.000 a year in revenues), you can now get them legally.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-01T14:23:14.387" CommunityOwnedDate="2011-01-23T07:24:28.233" CommentCount="5" />
  <row Id="8766" PostTypeId="2" ParentId="8710" CreationDate="2010-10-01T14:24:06.483" Score="3" ViewCount="" Body="&lt;p&gt;Perhaps because people think that music is distracting, or that you can't listen to music while being productive. Sometimes it helps focus, sometimes it hurts it. For example, I find it to be distracting, but just barely enough that it keeps my attention on my work so that I don't drift away doing other things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately it should be unquestionably down to the developer how to manage his work environment. No one but him can say whether or not it's a good idea. Anyone who is in favor of prohibiting it is trying to micromanage. Make the point that people should be worried if developers are delivering good results, not how they do it.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastEditorUserId="1360" LastEditorDisplayName="" LastEditDate="2010-10-02T18:11:45.177" LastActivityDate="2010-10-02T18:11:45.177" CommentCount="3" />
  <row Id="8767" PostTypeId="2" ParentId="8748" CreationDate="2010-10-01T14:25:21.563" Score="9" ViewCount="" Body="&lt;p&gt;I think so.  It's a trend that has me worried.  &lt;a href=&quot;http://www.joelonsoftware.com/articles/LeakyAbstractions.html&quot; rel=&quot;nofollow&quot;&gt;No abstraction is perfect&lt;/a&gt;; if there was a perfect way to simplify any complex problem, it would replace the original very quickly.  (That's happened in the past, occasionally with computers, and a lot more frequently in other fields that don't worry as much about backwards compatibility as we do, such as physics.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What this means is that every time you use an abstraction, there's some important piece of essential complexity that it's hiding from you.  If you don't know what that is, why it's there and what it's doing, you end up &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000319.html&quot; rel=&quot;nofollow&quot;&gt;accidentally writing big train wrecks, and not knowing how to fix them because you don't know what's really going on.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone who tries to tell you otherwise is either selling snake oil or simply doesn't have much experience with serious software.  At work, I work on a program that runs a good percentage of all the TV and radio stations in the USA.  As stations and networks get bigger and more complex, quick and dirty techniques that worked fine for designing a product for one small station end up hitting big technical walls when implemented for a network with 50 stations and 200 channels!  Without a deep understanding of how the language works, (and an efficient language in the first place,) and a deep understanding of how the database works, our coders would never have been able to make the product scale successfully.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't an isolated story, either.  Software continues to grow more and more complex, not simpler, and I'm afraid that this level of technical expertise is going to become something of a lost art, and tomorrow's programs will be worse than today's, not better.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-01T14:25:21.563" CommentCount="1" />
  <row Id="8768" PostTypeId="2" ParentId="8685" CreationDate="2010-10-01T14:26:23.297" Score="14" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/q/1732348/#1732454&quot;&gt;This one!&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4245" LastActivityDate="2010-10-01T14:26:23.297" CommunityOwnedDate="2010-10-01T14:26:23.297" CommentCount="5" />
  <row Id="8769" PostTypeId="2" ParentId="8721" CreationDate="2010-10-01T14:28:18.503" Score="3" ViewCount="" Body="&lt;p&gt;Think of it like this.... Tiger Woods didn't get to be &quot;the best&quot; golfer by watching golf or by reading about it. He got that way, as any other athlete does,by studying, by practicing, by finding where he can improve his game and doing something about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coding is the same. The best way to get better at it is to study what others do, understand WHY they do it that way, and then doing it your self.  &lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-01T14:28:18.503" CommentCount="1" />
  <row Id="8770" PostTypeId="2" ParentId="8758" CreationDate="2010-10-01T14:30:04.007" Score="11" ViewCount="" Body="&lt;p&gt;Consequences of using pirated software for development is underestimation of development costs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You use pirated software only if the society allows you to, and police has better things to do.  But this may change.  As soon as they pay attention to piracy in your company, you'll encounter a &lt;strong&gt;sudden&lt;/strong&gt; need to invest a lot of money into licenses.  You won't be able to even continue development (if your text editors, compilers, revision control systems are pirated and have to be shut down) without such investment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should take this risk into account and plan spending money on it in the future—or just use legal software.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-10-01T14:30:04.007" CommunityOwnedDate="2011-01-23T07:24:28.233" CommentCount="2" />
  <row Id="8771" PostTypeId="2" ParentId="3049" CreationDate="2010-10-01T14:32:14.880" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://liftweb.net/&quot; rel=&quot;nofollow&quot;&gt;Lift&lt;/a&gt; is an interesting framework for Scala. The practical advantage of Scala is that it can use any existing Java libraries.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastActivityDate="2010-10-01T14:32:14.880" />
  <row Id="8772" PostTypeId="1" CreationDate="2010-10-01T14:32:20.667" Score="16" ViewCount="538" Body="&lt;p&gt;My favorite is the Lambda, which features in several language logos. The Lambda instantly says to me &quot;code&quot; whenever I see it. I find myself doodling lambdas, and may one day get it tattood.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What other symbols are there out there that say &quot;code&quot; to you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/iCsip.png&quot; alt=&quot;Lambda&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1724" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-10-03T07:49:15.977" LastActivityDate="2010-10-04T06:35:05.527" Title="What symbols out there best represent programming?" Tags="&lt;programming-languages&gt;&lt;jargon&gt;" AnswerCount="18" CommentCount="9" FavoriteCount="1" />
  <row Id="8774" PostTypeId="2" ParentId="8721" CreationDate="2010-10-01T14:42:55.907" Score="3" ViewCount="" Body="&lt;p&gt;As in any other human activity, the best way to improve is to practice your knowledge, but you need some exercices for that. &#xA;&lt;a href=&quot;http://pragdave.pragprog.com/pragdave/&quot; rel=&quot;nofollow&quot;&gt;Dave Thomas&lt;/a&gt;, one of the authors of the book The Pragmatic Programmer, introduced the concept of &lt;a href=&quot;http://codekata.pragprog.com/2007/01/code_katahow_it.html&quot; rel=&quot;nofollow&quot;&gt;Code Katas&lt;/a&gt;, similar to the kata concept in martial arts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can take a look there: &lt;a href=&quot;http://codekata.pragprog.com/&quot; rel=&quot;nofollow&quot;&gt;http://codekata.pragprog.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3730" LastActivityDate="2010-10-01T14:42:55.907" CommentCount="1" />
  <row Id="8775" PostTypeId="2" ParentId="8772" CreationDate="2010-10-01T14:46:52.117" Score="3" ViewCount="" Body="&lt;h1&gt;^&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;—just haven't seen it anywhere else (Pascal pointers &lt;code&gt;^memory&lt;/code&gt;, control sequences &lt;code&gt;^W&lt;/code&gt;, etc.)&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-10-01T14:46:52.117" CommentCount="3" />
  <row Id="8776" PostTypeId="2" ParentId="8772" CreationDate="2010-10-01T14:49:16.217" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;~&lt;/strong&gt;, sweet &lt;strong&gt;~&lt;/strong&gt;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(as in 'home, sweet home')&lt;/p&gt;&#xA;" OwnerUserId="3915" LastActivityDate="2010-10-01T14:49:16.217" CommentCount="2" />
  <row Id="8777" PostTypeId="1" CreationDate="2010-10-01T14:49:27.307" Score="12" ViewCount="397" Body="&lt;p&gt;I remember seeing an article a while back saying that there are a lot of interesting technical problems in adult entertainment websites- rapid scalability, high quality video streaming, complex user and site management, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm wondering if anyone has any experience doing development in that industry?  Is it as seedy as one would expect, or is it just another office job?  For those without such experience, would you consider working at a company that built porn sites?&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-01T15:20:10.217" Title="Porn-related software development?" Tags="&lt;career&gt;&lt;jobs&gt;" AnswerCount="3" CommentCount="7" FavoriteCount="3" />
  <row Id="8778" PostTypeId="2" ParentId="8772" CreationDate="2010-10-01T14:49:36.137" Score="19" ViewCount="" Body="&lt;h1&gt;{} || ()&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Really, braces (or parentheses you LISP guys) are one of the most prominent programming symbols after the common letters (e, t, some others I forgot).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Might as well throw in &lt;strong&gt;;&lt;/strong&gt;, &lt;strong&gt;/*&lt;/strong&gt;, and &lt;strong&gt;++&lt;/strong&gt; while you're at it as those are also common programming symbols. I smoke people in typing speed tests that require heavy use of the semicolon. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-10-01T15:37:54.640" LastActivityDate="2010-10-01T15:37:54.640" />
  <row Id="8779" PostTypeId="2" ParentId="8758" CreationDate="2010-10-01T14:50:25.653" Score="0" ViewCount="" Body="&lt;p&gt;Web-based startups and companies have great choice of free and mature tools.&#xA;In my experience, those companies that are brainwashed to like Windows, also do not mind paying for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I find .Net and Silverlight and a few other things quite nice.&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-10-01T14:50:25.653" CommunityOwnedDate="2011-01-23T07:24:28.233" />
  <row Id="8780" PostTypeId="2" ParentId="8685" CreationDate="2010-10-01T14:50:41.723" Score="3" ViewCount="" Body="&lt;p&gt;Just a minute ago instead of explaining to the user that I had sped up a refresh by disconnecting the datasource from a grid, I explained that I &lt;em&gt;&quot;reconfigured the parambulation matrix&quot;&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;He didn't even blink.&lt;/p&gt;&#xA;" OwnerUserId="1724" LastActivityDate="2010-10-01T14:50:41.723" CommunityOwnedDate="2010-10-01T14:50:41.723" CommentCount="1" />
  <row Id="8781" PostTypeId="2" ParentId="8758" CreationDate="2010-10-01T14:52:10.317" Score="9" ViewCount="" Body="&lt;p&gt;I once worked for a company that didn't pay for many of the development tools. They covered the basics (Windows, Visual Studio, etc.) through an MSDN subscription, but there was little chance of getting proper licenses for plugins, source control, and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There were no repercussions at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm personally not comfortable stealing software and it was one of my reasons to eventually move on. I'd rather not use a program at all or get by with a more restricted free version than pirate it. I would consider making an exception for tools that are outrageously expensive for an individual, like most of Adobe's products, but only with the understanding that if a person makes money using those tools, they should eventually pay for them instead of riding the free piracy train.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-01T14:52:10.317" CommunityOwnedDate="2011-01-23T07:24:28.233" CommentCount="10" />
  <row Id="8782" PostTypeId="2" ParentId="8749" CreationDate="2010-10-01T14:55:44.697" Score="6" ViewCount="" Body="&lt;p&gt;Fine... I'll be the contrarian...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No, why waste time teaching yourself something you'll never use?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Life is too short to spend time and energy on something you're not going to use.  There are so many things in this world that need help, if you're going to waste your time on something you're not going to use, why not &quot;waste&quot; it on something that will make a difference??&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let the flamming begin!! :-)&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-10-01T14:55:44.697" CommentCount="6" />
  <row Id="8783" PostTypeId="2" ParentId="8777" CreationDate="2010-10-01T14:56:44.397" Score="7" ViewCount="" Body="&lt;p&gt;I saw a documentary a couple years ago that suggested that for people employed on the technical side of it (and even on the production of the actual content, really), it's just a job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd consider it, sure. I don't know if I'd seek out companies that are involved in the adult industry unless I were unemployed and desperate, though. Not because I'm personally against that sort of thing, but more because of the impact it could have on my resume. While I don't care what people do in the privacy of their homes, I imagine many hiring managers do, so I'd be wary of making it more difficult for me to find another job in the future.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-01T14:56:44.397" CommentCount="1" />
  <row Id="8784" PostTypeId="2" ParentId="8777" CreationDate="2010-10-01T14:57:56.207" Score="7" ViewCount="" Body="&lt;p&gt;I did that more than 10 years ago, but frankly, this is no more different than any other website with high demand, such as radios or television with lots of audio/video content.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-01T14:57:56.207" />
  <row Id="8785" PostTypeId="2" ParentId="8710" CreationDate="2010-10-01T15:01:01.247" Score="2" ViewCount="" Body="&lt;p&gt;Putting on headphones and listening to whatever is the cubicle equivalent of shutting your office door.  For me, it helps me focus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The corporate culture may frown upon this because people may feel intimidated to interrupt you while listening.  This could be a good or bad thing, depending on how important the interruption is.&lt;/p&gt;&#xA;" OwnerUserId="4028" LastActivityDate="2010-10-01T15:01:01.247" CommentCount="1" />
  <row Id="8786" PostTypeId="2" ParentId="8772" CreationDate="2010-10-01T15:02:27.553" Score="6" ViewCount="" Body="&lt;p&gt;If you're not limiting the question to just symbols from &quot;daily life,&quot; the logo of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Knights_of_the_Lambda_Calculus&quot; rel=&quot;nofollow&quot;&gt;Knights of the Lambda Calculus&lt;/a&gt; is my favorite symbol for programming:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Sjfhr.png&quot; alt=&quot;Knights of the Lambda Calculus&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2026" LastActivityDate="2010-10-01T15:02:27.553" CommentCount="1" />
  <row Id="8787" PostTypeId="2" ParentId="8758" CreationDate="2010-10-01T15:04:33.880" Score="0" ViewCount="" Body="&lt;p&gt;I've seen 'sample edition' tools used in production, where the download agreement explicitly says you're not supposed to use it in an actual product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also seen a case in a very small shop of a 'stolen' windows XP copy. I'll sortof give them a pass though, as they had N computers, and N licenses, but for some screwed up reason one of the licenses wouldn't work on one of the computers.&lt;/p&gt;&#xA;" OwnerUserId="3645" LastActivityDate="2010-10-01T15:04:33.880" CommunityOwnedDate="2011-01-23T07:24:28.233" />
  <row Id="8789" PostTypeId="1" AcceptedAnswerId="17394" CreationDate="2010-10-01T15:08:18.097" Score="2" ViewCount="77" Body="&lt;p&gt;I was browsing through &lt;a href=&quot;http://qconlondon.com/london-2009/tracks/show_track.jsp?trackOID=232&quot; rel=&quot;nofollow&quot;&gt;this talk&lt;/a&gt; about &quot;Historically Bad Ideas&quot; over the history of Computer Science, and found an &lt;a href=&quot;http://qconlondon.com/dl/qcon-london-2009/slides/RodJohnson_JavaEnterpriseApplicationStandardsAndWhyTheIndustryMovedToLightweightOpenSource.pdf&quot; rel=&quot;nofollow&quot;&gt;interesting presentation&lt;/a&gt; about the rise &amp;amp; fall of the Java Enterprise initiatives. Slide #16 grabbed my attention by suggesting that Container Managed Persistence is a &quot;naïve ORM solution&quot;. Of course, I assume  the presenter made a live in-depth analysis of the problem, which is missing in the slide. So I was left intrigued by that statement. Is CMP Entity Beans just a heavy piece of naive engineering?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aside any bias from &lt;a href=&quot;http://www.springsource.com/&quot; rel=&quot;nofollow&quot;&gt;the author(s) of the presentation&lt;/a&gt;, what would constitute a more adequate ORM solution in the domain of languages like Java or C#? I'm not asking for specific tools or frameworks, but better approaches. Thank you!&lt;/p&gt;&#xA;" OwnerUserId="4247" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-10-14T04:49:44.397" LastActivityDate="2010-11-06T21:10:59.567" Title="CMP Entity Beans as a &quot;naive&quot; ORM solution" Tags="&lt;java&gt;&lt;orm&gt;&lt;entity&gt;" AnswerCount="1" />
  <row Id="8790" PostTypeId="2" ParentId="8631" CreationDate="2010-10-01T15:14:02.863" Score="0" ViewCount="" Body="&lt;p&gt;I still give them a Good Name. You can always think of some thing meaningful, try hard.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-01T15:14:02.863" />
  <row Id="8791" PostTypeId="2" ParentId="2124" CreationDate="2010-10-01T15:18:09.003" Score="1" ViewCount="" Body="&lt;p&gt;Nobody would ever apply these complaints to a programming language. There are numerous complaints about college professors who teach language classes and they are not very good programmers or if they were it was 20 years ago and they haven't built anything since. If you are on a LAMP platform and your Ruby on Rails website sucks, don't blame it on Ruby! You must not be doing it properly because there are a lot of sites out there that made it work and they weren't created by 37Signals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fake Success Stories - you mean there programming languages you can write once and run everywhere?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Non-answers to questions - A programmer complaining about someone saying 'it depends' Give me a break.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The class would have been three days&#xA;  of me trying to share things that the&#xA;  team had no desire to hear and wasn't&#xA;  going to practice. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Well loddy-frickin-da! That's what you're being paid to do. If you don't feel capable, that's another issue. If they're already convinced to go agile, they'd just pick up some book and figure it out (Sorry, not that complicated.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Little Gold Star Syndrome - like those certificates you get from EVERY programming class you take. Except the one I have signed by Bill Gates, that's legit which is why I bring it to every interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;**Disclaimer - these comments are in no way an endorsement for Agile development or any languages or methodologies mentioned in this answer. There were no animals harmed either.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-01T15:18:09.003" />
  <row Id="8792" PostTypeId="2" ParentId="8772" CreationDate="2010-10-01T15:18:35.303" Score="5" ViewCount="" Body="&lt;p&gt;Any random sequence of 0 and 1.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-01T15:18:35.303" />
  <row Id="8793" PostTypeId="2" ParentId="8777" CreationDate="2010-10-01T15:20:10.217" Score="3" ViewCount="" Body="&lt;p&gt;I don't know, but anyone who can create that never ending succession of pop-ups...&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-01T15:20:10.217" />
  <row Id="8795" PostTypeId="2" ParentId="8710" CreationDate="2010-10-01T15:26:20.233" Score="1" ViewCount="" Body="&lt;p&gt;Micromanagement drives morale down. Unless there is a compelling reason related to specified duties to ban mp3 players (e.g., call center workers), there is no reason to do this.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-01T15:26:20.233" />
  <row Id="8796" PostTypeId="2" ParentId="8694" CreationDate="2010-10-01T15:27:11.030" Score="0" ViewCount="" Body="&lt;p&gt;You're going to have a hard time getting an expert to answer this question without some sort of facebookologist as a member of the programmers.SE.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I see as a non-biased Wisconsineer is that people from either coasts don't get my jokes and therefore will find me as an awfully big burden on their company.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;UW Madison, Michigan, and NIU ship out some excellent programmers, but we don't have any classy universities so we can't compete with classiness - which is what I think is the distinction drawn between East and West coast development houses.  The same comparison can be made in fashion and film. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-01T15:27:11.030" CommentCount="0" />
  <row Id="8798" PostTypeId="2" ParentId="8772" CreationDate="2010-10-01T15:27:47.083" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;$&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&amp;amp;&amp;amp;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-10-01T15:27:47.083" CommentCount="2" />
  <row Id="8799" PostTypeId="2" ParentId="8772" CreationDate="2010-10-01T15:29:39.640" Score="1" ViewCount="" Body="&lt;p&gt;Many programming languages make better use of the &lt;b&gt;;&lt;/b&gt; than the English language!&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-01T15:29:39.640" CommentCount="2" />
  <row Id="8800" PostTypeId="2" ParentId="8772" CreationDate="2010-10-01T15:30:59.293" Score="0" ViewCount="" Body="&lt;h1&gt;//&lt;/h1&gt;&#xA;&#xA;&lt;h1&gt;++&lt;/h1&gt;&#xA;&#xA;&lt;h1&gt;;&lt;/h1&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-01T15:30:59.293" />
  <row Id="8803" PostTypeId="2" ParentId="8721" CreationDate="2010-10-01T15:44:19.387" Score="2" ViewCount="" Body="&lt;p&gt;I suggest learning all of the syntax of your favourite language. Understand how to use virtual functions, inheritance, lambda if they exist. etc. One thing i did was grab a large scary library (i did this with boost and STL for C++) and see if every line and every keyword make sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or alternatively you can read the language syntax reference if there is a good one that covers the most up to date version. As an example here is &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/618ayhy6.aspx&quot; rel=&quot;nofollow&quot;&gt;the C# reference&lt;/a&gt; (Not the version at the top. I made the mistake by looking at a more popular older version that didnt have the syntax i was looking for)&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-10-01T15:44:19.387" />
  <row Id="8804" PostTypeId="2" ParentId="8721" CreationDate="2010-10-01T15:52:32.597" Score="12" ViewCount="" Body="&lt;p&gt;Coding is great advice, but without someone there to give you feedback, you'll just repeat your mistakes. Find a job, work on an open source project, find a mentor and get them to look at your code. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-01T15:52:32.597" CommentCount="4" />
  <row Id="8805" PostTypeId="1" AcceptedAnswerId="8807" CreationDate="2010-10-01T15:52:43.393" Score="8" ViewCount="173" Body="&lt;p&gt;Assuming I've found an open source project I'm interested in, how do I evaluate the project(the members, the activity level, etc) to determine if joining the project will be a good use of my time and energy?&lt;/p&gt;&#xA;" OwnerUserId="2283" LastActivityDate="2011-05-27T08:55:41.173" Title="How to evaluate an open source project with joining in mind?" Tags="&lt;open-source&gt;" AnswerCount="6" />
  <row Id="8807" PostTypeId="2" ParentId="8805" CreationDate="2010-10-01T15:56:16.570" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Look at the source control history.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From that, you can see checkins, review code, gauge the activity level, and generally see the quality of commits.  You can learn the most from just looking at the source code activity.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-01T15:56:16.570" CommentCount="2" />
  <row Id="8808" PostTypeId="1" AcceptedAnswerId="8812" CreationDate="2010-10-01T15:56:34.667" Score="16" ViewCount="773" Body="&lt;p&gt;We are running SCRUM (at least I believe we are). And now we are looking now on &lt;a href=&quot;http://www.pivotaltracker.com/&quot; rel=&quot;nofollow&quot;&gt;Pivotal Tracker&lt;/a&gt; and want to get rid of ton of Google Spreadsheet files. But I have no experience in using such types of tools. So what is the best tool you ever used and why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will accept an answer with the higher amount of up-votes and will try to use tool it describes. Thank you!&lt;/p&gt;&#xA;" OwnerUserId="1716" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T16:03:54.480" LastActivityDate="2011-02-05T17:05:17.267" Title="What is the best agile project management tool have you used?" Tags="&lt;tools&gt;&lt;project-management&gt;&lt;agile&gt;" AnswerCount="13" CommentCount="2" FavoriteCount="5" />
  <row Id="8810" PostTypeId="2" ParentId="8805" CreationDate="2010-10-01T15:57:33.260" Score="3" ViewCount="" Body="&lt;p&gt;You can do several things:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Look at their mailing list archives, see how the community behaves in public&lt;/li&gt;&#xA;&lt;li&gt;Look at the frequency of their releases and the quality of the release notes&lt;/li&gt;&#xA;&lt;li&gt;Look for a clear mission statement and a list of features/requirements on their site&lt;/li&gt;&#xA;&lt;li&gt;Check its maturity - if you're looking to be mentored/eased into a project then a mature project is more forgiving than a brand new project.  The reverse is also true.&lt;/li&gt;&#xA;&lt;li&gt;Look at the structure, is it a Benevolent Dictator or a community council approach&lt;/li&gt;&#xA;&lt;li&gt;Look for their joining instructions, friendly? clear?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;That's a start anyhow :)&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-10-01T15:57:33.260" />
  <row Id="8811" PostTypeId="2" ParentId="8805" CreationDate="2010-10-01T15:58:24.457" Score="0" ViewCount="" Body="&lt;p&gt;Join if you will enjoy&lt;sup&gt;1&lt;/sup&gt; working on the project.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt;: &quot;enjoy&quot; could mean whatever makes you happy.&lt;/p&gt;&#xA;" OwnerUserId="700" LastActivityDate="2010-10-01T15:58:24.457" />
  <row Id="8812" PostTypeId="2" ParentId="8808" CreationDate="2010-10-01T16:05:00.423" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Excel&lt;/strong&gt; (or Google SpreadSheet), because using simple tools &lt;code&gt;is&lt;/code&gt; being Agile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/KISS_principle&quot; rel=&quot;nofollow&quot;&gt;Keep it simple, stupid&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-01T16:05:00.423" CommentCount="16" />
  <row Id="8814" PostTypeId="2" ParentId="1745" CreationDate="2010-10-01T16:10:01.023" Score="11" ViewCount="" Body="&lt;p&gt;That Hungarian notation only means that you prefix variable names with a type (like int iArraylength = 5; ) instead of what kind of data it holds (like int xcTextfield = getTextfield().coord.x; )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Systems Hungarian notation&quot; != &quot;Apps Hungarian notation&quot;&lt;/p&gt;&#xA;" OwnerUserId="4012" LastActivityDate="2010-10-01T16:10:01.023" CommunityOwnedDate="2010-10-01T16:10:01.023" CommentCount="3" />
  <row Id="8815" PostTypeId="2" ParentId="2501" CreationDate="2010-10-01T16:13:57.570" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.onemorelevel.com/game/lightbot&quot; rel=&quot;nofollow&quot;&gt;http://www.onemorelevel.com/game/lightbot&lt;/a&gt;&#xA;http://www.onemorelevel.com/game/lightbot_2&#xA;&lt;a href=&quot;http://www.filetransit.com/screenshot.php?id=44795&quot; rel=&quot;nofollow&quot;&gt;http://www.filetransit.com/screenshot.php?id=44795&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The last 2 kicked my ass :)&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-10-01T16:13:57.570" />
  <row Id="8816" PostTypeId="2" ParentId="1745" CreationDate="2010-10-01T16:16:49.473" Score="6" ViewCount="" Body="&lt;p&gt;That there is a single &quot;best&quot; tool/solution/answer to any problem/question&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-10-01T16:16:49.473" CommunityOwnedDate="2010-10-01T16:16:49.473" />
  <row Id="8817" PostTypeId="2" ParentId="5336" CreationDate="2010-10-01T16:19:14.957" Score="0" ViewCount="" Body="&lt;p&gt;Before I dropped out of grad school (lack of planning, I guess), I had similar symptoms. This is your body telling you that you cannot handle the load, do not turn a sprint into a marathon. If you do not listen to your body, your work will crash and burn, you will recover in 1-2 months (depending on your approach), and will be a happy person again, and you will have learned something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you are under stress, you will scare clients away, and what is the point anyway? You will likely be dead in 60 years from now. Do not try to be the next Steve Jobs. Read &quot;fooled by randomness&quot; - it is a short book which can help you. Just be happy, work no more than 50 hours per week.&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-10-01T16:19:14.957" />
  <row Id="8818" PostTypeId="2" ParentId="8758" CreationDate="2010-10-01T16:19:38.730" Score="2" ViewCount="" Body="&lt;p&gt;I know a small software company that have all unlicensed software in virtual machines using VMWare so it can be deleted and restored if necessary. I do not condemn it (nor approve it) when an individual does it but when a company do it, it's a sad thing.&lt;/p&gt;&#xA;" OwnerUserId="1969" LastActivityDate="2010-10-01T16:19:38.730" CommunityOwnedDate="2011-01-23T07:24:28.233" />
  <row Id="8819" PostTypeId="2" ParentId="2501" CreationDate="2010-10-01T16:21:03.907" Score="0" ViewCount="" Body="&lt;p&gt;When I was but a wee lad, I would watch my dad write programs on the Commodore 128, man that was great.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like my kids to see or at least understand what I'm doing all day, the way a farmer would - a familial bond that was destroyed by the industrial revolution, but made much worse by the internet revolution.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-01T16:21:03.907" />
  <row Id="8820" PostTypeId="2" ParentId="8805" CreationDate="2010-10-01T16:25:45.070" Score="1" ViewCount="" Body="&lt;p&gt;Base it on your goals (not sure what they are). If you're trying to get programming experience, you don't realy have much to lose by trying it out. If anything, you may learn how 'not' to code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're trying to make a name for yourself by attaching yourself to a great project, you may have a tougher time. Try searching the net for any blogs or comments from other developers and users of the software (If it is that far along.). Take a look at the coding progress. Is it moving along at a pace to your liking. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Trying to find out if the other members &quot;play nice with others&quot; may take a combination of some of the practices I just mentioned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try it out. &quot;It don't cost nothin'&quot; - John Belushi, Animal House.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-01T16:25:45.070" />
  <row Id="8821" PostTypeId="2" ParentId="8772" CreationDate="2010-10-01T16:33:16.133" Score="1" ViewCount="" Body="&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Because I typed a bunch of asterisks and something else (A Line) shows up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/6mrRs.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2010-10-01T20:09:33.150" LastActivityDate="2010-10-01T20:09:33.150" CommentCount="1" />
  <row Id="8822" PostTypeId="2" ParentId="6394" CreationDate="2010-10-01T16:37:34.380" Score="2" ViewCount="" Body="&lt;p&gt;Have you ever looked at the &lt;a href=&quot;http://www.systemsguild.com/pdfs/SpecTemplate6.1.pdf&quot; rel=&quot;nofollow&quot;&gt;Volere Requirements Template&lt;/a&gt;? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;While it contains a little too much detail for my taste, particularly for a proposal (it's better suited for detailed up front requirements specification), the section headings are a great checklist to make sure you've thought about all of the different moving parts before giving an estimate or creating a proposal document.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here they are:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;PROJECT DRIVERS&lt;/p&gt;&#xA;  &#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;The Purpose of the Product&lt;/li&gt;&#xA;  &lt;li&gt;Client, Customer and other Stakeholders&lt;/li&gt;&#xA;  &lt;li&gt;Users of the Product &lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;  &#xA;  &lt;p&gt;PROJECT CONSTRAINTS&lt;/p&gt;&#xA;  &#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;Mandated Constraints&lt;/li&gt;&#xA;  &lt;li&gt;Naming Conventions and Definitions&lt;/li&gt;&#xA;  &lt;li&gt;Relevant Facts and Assumptions &lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;  &#xA;  &lt;p&gt;FUNCTIONAL REQUIREMENTS&lt;/p&gt;&#xA;  &#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;The Scope of the Work&lt;/li&gt;&#xA;  &lt;li&gt;The Scope of the Product&lt;/li&gt;&#xA;  &lt;li&gt;Functional and Data Requirements &lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;  &#xA;  &lt;p&gt;NON-FUNCTIONAL REQUIREMENTS&lt;/p&gt;&#xA;  &#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;Look and Feel Requirements&lt;/li&gt;&#xA;  &lt;li&gt;Usability Requirements&lt;/li&gt;&#xA;  &lt;li&gt;Performance Requirements&lt;/li&gt;&#xA;  &lt;li&gt;Operational Requirements&lt;/li&gt;&#xA;  &lt;li&gt;Maintainability and Portability Requirements&lt;/li&gt;&#xA;  &lt;li&gt;Security Requirements&lt;/li&gt;&#xA;  &lt;li&gt;Cultural and Political Requirements&lt;/li&gt;&#xA;  &lt;li&gt;Legal Requirements&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;  &#xA;  &lt;p&gt;PROJECT ISSUES&lt;/p&gt;&#xA;  &#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;Open Issues&lt;/li&gt;&#xA;  &lt;li&gt;Off-the-Shelf Solutions&lt;/li&gt;&#xA;  &lt;li&gt;New Problems&lt;/li&gt;&#xA;  &lt;li&gt;Tasks&lt;/li&gt;&#xA;  &lt;li&gt;Cutover&lt;/li&gt;&#xA;  &lt;li&gt;Risks&lt;/li&gt;&#xA;  &lt;li&gt;Costs&lt;/li&gt;&#xA;  &lt;li&gt;User Documentation and Training&lt;/li&gt;&#xA;  &lt;li&gt;Waiting Room&lt;/li&gt;&#xA;  &lt;li&gt;Ideas for Solutions&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-10-01T16:37:34.380" />
  <row Id="8823" PostTypeId="2" ParentId="1" CreationDate="2010-10-01T16:46:34.193" Score="0" ViewCount="" Body="&lt;p&gt;Code comments giving, where applicable, units of function arguments and returns, structure fields, even local variables can be very handy. Remember the Mars Orbiter!&lt;/p&gt;&#xA;" OwnerUserId="3555" LastActivityDate="2010-10-01T16:46:34.193" CommunityOwnedDate="2011-01-31T09:04:54.130" CommentCount="1" />
  <row Id="8824" PostTypeId="2" ParentId="8808" CreationDate="2010-10-01T16:48:17.437" Score="2" ViewCount="" Body="&lt;p&gt;I cannot recommend &lt;a href=&quot;https://www.assembla.com/&quot; rel=&quot;nofollow&quot;&gt;Assembla&lt;/a&gt; enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's lightweight, it contains a ticketing system with a simple way to to agile planning and burndown charts, a wiki, hosted GIT and SVN and a bunch of other tools, including a Standup report to replace / augment the daily standup if members can't be there in person. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each project space can be configured differently (so you could use GIT for one project and SVN for another, for example). If you have a distributed team, or an offsite customer, this is the best tool I've found with the easiest learning curve for new users and customers.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-10-01T16:48:17.437" />
  <row Id="8826" PostTypeId="2" ParentId="8772" CreationDate="2010-10-01T17:02:09.360" Score="1" ViewCount="" Body="&lt;p&gt;I rarely see the pound sign (&lt;code&gt;#&lt;/code&gt;) outside of code... it's used for comments in many higher-level languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When someone tells me to look at diagram #6, I just wonder why they didn't finish their sentence.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-10-01T17:02:09.360" CommentCount="1" />
  <row Id="8827" PostTypeId="1" CreationDate="2010-10-01T17:09:21.170" Score="1" ViewCount="220" Body="&lt;p&gt;For the first time i used a magnet link. Curious about how it works i looked up the specs and didnt find any answers. From the wiki it says xt means exact topic and is followed by the format (btih in this case) with a SHA1 hash. I saw base32 mentioned, knowing its 5bits per letter and 32 letters i found it holds exactly 160bits which is exactly the size of the SHA1.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Theres no room for IP address or anything, its just a SHA1. So how does it find it? i turned on URL Snooper to see if it visits a page (using tcp/http) and do a lookup or any other things similar and nothing happened. I didnt really think it would visit a site but i just did it to check. I have no idea how it finds peers, how does it work?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, what is the hash of? is it a hash of an array of all the file hashes together? maybe its a hash of the actual torrent file required (stripping certain information)?&lt;/p&gt;&#xA;" OwnerUserId="2528" LastEditorUserId="2528" LastEditorDisplayName="" LastEditDate="2010-10-01T17:17:24.647" LastActivityDate="2010-10-01T17:29:00.373" ClosedDate="2010-10-02T04:36:21.630" Title="How does BT magnet links work?" Tags="&lt;implementations&gt;&lt;formats&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="8828" PostTypeId="2" ParentId="8808" CreationDate="2010-10-01T17:10:20.280" Score="1" ViewCount="" Body="&lt;p&gt;We're doing a similar search ourselves and will be interested in the answers you receive.  We're currently using the Atlassian suite of tools (JIRA, Confluence, Crucible) and are thinking of implementing &lt;a href=&quot;http://www.atlassian.com/software/greenhopper&quot; rel=&quot;nofollow&quot;&gt;GreenHopper&lt;/a&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://scrumy.com&quot; rel=&quot;nofollow&quot;&gt;Scrumy&lt;/a&gt; also looks very interesting.&lt;/p&gt;&#xA;" OwnerUserId="4122" LastActivityDate="2010-10-01T17:10:20.280" CommentCount="1" />
  <row Id="8829" PostTypeId="2" ParentId="8758" CreationDate="2010-10-01T17:13:39.133" Score="0" ViewCount="" Body="&lt;p&gt;Not by the company, but I use an illegal copy of windows inside a virtual machine. I run linux normally, and have a very small need for ever using windows, probably about once a week. I guess I think of it that since it's in a virtual machine, it's not illegal =P&lt;/p&gt;&#xA;" OwnerUserId="1369" LastActivityDate="2010-10-01T17:13:39.133" CommunityOwnedDate="2011-01-23T07:24:28.233" CommentCount="3" />
  <row Id="8830" PostTypeId="2" ParentId="8827" CreationDate="2010-10-01T17:29:00.373" Score="1" ViewCount="" Body="&lt;p&gt;The torrent is looked up on a &lt;a href=&quot;http://en.wikipedia.org/wiki/Distributed_hash_table&quot; rel=&quot;nofollow&quot;&gt;Distributed Hash Table&lt;/a&gt;. There is no IP address because one isn't needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://niallohiggins.com/2007/12/24/bittorrent-distributed-hash-table-dht-or-trackerless-bittorrent-i/&quot; rel=&quot;nofollow&quot;&gt;This page&lt;/a&gt; describes how it works.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-10-01T17:29:00.373" CommentCount="2" />
  <row Id="8831" PostTypeId="2" ParentId="8741" CreationDate="2010-10-01T17:30:39.530" Score="4" ViewCount="" Body="&lt;p&gt;Having an ergonomic setup isn't a perq, it's an &lt;a href=&quot;http://www.osha.gov/SLTC/etools/computerworkstations/checklist.html&quot; rel=&quot;nofollow&quot;&gt;OSHA requirement&lt;/a&gt;. You have an expectation that reasonable demands will be met as far as a work environment that does not injure you in the course of your work activities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said it usually requires legwork by the employee to make sure things are acceptable, and it may end up easier for you to bring in your own keyboard/tray/etc. Bringing in your own monitor or computer can cause maintenance problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've brought my own chair to almost every workplace I've been in--the only problem was when it clogged up my cube. (I turned the corp-issued chair into a &quot;guest chair&quot;.) Now, if you want to bring in an overstuffed lounger, that might be a problem space-wise...and of course people may walk off with your chair!&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-10-01T17:30:39.530" />
  <row Id="8832" PostTypeId="2" ParentId="8721" CreationDate="2010-10-01T17:42:27.673" Score="8" ViewCount="" Body="&lt;p&gt;Here's a &lt;a href=&quot;http://www.infoq.com/presentations/Sharpening-the-Tools&quot; rel=&quot;nofollow&quot;&gt;presentation&lt;/a&gt; Dan North gave and QCon on &lt;strong&gt;how to move from novice to expert programmer called Sharpening the Tools&lt;/strong&gt;. Below are key suggestions from the presentation:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Practice the basics: kata, code for fun ...&lt;/li&gt;&#xA;&lt;li&gt;Learn from other people: read books, blogs, etc., read code, programme in pairs ...&lt;/li&gt;&#xA;&lt;li&gt;Understand the trends: what is happening in the industry now&lt;/li&gt;&#xA;&lt;li&gt;Share knowledge: best way to learn something is to understand and teach it&lt;/li&gt;&#xA;&lt;li&gt;Maintain your toolbox: use &quot;timeless&quot; and new tools&lt;/li&gt;&#xA;&lt;li&gt;Learn how to learn: understand how learning works&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="3262" LastEditorDisplayName="" LastEditDate="2010-10-01T18:58:52.447" LastActivityDate="2010-10-01T18:58:52.447" />
  <row Id="8836" PostTypeId="2" ParentId="8808" CreationDate="2010-10-01T17:52:52.753" Score="4" ViewCount="" Body="&lt;p&gt;The best agile project management tool is the &lt;strong&gt;Wall&lt;/strong&gt;.  The wall and user story cards give you total freedom how to visualize your backlog and work in progress.  If properly used, it will never make itself &lt;a href=&quot;http://agilemanifesto.org/&quot; rel=&quot;nofollow&quot;&gt;more important than &quot;individuals and interactions&quot;&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you consider the usage of agile management &lt;strong&gt;software&lt;/strong&gt; tools, each of them has its slice of the pie chart.  But the wall has almost 100% &quot;market share&quot; among the teams that practice real Agile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After this preamble, let me get to the original question about software tools.  We all need them of course.  This is where VersionOne, JIRA, RedMine, etc. come in.  Choose the one that lets you efficiently represent the state of &lt;strong&gt;your&lt;/strong&gt; wall in an electronic form.  If one tool doesn't let you do this very well, then you need a different tool.  The principle is to put the wall first and not let the PM software dictate your process.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-01T17:52:52.753" CommentCount="2" />
  <row Id="8840" PostTypeId="2" ParentId="8808" CreationDate="2010-10-01T18:02:54.433" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Post-It Notes and a Whiteboard&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/XqNe9.jpg&quot; alt=&quot;Post-It Notes&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-01T18:02:54.433" CommentCount="2" />
  <row Id="8841" PostTypeId="2" ParentId="1287" CreationDate="2010-10-01T18:03:43.153" Score="1" ViewCount="" Body="&lt;p&gt;After my brother died, I got on facebook a lot and tried to reconnect with old friends.  It was really hard to focus on programming, even though I love my job and co-workers it's not easy to connect with them and one feels very isolated sitting in front of a computer all day sometimes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually things got better, although I think I may be becoming a work-a-holic, which I do not encourage anyone with a family to become to overcome their anxiety!&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-01T18:03:43.153" />
  <row Id="8842" PostTypeId="2" ParentId="1287" CreationDate="2010-10-01T18:05:57.983" Score="1" ViewCount="" Body="&lt;p&gt;You need to fell the full set of fulfillment to restore your creativity/ambitions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/DGpTB.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The specific examples you have given in the question relate to the Esteem and love layers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to believe you have these in your life. You can do that by just stepping out the door and talking to people, flirting... you need to feel accepted and understood. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, if you mean a way to quickly put a rude situation out of your head, I would suggest using a manata of whatever the hell you want. As a programmer, this is one I find can readily clear my mind:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;10 9 8 7 6 5 4 3 2 1&#xA;9 8 7 6 5 4 3 2 1&#xA;8 7 6 5 4 3 2 1&#xA;7 6 5 4 3 2 1&#xA;6 5 4 3 2 1&#xA;5 4 3 2 1&#xA;4 3 2 1&#xA;3 2 1&#xA;2 1&#xA;1&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Generally that's works for me to get short-term stuff out of my head, but it probably won't resolve &quot;my wife cheated on me&quot; scenarios.&lt;/p&gt;&#xA;" OwnerUserId="1525" LastActivityDate="2010-10-01T18:05:57.983" CommentCount="2" />
  <row Id="8843" PostTypeId="2" ParentId="1745" CreationDate="2010-10-01T18:12:27.837" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Which wrong ideas are widespread for long time&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;There is a very widespread belief among programmers about how to find performance problems. It is that &lt;strong&gt;in order to find them, you have to measure them&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The simplest counter-example is an (undesired) infinite loop. It takes 100% of time, doing things that are completely unnecessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you find the problem? You get it under a debugger and pause, halt, or interrupt it. Then you look at the stack, because you know the loop is somewhere on it. &lt;em&gt;You've caught it in the act.&lt;/em&gt; Did you measure it? or just find it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suppose it's not an infinite loop, it just takes longer than you think necessary.&#xA;Suppose the unnecessary work is less than 100%, like 90%, 50%, or 20%. It's the same idea. If you pause it, that percent is the chance that you will catch it in the act. (You don't have to know what the percent is to catch it.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just to be sure, you can pause it several times. As soon as you see it doing something, on as few as &lt;strong&gt;two&lt;/strong&gt; samples, that you can replace with something faster, you can fix it for a nice speedup.&#xA;Not only that, you've just made any other problems easier to find, because the time is shorter and they take a bigger percent. This can &quot;snowball&quot; until the code is very close to optimal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, if you &lt;em&gt;want&lt;/em&gt; to measure the problem, just take more samples, but that's not a prerequisite to finding it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People tell me, wishfully, that this is what sampling profilers do but do it better. Many would rather debate the issue than see for themselves.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-10-02T14:51:22.443" LastActivityDate="2010-10-02T14:51:22.443" CommunityOwnedDate="2010-10-01T18:12:27.837" CommentCount="5" />
  <row Id="8844" PostTypeId="1" AcceptedAnswerId="8846" CreationDate="2010-10-01T18:12:42.417" Score="4" ViewCount="106" Body="&lt;p&gt;Do you think it is possible to turn a public sector development team into a team that is highly regarded in the development community? Are there examples of it? I'm think of the highest level such as FogCreek, Google, ect., where you can attract the best quality and you output the best quality. One of the main problems that I see with this is that companies like that can and do pay for the best. But we are often told, and I agree, that if you have interesting problems you can attract the talent regardless. The public sector certainly has world changing problems but are they the type of &quot;interesting&quot; that technical people will sign up for?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am encouraged that some of the brightest bulbs of the past few decades are now getting more interested in public problems. Maybe that will be a start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: An outstanding development team could really help problems in Social Services and Criminal Justice systems. I fear that a lot of the budget for both those systems is used perfoming tasks that we could make obsolete. So potentially, we could help the &quot;budget crisis&quot;. Is that problem interesting?&lt;/p&gt;&#xA;" OwnerUserId="3697" LastEditorUserId="3697" LastEditorDisplayName="" LastEditDate="2010-10-01T22:30:40.980" LastActivityDate="2010-10-01T23:22:00.677" Title="Do you think it is possible to turn a public sector development team into a team that is highly regarded in the development community?" Tags="&lt;experience&gt;&lt;productivity&gt;&lt;work-environment&gt;" AnswerCount="3" CommentCount="0" />
  <row Id="8845" PostTypeId="2" ParentId="848" CreationDate="2010-10-01T18:20:56.987" Score="0" ViewCount="" Body="&lt;p&gt;At UW Madison, I was one Spanish class away from a BA in CS.  I can't say that it would have made a lick of difference which one I got as far as getting my first job.  It certainly wasn't my focus.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you go to a community college to take care of all your pre-req's before going to your 'finishing' school, you're pretty likely to take more liberal arts than you would if you just went on to the 4-year.  Therefore, you're more likely to start out closer to a BA.  If you want to hide the fact that you're not hardcore, definitely get a BS, it's BS anyway eh?&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-01T18:20:56.987" />
  <row Id="8846" PostTypeId="2" ParentId="8844" CreationDate="2010-10-01T18:25:29.613" Score="1" ViewCount="" Body="&lt;p&gt;I think it's possible.  One turnoff for me and the people that I see is that the public sector's most &quot;interesting&quot; problems are typically finding more efficient ways to kill large amounts of (or specific) people.  NASA, space exploration, and the like have wonderful problems that I can see exciting many people (NASA would be your best bet at creating a dev team that could be touted as a &quot;dream team&quot;), but it takes a certain kind of person to work on a project where you understand and are OK with knowing your talents are being used to kill potentially thousands or millions of people over the course of its lifespan.  Not all public sector projects are like this, of course, and there are certainly &quot;world changing&quot; projects that work for good, but it's that perception and the horror stories that keep people out.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second turnoff is that developers have an ego.  Seriously.  When we write something awesome, we want to tell people about it.  Top Secret clearances prevent us from doing so.  That makes us cry inside.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-01T18:25:29.613" CommentCount="3" />
  <row Id="8847" PostTypeId="2" ParentId="1745" CreationDate="2010-10-01T18:27:48.767" Score="5" ViewCount="" Body="&lt;p&gt;That web apps can be up &quot;7x24.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask any business person what downtime is allowed and they always insist on 100% uptime. Nevermind that 1 minute downtime per week is still 99.99% and is nearly unachievable for an organization smaller than a major utility.&lt;/p&gt;&#xA;" OwnerUserId="3473" LastActivityDate="2010-10-01T18:27:48.767" CommunityOwnedDate="2010-10-01T18:27:48.767" CommentCount="2" />
  <row Id="8848" PostTypeId="2" ParentId="5749" CreationDate="2010-10-01T18:37:04.613" Score="4" ViewCount="" Body="&lt;p&gt;I'm in a similar situation. Things are slow right now but we have a new line of business we're starting internally and another from a buy-out. Things change very quickly. Projects come and go. It does get lonely, and the SO family of sites has helped technically and personally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All things being equal, I'd rather be part of a team, but my last company had a small group of developers. We always worked on different projects independently. We lost our manager who was temporarily replaced with the head of accounting. His idea was to let us manage ourselvels and deal with all the vendor relationships, project management, meetings etc. I left before they found a replacement; I just couldn't take it any more. Like I said, all things being equal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do get involved with people from other departments on projects. Now and then I get to work with a developer of another company we're trying to integrate into our applications. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I worked from home, I had more flexibility to go to a local user group (it was about 45 min away). Since I commute by train into the city, it's been tougher attending. I wish there was something closer.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-01T18:37:04.613" CommentCount="1" />
  <row Id="8849" PostTypeId="2" ParentId="8741" CreationDate="2010-10-01T18:54:18.510" Score="2" ViewCount="" Body="&lt;p&gt;Personally a lot of this is going to depend on where you work and the policies that are there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As people have mentioned yes, OSHA has a set of regulations that are there to guarantee you an environment that doesn't cause you injury etc.  However, i will say that to get &quot;accommodating&quot; materials is a bit of a tricky beast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some companies are more accommodating than others, but as a general rule of thumb in my experience most companies DO NOT allow you control over the environment that you are in.  For example in my current job for a major bank, I don't have the best equipment, and that is just a limitation in general.  I CANNOT bring my own mouse, keyboard, etc as that is a violation of corporate policy, plus I'd run a major risk of loosing my items.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For you it will be important to ask questions during the interview about what the environment is and what they will grant you.  Then you have to look at the balancing to see if you can accept the environment that they have to offer.&lt;/p&gt;&#xA;" OwnerUserId="1340" LastActivityDate="2010-10-01T18:54:18.510" />
  <row Id="8850" PostTypeId="2" ParentId="734" CreationDate="2010-10-01T18:58:06.990" Score="2" ViewCount="" Body="&lt;p&gt;Personally when working in an environment if there is a default, controlled environment that developers primary testing machine at minimum should be setup the same way.  There might be reasons that a developer would want to hold off on Aero due to limited resources on their machine or something similar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if the developer is using a non-standard configuration it is important to note that they MUST have a test environment setup for them to validate based on the &quot;standard&quot; environment.&lt;/p&gt;&#xA;" OwnerUserId="1340" LastActivityDate="2010-10-01T18:58:06.990" />
  <row Id="8851" PostTypeId="2" ParentId="8741" CreationDate="2010-10-01T18:59:17.860" Score="3" ViewCount="" Body="&lt;p&gt;If you are a permanent employee or contractor you should be able to get all the suitable equipment you need from your employer, even if it's not the &quot;standard&quot; equipment they normally supply.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might have to badger people for a while, but I certainly wouldn't even consider bringing kit in from home. As others have mentioned, in the US and EU it's the law that your employer has to provide you with a suitable working environment. This means a desk that is big enough and the right height, adjustable chairs, screens that can be positioned correctly etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only time you would have to provide your own computer etc. would be if you were a freelance developer.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-10-02T12:20:45.947" LastActivityDate="2010-10-02T12:20:45.947" />
  <row Id="8852" PostTypeId="2" ParentId="8808" CreationDate="2010-10-01T19:03:18.103" Score="1" ViewCount="" Body="&lt;p&gt;I have to agree with 3 answers already given, and &lt;strong&gt;keeping it simple&lt;/strong&gt; is intrinsic in the question, so it's the only way to answer it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But restraining the solution to one tool may be too much simplicity. Today, and for years still to come, no single tool can be &lt;a href=&quot;http://agilemanifesto.org/&quot; rel=&quot;nofollow&quot;&gt;agile&lt;/a&gt; enough - for a big enough company, that is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So keep on using the post-it board if it fits the team &lt;strong&gt;and&lt;/strong&gt; go with freaking Excel or even PDF / Word / Notepad for digitalizing it all if you can't get used to Google Spreadsheets or adapt the simplest tools to your usage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But do use some technology. Any software. All at same time!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dividing them into 3 categories, there is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.dropbox.com&quot; rel=&quot;nofollow&quot;&gt;cloud&lt;/a&gt; / &lt;a href=&quot;http://www.google.com/sync/index.html&quot; rel=&quot;nofollow&quot;&gt;syncing&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.crashplan.com&quot; rel=&quot;nofollow&quot;&gt;offsite&lt;/a&gt; / &lt;a href=&quot;http://en.wikipedia.org/wiki/Network-attached_storage&quot; rel=&quot;nofollow&quot;&gt;offline&lt;/a&gt; / &lt;a href=&quot;http://www.apple.com/timecapsule&quot; rel=&quot;nofollow&quot;&gt;backups&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms689644.aspx&quot; rel=&quot;nofollow&quot;&gt;indexing&lt;/a&gt; / keeping it easily and &lt;a href=&quot;http://desktop.google.com/&quot; rel=&quot;nofollow&quot;&gt;quickly searchable&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The key here is being able to retrieve information much faster than you could ever do without digitalized data.&lt;/p&gt;&#xA;" OwnerUserId="4261" LastActivityDate="2010-10-01T19:03:18.103" CommentCount="4" />
  <row Id="8853" PostTypeId="2" ParentId="8772" CreationDate="2010-10-01T19:16:43.927" Score="0" ViewCount="" Body="&lt;p&gt;The Letter Beta :-)&lt;/p&gt;&#xA;" OwnerUserId="4111" LastActivityDate="2010-10-01T19:16:43.927" />
  <row Id="8854" PostTypeId="2" ParentId="4587" CreationDate="2010-10-01T19:19:19.083" Score="3" ViewCount="" Body="&lt;p&gt;The single most common ethical pressure you're going to see as a programmer is the pressure to fudge/fake deadlines and estimates.  Alot of this other stuff is far worse on an ethical scale, which means that most of the time, you won't see it.  But if you stand up and say &quot;Feature X will take 6 weeks&quot;, then you are going to get people trying to tell you to revise the estimate down to 4 weeks or 3 weeks &lt;strong&gt;ALL THE TIME&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4265" LastActivityDate="2010-10-01T19:19:19.083" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="1" />
  <row Id="8855" PostTypeId="2" ParentId="8808" CreationDate="2010-10-01T19:19:57.537" Score="2" ViewCount="" Body="&lt;p&gt;The company I work for is huge and the teams are never collocated.  So, even though &quot;The Wall&quot; would be best, we can't do it.  We use Rally and it works pretty well.&lt;/p&gt;&#xA;" OwnerUserId="2671" LastActivityDate="2010-10-01T19:19:57.537" CommentCount="1" />
  <row Id="8856" PostTypeId="2" ParentId="8758" CreationDate="2010-10-01T19:24:07.720" Score="4" ViewCount="" Body="&lt;p&gt;I like to use free software for personal use, and I release all my code under free licenses, so I use rarely proprietary software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But on a company, usgin piratated/cracked software is absolutely wrong in my opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you (the company) don't have the money, maybe you have to redesign your objectives and goals. And if you made software using cracked software, who tells you someone else will do the same with your brand new piece of software?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, I worked for some companies who said: well, we need THIS sw to develop THAT sw, but when we will sell THAT sw, we will certainly buy THIS sw. Unfortunately, this seldom happens. Most of the time people continue to use the software until someone force them to change it to a licensed product.&lt;/p&gt;&#xA;" OwnerUserId="4015" LastEditorUserId="4015" LastEditorDisplayName="" LastEditDate="2010-11-17T18:58:46.093" LastActivityDate="2010-11-17T18:58:46.093" CommunityOwnedDate="2011-01-23T07:24:28.233" CommentCount="3" />
  <row Id="8857" PostTypeId="1" CreationDate="2010-10-01T19:27:41.407" Score="1" ViewCount="213" Body="&lt;p&gt;I'm frustrated trying to choose a language; here are the requirements:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Desktop application.  For Windows, it would live in the System Tray (like Skype).&lt;/li&gt;&#xA;&lt;li&gt;I'm a single programmer so I only will have time to do it once and do it right.&lt;/li&gt;&#xA;&lt;li&gt;Windows is most important OS and needs to start there, but eventually needs to be cross platform and run on Apple/Linux/mobile so I'd have to use Flex or port it to other OSes.&lt;/li&gt;&#xA;&lt;li&gt;Needs to be running all the time, like Skype, waiting for incoming messages.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I know there is no right answer... just looking for input. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can effectivly program in any of those languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Need to bet on approach that has highest chance of success and most ROI.&lt;/p&gt;&#xA;" OwnerUserId="4267" LastActivityDate="2010-10-01T21:01:42.013" Title="If you were to write the &quot;Next Big Chat&quot; application would you use Adobe Flex, .Net, Silverlight, or &quot;Petzold&quot; Win32 API in C++?" Tags="&lt;programming-languages&gt;&lt;recommendations&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="8858" PostTypeId="2" ParentId="8772" CreationDate="2010-10-01T19:29:34.900" Score="0" ViewCount="" Body="&lt;h3&gt;#&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I like to comment :D&lt;/p&gt;&#xA;" OwnerUserId="4015" LastActivityDate="2010-10-01T19:29:34.900" />
  <row Id="8859" PostTypeId="2" ParentId="8772" CreationDate="2010-10-01T19:30:08.657" Score="3" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/VMr7h.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A &lt;a href=&quot;http://en.wikipedia.org/wiki/Cons#Trivia&quot; rel=&quot;nofollow&quot;&gt;&quot;cons box&quot;&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-01T21:10:32.683" LastActivityDate="2010-10-01T21:10:32.683" />
  <row Id="8860" PostTypeId="1" AcceptedAnswerId="8900" CreationDate="2010-10-01T19:31:00.230" Score="2" ViewCount="493" Body="&lt;p&gt;Hey guys this is one of the non Technical questions I can say but very important in terms of charging for software development. Recently I have been offered a freelancing project on ASP.net from one my known friends.  Please try to help me cos I am new to freelancing and I really dunno how much to quote for the project. Also this is my first project with the client and I want to have a long term relationship with him.&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;I need help regarding the following:  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Approximate cost of the project&lt;br&gt;&#xA;  Duration of the project ( There are 2 Developers )&lt;br&gt;&#xA;  Can I charge the client for software license ( like Visual Studio license since I have purchased it by paying a hefty amount)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;My profile as a developer is as follows:  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I am a C#, .net, ASP.net developer with 3 years experience in enterprise class web and desktop projects.&lt;br&gt;&#xA;  I can work 20 hours a week&#xA;  &lt;br&gt;&lt;br&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The brief requirements of the project are as follows::   &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I have to develop an &lt;strong&gt;Ecommerce website&lt;/strong&gt;.&lt;br&gt;&#xA;  The website is meant for buyers, sellers, advertisers and bidders ( I would say it is &lt;strong&gt;Business to Business&lt;/strong&gt; and also &lt;strong&gt;Business to Customer site&lt;/strong&gt; )&lt;br&gt;&#xA;  The HTML's will be given by the client.&lt;br&gt;&#xA;  The website will have all the features of any Ecommerce site like buying products, selling them, searching products, sorting them,etc&lt;br&gt;&#xA;  The website should conform to W3C standards&#xA;  &lt;br&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The following are my tasks :&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I have to do the complete design and backend coding&lt;br&gt;&#xA;  I have to do the database design&lt;br&gt;&#xA;  I have to do lot of rich GUI functionalities like drag and drop, etc&lt;br&gt;&#xA;  I have to build lot of reporting stuff into it for the customer, administrator,etc&lt;br&gt;&#xA;  I need to build separate control panels for all 3 users with limited and unlimited access rights based on roles and privileges&lt;br&gt;&#xA;  All sellers will upload their products and I need to build a good system for uploading huge data&lt;br&gt;&#xA;  I have to build advertising features like news letters, promotion campaign, etc&lt;br&gt;&#xA;  I have to build a live help feature also&lt;br&gt;&#xA;  I have to build a solid enterprise class search feature into it&lt;br&gt;&#xA;  I have to do the user registration/user management and payment gateway integration &#xA;  I have to build a bidding feature also&#xA;  &lt;br&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I also need to manage the following:&#xA;&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Complete end to end testing testing which includes (unit, functional, integration, etc)&lt;br&gt;&#xA;  Complete deployment and scalability testing and management&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;More to above ::: I know the requirements here are very brief. But that is what I have &gt;with me. The client is asking me to quote an approximate quote and he will pay more than &gt;that after it is finalized. So I need some approximate duration and cost ( On a funny note : I am not thinking of www.amazon.com for sure )&lt;br&gt;&#xA;  It will be something like this (&lt;a href=&quot;http://www.tajonline.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.tajonline.com/&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4269" LastActivityDate="2010-10-01T22:08:42.757" ClosedDate="2010-10-02T11:52:17.027" Title="Project cost and duration estimation and hourly rate for Freelance asp.net project" Tags="&lt;project-management&gt;&lt;estimation&gt;&lt;asp.net&gt;" AnswerCount="2" CommentCount="4" />
  <row Id="8861" PostTypeId="2" ParentId="8857" CreationDate="2010-10-01T19:32:52.910" Score="3" ViewCount="" Body="&lt;p&gt;C#/WPF or Java. I'd choose C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? There's just so much more innovation in C#. The speed of development will be quick, you'll be able to build the application up really nicely with good unittesting/&lt;a href=&quot;http://en.wikipedia.org/wiki/Inversion_of_Control&quot; rel=&quot;nofollow&quot;&gt;IoC&lt;/a&gt;/etc... With Mono/.NET you can port it to *nix/mac. It'll work easily with minimal porting on Windows7 Phone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java's nice because it inherently runs on most OS'es, similar level of tooling/practices as C# although not as active. High level of support. But Java's UI &amp;amp; UI Libs (3rd party) suck hardcore.&lt;/p&gt;&#xA;" OwnerUserId="4270" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-01T19:40:16.420" LastActivityDate="2010-10-01T19:40:16.420" CommentCount="4" />
  <row Id="8862" PostTypeId="2" ParentId="1745" CreationDate="2010-10-01T19:38:40.107" Score="4" ViewCount="" Body="&lt;p&gt;Among programmers: That Delphi is dead, dying or on life support.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-10-16T03:30:23.443" LastActivityDate="2010-10-16T03:30:23.443" CommunityOwnedDate="2010-10-01T19:38:40.107" CommentCount="5" />
  <row Id="8863" PostTypeId="2" ParentId="734" CreationDate="2010-10-01T19:38:57.493" Score="2" ViewCount="" Body="&lt;p&gt;Responding to the title, rather than to the question: &lt;strong&gt;no&lt;/strong&gt;, never.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Default environments are the ones most prone to security flaws and attacks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But back to the question, it's as Thomas said: for personal use, how you configure your computer it's your taste. For testing and debugging, try it on both and every other different setting you can find.&lt;/p&gt;&#xA;" OwnerUserId="4261" LastActivityDate="2010-10-01T19:38:57.493" CommentCount="3" />
  <row Id="8865" PostTypeId="2" ParentId="734" CreationDate="2010-10-01T19:48:46.127" Score="2" ViewCount="" Body="&lt;p&gt;I'm not going to generalize and say &quot;A programmer should do this&quot;.  But, I'm a win32 programmer and I use Linux for my Main OS, I've got 3 VM's, and soon will have 4 . &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;WinXP-Dev (has Delphi 7, no themes)&lt;/li&gt;&#xA;&lt;li&gt;WinXP-Test (has themes)&lt;/li&gt;&#xA;&lt;li&gt;Win7-Dev (has Delphi 2009 *)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;For Windows, what I think is most important is that you leave the security settings at normal power user level, especially if you have your own PC. I use &lt;code&gt;runas /env /user:administrator cmd&lt;/code&gt; to execute stuff like I'm sudo'ing with linux. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;*the one really annoying thing about this setup is that Aero doesn't seem to work with VirtualBox, I've heard there is a way to make it work, but I'm not going to let that dictate where I code.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-01T19:48:46.127" CommentCount="1" />
  <row Id="8866" PostTypeId="2" ParentId="8857" CreationDate="2010-10-01T19:54:44.037" Score="1" ViewCount="" Body="&lt;p&gt;Personal experience/expertise:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd dual-develop on OSX and Win32 using C++, with an abstraction layer on the native widgets. I'm willing to bet that's how Skype does it, and Skype looks pretty stinking good, unlike most cross-platform apps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't touch Silverlight or Flash/Flex with a 10ft pole from a boat across a moat. Silverlight may be antiquated in the next MS Big Refresh Thing, and Adobe seems to be the latest vector for malware.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;.NET is okay if you're doing Windows-only, but I havn't heard that Mono is &quot;that&quot; good yet. Certainly last time I used Mono for developmenty things on OSX, it ran like a -1 - legged dog. Plus you have to consider the MS penchant for refreshing APIs and breaking last years hotness.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Advice:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your best bet for full cross-platform operation including mobiles is &lt;strong&gt;Java&lt;/strong&gt;. Apple (Jobs?) doesn't like Flash, so if Flex/Flash is used, then you're out of luck on the iP(a|o)d. Java runs reasonably well with a hotspot optimizer, once you start it up, which is ideal for your situation. It also runs on OSX, iOS, and most mobiles I've heard of. Done right, it would look decent and be a single binary JAR. It also could be embedded in a web page without &lt;em&gt;much&lt;/em&gt; grief if you wanted to bring that interface in.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-01T19:54:44.037" CommentCount="4" />
  <row Id="8867" PostTypeId="2" ParentId="4352" CreationDate="2010-10-01T20:05:55.647" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.varnish-cache.org/&quot; rel=&quot;nofollow&quot;&gt;Varnish&lt;/a&gt; need I say more?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Varnish is an open source reverse proxy or HTTP accelerator. It's brilliant because it doesn't try to be anything more than that, making it blazing fast. It's also highly configurable and it's possible to configure most without restarting it. &lt;/p&gt;&#xA;" OwnerUserId="891" LastEditorUserId="891" LastEditorDisplayName="" LastEditDate="2010-10-02T06:07:02.843" LastActivityDate="2010-10-02T06:07:02.843" CommentCount="4" />
  <row Id="8868" PostTypeId="2" ParentId="3726" CreationDate="2010-10-01T20:06:10.157" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Google Go&lt;/strong&gt; is an interesting language. But I haven't heard any company that uses it in a larger extent or any popular project using it. I definitely think that TIOBE has big problems with the ranking calculation for Google Go. I doubt it is as popular as the TIOBE index shows, that's almost impossible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's awkward that TIOBE picked it as the &lt;em&gt;language of the year 2009&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-01T20:06:10.157" CommentCount="1" />
  <row Id="8870" PostTypeId="2" ParentId="6834" CreationDate="2010-10-01T20:10:43.927" Score="9" ViewCount="" Body="&lt;p&gt;Code Bubbles. &lt;a href=&quot;http://www.cs.brown.edu/people/acb/codebubbles_site.htm&quot; rel=&quot;nofollow&quot;&gt;http://www.cs.brown.edu/people/acb/codebubbles_site.htm&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love Visual Studio and Eclipse for the tools they give me to change code, but Code Bubbles really excites me for being able to navigate and view my code. Too bad it's not publicly available =-{&lt;/p&gt;&#xA;" OwnerUserId="4113" LastActivityDate="2010-10-01T20:10:43.927" CommentCount="5" />
  <row Id="8872" PostTypeId="2" ParentId="7747" CreationDate="2010-10-01T20:27:09.440" Score="3" ViewCount="" Body="&lt;p&gt;I started with basic on an apple clone when I was eight.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even the later versions of basic that had some OOP ideas rolled in (qbasic, visual basic, etc) would not have made sense at Eight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Starting programming that early is one of the reasons I can think through the problem in program flow and that is something way too many people cannot do well in this industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think an early start is often beneficial and a VERY SIMPLE language is required when dealing with little ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your mileage may vary...&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-10-01T20:27:09.440" CommunityOwnedDate="2011-01-20T21:00:13.020" />
  <row Id="8873" PostTypeId="2" ParentId="7747" CreationDate="2010-10-01T20:29:11.330" Score="2" ViewCount="" Body="&lt;p&gt;Basic is good - it's fun and pretty simple &#xA;It can do fun 2d graphics and what not ... &#xA;I learned (or try to learn) that when i was around 10 or 12, it was a fun language&#xA;that got me interested in learning more about computers ... &lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-10-01T20:29:11.330" CommunityOwnedDate="2011-01-20T21:00:13.020" />
  <row Id="8874" PostTypeId="2" ParentId="734" CreationDate="2010-10-01T20:29:22.320" Score="1" ViewCount="" Body="&lt;p&gt;It could also be argued that using a nonstandard theme would make sure that the applications he writes respect transitions between themes properly, and depending on developers using &quot;standard&quot; configurations can hurt portability. Ultimately, I think that it's good to be aware that power user configurations look and behave differently from most other machines, but the greater productivity people get by configuring their own tools is more valuable than catching bugs or aesthetic issues by accident.&lt;/p&gt;&#xA;" OwnerUserId="1147" LastEditorUserId="1147" LastEditorDisplayName="" LastEditDate="2010-10-11T15:22:44.317" LastActivityDate="2010-10-11T15:22:44.317" />
  <row Id="8875" PostTypeId="2" ParentId="8857" CreationDate="2010-10-01T20:34:24.847" Score="0" ViewCount="" Body="&lt;p&gt;I would first consider the protocol you're going to use for the chatting - I would probably prefer to adopt an existing protocol like &lt;a href=&quot;http://xmpp.org/&quot; rel=&quot;nofollow&quot;&gt;XMPP&lt;/a&gt; rather than writing one from scratch. This will improve the interoperability with existing apps and libraries, and perhaps save you an awful lot of time writing your own - it's also an extensible protocol, so you can add features that aren't there yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you check out the available libraries for XMPP, there's plenty available for a number of languages. There's a few with Silverlight support with a price tag on them - and several Java libraries are completely free. You might perhaps want to take a look at them and compare whether these have the features you need, and whether they're written suitable for your app.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for looking for ROI, you only need to look at the sheer quantity of chat clients (using XMPP or otherwise) to see that very few become mainstream. You really need to stand out to become popular - so I would perhaps initially target a market where there's a shortage or need for such client - perhaps something like the new Windows Phone 7 platform where there's a limited number of apps out there. If you wrote an app for the iPhone, you're really going to struggle to stand out above the hundreds of others doing the same thing. If this sounds reasonable, C# is probably the language of choice for that platform, and has the potential to run on any other platform (including iphone and android with mono). But if you're aiming more at those mobiles to begin with, they generally have better support for Java.&lt;/p&gt;&#xA;" OwnerUserId="356" LastActivityDate="2010-10-01T20:34:24.847" />
  <row Id="8878" PostTypeId="2" ParentId="8857" CreationDate="2010-10-01T21:01:42.013" Score="2" ViewCount="" Body="&lt;p&gt;For a chat-type application, it seems like a UI that users will think of as nice is a necessity. That pretty much immediately rules out Java. Though maybe not quite as obviously and quickly, it pretty much rules out anything with Silverlight/.NET as well, when you factor in portability. Basically, with .NET you'd want to use WPF on Windows -- but Mono doesn't support that. You could use GTK+, but if you do Windows and Mac users probably won't like it much. If you want a nice, reasonably native-looking UI, you can manage that by using GTK+ on Linxu, MonoMac on the Mac/iPod/iPad, and WPF on Windows -- but by then, you're a long ways from the &quot;do it once and do it right&quot; requirement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMO, Adobe Flex isn't much of an option. You &lt;em&gt;can&lt;/em&gt; use Adobe AIR to deploy a Flex web app to a desktop, but it's still basically a web app running on a desktop, not a desktop application. Since you're writing to a web-app API, you're pretty much stuck with all the limitations of a web app and can't do much to take advantage of its being a desktop app. Since you're deploying it to a desktop, you can't do much to take advantage of its being a web app either though. You end up with all the limitations of both, and none of the advantages of either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, the only other choice you've given (using the Win32 API directly) is probably worse than any of the above. Along with relatively slow development, you get code that's quite non-portable and will need almost a complete rewrite to work on &lt;em&gt;any&lt;/em&gt; other platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That means you pretty much &lt;em&gt;need&lt;/em&gt; to consider something else. It seems to me that the obvious possibility would be C++ with Qt. Obvious advantages include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Native look/feel on each platform.&lt;/li&gt;&#xA;&lt;li&gt;Competitive productivity.&lt;/li&gt;&#xA;&lt;li&gt;Excellent performance&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The obvious shortcoming (that I can see) is lack of portability to two specific portable platforms: Windows 7 and Android phones. For better or worse, there is no one choice that  supports both of these. Windows 7 phone is .NET only, and Android is  Java only.  &lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-01T21:01:42.013" CommentCount="2" />
  <row Id="8879" PostTypeId="2" ParentId="8860" CreationDate="2010-10-01T21:01:44.340" Score="1" ViewCount="" Body="&lt;p&gt;There are &lt;a href=&quot;http://stackoverflow.com/questions/54694/what-can-i-do-to-get-better-at-estimating-how-long-projects-are-going-to-take&quot;&gt;several&lt;/a&gt; &lt;a href=&quot;http://stackoverflow.com/questions/425044/how-to-estimate-a-programming-task-if-you-have-no-experience-in-it&quot;&gt;popular&lt;/a&gt; &lt;a href=&quot;http://stackoverflow.com/questions/14279/how-to-estimate-the-length-of-a-programming-task&quot;&gt;questions&lt;/a&gt; on SO that cover the topic of project estimation quite thoroughly.  The conclusions boil down to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Break down the development into small tasks that you &lt;em&gt;can&lt;/em&gt; estimate&lt;/li&gt;&#xA;&lt;li&gt;Do some prototyping to get an idea of how long the individual tasks will take&lt;/li&gt;&#xA;&lt;li&gt;Provide your estimates in a range: say 4-6 weeks instead of 5 weeks&lt;/li&gt;&#xA;&lt;li&gt;Allow time for testing, project management overhead, and turnaround time on questions&lt;/li&gt;&#xA;&lt;li&gt;Make sure you've documented what's in scope and out of scope for your estimate&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also, I would not charge a customer for software required to complete their project unless it was something very very specialized.  Even then, it would depend on the cost of the software, the customer, and the size of the project.  As @Jeff O mentioned in his comment, asking the client to pay for your tools tends to cast some doubt on your qualification for the job.  Would you hire a carpenter who asked you to pay for his hammer and saw?&lt;/p&gt;&#xA;" OwnerUserId="4260" LastActivityDate="2010-10-01T21:01:44.340" CommentCount="2" />
  <row Id="8880" PostTypeId="2" ParentId="8772" CreationDate="2010-10-01T21:03:07.353" Score="0" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/1c6X7.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;John Conway's ``Game of Life'' in &lt;strong&gt;APL&lt;/strong&gt;. (Public Domain image excerpted from Wikipedia article on APL.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously though, does any other programming language out there have its own unique, non-standard set of symbols?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See &lt;a href=&quot;http://en.wikipedia.org/wiki/APL_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/APL_%28programming_language%29&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-01T21:03:07.353" CommentCount="4" />
  <row Id="8881" PostTypeId="2" ParentId="161" CreationDate="2010-10-01T21:03:14.850" Score="4" ViewCount="" Body="&lt;h2&gt;NoSQL databases&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;They are great for some specific uses. But for now, they are very hyped and some people is probably doing a bad choice just because of the hype. In many cases Relational databases are a great choice. Specially if you don't need the scalability or performance but maintainability and flexibility. &lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-01T21:03:14.850" />
  <row Id="8883" PostTypeId="2" ParentId="8772" CreationDate="2010-10-01T21:13:49.740" Score="8" ViewCount="" Body="&lt;p&gt;The glider from the game of life. Its been used as a symbol for hackers and artificial life, as well as appearing in a lot of programming-oriented fiction I've read. I can't help but think of programming when I see it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Ueo34.gif&quot; alt=&quot;An animated image of a glider from Wikipedia&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2091" LastActivityDate="2010-10-01T21:13:49.740" CommentCount="2" />
  <row Id="8884" PostTypeId="2" ParentId="8772" CreationDate="2010-10-01T21:14:16.060" Score="2" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/YD6tA.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="3082" LastActivityDate="2010-10-01T21:14:16.060" />
  <row Id="8885" PostTypeId="2" ParentId="3629" CreationDate="2010-10-01T21:20:20.950" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;A &lt;a href=&quot;http://www.amazon.com/Stanley-Bostitch-Antimicrobial-Mechanism-B310HDS/dp/B00006JNU4/&quot; rel=&quot;nofollow&quot;&gt;heavy-duty stapler&lt;/a&gt;, and boxes&#xA;of various length staples, because I&#xA;like to print out reference manuals&#xA;and the like, and I don't like to&#xA;punch sheets and put them in spiral&#xA;notebooks.&lt;/li&gt;&#xA;&lt;li&gt;A &lt;a href=&quot;http://www.amazon.com/X-Acto-1744-Heavy-Duty-Electric-Sharpener/dp/B0006HVPVK&quot; rel=&quot;nofollow&quot;&gt;heavy duty electric pencil&#xA;sharpener&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;These are the first two items I always requisition when moving into a new office, if they are not already available nearby.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-10-01T21:40:40.560" LastActivityDate="2010-10-01T21:40:40.560" CommunityOwnedDate="2010-10-01T21:20:20.950" />
  <row Id="8886" PostTypeId="1" CreationDate="2010-10-01T21:27:35.217" Score="22" ViewCount="1301" Body="&lt;p&gt;Interested in knowing from the more experienced ones if someone can find a job as a programmer without even a highschool degree. Consider the said person to be an average programmer. Would someone even consider giving him/her a chance on an interview ? The languages of interest would be python/php/java/c#&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please answer for your region/city/country only. No &quot;go back to school&quot; answers please.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you.&lt;/p&gt;&#xA;" OwnerUserId="4276" LastEditorUserId="1996" LastEditorDisplayName="" LastEditDate="2011-04-12T19:34:34.943" LastActivityDate="2011-04-12T22:17:56.457" CommunityOwnedDate="2011-03-30T04:35:50.040" Title="Can someone find a job as a programmer without an education?" Tags="&lt;career&gt;&lt;programming-languages&gt;&lt;career-advice&gt;&lt;language-agnostic&gt;" AnswerCount="26" CommentCount="2" FavoriteCount="11" />
  <row Id="8888" PostTypeId="2" ParentId="3233" CreationDate="2010-10-01T21:39:28.607" Score="2" ViewCount="" Body="&lt;p&gt;Problem: You're using both meanings of the word &quot;free&quot; at once, which is confusing. Free Software (capital letters) is often, but not always, an ideological position. It can also be practical. How can you collaborate on closed-source code?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for freeware (&quot;free as in beer&quot;), some people do it to advertise their skills or as a taster, to encourage people to buy a more full-featured program. I have a freeware video converter which prompts me to install browser toolbars every time I use it. I don't use it often enough for this to annoy me.&lt;/p&gt;&#xA;" OwnerUserId="2406" LastActivityDate="2010-10-01T21:39:28.607" CommunityOwnedDate="2010-10-02T03:46:51.680" />
  <row Id="8889" PostTypeId="1" AcceptedAnswerId="8902" CreationDate="2010-10-01T21:43:58.043" Score="3" ViewCount="149" Body="&lt;p&gt;I've barely succeeded in this, I'm just wondering how you convinced your boss to update and if you're faring better than me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's where I stand:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I'm using Delphi 7.&lt;/li&gt;&#xA;&lt;li&gt;We've bought Delphi 2009 for each programmer.&lt;/li&gt;&#xA;&lt;li&gt;I'm still using Delphi 7.&lt;/li&gt;&#xA;&lt;li&gt;It's almost 2011 and Delphi 2010 and Delphi XE area already out.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So I'm stuck in a timewarp, there are too many commitments to bother about creating bugs by updating our IDE.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a bad feeling that when we do finally start using Delphi 2009 it'll be as obnoxious as Delphi 7.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(This may be a bad generic example as there are special Unicode considerations in the 2009 update, but I'd like general answers - because I do more than just Delphi programming for my company)&lt;/p&gt;&#xA;" OwnerUserId="1973" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2010-10-01T21:54:53.800" LastActivityDate="2010-10-01T22:10:13.540" Title="What do you do to convince your boss to update your development environment?" Tags="&lt;office&gt;&lt;stay-updated&gt;" AnswerCount="1" CommentCount="6" FavoriteCount="0" />
  <row Id="8890" PostTypeId="1" CreationDate="2010-10-01T21:54:54.300" Score="18" ViewCount="929" Body="&lt;p&gt;So the other day my boss (let's call him Colfax) asked me to work on a project, but that I should not discuss it with anyone (including the other programmers on my team) and that it would have to be done outside of normal work hours. In exchange, Colfax offered me &quot;off-the-book&quot; vacation days equal to the hours spent on the project. When I asked Colfax if his boss (let's call him Schuyler) knew what he was offering, Colfax said that Schuyler does not know and implied that he (Colfax) would get into trouble if Schuyler found out. My boss also said that if I were to go along with this, my efforts would be remembered for &quot;future consideration&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The work is for our employer so everything there is on the up-and-up. However, I have an uneasy feeling about the whole thing. Part of me wants to work on the project -- as it's you know -- coding and coding something cool and fairly simple. On the other hand, the whole thing seems seedy and underhanded. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would I be a &quot;bad employee&quot; for refusing extra work? Or am I morally justified to not do the work? &lt;/p&gt;&#xA;" OwnerUserId="4275" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-02T11:05:00.843" LastActivityDate="2010-10-04T19:59:38.710" Title="Boss Asking To Work Overtime But Under the Radar" Tags="&lt;work&gt;&lt;boss&gt;" AnswerCount="12" CommentCount="6" FavoriteCount="4" />
  <row Id="8891" PostTypeId="2" ParentId="487" CreationDate="2010-10-01T21:56:00.960" Score="2" ViewCount="" Body="&lt;p&gt;Bearing in mind that the only languages I know are PHP and javascript, and that I really should learn a few more before designing a language:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Syntax:&lt;/strong&gt;&#xA;Think carefully about function names and argument order (i.e., be less messy than PHP).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Features:&lt;/strong&gt;&#xA;Have a set of &lt;code&gt;string&lt;/code&gt; functions, which operate on variables as a series of bytes, but don't understand text, and a set of &lt;code&gt;text&lt;/code&gt; functions, which understand lots of encodings and can operate on UTF-8 and other multibyte strings. (And have encoding sanity checks built into the language, with a function like &lt;code&gt;text.isValidEncoding(text, encoding)&lt;/code&gt; which will tell you if a byte sequence is malformed and unsafe to treat as text.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think I like the idea of strong static typing, but I've never used it, so I can't really say.&lt;/p&gt;&#xA;" OwnerUserId="2406" LastActivityDate="2010-10-01T21:56:00.960" />
  <row Id="8892" PostTypeId="2" ParentId="8886" CreationDate="2010-10-01T21:57:06.613" Score="31" ViewCount="" Body="&lt;p&gt;your biggest difficulty is getting through the HR filter.  If you can do that, experience will trump education (most of the time).  In the meantime, try to find some small shop that just needs someone who can code.  You should also try to hook up on some OpenSource project (or two) to get some experience and show that you have some skillz.  You are going to have to start small and build on that.&lt;/p&gt;&#xA;" OwnerUserId="882" LastEditorUserId="882" LastEditorDisplayName="" LastEditDate="2010-10-01T22:07:38.603" LastActivityDate="2010-10-01T22:07:38.603" CommunityOwnedDate="2011-03-30T04:35:50.040" CommentCount="5" />
  <row Id="8893" PostTypeId="2" ParentId="8890" CreationDate="2010-10-01T22:01:17.890" Score="19" ViewCount="" Body="&lt;p&gt;You may be a &quot;bad employee&quot; in &quot;Colfax&quot;'s eyes for not doing the work, but if there is no support and possible retribution for doing the work from higher up or the company, you would be a &quot;good employee&quot; only to Colfax, and a &quot;Former Employee&quot; or &quot;Reprimanded Employee&quot; as far as your employer is concerned.&lt;/p&gt;&#xA;" OwnerUserId="146" LastActivityDate="2010-10-01T22:01:17.890" />
  <row Id="8894" PostTypeId="2" ParentId="8886" CreationDate="2010-10-01T22:01:33.833" Score="1" ViewCount="" Body="&lt;p&gt;Yes, build up that resume and portfolio. Build a name for yourself and become known within the community. These are all steps you can do that will help fill the gap of education.&lt;/p&gt;&#xA;" OwnerUserId="1834" LastActivityDate="2010-10-01T22:01:33.833" CommunityOwnedDate="2011-03-30T04:35:50.040" CommentCount="4" />
  <row Id="8895" PostTypeId="2" ParentId="8886" CreationDate="2010-10-01T22:04:53.000" Score="5" ViewCount="" Body="&lt;p&gt;My impression is this: the less formal education you have, the more you have to compensate by a lot of self-education. Without those degrees, you'll need other stuff to demonstrate to potential employers that you can do the job. If you're so inclined, you can teach yourself the necessary skills. Read lots of books, join open source projects, write lots of programs on your own, figure out what skills are necessary for the jobs you want and learn them. Demonstrable passion for programming can easily trump the lack of a degree. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It definitely can be done. There is a lot more acceptance of autodidacts in this profession than most others. For myself, I have a college degree, but it's in history. Everything I learned about software development, I learned on my own. And despite certain holes in my knowledge base which I'm constantly trying to fill with a steady stream of books, I've never had too much trouble finding work. Nor have I ever felt like the least talented or least knowledgeable programmer on any team I've ever worked with. I've met some unbelievably capable programmers with computer science degrees and I've met others who were agonizingly incompetent. &lt;/p&gt;&#xA;" OwnerUserId="4222" LastActivityDate="2010-10-01T22:04:53.000" CommunityOwnedDate="2011-03-30T04:35:50.040" CommentCount="3" />
  <row Id="8896" PostTypeId="2" ParentId="8758" CreationDate="2010-10-01T22:05:21.807" Score="6" ViewCount="" Body="&lt;p&gt;I understand the sticker shock of some software development tools (The more sophisticated version of Visual Studio and Database management tools chief among them). However, as a professional software developer, I think it would be highly hypocritical to ask others to respect my copyright and pay for my work if I am unwilling to respect the copyright of other developers. In most cases there are good options to help you get started, including:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Lite versions (&lt;a href=&quot;http://www.microsoft.com/express/&quot; rel=&quot;nofollow&quot;&gt;VS Express&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Open Source Products&lt;/li&gt;&#xA;&lt;li&gt;Getting started programs (&lt;a href=&quot;http://www.bizspark.com/&quot; rel=&quot;nofollow&quot;&gt;Microsoft Biz*&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Developer versions (in the case of &lt;a href=&quot;http://www.microsoft.com/sqlserver/2005/en/us/developer.aspx&quot; rel=&quot;nofollow&quot;&gt;MS SQL Server&lt;/a&gt; and &lt;a href=&quot;http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html&quot; rel=&quot;nofollow&quot;&gt;Oracle&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This, of course, extends beyond tools and into other copyrighted works as well. As much as I want to download that awesome new album, TV show or movie, I think we need to be treated how we would like to be treated (regardless if we think that company x has ridiculous pricing and licensing practices). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember, there are &lt;em&gt;lots&lt;/em&gt; of free content and tools available without resorting to copyright infringement!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the hypocrisy is not enough to convince you, how about the possibility of &lt;a href=&quot;http://www.computerworld.com/s/article/107744/BSA_hits_Wham_O_Burt_s_Bees_with_fines_for_illegal_software_&quot; rel=&quot;nofollow&quot;&gt;steep fees beyond the cost of the license&lt;/a&gt; for using unlicensed Microsoft, Apple and Adobe software?&lt;/p&gt;&#xA;" OwnerUserId="4277" LastEditorUserId="4277" LastEditorDisplayName="" LastEditDate="2010-10-02T04:19:24.557" LastActivityDate="2010-10-02T04:19:24.557" CommunityOwnedDate="2011-01-23T07:24:28.233" CommentCount="5" />
  <row Id="8897" PostTypeId="2" ParentId="8844" CreationDate="2010-10-01T22:05:31.737" Score="1" ViewCount="" Body="&lt;p&gt;I suspect the NSA is a very attractive environment for some people, although you're not going to get known for what you do.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-01T22:05:31.737" CommentCount="1" />
  <row Id="8898" PostTypeId="2" ParentId="8886" CreationDate="2010-10-01T22:05:32.220" Score="2" ViewCount="" Body="&lt;p&gt;You'd probably have a better chance getting hired by a small, locally owned business.  They may not have an HR department so you could skip directly to the owner or a manager.  Then you just have to convince them you are qualified.&lt;/p&gt;&#xA;" OwnerUserId="3914" LastActivityDate="2010-10-01T22:05:32.220" CommunityOwnedDate="2011-03-30T04:35:50.040" />
  <row Id="8899" PostTypeId="2" ParentId="6333" CreationDate="2010-10-01T22:07:23.847" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;PHP&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Originally taken to stand for &lt;strong&gt;Personal Home Page&lt;/strong&gt;, now a recursive acronym: &lt;strong&gt;PHP: Hypertext Preprocessor&lt;/strong&gt;. Used mainly in web development, though it can be used in desktop programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Very widely available. Almost any web server will support PHP, on Linux or Windows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many well-known web applications, such as blogs and CMSs, including Wordpress, Joomla, and Drupal, are built in PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Weaknesses: It's a hostage to its history. The language was not well planned in its initial stages, and the syntax is inconsistent. Function names and argument order are all over the place. However, the documentation is excellent with many real world examples of code in use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's slow, compared to compiled languages. Fast enough for most purposes, but maybe not for web applications with very high server load. HipHop, which converts PHP into C, is available. (HipHop exists only because PHP programmers are easier to find than C programmers for web applications.)&lt;/p&gt;&#xA;" OwnerUserId="2406" LastActivityDate="2010-10-01T22:07:23.847" />
  <row Id="8900" PostTypeId="2" ParentId="8860" CreationDate="2010-10-01T22:08:42.757" Score="0" ViewCount="" Body="&lt;p&gt;There are a couple different cost estimation techniques you could use. BenV already linked to several similar questions, and the answers there invariably involve making a project plan (breaking your main task down into subtasks and subsubtasks etc.) and estimating how many hours it will take, times your hourly rate. Let me propose an alternative method:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You said you have 3 yrs experience already in this field. Based on your prior experience, if the size of your last project (in terms of number of web pages, subroutines, or some other breakdown) was S0 and that project cost C0, and the size of this new project (using the same units of measure) is S1, then you can estimate its cost as C1 = C0 * S1 / S0.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another tactic would be to find out your client's budget, then adjust the scope of the project (by reducing features, number of developers, etc.) to accommodate it. In other words, rather than fixing the scope and estimating cost, instead you are fixing cost and estimating scope.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However you estimate, make sure of two things: (1) it allows the project to succeed and (2) it allows you to make a profit. You and your client should both be happy in the end. Otherwise, you should pass on the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;WRT charging for development tools, here's my 2 &amp;cent;s: If the client is going to keep the tools after you're done, in order to perform maintenance or further enhancements himself, then surely he should buy them. But if they're your tools, than you should pay.&lt;/p&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-01T22:08:42.757" CommentCount="1" />
  <row Id="8901" PostTypeId="2" ParentId="6834" CreationDate="2010-10-01T22:09:41.740" Score="1" ViewCount="" Body="&lt;p&gt;Code Templates and expansion, such as DevExpress' CodeRush. In C#, a &lt;code&gt;DependencyProperty&lt;/code&gt;is a major pain to create, since the syntax can get verbose, but simply typing &quot;dp&quot; brings up something akin to a snippet where you fill in the type, name and default value, and all else is done - including adding any necessary &quot;using&quot; statements, and possibly project references if memory serves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The benefit is in creating your own templates, for code you often reuse or rewrite, such as simple implementations of &lt;code&gt;INotifyPropertyChanged&lt;/code&gt; properties, where simply give the template the name and type of the property (if another expander hasn't handled it) you want to use, and it handles the rest, including creating the backing variable.&lt;/p&gt;&#xA;" OwnerUserId="146" LastActivityDate="2010-10-01T22:09:41.740" />
  <row Id="8902" PostTypeId="2" ParentId="8889" CreationDate="2010-10-01T22:10:13.540" Score="1" ViewCount="" Body="&lt;p&gt;If the boss has a specific objection, go after the objection.  For example, if he says that the update might introduce bugs, use a bit of personal time to make a private build that compiles right under Delphi 2009.  (Unicode issues notwithstanding, this shouldn't be too difficult or time-consuming unless you're using a ton of third-party libraries that can't be updated easily.)  If you can, get a supportive QA engineer to help out by running tests against it so you're sure it's pretty solid.  Once you have a good build, then run a demo for the boss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you've shown that basic functionality works more or less as expected, then show the boss all the productivity-enhancing features of the new version, like SyncEdit, built-in refactoring, new syntax that wasn't available way back in D7, new debugger features that help track down and remove any bugs that &lt;em&gt;do&lt;/em&gt; get introduced faster, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Show the boss that 1, you've already got the port created and ready to check in to source control with his approval, and 2, this provides benefits both to the developers and also the clients, he's a lot more likely to see the upside.  One of the biggest benefits he can turn around and show to other people is Unicode support, especially if you're trying to sell to any international customers who use a non-Roman alphabet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Yeah, this was pretty specific to Delphi, because I know Delphi real well.  But you can apply the same principles to just about anything.  Also, if at all possible, try to update to Delphi XE.  One of the biggest new features for developers is Generics, and they were pretty badly broken in D2009, and mostly (but not completely) stable in D2010.)&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-01T22:10:13.540" CommentCount="4" />
  <row Id="8903" PostTypeId="2" ParentId="8890" CreationDate="2010-10-01T22:14:15.430" Score="8" ViewCount="" Body="&lt;p&gt;First you should find out the reason for the need of this hush-hush overtime. Then you can decide what to do about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It sounds to me like your boss has made a mistake in the planning, and needs some more man hours to complete the project without having to admit it...&lt;/p&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-10-01T22:14:15.430" CommentCount="2" />
  <row Id="8904" PostTypeId="2" ParentId="8890" CreationDate="2010-10-01T22:26:22.110" Score="2" ViewCount="" Body="&lt;p&gt;The whole thing seems a little creepy.  Do you trust Colfax?  Because you'll have to for a long time if you do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You said you have an &quot;uneasy feeling&quot; about it.  I wouldn't ignore that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I try to avoid putting my future in one person's (not mine) hands.&lt;/p&gt;&#xA;" OwnerUserId="2671" LastEditorUserId="2671" LastEditorDisplayName="" LastEditDate="2010-10-02T13:47:56.710" LastActivityDate="2010-10-02T13:47:56.710" />
  <row Id="8905" PostTypeId="2" ParentId="8890" CreationDate="2010-10-01T22:29:30.107" Score="24" ViewCount="" Body="&lt;p&gt;If you have serious doubts about whether something is ethical, it's probably not.  That inner voice is there for a reason; listen to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A real red flag should be the boss offering you vacation days &quot;off the book.&quot;  That could easily be interpreted as a confession of intent to commit accounting fraud, which is a pretty serious no-no.  Plus, if the boss is willing to hide things from his boss, how do you know he's not willing to hide things from you?  You could be getting set up for something here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Time to take this to someone with authority.  If what he's asking you to do is flat-out illegal, go to the police or the FBI.  Otherwise, go to Schuyler and explain what's going on.  You won't regret it.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-01T22:29:30.107" CommentCount="3" />
  <row Id="8906" PostTypeId="2" ParentId="4587" CreationDate="2010-10-01T22:43:54.523" Score="13" ViewCount="" Body="&lt;p&gt;I used to be an IEEE/CS member. The IEEE has its own ten-point code of ethics, posted here &lt;a href=&quot;http://www.ieee.org/membership_services/membership/ethics_code.html&quot; rel=&quot;nofollow&quot;&gt;http://www.ieee.org/membership_services/membership/ethics_code.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that ethics isn't simply about refusing to do harm. Its also about actively taking steps to improve yourself, improve your peers (through mentoring/answering questions here on SE), and improve your profession in the eyes of the public; and these objectives are reflected in the IEEE code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of real life ethical dilemmas, I once had a sales rep falsify info on my resume to win a contract. This violates #3 on the IEEE code of ethics. I confronted the sales rep and asked him to correct the incorrect info, and he said &quot;everyone does it.&quot; When I persisted, a partner told me they needed the contract or they'd go out of business. At that point, I started looking for a new job.&lt;/p&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-01T22:43:54.523" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="3" />
  <row Id="8907" PostTypeId="2" ParentId="4587" CreationDate="2010-10-01T23:06:53.657" Score="13" ViewCount="" Body="&lt;p&gt;Today I had an opportunity to get a six-month co-op job with a well-known defense contractor. The pay and benefits would have been incredible, but I had to skip the opportunity. I just don't believe it's ever &lt;em&gt;really&lt;/em&gt; justifiable for software developers to be involved in war. The excuse that defense software is used to save lives is invalid: in war, saving one life often means extinguishing another, and I couldn't live with myself if I had even a semicolon to do with that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We're intellectuals, not barbarians.&lt;/p&gt;&#xA;" OwnerUserId="2107" LastActivityDate="2010-10-01T23:06:53.657" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="11" />
  <row Id="8908" PostTypeId="2" ParentId="8844" CreationDate="2010-10-01T23:22:00.677" Score="0" ViewCount="" Body="&lt;p&gt;It's probably harder in the U.S. than anywhere. There has been a relentless and orchestrated effort to denigrate governments and to devalue anything done by them and to elevate private enterprise above all else. It takes its most extreme, absolutist and fundamentalist form in the Libertarian Party, which is probably more strongly represented in ranks of software developers than any other industry.&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-10-01T23:22:00.677" />
  <row Id="8909" PostTypeId="2" ParentId="8890" CreationDate="2010-10-01T23:22:22.273" Score="5" ViewCount="" Body="&lt;p&gt;Your boss may just be trying to do a &lt;a href=&quot;http://en.wikipedia.org/wiki/Skunk_Works&quot; rel=&quot;nofollow&quot;&gt;&quot;skunkworks&quot;&lt;/a&gt; type project that will help the company.  As long as he's reimbursing you the time, then there should be nothing wrong about it.  As long as you trust him to reimburse that time, then it will at least be good experience for you.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-10-01T23:22:22.273" CommentCount="1" />
  <row Id="8910" PostTypeId="2" ParentId="6834" CreationDate="2010-10-01T23:24:47.963" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://research.microsoft.com/en-us/projects/pex/&quot; rel=&quot;nofollow&quot;&gt;Pex&lt;/a&gt; does some pretty cool automated unit test generation. It traces your code, determines branch points, uses a conditional solver to generate inputs that hit every possible branch, and then lets you export the results as repeatable unit tests. It can humiliate complex string handling code.&lt;/p&gt;&#xA;" OwnerUserId="3044" LastActivityDate="2010-10-01T23:24:47.963" CommentCount="1" />
  <row Id="8911" PostTypeId="2" ParentId="815" CreationDate="2010-10-01T23:27:27.723" Score="0" ViewCount="" Body="&lt;p&gt;I just left a job for a healthcare sector SaaS company. 90%+ of the clients had IE6 as their standard still and most of those actively prevented their users from using anything else. The huge majority of our page hits came from IE6. We were partnered up with some other firms and my contacts at those other firms said they saw the same thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless the hospitals suddenly have an epiphany that they should move to Win7, I doubt we're going to see a big jump away from IE6 anytime soon.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-10-01T23:27:27.723" CommentCount="1" />
  <row Id="8912" PostTypeId="2" ParentId="3023" CreationDate="2010-10-01T23:27:36.847" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/magazine/default.aspx&quot; rel=&quot;nofollow&quot;&gt;MSDN Magazine&lt;/a&gt; is great.&lt;/p&gt;&#xA;" OwnerUserId="3044" LastActivityDate="2010-10-01T23:27:36.847" />
  <row Id="8914" PostTypeId="2" ParentId="4404" CreationDate="2010-10-01T23:34:53.550" Score="1" ViewCount="" Body="&lt;p&gt;I did have binary arithmetic in elementary school (if elementary school is what I think it is, anyway we were 13 or 14 at the time) but it was a part of informatics course. We just did addition and subtraction and conversion from decimal to binary and back. The course was nicely thought out but the problem was that informatics were just added as a new mandatory subject and our teacher knew about binary numbers as much as we did. Our first computer was an ancient &lt;a href=&quot;http://en.wikipedia.org/wiki/Orao_%28computer%29&quot; rel=&quot;nofollow&quot;&gt;Orao&lt;/a&gt; but our teacher didn't actually know how to turn it on, so we did pen and paper QBASIC programming until we received IBM-compatible PCs. I was in Bosnia and Herzegovina at the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end I think that only useful thing that came out of that course was my ability to &lt;a href=&quot;http://en.wikipedia.org/wiki/Finger_binary&quot; rel=&quot;nofollow&quot;&gt;count from 0 to 1023 using my fingers&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="98" LastActivityDate="2010-10-01T23:34:53.550" CommentCount="1" />
  <row Id="8915" PostTypeId="2" ParentId="4587" CreationDate="2010-10-01T23:40:15.860" Score="15" ViewCount="" Body="&lt;p&gt;You write a bit of code at your job.  It's very generic code; solves a general problem.  Maybe it's a script.  Say, 100 lines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now you leave for a different company.  You know (for whatever reason) that the chances are excellent that in your new job you will need that same piece of logic.  You know that you can certainly recreate it from scratch; you're intimately familiar with the design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you take a copy of the code with you?  Or do you waste your time at the new job recreating it from scratch?  Technically your old job owns the code.  But ultimately the end result will be the same.  What's the ethical action here?&lt;/p&gt;&#xA;" OwnerUserId="4284" LastActivityDate="2010-10-01T23:40:15.860" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="8" />
  <row Id="8917" PostTypeId="1" CreationDate="2010-10-02T00:00:23.153" Score="1" ViewCount="216" Body="&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been using SVN for sometime and have been making an awkward, but soon to be rewarding transition over to git.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Theres quite a few side / small projects that I'm working on which 90% will never see the light of day. As well - I also have my weekly school assignments / projects, and finally client projects that I have on the go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been rolling the idea or question of how or what the best way would be to back up my projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The solutions I've sought out so far:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;github&lt;/strong&gt; which offers an outstanding service - I'm ok with my work being open source, however It's the school work and client work I might not want the public to be open to. github, of course has a payment plan - but let's face it, im a poor colleage student doing what I can to at least put KD on the table!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Theres the &lt;strong&gt;USB thumbstick&lt;/strong&gt; that I can take around with me, work off of or back up, but that requires it to be around constently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Theres &lt;strong&gt;Dropbox&lt;/strong&gt;, but thats a little overkill since it already is a form of a version control system, as well - I have quite a few things on the go - putting everything within dropbox would eat a lot of space&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, theres a &lt;strong&gt;private server&lt;/strong&gt;. I have a mac mini setup as a media server and I was thinking that I could backup to that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyways - what are your guys thoughts, how do you handle backing up projects, not only for version control but for the everyday backups.&lt;/p&gt;&#xA;" OwnerUserId="1834" LastActivityDate="2010-10-02T14:38:48.310" Title="Git &amp; project backups" Tags="&lt;version-control&gt;&lt;github&gt;" AnswerCount="4" />
  <row Id="8918" PostTypeId="2" ParentId="39" CreationDate="2010-10-02T00:03:46.233" Score="9" ViewCount="" Body="&lt;p&gt;Be nice to nerds. Chances are you'll end up working for one. - Bill Gates&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with quick and dirty...is that dirty remains long after quick has been forgotten. - Steve C McConnell&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My site &lt;a href=&quot;http://www.SoftwareQuotes.com&quot; rel=&quot;nofollow&quot;&gt;SoftwareQuotes.com&lt;/a&gt; is full of quotations about programming and software development.&lt;/p&gt;&#xA;" OwnerUserId="4282" LastActivityDate="2010-10-02T00:03:46.233" CommunityOwnedDate="2010-10-02T00:03:46.233" CommentCount="2" />
  <row Id="8919" PostTypeId="2" ParentId="8890" CreationDate="2010-10-02T00:11:11.870" Score="1" ViewCount="" Body="&lt;p&gt;I somehow get the feeling that, although the work is for the company's client, your boss made side arangements with the client. That he found out that something was too expensive for the client by your company's pricing policy so he ofered him a side deal for smaller price. Of course, your boss wouldn't do any work (that would be your job) and would collect all the money and in return he would give you a bonus days off. If you're caught doing it, you'll be the one to blame and he'll deny everything. Check what's in your contract. You might as well loose your job and good reputation if you're caught doing it. You should go to your boss's boss and talk to him confidentialy and ask him what to do.&lt;/p&gt;&#xA;" OwnerUserId="4283" LastActivityDate="2010-10-02T00:11:11.870" />
  <row Id="8920" PostTypeId="2" ParentId="3726" CreationDate="2010-10-02T00:31:07.713" Score="12" ViewCount="" Body="&lt;p&gt;The important thing to know about TIOBE is that it tracks mentions of a language's name. Not projects written in that language. Not people who know it or who work in it. Mentions. That includes resumes that include jobs using it ten years ago, articles about how dumb and outdated it is, and rants that say &quot;Golly, even ALGOL had that feature!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now this does have some value. When languages really die away, people stop even mentioning them in that section of their resume or using them in arguments. But there is essentially no conclusion to be drawn from, say, the #4 last year and the #3 last year switching places this year. The rise of Objective-C is obvious and real. But snapshot-in-time positions are not meaningful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And my answer to the question asked is that I am mystified to see both RPG and Ada in the top 20. Who is talking about those still?? I would expect to see them below 50 for sure, just because of their age and the &quot;niche&quot; of developers who still use them.&lt;/p&gt;&#xA;" OwnerUserId="285" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-16T19:40:00.403" LastActivityDate="2010-11-16T19:40:00.403" CommentCount="1" />
  <row Id="8921" PostTypeId="2" ParentId="8890" CreationDate="2010-10-02T00:35:03.353" Score="1" ViewCount="" Body="&lt;p&gt;If it's legal, and you're not stealing.. then I'd consider it. However that situation is rare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First find out what is going to happen to your intellectual property.  As long as he will not personally benefit from the code you're writing it &lt;em&gt;might&lt;/em&gt; be OK.  My bet is that he is using his position of authority to get some personal endeavors done so that he may make a profit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The truth is that if he profits from your work (by a side business), and your compensation is time off from your day job, that is stealing.  You don't want to open that can of worms.  Because this individual is a boss, has been appointed by your copmany power that a friend or colleague may not have that creates a conflict of interest and may be something that your HR department would be very interested in hearing about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do share what you decide to do with this thread (and any potential outcome) I'm curious&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-10-04T19:59:38.710" LastActivityDate="2010-10-04T19:59:38.710" />
  <row Id="8922" PostTypeId="2" ParentId="8917" CreationDate="2010-10-02T00:36:41.853" Score="0" ViewCount="" Body="&lt;p&gt;It all depends on what you want ( I didn't quite get it from the question ). Do you wish to backup your repos, or do you wish to host them somewhere?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't see nothing wrong with putting your repos in your Dropbox dir, and syncing them. There exists a portable Dropbox and a portable Git, for those machines that don't have them, and you don't wish to install them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It depends on whether you want to have backup or an online repo, so to say. Note: there are other git hosting solutions, other than github - &lt;a href=&quot;http://stackoverflow.com/questions/109440/best-git-repository-hosting-for-commercial-project&quot;&gt;see here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-02T00:36:41.853" />
  <row Id="8923" PostTypeId="1" CreationDate="2010-10-02T00:37:28.603" Score="1" ViewCount="41" Body="&lt;p&gt;Does anyone here have experience with creating eBooks?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking for guidance/links on:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;converting back catalogues. &lt;/li&gt;&#xA;&lt;li&gt;which format(s) to choose. &lt;/li&gt;&#xA;&lt;li&gt;which approach/tool is best for creating books for paper &lt;em&gt;and&lt;/em&gt; digital.&lt;/li&gt;&#xA;&lt;li&gt;any other useful pointers&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;This is only vaguely programming related. It landed on my programming lap because of the xml in most document formats. I don't mind you closing the question, as long as you answer it first :)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="4285" LastEditorUserId="4285" LastEditorDisplayName="" LastEditDate="2010-10-02T01:31:13.677" LastActivityDate="2010-10-02T02:25:38.570" ClosedDate="2010-10-02T04:24:16.093" Title="Guidance for creating e-books" Tags="&lt;experience&gt;&lt;advice&gt;" AnswerCount="0" CommentCount="1" />
  <row Id="8924" PostTypeId="2" ParentId="8886" CreationDate="2010-10-02T00:38:24.220" Score="1" ViewCount="" Body="&lt;p&gt;You can always find some online work on sites such as elance.&lt;/p&gt;&#xA;" OwnerUserId="4283" LastActivityDate="2010-10-02T00:38:24.220" CommunityOwnedDate="2011-03-30T04:35:50.040" CommentCount="1" />
  <row Id="8926" PostTypeId="2" ParentId="8917" CreationDate="2010-10-02T00:53:36.917" Score="0" ViewCount="" Body="&lt;p&gt;You keep saying &quot;backup&quot;, so I'm assuming you don't want to code on the go, you just want to keep your files safe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I just develop on my main PC with source control (and frequent commits), and back everything up to a flash drive every week or so. I don't see the need for more than that.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-10-02T00:53:36.917" />
  <row Id="8927" PostTypeId="2" ParentId="8808" CreationDate="2010-10-02T01:04:05.073" Score="-1" ViewCount="" Body="&lt;p&gt;Can I get Joelfan points for answering &lt;a href=&quot;http://www.fogcreek.com/fogbugz/&quot; rel=&quot;nofollow&quot;&gt;FogBugz&lt;/a&gt;?&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-02T01:04:05.073" CommentCount="2" />
  <row Id="8928" PostTypeId="2" ParentId="8808" CreationDate="2010-10-02T01:41:11.840" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.pivotaltracker.com/&quot; rel=&quot;nofollow&quot;&gt;Pivotal Tracker&lt;/a&gt;. It's free and awesome. Did I mention that it's free? =P&lt;/p&gt;&#xA;" OwnerUserId="4222" LastActivityDate="2010-10-02T01:41:11.840" CommentCount="6" />
  <row Id="8929" PostTypeId="2" ParentId="5972" CreationDate="2010-10-02T02:14:13.350" Score="3" ViewCount="" Body="&lt;p&gt;Everyone I know working with Python uses Emacs or Vim.&lt;/p&gt;&#xA;" OwnerUserId="3111" LastActivityDate="2010-10-02T02:14:13.350" CommunityOwnedDate="2011-04-30T19:57:04.087" CommentCount="1" />
  <row Id="8930" PostTypeId="2" ParentId="3732" CreationDate="2010-10-02T02:21:41.033" Score="1" ViewCount="" Body="&lt;p&gt;The &lt;strong&gt;paperwork&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Test reports, release notes, version descriptions, code review logs, change requests.  All the paperwork required in a &quot;process&quot; focused company.  &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-02T02:21:41.033" CommunityOwnedDate="2010-10-02T02:21:41.033" />
  <row Id="8931" PostTypeId="2" ParentId="8772" CreationDate="2010-10-02T02:24:12.163" Score="0" ViewCount="" Body="&lt;p&gt;The symbol of a development &lt;a href=&quot;http://en.wikipedia.org/wiki/Pipeline_%28Unix%29&quot; rel=&quot;nofollow&quot;&gt;philosophy&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/w7Roj.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-10-02T02:24:12.163" />
  <row Id="8933" PostTypeId="2" ParentId="8890" CreationDate="2010-10-02T02:46:38.300" Score="7" ViewCount="" Body="&lt;p&gt;This kind of thing happens a lot, actually. I agree with Lance, it sounds like a project that he really thinks is important, but can't convince his boss to buy off on it. If that's the case, the risk is all his.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He's making a power play, and it'll end good or bad. Most often when I see this, the manager wouldn't get fired if it doesn't pay off. At worst, they may reprimand him, but usually his subordinate (you) would be completely off the hook. You were just doing what you were asked, being a team player, and not doing anything questionable (I assume, based on your details).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even more to the point, sometimes developers do this. I've done it a couple times. Convinced that an idea will work, I will attempt to slap together a prototype to show my boss and/or colleagues. It's a delicate line, in this case, since you are using company time. But it can really pay off (good visibility and reputation of a go-getter) if it works out. It is a risk though.&lt;/p&gt;&#xA;" OwnerUserId="4109" LastActivityDate="2010-10-02T02:46:38.300" CommentCount="1" />
  <row Id="8934" PostTypeId="2" ParentId="3732" CreationDate="2010-10-02T03:00:04.217" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Project Managers&lt;/strong&gt; :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if they were programmers in the past, they forget just what it takes to get applications created and working. So they make crazy schedules.&lt;/p&gt;&#xA;" OwnerUserId="4202" LastActivityDate="2010-10-02T03:00:04.217" CommunityOwnedDate="2010-10-02T03:00:04.217" />
  <row Id="8936" PostTypeId="2" ParentId="8710" CreationDate="2010-10-02T03:15:15.767" Score="1" ViewCount="" Body="&lt;p&gt;How about this for a rationale:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Can we have an exception for&#xA;  programmers who bring a note in from&#xA;  their parents that says they are&#xA;  allowed to listen to music? That way&#xA;  you could delegate treating your&#xA;  employees like children and have more&#xA;  time to micromanage the amount of&#xA;  toilet tissue people are using when&#xA;  they use the restroom.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Or how about:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The music helps them drown out&#xA;  micromanagement and remain focused on&#xA;  things that actually have any impact&#xA;  on the success of the company.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-02T03:15:15.767" />
  <row Id="8938" PostTypeId="2" ParentId="3233" CreationDate="2010-10-02T03:46:51.680" Score="15" ViewCount="" Body="&lt;p&gt;Why does anyone offer free advice here on Stack Exchange when some people make money answering technical questions? I think this points to a basic psychological need to be generous. Jorge Moll and Jordan Grafman, neuroscientists at NIH, have found that charity is hard-wired in the brain. See the &lt;em&gt;Washington Post&lt;/em&gt; article ``If It Feels Good to Be Good, It Might Be Only Natural'' at &lt;a href=&quot;http://www.washingtonpost.com/wp-dyn/content/article/2007/05/27/AR2007052701056.html&quot; rel=&quot;nofollow&quot;&gt;http://www.washingtonpost.com/wp-dyn/content/article/2007/05/27/AR2007052701056.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both Kohlberg's theory of cognitive development and Gilligan's ethics of caring view people as interdependent and developing towards increased empathy and altruism. This behavior is necessary for humanity to survive and thrive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lewis Hyde says there are two types of economy: (1) The exchange economy (economy of scarcity), where status is accorded to those who have the most and (2) the gift economy (economy of abundance) where status is accorded to those who give the most. Examples of gift economies include marriage, family, friendship, traditional scientific research, social networks (like Wikipedia and Stack Exchange), and, of course, &lt;a href=&quot;http://en.wikipedia.org/wiki/Free_and_open_source_software&quot; rel=&quot;nofollow&quot;&gt;F/OSS&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO, Eric S. Raymond and Linus Torvalds performed a miracle: transforming selfish programmers into generous programmers.  This is very similar to how Elisha transformed 2,200 selfish students into generous people with the miracle of ``the feeding of the multitude.'' In II Melachim 4:42-48 Elisha must support 2,200 students. There's a famine. His students are hungry and selfish. Each of them has some food, but they refuse to share with each other. After Elisha distributed a mere 22 loaves of bread to them, they began to share with one another. Soon, not only are they all fed, but there's food left over. The true miracle is not that bread materialized out of thin air, but that those who were once selfish became generous, inspired by the example of one person's generosity. Something similar has happened over the last couple decades, as a result of the release of Linux and other free software.&lt;/p&gt;&#xA;" OwnerUserId="4128" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-06T10:59:09.520" LastActivityDate="2011-02-06T10:59:09.520" CommunityOwnedDate="2010-10-02T03:46:51.680" />
  <row Id="8939" PostTypeId="2" ParentId="8890" CreationDate="2010-10-02T03:50:18.130" Score="12" ViewCount="" Body="&lt;p&gt;The fact that Schuyler can't know is very suspicious. That alone makes me say: &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;&quot;STAY AWAY&quot;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Colfax is asking you because you think coding is neat. Maybe that means you're even good at it. But it also means that if you do it, he will almost certainly remember that you said &quot;yes&quot; in the future. Mostly when he has another &quot;after hours&quot; project for you. There's every chance that &quot;future considerations&quot; never materialize and he tries to get you to defer these off the book vacation days until far in the future, probably long after one of you leaves the company. If he can hide the fact that you're on an off the book vacation, why can't he just hide you in plain sight while you work on this &quot;project that benefits the company&quot; ? Answer:He probably can't do either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this is one of those deals where it's truly a case that management doesn't believe in it but Colfax thinks it's worth doing, I would suggest telling him to forget about the comp days and that you want to present the results along with him (it's not for the benefit of the company unless the company finds out about it, right?). His response to that will tell you a lot about where he's standing ethically. And you could do the project with a clear conscience. That's is also the best way to make sure you get &quot;future considerations&quot; as his bosses will know your contribution. &lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-10-02T03:50:18.130" />
  <row Id="8940" PostTypeId="2" ParentId="5705" CreationDate="2010-10-02T04:02:09.930" Score="1" ViewCount="" Body="&lt;p&gt;Off the top of my head:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;M-x compile     (now do C-x ` to cycle through errors)&#xA;M-x gdb&#xA;M-x grep-find&#xA;M-x find-tag    (aka M-.  and C-u M-. is &quot;next&quot; tag)&#xA;inferior-processes (if you use an interpreted language, &#xA;                    you can eval directly from Emacs)&#xA;C-x v v         ([version control][1])&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In general, the &lt;a href=&quot;http://www.gnu.org/software/emacs/manual/html_node/emacs/Building.html#Building&quot; rel=&quot;nofollow&quot;&gt;Compiling and Testing Programs&lt;/a&gt; chapter of the info pages is a good read.&lt;/p&gt;&#xA;" OwnerUserId="4289" LastActivityDate="2010-10-02T04:02:09.930" />
  <row Id="8941" PostTypeId="2" ParentId="2815" CreationDate="2010-10-02T04:57:40.200" Score="0" ViewCount="" Body="&lt;p&gt;Smarter &lt;code&gt;if&lt;/code&gt; statements ie:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;object foo = GetAnObject();&#xA;if(foo is string) &#xA;    Console.WriteLine(foo.ToUpper());//foo is typed as string&#xA;else if(foo is int)&#xA;    Console.WriteLine(foo + 2);//foo is int&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4132" LastActivityDate="2010-10-02T04:57:40.200" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="1" />
  <row Id="8943" PostTypeId="2" ParentId="8631" CreationDate="2010-10-02T05:40:53.743" Score="0" ViewCount="" Body="&lt;p&gt;Doit(), a(), b(c) xxxx()....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course they get refactored away ....usually&lt;/p&gt;&#xA;" OwnerUserId="3769" LastActivityDate="2010-10-02T05:40:53.743" />
  <row Id="8944" PostTypeId="2" ParentId="7559" CreationDate="2010-10-02T06:45:05.437" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; #2. You really want that bugfix (with its note in your tracker!) tagged in your version history as a separate entity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Longer answer:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Stumble across the bug&lt;/li&gt;&#xA;&lt;li&gt;Write a test or more demonstrating the bug&lt;/li&gt;&#xA;&lt;li&gt;Make the test pass&lt;/li&gt;&#xA;&lt;li&gt;Commit just that change and its tests (&lt;code&gt;git add --interactive&lt;/code&gt; or &lt;code&gt;darcs record -i&lt;/code&gt; or however your VCS does it) (*)&lt;/li&gt;&#xA;&lt;li&gt;Get back to what I was doing.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(*) In CVS (no, really) I sometimes have a clean tree checked out as well as a copy on which I work. Then I use a merge - winmerge, in my case - to pull just the bugfix into the clean tree so I may commit it separately. (The other option's to rename your changed files, &lt;code&gt;cvs update&lt;/code&gt; and merge. When you've committed the change, remove the file and rename your moved files back to their original names.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something to note though is that I usually only find bugs that are either related to what I'm working on, or are in close lexical proximity. I would be surprised if it was normal for people to find bugs in unrelated parts of the codebase - why are you reading unrelated code when fixing the bug? (Yes, this is the exact opposite of what Aaronnaught says!)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-02T06:45:05.437" />
  <row Id="8945" PostTypeId="2" ParentId="4352" CreationDate="2010-10-02T07:09:21.790" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.h2database.com/&quot; rel=&quot;nofollow&quot;&gt;H2 Database Engine&lt;/a&gt;. It's a Java SQL database, and the source code clarity is just impressive. And it's not by coincidence. See for example their &lt;a href=&quot;http://www.h2database.com/html/build.html#providing_patches&quot; rel=&quot;nofollow&quot;&gt;patch requirements&lt;/a&gt;, including:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Use Checkstyle with a specific configuration.&lt;/li&gt;&#xA;&lt;li&gt;Provide test cases, run all existing tests.&lt;/li&gt;&#xA;&lt;li&gt;Use a code coverage tool.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-02T07:09:21.790" />
  <row Id="8947" PostTypeId="1" AcceptedAnswerId="8949" CreationDate="2010-10-02T07:24:04.740" Score="5" ViewCount="190" Body="&lt;p&gt;I wrote a poem in PHP that I would like to submit to a literary journal, but will someone check my syntax first?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;abstract class modelView {&#xA;&#xA;    //Declaring the collective&#xA;    $private family;&#xA;    $private friends;&#xA;    $protected vocation;&#xA;&#xA;    //Start&#xA;    private function __construct() {&#xA;        define(&quot;STEADY&quot;, &quot;GOD&quot;);&#xA;        define(&quot;EVOLVING_FORWARD&quot;, &quot;WORLD&quot;);&#xA;    }&#xA;&#xA;    private function getMyCore() {&#xA;        return $this-&amp;gt;family + $this-&amp;gt;friends;&#xA;    }&#xA;&#xA;    protected function setLove($empathy) {&#xA;        $this-&amp;gt;vocation = $this-&amp;gt;senseOfPurpose() . $empathy;&#xA;    }&#xA;&#xA;    public function senseOfPurpose() {&#xA;        define(&quot;PEOPLE&quot;, &quot;We are together&quot;);&#xA;        return STEADY . EVOLVING_FORWARD . PEOPLE;&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" LastActivityDate="2010-10-08T22:48:29.087" Title="I wrote a poem in PHP that I would like to submit to a literary journal, but will someone check my syntax first?" Tags="&lt;syntax&gt;&lt;feedback&gt;" AnswerCount="3" CommentCount="4" FavoriteCount="1" />
  <row Id="8948" PostTypeId="2" ParentId="8808" CreationDate="2010-10-02T07:44:51.127" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.redmine.org/&quot; rel=&quot;nofollow&quot;&gt;Redmine&lt;/a&gt; with the &lt;a href=&quot;http://www.redminebacklogs.net/&quot; rel=&quot;nofollow&quot;&gt;Backlogs plugin&lt;/a&gt; is quite good. The best that I have used, at least.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One good feature of this combo is that it allows for both &quot;agile&quot; and &quot;traditional&quot; views and vocabulary, and illuminates how similar they are in the end (which, I can imagine, may annoy some hard core agile enthusiasts). For example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Story ~ Issue.&lt;/li&gt;&#xA;&lt;li&gt;Sprint ~ Version (or milestone) with start time and deadline.&lt;/li&gt;&#xA;&lt;li&gt;Backlog ~ Issues with no target version yet.&lt;/li&gt;&#xA;&lt;li&gt;Task board ~ Issues and their statuses within the version currently under construction.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Each team member may use either view according to his/her preferences.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-02T09:11:03.687" LastActivityDate="2010-10-02T09:11:03.687" />
  <row Id="8949" PostTypeId="2" ParentId="8947" CreationDate="2010-10-02T08:27:31.437" Score="2" ViewCount="" Body="&lt;p&gt;Member fields are declared like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private $family;&#xA;private $friends;&#xA;protected $vocation;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It looks like senseOfPurpose() returns &quot;GODWORLDWe are together&quot; - perhaps you need some spaces?&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-02T08:27:31.437" />
  <row Id="8950" PostTypeId="2" ParentId="8890" CreationDate="2010-10-02T08:30:08.710" Score="4" ViewCount="" Body="&lt;p&gt;The real problem here is that after the work's done, and you've taken the leave, you're vulnerable. Try explain why it is that you took N days extra of paid leave, and next you're explaining a whole lot while Colfax steadfastly denies everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's the real problem OTHER than your boss lying to his higher-ups, that is.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-02T08:30:08.710" />
  <row Id="8951" PostTypeId="2" ParentId="5215" CreationDate="2010-10-02T09:05:37.517" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.pycon.org/&quot; rel=&quot;nofollow&quot;&gt;Pycon&lt;/a&gt;s (Python Conference) are good. They are more python specific, but you get to meet a lot of passionate and talented people. &lt;/p&gt;&#xA;" OwnerUserId="2259" LastActivityDate="2010-10-02T09:05:37.517" />
  <row Id="8953" PostTypeId="2" ParentId="8886" CreationDate="2010-10-02T10:44:02.717" Score="1" ViewCount="" Body="&lt;p&gt;As a team manager, I hired both people with and without formal education in computer science or software engineering, so it certainly is possible to have a career as a programmer without having any formal education.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, a rule of thumb is that there is a bigger chance that someone with education will be a better developer than one without. It is of course possible to learn everything by oneself, and there are plenty of crappy developers with formal education.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would probably be easier getting a job in a smaller operation, since there will be less bureaucracy, so slipping through the HR filter (as Muad'Dib mentions) will be easier.&lt;/p&gt;&#xA;" OwnerUserId="1020" LastActivityDate="2010-10-02T10:44:02.717" CommunityOwnedDate="2011-03-30T04:35:50.040" CommentCount="1" />
  <row Id="8954" PostTypeId="1" CreationDate="2010-10-02T11:10:21.037" Score="13" ViewCount="367" Body="&lt;p&gt;Are there complete packages for time tracking, invoice generation, bug tracking and project management?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These don't have to be Web Applications, I wonder if there exist full packages for Visual Studio/Eclipse too...&lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-06T20:44:47.943" LastActivityDate="2010-10-08T21:08:22.677" Title="Are there complete packages for bug/time tracking, invoices and project management?" Tags="&lt;project-management&gt;&lt;tracking&gt;&lt;invoices&gt;&lt;freelance&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="4" />
  <row Id="8955" PostTypeId="1" CreationDate="2010-10-02T11:12:13.403" Score="7" ViewCount="85" Body="&lt;p&gt;After working out a project, it might require too much tweaks and changes to get it working right...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What can I do to prevent this?&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-10-02T20:28:26.413" Title="How do I keep my projects from dragging on with endless tweaks and changes?" Tags="&lt;project&gt;&lt;changes&gt;" AnswerCount="3" />
  <row Id="8956" PostTypeId="1" CreationDate="2010-10-02T11:17:05.220" Score="13" ViewCount="458" Body="&lt;p&gt;If you are a solo developer, or have a leading role in a software company, you might have to decide how much your software will cost one or another day...  What is your experience with calculating how much your software costs for your customer? Why does this method it work for you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Feel free to accompany your answer with references to already accomplished methods and techniques. &lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-15T10:55:04.453" LastActivityDate="2010-10-15T10:55:04.453" Title="How do you decide how much your software will cost?" Tags="&lt;software&gt;&lt;pricing&gt;" AnswerCount="6" CommentCount="11" FavoriteCount="4" />
  <row Id="8957" PostTypeId="2" ParentId="8890" CreationDate="2010-10-02T11:19:00.913" Score="0" ViewCount="" Body="&lt;p&gt;Given your description I would see it as an opportunity, if it's not a tremendous lot of hours just do the work and don't take the compensation in time. This way you don't take any risk since Colfax asked you do this work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The possible win is a bonus or perhaps Colfax can push your career. In terms of loose you can only loose the hours you invested in a cool project?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you refuse Colfax will definitely not like you.&lt;/p&gt;&#xA;" OwnerUserId="4111" LastEditorUserId="4111" LastEditorDisplayName="" LastEditDate="2010-10-02T11:38:05.757" LastActivityDate="2010-10-02T11:38:05.757" />
  <row Id="8958" PostTypeId="1" CreationDate="2010-10-02T11:21:15.290" Score="5" ViewCount="201" Body="&lt;p&gt;What signs have you seen that can indicate a project to turn &lt;em&gt;bad&lt;/em&gt; or &lt;em&gt;sour&lt;/em&gt; early-on?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why were these signs bad? How can one avoid/correct them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Feel free to accompany your answer with articles that talk about such deficiencies.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-10-03T05:12:55.347" Title="What are signs that a project might turn out bad?" Tags="&lt;project-management&gt;&lt;bad-practice&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="2" />
  <row Id="8959" PostTypeId="2" ParentId="3233" CreationDate="2010-10-02T11:23:44.483" Score="2" ViewCount="" Body="&lt;p&gt;There are several reasons for making software available for free.&#xA;It could be, that the software is only written to produce something else - making the source free, offers the opportunity to incorporate bug fixes and features by third parties without having to pay them, while you can get money out of what you produce with that software. See &lt;a href=&quot;http://catb.org/esr/writings/cathedral-bazaar/&quot; rel=&quot;nofollow&quot;&gt;&quot;The Cathedral and the Bazaar&quot;&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another reason is that you write the program for fun and/or training and getting comments on your code by peers or even more capable persons than yourself might be more important than earning money - in this case, selling the software for a profit wouldn't be profitable at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And there's the third option of high skill linked with high self-esteem, where you take the route of Tarn and Zach Adams and make a living off the donations you get. &lt;a href=&quot;http://en.wikipedia.org/wiki/Dwarf_Fortress&quot; rel=&quot;nofollow&quot;&gt;Dwarf Fortress&lt;/a&gt; (programmed by Tarn Adams) is available for free, yet receives thousands of dollars in donations per month.&lt;/p&gt;&#xA;" OwnerUserId="4298" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-12T08:50:54.877" LastActivityDate="2011-02-12T08:50:54.877" CommunityOwnedDate="2010-10-02T11:23:44.483" />
  <row Id="8960" PostTypeId="2" ParentId="8958" CreationDate="2010-10-02T11:28:35.517" Score="6" ViewCount="" Body="&lt;p&gt;There are sooooooooo many factors, it's impossible to answer it properly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read &lt;a href=&quot;http://books.google.com/books?id=FdAZUX9H_gAC&amp;amp;dq=death+march&amp;amp;printsec=frontcover&amp;amp;source=bn&amp;amp;hl=fr&amp;amp;ei=HBenTNnOMYGWswatzqiiDA&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=9&amp;amp;sqi=2&amp;amp;ved=0CEgQ6AEwCA#v=onepage&amp;amp;q&amp;amp;f=false&quot; rel=&quot;nofollow&quot;&gt;Death March&lt;/a&gt;, it's a book on the subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I've observed two causes that tend to appear in most failures (they are both linked):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Internal company politics&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The large the company is, the most affected you will be. Most people working in large enterprise are encouraged to move up the career ladder. Project success may not be the way to do that. In fact, if there is two project managers that are likely to take a higher rank, one will be tempted to make everything necessary to make the project of the other fail. In smaller enterprise, you have shareholders conflicts. You take decisions based on personnal interests instead of project interest. And so on.. this is infinite! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Bad management&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since developers don't like the idea to become managers, most of the people that drive a project simply doesn't understand developing a software is different. On the other hand, some developers with poor social skills want to be a manager and fail too. Become managing people is not writing code...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They try to manage it like what they did in their previous experience (not software related or how they usually write code for the others) and then fail... Most of them don't learn from their mistake, so they try offshore instead, but that's worse! Then they usually repeat once before giving up to another fresh manager that think he will succeed... applying the same management methods ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found some solution in those problems in Agile. But nothing can replace an highly skilled team. With the dream team, you can most of the time go trought most of the problems explained above. A lot of &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1851687203&quot; rel=&quot;nofollow&quot;&gt;chance&lt;/a&gt; can be also involved...&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-02T13:27:10.277" LastActivityDate="2010-10-02T13:27:10.277" CommentCount="3" />
  <row Id="8961" PostTypeId="1" CreationDate="2010-10-02T11:29:24.867" Score="3" ViewCount="153" Body="&lt;p&gt;What are really hidden features of Visual Studio that aren't commonly used, yet that can do great things?&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-10-02T13:31:39.050" ClosedDate="2010-10-02T15:26:44.413" Title="What are hidden features of Visual Studio?" Tags="&lt;visual-studio-2010&gt;&lt;hidden-features&gt;" AnswerCount="2" CommentCount="4" FavoriteCount="1" />
  <row Id="8962" PostTypeId="2" ParentId="8954" CreationDate="2010-10-02T11:31:56.377" Score="9" ViewCount="" Body="&lt;p&gt;I think &lt;a href=&quot;http://www.redmine.org/&quot; rel=&quot;nofollow&quot;&gt;Redmine&lt;/a&gt; does everything you mention except invoice generation out of the box.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For invoices, there seems to be a &lt;a href=&quot;http://github.com/edavis10/redmine-invoice-plugin&quot; rel=&quot;nofollow&quot;&gt;plugin&lt;/a&gt; for it (haven't tried it, though). &lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-02T11:42:41.160" LastActivityDate="2010-10-02T11:42:41.160" />
  <row Id="8963" PostTypeId="2" ParentId="8961" CreationDate="2010-10-02T11:34:27.713" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Text Template Transformation Toolkit&lt;/strong&gt; or in short &lt;strong&gt;T4&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a template-based code generation engine that has great uses, it's extensively used in ASP.NET MVC 2 yet you don't know about it if you don't look up how the views are being generated... &lt;a href=&quot;http://www.olegsych.com/2007/12/text-template-transformation-toolkit/&quot; rel=&quot;nofollow&quot;&gt;See a tutorial.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-10-02T11:34:27.713" />
  <row Id="8964" PostTypeId="2" ParentId="8955" CreationDate="2010-10-02T11:36:02.000" Score="1" ViewCount="" Body="&lt;p&gt;What's &quot;too much&quot; tweaks and changes? &lt;a href=&quot;http://en.wikipedia.org/wiki/Software_development_process#Deployment_and_maintenance&quot; rel=&quot;nofollow&quot;&gt;Software maintenance&lt;/a&gt; can take far more time than the initial development of the software. There's nothing wrong with that. To keep organized, use an &lt;a href=&quot;http://en.wikipedia.org/wiki/Issue_tracking_system&quot; rel=&quot;nofollow&quot;&gt;issue tracker&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless, you'll of course want to initially make it as good as you can. For that, nothing beats &lt;a href=&quot;http://en.wikipedia.org/wiki/Software_testing&quot; rel=&quot;nofollow&quot;&gt;testing&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-02T11:36:02.000" />
  <row Id="8966" PostTypeId="1" CreationDate="2010-10-02T11:37:54.053" Score="17" ViewCount="435" Body="&lt;p&gt;Are there ways to unit test your multi-threaded code for race conditions and deadlocks?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To see if they are performing the way they should be...&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2011-01-29T11:14:23.677" Title="How do I unit test multi-threaded code?" Tags="&lt;unit-testing&gt;&lt;multi-threaded&gt;" AnswerCount="8" FavoriteCount="8" />
  <row Id="8968" PostTypeId="1" CreationDate="2010-10-02T11:41:52.877" Score="25" ViewCount="984" Body="&lt;p&gt;In case my child would be interested in what I am doing...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At what age could I reasonably teach my child what programming is?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is your experience with teaching them to program if they want to? Are there great articles about this? &lt;/p&gt;&#xA;" OwnerUserId="666" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2011-03-04T21:45:08.620" LastActivityDate="2011-03-05T00:09:32.113" CommunityOwnedDate="2011-03-04T21:09:34.713" Title="At what age could I reasonably teach my children about programming?" Tags="&lt;learning&gt;&lt;experience&gt;&lt;children&gt;" AnswerCount="26" CommentCount="3" FavoriteCount="6" />
  <row Id="8972" PostTypeId="2" ParentId="8968" CreationDate="2010-10-02T11:59:10.080" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://advice.cio.com/esther_schindler/teaching_kids_to_program&quot; rel=&quot;nofollow&quot;&gt;This&lt;/a&gt; is a good article, I recently came across.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In My opinion, Teach your children to use computer and then teach them programming, instead of gaming.&#xA;This will be an excellent combo.&#xA;The age of twelve is preferably good for this.&lt;/p&gt;&#xA;" OwnerUserId="4522" LastActivityDate="2010-10-02T11:59:10.080" CommunityOwnedDate="2011-03-04T21:09:34.713" CommentCount="2" />
  <row Id="8973" PostTypeId="1" AcceptedAnswerId="9620" CreationDate="2010-10-02T12:00:50.123" Score="16" ViewCount="1224" Body="&lt;p&gt;Which is the programming language you wish you had learned at the very beginning of your programming career?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also mention the reason.&lt;/p&gt;&#xA;" OwnerUserId="4522" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-12-05T18:11:59.943" LastActivityDate="2010-12-05T18:11:59.943" ClosedDate="2010-12-01T12:14:39.320" Title="Programming language you wish you learned first" Tags="&lt;programming-languages&gt;&lt;programming-practices&gt;" AnswerCount="17" CommentCount="12" FavoriteCount="2" />
  <row Id="8975" PostTypeId="2" ParentId="8958" CreationDate="2010-10-02T12:35:21.490" Score="1" ViewCount="" Body="&lt;p&gt;Pierre already said that there are many signs indicating future problems with a project. From my personal experience a few are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;No spec or a faulty/incomplete spec for which no one claims responsibility.&lt;/strong&gt; This means many - if not most - features will end up in the product undocumented and no real thought will be given to their design. You will also most likely get emails out of the blue along the lines of &lt;em&gt;&quot;hey, can you just add [stuff] to your code? it should look like [half-assed mockup]. that should be easy for you. thanks!&quot;&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;No schedule at all or an irregularly updated schedule, e.g. only once per month.&lt;/strong&gt; Seriously. Either that or management decides - without asking you - that your component/screen/project/whatever is done and tested in 4 weeks. Or you're presented a list of 10 features you've never seen before and asked to come up with a good guess on when you could finish them on the spot.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;No thought given to testing or to make the project compatible with automated tests.&lt;/strong&gt; How do you expect to finish a project successfully when nobody has the slightest clue on who should do testing when and how? Perhaps management thinks that &lt;em&gt;testing&lt;/em&gt; equals &lt;em&gt;three consultants clicking around in the GUI for a couple of weeks&lt;/em&gt;. Even worse when the prohibition of automated tests means lots of repetitive unnecessary work for both devs and testers.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;No good tool support and lots of bad practices.&lt;/strong&gt; Your boss tells you to do bugtracking with Excel and Outlook. Your boss tells you to not do automated tests. Your boss tells you that daily builds &lt;em&gt;&quot;just won't happen at this company!&quot;&lt;/em&gt; Your boss tells you to not &lt;em&gt;&quot;waste your time with documentation.&quot;&lt;/em&gt; Several programmers are sharing the same (non-volume) license key for the IDE/a certain important tool.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3453" LastActivityDate="2010-10-02T12:35:21.490" />
  <row Id="8976" PostTypeId="2" ParentId="8917" CreationDate="2010-10-02T12:36:10.130" Score="1" ViewCount="" Body="&lt;p&gt;If you have a private server with ssh access all you need to do is this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;ssh my.server&#xA;mkdir ~/repo.git &amp;amp;&amp;amp; cd ~/repo.git&#xA;git init --bare # bare repository that will serve as backup location&#xA;exit&#xA;# back on your box&#xA;cd $my_local_git_repo&#xA;git remote add --mirror backup ssh://my_server:repo.git&#xA;git config remote.backup.fetch &quot;:&quot; # don't replace our data when&#xA;                                   # accidentally fetching from backup&#xA;git push backup # copy everything new to backup repo&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2272" LastActivityDate="2010-10-02T12:36:10.130" CommentCount="3" />
  <row Id="8977" PostTypeId="2" ParentId="8968" CreationDate="2010-10-02T12:55:14.680" Score="1" ViewCount="" Body="&lt;p&gt;Perhaps you could use &lt;a href=&quot;http://www.swisseduc.ch/compscience/karatojava/download.html&quot; rel=&quot;nofollow&quot;&gt;Kara&lt;/a&gt; as a programming environment instead of a full-blown IDE. Kara is a Java application allowing you to steer a ladybug around on a finite plane with several obstacles by either defining a FSM or actual Java code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That would be imho much better (and more simple to understand) than having the children to maneuver around in Eclipse/VS/Netbeans/MinGW/whatever and get frustrated with preprocessor statements/imports/includes/cryptic error messages/etc. However, it would still teach them how to use functions, loops, conditional statements, recursions, and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fun fact: the university where I studied &lt;em&gt;Computer Engineering&lt;/em&gt; actually used JavaKara in the first &lt;em&gt;Programming&lt;/em&gt; course to give those students who didn't have a clue about programming (yes, there were several of them) a chance of catching up. And it worked pretty well.&lt;/p&gt;&#xA;" OwnerUserId="3453" LastActivityDate="2010-10-02T12:55:14.680" CommunityOwnedDate="2011-03-04T21:09:34.713" CommentCount="1" />
  <row Id="8978" PostTypeId="2" ParentId="8968" CreationDate="2010-10-02T13:18:56.090" Score="5" ViewCount="" Body="&lt;p&gt;I started learning about programming at 8 years with Turbo Pascal and although I didn't program anything useful the concept was clear enough to me to get an idea of what's going on. I guess, you can begin even earlier, but you have to start very simple and you shouldn't put on too much pressure, as this would be more likely to turn the child away.&#xA;Also I think binary logic should be easy enough to be understood pretty soon. Try to adress the topic, and let it be, when the student shows no interest.&lt;/p&gt;&#xA;" OwnerUserId="4298" LastEditorUserId="4298" LastEditorDisplayName="" LastEditDate="2010-10-02T13:35:48.077" LastActivityDate="2010-10-02T13:35:48.077" CommunityOwnedDate="2011-03-04T21:09:34.713" CommentCount="2" />
  <row Id="8979" PostTypeId="2" ParentId="8973" CreationDate="2010-10-02T13:29:08.900" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Assembly&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe that if you don't understand low level operations (what happens in the CPU, the RAM, etc), you can't be a complete programmer.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-02T13:41:09.220" LastActivityDate="2010-10-02T13:41:09.220" CommentCount="9" />
  <row Id="8980" PostTypeId="2" ParentId="8961" CreationDate="2010-10-02T13:31:39.050" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/100420/hidden-features-of-visual-studio-2005-2008&quot;&gt;http://stackoverflow.com/questions/100420/hidden-features-of-visual-studio-2005-2008&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/3319429/hidden-features-of-visual-studio-2010&quot;&gt;http://stackoverflow.com/questions/3319429/hidden-features-of-visual-studio-2010&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-02T13:31:39.050" CommentCount="1" />
  <row Id="8981" PostTypeId="2" ParentId="8955" CreationDate="2010-10-02T13:38:29.537" Score="6" ViewCount="" Body="&lt;p&gt;There is simple rule, that I apply all the time because I tend to be a perfectionist too. And perfectionism leads you to mediocrity.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Set a deadline. Ship at that deadline.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;To prevent your software from having an &lt;strong&gt;unfishined&lt;/strong&gt; state of missing feature that will make it unusable, use this definition of &lt;strong&gt;done&lt;/strong&gt; for each feature you produce. Don't start the next feature until &lt;strong&gt;ALL&lt;/strong&gt; steps are completed:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Develop the feature&lt;/li&gt;&#xA;&lt;li&gt;Test is (80% code coverage)&lt;/li&gt;&#xA;&lt;li&gt;Commit/Integrate&lt;/li&gt;&#xA;&lt;li&gt;Document (both technical &amp;amp; end user documentation)&lt;/li&gt;&#xA;&lt;li&gt;Update Release Note (both in file and maybe for your website including screenshots)&lt;/li&gt;&#xA;&lt;li&gt;Update Installer (if necessary)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I assume you can create a release with one mouse click (using build scripts)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-02T13:38:29.537" />
  <row Id="8982" PostTypeId="2" ParentId="8968" CreationDate="2010-10-02T13:55:25.327" Score="12" ViewCount="" Body="&lt;p&gt;A little warning,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've experienced this myself. At the age of 12 my dad started to explain what programming is, and began teaching it to me. Well, I can tell you I wasn't very pleased with that. I rejected it and never understood anything. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;About 4 years later when I was 16, I came in touch with scripting (I made my first server for a game, which required some skill in scripting) I taught myself from examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scripting/programming got my attention, and I began researching it. (Still wanted no help from my dad)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About 2 years from that, when I was 18 I decided to try and become a Software engineer and began my study of Informatica. (Currently in my third Year)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I am trying to say is, my dad forced me into learning programming which at that point I wasn't interested in, please consider that you might have the same response from your children. Please don't force it, because it will make it worse. (Puberty - I guess)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My answer to your question: try to explain some and watch their reactions. Let that be your guideline.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, I realise that this is a personal story and your kids could be a lot different than me. :)&lt;/p&gt;&#xA;" OwnerUserId="4168" LastEditorUserId="17458" LastEditorDisplayName="" LastEditDate="2011-03-04T21:38:25.630" LastActivityDate="2011-03-04T21:38:25.630" CommunityOwnedDate="2011-03-04T21:09:34.713" CommentCount="3" />
  <row Id="8983" PostTypeId="2" ParentId="8973" CreationDate="2010-10-02T13:56:02.090" Score="32" ViewCount="" Body="&lt;h2&gt;Lisp&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Why: elegance, expressiveness, generality, power of macros, and functional paradigm - as well as any other paradigm of interest.  Shifts one's perspective from instructing the computer step by step, to designing languages.  Still very relevant today, decades after its invention - in fact, experiencing a renaissance, particularly with &lt;a href=&quot;http://clojure.org&quot; rel=&quot;nofollow&quot;&gt;Clojure&lt;/a&gt; - a modern Lisp dialect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead, I learned Basic, Pascal, and C early on, and was so disgusted I lost interest in coding for years.  But such was the state of technology at the time; Lisp wasn't easily and freely available for home computers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check out the magnificent classic, &lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book.html&quot; rel=&quot;nofollow&quot;&gt;The Structure and Interpretation of Computer Programs&lt;/a&gt; and its &lt;a href=&quot;http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/&quot; rel=&quot;nofollow&quot;&gt;video lectures&lt;/a&gt; to (re) experience the magic and fun of programming.&lt;/p&gt;&#xA;" OwnerUserId="2026" LastEditorUserId="2026" LastEditorDisplayName="" LastEditDate="2010-10-09T19:36:02.480" LastActivityDate="2010-10-09T19:36:02.480" CommentCount="3" />
  <row Id="8984" PostTypeId="2" ParentId="8886" CreationDate="2010-10-02T13:58:25.083" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Michael dell (DELL)&lt;/li&gt;&#xA;&lt;li&gt;Marc Zuckerberg (FACEBOOK)&lt;/li&gt;&#xA;&lt;li&gt;Bill Gates (MICROSOFT)&lt;/li&gt;&#xA;&lt;li&gt;Steve Jobs (APPLE)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;None of the above got their diploma&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-02T13:58:25.083" CommunityOwnedDate="2011-03-30T04:35:50.040" CommentCount="13" />
  <row Id="8985" PostTypeId="1" CreationDate="2010-10-02T14:01:58.930" Score="1" ViewCount="585" Body="&lt;p&gt;This semester, I have to choose between Java, C# or C++ Qt as a new programming language to learn. I already had C++ last semester, so I'm quite familiar with it. What do you people recommend? I know that Java is cross-platform, but so is C# if you use Mono. I really want to develop applications for Macintosh and Linux, rather than for Windows. It's so hard to choose, because I never used Java or C#.&lt;/p&gt;&#xA;" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-10-03T01:55:09.073" LastActivityDate="2010-10-03T17:52:47.360" ClosedDate="2010-10-03T13:09:37.953" Title="Java, C# or C++ Qt?" Tags="&lt;java&gt;&lt;c#&gt;&lt;c++&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="8986" PostTypeId="1" AcceptedAnswerId="9008" CreationDate="2010-10-02T14:03:11.033" Score="6" ViewCount="160" Body="&lt;p&gt;This isn't about the typical naming conventions, where to place your comments, should we use regions, etc.  This is about a coding standard that discusses specifics on how a programmer should design his applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stuff like: (on a .NET app and not in the exact wordings)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Make as few classes possible&lt;/li&gt;&#xA;&lt;li&gt;Classes should do as much as their real world counterparts can&lt;/li&gt;&#xA;&lt;li&gt;Modification is better than extension&lt;/li&gt;&#xA;&lt;li&gt;One DLL per category (One library for email functions, one library for File related functions)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Everyone's had their experience with bad code and possibly bad design, but what if you were placed in a team (leaving is not an option) where they had design standards that just don't feel right.  I'm unsure how to respond professionally when I feel like I'm dying inside whenever I'm asked to code this way.&lt;/p&gt;&#xA;" OwnerUserId="1668" LastActivityDate="2010-10-02T15:29:26.580" Title="What to do when you're forced to code under bad coding (design) standards" Tags="&lt;team&gt;&lt;coding-standards&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="8987" PostTypeId="2" ParentId="8966" CreationDate="2010-10-02T14:05:35.580" Score="9" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://research.microsoft.com/en-us/projects/chess/&quot; rel=&quot;nofollow&quot;&gt;CHESS&lt;/a&gt;, a project of Microsoft Research.  Quoting their site:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;CHESS is a tool for finding and reproducing Heisenbugs in concurrent programs. CHESS repeatedly runs a concurrent test ensuring that every run takes a different interleaving. If an interleaving results in an error, CHESS can reproduce the interleaving for improved debugging. CHESS is available for both managed and native programs.&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3223" LastActivityDate="2010-10-02T14:05:35.580" CommentCount="2" />
  <row Id="8988" PostTypeId="1" AcceptedAnswerId="9005" CreationDate="2010-10-02T14:05:45.610" Score="7" ViewCount="157" Body="&lt;p&gt;I don't know if it's just with me, but when I start refactoring some code I waste a lot time doing that and it never ends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every time I read the code again, I find something that can be improved, code refactoring is like my brain into a infinite loop and the end conditional is reached randomly with no satisfaction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, how much time should I dedicate to refactoring my code?&lt;/p&gt;&#xA;" OwnerUserId="2369" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-10-02T15:17:59.030" LastActivityDate="2010-10-02T15:17:59.030" Title="How much time should I dedicate to refactoring my code?" Tags="&lt;self-improvement&gt;&lt;time-management&gt;&lt;refactoring&gt;" AnswerCount="1" FavoriteCount="2" />
  <row Id="8990" PostTypeId="1" CreationDate="2010-10-02T14:13:01.980" Score="3" ViewCount="165" Body="&lt;p&gt;Hi, we are having a weekend hackathon at our local LUG. What are some of the interesting projects we can start on for the 48-hour event?&lt;/p&gt;&#xA;" OwnerUserId="26" LastEditorUserId="26" LastEditorDisplayName="" LastEditDate="2010-10-03T17:04:46.287" LastActivityDate="2010-10-03T17:28:48.993" Title="Interesting projects for a hackathon?" Tags="&lt;project&gt;&lt;python&gt;" AnswerCount="2" FavoriteCount="2" />
  <row Id="8991" PostTypeId="2" ParentId="1338" CreationDate="2010-10-02T14:18:46.130" Score="12" ViewCount="" Body="&lt;p&gt;Almost forgot this one:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quote from a manager:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Do not fix or document any bugs of issues you&#xA;  find in your own code. The customer&#xA;  will pay us to identify and fix them&#xA;  over the next few years.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This wasn't for consumer software, but custom for a single large organization. Needless to say, the customer did pay for years afterwards. May seem trivial, but trying to ignore bugs is harder than finding them.&lt;/p&gt;&#xA;" OwnerUserId="801" LastActivityDate="2010-10-02T14:18:46.130" CommunityOwnedDate="2010-10-02T14:18:46.130" CommentCount="1" />
  <row Id="8992" PostTypeId="2" ParentId="8958" CreationDate="2010-10-02T14:19:27.253" Score="0" ViewCount="" Body="&lt;p&gt;Read &quot;The Universal Elixir, and Other Computing Projects Which Failed&quot;, by Robert Glass.  It contains a huge selection of stories of projects that failed, and why.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-10-02T14:19:27.253" />
  <row Id="8993" PostTypeId="2" ParentId="8990" CreationDate="2010-10-02T14:24:36.997" Score="2" ViewCount="" Body="&lt;p&gt;Instead of having projects laid out as part of the agenda, why not have everybody put their ideas out there, and vote them up.  And people form teams around the ideas.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-10-02T14:24:36.997" />
  <row Id="8994" PostTypeId="2" ParentId="8956" CreationDate="2010-10-02T14:27:00.693" Score="6" ViewCount="" Body="&lt;p&gt;While I don't agree with everything Joel says, his &quot;&lt;a href=&quot;http://www.joelonsoftware.com/articles/CamelsandRubberDuckies.html&quot; rel=&quot;nofollow&quot;&gt;Camels and Rubber Duckies&lt;/a&gt;&quot; article on this topic is a must-read, IMO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The basic advice is &quot;charge what people will be willing to pay&quot;, or:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If you can't be bothered to read this, just charge $0.05 for your software, unless it does bug tracking, in which case charge $30,000,000 for it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-02T14:27:00.693" />
  <row Id="8996" PostTypeId="2" ParentId="1338" CreationDate="2010-10-02T14:31:15.290" Score="3" ViewCount="" Body="&lt;p&gt;One more blast from my past.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quote from company owner:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;There will be no code written using interpretive languages because I lost 25 million on that {expletive} project written in Java.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The Java project was a stock trading system designed to handle a few dozen stocks, that was now being used to process thousands. Instead of addressing the design flaws or poor hardware, the whole company was forced to convert all non C/C++ applications to C/C++, and all new development had to be in C/C++. Interpretive languages meant anything not compiled, and the owner only considered Assembler, C and C++ compiled. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For an 800 person company, in which most of the code was in Java and Perl, this meant the whole company spent most of their time over the next couple of years rewriting perfectly fine code in C/C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Funny enough, some twenty years before this fiasco, I was at another company in which the tech lead decided that our sorting logic (it was a Bubble Sort) needed to be recoded in assembler instead of being replaced by Quick Sort because -- &lt;em&gt;Algorithms do not improve performance. The only way to improve performance was to rewrite the same logic in assembler.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In both cases, I left shortly after the dictates came down.&lt;/p&gt;&#xA;" OwnerUserId="801" LastActivityDate="2010-10-02T14:31:15.290" CommunityOwnedDate="2010-10-02T14:31:15.290" CommentCount="2" />
  <row Id="8997" PostTypeId="2" ParentId="8890" CreationDate="2010-10-02T14:37:38.593" Score="2" ViewCount="" Body="&lt;p&gt;If it's a &quot;skunkworks&quot; project as some others have guessed, I would tell Colfax (I love the codenames :p) that you don't want to take the time off, but that you &lt;strong&gt;do&lt;/strong&gt; want to be in the meeting when the (presumably successful) project is presented to Colfax's bosses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I wouldn't tell Colfax, but the reason I would do this is because you want to make sure that at least some of the credit for doing the work goes to &lt;em&gt;you&lt;/em&gt;, not to Colfax. Skunkworks projects are common, where people work on prototypes or proofs-of-concepts in their own time because their boss doesn't think it's worth the effort. If this is what Colfax is doing, and he's just getting you to do the work instead of doing it himself, then you don't want him to take your work and get all of the credit for it (he should get some for coming up with the idea in the first place, perhaps).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you need to use your best judgement. If you think the project is iffy (doesn't sound like it) then definitely stay away. But if it's &lt;em&gt;really&lt;/em&gt; going to benefit the company as a whole, then don't be scared to take a risk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It all depends on the precise nature of the work, of course...&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-02T14:37:38.593" />
  <row Id="8998" PostTypeId="2" ParentId="8917" CreationDate="2010-10-02T14:38:48.310" Score="0" ViewCount="" Body="&lt;p&gt;For $7 US per month, you can get a GitHub account that allows private repositories. At this price, you can nominate one collaborator for each such private repo. Excellent for tiny (one- or two-person) projects or for shoestring operations. There are other slightly more expensive plans that allow more collaborators. Open-source repos are free and unrestricted, even when you're on one of the payed service levels.&lt;/p&gt;&#xA;" OwnerUserId="1301" LastActivityDate="2010-10-02T14:38:48.310" />
  <row Id="9000" PostTypeId="2" ParentId="8968" CreationDate="2010-10-02T14:55:35.840" Score="9" ViewCount="" Body="&lt;p&gt;What Age ?? Please let your child figure out what he want's to do with his life. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If he is interested then first introduce him to solving theoretical problem's and then see if he is interested in moving to Programming. I would say late teen's as outside exposure is a must for any individual.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-02T14:55:35.840" CommunityOwnedDate="2011-03-04T21:09:34.713" CommentCount="2" />
  <row Id="9002" PostTypeId="2" ParentId="8968" CreationDate="2010-10-02T15:04:52.703" Score="29" ViewCount="" Body="&lt;p&gt;I taught my son VB, followed by VB.NET and C#, when he was in Grade 7 (about 13 years old.) He enjoyed making simple games and sharing them with his friends. He was then able to pitch in with some family business tasks, fixing annoying bugs that were kicking around in internal-use tools that we never had time to fix. When he was 14 he was contributing code to client projects. But then he got interested in skateboarding, snowboarding and playing guitar, so his programming dwindled. I don't mind, I like to expose my kids to lots of options.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interestingly he said that the first few months of playing video games once he had learned to program were a little mindblowing; he couldn't stop imagining the algorithms and data structures that were happening while he played - this would be a simple if, they must have a loop here, they use a random number to decide whether to open the door or not, and so on. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given his career plans at the moment I doubt he will ever be paid to program but I am confident that it has helped him already and will continue to do so. Also it was fun to be able to share with him what we do all day.&lt;/p&gt;&#xA;" OwnerUserId="285" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2010-10-03T13:59:56.567" LastActivityDate="2010-10-03T13:59:56.567" CommunityOwnedDate="2011-03-04T21:09:34.713" CommentCount="3" />
  <row Id="9003" PostTypeId="2" ParentId="8968" CreationDate="2010-10-02T15:06:39.773" Score="2" ViewCount="" Body="&lt;p&gt;I was 3 or 4 when I watched my dad write programs into our Commodore 128.  I didn't really know what he was doing.  He didn't either really, the only way you could get some games back then was by buying the book and typing in the code - so he knew about as much as I did when I started programming at Herzing College 7 years ago when you could pretty much plagarize WROX books and get an A in the class.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Later, I'd watch my brother program (Basic, VB and C++) - he made a C++ mouse version of Vice (the game where you go to Watts to get some Ludes) That may not have been such a good experience.  He was probably 14 or 15 and I was 9 or 10.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you need to have a good deal of abstract reasoning to know how to program.  I didn't develop that until I was about 16.  My brother developed it when he was 13 or 14.  If your kids like to read books at that age, then they'll be able to program.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, watch what your kids are programming like you'd watch what they read or watch on TV.  My folks certainly didn't know that my brother was programming something like Vice Deluxe 2.0 - he died last year of a drug overdose.  Not saying anything about cause and effect, just saying be careful - being able to shape your reality through programming is quite a lot for a kid to absorb. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-02T15:06:39.773" CommunityOwnedDate="2011-03-04T21:09:34.713" />
  <row Id="9004" PostTypeId="2" ParentId="8968" CreationDate="2010-10-02T15:12:15.073" Score="1" ViewCount="" Body="&lt;p&gt;If you're homeschooling check out: &lt;a href=&quot;http://www.motherboardbooks.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.motherboardbooks.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also Seton Homeschooling uses for it's 9th grade curriculum:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Python Programming: An Introduction to Computer Science&lt;/li&gt;&#xA;&lt;li&gt;Visual Basic 2005 Express Edition Programming&lt;/li&gt;&#xA;&lt;li&gt;Understanding Computers: Today and Tommorrow&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-02T15:12:15.073" CommunityOwnedDate="2011-03-04T21:09:34.713" />
  <row Id="9005" PostTypeId="2" ParentId="8988" CreationDate="2010-10-02T15:13:31.140" Score="6" ViewCount="" Body="&lt;p&gt;If you treat refactoring as its own thing, rather than as part of the process of development, then it can become never ending. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you follow the test driven development approach of red, green, refactor, then you typically won't have to spend a lot of time refactoring for two reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;You'll be refactoring as you go, so it shouldn't become a mammoth task, just another small step in the TDD cycle.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The internal &quot;pressure&quot; to get the next test written will keep your refactoring efforts to a sensible level.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If you are working with legacy code, then follow Uncle Bob's &quot;Boy scout rule.&quot; Timebox yourself to a short time period (say, 30 minutes) and make your goal to check in the code in a cleaner state than it was before. Each time you have to touch the code, you will leave it slightly better. Over time, the most modified code will be the most readable and well factored in your codebase.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-10-02T15:13:31.140" />
  <row Id="9006" PostTypeId="1" AcceptedAnswerId="9022" CreationDate="2010-10-02T15:17:03.997" Score="10" ViewCount="905" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Functional_programming&quot; rel=&quot;nofollow&quot;&gt;Functional programming&lt;/a&gt; is one of the oldest programming paradigms. However it isn't used much in the industry compared to more popular paradigms. But it have largely been emphasized in academia.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's your strongest opinion against functional programming?&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-11-07T19:13:47.390" Title="What's your strongest opinion against functional programming?" Tags="&lt;functional-programming&gt;&lt;paradigms&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="2" />
  <row Id="9007" PostTypeId="1" AcceptedAnswerId="9016" CreationDate="2010-10-02T15:22:51.957" Score="5" ViewCount="219" Body="&lt;p&gt;I have been running my own home-based server for ages for my own personal code, and have tried one system or another (SVN, VSS, etc). But recently, I've enjoyed having some more precious (no source code) data off-site, without having to constantly worry about backups in case of hardware failure, using services like Dropbox, Skydrive, Google apps, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This has made me want to do the same with my source code for various projects, however, I have a few worries about them. Namely, how secure is my code from curious/prying eyes, and do I need to possibly have a fail-safe service, in case one goes belly up overnight, or simply has massive data issues? This wasn't actually a concern until I read someone's &lt;a href=&quot;http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2010/08/30/mozy-tisk-tisk.aspx&quot; rel=&quot;nofollow&quot;&gt;experiences with Mozy.com&lt;/a&gt;, which while not a code repository service, data storage is data storage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do use/recommend such a service, which would you recommend? I'm open to using any system, be it Mercurial, SVN, GIT, TFS, etc, so long as it has a Windows and a Mac client option (web-based would be a very nice &quot;bonus&quot;). And most importantly, why?&lt;/p&gt;&#xA;" OwnerUserId="146" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-10-12T01:37:05.903" LastActivityDate="2010-10-12T01:37:05.903" Title="How do you feel about using online Version Control Systems?" Tags="&lt;version-control&gt;&lt;project-hosting&gt;&lt;services&gt;" AnswerCount="2" FavoriteCount="3" />
  <row Id="9008" PostTypeId="2" ParentId="8986" CreationDate="2010-10-02T15:29:26.580" Score="9" ViewCount="" Body="&lt;p&gt;I don't know who said this originally, but when faced with a situation that you don't like, there are only three options:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Change it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Accept it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Leave it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Do you have the energy and influence within the company to make the mammoth effort to try the first option? Do you want to write better code by stealth and risk being fired?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you accept the situation and write code to those &quot;standards?&quot; My advice, don't do this unless you really need the paycheck. It will slowly chip away at your morale.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which leaves option 3. Even if you need to accept the situation in the short term, you should start looking elsewhere for another job.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-10-02T15:29:26.580" />
  <row Id="9009" PostTypeId="2" ParentId="8968" CreationDate="2010-10-02T15:38:56.470" Score="2" ViewCount="" Body="&lt;p&gt;Depends on the kid. Kids are ready when they are ready. I would start with teaching them the basics of computing--how to use the OS, MS-Word, some web-skills (how to find stuff, etc). then, let the kid decide if she wants to get more advanced.  If they have no interest in programming, then don't force it on them--this would be the worst thing you could ever do.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-02T15:38:56.470" CommunityOwnedDate="2011-03-04T21:09:34.713" CommentCount="2" />
  <row Id="9010" PostTypeId="2" ParentId="5215" CreationDate="2010-10-02T15:40:35.963" Score="0" ViewCount="" Body="&lt;p&gt;Tech Fests are good, and usually multi-platform, multi-disciplinary. You would have to find a local one, since I haven't found a listing of national or international ones, but in my area, we have &lt;a href=&quot;http://www.dallastechfest.com/&quot; rel=&quot;nofollow&quot;&gt;Dallas Tech Fest&lt;/a&gt; and &lt;a href=&quot;http://www.houstontechfest.com/&quot; rel=&quot;nofollow&quot;&gt;Houston Tech Fest&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;User groups are another good starting point, since they will usually have information on upcoming smaller events, or even large ones, without you having to find them or know of them by name. Think of your user groups as a Google/StackOverflow mashup of technology specific goodness.&lt;/p&gt;&#xA;" OwnerUserId="146" LastActivityDate="2010-10-02T15:40:35.963" />
  <row Id="9011" PostTypeId="2" ParentId="8958" CreationDate="2010-10-02T15:53:00.290" Score="0" ViewCount="" Body="&lt;p&gt;Just some that I've experienced:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Time allocated in the plan for testing in reality is just slack for when the coding runs late.  Everybody knows that there won't really be any proper testing.&lt;/li&gt;&#xA;&lt;li&gt;Technology decisions are guided by overly influential vendors.&lt;/li&gt;&#xA;&lt;li&gt;Technology decisions are based on what the technical people want to learn, meaning immature technology is used rather than the safe, boring option.&lt;/li&gt;&#xA;&lt;li&gt;People are allocated to the project to meet some headcount target rather than because they provide necessary skills.  This leads to the double whammy of non/negative-contributing team members &lt;em&gt;and&lt;/em&gt; skills shortages.&lt;/li&gt;&#xA;&lt;li&gt;The unrealistic deadline depends on everything going more smoothly than any software project in history.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="25" LastEditorUserId="25" LastEditorDisplayName="" LastEditDate="2010-10-02T17:06:59.490" LastActivityDate="2010-10-02T17:06:59.490" />
  <row Id="9013" PostTypeId="1" CreationDate="2010-10-02T15:56:25.070" Score="8" ViewCount="252" Body="&lt;p&gt;My team uses a Kanban system for tracking day-to-day progress and it's worked out really well for understanding progress on features (captured as user stories).  We have largely allowed our system design to emerge as we develop features which worked out well until recently.  In the last two week we've had several discussions about architectural trade-offs specifically related to performance and modifiability quality attributes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think what's happening is as we implement features and design the system, we're implicitly making decisions about the architecture but not considering those decisions in terms of our known quality attribute requirements.  It would be really great if I could track/capture/visually depict how these important design decisions are being made so team members have a better chance to not create additional tension with in the system's architecture as it is being implemented.  And of course, to complicate things more, features on our board aren't &lt;em&gt;exclusively&lt;/em&gt; functional and sometimes hide architectural complexity!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can I track progress on quality attributes (or other architecturally relevant decisions) visually on my team's kanban?&lt;/p&gt;&#xA;" OwnerUserId="3966" LastEditorUserId="3966" LastEditorDisplayName="" LastEditDate="2010-10-11T00:55:37.337" LastActivityDate="2010-11-29T01:40:05.023" Title="How can I track quality attributes on my team's Kanban?" Tags="&lt;agile&gt;&lt;tracking&gt;&lt;architecture&gt;&lt;kanban&gt;&lt;quality-attributes&gt;" AnswerCount="3" FavoriteCount="0" />
  <row Id="9014" PostTypeId="2" ParentId="8968" CreationDate="2010-10-02T15:56:30.153" Score="2" ViewCount="" Body="&lt;p&gt;If they're interested, very early on.  I started &quot;programming&quot; on the Commodore 64 when I was 8-9 years old.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few key points:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;I was copying programs out of books and my typing skills sucked.  That was very, very frustrating as the pace was very slow.  As others have mentioned, you have to start with the computer skills.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;At that age, this type of activity can be very, very dull.  Definitely try to make it interesting, because even if they have an interest for programming they can get bored/frustrated with it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Look into visual programming environments.  I'm sure there have to be some around still.  You know the kind: you drag blocks of varying capabilities onto a field and connect them together.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I was talking to a friend about this topic and he mentioned a product for the Xbox called Kudo Game Lab.  it's a visual programming language for creating games.  I know nothing about it, but I thought I'd suggest looking into it (assuming you have an Xbox).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.sunmetablog.co.uk/?p=126&quot; rel=&quot;nofollow&quot;&gt;http://www.sunmetablog.co.uk/?p=126&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://everyjoe.com/technology/create-your-own-xbox-games/&quot; rel=&quot;nofollow&quot;&gt;http://everyjoe.com/technology/create-your-own-xbox-games/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apparently, a release candidate version for the PC is now available, for free: &lt;a href=&quot;http://fuse.microsoft.com/project/kodu.asp&quot; rel=&quot;nofollow&quot;&gt;http://fuse.microsoft.com/project/kodu.asp&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="149" LastEditorUserId="149" LastEditorDisplayName="" LastEditDate="2010-10-03T05:34:15.393" LastActivityDate="2010-10-03T05:34:15.393" CommunityOwnedDate="2011-03-04T21:09:34.713" CommentCount="2" />
  <row Id="9015" PostTypeId="2" ParentId="8020" CreationDate="2010-10-02T16:02:51.227" Score="1" ViewCount="" Body="&lt;p&gt;SketchFlow in Blend is a neat idea:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The styles reinforce the idea it's a prototype to stakeholders to manage expectations&lt;/li&gt;&#xA;&lt;li&gt;If you know Blend, you know SketchFlow - there's just one extra thin layer on top that allows you to create &quot;screens&quot; and navigate them easily.&lt;/li&gt;&#xA;&lt;li&gt;Since it's all in real XAML, you can enable interactivity and spend time developing real features that are crucial to the look-and-feel or functionality of the app, like important animated transitions or DataTemplate prototypes (Blend's sample data functionality is great for this). It's got built-in behaviors that plug into the &quot;screen-map&quot; layer of Blend - making a button or link navigate to another screen is as simple as drag-and-drop and selecting a value from a dropdown. &lt;/li&gt;&#xA;&lt;li&gt;It's very tough to reuse a SketchFlow prototype and turn it into a real app - you can usually recycle some visual layouts but only at a basic level. I consider this to be a good thing, because prototyping doesn't put you in the right state of mind for building a real app.&lt;/li&gt;&#xA;&lt;li&gt;You can export the prototype to a self-contained &quot;player&quot; app that only needs Silverlight to run. The player enables all the interactivity and lets you navigate through the app's screens even if you haven't wired up interactivity, and stakeholders can provide feedback through notes or ink markup right on the prototype.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The main problem with it is that it's not purely visual drag-and-drop like Balsamiq, PowerPoint prototype tools or other visual tools, so you need to know at least the basics of Blend/XAML.&lt;/p&gt;&#xA;" OwnerUserId="3044" LastActivityDate="2010-10-02T16:02:51.227" />
  <row Id="9016" PostTypeId="2" ParentId="9007" CreationDate="2010-10-02T16:05:09.337" Score="5" ViewCount="" Body="&lt;p&gt;The advantage of a distributed system (Git, Mercurial, Bazaar) is that even if your remote host does disappear completely, you'll still have the full repository history locally, from which you can start again elsewhere.  With something like Subversion, if you lose the server you'll only have the working copy, which is better than nothing but means you've lost the project history.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use &lt;a href=&quot;http://github.com&quot; rel=&quot;nofollow&quot;&gt;GitHub&lt;/a&gt; for open source projects and I'm very happy with it.  I don't use GitHub for commercial projects as their pricing gets expensive quickly for the way I use Git (lots of small repositories), so I host my own server using Gitosis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are similar alternatives for Mercurial (&lt;a href=&quot;http://bitbucket.org/&quot; rel=&quot;nofollow&quot;&gt;BitBucket&lt;/a&gt;) and Bazaar (&lt;a href=&quot;https://launchpad.net/&quot; rel=&quot;nofollow&quot;&gt;Launchpad&lt;/a&gt;).&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-10-02T16:05:09.337" CommentCount="1" />
  <row Id="9017" PostTypeId="2" ParentId="6639" CreationDate="2010-10-02T16:12:36.270" Score="0" ViewCount="" Body="&lt;p&gt;I use the Bose TriPort headphones.  Cheaper than the Quiet Comfort, lightweight and they do block a fair amount of sound. Also, there's less of a concern about sound pressure levels than eaerbuds, assuming you don't crank it up to 11.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/9Hier.jpg&quot; alt=&quot;Bose TriPort Headphones&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-10-02T16:12:36.270" />
  <row Id="9018" PostTypeId="2" ParentId="8416" CreationDate="2010-10-02T16:22:44.570" Score="0" ViewCount="" Body="&lt;p&gt;This is the same problem as with all keywords in programming languages. But the problem is easy, just chose another name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How about this?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private void dataExport() {&#xA;}&#xA;private void dataImport() {&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-02T16:22:44.570" />
  <row Id="9019" PostTypeId="2" ParentId="6639" CreationDate="2010-10-02T16:24:32.543" Score="2" ViewCount="" Body="&lt;p&gt;Might not be the most practical purchase =)    But you will be the coolest looking Dev in your Cube Farm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/DpcwL.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.trittontechnologies.com/index.php/products/gaming_audio_technology/ax-pro/&quot; rel=&quot;nofollow&quot;&gt;http://www.trittontechnologies.com/index.php/products/gaming_audio_technology/ax-pro/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-10-02T16:24:32.543" />
  <row Id="9020" PostTypeId="2" ParentId="2240" CreationDate="2010-10-02T16:40:29.350" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://sourcemaking.com/&quot; rel=&quot;nofollow&quot;&gt;Design Patterns&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This tutorial site contains following sub-sections&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Intent of each design pattern&lt;/li&gt;&#xA;&lt;li&gt;Real World Structure for the design pattern&lt;/li&gt;&#xA;&lt;li&gt;A Problem statement&lt;/li&gt;&#xA;&lt;li&gt;Detailed discussion on the problem&lt;/li&gt;&#xA;&lt;li&gt;Checklist on how to arrive at a pattern&lt;/li&gt;&#xA;&lt;li&gt;Rules of thumb while arriving at pattern.&lt;/li&gt;&#xA;&lt;li&gt;Code snippets for the design pattern which includes C#, C++, Delphi, Java and PHP&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This site also contains guide on Anti Patterns, UML and Refactoring.&lt;/p&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-10-02T16:40:29.350" CommentCount="1" />
  <row Id="9021" PostTypeId="2" ParentId="9006" CreationDate="2010-10-02T16:43:26.800" Score="2" ViewCount="" Body="&lt;p&gt;I don't believe you should be forced to write functionally pure code &lt;em&gt;(Haskell, although I still like the language.)&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-10-02T16:43:26.800" CommentCount="11" />
  <row Id="9022" PostTypeId="2" ParentId="9006" CreationDate="2010-10-02T16:52:25.803" Score="21" ViewCount="" Body="&lt;p&gt;The problem is that most common code inherently involves state -- business apps, games, UI, etc. There's no problem with &lt;em&gt;some&lt;/em&gt; parts of an app being purely function, in fact most apps could benefit in at least one area. But forcing the paradigm all over the place feels unintuitive.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-10-02T16:52:25.803" CommentCount="5" />
  <row Id="9023" PostTypeId="2" ParentId="9006" CreationDate="2010-10-02T16:54:48.687" Score="5" ViewCount="" Body="&lt;p&gt;I think that the reason functional programming isn't used very widely is because it gets in your way too much.  It's hard to take a serious look at, for example, Lisp or Haskell, without saying &quot;this whole language is one big abstraction inversion.&quot;  When you establish baseline abstractions that the coder can't get beneath when necessary, you establish things that the language simply can't do, and the more functional the language is, the more of these it tends to have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take Haskell, for example.  In the name of functional purity, you're required to use brain-breaking abstraction inversions that nobody understands in order to manage state and I/O, &lt;em&gt;the two most fundamental parts of any and every computer program that interacts with anything!&lt;/em&gt;  That gets old fast.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-02T16:54:48.687" CommentCount="2" />
  <row Id="9026" PostTypeId="1" AcceptedAnswerId="9033" CreationDate="2010-10-02T17:08:38.487" Score="10" ViewCount="458" Body="&lt;p&gt;After reading a lot on this forums, it seems that my current employer isn't a really great place to work and I'm wondering if I should move on, or stay a bit longer and then leave so it looks better on my resume (Only been here 3 months).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things that I'm worried about with this company&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A completely non technical manager with little management experience leading this team. Fine in a bigger company but we're a small team (&amp;lt; 10 employees)&lt;/li&gt;&#xA;&lt;li&gt;Alright hardware but no choice of OS and we can't get any decent software bought for us&lt;/li&gt;&#xA;&lt;li&gt;Terrible salary and no overtime pay, not great benefits&lt;/li&gt;&#xA;&lt;li&gt;Mandatory overtime. If I didn't work tons of overtime nothing would be done in time and I'd get in trouble&lt;/li&gt;&#xA;&lt;li&gt;Stuck fixing old code which is terribly written, unstable, undocumented and full of bugs. We don't use it anymore but lots of clients to maintain&lt;/li&gt;&#xA;&lt;li&gt;We must track ALL of our time, billable, non-billable and internal&lt;/li&gt;&#xA;&lt;li&gt;No bug database (I'm trying to implement one, hard since I have no time since I'm working crazy overtime and I want some time to myself when I get it&lt;/li&gt;&#xA;&lt;li&gt;I'm the only programmer&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So I work for a web development company that works with Joomla quite a bit, and I'm a PHP/Python guy with Java/C++ experience and a willingness to learn many other languages. I've also got experience in technical but non programming related fields such as System Administration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm wondering, should I call it quits, wait a while longer so I can use the job on my resume, or try and fix the problems we have?&lt;/p&gt;&#xA;" OwnerUserId="3382" LastEditorUserId="37" LastEditorDisplayName="" LastEditDate="2010-10-02T19:03:26.163" LastActivityDate="2010-10-02T23:53:55.360" Title="I am in a rather difficult work situation. Should I stay or should I go?" Tags="&lt;jobs&gt;&lt;management&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="4" />
  <row Id="9027" PostTypeId="2" ParentId="8958" CreationDate="2010-10-02T17:11:45.493" Score="0" ViewCount="" Body="&lt;p&gt;The user being implementing &quot;Scope Creep&quot; within the first day of Design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nothing worse than the user coming to you the day you start designing and asking if you can include somehting that wasn't in the original layout.&lt;/p&gt;&#xA;" OwnerUserId="4310" LastActivityDate="2010-10-02T17:11:45.493" />
  <row Id="9029" PostTypeId="2" ParentId="9006" CreationDate="2010-10-02T17:21:58.853" Score="2" ViewCount="" Body="&lt;p&gt;My thoughts on functional programming (and probably others too): It's very interesting and I'd love to learn it someday. Unfortunately, I'm too busy doing &lt;em&gt;real work&lt;/em&gt; now.&lt;/p&gt;&#xA;" OwnerUserId="1303" LastActivityDate="2010-10-02T17:21:58.853" CommentCount="4" />
  <row Id="9030" PostTypeId="1" CreationDate="2010-10-02T17:23:19.033" Score="2" ViewCount="304" Body="&lt;p&gt;As part of my getting better health plan, I've decided to cut back on sugar intake.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The standard belief is that sugar acts as a stimulant and boosts your ability to churn out code, so good programmers take a lot of sugar...and so on. Is this a really a fact? Do you have any personal experience regarding this? &lt;/p&gt;&#xA;" OwnerUserId="932" LastActivityDate="2010-10-15T20:45:22.707" ClosedDate="2010-10-19T05:06:19.220" Title="Does taking a lot of sugar really helps to code or is it a myth?" Tags="&lt;productivity&gt;&lt;health&gt;" AnswerCount="8" CommentCount="2" />
  <row Id="9031" PostTypeId="2" ParentId="9030" CreationDate="2010-10-02T17:27:27.067" Score="0" ViewCount="" Body="&lt;p&gt;Depends on the person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, lack of sleep is my biggest trigger. Second is alcohol. Sugar is more of a detriment.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-10-02T17:27:27.067" />
  <row Id="9032" PostTypeId="2" ParentId="485" CreationDate="2010-10-02T17:29:37.160" Score="2" ViewCount="" Body="&lt;p&gt;I don't know. But I know its often not what I'd imagined it would be.&lt;/p&gt;&#xA;" OwnerUserId="3111" LastActivityDate="2010-10-02T17:29:37.160" />
  <row Id="9033" PostTypeId="2" ParentId="9026" CreationDate="2010-10-02T17:29:44.540" Score="11" ViewCount="" Body="&lt;p&gt;You can see the current situation as an opportunity to prove you are a great problem solver. Being the only programmer give you much more power to change for the better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imagine yourself in an interview for your next job:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Scenario 1, you quit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I had to quit because my manager sucked (he was not technical), we did not have bug tracking system, I had to fix crappy old code, and we had mandatory overtime! What a crappy job. I hope your are good manager, will not ask me to do overtime, will pay me premium, will not ask me to track my time! &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Scenario 2, you wait&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I hoped that my previous crappy company would evolve, but they are a bunch of looser. No bug database, crappy code, manager that sucked, bad salary. Waited to a year or two, but nothing changed. I want to be hired by a great company like you that will not stay in the status quo. You will pay me premium isn't ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Now consider the following:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Scenario 3, you try to fix things&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;My previous job was challenging, my manager was not technical so I helped him understand how developers thinks and the benefits of proper OSes and tools. There were no bug tracking database, so I proposed to install one and everybody started using it. We had some old code to maintain, so I decided to go ahead and started to refactor it. That was not easy, I had to do all of this with a very low salary, and had to do lot of overtime, but at the end, I contributed to change things. I'm sure your company has chalenging problems to solve, and I will be more than happy to contribute to your success !&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-02T18:29:41.623" LastActivityDate="2010-10-02T18:29:41.623" CommentCount="7" />
  <row Id="9034" PostTypeId="2" ParentId="9030" CreationDate="2010-10-02T17:33:59.827" Score="2" ViewCount="" Body="&lt;p&gt;Short time (minutes) yes, you wake up. Long time (hours) no, it's not good for your health. It's better to eat food instead of eating sweets.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-02T17:33:59.827" CommentCount="0" />
  <row Id="9035" PostTypeId="2" ParentId="8968" CreationDate="2010-10-02T17:38:16.197" Score="24" ViewCount="" Body="&lt;p&gt;As I wrote &lt;a href=&quot;http://stackoverflow.com/questions/2462351/how-do-the-young-start-programming-nowadays/2463035#2463035&quot;&gt;in this answer on Stack Overflow&lt;/a&gt;, I started &lt;strong&gt;writing code in VB6 when I was 7&lt;/strong&gt;. &lt;strong&gt;With the help of my dad&lt;/strong&gt;, I was able to write my first app: a word-search solver.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next, I moved into learning HTML and web design. However, when I was 9 or 10, we had a guest who was a C# programmer. He showed me some C#, and I was very intrigued by the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few summers ago, I took a C# course through the extension program of the University of California, San Diego. I also started reading programming blogs and books, especially Joel Spolsky's books and blog, and began trying to learn good development techniques. Joel on Software eventually led me to Stack Overflow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My parents hooked me up to write a few data collection and analysis programs for a local non-profit recently. Also, I've started a programming club at my school, done some open source work, and more. I spent the summer working with ASP.NET MVC, and I'm very close to releasing a portal for musicians, as well as a portal for one of the newspapers at my school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure how he did it, but my dad really got me intrigued in programming. At the time of this writing, &lt;strong&gt;I'm 13 years old&lt;/strong&gt;, and I feel like I've come a long way in the past 6 years.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;The only tip that I have is that you should try to start with a small project that your child is interested in. My dad started with building a word-search solver with me, but you might want to focus on something more graphic-oriented. For example, you could build a game with XNA Game Studio and C# - I'm sure that your child will be intrigued by that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck and have fun!&lt;/p&gt;&#xA;" OwnerUserId="1333" LastActivityDate="2010-10-02T17:38:16.197" CommunityOwnedDate="2011-03-04T21:09:34.713" CommentCount="8" />
  <row Id="9036" PostTypeId="2" ParentId="9030" CreationDate="2010-10-02T17:48:02.877" Score="5" ViewCount="" Body="&lt;p&gt;Sugar's not so great, at least in refined form. You will have a brief rush of energy, and then you will crash, and feel horrible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I see Wikipedia refers to this as &quot;a supposed sense of fatigue&quot;. Clearly they haven't seen what happens to my children after one too many sweets. I also feel the crash after, say, a bowl of instant ramen - unless I add protein to the meal.)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-10-02T17:54:16.400" LastActivityDate="2010-10-02T17:54:16.400" />
  <row Id="9037" PostTypeId="2" ParentId="8710" CreationDate="2010-10-02T18:21:41.303" Score="0" ViewCount="" Body="&lt;p&gt;Management: &quot;Give me a good reason why we should let them use their mp3 players?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You: &quot;Because they want to.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Management: &quot;Uhhh?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You: &quot;If you're going to be assessing them on anything other than what they're getting done: you're doing it wrong.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a little &lt;em&gt;forward&lt;/em&gt; but it's true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, it's a distraction to me, but my wife can't get anything done without background noise.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-02T18:21:41.303" />
  <row Id="9038" PostTypeId="2" ParentId="9026" CreationDate="2010-10-02T18:22:25.633" Score="8" ViewCount="" Body="&lt;p&gt;If you're the only programmer, then it sounds like you should have a fair amount of pull to tell them &quot;shape up or I'm shipping out.&quot; Of course, you need to do it diplomatically. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mostly though, I would first advise a sit down with who ever is in charge. Fact is that programmers that spend too much time coding rarely do a good job and the problems tend to enter a feedback cycle where it just gets worse and worse. That said, 45-50 hrs a week is probably sustainable (at least in my experience) and seems to be about what most folks in IT in the US consider &quot;normal&quot;. Any amount of poking around on the internet will turn up lots of info on what a healthy and sustainable amount of hours are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IF they have you tracking time, then make sure you are tracking ALL time, including that OT. Let it bite them. No matter where you go, don't under report. If you are being told to not record it, then send out the resumes as fast as possible. That's just a statement that &quot;we intend to abuse you&quot;. It also may mean that the company is breaking local overtime laws.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are the only programmer in the company, then you aren't helping your resume. The best experience comes from working with other people who write code.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-10-02T18:22:25.633" CommentCount="1" />
  <row Id="9039" PostTypeId="2" ParentId="9030" CreationDate="2010-10-02T18:52:53.407" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;The standard belief is that sugar acts as a stimulant and &lt;strong&gt;boosts your ability to churn out code&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;emphasis my own, to make it clear that I'm responding to that point&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where did you hear this?  I mean, 5-hour Energy touts its low sugar content.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any stimulant is &quot;good&quot; for a short-term boost, but the downsides are not worth it.  Also, just because you can churn out more work, doesn't mean it's quality work.  Prefer quality over quantity, in most cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suggest you look into judicious use of caffeine.  &lt;a href=&quot;http://lifehacker.com/5585217/&quot; rel=&quot;nofollow&quot;&gt;This article on Lifehacker&lt;/a&gt; explains caffeine a bit.  It's quite enlightening.  Caffeine isn't the stimulant we think it is.&lt;/p&gt;&#xA;" OwnerUserId="149" LastEditorUserId="149" LastEditorDisplayName="" LastEditDate="2010-10-02T18:58:33.117" LastActivityDate="2010-10-02T18:58:33.117" CommentCount="2" />
  <row Id="9040" PostTypeId="2" ParentId="9026" CreationDate="2010-10-02T19:02:13.613" Score="3" ViewCount="" Body="&lt;p&gt;I've been through too many like that. I would say don't expect you can fix it, and you won't be there long anyway. Whether you leave right away, or wait awhile, they probably won't be in business for long regardless. I would sound out people I know and have my eye on opportunities, and avoid the HR circuit if possible. When people are hiring, especially small firms, they are casting around for good people in bad situations, like you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing I've learned to look for in an employer is, above all, &lt;em&gt;do they care about people&lt;/em&gt;, or are they just in it for bucks and the golf circuit? That kind of attitude is founded at the top. So just measure up the founder / CEO / top management. Nobody with a decent attitude can stay long in a company if the attitude coming from above is rotten, and I've seen too many like that.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-10-02T19:13:53.647" LastActivityDate="2010-10-02T19:13:53.647" CommentCount="2" />
  <row Id="9041" PostTypeId="2" ParentId="9026" CreationDate="2010-10-02T19:12:35.683" Score="4" ViewCount="" Body="&lt;p&gt;A lot of that stuff won't be better elsewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What can be better elsewhere, and is therefore enough reason to go in and of itself, is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Mandatory unpaid overtime&quot;&lt;/p&gt;&#xA;" OwnerUserId="3963" LastActivityDate="2010-10-02T19:12:35.683" CommentCount="1" />
  <row Id="9042" PostTypeId="1" CreationDate="2010-10-02T19:22:12.023" Score="12" ViewCount="1294" Body="&lt;p&gt;According to you all, &lt;a href=&quot;http://programmers.stackexchange.com/questions/2846/which-programming-language-do-you-really-hate&quot;&gt;Java is the third most-hated language here&lt;/a&gt;. The two other most hated languages are PHP and VBScript. (It's quite funny how they stand together on the podium.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to make it known that the question mostly addresses people who don't like Java. I assume here a number of subjective opinions as facts because they're usually considered true among people who don't like Java, and I don't want to be convinced otherwise here. If you're a Java enthusiast, you might find this question frustrating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's never been made clear if people hate Java itself, or if they hate it because of the framework, or if it's a mixture of the two.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a side you have the language, where you have:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the &quot;everything should be an object&quot; philosophy, even in instances where it should obviously be something else (event handlers I'm pointing you);&lt;/li&gt;&#xA;&lt;li&gt;checked exceptions;&lt;/li&gt;&#xA;&lt;li&gt;the idea that all logic should be presented as methods and properties is a big no-no;&lt;/li&gt;&#xA;&lt;li&gt;the fact that &quot;closures&quot; created by anonymous types only include &lt;code&gt;final&lt;/code&gt; variables and arguments, &lt;em&gt;but&lt;/em&gt; will allow write access to any member of the parent class;&lt;/li&gt;&#xA;&lt;li&gt;a few more.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;On the other side, you have the JDK, with...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;its load of inconsistencies and overengineering;&lt;/li&gt;&#xA;&lt;li&gt;monolithic class hierarchies;&lt;/li&gt;&#xA;&lt;li&gt;meaningless base exceptions like IOException (though other frameworks have similar exception hierarchies);&lt;/li&gt;&#xA;&lt;li&gt;sluggish responsiveness even with Swing;&lt;/li&gt;&#xA;&lt;li&gt;a few more.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;My question is, do you think that, if either one (Java or the JDK) was taken alone, and the other was dropped in favor of something else, the new combination would be better?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, if you could use the C# syntax with the JDK (adapting get*/set* methods into properties, and interfaces with only one method into delegates), or the Java syntax with the .NET Framework (doing the inverse transformations), would things get better in your opinion?&lt;/p&gt;&#xA;" OwnerUserId="90" LastActivityDate="2010-12-30T10:44:15.627" ClosedDate="2010-10-08T16:01:43.233" Title="Why do you hate Java? Is it the language or the framework?" Tags="&lt;java&gt;&lt;holy-war&gt;" AnswerCount="13" CommentCount="4" FavoriteCount="4" />
  <row Id="9043" PostTypeId="1" AcceptedAnswerId="9045" CreationDate="2010-10-02T19:30:00.713" Score="3" ViewCount="92" Body="&lt;p&gt;I have an external java application which use JDBC as to reach an MySQL database.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This will be used by many people and is going to store all the people's data on the same server / MySQL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I bet people will be able to crack the .jar and see the source, I expect them to be able to cheat the program by editing it and making it get information from other users even when they are not allowed to reach said information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any standard way to protect a server so people should only be able to reach the information their account is connected to even if said people are able to change the source?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers,&#xA;Skarion&lt;/p&gt;&#xA;" OwnerUserId="4317" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-10-03T00:51:58.847" LastActivityDate="2010-10-21T14:47:16.133" Title="Server and MySQL safety for Java / JDBC applications?" Tags="&lt;mysql&gt;&lt;jdbc&gt;&lt;safety&gt;" AnswerCount="2" />
  <row Id="9044" PostTypeId="2" ParentId="8283" CreationDate="2010-10-02T19:36:30.417" Score="7" ViewCount="" Body="&lt;p&gt;I was once asked to fix a report because the data in it didn't match a different report (with different query criteria) that was run two months earlier. It took a year to get it through the user's head that even if the criteria had been the same, the data changes over time!&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-02T19:36:30.417" CommunityOwnedDate="2011-01-21T18:10:47.527" />
  <row Id="9045" PostTypeId="2" ParentId="9043" CreationDate="2010-10-02T19:37:54.563" Score="0" ViewCount="" Body="&lt;p&gt;One way to solve the problem is by using a server-side program to get the information for the client instead of having the client connect directly to the server. This can be in the form of a webpage, service, or RMI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The advantages of this is that the user never can access the database directly (which is a big no no), and therefor can't get access to others information or write their own data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The disadvantage is that its complicated and requires external scripts. You have to figure out how your going to send information in between the server and the client thats not SQL based.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure its the obvious solution, but its not always the best. It completely depends on your app. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;As an example, in one of my apps I had a server side PHP script that took a bunch of mode and option parameters. This returned all the information in JSON format and was parsed by the app. It was pretty basic, but it worked for my purposes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For authentication when the app first started it asked the script for a session key (for you, you ask the script with a username and password). The session key was a really long randomly generated SHA512 key that was passed with all requests. For you, if the user shouldn't have access to something, then return an error. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on how sensitive the information is, you could use HTTPS, text encryption, URL encryption, etc. &lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-10-03T00:51:14.463" LastActivityDate="2010-10-03T00:51:14.463" CommentCount="2" />
  <row Id="9046" PostTypeId="2" ParentId="8955" CreationDate="2010-10-02T19:46:47.720" Score="1" ViewCount="" Body="&lt;p&gt;Before I give my answer (or suggestion of an answer, really), I must say that I don't have very much experience of large projects and will only state what I've read and believe to be one of the causes. I may very well be wrong, but then I will most likely have learned something from all the comments I'll receive. ^^&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One important factor, I believe, is not to let your code deteriorate as the project is under way. This can be prevented in many ways, of which I only know a few:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Don't wait too long with refactoring:&lt;/strong&gt; Refactoring does take some time, but it'll be worth not having to do convoluted function calls just because you couldn't be bothered rewriting the code to allow for that extra parameter. More intuitive and less duplicated code reduces the number of bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Fix the broken window:&lt;/strong&gt; In &lt;em&gt;The Pragmatic Programmer&lt;/em&gt;, I read of a phenomenon known as the broken window. The authors argue that code will begin to deteriorate in the same way as a building deteriorates: it starts with a broken window. In code, this means ugly fixes, naming of variables, functions; in general just bad code. I have found this to hold true: I code better and am more happy about coding when my code foundation is solid. If there are too many broken windows, I often don't feel like making the effort to write good code. So if you see a broken window, fix it as fast as possible; refactor if you have to. This will lead to fewer bugs and unnecessary tweaks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And don't forget to read &lt;a href=&quot;http://programmers.stackexchange.com/questions/8955/how-do-i-keep-my-projects-from-dragging-on-with-endless-tweaks-and-changes/8981#8981&quot;&gt;Pierre 303's answer&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-02T19:46:47.720" />
  <row Id="9048" PostTypeId="1" AcceptedAnswerId="9049" CreationDate="2010-10-02T19:55:03.890" Score="6" ViewCount="574" Body="&lt;p&gt;I am learning Java. I started liking it but after seeing the questions that have been asked here and on stack overflow I came to know that Java is slow and most of the people (programmers) here hate it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What should I do now? Am I on wrong way? Shouldn't I get too attached with Java and just learn some good concepts and then move to some other language or go deep in it?&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-10-21T22:13:55.157" Title="Am I on the wrong way?" Tags="&lt;java&gt;" AnswerCount="13" CommentCount="6" FavoriteCount="3" />
  <row Id="9049" PostTypeId="2" ParentId="9048" CreationDate="2010-10-02T20:03:31.647" Score="20" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Java is &lt;strong&gt;not&lt;/strong&gt; slow.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Even if it's not my favorite language, I like it some times. A thing that I like with Java compared to C# is that it's a smaller language.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Even if it's not my favorite language, it's a language good to know. The family with similar languages e.g. C++ and C# is huge and is very common in the industry. It's most likely that you will work with one of these languages if you work with programming.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;There will be a lot of job opportunities if you are good in Java, for sure.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It's good to know more languages, specificlty languages that uses different paradigms. Go on, and learn.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-02T20:03:31.647" CommentCount="10" />
  <row Id="9050" PostTypeId="2" ParentId="724" CreationDate="2010-10-02T20:14:13.667" Score="4" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.erlang.org/doc/reference_manual/expressions.html#id72340&quot; rel=&quot;nofollow&quot;&gt;Send&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;From Erlang. Sends a message &lt;strong&gt;asynchronous&lt;/strong&gt; to another thread.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Expr1 ! Expr2&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;h2&gt;&lt;a href=&quot;http://www.erlang.org/doc/reference_manual/expressions.html#id72423&quot; rel=&quot;nofollow&quot;&gt;Receive&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;From Erlang. Receives a message from another thread.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;receive&#xA;    Pattern1 [when GuardSeq1] -&amp;gt;&#xA;        Body1;&#xA;    ...;&#xA;    PatternN [when GuardSeqN] -&amp;gt;&#xA;        BodyN&#xA;end&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-02T20:14:13.667" />
  <row Id="9052" PostTypeId="2" ParentId="9026" CreationDate="2010-10-02T20:25:52.553" Score="3" ViewCount="" Body="&lt;p&gt;Like Mike Dunlavey, I've been through that too, and seen a lot of friends go through it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you fix a broken company culture that hires unqualified managers, underpays people, and doesn't provide you with adequate tools to do your job? Nope. Only the owner/top management - or somebody who can influence them - could do that, and you're not either of those. Worse yet, anything you might do to try to even improve your own situation it is likely to put you in a bad spot by annoying the people who made things that way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's like when my new girlfriend turned out to be crazy: since I couldn't change her, I really only had two choices: put up with it, or hit the road.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I were you, I'd start sending out resumes. But unless you just can't stand it, keep your current job until you have a new one: it's always easier to get a new job when you already have one, and unemployed desperation doesn't come off well during the interview process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Incidentally, I'm not saying to look for a new job any time something annoys you. There's a balance. I worked at a company that had some foolish policies, but the work was interesting, the pay was okay and I really liked everybody I worked with, and I'd probably still be there if bad strategic decisions hadn't put our entire division out of business.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-10-02T20:25:52.553" CommentCount="2" />
  <row Id="9054" PostTypeId="2" ParentId="238" CreationDate="2010-10-02T20:29:36.013" Score="4" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.imdb.com/title/tt1285016/&quot; rel=&quot;nofollow&quot;&gt;The Social Network&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;A story about the founders of the social-networking website, Facebook.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-02T20:29:36.013" />
  <row Id="9055" PostTypeId="1" CreationDate="2010-10-02T20:30:36.223" Score="36" ViewCount="1588" Body="&lt;p&gt;Too often I have seen names been dropped as if everyone should know who they are, as in&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Even [insert name here] has problems with ...&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;[Insert name here] has a great answer to that in his/her blog ...&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And more often than not I am completely clueless to whom they are referring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what are the big contemporary names the fields of programming, what is their area of expertise and why are they so well-known and revered? Note that I'm talking about &lt;em&gt;contemporary&lt;/em&gt; programmers, not people who are dead or no longer contributing. The precise area, tool or language is of no importance, as long as it is programming on way or another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Please put one person per answer&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2010-10-02T22:35:16.873" LastActivityDate="2011-05-26T19:51:20.773" CommunityOwnedDate="2010-10-04T20:51:23.403" ClosedDate="2011-05-26T19:58:51.090" Title="What are the big contemporary names in the programming field?" Tags="&lt;great-programmer&gt;" AnswerCount="58" CommentCount="8" FavoriteCount="15" />
  <row Id="9056" PostTypeId="2" ParentId="9042" CreationDate="2010-10-02T20:31:54.027" Score="4" ViewCount="" Body="&lt;p&gt;My dislike of Java stems from the fact that for many people, they compare it to C++ and think its a great language which make them much more productive. I compare it to python and find myself constantly fighting the language. Honestly, its not that terrible a language, it just fails in comparison to languages I like better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some comments on your points:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;'Everything should be an object', but I think Java's problem is that methods, primitive types, classes, modules, etc aren't objects. If all of those were objects then much of the issues would be dealt with&lt;/li&gt;&#xA;&lt;li&gt;'Checked Exceptions', actually I think if you are going to use static typing, checked exceptions are a good idea. Both of them attempt to prove some degree of correctness in the code. (I think the cost of making that proof isn't worth the benefits, but if you are going to do, do it all the way)&lt;/li&gt;&#xA;&lt;li&gt;'IOException' makes perfect sense to me. I ought to be able to catch all of the IO errors with one base class or a specific error if that is what matters to me&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-10-02T20:31:54.027" CommentCount="1" />
  <row Id="9057" PostTypeId="2" ParentId="9030" CreationDate="2010-10-02T20:43:17.080" Score="5" ViewCount="" Body="&lt;p&gt;Hi there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I highly recommend low GI (&lt;a href=&quot;http://en.wikipedia.org/wiki/Glycemic_index&quot; rel=&quot;nofollow&quot;&gt;Glycemic Index&lt;/a&gt;) foods rather then sugar to help you through the day. As mentioned by others, sugar causes a short-term energy hit through your bloodstream, which your body needs to get rid of by pumping insulin through your veins to counter the sugar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The after effect from this is your typical slump - feeling tired or fatigued, enough to make you want another sugar hit to get your energy up again. A real nasty viscous circle. By consuming low GI foods, your energy levels are more constant and thus you will find, in the long term, you will be much happier during your coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've often eating sugary foods, plus drunk coffee, during coding sessions and I 99% of the time feel really sh*t afterwards - feeling extremely tired and loosing focus on the code I'm working on. Not good :( The slow releasing energy given by low GI foods will help you more in the long term.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I recommend drinking plenty of water. When you feel dehydrated this can &lt;em&gt;seriously&lt;/em&gt; affect your productivity/performance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers.&#xA;Jas.&lt;/p&gt;&#xA;" OwnerUserId="3668" LastActivityDate="2010-10-02T20:43:17.080" CommentCount="3" />
  <row Id="9058" PostTypeId="2" ParentId="1768" CreationDate="2010-10-02T20:53:06.113" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Delphi&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are thousands and thousands of business applications around the world written in Delphi. It is most powerful and most RAPID environment and language for creating windows software. And it has lightning fast compiler. For example a project of 1.3M lines of source code compiles around a minute on my pretty outdated notebook.&lt;/p&gt;&#xA;" OwnerUserId="3531" LastActivityDate="2010-10-02T20:53:06.113" />
  <row Id="9059" PostTypeId="2" ParentId="4587" CreationDate="2010-10-02T20:56:03.273" Score="4" ViewCount="" Body="&lt;p&gt;Working with unlicensed or incorrectly licensed bits (software, components, utilities, code, etc) to develop apps/system/solutions for which your company gets paid, increasing profit margins.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps not directly with programming per se, but I believe it counts.&lt;/p&gt;&#xA;" OwnerUserId="146" LastActivityDate="2010-10-02T20:56:03.273" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="1" />
  <row Id="9060" PostTypeId="2" ParentId="7017" CreationDate="2010-10-02T20:56:59.853" Score="3" ViewCount="" Body="&lt;p&gt;I think that these books are by far the best way to get up to speed on all the itty bitty details you need to keep track of when coding C++:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201924889&quot; rel=&quot;nofollow&quot;&gt;Effective C++&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/020163371X&quot; rel=&quot;nofollow&quot;&gt;More Effective C++&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201749629&quot; rel=&quot;nofollow&quot;&gt;Effective STL&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4320" LastActivityDate="2010-10-02T20:56:59.853" />
  <row Id="9061" PostTypeId="2" ParentId="525" CreationDate="2010-10-02T20:57:20.757" Score="0" ViewCount="" Body="&lt;p&gt;Look at Delphi for PHP. It is very powerfull.&lt;/p&gt;&#xA;" OwnerUserId="3531" LastActivityDate="2010-10-02T20:57:20.757" CommentCount="1" />
  <row Id="9062" PostTypeId="1" CreationDate="2010-10-02T20:58:37.973" Score="43" ViewCount="4904" Body="&lt;blockquote&gt;&#xA;  &lt;h2&gt;Moderator Message&lt;/h2&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;This question already has 40+ answers. Therefore, please consider whether &lt;em&gt;your&lt;/em&gt; answer is going to provide anything new. Please take a moment to review &lt;em&gt;all&lt;/em&gt; the answers before posting&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Superstition&quot; rel=&quot;nofollow&quot;&gt;Superstitions&lt;/a&gt; are widely held beliefs with little or no rational reasoning behind them. They often result in little rituals we do to ward off the bad luck that we believe will result from them. Superstitions are frequently passed along from person to person and may have origins in &lt;a href=&quot;http://en.wikipedia.org/wiki/Magical_thinking&quot; rel=&quot;nofollow&quot;&gt;magical thinking&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the superstitions that you (or your coworkers and friends) have when they are programming or working with computers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some I've thought of:&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Relative paths in Unix must begin with . or ..&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I see this one a lot. Some programmers believe that there are only two kinds of paths: those that start with a slash (/etc/motd) and those that start with a dot (./myfile). All others are errors.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;All classes must have getters and setters for their private fields&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;This is, of course, not true. They were probably taught it in their first programming course and it has stuck ever since and passed along as gospel.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;(Using a flip phone) The phone must be closed and opened between calls&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;My parents do this. They will close the phone and open it again even though pressing the red END button would do the same. Not specifically programming related, but it's an example of a superstitious ritual and could influence the user interface design of future phones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What superstitions do you or your family/friends/coworkers have about programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: I'm exploring this as a possible topic for a research dissertation in computer science.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-05-05T11:09:31.293" LastActivityDate="2011-05-05T11:09:31.293" CommunityOwnedDate="2010-10-11T05:17:24.027" Title="What superstitions do programmers have?" Tags="&lt;behavior&gt;&lt;programmers&gt;" AnswerCount="48" CommentCount="12" FavoriteCount="20" />
  <row Id="9063" PostTypeId="2" ParentId="9055" CreationDate="2010-10-02T21:00:15.367" Score="35" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Martin Fowler&lt;/strong&gt; - specialist in  OO analysis and design, UML, patterns, and agile software development methodologies. Author of &lt;a href=&quot;http://www.amazon.com/Refactoring-Improving-Design-Existingebook/dp/B000OZ0N4Y/ref=sr_1_5?ie=UTF8&amp;amp;qid=1286053166&amp;amp;sr=8-5&quot; rel=&quot;nofollow&quot;&gt;Refactoring: Improving the Design of Existing Code&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="3262" LastEditorDisplayName="" LastEditDate="2010-10-03T14:15:21.450" LastActivityDate="2010-10-03T14:15:21.450" CommunityOwnedDate="2010-10-04T20:51:23.403" CommentCount="3" />
  <row Id="9064" PostTypeId="2" ParentId="9055" CreationDate="2010-10-02T21:00:56.570" Score="2" ViewCount="" Body="&lt;p&gt;In reality, it all depends on the field you work in, and the toolset. What do you work with or in? C3, Perl, Ruby, SQL, DotNetNuke, PHP, other? There are very few people or names that can be dropped with universal affect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I might drop the name &quot;Jon Skeet&quot;, who is a staple and a legend on Stackoverflow and a whiz at many things, specially C#, but mean nothing to your position. The same with &quot;Ken Schwaber&quot;. Many people consider him to be the father of Scrum, but if I hadn't read on Scrum or had only a mild passing interest in it, the name would mean as little to me as &quot;Tom Leppert&quot; does to people who don't live in Dallas.&lt;/p&gt;&#xA;" OwnerUserId="146" LastActivityDate="2010-10-02T21:00:56.570" CommunityOwnedDate="2010-10-04T20:51:23.403" CommentCount="3" />
  <row Id="9065" PostTypeId="2" ParentId="9042" CreationDate="2010-10-02T21:09:25.863" Score="17" ViewCount="" Body="&lt;h3&gt;Some things that I don't like with the JVM&lt;/h3&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Not designed for tail-recursion. See &lt;a href=&quot;http://stackoverflow.com/questions/860550/stack-overflows-from-deep-recursion-in-java&quot;&gt;Stack overflows from deep recursion in Java?&#xA;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;It uses OS-threads. See &lt;a href=&quot;http://stackoverflow.com/questions/2708033/technically-why-is-processes-in-erlang-more-efficient-than-os-threads&quot;&gt;Technically why is processes in Erlang more efficient than OS threads?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h3&gt;Some things that I don't like with the Java language&lt;/h3&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The type system is bad. E.g. see &lt;a href=&quot;http://stackoverflow.com/questions/3397160/how-can-i-pass-a-class-as-parameter-and-return-a-generic-collection-in-java&quot;&gt;How can I pass a Class as parameter and return a generic collection in Java?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Again, the type system is bad. Null is evil, it would be better to have a &lt;a href=&quot;http://en.wikipedia.org/wiki/Option_type&quot; rel=&quot;nofollow&quot;&gt;Option type&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;It's very verbose, doesn't have structs (or other lightweight tuples, see below), doesn't have closures yet.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h3&gt;Some things that I don't like with the Java library:&lt;/h3&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Most of the libraries favor mutable data. See &lt;a href=&quot;http://stackoverflow.com/questions/3511120/why-shouldnt-i-use-immutable-pojos-instead-of-javabeans&quot;&gt;Why shouldn't I use immutable POJOs instead of JavaBeans?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;The Date and Time API is bad. See &lt;a href=&quot;http://joda-time.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Joda Time&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;No declarative layout (e.g. XAML) for Swing. See &lt;a href=&quot;http://stackoverflow.com/questions/761237/suggestions-for-declarative-gui-programming-in-java&quot;&gt;suggestions for declarative GUI programming in Java&#xA;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h3&gt;Some more subjective things:&lt;/h3&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Oracle&lt;/li&gt;&#xA;&lt;li&gt;OOP&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And there is a lot more to complain about. It has to do mainly with its age, and that it &lt;strong&gt;evolves very slowly&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-12-30T10:44:15.627" LastActivityDate="2010-12-30T10:44:15.627" CommentCount="2" />
  <row Id="9066" PostTypeId="2" ParentId="9042" CreationDate="2010-10-02T21:11:30.470" Score="6" ViewCount="" Body="&lt;p&gt;The real problem behind java is; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;sun was out of many years ago; money is important for research, fast releases and high quality architects eg:as I know anders heljberg (c# dev.) got 40 million to switch to microsoft from borland. ms has 200 engineers only for wpf and silverlight (only a part of.net), was it possible for javafx ? no. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;another problem is jcp are only zombies; if you want to make something you cannot do it fast with a commission and protocols.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;there is no alternative to java platform for now (ms products cannot be an alternative in java space), so the only possibility to fatch and maybe surpass c# is scala in my opinion&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My Best&#xA;Serdar Irmak&lt;/p&gt;&#xA;" OwnerUserId="4262" LastActivityDate="2010-10-02T21:11:30.470" CommentCount="2" />
  <row Id="9067" PostTypeId="2" ParentId="9062" CreationDate="2010-10-02T21:14:53.310" Score="5" ViewCount="" Body="&lt;p&gt;&lt;code&gt;&amp;lt;language&amp;gt;&lt;/code&gt; is faster/slower than &lt;code&gt;&amp;lt;another language&amp;gt;&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-10-02T21:14:53.310" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="11" />
  <row Id="9068" PostTypeId="2" ParentId="9062" CreationDate="2010-10-02T21:17:00.843" Score="9" ViewCount="" Body="&lt;p&gt;Considering &quot;Superstitions arise because we don’t understand&quot; (&lt;a href=&quot;http://www.loper-os.org/?p=41&quot; rel=&quot;nofollow&quot;&gt;The Future of Programming: Ignorance and Superstition?&lt;/a&gt;), ... a lot ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Joel Spolsky mentions for instance &lt;strong&gt;pointers&lt;/strong&gt; (in his &quot;&lt;a href=&quot;http://www.joelonsoftware.com/articles/CollegeAdvice.html&quot; rel=&quot;nofollow&quot;&gt;College Advice&lt;/a&gt;&quot;):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I don't care how much you know about continuations and closures and exception handling: if you can't explain why &lt;strong&gt;&lt;code&gt;while (*s++ = *t++);&lt;/code&gt;&lt;/strong&gt;  copies a string, or if that isn't the most natural thing in the world to you, well, &lt;strong&gt;you're programming based on superstition&lt;/strong&gt;, as far as I'm concerned: a medical doctor who doesn't know basic anatomy, passing out prescriptions based on what the pharma sales babe said would work.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3915" LastActivityDate="2010-10-02T21:17:00.843" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="2" />
  <row Id="9069" PostTypeId="2" ParentId="9055" CreationDate="2010-10-02T21:25:04.030" Score="39" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Linus Torvalds&lt;/strong&gt; - Initiator of the &lt;a href=&quot;http://www.kernel.org/&quot; rel=&quot;nofollow&quot;&gt;Linux&lt;/a&gt; kernel and &lt;a href=&quot;http://git-scm.com/&quot; rel=&quot;nofollow&quot;&gt;git&lt;/a&gt; version control.&lt;/p&gt;&#xA;" OwnerUserId="4260" LastEditorUserId="4260" LastEditorDisplayName="" LastEditDate="2010-10-15T20:42:46.007" LastActivityDate="2010-10-15T20:42:46.007" CommunityOwnedDate="2010-10-04T20:51:23.403" CommentCount="9" />
  <row Id="9070" PostTypeId="2" ParentId="9055" CreationDate="2010-10-02T21:26:56.790" Score="2" ViewCount="" Body="&lt;p&gt;See &lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_programmers&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/List_of_programmers&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4260" LastActivityDate="2010-10-02T21:26:56.790" CommunityOwnedDate="2010-10-04T20:51:23.403" CommentCount="9" />
  <row Id="9071" PostTypeId="2" ParentId="9048" CreationDate="2010-10-02T21:31:41.150" Score="2" ViewCount="" Body="&lt;p&gt;It can't be &lt;em&gt;that&lt;/em&gt; unpopular. It's ranked #1 in popularity on the &lt;a href=&quot;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&quot; rel=&quot;nofollow&quot;&gt;TIOBE Programming Community Index&lt;/a&gt; for September 2010.&lt;/p&gt;&#xA;" OwnerUserId="4222" LastActivityDate="2010-10-02T21:31:41.150" CommentCount="3" />
  <row Id="9072" PostTypeId="2" ParentId="9042" CreationDate="2010-10-02T21:31:54.070" Score="12" ViewCount="" Body="&lt;p&gt;The language.  The framework and the JVM are the only reasons I'd ever willingly use it.  I find the syntax to be klunky given the language's capability.  Java adopted such a low-level syntax in order to attract C++ programmers, but the language cuts off all the low-level capabilities that makes C/C++ attractive, but the syntax of the language makes doing high-level programming (à la Python, Ruby, MATLAB, LISP, J, etc.) unwieldy.  If I'm going to put up with C/C++-style syntax, I'd like to be able to get something out of it.  It's quite frustrating to have a stable VM and a nice standard library but not be able to do anything interesting with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The language could be improved by lightening the syntax to make high-level programming easier.  There are a few projects that try to do this like Jython, JRuby, and Scala.  Scala seems the most promising, but they're all still immature.&lt;/p&gt;&#xA;" OwnerUserId="998" LastActivityDate="2010-10-02T21:31:54.070" />
  <row Id="9074" PostTypeId="2" ParentId="9055" CreationDate="2010-10-02T21:49:48.047" Score="26" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Eric Lippert&lt;/strong&gt; - knows anything and everything about the C# compiler by virtue of working on the compiler team.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-02T21:49:48.047" CommunityOwnedDate="2010-10-04T20:51:23.403" CommentCount="3" />
  <row Id="9075" PostTypeId="2" ParentId="9055" CreationDate="2010-10-02T21:52:23.617" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Oren Eini&lt;/strong&gt; (a.k.a. &lt;strong&gt;Ayende Rahien&lt;/strong&gt;) -- one of the main contributors to NHibernate, author of Rhino.Mocks, RavenDB, and others. He specializes in database design and optimization.&lt;/p&gt;&#xA;" OwnerUserId="226" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2010-10-15T23:29:27.077" LastActivityDate="2010-10-15T23:29:27.077" CommunityOwnedDate="2010-10-04T20:51:23.403" CommentCount="5" />
  <row Id="9076" PostTypeId="2" ParentId="9048" CreationDate="2010-10-02T22:03:28.810" Score="11" ViewCount="" Body="&lt;p&gt;Welcome to the internet!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If no one complained about something as widely used and supported, &lt;em&gt;then&lt;/em&gt; I would be very concerned. It's like windows: some people hate it and call out all its flaws while often failing acknowledge the flaws of their preferred OS. Some people wouldn't work with something else, but they'll still complain about using it. If we waited around for the perfect programming language, we'd still be using an abacus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are projects for which it is not the best option. There are projects for which it is a terrible option. But it is often a very good option for quite a wide variety of projects. So, under the principle that it is far better to know a few tools very well than a lot of tools very shallowly, it is a good choice. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Performance is terrible? AFAIK, Apache Cassandra is built entirely on java and that's good enough for Facebook, Digg, Twitter, and so on. I've generally had bad luck with performance on desktop apps in Java (and I think that's changed), but for other purposes, it seems rather ok. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And no, I'm not just a Java fan boy. What's paid my bills for the last 7 or so years is almost entirely .Net.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-10-02T22:03:28.810" CommentCount="2" />
  <row Id="9077" PostTypeId="2" ParentId="9062" CreationDate="2010-10-02T22:03:58.890" Score="21" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&quot;There is an error in the compiler.&quot;.&lt;/strong&gt;  And adding parens, or 'volatile' or a newline, or some other magic syntax is a workaround.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;No, there is an error in your understanding of the language, and your magic just matches your assumptions better then the original code did. &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-02T22:03:58.890" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="8" />
  <row Id="9078" PostTypeId="2" ParentId="9048" CreationDate="2010-10-02T22:14:46.403" Score="2" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Why&lt;/em&gt; are you learning Java?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's to have a good general purpose language to have in order to find work and stay employed - there is plenty of Java work out there and probably will be for some time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have it in your skill set, there are many directions to go.  You could learn C# with similar syntax to allow you to also work in the Microsoft world; you could learn a scripting language, web framework, or backend enterprise framework....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the speed of execution - there are enterprises out there using Java to process huge amounts of data (text and binary) every day - and it's doing just fine.  It scales with hardware, memory, etc. - no problem (we as programmers can screw it up, but that's another story).  I think execution speed used to be a problem in the beginning (late '90s?), but they've been working on the JVM to increase the speed for some time.  The stories from the past about speed seem to hang around...&lt;/p&gt;&#xA;" OwnerUserId="2671" LastActivityDate="2010-10-02T22:14:46.403" CommentCount="3" />
  <row Id="9079" PostTypeId="2" ParentId="8985" CreationDate="2010-10-02T22:17:49.640" Score="3" ViewCount="" Body="&lt;p&gt;Having used both java and c# I have to say that (IMO)&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;c# is much more pleasant to work with than java&lt;/li&gt;&#xA;&lt;li&gt;Visual Studio is &lt;strong&gt;much&lt;/strong&gt; better than Eclipse  &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;And another opinion (and it may be a bit dated).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java isn't that great for writing desktop applications (works well for server applications), they never feel &lt;em&gt;quite right&lt;/em&gt; or look &lt;em&gt;quite native&lt;/em&gt;. But it is probably the easiest way to write applications that run on both linux, mac (and windows)&lt;/p&gt;&#xA;" OwnerUserId="2825" LastActivityDate="2010-10-02T22:17:49.640" CommentCount="10" />
  <row Id="9080" PostTypeId="2" ParentId="4587" CreationDate="2010-10-02T22:24:52.033" Score="4" ViewCount="" Body="&lt;p&gt;Being told to copy code (e.g. from another website) that doesn't belong to the company you are working for, which in the case of languages like PHP or ASP would require unauthorized access to the other companies servers (JavaScript, CSS and HTML one can just copy directly -- still illegal).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never been asked to do so, but I was accused of it once as part of a larger lawsuit brought against a company I was contracting for.  The plaintiff's case against me was ridiculous: their site was using ASP, I built ours from scratch using PHP; not only did I not have access to their servers, I didn't even know the name of the company I was supposedly stealing from until the lawsuit was filed.  It actually went to trial, I had to take the stand, but I was completely cleared.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-02T22:24:52.033" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="4" />
  <row Id="9081" PostTypeId="1" CreationDate="2010-10-02T22:34:20.033" Score="19" ViewCount="371" Body="&lt;p&gt;I am curios to use .NET for some web applications (e.g. ASP.NET MVC 2). However my budget is limited so I would like to use Mono on Linux. I have never used Mono before, and I haven't read about any bigger sites that is using Mono+Linux on the server in production.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's your experience using Mono on Linux in production? How is the performance and stability compared to .NET on Windows Server?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any popular sites that is using it in production? Any articles available online were they share their experiences?&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2011-03-12T11:04:07.070" Title="Any experience with Mono on production servers?" Tags="&lt;experience&gt;&lt;.net&gt;&lt;asp.net&gt;&lt;linux&gt;&lt;mono&gt;" AnswerCount="1" CommentCount="5" FavoriteCount="4" />
  <row Id="9083" PostTypeId="1" CreationDate="2010-10-02T22:49:05.720" Score="3" ViewCount="512" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/6440/how-do-you-keep-up-with-the-ever-changing-industry&quot;&gt;How do you keep up with the ever-changing industry?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Being a software developer in todays high paced, high tech environment means constantly learning, sharpening your tools so as not to be left behind. This means assimilating knowledge by all means, books, blogs, user groups... help files ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This also presents the challenge of focusing on what is relevant for your current needs (project) and also what is trending and marketable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;.NET Framework, Ruby On Rails,ASP.NET MVC there is alot to learn out there, how do you know it all?? Can you know it all??&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I guess my question is, how does a developer manage to stay current, marketable and on the cutting edge?&lt;/p&gt;&#xA;" OwnerUserId="4325" LastActivityDate="2010-10-03T00:02:46.090" ClosedDate="2010-10-03T03:03:50.603" Title="Staying on the cutting edge" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;job-market&gt;&lt;market&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="1" />
  <row Id="9084" PostTypeId="2" ParentId="9007" CreationDate="2010-10-02T22:57:41.987" Score="3" ViewCount="" Body="&lt;p&gt;As to your first question, this comes down to how much you think you need to protect your code, If the online service goes belly up you still have local copies. If you go with the newer distributed systems you will have all of the history locally. I personally have a cheap account at wush.net for collaboration purposes, everything else is &quot;just&quot; backed up locally here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for your second question, go for the one with the best client out there, I have been tempted to switch to git (from svn) but tortoise svn for windows works so well it does not seem to be worth the effort. Use the one that will impose the least overhead to the way you work. Be it because it is integrated in the IDE that you are using or the one that you are most comfortable with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are cheap commercial sites out there for most version control systems, and I am assuming you actually want to program and not fiddle with vcs systems, so pick the one that you think will make to do the least work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again I personally still prefer SVN, mostly because of Tortoise (Windows Desktop) and Ankh (Visual Studio Integration), on the mac XCode 3 can do SVN, and there are a couple of decent clients available.&lt;/p&gt;&#xA;" OwnerUserId="4171" LastActivityDate="2010-10-02T22:57:41.987" CommentCount="1" />
  <row Id="9085" PostTypeId="2" ParentId="9083" CreationDate="2010-10-02T23:03:38.743" Score="2" ViewCount="" Body="&lt;p&gt;Don't necessarily develop skills on different languages but be able to show that you can pick up a new language or system fairly quickly. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being able to adapt to a new situation is the best skill you can pick up. &lt;/p&gt;&#xA;" OwnerUserId="4171" LastActivityDate="2010-10-02T23:03:38.743" />
  <row Id="9086" PostTypeId="2" ParentId="9026" CreationDate="2010-10-02T23:15:31.473" Score="4" ViewCount="" Body="&lt;p&gt;&quot;It's like when my new girlfriend turned out to be crazy: since I couldn't change her, I really only had two choices: put up with it, or hit the road.&quot; FTW. No better explanation necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Explain your situation to boss, boss' boss, owner... if things don't change hit the road. No job is worth the stress.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mandatory overtime + no overtime pay? No thank you. I don't demand a &quot;premium&quot; personally, but my time is valuable. My current job doesn't pay overtime &lt;em&gt;BUT&lt;/em&gt; They do give comp time off. if I work an hour overtime, I get 1.5 hours off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only other thing that really stands out to me? &quot;Only programmer&quot;? How fucked would this company be if you put in your notice? That's bargaining power. That's resume gold.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can stand not being paid a lot, working overtime, being under-appreciated... but you add all that stuff up? You better fix something or I'll find a &quot;girlfriend&quot; who DOES appreciate me.&lt;/p&gt;&#xA;" OwnerUserId="2536" LastActivityDate="2010-10-02T23:15:31.473" CommentCount="1" />
  <row Id="9087" PostTypeId="2" ParentId="8985" CreationDate="2010-10-02T23:18:13.220" Score="0" ViewCount="" Body="&lt;p&gt;I've used all three of these languages/toolkits on different projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Choosing a language or toolkit such as Qt will potentially have a significant impact on your architecture so it makes sense to think about the quality attributes for the system you will build.  Things you might want to consider (there are probably others too):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cost - how much will it cost to develop in the language or for training, books?&lt;/li&gt;&#xA;&lt;li&gt;Portability - how easily can you move your code to different platforms?&lt;/li&gt;&#xA;&lt;li&gt;Maintainability - how easy will it be to keep your system running over time?  Issues might be how often the language/toolkit updated and whether that will effect your ability to update it.&lt;/li&gt;&#xA;&lt;li&gt;Deploy-ability - how easy will it be to get your built application onto users' machines?&lt;/li&gt;&#xA;&lt;li&gt;Performance - is the language/toolkit fast enough?  Does it use too much memory?&lt;/li&gt;&#xA;&lt;li&gt;Build-ability - how easy is it to work with the tools or to write in the language?  Does the language support the kind of system you intend to build easily?&lt;/li&gt;&#xA;&lt;li&gt;Interoperability - how easily do you need to connect with other systems?&lt;/li&gt;&#xA;&lt;li&gt;Learn-ability - how easy is it to learn to program with the language, is it well documented?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In addition, each of these languages comes with a framework which will make some designs easier than others.  Is the software you are building compatible with the design decisions that are already made by the framework you would use?  In this case, each framework is nearly identical with mostly syntactic differences.  Qt is largely the same as Java which is nearly the same thing as C#, at least from a functionality and paradigm perspective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you are making decisions on your own (opposed to with a team where you must reach a group consensus), prioritizing can be a significant challenge.  Also it sounds like your project is going to be short lived (one semester) with no follow-up team and no client or business case (school project), so &lt;strong&gt;it probably doesn't matter which language you use.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, which language do you feel like learning?  Will you have time to learn a new language while working on the project?  Which language will put you in the best position to get the job of your dreams?&lt;/p&gt;&#xA;" OwnerUserId="3966" LastEditorUserId="3966" LastEditorDisplayName="" LastEditDate="2010-10-03T17:52:47.360" LastActivityDate="2010-10-03T17:52:47.360" />
  <row Id="9088" PostTypeId="2" ParentId="8985" CreationDate="2010-10-02T23:43:07.847" Score="2" ViewCount="" Body="&lt;p&gt;I'm a huge fan of C# and it's a lot of fun to work with. In school however, I'd recommend to keep building on your C++ foundation. Struggle with it for a while and you'll be better able to appreciate all that the more abstracted frameworks can provide you in the workforce.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, considering that you also have some experience with it, you can continue to work at a higher level of productivity and start focusing on whatever it is that you plan to make.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;edit&lt;/em&gt; - I should probably mention that I used C++ for 5 years while in school, and I don't ever have a desire to touch it again, because I've gone a bit soft with the comforts of a GC'd RAD environment, but I'm still glad that I took that time to get comfortable and do a lot with C++.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-10-03T06:52:22.920" LastActivityDate="2010-10-03T06:52:22.920" CommentCount="1" />
  <row Id="9089" PostTypeId="2" ParentId="9026" CreationDate="2010-10-02T23:43:44.443" Score="3" ViewCount="" Body="&lt;p&gt;For me, it would depend on where you see the company. This company sounds your classic startup trying to keep their business afloat. Do you believe in the success of the company?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they're not going anywhere, I would jump ship. After all, for someone of your expertise, you can find better work under better conditions elsewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If however, you think they're onto something, I would think hard about putting up with it. Being the only few with technical knowledge of the systems, it's not going to be easy to make do without you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And when they strike success, you'll be in a prime position to negotiate better conditions. Realistically, I would work towards owning a share of the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's one thing to be passionate about what you do, but at the end of the day, it's a job, and if you're underpaid, you're essentially paying your employer to work for them, since you could be earning more elsewhere. That's not always a bad thing, as money isn't everything, but I would seriously think about what you're gaining by being at this company.&lt;/p&gt;&#xA;" OwnerUserId="3214" LastActivityDate="2010-10-02T23:43:44.443" />
  <row Id="9090" PostTypeId="2" ParentId="9026" CreationDate="2010-10-02T23:53:55.360" Score="12" ViewCount="" Body="&lt;p&gt;What are you like when you get home from work?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm about a month ahead of the same situation you're in. I talked to my fiance about it extensively and it boiled down to this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Her: &quot;You're never happy when you get home. You're always frustrated and mad.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And that's it. For me: no job is worth a marriage. I gave in my notice, told them I'd stick around until they could find a replacement. It's been a great month where I do my best work, but I don't worry or fret about anything. What's best? I get home and spend time with my family, and we're all happy.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-02T23:53:55.360" CommentCount="2" />
  <row Id="9091" PostTypeId="2" ParentId="9083" CreationDate="2010-10-02T23:57:40.063" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/users/22656/jon-skeet&quot;&gt;Jon Skeet&lt;/a&gt; comes to mind as the only example I can picture of someone that may know it all.  Of course, that could also be taken as a joke similar to the &quot;Chuck Norris&quot; jokes that are more mainstream.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowing how to quickly pick up a new technology or skill would be part of the magic formula I'd imagine.  Another way to see some of this debate is to look at the &quot;Generalist vs Specialist&quot; debate where someone asks if it is better to be a Jack-of-all trades rather than someone that knows one things &lt;em&gt;really really really&lt;/em&gt; well.  There are advantages and disadvantages to each and every programmer has to decide where in this spectrum do they want to fit.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-02T23:57:40.063" />
  <row Id="9092" PostTypeId="2" ParentId="9083" CreationDate="2010-10-03T00:02:46.090" Score="0" ViewCount="" Body="&lt;p&gt;Here's a couple ways I've found over the years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Listen to podcasts.  Typically the topics will be the latest and greatest, or at least the conversations will give you ideas of what technologies/frameworks/languages are becoming more main stream.  It makes for a great way to pass the time on your commute to/from work when there's not much else you can be doing productively.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Attend user groups meetings.  Granted this will take up a little more of your time, but it still gives you the opportunity to find out what's worth digging into.  Depending on your area and type of user group, you'll typically meet a lot of consultants who's job it is to stay up to date so they remain marketable.  So pick their brains as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Skim over blog posts.  Sure reading them in depth is helpful, but at least being aware of the topics that are out there will make you at least sound several times more involved than you really are.  You may not be able to do a fully feature comparison between an ASP.NET MVC and a Ruby On Rails application, but you'll at least be aware at a really high level that they exist and the general purpose they serve.&lt;/p&gt;&#xA;" OwnerUserId="62" LastActivityDate="2010-10-03T00:02:46.090" CommentCount="1" />
  <row Id="9093" PostTypeId="2" ParentId="1262" CreationDate="2010-10-03T00:11:17.757" Score="3" ViewCount="" Body="&lt;p&gt;Rapid access to the command-line. CTRL+Z or :wqa will get me a command line in less than 1sec without my hand leaving the keyboard.&lt;/p&gt;&#xA;" OwnerUserId="4328" LastActivityDate="2010-10-03T00:11:17.757" CommentCount="1" />
  <row Id="9094" PostTypeId="2" ParentId="5019" CreationDate="2010-10-03T00:23:57.803" Score="0" ViewCount="" Body="&lt;p&gt;Yes. Let's be honest; we don't want to follow someone else's architecture. Ideally, we would also code.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-03T00:23:57.803" />
  <row Id="9095" PostTypeId="1" AcceptedAnswerId="12291" CreationDate="2010-10-03T00:38:22.733" Score="16" ViewCount="819" Body="&lt;p&gt;F# and Scala are both functional programming langugages that don't force the developer to only use immutable datatypes. They both have support for objects, can use libraries written in other languages and run on a virtual machine. Both languages seem to be based on ML.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the biggest differences between F# and Scala despite the fact that F# is designed for .NET and Scala for the Java platform?&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-16T01:48:46.130" Title="What are the biggest differences between F# and Scala?" Tags="&lt;programming-languages&gt;&lt;comparison&gt;&lt;functional-programming&gt;&lt;f#&gt;&lt;scala&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="2" />
  <row Id="9096" PostTypeId="2" ParentId="9095" CreationDate="2010-10-03T01:54:01.413" Score="1" ViewCount="" Body="&lt;p&gt;F# has access to the libraries in the .Net Framework and Scala has access to the Java libraries. After that, the languages are pretty similar. &lt;/p&gt;&#xA;" OwnerUserId="29" LastActivityDate="2010-10-03T01:54:01.413" CommentCount="2" />
  <row Id="9097" PostTypeId="2" ParentId="8076" CreationDate="2010-10-03T02:13:43.197" Score="1" ViewCount="" Body="&lt;p&gt;One of the most subtle I've seen was a Delphi developer moving to C# (and, no, this wasn't me).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Delphi 7, a common idiom was this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for i := 0 to myObject.Lines.Count-1 do&#xA;begin&#xA;    line = myObject.Lines[i];&#xA;    // do something here&#xA;end&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The Delphi convention was that a &lt;code&gt;Count&lt;/code&gt; property plus an &lt;code&gt;indexer[i]&lt;/code&gt; was how you made a list of items available. Normal practice was that these directly accessed some inner list or collection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When transliterated into C#, the code became this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for (int i = 0; i &amp;lt; myObject.Lines.Count; i++)&#xA;{&#xA;    Line line = myObject.Lines[i];&#xA;    // do something here&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And all is well, right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, no. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a lot of C# code, the object returned by &lt;code&gt;myObject.Lines&lt;/code&gt; is an actual list; to avoid breaking encapsulation, some objects implement the property getter by returning a &lt;em&gt;copy&lt;/em&gt; of the list. When this happens, the above code creates two separate list copies for every pass through the loop iteration. Given that each copy itself is O(N) in the size of the list, the code automatically becomes O(N^2). Ouch!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;em&gt;correct&lt;/em&gt; way to write the code in C# is this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var mylist = myObject.Lines;&#xA;for (int i = 0; i&amp;lt; mylist.Count; i++)&#xA;{&#xA;    Line line = mylist[i];&#xA;    // do something here&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;A minor change, but one that ensures the list runs in O(N) instead of O(N^2).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update 19 December 2010&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coming back to this answer after a couple of months, I believe that the comment below by &lt;code&gt;Steve314&lt;/code&gt; is right - even the &lt;em&gt;&quot;corrected&quot;&lt;/em&gt; version I gave is still too close to the Delphi original.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using the native C# &lt;strong&gt;foreach&lt;/strong&gt; statement is much cleaner:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;foreach (var line in myObject.Lines)&#xA;{&#xA;    // do something here&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Further, for a developer using C# 3.0, and depending on the body of the loop, eliminating the loop by writing a Linq query might be &quot;even more&quot; native.&lt;/p&gt;&#xA;" OwnerUserId="4099" LastEditorUserId="4099" LastEditorDisplayName="" LastEditDate="2010-12-19T09:29:08.533" LastActivityDate="2010-12-19T09:29:08.533" CommentCount="2" />
  <row Id="9098" PostTypeId="2" ParentId="1262" CreationDate="2010-10-03T02:20:49.877" Score="1" ViewCount="" Body="&lt;p&gt;Depending on what you language you are programming, stick with the ide, or get the ide that offers the most refactorings that you can find, get resharper for visual studio if you are doing c#, intellij for java, or visual assist for visual studio, max out the refactorings in eclipse or netbeans. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We should be moving from manipulating text to manipulate code, refactoring tools give you that ability. If vim does give you all the features fine, I for one don't really want to deal with a text editor anymore &lt;/p&gt;&#xA;" OwnerUserId="4171" LastActivityDate="2010-10-03T02:20:49.877" />
  <row Id="9099" PostTypeId="1" AcceptedAnswerId="9100" CreationDate="2010-10-03T02:54:49.983" Score="41" ViewCount="1311" Body="&lt;p&gt;As a programmer, do you see any professional or other advantage in using your real name in online discourse, versus an invented handle? I've always gone by a single username and had my real name displayed whenever possible, for a few reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;My interests online are almost exclusively professional and aboveboard.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It constructs a search-friendly public log of all of my work, everywhere.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If someone wants to contact me, there are many ways to do it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;My portfolio of work is all tied to me personally.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Possible cons to full disclosure include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;If you feel like becoming involved in something untoward, it could be harder.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The psychopath who inherits your project can more easily find out where you live.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You might be spammed by people who are not worth the precious time that could be better spent writing more of the brilliant software you're famous for.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Your portfolio of work is all tied to you personally.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It seems, anyway, that a vast majority of StackOverflow users go by invented handles rather than real names. Notable exceptions include the best-known users, who are typically well established in the industry. But how could we ever become legendary rockstar programmers if we didn't get our names out there? Discuss.&lt;/p&gt;&#xA;" OwnerUserId="2107" LastActivityDate="2011-01-14T08:28:07.590" Title="What are the advantages and disadvantages to using your real name online?" Tags="&lt;career&gt;&lt;great-programmer&gt;&lt;popularity&gt;" AnswerCount="14" CommentCount="3" FavoriteCount="13" />
  <row Id="9100" PostTypeId="2" ParentId="9099" CreationDate="2010-10-03T03:08:48.813" Score="66" ViewCount="" Body="&lt;p&gt;The biggest thing I can think of is both an advantage and a disadvantage: &lt;strong&gt;everything you put online under your real name will follow you&lt;/strong&gt;. This is good when you are posting good, constructive things. It's bad when you post a picture of you from &lt;em&gt;that&lt;/em&gt; night or when you say something offensive or just plain stupid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that using my real name helps keep me in check -- I think more about what I say and how I say it. But it has on occasion been inconvenient when using my name invited personal attacks for various reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All in all, my approach is to use my real name when dealing with professional-ish stuff and to use a handle for personal interests and things I might not want to be as easily searchable.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-03T03:08:48.813" CommentCount="3" />
  <row Id="9101" PostTypeId="2" ParentId="485" CreationDate="2010-10-03T03:10:07.477" Score="0" ViewCount="" Body="&lt;p&gt;Getting paid to design and implement the next hugely popular programming language, and getting a pension to maintain it, while it remains in widespread use, until I &lt;code&gt;GOSUB&lt;/code&gt; without &lt;code&gt;RETURN&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2107" LastActivityDate="2010-10-03T03:10:07.477" />
  <row Id="9102" PostTypeId="2" ParentId="9099" CreationDate="2010-10-03T03:20:53.763" Score="2" ViewCount="" Body="&lt;p&gt;Another way to view this question is what name do you consider to be your identity.  For example, my full legal name would be &quot;John Brock King II&quot; while most people call me JB and there are several nicknames I have had over the years, some stemming from various interpretations of JB like James Brown, James Bond, Jim Bean, etc.  while others have other stories behind their origin like Boogus or Funkmeister.  I choose to identify with my name as JB rather than John as this is what I was called growing up and my name is similar to my fathers except I have a II at the end of mine.  &quot;John King&quot; can be a rather common name as there is a CNN correspondent with that name among others.  I'm often asked for my date of birth at the doctor's office and pharmacies because my name matches so much.  Even &quot;JB King&quot; can still match some stuff like a shipwreck so it isn't totally unique unto myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people are known by part of their name and others like to create their own identities.  After all, what are the odds Lady Gaga would actually change her last name to Gaga?  I'm thinking slim to none but maybe that's just me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do consider J.B. King to be my real name though for legal matters it isn't always adequate.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-03T03:20:53.763" CommentCount="1" />
  <row Id="9103" PostTypeId="2" ParentId="9055" CreationDate="2010-10-03T03:32:37.450" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Joel Spolsky&lt;/strong&gt; - Co-Creator of Stackoverflow&lt;/p&gt;&#xA;" OwnerUserId="53" LastEditorUserId="53" LastEditorDisplayName="" LastEditDate="2010-10-03T15:03:08.163" LastActivityDate="2010-10-03T15:03:08.163" CommunityOwnedDate="2010-10-04T20:51:23.403" CommentCount="2" />
  <row Id="9104" PostTypeId="2" ParentId="9099" CreationDate="2010-10-03T03:38:23.723" Score="9" ViewCount="" Body="&lt;p&gt;Two big down-sides for me:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The name I use to sign checks isn't unique. Even in the mid-90's, I was already getting email from people who'd seen my name on a newsgroup somewhere and assumed I was someone else. My name isn't even terribly common - but The Internet is a pretty big namespace...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It increases the temptation to self-promote. I've seen this a lot - folks go job hunting, change their online IDs to reflect the name they're putting on resumes, and their whole act changes. You might consider this a &lt;em&gt;good&lt;/em&gt; thing, encouraging a professional attitude and such... But I have little desire to interact with people who are constantly in &quot;interview-mode&quot;, and even less desire to spend time there myself.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Your online identity is what you produce, not what you name it. Getting hung up on a name is as silly as getting hung up on an avatar photo... Which, incidentally, do not usually correspond to the &quot;real names&quot; they're attached to.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-10-03T03:38:23.723" CommentCount="1" />
  <row Id="9105" PostTypeId="2" ParentId="9099" CreationDate="2010-10-03T03:49:47.457" Score="1" ViewCount="" Body="&lt;p&gt;One advantage to using my real name: A high school friend was able to get back in touch because I made enough apparently interesting posts on a language forum to put me in several of the top 10 google results for my name. &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-03T03:49:47.457" CommentCount="1" />
  <row Id="9106" PostTypeId="2" ParentId="9062" CreationDate="2010-10-03T03:57:47.330" Score="40" ViewCount="" Body="&lt;p&gt;&lt;em&gt;If I don't put curly-braces around my if-statement consequent statement, another programmer will add a second statement assuming the braces are there but invisible, and bears will eat him.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a member of the &quot;maintenance programmers will neither know the language nor read the code&quot; family of superstitions, born during a period in the late-80s when Microsoft experimented with using idiots to write software for Windows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Related superstitions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;em&gt;Every line should have a comment explaining what it does in plain English, or the CTO won't be able to read the code.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;em&gt;Exceptions must be caught as soon as possible, even if the catching code has no possible way to understand or recover from them.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;em&gt;Writing macros makes hair grow on your palms.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="63" LastEditorUserId="1707" LastEditorDisplayName="" LastEditDate="2011-04-08T13:16:54.183" LastActivityDate="2011-04-08T13:16:54.183" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="16" />
  <row Id="9107" PostTypeId="2" ParentId="7749" CreationDate="2010-10-03T04:55:36.463" Score="1" ViewCount="" Body="&lt;p&gt;There are a few different ideas I'd suggest:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Get involved in your local community organizations that may help with some skills.  For example, in my case a local .Net User Group can be useful for building contacts, seeing code, asking questions about code, etc.  This could also give you an idea where some great programmers are as some may share an employer that seems like a great place.  &lt;a href=&quot;http://altdotnet.org/&quot; rel=&quot;nofollow&quot;&gt;Alt.Net&lt;/a&gt; would be another example of something that may be useful in some cases.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Ask and answer questions here and on &lt;a href=&quot;http://stackoverflow.com/&quot;&gt;StackOverflow&lt;/a&gt; can also increase your knowledge as well as test what you know.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Understand the scale of various solutions.  For example, some IT projects may require years of work to get done because so much has to be done spread over so few people in replacing a big system like an ERP, CRM or CMS.  Similarly, a bug fix may have various approaches to fix it depending on how long someone has to work on it:  It may be fixed in 2 days, 2 months or 2 years.  In some cases, each can make sense depending on how bad the bug really is.  When are you just doing a little proof of concept project and when are you building an enterprise application that has to survive in production for years.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Consider various personal development ideas.  &lt;a href=&quot;http://sourcesofinsight.com/&quot; rel=&quot;nofollow&quot;&gt;Sources of Insight&lt;/a&gt; would be a blog example that has various ideas that may or may not be something for you.  There are tons of self-help books and chances are there are probably a few that may help you but figuring out which ones those are may be a bit of a challenge.  &lt;a href=&quot;http://en.wikipedia.org/wiki/How_to_Win_Friends_and_Influence_People&quot; rel=&quot;nofollow&quot;&gt;How to Win Friends and Influence People&lt;/a&gt; would be a book suggestion about how to deal with people.  Other book ideas here would include The Mythical Man Month, Peopleware, and Joel on Software.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Likely some combination of these and others are what some do to be the great programmers is my guess at an answer.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-03T04:55:36.463" CommunityOwnedDate="2011-02-13T16:19:27.957" />
  <row Id="9108" PostTypeId="2" ParentId="8958" CreationDate="2010-10-03T05:00:00.803" Score="2" ViewCount="" Body="&lt;p&gt;Estimates are done by management and are based upon getting the job/contract.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-03T05:00:00.803" CommentCount="2" />
  <row Id="9109" PostTypeId="2" ParentId="2023" CreationDate="2010-10-03T05:05:30.683" Score="0" ViewCount="" Body="&lt;p&gt;I use DiffMerge because it is simple but works, just like me.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-03T05:05:30.683" />
  <row Id="9110" PostTypeId="2" ParentId="8958" CreationDate="2010-10-03T05:12:55.347" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.zdnet.com/blog/projectfailures&quot; rel=&quot;nofollow&quot;&gt;IT Project Failures&lt;/a&gt; and &lt;a href=&quot;http://www.cioupdate.com/reports/article.php/1563701/Software-Project-Failure-The-Reasons-The-Costs.htm&quot; rel=&quot;nofollow&quot;&gt;Software Project Failure&lt;/a&gt; may have some answers as well as sources just in case someone wants something to back up a claim about failures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2006/05/the-long-dismal-history-of-software-project-failure.html&quot; rel=&quot;nofollow&quot;&gt;Coding Horror:The Long, Dismal History of Software Project Failure&lt;/a&gt; is a blog post from Jeff Atwood on the subject as another resource.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-03T05:12:55.347" />
  <row Id="9111" PostTypeId="2" ParentId="9062" CreationDate="2010-10-03T05:17:11.343" Score="26" ViewCount="" Body="&lt;p&gt;If you don't get enough caffeine, you'll fall asleep on your keyboard and never wake up again.&lt;/p&gt;&#xA;" OwnerUserId="90" LastEditorUserId="90" LastEditorDisplayName="" LastEditDate="2010-10-03T05:22:36.027" LastActivityDate="2010-10-03T05:22:36.027" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="5" />
  <row Id="9112" PostTypeId="2" ParentId="8269" CreationDate="2010-10-03T05:30:40.950" Score="1" ViewCount="" Body="&lt;p&gt;Marc Stiegler gave a very interesting TechTalk at Google a couple of months ago, titled &lt;a href=&quot;http://Youtube.Com/?v=eL5o4PFuxTY&quot; rel=&quot;nofollow&quot;&gt;The Lazy Programmer's Guide to Secure Computing&lt;/a&gt;, in which he argues that being a Lazy Programmer automatically makes your code secure. It's quite a brilliant lecture!&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-10-03T05:30:40.950" CommunityOwnedDate="2010-10-03T05:30:40.950" />
  <row Id="9113" PostTypeId="2" ParentId="9042" CreationDate="2010-10-03T05:42:49.357" Score="4" ViewCount="" Body="&lt;p&gt;You've completely skipped a few points I'd consider pretty serious. First, Java forces the user to install a JVM. That last time I noticed, the JRE was around 15 megabytes. Especially for things like small utilities, this strikes me as completely unacceptable, and even for medium-sized programs, it can be a substantial extra burden. Worse, installing the JRE isn't necessarily trivial either either -- with some slightly oddball environments, I've seen it take three or four attempts along with a fair amount of help to get it working. To compound this, the developer using Java generally can't do much of anything to help. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, version number seems to have been designed &lt;em&gt;specifically&lt;/em&gt; to foster confusion. Even with the small amount of Java &quot;stuff&quot; I've written/distributed, I've still be bombarded with questions about &quot;what do you mean I need Java 6 -- I looked carefully and there's no question that the latest version is 1.something&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Third, various programs require different versions of the JVM. In theory, this shouldn't happen, but in fact it's actually fairly common. As long as the user always updates things regularly, it's not a problem, but the guy who's still running Office 95 on Windows 2000 (or whatever), almost inevitably has some ancient thing that he absolutely &lt;em&gt;needs&lt;/em&gt; that won't run on anything newer than (say) JDK 1.2. Regardless of the details, fixing the problem is next to impossible, and nearly nobody will even consider doing anything at all to help you with it either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Until problems like these are addressed, nothing you do for the developers will amount to anything. Even switching to a completely different language and library doesn't help; if it depends on the JVM, it's a waste.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The worst of these is clearly the version conflict. Just FWIW, Microsoft &lt;em&gt;has&lt;/em&gt; addressed that particular problem fairly well with .NET -- you can have .NET 1.1, 2.0, 3.0, 3.5 and 4.0 all installed and working simultaneously. The price for that is make the problem with download size drastically worse -- if I'm not mistaken, supporting all those requires a few hundred megabytes of downloads instead of a dozen or so. Personally, I think this is taking &quot;when in doubt use brute force&quot; just a bit further than was probably intended, but at least it can work (in fairness, .NET has more than its own share of problems -- but they are &lt;em&gt;different&lt;/em&gt; problems).&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-03T05:42:49.357" CommentCount="1" />
  <row Id="9114" PostTypeId="2" ParentId="9042" CreationDate="2010-10-03T05:59:20.067" Score="-4" ViewCount="" Body="&lt;p&gt;I don't really have much of an opinion on Java other than to say from what I can see most Java development is for 'enterprise' applications. Enterprise is not that cool, startups are cool. Startups use Rails so Rails is cool (until enterprises start using it). C# is somewhere in the middle so people have a love/hate relationship with it.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-03T05:59:20.067" CommentCount="1" />
  <row Id="9115" PostTypeId="2" ParentId="9062" CreationDate="2010-10-03T06:33:07.987" Score="61" ViewCount="" Body="&lt;p&gt;I've seen several good programmers hit Ctrl+C twice (or more) to 'make sure' something was copied to the clipboard, and they are unaware that they do it. I'm sure I have even done it myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might be that we, as programmers, know that even the most basic features can be subject to race conditions, bugs, weird scenarios, etc. Even Ctrl+C and it is better to be sure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, it's just paranoia.&lt;/p&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-10-03T06:33:07.987" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="22" />
  <row Id="9116" PostTypeId="2" ParentId="9099" CreationDate="2010-10-03T07:09:30.320" Score="6" ViewCount="" Body="&lt;p&gt;I see more disadvantages than advantages, which is why I generally don't use my name online.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Stalking&lt;/strong&gt;: I've never had a stalker (we're talking, creepy phone-calling, stealing your mail, hacking your e-mail kind of stalking), but it's happened to both of my siblings and is more common than you think.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dumb Stupidity&lt;/strong&gt;: it's going to happen, I will say something stupid. In the ideal case, it won't be intentional. But with so many eyes, writings can be mis-interpreted. A perfectly normal and acceptable opinion now, may not be in a few years and writing on the internet is eternal.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Not-Dumb Stupidity&lt;/strong&gt;: There are times, where if you look through my SO question history, I will have brain farted and asked a ridiculously stupid question that I already knew the answer to. I reserve the right to do that without the potential for persecution from my peers.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The only upside I can see is building a positive reputation, which can have great ramifications, but I'm an average nobody software developer. So that doesn't really apply to me. It might to you.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-03T07:09:30.320" CommentCount="2" />
  <row Id="9117" PostTypeId="2" ParentId="9042" CreationDate="2010-10-03T07:15:39.980" Score="15" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;According to you all, Java is the third most-hated language here. The two other most hated languages are PHP and VBScript.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Ironically, Java and PHP are also the most used languages out there. As Bjarne Stroustrup puts it: &lt;em&gt;There are only two kinds of languages: the ones people complain about and the ones nobody uses.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-03T09:36:13.483" LastActivityDate="2010-10-03T09:36:13.483" CommentCount="3" />
  <row Id="9118" PostTypeId="2" ParentId="9062" CreationDate="2010-10-03T07:34:39.203" Score="65" ViewCount="" Body="&lt;p&gt;That if it compiles and runs the first time... it's worse than if there were errors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know if it's true, but experience has shown me that I'm &lt;em&gt;never&lt;/em&gt; right the first time.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-03T07:34:39.203" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="13" />
  <row Id="9119" PostTypeId="1" CreationDate="2010-10-03T07:42:29.037" Score="4" ViewCount="412" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am new to PHP (Have good j2EE and ASP .net experience) and now want to kick start developing a simple website (A database connection and simple inserts is the max technical stuff i plan right now). I have signed up at zymic for a free hosting (MySql included). Now please suggest me:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;the available IDEs for developing on PHP on windows OS&lt;/li&gt;&#xA;&lt;li&gt;and any beginner level resources that you have come across, for a .net/java guy which may help me to quickly figure out the differences &lt;/li&gt;&#xA;&lt;li&gt;would you advice me to go for frameworks like joomla etc as a beginner? or is it better i start exploring these after im familiar with PHP?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance,&#xA;Abhi&lt;/p&gt;&#xA;" OwnerUserId="4338" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-04-26T15:01:00.800" LastActivityDate="2011-04-26T15:03:53.697" Title="Which are the options available for PHP IDEs for windows" Tags="&lt;php&gt;&lt;ide&gt;&lt;frameworks&gt;" AnswerCount="10" CommentCount="1" FavoriteCount="1" />
  <row Id="9120" PostTypeId="2" ParentId="9119" CreationDate="2010-10-03T08:17:48.503" Score="3" ViewCount="" Body="&lt;p&gt;1: As IDE, I use emacs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3: Learn PHP first before you touch the frameworks: I've had to interview quite a few people who thought they knew how to program because they could tweak a framework.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-03T08:17:48.503" CommentCount="3" />
  <row Id="9121" PostTypeId="2" ParentId="9099" CreationDate="2010-10-03T08:49:52.567" Score="2" ViewCount="" Body="&lt;p&gt;Hmm, this question got me thinking here..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always use my invented name. why?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Seperation between personal and Work. I find this very very important! (I do have my real name on the internet, but ONLY on a social network. (Hyves, And that account is also locked if your not my friend.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(I am thinking about putting my real name on stackoverflow)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;If you do become famous, you can enjoy all of those benefits/downsides even with a invented name. people will just know you by that name.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;As snorfus pointed out, stupidity is something I am good at. :) Mostly because I am only just began programming (3 years)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Isn't internet all about privacy? :)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4168" LastActivityDate="2010-10-03T08:49:52.567" />
  <row Id="9122" PostTypeId="1" AcceptedAnswerId="9137" CreationDate="2010-10-03T09:05:30.380" Score="8" ViewCount="364" Body="&lt;p&gt;I have done much development in Java using Eclipse, and now I have started to use Visual Studio for .NET development. So far I find the IDEs to be able to do the same things, but just different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What features in Eclipse isn't available in Visual Studio?&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-07T11:19:05.853" Title="What features in Eclipse is not available in Visual Studio?" Tags="&lt;ide&gt;&lt;comparison&gt;&lt;features&gt;&lt;eclipse&gt;&lt;visual-studio&gt;" AnswerCount="5" CommentCount="3" />
  <row Id="9123" PostTypeId="2" ParentId="9099" CreationDate="2010-10-03T09:08:15.980" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;If you feel like becoming involved in something untoward, it could be harder.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This one is a little more complex than what you feel about something - it's not whether you think it's untoward that's relevant, it's what everybody else thinks.  For instance I might not think that attending a political rally in support of voting reform is untoward, but others may.  On the other hand, many people might not think being actively involved in an evangelical church is untoward, but it may, if I knew nothing else about them, negatively impact my opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Despite all this, I think there's value in being honest, both online and offline, and I think knowing that what you say online can be tracked back to you offline can have a civilising influence.&lt;/p&gt;&#xA;" OwnerUserId="4116" LastActivityDate="2010-10-03T09:08:15.980" />
  <row Id="9124" PostTypeId="2" ParentId="9119" CreationDate="2010-10-03T09:51:21.100" Score="3" ViewCount="" Body="&lt;h2&gt;Netbeans&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Has great php support plus code competion and phpdoc's built in.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you get the basics of php it may be worth it to check out how a framework like cakePHP or codeIgniter works.&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-10-03T09:51:21.100" />
  <row Id="9125" PostTypeId="2" ParentId="9122" CreationDate="2010-10-03T10:10:39.820" Score="1" ViewCount="" Body="&lt;p&gt;I assume you refer to the out-of-the-box Eclipse vs. out-of-the-box VS (otherwise, there are always plugins that add extra features).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Missing from VS:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ctrl+click on a method name to go its definition;&lt;/li&gt;&#xA;&lt;li&gt;Auto brace complete (for C#) - but, to be honest, sometimes is annoying;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-10-03T10:10:39.820" CommentCount="6" />
  <row Id="9126" PostTypeId="2" ParentId="9099" CreationDate="2010-10-03T11:42:44.340" Score="6" ViewCount="" Body="&lt;p&gt;Obviously putting stuff online under your real name can give you some sort of profile, and I've recently had people at work recognise my name on StackOverflow.  I don't see this as particularly good or bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A benefit of having high visibility online is that people can more easily contact or find out about me.  Google and there are relevant results: I get calls from recruiters who find me on LinkedIn, and someone with a non-work related opportunity actually googled me, found where I worked and then called reception to speak to me.  Maybe some people would find that annoying, but it hasn't annoyed me yet - instead I've had a few good outcomes from it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally like the fact that someone can google me and see what I am up to - at least, the things that I put into the public sphere.&lt;/p&gt;&#xA;" OwnerUserId="2620" LastActivityDate="2010-10-03T11:42:44.340" />
  <row Id="9127" PostTypeId="2" ParentId="9062" CreationDate="2010-10-03T12:06:18.053" Score="134" ViewCount="" Body="&lt;p&gt;first pressing &quot;Apply&quot; then pressing &quot;OK&quot; buttons&lt;/p&gt;&#xA;" OwnerUserId="3049" LastActivityDate="2010-10-03T12:06:18.053" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="14" />
  <row Id="9128" PostTypeId="2" ParentId="7749" CreationDate="2010-10-03T12:34:10.240" Score="1" ViewCount="" Body="&lt;p&gt;Two things I didn't see mentioned:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Documentation, a lot of it.&lt;/strong&gt;&#xA;Many programmers overlook this, but in truth, documentation and references enhances your future work, especially if you're a forgetful guy like me.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keep away from good programmers.&lt;/strong&gt; This is mostly to break the trend in answers, but give me a chance to explain myself. Although I've learned a lot from good programmers, they're like a drug. Too much of them and you're one of them. The thing is, being a good programmer isn't constant. While someone is good at a certain kind of programming, he slowly dies out, just as that particular technology dies out (obsoletion etc).&#xA;&lt;em&gt;So why should one keep on his own?&lt;/em&gt; It instills a sense of creativity in you. For instance, I used to write &lt;em&gt;a lot&lt;/em&gt; of &lt;code&gt;eval()&lt;/code&gt; in GML, and slowly found out how it was bad for performance. By the time I started writing JS, I knew how to avoid &lt;code&gt;eval()&lt;/code&gt; at all costs. Not only that, but today, I even know where to use &lt;code&gt;eval()&lt;/code&gt;.&#xA;If I had to go &quot;the great programmer way&quot;, I wouldn't be using &lt;code&gt;eval()&lt;/code&gt; at all (Crockford et al) which is bad considering there are places (such as dynamic code) where one really needs to use this feature.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;(did I just wrte &lt;code&gt;eval()&lt;/code&gt; 5 times? ;-) )&lt;/p&gt;&#xA;" OwnerUserId="4344" LastActivityDate="2010-10-03T12:34:10.240" CommunityOwnedDate="2011-02-13T16:19:27.957" />
  <row Id="9129" PostTypeId="2" ParentId="9119" CreationDate="2010-10-03T12:48:02.450" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.jetbrains.com/phpstorm/&quot; rel=&quot;nofollow&quot;&gt;PhpStorm&lt;/a&gt; is a commercial PHP editor from JetBrains (who also make IntelliJ IDEA for Java).  It has code completion, and many debugging features.  It is also a JavaScript/HTML/CSS editor.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-03T12:48:02.450" />
  <row Id="9130" PostTypeId="1" CreationDate="2010-10-03T13:02:33.430" Score="2" ViewCount="179" Body="&lt;p&gt;I will be leaving for a new job at the end of the month, my last day at my current company is the 31.10. But I have still some holidays left, so effectively I´ll leave at 18.10. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As my current company has not found anyone who could pick up my work yet, they asked me to stay at least some days longer or until the end of the month - basically they want me to give up my free days in exchange for some yet to be defined amount of money (they said I wouldn´t regret it money-wise). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Problem is: my new job already starts at 1.11., so I probably need at least a week or so in order to relax before I start at my new company. At my new company I also have to use some frameworks I haven´t used before (which I am relly looking forward to!) and therefore I think about spending some time in my holiday in order to pick up the new stuff I´ll have to work with in the future. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, as always, I could really use that extra money I could earn in exchange for my holiday... not desperately, but still... a few extra bucks are always nice to have...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, has anyone experienced a similiar situation? What did/would you do?&lt;/p&gt;&#xA;" OwnerUserId="2689" LastActivityDate="2010-10-03T14:03:35.040" Title="Stay a little longer at current job or prepare for new company?" Tags="&lt;career-advice&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="9131" PostTypeId="2" ParentId="525" CreationDate="2010-10-03T13:07:59.110" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.jetbrains.com/phpstorm/&quot; rel=&quot;nofollow&quot;&gt;PhpStorm&lt;/a&gt; is a commercial PHP editor from JetBrains with code completion, and many debugging features. It is also a JavaScript/HTML/CSS editor.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-03T13:07:59.110" CommentCount="1" />
  <row Id="9132" PostTypeId="2" ParentId="9062" CreationDate="2010-10-03T13:08:24.740" Score="17" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/368/why-do-people-still-say-java-is-slow&quot;&gt;Java&lt;/a&gt; &lt;a href=&quot;http://stackoverflow.com/questions/2163411/why-did-java-have-the-reputation-of-being-slow&quot;&gt;is slow&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-10-03T13:08:24.740" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="7" />
  <row Id="9133" PostTypeId="2" ParentId="9099" CreationDate="2010-10-03T13:21:20.507" Score="3" ViewCount="" Body="&lt;p&gt;I do my professional things under my real name and always have even back to the days of newsgroups. I also use an email address that clearly is related to my business: gregcons.com is Gregory Consulting. My Twitter handle is gregcons because KateGregory was taken. I've been doing this since before there was a World Wide Web at all and recommend it. I definitely find significant advantages to having a consistent professional profile.  You think before you write - it's going to stick around forever under your real name. People can check you out and confirm that you are capable. I find no shame in the possibility that someone will see I didn't know everything at some point in the past. If anything it shows I was always learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I do some personal things under a pseudonym. FlyerTalk for example. If I'm going to post about getting away with something, I'd rather the airlines weren't able to look up my record and investigate it. And on the stalker front, we often post rather specific travel plans on FT and I don't really want those associated with my real name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The creepiest correspondence I have ever received was a paper letter that came to my house from someone in a nearby jail who was reading my Visual C++ programming books and wanted to stop by and meet me when he got out. I realize that doesn't set a very high bar for creepy especially since he never wrote again. Perhaps that's why using my real name online doesn't worry me. For over twenty years it has brought me nothing but good.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-03T13:21:20.507" CommentCount="1" />
  <row Id="9134" PostTypeId="2" ParentId="9130" CreationDate="2010-10-03T13:33:00.503" Score="8" ViewCount="" Body="&lt;p&gt;Hey man.  We cannot decide this for you.  You need to make your own decision.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which is more important to YOU?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;your need/desire for the money, and your residual loyalty to your old employer and/or workmates, OR&lt;/li&gt;&#xA;&lt;li&gt;your need/desire for a holiday, and your desire to make a good impression with your new employer.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I cannot say what I would do in this situation because I don't know the whole story.  Besides, my values are probably different to yours, and what is most important is that you do something that you are comfortable with.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-10-03T13:33:00.503" />
  <row Id="9135" PostTypeId="2" ParentId="9099" CreationDate="2010-10-03T13:44:00.353" Score="1" ViewCount="" Body="&lt;p&gt;I'm not sure what my real name is anymore. Seriously: there are people I know mainly in real life, who I rarely talk to online, who still know me as TRiG. (They'd know my real name too, usually.) And there are people I know mainly or exclusively online who'd still know my real name. The two identities blur together, especially since the nickname TRiG is in fact derived from my initials.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit to add: You could find my online postings across a lot of forums very easily if you found a case-sensitive search engine.&lt;/p&gt;&#xA;" OwnerUserId="2406" LastActivityDate="2010-10-03T13:44:00.353" />
  <row Id="9137" PostTypeId="2" ParentId="9122" CreationDate="2010-10-03T14:01:02.430" Score="4" ViewCount="" Body="&lt;p&gt;Eclipse has its &lt;a href=&quot;http://www.vasanth.in/2004/06/02/eclipse-tip-local-history/&quot; rel=&quot;nofollow&quot;&gt;Local History&lt;/a&gt; which is kind of like a super duper Undo.  I am not aware of a similar feature in VS.&lt;/p&gt;&#xA;" OwnerUserId="4260" LastActivityDate="2010-10-03T14:01:02.430" CommentCount="2" />
  <row Id="9138" PostTypeId="2" ParentId="9130" CreationDate="2010-10-03T14:03:35.040" Score="1" ViewCount="" Body="&lt;p&gt;I don't know how long it has been since your last break or how much of a break you really need. Seems like you are leaving on good terms. Try to work something out. Maybe you stay on a little longer with some flex time or a couple of 3 day weekends. If they have a particular project they want you to finish, maybe you work a little extra to finish it and then have the rest of the time to yourself. Let them know you need to do some studying on the new technology. Make sure you get some sort of commitment in writing and negotiate from there. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-03T14:03:35.040" CommentCount="1" />
  <row Id="9139" PostTypeId="2" ParentId="9055" CreationDate="2010-10-03T14:16:11.997" Score="18" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Kent Beck&lt;/strong&gt; -  creator of XP and TDD. Author of &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321413091&quot; rel=&quot;nofollow&quot;&gt;Implementation Patterns&lt;/a&gt;, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321278658&quot; rel=&quot;nofollow&quot;&gt;Extreme Programming Explained&lt;/a&gt;, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321146530&quot; rel=&quot;nofollow&quot;&gt;Test Driven Development&lt;/a&gt;. Co-creator (with Erich Gamma) of &lt;a href=&quot;http://kentbeck.github.com/junit/&quot; rel=&quot;nofollow&quot;&gt;JUnit&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="25936" LastEditorDisplayName="" LastEditDate="2011-05-26T19:44:32.570" LastActivityDate="2011-05-26T19:44:32.570" CommunityOwnedDate="2010-10-04T20:51:23.403" CommentCount="5" />
  <row Id="9140" PostTypeId="2" ParentId="9055" CreationDate="2010-10-03T14:16:58.737" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Robert C Martin&lt;/strong&gt; (aka Uncle Bob Martin or simply Uncle Bob) -  famous Agile and XP professional. Author of &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0132350882&quot; rel=&quot;nofollow&quot;&gt;Clean Code&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="3262" LastEditorDisplayName="" LastEditDate="2010-10-16T00:24:33.637" LastActivityDate="2010-10-16T00:24:33.637" CommunityOwnedDate="2010-10-04T20:51:23.403" />
  <row Id="9142" PostTypeId="2" ParentId="9055" CreationDate="2010-10-03T14:22:04.837" Score="26" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Richard_Stallman&quot; rel=&quot;nofollow&quot;&gt;Richard Stallman&lt;/a&gt;, the initiator of the GNU project and founder of the Free Software Foundation.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-03T14:22:04.837" CommunityOwnedDate="2010-10-04T20:51:23.403" CommentCount="1" />
  <row Id="9146" PostTypeId="2" ParentId="2591" CreationDate="2010-10-03T14:41:31.887" Score="1" ViewCount="" Body="&lt;p&gt;There are lots of good ones.  One I like that I don't see listed here is &lt;a href=&quot;http://www.joelonsoftware.com/items/2006/08/01.html&quot; rel=&quot;nofollow&quot;&gt;Can your programming language do this?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="151" LastActivityDate="2010-10-03T14:41:31.887" />
  <row Id="9148" PostTypeId="1" CreationDate="2010-10-03T14:52:22.247" Score="5" ViewCount="141" Body="&lt;p&gt;Which software development methodology do you like best of those you've been subjected to? And most importantly, why do you prefer it over the others?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-03T15:41:03.320" Title="Which software development methodology do you like best, and why?" Tags="&lt;development-methodologies&gt;" AnswerCount="2" />
  <row Id="9149" PostTypeId="2" ParentId="9048" CreationDate="2010-10-03T14:54:17.667" Score="3" ViewCount="" Body="&lt;p&gt;java is the number one favored by industry. learning it will get you hired&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-03T14:54:17.667" CommentCount="1" />
  <row Id="9150" PostTypeId="2" ParentId="9055" CreationDate="2010-10-03T14:58:40.960" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Rasmus Lerdorf&lt;/strong&gt; - Creator of PHP&lt;/p&gt;&#xA;" OwnerUserId="53" LastActivityDate="2010-10-03T14:58:40.960" CommunityOwnedDate="2010-10-04T20:51:23.403" />
  <row Id="9151" PostTypeId="2" ParentId="9055" CreationDate="2010-10-03T14:59:29.883" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://shiflett.org/about&quot; rel=&quot;nofollow&quot;&gt;Chris Shiflett&lt;/a&gt;&lt;/strong&gt; - Author of Essential PHP Security, Basically proved singlehandedly that PHP can be a secure language and taught us all how to do it&lt;/p&gt;&#xA;" OwnerUserId="53" LastActivityDate="2010-10-03T14:59:29.883" CommunityOwnedDate="2010-10-04T20:51:23.403" />
  <row Id="9153" PostTypeId="2" ParentId="9055" CreationDate="2010-10-03T15:00:27.010" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://terrychay.com/article/thats-terryist-to-you-sir.shtml&quot; rel=&quot;nofollow&quot;&gt;Terry Chay&lt;/a&gt;&lt;/strong&gt; - PHP Terrorist, Best known for his complete hatred of and railing against Rails&lt;/p&gt;&#xA;" OwnerUserId="53" LastActivityDate="2010-10-03T15:00:27.010" CommunityOwnedDate="2010-10-04T20:51:23.403" CommentCount="1" />
  <row Id="9155" PostTypeId="2" ParentId="9055" CreationDate="2010-10-03T15:02:23.030" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Jeff Atwood&lt;/strong&gt; - Co-Creator of Stackoverflow, Blogs at codinghorror.com&lt;/p&gt;&#xA;" OwnerUserId="53" LastActivityDate="2010-10-03T15:02:23.030" CommunityOwnedDate="2010-10-04T20:51:23.403" />
  <row Id="9158" PostTypeId="2" ParentId="9148" CreationDate="2010-10-03T15:18:52.740" Score="2" ViewCount="" Body="&lt;p&gt;We use SCRUM. I like it the best. We have a small team of 4 devs and it fits our style perfectly.  We are able to quickly respond to customer's changes and unforeseen things that come up, say a bug fix in a different project that just cant wait for a new iteration on THAT project, or a developer who to take several days off due to some family matter or other.  We are able to map out the tasks to complete the project and to know exactly what is required of us at any given time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can see &quot;here is where I am&quot; and &quot;this is where I need to go&quot; so &quot;this is what i have to get done today&quot;&lt;/p&gt;&#xA;" OwnerUserId="882" LastEditorUserId="882" LastEditorDisplayName="" LastEditDate="2010-10-03T15:41:03.320" LastActivityDate="2010-10-03T15:41:03.320" CommentCount="1" />
  <row Id="9159" PostTypeId="1" CreationDate="2010-10-03T15:24:10.713" Score="6" ViewCount="245" Body="&lt;p&gt;I am a trainee in development sector. My Boss says that i should be an agile programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I went through through the net and found some interesting things about agile programming. Being a newbee how should I start with agile?&#xA;What should be my first step in Agile programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At present I am in pair programming. But it's not exactly pair programming as I am just watching what my co-developer is doing. I also wish to be an agile developer.&#xA;Can you suggest a way for me stepwise?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wish to develop myself and also my programming skills.&lt;/p&gt;&#xA;" OwnerUserId="4353" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-10-03T16:08:43.283" LastActivityDate="2010-10-12T17:03:31.477" Title="How to be an agile programmer?" Tags="&lt;programming-languages&gt;&lt;experience&gt;&lt;productivity&gt;&lt;learning&gt;&lt;agile&gt;" AnswerCount="4" CommentCount="4" FavoriteCount="2" />
  <row Id="9160" PostTypeId="2" ParentId="9148" CreationDate="2010-10-03T15:24:46.517" Score="2" ViewCount="" Body="&lt;p&gt;I don't see &lt;a href=&quot;http://en.wikipedia.org/wiki/Rapid_application_development&quot; rel=&quot;nofollow&quot;&gt;Rapid Application Development&lt;/a&gt; mentioned too often, even though it's how many projects actually get done. I like it, because it's about as lean as you can get: just start doing, and the via rapid iteration the prototype gradually becomes the actual software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Granted, it works best for solo coding. For teams, some more formal flavor of Agile, such as Scrum, is about as close to RAD as you can get with a team.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-03T15:24:46.517" CommentCount="1" />
  <row Id="9161" PostTypeId="1" AcceptedAnswerId="9170" CreationDate="2010-10-03T15:29:49.650" Score="7" ViewCount="184" Body="&lt;p&gt;What are some strategies, methodologies and best-practices for managing a distributed team?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;What can be done to encourage and enforce communication between the various team members? &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Is it possible to adapt/implement existing agile development methodologies over a distributed team?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Related but not identical:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/7942/what-tools-are-available-for-remote-communication-when-working-from-home-or-with&quot;&gt;http://programmers.stackexchange.com/questions/7942/what-tools-are-available-for-remote-communication-when-working-from-home-or-with&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/18/which-programming-specialities-are-needed-in-a-good-web-development-team&quot;&gt;http://programmers.stackexchange.com/questions/18/which-programming-specialities-are-needed-in-a-good-web-development-team&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1444" LastActivityDate="2010-10-20T08:03:22.273" Title="Advice/guidelines for managing a distributed development team" Tags="&lt;project-management&gt;&lt;agile&gt;&lt;team&gt;&lt;collaboration&gt;&lt;distributed-development&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="9162" PostTypeId="2" ParentId="9159" CreationDate="2010-10-03T15:35:05.623" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Test-driven_development&quot; rel=&quot;nofollow&quot;&gt;Test Driven Development&lt;/a&gt; is a big part of being Agile. It doesn't take much, but makes one a much better programmer fast. It will teach you to write better-designed code, while making it more maintainable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also read &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/097451408X&quot; rel=&quot;nofollow&quot;&gt;Practices of an Agile Developer&lt;/a&gt;.&#xA;&lt;img src=&quot;http://i.imgur.com/4xyQh.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="3262" LastEditorDisplayName="" LastEditDate="2010-10-03T15:40:25.877" LastActivityDate="2010-10-03T15:40:25.877" CommentCount="2" />
  <row Id="9163" PostTypeId="2" ParentId="9055" CreationDate="2010-10-03T16:12:58.940" Score="19" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://nighthacks.com/roller/jag/resource/bio.html&quot; rel=&quot;nofollow&quot;&gt;James Gosling&lt;/a&gt;&lt;/strong&gt; - Regarded as the father of Java.&lt;/p&gt;&#xA;" OwnerUserId="4342" LastActivityDate="2010-10-03T16:12:58.940" CommunityOwnedDate="2010-10-04T20:51:23.403" CommentCount="1" />
  <row Id="9165" PostTypeId="2" ParentId="9099" CreationDate="2010-10-03T16:16:23.030" Score="2" ViewCount="" Body="&lt;p&gt;I use my real name for any sites where content is publicly posted that I wouldn't mind a potential employer seeing (because they will), for example my StackOverflow answers or my technical blog.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use a pseudonym for sites where I'd prefer it not to become part of my meta-resume. Not necessarily that I am embarrassed about anything I post under it, just that I don't want it to float the top of a Google search on my name and crowd out things that help my chances for a job. For example, I use a pseudonym any political discussion sites, or my personal blog.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-03T16:16:23.030" />
  <row Id="9166" PostTypeId="2" ParentId="9055" CreationDate="2010-10-03T16:16:47.647" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Rod Johnson&lt;/strong&gt; - founder of the &lt;a href=&quot;http://www.springframework.net/&quot; rel=&quot;nofollow&quot;&gt;Spring Framework&lt;/a&gt; for the Java platform.&lt;/p&gt;&#xA;" OwnerUserId="4342" LastActivityDate="2010-10-03T16:16:47.647" CommunityOwnedDate="2010-10-04T20:51:23.403" />
  <row Id="9167" PostTypeId="2" ParentId="9062" CreationDate="2010-10-03T16:20:06.657" Score="35" ViewCount="" Body="&lt;p&gt;Lower level languages are more performant than higher level languages. So if I &lt;a href=&quot;http://stackoverflow.com/questions/3850377/complicated-code-for-obvious-operations/3850415#3850415&quot;&gt;port my code to assembly&lt;/a&gt; it will automatically be faster.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-03T16:20:06.657" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="4" />
  <row Id="9168" PostTypeId="2" ParentId="9055" CreationDate="2010-10-03T16:20:14.653" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://relation.to/Bloggers/Gavin&quot; rel=&quot;nofollow&quot;&gt;Gavin King&lt;/a&gt;&lt;/strong&gt; - founder of the Hibernate ORM tool for Java.&lt;/p&gt;&#xA;" OwnerUserId="4342" LastActivityDate="2010-10-03T16:20:14.653" CommunityOwnedDate="2010-10-04T20:51:23.403" />
  <row Id="9169" PostTypeId="2" ParentId="9048" CreationDate="2010-10-03T16:34:34.753" Score="3" ViewCount="" Body="&lt;p&gt;Your first language won't necessarily be your last, so it is not like you are really locking yourself in with the decision to learn Java. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, any job board search will quickly tell you that there is plenty of work in Java programming. I think it is more a determinant of what type of product you will be working on. For example, commercial software products seem to more commonly be written in Java especially for startups. The cheaper licensing compared to the Microsoft Stack is a big draw for cash strapped startup companies. Microsoft development technologies, however, seem to dominate a lot more when it comes to internal systems development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately I think you are best served by experimenting with a few platforms and picking the one you enjoy working with the most. You'll find work either way, and whether it is slow or not is probably somewhat irrelevant. Java is in no danger of being phased out for anything but newer versions of Java in the foreseeable future.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-03T16:34:34.753" CommentCount="1" />
  <row Id="9170" PostTypeId="2" ParentId="9161" CreationDate="2010-10-03T16:44:44.783" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://codevanced.net/page/Talks-Distributed-Agile-Development.aspx&quot; rel=&quot;nofollow&quot;&gt;Andrew Kazyrevich's presentation&lt;/a&gt; is an excellent guide to agile development in distributed development teams.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main suggestions are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Group chats &amp;amp; frequent calls&lt;/li&gt;&#xA;&lt;li&gt;Desktop sharing, pair programming&lt;/li&gt;&#xA;&lt;li&gt;Continuous integration&lt;/li&gt;&#xA;&lt;li&gt;Unit tests&lt;/li&gt;&#xA;&lt;li&gt;Work items tracking (TFS, JIRA etc)&lt;/li&gt;&#xA;&lt;li&gt;Short iterations&lt;/li&gt;&#xA;&lt;li&gt;Daily sync between teams through standups etc&lt;/li&gt;&#xA;&lt;li&gt;Travelling&lt;/li&gt;&#xA;&lt;li&gt;Organising teams by functionality&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="292" LastActivityDate="2010-10-03T16:44:44.783" CommentCount="1" />
  <row Id="9171" PostTypeId="2" ParentId="7568" CreationDate="2010-10-03T16:45:12.283" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://codepad.org/&quot; rel=&quot;nofollow&quot;&gt;CODEPAD&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-10-03T16:45:12.283" CommentCount="1" />
  <row Id="9172" PostTypeId="2" ParentId="9062" CreationDate="2010-10-03T16:45:38.410" Score="19" ViewCount="" Body="&lt;p&gt;I don't know if this adds  - &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Most&lt;/strong&gt; of the people try to get rid of a fly from the screen by hovering cursor near it :D &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-10-03T16:45:38.410" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="6" />
  <row Id="9174" PostTypeId="2" ParentId="7749" CreationDate="2010-10-03T17:00:27.033" Score="4" ViewCount="" Body="&lt;p&gt;IMHO the biggest thing that separates so-so programmers from great programmers is the a firm grasp of multiple levels of abstraction and the ability to think about the same problem at all of these levels.  Often one level provides insights that are almost impossible to grasp at another level.  To be a truly great programmer, you need to be comfortable at all of the following levels of abstraction (from lowest to highest):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Assembly language.  (At least reading it and being familiar with the basic concepts, such as what a calling convention is, what the stack and static data segment are, and what various compiler optimizations look like at the ASM level.)&lt;/li&gt;&#xA;&lt;li&gt;The C-style memory model.  You need to have a firm grasp of pointers, manual memory management, how object-oriented programming can be done in languages like C, how garbage collection can be implemented, etc.&lt;/li&gt;&#xA;&lt;li&gt;Programming of single-use components in a garbage-collected, far from the metal language.  In other words, basic code monkey style programming.&lt;/li&gt;&#xA;&lt;li&gt;Design patterns and how to separate the parts of a problem that vary from the parts that are reusable.&lt;/li&gt;&#xA;&lt;li&gt;Metaprogramming/reflection.  Exactly what kind isn't as important as the thinking style.  It can be Lisp macros, C++ or D template metaprogramming, Python reflection, etc.  The important thing is that you are comfortable with the idea of programs operating on themselves in non-trivial ways and can use this to make interesting, useful things work.&lt;/li&gt;&#xA;&lt;li&gt;Theoretical computer science.  Things like big-O notation, NP-completeness, graph theory, number theory, type systems, etc.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-03T17:00:27.033" CommunityOwnedDate="2011-02-13T16:19:27.957" />
  <row Id="9175" PostTypeId="1" AcceptedAnswerId="9252" CreationDate="2010-10-03T17:02:13.710" Score="6" ViewCount="1267" Body="&lt;p&gt;What do you do when &lt;code&gt;malloc&lt;/code&gt; returns 0 or new throws exception? Just halt or try to survive OOM condition/save the user's work? &lt;/p&gt;&#xA;" OwnerUserId="2051" LastActivityDate="2010-10-04T10:41:43.927" Title="Do you handle OOM?" Tags="&lt;programming-practices&gt;&lt;exceptions&gt;" AnswerCount="6" CommentCount="2" />
  <row Id="9176" PostTypeId="2" ParentId="7502" CreationDate="2010-10-03T17:13:59.340" Score="0" ViewCount="" Body="&lt;p&gt;If you are selling a reasonable number of units already and you have no reason to believe that the app would be any less applicable to Spanish speakers, then I think it's probably worthwhile to give it a go.  If you are using the Android &lt;code&gt;strings.xml&lt;/code&gt; resource to separate the text from the application, it is straightforward to add more languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are online translation bureaus (such as &lt;a href=&quot;http://www.onehourtranslation.com/&quot; rel=&quot;nofollow&quot;&gt;this one&lt;/a&gt;) that will do translations for a few cents per word.  I haven't tried them yet, so I can't vouch for them, but it's something I'm considering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you have a very wordy application, you can probably get it translated for less than $50, in which case you'd only need a modest increase in sales from Spanish-speakers to make it worthwhile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my own modest Android sales, 95%+ of orders come from English-speaking countries (over 90% of sales are from just the UK, US and Australia). That massive skew suggests to me that I would sell more if the apps were available in French and German too.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-10-03T17:13:59.340" />
  <row Id="9177" PostTypeId="2" ParentId="9161" CreationDate="2010-10-03T17:28:11.730" Score="1" ViewCount="" Body="&lt;p&gt;Please read this &lt;a href=&quot;http://www.martinfowler.com/articles/agileOffshore.html&quot; rel=&quot;nofollow&quot;&gt;excelent article&lt;/a&gt; from &lt;strong&gt;Martin Fowler&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;For the last four years ThoughtWorks has operated a lab in Bangalore India to support our software development projects in North America and Europe. Traditional approaches to offshore development are based on plan-driven methodologies, but we are very firmly in the agile camp. Here I discuss our experiences and lessons learned in doing offshore agile development. So far we've discovered that we can make it work, although the benefits are still open to debate.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The article is very old, but nothing changed so such since that time.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-03T17:28:11.730" />
  <row Id="9178" PostTypeId="2" ParentId="9175" CreationDate="2010-10-03T17:28:12.283" Score="2" ViewCount="" Body="&lt;p&gt;To be fairly honest, in all projects I've done (keep in mind I'm not working anywhere yet), I've never considered that it could happen, and thus I suppose my programs would die a very fast death.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, handling an OOM requires you to have preallocated the resources to display the error message or to save everything, which can be kind of inconvenient.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel that these days, memory costing less than peanuts, it's not something that should happen frequently. On the dawn of protected memory and before, maybe that was a concern, but now? The only OOM errors I've ever seen were from bugged code.&lt;/p&gt;&#xA;" OwnerUserId="90" LastActivityDate="2010-10-03T17:28:12.283" CommentCount="1" />
  <row Id="9179" PostTypeId="2" ParentId="8990" CreationDate="2010-10-03T17:28:48.993" Score="5" ViewCount="" Body="&lt;p&gt;I've done a few of these, and some categories that seems to work well:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Simple video games.  Networked connect-4 with AI, multi-player top-down capture the flag, etc&lt;/li&gt;&#xA;&lt;li&gt;Automation tools for working with external systems.  For example, for a hackathon in college, we wrote a program that logged into the school registrar system and registered classes automatically.  Similarly, there was a project for automating facebook/twitter posts.&lt;/li&gt;&#xA;&lt;li&gt;Apps that address a need common to the group.  For example, the above registrar tool.&lt;/li&gt;&#xA;&lt;li&gt;Data scraping tools- pulling info from a site and presenting it.&lt;/li&gt;&#xA;&lt;li&gt;Clones of existing systems with added cool features that are fun but not practical for the original.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-03T17:28:48.993" />
  <row Id="9180" PostTypeId="1" AcceptedAnswerId="9182" CreationDate="2010-10-03T17:42:43.090" Score="21" ViewCount="929" Body="&lt;p&gt;I recently graduated, from university. I have since then joined a development team where I am by far the least experienced developer, with maybe with a couple work terms under my belt, meanwhile the rest of the team is rocking 5-10 years experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am/was a very good student and a pretty good programmer when it came to bottled assignments and tests. I have worked on some projects with success. But now I working with a much bigger code-base, and the learning curve is much higher...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was wondering how many other developers started out their careers in teams and left like they sucked. When does this change? How can I speed up the process? My seniors are helping me but I want to be great and show my value now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't to start a flame war, this is just a question I have been having and I was hoping to get some advice from other experienced developers, as well as other beginners like me.&lt;/p&gt;&#xA;" OwnerUserId="2446" LastEditorUserId="18152" LastEditorDisplayName="" LastEditDate="2011-02-24T20:00:41.503" LastActivityDate="2011-02-24T20:00:41.503" Title="Were you a good programmer when you first left university?" Tags="&lt;career&gt;&lt;great-programmer&gt;&lt;university&gt;" AnswerCount="14" CommentCount="8" FavoriteCount="6" />
  <row Id="9181" PostTypeId="2" ParentId="9159" CreationDate="2010-10-03T17:50:38.723" Score="4" ViewCount="" Body="&lt;p&gt;There's a difference between following agile practice and being an agile programmer. Be careful with this distinction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have a read of this: &lt;a href=&quot;http://steve-yegge.blogspot.com/2006/09/good-agile-bad-agile_27.html&quot; rel=&quot;nofollow&quot;&gt;http://steve-yegge.blogspot.com/2006/09/good-agile-bad-agile_27.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning good practice, to test, and above all to automate as much as you can will make you more productive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thinking and caring about what you're doing is half the battle.&lt;/p&gt;&#xA;" OwnerUserId="3646" LastActivityDate="2010-10-03T17:50:38.723" />
  <row Id="9182" PostTypeId="2" ParentId="9180" CreationDate="2010-10-03T17:55:51.990" Score="31" ViewCount="" Body="&lt;p&gt;The interesting thing about software development is that it doesn't matter how good you are -- there is always someone better or at least different enough to still teach you something. It's also not uncommon to look at code written a few months ago and think it sucks, regardless of your level of experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, once I realized the gap between my skills and the skills of my coworkers, I started learning like I've never learned before -- reading other people's code, blog posts, books, paying attention to how my coworkers accomplished things, etc. University prepared me for computer science, but not really for software development. It's almost 4 years later, and I'm a much stronger software developer than I used to be. So, just hang in there and learn as much as you can from the people around you. It'll get better.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-03T17:55:51.990" CommentCount="5" />
  <row Id="9183" PostTypeId="2" ParentId="9180" CreationDate="2010-10-03T17:57:29.480" Score="19" ViewCount="" Body="&lt;p&gt;No.  I learned a lot more about programming/software engineering in the first 6 months of working after leaving university than I had in the years preceding.  However, that doesn't mean university was a waste of time, it prepared my mind and provided the background knowledge to build on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then again, looking back now, I still didn't really know what I was doing 6 months in.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-10-03T17:57:29.480" CommentCount="1" />
  <row Id="9184" PostTypeId="2" ParentId="9180" CreationDate="2010-10-03T18:22:54.600" Score="9" ViewCount="" Body="&lt;p&gt;Education gives you a foundation to build on, but it won't prepare you for software development in the real life. That comes with experience. I definitely was in the same situation as you when I first started programming for a job. As long as you keep learning, reading books, blog posts, and &lt;strong&gt;applying what you learn in your job&lt;/strong&gt;, you're going to improve. The key is applying what you learn. Just reading won't help, you have to actively apply new knowledge.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-03T18:22:54.600" CommentCount="1" />
  <row Id="9185" PostTypeId="2" ParentId="7749" CreationDate="2010-10-03T18:27:20.483" Score="1" ViewCount="" Body="&lt;p&gt;I joined 2 open source projects and I learned a lot from the other team members while doing. Not only improving technical skills but also follow the style guidelines and work together in a team. Watch old code from team members and fix bugs which makes you understand the pitfalls.&lt;/p&gt;&#xA;" OwnerUserId="4111" LastActivityDate="2010-10-03T18:27:20.483" CommunityOwnedDate="2011-02-13T16:19:27.957" />
  <row Id="9186" PostTypeId="2" ParentId="9180" CreationDate="2010-10-03T18:30:29.330" Score="1" ViewCount="" Body="&lt;p&gt;No at all, I was pretending to be a programmer and learnt it the hard way. I got my first customer as freelancer and fought very badly with C/C++, and eventually won. I remember it took some hours to understand that doing malloc on a struct was not enough to allocate also memory for the pointers in the struct.&lt;/p&gt;&#xA;" OwnerUserId="4359" LastActivityDate="2010-10-03T18:30:29.330" CommentCount="2" />
  <row Id="9187" PostTypeId="2" ParentId="9180" CreationDate="2010-10-03T18:50:25.337" Score="2" ViewCount="" Body="&lt;p&gt;I would quote Brian Hurt's &lt;a href=&quot;http://enfranchisedmind.com/blog/posts/what-good-is-a-cs-degree/&quot; rel=&quot;nofollow&quot;&gt;post&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Computer science and programming are&#xA;  separate things&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;who also refers to Joel Spolsky's &lt;a href=&quot;http://www.joelonsoftware.com/items/2008/01/08.html&quot; rel=&quot;nofollow&quot;&gt;Undergraduate programming&lt;/a&gt;&#xA;and brilliant article titled &lt;a href=&quot;http://itmanagement.earthweb.com/career/article.php/3722876&quot; rel=&quot;nofollow&quot;&gt;Who Killed the Software Engineer&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All these discussions describe the reality fairly well and, in my opinion, answer your question as &quot;No&quot;, because university is not going to make you a good programmer. You need to make yourself a good programmer on your own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't hold degree in CS, but I've been professionally programming and developing software for 8 years now. All programming skills I have, I've learned myself.&lt;/p&gt;&#xA;" OwnerUserId="4360" LastEditorUserId="4360" LastEditorDisplayName="" LastEditDate="2010-10-03T19:29:18.050" LastActivityDate="2010-10-03T19:29:18.050" />
  <row Id="9188" PostTypeId="2" ParentId="2331" CreationDate="2010-10-03T19:13:05.627" Score="2" ViewCount="" Body="&lt;p&gt;In Perl, &lt;strong&gt;scalar context vs. list context&lt;/strong&gt; can be tricky. It's got some good points that make certain operations convenient, but occasionally you run into something terrible, like &lt;em&gt;completely changing the meaning of an operator&lt;/em&gt; (potentially from a significant distance away in the code).&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;sub foo { (1..5) }&#xA;my @list = foo();           # (1,2,3,4,5)&#xA;my $length = scalar @list;  # 5. the length of the list.&#xA;my $length2 = scalar foo(); # '' (the empty string. because it's false)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That's just not right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(It arises from trying to make something that acts sort of like the regular range operator, so you can say something in a loop like &lt;code&gt;next if /start_regex/ .. /end_regex/&lt;/code&gt;).&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2348" LastActivityDate="2010-10-03T19:13:05.627" CommentCount="2" />
  <row Id="9189" PostTypeId="2" ParentId="9180" CreationDate="2010-10-03T19:17:08.970" Score="7" ViewCount="" Body="&lt;p&gt;I definitely thought I was, but I wasn't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Trust me, at some point in your career you are going to go back and work on some code that you wrote, but haven't touched for years and desperately want that no other professional developer ever see that code or know you wrote it. That means you are growing.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-03T19:17:08.970" />
  <row Id="9190" PostTypeId="2" ParentId="2331" CreationDate="2010-10-03T19:40:07.863" Score="1" ViewCount="" Body="&lt;p&gt;The &lt;code&gt;With&lt;/code&gt; statement in Delphi comes to mind, although there are cases when it's usefull.&lt;/p&gt;&#xA;" OwnerUserId="4111" LastActivityDate="2010-10-03T19:40:07.863" />
  <row Id="9191" PostTypeId="2" ParentId="9180" CreationDate="2010-10-03T19:40:30.770" Score="1" ViewCount="" Body="&lt;p&gt;I was a fairly good programmer when I graduated my university. I also had a snazzy job offer months before I even graduated (which I was able to turn down for an even snazzier one).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key was that I had done a lot of work as a hobbyist, with a web development job during the school year, and doing &lt;strong&gt;quality summer internships&lt;/strong&gt; with IBM (&quot;ExtremeBlue speed-teams&quot; and the ExtremeBlue program proper). Good preprofessional experience &lt;em&gt;will&lt;/em&gt; let you skip a little bit of the entry-level stuff after you graduate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(That said, I still got &lt;em&gt;much&lt;/em&gt; better at programming in my first six months or so at a Real Job (tm). Not that I was done afterward, but that's when it was really showing a lot.)&lt;/p&gt;&#xA;" OwnerUserId="2348" LastActivityDate="2010-10-03T19:40:30.770" />
  <row Id="9192" PostTypeId="2" ParentId="9180" CreationDate="2010-10-03T19:43:23.243" Score="5" ViewCount="" Body="&lt;p&gt;In some ways, picking up a programming language is a lot like picking up a natural language.  You can learn a fair amount of theory in school.  You learn the grammar and the basic elements of the vocabulary, and you think you're pretty good, right up until you find yourself in a real conversation with a native speaker, and then you're completely lost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way you really learn the language, to the point where you're able to hold your own in a conversation with native speakers, is by actually speaking the language, every hour of every day.  This usually means going to live somewhere where it's spoken.  And that's when an interesting thing happens.  Although what you learned in school is worthless, in and of itself, on the streets of a foreign country, it gives you a good, solid theoretical foundation that makes the actual language-learning a lot easier.  (That was my experience with Spanish, at least.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is the same way.  What you learn at school doesn't prepare you for the work you'll need to do as a real programmer, but (assuming you're at a competent school that doesn't dumb everything down in the interests of popularity) it helps prepare your mind so that when it comes time to actually learn to be a good coder, the fundamental concepts you need are already in place.  (That was my experience with programming, at least.) :-)&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-03T19:43:23.243" CommentCount="1" />
  <row Id="9193" PostTypeId="2" ParentId="9180" CreationDate="2010-10-03T19:46:21.427" Score="1" ViewCount="" Body="&lt;p&gt;I can give you a reverse answer, as I got straight from high school to work. I started working as a self-thought programmer, and I was almost immediately productive on the project my employers give me. I had some coworkers that had a fresh computer science degree, and they wasn't productive at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over time, some graduated coworkers improved they skills greatly, while others don't, and that was unrelated to their GPA.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-10-03T19:46:21.427" />
  <row Id="9194" PostTypeId="2" ParentId="9119" CreationDate="2010-10-03T19:51:47.450" Score="2" ViewCount="" Body="&lt;p&gt;I've used &lt;a href=&quot;http://www.zend.com&quot; rel=&quot;nofollow&quot;&gt;Zend&lt;/a&gt;, &lt;a href=&quot;http://www.nusphere.com&quot; rel=&quot;nofollow&quot;&gt;NuSphere&lt;/a&gt;, and PhpStorm (linked above)... but I prefer just a nice text editor (just purchased &lt;a href=&quot;http://www.sublimetext.com&quot; rel=&quot;nofollow&quot;&gt;Sublime Text&lt;/a&gt; and love it.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Absolutely learn PHP without a framework..  Try hard not to become dependent on them.&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-10-03T19:51:47.450" />
  <row Id="9195" PostTypeId="2" ParentId="9119" CreationDate="2010-10-03T20:19:53.907" Score="4" ViewCount="" Body="&lt;p&gt;Since no one has said it yet I will: &lt;strong&gt;&lt;a href=&quot;http://eclipse.org&quot; rel=&quot;nofollow&quot;&gt;Eclipse&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although not supported out of the box there are PHP plugins for it and it works, very similar to Netbeans. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also just noticed they have a build for PHP: &lt;a href=&quot;http://www.eclipse.org/downloads/packages/eclipse-php-developers/heliossr1&quot; rel=&quot;nofollow&quot;&gt;Eclipse PHP Build&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-03T20:19:53.907" CommentCount="5" />
  <row Id="9196" PostTypeId="2" ParentId="7749" CreationDate="2010-10-03T20:26:19.670" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Write a lot of code.&lt;/li&gt;&#xA;&lt;li&gt;If you are the best programmer in your project, find a new team to work with.&lt;/li&gt;&#xA;&lt;li&gt;Repeat.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="170" LastActivityDate="2010-10-03T20:26:19.670" CommunityOwnedDate="2011-02-13T16:19:27.957" />
  <row Id="9197" PostTypeId="2" ParentId="9175" CreationDate="2010-10-03T20:54:44.783" Score="1" ViewCount="" Body="&lt;p&gt;Checking malloc return codes is usuall pointless anyway. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Modern operating systems overcommit memory: They give processes more memory than is actually available. The memory your process is granted is virtual, all mapped to a single zeroed-out page. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not until you write to the memory that a physical, unique, page is allocated for your processes. If this allocation fails the kernel will terminate a process (perhaps yours!) in an attempt to find memory.&#xA;At that point there's nothing you can do any more.&lt;/p&gt;&#xA;" OwnerUserId="4354" LastActivityDate="2010-10-03T20:54:44.783" CommentCount="4" />
  <row Id="9198" PostTypeId="2" ParentId="9175" CreationDate="2010-10-03T21:10:47.400" Score="5" ViewCount="" Body="&lt;p&gt;Most people answering this question have probably never worked on embedded systems, where malloc returning 0 is a very real possibility.  On a system I'm currently working on, there is a total of 4.25K bytes of RAM (that's 4352 bytes).  I'm allocating 64 bytes for the stack, and currently have a 1600 byte heap.  Just yesterday I was debugging a heap walk routine so I can follow the allocation and freeing of memory.  The heap walk uses a small (30 byte) statically allocated buffer to output to a serial port.  It will be turned off for the release version.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since this is a consumer product, it better not run out of memory once the product has been released.  I'm sure it will during development.   In any case, about all I can do is beep the speaker a couple of times, and force a reboot.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-03T21:10:47.400" CommentCount="2" />
  <row Id="9199" PostTypeId="2" ParentId="9055" CreationDate="2010-10-03T21:19:35.080" Score="29" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Anders_Hejlsberg&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Anders Hejlsberg&lt;/strong&gt;&lt;/a&gt;, creator of Turbo Pascal and lead architect of Delphi and C#.&lt;/p&gt;&#xA;" OwnerUserId="151" LastActivityDate="2010-10-03T21:19:35.080" CommunityOwnedDate="2010-10-04T20:51:23.403" />
  <row Id="9200" PostTypeId="1" AcceptedAnswerId="9206" CreationDate="2010-10-03T21:36:05.997" Score="6" ViewCount="347" Body="&lt;p&gt;I'm interested in learning Scala. Is there anyone that have read any great book about Scala and would like to share your experience?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What's a good book for learning Scala?&lt;/strong&gt; Please don't answer only with the title, but share your opinion about the book. What do you recommend?&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-17T04:46:17.643" Title="What's a good book for learning Scala?" Tags="&lt;learning&gt;&lt;books&gt;&lt;scala&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="9202" PostTypeId="2" ParentId="275" CreationDate="2010-10-03T21:45:47.690" Score="2" ViewCount="" Body="&lt;p&gt;As I wrote &lt;a href=&quot;http://stackoverflow.com/questions/2462351/how-do-the-young-start-programming-nowadays/2463035#2463035&quot;&gt;in this answer on Stack Overflow&lt;/a&gt;, I started &lt;strong&gt;writing code in VB6 when I was 7&lt;/strong&gt;. &lt;strong&gt;With the help of my dad&lt;/strong&gt;, I was able to write my first app: a word-search solver.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next, I moved into learning HTML and web design. However, when I was 9 or 10, we had a guest who was a C# programmer. He showed me some C#, and I was very intrigued by the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few summers ago, I took a C# course through the extension program of the University of California, San Diego. I also started reading programming blogs and books, especially Joel Spolsky's books and blog, and began trying to learn good development techniques. Joel on Software eventually led me to Stack Overflow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My parents hooked me up to write a few data collection and analysis programs for a local non-profit recently. Also, I've started a programming club at my school, done some open source work, and more. I spent the summer working with ASP.NET MVC, and I'm very close to releasing a portal for musicians, as well as a portal for one of the newspapers at my school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure how he did it, but my dad really got me intrigued in programming. &lt;strong&gt;I'm currently 13 years old&lt;/strong&gt;, and I feel like I've come a long way in the past 6 years.&lt;/p&gt;&#xA;" OwnerUserId="1333" LastActivityDate="2010-10-03T21:45:47.690" CommunityOwnedDate="2011-02-13T14:40:48.817" />
  <row Id="9203" PostTypeId="2" ParentId="7749" CreationDate="2010-10-03T21:55:06.927" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Pair programming&lt;/strong&gt;, when it is practiced, is one technique which can help expose you to new concepts and techniques, feedback from your peers, and insight into the way they work. Even pairing with junior developers demands introspection and synthesis of ideas and insights that you have experienced, and helps you understand and internalize them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(My team does pair programming and it really helped me get up to speed when I first started work there after college, and it continues to do so today.)&lt;/p&gt;&#xA;" OwnerUserId="2348" LastActivityDate="2010-10-03T21:55:06.927" CommunityOwnedDate="2011-02-13T16:19:27.957" CommentCount="5" />
  <row Id="9204" PostTypeId="2" ParentId="7749" CreationDate="2010-10-03T22:06:37.513" Score="1" ViewCount="" Body="&lt;p&gt;IMHO&lt;br&gt;&#xA;1) Write a bucket load of code on a regular basis - doesn't have to be good code, just as long as you're writing and thinking&lt;br&gt;&#xA;2) Read a lot of other people's code - understand what's good, bad and why they made the decisions they did.&lt;br&gt;&#xA;3) Learn your algorithms and data structures to a pathological degree&lt;br&gt;&#xA;4) Learn a variety of languages i.e imperative, OO, functional - this will broaden your outlook on the world so don't be a 'one trick pony' i.e c++ or java but look at how problems get solved in the python or ruby community then look at it again in the Haskell or Erlang communities&lt;br&gt;&#xA;5) Understand hardware and the thinking behind it - caches, instruction scheduling, memory fences etc are there for a reason. It's good to know why.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HTH&lt;/p&gt;&#xA;" OwnerUserId="4364" LastEditorUserId="4364" LastEditorDisplayName="" LastEditDate="2010-10-03T22:17:22.270" LastActivityDate="2010-10-03T22:17:22.270" CommunityOwnedDate="2011-02-13T16:19:27.957" />
  <row Id="9205" PostTypeId="2" ParentId="275" CreationDate="2010-10-03T22:11:13.860" Score="0" ViewCount="" Body="&lt;p&gt;I was ten years old. A family friend mathematician taught me how to write simple programs using boolean variables and binary logic functions in a Microsoft Excel spreadsheet. After finishing a basic binary calculator we made a program that could solve the &lt;a href=&quot;http://en.wikipedia.org/wiki/Eight_queens_puzzle&quot; rel=&quot;nofollow&quot;&gt;eight-queens problem&lt;/a&gt; (some macros required). We started working on a program to solve the &lt;a href=&quot;http://en.wikipedia.org/wiki/Towers_of_hanoi&quot; rel=&quot;nofollow&quot;&gt;Towers of Hanoi&lt;/a&gt; but I moved away before the two of us had a chance to finish finished it. I finished it on my own many years later. &lt;/p&gt;&#xA;" OwnerUserId="1444" LastEditorUserId="1444" LastEditorDisplayName="" LastEditDate="2010-10-03T22:53:34.113" LastActivityDate="2010-10-03T22:53:34.113" CommunityOwnedDate="2011-02-13T14:40:48.817" />
  <row Id="9206" PostTypeId="2" ParentId="9200" CreationDate="2010-10-03T22:20:00.893" Score="13" ViewCount="" Body="&lt;p&gt;I can advise &lt;a href=&quot;http://www.artima.com/shop/programming_in_scala&quot; rel=&quot;nofollow&quot;&gt;Programming in Scala&lt;/a&gt; because it's from the creator of the Scala language - Martin Odersky. He describes the most features of Scala very detailed and why he chose this feature instead of an other one. Therefore the reader get a depth insight in Scala and how it works. The book is fantastic. It is one of the best programming books i've ever read.&lt;/p&gt;&#xA;" OwnerUserId="4367" LastActivityDate="2010-10-03T22:20:00.893" CommentCount="4" />
  <row Id="9207" PostTypeId="2" ParentId="275" CreationDate="2010-10-03T22:22:49.890" Score="0" ViewCount="" Body="&lt;p&gt;My elementary school acquired a Commodore PET (original version, with the built-in cassette player for storage) when I was in 4th grade and I wrote some pretty dumb programs for it. I still have the printouts somewhere.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;10 LET X = INT(RND(100)) + 1&#xA;20 PRINT &quot;GUESS THE SECRET NUMBER&quot;&#xA;30 INPUT A&#xA;40 IF A = X THEN PRINT &quot;CORRECT!&quot; : GOTO 10&#xA;50 PRINT &quot;WRONG!&quot;&#xA;60 GOTO 20&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But you gotta start somewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By sixth grade I was typing in programs from magazines and tweaking them. Eliza, Oregon Trail, Maze... It was at that time that I got my own &lt;a href=&quot;http://en.wikipedia.org/wiki/ZX81&quot; rel=&quot;nofollow&quot;&gt;Sinclair ZX81&lt;/a&gt; and started dabbling in assembly, even though I had no idea what I was doing. At least I could always unplug the computer if it stopped working.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In junior high my family bought an Apple //e. Disk drives! Joysticks! 64K of RAM! A 3 MHz accelerator! Modems! ProDOS! I started writing BBS code, simple games, and poring over the enlightening &lt;a href=&quot;http://en.wikipedia.org/wiki/Beagle_Bros&quot; rel=&quot;nofollow&quot;&gt;Beagle Bros&lt;/a&gt; ads and software. You can't read a tip from a Beagle Bros ad and &lt;em&gt;not&lt;/em&gt; learn something along the way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also learned a lot about filesystems. It was possible to view the bits and bytes stored in each sector of a floppy disk and work out how the files and directories were laid out by starting with the master sector and following all the links.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By high school I was programming in Pascal on the school's Apple and HP computers. I also learned C by reading the &lt;em&gt;Using Turbo C&lt;/em&gt; book. It wasn't until college that I actually got my hands on a C compiler. From there I learned C++, Perl, more assembly, and some Scheme. Since then I've learned a lot more languages, operating systems, methodologies, and theory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I guess I got my start in 4th grade. But I didn't actually &lt;em&gt;know&lt;/em&gt; anything until, well, hmmm. I still fell pretty ignorant.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2010-10-03T22:22:49.890" CommunityOwnedDate="2011-02-13T14:40:48.817" />
  <row Id="9208" PostTypeId="2" ParentId="9175" CreationDate="2010-10-03T22:24:06.437" Score="2" ViewCount="" Body="&lt;p&gt;Unless you're developing for embedded systems, real-time systems, or systems that are so critical that failures can cost lives, or billions of dollars... Then it's probably not financially worth it to worry about out of memory conditions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In most cases, there is little that can be done when you are out out of memory anyways, since there is no memory to create any new objects or perform any tasks that may do something.  You have to weigh the cost of the app handling OOM versus the benefit you get from doing it.&lt;/p&gt;&#xA;" OwnerUserId="4368" LastActivityDate="2010-10-03T22:24:06.437" CommentCount="7" />
  <row Id="9209" PostTypeId="2" ParentId="5019" CreationDate="2010-10-04T00:07:27.000" Score="3" ViewCount="" Body="&lt;p&gt;I don't care about having the title 'Architect', but I do want to be the one making architectural decisions.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reason: &#xA;I've mostly worked in big companies, where there seem to be 3 career paths.  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;path 0: the non-path.  Keep doing the same thing for 25+ years.  Code whatever you are told to code.   Technical growth very limited. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;path 1:  Management.  Most of the upward paths lead in this direction.  Move from writing code to managing budgets, schedules, employee reviews.  Yuck. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;path 2:  Senior Software Lead.  Only a few of these positions exist.  These are the ones who get to choose the technology, the architecture, all the interesting design decisions.  This is the job if you want to stay technical,  and make choices about what you are working on. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So, yes, I do want to be an &quot;architect&quot; &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-04T00:07:27.000" />
  <row Id="9210" PostTypeId="2" ParentId="275" CreationDate="2010-10-04T00:10:49.553" Score="2" ViewCount="" Body="&lt;p&gt;In high school, around 1960, I was in the Science Club, and one of our projects was to drive on Saturday in the snow over to Northwestern University and take a &quot;class&quot; on programming. It was on some Burroughs machine, which we never saw, and I think all I did was flowchart how to do long division.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a freshman in college, we had a seminar in mechanical engineering. I tackled how to solve 4-bar linkage problems, program it on an IBM 1620 in load-and-go fortran, and plot it on a calcomp plotter. That was my real intro to programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I got an undergrad job in the civil engineering department, programming various geometry routines having to do with highway transition spirals. That's the part of a curve where you transition between straight and circular sections. (If you don't have that you find drivers suddenly wandering across lanes, and trains lurching.) You need to be able to intersect those things, do perpendiculars and tangents, etc. That led into years of programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It just took off from there, into language design, grad school in AI, years of consulting, teaching, more consulting, some startup companies, more consulting, book writing, and finally my current employer for about 15 years.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-10-04T00:33:37.417" LastActivityDate="2010-10-04T00:33:37.417" CommunityOwnedDate="2011-02-13T14:40:48.817" />
  <row Id="9211" PostTypeId="2" ParentId="9062" CreationDate="2010-10-04T00:13:48.680" Score="30" ViewCount="" Body="&lt;p&gt;&quot;This error is so strange that noone can ever have experienced it before, so there is no use searching the web before asking in a forum.&quot;&lt;/p&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-10-04T00:13:48.680" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="1" />
  <row Id="9212" PostTypeId="2" ParentId="9062" CreationDate="2010-10-04T00:34:58.013" Score="4" ViewCount="" Body="&lt;p&gt;Here's one specific to .NET ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.aspx&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;Microsoft.VisualBasic&lt;/code&gt;&lt;/a&gt; namespace can't be used from a C# program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, it's just another namespace, and some of the members (e.g. &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.myservices.specialdirectoriesproxy.aspx&quot; rel=&quot;nofollow&quot;&gt;SpecialDirectoriesProxy&lt;/a&gt;, &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.strings.aspx&quot; rel=&quot;nofollow&quot;&gt;Strings&lt;/a&gt;, &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.controlchars.aspx&quot; rel=&quot;nofollow&quot;&gt;ControlChars&lt;/a&gt;) are useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Updated 8 Oct&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a more complex example of why this namespace is useful. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing a single instance application - one that's only ever running once, reguardless of how many times the user starts it - is a common requirement. Lots of text editors do this, for example, opening later documents in tabs. You could do all the work yourself with Mutexes and cross process communication and the like. Or, you could just reuse &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.applicationservices.windowsformsapplicationbase.aspx&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;WindowsFormsApplicationBase&lt;/code&gt;&lt;/a&gt; and reuse the hard work of the VB team. See &lt;a href=&quot;http://msdn.microsoft.com/en-us/magazine/cc163741.aspx&quot; rel=&quot;nofollow&quot;&gt;MSDN Magazine, September 2005&lt;/a&gt; for more details.&lt;/p&gt;&#xA;" OwnerUserId="4099" LastEditorUserId="4099" LastEditorDisplayName="" LastEditDate="2010-10-07T21:27:43.047" LastActivityDate="2010-10-07T21:27:43.047" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="4" />
  <row Id="9213" PostTypeId="1" CreationDate="2010-10-04T01:21:33.757" Score="8" ViewCount="333" Body="&lt;p&gt;There are times when I am working on programming project and I get the itch to change some stuff in my environment (OSX or Linux). Vim might not being doing exactly&#xA;what I want, so instead of doing it the round about way I've been doing for a&#xA;couple months (sometimes years) I go and figure out the right way. Or I may be&#xA;doing something long handed in bash and I say to myself why don't I figure out&#xA;a better way.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing is when I go off and do this hours can fly by. Sometimes I&#xA;get stuck on trying to get what I want. I'll know I'm really close, so I don't give&#xA;up. I usually always get it eventually, but its after hours of tinkering and&#xA;googling. I hate the feeling of giving up and having to deal with something I&#xA;know could work better. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I'm done I have a warm feeling knowing that my environment is a little more smooth&#xA;and personalized, but I wonder could my time be better spent. Where do I draw&#xA;the line? It seems with the all the UNIX-style tools there is an endless amount&#xA;to learn. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Always thought the sign of a superior programmer is someone who goes out of&#xA;their way to make the computer bend to their will. Am I doing it right? I figure&#xA;the bash shell, unix/linux, and vim will be around forever, so I see it as an investment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But then again I just spend 3 hours trying to get some stupid thing the vimperator firefox&#xA;plugin to work right. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I wondering what this community think about this.  &lt;/p&gt;&#xA;" OwnerUserId="4375" LastActivityDate="2010-11-01T06:03:23.223" Title="Is the time spent customizing your dev machine environment worth it?" Tags="&lt;time-management&gt;" AnswerCount="9" />
  <row Id="9214" PostTypeId="2" ParentId="9213" CreationDate="2010-10-04T01:37:15.227" Score="12" ViewCount="" Body="&lt;p&gt;To rephrase a time-honored axiom, &lt;em&gt;if it wastes your time, &lt;strong&gt;don't do it.&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some developers are able to optimize their environment such that the amount of time invested up front is outweighed by the amount of time saved overall by having a highly-customized environment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't see the value in customizing your environment to suit your needs and find your time is better suited elsewhere, then by all means don't do it. The end goal is to do your job to the best of your ability, and what that takes is something only you are going to be able to judge.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-10-04T01:37:15.227" CommentCount="1" />
  <row Id="9215" PostTypeId="1" AcceptedAnswerId="9257" CreationDate="2010-10-04T01:37:34.557" Score="35" ViewCount="1299" Body="&lt;p&gt;In many places, bosses are notorious for not understanding the details of what's happening. This leads to many very silly and frustrating questions and requests. But from time to time the opposite occurs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the most insightful or useful question your superior asked you? These can be questions that revealed a big problem, or it can simply be a question that showed a deep understanding of the subject matter. Ideally, they should be questions that led to better software.&lt;/p&gt;&#xA;" OwnerUserId="3964" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-21T03:31:17.640" LastActivityDate="2010-12-21T03:42:13.123" CommunityOwnedDate="2010-10-06T22:34:48.053" Title="Best question your boss asked" Tags="&lt;management&gt;&lt;boss&gt;" AnswerCount="13" CommentCount="2" FavoriteCount="9" />
  <row Id="9216" PostTypeId="2" ParentId="9213" CreationDate="2010-10-04T01:44:34.073" Score="9" ViewCount="" Body="&lt;p&gt;Do you learn something along the way? Does it make you more productive in the end? Do you have fun doing it? If the answer is yes, then by all means do it. Sometimes the benefits of doing something may not be justified when just taking effectiveness into account, but let's not forget that we have to enjoy what we are doing.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-04T01:44:34.073" CommentCount="1" />
  <row Id="9218" PostTypeId="1" CreationDate="2010-10-04T01:46:54.780" Score="16" ViewCount="792" Body="&lt;p&gt;[I posted this on stackoverflow but it was off-topic there so cross-posting here]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't a programming question per se, but I wanted to know:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Whether programmers who primarily specialize and code in a .NET environment get hired at Google, Amazon.com or other companies/startups which are mainly Java/MySql shops,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) And whether there are any .NET teams at Google, Amazon.com or other startups on the East/West coast?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me it looks like if you are a .NET person, then the only big web/software company you can shoot for is Microsoft.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realize that pigeonholing oneself to a certain language or environment is limiting but I believe its quite hard being an expert in multiple environments either due to the job at hand or just plain time constraints (even in the .NET world there's a ton of stuff to be &quot;expert&quot; at).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&lt;/p&gt;&#xA;" OwnerUserId="4378" LastEditorUserId="4378" LastEditorDisplayName="" LastEditDate="2010-10-04T18:43:06.327" LastActivityDate="2010-11-20T18:32:54.107" Title=".NET engineers at Google, Amazon.com, etc." Tags="&lt;.net&gt;&lt;career-advice&gt;&lt;google&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="3" />
  <row Id="9219" PostTypeId="1" CreationDate="2010-10-04T01:57:30.360" Score="20" ViewCount="599" Body="&lt;p&gt;I've heard it argued that design patterns are the best thing since sliced bread.  I've also heard it argued that design patterns tend to exacerbate &quot;Second System Syndrome,&quot; that they are massively overused, and that they make their users think they're better designers than they really are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to fall closer to the former camp, but recently I've been seeing designs where nearly every single interaction is replaced with an observer relationship, and everything's a singleton.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, considering the benefits and problems, are design patterns generally good or bad, and why?&lt;/p&gt;&#xA;" OwnerUserId="6" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-16T11:58:57.627" LastActivityDate="2010-10-16T11:58:57.627" Title="Are design patterns generally a force for good or bad?" Tags="&lt;design&gt;&lt;software-engineering&gt;&lt;design-patterns&gt;" AnswerCount="10" FavoriteCount="7" />
  <row Id="9220" PostTypeId="2" ParentId="9180" CreationDate="2010-10-04T01:59:52.030" Score="1" ViewCount="" Body="&lt;p&gt;I don't think I've learned any facts about programming in general that I wasn't at least exposed to in college.  Sure, I've picked up new programming languages here and there, learned new APIs, new code bases, and new tools, but the general concepts were all present right out of school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you do pick up with experience is a sort of instinct that speeds up how you narrow in on a reported bug, or leads you straight to the most robust way to write new code.  When you are new, you can still fix that same bug, or implement the same feature, but it takes longer and you're more likely to have to go back and fix it for an unforeseen issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's why it's important to get more experienced colleagues to mentor you.  Go to them and say, &quot;This is how I think this should be handled.  Can you think of a better way?&quot;  That gives you the benefit both of the experience of figuring it out for yourself, and of learning from the experience of others.&lt;/p&gt;&#xA;" OwnerUserId="3965" LastEditorUserId="3965" LastEditorDisplayName="" LastEditDate="2010-10-04T23:06:49.730" LastActivityDate="2010-10-04T23:06:49.730" />
  <row Id="9221" PostTypeId="1" CreationDate="2010-10-04T02:01:53.013" Score="2" ViewCount="253" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/8055/can-a-developer-get-volume-discount-for-microsoft-products&quot;&gt;Can a developer get volume discount for Microsoft products?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Here's the root of the question: I want a pro copy of VS 2010 and I can't swing the $ for another couple of months. I've got the express version, but I'm hoping to use some of other software that I have (coderush!, testdriven.net, ankhsvn).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know about:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.microsoft.com/bizspark/&quot; rel=&quot;nofollow&quot;&gt;bizspark&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;https://www.dreamspark.com/default.aspx&quot; rel=&quot;nofollow&quot;&gt;dreamspark&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What else is there?&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-04T04:12:14.610" ClosedDate="2010-10-04T09:17:31.503" Title="What are the ways to get free software out of MS?" Tags="&lt;visual-studio-2010&gt;&lt;microsoft&gt;&lt;free-software&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="2" />
  <row Id="9222" PostTypeId="2" ParentId="9221" CreationDate="2010-10-04T02:06:15.950" Score="2" ViewCount="" Body="&lt;p&gt;Also &lt;a href=&quot;http://www.microsoft.com/web/websitespark/&quot; rel=&quot;nofollow&quot;&gt;webspark&lt;/a&gt; for web developers.&lt;/p&gt;&#xA;" OwnerUserId="4379" LastActivityDate="2010-10-04T02:06:15.950" />
  <row Id="9223" PostTypeId="2" ParentId="9215" CreationDate="2010-10-04T02:06:49.210" Score="20" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;h1&gt;&quot;What does that do?&quot;&lt;/h1&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Probably the best question I've ever been asked. It shows that they are interested enough to be willing to learn. If I'm working for someone who even only understands 10% of the code that's better then someone who will promise the moon and the stars to someone without realizing what it actually takes to package and ship those suckers.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-10-04T18:51:39.210" LastActivityDate="2010-10-04T18:51:39.210" />
  <row Id="9224" PostTypeId="2" ParentId="9215" CreationDate="2010-10-04T02:14:40.467" Score="14" ViewCount="" Body="&lt;p&gt;&lt;Blockquote&gt;Why do we need that?&lt;/Blockquote&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question wasn't about the technology or what we were doing. It was intended to get us thinking about why we were doing it. What benefit did it bring now, or later, for the organization? His idea was to get us focusing on the business of IT and not on the immediate technology concern.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And before anybody bring it up, no, this was not a way to get us to stop doing things that were necessary even if the only benefit was within IT. The objective was to get us to stop doing things that didn't lead to benefits for the company, either directly or indirectly.&lt;/p&gt;&#xA;" OwnerUserId="1236" LastEditorUserId="1236" LastEditorDisplayName="" LastEditDate="2010-10-04T04:40:42.493" LastActivityDate="2010-10-04T04:40:42.493" />
  <row Id="9225" PostTypeId="2" ParentId="9219" CreationDate="2010-10-04T02:18:41.180" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Design patterns are great&lt;/strong&gt;. When used properly they make code more maintainable, easier to read and work with. Part of being a good programmer is knowing when to stop and see that any further refactoring will outweigh benefits. Using design patterns alone doesn't make somebody a good programmer, but knowing when and where to use them does. Just like with anything else in this world design patterns can be taken to extreme and be abused. I know I'm still looking (and will be for a long time) for that perfect balance in my code where every design pattern has a purpose and falls into place perfectly just like a piece of jigsaw puzzle.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-04T02:18:41.180" />
  <row Id="9226" PostTypeId="1" AcceptedAnswerId="9234" CreationDate="2010-10-04T02:30:08.937" Score="13" ViewCount="890" Body="&lt;p&gt;I'm basically looking for an opensource Git-Hub that I can throw on my own server and manage private repositories with a nice web interface for clients to post bugs, tasks, etc. I've tried setting up Redmine with Gitosis, but its quickly becoming very complicated. Any good alternatives would be greatly appreciated. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for looking =)&lt;/p&gt;&#xA;" OwnerUserId="4380" LastActivityDate="2010-10-04T10:20:41.523" Title="Is there a good opensource alternative to Git-Hub?" Tags="&lt;project-management&gt;&lt;open-source&gt;&lt;github&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="8" />
  <row Id="9227" PostTypeId="2" ParentId="9219" CreationDate="2010-10-04T02:40:15.340" Score="6" ViewCount="" Body="&lt;p&gt;I consider design patters more of &quot;&lt;strong&gt;advice&lt;/strong&gt;&quot; than an unchangable contract that absolutely must be followed. Why? Precisely for the reason you mentioned. Following a design pattern in everything leads to a big mess of code that defeats the purpose of using a pattern in the first place. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is why I hate sites like &lt;a href=&quot;http://www.javapractices.com/home/HomeAction.do;jsessionid=42F46BA2D45D82A28C8C20D902FEA287&quot; rel=&quot;nofollow&quot;&gt;Java Practices&lt;/a&gt;. Sure some of the idea's are good, but then the author decided to write an entire program (plus a framework) following every single design pattern he mentioned. The author also wrote every article with big scary quotes making the reader think that actual java practices are horrible and should be avoided like the plague. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;TL;DR: Use design patters. Just don't abuse them&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-10-04T02:40:15.340" CommentCount="1" />
  <row Id="9228" PostTypeId="2" ParentId="9218" CreationDate="2010-10-04T02:46:08.947" Score="0" ViewCount="" Body="&lt;p&gt;I don't think that they only judge you based on if you know language X, but more of &lt;strong&gt;if you can learn the new language quickly.&lt;/strong&gt; There is more to your resume than just the number of languages you know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say that if the .NET person walked in knowing a ton of .NET languages (C#, VB, ASP.NET, [&lt;a href=&quot;http://www.dotnetpowered.com/languages.aspx&quot; rel=&quot;nofollow&quot;&gt;insert language here&lt;/a&gt;]) it would convey that they can pick up a new language quickly. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-10-04T02:46:08.947" CommentCount="1" />
  <row Id="9229" PostTypeId="2" ParentId="9221" CreationDate="2010-10-04T02:47:29.100" Score="1" ViewCount="" Body="&lt;p&gt;If you have a MSDN subscription you can get pro copies of software for &quot;free&quot;. And if you want lots of Microsoft software, it pays for itself. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-10-04T02:47:29.100" />
  <row Id="9230" PostTypeId="2" ParentId="9221" CreationDate="2010-10-04T03:29:12.403" Score="0" ViewCount="" Body="&lt;p&gt;you could work there.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-04T03:29:12.403" />
  <row Id="9231" PostTypeId="2" ParentId="4863" CreationDate="2010-10-04T03:29:51.343" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://tachyon.in/clay/&quot; rel=&quot;nofollow&quot;&gt;Clay&lt;/a&gt; Programming Language.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;List item&lt;/li&gt;&#xA;&lt;li&gt;Machine memory model&lt;/li&gt;&#xA;&lt;li&gt;Value semantics&lt;/li&gt;&#xA;&lt;li&gt;Whole program type propagation&lt;/li&gt;&#xA;&lt;li&gt;Module system&lt;/li&gt;&#xA;&lt;li&gt;Extensible variant types&lt;/li&gt;&#xA;&lt;li&gt;Multiple dispatch&lt;/li&gt;&#xA;&lt;li&gt;Powerful compile time meta-programming&lt;/li&gt;&#xA;&lt;li&gt;Interoperability with C&lt;/li&gt;&#xA;&lt;li&gt;No garbage collection&lt;/li&gt;&#xA;&lt;li&gt;LLVM backend&lt;/li&gt;&#xA;&lt;li&gt;Clay is Efficient, concise, generic&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1455" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-10-17T23:06:19.047" LastActivityDate="2010-10-17T23:06:19.047" CommunityOwnedDate="2010-10-22T23:54:06.263" />
  <row Id="9232" PostTypeId="2" ParentId="275" CreationDate="2010-10-04T03:44:18.220" Score="0" ViewCount="" Body="&lt;p&gt;My first programming experience was a learning BASIC on an Apple II in middle school.  I remember doing animations in 40x40 resolution. In high school, I got to take a Pascal class after taking the 2 pre-requisites: Typing and Cobol.  I recently found a printout of a class assignment to print out all the numbers from a file in reverse order.   It appears to take O(n^3) time....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first time I was paid for programming was my 2nd year in college, when I got a work-study job writing ADABAS queries in the NATURAL language for the admissions department.  At that point I was studying Aerospace Engineering and planning to be an aircraft designer.  Before I graduated, I got an internship at an aircraft engine company in the manufacturing department.  My job was programming prototype automated inspection equipment in C.  That was when I knew for sure that I was destined to be a programmer, not an mechanical engineer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since then I've worked in industrial robotics, command and control, training simulation, video game audio, cell phones, and finally I've come full circle.  I'm now back in Aerospace, writing control systems for rocket motors.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-04T03:44:18.220" CommunityOwnedDate="2011-02-13T14:40:48.817" />
  <row Id="9233" PostTypeId="2" ParentId="9221" CreationDate="2010-10-04T04:01:21.933" Score="0" ViewCount="" Body="&lt;p&gt;If you're in school, a few years ago I got a lot of free MS products because I took one Computer Information Systems class in the school of business.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of my CompSci classmates were... not jealous. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe you could audit a such a beneficial class?&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-04T04:01:21.933" />
  <row Id="9234" PostTypeId="2" ParentId="9226" CreationDate="2010-10-04T04:08:24.677" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.projectlocker.com/&quot; rel=&quot;nofollow&quot;&gt;ProjectLocker&lt;/a&gt;&lt;/strong&gt; is an interesting alternative (with free &lt;em&gt;private&lt;/em&gt; projects), but not on a local computer, only as a remote managed service.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a local computer, the two main contenders are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Redmine (which you already looked at) and&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://trac.edgewall.org/&quot; rel=&quot;nofollow&quot;&gt;Trac&lt;/a&gt;&lt;/strong&gt;, which &lt;a href=&quot;http://trac.edgewall.org/wiki/PluginList#VersionControlSystems&quot; rel=&quot;nofollow&quot;&gt;also supports Git&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3915" LastActivityDate="2010-10-04T04:08:24.677" CommentCount="3" />
  <row Id="9235" PostTypeId="2" ParentId="9221" CreationDate="2010-10-04T04:12:14.610" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/academic/default.aspx&quot; rel=&quot;nofollow&quot;&gt;MSDN Academic Alliance&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Students who are enrolled in a college/university that's part of the MSDN-AA are eligible to get Microsoft products for free. That's where I got most of my software from. From Windows 7 to Visual Studio 2010 Pro edition to 1 year XNA premium subscriptions.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-10-04T04:12:14.610" CommentCount="1" />
  <row Id="9236" PostTypeId="1" AcceptedAnswerId="9251" CreationDate="2010-10-04T04:21:51.220" Score="3" ViewCount="251" Body="&lt;p&gt;Sometimes, I see potential in a new technology eg. AIR (not new but I haven't tried it much), and I play around with it. After sometime, I feel inspired to try a new personal project out of it. It was during this project that I sometimes find another &quot;tech&quot; eg. Silverlight more suitable. Maybe its easier to get something done in that platform. But there are many alternatives to such things, and after a while, i feel that i have wasted my time just trying the &quot;new toy&quot;, spending time learning it to get started etc. only to decide that I made the wrong decision.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How long do you take to explore new technology? Or do you stick to what you already know?&lt;/p&gt;&#xA;" OwnerUserId="526" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-10-05T01:53:52.860" LastActivityDate="2010-10-05T01:53:52.860" Title="How much time do you invest in exploring new technology?" Tags="&lt;self-improvement&gt;" AnswerCount="7" CommentCount="1" />
  <row Id="9237" PostTypeId="2" ParentId="9218" CreationDate="2010-10-04T04:47:39.700" Score="1" ViewCount="" Body="&lt;p&gt;A lot of the API's like Google Data have .NET libraries and examples. I assume these are written by .NET guys and not just Python guys in their day off.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-04T04:47:39.700" CommentCount="2" />
  <row Id="9238" PostTypeId="1" AcceptedAnswerId="9241" CreationDate="2010-10-04T04:49:48.393" Score="6" ViewCount="352" Body="&lt;p&gt;I am going into university next year. I think maths would be one of the more important aspects of computer science? I recently saw the MIT Intro to Algorithms video on YouTube and the maths required is quite hardcore. I wonder what parts of maths do i need, probability, calculus, trigo etc. Will the book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201558025&quot; rel=&quot;nofollow&quot;&gt;Concrete Mathematics&lt;/a&gt; - it claims to be foundation for computer science - on Amazon cover most of whats required? &lt;/p&gt;&#xA;" OwnerUserId="526" LastActivityDate="2011-02-13T06:09:03.093" Title="Mathematics for Computer Science" Tags="&lt;self-improvement&gt;&lt;math&gt;&lt;university&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="2" />
  <row Id="9239" PostTypeId="2" ParentId="9062" CreationDate="2010-10-04T04:55:09.697" Score="2" ViewCount="" Body="&lt;p&gt;Even though are Delphi programmers and the source of our product was originally ported from C++, we still feel the need refer to commented out code as REMMED out code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know what it means but have no idea why this is and no one else in the office knows. If it hadn't been for the 4 week BASIC class at College For Kids I took when I was 10 years old this would have been totally lost on me. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-04T04:55:09.697" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="2" />
  <row Id="9240" PostTypeId="2" ParentId="9238" CreationDate="2010-10-04T05:11:58.143" Score="1" ViewCount="" Body="&lt;p&gt;I'm currently a second year Computer Science student and as far as I can tell you should put more emphasis on &lt;a href=&quot;http://en.wikipedia.org/wiki/Discrete_mathematics&quot; rel=&quot;nofollow&quot;&gt;discrete maths&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2243" LastActivityDate="2010-10-04T05:11:58.143" />
  <row Id="9241" PostTypeId="2" ParentId="9238" CreationDate="2010-10-04T05:16:15.987" Score="5" ViewCount="" Body="&lt;p&gt;Yes, the &lt;strong&gt;Concrete Mathematics&lt;/strong&gt; book will certainly help. (Quoted from &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201558025&quot; rel=&quot;nofollow&quot;&gt;Amazon.com&lt;/a&gt;: &quot;Concrete Mathematics is a blending of CONtinuous and disCRETE mathematics.&quot;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most CS degree programs make discrete maths a prerequisite for &lt;em&gt;admission&lt;/em&gt; into the degree program. In other words, it is a first-year course, without which students will find it hard to follow the Introduction to Algorithms materials.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Discrete_mathematics&quot; rel=&quot;nofollow&quot;&gt;Discrete Mathematics&lt;/a&gt; is very different from any mathematics you've seen in high-school. It is closer to logic, set and graph. You may find that the topics are often what makes the so-called &quot;IQ-questions&quot;.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-04T05:16:15.987" CommentCount="1" />
  <row Id="9242" PostTypeId="2" ParentId="9238" CreationDate="2010-10-04T05:18:55.220" Score="3" ViewCount="" Body="&lt;p&gt;Steve Yegge has a nice post on &lt;a href=&quot;http://steve-yegge.blogspot.com/2006/03/math-for-programmers.html&quot; rel=&quot;nofollow&quot;&gt;Math for Programmers&lt;/a&gt; that may give you some ideas. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Discrete math, as mentioned by others is important, but as a non-CS major turned programmer, I can tell you that a breadth of understanding of math (knowing a little about trig, linear algebra, math logic and calculus) had been quite beneficial to me in my career.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-10-04T05:18:55.220" />
  <row Id="9243" PostTypeId="2" ParentId="7749" CreationDate="2010-10-04T05:24:20.470" Score="0" ViewCount="" Body="&lt;p&gt;I think it is important to remember most programmers, probably even 95%, will never be great. The majority are somewhere in the good to very good areas. Even quite a few well know internet 'gurus' often are not that great, just loud. &lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-04T05:24:20.470" CommunityOwnedDate="2011-02-13T16:19:27.957" />
  <row Id="9244" PostTypeId="2" ParentId="9219" CreationDate="2010-10-04T05:32:13.223" Score="25" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Design patterns are a language&lt;/strong&gt;, not advice to write program or a contract.  Their primary use is an a posteriori &lt;em&gt;explanation&lt;/em&gt; how a component or a system was (or is going to be) implemented.  Instead of going into too much details, you can just say a couple of words that can describe the implementation well enough for the listener to understand how it works and what was important in it.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Alex: Hey, how are the config files created?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Bob: They're generated by a factory, which resides in &lt;code&gt;config.h&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Now Alex knows that creation of config files involves non-trivial preparations, because otherwise their creation wouldn't be enclosed into a factory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if Bob was a pattern-headed phony, and just used patterns here and there, Alex couldn't tell anything about config creation, because Bob used factory just everywhere.   This would also lead to excessive complexity in the program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, program first, then spot patterns in your code, not vice versa.  That's how they're effectively used.&lt;/p&gt;&#xA;" OwnerUserId="34" LastEditorUserId="34" LastEditorDisplayName="" LastEditDate="2010-10-04T06:32:25.480" LastActivityDate="2010-10-04T06:32:25.480" CommentCount="3" />
  <row Id="9245" PostTypeId="1" CreationDate="2010-10-04T05:33:31.570" Score="36" ViewCount="2846" Body="&lt;p&gt;Do you know of any interesting real life stories where programmers have written scripts that executed in case of their deaths?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have any scripts that would run in case of your untimely death? If you were to write a such script, what would it be? If you have already written one for yourself, what does that script already do? &lt;/p&gt;&#xA;" OwnerUserId="4385" LastActivityDate="2011-05-19T14:14:05.470" Title="Postmortem scripts that run in case of your untimely death?" Tags="&lt;code&gt;" AnswerCount="13" CommentCount="11" FavoriteCount="12" />
  <row Id="9246" PostTypeId="2" ParentId="7749" CreationDate="2010-10-04T05:48:09.783" Score="1" ViewCount="" Body="&lt;p&gt;In systems programming, One thing I consider vital to the great programmers is &lt;strong&gt;Domain Knowledge&lt;/strong&gt;.  It's not just being able to write good code, it the the ability to understand the basic facts and challenges of the real-world problem that your program is solving.  You don't need to be an expert, but you need to be able to hold intelligent conversations with the experts. &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-04T05:48:09.783" CommunityOwnedDate="2011-02-13T16:19:27.957" />
  <row Id="9247" PostTypeId="2" ParentId="9062" CreationDate="2010-10-04T05:58:11.607" Score="1" ViewCount="" Body="&lt;p&gt;I always try to hunt down the code change (the SVN revision number) which introduce the bug (according to my guess) whenever I report that the bug is fixed. And sometimes I was wrong (i.e. the bug wasn't caused by that change.) SVN blamey.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edited: mine seems to be a compulsion, not superstition.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-04T05:58:11.607" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="2" />
  <row Id="9248" PostTypeId="2" ParentId="9245" CreationDate="2010-10-04T06:01:14.050" Score="38" ViewCount="" Body="&lt;p&gt;One thing comes to mind: If you're the only administrator / root user of some system(s) that other people rely on, somehow sending the credentials to a trusted follower would be a good idea.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-04T06:01:14.050" CommentCount="10" />
  <row Id="9249" PostTypeId="2" ParentId="9062" CreationDate="2010-10-04T06:05:47.423" Score="56" ViewCount="" Body="&lt;p&gt;I always &lt;code&gt;Ctrl-A&lt;/code&gt; (select all) &lt;code&gt;Ctrl-C&lt;/code&gt; (copy) my edits before posting to wiki, SO or any web-based editor. Usually I'll also open a Notepad and paste my text there. This comes from my workplace where the wiki system &lt;em&gt;used to be&lt;/em&gt; very crappy and time-outs were very frequent. If I didn't &lt;code&gt;Ctrl-C&lt;/code&gt; then I lose all of my typings.&lt;/p&gt;&#xA;" OwnerUserId="620" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-10-09T04:46:55.267" LastActivityDate="2010-10-09T04:46:55.267" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="11" />
  <row Id="9250" PostTypeId="2" ParentId="7749" CreationDate="2010-10-04T06:14:20.927" Score="1" ViewCount="" Body="&lt;p&gt;There are kinds of software jobs which do not emphasize on software. Usually the users need some data, and some &quot;software responders&quot; fetch the data by typing in some queries. Once the users get the data, the queries aren't needed anymore. It is throwaway by definition and it's impossible to learn software engineering working on this kind of assignments.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-04T06:14:20.927" CommunityOwnedDate="2011-02-13T16:19:27.957" CommentCount="1" />
  <row Id="9251" PostTypeId="2" ParentId="9236" CreationDate="2010-10-04T06:18:58.107" Score="6" ViewCount="" Body="&lt;p&gt;No. Mostly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The real problem is that you can't know which technologies will pan out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to at least dabble with new technologies so you can keep up with the industry. However, even if the tech you just tried out fails in the market place, chances are you learned something new. Perhaps you learned a new way of looking at an old problem, or a way of structuring an API - or how NOT to do something.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-04T06:18:58.107" />
  <row Id="9252" PostTypeId="2" ParentId="9175" CreationDate="2010-10-04T06:19:32.850" Score="1" ViewCount="" Body="&lt;p&gt;I'd avoid the OOM like avoiding a crash.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Avoid doing huge chunk of work (and allocate huge chunk of memory) at once. Keep the data on the disk, trust the OS disk cache and make use of memory-mapped IO as much as possible, and only operate on a small part of data at a time. If large amounts of data need to be on-line (served with low latency) then keep them in the memory across several machines, like all the big search engine companies do. Or buy a SSD.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-04T06:19:32.850" CommentCount="2" />
  <row Id="9253" PostTypeId="2" ParentId="9055" CreationDate="2010-10-04T06:28:31.767" Score="13" ViewCount="" Body="&lt;p&gt;Peter Norvig - great teacher of AI&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-04T06:28:31.767" CommunityOwnedDate="2010-10-04T20:51:23.403" />
  <row Id="9254" PostTypeId="2" ParentId="8968" CreationDate="2010-10-04T06:30:54.227" Score="1" ViewCount="" Body="&lt;p&gt;age 10. Start with Logo.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-04T06:30:54.227" CommunityOwnedDate="2011-03-04T21:09:34.713" />
  <row Id="9255" PostTypeId="2" ParentId="8772" CreationDate="2010-10-04T06:35:05.527" Score="1" ViewCount="" Body="&lt;p&gt;&lt;code&gt;.*&lt;/code&gt; every symbol is a good symbol for programming.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-04T06:35:05.527" />
  <row Id="9257" PostTypeId="2" ParentId="9215" CreationDate="2010-10-04T06:41:14.963" Score="51" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;What's preventing you from finishing this?&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Not followed by &lt;em&gt;&quot;Why the heck isn't it done yet!?!?&quot;&lt;/em&gt;,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;but by &quot;&lt;strong&gt;What can I do to take those obstacles out of your way?&lt;/strong&gt;&quot;&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-04T06:41:14.963" CommentCount="2" />
  <row Id="9258" PostTypeId="2" ParentId="9226" CreationDate="2010-10-04T06:52:37.330" Score="5" ViewCount="" Body="&lt;p&gt;You can download and &lt;a href=&quot;http://cjohansen.no/en/ruby/setting_up_gitorious_on_your_own_server&quot; rel=&quot;nofollow&quot;&gt;run your own instance&lt;/a&gt; of &lt;a href=&quot;http://gitorious.com/gitorious&quot; rel=&quot;nofollow&quot;&gt;Gitorious&lt;/a&gt; for free. This is the best alternative for your own private repositiories. But you cannot post bugs or tasks. Try one of these for bug and tasks: &lt;a href=&quot;http://www.webresourcesdepot.com/9-free-and-open-source-bug-tracking-softwares/&quot; rel=&quot;nofollow&quot;&gt;9 Free And Open Source Bug Tracking Softwares&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4394" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-04T07:52:38.967" LastActivityDate="2010-10-04T07:52:38.967" />
  <row Id="9259" PostTypeId="2" ParentId="9218" CreationDate="2010-10-04T07:03:54.780" Score="2" ViewCount="" Body="&lt;p&gt;Being .Net &lt;strong&gt;expert&lt;/strong&gt; means that you are exceptionally good programmer. Exceptionally good programmers tend to be productive regardless of the language that they use. I don't think companies like Google could refrain from hiring these guys, as they are looking for the best of the best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW. Java and .Net worlds are not that far away after all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems that Google already hired &lt;a href=&quot;http://stackoverflow.com/users&quot;&gt;top&lt;/a&gt; &lt;a href=&quot;http://stackoverflow.com/users/22656/jon-skeet&quot;&gt;Stack Overflow user&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2554" LastEditorUserId="2554" LastEditorDisplayName="" LastEditDate="2010-10-04T07:26:58.673" LastActivityDate="2010-10-04T07:26:58.673" CommentCount="7" />
  <row Id="9260" PostTypeId="2" ParentId="9218" CreationDate="2010-10-04T07:23:02.010" Score="1" ViewCount="" Body="&lt;p&gt;Fj you are far from reality. Companies like Amazon, Google are likely to hire you for your programming and Algorithm skills rather than anything else. Most of the Interviews in these companies are very much language Neutral. They let you program in the languages of your choice. Also they don't specifically hire you if you know ASP and are really bad at Algorithms and Designing. You can obviously get hired at these companines if you are an exceptional programmer irrespective of the platform on which you are an expert at.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-04T07:23:02.010" CommentCount="5" />
  <row Id="9262" PostTypeId="2" ParentId="9245" CreationDate="2010-10-04T07:44:33.520" Score="20" ViewCount="" Body="&lt;p&gt;There are a couple of websites which offer a postmortem service like sending someone your passwords, cancelling accounts like Facebook/MySpace/mailing lists:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://assetLock.net/&quot; rel=&quot;nofollow&quot;&gt;AssetLock.net&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://legacylocker.com/&quot; rel=&quot;nofollow&quot;&gt;Legacy Locker&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://deathswitch.com/&quot; rel=&quot;nofollow&quot;&gt;Deathswitch.com&lt;/a&gt; (Flash :-( but offers “final word in an argument” as a service)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-10-04T07:44:33.520" CommentCount="1" />
  <row Id="9263" PostTypeId="2" ParentId="9180" CreationDate="2010-10-04T07:53:53.160" Score="1" ViewCount="" Body="&lt;p&gt;I was a better programmer than my teachers in university.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I learned great programming practices when I started to work.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-04T07:53:53.160" />
  <row Id="9265" PostTypeId="2" ParentId="9219" CreationDate="2010-10-04T07:57:56.243" Score="4" ViewCount="" Body="&lt;p&gt;Design patterns are great, if used correctly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's useful to remember that the idea of design patterns originated in architecture.  Architecture can vary wildly.  However, there are many core ideas that are present in any building.  In this way, think of patterns as building blocks of design.  It is important to note that not every building includes all possible architectural patterns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Say you're designing a house.  Rather than having the front door open onto the street, you want a sheltered area before entering the house, i.e. an anteroom.  This area will fit a certain pattern.  Namely, it will have two entrances, some walls and probably a roof.  Note, the pattern does not specify doors, windows or how many walls.  In most implementations, there will be two doors, four walls and maybe windows.  However, the pattern describes an enclosed area with two entrances.  One leads into the anteroom itself from outside of the house and the other leads into the rest of the house.  The key here, is that if you want an anteroom you must enclose an area and provide two entrances into that area.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The typical problems with design patterns in programming are over use and the belief that they are silver bullets to fix any issue.  They are not.  They are ways to communicate and think about useful programming ideas.  If the bits of syntax of a particular language are the bricks and mortar, patterns describe useful ways to arrange them to meet a certain needs.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-10-04T07:57:56.243" />
  <row Id="9266" PostTypeId="2" ParentId="9215" CreationDate="2010-10-04T08:11:11.253" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Why can't this be done &quot;the other&quot; way?&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This really shows that your boss has command and experience over the task assigned to you. This makes his team members brainstorm the ideas before they bring them to him.&lt;/p&gt;&#xA;" OwnerUserId="3299" LastEditorUserId="3299" LastEditorDisplayName="" LastEditDate="2010-10-04T08:19:39.357" LastActivityDate="2010-10-04T08:19:39.357" CommentCount="1" />
  <row Id="9267" PostTypeId="2" ParentId="9236" CreationDate="2010-10-04T08:12:03.337" Score="4" ViewCount="" Body="&lt;p&gt;Knowing a lot about available technologies and solutions can be very productive. I prefer an average developer that knows a lot of different things and alternatives and that will point out the best solution for a given problem, than a guru in one and only technology that will try to do everything in the same platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you have the opportunity in your job to do some research &amp;amp; development, go ahead.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-04T11:35:45.093" LastActivityDate="2010-10-04T11:35:45.093" CommentCount="2" />
  <row Id="9268" PostTypeId="1" CreationDate="2010-10-04T08:14:00.453" Score="8" ViewCount="213" Body="&lt;p&gt;Requested re-post from StackOverflow:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm working in a small development time with very limited time for development. We develop a tool that is important for the result of our work, but not used daily. I am the only person in the team that has a background as a programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My problem is that I have been pushing for code reviews before merging back to trunk for over a year. Everyone agreed on this, but still it's only my code that has been reviewed. Returning from a long vacation I come back to a trunk with code comments as &quot;this is an ugly solution - remove as soon as possible&quot; and &quot;quick fix&quot;. What also is new is that a guy has been appointed the responsibility for the tool. (A role that first was offered to me but I turned down due to a non work related reason.) And he thinks that this is an ok way to work: As we have such limited time to develop, we should cut corners like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My concern is that the other developers write ugly code: often breaking encapsulation, writing huge classes, adding internal classes at strange places, having few or no unit tests, and so on. It will eventually be impossible to develop the tool further.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I insist that we perform code reviews before merging back to trunk or am I just a code quality bitch?&lt;/p&gt;&#xA;" OwnerUserId="4401" LastEditorUserId="37" LastEditorDisplayName="" LastEditDate="2010-10-05T09:04:29.767" LastActivityDate="2010-10-05T09:04:29.767" Title="Should I insist that we perform code reviews before merging back to trunk?" Tags="&lt;code-quality&gt;&lt;collaboration&gt;&lt;code-reviews&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="1" />
  <row Id="9269" PostTypeId="2" ParentId="9219" CreationDate="2010-10-04T08:14:09.620" Score="2" ViewCount="" Body="&lt;p&gt;Also seet &lt;a href=&quot;http://stackoverflow.com/questions/327955/does-functional-programming-replace-gof-design-patterns/328146#328146&quot;&gt;this&lt;/a&gt; thread on SO. From another POV design patterns are boilerplate code to compensate for the shortcomings of the used methodology. I am not a fan of celebrating those workarounds too much.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-10-04T08:14:09.620" CommentCount="2" />
  <row Id="9271" PostTypeId="2" ParentId="8157" CreationDate="2010-10-04T08:25:51.763" Score="2" ViewCount="" Body="&lt;p&gt;As for .NET, there are three projects to port Maven. See &lt;a href=&quot;http://stackoverflow.com/questions/652583/is-there-a-maven-alternative-or-port-for-the-net-world&quot;&gt;this answer&lt;/a&gt; on stackoverflow.com. Also &lt;a href=&quot;http://docs.codehaus.org/display/MAVENUSER/Using+Maven+to+manage+.NET+projects&quot; rel=&quot;nofollow&quot;&gt;this wiki article&lt;/a&gt; might be helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the other languages, I suggest to apply the same structure that Maven supports (all sources below &lt;code&gt;src/language/main&lt;/code&gt;, etc) and then either write Maven plugins to build them or at least write generic &quot;Makefile&quot; templates which support this structure out of the box.&lt;/p&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-10-04T08:25:51.763" />
  <row Id="9272" PostTypeId="1" CreationDate="2010-10-04T08:36:53.623" Score="16" ViewCount="487" Body="&lt;p&gt;Sometimes an algorithm can be written in two ways:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The short, fancy way; or&lt;/li&gt;&#xA;&lt;li&gt;The longer, easy-to-understand way.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For example, here is a longer, easier way of copying a string &lt;code&gt;source&lt;/code&gt; to &lt;code&gt;dest&lt;/code&gt; in C:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;*dest = *source;&#xA;while (*source != '\0') {&#xA;    source++;&#xA;    dest++;&#xA;    *dest = *source;&#xA;} (true);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And here is a short, fancy way.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// Copy string source to dest&#xA;while (*dest++ = *source++);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I've always heard and read that fancy code should be avoided, and I tend to agree. But what if we take comments into account? &lt;strong&gt;Assume that, as in the examples above, we have an uncommented, longer and supposedly easier-to-understand code, and a well-commented, short, fancy code? Is the non-fancy code still preferred?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; Many have commented on variable names, so I've modified the example code as to not make that a factor when preferring on over the other. I tried to remove the double assignment in the first example, but that only made the code less readable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps this wasn't the best of examples because many find the 'fancy' code more readable and understandable than the longer code. The idea was to have one longer code which was much easier to understand than a very short but complicated code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT2:&lt;/strong&gt; Here's a new examle I got from &lt;a href=&quot;http://stackoverflow.com/questions/3948111/need-a-short-complicated-c-code-and-a-longer-understandable-version/3948345#3948345&quot;&gt;SO&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Commented fancy version:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//direct formula for xoring all numbers from 1 to N&#xA;int Sum = (N &amp; (N % 2 ? 0 : ~0) | ( ((N &amp; 2)&gt;&gt;1) ^ (N &amp; 1) ) );&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Non-commented long version:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int Sum = 0;&#xA;for (int i = 1; i &amp;lt; N; ++i)&#xA;{&#xA;   Sum ^= i; //or Sum = Sum ^ i;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-10-19T10:02:42.163" LastActivityDate="2010-10-19T10:24:48.233" Title="Commented short fancy code vs. uncommented longer easy-to-understand code - which is preferred?" Tags="&lt;programming-practices&gt;&lt;coding&gt;&lt;comparison&gt;" AnswerCount="11" CommentCount="6" FavoriteCount="3" />
  <row Id="9273" PostTypeId="2" ParentId="9215" CreationDate="2010-10-04T08:43:40.000" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;That should have took you a month to do. How did you do it in 2 days?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Many years ago working for someone that didn't know what you can achieve with a little bit of programming.&lt;/p&gt;&#xA;" OwnerUserId="4402" LastActivityDate="2010-10-04T08:43:40.000" />
  <row Id="9275" PostTypeId="2" ParentId="959" CreationDate="2010-10-04T08:49:26.137" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;[T]he question of whether Machines&#xA;  Can Think, [...] is about as relevant as&#xA;  the question of whether Submarines Can&#xA;  Swim.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;a href=&quot;http://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD898.html&quot; rel=&quot;nofollow&quot;&gt;Edsger W. Dijkstra&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I think what Dijkstra is saying here is that to make an analogy between human 'thought' and machine 'thought' is wrong. In the same way that submarines don't actually swim, computers don't (or may not) actually think, but they do something that achieves the same effect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think eventually machines will surpass human ability. Weather we will be able to classify (or even understand) that machine ability as &quot;intelligence&quot; is another matter.&lt;/p&gt;&#xA;" OwnerUserId="134" LastActivityDate="2010-10-04T08:49:26.137" CommunityOwnedDate="2011-04-19T01:26:27.260" />
  <row Id="9276" PostTypeId="2" ParentId="9272" CreationDate="2010-10-04T09:00:39.647" Score="4" ViewCount="" Body="&lt;p&gt;Whatever is clearest. Often that's a compact easy to understand snippet of code that doesn't require a comment... like your second example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally shorter snippets of code are easier to understand as there is less for the reader to keep in his head at a time. Obviously, there is a limit when the code gets overly obfuscated and I don't mean that clarity enhancing white space should be trimmed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Comments should never state anything that is obvious from the code, that just makes the reader read the same thing twice. To me the first snippet requires clarification. Why hasn't the developer used a &lt;code&gt;do...while&lt;/code&gt; loop to remove the duplicated of the &lt;code&gt;*s = *t;&lt;/code&gt; assignment? I have to parse more code to realise that it's implementing a string copy. A comment would be more helpful on this longer code than on the shorter code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The comment on the second snippet is &lt;em&gt;almost&lt;/em&gt; redundant as that while loop is practically idiomatic, but it does say what the code does at a higher level that the code itself which makes it a useful comment.&lt;/p&gt;&#xA;" OwnerUserId="4396" LastActivityDate="2010-10-04T09:00:39.647" CommentCount="1" />
  <row Id="9277" PostTypeId="2" ParentId="9272" CreationDate="2010-10-04T09:07:55.430" Score="4" ViewCount="" Body="&lt;p&gt;The problem is that there is no clear definition of &lt;code&gt;short fancy code&lt;/code&gt; since it depends very much on the level of the programmer. While some people have no problem understanding a &lt;code&gt;while(*s++ = *t++);&lt;/code&gt; expression, others will.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I find the &lt;code&gt;while(*s++ = *t++);&lt;/code&gt; perfectly readable and the longer one more difficult to read. Others might not agree though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless, it's just a matter of using common sense. Readability should definately be a priority but there's a point where longer code gets less readable when it gets longer. Verbosity often reduces readability from my experience.&lt;/p&gt;&#xA;" OwnerUserId="4402" LastActivityDate="2010-10-04T09:07:55.430" CommentCount="3" />
  <row Id="9278" PostTypeId="2" ParentId="9268" CreationDate="2010-10-04T09:15:24.770" Score="2" ViewCount="" Body="&lt;p&gt;i've been in similar situations before and imho it depends on &quot;do I have to maintain the code&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I have to maintain the code, than I want high quality code, I personally don't require code reviews for every commit (i.e. programmers can decide for themselves if certain code needs a review or not) but if the readability/maintainability suffers than it might be in order.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When reading this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;My concern is that the other&#xA;  developers write ugly code: often&#xA;  breaking encapsulation, writing huge&#xA;  classes, adding internal classes at&#xA;  strange places, having few or no unit&#xA;  tests, and so on. It will eventually&#xA;  be impossible to develop the tool&#xA;  further.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I do think that your problem is larger than just code reviews. You seem to be missing a few guidelines and/or they are not implemented. Having no/few unit tests might be a bad idea but depends on the specific case. However, &lt;code&gt;breaking encapsulation, writing huge classes, ...&lt;/code&gt; really make bug-prone code so that should definately be fixed.&lt;/p&gt;&#xA;" OwnerUserId="4402" LastActivityDate="2010-10-04T09:15:24.770" />
  <row Id="9279" PostTypeId="2" ParentId="9272" CreationDate="2010-10-04T09:22:54.523" Score="7" ViewCount="" Body="&lt;p&gt;I'm all for the longer version.&#xA;The problem with the short version of the code, aside from it being more difficult for some programmers to read, is that most of the time it is harder to spot mistakes by just looking at it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a real life example.&#xA;In our product we had the following snippet of code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (++someCounter &amp;lt; MAX_VALUE) {&#xA;    // Do something that has to be done only MAX_VALUE times&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This code looks perfectly reasonable at first sight, but after a long period of time this counter overflows and breaks the condition (in the real-life scenario we crushed our client's production system with an OOM).&#xA;This code is a bit less &quot;sophisticated&quot;, but it's clear that it does what it is supposed to do:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (someCounter &amp;lt; MAX_VALUE) {&#xA;    ++someCounter;&#xA;    // Do whatever it is we came here for&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And you may say that the developer who wrote this code just wasn't good enough (which is not true, he was a rather bright guy), but I think that if your coding technique requires you to be super-duper skilled programming GOD in order to get your code right, you are doing something wrong. Your code should be as fool-proof as possible for your sake and for whoever has to maintain this code after you (who may not be as smart as you are).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So - I'm all for simplicity and clearness.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Oh, and regarding comments - it doesn't matter. Many people won't read comments anyway (&lt;a href=&quot;http://www.javaspecialists.co.za/archive/Issue039.html&quot; rel=&quot;nofollow&quot;&gt;http://www.javaspecialists.co.za/archive/Issue039.html&lt;/a&gt;) and those who won't understand your code without comments, will not understand it well enough with them so that they can maintain it. The goal is to help people &lt;strong&gt;see&lt;/strong&gt; that certain code is &quot;correct&quot;, comments can't help with that.&lt;/p&gt;&#xA;" OwnerUserId="3624" LastEditorUserId="3624" LastEditorDisplayName="" LastEditDate="2010-10-04T09:28:55.937" LastActivityDate="2010-10-04T09:28:55.937" CommentCount="1" />
  <row Id="9280" PostTypeId="2" ParentId="9272" CreationDate="2010-10-04T09:24:59.543" Score="17" ViewCount="" Body="&lt;p&gt;I would generally prefer to extract the fancy code out into its own method..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rather than comment the fancy code, its method name should be all it needs to make things clear.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;char *copy_string(char *s, const char *t) {    &#xA;    while (*s++ = *t++); &#xA;    return s;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1724" LastActivityDate="2010-10-04T09:24:59.543" CommentCount="7" />
  <row Id="9281" PostTypeId="2" ParentId="9236" CreationDate="2010-10-04T09:29:10.833" Score="1" ViewCount="" Body="&lt;p&gt;Spend a little time knowing whats out there, but spend most of your time becoming really good at a few technologies - and keep updated with those.&lt;/p&gt;&#xA;" OwnerUserId="1724" LastActivityDate="2010-10-04T09:29:10.833" />
  <row Id="9282" PostTypeId="2" ParentId="9215" CreationDate="2010-10-04T09:29:25.983" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;&quot;How do you build computers, really?&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&quot;You design logic and make circuits from it...&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;But how did they make the first computer?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;The hard way...&quot; (I goes to the white board...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I actually had to draw a complete-ish mini-CPU with ALU, registers, memory and an example instruction stream with bits.. but I think he got it. :)&lt;/p&gt;&#xA;" OwnerUserId="3917" LastEditorUserId="3917" LastEditorDisplayName="" LastEditDate="2010-10-04T17:18:37.970" LastActivityDate="2010-10-04T17:18:37.970" CommentCount="3" />
  <row Id="9283" PostTypeId="2" ParentId="6834" CreationDate="2010-10-04T09:31:21.097" Score="2" ViewCount="" Body="&lt;p&gt;What I'd like to see in an IDE are these features:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Display the code the way I'm used to (independent of how it's actually formatted)&lt;/li&gt;&#xA;&lt;li&gt;Allow to embed tables (say an Excel spread sheet where I can read the cell values with &lt;code&gt;sheet[A3]&lt;/code&gt;) and drawings in the code and access them just like any variable.&lt;/li&gt;&#xA;&lt;li&gt;Allow to omit braces and other unnecessary code that is just there to make the parse happy.&lt;/li&gt;&#xA;&lt;li&gt;Searching the code with a Google-like engine (especially getting search results within 35ms)&lt;/li&gt;&#xA;&lt;li&gt;Displaying complex &lt;code&gt;if&lt;/code&gt; conditions in a table-like manner (still searching the link).&lt;/li&gt;&#xA;&lt;li&gt;Refactoring tools which can find similar code, extract the differences and reduce them to the max.&lt;/li&gt;&#xA;&lt;li&gt;Support for code generation while obeying language rules (think: Create all getters and setters for Java classes unless a method with the same name already exists or dependent on annotations)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-10-04T09:31:21.097" CommentCount="7" />
  <row Id="9284" PostTypeId="2" ParentId="1200" CreationDate="2010-10-04T09:35:02.977" Score="0" ViewCount="" Body="&lt;p&gt;Yes, I'd agree with &lt;a href=&quot;http://mitpress.mit.edu/sicp/&quot; rel=&quot;nofollow&quot;&gt;SICP&lt;/a&gt; being an excellent book to learn FP in Scheme.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you aren't married to Scheme, but would consider learning Haskell then &lt;a href=&quot;http://www.realworldhaskell.org/blog/&quot; rel=&quot;nofollow&quot;&gt;Real World Haskell&lt;/a&gt; is an excellent read too.&lt;/p&gt;&#xA;" OwnerUserId="4294" LastActivityDate="2010-10-04T09:35:02.977" />
  <row Id="9285" PostTypeId="2" ParentId="9236" CreationDate="2010-10-04T09:39:04.907" Score="2" ViewCount="" Body="&lt;p&gt;&quot;A wise man can see more from the bottom of a well than a fool from a mountain top&quot; -- Unknown&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While it may seem a waste of time to play a few hours/days/weeks with a new technology, you will learn something from it -- even if it's only to avoid it. But then, you'll know &lt;em&gt;why&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some other benefits are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You can learn new ways to do old tricks&lt;/li&gt;&#xA;&lt;li&gt;You can discover how cool some features of your old toys are. Like if you hate Java and then try something new -- and suddenly miss all those frameworks and libraries. Nothing is &lt;em&gt;all&lt;/em&gt; bad.&lt;/li&gt;&#xA;&lt;li&gt;It will widen your horizon&lt;/li&gt;&#xA;&lt;li&gt;You'll get in contact with new people, a new way of thinking&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-10-04T09:39:04.907" />
  <row Id="9286" PostTypeId="2" ParentId="9055" CreationDate="2010-10-04T09:52:24.000" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Guy L. Steele&lt;/strong&gt; -- the Great Quux, co-inventor of Scheme and co-author of the &quot;Lambda the Ultimate Foo&quot; papers, co-author of the Java Language Specification, one of the earliest emacs hackers.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-10-04T12:10:56.457" LastActivityDate="2010-10-04T12:10:56.457" CommunityOwnedDate="2010-10-04T20:51:23.403" />
  <row Id="9287" PostTypeId="2" ParentId="1200" CreationDate="2010-10-04T09:58:31.117" Score="0" ViewCount="" Body="&lt;p&gt;If you prefer listening to reading, &lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book.html&quot; rel=&quot;nofollow&quot;&gt;SICP&lt;/a&gt; also has &lt;a href=&quot;http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/&quot; rel=&quot;nofollow&quot;&gt;video lectures&lt;/a&gt;. I am at lecture 6b now. :)&lt;/p&gt;&#xA;" OwnerUserId="1495" LastActivityDate="2010-10-04T09:58:31.117" />
  <row Id="9288" PostTypeId="2" ParentId="9268" CreationDate="2010-10-04T10:00:16.867" Score="4" ViewCount="" Body="&lt;p&gt;I think that code reviews and maintaining some coding guidelines is a good idea, but I think that doing it for &lt;strong&gt;each and every check in&lt;/strong&gt; is a waste of time. It's a good idea when establishing a team and with young programmers, but experienced programmers can think for themselves and eventually you will have to trust them. That said - you can do the periodical code reviews to fresh thing up, but looking at each and every line of code that enters your VCS is really overdoing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And a small comments regarding your colleague's fixes - some times making an ugly fix &lt;strong&gt;is the correct solution&lt;/strong&gt;. It may be that this particular code is not important enough to invest lots of time in, it may be that the simple solution is good enough and it's better to invest time in other things. Making your code &quot;pretty&quot; is not your main goal as a programmer. &lt;a href=&quot;http://www.joelonsoftware.com/items/2009/09/23.html&quot; rel=&quot;nofollow&quot;&gt;Your main goal is to deliver&lt;/a&gt; and obsessing on every line of code simply won't get you there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I'm trying to say is - you need to choose your battles. It's OK to lose the battle over some insignificant utility class to win the delivery war (or this REALLY IMPORTANT subsystem war, for that matter).&lt;/p&gt;&#xA;" OwnerUserId="3624" LastActivityDate="2010-10-04T10:00:16.867" />
  <row Id="9290" PostTypeId="1" AcceptedAnswerId="9291" CreationDate="2010-10-04T10:13:44.647" Score="4" ViewCount="323" Body="&lt;p&gt;Hello everyone&lt;br&gt;&#xA;I have seen as I write more and more code that my solutions tend to be shorter  and shorter, I write less code  to resove a problem. More consise code.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is if it is something that just comes with experience or is it something you can do explicitly for developing that quality?&lt;br&gt;&#xA;Best regards&lt;br&gt;&#xA;Gorgen&lt;/p&gt;&#xA;" OwnerUserId="1041" LastEditorUserId="1041" LastEditorDisplayName="" LastEditDate="2010-10-04T11:23:23.373" LastActivityDate="2010-10-04T13:09:40.590" Title="How to write less code" Tags="&lt;self-improvement&gt;" AnswerCount="6" CommentCount="0" FavoriteCount="2" />
  <row Id="9291" PostTypeId="2" ParentId="9290" CreationDate="2010-10-04T10:19:02.687" Score="2" ViewCount="" Body="&lt;p&gt;I would say that on the whole it is something that comes with time and experience, but you may find that if you do some work with more terse languages you bring that quality back to your regular working languages. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Certainly after a year or two working with Ruby I found my C# got a lot tauter. I think if I was to understand functional programming better ( an ongoing ambition ) I would probably take more from that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also there are some guidelines that can help- for example if you write the same two lines more than once split them into their own method. That's a simple guideline but quickly cuts down on lines of code and cut and paste programming, which most of us are guilty of from time to time.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-04T10:19:02.687" CommentCount="3" />
  <row Id="9292" PostTypeId="2" ParentId="9226" CreationDate="2010-10-04T10:20:41.523" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://repo.or.cz/&quot; rel=&quot;nofollow&quot;&gt;repo.or.cz&lt;/a&gt; ispowered by &lt;a href=&quot;http://repo.or.cz/w/girocco.git&quot; rel=&quot;nofollow&quot;&gt;Girocco&lt;/a&gt;, which is open source. You can download and install it locally. It is not quite a github, but for only repository management, it can do the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a more complete solution, you can try &lt;a href=&quot;http://www.indefero.net/open-source/&quot; rel=&quot;nofollow&quot;&gt;InDefero&lt;/a&gt;, which (according to the author) is a rewrite of Google Code with git as the backend (later Mercurial and SVN support was added). I didn't try to install it, but I was planning to do it at some point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a good list of available web frontends to git, you can check out &lt;a href=&quot;https://git.wiki.kernel.org/index.php/InterfacesFrontendsAndTools#Web_Interfaces&quot; rel=&quot;nofollow&quot;&gt;this page&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1495" LastActivityDate="2010-10-04T10:20:41.523" />
  <row Id="9293" PostTypeId="2" ParentId="9290" CreationDate="2010-10-04T10:24:34.753" Score="1" ViewCount="" Body="&lt;p&gt;The entire art of programming can be said to come down to just this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can study languages that have a traditional emphasis on clarity and conciseness (e.g. Haskell, Scheme, Python), or even terser paradigms like &lt;a href=&quot;http://factorcode.org/&quot; rel=&quot;nofollow&quot;&gt;Factor&lt;/a&gt; and other concatenative languages, but ultimately, everything you could choose to study should ultimately contribute to helping you write shorter, less redundant code.&lt;/p&gt;&#xA;" OwnerUserId="4319" LastActivityDate="2010-10-04T10:24:34.753" />
  <row Id="9294" PostTypeId="2" ParentId="9290" CreationDate="2010-10-04T10:35:10.247" Score="2" ViewCount="" Body="&lt;p&gt;Beyond the understanding of a programming language, I think one's understanding of a problem and coming up with a good solution has a lot to do with it.  There are many solutions to most problems, not all of them are optimal.  You can drive from city A to city B through different roads - one could take two hours, the other could take double.  It's the same idea in programming.  You may know a language very well, but you may come up with a solution that takes, say, two pages of code, while somebody else will figure out a solution that can be implemented in a quarter of half the code size.  I've seen this a lot over the years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure you have a good understanding of the problem. Analyze it, come up with solution(s), weigh the pros and cons (of course &quot;solutions with an 's'&quot; will vary greatly from problem to problem - just generally speaking here.)  Then there's implementation of the chosen solution, which is where your understanding of the language (and framework, if that applies) will come into play.&lt;/p&gt;&#xA;" OwnerUserId="3842" LastActivityDate="2010-10-04T10:35:10.247" CommentCount="2" />
  <row Id="9295" PostTypeId="2" ParentId="9175" CreationDate="2010-10-04T10:41:43.927" Score="1" ViewCount="" Body="&lt;p&gt;I would always check for error. If something returns an error condition, then it has to be handled by your program. Even if it is a message that says &quot;Out of memory, gotta go!&quot;, it is better than &quot;Access violation&quot;, &quot;core dumped&quot;, or whatever. One is an error condition you handle, the other is a bug. And the user will perceive it as such as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For your specific case, you could try to roll back the operation, freeing resources that you've allocated until reaching the point of failure, reporting the error, and continuing execution (maybe when you are trying to quit the application, you can give the option to exit immediately). This way, the user can decide what to do, or try to free up some memory by fiddling around, closing files, etc. Of course, how you can handle the situation is highly dependent on your program - a program that is not supposed to be interactive probably just needs to log the error and either quit, or continue.&lt;/p&gt;&#xA;" OwnerUserId="1495" LastActivityDate="2010-10-04T10:41:43.927" />
  <row Id="9296" PostTypeId="2" ParentId="9272" CreationDate="2010-10-04T10:49:28.547" Score="6" ViewCount="" Body="&lt;p&gt;I would generally prefer the longer version.  Two main reasons spring to mind:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;More people are likely to understand it with less effort (assuming it's not such a &quot;standard&quot; example as this string copy).&lt;/li&gt;&#xA;&lt;li&gt;It's possible to put breakpoints on individual statements and step through with a debugger.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For the best of both worlds, wrap the code in a function, whose name does the commenting for you:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void copy_string(char *s, char *t)&#xA;{&#xA;    *s = *t;&#xA;    while (*t != '\0') {&#xA;        t++;&#xA;        s++;&#xA;        *s = *t;&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The only reason not to do this would be if performance were an issue and profiling genuinely showed the function overhead to be significant.&lt;/p&gt;&#xA;" OwnerUserId="4400" LastActivityDate="2010-10-04T10:49:28.547" CommentCount="2" />
  <row Id="9297" PostTypeId="2" ParentId="9215" CreationDate="2010-10-04T10:55:32.607" Score="15" ViewCount="" Body="&lt;p&gt;On one occasion my boss (actually my boss' boss) asked me to implement a particular feature and my immediate response was &quot;that can't be done, there's no way to do it.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He smiled and said &quot;OK, right, I've heard what you said, and I understood it. Now let's just pretend for a moment that I'm saying it &lt;em&gt;will&lt;/em&gt; be done, how would you go about it?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He was damn right, as well, and I did find a way to do it. Just re-phrasing the question in that way really helped (even though it was not a technical comment).&lt;/p&gt;&#xA;" OwnerUserId="2242" LastActivityDate="2010-10-04T10:55:32.607" CommentCount="1" />
  <row Id="9298" PostTypeId="2" ParentId="9290" CreationDate="2010-10-04T11:13:19.713" Score="5" ViewCount="" Body="&lt;p&gt;One great way to write less code is to try to &lt;strong&gt;avoid re-inventing the wheel&lt;/strong&gt;, and use existing software components when available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One common answer I get when I ask why people did their own ORM, or their own logging engine, or their own UI components, or their own everything:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;But our is better&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I believe this statement is correct most of the case, but the negative impact on the &lt;strong&gt;ROI&lt;/strong&gt; is very high in most case. You mom does the best dishes right? But you can't ask you mom to come home and prepare them everyday.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's why I do think that developers should get interest in financial impact of their choices. Some of them are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Extra work required to build the component&lt;/li&gt;&#xA;&lt;li&gt;Extra work for new comers to learn it&lt;/li&gt;&#xA;&lt;li&gt;Huge extra work to maintain it&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I like to think that those component vendors are your extended team working for you for a tiny fraction of what you would have paid to build, maintain and improve it yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's better for the whole company to maximum &lt;strong&gt;ROI&lt;/strong&gt; rather than working on maximizing our ego satisfaction ;) The more money your company get, the more likely your work conditions and salary will increase.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-04T11:34:37.170" LastActivityDate="2010-10-04T11:34:37.170" CommentCount="6" />
  <row Id="9299" PostTypeId="2" ParentId="1200" CreationDate="2010-10-04T11:17:11.847" Score="0" ViewCount="" Body="&lt;p&gt;Try to learn some math and get adapted to it's style.&#xA;What are functions? What is a variable? How do variables different from constants and how do they not?&lt;/p&gt;&#xA;" OwnerUserId="4298" LastActivityDate="2010-10-04T11:17:11.847" />
  <row Id="9300" PostTypeId="2" ParentId="9268" CreationDate="2010-10-04T11:17:50.633" Score="1" ViewCount="" Body="&lt;p&gt;If the program in question is not a one-off throwaway prototype, I think code reviews should be mandatory for every check-in. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Senior developers could have a privilege of non-reviewed check-ins, once they are known to conscientious enough to request a review when appropriate. &lt;/p&gt;&#xA;" OwnerUserId="2193" LastActivityDate="2010-10-04T11:17:50.633" />
  <row Id="9301" PostTypeId="2" ParentId="9272" CreationDate="2010-10-04T11:19:14.037" Score="0" ViewCount="" Body="&lt;p&gt;In my experience the biggest win in terms of short fancy code tends to be using recursion rather than iteration. It's also one of the hardest thing to understand at a glance-over of code, unless you're working in the kind of language where everything is recursive anyway. I would still favour it for the elegance and speed of development it offers, but I try to make sure it has detailed comments if it looks like it will be opaque to future maintainers or my future self.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-04T11:19:14.037" />
  <row Id="9302" PostTypeId="2" ParentId="959" CreationDate="2010-10-04T11:24:37.723" Score="1" ViewCount="" Body="&lt;p&gt;It depends on what you mean by Artificial Intelligence.  Do you mean human-like intelligence in the form of a computer? Perhaps AI that is &lt;em&gt;more&lt;/em&gt; intelligent than a human? There are some areas of human intelligence that are completely unnecessary in the form of a machine; for example, a machine that needs to think about eating and sleeping is a bit pointless, since they don't need to eat or sleep.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If we truly want to emulate the human brain in a machine, I guess the first step is to actually understand the human brain.  We don't yet fully understand how we recognise images (and more specifically, faces).  There has been a lot of research in this field and there are specific neurons that fire when you see a face - whether you recognise who's face it is or not.  Jeff Hawkins's book &lt;em&gt;On Intelligence&lt;/em&gt; is a great book on how our senses work in the brain.  He has even gone as far as to help develop a system that loosely copies this.  Although it is in the early stages, there are various applications that use this system for image recognition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for speech and text recognition, etc, this is largely recognised by the Turing Test.  It's been mentioned by previous answers.  So far not one computer has been able to fool a judge in only the text writing category, let alone the speech category.  No one's even attempted that one yet because there is simply no chance they'd fool a judge.  That gold medal will remain unclaimed for a long time.  Will it eventually get claimed? Probably.  You have to remember though that back in the 1950s people were saying that by 2000 we'd have human-like intelligence.  Evidently they were wrong.  Advances in AI aren't as great as the advances in sheer processing power and other fields of computer science.&lt;/p&gt;&#xA;" OwnerUserId="3549" LastActivityDate="2010-10-04T11:24:37.723" CommunityOwnedDate="2011-04-19T01:26:27.260" />
  <row Id="9303" PostTypeId="2" ParentId="9180" CreationDate="2010-10-04T11:24:44.600" Score="3" ViewCount="" Body="&lt;p&gt;A lot of good programmers come out of university computer science degrees, mostly the same ones that went into them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing about computer science is that it is, as people have discussed above, not the same as programming. A lot of stuff I studied at university I basically wasn't ready for- there was a lot of stuff that seemed like pie-in-the-sky academic nonsense when I was hearing lectures about it, but a few years later I wished I had paid more attention to it as I ended up learning a bunch of stuff again that I had filed away as useless. I actually think that one could use doing a few years of programming in a commercial environment before starting a degree in computer science if that is what you want to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also I think often at university you don't necessarily know how to learn. A lot of things I have learned by mistake or by learning from other developers are surely things my lecturers and grad students knew at university but I had no idea it would be useful to understand them. Asking people about problems you're having while you're learning to do something ( and this applies to anything really ) makes the learning process smoother and less painful. Most things you can learn for yourself or from other people - given that many of the lessons I've learned for myself have been learned from my painful mistakes, I'd choose to learn from other people when I can...&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-04T11:24:44.600" />
  <row Id="9304" PostTypeId="2" ParentId="9055" CreationDate="2010-10-04T11:27:27.617" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://okmij.org/ftp/&quot; rel=&quot;nofollow&quot;&gt;Oleg Kiselyov&lt;/a&gt;&lt;/strong&gt; is one of the most productive and influential persons in the functional programming world. There are even Chuck-Norris-style jokes about his work: &quot;&lt;a href=&quot;http://haskell.spreadshirt.com/oleg-already-did-it-A6499531&quot; rel=&quot;nofollow&quot;&gt;Oleg already did it&lt;/a&gt;&quot;.&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-10-04T15:09:24.953" LastActivityDate="2010-10-04T15:09:24.953" CommunityOwnedDate="2010-10-04T20:51:23.403" CommentCount="1" />
  <row Id="9305" PostTypeId="2" ParentId="7592" CreationDate="2010-10-04T11:32:02.757" Score="1" ViewCount="" Body="&lt;p&gt;I'm a big Pro Power Tools fan, but since no-one has mentioned the &lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/0c92dd87-50ac-489e-882b-b99de7624502&quot; rel=&quot;nofollow&quot;&gt;Win7 Taskbar Extensions&lt;/a&gt;, I will.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/p0OzP.jpg&quot; alt=&quot;progress bar&quot;&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/clbPc.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Progress bar overlay for long builds, and thumbnail buttons for compile, start debugging, and start without debugging. Also if your build results in errors or warnings you get an icon overlay.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-04T11:32:02.757" CommentCount="1" />
  <row Id="9306" PostTypeId="2" ParentId="9236" CreationDate="2010-10-04T11:35:18.900" Score="0" ViewCount="" Body="&lt;p&gt;Sometimes you can encounter technologies that change your thinking, that add another tool in your portfolio how you can think about problems. Learning those will be a win even if you don't use them, like functional programming.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-10-04T11:35:18.900" />
  <row Id="9307" PostTypeId="2" ParentId="9055" CreationDate="2010-10-04T11:36:18.430" Score="46" ViewCount="" Body="&lt;h3&gt;Donald Knuth&lt;/h3&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Author of &lt;em&gt;The Art of Computer Programming&lt;/em&gt; and &lt;em&gt;Literate Programming&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Inventor/reinventor of digital typesetting in the form of TeX (and so LaTeX)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/q/816/209&quot;&gt;&quot;Premature optimisation is the root of all evil.&quot;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-13T15:18:59.000" CommunityOwnedDate="2010-10-04T20:51:23.403" CommentCount="4" />
  <row Id="9308" PostTypeId="1" CreationDate="2010-10-04T11:39:52.800" Score="13" ViewCount="616" Body="&lt;p&gt;I've just set up my first second monitor (yeah, that sentence makes perfect sense). I've installed the free version of &lt;a href=&quot;http://www.mediachance.com/free/multimon.htm&quot; rel=&quot;nofollow&quot;&gt;MultiMon&lt;/a&gt;, as my employer recommended it, but I was wondering what other useful software is out there that could make using my second monitor more productive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things that're free are obviously a bonus, but I don't mind paying for things that will be particularly useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: Realized I'd failed to specify an OS. I'm using Windows XP, but Win7 tools are also useful as I'm expecting to upgrade at some point (and use it at home, albeit I just have one &lt;em&gt;huge&lt;/em&gt; monitor there).&lt;/p&gt;&#xA;" OwnerUserId="2241" LastEditorUserId="2241" LastEditorDisplayName="" LastEditDate="2010-10-06T09:07:45.797" LastActivityDate="2010-10-06T15:25:04.703" Title="What multiple-monitor software do you find useful?" Tags="&lt;productivity&gt;&lt;software&gt;&lt;windows&gt;&lt;monitor&gt;&lt;multiple-monitors&gt;" AnswerCount="11" CommentCount="4" FavoriteCount="5" />
  <row Id="9309" PostTypeId="2" ParentId="6834" CreationDate="2010-10-04T11:41:58.087" Score="1" ViewCount="" Body="&lt;p&gt;In Eclipse Generate SEtters and getters automatically , similarly create methods in implements class from an interface&lt;/p&gt;&#xA;" OwnerUserId="1485" LastActivityDate="2010-10-04T11:41:58.087" />
  <row Id="9311" PostTypeId="2" ParentId="9308" CreationDate="2010-10-04T11:46:37.310" Score="7" ViewCount="" Body="&lt;p&gt;I'm using the free version of &lt;a href=&quot;http://www.displayfusion.com/&quot; rel=&quot;nofollow&quot;&gt;DisplayFusion&lt;/a&gt;.  It has the mandatory title bar button to move a window to the other monitor, but also a number of programmable hotkeys (move window to cener, move and maximize, move and size proportionally, etc...)  I think the paid version also enables a taskbar on the second monitor plus a few other goodies.&lt;/p&gt;&#xA;" OwnerUserId="3842" LastActivityDate="2010-10-04T11:46:37.310" CommentCount="8" />
  <row Id="9312" PostTypeId="2" ParentId="4596" CreationDate="2010-10-04T11:48:21.680" Score="4" ViewCount="" Body="&lt;p&gt;I run VS 2010 not as administrator the vast majority of the time. But if you want to add or remove a service, configure IIS, or tinker in the registry, you're going to need admin rights. Also some of the profiling tools urge you to relaunch VS as admin. So I think giving your offshore people accounts that do not have admin powers is going to keep them from doing some (perhaps small) parts of their jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's more, with the rise of UAC, more and more apps can now install without admin powers. They don't put things in HKLM, they don't touch anything under System32, they put the exe somewhere under the users\whoever folder, and this makes them much easier to remove but may not address your original point that they are installing &quot;nonsense software&quot; by which I assume you mean games, music players etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really want to prevent local installs, perhaps the best bet is to the old vision of &quot;the network is the computer&quot; from early Java days. Everyone works from a version control system and must check in or shelve each night before going home. Email lives in the cloud not on the dev machine. Etc. Then whenever you want you can re-image their dev machines (even easier if they are virtual) and those who had nothing extra installed won't even notice. Kind of like cleaning out the office fridge over the weekend.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But be warned - I would not work in that environment. I install utilities and helpers, and I play games occasionally, and would not take kindly to someone who tried to prevent either. I am productive as hell. If some of your devs are not productive, taking away their local installs won't make them more productive or dedicated. Address that problem at the root and you won't mind that they are admins.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-04T11:48:21.680" />
  <row Id="9313" PostTypeId="1" CreationDate="2010-10-04T11:56:14.153" Score="2" ViewCount="276" Body="&lt;p&gt;&lt;em&gt;Thought I post this to the best community of programmers I know.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;David Johnston, the new Governor&#xA;  General, has the digital world&#xA;  confused. &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Just what is the meaning of that 33&#xA;  character-long string of ones and&#xA;  zeros that is emblazoned across the&#xA;  bottom of his fresh new Coat of Arms? &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;According to the GG's website, &quot;The&#xA;  wavy band inscribed with zeros and&#xA;  ones represents a flow of information,&#xA;  digital communication and modern&#xA;  media.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The binry is this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;110010111001001010100100111010011&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It's not ASCII, is it just random?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Original article:&#xA;  &lt;a href=&quot;http://www.cbc.ca/politics/insidepolitics/2010/10/the-new-ggs-binary-banner-whats-it-mean.html&quot; rel=&quot;nofollow&quot;&gt;http://www.cbc.ca/politics/insidepolitics/2010/10/the-new-ggs-binary-banner-whats-it-mean.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;I'll accept the correct (if it can be solved) answer or failing that, the highest voted answer.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="96" LastActivityDate="2010-10-04T22:49:15.710" Title="Can you decipher this binary" Tags="&lt;binary&gt;" AnswerCount="3" />
  <row Id="9315" PostTypeId="2" ParentId="1745" CreationDate="2010-10-04T12:09:06.570" Score="5" ViewCount="" Body="&lt;p&gt;All programs written in C/C++ will execute faster than Java/C# equivalent programs.&lt;/p&gt;&#xA;" OwnerUserId="4412" LastActivityDate="2010-10-04T12:09:06.570" CommunityOwnedDate="2010-10-04T12:09:06.570" CommentCount="0" />
  <row Id="9316" PostTypeId="2" ParentId="9308" CreationDate="2010-10-04T12:13:38.243" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.wallpapermanager.de.vu/&quot; rel=&quot;nofollow&quot;&gt;Wallpaper Manager&lt;/a&gt; will handle cycling wallpapers for two monitors. It is usually smart enough to tell if the image is a dual-screen wallpaper or single screen and act accordingly.&lt;/p&gt;&#xA;" OwnerUserId="415" LastActivityDate="2010-10-04T12:13:38.243" />
  <row Id="9317" PostTypeId="2" ParentId="9308" CreationDate="2010-10-04T12:30:01.387" Score="8" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.realtimesoft.com/ultramon/&quot; rel=&quot;nofollow&quot;&gt;UltraMon&lt;/a&gt;. It isn't free, but it used to be the only software that gave taskbars on non-primary screens, so for a time there wasn't a choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It really is annoying that all this functionality isn't baked directly into Windows by now.&lt;/p&gt;&#xA;" OwnerUserId="89" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-10-04T13:31:32.587" LastActivityDate="2010-10-04T13:31:32.587" CommentCount="2" />
  <row Id="9318" PostTypeId="2" ParentId="9313" CreationDate="2010-10-04T12:35:48.173" Score="10" ViewCount="" Body="&lt;p&gt;I'm pretty sure this doesn't mean anything and was only done for graphical effect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;33 characters in Binary doesn't leave much room for encoding data in the first place, and it's an odd length (not divisible by 4.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Add in the fact that it's palindromic, and the odds of there being something encoded in there falls to near zero.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you cut it into 3 even pieces, you can see the pattern emerge.:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;11001011100&#xA;10010101001&#xA;00111010011&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It really is just for looks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:  The decimal conversion is also a prime number, so it's a prime number that has a palindromic binary representation.. pretty interesting without being an encryption puzzle.&lt;/p&gt;&#xA;" OwnerUserId="189" LastEditorUserId="189" LastEditorDisplayName="" LastEditDate="2010-10-04T22:49:15.710" LastActivityDate="2010-10-04T22:49:15.710" CommentCount="1" />
  <row Id="9319" PostTypeId="2" ParentId="9313" CreationDate="2010-10-04T12:51:37.123" Score="3" ViewCount="" Body="&lt;p&gt;There is a discussion about this on slashdot:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://news.slashdot.org/story/10/10/04/0334211/The-Binary-Code-In-Canadas-Gov-Gen-Coat-of-Arms?from=rss&quot; rel=&quot;nofollow&quot;&gt;http://news.slashdot.org/story/10/10/04/0334211/The-Binary-Code-In-Canadas-Gov-Gen-Coat-of-Arms?from=rss&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;where they say it's a palindromic prime.&lt;/p&gt;&#xA;" OwnerUserId="1922" LastActivityDate="2010-10-04T12:51:37.123" CommentCount="4" />
  <row Id="9320" PostTypeId="1" AcceptedAnswerId="9358" CreationDate="2010-10-04T12:53:00.037" Score="13" ViewCount="1147" Body="&lt;p&gt;Why does Paul Graham advocate Lisp? Why did ITA Software choose Lisp over other High Level languages?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lisp obviously is an advantage for the AI stuff but I don't think Lisp is any faster than Java, C# or as a matter of fact faster than C. Still it is considered as a Hackers language? I am not a master of Lisp but I find it incredibly difficult to understand the advantage one would get in writing Business Software in Lisp.&lt;/p&gt;&#xA;" OwnerUserId="672" LastEditorUserId="4422" LastEditorDisplayName="" LastEditDate="2011-01-30T19:15:23.367" LastActivityDate="2011-02-15T18:45:43.453" CommunityOwnedDate="2011-02-15T18:45:43.453" Title="Why do you like Lisp ?" Tags="&lt;lisp&gt;" AnswerCount="16" CommentCount="16" FavoriteCount="5" />
  <row Id="9321" PostTypeId="2" ParentId="9290" CreationDate="2010-10-04T12:54:27.880" Score="2" ViewCount="" Body="&lt;p&gt;It seems you are getting Better. Keep up the good work :-)&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-04T12:54:27.880" />
  <row Id="9322" PostTypeId="2" ParentId="9215" CreationDate="2010-10-04T12:55:32.090" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Why do you think you are so Smart ??&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I had a big answer can't type all that in here :-)&lt;/p&gt;&#xA;" OwnerUserId="672" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-10-04T13:14:43.783" LastActivityDate="2010-10-04T13:14:43.783" />
  <row Id="9324" PostTypeId="2" ParentId="9290" CreationDate="2010-10-04T13:09:40.590" Score="0" ViewCount="" Body="&lt;p&gt;Like all other afflictions, if you don't admit to having a problem, you're not going to look for a solution. Experience starts to be a factor when you've learned what less code looks like. When you revisit your code, it is a great time to determine if you can reuse code or refactor to less code. Microsoft was able to improve printing speed with Windows 2000 by NOT spooling it twice (quote from Microsoft employee at one of their free demos).&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-04T13:09:40.590" CommentCount="2" />
  <row Id="9325" PostTypeId="2" ParentId="9268" CreationDate="2010-10-04T13:17:12.957" Score="1" ViewCount="" Body="&lt;p&gt;Not sure code review is the answer until someone starts enforcing better coding standards. Someone writes crappy code, comments/admits it and checks it in anyway. What good is a review going to do if someone wants to reject the code, but it will put you behind schedule? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're going to need to: set standards, supervise the major culprits more closely, and pound into their heads that good code doesn't always take more time write. They need to stop using timelines as an excuse for refusing to change bad habits.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-04T13:17:12.957" />
  <row Id="9326" PostTypeId="2" ParentId="9308" CreationDate="2010-10-04T13:21:17.703" Score="4" ViewCount="" Body="&lt;p&gt;After installing Win7 I have no need for any multimonitor software anymore, when I think all the built-in features is enough for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Shortcut keys: &lt;a href=&quot;http://productivity.ben61a.com/windows/windows-7-shortcut-keys.php&quot; rel=&quot;nofollow&quot;&gt;http://productivity.ben61a.com/windows/windows-7-shortcut-keys.php&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="208" LastActivityDate="2010-10-04T13:21:17.703" CommentCount="1" />
  <row Id="9327" PostTypeId="2" ParentId="9308" CreationDate="2010-10-04T13:22:07.430" Score="8" ViewCount="" Body="&lt;p&gt;Windows 7 :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;back when I was still using XP I've tried every multi monitor software I could find (including MultiMon, UlraMon and DisplayFusion) and didn't like any of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Windows 7 finally have keyboard shortcuts to move windows between screens (Win-Shift-Left and Win-Shift-Right) as well as for fit to half screen (Win-Left and Win-Right).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Windows doesn't have move-to-screen buttons on the title bar (this was originally a must-have for me, but programs that added it always ended up conflicting with software I use) and doesn't have task bar on secondary monitors (a feature I decided I really don't like after trying the various multi-monitor programs)&lt;/p&gt;&#xA;" OwnerUserId="1727" LastActivityDate="2010-10-04T13:22:07.430" CommentCount="5" />
  <row Id="9328" PostTypeId="2" ParentId="9308" CreationDate="2010-10-04T13:22:58.123" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://synergy-foss.org/&quot; rel=&quot;nofollow&quot;&gt;Synergy&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With multiple monitors AND multiple computers, you can control all of them from the same keyboard and mouse.  This tool goes one step further, but requires multiple monitors, so I'm including it.  Amazing tool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/QXGrq.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-04T13:22:58.123" CommentCount="4" />
  <row Id="9329" PostTypeId="2" ParentId="9308" CreationDate="2010-10-04T13:29:29.823" Score="0" ViewCount="" Body="&lt;p&gt;You should try some toys. In particular, &lt;a href=&quot;http://www.cs.brown.edu/people/acb/codebubbles_site.htm&quot; rel=&quot;nofollow&quot;&gt;Code Bubbles&lt;/a&gt;. Today's toy may become tomorrow's standard.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-04T13:29:29.823" CommentCount="3" />
  <row Id="9330" PostTypeId="2" ParentId="2235" CreationDate="2010-10-04T13:42:27.217" Score="2" ViewCount="" Body="&lt;p&gt;It barely counts as &quot;writing&quot;, but having a large suite of email-management rules keeps me productive. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also allows me to fearlessly sign up for a lot of notification by email, and to use my inbox as a todo list (because it's nearly always empty).&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-10-04T13:42:27.217" />
  <row Id="9332" PostTypeId="2" ParentId="9320" CreationDate="2010-10-04T14:02:31.183" Score="7" ViewCount="" Body="&lt;p&gt;I don't like Lisp.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I do like many of the concepts it uses, how it makes powerful techniques available natively, and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I've never been convinced to actually go use it, ((even though &lt;a href=&quot;http://stackoverflow.com/questions/106058/practical-example-of-lisps-flexibility&quot;&gt;several people have tried&lt;/a&gt;) because the benefits of the language &lt;em&gt;can&lt;/em&gt; be achieved with other programming languages (some directly, some indirectly), so there isn't enough benefit to get me to spend the time learning it and putting up with the horrific syntax.)))&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But yeah, for reasons that some people like it, check these SO questions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/106058/practical-example-of-lisps-flexibility&quot;&gt;http://stackoverflow.com/questions/106058/practical-example-of-lisps-flexibility&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/2036244/whats-so-great-about-lisp&quot;&gt;http://stackoverflow.com/questions/2036244/whats-so-great-about-lisp&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There's probably a few more in the related questions for those too.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-10-04T14:02:31.183" CommunityOwnedDate="2011-02-15T18:45:43.453" CommentCount="7" />
  <row Id="9333" PostTypeId="2" ParentId="9213" CreationDate="2010-10-04T14:04:21.680" Score="0" ViewCount="" Body="&lt;p&gt;Depends. If unsure, ask your boss. If he's OK with it, then no one can complain.&lt;/p&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-10-04T14:04:21.680" />
  <row Id="9334" PostTypeId="2" ParentId="9236" CreationDate="2010-10-04T14:06:15.440" Score="0" ViewCount="" Body="&lt;p&gt;You have to pick and chose when you decide to do this. Probably best to budget your time based on how busy you are working with the current stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get more out of your study by identifying a particular problem you are having or areas where you're current technology is not sufficient and then look for alternative solutions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say any exposure to mobile development is a plus. Not sure if one or all of the current platforms will survive, but there are many aspects they have in common: limited resources, touch screen, connectivity, etc.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-04T14:06:15.440" />
  <row Id="9335" PostTypeId="2" ParentId="9320" CreationDate="2010-10-04T14:07:14.630" Score="5" ViewCount="" Body="&lt;p&gt;&quot;Faster&quot; isn't a simple thing to measure -- it really depends on which aspect you're benchmarking.  Depending on the task and the Lisp implementation, speeds can approach C.  Look at the &lt;a href=&quot;http://shootout.alioth.debian.org/&quot; rel=&quot;nofollow&quot;&gt;Great Benchmarking Shoot-Out&lt;/a&gt; to dive for details.  The SBCL implementation of Lisp is on par with Java 6 Server, and significantly faster than Ruby or Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, pure speed isn't the main reason to choose a programming language -- if it was, we'd all be programming in Assembler still, right?  For me, the daily joy of Lisp is that the code is compiled, but I don't have to take down the application, recompile everything, and then start running from scratch.  Instead, I can change a single function and that change will take effect everywhere, and I can immediately see the effect in my application.  Moreover, that very quick &quot;write, test, write more, test more&quot; approach makes it much easier to test immediately up front while writing the code (and then you can turn those interactive probes into unit tests later on).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imagine writing email where after every line, you had to hit a button to compile your email output to the screen before continuing your thought.  That's what writing in Java or another language like that is for me.  Sometimes there's a reason to do that, and I like Java fine, but Lisp is just more responsive, and it's easier to get work done.&lt;/p&gt;&#xA;" OwnerUserId="1792" LastActivityDate="2010-10-04T14:07:14.630" CommunityOwnedDate="2011-02-15T18:45:43.453" CommentCount="2" />
  <row Id="9336" PostTypeId="2" ParentId="7347" CreationDate="2010-10-04T14:08:28.663" Score="0" ViewCount="" Body="&lt;p&gt;Well there are alot of performance changes you can make when accessing data that will have a huge impact on your application. If you write queries or use an ORM to access a databse, then you need to read some performance tuning books for the database backend you use. Chances are you are using known poorly performing techinques. There is no reason to do this except ignorance. This is not premature optimization (I curse the guy who said this because it has been so widely interpeted as never worry about performance), this is good design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just a quick sample of performance enhancers for SQL Server:&#xA;Use appropriate indexes, avoid cursors - use set-based logic, use sargable where clauses, don't pile views on top of views,  don't return more data than you need or more columns than you need, don't use correlated subqueries.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-04T14:08:28.663" />
  <row Id="9337" PostTypeId="2" ParentId="9213" CreationDate="2010-10-04T14:24:03.893" Score="1" ViewCount="" Body="&lt;p&gt;Of course it is, up to a point.  If you spend hours writing some script to automate something you rarely do, that's likely a waste of time, from this perspective.  Of course, the act of writing that script may be useful in the long run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you need to work on your time management skills.  (This comes from someone that can get sucked into an interesting task as well.)  Since it's something ancillary, you shouldn't spend half a day on one tweak.  Set a time limit and pay attention to the clock.  While you're researching, take some notes and/or save some links.  Come back to it if you're not done with the tweak when the time limit expires.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also a question of prioritization.  Configurations that impact your work directly and/or are relatively easy to implement should be done as soon as possible.  Those that aren't so easy to implement, but still have a high payoff should be slotted in next, time permitting.  Finally, the rest should be performed during down/slow time or as a break from the grind.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-10-04T14:24:03.893" />
  <row Id="9338" PostTypeId="2" ParentId="9215" CreationDate="2010-10-04T14:35:40.883" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What the @#$&amp;amp; is a GUID?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While it might seem like just a funny question; at the time it showed me that the Boss, in this case the CEO, was really trying to understand what a room full of technical people took for granted. As a result we re-evaluated our needs and changed the GUID to an Int.&lt;/p&gt;&#xA;" OwnerUserId="155" LastEditorUserId="155" LastEditorDisplayName="" LastEditDate="2010-10-06T13:13:39.303" LastActivityDate="2010-10-06T13:13:39.303" CommentCount="1" />
  <row Id="9339" PostTypeId="2" ParentId="8104" CreationDate="2010-10-04T14:42:08.883" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Cube Farm&lt;/li&gt;&#xA;&lt;li&gt;Only Developer&lt;/li&gt;&#xA;&lt;li&gt;internal corporate use software&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;planning on making push to work from home a couple days a week.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-04T14:42:08.883" CommunityOwnedDate="2011-02-20T23:49:56.727" CommentCount="1" />
  <row Id="9340" PostTypeId="2" ParentId="2235" CreationDate="2010-10-04T14:44:48.397" Score="0" ViewCount="" Body="&lt;p&gt;This is someting I wrote for my personal use, as opposed to use at work. I wrote a software that I can use to track my expenses. Nothing big, just a command line utiltity to print out a log my expenses into a simple text file.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now i'm writing GUI to it: to analyse my expenses and generate reports like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;expense by week&lt;/li&gt;&#xA;&lt;li&gt;expenses by tag (yep, i can tag my expenses)&lt;/li&gt;&#xA;&lt;li&gt;GUI expense viewer in Qt with a variety of filters, and facility to write filter plugins in QtScript&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And oh, my command line tool could also keep track of how much I have borrowed from people (friends) and (more importantly) how much people have borrowed from me. Writing a GUI for this too. Yep, Qt.&lt;/p&gt;&#xA;" OwnerUserId="1634" LastActivityDate="2010-10-04T14:44:48.397" CommentCount="2" />
  <row Id="9341" PostTypeId="2" ParentId="2235" CreationDate="2010-10-04T14:50:46.837" Score="0" ViewCount="" Body="&lt;p&gt;Not really programming, but on the team I was on before, I was one of only 2 people who knew anything about SQL and the database, and the other guy was my supervisor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We had to enter in a bunch of stuff to the database, coming from other departments, and being put into a word doc by another coworker. I had to do the entry into the DB. Manually making SQL INSERT statements to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realized I could just copy &amp;amp; paste the Word tables into Excel, write some formulas (which I hadn't touched since grade 9, but quickly learned), do some dragging, and I could get everything entered in a few hours, compared to several days the other way. I say a few hours because it would be different stuff every time, and needed to be re-written from scratch.&lt;/p&gt;&#xA;" OwnerUserId="2416" LastActivityDate="2010-10-04T14:50:46.837" />
  <row Id="9342" PostTypeId="2" ParentId="9320" CreationDate="2010-10-04T14:55:19.213" Score="6" ViewCount="" Body="&lt;p&gt;I'll interpret &quot;Lisp&quot; as &quot;Common Lisp&quot;; I've no doubt other answers will say &quot;Scheme&quot;. (Hint: Lisp's a family of languages.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's &quot;faster&quot; mean? In terms of time taken to run a benchmark, no, it's not faster than C (&lt;a href=&quot;http://www.lrde.epita.fr/~didier/research/verna.06.imecs.pdf&quot; rel=&quot;nofollow&quot;&gt;but it can be&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Fast&quot; in terms of how long does it take J Random Hacker to write up a working program, or fix a bug in large software system? Almost certainly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for &lt;em&gt;this&lt;/em&gt; hacker, I use it because I want to write code, not boilerplate. I want to write something &lt;em&gt;once&lt;/em&gt;, and not continually repeat myself. And I want to interact with the program while I write it.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-04T14:55:19.213" CommunityOwnedDate="2011-02-15T18:45:43.453" CommentCount="4" />
  <row Id="9343" PostTypeId="2" ParentId="9308" CreationDate="2010-10-04T14:59:39.380" Score="1" ViewCount="" Body="&lt;p&gt;For Macs, I really dig &lt;a href=&quot;http://most-advantageous.com/optimal-layout/&quot; rel=&quot;nofollow&quot;&gt;Optimal Layout&lt;/a&gt;. It has lots of great features, but for me, being able to pop a window from one screen to the other with a keyboard shortcut is worth the $18 alone.&lt;/p&gt;&#xA;" OwnerUserId="194" LastActivityDate="2010-10-04T14:59:39.380" />
  <row Id="9344" PostTypeId="2" ParentId="9320" CreationDate="2010-10-04T15:01:14.143" Score="5" ViewCount="" Body="&lt;p&gt;I have had a knee-jerk reaction to Scheme in the past, but now I am ready to give Lisp (Clojure actually) a shot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You see, over the years I picked up bits of languages like Java, C#, C++, Python, and things are no longer challenging.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clojure has many promises, appears to be very clean, and can solve many real-world problems.&#xA;A strong case for a clean language like Clojure is the advent of multi-core computers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yay LISP!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: ITA Software was founded by MIT grads, and Scheme/Lisp was the only language that many of the MIT grads learned. To be fair though, one can hot-swap Lisp algorithms on a running production system, which is a huge plus.&lt;/p&gt;&#xA;" OwnerUserId="934" LastEditorUserId="934" LastEditorDisplayName="" LastEditDate="2010-10-14T18:23:17.460" LastActivityDate="2010-10-14T18:23:17.460" CommunityOwnedDate="2011-02-15T18:45:43.453" CommentCount="3" />
  <row Id="9345" PostTypeId="2" ParentId="9055" CreationDate="2010-10-04T15:03:17.810" Score="37" ViewCount="" Body="&lt;p&gt;Nobody's mentioned...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/John_D._Carmack&quot; rel=&quot;nofollow&quot;&gt;John Carmack&lt;/a&gt;&lt;/strong&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, he's done mostly video games, graphics programming, and engines, but I think being one of &lt;a href=&quot;http://www.time.com/time/digital/digital50/10.html&quot; rel=&quot;nofollow&quot;&gt;TIME's 50 Most Influential People in Technology&lt;/a&gt; and writing &lt;a href=&quot;http://en.wikipedia.org/wiki/Quake_III_Arena#id_Tech_3_Engine&quot; rel=&quot;nofollow&quot;&gt;a modern 3D engine that could blaze even on modest hardware&lt;/a&gt; certify his incredible programming acumen. I do not even know much in detail about the various id Techs, but I think it is clear they all had original, groundbreaking work in them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One gem is the classic &lt;a href=&quot;http://en.wikipedia.org/wiki/Fast_inverse_square_root&quot; rel=&quot;nofollow&quot;&gt;fast inverse square root function&lt;/a&gt;, &quot;probably developed in the early 1990s at Silicon Graphics&quot;, that was implemented in Quake III (1999). You can read a somewhat mathematical discussion of it, with a link to a paper at &lt;a href=&quot;http://betterexplained.com/articles/understanding-quakes-fast-inverse-square-root/&quot; rel=&quot;nofollow&quot;&gt;Better Explained&lt;/a&gt;. (The link there to the Beyond3D article is broken; use the working Wikipedia link instead.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, though I'm not a fan of Doom et al., apparently Carmack also did &lt;a href=&quot;http://www.mobygames.com/game/commander-keen-invasion-of-the-vorticons&quot; rel=&quot;nofollow&quot;&gt;Commander Keen&lt;/a&gt; (how did I ever miss that?) and has &lt;a href=&quot;http://www.mobygames.com/game/windows/half-life/credits&quot; rel=&quot;nofollow&quot;&gt;engine and engine tools credits on Half-Life&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; It turns out Carmack is #3 in popularity on the list of &lt;a href=&quot;http://stackoverflow.com/questions/9545/who-in-the-software-world-do-you-admire-the-most/132993#132993&quot;&gt;software world gangstas&lt;/a&gt;, behind only D. Knuth and Al &quot;LL&quot; Turing. Mark Simpson pointed out in a comment that Carmack has released the source of every engine up to id tech 4, which I had completely forgotten (but it nevertheless nagged me subconsciously---I knew this guy did something special!).&lt;/p&gt;&#xA;" OwnerUserId="2515" LastEditorUserId="2515" LastEditorDisplayName="" LastEditDate="2010-10-04T15:55:17.090" LastActivityDate="2010-10-04T15:55:17.090" CommunityOwnedDate="2010-10-04T20:51:23.403" CommentCount="4" />
  <row Id="9346" PostTypeId="1" AcceptedAnswerId="9348" CreationDate="2010-10-04T15:23:03.787" Score="10" ViewCount="254" Body="&lt;p&gt;One of my colleagues likes to use automatic code generators, which create large amounts of code that is poorly documented and very hard to maintain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is the cost of using a code generator worth the hassle in maintenance, for the reduced time to creation?&lt;/p&gt;&#xA;" OwnerUserId="2395" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-10-04T15:51:28.450" LastActivityDate="2010-10-04T18:14:17.673" Title="Automatic code generators" Tags="&lt;productivity&gt;&lt;code-generation&gt;" AnswerCount="4" />
  <row Id="9347" PostTypeId="2" ParentId="9215" CreationDate="2010-10-04T15:23:35.830" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;What obstacle can I remove to help you get your work done?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bar none, best question that has ever been asked of me.  I can't quantify how great it was, except to say that until that point all of my bosses, non-programmers the lot of them, hadn't a clue that there could be impediments to progress or that code didn't just magically appear.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-04T15:23:35.830" CommentCount="1" />
  <row Id="9348" PostTypeId="2" ParentId="9346" CreationDate="2010-10-04T15:26:06.180" Score="7" ViewCount="" Body="&lt;p&gt;Let's rephrase that:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is the cost of a good automatic code generator worth it?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is the cost of a poor automatic code generator which creates more work for everyone else but it's author worth it?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Absolutely not.  There is no excuse for poor code.  If someone wants to be clever and use automatic code generation then they should take the time to ensure that the code generated is good code.  Otherwise, what's the point of it?  It's only pushing the buck down the rode and when it comes to code production, the buck should stop at the developer who wrote it.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-04T15:26:06.180" CommentCount="6" />
  <row Id="9349" PostTypeId="2" ParentId="9346" CreationDate="2010-10-04T15:27:06.430" Score="13" ViewCount="" Body="&lt;p&gt;Code generated by a generator should never be maintained by hand. If it needs to be changed, then the generator and/or its settings must be tweaked and run again. Considering that, it doesn't matter if the resulting code is incomprehensible and undocumented as long as the generation mechanism itself is crystal clear. (Be sure to document the fact that the code is generated, and where the generator is and how it works.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Analogy: while my computer's processor is always executing machine code, I don't need to know anything about it as long as I know how to create that machine code using high-level language and compiler. I've heard that GCC sometimes produces subpar machine code, but who cares, as long as it works perfectly. Database abstraction layers produce SQL to operate with the DB engine, but who cares what that SQL looks like, as long as the abstraction layer is clear and works?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When properly used, code generators can definitely save not only creation, but also maintenance cost.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-04T17:28:47.810" LastActivityDate="2010-10-04T17:28:47.810" CommentCount="7" />
  <row Id="9350" PostTypeId="2" ParentId="8947" CreationDate="2010-10-04T15:30:26.380" Score="0" ViewCount="" Body="&lt;p&gt;I'm not sure about defining constants inside a function, but I guess that is artistic license.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public function senseOfPurpose() {&#xA;    define(&quot;PEOPLE&quot;, &quot;We are together&quot;);&#xA;    return STEADY . EVOLVING_FORWARD . PEOPLE;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2568" LastActivityDate="2010-10-04T15:30:26.380" />
  <row Id="9351" PostTypeId="1" AcceptedAnswerId="9353" CreationDate="2010-10-04T15:31:59.653" Score="1" ViewCount="247" Body="&lt;p&gt;What are some good uses for VBScript? Is it still a widely used language today?&lt;/p&gt;&#xA;" OwnerUserId="3732" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-05T14:52:34.310" LastActivityDate="2010-10-05T14:52:34.310" Title="Good uses for VBScript?" Tags="&lt;programming-languages&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="1" />
  <row Id="9352" PostTypeId="2" ParentId="8956" CreationDate="2010-10-04T15:35:51.333" Score="2" ViewCount="" Body="&lt;p&gt;You need to work out how long you think it will take and how much you want to earn per hour and then times one by the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next you need to add in any costs you will incur in writing the software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you need to add in any contingency... i.e. if you are doing fixed price work, what are the chances of something cropping up that will take extra time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, you need to make sure that your cost is printed on the same piece of paper that states exactly what you will deliver in exchange for the money and you need to take a deposit... you will prevent a lot of time-wasting by insisting on a deposit.&lt;/p&gt;&#xA;" OwnerUserId="2568" LastActivityDate="2010-10-04T15:35:51.333" CommentCount="1" />
  <row Id="9353" PostTypeId="2" ParentId="9351" CreationDate="2010-10-04T15:41:16.533" Score="5" ViewCount="" Body="&lt;p&gt;Not to be flip, but I think there are no good uses of VBScript left, and it should be entirely replaced by &lt;a href=&quot;http://en.wikipedia.org/wiki/Windows_PowerShell&quot; rel=&quot;nofollow&quot;&gt;Powershell&lt;/a&gt;, which can accomplish all the same tasks much more cleanly.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sadly it is still in use in many places for simple automation (renaming files and the like) and as a scripting language in many applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can read more about how to get started with Powershell &lt;a href=&quot;http://technet.microsoft.com/en-us/scriptcenter/powershell.aspx&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4422" LastActivityDate="2010-10-04T15:41:16.533" />
  <row Id="9354" PostTypeId="1" AcceptedAnswerId="9357" CreationDate="2010-10-04T15:43:21.820" Score="3" ViewCount="83" Body="&lt;p&gt;Should a test plan for internal software account for the error states of all possible configurations?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ie: I have an app.config with some file paths.  Should the test plan have steps for testing what happens when those values are incorrect?&lt;/p&gt;&#xA;" OwnerUserId="4422" LastActivityDate="2010-10-04T16:58:03.490" Title="Should a test plan account for configuration values?" Tags="&lt;testing&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="9355" PostTypeId="2" ParentId="2235" CreationDate="2010-10-04T15:47:53.607" Score="0" ViewCount="" Body="&lt;p&gt;I've written a few utility scripts at work; the one that saved us a lot of time for migrating ~33 websites to our site/CMS was a TextMate HTML-to-Textile conversion plugin.  It used a Python library I found online that I made some modifications to for forcing certain classes that were used to become appropriate tags.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Saved us so many hours of extra unnecessary work.&lt;/p&gt;&#xA;" OwnerUserId="4423" LastActivityDate="2010-10-04T15:47:53.607" />
  <row Id="9356" PostTypeId="2" ParentId="9354" CreationDate="2010-10-04T15:49:30.077" Score="0" ViewCount="" Body="&lt;p&gt;Yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Unless you want the internal users calling you every time there is an error in the install)&lt;/p&gt;&#xA;" OwnerUserId="145" LastEditorUserId="145" LastEditorDisplayName="" LastEditDate="2010-10-04T16:13:53.857" LastActivityDate="2010-10-04T16:13:53.857" />
  <row Id="9357" PostTypeId="2" ParentId="9354" CreationDate="2010-10-04T15:52:02.477" Score="3" ViewCount="" Body="&lt;p&gt;Two schools of thought on this:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;If it's likely to cause an issue, then yes it should.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;On the other hand, since it's an internal app, you may not want to spend too much effort dotting every I and crossing every T.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The last one hinges on the scope of the software.  If it's just a simple utility that makes something a bit easier to do, then it may be fine without very robust error handling.  If it will get a good amount of use, especially by many different people, then it should be relatively robust as the users will likely come to depend on it.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-10-04T15:52:02.477" />
  <row Id="9358" PostTypeId="2" ParentId="9320" CreationDate="2010-10-04T15:52:30.620" Score="17" ViewCount="" Body="&lt;p&gt;There are a few reasons I am working on becoming competent with Common Lisp.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Homoiconic code. This allows structured self-modifying code.&lt;/li&gt;&#xA;&lt;li&gt;Syntax-aware macros. They allow rewriting of boilerplate code.&lt;/li&gt;&#xA;&lt;li&gt;Pragmatism. CL is designed to get stuff done by working professionals. Most functional languages aren't, as a rule. &lt;/li&gt;&#xA;&lt;li&gt;Flexibility. It can do a lot of different things, all at reasonable speeds.&lt;/li&gt;&#xA;&lt;li&gt;Wartiness. The real world is &lt;em&gt;messy&lt;/em&gt;. Pragmatic coding winds up having to either use or invent messy constructs. Common Lisp has sufficient wartiness that it can get stuff done.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Arguably the only real reasons to choose against CL is that the standard libraries are dated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will go out on a limb and say that in the general case, syntax should not be an issue to a professional software worker.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-04T15:52:30.620" CommunityOwnedDate="2011-02-15T18:45:43.453" CommentCount="7" />
  <row Id="9359" PostTypeId="2" ParentId="9320" CreationDate="2010-10-04T15:57:20.363" Score="4" ViewCount="" Body="&lt;p&gt;Can you say &quot;Brand Loyalty&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started in Fortran. I loved it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I switched to Lisp. At first I hated it. Then I learned to love it, and hate Fortran.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Later Pascal, C, C++, various assemblers, C#. (Actually I don't love C#.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess I'm fickle?&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-10-04T15:57:20.363" CommunityOwnedDate="2011-02-15T18:45:43.453" CommentCount="7" />
  <row Id="9360" PostTypeId="2" ParentId="8956" CreationDate="2010-10-04T15:58:09.707" Score="-4" ViewCount="" Body="&lt;p&gt;Don't charge - release it as Free/Open software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then provide way for people to donate whatever they like, based on how useful it is to them. &lt;em&gt;(Unfortunately, I don't actually know how effective this is.)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this is a core product for your company, you can still do the above, but also a commercial license and support contract, and maybe sponsored feature development too.&lt;br&gt;&#xA;&lt;em&gt;(This model is used at big software companies such as &lt;a href=&quot;http://www.jboss.com&quot; rel=&quot;nofollow&quot;&gt;JBoss&lt;/a&gt;, &lt;a href=&quot;http://www.mysql.com&quot; rel=&quot;nofollow&quot;&gt;MySQL&lt;/a&gt;, but smaller companies such as &lt;a href=&quot;http://www.blueriver.com&quot; rel=&quot;nofollow&quot;&gt;BlueRiver&lt;/a&gt; or &lt;a href=&quot;http://www.railo.com&quot; rel=&quot;nofollow&quot;&gt;Railo Technologies&lt;/a&gt; also do this successfully.)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="89" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-10-04T21:51:09.717" LastActivityDate="2010-10-04T21:51:09.717" CommentCount="8" />
  <row Id="9361" PostTypeId="2" ParentId="9055" CreationDate="2010-10-04T16:00:17.430" Score="10" ViewCount="" Body="&lt;p&gt;Scott Meyers - Effective C++, More Effective C++, Effective STL&lt;/p&gt;&#xA;" OwnerUserId="2395" LastActivityDate="2010-10-04T16:00:17.430" CommunityOwnedDate="2010-10-04T20:51:23.403" />
  <row Id="9362" PostTypeId="2" ParentId="2235" CreationDate="2010-10-04T16:00:29.857" Score="0" ViewCount="" Body="&lt;p&gt;I helped build our company's &lt;a href=&quot;http://docforge.com/wiki/Web_application_framework&quot; rel=&quot;nofollow&quot;&gt;web application framework&lt;/a&gt; before such frameworks were commonplace.  I'm continually adding features to improve our team's efficiency.  I enjoy seeing even the smallest feature saving many hours of work across multiple projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also rewritten our server update script to handle various situations, so we manually log into servers less often.&lt;/p&gt;&#xA;" OwnerUserId="4251" LastActivityDate="2010-10-04T16:00:29.857" />
  <row Id="9363" PostTypeId="2" ParentId="9346" CreationDate="2010-10-04T16:01:08.157" Score="2" ViewCount="" Body="&lt;p&gt;From the comments on other answers it seems like you're asking about team standards rather than code generators themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A code generation tool should be included in the project and should (where appropriate) be part of the build process. An example would be on our team we make use of Subsonic 2.2 which we have generate classes from the database objects on build. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The exe that does this is checked into SVN as part of the project so that a new member of the team could get the new project from svn and immediately build it without having to figure out where all these database classes came from (in this example we don't even include the generated code in svn).&lt;/p&gt;&#xA;" OwnerUserId="3646" LastActivityDate="2010-10-04T16:01:08.157" />
  <row Id="9364" PostTypeId="2" ParentId="9272" CreationDate="2010-10-04T16:08:13.027" Score="2" ViewCount="" Body="&lt;p&gt;I have to disagree with most of the other answers here -- I think (at least in this case) the shorter code is better. Contrary to your claim, the longer code is &lt;em&gt;not&lt;/em&gt; &quot;easier&quot;, at least for a reader. If anything, you seem to have gone out of your want to make it longer, even though it makes the code more difficult to understand and/or be assured of correct operation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In particular, having the assignment of the first byte of the string outside the loop, separate from the assignment for the other bytes, means one has to be &lt;em&gt;much&lt;/em&gt; more careful in reading to be sure that all the bytes are copied correctly. The basic sequence of actions in the shorter version is much easier to verify. Its only real issue is in the formatting -- when you have an intentionally-empty loop body, it's best to make that clear, something like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;while (*dest++ = *source++)&#xA;    ;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or even:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;while (*dest++ = *source++)&#xA;    ; /* no body */&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Some people prefer to use braces instead:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;while (*dest++ = *source++)&#xA;    {}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Regardless of the exact formatting you prefer, enough mistakes have been made with things like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (x&amp;gt;y);&#xA;     x = z;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;...that it's important to be sure that 1) it's obvious what's actually controlled by any flow-control, and 2) it's obvious that the code was written &lt;em&gt;knowing&lt;/em&gt; what was controlled by it, so somebody reading it doesn't waste time trying to figure out whether they've just found a bug.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-04T16:08:13.027" CommentCount="1" />
  <row Id="9365" PostTypeId="2" ParentId="9055" CreationDate="2010-10-04T16:10:46.233" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Blake Ross&lt;/strong&gt;... He is one of the founding programmers behind one of the greatest browsers out there, Firefox.&lt;/p&gt;&#xA;" OwnerUserId="3732" LastEditorUserId="4887" LastEditorDisplayName="" LastEditDate="2010-10-12T23:21:12.643" LastActivityDate="2010-10-12T23:21:12.643" CommunityOwnedDate="2010-10-04T20:51:23.403" />
  <row Id="9366" PostTypeId="2" ParentId="4888" CreationDate="2010-10-04T16:12:08.150" Score="0" ViewCount="" Body="&lt;p&gt;What are people calling/talking/texting/emailing you about? There personal issues? Everyone gets calls and emails at work...for work stuff. If you ignored all of the communications you were receiving then you probably would not be doing your job (that 57%), unless whatever you are doing has nothing to do with a team or needs absolutely no specifications to complete.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-04T16:12:08.150" />
  <row Id="9368" PostTypeId="2" ParentId="9055" CreationDate="2010-10-04T16:17:42.367" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Jon Bentley&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Author of &lt;a href=&quot;http://www.cs.bell-labs.com/cm/cs/pearls/&quot; rel=&quot;nofollow&quot;&gt;Programming Pearls&lt;/a&gt; and &lt;a href=&quot;http://c2.com/cgi/wiki?MoreProgrammingPearls&quot; rel=&quot;nofollow&quot;&gt;its sequel&lt;/a&gt;. (Beware the &lt;a href=&quot;http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html&quot; rel=&quot;nofollow&quot;&gt;binary search overflow&lt;/a&gt; problem!) See his short Wiki bio &lt;a href=&quot;http://en.wikipedia.org/wiki/Jon_Bentley&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;, and his company CV &lt;a href=&quot;http://www.research.avayalabs.com/gcm/usa/en-us/people/all/bentley.htm&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2515" LastEditorUserId="2515" LastEditorDisplayName="" LastEditDate="2010-10-12T23:17:42.187" LastActivityDate="2010-10-12T23:17:42.187" CommunityOwnedDate="2010-10-04T20:51:23.403" />
  <row Id="9369" PostTypeId="2" ParentId="9308" CreationDate="2010-10-04T16:19:39.943" Score="2" ViewCount="" Body="&lt;p&gt;I've tried a whole bunch of them, but &lt;a href=&quot;http://www.winsplit-revolution.com/&quot; rel=&quot;nofollow&quot;&gt;WinSplit Revolution&lt;/a&gt; has been my favorite.   It's free and handles monitor management very well.   Shortcuts for throwing windows to another screen, resizing windows within an existing monitor, etc.   Everything is covered (from a window management perspective).&lt;/p&gt;&#xA;" OwnerUserId="809" LastEditorUserId="809" LastEditorDisplayName="" LastEditDate="2010-10-05T15:30:09.280" LastActivityDate="2010-10-05T15:30:09.280" CommentCount="2" />
  <row Id="9370" PostTypeId="2" ParentId="6834" CreationDate="2010-10-04T16:20:45.527" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Type Checking for Dynamic Languages&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as your code doesn't get too 'meta', an IDE for Ruby or Python should be able run a background task which:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;for a given function, determines all the possible classes that will get passed in as arguments&lt;/li&gt;&#xA;&lt;li&gt;for those classes, ensures they respond to all the methods invoked by that function&lt;/li&gt;&#xA;&lt;li&gt;presents a list of the incompatible classes with the missing methods you need to implement&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I haven't yet seen an IDE which does this.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-04T16:20:45.527" CommentCount="3" />
  <row Id="9371" PostTypeId="1" CreationDate="2010-10-04T16:28:23.717" Score="14" ViewCount="448" Body="&lt;p&gt;Right now my supervisor is creating requirements documentation / specs for me using bugtracking software.  This seems like a terrible idea to me, all the requirements are on these little tickets and I have to click around on this dumb webform to get at the requirements.  What is a sane software solution for requirements / software specs?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be clear, I am building this large software component with quite a few features and these features are being set forth in this bugtracking software.&lt;/p&gt;&#xA;" OwnerUserId="2527" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-10-04T21:01:03.473" LastActivityDate="2010-10-07T20:21:25.007" Title="What is the proper way to create requirements documents?" Tags="&lt;design&gt;&lt;requirements&gt;&lt;bug-tracking&gt;" AnswerCount="8" FavoriteCount="6" />
  <row Id="9375" PostTypeId="2" ParentId="9062" CreationDate="2010-10-04T16:36:41.637" Score="19" ViewCount="" Body="&lt;p&gt;I engage in a number of minor compulsive behaviours that can look like superstitions, one being that if I cut or copy something to the clipboard, then it is somehow magically stored in my left hand, waiting for me to paste it; the longer it stays there, the more likely it is that I will inadvertently overwrite it with another cut or copy, so I become fearful and and try to paste as soon as possible. This becomes a problem only when I'm unable to convince myself that there's nothing important on the clipboard, so I have to open the appropriate application and try pasting into it to assure myself that it's unimportant or nonexistent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Related: when talking on IM, if someone interrupts me, then I'll copy what I was saying, respond to the interruption, then paste and re-word to continue the flow of the conversation. My clipboard superstition has made this practice seamless!&lt;/p&gt;&#xA;" OwnerUserId="2107" LastActivityDate="2010-10-04T16:36:41.637" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="8" />
  <row Id="9378" PostTypeId="1" CreationDate="2010-10-04T16:44:11.813" Score="14" ViewCount="1102" Body="&lt;p&gt;A few of my friends have noticed some quirks with vs2010... notably the Undo/Redo feature doesn't seem to work reliably... often messing up the code beyond comprehension.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What other quirks have you seen?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update for vs2010 users (non &lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=75568aa6-8107-475d-948a-ef22627e57a5&amp;amp;displaylang=en&quot; rel=&quot;nofollow&quot;&gt;SP1&lt;/a&gt;)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please post your bugs at &lt;a href=&quot;https://connect.microsoft.com/VisualStudio?wa=wsignin1.0&quot; rel=&quot;nofollow&quot;&gt;Microsoft connect&lt;/a&gt;, and a corresponding link here so we can up vote them as needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;https://connect.microsoft.com/VisualStudio?wa=wsignin1.0&quot; rel=&quot;nofollow&quot;&gt;https://connect.microsoft.com/VisualStudio?wa=wsignin1.0&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update for VS2010 SP1 Users&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can download the SP1 for all versions of Visual Studio &lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=75568aa6-8107-475d-948a-ef22627e57a5&amp;amp;displaylang=en&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.  Just be aware that there are compatibility issues mentioned in the &lt;a href=&quot;http://blogs.msdn.com/b/jasonz/archive/2011/03/08/announcing-visual-studio-2010-service-pack-1.aspx?PageIndex=2#comments%20&quot; rel=&quot;nofollow&quot;&gt;readme&lt;/a&gt;.  Also some people have reported &lt;a href=&quot;http://visualstudiomagazine.com/articles/2011/03/11/developers-react-to-visual-studio-2010-sp1.aspx&quot; rel=&quot;nofollow&quot;&gt;issues&lt;/a&gt; with this release.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please report bugs here:&#xA; &lt;a href=&quot;https://connect.microsoft.com/VisualStudio?wa=wsignin1.0&quot; rel=&quot;nofollow&quot;&gt;https://connect.microsoft.com/VisualStudio?wa=wsignin1.0&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2011-03-15T20:48:10.693" LastActivityDate="2011-03-15T20:59:05.210" CommunityOwnedDate="2011-02-02T16:35:27.803" Title="What usability issues have you had with VS2010? " Tags="&lt;visual-studio-2010&gt;" AnswerCount="18" CommentCount="1" FavoriteCount="5" />
  <row Id="9380" PostTypeId="2" ParentId="9215" CreationDate="2010-10-04T16:53:07.257" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;What are you?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After I had somewhat miraculously pulled the answer to a problem out of nowhere.&lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-10-04T16:53:07.257" />
  <row Id="9381" PostTypeId="2" ParentId="9055" CreationDate="2010-10-04T16:55:16.300" Score="6" ViewCount="" Body="&lt;p&gt;I think there's a bit of a disconnect here between the tag and the question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider Scott Meyers for one example. On one hand, he's certainly a big name in the field of programming (specifically, C++ programming). On the other hand, he's very open about the fact that he's &lt;em&gt;not&lt;/em&gt; a &quot;great-programmer&quot;, or any other kind of programmer -- he's a guy who teaches about programming, writes about programming, consults about programming, but does &lt;em&gt;not&lt;/em&gt; actually &lt;em&gt;do&lt;/em&gt; any programming at all. His name is a good answer to the question, but a poor fit for the tag.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Continuing the C++ theme for a moment, there are a few who are more or less the opposite: very good programmers whose names most people would not recognize. David Abrahams, for one example, has contributed a lot to Boost, co-written one of the seminal books on template programming, invented the now almost universally-accepted terminology for discussing exception safety, been on the C++ standard committee for years, etc. For better or worse, however, most of his work is nearly invisible to all but the most hard-core of C++ hackers. Much the same could be said about Beman Dawes, Howard Hinnant, Pete Becker, P.J. Plaugar, and a host of others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also worth noting that a great deal of what these people do gets leveraged in other languages implemented &lt;em&gt;in&lt;/em&gt; C or C++, so a lot of things that work well in Perl, Ruby, Python, etc., can really be traced back to these guys who are great coders, but whose names almost nobody will expect you to recognize.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-04T16:55:16.300" CommunityOwnedDate="2010-10-04T20:51:23.403" CommentCount="3" />
  <row Id="9382" PostTypeId="2" ParentId="9351" CreationDate="2010-10-04T16:55:54.520" Score="-2" ViewCount="" Body="&lt;p&gt;Torture? Not much else other than that.&lt;/p&gt;&#xA;" OwnerUserId="820" LastActivityDate="2010-10-04T16:55:54.520" CommentCount="1" />
  <row Id="9383" PostTypeId="2" ParentId="9354" CreationDate="2010-10-04T16:58:03.490" Score="1" ViewCount="" Body="&lt;p&gt;Consider creating a tool that generates a random, but valid, configuration, to be used as part of your test scripts.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-10-04T16:58:03.490" />
  <row Id="9384" PostTypeId="2" ParentId="9371" CreationDate="2010-10-04T17:04:36.173" Score="1" ViewCount="" Body="&lt;p&gt;I maintain a product backlog (one per project or product) that contains &lt;a href=&quot;http://en.wikipedia.org/wiki/User_story&quot; rel=&quot;nofollow&quot;&gt;User Stories&lt;/a&gt;. They can be stored in bug tracking software like the one you use. I personnaly use &lt;strong&gt;Excel&lt;/strong&gt; for the backlog and &lt;strong&gt;Trac&lt;/strong&gt; for the sprint backlog (you probably use a tool like that tool).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When required only, I create a &lt;strong&gt;Word document&lt;/strong&gt; that describe the User Story with more details and attach it to the user story. But I try to avoid this by splitting the user story into smaller ones.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Small user stories are easier to manage (including estimation)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I like the Word document because it allows me to put links, formats texts, put tables, screenshots and more, and everybody can read it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, each User Story is explained in details in the estimation session, and sprint planning, and I'm always available for more questions when the developer decide to work on it. Frequent feedbacks using sprint review prevent developers from doing something differently than requested by the product owner.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-04T17:17:06.580" LastActivityDate="2010-10-04T17:17:06.580" />
  <row Id="9385" PostTypeId="1" AcceptedAnswerId="9420" CreationDate="2010-10-04T17:06:58.347" Score="26" ViewCount="513" Body="&lt;p&gt;My job is roughly a &quot;9-5&quot;ish type programming job (I'm occasionally there later when I need to finish something), and over the weekend I'm not in the office. When I get back to the office on Monday, I typically have to spend a lot of time getting myself back &quot;into the groove&quot; as well as figuring out where I was when I left, especially if I had to leave in the middle of something. Occasionally I will leave myself some written notes on a pad by my desk, but I find that sometimes (like today) it's insufficient.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some creative ways that you use to remind yourself where you left off? I could use any help I could get because I really would like to reduce the lack of productivity that I suffer on Monday mornings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="4430" LastActivityDate="2010-10-05T12:57:56.290" Title="What is a good way to pick up where you left off?" Tags="&lt;programming-practices&gt;" AnswerCount="16" CommentCount="3" FavoriteCount="7" />
  <row Id="9386" PostTypeId="2" ParentId="9351" CreationDate="2010-10-04T17:10:02.277" Score="3" ViewCount="" Body="&lt;p&gt;Legacy applications in &lt;a href=&quot;http://en.wikipedia.org/wiki/Active_Server_Pages&quot; rel=&quot;nofollow&quot;&gt;Active Server Pages&lt;/a&gt; would be another use of them today.  For example, someone may have built a web application years ago in this and it just never got transitioned into something else.  I'm not saying this is a good use of VBScript, but it is done and is something to be managed in some places these days.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-04T17:10:02.277" CommentCount="1" />
  <row Id="9387" PostTypeId="2" ParentId="9385" CreationDate="2010-10-04T17:14:24.740" Score="6" ViewCount="" Body="&lt;p&gt;Using standard personnal productivity techniques, it's pretty straightforward.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Monday morning, I pick the task that is (still) on the top of the list&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I personnaly use a combination of &lt;a href=&quot;http://fr.wikipedia.org/wiki/Getting_Things_Done&quot; rel=&quot;nofollow&quot;&gt;GTD&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Seven_Habits_of_Highly_Effective_People#The_7_Habits&quot; rel=&quot;nofollow&quot;&gt;7 Habits&lt;/a&gt; productivity techniques. The collection process is done daily. So I always have an up to date prioritized list of things to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every thing in the list is more important that another thing. This means there is no equally important thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing another task is pure procrastination ;) (and I do procrastinate sometimes... but the list help me get into work again more quickly)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To avoid too much frustration, I also avoid heavy refactoring or debugging friday afternoon...&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-04T17:19:56.407" LastActivityDate="2010-10-04T17:19:56.407" />
  <row Id="9388" PostTypeId="2" ParentId="9385" CreationDate="2010-10-04T17:18:04.553" Score="20" ViewCount="" Body="&lt;p&gt;I can't remember where I read it, but I find it works quite well. That is to break your code on purpose, or to end on a problem. Coming back to something that needs debugging I find helps get the brain running. Even breaking for lunch I find this to be a useful technique.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now of course you don't want to break your code on purpose and spend the next 4 hours debugging! So perhaps end the current work phase by adding empty method signatures, so that next time you sit down and run your program you'll have a few compile errors due to empty method blocks.&lt;/p&gt;&#xA;" OwnerUserId="1834" LastActivityDate="2010-10-04T17:18:04.553" CommentCount="4" />
  <row Id="9389" PostTypeId="2" ParentId="9385" CreationDate="2010-10-04T17:20:58.057" Score="1" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.zhornsoftware.co.uk/stickies/&quot; rel=&quot;nofollow&quot;&gt;Stickies&lt;/a&gt; on my desktop as I'm coding, with sticky notes for &quot;todo&quot;, &quot;for later&quot;, and &quot;to test&quot;.  It's also a convenient place to jot down notes about what to do when you get back into the office on monday.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-10-04T17:20:58.057" />
  <row Id="9390" PostTypeId="2" ParentId="9385" CreationDate="2010-10-04T17:21:34.437" Score="2" ViewCount="" Body="&lt;p&gt;I have a &lt;code&gt;readme.txt&lt;/code&gt; on the desktop, where at the end of the day I scribble what I'm going to do tomorrow. Such a simple trick, and you don't believe what a huge productivity boost it makes until you try it. I think some of the boost has to do with that when you spend 5 minutes thinking how to proceed before going home, your subconscious will process it overnight, and then you just &lt;em&gt;know&lt;/em&gt; what to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good programmers work 24/7, and that doesn't mean not having a life :-)&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-04T17:42:59.387" LastActivityDate="2010-10-04T17:42:59.387" />
  <row Id="9391" PostTypeId="2" ParentId="9385" CreationDate="2010-10-04T17:24:18.690" Score="5" ViewCount="" Body="&lt;p&gt;In order to pick up where you left off, you need to not just document where you left off, but what is next. Make sure you have this before you leave on Friday. It could be a bug. Starting something completely new or adding something to an existing task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure this is readily available on Monday. I put it on top of my keyboard. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do Not Open Email or read blogs or RSS Feeds! Unless you are waiting on a specific response to the task you left over on Friday, wait. If the first task can be done in an hour, hold off for an hour. Otherwise, start on your predefined task, with a planned break after 90-120 min. Stretch, get a drink, open email and only respond if something is urgent and then get it done.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-04T17:24:18.690" CommentCount="1" />
  <row Id="9393" PostTypeId="2" ParentId="9385" CreationDate="2010-10-04T17:25:59.467" Score="2" ViewCount="" Body="&lt;p&gt;Hi there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're IDE supports it, leave a &lt;code&gt;TODO&lt;/code&gt; comment next to where you left off. Or even better, if you can create a custom tag (such as in Visual Studio) you could then use that tag to recall where you were. For example, you could create a new tag named &lt;code&gt;LASTPOINT&lt;/code&gt; (or whatever is easiest for you). Then, in the IDE settings, configure so that the IDE picks up that new tag and displays it in the todo list.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By far my favourite method (mentioned by Cosizzle) is to leave breaking code in the area where I'm working on. Next day I know exactly where I left off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers.&#xA;Jas.&lt;/p&gt;&#xA;" OwnerUserId="3668" LastActivityDate="2010-10-04T17:25:59.467" CommentCount="1" />
  <row Id="9394" PostTypeId="2" ParentId="9378" CreationDate="2010-10-04T17:26:49.350" Score="2" ViewCount="" Body="&lt;p&gt;I haven't used it much yet (I have it at home, but still using 2008 at work.)  So far so good, but the new help system is garbage compared to what it was before (if you've used both, you know what I mean.)  That's been a real productivity killer for me - I usually gave up and just went looking on the web for answer (that's fine at home, but at work we're on an internal network with no direct Internet access.)  Some people have come up with alternatives, but they are rather slow and don't work very well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't recall having problems with undo though.  That's an odd one.&lt;/p&gt;&#xA;" OwnerUserId="3842" LastActivityDate="2010-10-04T17:26:49.350" CommunityOwnedDate="2011-02-02T16:35:27.803" />
  <row Id="9395" PostTypeId="2" ParentId="9371" CreationDate="2010-10-04T17:29:23.907" Score="1" ViewCount="" Body="&lt;p&gt;We generally use Word, but in reality how you create them in software is less important than how you collect the data to create them and whether the person gathering the information knows enough to know when a requirement is overly complicated and will be far more expensive than a simpler requirement yet add no real value to anyone (such as when they want ID numbers to always be assigned in order with none ever skipped) or when it will conflict with an existing requirement or other planned feature. Often the actual users are never talked to and there are many surprises when their managers didn't know something that absolutely had to be done and it isn't inthe new version of the software.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-04T17:29:23.907" />
  <row Id="9396" PostTypeId="2" ParentId="9215" CreationDate="2010-10-04T17:31:52.670" Score="2" ViewCount="" Body="&lt;p&gt;&quot;What do you want to do?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Granted this is a rather generic question, but there is something about having the power of choice at times in my job that it can be rather cool to feel that kind of power.... &lt;em&gt;He-man theme music plays&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-04T17:31:52.670" />
  <row Id="9397" PostTypeId="2" ParentId="9378" CreationDate="2010-10-04T17:32:06.443" Score="1" ViewCount="" Body="&lt;p&gt;CTRL+UP does not scroll the view window in code editor, instead activating class drop down box. Even worse, I don't find a way to customize it.&lt;/p&gt;&#xA;" OwnerUserId="844" LastActivityDate="2010-10-04T17:32:06.443" CommunityOwnedDate="2011-02-02T16:35:27.803" CommentCount="2" />
  <row Id="9398" PostTypeId="2" ParentId="8886" CreationDate="2010-10-04T17:36:28.930" Score="3" ViewCount="" Body="&lt;p&gt;Many many programmers don't have college degrees or degrees in programming. But having done a lot of hiring, I would hesitate to hire anyone who couldn't complete high school. There would have to be a really good explanation for that. It is my experience that  people with no high school or GED do not have the self-discipline and ability to work with others to be good employees. I wouldn't hire them for most jobs not just programming.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-04T17:36:28.930" CommunityOwnedDate="2011-03-30T04:35:50.040" />
  <row Id="9399" PostTypeId="2" ParentId="9385" CreationDate="2010-10-04T17:51:08.697" Score="1" ViewCount="" Body="&lt;p&gt;I program in a VM so I just save the state.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually write a &lt;a href=&quot;http://programmers.stackexchange.com/questions/9385/what-is-a-good-way-to-pick-up-where-you-left-off/9393#9393&quot;&gt;little note in the code too&lt;/a&gt;, not a comment though - something that won't compile.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-04T17:51:08.697" />
  <row Id="9400" PostTypeId="2" ParentId="8886" CreationDate="2010-10-04T17:53:54.290" Score="1" ViewCount="" Body="&lt;p&gt;If I have a bunch of resumes, several of them are likely to be &quot;average programmers&quot;. What's going to make me look at yours if you don't even have a high school diploma?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd need something really interesting on there to make me consider it, and even then I doubt it'd get through an HR screening.&lt;/p&gt;&#xA;" OwnerUserId="4432" LastActivityDate="2010-10-04T17:53:54.290" CommunityOwnedDate="2011-03-30T04:35:50.040" />
  <row Id="9401" PostTypeId="2" ParentId="7927" CreationDate="2010-10-04T17:56:06.610" Score="1" ViewCount="" Body="&lt;p&gt;A lot of good answers here, but a few things I wanted to add. Make sure you actually understand the requirement. I've seen lots of bugs when the user thought the requirement meant X and the programmer thought it meant Y. Push back for clarification on poor or ambiguous requirements. I know we all like to jump in and code but the more time spent up front ensuring understanding, the less rework and bug fixing there will be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get to know the business you are supporting, you will often see things in requirements that are missing or need further explanation then. Know that if you do task Y as stated, it will break existing feature Z. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Understand your database structure. Many many bugs are as a result of a query that is syntactically correct, but returns the wrong results. Learn how to recognize when your results look funny. If I am writing a complex reporting query, I always get a technical specialist to review my results before I mark it as ready to go, they will inevitably see something in the data I missed. Then make notes to yourself what they caught that you didn't and remember that the next time you do something simliar.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-04T17:56:06.610" />
  <row Id="9402" PostTypeId="2" ParentId="8886" CreationDate="2010-10-04T17:58:11.680" Score="0" ViewCount="" Body="&lt;p&gt;At my last job we had folks who had degrees and folks who did not have them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At my experience there, the folks who didn't have degrees on average had more technical ability, but they didn't have the work ethic to back it up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's a tough one to prove in an interview but easy enough to root out after the first few months.&lt;/p&gt;&#xA;" OwnerUserId="4272" LastActivityDate="2010-10-04T17:58:11.680" CommunityOwnedDate="2011-03-30T04:35:50.040" />
  <row Id="9403" PostTypeId="1" CreationDate="2010-10-04T18:00:51.310" Score="3" ViewCount="394" Body="&lt;p&gt;With inspiration from &lt;a href=&quot;http://programmers.stackexchange.com/q/9367/2210&quot;&gt;this&lt;/a&gt; question, I thought I'd ask my own concerning monitors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some monitors you can turn 90 degrees so that it stands vertically positioned. I've also seen this setup be used in some offices. But which is better for programming? The way I see it, horizontally you can fit more documents side by side, but vertically you can view more code of the same document. Which setup do you prefer? How does this scale with multiple monitors?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-05T01:32:14.847" Title="Horizontally positioned or vertically positioned monitor(s)?" Tags="&lt;monitor&gt;" AnswerCount="6" CommentCount="4" />
  <row Id="9404" PostTypeId="2" ParentId="9403" CreationDate="2010-10-04T18:05:34.280" Score="4" ViewCount="" Body="&lt;p&gt;I have two widescreen monitors, &lt;strong&gt;one of which is positioned horizontally and the other vertically&lt;/strong&gt;. This way I get the best of both worlds. I place my IDE window in the vertically positioned monitor. This way I can see much more code at once without the need for scrolling. &lt;strong&gt;Code flows vertically, not horizontally.&lt;/strong&gt; So do web pages. I found it to be a huge productivity-booster. Before I did that I was wasting a lot of screen real-estate. I never had my IDE alongside other windows on the same screen anyway. I use the horizontally-positioned monitor for mail, directory searching, etc., where I can place several windows side by side.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="3262" LastEditorDisplayName="" LastEditDate="2010-10-04T18:14:09.330" LastActivityDate="2010-10-04T18:14:09.330" CommentCount="8" />
  <row Id="9405" PostTypeId="2" ParentId="8886" CreationDate="2010-10-04T18:05:34.340" Score="15" ViewCount="" Body="&lt;p&gt;First, any HR department will toss your resume without a second's thought.  You need to find a business small enough that resumes and applications go to the appropriate manager.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, your resume needs to interest the manager.  It's very easy to see no high school diploma and round-file a resume, and it would feel very risky to hire such a person.  Managers are interested in finding good candidates, not in giving everybody a fair shake.  There may be very good reasons why you didn't graduate from high school, but those don't matter.  You have to get to an interview for those to matter, and explaining why not will take time you could be using to actually impress the manager.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, you have to have something on your resume that says &quot;this guy is special&quot;.  (Something that says &quot;this guy is average&quot; won't work, since there's likely average programmers available that don't have any obvious problems with their resumes.)  About the only thing that will work here is evidence of outstanding programming work, and about the only way you'll get that is by being outstanding in an open source project, since that's about the only reputable software you can get into just by being good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can always talk to people you personally know, who may be impressed by you, and if they have hiring authority they might be talked into giving you a shot.  Of course, the jobs you're likely to get that way aren't all that impressive, and won't look all that good on the resume.  You won't find them much of a steppingstone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can go into business for yourself, but that takes a lot of work and determination and ability.  You'll have a great deal of difficulty getting hired as a consultant without a high school diploma, and making and selling a product is really difficult.  Everybody knows about the big winners who became billionaires, but there's a whole lot more people you never heard of because they flopped.  If you're only average in ability, you're probably doomed here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, you can devote a lot of work to an Open Source project, or start your own business and bull it through, and both of these require more than average ability.  I know you said you don't want &quot;go back to school&quot; responses, but, really, it will take less time, ability, and energy to go back to school than to break into the field in any other way.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-04T18:05:34.340" CommunityOwnedDate="2011-03-30T04:35:50.040" CommentCount="4" />
  <row Id="9406" PostTypeId="1" CreationDate="2010-10-04T18:06:42.980" Score="10" ViewCount="1808" Body="&lt;p&gt;If you were starting learning a new language today, for scripting and doing &quot;various stuff&quot; with it (from making useful programs to it being glue to several command line programs), would you go with Python or Perl (or some third option, although the battle usually comes to these two)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never much used dynamic languages at all, having been able to do everything I needed in traditional static ones. Did some scripting in Perl a couple of years ago, but that was more of a momentary fling, than an attempt to learn it well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I've some free time, and have decided to go along with one of these two, and play a little with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like Perl's syntax, but Python does seem to be taking rather big steps on overtaking that area. What do you think, which one is more worth learning and why? Also, what do you think, what will be Python's future in about 10 years ... will it overtake Perl and other scripting languages's as a dominant tool for that kind of work (I more often than not find it being implemented in various applications I'm using - for internal scripting and automating loading of data and similar operations), or will it find a balance and coexist along others (Perl)? What is its current &quot;momentum&quot; - does it comes by default with Linux distributions, as Perl does, or does it needs to be installed separately every time? Is it a language which can be expected &quot;to just be there&quot;?&lt;/p&gt;&#xA;" OwnerUserId="4433" LastEditorUserId="1303" LastEditorDisplayName="" LastEditDate="2010-10-05T05:29:40.170" LastActivityDate="2011-05-27T14:41:14.330" ClosedDate="2011-01-07T00:10:46.287" Title="Python vs. Perl in ten years time" Tags="&lt;holy-war&gt;&lt;python&gt;&lt;perl&gt;" AnswerCount="9" CommentCount="7" FavoriteCount="2" />
  <row Id="9407" PostTypeId="2" ParentId="9403" CreationDate="2010-10-04T18:07:28.990" Score="0" ViewCount="" Body="&lt;p&gt;I've tried several approaches, and in the end ended up with both positioned horizontally.  That way I can have several instances of an IDE side-by-side to compare code and work with several projects at the same time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it has also been nice to have one set up horizontally and one vertically.  By putting an IDE in the vertical monitor and moving it's tool palettes over to the horizontal monitor, a lot more code is visible and your tool palettes are all available also.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-10-04T18:07:28.990" />
  <row Id="9408" PostTypeId="2" ParentId="9351" CreationDate="2010-10-04T18:08:51.420" Score="1" ViewCount="" Body="&lt;p&gt;VBScript is still very useful as an application scripting language, as it ships with Windows.  ie, like VBA.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-04T18:08:51.420" />
  <row Id="9409" PostTypeId="1" AcceptedAnswerId="9454" CreationDate="2010-10-04T18:09:03.673" Score="14" ViewCount="591" Body="&lt;p&gt;As a programmer, you have to interact with your users/customers in some way to both develop and support the software they pay for.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What was the worst experience you've gotten from those interactions?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;What did you learn from that experience? Why did this situation happen? How can you to avoid it in the future?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm also interested in best experiences you have, and why they were different from the worst. and how you can reproduce them.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-10-04T18:57:41.893" LastActivityDate="2010-10-20T19:23:02.423" Title="What was the worst experience you've had with a customer/user?" Tags="&lt;users&gt;&lt;customer-relations&gt;&lt;psychology&gt;" AnswerCount="15" CommentCount="1" FavoriteCount="6" />
  <row Id="9410" PostTypeId="2" ParentId="9346" CreationDate="2010-10-04T18:14:17.673" Score="4" ViewCount="" Body="&lt;p&gt;A code generator is a type of compiler.  You don't worry about how pretty the compiler output is, you just work with the source code.  Using it and then hand-modifying the output is often harder than just writing it from scratch in a form comprehensible by humans, and means you can't use the code generator again without a lot of work, since you'll have to apply the same changes to the same incomprehensible code accurately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, they can be fine if they're part of the build process, and documented as such.  The input to the generator is then the source code, and whatever it produces is intermediate results, not to be messed with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if somebody's using one to produce incomprehensible code that's supposed to be used as source, then that person's producing bad code.  It doesn't matter if the person is producing bad code mechanically or by hand, it's still bad code, and you still have a quality problem with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, you need to treat this as any other developer cutting corners and writing bad code.  I don't know how you handle that at your shop.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-04T18:14:17.673" />
  <row Id="9411" PostTypeId="2" ParentId="9351" CreationDate="2010-10-04T18:14:27.363" Score="0" ViewCount="" Body="&lt;p&gt;I guess on older versions of Windows that can't run Powershell admins might find it useful as a scripting language, since you know it will be installed by default. But Microsoft recommend &lt;a href=&quot;http://technet.microsoft.com/en-us/library/ee221101.aspx&quot; rel=&quot;nofollow&quot;&gt;converting VBScript to Powershell&lt;/a&gt; where possible, so hopefully that will be the final nail in it's coffin. But the pessimist in me still feels it rotting corpse might linger for some time yet.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-10-04T18:14:27.363" />
  <row Id="9412" PostTypeId="2" ParentId="9403" CreationDate="2010-10-04T18:23:27.680" Score="2" ViewCount="" Body="&lt;p&gt;I work on a notebook, so I have to use its screen horizontally, which is fine for using Visual Studio as it has a high resolution (1680x1050). I have a secondary monitor, in portrait mode (vertical), for the serial debug output and for viewing documents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tried to code on the vertical monitor, but it doesn't fit to me. The quantity of code that fits in the horizontal monitor is quite enough to fit a function/method, and this is a rough indication of the code quality: if a function doesn't fit, it is probably too long and has to be refactored and splitted in shorter code blocks.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-10-04T18:23:27.680" CommentCount="1" />
  <row Id="9413" PostTypeId="2" ParentId="2475" CreationDate="2010-10-04T18:37:00.180" Score="1" ViewCount="" Body="&lt;p&gt;Is getting a degree filling a hole in your resume? Are you employable now?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I went to Dice.com and put in J2EE and 5600+ jobs showed up; that should be sufficient.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only reason to take less salary is if:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;more money requires a&#xA;disproportionate amount of your life&lt;/li&gt;&#xA;&lt;li&gt;opportunity to work with really great&#xA;programmer(s)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Not sure I would take significantly less money to work on any particular technology over another. Obviously there are more obscure and outdated ones that may make a difference in the long run.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-04T18:37:00.180" CommentCount="1" />
  <row Id="9414" PostTypeId="2" ParentId="9409" CreationDate="2010-10-04T18:38:45.603" Score="3" ViewCount="" Body="&lt;p&gt;A couple to pick from:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;going to a customer site to demo an application written in VB3 and forgetting to put vbrun300.dll on the floppy.&lt;/li&gt;&#xA;&lt;li&gt;boss bringing a customer to my desk for a demo, &lt;strong&gt;unannounced&lt;/strong&gt;, when the build I'm running is broken.  First thing the customer does is crash the program.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="35" LastActivityDate="2010-10-04T18:38:45.603" CommentCount="1" />
  <row Id="9415" PostTypeId="2" ParentId="9403" CreationDate="2010-10-04T18:47:39.333" Score="0" ViewCount="" Body="&lt;p&gt;I have two horizontal monitors (16:10) and two code windows on one and the IDE-windows/log/prompt + web browser on the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having two code listings side-by-side is neat, and it becomes easier with another monitor to put the project/solution explorer and related windows on. &lt;/p&gt;&#xA;" OwnerUserId="3917" LastActivityDate="2010-10-04T18:47:39.333" />
  <row Id="9416" PostTypeId="2" ParentId="9409" CreationDate="2010-10-04T18:48:05.803" Score="8" ViewCount="" Body="&lt;p&gt;&quot;I can't buy anything off your site!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Oh, I'm sorry to hear that. Which browser are you using?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I think Internet Explainer. The Microsoft one.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I see. Do you happen to know which version?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;What do you mean?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Err... how old is your computer? I mean, when did you purchase it?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I think about 1999 or 2000. I actually got it free from a co-worker. Still runs great, too!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Turns out the guy wasn't using IE6, but &lt;strong&gt;IE5&lt;/strong&gt;. This was in 2009. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;facepalm&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="4430" LastActivityDate="2010-10-04T18:48:05.803" CommentCount="1" />
  <row Id="9417" PostTypeId="2" ParentId="9403" CreationDate="2010-10-04T18:51:01.953" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Horizontally&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have 20-inch monitors and set my IDE (Visual Studio) font to a very readable Consolas type 14.  (You don't need to sit right next to me in order to read the code.)  This font setting allows me to fit about 110 characters of text to the left of the Solution Explorer.  (And I don't like extra long lines of code; 110 characters is my clean-code guideline - same as the coding standard of Microsoft's .NET CLR team, BTW).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This layout gives me about 45 lines of code vertically.  If you had asked me in the past, I would have told you how unacceptably tiny this number is (45), because I aligned my coding monitor vertically, used Courier New font size 10 and crammed about 110 LOC on the screen.  Back then, of course, I also had the tendency to write long methods and generally less cleaner code than I do now.  Right now I have lines 175 through 219 on my screen, five full methods and the beginning of the sixth.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-04T18:51:01.953" />
  <row Id="9418" PostTypeId="2" ParentId="9409" CreationDate="2010-10-04T18:55:26.517" Score="3" ViewCount="" Body="&lt;p&gt;I took over the maintenance of a desktop application without developer licensing to some of the third-party widgets. There were large parts of the application I could not recompile. Any requests for changes to these areas were denied, but I was ashamed of the reason I had to give. Most users hated the application/company so much they actually felt sorry for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The company didn't care and would not pay to renew the licenses. I should have begun immediately to replace these controls with standard ones. All of this happened because of office politics. The company did several buy-outs. They purchased the application with no contractual obligations on the source code. There was a project to hire a consulting firm to replace the application which was easier to justify as my app was made to look worse. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the best experiences was a place where I was a part-time programmer and worked in office operations and billing for the other part. My goal was to be a full-time developer, but I took this as an opportunity to learn more about the industry. I would start taking over some tasks for other people (we were a little short-staffed). It wouldn't take long before I could automate what they had to do. Even if the job was given back to them, the additional amount of time was insignificant. Sometimes it was better since they didn't have to coordinate any efforts with me when they did it themselves. I wrote the documentation and training guides. I would just hand them the instructions and watch over their shoulder to see if they could learn to do it with no training. I corrected the instructions. This helped to create an office manual that was relevant and helped get new employees up-to-speed much faster. If felt a very strong connection between the code I wrote and the performance of the company. We tripled the amount of money we managed and maybe hired one or two additional staff.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-04T18:55:26.517" />
  <row Id="9419" PostTypeId="2" ParentId="9406" CreationDate="2010-10-04T18:56:31.880" Score="9" ViewCount="" Body="&lt;p&gt;I would say Ruby actually as it combines features of both and has an up and coming following.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said both Perl and Python have/are making a break with the past as Python 3.x has broken backward compatibility with Python 2.x and Perl will do the same when 6 arrives (So much so that Larry Wall is basically calling Perl 6 a different language). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal disclaimer: I prefer Perl 5, but have learned to script in both because of installation scripting for Red Hat/Fedora (As the Red Hat installer (Anaconda) scripts are written in Python 2.x the last I looked).  Both will do what you want it too and like most things Unix\Linux they will be around for at least 10 years.  &lt;/p&gt;&#xA;" OwnerUserId="4435" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-03T18:25:11.910" LastActivityDate="2010-11-03T18:25:11.910" CommentCount="7" />
  <row Id="9420" PostTypeId="2" ParentId="9385" CreationDate="2010-10-04T19:11:57.037" Score="9" ViewCount="" Body="&lt;p&gt;I like to write myself a quick note that roughly states the problem I'm considering or the next thing I have to do.  I write it in plain English in my local checkout of the code, wherever I am currently working- not in a comment.  When I need to pick things up the next Monday, I update/compile.  Since the note to myself will invariably cause a syntax error, I get back to it right away.  I find that reading the note and deleting it to fix my &quot;compiler error&quot; gets me right back into the swing of things.&lt;/p&gt;&#xA;" OwnerUserId="4045" LastActivityDate="2010-10-04T19:11:57.037" CommentCount="3" />
  <row Id="9421" PostTypeId="2" ParentId="9406" CreationDate="2010-10-04T19:12:22.933" Score="17" ViewCount="" Body="&lt;p&gt;Python, hands down. Up until a few years ago, I had been coding in a lot of different languages, Perl included. I wish I had switched to Python a long time ago. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Technical Reasons&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Code structure is enforced.&lt;/li&gt;&#xA;&lt;li&gt;Variable typing is sensible.&lt;/li&gt;&#xA;&lt;li&gt;OOP is strong.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Career Reasons&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Python is everywhere.&lt;/li&gt;&#xA;&lt;li&gt;There are many types of development employing Python; systems automation, web development.&lt;/li&gt;&#xA;&lt;li&gt;Python's structured nature will make you a better programmer.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Python in 10 years? No idea. That's too far out. Python 3 looks pretty exciting, though. But in my view Python long ago overtook Perl for both systems administration and web development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does it comes by default with Linux distributions? Yes, in every distribution I've ever seen, Python is there and sometimes in heavy use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I loved Perl &quot;back in the day&quot;. But I would never go back to it by choice.&lt;/p&gt;&#xA;" OwnerUserId="2335" LastEditorUserId="2335" LastEditorDisplayName="" LastEditDate="2011-05-27T14:41:14.330" LastActivityDate="2011-05-27T14:41:14.330" CommentCount="4" />
  <row Id="9422" PostTypeId="2" ParentId="9409" CreationDate="2010-10-04T19:14:24.190" Score="3" ViewCount="" Body="&lt;p&gt;&quot;It doesn't work&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Did you follow the install directions?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Insta... Yes.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nope, no you didn't.  Not only didn't you follow them but I got written up.  Shouldn't have to spend 2 weeks because you decided to download your own versions of a library that were 4 years old instead of the redistributable that was sent with the application install package.  (Then again, I should have been allowed to write an install script.)&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-04T19:14:24.190" CommentCount="5" />
  <row Id="9423" PostTypeId="2" ParentId="9406" CreationDate="2010-10-04T19:16:45.340" Score="23" ViewCount="" Body="&lt;p&gt;10 years is a long time, but if I have to bet, I would bet on Python. Here are the criteria I would use.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pre-installed on most Unix, Linux systems? &lt;strong&gt;&lt;em&gt;Tie&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Maintainability / Readability. &lt;strong&gt;&lt;em&gt;Python&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Core library. &lt;strong&gt;&lt;em&gt;Python&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Programming paradigms. Close but Perl5's OOP is clunky. &lt;strong&gt;&lt;em&gt;Python&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-04T19:16:45.340" CommentCount="5" />
  <row Id="9424" PostTypeId="2" ParentId="8617" CreationDate="2010-10-04T19:21:39.540" Score="4" ViewCount="" Body="&lt;p&gt;I worked in a lab that lost its air conditioning one summer. We tried openning the cases on all the computers and put the fan on them instead of ourselves. This stopped working, so we went home. Someone left a window open and all the equipment was stolen. Just when you don't think things can get worse, they do.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-04T19:21:39.540" />
  <row Id="9425" PostTypeId="2" ParentId="9236" CreationDate="2010-10-04T19:21:46.803" Score="1" ViewCount="" Body="&lt;p&gt;I'd like to start off my answer with an analogy: According to PhRMA, &quot;Only one of every 10,000 potential medicines investigated by America's research-based pharmaceutical companies makes it through the research and development pipeline and is approved for patient use by the United States Food and Drug Administration. Winning approval, on average, takes 15 years of research and development and costs over $800 million dollars.&quot; Source: &lt;a href=&quot;http://www.phrma.org/innovation&quot; rel=&quot;nofollow&quot;&gt;http://www.phrma.org/innovation&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But these firms certainly aren't wasting their time and money on R&amp;amp;D. Consider this: A 2007 report by Northeastern University prepared for PhRMA concluded that &quot;[In 2005] the 15 PhRMA member companies operating in Massachusetts are quite substantial, with worldwide annual net sales exceeding $277 billion, more than $95 billion in gross operating profit, $37.1 billion in expenditures on R&amp;amp;D activities,[...].&quot; So they spent $37B on R&amp;amp;D but got back $95B in profit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;So, what are you getting back for your investment in time and energy researching new technology?&lt;/em&gt; Does it make you more productive, does it make you feel good, or does it help you earn more income?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let me propose an experiment: Try to increase the amount of time you spend researching new tech. Does your productivity, happiness, or income increase as well? If so, then you're not investing enough time right now. Similarlarly, you can try to pull back and spend less time on R&amp;amp;D. Then what happens to your productivity, income and happiness?&lt;/p&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-04T19:21:46.803" />
  <row Id="9426" PostTypeId="2" ParentId="9378" CreationDate="2010-10-04T19:22:27.957" Score="12" ViewCount="" Body="&lt;p&gt;The Add Reference diagram still sucks.  It just sucks in new and different ways from 2008.  It is better now that you can get to the Recent, Browse, and Project tabs quicker.  However, the tab that shows the huge list of assemblies is not very useful.  It loads in dribs and drabs, but with no indication of when it is done or not, and with seemingly no rhyme or reason to what is being loaded.  It doesn't seem to sort correctly if you click on one of the columns.  And it is still slow to actually have the list fully populate.  And although you can type in the start of an assembly name, and it will go to that item, it is not obvious that you can do this, and you can't see what you are typing so it is easy to misspell and not find what you are looking for.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-10-04T19:22:27.957" CommunityOwnedDate="2011-02-02T16:35:27.803" CommentCount="2" />
  <row Id="9427" PostTypeId="2" ParentId="9351" CreationDate="2010-10-04T19:24:39.770" Score="1" ViewCount="" Body="&lt;p&gt;There's a couple of thousand useful vb scripts can be found at the the &lt;a href=&quot;http://technet.microsoft.com/en-us/scriptcenter/default.aspx&quot; rel=&quot;nofollow&quot;&gt;MS Script Center&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can see them by clicking the VB Script link on the &lt;a href=&quot;http://gallery.technet.microsoft.com/ScriptCenter/en-us/&quot; rel=&quot;nofollow&quot;&gt;repository page&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-10-04T19:24:39.770" />
  <row Id="9428" PostTypeId="2" ParentId="9409" CreationDate="2010-10-04T19:24:43.573" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I need you to just make a minor change...only take a second...&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any experience involving wanting me to do excessive work for free because it's seen as a &quot;minor change&quot;.  Their asking can be either awkward, uncomfortable, or sometimes just downright insulting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By insulting I mean when it's a blatant attempt to take advantage of me or a company I work for.  We're all professionals here.  Pay for quality services.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-10-04T19:38:59.313" LastActivityDate="2010-10-04T19:38:59.313" CommentCount="2" />
  <row Id="9429" PostTypeId="2" ParentId="9378" CreationDate="2010-10-04T19:25:06.680" Score="6" ViewCount="" Body="&lt;p&gt;I've been using VS2010 for C++ development for a few months on a Windows XP machine.  It is noticeably slower than VS2008, which may be caused by the more sophisticated intellisense, which I have turned on. Or it may be the fact that it is written using WPF. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It freezes a lot, and crashes once a day on average.  And on top of that, the more sophisticated intellisense often goofs, and reports errors that are not there.  I suppose it doesn't always catch the fact that a header file has been modified.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope there is a service pack coming, which will fix these bugs.  However there are also a couple of issues that really bother me, and seem unlikely to be fixed.  One is the lack of emacs key bindings, and the other is the fact that the built in unit test system requires the use of managed code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's another one.  The &quot;Project Dependencies&quot; menu no longer seems to do anything.  To specify which projects depend on which &quot;Project References&quot; in the property sheet are used.  It is a complete mystery to me why the &quot;Project Dependencies&quot; menu is still there or what it does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have just got a new faster machine with Windows 7.  VisualStudio does not crash or freeze any more.  Works like a charm.  Very fast and responsive.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastEditorUserId="4365" LastEditorDisplayName="" LastEditDate="2011-03-15T15:34:59.890" LastActivityDate="2011-03-15T15:34:59.890" CommunityOwnedDate="2011-02-02T16:35:27.803" CommentCount="4" />
  <row Id="9430" PostTypeId="2" ParentId="9180" CreationDate="2010-10-04T19:26:34.520" Score="1" ViewCount="" Body="&lt;p&gt;University does not teach you to become a real-world programmer.  I'm guessing this is similar with a lot of jobs compared to their degree programs.  I wouldn't say that I got &lt;em&gt;nothing&lt;/em&gt; out of my degree, but it was far less useful than spending 4 years actually on the job.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it's okay.  Every job I've started I was probably under-qualified for.  If you are confident in your abilities and dedicated to learning then you can step up and do the job.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-10-04T19:26:34.520" />
  <row Id="9431" PostTypeId="2" ParentId="6834" CreationDate="2010-10-04T19:30:30.517" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Smalltalk's debugger:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Full access to the entire call stack (What was this instance variable of that object 3 senders down the stack?)&lt;/li&gt;&#xA;&lt;li&gt;Edit the code under test in the debugger, restart and carry on program execution like nothing happened.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It's perfectly normal in Smalltalk to spend most of one's time writing code from within the debugger.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I remember being blown away by running a method, seeing something wrong, changing it, and running the method again without restarting the application back in the day with Visual Age for Java... because VA4J was written in Visual Age for Smalltalk.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Smalltalk's Method Finder&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Method Finder lets you ask &quot;which message might I send to take these parameters and get this result?&quot; Ask it &lt;code&gt;'abc'. 'def'. 'abcdeb'.&lt;/code&gt; and it tells you &lt;code&gt;'abc' , 'def' --&amp;gt; 'abcdef'&lt;/code&gt;. Ask it &lt;code&gt;#(0 1 2 3)&lt;/code&gt; and it says &lt;code&gt;#(0 1 2 3) sum --&amp;gt; 6&lt;/code&gt;.&#xA; * Senders-of, implementors-of all you to find all (*) senders of a message or all objects that implement that message.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(*) Except when you do stuff like create message names at runtime: &lt;code&gt;self perform: (#foo, #bar)&lt;/code&gt; to send yourself the message &lt;code&gt;#foobar&lt;/code&gt; - in which case you know what you're doing, and you don't mind the potential of hoisting yourself on your own petard.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-04T19:30:30.517" />
  <row Id="9432" PostTypeId="1" AcceptedAnswerId="9628" CreationDate="2010-10-04T19:31:01.733" Score="3" ViewCount="191" Body="&lt;p&gt;I have recently started work at a company using their proprietary CMS. Unfortunately, there is virtually no documentation for the application, and the source comments are also quite sparse. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Normally, given a particular task - I work down through the choices below, going to the next step if I can't find a solution&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1: Consult the documentation (n/a) on how to do task X (i.e. create a page)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2: Read the source code - output variables - generally halt search after digging 4 or 5 steps into class/method chain&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3: Ask the existing development team how they might achieve X in their application&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4: Read the (uncommented) source again - go &quot;rabbit hunting&quot; - pursue each chain to completion&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5: Make tea&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the one hand, my employer is looking for technical capability. On the other, they are looking for speed of execution. They are averse to me asking the other developer for assistance (despite the lack of documentation), yet seem surprised when I've then had to spend an hour (or two) rabbit hunting through their application for the origin of variable or method X. Bear in mind that I've been employed as an intermediate developer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I wanted to get an outside perspective, is my process of elimination unreasonable? I can't imagine anyone writing a Zend Framework app without the documentation (and sometimes they struggle despite that...) - so working on some proprietary app with none is proving somewhat tricky.&lt;/p&gt;&#xA;" OwnerUserId="3712" LastEditorUserId="3712" LastEditorDisplayName="" LastEditDate="2010-10-05T14:07:03.983" LastActivityDate="2010-10-05T14:19:34.300" CommunityOwnedDate="2010-10-04T19:31:01.733" Title="Shortest distance between two points (to solve a problem)" Tags="&lt;web-applications&gt;" AnswerCount="4" />
  <row Id="9433" PostTypeId="2" ParentId="4888" CreationDate="2010-10-04T19:33:30.293" Score="1" ViewCount="" Body="&lt;p&gt;Ignore phones calls and emails. Return voicemails and email every 30 or 60 minutes (customize to your workplace). If your offices uses Exchange/Outlook for scheduling, start putting in blocks of an hour when you want to work without interruption. If there's an item in your calender, people will tend to schedule meetings outside of it.&lt;/p&gt;&#xA;" OwnerUserId="1108" LastActivityDate="2010-10-04T19:33:30.293" />
  <row Id="9434" PostTypeId="2" ParentId="9432" CreationDate="2010-10-04T19:34:53.557" Score="0" ViewCount="" Body="&lt;p&gt;You can normally find the problem easier if you do a straight back trace of the issue. Sometimes this is inefficient though, like when you have minimal documentation or knowledge of the system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My suggestion would be let your employer know that this is an issue that prevents efficient work being done. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-04T19:34:53.557" CommunityOwnedDate="2010-10-04T19:34:53.557" CommentCount="1" />
  <row Id="9435" PostTypeId="2" ParentId="9180" CreationDate="2010-10-04T19:35:24.953" Score="0" ViewCount="" Body="&lt;p&gt;A good programmer is always learning... learning a different way to do this or a better way to do that. Whatever your fellow programmers have to teach you, I would listen. &lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-10-04T19:35:24.953" />
  <row Id="9436" PostTypeId="2" ParentId="8445" CreationDate="2010-10-04T19:36:09.797" Score="1" ViewCount="" Body="&lt;p&gt;I see two main reasons for writing const-correct code.  One is that the compiler is your friend, and by using const you let it warn you of potential bugs.  The second reason is that const-correctness makes code more readable.  For example, you always know which function arguments are inputs and which are outputs.  You also know which member functions modify the object and which do not. You know these things instantly without having to read through the code.  This, of course, assumes a very judicious use of &lt;code&gt;const_cast&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-04T19:36:09.797" />
  <row Id="9437" PostTypeId="2" ParentId="9218" CreationDate="2010-10-04T19:41:26.530" Score="0" ViewCount="" Body="&lt;p&gt;The programming langues used at fortune 500 companies varies greatly. Just like the companies them self. Google is java/python. Facebook is php/c++/mysql. Stackoverflow is .net/mssql.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact is learning a programming langue syntax is easy when compared to knowing good programing practices/algorithms/ect. If you are a really good developer it is possible that a company will over look that fact that you don't know their langue of choice because they know you will be able to pick it up. However just the opposite is true. If you are novice developer, you are less likely to be picked up because they may not want to train you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It all depends on your skill set and the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do know this. Great developers are few and far between. Any self respecting company will do what they can to hire/retain talent regardless. &lt;/p&gt;&#xA;" OwnerUserId="3421" LastActivityDate="2010-10-04T19:41:26.530" CommentCount="1" />
  <row Id="9438" PostTypeId="2" ParentId="9055" CreationDate="2010-10-04T19:47:07.717" Score="9" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.hanselman.com/blog/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Scott Hanselman&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Blogs and podcasts a lot on a variety of programming topics.  Speaks and interviews lots of knowledgeable people.  Pretty good fire-hose-type information source for software developers.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-04T19:47:07.717" CommunityOwnedDate="2010-10-04T20:51:23.403" />
  <row Id="9439" PostTypeId="2" ParentId="9371" CreationDate="2010-10-04T19:49:43.133" Score="3" ViewCount="" Body="&lt;p&gt;I always use IEEE Std 830-1998 (IEEE Recommended Practice for Software Requirements Specifcations) as the template for my SRS document. See &lt;a href=&quot;http://standards.ieee.org/reading/ieee/std_public/description/se/830-1998_desc.html&quot; rel=&quot;nofollow&quot;&gt;http://standards.ieee.org/reading/ieee/std_public/description/se/830-1998_desc.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The final SRS document itself is usually a single OpenOffice.org document, but there are usually many constituent parts that go into it, including spreadsheets and diagrams.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually put all of these documents together in a repository that I put into a &lt;strong&gt;revision control system&lt;/strong&gt;, like SVN or CVS. All of the other business analysts, designers, developers, testers, project managers and &lt;em&gt;clients&lt;/em&gt; have access to this repository, so they can read it and make edits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember, the SRS is a living, evolving document. It will continue to change and grow for some time. Not only is it important for all stakeholders to have access to the SRS, but its also important to have a complete history of the changes, and the ability to rollback these changes as well, if necessary. So a revision control system works great for this purpose. Good luck!&lt;/p&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-04T19:49:43.133" />
  <row Id="9440" PostTypeId="2" ParentId="9409" CreationDate="2010-10-04T19:54:52.387" Score="3" ViewCount="" Body="&lt;p&gt;I once worked in a small company where I was the only employee whose last name started with Z.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The company had a phone number with an IVR system where you could spell an employee's name by pressing phone keys. Once the match was unambiguous, the phone rang at the employee's desk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We had millions users worldwide at the peak and a well-publicized 1-800 number for tech support. But a tiny fraction of users called the corporate number instead and pressed &quot;0&quot; at some point to speak with an &quot;operator.&quot; The IVR was set up such that 0 spelled Z.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I got to talk to human users from time to time.  Sometimes it would be a great conversation starting with &quot;Let me walk you through this&quot;, but sometimes people clearly had no intention to solve any problems and just wanted shout some insults.  Those were probably the worst experiences.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-04T19:54:52.387" />
  <row Id="9441" PostTypeId="2" ParentId="9013" CreationDate="2010-10-04T19:55:04.400" Score="2" ViewCount="" Body="&lt;p&gt;I have seen this problem too. Implicit decision making! If the implicitness is the issue, will making it as explicit as possible solve the issue? What I suggest is to tweak the architecture process a little bit to 'start expliciting' out the implicit thoughts that progress to become decisions. The purpose of the additional step in the process is to make team members understand that everyone is prone to making implicit architectural decisions. &#xA;This step will just keep the implicit decisioning off the track. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keeping the &quot;Expliciting out Implicit decisions&quot; as a part of kanban for each of the scenarios might help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I am going to suggest might be cumbersome. But if the process is mapped to a set of kanban items and if this is brought on the board for each arch scenario, will it not help you track it. I suggest you can also map them to the six part scenario template and improvise the kanban board to accommodate the findings, the QAs can be tracked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Vikram.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-04T19:55:04.400" />
  <row Id="9442" PostTypeId="2" ParentId="9409" CreationDate="2010-10-04T19:59:50.403" Score="10" ViewCount="" Body="&lt;p&gt;I know I answered already, but I have a few of these as I work in web development. My favorite (least favorite?):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was hired to build a website for a relatively high-profile name in the sports world, so all of the communication was done through his lawyers who obviously knew not a single thing about web development. I got the job because a friend of mine recommended my services to them and she actually became my liaison to them who were my liaisons to him. This created a wonderfully horrible &quot;telephone&quot; type communication process where I would lay out all of my plans (pretty much as plainly as I could due to the audience's understandable ignorance of the process) and they would get muddied en route to the actual client and vice versa. It was, how you say, frustrating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyways, part of their requirements were a news section. No big deal. However, when I told them they probably wanted a way to update said news section (and that I would have to build them a tool for it), they balked, because they didn't want to have to pay me for another two or so hours. I said, ok, that's fine, no update tool, here's my estimate. Signed off, built the site, I get paid, everyone is happy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two weeks later I get a frenetic call from my friend who has apparently just taken a lot of heat from the client because the news section isn't being updated. She wants access to the code so she can go in and update it herself (because they don't want to pay me to do it). I say ok sure, no problem, and I wrote out very long and detailed instructions (for someone with 0 HTML experience [also didn't charge for the 45 mins or so it took me to write these instructions]) on how to do it and not mess up the site. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After she and her boss read the instructions, I got a freaked out call from her boss asking why I made it so complex to make changes (honestly, all it took was a text editor and an FTP client. Just change the text in a &lt;code&gt;p&lt;/code&gt; tag and upload. But if you don't know any of these things, including what an editor is, it probably sounds complex). I then calmly explained to him (and showed him the email) where he declined that I make the tool to make it easy to update the news. He then accused me of trying to milk them for money with this tool, even though I explained to him it wouldn't even take two hours to build.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haven't heard from them since. Needless to say, the news section is four months old at the time of this writing.&lt;/p&gt;&#xA;" OwnerUserId="4430" LastActivityDate="2010-10-04T19:59:50.403" />
  <row Id="9443" PostTypeId="2" ParentId="9409" CreationDate="2010-10-04T20:06:11.683" Score="4" ViewCount="" Body="&lt;p&gt;I worked at a pizzeria when I was a teenager, and there was a guy who came in once a week and ordered two small half-plain half-pepperoni pizzas, and he wanted the pepperoni half on the right side.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, I know it is not programming-related, but I figured that the crowd here would appreciate the insanity of this order.  Oh, and what I have learned from it was that there are people out there who will try to intentionally drive you nuts, and the only thing you can do about it is get a job where they pay you enough for it.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-04T20:06:11.683" CommentCount="3" />
  <row Id="9444" PostTypeId="2" ParentId="9218" CreationDate="2010-10-04T20:08:33.597" Score="0" ViewCount="" Body="&lt;p&gt;Top tech companies usually hire people who know computer science down cold. Master's degrees, PhDs, etc. are the stock-in-trade for the hires.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the lesser companies who hire a &quot;Developer in X technology&quot;, from what I can tell. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;FYI: The best .NET developer I know has a nice job over at Amazon.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-04T20:08:33.597" CommentCount="1" />
  <row Id="9445" PostTypeId="1" CreationDate="2010-10-04T20:21:22.373" Score="7" ViewCount="156" Body="&lt;p&gt;I started learning WF 3.0 back a few years ago and never quite got the hang of it.  Has anyone learned WF 4.0 (now that it has been rewritten)?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it a viable platform worth considering? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What alternatives exist?&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-06T18:12:17.187" LastActivityDate="2010-10-06T18:12:17.187" Title="How viable is &quot;Windows Workflow Foundation&quot;? What alternatives should I consider?" Tags="&lt;.net&gt;&lt;workflows&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="4" />
  <row Id="9446" PostTypeId="2" ParentId="9371" CreationDate="2010-10-04T20:26:05.930" Score="1" ViewCount="" Body="&lt;p&gt;Personally, in the past I've used Word Documents, but have resolved to find a tool in the future to manage this for me ... especially with the ability to set bugs to requirements, because a lot of the time, the bug is in the requirements, not the deviation between specs &amp;amp; implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's never even occurred to me to use a bug tracking tool, but it makes total sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Out of curiosity, what is it about it that you do not like?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: one caveat; tell your manager to rebrand the bug tracking software.  Otherwise everything in it is assumed to be a bug.  I had this political problem at my last client, where I put tasks in the bug tracker.  Not good.&lt;/p&gt;&#xA;" OwnerUserId="165" LastEditorUserId="165" LastEditorDisplayName="" LastEditDate="2010-10-04T20:31:56.753" LastActivityDate="2010-10-04T20:31:56.753" />
  <row Id="9447" PostTypeId="1" CreationDate="2010-10-04T20:36:19.883" Score="3" ViewCount="319" Body="&lt;p&gt;Functions are not only used to minimize duplication of code - they are also used to split up a long function into smaller ones to increase readability, as well as making the code self-commenting. Yet this gain is not directly inversely proportional to the number of LOCs per function or method; otherwise we would have tonnes of functions, all of which only contains a single line or two of code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This lead me to wonder: &lt;strong&gt;Does there exist an optimal number of LOCs per function? If so, what is it, and does it deviate between languages?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-05T06:10:46.477" Title="Is there an optimal number of lines of code per function?" Tags="&lt;functions&gt;" AnswerCount="5" CommentCount="9" FavoriteCount="1" />
  <row Id="9448" PostTypeId="2" ParentId="9445" CreationDate="2010-10-04T20:38:30.063" Score="1" ViewCount="" Body="&lt;p&gt;WF 4.0 is &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee342461.aspx&quot; rel=&quot;nofollow&quot;&gt;supposed to be a major improvement&lt;/a&gt; over WF 3.0&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/19314/alternatives-to-windows-workflow-foundation&quot;&gt;See here&lt;/a&gt; for some alternatives.  In particular, &lt;a href=&quot;http://code.google.com/p/stateless/&quot; rel=&quot;nofollow&quot;&gt;Stateless&lt;/a&gt; looks nice.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-10-04T20:38:30.063" />
  <row Id="9450" PostTypeId="2" ParentId="9447" CreationDate="2010-10-04T20:39:02.480" Score="5" ViewCount="" Body="&lt;p&gt;An old thumb rule is that a function should be entirely visible on screen, without the need of scrolling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The basic idea is that, if you can't look at the whole function at a time, the function is over complex, and you should split it in more basic pieces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While this rule is very practical and useful, the formal rule is that you should keep only a single logical step in a function. A function does just an elementary job, if you can divide the job in more elementary pieces, the function has to be split.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-10-04T20:39:02.480" CommentCount="5" />
  <row Id="9451" PostTypeId="2" ParentId="9447" CreationDate="2010-10-04T20:41:11.373" Score="0" ViewCount="" Body="&lt;h1&gt;There is none&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Screens are getting bigger, font sizes smaller. Rules of thumb don't work so well when people have different sized thumbs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be concise. If your function does multiple things it's probably a good idea to break it up into smaller ones. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-04T20:41:11.373" CommentCount="4" />
  <row Id="9452" PostTypeId="2" ParentId="9447" CreationDate="2010-10-04T20:42:44.500" Score="11" ViewCount="" Body="&lt;p&gt;Instead of number of lines, the criteria I would use is that each function should do only one thing and does it well.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-04T20:42:44.500" CommentCount="5" />
  <row Id="9453" PostTypeId="2" ParentId="9447" CreationDate="2010-10-04T20:43:48.103" Score="-1" ViewCount="" Body="&lt;p&gt;Always ask &quot;Is this &lt;a href=&quot;http://en.wikipedia.org/wiki/Loose_coupling&quot; rel=&quot;nofollow&quot;&gt;loosely coupled&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Cohesion_%28computer_science%29&quot; rel=&quot;nofollow&quot;&gt;highly cohesive&lt;/a&gt;&quot;&lt;/p&gt;&#xA;" OwnerUserId="1834" LastActivityDate="2010-10-04T20:43:48.103" CommentCount="5" />
  <row Id="9454" PostTypeId="2" ParentId="9409" CreationDate="2010-10-04T20:49:13.300" Score="14" ViewCount="" Body="&lt;p&gt;I interned at a financial firm my first year in college. At that job, I wore many hats: programmer, help desk, network admin. One day I had to hook up a printer for the secretary of the SVP of Investments. This SVP worked 15 blocks away and wanted the printer hooked up in a back room, 50 feet away from the secretary's desk. This was nearly 20 years ago, so wireless wasn't an option. To keep everything tidy and out-of-sight, I had to run serial cables into the ceiling, down the wall in the back room. Wires had to be spliced together. A faceplate had to put over the hole I punched into the wall. You get the idea. I finished the work and went back to my office.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At 5pm that evening, as I'm getting ready to leave for the day, I got an urgent phonecall from the secretary: &quot;The SVP just asked me to stay late, because she needs 20 copies of a 20-page report printed for a Board meeting tomorrow morning, but the printer you installed won't work. She wants to see you right away.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had to take the subway 15 blocks to SVP's office. Inside, the secretary was getting ready to leave, saying, &quot;Since the printer won't work, I guess there's no point in me staying late.&quot; With that, she left.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Now for the worst part&lt;/strong&gt;: the SVP walks up to me, gets right in my face and starts hurling profanities at me at the top of her lungs: &quot;Why you little 5#1t#3@d! Why the 9^ck did you leave us without a working printer? You g0dd@mm3d 9^ck1ng @55#073...&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was embarrassed and humiliated beyond belief, even though mostly everyone had gone home for the day by that time. But I kept my cool, and calmly asked her to pull up the document she was having trouble printing. I clicked the print key (Shift-F7), the print menu came up, and I hit &quot;1&quot; to print &quot;Full Document.&quot; I heard pages printing in the back room. Walked in, and there it was.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No problem after all. At that point, the SVP must have realized what I had guessed as soon as I got there: &lt;em&gt;This whole &quot;printer problem&quot; was just a ruse so the secretary wouldn't have to stay late&lt;/em&gt;, and wait for 400 pages to print.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(What did I learn from all this? The eternal truth: &quot;Hebel Hebelim...&quot; Translation: &quot;Absurdity of absurdities... Everything is absurd. What profit does man have in all his work for which he toils under the sun? (Qoheleth 1:2-3)&quot; All is absurdity, vanity, meaningless--hebel.)&lt;/p&gt;&#xA;" OwnerUserId="4128" LastEditorUserId="4128" LastEditorDisplayName="" LastEditDate="2010-10-04T22:36:37.987" LastActivityDate="2010-10-04T22:36:37.987" CommentCount="3" />
  <row Id="9455" PostTypeId="2" ParentId="9055" CreationDate="2010-10-04T20:51:23.403" Score="18" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Alan Kay&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Smalltalk-72 through Smalltalk-80.&lt;/li&gt;&#xA;&lt;li&gt;Overlapping windows.&lt;/li&gt;&#xA;&lt;li&gt;First personal computer, the Alto.&lt;/li&gt;&#xA;&lt;li&gt;The Dynabook, the conceptual basis of laptops and tablets.&lt;/li&gt;&#xA;&lt;li&gt;Namer of &quot;object-oriented programming&quot;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-04T20:51:23.403" CommunityOwnedDate="2010-10-04T20:51:23.403" CommentCount="2" />
  <row Id="9456" PostTypeId="2" ParentId="9371" CreationDate="2010-10-04T20:52:47.663" Score="3" ViewCount="" Body="&lt;p&gt;Using the bug-tracker for requirement management has a &lt;strong&gt;tendency to hide the lack of collaboration&lt;/strong&gt; and communication within the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without passing judgment on any particular method:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;if you're going to use waterfall, you need well-structured, accurate, multi-page documents (not one paragraph that many people typically type as a bug description).  These documents are also impossible to write and maintain at a decent level of quality if marketing/salespeople (who originate the requirements) don't work well together with the engineering staff.&lt;/li&gt;&#xA;&lt;li&gt;if you're going to use one of the agile methods, then one unit of requirements is a user story, represented by a story card.  The card itself is not a requirement, only a starting point of the conversation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;A (brief) experience of one of my past employers with using a bug-tracker for requirements was that it gave many people as very easy way to stop communicating completely.  People would simply write a wish, dump it in the bug-tracker, and assume it would eventually come true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course they did so without regard to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;their own qualifications&lt;/li&gt;&#xA;&lt;li&gt;their stake in the project&lt;/li&gt;&#xA;&lt;li&gt;conflicts with other requirements&lt;/li&gt;&#xA;&lt;li&gt;gaps in requirements&lt;/li&gt;&#xA;&lt;li&gt;costs&lt;/li&gt;&#xA;&lt;li&gt;any technical considerations&lt;/li&gt;&#xA;&lt;li&gt;etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-04T20:52:47.663" CommentCount="8" />
  <row Id="9457" PostTypeId="2" ParentId="1202" CreationDate="2010-10-04T20:56:52.467" Score="-2" ViewCount="" Body="&lt;p&gt;&lt;h1&gt;God&lt;/h1&gt; You gotta hand it to Him. He writes a pretty awesome while do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And it is well know that &lt;a href=&quot;http://www.youtube.com/watch?v=5-OjTPj7K54&quot; rel=&quot;nofollow&quot;&gt;God wrote in Lisp&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1973" LastEditorUserId="14372" LastEditorDisplayName="" LastEditDate="2011-02-26T16:57:23.473" LastActivityDate="2011-02-26T16:57:23.473" CommunityOwnedDate="2010-10-04T20:56:52.467" CommentCount="4" />
  <row Id="9458" PostTypeId="2" ParentId="9409" CreationDate="2010-10-04T21:01:36.557" Score="5" ViewCount="" Body="&lt;p&gt;The stupidest was a phone conversation back about 1993:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Me: So-and-so, Inc.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Lady: I'd like to buy a modem.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Me: Ma'am, I'm sorry, our company doesn't sell modems.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Lady: You're in the phone book under Computer Services.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Me: That's because we write computer software.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Lady: Well I don't understand why you're in Computer Services if you don't sell modems.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Me: The phone company insisted we have a Yellow Pages listing and put us there.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Lady: Well, you ought to sell modems.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The worst was a little complicated. Our company had had a very good relationship as developers for Company A, and a fast-talking entrepreneur I'll call JR was interested in selling their patented software into a new market. JR came to an agreement with company A to do some enhancements to the software, for which he'd pay my company directly. So we got the check, did the enhancements, the check cleared, the whole nine yards... and then JR decided a good way to put negotiating pressure on company A was to stop payment on his check to us. I'm not sure how this worked, since the check had cleared, but it managed to suck thousands out of our bank balance and we had to scramble to make payroll.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The guy always seemed shady, and I learned... trust my gut around things like that, and three-way agreements suck.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-10-04T21:01:36.557" CommentCount="4" />
  <row Id="9459" PostTypeId="2" ParentId="9385" CreationDate="2010-10-04T21:01:44.980" Score="2" ViewCount="" Body="&lt;p&gt;If you're using Eclipse, then you have &lt;a href=&quot;http://www.eclipse.org/mylyn/&quot; rel=&quot;nofollow&quot;&gt;Mylyn&lt;/a&gt; available. One of the key points of Mylyn is that you associate resources with a given task. When you're done coding, just deactivate the task. It will save the editors state and restore them once you reactivate the task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://img299.imageshack.us/img299/7075/featureguide30packageex.png&quot; alt=&quot;Package explorer&quot;&gt;&lt;img src=&quot;http://img839.imageshack.us/img839/1736/featureguide30focuseded.png&quot; alt=&quot;Collapsed editor&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See the &lt;a href=&quot;http://wiki.eclipse.org/index.php/Mylyn/User_Guide#Task-Focused_Interface&quot; rel=&quot;nofollow&quot;&gt;Mylyn user guide&lt;/a&gt; for more details.&lt;/p&gt;&#xA;" OwnerUserId="3937" LastActivityDate="2010-10-04T21:01:44.980" CommentCount="2" />
  <row Id="9461" PostTypeId="2" ParentId="2699" CreationDate="2010-10-04T21:12:45.160" Score="6" ViewCount="" Body="&lt;p&gt;Wow, good reading here!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My toughest was years back when Turbo Pascal was big, though it might have been one of the early C++ IDEs of that time.  As sole developer (and third guy in at this startup) I had written something like a simplified salesperson-friendly CAD program.  It was great at the time, but developed a nasty random crash.  It was impossible to reproduce, but happened frequently enough  that I set off on a bug hunt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My best strategy was to single-step in the debugger.  The bug happened only when the user had entered enough of a drawing and maybe had to be in a certain mode or zoom state, so there was a lot of tedious setting and clearing breakpoints, running normally for a minute to enter a drawing, and then step through a large chunk of code.  Especially helpful were breakpoints that would skip some adjustable number of times then break.  This whole exercise had to be repeated several times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually I narrowed it down to a place where a subroutine was being called, being given a 2 but from within it saw some gibberish number.  I could have caught this earlier, but had not stepped into this subroutine, assuming that it got what it was given.  Blinded by assuming the simplest of things were okay!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It turned out to be stuffing a 16 bit int on the stack, but the subroutine expecting 32-bit.  Or something like that.  The compiler did not automatically pad all value to 32 bit, or do sufficient type checking.    It was trivial to fix, just part of one line, hardly any thought required.  But to get there took three days of hunting and questioning the obvious. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I have personal experience with that anecdote about the pricey consultant comes in, after a while makes one tap somewhere, and charges $2000.  The executives demand a breakdown, and it's $1 for the tap, $1999 for knowing where to tap.   Except in my case, it was time not money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lessons learned:  1) use the best compilers, where &quot;best&quot; is defined as including checking for as many problems as computer science knows how to check for, and 2) question the simple obvious things, or at least verify their proper functioning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since then all difficult bugs have been truly difficult, as I know to check the simple things more thoroughly than seems necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lesson 2 also applies to the toughest electronics bug I ever fixed, also with a trivial fix, but several smart EEs had been stumped for months.  But this isn't an electronics forum, so I'll say no more of that.&lt;/p&gt;&#xA;" OwnerUserId="4280" LastActivityDate="2010-10-04T21:12:45.160" />
  <row Id="9462" PostTypeId="2" ParentId="9378" CreationDate="2010-10-04T21:25:34.857" Score="2" ViewCount="" Body="&lt;p&gt;Batch build is fundamentally broken for solutions containing dependent C++ projects. I have a project which builds 32 and 64 bit configurations, release and debug.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With Visual Studio 2008 I used to test a full clean build with batch build because switching to each configuration in turn was a pain; with Visual Studio 2010 this fails as it sometimes uses the currently selected configuration to link against instead of the currently being built configuration resulting in 'incompatible object file format' errors at link time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a known bug, but very irritating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft, in their infinite wisdom, have decided not to fix this problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;https://connect.microsoft.com/VisualStudio/feedback/details/554339/visual-studio-2010-bug-in-platformname-handling-in-batch-build&quot; rel=&quot;nofollow&quot;&gt;https://connect.microsoft.com/VisualStudio/feedback/details/554339/visual-studio-2010-bug-in-platformname-handling-in-batch-build&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;https://connect.microsoft.com/VisualStudio/feedback/details/556158/batch-build-links-to-wrong-referenced-projects&quot; rel=&quot;nofollow&quot;&gt;https://connect.microsoft.com/VisualStudio/feedback/details/556158/batch-build-links-to-wrong-referenced-projects&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4396" LastActivityDate="2010-10-04T21:25:34.857" CommunityOwnedDate="2011-02-02T16:35:27.803" />
  <row Id="9463" PostTypeId="2" ParentId="9308" CreationDate="2010-10-04T21:35:39.107" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.bitterminion.com/quickshift/&quot; rel=&quot;nofollow&quot;&gt;QuickShift&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, I'm totally biased because I wrote it, but I'm not a fan of a lot of the functionality included in programs like UltraMon. I'm not interested in extra taskbars, extra mouse-centric window buttons, etc. I just wanted a hotkey utility to move windows from one position to another. I also wanted something that would grab the two top-most windows from each of my monitors and swap them at the same time. So, for example, if I have my code window on my primary monitor and documentation on the other one I can easily swap them back and forth. I'm not sure if other such software includes a function for that, but I like mine better anyways because it's nice and minimalistic.&lt;/p&gt;&#xA;" OwnerUserId="4222" LastActivityDate="2010-10-04T21:35:39.107" />
  <row Id="9465" PostTypeId="1" CreationDate="2010-10-04T21:50:31.000" Score="6" ViewCount="220" Body="&lt;p&gt;What are the best tools to use when targeting Windows Azure? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't supposed to be a duplicate of general windows development tools mentioned &lt;a href=&quot;http://programmers.stackexchange.com/questions/1913/what-are-the-must-have-development-tools-for-windows&quot;&gt;here&lt;/a&gt;, but is rather more focused on Azure development:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Azure Web&lt;/strong&gt;   (Worker Roles and Web Roles)&lt;br/&gt;&#xA;&lt;strong&gt;Azure AppFabric&lt;/strong&gt;  (ACS, Service Bus)&lt;br/&gt;&#xA;&lt;strong&gt;Azure Storage&lt;/strong&gt; (Blob and table storage)&lt;br/&gt;&#xA;&lt;strong&gt;SQL Azure&lt;/strong&gt; &lt;br/&gt;&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-10-10T16:05:25.897" LastActivityDate="2011-04-17T15:20:27.617" Title="What tools do you use when working with Azure?" Tags="&lt;tools&gt;&lt;cloud&gt;&lt;azure&gt;&lt;table-storage&gt;" AnswerCount="7" CommentCount="4" FavoriteCount="3" />
  <row Id="9466" PostTypeId="1" CreationDate="2010-10-04T21:56:22.817" Score="7" ViewCount="252" Body="&lt;p&gt;What tools do you consider essential when developing for the Amazon cloud?  This could be any 3rd party (paid or open source) tool, or library when targeting the cloud.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Amazon EC2&lt;/strong&gt; (Compute Service)&lt;br/&gt;&#xA;&lt;strong&gt;Amazon S3&lt;/strong&gt; (Storage Service) &lt;br/&gt;&#xA;&lt;strong&gt;Amazon Simple DB&lt;/strong&gt;&lt;br/&gt;&#xA;&lt;strong&gt;Amazon Relational Database Service&lt;/strong&gt;&lt;br/&gt;&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2011-02-25T15:14:50.457" Title="What are the must have tools for Amazon Cloud development?" Tags="&lt;cloud&gt;&lt;amazon-ec2&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="5" />
  <row Id="9467" PostTypeId="2" ParentId="9378" CreationDate="2010-10-04T21:56:43.673" Score="12" ViewCount="" Body="&lt;p&gt;I've found a number of issues:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;It's memory hungry and prone to leaking. Over the last couple of weeks I've been converting a set of Silverlight projects to .NET 4 and Silverlight 4 and when compiling several times over a short period it would either generate out of memory errors or just fail.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It's also prone to crashing out, apparently at random when compiling. This could be related to the &quot;memory&quot; issues.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It takes a long time before you can edit when switching windows. This is particularly true of xaml files. The code window doesn't recognise keystrokes so you can't double click to highlight a word and then type to replace it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The XAML error display at design time is still not perfect. I'd make an edit (changing a reference to an assembly) and the code would appear to be OK, but on compiling it would generate errors. These errors would then be highlighted in the code window.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Compiling is slower than VS2008 and it seems to recompile code that hasn't been changed. I'd do &lt;code&gt;Ctrl&lt;/code&gt;+&lt;code&gt;Shift&lt;/code&gt;+&lt;code&gt;B&lt;/code&gt; to compile (because I wasn't 100% sure I'd got all the errors sorted) then when that succeeded do &lt;code&gt;F5&lt;/code&gt; to run the application - it would often recompile the code again before executing.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm hoping that there is an update soon before we roll VS2010 out across the team - otherwise we're going to have complaints.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I'm running on Windows XP SP3 with .NET 4 and SL 4 installed rather than Windows 7, so I don't know whether that has any bearing on the situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;A test on Windows 7 showed broadly similar build times, so it looks like the operating system doesn't matter.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;There's a registry entry you can set to disable Live IntelliSense for RIA Serivces (as described &lt;a href=&quot;http://forums.silverlight.net/forums/p/194611/458453.aspx&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; on the Silverlight Forums). Doing this seems to speed up the build times and improve the switching between windows. It's still not perfect though.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-10-26T12:44:21.557" LastActivityDate="2010-10-26T12:44:21.557" CommunityOwnedDate="2011-02-02T16:35:27.803" CommentCount="2" />
  <row Id="9468" PostTypeId="2" ParentId="8956" CreationDate="2010-10-04T22:04:46.517" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.neildavidson.com/&quot; rel=&quot;nofollow&quot;&gt;Neil Davidson&lt;/a&gt; wrote a free eBook called &lt;a href=&quot;http://blog.businessofsoftware.org/2009/10/dont-just-roll-the-dice-usefully-short-guide-to-software-pricing.html&quot; rel=&quot;nofollow&quot;&gt;Don't just roll the dice - a usefully short guide to software pricing&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-10-04T22:04:46.517" CommentCount="1" />
  <row Id="9469" PostTypeId="2" ParentId="9385" CreationDate="2010-10-04T22:07:00.753" Score="2" ViewCount="" Body="&lt;p&gt;I use the following:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#error Finish me.  When I left, I was trying to .....&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-10-04T22:07:00.753" CommentCount="1" />
  <row Id="9470" PostTypeId="2" ParentId="9320" CreationDate="2010-10-04T22:13:10.133" Score="5" ViewCount="" Body="&lt;p&gt;I believe the correct LISP answer is more gnomic. Something like: &lt;em&gt;&quot;If you have to ask, you are not ready.&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then if anyone questions further the correct answer is either &lt;em&gt;&quot;yes&quot;&lt;/em&gt; if it's an either/or question or &lt;em&gt;&quot;You are not ready.&quot;&lt;/em&gt; &lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-04T22:13:10.133" CommunityOwnedDate="2011-02-15T18:45:43.453" CommentCount="1" />
  <row Id="9471" PostTypeId="2" ParentId="9385" CreationDate="2010-10-04T22:18:43.290" Score="1" ViewCount="" Body="&lt;p&gt;We develop inside of VMs at work.  When I'm shutting down for the night, if there's a bunch of complicated details I know I'll have to remember to get back up to speed the next day/week, I generally just leave a highly visible comment in the middle of the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;//FIGURE OUT WHY THIS IS RAISING AN EXCEPTION WHEN THE SECOND ARGUMENT ISN'T AS EXPECTED!!!&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something like that.  I'll put details and hints in there, things that will help me remember what was going through my mind when I come back to it.  Then I highlight the comment with the cursor, put the VM into suspend mode so it'll come right back to it, and shut down the system.  That way, when I start up in the morning, my note-to-self is the first thing I see.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It works really well.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-04T22:18:43.290" />
  <row Id="9473" PostTypeId="2" ParentId="8966" CreationDate="2010-10-04T22:20:52.880" Score="0" ViewCount="" Body="&lt;p&gt;What language?  For Java, TestNG has an API for that.  For .NET, I think NUnit might.&lt;/p&gt;&#xA;" OwnerUserId="4445" LastActivityDate="2010-10-04T22:20:52.880" />
  <row Id="9474" PostTypeId="2" ParentId="9313" CreationDate="2010-10-04T22:32:23.263" Score="6" ViewCount="" Body="&lt;p&gt;In decimal, the number is 6830770643, which happens to be a prime number.  And in binary, it is a palindrome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That combination of facts seems unusual enough that I have a difficult time believing that a call &lt;em&gt;wasn't&lt;/em&gt; made to someone over in the Faculty of Mathematics building to suggest an interesting number.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Johnston does, after all, have unique access to a whole building devoted to mathematicians.  Specifically, the Faculty of Mathematics, at University of Waterloo  In particular, the Pure Mathematics department is all about discovering beautiful mathematical patterns.  They don't purely spend their days &quot;doing this,&quot; but it sure is the kind of thing I would expect of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prime numbers are certainly interesting, as they have been applied to such diverse purposes as cryptography (see RSA), hashing, generation of random numbers, and are used at the root of Godel's proof of incompleteness.  To a pure mathematician, if a number is prime, &lt;em&gt;that's interesting.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not impossible that there is some additional Cool Meaning to be found if one reassembles the bits in some other form.  (It would be neat if, in ASCII, it represented the date when some department or faculty at University of Waterloo opened.)  But &quot;palindromic prime&quot; is pretty sufficient to make it interesting, and Johnston has an easy walk over to a place where he can find a group of mathematicians capable of pulling that out of their hats.&lt;/p&gt;&#xA;" OwnerUserId="4447" LastActivityDate="2010-10-04T22:32:23.263" />
  <row Id="9476" PostTypeId="2" ParentId="8886" CreationDate="2010-10-04T22:38:17.573" Score="7" ViewCount="" Body="&lt;p&gt;I didn't finish High School and used to work as a Software Engineer for a small-sized company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I do freelance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like others suggested, apply at smaller shops where you can bypass those incompetent HR people.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Create open source programs, and at least some sort of website for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stay updated in all current technologies, challenge yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll definitely need to 'prove' yourself before attempting to get hired.  Beside that, I've been told I was a better developer than my fellow developers with college degrees.&lt;/p&gt;&#xA;" OwnerUserId="4451" LastActivityDate="2010-10-04T22:38:17.573" CommunityOwnedDate="2011-03-30T04:35:50.040" />
  <row Id="9477" PostTypeId="2" ParentId="9466" CreationDate="2010-10-04T22:39:09.567" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://developer.amazonwebservices.com/connect/entry.jspa?externalID=609&amp;amp;categoryID=88&quot; rel=&quot;nofollow&quot;&gt;ElasticFox&lt;/a&gt; plug-in for FireFox- Unless you just love working from the command line.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-04T22:39:09.567" />
  <row Id="9479" PostTypeId="2" ParentId="8090" CreationDate="2010-10-04T23:06:04.847" Score="4" ViewCount="" Body="&lt;p&gt;Take a look at &lt;a href=&quot;http://www.joelonsoftware.com/items/2007/10/26.html&quot; rel=&quot;nofollow&quot;&gt;evidence based scheduling&lt;/a&gt;.  Can really help you see how accurate your estimates are likely to be.&lt;/p&gt;&#xA;" OwnerUserId="3965" LastActivityDate="2010-10-04T23:06:04.847" CommentCount="1" />
  <row Id="9481" PostTypeId="1" AcceptedAnswerId="9494" CreationDate="2010-10-04T23:33:05.153" Score="20" ViewCount="537" Body="&lt;p&gt;Why does Software Engineering not have union representation like other professional occupations such as Teaching? Are there any that exist and are successful?&lt;/p&gt;&#xA;" OwnerUserId="4459" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2010-12-23T15:07:24.007" LastActivityDate="2010-12-23T16:15:57.387" Title="Software Engineering and Unions" Tags="&lt;software-engineering&gt;&lt;profession&gt;&lt;philosophy&gt;&lt;unions&gt;" AnswerCount="9" CommentCount="7" FavoriteCount="3" />
  <row Id="9482" PostTypeId="2" ParentId="9385" CreationDate="2010-10-04T23:41:27.860" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; One of the primary goals of the Mylyn (open source) and Tasktop Pro (supported) products is to reduce overhead for developers as they resume tasks and switch between tasks.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Details:&lt;/strong&gt; Imagine you are working on a task before you leave on Friday.  When you return on Monday you can reactivate that task using Mylyn or Tasktop Pro.  Reactivating the task causes several changes to your IDE that make it easier to resume your work.  Mylyn or Tasktop Pro updates your IDE by:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Showing only the files related to that task&lt;/strong&gt; - As you worked on the task on Friday Mylyn or Tasktop Pro was automatically tracking which files you worked with, called the &lt;em&gt;task context&lt;/em&gt;.  It uses the task context to repopulate all of your views, such as a file explorer or package explorer, with only the files that are relevant to the task.  Instead of struggling to remember the relevant files for that task you can begin working immediatly.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Recording notes on the task&lt;/strong&gt; - For each task there is a task editor.  This editor allows you to record information, such as notes, related to your task.  When you stop the task on Friday it is natural to make a few notes in the task editor (instead of a random file).  When you resume that task on Monday these notes jog your memory on where you left off.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Resources:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;This &lt;a href=&quot;http://tasktop.com/videos/1.6/setup/focus/&quot; rel=&quot;nofollow&quot;&gt;2 minute video&lt;/a&gt; provides several good examples of how to use Tasktop to switch between tasks. &lt;/li&gt;&#xA;&lt;li&gt;This &lt;a href=&quot;http://tasktop.com/blog/mylyn/how-to-task-focused-programming&quot; rel=&quot;nofollow&quot;&gt;task-focused blog entry&lt;/a&gt; explains how Mylyn and Tasktop Pro increase your productivity by helping you switch between tasks and resume old tasks.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;David Shepherd, Tasktop Technologies&lt;br&gt;&#xA;&lt;a href=&quot;http://www.twitter.com/davidcshepherd&quot; rel=&quot;nofollow&quot;&gt;http://www.twitter.com/davidcshepherd&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4448" LastActivityDate="2010-10-04T23:41:27.860" />
  <row Id="9483" PostTypeId="2" ParentId="8364" CreationDate="2010-10-04T23:43:13.993" Score="2" ViewCount="" Body="&lt;p&gt;If you’re working on the front-line of web development you’d realise you don’t have the luxury of choosing the best browser. Corporates don't pay you build websites and intranets to browsers you like. The facts are simple, Windows: IE, Firefox MAC: Safari, Firefox. You can't support every browser unless specified by the client. Time costs money thus you need to select the most popular browsers on the most popular platforms. If any web developer had a choice, would they seriously support IE? It’s a simple fact of economics; it’s got nothing do with which browser is better.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also Metropolis W3 School statistics are not a true representation of browser usage. W3 Schools visitors aren’t the general public, its techies. I’ve never seen a statistic before where Firefox is the number one browser? Obviously the general public have suddenly converted on mass to Firefox, interesting.&lt;/p&gt;&#xA;" OwnerUserId="4219" LastEditorUserId="4219" LastEditorDisplayName="" LastEditDate="2010-10-05T00:12:51.753" LastActivityDate="2010-10-05T00:12:51.753" CommentCount="1" />
  <row Id="9484" PostTypeId="2" ParentId="9385" CreationDate="2010-10-04T23:48:39.067" Score="1" ViewCount="" Body="&lt;p&gt;If find it helpful just to put the computer to sleep in a state where it's pretty obvious what you're working on - I usually have loads of tabs open during the day, but try to close everything except what I absolutely need to continue the next day. This is the same for your project solutions, just close all unnecessary files and set breakpoints where you're up to - they're ugly enough to draw attention to the place on the screen for me.&lt;/p&gt;&#xA;" OwnerUserId="4458" LastActivityDate="2010-10-04T23:48:39.067" CommentCount="1" />
  <row Id="9485" PostTypeId="2" ParentId="9406" CreationDate="2010-10-04T23:53:37.823" Score="4" ViewCount="" Body="&lt;p&gt;I personally prefer Perl, but to be honest Python has a really strong foothold and I don't think it's going to go away. Especially with large corporations such as Google going with it and such.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But of course, if you're going to look at Perl, you really have to look at Perl 6, which is drastically different than Perl 5; &lt;a href=&quot;http://perlgeek.de/en/article/5-to-6&quot; rel=&quot;nofollow&quot;&gt;obligatory link&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1294" LastActivityDate="2010-10-04T23:53:37.823" />
  <row Id="9486" PostTypeId="2" ParentId="9385" CreationDate="2010-10-05T00:00:34.463" Score="0" ViewCount="" Body="&lt;p&gt;I dont only do this monday morning but whenever i need to figure out whats next.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find the most simple and quickest change i can possible make. Right now, its making the test tags linkabout, actually before that i need to make it use proper tags first. I might have to modify lots of code to do that and yes this is what i am doing this moment and not a silly example i thought of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It works pretty well on any occasion.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-10-05T00:00:34.463" />
  <row Id="9487" PostTypeId="2" ParentId="9409" CreationDate="2010-10-05T00:04:56.480" Score="5" ViewCount="" Body="&lt;p&gt;When I was a civilian working as a computer salesman at the local Naval base’s Naval Exchange (Think: On-base department store) I was asked as favor by the store commander - hook up a new PC for the secretary of the commander of the Commissary next door (where the Commissary was the equivalent of a grocery store). No problem - I get everything hooked up, and leave. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The next day I get a panicked plea for help from the secretary - the machine isn't working! I head over to take a look, and on the screen are these words: &quot;KEYBOARD LOCKED. UNLOCK AND PRESS ANY KEY TO CONTINUE&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The keys were in the lock, on the front of the PC, which was on top of the desk with the monitor on top of it and the keyboard right in front of it. It hadn't been locked when I left it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I turned the key, pressed enter, and told her it was fixed. In fairness, she was just afraid that she'd broken something. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then there was the time, when I was in the Air Force, that I had to drive to the next base over to fix their PC, and found that someone had managed to plug in the VGA monitor cable upside down. Yes. Yes I know. Upside down. Totally mangled the &quot;D&quot; connecter to do it, too. &lt;/p&gt;&#xA;" OwnerUserId="4455" LastActivityDate="2010-10-05T00:04:56.480" CommentCount="2" />
  <row Id="9488" PostTypeId="2" ParentId="6067" CreationDate="2010-10-05T00:19:51.987" Score="4" ViewCount="" Body="&lt;h1&gt;Assembly&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Some people will think I'm nuts, but it seems like a great way to get into how computers work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe someday when I have time...&lt;/p&gt;&#xA;" OwnerUserId="1294" LastActivityDate="2010-10-05T00:19:51.987" CommunityOwnedDate="2010-10-05T00:19:51.987" CommentCount="2" />
  <row Id="9489" PostTypeId="2" ParentId="9409" CreationDate="2010-10-05T00:26:35.763" Score="5" ViewCount="" Body="&lt;p&gt;Many years ago I worked for a company that sold an upgraded system to a customer.  Part of that upgrade was an agreement to upgrade the version of Informix that the customer had, including making any tweaks to the client's programs written against the prior version of Informix.  The salesman didn't have a clue as to how much this could entail, and as such guessed at a flat-rate price to charge the customer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was not that experienced of a programmer at the time, but I wasn't too worried about updating the code (naively) because the client was a much worse programmer.  Most of the &quot;programs&quot; were really nothing more than extended scripts.  So I sit down to work, figuring it wasn't going to be too bad of a project, just tweak the programs to handle the differences between the versions.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is that once I started working on the project, every other program I encountered just wouldn't work, and I had to go through a lot of gyrations to get them working as expected. I thought I was losing it, and my crappy programming skills were getting the better of me.  I expected trouble because this &quot;flat rate&quot; project was taking much, much longer than expected. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally I stopped and admitted to the client all the troubles I was having. He just shrugged and stated that most of those programs he could never get working in the first place.  Not only that, he knew this going in and never bothered to tell the salesman, but he did hold the company to what was agreed, all programs upgraded and working. &lt;/p&gt;&#xA;" OwnerUserId="1642" LastActivityDate="2010-10-05T00:26:35.763" />
  <row Id="9490" PostTypeId="2" ParentId="9481" CreationDate="2010-10-05T00:30:14.170" Score="8" ViewCount="" Body="&lt;p&gt;Software Engineers don't like the restrictions on their freedom that unions bring about, and they tend to be more individualistic. They would like to get paid on their ability, not the same rate as every other developer.  If they were Union they'd be stuck where they were if they had the usual defined benefits plan, unlike a 401K that they can move around without penalty; and Software Engineers probably tend to have job changes more due to the nature of project work, with each project having the potential to be quite different that the others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once Software Engineering gets more ho-hum and standardized, then you'll probably see more Unions involved.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastEditorUserId="1842" LastEditorDisplayName="" LastEditDate="2010-10-05T00:38:01.093" LastActivityDate="2010-10-05T00:38:01.093" CommentCount="2" />
  <row Id="9491" PostTypeId="2" ParentId="9481" CreationDate="2010-10-05T00:31:06.453" Score="3" ViewCount="" Body="&lt;p&gt;Depends where you live - in Australia there is the &lt;a href=&quot;http://www.acs.org.au/&quot; rel=&quot;nofollow&quot;&gt;Australian Computer Society&lt;/a&gt;. When I was at Uni they talked to us about joining, but I don't really see the value in joining - from memory it was pretty pricey to be a part of. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you want to get out of the union?&lt;/p&gt;&#xA;" OwnerUserId="4458" LastActivityDate="2010-10-05T00:31:06.453" CommentCount="2" />
  <row Id="9492" PostTypeId="2" ParentId="9099" CreationDate="2010-10-05T00:34:43.123" Score="1" ViewCount="" Body="&lt;p&gt;My name is not unique, it's pretty much a 'John Smith' type name, so using that to search uniquely for me is pretty useless. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, my alias is unique (and I hope to keep it that way, 7 years and going strong), and given enough tech savvy, you can work out who I am anyway (not that that would get you very far, as my name is a dime a dozen). However, I like to think of my alias as a pointer to my real self. Before facebook, there was no pointer to this real me (apart from FB, no website holds my real name attached to my alias). I like to think that my alias is my name (and in several computer-related circles, it is) because it's unique in a world of johnsmithery.&lt;/p&gt;&#xA;" OwnerUserId="965" LastActivityDate="2010-10-05T00:34:43.123" CommentCount="2" />
  <row Id="9493" PostTypeId="2" ParentId="9481" CreationDate="2010-10-05T00:38:02.370" Score="1" ViewCount="" Body="&lt;p&gt;About the only &quot;professional&quot; job that's unionized, at least in the U.S., is teaching - and that's because they're public employees. Unions damage the companies they infest and make them uncompetitive - which harms the employees too.  Unless your employer is a monopoly (e.g. the government) or part of an oligopoly (e.g., the auto companies), the union can't actually improve wages or working conditions.  Programmers tend to be smart people, and see this. &lt;/p&gt;&#xA;" OwnerUserId="4463" LastActivityDate="2010-10-05T00:38:02.370" CommentCount="3" />
  <row Id="9494" PostTypeId="2" ParentId="9481" CreationDate="2010-10-05T00:47:40.547" Score="21" ViewCount="" Body="&lt;p&gt;Unions are useful when one person can pretty much do the same job as anybody else with little or no training. By allowing employees to negotiate as a whole, you don't run the risk of employers simply finding the person who'll work the cheapest and driving wages down. (At least, that's the theory.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For professional fields, when employees require particular skills and you simply can't replace one engineer with someone else with no &quot;penalty&quot;. As an engineer, you have much more power to negotiate wages and working conditions &lt;em&gt;on your own&lt;/em&gt;, based on your own skills and knowledge.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-05T00:47:40.547" CommentCount="5" />
  <row Id="9495" PostTypeId="2" ParentId="8364" CreationDate="2010-10-05T00:52:30.723" Score="1" ViewCount="" Body="&lt;p&gt;Opera, Chrome and IE 8+ all have good development tools built in to them; I think that the days of saying that Firefox is the best because of Firebug are mainly over.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Firefox still does have the most mature eco system of extensions. I do most of my development in Google Chrome nowadays, but there are still a few tasks, like managing Amazon servers via ElasticFox, that I find myself doing in Firefox. (Chrome's catching up on the extension front; Opera and IE still lag behind.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, a comment on some of the other answers: there's a big difference between the browsers you test in and the browser you spend time in when you're developing. You should absolutely be doing testing and QA in every browser that you possibly can (I have a virtual machine or two running with various versions of various browsers installed). But there's no reason to be masochistic and spend your time developing in a browser that you don't like; if you find yourself running into too many surprises when testing, you probably need to improve your code, rather than switch the browser you're developing with. &lt;/p&gt;&#xA;" OwnerUserId="2162" LastActivityDate="2010-10-05T00:52:30.723" />
  <row Id="9496" PostTypeId="2" ParentId="8090" CreationDate="2010-10-05T00:56:52.983" Score="0" ViewCount="" Body="&lt;p&gt;We do estimates with an &quot;uncertainty&quot; factor, rather than trying to estimate with &quot;+/-&quot; factors. Programmers can easily tell you how long something will take &quot;assuming nothing goes wrong&quot;. What they can't easily tell you is how much longer it will take if something DOES go wrong. So we add an uncertainty factor - &quot;L&quot; means &quot;add 25%&quot; - &quot;M&quot; means &quot;add 50%&quot;, and &quot;H&quot; means &quot;add 100%- could double&quot;. The real time tends to be between the estimated time and the estimate plus uncertainty time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as TRACKING your time, the most accurate method is to write a program that pops up a dialog box every minute and asks you &quot;what are you doing?&quot;, with a drop down list box of possible tasks. The only entry you really need in that drop down list box is &quot;tracking time&quot;, because if you're interrupted every minute, you'll never actually get anything else done.  The same principle applies to 15 minute intervals too, just not as bad.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What we do is run a little program that lets us add tasks to a list, and select which one we're working on, letting it add up the time. If we forget to move the selector to the right task, the totals are editable. Anything not in one of the rows goes to &quot;misc&quot;.  It's not totally accurate, but total accuracy is less important than getting flow time.&lt;/p&gt;&#xA;" OwnerUserId="4463" LastActivityDate="2010-10-05T00:56:52.983" />
  <row Id="9497" PostTypeId="2" ParentId="2757" CreationDate="2010-10-05T01:18:32.253" Score="0" ViewCount="" Body="&lt;p&gt;3 monitors: center monitor vertical, side monitors horizontal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use the center one for the IDE I'm currently working with, the other monitors for other IDE instances, e-mail client, web/help pages, and to run application I'm testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest advantage is running the debugger in a separate screen from the application you're attached to.&lt;/p&gt;&#xA;" OwnerUserId="831" LastActivityDate="2010-10-05T01:18:32.253" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="9498" PostTypeId="1" CreationDate="2010-10-05T01:20:07.647" Score="15" ViewCount="1505" Body="&lt;p&gt;I'm looking at evaluating ORMs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've used SubSonic, Linq-to-SQL and Entity Framework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is best suited to SQL Server environment is light-weight and easy to use. I've got a &#xA;team of developers ranging from juniors to seniors. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any advice would be much appreciated&lt;/p&gt;&#xA;" OwnerUserId="4219" LastActivityDate="2011-04-01T10:39:09.230" Title="What is the best ORM for .NET ?" Tags="&lt;.net&gt;&lt;orm&gt;" AnswerCount="14" CommentCount="5" FavoriteCount="10" />
  <row Id="9499" PostTypeId="2" ParentId="9371" CreationDate="2010-10-05T01:20:12.260" Score="1" ViewCount="" Body="&lt;p&gt;I wrote a requirements database 6 or 7 years ago to handle this. Each requirement record has a short description, a &quot;definition&quot; memo, and a &quot;notes&quot; memo (both rich text, with ability to embed screen shots, etc). There are other fields too, for project, deliverable, sequence number (so they can be ordered logically), use-case/feature it's related to, time estimate, a field for the person handling it, if someone has selected it for implementation, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also a &quot;Status&quot; - &quot;Entered&quot;, for while we're designing the features; &quot;Approved&quot;, set once a group of requirements are reviewed and determined to be ready to implement; &quot;Implemented&quot;, set by the programmer once they think the requirement is done, and &quot;Validated&quot; once the QA tech agrees with the programmer. (If the QA tech disagrees, he can set it back to &quot;Approved&quot; so the programmer gets it back.) Requirements can also be &quot;Deferred&quot;, &quot;Rejected&quot; or &quot;Questioned&quot; (meaning the Change Control Board needs to look at it.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The trick to doing this well is reasonable granularity. It can sometimes make sense to have one sentence requirements (e.g. &quot;the problem described in issue 12345 is fixed&quot;), but in general, requirements should describe all the important aspects of a whole feature (or a big chunk of one). For example, a typical &quot;new report&quot; feature will have a requirement for a report format (what the output looks like), and a requirement for the options dialog (explaining the fields, validation, etc.) There might even be a third if there's a complex generator crunching the data, rather than just an easy query or something.  In addition, we'll create a &quot;Help&quot; requirement for the corresponding help topic. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are huge advantages of keeping this stuff in database records rather than a big document. Multiple programmers can be working on requirements at the same time. Individual records are locked so only one person can edit at a time, but they can be opened and read while somebody else is editing. The biggest advantage though is that it provides easy to search documentation of both what the requirements were, and notes about how they were implemented. We have over 25,000 requirements in there now, and we can easily find all the requirements with specific words in all the fields, or the definition, or notes, or whatever, in under 10 seconds. (Try that with 6+ years worth of Word documents.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can see why people might say it's a bad idea to do requirements in a &quot;bug tracker&quot;, but my guess is that's because the tools suck, not because keeping requirements in a searchable database is a bad idea. &lt;/p&gt;&#xA;" OwnerUserId="4463" LastActivityDate="2010-10-05T01:20:12.260" />
  <row Id="9500" PostTypeId="2" ParentId="2757" CreationDate="2010-10-05T01:27:09.750" Score="0" ViewCount="" Body="&lt;p&gt;At work; I generally use a 15&quot; laptop (1366x1024)  next to a 24&quot; 1980x1200 on desktop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The laptop runs XP and generally runs outlook+documentation; sometimes a putty window/db browser/vic, the desktop generally running ubuntu where the real work happens.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use Synergy+ to control everything from desktop keyboard/trackball.  works well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At home; I use a 27&quot;1920x1080 next to a 17&quot; 1280x1024 lcd, both plugged into desktop. Gaming on left; everything else on right. (Generally a terminal for irc/etc).&lt;/p&gt;&#xA;" OwnerUserId="4464" LastActivityDate="2010-10-05T01:27:09.750" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="9501" PostTypeId="2" ParentId="9403" CreationDate="2010-10-05T01:32:14.847" Score="0" ViewCount="" Body="&lt;p&gt;I have three 24&quot; 1920x1080 monitors. They're all in landscape, on an old monitor arm built for 80 pound CRTs customized to hold them. The result gives me a &quot;wrap around&quot; screen that covers about 120 degrees of visual field - basically &quot;monitor everywhere&quot;.  An older version of my setup (back when it was 3 17&quot; 1280x1024 displays) is at &lt;a href=&quot;http://www.drbsystems.com/public/about/tour/tour20.cfm&quot; rel=&quot;nofollow&quot;&gt;http://www.drbsystems.com/public/about/tour/tour20.cfm&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4463" LastActivityDate="2010-10-05T01:32:14.847" />
  <row Id="9502" PostTypeId="2" ParentId="9498" CreationDate="2010-10-05T01:34:58.203" Score="-1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://capableobjects.com/&quot; rel=&quot;nofollow&quot;&gt;ECO&lt;/a&gt; :) It is much more than an ORM while including state machines and executable OCL (namely EAL) supports. There exists a free version with a 12 domain classes limitation which I think should be pretty neat for small projects.&lt;/p&gt;&#xA;" OwnerUserId="4465" LastEditorUserId="4465" LastEditorDisplayName="" LastEditDate="2010-10-05T07:53:13.573" LastActivityDate="2010-10-05T07:53:13.573" CommentCount="1" />
  <row Id="9503" PostTypeId="1" CreationDate="2010-10-05T01:40:01.190" Score="1" ViewCount="123" Body="&lt;p&gt;When you need to learn a framework, what steps do you take to learning it? Do you have a specific methodology to learning a framework?&lt;/p&gt;&#xA;" LastActivityDate="2010-10-05T12:14:40.793" Title="How do you approach learning a framework?" Tags="&lt;learning&gt;&lt;frameworks&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="9504" PostTypeId="2" ParentId="9385" CreationDate="2010-10-05T01:44:08.773" Score="0" ViewCount="" Body="&lt;p&gt;I use a virtual machine. I can suspend the virtual machine anytime and I will be back to where I left off without needing to save anything, re-open anything, etc. I can toggle between work vs. non-work on the same machine anytime and preserve as much state on the work mode.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-05T01:44:08.773" CommentCount="1" />
  <row Id="9505" PostTypeId="2" ParentId="9503" CreationDate="2010-10-05T01:50:12.060" Score="2" ViewCount="" Body="&lt;p&gt;&quot;Effectively and quickly learn&quot; are words that do not go together.  You can learn quickly or you can learn well, but your brain really isn't built to do both, in most cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, when I want to learn a new technology, I learn by trying to build something difficult in it, something that will force me to explore and research, learn the idioms, and find my way around the dark corners.  There are probably other ways that work too, but that's what's been the most effective for me.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-05T01:50:12.060" CommentCount="1" />
  <row Id="9506" PostTypeId="1" CreationDate="2010-10-05T02:00:55.220" Score="10" ViewCount="308" Body="&lt;p&gt;I'm a student at the University and I'm taking the Data Structures class. When learning linked lists and doubly linked lists, did you guys feel you learned a deeper understanding of pointers, dynamic memory allocation, and memory usage? I just created my first linked list(it was actually a doubly linked list) and it seemed to me like a real eye opener. Your thoughts?&lt;/p&gt;&#xA;" OwnerUserId="4470" LastActivityDate="2010-12-01T13:09:03.460" Title="Did anyone else get a deeper understanding about pointers when learning linked lists?" Tags="&lt;learning&gt;&lt;pointers&gt;" AnswerCount="9" CommentCount="2" FavoriteCount="2" />
  <row Id="9507" PostTypeId="2" ParentId="9506" CreationDate="2010-10-05T02:04:34.223" Score="1" ViewCount="" Body="&lt;p&gt;Not particularly.  By the time I got to a formal Data Structures class in college and started learning stuff like linked lists, I'd already been hacking around with pointers in Pascal and C for several years, so I already had a feel for how they work.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-05T02:04:34.223" />
  <row Id="9508" PostTypeId="2" ParentId="9506" CreationDate="2010-10-05T02:08:07.017" Score="7" ViewCount="" Body="&lt;p&gt;Pointers really clicked for me when I was working with the Quake 3 source which was written in C. I don't believe the specific task that you used to learn pointers &lt;em&gt;(or anything)&lt;/em&gt; really matters. Simply by using pointers and trying to understand them it will eventually click. &lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-10-05T02:08:07.017" CommentCount="1" />
  <row Id="9509" PostTypeId="1" CreationDate="2010-10-05T02:13:13.757" Score="4" ViewCount="117" Body="&lt;p&gt;Is it possible to tell if any given framework is the 'next big' framework?  At the time, were there signs that Spring would be good?  Or ExtJS/Sencha?  Or ruby/rails?&lt;/p&gt;&#xA;" OwnerUserId="4469" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2010-10-05T02:24:40.377" LastActivityDate="2010-10-05T02:33:28.460" Title="Possible to tell if a framework will be popular?" Tags="&lt;frameworks&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="1" />
  <row Id="9510" PostTypeId="2" ParentId="9498" CreationDate="2010-10-05T02:24:44.667" Score="11" ViewCount="" Body="&lt;p&gt;I'm using &lt;a href=&quot;http://nhforge.org&quot; rel=&quot;nofollow&quot;&gt;NHibernate&lt;/a&gt; and have found it pretty good. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my case, linked to an MS Sql database, but you can connect to other databases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It doesn't take long to get up and running - just map your object to the model - I use an xml file but you can do it fluently in code. There's a great community, and personally I have found &lt;a href=&quot;http://ayende.com/&quot; rel=&quot;nofollow&quot;&gt;Ayende's&lt;/a&gt; work to be very helpful - I use NHProf which is an sql profiling tool. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mostly use the out of the box functions - straight object mapping, but I've also use the Hibernate Query Language, which is pretty easy to get a hold of. &lt;/p&gt;&#xA;" OwnerUserId="4458" LastActivityDate="2010-10-05T02:24:44.667" CommentCount="6" />
  <row Id="9511" PostTypeId="2" ParentId="9509" CreationDate="2010-10-05T02:32:53.450" Score="0" ViewCount="" Body="&lt;p&gt;Try a crystal ball, or maybe some tarot cards.  Languages and frameworks become popular (or fail to) for a large number of reasons, and a lot of them are political or social rather than technical in nature, so it's very difficult to predict the winners and the losers with any degree of accuracy.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-05T02:32:53.450" />
  <row Id="9512" PostTypeId="2" ParentId="9509" CreationDate="2010-10-05T02:33:09.380" Score="1" ViewCount="" Body="&lt;p&gt;One good way to foresee this is to look at which technologies startups are adopting. They're usually ahead of the curve. Also, influential bloggers' opinion can have an impact.&lt;/p&gt;&#xA;" OwnerUserId="2100" LastActivityDate="2010-10-05T02:33:09.380" />
  <row Id="9513" PostTypeId="2" ParentId="9509" CreationDate="2010-10-05T02:33:28.460" Score="7" ViewCount="" Body="&lt;p&gt;There's no real way to 100% predict what will be the next big thing, but there are three flags that when seen together can be a good indication:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It solves a problem.&lt;/li&gt;&#xA;&lt;li&gt;It's easier to use than the current method of solving the problem.&lt;/li&gt;&#xA;&lt;li&gt;It has good marketing (website, community, catchy name, easy to get/install/tell and show others).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Typically when those three things combine, it's going to be big in whatever space makes sense for it.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-05T02:33:28.460" CommentCount="1" />
  <row Id="9514" PostTypeId="2" ParentId="9481" CreationDate="2010-10-05T02:40:03.827" Score="15" ViewCount="" Body="&lt;p&gt;Somewhat akin to the other answers, but the classic &quot;professional&quot; roles in society (doctor, lawyer, engineer, etc.) have not been unionized. The working class banded together into unions to oppose heavy-handed treatment by management and owners. By collectively demanding a change in their working conditions they were effective where a single person could not be. After the basics were covered (and indeed became the law of the land) the union leadership had to be seen to be doing something of value, other than drawing salaries out of the union dues. This led them to continue to demand more and more concessions from the management and owners, backing up the demands with strike actions when they were not met. Professionals never really dealt with the same issues and there was little or no benefit to joining a union. For creative professionals like software developers the rigid rules of a union where your time in the union counts for more than your skill is anathema to how they want to work. The strongest performers are the most likely to avoid a union; the weaker performers are usually for it because they can hide in the crowd and are guaranteed a minimum employment. Software developers are generally better educated than the average working class person and will ask hard questions like &quot;What do I get in return for my union dues and the restrictions on what I can do?&quot; and if the answers are not compelling they will not sign on.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-10-05T02:40:03.827" CommentCount="6" />
  <row Id="9515" PostTypeId="2" ParentId="1202" CreationDate="2010-10-05T02:41:29.927" Score="5" ViewCount="" Body="&lt;h1&gt;&lt;strong&gt;Alonzo Church&lt;/strong&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Lambda calculus, the Church-Turing thesis... there doesn't need to be an 'after Turing' when it comes to Church.&lt;/p&gt;&#xA;" OwnerUserId="1313" LastActivityDate="2010-10-05T02:41:29.927" CommunityOwnedDate="2010-10-05T02:41:29.927" />
  <row Id="9516" PostTypeId="2" ParentId="9506" CreationDate="2010-10-05T02:56:48.587" Score="4" ViewCount="" Body="&lt;p&gt;I thought that I did until I took my first assembly programming language class.  The different addressing modes really made it click for me.  I didn't gain a deeper understanding until reading &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131774298&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;&quot;Expert C Programming: Deep C Secrets&quot;&lt;/em&gt; by Peter van der Linden&lt;/a&gt;.  After you read your way through the whole book (chapters 4, 7, 9, and 10 in particular), you will have a complete understanding.  This book is pretty much the &lt;em&gt;Jedi Knight training course&lt;/em&gt; for C programmers.&lt;/p&gt;&#xA;" OwnerUserId="3042" LastActivityDate="2010-10-05T02:56:48.587" CommentCount="1" />
  <row Id="9517" PostTypeId="2" ParentId="9498" CreationDate="2010-10-05T03:03:22.060" Score="4" ViewCount="" Body="&lt;p&gt;Sadly, in my last three jobs, we had three home-grown ORMs.  In each case, they mostly sucked for varying reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have recently been evaluating &lt;a href=&quot;http://msdn.microsoft.com/en-us/data/aa937723.aspx&quot; rel=&quot;nofollow&quot;&gt;Entity Framework 4&lt;/a&gt; and its POCO support (a nice walkthrough is &lt;a href=&quot;http://thedatafarm.com/blog/data-access/agile-entity-framework-4-repository-part-1-model-and-poco-classes/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;) and am really impressed at how nicely it stays out of my face and makes me feel like I'm programming again rather than herding data.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-10-05T03:03:22.060" CommentCount="2" />
  <row Id="9518" PostTypeId="2" ParentId="500" CreationDate="2010-10-05T03:23:20.477" Score="10" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://collaboration.csc.ncsu.edu/laurie/Papers/ESE%20WilliamsPairProgramming_V2.pdf&quot; rel=&quot;nofollow&quot;&gt;Research compiled by Laurie Williams&lt;/a&gt; indicates that pair programming works best on industrial teams when&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Pairs work on specification, design, and &lt;em&gt;complex&lt;/em&gt; programming tasks&lt;/strong&gt; - experiments indicate that no quality improvement is shown when working on simple tasks in a pair but there may be speed improvements.  Also note that pair &quot;programming&quot; often includes activities other than writing code.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Each individual in a pairing has about the same level of expertise&lt;/strong&gt; - while pair programming is great for training, pairs are most engaged when they are about on the same level.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Roles rotate regularly&lt;/strong&gt; - rotating regularly helps keep the current copilot engaged as individuals tend to contribute most when they drive or sense they are about to drive.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Pairs rotate regularly&lt;/strong&gt; - teams have expressed comfort in knowing about different parts of the system they are building.  Pair rotation helps with knowledge transfer which reduces certain risks in the project.  In an academic setting pairs are often assigned, however industry they are generally self-assigned often during stand-ups.  In both cases, &lt;strong&gt;the pair is most effective when both individuals are willing participants who see value in the pairing activity.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In my personal experience I've found that my XP team spends about 60% of our development time pair programming on average.  The remainder of the time is spent doing individual development.  It is not uncommon to pair up to create an initial design, work alone on the design for a few hours, then come back together to finish tricky or difficult parts of the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also found that pair programming is most effective in approximately 1.5 to 2.5 hour blocks.  Anything much less tends to require too much overhead to setup while much more and the pairs tend to get cranky and tired.  Cranky and tired means you're not communicating well and might be letting defects slip into the system.&lt;/p&gt;&#xA;" OwnerUserId="3966" LastEditorUserId="38" LastEditorDisplayName="" LastEditDate="2011-03-18T18:37:00.490" LastActivityDate="2011-03-18T18:37:00.490" CommentCount="5" />
  <row Id="9519" PostTypeId="2" ParentId="9432" CreationDate="2010-10-05T03:50:46.773" Score="0" ViewCount="" Body="&lt;p&gt;You might try convincing them that whether you spend the time looking for the solution, or they hire someone else, they are still spending the money to get a solution. It's not an easy, or quick, sell but they seem to not understand that. I worked for an employer with a similar issue although from a different cause. Their cause was lack of spending time on improving the framework. The end result is the same in either example.&lt;/p&gt;&#xA;" OwnerUserId="4478" LastActivityDate="2010-10-05T03:50:46.773" CommunityOwnedDate="2010-10-05T03:50:46.773" CommentCount="1" />
  <row Id="9521" PostTypeId="1" AcceptedAnswerId="9529" CreationDate="2010-10-05T04:39:59.513" Score="4" ViewCount="586" Body="&lt;p&gt;Imagine you were elected coroner of IEEE or somesuch governing body and you had to pronounce a programming language as dead.  What signs would you look for?  Are there any zombie languages out there that don't know they're already dead?&lt;/p&gt;&#xA;" OwnerUserId="1973" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-10-05T11:58:14.983" LastActivityDate="2010-11-16T04:22:32.257" Title="What constitutes a dead programming language?" Tags="&lt;holy-war&gt;&lt;languages&gt;" AnswerCount="7" CommentCount="6" FavoriteCount="1" />
  <row Id="9522" PostTypeId="2" ParentId="9498" CreationDate="2010-10-05T04:41:29.497" Score="1" ViewCount="" Body="&lt;p&gt;I would advise you to have a look at &lt;a href=&quot;http://www.devexpress.com/Products/NET/ORM/&quot; rel=&quot;nofollow&quot;&gt;DevExpress XPO&lt;/a&gt;. This along with &lt;a href=&quot;http://www.devexpress.com/Products/Index/frameworks.xml&quot; rel=&quot;nofollow&quot;&gt;DevExpress XAF&lt;/a&gt; will make life of any developer easy once its learning curve is crossed.&lt;/p&gt;&#xA;" OwnerUserId="4481" LastEditorUserId="4481" LastEditorDisplayName="" LastEditDate="2010-10-07T04:47:06.940" LastActivityDate="2010-10-07T04:47:06.940" CommentCount="6" />
  <row Id="9524" PostTypeId="2" ParentId="9351" CreationDate="2010-10-05T04:52:57.770" Score="0" ViewCount="" Body="&lt;p&gt;I don't know of others but I use VBScript to Automate Adobe Photoshop and it works like a charm. We have build a commercial application that will help users in correcting images/photos at a click of a button.&lt;/p&gt;&#xA;" OwnerUserId="4481" LastActivityDate="2010-10-05T04:52:57.770" />
  <row Id="9527" PostTypeId="2" ParentId="9506" CreationDate="2010-10-05T05:04:06.997" Score="1" ViewCount="" Body="&lt;p&gt;Pointers still have yet to click for me. I know what they are, and I know how they're used but I've had to have that &quot;AH HA!&quot; moment with them... &lt;em&gt;sigh&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="1834" LastActivityDate="2010-10-05T05:04:06.997" CommentCount="1" />
  <row Id="9528" PostTypeId="2" ParentId="1599" CreationDate="2010-10-05T05:04:38.890" Score="6" ViewCount="" Body="&lt;p&gt;I have a few...&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I tried to object-orient my sex life. &lt;/li&gt;&#xA;&lt;li&gt;Assuming people are as logical as computers.&lt;/li&gt;&#xA;&lt;li&gt;Expecting people to compile my instructions and check for errors before blindly interpreting them. (Java)&lt;/li&gt;&#xA;&lt;li&gt;I now use indents instead of rich text. (Python)&lt;/li&gt;&#xA;&lt;li&gt;Failing to see the benefit of a Word processor when I can use Markdown. (Stack overflow)&lt;/li&gt;&#xA;&lt;li&gt;Thinking how cool I'm multi-threading when I can cook three things at once.&lt;/li&gt;&#xA;&lt;li&gt;When asked &quot;Cash or Credit&quot; I say &quot;True.&quot;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-05T05:04:38.890" CommunityOwnedDate="2010-10-05T05:04:38.890" CommentCount="3" />
  <row Id="9529" PostTypeId="2" ParentId="9521" CreationDate="2010-10-05T05:19:30.600" Score="15" ViewCount="" Body="&lt;p&gt;Computer languages never die; they only turn from overhyped to underused. Someone will always re-discover an old language and learn it, just for the fun of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Addendum:&lt;/strong&gt; Those people who like older languages sometimes write a new language inspired by it. So even if the original language is dead by some people's terms, its spirit continues to live on in its descendants. Some examples include:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;B and BCPL inspired C&lt;/li&gt;&#xA;&lt;li&gt;SNOBOL inspired Icon&lt;/li&gt;&#xA;&lt;li&gt;Algol inspired too many languages to count&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1303" LastEditorUserId="1303" LastEditorDisplayName="" LastEditDate="2010-10-05T06:14:22.200" LastActivityDate="2010-10-05T06:14:22.200" CommentCount="2" />
  <row Id="9531" PostTypeId="2" ParentId="9498" CreationDate="2010-10-05T05:34:17.727" Score="19" ViewCount="" Body="&lt;p&gt;It's a loaded question.&lt;br&gt;&#xA;There are lots of very good ORMs approaching the subject with different philosophies.&lt;br&gt;&#xA;None are perfect through and all tend to become complex as soon as you stray from their golden path (and sometimes even when you stick to it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you should ask yourself when selecting an ORM:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;What does it need to do for you?&lt;/strong&gt;&lt;br&gt;&#xA;If you already have a set of requirements for your application, then you should select the ORM that better matches these rather than an hypothetical 'best'.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Is your data shared or just local?&lt;/strong&gt;&lt;br&gt;&#xA;A lot of the hairiness in ORM is caused by how they handle concurrency and changes to the data in the database when multiple users are holding a versions of the same data.&lt;br&gt;&#xA;If your datastore is for a single-user, then most ORMs will do a good job. However, ask yourself some hard questions in a multi-user scenario: how is locking handled? What happens when I delete an object? How does it affects other related objects? Is the ORM working close to the metal of the backend or is it caching a lot of data (improving performance at the expense of increasing the risk of staleness).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Is the ORM well adapted for your type of application?&lt;/strong&gt;&#xA;A particular ORM may be hard to work with (lots of performance overhead, hard to code) if it's a used in a service or sitting inside a web app. It may on the contrary be great for desktop apps.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Do you have to give up database-specific enhancements?&lt;/strong&gt;&lt;br&gt;&#xA;ORMs tend to use the lowest-common denominator set of SQL to ensure they work with lots of different database backend.&lt;br&gt;&#xA;All ORMs will compromise on available features (unless they specifically target a single backend) but some will allow you to implement additional behaviours to exploit specific enhancements available in your chosen backend.&lt;br&gt;&#xA;A typical db-specific enhancement is Full-Text search capabilities for instance; make sure your ORM provides you with a way to access these features if you need them.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;How does the ORM manages changes in the data model?&lt;/strong&gt;&lt;br&gt;&#xA;Some can update the DB automatically within a certain measure, other don't do anything and you'll have to do the dirty work yourself; other provide a framework for handling change that lets you control database updates.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Do your mind to couple your application to the ORM's objects or do you prefer to handle POCOs and user an adapter for persistence?&lt;/strong&gt;&lt;br&gt;&#xA;The former is usually simple to handle but create dependencies on your ORM-specific data objects everywhere, the latter is more flexible, at the cost of a bit more code.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Will you ever need to transfer your objects remotely?&lt;/strong&gt;&lt;br&gt;&#xA;Not all ORMs are equal when it comes to fetching objects from a remote server, look closely at what is possible or impossible to do. Some are efficient, others not.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Is there someone you can turn to for help?&lt;/strong&gt;&lt;br&gt;&#xA;Is there good commercial support? How big and active is the community around the project?&lt;br&gt;&#xA;What are the issues existing users are having with the product?&lt;br&gt;&#xA;Do they get quick solutions?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;A few ORMs that I looked at:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.devexpress.com/Products/NET/ORM/&quot; rel=&quot;nofollow&quot;&gt;XPO&lt;/a&gt;&lt;br&gt;&#xA;From developer Express: is small and simple, code-centric. They use it for their application framework &lt;a href=&quot;http://www.devexpress.com/Products/NET/Application_Framework/&quot; rel=&quot;nofollow&quot;&gt;eXpressApp&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://nhforge.org/&quot; rel=&quot;nofollow&quot;&gt;NHibernate&lt;/a&gt;&lt;br&gt;&#xA;Is free, but the learning curve is rather steep. Lots of goodies but it's hard to find what is really relevant sometimes in all the fragmented documentation.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.llblgen.com&quot; rel=&quot;nofollow&quot;&gt;LLBLGen Pro&lt;/a&gt;&lt;br&gt;&#xA;very mature project, not the simplest but a lot of thought has been put into it.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/data/aa937723.aspx&quot; rel=&quot;nofollow&quot;&gt;Entity Framework&lt;/a&gt;&lt;br&gt;&#xA;Still a bit early IMHO. It's promising, but there are some basic stuff that other ORMs provide that are just now being tackled (auto-generating DB from code for instance).&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://x-tensive.com/Products/DO/&quot; rel=&quot;nofollow&quot;&gt;DataObject.Net&lt;/a&gt;&lt;br&gt;&#xA;Looks promising but is also a bit new to risk an important project on it IMHO. Quite active though.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There are many others of course.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can have a look at the controversial site &lt;a href=&quot;http://ormbattle.net/&quot; rel=&quot;nofollow&quot;&gt;ORM Battle&lt;/a&gt; that lists some performance benchmarks, although you have to be aware that raw speed is not necessarily the most important factor for your project and that the producers of the website is DataObject.Net.&lt;/p&gt;&#xA;" OwnerUserId="4482" LastEditorUserId="4482" LastEditorDisplayName="" LastEditDate="2010-10-07T01:26:11.077" LastActivityDate="2010-10-07T01:26:11.077" CommentCount="4" />
  <row Id="9532" PostTypeId="2" ParentId="500" CreationDate="2010-10-05T05:46:33.720" Score="4" ViewCount="" Body="&lt;p&gt;My team has done pair programming since its inception, long before I worked there, as part of a mostly &quot;extreme programming&quot;-style shop. Pair programming is the &lt;strong&gt;default state&lt;/strong&gt;; people only really go singleton if there's an odd number, or occasionally for investigations, especially those which will involve messing around with hostile equipment and trying to get it to work.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Junior/senior&quot; isn't the only way to go. &quot;Intermediate/junior&quot; is useful; it helps the intermediate-level guy synthesize the knowledge he's obtained by forcing him to communicate it to someone else. &quot;Intermediate/Intermediate&quot; challenges two people work together to share their knowledge, communicate, and work as part of a team. And even if you have two really senior guys, chances are they have different areas of expertise and can come up with different approaches. The knowledge-sharing aspects don't end once someone's vaguely &quot;up to speed&quot; on a project. Rather, pair programming is the epitome of a &lt;a href=&quot;http://en.wikipedia.org/wiki/Learning_organization&quot; rel=&quot;nofollow&quot;&gt;learning organization&lt;/a&gt;. New techniques and best-practices spread rapidly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pair programming also helps maintain the quality of the code (fewer defects) and the sanity of the code (it doesn't just do what it intends to, but does what it &lt;em&gt;should&lt;/em&gt;... ideally without going down a multi-week rabbit-hole doing the wrong thing, or two different right things that will conflict wildly). It helps the programmers maintain their focus: here in the heart of Silicon Valley, home of the 80-hour work-week, we can work for just 40 hours a week because we're doing intense coding for eight hours a day, switching things off with one another. &lt;em&gt;(Also, if you went longer doing pair programming, you'd probably flip out. Or at least burn out.)&lt;/em&gt; This is great for work/life balance, and it also helps your organization when it's important to have fast turnaround (low-latency turnaround, in particular).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not all, completely, 100% peaches and cream; I find that pair programming is occasionally an obstacle to my application of intuitive brain processes which are useful on certain problems. Most recently, on a memory-leak task, I spent some time both with and without pairs; without one, I felt more free to mess around and try experiments without really knowing exactly how to explain what I was doing at any one moment. There are also some advantages in working singleton, being able to go off on a tangent and do certain wild refactorings (valued in the XP methodology) on a whim.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But all told, the benefits far outweigh the costs, and pairing has worked out spectacularly well for us: from the start-up stage through acquisition by a larger company, and our subsequent integration. (Speaking of which, pair programming has assisted us with maintaining a continuity of culture through expansion and despite a little turnover).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(We develop a software appliance in Perl, ~$4,000-$40,000 list price.)&lt;/p&gt;&#xA;" OwnerUserId="2348" LastActivityDate="2010-10-05T05:46:33.720" />
  <row Id="9533" PostTypeId="2" ParentId="9447" CreationDate="2010-10-05T06:10:46.477" Score="0" ViewCount="" Body="&lt;p&gt;Smalltalk has a slightly unusual way of reducing the size of methods. When you write code, you write it in a widget called a Browser. A Browser has two main parts, divided horizontally. Your code goes in the bottom half.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By default, a Browser's not very big. You can fit 5 or 6 lines in before you'll need to start scrolling. Scrolling, of course, is slightly irritating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So in Smalltalk the environment &quot;encourages&quot; you to write short methods, of at most around 6 lines in length. (That's usually plenty; Smalltalk is a pretty terse language.)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-05T06:10:46.477" />
  <row Id="9534" PostTypeId="2" ParentId="9498" CreationDate="2010-10-05T07:26:36.877" Score="1" ViewCount="" Body="&lt;p&gt;There isn't a &quot;best&quot; ORM framework because they all have different combinations of strengths and weaknesses and it tends to be the case that if developers choose to focus on making one area better there are other areas that suffer in comparison (code first vs model first vs database first).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are, on the other hand, a number of very good ones some of which will be a better match to your personal circumstances &lt;em&gt;and philosophy&lt;/em&gt; than others.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Edit: For what its worth, I'm currently using Linq to SQL - mostly because its there though partly because it does a lot right for minimal effort and will probably progress to Entity Framework again &quot;because its there&quot; (though similarly there is also a lot about EF4 that's right as well as some stuff that's wrong). The concern, especially with the latter, would have to be performance but for most of my cases that's not a huge issue and the ability to run Dynamic Data and OData from the models (L2S and EF) has considerable benefits for me in terms of &quot;cheap&quot; wins.&lt;/p&gt;&#xA;" OwnerUserId="866" LastEditorUserId="866" LastEditorDisplayName="" LastEditDate="2010-10-06T07:38:01.053" LastActivityDate="2010-10-06T07:38:01.053" CommentCount="2" />
  <row Id="9535" PostTypeId="2" ParentId="9521" CreationDate="2010-10-05T07:27:49.280" Score="3" ViewCount="" Body="&lt;p&gt;If I were the IEEE coroner, I'd look for the same signs linguists use to determine whether a natural language is dying/dead, viz.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;How many programmers still use the language?&lt;/li&gt;&#xA;&lt;li&gt;What is the average age of its users?&lt;/li&gt;&#xA;&lt;li&gt;What percentage of the youngest generation of programmers acquire fluency with the language?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Based on these criteria, I'd guess COBOL is moribund. Despite 220 bazilion LOC written in COBOL, according to this[1] 2006 article in CW, the average age of COBOL programmers has got to be over 50 by now. While I couldn't find exact statistics, I'd guess the average Java programmer is in his/her 20s, by comparison. COBOL apologists point out that some 5B LOC are still written in COBOL annually, but I don't think this is a reliable measure: I could probably re-write 10 lines of COBOL in 1 line of Perl or a few keystrokes in J--COBOL is a fairly verbose language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[1] &lt;a href=&quot;http://www.computerworld.com/s/article/266228/Cobol_Coders_Going_Going_Gone_&quot; rel=&quot;nofollow&quot;&gt;http://www.computerworld.com/s/article/266228/Cobol_Coders_Going_Going_Gone_&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-05T07:27:49.280" />
  <row Id="9536" PostTypeId="2" ParentId="9481" CreationDate="2010-10-05T07:32:43.560" Score="13" ViewCount="" Body="&lt;p&gt;Interesting question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We produce a product - code - but we're not like typical unionized laborers. We're also not professionals like doctors and lawyers and accountants. (Can you imagine some hospital administrator demanding that a surgeon work overtime on Saturday - with no extra pay - to push a few more patients through?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Really, we're highly skilled craftspeople, very similar to medieval stonemasons. The folks who built the great cathedrals of Europe varied tremendously in their abilities and qualifications, and job-hopped quite a bit - and still managed to have a Europe-wide guild. And woe betide the nobleman or bishop who screwed over a master mason... they could just kiss their project good-bye.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I often think we, too, should have a guild - especially when I read so many questions on Stack* relating to software developers being underpaid, having no life due demands to work huge amounts of unpaid overtime, and having to put up with crappy working conditions.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-10-05T07:32:43.560" CommentCount="3" />
  <row Id="9537" PostTypeId="2" ParentId="9503" CreationDate="2010-10-05T07:46:44.953" Score="0" ViewCount="" Body="&lt;p&gt;I used to do the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Read a book on basics on go head first&lt;/li&gt;&#xA;&lt;li&gt;Few weeks after, I read the whole reference&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The first step helps me to learn the language&#xA;The second, helps me to learn the &quot;vocabulary&quot;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-05T07:46:44.953" />
  <row Id="9538" PostTypeId="2" ParentId="8966" CreationDate="2010-10-05T08:09:13.257" Score="0" ViewCount="" Body="&lt;p&gt;It's not easy, but basically the only way is to call the multi-threaded code concurrently from multiple threads &lt;strong&gt;and change timing and ordering randomly&lt;/strong&gt; by playing with random &lt;code&gt;Thread.sleep()&lt;/code&gt; and &lt;code&gt;Thread.yield()&lt;/code&gt; calls (assuming Java).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are also ready tools available (such as TestNG) that do something like described above, but they're not very mature yet, as far as I know.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-05T08:09:13.257" CommentCount="1" />
  <row Id="9539" PostTypeId="1" AcceptedAnswerId="9786" CreationDate="2010-10-05T08:22:10.760" Score="19" ViewCount="768" Body="&lt;p&gt;Think of the profession 30 years ago.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When one single guy was able to code a whole computer game alone!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will offshoring will finally take over? Will languages be so high level than our added value will be reduced to zero? Will it be a profession like lawyer or doctor? Will you still be a programmer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please extrapolate and predict based on historical and current trends.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-10-18T22:23:19.920" LastActivityDate="2010-12-18T10:38:42.283" ClosedDate="2010-12-18T12:28:52.837" Title="What trends do you see for your profession in 30 years?" Tags="&lt;future&gt;&lt;prediction&gt;&lt;profession&gt;" AnswerCount="14" CommentCount="9" FavoriteCount="4" />
  <row Id="9540" PostTypeId="2" ParentId="9539" CreationDate="2010-10-05T08:28:34.717" Score="1" ViewCount="" Body="&lt;p&gt;It is impossible to answer this question correctly, just as it was impossible to answer the same question correctly 30 years ago. All we can do is - extrapolate and predict based on historical and current trends.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-10-05T08:28:34.717" CommentCount="1" />
  <row Id="9541" PostTypeId="2" ParentId="9481" CreationDate="2010-10-05T08:34:18.693" Score="6" ViewCount="" Body="&lt;p&gt;Software Engineers do have a union...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;Communications and Computer Workers Industrial Union 560&quot; is a department of the Industrial Workers of the World (IWW or &quot;Wobblies&quot;) who work in the electronic communications industry. Their organization is open to workers engaged in computer operation, including programming and networking. See &lt;a href=&quot;http://www.iww.org/unions/dept500/iu560/&quot; rel=&quot;nofollow&quot;&gt;http://www.iww.org/unions/dept500/iu560/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Noam Chomsky is an IWW member.&lt;/p&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-05T08:34:18.693" CommentCount="5" />
  <row Id="9543" PostTypeId="2" ParentId="9539" CreationDate="2010-10-05T08:53:18.517" Score="1" ViewCount="" Body="&lt;p&gt;I have a few programmer friends that look at this very bleakly, that we are essentially coding ourselves from relevance by creating so many tools that negate coding. I do not necessarily share this view.&lt;/p&gt;&#xA;" OwnerUserId="4499" LastActivityDate="2010-10-05T08:53:18.517" CommentCount="3" />
  <row Id="9544" PostTypeId="2" ParentId="9521" CreationDate="2010-10-05T08:59:07.183" Score="12" ViewCount="" Body="&lt;p&gt;In linguistics, a dead language is defined as one which as no native or fluent speakers. I think this definition translates quite well in the programming sphere. A dead programming language is one that no programmer uses as their main language, or no system supports natively.&lt;/p&gt;&#xA;" OwnerUserId="4499" LastActivityDate="2010-10-05T08:59:07.183" CommentCount="3" />
  <row Id="9545" PostTypeId="2" ParentId="9503" CreationDate="2010-10-05T09:00:03.377" Score="0" ViewCount="" Body="&lt;p&gt;I don't typically learn a new framework for no reason (that is, I've got a particular project in mind that I want to learn the framework &lt;em&gt;for&lt;/em&gt;). So I will usually take a look at a &quot;hello world&quot; style tutorial to find out how to get started, then I'll start building my project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might take a few goes to get it &quot;right&quot;, but if the framework is good and the documentation is adequate, it doesn't usually take too many goes to get there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, that's just me, and I'm sure everybody is different.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-05T09:00:03.377" />
  <row Id="9546" PostTypeId="2" ParentId="9521" CreationDate="2010-10-05T09:07:27.703" Score="1" ViewCount="" Body="&lt;p&gt;A programming language is not dead as long as you can find some sort of specification of it, from which you can create a compiler or an interpreter able to run programs on a working computer.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-05T09:07:27.703" CommentCount="2" />
  <row Id="9547" PostTypeId="2" ParentId="1599" CreationDate="2010-10-05T09:10:20.033" Score="0" ViewCount="" Body="&lt;p&gt;I find myself thinking that the Heisenberg uncertainty principle and the Plank constant is part of a yet-to-be-formalized proof that we're all living in a big simulation with limited computing power. &lt;/p&gt;&#xA;" OwnerUserId="3917" LastActivityDate="2010-10-05T09:10:20.033" CommunityOwnedDate="2010-10-05T09:10:20.033" />
  <row Id="9548" PostTypeId="2" ParentId="7806" CreationDate="2010-10-05T09:10:51.360" Score="0" ViewCount="" Body="&lt;p&gt;The earliest computers had fixed programs. The &lt;strong&gt;von Neumann architecture&lt;/strong&gt; was the first model of a stored-program computer. Without it, you'd be a computer engineer, rather than a software engineer. Here's a picture of its schematic, excerpted from Wikipedia.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/iMXuR.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-05T09:10:51.360" CommentCount="1" />
  <row Id="9549" PostTypeId="2" ParentId="1599" CreationDate="2010-10-05T09:12:26.567" Score="2" ViewCount="" Body="&lt;p&gt;Integrating obscure programming-relevant words into my everyday vocabulary.&lt;/p&gt;&#xA;" OwnerUserId="1388" LastActivityDate="2010-10-05T09:12:26.567" CommunityOwnedDate="2010-10-05T09:12:26.567" />
  <row Id="9550" PostTypeId="2" ParentId="9521" CreationDate="2010-10-05T09:14:08.753" Score="1" ViewCount="" Body="&lt;p&gt;To me there is a difference whether a commitee has decided something is dead or something is dead to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example Forth per se is dead to me: there are not many current Forth projects i can learn from, there not many active mailing lists or forums where i could ask for help, there are not too many libraries available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Forth-like &quot;Factor&quot; language on the other hand seems to be a lot more alive. I would not call it dead even though it is not much less obscure than Forth.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-10-05T09:14:08.753" />
  <row Id="9551" PostTypeId="1" AcceptedAnswerId="9557" CreationDate="2010-10-05T09:22:38.933" Score="2" ViewCount="702" Body="&lt;p&gt;I am pretty sure the answer is no, but thought I would put it out there. Recently got verbally offered a job as a PHP developer at a large digital agency, but after waiting 2 months for my contract I have now been told that no job is available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;obviously, with nothing in writing, I am thinking that there is little I can do, but it certainly does twang my sense of injustice.&lt;/p&gt;&#xA;" OwnerUserId="4499" LastActivityDate="2010-11-25T11:02:50.493" Title="Got verbally offered a job only to have it taken away, can I do anything?" Tags="&lt;jobs&gt;" AnswerCount="7" CommentCount="7" FavoriteCount="1" />
  <row Id="9552" PostTypeId="2" ParentId="8956" CreationDate="2010-10-05T09:27:04.957" Score="1" ViewCount="" Body="&lt;p&gt;Another way to look at this is &quot;what software gets ripped off the most?&quot;. The high-ticket software like Adobe Create Suite is often a target as the initial price is just so high - several thousand dollars for a massive package of which you may end up only using 10% of the capability of each component. Look at the effort that Microsoft has put into their 'Genuine Windows' initiatives - does anybody actually buy Windows or Office any more? The businesses that get audited have to, but many small businesses and huge numbers of home users seem happy to use an illegitimate (or illegal) copy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal opinion is that if you want to make some money from your software, do not release the source code into the public domain/open source community. There clearly are cases where selling support for an open-sourced code can lead to profitability, but IMO opening up your source code should be done to get community input. Exposing your cool code to the web loses your competitive advantage if you want the software to become a source of income.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the current best strategy for software that I've seen is to &lt;strong&gt;license it&lt;/strong&gt;. Give a somewhat limited version of the software away for free so that the user can get familiar with it without having to sign up for an account or hand over credit card details, both of which are off-putting. Once they reach a point where they are using it seriously, you can offer the option of increasing storage/bandwidth/capacity/capability#. Many online services are using this model as are iPhone apps - download 'lite' version for free, pay to activate more features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The actual price for which you license the software is a factor of:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;purpose - how hard is the task it solves?&lt;/li&gt;&#xA;&lt;li&gt;target market size - how many people are face with this issue?&lt;/li&gt;&#xA;&lt;li&gt;market segments - are there different levels/types of user in this market? (power users vs home users, etc)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Anything by &lt;a href=&quot;http://www.37signals.com/&quot; rel=&quot;nofollow&quot;&gt;37Signals&lt;/a&gt; - BaseCamp, CampFire, BackPack, etc. Low-end product is free, pay for more.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.evernote.com/&quot; rel=&quot;nofollow&quot;&gt;Evernote&lt;/a&gt;. Software client is free with some storage. Pay for more.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.dropbox.com/&quot; rel=&quot;nofollow&quot;&gt;DropBox&lt;/a&gt;. Software client is free with some storage. Pay for more.&lt;/li&gt;&#xA;&lt;li&gt;Google Apps. Non-profit, education, low usage/few users free. Pay for more storage/availability/commercial users.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;# If paying unlocks some capability, don't put that capability in the free version as it will get cracked - regardless of how much market penetration you get. There are some people who just love to subvert software protection mechanisms and several of the products I've worked on over the years have had this fate - even the niche stuff. I'm no expert, but a combination of a uniquely-identifiable downloaded version that can be black-listed if it 'calls home' from more than X different IP addresses may be a starting point. If you detect someone has been handing around their copy of the software, you have a few options - talk to them (if they are registered) as there may be a good reason (they reformat their PC regularly, etc), close their account (with notification as to why) or bill them accordingly if you have their credit card details (but expect recourse from this action).&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-10-06T09:01:47.350" LastActivityDate="2010-10-06T09:01:47.350" CommentCount="2" />
  <row Id="9554" PostTypeId="1" AcceptedAnswerId="9570" CreationDate="2010-10-05T09:45:15.140" Score="12" ViewCount="630" Body="&lt;p&gt;Reading &lt;a href=&quot;http://www.sqlite.org&quot; rel=&quot;nofollow&quot;&gt;SQLite&lt;/a&gt; source code is IMO mission impossible. Yet it is a usable piece of quite complex software (it's a full-blown embedded database after all) that can be downloaded, compiled and used from others code and it is constantly updated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do people manage to write and maintain such extremely complex and hard to read code?&lt;/p&gt;&#xA;" OwnerUserId="587" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-17T08:55:20.307" LastActivityDate="2010-10-23T01:11:52.750" Title="How do people manage to write and maintain extremely complex and hard to read code?" Tags="&lt;code&gt;&lt;maintenance&gt;&lt;legibility&gt;" AnswerCount="13" CommentCount="6" FavoriteCount="1" />
  <row Id="9555" PostTypeId="2" ParentId="7806" CreationDate="2010-10-05T09:46:51.693" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;How about recursion posters?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://www.dominiek.eu/blog/wp-content/uploads/2007/11/megamonalisa_recursion.jpg&quot; alt=&quot;Monalisa recursion&quot;&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/edO0z.jpg&quot; alt=&quot;City recursion&quot;&gt;&#xA;&lt;img src=&quot;http://www.ansatt.hig.no/frodeh/algmet/recursion/hands.gif&quot; alt=&quot;Hand recursion&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-10-05T09:46:51.693" CommentCount="1" />
  <row Id="9556" PostTypeId="2" ParentId="9554" CreationDate="2010-10-05T09:51:38.903" Score="7" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;functionalities evolves over time.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;new functionalities are driven by new customer requirements.&lt;/li&gt;&#xA;&lt;li&gt;Old code was written in a way that allows future yet-to-be-implemented functionalities to be added without breaking old code.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;domain experts (in this case, database is a well-known domain in Computer Science.)&lt;/li&gt;&#xA;&lt;li&gt;community feedback&#xA;&lt;ul&gt;&#xA;&lt;li&gt;bugs&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;steep learning curve was not a problem for the well-prepared and persevere. It may take 6 months, 1 year or even longer to become comfortable, and that's what some people are able to put up with.&lt;/li&gt;&#xA;&lt;li&gt;commercial motivations. without monetary support, very few people can invest the time and energy into the steep learning curve.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-05T09:51:38.903" />
  <row Id="9557" PostTypeId="2" ParentId="9551" CreationDate="2010-10-05T09:52:38.170" Score="5" ViewCount="" Body="&lt;p&gt;Have you done anything / incurred any costs as a result of believing you had the job?  If so, you could possibly have a claim under &lt;em&gt;promissory estoppel&lt;/em&gt; - ask a lawyer.  Without a contract, and without having done any work for them, there's no contract (because there was no consideration), so you're not likely to have a claim under &lt;em&gt;breach of contract&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not legal advice, I am not a lawyer.&lt;/p&gt;&#xA;" OwnerUserId="589" LastActivityDate="2010-10-05T09:52:38.170" CommentCount="2" />
  <row Id="9558" PostTypeId="2" ParentId="9554" CreationDate="2010-10-05T09:58:22.043" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;If you're the original author of the software, and you've worked with it for &gt; 10 years, and you're a genius, then it may be possible to understand the whole thing. Big pieces of complex software (like SQLite or the Linux kernel) indeed usually have exactly one original author having a complete, deep understanding of it, even if other people have contributed.&lt;/li&gt;&#xA;&lt;li&gt;If the software architecture is sane (high cohesion, low coupling), understanding the whole thing is not a prerequisite for making useful additions and modifications to it.&lt;/li&gt;&#xA;&lt;li&gt;Understanding a RDBMS or OS are somewhat special cases, requiring deep understanding of the underlying CS principles. Not so with &quot;ordinary&quot; software applications.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-05T10:29:35.167" LastActivityDate="2010-10-05T10:29:35.167" />
  <row Id="9559" PostTypeId="2" ParentId="9554" CreationDate="2010-10-05T10:03:52.240" Score="2" ViewCount="" Body="&lt;p&gt;You can wrap your head around any code-base if you have - perseverance, patience and a methodical approach - but mainly perseverance :-)&lt;/p&gt;&#xA;" OwnerUserId="107" LastActivityDate="2010-10-05T10:03:52.240" />
  <row Id="9560" PostTypeId="2" ParentId="9554" CreationDate="2010-10-05T10:22:11.127" Score="1" ViewCount="" Body="&lt;p&gt;Managing becomes a lot easier if there are things done always the same way. I do not know the SQLite code, but I'm working in an environment where there are multiple projects. Besides understanding the business case (eq logic), as everything is basically done the same way everywhere (database access, etc.) it's relatively easy to start working on another project. Long text short: Coding guidelines - in appropriate manner - make life and such code far more easy. This could be one of the helpers for the SQLite coders.&lt;/p&gt;&#xA;" OwnerUserId="4489" LastActivityDate="2010-10-05T10:22:11.127" />
  <row Id="9561" PostTypeId="2" ParentId="9551" CreationDate="2010-10-05T10:24:03.540" Score="1" ViewCount="" Body="&lt;p&gt;This depends on law and thus on the country you live in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also depends on what you mean with “offered”. Was it that you were told the job is avail, that they want to hire you, that they will hire you? If they did tell you they will hire you it may be interpreted as a verbal contract (probably also depends on country).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask a lawyer of your country.&lt;/p&gt;&#xA;" OwnerUserId="4505" LastActivityDate="2010-10-05T10:24:03.540" CommentCount="1" />
  <row Id="9562" PostTypeId="1" AcceptedAnswerId="9589" CreationDate="2010-10-05T10:31:42.417" Score="0" ViewCount="78" Body="&lt;p&gt;Whenever I'm doing some work with Terminal (on Mac OS X) and I enter a bad/wrong command, the terminal window just enters a mode of limbo. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;See screenshot!&#xA;&lt;a href=&quot;http://i.imgur.com/mbukb.png&quot; rel=&quot;nofollow&quot;&gt;click here&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What can I do about this? I'm very new to terminal and I've never used windows command line more than a few reset commands.&lt;/p&gt;&#xA;" OwnerUserId="3910" LastActivityDate="2010-10-05T12:28:46.357" ClosedDate="2010-10-05T12:37:22.550" Title="Some commands enter Terminal into a limbo, how do I get rid of this?" Tags="&lt;mac&gt;" AnswerCount="1" CommentCount="4" />
  <row Id="9563" PostTypeId="1" CreationDate="2010-10-05T10:36:33.037" Score="1" ViewCount="94" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicates:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/9503/how-do-you-approach-learning-a-framework&quot;&gt;How do you approach learning a framework?&lt;/a&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/3519/how-do-you-learn-a-new-programming-language&quot;&gt;How do you learn a new programming language?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;For any popular language, there will be a variety of sources available such as:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Books&lt;/li&gt;&#xA;&lt;li&gt;Blog posts or tutorial articles&lt;/li&gt;&#xA;&lt;li&gt;APIs or other documentation&lt;/li&gt;&#xA;&lt;li&gt;Forums or question and answer sites (including Programmers.StackExchange or StackOverflow)&lt;/li&gt;&#xA;&lt;li&gt;Courses or general talks&lt;/li&gt;&#xA;&lt;li&gt;Video tutorials&lt;/li&gt;&#xA;&lt;li&gt;Podcasts&lt;/li&gt;&#xA;&lt;li&gt;Sample code, including Google Code&lt;/li&gt;&#xA;&lt;li&gt;Cheat sheets&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think that most people would agree that the best way to learn a topic would be to use a variety of resources. The question is how do you decide at what stage and in what situations to use what resources? For example, do you obtain a book and use that at the start, or do you dive straight into coding, asking questions on StackOverflow as you go and reading through a book to solidify your knowledge after you have gained a decent amount of experience? Explain why you believe that your method works well. In addition, are there any other tricks or tips you use to get up to speed quickly?&lt;/p&gt;&#xA;" OwnerUserId="86" LastEditorUserId="86" LastEditorDisplayName="" LastEditDate="2010-10-05T11:50:05.853" LastActivityDate="2010-10-05T12:07:04.447" ClosedDate="2010-10-05T12:08:31.807" Title="What is the best way of learning a new language?" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;frameworks&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="9566" PostTypeId="2" ParentId="9554" CreationDate="2010-10-05T11:18:17.720" Score="1" ViewCount="" Body="&lt;p&gt;They try to write it in a simple way but not a simplist way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Going as much simple as you can makes things faster to understand/read, even if it can take some time.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-10-05T11:18:17.720" />
  <row Id="9567" PostTypeId="2" ParentId="9554" CreationDate="2010-10-05T11:25:43.243" Score="4" ViewCount="" Body="&lt;p&gt;You do not need to have an intimate understanding of the &lt;em&gt;whole&lt;/em&gt; project in order to be able to maintain it. Usually with large, complex software, people will have their own particular &quot;areas&quot; that they look after and they only have a 'passing' knowledge of the rest of the system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SQLite is actually relatively small on the scale of &quot;large software projects&quot; but if you look at something like the Windows operating system, you'll have people who &lt;em&gt;just&lt;/em&gt; work on the kernel, people who &lt;em&gt;just&lt;/em&gt; work on the shell, people who &lt;em&gt;just&lt;/em&gt; work on Internet Explorer, people who &lt;em&gt;just&lt;/em&gt; work on the Window manager, etc etc. Someone who works in the &quot;shell&quot; isn't going to be able to fix a bug in the kernel at the drop of a hat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also the benefit that these projects evolve over time: they didn't always start out this complicated. That means a new developer can usually be &quot;trained&quot; by more experienced developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you join a large team of developers, you'll be given a particular aspect of the project to work on (maybe a bug or new feature) and you'll have another developer be you &quot;buddy&quot; for the first few iterations. Your buddy will have a good understanding of the area you're working and can help you find your way around.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For open source projects like SQLite, it's actually a little harder because there's no motivation for existing developers to &quot;train&quot; new developers. So you'll find you're on your own a bit more. But you can still find help on developer forums or mailing lists (e.g. just posting a question like &quot;I'd like to implement such&amp;amp;such feature&quot; or &quot;I found bug XYZ, where do I start looking?&quot; and you're likely to get some form of help.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-05T11:25:43.243" CommentCount="1" />
  <row Id="9568" PostTypeId="2" ParentId="9554" CreationDate="2010-10-05T11:25:45.990" Score="3" ViewCount="" Body="&lt;p&gt;One thing not mentioned in the other answers is &quot;It comes naturally to them&quot;. Most people want to write good code but they are tuned to writing bad code. Some of the programmers I have met are naturally LINEAR thinkers + some times very wittingly they come up with complex solutions. Most of such people don't spend time reading or learning from the book they learn as and when the work demands it.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-05T11:25:45.990" CommentCount="1" />
  <row Id="9570" PostTypeId="2" ParentId="9554" CreationDate="2010-10-05T11:37:03.703" Score="3" ViewCount="" Body="&lt;p&gt;There is a big difference between Complex and Complicated. The following link about sums it up. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://codebetter.com/blogs/dru.sellers/archive/2009/09/25/complex-vs-complicated.aspx&quot; rel=&quot;nofollow&quot;&gt;http://codebetter.com/blogs/dru.sellers/archive/2009/09/25/complex-vs-complicated.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a more personal note, I work on a code base of more than 1 million lines of code. I have been in it from line 1 to its current state. The more farmilar you are (read longer you are in the code) the easier it becomes. I can not tell you what every line does, but I can tell you were to start looking for a given task or bug. It just comes naturally. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The moral of the story is that like any thing in the programming world it takes time. If you expect to look at SQLight and just know and understand it, you are kidding your self. It is going to take time to figure out how everything works together. The difference between good code and bad code is how long that process takes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, some developer do not have the ability to jump into a code base and start figuring it out. Many will feel over whelmed at sheer size or architecture of the code base. Others will have no problem just jumping it. It all depends on the developers strengths. &lt;/p&gt;&#xA;" OwnerUserId="3421" LastEditorUserId="3421" LastEditorDisplayName="" LastEditDate="2010-10-05T11:42:34.707" LastActivityDate="2010-10-05T11:42:34.707" />
  <row Id="9571" PostTypeId="2" ParentId="1599" CreationDate="2010-10-05T11:37:47.290" Score="0" ViewCount="" Body="&lt;p&gt;While reading a (old-school) newspaper in a café today, I tried to tab the flattr-icon (no kidding)&lt;/p&gt;&#xA;" OwnerUserId="2353" LastActivityDate="2010-10-05T11:37:47.290" CommunityOwnedDate="2010-10-05T11:37:47.290" />
  <row Id="9572" PostTypeId="1" CreationDate="2010-10-05T11:48:00.093" Score="3" ViewCount="139" Body="&lt;p&gt;What features are vital for good bug tracking software and why are they important? What in particular is necessary for you to consider these features done right?&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-10-05T13:51:41.043" Title="What features are vital for good bug tracking software?" Tags="&lt;bug-tracking&gt;" AnswerCount="7" />
  <row Id="9573" PostTypeId="2" ParentId="9572" CreationDate="2010-10-05T11:55:59.823" Score="0" ViewCount="" Body="&lt;p&gt;Any feature that does a task for the programmer. Shouldn't it really be part of the IDE? There's the list of bugs. Pick one to work on and all of the status and time stamps are taken care of. The code changes are linked. Required tests are associated. Check it as fixed, update the status and let everyone else know about it.  &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-05T11:55:59.823" CommentCount="2" />
  <row Id="9574" PostTypeId="2" ParentId="9572" CreationDate="2010-10-05T12:00:01.577" Score="1" ViewCount="" Body="&lt;p&gt;I find it quite important to be able to link issues (and specify a link type, e.g. Depends on).  Apart from that the usual suspects of version that the bug was found in, what version we're aiming to fix it (so we can drive road maps), an estimation field is good for project/agile planning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nice to haves for me are voting from the public, the ability to notify users of changes to the issue and having a fairly flexible system of categorizing the issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact pretty much everything that JIRA supports out of the box :)&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-10-05T12:00:01.577" />
  <row Id="9575" PostTypeId="2" ParentId="9563" CreationDate="2010-10-05T12:01:32.307" Score="0" ViewCount="" Body="&lt;p&gt;Besides the classic &quot;Hello world&quot;, there are some programs that exercise more facets of a language, like I remember reading, in answer to this question somewhere else, some time ago, that &lt;a href=&quot;http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life&quot; rel=&quot;nofollow&quot;&gt;Conway's Life&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Lunar_Lander_%28video_game%29&quot; rel=&quot;nofollow&quot;&gt;Lunar Lander&lt;/a&gt; will offer a good introduction to most OO and procedural programming languages.  I agree, but can't extend this to the functional languages due to my lack of familiarity with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suppose my citing of these two 'learner' programs makes my opinion evident, that jumping in and writing something relatively simple is the best way to learn a new language.  I do, however, also always keep the reference manual at hand, and when I look something up, I always read a little more than is necessary to solve my immediate problem.&lt;/p&gt;&#xA;" OwnerUserId="3721" LastActivityDate="2010-10-05T12:01:32.307" />
  <row Id="9576" PostTypeId="1" AcceptedAnswerId="9580" CreationDate="2010-10-05T12:01:36.003" Score="30" ViewCount="1309" Body="&lt;p&gt;One thing that I've heard a lot over the years is that those working in the IT world generally don't make life time careers out of it, but tend to &quot;burn out&quot; and start a new career doing something else unrelated (e.g. going from software development to being an accountant). Have you found this to generally be try in your experience and if so, what is the general impression on how long people work as developers before starting a new career?&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-11-10T15:36:17.877" Title="How long do programmers generally stay in industry?" Tags="&lt;career&gt;&lt;burnout&gt;&lt;retirement&gt;" AnswerCount="12" CommentCount="2" FavoriteCount="6" />
  <row Id="9578" PostTypeId="2" ParentId="9563" CreationDate="2010-10-05T12:07:04.447" Score="0" ViewCount="" Body="&lt;p&gt;Unfortunately, they way I've had to learn them is from books, online information, and the occassional training class.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best way to learn is to have access to a teacher/mentor. See how they do things and find out why. Put the code in the context of the project requirements. Learn from their's as well as your own mistakes. If you disagree, just tell them it doesn't make sense and learn from the (hopeful) constructive back and forth. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, I think it is too easy to get into the &quot;I know how to do this in my language; now how do I do it in another?&quot;. Sometimes that's all you need, but you'll miss out on what differentiates one language from another and stiffle your development in the process.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-05T12:07:04.447" />
  <row Id="9580" PostTypeId="2" ParentId="9576" CreationDate="2010-10-05T12:08:02.277" Score="41" ViewCount="" Body="&lt;p&gt;I've been in software development all my working life from junior developer, through senior developer to team lead/manager and now back developing (though hoping to get back into management sooner rather than later).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My working life is now well over 25 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All that time I've known developers as old or older than me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think &quot;burn out&quot; happens if you try to do too much - working 12+ hour days and/or weekends for extended periods and happens in any industry not just computing. I know that if I had to do that I'd be looking for something less stressful to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you find a working style that fits your temperament then there's no reason why you can't continue working until you retire at 65 (or when ever).&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-05T12:08:02.277" CommentCount="6" />
  <row Id="9581" PostTypeId="2" ParentId="9576" CreationDate="2010-10-05T12:09:40.307" Score="2" ViewCount="" Body="&lt;p&gt;until they are sick of it, and look for something else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am seeing a vision of a piece of string...&lt;/p&gt;&#xA;" OwnerUserId="4499" LastActivityDate="2010-10-05T12:09:40.307" />
  <row Id="9582" PostTypeId="2" ParentId="9576" CreationDate="2010-10-05T12:10:02.660" Score="4" ViewCount="" Body="&lt;p&gt;I've found that for many colleagues that once they've started families they start thinking about new careers / getting out of IT.  This is often due to the hours they are 'expected' to work and/or the mental pressure of looking after new little 'uns and trying to keep up with a fast moving industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not necessarily &lt;em&gt;agreeing&lt;/em&gt; with the reasoning, but that's what fireside chats at the pub are telling me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure what the actual numbers/percentage would be, there are still &lt;em&gt;plenty&lt;/em&gt; of developers who stay in this career for a lifetime, and they're valuable resources in my opinion (I've been lucky to have great mentors).&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-10-05T12:10:02.660" />
  <row Id="9583" PostTypeId="2" ParentId="9432" CreationDate="2010-10-05T12:10:49.540" Score="0" ViewCount="" Body="&lt;p&gt;I have found that actually jumping in and trying something, a step you have omitted, after scanning - or failing to find - the documentation often helps.  Call an API function, see what happens, examine the return value if provided.  Sometimes carefully reading the documentation first makes things seem more complicated than they really are.&lt;/p&gt;&#xA;" OwnerUserId="3721" LastActivityDate="2010-10-05T12:10:49.540" CommunityOwnedDate="2010-10-05T12:10:49.540" CommentCount="1" />
  <row Id="9584" PostTypeId="1" AcceptedAnswerId="9599" CreationDate="2010-10-05T12:14:22.317" Score="5" ViewCount="559" Body="&lt;p&gt;I realized I have to write down a convention specification about HTML, JavaScript and PHP coding for me and my team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In web development, just like in C++, I'm definitely a fan of indentation and comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nonetheless, often in my work I encounter HTML+JavaScript+PHP code which suddenly brings up the headache.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm trying to make my code readable, but what seems to be better to me (to indent &amp;amp; comment) seems not to fascinate my teammates, so I was wondering if there is a best or at least shared good practice when writing &quot;hybrid&quot; documents just like today's web pages, which day by day become more and more complex. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm aware of the fact that probably it is in the nature of today's web pages' code to be a little bit intricated, but I wonder if a good convention concerning these aspects already exists.&lt;/p&gt;&#xA;" OwnerUserId="4514" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-10-05T18:22:23.260" LastActivityDate="2010-10-26T20:15:30.810" Title="PHP, HTML, Javascript and writing good practices" Tags="&lt;best-practices&gt;&lt;web-development&gt;&lt;php&gt;&lt;html&gt;&lt;javascript&gt;" AnswerCount="6" CommentCount="9" FavoriteCount="6" />
  <row Id="9585" PostTypeId="2" ParentId="9503" CreationDate="2010-10-05T12:14:40.793" Score="0" ViewCount="" Body="&lt;p&gt;I google for blogs and tutorials on the framework, or a particular aspect of it I'm interested in using.  Often the authors of these have actually used the framework and are somewhat closer to it than the authors of the official documentation.  Then, while I'm busy following a post I find, I usually refer back to the reference docs and surf through them a bit, seeing what else I can do with the framework.&lt;/p&gt;&#xA;" OwnerUserId="3721" LastActivityDate="2010-10-05T12:14:40.793" />
  <row Id="9586" PostTypeId="2" ParentId="9572" CreationDate="2010-10-05T12:17:52.723" Score="3" ViewCount="" Body="&lt;p&gt;Integration with SCM, so that any fixes can be traced back to the code, and code changes can be traced back to an issue. This does require vigilance to check in only code related to the issue being promoted/checked in against. i.e. no &quot;Added feature xyz, and fixed random bugs in 4 different locations and a quick refactor of feature zyx&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another good feature is workflow management, so that the business process is followed with the code. For example, may have a workflow path that goes something like this: Bug reported -&gt; Triaged for priority and validity -&gt; assigned to dev -&gt; worked on -&gt; assign to QA -&gt; pass testing -&gt; mark as closed.&lt;/p&gt;&#xA;" OwnerUserId="146" LastActivityDate="2010-10-05T12:17:52.723" />
  <row Id="9587" PostTypeId="2" ParentId="9576" CreationDate="2010-10-05T12:24:12.643" Score="1" ViewCount="" Body="&lt;p&gt;I did the opposite. I used to teach students with special needs and decided I was not going to be able to do that until retirement. Fortunately, I was able to stop before I burned out and have no regrets about my previous career. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's the fear that I will be perceived as not being able to keep up(Always wonder if there are people out there smart enough to hire me ;) ) or worse discovering for myself that I can't handle the new technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as the long hours, hopefully you'll be a better programmer 10 years from now. I'm not going to beat myself up because I can do more in 8 hours than others do in 12 (I suggest they have the teacher put them in a slower reading group.). Even in IT you have to &quot;walk through a lot of snow to get to the cabin&quot; but the amount of B.S. in other fields is unbearable. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-05T12:24:12.643" />
  <row Id="9588" PostTypeId="2" ParentId="9584" CreationDate="2010-10-05T12:24:53.877" Score="0" ViewCount="" Body="&lt;p&gt;Here's a couple of tidbits:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Javascript: Use &lt;code&gt;var&lt;/code&gt; when initialising variables.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HTML: Include scripts at the bottom of the file so they load last.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP: Split the files up.  Don't put all your classes in one file, just as you wouldn't in normal C++ development.  Comment as much as possible and also write down the purpose of your functions/classes.&lt;/p&gt;&#xA;" OwnerUserId="3549" LastActivityDate="2010-10-05T12:24:53.877" CommentCount="1" />
  <row Id="9589" PostTypeId="2" ParentId="9562" CreationDate="2010-10-05T12:28:46.357" Score="0" ViewCount="" Body="&lt;p&gt;Are you hitting &lt;code&gt;Control+C&lt;/code&gt; ? That's the break command that usually works.  That or &lt;code&gt;Control+Z&lt;/code&gt; (which suspends the process but doesn't kill it.)&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-10-05T12:28:46.357" />
  <row Id="9590" PostTypeId="2" ParentId="9498" CreationDate="2010-10-05T12:29:41.713" Score="-1" ViewCount="" Body="&lt;p&gt;NHibernate combined with Fluent NHibernate are my choices.&lt;/p&gt;&#xA;" OwnerUserId="3549" LastActivityDate="2010-10-05T12:29:41.713" CommentCount="1" />
  <row Id="9591" PostTypeId="2" ParentId="9554" CreationDate="2010-10-05T12:40:42.230" Score="12" ViewCount="" Body="&lt;p&gt;In the specific case of SQLite, the main tool they've chosen to use in development and maintenance is automated testing. They pride themselves on 100% coverage (branch coverage, not statement coverage) in their test suite. According to them, it's one of the best-tested software products in the world. So they know right away when something they've added or changed causes a regression, and can develop pretty fearlessly as a result of that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://sqlite.org/testing.html&quot; rel=&quot;nofollow&quot;&gt;http://sqlite.org/testing.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pretty staggering numbers--they have around 640 &lt;em&gt;times&lt;/em&gt; as many lines of testing code as of production code.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-10-05T12:40:42.230" CommentCount="3" />
  <row Id="9593" PostTypeId="2" ParentId="9584" CreationDate="2010-10-05T12:55:15.470" Score="2" ViewCount="" Body="&lt;p&gt;I would suggest read PHP/HTML coding standards used by other people then come up with your own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A couple of examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://area51.phpbb.com/docs/coding-guidelines.html&quot; rel=&quot;nofollow&quot;&gt;phpBB coding guidelines&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.phpro.org/tutorials/PHP-Coding-Style.html&quot; rel=&quot;nofollow&quot;&gt;PHP coding style by phpro.org&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-05T12:55:15.470" />
  <row Id="9594" PostTypeId="2" ParentId="9385" CreationDate="2010-10-05T12:57:56.290" Score="2" ViewCount="" Body="&lt;p&gt;If you are using test-driven or test-first development, the best place to take a break is after writing a failing test. This provides an obvious place to begin working again since you need to make the test pass.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It feels a little awkward at first since you have to decide what should be next before taking a break. You have the feeling that you are leaving the code incomplete. It would only take a little more time to get the test to pass, so why stop there. In my experience, this is exactly why this technique works so well. You are doing the most difficult work on the next step before taking a break. When you come back it is easier to get back into the work since you start with something easy.&lt;/p&gt;&#xA;" OwnerUserId="4040" LastActivityDate="2010-10-05T12:57:56.290" />
  <row Id="9595" PostTypeId="2" ParentId="9572" CreationDate="2010-10-05T13:10:29.507" Score="9" ViewCount="" Body="&lt;p&gt;Simplicity.&#xA;If it's too complicated or too long to enter or sort bugs, nobody will want to use it.&lt;/p&gt;&#xA;" OwnerUserId="4520" LastActivityDate="2010-10-05T13:10:29.507" CommentCount="2" />
  <row Id="9597" PostTypeId="2" ParentId="9572" CreationDate="2010-10-05T13:21:08.543" Score="1" ViewCount="" Body="&lt;p&gt;Enforced ownership of bugs.  It shouldn't be possible to have an open issue that is not somebody's responsibility.  Other than that, simple is better.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-10-05T13:21:08.543" CommentCount="3" />
  <row Id="9598" PostTypeId="1" AcceptedAnswerId="9619" CreationDate="2010-10-05T13:22:13.220" Score="11" ViewCount="646" Body="&lt;p&gt;Do you think that only the programming pratice will help you to improve your logical programming skill or do you train your brain with puzzle games, trying imagine how universe works, playing instruments and so on?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Devoting more time with programming, will do you get logical programming skills more fast?&lt;/p&gt;&#xA;" OwnerUserId="2369" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-10-05T17:25:42.567" LastActivityDate="2011-04-28T12:34:08.197" Title="What do you do to improve your logical programming skills?" Tags="&lt;self-improvement&gt;&lt;skills&gt;&lt;programming-logic&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="3" />
  <row Id="9599" PostTypeId="2" ParentId="9584" CreationDate="2010-10-05T13:22:40.900" Score="10" ViewCount="" Body="&lt;p&gt;Some general rules I follow:&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;General&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Indents are 4 spaces.&lt;/li&gt;&#xA;&lt;li&gt;Indent new levels&lt;/li&gt;&#xA;&lt;li&gt;Comments are &amp;lt; ~80 chars from the indent level. If I'm in two levels (8 spaces) that means the cursor stop will be around 88 characters. &lt;/li&gt;&#xA;&lt;li&gt;Use multi-line comments. I prefer the look, however this is a &lt;em&gt;subjective&lt;/em&gt; point.&lt;/li&gt;&#xA;&lt;li&gt;Comment now rather then later when you have no idea what's going on.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Indent_style#Allman_style_.28bsd_in_Emacs.29&quot; rel=&quot;nofollow&quot;&gt;Allman style braces&lt;/a&gt;. It's cleaner and is more readable. &lt;em&gt;Subjective&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;JavaScript&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Use a library. jQuery in particular is very good. It eliminates all cross browser headaches.&lt;/li&gt;&#xA;&lt;li&gt;Understand that ID's are for particular elements, classes are for styles. ID's shouldn't be used more then once per page and they will have particular hooks attached to them. Use classes for things like navigation.&lt;/li&gt;&#xA;&lt;li&gt;Out source into methods. It's tempting to put all the code into the &lt;code&gt;bind&lt;/code&gt; call, however putting it in it's own function will increase the flexibility of your code.&lt;/li&gt;&#xA;&lt;li&gt;Use functions instead of evals. That means &lt;code&gt;setTimeout(function(){ /* Do something */ }, 1000);&lt;/code&gt; instead of &lt;code&gt;setTimeout('doSomething', 1000);&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Use local variables with &lt;code&gt;var&lt;/code&gt;. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;HTML&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Semantic markup. Use appropriate tags. Don't put &lt;code&gt;&amp;lt;br /&amp;gt;&lt;/code&gt;'s in there to add space, adjust margins and CSS rules.&lt;/li&gt;&#xA;&lt;li&gt;All tags are &lt;strong&gt;lowercase&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;All tags should &lt;strong&gt;end with a closing tag or be self closing&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Make use of classes for layout that is similar. Have a couple of predefined classes like &lt;code&gt;hide&lt;/code&gt;, &lt;code&gt;clear&lt;/code&gt;, &lt;code&gt;error&lt;/code&gt;, etc.&lt;/li&gt;&#xA;&lt;li&gt;Everything (scripts included) should go in &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;. Worry about optimizing (moving stuff around) when it presents a problem.&lt;/li&gt;&#xA;&lt;li&gt;External stylesheets and JavaScript source &lt;em&gt;is a must&lt;/em&gt; unless it is page specific.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;PHP&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Frameworks are good, I recommend CodeIgniter.&lt;/li&gt;&#xA;&lt;li&gt;If you don't want to use a framework, try to use the latest version of PHP possible. (That means 5.3).&lt;/li&gt;&#xA;&lt;li&gt;Use &lt;code&gt;includes&lt;/code&gt; to your advantage. &lt;/li&gt;&#xA;&lt;li&gt;Clear injections or use prepared statements.&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Perform if checks on preconceived fail-secure values.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$logged_in = false;&#xA;if(check_user($user))&#xA;{&#xA;     $logged_in = true;&#xA;     $user = load_user($_SESSION);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;Know the difference between single and double quotes. Use single quotes when possible.&lt;/li&gt;&#xA;&lt;li&gt;Don't echo HTML.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-10-26T20:15:30.810" LastActivityDate="2010-10-26T20:15:30.810" CommentCount="1" />
  <row Id="9600" PostTypeId="2" ParentId="9584" CreationDate="2010-10-05T13:22:55.933" Score="2" ViewCount="" Body="&lt;p&gt;Keep the 3 separate. The least maintainable code I deal with is always when there is some PHP that's echoing out a lot of HTML &amp;amp; JavaScript, probably with some SQL thrown around for good measure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keeping all of them as separate will make the code a lot easier to maintain, and also makes things a lot more streamlined if you have people working on different parts of the application, such as designer who only needs to work with the HTML/CSS.&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-10-05T13:22:55.933" />
  <row Id="9601" PostTypeId="2" ParentId="9551" CreationDate="2010-10-05T13:24:06.640" Score="0" ViewCount="" Body="&lt;p&gt;It's the law of offering and demand. They probably found someone more suitable that you or changed their mind because of financial issues or something else. That's it. It happens all the time. You can't control it. You must accept it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like Peter Boughton write in his excellent comment, do you really want to work for that kind of company?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go ahead, delete your question, and send your resume to 10 more companies that you think deserve to have the opportunity to hire you.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-25T07:39:01.807" LastActivityDate="2010-11-25T07:39:01.807" CommentCount="3" />
  <row Id="9602" PostTypeId="2" ParentId="9572" CreationDate="2010-10-05T13:27:20.010" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Good/fast reporting capabilities. Management wants to track the bug trend.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;API for automation,automated email notification, integration with source control, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-05T13:27:20.010" />
  <row Id="9603" PostTypeId="2" ParentId="9551" CreationDate="2010-10-05T13:27:51.213" Score="0" ViewCount="" Body="&lt;p&gt;Until you have a job offer in writing you have nothing. It'd be nice if the world was a more fair place but it is not. Drop it. Take it as a lesson. Money spent on a lawyer will be wasted, and the company can absorb it more readily than you can. Unless you were offered some VERY specific terms to which there was unambiguous agreement in front of many trustworthy people without interest in the verbal contract you have very little to go on. Consider yourself more educated in the ways of the world and move on to your next objective.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-10-05T13:27:51.213" CommentCount="1" />
  <row Id="9604" PostTypeId="2" ParentId="1271" CreationDate="2010-10-05T13:28:12.647" Score="3" ViewCount="" Body="&lt;p&gt;I personally prefer emacs. It seems to me there is one fundamental difference in the two:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;With emacs, there is only one mode, so there is no modal navigation to worry about. however, this means the commands are going to have to be more complex since command mode and edit mode are the same.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;With vim, you have modal editing, which means commands are simpler to execute, but you have to deal with mode switching.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Both editors can handle 99% of things people want them to do when coding (I can't think of a particular feature that one has the other doesn't that i would miss), It just comes down to which way you prefer working.  &lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-10-05T13:28:12.647" CommunityOwnedDate="2011-04-12T23:03:04.020" />
  <row Id="9605" PostTypeId="1" AcceptedAnswerId="9608" CreationDate="2010-10-05T13:28:57.903" Score="19" ViewCount="2849" Body="&lt;p&gt;&lt;code&gt;“There are two ways to write error-free programs; only the third one works.”&#xA;(Alan J. Perlis)&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recently heard this quote from my friend, and was unable to understand the deeper meaning behind it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can somebody make me understand this one of the most talked about Programming quotes.&lt;/p&gt;&#xA;" OwnerUserId="4522" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-10-15T11:44:47.143" LastActivityDate="2010-10-15T11:44:47.143" Title="Can you help me understand the meaning of this quote?" Tags="&lt;quotes&gt;" AnswerCount="12" CommentCount="1" FavoriteCount="5" />
  <row Id="9606" PostTypeId="2" ParentId="9605" CreationDate="2010-10-05T13:32:15.230" Score="55" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;There is no third way.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;There is no way to write error-free programs&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-05T13:32:15.230" />
  <row Id="9608" PostTypeId="2" ParentId="9605" CreationDate="2010-10-05T13:33:43.287" Score="26" ViewCount="" Body="&lt;p&gt;It means there are really &lt;em&gt;no&lt;/em&gt; error-free programs.  A profound quote about ways to avoid errors with an error itself is parody.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-10-05T13:33:43.287" CommentCount="2" />
  <row Id="9609" PostTypeId="2" ParentId="9605" CreationDate="2010-10-05T13:33:53.957" Score="5" ViewCount="" Body="&lt;p&gt;This means that all non-trivial programs will have bugs. It's just a funny way of saying there's no way to write an error-free program.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-05T13:33:53.957" />
  <row Id="9611" PostTypeId="2" ParentId="9576" CreationDate="2010-10-05T13:41:11.703" Score="7" ViewCount="" Body="&lt;p&gt;In my experience this is not true, although I realize now that I do not know a lot of old developers. The oldest one I know is just over 40 years old, and he's still keeping up with new technologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While most of the people I know in the IT industry are in their late 20s or early 30s, I don't think this is because everyone who's older have burned out - more likely it's because the industry has grown so tremendously the last 20 years, and there has been such a need for more people that has been filled by younger people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for many in the IT industry there have not been enough time yet to have a lifetime career yet. Although there have been times where I have considered doing something completely different, this has just been a consequence of being close to burning out, and I'm much happier now that I've changed my working style. I'm pretty sure I will have a lifetime career in the IT industry, in some way or another.&lt;/p&gt;&#xA;" OwnerUserId="1020" LastActivityDate="2010-10-05T13:41:11.703" CommentCount="1" />
  <row Id="9612" PostTypeId="2" ParentId="9598" CreationDate="2010-10-05T13:43:21.377" Score="4" ViewCount="" Body="&lt;p&gt;Yes programming will help, but any sort of logic/problem solving will help improve your programming skills.  For example taking a formal course in logic, or solving Sudoku puzzles.  There are some great websites out there with programming puzzles to try, look for project Euler for starters&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2010-10-06T11:40:42.193" LastActivityDate="2010-10-06T11:40:42.193" CommentCount="3" />
  <row Id="9614" PostTypeId="1" CreationDate="2010-10-05T13:44:16.290" Score="12" ViewCount="857" Body="&lt;p&gt;Is there a difference between 'scripters' and 'programmers'?   What is the dividing line between scripters and programmers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps all scripters be considered to be a programmer.  If not all scripters can fall into the same camp, what about those people who use external objects such as COM objects, Win32's, etc. via an interop library?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as script languages I'm thinking of are (but not limited to) perl, bash, javascript, powershell, and batch files.&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-10-05T13:49:40.807" LastActivityDate="2010-11-30T06:51:52.900" Title="When does a &quot;scripter&quot; become a &quot;programmer&quot;?" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;non-programmers&gt;&lt;scripting&gt;" AnswerCount="17" CommentCount="7" FavoriteCount="7" />
  <row Id="9616" PostTypeId="2" ParentId="9614" CreationDate="2010-10-05T13:47:44.957" Score="26" ViewCount="" Body="&lt;p&gt;I would argue that a scripter is a programmer, scripting languages are still programming languages :).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some will argue that you're only a programmer once you've picked up your first non-scripting language.  Your Mileage May Vary comes to mind here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some will also argue that a scripter has no formal methodology/training behind them, in that case those people will argue you're only a programmer once you apply formal methodologies to your coding.  Again YMMV here.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-10-05T13:47:44.957" CommentCount="6" />
  <row Id="9618" PostTypeId="2" ParentId="9572" CreationDate="2010-10-05T13:51:41.043" Score="0" ViewCount="" Body="&lt;p&gt;Hability to identify similarities on tickets that already closed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Could be used data mining algoritms, perhaps.&lt;/p&gt;&#xA;" OwnerUserId="3082" LastActivityDate="2010-10-05T13:51:41.043" />
  <row Id="9619" PostTypeId="2" ParentId="9598" CreationDate="2010-10-05T13:56:03.120" Score="9" ViewCount="" Body="&lt;p&gt;I think full-time programming practices my &lt;em&gt;logical&lt;/em&gt; skills quite enough, and they need rest  after work. Doing something else such as practicing &lt;em&gt;motoric&lt;/em&gt; skills by playing musical instruments is good to the brain.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-05T13:56:03.120" CommentCount="1" />
  <row Id="9620" PostTypeId="2" ParentId="8973" CreationDate="2010-10-05T13:57:40.500" Score="20" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is easy to learn for an absolute beginner, yet includes support for powerful features such as proper OOP, higher order functions and closures. It also comes with a pretty big library, so it is easy to get something useful up and running in a very short time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the same case can be made for other similar languages like Ruby.&lt;/p&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-10-05T13:57:40.500" CommentCount="4" />
  <row Id="9621" PostTypeId="1" CreationDate="2010-10-05T13:59:22.953" Score="11" ViewCount="458" Body="&lt;p&gt;I am home schooling a 15-year-old and would like to teach him programming.   Our home computers are all running Ubuntu.  What are some good options?  So far I am leaning toward Scratch, but I also recently found out there is a free Basic project in the Ubuntu repo geared toward teaching, although I haven't checked it out yet.  I also have thought of jumping straight to Mobile development, since he has an Android phone and that would be a pretty impressive conversation starter if he could learn to develop his own apps.  I'm very open minded on this... sky's the limit!&lt;/p&gt;&#xA;" OwnerUserId="4526" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-10-05T17:07:54.060" LastActivityDate="2010-10-20T07:43:10.350" Title="Teach Linux programming to home-schooled 15-year old" Tags="&lt;teaching&gt;&lt;linux&gt;&lt;home-schooling&gt;" AnswerCount="11" CommentCount="7" FavoriteCount="1" />
  <row Id="9622" PostTypeId="2" ParentId="9584" CreationDate="2010-10-05T14:03:57.027" Score="1" ViewCount="" Body="&lt;p&gt;Wow, nice question&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some sources for inspiration :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://framework.zend.com/manual/en/coding-standard.html&quot; rel=&quot;nofollow&quot;&gt;Zend Framework - php coding style&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml (as new user cannot post two hyperlink)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4523" LastActivityDate="2010-10-05T14:03:57.027" />
  <row Id="9623" PostTypeId="2" ParentId="9614" CreationDate="2010-10-05T14:06:14.373" Score="4" ViewCount="" Body="&lt;p&gt;I wouldn't object that a scripter is a programmer, but I would argue the difference between a scripter and a programmer, or rather the difference between an unsophisticated programmer and an experienced professional programmer is the realization of the importance of,&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;algorithms and computational complexity&lt;/li&gt;&#xA;&lt;li&gt;code readability and maintainability&lt;/li&gt;&#xA;&lt;li&gt;error handling&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;etc.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-05T14:06:14.373" />
  <row Id="9624" PostTypeId="2" ParentId="9621" CreationDate="2010-10-05T14:07:42.270" Score="10" ViewCount="" Body="&lt;p&gt;Python is a pretty good choice, and can run on linux. you might want to look into &lt;a href=&quot;http://www.pygame.org/news.html&quot; rel=&quot;nofollow&quot;&gt;Pygame&lt;/a&gt;, a framework for building your own games. There's also a lot of games whose source is available, so you could look at it and manipulate to see how it affects it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Possible Books to use (based on comments):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://diveintopython.org/&quot; rel=&quot;nofollow&quot;&gt;Dive into Python&lt;/a&gt; (free eBook)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.manning.com/briggs/&quot; rel=&quot;nofollow&quot;&gt;Hello, Python!&lt;/a&gt; (from manning early access program)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.google.com/products/catalog?rlz=1C1CHFX_enUS373US373&amp;amp;q=head+first+programming&amp;amp;um=1&amp;amp;ie=UTF-8&amp;amp;cid=16556404490556085155&amp;amp;ei=YEarTK68McT_lgf7rYHdCA&amp;amp;sa=X&amp;amp;oi=product_catalog_result&amp;amp;ct=result&amp;amp;resnum=4&amp;amp;ved=0CC0Q8wIwAw#&quot; rel=&quot;nofollow&quot;&gt;Head First Programming&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="190" LastEditorUserId="190" LastEditorDisplayName="" LastEditDate="2010-10-05T15:38:45.957" LastActivityDate="2010-10-05T15:38:45.957" CommentCount="4" />
  <row Id="9625" PostTypeId="2" ParentId="9576" CreationDate="2010-10-05T14:14:45.553" Score="10" ViewCount="" Body="&lt;p&gt;In my field, embedded systems, I've rarely met anyone younger than 40.  At my startup we've had four different contractors at various times besides myself, and three of the four were over 50.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm over 60 and have no plans to retire anytime soon.  (Well I might semi-retire and cut back to 40 hours a week someday.)  I've been doing this type of work for nearly 40 years and it's still fun.  Some days I can't believe I'm getting paid to do what I do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know there are some younger guys entering the field, because I've seen them post over on the &lt;a href=&quot;http://electronics.stackexchange.com/&quot;&gt;Electronics and Robotics&lt;/a&gt; SE site.  There was a &lt;a href=&quot;http://electronics.stackexchange.com/questions/4832/what-is-your-level-of-electronics-knowledge&quot;&gt;question&lt;/a&gt; re level of electronics experience, and just about everyone that answered was doing some type of embedded work.  Experience ranged from those just graduating to old-timers like myself.  Many had a combination of EE and CS degrees like I do.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-05T14:14:45.553" />
  <row Id="9626" PostTypeId="2" ParentId="9614" CreationDate="2010-10-05T14:15:45.563" Score="9" ViewCount="" Body="&lt;p&gt;Even when your granny set up your DVD recorder to save a TV show from channel A, starting at X, ending at Y, she &lt;em&gt;programs&lt;/em&gt;.  But does it make your granny a programmer?  No.  As anyone who managed to attach two pipes doesn't become a plumber on this basis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming can be understood both as &lt;em&gt;activity&lt;/em&gt; and as a &lt;em&gt;profession&lt;/em&gt;.  We've already seen that even your granny performs such activity as programming.  And from the professional point of view, it's orthogonal to the language you program in.  A sysadmin who heavily uses his own scripts to start up, query and restart servers and services is not a programmer. But a guy who works in RedHat, and maintains the same set of scripts as a part of their Linux Distribution is a programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And whether you treat shell script and VBscript guys programmers depends on your hubris only.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-10-05T14:15:45.563" />
  <row Id="9627" PostTypeId="2" ParentId="9621" CreationDate="2010-10-05T14:17:30.370" Score="1" ViewCount="" Body="&lt;p&gt;Bash scripting would be good as I find the more I get into linux the more I want to script things and automate stuff.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to teach programming, I would suggest something that is easy to grasp and easy to produce something.  That something could be anything, but aside from specific languages I would suggest teaching some of the basics of specifications.  In this regard, teach him/her an understanding that usually before you just start &quot;cowboy coding&quot; you want to look at the problem you have and come up with a reasonable solution (pseudo-algorithm if you will) for how to approach it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This design fundamentals will be crucial to him/her not becoming frustrated with spaghetti code and learning to design before typing.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Python, perl, php, javascript are all good candidates to get up and running.  If they take an interest to programming, maybe ask them what they want to tell the computer to do which will steer the course from there.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best luck! &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-05T14:17:30.370" />
  <row Id="9628" PostTypeId="2" ParentId="9432" CreationDate="2010-10-05T14:19:34.300" Score="1" ViewCount="" Body="&lt;p&gt;Explain to them that the lack of documentation is slowing you down and see if you can setup a block of time with the other developer for him/her to teach you the CMS system. If they really do not want you bothering the other developer, at least let them be aware that it is slowing you down because you are having to figure out an unknown system on your own (a nice time to bring up something like that is when they say &quot;hi how's it going&quot; - answer with some variation of &quot;slow because there is no documentation on how to use your CMS system and I'm having to figure it out myself&quot;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other then that, I've often found the best way to figure something out is to pick a task and get started on it. It will be slow at first, but as you work through it you often learn about the rest of the application.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-10-05T14:19:34.300" CommunityOwnedDate="2010-10-05T14:19:34.300" CommentCount="1" />
  <row Id="9629" PostTypeId="1" CreationDate="2010-10-05T14:23:59.090" Score="6" ViewCount="546" Body="&lt;p&gt;What language will give you the greatest acceptance and possibly admiration amongst your &lt;a href=&quot;http://programmers.stackexchange.com/questions/2846/which-programming-language-do-you-really-hate&quot;&gt;peers&lt;/a&gt; ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The goal of this is to understand if there is a common thread between what is highly regarded within the academic camps compared to what corporations respect, hopefully enough to hire someone based on their skill.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think we'll benefit from articulating what the differences are, and it may shed light on what a student should study in school (depending upon their ambitions).&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-10-06T01:38:21.330" LastActivityDate="2010-10-06T13:08:36.540" CommunityOwnedDate="2010-10-05T14:23:59.090" Title="What language gets the most respect among language theorists (or) in the real world?" Tags="&lt;programming-languages&gt;&lt;career&gt;&lt;holy-war&gt;" AnswerCount="8" CommentCount="0" FavoriteCount="3" />
  <row Id="9630" PostTypeId="1" AcceptedAnswerId="9640" CreationDate="2010-10-05T14:26:32.160" Score="4" ViewCount="267" Body="&lt;p&gt;I am keen to move forward in the web apps development field, and wondered what you guys considered the next logical step? .net? asp? c#?&lt;/p&gt;&#xA;" OwnerUserId="4499" LastActivityDate="2010-10-16T17:18:53.853" Title="Currently a PHP developer, what is the logical next language to learn as I progress in the web apps industry?" Tags="&lt;career&gt;" AnswerCount="8" />
  <row Id="9631" PostTypeId="1" CreationDate="2010-10-05T14:28:48.370" Score="6" ViewCount="231" Body="&lt;p&gt;I keep a continuous work journal, usually making a few small entries daily. I like to keep track of design and implementation decisions I've made, as well as softer, people-related issues. Right now, I've got one &quot;todo&quot; text document that I use to keep track of my general tasks, and then I create a text document for each project. On any given day I've got three or four notepad windows open and am alt-tabbing between them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to have all this info in one place. I'd like it to be available categorically, as well as chronologically, and I'd like it to be searchable. I definitely don't want it to be a public blog. I don't mind having something in the cloud, like a Google Doc, but I want it to be private. I'd prefer something that boils down to a glorified file -- something that can be backed up easily, copied wherever I want, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anybody else do this or am I just obsessive?&lt;/p&gt;&#xA;" OwnerUserId="4527" LastActivityDate="2010-10-06T05:55:34.507" ClosedDate="2010-10-07T00:13:09.650" Title="work journal suggestion" Tags="&lt;work&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="2" />
  <row Id="9632" PostTypeId="2" ParentId="9630" CreationDate="2010-10-05T14:30:47.720" Score="-1" ViewCount="" Body="&lt;p&gt;From PHP? I would say Java. Shares many of the benefits of PHP. It's free, open source, easily obtainable, and not &lt;em&gt;hard&lt;/em&gt; to learn. Hard to master, but not hard to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a Web Development standpoint J2EE is a standard. Community support is excellent as is the documentation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would stay away from .NET unless you intend on becoming a Microsoft developer and using their &quot;stack&quot; which includes SQL Server, the .NET framework, IIS, etc. This all costs money. If you can pull your weight in Java and PHP doing any other language will &lt;em&gt;not&lt;/em&gt; be difficult.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-05T14:30:47.720" CommentCount="8" />
  <row Id="9633" PostTypeId="2" ParentId="9621" CreationDate="2010-10-05T14:32:41.897" Score="3" ViewCount="" Body="&lt;p&gt;Any scripting language (Python, Ruby, Perl) will IMO teach bad practices. Start off with something with more structure and less help. C++ or Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Higher level scripting languages come with conveniences that are not found at other levels of programming. Callback functions, &lt;code&gt;.each&lt;/code&gt; loops, dynamic typing, built-in operators, libraries. These are all detrimental to your overall mindset. Limit the comforts available until he can create those comforts himself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start off dumb. Working in something like C++ or Java that forces you to choose a type for your variable and offers excellent language structure enhances your ability to think like a programmer. Then moving on to &quot;smarter&quot; languages will be easier. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;If you were training a cook would you buy pre-seasoned food? Or would you give him the tools to create it? &lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-10-05T16:37:53.123" LastActivityDate="2010-10-05T16:37:53.123" CommentCount="13" />
  <row Id="9634" PostTypeId="2" ParentId="9631" CreationDate="2010-10-05T14:35:27.897" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.evernote.com/&quot; rel=&quot;nofollow&quot;&gt;Evernote&lt;/a&gt;&lt;/strong&gt; springs to mind immediately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also used &lt;strong&gt;Microsoft OneNote&lt;/strong&gt; for a similar purpose before, but it's kind of a beast. Evernote is a lot more accessible. But if you have access to a full version of Office, give OneNote a shot for sure.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-05T14:35:27.897" CommentCount="5" />
  <row Id="9635" PostTypeId="2" ParentId="9576" CreationDate="2010-10-05T14:36:38.380" Score="18" ViewCount="" Body="&lt;p&gt;This is a pretty demanding career if you don't love it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you see a lot of people who get into programming for the money, but when they realize how difficult it is, they quickly look to move into management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't love it, it's a pretty fast treadmill to run on.&lt;/p&gt;&#xA;" OwnerUserId="165" LastEditorUserId="165" LastEditorDisplayName="" LastEditDate="2010-10-05T15:01:21.480" LastActivityDate="2010-10-05T15:01:21.480" CommentCount="5" />
  <row Id="9636" PostTypeId="2" ParentId="9621" CreationDate="2010-10-05T14:37:27.753" Score="1" ViewCount="" Body="&lt;p&gt;Since he is so young. I would start with OO programming language like Java or Python. Teach him good practices, and so he doesn't later on begin with bad habits. Also being able to get around in a bash terminal doesn't hurt either trust me. Since I didn't till I started work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a link to a programming book free online for kids to start learning programming geared towards 11th and 12th graders, but again being ahead of the curve isn't bad. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://greenteapress.com/&quot; rel=&quot;nofollow&quot;&gt;How To Think Like a Computer Scientist&lt;/a&gt; series is amazing for beginners.&lt;/p&gt;&#xA;" OwnerUserId="2446" LastActivityDate="2010-10-05T14:37:27.753" CommentCount="1" />
  <row Id="9637" PostTypeId="2" ParentId="9630" CreationDate="2010-10-05T14:37:31.640" Score="5" ViewCount="" Body="&lt;p&gt;Ruby. Ruby on Rails is a nice web framework. Both Ruby and PHP have similar syntax as Perl.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Python. Django is another nice web framework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can't go wrong either way. See &lt;a href=&quot;http://stackoverflow.com/questions/91846/rails-or-django-or-something-else&quot;&gt;this discussion about Rails vs. Django&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-05T14:37:31.640" CommentCount="5" />
  <row Id="9639" PostTypeId="2" ParentId="9614" CreationDate="2010-10-05T14:39:06.040" Score="12" ViewCount="" Body="&lt;p&gt;Generally the difference is that a &quot;scripter&quot; is writing scripts as part of some other process (IE, for batch processing, or for running backups), whereas a programmer is actually writing a complete application of some sort. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The language is really irrelevant. The scripter is just writing &quot;quick and dirty&quot; scripts in order to get a job done, whereas a programmer is trying to create something that will be useful for a longer period. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The distinction can get hazy of course, but it's one of those areas where pretty much all programmers are also scripters, but not all scripters are programmers.&lt;/p&gt;&#xA;" OwnerUserId="4529" LastActivityDate="2010-10-05T14:39:06.040" />
  <row Id="9640" PostTypeId="2" ParentId="9630" CreationDate="2010-10-05T14:41:53.073" Score="2" ViewCount="" Body="&lt;p&gt;I don't see there being a 'next logical step.'  There are other things you can learn, which would all be very interesting and worthwhile, but there is no progression as your referring to (outside of the subjective and contentious opinions of your fellow programmers.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you using PHP and HTML and Javascript fluently together?  That to me would be a next step, if you are not currently doing this... Many great things can be accomplished with this combination.  Have you used jQuery and built something Web 2.0-ish?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;C# is a great language and very powerful... As a PHP developer with over a decade of experience, I have been using C# to learn something new and advance my abilities at work and otherwise.  However, it feels less 'free' than using PHP and rolling your own &amp;lt;everything&amp;gt;..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn everything you have the time and ability for, it's all good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: As mentioned by Jeff Davis... how are your SQL skills?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This would be the #1 advancement without changing your programming language.  The more fluent you are with managing the data in the back-end, the more options you will have and the more capable you will be.&lt;/p&gt;&#xA;" OwnerUserId="189" LastEditorUserId="189" LastEditorDisplayName="" LastEditDate="2010-10-05T14:48:53.383" LastActivityDate="2010-10-05T14:48:53.383" CommentCount="2" />
  <row Id="9643" PostTypeId="2" ParentId="9614" CreationDate="2010-10-05T14:44:04.833" Score="0" ViewCount="" Body="&lt;p&gt;scripter = very inexperienced programmer, who knows nothing like OOP, MVC, algorithms, readable code, agile, picking right frameworks/libraries for work, working with DBs, optimising code for speed, etc.&lt;/p&gt;&#xA;" OwnerUserId="2998" LastActivityDate="2010-10-05T14:44:04.833" />
  <row Id="9644" PostTypeId="2" ParentId="9605" CreationDate="2010-10-05T14:45:31.897" Score="29" ViewCount="" Body="&lt;p&gt;I'll answer with another quote...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A strange game. The only winning move&#xA;  is not to play.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;;-)&lt;/p&gt;&#xA;" OwnerUserId="4082" LastActivityDate="2010-10-05T14:45:31.897" CommentCount="2" />
  <row Id="9645" PostTypeId="2" ParentId="9630" CreationDate="2010-10-05T14:46:21.913" Score="0" ViewCount="" Body="&lt;p&gt;Aim for practicality and for experience. You want something that is both useful (for whatever you are trying to do) and different enough that you will grow. Perl, Ruby and Python are so similar that you won't really grow a whole lot by learning them (albeit, you will grow &lt;em&gt;some&lt;/em&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C# is likely to fit the bill, but it depends upon what you want to do. Definitely learn SQL if you don't have that down yet. You can move much faster when you master the database.&lt;/p&gt;&#xA;" OwnerUserId="4529" LastActivityDate="2010-10-05T14:46:21.913" />
  <row Id="9650" PostTypeId="2" ParentId="6543" CreationDate="2010-10-05T14:58:21.793" Score="2" ViewCount="" Body="&lt;p&gt;O/R-M has been criticized regularly. Ted Neward called it the &quot;&lt;a href=&quot;http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Computer+Science.aspx&quot; rel=&quot;nofollow&quot;&gt;Vietnam of Computer Science&lt;/a&gt;&quot; a few years ago. O/R-M&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;starts well, gets more complicated as&#xA;  time passes, and before long entraps&#xA;  its users in a commitment that has no&#xA;  clear demarcation point, no clear win&#xA;  conditions, and no clear exit&#xA;  strategy.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Unless you just write you own ad-hoc mapping (which is a good solution in many cases, as other have already said), you could look at alternatives such as using non-relational database. Some say that a truly object database is better, other buzzwords mentioned in this context are LINQ, Ruby, and Tutorial D. I suppose, in contrast to truly relational databases,  there are truly object databases. But in practice I found that conceptual data modeling - that is to find out, what real world objects you want to store data about, and how these objects relate to each other -  is more important that fiddling out how to express you conceptual model in any programming or database language.&lt;/p&gt;&#xA;" OwnerUserId="2286" LastActivityDate="2010-10-05T14:58:21.793" CommentCount="3" />
  <row Id="9651" PostTypeId="2" ParentId="9539" CreationDate="2010-10-05T15:05:34.550" Score="5" ViewCount="" Body="&lt;p&gt;I think in the long term, as hardware capabilities evolve (e.g. massive parallelism and millions of cores) programming languages will move away from &quot;telling the computer what to do&quot; and move towards &quot;describe the problem, and the computer will compile a solution&quot; - that is, less imperative and more functional.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good compiler can be programmed to translate something into effective machine code that takes advantage of your hardware if it knows what the program &lt;em&gt;is&lt;/em&gt;. It's a lot harder if it needs to infer things about the program from what it &lt;em&gt;does&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2348" LastActivityDate="2010-10-05T15:05:34.550" CommentCount="5" />
  <row Id="9652" PostTypeId="1" CreationDate="2010-10-05T15:10:29.163" Score="3" ViewCount="102" Body="&lt;p&gt;I'm fascinated by WCF and the abilities of the Service Bus.  What interesting implementations have you seen?&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-10-05T15:38:41.497" Title="What are some interesting uses of the Azure Service Bus?" Tags="&lt;cloud&gt;&lt;wcf&gt;&lt;azure&gt;" AnswerCount="1" FavoriteCount="3" />
  <row Id="9654" PostTypeId="2" ParentId="9614" CreationDate="2010-10-05T15:17:57.703" Score="11" ViewCount="" Body="&lt;p&gt;Imagine being in a software house. Imagine having one programmer and one scripter. The boss asks some software to be done.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Can the scripter get the job done? Most likely.&lt;/li&gt;&#xA;&lt;li&gt;Can the scripter write readable and maintenable code? Almost impossible.&lt;/li&gt;&#xA;&lt;li&gt;Can the scripter apply the right paradigms, design patterns and choose the right architecture, frameworks, etc? Hell he doesn't even know what this stuff means.&lt;/li&gt;&#xA;&lt;li&gt;Can the programmer work as fast as the scripter? Not likely.&lt;/li&gt;&#xA;&lt;li&gt;Can the programmer write code that any other programmer will be able to read and mantain? Almost always.&lt;/li&gt;&#xA;&lt;li&gt;Can the programmer analyze, structure, work with complex stuff and make choiches foreseeing the future? Hell yeah.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3426" LastActivityDate="2010-10-05T15:17:57.703" CommentCount="10" />
  <row Id="9655" PostTypeId="2" ParentId="2846" CreationDate="2010-10-05T15:20:59.323" Score="2" ViewCount="" Body="&lt;h2&gt;FCV&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;FCV (Format Conversion Syntaxes) is a proprietary language for conversion of metadata records in library systems, invented by PICA (now OCLC). There is no official standard, nor a stand-alone compiler or interpreter - you can only use it combined with the whole library system (which changes FCV syntax with every new version, of course). Meanwhile the functionality of the whole system is deeply buried in tons of ancient FCV scripts without any hope of refactoring or debugging.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take this as an example of non-standard, vendor-dependent &quot;scripting languages&quot; and stay away from anything without an open source reference compiler/interpreter. I bet that other large and old software system (SAP, IBM...) have similar build-in traps.&lt;/p&gt;&#xA;" OwnerUserId="2286" LastActivityDate="2010-10-05T15:20:59.323" CommunityOwnedDate="2010-10-05T15:20:59.323" />
  <row Id="9656" PostTypeId="2" ParentId="9652" CreationDate="2010-10-05T15:24:21.660" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Port Bridge&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This project allows several NAT'ed servers to access several NAT'ed clients across the internet over a single service bus connection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Ij0my.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a pretty smart implementation that will really get you thinking.  Below is the source&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/b/clemensv/archive/2009/11/18/port-bridge.aspx&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com/b/clemensv/archive/2009/11/18/port-bridge.aspx&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;... and another explanation of the same. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://brentdacodemonkey.wordpress.com/2010/05/05/azure-appfabric-%e2%80%93-a-bridge-going-anywhere/&quot; rel=&quot;nofollow&quot;&gt;http://brentdacodemonkey.wordpress.com/2010/05/05/azure-appfabric-%e2%80%93-a-bridge-going-anywhere/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, there is a related project called &quot;SocketShifter&quot; on codeplex:&#xA;&lt;a href=&quot;http://socketshifter.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;http://socketshifter.codeplex.com/&lt;/a&gt;  Although the codeplex site advises using portbridge, I do see recent check ins (Aug 2010) and not sure which one is more up-to-date.  It may be worth investigating.&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-10-05T15:38:41.497" LastActivityDate="2010-10-05T15:38:41.497" CommentCount="1" />
  <row Id="9657" PostTypeId="1" CreationDate="2010-10-05T15:26:20.407" Score="10" ViewCount="260" Body="&lt;p&gt;I have very severe &lt;a href=&quot;http://en.wikipedia.org/wiki/Dyslexia&quot; rel=&quot;nofollow&quot;&gt;Dyslexia&lt;/a&gt; along with &lt;a href=&quot;http://en.wikipedia.org/wiki/Dysnomia_%28disorder%29&quot; rel=&quot;nofollow&quot;&gt;Dysnomia&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Dysgraphia&quot; rel=&quot;nofollow&quot;&gt;Dysgraphia&lt;/a&gt;. I have known about it since I was a child. My reading and writing skills are pretty crippled, but I have learned to deal with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, with today's IDEs, I find it very easy to stay focused and in the zone when I code. But when I write text (like this post) I find it much harder to stay focused.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, do dyslexics find it easier to read and write code compared to general reading and writing? What types of tricks and tools do dyslexics use to help them master programming better than normal reading and writing?&lt;/p&gt;&#xA;" OwnerUserId="3421" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-10-05T16:13:51.563" LastActivityDate="2010-10-05T22:18:35.040" Title="Programming with Dyslexia" Tags="&lt;productivity&gt;&lt;dyslexia&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="1" />
  <row Id="9658" PostTypeId="2" ParentId="2846" CreationDate="2010-10-05T15:26:20.703" Score="5" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;I hate &lt;strong&gt;PHP&lt;/strong&gt; for its tag-soup nature, and for trying to emulate an OOP language, failing so -miserably.&lt;/li&gt;&#xA;&lt;li&gt;I hate &lt;strong&gt;VB&lt;/strong&gt; in any of his incarnation for being loose typed and procedural.&lt;/li&gt;&#xA;&lt;li&gt;I hate &lt;strong&gt;Java&lt;/strong&gt; because... well... if you ever worked with java you know why.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3426" LastEditorUserId="17246" LastEditorDisplayName="" LastEditDate="2011-04-26T15:18:31.157" LastActivityDate="2011-04-26T15:18:31.157" CommunityOwnedDate="2010-10-05T15:26:20.703" CommentCount="2" />
  <row Id="9659" PostTypeId="2" ParentId="9630" CreationDate="2010-10-05T15:29:56.673" Score="-3" ViewCount="" Body="&lt;p&gt;I have two suggestions for you, as in my experience they are the best choices for web developing nowadays.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Asp.Net, strictly with MVC framework (avoid webforms &lt;strong&gt;AT ALL COSTS&lt;/strong&gt;). You get all the advantages of the powerful .Net framework, the beautiful C# syntax and features and the horsepower of visual studio, best ide ever. This is my first choice.&lt;/li&gt;&#xA;&lt;li&gt;Ruby on Rails. It's easy to learn and use, extremely powerful and scalable. My second choice.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;PHP is just a scripting language, not a true programming language, that promotes tag soup and spaghetti code. I wouldn't really recommend it to anyone who wants to get really serious about development. But that's just my opinion.&lt;/p&gt;&#xA;" OwnerUserId="3426" LastActivityDate="2010-10-05T15:29:56.673" CommentCount="2" />
  <row Id="9660" PostTypeId="2" ParentId="9631" CreationDate="2010-10-05T15:32:27.670" Score="0" ViewCount="" Body="&lt;p&gt;You might also use a blog to put notes to yourself. Common blogging systems allow you to categorize the posts. Which might lead to some kind of reusable searchable information store. Especially when used in conjunction with a wiki for longer texts.&lt;/p&gt;&#xA;" OwnerUserId="4489" LastActivityDate="2010-10-05T15:32:27.670" />
  <row Id="9661" PostTypeId="2" ParentId="9629" CreationDate="2010-10-05T15:34:39.740" Score="0" ViewCount="" Body="&lt;p&gt;I would choose C# every day for a very large number of reasons, I will name just a few:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Terse and strict syntax&lt;/li&gt;&#xA;&lt;li&gt;Linq&lt;/li&gt;&#xA;&lt;li&gt;Lambda expressions&lt;/li&gt;&#xA;&lt;li&gt;Underlying .Net framework&lt;/li&gt;&#xA;&lt;li&gt;It's an OOP language&lt;/li&gt;&#xA;&lt;li&gt;Huge community support&lt;/li&gt;&#xA;&lt;li&gt;Visual Studio&lt;/li&gt;&#xA;&lt;li&gt;I can use it to make anything: windows apps, websites, web plugins, mobile apps, web services...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3426" LastActivityDate="2010-10-05T15:34:39.740" CommunityOwnedDate="2010-10-05T15:34:39.740" CommentCount="4" />
  <row Id="9662" PostTypeId="2" ParentId="9631" CreationDate="2010-10-05T15:36:12.483" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.tiddlywiki.com/&quot; rel=&quot;nofollow&quot;&gt;Tiddlywiki&lt;/a&gt; I have found suits my needs well.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Anna said, MS OneNote too.  I used it for awhile but I find that I steer away from it because I hate running a VM just to use it.  &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-05T15:36:12.483" />
  <row Id="9663" PostTypeId="2" ParentId="5354" CreationDate="2010-10-05T15:37:06.257" Score="3" ViewCount="" Body="&lt;p&gt;Current relational databases are not purely relational but spoil relational algebra at several places (NULLs, duplicated rows etc.), so referring to the relational model to defend relational databases is no valid argument. Nevertheless relational databases are popular for good reasons. There will just be some more special types of databases or additional DBMS features to choose from. @Cervo already mentioned how XML got integrated into SQL, it was the same with object orientation and OODBMS. Because in practice &quot;relational databases&quot; are not truly relational, they can simply incorporate other features if needed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Asking for SQL: I wish that it would go away, to be replaced by a standardized language. Just now it is more like a bunch of dialects and every DBMS interprets a different subset in a slightly differently way. As far as I know SQL-92 was &lt;a href=&quot;http://articles.techrepublic.com.com/5100-10878_11-1046268.html&quot; rel=&quot;nofollow&quot;&gt;the last standard&lt;/a&gt; thanks to the NIST test suite.&lt;/p&gt;&#xA;" OwnerUserId="2286" LastActivityDate="2010-10-05T15:37:06.257" />
  <row Id="9664" PostTypeId="2" ParentId="9631" CreationDate="2010-10-05T15:38:52.103" Score="1" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.marinersoftware.com/products/macjournal/&quot; rel=&quot;nofollow&quot;&gt;MacJournal&lt;/a&gt; (on my Mac of course)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like it because I can create templates for the different types of notes that I typically make.  It also integrates nicely with my blog.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's installed locally, uses a single file for storage that you can back up, and you can export to RTF or others if you want to send your notes to somebody else.&lt;/p&gt;&#xA;" OwnerUserId="2830" LastActivityDate="2010-10-05T15:38:52.103" />
  <row Id="9665" PostTypeId="1" AcceptedAnswerId="9801" CreationDate="2010-10-05T15:41:05.953" Score="10" ViewCount="498" Body="&lt;p&gt;I got a job offer from a startup with about 70-80 engineers. I'm a fresh PhD. I'm getting about 0.01%. What percentage of stock options would be a fair price? They gave me a good base salary upfront, making me feel a little embarrassed to negotiate with them. I know every company is different, and the amount you get varies depending on the maturity of the company. How could I evaluate my stock options, and should I negotiate for more?&lt;/p&gt;&#xA;" OwnerUserId="1412" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-10-05T22:50:24.570" LastActivityDate="2010-10-06T03:12:11.103" Title="How do I evaluate a job offer?" Tags="&lt;career&gt;&lt;salary&gt;&lt;startups&gt;" AnswerCount="7" CommentCount="7" FavoriteCount="2" />
  <row Id="9666" PostTypeId="2" ParentId="9614" CreationDate="2010-10-05T15:41:11.353" Score="1" ViewCount="" Body="&lt;p&gt;I'm not posting anything that new, but I felt a distinction needed to be made.  It used to be that programmers wrote in compiled languages and scripters wrote in interpreted languages.  Is it really fair to call the guys that work on metasploit scripters now? No.  I tend to think of programming as requiring additional skill and ability, such that programs: manipulate more inputs and outputs, handle more complicated tasks, present a framework that can be utilized by other programs, and accomplish more diverse tasks.  Scripts on the other hand tend to be: more single purpose, don't expose the logic for reuse, and are written in interpreted languages.  I tend to hold to scripters use interpreted languages and programmers use compiled languages with the exceptions of python and ruby.&lt;/p&gt;&#xA;" OwnerUserId="4534" LastActivityDate="2010-10-05T15:41:11.353" CommentCount="2" />
  <row Id="9667" PostTypeId="2" ParentId="9665" CreationDate="2010-10-05T15:46:52.340" Score="2" ViewCount="" Body="&lt;p&gt;I would submit them the &lt;a href=&quot;http://joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;Joel Test&lt;/a&gt; and see how they score. If it's anything lower than 10 points, I'd stay away.&lt;/p&gt;&#xA;" OwnerUserId="3426" LastActivityDate="2010-10-05T15:46:52.340" CommentCount="1" />
  <row Id="9668" PostTypeId="2" ParentId="9665" CreationDate="2010-10-05T15:47:23.353" Score="5" ViewCount="" Body="&lt;p&gt;It depends on how established the start-up is, 70-80 engineers sounds well established so I don't think you'll easily be able to negotiate a larger percentage.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-10-05T15:47:23.353" />
  <row Id="9669" PostTypeId="2" ParentId="9621" CreationDate="2010-10-05T15:48:39.577" Score="0" ViewCount="" Body="&lt;p&gt;Based on the other answers, Android may be a great choice. Android is Java and XML. My only reservation is how Android is mixed with XML. This could be confusing to a beginner. &lt;/p&gt;&#xA;" OwnerUserId="67" LastEditorUserId="67" LastEditorDisplayName="" LastEditDate="2010-10-05T17:48:43.387" LastActivityDate="2010-10-05T17:48:43.387" />
  <row Id="9670" PostTypeId="2" ParentId="9576" CreationDate="2010-10-05T15:48:49.547" Score="0" ViewCount="" Body="&lt;p&gt;My father is a developer and he is 60 years old, he started at his late 20s. He is working freelance for his old company now, and he has become more of a manager, but he still enjoys developing thou. I think he will continue till his death.&lt;/p&gt;&#xA;" OwnerUserId="1517" LastActivityDate="2010-10-05T15:48:49.547" />
  <row Id="9671" PostTypeId="2" ParentId="9665" CreationDate="2010-10-05T15:53:25.967" Score="1" ViewCount="" Body="&lt;p&gt;Figuring out the fair market value of private stock is tough unless stock evaluation is one of your skills.  Get something in writing from managment that describes how to value your stock.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One example is to determine if your stock has any real liquidity is to use the &lt;a href=&quot;http://www.investopedia.com/terms/q/quickratio.asp&quot; rel=&quot;nofollow&quot;&gt;Quick Ratio&lt;/a&gt;... but this may not give you the whole picture.  You should also get a list of similar companies and their Fair Market Value (FMV) to determine what your's could be worth.  Your milage may vary&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-10-05T17:44:12.600" LastActivityDate="2010-10-05T17:44:12.600" CommentCount="2" />
  <row Id="9672" PostTypeId="2" ParentId="9665" CreationDate="2010-10-05T15:55:25.323" Score="3" ViewCount="" Body="&lt;p&gt;Disclaimer: I know next to nothing about stock options and stocks in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd not worry about stock value very much. If the base salary and other perks (benefits, vacation time, etc.) were agreeable and I found the job interesting and the office environment pleasant, I'd go for it.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-05T15:55:25.323" CommentCount="1" />
  <row Id="9673" PostTypeId="2" ParentId="9665" CreationDate="2010-10-05T15:59:01.587" Score="16" ViewCount="" Body="&lt;p&gt;Unless you are a founder, or very very early employee, &lt;strong&gt;stock options in a start-up are almost always worthless.  Consider it $0 bonus over your salary.&lt;/strong&gt;  If the salary is fair and you think the startup is viable (very hard to tell without knowing revenue, cash and burn rate) take the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With a start up of this size, it's extremely unlikely you would get a bigger percentage.  Options are almost always worthless unless the company is going public, or a big buy out from an established firm.  This will make the founders rich, and you might get a decent chunk of change, but it's not going to be life shattering, unless you happen to hit the 0.00001% of companies that get huge after 10 years :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Been there, done that, have several pieces of paper claiming I own lots of stock in companies long gone.)&lt;/p&gt;&#xA;" OwnerUserId="3073" LastActivityDate="2010-10-05T15:59:01.587" CommentCount="1" />
  <row Id="9674" PostTypeId="2" ParentId="9629" CreationDate="2010-10-05T16:01:37.090" Score="3" ViewCount="" Body="&lt;p&gt;Well, if we're just talking respect, I think assembly is the way to go.&lt;/p&gt;&#xA;" OwnerUserId="4529" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-10-05T18:49:18.250" LastActivityDate="2010-10-05T18:49:18.250" CommunityOwnedDate="2010-10-05T16:01:37.090" CommentCount="2" />
  <row Id="9675" PostTypeId="1" AcceptedAnswerId="9824" CreationDate="2010-10-05T16:02:24.703" Score="5" ViewCount="634" Body="&lt;p&gt;I have been discussing a project with a client and they want to use a single language to deploy to as many platforms as possible. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I am not sure that it's such a good idea, because each platform offers a different user experience and UI metaphor. In some cases, screen sizes vary as well. Also, iPhone is out of the running no matter what language we use. But, I digress...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The project is going to display an arbitrary block of text each day and will track if the user has &quot;read&quot; it. Some other features on the table are &quot;nags&quot; and the ability to go to another days' text.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know Flash from the CS3 days, and I think that translates into AIR, but I dont know if AIR can do what we want. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I have (a) little experience with Java or Python, but those seem like good contenders also. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which language should I use here? Why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is going to run on desktop platforms too. &lt;/p&gt;&#xA;" OwnerUserId="67" LastEditorUserId="67" LastEditorDisplayName="" LastEditDate="2010-10-05T17:22:14.487" LastActivityDate="2011-04-28T19:38:09.373" Title="One language to rule them all? (Them being platforms.)" Tags="&lt;programming-languages&gt;&lt;platform&gt;&lt;language-choice&gt;&lt;cross-platform&gt;" AnswerCount="11" CommentCount="1" FavoriteCount="1" />
  <row Id="9676" PostTypeId="2" ParentId="9675" CreationDate="2010-10-05T16:07:01.433" Score="2" ViewCount="" Body="&lt;p&gt;It sounds like this is for mobile platforms correct?  In that case you're pretty much out of luck as there's no language to rule them all.  There are products that will cross-compile a solution to another (such as &lt;a href=&quot;http://www.xmlvm.org/android/&quot; rel=&quot;nofollow&quot;&gt;http://www.xmlvm.org/android/&lt;/a&gt;) but apart from that you'll have to use the native language/environment.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-10-05T16:07:01.433" />
  <row Id="9677" PostTypeId="2" ParentId="9629" CreationDate="2010-10-05T16:08:14.180" Score="10" ViewCount="" Body="&lt;p&gt;At least in the circles I run in, being proficient in C++ seems to earn you some street cred. This seems especially true now that GC languages (Java, .NET) have become so widely used. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Managing your own memory is increasingly perceived as a dark-art to many programmers who came into the industry since about 2005. &lt;/p&gt;&#xA;" OwnerUserId="287" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-10-06T13:08:36.540" LastActivityDate="2010-10-06T13:08:36.540" CommunityOwnedDate="2010-10-05T16:08:14.180" />
  <row Id="9678" PostTypeId="2" ParentId="9665" CreationDate="2010-10-05T16:11:38.807" Score="4" ViewCount="" Body="&lt;p&gt;The only method to estimate the fair market value of these options at this point is to assume they are worthless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the dot-com boom years 20-25% &lt;strong&gt;overhang&lt;/strong&gt; (% of total outstanding shares allocated to employee stock options) was the norm.  The bulk of it went to the first five people.  You're getting 1/2000th, which doesn't seem like a bad deal.  It's a bonus that they've even given you enough (private) information to figure out how many shares they have outstanding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;FORGOT TO ADD:&lt;/strong&gt; About &quot;refresh&quot; grants.  Startups usually grant additional options at regular intervals (e.g.. annually) to employees that are still there (that's different from and is in addition to the vesting of previously granted options).  So, if you spend several years at this startup, you'll probably have options for many more shares than what you're being granted right now.  Refresh grants depend on performance and your role in the company, of course, so that's where you'll have more bargaining power than you do now.&lt;/p&gt;&#xA;" OwnerUserId="464" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-10-06T03:12:11.103" LastActivityDate="2010-10-06T03:12:11.103" />
  <row Id="9679" PostTypeId="2" ParentId="9675" CreationDate="2010-10-05T16:13:51.267" Score="2" ViewCount="" Body="&lt;p&gt;You might want to take a look at &lt;a href=&quot;http://www.phonegap.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.phonegap.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The application you're detailing sounds very simple, and personally i'm not a fan of layers that sit above the native platform, however this may be perfect for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: it seems like the nature of the question has changed somewhat.&lt;/p&gt;&#xA;" OwnerUserId="3890" LastEditorUserId="3890" LastEditorDisplayName="" LastEditDate="2010-10-07T12:35:31.807" LastActivityDate="2010-10-07T12:35:31.807" CommentCount="2" />
  <row Id="9680" PostTypeId="2" ParentId="9576" CreationDate="2010-10-05T16:16:53.603" Score="2" ViewCount="" Body="&lt;p&gt;I think it depends which industry you are working in. The nature of the working conditions in a bank say, is rather different to a .com style startup or a goverment institution even if you are doing essentially the same job. I certainly found I was far more stressed at the end of a week working at an investment bank than I was working for a DVD manufacturer even though my job was basically the same.&lt;/p&gt;&#xA;" OwnerUserId="4537" LastActivityDate="2010-10-05T16:16:53.603" CommentCount="1" />
  <row Id="9681" PostTypeId="2" ParentId="8364" CreationDate="2010-10-05T16:17:01.980" Score="3" ViewCount="" Body="&lt;p&gt;I'm an &quot;opera lover&quot; and it's my browser of choice. I think the main problem with using it for web development is the rather perverse fact that it has probably the best standards compliance and hence when you view a site created primarily for Opera in IE it often looks different due to IE's poor compliance. The fact that most people (clients particularly, it seems) use IE as their primary (often only) browser compounds this.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-10-05T16:17:01.980" CommentCount="2" />
  <row Id="9682" PostTypeId="2" ParentId="634" CreationDate="2010-10-05T16:17:41.637" Score="4" ViewCount="" Body="&lt;h2&gt;A native query language (e.g. LINQ)&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Going to go out and guess that besides C#, VB.NET and F# (I think...), no other language has a built-in, SQL-style language for querying and projecting collections, both natively, remotely, and a transparent mash of the two. I'm talking about &lt;strong&gt;LINQ&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;LINQ is my new jam. It's like SQL for your programming language space, without ever hitting the database. But what Microsoft also supports is having LINQ automatically generate SQL behind the scenes so you can mix local and remote sources in LINQ without having to worry about the SQL to write.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This, combined with parallel task management and multi-core on the rise, is the future.&lt;/p&gt;&#xA;" OwnerUserId="3119" LastActivityDate="2010-10-05T16:17:41.637" CommunityOwnedDate="2011-03-10T10:29:28.597" CommentCount="7" />
  <row Id="9683" PostTypeId="2" ParentId="9621" CreationDate="2010-10-05T16:21:03.280" Score="3" ViewCount="" Body="&lt;p&gt;Are you teaching him as a general &lt;em&gt;learning experience&lt;/em&gt; or is this something he wants to do as a career?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this is a learning experience, something like R is probably the most useful thing.  It will teach him problem-solving skills as well as the ability to load and analyze data files, which is also very useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this is a career thing, C is the appropriate starting point. Believe me, I taught myself QBASIC when I was 13 and C++ when I was 15. He's not too young at &lt;strong&gt;&lt;em&gt;all&lt;/em&gt;&lt;/strong&gt;. C will provide appropriate rigour and the least amount of magic. Python or other sloppy dynamic languages are quite inappropriate. They have way too much magic and hidden weirdnesses. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't hold that making something &quot;fun&quot; by dumbing it down makes the learning experience better.  It instead damages the student for bigger things and introduces bad habits. I had to unlearn aspects of QBASIC and then relearn how a computer &lt;em&gt;really&lt;/em&gt; works. That's a waste of time and a frustration. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;editorializing based on my experience as a self-taught programmer who was homeschooled then went to college for a BSCS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fun is in the mind of the person. There is no reason to select fun as a driving component for &lt;em&gt;non-elective&lt;/em&gt; education. The goal is to select that which will raise the student to a higher plane of education. Quick fulfillment through &quot;easy programming&quot; will not induce the satisfaction that comes from deep understanding or deep struggles to learn. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most good hackers learn to program in their teens through self-determination of their course. As the parent/instructor, you have a unique opportunity to either be the driving hand or the guiding hand. I would suggest you start with K&amp;amp;R's classic C book and explain that with that knowledge he can then move to Android development, kernel hacking, GUI work, etc. Fundamentals are absolutely essential to have; once you have them, you can go &lt;em&gt;anywhere&lt;/em&gt;. Let him choose where to go after he understands the basics of C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no royal road to geometry or programming . It &lt;strong&gt;will&lt;/strong&gt; be tedious, frustrating, and a lot of work, regardless of your pick of platform or language. If the end of the road - the working program - is fulfilling to him, then he will pursue it further and the fun will be extracted from the the activity and the results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit: Mason suggest Pascal/Delphi. Pascal is also great. It's not as popular as C, and is slightly 'outdated', but it still works at the memory level of the real computer. I liked Delphi a lot but the doc/tool support just wasn't available for at the time (or I couldn't find it).&lt;/p&gt;&#xA;" OwnerUserId="148" LastEditorUserId="148" LastEditorDisplayName="" LastEditDate="2010-10-05T17:55:46.503" LastActivityDate="2010-10-05T17:55:46.503" CommentCount="2" />
  <row Id="9684" PostTypeId="2" ParentId="9605" CreationDate="2010-10-05T16:21:28.807" Score="13" ViewCount="" Body="&lt;p&gt;As many other answers have already pointed out, &lt;strong&gt;there is no way to write an error-free program&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But what I'd like to point out is the quote's potential meta nature. It's essentially an out of bounds error. In the first statement, he defines the universe or &quot;list&quot; having only two possibilities or elements. Yet in the second statement, he makes reference to a third. Which is absurd! Illegal even! A third element given a two element boundary is itself an error.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Truly profound in that the quote is able to demonstrate the very essence to which it is referring.&lt;/p&gt;&#xA;" OwnerUserId="3119" LastActivityDate="2010-10-05T16:21:28.807" CommentCount="1" />
  <row Id="9685" PostTypeId="2" ParentId="9521" CreationDate="2010-10-05T16:26:33.490" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;How many books have been published about this language recently?&lt;/li&gt;&#xA;&lt;li&gt;How much chatter (IRC, e-mail, blogs) has been generated about this language recently?&lt;/li&gt;&#xA;&lt;li&gt;How many programmers un-ironically self-identify as natives of this language?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As someone pointed out, there's always a sect of people, either historians or crazies, that will go out and study dead languages for the hell of it. Dead languages are easier to find by raising this bar.&lt;/p&gt;&#xA;" OwnerUserId="3119" LastActivityDate="2010-10-05T16:26:33.490" CommentCount="2" />
  <row Id="9686" PostTypeId="2" ParentId="9554" CreationDate="2010-10-05T16:32:21.747" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;How do people manage to write and maintain such extremely complex and hard to read code?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If they are the original coders, and they keep maintaining it, they do not see it as &quot;complex and hard to read&quot;.  They probably see it as &quot;simple and easy to read&quot;, since they wrote it themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any code takes time to understand it.  It's just that some take longer than others &lt;strong&gt;:)&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="3228" LastActivityDate="2010-10-05T16:32:21.747" />
  <row Id="9687" PostTypeId="2" ParentId="9245" CreationDate="2010-10-05T16:32:27.053" Score="2" ViewCount="" Body="&lt;p&gt;A script like this is the premise of &lt;a href=&quot;http://thedaemon.com/&quot; rel=&quot;nofollow&quot;&gt;Daemon&lt;/a&gt;, an epic hacker novel from Daniel Suarez. Highly recommended. The sequel examines reputation systems (like the one used on Stack Overflow and sites like iFixit) in-depth.&lt;/p&gt;&#xA;" OwnerUserId="4544" LastActivityDate="2010-10-05T16:32:27.053" CommentCount="1" />
  <row Id="9688" PostTypeId="2" ParentId="9630" CreationDate="2010-10-05T16:36:15.597" Score="1" ViewCount="" Body="&lt;p&gt;I am not sure if this is the answer you are looking for, however i will go ahead and give you my 2 cents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you say you know PHP, that is just one part of the big equation. As others have pointed out you should know your SQL inside out, understand how to deal with huge amounts of data etc. Once you are comfortable with that, i would say the next logical step is to think about scalability and what tools are there to help you. Dont just be a PHP coder, become a solution provider. Understand the uses of memcache, understand how you can fit Sphinx in the equation when needed, have a grasp of how webservers work and how you can optimize them, learn what APC is for, learn about Hudoop, learn where you should use nginx instead of Apache, become very comfortable with linux.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started as a PHP coder, learned a bit of Java along the way. Learned .NET too and developed a very reasonable sized desktop application as well but never did i leave my beloved language behind. The web development field is very dynamic and that is why i love it. Every body talks about scalability but there arent really any standard paths to attain the perfect balance. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advise to you would be to understand all the tools of the trade, once you go deeper in that domain, you will realize that PHP is the first step towards building great and scalable web applications.&lt;/p&gt;&#xA;" OwnerUserId="2440" LastActivityDate="2010-10-05T16:36:15.597" />
  <row Id="9689" PostTypeId="2" ParentId="9245" CreationDate="2010-10-05T16:39:33.677" Score="4" ViewCount="" Body="&lt;p&gt;Mine e-mails damning evidence about all of my enemies to the media outlets.  Thanks for the idea, &lt;a href=&quot;http://www.imdb.com/title/tt0120051/&quot; rel=&quot;nofollow&quot;&gt;Patrick Stewart&lt;/a&gt;!  (I wrote the application in Objective C so that no one else can understand it.)&lt;/p&gt;&#xA;" OwnerUserId="730" LastActivityDate="2010-10-05T16:39:33.677" CommentCount="1" />
  <row Id="9690" PostTypeId="2" ParentId="9614" CreationDate="2010-10-05T16:44:32.567" Score="1" ViewCount="" Body="&lt;p&gt;My personal opinion is that a scripter becomes a programmer when he or she starts to take an interest in more than just accomplishing the job at hand, and learns how to do some of: write maintainable code, use source control, learn language features to be better/more efficient, etc.  In particular, if you want a quick and dirty test, my first and only question would be &quot;do they use source control?&quot;&lt;/p&gt;&#xA;" OwnerUserId="3047" LastActivityDate="2010-10-05T16:44:32.567" />
  <row Id="9691" PostTypeId="2" ParentId="9605" CreationDate="2010-10-05T16:52:20.233" Score="1" ViewCount="" Body="&lt;p&gt;This is the same quote my dad use to tell me when I make excuses. The saying tends to go like : &quot;There are 3 sides to a story. Their side, Your side, and the right/true/correct side&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Putting this into context with development (and being a software tester by prof. ), I would say since there are so many ways to code something it would make sense to go with &quot;There's 3 sides to coding. Your code, Their code, and the Refactored code.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this is because programmers/developers tend to refactor once the product is getting stable which is mostly too late, but most of the time the refactor is done to improve something that you and buddy did not do so well in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-05T16:52:20.233" />
  <row Id="9692" PostTypeId="2" ParentId="9245" CreationDate="2010-10-05T16:53:10.007" Score="3" ViewCount="" Body="&lt;p&gt;The Heaven's Gate group &lt;a href=&quot;http://en.wikipedia.org/wiki/Heaven%27s_Gate_%28religious_group%29&quot; rel=&quot;nofollow&quot;&gt;Heaven's Gate&lt;/a&gt; did not exactly have an 'untimely' death, but their website regularly updated for a few days after their mass suicide with additional information / propaganda / literature explaining their viewpoints.&lt;/p&gt;&#xA;" LastEditorUserId="712" LastEditorDisplayName="" LastEditDate="2010-10-05T17:10:15.523" LastActivityDate="2010-10-05T17:10:15.523" />
  <row Id="9693" PostTypeId="2" ParentId="9621" CreationDate="2010-10-05T16:55:58.533" Score="2" ViewCount="" Body="&lt;p&gt;Josh K is on the right track. Starting out with a scripting language that abstracts away the actual computer he's programming won't teach him anything about &lt;em&gt;computer programming&lt;/em&gt;; it'll teach him how to be a script kiddie who can't accomplish anything useful without copying and pasting other people's code.  But anything C based will mangle his brain with horrible syntax and hidden gotchas. It's not appropriate for kids.  Heck, it's not appropriate for adults!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want a way to teach someone to program, try a language that was designed to teach people about programming, like Pascal.  Take a look at the Free Pascal project, which is available on several platforms, including Linux.  It's an easy language to learn, and it's designed as an open-source implementation of Delphi, which is in wide use today in all sorts of important applications, so your student will actually be learning relevant skills too. :)&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-05T16:55:58.533" CommentCount="2" />
  <row Id="9694" PostTypeId="1" AcceptedAnswerId="9699" CreationDate="2010-10-05T16:59:10.677" Score="4" ViewCount="294" Body="&lt;p&gt;I have a friend who has been doing QA for about a year and wants to further their career.  I have always leaned to C using gcc and makefiles as you have to do everything yourself.  I have also read the &lt;a href=&quot;http://stackoverflow.com/questions/3088/best-ways-to-teach-a-beginner-to-pro&quot;&gt;best ways to teach a beginner to program&lt;/a&gt;, but in this case should I start with the technology his company uses, namely .NET?  Is there any drawback to learning a object-oriented high-level language first, or should I stick with C?&lt;/p&gt;&#xA;" OwnerUserId="4553" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-04-26T15:04:27.550" LastActivityDate="2011-04-26T15:04:27.550" Title="Teaching a QA person to program" Tags="&lt;.net&gt;&lt;c&gt;&lt;teaching&gt;&lt;comparison&gt;" AnswerCount="6" CommentCount="3" />
  <row Id="9696" PostTypeId="2" ParentId="9245" CreationDate="2010-10-05T17:02:43.090" Score="6" ViewCount="" Body="&lt;p&gt;Mine would be something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;from postmortemlib import AliveRFIDsensor, AliveMAILChecker&#xA;..&#xA;if AliveRFIDsensor().has_not_triggered_for(AVERAGE_DAYS_AWAY_FROM_HOME) and \&#xA;   AliveMAILChecker().getMessagesFrom(STILL_ALIVE_ACCOUNT).isEmpty():&#xA;&#xA;  #Don't look here&#xA;  cleaner = Cleaner(heavy_shredder = True)&#xA;  cleaner.wipe(XXX_DIRECTORY_LIST)&#xA;  cleaner.logout_from(XXX_EMBARASSING_SITES_ACCOUNTS)&#xA;  #TODO: try to remember other place where I've put stuff&#xA;&#xA;  #People I dislike&#xA;  mailbomber = MailBomber( level = MailBomber.MORTAL,&#xA;                           swear_level = MailBomber.STELLAR)&#xA;  mailbomber.bomb(EMAILS_OF_PEOPLE_NOT_GOOD) &#xA;  #TODO: Remember to clean email list sometimes&#xA;&#xA;  #For my coworkers&#xA;  workconnection = Connect(WORK_IP)&#xA;  workconnection.perform(Connect.CHECK_IN,&#xA;                         force = True) #Have a nice day&#xA;&#xA;  #For my family&#xA;  mailsender().send(to = FAMILY, &#xA;                    content = LAST_WORDS_OF_ME, &#xA;                    attachment = [passwords, stuff])&#xA;&#xA;  #TODO Is it all?&#xA;&#xA;  SelfDistruction.enable_in(10)&#xA;  ..&#xA;  #That's all folks&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="74" LastEditorUserId="74" LastEditorDisplayName="" LastEditDate="2010-10-05T20:16:31.107" LastActivityDate="2010-10-05T20:16:31.107" CommentCount="4" />
  <row Id="9697" PostTypeId="2" ParentId="9614" CreationDate="2010-10-05T17:10:40.810" Score="0" ViewCount="" Body="&lt;p&gt;A scripter becomes a programmer when he makes the conscious decision to improve his programming skills, instead of coasting along with minimal abilities.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-10-05T17:10:40.810" />
  <row Id="9698" PostTypeId="2" ParentId="9630" CreationDate="2010-10-05T17:14:11.677" Score="1" ViewCount="" Body="&lt;p&gt;Server-side javascript. It just makes so much sense to use the same language on both edges of the network.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-10-05T17:14:11.677" CommentCount="1" />
  <row Id="9699" PostTypeId="2" ParentId="9694" CreationDate="2010-10-05T17:16:15.870" Score="3" ViewCount="" Body="&lt;p&gt;C is not a particularly good beginner's language.  It's simple, but some things are screwy and hard to use, like strings.  I'd rather teach C++ as a first language than C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't see any problem with using something like C# or VB.NET at first.  Obviously, if your friend decides to become a good programmer, he should learn different languages as he goes along, and I'm not talking about different CLR-based Visual Studio languages, but we all have to start somewhere.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-05T17:16:15.870" CommentCount="5" />
  <row Id="9701" PostTypeId="2" ParentId="9629" CreationDate="2010-10-05T17:18:44.620" Score="12" ViewCount="" Body="&lt;h2&gt;Haskell&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I would say Haskell, its often said to be a &quot;research language&quot; and is mostly used in academia. Its also said to be an advanced language and purely functional.&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-05T17:44:48.913" LastActivityDate="2010-10-05T17:44:48.913" CommunityOwnedDate="2010-10-05T17:18:44.620" CommentCount="5" />
  <row Id="9702" PostTypeId="2" ParentId="9554" CreationDate="2010-10-05T17:20:49.487" Score="3" ViewCount="" Body="&lt;p&gt;There is a difference between hard to read and complex project. If a person doesn't understand deeply the language which the project was written or the domain of the project it doesn't means the code is badly written.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Have sure you understand the language of the project. It's not enough know the language.&lt;/li&gt;&#xA;&lt;li&gt;Learn every detail about the domain before put hands on code.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For me SQLite is far to be complex and nothing complicated. The domain of this project demands deep understanding about wide concepts.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-10-05T17:20:49.487" />
  <row Id="9703" PostTypeId="2" ParentId="9694" CreationDate="2010-10-05T17:21:19.590" Score="5" ViewCount="" Body="&lt;p&gt;I think you should choose a language that is either designed for people new to programming (Pascal used to be popular for this) or since this person is a QA it might be an easy transition to get them to start writing BDD tests in one of the BDD frameworks.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-10-05T17:21:19.590" CommentCount="3" />
  <row Id="9704" PostTypeId="2" ParentId="9598" CreationDate="2010-10-05T17:37:30.363" Score="3" ViewCount="" Body="&lt;p&gt;Like @Joonas said doing other activities helps you concentrate better when you have to...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I run every other morning and read books whenver I can&lt;/p&gt;&#xA;" OwnerUserId="1061" LastActivityDate="2010-10-05T17:37:30.363" />
  <row Id="9705" PostTypeId="2" ParentId="9657" CreationDate="2010-10-05T17:38:56.777" Score="1" ViewCount="" Body="&lt;p&gt;I feel that coding provides a wider context than general reading/writing so it doesn't rely so heavily on text parsing alone. [Speaking mainly mechanics here, not the intellectual merits.] Another point is that it's possible to be dyslexic in one language and not in another. Significantly different languages are processed in different areas of the brain and dyslexia in Chinese is quite different physiologically. May sound silly but maybe some other people are &quot;dyslexic&quot; in programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My own dyslexia is rather mild but I still avoid variable names like &quot;bdp&quot;. I also prefer fairly short chunks of code, even if the constructs are more complex or less &quot;readable&quot;. Of course, I try to keep the code maintainable but I lean towards terse end of the spectrum.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having an IDE for color-coding, auto-indent and other visual cues is of course wonderful (I use emacs). Best I having for writing normal text is spell-checking and the occasional use of outline mode.&lt;/p&gt;&#xA;" OwnerUserId="4536" LastActivityDate="2010-10-05T17:38:56.777" CommentCount="5" />
  <row Id="9706" PostTypeId="2" ParentId="9598" CreationDate="2010-10-05T17:40:38.443" Score="1" ViewCount="" Body="&lt;p&gt;General problem solving, whether this be puzzles, watching &lt;em&gt;House&lt;/em&gt;, reading a mystery novel or helping a neighbor with her car, any of these can be helpful in gaining ideas for how to build solutions.  Ideas like being greedy, divide and conquer, dynamic programming, and creating data structures just a few examples as there are probably dozens of these kinds of ideas.  How well they work is of course another story but sometimes just getting these kinds of ideas can be a great challenge.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-05T17:40:38.443" />
  <row Id="9707" PostTypeId="2" ParentId="9675" CreationDate="2010-10-05T17:44:34.823" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Adobe Flash/Flex&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(not sure if that was being ruled out in your question)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Runs in nearly all browsers, most mobile platforms and with AIR, most desktop platforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read: &lt;a href=&quot;http://business2press.com/2010/09/11/adobe-reversi-allows-developers-to-make-single-app-for-different-platforms/&quot; rel=&quot;nofollow&quot;&gt;http://business2press.com/2010/09/11/adobe-reversi-allows-developers-to-make-single-app-for-different-platforms/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Watch: &lt;a href=&quot;http://www.youtube.com/watch?v=22vicDlzmkI&amp;amp;feature=player_embedded&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=22vicDlzmkI&amp;amp;feature=player_embedded&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2279" LastActivityDate="2010-10-05T17:44:34.823" />
  <row Id="9708" PostTypeId="2" ParentId="9245" CreationDate="2010-10-05T17:44:39.370" Score="8" ViewCount="" Body="&lt;p&gt;I would write something that emails me a special link every month or so.  For which I would be required to click on it.  If I don't respond by clicking on it by a specified period of time such as a week/month/ etc, then something has happened to me, so the script would then email all my passwords and electronic assets to my next of kin.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bun not before automatically destroying my secret stash of UFO evidence and my porn collection.&lt;/p&gt;&#xA;" OwnerUserId="810" LastEditorUserId="810" LastEditorDisplayName="" LastEditDate="2010-10-05T20:46:49.593" LastActivityDate="2010-10-05T20:46:49.593" CommentCount="6" />
  <row Id="9709" PostTypeId="2" ParentId="9614" CreationDate="2010-10-05T17:47:51.783" Score="3" ViewCount="" Body="&lt;p&gt;I'm probably taking a very distinct viewpoint than everyone here, but I think &lt;em&gt;scripter is just a synonym for programmers&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe not an exact synonym, the word scripter tends to contain the sense of being less experienced and more amateurish than a programmer; however, IMO there are no technical difference between the two. &lt;/p&gt;&#xA;" OwnerUserId="3733" LastActivityDate="2010-10-05T17:47:51.783" />
  <row Id="9710" PostTypeId="2" ParentId="9629" CreationDate="2010-10-05T17:52:34.593" Score="2" ViewCount="" Body="&lt;p&gt;These are languages I consider standard toolkits: C, C++, C#, Java, Bash, Perl, Python, VB&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are languages that marks interesting people: Lisp, Haskell, Assembly, MIX/MMIX&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are langauges that marks outdated people: Cobol, Fortran, Assembly&lt;/p&gt;&#xA;" OwnerUserId="3733" LastActivityDate="2010-10-05T17:52:34.593" CommunityOwnedDate="2010-10-05T17:52:34.593" CommentCount="6" />
  <row Id="9711" PostTypeId="2" ParentId="9657" CreationDate="2010-10-05T17:53:58.523" Score="2" ViewCount="" Body="&lt;p&gt;I have a severely dyslexic friend who reads quite well when she's reading through a sheet of yellow plastic. Or when she highlights the hell out of each page. For some reason, coloring the text somehow helps her brain grok the glyphs it's seeing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So maybe syntax-highlighting and code coloring helps?&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-10-05T17:53:58.523" />
  <row Id="9712" PostTypeId="2" ParentId="9657" CreationDate="2010-10-05T17:53:59.723" Score="1" ViewCount="" Body="&lt;p&gt;When I was younger I had dyslexia (or at least that is what they said - I essentially couldn't spell worth anything and typically wrote letters or words backwards, although I was able to read and everything else just fine - or so I thought).  I have always enjoyed working with computers.  We had a Commodore Vic20 when I was in grade school and I programmed on it all the time.  My mom once commented that she would have thought that my dyslexia would make it more difficult for me to work on the computer, but the opposite seemed to be the case.  I could spell and read much pretty much without incident when working with the computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't recall it being a matter of interest (i.e. that I was able to work with the computer because it was interesting.)  I worked really hard to be able to do well with spelling and writing at other times too, but I just never really had any trouble working with the computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course at the time I did not work with an IDE or anything on the Commodore &lt;/p&gt;&#xA;" OwnerUserId="433" LastActivityDate="2010-10-05T17:53:59.723" />
  <row Id="9713" PostTypeId="2" ParentId="9245" CreationDate="2010-10-05T18:00:17.300" Score="0" ViewCount="" Body="&lt;p&gt;Daemon, a book by Daniel Suarez, is all about postmortem code on steroids...&#xA;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0451228731&quot; rel=&quot;nofollow&quot;&gt;Daemon&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-10-05T18:00:17.300" />
  <row Id="9714" PostTypeId="1" AcceptedAnswerId="9717" CreationDate="2010-10-05T18:03:23.757" Score="8" ViewCount="214" Body="&lt;p&gt;Is cloud computing mature enough to alleviate some of the pains of maintaining the IT infrastructure on site? If so, what are some of the drawbacks of adopting it? Is security and privacy a big concern?&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-05T19:34:22.260" Title="Can cloud computing replace enterprise architecture?" Tags="&lt;cloud&gt;&lt;enterprise-architecture&gt;" AnswerCount="2" CommentCount="6" />
  <row Id="9715" PostTypeId="2" ParentId="9631" CreationDate="2010-10-05T18:04:12.367" Score="0" ViewCount="" Body="&lt;p&gt;I used to use DavidRM's &lt;a href=&quot;http://www.davidrm.com/&quot; rel=&quot;nofollow&quot;&gt;The Journal&lt;/a&gt; (Windows only) for this sort of stuff.  It was easy to configure and could keep all sorts of different note structures concurrently.  It was sort of like a better organized and more generally useful EverNote (which I've started using because I like teh clowdz), but I got out of the habit after changing employers to a place that does not allow employee-owned software to be on the work PC.&lt;/p&gt;&#xA;" OwnerUserId="2129" LastActivityDate="2010-10-05T18:04:12.367" />
  <row Id="9716" PostTypeId="2" ParentId="9629" CreationDate="2010-10-05T18:19:36.450" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Lisp&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Everyone who uses is it preaches it bringing enlightenment.&#xA;2) Your code looks like nothing people have seen before.&lt;/p&gt;&#xA;" OwnerUserId="3694" LastActivityDate="2010-10-05T18:19:36.450" CommunityOwnedDate="2010-10-05T18:19:36.450" CommentCount="3" />
  <row Id="9717" PostTypeId="2" ParentId="9714" CreationDate="2010-10-05T18:21:12.427" Score="11" ViewCount="" Body="&lt;p&gt;It's not just privacy and security. Those are big enough concerns, while we wait for Craig Gentry to hurry up and make &lt;a href=&quot;http://en.wikipedia.org/wiki/Homomorphic_encryption&quot; rel=&quot;nofollow&quot;&gt;homomorphic encryption&lt;/a&gt; practical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also the matter of making your business dependent on something outside your control. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example, and this doesn't even need cloud computing: I inherited a client who runs its business off a website. It's great... until the ISP has a routing loop, or the local exchange breaks, or the datacentre hosting the website breaks something local to it. (These have all happened in the last six months.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your business is entirely dependent on things on the far side of the network, you run the risk of your business coming to a standstill every time something in the network goes wrong. It's not only a single point of failure; it's like a &lt;em&gt;string&lt;/em&gt; of single points of failure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, cloud computing's supposed to protect exactly against some of the problems I describe above. But if a backhoe goes through your exchange's cable, you're potentially in big trouble.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-05T18:21:12.427" />
  <row Id="9719" PostTypeId="2" ParentId="9631" CreationDate="2010-10-05T18:25:34.810" Score="1" ViewCount="" Body="&lt;p&gt;If you're amenable to Emacs, use &lt;a href=&quot;http://orgmode.org/&quot; rel=&quot;nofollow&quot;&gt;Org-mode&lt;/a&gt; - nothing else comes close:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Flexible tree/hierarchical overviews with quick folding and unfolding, &lt;/li&gt;&#xA;&lt;li&gt;Tagging, &lt;/li&gt;&#xA;&lt;li&gt;Tables,&lt;/li&gt;&#xA;&lt;li&gt;Dated entries and time-tracking&lt;/li&gt;&#xA;&lt;li&gt;Linking to other files/websites,&lt;/li&gt;&#xA;&lt;li&gt;Easy exporting to HTML, LaTeX/pdf,&lt;/li&gt;&#xA;&lt;li&gt;Archives, &lt;/li&gt;&#xA;&lt;li&gt;It's all just plain text - you can easily use version-control on your file,&lt;/li&gt;&#xA;&lt;li&gt;And lots more. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Visit this page for introductions and screencasts, I think you'll find that no other tool integrates so much functionality as seamlessly as Org-mode: &lt;a href=&quot;http://orgmode.org/worg/org-tutorials/index.php&quot; rel=&quot;nofollow&quot;&gt;http://orgmode.org/worg/org-tutorials/index.php&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2026" LastActivityDate="2010-10-05T18:25:34.810" />
  <row Id="9720" PostTypeId="2" ParentId="9498" CreationDate="2010-10-05T18:26:44.857" Score="3" ViewCount="" Body="&lt;p&gt;I like Linq to Sql a lot. It's simple and has a decent designer. However, I hope to end of life it in favor of Entity framework. I would like to be able to leverage the ability to modify the generators so that I can have customized objects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest benefit that these have over others (in my opinion) is that they are out of the box with VS. This is also a negative in that you are at the mercy of MS (see Linq to Sql).&lt;/p&gt;&#xA;" OwnerUserId="4085" LastEditorUserId="4085" LastEditorDisplayName="" LastEditDate="2010-10-05T18:31:49.180" LastActivityDate="2010-10-05T18:31:49.180" />
  <row Id="9722" PostTypeId="2" ParentId="9675" CreationDate="2010-10-05T18:30:03.507" Score="10" ViewCount="" Body="&lt;p&gt;These are languages that have a very good deployment factors:&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Javascript.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Why? It runs on browser, and most platforms you'd care about have a browser. Though, some lower end mobile phones may have severely stripped browser (or Opera Mini, which supports Javascript only on the proxy-side, and very limited client-side Javascript).&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;JVM&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Java Virtual Machine is ubiquitous in nearly every mobile phone, desktop, or server computer. All other things being equal, perhaps it's the best platform if you want easy portability. Nearly every mobile phone, old and new, supports JVM, the only major exception is iPhone.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Python&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Python is very ubiquitous in Linux and Unix world; and the language has a very consistent behavior across different platforms, you almost need no additional work to write a cross-platform program in python. However, most Windows doesn't ship with Python by default, and most mobile phone doesn't support Python. OTOH Jython, compiles Python code to JVM; this combines the consistency and ease of use of Python with the ubiquity of JVM platform. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't need to care about iPhone, then JVM development is the way to go.  If you hate Java's language syntax, then Jython is a nicer alternative. If you need the most portability though, Javascript is probably the way to go; however writing anything in Javascript is painful.&lt;/p&gt;&#xA;" OwnerUserId="3733" LastActivityDate="2010-10-05T18:30:03.507" CommentCount="5" />
  <row Id="9723" PostTypeId="1" CreationDate="2010-10-05T18:41:37.433" Score="22" ViewCount="514" Body="&lt;p&gt;This thought hit me the other day: How would an employer look at a one-handed programmer being interviewed? I wouldn't be surprised if the person behind the desk were thinking:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Hm, he/she only has one hand. One hand is half of two hands, hence he/she can type half as fast as a two-hander. Programmers type code, thus he/she will produce half as much code. To wit, a one-hander is half as productive as a two-handed coder.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;But good programmers do so much more than write code: they device algorithms and solutions to nitty problems; they do code-reviews and upkeep a high standard; they detect and fix bugs; and so much more. Most importantly, they think! If you want typing power, hire an orangutang!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But maybe I'm barking at a non-existant problem. Maybe employers don't think a physical disability affects their programming skills. How would I know - I've never met a physically handicapped programmer, let alone a one-handed one, to confirm it. What's your experience? Have you, for example, witnessed a physically disabled programmer not be hired because it was thought he or she wouldn't be able to do the job because of the handicap?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-05T23:07:27.063" LastActivityDate="2010-12-25T00:22:01.803" ClosedDate="2010-12-26T17:57:45.997" Title="Are physically handicapped programmers at risk of being discriminated?" Tags="&lt;discrimination&gt;" AnswerCount="11" CommentCount="6" FavoriteCount="1" />
  <row Id="9728" PostTypeId="2" ParentId="9605" CreationDate="2010-10-05T18:51:33.893" Score="2" ViewCount="" Body="&lt;p&gt;This reminds me of a nerd shirt I saw:&#xA;There are 10 types of people in the world. Those who know binary and those who don't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It could also be a play on the fact that sometimes lists are 0 indexed.&#xA;$var = array('First','Second','Third');&#xA;And you can access this list as such:&#xA;$var[0] = 'First'&#xA;$var[1] = 'Second'&#xA;$var[2] = 'Third'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the literal array index 2 points to the &quot;Third&quot; index.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-05T18:51:33.893" CommentCount="1" />
  <row Id="9729" PostTypeId="2" ParentId="9723" CreationDate="2010-10-05T18:51:59.163" Score="7" ViewCount="" Body="&lt;p&gt;During my undergraduate studies, a few friends and myself went to the recreation center to play basketball, one of which after a childhood accident was paralyzed in one arm.  My initial reaction was that he would be merely a hindrance to the game.  It was the opposite, he was quite capable as a player and held his own impressively well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure anyone with a disability is subject to discrimination, this is the nature of society we live in.  I for one though from my college experiences have learned to  &quot;never judge a book by its cover&quot; and someone with reasonable programming experience relevant to a potential job we might be hiring for would be given a chance just as anyone else would.&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-05T18:51:59.163" />
  <row Id="9730" PostTypeId="1" CreationDate="2010-10-05T19:02:15.737" Score="30" ViewCount="1097" Body="&lt;p&gt;I've heard a lot of talk about using functional languages such as Haskell as of late. What are some of the big differences, pros and cons of functional programming vs. object-oriented programming?&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-11-28T20:25:51.043" Title="Functional Programming vs. OOP" Tags="&lt;holy-war&gt;&lt;functional-programming&gt;&lt;object-oriented&gt;" AnswerCount="3" CommentCount="5" FavoriteCount="9" />
  <row Id="9731" PostTypeId="2" ParentId="9584" CreationDate="2010-10-05T19:04:52.280" Score="2" ViewCount="" Body="&lt;p&gt;The easiest way to code a php web app is certainly to mash everything together. You quickly wind up with an unmaintainable mess if you do things that way, however.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some good practices:&lt;br /&gt;&lt;br /&gt;&#xA;1) Put your JavaScript in the &amp;lt;head&amp;gt; of a document (or, better yet, in separate files that are referenced in the head). Learn how to bind event listeners in an document.onload event, rather than scattering them through your html. (Better yet, learn to use a framework like Jquery; it'll make your JavaScript much, much prettier).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Look up design patterns like MVC. You want to separate your business logic, written in PHP, from your HTML as much as possible. Ideally, you end up using a nice templating language to put together your HTML pages; at the very least, the PHP in your HTML should be terse -- mainly calling variables and looping through lists that are built elsewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Comments, indenting ... that stuff is just basic programming best practices. I tend to let my line length go above 80 characters when I'm writing HTML, just because the language is so damn verbose, but that's about the only traditional practice you should let slide -- if the rest of the team is being sloppy, they need to suck it up and shape up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;hth,&lt;br /&gt;&#xA;~ Patch&lt;/p&gt;&#xA;" OwnerUserId="2162" LastEditorUserId="2162" LastEditorDisplayName="" LastEditDate="2010-10-05T20:05:49.700" LastActivityDate="2010-10-05T20:05:49.700" CommentCount="3" />
  <row Id="9732" PostTypeId="2" ParentId="9605" CreationDate="2010-10-05T19:14:34.683" Score="0" ViewCount="" Body="&lt;p&gt;I think, technically speaking, that you could write a error free non-trivial program, but due to the Halting Problem it’s impossible prove that it’s error free. So, one must work under the assumption that all programs have bugs since it’s impossible to prove otherwise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Halting_problem&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Halting_problem&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update: &#xA;You can prove a particular algorithm will return the right answers, but that’s not the same thing as proving it’s totally correct.&#xA;&lt;a href=&quot;http://en.wikipedia.org/wiki/Correctness_(computer_science&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Correctness_(computer_science&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, my point was that the quote is referring to the fact that one must assume a program always has bugs and trying to explain why that is the case.&#xA;&lt;a href=&quot;http://en.wikipedia.org/wiki/Software_bug#Bug_management&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Software_bug#Bug_management&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1763" LastEditorUserId="1763" LastEditorDisplayName="" LastEditDate="2010-10-06T14:14:33.040" LastActivityDate="2010-10-06T14:14:33.040" CommentCount="1" />
  <row Id="9733" PostTypeId="2" ParentId="9730" CreationDate="2010-10-05T19:17:11.553" Score="12" ViewCount="" Body="&lt;p&gt;Functional programming is based on a declarative model and has its roots from lambda calculus.  It offers a lot of great concepts which can be borrowed from more imperative languages like C++ and C#. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some examples include referential transparency, lambda functions, first class functions, lazy and eager evaluation, and immutability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If for nothing else learning functional programming is useful for the concepts that it contains.  It will change the way you do programming and think about programming.  And I would guess that in the future functional programming will be just as important as object oriented programming has been.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To get started you can chose to use a pure functional language such as Haskell, or you can use a hybrid one like &lt;a href=&quot;http://programmers.stackexchange.com/questions/3129/whats-a-good-book-for-learning-f/3136#3136&quot;&gt;F#&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most good universities will cover functional programming and if you go to school I'd highly suggest you take that course.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What are some of the big differences, pros and cons of functional programming vs. object-oriented programming?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Well object oriented programming is nice because it allows you to model your complex problem into hierarchies so you can simplify the problem.  But it becomes very hard when you start to consider multi threaded programming while using mutable objects.  In such cases you need to use heavy use of synchronization objects and it's near impossible to perfect a large application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's where functional programming comes in.  Because of things like immutability functional programming really simplifies multi threaded programs.  It makes it almost trivially easy to parallelize something when you know that given input X to a function it will always output Y.   Also you know that a variable (or value in functional programming) can't change mid use from another thread.&lt;/p&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-10-17T13:51:52.047" LastActivityDate="2010-10-17T13:51:52.047" CommentCount="8" />
  <row Id="9734" PostTypeId="2" ParentId="9723" CreationDate="2010-10-05T19:19:25.183" Score="9" ViewCount="" Body="&lt;p&gt;I can see an interviewer believing that typing is a integral part of programming, but it would be an unbelievably large mistake (as most of us know).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, one of the brightest members of a programming forum I frequent is disabled, yet he is constantly available to (and often the only one who can) assist others with advanced-programming or discuss high-level topics.  &lt;/p&gt;&#xA;" OwnerUserId="4423" LastEditorUserId="4423" LastEditorDisplayName="" LastEditDate="2010-10-05T20:03:49.807" LastActivityDate="2010-10-05T20:03:49.807" CommentCount="4" />
  <row Id="9735" PostTypeId="2" ParentId="9723" CreationDate="2010-10-05T19:29:53.067" Score="21" ViewCount="" Body="&lt;p&gt;I am a programmer (web developer) with a phyiscal disability. I have full use of my hands but I use a wheelchair to get around. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, I have never been discriminated against when applying for or working at a programming-related job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the biggest stigmas that a physically disabled person has to overcome when interviewing for a job is the assumption that their outward appearance automatically means they have some sort of mental dificiency as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, any sane employer will be able to see past the disability and note that person's work experience / skill assuming they have a strong portfolio and resume. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sadly, you won't often see many physically disabled programmers due to their compounded lack of social skills / confidence that prevent them from being across the interview table in the first place :(&lt;/p&gt;&#xA;" OwnerUserId="4584" LastEditorUserId="4584" LastEditorDisplayName="" LastEditDate="2010-10-05T20:12:58.233" LastActivityDate="2010-10-05T20:12:58.233" CommentCount="1" />
  <row Id="9736" PostTypeId="2" ParentId="9714" CreationDate="2010-10-05T19:34:22.260" Score="2" ViewCount="" Body="&lt;p&gt;In my experience, there is still some code to be written to tie things together in some cases.  Where I've worked we had a couple of different cases of using services from the cloud and in each case there are a few things to consider like how well do things connect in this as those cloud services may upgrade and break something or go down for a few minutes and cause all kinds of panic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Security and availability are a couple of the big concerns but there are other issues as well.  Does an upgrade break existing functionality?  How far back does one go for backward compatibility?  How well does this plug in with other systems as very few things run in isolation?  For example, a content management system may have to interact with a customer relationship management system, a translation management system, an enterprise resource planning system among others.  The cloud can be useful for some things but it is still maturing to my mind.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-05T19:34:22.260" />
  <row Id="9737" PostTypeId="2" ParentId="6834" CreationDate="2010-10-05T19:36:02.550" Score="2" ViewCount="" Body="&lt;p&gt;Im a huge fan of the &lt;a href=&quot;http://blogs.iis.net/webtopics/archive/2010/05/13/visual-studio-2010-my-favorite-features.aspx&quot; rel=&quot;nofollow&quot;&gt;alt click multi line ability&lt;/a&gt; in Vs2010 best thing I've found about the new version.&lt;/p&gt;&#xA;" OwnerUserId="4553" LastActivityDate="2010-10-05T19:36:02.550" />
  <row Id="9738" PostTypeId="2" ParentId="9629" CreationDate="2010-10-05T19:45:33.653" Score="3" ViewCount="" Body="&lt;p&gt;Some people in academia love &lt;a href=&quot;http://en.wikipedia.org/wiki/Objective_Caml&quot; rel=&quot;nofollow&quot;&gt;Ocaml&lt;/a&gt; (Objective Caml) for its nice blending of functional and imperative. Ocaml is also fast too. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally find that Haskell is a bit easier to learn, but Ocaml might be more friendly to some beginners since it does have side-effect. &lt;a href=&quot;http://www.cas.mcmaster.ca/~kahl/&quot; rel=&quot;nofollow&quot;&gt;Wolfram Kahl&lt;/a&gt; even said that &quot;Ocaml is the best imperative language ever created!&quot;. &lt;/p&gt;&#xA;" OwnerUserId="4582" LastActivityDate="2010-10-05T19:45:33.653" CommunityOwnedDate="2010-10-05T19:45:33.653" CommentCount="7" />
  <row Id="9739" PostTypeId="2" ParentId="8416" CreationDate="2010-10-05T19:54:36.363" Score="3" ViewCount="" Body="&lt;p&gt;I would prefer something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private void importData(){}&#xA;private void exportData(){}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If you now would use this Class as an API you can do something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;dataUtil.importData();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;With the CodeCompletion of the IDE, the differences are more visible if this methods wouldn't start the same way.&lt;/p&gt;&#xA;" OwnerUserId="2910" LastActivityDate="2010-10-05T19:54:36.363" CommentCount="1" />
  <row Id="9740" PostTypeId="2" ParentId="3662" CreationDate="2010-10-05T19:58:39.053" Score="0" ViewCount="" Body="&lt;p&gt;On a bad day it can get really messy, but if my workspace gets cluttered I can't seem to focus as well so I have to clear it off and get rid of the clutter.  Kiiiinda seems like I have OCD when I actually put that in writing.&lt;/p&gt;&#xA;" OwnerUserId="4423" LastActivityDate="2010-10-05T19:58:39.053" />
  <row Id="9741" PostTypeId="1" CreationDate="2010-10-05T20:00:15.513" Score="15" ViewCount="309" Body="&lt;p&gt;&lt;strong&gt;Background:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a project where I need to provide the user a download package with some sensitive data in it.  The data needs to be encrypted.  After they download it, they need to be able to view it (no editing required).   For this question, let's approximate the data as a series of static html files.  Because the data is sensitive, it needs to be encrypted any time it is on disk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are thinking of providing the user with a download option that would give them a zip file containing two files:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A data file (we'd probably use an encrypted zip file behind the scenes) with the data they asked for&lt;/li&gt;&#xA;&lt;li&gt;An application to view the data that would appropriately prompt for a passphrase and handle decrypting the data and displaying it via an embedded web browser.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Additional details:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Users are not under our control.  They are consumers.&lt;/li&gt;&#xA;&lt;li&gt;We are not worried about cross platform in this question.  This is just about Windows.  We will have a separate download for Mac users.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Get to the question already:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For that application we need to create, we're internally debating if it is reasonable for that app to be a .NET winforms application.  We want a single .exe, and we want the download to be reasonably small (e.g. 100k).  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Dare we use the .NET framework (we don't need to use a particularly recent version of .NET--2.0 would be fine)?  &lt;/li&gt;&#xA;&lt;li&gt;Is it reasonable to assume that most consumers have .NET on their machines now due to Windows Update?  &lt;/li&gt;&#xA;&lt;li&gt;Is it reasonable to ask the ones that don't have it to install it?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;We know that 100% of users will not have .NET.  The real question is if it is &lt;em&gt;reasonable&lt;/em&gt; to ask them to have it in this day and age.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S.  Does anyone know of any reliable statistics of what percentage of people actually do have .NET installed already?&lt;/p&gt;&#xA;" OwnerUserId="3578" LastEditorUserId="3578" LastEditorDisplayName="" LastEditDate="2010-10-05T20:23:49.483" LastActivityDate="2010-10-06T00:27:16.503" Title="Is it reasonable to assume/require the .NET framework these days?" Tags="&lt;programming-languages&gt;&lt;.net&gt;" AnswerCount="10" CommentCount="6" FavoriteCount="3" />
  <row Id="9742" PostTypeId="2" ParentId="6834" CreationDate="2010-10-05T20:04:07.013" Score="2" ViewCount="" Body="&lt;p&gt;Eclipse's Auto Build is the feature I most admire.... 7 years ago. Now I just take it for granted.&lt;/p&gt;&#xA;" OwnerUserId="488" LastActivityDate="2010-10-05T20:04:07.013" />
  <row Id="9743" PostTypeId="2" ParentId="9741" CreationDate="2010-10-05T20:05:59.120" Score="6" ViewCount="" Body="&lt;p&gt;I don't know if it's reasonable to ask them to have it or not.  However, I do know that customers are often unreasonable, so I don't see that it matters.  If you're dealing with a limited number of customers, ask them.  If you're dealing with more customers than you can reasonably talk to, or you're going to pick up customers over time, just make sure they see the requirement before buying.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-05T20:05:59.120" />
  <row Id="9744" PostTypeId="2" ParentId="6834" CreationDate="2010-10-05T20:07:21.893" Score="1" ViewCount="" Body="&lt;p&gt;IntelliJ Idea's support of JPA&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mention you have an DatabaseEntity:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;@Entity&#xA;public class Customer{&#xA;[...]&#xA;String lasName;&#xA;[...]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;now you have some JPA-Queries&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Query q = &quot;selecct s from Customer c where c.lasName=:lastName&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;after some Time you see, that you made a typo within your Entity and you decide to refactor &lt;em&gt;lasname&lt;/em&gt; to &lt;em&gt;lastName&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That IDE will refactor the JPA-Query as well.&lt;/p&gt;&#xA;" OwnerUserId="2910" LastActivityDate="2010-10-05T20:07:21.893" />
  <row Id="9745" PostTypeId="2" ParentId="9694" CreationDate="2010-10-05T20:12:20.247" Score="3" ViewCount="" Body="&lt;p&gt;I am not sure about his company, but where I work, most QA people have some sort of technical/programming background. Perhaps not a university degree, but a diploma from a technical school, or self taught. If this is the case, a great place to start is writing automated tests for the products he is responsible for QA'ing. Not only will this give him a chance to learn programming, but it will be great exposure for him within his current company.&lt;/p&gt;&#xA;" OwnerUserId="4581" LastActivityDate="2010-10-05T20:12:20.247" />
  <row Id="9746" PostTypeId="2" ParentId="9741" CreationDate="2010-10-05T20:13:22.477" Score="3" ViewCount="" Body="&lt;p&gt;Many corporate users are not on the latest version of Windows (Still on XP), but I think more home users have upgraded because of new hardware. Downloading and installing is a little bit of a pain. Is this file usually a one-time thing per client or will they continue to get files in the future? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your other options? Are password protected Acrobat files enough? It would be a lot easier to block: saving, printing, and copy and pasting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seems like you're reinventing the wheel, but I don't have all the specifics.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-05T20:13:22.477" CommentCount="3" />
  <row Id="9747" PostTypeId="2" ParentId="9741" CreationDate="2010-10-05T20:13:47.667" Score="-2" ViewCount="" Body="&lt;p&gt;If you know, that 100% of your customers don't have it, why did you code the application with .net?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could have use Java and create a Web-Start Application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in fact, you can bundle the .net framework with the installer. If the Customer trust you to install your Application, he will install .net, too.&lt;/p&gt;&#xA;" OwnerUserId="2910" LastEditorUserId="2910" LastEditorDisplayName="" LastEditDate="2010-10-05T20:25:47.650" LastActivityDate="2010-10-05T20:25:47.650" CommentCount="4" />
  <row Id="9748" PostTypeId="2" ParentId="9741" CreationDate="2010-10-05T20:15:54.407" Score="-3" ViewCount="" Body="&lt;p&gt;Just make sure that the package you ship contains a dependency on the required version of the framework.  Then the &lt;a href=&quot;http://en.wikipedia.org/wiki/Package_management_system&quot; rel=&quot;nofollow&quot;&gt;package manager&lt;/a&gt; the user has will pull the necessary framework version and install it before your package.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, the operating system you target has a very crippled package management system, which can't do this?  It should be a bad OS then.  Well, then you have only one option: require this framework installed and provide the link for user to do it.  I don't see how users benefit, if a noticeable part of what developers do is devoted to useless compatibility with &quot;standard&quot; OS tools (this time could be spent for fixing bugs and adding features instead).&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-10-05T20:15:54.407" CommentCount="5" />
  <row Id="9749" PostTypeId="2" ParentId="9741" CreationDate="2010-10-05T20:15:58.430" Score="5" ViewCount="" Body="&lt;p&gt;What version of Windows are your users on?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's Windows Vista they'll have .NET 3 installed by default and if it's Windows 7 they'll have version 3.5. &lt;a href=&quot;http://en.wikipedia.org/wiki/.NET_Framework&quot; rel=&quot;nofollow&quot;&gt;Source&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That doesn't help if they're on XP, but as Microsoft have just stopped support for SP2 they should be on SP3.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you use something like &quot;ClickOnce&quot; (there are other installers available) you can make the relevant version of the .NET framework a prerequisite and it will download and install it for you - &lt;strong&gt;it's not included in your installer&lt;/strong&gt;. If you are worried about the &lt;em&gt;size&lt;/em&gt; of the download you could go to .NET 3.5 or 4 and make the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/cc656912.aspx&quot; rel=&quot;nofollow&quot;&gt;Client Profile&lt;/a&gt; which is a much smaller download, though the .NET 4 version is more flexible.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-10-05T20:26:59.353" LastActivityDate="2010-10-05T20:26:59.353" CommentCount="1" />
  <row Id="9750" PostTypeId="2" ParentId="9741" CreationDate="2010-10-05T20:19:17.370" Score="1" ViewCount="" Body="&lt;p&gt;Depends on your demographics...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I wanted &lt;em&gt;anyone&lt;/em&gt;[1] to be able to use it, I would finangle up a 32-bit app that would run on Win98 and W7.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That probably means C++/MFC stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[1] Anyone with a machine younger than 12 years old that has an internet connection that is running Windows 98+.&lt;/p&gt;&#xA;" OwnerUserId="148" LastEditorUserId="148" LastEditorDisplayName="" LastEditDate="2010-10-05T20:42:54.247" LastActivityDate="2010-10-05T20:42:54.247" CommentCount="6" />
  <row Id="9751" PostTypeId="2" ParentId="2935" CreationDate="2010-10-05T20:23:14.927" Score="3" ViewCount="" Body="&lt;p&gt;I love to build things.  In high school I would build computers and thought for sure I wanted to do that for a living.  Then I realized how little money there is to be made in PC repair.  So, I checked out software development, loved it, and here I am almost 10 years later.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-05T20:23:14.927" />
  <row Id="9752" PostTypeId="2" ParentId="9741" CreationDate="2010-10-05T20:25:31.400" Score="10" ViewCount="" Body="&lt;p&gt;By default, Windows XP doesn't include any version of the .NET framework. &#xA;Vista, and Server 2008 include .NET Framework 3.0, Windows 7 and Server 2008R2 include .NET 3.5, and Windows 2000 can't support anything above .NET 2.0.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that in mind, it comes down to the OS spread in your target audience. I would list the requirement prominently on the download page and provide a link to Microsoft Update/Downloads section for the framework download, in addition to your application download.&lt;/p&gt;&#xA;" OwnerUserId="226" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2010-10-05T21:14:53.577" LastActivityDate="2010-10-05T21:14:53.577" CommentCount="3" />
  <row Id="9753" PostTypeId="2" ParentId="9598" CreationDate="2010-10-05T20:31:59.790" Score="1" ViewCount="" Body="&lt;p&gt;If you want to improve your &quot;logical programming skills&quot; in a more profound way, it's important to have at least one or two courses on... logic. Something like the &lt;a href=&quot;http://www.cs.toronto.edu/~sacook/csc438h/&quot; rel=&quot;nofollow&quot;&gt;lecture notes&lt;/a&gt; by Stephen Cook is nice for starting learning proposition and first order logic. The textbook &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0521656028&quot; rel=&quot;nofollow&quot;&gt;Logic in Computer Science: Modelling and Reasoning about Systems&lt;/a&gt; by Huth and Ryan is also loved by many.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also developing an &lt;em&gt;algorithmic way of thinking&lt;/em&gt; is also extremely important. Cook told me that the ability to think algorithmically is the key difference between a computer scientist and a mathematician. There are many good books on algorithms. You just have to choose the one that suits you most!&lt;/p&gt;&#xA;" OwnerUserId="4582" LastEditorUserId="4582" LastEditorDisplayName="" LastEditDate="2010-10-11T07:39:25.783" LastActivityDate="2010-10-11T07:39:25.783" />
  <row Id="9754" PostTypeId="2" ParentId="8721" CreationDate="2010-10-05T20:32:51.790" Score="1" ViewCount="" Body="&lt;p&gt;Lerning by doing...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to start a small Open-Source project. Or find an existing project to join. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To show other people your code is the best way to get feedback and to become better.&lt;/p&gt;&#xA;" OwnerUserId="2910" LastActivityDate="2010-10-05T20:32:51.790" />
  <row Id="9755" PostTypeId="2" ParentId="2935" CreationDate="2010-10-05T20:35:07.220" Score="2" ViewCount="" Body="&lt;p&gt;Fortunately, I won't be able to say &quot;I started programming when I was a kid&quot; because I spent my childhood like a normal kid who was understanding the environment, having friendships, laughing etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, for most people it could be life itself -- programming. But for me, it is only a tool to make my life. But, I was thinking to do something I can love. That's why I chose programming. Because I can learn always new things, take my ideas from conceptual level to more concrete level quickly. You can just apply what you learn from books to your job in other jobs but you can in programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also I am selling information, not something you can hold in your hands :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, I was wanting to be a doctor but I realized it could take my whole life to do something and I wasn't good with blood, internal organs and so on. But being a software engineer as I am now looked cool and I thought I could do it since it requires brain :) which I really love pushing my head most of the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can always find different ways to solve a problem in programming. You are not that limited as you are in other jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;etc...&lt;/p&gt;&#xA;" OwnerUserId="3613" LastActivityDate="2010-10-05T20:35:07.220" />
  <row Id="9756" PostTypeId="2" ParentId="8511" CreationDate="2010-10-05T20:44:08.063" Score="3" ViewCount="" Body="&lt;p&gt;If someone asked me a question like this, I would not consider taking their job. It's a discriminatory question and that indicates a bad place to work to me. I've been asked questions like this (not this exact one) and in my twenties (when the question was &quot;do you think you as a female can work with all these men?&quot;), I would have not been so adamant that the question indicated a bad place to work. I've seen a lot more since then and know this kind of question is a giant red flag. If people of all ages, sexes, sexual orientations, religions etc. can't work together without it being an issue, then something is very, very wrong in that work place.  &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-05T20:44:08.063" />
  <row Id="9757" PostTypeId="2" ParentId="9657" CreationDate="2010-10-05T20:47:59.763" Score="0" ViewCount="" Body="&lt;p&gt;I can see many benefits to programming for dyslexia over other careers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The rules of programming have fewer exceptions than spelling. You can rely on repeated patterns; prose is just all over the place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Intellisense has to be a huge benefit. Nice to know a variable you just declared has not been used when you 'think' you just did. Other than spell &amp;amp; some grammar check, writing applications can provide the checks a compiler will.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Short-term memory is an issuer for me. Doing almost everything on a computer comes pretty frickin' handy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Motivation is a factor as well. It's easier for me to read about subjects I enjoy; that doesn't make me lazy which many students get labeled as if a learning problem has not been identified.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-05T20:47:59.763" />
  <row Id="9758" PostTypeId="2" ParentId="8185" CreationDate="2010-10-05T20:49:35.770" Score="2" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;  try {&#xA;    return true;&#xA;  } finally {&#xA;    return false;&#xA;  }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;What Neil Fraser has to say about this is too good to leave out here:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The result is consistent in Java, JavaScript and Python. I wrote this snippet on a whiteboard here at Google. For the next couple of weeks engineers passing by would abruptly stop, transfixed by the paradox. Nerd sniping. I now use it during hiring interviews, if the candidate suffers a similar breakdown, I know we've got a keeper.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://neil.fraser.name/news/2009/10/27/&quot; rel=&quot;nofollow&quot;&gt;Source&lt;/a&gt; (hit the END key)&lt;/p&gt;&#xA;" OwnerUserId="2515" LastActivityDate="2010-10-05T20:49:35.770" CommentCount="4" />
  <row Id="9759" PostTypeId="2" ParentId="6510" CreationDate="2010-10-05T20:49:54.373" Score="1" ViewCount="" Body="&lt;p&gt;From the developer point of view I would prefer two ways:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Getting the sources from SVN / GIT&lt;/li&gt;&#xA;&lt;li&gt;Downloading a packaged Version&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;But as a user I would prefer a download package (*.zip and *.tar.gz).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There should be &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;readme.txt (or pdf or html)&lt;/li&gt;&#xA;&lt;li&gt;install.txt (or pdf or html)&lt;/li&gt;&#xA;&lt;li&gt;A demo configuration file with a documentation of all parameter&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you install the software there shoul be an installer.php, which checks the requirements and does the configuration work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as I remember the &lt;a href=&quot;http://roundcube.net/&quot; rel=&quot;nofollow&quot;&gt;roundcube&lt;/a&gt; webmailer had one of the best installer I know.&lt;/p&gt;&#xA;" OwnerUserId="2910" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-10-15T10:32:05.060" LastActivityDate="2010-10-15T10:32:05.060" />
  <row Id="9760" PostTypeId="2" ParentId="6834" CreationDate="2010-10-05T20:50:29.837" Score="1" ViewCount="" Body="&lt;p&gt;Xcode 4 fixes semicolons and typos and uses arrows to show how an error occured.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;E.g.:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;NSString *a = [[NSString alloc] init];&#xA;[a release];&#xA;int l = [a length];&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;An arrow will be drawn from &lt;code&gt;[a release]&lt;/code&gt; to &lt;code&gt;[a length]&lt;/code&gt; to show why you can't use &lt;code&gt;[a length]&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4595" LastActivityDate="2010-10-05T20:50:29.837" />
  <row Id="9761" PostTypeId="1" CreationDate="2010-10-05T20:59:55.150" Score="29" ViewCount="688" Body="&lt;p&gt;I've mostly only had to read my own code. As such, I've had no need to visualize the code as I already know how each and every class and module communicate with one another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the few times I've had to read someone else's code - let us now assume we are talking about at least one larger module which contains several internal classes - I've almost always found myself wishing &lt;em&gt;&quot;This would have been so much easier to understand if I could just visualize it!&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;So what are the common methods or tools for enabling this? Which do you use, and why do you prefer them over the others?&lt;/strong&gt; I've heard stuff like UML, module and class diagrams, but I imagine there are more. Furthermore, any of these is most likely better than anything I can devise on my own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; For those who answer with &quot;Use pen and paper and just draw it&quot;: This isn't very helpful unless you explain this further. What &lt;em&gt;exactly&lt;/em&gt; am I supposed to draw? A box for each class? Should I include the public methods? What about its fields? How should I draw connections that explain how one class uses another? What about modules? What if the language isn't object-oriented but functional or logical, or even just imperative (C, for instance)? What about global variables and functions? Is there an already-standardized way of drawing this, or do I need to think up of a method of my own? You get the drift.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-10-06T08:59:26.100" LastActivityDate="2010-11-26T18:51:09.110" Title="How to visualize code?" Tags="&lt;programming-practices&gt;" AnswerCount="15" CommentCount="2" FavoriteCount="7" />
  <row Id="9762" PostTypeId="2" ParentId="9498" CreationDate="2010-10-05T21:00:19.770" Score="2" ViewCount="" Body="&lt;p&gt;We use NHibernate + Fluent NHibernate, with Linq-to-Sql on small projects. The reason for this is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) (Not the primary reason) NHibernate seems to have a higher &quot;respect&quot; factor amongst developers (is this true?),&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Compared to linq-to-SQL, nHibernate allows ORM mapping between Db objects and entities which don't map 1-to-1,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) We haven't extensively compared nHibernate to Entity Framework 4.0 but here's a good comparison: &#xA;&lt;a href=&quot;http://ayende.com/blog/archive/2010/01/05/nhibernate-vs.-entity-framework-4.0.aspx&quot; rel=&quot;nofollow&quot;&gt;http://ayende.com/blog/archive/2010/01/05/nhibernate-vs.-entity-framework-4.0.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;nHibernate does have somewhat of a steep learning curve and its XML maps can be quite verbose, but start with with the Fluent Nhibernate site documentation and work your way backwards.&lt;/p&gt;&#xA;" OwnerUserId="4378" LastActivityDate="2010-10-05T21:00:19.770" />
  <row Id="9763" PostTypeId="2" ParentId="8008" CreationDate="2010-10-05T21:04:07.657" Score="-2" ViewCount="" Body="&lt;p&gt;I have had it happen where I got an offer to a company I was more interested in than the one I whose offer I just accepted and turned it down. You've made a commitment, stick to it. Shame on you for interviewing after accepting another offer! If you got engaged to a girl and someone hotter came along would you abandon her as well? This is unprofessional  and unethical behavior. If you go to this other company you will have made an enemy of everyone who works in the first place (this is something a hiring manager will get very angry about) and they will tell others about how unreliable you are. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-05T21:04:07.657" CommentCount="3" />
  <row Id="9764" PostTypeId="2" ParentId="9605" CreationDate="2010-10-05T21:05:52.480" Score="3" ViewCount="" Body="&lt;p&gt;@Booji Boy&#xA;It s possible to write error-free programs, even non-trivial ones and even prove them correct. Consider for example, languages like Coq, Epigram or Agda where this is done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The halting problem states that it's not possible to do this for the &lt;em&gt;general program&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4599" LastActivityDate="2010-10-05T21:05:52.480" CommentCount="1" />
  <row Id="9765" PostTypeId="2" ParentId="9694" CreationDate="2010-10-05T21:06:02.183" Score="3" ViewCount="" Body="&lt;p&gt;I'd get them going with scripting languages like Python or Perl.  You know, something they've probably had to play around with already when configuring test plans.  Any of the .NET languages are good too with the exception of F# seeing as functional languages are a bit advanced for entry level thinking.  There's a lot of online resources for C# and VB, a lot of examples worked out, and more importantly a lot of difficult problems that are handled by the VM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, a warning.  If they haven't touched code ever, don't go with C or C++.  C++ is a vast expanse of a minefield rife with subtle bugs that will drive you insane (I'm primarily a C++ coder.)  C, pointers are problematic and so is manual memory handling.  Steer clear of these until they're ready.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-05T21:06:02.183" CommentCount="1" />
  <row Id="9766" PostTypeId="2" ParentId="9761" CreationDate="2010-10-05T21:06:22.650" Score="8" ViewCount="" Body="&lt;p&gt;It whatever way you best understand it. If you are a visual thinker, how would draw code that you &lt;em&gt;can&lt;/em&gt; visualize? For myself, i sketch out flow charts, or database diagrams/UML. once you have a way of representing the code, try reading through the existing code and sketching it out as you read throught it.&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-10-05T21:06:22.650" CommentCount="3" />
  <row Id="9767" PostTypeId="2" ParentId="370" CreationDate="2010-10-05T21:13:12.317" Score="5" ViewCount="" Body="&lt;p&gt;There was an interesting article recently - the Deep Dark Secret of Silicon Valley &lt;a href=&quot;http://techcrunch.com/2010/08/28/silicon-valley%e2%80%99s-dark-secret-it%e2%80%99s-all-about-age/&quot; rel=&quot;nofollow&quot;&gt;http://techcrunch.com/2010/08/28/silicon-valley%e2%80%99s-dark-secret-it%e2%80%99s-all-about-age/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically it says that the Valley prefers younger candidates who will put in allnighters for lower wages, and advocates that experienced programmers move into management positions after they hit a certain age. The problem is there aren't that many management positions to go around..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't work in the Valley, but my personal experience is that experienced programmers can still code and are valuable because of their experience, and in my neck of the woods there are companies who will hire them.&lt;/p&gt;&#xA;" OwnerUserId="4378" LastActivityDate="2010-10-05T21:13:12.317" CommentCount="1" />
  <row Id="9768" PostTypeId="2" ParentId="9761" CreationDate="2010-10-05T21:14:34.000" Score="0" ViewCount="" Body="&lt;p&gt;Not quite visualizing, but I find going through different use cases a really helpful way to visualize how different classes are interacting. This is especially helpful when you've got lots of little classes and it can be overwhelming to try and understand them all together. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write a test that will start your use case and fire up the debugger, and then draw the flow of class interactions. This is especially helpful when you're going beyond your single project as you can see which other projects are being utilized. Depending on the complexity, a state diagram would do the trick. &lt;/p&gt;&#xA;" OwnerUserId="4458" LastActivityDate="2010-10-05T21:14:34.000" />
  <row Id="9769" PostTypeId="2" ParentId="9730" CreationDate="2010-10-05T21:19:53.973" Score="19" ViewCount="" Body="&lt;p&gt;I would say that it is more &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Functional_programming&quot; rel=&quot;nofollow&quot;&gt;Functional Programming&lt;/a&gt;&lt;/strong&gt; vs &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Imperative_programming&quot; rel=&quot;nofollow&quot;&gt;Imperative Programming&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest difference is that Imperative programming is about &lt;strong&gt;Control flow&lt;/strong&gt; while Functional programming is about &lt;strong&gt;Data flow&lt;/strong&gt;. Another way to say it is that functional programming only uses &lt;em&gt;expressions&lt;/em&gt; while in imperative programming both &lt;em&gt;expressions&lt;/em&gt; and &lt;em&gt;statements&lt;/em&gt; are used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, in &lt;strong&gt;imperative&lt;/strong&gt; programming variables and loops is common and keeps the state, while in &lt;strong&gt;functional&lt;/strong&gt; programming the state is handled via parameter passing, and avoids side-effects and assignments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imperative pseudo-code for a function for calculate the sum in a list (the sum is kept in a variable):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int sumList(List&amp;lt;int&amp;gt; list) {&#xA;    int sum = 0;&#xA;    for(int n = 0; n &amp;lt; list.size(); n++) {&#xA;        sum = sum + list.get(n);&#xA;    }&#xA;&#xA;    return sum;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Functional pseudo-code for the same function (the sum is passed as an parameter):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;fun sumList([], sum) = sum&#xA; |  sumList(v::lst, sum) = sumList(lst, v+sum)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I recommend the presentation &lt;a href=&quot;http://www.infoq.com/presentations/Taming-Effect-Simon-Peyton-Jones&quot; rel=&quot;nofollow&quot;&gt;Taming Effects with Functional Programming&lt;/a&gt; by &lt;em&gt;Simon Peyton-Jones&lt;/em&gt; for a good introduction to functional concepts.&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-28T20:25:51.043" LastActivityDate="2010-11-28T20:25:51.043" CommentCount="3" />
  <row Id="9770" PostTypeId="2" ParentId="9694" CreationDate="2010-10-05T21:28:57.693" Score="1" ViewCount="" Body="&lt;p&gt;My stock answer for people who want to learn programming is to start with &lt;a href=&quot;http://www.charlespetzold.com/code/&quot; rel=&quot;nofollow&quot;&gt;Code by Charles Petzold&lt;/a&gt; to get some basic understanding of computing and then start with a higher level language. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like both ruby and python since a newbie has a number of options on where to apply their learning. A ruby newbie can use JRuby to script extensions to existing java apps they firm might already have working.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-05T21:28:57.693" />
  <row Id="9771" PostTypeId="2" ParentId="370" CreationDate="2010-10-05T21:31:35.087" Score="1" ViewCount="" Body="&lt;p&gt;I find there is much more prejudice from 20 something programmers and 30 something middle managers than from the higher ups in the company. &lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-05T21:31:35.087" />
  <row Id="9772" PostTypeId="2" ParentId="8956" CreationDate="2010-10-05T21:33:58.203" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Figure out your pricing objective first.&lt;/strong&gt; Then look for pricing strategies to achieve that objective.&#xA;&lt;br&gt;- &lt;em&gt;Survival?&lt;/em&gt; Then set price levels to match expenses.&#xA;&lt;br&gt;- &lt;em&gt;Maximize Profit?&lt;/em&gt; There are many strategies to consider, e.g., &quot;Price Skimming&quot; like Sony did with the PS/3, works if its legal in your jurisdiction and if you face an inelastic demand curve. Sony set prices high initially $599, and gradually lowered them to $299.&#xA;&lt;br&gt;- &lt;em&gt;ROI?&lt;/em&gt; Set price levels to get back a certain annual return on equity.&#xA;&lt;br&gt;- &lt;em&gt;Increase Market share?&lt;/em&gt; If your demand curve is elastic, lowering prices relative to competirors may help achieve this.&#xA;&lt;br&gt;- &lt;em&gt;Cash flow?&lt;/em&gt; Price levels should encourage rapid sales.&#xA;&lt;br&gt;- &lt;em&gt;Status Quo?&lt;/em&gt; A price war may be unwinnable. Don't rock the boat. Set prices to match your competitor's prices.&#xA;&lt;br&gt;- &lt;em&gt;Product Quality?&lt;/em&gt; Set prices to recoup R&amp;amp;D costs and to establish a high quality image.&lt;/p&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-05T21:33:58.203" CommentCount="2" />
  <row Id="9773" PostTypeId="2" ParentId="370" CreationDate="2010-10-05T21:34:33.350" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;The year you received your degree shouldn't be on your resume anyway. You have one, end of story.&lt;/li&gt;&#xA;&lt;li&gt;&quot;Too old&quot; is a state of mind. &quot;Too old&quot; is when you stop caring about your craft and stop learning new things. Or start acting like a cranky old developer. ;)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="3119" LastActivityDate="2010-10-05T21:34:33.350" CommentCount="2" />
  <row Id="9774" PostTypeId="2" ParentId="6825" CreationDate="2010-10-05T21:35:46.817" Score="0" ViewCount="" Body="&lt;p&gt;For regex testing and sharing &lt;a href=&quot;http://gskinner.com/RegExr/&quot; rel=&quot;nofollow&quot;&gt;http://gskinner.com/RegExr/&lt;/a&gt;&#xA;-edit- and another &lt;a href=&quot;http://www.rubular.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.rubular.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2528" LastEditorUserId="2528" LastEditorDisplayName="" LastEditDate="2010-12-27T09:40:34.710" LastActivityDate="2010-12-27T09:40:34.710" CommunityOwnedDate="2010-10-05T21:35:46.817" />
  <row Id="9775" PostTypeId="2" ParentId="9761" CreationDate="2010-10-05T21:36:07.980" Score="4" ViewCount="" Body="&lt;p&gt;UML &lt;strong&gt;class diagrams&lt;/strong&gt; for structure and &lt;strong&gt;sequence diagrams&lt;/strong&gt; for behavior (UML offers more diagram types for these two purposes, all focusing on different aspects of the software - these are the two I find particularly useful and I do sketch/generate them when needed because they help a lot).&lt;/p&gt;&#xA;" OwnerUserId="3530" LastActivityDate="2010-10-05T21:36:07.980" CommentCount="2" />
  <row Id="9776" PostTypeId="2" ParentId="9741" CreationDate="2010-10-05T21:44:40.493" Score="3" ViewCount="" Body="&lt;p&gt;I did some research on the subject by tracking data on over 10000 installations accross the world for a desktop application targeting the .Net Framework 3.5 sp1. Only a bunch (about 10) did not have the proper framework installed. I removed the heavy .net framework  installation file from the installer, and did not notice any problem yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I highly suggest you to conduct the same study in your market and decide based on the results rather than on answers you could get on communities like this one.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-05T21:44:40.493" CommentCount="4" />
  <row Id="9777" PostTypeId="2" ParentId="9539" CreationDate="2010-10-05T21:45:01.317" Score="4" ViewCount="" Body="&lt;p&gt;In 30 years, programmers will need to know &lt;strong&gt;Quantum Programming&lt;/strong&gt; in languages like Peter Selinger's &lt;em&gt;QPL&lt;/em&gt;. They'll need a good understanding of Physics (esp. Quantum Mechanics), Math (esp. Fourier and Functional Analysis, particularly the Hadamard transform), and functional programming (like Haskell). The &lt;strong&gt;bit&lt;/strong&gt; will be out, and the &lt;strong&gt;qubit&lt;/strong&gt; will be in.&lt;/p&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-05T21:45:01.317" CommentCount="4" />
  <row Id="9778" PostTypeId="2" ParentId="9761" CreationDate="2010-10-05T21:49:23.707" Score="3" ViewCount="" Body="&lt;p&gt;I suggest you to have a look at tools like nDepend: &lt;a href=&quot;http://www.ndepend.com&quot; rel=&quot;nofollow&quot;&gt;http://www.ndepend.com&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;NDepend is a Visual Studio tool to manage complex .NET code and achieve high Code Quality. With NDepend, software quality can be measured using Code Metrics, visualized using Graphs and Treemaps, and enforced using standard and custom Rules. &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Hence the software design becomes concrete, code reviews are effective, large refactoring are easy and evolution is mastered. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-05T21:49:23.707" />
  <row Id="9779" PostTypeId="2" ParentId="2935" CreationDate="2010-10-05T22:04:32.787" Score="2" ViewCount="" Body="&lt;p&gt;I failed the first year of another degree, wanted to stick around Uni and knew I had some ability with computers so chose to do a Computer Science degree. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's only since starting to work in the job that I've actually found myself enjoying the work - the academic work has been of some use to me in my job, but isn't really where my interest lies - I much prefer to work with business problems and see real results rather than thinking abstractly (not that academics don't see real results). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also enjoy the business interaction side of things - talking to people and figuring out the problems rather than just coding day and night. &lt;/p&gt;&#xA;" OwnerUserId="4458" LastActivityDate="2010-10-05T22:04:32.787" />
  <row Id="9780" PostTypeId="2" ParentId="9576" CreationDate="2010-10-05T22:05:45.827" Score="4" ViewCount="" Body="&lt;p&gt;Interestingly, the Bureau of Labor Statistics (BLS) has statistics on the number of jobs a person holds in a lifetime, but does &lt;em&gt;not&lt;/em&gt; have any statistics on how many times a person changes careers. They never attempted this for a couple reasons: 1- There's no consensus among economists, sociologists, etc. as to what constitutes a career change. E.g., if I get laid off from my programming job, start a lawn care company, then get a new programming job two years later, did I change careers? And 2- It requires a &lt;em&gt;longitudinal study&lt;/em&gt;: following the same person over the course of his entire life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding burnout, the Psychologist Jon Snodgrass said &quot;Work that is not personally satisfying reflects a basic conflict you have with yourself. You may think the conflict is caused by your career, and that if you change careers, the conflict will go away. But, you cannot pick the right career without first resolving the inner conflict.&quot;&lt;/p&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-05T22:05:45.827" CommentCount="1" />
  <row Id="9781" PostTypeId="2" ParentId="9761" CreationDate="2010-10-05T22:06:25.370" Score="1" ViewCount="" Body="&lt;p&gt;If you have a good debugger, and are good at using it, you can step into code, breakpoint it, hover over objects and see their state, etc.  Essentially, you walk through the code as it is executing.  I find that this helps me mentally stitch together the various objects, and how they are interacting with each other.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-10-05T22:06:25.370" />
  <row Id="9782" PostTypeId="2" ParentId="7565" CreationDate="2010-10-05T22:12:53.787" Score="1" ViewCount="" Body="&lt;p&gt;We use kanban at our work, and I've found it really useful - I think the idea of limiting yourself to a certain amount of work means you get more done. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One other thing kanban does well is categorizing where the work is up to - we use plan | build | test | distribute | done - each of these stages is defined and you need to work an item through the board - this helps to make sure that you haven't ignored testing, or that you've spent a bit of time planning and defining how to tests and demonstrate a completed feature. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the good things about agile is the accountability / transparency - so I'd let your clients know what you're working on, get them to agree to features they want added so that you keep yourself accountable to someone, even if they don't know the technical in's and out's. &lt;/p&gt;&#xA;" OwnerUserId="4458" LastActivityDate="2010-10-05T22:12:53.787" />
  <row Id="9783" PostTypeId="2" ParentId="9657" CreationDate="2010-10-05T22:18:35.040" Score="-1" ViewCount="" Body="&lt;p&gt;Dysnomia is the name of one of our dev servers (we name our servers after moons).&lt;/p&gt;&#xA;" OwnerUserId="4608" LastActivityDate="2010-10-05T22:18:35.040" CommentCount="2" />
  <row Id="9784" PostTypeId="2" ParentId="9761" CreationDate="2010-10-05T22:23:26.683" Score="0" ViewCount="" Body="&lt;p&gt;When you´re coding, you get the needs from a complete view and you breaks into small pieces and starts sketching, diagraming and coding. After this, you joins the parts and has the complete result.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For understand code not created by you, the same process must be made. In this process you can use diagrams if you have. Start with use cases, component and sub-system view and finish with class diagrams where your focus is logical view to understand relations and responsabilities, not attribute/methods. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that, you start investigate detailed class diagrams or goes direct to the code. I think sequencial diagrams are little confuse, I prefer to look at the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that UML is not a ideal form yet, but it is a standard that many people knows and is easy to share and understand. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you not have a UML documentation, you can use reverse engineering, but you will need help to figure out some things.&lt;/p&gt;&#xA;" OwnerUserId="3082" LastActivityDate="2010-10-05T22:23:26.683" />
  <row Id="9785" PostTypeId="1" CreationDate="2010-10-05T22:43:10.890" Score="0" ViewCount="124" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/2214/how-do-you-celebrate-when-you-reach-a-milestone-in-your-project&quot;&gt;How do you celebrate when you reach a milestone in your project?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;When you solve a bug, or complete a task, what do you do?&lt;br&gt;&#xA;I usually listen to a song at YouTube or just go over the recent posts at SO for a break..&lt;/p&gt;&#xA;" OwnerUserId="2104" LastActivityDate="2010-10-05T22:45:29.663" ClosedDate="2010-10-05T23:11:23.300" Title="How do you celebrate a victory over code?" Tags="&lt;fun&gt;" AnswerCount="1" CommentCount="0" />
  <row Id="9786" PostTypeId="2" ParentId="9539" CreationDate="2010-10-05T22:43:31.870" Score="15" ViewCount="" Body="&lt;p&gt;I think there will continue to be an ever growing gap in the skillset amongst developers. Eventually to a point where we have a more pronounced 'caste' system than we do now (ie. assembly programmers talk down to/about web developers). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Historically, specialization has been seen time and again in every sufficiently long-lived field. Medicine is a prime example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's difficult&lt;/li&gt;&#xA;&lt;li&gt;It requires plenty of schooling&lt;/li&gt;&#xA;&lt;li&gt;But schooling isn't nearly enough to be any good at it&lt;/li&gt;&#xA;&lt;li&gt;Every facet of the development field will have specialists&lt;/li&gt;&#xA;&lt;li&gt;But we'll still have 'GPs' (General Programmers :) )&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It's already started to happen.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-10-18T17:45:34.077" LastActivityDate="2010-10-18T17:45:34.077" CommentCount="4" />
  <row Id="9787" PostTypeId="2" ParentId="9785" CreationDate="2010-10-05T22:45:29.663" Score="1" ViewCount="" Body="&lt;p&gt;I either move on to the next bug/task immediately, or if I'm feeling celebratory, I'll eat a snack or reward myself with some anime.&lt;/p&gt;&#xA;" OwnerUserId="990" LastActivityDate="2010-10-05T22:45:29.663" CommentCount="1" />
  <row Id="9788" PostTypeId="1" AcceptedAnswerId="9791" CreationDate="2010-10-05T23:05:20.763" Score="1" ViewCount="193" Body="&lt;p&gt;As x goes to 0, the limits of x^0 and 0^x go to 1 and 0, respectively. Some say that the best value for 0^0 depends on context, others say that the value of 0^0 should be 1. I'm interested in knowing what your language implementers say. There doesn't seem to be a consensus. For example, in ActiveState Perl 5.12.0:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;C:\&gt;perl -e &quot;print 0**0&quot;&#xA;1&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;While in Mathematica 6.0:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;In[1]:= 0^0&#xA;        During evaluation of In[1]:= Power::indet:&#xA;        Indeterminate expression 0^0 encountered. &gt;&gt;&#xA;Out[1]= Indeterminate&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I'm also interested in knowing your opinion on the matter: What should 0^0 be? And also whether you have ever introduced a bug into a program you were writing (or had a hard time debugging a program) because of the way your language handles indeterminate forms?&lt;/p&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-06T08:05:53.493" Title="How does language [X] handle indeterminate forms like 0^0?" Tags="&lt;bugs&gt;&lt;math&gt;&lt;language-features&gt;" AnswerCount="4" CommentCount="8" />
  <row Id="9789" PostTypeId="2" ParentId="9741" CreationDate="2010-10-05T23:32:35.707" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://support.microsoft.com/kb/982671&quot; rel=&quot;nofollow&quot;&gt;.net 4 is now part of windows update&lt;/a&gt; (the KB was issued in July 2010). As long as the machine is current on thier windows-updates then you are pretty much guaranteed they have .net 4&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-05T23:32:35.707" />
  <row Id="9790" PostTypeId="2" ParentId="2214" CreationDate="2010-10-05T23:42:01.177" Score="2" ViewCount="" Body="&lt;p&gt;Tell my team lead or whoever will listen, get a few pats on the back, and then go back to work.&lt;/p&gt;&#xA;" OwnerUserId="88" LastActivityDate="2010-10-05T23:42:01.177" CommunityOwnedDate="2011-03-31T09:31:23.023" />
  <row Id="9791" PostTypeId="2" ParentId="9788" CreationDate="2010-10-06T00:27:15.733" Score="3" ViewCount="" Body="&lt;p&gt;According to &lt;a href=&quot;http://en.wikipedia.org/wiki/Exponentiation#Zero_to_the_zero_power&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; Wikipedia article,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Most programming language with a power function are implemented using the IEEE pow function and therefore evaluate 0^0 as 1. The later C and C++ standards describe this as the normative behavior. The Java standard mandates this behavior. The .NET Framework method System.Math.Pow also treats 0^0 as 1.&quot;&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-06T00:27:15.733" CommentCount="1" />
  <row Id="9792" PostTypeId="2" ParentId="9741" CreationDate="2010-10-06T00:27:16.503" Score="1" ViewCount="" Body="&lt;p&gt;A while back I read some posts from Paint.NET on the install process, and how to improve it.  Have a look at these two blog entries.  The first describes the awkwardness of installing the .NET Framework separately; the second describes how the author integrated it as part of the install.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blog.getpaint.net/2008/08/24/the-paintnet-install-experience-part-1-version-3xx/&quot; rel=&quot;nofollow&quot;&gt;The Paint.NET install experience — Part 1, version 3.xx&lt;/a&gt;  (the old bad way)&lt;br&gt;&#xA;&lt;a href=&quot;http://blog.getpaint.net/2008/08/25/the-paintnet-install-experience-part-2-version-40/&quot; rel=&quot;nofollow&quot;&gt;The Paint.NET install experience — Part 2, version 4.0&lt;/a&gt;  (the new good way)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So even if you're going to require the .NET Framework, and you're not sure whether the users will have it, you can at least integrate its installation with your app in a reasonably painless way.&lt;/p&gt;&#xA;" OwnerUserId="3963" LastActivityDate="2010-10-06T00:27:16.503" />
  <row Id="9793" PostTypeId="2" ParentId="9788" CreationDate="2010-10-06T00:32:59.790" Score="1" ViewCount="" Body="&lt;p&gt;Google says: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;0^0 = 1&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-06T00:32:59.790" />
  <row Id="9794" PostTypeId="2" ParentId="9723" CreationDate="2010-10-06T00:42:28.000" Score="0" ViewCount="" Body="&lt;p&gt;Of course there is a risk but it is probably a blessing in disguise if they don't give you the job. The kind of companies that would discriminate based upon perceived disability you probably don't want to work at. They probably don't treat any of their employees well.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-06T00:42:28.000" CommentCount="4" />
  <row Id="9795" PostTypeId="1" AcceptedAnswerId="9797" CreationDate="2010-10-06T01:21:02.500" Score="10" ViewCount="261" Body="&lt;p&gt;I thought of this today after a co-worker looked through the contract they had signed several years ago and was quite alarmed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What should one look out for before signing a contract, as most employers &lt;em&gt;will&lt;/em&gt; get you to sign one. Please post ideas separately so they can be voted individually. &lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-10-06T07:43:48.893" Title="What to look out for in employment contracts" Tags="&lt;jobs&gt;&lt;contract&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="1" />
  <row Id="9796" PostTypeId="2" ParentId="9795" CreationDate="2010-10-06T01:23:48.140" Score="8" ViewCount="" Body="&lt;p&gt;Be very careful of contracts that state that you can't work for any competitor for &lt;strong&gt;&lt;em&gt;x&lt;/em&gt;&lt;/strong&gt; number of month after leaving the company. Companies use the word competitor generously, so for a web development company this could include any company providing web based services.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This puts you in a terrible position if you get a better job offer or if your job ends up being horrible, because finding a job for somebody who isn't a competitor with your current company will be very difficult.&lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-10-06T01:23:48.140" CommentCount="3" />
  <row Id="9797" PostTypeId="2" ParentId="9795" CreationDate="2010-10-06T01:46:03.740" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Intellectual Property Clauses&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Such clauses may state that the employer owns all intellectual property rights for any creative work produced during employment. If this is something that is important to you then make sure all vagueness around the definition of intellectual property and creative work is clarified and/or removed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As programmers we write a lot of code and it is important to clarify before you start employment who owns the intellectual rights for a new algorithm or any patentable piece of code that you make come up with during your employment.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="3262" LastEditorDisplayName="" LastEditDate="2010-10-06T01:54:50.183" LastActivityDate="2010-10-06T01:54:50.183" CommentCount="5" />
  <row Id="9798" PostTypeId="2" ParentId="9795" CreationDate="2010-10-06T02:01:55.203" Score="5" ViewCount="" Body="&lt;p&gt;Joel Spolsky &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000071.html&quot; rel=&quot;nofollow&quot;&gt;blogged&lt;/a&gt; about this. His main points were to look out for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A clause which forbids you to hire anybody who works for the company that is making you sign the NDA&lt;/li&gt;&#xA;&lt;li&gt;Non-compete clauses in their employment contracts&lt;/li&gt;&#xA;&lt;li&gt;Another dangerous clause says that you agree not to hire, or cause to be hired, anybody from the company if you leave for a period of x months (usually 12 to 24). &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've also seen contracts that forbid the hiring of working for customers of the company. If the company hiring you has a lot of customers, that could be a large amount of jobs you couldn't take after leaving.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All in all, I'd look out for clauses that restrict employment in general. For the most part, the goal of these clauses are to protect trade secrets, but they could also seriously hinder your job search.&lt;/p&gt;&#xA;" OwnerUserId="4346" LastActivityDate="2010-10-06T02:01:55.203" CommentCount="2" />
  <row Id="9799" PostTypeId="2" ParentId="9614" CreationDate="2010-10-06T02:16:11.157" Score="1" ViewCount="" Body="&lt;p&gt;I use the term scripter to describe someone that wraps existing libraries in order to automate a manual task in a system or across systems. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a sub-type of programmer like Database programmer, System programmer or Web Programmer.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-06T02:16:11.157" />
  <row Id="9800" PostTypeId="2" ParentId="167" CreationDate="2010-10-06T02:20:47.997" Score="0" ViewCount="" Body="&lt;p&gt;Get touchpad/tablet instead of a mouse.&#xA;A good option which combines both is Wacom Bamboo Pen &amp;amp; Touch.&#xA;I use it in touch mode at work (it is a hassle to switch between pen &amp;amp; keyboard all the time) and in pen mode at home as i mostly just browse / read and do little typing.&lt;/p&gt;&#xA;" OwnerUserId="4621" LastActivityDate="2010-10-06T02:20:47.997" />
  <row Id="9801" PostTypeId="2" ParentId="9665" CreationDate="2010-10-06T02:22:58.353" Score="2" ViewCount="" Body="&lt;p&gt;First note that not all stocks are created equal. Some companies have different classes of stock A,B,... Each class usually has&#xA;&lt;br&gt; - unequal voting rights&#xA;&lt;br&gt; - unequal proportionality in dividends paid&#xA;&lt;br&gt; - unequal share in assets remaining after dissolution&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, class A Google stock gets you 1 vote; Class B gets you 10 votes. You need to find the exact rights these stocks give you in order to value them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next, here's a chart showing the % of small business failures # years after start-up. Take a good look at that and consider that your compensation options are worth 0 if the company fails:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;#years-out  1  2  3  4  5  6  7  8  9 10&#xA;%failed    25 36 44 50 55 60 63 66 69 71&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Also consider that many compensation options can't be sold, so they might not really have a market value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And finally consider that even Bill Gates regrets using compensation options: &lt;a href=&quot;http://www.msnbc.msn.com/id/7713133/&quot; rel=&quot;nofollow&quot;&gt;http://www.msnbc.msn.com/id/7713133/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-06T02:22:58.353" CommentCount="4" />
  <row Id="9802" PostTypeId="2" ParentId="2846" CreationDate="2010-10-06T02:25:51.063" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Smalltalk&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There I said it. I #$%*ing hate smalltalk. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not because of the language is bad. It's actually quite nice. I even learned to deal with the odd features like the precedence order for expression evaluation is left-to-right arithmetic. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the community. The snobby 'tude. The endless self-referential conversations on what is or isn't real-OO. The disdain for other languages. The desire to keep the same arguments from the 1980s burning on forever. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I'm sure that someone will argue that smalltalk hated smalltalk first or that I'm not hating smalltalk in a truly O-O, pure-mvc way that will make hating &lt;em&gt;soooo&lt;/em&gt; much easier.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastEditorUserId="4603" LastEditorDisplayName="" LastEditDate="2010-11-30T18:49:06.980" LastActivityDate="2010-11-30T18:49:06.980" CommunityOwnedDate="2010-10-06T02:25:51.063" />
  <row Id="9803" PostTypeId="2" ParentId="9788" CreationDate="2010-10-06T02:26:52.887" Score="0" ViewCount="" Body="&lt;p&gt;Delphi's got 2 float values: &lt;code&gt;NaN&lt;/code&gt; and &lt;code&gt;Infinity&lt;/code&gt;. That get returned in case of weirdness. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it doesn't have a built in exponentiation function. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;^&lt;/code&gt; is for pointers, as in &quot;hey you up there, I'm pointing at you!&quot;&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-06T02:26:52.887" CommentCount="3" />
  <row Id="9804" PostTypeId="2" ParentId="9631" CreationDate="2010-10-06T02:29:06.847" Score="0" ViewCount="" Body="&lt;p&gt;I hacked up a todo list/journal solution in Excel because It was easy for me to mark things as done then turn that into a status update for our team.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-06T02:29:06.847" />
  <row Id="9805" PostTypeId="2" ParentId="8721" CreationDate="2010-10-06T02:32:13.930" Score="5" ViewCount="" Body="&lt;p&gt;I've implemented either a betting pool or a Baccarat game in almost every language I've learned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This type of software covers&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Dates and times, with calculations&lt;/li&gt;&#xA;&lt;li&gt;Currency types and things that can be converted to and from currency&lt;/li&gt;&#xA;&lt;li&gt;A discrete set of rules that is easy to test&lt;/li&gt;&#xA;&lt;li&gt;States, transition between states and multiple entities responsible for state transition&lt;/li&gt;&#xA;&lt;li&gt;Multiple users with different views of the same model &lt;/li&gt;&#xA;&lt;li&gt;Multiple end conditions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Multiple player blackjack and poker would work also.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One caveat is that in my day job I work on financial systems and there is a huge overlap between things to consider when writing a multiplayer game of chance and a trading system.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-06T02:32:13.930" />
  <row Id="9806" PostTypeId="2" ParentId="8721" CreationDate="2010-10-06T02:34:22.430" Score="1" ViewCount="" Body="&lt;p&gt;I happen to like Code Koans as a way to improve skill. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://github.com/edgecase/ruby_koans&quot; rel=&quot;nofollow&quot;&gt;Ruby&lt;/a&gt; one is pretty nice. There are also Koans for Scala and Python.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-06T02:34:22.430" />
  <row Id="9807" PostTypeId="2" ParentId="8721" CreationDate="2010-10-06T03:22:40.717" Score="3" ViewCount="" Body="&lt;p&gt;Try to write a compiler for some simple language from scratch. You will improve you skills a lot along the way (with some nice theoretic techniques from formal language theory as a bonus). I tried to write a simple version of Excel, and it's also a very nice exercise. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like others said the only way to improve your coding skills is to actually do it. Get your hand dirty with some large projects. But then for large program, it's even more important that you master software design techniques, otherwise the size of the program seems unmanageable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's one nice quote from Nate Kirby: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Bad programmers ignore details.&#xA;  Bad designers get lost in details.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;So switching between these two levels of abstraction is the skill you should master.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also the speed of how many lines of code you can write per hour is not what you should aim for. I like a quote by &lt;a href=&quot;http://www.sigsoft.org/SEN/parnas.html&quot; rel=&quot;nofollow&quot;&gt;David Parnas&lt;/a&gt;: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot; I often hear developers described as `someone who knows how to build a large system quickly.' There is no trick in building large systems quickly; the quicker you build them, the larger they get!&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4582" LastEditorUserId="4582" LastEditorDisplayName="" LastEditDate="2010-10-08T09:13:16.457" LastActivityDate="2010-10-08T09:13:16.457" />
  <row Id="9808" PostTypeId="2" ParentId="9576" CreationDate="2010-10-06T03:23:58.817" Score="4" ViewCount="" Body="&lt;p&gt;Well, I started programming as a hobbyist in high school in 1971, and professionally in 1985, when I dropped out of a doctoral program in chemistry at 27. So that's 39 years hobbyist, and 25 professionally, and I'm 52 now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yeah, I tried being a manager and an entrepreneur, and I suck at both of them. So for the last ten years I've stuck strictly to programming, which I'm not only far better at but make way more money doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I expect to be tottering around open-source conferences and hackfests with a walker when I'm 90. For some folks, it's a profession or a career, but for me it's a calling. I'm constantly astonished people pay me (and well, too) to do something that's so much fun, and they'll pry the keyboard from my cold dead fingers.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-10-06T03:23:58.817" CommentCount="1" />
  <row Id="9809" PostTypeId="2" ParentId="6543" CreationDate="2010-10-06T04:00:13.700" Score="1" ViewCount="" Body="&lt;p&gt;Writing code to insert and select, update inline or with stored procs and mapping them back through the DAL is longer the norm rather only beneficial in the exceptional case. The available ORM's, the supporting databases and languages the question you should be asking why aren't you using ORM?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're standardised, universial, either specified or generic. furthermore its faster and easier to implement. I've used subsonic, linq-to-sql and the entity framework. It allows the developer to focus on the logic and  the business rules instead database mapping. &lt;/p&gt;&#xA;" OwnerUserId="4219" LastActivityDate="2010-10-06T04:00:13.700" CommentCount="1" />
  <row Id="9810" PostTypeId="1" AcceptedAnswerId="10020" CreationDate="2010-10-06T04:19:22.313" Score="8" ViewCount="321" Body="&lt;p&gt;Ever since the update, people keep calling and saying &quot;Ever since the update X, Y and Z are slow, bad and crashing&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This has happened ever since the dawn of updates.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do people expect? Gamma comes after beta, and gamma testing always turns our users into The Incredible Hulks...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps you've never heard this from a client, perhaps you're in college or a FLOSS Dev who can spread the blame around more than 5 or 6 guys, perhaps you unit test your code, perhaps you're not in that interesting situation where customers actually call you requesting the exact time of day you'll be releasing today's patch (I'd love to do that to Microsoft) or perhaps you're a sorry son-of-a-biscuit like me who just shipped a new update and went home and is dreading going back to work tomorrow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, ya'll are smarter than me anyway. How do you field criticism framed in &quot;You must be a bad programmer because you're making your software worse&quot;?&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-08T17:47:01.843" Title="How do you respond to: &quot;Ever since the update...&quot; questions from clients?" Tags="&lt;customer-relations&gt;&lt;software-updates&gt;" AnswerCount="6" CommentCount="3" />
  <row Id="9811" PostTypeId="2" ParentId="8721" CreationDate="2010-10-06T04:26:08.243" Score="1" ViewCount="" Body="&lt;p&gt;If you want to improve your skill in java,i suggest you a web there you can solve simple java problems and get improved in java.go to www.codingbat.com&#xA;i'm a beginner in java and i have solutions for most of  problems there.&lt;/p&gt;&#xA;" OwnerUserId="4239" LastActivityDate="2010-10-06T04:26:08.243" />
  <row Id="9812" PostTypeId="2" ParentId="9810" CreationDate="2010-10-06T04:33:12.067" Score="4" ViewCount="" Body="&lt;p&gt;Well, at work we don't interact directly with the clients much, so I'll have to answer this one from personal project work.  I'm writing a game engine that people can use to build their own games.  It's still in pre-alpha, but I've got a few interested users, and sometimes I get bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I get a report like this from a user, I try to use the personal touch.  I didn't mean to introduce bugs, and I want them to have a good experience with my engine, so I need to make them believe that.  First, get an IM handle so we can talk.  I'll ask the user about their project and try to get a copy of it.  This makes reproduction a lot easier.  Ask them what they were doing when the glitch occurred.  Meanwhile, I've got the engine open in the debugger and I'm homing in on the issue while we're talking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's an exception, it's usually pretty simple.  Reproduce the issue and the debugger grabs it and takes you straight to the error location with a full stack trace, and it's obvious what's going on.  If it's slow performance or incorrect behavior, it might take a bit longer.  But in most cases I can have a fix ready within the first 20 minutes, tops.  I zip it and send it to them to test.  &quot;OK, I think I got it. See if this works at your end?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The response is almost universally some mixture of amazement and gratitude, because most developers (read: software companies) just don't fix bugs and rerelease that fast.  And then, if it's actually fixed, I've turned a potential critic into a fan.  It's a really good technique; I just wish more developers would adopt it.&lt;/p&gt;&#xA;" OwnerUserId="935" LastEditorUserId="935" LastEditorDisplayName="" LastEditDate="2010-10-06T04:38:32.897" LastActivityDate="2010-10-06T04:38:32.897" CommentCount="1" />
  <row Id="9813" PostTypeId="1" AcceptedAnswerId="9831" CreationDate="2010-10-06T05:09:32.100" Score="41" ViewCount="891" Body="&lt;p&gt;I find myself lagging behind on new skills, techniques, language features, etc, and I am finding the time to do so is lacking. Between work, professional, personal and family obligations, I'm lucky to find a few stray hours here and there to focus on any new technologies or reading that I want or need to do. I do make it out to relevant local user groups, but even those are sometimes hard to get to?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I thought I would ask the community, where, or when, do you find the time to focus on honing your skills or learning new ones? Do you schedule time? Forgo some sleep during the week or weekend? Insomnia? Something else?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt; I want to thank all of you who took the time to answer and offer up your advice. There were some things I knew or had thought about, and others I hadn't considered as an option until you shed new light on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT 2:&lt;/strong&gt; In trying to find which answer among the many great ones to accept, I went with @Paddyslacker's since it is the one I feel is best suited for my current situation, although everyone had some very good nuggets of wisdom, such as @Elisha @Martin or @dash-tom-bang.  &lt;/p&gt;&#xA;" OwnerUserId="146" LastEditorUserId="146" LastEditorDisplayName="" LastEditDate="2010-10-09T13:19:50.127" LastActivityDate="2010-10-09T13:19:50.127" Title="Where do you find the time?" Tags="&lt;learning&gt;&lt;free-time&gt;" AnswerCount="9" CommentCount="5" FavoriteCount="19" />
  <row Id="9814" PostTypeId="1" CreationDate="2010-10-06T05:21:49.113" Score="7" ViewCount="207" Body="&lt;p&gt;Well , Here in my Office, we made it a practice to come before 9 AM (in any condition as decided by Management) and start with a Standup Meeting. Here we start with Discusiing with issues of previous day, Any updates from Manager (by leads) and the work plan for today.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This meeting may sound good and process oriented , but some times if there is a show down then it ruins the morning mood or if there is a difference in opinion then again it is not a good thing to start with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, HR and Management decides that initially we will discuss personal matters  for 10 to 15mins and then we will jump to technical and official discussion.For 15 minutes everyday, are you serious , I don't get a topic to discuss for 15mins every day with my lead who is much older than me and never discussed anything in personal till now and you want to start with it just like that!!! So it is back to square one. Every one (Amazingly in all the teams) is discussing aagain technical aspects only in the moring /stand up meeting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So here it comes, today I have a Lunch with Management and the Topic for Discussion is :  &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&quot;How to make Nice Day(Morning/Standup) meetings effective?&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Any Suggestions please.&lt;/p&gt;&#xA;" OwnerUserId="2167" LastEditorUserId="2167" LastEditorDisplayName="" LastEditDate="2010-10-12T08:50:20.340" LastActivityDate="2010-10-12T17:42:22.353" Title="What should we do to make Morning Standup meetting better and effective" Tags="&lt;team&gt;&lt;office&gt;&lt;meetings&gt;" AnswerCount="3" CommentCount="4" FavoriteCount="1" />
  <row Id="9815" PostTypeId="2" ParentId="9814" CreationDate="2010-10-06T05:32:43.460" Score="14" ViewCount="" Body="&lt;p&gt;In my experience, the best way to improve standups is to follow the rules exactly.  A lot of agile practices can be bent, but if you're having trouble, a good first step is to return to the prescribed way of doing it:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Stick to 15 minutes for the entire meeting.  People get bored easily, especially at mandatory, team-wide, daily meetings.&lt;/li&gt;&#xA;&lt;li&gt;Have each person say what they did yesterday, what they're doing today, and anything blocking them.  Nothing else.  This keeps it on topic and to the point.&lt;/li&gt;&#xA;&lt;li&gt;Have a team lead or senior developer (not management) lead the meeting, and be agressive about keeping things on topic as well as telling people to take discussions offline as they become too in-depth.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-06T05:32:43.460" CommentCount="2" />
  <row Id="9816" PostTypeId="2" ParentId="9605" CreationDate="2010-10-06T05:39:06.193" Score="1" ViewCount="" Body="&lt;p&gt;This is already explained in other words, but not as clearly as I think it should be. It simply means you will try both ways, they will have errors, and finally you will fix your bugs and have an error-free program. Compare with another quote:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The only way for errors to occur in a program is by being put there by the author.  No other mechanisms are known.  Programs can't acquire bugs by sitting around with other buggy programs. --Harlan Mills&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(Alternatively, you could read this as Pierre said (which I think is a stretch). (The third way, which does not exist in the domain, works.) Like I said, it's a a stretch, but true.&lt;/p&gt;&#xA;" OwnerUserId="2515" LastEditorUserId="2515" LastEditorDisplayName="" LastEditDate="2010-10-06T05:44:32.360" LastActivityDate="2010-10-06T05:44:32.360" />
  <row Id="9817" PostTypeId="2" ParentId="9813" CreationDate="2010-10-06T05:39:51.963" Score="23" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Make some major sacrifices. E.g., &quot;I really love to do X, but I'm going to give it up for the next 1/3/6/12 months because I need more time for Y right now.&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Try to limit interruptions to your work as much as possible: (a) lock the door to your office; (b) turn off your phone; and (c) if possible, set a few appointed times throughout the day to check your email and limit the time you spend reading/replying to it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Learn to say &quot;No&quot; more often to things that aren't that important to you. E.g., its hard to say &quot;No&quot; when someone asks for your help, but you could politely refer their request to someone else.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If possible, delegate some of your work to someone else. Hire a cleaning service to do everyday tasks. Ask a trusted co-worker to do some of your work and promise to pay them back later in-kind. Take on a partner to split up work responsibilities. I've even heard of people &quot;off-shoring&quot; their own jobs!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Try adopting some new time management skills. For an overview, see  &lt;a href=&quot;http://en.wikipedia.org/wiki/Time_management&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Time_management&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-06T05:39:51.963" CommentCount="4" />
  <row Id="9818" PostTypeId="2" ParentId="9631" CreationDate="2010-10-06T05:45:29.977" Score="1" ViewCount="" Body="&lt;p&gt;If you are on a Mac you definitely should check &lt;a href=&quot;http://www.marinersoftware.com/products/macjournal/&quot; rel=&quot;nofollow&quot;&gt;Mac Journal&lt;/a&gt;. I don't have a mac. But I had gone through its features and tutorials. its really a wonderful product. I was in the process of building one. And I refer mac journal. I don't think keeping your journal in the cloud is a good idea. Keep it to yourself offline.&#xA;&lt;br&gt;&#xA;[edit]&#xA;I recommend using org mode in emacs instead. (Damn I can't vote on other answers.)&lt;/p&gt;&#xA;" OwnerUserId="4626" LastEditorUserId="4626" LastEditorDisplayName="" LastEditDate="2010-10-06T05:55:34.507" LastActivityDate="2010-10-06T05:55:34.507" />
  <row Id="9819" PostTypeId="2" ParentId="7629" CreationDate="2010-10-06T06:00:27.097" Score="2" ViewCount="" Body="&lt;p&gt;I'm using the following applications to maintain a coding standard besides camelback rules, method name and etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;GhostDoc&lt;/strong&gt; - Adds a auto-generated comment on the top each method. The application provides good inital summary of method. (free)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://submain.com/products/ghostdoc.aspx&quot; rel=&quot;nofollow&quot;&gt;http://submain.com/products/ghostdoc.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Resharper&lt;/strong&gt;- code analysis and refactoring&#xA;&lt;a href=&quot;http://www.jetbrains.com/resharper/&quot; rel=&quot;nofollow&quot;&gt;http://www.jetbrains.com/resharper/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;StyleCop&lt;/strong&gt; - As a final clean-up before i check-in to TFS. (free)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://code.msdn.microsoft.com/sourceanalysis&quot; rel=&quot;nofollow&quot;&gt;http://code.msdn.microsoft.com/sourceanalysis&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4219" LastEditorUserId="4219" LastEditorDisplayName="" LastEditDate="2010-10-06T06:10:05.917" LastActivityDate="2010-10-06T06:10:05.917" />
  <row Id="9820" PostTypeId="2" ParentId="2783" CreationDate="2010-10-06T06:04:38.287" Score="1" ViewCount="" Body="&lt;p&gt;My personal preference used to be to not go with the spaces: when writing C / C++ code I never used them around operators.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But since moving into the C# space, with Visual Studio automatically formatting my code with spaces around the operators, I realized that I actually didn't care. I'm perfectly happy with the spaces just as I used to be perfectly happy without them.&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-10-06T06:04:38.287" />
  <row Id="9821" PostTypeId="2" ParentId="9629" CreationDate="2010-10-06T06:05:28.897" Score="2" ViewCount="" Body="&lt;p&gt;In the real world the questing is not really &lt;em&gt;which&lt;/em&gt; language your use, but &lt;em&gt;how&lt;/em&gt; you use it.&lt;/p&gt;&#xA;" OwnerUserId="2725" LastActivityDate="2010-10-06T06:05:28.897" CommunityOwnedDate="2010-10-06T06:05:28.897" />
  <row Id="9824" PostTypeId="2" ParentId="9675" CreationDate="2010-10-06T07:31:57.930" Score="2" ViewCount="" Body="&lt;p&gt;ActionScript 3 is the language. It runs on wide variety of platforms. In browser (flash player), on desktop (AIR), on mobile devices in browsers (Android) and also as native applications (Android and iOS both). Forget about flashlite.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastEditorUserId="19457" LastEditorDisplayName="" LastEditDate="2011-04-28T19:38:09.373" LastActivityDate="2011-04-28T19:38:09.373" CommentCount="13" />
  <row Id="9825" PostTypeId="2" ParentId="9598" CreationDate="2010-10-06T07:38:07.707" Score="1" ViewCount="" Body="&lt;p&gt;You need to learn functional programming concepts, which will help you think out side the box.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-10-06T07:38:07.707" CommentCount="1" />
  <row Id="9826" PostTypeId="2" ParentId="9810" CreationDate="2010-10-06T07:38:08.437" Score="2" ViewCount="" Body="&lt;p&gt;I personally take the problem positively. I do interact all the time with a lot of customeers, and I still code too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When they download a new release and tell me something like that, I always say something like this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Thanks for reporting me that bug. Maybe it has been introduced together will all the new features we added. We'll fix it asap.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In fact, the customer is your real boss. If the experience with you is bad, it's bad for you too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if he is not right, you as a part of the company, you should take this opportunity to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;learn from him, by collecting potential improvements you could make to the product.&lt;/li&gt;&#xA;&lt;li&gt;convert an unhappy customer into an happy one, so happy that he will talk about you around (including your boss)&lt;/li&gt;&#xA;&lt;li&gt;be proud of what you are doing&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-10-06T22:00:41.030" LastActivityDate="2010-10-06T22:00:41.030" CommentCount="2" />
  <row Id="9827" PostTypeId="2" ParentId="9795" CreationDate="2010-10-06T07:43:48.893" Score="2" ViewCount="" Body="&lt;p&gt;In all my contracts, I always change the 2 following clauses that are in most case, not fair:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;not being able to work for a customer, competitor or similar industry for 2 to 3 years. I always ask to reduce it to 1 year.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;having the same contract termination rights than your employer. Most of the time you can't terminte while they can. It's not acceptable, this period should always be equal. They request a 2 weeks notice? You should have that right too.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-06T07:43:48.893" />
  <row Id="9828" PostTypeId="2" ParentId="9788" CreationDate="2010-10-06T08:05:53.493" Score="2" ViewCount="" Body="&lt;p&gt;Python:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; for t in [int, float, complex, fractions.Fraction, decimal.Decimal]:&#xA;...     print(t, t(0)**0)&#xA;... &#xA;&amp;lt;type 'int'&amp;gt; 1&#xA;&amp;lt;type 'float'&amp;gt; 1.0&#xA;&amp;lt;type 'complex'&amp;gt; (1+0j)&#xA;&amp;lt;class 'fractions.Fraction'&amp;gt; 1&#xA;Traceback (most recent call last):&#xA;  ...&#xA;decimal.InvalidOperation: 0 ** 0&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4319" LastActivityDate="2010-10-06T08:05:53.493" CommentCount="2" />
  <row Id="9829" PostTypeId="2" ParentId="9813" CreationDate="2010-10-06T08:06:31.807" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Prioritize. This is actually the hardest part. Are you ready to forgo that trek with your friends to start learning Ruby this Saturday? If not, the trek is your priority, and not learning Ruby.&lt;/li&gt;&#xA;&lt;li&gt;Manage your time well, and strictly. Remember, you have one life. Don't let somebody else manage it for you.&lt;/li&gt;&#xA;&lt;li&gt;It's easy to lose focus when trying to learn new skills when the time you have for learning is interspersed with other, pressing things - like your day job. Having small reachable goals in the near future, say 4 weeks from now, with weekly reviews help you stay on track.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For long term planning, something like this might be helpful - &lt;a href=&quot;http://chrisguillebeau.com/3x5/how-to-conduct-your-own-annual-review/&quot; rel=&quot;nofollow&quot;&gt;http://chrisguillebeau.com/3x5/how-to-conduct-your-own-annual-review/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good Luck!&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-10-06T08:06:31.807" />
  <row Id="9830" PostTypeId="2" ParentId="9810" CreationDate="2010-10-06T08:06:32.280" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;How do you field criticism framed in &quot;You must be a bad programmer because you're making your software worse&quot;?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;But such criticism is mostly justified. A new release should not be worse than the previous, but as we know, in reality it often it is, and it is our fault because we made it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Making mistakes is human, and it doesn't make anybody a &quot;bad programmer&quot;, so don't take the criticism personally (I would never take any professional criticism from a non-colleague seriously anyway). Just thank the customer for reporting the issue, and fix it as soon  as you can. It's your job as a good programmer.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-06T08:06:32.280" />
  <row Id="9831" PostTypeId="2" ParentId="9813" CreationDate="2010-10-06T08:09:28.050" Score="43" ViewCount="" Body="&lt;p&gt;Let me start by saying I know where you are coming from. I work for a small company with lots of stuff to do and I am a family man with two kids under the age of five. I have no intention of being an absent father or husband, or doing a poor job for my employers, so it is extremely difficult to find the time for new stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the trick is to make your goals extremely small and achievable and go from there. Earlier in the year I wanted to write some blog posts. Instead of setting a generic &quot;write some blog posts&quot; goal, I made a micro target of &quot;write for two hours a week; don't worry about whether it's good enough to post.&quot; I didn't worry about the larger goal, but instead made sure I achieved the micro goal that ultimately meant I achieved what I wanted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now, I'm interested in BDD frameworks, but rather than have a goal of learning them, my goal is simply to spend 30 minutes a day on them. Even if the 30 minutes is simply downloading and installing cucumber, I'm okay with that. Ultimately, I will achieve my goal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Someone much wiser than me once said that the only way to eat an elephant is one bite at a time; similarly the only way to hone your skills is in small chunks of time. Rather than stressing about some larger goal, if you focus on freeing up just two hours a week, over the next year that's 100 hours you've dedicated to something new.&lt;/p&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-10-06T08:09:28.050" CommentCount="4" />
  <row Id="9832" PostTypeId="2" ParentId="109" CreationDate="2010-10-06T08:33:10.437" Score="6" ViewCount="" Body="&lt;h2&gt;Character encoding&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Working with Unicode: converting to/from/between &lt;code&gt;ASCII&lt;/code&gt;/&lt;code&gt;ISO 8859-1&lt;/code&gt;/&lt;code&gt;Windows-1252&lt;/code&gt;/&lt;code&gt;UTF-8&lt;/code&gt; and other encodings, double encoding, not keeping track across applications, systems, protocols and file formats what encoding textual bytestrings are stored in... the list goes on. Few things are gotten wrong this often.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Very closely related: &lt;strong&gt;string escaping&lt;/strong&gt; and unescaping, the bane of too many websites.&lt;/p&gt;&#xA;" OwnerUserId="4319" LastActivityDate="2010-10-06T08:33:10.437" CommunityOwnedDate="2010-10-06T08:33:10.437" CommentCount="2" />
  <row Id="9833" PostTypeId="2" ParentId="9605" CreationDate="2010-10-06T08:48:27.190" Score="4" ViewCount="" Body="&lt;p&gt;Program Def: &quot;A program is a collection of executable statements and errors.&quot; :P&lt;/p&gt;&#xA;" LastActivityDate="2010-10-06T08:48:27.190" />
  <row Id="9834" PostTypeId="2" ParentId="9605" CreationDate="2010-10-06T08:52:32.227" Score="1" ViewCount="" Body="&lt;p&gt;It is something like :&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;There are three types of programmers&#xA;  in the world. First type is people who&#xA;  know how to count, and the second&#xA;  type is people who don't.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3613" LastEditorUserId="3613" LastEditorDisplayName="" LastEditDate="2010-10-07T17:05:39.640" LastActivityDate="2010-10-07T17:05:39.640" />
  <row Id="9835" PostTypeId="2" ParentId="2001" CreationDate="2010-10-06T08:58:35.430" Score="1" ViewCount="" Body="&lt;p&gt;I usually smoke some waterpipes with fruit aromas and have sincere conversations with my pals. Exercise is a must to a software developer, i must add.&lt;/p&gt;&#xA;" OwnerUserId="738" LastActivityDate="2010-10-06T08:58:35.430" CommentCount="1" />
  <row Id="9836" PostTypeId="2" ParentId="6847" CreationDate="2010-10-06T09:02:24.010" Score="0" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.runrev.com/products/livecode/&quot; rel=&quot;nofollow&quot;&gt;LiveCode&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;A modern descendent of HyperTalk that helps programmers be more productive than many traditional languages by requiring a lot less code to do the same action. While it may appear verbose at first, the high level coding and lack of punctuation and braces actually makes it quick to code in.&lt;/p&gt;&#xA;" LastEditorUserId="4882" LastEditorDisplayName="" LastEditDate="2010-11-17T03:07:43.197" LastActivityDate="2010-11-17T03:07:43.197" CommunityOwnedDate="2010-10-06T09:02:24.010" />
  <row Id="9837" PostTypeId="2" ParentId="9675" CreationDate="2010-10-06T09:11:48.217" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can find a version of gcc for any platform you can dream of, from the tiniest microcontroller to the hugest supercomputer, and if you don't find one you can just build a toolchain of your own.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-06T09:11:48.217" CommentCount="5" />
  <row Id="9838" PostTypeId="2" ParentId="2001" CreationDate="2010-10-06T09:12:42.363" Score="0" ViewCount="" Body="&lt;p&gt;I play &lt;strong&gt;&lt;a href=&quot;http://shooter-szene.4players.de/albums/counter_strike_source/0000000031_1024x768.jpg&quot; rel=&quot;nofollow&quot;&gt;Counter strike&lt;/a&gt;&lt;/strong&gt; to clear my mind after a day of coding. You can try playing any other online game.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should check out the &lt;a href=&quot;http://stackoverflow.com/questions/784461?tab=votes#tab-top&quot;&gt;Same question on Stack Overflow&lt;/a&gt; .&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-10-06T09:12:42.363" />
  <row Id="9839" PostTypeId="2" ParentId="8805" CreationDate="2010-10-06T09:15:15.993" Score="0" ViewCount="" Body="&lt;p&gt;Test the waters a little bit first. Hang out in the mailing lists, irc channels etc and watch how things work. Fix a bug or add a known requested feature yourself and submit a patch. See how it is accepted ... do they work with you to get it edited and included or fight you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also evaluate yourself. Do you really have the time and interest to stick around and be worth the project investing in getting you up to speed?&lt;/p&gt;&#xA;" OwnerUserId="4609" LastActivityDate="2010-10-06T09:15:15.993" />
  <row Id="9840" PostTypeId="1" CreationDate="2010-10-06T09:25:07.053" Score="3" ViewCount="134" Body="&lt;p&gt;Every now and then I see this methodology of development: [Insert word]-driven development, where [Insert word] is of course replaced by some word. How many such development methods are there, and what do they mean?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-12-02T14:39:11.333" Title="[Insert word]-driven development methodologies - How many are there?" Tags="&lt;development-methodologies&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="9841" PostTypeId="2" ParentId="6847" CreationDate="2010-10-06T09:27:45.023" Score="2" ViewCount="" Body="&lt;h2&gt;Unix Command Language: sh/bash/zsh&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The UNIX shell is most people's main access to the UNIX operating system. The Bourne shell (sh) and it's decenents (bash/zsh) have a strong and powerful syntactical language built in supplying various features usually found only in more sophisticated general-purpose programming languages, such as control-flow constructs, variables, comments, arrays, subroutines, and so on. With these sorts of features available, it is possible to write reasonably sophisticated applications as shell scripts. Often, writing a shell script is much quicker than writing the equivalent code in other programming languages. The many advantages include easy program or file selection, quick start, and interactive debugging. A shell script can be used to provide a sequencing and decision-making linkage around existing programs, and for moderately-sized scripts the absence of a compilation step is an advantage. Interpretive running makes it easy to write debugging code into a script and rerun it to detect and fix bugs. Non-expert users can use scripting to tailor the behavior of programs, and shell scripting provides some limited scope for multiprocessing.&lt;/p&gt;&#xA;" OwnerUserId="4609" LastActivityDate="2010-10-06T09:27:45.023" CommunityOwnedDate="2010-10-06T09:27:45.023" CommentCount="2" />
  <row Id="9842" PostTypeId="1" CreationDate="2010-10-06T09:37:36.933" Score="4" ViewCount="222" Body="&lt;p&gt;Hi All,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have to design a flash player for three video sources of IPTV.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Educational videos on the system that can be played on demand. (VOD or Video on Demand local)&lt;/li&gt;&#xA;&lt;li&gt;Streaming videos available on different websites that can be played on demand (VOD or Video on Demand remote)&lt;/li&gt;&#xA;&lt;li&gt;IPTV live streaming video feed&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Videos from three sources have to be played within single flash player that we need to design. There are 2 basic requirements:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;For the two VOD types, we have to provide the pause and play functionality.&lt;/li&gt;&#xA;&lt;li&gt;For IPTV, pause and play is not required, However, channel switching time is critically important here. The user should get the program behaviour as close to TV experience as possible. This means channel switching should be fast. To provide this, buffering of video is required for multiple channels.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Now the questions is, is this possible? If yes, how? Secondly, what skill set (e.g. action script 3.0 , flash 10) should the flash programmer have to be able to design this?&#xA;Thirdly is it as simple as making a normal FLV player? Or is it a more complex job?&lt;/p&gt;&#xA;" OwnerUserId="4640" LastEditorUserId="22031" LastEditorDisplayName="" LastEditDate="2011-06-03T20:02:53.810" LastActivityDate="2011-06-03T20:02:53.810" Title="Flash Player for IPTV" Tags="&lt;flash&gt;&lt;actionscript&gt;&lt;how-to&gt;" AnswerCount="3" CommentCount="6" />
  <row Id="9843" PostTypeId="1" CreationDate="2010-10-06T09:39:57.530" Score="18" ViewCount="263" Body="&lt;p&gt;This is a question I asked a while back on SO, but it may get discussed better here...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where I work, we've gone back and forth on this subject a number of times and are looking for a sanity check. Here's the question: Should Business Objects be data containers (more like DTOs) or should they also contain logic that can perform some functionality on that object.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example - Take a customer object, it probably contains some common properties (Name, Id, etc), should that customer object also include functions (Save, Calc, etc.)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One line of reasoning says separate the object from the functionality (single responsibility principal) and put the functionality in a Business Logic layer or object.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other line of reasoning says, no, if I have a customer object I just want to call Customer.Save and be done with it. Why do I need to know about another class to save a customer if I'm consuming the object?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our last two projects have had the objects separated from the functionality, but the debate has been raised again on a new project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which makes more sense and why??&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-05-05T11:08:31.373" LastActivityDate="2011-05-05T11:08:31.373" Title="Business Objects - Containers or functional?" Tags="&lt;business-logic&gt;&lt;business-rules&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="2" />
  <row Id="9844" PostTypeId="1" AcceptedAnswerId="9847" CreationDate="2010-10-06T09:44:17.993" Score="5" ViewCount="94" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After experiencing quite a lot of problems with our small project's manager (we're a startup, and he's the only guy who has the appropriate education; the rest of us are programmers), we have finally identified the cause of our troubles: his understanding of the inner works of our project is limited, as is his understanding of a normal software development workflow. He has expressed the desire to quickly learn and to fill these gaps; however, I don't really know what books, articles or blogs to recommend to him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, can you recommend a good reading for a manager-type person who is not going to be a developer himself, but needs to understand web application development process well enough to understand our explanations when he requests them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. No, kicking him and finding another manager is not an option at this moment.&lt;/p&gt;&#xA;" OwnerUserId="4639" LastActivityDate="2010-10-06T13:47:38.740" Title="How to introduce a willing manager to IT and web development?" Tags="&lt;web-development&gt;&lt;education&gt;&lt;non-technical-manager&gt;" AnswerCount="2" />
  <row Id="9845" PostTypeId="2" ParentId="154" CreationDate="2010-10-06T09:46:18.160" Score="12" ViewCount="" Body="&lt;p&gt;I personally like this one &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/RuM6K.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1522" LastActivityDate="2010-10-06T09:46:18.160" />
  <row Id="9846" PostTypeId="2" ParentId="6847" CreationDate="2010-10-06T09:46:59.827" Score="0" ViewCount="" Body="&lt;p&gt;LiveCode/RunRev&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has served me for just about every possible eventuality for the last 10 years; it is&#xA;sufficiently flexible that there are always a multiplicity of ways to get things done,&#xA;so one doesn't spend donkey's ages scratching about for the 'exact' syntax.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-06T09:46:59.827" CommunityOwnedDate="2010-10-06T09:46:59.827" />
  <row Id="9847" PostTypeId="2" ParentId="9844" CreationDate="2010-10-06T09:48:52.247" Score="2" ViewCount="" Body="&lt;p&gt;I think the perfect candidate for your guy &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321605780&quot; rel=&quot;nofollow&quot;&gt;is a book&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/7wCtd.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Very valuable. If he wants to go further, I highly suggest him to read on:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131479415&quot; rel=&quot;nofollow&quot;&gt;Agile Estimating and Planning&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-06T09:48:52.247" CommentCount="2" />
  <row Id="9848" PostTypeId="2" ParentId="118" CreationDate="2010-10-06T09:51:55.007" Score="2" ViewCount="" Body="&lt;p&gt;I personally like &lt;strong&gt;Chennai, India&lt;/strong&gt; &lt;/p&gt;&#xA;" OwnerUserId="1522" LastActivityDate="2010-10-06T09:51:55.007" CommentCount="2" />
  <row Id="9849" PostTypeId="1" AcceptedAnswerId="9852" CreationDate="2010-10-06T09:52:38.547" Score="4" ViewCount="111" Body="&lt;p&gt;I'd like &lt;a href=&quot;http://stackoverflow.com/questions/1671290/show-a-characters-unicode-codepoint-value-in-eclipse&quot;&gt;a feature added to Eclipse&lt;/a&gt;, as a small plug-in, but:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's a bit niche, so not high demand. So if I post it as a feature request it's unlikely to be followed-up.&lt;/li&gt;&#xA;&lt;li&gt;Still, I'm sure someone else would find it handy.&lt;/li&gt;&#xA;&lt;li&gt;I'm a programmer, but I don't know Java, and I don't think it's currently worth my time learning Java just to code this.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What might be a good way to find a programmer who could code such an Eclipse plug-in, and pay them to do the job?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My example is specifically about Java and Eclipse, but what might be an answer to this question in general terms?&lt;/p&gt;&#xA;" OwnerUserId="4637" LastActivityDate="2010-10-06T11:25:17.293" Title="How could I hire a programmer to add a small feature to an OSS project?" Tags="&lt;open-source&gt;&lt;hiring&gt;" AnswerCount="3" />
  <row Id="9850" PostTypeId="2" ParentId="9849" CreationDate="2010-10-06T09:54:35.023" Score="1" ViewCount="" Body="&lt;p&gt;When I have small tasks like that, easy to define, easy to manage, I use either &lt;a href=&quot;http://www.rentacoder.com&quot; rel=&quot;nofollow&quot;&gt;Rent A Coder&lt;/a&gt; or &lt;a href=&quot;http://www.odesk.com&quot; rel=&quot;nofollow&quot;&gt;oDesk&lt;/a&gt; to find high skilled developers. With a preference for the last one.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-06T09:54:35.023" />
  <row Id="9851" PostTypeId="2" ParentId="870" CreationDate="2010-10-06T09:55:48.377" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Jon skeet's&lt;/strong&gt; &quot;c# in Depth&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/OZev7.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1522" LastActivityDate="2010-10-06T09:55:48.377" CommunityOwnedDate="2011-01-21T21:28:48.980" CommentCount="2" />
  <row Id="9852" PostTypeId="2" ParentId="9849" CreationDate="2010-10-06T10:20:48.493" Score="2" ViewCount="" Body="&lt;p&gt;Take a look here: &lt;a href=&quot;http://news.ycombinator.com/item?id=1759653&quot; rel=&quot;nofollow&quot;&gt;Hacker News Thread&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To summarize it briefly: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;https://spreadsheets2.google.com/ccc?key=tk7rUIb-2aPdk_5gFJEodCA&amp;amp;hl=en#gid=0&quot; rel=&quot;nofollow&quot;&gt;Hacker News Freelance Google Spreadsheet&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Craigslist&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jobs.freelanceswitch.com/&quot; rel=&quot;nofollow&quot;&gt;FreelanceSwitch&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.odesk.com/&quot; rel=&quot;nofollow&quot;&gt;Odesk&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.elance.com/p/landing/buyerD2.html&quot; rel=&quot;nofollow&quot;&gt;eLance&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.authenticjobs.com/&quot; rel=&quot;nofollow&quot;&gt;Authentic Jobs&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-06T10:20:48.493" />
  <row Id="9853" PostTypeId="1" AcceptedAnswerId="9854" CreationDate="2010-10-06T10:21:20.300" Score="11" ViewCount="541" Body="&lt;p&gt;At work I introduced BugZilla as my bug tracking software of choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But most managers in my company (which are not IT people) are asking for a simpler instrument or simpler format to use, as not being techies they can't live with so much info.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me BZ is not even near to be complicated, and I know it can be configured to change its outputs, but I don't have so much time to dedicate to the task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyways, I'm looking for a simpler and free alternative to BugZilla, if any. Thanks.&lt;/p&gt;&#xA;" OwnerUserId="4514" LastActivityDate="2011-04-27T14:09:51.403" Title="Alternative to BugZilla" Tags="&lt;bug-tracking&gt;" AnswerCount="10" CommentCount="1" FavoriteCount="1" />
  <row Id="9854" PostTypeId="2" ParentId="9853" CreationDate="2010-10-06T10:23:34.303" Score="8" ViewCount="" Body="&lt;p&gt;I would suggest &lt;a href=&quot;http://trac.edgewall.org/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Trac&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Trac is an enhanced wiki and issue tracking system for software development projects. Trac uses a minimalistic approach to web-based software project management. Our mission is to help developers write great software while staying out of the way. Trac should impose as little as possible on a team's established development process and policies.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I have used this on a couple of projects, and worked great.&lt;/p&gt;&#xA;" OwnerUserId="1020" LastActivityDate="2010-10-06T10:23:34.303" CommentCount="1" />
  <row Id="9855" PostTypeId="2" ParentId="9853" CreationDate="2010-10-06T10:26:42.613" Score="4" ViewCount="" Body="&lt;p&gt;I tried to find an alternative to BugZilla for years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end I settled for &lt;a href=&quot;http://www.fogcreek.com/FogBugz/&quot; rel=&quot;nofollow&quot;&gt;FogBugz&lt;/a&gt;. It's not free but great value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After the free trial your hooked, we even moved our source control to &lt;a href=&quot;http://www.fogcreek.com/kiln/&quot; rel=&quot;nofollow&quot;&gt;Kiln&lt;/a&gt; after a few weeks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Beware, FogBugz is like heroin!&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="96" LastActivityDate="2010-10-06T10:26:42.613" CommentCount="1" />
  <row Id="9856" PostTypeId="2" ParentId="9853" CreationDate="2010-10-06T10:30:31.337" Score="0" ViewCount="" Body="&lt;p&gt;You should try &lt;a href=&quot;http://scarab.tigris.org/&quot; rel=&quot;nofollow&quot;&gt;Scarab&lt;/a&gt;. I remember trying it 8 years ago, :-) and it was very nice even then. It was quite easy to install and customize.&lt;/p&gt;&#xA;" OwnerUserId="4582" LastEditorUserId="4582" LastEditorDisplayName="" LastEditDate="2010-10-06T12:19:20.620" LastActivityDate="2010-10-06T12:19:20.620" CommentCount="1" />
  <row Id="9857" PostTypeId="2" ParentId="9761" CreationDate="2010-10-06T10:32:02.767" Score="1" ViewCount="" Body="&lt;p&gt;In Visual Studio, you can right click on a project or file and click 'generate class diagram'. They sometimes look messy but often useful when you have lost of interactions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to see some kind of visual editor that gives a logical representation of the code and allows you to edit it through that, rather than the code - it probably exists already.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-10-06T10:32:02.767" />
  <row Id="9858" PostTypeId="2" ParentId="9853" CreationDate="2010-10-06T10:39:05.537" Score="5" ViewCount="" Body="&lt;p&gt;Also check out &lt;a href=&quot;http://en.wikipedia.org/wiki/Comparison_of_issue-tracking_systems&quot; rel=&quot;nofollow&quot;&gt;Wikipedia's Comparison of issue-tracking systems&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="134" LastActivityDate="2010-10-06T10:39:05.537" />
  <row Id="9859" PostTypeId="2" ParentId="118" CreationDate="2010-10-06T10:41:54.937" Score="2" ViewCount="" Body="&lt;p&gt;How about &lt;a href=&quot;http://en.wikipedia.org/wiki/Norway&quot; rel=&quot;nofollow&quot;&gt;Norway&lt;/a&gt;? It regularly ranks on the top of the UN's list of &lt;a href=&quot;http://news.bbc.co.uk/2/hi/in_depth/8290550.stm&quot; rel=&quot;nofollow&quot;&gt;best places to live&lt;/a&gt;, and has an &lt;a href=&quot;http://www.google.com/publicdata?ds=z9a8a3sje0h8ii_&amp;amp;met=unemployment_rate&amp;amp;idim=eu_country%3aNO&amp;amp;dl=en&amp;amp;hl=en&amp;amp;q=norway+unemployment+rate&quot; rel=&quot;nofollow&quot;&gt;extremely low unemployment rate&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://www.worldbusinessculture.com/Norwegian-Management-Style.html&quot; rel=&quot;nofollow&quot;&gt;Norwegian management style&lt;/a&gt;, as in other Scandinavian countries, is very &quot;soft&quot;, and a boss is more seen as a coach than an authoritarian figure. As such, you can expect to have a great deal of saying in how things are done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Did I mention you get 5 - 6 weeks of paid vacation each year?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We also have &lt;a href=&quot;http://www.opera.com/&quot; rel=&quot;nofollow&quot;&gt;one of the worlds largest browser factories&lt;/a&gt;. Also, beautiful blond women.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The downsides are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;mostly Java and .Net consulting&lt;/li&gt;&#xA;&lt;li&gt;it's cold and dark for the most of the year (although you can escape those five paid weeks of vacation)&lt;/li&gt;&#xA;&lt;li&gt;there are a lot of taxes&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1020" LastActivityDate="2010-10-06T10:41:54.937" CommentCount="1" />
  <row Id="9860" PostTypeId="2" ParentId="9853" CreationDate="2010-10-06T11:06:04.493" Score="10" ViewCount="" Body="&lt;p&gt;My favorite is &lt;a href=&quot;http://www.redmine.org/&quot; rel=&quot;nofollow&quot;&gt;Redmine&lt;/a&gt;. It's quite modular so it can be simplified simply by disabling unnecessary modules.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-06T11:06:04.493" CommentCount="3" />
  <row Id="9861" PostTypeId="2" ParentId="9853" CreationDate="2010-10-06T11:19:31.083" Score="5" ViewCount="" Body="&lt;p&gt;I have used Mantis fairly extensively. It is fairly straight forward but functional.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-06T11:19:31.083" CommentCount="1" />
  <row Id="9862" PostTypeId="2" ParentId="118" CreationDate="2010-10-06T11:23:31.413" Score="2" ViewCount="" Body="&lt;p&gt;How about Australia. During the recent global financial crisis it was one of the economies to perform best. I didn't notice any IT jobs downturn. &lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-06T11:23:31.413" />
  <row Id="9863" PostTypeId="2" ParentId="9849" CreationDate="2010-10-06T11:25:17.293" Score="1" ViewCount="" Body="&lt;p&gt;If you don't need a local with a physical presence (which will save you time and money in communications) then I would consider having a look at where the Eclipse plugin programmers hang out.  There is most likely a mailing list where you could ask for assistance.  You might even get it for free if others need the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also know that JBoss have a whole division which does Eclipse plugins if you need brand names and consulting and all.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-06T11:25:17.293" />
  <row Id="9865" PostTypeId="2" ParentId="9814" CreationDate="2010-10-06T11:32:03.100" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Move the personnel matters to a weekly sit-down meeting, which might as well last an hour.  You don't need to discuss personnel issues every day, unless you're a startup that might go out of business at any time.&lt;/li&gt;&#xA;&lt;li&gt;Make the meeting focused on technical issues, related to your process.&lt;/li&gt;&#xA;&lt;li&gt;If you are pretending to follow Scrum, really follow it.  It sounds like you might need a scrum master who keeps things tight and focused.&lt;/li&gt;&#xA;&lt;li&gt;Move the meeting to an hour or two later.  No one likes to show up at 9AM, and the meeting might become more useful if people have time before it to prepare for it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-10-06T11:32:03.100" />
  <row Id="9866" PostTypeId="2" ParentId="9813" CreationDate="2010-10-06T11:35:36.383" Score="9" ViewCount="" Body="&lt;p&gt;You might find some time during actual work hours. Learning new skills and how to use them in our job is part of the job, me thinks. At least it should be part of the job, and if a business fails to understand that, then that business will have a hard time keeping its people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that, learn when you can catch up on the latest stuff. What do you do during commuting? Sleep or read the latest blog posts / books? And during the evening - watch tv or read something while keeping the tv on? Etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I think learning to say no is a part of it - however, this comes with a disadvantage if used often - you'll be seen as a no-sayer and at last no body wants to deal with you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best way to start, however, is to keep it simple and manageable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And - how loveable ain't this profession? We look for time to actually learn more. That's a great thing and out of that great things will come, given some time!&lt;/p&gt;&#xA;" OwnerUserId="4643" LastActivityDate="2010-10-06T11:35:36.383" CommentCount="2" />
  <row Id="9867" PostTypeId="2" ParentId="9840" CreationDate="2010-10-06T11:54:42.303" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Test-driven development&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write a very small test that fails. Write code until it passes. Repeat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The important idea behind TDD, as opposed to general unit tests, is that writing the test drives the design of the thing under test. The testing process becomes a &lt;em&gt;design tool&lt;/em&gt;, not just a regression suite.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-06T11:54:42.303" />
  <row Id="9868" PostTypeId="2" ParentId="9843" CreationDate="2010-10-06T11:57:39.050" Score="1" ViewCount="" Body="&lt;p&gt;I cannot really answer your question but I find it funny we are also having this discussion in one of our projects at school. Myself would like to seperate logic from data. But lots of my classmates say the object has to hold all the logic AND data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will try to summerize the facts they bring up:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;A business class object represents a thing, so all data AND logic should be contained. (eg if you want to open a door, you do it yourself, you don't ask someone else. bad example I know)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Easier to understand the code and functionality of a bu object.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Less complexity in the design&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I am telling them they are lazy and I would make it like this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Yes business classes represents things, so it holds data. But it feels wrong to save yourself, or even copy. You cant do that in rl.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Making the object responsible for everything makes it not good for durability and maintibility in the future. If you have a seperate class that is responsible for saving, if you add a new object to the design, youcan easily implement its save funtion. instead of coding it all again in that class.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;By having one object able to persist data, that object can hold a database connection and all database traffic is guided at that object. (basiccally its the data acces layer) otherwise all the Business object would have to hold a connection. (which adds complexity)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Well one way or another, I am going to ask a teacher. When I have done that, I will post his answer here too if you would like. ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;edit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I forgot to mention this project was about a book store.&lt;/p&gt;&#xA;" OwnerUserId="4168" LastActivityDate="2010-10-06T11:57:39.050" CommentCount="1" />
  <row Id="9869" PostTypeId="2" ParentId="9810" CreationDate="2010-10-06T12:07:38.263" Score="2" ViewCount="" Body="&lt;p&gt;Step 1 is that you must come from a mindset that this (the update breaks other stuff) is not normal. Your update should not break or slow other parts of the app. It's not ok, it's not to be expected, and it's not the user's fault when they complain about it. You should be doing as much testing as you can to try to prevent it. When it happens you have a problem, and an urgent one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Step 2 is that you must know what you did. Your source control system might be able to help you, or some kind of work tracking system, but you must be able to say the minute you get one of these complaints &quot;ok, I added a column to this table, changed this grid to calculate the new taxes, added those two new reports ...&quot; and so on. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Step 3 is that you must have experience finding perf issues and crashes quickly, so you know what sorts of things are likely to cause them, and can get to the problem right away. This thing has gone live and you must find the problem quickly and get a patch out. Changing a report can't slow down a part of the app that doesn't use the report. You are in emergency mode now and have to figure out where the mistake is and what to do about it - without breaking another part of the app in the process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Step 4 is for each one of these miseries, you should learn a lesson that you will test for next time. You will become &quot;that guy&quot; who objects to certain constructs because &quot;that will be horrible when there are 10,000 records&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A little more on the &quot;this is normal&quot; front. I run (among all the other things we have going on) an agile project for an external customer. We've been doing releases roughly every 6 weeks for two or three years now. And yes, the release is scheduled to the minute. We just did one at 8am yesterday. And roughly every 4th or 5th release (once or twice a year, in other words) something gets broken live, and we leap into action and make it right as quick as we can. Even though we test and test and test before the release. Then we tell them what happened. &quot;There was a little bug in the June deploy that let this field be blank, but we never noticed because we weren't using the value at that time. Then in this deploy when we started using the field, the ones that were blank caused that error message you saw. We've fixed the bug so they can't be blank, put values in the bad records, and confirmed that it doesn't blow up any more. Our apologies.&quot; Or &quot;That emergency change you begged for, just two days before the release, had consequences we didn't think of and didn't test for. Remember why we resist emergency changes?&quot; I may not be a bad programmer for making it worse with the update, but I surely did do a bad thing. And I need to make it right.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-06T12:07:38.263" />
  <row Id="9870" PostTypeId="2" ParentId="109" CreationDate="2010-10-06T12:16:54.930" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Typos&lt;/strong&gt; &#xA;How come no one said anything about typos&#xA;Are all of them that much confiednt&#xA;oops did it again&lt;/p&gt;&#xA;" OwnerUserId="1485" LastActivityDate="2010-10-06T12:16:54.930" CommunityOwnedDate="2010-10-06T12:16:54.930" />
  <row Id="9871" PostTypeId="2" ParentId="9853" CreationDate="2010-10-06T12:19:59.433" Score="0" ViewCount="" Body="&lt;p&gt;If you are an open source project then you can also use Atlassian's JIRA for free&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-10-06T12:19:59.433" />
  <row Id="9872" PostTypeId="1" AcceptedAnswerId="9874" CreationDate="2010-10-06T12:20:02.553" Score="12" ViewCount="492" Body="&lt;p&gt;Every programmer has a primary language that he works with most of the time and is therefore very familiar with. But there are also languages that you kinda know, in the sense that you used to know them really well in the past, but hasn't used in a while, or that you use them infrequently and therefore are not as immersed in them as you are in your primary language. You can definitely bring yourself to be productive with these languages, but you might need to re-familiarize yourself a little, look up a few syntax rules, and such. My question is- will you write these languages in your CV as languages you &quot;know&quot;?&lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2010-10-06T12:26:27.170" LastActivityDate="2010-10-06T15:46:45.233" Title="Do you write secondary languages in your CV?" Tags="&lt;programming-languages&gt;&lt;cv&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="2" />
  <row Id="9873" PostTypeId="1" AcceptedAnswerId="9888" CreationDate="2010-10-06T12:24:38.360" Score="3" ViewCount="127" Body="&lt;p&gt;Some companies, like Blizzard, make software that continues to work well in future versions of Windows and with newer versions of their other software dependencies. Other companies (mostly ones that are not hardcore software companies) sometimes write software that breaks with a release of a new OS or other software dependency. What do the hardcore software companies know that the others don't? What are the major causes for forward compatibility problems? &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-10-06T18:27:28.367" Title="What are the most common reasons for lack of forward compatibility" Tags="&lt;forward-compatibility&gt;" AnswerCount="5" CommentCount="4" />
  <row Id="9874" PostTypeId="2" ParentId="9872" CreationDate="2010-10-06T12:25:19.840" Score="18" ViewCount="" Body="&lt;p&gt;Of course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It shows that you are more than a &quot;one trick pony&quot; and have skills beyond those required for your current (and prospective job). It helps highlight the experience you have and shows that you can adapt to new technologies etc. as the need arises.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should indicate how long ago it was you last used that language, how long you had been using it and what you were doing with it. In much the same way as you indicate how long you've been using your current skill set and what you've been doing with that.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-10-06T13:31:10.480" LastActivityDate="2010-10-06T13:31:10.480" CommentCount="1" />
  <row Id="9875" PostTypeId="2" ParentId="9872" CreationDate="2010-10-06T12:28:07.463" Score="4" ViewCount="" Body="&lt;p&gt;I specify my previous employers and the languages/technologies I often worked with at that employer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This way the recruiter sees how long ago AND for how long you worked with the languages/technologies.&lt;/p&gt;&#xA;" OwnerUserId="2820" LastActivityDate="2010-10-06T12:28:07.463" />
  <row Id="9876" PostTypeId="2" ParentId="9843" CreationDate="2010-10-06T12:28:12.440" Score="2" ViewCount="" Body="&lt;p&gt;I actually just recently reworked some code to separate the objects from the data. The reason is that the data is obtained through a separate service, and it is much easier to just pass the raw data to/from the server instead of passing the entire object back and forth and having to deal with validation errors on the server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For small projects, having objects contain their business logic and data is probably fine, but for large projects, or projects that might expand over time, I'd definitely separate the layers.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-10-06T12:28:12.440" />
  <row Id="9877" PostTypeId="2" ParentId="9840" CreationDate="2010-10-06T12:28:27.243" Score="3" ViewCount="" Body="&lt;p&gt;Fear-driven development&lt;/p&gt;&#xA;&#xA;&lt;p&gt;also refered to as Hate-driven development. This is more serious than it sounds, I often hear developers complain about having to code all day and night before a new release, this even seems to be common practice in small businisses. Here the only thing that keeps you going is the fear about what will happen if it fails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So even though this is no real methodology it is something you can see everywhere, thats why i brought it up.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-06T12:28:27.243" />
  <row Id="9878" PostTypeId="2" ParentId="9872" CreationDate="2010-10-06T12:28:43.593" Score="2" ViewCount="" Body="&lt;p&gt;I would put them on my CV with the obvious caveat that I feel comfortable answering any questions about it. I think the key is that you still feel you know it well enough now to discuss and answer questions about it. It can show that you are well rounded, can learn new things, and are not only stuck in what language.&lt;/p&gt;&#xA;" OwnerUserId="1287" LastActivityDate="2010-10-06T12:28:43.593" />
  <row Id="9879" PostTypeId="2" ParentId="9840" CreationDate="2010-10-06T12:33:43.207" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;TDD (answered previously)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;BDD which is Behaviour Driven Development - This technique focuses on the behaviour of the system and encourages tests to be written in a human friendly format with a &quot; Given X When Y then Z&quot; type of formula, made famous by Dan North&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;DDD Domain Driven Design (made famous by Eric Evans) which focuses on getting back to the basics of modeling your actual domain accurately.  It talks about things like placing the project's primary focus on the core domain and domain logic, basing complex designs on a model and more (some of this was cribbed from Wikipedia).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There's also Data Driven Design and Metrics Driven Design and others no doubt!&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-10-06T12:33:43.207" />
  <row Id="9880" PostTypeId="2" ParentId="9813" CreationDate="2010-10-06T12:43:54.790" Score="4" ViewCount="" Body="&lt;p&gt;You do not find time. You take time.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-06T12:43:54.790" CommentCount="1" />
  <row Id="9881" PostTypeId="1" AcceptedAnswerId="9887" CreationDate="2010-10-06T12:50:22.900" Score="4" ViewCount="199" Body="&lt;p&gt;I'm looking for informative class documentation format for my Entity, Business Logic and Data Access classes.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found following two formats from &lt;a href=&quot;http://www.sharepointsecurity.com/general/how-do-you-write-class-header-comments/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Format 1&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;///-----------------------------------------------------------------&#xA;///   Namespace:      &amp;lt;Class Namespace&amp;gt;&#xA;///   Class:          &amp;lt;Class Name&amp;gt;&#xA;///   Description:    &amp;lt;Description&amp;gt;&#xA;///   Author:         &amp;lt;Author&amp;gt;                    Date: &amp;lt;DateTime&amp;gt;&#xA;///   Notes:          &amp;lt;Notes&amp;gt;&#xA;///   Revision History:&#xA;///   Name:           Date:        Description:&#xA;///-----------------------------------------------------------------&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Format 2&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// ===============================&#xA;// AUTHOR     :&#xA;// CREATE DATE     :&#xA;// PURPOSE     :&#xA;// SPECIAL NOTES:&#xA;// ===============================&#xA;// Change History:&#xA;//&#xA;//==================================&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I feel following are the basic elements  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Author  &lt;/li&gt;&#xA;&lt;li&gt;Created Date&lt;/li&gt;&#xA;&lt;li&gt;Description&lt;/li&gt;&#xA;&lt;li&gt;Revision History&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;as Namespace and Class name will be there in anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please let me know your thoughts, which format is recommended and whether there is a standard way of writing revision history?&lt;/p&gt;&#xA;" OwnerUserId="493" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:20:40.763" LastActivityDate="2010-11-16T15:20:40.763" Title="What should I include in my class documentation header" Tags="&lt;recommendations&gt;&lt;comments&gt;" AnswerCount="6" CommentCount="2" />
  <row Id="9882" PostTypeId="2" ParentId="9872" CreationDate="2010-10-06T12:51:01.557" Score="0" ViewCount="" Body="&lt;p&gt;Yes, I put the number of years I've worked with the language and when I last used it, and also my level of proficiency.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-10-06T12:51:01.557" />
  <row Id="9883" PostTypeId="2" ParentId="9873" CreationDate="2010-10-06T12:52:52.193" Score="6" ViewCount="" Body="&lt;p&gt;Several reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;They write to standards that continue to be supported in future OS's&lt;/li&gt;&#xA;&lt;li&gt;OS companies (e.g. MS) actually put in a good deal of code to support older software&lt;/li&gt;&#xA;&lt;li&gt;Large popular software houses tend to have formal or informal relationships with the OS companies, so they get to see stuff earlier.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-10-06T12:52:52.193" />
  <row Id="9884" PostTypeId="2" ParentId="9881" CreationDate="2010-10-06T12:55:30.517" Score="2" ViewCount="" Body="&lt;p&gt;Much of this information can be added by your source control repository, leaving you really only with description, which should accurately describe the scope and behaviour of the class.  I'd recommend taking a look at some of the Javadoc for the Java JDK as an example.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-10-06T12:55:30.517" CommentCount="6" />
  <row Id="9885" PostTypeId="1" AcceptedAnswerId="9891" CreationDate="2010-10-06T12:56:23.493" Score="6" ViewCount="206" Body="&lt;p&gt;How much technical (for future developers) documentation is &lt;em&gt;enough&lt;/em&gt;? Is there a ratio between hours coding and hours documenting that's appropriate?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://thedailywtf.com/Articles/Documentation-Done-Right.aspx&quot; rel=&quot;nofollow&quot;&gt;Papadimoulis argues&lt;/a&gt; that you should&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;produce the least amount of documentation needed to facilitate the most understanding,&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Is that a good guideline, or are there specific things I should be creating?&lt;/p&gt;&#xA;" OwnerUserId="4422" LastEditorUserId="4422" LastEditorDisplayName="" LastEditDate="2010-10-06T13:09:08.487" LastActivityDate="2010-10-21T03:04:43.790" Title="How much documentation is enough?" Tags="&lt;documentation&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="1" />
  <row Id="9886" PostTypeId="2" ParentId="9873" CreationDate="2010-10-06T12:56:32.247" Score="1" ViewCount="" Body="&lt;p&gt;I think it's just that writing forward compatible software takes more effort. Whether the effort (=cost) is worth the compatibility must be evaluated by the releasing firm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, database schemas can change. They could be migrated automatically (for best user experience) or ignored (for less development effort).&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-06T12:56:32.247" />
  <row Id="9887" PostTypeId="2" ParentId="9881" CreationDate="2010-10-06T12:56:41.807" Score="10" ViewCount="" Body="&lt;p&gt;Most of the information you've suggested there would be found in the source repository.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only thing you really need is the purpose section, which says what the class is there for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would it be tedious to look in repository every time you want to know the other information? I'd say no.  How often do you care who the original author was?  Or when the file was first created?  Plugins (such as Ankh SVN for Visual Studio) often allow you to right click within your current file and view the repoistory log for the file, so it's not that much of a hassle to actually see this information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, if you store the version history in a comment, this comment needs to be maintained. So over time there's a chance it could be lying to you.  The source code repository automatically keeps this historical data, so doesn't need that maintenance, and will be accurate.&lt;/p&gt;&#xA;" OwnerUserId="55" LastEditorUserId="55" LastEditorDisplayName="" LastEditDate="2010-10-06T13:23:59.363" LastActivityDate="2010-10-06T13:23:59.363" CommentCount="4" />
  <row Id="9888" PostTypeId="2" ParentId="9873" CreationDate="2010-10-06T13:00:30.553" Score="8" ViewCount="" Body="&lt;p&gt;Did Blizzard write software that works well with future versions of Windows (Starcraft still plays on 7 for example)... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;or did Microsoft write &quot;future versions&quot; of software that are backwards looking?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something like WoW isn't exactly &quot;forward looking&quot; since it's still in active development. Other software, like Starcraft/Warcraft/Diablo was written for the time and happens to still work because MS goes out of its way to enable old software on new systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Blizzard also has the ability, and reason, to update it's old games. Very popular titles that drive it's current software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some software uses hackish/non-standard parts that don't work well. Unique setups, reliant on &quot;old&quot; bugs to operate, drivers that aren't ported to new systems, etc.&lt;/p&gt;&#xA;" OwnerUserId="2536" LastActivityDate="2010-10-06T13:00:30.553" />
  <row Id="9889" PostTypeId="1" AcceptedAnswerId="9894" CreationDate="2010-10-06T13:01:52.467" Score="32" ViewCount="514" Body="&lt;p&gt;I would really like to get out of the 9-5 &quot;cubicle&quot; existence and do something where I can work from home, take off when I like, etc.  Don't get me wrong... I don't mind working hard, but I just am not enjoying the whole corporate thing where my hours, vacation days, dress code, place of work, etc. are set. I really think this is possible because other developers are somehow pulling this off.  But so far it is just in the &quot;dream&quot; stage and I have no idea how to move it forward.  I don't know if I want to be freelancer, start my own company or what.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In case it matters, I have been working in .Net / MVC for the past few years (both desktop and web) but have experience with other languages as well (Java, C++, Perl, etc.).  I don't have much experience with &quot;web design&quot; side of things since in all my jobs other people have handled that while I have worked on the &quot;programming&quot; work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just to make it more concrete what I want... I wake up on a random Tuesday in June and it's a gorgeous day.  I am ahead of schedule on my projects and I don't feel like working ... I want to go hiking.  I want the freedom to do that without dealing with some PHB. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another scenario... I do feel like working but I want to go visit an old friend or relative for a week in Bismarck / Budapest / Boston.  Said friend has reliable Internet.  Why can't I do that?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not talking about being irresponsible just a bit more free.&lt;/p&gt;&#xA;" OwnerUserId="4526" LastEditorUserId="4526" LastEditorDisplayName="" LastEditDate="2010-10-06T13:09:02.933" LastActivityDate="2010-10-06T14:34:45.763" Title="How to ditch the cubicle?" Tags="&lt;work-environment&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="13" />
  <row Id="9890" PostTypeId="2" ParentId="2001" CreationDate="2010-10-06T13:09:57.020" Score="0" ViewCount="" Body="&lt;p&gt;Church and/or community activities.&lt;br&gt;&#xA;One of my pastimes is... fixing computers.&lt;/p&gt;&#xA;" OwnerUserId="3228" LastActivityDate="2010-10-06T13:09:57.020" />
  <row Id="9891" PostTypeId="2" ParentId="9885" CreationDate="2010-10-06T13:11:11.243" Score="7" ViewCount="" Body="&lt;p&gt;How about some hallway usability testing? Show the code and documentation to a developer unfamiliar with the project. When you can do that without an overwhelming urge to explain something while watching them review the code, you have enough.&lt;/p&gt;&#xA;" OwnerUserId="287" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-10-06T15:55:50.723" LastActivityDate="2010-10-06T15:55:50.723" CommentCount="1" />
  <row Id="9892" PostTypeId="2" ParentId="9872" CreationDate="2010-10-06T13:15:30.000" Score="4" ViewCount="" Body="&lt;p&gt;I wouldn't just include a laundry list of languages.  These should be incorporated into the descriptions of the projects that you have worked on, along with any other technologies (databases, frameworks, etc.).  As a hiring manager I want to know what you did with these languages, not just a claim that you know them.  &lt;/p&gt;&#xA;" OwnerUserId="1427" LastActivityDate="2010-10-06T13:15:30.000" CommentCount="1" />
  <row Id="9893" PostTypeId="2" ParentId="9723" CreationDate="2010-10-06T13:28:23.117" Score="2" ViewCount="" Body="&lt;p&gt;Programming is one of the jobs were most of the physical impairments don't affect productivity at all. I worked with people on wheelchair and people with hearing impairment, and they were among the best programmers I ever met (I don't know if there's some kind of correlation).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is true that disabilities still draw discrimination, but in my experience working with disabled people will soon let you forget about the impairments and deal with them just as with any other coworker.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-10-06T13:28:23.117" />
  <row Id="9894" PostTypeId="2" ParentId="9889" CreationDate="2010-10-06T13:34:03.880" Score="21" ViewCount="" Body="&lt;p&gt;I feel your pain. I was in the exact same situation 12 years ago. I finally quit to become freelance and that where all started for me (now I own my businesses)!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a very simple strategy (it's more a draft, I will be more than happy to discuss that with you by email). Steps are really simple to enumerate, but they are very hard to achieve. The difference between those who are successful and the others is that the later tend to quit when they face the first difficulties.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your goal: leave your job to become freelance, create some slack in your life or be in a position where you can negociate better work conditions with your existing employer. I don't know what is good for you, since I don't know you.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;&lt;strong&gt;Eliminate waste&lt;/strong&gt; in your life&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Those tv or magazine subscriptions you don't use very often, that new car that cost you so much, that big appartment you call &quot;the cash drain&quot;, and so on. You must minimize the amount of money you need per month. This will be the key in later steps.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;&lt;strong&gt;Create a saving strategy&lt;/strong&gt;&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Now you have minimized the amount of money you need, save the rest. The more you minimized and the more you earn, the faster you will be able to do the next steps. If you have debts, start to pay them first, then save.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;&lt;strong&gt;Be indispensable&lt;/strong&gt;&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In your daily job, work hard. Do more than your assignments. Help your colleagues. Propose. Suggest. Question.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;&lt;strong&gt;Keep your word&lt;/strong&gt;&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You have to become previsible in business. You say you will deliver A, deliver A, and even more. You say you will do B, do B! Simple, but more difficult that you think. The key is avoiding to give promise on things you will not be able to achieve.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;&lt;strong&gt;Quit&lt;/strong&gt;&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;When you have accumulated enought money to be able to stop working for at least a year, try something else. This can be a project you always wanted to do, another type of job, anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is where I leave you... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Further reading:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0767927419&quot; rel=&quot;nofollow&quot;&gt;Career Renegade&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.amazon.com/Escape-Cubicle-Nation-Corporate-Entrepreneur/dp/B002YNS10M/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1286372109&amp;amp;sr=1-1&quot; rel=&quot;nofollow&quot;&gt;Escape Cubicle Nation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1591841666&quot; rel=&quot;nofollow&quot;&gt;The Dip&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1591843162&quot; rel=&quot;nofollow&quot;&gt;Linchpin Are Indispensable&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0307353133&quot; rel=&quot;nofollow&quot;&gt;The 4 Hour Work Week&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-06T13:48:06.933" LastActivityDate="2010-10-06T13:48:06.933" CommentCount="5" />
  <row Id="9895" PostTypeId="2" ParentId="9881" CreationDate="2010-10-06T13:37:24.287" Score="0" ViewCount="" Body="&lt;p&gt;I've been playing around with changing out my header templates since, as others point out, a lot of this information can be found in the repository and so far the big fields that I've been looking to keep are the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Description&lt;/strong&gt; - What is being done by the code.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Notes&lt;/strong&gt; - Anything that needs to be known about the code that is not easily derived from the comments in the code itself. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;References&lt;/strong&gt; - Any references that the code is dependent upon that are not made clear though the use of &lt;code&gt;include&lt;/code&gt; or similar statements.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;One item that may also be useful to include is a section on &lt;strong&gt;Keywords&lt;/strong&gt; While you might be able to do a search for function, class, struct, etc names, there might be some keywords that the other names in the file do not make clear. Or for older, poorly documented code, it might be the first step in documenting the code for maintenance.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-10-06T13:37:24.287" />
  <row Id="9896" PostTypeId="2" ParentId="67" CreationDate="2010-10-06T13:45:37.480" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://americanchestertonsociety.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;The blog of the American Chesterton Society&lt;/a&gt;  is primarily written by a computer scientist who constantly refers to old school programming in relation to the philosophy of G.K. Chesterton.  It's pretty delightful most of the time, although he rambles a lot. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-06T13:45:37.480" CommunityOwnedDate="2010-10-06T13:45:37.480" />
  <row Id="9897" PostTypeId="2" ParentId="9844" CreationDate="2010-10-06T13:47:38.740" Score="3" ViewCount="" Body="&lt;p&gt;I have found through experience that recommending a certain book as a starting point tends to stem the flow of communication. At this point, you and your team need to divulge whatever information the manager can handle to bring them up to speed quickly. 'Choking them' by asking them to digest a book will make them go quiet for a long time (while they read), and they may also react emotively to being brushed off - you're implicitly stating &quot;you couldn't possibly understand this stuff unless you've read and understood everything in this book&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You and your team are likely focussed at a detail level and the new manager needs a 10,000 ft view of the system until they have a working understanding of it all and can dive in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One approach would be to get get a large dry-marker board for you and a notepad and pen for the manager, go to a quiet area and start drawing block/process diagrams of:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The High Level Design of the product.&lt;/li&gt;&#xA;&lt;li&gt;The software development workflow that you use.&lt;/li&gt;&#xA;&lt;li&gt;Issues that arise in day-to-day activities and ways of mitigating them. Think problems with scale, performance, accuracy, security, etc.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In explaining these items, you may well find that the manager can get his head around a portion of the details but has big holes in their understanding of some parts. Those would be the parts to direct them a book/article/video so that they could research more.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-06T13:47:38.740" CommentCount="1" />
  <row Id="9898" PostTypeId="2" ParentId="2233" CreationDate="2010-10-06T13:48:11.517" Score="2" ViewCount="" Body="&lt;p&gt;A Living &lt;a href=&quot;http://programmers.stackexchange.com/questions/6055/awesomest-programming-plant-closed&quot;&gt;Plant&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-06T13:48:11.517" CommunityOwnedDate="2010-10-06T13:48:11.517" />
  <row Id="9899" PostTypeId="2" ParentId="9853" CreationDate="2010-10-06T13:51:21.083" Score="0" ViewCount="" Body="&lt;p&gt;Roll your own - I did, and I'm pretty much a bum. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not too hard to write something like tailored to your needs if all your clients have an active connection to the internet and you've got a reasonable amount of control over your company's website.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-06T13:51:21.083" />
  <row Id="9900" PostTypeId="1" AcceptedAnswerId="9902" CreationDate="2010-10-06T13:57:49.610" Score="4" ViewCount="229" Body="&lt;p&gt;I know they engineers use the knowledge base to solve problems, and scientist expand the knowledge base. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But when it comes to software development, computer scientists seem to have the edge. Granted computer engineers by default take more math courses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you could go back and pick one, which one would you pick? As well as what have you noticed with the way people work form these different streams of study?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;** Being in a Canadian University these two streams where in different departments, engineering and design and sciences. Where we only had on class together in 3rd year, I noticed computer science guys were quicker to code, engineers answered the question most precisely. &lt;/p&gt;&#xA;" OwnerUserId="2446" LastActivityDate="2010-10-06T14:13:51.730" Title="The real difference between a computer engineer and computer scientists?" Tags="&lt;holy-war&gt;&lt;computer-science&gt;&lt;software-engineering&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="9901" PostTypeId="2" ParentId="2233" CreationDate="2010-10-06T14:02:29.780" Score="0" ViewCount="" Body="&lt;p&gt;A ready source of caffeine.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-10-06T14:02:29.780" CommunityOwnedDate="2010-10-06T14:02:29.780" />
  <row Id="9902" PostTypeId="2" ParentId="9900" CreationDate="2010-10-06T14:13:51.730" Score="8" ViewCount="" Body="&lt;p&gt;Here's how I would define these:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Computer Engineer&lt;/strong&gt;: Someone who builds computers or computer components, ex: chip design.  These folks are usually closer to electrical engineers, taking far more engineering classes.&#xA;&lt;br&gt;&#xA;&lt;strong&gt;Computer Science&lt;/strong&gt;: Someone who studies theories of state machines, software proofs, etc.  Usually in the science curriculum.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Somewhat related, but that you didn't mention:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Software Engineer&lt;/strong&gt;: Someone who designs and builds software.  I'd consider this the more practical application of coding to solving problems, and what most people actually do.  Some schools offer this as a separate degree.  Some offer Information Technology or similar degrees, which will study other aspects of technology delivery.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found there's a huge variety in ability to produce software, no matter your background.  So characterization of engineers being more precise, or scientists being quicker coders is probably just not true in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe it's different in Canada :)&lt;/p&gt;&#xA;" OwnerUserId="3073" LastActivityDate="2010-10-06T14:13:51.730" CommentCount="2" />
  <row Id="9903" PostTypeId="1" AcceptedAnswerId="9906" CreationDate="2010-10-06T14:18:26.473" Score="12" ViewCount="379" Body="&lt;p&gt;Hai Friends,&#xA;           what are the necessary qualities needed for an junior level programmer to an senior level programmer&lt;/p&gt;&#xA;" OwnerUserId="3993" LastActivityDate="2010-10-24T22:57:16.833" Title="What are the Vital Qualities need for a Junior Level Programmer to Become a good Senior Level Programmer??" Tags="&lt;career&gt;&lt;self-improvement&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="2" />
  <row Id="9904" PostTypeId="2" ParentId="9903" CreationDate="2010-10-06T14:23:55.860" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Perseverance&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Patience&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Curiosity&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;to name a few&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-06T14:23:55.860" />
  <row Id="9905" PostTypeId="2" ParentId="9889" CreationDate="2010-10-06T14:24:36.693" Score="5" ViewCount="" Body="&lt;p&gt;I've only been a professional, paid developer for 4 and a bit years, but I've spent a lot of time wanting more time to do my own thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For my first year and a half I worked for one organisation. It was a good place to start. I had a great many experiences, including negotiating a (relatively) large increase in my salary, and moving across the country when the business migrated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After 1.5 years in that job I got a call from a manager (I'll call him G) who had quit to go freelance, and wanted me along on his latest contract. The money was double what I was getting, and I was bored and frustrated in my current position (for many reason, mostly bureaucratic), so I took him up on his offer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I set my self up as self employed, and started on the gravy train. At first I found things to be great. It was a contract at a company that was only 1 year old, so we had a lot of leeway, plus it was the same sort of company I had been working for before (and a lot of the same people, but that's another story), and I could work from home. This was important because the site of the contract was an hour and half away, and I didn't fancy a 3 hour round trip each day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, after a few months, things started to go down hill. I had moved house again by this point, and I was closer to the customer site. Interaction between us (by us I mean the group of people that G had hired) and a couple of third parties that the customer was using were strained, and development was slipping. The customer was getting shirty with us (and everyone else) because they wanted to launch and their systems weren't up to scratch. I had to start coming in everyday - a 2 hour round trip. Requirements for our projects were spiralling out of control, and I was incredibly stressed. G had fired one contractor over a disagreement, and our morale was low. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After a few more months of this things levelled out, the customer got enough of what they wanted to launch on time. Things still weren't up to scratch, but work was steady instead of out of control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this point I was left doing something I found incredibly dull and boring. I carried on because I felt like I should finish what I started, also G was promising me more interesting work further down the line. I was still having to go on site everyday and this was having a negative impact on my home life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things didn't change in the sort term (a few months), so at 11 months of being self employed I told G that I was going to move on in 2 months, and try my hand at my own thing. I spent those months tying up loose ends and producing a lot of documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I left, but a month later I was brought back in because G hadn't had time to find someone to replace me, and I'm not one to let people down. I carried on for 6 more months, after which I was replaced (thanks in no small part to my documentation).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had earned a fair bit of money (possibly more than fair) so I set about working on my own project. This was going well, although it didn't pay anything. Due to my lack of income, my then partner (as in romance, not business) started to complain that I wasn't doing anything. She couldn't understand how I could work on something that (probably) wouldn't make me any money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I promised her that I would find a job after 3 months working on this. So after I put my project into late alpha/early beta (where it's been for some time now, without real development), I stopped being self employed and got my self a salaried job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been in this job for 4 months now, and I feel more free and happy than when I was freelance, even though I've gone back to the same salary I was on before I was freelance. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My hours are better, the commute is shorter, support from my manager and team is better. My work day is far more pleasant than it was in the 3.5 years before&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I understand the desire to be more in control of your work day, but freelance doesn't always give you that, and it can make things worse, not only in your work life, but in your personal life.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-10-06T14:24:36.693" CommentCount="1" />
  <row Id="9906" PostTypeId="2" ParentId="9903" CreationDate="2010-10-06T14:24:43.960" Score="18" ViewCount="" Body="&lt;p&gt;The difference is that a &lt;strong&gt;senior level programmer is a mentor.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Senior level developers should command authority and help everyone on the team grow.   &quot;Senior&quot; doesn't just mean &quot;more experienced&quot;.  I've seen people with 15 years or more experience that weren't senior level, and I've seen people with two or three years experience that I would consider senior level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Senior members of a team should mentor everyone, be able to provide guidance, and inspire the team to be more than they could be as individuals.  focus on leadership skills and communication to get yourself to the next level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(being able to mentor and guide requires experience, which is why senior level position job postings require more years of experience)&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-06T14:24:43.960" CommentCount="1" />
  <row Id="9907" PostTypeId="2" ParentId="9903" CreationDate="2010-10-06T14:27:08.533" Score="5" ViewCount="" Body="&lt;p&gt;Let me tell you what I would expect from a Senior level programmer that I would not necessarily expect from a Junior.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, in depth knowledge including knowledge of when to use something and when not to use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, a team player and mentor. Someone who shares knowledge freely and who can work well with others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Third, an ability to solve complex problems and to troubleshoot the less obvious bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fourth, someone I can trust to deliver what was promised when it was promised.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-06T14:27:08.533" />
  <row Id="9908" PostTypeId="2" ParentId="9881" CreationDate="2010-10-06T14:33:22.597" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Have descriptive class, method, and variable names&lt;/strong&gt;. This will eliminate the need for such comments as purpose and description. Sometimes we think that the shorter the method name the better. On the contrary, make a method name as long as you want as long as it clearly describes its purpose. Only have notes that are absolutely vital and help code understanding in some specific way. When making changes to code, programmers often forget to update comments. You can end up with comments and code being out of sync and doing more harm than good. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read this article by Jeff Atwood - &lt;a href=&quot;http://www.codinghorror.com/blog/2008/07/coding-without-comments.html&quot; rel=&quot;nofollow&quot;&gt;Coding Without Comments&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="3262" LastEditorDisplayName="" LastEditDate="2010-10-06T14:43:55.990" LastActivityDate="2010-10-06T14:43:55.990" CommentCount="1" />
  <row Id="9909" PostTypeId="2" ParentId="9889" CreationDate="2010-10-06T14:34:45.763" Score="5" ViewCount="" Body="&lt;p&gt;Sorry for the length, but this is something I've thought about quite a bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're going to have to sell this idea. I know, you don't like sales that's why you became a programmer. Welcome to the real world of how to get what you want. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You've identified what you want and that's a good thing. What are the objections to flex-time and working remotely (they are not the same thing)? Larger corporations have rules that were generated by committees to address these things and sometimes your supervisor cannot overcome them for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That leads us to your immediate supervisor. What are their views on this? She may have that &quot;what if something goes wrong?&quot; issue. Some situations require a developer to be on call to handle some level of support. Are you the only person available or can you work this out with a team and take turns. Obviously you have less flexibility when it's your turn. She may be OK with it, but gets pressure from other departments because they don't have the same privilage or it looks like they're letting you slack. You need to convince everyone that you are there when needed and get things done on time. An IT department that answers 'No' to every request and is late on all the others, will be percieved as never being around when you need them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is tough to get people to be more results oriented. After all, if you worked longer hours, you'd get more results. We know that is not true. &lt;a href=&quot;http://www.citrix.com/English/ne/news/news.asp?newsID=1339540&quot; rel=&quot;nofollow&quot;&gt;Citrix has been involved with some research in this area.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to prove yourself to be trustworthy. Not a huge fan of the book 4-Hour-workweek on the whole, but there is an interesting chapter on managing flexibility even when you have a job. There is a progression you can go through to build on this. It's great that this is what you want, but what's in it for your employer? Are you willing to take less salary? Can you show that you actually more productive?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mentioned that flex-time and working remotely are not the same. You don't want to be in a remote working situation, but are expected to keep specific hours. I was with a company for 3 years and moved away to a different time zone. I was able to work remotely, but would get phone calls after 6 (normally it was an 8-5 gig) because people forgot about the time change. We needed to discuss my keeping hours in the 'other' time zone or manage everyone's expectations and ability to do the math.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may have more flexibility than you think and can work towards getting more. Start including this in your next review/salary negotiation. You may be entitled to a raise, but they can't afford it right now; ask for 2 days a week from home. There may be set amounts of vacation time, but that doesn't mean you can't utilize a 'time banking' system in your department. My biggest fear is staying up all night to solve a problem and not being able to come to work later in the day. Or worse, I am allowed to come in late, and everyone thinks it was personal time.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-06T14:34:45.763" />
  <row Id="9910" PostTypeId="2" ParentId="9903" CreationDate="2010-10-06T14:40:07.353" Score="10" ViewCount="" Body="&lt;p&gt;The ability to look at the problem from several layers of abstraction at once:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;individual functions and classes&lt;/li&gt;&#xA;&lt;li&gt;components/packages/libraries&lt;/li&gt;&#xA;&lt;li&gt;projects&lt;/li&gt;&#xA;&lt;li&gt;the portfolio of projects across the division/company&lt;/li&gt;&#xA;&lt;li&gt;what the customer actually does&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In other words, you need to take into account not only the immediate concerns, but how it fits into the goals of the team, company, and users.  Also, how decisions that are made today will effect testing, maintenance, future projects and directions.  &lt;/p&gt;&#xA;" OwnerUserId="1427" LastActivityDate="2010-10-06T14:40:07.353" />
  <row Id="9911" PostTypeId="2" ParentId="6847" CreationDate="2010-10-06T14:46:44.883" Score="0" ViewCount="" Body="&lt;p&gt;LiveCode (originally Revolution) hands down. Nothing comes close.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-06T14:46:44.883" CommunityOwnedDate="2010-10-06T14:46:44.883" CommentCount="2" />
  <row Id="9912" PostTypeId="2" ParentId="9853" CreationDate="2010-10-06T14:48:57.920" Score="2" ViewCount="" Body="&lt;p&gt;These days some VCS come with issue trackers. Fossil SCM has its own and I find it good enough for my small projects. For my bigger public projects, I use BitBucket website that also comes with a issue tracker.&lt;/p&gt;&#xA;" OwnerUserId="4655" LastActivityDate="2010-10-06T14:48:57.920" />
  <row Id="9913" PostTypeId="2" ParentId="880" CreationDate="2010-10-06T15:05:21.007" Score="0" ViewCount="" Body="&lt;p&gt;I code with LiveCode/RunRev and do most of my work on the following 3 machines:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Hewlett-Packard Pentium 4 with 512 MB RAM running Ubuntu 10.10&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;G3 'Yosemite' Mac with 512 MB RAM running Mac OS 10.4.11&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;MacMini PPC with 256 MB RAM running Mac OS 10.4.11&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I also program on:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;iMac G3 slot-loader with 384 MB RAM running Mac OS 10.4.11&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&quot;Frankenstein's PC&quot; Pentium 3 with 128 MB RAM running Ubuntu 5.10&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Fujitsu Siemens Pentium 4 with 512 RAM running Windows XP SR3&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Occasionally, when not using LiveCode/RunRev, I code on&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Pentium 2 with 32 MB Ram running FreeDOS and GEM GUI.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastActivityDate="2010-10-06T15:05:21.007" CommunityOwnedDate="2011-02-06T19:45:08.167" />
  <row Id="9915" PostTypeId="2" ParentId="2233" CreationDate="2010-10-06T15:10:40.867" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Post-it notes &lt;/li&gt;&#xA;&lt;li&gt;Moleskine &lt;/li&gt;&#xA;&lt;li&gt;Dices (D20) for random number generation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4655" LastActivityDate="2010-10-06T15:10:40.867" CommunityOwnedDate="2010-10-06T15:10:40.867" />
  <row Id="9916" PostTypeId="2" ParentId="7337" CreationDate="2010-10-06T15:13:53.173" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.valentina-db.com&quot; rel=&quot;nofollow&quot;&gt;Valentina DB&lt;/a&gt; is awesome because its an affordable, extremely fast columnar database and available for not only the big dev environments like .net, but also developing for Mac, iPhone, environments like LiveCode, Director and other RAD environments.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-06T15:13:53.173" CommentCount="1" />
  <row Id="9917" PostTypeId="2" ParentId="9308" CreationDate="2010-10-06T15:25:04.703" Score="0" ViewCount="" Body="&lt;p&gt;&lt;b&gt;SecondBar&lt;/b&gt;: it allows you to add a menu bar to your second screen.&lt;br&gt;&#xA;This saves you time by avoiding useless mouse travels.&lt;br&gt;&#xA;&lt;a href=&quot;http://blog.boastr.net/?page_id=79&quot; rel=&quot;nofollow&quot;&gt;http://blog.boastr.net/?page_id=79&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Mac OS X. Snow Leopard required.&lt;/p&gt;&#xA;" OwnerUserId="4520" LastActivityDate="2010-10-06T15:25:04.703" />
  <row Id="9918" PostTypeId="2" ParentId="7337" CreationDate="2010-10-06T15:29:57.007" Score="14" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.bing.com/search?setmkt=en-US&amp;amp;q=microsoft+sql+server&quot; rel=&quot;nofollow&quot;&gt;Microsoft SQL Server&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I'm &lt;em&gt;mostly&lt;/em&gt; always in Visual Studio when developing, and SQL Server Management Tools and the integrations in Visual Studio to get my bearings are just plain fast.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-06T15:29:57.007" />
  <row Id="9919" PostTypeId="2" ParentId="3997" CreationDate="2010-10-06T15:32:46.610" Score="0" ViewCount="" Body="&lt;p&gt;I have had teams overseas for years and have a side business providing those services to others. Big stuff like our core columnar database product and smaller projects like narrow function iPhone apps, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Outsourcing is great for component work, back end work or smaller projects. If you have a big project that is the core product of your company, you need to think carefully about outsourcing, at least the portions that are integral to the product goals. Projects can fail for a number of reasons, but when it comes to outsourcing one of the biggest problems is coordination and buy in from the &quot;home staff&quot;. Often a home staff team member is put in charge of the outsourcing team, and they really have no clue how to manage this resource - or they simply do not want to do it and can passively sabotage it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Outsourcing will eliminate many low end coders, much like scanning and self bagging did away with bag boys at the super market. But developers who have a keen understanding of a complex product as the company envisions it must be close to management. That means at least a slight reduction of positions but also more competitive and more profitable positions in the home staff.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-06T15:32:46.610" />
  <row Id="9920" PostTypeId="2" ParentId="7337" CreationDate="2010-10-06T15:35:06.603" Score="1" ViewCount="" Body="&lt;p&gt;I've been using Sybase's &lt;a href=&quot;http://www.sybase.com/products/databasemanagement/sqlanywhere&quot; rel=&quot;nofollow&quot;&gt;SQL Anywhere&lt;/a&gt; since 1994 (back when it was owned by Watcom before it was bought by Powersoft. And before Powersoft was bought by Sybase).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We actually OEM the database within two commerical products.  The product can be scaled all the way from the large enterprise down to the iPhone, iPad and multitudes of other mobile devices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hands down it's one of the best database's on the market.  Their fully blown out developer version is free, and if you are running a web app, your deployment costs are zero.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I highly recommend checking it out!&lt;/p&gt;&#xA;" OwnerUserId="1159" LastActivityDate="2010-10-06T15:35:06.603" />
  <row Id="9921" PostTypeId="2" ParentId="9872" CreationDate="2010-10-06T15:46:45.233" Score="3" ViewCount="" Body="&lt;p&gt;I only include those languages that I would want to have to use again if I were hired for the new job.  Things like COBOL don't go on the CV.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-10-06T15:46:45.233" CommentCount="3" />
  <row Id="9922" PostTypeId="1" AcceptedAnswerId="9930" CreationDate="2010-10-06T15:55:56.947" Score="7" ViewCount="492" Body="&lt;p&gt;I've been of the mind that hacker is just another name for programmer.  Not one that you'd &lt;a href=&quot;http://programmers.stackexchange.com/questions/272/when-someone-asks-you-what-you-do-what-do-you-say-e-g-programmer-developer-c/4022#4022&quot;&gt;use when someone asks you what you do&lt;/a&gt; but one that could be used between a brother/sisterhood of programmers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Used like other epithets used between men and women of a common ilk, this is probably can have a positive connotation.  Used by people outside our sphere to describe us, it would undoubtedly have a negative connotation - but not one to describe a bad programmer (most laymen don't think we exist), only an evil programmer.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like the word, it reminds me of 21st century cobbler.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2010-11-08T18:49:06.613" LastActivityDate="2010-11-09T01:33:11.623" Title="What objections do you have to the term &quot;hacker&quot;?" Tags="&lt;culture&gt;&lt;terminology&gt;&lt;hacking&gt;&lt;hacks&gt;" AnswerCount="11" CommentCount="2" />
  <row Id="9923" PostTypeId="2" ParentId="2233" CreationDate="2010-10-06T15:56:23.823" Score="1" ViewCount="" Body="&lt;p&gt;A cup of coffee. :D&lt;/p&gt;&#xA;" LastActivityDate="2010-10-06T15:56:23.823" CommunityOwnedDate="2010-10-06T15:56:23.823" />
  <row Id="9924" PostTypeId="2" ParentId="9873" CreationDate="2010-10-06T16:00:15.930" Score="1" ViewCount="" Body="&lt;p&gt;You can't ensure 'forward compatibility', it is up to the OS and HW makers.  The best thing you can do when writing software is to ensure you aren't using depricated features or non-standard tricks.  &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-06T16:00:15.930" />
  <row Id="9925" PostTypeId="2" ParentId="9922" CreationDate="2010-10-06T16:07:51.203" Score="7" ViewCount="" Body="&lt;p&gt;I view a Hacker as being different from a Programmer. To me, a Hacker is someone who works to either decompile or break into existing software and use it in a way its not meant to be used. I think it is viewed negatively because you are basically doing something that the original developers of the software didn't mean for you to do. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In constrast, a Programmer is someone who works to create, fix, or upgrade software. Sure our job might involve a little hacking, but for the most part we have permission to do whatever we are attempting to do with the software.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-10-06T16:07:51.203" CommentCount="6" />
  <row Id="9926" PostTypeId="2" ParentId="9813" CreationDate="2010-10-06T16:10:45.190" Score="-1" ViewCount="" Body="&lt;p&gt;I make it necessary by choosing new platforms/techniques/technologies for projects. Nothing like necessity to make you learn fast . . .&lt;/p&gt;&#xA;" OwnerUserId="3762" LastActivityDate="2010-10-06T16:10:45.190" />
  <row Id="9927" PostTypeId="1" CreationDate="2010-10-06T16:11:07.390" Score="10" ViewCount="311" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/7966/what-traits-do-the-best-managers-youve-worked-for-have-in-common&quot;&gt;What traits do the best managers you&amp;#39;ve worked for have in common?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I've been managing software development teams for some time now. Although I have some perspective from my former role as a full-time programmer, and still do some programming work from time to time, I think it would be useful to get some feedback from the community on what makes a good Software Development manager from the perspective of a staff-level programmer. I mean, the things that were important to me in 1996 are useful, but may have become less relevant over time. I frequently poll my team on this, of course, but my aim in posting this question is to get information from a larger sampling of developers, and to improve my management technique.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, here's my question...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If you could interview/pick your next&#xA;  manager, what would be the most important characteristics &#xA;  or other aspects of a manager that you would look for?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I am mostly interested in hearing from people who are not themselves in a supervisory position, but &lt;strong&gt;for those of you already in some management function feel free to answer, but please mention  your role in the answer&lt;/strong&gt; so I can put your answer in the proper context.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-06T20:46:52.607" ClosedDate="2010-10-06T23:30:15.423" Title="As a developer what characteristics do you prefer in your manager?" Tags="&lt;management&gt;" AnswerCount="12" CommentCount="6" FavoriteCount="1" />
  <row Id="9928" PostTypeId="2" ParentId="9881" CreationDate="2010-10-06T16:12:54.410" Score="2" ViewCount="" Body="&lt;p&gt;I use standard tags to generate documentation. Nothing more, nothing less. &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/5ast78ax.aspx&quot; rel=&quot;nofollow&quot;&gt;See here&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I never put information which doesn't belong to class. Author, data, revisions are data to store on a Version Control System.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The two formats presented are useless to generate documentation and has the biggest error on comments, they list the revision history.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-10-06T16:12:54.410" />
  <row Id="9929" PostTypeId="2" ParentId="9922" CreationDate="2010-10-06T16:13:08.837" Score="1" ViewCount="" Body="&lt;p&gt;My best example and It totally annoys me when people say &quot;I hacked my iPhone&quot;. I view a hacker similarly to Rachel. But I feel they have a high level of computing knowledge mainly a strong grasp in Computer Science concepts and coding ability. Not this idea that everyone is a hacker because they jail-broke their iPhone.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-10-06T16:13:08.837" />
  <row Id="9930" PostTypeId="2" ParentId="9922" CreationDate="2010-10-06T16:14:49.990" Score="3" ViewCount="" Body="&lt;p&gt;Both before and after &lt;a href=&quot;http://www.paulgraham.com/gh.html&quot; rel=&quot;nofollow&quot;&gt;Paul Graham tried to re-define the word&lt;/a&gt;, I always saw a hacker as being the same as a cowboy coder.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, a programmer works in an environment of collaboration and teamwork.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-06T16:14:49.990" />
  <row Id="9931" PostTypeId="2" ParentId="9922" CreationDate="2010-10-06T16:15:17.417" Score="1" ViewCount="" Body="&lt;p&gt;I think the people still carrying the banner for preserving the positive connotation of the term &quot;hacker&quot; to mean programmer just have to let it go. It is a lost cause when the common usage of the term indicates some kind of unethical behavior. It reminds me of the people who insist on holding on to the idea of using the increasingly archaic use of the word &quot;gay&quot; to mean joyful. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's so over, we have a dozen new terms to replace it with that won't get confused from &quot;Developer&quot; to &quot;Software Engineer&quot;, so why bother hanging on to that relic?&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-06T16:15:17.417" CommentCount="2" />
  <row Id="9932" PostTypeId="2" ParentId="9813" CreationDate="2010-10-06T16:18:48.447" Score="0" ViewCount="" Body="&lt;p&gt;Organization! That's all you need.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-06T16:18:48.447" />
  <row Id="9933" PostTypeId="2" ParentId="9927" CreationDate="2010-10-06T16:25:25.727" Score="2" ViewCount="" Body="&lt;p&gt;I think the two most important characteristics are a basic understanding of management principles, and being &quot;one of us.&quot;  Unfortunately, the two don't tend to occur together too often, but when they do, you've found a good person to work for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where I work, our project manager is a former developer.  He's good at prioritizing and directing work--the stuff a manager needs to know--but he also has a pretty good idea what's going on when I need to ask a question about how to implement something that requires both management-level vision from him and technical input from me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The boss also has both these skillsets.  He's actually a &lt;em&gt;current&lt;/em&gt; developer, who occasionally works on the codebase and makes commits, when other responsibilities don't drag him away from it.  He makes sure we've got a good working environment, because he knows intuitively what a good working environment is like for us: it's the conditions he would want to work in!&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-06T16:25:25.727" />
  <row Id="9934" PostTypeId="2" ParentId="9922" CreationDate="2010-10-06T16:26:54.103" Score="8" ViewCount="" Body="&lt;p&gt;In software development a &quot;hacker&quot; has a different meaning that the ones that break into the pentagon intranet.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A hacker is a developer that get things done.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's not the technically supperior, it's not the one with the most diplomas, it's not the one that worked there, there and with him, her or them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;He does the necessary things to make things work.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-06T18:18:02.113" LastActivityDate="2010-10-06T18:18:02.113" CommentCount="2" />
  <row Id="9935" PostTypeId="2" ParentId="9922" CreationDate="2010-10-06T16:27:01.933" Score="8" ViewCount="" Body="&lt;p&gt;Believe this was originally posted in &lt;a href=&quot;http://www.phrack.org/issues.html?issue=7&amp;amp;id=3&quot; rel=&quot;nofollow&quot;&gt;phrack&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The Hacker Manifesto&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;by&#xA;  +++The Mentor+++&#xA;  Written January 8, 1986&#xA;  Another one got caught today, it's all over the papers. &quot;Teenager Arrested in Computer &gt;Crime Scandal&quot;, &quot;Hacker Arrested after Bank Tampering&quot;...&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Damn kids. They're all alike.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;But did you, in your three-piece psychology and 1950's technobrain, ever take a look behind &gt;the eyes of the hacker? Did you ever wonder what made him tick, what forces shaped him, &gt;what may have molded him?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I am a hacker, enter my world...&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Mine is a world that begins with school... I'm smarter than most of the other kids, this &gt;crap they teach us bores me...&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Damn underachiever. They're all alike.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I'm in junior high or high school. I've listened to teachers explain for the fifteenth time &gt;how to reduce a fraction. I understand it. &quot;No, Ms. Smith, I didn't show my work. I did it &gt;in my head...&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Damn kid. Probably copied it. They're all alike.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I made a discovery today. I found a computer. Wait a second, this is cool. It does what I &gt;want it to. If it makes a mistake, it's because I screwed it up. Not because it doesn't &gt;like me... Or feels threatened by me.. Or thinks I'm a smart ass.. Or doesn't like teaching &gt;and shouldn't be here...&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Damn kid. All he does is play games. They're all alike.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;And then it happened... a door opened to a world... rushing through the phone line like &gt;heroin through an addict's veins, an electronic pulse is sent out, a refuge from the day-&gt;to-day incompetencies is sought... a board is found. &quot;This is it... this is where I &gt;belong...&quot; I know everyone here... even if I've never met them, never talked to them, may &gt;never hear from them again... I know you all...&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Damn kid. Tying up the phone line again. They're all alike...&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;You bet your ass we're all alike... we've been spoon-fed baby food at school when we &gt;hungered for steak... the bits of meat that you did let slip through were pre-chewed and &gt;tasteless. We've been dominated by sadists, or ignored by the apathetic. The few that had &gt;something to teach found us willing pupils, but those few are like drops of water in the &gt;desert. &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;This is our world now... the world of the electron and the switch, the beauty of the baud. &gt;We make use of a service already existing without paying for what could be dirt-cheap if it &gt;wasn't run by profiteering gluttons, and you call us criminals. We explore... and you call &gt;us criminals. We seek after knowledge... and you call us criminals. We exist without skin &gt;color, without nationality, without religious bias... and you call us criminals. You build &gt;atomic bombs, you wage wars, you murder, cheat, and lie to us and try to make us believe &gt;it's for our own good, yet we're the criminals.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Yes, I am a criminal. My crime is that of curiosity. My crime is that of judging people by &gt;what they say and think, not what they look like. My crime is that of outsmarting you, &gt;something that you will never forgive me for.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I am a hacker, and this is my manifesto. You may stop this individual, but you can't stop &gt;us all... after all, we're all alike.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-06T16:27:01.933" CommentCount="3" />
  <row Id="9936" PostTypeId="1" AcceptedAnswerId="9941" CreationDate="2010-10-06T16:31:20.130" Score="4" ViewCount="194" Body="&lt;p&gt;I've been thinking of releasing a few projects, and most authors in the community leave their email address right in the code, often as is or using commonly used schemes like &quot;meATNOSPAMgmail.com&quot;, which sort of gets my paranoia flag up...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When releasing source code publicly, does it often lead to your email address being parsed by spam bots, and if so how do you obfuscate it ?&lt;/p&gt;&#xA;" OwnerUserId="2115" LastActivityDate="2010-10-06T23:50:54.583" Title="Do you obfuscate your email address in open-source code to prevent spamming ?" Tags="&lt;best-practices&gt;&lt;open-source&gt;&lt;communication&gt;" AnswerCount="5" CommentCount="2" />
  <row Id="9937" PostTypeId="2" ParentId="9927" CreationDate="2010-10-06T16:33:12.467" Score="5" ViewCount="" Body="&lt;p&gt;(Deep) &lt;a href=&quot;http://en.wikipedia.org/wiki/Empathy&quot; rel=&quot;nofollow&quot;&gt;Empathy&lt;/a&gt; Skill.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-10-06T16:33:12.467" CommentCount="1" />
  <row Id="9938" PostTypeId="2" ParentId="9927" CreationDate="2010-10-06T16:34:42.933" Score="25" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Someone who will fight political battles for me and remove obstacles that prevent me from getting things done.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Period.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-10-06T17:14:29.293" LastActivityDate="2010-10-06T17:14:29.293" CommentCount="2" />
  <row Id="9939" PostTypeId="2" ParentId="9936" CreationDate="2010-10-06T16:35:06.440" Score="7" ViewCount="" Body="&lt;p&gt;I avoid the problem by leaving a website URL instead of an email address in the code, and then someone can contact me through my site without me needing to leave an email address sitting around where any random spambot could harvest it.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-06T16:35:06.440" />
  <row Id="9940" PostTypeId="2" ParentId="9927" CreationDate="2010-10-06T16:42:39.800" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Someone who just lets me do my job.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-10-06T16:42:39.800" />
  <row Id="9941" PostTypeId="2" ParentId="9936" CreationDate="2010-10-06T16:44:12.453" Score="4" ViewCount="" Body="&lt;p&gt;I didn't worry about it for about a year of open source development. By the time I realized that I should be concerned, the address is out in the wild. With that said though, I haven't had too much spam coming in on that account, perhaps a spam message or three gets through gmail's filter per month.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're concerned about this sort of thing, perhaps make a separate email address for your opensource contact, and then just forward everything. If you're using gmail, I'd advise using their &lt;a href=&quot;http://www.extremetech.com/article2/0,2845,1865166,00.asp&quot; rel=&quot;nofollow&quot;&gt;&quot;plus addressing&quot;&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3645" LastActivityDate="2010-10-06T16:44:12.453" CommentCount="4" />
  <row Id="9942" PostTypeId="2" ParentId="9881" CreationDate="2010-10-06T16:53:58.260" Score="1" ViewCount="" Body="&lt;p&gt;Everything in that list is unnecessary. Your source control should take care of nearly everything, and what it doesn't cover is taken care of by good naming conventions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I have to read your &quot;Description&quot; to figure out what your class is doing then either (a) your named it poorly or (b) you wrote a bad class that is doing too much (SRP). &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-10-06T16:53:58.260" />
  <row Id="9943" PostTypeId="2" ParentId="9885" CreationDate="2010-10-06T16:59:27.797" Score="0" ViewCount="" Body="&lt;p&gt;I agree with the Papadimouslis quote.  The source code can speak for itself, but the code can't tell you why it exists, how it should be used, and how the code should behave.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know a good ratio.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I inherited hundreds of lines of code with very little documentation.  It became difficult for me to understand why the code was written.  After I found out why the code was written, I had to figure out how to use the code.  After I found that out, I had to understand how it is suppose to behave so I can support and maintain the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just from experience, don't make comments too specific or you will end up having to maintain the actual code AND the documentation.  It is a nightmare when the documentation and code are out of sync.&lt;/p&gt;&#xA;" OwnerUserId="4664" LastActivityDate="2010-10-06T16:59:27.797" />
  <row Id="9944" PostTypeId="1" AcceptedAnswerId="10040" CreationDate="2010-10-06T17:02:51.690" Score="4" ViewCount="368" Body="&lt;p&gt;Hai Friends,&#xA;         Tell me or share with me, what is the difference between these two carders in a frim. ie Software Engineer vs Software Developer... Because My previous company gives Software Developer designation and my new company offered me as Software Engineer desgination.&lt;/p&gt;&#xA;" OwnerUserId="3993" LastEditorUserId="3993" LastEditorDisplayName="" LastEditDate="2010-10-06T17:15:51.227" LastActivityDate="2010-10-06T23:05:49.170" Title="What is difference between these two designation Software Engineer and Software Developer??" Tags="&lt;self-improvement&gt;" AnswerCount="5" />
  <row Id="9945" PostTypeId="2" ParentId="9927" CreationDate="2010-10-06T17:04:57.843" Score="0" ViewCount="" Body="&lt;p&gt;I've worked in a few places now where the management was explicitly non-technical. My current employer has a policy that a manager making a technical decision is grounds for removal. (This is not some small company you've never heard of, roughly one third of you are running our product). Partly as a result of this policy, at least in my opinion, the managers here are much &quot;stronger&quot; than at other employers. Since they're not involved in the technical decision-making, there isn't the constant string of 'slightly to very wrong' technical decisions being made by management, and they only make large &quot;product-line level&quot; decisions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best managers that I've had are those who 'run interference' for the developers. A good manager can tell the difference between a 'mandatory meeting' and a mandatory meeting, and will let you know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A basic management skill is to make the developers feel in control of their environment, this may be either a reminder or an illusion, depending on the company, but it's a vitally important skill.&lt;/p&gt;&#xA;" OwnerUserId="3645" LastActivityDate="2010-10-06T17:04:57.843" />
  <row Id="9946" PostTypeId="2" ParentId="9927" CreationDate="2010-10-06T17:07:25.207" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Recognition that I am hired and paid to make decisions.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="4422" LastActivityDate="2010-10-06T17:07:25.207" />
  <row Id="9947" PostTypeId="2" ParentId="9944" CreationDate="2010-10-06T17:08:27.723" Score="2" ViewCount="" Body="&lt;p&gt;That really depends on how the company defines the positions. It may be that as a software engineer you will have more design decision opportunities, whereas as a developer they would give you UML diagrams and you would write the program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, there is no real set definition so that based on the title will people know what you do, or how experienced you are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I was an architect/developer, my title was computer scientist, but I would just tell people I was a programmer, as the first two are not easily defined, but most people know what a programmer does. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a title is important to you then accept the new one, as engineer sounds higher than a developer.&lt;/p&gt;&#xA;" OwnerUserId="4670" LastActivityDate="2010-10-06T17:08:27.723" />
  <row Id="9948" PostTypeId="1" AcceptedAnswerId="9971" CreationDate="2010-10-06T17:10:59.960" Score="12" ViewCount="634" Body="&lt;p&gt;A question with absolutely no relevance to myself:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How would a programmer with a stellar SO reputation (like 30k+) market his or herself to poential employers/&lt;strong&gt;investors&lt;/strong&gt; who have never heard of SO?&#xA;In other words, how can one describe SO in a few sentences that will make a high reputation sound impressive at an interview?&lt;/p&gt;&#xA;" OwnerUserId="1444" LastActivityDate="2010-10-16T07:51:31.850" Title="How to sell a high SO reputation at an interview" Tags="&lt;interview&gt;&lt;stackoverflow&gt;" AnswerCount="11" CommentCount="4" FavoriteCount="5" />
  <row Id="9949" PostTypeId="2" ParentId="9927" CreationDate="2010-10-06T17:11:22.597" Score="3" ViewCount="" Body="&lt;p&gt;I have to go at this from the perspective of the worst bosses I've worked for - a good one would NOT have these qualities:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Inability to make a decision _ sincgle worst thing I ever dealt with was a boss who changed his mind every time someone talked to him. We changed direction 4-5 times a day on a three year project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Steals the credit for things the team members do. Once my boss got a huge award that they gave out publicly. Everything they mentioned that he did, I actually did. Needless to say this is demotivating in the extreme.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Panics when things aren't going well. Even worse when panicing makes him or her become nasty. That's not helping get things done, really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back-stabs his own people. He gets the credit, we get the blame. ANd doesn't support us up the chain of command when he should.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has no understanding of the process of developing software and doesn't even care to learn enough to know we are using C# (or other language of your choice). Thinks that everything can be done in a short period of time and that a simple change on the outside of a User_interface page means it wil not take long to implement. The kind of person who sits on a change until the day before the deadline and then says, &quot;Oh By the way we need to do...&quot;  and what ever he asks for is something that changes the fundamental architecture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Micromanages or doesn't manage at all. Both are equally bad. I've had too many bosses who didn't know there was a problem with one employee until too late and everyone else had to pay the price to fix the mess. I've also had bosses that I had to tell them to stop bothering me every five minutes or it would never get done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is politically naive. If your boss isn't doing well politically with the people above him, you will have trouble getting the people you need, you will have the worst spaces and you are in the group most likely to lose your jobs in a layoff or because it is a easy way to get rid of him. Bosses must be good at office politics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Someone who thinks he can slash the hours of a project in half (because the client won't like that number) and we will be able to get it done in that amount of time with no corresponding change of requirements. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-06T17:11:22.597" CommentCount="1" />
  <row Id="9950" PostTypeId="2" ParentId="9927" CreationDate="2010-10-06T17:12:56.127" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Someone who listens well&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Someone who makes it a point to actually talk to me at least weekly&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-06T17:12:56.127" />
  <row Id="9951" PostTypeId="2" ParentId="9948" CreationDate="2010-10-06T17:14:32.977" Score="6" ViewCount="" Body="&lt;p&gt;If you have 30K+ reputation on SO and the employer doesn't even know what is StackOverflow, I think you shouldn't be really interested in working for that employer...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For investors, I don't think any is going to be interested in your SO reputation (even if they know it)...&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-10-06T17:14:32.977" CommentCount="2" />
  <row Id="9952" PostTypeId="2" ParentId="9936" CreationDate="2010-10-06T17:18:36.907" Score="0" ViewCount="" Body="&lt;p&gt;I honestly don't since the spam button in my email client is so easy to press. Having &lt;code&gt;lord.quackstar at gmail dot com&lt;/code&gt; just annoys people, and bots can probably parse that already. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Spam comes and goes. Once you've ignored enough of their messages they usually stop. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-10-06T17:18:36.907" CommentCount="0" />
  <row Id="9953" PostTypeId="2" ParentId="9948" CreationDate="2010-10-06T17:20:01.890" Score="6" ViewCount="" Body="&lt;p&gt;Don't sell your reputation, this is only remarkable in the community but meaningless outside of it...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best you coiuld do is to include a reference to your list of answers in your CV.&lt;/p&gt;&#xA;" OwnerUserId="666" LastActivityDate="2010-10-06T17:20:01.890" CommentCount="2" />
  <row Id="9954" PostTypeId="2" ParentId="9948" CreationDate="2010-10-06T17:21:20.387" Score="0" ViewCount="" Body="&lt;p&gt;Your reputation should speak for itself.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-06T17:21:20.387" />
  <row Id="9955" PostTypeId="2" ParentId="9944" CreationDate="2010-10-06T17:24:52.190" Score="2" ViewCount="" Body="&lt;p&gt;I don't think there is any &quot;official differences&quot;, for my experience that could mean:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Some companies uses software engineers and software developers to referring to the same thing. They just use their favorite term.&lt;/li&gt;&#xA;&lt;li&gt;Other uses both terms for different inside positions, but the roles vary from company to company! In some could be just a difference on the function (a soft. engineer will work on maintenance and improvement of the systems while a developer will work on the product of the company), or could be hierarchical (engineer is above developer), or even the engineer is really dependent on Q&amp;amp;A!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also, are also fashion terms that changes... First the term was &quot;programmer&quot;, then &quot;software engineer&quot; and now appears to be &quot;developer&quot;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's better to read the job description or to someone on the specific company&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-10-06T17:24:52.190" />
  <row Id="9956" PostTypeId="2" ParentId="109" CreationDate="2010-10-06T17:28:46.407" Score="0" ViewCount="" Body="&lt;p&gt;Thinking that just because it runs without an error that it is correct.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-06T17:28:46.407" CommunityOwnedDate="2010-10-06T17:28:46.407" />
  <row Id="9957" PostTypeId="2" ParentId="9927" CreationDate="2010-10-06T17:30:52.537" Score="2" ViewCount="" Body="&lt;p&gt;Fights for me.  I shouldn't have to get into it with IT.  Gives me the tools I need.  Communicates company policy down.  Makes decisions when asked to and stays out when not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disclaimer: I have previously been in managerial roles, but currently am not.  From that I can definitely say it can be pretty hard being on the other side of the table too.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-10-06T17:30:52.537" />
  <row Id="9958" PostTypeId="2" ParentId="9761" CreationDate="2010-10-06T17:35:50.797" Score="4" ViewCount="" Body="&lt;p&gt;If the code is split into layers, then you can easily visualize code by simply drawing the layers in detail.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lets take android for example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Y0195.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now this is the more common type of diagram thats really easy to draw. To make it useful to you however, just start drawing lines to represent the flow of data. In this example you could trace an application to XMPP to SSL to the bluetooth driver, or any other combination. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend though that you go a bit more in depth. Since most projects aren't as large as Android, you can make things a bit simpler and have each box be a class or a method which makes it easier to actually write the code later. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-10-06T17:35:50.797" />
  <row Id="9959" PostTypeId="2" ParentId="9948" CreationDate="2010-10-06T17:36:11.107" Score="3" ViewCount="" Body="&lt;p&gt;I include my SO profile directly on my resume and consider it to be just as important as the education.  It gives the employer a way to look into how you communicate and what your current level of knowledge is. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're interviewing for a really good company, likely you will be interviewed by your future peers.  Depending on the type of job, if your future peers don't know what stackoverflow is there is probably a problem with that company and you probably don't want to work there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also I wouldn't say that I had X rep, instead I would say that I am within the top 0.01% of SO users, or whatever that number is, and that I am ranked at the top of technology X, Y, and Z which is what you are looking for.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-10-06T17:36:11.107" />
  <row Id="9960" PostTypeId="1" AcceptedAnswerId="9962" CreationDate="2010-10-06T17:38:39.287" Score="25" ViewCount="1548" Body="&lt;p&gt;When you have no clue about the question, how do you answer/act when you do not know the answer at all? Telling the truth is pretty obvious. But how could you try to transform this weakness into a strength?&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-04T23:32:05.473" LastActivityDate="2011-03-11T16:07:59.900" ClosedDate="2011-06-03T14:34:52.467" Title="What to say when you don’t know the answer to an interview question?" Tags="&lt;interview&gt;&lt;interview-questions&gt;&lt;job-interview&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="8" />
  <row Id="9961" PostTypeId="2" ParentId="9960" CreationDate="2010-10-06T17:40:09.523" Score="14" ViewCount="" Body="&lt;p&gt;I will always say &lt;em&gt;&quot;I don't know.&quot;&lt;/em&gt; with confidence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is an alternative that may play more into your favor. Like my previous idea say it with complete confidence.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I am not familiar with that yet.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-10-06T17:40:09.523" CommentCount="7" />
  <row Id="9962" PostTypeId="2" ParentId="9960" CreationDate="2010-10-06T17:40:10.133" Score="61" ViewCount="" Body="&lt;p&gt;&quot;I don't know how to do that, but if I ran into that problem in a project, here's how I'd go about figuring out how to make it work...&quot;&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-06T17:40:10.133" CommentCount="9" />
  <row Id="9963" PostTypeId="2" ParentId="9960" CreationDate="2010-10-06T17:43:02.930" Score="8" ViewCount="" Body="&lt;p&gt;We all have blind spots, so saying &quot;I don't know&quot; once, it's not a problem. Saying it many times probably won't get you a job, but there's nothing you can do.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-06T17:43:02.930" CommentCount="1" />
  <row Id="9964" PostTypeId="1" CreationDate="2010-10-06T17:43:39.580" Score="11" ViewCount="506" Body="&lt;p&gt;I've recently had a talk with someone about how to include open source projects on my resume. I wanted to include a project of mine where I'd invested a significant amount of code and time: ~40,000 Lines of code and 8 months. He recommended against it though since it was GPL'd, saying it could turn off recruiters since I might include my project (in part or whole) while working there and force the whole project to be OS. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just don't think thats a realistic problem though, but I'm not sure. So my question: Is it safe to include GPL'd OS projects on my resume, or will it just turn recruiter's off?&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-12-12T11:00:02.603" Title="Should I include GPL'd OS Projects on my resume?" Tags="&lt;open-source&gt;&lt;resume&gt;&lt;gpl&gt;" AnswerCount="7" CommentCount="6" FavoriteCount="2" />
  <row Id="9965" PostTypeId="1" CreationDate="2010-10-06T17:43:53.347" Score="18" ViewCount="1070" Body="&lt;p&gt;I don't see any use of case sensitivity in a Programming Language, apart form obfuscating code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why implement this in a programming language? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It looks like &lt;a href=&quot;http://www.codinghorror.com/blog/2005/12/the-case-for-case-insensitivity.html&quot; rel=&quot;nofollow&quot;&gt;someone you know made a statement on this&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="19" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-06T20:54:25.190" LastActivityDate="2010-11-03T11:16:03.880" Title="Why there is still Case sensitivity in some Programming Language?" Tags="&lt;programming-languages&gt;&lt;holy-war&gt;&lt;syntax&gt;" AnswerCount="13" CommentCount="9" FavoriteCount="1" />
  <row Id="9966" PostTypeId="2" ParentId="9445" CreationDate="2010-10-06T17:44:32.557" Score="2" ViewCount="" Body="&lt;p&gt;At my last job we had a huge plan to use WF4.  We were planning to build a single end-to-end platform to replace the 5+ disparate pieces that existed.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will limit my comments to two areas:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It has not been around long enough.  With WF4 being such a drastic change from WF3, the product has not been in the wild long enough to establish a community that can sustain and help itself.  You will encounter issues that will be difficult to resolve, and you will find little help online (and dig through countless unhelpful pages relating to WF3.)&lt;/li&gt;&#xA;&lt;li&gt;Subjectively, it's just a new fangled hammer... You have to decide if the amount of time you will have to invest just to become comfortable with it is worth spending.  Instead of trying to shoe-horn the application into WF4, I would rather have spent that time building a home-grown workflow system that worked exactly how the application needed.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I admit that the State Machine concept is very appealing to me, but I'm also a proponent of building things from the ground up rather than using (and becoming dependent upon) existing frameworks.  &lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-10-06T17:44:32.557" CommentCount="1" />
  <row Id="9967" PostTypeId="2" ParentId="487" CreationDate="2010-10-06T17:46:20.387" Score="4" ViewCount="" Body="&lt;p&gt;Well here's a list of features I'd put in:&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;Lisp like syntax&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Lisp style  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Easily extendable syntax. Ever tried&#xA;to implement a foreach loop in C?&#xA;It's not exactly easy. (Mind you, &lt;a href=&quot;http://stackoverflow.com/questions/1772119/c-the-most-useful-user-made-c-macros-in-gcc-also-c99/3326424#3326424&quot;&gt;I&#xA;have done it&lt;/a&gt;). &lt;/li&gt;&#xA;&lt;li&gt;Homoiconicity. You can simply &lt;code&gt;(eval &quot;your data files&quot;)&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Nested polish notation is often hard&#xA;to read&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;Functional Programming&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Haskell style&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Easy concurrency, all code is thread safe.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Difficult to implement side effects in pure &#xA;functional code, though monads seem to do a&#xA;good job.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;Strong dynamic typing&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Python style  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Dynamic typing makes clean readable code,&#xA;Strong typing can eliminate type errors&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Implementation&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Allow function overloading based on types, similar to CL's &lt;code&gt;defgeneric&lt;/code&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(define (+ (a &amp;lt;int&amp;gt;) (b &amp;lt;int&amp;gt;))&#xA;  (ints-add a b))&#xA;&#xA;(define (+ (a &amp;lt;string&amp;gt;) (b &amp;lt;string&amp;gt;))&#xA;  (string-concat a b))&#xA;&#xA;(define (+ a b)&#xA;  (add-generic a b))&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;Compilable and Interpretable&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Performance boost if compiled (usually true, not always)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Can limit features in the language, llvm would be a good backed though.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;Systems programming&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;C style&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Appeals to a, very slightly, wider range of users.&lt;/li&gt;&#xA;&lt;li&gt;Easier for applications, kernel and device drivers to interact if they're all written in the same language  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Limits the abstractions in the language, dynamic typing is often not suitable.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;Hygienic macros (CL style and Scheme style)&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Easy to extend the language, especially with Lispy&amp;trade; syntax&lt;/li&gt;&#xA;&lt;li&gt;I've said this before, haven't I?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Not many if done with Lispy&amp;trade; syntax&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Come to think of it, this more or less defines scheme, except for the compilation and systems programming bit. That can be worked around by using libguile and writing those bits in C.&lt;/p&gt;&#xA;" OwnerUserId="2448" LastEditorUserId="2448" LastEditorDisplayName="" LastEditDate="2010-10-07T16:11:31.357" LastActivityDate="2010-10-07T16:11:31.357" CommentCount="1" />
  <row Id="9968" PostTypeId="2" ParentId="9964" CreationDate="2010-10-06T17:50:39.057" Score="0" ViewCount="" Body="&lt;p&gt;I would do either of these two things, but probably both:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;List it in the experience section of your resume, with the rest of your jobs.  I do this with my freelance work, so why not do it for FOSS involvement?  You were a &amp;lt;Developer&amp;gt; for &amp;lt;OSS Project&amp;gt; from &amp;lt;Start Date&amp;gt; to &amp;lt;End Date&amp;gt; and accomplished a bulleted list of tasks.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Save it for the interview.  It's not necessarily something that a recruiter or front-line hiring staff would appreciate, but it should definitely be respected by the technical staff that is interviewing you.  I would certainly respect it, and not have any fear of reprisal.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-10-06T17:50:39.057" CommentCount="6" />
  <row Id="9969" PostTypeId="2" ParentId="9965" CreationDate="2010-10-06T17:53:16.603" Score="14" ViewCount="" Body="&lt;p&gt;If nothing else, it simplifies parsing and allows you more combinations for variable/class names. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;With case-insensitive parsing, you'd be restricted to having to use unique identifiers, since 'myClass' and 'MyClass' would be the same thing. Alternatively, you'd have to add layers of complexity to your parser to make sure you could determine which identifier is used based on context.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider a case like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;XmlWriter xmlWriter = new XmlWriter();&#xA;xmlWriter.Write(&quot;blah&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Suppose the XmlWriter class also has a static method called &quot;Write&quot;. Are you calling it on the instance or on the class, if there is no case-sensitivity applied here?&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-06T17:53:16.603" CommentCount="22" />
  <row Id="9970" PostTypeId="2" ParentId="9948" CreationDate="2010-10-06T17:53:42.450" Score="1" ViewCount="" Body="&lt;p&gt;I would only mention it if one of the people interviewing me was a developer, and the opportunity presented itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would avoid mentioning it at all to the management / administration type people. Even if they knew what it was they'd think that you had acquired such a high reputation score at the expense of getting things done. I know that's not fair, and that the whole thing has to have people CONTRIBUTING as well as CONSUMING, but all other things being equal it could be a detriment.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-10-06T17:53:42.450" />
  <row Id="9971" PostTypeId="2" ParentId="9948" CreationDate="2010-10-06T18:00:34.337" Score="15" ViewCount="" Body="&lt;p&gt;In an interview, you wait for the right question. Something about &quot;how do you keep current with technology today&quot;, or possibly &quot;would you describe yourself as active in the developer community&quot; (a question you are much more likely to be asked if it says &quot;active in the developer community&quot; on your resume) and then you say something about SO and how it's &quot;a question and answer site where other users award you reputation points for good answers and good questions&quot; and then give your score in really round numbers and then translate into English like &quot;which puts me in the top 1% of users on the site. I'm happy to be recognized as helpful in the technologies I use a lot.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On your resume, you could simply include your SO handle in the contact section, along with your Twitter handle and link to your blog, assuming they're technically relevant. People who recognize it will go check your rep. People who've never heard of it won't learn anything from a simple sentence on the resume.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-06T18:00:34.337" />
  <row Id="9972" PostTypeId="2" ParentId="9965" CreationDate="2010-10-06T18:07:07.323" Score="14" ViewCount="" Body="&lt;p&gt;I don't think it was &quot;implemented&quot; so much as &quot;allowed.&quot;  Case sensitivity is the default state of string comparisons; it takes extra work for the compiler engineer to make a language case insensitive, since you need to add in extra code to perform case-insensitive comparisons and preserve the original token names for correct error and warning reporting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's almost certainly why it ended up in C; they wanted to make a simple language that was easy to implement a compiler for, at the expense of usability.  As for why it's in modern langauges?  Because it's in C, of course, so it &lt;em&gt;must&lt;/em&gt; be the right way to do it! &amp;lt;/sarcasm mode&amp;gt;&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-06T18:07:07.323" CommentCount="12" />
  <row Id="9973" PostTypeId="2" ParentId="9960" CreationDate="2010-10-06T18:13:18.047" Score="1" ViewCount="" Body="&lt;p&gt;Can I hop on google for a few seconds?  Because when I don't know the answer to something I just go and find the answer....this &lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-10-06T18:13:18.047" CommentCount="4" />
  <row Id="9976" PostTypeId="2" ParentId="9964" CreationDate="2010-10-06T18:20:32.033" Score="4" ViewCount="" Body="&lt;p&gt;Feel free to list contributions that you've made as relevant experience.  If they understand the problems with the GPL, and you understand them as well, then that should be good enough for both of you to understand that you won't use it in their product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, open-source licensing is about shared usefulness, not a transfer of ownership.  Unless you did something stupid like signing over your copyright to the FSF, the code you wrote is still your intellectual property and you're free to use it in a proprietary project, no matter what else you've done with it.  (It becomes a bit less clear-cut if someone else has modified your code since then, of course.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But to be honest, headaches like this are why I avoid GPL code entirely.  It doesn't even play nicely with other open-source licenses (have fun trying to mix an MPL or BSD library into a GPL project!), let alone proprietary code.  It's like Richard M. Ford saying you can have your open-source any color you want as long as it's gray.  I don't buy that.  Personally, I see the MPL as about as close to the platonic ideal of an open-source license as we're gonna get, but that's a matter for a different debate.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-06T18:20:32.033" CommentCount="7" />
  <row Id="9977" PostTypeId="2" ParentId="9761" CreationDate="2010-10-06T18:22:05.763" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.doxygen.org&quot; rel=&quot;nofollow&quot;&gt;Doxygen&lt;/a&gt; is useful for generating class diagrams and exploring the classes via hyperlinks. It works even if the code is not specifically augmented with Doxygen style comments.&lt;/p&gt;&#xA;" OwnerUserId="3925" LastActivityDate="2010-10-06T18:22:05.763" />
  <row Id="9978" PostTypeId="2" ParentId="9761" CreationDate="2010-10-06T18:24:16.127" Score="2" ViewCount="" Body="&lt;p&gt;That depends on the part I'm having a hard time with. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If there are too many classes all talking to each other I draw them as boxes and draw lines/arrows between them to see who talks to who.&lt;/li&gt;&#xA;&lt;li&gt;If there are nested function calls and I need to figure out who depends on who I do something similar to sequence diagrams.&lt;/li&gt;&#xA;&lt;li&gt;When it comes to the logic itself, I do two things. One is I imagine the data layout and follow in my head the way it is manipulated while the code runs, and two is I build a &quot;mental image&quot; of the logic. What this mental image is I really can't explain because I do not actually envision it, more like feel its &quot;spatial quality&quot; much in the same way that imagining a map helps you figure out your surrounding. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-10-06T18:24:16.127" />
  <row Id="9979" PostTypeId="2" ParentId="9948" CreationDate="2010-10-06T18:25:31.413" Score="3" ViewCount="" Body="&lt;p&gt;Frankly, I'd be nervous about mentioning a 30K rep during a job interview, because it is blatantly clear you don't get a rep that high by only answering questions outside of work hours. While some employers may be cool with that, I wouldn't count on it unless you had some indication they were SO addicts themselves.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-06T18:25:31.413" CommentCount="3" />
  <row Id="9980" PostTypeId="2" ParentId="9873" CreationDate="2010-10-06T18:27:28.367" Score="0" ViewCount="" Body="&lt;p&gt;I would think the main reason for lack of forward compatibility would be the dearth of working programmers who also happen to be clairvoyant.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-06T18:27:28.367" CommentCount="1" />
  <row Id="9981" PostTypeId="2" ParentId="9761" CreationDate="2010-10-06T18:30:40.010" Score="1" ViewCount="" Body="&lt;p&gt;SO seems to have a parallel discussion with a bunch of software tool links: &lt;a href=&quot;http://stackoverflow.com/questions/3871449/what-tools-should-i-use-to-visualize-structure-of-my-code&quot;&gt;http://stackoverflow.com/questions/3871449/what-tools-should-i-use-to-visualize-structure-of-my-code&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But also, the question is too generic to get a good reply. What language is the code in. If it is something statically typed, etc like Java, there are tools to parse/convert/visualize the class structure, cross-links, etc. If it is more dynamic like Ruby, you may have a lot more troubles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it is public domain, often there are sites that specialize in searching and navigating through the code. Linux certainly has one, as an example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, can you run the code or can you only read it? If you can run it then try sticking a thread dump (or non-Java equivalent) into the locations you are confused about. That will show you what path the program took to get there. If you have trouble understanding which configuration files are loaded and when look at something like ProcessMonitor from Sysinternals/Microsoft. For network behavior analysis, you may use Wireshark. In general, you can use troubleshooting techniques. For Java, I did a presentation on that a while ago for JavaOne/InfoQ: &lt;a href=&quot;http://www.infoq.com/presentations/maintaining-production-java-apps&quot; rel=&quot;nofollow&quot;&gt;http://www.infoq.com/presentations/maintaining-production-java-apps&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, try searching for Source Code Analysis tools, often they include visualization components.&lt;/p&gt;&#xA;" OwnerUserId="2435" LastActivityDate="2010-10-06T18:30:40.010" />
  <row Id="9987" PostTypeId="2" ParentId="9885" CreationDate="2010-10-06T18:42:35.163" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;La perfection est atteinte non pas quand il n’y a plus rien à ajouter, mais quand il n’y a plus rien à retirer.&lt;/em&gt;&lt;br&gt;&#xA;Antoine de Saint-Exupéry&lt;/p&gt;&#xA;&#xA;(in English: Perfection is not reached when there is nothing more to be added, but when there is nothing more to be removed).&#xA;" OwnerUserId="3708" LastActivityDate="2010-10-06T18:42:35.163" />
  <row Id="9988" PostTypeId="2" ParentId="9960" CreationDate="2010-10-06T18:43:14.633" Score="3" ViewCount="" Body="&lt;p&gt;Asking for clarification would be another possible route to take as sometimes questions can be restated to make it easier to answer.  That is what I would do if someone were to ask me about something where I don't even understand what is the question.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-06T18:43:14.633" />
  <row Id="9989" PostTypeId="2" ParentId="9927" CreationDate="2010-10-06T18:49:43.447" Score="1" ViewCount="" Body="&lt;p&gt;Friendliness would be something I'd put up there.  I don't like having a sense of dread if my boss decides to visit my cubicle &lt;em&gt;every single time&lt;/em&gt;.  My performance may be a little better if I feel like I'm helping out a friend that asks for a favor here and there at times, e.g. to get a project done for a deadline I may have to stay in the office for some number of hours that I may not otherwise want to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Competence on managing multiple things would be another aspect that I'd look for though this may be seen as an obvious trait to some extent.  Conflict resolution and reconciliation skills would also be something I'd want to know that my manager can handle as there may be times where it is either developer against developer or developer against analyst in terms of issues that require someone to be right which may be neither in some cases as some aspects to the work can have multiple interpretations.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-06T18:49:43.447" />
  <row Id="9990" PostTypeId="2" ParentId="9944" CreationDate="2010-10-06T18:55:16.583" Score="2" ViewCount="" Body="&lt;p&gt;In some jurisdictions, &quot;Engineer&quot; carries with it the requirement of being a professional engineer, that is having an P. Eng. desigation among one's credentials.  However, in other areas there may not be such a difference as I was a &quot;Softwere Design Engineer&quot; working in Washington state some years ago.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-06T18:55:16.583" />
  <row Id="9991" PostTypeId="1" CreationDate="2010-10-06T19:03:30.097" Score="14" ViewCount="587" Body="&lt;p&gt;I once saw a program (can't remember which) where it talked about people &quot;experiencing flow&quot; when they are doing something they are passionate about. When &quot;in flow&quot;, they tend to lose track of time and surrounding, concentrating only on their activity at hand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This happens a lot for me when I program; most particularly when I face a problem. I refuse to give up until it's solved. This usually leads to hours just rushing by and I forget to eat lunch, dinner gets pushed into far into the evening, and when I finally look at the clock, it's way into the wee-hours of the night and I will only get a few hours of sleep before having to rise early in the morning. (This is not to say that I'm in flow &lt;em&gt;only&lt;/em&gt; when facing a problem - but I find it particularly hard to stop programming and step back when there's something I can't solve immediately.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love programming, but I hate it when it disrupts my normal routines (most importantly eating and sleeping patterns). And sitting still for so many hours, staring a screen, is not healthy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please, any ideas on how I can get my rampant programming activity under control?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-10-07T13:50:21.587" LastActivityDate="2011-02-01T14:38:48.567" Title="What to do when the programming activity becomes a problem?" Tags="&lt;health&gt;&lt;programming&gt;&lt;bad-habits&gt;" AnswerCount="15" CommentCount="2" FavoriteCount="8" />
  <row Id="9992" PostTypeId="2" ParentId="9991" CreationDate="2010-10-06T19:06:17.493" Score="22" ViewCount="" Body="&lt;p&gt;Drink lots of water. It's good for you, and it causes certain urges that are difficult to resist.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-06T19:06:17.493" CommentCount="11" />
  <row Id="9993" PostTypeId="2" ParentId="9991" CreationDate="2010-10-06T19:06:46.743" Score="5" ViewCount="" Body="&lt;p&gt;Set a timer. Plain and simple. Use this timer to break up your activities and prevent you from not eating, sleeping, etc. &lt;/p&gt;&#xA;" OwnerUserId="4584" LastActivityDate="2010-10-06T19:06:46.743" CommentCount="4" />
  <row Id="9994" PostTypeId="2" ParentId="9991" CreationDate="2010-10-06T19:08:33.753" Score="6" ViewCount="" Body="&lt;p&gt;I love when that happens... That's what I hope for every time I sit down to code.  If I were you I wouldn't try to stop it, you might be wishing for it later.&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-10-06T19:08:33.753" CommentCount="3" />
  <row Id="9995" PostTypeId="2" ParentId="109" CreationDate="2010-10-06T19:08:46.053" Score="0" ViewCount="" Body="&lt;p&gt;In VB, forget that &lt;code&gt;AND / OR&lt;/code&gt; in an expression do not evaluate as a short-circuit by compiler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;VB.NET introduced &lt;code&gt;AndAlso&lt;/code&gt; and &lt;code&gt;OrElse&lt;/code&gt; to resolve this misunderstanding and work with short-circuit.&lt;/p&gt;&#xA;" OwnerUserId="3082" LastActivityDate="2010-10-06T19:08:46.053" CommunityOwnedDate="2010-10-06T19:08:46.053" />
  <row Id="9996" PostTypeId="2" ParentId="2909" CreationDate="2010-10-06T19:08:54.463" Score="1" ViewCount="" Body="&lt;p&gt;A few years ago I started getting a dull pain just beneath my right elbow. I figured it was because of using the mouse, as it increased slightly as I moved the mouse around. I read somewhere that getting an inclined mouse (one where its surface where you hold is not horizontal but near vertical), so I got one. And within a month or two, the pain went away. Never had a problem since.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also try to use the mouse as little as possible, but I only started with that after the pain had disappeared.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-06T19:08:54.463" />
  <row Id="9997" PostTypeId="2" ParentId="8968" CreationDate="2010-10-06T19:14:22.277" Score="2" ViewCount="" Body="&lt;p&gt;Seymour Papert found great success in teaching young children programming through Logo.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alan Kay developed Smalltalk precisely as a means of teaching young children to program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I &lt;em&gt;think&lt;/em&gt; &quot;young&quot; here means &quot;5 or older&quot;. My copy of &lt;em&gt;Mindstorms&lt;/em&gt; is in a box somewhere.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-06T19:14:22.277" CommunityOwnedDate="2011-03-04T21:09:34.713" CommentCount="1" />
  <row Id="9998" PostTypeId="2" ParentId="9965" CreationDate="2010-10-06T19:14:29.300" Score="1" ViewCount="" Body="&lt;p&gt;I just figured it was because of Unix and C - but that's kind of a chicken and the egg problem which only the geezers can answer properly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use the rationale that the Chickens in &quot;The Easter Bunny is Coming to Town&quot; used when asked whether they came before Eggs.  Because there were chickens on Noah's Ark, chickens came first. Therefore, because GCC runs on Unix, Unix came first, therefore because Unix cares so much for case, C and all its variants and descendants, yea anything that imposes curly braces, cares for case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There probably is a link between curly braces and case sensitivity too.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-06T19:14:29.300" />
  <row Id="9999" PostTypeId="2" ParentId="9675" CreationDate="2010-10-06T19:16:16.493" Score="0" ViewCount="" Body="&lt;p&gt;LiveCode / Runtime Revolution&lt;/p&gt;&#xA;&#xA;&lt;p&gt;deploys on Mac, Windows and Linux and makes standalone software for all sorts&#xA;of other platforms as well.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-06T19:16:16.493" />
  <row Id="10000" PostTypeId="2" ParentId="9991" CreationDate="2010-10-06T19:16:35.027" Score="1" ViewCount="" Body="&lt;p&gt;Train yourself to end at a specific time, and stick to it. Eg If you need to leave at 5pm, have an alarm that goes off at 4, 4:30, 4:45, and 4:55 warning you to just put it down and continue the next day. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The hard part of course is training yourself to do this. This mainly requires self discipline, but can also be helped by splitting up your work into units. The advantage of units is that you can complete a task quicker and get that satisfaction of completion earlier, which might give you enough sense to listen to that alarm going off. It will be tough, but its something that you've got to do.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-10-06T19:16:35.027" />
  <row Id="10001" PostTypeId="2" ParentId="8454" CreationDate="2010-10-06T19:19:27.617" Score="1" ViewCount="" Body="&lt;p&gt;Have a read through &lt;a href=&quot;http://meta.stackoverflow.com/questions/3086/will-open-sourcing-stack-overflow-destroy-our-business-model&quot;&gt;Will Open Sourcing Stack Overflow Destroy Our Business Model?&lt;/a&gt; - while Stack Overflow isn't the same as your poll framework it should give you more insight into many other people's views.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Couple of thoughts that occured to me that I don't know the answer to myself...&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Just because someone submits code to the project, it might not be good enough/accepted/used. Open-source doesn't automatically make the code better.&lt;/li&gt;&#xA;&lt;li&gt;Similarly, I don't know what the average take-up is for developers helping out with the code. There may not be hordes of developers contributing to the source? (although you only need 1 or 2 to make a substantial difference).&lt;/li&gt;&#xA;&lt;li&gt;I guess there is also nothing stopping you from open-sourcing the framework, but you run a customised version for your business that has other features/security built in.&lt;/li&gt;&#xA;&lt;li&gt;Can your business remain anonymous/not advertise that it is behind the framework? And where the framework is installed/live - disguise that it is a particular framework? (Consider wordpress and how one of the security recommendations is to hide the meta tag that says &quot;Wordpress version 2.3&quot;).&lt;/li&gt;&#xA;&lt;li&gt;You also need to talk to your boss/legal department because your employment contract might say something to the effect that the intellectual property of anything that you create at work is owned by your employer, and open-sourcing some code that originated in the company could land you in hot water.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4205" LastActivityDate="2010-10-06T19:19:27.617" />
  <row Id="10002" PostTypeId="1" AcceptedAnswerId="10007" CreationDate="2010-10-06T19:26:22.203" Score="6" ViewCount="107" Body="&lt;p&gt;I often come across a class which has a single reference to another library and was wondering if its better to include the library or to reference the object by it's full name. Is one better then the other? Is one more of a standard then another?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example using System.Windows.Messagebox:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Option A:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;using System.Windows;&#xA;&#xA;public class MyClass&#xA;{&#xA;    SomeMethod()&#xA;    {&#xA;        MessageBox.Show(&quot;Something&quot;);&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Option B:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class MyClass&#xA;{&#xA;    SomeMethod()&#xA;    {&#xA;        System.Windows.MessageBox.Show(&quot;Something&quot;);&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If B, how many references do you need before you decide to add the entire library?&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-10-25T14:10:58.633" Title="Is there a standard for when you include libraries or not?" Tags="&lt;c#&gt;&lt;coding-standards&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="10003" PostTypeId="2" ParentId="9843" CreationDate="2010-10-06T19:27:59.593" Score="3" ViewCount="" Body="&lt;p&gt;If you consider that a Customer is a part of the domain model, then it makes sense (especially within the context of DDD but not limited to it) to have have both properties and operations for that object. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that said, however, I think that the example you've used is a poor one, and is a cause of the argument. If you're talking about persistence, then Customers generally don't 'save' themselves; whatever you're using for persistence will. It makes sense that any kind of persistence should belong to the persistence layer/partition. This is generally the thinking behind the repository pattern.** A method like Customer.UpgradeWarranty() or Customer.PromoteToPreferred() makes the argument clearer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This also doesn't remove the possibility for having DTOs. Consider the situation where you're going to pass customer information to a remote service for instance. It may not make sense for a customer to create a DTO of itself for transport, that's an architectural concern, but a case could be made for it in the persistence or network layer/partition/code/what-have-you. In that case, such an objectcould have methods that look like this&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public static CustomerDTO GetDTO(Customer c) { /* ... */ }&#xA;&#xA;public static Customer GetCustomer(CustomerDTO cdto) { /* ... */ }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So, in summary, it makes perfect sense to have operations on a domain object that are congruent with logical operations in the domain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Google for 'Persistence Ignorance' for a number of good discussions on the matter (&lt;a href=&quot;http://stackoverflow.com/questions/905498/what-are-the-benefits-of-persistence-ignorance&quot;&gt;this SO question&lt;/a&gt;, and its accepted answer is a good place to start).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;** This gets a bit muddied with certain OR/M software where you are forced to inherit from a persistent base that has a 'Save' method.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-10-06T20:24:14.463" LastActivityDate="2010-10-06T20:24:14.463" />
  <row Id="10004" PostTypeId="2" ParentId="109" CreationDate="2010-10-06T19:30:22.960" Score="0" ViewCount="" Body="&lt;p&gt;If you don't implement all your abstract functions, you get an abstract error!  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd imagine most compiler's will toss you a warning or not let you compile, but I've gotten this once or twice when I thought I was safe.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-06T19:30:22.960" CommunityOwnedDate="2010-10-06T19:30:22.960" />
  <row Id="10005" PostTypeId="2" ParentId="9409" CreationDate="2010-10-06T19:31:19.947" Score="14" ViewCount="" Body="&lt;p&gt;I wrote a fairly complex custom web application for a Federal Regulatory agency once with an IT Manager who was seriously ADHD, had administrator rights, and an itchy trigger finger.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So one day she calls me up for support on the app. It was a fairly minor issue that was only experienced by a couple of users and I think ultimately was probably the result of an improper configuration setting somewhere. Very routine. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, it would have been routine if I weren't troubleshooting it with this IT manager over the phone from across the country. It was my first exposure to the &quot;Scorched earth&quot; troubleshooting approach. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every time I'd ask her to check something, I could hear her furiously typing in the background for a lot longer than it seemed like would be necessary for what I was asking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Me:&lt;/strong&gt; Can you restart the web service by running the command &quot;IISReset&quot; from a command line?&lt;br&gt;&#xA;&lt;strong&gt;Them:&lt;/strong&gt; Okay (clickity-click-click-click)  Okay, I ran that command. Oh and I was thinking that maybe the firewall might be the problem so I reconfigured it to blah blah blah..&lt;br&gt;&#xA;&lt;strong&gt;Me:&lt;/strong&gt; Hold on now. Let's try one thing at a time. So now I'd like you to open the IIS console and make sure the site directory is set to use basic authentication.&lt;br&gt;&#xA;&lt;strong&gt;Them:&lt;/strong&gt; Clickit-click-clack-clickity-buzz-ding-whoop-click. Got it. That was set. I also started a defrag on the hard drive in case that might be causing problems too. It has been a while yaknow.&lt;br&gt;&#xA;&lt;strong&gt;Me:&lt;/strong&gt; Okay, please, please. Let's just stick with the troubleshooting steps for now. We need to only change one variable at a time.  Next, please check the permissions on Group A and tell me if it includes right x.&lt;br&gt;&#xA;&lt;strong&gt;Them&lt;/strong&gt;: Oh my god there are like way too many rights on this account, I'm going to remove y,z, and w from these users. What was the one you were asking about again? Wait, can I call you back? I'm going to go reboot the server to see if that helps. I'll call you when I get back to my office.&lt;br&gt;&#xA;&lt;strong&gt;Me&lt;/strong&gt; : Umm, well that's not really...[click]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;[Phone Rings 45 minutes later]&lt;/strong&gt;&lt;br&gt;&#xA;&lt;strong&gt;Them&lt;/strong&gt;: While I was rebooting the server I thought that a sure fire way to fix the problem would just be to reinstall from scratch, so I formatted the drive and re-installed windows, can you walk me through re-installing the app? Also, I can't find the install disks, did you leave a copy with me from the last time you came out? &lt;strong&gt;&lt;em&gt;We have to hurry because this is a production server and we can't be down for too long without people complaining.&lt;/em&gt;&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The story ends with me on a plane later that evening. There was absolutely no way I was going to talk this person through a full install of a complicated multi-tier application over the phone. I took another developer with me to the customer's site with the express task of distracting this person while I re-installed the software.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-06T19:31:19.947" CommentCount="1" />
  <row Id="10007" PostTypeId="2" ParentId="10002" CreationDate="2010-10-06T19:42:45.580" Score="5" ViewCount="" Body="&lt;p&gt;I would prefer 'Option A'. It clearly states, that this file indeed uses that library. And anybody new to the code won't be searching for signs of external references through the whole file. Don't know about such standards though, just reasoning.&lt;/p&gt;&#xA;" OwnerUserId="1027" LastActivityDate="2010-10-06T19:42:45.580" CommentCount="1" />
  <row Id="10008" PostTypeId="2" ParentId="487" CreationDate="2010-10-06T19:45:06.667" Score="2" ViewCount="" Body="&lt;h1&gt;Compiler hints&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I'm talkin out of me bum since I don't know that much about language design, but I think the feature I'm talking about is called &lt;strong&gt;hints&lt;/strong&gt; in other languages. &lt;strong&gt;Compiler hints&lt;/strong&gt;, maybe?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know if I read this in a Perl6 draft or was just high at the time, but I imagine a language where everything by default is loosy goosy and automagical. But if you wanted to really crank out performance and say, hey, this value is always an integer or it's never null, or this can be parallel, or this is stateless, things like that... That the compiler could automatically go to town on these specifically marked areas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;E: I'd appreciate comments clarifying what I'm asking for or citing examples where this already exists.&lt;/p&gt;&#xA;" OwnerUserId="3119" LastEditorUserId="3119" LastEditorDisplayName="" LastEditDate="2010-10-07T21:10:13.710" LastActivityDate="2010-10-07T21:10:13.710" CommentCount="1" />
  <row Id="10009" PostTypeId="2" ParentId="10002" CreationDate="2010-10-06T20:00:38.313" Score="0" ViewCount="" Body="&lt;p&gt;My rule of thumb is that if I use a library a lot in a particular class file then I'll include it (it looks neater and saves typing). But if there's just a single reference to a rarely used class in my code then I may well reference it using the fully qualified name (that way it's obvious which namespace it is in).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't forget in Visual Studio you can collapse namespace definitions and also easily remove unused &lt;code&gt;using&lt;/code&gt; statements, if you find you have a lot.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-10-06T20:00:38.313" />
  <row Id="10010" PostTypeId="2" ParentId="9965" CreationDate="2010-10-06T20:03:18.603" Score="42" ViewCount="" Body="&lt;p&gt;While case folding is fairly trivial in English, it's much less so in some other languages. &#xA;If a German programmer uses &lt;code&gt;ß&lt;/code&gt; in a variable name, what are you going to consider the upper-case equivalent? Just FYI, &quot;ß&quot; is &lt;em&gt;only ever&lt;/em&gt; used in lower case. OTOH, &quot;ss&quot; &lt;em&gt;is&lt;/em&gt; equivalent -- would you consider a compiler obliged to match them? When you get into Unicode, you get even more interesting problems, such as characters with pre-composed diacritical marks versus separate combining diacriticals.  Then you get to some Arabic scripts, with three separate forms of many letters, rather than just two.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the dark ages most programming languages were case-insensitive almost out of necessity. For example, Pascal started out on Control Data mainframes, which used only six bits per character (64 codes, total). Most such machines used the &quot;CDC Scientific&quot; character set, which only contained upper-case characters. You could switch to other character sets, but most had either upper-case or lower-case, but not both -- but used the same codes for both. The same was true of the ancient Baudot codes and such considered standard in the beginning days of COBOL, FORTRAN, BASIC, etc. By the time more capable hardware was widely available, their being case-insensitive was so thoroughly ingrained that changing it was impossible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over time, the real difficulty of case-insensitivity has become more apparent, and language designers have mostly decided (&quot;realized&quot; would probably be a more accurate term) that when/if people really want case insensitivity, that it's better handled by ancillary tools than in the language itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least IMO, compiler should take input exactly as presented, not decide that &quot;you wrote this, but I'm going to assume you really meant something else.&quot; If you want translations to happen, you're better off doing them separately, with tools built to handle that well.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-06T20:03:18.603" CommentCount="7" />
  <row Id="10011" PostTypeId="2" ParentId="9927" CreationDate="2010-10-06T20:17:20.233" Score="1" ViewCount="" Body="&lt;p&gt;Someone who is clear in what needs to be done, lets me work out the technical details, provides context when needed, and doesn't change requirements when I'm more than halfway done.&lt;/p&gt;&#xA;" OwnerUserId="88" LastActivityDate="2010-10-06T20:17:20.233" />
  <row Id="10012" PostTypeId="2" ParentId="10002" CreationDate="2010-10-06T20:24:44.447" Score="1" ViewCount="" Body="&lt;p&gt;Option A clearly identifies your class' dependencies.  If it has too many, you will notice that very easily.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-06T20:24:44.447" />
  <row Id="10013" PostTypeId="1" CreationDate="2010-10-06T20:29:23.540" Score="1" ViewCount="100" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/2757/how-many-monitors-do-you-use-why-how-they-are-used&quot;&gt;How many monitors do you use? Why? How they are used?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I really like my dual monitor setup at work and home. I am just wondering how much value does a third monitor add? How do you usually divide your applications among three monitors?&lt;/p&gt;&#xA;" OwnerUserId="3299" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-06T20:43:03.437" LastActivityDate="2010-10-06T20:43:03.437" ClosedDate="2010-10-06T21:23:34.170" Title="What is the best way to maximize the utility of three monitors?" Tags="&lt;productivity&gt;&lt;multiple-monitors&gt;" AnswerCount="0" CommentCount="1" />
  <row Id="10014" PostTypeId="2" ParentId="9960" CreationDate="2010-10-06T20:39:36.560" Score="1" ViewCount="" Body="&lt;p&gt;&quot;I have never worked with ????.  When i a had a problem that ???? solves, i instead used  (insert real example that relates to my resume here)&quot;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having every opportunity to prove that you are not lying about projects you worked on, can be much more powerful than knowing a detail &lt;/p&gt;&#xA;" OwnerUserId="4687" LastActivityDate="2010-10-06T20:39:36.560" />
  <row Id="10016" PostTypeId="2" ParentId="7055" CreationDate="2010-10-06T20:44:28.647" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Decorator&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Add functionality to an object at runtime through composition. My personal favorite.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: Also &lt;strong&gt;Factory&lt;/strong&gt; is probably one of the most common.&lt;/p&gt;&#xA;" OwnerUserId="1785" LastEditorUserId="1785" LastEditorDisplayName="" LastEditDate="2010-10-06T20:49:46.003" LastActivityDate="2010-10-06T20:49:46.003" CommunityOwnedDate="2011-03-03T21:02:19.503" />
  <row Id="10017" PostTypeId="2" ParentId="9927" CreationDate="2010-10-06T20:46:52.607" Score="1" ViewCount="" Body="&lt;p&gt;Someone who understands that development is not factory work.  Putting in more hours per day is not likely to get significantly higher yield.  Programmers need to pick their nose up from the grindstone pretty often and just not think about what they are working on to solve a problem and get things done.&lt;/p&gt;&#xA;" OwnerUserId="4687" LastActivityDate="2010-10-06T20:46:52.607" />
  <row Id="10018" PostTypeId="2" ParentId="8954" CreationDate="2010-10-06T20:51:44.897" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.clockingit.com/&quot; rel=&quot;nofollow&quot;&gt;ClockingIT&lt;/a&gt; does everything except invoice generation. The bug tracking aspect is not what you'd necessarily espect, since this tool is more of a task manager/time tracker/scheduler, but I think it could be used that way. Bugs treated as tasks with priority, estimates, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest draw for me with this tool was the ability to do GANTT-type charts for scheduling. I didn't ultimately end up using it for very long, but it was interesting to play around with it without the heft of MS Project or other similar tools.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-06T20:51:44.897" />
  <row Id="10019" PostTypeId="2" ParentId="9409" CreationDate="2010-10-06T20:52:20.433" Score="3" ViewCount="" Body="&lt;p&gt;If you don't mind an internal user problem, a long time ago I worked at a company that sold a product that needed customization.  I was in charge of doing what was necessary back at the office, and somebody I will call Joan (because it isn't anything like her name) was the customer engineer at the customer site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Joan reported a bug in a certain utility.  I'd written the utility, so I knew what was wrong.  As it happened, the configuration for this utility was really messy.  (Originally, I'd protested writing the utility that way, but was overruled.  I figured it wouldn't really matter that much, I just hated doing it that way.)  From the error message, I could tell what was going on, and it was a configuration problem.  I emailed back, saying this, and offering to supply the configuration if she gave me a few pieces of information.  I got back a reply saying that the configuration was correct, and she'd had another CE look at it.  I sent an email pointing out that I could tell from the error that it wasn't, that it was tricky, and that I was perfectly willing to help.  Next communication I got was from management, telling me I wasn't to communicate directly with Joan any more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I never did find out anything more about that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, the next bug report I got was that our main application demo ran for half an hour, and then stopped.  That was it.  We didn't have a standard demo, since the customers were all different, so I couldn't try running it, even if I'd had all the configuration and data available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I told my liaison that I'd be perfectly happy to dig in if I had more information, and asked him to get it from Joan.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I never got anything more out of that, although I heard the complaint several more times.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-06T20:52:20.433" />
  <row Id="10020" PostTypeId="2" ParentId="9810" CreationDate="2010-10-06T20:54:09.707" Score="2" ViewCount="" Body="&lt;p&gt;If this happens to you every time you deploy, there could be a serious flaw in your development process. I would suspect a couple of things that are causing the problems.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Do you develop against a&#xA;database that is the same size&#xA;(roughly) as production? If not then&#xA;you will always have these problems&#xA;because queries that are fine with&#xA;small data sets are often dogs with&#xA;bigs ones.&lt;/li&gt;&#xA;&lt;li&gt;Do you load test in QA? What&#xA;works fine with one user testing is&#xA;very different from how things will&#xA;respond with 1000 users trying to do&#xA;things at the same time.&lt;/li&gt;&#xA;&lt;li&gt;Do you assume the user's&#xA;perception is wrong and treat them&#xA;like they are stupid for&#xA;complaining? If so, then your&#xA;attitude is causing more complaints&#xA;not lessening them.&lt;/li&gt;&#xA;&lt;li&gt;Are you doing a good job of&#xA;testing? Do you even care how long&#xA;things take until they hit prod?&lt;/li&gt;&#xA;&lt;li&gt;Do you pay attention to when is a&#xA;    good time for the users when you&#xA;    deploy or do you merrily deploy a&#xA;    change to the accounting system the&#xA;    day payroll is run and wonder why&#xA;    users are angry at the slow down?&lt;/li&gt;&#xA;&lt;li&gt;Do you have environmental&#xA;differences between dev and prod.&#xA;Sometimes those pesky differences in&#xA;operating systems or database&#xA;versions will cause issues like this&#xA;as well.&lt;/li&gt;&#xA;&lt;li&gt;How good is your deployment process,&#xA;do you often miss steps?  Can it be&#xA;run by someone other than the&#xA;developer because it is clear what&#xA;code goes in the branch you are&#xA;deploying? We got a lot better at&#xA;deploying code when we got a&#xA;configuration management team and&#xA;nobody had the rights to sit with&#xA;prod and babysit it making &quot;oopsie&quot;&#xA;changes.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1093" LastEditorUserId="1093" LastEditorDisplayName="" LastEditDate="2010-10-08T13:57:04.173" LastActivityDate="2010-10-08T13:57:04.173" CommentCount="3" />
  <row Id="10021" PostTypeId="1" CreationDate="2010-10-06T20:56:32.177" Score="10" ViewCount="500" Body="&lt;p&gt;I have often seen people fighting over that their favorite language is more &quot;powerful&quot; than others. When it comes to describing a programming language, I can understand what an object oriented language is or what a dynamic language is, but I still can't figure out what exactly a &quot;powerful&quot; language is. What are your thoughts?&lt;/p&gt;&#xA;" OwnerUserId="2057" LastActivityDate="2010-10-08T18:20:15.760" Title="What is a &quot;powerful&quot; language?" Tags="&lt;programming-languages&gt;" AnswerCount="14" CommentCount="8" FavoriteCount="1" />
  <row Id="10022" PostTypeId="2" ParentId="9991" CreationDate="2010-10-06T20:56:55.187" Score="1" ViewCount="" Body="&lt;p&gt;Set an alarm clock to when you want to stop and decide if you want to continue crunching or call it a day. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-10-06T20:56:55.187" />
  <row Id="10023" PostTypeId="2" ParentId="9965" CreationDate="2010-10-06T21:02:47.540" Score="12" ViewCount="" Body="&lt;p&gt;In Java case sensitivity is NOT used to provide more options in code, but rather for a very clear and consistent semantic meaning. ClassesLookLikeThis. objectsLookLikeThis. methodsLookLikeThis(). STATIC_VARIABLES_LOOK_LIKE_THIS. Classes.WithInnerClassesLookLikeThis. It does NOT provide greater freedom: &lt;strong&gt;it allows you to pack some information concisely into what is an otherwise overly verbose language.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that in explicitly statically-typed languages with mucho compiler and IDE support, case-sensitivity is a great way to communicate information (e.g., Java). With languages like Ruby, case insensitivity would probably cause even MORE unexpected results, though I'd be open to trying case-insensitive Ruby.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that case sensitivity with a strict system does not obfuscate code but actually makes it clearer. Consider possible Java code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;      joe blah = new hUf();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;that's pretty clear, but what about:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;      hUf.WTF();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In Java as-it-is, you would automatically know what this is. In case-insensitive Java, it's ambiguous, so &lt;strong&gt;you'd need to resort to some other mechanism to differentiate classes from instances from packages from methods.&lt;/strong&gt; And THAT mechanism would probably make you vomit with how ugly it is :)&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-10-06T21:02:47.540" CommentCount="5" />
  <row Id="10024" PostTypeId="2" ParentId="10021" CreationDate="2010-10-06T21:03:26.420" Score="7" ViewCount="" Body="&lt;p&gt;I maybe biased because I'm a system programmer. I would think a programming language used for all of kernel, system, server and application programming, or support multiple programming paradigms, or both can be called &quot;powerful&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C, C++, D are powerful, but obviously this is just my humble opinion.&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-10-07T18:18:53.643" LastActivityDate="2010-10-07T18:18:53.643" CommentCount="2" />
  <row Id="10025" PostTypeId="2" ParentId="10021" CreationDate="2010-10-06T21:03:37.320" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The right balance of brevity and flexibility.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Great question. Given that many languages are &quot;Turing complete&quot;, we can put them all on equal grounds with regards to what they're theoretically capable of. But we don't do that because languages obviously differ from one another. And what is the difference?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The difference is &lt;strong&gt;the ability to say a lot of different things with very little&lt;/strong&gt;. If we could jump right to the extremes, I could make a language that is the best language for automatically initializing a content management system using just one character, 'c'. But what would the point of that be? Sure, it's &lt;em&gt;powerful&lt;/em&gt; in a sense of being very brief, but it's not flexible. What you want is a language that allows you to say many different complex things without being too verbose. Without being like assembly, capable of everything under the sun, infinitely flexible but extremely verbose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A powerful language is a language that allows you to say many different things with the least amount of length possible.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="3119" LastActivityDate="2010-10-06T21:03:37.320" CommentCount="3" />
  <row Id="10026" PostTypeId="2" ParentId="9991" CreationDate="2010-10-06T21:06:46.443" Score="24" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Get married&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A wife yelling &quot;Dinner is ready.&quot; or &quot;Get to bed now, or you'll be grumpy in the morning&quot; will kick your right out of that zone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously. The only reason I get to bed on time is because my wife hates me in the morning after late nights of programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's other benefits too.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-06T21:06:46.443" CommentCount="8" />
  <row Id="10027" PostTypeId="2" ParentId="10021" CreationDate="2010-10-06T21:10:39.033" Score="1" ViewCount="" Body="&lt;p&gt;Once you hit Turing complete (and it's easy for a language to do this), &quot;power&quot; doesn't mean much, in the sense that anything you can say in one Turing complete language you can say in another. &lt;a href=&quot;http://programmers.stackexchange.com/questions/10021/what-is-a-powerful-language/10025#10025&quot;&gt;Mark Canlas' answer&lt;/a&gt; nails it: brevity and flexibility makes the difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, Matthias Felleisen's paper &lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.51.4656&quot; rel=&quot;nofollow&quot;&gt;On the Expressive Power of Programming Languages&lt;/a&gt; makes for interesting reading. In it he attempts to formalise the notion of expressiveness in languages.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-06T21:10:39.033" CommentCount="1" />
  <row Id="10029" PostTypeId="2" ParentId="9885" CreationDate="2010-10-06T21:25:30.650" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Enough to make you stop second guessing yourself.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If at any time during your work you're like &quot;hmm maybe I should document this&quot;, go ahead and do it. Then, if you've written some documentation and you're like &quot;maybe I should explain this more&quot;, go ahead and do that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rinse-repeat until &lt;em&gt;that feeling&lt;/em&gt; goes away.&lt;/p&gt;&#xA;" OwnerUserId="3119" LastActivityDate="2010-10-06T21:25:30.650" CommentCount="1" />
  <row Id="10030" PostTypeId="2" ParentId="10021" CreationDate="2010-10-06T21:27:04.157" Score="2" ViewCount="" Body="&lt;p&gt;There are a few definitions of power beyond Turing completeness.  Mark's cited what I tend to think of as &quot;the Paul Graham definition.&quot;  It's a pretty good definition, with one serious flaw: it's wrong.  It's theoretically a very good definition of language power, but you know what they say about the difference between theory and practice...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If everyone was capable of writing perfect code, not only perfectly bug-free but also perfectly future-proof, consistently, then the Paul Graham definition would be correct.  But that's obviously not the case.  In the real world, the majority of time and effort that goes into software engineering is not taken up by initial creation of the product, but by maintenance afterwards.  Depending on which statistics you listen to, (and it probably varies quite a bit from project to project,) maintenance can account for anywhere from 60% to 90% of the total effort that goes into a program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maintenance is often performed by people other than the person who wrote the code initially, and frequently months or even years after the initial writing of the code, which means that even to the original coder it may as well be &quot;other people's code&quot; by that point.  If you want to be productive during maintenance, you need to be able to quickly ascertain the original intent of the code by reading it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, a more powerful language is one that makes code easier to &lt;em&gt;read&lt;/em&gt; quickly, not one that makes code easier to &lt;em&gt;write&lt;/em&gt; quickly.  There tends to be a fair amount of overlap between the two, but the concepts are often at cross purposes as well, since terse syntax will often omit details that a compiler/interpreter is able to infer a lot more easily than a maintenance programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: There's another important point in describing a language's power: the range of concepts that you're able to express, and how easily you can hit both ends of it.  Paul Graham likes to evaluate this one on how high a level of abstraction you can reach, but that's only half of it.  Any language that imposes a lower limit of abstraction, beneath which you can't go when necessary, is crippled because the details that are being abstracted away are there for a reason.  This is the difference between an easily-readable toy language like COBOL and an easily-readable powerful language: COBOL has no pointers and no access to inline assembly, where you can express any computation, even ones that COBOL is not well-suited to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;COBOL is also not particularly good at hitting the high end of the abstraction spectrum either.  According to Wikipedia it has &quot;no user-defined types, and no user-defined functions,&quot; which makes it very difficult to create algorithms and data structures.&lt;/p&gt;&#xA;" OwnerUserId="935" LastEditorUserId="935" LastEditorDisplayName="" LastEditDate="2010-10-06T21:55:13.270" LastActivityDate="2010-10-06T21:55:13.270" CommentCount="7" />
  <row Id="10031" PostTypeId="2" ParentId="9965" CreationDate="2010-10-06T21:37:30.580" Score="27" ViewCount="" Body="&lt;p&gt;Why would anyone WANT case insensitivity? In what scenario is it useful to be able to refer to a single variable as &lt;code&gt;VARIABLE&lt;/code&gt; in one place, &lt;code&gt;Variable&lt;/code&gt; in another, and &lt;code&gt;variable&lt;/code&gt; in a third? Case insensitivity is exasperating. I’d much rather get a compiler error when I accidentally type &lt;code&gt;VAriable&lt;/code&gt; instead of &lt;code&gt;Variable&lt;/code&gt; rather than let case-typos like that slip into my code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In conclusion, many programming languages have case sensitivity not just for historical/inertial reasons but because case insensitivity is a Bad Idea.&lt;/p&gt;&#xA;" OwnerUserId="983" LastActivityDate="2010-10-06T21:37:30.580" CommentCount="8" />
  <row Id="10032" PostTypeId="1" CreationDate="2010-10-06T21:44:12.573" Score="19" ViewCount="703" Body="&lt;p&gt;Do there exist studies done on the effectiveness of statically vs dynamically typed languages? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In particular:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Measurements of programmer productivity&lt;/li&gt;&#xA;&lt;li&gt;Defect Rate&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also including the effects of whether or not unit testing is employed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen lots of discussion of the merits of either side but I'm wondering whether anyone has done a study on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sadly, only one of the papers shown is actually a study and it does nothing but conclude that the language matters. This leads me to ponder: what if I proposed doing such a study with volunteers from this site?&lt;/p&gt;&#xA;" OwnerUserId="1343" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-21T00:58:50.490" LastActivityDate="2010-10-21T00:58:50.490" Title="Dynamically vs Statically typed languages studies" Tags="&lt;productivity&gt;&lt;comparison&gt;&lt;type-system&gt;&lt;dynamic-typing&gt;&lt;static-typing&gt;" AnswerCount="4" CommentCount="11" FavoriteCount="8" />
  <row Id="10033" PostTypeId="2" ParentId="10021" CreationDate="2010-10-06T22:05:06.087" Score="1" ViewCount="" Body="&lt;p&gt;There seems to be a lot of disagreement over what constitutes linguistic power. Is it terseness, legibility, adaptability, or just plain Turing completeness? I think that all of these factors come into play, so perhaps the best way to look at it is in terms of stat points. Yes, I'm talking pen-and-paper RPG, here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea is that each language has (roughly) the same number of &quot;points&quot;, which can be distributed arbitrarily across a number of categories. For the purposes of discussion, say the only factors are brevity, legibility, and flexibility. A language then might be extremely terse and flexible, but consequently very difficult to read; or very legible and flexible, but extremely verbose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Arguably, the number of points that a language has to distribute is defined by the skill of the designer and implementor, but let's pretend that all language designers are equally good at what they do.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When a language designer decides to increase the strength of a language in one category, they logically take away a fraction of that potential strength from every other category. This is why it's so often said that programming language design is all about trade-offs. From this point of view, the overall power of a language is &lt;em&gt;still&lt;/em&gt; not definable, and we have to revert to the tried and true method of categorising languages based on their relative strengths. Not satisfying? Too bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can argue two ways: that a powerful language is one with a relatively even distribution of points (jack of all trades, master of none), or with as many points as possible in one area without leaving others unattended (specialist). There is no such thing as a &quot;renaissance man&quot; language, with perfect mastery in numerous fields. And if that's your definition of the most powerful possible language, then you're just plain out of luck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For further reading, &lt;a href=&quot;http://www.paulgraham.com/avg.html&quot; rel=&quot;nofollow&quot;&gt;this article&lt;/a&gt; (coincidentally also by Paul Graham, who seems to have mixed opinions) touches on the idea that, difficult though it may be to determine &lt;em&gt;how&lt;/em&gt;, programming languages do indeed vary in power. He argues rather persuasively that it's very easy to see how a language is less powerful than your preferred one&amp;mdash;it's missing feature X&amp;mdash;but very difficult to see how a genuinely more powerful language is in fact so&amp;mdash;it's basically equivalent to language X, but with a bunch of other stuff thrown in. I leave you with a quote from that paper:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;By induction, the only programmers in a position to see all the differences in power between the various languages are those who understand the most powerful one. (This is probably what Eric Raymond meant about Lisp making you a better programmer.) You can't trust the opinions of the others, because of the Blub paradox: they're satisfied with whatever language they happen to use, because it dictates the way they think about programs.&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2107" LastActivityDate="2010-10-06T22:05:06.087" CommentCount="4" />
  <row Id="10035" PostTypeId="1" CreationDate="2010-10-06T22:28:08.753" Score="10" ViewCount="265" Body="&lt;p&gt;Background: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you haven't read much of what I've written here, then:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I'm a sole developer&lt;/li&gt;&#xA;&lt;li&gt;I've developed professionally for ~3 years, personally for 13&lt;/li&gt;&#xA;&lt;li&gt;I love my work&lt;/li&gt;&#xA;&lt;li&gt;Top-to-bottom, I find the whole process of developing software interesting, fun and exciting (with the slight exception of marketing) &lt;/li&gt;&#xA;&lt;li&gt;I hate the environment I'm in now and had to leave&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Now:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've applied for a position as a Software Development Engineer in Test which potentially pays significantly more than I'm making now (~70%), is located somewhere I'd really like to be and looks like a company I'd really like to work for (interesting product, good tools, smart people - I was referred by an existing employee). So obviously, I'm really hoping that I get the position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't want to get pigeonholed as a test developer, however, because they can sometimes have a bad reputation as not being good 'production' developers (not sure why... and this could be wrong, but that's the vibe I've gotten).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd prefer my career path to end up at a senior dev/lead dev position in 5-10 years. If I'm offered** the position, is there a possibility of hurting this desired path?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;** I'm getting ahead of myself. I know. I haven't even had the interview yet. I'm anxious. Still, I interview well and I think that I have the knowledge/experience for the position.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-06T22:59:25.133" Title="Am I potentially hurting my career by taking a dev test position?" Tags="&lt;career&gt;&lt;interview&gt;&lt;career-advice&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="1" />
  <row Id="10036" PostTypeId="2" ParentId="10035" CreationDate="2010-10-06T22:38:51.493" Score="4" ViewCount="" Body="&lt;p&gt;Sounds like a good move to me - how big is the company you're going for? Are there opportunities to do some development in addition to the testing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think its good to have a different perspective, which working in test would definitely give you. I worked for a couple of years in a customer service role, and have found that really useful in talking to people / getting the business understanding, so I don't really think it can be a bad option.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FYI - I'm a pretty noob developer, and in no position of hiring people, but having a diverse experience should be seen as a good thing that you can bring to a team. &lt;/p&gt;&#xA;" OwnerUserId="4458" LastActivityDate="2010-10-06T22:38:51.493" CommentCount="2" />
  <row Id="10038" PostTypeId="2" ParentId="9991" CreationDate="2010-10-06T22:48:13.857" Score="0" ViewCount="" Body="&lt;p&gt;Play World of Warcraft (or any other video game you take an interest in).  IMHO World of Warcraft has been tuned over many years to be as much of a time-sink as possible!&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-10-06T22:48:13.857" CommentCount="2" />
  <row Id="10039" PostTypeId="2" ParentId="10035" CreationDate="2010-10-06T22:49:54.050" Score="3" ViewCount="" Body="&lt;p&gt;You will only be pigeon-holed if you allow yourself to be.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to be seen as something more than this position then you can help with open-source projects, write interesting programs using new techniques, or, on your own write something that may be of interest to the company and then demo it for them, and see if that gets you a new position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can choose how people see you, based on what you do and how well you showcase it, without being pushy or cocky about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also see about helping others you are working with, learning to be a good mentor can be very beneficial, especially when management sees that people are seeking you out.&lt;/p&gt;&#xA;" OwnerUserId="4670" LastActivityDate="2010-10-06T22:49:54.050" />
  <row Id="10040" PostTypeId="2" ParentId="9944" CreationDate="2010-10-06T22:58:26.530" Score="4" ViewCount="" Body="&lt;p&gt;It's up to the company really, as I don't think there's a legal framework to enforce a denomination or another, or at least not that I am aware of and this might vary from country to country (the use of the term engineer is actually fairly regulated in France, but there are variants that are allowed for the &quot;abusive&quot; cases).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said the general trend goes like this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;A programmer position is usually the one of a professional hired to to produce the code of a computer program. It will imply that you know how to write code, can understand an algorithm and follow specifications. However, it usually stops there in terms of responsibility.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A developer position is usually considered a super-type of the programmer position. It encompases the same responsibilities, plus the ability to design and architect a software component, and to write the technical documentation (so, that includes specifications) for it. You are able to lead others (so, programmers), but not necessarily a team (there comes the fuzz...)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;An engineer position would usually imply that you are a developer who has a specific type of a degree, some knowledge of engineering, and is capable of designing a system (as in: a combination of software components/modules that together form a whole software entity). Basically, you see a wider picture, and you are capable of designing and explaining it and separating it into smaller modules.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;All this is however arguable, and as I said, there's no legal requirement that I am aware o f in US/UK countries. That being said, in France you can only call yourself an &quot;engineer&quot; if you come from an engineering school (recognized by the Commission des Titres d'Ingenieurs or something like that). You cannot say that you have an &quot;Engineer Degree&quot;, but you can say that you have a Degree in Engineering if you have studied a discipline that falls under the portemanteau of engineering and technologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might be that some countries have a similar distinction, I just don't really know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back to the software engineer title... Once, one of my teacher told our class - and rightly so - that there's no such thing, as of today, as so-called &quot;software engineering&quot;. Because engineering something (be it a building, a vehicle, a piece of hardware...) means you are capable of envisioning its design and all the phases of its production, and to predict with accuracy the resources you will need, and thus the cost of the production.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is true of most &quot;true&quot; engineering disciplines. There are fluctuations, of course (the prices of the materials will vary over time, for instance), but there are very finite theoretical models (for design and planning) and empirical models (for pretty much keeping any of the former within accessible constraints) that allow you to predict the termination date of a project and its resource usage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The major problem with software is that it is not there yet. We want to aim for software engineering, but we're not there yet, really. Because we have a very fluid and dynamic environment, very variable constraints for projects, and still a lack of maturity in retrospect in our processes. Sure we could say we get better at it (Prove it, though. Try...), but we've only been at it since the 60s (earlier projects were actually closer to hardware-only computers, thus closer to real engineering). Whereas we've been building motored vehicles for more than a century, vehicles in general for a few millennias, and building for even more millennias (and have been pretty damn good at it actually in some part of the world, making you feel like we're ridiculous kids playing with our new flashy software toys in comparison).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We fail to predict deadlines accurately, we fail to predict costs accurately, we fail to identify and mitigate inherent and external risks efficiently and deterministically. The best we can manage to do is produce good enough guesstimates, and accommodate for some buffer, while trying our best to optimize the processes to reduce cycles and overhead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But see, that's what engineering is. And that's what, when someone talks about a &quot;software engineer&quot;, they should think of and aim for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So that seems hardly interchangeable with the simple act of programming routines, or the more advanced act of developing applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, everything is a matter of trends. Lately it's pretty common to have an horizontal dev team where everybody on the team is a Senior Software Developer (yes, capitals, because that makes us feel special, doesn't it?), without real distinction of age (fair enough, in my opinion) and not so much distinction of skills (uh-oh...) and responsibilities (now that can't be good, apart purely for PR buzz).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also sometimes just a force of habit and specific to an industry. More positions for embedded software production use titles for software engineers. Mostly because it would probably imply that you will always have to deal to a certain extent with the hardware as well in this field, so you obviously deal with other aspects of the production and of the whole &quot;system&quot; you produce. Not just the bits going nuts inside it. On the other hand of the spectrum, you don't really see the term engineer being used in financial software production positions. It's either because is a mimetic evolution of this industry from one of its predecessors (say, embedded engineering find its roots in automobile engineering, for instance), or because they just want to give more or less credit/weight to a position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And to be sure to loose everybody in the fog, you'll then find other titles mixing both (like &quot;Software Development Engineer&quot; or &quot;Software Engineer in Test&quot;!), and then other ones emphasizing even more crazy bridges with other domains (think of &quot;Software Architect&quot; and how &quot;software architecture&quot; might be a shameless theft of vocabulary). And keep them coming: Release Engineer, Change Development Manager, Build Engineer (that one goes ffaaarrrrrr out there as well). And sometimes just simply &quot;engineer&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope that helped, though it's not really an answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and that means your new company is either trying to lure you in with a new title or that they don't really care about titles, or that you really are going to have a higher-level position. The only way of knowing is to reading your job spec, talking to them and eventually give it a shot and judge for yourself. I'd hope it's the latter option and that you're happy with it (and potentially cash more in on it). ;)&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-10-06T23:05:49.170" LastActivityDate="2010-10-06T23:05:49.170" />
  <row Id="10041" PostTypeId="2" ParentId="10035" CreationDate="2010-10-06T22:59:25.133" Score="4" ViewCount="" Body="&lt;p&gt;Any position to get you in the door is a good one.  Once you get there find out who is in charge of the position you want to eventually have, and get to know them and their team.  Find out what you can do to prepare yourself, and make it known you have aspirations.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've a few times either joined a company at a lower position, and transferred into the one I wanted after a couple years, or seen others do the same thing.  For example, my first big professional programming job was at a company I started at doing technical support.  At another company a guy who was hired as an analyst was able to transfer to our development team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key is to do a great job at whatever you are doing.  You want to be the absolute best &quot;Software Development Engineer in Test&quot; they have seen.  Then make sure people know that you have high aspirations and skills beyond your position.  Find out what the internal job application requirements and process is, and apply for everything.  Make sure the people in charge of the position you are applying for know who you are, what you can do, and that you applied.  Never assume that they know.  Especially if you are working in Test to support the development department that you want to move to, it should be a great opportunity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do be prepared to pay your dues though.  It is not uncommon for companies to have rules that you must stay in a position at least a year or two before transferring internally.  &lt;/p&gt;&#xA;" OwnerUserId="433" LastActivityDate="2010-10-06T22:59:25.133" CommentCount="4" />
  <row Id="10042" PostTypeId="2" ParentId="9936" CreationDate="2010-10-06T23:01:27.560" Score="0" ViewCount="" Body="&lt;p&gt;Real world experience: I contributed some code to VNC many years ago (like 1998 or something) and my unobfuscated email address ended up in the standard &lt;code&gt;readme.txt&lt;/code&gt; that was distributed and installed with every copy of VNC. Back then (and in the following years) there were certainly some spam worms that looked through all files on the user's computer for email addresses. My address was one of those, as well as all the others listed in that file. I get a &lt;em&gt;lot&lt;/em&gt; of spam. At one point, some 20% of the total spam I got was &quot;from&quot; a forged address in that same &lt;code&gt;readme.txt&lt;/code&gt; file.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the answer is yes, releasing your email address in public software results in more spam. However, many kinds of other things also result in more spam too, so I don't think it's actually worth worrying about. I still use the same email address I've used since 1996, and rely on multiple layers of spam filters to filter out the crap.&lt;/p&gt;&#xA;" OwnerUserId="348" LastActivityDate="2010-10-06T23:01:27.560" />
  <row Id="10043" PostTypeId="2" ParentId="9944" CreationDate="2010-10-06T23:05:20.837" Score="1" ViewCount="" Body="&lt;p&gt;The title 'Software Engineer' may imply that the position is partly an analyst role, where the focus is about planning the architecture of software rather than doing the grunt work of programming it.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-10-06T23:05:20.837" />
  <row Id="10044" PostTypeId="2" ParentId="9539" CreationDate="2010-10-06T23:05:59.390" Score="0" ViewCount="" Body="&lt;p&gt;Thirty years from now, computers will program humans.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See, for example, Professor Nick Bostrom's &lt;a href=&quot;http://www.simulation-argument.com/&quot; rel=&quot;nofollow&quot;&gt;Simulation Argument&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;Sentient programs. They can move&#xA;&lt;br&gt;in and out of any software still&#xA;&lt;br&gt;hardwired to their system. That&#xA;&lt;br&gt;means that anyone that we haven't&#xA;&lt;br&gt;unplugged is potentially an Agent.&#xA;&lt;br&gt;Inside the Matrix, they are&#xA;&lt;br&gt;everyone and they are no one.&#xA;&lt;br&gt;&lt;i&gt;Morpheus&lt;/i&gt;, &lt;a href=&quot;http://www.dailyscript.com/scripts/the_matrix.pdf&quot; rel=&quot;nofollow&quot;&gt;&quot;The Matrix&quot;&lt;/a&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-06T23:05:59.390" />
  <row Id="10045" PostTypeId="2" ParentId="10021" CreationDate="2010-10-06T23:10:46.007" Score="2" ViewCount="" Body="&lt;p&gt;You're able to do lots more with way less.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-10-06T23:10:46.007" CommentCount="1" />
  <row Id="10046" PostTypeId="2" ParentId="9675" CreationDate="2010-10-06T23:14:12.543" Score="5" ViewCount="" Body="&lt;p&gt;With .NET, &lt;a href=&quot;http://mono-project.com/Main_Page&quot; rel=&quot;nofollow&quot;&gt;Mono&lt;/a&gt;, &lt;a href=&quot;http://www.mono-project.com/GtkSharp&quot; rel=&quot;nofollow&quot;&gt;GTK#&lt;/a&gt;, &lt;a href=&quot;http://monotouch.net/&quot; rel=&quot;nofollow&quot;&gt;MonoTouch&lt;/a&gt; and &lt;a href=&quot;http://mono-android.net/&quot; rel=&quot;nofollow&quot;&gt;Mono for Android&lt;/a&gt; you can reach the large majority of platforms with any .NET language and have a native looking UI on each.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;.NET will get you&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ASP.NET for the Web&lt;/li&gt;&#xA;&lt;li&gt;Silverlight for the Web on Windows and Mac (Moonlight from Mono gets you on Linux too!)&lt;/li&gt;&#xA;&lt;li&gt;Silverlight for Windows Phone 7&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Mono with GTK# will get you&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mac OSX&lt;/li&gt;&#xA;&lt;li&gt;Linux&lt;/li&gt;&#xA;&lt;li&gt;Others perhaps, but less native looking.  I hear some have gotten on the Wii with Mono . . .&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;MonoTouch for the iPhone, iPad, etc.&lt;/li&gt;&#xA;&lt;li&gt;MonoDroid for the Android&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://na.blackberry.com/eng/developers/started/develop/dotnet.jsp&quot; rel=&quot;nofollow&quot;&gt;BlackBerry .NET&lt;/a&gt; - first I heard of it, but they say .NET on the BlackBerry, I am assuming with QT.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Can't think of any other major platforms you are missing there.  You?  Of course this points out frameworks that you can use to target all these platforms.  I'll let you choose the language.  C#, Oxygene or VB.NET are the most popular on .NET.  Oxygene (included in Delphi Prism) has the added benefit of being partially compatible with Delphi native for native Windows development, but if you want to use IronRuby or F# we won't stop you.&lt;/p&gt;&#xA;" OwnerUserId="433" LastEditorUserId="433" LastEditorDisplayName="" LastEditDate="2011-04-28T18:48:53.340" LastActivityDate="2011-04-28T18:48:53.340" CommentCount="5" />
  <row Id="10047" PostTypeId="1" AcceptedAnswerId="10086" CreationDate="2010-10-06T23:15:59.200" Score="4" ViewCount="158" Body="&lt;p&gt;hey guys&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been a developer for over 6 years, mainly working in the web context, and generally distributed applications, services, and also front-facing apps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got into programming originally through Interactive Design studies back in university, but then moved away from that as I'm most definitely not a graphic designer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I really have a passion for visual arts, visual design, UI design, and user experience. When I say UI design, I mean more toward the Information Architecture side of things, as opposed to &quot;graphic design&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that in mind, how would a programmer such as myself make a career move into this user experience, UI area?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;would I have to go back to school (I really don't want to do this)&lt;/li&gt;&#xA;&lt;li&gt;do I just throw myself into the deep end and apply for jobs&lt;/li&gt;&#xA;&lt;li&gt;can I leverage the skills and experience I have as a software developer to help get work.&lt;/li&gt;&#xA;&lt;li&gt;What would a portfolio for a UI/User experience guy look like?&lt;/li&gt;&#xA;&lt;li&gt;What are employers looking for when they look for this kind of position.&lt;/li&gt;&#xA;&lt;li&gt;would building some UI centric apps/wireframes in my own time help?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;cheers!&lt;/p&gt;&#xA;" OwnerUserId="4696" LastActivityDate="2010-10-07T07:14:21.883" Title="As a programmer, how do I move into User Experience Design?" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="1" />
  <row Id="10048" PostTypeId="2" ParentId="9965" CreationDate="2010-10-06T23:21:49.300" Score="4" ViewCount="" Body="&lt;p&gt;I think for statically-typed lanaguages like C# and Java, it doesn't actually add any value. Because in most cases, you've got an IDE that'll auto-correct case mismatches for you anyway, so at the end of the day, if I type in &quot;VAriable&quot; by accident, my IDE will auto-correct that to &quot;Variable&quot; for me. Add to that the &lt;code&gt;MyClass myClass;&lt;/code&gt; style conventions and you can see that case-sensitivity is not necessarily a bad thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For dynamically-typed languages, there might be more of an argument, since it's harder for an IDE to guess an autocorrection, but in the case of dynamically-typed languages, you've already got so much more to worry about (in terms of typos) that using a consistent casing convention isn't going to add that much more burden.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So yes, while there's no real reason languages could &lt;em&gt;not&lt;/em&gt; be case-insensitive, there's also no real reason why they &lt;em&gt;should&lt;/em&gt; be either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That article from Scott Hanselman about &quot;SignOn&quot; vs &quot;Signon&quot; was about string comparisons, and nothing to do with programming languages. I agree that strings that &lt;em&gt;users type in&lt;/em&gt; should always compared case-insensitively, but I think that's a different ballgame to identifiers in a programming language.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-06T23:21:49.300" CommentCount="2" />
  <row Id="10049" PostTypeId="2" ParentId="9539" CreationDate="2010-10-06T23:23:36.643" Score="0" ViewCount="" Body="&lt;p&gt;Programming may be much the same as it is now; we will still have to describe the problem to be solved in great detail.  I can't imagine that a tool or language would be able to replace the work that programmers do.  Also, programming languages will most likely retain much of their complexity.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-10-06T23:23:36.643" />
  <row Id="10050" PostTypeId="2" ParentId="9964" CreationDate="2010-10-06T23:29:03.963" Score="17" ViewCount="" Body="&lt;p&gt;&lt;em&gt;The license is irrelevant&lt;/em&gt; (in relation to your decision to include it on your resume). Don't mention GPL in your resume, but &lt;strong&gt;do list&lt;/strong&gt; the projects and your contributions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about the argument for a second.  Instead, lets say you worked for Oracle or any other large software company.  Would you hesitate to mention that you made significant contributions to their product?  Of course not.  Naturally, if you were to take any of the code you wrote for a previous employer and include it in the project you were working on for your new employer then you would certainly get a letter from the lawyers of your previous employer.  (Assuming you were discovered, but the same argument is true for including GPL code.)  That my friends is illegal, and more of an intellectual property violation than including GPL code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;viral&quot; (as &lt;a href=&quot;http://programmers.stackexchange.com/questions/9964/should-i-include-gpld-os-projects-on-my-resume/9976#9976&quot;&gt;Mason&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Steve_Ballmer#Free_and_open_source_software&quot; rel=&quot;nofollow&quot;&gt;Steve Ballmer&lt;/a&gt; call it) nature of the GPL only applies to the code, not the software developer.  If you write an &quot;if&quot; statement just like the &quot;if&quot; statement you wrote on a GPL project that doesn't make the new project also GPL. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hopefully the software company you are working for does not expect you to &lt;strong&gt;&lt;em&gt;steal&lt;/em&gt;&lt;/strong&gt; source code from previous projects or employers for the purposes of them reselling it.  Instead they should be looking for your experience and how you can use that experience to make their products better.  If that experience was gained on a proprietary licensed project, or a GPL licensed project is irrelevant.  &lt;/p&gt;&#xA;" OwnerUserId="433" LastEditorUserId="433" LastEditorDisplayName="" LastEditDate="2010-12-12T11:00:02.603" LastActivityDate="2010-12-12T11:00:02.603" CommentCount="6" />
  <row Id="10051" PostTypeId="2" ParentId="9813" CreationDate="2010-10-06T23:37:16.717" Score="3" ViewCount="" Body="&lt;p&gt;There are 24 hours in a day, every day.  You need to decide what you want to do, and you need to prioritize these things versus the other things that you're doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where is the time going?  Answering this question may be very sobering.  While it may be hard to say you want to cut the hours you spend with loved ones, it may well be here that changes need to be made if doing some &quot;work related&quot; study is important enough to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do not find that this study is more important than the other things, though, then that's ok (inasmuch as it does not affect your employment).  If you value the time you spend doing whatever you do then that's great.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I struggle with this, too, though.  Many nights I do &quot;nothing,&quot; when in fact I could be writing software, blog posts, books.  I struggle with this to be sure, but it's not about finding the time as much as it is putting the things into that time that matter most.&lt;/p&gt;&#xA;" OwnerUserId="2129" LastActivityDate="2010-10-06T23:37:16.717" />
  <row Id="10052" PostTypeId="2" ParentId="2909" CreationDate="2010-10-06T23:38:16.633" Score="2" ViewCount="" Body="&lt;p&gt;Get a &lt;strong&gt;workplace desk assessment&lt;/strong&gt;, or something similar in your country/language. Have someone come over to visit you at your working environment to assess your needs such as:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Desk height&lt;/li&gt;&#xA;&lt;li&gt;Monitor height&lt;/li&gt;&#xA;&lt;li&gt;Chair support and adjustability&lt;/li&gt;&#xA;&lt;li&gt;Whether you need an angled footrest.&lt;/li&gt;&#xA;&lt;li&gt;Your keyboard - is it the right type for your posture and usage.&lt;/li&gt;&#xA;&lt;li&gt;Your mouse - is it the right type for your posture and usage.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Many companies will organise this for you - it is in their interests as the assessment is ~ £80 but lost days due to work-related illnesses really cost a lot, and some of those illnesses can become chronic and lead to long-term sickness or, more commonly nowadays, law suits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have previously had serious RSI problems when doing a lot of work which requires CTRL+this and CTRL+that, either copy-pasting information from one form to another or similar left-ring-finger to left-index-finger rocking action which put strain on my wrist. After a while, I removed the left CTRL, SHIFT and ALT keys, forcing me to use the ones on the right hand side. This helped a lot but a better move was to find a way to automate the repetitive job I was doing and moving to a Microsoft Natural Keyboard, which gave me more room for my big hands.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When doing a lot of mouse work, I developed some serious aches and pains in my right hand and wrist, so I did some research and found the Evoluent Vertical Mouse. I convinced my workplace to buy a couple of them (one for desk, one for 'home working') and this has been an excellent purchase. I think it came with some optional-install software to remind you to take a break when you'd clocked up several &quot;mouse miles&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It wasn't RSI, but last year I developed a problem whereby my left arm and hand would become quite numb, pretty much all of the time. My dexterity dropped as I couldn't feel what I was doing and my productivity and attendance took a nose-dive as the numbness developed into serious pain. It got so bad I went to see the doctor who spent £2000 putting me through a serious of tests including MRI scanning and electro-conductivity testing. A prescription of a course of physiotherapy soon identified a knot in the muscles on the left of my neck. While dicussing the issue with the physio, she identified that the problem was I kept twisting my head 30 degrees to the left and 15 degrees upwards. She deduced that I had two monitors at slightly different heights and angles, which I did and hadn't realised how bad that could be. After physio, and a workplace assessment to make sure no other issues, everything is fine now.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-06T23:38:16.633" />
  <row Id="10053" PostTypeId="1" AcceptedAnswerId="10054" CreationDate="2010-10-06T23:45:30.477" Score="4" ViewCount="397" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/1006/how-do-you-motivate-yourself-to-program-when-youd-really-rather-be-doing-someth&quot;&gt;How do you motivate yourself to program (when you&amp;#39;d really rather be doing something else)?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;When you're stuck, can't solve a problem and are just staring through a screen, what's the best way for you to refocus?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a big fan of having a game of foosball, means that I do something active, or just go and cleanup in the kitchen - do you find getting up and walking around helpful, or do you just watch some videos on youtube?&lt;/p&gt;&#xA;" OwnerUserId="4458" LastActivityDate="2010-10-16T00:34:26.893" ClosedDate="2010-10-19T05:06:43.877" Title="How do you get your focus back?" Tags="&lt;distractions&gt;&lt;focus&gt;" AnswerCount="16" CommentCount="3" FavoriteCount="1" />
  <row Id="10054" PostTypeId="2" ParentId="10053" CreationDate="2010-10-06T23:48:30.063" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A walk outside (in the summer) helps me the most.&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anything that gets the blood pumping.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-06T23:48:30.063" CommentCount="3" />
  <row Id="10055" PostTypeId="2" ParentId="9936" CreationDate="2010-10-06T23:50:54.583" Score="0" ViewCount="" Body="&lt;p&gt;Obfuscating your email address is great if you are 100% all the time and the spam bots haven't figured out how to parse your particular method yet.  If you mess up once, or the spam bots figure out how to parse it then you can't put the genii back in the bottle.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So live life on the edge, post your email address with little regard for the spam that is sure to follow: jim@mckeeth.org&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Chances are they all have your email address anyway, and if they don't they are bound to start guessing.&lt;/p&gt;&#xA;" OwnerUserId="433" LastActivityDate="2010-10-06T23:50:54.583" />
  <row Id="10056" PostTypeId="2" ParentId="10053" CreationDate="2010-10-06T23:57:04.693" Score="1" ViewCount="" Body="&lt;p&gt;Sometimes this is where I ask for help.  If I'm stuck and work on a team of good people, shouldn't someone be able to lend me a hand?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes exercise is good, sometimes playing a video game works, sometimes checking facebook can work, and sometimes talking to someone can help.  I tend to use a mix most of the time.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-06T23:57:04.693" />
  <row Id="10057" PostTypeId="2" ParentId="10053" CreationDate="2010-10-07T00:17:56.727" Score="1" ViewCount="" Body="&lt;p&gt;Take a break and get some caffeine. &lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-10-07T00:17:56.727" CommentCount="1" />
  <row Id="10058" PostTypeId="2" ParentId="9062" CreationDate="2010-10-07T00:23:32.227" Score="4" ViewCount="" Body="&lt;p&gt;Reboot is the answer.&lt;/p&gt;&#xA;" OwnerUserId="193" LastActivityDate="2010-10-07T00:23:32.227" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="5" />
  <row Id="10059" PostTypeId="2" ParentId="10053" CreationDate="2010-10-07T00:27:22.363" Score="1" ViewCount="" Body="&lt;p&gt;I know coffee equals to super awesome code monkey like coding powers for many of us. But what helps me is to take a deep breath and telling myself to refocus and keep going. Taking a break distracts me.&lt;/p&gt;&#xA;" OwnerUserId="1345" LastActivityDate="2010-10-07T00:27:22.363" CommentCount="1" />
  <row Id="10060" PostTypeId="2" ParentId="10053" CreationDate="2010-10-07T00:50:22.990" Score="2" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;this.focus();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="348" LastActivityDate="2010-10-07T00:50:22.990" CommentCount="5" />
  <row Id="10061" PostTypeId="1" CreationDate="2010-10-07T00:51:32.300" Score="6" ViewCount="253" Body="&lt;p&gt;Did the high price or non-permissive license ever forced you to switch to inferior alternate solution?&lt;/p&gt;&#xA;" OwnerUserId="193" LastActivityDate="2010-10-08T01:33:02.907" Title="Which tools or libraries you would love to use but not using because of pricing or licensing issues?" Tags="&lt;software&gt;" AnswerCount="13" />
  <row Id="10062" PostTypeId="2" ParentId="9062" CreationDate="2010-10-07T01:07:05.383" Score="85" ViewCount="" Body="&lt;p&gt;If I don't save the file after typing each line of code, the OS/IDE will crash &lt;em&gt;on purpose&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3682" LastActivityDate="2010-10-07T01:07:05.383" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="9" />
  <row Id="10063" PostTypeId="2" ParentId="10061" CreationDate="2010-10-07T01:15:42.460" Score="2" ViewCount="" Body="&lt;p&gt;On a recent project, I would have loved to use the Syncfusion Enterprise Suite of components (http://www.syncfusion.com), but $1,700 was out of the question for my freelance budget.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It bugs me that a TechNet subscription is ~$300/year and provides access to just about every piece of Microsoft software that exists (except Visual Studio,) and an MSDN subscription (with Visual Studio) is ~$10,000.&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-10-07T01:15:42.460" CommentCount="1" />
  <row Id="10064" PostTypeId="2" ParentId="10061" CreationDate="2010-10-07T01:24:17.770" Score="12" ViewCount="" Body="&lt;h2&gt;Photoshop&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;It is hands down the best image editor. Probably the most pirated too! For what it does the high price tag is understandable, however lowering (or removing) it would make it much more accessible.&lt;/p&gt;&#xA;" OwnerUserId="935" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-10-07T02:09:37.670" LastActivityDate="2010-10-07T02:09:37.670" CommentCount="2" />
  <row Id="10065" PostTypeId="2" ParentId="2909" CreationDate="2010-10-07T01:34:45.050" Score="3" ViewCount="" Body="&lt;p&gt;Mine appeared about a year ago and included both arm pains in the Ulnaris muscle and pains in the actual fingers and their surroundings. It started rather abruptly and was partly an overuse problem (finger pains), and partly the result of a terrible non-ergonomic setup: chair with no lumbar support, table too high, laptop screen too low, laptop keyboard too small (muscle pains). Another reason was probably stress, since my idea of forcing myself to be productive was to constantly worry about school and deadlines. Stress causes your muscles to tens up, which adds to the overall strain, and I read that there is also some chemical involved that is released to the blood stream when you're pressured/angry, and in large doses can cause muscle damage. &#xA;I was familiar with the concept of RSI, which was why I was able to embark on a hardcore panic trip when I realized what was happening, but I was working under the assumption that this is something that only happens to old people. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did a bunch of things to help myself through this problem, which included both changes to the work environment and medical intervention. &lt;/p&gt;&#xA;&#xA;&lt;h3&gt;The work environment/setup changes included the following:&lt;/h3&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Bought an ergonomic chair. This was also how I learned that selecting a chair is not trivial. I didn't test it enough in the store and essentially made the mistake of fitting myself to the chair and then deciding that it was right for me, when it really wasn't. I mention some of what I learned from this experience in my answer to &lt;a href=&quot;http://programmers.stackexchange.com/questions/4865/do-you-follow-ergonomic-recommendations-when-coding/4931#4931&quot;&gt;this&lt;/a&gt; question. For a while after making the purchase I really hated the chair, until eventually I figured out that I can use a pillow to fix its deficiencies. &lt;/li&gt;&#xA;&lt;li&gt;Bought a small table that had a keyboard tray at the appropriate height for me. The appropriate height turned out to be really low (about a meter high), which is how I learned that just about any table I come across in real life is too high for me (I'm a bit short for a guy). I try to work from home as much as possible and if I have to work in the university's computer room I usually place my laptop on my lap. &lt;/li&gt;&#xA;&lt;li&gt;When I moved to a new apartment I discovered a miniature ironing board in the closet. I put it on the new table and now use it to raise the height of my laptop screen to eye level. &lt;/li&gt;&#xA;&lt;li&gt;Bought the Microsoft Natural Ergonomics 7000 set. I was really looking forward to working with it but I couldn't get used to the mouse and the keyboard itself was too big and required more pressure on the keys than I was used to from my laptop. Eventually I bought the Microsoft Comfort Curve 2000 to serve as a cheap ergonomic keyboard in my mother's house (which I return to on the weekends) and discovered that its flatness and light keys are a much better fit for me than the huge Natural Ergonomics keyboard, and bought another one to replace it. &lt;/li&gt;&#xA;&lt;li&gt;I made myself learn proper touch typing so that I could work without looking down at the keyboard. At first it was uncomfortable because it seemed to require more muscle strength than hunt and peck, and my pinky fingers were quite traumatized at the time, but I compensated by using the weight of my fingers to reduce the amount of force I needed to press the buttons, and over time my muscle strength actually improved (I even gained muscle mass in the arms). &lt;/li&gt;&#xA;&lt;li&gt;My problem with mice was that it was uncomfortable to hold them in the standard way because it put pressure on the area at the base of the fingers, which was quite tender at the time. To be able to hold the mouse at an angle and thus alleviate the pressure I switched the left and right mouse buttons so that I could hold my mouse from the side (picture &lt;a href=&quot;http://programmers.stackexchange.com/questions/913/what-is-your-take-on-ergonomic-mice/915#915&quot;&gt;here&lt;/a&gt;). I also switched the mouse click settings in Windows to hover==select, click==double-click, to eliminate the strain of double clicking. &lt;/li&gt;&#xA;&lt;li&gt;To reduce the mouse use I learned some Firefox hotkeys and installed the Speed Dial addon. Most of my site navigation happens through ctrl+N). &lt;/li&gt;&#xA;&lt;li&gt;I tried the Microsoft speech recognition software as a way to dictate blog posts, but abandoned it after a while. It's pretty good, but we need more than 80% accuracy for it to be practical. &lt;/li&gt;&#xA;&lt;li&gt;I installed WorkRave to remind me to take pauses. At first I let it be quite disruptive, and set it for a 30 seconds break every 5 minutes, but I relaxed this over time. Today I actually don't use it anymore. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h3&gt;Some lifestyle changes I made were:&lt;/h3&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Took an overall break from typing. It happened in time for the summer break so it was pretty feasible to do this. &lt;/li&gt;&#xA;&lt;li&gt;Forced myself to relax. Back then, every time I got angry I started feeling pains in my arms due to my muscles tensing up, so it was obvious to me that this had to stop. It's less of a problem now, but still leads to a bit of discomfort so overall I try to get over my &quot;someone's wrong on the internet&quot;-esque impulses. &lt;/li&gt;&#xA;&lt;li&gt;Started to exercise. When my lease was done I moved into an apartment that was a 30 minute walk distance from my university to force myself into a daily hour of walking. Signed up to a Yoga class and swimming lessons. Stopped taking the elevator and wearing my back pack &quot;on the side&quot;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As for getting medical help that was a bit problematic. At first my family doctor didn't think much of the pains and tried to treat it first with a dietary supplement of vitamin E and calcium (I think), then gave me anti inflammatory drugs which only alleviated the symptoms. Eventually I was sent to an orthopedist who gave me a cream which was again mostly treating the symptoms, and sent me to physiotherapy, where I was given treatment with waves. The idea behind this treatment was that the waves heat the injured area from the inside in a way that heating from external sources can't do. The heating alleviates the pain and increases blood flow to the area, which encourage healing. This was actually one of the things that helped me the most. I literally felt myself getting better after a few treatments, and after they were over I continued to &quot;practice&quot; it by placing my hand under hot running water, specifically at the kitchen sink (there's something about the weight of the stream and its speed that encourages blood flow in a way that a shower stream doesn't). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall the things that helped me the most were the physiotherapy and the added exercise (it's amazing how much exercise helps. Nowdays when I skip my daily walks I immediately start feeling various pains in my back and arms). Learning to relax and taking a break come in second. In the long term the changes to the work environment and the infrequent nature of working on programming assignment are what kept me from reverting to the bad state I was in, and to actually improve my muscle strength. Occasionally taking some anti inflammatory drugs and using hot running water are my current methods for dealing with pains when they do arise. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-10-07T01:34:45.050" />
  <row Id="10066" PostTypeId="2" ParentId="10053" CreationDate="2010-10-07T01:53:43.503" Score="0" ViewCount="" Body="&lt;p&gt;A nice game of &lt;a href=&quot;http://www.nethack.org/&quot; rel=&quot;nofollow&quot;&gt;Nethack&lt;/a&gt; will serve to distract me enough so that after a few minutes I can come back to tackle the problem with a fresh mind.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-07T01:53:43.503" />
  <row Id="10067" PostTypeId="2" ParentId="10061" CreationDate="2010-10-07T02:05:58.043" Score="4" ViewCount="" Body="&lt;p&gt;In the past I would have said Trolltech's Qt but now days this no longer applies with its new licensing. Now days I would probably do a new software GUI project in .NET with WPF.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Qt's license was very expensive for a startup, which is a shame, I would have based my whole past companies off of it had the licensing been different.  It was too steep for a startup with no funds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now days Qt is licensed under LGPL, but overall it missed its opportunity of having me and I'm sure thousands of others using it.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-10-07T02:05:58.043" />
  <row Id="10068" PostTypeId="2" ParentId="9965" CreationDate="2010-10-07T02:23:29.507" Score="1" ViewCount="" Body="&lt;p&gt;When a language is case-sensitive, I take advantage of it to reproduce conventional case usage in mathematics and science. Here is a list (by no means exhaustive) of some case conventions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&#xA;&lt;li&gt;In probability theory, lower case &lt;code&gt;f&lt;/code&gt; usually represents a probability density function (pdf), while upper case &lt;code&gt;F&lt;/code&gt; represents the corresponding cumulative distribution function (cdf).&#xA;&#xA;&lt;li&gt;Also in probability theory, upper case letters denote random variables &lt;code&gt;X&lt;/code&gt;, and the corresponding lower case letters denote their realizations &lt;code&gt;x&lt;/code&gt;, as in $Pr[X=x] \leq  0.05$.&#xA;&#xA;&lt;li&gt;In linear algebra, upper case letters are generally used to refer to matrices while lower case letters generally are used to refer to numbers, e.g., $A=[a_{ij}]$.&#xA;&#xA;&lt;li&gt;Unit symbols are written in lower case letters (e.g., m for meter) except for liter (L) and those units derived from the name of a person (W for Watt, Pa for Pascal, N for Newton, and so on).&#xA;&#xA;&lt;li&gt;Symbols of prefixes that mean a million or more are capitalized (M for mega (millions)), and those less than a million are lower case (m for milli (thousandths)).&#xA;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-07T02:23:29.507" CommentCount="1" />
  <row Id="10069" PostTypeId="2" ParentId="2757" CreationDate="2010-10-07T02:36:11.660" Score="1" ViewCount="" Body="&lt;p&gt;At work (where I spend most of time): One 19'' monitor of 1280x1024. I've never worked with more that one monitor. Cheap companies I guess... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But my most important concern is having only 2gb of memory and an antivirus that does a lot of I/O. Eclipse + JBoss for local testing + slow computer = fail.&lt;/p&gt;&#xA;" OwnerUserId="4701" LastActivityDate="2010-10-07T02:36:11.660" CommunityOwnedDate="2011-01-26T13:55:26.910" CommentCount="1" />
  <row Id="10070" PostTypeId="2" ParentId="2935" CreationDate="2010-10-07T03:20:46.750" Score="1" ViewCount="" Body="&lt;p&gt;I started off in electronics, doing very well with that in high school.  This was back when the very first 8-bit microprocessors were coming out.  I was fascinated with numerical computations, for example back in 5th or 6th grade I wanted to know how logarithms were computed.  So in high school, with Motorola 6800 avaialble, I got into opcodes, algorithms for math, physics simulations and making LEDs blink.   Great stuff!  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In college I majored in physics, and went on to grad school.  I noticed I didn't really have the kind of mind it takes to do great science,  but was always getting into the analog and digital electronics, data acquisition, calibration, and all that stuff necessary to make the experimental science happen.  At the point where I could have started a thesis, I left instead to go into software development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In retrospect, that was a career mistake, as I also don't have the kind of mind it takes to be a decent programmer.  It's far too intellectual, compared to music or art or electronics or experimental physics where there's intellect combined with hands-on activity.   I get by adequately though, and solve tricky technical problems as long as I stay away from routine mainstream software development, and stick to my areas of expertise in physics, math, image processing, and making LEDs blink.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there's any advantage I have over most programmers that can be attributed to my background, it's that I easily understand things at the CPU level.  Things like registers, pointers, bit representations of numbers or pixels, file formats at the byte level, studying stack backtraces to deduce why a piece of software crashed.  In contrast, I don't sufficiently grok the heavy OO techniques, &quot;Modern C++&quot; and most computer sciency stuff, silly functional languages, or anything to do with networking, sysadmin, or enterprise systems.  I'll take photographs of people working on those things, but it's not my cup of tea!   (Been fired twice from sys-admin type jobs!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why do I stay in this career area? The world's demands are mostly for those skills I'm weak at, and there's very little call for the fun low-level understanding, but I gotta pay the rent.  I push hard to do work involving graphics, image processing, physics or electronics, to stay sane.&lt;/p&gt;&#xA;" OwnerUserId="4280" LastActivityDate="2010-10-07T03:20:46.750" CommentCount="3" />
  <row Id="10071" PostTypeId="1" CreationDate="2010-10-07T03:23:55.853" Score="0" ViewCount="258" Body="&lt;p&gt;I have start a project to redefine keyboard layout for coders.under GPLv3&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most popular layout is qwerty, then dvorak, then colemak. but qwerty and dvorak is design for typewriter, and colemak is design for easy to learn. but this layout is design for coders.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;5~  3!  1@  0$  29  48  67  #`  *^  y   w    x   q&#xA;Tab  (\  c   d   .&amp;lt;  ,&amp;gt;  k   =+  u   l   )|  -&amp;amp;   _%  z&#xA;Esc   s   e   r   a   g   h   t   i   o   n   &quot;'&#xA;Shift  ;:  {[  }]  p   j   f   m   b  v   /?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;the full layout will contains altgr support, I think these unicode should be enhaced.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; ¹ ² ³ £ ¥  ½ ¼ ¾ ± × ÷ © ® «  »  ß µ ¶ § æ ª ° · ¬  &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;this layout is just start, so I need suggestions and users and feedbacks. Before this let me descript why this layout.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;letter frequency. base on statistic, not experience. coverd  java/python/c/php/js/ruby code&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;http ://bitbucket.org/guilin/glhk/src/263ad8154c36/char1_stat.out&lt;/p&gt;&#xA;&#xA;&lt;p&gt;http ://bitbucket.org/guilin/glhk/src/263ad8154c36/char2_stat.out&lt;/p&gt;&#xA;&#xA;&lt;p&gt;http ://bitbucket.org/guilin/glhk/src/263ad8154c36/char3_stat.out&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the order is :&#xA;e t i n a s r o l d c p u m f h . &quot; _ g , b ) ( = - v / y &gt; ; '&#xA;0 w : &amp;lt; x 1 k # * 2 { } $ [ ] 3 4 \ z j 5 6 q 8 9 | + 7 &amp;amp; ! @ % ?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;less wrist movement. et  W E I O position on qwerty is better then G H, every postion has been scored and then put the key on the right position.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;shift position. &quot; is better than ', some languages can use either ' or &quot;, some language use &quot; strict. { } is use frequently than [ ], so I move { } &quot; down and [ ] ' at shift position. ; : is both offen, so I put it near the shift like dvorak. - _ is also very offen, I seprate them to base position.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;number frequency. 0 is most frequently, so I put it at the postion of 3, 9 8 7 is use rarely, I put them at shift position. so we can get more position for symbols.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;y w x q z.  these key use rarely, and not like symbols need press shift offen. you know the feeling when you type |.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;hjkl offen map to left down up right,  but the position at qwerty is not match their low frequency. so j,k is at b and y position, which is down and up relative. but not a position easy to press.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;caps_lock, is rarely use, many people replace it with escape.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;map right alt as altgr.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;the project location is at &lt;a href=&quot;http://bitbucket.org/guilin/glhk&quot; rel=&quot;nofollow&quot;&gt;http://bitbucket.org/guilin/glhk&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;to use it, make sure you are now using qwerty layout, then:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;hg clone https://guilin@bitbucket.org/guilin/glhk&#xA;cd glhk&#xA;xmodmap xmodmap/glhk_xmodmap&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;there is also a python script to generate xmodmap, you can take a look at xmodmap/glhk_xmodmap.txt, just write layout in text like top section. then you can generate your xmodmap.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;So, that's all, any suggestion is welcome.&lt;/h1&gt;&#xA;" OwnerUserId="4704" LastActivityDate="2010-10-07T03:23:55.853" ClosedDate="2010-10-07T03:48:38.817" Title="let's design a good keyboard layout for programmers." Tags="&lt;linux&gt;&lt;keyboard&gt;&lt;keyboard-layout&gt;" CommentCount="3" FavoriteCount="1" />
  <row Id="10072" PostTypeId="2" ParentId="9991" CreationDate="2010-10-07T03:44:49.783" Score="9" ViewCount="" Body="&lt;p&gt;The mental state you're describing sounds like &lt;a href=&quot;http://en.wikipedia.org/wiki/Flow_%28psychology%29&quot; rel=&quot;nofollow&quot;&gt;Flow&lt;/a&gt;, a phenomenon studied extensively by the Hungarian Psychologist &lt;a href=&quot;http://en.wikipedia.org/wiki/Mih%C3%A1ly_Cs%C3%ADkszentmih%C3%A1lyi&quot; rel=&quot;nofollow&quot;&gt;Mihaly Csikszentmihalyi&lt;/a&gt;. Briefly, its main characteristics are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Clear goals&#xA;&lt;li&gt;High degree of concentration on a limited field of attention&#xA;&lt;li&gt;Loss of self-consciousness&#xA;&lt;li&gt;Distorted sense of time&#xA;&lt;li&gt;A sense of personal control over the situation or activity.&#xA;&lt;li&gt;The activity is intrinsically rewarding, so there is an effortlessness of action.&#xA;&lt;li&gt;A lack of awareness of bodily needs (like hunger or fatigue)&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Computer programmers seem to be better able to achieve Flow, and it has been hypothesized that people with an &lt;a href=&quot;http://en.wikipedia.org/wiki/Autotelic&quot; rel=&quot;nofollow&quot;&gt;autotelic&lt;/a&gt; personality are also better able to achieve Flow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Flow is generally considered a &lt;em&gt;positive&lt;/em&gt; experience correlated with maximal productivity. In his book &lt;i&gt;Emotional Intelligence&lt;/i&gt;, the psychologist Daniel Goleman wrote, &quot;The hallmark of flow is a feeling of spontaneous joy, even rapture, while performing a task.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, given all that, why on earth do you want to stifle it? My advice would be to savor it and foster it as much as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, given that you want to extirpate Flow, here are a couple of ideas:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Boredom and anxiety block flow. So cultivating these mental states might work. But I highly recommend against it.&#xA;&lt;li&gt;There are a few conditions that make flow possible (clear goals, balance between your skill level and the level of the challenge, and the task you're working on must have immediate feedback). Getting rid of any one of these conditions may also get rid of Flow.&#xA;&lt;li&gt;In my personal experience, Flow decreases in frequency and intensity with age. So you may just want to &quot;wait it out.&quot;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-07T03:44:49.783" CommentCount="3" />
  <row Id="10073" PostTypeId="2" ParentId="9991" CreationDate="2010-10-07T04:54:19.077" Score="0" ViewCount="" Body="&lt;p&gt;It's clear that what's bothering you is having to wake up early in the morning and NOT staying up to the wee-hours of the night, nor missing lunch. Talk to your boss, wife, client, or whomever, and try to get some hours that respect your workaholic obsessive work binges. Assuming that you program effectively in those moments, who would want you to be balanced and &quot;healthy&quot; (big quotes around that: as if boring cycles are healthy)?&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-10-07T04:54:19.077" CommentCount="7" />
  <row Id="10074" PostTypeId="1" CreationDate="2010-10-07T04:57:02.550" Score="3" ViewCount="273" Body="&lt;p&gt;I'm search a suitable component for CMS rich text editor.&#xA;I've taken a look at telerik RadEditor, componentOne's  Rich text editor. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It needs to flexible enough to handle the annoying pasting from word crap and applying CSS styles. At moment we're using InnovaStudio WYSIWYG Editor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is everyone's experience with asp.net rich text editors? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Much appreciated.  &lt;/p&gt;&#xA;" OwnerUserId="4219" LastActivityDate="2010-10-07T07:48:33.537" Title="TextEditor/ html editor for .net recommendations" Tags="&lt;.net&gt;&lt;asp.net&gt;" AnswerCount="3" />
  <row Id="10075" PostTypeId="2" ParentId="10021" CreationDate="2010-10-07T05:03:07.230" Score="0" ViewCount="" Body="&lt;p&gt;This was written in regard to natural languages, but I think it is appropriate to programming languages as well:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;A belief that some languages are intrinsically superior to others is widespread, but it has no basis in linguistic fact. Some languages are of course more useful or prestigious than others, at a particular period of history, but this is due to the preeminence of the speakers at that time, and not to any inherent linguistic characteristics.&#xA;&lt;br&gt;--David Crystal (ed.). The Cambridge Encyclopedia of Language 2/e (1997). p.7&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&quot;Power&quot; simply isn't attributable to one language over another. It would be silly to say &quot;Chinese is a more powerful language than Korean.&quot; Likewise, it is silly to say &quot;APL is a more powerful language than COBOL.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There have been several attempts to equate linguistic power with some objective measure. I believe these attempts fail:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It may be easier to get a job in the US if you speak American English than say Maori. Likewise, its no doubt easier to get a job programming Java or C, rather than LISP or J. But this economic advantage certainly doesn't reflect some kind of innate power of the language. Its about the power of speakers of the language.&#xA;&lt;li&gt;&quot;Hi&quot; isn't better than &quot;ni hao&quot; or &quot;shalom&quot; because its shorter. Similarly, while a function may be expressed more succinctly in APL than COBOL, this too doesn't reflect some kind of innate power of the language.&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;My opinion is that discussions of &quot;the power of one language over another&quot; are veiled expressions of the speaker's feelings of superiority over some other group. In short, its prejudice and stereotyping. Of course, people who are prejudiced really, really believe their stereotypes quite strongly, and its unlikely you could persuade them to change their minds.&lt;/p&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-07T05:03:07.230" CommentCount="3" />
  <row Id="10076" PostTypeId="2" ParentId="9042" CreationDate="2010-10-07T05:20:25.903" Score="4" ViewCount="" Body="&lt;p&gt;Java is a language which hasn't developed as quickly as many developers expected. This expectation was fuelled by the constant innovation over at Microsoft with .NET. Many developers like me have moved across to C#.  Suddenly when faced with doing anything in Java for a specific project frustration quickly followed. This frustration has created a community of Java haters. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I disagree with Craig, comments regarding C# as non-enterprise. I’ve found the .NET environment excels in SOA and various enterprise implementations.&lt;br&gt;&#xA;I’d hope to see Java revival as a result of Android framework however Oracle (new owner of java) is suing Google over Android. Unfortunately with Oracle owning Java everyone is going to hate java just a little more. &lt;/p&gt;&#xA;" OwnerUserId="4219" LastActivityDate="2010-10-07T05:20:25.903" CommentCount="1" />
  <row Id="10077" PostTypeId="2" ParentId="10021" CreationDate="2010-10-07T05:36:21.770" Score="0" ViewCount="" Body="&lt;p&gt;Discussions about programming languages are - IMHO - like discussions about mail clients in some Linux newsgroups: they tend to be a flame war. I can remember times when VB6 was popular. There were people even arguing that it isn't a programming language at all, while others created stunning applications with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think programming languages differ already in the concept as the creators had different things in mind when they created/designed the language. So a language that fits one purpose - and under that circumstance is powerful - might not fit another. Naming the language powerful or not is then purely subjective. That said, I do not think that there is a metric that can be applied.&lt;/p&gt;&#xA;" OwnerUserId="4489" LastActivityDate="2010-10-07T05:36:21.770" CommentCount="1" />
  <row Id="10078" PostTypeId="2" ParentId="10074" CreationDate="2010-10-07T05:41:32.803" Score="0" ViewCount="" Body="&lt;p&gt;I once evaluated TX Text Control (&lt;a href=&quot;http://www.textcontrol.com/en_US/&quot; rel=&quot;nofollow&quot;&gt;http://www.textcontrol.com/en_US/&lt;/a&gt;), though that's nearly five or six years ago. I do not know much about what it can do today, but at that time it was impressive.&lt;/p&gt;&#xA;" OwnerUserId="4489" LastActivityDate="2010-10-07T05:41:32.803" CommentCount="1" />
  <row Id="10079" PostTypeId="2" ParentId="8078" CreationDate="2010-10-07T05:51:18.623" Score="0" ViewCount="" Body="&lt;p&gt;Hello, at &lt;a href=&quot;http://www.rent-acoder.com&quot; rel=&quot;nofollow&quot;&gt;http://www.rent-acoder.com&lt;/a&gt; the fees are almost inexistable in compare to other similar websites. you can do any kind of job there, from writing, designing to coding and translating. it is free to signup and you can make unlimited bids(again, on other websites you pay the bids)&lt;/p&gt;&#xA;" LastActivityDate="2010-10-07T05:51:18.623" />
  <row Id="10080" PostTypeId="2" ParentId="10053" CreationDate="2010-10-07T06:10:25.107" Score="0" ViewCount="" Body="&lt;p&gt;I play &lt;a href=&quot;http://shooter-szene.4players.de/albums/counter_strike_source/0000000031_1024x768.jpg&quot; rel=&quot;nofollow&quot;&gt;Counter strike&lt;/a&gt; to clear my mind after a day of coding. You can try playing any other online game.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should check out the &lt;a href=&quot;http://stackoverflow.com/questions/784461?tab=votes#tab-top&quot;&gt;Same question on Stack Overflow&lt;/a&gt; .&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-10-07T06:10:25.107" CommentCount="1" />
  <row Id="10081" PostTypeId="2" ParentId="10074" CreationDate="2010-10-07T06:32:37.067" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://tinymce.moxiecode.com/&quot; rel=&quot;nofollow&quot;&gt;TinyMCE&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&quot;TinyMCE is a platform independent web based Javascript HTML WYSIWYG &#xA;editor control released as Open Source under LGPL by Moxiecode Systems AB. &#xA;It has the ability to convert HTML TEXTAREA fields or other HTML elements &#xA;to editor instances. TinyMCE is very easy to integrate into other &#xA;Content Management Systems.&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This is the RTE that I have most experience with and it's pretty good. It's also available as a jQuery plug-in, so all you need to do is add a class to the textarea's you want converted to RTE controls.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're integrating into a CMS, then it's important that you choose something extensible, as you'll normally want to do things like, for example, replace the standard image picker dialog with one to select an image uploaded to the CMS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's already the choice of some established CMS's, such Umbraco, Joomla, and EpiServer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also used &lt;a href=&quot;http://ckeditor.com/&quot; rel=&quot;nofollow&quot;&gt;CKEditor&lt;/a&gt; (formerly FCKEditor), and my experience with that has generally been positive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Disclaimer&lt;/em&gt;: I've never used a RTE that didn't screw up the HTML occasionally requiring you to dive into 'edit source' mode.&lt;/p&gt;&#xA;" OwnerUserId="562" LastActivityDate="2010-10-07T06:32:37.067" />
  <row Id="10082" PostTypeId="2" ParentId="10053" CreationDate="2010-10-07T06:33:37.737" Score="0" ViewCount="" Body="&lt;p&gt;TV/Netflix. This is what I do when I program at home or just for fun. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I'm working in an office or with other people, I usually have an off-topic conversation for a few minutes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...I think I just realized that &lt;em&gt;other&lt;/em&gt; people talking to me actually helps me refocus!&lt;/p&gt;&#xA;" OwnerUserId="3910" LastActivityDate="2010-10-07T06:33:37.737" />
  <row Id="10083" PostTypeId="2" ParentId="10053" CreationDate="2010-10-07T06:43:40.940" Score="1" ViewCount="" Body="&lt;p&gt;I talk to a someone in office (one who has a reasonable frequency match with me) in the office. About anything. For 15 mins or so.&lt;br&gt;&#xA;He/she does not complain that I am &lt;em&gt;disturbing&lt;/em&gt; him because he knows he will also need to &lt;em&gt;disturb&lt;/em&gt; me when he's distracted.&lt;/p&gt;&#xA;" OwnerUserId="2902" LastActivityDate="2010-10-07T06:43:40.940" />
  <row Id="10084" PostTypeId="1" CreationDate="2010-10-07T06:44:08.083" Score="2" ViewCount="242" Body="&lt;p&gt;I was looking for some guides to start programming with, I'm a college student and I'm learning Ruby as my first language (Side-question, is that something good to start with?). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found _Why's guide to Ruby and I also found Learn You Haskell (which is of course not Ruby) and I was curious if there were any more guides/books like these, free and fun to read? Just for future reads and to know about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will reading a book or guide actually teach me programming, do I just have to hop from one book to another until I understand the concepts because I feel like most books focus on theoretical stuff and I don't actually pick up much programming from them. Are there any &quot;just do it&quot; ways of learning programming? Like do I just sit here and start writing bad code until I get better or do I go out there and find some code and edit it? Because ultimately I want to write my own code but I want to see some good examples. &lt;/p&gt;&#xA;" OwnerUserId="3910" LastActivityDate="2010-11-09T20:07:17.703" CommunityOwnedDate="2010-10-07T06:44:08.083" Title="Any other guides out there like Why's Guide to Ruby and Learn You Haskell?" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;ruby&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="1" />
  <row Id="10085" PostTypeId="2" ParentId="9062" CreationDate="2010-10-07T07:01:43.347" Score="3" ViewCount="" Body="&lt;p&gt;Everything is an object.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-07T07:01:43.347" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="5" />
  <row Id="10086" PostTypeId="2" ParentId="10047" CreationDate="2010-10-07T07:14:21.883" Score="5" ViewCount="" Body="&lt;p&gt;Your problem is that you don't have any experience and/or portfolio.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You must build one while looking for a position in that field.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suggest this strategy:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Read the three most influencing books on the subject. Look at Alan Cooper &amp;amp; Jakob Nielsen books. Joel Spolsky also wrote one, but I did not read it yet.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Pick one or two open source project you like but has an ugly of very bad usability UI. Build a new one. Submit your contribution(s). Use them as an example of what you can do.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;(optional) Start a blog on the subject.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Apply for job openings in that field AND send letters to every company you think may be interested in what you do (don't stop at 20 letters, you will have to send hundred of them).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In fact, that is what I did over a decade ago. I did not have any experience, diploma, or references, so I came to the interviews with work I did at home. It worked, and since then I was able to build experience &amp;amp; referencs from there.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-07T07:14:21.883" CommentCount="1" />
  <row Id="10087" PostTypeId="1" AcceptedAnswerId="10102" CreationDate="2010-10-07T07:24:10.507" Score="34" ViewCount="3161" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;With nearly 60 answers to this question it's highly likely that &lt;em&gt;your&lt;/em&gt; answer has already been posted. Please don't post an answer unless you have something new to say&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This can be a particular task you find not very useful, a manager behavior, your canteen, some security rule you must comply to, tools &lt;em&gt;they&lt;/em&gt; want you to use, commuting, schedules, a customer, a technical problem you encouter all the time, anything, ... please be creative ;)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;One answer per thing. &#xA;  Explain why. &#xA;  Please vote up on other answers if appropriate.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-02-06T23:59:55.083" LastActivityDate="2011-05-30T10:46:20.493" CommunityOwnedDate="2010-10-07T16:21:54.780" ClosedDate="2011-05-30T14:18:58.230" Title="If you had the power to remove one thing in your daily job, what would it be?" Tags="&lt;jobs&gt;&lt;work-environment&gt;&lt;profession&gt;" AnswerCount="58" CommentCount="8" FavoriteCount="12" />
  <row Id="10088" PostTypeId="1" CreationDate="2010-10-07T07:26:17.920" Score="1" ViewCount="127" Body="&lt;p&gt;How good is it to work as a fresher(being from Java background) in a company which works on Drupal? I mean Drupal looks like something fun in college. Is it so big that companies are hiring people for it? &lt;/p&gt;&#xA;" OwnerUserId="1485" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-04-26T15:03:50.530" LastActivityDate="2011-04-26T15:03:50.530" Title="Drupal For A job" Tags="&lt;career&gt;&lt;java&gt;&lt;career-advice&gt;&lt;drupal&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="10089" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T07:29:39.550" Score="3" ViewCount="" Body="&lt;p&gt;stop people making comments as they walk past your desk that are dumb, and wait for some response when you just want to ignore them&lt;/p&gt;&#xA;" OwnerUserId="4458" LastActivityDate="2010-10-07T07:29:39.550" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="3" />
  <row Id="10090" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T07:30:09.067" Score="38" ViewCount="" Body="&lt;p&gt;Back Pain.. Most Programmers suffer from it, some more some less. I wish we could get rid of it for the better.&lt;/p&gt;&#xA;" OwnerUserId="672" LastEditorUserId="672" LastEditorDisplayName="" LastEditDate="2010-10-07T12:02:52.710" LastActivityDate="2010-10-07T12:02:52.710" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="15" />
  <row Id="10091" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T07:36:14.653" Score="37" ViewCount="" Body="&lt;p&gt;Estimations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without a doubt.&lt;/p&gt;&#xA;" OwnerUserId="2820" LastActivityDate="2010-10-07T07:36:14.653" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="11" />
  <row Id="10092" PostTypeId="2" ParentId="9960" CreationDate="2010-10-07T07:41:25.187" Score="0" ViewCount="" Body="&lt;p&gt;if you don't know anything about it, the best thing is to be transparent and admit that. this way you don't waste anyone's time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;but, you better know a little something about everything: and introduction or what's it about or at least the domain to what that question/technology belongs to or what's the reasoning behind the existence of that technology. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;show the interviewer you know the world around you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;on the other hand, if you do know a little bit, start from there. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;most interviewers will help you, and even provide and &lt;strong&gt;explain&lt;/strong&gt; the answer. this is where it's important to not just play dead. ask questions and try to understand what he/she's saying. make sure you leave that interview with something new.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;some people do care about your ability to understand things and about your attitude towards new stuff&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-07T07:41:25.187" />
  <row Id="10093" PostTypeId="2" ParentId="10088" CreationDate="2010-10-07T07:43:40.373" Score="5" ViewCount="" Body="&lt;p&gt;I've seen plenty of job ads looking for people with Drupal experience.  However, just like the jobs looking for people with jQuery experience, you're dead in the water if you don't know much about the language itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I have concerns about the companies' mindset.  To me, their goal seems to be to churn out websites and the heck with quality.  I don't know how long many of those companies will be around.  Then again, there are plenty of nearly worthless businesses amazingly limping around.&lt;/p&gt;&#xA;" OwnerUserId="149" LastEditorUserId="149" LastEditorDisplayName="" LastEditDate="2010-10-07T08:52:42.957" LastActivityDate="2010-10-07T08:52:42.957" CommentCount="2" />
  <row Id="10094" PostTypeId="1" AcceptedAnswerId="12392" CreationDate="2010-10-07T07:45:48.497" Score="14" ViewCount="324" Body="&lt;p&gt;I'm interested in stories where &lt;strong&gt;office bureaucracy&lt;/strong&gt; has had direct effect on the final &lt;strong&gt;code quality&lt;/strong&gt; result.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, a friend just told me that at his previous work place the version control system was so bulky that programmers were not allowed to create new &quot;modules&quot; (root directories in the source tree) without asking permissions from the VCS gods. The result was that programmers were unwilling to go through the extra bureaucratic step and instead of properly componentizing their services they ended up piling unrelated functionality on top of existing modules even when functionality was just remotely related to the current definition of the module or the module's name was way in the past. (not to mention renaming a module...)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm interested in similar stories of office, operational or any other bureaucracy that eventually, perhaps unintentionally affected software quality &lt;/p&gt;&#xA;" OwnerUserId="4721" LastEditorUserId="4721" LastEditorDisplayName="" LastEditDate="2010-10-07T08:16:20.647" LastActivityDate="2010-10-16T12:24:37.893" Title="How does office bureaucracy affect code quality" Tags="&lt;code-quality&gt;&lt;culture&gt;" AnswerCount="3" CommentCount="7" FavoriteCount="1" />
  <row Id="10095" PostTypeId="2" ParentId="10074" CreationDate="2010-10-07T07:48:33.537" Score="1" ViewCount="" Body="&lt;p&gt;Rather than looking for a WYSIWYG editor you might what to look at a WYSIWYM editor (what you see is what you mean) which can be used to generate excellent, clean and semantic (X)HTML. All the WYSIWYG in-browser controls I've used generate HTML ranging from vaguely OK to downright criminal. A WYSIWYM editor will initially require more configuration, but it's not hard and the results are worth it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good place to start is &lt;a href=&quot;http://www.wymeditor.org/&quot; rel=&quot;nofollow&quot;&gt;WYMEditor&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-07T07:48:33.537" CommentCount="1" />
  <row Id="10096" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T07:53:01.247" Score="2" ViewCount="" Body="&lt;p&gt;i think i would like to remove the manager from room and only have the technicals there&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-07T07:53:01.247" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="7" />
  <row Id="10097" PostTypeId="2" ParentId="10094" CreationDate="2010-10-07T07:53:43.663" Score="2" ViewCount="" Body="&lt;p&gt;I stopped working on some particular modules in the Project because the code reviewer was a Smart A$$&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-07T07:53:43.663" />
  <row Id="10098" PostTypeId="2" ParentId="9965" CreationDate="2010-10-07T07:54:53.603" Score="4" ViewCount="" Body="&lt;p&gt;People pay attention to the shape of words before they actually read them. Case sensitivity keeps the shape of a symbol consistent throughout code. I also agree with those above that state that different conventions denote different types of symbols. Case sensitivity and insensitivity can both be abused. Bad programmers will always generate bad code... they will find a way. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take language as an example. Why do we start sentences and named things with capitals... Is it also because of unix?&lt;/p&gt;&#xA;" OwnerUserId="4722" LastActivityDate="2010-10-07T07:54:53.603" CommentCount="1" />
  <row Id="10099" PostTypeId="2" ParentId="9960" CreationDate="2010-10-07T07:55:03.680" Score="2" ViewCount="" Body="&lt;p&gt;Whatever you say, you should have two things there- honesty and confidence.&#xA;&lt;br&gt;That's all I think.&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-10-07T07:55:03.680" CommentCount="1" />
  <row Id="10100" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T07:59:10.000" Score="24" ViewCount="" Body="&lt;p&gt;Wow, just one..? Tough call.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now, I'd like to remove some &lt;em&gt;people&lt;/em&gt;. As in, arrogant fellow developers who think that their way is the best way, and everything you know and do is just for kids. You know, people who are really adamant about things like &quot;C++ is the way, .NET sucks&quot;, &quot;unit testing is a waste of time&quot; etc. I mean &lt;strong&gt;REALLY&lt;/strong&gt;, WTF?&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-10-07T07:59:10.000" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="9" />
  <row Id="10101" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T08:01:59.300" Score="10" ViewCount="" Body="&lt;p&gt;Inspired by Belun I would say removing the option of managers saying:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;It's not the right time for doing that&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Knowing that they'll never ever allow you to go back and implement the changes you had in mind when they stopped you.&lt;/p&gt;&#xA;" OwnerUserId="564" LastActivityDate="2010-10-07T08:01:59.300" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="1" />
  <row Id="10102" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T08:02:59.287" Score="46" ViewCount="" Body="&lt;p&gt;Most meetings!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are times when you just need to get together and discuss things with a bunch of other people.  However, so many meetings are just down right worthless.  At my last job, we had a joke about having a meeting about the meeting.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-10-07T08:02:59.287" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="8" />
  <row Id="10103" PostTypeId="1" AcceptedAnswerId="10107" CreationDate="2010-10-07T08:04:43.327" Score="5" ViewCount="190" Body="&lt;p&gt;What are your strategies to improve the &lt;a href=&quot;http://en.wikipedia.org/wiki/Flow_%28psychology%29&quot; rel=&quot;nofollow&quot;&gt;flow&lt;/a&gt; experience when doing work?&lt;/p&gt;&#xA;" OwnerUserId="4723" LastActivityDate="2010-10-07T09:43:31.557" Title="How to enter flow experience for SW development?" Tags="&lt;motivation&gt;&lt;psychology&gt;" AnswerCount="2" />
  <row Id="10104" PostTypeId="2" ParentId="9843" CreationDate="2010-10-07T08:05:37.603" Score="3" ViewCount="" Body="&lt;p&gt;I think both ways of doing it can have their benefits, but I would look at it from an object oriented or domain driven view: what are the responsibilities of the different classes and objects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I would ask myself this, in your concrete case: should a customer know how to save itself?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, the answer would be no: logically to me it doesn't make sense, and a customer should not have to know anything about any persistence framework at all (separation of responsibilities).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for SnOrfus' examples with Customer.UpgradeWarranty() or Customer.PromoteToPreferred(), they are obviously more business logic oriented than Customer.Save(). There are different approaches to this, but again if you ask yourself if a customer is supposed to be able to upgrade his warranty, the answer might be both yes or no, depending on how you look at it:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;yes: a customer can of course upgrade his warranty&lt;/li&gt;&#xA;&lt;li&gt;no: a customer could &lt;em&gt;ask&lt;/em&gt; to be upgraded, but the upgrade is done by someone else&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Back to your original question; which way makes more sense will probably depend on who you ask and their preferred method, but the most important thing is probably to stick to one way of doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, though, separating data and (business) logic makes for a simpler architecture, although not as exciting.&lt;/p&gt;&#xA;" OwnerUserId="1020" LastActivityDate="2010-10-07T08:05:37.603" CommentCount="1" />
  <row Id="10105" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T08:07:56.667" Score="1" ViewCount="" Body="&lt;p&gt;Doing multimedia work for a client who demands everything to be in HTML from a CD-ROM - no .exe's or installations allowed. Makes it really difficult to do fun stuff or data heavy applications. Added to the issue is a really creative project leader who always thinks up new features that would be great to have but a pain to implement.&lt;/p&gt;&#xA;" OwnerUserId="4389" LastActivityDate="2010-10-07T08:07:56.667" CommunityOwnedDate="2010-10-07T16:21:54.780" />
  <row Id="10106" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T08:09:23.723" Score="29" ViewCount="" Body="&lt;p&gt;Limits on how much and how often I get paid.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-07T08:09:23.723" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="1" />
  <row Id="10107" PostTypeId="2" ParentId="10103" CreationDate="2010-10-07T08:12:05.920" Score="7" ViewCount="" Body="&lt;p&gt;It's a bit like creativity. You can't force it, you can only prepare conditions favorable for it to appear. Some of the most important requirements: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Distraction-free environment (you'll need hours of uninterrupted concentration).&lt;/li&gt;&#xA;&lt;li&gt;Clear goal.&lt;/li&gt;&#xA;&lt;li&gt;Genuine, intrinsic interest in that goal.&lt;/li&gt;&#xA;&lt;li&gt;Clear mind; not too much &quot;should do this, should do that&quot; issues nagging in the  background.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So, before starting to actually work to problem, be sure to define the goal clearly, complete or at least write down other to do -items so that they don't disturb your mind, and go somewhere where you can concentrate. If you're interested in what you're doing, you now have a good chance of getting into flow.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-07T09:34:16.323" LastActivityDate="2010-10-07T09:34:16.323" CommentCount="4" />
  <row Id="10108" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T08:15:28.073" Score="7" ViewCount="" Body="&lt;p&gt;The fact that Time is a fixed resource.&lt;/p&gt;&#xA;" OwnerUserId="4478" LastActivityDate="2010-10-07T08:15:28.073" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="14" />
  <row Id="10109" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T08:23:45.373" Score="9" ViewCount="" Body="&lt;p&gt;I'd have to say admin and red tape. &lt;/p&gt;&#xA;" OwnerUserId="4722" LastActivityDate="2010-10-07T08:23:45.373" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="2" />
  <row Id="10110" PostTypeId="2" ParentId="9055" CreationDate="2010-10-07T08:27:03.203" Score="10" ViewCount="" Body="&lt;p&gt;Matz - Creator of Ruby&lt;/p&gt;&#xA;" OwnerUserId="4723" LastActivityDate="2010-10-07T08:27:03.203" CommunityOwnedDate="2010-10-07T08:27:03.203" />
  <row Id="10111" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T08:30:33.290" Score="32" ViewCount="" Body="&lt;p&gt;The only thing I would remove (right now at least) is the commute. It's not far, but I hate driving. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I could walk to work in the same amount of time it takes me to drive now, this job would be practically perfect!&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-10-07T08:30:33.290" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="21" />
  <row Id="10112" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T08:36:04.333" Score="10" ViewCount="" Body="&lt;p&gt;My Phone,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So that I can reduce the interruptions from the production and service departments, as most of their requests could be done via email, but are always done over a phone call.&lt;/p&gt;&#xA;" OwnerUserId="2395" LastActivityDate="2010-10-07T08:36:04.333" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="4" />
  <row Id="10113" PostTypeId="1" AcceptedAnswerId="10125" CreationDate="2010-10-07T08:36:12.420" Score="7" ViewCount="232" Body="&lt;p&gt;I've been on this job for mere 5 years now. I feel like I've learned a lot in that time, and I continue to challenge myself whenever I can, even though my job doesn't allow that very often. Still, I feel like I've just started my professional career as a developer, and there is still much to learn. This is obviously true, being a developer is all about learning. So I've decided to order a book or two from this list:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2004/02/recommended-reading-for-developers.html&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/2004/02/recommended-reading-for-developers.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These guys (Jeff et al.) must be doing something right, so I'm guessing Jeff's recommendations have some weight. I'm considering buying Code Complete and The Mythical Man Month since they are on top of the list, but I am not sure these two are the right choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would you recommend these two as a good learning/self-improvement books? Regardless of your answer, please state your reasons. I'm just curious if these two have a good ROI or should I just keep my money and buy tons of ice-cream. Some of the questions would be: are they still relevant? Will they &lt;em&gt;really&lt;/em&gt; make me a better developer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Feel free to recommend other books, or argue about other books on Jeff's list, but keep in mind my question about these two in particular :)&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-12-17T16:18:50.590" Title="Would I gain enough by reading these books or would you recommend some other?" Tags="&lt;learning&gt;&lt;self-improvement&gt;&lt;books&gt;&lt;advice&gt;" AnswerCount="4" FavoriteCount="6" />
  <row Id="10114" PostTypeId="1" AcceptedAnswerId="10118" CreationDate="2010-10-07T08:37:03.137" Score="8" ViewCount="413" Body="&lt;p&gt;As with any other human activity you have to pass through some phases for mastering a programming language, something like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Education&lt;/li&gt;&#xA;&lt;li&gt;Practice&lt;/li&gt;&#xA;&lt;li&gt;Work in Real World problems&lt;/li&gt;&#xA;&lt;li&gt;Learn different frameworks and/or libraries during years&lt;/li&gt;&#xA;&lt;li&gt;Mastering&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;How much time do you think it takes to arrive to the last one?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Edit: I take into account your comments, so I say: you can see much questions about &lt;a href=&quot;http://programmers.stackexchange.com/questions/2284/suppose-you-had-five-years-to-become-the-best-programmer-in-the-world&quot;&gt;becoming a good programmer&lt;/a&gt;, going from &lt;a href=&quot;http://programmers.stackexchange.com/questions/9903/what-are-the-vital-qualities-need-for-a-junior-level-programmer-to-become-a-good&quot;&gt;junior to senior&lt;/a&gt;, and so on, but, from your experience, how much time does it take? Is time really important?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With &lt;strong&gt;Mastering&lt;/strong&gt; I mean something like becoming the &lt;em&gt;Yoda&lt;/em&gt; or &lt;a href=&quot;http://stackoverflow.com/users/22656/jon-skeet&quot;&gt;Jon Skeet&lt;/a&gt; of your office. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Edit 2: you can try to define what Mastering a Programming language is for you in your answers.&lt;/p&gt;&#xA;" OwnerUserId="3730" LastEditorUserId="3730" LastEditorDisplayName="" LastEditDate="2010-10-07T13:51:56.877" LastActivityDate="2010-10-07T14:05:38.883" Title="How much time, in average, does it take to master a language?" Tags="&lt;career&gt;&lt;great-programmer&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="1" />
  <row Id="10116" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T08:44:30.997" Score="108" ViewCount="" Body="&lt;h1&gt;Timesheets&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Having to account for every minute of the day on a HR timesheet application that is so clunky, it really needs a timesheet category of its own to account for the time wasted filling it out.&lt;/p&gt;&#xA;" OwnerUserId="562" LastEditorUserId="562" LastEditorDisplayName="" LastEditDate="2010-10-08T11:37:11.090" LastActivityDate="2010-10-08T11:37:11.090" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="13" />
  <row Id="10118" PostTypeId="2" ParentId="10114" CreationDate="2010-10-07T08:50:31.003" Score="25" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;Ten years, or 10000 hours&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-07T08:50:31.003" CommentCount="3" />
  <row Id="10120" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T08:54:12.893" Score="24" ViewCount="" Body="&lt;p&gt;I'd remove the people who think that ClearCase is the best version control system ever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If i can't do that, i'd just remove ClearCase.&lt;/p&gt;&#xA;" OwnerUserId="4730" LastActivityDate="2010-10-07T08:54:12.893" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="9" />
  <row Id="10121" PostTypeId="2" ParentId="10114" CreationDate="2010-10-07T08:56:08.957" Score="1" ViewCount="" Body="&lt;p&gt;actually, i would be an interesting project to log your effective growth in a skill.&#xA;I reservered the domains growthcurve.org But did not come up with an interesting enough concept yet, to visualize progress&lt;/p&gt;&#xA;" OwnerUserId="4723" LastActivityDate="2010-10-07T08:56:08.957" />
  <row Id="10122" PostTypeId="2" ParentId="10084" CreationDate="2010-10-07T08:56:23.637" Score="2" ViewCount="" Body="&lt;p&gt;Preface: Although Zed Shaw is a bit of a rebel in the programming community, and I don't agree with everything he says, he does have many good points. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This one is also not Ruby, or Haskell. This is Python. &lt;a href=&quot;http://learnpythonthehardway.org/home&quot; rel=&quot;nofollow&quot;&gt;http://learnpythonthehardway.org/home&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My first programming language was JavaScript. I think learning any object oriented programming language would be good to start out with, although I've been interested in learning Haskell recently too.&lt;/p&gt;&#xA;" OwnerUserId="4478" LastActivityDate="2010-10-07T08:56:23.637" CommunityOwnedDate="2010-10-07T08:56:23.637" CommentCount="1" />
  <row Id="10123" PostTypeId="2" ParentId="7565" CreationDate="2010-10-07T08:58:51.760" Score="2" ViewCount="" Body="&lt;p&gt;I think &lt;strong&gt;Clean Code: A handbook of Agile Software Craftsmanship&lt;/strong&gt;, is a great resource.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This book will make you a better developer, not only a better programmer. Surely a must read!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0132350882&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4643" LastActivityDate="2010-10-07T08:58:51.760" />
  <row Id="10124" PostTypeId="2" ParentId="10113" CreationDate="2010-10-07T09:00:18.953" Score="0" ViewCount="" Body="&lt;p&gt;The books seems targetted towards UI developers and designers.&#xA;You need to find out about your intrinsic drivers / motivation for a domain. Books can only help with cognitive aspects of your goals. &#xA;Regarding self-improvement I also like the books by Carol Dweck (growth mindset), Malcolm Gladwell (outliers) and Talent is overrated.&#xA;Regarding cognitive theories, I like the book by Howard Gardner on 5 mindsets.&lt;/p&gt;&#xA;" OwnerUserId="4723" LastActivityDate="2010-10-07T09:00:18.953" CommentCount="1" />
  <row Id="10125" PostTypeId="2" ParentId="10113" CreationDate="2010-10-07T09:00:25.920" Score="3" ViewCount="" Body="&lt;p&gt;Great ! Some more affiliates money for SO ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Jeff's books, buy &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0932633439&quot; rel=&quot;nofollow&quot;&gt;Peopleware&lt;/a&gt;, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/156205810X&quot; rel=&quot;nofollow&quot;&gt;Design Web Usability&lt;/a&gt;, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/020161622X&quot; rel=&quot;nofollow&quot;&gt;The Pragmatic Programmer&lt;/a&gt; &amp;amp; &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201835959&quot; rel=&quot;nofollow&quot;&gt;The Mythical Man-Month&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition of what is suggested in the Coding Horror blog post:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0976694018&quot; rel=&quot;nofollow&quot;&gt;My Job Went To India - Will code for food&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321150783&quot; rel=&quot;nofollow&quot;&gt;Lean Software Development&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321437381&quot; rel=&quot;nofollow&quot;&gt;Implementing Lean Software Development: From Concept to Cash&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/097451408X&quot; rel=&quot;nofollow&quot;&gt;Practices of an Agile Developer&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735627045&quot; rel=&quot;nofollow&quot;&gt;CLR Via C#&lt;/a&gt; (if you are in .NET of course)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Seriously, read them all, not just two or three... ALL&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-07T09:00:25.920" CommentCount="4" />
  <row Id="10126" PostTypeId="2" ParentId="10094" CreationDate="2010-10-07T09:02:19.027" Score="1" ViewCount="" Body="&lt;p&gt;On a recent project, quality people had many requirement regarding formal unit tests (traceability, coding rules, formal reviews, ...). The coders no longer write unit tests, they only debug their code. This is the same task just renamed, leads to the same technical results, but without the administrative hassle.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-07T09:02:19.027" CommentCount="1" />
  <row Id="10127" PostTypeId="2" ParentId="5834" CreationDate="2010-10-07T09:04:50.867" Score="0" ViewCount="" Body="&lt;p&gt;Perhaps, an animator.&lt;/p&gt;&#xA;" OwnerUserId="1496" LastActivityDate="2010-10-07T09:04:50.867" />
  <row Id="10128" PostTypeId="1" CreationDate="2010-10-07T09:06:20.520" Score="10" ViewCount="620" Body="&lt;p&gt;&lt;a href=&quot;http://www.cs.brown.edu/people/acb/codebubbles_site.htm&quot; rel=&quot;nofollow&quot;&gt;http://www.cs.brown.edu/people/acb/codebubbles_site.htm&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to know if anyone has used it and what are the first impressions. I signed in the beta but don't have received the invitation as of now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: most of us use to work more with the keyboard rather then with the mouse, code bubbles has keyboard shortcuts support. &lt;a href=&quot;http://www.cs.brown.edu/people/acb/codebubbles_faq.htm&quot; rel=&quot;nofollow&quot;&gt;http://www.cs.brown.edu/people/acb/codebubbles_faq.htm&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="579" LastEditorUserId="579" LastEditorDisplayName="" LastEditDate="2010-10-20T10:46:13.793" LastActivityDate="2010-11-17T17:26:28.010" CommunityOwnedDate="2010-10-07T09:06:20.520" Title="Has anyone used Code Bubbles yet?" Tags="&lt;java&gt;&lt;ide&gt;" AnswerCount="7" CommentCount="8" FavoriteCount="8" />
  <row Id="10129" PostTypeId="2" ParentId="10061" CreationDate="2010-10-07T09:09:40.707" Score="2" ViewCount="" Body="&lt;p&gt;A few years ago I really wanted to use the &lt;a href=&quot;http://tiswww.case.edu/php/chet/readline/rltop.html&quot; rel=&quot;nofollow&quot;&gt;GNU readline&lt;/a&gt; library to enhance the admin interface to the product I was working on, but since it's under GPL and not LGPL, I couldn't use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've used Intellij IDEA 6.0 for the past 4 years, and I absolutely love it, but I haven't been upgrading as much as I would have liked to, because we're a tiny startup and are trying to save every penny we can.&lt;/p&gt;&#xA;" OwnerUserId="4732" LastActivityDate="2010-10-07T09:09:40.707" />
  <row Id="10130" PostTypeId="2" ParentId="9042" CreationDate="2010-10-07T09:15:51.277" Score="3" ViewCount="" Body="&lt;p&gt;The main objection I have to Java is the sheer quantity of typing I have to do before I can make anything happen. The more you use other languages - even the mildly less verbose ones like C# - the more that verbosity starts to get really irritating. If you think of power in terms of leverage, doing less to get more effect, then Java is a very low-leverage language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The JCP certainly inhibits the development of the language and I suspect Steve Yegge's prediction that in the future Java won't be the biggest language running on the JVM is just waiting on one of the other contenders hitting critical mass but for me most complaints about the language really don't touch on that verbosity.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-07T09:15:51.277" CommentCount="1" />
  <row Id="10131" PostTypeId="2" ParentId="10128" CreationDate="2010-10-07T09:27:19.267" Score="0" ViewCount="" Body="&lt;p&gt;have seen the intro video and it seems interesting. will definitely give it a try...&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-07T09:27:19.267" CommunityOwnedDate="2010-10-07T09:27:19.267" />
  <row Id="10132" PostTypeId="2" ParentId="552" CreationDate="2010-10-07T09:29:27.913" Score="0" ViewCount="" Body="&lt;p&gt;I personally follow &lt;a href=&quot;http://stephenwalther.com/blog/default.aspx&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Stephen walther&lt;/strong&gt;&lt;/a&gt; - microsoft MVP and mainly asp.net developer&lt;/p&gt;&#xA;" OwnerUserId="1522" LastActivityDate="2010-10-07T09:29:27.913" CommunityOwnedDate="2010-10-07T09:29:27.913" />
  <row Id="10133" PostTypeId="2" ParentId="10128" CreationDate="2010-10-07T09:31:44.033" Score="1" ViewCount="" Body="&lt;p&gt;I watched part of it and it reminded me so much of Squeak SmallTalk that I couldn't finish (and I have only dabbled in squeak). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find it interesting how so many old things keep coming back around in &quot;new&quot; ways.&lt;/p&gt;&#xA;" OwnerUserId="4478" LastActivityDate="2010-10-07T09:31:44.033" CommunityOwnedDate="2010-10-07T09:31:44.033" CommentCount="4" />
  <row Id="10134" PostTypeId="2" ParentId="10103" CreationDate="2010-10-07T09:43:31.557" Score="1" ViewCount="" Body="&lt;p&gt;Find the challenges in the task you have in your hands.&lt;/p&gt;&#xA;" OwnerUserId="3730" LastActivityDate="2010-10-07T09:43:31.557" />
  <row Id="10135" PostTypeId="2" ParentId="10128" CreationDate="2010-10-07T09:43:55.893" Score="3" ViewCount="" Body="&lt;p&gt;Hm, interesting. It gives a (to me) whole new way of viewing the code as fragments rather than entire documents. The only disadvantage I can find initially is the heavy use of the mouse. But then again, most IDEs require that already. Still interesting, nonetheless.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-07T09:43:55.893" CommunityOwnedDate="2010-10-07T09:43:55.893" />
  <row Id="10136" PostTypeId="1" AcceptedAnswerId="10146" CreationDate="2010-10-07T09:44:17.523" Score="3" ViewCount="163" Body="&lt;p&gt;Hai Friends,&#xA;              Tell me or share with me , i am developer with one year experience, now i want to modify my old fresher resume to an experience resume, so i want to know what are the primary things must be in an experienced resume which is attracted by the firm.&lt;/p&gt;&#xA;" OwnerUserId="3993" LastEditorUserId="76" LastEditorDisplayName="" LastEditDate="2010-10-07T10:23:56.273" LastActivityDate="2010-10-07T10:23:56.273" CommunityOwnedDate="2010-10-07T09:45:01.033" Title="What are the Vital Things noticed in an Experienced Programmer Resume by a firm?" Tags="&lt;self-improvement&gt;" AnswerCount="1" CommentCount="7" FavoriteCount="2" />
  <row Id="10137" PostTypeId="2" ParentId="9219" CreationDate="2010-10-07T09:51:56.123" Score="0" ViewCount="" Body="&lt;p&gt;I will prefer those in the middle. Like the poster rightly pointed out, an understanding of patterns does not make you a good developer. On the other hand an understanding of pattern will help you become a good developer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Understanding the relationship of patterns and seeing a pattern in a project (while at the conception stage) is what will make you a good developer. &lt;/p&gt;&#xA;" LastActivityDate="2010-10-07T09:51:56.123" />
  <row Id="10138" PostTypeId="2" ParentId="9042" CreationDate="2010-10-07T09:53:50.963" Score="0" ViewCount="" Body="&lt;p&gt;I think that it is not only the fault of the language, but also the IDEs. I found very hard to get used to them.&lt;/p&gt;&#xA;" OwnerUserId="3730" LastActivityDate="2010-10-07T09:53:50.963" CommentCount="1" />
  <row Id="10139" PostTypeId="2" ParentId="10061" CreationDate="2010-10-07T10:00:26.100" Score="0" ViewCount="" Body="&lt;p&gt;I don't know if you had hardware in mind, but for me: a &lt;strong&gt;MacBook Pro laptop&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm currently using a 2006 MacBook Pro and I'm afraid I will not be able to afford the upgrade to another new Apple laptop. It is really sad, because it is the best hardware I've ever own and I'm really used to it both as a developer and 'end-user'.&lt;/p&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-10-07T10:00:26.100" CommentCount="2" />
  <row Id="10140" PostTypeId="2" ParentId="9062" CreationDate="2010-10-07T10:00:59.077" Score="2" ViewCount="" Body="&lt;p&gt;When adding a new source file to my project using Eclipse or any other IDE I ALWAYS create an empty file and I strongly refuse to use any pre-made template.&#xA;Even for .h files I like to write the classic &lt;code&gt;#ifndef FILE_H_&lt;/code&gt; &lt;code&gt;(...)&lt;/code&gt; lines by myself&lt;/p&gt;&#xA;" OwnerUserId="4738" LastActivityDate="2010-10-07T10:00:59.077" CommunityOwnedDate="2010-10-11T05:17:24.027" />
  <row Id="10141" PostTypeId="2" ParentId="6625" CreationDate="2010-10-07T10:01:57.790" Score="0" ViewCount="" Body="&lt;p&gt;Lorenzo you have got this idea of the perfect collaborative environment. Remember it is an open source project and it takes a lot to keep people motivated on an idea. That is what the posts are saying. The starting might be a thing you can get to actualize, but what happens 5 months along. &lt;/p&gt;&#xA;" LastActivityDate="2010-10-07T10:01:57.790" />
  <row Id="10142" PostTypeId="2" ParentId="10061" CreationDate="2010-10-07T10:04:41.067" Score="11" ViewCount="" Body="&lt;p&gt;Visual Studio 2010 Ultimate is fantastic, but at $10k a pop is a bit out of my price range.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-07T10:04:41.067" CommentCount="1" />
  <row Id="10143" PostTypeId="2" ParentId="9042" CreationDate="2010-10-07T10:09:46.913" Score="3" ViewCount="" Body="&lt;p&gt;The biggest problem with Java at the moment is that it installs the Yahoo toolbar when it upgrades itself, unless you are careful to uncheck that option. Everything else is minor in comparison.&lt;/p&gt;&#xA;" OwnerUserId="923" LastEditorUserId="923" LastEditorDisplayName="" LastEditDate="2010-10-13T07:54:09.923" LastActivityDate="2010-10-13T07:54:09.923" />
  <row Id="10145" PostTypeId="2" ParentId="10114" CreationDate="2010-10-07T10:11:05.280" Score="0" ViewCount="" Body="&lt;p&gt;It depends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A language that is conceptually similar and uses the same libraries as one you have already mastered could take only a few days (consider: VB.NET when you already know C#).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it is a completely different paradigm to anything you have ever used before then it will take much longer and more effort.&lt;/p&gt;&#xA;" OwnerUserId="542" LastActivityDate="2010-10-07T10:11:05.280" CommentCount="4" />
  <row Id="10146" PostTypeId="2" ParentId="10136" CreationDate="2010-10-07T10:20:22.370" Score="8" ViewCount="" Body="&lt;p&gt;One bit of advice I like (not mine, but I'm too lazy to look for sources) is to &lt;strong&gt;explain&lt;/strong&gt; how each of your projects helped your customer/user/employer to improve or &quot;generate value&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example, you might have an item that reads:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Implemented Winforms application with .NET 2.0/Infragistics 2.3/SQL Server 2005/Crystal Reports 10.2/C#/Visual Studio 2005.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Try to rephrase to something like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Designed, built and delivered a desktop reporting application that helped the Accounting Dept. to reduce invoice payment time from a manual task that used to take 3 days to an automated process based on realtime updated reports that now takes 10 minutes end to end. Implemented as a Windows application built on the Microsoft .NET platform.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Explain what your employer achieved with your work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The technology tag soup can be left at the end of your resumé just to please recruiters that like to do text search for buzzwords.&lt;/p&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-10-07T10:20:22.370" CommunityOwnedDate="2010-10-07T10:20:22.370" CommentCount="1" />
  <row Id="10147" PostTypeId="2" ParentId="10114" CreationDate="2010-10-07T10:28:11.767" Score="7" ViewCount="" Body="&lt;p&gt;It depends from a few factors: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) what do you mean by &quot;language&quot; and &lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) what is your background before trying to learn a new language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for 1 I often think to Java: the language is quite simple if you already know C++ but knowing all libraries you have can require a lot of time and you can't possibly say &quot;I can use Java&quot; if you don't know, say. the I/O library (even if it's not strictly the &quot;language&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been using C++ for 15 years now (since I was 16) I can say that:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) When I try to learn a new said &quot;C++ like&quot; languages it takes me no more than a week to learn how to use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) When I try to learn a said &quot;dynamic&quot; language (like Python) it takes a 1-2 days to learn it but a lot more to master it (writing Python programs is easy, but writing them in pythonic way is not that easy for me).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) When I tried to learn LISP it was like a new world. I stopped because I didn't need it but I'm quite sure it would require a LOT of effort for me.&lt;/p&gt;&#xA;" OwnerUserId="4738" LastActivityDate="2010-10-07T10:28:11.767" />
  <row Id="10148" PostTypeId="2" ParentId="5920" CreationDate="2010-10-07T10:35:16.937" Score="0" ViewCount="" Body="&lt;p&gt;I currently created mine using Pages on Mac, so I have a .pages, .doc, and PDF version. And of  course everything looks pretty on it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm still trying to find the motivation to write up a web version of my resume. Maybe that will only feature html/css but I am hoping for some images no javascript plans at the moment.&lt;/p&gt;&#xA;" OwnerUserId="3910" LastActivityDate="2010-10-07T10:35:16.937" />
  <row Id="10149" PostTypeId="2" ParentId="9122" CreationDate="2010-10-07T10:36:47.777" Score="1" ViewCount="" Body="&lt;p&gt;I don't remember Visual Studio having something similar to Eclipse &lt;strong&gt;working sets&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.platform.doc.user/concepts/cworkset.htm&quot; rel=&quot;nofollow&quot;&gt;Working sets - Help - Eclipse SDK&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are a way to group projects included in your 'solution' (workspace in Eclipse) in a way that allows you to hide or show different sets of projects according to the part of the code on which you want to work. For example, you could define a working set containing only the unit test projects, or only the data access layer related modules in your project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is useful to filter almost any Eclipse View to show only the stuff related to the currently selected working set. For example, the error list: you don't have to see all the errors in the workspace, only the ones related to the projects in the active working set.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only way I imagine duplicating this functionality in Visual Studio is having a multiple solution approach, and opening and closing solutions manually.&lt;/p&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-10-07T10:36:47.777" CommentCount="1" />
  <row Id="10150" PostTypeId="2" ParentId="1599" CreationDate="2010-10-07T10:46:43.137" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;constantly optimizing my driving behaviour by remembering traffic light intervals to minimize breaking and accelerating to maximise feul economy.&lt;/li&gt;&#xA;&lt;li&gt;not putting spaces before parenthesis in english(like this)&lt;/li&gt;&#xA;&lt;li&gt;An inability to follow ambigious instructions(food recipes especially)&lt;/li&gt;&#xA;&lt;li&gt;Realising that the &quot;favourite amount&quot; selection on the ATM is just showing the last amount I withdrew instead of showing the amount that I have withdrawn the most based on a group by query with count&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4722" LastActivityDate="2010-10-07T10:46:43.137" CommunityOwnedDate="2010-10-07T10:46:43.137" CommentCount="1" />
  <row Id="10151" PostTypeId="2" ParentId="9122" CreationDate="2010-10-07T11:00:37.987" Score="2" ViewCount="" Body="&lt;p&gt;Eclipse &lt;strong&gt;Quick Access&lt;/strong&gt; is an amazing usability feature, in my opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Short version:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Imagine a &lt;a href=&quot;http://en.wikipedia.org/wiki/Quicksilver_%28software%29&quot; rel=&quot;nofollow&quot;&gt;QuickSilver&lt;/a&gt; or &lt;a href=&quot;http://www.launchy.net/&quot; rel=&quot;nofollow&quot;&gt;Launchy&lt;/a&gt; inside the IDE!.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;With Quick Access you can navigate to almost any part of the IDE using the keyboard. Yes, that can be done in Visual Studio also &lt;em&gt;but&lt;/em&gt; you need to learn the shortcut to each view: Ctrl+Alt+J to go to the Object Browser; Ctrl+Alt+L for Solution Explorer, etc; or use generic window switching shortcuts (like Ctrl+F6 to go to next window one by one).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Eclipse, you only need one shortcut: Ctrl+3 to open the Quick Access tool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Quick Access tool hat allows you to just start typing the name of any command, view, perspective, menu even source files! and it will auto-complete and suggest alternatives. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quick Access:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Will remember abbreviations and your most frequent accessed items and progressively adapt to the way you use it.&lt;/li&gt;&#xA;&lt;li&gt;Will also allow you type PascalCase abbreviations: You want to go to the Data Source Explorer view? type &lt;strong&gt;DSE&lt;/strong&gt; and it will show up as the first option.&lt;/li&gt;&#xA;&lt;li&gt;It will also show the keyboard shortcut for each item as a learning aid.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Read more:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://eclipsenuggets.blogspot.com/2007/05/quick-access-ctrl3-is-bliss-are-you-one.html&quot; rel=&quot;nofollow&quot;&gt;http://eclipsenuggets.blogspot.com/2007/05/quick-access-ctrl3-is-bliss-are-you-one.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://eclipse.dzone.com/articles/eclipse-36-hidden-treasures&quot; rel=&quot;nofollow&quot;&gt;http://eclipse.dzone.com/articles/eclipse-36-hidden-treasures&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="76" LastEditorUserId="76" LastEditorDisplayName="" LastEditDate="2010-10-07T11:19:05.853" LastActivityDate="2010-10-07T11:19:05.853" />
  <row Id="10152" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T11:05:41.820" Score="6" ViewCount="" Body="&lt;p&gt;high level managers who get pumped about a new idea, talk about it lots, then do nothing about it. would be sweet if people thought a bit before getting everyone else excited. &lt;/p&gt;&#xA;" OwnerUserId="4458" LastActivityDate="2010-10-07T11:05:41.820" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="1" />
  <row Id="10153" PostTypeId="2" ParentId="1599" CreationDate="2010-10-07T11:07:06.090" Score="0" ViewCount="" Body="&lt;p&gt;Always having to Ctrl+Z when typing something in another editor than &lt;code&gt;vi&lt;/code&gt; because I manage to hit Esc and automatically type &lt;code&gt;:x&lt;/code&gt; or &lt;code&gt;:w&lt;/code&gt; and Enter ...&lt;/p&gt;&#xA;" OwnerUserId="1258" LastActivityDate="2010-10-07T11:07:06.090" CommunityOwnedDate="2010-10-07T11:07:06.090" />
  <row Id="10154" PostTypeId="1" CreationDate="2010-10-07T11:13:13.020" Score="3" ViewCount="215" Body="&lt;p&gt;&lt;i&gt;(Hopefully this is deemed suitable for Programmers, not StackOverflow - I could imagine it getting closed at SO because there's no obvious 'right' answer.)&lt;/i&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have a large Delphi 2007 VCL project that uses things like DBXpress, Report Builder, DevExpress and TMS components (both visual and non-visual) etc. For reasons I won't bore you with, the company would like to start adding new modules to the program using .Net (via C# in particular). Rewriting from scratch isn't an option and given the heavy use of Report Builder and various other bits of Delphi-specific 3rd party code, I suspect that using something like TurnSharp to regenerate a C# project wouldn't work well either. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Ideally we want to keep our Win32 VCL Delphi code but add new modules (plug-ins, sections of contained functionality like wizards etc) via C#.&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So we're considering RemObjects' &lt;a href=&quot;http://www.remobjects.com/hydra/&quot; rel=&quot;nofollow&quot;&gt;Hydra&lt;/a&gt;, and in the next few weeks will probably have a go at evaluating it on a smaller-but-representative project first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wondered if anyone had experience of doing this kind of thing with Hydra...?&lt;/p&gt;&#xA;" OwnerUserId="4101" LastActivityDate="2011-01-06T17:30:55.063" Title="Has anyone used RemObjects' Hydra to mix a large Delphi project with new C# additions?" Tags="&lt;c#&gt;&lt;delphi&gt;" AnswerCount="1" FavoriteCount="2" />
  <row Id="10155" PostTypeId="2" ParentId="9122" CreationDate="2010-10-07T11:15:17.047" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Perspectives&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Notice how Visual Studio remembers the layout of the IDE (open windows, positions, etc) that you used the last time the debugger was running? And how it switches between that and the &quot;non debugging&quot; IDE layout automatically.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eclipse does the same with Perspectives. Only that you can fully customize them not only for debugging and not debugging, but you can create several layout with different IDE configurations and switch between them with a simple click. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Want to go to the debugging layout while not debugging?. Just click the on the Debugging Perspective toolbar button. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Want to invent a new layout with no editors and only the Package Explorer and the Javadoc view are visible? Move your windows as you want and save it as a new perspective.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It is a great way of switching your IDE appropriately when your mind is also switching from one kind of task to another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.user/reference/ref-dialog-open-resource.htm&quot; rel=&quot;nofollow&quot;&gt;Eclipse Help - Perspectives&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-10-07T11:15:17.047" />
  <row Id="10157" PostTypeId="2" ParentId="9062" CreationDate="2010-10-07T11:22:07.013" Score="0" ViewCount="" Body="&lt;p&gt;I've notices on many programmers, myself included (or even some or even non programmers) that while &quot;idling&quot;, thinking or talking on the phone, etc. when there is no active window on the screen, we tend to right-click on the desktop and click Refresh item repeatedly... I don't know about linux users, but with windows users this is a quite common thing...&lt;/p&gt;&#xA;" OwnerUserId="4748" LastActivityDate="2010-10-07T11:22:07.013" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="3" />
  <row Id="10158" PostTypeId="2" ParentId="10053" CreationDate="2010-10-07T11:28:08.440" Score="0" ViewCount="" Body="&lt;p&gt;When I'm stuck, I ask a colleague for some attention and start explaining what the problem is. You might realize what you've done wrong when explaining, or your colleague will help a lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, I've found it useful to take a short break and take a breath of fresh air.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best way to get inspiration tho is to leave the computer for a couple of hours and go out, exploring nature (I do this by road cycling).&lt;/p&gt;&#xA;" OwnerUserId="4643" LastActivityDate="2010-10-07T11:28:08.440" />
  <row Id="10159" PostTypeId="2" ParentId="9055" CreationDate="2010-10-07T11:36:32.277" Score="15" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/users/22656/jon-skeet&quot;&gt;Jon Skeet&lt;/a&gt; is the most famous one in StackOverflow. He is &gt;200K there.&lt;/p&gt;&#xA;" OwnerUserId="3730" LastActivityDate="2010-10-07T11:36:32.277" CommunityOwnedDate="2010-10-07T11:36:32.277" CommentCount="3" />
  <row Id="10160" PostTypeId="2" ParentId="552" CreationDate="2010-10-07T11:39:22.140" Score="0" ViewCount="" Body="&lt;p&gt;I learned so much from &lt;a href=&quot;http://www.pragprog.com/&quot; rel=&quot;nofollow&quot;&gt;Andy Hunt and Dave Thomas&lt;/a&gt; with &lt;em&gt;The Pragmatic Programmer&lt;/em&gt; that I guess it's probably them. They really inspired me to think of Programming as a craft and to want to become a more excellent craftsman.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-07T11:39:22.140" CommunityOwnedDate="2010-10-07T11:39:22.140" />
  <row Id="10161" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T12:10:43.083" Score="10" ViewCount="" Body="&lt;p&gt;debugging other's people code&lt;/p&gt;&#xA;" OwnerUserId="4738" LastEditorUserId="4738" LastEditorDisplayName="" LastEditDate="2010-10-07T13:41:25.183" LastActivityDate="2010-10-07T13:41:25.183" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="2" />
  <row Id="10162" PostTypeId="2" ParentId="10053" CreationDate="2010-10-07T12:22:09.013" Score="0" ViewCount="" Body="&lt;p&gt;Electric guitar/bass playing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doesn't work well at the office though. :) (Was better when I was hacking in my  college dorm or back at home as a kid.)&lt;/p&gt;&#xA;" OwnerUserId="3917" LastActivityDate="2010-10-07T12:22:09.013" />
  <row Id="10163" PostTypeId="2" ParentId="1460" CreationDate="2010-10-07T12:24:10.183" Score="2" ViewCount="" Body="&lt;p&gt;It depends on money.&#xA;If the advancement is so much that I could stop working at all to survive... then I'd say yes, so that I could use my free time (i.e. all the day) to work on opensource projects I can see on the net :P&lt;/p&gt;&#xA;" OwnerUserId="4738" LastActivityDate="2010-10-07T12:24:10.183" CommentCount="3" />
  <row Id="10164" PostTypeId="1" CreationDate="2010-10-07T12:41:22.387" Score="3" ViewCount="302" Body="&lt;p&gt;In order to understand better what goals to chose in a software project, what are your fears and hopes when getting into a new project?&lt;/p&gt;&#xA;" OwnerUserId="4723" LastEditorUserId="4723" LastEditorDisplayName="" LastEditDate="2010-10-14T15:40:47.323" LastActivityDate="2010-10-14T15:40:47.323" ClosedDate="2010-10-15T08:22:42.123" Title="What are fears and hopes when developing software?" Tags="&lt;motivation&gt;&lt;psychology&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="2" />
  <row Id="10165" PostTypeId="2" ParentId="10164" CreationDate="2010-10-07T12:46:26.133" Score="8" ViewCount="" Body="&lt;p&gt;Hopes:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You'll learn something&lt;/li&gt;&#xA;&lt;li&gt;You'll make something successful&lt;/li&gt;&#xA;&lt;li&gt;You'll make money&lt;/li&gt;&#xA;&lt;li&gt;You'll make something that helps people&lt;/li&gt;&#xA;&lt;li&gt;You'll learn from other people on the project if not alone&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Fears:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Your project is failure&lt;/li&gt;&#xA;&lt;li&gt;People never get to see your work&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-10-07T12:46:26.133" CommentCount="1" />
  <row Id="10166" PostTypeId="1" CreationDate="2010-10-07T12:47:11.060" Score="13" ViewCount="383" Body="&lt;p&gt;Hello developers developers developers,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm really interested in hearing from developers who are (or have previously) working at a company that works with the &quot;20% time&quot; culture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(For anyone unfamiliar with 20% time it's the culture of an employer allowing it's employees to spend 20% of their time working on projects that they find interesting - it may be inventing a new app, or improving an existing process, etc. Some people &lt;em&gt;may&lt;/em&gt; know this as Skunk work, however that term may not mean anything (or something entirely different) to you).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many documented cases of great products being born out of 20%/skunk work at a company. It seems like a win/win situation; the company potentially gain a great new product or application, and the developer has the oppurtunity to flex his/her creative muscles and &lt;strong&gt;innovate&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tried on numerous occasions to introduce some form of 20%/Skunk working at my previous employer with no success.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What are your experiences of 20%/Skunk working, do you enjoy it?&lt;/li&gt;&#xA;&lt;li&gt;Do/Did you work somewhere that encourages it but you don't take part? (did you feel pressured to deliver new ideas and don't consider yourself &lt;em&gt;that kind of developer&lt;/em&gt;?)&lt;/li&gt;&#xA;&lt;li&gt;I'd be particularly interested in hearing from someone who managed to implement 20%/Skunk working as part of the culture at their employer.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Cheers!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT: Added a couple of common 'themes' from the answers and comments posted so far.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's a culture - it's unlikely to work if introduced as some kind of policy (but open to debate), and isn't something that can be installed by developers.&lt;/li&gt;&#xA;&lt;li&gt;It may work better at companies who produce their own products (either publicly or for use within the company) as opposed to companies that make their profits by implementing services for other companies (such as consultancies that charge an hourly rate per developer).&lt;/li&gt;&#xA;&lt;li&gt;Some developers struggle when given carte blanche to innovate. A lack of direction may be difficult for some developers - as noted by John Dibling who previously managed a team with a 20% culture. If he was doing it again he'd offer a little more guidance and suggestions on things to work on.&lt;/li&gt;&#xA;&lt;li&gt;Oh, and we've also established that Skunk work has a different meaning to most of the world ;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3890" LastEditorUserId="3890" LastEditorDisplayName="" LastEditDate="2010-10-08T10:55:00.997" LastActivityDate="2010-10-08T10:55:00.997" Title="&quot;20% time&quot; - what are your experiences?" Tags="&lt;work&gt;&lt;creativity&gt;" AnswerCount="4" CommentCount="10" FavoriteCount="6" />
  <row Id="10167" PostTypeId="2" ParentId="10164" CreationDate="2010-10-07T12:47:13.837" Score="8" ViewCount="" Body="&lt;p&gt;fear : that my boss finds out how long I spend on stacksites&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-10-07T12:47:13.837" />
  <row Id="10168" PostTypeId="2" ParentId="10114" CreationDate="2010-10-07T12:47:41.693" Score="1" ViewCount="" Body="&lt;p&gt;Most modern languages are constantly evolving, especially those that come with large frameworks, and so I honestly don't think you can ever claim to have mastered one. Just at the point where you think you know most of it there will be something new. It's a moving target IMO.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-10-07T12:47:41.693" />
  <row Id="10169" PostTypeId="2" ParentId="10164" CreationDate="2010-10-07T12:48:04.490" Score="4" ViewCount="" Body="&lt;p&gt;Hopes:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Build something so I never have to code again...and then code for fun.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Fears:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Never getting to build your dream project.&lt;/li&gt;&#xA;&lt;li&gt;Using VB6 with Visual Source Safe&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-07T12:48:04.490" CommentCount="1" />
  <row Id="10170" PostTypeId="2" ParentId="9062" CreationDate="2010-10-07T12:51:36.697" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;there is no such thing like my text editor to compose a 2-word e-mail.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="3708" LastActivityDate="2010-10-07T12:51:36.697" CommunityOwnedDate="2010-10-11T05:17:24.027" />
  <row Id="10171" PostTypeId="2" ParentId="10164" CreationDate="2010-10-07T12:55:49.810" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Fear :&lt;/strong&gt; Frequent change in requirement that always puts me in dilemma whether to re-structure the entire logic or just do a patch work &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Hope :&lt;/strong&gt; That my code would always work bug free&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-10-07T12:55:49.810" CommentCount="1" />
  <row Id="10172" PostTypeId="1" CreationDate="2010-10-07T12:58:32.407" Score="8" ViewCount="596" Body="&lt;p&gt;We have a small team in our department and typically employ 1-3 students/interns.  The problem we have is retention.  We like to hire a student that will stick around as part of the team for more than just a summer quarter.  The problem is though the last 4 students we hired, up front we discussed this with them and they all ended up leaving earlier than we would have liked.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The relationships all ended in a good fashion, the students either obtained teaching assistant or research positions within the university, or went on to bigger and better things.  This is all understandable and we do not hold it against them for doing what is best for them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But my perspective is different as I worked within our department for 2 years during undergraduate at which point I was brought on full time upon graduation.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can we retain students?  We give them hardware they need/want, we provide them with problems to solve in anyway they see fit (within reason).  All in all to me this type of job for a student programmer is so flexible and awesome I cannot see how anyone would want to leave.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thoughts ? &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-11-04T02:38:21.267" Title="How to interview student/intern programmers?" Tags="&lt;interview&gt;&lt;interview-questions&gt;&lt;hiring&gt;&lt;students&gt;&lt;intern&gt;" AnswerCount="9" CommentCount="13" FavoriteCount="0" />
  <row Id="10174" PostTypeId="2" ParentId="10172" CreationDate="2010-10-07T13:07:17.573" Score="5" ViewCount="" Body="&lt;p&gt;I worked as a student programmer as an intern at two different jobs while in school. I am now graduated and work with another company full time. (a third).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main reason I didn't stick with those companies while as a student was because I didn't see an opportunity to move forward/up in the company. Also, they use one technology and didn't show any signs of expanding out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a student about to graduate you feel that you shouldn't make a commitment that easily because you don't want thousands of dollars and 4 years of school to go to one job where you will sit and get stale (even though that's the case a lot of times.) Security isn't in the minds of those kids yet, but it's not their fault.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Show them the company can grow, and they can grow with it in their careers, and show them you guys are open to new technologies and learning.&lt;/p&gt;&#xA;" OwnerUserId="3577" LastActivityDate="2010-10-07T13:07:17.573" CommentCount="2" />
  <row Id="10175" PostTypeId="2" ParentId="10164" CreationDate="2010-10-07T13:09:11.773" Score="2" ViewCount="" Body="&lt;p&gt;I hope to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;learn new things, technologies, tools and languages, and in general - advance my knowledge&lt;/li&gt;&#xA;&lt;li&gt;cooperate with my colleagues in new and interesting ways&lt;/li&gt;&#xA;&lt;li&gt;write code I won't be ashamed of in 10 years (this is highly unlikely:))&lt;/li&gt;&#xA;&lt;li&gt;similar to above, write code which won't be cursed at when someone inherits it one day&lt;/li&gt;&#xA;&lt;li&gt;not only finish the project in time, but make it easy to maintain and extend (I'd sacrifice a deadline in order to accomplish this, if I have the option)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I fear that:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;there is some unknown obstacle which will play merry hell with the deadline/implementation&lt;/li&gt;&#xA;&lt;li&gt;I will have to cooperate with PITA colleagues (plenty of those around...)&lt;/li&gt;&#xA;&lt;li&gt;specs will change often because the higher-ups don't know when to stop&lt;/li&gt;&#xA;&lt;li&gt;there might not be any code freeze (this happens a lot..:-/)&lt;/li&gt;&#xA;&lt;li&gt;the project will be tedious and I'll learn nothing new&lt;/li&gt;&#xA;&lt;li&gt;the project will be yet another accounting/invoicing/[insert your favourite here] app&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I guess the most important thing is that you've gained something after each project is finished. Whether it's familiarity with a new tool, language or just general experience, that's what I'm after. This, I believe, is essential for any developer to advance. Otherwise, you really become a code monkey.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But most of all, it has to be as fun as possible. ;)&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-10-07T13:09:11.773" CommentCount="3" />
  <row Id="10176" PostTypeId="2" ParentId="10164" CreationDate="2010-10-07T13:21:12.700" Score="2" ViewCount="" Body="&lt;p&gt;Hopes: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;That the applications I produce delight the people who use them. Software should be painless and joyful.&lt;/li&gt;&#xA;&lt;li&gt;That it doesn't run and run and run - nothing saps your will like a project that never ends (I think most developers experience this at some point).&lt;/li&gt;&#xA;&lt;li&gt;The opportunity to invent or use a new technology.&lt;/li&gt;&#xA;&lt;li&gt;For me personally; the opportunity to do more than code. It's great to spend a little time doing image work in photoshop or designing a UI.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Fears: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;That somehow, through my programming, I make someone's day worse - through buggy code or poor UI design. &lt;/li&gt;&#xA;&lt;li&gt;Constantly churning out the same, predictable applications.&lt;/li&gt;&#xA;&lt;li&gt;A system tester I used to know called Dom.&lt;/li&gt;&#xA;&lt;li&gt;Oh, and Visual Basic.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3890" LastActivityDate="2010-10-07T13:21:12.700" />
  <row Id="10177" PostTypeId="2" ParentId="10114" CreationDate="2010-10-07T13:24:12.940" Score="0" ViewCount="" Body="&lt;p&gt;took me about 9 months to master Objective C, I was coming from php. Though I wouldn't call it mastering, just becoming good at it. There's still lots of stuff to learn, it's just that I can write complex programs now without running into problems.&lt;/p&gt;&#xA;" OwnerUserId="2998" LastActivityDate="2010-10-07T13:24:12.940" CommentCount="1" />
  <row Id="10178" PostTypeId="2" ParentId="10053" CreationDate="2010-10-07T13:26:06.677" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Go to work :)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an undergraduate, my programming of a 3D renderer for my final project was interrupted every day by a shift at a supermarket.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is nothing like scanning produce for 4 hours for finding fresh ways to solve a difficult problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think any prolonged and unstimulating task that prevents one from actually programming or even looking at the code would do the same.&lt;/p&gt;&#xA;" OwnerUserId="3898" LastActivityDate="2010-10-07T13:26:06.677" />
  <row Id="10180" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T13:35:39.390" Score="8" ViewCount="" Body="&lt;p&gt;Pair Programming!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, pairing all the day is boring. &lt;/p&gt;&#xA;" OwnerUserId="3998" LastActivityDate="2010-10-07T13:35:39.390" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="6" />
  <row Id="10181" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T13:39:21.937" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;QA&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's not to say QA is not important, it's just that there is no QA department on the project I'm currently working on (which is unbelievable considering the project), so all the software has to be thoroughly tested by us developers. This isn't unit testing or bench testing but full systems integration testing which can take days to do. Developers are the worst people to have QA testing software:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;we're expensive&lt;/li&gt;&#xA;&lt;li&gt;we can be working on stuff needed to complete the project on time&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;so it usually isn't done fully or gets put back as more important stuff comes in. &lt;/p&gt;&#xA;" OwnerUserId="914" LastActivityDate="2010-10-07T13:39:21.937" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="2" />
  <row Id="10182" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T13:46:08.783" Score="5" ViewCount="" Body="&lt;p&gt;Inflexible work hours. I often end up staying way past the official closing time anyway.&lt;/p&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-10-07T13:46:08.783" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="1" />
  <row Id="10183" PostTypeId="2" ParentId="10053" CreationDate="2010-10-07T13:51:44.510" Score="0" ViewCount="" Body="&lt;p&gt;Work on something else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find myself thinking about the same problem if I just go for a walk, play a game, or do something other than work. And taking an extended break (e.g. several hours/days) is not an option when I've got a deadline.&lt;/p&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-10-07T13:51:44.510" />
  <row Id="10186" PostTypeId="2" ParentId="10166" CreationDate="2010-10-07T14:03:52.473" Score="1" ViewCount="" Body="&lt;p&gt;Read this &lt;a href=&quot;http://www.scottberkun.com/blog/2008/thoughts-on-googles-20-time/&quot; rel=&quot;nofollow&quot;&gt;blog post by Scott Berkun&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To quote him:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Google’s 20% time is more of an&#xA;  attitude and culture than a rule.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-07T14:03:52.473" CommentCount="6" />
  <row Id="10187" PostTypeId="2" ParentId="10114" CreationDate="2010-10-07T14:05:38.883" Score="1" ViewCount="" Body="&lt;p&gt;It took me a few (two?) years to master C90, after working in similar languages.  I haven't come close to mastering C++95, after spending a lot more time and work on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Part of it is the size of the language.  Part of it is knowing how to use it (the fact that I understand how C++ templates work doesn't make me comfortable with template metaprogramming).  Part of it is what new things you have to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Syntax is easy to learn.  Go from one language to one that does essentially the same things and you'll be productive almost immediately.  Concepts are difficult.  It took me longer to get the hang of object-oriented programming in C++ than to learn C from scratch.  Implications can be difficult:  knowing how Common Lisp &lt;code&gt;defmacro&lt;/code&gt; works, or how C++ templates work, won't tell you how to use them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, there really is no good answer to the question as asked, except &quot;It depends&quot;.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-07T14:05:38.883" />
  <row Id="10188" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T14:08:14.613" Score="16" ViewCount="" Body="&lt;p&gt;feature creep and &quot;moving target&quot; specs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;a recent project i was on had this problem.  the client was all &quot;implement this feature to work this way&quot; and then, they would be all &quot;mmmm, no, do it like this instead&quot; then, after rewriting the code, they decided to go back to the first way I did it. I REALLY wanted to hit someone.&lt;/p&gt;&#xA;" OwnerUserId="882" LastEditorUserId="882" LastEditorDisplayName="" LastEditDate="2010-10-07T14:45:27.583" LastActivityDate="2010-10-07T14:45:27.583" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="4" />
  <row Id="10190" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T14:12:29.167" Score="2" ViewCount="" Body="&lt;p&gt;Having to answer the phone and do tech support for the ISP-esque side of the business I know nothing about.&lt;/p&gt;&#xA;" OwnerUserId="2416" LastActivityDate="2010-10-07T14:12:29.167" CommunityOwnedDate="2010-10-07T16:21:54.780" />
  <row Id="10191" PostTypeId="2" ParentId="552" CreationDate="2010-10-07T14:15:51.260" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Andrew Hunt and David Thomas&lt;/strong&gt;, authors of &lt;a href=&quot;http://www.pragprog.com/the-pragmatic-programmer&quot; rel=&quot;nofollow&quot;&gt;The Pragmatic Programmer&lt;/a&gt;. This was one of the first books that looked at specific things that programmers can do to be better at their tasks. Ten years old and still current.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-07T14:15:51.260" CommunityOwnedDate="2010-10-07T14:15:51.260" />
  <row Id="10192" PostTypeId="2" ParentId="9042" CreationDate="2010-10-07T14:21:37.047" Score="1" ViewCount="" Body="&lt;p&gt;Java is hated for the same reasons why PHP and VB are hated. They are day-job languages that programmers use because someone is paying them to solve someone else's problems. Most skilled programmers that I've worked with don't use Java, PHP or VB for after hours coding. They use their pet languages. Python, ruby are common. So are the lisp like languages. &lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-07T14:21:37.047" />
  <row Id="10194" PostTypeId="2" ParentId="10166" CreationDate="2010-10-07T14:22:56.860" Score="3" ViewCount="" Body="&lt;p&gt;I haven't worked in a place where such works were officially recognized.  But from my conversations and attempts to learn about this practice, I found this - well, mostly what the &quot;20% time&quot; is not:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it's indeed a culture and not a policy&lt;/li&gt;&#xA;&lt;li&gt;it can't be decreed by the senior management&lt;/li&gt;&#xA;&lt;li&gt;it can't be instituted by a committee of developers&lt;/li&gt;&#xA;&lt;li&gt;it is not 32 hours on this and 8 hours on that&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-07T14:22:56.860" CommentCount="2" />
  <row Id="10196" PostTypeId="2" ParentId="5834" CreationDate="2010-10-07T14:28:35.797" Score="1" ViewCount="" Body="&lt;p&gt;On refactoring days and code review days, &lt;strong&gt;garbage man&lt;/strong&gt;. My productivity is based solely on what was discarded.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-07T14:28:35.797" CommentCount="1" />
  <row Id="10197" PostTypeId="2" ParentId="10172" CreationDate="2010-10-07T14:30:48.153" Score="2" ViewCount="" Body="&lt;p&gt;I'm currently working at a web development company part time while going to university.&lt;br&gt;&#xA;  Although I enjoy that it keeps me afloat while paying for school I don't think I would stick around for long after graduating.  The main reason is that with a CIS Degree under my belt I would suddenly be worth a fair bit more than just a 'student'.  So changing jobs is a good way to get a signifigant pay raise, likely more than what I would get if I just ask for a raise.   Plus I kind of tired of maintaining code from other past students who sometimes do wierd things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want try new things and see what interesting things I can do.  Doing the same thing after university that you were doing before kind of defies the point of university, which is to change who you are.&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-10-07T14:30:48.153" CommentCount="2" />
  <row Id="10198" PostTypeId="2" ParentId="2654" CreationDate="2010-10-07T14:31:52.270" Score="2" ViewCount="" Body="&lt;p&gt;For C++ inheritance. Pointing out that,&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Multiple Inheritance&lt;/strong&gt;: Only very rarely is multiple implementation inheritance actually useful.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For other things.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Preprocessor Macros&lt;/strong&gt;: Be very cautious with macros. Prefer inline functions, enums, and const variables to macros.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Smart Pointers&lt;/strong&gt;: If you actually need pointer semantics, scoped_ptr  is great. You should only use std::tr1::shared_ptr  under very specific conditions, such as when objects need to be held by STL containers. You should never use auto_ptr. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-07T14:31:52.270" />
  <row Id="10200" PostTypeId="2" ParentId="5834" CreationDate="2010-10-07T14:39:32.983" Score="0" ViewCount="" Body="&lt;p&gt;With all the computers and other components on cars now days, I would have to say &lt;strong&gt;auto mechanic&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-10-07T14:39:32.983" />
  <row Id="10201" PostTypeId="2" ParentId="10172" CreationDate="2010-10-07T14:40:29.193" Score="1" ViewCount="" Body="&lt;p&gt;I would say go easy with technical questions in the interview. I interviewed at a company straight out of university, with zero commercial experience.  I didn't handle the technical interview well, but they gave me the role anyway.  A year later I was a technical lead at the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Spotting motivation to learn, and passion for the industry will be keen.&lt;/p&gt;&#xA;" OwnerUserId="1388" LastActivityDate="2010-10-07T14:40:29.193" CommentCount="3" />
  <row Id="10202" PostTypeId="2" ParentId="10166" CreationDate="2010-10-07T14:41:04.043" Score="2" ViewCount="" Body="&lt;p&gt;From my small experience, a lot of our projects actually started in this fashion.  We had free time and bandwidth to take on new projects, we got together and came up with potential cool/forward thinking ideas for our department.  In our spare time we developed a prototype and once it was fairly polished, presented to upper level and usually they see the benefit.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems to me that upper level knows what they want if they see it but does not know they need/want it until they see it.  Prototyping has allowed us to create our own projects, propose them and then once approved divert more time to them to complete.&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-07T14:41:04.043" CommentCount="2" />
  <row Id="10203" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T14:42:31.457" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;the stress&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I could go home and not think about work...&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-10-07T14:42:31.457" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="1" />
  <row Id="10205" PostTypeId="2" ParentId="10128" CreationDate="2010-10-07T14:44:00.483" Score="1" ViewCount="" Body="&lt;p&gt;I looked at the web site when it was announced - &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mouse use seems way overboard for regular coding work.&lt;/li&gt;&#xA;&lt;li&gt;Java? Seriously? &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-07T14:44:00.483" CommunityOwnedDate="2010-10-07T14:44:00.483" CommentCount="2" />
  <row Id="10206" PostTypeId="1" AcceptedAnswerId="12213" CreationDate="2010-10-07T14:44:05.967" Score="5" ViewCount="235" Body="&lt;p&gt;I came across this list of management behaviors (&lt;a href=&quot;http://suven.posterous.com/dos-and-donts-leading-software-development-te&quot; rel=&quot;nofollow&quot;&gt;http://suven.posterous.com/dos-and-donts-leading-software-development-te&lt;/a&gt;).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it has some gems, but I'm not 100% on some of them. I've marked those ones with italics and my name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you, as a software developer, think that these are appealing? Which three would be your TOP &quot;gotta have 'em&quot; items from your management?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Don't&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't scale teams vertically by adding more people&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't create a team with more that 10 people&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't call people resources, its not cool and is really offensive&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't assume that people in teams are interchangeable&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't compare teams to each other when highlighting weaknesses&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't pitch teams against each other&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't create fake deadlines&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't force standardisation of tools and processes across teams &lt;em&gt;(I think this one can be argued for some situations - Todd)&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't hire product managers who don't have a clue about software development&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't exclusively use KPI's to drive your teams &lt;em&gt;(Not only is it ineffective, but developers will find ways to drive the KPI metrics - &quot;You want lines of code? I've got your lines of code!&quot; - Todd)&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't force your teams to work overtime, even asking is bound to create tension&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't assume that double the people equals half the time&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Do&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Do scale horizontally by creating more teams of about 5-8 people&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do have a vision for the product and team&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do appreciate that every team is different, so allocate projects appropriately&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do motivate your teams &lt;em&gt;(Wow - that is one slippery, hard-to-define one. I agree with the sentiment, but it's like saying &quot;Be effective&quot; with no guidelines. -Todd)&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do allow people to move between teams&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do have sessions to discuss the product vision, strategy, technology and process&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do involve the team when determining the team/product name&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do allow your teams to make their own decisions especially if they are the ones with the expertise&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do involve your team on any decision that impacts how or what they work on&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do encourage a development methodology that matches the team and the project&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do pay attention to every individual's personal development plan&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-10-15T09:30:29.070" Title="Does this list of management behaviors actually appeal to software developers?" Tags="&lt;development-process&gt;&lt;software-developer&gt;&lt;management&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="5" />
  <row Id="10207" PostTypeId="2" ParentId="2654" CreationDate="2010-10-07T14:44:54.943" Score="3" ViewCount="" Body="&lt;p&gt;Formatting - especially Indentation! I'm using Delphi and the first thing to do when I get code not formatted to my usage I reformat it. The built-in formatter in Delphi serves as one of the most used fetaures in these cases.&lt;/p&gt;&#xA;" OwnerUserId="4763" LastActivityDate="2010-10-07T14:44:54.943" />
  <row Id="10208" PostTypeId="1" AcceptedAnswerId="10219" CreationDate="2010-10-07T14:45:08.637" Score="17" ViewCount="1384" Body="&lt;p&gt;As someone who is now finding himself on the other end of the interview table, I'm wondering how useful these questions are from an employer's perspective. Some of my coworkers think they're good because you can see &quot;how they respond,&quot; but I'm not convinced it tells you anything useful, for several reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's not a very comfortable question and can lead people to twist their answers, even if not on purpose&lt;/li&gt;&#xA;&lt;li&gt;People may not fully know their greatest strengths or weaknesses (i.e. judge them by their peers)&lt;/li&gt;&#xA;&lt;li&gt;Explaining what a strength is isn't as good as showing it&lt;/li&gt;&#xA;&lt;li&gt;I still don't know any more about the candidate afterwards&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The rationale of my coworkers is that it can help weed out people that give ridiculous responses, like one guy that said his greatest strength was &quot;his intellect&quot; or people that try to turn the weakness question into a strength like &quot;I work too hard.&quot; But I think there's more effective ways to determine such things. If you want to see if someone's smart, ask them technical questions. If you want to see if someone is productive, look at their work history. If you want to see how someone reacts under stress or change, ask them how they've dealt with it and ask for concrete examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are people's thoughts on these questions, from the perspective of an interviewer? What do they really tell you about a candidate, and what are better alternatives? How do I convince my colleagues of this?&lt;/p&gt;&#xA;" OwnerUserId="1360" LastActivityDate="2010-10-24T22:27:27.470" Title="Effectiveness of &quot;what is your greatest strength/weakness&quot; interview questions" Tags="&lt;interview-questions&gt;" AnswerCount="13" CommentCount="5" FavoriteCount="5" />
  <row Id="10209" PostTypeId="2" ParentId="7966" CreationDate="2010-10-07T14:46:01.787" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Credit where credit due and enough knowledge to be able to assign it&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd have added listens well but upvoted that instead.  &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;If there's someone who constantly takes credit for features found in libraries either developed in-house, open source or third party then that should get shot down, not rewarded.  &lt;/li&gt;&#xA;&lt;li&gt;If someone is being assigned all the bug responsibilities because he's actually writing unit tests and finding them then he should be rewarded, not punished.  Finding bugs is not the same as writing them in the first place.&lt;/li&gt;&#xA;&lt;li&gt;If a develop or a group of developers bust ass to make deadlines, they should be lauded, not the managers for coming up with the deadlines in the first place.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-07T14:46:01.787" CommunityOwnedDate="2011-01-26T19:57:30.693" CommentCount="3" />
  <row Id="10210" PostTypeId="1" AcceptedAnswerId="10257" CreationDate="2010-10-07T14:46:47.237" Score="3" ViewCount="245" Body="&lt;p&gt;I primarily work in C++.  My question is, for a C++ developer, what languages are beneficial to learn, from a job-profile point of view.  For example, I see a lot of work combining C++ and Php these days.  Conversely, I don't see a lot of work combining Ruby and C++ (unfortunately).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, learning another language is beneficial regardless of whether it compliments a language.&lt;/p&gt;&#xA;" OwnerUserId="1388" LastEditorUserId="1388" LastEditorDisplayName="" LastEditDate="2010-10-07T15:00:10.497" LastActivityDate="2010-10-07T16:31:37.063" Title="Languages to complement C++" Tags="&lt;programming-languages&gt;&lt;c++&gt;" AnswerCount="8" CommentCount="1" />
  <row Id="10211" PostTypeId="2" ParentId="2654" CreationDate="2010-10-07T14:47:07.780" Score="0" ViewCount="" Body="&lt;p&gt;Unique naming method, does not matter on the language. For example.. G = Global, L = Local ,P = Parameter. Now when you have a variable like G_strFoo I know that it's definition can be located in my global file. Helps with keeping up with all the variables in my programs.&lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-10-07T14:47:07.780" CommentCount="1" />
  <row Id="10212" PostTypeId="2" ParentId="7966" CreationDate="2010-10-07T14:50:27.107" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Understanding what programming consists of.&lt;/strong&gt; You would be surprised on how many managers know nothing about the matter.&lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-10-07T14:50:27.107" CommunityOwnedDate="2011-01-26T19:57:30.693" />
  <row Id="10213" PostTypeId="2" ParentId="10210" CreationDate="2010-10-07T14:50:35.000" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Shell/Bash scripting I see is a great thing to have in your tool belt.  &lt;/li&gt;&#xA;&lt;li&gt;PHP as you said is a good one.&lt;/li&gt;&#xA;&lt;li&gt;C programming is also fair game as far as I am concerned.  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-07T14:50:35.000" />
  <row Id="10214" PostTypeId="2" ParentId="10210" CreationDate="2010-10-07T14:50:53.673" Score="8" ViewCount="" Body="&lt;p&gt;I think PHP compliments C++ nicely. In both cases, you're scraping the bottom of the barrel of languages, but PHP has so many annoyances that it makes C++ look like a diamond in comparison.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as languages that &lt;em&gt;complement&lt;/em&gt; C++, I'm not sure.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-07T14:50:53.673" CommentCount="6" />
  <row Id="10215" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T14:52:41.957" Score="26" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Work.&lt;/strong&gt; Ideally, I'd be able to just come in, drink some coffee, have a few Cokes, go out to lunch with coworkers, screw around on the computer, and then go home at the end of the day, after collecting my paycheck.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-07T14:52:41.957" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="5" />
  <row Id="10216" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T14:56:51.617" Score="8" ViewCount="" Body="&lt;p&gt;What about:&#xA;&lt;strong&gt;Myself&lt;/strong&gt;  (If I could do it without losing the paycheck. ;-))&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love my job, but since we're speculating, I thought I'd go for the homerun. &lt;/p&gt;&#xA;" OwnerUserId="4769" LastEditorUserId="4769" LastEditorDisplayName="" LastEditDate="2010-10-07T15:02:35.580" LastActivityDate="2010-10-07T15:02:35.580" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="2" />
  <row Id="10217" PostTypeId="2" ParentId="9055" CreationDate="2010-10-07T14:58:29.083" Score="17" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Simon Peyton Jones&lt;/strong&gt;, one of the designers of the Haskell programming language, and one of the leading programming language theorists in the world. If you're interested in programming language, knowing the name Simon Peyton Jones is a must.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-07T14:58:29.083" CommunityOwnedDate="2010-10-07T14:58:29.083" />
  <row Id="10218" PostTypeId="2" ParentId="5834" CreationDate="2010-10-07T14:58:51.953" Score="0" ViewCount="" Body="&lt;p&gt;In fact programmer is not really unique, there are hundreds of jobs that require similar creativity and technical knowledge. Sometimes in domains we wouldn't even imagine. It's just that from the outside they might look simpler than they are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Non programmers also have this vision about our work, which make them say things like:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Can you make me an ebay like website this weekend. I'll pay you a beer.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;or even from other programmers about the app you've been working on for months&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I could do that in two days&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4751" LastActivityDate="2010-10-07T14:58:51.953" />
  <row Id="10219" PostTypeId="2" ParentId="10208" CreationDate="2010-10-07T15:01:44.037" Score="16" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Not very.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Any question for which a good percentage of candidates will have a canned response is of limited value, since you're often not getting the real them.  Everyone and their cousin has heard of &quot;what is your greatest weakness.&quot;&lt;/li&gt;&#xA;&lt;li&gt;The answer encourages lying: honest people will describe a fault and end up looking bad, while less honest people will spin a strength as a fault and look good.&lt;/li&gt;&#xA;&lt;li&gt;The question is so dated that, in my opinion, it reflects poorly on your company to ask it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-07T15:01:44.037" CommentCount="3" />
  <row Id="10220" PostTypeId="2" ParentId="10210" CreationDate="2010-10-07T15:02:12.247" Score="5" ViewCount="" Body="&lt;p&gt;Python is often used in combination with C++ for file manipulation (and c++ code generation) and embedded scripting.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-10-07T15:02:12.247" />
  <row Id="10221" PostTypeId="2" ParentId="10172" CreationDate="2010-10-07T15:07:53.927" Score="1" ViewCount="" Body="&lt;p&gt;You have to cover some basic programming concepts to make sure they stayed awake during classes - algorithms, data structures, etc. I'd also want to hear IN DETAIL about some of the programming assignments they have done. I always find it interesting when a potetial employee can not tell me much about the programming assignment that was a major part of their grade.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next would be trying to figure out if they had reasoning skills. Can they break a problem down into manageable pieces? I really don't care if they get a logic question correct as long as they can tell me the approach they would use (and of course the approach seems appropriate.)&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-07T15:07:53.927" />
  <row Id="10222" PostTypeId="2" ParentId="10210" CreationDate="2010-10-07T15:11:10.553" Score="1" ViewCount="" Body="&lt;p&gt;It does depend a little upon the platforms you are supporting, but if Windows is a platform, learning C# and the related techologies should keep you employeed for some time.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-07T15:11:10.553" />
  <row Id="10223" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T15:12:56.603" Score="5" ViewCount="" Body="&lt;p&gt;Doing tech support. I've spend many hours looking for bugs that didn't exist because customers reported things wrongly or said they did something when they didn't.&lt;/p&gt;&#xA;" OwnerUserId="820" LastActivityDate="2010-10-07T15:12:56.603" CommunityOwnedDate="2010-10-07T16:21:54.780" />
  <row Id="10224" PostTypeId="2" ParentId="10208" CreationDate="2010-10-07T15:14:13.280" Score="0" ViewCount="" Body="&lt;p&gt;I don't think it is a very useful question for any engineering profession - perhaps for a different line of work with less structure. I think we have more concreate questions that can be asked that devulge better information.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-07T15:14:13.280" />
  <row Id="10225" PostTypeId="2" ParentId="10208" CreationDate="2010-10-07T15:14:26.010" Score="1" ViewCount="" Body="&lt;p&gt;I will speak from a position of an interviewee. When I prepare for an interview, I always take time to think about these questions. &quot;Your strengths&quot; question may be easier to answer, because all of us are proud of our own accomplishments and can talk about them. In an interview people will almost always try to over-glorify their accomplishments to try to look better. When it comes to &quot;your weaknesses&quot; question, it is very hard to answer it completely honestly and say something constructive and negative about yourself. Either, an interviewee will pick a weakness that's pretty minor, and will not give an interviewer any useful information or try to turn a weakness into a &quot;strength&quot;. For example, &quot;I think my weakness is that I tend to overwork myself.&quot; Either way, all the weaknesses and strengths will become obvious during the probation period. That's what it's for - to see if the employee-employer relationship is mutually beneficial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Previous employers may be a better source of information for these kind of questions.&lt;/strong&gt; Ask for references and follow up.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-07T15:14:26.010" CommentCount="1" />
  <row Id="10226" PostTypeId="2" ParentId="10172" CreationDate="2010-10-07T15:15:15.820" Score="0" ViewCount="" Body="&lt;p&gt;Why are they taking university positions over yours? They leave on good terms, so just ask them during the exit interview? Are they looking for careers in academe? Do they get 'brownie points' for working with a professor? Is spending time in these positions required to keep scholarship money? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often on a big campus having a job there is a big benefit to having to commute to a job. Students also need flexible time. Let them work remotely some times. Give them a great laptop to use for the time they are employed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make them explain why they want to work for your company in the first place and maybe you'll find out what will make them stay. The short internship may be the minimum entry on their resume they need to go work somewhere else or complete their degree.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-07T15:15:15.820" CommentCount="2" />
  <row Id="10228" PostTypeId="2" ParentId="10164" CreationDate="2010-10-07T15:25:17.417" Score="0" ViewCount="" Body="&lt;p&gt;Hope:&lt;br&gt;&#xA;&amp;nbsp;&amp;nbsp;&amp;nbsp;- Apply my knowledge in a better way than in other projects I've already done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fears:&lt;br&gt;&#xA;&amp;nbsp;&amp;nbsp;&amp;nbsp;- Waste too much time time modifiying the requirements because the user don't know what they want.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-07T15:25:17.417" />
  <row Id="10229" PostTypeId="2" ParentId="10210" CreationDate="2010-10-07T15:25:30.877" Score="3" ViewCount="" Body="&lt;h2&gt;Erlang&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I recommend &lt;a href=&quot;http://en.wikipedia.org/wiki/Erlang_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Erlang&lt;/a&gt;. C++ is mostly used for performance, but it doesn't have great support for large scale concurrency. With that in mind Elrang would be a great complement since it has great concurrency performance but not very good performance for number crunching. Erlang is often used together with C/C++ in distributed and embedded systems, specially in telecom. Erlang is good support for interfacing with C&amp;amp;C++.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-07T15:25:30.877" />
  <row Id="10230" PostTypeId="1" CreationDate="2010-10-07T15:26:19.553" Score="10" ViewCount="335" Body="&lt;p&gt;I recently started work at new office that uses a proprietary program written by a solo developer. He's occasionally around as part-time tech support, but the company has signed off on this software and he's no longer being paid to develop it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a user of his software there are many issues that leap out to me as a source of concern:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;very simple to directly view the DB as a low-privilege user&lt;/li&gt;&#xA;&lt;li&gt;passwords stored as plaintext&lt;/li&gt;&#xA;&lt;li&gt;dictionary admin passwords&lt;/li&gt;&#xA;&lt;li&gt;app uses the DB root account&lt;/li&gt;&#xA;&lt;li&gt;DB doesn't meet 1NF (eg. appointment1, appointment2, etc.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I feel like these are serious issues and that if I were him I'd want them pointed out to me, but I'm not a qualified programmer (I'm a social worker) and I don't know if it would be rude of me to just buttonhole him and start blabbering about salted hashes and normal forms, especially when this is no longer a paid task of his.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it out of line? If not, how would you broach it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit - more info prompted by comments:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The application holds sensitive data.&lt;/li&gt;&#xA;&lt;li&gt;It's for internal use, but it's running on lots of machines in several cities and many visitors come through our offices.&lt;/li&gt;&#xA;&lt;li&gt;My concerns are for the developer's future projects as well as this specific one.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3898" LastEditorUserId="3898" LastEditorDisplayName="" LastEditDate="2010-10-07T18:38:18.357" LastActivityDate="2010-10-15T00:32:59.743" Title="Is it out of line to give unsolicited constructive criticism to a programmer?" Tags="&lt;advice&gt;&lt;criticism&gt;" AnswerCount="9" CommentCount="4" FavoriteCount="1" />
  <row Id="10231" PostTypeId="2" ParentId="10210" CreationDate="2010-10-07T15:28:27.027" Score="2" ViewCount="" Body="&lt;p&gt;C++: a kitchen-sink language, statically and manifestly typed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sounds like a good complement would be a language with a very few concepts, dynamically and latently typed. Sounds like &lt;strong&gt;Smalltalk&lt;/strong&gt;!&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-07T15:28:27.027" />
  <row Id="10232" PostTypeId="2" ParentId="10053" CreationDate="2010-10-07T15:29:23.843" Score="0" ViewCount="" Body="&lt;p&gt;Usually, when I'm get stuck in something is because there is a lot of distractions in my work place, so what I do to refocus is put on my headphones, listen some trance music and start working again. That works for me!.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-07T15:29:23.843" />
  <row Id="10233" PostTypeId="1" AcceptedAnswerId="10244" CreationDate="2010-10-07T15:29:39.017" Score="6" ViewCount="210" Body="&lt;p&gt;I've been working here for about 3 months now, and this company has been around since 2003. I've the only full time developer, and I don't know what happened to the part time guy who was doing work before I got hired, I haven't seen him since a month after I started, aside from a couple emails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially, that makes me the only developer, trying to balance adding new features to our main product (subscription website service), developing an Android-based version of the product, handling client issues, working on migrating clients from old version to new version (and the headaches that will result from this), fixing issues with a signup service for out ISP side of things, and helping with tech support for the ISP side. Not to mention the massive overhaul I'm fairly certain the database needs, that will mean at least a few months' work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My bosses hired an intern to help me with the Android version, but the one boss randomly went to England until December, taking the intern with him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any tips I can use on convincing management to hire somebody else? Even if just a second full time support guy to help with the phone calls?&lt;/p&gt;&#xA;" OwnerUserId="2416" LastActivityDate="2010-10-07T18:29:03.603" Title="Getting management to hire a new developer?" Tags="&lt;hiring&gt;&lt;management&gt;" AnswerCount="3" CommentCount="4" FavoriteCount="2" />
  <row Id="10234" PostTypeId="2" ParentId="10210" CreationDate="2010-10-07T15:30:39.093" Score="1" ViewCount="" Body="&lt;p&gt;It depends, what problems do you need to solve to accomplish your main objective: delivering software?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, knowing Labview lets me maintain and extend our real-time data collection tools. These produce a lot of raw data, so having a scripting language to parse and reduce it is extremely useful.  I use Ruby. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Batch and/or shell scripting can also come in quite handy.   &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-07T15:30:39.093" />
  <row Id="10235" PostTypeId="2" ParentId="5834" CreationDate="2010-10-07T15:30:44.477" Score="0" ViewCount="" Body="&lt;p&gt;Crackpot inventor, like Leonardo da Vinci.&lt;/p&gt;&#xA;" OwnerUserId="1525" LastActivityDate="2010-10-07T15:30:44.477" />
  <row Id="10236" PostTypeId="2" ParentId="9055" CreationDate="2010-10-07T15:31:11.543" Score="25" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Bjarne Stroustrup&lt;/strong&gt;, the guy who gave us C++ and has done his best to guide its development.  C++ is very widely used, and heavily influenced a lot of development in other languages.  He wrote an extremely good book on why he did what he did, &quot;The Design and Evolution of C++&quot;, and is the single person most important in bringing object-oriented programming to the mainstream.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-07T15:31:11.543" CommunityOwnedDate="2010-10-07T15:31:11.543" CommentCount="2" />
  <row Id="10237" PostTypeId="2" ParentId="10230" CreationDate="2010-10-07T15:32:04.630" Score="14" ViewCount="" Body="&lt;p&gt;If you are not in a position to change the code yourself then you should decide which issue is the most important one and approach him about it. Rather than couching it as &quot;criticism&quot; do it under the guise of &quot;feedback&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I say feedback I mean a VERY distinct process of stating the behavior and the effect of it, along the lines of &quot;When you X, here's what happens...&quot; and speak STRICTLY of things are directly observable. Do not attack him, his professionalism, etc. Stick to the facts. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a great overview on providing peer feedback listen to this postcast: &lt;a href=&quot;http://www.manager-tools.com/2006/10/the-peer-feedback-model&quot; rel=&quot;nofollow&quot;&gt;http://www.manager-tools.com/2006/10/the-peer-feedback-model&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have success with the first item, move onto the next most important one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-10-07T15:32:04.630" CommentCount="3" />
  <row Id="10238" PostTypeId="2" ParentId="10230" CreationDate="2010-10-07T15:32:09.440" Score="3" ViewCount="" Body="&lt;p&gt;As he's no longer being paid to work on it, probably not.  There are two possibilities:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;He knows it's crap and hasn't fixed it.&lt;/li&gt;&#xA;&lt;li&gt;He thinks it's good so he hasn't fixed it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In either case, telling him it has serious flaws isn't going to improve it, since it's no longer being developed.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-07T15:32:09.440" CommentCount="1" />
  <row Id="10239" PostTypeId="2" ParentId="9159" CreationDate="2010-10-07T15:34:13.463" Score="1" ViewCount="" Body="&lt;p&gt;I agree with Rob Stevenson-Leggett that there is a distinction, and I think between being a programmer and an agile programmer is a mindset change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am an agile programmer working for a company that is still trying to move from no process or standards to having something better in place, but they don't know where they are going, so there are some struggles at times as I see development differently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, with agile, you should release often, so that the users can see what you are doing, and help to correct if it isn't what they want.  That is different than waiting until all the specs are implemented and tested.  I would prefer to get something done, then as I get some features finished re-release.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But this also requires good bug tracking, so the users, or someone that interacts with users, can submit bugs and see what the state of them are, good version control, ideally with at least nightly builds and peer-reviewed unit testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unit tests should be reviewed, at least initially, because bad unit tests are worse than no tests. If I know there are no tests I approach the software differently, but if the unit tests are very poor then I may trust that the code was tested and run into more problems later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To start becoming an agile developer think in terms of use cases or stories. When you talk with users, don't be technical, ask them what it is they will want.  Pictures are useful and just walk through what they are doing, what they expect to see, how they want to interact.  Then, don't go create reams of diagrams/charts, break it down into small subtasks, and then organize that into priorities.  Also, find out what must be done for it to be of any use, then, when those parts are done, do your first release, or next release.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I recently had a chat with a couple end-users where I asked &quot;What kind of questions will you be asked to justify the cost of this software&quot;.  I am looking for what should be measured.  I don't care for them to get into details about storing IP addresses or how to track users, they just need to tell me what type of questions need to be answered, as they create reports, or their superiors are curious, as I can't give them the info if I don't know what to collect.&lt;/p&gt;&#xA;" OwnerUserId="4670" LastActivityDate="2010-10-07T15:34:13.463" />
  <row Id="10240" PostTypeId="2" ParentId="10230" CreationDate="2010-10-07T15:34:20.587" Score="3" ViewCount="" Body="&lt;p&gt;I don't think there's a lot of point discussing this with the programmer.  For a start, he might not take kindly to being told how to do his job by an &quot;amateur&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, you might point out any serious security issues to your management.  Let them decide what to do about it.  In some cases, it sounds like the fixes would be simple changes to database account permissions that can be implemented in a few minutes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you (and management) also need to consider whether the security of this application really matters.  Does it contain valuable or sensitive information?  Are you likely to have problems with disgruntled employees?  Is the network properly secured?&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-10-07T15:41:29.327" LastActivityDate="2010-10-07T15:41:29.327" CommentCount="1" />
  <row Id="10241" PostTypeId="2" ParentId="10208" CreationDate="2010-10-07T15:39:28.673" Score="8" ViewCount="" Body="&lt;p&gt;Found it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/uKszm.gif&quot; alt=&quot;Dilbert on that particular question&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-10-07T15:39:28.673" CommentCount="1" />
  <row Id="10242" PostTypeId="2" ParentId="10053" CreationDate="2010-10-07T15:42:31.707" Score="0" ViewCount="" Body="&lt;p&gt;Immediately take a break and walk around the office or your house without thinking about the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Brain is like any other muscle, it needs rest, but here is where it differs - As soon as you take the task out of the queue, it puts it at the highest level on your subconscious.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That, unknowingly puts more focus on the problem, without you knowing it.    &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't number the times, this has worked for me.&lt;br&gt;&#xA;Hope it does for you too.&lt;/p&gt;&#xA;" OwnerUserId="4691" LastActivityDate="2010-10-07T15:42:31.707" />
  <row Id="10243" PostTypeId="2" ParentId="10172" CreationDate="2010-10-07T15:43:15.327" Score="0" ViewCount="" Body="&lt;p&gt;Hire people that want to do the kind of work you do. &lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-07T15:43:15.327" CommentCount="5" />
  <row Id="10244" PostTypeId="2" ParentId="10233" CreationDate="2010-10-07T15:43:18.710" Score="14" ViewCount="" Body="&lt;p&gt;You need to build a case for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start by estimating the effort for every task on your plate.  In hours, days, whatever.  Make sure management sees this- mention this list to them the next time they ask you to do something.  Be sure this is written down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For each new bit of work, estimate its relative effort and importance, and be sure management knows where it's going in your todo list.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When they start getting agitated that things aren't getting done as quickly as they'd like, point out the need for another developer.  1 person can get 1 hour of work done an hour.  2 people can get 2 hours of work done an hour (more or less).  If they want prompt support and improvements, they need to hire someone to help.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-07T15:43:18.710" CommentCount="2" />
  <row Id="10245" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T15:43:44.107" Score="2" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;preg_replace(&quot;work&quot;,&quot;fun&quot;,$job);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4429" LastActivityDate="2010-10-07T15:43:44.107" CommunityOwnedDate="2010-10-07T16:21:54.780" />
  <row Id="10246" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T15:43:55.640" Score="13" ViewCount="" Body="&lt;p&gt;The constant attempts by Microsoft to invent a new and improved @&lt;em&gt;$(&amp;amp;(&lt;/em&gt;&amp;amp;# ways to pull data from a database. The latest and greatest data access technology is rarely that much of an improvement on the old way, but is very effective at keeping me off balance and in fear that my skill-base is continually being obsoleted for no good reason.&lt;/p&gt;&#xA;" OwnerUserId="287" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-10-07T20:25:18.110" LastActivityDate="2010-10-07T20:25:18.110" CommunityOwnedDate="2010-10-07T16:21:54.780" CommentCount="4" />
  <row Id="10247" PostTypeId="2" ParentId="10021" CreationDate="2010-10-07T15:44:19.410" Score="1" ViewCount="" Body="&lt;p&gt;I think the the power of a language (and thus its usefulness) is proportional to the tools it gives you to translate abstract concepts in code.&#xA;In this definition, I find C++ extremely powerful, even if mastering it (see also: metaprogramming) it's not easy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I like most is that C++ is powerful AND fast. So said dynamic languages (python, Perl etc) are also powerful but that power comes often (but not always) with a big cost: speed.&#xA;That's because you can do magic with runtime code instead of compile time one. This is not always true,of course.&lt;/p&gt;&#xA;" OwnerUserId="4738" LastActivityDate="2010-10-07T15:44:19.410" />
  <row Id="10248" PostTypeId="2" ParentId="10208" CreationDate="2010-10-07T15:44:47.390" Score="1" ViewCount="" Body="&lt;p&gt;In and amongst other questions I don't think it's bad, in and of itself. If you are looking for the &quot;one question to rule them all&quot; candidate, this one is not it. Ideally a candidate has some awareness of what happens during interviews and will have a good answer where they admit to an honest weakness that they have (NOTE: we ALL have weaknesses - somebody who claims NONE is a giant red flag) but also tells you what they're doing to address it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example: &quot;I sometimes tend to obsess over getting every last bit of information up front before doing any development. In the past that has led to some slow project starts. Now I try to get some basic functionality sketched out first and then iteratively fill it in as I get feedback from the users.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You admitted a weakness (instead of &quot;ready, aim, fire&quot; you're more of a &quot;ready, aim, aim, aim, just a little for data, aim, aim...&quot;) but recognize it and are taking steps to deal with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember - you are going to have to work with this person day-in and day-out for a long time. You will see them more than your own family. Whatever you can do to figure things out about them you should do.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-10-07T15:44:47.390" />
  <row Id="10249" PostTypeId="2" ParentId="9813" CreationDate="2010-10-07T15:49:37.270" Score="0" ViewCount="" Body="&lt;p&gt;Here is what I realized -    &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I have tons of time&quot;   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't waste time taking lunch with people who don't add any value to you, read a blog or something you want to study while taking lunch. = +30mins    &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to study something, buy an audiobook for it and listen while you commute = +30mins.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know this will sound silly, but - Time your shower &amp;amp; getting ready routine. I learnt I saved 15 minutes in the morning, if I consciously got ready, without letting my head wander. = +15mins&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you sleep at 10:30, start reading a book at 10:00 sharp, it'll not only help you sleep, but will end your day peacefully.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep one weekend day(Sat or Sunday, I prefer Saturday) to not meet anyone till 19:00. Then have fun as much as you can.&lt;br&gt;&#xA;Without the regular pressure of the day, you can get the work of 12 hours completed in 6 on a saturday.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps you 8-)&lt;/p&gt;&#xA;" OwnerUserId="4691" LastActivityDate="2010-10-07T15:49:37.270" CommentCount="2" />
  <row Id="10251" PostTypeId="2" ParentId="10172" CreationDate="2010-10-07T16:05:52.873" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Maybe you don't have enough great developers to inspire/motivate them to stay&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had 2 internships at 2 different companies. I just finished the 2nd one a week ago and I realized that I prefer the 1st over the 2nd. The reason is because even though I'm practically doing the same thing at the 2nd company (Web development), most of the developers there are almost as young as I am. Which leads me to think that they don't have enough experience as programmers yet. The best way I can think of for my career to grow and to learn more as a developer is to surround myself with the best programmers that's in my reach. They have those kind of developers over the 1st company that I've been in. That's why I prefer the 1st one over the 2nd one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe that's one of the reasons why they don't stick around at your company.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-10-07T16:05:52.873" CommentCount="0" />
  <row Id="10252" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T16:19:09.767" Score="4" ViewCount="" Body="&lt;p&gt;Providing internal support for a broken system that is not ours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a particular piece of software that is widely used and very broken. Instead of repairing it, the company adds new features. If I could fix all of the bugs in it I would but unfortunately it's not my software. Nevertheless, I get to deal with many of the issues that arise from it.&lt;/p&gt;&#xA;" OwnerUserId="688" LastActivityDate="2010-10-07T16:19:09.767" CommunityOwnedDate="2010-10-07T16:21:54.780" />
  <row Id="10254" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T16:21:54.780" Score="32" ViewCount="" Body="&lt;p&gt;&lt;b&gt;Interruptions&lt;/b&gt;. Some days I get interrupted so often I'm surprised I can ever get back to work.&lt;/p&gt;&#xA;" OwnerUserId="1537" LastEditorUserId="1537" LastEditorDisplayName="" LastEditDate="2010-10-07T19:31:41.780" LastActivityDate="2010-10-07T19:31:41.780" CommunityOwnedDate="2010-10-07T16:21:54.780" />
  <row Id="10255" PostTypeId="2" ParentId="9042" CreationDate="2010-10-07T16:23:16.603" Score="3" ViewCount="" Body="&lt;p&gt;Overall, I think Java has some of the simplest syntax of most of the languages I've used (although the everything has to be in an object requirement makes it difficult to learn), and because of that it sticks in my head better than most other languages. I use it on some projects just because of the massive amount of library support, but there are some really obnoxious parts in both the libraries and the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;No Convenience functions&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just try to output to a file in less than 10 lines of code. On the way, you will meet plenty of &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Checked Exceptions&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a fun one - what do you do with a method that throws a checked exception, but is obviously meant to go in a finally block (like closing a resource)? Pass the exception on up? Eat the exception? If the checked exception only occurs when you try to close something that's already closed, both seem useless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Bizarre Scoping for Anonymous Classes&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://mindprod.com/jgloss/anonymousclasses.html&quot; rel=&quot;nofollow&quot;&gt;This.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1147" LastActivityDate="2010-10-07T16:23:16.603" />
  <row Id="10257" PostTypeId="2" ParentId="10210" CreationDate="2010-10-07T16:31:37.063" Score="2" ViewCount="" Body="&lt;p&gt;I'd vote for Python or Ruby.  C++ is The Language for doing as much as possible statically at compile time.  Learning Python or Ruby will teach you how to think in terms of doing things dynamically at runtime.  I'm in a similar situation, using D and Python as my primary languages.  D's template metaprogramming is much more powerful than C++'s, but it's still all at compile time.  Python's metaprogramming and reflection is all at runtime.  It's a very useful combination because often there are idioms that are useful in both languages, but are more obvious in one than the other.  Therefore, my D experience makes me a better Python programmer and vice-versa.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On another note, Python and C++ complement each other in that C++ is good at performance and bad at programmer productivity, where Python is just the opposite.  If you learn both, you'll have mastered both ends of the spectrum on this tradeoff.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-07T16:31:37.063" />
  <row Id="10260" PostTypeId="2" ParentId="5466" CreationDate="2010-10-07T16:50:05.063" Score="1" ViewCount="" Body="&lt;p&gt;In my experience, management is about effective communication and decision-making. With that in mind, it makes sense that someone who understands the crafts (at least the core concepts and terminology) utilized by the people they manage, is better suited to be a manager than someone who has less of an understanding, but there is definitely no correlation. I've seen managers with programming experience succeed and fail, just as often as managers without programming experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either extreme is bad, in my opinion; People with too little programming experience can blindly trust their programmers (Shepard following the sheep); People with too much experience can continually question their team's efforts (micro managing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I think someone who has a good grasp of the core programming concepts, but realizes that they aren't a &quot;hot shot,&quot; is the ideal kind of manager.&lt;/p&gt;&#xA;" OwnerUserId="4777" LastActivityDate="2010-10-07T16:50:05.063" />
  <row Id="10261" PostTypeId="2" ParentId="10233" CreationDate="2010-10-07T16:52:28.340" Score="5" ViewCount="" Body="&lt;p&gt;As Fishtoaster mentioned, you have to build a case for it. I'd go a little further in saying you need to build a FINANCIAL case for it. If you had another programmer the following features could be delieverd this much sooner resulting in quicker product launch. Another programmer would reduce the backlog of support request raising customer satisfaction resulting in new upgrades - etc.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-07T16:52:28.340" CommentCount="1" />
  <row Id="10264" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T17:09:11.410" Score="6" ViewCount="" Body="&lt;h2&gt;boss&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;[and some long text]&lt;/p&gt;&#xA;" OwnerUserId="4784" LastActivityDate="2010-10-07T17:09:11.410" CommunityOwnedDate="2010-10-07T17:09:11.410" />
  <row Id="10265" PostTypeId="2" ParentId="5834" CreationDate="2010-10-07T17:13:03.837" Score="1" ViewCount="" Body="&lt;p&gt;As much as I would like to consider myself artist, I'll answer &lt;strong&gt;lawyer&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are not too many professions where one must master lots of mostly arbitrary, human invented rules, follow them precisely (despite them changing continuously), and communicate the results with mostly clueless clients.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-07T17:19:15.337" LastActivityDate="2010-10-07T17:19:15.337" />
  <row Id="10267" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T17:23:03.753" Score="3" ViewCount="" Body="&lt;p&gt;Frustrations.  These get on my nerves and piss me off.  An example of this can be the case where someone doesn't know what they want and so we just stumble along developing something that hopefully can be easily tweaked into the desired functionality.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-07T17:23:03.753" CommunityOwnedDate="2010-10-07T17:23:03.753" />
  <row Id="10268" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T17:30:54.550" Score="6" ViewCount="" Body="&lt;p&gt;The offshore team who are supposedly working with us but actually mostly just get in our way and cause bugs that make more work for those of us who actually know what we're doing.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-07T17:30:54.550" CommunityOwnedDate="2010-10-07T17:30:54.550" CommentCount="2" />
  <row Id="10269" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T17:41:20.473" Score="15" ViewCount="" Body="&lt;p&gt;Not being able to work from home without an excuse.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-07T17:41:20.473" CommunityOwnedDate="2010-10-07T17:41:20.473" CommentCount="1" />
  <row Id="10270" PostTypeId="1" CreationDate="2010-10-07T17:41:44.277" Score="9" ViewCount="154" Body="&lt;p&gt;Many companies, especially larger ones have mandatory professional development plans for their employees. Employees and managers set out a personalized professional development plan and follow up on the progress every so often. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a developer, do you find such PDPs useful, do you follow through with your commitments? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a manager, do you think such PDPs bring value to the company and improve the overall quality of the employees?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems that good developers will continue to educate themselves and strive to be better regardless of companies' procedures while bad ones won't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there benefits of having PDPs or is it just something managers feel they need to do?&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-20T07:51:31.423" Title="Are enforced Professional Development Plans useful?" Tags="&lt;productivity&gt;&lt;self-improvement&gt;&lt;corporate-procedures&gt;" AnswerCount="8" CommentCount="0" FavoriteCount="1" />
  <row Id="10271" PostTypeId="2" ParentId="10270" CreationDate="2010-10-07T17:44:08.907" Score="5" ViewCount="" Body="&lt;p&gt;I love the idea that my employer is at least pretending to be concerned about my career development.  Frankly though, this is a good thing.  The more money you invest in your employee's self-betterment and overall career progression, the more you invest in your company.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Smarter, healthy, more qualified employees = better work = more money = everyone happy. &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-07T17:44:08.907" CommentCount="1" />
  <row Id="10272" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T17:44:37.643" Score="3" ViewCount="" Body="&lt;p&gt;My boss ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ah, or the keyboard-artist next to me who bangs on his instrument all day long and yells profanities as his screen (in different languages) when a bug seems to give him a hard time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More seriously, code duplication and useless documentation (I'm looking at you, crazy ISO freaks. A paper-trail is one thing. Killing the Amazonian rain-forest is another).&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2011-05-30T10:46:20.493" LastActivityDate="2011-05-30T10:46:20.493" CommunityOwnedDate="2010-10-07T17:44:37.643" />
  <row Id="10273" PostTypeId="2" ParentId="1460" CreationDate="2010-10-07T17:45:48.310" Score="0" ViewCount="" Body="&lt;p&gt;Depending on the opportunity quite possibly.  As I enjoy solving puzzles and figuring out solutions to stuff, there may be places where this fits in outside of being a developer.  The key question to my mind is, &quot;Would I enjoy that more than what I do now?&quot;&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-07T17:45:48.310" />
  <row Id="10274" PostTypeId="2" ParentId="5834" CreationDate="2010-10-07T17:48:12.810" Score="1" ViewCount="" Body="&lt;p&gt;Remarkable that no one gave what is probably the most obvious answer: (research) mathematician. Since proofs and programs are the same thing by the Curry-Howard isomorphism, this should not need much justification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yet as a mathematician, I believe mathematicians have a lot to learn from programmers; specifically, their very engineer-like concern with things like maintainability and clarity of source code, the KISS principle, etc. Absorbing these lessons and practical knowledge in the construction and explanation of proofs could do a lot to improve the teaching of mathematics, the communication of results to the community, even its practice. But this is a subject for another wiki.&lt;/p&gt;&#xA;" OwnerUserId="4790" LastActivityDate="2010-10-07T17:48:12.810" />
  <row Id="10275" PostTypeId="2" ParentId="10270" CreationDate="2010-10-07T17:49:53.213" Score="1" ViewCount="" Body="&lt;p&gt;This is a great idea, although hardly implmented (IME) - I always find it amusing that we are suppose to know all new technologies the moment they come out regardless if the corporation is using them or not. I guess we are individually motivated to keep up on the learning curve so we getting better raises, bigger bonuses, not getting fired.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if management want to move all applications to WPF in the next year, sending the developers out for WPF classes just makes all kinds of sense.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-07T17:49:53.213" />
  <row Id="10276" PostTypeId="2" ParentId="10270" CreationDate="2010-10-07T17:51:10.327" Score="1" ViewCount="" Body="&lt;p&gt;As a developer, I've found them to be a major pain to select where I want to improve, what I'll do it to get there and what result this is supposed to have to make it worthwhile.  While I can see the potential of it being ultimately good, there is something to be said for the growing pain of learning how to do these and seeing what is and isn't acceptable to the organization as such plans often require some form of managerial approval.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Course I should note that for most of my career I didn't have these until my current position and this is part of the formalization that the company is going through as it matures.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-07T17:51:10.327" />
  <row Id="10277" PostTypeId="1" AcceptedAnswerId="10286" CreationDate="2010-10-07T17:52:42.317" Score="4" ViewCount="219" Body="&lt;p&gt;In my experience as a freelance developper, I've had some difficulties with clients, whom insist on getting an estimate over flimsy requirements. They then expect me to deal with requirements changes, sometimes late in the project, and stick to that estimate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since I've never come up myself with some T.O.S. tailored for this situation, I ended up bound by a contract of a more general nature, which inevitably became unsasatisfactory...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Legal lingo not being my forte, I've been lookin for some publicly released T.O.S. to try to remedy this situation. Ideally these would be from an agile shop, under a licensing scheme allowing derivatives. This would help me lay out the contractual groundwork for a sane customer relationship, especially when dealing with changes.&lt;/p&gt;&#xA;" OwnerUserId="2115" LastEditorUserId="2115" LastEditorDisplayName="" LastEditDate="2010-10-07T19:25:09.490" LastActivityDate="2010-10-07T19:48:22.783" Title="Example of Terms of Services for Agile contracting ?" Tags="&lt;agile&gt;&lt;contracting&gt;&lt;freelancing&gt;" AnswerCount="3" CommentCount="3" />
  <row Id="10278" PostTypeId="2" ParentId="10208" CreationDate="2010-10-07T17:53:35.873" Score="5" ViewCount="" Body="&lt;p&gt;The value of that question seems obvious to me.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Someone that knows his strength and weaknesses will be a lot more efficient that the one that doesn't know what he can do well and what he shouldn't do (or improve)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In martial arts, this is one of the first things you have to learn. Because it determines how your attack and defense strategy will be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do think that it's the same in life in general, including daily work.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-07T17:53:35.873" CommentCount="10" />
  <row Id="10279" PostTypeId="2" ParentId="10164" CreationDate="2010-10-07T17:57:40.040" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Fear&lt;/strong&gt;: being replaced by a software someone else wrote to write code instead of me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Hope&lt;/strong&gt;: that the above statement will never happen ;)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-07T17:57:40.040" CommentCount="1" />
  <row Id="10280" PostTypeId="2" ParentId="10208" CreationDate="2010-10-07T17:58:00.230" Score="1" ViewCount="" Body="&lt;p&gt;Behavioral interviews aren't necessarily a great thing either though. &lt;a href=&quot;http://corcodilos.com/blog/16/hrs-new-dildo-the-behavioral-interview&quot; rel=&quot;nofollow&quot;&gt;Here&lt;/a&gt; is a link to a blog post that while it is a over a couple of years old, it is worth mentioning on this subject to my mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Canned answers are what kill the effectiveness of the question, at least to my mind.  Most people have looked up various answers to this and just picked one that seems like, &quot;Yeah, I'm kinda, sorta, maybe a bit like that.&quot;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Validating how someone did something has a couple of points I'd note:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Sometimes a dumb thing is done that isn't likely to be repeated.  When someone does royally screw up there may be alternatives that the person will take.  For example, most adults would not touch a hot stove with their bare hand but a child may not understand the warning and will learn after getting a burn not to do that.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;References are where I'd look into some things here.  For example, if you want to see how someone handled a failed project, asking a former boss or co-worker may be better as an outsider may have a different take on things.  However, some people may fake their references so this does carry a caution to my mind.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4327" LastEditorUserId="4327" LastEditorDisplayName="" LastEditDate="2010-10-07T19:47:35.960" LastActivityDate="2010-10-07T19:47:35.960" CommentCount="1" />
  <row Id="10281" PostTypeId="2" ParentId="10164" CreationDate="2010-10-07T18:02:36.070" Score="2" ViewCount="" Body="&lt;p&gt;Hope:  That what I'm doing will be useful to someone trying to do something.  It'll help solve some problem that is important to someone out there in the universe.  Some planning was done and a general overall strategy can be communicated with milestones on a reasonable timeframe and using a methodology that helps the project succeed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fear: &lt;a href=&quot;http://en.wikipedia.org/wiki/Death_march_%28software_development%29&quot; rel=&quot;nofollow&quot;&gt;Death March&lt;/a&gt; comes to mind as one example.  That what is desired isn't well-thought out and I'm just a guinea pig being led to slaughter.  That someone will trash all my work, call me worthless and do other actions to belittle me and aggravate my depression and anxiety conditions I have.  &lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-07T18:02:36.070" />
  <row Id="10282" PostTypeId="2" ParentId="10230" CreationDate="2010-10-07T18:10:11.340" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Do you know the story behind the program?  Perhaps it was written in a very short time frame where the developer made these decisions rather quickly as the software had to be done as quickly as possible without a bunch of investigating being done into it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Does the support include patches on the code?  This may work for some minor things that the code has that you see as major issues.  The other thought is how hard would it be to replace this software.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There are cases where a peer helping out a peer with unsolicited constructive criticism can work but this is a bit different to my mind.  I'd say be sensitive about how you communicate the issues and try to keep it professional.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-07T18:10:11.340" />
  <row Id="10284" PostTypeId="2" ParentId="10233" CreationDate="2010-10-07T18:29:03.603" Score="1" ViewCount="" Body="&lt;p&gt;Prioritize everything and publish it if you have multiple stakeholders.  When a new task comes in ask where it goes on the priority list.  You should not have more than one person setting this priority either, there should be someone or a set group making this decision.  When they realize that certain things are never going to get done based on your workload (and you should stick to 40 hour weeks when estimating workload), then you can bring up the need for a dedicated assistant.  Think about assigning them the tasks that you don't want, you were there first so don't let them bring in someone to do the android app while you toil away on tickets and meaningless crap.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-10-07T18:29:03.603" CommentCount="2" />
  <row Id="10285" PostTypeId="2" ParentId="109" CreationDate="2010-10-07T18:49:36.083" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Forgetting if string functions are 0-based or 1-based with whatever language I'm using&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm always getting the wrong index when trying to parse a string using string functions because it's different for different languages. It almost always takes me more then one try to get it right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example...... I want a substring of a string starting at the index of X and ending at the index of Y... That's &lt;code&gt;string.SubString(IndexOf('X'), string.IndexOf('Y') - string.IndexOf('X'))&lt;/code&gt; and I'm sure there's a &lt;code&gt;+1&lt;/code&gt; or &lt;code&gt;-1&lt;/code&gt; in one of those parameters somewhere....&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-10-07T18:49:36.083" CommunityOwnedDate="2010-10-07T18:49:36.083" />
  <row Id="10286" PostTypeId="2" ParentId="10277" CreationDate="2010-10-07T18:53:06.247" Score="3" ViewCount="" Body="&lt;p&gt;Clients wanting you to be agile sounds more like clients that just want to change their mind (which is fine).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems like instead of:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Get requirements&lt;/li&gt;&#xA;&lt;li&gt;Sign the contract with Julien to deliver X for $Y.&lt;/li&gt;&#xA;&lt;li&gt;Julien delivers X&lt;/li&gt;&#xA;&lt;li&gt;Julien gets paid Y&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;They want:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Get very, very vague requirements&lt;/li&gt;&#xA;&lt;li&gt;Sign the contract with julien to deliver whatever they want (X? Y? X+Y? Z??), which is undetermined, and pay Julien $Y.&lt;/li&gt;&#xA;&lt;li&gt;Julien works toward ever-changing requirements.&lt;/li&gt;&#xA;&lt;li&gt;Requirements are never met.&lt;/li&gt;&#xA;&lt;li&gt;Julien never gets paid because they are never satisfied.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;In this case I would simply charge per-hour.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't worry about fixed price or an &quot;agile&quot; contract.  If you try to re-contract for every change, it will eventually become more pain than it is worth.  Your best bet here would be to have a per-hour charge, and have them sign off on timesheets you provide on a per-week or something similar basis.  This way both you and they can be as agile as needed while you have a better guarantee of getting paid.  Just do great work and any good client will see your value.  If not, you're better off just passing on the particular client if you have the opportunity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;For a more Agile approach..&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could, essentially, have a shorter estimate contract per-iteration.  Each 2-week (or whatever time) iteration that you plan, have a shorter contract/amendment that outlines the requirements and estimates just for that iteration.  Let the client change requirements, but only give them that luxury at the end of each iteration when you do the planning for the next iteration.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-10-07T19:27:06.693" LastActivityDate="2010-10-07T19:27:06.693" CommentCount="4" />
  <row Id="10287" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T19:03:20.480" Score="2" ViewCount="" Body="&lt;p&gt;The HR department&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-07T19:03:20.480" CommunityOwnedDate="2010-10-07T19:03:20.480" />
  <row Id="10288" PostTypeId="2" ParentId="1180" CreationDate="2010-10-07T19:03:59.183" Score="3" ViewCount="" Body="&lt;p&gt;Being a somewhat older dev (is 59 &quot;somewhat&quot; older?), I learned BASIC first on a Commodore VIC-20, taught myself Turbo Pascal (v1!), went on to learn COBOL at college, and spent 14 years developing on IBM mainframes, with brief diversions writing a medium sized apps in Revelation BASIC (a variant of PICK BASIC) and a few utilities in Modula-2, before side-stepping over to VB5 and VB6.  And then came .NET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because of my Basic background, I thought I should start out with VB.NET, only to find that I kept trying to do things the &quot;old&quot; way and it was driving me nuts (okay, &lt;em&gt;more&lt;/em&gt; nuts).  Being that I had done some work in C, I thought I would give C# a whirl to see how that went.  And OMG, that was like emerging from a dark tunnel into clear daylight!  Totally unexpected.  And I used to make disparaging noises about C being a &quot;write-only&quot; language -- &quot;so hard to understand that a C programmer couldn't figure out what his own code did 6 months after he wrote it&quot;, an observation made by semi-famous novelist that I thought sounded cute at the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, by virtue of being a bit unfamiliar with C, C# was paradoxically easier for me to learn .NET programming in than the far more should-be-familiar Basic paradigm.  I still like VB6, but have come to love C#.  The best programming language on the planet.&lt;/p&gt;&#xA;" OwnerUserId="1351" LastActivityDate="2010-10-07T19:03:59.183" CommunityOwnedDate="2010-10-07T19:03:59.183" CommentCount="1" />
  <row Id="10289" PostTypeId="2" ParentId="10061" CreationDate="2010-10-07T19:10:43.347" Score="0" ViewCount="" Body="&lt;p&gt;Developing enterprise software as a small vendor there are a bunch of tools that would be nice. How about a TIBCO bus around the office? How about a real FIX engine (not just open source ones). How about a Websphere MQ server? etc.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-07T19:10:43.347" />
  <row Id="10291" PostTypeId="2" ParentId="10021" CreationDate="2010-10-07T19:15:53.023" Score="0" ViewCount="" Body="&lt;p&gt;They are all tools in your tool chest. A hammer can be powerful, but not if you need a wrench. C/C++ is great if you are a systems programmer, but Adobe Flash is probably a better fit for that gaming web site you want to build.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-07T19:15:53.023" />
  <row Id="10292" PostTypeId="1" AcceptedAnswerId="10308" CreationDate="2010-10-07T19:36:29.837" Score="3" ViewCount="162" Body="&lt;p&gt;At larger companies there seems to be a distinction between the two positions. How exactly do they differ?&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-07T21:16:03.167" Title="What's the difference between a &quot;developer&quot; and a &quot;developer-analyst&quot;?" Tags="&lt;job-definition&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="10293" PostTypeId="2" ParentId="10021" CreationDate="2010-10-07T19:37:44.313" Score="6" ViewCount="" Body="&lt;p&gt;We can't define what a &quot;powerful&quot; language is without first defining the word &quot;powerful.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;em&gt;literal&lt;/em&gt; definition of power would be &quot;potency&quot;, and I think we can all agree that the vast majority of compilers - and even many interpreters that aren't Turing-complete - do an equally good job of getting the processor to execute their instructions.  So as far as the literal definition, the answer to the question would be &quot;almost any language at all.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Practically, we really ought to stop there; defining a &quot;powerful language&quot; is a bit like defining a &quot;good person&quot; or a &quot;quality product.&quot;  There is absolutely &lt;strong&gt;no&lt;/strong&gt; objective definition of these words that you could get everybody, or even a majority of experts, to agree upon, and most definitions simply end up &lt;a href=&quot;http://en.wikipedia.org/wiki/Begging_the_question&quot; rel=&quot;nofollow&quot;&gt;begging the question&lt;/a&gt;.  Depending on who you talk to, power could be any of the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A rich &lt;strong&gt;general-purpose framework&lt;/strong&gt; or &lt;strong&gt;library&lt;/strong&gt; for performing a wide variety of common tasks&lt;/li&gt;&#xA;&lt;li&gt;A sophisticated &lt;strong&gt;domain-specific&lt;/strong&gt; syntax that &quot;does one thing and does it well&quot;&lt;/li&gt;&#xA;&lt;li&gt;Direct access to machine functions, i.e. the ability to write &lt;strong&gt;low-level&lt;/strong&gt; code&lt;/li&gt;&#xA;&lt;li&gt;Abstracting away machine-level concepts, i.e. the ability to write &lt;strong&gt;high-level&lt;/strong&gt; code&lt;/li&gt;&#xA;&lt;li&gt;A very &lt;strong&gt;rich type system&lt;/strong&gt; allowing for advanced strategies like reflection, DI, and static analysis&lt;/li&gt;&#xA;&lt;li&gt;A very &lt;strong&gt;loose type system&lt;/strong&gt; that allows programmers to just &lt;em&gt;get it done&lt;/em&gt; (type coercion, etc.)&lt;/li&gt;&#xA;&lt;li&gt;The ability to treat everything as an &lt;strong&gt;object&lt;/strong&gt;, which offers &lt;strong&gt;conceptual verification&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;The ability to treat everything as a &lt;strong&gt;function&lt;/strong&gt;, which offers &lt;strong&gt;mathematical verification&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Automatic memory and resource management (GC, RAII) leading to &lt;strong&gt;fewer bugs&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Manual memory and resource management, potentially leading to &lt;strong&gt;optimized performance&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;A minimum amount of &lt;strong&gt;&lt;a href=&quot;http://www.martinfowler.com/bliki/SyntacticNoise.html&quot; rel=&quot;nofollow&quot;&gt;syntactic noise&lt;/a&gt;&lt;/strong&gt;, leading to improved &lt;strong&gt;readability&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;A more &lt;strong&gt;English-like syntax&lt;/strong&gt;, which offers a shallower &lt;strong&gt;learning curve&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;The ability to write very &lt;strong&gt;concise&lt;/strong&gt; code (i.e. ternary operator, null-coalescing, null-extension)&lt;/li&gt;&#xA;&lt;li&gt;The &lt;em&gt;inability&lt;/em&gt; to write potentially &lt;strong&gt;confusing&lt;/strong&gt; code (i.e. &lt;strong&gt;no&lt;/strong&gt; ternary operators, etc.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Does everybody see what's going on here?  Virtually &lt;em&gt;every&lt;/em&gt; bullet-point feature can be interpreted as a sign of &quot;power&quot;, &lt;em&gt;and so can its exact opposite!&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Somebody, somewhere, obviously thought that &lt;a href=&quot;http://php.net/manual/en/language.variables.variable.php&quot; rel=&quot;nofollow&quot;&gt;variable variables&lt;/a&gt; were an awesome idea that would make the language very &lt;em&gt;powerful&lt;/em&gt;.  I won't judge; I'm not a PHP guy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I propose that instead of all this holy-war nonsense, we all use this Really Simple Definition:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The most powerful language is the one that allows you to ship the highest-quality product at the lowest cost in the shortest amount of time.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Vague?  You betcha.  That's why anyone who wants to call him/herself a professional has to understand both the programming concepts &lt;strong&gt;and&lt;/strong&gt; the project domain.  That's the only way you're going to be able to decide what's &quot;powerful&quot; for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, you might just be bringing a &lt;a href=&quot;http://www.bite.ca/bitedaily/wp-content/uploads/2010/09/Crocodile-Dundee-Knife.jpg&quot; rel=&quot;nofollow&quot;&gt;really big knife&lt;/a&gt; to a gun fight.&lt;/p&gt;&#xA;" OwnerUserId="3249" LastEditorUserId="3249" LastEditorDisplayName="" LastEditDate="2010-10-07T19:47:14.557" LastActivityDate="2010-10-07T19:47:14.557" CommentCount="1" />
  <row Id="10294" PostTypeId="2" ParentId="9371" CreationDate="2010-10-07T19:42:14.597" Score="1" ViewCount="" Body="&lt;p&gt;I used once &lt;a href=&quot;http://www.pivotaltracker.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.pivotaltracker.com/&lt;/a&gt; but in my current company we're using .doc as core specification source and Lighthouse as combined features wishlist &amp;amp; issue tracking. For me it's hard to make other people in the team start using any other tools when they are so much used to Word. &lt;/p&gt;&#xA;" OwnerUserId="4796" LastActivityDate="2010-10-07T19:42:14.597" />
  <row Id="10295" PostTypeId="2" ParentId="10277" CreationDate="2010-10-07T19:42:33.940" Score="3" ViewCount="" Body="&lt;p&gt;Agile Team &amp;amp; Fixed Price Contract: &lt;a href=&quot;http://www.infoq.com/articles/agile-team-fixed-price-contract&quot; rel=&quot;nofollow&quot;&gt;http://www.infoq.com/articles/agile-team-fixed-price-contract&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Fixed price contracts are evil - this is what can often be heard from agilists. On the other hand those contracts are reality which many agile teams have to face. But what if we try to tame it instead of fighting against it? How can a company execute this kind of contract using agile practices to achieve better results with lower risk? This article will try to answer those questions.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-07T19:42:33.940" />
  <row Id="10296" PostTypeId="1" AcceptedAnswerId="10301" CreationDate="2010-10-07T19:45:02.440" Score="4" ViewCount="193" Body="&lt;p&gt;I'm asking this after reading a SO question where the OP asked for help decoding obfuscated code, which looks like it belongs to a closed-source company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The OP's client is saying &quot;&lt;em&gt;I don't know the full legal particulars of the contract (if there was one) for the code development. They claim it was fully paid for and released to them. If the code development was completely outside the scope and use of Ioncube, then it's debatable if it is unethical.&lt;/em&gt; &quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me the whole thing stinks of: the client bought the product and hired the OP to decode it, but either doesn't understand he didn't buy a licence to modify, distribute, reverse engineer, or reproduce the software. But it's easy to just accept a job and say &quot;whatever&quot; to these sorts of things, but there is room for this to be legit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What considerations should we take to ensure we're doing the right thing, and furthermore protect ourselves?&lt;/p&gt;&#xA;" OwnerUserId="1525" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-23T22:30:25.533" LastActivityDate="2010-10-23T22:30:25.533" CommunityOwnedDate="2010-10-07T19:45:02.440" Title="Ethics, Clients, and legal repercussions." Tags="&lt;ethics&gt;&lt;legal&gt;&lt;license&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="10297" PostTypeId="2" ParentId="10166" CreationDate="2010-10-07T19:47:51.173" Score="2" ViewCount="" Body="&lt;p&gt;&quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Skunk_Works&quot; rel=&quot;nofollow&quot;&gt;Skunkworks&lt;/a&gt;&quot; isn't the same as 20% time.  20% time is as you said -- time the developer chooses on his own what to work on.  Skunkworks is totally different.  A skunkworks project is a high-value, high-cost project worked on by a team (often a splinter team of gurus) that is not reported on to upper management, and the team decides on their own how the project should proceed without management direction.  These projects are often motivated by a tactical or business need to get something done, but there's no room in the budget for it.  If something &lt;em&gt;has to get done&lt;/em&gt;, it gets done -- budgets be damned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I managed a development team where I implemented 20% time.  Or tried to, anyway.  I had approval of my superiors, so that wasn't an issue.  The problem was that the team was too small and too specialized.  Whenever problems came up that needed immediate intervention, the 20% time was bumped.  This ended up happening very often.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also found that some of my developer's found my lack of direction unsettling.  Even though I said &quot;work on anything you want, so long as it's programming-related,&quot; they still had a hard time accepting the &quot;anything&quot; part.  They thought that some projects would be better than others, so they inevitably worked on low-level implementation requests in the main product, things like that.  I wanted them to branch out and grow, but instead they dug deeper in to their main expertise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would do it again, but I would expressly prohibit working on the main product and I might start them off with some ideas to choose from to get started.&lt;/p&gt;&#xA;" OwnerUserId="3563" LastEditorUserId="3563" LastEditorDisplayName="" LastEditDate="2010-10-07T19:53:43.780" LastActivityDate="2010-10-07T19:53:43.780" CommentCount="4" />
  <row Id="10298" PostTypeId="2" ParentId="10277" CreationDate="2010-10-07T19:48:22.783" Score="0" ViewCount="" Body="&lt;p&gt;At a previous company that I worked for, we ran into this issue when delivering websites with lots of custom functionality. It sounds to me like you're suffering from client based scope-creep.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To handle this, we started aligning our own personal development benchmark with sample deliverable benchmarks to make sure that the client was satisfied with the way things were progressing. In addition, as Chris mentions in his post, contracts / T.O.S documents were written up and signed in person that explicitly stated what was included with each project and divided up into a per-benchmark basis. Each item was listed out with what it &lt;strong&gt;did&lt;/strong&gt; and &lt;strong&gt;did not&lt;/strong&gt; do, to the best of our abilities without being clairvoyant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be upfront about your charges and let them know what an initial estimate would be (which is your responsibility) but also give them the &quot;additional rate&quot;, whether you determine it to be hourly or contract additions. When they start scope-creeping you, you can fall back to the initial contract which has that laid out and simply state your new estimate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To summarize: All functionality described in contract, supply benchmark samples when applicable and get sign-offs on those too, be up front about additional rates for scope creep items.&lt;/p&gt;&#xA;" OwnerUserId="4795" LastActivityDate="2010-10-07T19:48:22.783" />
  <row Id="10299" PostTypeId="2" ParentId="10296" CreationDate="2010-10-07T19:48:47.133" Score="0" ViewCount="" Body="&lt;p&gt;I'm not sure there are any measures to take.  It happens both ways in the real world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where I work we bought the source code with a large million dollar software product, so we have the right to play around with it.  So it does happen.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-10-07T19:48:47.133" CommunityOwnedDate="2010-10-07T19:48:47.133" />
  <row Id="10300" PostTypeId="2" ParentId="8954" CreationDate="2010-10-07T19:52:13.793" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://orgmode.org/&quot; rel=&quot;nofollow&quot;&gt;Org-Mode&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Features :&lt;/strong&gt;&lt;br&gt;&#xA;- Extensive task management&lt;br&gt;&#xA;- Time tracking with effort estimates&lt;br&gt;&#xA;- Calendaring&lt;br&gt;&#xA;- PDF, HTML, Latex export  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Pros :&lt;/strong&gt;&lt;br&gt;&#xA;- See above&lt;br&gt;&#xA;- Plain Text + FOSS&lt;br&gt;&#xA;You don't want your whole project management workflow tied to a vendor or a proprietary format.&lt;br&gt;&#xA;Enables DVCS based workflow which can be embedded in your project.&lt;br&gt;&#xA;- Emacs + Lisp&lt;br&gt;&#xA;it can do anything you need&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Cons :&lt;/strong&gt;&lt;br&gt;&#xA;- Emacs + Lisp&lt;br&gt;&#xA;Widely known for not being everyone's cup of tea, and a paradigm shift if you don't have experience in any or both. This could lead to to coworkers frowning up on adoption.&#xA;On the other hand it's just plain text, so someone who would only contribute a few commits could easily turn some TODO items to DONE in notepad, others would see the benefit if shown in which ways it can help...&lt;/p&gt;&#xA;" OwnerUserId="2115" LastEditorUserId="2115" LastEditorDisplayName="" LastEditDate="2010-10-08T13:10:20.907" LastActivityDate="2010-10-08T13:10:20.907" />
  <row Id="10301" PostTypeId="2" ParentId="10296" CreationDate="2010-10-07T19:55:53.407" Score="7" ViewCount="" Body="&lt;p&gt;Technically, as a programmer, you're not a member of a professional society, and hence aren't bound by any specific code of ethics, so there's not much risk in just going ahead and doing what they ask (it's Somebody Else's Problem).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Practically, if you want to be taken seriously in your work, then you'll probably want to adopt something similar to the &lt;a href=&quot;http://en.wikipedia.org/wiki/Engineering_ethics&quot; rel=&quot;nofollow&quot;&gt;engineering code of ethics&lt;/a&gt;, which includes, among other things, taking any and all steps necessary to ensure that the not only the work &lt;em&gt;you&lt;/em&gt; do but the work &lt;em&gt;your clients&lt;/em&gt; do is complying with the law.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it were me, and the client &lt;em&gt;says&lt;/em&gt; they own all rights to the product (including decompilation/reverse engineering/etc.) then I would ask to &lt;em&gt;see&lt;/em&gt; &quot;legal particulars of the contract.&quot;  Surely the section in question could not be more than a few paragraphs, so it's not like I'd be asking for all sorts of confidential business information - just snip out the part where it says you have those rights.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if a client claims something that is legally questionable but is unable or unwilling to produce evidence to back it up - then be very, very &lt;del&gt;suspicious&lt;/del&gt; careful.&lt;/p&gt;&#xA;" OwnerUserId="3249" LastActivityDate="2010-10-07T19:55:53.407" CommunityOwnedDate="2010-10-07T19:55:53.407" CommentCount="7" />
  <row Id="10302" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T19:56:23.957" Score="39" ViewCount="" Body="&lt;p&gt;Internet Explorer Six&lt;/p&gt;&#xA;" OwnerUserId="4797" LastActivityDate="2010-10-07T19:56:23.957" CommunityOwnedDate="2010-10-07T19:56:23.957" CommentCount="6" />
  <row Id="10303" PostTypeId="2" ParentId="10292" CreationDate="2010-10-07T19:59:57.260" Score="2" ViewCount="" Body="&lt;p&gt;In my experience, &quot;Analyst&quot; tends to imply a more advisory capacity.  That is, an analyst might spend more time evaluating and presenting information relating to the company's internal development and/or external activity in the development world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, in some companies it's just another name for the same thing.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-07T19:59:57.260" />
  <row Id="10304" PostTypeId="2" ParentId="10021" CreationDate="2010-10-07T20:03:46.583" Score="0" ViewCount="" Body="&lt;p&gt;The most &lt;i&gt;Powerful&lt;/i&gt; programming language is the one that solves the following &lt;a href=&quot;http://en.wikipedia.org/wiki/Linear_programming&quot; rel=&quot;nofollow&quot;&gt;linear programming problem&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Maximize&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&amp;nbsp;&amp;nbsp;Rapidity of development&#xA;&lt;br&gt;+ Ease of reading code&#xA;&lt;br&gt;+ Ease of debugging&#xA;&lt;br&gt;+ Succinctness/brevity of expression&#xA;&lt;br&gt;+ Ease of learning/teaching&#xA;&lt;br&gt;-&amp;nbsp;&amp;nbsp;CPU usage&#xA;&lt;br&gt;-&amp;nbsp;&amp;nbsp;Memory requirements&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Subject To&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It must be Turing Complete.&#xA;&lt;li&gt;It must be &lt;i&gt;multi-paradigmatic&lt;/i&gt;: functional, object-oriented, logic programming, constraint programming, concurrency, distributed computing, etc.&#xA;&lt;li&gt;It must be &lt;i&gt;versatile&lt;/i&gt;, allowing the creation of command-line interfaces, component libraries, servers, GUIs, and web applications.&#xA;&lt;li&gt;It must be &lt;i&gt;portable&lt;/i&gt;, i.e., easy to port and maintain in a cross-platform setting.&#xA;&lt;li&gt;It must be &lt;i&gt;adaptable&lt;/i&gt;, i.e., open to change and able to evolve as new hardware (quantum chips), new paradigms, and other innovations in technology occur.&#xA;&lt;li&gt;It must encourage the development of libraries (like CPAN, CTAN, and CRAN).&#xA;&lt;li&gt;It must be &lt;i&gt;free&lt;/i&gt; and &lt;i&gt;open source&lt;/i&gt;.&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;i&gt;(And yes, I know, I already posted a completely contradictory answer. That's because I'm a dialectcian.)&lt;/i&gt;&lt;/p&gt;&#xA;" OwnerUserId="4128" LastEditorUserId="4128" LastEditorDisplayName="" LastEditDate="2010-10-08T18:20:15.760" LastActivityDate="2010-10-08T18:20:15.760" />
  <row Id="10305" PostTypeId="2" ParentId="8954" CreationDate="2010-10-07T20:04:03.460" Score="0" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.microsoft.com/project/en/us/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Microsoft Project&lt;/a&gt; + &lt;a href=&quot;http://msdn.microsoft.com/en-us/vstudio/ff637362.aspx&quot; rel=&quot;nofollow&quot;&gt;Team Foundation Server&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;This does everything except invoice generation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the plus side it has:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Integration with source control check-ins, as you can apply a code check-in to a specific bug.&lt;/li&gt;&#xA;&lt;li&gt;Serious project and time analytics, project cross-checking so you don't overbook yourself or your team.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-07T20:04:03.460" />
  <row Id="10306" PostTypeId="2" ParentId="10021" CreationDate="2010-10-07T20:06:04.293" Score="2" ViewCount="" Body="&lt;p&gt;This has been debated repeatedly at great length (e.g., on comp.lang.lisp, several times). I don't think anybody's ever come up with a &quot;right&quot; answer but a lot of people have come up with answers that strike me as obviously wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the answers I see here, let me pick on Mason Wheeler's answer. On one hand, the issues he covers &lt;em&gt;are&lt;/em&gt; important -- but on the other, I can't quite imagine calling them at all related to &quot;power.&quot; It's a bit like he's saying his Honda mini-van is more powerful than a top-fuel dragster because it's safer, quieter, has better handling, more passenger room and a much more comfortable ride. All of this is absolutely true, and it's all important. Those factors (among many others) make the minivan much more practical and reasonable for most people -- but they don't change the fact that the minivan's engine produces only about 250 HP whereas the dragster's produces somewhere around 8000 HP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem, of course, is that with vehicles there's a clear-cut definition of what constitutes &quot;power&quot; and what doesn't. With programming languages, it seems to me that the discussion ends up being about equivalent to treating handling, comfort, speed, cargo capacity, and cruising range as all being parts of &quot;power&quot;. The result tends to be threads that run on endlessly, generating a great deal more heat than light. Most of the questions that arise basically come down to the degree of importance you attach to completely unrelated and orthogonal features -- e.g., is the ability to program the MMU in assembly language more or less &quot;powerful&quot; than the ability to create higher level functions in Haskell? At least IMO, there's no meaningful way to compare the two, and no meaningful answer to which is &quot;more powerful&quot;, or implies more power, or anything of that nature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As such, as much as I hate to I have to say that in this case, the only meaningful answer is basically a relativistic one -- a powerful language is one that you find helps you to accomplish what you want to. Differences in peoples' goals render most &quot;absolute&quot; measurements of power meaningless at best.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-07T20:06:04.293" />
  <row Id="10307" PostTypeId="2" ParentId="10208" CreationDate="2010-10-07T20:13:08.103" Score="0" ViewCount="" Body="&lt;p&gt;I got this question a little while back (not for a programming job though) that I liked:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&quot;What is the ideal/'golden standard' [profession]?&quot;&lt;/strong&gt;, which was followed by &lt;strong&gt;&quot;How do you compare to that?&quot;&lt;/strong&gt; and others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is very similar, but somewhat disassociates them describing themselves and describing the ideal (greatest weakness would be where there is the largest difference, strength: the greatest alignment).&lt;/p&gt;&#xA;" OwnerUserId="4428" LastActivityDate="2010-10-07T20:13:08.103" />
  <row Id="10308" PostTypeId="2" ParentId="10292" CreationDate="2010-10-07T20:15:36.847" Score="2" ViewCount="" Body="&lt;p&gt;Here is a sample job description for an analyst position. Note that &lt;i&gt;none&lt;/i&gt; of these tasks involve any actual coding/programming:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Interact with customers to learn their requirements.&#xA;&lt;li&gt;Write requirements documents.&#xA;&lt;li&gt;Interact with designers to understand their concerns/constraints.&#xA;&lt;li&gt;Help programmers during system development.&#xA;&lt;li&gt;Maintain the traceability matrix to track requirements through all stages of development.&#xA;&lt;li&gt;Do some sytem testing.&#xA;&lt;li&gt;Assist in deployment.&#xA;&lt;li&gt;Contribute to user manuals and/or user training.&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So a developer-analyst would also do some (or all) of the coding/programming in addition to the tasks listed above.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&#xA;&lt;a href=&quot;http://en.wikipedia.org/wiki/Systems_Development_Life_Cycle&quot; rel=&quot;nofollow&quot;&gt;SDLC&lt;/a&gt; is usually schematized like this:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Planning -&amp;gt;2. Analysis -&amp;gt;3. Design -&amp;gt;4. Development -&amp;gt;5. Testing -&amp;gt;6. Deployment -&amp;gt;7. Maintenance -&amp;gt;1.Planning (again)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Presumably a developer-analyst concentrates on phases 2 &amp;amp; 4, and leaves the other phases to others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BUT, in my personal experience, at smaller firms, you tend to be responsible for all phases (1-7), &lt;i&gt;regardless of your title&lt;/i&gt;. While at large companies, there's more of a division-of-labor and specialization.&lt;/p&gt;&#xA;" OwnerUserId="4128" LastEditorUserId="4128" LastEditorDisplayName="" LastEditDate="2010-10-07T21:16:03.167" LastActivityDate="2010-10-07T21:16:03.167" CommentCount="2" />
  <row Id="10309" PostTypeId="2" ParentId="9371" CreationDate="2010-10-07T20:21:25.007" Score="3" ViewCount="" Body="&lt;p&gt;I am rather surprised that nobody so far has recommended the use of a &lt;strong&gt;wiki&lt;/strong&gt; for tracking requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found it to be an almost perfect system, because:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It allows people to collaborate on the requirements and makes this aspect highly-visible;&lt;/li&gt;&#xA;&lt;li&gt;It enables you to easily keep the requirements up to date as the project progresses;&lt;/li&gt;&#xA;&lt;li&gt;You can go in and see the history at any time, in case of a &quot;that's not what we agreed&quot; dispute;&lt;/li&gt;&#xA;&lt;li&gt;Most modern wikis have decent formatting capabilities, so it looks almost as good as a Word doc;&lt;/li&gt;&#xA;&lt;li&gt;You can hyperlink directly from your requirements into actual documentation;&lt;/li&gt;&#xA;&lt;li&gt;You never have to worry about people working off of different/obsolete copies;&lt;/li&gt;&#xA;&lt;li&gt;Requirements can start to be treated as an iterative process, just like design/implementation;&lt;/li&gt;&#xA;&lt;li&gt;If the requirements start to get really large/complicated, it's easy to split them up across pages/topics.&lt;/li&gt;&#xA;&lt;li&gt;Most wikis accept HTML, so if you really need advanced formatting, you can probably use a tool like &lt;a href=&quot;http://explore.live.com/windows-live-writer?os=other&quot; rel=&quot;nofollow&quot;&gt;Windows Live Writer&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Given the choice, I almost always choose the wiki method these days, it's really quite painless compared to the old-fashioned Word documents or trying to cram it all into a bug tracker.&lt;/p&gt;&#xA;" OwnerUserId="3249" LastActivityDate="2010-10-07T20:21:25.007" CommentCount="2" />
  <row Id="10310" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T20:30:29.013" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Corporate Bloatware.&lt;/strong&gt;  I get a nice new laptop (i7, 8 GB RAM...) that takes over 2 minutes to boot then 2 more to log in, then launching programs for the first few minutes takes &lt;em&gt;forrrrevvverrrrr&lt;/em&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work through a contractor, and the 2-year old Core 2 Duo &lt;em&gt;blazes&lt;/em&gt; in comparison; so I do all my development on that then use the probably $2k corporate laptop for email and intranet stuff.&lt;/p&gt;&#xA;" OwnerUserId="4428" LastActivityDate="2010-10-07T20:30:29.013" CommunityOwnedDate="2010-10-07T20:30:29.013" CommentCount="1" />
  <row Id="10311" PostTypeId="1" CreationDate="2010-10-07T20:30:55.647" Score="5" ViewCount="173" Body="&lt;p&gt;If you have several million lines of Delphi code and want to incrementally migrate to .NET/C#, what strategy would you use?&lt;/p&gt;&#xA;" OwnerUserId="4799" LastActivityDate="2010-12-28T21:48:12.530" Title="What are the most common ways used to migrate a Delphi application incrementally to .NET?" Tags="&lt;.net&gt;&lt;architect&gt;&lt;refactoring&gt;&lt;delphi&gt;&lt;enterprise-architecture&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="2" />
  <row Id="10312" PostTypeId="2" ParentId="8954" CreationDate="2010-10-07T20:32:07.280" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Fogbugz.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it does everything except invoice generation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.fogcreek.com/FogBugz/&quot; rel=&quot;nofollow&quot;&gt;http://www.fogcreek.com/FogBugz/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1351" LastActivityDate="2010-10-07T20:32:07.280" />
  <row Id="10313" PostTypeId="1" AcceptedAnswerId="10327" CreationDate="2010-10-07T20:35:50.727" Score="12" ViewCount="377" Body="&lt;p&gt;I just realized that I cannot add any new programming skills to my resume, for like 10 months. I am not sure whether this is a bad sign or not about my current job. How would you interpret this situation if you were a junior .NET developer at the age of 27?&lt;/p&gt;&#xA;" OwnerUserId="3049" LastActivityDate="2010-10-08T03:09:38.680" Title="Do you consider quitting your job if you cannot add anything new to your resume for a long time?" Tags="&lt;jobs&gt;&lt;self-improvement&gt;&lt;resume&gt;" AnswerCount="9" CommentCount="2" FavoriteCount="1" />
  <row Id="10315" PostTypeId="2" ParentId="10311" CreationDate="2010-10-07T20:36:16.237" Score="3" ViewCount="" Body="&lt;p&gt;I'd take a long hard look at Delphi Prism to migrate to .NET without rewriting in C#.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-07T20:36:16.237" CommentCount="7" />
  <row Id="10316" PostTypeId="2" ParentId="10311" CreationDate="2010-10-07T20:36:50.180" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Option1&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Step 1: Find what pieces of the application can be broken off and rewritten individually.&lt;/li&gt;&#xA;&lt;li&gt;Step 2: Get cracking.  (It may take a while)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Option 2&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Step 1: &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000069.html&quot; rel=&quot;nofollow&quot;&gt;Don't rewrite it because it may be a bad idea.&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-07T20:36:50.180" CommentCount="5" />
  <row Id="10317" PostTypeId="2" ParentId="10292" CreationDate="2010-10-07T20:37:17.963" Score="1" ViewCount="" Body="&lt;p&gt;People who call themselves &quot;developers&quot; are less pretentious.&lt;/p&gt;&#xA;" OwnerUserId="2268" LastActivityDate="2010-10-07T20:37:17.963" />
  <row Id="10318" PostTypeId="2" ParentId="10311" CreationDate="2010-10-07T20:38:31.693" Score="1" ViewCount="" Body="&lt;p&gt;I had to do exactly this, although it wasn't several million lines, it was an order of magnitude lower than that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did it by implementing web services in .NET.  Even the old versions of Delphi have decent SOAP support, so you can just start swapping out entire modules for web services written in .NET (just use the basic profile, no WS-* extensions).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And when you're done, you have a beautiful loosely-coupled SOA.&lt;/p&gt;&#xA;" OwnerUserId="3249" LastActivityDate="2010-10-07T20:38:31.693" CommentCount="1" />
  <row Id="10319" PostTypeId="2" ParentId="9991" CreationDate="2010-10-07T20:39:08.173" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Use technology to break you out of the flow.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, if you're using Windows 7, parental controls can lock you out of your account at specified times (meal times, bed time, etc). My suggestion would be to set up another installation of Windows (dual-boot) with all your development tools. Remove everything development related from your original Windows installation. On the development install, set up an administrator account with a long auto-generated password that you entrust with someone else (or put the password out of reach in some other way), and set up a limited account with parental controls which limit what hours you can use the account, so that during that time you're locked out of your account (locking the workstation doesn't close any applications, so there won't be any loss of work).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Getting the admin password to override the parental controls should be a long and inconvenient enough process to break you out of the flow, or a process that you won't consider doing at all (e.g. wake someone up late at night to ask for the password). As soon as you break out of it, hunger, thirst, and/or sleepiness will settle in, taking the place of adrenaline, and getting back into the flow will be pretty hard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's the general idea. I'm sure there are similar technological solutions you can try that will be more suitable for you (and that work on your preferred OS). I'm sure there are also solutions that require less work to set up, but I find that the less they require, the easier they are to bypass and the less chance they have of interrupting your flow.&lt;/p&gt;&#xA;" OwnerUserId="135" LastActivityDate="2010-10-07T20:39:08.173" />
  <row Id="10321" PostTypeId="2" ParentId="10313" CreationDate="2010-10-07T20:42:32.987" Score="6" ViewCount="" Body="&lt;p&gt;If you did not learn something new in the last 10 month, then it's a good reason to start learning today.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't ask the permission, do it. Now. &lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-07T20:42:32.987" CommentCount="4" />
  <row Id="10322" PostTypeId="2" ParentId="10230" CreationDate="2010-10-07T20:42:48.507" Score="5" ViewCount="" Body="&lt;p&gt;As a social worker, would you appreciate it if this programmer were to come to you to advise you on how he thought you had mishandled an important case you once worked on, but were no longer assigned to?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say that he would be on very shaky ground for approaching you; the reverse is also true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Under the circumstances, I'd say that if you have concerns for the security state of the application in question (and given what you've written here, you &lt;em&gt;should&lt;/em&gt; have such concerns), that would be best served by bringing your concerns up to those who have some power to effect corrections.  Trying to educate the former developer is not your bailiwick, and is more likely to be seen as interference than anything else.&lt;/p&gt;&#xA;" OwnerUserId="1351" LastActivityDate="2010-10-07T20:42:48.507" CommentCount="1" />
  <row Id="10323" PostTypeId="2" ParentId="10313" CreationDate="2010-10-07T20:45:52.913" Score="4" ViewCount="" Body="&lt;p&gt;At work there are always constraints to deal with -- deadlines to meet, bugs to fix, existing customers to support, etc. If you feel like you're not learning on the job anymore, you can always learn at home. Every job will eventually stop teaching you stuff because you will hit a certain level of competency in its domain and then it's up to you to take the reins and keep going.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't say that not learning at work is a sure sign that it's time to quit, but it could be one of the factors. If you're already thinking of leaving, it could add to your list of reasons. But I don't know if I'd leave based on that alone if all other things about the job were good.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-07T20:45:52.913" />
  <row Id="10324" PostTypeId="2" ParentId="2490" CreationDate="2010-10-07T20:54:31.950" Score="9" ViewCount="" Body="&lt;p&gt;I like the presentations on &lt;a href=&quot;http://www.infoq.com/&quot; rel=&quot;nofollow&quot;&gt;InfoQ&lt;/a&gt; - &quot;Tracking change and innovation in the enterprise software development community&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples of good presentations at InfoQ:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.infoq.com/presentations/The-State-of-the-Art-on-.NET&quot; rel=&quot;nofollow&quot;&gt;The State of the Art on .NET&lt;/a&gt; by &lt;em&gt;Amanda Laucher&lt;/em&gt; and &lt;em&gt;Josh Graham&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.infoq.com/presentations/Domain-Event-Driven-Architecture&quot; rel=&quot;nofollow&quot;&gt;Domain Event-Driven Architecture&lt;/a&gt; by &lt;em&gt;Stefan Norberg&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.infoq.com/presentations/Browser-as-Platform-Galbraith-and-Almaer&quot; rel=&quot;nofollow&quot;&gt;The Browser as a Platform&lt;/a&gt; by &lt;em&gt;Ben Galbraith&lt;/em&gt; and &lt;em&gt;Dion Almaer&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.infoq.com/presentations/erlang-software-for-a-concurrent-world&quot; rel=&quot;nofollow&quot;&gt;Erlang - software for a concurrent world&lt;/a&gt; by &lt;em&gt;Joe Armstrong&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.infoq.com/presentations/Web-Oriented-Architecture-Dion-Hinchcliffe&quot; rel=&quot;nofollow&quot;&gt;Web-Oriented Architecture&lt;/a&gt; by &lt;em&gt;Dion Hinchcliffe&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.infoq.com/presentations/Unibet.com-Architecture&quot; rel=&quot;nofollow&quot;&gt;Open Source at Unibet.com - 10x Scalability at Half the Cost&lt;/a&gt; by &lt;em&gt;Stefan Norberg&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.infoq.com/presentations/availability-consistency&quot; rel=&quot;nofollow&quot;&gt;Availability &amp;amp; Consistency&lt;/a&gt; by &lt;em&gt;Werner Vogels&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-07T21:35:00.040" LastActivityDate="2010-10-07T21:35:00.040" CommentCount="2" />
  <row Id="10325" PostTypeId="2" ParentId="10313" CreationDate="2010-10-07T20:54:59.243" Score="5" ViewCount="" Body="&lt;p&gt;If you're not learning anything new in your current job, then you need to do something on the side, outside of your job.  In fact, if you're not already doing this, maybe programming isn't the best career for you?  All the best devs, in my experience, have their own little projects they work on in their spare time, if only for the sake of keeping closer to the leading edge of the profession.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And don't restrict yourself to learning skills &quot;related&quot; to ones you already have.&lt;/p&gt;&#xA;" OwnerUserId="1351" LastActivityDate="2010-10-07T20:54:59.243" />
  <row Id="10327" PostTypeId="2" ParentId="10313" CreationDate="2010-10-07T20:55:32.713" Score="13" ViewCount="" Body="&lt;p&gt;Learning something new is your responsibility and not necessarily your employer's.  If your current job hasn't offered the opportunity for you to learn then you're either not looking for for them, not pushing your boundaries far enough or need a new job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll need to go back (in your mind) and look at the project(s) you worked on during that period and see if there was an opportunity that you missed to push your comfort level.  Could you have done something different to have changed that?  If you can answer yes to either, then it's not your job, it's you.  You'll need to actively look for those opportunities more carefully as the project unfolds.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can honestly say that there were no opportunities to grow and learn in that period, then it's time to move on.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-10-07T22:05:49.053" LastActivityDate="2010-10-07T22:05:49.053" CommentCount="3" />
  <row Id="10328" PostTypeId="2" ParentId="8117" CreationDate="2010-10-07T20:55:36.937" Score="0" ViewCount="" Body="&lt;p&gt;Manual testing, whilst very important, is really towards the bottom of the QA food-chain. Even if you want to continue as a tester I suggest that you go with the developer opportunity in order to advance in that area. Certainly if you want to work on projects with short release cycles (as they are in agile methodolgies for example) you will need some of those skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whatever you do though, go with the thing you enjoy (or think you will enjoy) long term - in a career with the strong requirement for self-development that development has you'll never be really successful unless you enjoy it.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-07T20:55:36.937" CommentCount="1" />
  <row Id="10330" PostTypeId="2" ParentId="9991" CreationDate="2010-10-07T20:57:59.040" Score="-2" ViewCount="" Body="&lt;p&gt;This is a problem?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it is, then so is breathing.&lt;/p&gt;&#xA;" OwnerUserId="1351" LastActivityDate="2010-10-07T20:57:59.040" CommentCount="5" />
  <row Id="10331" PostTypeId="2" ParentId="10292" CreationDate="2010-10-07T20:59:31.080" Score="3" ViewCount="" Body="&lt;p&gt;They can often be used interchangeably. The addition of -analyst in the title means some business/domain knowledge is needed. Many places just have developers or developer-analyst. In organizations that have developers and analyst the analyst would be responsible for more functional knowledge/design where the developer would be just responsible for implementing the functional design technically&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-07T20:59:31.080" />
  <row Id="10332" PostTypeId="2" ParentId="10313" CreationDate="2010-10-07T21:01:38.757" Score="2" ViewCount="" Body="&lt;p&gt;How certain are you of learning nothing new in the past 10 months?  What tools and methodology do you use?  This is just a question as I think I've always seen something new each year in my working life and I've worked for nearly 13 years.  While some of those years I used the same tools for years there were other things to pick up.  How well do I test this code?  How well do I get the requirements before I start coding up something?  There are a dozen of these kinds of questions to ask about seeing what skills are being honed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While sometimes one can be stuck with a methodology and software for a few years, there are other things to consider in developing one's skills.  I remember spending 20 months customizing a content management system to take an example.  Within that project there were probably 5 or 6 skills that I can see where I'm better now than a I was at the start of the project, e.g. jQuery, XSLT, design patterns, IE 6 compatibility, and cross browser testing.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-07T21:01:38.757" />
  <row Id="10333" PostTypeId="2" ParentId="10208" CreationDate="2010-10-07T21:07:46.520" Score="10" ViewCount="" Body="&lt;p&gt;I once had a job interview where the hiring person was a dev, and he asked me to cut some code in the language they needed, right then and there on the whiteboard.  I did what he asked, he looked at it, nodded, and asked &quot;Can you start tomorrow?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Asking BS questions like &quot;name your biggest strengths and weaknesses&quot; is the most egregious waste of time ever invented by pseudo-intellectual MBA Human Resource specialists.&lt;/p&gt;&#xA;" OwnerUserId="1351" LastActivityDate="2010-10-07T21:07:46.520" />
  <row Id="10334" PostTypeId="1" AcceptedAnswerId="10353" CreationDate="2010-10-07T21:14:49.040" Score="9" ViewCount="394" Body="&lt;p&gt;Granted that Silverlight may make eye-popping websites of great beauty, is there any justification for using it to make practical web applications that have serious business purposes?  I'd like to use it (to learn it) for a new assignment I have, which is to build a web-based application that keeps track of the data interfaces used in our organization, but I'm not sure how to justify it, even to myself.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any thoughts on this?  If I can't justify it then I will have to build the app using the same old tired straight ASP.NET approach I've used (it seems) a hundred times already.&lt;/p&gt;&#xA;" OwnerUserId="1351" LastActivityDate="2011-02-14T13:13:09.460" Title="Is Silverlight only for eye-candy, or does it have a use in business?" Tags="&lt;asp.net&gt;&lt;silverlight&gt;" AnswerCount="7" CommentCount="1" />
  <row Id="10335" PostTypeId="2" ParentId="10334" CreationDate="2010-10-07T21:28:02.300" Score="5" ViewCount="" Body="&lt;p&gt;Well, Microsoft recently released a Web version of Office, and there's not a trace of Silverlight to be seen anywhere.  Feel free to draw your own conclusions from this.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-07T21:28:02.300" CommentCount="6" />
  <row Id="10336" PostTypeId="2" ParentId="10334" CreationDate="2010-10-07T21:41:04.837" Score="10" ViewCount="" Body="&lt;p&gt;Silverlight has not been designed to build websites.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has been designed to build web applications that run in a browser.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-07T21:46:19.473" LastActivityDate="2010-10-07T21:46:19.473" CommentCount="1" />
  <row Id="10337" PostTypeId="2" ParentId="10208" CreationDate="2010-10-07T21:50:51.077" Score="0" ViewCount="" Body="&lt;p&gt;I'm going though a personnal evaluation at the moment, and i'm in the middle of this very exercise. Only there's a twist; i have to ask colleagues and friends what my strengths/weaknesses are, and not look at the result before having compiled my own list&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is very interesting because it makes some discrespancies between what you think you are and what other perceives about you obvious.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;I think i'm a hard worker, and i'm very serious and ...&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;He's an obsessive control freak who programs so defensively his code is&#xA;  unreadable and ...&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;In interviews, i think this may be a kind of low level sanity check. &quot;Do you know the basics, did you prepare?&quot; they seem to say. Or perhaps it's just that this question used to trip people, to shake them up. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But now the question is so widely known it's become useless; interviewers keep asking it out of habit because that's what they've learned. Interviewees keep trying to game it out of self-preservation...&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Perhaps it could be updated; instead of &quot;what's your weakness&quot;, ask &quot;hey, if you could go back in time one year, what is the thing you'd like to change the most?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Chances are, the interviewee will have a chance to talk about a moment when he didn't manage to reach his standards, but in a positive way: &quot;well this didn't work out, so i'd... to have it succeed&quot;. The interviewer has an idea of what the interviewee didn't like, and the interviewee shows he did learn from a mistake.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same could be done with the strengths: &quot;if you had to showcase one thing you did during last year, what would it be?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;what do you think? Does it keep the goal of the original question but in better clothes?&lt;/p&gt;&#xA;" OwnerUserId="1690" LastActivityDate="2010-10-07T21:50:51.077" />
  <row Id="10338" PostTypeId="2" ParentId="9062" CreationDate="2010-10-07T21:59:13.403" Score="8" ViewCount="" Body="&lt;p&gt;Hitting the &quot;Save&quot; button &lt;em&gt;twice&lt;/em&gt;, just to be sure...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(For users of &lt;code&gt;vi&lt;/code&gt; family, pressing &quot;:w&quot; twice)&lt;/p&gt;&#xA;" OwnerUserId="4700" LastActivityDate="2010-10-07T21:59:13.403" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="2" />
  <row Id="10339" PostTypeId="2" ParentId="9062" CreationDate="2010-10-07T22:03:40.713" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Ctrl-L&lt;/strong&gt; to clear to the xterm, before the firing the build.&lt;/p&gt;&#xA;" OwnerUserId="4700" LastActivityDate="2010-10-07T22:03:40.713" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="1" />
  <row Id="10340" PostTypeId="1" AcceptedAnswerId="10343" CreationDate="2010-10-07T22:06:13.150" Score="19" ViewCount="854" Body="&lt;p&gt;Is it still worth it to protect our software against piracy? There are reasonably effective ways to prevent or at least make piracy difficult?&lt;/p&gt;&#xA;" OwnerUserId="4809" LastEditorUserId="4809" LastEditorDisplayName="" LastEditDate="2010-10-07T23:22:00.377" LastActivityDate="2011-04-15T15:44:36.530" CommunityOwnedDate="2011-04-15T15:44:36.530" Title="How do you prevent the piracy of your software?" Tags="&lt;security&gt;&lt;piracy&gt;" AnswerCount="16" CommentCount="2" FavoriteCount="6" />
  <row Id="10341" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T22:09:53.870" Score="1" ViewCount="" Body="&lt;p&gt;Everybody says, the assignment is done 90%; although the 100% is never reported.&lt;/p&gt;&#xA;" OwnerUserId="4700" LastActivityDate="2010-10-07T22:09:53.870" CommunityOwnedDate="2010-10-07T22:09:53.870" />
  <row Id="10342" PostTypeId="2" ParentId="10340" CreationDate="2010-10-07T22:10:19.983" Score="8" ViewCount="" Body="&lt;p&gt;Yes it is still useful, but don't spend to much time and money on that. If your software worth it, it will be purchased AND cracked. Regardless the efforts you put in the protection mechanism.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Too much protection as well as no protection will affects sales.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-07T22:10:19.983" CommunityOwnedDate="2011-04-15T15:44:36.530" CommentCount="4" />
  <row Id="10343" PostTypeId="2" ParentId="10340" CreationDate="2010-10-07T22:10:50.247" Score="33" ViewCount="" Body="&lt;p&gt;Not really.  Any copy protection has to be 100% perfect, (which we all know is impossible,) or else all it will take is for one person anywhere in the world to come up with a working crack and post it on the Web.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want people to pay money for your product, copy protection is not the answer.  It never has worked and never will.  The answer lies in Economics 101: people will pay money for your product if they perceive its value to them as being greater than the price you are asking for it.  Otherwise, they won't.  Period.&lt;/p&gt;&#xA;" OwnerUserId="935" LastEditorUserId="935" LastEditorDisplayName="" LastEditDate="2010-10-07T22:17:28.147" LastActivityDate="2010-10-07T22:17:28.147" CommunityOwnedDate="2011-04-15T15:44:36.530" CommentCount="11" />
  <row Id="10344" PostTypeId="2" ParentId="331" CreationDate="2010-10-07T22:12:14.307" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://wenq.org/enindex.cgi&quot; rel=&quot;nofollow&quot;&gt;WenQuanYi Zen Hei&lt;/a&gt; Mono. I'm not even kidding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://dl.dropbox.com/u/1164414/Ubuntu/WenQuanYi%20Zen%20Hei%20Mono.png&quot; alt=&quot;WenQuanYi Zen Hei Mono at work.&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pardon my Python.&lt;/p&gt;&#xA;" OwnerUserId="236" LastActivityDate="2010-10-07T22:12:14.307" CommunityOwnedDate="2010-10-07T22:12:14.307" />
  <row Id="10345" PostTypeId="2" ParentId="10340" CreationDate="2010-10-07T22:13:08.313" Score="10" ViewCount="" Body="&lt;p&gt;Give it away :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given that virtually all anti-piracy measures can be circumvented if someone is determined enough there's an argument for not doing anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make your software useful and offer support to those that pay, thus getting the revenue and dedicated users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One way to get revenue could be to have a &quot;pro&quot; version that unlocks extra features that needs to be paid for. This seems to be a popular approach. You need to be make sure that the unlocking of the pro features is a) easy for the customer but b) hard for the hacker.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-10-08T09:55:39.000" LastActivityDate="2010-10-08T09:55:39.000" CommunityOwnedDate="2011-04-15T15:44:36.530" CommentCount="4" />
  <row Id="10346" PostTypeId="1" CreationDate="2010-10-07T22:13:54.723" Score="0" ViewCount="107" Body="&lt;p&gt;Could someone help me figure out what this C++ code does I got it somewhere but want to understand it. I have figured out some of it but some things I cannot get my head around. Here it is: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;vector&amp;lt;double&amp;gt; prices;            // vector of option prices&#xA;vector&amp;lt;int&amp;gt; strikes;                // vector of strikes&#xA;char buffer[100];                   // buffer for line read&#xA;char dataBuffer[100];         // stores current data string read&#xA;char *str = NULL;                   // pointer to data string&#xA;const char *file = &quot;optionData.txt&quot;; // file with option chain info&#xA;ifstream fin;                        // input file stream&#xA;&#xA;fin.clear();&#xA;fin.open(file);&#xA;if (fin.good())&#xA;{&#xA;    while (!fin.eof()){&#xA;        // read in one line at a time&#xA;        fin.getline(buffer,sizeof(buffer)/sizeof(buffer[0]));&#xA;        ifstream str1(buffer);&#xA;&#xA;        // Get data&#xA;        str1 &amp;gt;&amp;gt; dataBuffer; // read data from file&#xA;        while (!str1.eof()){&#xA;            // read in contract maturity, strike, and price&#xA;            str1 &amp;gt;&amp;gt; dataBuffer;       // read option maturity month&#xA;            str1 &amp;gt;&amp;gt; dataBuffer;       // read option maturity year&#xA;&#xA;            str1 &amp;gt;&amp;gt; dataBuffer;       / read option maturity strike&#xA;            // convert strike char* data to integers&#xA;            // and add to strike vector&#xA;            strikes.push_back(atoi(dataBuffer));&#xA;&#xA;            str1 &amp;gt;&amp;gt; dataBuffer;       // read option market price&#xA;            // convert option price char* data to floats&#xA;            // and add to strike vector&#xA;            prices.push_back(atof(dataBuffer));&#xA;        }&#xA;&#xA;        buffer[strlen(buffer) + 1] = '\0';&#xA;    }&#xA;}&#xA;else&#xA;{&#xA;    cout &amp;lt;&amp;lt; &quot;File not good!&quot; &amp;lt;&amp;lt; &quot;\n&quot;;&#xA;}&#xA;// close file&#xA;fin.close();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;What i dont get is the following &#xA;1.  ifstream str1(buffer);&#xA;2. fin.getline(buffer,sizeof(buffer)/sizeof(buffer[0])); particularly  sizeof(buffer)/sizeof(buffer[0])&#xA;3. buffer[strlen(buffer) + 1] = '\0';&#xA;4. str1 &gt;&gt; dataBuffer;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The file being read is &quot;optionData.txt&quot; and a sample of it is &#xA;Jan 03 35.00 40.50 Jan 03  95.00 0.30&#xA;Jan 03 40.00 25.30 Jan 03 100.00 0.20&#xA;Jan 03 45.00 29.50 Jan 03 105.00 0.05&#xA;Jan 03 50.00 16.80 Jan 03 110.00 0.10&#xA;Jan 03 55.00 12.60 Jan 03 115.00 0.15&#xA;Jan 03 60.00  9.30 Jan 03 120.00 0.15&#xA;Jan 03 65.00  6.40 Jan 03 125.00 0.10&#xA;Jan 03 70.00  4.10 Jan 03 130.00 0.10&#xA;Jan 03 75.00  2.60 Jan 03 140.00 0.10&#xA;Jan 03 80.00  1.50 Jan 03 150.00 0.05&#xA;Jan 03 85.00  0.90 Jan 03 155.00 0.00&#xA;Jan 03 90.00  0.50 Jan 03 160.00 0.05&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please be patient with me I am teaching myself c++. I ran it but it freezes my machine.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-07T22:13:54.723" ClosedDate="2010-10-07T22:36:43.440" Title="file reading in C++" Tags="&lt;c++&gt;" CommentCount="4" />
  <row Id="10347" PostTypeId="2" ParentId="10334" CreationDate="2010-10-07T22:17:01.173" Score="1" ViewCount="" Body="&lt;p&gt;I am expecting that in a few years, HTML5, CSS3, and modern JIT-enabled Javascript interpreter and other technologies like WebM and WebGL will outflunk both Flash and Silverlight. Rich web applications will be written directly in HTML/CSS and Javascript, instead of piggybacking on Flash/Silverlight plugins.&lt;/p&gt;&#xA;" OwnerUserId="3733" LastActivityDate="2010-10-07T22:17:01.173" CommentCount="5" />
  <row Id="10348" PostTypeId="2" ParentId="2490" CreationDate="2010-10-07T22:18:22.810" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.ted.com/&quot; rel=&quot;nofollow&quot;&gt;TED&lt;/a&gt; has a technology section that runs the gamut of tech based talks (from a high or low level). They have had talks from a number of big names. It's not all code, but some are.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-07T22:18:22.810" />
  <row Id="10349" PostTypeId="2" ParentId="10313" CreationDate="2010-10-07T22:18:31.397" Score="0" ViewCount="" Body="&lt;p&gt;There's no need to be hasty and quit right away. There are lots of activities you can do outside of work to enhance your resume:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Get certified in something. E.g., &lt;a href=&quot;http://en.wikipedia.org/wiki/Certification_Commission_for_Healthcare_Information_Technology&quot; rel=&quot;nofollow&quot;&gt;EHR or HIT&lt;/a&gt; if you work in health care.&#xA;&lt;li&gt;Volunteer your IT services to a good cause: church, charity, school, etc.&#xA;&lt;li&gt;Volunteer to teach a workshop in IT at a school. Or do a lecture series on IT at a community center or library.&#xA;&lt;li&gt;Take a class or a course at a community college&#xA;&lt;li&gt;If you're more ambitious, go to night school and earn an MBA (if you don't already have one).&#xA;&lt;li&gt;Take an &lt;a href=&quot;http://www.beanactuary.org/&quot; rel=&quot;nofollow&quot;&gt;actuarial exam&lt;/a&gt;, especially if you work in a financial field.&#xA;&lt;li&gt;Start moonlighting as a consultant.&#xA;&lt;li&gt; Contribute to a F/OSS project.&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-07T22:18:31.397" />
  <row Id="10350" PostTypeId="2" ParentId="10334" CreationDate="2010-10-07T22:20:33.413" Score="3" ViewCount="" Body="&lt;p&gt;One good reason to learn Silverlight is that it will set you up for developing apps for the Windows Phone 7 platform. I can't offer you any hot tips on how to justify using Silverlight for a web project, but that's one more reason why it's a good idea for you to &lt;em&gt;try&lt;/em&gt; to do so. :)&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-10-07T22:20:33.413" CommentCount="1" />
  <row Id="10351" PostTypeId="2" ParentId="2490" CreationDate="2010-10-07T22:20:40.893" Score="6" ViewCount="" Body="&lt;p&gt;Some video collections: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.youtube.com/user/GoogleTechTalks&quot; rel=&quot;nofollow&quot;&gt;Google TechTalks&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Lambda the Ultimate has a &lt;a href=&quot;http://lambda-the-ultimate.org/search/node/videos?from=0&quot; rel=&quot;nofollow&quot;&gt;nice collection of video links&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Fora.tv's &lt;a href=&quot;http://fora.tv/topic/technology&quot; rel=&quot;nofollow&quot;&gt;tech channel&lt;/a&gt; is usually worth a look.&lt;/li&gt;&#xA;&lt;li&gt;The &lt;a href=&quot;http://www.archive.org/details/mit_ocw_sicp&quot; rel=&quot;nofollow&quot;&gt;Abelman &amp;amp; Sussman videos&lt;/a&gt; are a must.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://videolectures.net/Top/Computer_Science/&quot; rel=&quot;nofollow&quot;&gt;Video Lectures&lt;/a&gt; has a trove of interesting things to look at.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Audio: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.se-radio.net/&quot; rel=&quot;nofollow&quot;&gt;Software Engineering Radio&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Specific videos: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Guy Steele's OOPSLA talk &lt;a href=&quot;http://video.google.com/videoplay?docid=-8860158196198824415#&quot; rel=&quot;nofollow&quot;&gt;Growing a Language&lt;/a&gt;. Classic&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4808" LastActivityDate="2010-10-07T22:20:40.893" CommentCount="1" />
  <row Id="10352" PostTypeId="2" ParentId="10340" CreationDate="2010-10-07T22:20:58.853" Score="1" ViewCount="" Body="&lt;p&gt;Give the software away for free as a 'lite' version. People who are serious about it can pay for the 'full' version and have their version somehow stamped to identify it. Don't stick their name in it - that's too easy to remove.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A better model is to manage payment from the server side. &lt;a href=&quot;http://programmers.stackexchange.com/questions/8956/how-do-you-decide-how-much-your-software-will-cost/9552#9552&quot;&gt;See my answer on pricing for more details.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-07T22:20:58.853" CommunityOwnedDate="2011-04-15T15:44:36.530" />
  <row Id="10353" PostTypeId="2" ParentId="10334" CreationDate="2010-10-07T22:27:54.710" Score="3" ViewCount="" Body="&lt;p&gt;My current job is building a Silverlight business application (as was my previous one) so you could see that as an argument for saying &quot;yes it is for business applications&quot;!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The current application is at its early stages and there are issues with Silverlight (even SL 4) that may cause us problems, but we'll be able to work round them in the short term and address then when new versions are released.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the things that I (and my boss) think is that Silverlight offers you a way to build desktop type applications for the web. Ultimately it might not be the best technology for this, but at the moment it seems to be the one that offers the greatest chance of succeeding.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-07T22:27:54.710" CommentCount="1" />
  <row Id="10354" PostTypeId="2" ParentId="10230" CreationDate="2010-10-07T22:32:10.483" Score="3" ViewCount="" Body="&lt;p&gt;First of all, as an end-user, you are one of the most important stakeholders in this software development project. Your views are totally valid, and they deserve to be heard by management!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, you do seem to know what you're talking about (you know when a DB isn't properly normalized), regardless of your job title or academic credentials.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thirdly, you obviously feel very strongly about this matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you should voice your concerns to management. Just make sure that you state your case articulately and in a highly respectful manner.&lt;/p&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-07T22:32:10.483" />
  <row Id="10355" PostTypeId="2" ParentId="10087" CreationDate="2010-10-07T22:37:22.753" Score="2" ViewCount="" Body="&lt;p&gt;[Remove all the ]Code with out comments&lt;/p&gt;&#xA;" OwnerUserId="4810" LastEditorUserId="4810" LastEditorDisplayName="" LastEditDate="2010-10-07T22:49:11.283" LastActivityDate="2010-10-07T22:49:11.283" CommunityOwnedDate="2010-10-07T22:37:22.753" />
  <row Id="10356" PostTypeId="2" ParentId="10311" CreationDate="2010-10-07T22:40:20.707" Score="1" ViewCount="" Body="&lt;p&gt;Here is another alternative that I have found to be very effective. Now keep in mind that no matter what you do it will be a hell of a lot of work but by taking in all this advice I think you can pull it off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the great things about C# is that it can register your assemblies for COM interop and will generate all of those nasty interfaces for you. What we did was take modules from our poorly designed VB6 application and have them use functionality from .NET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something you really need to remember is to keep your interfaces simple. Try to only require simple types to be passed to .NET. Also you will need to have a considerable amount of upfront planning to layout what functionality you will expose from .NET. You will need to perform extensive refactoring to make sure your new objects will integrate properly with the legacy code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once again there is no way you can turn this into an easy task but it can be done.&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-10-07T22:40:20.707" />
  <row Id="10357" PostTypeId="2" ParentId="10340" CreationDate="2010-10-07T22:42:37.943" Score="17" ViewCount="" Body="&lt;p&gt;I would say &quot;No&quot; to both questions, without hesitation.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is it still worth it to protect our software against piracy?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No, and a lot of companies and independent developers have demonstrated that there's no need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Humble Indie Bundle is an exceptionally good example of one possible way of making a killing &lt;em&gt;in spite of&lt;/em&gt; active &quot;piracy.&quot; In a single 3-week event, five developers made, together, almost US$900,000 on their five games (plus one), without DRM, and even without a concerted effort to control access to the download links. And despite rampant sharing by people who paid, an average of US$10 per copy was paid, 30% of which went to charity. (This is, admittedly, a rather exceptional example in that it's not the norm even for this kind of sale event, but it is a good demonstration of how non-standard sales models can work extremely well.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Companies like Introversion Software and Stardock make a lot of money &lt;em&gt;despite a 90% piracy rate&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another good example is Illumination Software Creator, which is doing very well for itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or look at Minecraft, which has chosen a &quot;freemium&quot; model and is earning (as of this week) the author $100,000 per day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even when people stop &lt;em&gt;fighting&lt;/em&gt; &quot;piracy,&quot; they tend to do very well for themselves.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Are there are reasonably effective ways to prevent or at least make piracy difficult?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No, and frankly, it's rather pointless. Software can and will be copied as easily as you copy values within your program. No matter what efforts you make to protect your software against &quot;piracy,&quot; so long as the end-user will at any point have a copy of the program, &lt;em&gt;someone&lt;/em&gt; will distribute it to others without cost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only two ways to &lt;em&gt;prevent&lt;/em&gt; &quot;piracy&quot; are: Make your software a &lt;em&gt;service&lt;/em&gt;, such as a web application, or open your source code (or otherwise license your software for free distribution).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only way to &lt;em&gt;discourage&lt;/em&gt; &quot;piracy&quot; of software with a price tag is to set a price more in line with the value your customers perceive in the product, or to attach that price to actual services (like providing support). No one will pay $60 for something they can get for free in another product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(On a side note, I object to the term &quot;piracy,&quot; since its etymology implies theft. Copyright infringement is not theft, no matter how you look at it, and to equate the two is intellectually dishonest. I would prefer a term like &quot;illegitimate customer&quot; or &quot;untapped market.&quot;)&lt;/p&gt;&#xA;" OwnerUserId="83" LastEditorUserId="83" LastEditorDisplayName="" LastEditDate="2010-10-08T16:53:45.797" LastActivityDate="2010-10-08T16:53:45.797" CommunityOwnedDate="2011-04-15T15:44:36.530" CommentCount="12" />
  <row Id="10358" PostTypeId="1" CreationDate="2010-10-07T22:51:47.480" Score="6" ViewCount="195" Body="&lt;p&gt;If you have been trained in the use of &lt;a href=&quot;http://en.wikipedia.org/wiki/Formal_methods&quot; rel=&quot;nofollow&quot;&gt;formal methods&lt;/a&gt; (FM) for programming:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How useful have you found it?  &lt;/li&gt;&#xA;&lt;li&gt;What did your FM training involve (e.g. a course, a book)?  &lt;/li&gt;&#xA;&lt;li&gt;What FM tools do you use?  &lt;/li&gt;&#xA;&lt;li&gt;What advantages in speed/quality has it given you compared to not using FM?  &lt;/li&gt;&#xA;&lt;li&gt;What kind of software do you create with FM?  &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;And if you don't directly use FM now, was it at least worth learning??&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm curious to hear as many experiences/opinions on FM as can be found in this community; I'm starting to read up on it and want to know more. &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Background&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Programming and software development/engineering are some of the newest human skills/professions on Earth, so not surprisingly, the field is immature — that shows in our field's main output, as code that is typically late and error-prone.  Industry immaturity is also shown by the wide margin (at least 10:1) in productivity between average and top coders.  Such dismal facts are well covered in the literature, and introduced by books like &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735619670&quot; rel=&quot;nofollow&quot;&gt;Steve McConnell's Code Complete&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The use of &lt;a href=&quot;http://en.wikipedia.org/wiki/Formal_methods&quot; rel=&quot;nofollow&quot;&gt;formal methods&lt;/a&gt; (FM) has been proposed by major figures in software/CS (e.g. the late &lt;a href=&quot;http://en.wikipedia.org/wiki/Edsger_W._Dijkstra&quot; rel=&quot;nofollow&quot;&gt;E. Dijkstra&lt;/a&gt;) to address (one of) the root causes of errors: the lack of mathematical rigour in programming.  Dijkstra, for instance, &lt;a href=&quot;http://www.cs.virginia.edu/~evans/cs655-S00/readings/ewd498.html&quot; rel=&quot;nofollow&quot;&gt;advocated for students developing a program and its proof together&lt;/a&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;FM seems to be much more prevalent in CS curricula in Europe compared to the US.  But in the past few years, new &quot;lightweight&quot; FM approaches and tools like &lt;a href=&quot;http://alloy.mit.edu/community/&quot; rel=&quot;nofollow&quot;&gt;Alloy&lt;/a&gt; have attracted some attention.  Still, FM is far from common usage in industry, and I'm hoping for some feedback here on why.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Update&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;As of now (10/14/2010), of the 6 answers below, no one has clearly argued for the usage of FM in &quot;real world&quot; work.  I'm really curious if someone can and will; or perhaps FM really does illustrate the divide between academia (FM is the future!) and industry (FM is mostly useless).&lt;/p&gt;&#xA;" OwnerUserId="2026" LastEditorUserId="2026" LastEditorDisplayName="" LastEditDate="2010-10-14T17:53:31.137" LastActivityDate="2010-10-14T17:53:31.137" Title="If you learned formal methods for software, how useful have you found it?" Tags="&lt;best-practices&gt;&lt;code-quality&gt;&lt;formal-methods&gt;" AnswerCount="6" CommentCount="0" FavoriteCount="2" />
  <row Id="10359" PostTypeId="2" ParentId="10061" CreationDate="2010-10-07T22:57:12.467" Score="2" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.techsmith.com/camtasia.asp&quot; rel=&quot;nofollow&quot;&gt;Camtasia&lt;/a&gt;&lt;/h1&gt;&#xA;" OwnerUserId="4700" LastActivityDate="2010-10-07T22:57:12.467" />
  <row Id="10360" PostTypeId="2" ParentId="2490" CreationDate="2010-10-07T22:58:31.530" Score="7" ViewCount="" Body="&lt;p&gt;From the guys who do the podcast DotNetRocks, there is &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.dnrtv.com/&quot; rel=&quot;nofollow&quot;&gt;DotNetRocksTV aka DNRtv&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;.NET-centric, of course, but...&lt;/p&gt;&#xA;" OwnerUserId="1351" LastActivityDate="2010-10-07T22:58:31.530" CommentCount="1" />
  <row Id="10361" PostTypeId="2" ParentId="870" CreationDate="2010-10-07T23:01:01.013" Score="17" ViewCount="" Body="&lt;h2&gt;The Structure and Interpretation of Computer Programs, aka SICP&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;When I saw that SICP was not listed yet, I grimaced in pain.  :)  From another post of mine:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why: There's nothing more to add to &lt;a href=&quot;http://www.amazon.com/review/R403HR4VL71K8/&quot; rel=&quot;nofollow&quot;&gt;Norvig's&lt;/a&gt; praising this book as the greatest introduction to computer science ever written.  Well OK, since the Why? was requested: SICP covers the fundamentals of software in a satisfyingly deep way, raising many perspectives and questions about the nature of computation — quite a few of which remain open issues — while leading the reader to see beyond the superficial aspects of telling the machine what to do, or how to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html#%_toc_start&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://ecx.images-amazon.com/images/I/41CPGEDXMDL._SL500_AA300_.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Click the image to get to the &lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html#%_toc_start&quot; rel=&quot;nofollow&quot;&gt;free text online&lt;/a&gt;.  You can also readily find the &lt;a href=&quot;http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/&quot; rel=&quot;nofollow&quot;&gt;video lectures by the authors&lt;/a&gt;, complete with '80s style color and clothing no less.&lt;/p&gt;&#xA;" OwnerUserId="2026" LastEditorUserId="2026" LastEditorDisplayName="" LastEditDate="2010-12-17T00:55:42.637" LastActivityDate="2010-12-17T00:55:42.637" CommunityOwnedDate="2011-01-21T21:28:48.980" CommentCount="1" />
  <row Id="10362" PostTypeId="2" ParentId="10313" CreationDate="2010-10-07T23:07:51.633" Score="1" ViewCount="" Body="&lt;p&gt;There is a good reason why the majority of the post to this question is &quot;do something in your spare time&quot;. The unfortunate thing is that you don't expand your skills by taking a specific job. Given the length of many projects, the constraints you have to work with, and the simple fact that most workplaces don't like a lot of change, yields low learning environment for a lot of devs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Companies will see it as your responsibility as well. For example, if you want to be marketable and learn silverlight, don't expect your current company to start their next project in silverlight so you can learn it. It's a hard lesson I learn myself mid-way through my career.&lt;/p&gt;&#xA;" OwnerUserId="1801" LastActivityDate="2010-10-07T23:07:51.633" />
  <row Id="10363" PostTypeId="2" ParentId="10340" CreationDate="2010-10-07T23:12:24.670" Score="5" ViewCount="" Body="&lt;p&gt;No, not really. And depending on the used technology there may not even be a reasonable approach at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, there is nothing you can do to prevent decompilation of an SWF (e.g. with &lt;a href=&quot;http://www.sothink.com/product/flashdecompiler/&quot; rel=&quot;nofollow&quot;&gt;Sothink SWF Decompiler&lt;/a&gt;). It will give you pretty much exactly the source code you typed. Of course you can use code obfuscation, but that makes it only a tad more difficult to understand the code while doing nothing to e.g. prevent someone from decompiling your SWF, replacing your name and company logo and then recompile it again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same goes for JavaScript or ABAP (where you basically have to deliver the source code to the customer) and probably some other technologies as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, copy-protection/DRM can seriously annoy your customers and give your company very bad publicity. Think of the various protection mechanisms employed by the gaming industry:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;DRM components installing themselves as ring 0 drivers, making the system vulnerable to security and/or stability problems&lt;/li&gt;&#xA;&lt;li&gt;protection software telling you to uninstall other applications before allowing the product to run&lt;/li&gt;&#xA;&lt;li&gt;permanent online connection required to play a single-player game&lt;/li&gt;&#xA;&lt;li&gt;limited installations or online activations, often used in combination with binding the product to a user account of some sort (usually this binding is irreversible)&lt;/li&gt;&#xA;&lt;li&gt;etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Therefore you should always consider the negative impact any copy-protection measures you include in your product can have on your reputation and how much effort (development time, license costs, etc.) it requires to actually get that DRM stuff into your application. If you come to the conclusion that it's still worth the trouble then do it. But if you have any doubt that using DRM will actually hurt your business more than benefit it then simply don't do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, requiring a CD key or employing a disc check to prevent John Doe from using Nero to provide his whole family with copies of your product is still reasonable. However, any measures that invade the customer's system by installing DRM drivers or something like that should be considered very carefully because of the previously stated reasons.&lt;/p&gt;&#xA;" OwnerUserId="3453" LastEditorUserId="3453" LastEditorDisplayName="" LastEditDate="2010-10-08T00:19:23.913" LastActivityDate="2010-10-08T00:19:23.913" CommunityOwnedDate="2011-04-15T15:44:36.530" />
  <row Id="10364" PostTypeId="2" ParentId="10358" CreationDate="2010-10-07T23:16:25.967" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Absolutely useless for anything nontrivial.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had a course called, aptly, &quot;Formal Methods&quot; that focused on Alloy- I can't possibly see using that anywhere.  Had another class that focused on concurrency modeling with LTSA- equally useless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is that most bugs and problems in software (at least in my experience) arise from complexity that occurs below the level of abstraction of those tools.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-07T23:16:25.967" CommentCount="3" />
  <row Id="10365" PostTypeId="2" ParentId="10358" CreationDate="2010-10-07T23:16:50.683" Score="4" ViewCount="" Body="&lt;p&gt;I have a background in CSP (Communicating Sequential Processes). Not to toot my own horn but I wrote my Master's thesis on Timed CSP, particularly &quot;compiling&quot; specifications written in formal methods into executable C++. I can say I have some experience with formal methods. Once I completed my degree and got a job in the industry, I have not been using formal methods at all. Formal methods is still too theoretical to be applied in the industry. Formal methods have found some practical application in the area of embedded systems. For example, NASA uses formal methods in their projects. I would speculate that formal methods are very far from being widely adopted in the industry. It simply does not make sense to write software specifications in formal methods and then &quot;human interpret&quot; them to your framework of choice. Plain English and diagrams work better for that, while unit and integration tests have been doing a pretty good job of &quot;verifying&quot; the correctness of code. I think &lt;strong&gt;formal methods will remain in the world of academia for some time&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-07T23:16:50.683" CommentCount="3" />
  <row Id="10366" PostTypeId="2" ParentId="10340" CreationDate="2010-10-07T23:18:12.503" Score="3" ViewCount="" Body="&lt;p&gt;By annoying your legitimate users&lt;/p&gt;&#xA;" OwnerUserId="3316" LastActivityDate="2010-10-07T23:18:12.503" CommunityOwnedDate="2011-04-15T15:44:36.530" />
  <row Id="10367" PostTypeId="2" ParentId="10334" CreationDate="2010-10-07T23:25:28.123" Score="1" ViewCount="" Body="&lt;p&gt;A full-frame Silverlight line-of-business app is basically a rich .NET client that is run when a user browses to a web page. If you are familiar with rich client programming in XAML/WPF and you don't want to deal with web programming, Silverlight essentially provides a great deployment story - so great that it's making people wonder why they would ever develop WPF rich clients unless they needed really incredible performance, super-flashy 3D graphics or features unique to WPF and excluded from Silverlight, which most LOB apps don't.&lt;/p&gt;&#xA;" OwnerUserId="3044" LastActivityDate="2010-10-07T23:25:28.123" />
  <row Id="10368" PostTypeId="2" ParentId="10061" CreationDate="2010-10-07T23:29:17.207" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.wolfram.com/products/mathematica/index.html&quot; rel=&quot;nofollow&quot;&gt;Mathematica&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used the student version at university. It was a great learning experience. But, trying to justify the price, even in a work setting (electronics engineering), is difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since then, I've found &lt;a href=&quot;http://www.python.org/&quot; rel=&quot;nofollow&quot;&gt;Python&lt;/a&gt; with &lt;a href=&quot;http://matplotlib.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;matplotlib&lt;/a&gt; (for drawing graphs) hits the spot for a lot of my work that I might have otherwise done in Mathematica. For my current work, that means algorithm modeling and visualisation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I wanted to get into more serious mathematical work, I'd take a closer look at &lt;a href=&quot;http://www.sagemath.org/&quot; rel=&quot;nofollow&quot;&gt;Sage&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4637" LastEditorUserId="4637" LastEditorDisplayName="" LastEditDate="2010-10-07T23:38:28.907" LastActivityDate="2010-10-07T23:38:28.907" />
  <row Id="10369" PostTypeId="2" ParentId="10061" CreationDate="2010-10-08T00:10:45.320" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.sharpcrafters.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;PostSharp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use it at home (community edition/license) and I &lt;em&gt;love&lt;/em&gt; it, but I just haven't successfully sold management on AOP. &lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-08T00:10:45.320" />
  <row Id="10370" PostTypeId="2" ParentId="10313" CreationDate="2010-10-08T00:19:15.323" Score="1" ViewCount="" Body="&lt;p&gt;If you're not learning anything new, you're not trying hard enough. If you have nothing to do for the next 10 months, then go learn a new language or something. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you feel you're just going to be doing the same thing the same way for the next 10 months, you're not behaving like a good programmer. Have an aversion to repetition. Take the current project to a higher-level. You will find something to put on your resume on how you solve problems and improved a project instead of just listing '10 months of experience in Computer Language YYZ'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it were up to you, what would you be doing?&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-08T00:19:15.323" />
  <row Id="10371" PostTypeId="2" ParentId="10340" CreationDate="2010-10-08T00:52:31.343" Score="0" ViewCount="" Body="&lt;p&gt;Depends on how valuable you deem your time and your IP. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Myself, if I was selling consumer-interesting software that would be likely to be pirated, I would work on an internet-based solution that would deliver encrypted binaries each program run-time.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-08T00:52:31.343" CommunityOwnedDate="2011-04-15T15:44:36.530" />
  <row Id="10372" PostTypeId="2" ParentId="10061" CreationDate="2010-10-08T00:59:52.113" Score="0" ViewCount="" Body="&lt;h1&gt;Matlab&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I've been having to do quite a bit of Matlab-&gt;Python(+ NumPy + SciPy + Matplotlib) translation recently.  Not fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The SciPy packages have much of the same functionality, but there are still seams showing at the interface with Python and Matplotlib is really, really painful to install on a Mac.&lt;/p&gt;&#xA;" OwnerUserId="998" LastActivityDate="2010-10-08T00:59:52.113" />
  <row Id="10373" PostTypeId="1" AcceptedAnswerId="10423" CreationDate="2010-10-08T01:07:47.273" Score="3" ViewCount="85" Body="&lt;p&gt;I'm working on a cloud platform, and was curious what people prefer in terms of paying for web services.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's the option of very simple pricing (tiers and such), which is easy to project costs on, easy to compare, but (possibly significantly) more expensive for the average user, because you're always either underpaying or overpaying.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other option is a complicated pricing structure with many different factors, a lot harder to project costs on, but you're literally paying only for what you use, so it comes out to a lower price for the average user. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which do you prefer?&lt;/p&gt;&#xA;" OwnerUserId="4814" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-15T10:53:45.423" LastActivityDate="2010-12-06T19:01:33.380" Title="What's the better way to charge for a cloud platform, simple but more expensive, or complicated but cheaper for most?" Tags="&lt;web-development&gt;&lt;cloud&gt;&lt;pricing&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="10374" PostTypeId="2" ParentId="10373" CreationDate="2010-10-08T01:12:22.177" Score="3" ViewCount="" Body="&lt;p&gt;I like simple &lt;em&gt;and&lt;/em&gt; cheap. $20 a month is &lt;em&gt;simple&lt;/em&gt; for what you get. Which is a 256MB VPS with a blank install of your choice of Linux. (This is Slicehost).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simpler in my mind is always better, and I'm willing to pay for the simplicity. That same server from Rackspace costs $0.0015 an hour, 24 x 30 = ~$11 a month. What do I get for the extra $9 from Slicehost? &lt;em&gt;No bandwidth charges&lt;/em&gt;. I get &lt;em&gt;simple hosting&lt;/em&gt; for what I pay for.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-08T01:12:22.177" CommentCount="2" />
  <row Id="10375" PostTypeId="2" ParentId="10061" CreationDate="2010-10-08T01:20:00.710" Score="0" ViewCount="" Body="&lt;p&gt;I'd love to be able to look at the GNU Scientific Library to create either a port or a pretty wrapper for the D programming language, but my main use case is to build higher level library functionality on top of it, and I want my higher level functionality be permissively licensed.  IMHO GPL is idiotic for a library and not truly &quot;free software&quot;.  A library by definition provides reusable routines for the development of other software.  Prohibiting the use of the library in commercial closed-source software is for all practical purposes a major restriction on its use.  The whole point of free software is that there are no limitations on how it can be used.  On the other hand, an application is mainly meant to be used, not incorporated into other programs, so in practice a GPL'd application is still pretty free.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-08T01:20:00.710" />
  <row Id="10376" PostTypeId="2" ParentId="10061" CreationDate="2010-10-08T01:33:02.907" Score="1" ViewCount="" Body="&lt;p&gt;Anything that is GPL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm writing a commercially-licensed product built on a framework that I built that I will release as open-source (MIT License). I can't use anything GPL for either the product or the framework.&lt;/p&gt;&#xA;" OwnerUserId="73" LastActivityDate="2010-10-08T01:33:02.907" />
  <row Id="10377" PostTypeId="2" ParentId="10373" CreationDate="2010-10-08T01:45:27.823" Score="0" ViewCount="" Body="&lt;p&gt;Currently, everyone is focusing on the enterprise corporate market for the high ticket items. For some reason the pricing always seems to get complicated. Not really sure there is a market for average user at this point. Cable TV and Cell phones still are a billing mess for the average user; I have no idea what company plans are like.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With extended usage, these contracts will continue to get renegotiated. Eventually they'll get easier.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-08T01:45:27.823" />
  <row Id="10378" PostTypeId="2" ParentId="10311" CreationDate="2010-10-08T02:02:31.433" Score="0" ViewCount="" Body="&lt;p&gt;Identify the part of the delphi code not being used and mark it to not be converted. Press those in charge to make a solid commitment to keeping any of the functionality. When they say, &quot;Well we may need it.&quot; get rid of it and promise to add it back to the new version.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See if you can rework any current change requests to the new language. There have been good suggestions on creating services.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Identify problematic pieces of code that has had a lot of bugs identified. It may be worth a rewrite.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is tough to justify converting what is left, but eventually, the rest of the code may fall under the first three suggestions as time goes by. Business rules may change along the way.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-08T02:02:31.433" />
  <row Id="10379" PostTypeId="1" AcceptedAnswerId="10381" CreationDate="2010-10-08T02:03:11.043" Score="5" ViewCount="278" Body="&lt;p&gt;I would like to know what other developers do when a situation arises to implement a couple of features in language unknown to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are familiar with Javascript, and you do not know jquery, how do you go by implementing some features in jquery assuming you have not much time.&lt;/p&gt;&#xA;" LastActivityDate="2011-02-21T13:17:47.333" Title="Learning on the Fly" Tags="&lt;learning&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="1" />
  <row Id="10380" PostTypeId="2" ParentId="10021" CreationDate="2010-10-08T02:15:35.197" Score="1" ViewCount="" Body="&lt;p&gt;Programming languages are tools - nothing more, nothing less.  Some tools are extremely specialized and well suited for particular purposes; others are generalized and simplified to the point of near uselessness.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would argue that the most &quot;powerful&quot; language is the one which allows you to achieve your goals with a minimum investment of time, energy and other researces; that is, the language which provides the greatest ROI.  In some situations it could be C; in others, Java; in still others, Haskell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best thing to do would be to familiarize yourself with a wide variety of languages and what they're useful for.  Then, when the time comes to begin a new project, you can make an informed decision about which would be the most appropriate.&lt;/p&gt;&#xA;" OwnerUserId="4816" LastActivityDate="2010-10-08T02:15:35.197" />
  <row Id="10381" PostTypeId="2" ParentId="10379" CreationDate="2010-10-08T02:18:44.353" Score="6" ViewCount="" Body="&lt;p&gt;I know this is not great advice, but my take on the issue is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just do it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do it the best you can, and try to have a mindset in which you consider trying new things the rule instead of an unfortunate exception.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't worry too much about not knowing what is the best way of doing things, your goal at this stage is just getting things done. You can later (hopefully not much later) analyze how others would have done it and compare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More specific techniques I find useful:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Try to look for lots, and lots of example code written by people more experienced in the technology.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Set up a rapid prototyping environment that makes it easy for you to try quick and dirty pieces of code to see what works and what doesn't. This could be a unit testing framework, a REPL interpreter, an existing sample application that you can modify.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Set up from the beginning a source control system to store every piece of code you write, specially all the experiments you are going to be writing so you can refer to them later.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Try to find the best book on the subject and buy it. Read it in the bus, during breakfast or lunch, at the movies.. everywhere.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Look for the forums, IRC channels, mailing list where the experts hang out and try to browse the archives reading random conversations just to familiarize with the kind of topics that are common with the technology.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-10-08T02:18:44.353" />
  <row Id="10382" PostTypeId="2" ParentId="10379" CreationDate="2010-10-08T02:19:31.237" Score="7" ViewCount="" Body="&lt;p&gt;Google, Google like the wind. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is so much code out there you are very likely to find something you can manipulate clumsily into what you need for a small project until you learn to do it right.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-08T02:19:31.237" />
  <row Id="10383" PostTypeId="2" ParentId="2490" CreationDate="2010-10-08T02:20:56.993" Score="3" ViewCount="" Body="&lt;p&gt;How about &lt;a href=&quot;http://www.dimecasts.net/&quot; rel=&quot;nofollow&quot;&gt;Dime Casts&lt;/a&gt; - it's .net based, there's a wide variety of topics and the screen casts are only 10 minutes long. It's also a good place to be exposed to some new thoughts given the brevity of the screencasts. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found it really useful for learning nhibernate and mocking. &lt;/p&gt;&#xA;" OwnerUserId="4458" LastActivityDate="2010-10-08T02:20:56.993" />
  <row Id="10384" PostTypeId="2" ParentId="10379" CreationDate="2010-10-08T02:23:20.410" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://lmgtfy.com/?q=how+to+build+an+ajax+photo+uploader+in+jquery&quot; rel=&quot;nofollow&quot;&gt;Google it.*&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*Note: In order for this to work, you need to try to learn abstract concepts as a developer in order to know &lt;em&gt;what&lt;/em&gt; to Google, as opposed to just learning how to do something in a particular way.  &lt;strong&gt;Learn how things work, not just that they work.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-08T02:23:20.410" CommentCount="3" />
  <row Id="10385" PostTypeId="2" ParentId="1701" CreationDate="2010-10-08T02:48:25.797" Score="2" ViewCount="" Body="&lt;p&gt;I've written a book which I published May this year just to answer this type of question. You can check it out at: &lt;a href=&quot;http://siamacnikoo.com/life-as-a-software-developer.php&quot; rel=&quot;nofollow&quot;&gt;http://siamacnikoo.com/life-as-a-software-developer.php&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-10-08T02:48:25.797" CommentCount="1" />
  <row Id="10387" PostTypeId="1" CreationDate="2010-10-08T02:51:51.457" Score="5" ViewCount="163" Body="&lt;p&gt;My current project is a cloud deployment platform similar to GAE or Heroku. I'm trying to figure out what pricing method works best for us and the users. Assuming that I cannot &lt;em&gt;currently&lt;/em&gt; provide a free plan, here are the options:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Have fully unlimited scaling (GAE-like), and charge for usage ($5 per project + x cents per CPU hour the project uses on our system, also charge a certain amount for bandwidth in/out, database storage + I/O, r/w data store, memcached, etc.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This ends up being cheaper (around $20 for a moderately loaded website) and more &quot;fair&quot; for the user (pay &lt;strong&gt;only&lt;/strong&gt; for what you use), but much more complicated with the many different factors that affect final price. This type of architecture is more resilient to what you throw at it, so if you get a traffic spike, it will work perfectly fine, you'll just get charged more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Pay for &quot;application readiness&quot;/specific scalability (have a specific amount of processes per user available to accept requests, maybe $20 a month (3 cents per hour) per process), and for a specific tier of a database. No bandwidth/IO charges (within fair use, of course). Add-ons like email and memcached are extra. (Heroku-like)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This option is a lot more simple, and much easier to project costs on. However, the pricing curve is rather steep. You do end up likely paying more (probably $40-$60 a month for a moderately-loaded website), but all of those miscellaneous costs are completely abstracted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which would you more likely pay for? Also, is there another option I may be overlooking?&lt;/p&gt;&#xA;" OwnerUserId="4814" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-15T10:52:56.970" LastActivityDate="2010-10-19T23:22:21.020" Title="I'm working on a PaaS similar to Heroku or Google App Engine, and was curious which pricing structure users prefer. Ideas?" Tags="&lt;web-development&gt;&lt;cloud&gt;&lt;pricing&gt;" AnswerCount="2" CommentCount="4" />
  <row Id="10389" PostTypeId="1" AcceptedAnswerId="10433" CreationDate="2010-10-08T02:52:21.503" Score="2" ViewCount="396" Body="&lt;p&gt;Let's talk only about the GUI programs and let's put programmer productivity first, put performance last - that we build application that has nice user interface, is robust, easy to use and reliable, and doesn't need to run very fast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please share your ideas.&lt;/p&gt;&#xA;" OwnerUserId="2347" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-08T11:22:41.847" LastActivityDate="2010-10-09T22:32:29.547" Title="What do you think is the best programming language/framework/tool for GUI APP dev?" Tags="&lt;programming-languages&gt;&lt;frameworks&gt;&lt;gui&gt;" AnswerCount="8" CommentCount="6" FavoriteCount="1" />
  <row Id="10390" PostTypeId="2" ParentId="1180" CreationDate="2010-10-08T02:57:01.420" Score="1" ViewCount="" Body="&lt;p&gt;VB the language is easier to read for newbies, they tend to write their first, second and third application in it and we all know what our first applications are coded like - terribly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers from C++, Java and etc have moved to C# whilst VB.NET developers come from VBA, VB and BASIC background, essential non-traditional programmers. &lt;/p&gt;&#xA;" OwnerUserId="4219" LastActivityDate="2010-10-08T02:57:01.420" CommunityOwnedDate="2010-10-08T02:57:01.420" />
  <row Id="10391" PostTypeId="2" ParentId="5345" CreationDate="2010-10-08T03:03:18.233" Score="0" ViewCount="" Body="&lt;p&gt;As I commented above, &lt;a href=&quot;http://www.fiddler2.com/fiddler2/&quot; rel=&quot;nofollow&quot;&gt;Fiddler&lt;/a&gt; is my personal choice. However I will also mention another to check out: &lt;a href=&quot;http://www.charlesproxy.com/&quot; rel=&quot;nofollow&quot;&gt;Charles Web Debugging Proxy&lt;/a&gt; is one that several of the other developers I've worked with liked. Seems to me to have pretty similar functionality to Fiddler, so it's probably a matter of personal familiarity with one or the other.&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-10-08T03:03:18.233" />
  <row Id="10392" PostTypeId="2" ParentId="10313" CreationDate="2010-10-08T03:09:38.680" Score="1" ViewCount="" Body="&lt;p&gt;Most of the learning happens out of the Job. If you are waiting to learn everything on the Job then there is serious trouble. Also a job should provide enough oppurtunities for you to GROW(learning/role/financially), if it doesn't you should just move out. Remember your Employer wont mind you showing the way out if you are not good enough for your experience.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-08T03:09:38.680" />
  <row Id="10393" PostTypeId="2" ParentId="10087" CreationDate="2010-10-08T03:12:32.703" Score="1" ViewCount="" Body="&lt;p&gt;God, please definitely remove Technical Support or &quot;the warranty period&quot;. Here is an example of the warranty period. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Shopping cart type of application: customer email the shopping owner with the following question. You said “we are getting 50% off the following item points.” Points are now showing 50% off with previous and now. They complained the final amount didn’t have 50% off. So they want another 50% off… So they thought the calculation was wrong... solution the difficult, to explain this fact to the moron. &lt;/p&gt;&#xA;" OwnerUserId="4219" LastActivityDate="2010-10-08T03:12:32.703" CommunityOwnedDate="2010-10-08T03:12:32.703" />
  <row Id="10394" PostTypeId="1" AcceptedAnswerId="10419" CreationDate="2010-10-08T03:21:50.443" Score="7" ViewCount="250" Body="&lt;p&gt;Hi all,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As someone who first encountered relational databases and SQL at uni in the early 90's, and who has spend a goodly slice of a fifteen year career working with MS SQL Server, I'm probably a textbook example of the people who, according to NoSQL enthusiasts, &quot;have SQL as my hammer and see everything as a nail.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, to broaden my horizons, I'd like to do some sort of mess-around project using one of these NoSQL databases, as a learning experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Question is, though, which one should I mess around with?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.mongodb.org/&quot; rel=&quot;nofollow&quot;&gt;MongoDB&lt;/a&gt; seems to be one of the best known and most respected&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://ravendb.net/&quot; rel=&quot;nofollow&quot;&gt;Raven DB&lt;/a&gt;? It's getting some buzz and Hibernating Rhinos have made stuff I respect.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://couchdb.apache.org/&quot; rel=&quot;nofollow&quot;&gt;CouchDB&lt;/a&gt;, since it's part of the Apache project?&lt;/li&gt;&#xA;&lt;li&gt;something else?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I don't have a problem to solve, a project to complete, or a client to satisfy, so I'm not asking which might be best suited to any particular purpose. Just recommendations based on quality, potential, and perhaps most importantly, availability of good docs, guides, tutorials, screencasts, etc. Oh, C# / .NET is my field of expertise, so looking for something which fits that well, e.g. has C# examples in its documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any tips?&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-10-08T10:54:19.873" Title="Want to learn one of those NoSQL databases, looking for advice on which one to check out" Tags="&lt;learning&gt;&lt;advice&gt;&lt;database-development&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="10395" PostTypeId="2" ParentId="10394" CreationDate="2010-10-08T03:32:02.163" Score="2" ViewCount="" Body="&lt;p&gt;I &lt;em&gt;love&lt;/em&gt; &lt;a href=&quot;http://mongodb.org&quot; rel=&quot;nofollow&quot;&gt;MongoDB&lt;/a&gt;. I even ended up moving my &lt;a href=&quot;http://joshuakehn.com/blog/view/15/Finished-moving&quot; rel=&quot;nofollow&quot;&gt;blog to use it for storage&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;MongoDB is a designed to be a&#xA;  scalable, high performance database.&#xA;  It is &lt;strong&gt;not&lt;/strong&gt; designed for situations&#xA;  where strict formats need to be&#xA;  applied. It supports &lt;a href=&quot;http://en.wikipedia.org/wiki/ACID&quot; rel=&quot;nofollow&quot;&gt;atomic&#xA;  inserts&lt;/a&gt;&#xA;  which makes it highly suited for real&#xA;  time data aggregates. It has support&#xA;  for standard&#xA;  &lt;a href=&quot;http://www.mongodb.org/display/DOCS/Indexes&quot; rel=&quot;nofollow&quot;&gt;indexes&lt;/a&gt;,&#xA;  &lt;a href=&quot;http://www.mongodb.org/display/DOCS/Sharding+Introduction&quot; rel=&quot;nofollow&quot;&gt;sharding&lt;/a&gt;,&#xA;  and even commercial support. It models&#xA;  itself after the idea that databases&#xA;  are specializing and you can't create&#xA;  something to please everyone. It uses&#xA;  the &lt;a href=&quot;http://www.json.org/&quot; rel=&quot;nofollow&quot;&gt;JSON&lt;/a&gt;&#xA;  document data model to provide cross&#xA;  service support easily and &lt;em&gt;fast&lt;/em&gt;. By&#xA;  removing transactional semantics from&#xA;  standard database design you strip&#xA;  most of the &quot;fat&quot; from traditional SQL&#xA;  processes. This comes at a cost&#xA;  however, you can't create foreign keys&#xA;  or constrain the data like you can in&#xA;  SQL. Systems modeled after&#xA;  transactional systems (think banking&#xA;  or corporate records) won't be&#xA;  efficient in Mongo as they are in&#xA;  other systems.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;http://joshuakehn.com/blog/view/12/MongoDB-Node-js&quot; rel=&quot;nofollow&quot;&gt;Yep, written by me&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've heard decent things about CouchDB, however not played much with it myself. I haven't heard &lt;em&gt;great&lt;/em&gt; things about it, but Apache projects are for the most part decent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Standard RDMS are &lt;em&gt;not bad at all&lt;/em&gt;. If you need transactional logs and SQL queries &lt;em&gt;go for them&lt;/em&gt;. The advantages you have is everything is relational, small size, lots of features, &lt;em&gt;giant&lt;/em&gt; community support, and there aren't many surprises. They are solid development tools. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people think NoSQL means No - SQL. It's &lt;em&gt;supposed&lt;/em&gt; to mean Not Only SQL. There are things out there that help greatly when you need to change the table structure on the fly, or where you might not even know what you'll need to store. This flexibility gives you speed and low overhead, but you loose some of the richness relational databases provide. For instance you can't do cross collection queries in MongoDB (SQL JOIN). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a tradeoff, and it's not minor by any means. I would, however, encourage you to play with MongoDB. They even have an &lt;a href=&quot;http://try.mongodb.org/&quot; rel=&quot;nofollow&quot;&gt;online shell&lt;/a&gt; that you can test out. (Note: It's a JavaScript shell, you can write functions and loops and fun stuff).&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-10-08T03:38:35.273" LastActivityDate="2010-10-08T03:38:35.273" CommentCount="7" />
  <row Id="10396" PostTypeId="2" ParentId="10340" CreationDate="2010-10-08T03:57:13.620" Score="1" ViewCount="" Body="&lt;p&gt;I'm considering selling my software to China, and considering how rampant software piracy is, I want to at least know who is stealing my software so I can get some metrics for Advertisers who may want to sell ads within my free app.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For that purpose I use SLP from &lt;a href=&quot;http://www.inishtech.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.inishtech.com/&lt;/a&gt;.  I track all the users of my software, and get an idea how compliant people are.  I don't expect much more than to use it as a reporting tool, but it's able to do much more.&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-10-08T03:57:13.620" CommunityOwnedDate="2011-04-15T15:44:36.530" />
  <row Id="10397" PostTypeId="2" ParentId="7686" CreationDate="2010-10-08T04:25:51.027" Score="0" ViewCount="" Body="&lt;p&gt;A masters degree is not neccesary in the software industry. There are plenty of jobs you can land simply having an undergraduate degree combined with the right experience. Avoiding post-grad studies can save you time and money. Having said this, if you want to work for companies such as Oracle, Google, Microsoft, IBM etc then getting a masters/PhD is recommended.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-08T04:25:51.027" />
  <row Id="10398" PostTypeId="2" ParentId="10087" CreationDate="2010-10-08T04:26:56.983" Score="1" ViewCount="" Body="&lt;p&gt;Integrating with horrible horrible systems (like quickbooks), or systems that have insanely over engineered integration points (like SOAP)&lt;/p&gt;&#xA;" OwnerUserId="3726" LastActivityDate="2010-10-08T04:26:56.983" CommunityOwnedDate="2010-10-08T04:26:56.983" />
  <row Id="10399" PostTypeId="2" ParentId="10340" CreationDate="2010-10-08T04:33:39.503" Score="3" ViewCount="" Body="&lt;p&gt;Just because copy protection isn't 100% effective doesn't mean it's worthless. It keeps honest people honest. Customers need SOME incentive to pay for software and most of the time that's what copy protection provides. If your price is reasonable, most people aren't going to spend the time and effort trying to circumvent the protections you have in place. Of course, if the protections make the core functionality a bitch to use, that's another issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This blog post is an excellent evaluation of the value of copy protection: &lt;a href=&quot;http://www.kalzumeus.com/2006/09/05/everything-you-need-to-know-about-registration-systems/&quot; rel=&quot;nofollow&quot;&gt;http://www.kalzumeus.com/2006/09/05/everything-you-need-to-know-about-registration-systems/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as a reasonably effective way to provide SOME protections for your software, I highly recommend &lt;a href=&quot;http://www.infralution.com/licensing.html&quot; rel=&quot;nofollow&quot;&gt;Infralution Licensing System&lt;/a&gt;. It's inexpensive and performs well.&lt;/p&gt;&#xA;" OwnerUserId="4222" LastEditorUserId="4222" LastEditorDisplayName="" LastEditDate="2010-10-08T09:10:09.453" LastActivityDate="2010-10-08T09:10:09.453" CommunityOwnedDate="2011-04-15T15:44:36.530" CommentCount="0" />
  <row Id="10400" PostTypeId="2" ParentId="10340" CreationDate="2010-10-08T04:36:37.767" Score="1" ViewCount="" Body="&lt;p&gt;1) I do it SaaS way - Software as a Service&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) I make the software free for download and use, but requires a connection to a server for limited, paid access.&lt;/p&gt;&#xA;" OwnerUserId="117" LastActivityDate="2010-10-08T04:36:37.767" CommunityOwnedDate="2011-04-15T15:44:36.530" CommentCount="1" />
  <row Id="10401" PostTypeId="2" ParentId="4951" CreationDate="2010-10-08T04:37:25.700" Score="2" ViewCount="" Body="&lt;p&gt;Software Engineers tend to work on systems that are very large taking many man years to develop e.g. 5 to 16 years for instance. Programmers tend to have this stereotype of just coding and nothing else. But it really depends on the organization you work and how HR are marketing the role as explained above. They are essentially the same thing. Just don't get too attached to a title because it is synonymous.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-08T04:37:25.700" />
  <row Id="10402" PostTypeId="2" ParentId="10394" CreationDate="2010-10-08T04:40:35.350" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://mongodb.org/&quot; rel=&quot;nofollow&quot;&gt;MongoDB&lt;/a&gt; seems to be considered one of the most easy to get up to speed on, although I always thought &lt;a href=&quot;http://couchdb.apache.org/&quot; rel=&quot;nofollow&quot;&gt;CouchDB&lt;/a&gt;'s API was very straight-forward, particularly if you're familiar with HTTP already.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it were something I was seriously thinking about for production, &lt;a href=&quot;http://nosql.mypopescu.com/post/1251523059/mongodb-auto-sharding-and-foursquare-downtime&quot; rel=&quot;nofollow&quot;&gt;I'm not sure I'd go with MongoDB&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I think &lt;a href=&quot;http://www.basho.com/Riak.html&quot; rel=&quot;nofollow&quot;&gt;Riak&lt;/a&gt; looks like one of the most interesting of the noSQL bunch. You may also want to look at a graph DB such as &lt;a href=&quot;http://neo4j.org/&quot; rel=&quot;nofollow&quot;&gt;Neo4j&lt;/a&gt; for something different again.&lt;/p&gt;&#xA;" OwnerUserId="415" LastActivityDate="2010-10-08T04:40:35.350" CommentCount="4" />
  <row Id="10403" PostTypeId="2" ParentId="1533" CreationDate="2010-10-08T04:45:25.777" Score="3" ViewCount="" Body="&lt;p&gt;If you work for a small company being a developer may be the highest role unless you start your own company. You will then become a Developer/Director. Don't worry too much about reaching the highest technical role in a company. Just do what makes you happy.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-08T04:45:25.777" CommunityOwnedDate="2010-10-08T04:45:25.777" />
  <row Id="10404" PostTypeId="2" ParentId="8111" CreationDate="2010-10-08T04:59:43.720" Score="2" ViewCount="" Body="&lt;p&gt;PhD qualification is good if you want to work for companies such as Oracle, Google, Microsoft, IBM etc. It's also important to have when working as a researcher or lecturer/professor at a university. Don't do it simply because of the title as in that 3 or 4 years you can accomplish a lot more in life then getting another piece of paper. You will save time and money and do other things you enjoy such as dancing, cooking, snowboarding, traveling, running a business etc. Lastly, don't rush the decision. Take your time and find out what you really want to do and what makes you happy. If you just like developing software then an undergrad degree is fine for many companies.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-08T04:59:43.720" />
  <row Id="10405" PostTypeId="2" ParentId="10389" CreationDate="2010-10-08T05:08:16.000" Score="1" ViewCount="" Body="&lt;p&gt;And in my opinion the choice should be Flex. Before flex I used MFC, Swing, C# with WinForms, etc. I also spent some time learning Qt. Therefore I think I basically know most things that's required for GUI application building, however flex shocked me with many of its innovative features.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;GUI designer and automatic layout - not exclusive but really impressive.&lt;/li&gt;&#xA;&lt;li&gt;Natually integrated XML GUI builder.&lt;/li&gt;&#xA;&lt;li&gt;Powerful widget set.&lt;/li&gt;&#xA;&lt;li&gt;Item render.&lt;/li&gt;&#xA;&lt;li&gt;Data binding: &lt;/li&gt;&#xA;&lt;li&gt;Data model for forms&lt;/li&gt;&#xA;&lt;li&gt;Ease of customization, with CSS.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2347" LastActivityDate="2010-10-08T05:08:16.000" CommentCount="3" />
  <row Id="10406" PostTypeId="2" ParentId="1533" CreationDate="2010-10-08T05:10:07.257" Score="3" ViewCount="" Body="&lt;p&gt;FWIW, Microsoft (like other large companies, I'm sure) has career paths for non-managers that go to VP equivalent levels (Distinghished Engineer and Technical Fellow). MS is really big on showing a career path for non-managers.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-10-08T05:10:07.257" CommunityOwnedDate="2010-10-08T05:10:07.257" CommentCount="1" />
  <row Id="10407" PostTypeId="2" ParentId="10379" CreationDate="2010-10-08T05:13:47.903" Score="1" ViewCount="" Body="&lt;p&gt;Dig in and get dirty but try not to leave a mess. Try to find good examples at sites you trust and if you can try to talk to someone that is experienced in the technology and run your design by them... you could have someone peer review your code too. Don't just settle with the first thing you get to work, question if there is a different way you should consider.&lt;/p&gt;&#xA;" OwnerUserId="3697" LastActivityDate="2010-10-08T05:13:47.903" />
  <row Id="10408" PostTypeId="2" ParentId="2001" CreationDate="2010-10-08T05:28:26.473" Score="0" ViewCount="" Body="&lt;p&gt;Listen to podcasts, don't watch movies because in that way you use your eye, which has been overused in the past 8 hours.&lt;/p&gt;&#xA;" OwnerUserId="2347" LastActivityDate="2010-10-08T05:28:26.473" />
  <row Id="10409" PostTypeId="2" ParentId="279" CreationDate="2010-10-08T05:37:15.377" Score="1" ViewCount="" Body="&lt;p&gt;Now, IMHO better to have a &quot;.net framework 4.5&quot; instead of .net framework 5&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update: (from my comment below)&#xA;I think there should be more focus on improving the programming practices of the .net world, habituating them to the newer features. How more academic and open source choose .net that should be the concern. In the mean time, the framework should be be optimized, have bug fixes and may include some minor feature. That's why I mentioned version 4.5.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update: (Also posted in &lt;a href=&quot;http://programmers.stackexchange.com/questions/12762/what-features-do-you-want-in-google-go/12910#12910&quot;&gt;go feature request question&lt;/a&gt;)&#xA;A simple for loop&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for(a)&#xA;{&#xA;    //things to do&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And the loop will run for a time assuming a is a positive integer. There can be positive integer constants like 100 also.&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="963" LastEditorDisplayName="" LastEditDate="2010-10-19T14:39:14.680" LastActivityDate="2010-10-19T14:39:14.680" CommunityOwnedDate="2011-05-10T09:21:11.253" CommentCount="4" />
  <row Id="10410" PostTypeId="1" AcceptedAnswerId="10413" CreationDate="2010-10-08T05:41:30.247" Score="18" ViewCount="461" Body="&lt;p&gt;During the past few weeks, I spend most of my free time just talking, reading and writing about programming. I've been distracted by those 3 things so much that the only time I can actually write code is when it's work or school-related. I don't find the time to practice what I've learned on personal/pet projects anymore. Is this bad for me as a programmer? If so, what can I do about it without sacrificing too much on the talking, reading and writing part?&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-10-12T00:05:08.950" Title="I find myself talking, reading and writing about programming more than I actually do it. Is this a bad thing?" Tags="&lt;learning&gt;&lt;career&gt;&lt;career-advice&gt;&lt;time-management&gt;&lt;discipline&gt;" AnswerCount="6" FavoriteCount="4" />
  <row Id="10411" PostTypeId="2" ParentId="4662" CreationDate="2010-10-08T05:43:55.923" Score="0" ViewCount="" Body="&lt;p&gt;Between database development(sql/plsql) and normal development(.net/Java) go for the one suits better to you. If you choose normal development, choose any of .net and Java. Consider switching if situation requires.&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-10-08T05:43:55.923" />
  <row Id="10412" PostTypeId="2" ParentId="10389" CreationDate="2010-10-08T05:54:55.357" Score="1" ViewCount="" Body="&lt;p&gt;I am going to have to go with WPF/Silverlight and C#.&lt;/p&gt;&#xA;" OwnerUserId="882" LastEditorUserId="882" LastEditorDisplayName="" LastEditDate="2010-10-08T13:56:06.350" LastActivityDate="2010-10-08T13:56:06.350" />
  <row Id="10413" PostTypeId="2" ParentId="10410" CreationDate="2010-10-08T05:57:36.487" Score="6" ViewCount="" Body="&lt;p&gt;You should try to direct your &quot;personal studies&quot; about programming to a pet project. I mean, if you just read or talk about riding the bicycle, how will you learn how to do it? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to get focus on a project, read about the tecnology you want implement on it, write a &quot;dev blog&quot; [if you like] and talk with your friends [co-workers, idk] about it..&lt;/p&gt;&#xA;" OwnerUserId="3445" LastActivityDate="2010-10-08T05:57:36.487" CommentCount="3" />
  <row Id="10414" PostTypeId="2" ParentId="10389" CreationDate="2010-10-08T05:57:40.637" Score="11" ViewCount="" Body="&lt;h2&gt;WPF&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Or silverlight. In general XAML IMHO.&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-10-08T05:57:40.637" CommunityOwnedDate="2010-10-08T19:17:06.930" CommentCount="2" />
  <row Id="10415" PostTypeId="2" ParentId="10410" CreationDate="2010-10-08T06:02:33.217" Score="1" ViewCount="" Body="&lt;p&gt;To a degree, yes. In my case, by doing those things you mentioned, the way I approached problems subtlety changed  over time for the better. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;While practising on pet projects will most certainly give you a better understanding, I think that you need to decide what you enjoy more, reading/talking/writing about code or coding? Do you learn more by the former or latter? Or rather, which of the two approaches cements these new practises for you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have two projects, a console app and a asp-mvc app. For the simple things, I usually load these projects up test a few of the code samples etc, see the results and done. However, I save these projects, so they become an amalgamation of a whole of things that I have learnt (btw - they also under source control). Then, if need be, I sometimes will incorporate those lessons learnt into the pet/personal project.&lt;/p&gt;&#xA;" OwnerUserId="2545" LastActivityDate="2010-10-08T06:02:33.217" />
  <row Id="10416" PostTypeId="1" AcceptedAnswerId="10418" CreationDate="2010-10-08T06:05:29.717" Score="7" ViewCount="149" Body="&lt;p&gt;My contract explicitly states that I can't render services to another company.  I would like to know if working on open source projects or freelancing count as such because I would like to work on some other projects without violating my contract.  Freelancing might count as rendering services, but would open source work count too?&lt;/p&gt;&#xA;" OwnerUserId="1668" LastActivityDate="2010-10-08T09:33:09.707" Title="Do working on open source projects and freelancing count as &quot;rendering services to another company&quot;" Tags="&lt;open-source&gt;" AnswerCount="1" />
  <row Id="10417" PostTypeId="2" ParentId="9062" CreationDate="2010-10-08T06:05:45.467" Score="14" ViewCount="" Body="&lt;p&gt;Spaces at the end of a line of code must be deleted.&lt;br&gt;&#xA;Maybe necessary for some languages, but not all.&lt;/p&gt;&#xA;" OwnerUserId="3228" LastActivityDate="2010-10-08T06:05:45.467" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="4" />
  <row Id="10418" PostTypeId="2" ParentId="10416" CreationDate="2010-10-08T06:24:33.320" Score="7" ViewCount="" Body="&lt;p&gt;Yes it is counting. Before contacting a lawyer, I highly suggest you to discuss with your employer to negociate that right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most employers will see the value of you working in open source projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, freelancing in the same industry may be a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case, don't try to bypass the laws, talk with your employer first, then your lawyer if you can't get a &lt;strong&gt;written&lt;/strong&gt; approval.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-08T09:33:09.707" LastActivityDate="2010-10-08T09:33:09.707" CommentCount="1" />
  <row Id="10419" PostTypeId="2" ParentId="10394" CreationDate="2010-10-08T06:29:00.027" Score="2" ViewCount="" Body="&lt;p&gt;There are &lt;a href=&quot;http://en.wikipedia.org/wiki/NoSQL#Taxonomy&quot; rel=&quot;nofollow&quot;&gt;several variations of NoSQL databases.&lt;/a&gt;. The ones you have listed are from the DocumentStore category. &lt;a href=&quot;http://code.google.com/p/redis/&quot; rel=&quot;nofollow&quot;&gt;Redis&lt;/a&gt; is from the key-value part of the NoSQL family. Fundamentally they both follow the principles of NoSQL, but do things a differently. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Structured data may be better suited for the DocumentStore family compared to Key-Value variation(Redis).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe a good way to test, would be to implement the same project using two(or more) different NoSQL solutions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, my suggestion would be to actually use RavenDB since it's native .Net. No third party libraries that wrap operations. No, which wrapper library should I use. The mailing list, based on what I recall, is really active and in general I think this project is gaining momentum. Constant updates, new features etc etc. Plus, it's Ayende's baby who I think does not ever sleep - so if yo need support at ungodly hours that won't be a problem -:)&lt;/p&gt;&#xA;" OwnerUserId="2545" LastActivityDate="2010-10-08T06:29:00.027" />
  <row Id="10420" PostTypeId="2" ParentId="10410" CreationDate="2010-10-08T06:51:32.787" Score="2" ViewCount="" Body="&lt;p&gt;Yes. Talking and reading about programming excessively is vicariously fulfilling your desire to actually program. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reminds me of this TED talk I recently watched : &lt;a href=&quot;http://www.ted.com/talks/derek_sivers_keep_your_goals_to_yourself.html&quot; rel=&quot;nofollow&quot;&gt;http://www.ted.com/talks/derek_sivers_keep_your_goals_to_yourself.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2861" LastEditorUserId="2861" LastEditorDisplayName="" LastEditDate="2010-10-12T00:05:08.950" LastActivityDate="2010-10-12T00:05:08.950" />
  <row Id="10421" PostTypeId="2" ParentId="10410" CreationDate="2010-10-08T07:10:08.450" Score="6" ViewCount="" Body="&lt;p&gt;Talking about programming is FUN and we all do it and should do it. You learn a lot that way and some things is best taught with a conversation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the same as with every other hobby. Compare for example flying where you will often see pilots are wannabe-pilots huddled in conversations about flying. But unless you've earned your wings you are not going to be getting much respect...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Same with programming. Our industry is chock full of people who talk a lot but struggle to accomplish basic things when you put them in front of an IDE, and we look down on them and with good reason. That is also why we have so much respect for the founder/ceo of the company who you've heard actually used to program on the flagship product previously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're talking is only worth as much as the skill you have once you actually start writing code.&lt;/p&gt;&#xA;" OwnerUserId="4835" LastActivityDate="2010-10-08T07:10:08.450" />
  <row Id="10422" PostTypeId="1" AcceptedAnswerId="10428" CreationDate="2010-10-08T07:13:32.983" Score="0" ViewCount="166" Body="&lt;p&gt;&lt;strong&gt;Guy Kawasaki&lt;/strong&gt;, the famous author of &lt;strong&gt;The Art Of The Start&lt;/strong&gt; is writing a new book about Enchantment (will be called Art Of Enchantment).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He is asking stories about your &lt;a href=&quot;http://blog.guykawasaki.com/2010/06/example-needed-getting-enchanted-by-an-employee.html&quot; rel=&quot;nofollow&quot;&gt;employees&lt;/a&gt;, your &lt;a href=&quot;http://blog.guykawasaki.com/2010/07/examples-of-enchanting-things.html&quot; rel=&quot;nofollow&quot;&gt;things&lt;/a&gt; or even &lt;a href=&quot;http://blog.guykawasaki.com/2010/06/examples-needed-enchanting-websites.html&quot; rel=&quot;nofollow&quot;&gt;websites&lt;/a&gt; you visit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What about your colleagues?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I need examples of a programmer (you), getting enchanted by another colleague, programmer, analyst, tester (must be within your team).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: The book is out! &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1591843790&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Enchantment-Changing-Hearts-Minds-Actions/dp/1591843790/ref=sr_1_2?ie=UTF8&amp;amp;qid=1298106612&amp;amp;sr=8-2&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2011-02-19T09:11:12.237" LastActivityDate="2011-02-19T09:11:12.237" ClosedDate="2010-10-08T14:44:34.327" Title="What did he or she do to enchant you? What was the feeling like?" Tags="&lt;team&gt;&lt;colleagues&gt;" AnswerCount="1" CommentCount="4" />
  <row Id="10423" PostTypeId="2" ParentId="10373" CreationDate="2010-10-08T07:23:43.893" Score="1" ViewCount="" Body="&lt;p&gt;Like all good questions, the answer depends. It depends on your application: Is it something you are likely going to be using periodically? A lot on some days of every month and very little the rest of the month? Once a year? Then a pay-as-you-go model would be 'nicer'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also depends on the sophistication of your users. Will they bother to do the mental arithmetic if you explain the PAYG model to them? Will they care?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How much will your users be spending? $5? $10? They might simple not care for that amount of money to optimize their experience and would probably rather go for something that is simple or easy. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Could the two models make a differences as large as $1000? Then you might find people are more than willing to have a look at the PAYG terms...&lt;/p&gt;&#xA;" OwnerUserId="4835" LastActivityDate="2010-10-08T07:23:43.893" />
  <row Id="10424" PostTypeId="1" AcceptedAnswerId="10443" CreationDate="2010-10-08T07:33:29.820" Score="1" ViewCount="182" Body="&lt;p&gt;I know the technical pitfalls of writing an ORM are pretty well-known nowadays, but what are some non-technical factors (e.g., Scope) that make it difficult to writing a good ORM? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: I have already read the technical reasons for why ORMs are so difficult to write from this Stackoverflow post: &lt;a href=&quot;http://stackoverflow.com/questions/404083/is-orm-still-the-vietnam-of-computer-science&quot;&gt;http://stackoverflow.com/questions/404083/is-orm-still-the-vietnam-of-computer-science&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4385" LastActivityDate="2010-12-09T22:53:48.443" Title="What are the non-technical reasons that make Object-Relational Mapping tools (ORMs) so difficult to write?" Tags="&lt;orm&gt;&lt;architecture&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="10425" PostTypeId="1" AcceptedAnswerId="10455" CreationDate="2010-10-08T07:34:11.580" Score="7" ViewCount="213" Body="&lt;p&gt;The idea is to give them more chances to be efficient in a professional environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most students are good with theory, most of them are smart, but they have to learn how to solve common technical problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They will be better programmers as they practice, but maybe we can help them with some introduction training.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Which topics you would select for a two weeks full time training?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's an open question, I don't want to suggest things that will reduce the answers to a particular field.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-04T22:37:39.100" LastActivityDate="2010-12-04T22:37:39.100" Title="If you had to teach professional development to students that just graduated school, what would be the topics?" Tags="&lt;teaching&gt;&lt;training&gt;&lt;students&gt;" AnswerCount="11" CommentCount="1" FavoriteCount="2" />
  <row Id="10426" PostTypeId="2" ParentId="10358" CreationDate="2010-10-08T07:43:27.010" Score="0" ViewCount="" Body="&lt;p&gt;State diagrams and Petri nets are useful for modelling and analyzing protocols and realtime systems. First they help design a solution. Second they help find test cases for exciting software in very specific situations.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-08T07:43:27.010" />
  <row Id="10427" PostTypeId="2" ParentId="10425" CreationDate="2010-10-08T07:43:29.053" Score="5" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;Debugging&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I think most students don't know how to use the debugger and they feel more confortable using the console output function to query the value of variables and obtain debugging information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not talking about advanced debugging techniques but at least they should be able to able to do the following from IDE:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Add a breakpoint&lt;/li&gt;&#xA;&lt;li&gt;Inspect the content of variables&lt;/li&gt;&#xA;&lt;li&gt;Add a watch&lt;/li&gt;&#xA;&lt;li&gt;Use the callstack to see the execution path&lt;/li&gt;&#xA;&lt;li&gt;Debug exceptions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-10-08T07:43:29.053" CommentCount="2" />
  <row Id="10428" PostTypeId="2" ParentId="10422" CreationDate="2010-10-08T07:57:18.680" Score="5" ViewCount="" Body="&lt;p&gt;I was in a meeting with a ergonomist (i don't know the exact english name: lets say someone focused on user experience) and i turned towards him at one time and asked softly &quot;so, div or table?&quot;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;you've got to understand that i'm in a place where taking interest in usability is considered weird. there are no guidelines regarding building consistent interfaces, colorsets, etc...&#xA;People tend to stick to what they know and rarely challenge their comfort zone. I'm trying to push them sometimes but it's not easy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a result, i'm the only one spending time on dev blogs, design blogs, etc... i'm not claiming to be very good, but at least i got some basics in other domains than pure dev&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question was a way to assess the situation. Was the guy somebody who was interested in ux in name only? Would he end up leaving half a dozen templates embedded in  and  to create a 2-columns-with-header-design like the previous guy we contracted?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;He looked back at me and said &quot;I don't really like the dualistic nature of the question; tables are useful, divs are too, depends on what you're trying to achieve&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I must admit i blushed, stammered that i wasn't that simplistic either and as soon as the meeting was over we talked for what seemed like ten minutes, and took two hours. We shared tips, we talked about decisions, designs, etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was like meeting a fellow traveller in a strange place, like bonding with a good friend you've known for so long. We were in a zone where we spoke the same language and it was beautiful...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was completely rejoiced and refreshed by the talk we had this day... He's supposed to join the team and that makes me happy; not because we're the same, but because we share the same appetite towards knowledge and honing our skills...&lt;/p&gt;&#xA;" OwnerUserId="1690" LastActivityDate="2010-10-08T07:57:18.680" />
  <row Id="10429" PostTypeId="1" AcceptedAnswerId="10436" CreationDate="2010-10-08T08:01:47.720" Score="5" ViewCount="395" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently I am a .net developer (but I know java, JEE, and python also). I want to learn cloud computing framework but there are so many options and I am confused about which technology/framework to choose. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have learned that many types of services provied by different cloud vendors like IAAS, PAAS, SAAS, etc. Also,  there are many cloud computing vendors. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, which one should I choose from AWS, Microsoft Azure, Google App Engine, eucalyptus, Open Stack, Open Nebulla, or something else?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please enlighten !!!&lt;/p&gt;&#xA;" OwnerUserId="3498" LastActivityDate="2010-10-12T20:51:32.547" Title="Which cloud computing platform to learn? AWS,Microsoft Azure,Google App Engine,Eucalyptus,Open stack? or something else?" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;cloud&gt;" AnswerCount="2" CommentCount="5" FavoriteCount="1" />
  <row Id="10430" PostTypeId="2" ParentId="10410" CreationDate="2010-10-08T08:08:19.847" Score="3" ViewCount="" Body="&lt;p&gt;Talking, reading and writing about programming is good. &lt;em&gt;Only&lt;/em&gt; doing that is bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Comparing programming with a motor skill such as bicycling isn't an accurate analogy. Such skill you almost never forget. Math skills, on the other hand, must be nurtured constantly to be kept in shape. And this goes for programming, too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you find it difficult to do both (talking, reading and writing versus actually doing it) at the same time, try doing one for a little while and then the other for some time. For instance, if you've read a book about something, start a small pet project with a goal centered on what you've just read: if you've just read a book about AI, write a program that plays chess or solves Sokoban puzzles; a book about Ruby, write some small application using Ruby; a book about optimization, try to optimize one of your older projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for all means, do talk, read and write about programming, but don't neglect putting it to good use.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-08T08:08:19.847" />
  <row Id="10431" PostTypeId="2" ParentId="10410" CreationDate="2010-10-08T08:40:27.547" Score="1" ViewCount="" Body="&lt;p&gt;There are two things you need to do to learn and improve any craft:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Gain empirical experience by actually practising your craft - in other words, &quot;doing&quot;.&lt;/li&gt;&#xA;&lt;li&gt;Educate yourself about the craft by reading, talking etc. - in other words, &quot;learning&quot;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;What you are doing mostly is point 2. Nothing wrong with this, as it shows your enthusiasm for the subject and proves you are willing to engage and learn. Though there always needs to be a balance between the &quot;learning&quot; and the &quot;doing&quot;, though often in real-life you will find these come and go in cycles. So long as you are getting that balance right in the long term then you will be fine and I wouldn't worry about it.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-10-08T08:40:27.547" />
  <row Id="10432" PostTypeId="2" ParentId="10358" CreationDate="2010-10-08T08:52:08.460" Score="1" ViewCount="" Body="&lt;p&gt;I used to work in a department at ICL, before they were bought up by Fujitsu. They had some large government-type contracts that required &lt;em&gt;proof&lt;/em&gt; that the software worked as advertised, so they built a machine that would take the formal specification written in &lt;strong&gt;Z&lt;/strong&gt; and validate the code as it ran, with a big green or red light for pass/fail.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was an amazing thing, but, as the &lt;a href=&quot;http://stackexchange.com/leagues/52/year/programmers&quot;&gt;esteemed @FishToaster&lt;/a&gt; points out, it was useless for anything non-trivial.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-08T08:52:08.460" />
  <row Id="10433" PostTypeId="2" ParentId="10389" CreationDate="2010-10-08T09:07:19.950" Score="1" ViewCount="" Body="&lt;p&gt;Qt with Qt Designer and C++,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I Find that I can very quickly create a powerful application in a very short space of time.&#xA;The documentation for the Qt API, is one of the best I have used and found. To me this is the most important aspect of the choice of a framework.&#xA;The framework can be used on Windows, Linux, Mac OS X, Symbian, and Windows CE, which means if you are careful when writing the code, you can easily create an app that will run on many different platforms. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Qt can also be licensed under LGPL or and commercial licence.&lt;/p&gt;&#xA;" OwnerUserId="2395" LastEditorUserId="2395" LastEditorDisplayName="" LastEditDate="2010-10-08T11:11:12.843" LastActivityDate="2010-10-08T11:11:12.843" CommentCount="2" />
  <row Id="10434" PostTypeId="2" ParentId="10340" CreationDate="2010-10-08T09:26:02.697" Score="1" ViewCount="" Body="&lt;p&gt;Give them more than just the software somehow. Free downloadable content for paid users and free upgrades and patches, training videos, cheap upgrades or free upgrades to the latest versions. You can also donate a bit of your profits to a charity, so the users have a feeling of giving something back when they buy your software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there are online features only make them accessible to paying users. Copy protection is a waste of time. Nowadays it's all about content and service, and not just giving someone a static exe and expecting to make free money after your costs are covered.&lt;/p&gt;&#xA;" OwnerUserId="4722" LastActivityDate="2010-10-08T09:26:02.697" CommunityOwnedDate="2011-04-15T15:44:36.530" />
  <row Id="10435" PostTypeId="2" ParentId="8111" CreationDate="2010-10-08T09:27:29.720" Score="5" ViewCount="" Body="&lt;p&gt;Can anyone name a CEO of a large company that has a PhD in computer science? Steve Jobs? dropped out of college, 'cos he famously hated the boring bits. Bill Gates? also dropped out as he felt was surrounded by people not as smart as he (based on GPA).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've worked for companies that have amazing programmers that work on incredible systems, some of which people use every day (e.g. Windows) and others that help industries get along together (e.g. XML and SOAP). Many of these guys were self-taught and studied subjects other than Computer Science, for example Physics or Eletronic Engineering. The reason for programming in their lives was as a tool for getting their work done, rather than studying programming to learn how to do programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also worked with government and large corporations that have amazing Cambridge graduates that have had not just one, but two PhD's. These were incredibly intellectual guys who created sophisticated and elegant solutions to very specific problems in fields such as communications and signal processing. They weren't rich, nor did they have high-level jobs in their departments. It felt like they were hired as a 'boffin' and left alone to think up these solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my industry experience, there is no correlation between programming ability and the level of formal education in the computer science field. In my early days as a software engineer, I saw people promoted past me whose programming was 'not as good as mine' (IMO, of course) - but they had the social engineering skills to work out what were the right things to say to the right people and when. They didn't BS their way up - they could do the job, it's just that other skills (talking to clients, delivering on deadlines, etc) were important too, so they didn't spend 100% of their time coding like I did.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I learned an important lesson - if you have the fire within you to succeed, you'll find the solution, programming or otherwise, to the business problem in hand in order to make your company/department more successful and therefore more profitable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of all the programmers I've hired, I didn't care for their education track record. If they passed the programming tests and my lead engineers were happy with their abilities, the education did not matter. One of the best guys we hired was straight out of school - i.e. no degree at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In summary, if you're passionate about the technology and the art/science of programming itself, by all means pursue an absorbing and fascinating academic path. If you're looking to go places and be successful beyond just programming, widen your focus to include other skills such as business and psychology/sociology. Decide what you really want in 10, 20, 30 years from now and then work backwards to determine which course of action will get you to those goals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer your question: a PhD is good for something really niche. It probably won't pay well, but it might be interesting.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-08T09:27:29.720" CommentCount="3" />
  <row Id="10436" PostTypeId="2" ParentId="10429" CreationDate="2010-10-08T09:37:38.387" Score="5" ViewCount="" Body="&lt;p&gt;If you are currently involved in .net development, go straight with Azure. It's not the best one (they are all very different) but in my opinion it has a good potential.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-10-08T09:37:38.387" CommentCount="4" />
  <row Id="10437" PostTypeId="2" ParentId="10425" CreationDate="2010-10-08T09:40:41.503" Score="1" ViewCount="" Body="&lt;p&gt;I would teach real life design. The goal is to help them to shape the projects in the correct form, building a good (and effective) object tree, avoiding overdesign.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also being involved in some real project (instead of some &quot;academic sample&quot;) would be very helpful. After all, student have a lot of theory but no practice.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-10-08T09:40:41.503" CommentCount="2" />
  <row Id="10438" PostTypeId="2" ParentId="10340" CreationDate="2010-10-08T09:47:00.883" Score="1" ViewCount="" Body="&lt;p&gt;If you don't add any protection or annoyance (i.e a nag screen), almost no one will pay for you work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With a basic protection, the average user, really motivated to buy your software, will buy it, but avoid to make too complex its life: the customer is paying you, so be kind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good way to protect software is online activation. Of course keep in mind that every copy protection system may be overridden, so don't spend too much time in developing complex protection schemes: people that absolutely don't want or can't afford buying it will either crack it or skip it.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-10-08T09:47:00.883" CommunityOwnedDate="2011-04-15T15:44:36.530" CommentCount="8" />
  <row Id="10439" PostTypeId="2" ParentId="10087" CreationDate="2010-10-08T09:52:31.280" Score="13" ViewCount="" Body="&lt;p&gt;having to wake up early everyday!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would love it to sleep as long as I want, wake up slowly, enjoy a good breakfast, and then go to work. On the other side, I wouldn't mind working till late evening. &lt;/p&gt;&#xA;" OwnerUserId="4843" LastActivityDate="2010-10-08T09:52:31.280" CommunityOwnedDate="2010-10-08T09:52:31.280" CommentCount="2" />
  <row Id="10440" PostTypeId="2" ParentId="9991" CreationDate="2010-10-08T09:56:02.293" Score="1" ViewCount="" Body="&lt;p&gt;Set yourself goals for the night. I get the impression from the answers that you basically sit down, start working, get into a flow and just keep going.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's as much a time management problem as it is a self control problem - write down the things you're trying to achieve (nothing mental, don't bother with software, stick these tasks on post it notes, etc). Scribble an estimate against them - i.e. &quot;Write feature X, should take an hour&quot;. Maybe even add a 'difficulty' score so you can get a feel for the potential problems you'll run into and how badly you'll fall into your flow and lose time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before you start working that evening work out how many hours you can spend and pick tasks that fit into that time slot - this is especially important (i.e. &quot;I have two hours spare, i'm going to grab two 1 hour easy tasks, or a single 2 hour difficult task&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is, in essence what I do now. I had a similar problem to you - in the end I realised that losing this time was a result of simply not anticipating problems or knowing the effort required for the task. As soon as I started thinking about this at the start and breaking my project down into really small little taks, it became much more manageable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will add a caveat to this though; Flow is a Good Thing (tm), and estimating is guessing - sometimes it just happens. What you're looking for a balance and managing your tasks better would give you this.&lt;/p&gt;&#xA;" OwnerUserId="3890" LastActivityDate="2010-10-08T09:56:02.293" CommentCount="1" />
  <row Id="10441" PostTypeId="2" ParentId="8721" CreationDate="2010-10-08T10:01:37.397" Score="2" ViewCount="" Body="&lt;p&gt;My suggestions&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Find a pet project and write it in a different language(lyke python/c#) to the one you know. This will teach you more than you can imagine. Look at other projects that are similar and try to get feature parity with them. You can go slow with this and have modest goals, steadily increasing your difficulty level with new features. This also becomes your show piece whn you go for a job interview.&lt;/li&gt;&#xA;&lt;li&gt;Find uses in your project for relevant technologies like web services, javascript, ajax, geocoding and basically anything that is making headway in the software world. &lt;/li&gt;&#xA;&lt;li&gt;Play with other operating systems like Linux/freebsd. The more exposure you get to different kinds of systems the more you will understand the thinking behing them, and why they did things in the way they did.&lt;/li&gt;&#xA;&lt;li&gt;When your done with parts of your code go back to it and try to improve it constantly. Find ineffiencies, add more comments when needed, try to perfect it.&lt;/li&gt;&#xA;&lt;li&gt;Dig around at c2.com. There are a lot of good coding practices. Learn these and try to apply them in your own project.&lt;/li&gt;&#xA;&lt;li&gt;Read books like the pragmatic programmer and code complete, they will give you the knowledge of battle hardened programming.&lt;/li&gt;&#xA;&lt;li&gt;This may sound unrelated, but find another technical hobby if you don't have one already like racing RC cars, playing a musical instrument or learning a foreign language. The more pieces of your brain are in use the better, and you need to unwind from time to time because programming can get too much.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4722" LastActivityDate="2010-10-08T10:01:37.397" CommentCount="1" />
  <row Id="10442" PostTypeId="2" ParentId="10087" CreationDate="2010-10-08T10:11:54.807" Score="15" ViewCount="" Body="&lt;p&gt;The word &lt;b&gt;&quot;need&quot;&lt;/b&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br&gt;&#xA;What is it about that word that overrides logic in some people's brains?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Boss: We need XYZ by Monday.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: I don't think that's feasible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Boss: You don't understand. [&lt;i&gt;speaking as if to idiot&lt;/i&gt;] We &lt;em&gt;need&lt;/em&gt; it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: Why? What happens if we can't do it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Boss: We &lt;em&gt;NEED&lt;/em&gt; to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: Well... I still don't think it's feasible. I mean, do you think it gets easier because of--&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Boss: [&lt;i&gt;glowering&lt;/i&gt;] This needs to get done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: [&lt;i&gt;cringing at bad semantics&lt;/i&gt;] All right, then I &lt;em&gt;need&lt;/em&gt; ten hours overtime, and Steve and Anne.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Boss: [&lt;i&gt;temperature rising&lt;/i&gt;] We don't have money for overtime and Steve is busy. You don't need Anne.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: [thinks: &quot;how much do I need this job?&quot;]...&lt;/p&gt;&#xA;" OwnerUserId="3690" LastActivityDate="2010-10-08T10:11:54.807" CommunityOwnedDate="2010-10-08T10:11:54.807" CommentCount="3" />
  <row Id="10443" PostTypeId="2" ParentId="10424" CreationDate="2010-10-08T10:25:00.447" Score="1" ViewCount="" Body="&lt;p&gt;I think the &lt;a href=&quot;http://en.wikipedia.org/wiki/Object-relational_impedance_mismatch&quot; rel=&quot;nofollow&quot;&gt;Object relational impedance mismatch&lt;/a&gt; is the big problem. OO is not relational. For example, where does relational theory describe inheritance. Also smaller (but big issues) like if the programming language doesn't support nullable types. How do you map that to a nullable column in the database?&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-08T10:25:00.447" CommentCount="2" />
  <row Id="10444" PostTypeId="2" ParentId="5770" CreationDate="2010-10-08T10:29:34.540" Score="4" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://en.wikipedia.org/wiki/Big_Trak&quot; rel=&quot;nofollow&quot;&gt;Big Track&lt;/a&gt; with no screen at all, but you can program it :&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/z50Wi.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1905" LastActivityDate="2010-10-08T10:29:34.540" CommentCount="1" />
  <row Id="10445" PostTypeId="2" ParentId="10425" CreationDate="2010-10-08T10:29:57.410" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Requirements Gathering - school assignments too often provide them&lt;/li&gt;&#xA;&lt;li&gt;Planning&lt;/li&gt;&#xA;&lt;li&gt;Source Control (setting up, developing guidelines, and using)&lt;/li&gt;&#xA;&lt;li&gt;Debugging&lt;/li&gt;&#xA;&lt;li&gt;Installers&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Depending on the jobs they get, they may not have a chance to learn these things outside of the way the team already does them. This may help to fill in some gaps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are other important areas like testing, but I don't know how far you could get into that in 2 weeks.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-08T10:29:57.410" />
  <row Id="10446" PostTypeId="2" ParentId="4662" CreationDate="2010-10-08T10:30:11.110" Score="1" ViewCount="" Body="&lt;p&gt;Any technology that achieves a certain critical mass are guaranteed to be around for a while. All three of these are well in this category and even if for some reason they were canned tomorrow you would still find work for the next 10 years, time enough to retrain.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-08T10:30:11.110" />
  <row Id="10447" PostTypeId="2" ParentId="10394" CreationDate="2010-10-08T10:46:23.307" Score="1" ViewCount="" Body="&lt;p&gt;There is also &lt;a href=&quot;http://code.google.com/p/orient/&quot; rel=&quot;nofollow&quot;&gt;OrientDB&lt;/a&gt; a open source document-graph dbms with commercial friendly license (Apache 2). Simple API, SQL like language, ACID Transactions and the support for Gremlin graph language. Uses binary and RESTful/HTTP protocols. The SQL has extensions for trees and graphs.&lt;/p&gt;&#xA;" OwnerUserId="4847" LastActivityDate="2010-10-08T10:46:23.307" />
  <row Id="10448" PostTypeId="2" ParentId="10394" CreationDate="2010-10-08T10:54:19.873" Score="0" ViewCount="" Body="&lt;p&gt;If you don't have a specific problem to solve, I recommend that you pick up a list of a dozen or so &quot;NoSQL&quot; databases and try them all out and form your own opinions about them.  The next time you walk into an interview or a project meeting, rather than being able to say, &quot;I played a bit with FooDB at home&quot;, having a qualified opinion on the &quot;NoSQL&quot; phenomenon and a broader overview of the matter is probably going to help you more.&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-10-08T10:54:19.873" />
  <row Id="10449" PostTypeId="2" ParentId="1180" CreationDate="2010-10-08T11:00:31.017" Score="1" ViewCount="" Body="&lt;p&gt;I like to say that the only reason BASIC is still popular is that it was Microsoft's first product, and they've be shoving it down our throats for the past 35 years.  It should have died a long time ago.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that said, I've worked on two sizable .NET projects and both were done with VB.Net - though there was a bit of C# because either the translation was a bitch, or the construct didn't exist in VB.Net.  The only advantage I see with VB.Net is that the Visual Studio editor is much more friendly to it (in my experience anyway) than it is with C# - Intellisense seems better, and so does autoformatting (note that since I have not used C# as much, I may just be missing something in the configuration of the IDE...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A major disadvantage in VB.Net is that they brought in a lot of VB6-era crap way back in .NET 1.x to ease the conversion of VB6 code.  That stuff is still in there, and VB6 coders are coding new code using those... &quot;extensions&quot; rather than using the more neutral .NET classes/methods/whatever.  I don't know how many times I asked my boss why he still used that crap.  &quot;But... It works...&quot;  Right.  Hey, I like to bitch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While looking for help on the web, I found the vast majority of solutions were in C# - check out the MSDN forums, various blogs, etc... Books have a tendency to focus on C#, and if there is a VB version, it usually comes in months later (e.g. Pro LINQ.... from Apress.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many languages share the C ancestry, which makes switching between C, C++, C#, Java, PHP and a few others much easier.  PHP is a bit of a stretch here, but it does have a lot of C-like constructs.  VB?  Well, it's pretty much its own little thing and that's that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A project leader in my organization recently told me that more and more new projects are being developed using C# instead of VB - FINALLY.  When .NET was introduced in our organization, they more-or-less-officially went with VB.Net because of all the VB6 coding that was already going on.  The powers that be later admitted to me that that wasn't their best move.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As somebody else above pointed out, I wouldn't say no to a VB.Net project, but I'm still hoping that it will be slowly eradicated from newer development at my place of work.&lt;/p&gt;&#xA;" OwnerUserId="3842" LastActivityDate="2010-10-08T11:00:31.017" CommunityOwnedDate="2010-10-08T11:00:31.017" />
  <row Id="10450" PostTypeId="2" ParentId="10087" CreationDate="2010-10-08T11:04:58.353" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Nerds&lt;/strong&gt; - Honestly, no more Lord of the Rings discussions, please!!&lt;/p&gt;&#xA;" OwnerUserId="4499" LastActivityDate="2010-10-08T11:04:58.353" CommunityOwnedDate="2010-10-08T11:04:58.353" CommentCount="2" />
  <row Id="10451" PostTypeId="2" ParentId="39" CreationDate="2010-10-08T11:26:23.080" Score="0" ViewCount="" Body="&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;As a general rule, the most successful man in life is the man who has the best information.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; Benjamin Disraeli&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" LastActivityDate="2010-10-08T11:26:23.080" CommunityOwnedDate="2010-10-08T11:26:23.080" />
  <row Id="10452" PostTypeId="2" ParentId="39" CreationDate="2010-10-08T11:26:29.583" Score="4" ViewCount="" Body="&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Plans are worthless, but planning is everything.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; Dwight D. Eisenhower&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" LastActivityDate="2010-10-08T11:26:29.583" CommunityOwnedDate="2010-10-08T11:26:29.583" CommentCount="1" />
  <row Id="10453" PostTypeId="2" ParentId="39" CreationDate="2010-10-08T11:26:34.917" Score="1" ViewCount="" Body="&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Education: that which reveals to the wise, and conceals from the stupid, the vast limits of their knowledge.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; Mark Twain&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" LastActivityDate="2010-10-08T11:26:34.917" CommunityOwnedDate="2010-10-08T11:26:34.917" />
  <row Id="10454" PostTypeId="2" ParentId="10425" CreationDate="2010-10-08T11:29:04.217" Score="1" ViewCount="" Body="&lt;p&gt;Asking questions about the requirements &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For e.g In schools days, if we ask a student to write a addition program in C, immediately they will come up with &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void main()&#xA;{&#xA; int a,b,c;&#xA; a=1,b=2;&#xA; c=a+b;&#xA; printf(c);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Forgive me for syntax if its wrong :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here they do not ask the following questions&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;From where do they receive the input?&lt;/li&gt;&#xA;&lt;li&gt;What kind of data (int,float etc) will be the input?&lt;/li&gt;&#xA;&lt;li&gt;Where should the output go?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-10-08T11:29:04.217" CommentCount="1" />
  <row Id="10455" PostTypeId="2" ParentId="10425" CreationDate="2010-10-08T11:33:50.947" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Source Control&lt;/strong&gt;: From my experience, colleges don't teach this well if at all. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Unit Testing&lt;/strong&gt;: Same as above (also reduces the amount of time they need to spend in a debugger)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;DRY/SRP/SOLID&lt;/strong&gt;: Good, fundamental design techniques. DRY alone will help make them a better programmer, developer, and produce better quality code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;IoC&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-10-08T11:33:50.947" CommentCount="5" />
  <row Id="10456" PostTypeId="2" ParentId="8111" CreationDate="2010-10-08T11:34:47.960" Score="19" ViewCount="" Body="&lt;p&gt;Getting a PhD does two things to you and it uses up 4 or more years. You will need to decide whether those two things are worth the time. First, it gives you some initials after your name. For the rest of time, people who see those initials will think &quot;wow, you must be really smart!&quot; (and often, they will say it out loud.) On a resume it will generally help you, though in some circumstances it might hurt you, with people thinking you're overqualified or an egghead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, and more importantly in my opinion, is the changes in your brain and your attitude that happen over the course of the degree. You will end up knowing more about some small part of the world than any other person. You will stand in front of 3 or 4 people who are experts, sometimes world-renowned experts, and teach them about your work. When you walk in, those experts will be supervisor, examiner, &quot;bosses&quot; of a sort and when you walk out they will be your peers. You  will learn a lot about one corner of computer science and a lot more about yourself and your capabilities. You will be confident being &quot;the expert&quot; when required. And that changes everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you know now you want to be a prof, or to join a particular research lab, it seems unusual to me that you could decide about the PhD before doing the undergrad work. Go do the undergrad, and make friends with some grad students. They will tell you all you want to know about the life of a grad student, the life of a baby prof, the job prospects when you're out, and more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't regret the time I spent on my PhD. It has opened many doors for me. It has made me more memorable (&quot;right, you're the woman with the PhD, aren't you?&quot;) and been an asset to some of my teams independent of my abilities or knowledge (&quot;we have a PhD on our team!&quot;). But the industry I joined then is not the industry you're joining now. Talk to people who are in the thick of it now and then make a decision as you finish the undergrad work.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-08T11:34:47.960" CommentCount="3" />
  <row Id="10457" PostTypeId="2" ParentId="5770" CreationDate="2010-10-08T11:38:08.107" Score="1" ViewCount="" Body="&lt;p&gt;While I was in college I programmed on a 6502 board, with a keypad, and 2 x 7 segment displays.&lt;/p&gt;&#xA;" OwnerUserId="2395" LastActivityDate="2010-10-08T11:38:08.107" />
  <row Id="10458" PostTypeId="2" ParentId="39" CreationDate="2010-10-08T11:49:42.990" Score="5" ViewCount="" Body="&lt;p&gt;Not really about programming, but...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;You can't wait for inspiration. You have to go after it with a club.&#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; Jack London&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3421" LastActivityDate="2010-10-11T14:04:32.033" CommunityOwnedDate="2010-10-08T11:49:42.990" />
  <row Id="10460" PostTypeId="2" ParentId="10087" CreationDate="2010-10-08T12:08:21.470" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;internet&lt;/strong&gt; + &lt;strong&gt;gaming&lt;/strong&gt; + &lt;strong&gt;mobile phone&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Such a waste of time. (Seriously)&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-10-08T12:08:21.470" CommunityOwnedDate="2010-10-08T12:08:21.470" CommentCount="2" />
  <row Id="10461" PostTypeId="2" ParentId="39" CreationDate="2010-10-08T12:19:21.670" Score="11" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;The difficulty of a bug can be&#xA;  measured as the distance, in lines of&#xA;  code, from the cause of a bug to the&#xA;  visible symptom of a bug.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rustyklophaus.com/articles/20070811-TheKlophausEquationOfBugDifficulty.html&quot; rel=&quot;nofollow&quot;&gt;The Klophaus Equation of Bug Difficulty&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-10-08T12:19:21.670" CommunityOwnedDate="2010-10-08T12:19:21.670" CommentCount="1" />
  <row Id="10462" PostTypeId="1" AcceptedAnswerId="10503" CreationDate="2010-10-08T12:27:01.870" Score="3" ViewCount="170" Body="&lt;p&gt;I've been programming for a while now, and I've covered a lot of languages. And this trend that I noticed is that all HDL languages have so painful IDEs!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, any development environment having some Hardware related development has very crappy UI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm talking about uVision, ModelSim, VHDL Simili, Xilinx etc, compared with Netbeans, Eclipse, Visual Studio etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why do hardware-guys hate their developers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;NOTE: There are exceptions (LABView is awsome!). Can you think of any more?&lt;/p&gt;&#xA;" OwnerUserId="3974" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-10-08T14:48:54.503" LastActivityDate="2010-12-24T09:35:33.813" Title="Why are HDL IDEs so user-unfriendly when compared to generic-purpose language (like Java/C) IDEs?" Tags="&lt;ide&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="10463" PostTypeId="2" ParentId="39" CreationDate="2010-10-08T12:31:04.840" Score="4" ViewCount="" Body="&lt;p&gt;My favourites have already been posted, so here's something I thought of one day at work:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In Soviet Russia, exception throws &lt;em&gt;YOU!!&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-10-08T12:31:04.840" CommunityOwnedDate="2010-10-08T12:31:04.840" CommentCount="3" />
  <row Id="10464" PostTypeId="2" ParentId="10389" CreationDate="2010-10-08T12:39:05.863" Score="5" ViewCount="" Body="&lt;p&gt;For the Windows platform, I'd have to say &lt;strong&gt;Delphi&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It very easy to build an interface with Delphi. (And as a bonus, it'll be pretty efficient; Delphi's fairly close to the metal.)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-08T12:39:05.863" />
  <row Id="10465" PostTypeId="2" ParentId="5770" CreationDate="2010-10-08T12:40:06.177" Score="1" ViewCount="" Body="&lt;p&gt;who needs a screen, punch card ftw! :&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/CqDEE.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-16T12:27:29.443" LastActivityDate="2010-11-16T12:27:29.443" CommentCount="3" />
  <row Id="10466" PostTypeId="2" ParentId="279" CreationDate="2010-10-08T12:40:29.400" Score="16" ViewCount="" Body="&lt;p&gt;I'd like to see better support for immutable types. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the moment the only way to have a true immutable type if to have no public setter properties and initialize everything in the constructor. It'd be nice to have a new access type for setter properties which indicate they can be called as part of the construction. Something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Foo&#xA;{&#xA;  public Foo() {}&#xA;&#xA;  public string Name{get; init set;}&#xA;}&#xA;&#xA;Foo f=new Foo(){Name=&quot;Jack&quot;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Here we can set &lt;strong&gt;Name&lt;/strong&gt; when constructing the object but we can't say:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;f.Name=&quot;Ben&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;as the property can only be called during initialization.&lt;/p&gt;&#xA;" OwnerUserId="4850" LastActivityDate="2010-10-08T12:40:29.400" CommunityOwnedDate="2011-05-10T09:21:11.253" CommentCount="4" />
  <row Id="10467" PostTypeId="2" ParentId="10087" CreationDate="2010-10-08T12:51:03.783" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Clients&lt;/strong&gt;. It would render the job much more enjoyable. OTOH, it'd become pointless.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-10-08T12:51:03.783" CommunityOwnedDate="2010-10-08T12:51:03.783" />
  <row Id="10468" PostTypeId="2" ParentId="10340" CreationDate="2010-10-08T13:00:03.587" Score="0" ViewCount="" Body="&lt;p&gt;Hmmm, only two solutions: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Release under GPL (or similar)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) SaaS&lt;/p&gt;&#xA;" OwnerUserId="597" LastActivityDate="2010-10-08T13:00:03.587" CommunityOwnedDate="2011-04-15T15:44:36.530" />
  <row Id="10469" PostTypeId="2" ParentId="790" CreationDate="2010-10-08T13:08:56.293" Score="3" ViewCount="" Body="&lt;p&gt;Software patents are ultimate evil of today IT world. They hurt innovation and entrepreneurship and their sole purpose is to extinguish fair competition.&lt;/p&gt;&#xA;" OwnerUserId="597" LastActivityDate="2010-10-08T13:08:56.293" CommentCount="1" />
  <row Id="10470" PostTypeId="2" ParentId="10425" CreationDate="2010-10-08T13:09:35.417" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I'd add at least one business class.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My problem after graduation is I thought the world was a place where I could always build what I wanted.  Somewhere that would strive for software quality in every build.  Well, I was mistaken.  People pay developers not just to write code, but to write code that makes them money!  A lot of times the &quot;best&quot; solution to someone out of college isn't necessarily the best solution for the business.  Sometimes &quot;good enough&quot; but also &quot;shipped&quot; is better than something that has flawless design.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-08T13:09:35.417" />
  <row Id="10471" PostTypeId="2" ParentId="10087" CreationDate="2010-10-08T13:13:06.837" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;My computer running poorly&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As developers, our sole existence is defined by what we create on a computer and although the machine I work on is not that bad, sometimes it makes me want to scream when it will just arbitrarily hang or get stuck for some unreasonable amount of time. When you only have one tool on your tool-belt it really should be the best money can buy- at least in my opinion.&lt;/p&gt;&#xA;" OwnerUserId="13" LastEditorUserId="13" LastEditorDisplayName="" LastEditDate="2010-10-08T16:32:59.293" LastActivityDate="2010-10-08T16:32:59.293" CommunityOwnedDate="2010-10-08T13:13:06.837" CommentCount="1" />
  <row Id="10472" PostTypeId="2" ParentId="10425" CreationDate="2010-10-08T13:16:55.043" Score="1" ViewCount="" Body="&lt;p&gt;SQL skills - can't believe how weak they generally are coming out of school. The second thing would be time managment and how to meet deadlines.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-08T13:16:55.043" />
  <row Id="10473" PostTypeId="2" ParentId="331" CreationDate="2010-10-08T13:28:51.457" Score="0" ViewCount="" Body="&lt;p&gt;I'm used to xterm default &quot;fixed&quot; font.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-08T13:28:51.457" CommunityOwnedDate="2010-10-08T13:28:51.457" />
  <row Id="10474" PostTypeId="2" ParentId="10087" CreationDate="2010-10-08T13:29:31.097" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Voicemail&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Half my voice mail either describes an email, would be better as an email or ends with &quot;...ok...so I'll send this in an email with more detail&quot;. In the latter case, the implied message is &quot;...so I am wasting the time you're spending listening to my voice&quot; &lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-08T13:29:31.097" CommunityOwnedDate="2010-10-08T13:29:31.097" />
  <row Id="10475" PostTypeId="2" ParentId="10425" CreationDate="2010-10-08T13:31:38.313" Score="0" ViewCount="" Body="&lt;p&gt;Not sure if this qualified, but having taught a C &amp;amp; C++ class a few years ago (98-2002) at a community college, I can say I tried to emphasize:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;List item&lt;/li&gt;&#xA;&lt;li&gt;Debugging Teach yourself/look it up (this predated &quot;just google it!&quot;)&lt;/li&gt;&#xA;&lt;li&gt;Being pragmatic&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In addition, I tried to bring up relative real world &quot;sidebars&quot; when covering the material. I especially tried to explain &lt;em&gt;why&lt;/em&gt; things where in addition to just &lt;em&gt;how&lt;/em&gt; things are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I moved away from the area after 4 years and never ran into any former students. I have no idea how I succeeded or failed.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-10-08T13:31:38.313" />
  <row Id="10476" PostTypeId="2" ParentId="39" CreationDate="2010-10-08T13:35:41.923" Score="20" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A computer lets you make more&#xA;  mistakes faster than any invention in&#xA;  human history—with the possible&#xA;  exceptions of handguns and tequila.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; Mitch Ratcliffe&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4750" LastActivityDate="2010-10-10T19:26:27.163" CommunityOwnedDate="2010-10-08T13:35:41.923" CommentCount="4" />
  <row Id="10477" PostTypeId="1" AcceptedAnswerId="10545" CreationDate="2010-10-08T13:35:52.907" Score="12" ViewCount="384" Body="&lt;p&gt;I read that a lot of people seem to favor the journal, or diary, form to keep notes on their work related activities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had a more structured approach myself, which involves outlines and categorization.&lt;br&gt;&#xA;While this has its advantages for information retrieval, I find it can become an hindrance when it comes to entries of a broad, subjective or reflective nature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been thinking about using a more diary-like format for this purpose, but since I've never held one before, I wonder about what sort of information it would contain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can anyone give an example of their typical journal/diary entry's content ?&lt;br&gt;&#xA;What do you keep notes of, and how do you structure it ?&lt;/p&gt;&#xA;" OwnerUserId="2115" LastActivityDate="2011-04-08T10:45:43.860" Title="What does a typical programming journal entry consist of ?" Tags="&lt;self-improvement&gt;&lt;organization&gt;&lt;notes&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="4" />
  <row Id="10481" PostTypeId="2" ParentId="1180" CreationDate="2010-10-08T13:43:41.640" Score="4" ViewCount="" Body="&lt;p&gt;In addition to the other answers posted here, I would choose C# over VB because C# programmers get paid more. More experience with C# = more $$ :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know both languages are almost the same and its really easy to switch between the two, but I think when management looks at a bunch of curly braces and semi-colons they accept the fact we are doing something they cannot do, where with VB.Net they might look at it and go &quot;oh that must not be that hard to do if I can understand it&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-10-08T13:43:41.640" CommunityOwnedDate="2010-10-08T13:43:41.640" CommentCount="1" />
  <row Id="10485" PostTypeId="2" ParentId="1180" CreationDate="2010-10-08T13:48:41.270" Score="2" ViewCount="" Body="&lt;p&gt;There seem to be more C# code samples online than VB.NET samples.  Not like its all that hard to convert one to the other, but why bother if you don't have to.&lt;/p&gt;&#xA;" OwnerUserId="2527" LastActivityDate="2010-10-08T13:48:41.270" CommunityOwnedDate="2010-10-08T13:48:41.270" />
  <row Id="10486" PostTypeId="2" ParentId="10358" CreationDate="2010-10-08T13:49:20.680" Score="2" ViewCount="" Body="&lt;p&gt;I've read a few books about formal methods, and applied some.  My immediate reaction was, &quot;Gee, these books tell me how to be a good programmer, as long as I'm a perfect mathematician.&quot;  Another weakness is that you can only prove equivalence with another formal description.  Writing up a formal specification for a program is tantamount to writing a program in a higher-level language, and there's no way you can avoid introducing bugs in a reasonably large spec.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never made formal methods work on a large scale.  They can be useful in getting something small and tricky correct, and in convincing me that they're correct.  In that way, I can work with slightly larger building blocks and sometimes get a little more done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing I did pick up that is more generally useful is the concept of an invariant, a statement about a program and its state that is always true.  Anything you can reason from is good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As alluded to above, I'm not a perfect mathematician, and so my proofs sometimes contain errors.  However, in my experience these tend to be big dumb mistakes that are easy to catch and fix.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-08T13:49:20.680" />
  <row Id="10487" PostTypeId="2" ParentId="10425" CreationDate="2010-10-08T13:53:15.317" Score="0" ViewCount="" Body="&lt;p&gt;Love the answers given (esp. Source Control).  I'll add one of my own:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How to program in a team.  In other words, how to functionally break down a project into manageable pieces and assign work items to different team members, requiring formal design to be reviewed by the team before implementation.  Following a technical specification for someone else's subsystem.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-10-08T13:53:15.317" CommentCount="1" />
  <row Id="10488" PostTypeId="2" ParentId="2204" CreationDate="2010-10-08T13:55:44.913" Score="0" ViewCount="" Body="&lt;p&gt;I didn't believe it myself, but according to Code Complete this is an appropriate place to use &lt;code&gt;break&lt;/code&gt; (if your team is on board).  I'd imagine this is more acceptable with C++ programmers though, where &lt;code&gt;break&lt;/code&gt; used in &lt;code&gt;switch&lt;/code&gt; statements than it is with Delphi programmers where &lt;code&gt;break&lt;/code&gt; is only used when you don't feel like writing a &lt;code&gt;while&lt;/code&gt; loop. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-08T13:55:44.913" />
  <row Id="10489" PostTypeId="2" ParentId="10477" CreationDate="2010-10-08T13:58:54.017" Score="1" ViewCount="" Body="&lt;p&gt;I personnaly use one simple method that proven its effiency, both storing and retrieving data related to my daily work: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;emails&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;So I don't care of what and how I structure things. With technology of today, you can easily do data mining in your email archive with extended search criterias.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Since most of the information I want to take &quot;note&quot; of is present in emails, it's perfect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For other things, I send myself an email with the information I want to keep. When I'm outside the office, I use my laptop, my iPad or even my phone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the GTD methodology, every note is processed and stored accordingly.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-08T13:58:54.017" CommentCount="4" />
  <row Id="10491" PostTypeId="2" ParentId="10340" CreationDate="2010-10-08T14:08:36.370" Score="4" ViewCount="" Body="&lt;p&gt;Don't spend much work on this, and don't make it intrusive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are two layers of copy protection that can possibly be worthwhile.  One is to prevent the casual user from copying it, and one is to prevent anybody from copying it.  There's nothing in between, since if any one person can crack your copy protection all the dedicated pirates in the world will have a copy.  The second level is impossible, so don't even try.  The first may have some value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you make the copy protection annoying, the pirate sites will have a better version available.  Many people buy a legit copy of software, and then download an illegit to actually use.  I really don't think you want to encourage honest people to download your stuff from pirate sites, and you don't want to annoy your paying customers too much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should stop worrying about piracy per se.  For stand-alone service, pirates take nothing from you.  Seriously.  You still have everything you had before.  What they might to is deprive you of possible sales.  In other words, they can do nothing to you that an influential reviewer can't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you should be concerned about is revenue, and increasing the number of sales.  Piracy can actually help that, by giving people some free trials and experience.  Many people will buy the stuff they actually use.  Some people attribute some of Microsoft's success to large numbers of people illicitly using their software.  They're better off in the long run with hundreds of millions of Chinese using illegally copied Windows than perfectly legal Linux.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't pay attention to the number of illegitimate copies.  They aren't, for the most part, lost sales.  Pirates tend to accumulate large quantities of software they barely use, far beyond their ability to buy.  Pay attention to your actual sales.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-08T14:08:36.370" CommunityOwnedDate="2011-04-15T15:44:36.530" />
  <row Id="10492" PostTypeId="2" ParentId="35" CreationDate="2010-10-08T14:08:52.907" Score="20" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/J0Fq7.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="64" LastActivityDate="2010-10-08T14:08:52.907" CommunityOwnedDate="2010-10-08T14:08:52.907" CommentCount="1" />
  <row Id="10493" PostTypeId="1" AcceptedAnswerId="10494" CreationDate="2010-10-08T14:13:23.953" Score="4" ViewCount="162" Body="&lt;p&gt;Does anyone have any recommendations about a great book, great article, great video about MS Azure development? I'd love something for an experience developer in .NET technologies.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-08T15:24:32.590" LastActivityDate="2011-04-17T15:09:56.263" Title="Recommendations for learning Microsoft Azure" Tags="&lt;career&gt;&lt;.net&gt;&lt;microsoft&gt;&lt;azure&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="10494" PostTypeId="2" ParentId="10493" CreationDate="2010-10-08T14:14:52.627" Score="2" ViewCount="" Body="&lt;p&gt;Check out out Microsoft Channel 9  - &lt;a href=&quot;http://channel9.msdn.com/tags/Azure/&quot; rel=&quot;nofollow&quot;&gt;http://channel9.msdn.com/tags/Azure/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="3262" LastEditorDisplayName="" LastEditDate="2010-10-08T18:31:30.033" LastActivityDate="2010-10-08T18:31:30.033" CommentCount="1" />
  <row Id="10495" PostTypeId="1" CreationDate="2010-10-08T14:26:15.857" Score="7" ViewCount="470" Body="&lt;p&gt;As developers do you ever seek out contract work in addition to your full-time job? I am considering pursuing some additional part-time opportunities and I'm curious how common it is among full-time software engineers.&lt;/p&gt;&#xA;" OwnerUserId="13" LastActivityDate="2011-05-16T23:16:47.487" Title="Do you work contract projects in addition to your full-time job?" Tags="&lt;work-environment&gt;&lt;contracting&gt;&lt;part-time&gt;" AnswerCount="9" FavoriteCount="4" />
  <row Id="10496" PostTypeId="2" ParentId="10425" CreationDate="2010-10-08T14:27:02.127" Score="2" ViewCount="" Body="&lt;p&gt;Well let's suppose I had a group of new hires just out of school for a couple of weeks of intro training (which I really really wish we would do, people would get up to speed so much faster).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First source control, how we use it why we use it and where teh files are located for various projects and how to get it running. Emphasis on comments on check in. Emphasis on how often to check in and when to check into the trunk and when not to. Emphasis on not leaving source control out until you are finished. With new emplyees, it is better to review their code before they get too far down the wrong path, so they should be checking in frequently. I notice with some of our new employees we often have to get tough to get them to check int heir first stuff at all. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next coding standards. What are standards are and why you have to follow them and not just do the things you want to on your own. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then an intro to the tools we use including bug tracking, timesheets, project management software as well as programming tools. This would include how to use the debugger.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then a day going through the highlights of the code base. Let them get an understanding of how the current thing works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then a long day on getting familiar with the complicated database structure. People just out of school have often never encountered a truly complex system. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then a day on testing - TDD, Unit tests, QA testing etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then a day on requirements, those just out of college may have never dealt with complex requirements either. IMportant is a discussion of how to push back if the requirement has holes or comflicts with some other requirement. It is iimportant for them to know they are expected to push back when necessary to get the information they need. Many young people alawys accept the requirements at face value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some time on deploying. Deploying to prod is not a familar task either. Doing it poorly will cause problems. Even if they don't deploy, they ned to understand what the people who do deploy need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, and most critical, have them work as a group to create a change to the current system. Make sure they do things right in terms of standards, source control testing etc. If they get pinged from the first on things, they will understand you really mean it when you tell them to use Source Control. I would create a change requirement that had holes and make them need to do complex queries and have something that has lots of edge cases to test, etc. Doesn't have to be something you deploy, just something that you can do against a database and application code that is reserved just for learning. That way they aren't interfering with the real work and you can put the whole project back to baseline for the next group.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-08T14:27:02.127" />
  <row Id="10497" PostTypeId="2" ParentId="10495" CreationDate="2010-10-08T14:33:51.703" Score="8" ViewCount="" Body="&lt;p&gt;I don't, however, I want to.  You need to go over several things when considering contract work which you need to be mindful:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Your company is informed you are seeking work outside of it.  This is nice for your boss and his ability to plan.  To them, your job should be priority #1.&lt;/li&gt;&#xA;&lt;li&gt;You have not signed an agreement which states they own all of your intellectual property or ideas.  I have, this is why I can not do contract work.&lt;/li&gt;&#xA;&lt;li&gt;There is no inherit conflict of interests which may arise as a result of your work.  This is why 1 on this list is so important.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-08T14:33:51.703" CommentCount="3" />
  <row Id="10499" PostTypeId="2" ParentId="10425" CreationDate="2010-10-08T14:47:39.283" Score="0" ViewCount="" Body="&lt;p&gt;If I were setting up a general &quot;welcome to the real world&quot; type course, I might start with a working application and give them tasks relating to that existing code - implement a new feature, give them some bug fixes to sort out and then have groups swap around so that they tested one another's work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the starting code is relatively well written ( but perhaps with some quirks to potentially catch the unwary integrator ) and with a degree of unit test coverage, already in source control and with it's own build process, you give them a bunch of very useful experiences in working with those tools, troubleshooting other people's code and their own and developing against an existing codebase, all of which are things that you don't typically get so much experience of in college but you are likely to be doing for much of your working life.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-08T14:47:39.283" />
  <row Id="10500" PostTypeId="2" ParentId="10495" CreationDate="2010-10-08T14:52:39.603" Score="12" ViewCount="" Body="&lt;p&gt;I did that from the very beginning of my career, and I would do it again, despite all the problems I got because of it (legal &amp;amp; health).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition of legal aspects &lt;code&gt;wheaties&lt;/code&gt; warns you about, please consider the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You overall energy will be affected negatively&lt;/li&gt;&#xA;&lt;li&gt;It's easier to do it when you are single with no kids. Things will change a lot in your life when you will get a wife and more importantly, kids&lt;/li&gt;&#xA;&lt;li&gt;You will have to handle much more stress than if you were a simple employee. You will be in charge, and you will have to assume everything. Most people are unable to handle stress properly&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I suggest you to work on one project at a time (or one customer at a time), and no more than 2h a day in addition of your 8h work day. For a maximum total of 50h per week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now positive things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Working on your own projects will make you happy&lt;/li&gt;&#xA;&lt;li&gt;You will increase your knowledge a lot faster, and your actual employer will take benefit of it&lt;/li&gt;&#xA;&lt;li&gt;Starting side projects is the best and safest way to become one day, a full time freelance or better, a business owner&lt;/li&gt;&#xA;&lt;li&gt;It will helps you save more money (if you manage your money wisely) and then you will have much more power in the future to invest in your own ideas (or anything you like)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-08T14:52:39.603" />
  <row Id="10501" PostTypeId="2" ParentId="10296" CreationDate="2010-10-08T14:54:56.007" Score="2" ViewCount="" Body="&lt;p&gt;There's both legal and ethical issues, so I'll tackle them separately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In US law, there's nothing personally criminal in copyright violation, it's mostly civil law, which means that somebody gets sued, not prosecuted.  Keep solid evidence that you're being told to do what you're doing by superiors, and it's a corporate action and the company gets sued, not you.  You're almost certainly off the hook, legally.  Be aware that I'm not a lawyer, this isn't legal advice, and you shouldn't rely on what I say about the law for anything.  Moreover, other countries have different legal systems, and I know little or nothing about how this would apply in them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ethics is a stickier matter, and Aaronaught has already said useful things.  There is no widespread professional certification in programming, so you are literally on your own ethically.  What to do depends on your personal ethics, any ethical code your company actually takes seriously, how much you're respected, how much you need that particular job, etc.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-08T14:54:56.007" CommunityOwnedDate="2010-10-08T14:54:56.007" CommentCount="3" />
  <row Id="10502" PostTypeId="2" ParentId="10495" CreationDate="2010-10-08T14:55:15.037" Score="2" ViewCount="" Body="&lt;p&gt;I do, but I am a junior trying to get as much of a portfolio as possible, my 4 day a week job is limited to wordpress sites, and simple ones, so I branch out in my spare time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One day, I won't. Spare time is too precious.&lt;/p&gt;&#xA;" OwnerUserId="4499" LastActivityDate="2010-10-08T14:55:15.037" />
  <row Id="10503" PostTypeId="2" ParentId="10462" CreationDate="2010-10-08T14:56:19.240" Score="4" ViewCount="" Body="&lt;p&gt;It's not that hardware guys hate their developers. It's that they're hardware guys, so they're not really very good at designing or writing software. Most of them simply don't think enough like &quot;normal&quot; people to produce software that most people will find attractive or easy to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other part of it is that most of these tools assume that anybody using them uses them  &lt;em&gt;constantly&lt;/em&gt;; the emphasis is primarily on making them easy for an expert to &lt;em&gt;use&lt;/em&gt;, as opposed to easy for a beginner to &lt;em&gt;learn&lt;/em&gt;. Of course, it's possible to combine the two, but it takes even more of the UI design skills that (as I just pointed out above) they mostly lack. Worse, along with lacking the skills, many think in terms like: &quot;only a [insert perjorative term here] would care about changing colors.&quot;&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-08T14:56:19.240" CommentCount="1" />
  <row Id="10505" PostTypeId="2" ParentId="10493" CreationDate="2010-10-08T15:00:23.350" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://azurebootcamp.com/&quot; rel=&quot;nofollow&quot;&gt;Azure Boot Camp&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can attend one, I would highly suggest it.  They are free and a wonderful learning resource.  If you can't attend, you can &lt;a href=&quot;http://azurebootcamp.com/materials&quot; rel=&quot;nofollow&quot;&gt;download slide decks, and all materials&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-08T15:00:23.350" />
  <row Id="10506" PostTypeId="2" ParentId="10087" CreationDate="2010-10-08T15:04:27.917" Score="1" ViewCount="" Body="&lt;p&gt;The guy (we all know one) constantly talking on the phone...&lt;/p&gt;&#xA;" OwnerUserId="4863" LastActivityDate="2010-10-08T15:04:27.917" CommunityOwnedDate="2010-10-08T15:04:27.917" />
  <row Id="10507" PostTypeId="2" ParentId="10495" CreationDate="2010-10-08T15:11:59.860" Score="1" ViewCount="" Body="&lt;h2&gt;Always&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;You aren't limited to one job (unless by contract). I take every oppertunity I can manage to increase my skill set and networking connections. Even if you don't end up with work at the end of it you meet people that are helpful later on. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-08T15:11:59.860" />
  <row Id="10508" PostTypeId="2" ParentId="10495" CreationDate="2010-10-08T15:14:27.420" Score="3" ViewCount="" Body="&lt;p&gt;I've been a consultant/contract programmer for the last 30 years or so, and generally have always had more than one contract going on at a time.  I do mostly embedded hardware/software design, but also do some website stuff.  I have always been careful about avoiding conflicts of interest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I currently have one full-time contract with a startup company.  I also have five other small jobs (usually don't have this many).  The CEO at the startup knows I am working on other contracts.  That's one reason I insist on being a contractor there too instead of an employee (if they want me to come in on Saturdays, I get paid for it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the jobs I am getting paid for on an hourly basis.  Two of them I am working for equity or barter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My wife is out of town right now visiting our daughter's family so I'm currently working about 6 1/2 days a week to get caught up a little.  I'll cut back when she returns.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-08T15:14:27.420" />
  <row Id="10509" PostTypeId="2" ParentId="39" CreationDate="2010-10-08T15:17:02.693" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;The whole history of this invention has been a struggle against time.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; Charles Babbage on the Analytical Engine, 1837&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4753" LastActivityDate="2010-10-10T19:25:52.787" CommunityOwnedDate="2010-10-08T15:17:02.693" />
  <row Id="10510" PostTypeId="2" ParentId="35" CreationDate="2010-10-08T15:18:19.390" Score="13" ViewCount="" Body="&lt;p&gt;A young Programmer and his Project Manager board a train headed through the mountains on its way to Wichita. They can find no place to sit except for two seats right across the aisle from a young woman and her grandmother. After a while, it is obvious that the young woman and the young programmer are interested in each other, because they are giving each other looks. Soon the train passes into a tunnel and it is pitch black. There is a sound of a kiss followed by the sound of a slap.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the train emerges from the tunnel, the four sit there without saying a word. The grandmother is thinking to herself, “It was very brash for that young man to kiss my granddaughter, but I’m glad she slapped him.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Project manager is sitting there thinking, “I didn’t know the young tech was brave enough to kiss the girl, but I sure wish she hadn’t missed him when she slapped me!”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The young woman was sitting and thinking, “I’m glad the guy kissed me, but I wish my grandmother had not slapped him!”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The young programmer sat there with a satisfied smile on his face. He thought to himself, “Life is good. How often does a guy have the chance to kiss a beautiful girl and slap his Project manager all at the same time!”&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-10-08T15:18:19.390" CommunityOwnedDate="2010-10-08T15:18:19.390" CommentCount="1" />
  <row Id="10511" PostTypeId="1" CreationDate="2010-10-08T15:19:15.997" Score="6" ViewCount="247" Body="&lt;p&gt;What are the signs of a successful development team? What qualities does a team of developers need to possess in order to be successful?&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-09T16:45:09.710" Title="What makes a successful development team?" Tags="&lt;work-environment&gt;&lt;team&gt;" AnswerCount="5" FavoriteCount="3" />
  <row Id="10512" PostTypeId="1" CreationDate="2010-10-08T15:20:48.043" Score="8" ViewCount="246" Body="&lt;p&gt;I started, like many others, with console-based (as in terminal, not Playstation) programming. But sooner or later, one needs to touch upon GUI-based programming, whether you want to or not. This transition holds many changes in how you need to think about the frontend (and possibly also the backend).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what are the major differences when moving from console-based programming to GUI-based programming?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-10-09T08:26:03.527" LastActivityDate="2010-10-09T09:41:49.253" Title="What are the major differences when moving from console-based to GUI-based programming?" Tags="&lt;programming&gt;&lt;gui&gt;" AnswerCount="7" CommentCount="2" />
  <row Id="10513" PostTypeId="2" ParentId="10495" CreationDate="2010-10-08T15:24:06.937" Score="7" ViewCount="" Body="&lt;p&gt;I freelance from time to time, and work on personal projects that I release too. I keeps me interested in doing what I do - working for one employer for a long period of time can have detrimental effects on your motivation, skills (don't forget this is a very fast paced, rapidly evolving industry), etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can freelance or contract then do; you might find it very rewarding (as I and many do), but be prepared for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A little extra stress from time to time: Deadlines at your full-time job coenciding with deadlines on your contract work can really, really push you.&lt;/li&gt;&#xA;&lt;li&gt;Time management is crucial.&lt;/li&gt;&#xA;&lt;li&gt;Make sure your full-time employer is aware that you've taken on additional work.&lt;/li&gt;&#xA;&lt;li&gt;Avoid any work that is similar to your full-time employment (partly for enjoyment, but mostly to avoid conflict).&lt;/li&gt;&#xA;&lt;li&gt;Do not underestimate the overheads; it's not all development. Be prepared to have to phone the people hiring you, send emails - do not let this interfere with your full-time employer (harder than it sounds).&lt;/li&gt;&#xA;&lt;li&gt;Get a good contract in place and make sure you stick to it.&lt;/li&gt;&#xA;&lt;li&gt;Lastly - don't over do it on your first gig; pick something you can manage. If it goes badly you risk &lt;em&gt;turning yourself off&lt;/em&gt; from freelancing in future.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also even with all the will in the world there will be days where you just can't do it. You know those days when you get up to go to work and it hurts? Well double it if you have a freelance gig on. You've got to be committed, you need a strong work ethic and be willing to get things done, even when you'd sooner not. &lt;/p&gt;&#xA;" OwnerUserId="3890" LastActivityDate="2010-10-08T15:24:06.937" CommentCount="2" />
  <row Id="10514" PostTypeId="2" ParentId="10511" CreationDate="2010-10-08T15:24:26.333" Score="6" ViewCount="" Body="&lt;p&gt;Skill of course, but more than that, here are my criteria:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Passion for programming and knowledge,&lt;/li&gt;&#xA;&lt;li&gt;Always a sense of urgency on a project,&lt;/li&gt;&#xA;&lt;li&gt;Willingness to reach out for help,&lt;/li&gt;&#xA;&lt;li&gt;Sense of humor,&lt;/li&gt;&#xA;&lt;li&gt;Willingness to stay late and get it done (in exchange for flexible schedules),&lt;/li&gt;&#xA;&lt;li&gt;It is annoying we know, but someone who provides regular (even if informal) status updates,&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I have one other criterion that I like to see, but it is subjective, that is:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;At least 25%+ of the team should be tenured in their career.  You need to have the calm, cool, collected, around-the-block sort who can illustrate the been-there-done-that-and-would-not-choose-that-again scenarios.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-10-08T15:24:26.333" CommentCount="2" />
  <row Id="10515" PostTypeId="2" ParentId="10477" CreationDate="2010-10-08T15:27:57.073" Score="5" ViewCount="" Body="&lt;h2&gt;I have a &lt;a href=&quot;http://joshuakehn.com/blog/&quot; rel=&quot;nofollow&quot;&gt;blog&lt;/a&gt;.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;sub&gt;Disclaimer: That's my blog&lt;/sub&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I find something interesting enough I'll write about it. Sometimes they are short lists of links, sometimes I put books I plan on reading, other times articles other people have written that I found really interesting or insightful. I don't have a set &quot;format&quot; that I adhere to, probably because when I look back I find that most of the formats don't fit what I'm trying to say.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a form of &quot;public&quot; journal for me. If you want a private one then toss a &lt;code&gt;.htaccess&lt;/code&gt; file up there and &lt;em&gt;boom!&lt;/em&gt; private journal. If you were to keep a daily record you might consider omitting titles (replace with dates) and then follow through what you did, errors / issues you encountered, how you solved them, and any reflective notes after that.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-08T15:27:57.073" CommentCount="4" />
  <row Id="10516" PostTypeId="2" ParentId="10512" CreationDate="2010-10-08T15:31:23.767" Score="11" ViewCount="" Body="&lt;p&gt;For me it would be getting used to event-driven programming. It can still apply to console-based software but I find its mostly used with GUI. Once you grasp it, its a very powerful tool.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-10-08T15:31:23.767" CommentCount="2" />
  <row Id="10518" PostTypeId="2" ParentId="10512" CreationDate="2010-10-08T15:31:47.323" Score="2" ViewCount="" Body="&lt;p&gt;Consideration for the flow of control on the UI and validation of user input become very important.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-08T15:31:47.323" />
  <row Id="10519" PostTypeId="2" ParentId="10358" CreationDate="2010-10-08T15:33:14.337" Score="1" ViewCount="" Body="&lt;p&gt;I took a graduate course in formal program analysis, where we focused on operational semantics.  I did my final paper on the seL4 effort, reviewing the formal methods they used. My primary take-away in terms of practicality was that it's of marginal value. Not only do you have to write the program, you have to write the proof. Wow. &lt;em&gt;Two&lt;/em&gt; sources of bugs. Not just one. Further, there was an enormous amount of restrictions placed on the actual code. It's very hard to formally describe a physical computer, &lt;em&gt;including&lt;/em&gt; I/O.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-08T15:33:14.337" CommentCount="2" />
  <row Id="10520" PostTypeId="2" ParentId="10511" CreationDate="2010-10-08T15:34:30.687" Score="2" ViewCount="" Body="&lt;p&gt;Balance is important as well. If you have 4 technical studs that only like to design architecture the teams talent level may be thru the roof, but not a good team. You might need one of those guys/gals, a guy/gal who likes to implement functionality based on the architecture layed out, a guy/gal who is really almost a DBA, etc.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-08T15:34:30.687" />
  <row Id="10521" PostTypeId="1" CreationDate="2010-10-08T15:39:38.333" Score="9" ViewCount="297" Body="&lt;p&gt;Hey,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the spirit of building community, and because it's &lt;strong&gt;always&lt;/strong&gt; cool to see great work being pushed out and created by people, anyone up for a little &lt;em&gt;show and tell&lt;/em&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The rules are really simple, and this is supposed to be a bit of fun, so; post a link to a single piece of work (anything you've produced, designed or developed (or helped developed)) and write a little paragraph or two on what it is, what you like about it, the technology you used and perhaps one thing that you learnt from the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It could be a website, framework, open source project, game, mobile application... etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, allow me to start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm personally very proud of a tiny iPhone application I designed and developed. It's only available to UK AppStore users, and I only have a small userbase, but, I like it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The application is called Sushi Total:&#xA;&lt;a href=&quot;http://knowledgeisporridge.com/sushitotal.html&quot; rel=&quot;nofollow&quot;&gt;http://knowledgeisporridge.com/sushitotal.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's written in Objective-C. It's a very simply application that allows you to total up your bill at Yo Sushi restaurants by tapping coloured plates. If I learnt anything from making this application it's this: I believe software should be simple and uncluttered, and that producing an application with one feature is absolutely fine as long as it works really well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, who's next?&lt;/p&gt;&#xA;" OwnerUserId="3890" LastActivityDate="2011-02-11T21:40:28.447" ClosedDate="2011-02-11T22:02:19.730" Title="Show and Tell: What work are you the most proud of?" Tags="&lt;personal-projects&gt;" AnswerCount="7" CommentCount="5" />
  <row Id="10522" PostTypeId="2" ParentId="8111" CreationDate="2010-10-08T15:42:37.400" Score="3" ViewCount="" Body="&lt;p&gt;There is a misconception in the typical developer community that a Ph.D is only required if you want to &quot;teach&quot;. Its probably a hang up from the old days when most PhDs used to go into academia, but nowadays many PhDs (specially the engineering/Computer science grads) go into industry either conducting research at labs or doing challenging development work at top companies such as Intel, Oracle, Google, Microsoft, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Especially in the US, with the advent of technology transfer/research idea spin-offs from academia to startups, there is now a strong connection between research conducted at universities and start-ups...Stanford, MIT, Florida, CMU, and others are the popular examples, and no one needs reminding that Google was a research project as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing a PhD is a personal decision, but it gives you deep insights into certain areas, and enforces a level of dedication and perseverance to battle through tough odds and criticism...incidentally, skills which are also required by start-ups. I am not saying that its not possible to be successful without a Phd..just like self-learned programmers who can code well without going to college, there are many examples of programmers with only a Bsc. or MSc. who have learned advanced tech/CS concepts and have been successful at the best companies around the world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall I think this is a big topic of discussion, but a PhD nowadays is not just for teaching.. &lt;/p&gt;&#xA;" OwnerUserId="4378" LastActivityDate="2010-10-08T15:42:37.400" />
  <row Id="10523" PostTypeId="1" AcceptedAnswerId="10560" CreationDate="2010-10-08T15:46:38.187" Score="6" ViewCount="558" Body="&lt;p&gt;I've been practicing typing over the past little while, and I'm wondering if there's any tricks to getting further.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started out at ~40 wpm back when I was typing with 6 fingers. It took a little while to learn to use 10 (about a week or so where I was at the ~20 wpm range), but I improved quickly, and I'm now typing at ~65 wpm. That's pretty good, but I seem to have hit a wall there (going from ~40 to ~20 and back up to ~65 took about 3 months of on-and-off practice, but this was 5 months ago and I haven't improved at all since then in terms of accuracy or speed). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So far I've been using Klavaro exclusively. Is there anything special you have to practice in order to get into the 80-90wpm range, are there any specific tools I'd need, or does it just take longer to improve at that level? (I'm using a qwerty keyboard, and I don't want to switch to dvorak, but I think I should still be able to crack 80wpm, at least).&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2011-05-06T09:49:32.980" Title="Touch-Typing Practice Tactics" Tags="&lt;touch-typing&gt;" AnswerCount="10" CommentCount="1" FavoriteCount="1" />
  <row Id="10524" PostTypeId="2" ParentId="10477" CreationDate="2010-10-08T15:47:44.177" Score="0" ViewCount="" Body="&lt;p&gt;I use a blogs, but not exactly the way Josh K is talking about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, I have my scratch pad / generic thoughts that come to mind while going about my day. I'll fire off an email to this blog from my phone to keep that thought in storage, go back later, and look at all the small ideas I've had. Here's a snapshot of some things recently submitted (the blog is non-public):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;negative code : I took my 300 lines and reduced them to about 60, with a object decliration that actually allows 10x greater versitility.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;stuxnet: write something about the virus controlling facilities, net neutrality, the conspiracy, the bullocks&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;a href=&quot;http://www.stereopsis.com/flux/&quot; rel=&quot;nofollow&quot;&gt;http://www.stereopsis.com/flux/&lt;/a&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;a href=&quot;http://igorpartola.com/web-development/a-clever-way-to-fight-ie6&quot; rel=&quot;nofollow&quot;&gt;http://igorpartola.com/web-development/a-clever-way-to-fight-ie6&lt;/a&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;code igniter, drupal, etc..., yii, git&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I'm not worried about AI taking over the world because of shampoo bottles, later, rinse, goto 10.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;...As you can see, a lot of it sounds like inane prattle, but they all remind me of something I found interesting and I can talk about it at length in a second public blog.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I spend a lot of time writing a few articles about anything any everything. Most of them aren't released public as I don't feel they're suitable for public viewing yet (I like to write a lot of inner-monologue; reflective). But some things I do push out there. Sometimes it's technical, some times it's just neat things you can do with non-digital things, some times I talk about building a better mousetrap for any given programming problem... anything that's interesting enough for me to want to write about. I only have 3 public posts, but there's a wealth of knowledge for myself that I feel I have to edit before releasing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things I talk about in this blog:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;DIY CD wallet for your car&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Cryptographic chat system via javascript&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The off buttons on computers need to be designed like nuclear launch switches (key, cover, toggle switches, push button).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Lastly, I have a non-technical blog. It's good to keep one of these too, it keeps your perspective and communication skills sharp. I normally write things like letters to the local news paper, or politically motivated things, issues about education, social rights, etc... In this blog I've talked about&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Value attribution, lack of standardization and bias of education&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Transparency of Government data&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Letter of rage to my local news station for suggesting house-hold WIFI causes illness.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1525" LastActivityDate="2010-10-08T15:47:44.177" />
  <row Id="10526" PostTypeId="2" ParentId="10523" CreationDate="2010-10-08T15:58:41.350" Score="0" ViewCount="" Body="&lt;p&gt;Don't know about klavaro, but I've been using &lt;a href=&quot;http://www.typingweb.com/&quot; rel=&quot;nofollow&quot;&gt;Typing Web&lt;/a&gt;, which is great IMO, it keeps a record of your problem keys ; i.e. the ones you most often get wrong, and lets you train on those ones specifically.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Surely, focusing on those problem keys would help improve your general speed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, maybe you'll find some intersting tips in the answers to &lt;a href=&quot;http://programmers.stackexchange.com/questions/4319/which-tips-helped-you-learn-touch-typing&quot;&gt;this question I asked on learning touch-typing&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2115" LastEditorUserId="2115" LastEditorDisplayName="" LastEditDate="2010-10-08T16:04:38.157" LastActivityDate="2010-10-08T16:04:38.157" />
  <row Id="10530" PostTypeId="1" CreationDate="2010-10-08T16:03:28.430" Score="1" ViewCount="88" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/7859/what-good-book-shoud-i-buy-to-learn-agile-from-scratch&quot;&gt;What good book shoud I buy to learn Agile from scratch?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I want to have a good understanding of Agile development. But I don't have a lot of free time. What's &lt;strong&gt;one&lt;/strong&gt; book on the subject that will get me up to speed?&lt;/p&gt;&#xA;" OwnerUserId="1936" LastActivityDate="2010-10-08T16:20:26.290" ClosedDate="2010-10-08T17:13:06.050" Title="What's the one book I should read on Agile development?" Tags="&lt;books&gt;&lt;agile&gt;" AnswerCount="1" CommentCount="0" />
  <row Id="10531" PostTypeId="2" ParentId="10521" CreationDate="2010-10-08T16:08:29.520" Score="1" ViewCount="" Body="&lt;h3&gt;&lt;a href=&quot;http://184.106.192.162/mongo/&quot; rel=&quot;nofollow&quot; title=&quot;Links to the application&quot;&gt;Heatmaps in MongoDB / Node.js&lt;/a&gt;&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Eye tracking via mouse inference, stored in MongoDB, collected with Node.js. Major WIP for me.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;&lt;a href=&quot;http://github.com/joshkehn/Ignited-Blog&quot; rel=&quot;nofollow&quot; title=&quot;Github Repository, though I am [currently using it](http://joshuakehn.com/blog)&quot;&gt;Ignited Blog&lt;/a&gt;&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Blogging engine using CodeIgniter and MongoDB. Not all that feature rich, but simple enough to setup and extend if you wanted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been doing &lt;em&gt;lots&lt;/em&gt; of Node.js / MongoDB work in the past few months. None of it I can really talk about until it's finished though. Suffice it to say I'm confident that JavaScript will be one of the next big language players. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-08T16:08:29.520" CommentCount="1" />
  <row Id="10534" PostTypeId="2" ParentId="10154" CreationDate="2010-10-08T16:16:23.700" Score="1" ViewCount="" Body="&lt;p&gt;i'm not try and answer the original question, as Hydra is our product and you are looking for external feedback by other users, but i wanted to jump in here anyways and let you know that if you have any specific technical or conceptual questions, i'd be happy to help you out (or get someone from the Hydra team in who can).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;marc&lt;/p&gt;&#xA;" OwnerUserId="4781" LastActivityDate="2010-10-08T16:16:23.700" CommentCount="1" />
  <row Id="10535" PostTypeId="2" ParentId="10511" CreationDate="2010-10-08T16:17:09.073" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.infoq.com/interviews/amr-elssamadisy-agile-works&quot; rel=&quot;nofollow&quot;&gt;This video on InfoQ&lt;/a&gt; made a great argument : &lt;strong&gt;the shared goal of a project should be clear, and big enough that it's bigger than anyone on the team&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2115" LastActivityDate="2010-10-08T16:17:09.073" CommentCount="2" />
  <row Id="10537" PostTypeId="2" ParentId="10530" CreationDate="2010-10-08T16:20:26.290" Score="1" ViewCount="" Body="&lt;p&gt;I liked Ken Schwaber, Mike Beedle book - Agile Software Development with Scrum &lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-08T16:20:26.290" />
  <row Id="10539" PostTypeId="2" ParentId="10512" CreationDate="2010-10-08T16:21:15.090" Score="9" ViewCount="" Body="&lt;p&gt;The biggest difference is the design of the UI. A good GUI can make or break an application. Mac fans would draw attention to the beautifully designed GUI's of the average Mac OS X app and they've got a point, but this isn't a technology issue - it's a design/ethos/usability issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for technical issues, in no particular order:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;The user can do anything they want in any order at any time, unlike console program in which you're either asking for input or telling them the output. You cannot assume that they'll follow the order you hope, unless you enforce the workflow Wizard-stylee.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;As already mentioned, events play a big part in this, and you can get multiple events happen while you're servicing the last one, so you can't really construct your state based on the 'current event'. Use closures or a similar mechanism to maintain context across different events. In a console app, your FSM is usually self-contained around the 'get input, process input, update output' loop. There isn't the same kind of structure in GUI programming - the 'main' is a re-entrant event-driven thing, often a ginormous switch() statement.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You need to consider different screen sizes/resolutions and allow the GUI to resize from 800x600 up to the users' monitor maximum.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You need to consider different input strategies - mouse, keyboard, touch, etc. Some technologies come for free (Mouse-wheel scrolling), others require some integration work (Ink).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Accessibility - a GUI is much more suitable for less able users who have restricted vision, hearing, motor skills or cognitive skills. A 'ding' noise is nice and obvious compared to a cryptic error message on the console.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Internationalization - i'm assuming your console app is US/ANSI only, but when you get into GUI, you can have language/resource packages that can target other languages and regions with no change to the coding, if you prepared for it from the start. For example, no hard-coded language strings in the code - everything as resource lookups.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You have lots more options for implementation technology - web-based, various GUI kits, Flash/WPF, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Use of colour and animation. Console programs are generally monochromatic and don't animate much. Many modern GUI frameworks provide themed widgets and have move/size/show/hide animation effects, often for free.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Graphics. Console apps sometimes use ASCII art for diagrams, but a GUI app gives you full graphical ability. Lovely art can make a big difference too.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-08T16:21:15.090" CommentCount="1" />
  <row Id="10540" PostTypeId="2" ParentId="10523" CreationDate="2010-10-08T16:21:31.030" Score="1" ViewCount="" Body="&lt;p&gt;The obvious answer here is more typing. It was mentioned a few weeks ago that my boss (not a programmer) hits about 60 WPM. I was curious (as all are) about my own speed and I hit 93 WPM with no errors. It's not that I'm especially fast or able, it's practice, key mapping, and muscle memory. I'm sure if I spent all day mowing lawns I would be pretty good at it.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-08T16:21:31.030" CommentCount="2" />
  <row Id="10541" PostTypeId="2" ParentId="8111" CreationDate="2010-10-08T16:22:30.390" Score="2" ViewCount="" Body="&lt;p&gt;Advanced degrees (MBA, MSC, etc (that is, et cetera - there's no ETC degree - AFAIK :-)) are useful and sometimes even necessary if you want to be a mid-level manager at a large (Fortune 500) company.  PhD's are necessary if your goal is to teach at the university level, or work at a research institute or at the research center of a large company, or if you want a piece of paper to hang on the wall to impress people with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is just the view from the center of the country - perceptions on the coasts may be different.  YMMV.&lt;/p&gt;&#xA;" OwnerUserId="4848" LastActivityDate="2010-10-08T16:22:30.390" CommentCount="1" />
  <row Id="10542" PostTypeId="2" ParentId="10512" CreationDate="2010-10-08T16:23:34.573" Score="4" ViewCount="" Body="&lt;p&gt;I would say the multi-threading and it's implication with the UI (if you want to do non blocking UIs)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-08T16:23:34.573" />
  <row Id="10543" PostTypeId="2" ParentId="10511" CreationDate="2010-10-08T16:25:24.100" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Cross functionnal&lt;/li&gt;&#xA;&lt;li&gt;Include QA people and analysts&lt;/li&gt;&#xA;&lt;li&gt;Less than 7 persons&lt;/li&gt;&#xA;&lt;li&gt;Self managed&lt;/li&gt;&#xA;&lt;li&gt;Desire to help each others&lt;/li&gt;&#xA;&lt;li&gt;Capacity for self-evaluation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-08T16:25:24.100" />
  <row Id="10544" PostTypeId="2" ParentId="9062" CreationDate="2010-10-08T16:30:43.670" Score="33" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;95% of all programmers believe they are&#xA;  part of the best 5% of all&#xA;  programmers.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-10-08T16:30:43.670" CommunityOwnedDate="2010-10-11T05:17:24.027" CommentCount="6" />
  <row Id="10545" PostTypeId="2" ParentId="10477" CreationDate="2010-10-08T16:32:29.367" Score="3" ViewCount="" Body="&lt;p&gt;I've found a good daily entry in the dev-log (using &lt;a href=&quot;http://orgmode.org&quot; rel=&quot;nofollow&quot;&gt;Org-mode&lt;/a&gt;, of course!) includes some or all of the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The date.&lt;/li&gt;&#xA;&lt;li&gt;Reflections on work yesterday; what went well? Where did time/energy go?&lt;/li&gt;&#xA;&lt;li&gt;Today's to-do items.&lt;/li&gt;&#xA;&lt;li&gt;Design thoughts while solving problems; think through significant decisions and trade-offs.&lt;/li&gt;&#xA;&lt;li&gt;Snips of code: debugging code, snips of what worked/failed, stuff tried.&lt;/li&gt;&#xA;&lt;li&gt;Learning: links of useful content, tools, etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That looks long, but it's really not a big deal to take such notes during the day, and it can be an enormous help later when reviewing, re-designing, etc..  It also helps to have a weekly log with high-level goals for the week; you can apply that recursively to keep monthly, quarterly, yearly, etc. goals.&lt;/p&gt;&#xA;" OwnerUserId="2026" LastActivityDate="2010-10-08T16:32:29.367" CommentCount="3" />
  <row Id="10546" PostTypeId="2" ParentId="8187" CreationDate="2010-10-08T16:34:29.587" Score="0" ViewCount="" Body="&lt;p&gt;Yes, a primary key must be immutable, along with being non-null and unique.  However, I have yet to find a database that enforced the immutability of primary keys so you can probably go ahead and change their values if you really want to.&lt;/p&gt;&#xA;" OwnerUserId="4848" LastActivityDate="2010-10-08T16:34:29.587" />
  <row Id="10547" PostTypeId="1" AcceptedAnswerId="10552" CreationDate="2010-10-08T17:03:23.583" Score="13" ViewCount="545" Body="&lt;p&gt;I'm talking about particular activities, for which you can draw parallels with the &lt;em&gt;specific kind of reasonning needed when solving programming problems&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Counter examples are activities that would help in almost any situation, like :  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;take a shower or any other, somewhat passive activities, which are only helpful in triggering this sort of asynchronous problem solving our brain does    &lt;/li&gt;&#xA;&lt;li&gt;exercise, because you brain simply works better when you're fit&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT :&lt;/strong&gt;&lt;br&gt;&#xA;It seems &lt;em&gt;this question was quite misunderstood&lt;/em&gt;. I wasn't asking about what you can do when stuck on a problem but rather, what kind of activities you have in you spare time that you think help you, more or less directly, solving programing problems.&lt;/p&gt;&#xA;" OwnerUserId="2115" LastEditorUserId="2115" LastEditorDisplayName="" LastEditDate="2010-10-10T13:42:36.517" LastActivityDate="2011-01-11T17:58:46.763" CommunityOwnedDate="2011-01-11T17:58:46.763" Title="Are there non-programming related activities akin to solving programming problems ?" Tags="&lt;self-improvement&gt;&lt;personality&gt;&lt;lifestyle&gt;&lt;problem-solving&gt;" AnswerCount="17" CommentCount="6" FavoriteCount="2" />
  <row Id="10549" PostTypeId="2" ParentId="10547" CreationDate="2010-10-08T17:08:27.020" Score="3" ViewCount="" Body="&lt;p&gt;Taking a shower.  I can relax, change my focus, let my mind wander a little, and suddenly my brain makes a connection between two things I hadn't considered together before, and I know how to fix the problem.  Happens more often than you might think.  This may not be as &lt;em&gt;specific&lt;/em&gt; as you're asking for, but it can be very effective.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-08T17:08:27.020" CommunityOwnedDate="2011-01-11T17:58:46.763" CommentCount="2" />
  <row Id="10550" PostTypeId="2" ParentId="10547" CreationDate="2010-10-08T17:10:29.753" Score="10" ViewCount="" Body="&lt;p&gt;I found &lt;strong&gt;martial arts&lt;/strong&gt; VERY useful. (this is a long term investment).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it helps you manage your mind in intense stressful situations, very useful when you face a insane bug you can't find&lt;/li&gt;&#xA;&lt;li&gt;it helps you pick the best strategy, for a given problem in a given situation (you know your strength and weaknesses, and know how what to do and what to avoid&lt;/li&gt;&#xA;&lt;li&gt;it helps you feel well in your body. This is very important in any intellectual work&lt;/li&gt;&#xA;&lt;li&gt;people in your team tend to be less agressive, and are naturally more constructive and assertive&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;On the other hand, you can clear your mind by doing &lt;strong&gt;meditation&lt;/strong&gt;. Personnaly, I'm unable to do that, I just can't keep my brain from thinking about something.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-08T17:15:41.727" LastActivityDate="2010-10-08T17:15:41.727" CommunityOwnedDate="2011-01-11T17:58:46.763" CommentCount="6" />
  <row Id="10551" PostTypeId="2" ParentId="10512" CreationDate="2010-10-08T17:15:39.067" Score="2" ViewCount="" Body="&lt;p&gt;A console program tends to be refined over time while a GUI program tends to be screwed.&lt;/p&gt;&#xA;" OwnerUserId="844" LastActivityDate="2010-10-08T17:15:39.067" />
  <row Id="10552" PostTypeId="2" ParentId="10547" CreationDate="2010-10-08T17:16:27.360" Score="4" ViewCount="" Body="&lt;p&gt;Chess.  I've learned so much from going &quot;What if this piece weren't there...&quot; which leads to tactical plusses on the board.  It's amazing how a game can teach you to think and play &quot;what-if.&quot;  Sometimes it's easy to solve other people's problems because you aren't burdened by the history of the task and being able to put yourself into that place with your own problems is immensely helpful.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-08T17:16:27.360" CommunityOwnedDate="2011-01-11T17:58:46.763" CommentCount="1" />
  <row Id="10553" PostTypeId="2" ParentId="10547" CreationDate="2010-10-08T17:17:16.063" Score="10" ViewCount="" Body="&lt;p&gt;Puzzle-type games (sudoku,cross-words, logic-problems,etc.) are great for helping to exercise the problem-solving aspect of my brain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&lt;br/&gt;&#xA;&lt;a href=&quot;http://nethack.org&quot; rel=&quot;nofollow&quot;&gt;Nethack&lt;/a&gt;&lt;br/&gt;&#xA;&lt;a href=&quot;http://www.websudoku.com/&quot; rel=&quot;nofollow&quot;&gt;sudoku&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="882" LastEditorUserId="882" LastEditorDisplayName="" LastEditDate="2010-10-08T17:35:57.550" LastActivityDate="2010-10-08T17:35:57.550" CommunityOwnedDate="2011-01-11T17:58:46.763" CommentCount="7" />
  <row Id="10554" PostTypeId="2" ParentId="2148" CreationDate="2010-10-08T17:17:31.700" Score="0" ViewCount="" Body="&lt;p&gt;Having my computer crash. I've tried to ignore it, but...&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-08T17:17:31.700" />
  <row Id="10555" PostTypeId="2" ParentId="10547" CreationDate="2010-10-08T17:18:03.243" Score="7" ViewCount="" Body="&lt;p&gt;Going for a walk. Relaxes the mind, gets the blood pumping, and can let you solve things without thinking about them.&lt;/p&gt;&#xA;" OwnerUserId="2416" LastActivityDate="2010-10-08T17:18:03.243" CommunityOwnedDate="2011-01-11T17:58:46.763" CommentCount="1" />
  <row Id="10556" PostTypeId="2" ParentId="10547" CreationDate="2010-10-08T17:18:46.953" Score="0" ViewCount="" Body="&lt;p&gt;Sometimes watching a TV show, movie, listening to music or reading a book can provide that spark of an idea that flourishes into an algorithm to solve a problem.  Looking at something from different perspectives or finding the courage to try various solutions would be a couple of different results that I can get at times from these activities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;House&lt;/em&gt; would be an example of a TV show that can show various views on a problem.  While the show may be fictional and the characters aren't real, I do imagine in some cases doctors get ideas from the strangest places.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-08T17:18:46.953" CommunityOwnedDate="2011-01-11T17:58:46.763" CommentCount="1" />
  <row Id="10557" PostTypeId="2" ParentId="2879" CreationDate="2010-10-08T17:19:35.937" Score="0" ViewCount="" Body="&lt;p&gt;Ran into it quite a few years ago, and got a CDP (Certificate in Data Processing).  Aside from getting me to study a few related subjects a bit, it has had absolutely no effect on my life in any way whatsoever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, I'd forgotten about it until you mentioned it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, no, no career value.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-08T17:19:35.937" />
  <row Id="10558" PostTypeId="2" ParentId="10547" CreationDate="2010-10-08T17:20:58.230" Score="18" ViewCount="" Body="&lt;p&gt;Sleep. Eventhough I won't figure it out when I wake up, I'm just in a better frame-of-mind, have more energy and any anxiety is alleviated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developing good habits and the ability to take your mind away from a problem is a skill. Many people lose sleep because they are perseverating on a problem which sometimes can be productive if you're able to work through it, but can be counter-productive as well. &lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2010-10-09T12:17:03.063" LastActivityDate="2010-10-09T12:17:03.063" CommunityOwnedDate="2011-01-11T17:58:46.763" CommentCount="5" />
  <row Id="10559" PostTypeId="2" ParentId="9810" CreationDate="2010-10-08T17:47:01.843" Score="1" ViewCount="" Body="&lt;p&gt;Details, Details, Details.   I ask what they were doing and when, be specific.  It could be something or it could just be that the Justin Beaber video just released on youtube.  Log files are your friend in both cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also ask for dates when they noticed it.  Sometimes especially in enterprise shops users don't know when a release comes out, they just know that something takes a long time to complete and they are just now complaining about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Job Shadow.  Can't emphasize this enough.  If you are lucky enough to have users nearby, just watch them work from time time.  I often find they ignore glaring issues and never report them.  They will often only complain when they know something is new or they initially notice an issue.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-10-08T17:47:01.843" />
  <row Id="10560" PostTypeId="2" ParentId="10523" CreationDate="2010-10-08T17:58:32.787" Score="7" ViewCount="" Body="&lt;p&gt;I started with &lt;strong&gt;Typing Tutor 6&lt;/strong&gt; when I got my first computer (In 2005). I never completed any lessons of TT6 but I just learned how to place your fingers on keyboard. In the boring classes at school I used to go to the Computer Lab and used to write the famous line&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;&quot;The quick brown fox jumps over a lazy dog.&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Then after since I knew how to put the fingers on keyboard I started memorizing the Alphabets and their locations. Then I started typing without seeing on keyboard and again that famous sentence. And after that I got &lt;strong&gt;Typing Master&lt;/strong&gt; and since I had only demo version of it so I did a few exercises and then un-installed that :P &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since I love Computers from childhood so used to spend most of the time on it hence got experience soon and then I don't remember when did my fingers move from Alphabets to Numbers and other keys. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then when I came in college I started practicing a little to impress my colleagues ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Started using word games etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used an Orkut application. That too helped me. There was a guy on Orkut whose typing speed was better than me. I started challenging him on Orkut and I see myself improving.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So that was my story. Maybe you've got bored by now :P&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally what I suggest as a conclusion is that :&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;while (!pro) {&#xA;&#xA;    practice;&#xA;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Get a typing-tutor. (Any = All teaches the same thing) &lt;/li&gt;&#xA;&lt;li&gt;Practice daily. Minimum 15 minutes, Yes I said 15 minutes only. 15 minutes are not&#xA;less, The only key is that just be regular.&lt;/li&gt;&#xA;&lt;li&gt;When feeling free open notepad and start typing that line (the quick ...) :D&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I wish you'll get 80-90 WPM soon.&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-10-08T17:58:32.787" CommentCount="4" />
  <row Id="10562" PostTypeId="2" ParentId="8111" CreationDate="2010-10-08T18:08:48.013" Score="5" ViewCount="" Body="&lt;p&gt;Well, I went the PhD route (slowly and painfully). I didn't have a &quot;purpose&quot;, like how it might help me get different kinds of jobs. I did it because I wanted to know things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had been a programmer, and I thought programming was pretty much a cut-and-dried subject, &lt;em&gt;except&lt;/em&gt; that I had read Isaac Asimov's book &quot;I, Robot&quot;, and I wanted to be able to build robots, and I didn't know how. I wanted to know how to make a computer think, understand natural language, see, walk, etc. The point is there were things I didn't know how to do and wanted to find out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what's the result? I learned something about how to make computer programs think, see, etc., but I also learned that these are much deeper and broader subjects, worthy of a lifetime of inquiry. Along the way I learned a lot of theory and math, and learned that there is a great deal more to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also learned a lot that helps me develop software, which I've written a book and some articles about, and posted on stackoverflow. While I think it makes me more effective, I think it also makes me a bit of a stranger in programming teams.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So did it help? I guess so. I wouldn't want to be the person I was before it.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-10-08T18:08:48.013" CommentCount="6" />
  <row Id="10563" PostTypeId="2" ParentId="10547" CreationDate="2010-10-08T18:11:48.443" Score="6" ViewCount="" Body="&lt;p&gt;Build something from scratch.   Take a pile of wood and build a birdhouse.  It requires pre-planing (measure twice cut once), some architecture (floor, walls, roof) etc.  Plus you get a similar I build something high.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-10-08T18:11:48.443" CommunityOwnedDate="2011-01-11T17:58:46.763" />
  <row Id="10564" PostTypeId="2" ParentId="10547" CreationDate="2010-10-08T18:12:49.080" Score="1" ViewCount="" Body="&lt;p&gt;I've been long time Magic: The Gathering player. That helps as well as playing Strategy games or anything that challenges me to think. Excercise, when I have time, is good to.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-10-08T18:12:49.080" CommunityOwnedDate="2011-01-11T17:58:46.763" />
  <row Id="10565" PostTypeId="2" ParentId="8111" CreationDate="2010-10-08T18:12:53.853" Score="2" ViewCount="" Body="&lt;p&gt;It provides a huge pay increase if you work for the government.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See &lt;a href=&quot;http://www.opm.gov/qualifications/standards/group-stds/gs-prof.asp&quot; rel=&quot;nofollow&quot;&gt;GS Levels&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anecdotally I've heard it can make a 30k/year difference.&lt;/p&gt;&#xA;" OwnerUserId="4422" LastActivityDate="2010-10-08T18:12:53.853" />
  <row Id="10566" PostTypeId="2" ParentId="2856" CreationDate="2010-10-08T18:13:24.623" Score="3" ViewCount="" Body="&lt;p&gt;I have actually started with C#/ASP.NET when I got the job at my company. Later on, I started doing projects in PHP. And I can say this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as professional web development goes, PHP is a lot better than ASP.NET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, before you start flaming me, I'd like to state I'm just talking from my personal experience and I'm not trying to force it on you. Here are my reasons for believing this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PHP lets you control the output (you can produce very clean HTML)&lt;/li&gt;&#xA;&lt;li&gt;PHP does not have any precompiling issues I've run into with ASP.NET&lt;/li&gt;&#xA;&lt;li&gt;PHP has &lt;a href=&quot;http://cakephp.org/&quot; rel=&quot;nofollow&quot;&gt;tons&lt;/a&gt; &lt;a href=&quot;http://codeigniter.com/&quot; rel=&quot;nofollow&quot;&gt;of&lt;/a&gt; &lt;a href=&quot;http://framework.zend.com/&quot; rel=&quot;nofollow&quot;&gt;beautiful&lt;/a&gt; &lt;a href=&quot;http://www.symfony-project.org/&quot; rel=&quot;nofollow&quot;&gt;frameworks&lt;/a&gt; which will make your development &lt;em&gt;really&lt;/em&gt; fast&lt;/li&gt;&#xA;&lt;li&gt;PHP was &lt;em&gt;made for web&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Let me elaborate on that last point: whenever I was working with ASP.NET, I always had a feeling like there is something fundamentally wrong. The feeling I had was &quot;Wow, M$ figured they should have something in .NET which could be used for the web, so they must have hacked something in a week and created ASP.NET&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;: I'm talking about the old ASP.NET 1.1, I hear they have MVC now, so that probably makes some of my points above invalid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, using C# to create desktop applications is something incredible. After trying C#, I will most definitely never return to C/C++ unless I have a gun pointed at me. C# is a great language and .NET offers you a lot of things out of the box. I can't recommend it enough. With the creation of &lt;a href=&quot;http://www.mono-project.com/&quot; rel=&quot;nofollow&quot;&gt;Mono&lt;/a&gt;, it's even more useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said all that, I recommend you learn both C# and ASP.NET, and continue improving your PHP. The more you know, the better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Not&lt;/em&gt; learning something, even if you discard it later, will hurt you more than learning it.&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-10-08T18:13:24.623" CommentCount="5" />
  <row Id="10567" PostTypeId="1" CreationDate="2010-10-08T18:14:41.133" Score="6" ViewCount="368" Body="&lt;p&gt;Ok looking for some really subjective answers.  My company has traditionally been a Linux shop, we manufacture and sell purpose built boxes for video security.  As of recently have decided to build a embedded windows standard 7 box because it shortened our development and time to market because of all the tools available off the shelf for windows.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I am looking for are some solid answers as it relates to the security of WES7 vs Linux?  How stable is WES7, how prone is it to hack attempts, virus attacks etc. From a marketing point of view what could or should one say are the benefits of using WES7 over Linux?  Are there any?    &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What comparsions are can be said about the security of desktop windows 7 vs Embedded Windows Standard 7?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any responses would be greatly appricated.  Thanks &lt;/p&gt;&#xA;" LastActivityDate="2010-11-06T03:20:02.870" Title="Embedded Linux vs Windows Embedded Standard 7" Tags="&lt;windows&gt;&lt;linux&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="3" />
  <row Id="10569" PostTypeId="1" AcceptedAnswerId="10571" CreationDate="2010-10-08T18:20:02.417" Score="5" ViewCount="142" Body="&lt;p&gt;It seems that some rules of writing code are in direct contradiction with the rules of human writing.  For example in code it's advisable to define each piece of information in only one place and in writing for humans it's normal to repeat important points (though usually phrased differently).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What rules of writing good code contradict the rules of good writing?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="4422" LastActivityDate="2010-10-08T19:54:12.620" Title="What writing rules are different for humans and code?" Tags="&lt;coding-standards&gt;&lt;writing&gt;" AnswerCount="4" />
  <row Id="10570" PostTypeId="2" ParentId="10547" CreationDate="2010-10-08T18:26:13.197" Score="2" ViewCount="" Body="&lt;p&gt;Anything will do, as long as you're comfortable with it. Doing hobbies can help. From my experience, the following help a lot.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Volunteer in an organisation, because we can learn from how roles interact with each other like in OOP.&lt;/li&gt;&#xA;&lt;li&gt;Draw diagrams of how the program works (in very high level).&lt;/li&gt;&#xA;&lt;li&gt;Browsing other people's codes, or read source codes of open source libraries. Certain open source libraries have very good design and very inspiring.&lt;/li&gt;&#xA;&lt;li&gt;Practice a music instrument.&lt;/li&gt;&#xA;&lt;li&gt;Talk to some people who are nice to talk with. Sometimes they tell stories that may somehow related to programming problems and.. solutions pop out suddenly.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4011" LastActivityDate="2010-10-08T18:26:13.197" CommunityOwnedDate="2011-01-11T17:58:46.763" />
  <row Id="10571" PostTypeId="2" ParentId="10569" CreationDate="2010-10-08T18:30:52.377" Score="12" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;Indentation rules (most coding standards impose) really contradict&#xA;    rules of good writing,&#xA;    the way people perceive information,&#xA;    and the grammar rules.&#xA;Making things (that group naturally, but not syntactically) inside &#xA;parenthesis also contradicts how texts are usually typed.&#xA;If (you try to type text that way)&#xA;    you'll face misunderstanding even (if programmers read you)&#xA;otherwise&#xA;    your text will be easy to read,&#xA;    and your writing will be productive&#xA;!&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-10-08T18:30:52.377" CommentCount="1" />
  <row Id="10572" PostTypeId="2" ParentId="7966" CreationDate="2010-10-08T18:40:30.217" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Recognition that I am hired and paid to make decisions.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not a $7/hour food service employee.  I am here to make decisions.  If I'm told every detail of what to do, I might as well be a typist.&lt;/p&gt;&#xA;" OwnerUserId="4422" LastActivityDate="2010-10-08T18:40:30.217" CommunityOwnedDate="2011-01-26T19:57:30.693" />
  <row Id="10573" PostTypeId="2" ParentId="10087" CreationDate="2010-10-08T18:54:18.250" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Distractions&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would get so much more done if I wasn't constantly getting distracted by something or other. Sometimes it's because of another person, but more often then not its myself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, when my code is compiling I'll visit Programmers.SE and see what new questions are out. Or while looking up the syntax to do something, I'll stumble across something that is really cool and have to check it out. &lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-10-08T18:54:18.250" CommunityOwnedDate="2010-10-08T18:54:18.250" />
  <row Id="10574" PostTypeId="1" CreationDate="2010-10-08T18:55:57.060" Score="10" ViewCount="126" Body="&lt;p&gt;I'm a .NET developer, but I've never been to a .NET user group meeting or anything like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I might have the opportunity soon to start attending one, but I'm wondering. What happens at user groups? I'm not looking necessarily for info specifically about .NET ones, but they are preferred.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you get out of it &lt;em&gt;excluding&lt;/em&gt; the opportunity for networking?&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-09T15:04:23.927" Title="What happens at [platform] user groups?" Tags="&lt;.net&gt;&lt;user-group&gt;&lt;community&gt;" AnswerCount="7" FavoriteCount="1" />
  <row Id="10575" PostTypeId="2" ParentId="10574" CreationDate="2010-10-08T18:59:51.043" Score="8" ViewCount="" Body="&lt;p&gt;I attend my local .NET User Group every month.  Here are some things that go on besides networking:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Giveaways: Win books, licenses of ReSharper or CodeRush, etc.&lt;/li&gt;&#xA;&lt;li&gt;Presentations: Speakers from all over the country (and world) give talks on development best practices, new technologies, etc.&lt;/li&gt;&#xA;&lt;li&gt;Eat food:  Pizza...of course! (Sponsored by a local business)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-08T18:59:51.043" CommentCount="4" />
  <row Id="10576" PostTypeId="2" ParentId="10569" CreationDate="2010-10-08T19:15:14.203" Score="2" ViewCount="" Body="&lt;p&gt;Good code doesn't require interpretation whereas good writing often can.  Shakespeare comes to mind as an example here.  The vagueness of some writing doesn't exist in code often is another way to see this.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-08T19:15:14.203" />
  <row Id="10577" PostTypeId="2" ParentId="10574" CreationDate="2010-10-08T19:20:02.540" Score="1" ViewCount="" Body="&lt;p&gt;You can also add this to your resume: show potential employers that you are involved in the programming community outside work.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-08T19:20:02.540" />
  <row Id="10578" PostTypeId="2" ParentId="10569" CreationDate="2010-10-08T19:26:40.480" Score="2" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;capitalizationIsUsuallyAtTheBeginning&lt;/li&gt;&#xA;&lt;li&gt;underlines_are_usually_under_the_words_not_the_spaces&lt;/li&gt;&#xA;&lt;li&gt;subject.verb(noun,noun) &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-08T19:26:40.480" />
  <row Id="10579" PostTypeId="2" ParentId="10574" CreationDate="2010-10-08T19:30:22.263" Score="1" ViewCount="" Body="&lt;p&gt;This is an elaboration of the second point in Ryan Hayes' answer as I have attended a few local .Net group events:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Preview of upcoming stuff:  There can be cases where an evangelist comes to show off some functionality that is coming soon.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Demonstration of tools or practices:  I remember attending a talk where connecting Biztalk and Sharepoint was illustrated.  Using jQuery in ASP.Net MVC would be another talk I attended for a specific example.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The giveaways and food are good too. :)&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-08T19:30:22.263" />
  <row Id="10580" PostTypeId="1" CreationDate="2010-10-08T19:31:43.900" Score="7" ViewCount="336" Body="&lt;p&gt;Assume that you're a sole developer leaving a job. What kind of information/material, outside of the code itself, should you create and leave behind for your replacement?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An obvious answer is &quot;whatever you would want at a new job&quot; for sure, but it's been a while since I started a new job, and I forget what the most important things that I needed were back then.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm thinking:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;accounts/passwords&lt;/li&gt;&#xA;&lt;li&gt;location of equpiment&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What else?&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-10-08T20:53:34.190" LastActivityDate="2011-02-01T02:06:45.513" Title="What should you leave behind for your successors?" Tags="&lt;career&gt;&lt;new-job&gt;" AnswerCount="11" CommentCount="3" FavoriteCount="3" />
  <row Id="10581" PostTypeId="1" AcceptedAnswerId="10587" CreationDate="2010-10-08T19:36:22.330" Score="10" ViewCount="171" Body="&lt;p&gt;Should items like Foreign Keys, Constraints, Default Values, etc be handled by the Database management system (in this case, MS Sql 2005) or the Application? I have heard opinions from both sides and I'm honestly not sure which way to go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: I should also mention that there is a chance we will be spanning multiple servers/databases and I don't think Foreign Keys can be used across linked servers. In addition to that, there are some circular references in the database design which prevents me from using &lt;code&gt;ON UPDATE CASCADE&lt;/code&gt; on everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The database is MS SQL 2005 (possibly 2008) and all interactions with it should go through the application.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2010-10-21T19:56:02.827" LastActivityDate="2010-11-06T23:10:34.403" Title="Should my RDBMS or my Application handle database Referential Integrity?" Tags="&lt;holy-war&gt;&lt;database-development&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="10582" PostTypeId="2" ParentId="10580" CreationDate="2010-10-08T19:37:18.910" Score="6" ViewCount="" Body="&lt;p&gt;Documentation of your programs... Their purpose, location of source files for future development, passwords, etc.&lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-10-08T19:37:18.910" />
  <row Id="10583" PostTypeId="2" ParentId="10580" CreationDate="2010-10-08T19:38:24.883" Score="13" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Accounts &amp;amp; Passwords&lt;/li&gt;&#xA;&lt;li&gt;Server information&lt;/li&gt;&#xA;&lt;li&gt;Good code&lt;/li&gt;&#xA;&lt;li&gt;Documentation&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Database diagrams &amp;amp; explanations are amazing&lt;/li&gt;&#xA;&lt;li&gt;List of oddities in the code&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Procedures&lt;/li&gt;&#xA;&lt;li&gt;Explanation of manual processes, or occasional, non-obvious, work&lt;/li&gt;&#xA;&lt;li&gt;List of programs they used or found helpful&lt;/li&gt;&#xA;&lt;li&gt;Contact information ;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2416" LastActivityDate="2010-10-08T19:38:24.883" CommentCount="1" />
  <row Id="10584" PostTypeId="2" ParentId="2148" CreationDate="2010-10-08T19:38:31.370" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Pets&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just can't say no to my dog's face on my knee with a sock in his mouth.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-08T19:38:31.370" />
  <row Id="10585" PostTypeId="2" ParentId="10574" CreationDate="2010-10-08T19:42:22.107" Score="6" ViewCount="" Body="&lt;p&gt;In addition to the items listed by @Ryan, sometimes employers make a quick &quot;I am hiring; please see me after the meeting if you're looking for work&quot; announcement. Or someone talks about the conference they are having in a month or two, maybe asks for volunteers with some project related to the community. It's a great way to stay connected.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-08T19:42:22.107" CommentCount="1" />
  <row Id="10586" PostTypeId="2" ParentId="10580" CreationDate="2010-10-08T19:42:57.430" Score="1" ViewCount="" Body="&lt;p&gt;We'd all like a complete data flow diagram of the system with a list of functional requirements. More than likely you never got that when you wrote the system in the first place ! Like most places the best documentation is probably the code itself so what I would love most is well documented code. Lines and lines of comments in the code explaining what you are trying to do both technically and functionally.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-08T19:42:57.430" />
  <row Id="10587" PostTypeId="2" ParentId="10581" CreationDate="2010-10-08T19:46:06.970" Score="5" ViewCount="" Body="&lt;p&gt;If there's any chance that the DB will be modified outside your application, you want the constraints in the database.  If the DB is and always will be nothing more than the back end of the application, you can leave them out, although I'd document them just in case and probably just keep them in if the performance hit wasn't too bad.  (Peoplesoft software works this way - the constraints are in the software, and (I'm not making this up) it runs everything as SYS on Oracle.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You want things like that to be monitored by the application, so it can react intelligently and not at best parrot back a database error message to the user.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, yes, this is double coverage, but without it you're probably going to get preventable data corruption or a bad user interface.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-08T19:46:06.970" />
  <row Id="10588" PostTypeId="2" ParentId="2148" CreationDate="2010-10-08T19:46:51.810" Score="0" ViewCount="" Body="&lt;p&gt;Having to go on yet another walk-about hunting down incomplete acceptance criteria.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-10-08T19:46:51.810" />
  <row Id="10589" PostTypeId="2" ParentId="2148" CreationDate="2010-10-08T19:47:20.120" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Wife&lt;/strong&gt;... love her to death through.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Twitter&lt;/strong&gt;... have to keep up with updates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;StackExchange&lt;/strong&gt;... very addictive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Smudges on glasses&lt;/strong&gt;... &lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-10-08T19:47:20.120" CommentCount="1" />
  <row Id="10590" PostTypeId="2" ParentId="10581" CreationDate="2010-10-08T19:48:39.683" Score="1" ViewCount="" Body="&lt;p&gt;If it's important, let the database handle it.  That way, you don't have to worry about somebody accessing the database outside your application and changing or entering some inconsistent or duplicate data.  Unless it's some high-level application-specific stuff (like &quot;only users in department X having an access class of ZZZ should be allowed to belong to group 999&quot;), but that's not usually referred to as &quot;referential&quot; integrity.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-10-08T19:48:39.683" />
  <row Id="10591" PostTypeId="2" ParentId="10547" CreationDate="2010-10-08T19:49:02.537" Score="1" ViewCount="" Body="&lt;p&gt;Violent video games.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nothing puts my mind back in frame quite like killing hoards of zombies in my quest to forget the hell that's happened earlier in the day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also... in line with the &quot;Martial Arts&quot;/meditation suggestion: exercise... or outside... in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fresh air and blood flowing through your veins are very refreshing. Let the idea's percolate while actually relaxing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not quite as fun as killing zombies or a good Counter-Strike session... but close. &lt;/p&gt;&#xA;" OwnerUserId="2536" LastActivityDate="2010-10-08T19:49:02.537" CommunityOwnedDate="2011-01-11T17:58:46.763" />
  <row Id="10592" PostTypeId="2" ParentId="10547" CreationDate="2010-10-08T19:51:16.630" Score="1" ViewCount="" Body="&lt;p&gt;You already said exercise. I try to get out and run/jog 20-30 minutes on my lunch hour. You can't imagine how much better the afternoons go regardless of the morning.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-10-08T19:51:16.630" CommunityOwnedDate="2011-01-11T17:58:46.763" CommentCount="1" />
  <row Id="10593" PostTypeId="2" ParentId="10569" CreationDate="2010-10-08T19:54:12.620" Score="0" ViewCount="" Body="&lt;p&gt;Good poetry in writing lets the reader appreciate music of sounds that resonate together.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good poetry in code (I wouldn't be surprised if someone came with an example from IOCCC) lets the reader only appreciate the performance (and the compiler wouldn't notice at all).&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-08T19:54:12.620" />
  <row Id="10594" PostTypeId="2" ParentId="10581" CreationDate="2010-10-08T19:54:53.120" Score="3" ViewCount="" Body="&lt;p&gt;Ideally, both.  You shouldn't &lt;em&gt;not&lt;/em&gt; have the DB handle it, but then again, if the app comes up with data that the DB will reject, that's a runtime error, so the app should have at least some code dedicated to preserving referential integrity.  Also, setting up the right constraints in SQL in the DB is much simpler than setting up code for it client-side, so doing it on the DB greatly reduces the amount of work you need to do.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-08T19:54:53.120" />
  <row Id="10595" PostTypeId="2" ParentId="10580" CreationDate="2010-10-08T19:55:28.020" Score="3" ViewCount="" Body="&lt;p&gt;My email address, or perhaps even phone number.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience it's difficult to get every detail written down, so the best thing is to be available (to a certain degree) if your successors need more information.&lt;/p&gt;&#xA;" OwnerUserId="1020" LastEditorUserId="1020" LastEditorDisplayName="" LastEditDate="2010-10-08T20:03:57.837" LastActivityDate="2010-10-08T20:03:57.837" CommentCount="3" />
  <row Id="10596" PostTypeId="2" ParentId="10523" CreationDate="2010-10-08T19:58:40.910" Score="0" ViewCount="" Body="&lt;p&gt;A &lt;a href=&quot;http://www.daskeyboard.com/model-s-ultimate/&quot; rel=&quot;nofollow&quot;&gt;Das Keyboard Ultimate&lt;/a&gt; may help.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-08T19:58:40.910" />
  <row Id="10597" PostTypeId="2" ParentId="10580" CreationDate="2010-10-08T20:00:00.427" Score="3" ViewCount="" Body="&lt;p&gt;More than just documentation, I'd like to know why certain decisions were made when they were made.  We're using SWIG currently on a project and one of the other developers wanted to know why we just didn't use Boost::Python.  The simple answer was that the customer did not allow the use of Boost at the time.  Now is a different story.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Such things will help them not only in understanding the project but also what limitations/constraints/challenges your implementation overcame.  It'll give them a starting point for future maintenance and feature augmentation.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-08T20:00:00.427" />
  <row Id="10598" PostTypeId="1" AcceptedAnswerId="10601" CreationDate="2010-10-08T20:14:17.757" Score="-2" ViewCount="158" Body="&lt;p&gt;I don't get why people keep asking about the cheat sheets?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's the use of a cheat sheet?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you guys revise the learned stuff from the cheat sheets or what? Because in my opinion they are of no use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt; : I saw people here and on Stack overflow asking the cheat sheets for a particular language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/search?q=cheat+sheets&quot;&gt;Link 1&lt;/a&gt;, &#xA;&lt;a href=&quot;http://programmers.stackexchange.com/search?q=cheat+sheet&quot;&gt;Link 2&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just wanna know what's their use? Are they used to revise what you've learned before an exam/interview etc. ?&lt;/p&gt;&#xA;" OwnerUserId="1373" LastEditorUserId="1373" LastEditorDisplayName="" LastEditDate="2010-10-08T20:22:51.650" LastActivityDate="2010-10-08T20:26:05.250" Title="Why do you want a cheat sheet?" Tags="&lt;cheat-sheet&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="10599" PostTypeId="2" ParentId="10598" CreationDate="2010-10-08T20:17:42.333" Score="3" ViewCount="" Body="&lt;p&gt;I use cheat sheets to memorize keyboard shortcuts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keyboard shortcuts make me 200%+ more productive once I learn them.  Cheat sheets help me, in the beginning of learning new things, to learn the shortcuts for all the things I do most often.  Once I commit them to memory I don't need them anymore...until the next version comes along of whatever it is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's like flash cards when learning something.  Nobody uses flash cards for taking the test, because it would take too long to flip through the flash cards.  They get their use by helping you practice before the test and commit things to memory.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-08T20:17:42.333" />
  <row Id="10600" PostTypeId="2" ParentId="10580" CreationDate="2010-10-08T20:23:48.043" Score="1" ViewCount="" Body="&lt;p&gt;If it is a desktop program, how to build the entire system from scratch (may be several separate programs), how to create a package for distribution (what dependencies it has, e.g. versions of .NET), and how to deploy it to servers for download if that is applicable, or burn it to a CD or DVD.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it is a web-based program, FTP and (if applicable) SSH access to the server, and what tools are used to locally create and test the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it is an embedded system, complete instructions on building the binary image, what tools are used, how to download and flash the code into the product, how to set up the filesystem on the device, if any.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-08T20:23:48.043" />
  <row Id="10601" PostTypeId="2" ParentId="10598" CreationDate="2010-10-08T20:24:14.393" Score="7" ViewCount="" Body="&lt;p&gt;Assuming you mean stuff like &lt;a href=&quot;http://devcheatsheet.com/&quot; rel=&quot;nofollow&quot;&gt;http://devcheatsheet.com/&lt;/a&gt;, I use them to look stuff up quickly when I'm just drawing a blank on syntax or shortcuts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nobody can remember everything (and especially when it comes to things they use infrequently), so cheat sheets can be a useful reference. I can go to Google, punch in keywords, and wade through links/blog posts, or I can just look stuff up in a cheat sheet. The latter is a lot faster.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-08T20:24:14.393" CommentCount="2" />
  <row Id="10602" PostTypeId="2" ParentId="10598" CreationDate="2010-10-08T20:26:05.250" Score="0" ViewCount="" Body="&lt;p&gt;Cheat sheets as far as code snippets are concerned are useful because quite honestly, I don't feel like memorizing the same string manipulation function across 3 different languages. If I used 1 language all the time, it might be possible keep the important functions in mind all the time. &lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-10-08T20:26:05.250" />
  <row Id="10603" PostTypeId="2" ParentId="10580" CreationDate="2010-10-08T20:28:41.857" Score="8" ViewCount="" Body="&lt;h3&gt;A strong cup of coffee and an apology note.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Is what I wish &lt;em&gt;I&lt;/em&gt; was left. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Documentation. How hard is it to write a few comments? Build notes, deployment notes, moving the system notes. What to do when you restart and everything is gone. &lt;/li&gt;&#xA;&lt;li&gt;Papers. Write up &lt;em&gt;why&lt;/em&gt; it's being done this way so I don't have to wonder why you aren't doing it another way. How does the backup system work, how does the server respond to loads, testing, test cases, use cases.&lt;/li&gt;&#xA;&lt;li&gt;Notes. &lt;em&gt;&quot;When using the database, don't ever say &lt;code&gt;SELECT * FROM clients&lt;/code&gt;. We aren't sure why but it dumps the database&quot;&lt;/em&gt;. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-08T20:28:41.857" CommentCount="2" />
  <row Id="10604" PostTypeId="2" ParentId="10580" CreationDate="2010-10-08T20:35:38.393" Score="1" ViewCount="" Body="&lt;p&gt;The #1 rule for documentation is not &lt;strong&gt;what&lt;/strong&gt; it does but &lt;strong&gt;why&lt;/strong&gt;.  What's the backstory on the programs that run, and what they do?&lt;/p&gt;&#xA;" OwnerUserId="4887" LastEditorUserId="4887" LastEditorDisplayName="" LastEditDate="2010-10-09T03:22:12.053" LastActivityDate="2010-10-09T03:22:12.053" />
  <row Id="10605" PostTypeId="1" AcceptedAnswerId="10611" CreationDate="2010-10-08T20:35:41.163" Score="4" ViewCount="177" Body="&lt;p&gt;As programmers we can solve very complex problems, but then, when we have to design a user interface we tend to fail on making them easy to use. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Do you know what the problem is? Do we&#xA;  have any redemption chance?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You know that in small companies they can’t afford having designers and UX experts, so programmers have to do almost everything in the software.&#xA;It would be nice if you could provide some tips and success stories.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/3kYmJ.png&quot; alt=&quot;Simplicity&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="3730" LastEditorUserId="3730" LastEditorDisplayName="" LastEditDate="2010-10-08T21:43:26.503" LastActivityDate="2010-10-08T21:43:26.503" Title="How to improve programmer's skills in designing good UX?" Tags="&lt;design&gt;&lt;ux&gt;" AnswerCount="3" CommentCount="5" FavoriteCount="4" />
  <row Id="10606" PostTypeId="2" ParentId="9948" CreationDate="2010-10-08T20:41:14.757" Score="-2" ViewCount="" Body="&lt;p&gt;Is your reputation on StackOverflow going to help the company make money?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is your reputation on StackOverflow something that will let the manager get projects done faster?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are exactly two things that programming managers care about, and that's making the company money, and by extension, getting stuff done faster.  If your &quot;skill&quot; doesn't specifically support that, then it's not a skill, and nobody cares.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-08T20:41:14.757" CommentCount="1" />
  <row Id="10607" PostTypeId="2" ParentId="10574" CreationDate="2010-10-08T20:44:53.090" Score="1" ViewCount="" Body="&lt;p&gt;What happens at a user group meeting is whatever the user group organizers organize.  There is no rule.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go and find out.  You have nothing to lose.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-08T20:44:53.090" CommentCount="6" />
  <row Id="10608" PostTypeId="2" ParentId="10605" CreationDate="2010-10-08T20:49:24.987" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;It's biological.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;UI and all other design related tasks involve the &lt;strong&gt;right brain&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Programming task involve the &lt;strong&gt;left brain&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;They have different purposes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's very rare to be good in both. At least at the same time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://www.ideachampions.com/weblogs/left-brain-right-brain.jpg&quot; alt=&quot;brain&quot;&gt;&#xA;&lt;img src=&quot;http://the-unity-project.com/graphics/left-right-brain.gif&quot; alt=&quot;brain2&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-08T21:34:11.547" LastActivityDate="2010-10-08T21:34:11.547" />
  <row Id="10609" PostTypeId="1" AcceptedAnswerId="10617" CreationDate="2010-10-08T20:51:07.220" Score="3" ViewCount="145" Body="&lt;p&gt;I'm not sure whether I should shell out the cash and go to a conference. There's the cost of hotel, the cost of transportation, the time it takes to travel, and of course the price of the conference itself. I know some developers with families use it as a family getaway and take the wife and kids to a new city, but that's not the case for me. It's really all work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So why do people bother with all this trouble just to attend a conference? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Part of it is that I don't like the price of this conference I want to attend, so maybe others could share. What do you think is a fair price for a conference: how much, which conference, and do you think it was really worth it?&lt;/p&gt;&#xA;" OwnerUserId="3388" LastActivityDate="2010-10-08T21:45:37.403" Title="Do you bother going to conferences" Tags="&lt;career&gt;&lt;recommendations&gt;&lt;conferences&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="2" />
  <row Id="10610" PostTypeId="2" ParentId="10605" CreationDate="2010-10-08T20:58:18.120" Score="3" ViewCount="" Body="&lt;p&gt;I suppose you could argue about how programmers and designers have different mindsets or different personalities, or argue about left-brain versus right-brain and creative versus logical, but really, there are three fundamental issues:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Programmers' work is their software.  They care about it; they devote their attention to it; they can get excited about it.  Users' work is &lt;i&gt;something else&lt;/i&gt;; the software is only a tool to facilitate doing something else, and they want to spend as little time as possible paying attention to it so that they can instead focus about what they &lt;i&gt;do&lt;/i&gt; care about.  As long as programmers misunderstand this, they're going to make the wrong tradeoffs in UI design.  (For more on this topic, see &lt;a href=&quot;http://www.joelonsoftware.com/uibook/fog0000000249.html&quot; rel=&quot;nofollow&quot;&gt;Joel Spolsky's &quot;Controlling Your Environment Makes You Happy&quot;&lt;/a&gt; or &lt;a href=&quot;http://msdn.microsoft.com/en-us/magazine/ff646970.aspx&quot; rel=&quot;nofollow&quot;&gt;David S. Platt's &quot;Fundamental Laws&quot;&lt;/a&gt;.)&lt;/li&gt;&#xA;&lt;li&gt;Programmers know their software intimately.  They're comfortable with its detail and its complexity; they understand why it acts the way it does because they have a complete mental model of it.  Users don't have the occasion (or the interest; see point #1) to learn every detail, and it's impossible for them to have a complete mental model because they don't have access to or understand the source code.  (For more on the importance of mental models, you could perhaps read Donand Norman's &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0465067107&quot; rel=&quot;nofollow&quot;&gt;&lt;i&gt;The Design of Everyday Things&lt;/i&gt;&lt;/a&gt;; although it's not specific to computers, it's a good book on interface design.)&lt;/li&gt;&#xA;&lt;li&gt;Programmers' tradeoffs are different than users.  A programmer can easily decide to leave a feature overly complex or only semi-automated or otherwise less than usable because for the programmer it's easier to deal with the lack of usability than it is to code it properly.  The user doesn't care (much) how much effort it takes the programmer to code it properly and would rather have it fully usable.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The third problem can be solved by having enough discipline to not take the easy way out.  I'm not sure that the first two problems are solvable; the closer you are to your work, the harder it is to see it the way an outsider does.  That's why usability testing - even simple, informal stuff like grabbing someone in the hall and sitting them in front of your app - is so important.&lt;/p&gt;&#xA;" OwnerUserId="3223" LastActivityDate="2010-10-08T20:58:18.120" />
  <row Id="10611" PostTypeId="2" ParentId="10605" CreationDate="2010-10-08T21:05:04.557" Score="2" ViewCount="" Body="&lt;p&gt;I have encountered this problem many times in my career - the trick is to first be aware that it is a problem, and acknowledge it. Once you've done that, it's easier to stop making overly complex interfaces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The user interface is also a part of software engineering, but perhaps for many software engineers not as much interesting. However, there are many interesting challenges related to this, and they can probably be as interesting as more technical challenges, in my experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usability, user experience design (UX), human-computer interaction (HCI) - it's not magical, and it &lt;em&gt;is&lt;/em&gt; a part of the software development process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My tip is to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;acknowledge your limitations&lt;/li&gt;&#xA;&lt;li&gt;ask and listen to people who claim to know about these things&lt;/li&gt;&#xA;&lt;li&gt;when unsure, google it and look for authorative answers&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;By following these simple principles over the years, I have actually accumulated useful information on how to build user interfaces, how people interact with software, and how they think when they're using it. I am by no means an expert, but I probably know a &lt;em&gt;little&lt;/em&gt; bit more than your average programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Tl;dr:&lt;/strong&gt; KISS&lt;/p&gt;&#xA;" OwnerUserId="1020" LastActivityDate="2010-10-08T21:05:04.557" />
  <row Id="10612" PostTypeId="2" ParentId="10609" CreationDate="2010-10-08T21:05:09.150" Score="5" ViewCount="" Body="&lt;p&gt;Conferences, trade shows, networking, etc are very valuable:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;you meet people&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;All the best opportunities I got was because I met people in events like that&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course the events themselves are very interesting, but you can get the same information at home by browsing the internet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It more about people and feeling the market.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-08T21:05:09.150" CommentCount="2" />
  <row Id="10613" PostTypeId="2" ParentId="8954" CreationDate="2010-10-08T21:08:22.677" Score="1" ViewCount="" Body="&lt;p&gt;In our company we use Timelog for project management, time tracking, invoicing and tracking support calls from our customers. For bug tracking we use Trac which is integrated with our source code control system (Subversion).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Timelog --&gt; &lt;code&gt;http://www.timelog.com/&lt;/code&gt;&#xA;TimeLog Project is a user friendly and web based system, where time tracking is the outset for CRM, project and staff management, and invoicing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Trac --&gt; &lt;code&gt;http://trac.edgewall.org/&lt;/code&gt;&#xA;Trac is an enhanced wiki and issue tracking system for software development projects. It provides an interface to  Subversion (or other version control systems).&lt;/p&gt;&#xA;" OwnerUserId="529" LastActivityDate="2010-10-08T21:08:22.677" />
  <row Id="10614" PostTypeId="1" AcceptedAnswerId="10646" CreationDate="2010-10-08T21:13:02.163" Score="5" ViewCount="159" Body="&lt;p&gt;I see this problem quite often.  I like a certain value proposition of an open-source project. I try out the basic tutorials. Great. It works! But if I move on to more complex problems, I spend hours of doing research, debugging, frustrations, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your strategies to keep motivation in open-source going?  What is the reward of open-source after success of basic tutorials?  What &quot;success&quot; of open-source did you experience?&lt;/p&gt;&#xA;" OwnerUserId="4723" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-10-08T23:50:51.813" LastActivityDate="2010-10-09T01:11:06.250" Title="How to learn from open source" Tags="&lt;open-source&gt;&lt;motivation&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="1" />
  <row Id="10616" PostTypeId="2" ParentId="10609" CreationDate="2010-10-08T21:14:42.690" Score="3" ViewCount="" Body="&lt;p&gt;I've been to a few conferences as a presenter, and a few others as a normal participant, and I've always enjoyed it and found it worth the time and money.  Pierre's right about meeting people; being able to rub elbows with others in the industry and share ideas in a more personal setting than the usual blogs and emails can allow for once or twice a year is an invaluable opportunity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And aside from the networking, there tends to be really cool presentations where you can learn a lot.  Some of the cooler debugging tricks in my arsenal come from a session I attended about advanced debugging techniques at a conference last year; the presenter mentioned a few tips and tricks that, for whatever reason, I've never seen posted online.  That alone was worth going to the conference for, for the productivity boost.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-08T21:14:42.690" />
  <row Id="10617" PostTypeId="2" ParentId="10609" CreationDate="2010-10-08T21:15:43.703" Score="3" ViewCount="" Body="&lt;p&gt;Try to get your employer to pay for the costs related to going to a conference - it can be &lt;strong&gt;very&lt;/strong&gt; costly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I bother going to conferences, but only if I know it's worth it. There are conferences, and then there are conferences... Some seem to be invented for companies to push their products, others are stacked with fascinating talks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I go to a conference, it's not to meet people. I'm not really a people person, and I need too much time to warm up for conferences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Conferences are great, in my experience:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;they inspire me to seek out new technologies&lt;/li&gt;&#xA;&lt;li&gt;I get a paid break from work, but it's still work related&lt;/li&gt;&#xA;&lt;li&gt;I spend time with my coworkers, getting to know them better and discussing technologies with the&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Of course, if the talks at the conference are boring, the whole experience feels like a waste of time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best conference I've ever been to is &lt;a href=&quot;http://jz10.java.no/&quot; rel=&quot;nofollow&quot;&gt;JavaZone&lt;/a&gt;: it's a yearly conference with two days filled with talks for people of all levels, and it has always been worth taking the time off to attend it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't see the value in conferences, it's probably because you haven't been to any good ones.&lt;/p&gt;&#xA;" OwnerUserId="1020" LastActivityDate="2010-10-08T21:15:43.703" />
  <row Id="10619" PostTypeId="2" ParentId="10574" CreationDate="2010-10-08T21:23:08.483" Score="0" ViewCount="" Body="&lt;p&gt;one good part of users groups are the mailing-lists. here, you briefly get informed about trends, news, frameworks, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;drawback of user-groups is the &quot;club&quot; behavior in some cases. if you are new or outsider, the hierarchy in some user groups can be disturbing. also, the hidden recruiting strategies of companies may be disturbing for technical subject matter.&lt;/p&gt;&#xA;" OwnerUserId="4723" LastActivityDate="2010-10-08T21:23:08.483" />
  <row Id="10620" PostTypeId="2" ParentId="9948" CreationDate="2010-10-08T21:24:21.573" Score="2" ViewCount="" Body="&lt;p&gt;Dunno about 30K+. I only got 8.6K but I'm overall 2nd place for the language I got hired for, which actually was one of the things that got me my current job. I put it in my CV in the section &quot;participation in relevant online communities&quot;.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-10-08T21:24:21.573" CommentCount="1" />
  <row Id="10625" PostTypeId="2" ParentId="10208" CreationDate="2010-10-08T21:35:59.577" Score="1" ViewCount="" Body="&lt;p&gt;It doesn't matter what your colleagues say.  It doesn't matter what we say.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If &lt;strong&gt;you&lt;/strong&gt; don't find any value in asking what the candidate's greatest weakness is, then don't ask it.  Please don't feel like the Interview Police will come beating down your door if you don't ask at least three of the following five questions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Why do you want to work here?&lt;/li&gt;&#xA;&lt;li&gt;What's your greatest strength/weakness?&lt;/li&gt;&#xA;&lt;li&gt;Where do you want to be in five years?&lt;/li&gt;&#xA;&lt;li&gt;What kind of plant would you be?&lt;/li&gt;&#xA;&lt;li&gt;Tell me about a project that didn't go well.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Ask the questions that let &lt;strong&gt;you&lt;/strong&gt; assess the value of the candidate as it applies to &lt;strong&gt;you&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-08T21:35:59.577" CommentCount="4" />
  <row Id="10628" PostTypeId="2" ParentId="10609" CreationDate="2010-10-08T21:45:37.403" Score="2" ViewCount="" Body="&lt;p&gt;Instead of paying to get to a conference, you may become qualified enough, and get an invitation from its organizers to become a speaker there.  I guess, speakers are not charged, and sometimes have transportation costs reimbursed.  And of course, as a free bonus, you can attend other talks there, which was your original goal.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-10-08T21:45:37.403" CommentCount="2" />
  <row Id="10629" PostTypeId="2" ParentId="10512" CreationDate="2010-10-08T21:47:36.853" Score="1" ViewCount="" Body="&lt;p&gt;Usually I think of console-based program as the Model, whereas GUI-based program is the View/Controller that embeds the Model.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-08T21:47:36.853" />
  <row Id="10630" PostTypeId="2" ParentId="279" CreationDate="2010-10-08T21:48:35.667" Score="1" ViewCount="" Body="&lt;p&gt;Generic containers return reference to struct items. With that I can write something like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;struct A {...}&#xA;...&#xA;var list = new List&amp;lt;A&amp;gt;(...);&#xA;...&#xA;list[1].Counter++;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Currently, I have to do multiple copies:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var local = list[1];&#xA;local.Counter++;&#xA;list[i] = local;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="844" LastActivityDate="2010-10-08T21:48:35.667" CommunityOwnedDate="2011-05-10T09:21:11.253" CommentCount="1" />
  <row Id="10631" PostTypeId="2" ParentId="2319" CreationDate="2010-10-08T21:54:43.007" Score="4" ViewCount="" Body="&lt;p&gt;You talk to people.  You work your personal contacts.  You go visit your local chamber of commerce and business networking groups and user groups and you talk to humans.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You know what portion of jobs get filled through job boards?  7.5% according to one study (See my post here at &lt;a href=&quot;http://techworklove.com/2009/06/two_key_numbers_for_job_seekers_75_and_111/&quot; rel=&quot;nofollow&quot;&gt;http://techworklove.com/2009/06/two_key_numbers_for_job_seekers_75_and_111/&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As geeks we want it to be the case that everything is available to us through our fingers and computer screens, but the hard numbers show that it is just not the best way to find a job.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-08T21:54:43.007" CommunityOwnedDate="2010-10-08T21:54:43.007" />
  <row Id="10632" PostTypeId="2" ParentId="10521" CreationDate="2010-10-08T22:00:52.040" Score="8" ViewCount="" Body="&lt;p&gt;&lt;code&gt;ack&lt;/code&gt;, a replacement for &lt;code&gt;grep&lt;/code&gt; for programmers: &lt;a href=&quot;http://betterthangrep.com/&quot; rel=&quot;nofollow&quot;&gt;http://betterthangrep.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4887" LastEditorUserId="4887" LastEditorDisplayName="" LastEditDate="2010-10-09T01:47:25.693" LastActivityDate="2010-10-09T01:47:25.693" CommentCount="3" />
  <row Id="10633" PostTypeId="2" ParentId="6656" CreationDate="2010-10-08T22:04:42.300" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is there any way I can tell my teacher to try and give better assignments in a more C++ style environment without possibly raising his ire?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;What do you hope to achieve from doing this?  Do you expect him to say &quot;Whoa, you're right, SoulBeaver, I don't know what I'm doing, I'll change my curriculum?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your actual goal here if &quot;How do I make my prof be better?&quot; is not a realistic one.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-08T22:04:42.300" CommentCount="1" />
  <row Id="10634" PostTypeId="2" ParentId="9948" CreationDate="2010-10-08T22:06:31.957" Score="5" ViewCount="" Body="&lt;p&gt;Your reputation doesn't make you a guru.  It just means you spend a lot of time here and tend to post helpful stuff.  Particularly in the early days of SO, you could get a massive reputation spike just for posting a funny cartoon or joke.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your reputation could come with a negative: What if the employer decides that a high reputation means you'll spend all day posting instead of working?&lt;/p&gt;&#xA;" OwnerUserId="3963" LastActivityDate="2010-10-08T22:06:31.957" CommentCount="1" />
  <row Id="10635" PostTypeId="2" ParentId="3892" CreationDate="2010-10-08T22:19:02.533" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Would you give honest feedback&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;By &quot;honest feedback&quot;, I assume you mean something like &quot;I think that's a stupid question.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do think this would achieve?  Would this do anything more useful than show how much smarter you think you are than the interviewer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your task in an interview is a simple one: &lt;strong&gt;Get a job offer or move closer to it.&lt;/strong&gt;  Does telling the interviewer that you think his question is stupid help you in that goal?  No?  Then shut up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A secondary goal is also &quot;Impress the interviewer enough that he/she may be a valuable contact somewhere in the future.&quot;   Does telling the interviewer that you think his/her question is stupid help you in &lt;em&gt;that&lt;/em&gt; goal?  No?  Then shut up.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastEditorUserId="4887" LastEditorDisplayName="" LastEditDate="2010-10-08T22:43:09.793" LastActivityDate="2010-10-08T22:43:09.793" />
  <row Id="10636" PostTypeId="2" ParentId="2319" CreationDate="2010-10-08T22:26:40.120" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.monster.com&quot; rel=&quot;nofollow&quot;&gt;Monster&lt;/a&gt; - jobs world wide&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-08T22:26:40.120" CommunityOwnedDate="2010-10-08T22:26:40.120" />
  <row Id="10637" PostTypeId="2" ParentId="10521" CreationDate="2010-10-08T22:47:11.147" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.medapps.com/HealthPAL.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;HealthPAL&lt;/strong&gt;&lt;/a&gt; -- which provides a convenient way to track daily health readings and transmit the data to the &quot;cloud&quot; for review by clinicians and others.  It is currently FDA-cleared for use with glucose meters, blood pressure monitors, scales and pulse oximeters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HealthPAL uses a combination of embedded cellular (GSM or CDMA) and Bluetooth technologies to automatically transmit readings from compatible monitors to a secure central server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I designed the hardware (both the devices themselves and the smart cables that interface with the meters), and wrote much of the firmware for both the GSM and CMDA versions, including the Bluetooth interfaces.  I have several patents pending on the design.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-10-08T22:52:32.213" LastActivityDate="2010-10-08T22:52:32.213" CommentCount="2" />
  <row Id="10638" PostTypeId="2" ParentId="8947" CreationDate="2010-10-08T22:48:29.087" Score="1" ViewCount="" Body="&lt;p&gt;&lt;code&gt;php -l&lt;/code&gt; is how you run a syntax check.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$ cat poem.php&#xA;abstract class modelView {&#xA;&#xA;    //Declaring the collective&#xA;    $private family;&#xA;    $private friends;&#xA;    $protected vocation;&#xA;&#xA;    //Start&#xA;    private function __construct() {&#xA;        define(&quot;STEADY&quot;, &quot;GOD&quot;);&#xA;        define(&quot;EVOLVING_FORWARD&quot;, &quot;WORLD&quot;);&#xA;    }&#xA;&#xA;    private function getMyCore() {&#xA;        return $this-&amp;gt;family + $this-&amp;gt;friends;&#xA;    }&#xA;&#xA;    protected function setLove($empathy) {&#xA;        $this-&amp;gt;vocation = $this-&amp;gt;senseOfPurpose() . $empathy;&#xA;    }&#xA;&#xA;    public function senseOfPurpose() {&#xA;        define(&quot;PEOPLE&quot;, &quot;We are together&quot;);&#xA;        return STEADY . EVOLVING_FORWARD . PEOPLE;&#xA;    }&#xA;}&#xA;$ php -l poem.php&#xA;No syntax errors detected in poem.php&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The question of &quot;would it do anything useful&quot; is something else.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-08T22:48:29.087" />
  <row Id="10639" PostTypeId="2" ParentId="2319" CreationDate="2010-10-08T22:51:15.570" Score="1" ViewCount="" Body="&lt;p&gt;You didn't indicate whether these were employee or contract, so I am going to include some freelance sites:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.elance.com&quot; rel=&quot;nofollow&quot;&gt;http://www.elance.com&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.freelancer.com&quot; rel=&quot;nofollow&quot;&gt;http://www.freelancer.com&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.ifreelance.com&quot; rel=&quot;nofollow&quot;&gt;http://www.ifreelance.com&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-08T22:51:15.570" CommunityOwnedDate="2010-10-08T22:51:15.570" />
  <row Id="10640" PostTypeId="2" ParentId="10521" CreationDate="2010-10-08T23:24:16.143" Score="1" ViewCount="" Body="&lt;p&gt;The audio playback software for &lt;a href=&quot;http://www.numark.com/idj2&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3748" LastActivityDate="2010-10-08T23:24:16.143" CommentCount="1" />
  <row Id="10641" PostTypeId="2" ParentId="8117" CreationDate="2010-10-08T23:25:05.533" Score="1" ViewCount="" Body="&lt;p&gt;It would be nice if you could tell us why you want to move out of testing into development. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am a developer, and I find the world of testing quite interesting. If your current job is not challenging enough, you might want to look out for a company that works with modern and creative techniques in testing. There is a lot happening in the testing space and it is in no way less exciting that development. Also moving within the testing field will not force you to move to a junior role.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you find your field uninteresting and/or are really interested in building a career as a developer you should definitely make the move. In the mean time you could volunteer for an in-house project within your company where you can contribute as a programmer. You could also start a hobby project or contribute to open source projects, especially in the field of testing (automated testing). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;An &quot;onsite&quot; experience is definitely a bonus, not only on your resume, but more so as a personal experience. Since you seem unsure at the moment, you could move onsite and see how things work out for you before you make the leap. There is no stopping you from changing your decision in the future if things still don't seem quite right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps :)&lt;/p&gt;&#xA;" OwnerUserId="153" LastActivityDate="2010-10-08T23:25:05.533" />
  <row Id="10642" PostTypeId="2" ParentId="9991" CreationDate="2010-10-08T23:29:28.987" Score="1" ViewCount="" Body="&lt;p&gt;[I already have an answer to this question, which got roundly ignored point-wise. So I only stand to be ignored again...]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been thinking about this question today while I'm coding. For &lt;strong&gt;me&lt;/strong&gt;, one the biggest reasons I don't want to put something down is that the transition costs are too high. I've got 5 terminal windows open, two or three servers open, etc., and plus &lt;strong&gt;I know what I'm doing.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To handle the terminal windows being open etc., I just sleep my machine, and most of the states are maintained. But as to knowing where you are and what you're doing...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the ways that MIGHT help you to stop when you're in-the-middle-of-something is to document where-you-are as-you-go. I pretty much do this now anyway, otherwise my ADD takes over: I always write the next 4 or 5 mini-tasks that I need to do, plus ANYTHING that I'm keeping in my short- or medium-term memory. This way, picking up the task the next day is easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, &lt;strong&gt;by lowering the costs of stopping and restarting, you may be more motivated to stop.&lt;/strong&gt; Or not, and this answer is off-base as well :) &lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-10-08T23:29:28.987" CommentCount="2" />
  <row Id="10643" PostTypeId="2" ParentId="2319" CreationDate="2010-10-08T23:32:15.813" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.workopolis.com/&quot; rel=&quot;nofollow&quot;&gt;Workopolis&lt;/a&gt; tends to be my choice for Canadian stuff that hasn't been mentioned yet.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-08T23:32:15.813" CommunityOwnedDate="2010-10-08T23:32:15.813" />
  <row Id="10644" PostTypeId="1" CreationDate="2010-10-08T23:39:39.080" Score="11" ViewCount="322" Body="&lt;p&gt;I'm in a position where I am leading two teams of 4. Both teams are located in India.  I am on  the west coast of the U.S. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm finding leading remote teams challenging: First, their command of the English language is weak. Second, I'm having difficultly understanding them through their accents. Third is timing, we are 12 hours apart. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We use Skype to communicate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a month to get the project done. We've burned through a week just setting up the environments. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this point I'm considering working their hours, 11p PDT to 7a PDT, to get them up to speed, so that I can get the project off the ground. A 12 hour lag time is too much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking for steps I can take to be successful at leading an offshore team. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The offshore team's primary task is coding, of course, most coding tasks do involve some design work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The offshore  team's are composed of one lead, 2 mid level (4 to 5 years) developers and a junior (~2 years) developer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The project is classic waterfall. We've handed the offshore team a business and a technical design document. We are trying to manage the offshore in an agile way. We have daily conference calls with them and I'm requiring the teams to send me a daily scrum in the form of an email answering the following questions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What did I do today?&lt;/li&gt;&#xA;&lt;li&gt;What am I going to do tomorrow?&lt;/li&gt;&#xA;&lt;li&gt;What do I need from Chuck so I can&#xA;do my job tomorrow?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;There is some ambiguity in the tasks. The intent was to give them enough direction for them to develop the task with out writing the code for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't have a travel budget.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am using Fogbugz to track the tasks. Each task has been entered into Fogbugz and given a priority. Each team member has access to FogBugz and can choose what task they wish to complete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Related question&lt;/em&gt;: &lt;a href=&quot;http://programmers.stackexchange.com/questions/5435/what-can-we-do-to-improve-the-way-outsourcing-offshoring-works/5506#5506&quot;&gt;What can we do to improve the way outsourcing/offshoring works?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update 2&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've decided that I can not talk to the team once a day. I must work with them. Starting tonight I've started working the same hours they are. This makes me available to them when they have questions. It also allows me to gain their trust and respect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Stackoverflow question&lt;/strong&gt;&#xA;&lt;a href=&quot;http://stackoverflow.com/questions/3882117/leading-an-offshore-team&quot;&gt;Leading an offshore team&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4898" LastActivityDate="2011-03-17T17:54:37.573" Title="Leading an offshore team" Tags="&lt;project-management&gt;&lt;team&gt;&lt;off-shore&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="2" />
  <row Id="10645" PostTypeId="2" ParentId="9991" CreationDate="2010-10-08T23:44:43.887" Score="3" ViewCount="" Body="&lt;p&gt;What you seem to want is a more controlled way of working, whilst still actually being productive with your programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If so, have a look at &lt;a href=&quot;http://www.pomodorotechnique.com/&quot; rel=&quot;nofollow&quot;&gt;The Pomodoro Technique&lt;/a&gt; where you deliberately take short non-disruptive breaks every half hour, and longer breaks every two or three hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also involves making sure your tasks are broken down into things that can be done in small chunks - so you focus on the things that actually need doing, and avoid running away on a single problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are plenty of similar techniques out there, which might vary in detail, but the key points of making sure problems are broken into discrete tasks which can be crossed off, and that you must take regular breaks, should help you to focus when you need to and move on when you might otherwise waste time down a rabbit hole.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-10-08T23:44:43.887" CommentCount="1" />
  <row Id="10646" PostTypeId="2" ParentId="10614" CreationDate="2010-10-09T01:02:16.960" Score="2" ViewCount="" Body="&lt;p&gt;I am assuming you are looking at small open source libraries like those found on github.  In my case I am often using one to solve a specific problem.  If it doesn't solve it cleanly, then I dig in, learn how the code works and make changes as necessary.  If my change is for something useful or a bug fix I attempt to contact the open source owner or fork my own branch.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other times I am just adapting something close to my own needs, in those cases I just keep my changes and move on.  I add watches or check back in regularly to see what has been updated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As in the notes though, this is the life of software development.  It's an ever changing environment.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-10-09T01:02:16.960" />
  <row Id="10647" PostTypeId="2" ParentId="10644" CreationDate="2010-10-09T01:02:32.577" Score="6" ViewCount="" Body="&lt;p&gt;If you are having trouble communication, try written communication. If their English is too weak, perhaps providing code examples as well as written explanations will help them grasp the concepts. Skype has a messaging system that can be used alongside the webcam communication. And about the time delay. I know it is frustrating (I have a three hour delay with my family), and 12 hours must be insane! Perhaps you should become nocturnal, if you have little else to do. And even if things are looking like the're crumbling to the ground, just keep up the persistence.&lt;/p&gt;&#xA;" OwnerUserId="4856" LastActivityDate="2010-10-09T01:02:32.577" CommentCount="1" />
  <row Id="10648" PostTypeId="2" ParentId="10614" CreationDate="2010-10-09T01:11:06.250" Score="3" ViewCount="" Body="&lt;p&gt;You ask how you keep the motivation in &lt;em&gt;using&lt;/em&gt; a given open source API project?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The trick is figuring out which Open Source projects are the good ones.  The major qualification in Open Source is the fact that you have access to the source code, which is extremely useful when you need to find out how things work (which usually happens when you need behaviour to change in some situation), but this does not imply anything else than that.  This includes the &lt;em&gt;quality&lt;/em&gt; of the project which is completely unrelated to the openness of the source.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quality consists of several more or less subtle things when speaking of a code project:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How well is the API designed?  Does the code you need to write to actually call the API read easily?&lt;/li&gt;&#xA;&lt;li&gt;How well written is the actual code in the API?   Is it easy to understand what goes on?  Are the data structures well chosen and do not have expensive runtime characteristics?  Are variable names well chosen?   Does the code conform to a coding standard?&lt;/li&gt;&#xA;&lt;li&gt;Is the API documented?  This is both the design and javadoc of the actual code, and is it useful?  This is more important than  you may think, as it shows the maturity of the code.&lt;/li&gt;&#xA;&lt;li&gt;Does the project have a web page?  Is it updated and without broken links?  Does it provide easy access to source code, downloads and documentation?&lt;/li&gt;&#xA;&lt;li&gt;Does the project have a community and mailing lists?  Are the archives available and accessible?  Is the community helpful?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;All these things are useful to  have in mind when choosing if you want to use a given open source project or not.  Any derivation from the best should cause a warning sign to flash in your head as it is an indication that this is not a best-of-breed project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then when you found the project, you like what you see, there is the final test:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How hard is it to get up and running from scratch with a simple program invoking the API in a useful way?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This should be&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;explained in an easy to spot location on the project web site and/or in the documentation in the download bundle.&lt;/li&gt;&#xA;&lt;li&gt;easy to get right - the documentation must be accurate, the program simple to write or adapt from a given, simple example, and both well explained and easily understandable.&lt;/li&gt;&#xA;&lt;li&gt;quick to get right - if you need to do &lt;em&gt;any&lt;/em&gt; debugging at this point to get the program to run as explained, something is very wrong.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If it is evident that this is an anticipated and prioritized use case, then this should be trivially simple.   If it is evident that the project does not care about this particular thing, then I would strongly consider not using it!  If it is uphill here, it will be uphill many, many times later, and it will be better to just not use it.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-09T01:11:06.250" CommentCount="1" />
  <row Id="10649" PostTypeId="2" ParentId="4662" CreationDate="2010-10-09T01:15:23.857" Score="2" ViewCount="" Body="&lt;p&gt;If you look back 15-20 years, what were big then?  Facebook, Google, and Apple's current form in terms of iPod, iPhone and iPad were still years away. Windows 95 was the big consumer O/S, browsers wars hadn't started yet, and Y2K was still a threat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone trying to predict the next big thing that will last for 20 years should be careful to look at former top dogs.  Remember when Netscape, Yahoo! and AOL were the Internet kings with the latter buying Time Warner?  Remember when the Japanese were considered the big threat in the late '80s?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How about back when Atari, Sega and Nintendo were the game makers? There are probably tons of these stories, but my point is that if you are going to try to build your career on one technology, be aware that it probably won't be the same decades later.  I wonder how COBOL has changed as hardware advances happened for another idea...&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-09T01:15:23.857" />
  <row Id="10650" PostTypeId="1" CreationDate="2010-10-09T01:43:00.483" Score="4" ViewCount="158" Body="&lt;p&gt;Can anyone recommend any good desk lamps?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My current lamp is a halogen lamp that looks pretty cool, but after an hour or so it starts to hurt my eyes, and sucks up energy like no other.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bonus points for desk clamp models to save working space.&lt;/p&gt;&#xA;" OwnerUserId="1875" LastActivityDate="2010-10-09T18:59:54.503" ClosedDate="2010-10-09T19:29:28.300" Title="Good desk lamps?" Tags="&lt;work-environment&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="0" />
  <row Id="10651" PostTypeId="1" AcceptedAnswerId="10680" CreationDate="2010-10-09T01:46:22.063" Score="7" ViewCount="400" Body="&lt;p&gt;I'm beginning to think that I might be best suited for a job in R&amp;amp;D.  The reason being that I like jobs that allow me to be creative and I generally am more interested in solving puzzles than building things.  I really dislike jobs that just boil down to translating requirements into code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's the kicker though:  I don't have a bachelor's much less a masters or phd.  Is it possible for me to land a job like this?&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-06T13:01:41.320" Title="How do I get into R&amp;D?" Tags="&lt;research&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="1" />
  <row Id="10652" PostTypeId="2" ParentId="10521" CreationDate="2010-10-09T02:22:21.967" Score="1" ViewCount="" Body="&lt;p&gt;My real estate web site &lt;a href=&quot;http://www.baseestate.com&quot; rel=&quot;nofollow&quot;&gt;www.baseestate.com&lt;/a&gt; :-)&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-09T02:22:21.967" />
  <row Id="10653" PostTypeId="2" ParentId="10580" CreationDate="2010-10-09T02:25:34.623" Score="1" ViewCount="" Body="&lt;p&gt;I just recently left a job in similar circumstances to you (I wasn't the &lt;em&gt;only&lt;/em&gt; developer, but there was really only two of us, so I had quite a lot of knowledge that the other guy didn't have (and vice versa, of course)).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of the normal documentation stuff, it's important to document an overview of the whole system. Individual components are already documented in the code, but the interaction between components and why this does that or why this needs to talk to that component are important and not always easy to figure out just by debugging/looking at the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, for about a month before I left, every time I did something that only I &lt;em&gt;could&lt;/em&gt; do, I wrote down exactly what happened, what I had to do, and why. This was usually a case of &quot;there was a bug in xyz component, to fix it I knew to look in file abc because of X, then I had to do this, this and this&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, I left my email address and phone number in case anything came up that they couldn't figure out on their own. I got a few calls in the first few weeks, but they slowly dropped off.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-09T02:25:34.623" />
  <row Id="10654" PostTypeId="2" ParentId="10651" CreationDate="2010-10-09T02:36:33.910" Score="0" ViewCount="" Body="&lt;p&gt;Start your own research foundation and beg for grants.&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-10-09T02:36:33.910" CommentCount="1" />
  <row Id="10655" PostTypeId="1" CreationDate="2010-10-09T02:41:55.390" Score="3" ViewCount="83" Body="&lt;p&gt;In my current developement, I have decided to keep the command prompt open so I can see debug messages. For example, if something wasn't happening when it should, I would put a cout statement at every function to determine where the broken link is. Sometimes, I might get hundreds of the same message (like WM_MOUSEMOVE) and I need to determine whether or not the messages are still coming, so I would using a static variable, and increment it, so I might have:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;...&#xA;3&amp;gt; WM_MOUSEMOVE processed.&#xA;4&amp;gt; WM_MOUSEMOVE processed.&#xA;54&amp;gt; WM_CLICK processed.&#xA;5&amp;gt; WM_MOUSEMOVE processed.&#xA;...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;in my cmd. (Don't ask me why there would be 54 WM_CLICK and 4 WM_MOUSEMOVE)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I would like to know is your opinion. Is this a good approach to debugging? What kind of syntax would you use for consistency? Does a syntax even matter? And would you make any suggestions to how this method could be improved.&lt;/p&gt;&#xA;" OwnerUserId="4856" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-09T13:54:20.590" LastActivityDate="2010-10-09T13:54:20.590" Title="Debugging applications" Tags="&lt;bug-tracking&gt;&lt;debugging&gt;" AnswerCount="4" />
  <row Id="10656" PostTypeId="1" AcceptedAnswerId="10685" CreationDate="2010-10-09T02:49:32.707" Score="4" ViewCount="148" Body="&lt;p&gt;I have always been fascinated with the newest and best technologies available.  I graduate from college this year, and over the course of the past few years, I have spent a lot of time learning new programming languages, web frameworks, Linux distros, IDEs, etc, in an effort to find the best of each.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have installed and played around with Ubuntu, Gentoo, Debian, Arch, Suse, Vector, Puppy, Slackware, and Fedora Linux, I have spend a good amount of time in Vim and Emacs, and have played around with Visual Studio, Eclipse, Netbeans, Gedit, and several more obscure ones.  I have played with all sorts of languages - I started with the common ones like C, Java, VB, but always heard that they were &quot;bad&quot; (for relative definitions of bad).  I then discovered the scripting languages and have quite a bit of experience in PHP, Perl, Python, and Ruby.  Then I heard that functional languages are where it's at, so I played around with Scheme, Lisp, Haskell, Erlang, and OCaml.  I've played around with obscure languages like Forth and J.  When I do web development, I go back and forth between frameworks and languages.  Should I use plain PHP, Rails, Django, CakePHP, Code Igniter, Yii, Kohana, or make my own?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a very broad and shallow knowledge of computer science.  As soon as I have learned a useful amount of one technology, I see something else shiny and go after it.  My progression often goes like this: &quot;Perl is better than PHP, but wait, Python is better than Perl.  Oh, but now I see that Ruby has the power of Perl and it is cooler than Python.  Well, now that I have seen a little of Ruby, it is too complicated.  Python is cleaner.  Oh, but it is too hard to deploy Python, so I should use PHP if I want to do real web development.&quot;  And so on and so forth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone have any advice for someone like me who can't decide which technology to use for projects?  Should I just pick one language/framework/IDE and sort of forget about the other things that are available for awhile?  I don't have all that much in the way of completed projects because I never stay with something long enough to finish it.&lt;/p&gt;&#xA;" OwnerUserId="4901" LastActivityDate="2010-10-09T08:56:47.237" Title="Plagued by indecision - how to choose technologies to use for projects?" Tags="&lt;programming-languages&gt;&lt;self-improvement&gt;&lt;advice&gt;&lt;technology&gt;" AnswerCount="5" CommentCount="3" />
  <row Id="10657" PostTypeId="2" ParentId="10651" CreationDate="2010-10-09T02:51:56.900" Score="1" ViewCount="" Body="&lt;p&gt;I would say that your best bet, without getting a higher education, is likely to find out everything you possibly can about the field you intend to do research. Then independently produce some high quality papers and proofs of concept for that area. Get the papers published in reputable journals and get the proofs in the hands of other researchers in the field.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From there, you can look at companies that are doing research in the same areas and consider applying.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-09T02:51:56.900" />
  <row Id="10658" PostTypeId="2" ParentId="10521" CreationDate="2010-10-09T02:52:25.710" Score="1" ViewCount="" Body="&lt;p&gt;I've written zillions of lines of test code  - and I'm proud of most of it, and to this day I am ecstatic with my choice to be a tester rather than a developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I have had my opportunities to write shipping code too, and I'm probably most proud of the first thing I wrote that people actually used - I wrote the battery / power management updates for windows 98 second edition. It was a port of the Windows NT UI made to work with the different driver model that win9x used. It wasn't that much code and it wasn't that hard, but it was still cool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also wrote the daylight savings algorithm for windows CE 5. Calculating dayling savings time was a pain, but it worked...I think. I would do a much better job if I wrote it today.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-10-09T02:52:25.710" />
  <row Id="10659" PostTypeId="2" ParentId="10650" CreationDate="2010-10-09T02:58:49.560" Score="1" ViewCount="" Body="&lt;p&gt;How about a floor lamp instead? Definitely saves desk space. :D  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't have any overhead lighting in my home office, so I have two floor lamps, each in opposing corners of the room. I like a lot of light when I work, so this setup is pretty awesome for me.&lt;/p&gt;&#xA;" OwnerUserId="4222" LastActivityDate="2010-10-09T02:58:49.560" />
  <row Id="10660" PostTypeId="2" ParentId="10655" CreationDate="2010-10-09T03:06:53.753" Score="0" ViewCount="" Body="&lt;p&gt;Sometimes cout statements are easier to do, but I think exceptions are the way to go in most cases.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-10-09T03:06:53.753" CommentCount="1" />
  <row Id="10661" PostTypeId="2" ParentId="10523" CreationDate="2010-10-09T03:13:22.483" Score="0" ViewCount="" Body="&lt;p&gt;I think that typing speed is not the most important thing if you're programming. Higher accuracy is the most important. You should also improve your speed when typing symbols, dashes, underscore, brackets, etc because just typing words is easy. I also seem to have hit a 100wpm barrier. If I really focus on a paragraph I can type it in 120wpm. It seems like I'm in need of a catalyst to go over this 100wpm barrier.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-10-09T03:13:22.483" CommentCount="1" />
  <row Id="10662" PostTypeId="2" ParentId="3363" CreationDate="2010-10-09T03:18:26.540" Score="0" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;if(somecondition)&#xA;{&#xA;    exactly_one_line = of + code; &#xA;} //end if&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4903" LastActivityDate="2010-10-09T03:18:26.540" CommunityOwnedDate="2010-10-09T03:18:26.540" />
  <row Id="10663" PostTypeId="1" CreationDate="2010-10-09T04:08:41.787" Score="2" ViewCount="167" Body="&lt;p&gt;I see programmers as a very logical, and possibly idealistic group of people.  I'll bet this propensity shows in our personal life as well as our work life.  This leads me to ask, &quot;Is there a common trait among who we choose to be our mate?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mean if we're such a logical, analytical, smart group of people, how does that affect our senses when we choose our significant other (S.O.)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure this question is for those in a long term relationship, are married, but I'd also be interested in seeing if someone knows of a study about this topic.  &lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-10-09T04:15:10.677" LastActivityDate="2010-10-09T04:27:49.170" ClosedDate="2010-10-09T05:45:13.613" Title="Programmers &amp; Dating: Anything in common with who we choose to become our S.O.?" Tags="&lt;personality&gt;&lt;lifestyle&gt;&lt;personal-traits&gt;&lt;social&gt;" AnswerCount="1" />
  <row Id="10664" PostTypeId="1" CreationDate="2010-10-09T04:15:46.633" Score="8" ViewCount="647" Body="&lt;p&gt;I've just encountered this article &lt;a href=&quot;http://www.halfsigma.com/2007/03/why_a_career_in.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; whose author is advocating the fact that a career in programming sucks as the knowledge capital is temporary, it's a low prestige job, outsourcing, bad future, and sucky working conditions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally disagree with his points but am wondering what's the opinion of the more senior programmers here, especially on his point about the temporary knowledge capital and having a bad future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[UPDATE]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hey guys thanks for all the response. However due to the rather subjective nature of the question I don't think there's a &quot;correct&quot; answer. So I just wanna point out a few answers that I find particularly useful:&lt;br&gt;&#xA;1. &lt;a href=&quot;http://programmers.stackexchange.com/questions/10664/how-does-programming-compare-to-other-industries/10699#10699&quot;&gt;Pierre 303&lt;/a&gt;&lt;br&gt;&#xA;2. &lt;a href=&quot;http://programmers.stackexchange.com/questions/10664/how-does-programming-compare-to-other-industries/10667#10667&quot;&gt;EpsilonVector&lt;/a&gt;&lt;br&gt;&#xA;3. &lt;a href=&quot;http://programmers.stackexchange.com/questions/10664/how-does-programming-compare-to-other-industries/10676#10676&quot;&gt;Joonas Pulakka&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[UPDATE]&lt;/p&gt;&#xA;" OwnerUserId="2243" LastEditorUserId="2243" LastEditorDisplayName="" LastEditDate="2010-10-09T15:21:25.807" LastActivityDate="2010-10-09T19:27:52.580" Title="How does programming compare to other industries?" Tags="&lt;career&gt;&lt;future&gt;" AnswerCount="11" CommentCount="7" FavoriteCount="3" />
  <row Id="10665" PostTypeId="2" ParentId="10663" CreationDate="2010-10-09T04:27:49.170" Score="1" ViewCount="" Body="&lt;p&gt;I just chose another programmer.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-09T04:27:49.170" />
  <row Id="10666" PostTypeId="2" ParentId="10664" CreationDate="2010-10-09T04:31:25.263" Score="3" ViewCount="" Body="&lt;p&gt;If you are not someone who spends spare time keeping up with technology it is easy to end up in a poor job. But otherwise, you get to sit in a computer playing with code all day earning more money than most people I know. Prestige is low though, people think of programmers as production line workers.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-10-09T12:57:19.233" LastActivityDate="2010-10-09T12:57:19.233" />
  <row Id="10667" PostTypeId="2" ParentId="10664" CreationDate="2010-10-09T04:45:33.907" Score="16" ViewCount="" Body="&lt;p&gt;I don't think he is right about the temporary capital knowledge part. Programming languages don't change &lt;em&gt;that&lt;/em&gt; drastically. They all have for and while loops, if statements, and so on... Neither do major concepts and paradigms change very fast. OOP is still going strong, languages are still statically typed or dynamically typed, and so on. And what does it even mean that your knowledge &quot;in Visual Basic 3.0-6.0&quot; is useless now that it isn't used anymore? Does Visual Basic uses a different kind of logic from the logic used when programming in C++? Does the math somehow change? There's plenty of non-temporary capital knowledge under the surface. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, regarding the prestige part, where I live everything to do with &quot;High Tech&quot; is considered prestige. Programmers typically earn between 1.5 to 2 times more than the average person. Sounds prety good to me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The prestige part is a bit subjective though. Where I live there are WAY too many lawyers. More than is logically needed, so a lot of lawyers don't make a whole lot of money due to supply and demand. Being a doctor is also considered prestigious, and yet I can't help but feel like a lot of them are constantly stressed out. My dad is a dentist, and he earns a LOT of money, and yet he spends most of his time at work, in a way that would be considered death march schedule. It may not be as intensive, but he's still constantly at work, and it's not just one work place either. He works in multiple clinics in different cities. Is this necessarily better? I'm not sure. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The rest of his points make me think that he never worked in a company where the software was the main product. I might not be very experienced in the job market, but by all accounts places like Microsoft, Google, and the likes, are very different from what he describes. You might say that not everybody get to work in places like Microsoft or Google, and I'm saying that it's your fault if you don't. Your place in life is always the result of the kinds of sacrifices you are willing to make in terms of time, place, effort, and life decisions, and the world is filled with people who are bitter because to get what they want they need to make sacrifices they are not willing to make, and that may suck, but you need to either do something about it or accept the consequences. &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2010-10-09T08:06:03.243" LastActivityDate="2010-10-09T08:06:03.243" CommentCount="7" />
  <row Id="10668" PostTypeId="2" ParentId="9062" CreationDate="2010-10-09T04:51:30.247" Score="0" ViewCount="" Body="&lt;p&gt;If a TSQL schema update didn't go through, check for missing &lt;code&gt;GO&lt;/code&gt;, or check if there's extra space characters before &lt;code&gt;GO&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-09T04:51:30.247" CommunityOwnedDate="2010-10-11T05:17:24.027" />
  <row Id="10669" PostTypeId="2" ParentId="10664" CreationDate="2010-10-09T05:03:32.747" Score="2" ViewCount="" Body="&lt;p&gt;If I was the guy in that Article I am sure I would have quit programming but I have a feeling that this guy will do equally badly in a proffession of Law or Medical sciences. More often it is your attitude which takes you places in your career. There are a lot of Docs and Lawyers who don't make enough. Also if you love programming stick to it otherwise just move out. The best programmers in the US didn't lose thier jobs to outsourcing ? And the world still cares about COBOL Programmers ??&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One more point I want to bring out is, it is human nature to believe what we read. What is the authenticity of the article ? Why should I trust his intellect over mine ? What he has written is his perception, simple.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-09T05:03:32.747" />
  <row Id="10670" PostTypeId="2" ParentId="10664" CreationDate="2010-10-09T05:08:20.457" Score="1" ViewCount="" Body="&lt;p&gt;If you didn't go into software just for the money and find middle class white collar work  better than many options then software is a pretty good career. If you want to restrict your career options to those where you won't have to deal with outsourcing, competition and constant change your only option is catholic preist. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programing is a pretty good gig. If that is all you want, keep up with API and language changes and you can almost always get a gig. But if you really want a long lasting and well paying career, pick up a lot of domain knowledge to go along with your coding skills. Accounting, biotech...almost any domain knowledge will help you build a career. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Foreignization as he calls it, might be happening. I've seen much of what he is describing. But those H1Bs rarely stay in the industry long enough to build up a knowledge base that allows them to take the top jobs. A smart guy that is willing to spend a decade in an industry and learn the business will always have that advantage.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-09T05:08:20.457" />
  <row Id="10671" PostTypeId="2" ParentId="10656" CreationDate="2010-10-09T05:16:21.233" Score="4" ViewCount="" Body="&lt;p&gt;I tend to agree with Carson. I haven't exposed myself to as many technologies that you have. I did the play-around-with-CMS thing and also PHP vs Python (same reaction: too hard to get going). And the whole time, I get all these ideas bouncing around my head for websites, registering domains, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I finally realized over the past year that my problem is that none of the actual ideas for projects fully took hold in my &quot;heart&quot;. I finally have one, and now I'm looking to nail down what I'm going to use. I think it will be a fairly quick process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the bright side, spending so much time dabbling around can only benefit you with a related and useful skillset... unlike careening from unrelated hobby to completely unrelated hobby. ;)&lt;/p&gt;&#xA;" LastActivityDate="2010-10-09T05:16:21.233" />
  <row Id="10672" PostTypeId="1" AcceptedAnswerId="10673" CreationDate="2010-10-09T05:27:28.990" Score="7" ViewCount="231" Body="&lt;p&gt;Ever since my very first programming class in high school, I've been hearing that string operations are slower &amp;#8212; i.e. more costly &amp;#8212; than the mythical &quot;average operation.&quot; Why makes them so slow? (This question left intentionally broad.)&lt;/p&gt;&#xA;" OwnerUserId="94" LastActivityDate="2010-10-09T05:39:37.263" Title="Why are strings so slow?" Tags="&lt;computer-science&gt;&lt;programming&gt;&lt;strings&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="1" />
  <row Id="10673" PostTypeId="2" ParentId="10672" CreationDate="2010-10-09T05:36:20.343" Score="13" ViewCount="" Body="&lt;p&gt;&quot;The average operation&quot; takes place on primitives.  But even in languages where strings are treated as primitives, they're still arrays under the hood, and doing anything involving the whole string takes O(N) time, where N is the length of the string.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, adding two numbers generally takes 2-4 ASM instructions.  Concatenating (&quot;adding&quot;) two strings requires a new memory allocation and either one or two string copies, involving the entire string.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Certain language factors can make it worse.  In C, for example, a string is simply a pointer to a null-terminated array of characters.  This means that you don't know how long it is, so there's no way to optimize a string-copying loop with fast move operations; you need to copy one character at a time so you can test each byte for the null terminator.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-09T05:36:20.343" CommentCount="10" />
  <row Id="10674" PostTypeId="2" ParentId="10672" CreationDate="2010-10-09T05:39:37.263" Score="1" ViewCount="" Body="&lt;p&gt;Let me answer your question with a question. Why does saying a string of words take longer than saying a single word?&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-10-09T05:39:37.263" />
  <row Id="10675" PostTypeId="1" CreationDate="2010-10-09T05:40:17.837" Score="15" ViewCount="1359" Body="&lt;p&gt;What do you think? What is the ideal programming language learning sequence which will cover most of the heavily used languages and paradigms today as well as help to grasp common programming basics, ideas and practices?&#xA;You can even suggest learning sequence for paradigms rather than languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;N.B. : This is port of the question I asked in &lt;a href=&quot;http://stackoverflow.com/questions/3482391/ideal-programming-language-learning-sequence-closed&quot;&gt;stackoverflow&lt;/a&gt; and was closed for being subjective and argumentative.&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2011-02-01T05:27:52.490" CommunityOwnedDate="2011-01-31T13:41:33.057" Title="Ideal programming language learning sequence?" Tags="&lt;programming-languages&gt;&lt;recommendations&gt;" AnswerCount="17" CommentCount="4" FavoriteCount="20" />
  <row Id="10676" PostTypeId="2" ParentId="10664" CreationDate="2010-10-09T05:54:10.270" Score="8" ViewCount="" Body="&lt;p&gt;What the author forgot is the &lt;em&gt;intrinsic motivation&lt;/em&gt;. If you're interested in programming, then it's a great job. Getting paid (reasonably well) for doing what you would do anyway is a rare privilege.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, if you're primarily interested in extrinsic things such as high prestige, guaranteed future and great working conditions (even if you're not such a great programmer), then programming may not be the best career choice around, although it's certainly not the suckiest either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About knowledge capital, it's partly true. The half-life of a programmers knowledge is maybe 3 years, so you need to keep studying. If you do (and sure you do if you're interested in programming), then what's the problem? Just don't expect to &quot;be done&quot; after your initial studies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is a great job for those who are genuinely interested it and have the gift and perservance to be good at it. It's also ruthless; you can't fake if you just can't do something.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-09T06:06:08.477" LastActivityDate="2010-10-09T06:06:08.477" />
  <row Id="10677" PostTypeId="2" ParentId="10664" CreationDate="2010-10-09T06:02:03.753" Score="0" ViewCount="" Body="&lt;p&gt;I am answering this off-the-cuff and don't have any solid numbers in front of me. That said, I think that the general thrust of the article is correct. It does NOT mean that an individual programmer with good skills, some luck, and something else (like good personal skills, or the ability/desire to travel instead of having to take the jobs that come up where he/she is) can't rock the house until death. It does mean that, for most programmers, programming is dropping in value due to foreignization and a run-up supply.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An empirical point, that somebody will have to either put up the evidence for or against, is that IMO developer salaries have not kept up with inflation. But then again, perhaps I'm comparing everything to the dot-com boom in the 90s, when you could get a 120K job coding with no particular language skills and no team to lead nor projects to manage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But anyway, if you love coding, you'll code. It might become like acting or dancing: they're overrun fields and salaries are low, but they sure beat making sales calls.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-10-09T06:02:03.753" />
  <row Id="10678" PostTypeId="2" ParentId="10655" CreationDate="2010-10-09T06:16:07.580" Score="2" ViewCount="" Body="&lt;p&gt;There are a few ways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you are using is a rudimentary form of &lt;em&gt;logging&lt;/em&gt;. It's probably the most time-efficient way of debugging most errors. It's worth your time to write a solid logging module that can be redirected to screen or file, buffered/unbuffered, etc. It should have a timestamp and a message, if nothing else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is also throwing exceptions - this can be more useful with languages that perform a stack trace using symbols, e.g., Java or Python.  Perl can croak()  or die() with similarly useful information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One other method is having a large array of unit tests which can pick up errors in a refined fashion. That of course implies well-written tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The above are essentially non-interactive methods.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is also Ye Old Interactive Debugger, which functions in various levels of usefulness depending on development environment.  Lisp probably has the best debugging facilities available; C# probably has the most developed UI. Interactive debuggers can be very useful when your code &quot;logically&quot; should work, and you really need to do some serious variable-ogling and probe around. It's probably the most inefficient and hard to replicate of all the methods, but can be really useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The interactive debugger can be extended to have various conditions and scripts run on variables hitting values, but I'm not sure if any current environments support it - the last one I heard of was developed in '93 for... Prolog? Can't recall off the top of my head.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One method that was researched in the early 80s and is having a minor comeback today is replayable/reverse debugging. I am working on doing that in my thesis for a highly exotic embedded system.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-09T06:16:07.580" CommentCount="4" />
  <row Id="10679" PostTypeId="2" ParentId="10664" CreationDate="2010-10-09T06:23:02.120" Score="4" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;The guy that wrote the article needs to find a different career where he's happy.  Status seems to be important to him.  I couldn't care less.&lt;/li&gt;&#xA;&lt;li&gt;I love building great software.  The &lt;em&gt;best thing about it is learning new things&lt;/em&gt;.  I'm just ecstatic that they pay me for it (and pretty well compared to many other jobs - but they wouldn't have to).&lt;/li&gt;&#xA;&lt;li&gt;I work for a large company and I'm surrounded by people who have been programming with that company for 25 and 30 years.  They have good jobs, they keep learning.&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Those people in #3.... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;a.  They keep learning - they understand that it is not only a requirement to survive in this business - they love it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;b.  This is important - the tools, OS knowledge, knowledge of how computers work (for that &quot;sixth sense&quot; when you're troubleshooting a problem), their knowledge of databases, their ability to use vi/grep/sed/awk/shell scripting, etc. - &lt;strong&gt;won't go stale&lt;/strong&gt;.  Good troubleshooting skills, especially, grow with time and experience.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2671" LastActivityDate="2010-10-09T06:23:02.120" />
  <row Id="10680" PostTypeId="2" ParentId="10651" CreationDate="2010-10-09T06:24:35.453" Score="9" ViewCount="" Body="&lt;p&gt;I work at R&amp;amp;D. For one thing, most of it is about the &quot;D&quot; part, that is, building things. You can't escape it. The primary goal of any commercial R&amp;amp;D department is to &lt;em&gt;develop things that work&lt;/em&gt; (and that can be sold to customers in order to pay your salary). As Edison put it: 1 % inspiration and 99 % perspiration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then there's of course the rare &quot;R&quot; part, tinkering, which is quite enjoyable. The proportion between R and D certainly depends on the field and firm where you're working, but it's typical that making things that work (D) is the high priority, and trying to come up with something completely new (R) gets the remaining time, which may not be much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can only talk about myself, but if you're a decent programmer, you have a good chance of getting a R&amp;amp;D job via ordinary job interview. Look for firms that inspire you, and let them know about yourself. Don't ignore small, innovative firms; if you get to work at such, you can actually affect what they and you are doing (not so with giant corporations).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you meant academic research, then it's definitely less work to first get the degree and then a job at the university than trying to do any meaningful research alone, without a degree, unless you're a genius.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-09T08:07:28.857" LastActivityDate="2010-10-09T08:07:28.857" />
  <row Id="10681" PostTypeId="2" ParentId="10656" CreationDate="2010-10-09T06:31:06.577" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Should I just pick one language/framework/IDE and sort of forget about the other things that are available for awhile?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Basically, yes.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you keep flitting between technologies, you'll never get the depth of experience that you need to be an effective developer in any of them.  And when all is said and done, while no technology is perfect, many of them are good enough to get the job done ... depending on the job.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I don't have all that much in the way of completed projects because I never stay with something long enough to finish it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You'll need to learn to deal with that, especially if you aspire to be a professional software developer.  No boss is ever going to want to employ someone who doesn't have the self-discipline to finish projects.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-10-09T06:31:06.577" />
  <row Id="10682" PostTypeId="2" ParentId="10656" CreationDate="2010-10-09T06:38:04.157" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I have a very broad and shallow knowledge of computer science.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is your issue. Pick a language &lt;em&gt;and stick with it&lt;/em&gt;. What are you developing? Want a wide range of coverage? Pick PHP. Want to shoot your career in the foot? Pick Ruby. (Kidding, maybe).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no &quot;correct&quot; language to choose, pick the one that you are comfortable with.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-09T06:38:04.157" />
  <row Id="10683" PostTypeId="2" ParentId="10664" CreationDate="2010-10-09T06:39:02.063" Score="3" ViewCount="" Body="&lt;p&gt;The linked article is a blinding example of ascertainment bias. The author has intimate experience with his own career, and knows every wart, pimple, and blemish to a fair-the-well. He then compares the career he know intimately to the careers he knows only from what he hears about on TV or reads about on the web. Surprise, surprise, his real career doesn't measure up to his fantasy career. He never bothered to consult with the run of the milll doctors, lawyers and bankers, that don't make much more then he does, and who will be happy to fill your ear about what a grind their job is, and how little respect they get for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is perfectly possible to have a great career in programming. You just need skill, hard work, and a huge amount of luck. It's a bummer about needing the luck, but that applies to every career in the world.&lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-10-09T06:39:02.063" />
  <row Id="10684" PostTypeId="2" ParentId="10675" CreationDate="2010-10-09T06:43:38.183" Score="6" ViewCount="" Body="&lt;h2&gt;1. Smalltalk&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Designed originally at least in part as a way for children to use computers to learn. The syntax is simple enough to describe in a paragraph. It, like LOGO, exemplifies the &quot;low barrier to entry, high ceiling&quot; principle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Smalltalk's a pure &lt;em&gt;OO language&lt;/em&gt; in the sense that &quot;everything is an object&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also teaches many functional techniques, particularly in its Collection API: chaining messages, higher order functions, map, reduce, and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://www.squeak.org/&quot; rel=&quot;nofollow&quot;&gt;Squeak&lt;/a&gt; community is vibrant and welcoming. You'll also see many discussions of advanced techniques: much like the lisp community, there are many very experienced Smalltalkers on the &lt;a href=&quot;http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-dev&quot; rel=&quot;nofollow&quot;&gt;mailing list&lt;/a&gt; willing to share their knowledge. (It doesn't hurt that the Squeak community has a large sub-population of professional educators.) There's also &lt;a href=&quot;http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/beginners&quot; rel=&quot;nofollow&quot;&gt;another list&lt;/a&gt; for beginners.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;2. PROLOG&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;A &lt;em&gt;logic programming&lt;/em&gt; language that will give you a very different view of computation to just about any other language. Prolog is also highly &lt;em&gt;declarative&lt;/em&gt; (but not completely so: the &lt;code&gt;!&lt;/code&gt; or cut operator can have a significant semantic effect on a predicate).&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;3. Common Lisp&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Substitute Scheme here if you like. &lt;a href=&quot;http://www.gigamonkeys.com/book&quot; rel=&quot;nofollow&quot;&gt;Common Lisp&lt;/a&gt; is supports multiple paradigms, especially OO and functional. It also has a long history (Lisp is the second oldest still-widely-used language: only FORTRAN's older).&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;4. Haskell&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;(Caveat: I've only just started learning it.) Probably the purest functional language on the planet. It has a very advanced static type system. Handy &lt;a href=&quot;http://learnyouahaskell.com/&quot; rel=&quot;nofollow&quot;&gt;intro&lt;/a&gt; &lt;a href=&quot;http://book.realworldhaskell.org/&quot; rel=&quot;nofollow&quot;&gt;books&lt;/a&gt; exist.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;5. C or Delphi&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;You need to know how computers work. You need to know how memory and CPU actually function. Both of these are traditionally &quot;close to the metal&quot; and have communities that encourage thinking of how their language compiles to assembly.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Why this order?&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Smalltalk's very easy to learn, so you can quickly start concentrating on solving problems rather than fighting a compiler (&quot;low barrier to entry&quot;). Once you start programming, there's also no artificial limit on what you can do - &quot;high ceiling&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have a fair idea of how OO works (and - with the proviso that there are MANY different understandings of what &quot;OO&quot; means - it's fair to say that OO dominates the marketplace), moving onto Prolog ensures that you don't start thinking that OO is the only way. Prolog is &lt;em&gt;very&lt;/em&gt; different to most languages, and will stretch your mental muscles so you don't start thinking that you know everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Common Lisp, in turn, is a grown-up's language. It has a mature standard, it has been leading language design for decades (along with Smalltalk) - all those fancy new features your favourite language just acquired? Chances are the ideas incubated in either Lisp or Smalltalk. Common Lisp's also a bit warty, and you'll find wartiness everywhere you go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haskell's fourth on the list because (I'm told: I've only just started learning it) its purity means that some very common things (like I/O) are more difficult to do than in less purely functional languages. The Haskell folks also use some fairly exotic terminologies (words like &quot;catamorphism&quot;, say), and you'd probably be better off with some programming experience under your belt before tackling it. (But I must re-iterate, I've only just started learning it! Take this opinion with a pinch of salt!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And why C/Delphi last? Because unless you work in embedded systems, you really shouldn't have to learn programming thinking that manual memory management's all there is. Garbage collection worked well enough for a 1980s level machine. Your &lt;em&gt;phone&lt;/em&gt; is that powerful!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, I haven't put &lt;strong&gt;Erlang&lt;/strong&gt; in the above list even though I really should.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-10-09T19:42:49.693" LastActivityDate="2010-10-09T19:42:49.693" CommunityOwnedDate="2011-01-31T13:41:33.057" CommentCount="6" />
  <row Id="10685" PostTypeId="2" ParentId="10656" CreationDate="2010-10-09T07:14:40.060" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Stop bikeshedding and start programming.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This might sound cliche, but it's true: good tools don't make bad programmers good, and bad tools don't make good programmers bad (despite what Dijkstra says). You can spend 90% of your time bikeshedding over technology X vs. technology Y and get nowhere. Or you can choose X (or Y, it doesn't matter) and use it to do real work and get useful experience. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just pick a set of tools and master them, even if they has some drawbacks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you really master your tools (i.e. do more than half a dozen projects in them), you can play with others to try them out. In fact, it's recommended that you do so; you don't want to be a zealot who sees all other opinions as wrong. And sometimes, you might decide that another tool is indeed worth it over your current tool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't decide what to choose on your own, a good way to end your inner debate is to let others choose for you. For example: &lt;strong&gt;Python, Django, jQuery, Vim, Debian&lt;/strong&gt;. Now go and learn them.&lt;/p&gt;&#xA;" OwnerUserId="1303" LastActivityDate="2010-10-09T07:14:40.060" />
  <row Id="10686" PostTypeId="2" ParentId="8973" CreationDate="2010-10-09T08:12:51.787" Score="9" ViewCount="" Body="&lt;h1&gt;Commodore/MSX/Sinclair/Amiga Basic&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;You're probably thinking I'm insane now. '&lt;em&gt;We had to walk in a snowstorm, uphill both ways&lt;/em&gt;,' I hear you say. '&lt;em&gt;We had to &lt;code&gt;PEEK&lt;/code&gt; and &lt;code&gt;POKE&lt;/code&gt;&lt;/em&gt;, &lt;em&gt;we debugged bad &lt;code&gt;GOTO&lt;/code&gt;s with &lt;code&gt;PRINT&lt;/code&gt;s&lt;/em&gt;, &lt;em&gt;16 kB of memory was a luxury&lt;/em&gt;, and you want to be part of it?! You're a loony!'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, here's the thing: you have fond memories of all those good times you spent playing around with your computer when you were young. When you get together, you can share war stories and laugh over how terrible programming was. And you can actually appreciate how modern technology made things easier for programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We, on the other hand, got everything easy; everything &lt;em&gt;just works&lt;/em&gt;,  memory and storage are practically infinite, debuggers and profilers are dozen-a-penny, documentation is two clicks away, and if something is really difficult, we can ask on StackOverflow and get excellent advice in no time. I really wish I had hard times, I really wish so.&lt;/p&gt;&#xA;" OwnerUserId="1303" LastActivityDate="2010-10-09T08:12:51.787" CommentCount="4" />
  <row Id="10687" PostTypeId="2" ParentId="10389" CreationDate="2010-10-09T08:18:07.973" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://NewspeakLanguage.Org/&quot; rel=&quot;nofollow&quot;&gt;Newspeak&lt;/a&gt;. I have only toyed around with it at the moment, but it looks pretty awesome. The Hopscotch framework and its layout DSLs look brilliant.&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-10-09T08:18:07.973" />
  <row Id="10688" PostTypeId="2" ParentId="10644" CreationDate="2010-10-09T08:18:12.077" Score="3" ViewCount="" Body="&lt;p&gt;Some points to be noted in this offshore-onsite engagement are&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Using written communication is always good. Whatever we talk in conference calls may not reach everybody at offshore. Daily task status updates through email is better idea than daily conference calls. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Your evening time is offshore team's morning time which can be ideal time for team meeting/conference calls. People at offshore may not like idea of meeting at morning which is late night for offshore.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;As you are 12hrs behind offshore, you have 12hrs 'extra' buffer time before anything goes wrong. And it enables project working hours as 24 hours. And its great while you sleeping your project will be taken care at offshore.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Communication gap can introduces problems here. If strict timings not followed, offshore timings can eat personal timings at home.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-10-09T08:18:12.077" />
  <row Id="10689" PostTypeId="2" ParentId="8973" CreationDate="2010-10-09T08:19:20.980" Score="35" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C&lt;/strong&gt;&#xA;(Not even C++)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As low level as possible without being impractical as assembler, you have to work with the basic elements of the operative system and concepts that will always be useful to program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's harder than starting with higher level languages as Python, Ruby or even Java, but it will pay on the long run.&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-10-09T08:19:20.980" CommentCount="7" />
  <row Id="10690" PostTypeId="2" ParentId="8973" CreationDate="2010-10-09T08:51:05.533" Score="10" ViewCount="" Body="&lt;p&gt;This question is difficult to answer. I was going to say LISP, or Haskell, or any other functional programming language for that matter, but then thought again:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The programming language(s) with which I am most comfortable these days would not necessarily have been the right one(s) to learn first.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got into programming when I was only 9 years old. BASIC was an easy language to learn. (Of course, in retrospective, I shudder at the kind of code I wrote back then.) I would probably have struggled a lot more with a language like Haskell and all its mathematical influences and terms (&quot;Y-combinators&quot;, &quot;lambda expressions&quot;, &quot;monads&quot;, &quot;arrows&quot;, anyone?) Instead, I basically followed the historic, or &quot;mainstream&quot;, progression from structured programming (GW BASIC) to procedural programming (Turbo Pascal) to OOP (C++), and have finally arrived at more declarative and more functional forms of programming (C#, F#). I am hoping to learn Haskell soon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(The reason for my current interest in declarative and functional programming is that I am impressed by their expressiveness, and because I feel that computers, and compilers in particular, have finally become powerful enough to run programs written in such high-level languages with good performance.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While this progression took me approx. 15 years, which is quite a lot, I think it was a natural way for me to learn programming, internalise important theoretical concepts, and also to understand why programming languages today are the way they are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I was at university, we had to program with Java. Many of my colleagues there who had never before programmed anything struggled with seemingly simple things like syntactic rules (&quot;Why and when do I need to put those &lt;code&gt;{}&lt;/code&gt; brackets around something?&quot;), or OOP ideas (&quot;What's the difference between a class and an object?&quot;, &quot;What does &lt;code&gt;static&lt;/code&gt; mean?&quot;). I put some of their typical problems into question form here, but in fact, they didn't even have the proper vocabulary yet to ask these questions directly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To conclude my answer:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Learning how to program well and really understand what's going on takes time, and it's perhaps a very good thing to take the long road and make some detours before arriving where one wants to be.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="4906" LastEditorUserId="4906" LastEditorDisplayName="" LastEditDate="2010-10-09T09:23:22.783" LastActivityDate="2010-10-09T09:23:22.783" CommentCount="2" />
  <row Id="10691" PostTypeId="2" ParentId="10656" CreationDate="2010-10-09T08:56:47.237" Score="1" ViewCount="" Body="&lt;p&gt;People have said &quot;there is no correct language to choose&quot; but you might want to take some criteria into consideration when you are choosing one. For example, I've run into problems in the past having developed a large project in Rails, finding that at the time it was pretty hard to find anyone hosting Rails and ending up having to do a lot of server configuration and setup myself. So depending on what you are planning to build, you may find value in considering the kind of performance you're going to need, whether it's going to need to be hosted and if not whether it's going to have any pre-requisites that need to be installed on your end user's machine in order for it to work. If you are aiming to target a particular platform, which platform will it be? If you're planning to be cross-platform that will affect which libraries and languages you choose. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thinking through what you're going to be doing and how you expect it to work can be a very useful guide to what language you want to be working in.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-09T08:56:47.237" />
  <row Id="10693" PostTypeId="2" ParentId="10644" CreationDate="2010-10-09T09:10:22.263" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;The project is classic &lt;strong&gt;waterfall&lt;/strong&gt;. We've handed the offshore team a business and a technical design document. We are trying to manage the offshore in an &lt;strong&gt;agile&lt;/strong&gt; way&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The two words highlighted above seems incompatible to me, by nature. But I know it's not the point. As a frustrated Agilist, I had to react :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding offshore management, everything is related to human communication, that are in different cultures, most of the time have different goals, different background, different everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is why I think offshore development is amazing. You met people (and their culture) all over the world (I'm not stuck to india) and that make the things more enjoyable, but also a lot more difficult for the beginner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I assume here you do not write code. If you write code, I highly suggest you to stop here and take a flight to India. I also assume that you don't want to micro-manage them all, and that you are more the interface between the business and the development.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Since you are short on time, I would suggest you to discuss only with the team leader and give me power to manage the team. Self managing teams is very uncommon in india.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The stand-ups meeting is a good idea IF you watch them remotely and don't participate. Let your team leader do it for you.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Take time to discuss with your team leader on phone regularly. At least 3 times a week.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Ask your team leader to aggregate questions and send you a mail ONCE a day. Take the time to answer them, don't rush.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Once you have passed that deadline. Consider purchasing these two books:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0521843553&quot; rel=&quot;nofollow&quot;&gt;Offshore Information Technology&lt;/a&gt; - probably the best book written on the subject&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0976694018&quot; rel=&quot;nofollow&quot;&gt;My Job Went To India&lt;/a&gt; - not specifically on offshore, but contains relevant information about it&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Finally, I will say that the only way to handle offshore development with ease, is to practice, practice, practice. And please, if you don't take lot of pleasure communicating with those marvelous cultures, stop.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-09T09:10:22.263" />
  <row Id="10695" PostTypeId="2" ParentId="10651" CreationDate="2010-10-09T09:16:43.590" Score="3" ViewCount="" Body="&lt;p&gt;I would suggest you to apply for R&amp;amp;D jobs. If it's what you love, and can't do it in your current job, you must move until you become a zombie :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you persevere, you will find a position. This may take few months, but if you fail 10 interviews, that means nothing. Maybe the job is at interview 11. And you don't care if it's at interview 25. Each interview will allows you to capture typical questions they ask and you will be able to improve your knowledge by yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Meanwhile, do R&amp;amp;D in your spare time.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-09T09:16:43.590" />
  <row Id="10696" PostTypeId="2" ParentId="10644" CreationDate="2010-10-09T09:17:23.557" Score="1" ViewCount="" Body="&lt;p&gt;In my experience verbal communication is also important don't replace it entirely with written communication. Try practising both. Sorry that their English is way too bad :(&lt;/p&gt;&#xA;" OwnerUserId="672" LastEditorUserId="15295" LastEditorDisplayName="" LastEditDate="2011-03-17T13:56:08.587" LastActivityDate="2011-03-17T13:56:08.587" />
  <row Id="10698" PostTypeId="2" ParentId="4" CreationDate="2010-10-09T09:26:40.243" Score="8" ViewCount="" Body="&lt;p&gt;&lt;em&gt;One approach that I've found successful is this:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We all know that a computer does only and exactly what it is told to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is the way that we tell a computer &lt;em&gt;now&lt;/em&gt; what we what it to do &lt;em&gt;later&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means that the way your behaviour behaves &lt;em&gt;now&lt;/em&gt; is due to the combined intentions of everyone who wrote any of the code that is running on your machine. When you consider the complexity of the operating system, drivers, programming environment, libraries and so on, it's easy to see that in most systems there must be upwards of 20k people involved, and that there could be over 100k.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The code written by each person reflects their own understanding, motivation, intention and capability. Given that flawless operation of the system requires that &lt;strong&gt;all&lt;/strong&gt; of the code written by these 20k people interacts without error - that &lt;strong&gt;all&lt;/strong&gt; of the code must agree on the meaning and interpretation of the required behaviour, the suprising fact is not that we have bugs, but that we have so few of them.&lt;/p&gt;&#xA;" OwnerUserId="4099" LastActivityDate="2010-10-09T09:26:40.243" CommentCount="1" />
  <row Id="10699" PostTypeId="2" ParentId="10664" CreationDate="2010-10-09T09:30:52.963" Score="10" ViewCount="" Body="&lt;p&gt;Half Sigma is probably generalizing his own situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He is forgetting two things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You don't do a job for others, you do it for yourself. Enjoying it a lot is enough.&lt;/li&gt;&#xA;&lt;li&gt;He has gold in his hands, and he seems forgetting about it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.amazon.com/Edward-Yourdon/e/B000APLEO6/ref=ntt_athr_dp_pel_1&quot; rel=&quot;nofollow&quot;&gt;Edward Yourdon&lt;/a&gt; (the author of the amazing &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/013143635X&quot; rel=&quot;nofollow&quot;&gt;Death March&lt;/a&gt;) did the same mistake.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In &lt;strong&gt;1993&lt;/strong&gt;, Edward published a book called &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/013191958X&quot; rel=&quot;nofollow&quot;&gt;Decline and Fall of the American Programmer&lt;/a&gt;. He used the same arguments as Half Sigma and was pretty sure that the programmer of today (after 2000) was going to disappear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In &lt;strong&gt;1996&lt;/strong&gt;, he published &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/013121831X&quot; rel=&quot;nofollow&quot;&gt;Rise and Resurrection of the American Programmer&lt;/a&gt;. Basically, he said he was wrong in his previous book. Incredible author isn't?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are interested by the subject (future of your profession), read the three books. You will look at the author's article above differently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is my additional arguments:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;If you choose your career for the others (your friends, your parents, your wife, ...) sure you will be miserable.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You are going to spend most of your conscious time at work. So pick a job in which you are happy. You will not face &lt;code&gt;the temporally nature of your capital&lt;/code&gt; since you will learn with pleasure all the time. And more importantly, you will be happy! &lt;code&gt;Low prestige&lt;/code&gt; and &lt;code&gt;working conditions&lt;/code&gt; argument make you laugh. Low prestige for you is the guy that do what he dislikes to satisfy the others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you enjoy your job, you will unlikely be the average programmer. The one that is easy to &lt;code&gt;replace by a good one in india&lt;/code&gt;. You will be more than &quot;just&quot; a programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Further reading: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0976694018&quot; rel=&quot;nofollow&quot;&gt;My Job Went To India&lt;/a&gt; (even the title seems telling the inverse, the title is not about offshoring, but about you as a programmer)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;You have gold in your hands&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And that's what most of you doesn't understand. When a developer make $10.000 a day, it's because it helps his customers or employers making a LOT more. What's the difference between the developer that &lt;code&gt;execute&lt;/code&gt; and the employer that &lt;code&gt;command&lt;/code&gt;? The employer knows that the developer has &lt;strong&gt;gold in his hand&lt;/strong&gt;, the developer doesn't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you will understand that you have gold in your hand, you will do all the thing necessary to exploit it, and create your own project and invest in it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are you own factory. You can build value with nothing but your brain. I think this is our future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Further reading: &lt;a href=&quot;http://www.joelonsoftware.com/&quot; rel=&quot;nofollow&quot;&gt;Joel On Software&lt;/a&gt; is a great start.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-09T12:07:20.290" LastActivityDate="2010-10-09T12:07:20.290" CommentCount="2" />
  <row Id="10700" PostTypeId="2" ParentId="10512" CreationDate="2010-10-09T09:36:01.513" Score="1" ViewCount="" Body="&lt;p&gt;For me designing a good GUI has always been way more challenging that the technical details of implementing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's easy to say &quot;make it simple and clear, like a Mac&quot;. It's incredibly hard to make it such; there are always so many details that should be there available, but at the same time, they should be out of sight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://stuffthathappens.com/blog/wp-content/uploads/2008/03/simplicity.png&quot; alt=&quot;simplicity&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-09T09:41:49.253" LastActivityDate="2010-10-09T09:41:49.253" CommentCount="1" />
  <row Id="10702" PostTypeId="2" ParentId="10655" CreationDate="2010-10-09T12:00:49.150" Score="0" ViewCount="" Body="&lt;p&gt;I use couts/traces all the time - I find that breakpoint style debugging often interrupt my thought process too much and make it more difficult to actually follow the execution. At times, however, breakpoint debugging is absolutely invaluable. I think it's important to be familiar with several styles of debugging and choose the best for each case - breakpointing a mouse move would be hell, for one thing...&lt;/p&gt;&#xA;" OwnerUserId="4389" LastActivityDate="2010-10-09T12:00:49.150" />
  <row Id="10704" PostTypeId="2" ParentId="10655" CreationDate="2010-10-09T12:15:26.170" Score="0" ViewCount="" Body="&lt;p&gt;You are slowly but surely reinventing the &quot;logger&quot; concept, where the three inventions you need are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A seriousness indication of the message.  Is this trivial debug information or a notification that the disk system is corrupted?&lt;/li&gt;&#xA;&lt;li&gt;The ability to skip messages you are not interested in.&lt;/li&gt;&#xA;&lt;li&gt;A need for a message to go somewhere else than on your console. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Others have done the same before you and honed and polished the idea until they got a framework allowing you to say things like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;} catch (Exception e) {&#xA;  log.error(&quot;Subsystem X threw exception!&quot;, e);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The logger subsystem then decides if this message should be logged at all, where it needs to go, as well as collects the exception thrown so it can go with the message.  It might be saved for later in a text file, sent as an email or notified in your favorite instant messenger.  This can be very useful for analyzing problems after they happened.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wrote an introduction to how to start using logging in Java, which you might find interesting, regardless of what language you happen to use.  See &lt;a href=&quot;http://runjva.appspot.com/logging101/index.html&quot; rel=&quot;nofollow&quot;&gt;http://runjva.appspot.com/logging101/index.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-09T12:15:26.170" />
  <row Id="10705" PostTypeId="2" ParentId="10675" CreationDate="2010-10-09T12:28:23.000" Score="2" ViewCount="" Body="&lt;p&gt;I would suggest &lt;em&gt;first&lt;/em&gt; reading Eric Raymonds &quot;How to become a hacker&quot; since he has some very interesting points about how to get started, including Lisp which has the &quot;code is data and data is code&quot; notion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For programming I would also suggest Haskell, Prolog, SQL and assembly language (just some).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless of what you want to learn, take the time to learn it properly and write non-trivial amounts of code.  It is much like bicycle riding - you cannot learn it from a book.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-09T12:28:23.000" CommunityOwnedDate="2011-01-31T13:41:33.057" />
  <row Id="10706" PostTypeId="2" ParentId="10664" CreationDate="2010-10-09T12:33:30.217" Score="0" ViewCount="" Body="&lt;p&gt;I don't agree with the half-sigma either, his example of old knowledge becoming obsolete is not correct. Even though nobody talks about COBOL 70% of all transaction software is written in COBOL and that needs to maintained by someone. It may not be so hype and flashy any longer but 'old' knowledge will always be useful. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming for somebody who is interested in programming its own sake will find a career as a programmer a dream job. People who treat programming as a day job just to earn money, for them it must suck.&lt;/p&gt;&#xA;" OwnerUserId="4910" LastActivityDate="2010-10-09T12:33:30.217" />
  <row Id="10707" PostTypeId="1" CreationDate="2010-10-09T13:19:36.037" Score="1" ViewCount="87" Body="&lt;p&gt;I want to generate a listing of (1) article titles, (2) corresponding authors' last name, and (3) article author e-mail addresses all from pubmed search results.  Using the pubmed EFetch ultility (see this link for details: &lt;a href=&quot;http://www.ncbi.nlm.nih.gov/corehtml/query/static/efetchlit_help.html&quot; rel=&quot;nofollow&quot;&gt;http://www.ncbi.nlm.nih.gov/corehtml/query/static/efetchlit_help.html&lt;/a&gt;) I have successfully created a php script to retrieve this data in an xml format as follows...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?php&#xA;&#xA;$query = '&quot;genetics&quot;[MeSH] AND &quot;Nature&quot;[TA]';&#xA;&#xA;$params = array(&#xA;  'db' =&amp;gt; 'pubmed',&#xA;  'retmode' =&amp;gt; 'xml',&#xA;  'retmax' =&amp;gt; 1,&#xA;  'usehistory' =&amp;gt; 'y',&#xA;  'term' =&amp;gt; $query,&#xA;  );&#xA;&#xA;$xml = simplexml_load_file('http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?' . http_build_query($params));&#xA;&#xA;$params = array(&#xA;  'db' =&amp;gt; 'pubmed',&#xA;  'retmode' =&amp;gt; 'xml',&#xA;  'query_key' =&amp;gt; (string) $xml-&amp;gt;QueryKey,&#xA;  'WebEnv' =&amp;gt; (string) $xml-&amp;gt;WebEnv,&#xA;  'rettype' =&amp;gt; 'full',&#xA;  'retmax' =&amp;gt; 1,&#xA;  );&#xA;&#xA;$xml = simplexml_load_file('http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?' . http_build_query($params));&#xA;&#xA;print_r ($xml);&#xA;&#xA;?&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The XML output generated from my script above is too big for this post (SE will not allow it), so perhaps you could simply run the script yourselves to see the output, but ultimately I want to output the article title, author last name, and author e-mail address perhaps from an array like so:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;foreach ($array as $i =&amp;gt; $value) {&#xA;    echo $array [&quot;title&quot;] . '&amp;lt;br /&amp;gt;';    //output title&#xA;    echo $array [&quot;lastname&quot;] . '&amp;lt;br /&amp;gt;'; //output last name&#xA;    echo $array [&quot;email&quot;];               //output e-mail&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;However, I am having trouble resolving two issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(1) E-mail addresses do not have their own xml field, as you can see if you review the output generated by my example.  Therefore, how do I extract those addresses from the xml?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(2) Once that is accomplished, how do I create the desired array from the full xml output?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you in advance for your help!&lt;/p&gt;&#xA;" LastActivityDate="2010-10-09T13:19:36.037" ClosedDate="2010-10-09T14:50:25.257" Title="How to output an html listing of (1) article title, (2) author name, and (3) e-mail address from pubmed?" Tags="&lt;php&gt;&lt;xml&gt;" CommentCount="1" />
  <row Id="10708" PostTypeId="2" ParentId="7286" CreationDate="2010-10-09T13:35:02.440" Score="0" ViewCount="" Body="&lt;p&gt;If you're talking only about desk organization I'd go for order. My reasoning is that order is a proven process: you first organized your desk and saw how to organize it to be most efficient. In doing so you created some order.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This all go with the quality of a good programmer: good analytical skill (you saw how to places things to maximize efficiency), attention to details (by placing all my things correctly I save ms of time when searching for things), seeing patterns, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This do not means that an unorganized desk is necessarly a bad one (he can be a genius) but I'd say order as an advantage and it's code, while maybe not as clever, is probably more organized.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personnality-wise I'd say it is different and will probably vary according to your taste but I think that chaotic personnality are usually more creative and this might be something you might be looking for in a programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So well, to conclude, I'd say it is relatively subjective first, and worse it depend on the situation (a chaotic desk is not the same as a chaotic personnality) and more than that on the reason behind the order or chaos.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Exemple: I can have an orderly desk because I have a lot of attention to details and just notice that by placing my notes just there it makes space for my cup of coffee just there and just there is just the perfect place not to spill it and be able to reach it easily at the same time .. or I could have an orderly desk because that's how my parents told me to do and I just never questionned them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that we can conclude that, even if both situation is an orderly desk, it is not the same at all to check for programming ability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So in short, do not look at order and chaos by itself but on the reason behind that order and chaos and I think that's the principal thing to look for. If your reasons align with programming quality then who care what others think.&lt;/p&gt;&#xA;" OwnerUserId="3063" LastActivityDate="2010-10-09T13:35:02.440" />
  <row Id="10710" PostTypeId="2" ParentId="7959" CreationDate="2010-10-09T13:53:21.340" Score="2" ViewCount="" Body="&lt;p&gt;Well, since I'm pretty shure you're not talking about gold-plating, this is what I do regarding this problem: We choose the minimun number of developers from the original team necessary to finish the project with quality (By luck - like drawing straws), and them we put some interns to fill up the space (We have good interns, hand picked). The rest can go to the new exciting projects :) So, we do not actually solve this issue, but we try to avoid it completely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. English is not my native language, sorry for anything&lt;/p&gt;&#xA;" LastActivityDate="2010-10-09T13:53:21.340" CommentCount="1" />
  <row Id="10711" PostTypeId="2" ParentId="9062" CreationDate="2010-10-09T14:19:52.453" Score="16" ViewCount="" Body="&lt;p&gt;Move the mouse, or press some key, so the computer does not stay &quot;idle&quot; for too long and activates the screen saver and/or locks the computer.  Even if you are not using the computer at that moment.&lt;/p&gt;&#xA;" OwnerUserId="3228" LastActivityDate="2010-10-09T14:19:52.453" CommunityOwnedDate="2010-10-11T05:17:24.027" />
  <row Id="10712" PostTypeId="2" ParentId="9062" CreationDate="2010-10-09T14:23:24.253" Score="3" ViewCount="" Body="&lt;h2&gt;Coffee&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;It's really not necessary, and it can be counter productive if it makes you stay longer hours working, &lt;strong&gt;instead of getting a good nights sleep&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3228" LastActivityDate="2010-10-09T14:23:24.253" CommunityOwnedDate="2010-10-11T05:17:24.027" />
  <row Id="10713" PostTypeId="2" ParentId="8973" CreationDate="2010-10-09T14:44:27.683" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Haskell&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming in (idiomatic) Haskell requires a rather different mindset than imperative languages, and it can be really hard to shift into that mindset when you're used to C, Java, Python, etc. I'm not sure if a &quot;native Haskeller&quot; would have similar problems moving to an imperative language, but sometimes I wish I had learned Haskell first so I could grok some of its style better.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-09T14:44:27.683" CommentCount="2" />
  <row Id="10714" PostTypeId="2" ParentId="10389" CreationDate="2010-10-09T14:46:49.050" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Cocoa + Interface Builder&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been writing Mac OS X software for almost 6 years, and I haven't found a nicer tool for building GUIs than Interface Builder. Imagine -- gasp! -- building a &lt;em&gt;graphical user interface&lt;/em&gt; with a &lt;em&gt;graphical tool&lt;/em&gt;. Designing and implementing interfaces with IB is faster than any other tool I've used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cocoa's a pretty awesome framework for building GUI apps as well, and melds well with its tools (especially IB).&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-09T14:46:49.050" />
  <row Id="10715" PostTypeId="2" ParentId="3956" CreationDate="2010-10-09T14:59:21.253" Score="1" ViewCount="" Body="&lt;p&gt;The best portable solution I know of is the QSettings class of the Qt framework. It does all the platform-specific stuff automatically, you only have to store/fetch some key-value-pairs and you're done. You can also override the platform-specific default behaviour (e.g. Windows registry) and tell it to use a simple, portable INI file.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://doc.qt.nokia.com/4.7/qsettings.html&quot; rel=&quot;nofollow&quot;&gt;http://doc.qt.nokia.com/4.7/qsettings.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you don't use C++ and Qt, the documentation might contain some useful information about the different ways to store application settings.&lt;/p&gt;&#xA;" OwnerUserId="4884" LastActivityDate="2010-10-09T14:59:21.253" />
  <row Id="10716" PostTypeId="2" ParentId="10574" CreationDate="2010-10-09T15:04:23.927" Score="1" ViewCount="" Body="&lt;p&gt;I used to belong to a Ruby users' group. At meetings, we mostly caught up with Ruby/Rails news (the group was heavily Rails-centric). Members would show off cool projects or brainstorm solutions with the group if they were stuck on an issue. A couple people would give a mini lecture or presentation on some piece of technology. It wasn't even Ruby-specific: sometimes we'd talk about, e.g., Scala, Clojure, or Cocoa programming, too. One time a guy even gave a presentation on using zsh, and another gave one on using vim.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, of course, we drank beer and ate pizza. :)&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-09T15:04:23.927" CommentCount="1" />
  <row Id="10717" PostTypeId="2" ParentId="3956" CreationDate="2010-10-09T15:07:32.780" Score="1" ViewCount="" Body="&lt;p&gt;I think it's best to use the preferred platform-specific mechanism. For example, on OS X, the preferred mechanism is to place a property list in ~/Library/Preferences, and the Cocoa API has a really simple interface for storing and retrieving settings from there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your app is cross-platform, you can abstract this away with a class or whatnot.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-09T15:07:32.780" />
  <row Id="10719" PostTypeId="2" ParentId="8157" CreationDate="2010-10-09T15:22:13.277" Score="1" ViewCount="" Body="&lt;p&gt;Currently we employ several languages in our project: C++, Java, Ruby, Perl, OCaml, Shell, PHP and JavaScript.  And we don't have any problems to put up with them all.  Because &lt;strong&gt;each component has its own structure and directory layout&lt;/strong&gt;.  The build is glued together with simple recursive Makefiles processed by GNU make.  They sometimes call other build systems, if necessary (for example, they invoke Java's Ant to build the Java code).  If these build systems are tied to a specific layout, it's no problem, because each component has its own, and it could be tuned to fulfill the build system's requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key idea was to keep every component separately from the others.  Inside its directory we just stored the files as we thought it would be useful for this particular component.  We don't have large blobs like &lt;code&gt;src/&lt;/code&gt; directories that contain, for example, all the code for one language.  This way we didn't experience any problems with editing code in different components.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-10-09T15:22:13.277" />
  <row Id="10720" PostTypeId="2" ParentId="7286" CreationDate="2010-10-09T15:31:14.380" Score="0" ViewCount="" Body="&lt;p&gt;After my initial enthusiasm has passed, I tend to procrastinate and then do my actual work in a sprint (2-3 sessions of 12-16 hours). Before that sprint, I totally clean my table and at the end it just looks like hell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think order has somewhat of a positive effect, since it feels quite pleasant and somehow makes it easier for my to finally get started (although this may be simply because of the ritual). But order is not worth interrupting my flow.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-10-09T15:31:14.380" />
  <row Id="10721" PostTypeId="2" ParentId="10675" CreationDate="2010-10-09T15:34:23.390" Score="9" ViewCount="" Body="&lt;p&gt;It's hard to claim that any sequence is ideal, but I'll lay out a plan that I can justify:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;C&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning C demands patience and diligence, and will introduce you to the basic ways that computers deal with data and show you almost the widest set of responsibilities that a programmer can accept to deal with such a machine.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Perl&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an antidote to the rigor required by C, try the unbelievably forgiving Perl. What took a week to write in C you can write in an hour in Perl. It introduces a different kind of delight to be found in programming, and shows how excluding certain concerns and details frees the programmer to focus on different things.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;C++&lt;/strong&gt;, or maybe &lt;strong&gt;Java&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next see how C's focus on low-level and primitive aspects of programming serve as a foundation for raising the abstraction level, noting the trades one makes in efficiency when moving up in abstraction. Explore how to form abstractions that can still retain the efficiencies that matter for your program.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Common Lisp&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is the reward for the preceding slog. You'll find echoes of what you learned in all the preceding languages, and see how silly so many of the preceding concessions seem when programming in Lisp. C's preprocessor and C++'s templates prepare one to appreciate Lisp's macro system. You'll regain the ease of expression from Perl, the opportunities for low-level optimization from C, the abstraction-building capabilities of C++ or Java, and go well past them all. None of the preceding three &amp;mdash; perhaps except Perl's debugger &amp;mdash; will have prepared you for the interactive programming experience with a capable &lt;em&gt;REPL&lt;/em&gt; (&quot;read, eval, print loop&quot;). Working with an &lt;em&gt;image&lt;/em&gt;-based environment &amp;mdash; which changes the relationship between your source code and the idea of an &quot;executable program&quot; &amp;mdash; will change your whole idea of what it means to build a program.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Beyond those four, exploring other styles of programming, such as functional programming in Haskell, or logic programming in Prolog, makes for more comprehensive understanding of the range of programming &amp;mdash; wide knowledge, if you will &amp;mdash; but at that point your time is better served by improving your craft &amp;mdash; deep knowledge &amp;mdash; with any language you know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having tasted enough distinct languages, your view will raise to focus on the ideas that transcend any one of them. It's kind of like the difference between learning to drive your father's car and knowing how to drive &lt;em&gt;any&lt;/em&gt; car: You may not enjoy having to drive the rental mini-van for a few days, knowing full well the pleasures of driving a favorite sports car, but you'll figure out how to operate it, and will surely coax more out of the poor beast than an amateur.&lt;/p&gt;&#xA;" OwnerUserId="947" LastActivityDate="2010-10-09T15:34:23.390" CommunityOwnedDate="2011-01-31T13:41:33.057" CommentCount="4" />
  <row Id="10722" PostTypeId="2" ParentId="886" CreationDate="2010-10-09T15:35:40.547" Score="2" ViewCount="" Body="&lt;p&gt;Programming (surprise, surprise...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Gaming (video games, board games)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Art (drawing, painting, 3d-modelling, photography)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Worldbuilding ( &lt;a href=&quot;http://en.wikipedia.org/wiki/Worldbuilding&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Worldbuilding&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="4884" LastActivityDate="2010-10-09T15:35:40.547" />
  <row Id="10723" PostTypeId="1" AcceptedAnswerId="10728" CreationDate="2010-10-09T15:37:27.360" Score="3" ViewCount="138" Body="&lt;p&gt;I am using a java library licensed under AGPL3. &#xA;However, I would like to license my own work as BSD, such that my code could then be integrated in proprietary projects if one strips the library. Will I be allowed to do that?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So far, I couldn't find a clear answer for my problem on the net or in the license text(not a lawyer). Dual-licensing seems cumbersome and ugly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: What happens if I use other libraries which are licensed under BSD or anything else?&lt;/p&gt;&#xA;" OwnerUserId="4927" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-23T22:26:12.163" LastActivityDate="2010-10-23T22:26:12.163" Title="AGPL-compatible license." Tags="&lt;java&gt;&lt;gpl&gt;&lt;legal&gt;&lt;license&gt;&lt;bsd&gt;" AnswerCount="1" />
  <row Id="10724" PostTypeId="2" ParentId="8973" CreationDate="2010-10-09T15:42:55.710" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;D&lt;/strong&gt; from Digital Mars&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's universal, allowing you to write system-level code or high-level, depending on the subset   of the language you use. Being similar in syntax to C and binary compatible with it makes it highly practical as well.&#xA;Too bad it's not too popular and does have a lot of 3rd party tools to work for it; maybe I would have switched to writing mostly in D long time ago.&lt;/p&gt;&#xA;" OwnerUserId="4927" LastActivityDate="2010-10-09T15:42:55.710" CommunityOwnedDate="2010-10-09T15:42:55.710" CommentCount="2" />
  <row Id="10726" PostTypeId="1" CreationDate="2010-10-09T16:04:49.430" Score="4" ViewCount="252" Body="&lt;p&gt;What certifications are widely recognised (for better or worse) in the industry? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the reputation of that particular cert?  For example, one could say MCSD's may be smart, old school and possibly not current with all the latest UI technology.&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-10-10T16:29:10.393" LastActivityDate="2010-10-10T16:29:10.393" Title="What certification program is most recognised among developers (and hopefully managers too)?" Tags="&lt;career&gt;&lt;certification&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="0" />
  <row Id="10728" PostTypeId="2" ParentId="10723" CreationDate="2010-10-09T16:11:16.077" Score="2" ViewCount="" Body="&lt;p&gt;Here's a quote from the Licensing section of the GNU website:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;It has always been the FSF's position&#xA;  that dynamically linking applications&#xA;  to libraries creates a single work&#xA;  derived from both the library code and&#xA;  the application code. The GPL requires&#xA;  that all derivative works be licensed&#xA;  under the GPL, an effect which can be&#xA;  described as “hereditary.” So, if an&#xA;  application links to a library&#xA;  licensed under the GPL, the&#xA;  application too must be licensed under&#xA;  the GPL.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(the &lt;a href=&quot;http://www.gnu.org/licenses/lgpl-java.html&quot; rel=&quot;nofollow&quot;&gt;specific page&lt;/a&gt; is discussing Java and LGPL, but the general point applies here)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;&lt;strong&gt;If you want to license your original application as BSD, you must first create it &lt;em&gt;without&lt;/em&gt; using that library at all.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, you can create a derivative work by combining your BSD application and the AGPL3 library, with the whole thing licensed as AGPL3.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This would effectively be a new, different application, and is not dual-licensing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you want your BSD application to be used commercially, you would need to release it separately from the extended AGPL3 version of the application - which means two distinct links on your download page, with a clear explanation on the difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(NOTE: Anywhere I use &quot;BSD&quot; in this answer, it's important to note this refers to the &quot;&lt;a href=&quot;http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5&quot; rel=&quot;nofollow&quot;&gt;modified BSD&lt;/a&gt;&quot; &lt;em&gt;not&lt;/em&gt; the &lt;a href=&quot;http://www.gnu.org/licenses/license-list.html#OriginalBSD&quot; rel=&quot;nofollow&quot;&gt;original BSD&lt;/a&gt;.)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What happens if I use other libraries which are licensed under BSD or anything else?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's fine. So long as the license allows for the code to be re-released under a compatible license and the AGPLv3 is considered compatible (which the BSD is - &lt;a href=&quot;http://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses&quot; rel=&quot;nofollow&quot;&gt;see a full list here&lt;/a&gt;), then you've got no problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you plan on using lots of libraries/etc then it's a good idea to maintain a distinct credits file, where you can list each specific component you use, its website address, licensing requirements, and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;&lt;em&gt;(usual disclaimer: I'm not a lawyer, follow at own risk, etc)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="89" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-10-09T17:04:30.333" LastActivityDate="2010-10-09T17:04:30.333" CommentCount="7" />
  <row Id="10731" PostTypeId="1" AcceptedAnswerId="10771" CreationDate="2010-10-09T16:30:11.160" Score="5" ViewCount="116" Body="&lt;p&gt;I just started doing PhD and we are supposed to do a project for a class, there are 14 people taking the class and we are supposed to develop a system all together.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was away from academia and working in the industry before, and I know it is very hard to manage even a couple of people towards the same goal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are going to make the first meeting in a couple of weeks. First, I will suggest using a version control system like SVN. Second, I will try to take the lead for the architecture of the system, because I think I am more experienced. Since the class is about &lt;em&gt;computer vision&lt;/em&gt; and I anticipate that most of the people's background is research related so there is a big chance that I am more experienced. I will gladly hand architecture to someone else if he/she is more experienced.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What else should we do to progress without much hassle?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS. You can assume every one of us is going to work remotely, and meet once in a week at it's best (not everyone will attend though). And the project needs to be finished in 2 months. It does not need to be a perfect, complete product, we just need to make a prototype.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PPS. The aspects of the group reminds me of open source project groups, maybe the answers will be helpful for those groups as well.&lt;/p&gt;&#xA;" OwnerUserId="1517" LastActivityDate="2010-10-09T22:59:38.137" Title="How to manage a project in school?" Tags="&lt;project-management&gt;&lt;school&gt;&lt;grad-school&gt;" AnswerCount="3" />
  <row Id="10732" PostTypeId="2" ParentId="10087" CreationDate="2010-10-09T16:30:43.113" Score="1" ViewCount="" Body="&lt;h2&gt;email&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Something always gets lost or misunderstood, when you receive 100+ daily.&lt;/p&gt;&#xA;" OwnerUserId="3228" LastActivityDate="2010-10-09T16:30:43.113" CommunityOwnedDate="2010-10-09T16:30:43.113" />
  <row Id="10733" PostTypeId="2" ParentId="10731" CreationDate="2010-10-09T16:38:17.947" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;A DVCS like git or hg sounds more appropriate than svn for what you're descibing.&lt;/li&gt;&#xA;&lt;li&gt;Setting up some web based project management tool would help in keeping track of who's working on what etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2115" LastActivityDate="2010-10-09T16:38:17.947" />
  <row Id="10734" PostTypeId="2" ParentId="10511" CreationDate="2010-10-09T16:45:09.710" Score="5" ViewCount="" Body="&lt;p&gt;These 3 points from Alistair Cockburn's &lt;a href=&quot;http://alistair.cockburn.us/get/1829&quot; rel=&quot;nofollow&quot;&gt;Software Development in the 21st century&lt;/a&gt; sum it up for me - &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Can they easily detect something needs attention?           (Good at Looking Around) &lt;/li&gt;&#xA;&lt;li&gt;Will they care enough to do something about it?           (Pride-in-work; Amicability) &lt;/li&gt;&#xA;&lt;li&gt;Can they effectively pass along the information?           (Proximity; face-to-face) &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-10-09T16:45:09.710" />
  <row Id="10735" PostTypeId="1" CreationDate="2010-10-09T16:48:31.773" Score="5" ViewCount="179" Body="&lt;p&gt;Bugs creeping into code can be minimized, but not entirely eliminated as it is written - programmers are, although many would &lt;a href=&quot;http://programmers.stackexchange.com/q/4693/2210&quot;&gt;disagree&lt;/a&gt;, only humans.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When we do detect an error in our code, what can we do to weed it out? How should we approach it to make most effective use of our valuable time and enable us to spend less time trying to find it and more time coding? Also, what should we avoid when debugging?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note here that we're not talking about &lt;em&gt;preventing&lt;/em&gt; bugs; we're talking about what to do when bugs &lt;em&gt;do&lt;/em&gt; appear. This is a wide field, I know, and may be highly dependent on language, platform and tools. If so, keep to encompassing answers such as mindsets and general methods.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-09T18:58:43.750" Title="How to most effectively debug code?" Tags="&lt;debugging&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="10736" PostTypeId="1" CreationDate="2010-10-09T17:01:13.900" Score="4" ViewCount="388" Body="&lt;p&gt;I am currently planning to develop a J2EE website and wish to bring in 1 developer and 1 web designer to assist me. The project is a financial app with a niche market. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I plan to keep the source closed . However, I fear that my would-be employees could easily copy the codebase and use it /sell it to a third party especially when they switch jobs. The app development will take 4-6months and perhaps more and I may have to bring in people after the app goes live. How do I keep the source to myself. Are there techniques companies use to guard their source.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I foresee disabling pendrives and dvd writers on my development machines, but uploading data or attaching the code in one's mail would still be possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is incomplete. But programmers who have been in my situation, please advice. How should I go about this? Building a team, maintaining code-secrecy,etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am looking forward to sign a secrecy contract with the employees if needed too.&#xA;(Please add relevant tags)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you for all the answers. I certainly won't be disabling all USB ports and DVD writers now. But I think I should be logging activity(How exactly should I do that?) I am wary of scalpers who would join and then run off with the existing code. I haven't met any, but I have been advised to be wary of them. I would include a secrecy clause, but given this is a startup with almost no funding and in a highly competitive business niche with bigger players in the field, I doubt I would be able to detect or pursue any scalpers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do I hire people I trust, when I don't know them personally. Their resume will be helpful but otherwise trust will develop only with time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But finally even if they do run away with the code, it is service that matters after the sale is made. So I am not really worried for the long term.&lt;/p&gt;&#xA;" OwnerUserId="4429" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-10-12T01:49:35.523" LastActivityDate="2010-10-12T22:14:38.003" Title="How to manage a Closed Source High-Risk Project?" Tags="&lt;version-control&gt;" AnswerCount="5" CommentCount="12" FavoriteCount="3" />
  <row Id="10737" PostTypeId="2" ParentId="5560" CreationDate="2010-10-09T17:05:47.117" Score="3" ViewCount="" Body="&lt;p&gt;I started doing TDD in early August 2009 and convinced my whole company to switch to it in September/October 2009. Presently, the whole dev team is fully converted, and committing untested code to the repo is considered a Bad Thing and thrown upon. It has been working great for us, and I cannot imagine switching back to cowboy coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there are two problems that are pretty noticeable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The test suite has to be maintained&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you are serious about TDD, you'll end up writing &lt;em&gt;lots&lt;/em&gt; of tests. Moreover, it takes some time and experience to realize what is the &lt;em&gt;right&lt;/em&gt; granularity of tests (overdoing is almost as bad as underdoing it). These tests are also &lt;em&gt;code&lt;/em&gt;, and they are susceptible to bitrot. This means that you have to maintain them as everything else: update it when you upgrade libraries they depend on, refactor from time to time... When you make big changes in your code, a lot of tests will suddenly become out of date or even plain wrong. If you are lucky, you can simply delete them, but a lot of times you'll end up extracting the useful bits and adapting them to the new architecture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Testing abstractions leak from time to time&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are using Django, which has a pretty great testing framework. However, sometimes it makes assumptions that are slightly at odds with reality. For example, some middleware may break the tests. Or, some tests make assumptions about a caching backend. Also, if you are using a &quot;real&quot; db (not SQLite3), then preparing the db for the tests will take a lot of time. Sure, you can (and should) use SQLite3 and an in-memory db for tests you do locally, but some code will just behave differently depending on the database you use. Setting up a continuous integration server that runs in a realistic setup is a must.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Some people will tell you that you should mock all the stuff like the database, or your tests aren't &quot;pure,&quot; but that's only ideology speaking. If you make errors in your mocking code (and believe me, you will), your testsuite will be worthless.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This all said, the problems I described start being noticeable only when you are quite advanced with TDD... When you are just starting with TDD (or working on smaller projects) test refactoring won't be an issue.&lt;/p&gt;&#xA;" OwnerUserId="4928" LastActivityDate="2010-10-09T17:05:47.117" CommentCount="1" />
  <row Id="10738" PostTypeId="2" ParentId="10736" CreationDate="2010-10-09T17:07:12.707" Score="26" ViewCount="" Body="&lt;p&gt;You need to trust your developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Virtually all professional developers won't steal your source. It's understood that if you work for somebody else &lt;em&gt;they&lt;/em&gt; own the code that you write. They &lt;em&gt;might&lt;/em&gt; copy code for reference purposes, but won't offer it for sale to anyone else. After all if a developer is prepared to do that to their previous employer then what will they do to their next?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disabling usb ports and dvd writers will engender a feeling of distrust which will, paradoxically, make it more likely that the developers will copy the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By all means add a secrecy clause to the contract, but don't make a big deal out of it.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-09T17:07:12.707" CommentCount="4" />
  <row Id="10740" PostTypeId="2" ParentId="10736" CreationDate="2010-10-09T17:16:10.923" Score="6" ViewCount="" Body="&lt;p&gt;I've heard it said that no idea on its own is worth more than $20 (and that's Canadian dollars!) The idea only has value if it is executed well. Even if it comes to them stealing the code and trying to make a go of it themselves, odds are you have a better idea of what the next steps are, and more contacts with prospective buyers of the software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should definitely only hire people you trust, but even if they steal your code and try to sell it, they are unlikely to get very far.&lt;/p&gt;&#xA;" OwnerUserId="1852" LastActivityDate="2010-10-09T17:16:10.923" CommentCount="1" />
  <row Id="10741" PostTypeId="2" ParentId="10735" CreationDate="2010-10-09T17:22:58.590" Score="4" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Write tests. Testing is not only great at preventing bugs (in my experience, TDD done right eliminates almost all trivial, stupid bugs), but also helps a lot in debugging. Testing forces your design to be rather modular, which makes isolating and replicating the problem a lot easier. Also, you control the environment, so there will be a lot less surprises. Moreover, once you get a failing test case, you can be reasonably sure that you've nailed the &lt;em&gt;real&lt;/em&gt; reason of the behavior that is bothering you.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Learn how to use a debugger. &lt;code&gt;print&lt;/code&gt; statements may work reasonably well at some level, but a debugger most of the time is &lt;em&gt;very&lt;/em&gt; helpful (and once you know how to use it, it is a lot more comfortable than &lt;code&gt;print&lt;/code&gt; statements).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Talk about someone about your problem, even if it's just a &lt;a href=&quot;http://ttp://en.wikipedia.org/wiki/Rubber_duck_debugging&quot; rel=&quot;nofollow&quot;&gt;rubber duckie&lt;/a&gt;. Forcing yourself to express the problem you are working on in words really does miracles.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Give yourself a time limit. If for example after 45 minutes you feel you are going nowhere, just switch to other tasks for some time. When you get back to your bug, you'll hopefully be able to see other possible solutions that you wouldn't have have considered before.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4928" LastActivityDate="2010-10-09T17:22:58.590" />
  <row Id="10743" PostTypeId="2" ParentId="10675" CreationDate="2010-10-09T17:50:32.813" Score="2" ViewCount="" Body="&lt;p&gt;First&gt; What do you want to do when you start programming? Learning how to be a game programmer is different than learning how to be a database programmer for a business... is different than a web based programmer...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second&gt; Once you start learning, do you want to start high and work your way down? Or start low and work your way up. Learning C# (high level) is a lot different than learning Assembly (Low level).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A huge choice will depend on what you want to do. Programming a driver will most likely include C or Assembly... Programming a website will be PHP, C#, asp, etc... You won't touch assembly for web programming... etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as basics... once you decide WHAT you want to do, its easier to pick a language. I, for example, have become a data analyst at a hospital. So my &quot;choice&quot; of languages is SQL/TSQL/DB2 for data access, C# WPF for windows clients, Silverlight for web clients, some RPG/CL for IBM back-end logic... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I stick to a good book + build your own program to practice the language. I like APress and loved reading C# 2008 Illustrated when learning C#. They have other books that encompass basics for the unlearned as well as the expert.&lt;/p&gt;&#xA;" OwnerUserId="2536" LastActivityDate="2010-10-09T17:50:32.813" CommunityOwnedDate="2011-01-31T13:41:33.057" />
  <row Id="10744" PostTypeId="2" ParentId="10735" CreationDate="2010-10-09T17:52:07.737" Score="1" ViewCount="" Body="&lt;p&gt;I think the reproduction of a bug is also important. All cases which reproduce the bug can be listed and then you can make sure that your bug fix covers all those cases.&lt;/p&gt;&#xA;" OwnerUserId="3049" LastActivityDate="2010-10-09T17:52:07.737" />
  <row Id="10745" PostTypeId="2" ParentId="10726" CreationDate="2010-10-09T17:56:06.153" Score="2" ViewCount="" Body="&lt;p&gt;A certification alone can't and shouldn't get you a job.  A certification that enhances your experience can be used to differentiate you from other candidates if you market yourself well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From personal experience, I started .NET programming with 1.0 and picked up the MCAD.NET certification very early (I took the exams the month they came out and was one of the first 5k to get the cert) and ruthlessly marketed it.  I eventually got my MCSD.NET, but the impact was less because of the greater number of candidates who had it.  It helped me round out my knowledge of the subject area, but wasn't the $ bump I saw earlier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An MCTS would help if you are a .NET programmer, but not if you are a Linux sysadmin or Java programmer.  Look at your resume and find the areas that you want to enhance and then find the most current certifications in that area and use them to broaden your knowledge of the subject matter.  &lt;a href=&quot;http://in.sun.com/training/certification/java/scjp.xml&quot; rel=&quot;nofollow&quot;&gt;SCJP&lt;/a&gt;, &lt;a href=&quot;http://www.redhat.com/certification/rhce/&quot; rel=&quot;nofollow&quot;&gt;RHCE&lt;/a&gt;, &lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/mcpd.aspx&quot; rel=&quot;nofollow&quot;&gt;MCPD&lt;/a&gt;, or &lt;a href=&quot;http://www.novell.com/training/certinfo/cle/&quot; rel=&quot;nofollow&quot;&gt;Novel CLE&lt;/a&gt; are all appropriate if they are in sync with your experience and the position you are wanting to get.&lt;/p&gt;&#xA;" OwnerUserId="1609" LastActivityDate="2010-10-09T17:56:06.153" CommentCount="2" />
  <row Id="10746" PostTypeId="2" ParentId="8973" CreationDate="2010-10-09T18:01:49.277" Score="7" ViewCount="" Body="&lt;p&gt;C#. I started out with lower level languages that weren't conducive to work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reverse of other answer saying &quot;C... As low level as possible without being impractical as assembler&quot; but on the flip side: C# is high enough to do end-to-end solutions without having to rely on learning the guts.&lt;/p&gt;&#xA;" OwnerUserId="2536" LastActivityDate="2010-10-09T18:01:49.277" />
  <row Id="10747" PostTypeId="2" ParentId="10726" CreationDate="2010-10-09T18:04:19.873" Score="1" ViewCount="" Body="&lt;p&gt;Many years ago I did the MSCSE and SCJP certifications, but I don't know of any certification program that carries much weight among developers. In my experience certifications have three functions: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;They may be required for various&#xA;vendor partner programs, which can be&#xA;very important for small shops.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They help get your resume past HR&#xA; buzzword filters.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Preparing for a certification can be good discipline&#xA;for learning a new technology.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;These benefits are nothing to sneeze at, but most developers are just not going to be very impressed that you've passed a multiple choice test. I haven't encountered any developers who have done the more advanced Sun certifications or Microsoft Architect which require more then passing a computerized test. Heck, there is a significant plurality of programmers that is not even going to be terribly impressed by a computer science degree.&lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-10-09T18:04:19.873" />
  <row Id="10748" PostTypeId="2" ParentId="10675" CreationDate="2010-10-09T18:18:30.060" Score="20" ViewCount="" Body="&lt;h2&gt;Python, Lisp, C, Haskell&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Assuming the question was about an ideal learning sequence for newcomers to programming (since old hands at programming will have had their own (likely accidental) learning sequence), I'd suggest reading &lt;a href=&quot;http://www.norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;Norvig's essay on how to learn programming in 10 years&lt;/a&gt;, then:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://python.org&quot; rel=&quot;nofollow&quot;&gt;Python&lt;/a&gt;: Start with a dynamic, high-level, OO &amp;amp; functional language.  Because it's &lt;strong&gt;really important for beginners to feel productive ASAP&lt;/strong&gt;, and not be turned off by alien syntax, lack of libraries, lack of multi-platform, lack of learning resources, and lack of community.  Python is highly readable, has tons of good libraries (esp. scientific libraries - a modern scientist/engineer must know how to program), is easily run from most OSes, has tons of tutorials and entire free books, and is generally user-friendly — all while still being powerful enough to grow with you as you become an advanced programmer working on large problems.  It's also important to reinforce important+useful conventions for a beginner: code readability counts a LOT, and you should be writing code for yourself and others to readily understand.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Lisp: In particular, at least skim &lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book.html&quot; rel=&quot;nofollow&quot;&gt;The Structure and Interpretation of Computer Programs&lt;/a&gt; or watch the &lt;a href=&quot;http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/&quot; rel=&quot;nofollow&quot;&gt;SICP videos&lt;/a&gt;, and have one's eyes opened very wide by seeing the foundations and expressive power of programming - one can do so much with so little.  Learn how Lisp can express not just the functional paradigm, but OO, logical/declarative, and more - like the creation of new domain-specific languages.  Read &lt;a href=&quot;http://www.norvig.com/paip.html&quot; rel=&quot;nofollow&quot;&gt;Norvig's PAIP&lt;/a&gt; to witness what a master can do with the language.  Then check out &lt;a href=&quot;http://clojure.org/&quot; rel=&quot;nofollow&quot;&gt;Clojure&lt;/a&gt;, a modern Lisp dialect that could be one of the Next Big Things.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;C: Only because it's the lingua-franca of computing. :)  Possibly optional these days if one is primarily a programmer in a particular non-software domain.  I find it ugly but worth knowing about to get an appreciation for the underlying hardware.  Go with &lt;a href=&quot;http://en.wikipedia.org/wiki/The_C_Programming_Language_%28book%29&quot; rel=&quot;nofollow&quot;&gt;K&amp;amp;R&lt;/a&gt;, of course.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://haskell.org&quot; rel=&quot;nofollow&quot;&gt;Haskell&lt;/a&gt;: Pure functional power.  Where current Com.Sci. theory and practical expressive power meet.  See &lt;a href=&quot;http://book.realworldhaskell.org/&quot; rel=&quot;nofollow&quot;&gt;Real World Haskell&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;After the above tour, one would be very adept at tackling problems and expressing solutions in code, and be totally comfortable with the &lt;a href=&quot;http://www.info.ucl.ac.be/~pvr/paradigms.html&quot; rel=&quot;nofollow&quot;&gt;paradigms here&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/yaONl.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2026" LastEditorUserId="2026" LastEditorDisplayName="" LastEditDate="2010-10-09T18:25:11.683" LastActivityDate="2010-10-09T18:25:11.683" CommunityOwnedDate="2011-01-31T13:41:33.057" CommentCount="4" />
  <row Id="10749" PostTypeId="1" CreationDate="2010-10-09T18:52:00.310" Score="4" ViewCount="210" Body="&lt;p&gt;What languages are more suited for long term projects (&lt;em&gt;will have to be recompiled in 20 years, with the minimum amount of changes in the source code&lt;/em&gt;), in terms of minimal amount of rewriting what's already written due to changing of the versions of the language &amp;amp; changing of compilers &amp;amp; OSs (i.e. backward compatibility), as far as we can judge from past references?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(we can't tell what the future will bring, so no &lt;em&gt;predictions&lt;/em&gt; here - just base your answer on so far known ones)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO, yes, *nix oriented ones will have some advantage in here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example,&lt;br&gt;&#xA;Perl (good, AFAIK), vs.&lt;br&gt;&#xA;Python (bad with it's v2.5 -&gt; v3.x rather large backward compatibility breakup - it has also been said that back compatibility will not be kept in future versions).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you could explain your arguments as to why did you choose a particular language, along with what were the larger changes in it.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-02-18T08:46:23.860" LastActivityDate="2011-02-18T08:46:23.860" Title="What languages are more suited for long term projects?" Tags="&lt;programming-languages&gt;&lt;project&gt;" AnswerCount="4" />
  <row Id="10750" PostTypeId="2" ParentId="419" CreationDate="2010-10-09T18:55:13.683" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Pinky&lt;/strong&gt;: &quot;Gee, Brain, what do you want to do tonight?&quot;&lt;br/&gt;&#xA;&lt;strong&gt;The Brain&lt;/strong&gt;: &quot;The same thing we do every night, Pinky—try to take over the world!&quot;&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-09T18:55:13.683" />
  <row Id="10751" PostTypeId="2" ParentId="10735" CreationDate="2010-10-09T18:58:43.750" Score="3" ViewCount="" Body="&lt;p&gt;The mindset and attitude to debugging is perhaps the most important part, because it determines how effectively you'll fix the error, and what you'll learn from it — if anything.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Classics on software development like &lt;em&gt;The Pragmatic Programmer&lt;/em&gt; and &lt;em&gt;Code Complete&lt;/em&gt; basically argue for the same approach: &lt;strong&gt;every error is an opportunity to learn, almost always about yourself&lt;/strong&gt; (because only beginners blame the compiler/computer first).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So treat it as a mystery which will be interesting to crack.  And cracking that mystery should be done systematically, by expressing our assumptions (to ourselves, or to others) and then testing our assumptions, one-by-one if need be — using every tool at our disposal, especially debuggers and automated test frameworks.  Then after the mystery is solved, you can do even better by looking through all your code for similar errors you may have made; and write an automated test to ensure the error will not happen unknowingly again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One last note - I prefer to call errors &quot;errors&quot; and not &quot;bugs&quot; - Dijkstra chided his colleagues for using the latter term because it's dishonest, supporting the idea that pernicious and fickle bug-fairies planted bugs in our programs while we weren't looking, instead of being there because of our own (sloppy) thinking: &lt;a href=&quot;http://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/EWD1036.html&quot; rel=&quot;nofollow&quot;&gt;http://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/EWD1036.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;We could, for instance, begin with cleaning up our language by no longer calling a bug a bug but by calling it an error. It is much more honest because it squarely puts the blame where it belongs, viz. with the programmer who made the error. The animistic metaphor of the bug that maliciously sneaked in while the programmer was not looking is intellectually dishonest as it disguises that the error is the programmer's own creation. The nice thing of this simple change of vocabulary is that it has such a profound effect: while, before, a program with only one bug used to be &quot;almost correct&quot;, afterwards a program with an error is just &quot;wrong&quot; (because in error).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2026" LastActivityDate="2010-10-09T18:58:43.750" CommentCount="1" />
  <row Id="10752" PostTypeId="2" ParentId="10650" CreationDate="2010-10-09T18:59:54.503" Score="2" ViewCount="" Body="&lt;p&gt;A classical engineering desk lamp &lt;em&gt;(I have no idea whether it has a better name)&lt;/em&gt; with an ordinary 60W lightbulb. It gives a much more natural* light (yellowish) to the eyes, than any other type (halogen, LED, ...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;*&lt;/code&gt; natural = closer to daylight; architects have a way of comparing different sorts of light sources, in comparison to daylight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/JiQUg.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually comes with a desk clamp (for up to 5-6cm desks) with a strong screw. But I couldn't find a picture with that included.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-09T18:59:54.503" />
  <row Id="10753" PostTypeId="2" ParentId="10664" CreationDate="2010-10-09T19:11:00.590" Score="1" ViewCount="" Body="&lt;p&gt;Would 12 years in the field be enough to count as &quot;senior&quot; experience in this debate?  The author of that article confuses offshoring with outsourcing as a starting point.  Outsourcing is rather old as companies will use other companies for various functions, e.g. how many companies use FedEx or UPS instead of having their own employees be couriers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The University of Waterloo is a school that is well-known for its Computer Science and Engineering programs.  Research in Motion, the company behind the Blackberry devices, is headquartered in Waterloo, Ontario.  This is without going into Stanford, Berkeley and other schools in America that have famous technology areas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming isn't cool true, but the field does evolve.  Some like this and some don't.  I remember learning about ASP and ASP.Net on the job so I have had those forks in the past.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;&lt;a href=&quot;http://it.toolbox.com/blogs/managing-infosec/the-lack-of-it-graduates-has-deep-implications-for-the-us-military-41589&quot; rel=&quot;nofollow&quot;&gt;The lack of IT graduates has deep implications for the US Military&lt;/a&gt;&quot; would be a blog entry that I'd use to counter that article cited in the question.  Fog Creek Software would be an example of an American company that probably shouldn't be a success if the article was right, no?&lt;/p&gt;&#xA;" OwnerUserId="4327" LastEditorUserId="4327" LastEditorDisplayName="" LastEditDate="2010-10-09T19:27:52.580" LastActivityDate="2010-10-09T19:27:52.580" />
  <row Id="10754" PostTypeId="2" ParentId="10749" CreationDate="2010-10-09T19:22:05.403" Score="10" ViewCount="" Body="&lt;p&gt;I would have to say without a doubt that if you go with a compiled language which has a steering committee you are going to have the longest longevity.  Take a look at C for example except for the very earliest C code you can still compile your code and have it work.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another issue to take a look at is what OS features and third party libraries/components you depend on.  For example you could have written some very portable code in the late 80's that depends on certain features of Netware and no matter what you do today you would have to revisit that code.  &lt;/p&gt;&#xA;" OwnerUserId="4553" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-24T22:31:00.840" LastActivityDate="2010-11-24T22:31:00.840" CommentCount="2" />
  <row Id="10756" PostTypeId="1" CreationDate="2010-10-09T19:26:59.460" Score="7" ViewCount="179" Body="&lt;p&gt;I want to improve my programming knowledge - filling in holes and working out what I don't know - and a good way to do that seems to be understanding all the different programming paradigms that are out there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wikipedia &lt;a href=&quot;http://en.wikipedia.org/wiki/Programming_paradigms&quot; rel=&quot;nofollow&quot;&gt;lists a lot of them&lt;/a&gt; and provides some information, but it's not all well-written, I'm finding that difficult to digest, and hard to understand how they inter-relate (i.e. which ones are complementary, competing, or completely separate ideas).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can anyone recommend a good place I can read up on all these concepts, in a way that is consistent, interesting and engaging, and will help me to ensure I understand it all?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(To be clear, I'm not looking for language recommendations - rather, what I'd like is explanations and general information about paradigms themselves, 'untainted' by a particular implementation.)&lt;/p&gt;&#xA;" OwnerUserId="89" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-10-09T19:47:01.030" LastActivityDate="2010-10-10T03:04:44.813" Title="What's a good resource for learning about all the different programming paradigms?" Tags="&lt;learning&gt;&lt;recommendations&gt;&lt;paradigms&gt;&lt;knowledge&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="3" />
  <row Id="10757" PostTypeId="1" CreationDate="2010-10-09T19:34:10.270" Score="7" ViewCount="229" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Don%27t_repeat_yourself&quot; rel=&quot;nofollow&quot;&gt;The DRY Principle (Don't Repeat Yourself)&lt;/a&gt; states that &quot;every piece of knowledge must have a single, unambiguous, authoritative representation within a system.&quot;  Most of the time this refers to code, but it is often extended to documentation also.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is said that every software system has an architecture whether you chose it or not.  In other words, the software you build has a structure and that &quot;as built&quot; structure is the architecture of the software.  &lt;strong&gt;Since a built software system comes with an architecture, is creating an architecture description of that system a violation of the DRY Principle?&lt;/strong&gt;  After all, if you need to know the architecture then you could always just look at the code...&lt;/p&gt;&#xA;" OwnerUserId="3966" LastActivityDate="2010-10-09T23:04:58.570" Title="Is an architecture description document a violation of the DRY Principle?" Tags="&lt;agile&gt;&lt;documentation&gt;&lt;architecture&gt;&lt;dry-principle&gt;" AnswerCount="5" CommentCount="5" />
  <row Id="10758" PostTypeId="2" ParentId="10757" CreationDate="2010-10-09T19:45:13.667" Score="1" ViewCount="" Body="&lt;p&gt;An architecture description does not violate the DRY principle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your software system comes with an architecture, sure. And it's spread out over many files, in many classes, with many extraneous and details that are unnecessary for an overview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your architecture document should be like the first paragraph of a news report: it's an outline, a summary, a roadmap of the project.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-09T19:45:13.667" />
  <row Id="10759" PostTypeId="2" ParentId="10749" CreationDate="2010-10-09T19:48:13.883" Score="4" ViewCount="" Body="&lt;p&gt;This is why companies go with IBM and MVS. Programs on the MVS system are compiled into &quot;TEXT&quot; decks (object files) and those text decks are guaranteed to run on all of their hardware that supports MVS. IBM supports 360 version, from the 60's and 70's, text decks today on their latest hardware. All that is required is to link to the apprpriate libraries and those libraries are available.&lt;BR&gt;&#xA;I am not a lover of IBM, but I find this guarantee to be one of the main reasons that IBM stayed on top for so long.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-10-09T19:48:13.883" CommentCount="1" />
  <row Id="10760" PostTypeId="1" CreationDate="2010-10-09T19:59:33.377" Score="3" ViewCount="119" Body="&lt;p&gt;I would love to learn from computer game programmers about how to program a tiles-based scrolling. Now, in order to find these programmers, it could be interesting, to pose a contest or challenge on tiles-based scrolling (Innocentive.com does this for more complicated problems). Does anyone know where I could post my personal contest for programmers?&lt;/p&gt;&#xA;" OwnerUserId="4723" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-10-09T20:13:24.153" LastActivityDate="2010-10-10T06:00:19.210" Title="Where can I post personal programming contests for others to try?" Tags="&lt;recommendations&gt;&lt;personal-projects&gt;&lt;contests&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="1" />
  <row Id="10761" PostTypeId="2" ParentId="7000" CreationDate="2010-10-09T20:02:43.277" Score="1" ViewCount="" Body="&lt;p&gt;We're now (October 2010) in a time of immense transition. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We could today purchase a 12 core desktop.&lt;br&gt;&#xA;We could today purchase a 448 core processing &lt;em&gt;card&lt;/em&gt; (search for NVidia Tesla).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are limits to how much we developers can work in ignorance of the tremendously parallel environments our programs will be working within in the near future. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Operating systems, runtime environments and programming libraries can only do so much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the future, we'll need to be partitioning our processing into discrete chunks for independent processing, using abstractions like the new .NET &quot;Task Framework&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Details such as cache management and affinity will still be present - but they'll be the provence of the ultra-performant application only. No same developer will be wanting to manage these details manually across a 10k core machine.&lt;/p&gt;&#xA;" OwnerUserId="4099" LastActivityDate="2010-10-09T20:02:43.277" />
  <row Id="10763" PostTypeId="2" ParentId="10760" CreationDate="2010-10-09T20:09:16.483" Score="1" ViewCount="" Body="&lt;p&gt;Try TopCoder, &lt;a href=&quot;http://www.topcoder.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.topcoder.com/&lt;/a&gt;  which seems to be closest to what you're looking for.&lt;/p&gt;&#xA;" OwnerUserId="2026" LastActivityDate="2010-10-09T20:09:16.483" CommentCount="1" />
  <row Id="10764" PostTypeId="2" ParentId="10756" CreationDate="2010-10-09T20:12:32.780" Score="4" ViewCount="" Body="&lt;p&gt;Be sure to check &lt;a href=&quot;http://www.info.ucl.ac.be/~pvr/paradigms.html&quot; rel=&quot;nofollow&quot;&gt;this map&lt;/a&gt;, from the book &lt;em&gt;&lt;a href=&quot;http://www.info.ucl.ac.be/~pvr/book.html&quot; rel=&quot;nofollow&quot;&gt;Concepts, Techniques, and Models of Computer Programming&lt;/a&gt;&lt;/em&gt;: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/vDlJQ.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2026" LastActivityDate="2010-10-09T20:12:32.780" CommentCount="1" />
  <row Id="10765" PostTypeId="2" ParentId="10756" CreationDate="2010-10-09T20:13:33.077" Score="0" ViewCount="" Body="&lt;p&gt;I know this isn't exactly the answer you're looking for, but as ChaosPandion said, you'd really be better off just picking a language using a paradigm you don't know and using it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By way of example, I read about functional programming for a while in school, but I never really &lt;em&gt;got&lt;/em&gt; what is was about and what elements of it were present in other languages until I taught myself Lisp and did a few small projects in it.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-09T20:13:33.077" CommentCount="2" />
  <row Id="10766" PostTypeId="2" ParentId="10731" CreationDate="2010-10-09T20:22:00.310" Score="2" ViewCount="" Body="&lt;p&gt;Note that this isn't specific to school since the problem you said is a pretty generic issue&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pick a reliable VCS and stick with it. SVN is the easiest but depending on how your developing it (see below), you could also consider something a little less linear. Something like Git (&lt;a href=&quot;http://programmers.stackexchange.com/questions/940/what-are-your-favorite-version-control-systems/952#952&quot;&gt;but not Git itself&lt;/a&gt;) would be better since you can do easy branching. &lt;/li&gt;&#xA;&lt;li&gt;Divide the project into distinct modules. This way you can hand somebody a module outline and say &quot;Write this&quot;. Code separation helps greatly.&lt;/li&gt;&#xA;&lt;li&gt;Get something like Bugzilla or JIRA to track issues/features (unless your using something like Google code that has this stuff built in) and assign people reports there. This way somebody can just browse through the reports and figure out who's working on what.&lt;/li&gt;&#xA;&lt;li&gt;Pick one or two of the most experienced/knowledgeable people to be project leaders as well. This way it looks like more of a group effort and your not the only weak link in the design (&quot;Where's nimcap?&quot; &quot;Oh he's sick&quot; &quot;Well what am I supposed to do? I've [insert problem]&quot;) &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-10-09T20:22:00.310" CommentCount="2" />
  <row Id="10767" PostTypeId="2" ParentId="10208" CreationDate="2010-10-09T20:39:37.450" Score="0" ViewCount="" Body="&lt;p&gt;I think the effectiveness of the question depends on your ability to read people. A guy that is obviously saying bullsh*t have better chance to be saying bullsh*t later when you hire him. A guy that give a canned answer also gives up unconscious hint about his personnality (it usually infer a certain fear about authority - which can be a good thing - but it's still something you can infer about his personality).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So no I don't think the question is useless unless you are pretty poor at reading people (it's a skill). All soft questions like this one is mostly to get to know the guy and see if he is a good fit for you. Maybe this is not the best question for that and it's totally ok not to ask it if you don't feel like it but I don't think it is as useless as you seem to think it is.&lt;/p&gt;&#xA;" OwnerUserId="3063" LastActivityDate="2010-10-09T20:39:37.450" />
  <row Id="10768" PostTypeId="2" ParentId="3645" CreationDate="2010-10-09T20:57:03.113" Score="1" ViewCount="" Body="&lt;p&gt;&quot;It depends&quot; would be my short answer to this.  It isn't necessarily a bad sign, as my first programming job out of university I remember having to learn how to use Visual Studio, IIS, and MS-SQL Server on the job which I did accomplish, though this was back in 1997.  I would suggest investigating how you learn something as well as what kind of algorithms do you know as some of them got drilled into my head like divide and conquer.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-09T20:57:03.113" />
  <row Id="10769" PostTypeId="2" ParentId="10736" CreationDate="2010-10-09T21:03:12.417" Score="21" ViewCount="" Body="&lt;p&gt;If these programmers can write the software in the first place, then...&lt;/p&gt;&#xA;&#xA;&lt;h2&gt; &lt;strong&gt;THEY DONT NEED TO STEAL IT&lt;/strong&gt;.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;They can just simply rewrite it in a fraction of the time it took to originally develop it.  Yes, its true, developers arent complete idiots... once they figure out how to do something, they can often remember how they did it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I guess you're just going to have to trust them, or &lt;em&gt;write the software yourself&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-09T21:03:12.417" CommentCount="4" />
  <row Id="10770" PostTypeId="2" ParentId="39" CreationDate="2010-10-09T21:07:43.730" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Real Programmers don't comment their code. If it was hard to write, it should be hard to understand.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; &lt;a href=&quot;http://www.multicians.org/thvv/realprogs.html&quot; rel=&quot;nofollow&quot;&gt;Tom Van Vleck&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1309" LastActivityDate="2010-10-10T19:25:06.250" CommunityOwnedDate="2010-10-09T21:07:43.730" CommentCount="2" />
  <row Id="10771" PostTypeId="2" ParentId="10731" CreationDate="2010-10-09T21:09:44.283" Score="4" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;A distributed VCS is a much better choice than SVN. Mercurial should fit your needs nicely - it's similarly powerful to Git, but it is much easier to wrap your head around it and it has nice documentation. However, if it turns out that most people in the team (or even just you!) are much more familiar with SVN and are not in the mood to learn a DVCS, I wouldn't push for it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Get an issue tracker that is as light and easy to learn as possible. If the learning curve is too steep, people will not really use it, and you'll end up with no issue tracker at all. That's why I wouldn't advice JIRA or Bugzilla. &lt;a href=&quot;http://lighthouseapp.com/&quot; rel=&quot;nofollow&quot;&gt;Lighthouse&lt;/a&gt; has always worked great for me.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Introduce some sort of lightweight agilish process. Having a slightly better structured environment may help the team deliver the prototype.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;14 people looks like a rather large team. Maybe you could subdivide yourself into 3 smaller teams responsible for different parts of the prototype?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;However, try to enforce some sort of discipline when it comes to the non-essential (not directly related to research) parts of the project. After all, computer vision stuff is hard enough as it is - you don't want to fail because of a broken build system or something similar, right?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Last but not least: you shouldn't overdo the whole &lt;em&gt;managing a project&lt;/em&gt; thing. After all, if I understand correctly, the goal of the project is to do science - not to have an industry level process. Try to keep all the tools as lightweight as possible - otherwise people will start working around them, and you'll end as if you were doing freestyle development (that's for example why I think Mercurial is a better choice than Git, even though I personally prefer the latter). Finally, remember that academia is more about &lt;em&gt;Learning Cool Stuff on the Way&lt;/em&gt; than about &lt;em&gt;Getting Things Done&lt;/em&gt;. Try to have fun!&lt;/p&gt;&#xA;" OwnerUserId="4928" LastEditorUserId="4928" LastEditorDisplayName="" LastEditDate="2010-10-09T22:59:38.137" LastActivityDate="2010-10-09T22:59:38.137" CommentCount="1" />
  <row Id="10772" PostTypeId="2" ParentId="10757" CreationDate="2010-10-09T21:17:37.743" Score="8" ViewCount="" Body="&lt;p&gt;Does duplicating your thoughts into code violate DRY principle?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Geez, if you could just know the architecture by looking into code, there wouldn't be such things as &quot;architecture description documents&quot; in the first place.  It's not a repitition, it's &lt;strong&gt;another level of system description&lt;/strong&gt;, which can't be trivially deduced from the code, and vice versa.  So it has its full right to exist even if you embrace DRY.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-10-09T21:17:37.743" />
  <row Id="10773" PostTypeId="2" ParentId="10644" CreationDate="2010-10-09T21:18:50.270" Score="3" ViewCount="" Body="&lt;p&gt;If you have the budget, I would consider flying to India and meeting the offshore teams in person as soon as possible. This will allow you to get to know them and gain their respect and trust &lt;em&gt;much&lt;/em&gt; quicker than through Skype and email - and you'll also be able to make sure that they are on track. After a week with them they should be ready to go, and you will be able to keep saner hours (though some overlap will still be necessary. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Switching to their time doesn't seem like a really sustainable idea: unless you are a night person, this will hit hard on your productivity.&lt;/p&gt;&#xA;" OwnerUserId="4928" LastEditorUserId="4928" LastEditorDisplayName="" LastEditDate="2010-10-10T01:23:48.340" LastActivityDate="2010-10-10T01:23:48.340" CommentCount="1" />
  <row Id="10774" PostTypeId="2" ParentId="10757" CreationDate="2010-10-09T21:26:26.787" Score="2" ViewCount="" Body="&lt;p&gt;An Architecture Description, or Software Design Description &lt;em&gt;does&lt;/em&gt; violate DRY. However, in a large organization, where projects last years, developers come and go, and the system is too large for any one person to keep all the details in their head, it is a critical document. The amount of &quot;repetition&quot; needed to keep it in synch is totally worth it for the effort it saves during the next update or maintenance.  &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-09T21:26:26.787" CommentCount="1" />
  <row Id="10775" PostTypeId="2" ParentId="10523" CreationDate="2010-10-09T21:41:52.327" Score="0" ViewCount="" Body="&lt;p&gt;I did with www.typingstudy.com lessons. Found it after long research.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-09T21:41:52.327" />
  <row Id="10776" PostTypeId="2" ParentId="10757" CreationDate="2010-10-09T22:08:38.347" Score="5" ViewCount="" Body="&lt;p&gt;Don't take DRY as a hard and fast rule. It's a good thing, but you can only approximate it in practice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also I think it's not well written. &quot;Don't repeat yourself&quot; doesn't seem to cover the equally important case that to make a semantic or functional change you would have to edit source text in multiple places, saying different but coordinated things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rather than take it as a commandment not to be violated, it is better to understand why it is a good idea and make sensible choices about it. The reason it is bad to have to make coordinated edits in multiple places is that you, the editor, make mistakes. You are not 100% reliable to make the changes without error. If you have to make 10 different source text changes, and you only get 9 of them right, &lt;em&gt;you've put in a bug&lt;/em&gt;. That is why arranging the source text to minimize the number of coordinated changes is a good thing. It minimizes bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We don't belong to a religion in which DRY is one of the commandments. It is just a handy, though slightly misleading, way to encapsulate some common sense.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-10-09T22:14:27.610" LastActivityDate="2010-10-09T22:14:27.610" />
  <row Id="10777" PostTypeId="2" ParentId="39" CreationDate="2010-10-09T22:11:10.553" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Anyone attempting to produce random numbers by purely arithmetic means is, of course, in a state of sin.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; John von Neumann&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-10-10T19:23:25.040" CommunityOwnedDate="2010-10-09T22:11:10.553" />
  <row Id="10778" PostTypeId="2" ParentId="10756" CreationDate="2010-10-09T22:12:28.430" Score="0" ViewCount="" Body="&lt;p&gt;I don't think you're going to be able to find a book that discusses the various paradigms without using any particular implementation. If you do, it's likely to be filled with complex mathematical notation because, really, all programming languages (especially the non-imperative ones) are just math.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A new book just came out called &lt;a href=&quot;http://pragprog.com/titles/btlang/seven-languages-in-seven-weeks&quot; rel=&quot;nofollow&quot;&gt;Seven Languages in Seven Weeks&lt;/a&gt; which introduces you to seven programming languages that cover a good portion of the spectrum. You probably won't be able to &quot;get&quot; any particular language until you've used it for at least a few months, but this may be a good start to get you interested in a couple of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other programming language books stay &quot;language agnostic&quot; by using only one language to illustrate the concepts in the others. These tend to use the functional languages such as Lisp, Scheme, Haskell, and ML because their syntax semantics can be re-programmed to act like object-oriented, declarative, or imperative languages.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2010-10-09T22:12:28.430" CommentCount="1" />
  <row Id="10779" PostTypeId="2" ParentId="10523" CreationDate="2010-10-09T22:16:29.370" Score="4" ViewCount="" Body="&lt;p&gt;I learned touch typing on an old manual typewriter when I was 10-11 before I even got a computer. My cousin was doing secretarial training and college and had covered over her letters with stickers/&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I thought &quot;if she can do it&quot;, so I did the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used to cover over the letters on my work keyboard with the sticky part of post-it notes, cut off the non-sticky part, and cut up the sticky strip.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not having the letters to look at makes you really focus on pressing the right key, and finding it with the right finger, which it sounds like you already 'know' how to do using muscle memory from all the typing tutorial practice you've done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cover over the letters, focus on using the right fingers. If you mistype a word in a word processor, application or email, backspace and erase the WHOLE word, not just to the error, and type the whole word again. You can usually easily delete a whole word by pressing CTRL-Backspace. This practice of typing the whole word will train your brain, and muscle memory for that word..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, it's old school, and non-tech. But it will work wonders for you.&lt;/p&gt;&#xA;" OwnerUserId="178" LastEditorUserId="178" LastEditorDisplayName="" LastEditDate="2010-12-23T10:19:53.020" LastActivityDate="2010-12-23T10:19:53.020" />
  <row Id="10780" PostTypeId="2" ParentId="10523" CreationDate="2010-10-09T22:31:33.777" Score="4" ViewCount="" Body="&lt;p&gt;Play &lt;a href=&quot;http://www.mobygames.com/game/windows/typing-of-the-dead&quot; rel=&quot;nofollow&quot;&gt;Typing of the Dead&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4930" LastActivityDate="2010-10-09T22:31:33.777" CommentCount="1" />
  <row Id="10781" PostTypeId="2" ParentId="10389" CreationDate="2010-10-09T22:32:29.547" Score="1" ViewCount="" Body="&lt;p&gt;I've faced this question for about 25 years, and I &lt;a href=&quot;http://stackoverflow.com/questions/371898/how-does-differential-execution-work&quot;&gt;solved it my own way&lt;/a&gt;, for better or worse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back then, there was &lt;em&gt;curses&lt;/em&gt;, then a series of windowing substrates like Win32, MFC, VB, and now Windows Forms in C#. They are all based on the albatross of thinking about UIs as making a bunch of &quot;things&quot; that respond to &quot;events&quot; by zinging each other with messages and moving data back and forth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone remember the Resource language of Win32? It is a domain-specific-language for specifying dialogs. The only problem with it is that it doesn't &quot;live in&quot; a real language. It can't refer directly to application data. It can't have conditionals and loops to show varying content. It can't have &quot;sub-dialogs&quot; that can be included as parts in other dialogs, ideally with arguments. So to make it work you had to wrap it in a rat's nest of event-handling code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it's still &lt;em&gt;a good idea&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what I built is a domain-specific-language for specifying dialogs, that does not have those shortcomings. From what I've seen, it's still the only one.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-10-09T22:32:29.547" />
  <row Id="10782" PostTypeId="2" ParentId="10757" CreationDate="2010-10-09T23:04:58.570" Score="0" ViewCount="" Body="&lt;p&gt;If you date the document, it then describes the architecture at the time of writing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whereas the code represents the architecture at the present moment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two separate things - not the same knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as you state that the document represents the architecure at the time of writing, you're not duplicating knowledge IMO because its different knowledge if its about the system at another point in time.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-10-09T23:04:58.570" CommentCount="1" />
  <row Id="10788" PostTypeId="2" ParentId="5233" CreationDate="2010-10-10T02:12:25.013" Score="2" ViewCount="" Body="&lt;p&gt;I have a degree in technical writing and am also the CTO of a large financial company in NYC. I taught myself how to program after working with devs all day. I had to write API documentation, specification documents etc. After awhile I figured I should learn how to write code. Turns out I got really good at it and then wound up taking over the entire department. Go figure. What really was helpful was the ability to write well. Of course I am posting this from my iPhone so I'm sure this will come off lime some off-shore developer trying to write in english to their stateside manager. I am yob!&lt;/p&gt;&#xA;" LastActivityDate="2010-10-10T02:12:25.013" />
  <row Id="10789" PostTypeId="2" ParentId="10756" CreationDate="2010-10-10T03:04:44.813" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book.html&quot; rel=&quot;nofollow&quot;&gt;The Structure and Interpretation of Computer Programs&lt;/a&gt;.  You can get Abelson and Sussman's lectures on the first edition &lt;a href=&quot;http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; and UC Berkeley's paradigms course with SICP &lt;a href=&quot;http://www-inst.eecs.berkeley.edu/~cs61a/fa10/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.  I've also heard very good things about &lt;a href=&quot;http://www.info.ucl.ac.be/~pvr/book.html&quot; rel=&quot;nofollow&quot;&gt;Concepts, Techniques, and Models of Computer Programming&lt;/a&gt; by Peter Van Roy and  Seif Haridi, but I haven't had a chance to go through it yet.&lt;/p&gt;&#xA;" OwnerUserId="998" LastActivityDate="2010-10-10T03:04:44.813" />
  <row Id="10790" PostTypeId="2" ParentId="5233" CreationDate="2010-10-10T03:20:22.950" Score="0" ViewCount="" Body="&lt;p&gt;well, you and I believe that you are a competent programmer and dont need much knowledge but &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Job can wait, degree can't. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Most ( not all ) recruiters look for degrees( in CV..) before actually checking your skills. You may be the best in your platform but to get shortlisted you have to include some degrees, certificates, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Moreover, you can't be sure about other job if you don't get this one or [god forbid] you lose this one. [Again] Not all employers will be pleased to have you in there firm. Better you get a degree, also, once you start earning more than you need, you will the interest to study more....but doing so secures your future. Don't get flown away this very offer. Lot more are on there way. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best of luck &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ayush&lt;/p&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-10-10T03:20:22.950" />
  <row Id="10791" PostTypeId="1" AcceptedAnswerId="10792" CreationDate="2010-10-10T03:31:57.543" Score="11" ViewCount="280" Body="&lt;p&gt;Right now, I use visual svn on my server, and have ankhsvn/tortoise on my personal machine. It works fine enough, and I don't have to change, but if I can see some benefits of using a DVCS, then I might give it a go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if there's no point or difference using it without other people, then I won't bother. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So again, I ask, are there any benefits to using a DVCS when you're the only developer?&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-11T03:50:55.973" Title="Are there advantages to using a DVCS for a solo developer?" Tags="&lt;version-control&gt;&lt;dvcs&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="1" />
  <row Id="10792" PostTypeId="2" ParentId="10791" CreationDate="2010-10-10T04:02:36.830" Score="12" ViewCount="" Body="&lt;p&gt;Yes! I think the biggest benefit is the better branching + merging support offered by many DVCSes. Branching and merging is kind of a pain in the ass in SVN; it's annoying enough that it's not worth the time to create small, short-lived branches for quick feature additions, bug fixes, or experimentation, but merging is also annoying enough that it's a pain to create long-lived branches as well. On the other hand, branching and merging is a breeze in Git, so much so that I create a (local) branch for nearly every bug fix or feature I work on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the tools offered by Git for visualizing repos, grepping logs, etc., are a lot better than in SVN, too (although that's more a Git thing than specific to a DVCS).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A DVCS also doesn't require a central server; when using SVN as a developer, you have to create a local repo to push into, which isn't a requirement with Git, since every repo contains the full history. As a corollary, archiving a repo is just a matter of zipping up your project -- there's no &quot;central database&quot; to back up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started using Git nearly four years ago, after using SVN for a while, and I haven't looked back.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-10T04:02:36.830" CommentCount="6" />
  <row Id="10793" PostTypeId="1" CreationDate="2010-10-10T04:59:00.533" Score="23" ViewCount="868" Body="&lt;p&gt;I've heard in several places &quot;Don't make large commits&quot; but I've never actually understood whats a &quot;large&quot; commit. Is it large if you work on a bunch of files even if there related? How many parts of a project should you be working on at once?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, I have trouble trying to make &quot;small commits&quot; since I forget or create something that creates something else that creates something else. You then end up with stuff like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;Made custom outgoing queue&#xA;&#xA;Bot&#xA;-New field msgQueue which is nothing more than a SingleThreadExecutor&#xA;-sendMsg blocks until message is sent, and adds wait between when messages get&#xA;sent&#xA;-adminExist calls updated (see controller)&#xA;-Removed calles to sendMessage&#xA;&#xA;Controller&#xA;-New field msgWait denotes time to wait between messages&#xA;-Starting of service plugins moved to reloadPlugins&#xA;-adminExists moved from Server because of Global admins. Checks at the channel,&#xA;server, and global level&#xA;&#xA;Admin&#xA;-New methods getServer and getChannel that get the appropiate object Admin&#xA;belongs to&#xA;&#xA;BotEvent&#xA;-toString() also show's extra and extra1&#xA;&#xA;Channel&#xA;-channel field renamed to name&#xA;-Fixed typo in channel(int)&#xA;&#xA;Server&#xA;-Moved adminExists to Controller&#xA;&#xA;PluginExecutor&#xA;-Minor testing added, will be removed later&#xA;&#xA;JS Plugins&#xA;-Updated to framework changes&#xA;-Replaced InstanceTracker.getController() with Controller.instance&#xA;-VLC talk now in own file&#xA;&#xA;Various NB project updates and changes&#xA;&#xA;---&#xA;&#xA;Affected files&#xA;Modify  /trunk/Quackbot-Core/dist/Quackbot-Core.jar&#xA;Modify  /trunk/Quackbot-Core/dist/README.TXT&#xA;Modify  /trunk/Quackbot-Core/nbproject/private/private.properties&#xA;Modify  /trunk/Quackbot-Core/nbproject/private/private.xml&#xA;Modify  /trunk/Quackbot-Core/src/Quackbot/Bot.java&#xA;Modify  /trunk/Quackbot-Core/src/Quackbot/Controller.java&#xA;Modify  /trunk/Quackbot-Core/src/Quackbot/PluginExecutor.java&#xA;Modify  /trunk/Quackbot-Core/src/Quackbot/info/Admin.java&#xA;Modify  /trunk/Quackbot-Core/src/Quackbot/info/BotEvent.java&#xA;Modify  /trunk/Quackbot-Core/src/Quackbot/info/Channel.java&#xA;Modify  /trunk/Quackbot-Core/src/Quackbot/info/Server.java&#xA;Modify  /trunk/Quackbot-GUI/dist/Quackbot-GUI.jar&#xA;Modify  /trunk/Quackbot-GUI/dist/README.TXT&#xA;Modify  /trunk/Quackbot-GUI/dist/lib/Quackbot-Core.jar&#xA;Modify  /trunk/Quackbot-GUI/nbproject/private/private.properties&#xA;Modify  /trunk/Quackbot-GUI/nbproject/private/private.xml&#xA;Modify  /trunk/Quackbot-GUI/src/Quackbot/GUI.java&#xA;Modify  /trunk/Quackbot-GUI/src/Quackbot/log/ControlAppender.java&#xA;Delete  /trunk/Quackbot-GUI/src/Quackbot/log/WriteOutput.java&#xA;Modify  /trunk/Quackbot-Impl/dist/Quackbot-Impl.jar&#xA;Modify  /trunk/Quackbot-Impl/dist/README.TXT&#xA;Modify  /trunk/Quackbot-Impl/dist/lib/Quackbot-Core.jar&#xA;Modify  /trunk/Quackbot-Impl/dist/lib/Quackbot-GUI.jar&#xA;Modify  /trunk/Quackbot-Impl/dist/lib/Quackbot-Plugins.jar&#xA;Modify  /trunk/Quackbot-Impl/lib/javarebel.stats&#xA;Add /trunk/Quackbot-Impl/lib/jrebel.info&#xA;Modify  /trunk/Quackbot-Impl/nbproject/private/private.properties&#xA;Modify  /trunk/Quackbot-Impl/nbproject/private/private.xml&#xA;Modify  /trunk/Quackbot-Impl/nbproject/project.properties&#xA;Modify  /trunk/Quackbot-Impl/plugins/CMDs/Admin/reload.js&#xA;Add /trunk/Quackbot-Impl/plugins/CMDs/Operator/hostBan&#xA;Modify  /trunk/Quackbot-Impl/plugins/CMDs/Operator/mute.js&#xA;Modify  /trunk/Quackbot-Impl/plugins/CMDs/lyokofreak/curPlaying.js&#xA;Modify  /trunk/Quackbot-Impl/plugins/CMDs/lyokofreak/lfautomode.js&#xA;Modify  /trunk/Quackbot-Impl/plugins/listeners/onJoin.js&#xA;Modify  /trunk/Quackbot-Impl/plugins/listeners/onQuit.js&#xA;Modify  /trunk/Quackbot-Impl/plugins/testCase.js&#xA;Add /trunk/Quackbot-Impl/plugins/utils/whatsPlaying.js&#xA;Modify  /trunk/Quackbot-Impl/src/Quackbot/impl/SandBox.java&#xA;Add /trunk/Quackbot-Impl/vlc_http&#xA;Add /trunk/Quackbot-Impl/vlc_http/current.html&#xA;Modify  /trunk/Quackbot-Plugins/dist/Quackbot-Plugins.jar&#xA;Modify  /trunk/Quackbot-Plugins/dist/README.TXT&#xA;Modify  /trunk/Quackbot-Plugins/dist/lib/Quackbot-Core.jar&#xA;Modify  /trunk/Quackbot-Plugins/nbproject/private/private.properties&#xA;Modify  /trunk/Quackbot-Plugins/nbproject/private/private.xml&#xA;Modify  /trunk/Quackbot-Plugins/src/Quackbot/plugins/JSPlugin.java&#xA;Add /trunk/Quackbot-Plugins/vlc_http&#xA;Add /trunk/global-lib/jrebel.jar&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Yea....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for questions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What are some factors for when a commit becomes too large (&lt;em&gt;non-obvious stuff&lt;/em&gt;)? &lt;/li&gt;&#xA;&lt;li&gt;How can you prevent such commits? Please give specifics&lt;/li&gt;&#xA;&lt;li&gt;What about when your in semi-early stages of development when things are moving quickly? Are huge commits still okay?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="66" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-10-12T01:47:35.100" LastActivityDate="2011-01-20T16:51:15.140" CommunityOwnedDate="2011-01-20T04:56:55.133" Title="When is a version control commit too large?" Tags="&lt;version-control&gt;" AnswerCount="19" CommentCount="1" FavoriteCount="3" />
  <row Id="10794" PostTypeId="2" ParentId="10793" CreationDate="2010-10-10T05:05:34.380" Score="6" ViewCount="" Body="&lt;p&gt;Large commits are when you have tons of changes that don't really all go in the same bucket. If I change the controller logic, then the database connection model, then some misc. scripts, I shouldn't be  bundling it all under one commit. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prevention is making commits according to what you're completing. In the above example I would commit after the controller logic, after the database work, and after the scripts. Don't put off committing simply because &lt;em&gt;you&lt;/em&gt; know what changed. Other people will look back at your &lt;em&gt;&quot;Changed stuff&quot;&lt;/em&gt; commit log message and wonder what you were smoking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Initial imports are probably the biggest commits you should ever have. Setting up a system from scratch? Sure have a few big commits. After you've leveled it out though it's time to keep things organized.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-10T05:05:34.380" CommunityOwnedDate="2011-01-20T04:56:55.133" />
  <row Id="10795" PostTypeId="2" ParentId="10760" CreationDate="2010-10-10T05:29:30.943" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codechef.com/&quot; rel=&quot;nofollow&quot;&gt;www.CodeChef.com&lt;/a&gt; and &lt;a href=&quot;http://www.SPOJ.pl&quot; rel=&quot;nofollow&quot;&gt;SPOJ&lt;/a&gt; (You'll need to send an email to enable the &quot;Problem Setting Privilege&quot;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.scarky.com/&quot; rel=&quot;nofollow&quot;&gt;Scarky&lt;/a&gt; is new, you could try it out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And another one, i can't remember right now...&lt;/p&gt;&#xA;" OwnerUserId="1272" LastActivityDate="2010-10-10T05:29:30.943" CommentCount="1" />
  <row Id="10796" PostTypeId="2" ParentId="10793" CreationDate="2010-10-10T05:36:14.183" Score="26" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;To me, I have trouble trying to make &quot;small commits&quot; since I forget or create something that creates something else that creates something else.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That is a problem.  It sounds like you need to &lt;em&gt;learn&lt;/em&gt; to break down your work into smaller, more manageable chunks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with large commits are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In a multi-person project, a greater chance that your commits will cause conflicts for other developers to resolve.&lt;/li&gt;&#xA;&lt;li&gt;It is harder to accurately describe what has been done in log messages.&lt;/li&gt;&#xA;&lt;li&gt;It is harder to track the order that changes were made, and hence to understand the cause of problems.&lt;/li&gt;&#xA;&lt;li&gt;It increases the probability of losing a lot of uncommitted work.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Sometimes large commits are unavoidable; e.g. if you have to change a major API.  But that's not normally the case.  And if you do find yourself in this situation, it is probably a good idea to create a branch and do your work in there ... with lots of small commits ... and reintegrate when you are finished.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Another case is when you do an initial import, but that's NOT problematical from the perspective of the issues listed above.)&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-10-10T14:30:47.500" LastActivityDate="2010-10-10T14:30:47.500" CommunityOwnedDate="2011-01-20T04:56:55.133" CommentCount="2" />
  <row Id="10797" PostTypeId="1" AcceptedAnswerId="10811" CreationDate="2010-10-10T05:54:33.580" Score="1" ViewCount="150" Body="&lt;p&gt;All,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been constantly working on Java. Though I have worked on Python and PERL for sometime, even did projects using these languages about a 6-7 months back, I have almost completely forgotten about the important features these languages exhibit. Recently in an interview, I was asked about the difference between Python and PERL in relation to their core features and I completely stumbled on the answer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that I would have to be constantly in touch with a Programming Language. But what are various ways of 'not forgetting' what I have learnt, given that I spend most of my time using java. &lt;/p&gt;&#xA;" OwnerUserId="4703" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-10-10T11:04:18.787" LastActivityDate="2010-10-10T11:04:18.787" Title="Handling various programming languages" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;suggestions&gt;" AnswerCount="5" />
  <row Id="10799" PostTypeId="2" ParentId="10793" CreationDate="2010-10-10T06:08:27.930" Score="5" ViewCount="" Body="&lt;p&gt;If you know you are going to be working on a large chunk of code beforehand, I would suggest creating a branch for your specific feature while periodically pulling code down from the mainline to make sure your code stays in-sync. When you're done working on the branch merge all your changes back into the mainline. This way other team members will not be surprised and/or annoyed when they see a huge commit. Also, there's a much less chance of breaking things. Keep practicing to break things down into smaller commits. With time it will become second nature.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-10T06:08:27.930" CommunityOwnedDate="2011-01-20T04:56:55.133" />
  <row Id="10800" PostTypeId="2" ParentId="10797" CreationDate="2010-10-10T06:11:03.543" Score="1" ViewCount="" Body="&lt;p&gt;Basic concepts are all same so you dont have to remember the logics and various concepts, plus, you won't actually forget the key features if had developed some projects using those languages. For syntax thing- you can grab some cheat sheet or something. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And as for brushing up the old - have some projects in hand, it will keep your brain young with the languages you're done working. For instance, try some &lt;a href=&quot;http://projecteuler.net&quot; rel=&quot;nofollow&quot;&gt;projecteuler&lt;/a&gt; problems with languages you don't wish to forget. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;keeping track of some blogs ( &lt;a href=&quot;http://www.stackoverflow.com&quot; rel=&quot;nofollow&quot;&gt;stackoverflow&lt;/a&gt; will do) concerned with your interest will keep things fresh or you might like writing one and help others with your experience. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Ayush Goyal&lt;/p&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-10-10T06:11:03.543" CommentCount="2" />
  <row Id="10801" PostTypeId="2" ParentId="10797" CreationDate="2010-10-10T06:18:39.313" Score="6" ViewCount="" Body="&lt;p&gt;The only way to not forget is to keep using the language. If you don't have the opportunity at work, then perhaps create a private pet project or contribute to some open source project that uses the language you want to remember.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-10T06:18:39.313" CommentCount="2" />
  <row Id="10802" PostTypeId="2" ParentId="10797" CreationDate="2010-10-10T06:27:22.010" Score="1" ViewCount="" Body="&lt;p&gt;I had a simular problem come up in an interview a while back. My question was more &quot;how do you do X in Y&quot; and I hadn't worked in Y in many years. What I did was explained that I was rusty in Y but showed them how I would do it in one of the languages I was currently using.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This worked pretty well. In interviews I think it works best just to be honest and explain as much as you can. If you have a good handle on the important things that will show through and nobody will care that you are rusty in a specific syntax.&lt;/p&gt;&#xA;" OwnerUserId="3697" LastActivityDate="2010-10-10T06:27:22.010" />
  <row Id="10803" PostTypeId="2" ParentId="10797" CreationDate="2010-10-10T06:29:40.457" Score="0" ViewCount="" Body="&lt;p&gt;If you aren't actively using the language, then you are going to forget important features. For most of us there is just no getting around this. The good news is that it will generally come back pretty quickly with a bit of review. Before you go in for an interview, spend a few days reviewing the skills and projects you list on your resume. Anything on your resume is fair game for questions, and if you can't answer basic questions about something on your resume the interviewer may suspect you are padding. If it's worth doing the interview, it's worth spending time preparing for it.&lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-10-10T06:29:40.457" />
  <row Id="10804" PostTypeId="1" CreationDate="2010-10-10T07:09:43.847" Score="30" ViewCount="584" Body="&lt;p&gt;As a first-time part-time software developer at a small consulting company, I'm struggling to organise time to further my own software development knowledge - whether that's reading a book, keeping up with the popular questions on StackOverflow, researching a technology we're using in-depth, or following the front page of Hacker News. I can see results borne from my self-allocated study time, but listing and demonstrating the skills and knowledge gained through Professional Development is difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The company does not have any defined PD policy, and there's a lot of pressure to get something deliverable done &lt;em&gt;now!&lt;/em&gt; when working for consultants. I've checked what my coworkers do, and they don't appear to allocate any time to self-improvement; they just work at the problems they're given, looking up specific MSDN references, code samples, and the like as they need them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realise that PD policy is going to vary across companies of different size and culture, and a company like my own is probably a bit of an edge case. I'd love to hear views and experiences from more seasoned developers; especially those who have to make the PD policy choices in their team or company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also like to learn about the more radical approaches to PD, even if they're completely out there; it's always interesting to see what other people are trying.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not quite a summary, but what I'm trying to ask:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is it common or recommended for companies to allocate PD time?&lt;/li&gt;&#xA;&lt;li&gt;Whose responsibility is it to ensure a developer's knowledge and skills are up to date?&lt;/li&gt;&#xA;&lt;li&gt;Should a part-time work schedule inspire a lower ratio of PD time : work?&lt;/li&gt;&#xA;&lt;li&gt;How can a developer show non-developer coworkers that reading blogs and books is net productive? &lt;/li&gt;&#xA;&lt;li&gt;Is reading blogs and books actually net productive? (references welcomed)&lt;/li&gt;&#xA;&lt;li&gt;Is writing blogs effective as a way of PD? (a recent theme on Hacker News)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This is sort of a broad question because I don't know exactly which questions I need to ask here, so any thoughts on relevant issues I haven't addressed are very welcome.&lt;/p&gt;&#xA;" OwnerUserId="4948" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-10-10T11:03:19.630" LastActivityDate="2011-01-09T03:01:17.943" Title="Should Professional Development occur on company time?" Tags="&lt;career&gt;&lt;time-management&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="8" />
  <row Id="10805" PostTypeId="2" ParentId="101" CreationDate="2010-10-10T07:15:38.610" Score="5" ViewCount="" Body="&lt;p&gt;There are many, many, programming jobs that don't need more then basic business math. If that's the kind of job that you know you want, and you are willing to lock yourself into that sort of work, then the math requirements for a good CS degree do look like overkill. But the CS degree itself is probably wild overkill for those jobs, so why just complain about the math?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Computer science is a big field. Most students have no idea what kind of programming they are going to like, or what sub-field they are going to end up working in. In fact, the type of programming job you do is almost certainly going to change over the course your career. One of the goals of a good CS program should be to expose you to a variety of subjects, so that as you need to switch fields over the course of your career you'll at least have been exposed to the basics. Linear algebra and calculus are needed as a background to in several of those subjects. You may end up not being interested in any of the subjects that requires the math, but you can't really know that until you've tried them. Maybe you'll find out that you have an undying love for speech recognition or, god forbid, financial engineering. &lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-10-10T07:15:38.610" CommunityOwnedDate="2011-03-13T14:49:02.620" CommentCount="1" />
  <row Id="10806" PostTypeId="2" ParentId="1849" CreationDate="2010-10-10T07:17:10.290" Score="2" ViewCount="" Body="&lt;p&gt;Obviously, there is the satisfaction of test-first development and the feeling you get when your design and tests come together. However, writing tests for pre-existing/legacy code can be mind-numbing and frustrating.  When our project was in a maintenance pattern, I wrote tests for untested code using the coverage report as a game.  You can create a bit of a competition with yourself and/or others to boost the coverage numbers. Granted, you might take it too far and create some bad tests, but it can be a good motivator.&lt;/p&gt;&#xA;" OwnerUserId="4949" LastActivityDate="2010-10-10T07:17:10.290" CommentCount="1" />
  <row Id="10807" PostTypeId="1" CreationDate="2010-10-10T07:23:53.880" Score="8" ViewCount="294" Body="&lt;p&gt;I'm not sure if it's just me or if this is common in our field. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The past year has been a bit intense for me. I've been learning a few different technologies to get some tasks done and sometimes I've had to completely focus on that one new technology I'm learning. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I noticed though when I go back to using everything together in the full project is that I forgot how to do things that I already knew how to do before I started focusing on learning that other new technology. Sometimes I find that I forget even simple things like the syntax for selecting a div in jquery, that I have to go back to old files to get a quick peek. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I could be coding something that I recognize I did before in another project, but can't quite remember which project it was for, so I have to go through several projects and look through the code to try and remember where I did that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does this happen to other people? and what ways have you invented to prevent yourself from forgetting things you've done before, or to easily access code you've written in the past? or is this just one of those things that come with our field? or is it just me (look of horror)?&lt;/p&gt;&#xA;" OwnerUserId="3839" LastActivityDate="2010-10-11T10:55:48.560" Title="Forgetting stuff I've done before and how do you fix this" Tags="&lt;career&gt;&lt;web-development&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="1" />
  <row Id="10808" PostTypeId="2" ParentId="10804" CreationDate="2010-10-10T07:41:02.103" Score="18" ViewCount="" Body="&lt;p&gt;Company-backed PD time can encourage an atmosphere of learning and sharing.  I don't really like the style where companies schedule PD time for you (like one Friday afternoon a month), but I do like a company that makes allowances for it.  I worked at a company where we actually set PD goals, and there was a heavy emphasis on sharing what you learned.  Some people did presentations, but I personally like learning about new ideas and then implementing them.  Sometimes this is through projects in different languages, sometimes they are still related to the current project (and may even be incorporated later).  I believe it does pay off because it can lead to more skilled developers.  I think companies may see more benefit from PD when developers share their knowledge, even if most of it is individual.  At the very least, discussing what you have been working on is good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I wrote a mock testing framework to see how it was done, and I also embedded an IronRuby shell that interacted with our C# application.  The mock framework helped me learn a lot more about reflection, expression trees, and testable code practices in general, and the IronRuby shell helped me learn about the DLR and brush up on my Ruby.  Experimentation is healthy here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it is very hard when the client is breathing down your neck, and I will admit that my previous company really slipped on PD towards the end because the project was so demanding.  Unfortunately, I find that companies that do not foster this kind of environment often attract a lot of people who aren't passionate about what they do, and they tend not to improve their skills over time.  That's a generalization, but it's my current experience.&lt;/p&gt;&#xA;" OwnerUserId="4949" LastActivityDate="2010-10-10T07:41:02.103" CommentCount="4" />
  <row Id="10809" PostTypeId="2" ParentId="10807" CreationDate="2010-10-10T07:55:36.967" Score="4" ViewCount="" Body="&lt;p&gt;That happened to me a lot. That's why we were to write documentations in our code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And sometimes, you just need a reference over the internet to help you. It's perfectly find to look up for help once in awhile.&lt;/p&gt;&#xA;" OwnerUserId="117" LastActivityDate="2010-10-10T07:55:36.967" />
  <row Id="10810" PostTypeId="2" ParentId="10807" CreationDate="2010-10-10T07:56:05.950" Score="4" ViewCount="" Body="&lt;p&gt;It happens to me.  For example, since I don't really use them at my job, I am constantly re-learning Ruby/Javascript.  You eventually start remembering some things, but I have also acquired a HUGE number of browser bookmarks with a lot of tags that I depend on heavily. For commonly used code-snippets, I have a collection of them, but I still have to: 1. Remember that I have them, 2. Find the one I thought might be relevant, and 3. Determine whether what I remember was really applicable or not.  I haven't bothered to come up with a better system, unfortunately.&lt;/p&gt;&#xA;" OwnerUserId="4949" LastActivityDate="2010-10-10T07:56:05.950" />
  <row Id="10811" PostTypeId="2" ParentId="10797" CreationDate="2010-10-10T08:05:34.040" Score="0" ViewCount="" Body="&lt;p&gt;First decide which one is your primary language? Focus more on that. Spend most of your time getting better at your chosen proficiency and spend some of your time on your secondary languages or on any other subject.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;what are various ways of 'not forgetting' what I have learnt&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;See if you're forgetting the syntax of the language then it's not a big problem. &#xA;Why? Check out &lt;a href=&quot;http://stackoverflow.com/questions/272842/is-forgetting-the-syntax-normal&quot;&gt;here&lt;/a&gt; but if you're having problems with the concepts then you should start paying attention. The only way is keep practicing and be in touch with the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For this just be regular to &lt;a href=&quot;http://stackoverflow.com/&quot;&gt;Stack-Overflow&lt;/a&gt; and &lt;a href=&quot;http://groups.google.com/group/comp.lang.java.programmer/topics&quot; rel=&quot;nofollow&quot;&gt;google's group on Java&lt;/a&gt; or some other forums like &lt;a href=&quot;http://www.javaranch.com&quot; rel=&quot;nofollow&quot;&gt;JavaRanch&lt;/a&gt;. As you said you spend most of your time using java so put JAVA as an interesting tag in your SO profile. Check out the questions related to &lt;a href=&quot;http://stackoverflow.com/questions/tagged/java?sort=newest&amp;amp;pagesize=15&quot;&gt;Java tag&lt;/a&gt; daily, answer them. Go to google groups and JavaRanch answer the questions that recently have been asked. In that way you'll be in touch with the language and won't forget what you've learned. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good wishes !&lt;/p&gt;&#xA;" OwnerUserId="1373" LastEditorUserId="1373" LastEditorDisplayName="" LastEditDate="2010-10-10T08:14:15.253" LastActivityDate="2010-10-10T08:14:15.253" />
  <row Id="10812" PostTypeId="2" ParentId="101" CreationDate="2010-10-10T08:09:16.140" Score="2" ViewCount="" Body="&lt;p&gt;I took weightlifting, swimming, and tennis classes in college. I have yet to use any of those skills in my job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The brain is a muscle and like all other muscles it needs to be exercised regularly and in different ways to keep it healthy. Math is mental weightlifting for the brain.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastEditorUserId="3790" LastEditorDisplayName="" LastEditDate="2010-10-10T08:30:24.773" LastActivityDate="2010-10-10T08:30:24.773" CommunityOwnedDate="2011-03-13T14:49:02.620" CommentCount="1" />
  <row Id="10813" PostTypeId="2" ParentId="1849" CreationDate="2010-10-10T08:15:07.257" Score="0" ViewCount="" Body="&lt;p&gt;Try to get into the &lt;a href=&quot;http://en.wikipedia.org/wiki/Flow_%28psychology%29&quot; rel=&quot;nofollow&quot;&gt;Flow&lt;/a&gt;. Set tough, but achievable goals to yourself. What could be a goal in unit testing? For example, try to write faster while keeping quality. Unit tests don't require too much thought so mistaking is unlikely. Concentrate on your goal and check often to see as you are nearing it.&lt;/p&gt;&#xA;" OwnerUserId="3530" LastEditorUserId="3530" LastEditorDisplayName="" LastEditDate="2010-10-10T08:21:34.917" LastActivityDate="2010-10-10T08:21:34.917" CommentCount="2" />
  <row Id="10814" PostTypeId="2" ParentId="10804" CreationDate="2010-10-10T08:33:13.470" Score="16" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is it common or recommended for companies to allocate PD time?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Recommended yes, common no.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Whose responsibility is it to ensure a developer's knowledge and skills are up to date?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's the developer's own responsibility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you just have to take the time. Use your own judgement and spend 10 % or so of your company time to study secretly. &lt;em&gt;It's easier to ask forgiveness than it is to get permission.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-10T08:33:13.470" CommentCount="4" />
  <row Id="10815" PostTypeId="2" ParentId="10793" CreationDate="2010-10-10T08:39:22.220" Score="-2" ViewCount="" Body="&lt;p&gt;I don't care of the size of the commits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do care if it breaks the build.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's easier to break the build with large commits than with smaller ones.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-10T08:39:22.220" CommunityOwnedDate="2011-01-20T04:56:55.133" CommentCount="1" />
  <row Id="10816" PostTypeId="1" AcceptedAnswerId="10823" CreationDate="2010-10-10T08:49:12.537" Score="11" ViewCount="754" Body="&lt;p&gt;I have just completed a course on computability and logic which was an interesting course. The lecturer recommend a few books on his slides, which include &quot;Gödel, Escher, Bach&quot;. I can see the book is quite famous, and looks very interesting. But I have a few questions to ask regarding its content.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Is the content still valid today? I guess most theoretical stuff don't change over night, but is there some major points which does not hold today which I should be aware of?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I assume we actually HAVE made some progress in the last 30 years or so. Can any of you recommend a book on the subject which includes this progress (logic, AI, computability)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Another question:&lt;/em&gt; Do I have to know about Escher and Bach?&lt;/p&gt;&#xA;" OwnerUserId="4954" LastEditorUserId="4954" LastEditorDisplayName="" LastEditDate="2010-10-11T14:42:51.817" LastActivityDate="2010-11-20T19:50:48.580" Title="&quot;Gödel, Escher, Bach&quot; still valid today?" Tags="&lt;learning&gt;&lt;books&gt;&lt;computer-science&gt;&lt;artificial-intelligence&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="10817" PostTypeId="2" ParentId="966" CreationDate="2010-10-10T09:07:50.073" Score="17" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1439167346&quot; rel=&quot;nofollow&quot;&gt;How to win friends and influence people&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As mentioned here: &lt;a href=&quot;http://stackoverflow.com/questions/38210&quot;&gt;What non-programming books should programmers read?&lt;/a&gt; &quot;How to win friends and influence people&quot; is a VERY good book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;You don't acquire programming skills directly by this book, but indirectly I'll argue that you do.&lt;/em&gt; If you're not very good at dealing with people this will help you with socializing with people that may influence you and your programming skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The title of the book may sound a little superficial but it´s not. You learn what others do naturally, and Dale Carnegie encourage you not to be superficial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Worth a read :-)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/NUA5r.jpg&quot; alt=&quot;How to win friends and influence people&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="4954" LastActivityDate="2010-10-10T09:07:50.073" CommunityOwnedDate="2011-01-06T15:42:27.030" CommentCount="2" />
  <row Id="10818" PostTypeId="2" ParentId="101" CreationDate="2010-10-10T09:08:50.840" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Do you not see De Morgan's law everytime you turn &lt;code&gt;if (!(a || b)) { /* ... */ }&lt;/code&gt; into &lt;code&gt;if (!a &amp;amp;&amp;amp; !b) { /* ... */ }&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Do you not see set theory everytime you write a table join.&lt;/li&gt;&#xA;&lt;li&gt;Do you not see the striking similarities between int[3,3] and an 3x3 matrix?&lt;/li&gt;&#xA;&lt;li&gt;Do you choose an O(n) algorithm over an O(n^2) algorithm for 0 &gt; n &amp;lt; 1?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There's many other examples, and these might seem contrived, but I suspect that most programmers take for granted the math that they know without ever even realizing it. So much so that most people here would probably agree that these are part of 'the basics' of progrmaming. Ask these questions of a layperson however and you'll be surprised with the answers you get.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to answer your question: &lt;strong&gt;Yes&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-10T09:08:50.840" CommunityOwnedDate="2011-03-13T14:49:02.620" CommentCount="7" />
  <row Id="10819" PostTypeId="2" ParentId="10793" CreationDate="2010-10-10T09:20:47.883" Score="0" ViewCount="" Body="&lt;p&gt;You have probably heard the saying that perfection is when you cannot take anything more away.  That should also describe your standard for commit size.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It depends on your project where that &quot;perfect&quot; size is.  If you are shipping to external customers, a good size might be the smallest increment that you would be comfortable shipping if you didn't finish the next one on time.  If you are building internal, frequently deployed applications, the best size might be the smallest increment that doesn't break anything (and gets you closer to where you want to be).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Modern version control systems help you create good commits with easy branching, interactive rebasing, staging area, etc.&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-10-10T09:20:47.883" CommunityOwnedDate="2011-01-20T04:56:55.133" />
  <row Id="10821" PostTypeId="2" ParentId="10804" CreationDate="2010-10-10T09:41:40.543" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is it common or recommended for companies to allocate PD time?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Like someone else said, it's recommended but I've never seen it.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Whose responsibility is it to ensure a developer's knowledge and skills are up to date?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Ultimately, it's the developer's. Part of that responsibility is also finding an environment that allows you and/or encourages you to do so.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Should a part-time work schedule inspire a lower ratio of PD time : work?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Part-time: Yes. All part-time work I've ever seen is paid by the hour, for a specific purpose. Part-time work, for a job like software development, already signifies (to me anyway) that the company has no interest in keeping developers for the long term, let alone cultivating a strong team.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How can a developer show non-developer coworkers that reading blogs and books is net productive? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've never heard of a respected developer that wasn't expected to know about bleeding edge technologies and techniques at the drop of a hat. Part of a good developer's value is being aware of those technologies and techniques that can provide value to a company/team and then sharing them when appropriate. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The employers that are users (not end-users, but the hot girl that wants to you to do her homework) will expect that you do that on your own time. Others will not.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is reading blogs and books actually net productive? (references welcomed)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Depends on the blog. Will Eric Lippert's blog generally make you a better C# developer? Likely. TheDailyWTF? As entertaining as it is... maybe not so much. &lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-10T09:41:40.543" CommentCount="1" />
  <row Id="10822" PostTypeId="2" ParentId="10807" CreationDate="2010-10-10T09:44:47.640" Score="2" ViewCount="" Body="&lt;p&gt;Nah, it's not just you. I believe this to be common in almost anything theoretical which you don't use for any longer length of time. Think about all the stuff you've learned in school or uni which you don't remember anymore. I tend to forget stuff already 2 weeks after the final exam...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only way to remedy this, that I know of, is to use it. Often. It's like TV commercials where you remember each and every line and scene. Why? Because you see them every day - a constant reminder which causes your brain to rearrange its synapses (or whatever it does) for you to remember it. Imagine if we could do the same for all knowledge we would like to remember - algorithms, methods, formulas, syntax, etc. (I think it's time that we protest and make the TV stations show &lt;em&gt;this&lt;/em&gt; kind of useful stuff during program breaks instead of those tacky commercials.) But fortunately, almost everything you have once learned you can relearn in a shorter time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you happen to know when you're writing a piece of code that you'll want to look back at this some time in the future, copy it to a separate file and keep a library of useful code snippets. That way you don't have to search through entire projects. Also make sure to arrange these snippets after language and kind (What does the code do? Why did you save it?) for easy access.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-10T09:44:47.640" />
  <row Id="10823" PostTypeId="2" ParentId="10816" CreationDate="2010-10-10T10:23:18.837" Score="21" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is the content still valid today? I guess most theoretical stuff don't change over night, but is there some major points which does not hold today which I should be aware of?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The content is logic and math.  It doesn't change in any substantial way, not only over night.  It will be valid forever.&lt;/p&gt;&#xA;" OwnerUserId="1353" LastActivityDate="2010-10-10T10:23:18.837" CommentCount="5" />
  <row Id="10824" PostTypeId="2" ParentId="10807" CreationDate="2010-10-10T10:33:27.717" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Does this happen to other people?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It happens to me a lot.  The only solution is to get younger.  :-)&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-10-10T10:33:27.717" />
  <row Id="10825" PostTypeId="2" ParentId="10804" CreationDate="2010-10-10T10:39:23.643" Score="0" ViewCount="" Body="&lt;p&gt;I don't think I'd like my company to schedule this kind of thing for me, I prefer to learn when I am &quot;in the mood&quot; so to speak:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;clear mind&lt;/li&gt;&#xA;&lt;li&gt;no stray thought (current project, something personal, etc..)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;At the moment, I simply take advantage of compile-time / unittest-time to relax and browse SO / technical blogs / Google Talks / etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The short things I do at work in this &quot;spare&quot; time. The longer I prefer to do at home, calmly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I imagine of course that not having children to care for help a lot regarding the personal time I can allocate for this.&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2010-10-10T10:39:23.643" />
  <row Id="10826" PostTypeId="2" ParentId="10793" CreationDate="2010-10-10T10:42:22.420" Score="3" ViewCount="" Body="&lt;p&gt;The thing to grasp here is that &quot;Large&quot; in this context is about the number distinct changes not the physical size of the commit (although generally the two will go hand in hand).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its not so a question of &quot;don't make large commits&quot; as &lt;em&gt;do&lt;/em&gt; make small commits - the ideal being to commit small self contained changes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its clear from the changelog that you've got a series of things that could have been committed separately (and safely) and therefore its fairly self evident that its too large.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason that this can be a problem is that your last commit is your reference point for the changes you're currently making and if, for example, you get the first bit right and then get the next bit wrong you've no easy way to roll your work back to the point where you started making mistakes (BTDTGTTS).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course sometimes changes just are big - large scale refactoring - and as is suggested by others this is where you need to branch, that way although your individual commits might notionally break things they are separated from the main development trunk so that isn't a problem and you get to continue to commit early and often.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One more thing - if something comes along in the midst of your work that requires more immediate attention you need to change it separately (ideally in a completely distinct set of folders) and commit it separately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The real challenge in all of this is not the mechanics its the mindset - that a commit is not just a backup copy that you make every now and then but that each commit is an inch-pebble along the way and that there's nothing wrong with lots of small commits and that munging different things together in a mob commit is as bad a munging vaguely related bits of functionality together in a lump of code.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-10-10T10:42:22.420" CommunityOwnedDate="2011-01-20T04:56:55.133" />
  <row Id="10827" PostTypeId="1" AcceptedAnswerId="10912" CreationDate="2010-10-10T11:15:53.483" Score="6" ViewCount="472" Body="&lt;p&gt;Programming is usually a task for &lt;a href=&quot;http://en.wikipedia.org/wiki/Lateralization_of_brain_function&quot; rel=&quot;nofollow&quot;&gt;left brained guys&lt;/a&gt;, but nowadays that's not enough and we need to &lt;a href=&quot;http://programmers.stackexchange.com/questions/10605/how-to-improve-programmers-skills-in-designing-good-ux&quot;&gt;create good looking environments&lt;/a&gt;, and this implies using the right side of our brains.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've read some books like &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0123740371&quot; rel=&quot;nofollow&quot;&gt;Sketching user experiences&lt;/a&gt; and &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0465067107&quot; rel=&quot;nofollow&quot;&gt;The Design of Everyday Things&lt;/a&gt;, but...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What do you actually do to train your right brain skills?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3730" LastActivityDate="2010-10-11T10:09:44.610" Title="How to train the right side of the brain?" Tags="&lt;self-improvement&gt;&lt;suggestions&gt;" AnswerCount="5" CommentCount="7" FavoriteCount="3" />
  <row Id="10828" PostTypeId="2" ParentId="10827" CreationDate="2010-10-10T11:20:34.040" Score="2" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;By doing it. There is no replacement for experience.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://lithe.files.wordpress.com/2008/05/nike-just-do-it.jpg?w=400&amp;amp;h=400&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-10T11:20:34.040" CommentCount="14" />
  <row Id="10829" PostTypeId="2" ParentId="10791" CreationDate="2010-10-10T11:40:31.020" Score="0" ViewCount="" Body="&lt;p&gt;Well, the default answer would be, &quot;If (whatever you're using now) works for you, why would you change?&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, yes, even if there is no reason for a change, I find using DVCS somewhat easier than the &quot;older models&quot;. The following goes for &lt;em&gt;&lt;a href=&quot;http://mercurial.selenic.com/&quot; rel=&quot;nofollow&quot;&gt;Mercurial&lt;/a&gt;&lt;/em&gt;, which I use the most, so your mileage may vary, depending on which system you're going to use.    &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;really easy to use - I figured out all the commands I need in an hour or so  &lt;/li&gt;&#xA;&lt;li&gt;everything is local (you don't need the remote server to be online)  &lt;/li&gt;&#xA;&lt;li&gt;very easy branching / merging - you don't even think about those things anymore  &lt;/li&gt;&#xA;&lt;li&gt;easy cloning (also, a type of branching) - and generally, a much more user friendly interface (I found it more enjoyable than git's on windows; also some concepts are simpler; i.e. don't require thinking on my side, therefore leading to less fiddling with VS and more work done)  &lt;/li&gt;&#xA;&lt;li&gt;works nice with svn  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://hginit.com/&quot; rel=&quot;nofollow&quot;&gt;Jumping gate to an intro to Mercurial&lt;/a&gt; and a &lt;a href=&quot;http://hgtip.com/&quot; rel=&quot;nofollow&quot;&gt;blog (pretty colours ;-) with useful tips&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-10T11:40:31.020" CommentCount="1" />
  <row Id="10830" PostTypeId="1" CreationDate="2010-10-10T12:22:39.577" Score="0" ViewCount="118" Body="&lt;p&gt;Does Adobe Air apps work in iphone and ipad ?&lt;/p&gt;&#xA;" OwnerUserId="4957" LastActivityDate="2010-10-10T12:22:39.577" ClosedDate="2010-10-10T14:46:42.727" Title="Does Adobe Air apps work in iphone and ipad ?" Tags="&lt;iphone&gt;&lt;applications&gt;" CommentCount="2" FavoriteCount="1" />
  <row Id="10831" PostTypeId="1" CreationDate="2010-10-10T12:32:45.800" Score="3" ViewCount="127" Body="&lt;p&gt;Trying to get a feel for what it's like to do SharePoint development.  I have done mostly Web Forms/MVC, and I have heard a lot of negative emotions toward SharePoint Dev? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm just wondering what type of experience, good or bad, the community has had with SharePoint.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things you liked, things you didn't... etc.&lt;/p&gt;&#xA;" OwnerUserId="3758" LastActivityDate="2010-10-19T23:45:54.127" Title="SharePoint Development Experience" Tags="&lt;sharepoint&gt;&lt;development&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="10832" PostTypeId="1" AcceptedAnswerId="10941" CreationDate="2010-10-10T12:38:23.347" Score="9" ViewCount="291" Body="&lt;p&gt;I'm trying to advocate unit testing in my workgroup, but an objection I often get is that it should be used only for externally exported API (which is only a minimal and non critical part of our system), and not on internal and private code (which now has only functional testing). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I think that unit test can and should be applied to all the code, how can I persuade my coworkers?&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-10-12T09:39:21.317" LastActivityDate="2010-10-12T09:39:21.317" Title="How can I advocate unit testing on private code?" Tags="&lt;unit-testing&gt;" AnswerCount="7" CommentCount="7" />
  <row Id="10833" PostTypeId="2" ParentId="10832" CreationDate="2010-10-10T12:43:58.120" Score="6" ViewCount="" Body="&lt;p&gt;The reasons for using unit tests on internal/private code are precisely the same as for externally supported APIs:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;They prevent bugs from recurring (unit tests form part of your regression test suite).&lt;/li&gt;&#xA;&lt;li&gt;They document (in an executable format!) that the code works.&lt;/li&gt;&#xA;&lt;li&gt;They provide an executable definition of what &quot;the code works&quot; means.&lt;/li&gt;&#xA;&lt;li&gt;They provide an automated means of demonstrating that the code does indeed match specs (as defined by the point above).&lt;/li&gt;&#xA;&lt;li&gt;They show how the unit/class/module/function/method fails in the presence of unexpected input.&lt;/li&gt;&#xA;&lt;li&gt;They provide examples on how to use the unit, which is great documentation for new team members.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-10T12:43:58.120" CommentCount="1" />
  <row Id="10834" PostTypeId="2" ParentId="10827" CreationDate="2010-10-10T12:51:28.023" Score="6" ViewCount="" Body="&lt;p&gt;This is not programming-related, but if you're interested in drawing, or learning how to draw, you might want to have a look at a drawing &quot;textbook&quot; called, &lt;a href=&quot;http://www.drawright.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Drawing on the Right Side of the Brain&lt;/strong&gt;  by Betty Edwards&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4906" LastActivityDate="2010-10-10T12:51:28.023" />
  <row Id="10835" PostTypeId="1" CreationDate="2010-10-10T13:01:43.890" Score="17" ViewCount="491" Body="&lt;p&gt;In my battle to introduce unit testing in my workgroup, I find a lot of people that have little to none knowledge of the concept. Can you suggest:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;best articles or tutorials for quickly introducing people on the topic&lt;/li&gt;&#xA;&lt;li&gt;best comprehensive book(s) for learning unit testing in depth&lt;/li&gt;&#xA;&lt;li&gt;academic works and studies that prove the effectiveness of unit testing&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11" LastEditorUserId="8073" LastEditorDisplayName="" LastEditDate="2011-02-02T08:02:37.090" LastActivityDate="2011-02-03T22:42:02.940" Title="Best book, articles and literature on unit testing" Tags="&lt;books&gt;&lt;testing&gt;&lt;unit-testing&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="14" />
  <row Id="10836" PostTypeId="2" ParentId="10831" CreationDate="2010-10-10T13:06:27.120" Score="3" ViewCount="" Body="&lt;p&gt;Typically, SharePoint development feels like you're an ASCX developer with the SharePoint API at your disposal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The good:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A lot of the plumbing is done for you via SharePoint, so you don't have to worry about authentication and things like that, as it's provided for you.&lt;/li&gt;&#xA;&lt;li&gt;You can grab SharePoint lists, excel spreadsheets, external datasources and mash them all up to do some pretty powerful BI.&lt;/li&gt;&#xA;&lt;li&gt;Once you've got over the configuration learning curve, it's fast to develop and deploy new functionality.  Deployment to production is as simple as uploading a webpart to SharePoint via a file upload dialog box.&lt;/li&gt;&#xA;&lt;li&gt;The SharePoint API is really awesome.  You've got full access to just about everything in SharePoint, and if Active Directory is synchronizing user profiles, you also have access to everyone's full profile information, including management trees to route workflows. (Ok, so you can can go straight against AD to get this info anyway, but this was the first time I'd ever used it, so it was exciting for me at the time)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The bad:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Unless you're on SharePoint 2010, you HAVE to install Visual Studio on a Windows Server that has SharePoint installed on it just to develop a simple web part.  If you're on 2010, I've written up how to install it &lt;a href=&quot;http://blog.ryanhayes.net/post/910790633/how-to-install-sharepoint-server-2010-rtm-on-windows-&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; on Windows 7...and this is not a &quot;supported&quot; install of SharePoint 2010...you're just able to do it now.&lt;/li&gt;&#xA;&lt;li&gt;Configuration - SharePoint is so configurable that you can make it be just about anything.  Because of that it's a hassle to try and get things configured.  You can't just develop like you've always been used to in .NET.  Want to use the Entity Framework?  You'll have to make sure you configure everything right...which is usually not documented.&lt;/li&gt;&#xA;&lt;li&gt;Learning curve - The learning curve can be pretty steep depending on what you want to do.  I started doing SharePoint development on the SharePoint 2010 Beta in preparation for a SharePoint company launch only a month after the RTM version was released.  Videos and material are coming out now, but it can be scarce at times.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Basically:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Good: SharePoint does a lot for you, which saves you time!&lt;/li&gt;&#xA;&lt;li&gt;Bad: SharePoint does a lot for you, which makes you go hunting in bizarre places when things you're used to doing won't work!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-10T13:06:27.120" CommentCount="2" />
  <row Id="10839" PostTypeId="2" ParentId="10835" CreationDate="2010-10-10T13:36:11.117" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321503627&quot; rel=&quot;nofollow&quot;&gt;Growing Object-Oriented Software, Guided by Tests&lt;/a&gt; was quite an eye-opener, the why, and the how all clearly laid-out on a book-long example.&lt;/p&gt;&#xA;" OwnerUserId="2115" LastActivityDate="2010-10-10T13:36:11.117" CommentCount="1" />
  <row Id="10840" PostTypeId="2" ParentId="10827" CreationDate="2010-10-10T13:37:51.797" Score="2" ViewCount="" Body="&lt;p&gt;I read somewhere that the way we process visual information, there's a side of the brain that focus on detail and the other side focus on 'the big picture'. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you have to stop trying to rationalize each choice (like for example: a study said it was good to have those things on the left so I put them on the left) and try focusing on the 'big picture' and how you 'feel' it instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do it tell you when you look at it. How does it feel? What pattern do you detect? etc. (it's a little complex to explain in words).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you first have to let the 'big picture' side see and feel things then you can rationalize with your 'details' side (finding explanation for why that pattern seems useful). That's probably your error and the error of a lot of those left-only type: trying to rationalize BEFORE actually having any 'big picture' (ie: blindly listening to a study is a classic example I'd say).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also I disagree that programming is for left brain people only. You HAVE to have a view on the big picture when programming too, not only details are important but overall architecture too.&lt;/p&gt;&#xA;" OwnerUserId="3063" LastActivityDate="2010-10-10T13:37:51.797" />
  <row Id="10841" PostTypeId="2" ParentId="10807" CreationDate="2010-10-10T13:40:29.187" Score="1" ViewCount="" Body="&lt;p&gt;I can assure you it &lt;em&gt;seems&lt;/em&gt; to get worse as you get older :-) But that's because the longer you're into developing, the more knowledge there is to forget.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, you gain more &quot;intuition&quot;. You recognize patterns, how to solve certain problems, and other things you've learned in older projects with different languages and environments and can make use of them even though the current conditions are different. I mean, I constantly look back at code I wrote just a year ago and think, &quot;&lt;em&gt;Today I would write it differently&lt;/em&gt;&quot; and even quite often &quot;&lt;em&gt;Today I know how to solve this one better&lt;/em&gt;&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, even though you might forget a lot of stuff like method and class names for a certain API, your skills normally improve on a higher level.&lt;/p&gt;&#xA;" OwnerUserId="4886" LastActivityDate="2010-10-10T13:40:29.187" />
  <row Id="10842" PostTypeId="2" ParentId="10832" CreationDate="2010-10-10T13:41:50.153" Score="2" ViewCount="" Body="&lt;p&gt;here's another reason: in the hypothetical case I would have to choose between unit testing the external API vs the private parts, I'd choose the private parts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If every private part is covered by a test, the API consisting of these private parts should be covered for almost 100% as well, excpt for just the upper layer. But that is likely to be a thin layer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand when only testing the API it can be really hard to fully cover all possible code paths.&lt;/p&gt;&#xA;" OwnerUserId="3660" LastActivityDate="2010-10-10T13:41:50.153" CommentCount="1" />
  <row Id="10843" PostTypeId="2" ParentId="10827" CreationDate="2010-10-10T13:47:41.203" Score="3" ViewCount="" Body="&lt;p&gt;Recent &lt;em&gt;clinical&lt;/em&gt; &lt;a href=&quot;http://www.springerlink.com/content/qt7k737712386772&quot; rel=&quot;nofollow&quot;&gt;studies&lt;/a&gt; have shown that &lt;strong&gt;meditation&lt;/strong&gt; does just that.&lt;/p&gt;&#xA;" OwnerUserId="2115" LastActivityDate="2010-10-10T13:47:41.203" CommentCount="2" />
  <row Id="10845" PostTypeId="1" AcceptedAnswerId="10862" CreationDate="2010-10-10T13:50:08.080" Score="14" ViewCount="1053" Body="&lt;p&gt;A while ago I asked &lt;a href=&quot;http://programmers.stackexchange.com/questions/238/what-are-your-favorite-programming-related-movies-documentaries&quot;&gt;this&lt;/a&gt; question and the result was &lt;a href=&quot;http://meta.programmers.stackexchange.com/questions/416/do-you-think-the-programming-related-movies-documentaries-question-should-be-sa&quot;&gt;this&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Following the response I got in the meta question I'm re-asking the question with new guidelines to focus it on the direction I wanted it to have originally. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;==================================================================&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The guidelines are as follows: by &quot;programming related&quot; I mean movies from which we can learn about stuff like the development process, or history of software/computers, or programming culture. In other words, they must be grounded in the industry. No tangential stuff. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good entries answer as many of the following criteria as possible: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Teach you about the history of the industry, or the development process, or teach you about important industry related topics (software patents for example)&lt;/li&gt;&#xA;&lt;li&gt;Are based on real life events, companies, people, practices, and they are the main focus of the movie&lt;/li&gt;&#xA;&lt;li&gt;After watching them, you feel like you understand or know something about the programmers' world that you didn't before (or you can see how someone could have such a response). &lt;/li&gt;&#xA;&lt;li&gt;You can point to it and say &quot;this faithfully represents the industry/programmer culture at some point in time&quot;. This might be something you would show laymen to explain to them what &quot;your people&quot; are like and what is it that you do. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Examples for good entries include: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Pirates of Silicon Valley&lt;/strong&gt;- the story of how Microsoft and Apple started the industry. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Revolution OS&lt;/strong&gt;- The story of Linux's rise to fame, and a pretty good cover of the Free Software/Open Source world. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Aardvark'd: 12 Weeks with Geeks&lt;/strong&gt;- development process. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Examples for bad entries: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Movies who's sole relevance is that they can be appreciated by programmers&lt;/strong&gt;. The point of this question is not to be &quot;what are some good movies&quot; with &quot;for a programmer&quot; appended to it. Just because the writers got a few computer jokes right in itself doesn't make it about the industry. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Movies where there's a computer related element, but are not about the industry&lt;/strong&gt;. For example, 24 (the TV series). It's a product of the information age but it isn't actually about it. Another example is movies where there's a really cool programmer character, but are overall about something completely different. Likewise, The Big Bang Theory is not &lt;em&gt;about&lt;/em&gt; physics, even though they have a cool physicist as a character. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Science fiction, even if it draws ideas from computers&lt;/strong&gt;. For example, the Matrix trilogy. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Movies that you can't point to them and say: this is a faithful representation of our world (at some point in time)&lt;/strong&gt;. If you can't do that then it doesn't mirror the industry. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Keep it one entry per answer so that the voting could sort the entries out. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: of all the entries I still like Pirates of Silicon Valley the best, so I'm selecting it as the answer. &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2011-03-05T12:04:38.127" LastActivityDate="2011-03-24T12:39:52.637" Title="What are some good realistic programming related movies (docu-dramas, documentaries, accurate fiction, etc)?" Tags="&lt;favorite&gt;&lt;movies&gt;" AnswerCount="14" CommentCount="8" FavoriteCount="11" />
  <row Id="10848" PostTypeId="2" ParentId="10807" CreationDate="2010-10-10T14:39:21.327" Score="1" ViewCount="" Body="&lt;p&gt;This happens all the time to me.  I just have so many things going on in that noggin of mine I'll forget so many of the simplest things.  Names, birthdays, irritating meetings all slip through like water through sand.  But anything to do with computers, programming, math or anything like that just stays there.  The best way to memorize a language, technology or even a project is write a &lt;strong&gt;Cheat Sheet&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I generally have a qucik reference for everything I work with so I can quickly remind myself whats going on.  I also have a notebook I keep all my notes in and reference page numbers on the cheat sheets.&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-10-10T14:39:21.327" />
  <row Id="10849" PostTypeId="1" AcceptedAnswerId="10854" CreationDate="2010-10-10T14:42:11.257" Score="16" ViewCount="483" Body="&lt;p&gt;I'm working with a new team that has historically not done ANY unit testing.  My goal is for the team to &lt;em&gt;eventually&lt;/em&gt; employ TDD (Test Driven Development) as their natural process.  But since TDD is such a radical mind shift for a non-unit testing team I thought I would just start off with writing unit tests after coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone been in a similar situation?  What's an effective way to get a team to be comfortable with TDD when they've not done any unit testing?  Does it make sense to do this in a couple of steps?  Or should we dive right in and face all the growing pains at once??&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just for clarification, there is no one on the team (other than myself) who has ANY unit testing exposure/experience.  And we are planning on using the unit testing functionality built into Visual Studio.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-15T15:38:52.487" LastActivityDate="2011-02-24T02:47:00.803" Title="Unit testing newbie team needs to unit test" Tags="&lt;unit-testing&gt;&lt;tdd&gt;" AnswerCount="7" FavoriteCount="6" />
  <row Id="10850" PostTypeId="2" ParentId="10845" CreationDate="2010-10-10T14:43:49.850" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0308449/&quot; rel=&quot;nofollow&quot;&gt;The KGB, the Computer and Me&lt;/a&gt; about a group of hackers in Germany working for the KGB getting chased by an american astronomer and administrator. It's about a real incident. The movie &lt;a href=&quot;http://www.imdb.com/title/tt0126765/&quot; rel=&quot;nofollow&quot;&gt;23&lt;/a&gt; is also about that hacker group.&lt;/p&gt;&#xA;" OwnerUserId="4886" LastActivityDate="2010-10-10T14:43:49.850" />
  <row Id="10851" PostTypeId="2" ParentId="10845" CreationDate="2010-10-10T14:46:19.590" Score="13" ViewCount="" Body="&lt;h3&gt;&lt;a href=&quot;http://www.imdb.com/title/tt1285016/&quot; rel=&quot;nofollow&quot;&gt;The Social Network&lt;/a&gt;&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;It (mostly) accurately depicts a number of aspects of the world of software development and entrepreneurship.  The personal aspects are exaggerated, but the technical jargon seems accurate, and it's an interesting view of the problems of a quickly growing startup.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-10T14:46:19.590" CommentCount="4" />
  <row Id="10852" PostTypeId="2" ParentId="10832" CreationDate="2010-10-10T14:50:27.510" Score="1" ViewCount="" Body="&lt;p&gt;It's hard to get people to accept unit testing because it seems like a waste of time (&quot;we could be coding another money-making project!&quot;) or recursive (&quot;And then we have to write test cases for the test cases!&quot;)  I am guilty of saying both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first time you find a bug, you have to face the truth that you're not perfect (how quickly we programmers forget!) and you go, &quot;Hmmm.&quot;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Another aspect of unit testing is that the code must be written to be testable.  Realizing that Some Code is easily testable and Some Code is not makes a good programmer go &quot;Hmmm.&quot;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Did you ask your coworker why unit testing was only useful for external-facing APIs?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;One way to show the value of unit testing is to wait for a nasty bug to happen and then show how unit testing could have prevented it.  That's not to rub it in their faces, that's to, in their minds, move unit testing from an Ivory Tower Theoretical to an in-the-trenches reality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another way is to wait until the same error happens &lt;strong&gt;twice&lt;/strong&gt;. &quot;Uhhh, well Boss, we added code to test for a null after last week's problem, but the user entered an empty thing this time!&quot;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Lead by example.  Write unit tests for YOUR code, then show your boss the value.  Then see if the boss will call in pizza for lunch one day and give a presentation.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Finally, I can't tell you the relief I feel when we're about to push to prod and I get a green bar from the unit tests.&lt;/p&gt;&#xA;" OwnerUserId="4961" LastActivityDate="2010-10-10T14:50:27.510" />
  <row Id="10853" PostTypeId="2" ParentId="10845" CreationDate="2010-10-10T14:55:05.897" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=u404SLJj7ig&quot; rel=&quot;nofollow&quot;&gt;Code Rush&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A behind the scenes look at the Mozilla open source project back in 1998.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers.&#xA;Jas.&lt;/p&gt;&#xA;" OwnerUserId="3668" LastActivityDate="2010-10-10T14:55:05.897" />
  <row Id="10854" PostTypeId="2" ParentId="10849" CreationDate="2010-10-10T15:04:51.147" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;One Step at a time.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a really tough situation.  I've never gone all the way to TDD from nothing before, but in my experience, getting a team to go from no unit tests to proactively writing them has been a very &quot;one step at a time&quot; approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, get them comfortable writing unit tests and knowing really what they are and their benefits.  For my teams, it's been best to write unit tests for existing bugs.  Current bugs in systems have two things that you need to teach people to write unit tests well: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;an expected precondition and postcondition&lt;/li&gt;&#xA;&lt;li&gt;an outcome that currently is not what is expected and violates that precondition/postcondition&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;This gives members very concrete practice examples.  They can write a test before they fix the bug, so that it fails.  Then, they can fix the code so that it passes, and fixes the bug.  Once they're comfortable with this, then you can get them the rest of the way so that they can write unit tests with no code up-front and then write new code to get their tests to pass.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the trick is to give them something to practice on where there are clear method pre/post-conditions.  If requirements for methods are fuzzy, it's hard for even experienced TDD people to know exactly where to start.  Take it a step at time and you'll get there.  Good luck!&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-10T15:04:51.147" />
  <row Id="10855" PostTypeId="2" ParentId="10849" CreationDate="2010-10-10T15:27:35.290" Score="0" ViewCount="" Body="&lt;p&gt;I've been on teams that didn't do any unit testing but it was introduced and has become almost common to have some tests now.  I would suggest exploring how well does your team understand the basics of unit testing as well as what tools are you wanting to bring in here?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my case it was bringing in nUnit for some .Net code that was a mix of business logic, user interface, and back-end functionality.  I would suggest seeing if there are some people that are more willin to want to get to it more than others so that a couple of people on the team get it and it can spread a bit better than the flip side where you try to get everyone to jump in on this.  By getting some to do it well first, this enables some cross-training so that those that pick it up can be tested as to how well can they teach it to someone else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another point is to consider bringing in those that have more expertise to try to show this off to some extent.  Thoughtworks was brought in where I work to show us some stuff that some of it did get widely adopted and other parts not so much, but I think that would be true in most places.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-10T15:27:35.290" />
  <row Id="10856" PostTypeId="2" ParentId="9465" CreationDate="2010-10-10T15:41:23.850" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Blobber&lt;/strong&gt; &lt;br&gt;&#xA;A command line tool that will manipulate Azure Blob storage&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/b/clemensv/archive/2010/10/09/blobber-a-trivial-little-tool-for-uploading-listing-deleting-windows-azure-blob-storage-files.aspx&quot; rel=&quot;nofollow&quot;&gt;clemenson&lt;/a&gt; - With a MS-PL License&lt;br&gt;&#xA;&lt;a href=&quot;http://blobber.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;bhavik1st&lt;/a&gt; - With a GPLv3 License&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd probably use the top one, since it's MS-PL and I've always liked clemenson's code... &lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-10-10T15:41:23.850" />
  <row Id="10857" PostTypeId="1" CreationDate="2010-10-10T15:45:07.333" Score="7" ViewCount="230" Body="&lt;p&gt;It seems a bit of a controversial subject to document everything, including the &quot;JavaBean&quot; syntax of getters and setters for fields: People say &lt;a href=&quot;http://groups.google.com/group/project-lombok/msg/3a6f45e62616fa1e&quot; rel=&quot;nofollow&quot;&gt;its needlessly long and repetitive breaking DRY (don't repeat yourself)&lt;/a&gt;, &lt;a href=&quot;http://stackoverflow.com/questions/3852091/is-it-safe-to-use-project-lombok#comment-4097814&quot;&gt;that the naming convention should explain &lt;em&gt;everything&lt;/em&gt;&lt;/a&gt;, and it clutters code/documentation. Sometimes those arguments work. But other times, you end up with this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/adR8v.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Above is common to open source projects that do boldly follow those principles. Your left with &lt;strong&gt;entirely useless documentation&lt;/strong&gt;. That doesn't explain anything about whats going on underneath, the possible effects, or even what the expected value is (could it be null or never null? I don't know, the Javadoc doesn't tell me). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So when should I document? Do I document everything even if it occasionally clutters code? Or do I document nothing since in my eyes its &quot;obvious&quot;?&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-10-12T01:11:35.283" Title="Should you document everything or just most?" Tags="&lt;documentation&gt;" AnswerCount="7" FavoriteCount="2" />
  <row Id="10858" PostTypeId="2" ParentId="10804" CreationDate="2010-10-10T15:49:17.157" Score="3" ViewCount="" Body="&lt;p&gt;If the company has a mature development team then there may be time allocated to professional development as part of the overall process.  On the flip side, I've seen in start-ups where you don't have professional development done on the company dime as the company is struggling to survive in some ways so there are bigger fish to fry in a sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The developer has most of the responsibility for keeping their knowledge and skills up to date though I would note that often a developer will have to refine skills as needed.  For example, of the hundreds of applications my company uses which ones do I really need to know in-depth versus just having a passing knowledge of the API I'd connect for my part of the system I'm building.  There is also something to be said for date here having a couple of connotations.  While there is one that is knowing the latest and greatest, the other side is that what the company uses may differ and that is the version to know really well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A part-time work schedule shouldn't be a factor in deciding how much time to spend on professional development versus work to my mind.  The question is how well would your boss handle this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on which non-developer co-workers, this could be useful or useless.  If we are talking about people that you rarely communicate on a regular basis, then this may not be a good idea.  On the flip side, your manager and those who work on projects with you may ber another story though in this case the key is to use what knowledge you gain from blogs and books to some extent.  To some extent, using Google Fu to find how to do something is up this alley to my mind and would be a starting point if you want to get some things unblocked by things like Websense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reading blogs and books is productive if you are getting something out of it.  For example, if you are a web developer that usually works on database-driven websites where there aren't any advanced Mathematics needed, then reading about numerical analysis and symbolic computation may not be that useful.  On the flip side, reading Refactoring may be useful if you want to know more about the subject and weren't taught a lot about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing blogs would fall into that category of questionable professional development to my mind.  If you are doing it with an eye towards getting feedback and developing your skill then I could see it working.  On the other hand if you are doing it purely to stroke your own ego, then I'd question the effectiveness so it can go both ways.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-10T15:49:17.157" />
  <row Id="10859" PostTypeId="1" AcceptedAnswerId="10890" CreationDate="2010-10-10T15:51:47.570" Score="3" ViewCount="222" Body="&lt;p&gt;I am a Java developer with more than 10 years work experiences. I have been working on investment banking industry since 2002 and I plan to continue my career in this industry. But recently I am a little confused about the direction to take in my career. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to be expert in some aspects, but don't know how to develop myself. Could experts in this industry please help to shed light on this? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of my experience is focused on trading system development including fixed-income and cash equity.&lt;/p&gt;&#xA;" OwnerUserId="4963" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-10-11T02:40:54.000" LastActivityDate="2010-10-11T02:40:54.000" Title="Where is the way for an experienced financial IT developer" Tags="&lt;career&gt;&lt;java&gt;&lt;financial&gt;" AnswerCount="5" />
  <row Id="10860" PostTypeId="2" ParentId="10857" CreationDate="2010-10-10T15:53:28.050" Score="2" ViewCount="" Body="&lt;p&gt;My suggestion on documentation is that if there is anything fancy in the code, that belongs in a document that should be kept up to date.  Fancy being subject to much interpretation, in my mind is where something is done in a particular fashion that may have side effects that should be noted,e.g. something may be done to recursively to ensure that grandchild items are processed in going through a tree of nodes to perform some test on all the descendants.  Articulating why something was done a particular way can be a good way to know whether or not there was a good reason to use something.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-10T15:53:28.050" />
  <row Id="10861" PostTypeId="2" ParentId="10857" CreationDate="2010-10-10T16:05:12.587" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Document everything &lt;em&gt;that makes sense&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In an ideal world, yes, you would document everything.   However, on Earth, we have deadlines, feature cuts, families and friends to visit, vacations to take, only 24 hours in a day and only 365 days in a year.  There's just not enough time to document everything.  So, optimally, document everything you can (you won't get done), but get the most bang for your buck by:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Make code readable and method signatures as obvious as possible so that documenting is &lt;em&gt;less likely&lt;/em&gt; to be needed.&lt;/li&gt;&#xA;&lt;li&gt;Documenting the most obscure things first.  Help out others by documenting the crazy hacks you had to do to get things out the door.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-10T16:05:12.587" CommentCount="5" />
  <row Id="10862" PostTypeId="2" ParentId="10845" CreationDate="2010-10-10T16:08:17.613" Score="13" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0168122/&quot; rel=&quot;nofollow&quot;&gt;Pirates of Silicon Valley&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Good artists copy... Great artists steal. &#xA;The story of how Microsoft and Apple started the PC revolution. The chronology is a bit off, but otherwise accurate. A very well done movie. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-10-10T16:08:17.613" CommentCount="1" />
  <row Id="10863" PostTypeId="2" ParentId="10859" CreationDate="2010-10-10T16:27:04.497" Score="0" ViewCount="" Body="&lt;p&gt;Just be creative and figure out a way to learn something new in a way that benefits the company.&lt;/p&gt;&#xA;" OwnerUserId="4526" LastActivityDate="2010-10-10T16:27:04.497" CommentCount="1" />
  <row Id="10864" PostTypeId="1" CreationDate="2010-10-10T16:30:05.323" Score="2" ViewCount="215" Body="&lt;p&gt;In the C standard library, &lt;strong&gt;fopen&lt;/strong&gt; opens a file and &lt;strong&gt;fclose&lt;/strong&gt; closes a file.  &lt;strong&gt;malloc&lt;/strong&gt; allocates memory and &lt;strong&gt;free&lt;/strong&gt; deallocates it?!  Wouldn't it be more consistent if it was &lt;strong&gt;mfree&lt;/strong&gt;?  Or am I expecting too much for these things to be consistent?&lt;/p&gt;&#xA;" OwnerUserId="4526" LastActivityDate="2010-10-10T16:57:32.933" ClosedDate="2010-10-10T20:02:48.450" Title="Why is it &quot;free&quot; not &quot;mfree&quot;?" Tags="&lt;c&gt;&lt;libraries&gt;" AnswerCount="2" CommentCount="3" />
  <row Id="10865" PostTypeId="1" AcceptedAnswerId="11037" CreationDate="2010-10-10T16:33:52.903" Score="7" ViewCount="570" Body="&lt;p&gt;Functional programming is a declarative paradigm. One of the strenghts with FP is that side-effects are avoided. It's said that for some problems FP isn't a good fit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For what common problems isn't functional programming a good fit? &lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-10-11T07:30:41.453" LastActivityDate="2010-10-19T10:37:29.570" Title="For what common problems is functional programming not a good fit?" Tags="&lt;functional-programming&gt;&lt;paradigms&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="1" />
  <row Id="10866" PostTypeId="2" ParentId="10859" CreationDate="2010-10-10T16:42:52.980" Score="2" ViewCount="" Body="&lt;h2&gt;Learn functional programming&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I think that functional programming will be popular in the financial industry. It's a paradigm were side-effects are avoided and programs are easier to proove for correctness.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-10T16:42:52.980" CommentCount="5" />
  <row Id="10868" PostTypeId="2" ParentId="10845" CreationDate="2010-10-10T16:44:22.897" Score="4" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0898266/&quot; rel=&quot;nofollow&quot;&gt;The Big Bang Theory&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;It's not a movie but a TV Serie. It's so amazing that I wanted to put it as an answer even if not appropriate. Feel free to downvote me, I deserve it ;)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-10T16:44:22.897" CommentCount="6" />
  <row Id="10869" PostTypeId="2" ParentId="10864" CreationDate="2010-10-10T16:46:34.570" Score="5" ViewCount="" Body="&lt;p&gt;Becaulse CALLOC uses free too :-)&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-10T16:46:34.570" CommentCount="2" />
  <row Id="10870" PostTypeId="2" ParentId="10864" CreationDate="2010-10-10T16:57:32.933" Score="1" ViewCount="" Body="&lt;p&gt;Whether or not it was inconsistent at the time of its inception, try turning the tide against almost 40 years of code written in the language.  I think if you want &lt;em&gt;your own code&lt;/em&gt; to look consistent, run with&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#define mfree free&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-10-10T16:57:32.933" CommentCount="4" />
  <row Id="10871" PostTypeId="2" ParentId="10845" CreationDate="2010-10-10T16:58:47.300" Score="4" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.imdb.com/title/tt1459467/&quot; rel=&quot;nofollow&quot;&gt;Micro Men&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;In 1979 Clive Sinclair, British inventor of the pocket calculator, frustrated by the lack of home investment in his project,the electric car, also opposes former assistant Chris Curry's belief that he can successfully market a micro-chip for a home computer. A parting of the ways sees Curry, in partnership with the Austrian Hermann Hauser and using whizz kid Cambridge students, set up his own, rival firm to Sinclair Radionics, Acorn. Acorn beat Sinclair to a lucrative contract supplying the BBC with machines for a computer series. From here on it is a battle for supremacy to gain the upper hand in the domestic market.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Has a really nice feeling about it how it captures the spirit of the times.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-10T16:58:47.300" />
  <row Id="10872" PostTypeId="2" ParentId="10859" CreationDate="2010-10-10T16:59:26.557" Score="0" ViewCount="" Body="&lt;p&gt;You have business process knowledge in the banking industry, I see two career paths for you:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Data Warehouse / Bussiness&#xA;inteligence specialist;&lt;/li&gt;&#xA;&lt;li&gt;Financial analyst.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2913" LastActivityDate="2010-10-10T16:59:26.557" CommentCount="1" />
  <row Id="10873" PostTypeId="2" ParentId="10859" CreationDate="2010-10-10T17:12:22.223" Score="0" ViewCount="" Body="&lt;p&gt;I would suggest studying for a Sun Certification (probably Oracle these days) as it teaches you a lot of the runtime, most of which you probably haven't used.  If you've done backend code, then Swing is a whole new world with listeners and web programming another whole new world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The more you know the better. &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-10T17:12:22.223" CommentCount="5" />
  <row Id="10874" PostTypeId="2" ParentId="10865" CreationDate="2010-10-10T17:15:08.593" Score="-2" ViewCount="" Body="&lt;p&gt;What you may not have considered is that global variables are side-effects. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anything that works the best by having a lot of global variables, does not lean well towards functional programming.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-10T17:15:08.593" CommentCount="2" />
  <row Id="10875" PostTypeId="2" ParentId="10865" CreationDate="2010-10-10T17:18:07.617" Score="3" ViewCount="" Body="&lt;p&gt;Data-driven business applications. User interface and simple data operations don't need FP.&lt;/p&gt;&#xA;" OwnerUserId="2913" LastActivityDate="2010-10-10T17:18:07.617" CommentCount="4" />
  <row Id="10876" PostTypeId="2" ParentId="6832" CreationDate="2010-10-10T17:20:34.257" Score="4" ViewCount="" Body="&lt;p&gt;Whilst interviewing developers I've noticed that the ones who perform better at the technical tasks (both verbal and practical) and (far more importantly) understand the reasons &lt;strong&gt;why&lt;/strong&gt; they're doing what they're doing are all developers who read at least the occasional book. I don't think that that's entirely a coincidence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although you can certainly use Google for quick answers and blogs can be excellent for indepth coverage of specific things, books I think give you a more co-ordinated view of the topics they cover. Also, by providing the information in a different context they help knowledge stick in people's heads better. Even if it's something you already know I think it's valuable to have something which validates that knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, if someone is reading books about the subject they're working in then it almost certainly means that they're genuinely interested in what they're doing and not just plodding through things - for knowledge based or creative jobs this is very important if you're after the best staff.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-10T17:20:34.257" />
  <row Id="10877" PostTypeId="2" ParentId="10835" CreationDate="2010-10-10T17:46:58.320" Score="10" ViewCount="" Body="&lt;p&gt;I found &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321146530&quot; rel=&quot;nofollow&quot;&gt;Test Driven Development By Kent Beck&lt;/a&gt; to be a &#xA;good introduction.&lt;/p&gt;&#xA;" OwnerUserId="4949" LastActivityDate="2010-10-10T17:46:58.320" />
  <row Id="10878" PostTypeId="2" ParentId="10845" CreationDate="2010-10-10T17:53:39.950" Score="13" ViewCount="" Body="&lt;p&gt;Anyone who's ever worked in IT absolutely has to watch &lt;strong&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0151804/&quot; rel=&quot;nofollow&quot;&gt;Office Space&lt;/a&gt;&lt;/strong&gt; at some point, and compare their experience with the workplace from hell depicted in the movie.  It certainly fits into your &quot;teaching about the industry&quot; category... as a stark warning of what happens when it goes very very bad.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastEditorUserId="4966" LastEditorDisplayName="" LastEditDate="2010-10-10T18:44:33.170" LastActivityDate="2010-10-10T18:44:33.170" CommentCount="1" />
  <row Id="10879" PostTypeId="2" ParentId="10835" CreationDate="2010-10-10T18:00:06.710" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1933988274&quot; rel=&quot;nofollow&quot;&gt;The Art of Unit Testing&lt;/a&gt; by Roy Osherove. Great practical examples on using unit and integration tests, employing mocking frameworks, etc.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-10T18:00:06.710" />
  <row Id="10880" PostTypeId="1" AcceptedAnswerId="10884" CreationDate="2010-10-10T18:08:04.233" Score="22" ViewCount="804" Body="&lt;p&gt;I'm toying with starting an occasional blog for posting odd bits of coding related stuff (mainly C++, probably).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any platforms which can be recommended as providing exceptionally good support (e.g syntax highlighting) for posting snippets of code ?  (Or any to avoid because posting mono-spaced font blocks of text is a pain).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Outcome:&lt;/strong&gt; I accepted Josh K's answer because what I &lt;em&gt;actually&lt;/em&gt; ended up doing was realizing I was more interested in &lt;em&gt;articles&lt;/em&gt; than a blog style, getting back into LaTeX (after almost 20 years away from it), using the &quot;listings&quot; package for code, and pushing the &lt;a href=&quot;http://www.bottlenose.demon.co.uk/article/lru.htm&quot; rel=&quot;nofollow&quot;&gt;HTML&lt;/a&gt;/&lt;a href=&quot;http://www.bottlenose.demon.co.uk/article/lru.pdf&quot; rel=&quot;nofollow&quot;&gt;PDF&lt;/a&gt; results to my ISP's static-hosting pages.  (HTML generated using tex4ht).  Kudos to the answers mentioning Wordpress, Tumblr and Jekyll; I spent some time looking into all of them.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastEditorUserId="4966" LastEditorDisplayName="" LastEditDate="2010-12-04T15:03:55.710" LastActivityDate="2011-02-11T16:07:16.427" Title="What's the best platform for blogging about coding ?" Tags="&lt;blogs&gt;&lt;documentation&gt;&lt;web-tools&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="7" />
  <row Id="10882" PostTypeId="2" ParentId="10880" CreationDate="2010-10-10T18:16:22.480" Score="17" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://wordpress.org/&quot; rel=&quot;nofollow&quot;&gt;Wordpress&lt;/a&gt; with &lt;a href=&quot;http://wordpress.org/extend/plugins/wp-syntax/&quot; rel=&quot;nofollow&quot;&gt;WP-Syntax plugin&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;need I say more?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt; Victor Hurdugaci mentioned &lt;a href=&quot;http://viper007bond.com/wordpress-plugins/syntaxhighlighter&quot; rel=&quot;nofollow&quot;&gt;SyntaxHighlighter Evolved&lt;/a&gt; which is another option&lt;/p&gt;&#xA;" OwnerUserId="1013" LastEditorUserId="1013" LastEditorDisplayName="" LastEditDate="2010-10-11T14:11:11.017" LastActivityDate="2010-10-11T14:11:11.017" CommentCount="28" />
  <row Id="10884" PostTypeId="2" ParentId="10880" CreationDate="2010-10-10T18:23:15.457" Score="16" ViewCount="" Body="&lt;h1&gt;Make your own&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;And include &lt;a href=&quot;http://code.google.com/p/google-code-prettify/&quot; rel=&quot;nofollow&quot;&gt;Prettify&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reasons for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You know what you're doing.&lt;/li&gt;&#xA;&lt;li&gt;You understand the innerworkings&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Why not?&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Pick and choose what you want. Want comments? Done. Want built in caching? Done. Don't want images? Done.&lt;/li&gt;&#xA;&lt;li&gt;Code highlighting / formatting is easy. Wrap your &lt;code&gt;&amp;lt;code&lt;/code&gt;&gt; blocks in a &lt;code&gt;&amp;lt;pre&amp;gt;&lt;/code&gt; block and format. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h3&gt;Things I did on my blog&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;http://joshuakehn.com/blog/view/18/Ignited-Blog-Repository&quot; rel=&quot;nofollow&quot;&gt;Link to said blog&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;MongoDB for storage. Flexible, quick, and above all &lt;em&gt;uncomplicated&lt;/em&gt; database backend. Comments, tags, everything is stored inline which rids yourself from needing the multiple tables and joins that MySQL or PostgreSQL need.&lt;/li&gt;&#xA;&lt;li&gt;Comments&lt;/li&gt;&#xA;&lt;li&gt;Markdown format. This is a godsend from having to actually write the markup and work with it. Super easy code blocks, quotes, lists, or anything else. &lt;/li&gt;&#xA;&lt;li&gt;Tags&lt;/li&gt;&#xA;&lt;li&gt;Post downloads&lt;/li&gt;&#xA;&lt;li&gt;Anything else you might want to add.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you don't want to make your own, I would suggest &lt;a href=&quot;http://www.movabletype.org/&quot; rel=&quot;nofollow&quot;&gt;Moveable Type&lt;/a&gt; or &lt;a href=&quot;http://github.com/mojombo/jekyll&quot; rel=&quot;nofollow&quot;&gt;Jekyll&lt;/a&gt; as two alternatives. I would put my own on this list but honestly don't think it's ready for public consumption at the moment. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2011-02-08T00:42:14.733" LastActivityDate="2011-02-08T00:42:14.733" CommentCount="12" />
  <row Id="10885" PostTypeId="2" ParentId="10793" CreationDate="2010-10-10T18:31:12.750" Score="2" ViewCount="" Body="&lt;p&gt;There's no hard and fast rule, no dividing line past which your commit is too big.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There &lt;em&gt;is&lt;/em&gt; however a guideline that smaller commits are better, within reason (ie committing every line is probaby excessive).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I keep these kinds of guidelines in mind:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A single commit should include changes for just one bug fix&lt;/li&gt;&#xA;&lt;li&gt;A single commit shouldn't include more than half a days work&lt;/li&gt;&#xA;&lt;li&gt;A single commit shouldn't break the build&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Of course - these are what I keep in mind - YMMV. Different developers favour different levels of granularity.&lt;/p&gt;&#xA;" OwnerUserId="4099" LastActivityDate="2010-10-10T18:31:12.750" CommunityOwnedDate="2011-01-20T04:56:55.133" />
  <row Id="10886" PostTypeId="2" ParentId="10793" CreationDate="2010-10-10T18:43:26.983" Score="0" ViewCount="" Body="&lt;p&gt;Commit messages should be one line only (and for git max 60 chars).  The amount of code being committed must be small enough to keep the descriptive message within that limit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to commit everytime (even more so now we've switched to git) I have a chunk done, as it allows to capture the &quot;why&quot; things were done in this way.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-10T18:43:26.983" CommunityOwnedDate="2011-01-20T04:56:55.133" CommentCount="3" />
  <row Id="10887" PostTypeId="2" ParentId="39" CreationDate="2010-10-10T19:00:27.193" Score="6" ViewCount="" Body="&lt;p&gt;Every time I ask developers why their shiny new C# .NET version isn't nearly as fast and smooth as the old C/C++ version, I'm thinking of:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The most amazing achievement of the computer software industry is its continuing cancellation of the steady and staggering gains made by the computer hardware industry.&lt;br&gt;&#xA;  &amp;emsp; &amp;mdash; &lt;a href=&quot;http://en.wikipedia.org/wiki/Henry_Petroski&quot; rel=&quot;nofollow&quot;&gt;Henry Petroski&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;But they just tell me to shut up while they plaster on yet another level of abstraction...&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-10-10T19:22:43.450" CommunityOwnedDate="2010-10-10T19:00:27.193" CommentCount="1" />
  <row Id="10888" PostTypeId="2" ParentId="10832" CreationDate="2010-10-10T19:10:41.043" Score="5" ViewCount="" Body="&lt;p&gt;If you mean private the way I think you mean it, then no - you shouldn't be unit testing it. You should only be unit testing observable behaviour/state. You may be missing the point behind the &quot;red-green-refactor&quot; cycle of TDD (and if you're not doing test first then the same principle apply). Once the tests are written and passing you do not want them to be changing whilst performing the refactoring. If you're forced to unit test private functionality then it probably means that the unit tests around the public functionality are flawed. If it's difficult and complex to write tests around the public code then maybe your class is doing too much or your problem isn't clearly defined.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Worse, over time your unit tests will become a ball and chain slowing you down without adding any value whatsoever (changing implementation, for example optimisation or removal of duplication, should have no effect on the unit tests). Internal code should, however, be unit tested as the behaviour/state is observable (just in a restricted way).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I first did unit testing I pulled all sorts of tricks to unit test private stuff but now, with a few years under my belt, I see it as worse than a waste of time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a bit of a silly example, of course in real life you would have more tests than these:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's say you have a class that returns a sorted list of strings - you should check that the result is sorted, not how it actually sorts that list. You could start your implementation with a single algorithm that just sorts the list. Once that's done your test doesn't need to change if you then change your sorting algorithm. At this point you have a single test (assuming that the sorting is embedded in your class):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Is my result sorted?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Now say you want two algorithms (perhaps one is more efficient in some circumstances but not others), then each algorith could (and generally, should) be provided by a different class and your class picks from them - you can check this is happening for your chosen scenarios using mocks, but your original test is still valid and as we are only verifying observable behaviour/state it doesn't need to change. You end up with 3 tests:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Is my result sorted?&lt;/li&gt;&#xA;&lt;li&gt;Given a scenario (let's say the initial list is almost sorted to begin with) is a call made to the class that sorts strings using algorithm X?&lt;/li&gt;&#xA;&lt;li&gt;Given a scenario (the initial list is in a random order) is a call made to the class that sorts strings using algorithm Y?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The alternative would have been to begin testing private code inside your class - you don't gain anything from this - the above tests tell me everything that I need to know as far as unit testing is concerned. By adding private tests you're building yourself a straight jacket, how much more work would it be if you not only checked that the result was sorted but also how it's sorted?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tests (of this type) should only change when behaviour changes, start writing tests against private code and that goes out the window.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastEditorUserId="1362" LastEditorDisplayName="" LastEditDate="2010-10-12T08:37:20.353" LastActivityDate="2010-10-12T08:37:20.353" CommentCount="1" />
  <row Id="10889" PostTypeId="2" ParentId="10793" CreationDate="2010-10-10T19:11:22.987" Score="8" ViewCount="" Body="&lt;p&gt;Imagine that the client asked to have a particular change made - for example to add a rule that something or another can't be done within two days of the &quot;whatever&quot; date. Then, after you've made the change, they change their minds. You will want to roll back your commit. If it's all mushed in with some things about changing the sort order of unrelated reports, your life is a misery.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One work item, one changeset. One request from the client, one changeset. One thing you might change your mind about, one changeset. Sometimes that means it is one single line of code. Sometimes it is ten different files including the database schema. That's fine. &lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-10T19:11:22.987" CommunityOwnedDate="2011-01-20T04:56:55.133" />
  <row Id="10890" PostTypeId="2" ParentId="10859" CreationDate="2010-10-10T19:13:13.537" Score="1" ViewCount="" Body="&lt;p&gt;Hopefully you are already in New York, London or Tokyo. If not, get yourself there and see a 60% salary lift and a ton of opportunities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java is a great start, but some large financial institutions will have invested heavily in infrastructures which are sometimes unique to their problems. You can't possibly learn those from the outside, but you can learn everything possible to 'hit the ground running' once you get there:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Get some C++ under your belt. All the Derivatives and FX work I've seen advertised requires C++ and an understanding of Templates.&lt;/li&gt;&#xA;&lt;li&gt;As @Jonas says, learn some functional programming. F# jobs are paying well, it seems.&lt;/li&gt;&#xA;&lt;li&gt;Work on your team leader/management skills. Experienced people are hard to find, particularly in such a demanding industry as they either stay a long time or get out of the industry.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-10T19:13:13.537" CommentCount="5" />
  <row Id="10892" PostTypeId="2" ParentId="39" CreationDate="2010-10-10T19:27:07.113" Score="8" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Why fix an old bug if you can write three new ones in the same time?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;— David Kastrup&lt;/p&gt;&#xA;" OwnerUserId="2448" LastActivityDate="2010-10-10T19:27:07.113" CommunityOwnedDate="2010-10-10T19:27:07.113" />
  <row Id="10893" PostTypeId="2" ParentId="10804" CreationDate="2010-10-10T19:27:09.153" Score="1" ViewCount="" Body="&lt;p&gt;At my workplace we're responsible for keeping up to date ourselves, but if there's a class we want to take or a book we want to read we can ask the company to pay for it and (if a class) study on company time. I've also had a week's self-study time granted to start learning some Python (to be taken when there was little regular work for me to do). It has worked well for me so far, but it truly is a personal responsibility - if I hadn't requested the time to study no one would have pushed me to do it.&lt;/p&gt;&#xA;" OwnerUserId="4389" LastActivityDate="2010-10-10T19:27:09.153" CommentCount="1" />
  <row Id="10895" PostTypeId="2" ParentId="10736" CreationDate="2010-10-10T19:36:10.070" Score="0" ViewCount="" Body="&lt;p&gt;log the usb ports and do a regular check&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-10T19:36:10.070" />
  <row Id="10896" PostTypeId="2" ParentId="6832" CreationDate="2010-10-10T19:39:55.997" Score="1" ViewCount="" Body="&lt;p&gt;The reason to read books is to improve your own knowledge and skills. That implies two things: (1) you have to recognize you have room to improve, and (2) you have to want to improve. Many of the programmers I've met had ego's the size of planets. A large chunk of the rest were happy to coast along.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-10-10T19:39:55.997" />
  <row Id="10898" PostTypeId="2" ParentId="10857" CreationDate="2010-10-10T19:47:59.920" Score="3" ViewCount="" Body="&lt;p&gt;Keep documenting until you can watch someone else read it without feeling the need to explain anything.&lt;/p&gt;&#xA;" OwnerUserId="4475" LastActivityDate="2010-10-10T19:47:59.920" />
  <row Id="10899" PostTypeId="1" AcceptedAnswerId="10943" CreationDate="2010-10-10T20:13:56.400" Score="5" ViewCount="422" Body="&lt;p&gt;What are questions to test a programmers knowledge of SQL? What is the answer to the question? And what would a lack of an correct answer mean in terms of time likely to understand the concept(s) related to the question?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;GOOGLED:&lt;/strong&gt; sql challenge&lt;/p&gt;&#xA;" OwnerUserId="4942" LastEditorUserId="4942" LastEditorDisplayName="" LastEditDate="2010-10-10T20:49:24.707" LastActivityDate="2010-10-11T02:36:43.807" Title="What are questions to test a programmers knowledge of SQL?" Tags="&lt;great-programmer&gt;&lt;hiring&gt;&lt;testing&gt;&lt;sql&gt;&lt;contests&gt;" AnswerCount="2" FavoriteCount="3" />
  <row Id="10900" PostTypeId="2" ParentId="10857" CreationDate="2010-10-10T20:21:34.667" Score="4" ViewCount="" Body="&lt;p&gt;This past week there was a &lt;em&gt;great&lt;/em&gt; article regarding documentation over at The Daily WTF. I think it says everything, so I'll just leave the link:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://thedailywtf.com/Articles/Documentation-Done-Right.aspx&quot; rel=&quot;nofollow&quot;&gt;http://thedailywtf.com/Articles/Documentation-Done-Right.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically it says that you shouldn't document something if it's not going to be useful (some documentation is just left to rot in a drawer) and document the least amount of information that is needed to understand a certain part of the project. Too much documentation just confuses the reader.&lt;/p&gt;&#xA;" OwnerUserId="3682" LastActivityDate="2010-10-10T20:21:34.667" />
  <row Id="10901" PostTypeId="2" ParentId="10857" CreationDate="2010-10-10T20:21:56.677" Score="3" ViewCount="" Body="&lt;p&gt;Really depends on how readable the code is to the audience reading it. Figure out who the audience is for reading your code, and have someone that meets that profile read your code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another approach would be to review your own code after a week and see if you still understand what you did, if you don't, document it and review the code in two weeks or so.&lt;/p&gt;&#xA;" OwnerUserId="4942" LastEditorUserId="4942" LastEditorDisplayName="" LastEditDate="2010-10-11T21:04:47.810" LastActivityDate="2010-10-11T21:04:47.810" />
  <row Id="10902" PostTypeId="2" ParentId="39" CreationDate="2010-10-10T20:31:55.670" Score="0" ViewCount="" Body="&lt;h3&gt;Skill Appreciates Skill&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;(Or, It Takes One to Know One)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;I have often felt that programming is an art form,&lt;br /&gt;&#xA;whose real value can only be appreciated&lt;br /&gt;&#xA;by another versed in the same arcane art;&lt;br /&gt;&#xA;there are lovely gems and brilliant coups&lt;br /&gt;&#xA;hidden from human view and admiration, sometimes forever,&lt;br /&gt;&#xA;by the very nature of the process.&lt;br /&gt;&#xA;You can learn a lot about an individual&lt;br /&gt;&#xA;just by reading through his code, even in hexadecimal.&lt;br /&gt;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;From &lt;a href=&quot;http://foldoc.org/The+Story+of+Mel&quot; rel=&quot;nofollow&quot;&gt;The Story of Mel, a Real Programmer&lt;/a&gt; (free verse version)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had no idea there was actually a short &lt;a href=&quot;http://en.wikipedia.org/wiki/Mel_Kaye&quot; rel=&quot;nofollow&quot;&gt;Wikipedia article&lt;/a&gt; with links to both prose and verse versions of the story, along with other information.&lt;/p&gt;&#xA;" OwnerUserId="2515" LastEditorUserId="2515" LastEditorDisplayName="" LastEditDate="2010-10-12T04:37:30.993" LastActivityDate="2010-10-12T04:37:30.993" CommunityOwnedDate="2010-10-10T20:31:55.670" />
  <row Id="10903" PostTypeId="2" ParentId="10845" CreationDate="2010-10-10T20:38:39.433" Score="1" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.imdb.com/title/tt1235431/&quot; rel=&quot;nofollow&quot;&gt;History of Computer Animation&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0210309/&quot; rel=&quot;nofollow&quot;&gt;The Story of Computer Graphics&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Summary from IMDB:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The History of Computer Animation Volume 1 takes you on a delirious trip through a strange and magical world where anything can be created - from chrome dinosaurs to a melancholy nightclub piano player. From the very first uses of computers to create motion and make art - to the futuristic wizardry of motion picture special effects, this award winning one-hour documentary explores the furthest reaches of computer animation using the hypnotic works of over 150 production companies and artists from around the world! See how computer animation sequences are built up step-by-step, from the construction of wire frame models to the addition of color, lighting and texture. Dozens of spectacular, state-of-the-art examples show the effective use of computer graphics in such diverse fields as advertising, production, business communication , architectural and product design, education, medicine, scientific research, real time simulation, children's games and dramatic production.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've seen The Story of Computer Graphics, which is really good if you're into graphics, but the History of Computer Animation is newer and I'm assuming it pretty much covers the same material.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-10T20:38:39.433" />
  <row Id="10904" PostTypeId="2" ParentId="10845" CreationDate="2010-10-10T20:43:10.383" Score="1" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0417334/&quot; rel=&quot;nofollow&quot;&gt;Inventions That Changed The World - Computers&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Knowing the history of computers is always fascinating, especially if you know how to program them.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-10T20:43:10.383" />
  <row Id="10905" PostTypeId="2" ParentId="10845" CreationDate="2010-10-10T20:50:45.220" Score="1" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0207264/&quot; rel=&quot;nofollow&quot;&gt;Nerds 2.0.1: A Brief History of the Internet&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Haven't actually seen this one yet, but it looks promising.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-10T20:50:45.220" />
  <row Id="10906" PostTypeId="2" ParentId="10865" CreationDate="2010-10-10T20:58:04.593" Score="5" ViewCount="" Body="&lt;p&gt;Real-time embedded programming is all about the side effects.  Interacting with digital and analog io, timers, serial and parallel ports, everything interesting is done by calling functions with side efffects.  &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-10T20:58:04.593" CommentCount="2" />
  <row Id="10907" PostTypeId="2" ParentId="10899" CreationDate="2010-10-10T20:59:19.727" Score="2" ViewCount="" Body="&lt;p&gt;I would ask &lt;strong&gt;&quot;Why and how should you sanitize input values given from the user which will be used in an SQL query?&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is needed to prevent SQL injections, and being able to answer this requires good knowledge about SQL syntax and commands (such as &lt;code&gt;SELECT&lt;/code&gt;, &lt;code&gt;UPDATE&lt;/code&gt;, &lt;code&gt;DROP&lt;/code&gt;, &lt;code&gt;DELETE&lt;/code&gt;, etc.), as well how those can be circumvented by use of SQL comments to break a query and inject what the malignant user may wish to do.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-10T20:59:19.727" CommentCount="4" />
  <row Id="10908" PostTypeId="2" ParentId="10845" CreationDate="2010-10-10T21:10:40.527" Score="4" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.revolution-os.com/&quot; rel=&quot;nofollow&quot;&gt;Revolution OS&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;A documentary about Linux's rise to popularity, and its Open Source/Free Software roots. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-10-10T21:10:40.527" CommentCount="1" />
  <row Id="10909" PostTypeId="2" ParentId="10880" CreationDate="2010-10-10T21:12:33.887" Score="3" ViewCount="" Body="&lt;p&gt;For a free site (Wordpress.com, Blogspot, etc.) you can embed &lt;a href=&quot;http://gist.github.com/&quot; rel=&quot;nofollow&quot;&gt;gists&lt;/a&gt;. They won't show up through RSS readers (dunno if there's a way around that), but posts accessed through your site will have them in with proper syntax highlighting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: the free hosted version of Wordpress now supports syntax highlighting without workarounds with gists.&lt;/p&gt;&#xA;" OwnerUserId="226" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2011-02-11T16:07:16.427" LastActivityDate="2011-02-11T16:07:16.427" CommentCount="1" />
  <row Id="10911" PostTypeId="2" ParentId="10880" CreationDate="2010-10-10T22:06:22.993" Score="3" ViewCount="" Body="&lt;p&gt;I don't really blog on programming matters, but a colleague swears by &lt;a href=&quot;http://explore.live.com/windows-live-writer&quot; rel=&quot;nofollow&quot;&gt;Windows Live Writer&lt;/a&gt; with the &lt;a href=&quot;http://gallery.live.com/liveItemDetail.aspx?li=d8835a5e-28da-4242-82eb-e1a006b083b9&quot; rel=&quot;nofollow&quot;&gt;Paste from Visual Studio&lt;/a&gt; plugin. He coded up his own blog, but Live Writer supports several of the major hosts (Wordpress, Blogger, TypePad, etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not sure if that's relevant to you, but for Windows/.NET people, it's pretty sweet.&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-10-10T22:06:22.993" CommentCount="1" />
  <row Id="10912" PostTypeId="2" ParentId="10827" CreationDate="2010-10-10T22:15:34.293" Score="8" ViewCount="" Body="&lt;p&gt;Another book for you: &lt;a href=&quot;http://pragprog.com/titles/ahptl/pragmatic-thinking-and-learning&quot; rel=&quot;nofollow&quot;&gt;Refactor your Wetware&lt;/a&gt;.  Much of it concerns unlocking &quot;right-brain&quot; thinking (&quot;R-mode&quot; in the book) as a necessary part of &quot;becoming an expert&quot; (at anything), rejecting the idea that programming is an entirely left-brained activity.  The book contains a large number of exercises and things to try.  Note that the book is more about tapping into intuition and your brain's amazing subconscious powers of pattern matching and creativity than developing the visual skills specifically.  In fact one of the things the book points out is that for every person who's intuition is telling them something &quot;looks right&quot;, there are others who are more &quot;feels right&quot;, &quot;sounds right&quot; or even &quot;smells/tastes right&quot; people.  (Naturally, some of the exercises involve figuring out which camp you naturally fall into, and trying out the others).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not going to claim the book is destined to become a &quot;classic&quot;, but I certainly enjoyed reading it, it's thought-provoking and it's certainly changed my thinking about some things.  While there are many other books on the same general topic, this one is, I think, unique in being very much written with developers in mind.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastEditorUserId="4966" LastEditorDisplayName="" LastEditDate="2010-10-11T10:09:44.610" LastActivityDate="2010-10-11T10:09:44.610" CommentCount="3" />
  <row Id="10913" PostTypeId="2" ParentId="10849" CreationDate="2010-10-10T22:17:44.467" Score="11" ViewCount="" Body="&lt;p&gt;I've managed to convince my whole company to switch to TDD. It wasn't easy, but it was well worth the effort: the quality of the code went up after the transition, and now nobody imagines going back to the horrible, cowboy coding times.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Explain, explain, explain. You don't want your team to write tests. You want your team to &lt;em&gt;want&lt;/em&gt; to write tests. This means that they should fully understand &lt;em&gt;why&lt;/em&gt; they should be doing it, what are the benefits, and how this will make their job much easier. &lt;em&gt;Red, Green, Refactor&lt;/em&gt;, writing a regression test as proof that a bug has been fixed, etc. You have to convince them the whole thing makes sense before you ask them to write any code.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Go for the real thing (first tests, then code). Writing tests after the code hardly makes any sense, as you will never know if they actually work (and people do write buggy test cases). My intuition is that the amount of effort you need to go from &lt;em&gt;no tests&lt;/em&gt; to &lt;em&gt;tests first&lt;/em&gt; is much less than what you need to go form &lt;em&gt;no tests&lt;/em&gt; through &lt;em&gt;code first&lt;/em&gt; to &lt;em&gt;tests first&lt;/em&gt;, so you may as well skip the middle step.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Start with regression tests. These are pretty simple to understand, and they give instant gratification. Of course, this assumes that the code is properly modularized and easily testable. If not, skip this step.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Take baby steps. TDD takes some time to get used and may be frustrating at first. Try to introduce testing in a brand new project or component, ideally: something not very important. You want to avoid at all costs the situation when there's something really important to be done really quickly and the programmers feel that TDD is getting in the way.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When the team starts being comfortable, have all new functionality written in a TDD manner. This depends on the size of your project, but after some time you should get a pretty good coverage, with only some &lt;em&gt;legacy&lt;/em&gt; parts of your project written in the old way.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;By this point, the team should already understand and embrace TDD, and the &lt;em&gt;legacy&lt;/em&gt; (non TDD) stuff should be considered difficult and annoying to work with. Get it refactored: most pople will do it with pleasure.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Some other important points:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Make sure you are using the best testing framework available. It will be much harder to convince people to do TDD if they have to interact with a library that is poorly written.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make sure the tests are easy to run and don't take to much time to finish (or cheat, for example by using an in-memory db for the tests).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Setup some continuous integration software, so that broken tests are found immediately.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4928" LastActivityDate="2010-10-10T22:17:44.467" />
  <row Id="10915" PostTypeId="2" ParentId="39" CreationDate="2010-10-10T22:26:31.587" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Einstein argued that there must be simplified explanations of nature, because God is not capricious or arbitrary. No such faith comforts the software engineer. &#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; Fred Brooks, &lt;a href=&quot;http://www.virtualschool.edu/mon/SoftwareEngineering/BrooksNoSilverBullet.html&quot; rel=&quot;nofollow&quot;&gt;&quot;No Silver Bullet&quot;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3316" LastActivityDate="2010-10-11T13:13:00.060" CommunityOwnedDate="2010-10-10T22:26:31.587" />
  <row Id="10916" PostTypeId="1" CreationDate="2010-10-10T22:26:57.717" Score="8" ViewCount="488" Body="&lt;p&gt;I'm curious if speakers (bloggers, google employees like Matt Cutts) get paid for speaking at conferences. If they do, how much ? &lt;/p&gt;&#xA;" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2010-10-17T14:31:45.500" LastActivityDate="2010-11-04T12:16:13.060" Title="Do speakers get paid for their tech talks ?" Tags="&lt;technology&gt;&lt;business&gt;&lt;conferences&gt;" AnswerCount="6" FavoriteCount="0" />
  <row Id="10917" PostTypeId="2" ParentId="10916" CreationDate="2010-10-10T22:33:10.620" Score="5" ViewCount="" Body="&lt;p&gt;Speakers at tech conferences generally get their travel costs refunded, but nothing more.&lt;/p&gt;&#xA;" OwnerUserId="4354" LastActivityDate="2010-10-10T22:33:10.620" CommentCount="5" />
  <row Id="10919" PostTypeId="2" ParentId="39" CreationDate="2010-10-10T23:03:41.277" Score="16" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Any sufficiently advanced technology is indistinguishable from magic.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- Arthur C. Clarke&lt;/p&gt;&#xA;" OwnerUserId="1353" LastActivityDate="2010-10-10T23:03:41.277" CommunityOwnedDate="2010-10-10T23:03:41.277" CommentCount="5" />
  <row Id="10920" PostTypeId="1" AcceptedAnswerId="10925" CreationDate="2010-10-10T23:23:58.747" Score="3" ViewCount="177" Body="&lt;p&gt;I got my bachelor's degree in CS five years ago and after that I've been working as software engineer building Voice Over IP (VOIP) or Video Surveillance System. But now for some personal reason I feel that I would like go back to get a PhD degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But now, the problem is, I am not quite sure which branch of Computer Science I should choose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As most of my working experience is related to multimedia, perhaps professors who study that would be more willing to accept my application. However, I am not quite sure if multimedia is still popular research domain in North America. And if there are not too much works left in this domain, what are other possible choices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am also interested in programming languages, but I don't know if programming languages could be considered a research area.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another important question is, after I have decided in which domain I would like to study. How can I find most influential research results in this area to get an overview of it? In other words, since there must be plenty of papers in a domain, how can I know which I should read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW: If you happened to be a PhD student in Computer Science, what kind of skills or personality do you think your professors prefer? (This last question might be too subjective, so please ignore it if you feel it's ridiculous)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks a lot!&lt;/p&gt;&#xA;" OwnerUserId="4976" LastActivityDate="2010-10-12T09:21:01.750" Title="How to choose a research discipline in Computer Science?" Tags="&lt;computer-science&gt;" AnswerCount="1" FavoriteCount="3" />
  <row Id="10921" PostTypeId="2" ParentId="10916" CreationDate="2010-10-10T23:35:46.690" Score="3" ViewCount="" Body="&lt;p&gt;It depends on the conference. For most conferences, the conf registration is comp'd, but travel &amp;amp; hotel are the speakers responsibility. I know of some other conferences where speakers are also required to pay their own registration fees. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keynote presenters are almost always paid (in addition to having their hotel and flight covered). Some conferences have a middle tier of &quot;invited speakers&quot; who may get a small stipend or have hotel and flight covered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there's a particular conference you're interested in, the web sites for most conferences list this information with the speaker submission information.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-10-10T23:35:46.690" CommentCount="1" />
  <row Id="10922" PostTypeId="2" ParentId="10128" CreationDate="2010-10-10T23:54:39.070" Score="0" ViewCount="" Body="&lt;p&gt;Anyone knows when this project was started?&lt;/p&gt;&#xA;" OwnerUserId="4533" LastActivityDate="2010-10-10T23:54:39.070" CommunityOwnedDate="2010-10-10T23:54:39.070" />
  <row Id="10923" PostTypeId="1" AcceptedAnswerId="10926" CreationDate="2010-10-10T23:58:46.617" Score="6" ViewCount="450" Body="&lt;p&gt;What if I hide the GPL code inside an application, if someone finds out, what would happen to me?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I know I could be put to the court. I'll convince a friend to register and distribute using his name. I will try to prepare by erasing any evidence I am the actual developer should someone really finds out the violation.&lt;/p&gt;&#xA;" OwnerUserId="4977" LastEditorUserId="4977" LastEditorDisplayName="" LastEditDate="2010-10-11T00:59:41.287" LastActivityDate="2010-10-11T02:32:38.330" ClosedDate="2010-10-11T03:55:02.137" Title="What would happen if I violate GPL?" Tags="&lt;advice&gt;&lt;technology&gt;&lt;gpl&gt;" AnswerCount="3" CommentCount="11" FavoriteCount="1" />
  <row Id="10925" PostTypeId="2" ParentId="10920" CreationDate="2010-10-11T00:05:13.633" Score="2" ViewCount="" Body="&lt;p&gt;If programming languages could be considered a research area? Absolutely! Both on the theoretical side (and then things get &lt;em&gt;very&lt;/em&gt; abstract -- do a search for &quot;type theory&quot; and &quot;programming language semantics&quot;) and on the practical side (compilers, optimizing techniques, etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to &quot;the most influential research results in this area to get an overview of it&quot;, you should probably talk to a CS professor -- they can keep track of what happens in their research areas better than anyone else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did get a PhD, and in my opinion there are no fixed set of skills and personality that would make your life easier. It depends &lt;em&gt;a whole lot&lt;/em&gt; on your advisor's personality and on your research area. I really think that talking to a couple of professors (with different research interests) may help you there.&lt;/p&gt;&#xA;" OwnerUserId="4889" LastEditorUserId="4889" LastEditorDisplayName="" LastEditDate="2010-10-12T09:21:01.750" LastActivityDate="2010-10-12T09:21:01.750" />
  <row Id="10926" PostTypeId="2" ParentId="10923" CreationDate="2010-10-11T00:05:44.987" Score="12" ViewCount="" Body="&lt;p&gt;Someone WILL find out. Guaranteed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You won't go to jail, but you will face a lawsuit. Lawyers will get rich. You will get poor. Not a good result for anyone. Except the lawyers, and they don't count.&lt;/p&gt;&#xA;" OwnerUserId="1852" LastActivityDate="2010-10-11T00:05:44.987" CommentCount="13" />
  <row Id="10927" PostTypeId="1" AcceptedAnswerId="10950" CreationDate="2010-10-11T00:20:03.020" Score="3" ViewCount="92" Body="&lt;p&gt;I'm trying to think of the cleanest way to implement a couple of methods that open a file.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider the following method signatures:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public static DomainObject Load(Uri urlToFile)&#xA;{&#xA;    /* downloads file and calls Load(savedToFilename) */&#xA;}&#xA;&#xA;public static DomainObject Load(string filename) &#xA;{ &#xA;    /* creates filestream and calls Load(stream) */&#xA;}&#xA;&#xA;public static DomainObject Load(Stream stream) &#xA;{ &#xA;    /* does actual loading */ &#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I'm trying to implement some concepts from &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0132350882&quot; rel=&quot;nofollow&quot;&gt;Clean Code&lt;/a&gt;, specifically:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;When constructors are overloaded, use static factory methods with names that describe the arguments. For example, &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;em&gt;Complex fulcrumPoint = Complex.FromRealNumber(23.0);&lt;/em&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;is generally better than&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;em&gt;Complex fulcrumPoint = new Complex(23.0);&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Now, I know I do not have overloaded constructors, per se (I refactored away from that), but I think the principle is the same. So that implies that my Load methods be refactored to something like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public static DomainObject FromURI(Uri urlToFile);&#xA;public static DomainObject FromFile(string filename);&#xA;public static DomainObject FromStream(Stream stream);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But, tbh, I think it's more intuitive to use what I've already got. From a consumer's perspective it feels like Open will take whatever source I happen to have whereas the other method requires me to think first about what my source is and then wonder if there is a specific method for that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I ask, from your more experienced viewpoint, which is better and why?&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-10-11T00:52:59.617" LastActivityDate="2010-10-11T04:15:41.927" Title="FromXYZ vs Overloaded Method" Tags="&lt;c#&gt;&lt;refactoring&gt;&lt;coding-style&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="1" />
  <row Id="10928" PostTypeId="2" ParentId="10916" CreationDate="2010-10-11T00:23:22.820" Score="7" ViewCount="" Body="&lt;p&gt;It varies. I have had speaking gigs where I spent my own money to get there, to eat, and so on, and didn't get paid to speak. I would say my norm for a conference where attendees pay is free admission, economy travel and hotel covered (but not meals, cab fare and the like), and possibly a small honorarium (eg $500 per talk.) For a conference where attendees do not pay there is no honorarium and often no travel covered either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some large conferences offer a few selected speakers a pre-conference which can pay a full week's billable rate or more for a single day (because, of course, you put a lot of time into preparing that day of training). I have heard of conferences that actually ask speakers to pay to get in the door in addition to covering their own travel expenses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, the benefit of being there for the week and the benefit of being able to say &quot;I've spoken at ten Tech Ed US, four Tech Ed Europe, and three Tech Ed Africa&quot; (so far - fifth Tech Ed Europe is next month) is what has to balance against my time spent preparing the talks and being there. The honorarium rarely factors into it. (How much speaking do I do? &lt;a href=&quot;http://www.gregcons.com/KateBlog/CategoryView.aspx?category=Speaking&quot; rel=&quot;nofollow&quot;&gt;http://www.gregcons.com/KateBlog/CategoryView.aspx?category=Speaking&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="285" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2010-11-04T12:16:13.060" LastActivityDate="2010-11-04T12:16:13.060" CommentCount="2" />
  <row Id="10929" PostTypeId="1" CreationDate="2010-10-11T00:38:11.780" Score="1" ViewCount="101" Body="&lt;p&gt;When is it necessary to apply taxes for web freelancing services in Canada (Ontario and Quebec)?&lt;/p&gt;&#xA;" OwnerUserId="4979" LastActivityDate="2010-10-11T00:57:42.320" ClosedDate="2010-10-11T11:48:41.147" Title="Web Freelancer Taxes" Tags="&lt;web-development&gt;&lt;taxes&gt;&lt;freelance&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="10930" PostTypeId="1" CreationDate="2010-10-11T00:49:30.247" Score="13" ViewCount="568" Body="&lt;p&gt;How could I try to explain programming to a child, about 6 to 8 years old?&lt;/p&gt;&#xA;" OwnerUserId="116" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-10-11T08:32:19.423" LastActivityDate="2010-10-26T01:07:36.937" Title="Explaining programming to a child" Tags="&lt;non-programmers&gt;&lt;children&gt;" AnswerCount="15" CommentCount="2" FavoriteCount="7" />
  <row Id="10931" PostTypeId="2" ParentId="10930" CreationDate="2010-10-11T00:56:57.143" Score="10" ViewCount="" Body="&lt;p&gt;Depends on what level of detail you want to go into.  By 6, most kids are able to understand the concept of computer programs, or at least video games.  You can explain programming by saying that it's about creating computer programs by making lists of instructions for the computer to follow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to introduce concepts like formal logic and bugs, try an analogy.  It's like that robot on the TV shows who will always do &lt;em&gt;exactly&lt;/em&gt; what the bad guy tells it to do--you know the one--and when the bad guy doesn't get his instructions just right, the robot does something silly.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-11T00:56:57.143" />
  <row Id="10932" PostTypeId="2" ParentId="10929" CreationDate="2010-10-11T00:57:42.320" Score="2" ViewCount="" Body="&lt;p&gt;I was in this situation, and my sister is an accountant for the Ontario government. What she told me was that for any self-employed company that doesn't have paid staff then you must charge taxes if you make, or expect to make, more than ~30,000/yr*.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The difficult part is that if you don't expect to make that much, but then you do, you have to pay tax and now you're in the awkward position of not having charged it to your client(s).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*This a ballpark estimation from memory. Check with an accountant for the actual amount, if you don't have access to one then let me know and I'll give my sister a ring.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-11T00:57:42.320" CommentCount="3" />
  <row Id="10933" PostTypeId="2" ParentId="39" CreationDate="2010-10-11T01:23:17.293" Score="9" ViewCount="" Body="&lt;h3&gt;Relationship between length and quality&lt;/h3&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If you want me to give you a two-hour presentation, I am ready today.  If you want only a five-minute speech, it will take me two weeks to prepare.&#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; Mark Twain&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The shortest version:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If I had more time, I would have written a shorter letter.&#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; Marcus T. Cicero&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The near-perfectionist's version:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;You know that I write slowly. This is chiefly because I am never satisfied until I have said as much as possible in a few words, and writing briefly takes far more time than writing at length.&#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; Karl Friedrich Gauss&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://dangerousintersection.org/2006/04/12/more-time-shorter-letter/&quot; rel=&quot;nofollow&quot;&gt;Several more&lt;/a&gt; discuss this concept from various angles.&lt;/p&gt;&#xA;" OwnerUserId="2515" LastActivityDate="2010-10-11T14:03:29.187" CommunityOwnedDate="2010-10-11T01:23:17.293" CommentCount="0" />
  <row Id="10934" PostTypeId="2" ParentId="10923" CreationDate="2010-10-11T01:24:24.893" Score="9" ViewCount="" Body="&lt;p&gt;First the person whose code you infringed will try to work with you to help you come into compliance, either by&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;You releasing the code to your application (which may not be so feasible if your product is software, but might be a really great way to attract interest if your product is hardware, al la the WRT54G router.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You removing the GPL'd code and rewriting that part of your application.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;You'll only get sued if you don't cooperate with either option 1 or 2.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're doing this for your company's product, it's your company who will get sued -- not you personally. (Though you may get fired for exposing the company to a lawsuit.)&lt;/p&gt;&#xA;" OwnerUserId="1961" LastActivityDate="2010-10-11T01:24:24.893" CommentCount="2" />
  <row Id="10935" PostTypeId="2" ParentId="10930" CreationDate="2010-10-11T01:36:16.557" Score="4" ViewCount="" Body="&lt;p&gt;Depends on the 6 year old.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-11T01:36:16.557" CommentCount="2" />
  <row Id="10936" PostTypeId="2" ParentId="10857" CreationDate="2010-10-11T01:49:57.707" Score="0" ViewCount="" Body="&lt;p&gt;Personally I go with the approach of &lt;em&gt;consider documenting&lt;/em&gt; everything. I.e. while coding I consider at every point whether documentation would add value. Most of the time the answer is yes for exactly the kinds of constraints and domain knowledge mentioned in the original question. E.g. null-ability, unique constraints, interpretation of the field in the wider domain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To avoid duplication I tend to heavily document the main API classes with this kind of information. Then only document implementations and internals where there is non-obvious or inconsistent behavior. I find this works well as it's the users of the API which need the most help and documentation, it's generally safe to assume people modifying the implementation know the API so have this knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also tend to document just the getters. I don't duplicate documentation onto setters, field definitions and constructor parameters. I only document non-obvious behavior such as defaults in these places. Any behavior that can be inferred from the getter documentation isn't documented. For example, if the getter is documented as never-returning null, I generally don't document that you can't pass null to the setter, unless there is a default.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people like to mark this act of &quot;considering documentation&quot; by adding empty comments where they have considered documentation but found it unnecessary. I don't like this practice as it just clutters up the code and gets in the way.&lt;/p&gt;&#xA;" OwnerUserId="4636" LastActivityDate="2010-10-11T01:49:57.707" />
  <row Id="10937" PostTypeId="2" ParentId="10849" CreationDate="2010-10-11T01:56:13.873" Score="6" ViewCount="" Body="&lt;p&gt;One way to get comfortable with TDD is to write integration tests first.  Introduce test seams and true unit tests later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with writing unit-tests after coding is that the code may not necessarily be well-designed to be testable.  You may need to do some refactoring or maybe re-design to introduce the test seams.  But how can you refactor or re-design safely if you have no test coverage of any kind?  Integration tests can give you that coverage initially.  Then you can introduce unit tests of more finely-grained, isolated components and/or classes of your system.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-11T01:56:13.873" CommentCount="1" />
  <row Id="10938" PostTypeId="2" ParentId="10930" CreationDate="2010-10-11T02:15:18.397" Score="4" ViewCount="" Body="&lt;p&gt;I'd explain it as making a list of things that you want the computer to do. Then explain that computers speak a different language so you have to type the list in one of the languages computers can speak.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That seems simple enough for even a small child to understand.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-11T02:15:18.397" />
  <row Id="10939" PostTypeId="2" ParentId="10835" CreationDate="2010-10-11T02:16:19.587" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131495054&quot; rel=&quot;nofollow&quot;&gt;G. Meszaros' &lt;em&gt;xUnit Test Patterns: Refactoring Test Code&lt;/em&gt;&lt;/a&gt; is a kind of encyclopedia, the &quot;&lt;em&gt;Design Patterns&lt;/em&gt;&quot; of unit-testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1933988274&quot; rel=&quot;nofollow&quot;&gt;R. Osherove's &lt;em&gt;The Art of Unit Testing: With Examples in .Net&lt;/em&gt;&lt;/a&gt; is a more practical guide to getting started with unit-testing and understanding the key concepts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1932394850&quot; rel=&quot;nofollow&quot;&gt;L. Koskela's &lt;em&gt;Test Driven: TDD and Acceptance TDD for Java Developers&lt;/em&gt;&lt;/a&gt; appears to be the Art of Unit Testing for Java developers.&lt;/p&gt;&#xA;" OwnerUserId="464" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-10-15T16:55:50.267" LastActivityDate="2010-10-15T16:55:50.267" CommentCount="1" />
  <row Id="10940" PostTypeId="2" ParentId="10832" CreationDate="2010-10-11T02:26:13.633" Score="3" ViewCount="" Body="&lt;p&gt;There are two kinds of private code: private code that gets called by public code (or private code that gets called by private code that gets called by public code (or ...)) and private code that &lt;em&gt;does&lt;/em&gt; not eventually get called by public code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The former already gets tested through the tests for the public code. The latter cannot be called &lt;em&gt;at all&lt;/em&gt; and thus should be deleted, not tested.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that when you do TDD it is impossible for untested private code to exist.&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-10-11T02:26:13.633" CommentCount="2" />
  <row Id="10941" PostTypeId="2" ParentId="10832" CreationDate="2010-10-11T02:32:04.583" Score="3" ViewCount="" Body="&lt;p&gt;Your coworkers may be confusing true unit tests with integration tests.  If your product is (or has) an API, the integration tests can be programmed as NUnit test cases.  Some people mistakenly believe that those are unit tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can try to convince your coworkers with the following (I'm sure you already know this stuff, all I'm saying is that pointing it out to your co-workers might help):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Test coverage&lt;/strong&gt;.  Measure the actual test coverage percentage of those integration tests.  This is a reality check for those who have never run test coverage.  Because it is difficult to exercise all logical paths when the input is several layers away, the test coverage tops out at somewhere between 20% and 50%.  To get more coverage, your co-workers need to write real, isolated unit-tests.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Configuration&lt;/strong&gt;.  Deploy the same software under test and perhaps you can demonstrate to your co-workers how difficult it is to run their tests in a different environment.  Paths to various files, DB connection strings, URLs of remote services, etc. -- it all adds up.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Execution time&lt;/strong&gt;.  Unless the tests are true unit tests and can run in memory, they will take a lot of time to run.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-11T02:32:04.583" />
  <row Id="10942" PostTypeId="2" ParentId="10923" CreationDate="2010-10-11T02:32:38.330" Score="12" ViewCount="" Body="&lt;p&gt;It doesn't matter if anyone finds out, it means that you've &lt;strong&gt;sacrificed your integrity&lt;/strong&gt;.&lt;br&gt;&#xA;&lt;strong&gt;You'll miss it some day.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-10-11T02:32:38.330" CommentCount="1" />
  <row Id="10943" PostTypeId="2" ParentId="10899" CreationDate="2010-10-11T02:36:43.807" Score="11" ViewCount="" Body="&lt;p&gt;It depends on how difficult you want it to be. Also, I'm a little wary of giving you the answer because most SQL problems have multiple acceptable ways to do things and there are also ways of solving SQL problems in sloppy ways that will cause other issues. The person &quot;grading&quot; the answer definitely needs to be able to solve it on their own. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, here are a few I came up with off the top of my head.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Extremely Easy Level:&lt;/strong&gt;&lt;br&gt;&#xA;Given an employees table with the columns EmpID, FirstName, Lastname, HireDate, and TerminationDate:&lt;br&gt;&#xA;Write a query to return all employees still working for the company with last names starting with &quot;Smith&quot; sorted by last name then first name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Easy Level&lt;/strong&gt;&lt;br&gt;&#xA;Given the Employee table above, plus a new table &quot;AnnualReviews&quot; with the columns EmpID, and ReviewDate:&lt;br&gt;&#xA;Write a query to return all employees who have never had a review sorted by HireDate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Medium Level&lt;/strong&gt;&#xA;Given the employee table above, write a query to calculate the difference (in days) between the most and least tenured employee still working for the company?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Hard Level&lt;/strong&gt;&lt;br&gt;&#xA;Given the employee table above, write a query to calculate the longest period (in days) that the company has gone without a hiring or firing anyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Harder Level&lt;/strong&gt;&lt;br&gt;&#xA;Again using the same tables, write a query that returns each employee and for each row/employee include the greatest number of employees that worked for the company at any time during their tenure and the first date that maximum was reached. Extra points for not using cursors.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-11T02:36:43.807" CommentCount="5" />
  <row Id="10944" PostTypeId="2" ParentId="10793" CreationDate="2010-10-11T02:41:42.317" Score="5" ViewCount="" Body="&lt;p&gt;This example shows a commit that is too large.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a rule of thumb, describe the change in one sentence or one line of text.  (Based on this rule, the commit should be broken into 10-15 smaller ones.)  If you can't adequately comment a commit in one line, then it's already too large.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To practice smaller commits, take notes in your notepad (or in Notepad) of what you've already changed or added.  Commit before it becomes a long list or before you make a code change unrelated to what you already have in the notepad.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-11T02:41:42.317" CommunityOwnedDate="2011-01-20T04:56:55.133" CommentCount="2" />
  <row Id="10945" PostTypeId="2" ParentId="10793" CreationDate="2010-10-11T03:18:07.407" Score="0" ViewCount="" Body="&lt;p&gt;Sometimes you've been working all day on several different logically distinct chagnes, and you forgot to commit your code in between. Using &lt;code&gt;git citool&lt;/code&gt; can be very helpful for breaking up your work into nice bite-sized chunks at the end of the day, even if you weren't so careful during the day while you were working.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;git citool&lt;/code&gt; can let you select which specific hunks of a file (or which specific lines) to commit in a particular commit, so you can break up (non-overlapping) changes made to the same file into several commits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(It seems that you use Subversion. I don't know of a tool that does this for Subversion, but you could look into using &lt;code&gt;git-svn&lt;/code&gt;, the Subversion adapter for git, which will change your life.)&lt;/p&gt;&#xA;" OwnerUserId="1961" LastEditorUserId="1961" LastEditorDisplayName="" LastEditDate="2010-10-11T03:23:40.953" LastActivityDate="2010-10-11T03:23:40.953" CommunityOwnedDate="2011-01-20T04:56:55.133" CommentCount="2" />
  <row Id="10946" PostTypeId="2" ParentId="10793" CreationDate="2010-10-11T03:29:16.747" Score="3" ViewCount="" Body="&lt;p&gt;At the very least, train yourself to commit whenever you think to yourself &quot;I like my progress so far, and I don't want to lose it if the changes I'm about to make are a disaster.&quot; Then you have the option to take advantage of the VCS to blow away any dead ends that you tried or special debugging code you added to track down a problem. (e.g. with &lt;code&gt;git reset --hard&lt;/code&gt; or &lt;code&gt;rm -rf *; svn update&lt;/code&gt;)&lt;/p&gt;&#xA;" OwnerUserId="1961" LastActivityDate="2010-10-11T03:29:16.747" CommunityOwnedDate="2011-01-20T04:56:55.133" />
  <row Id="10947" PostTypeId="2" ParentId="10916" CreationDate="2010-10-11T03:37:04.140" Score="2" ViewCount="" Body="&lt;p&gt;In the world of academic conferences (like the ACM SIG* conferences), if you submit a paper in response to a call for papers, you have to pay your own way to go to the conference. (Though sometimes travel subsidies are available for students.)&lt;/p&gt;&#xA;" OwnerUserId="1961" LastActivityDate="2010-10-11T03:37:04.140" />
  <row Id="10948" PostTypeId="2" ParentId="10791" CreationDate="2010-10-11T03:50:55.973" Score="2" ViewCount="" Body="&lt;p&gt;I use a DVCS a lot for my own personal stuff. (I'm one of those guys that &lt;a href=&quot;http://joey.kitenet.net/svnhome/&quot; rel=&quot;nofollow&quot;&gt;at $HOME in git&lt;/a&gt;.) There are several advantages:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It makes replication between my laptop and desktop and lab computers &lt;em&gt;really&lt;/em&gt; easy. Though this was true of SVN also...&lt;/li&gt;&#xA;&lt;li&gt;I can commit on the laptop even when I don't have internet access.&lt;/li&gt;&#xA;&lt;li&gt;Backups are as simple as a &lt;code&gt;git pull&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;I can use &lt;code&gt;git citool&lt;/code&gt; to break up lots of changes into logically-sized commits, even if I've made lots of unrelated changes before deciding to commit. I'm not aware of a tool to do this in Subversion.&lt;/li&gt;&#xA;&lt;li&gt;When I have to patch an open source project, it's easier to keep things organized by making a new git repository in the project directory than it is to make a second copy of whatever source tree I'm patching. (You can’t do this easily with Subversion because you need a separate repository somewhere else on your hard disk entirely.)&lt;/li&gt;&#xA;&lt;li&gt;I use the easy branching features to check in revisions I get from other people. For example, when I edit a conference paper with my advisor, even though he doesn't have access to the repository, I can send him a copy of the paper, and check in his revisions in a branch based off the version that I sent him, and then use &lt;code&gt;git merge&lt;/code&gt; to merge his revisions with anything I've done in the mean time.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Git got me used to thinking about all of my changes in logical chunks, a lot more than Subversion ever did.&lt;/p&gt;&#xA;" OwnerUserId="1961" LastActivityDate="2010-10-11T03:50:55.973" CommentCount="1" />
  <row Id="10949" PostTypeId="2" ParentId="5972" CreationDate="2010-10-11T03:53:10.377" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;XSLT&lt;/strong&gt; - XmlSpy, Visual Studio&lt;/p&gt;&#xA;" OwnerUserId="3031" LastActivityDate="2010-10-11T03:53:10.377" CommunityOwnedDate="2011-04-30T19:57:04.087" />
  <row Id="10950" PostTypeId="2" ParentId="10927" CreationDate="2010-10-11T04:15:41.927" Score="7" ViewCount="" Body="&lt;p&gt;I think &quot;Load&quot; is the way to go for a few reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The parameter type is already in the parameter list- why specify it again in the method name?&lt;/li&gt;&#xA;&lt;li&gt;If you happen to have multiple methods that produce something a stream in a class, &quot;FromStream&quot; becomes a problem.&lt;/li&gt;&#xA;&lt;li&gt;In the age of intellisense, it's much more logical to type &quot;Load&quot; and get a list of possible parameter options, rather than look at three different methods (especially if more methods than just those in this set happen to start with &quot;From&quot;).&lt;/li&gt;&#xA;&lt;li&gt;Another decent rule of thumb is &quot;name methods after verbs when you can,&quot; which votes in favor of something akin to &quot;Load,&quot; or at least &quot;LoadFrom...&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-11T04:15:41.927" CommentCount="2" />
  <row Id="10951" PostTypeId="2" ParentId="10849" CreationDate="2010-10-11T04:37:09.343" Score="2" ViewCount="" Body="&lt;p&gt;TDD is very difficult to implement and isn't always the best option for every development team. In my previous job, the team was heavily focused on TDD. Our development model was entirely TDD using the agile development approach.Testing was done through Visual Studio unit tests. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a developer didn't write any unit tests for his/her feature they'd be in trouble with the technical lead. Furthermore if anyone check-in a broken build or any unit tests, the developer would need to fix all issues and add a $1 to the team money jar.&lt;/p&gt;&#xA;" OwnerUserId="4219" LastActivityDate="2010-10-11T04:37:09.343" />
  <row Id="10952" PostTypeId="2" ParentId="2264" CreationDate="2010-10-11T05:07:05.960" Score="0" ViewCount="" Body="&lt;p&gt;I agree with opinions of everyone so far. I was trained as Java developer and I've working in java commerically. These days I working with C#. I'll go back to java if job is available. However .NET is a wonderful platform. Java and C# are interchangeable.&lt;/p&gt;&#xA;" OwnerUserId="4219" LastActivityDate="2010-10-11T05:07:05.960" />
  <row Id="10953" PostTypeId="2" ParentId="9062" CreationDate="2010-10-11T05:17:24.027" Score="0" ViewCount="" Body="&lt;p&gt;When I'm modifiying an existing file, I'll cut everything into notepad then start modifying everything. In case the IDE crashes or something weird happens whlist I'm modifying the code. Even though I've Source control.  &lt;/p&gt;&#xA;" OwnerUserId="4219" LastActivityDate="2010-10-11T05:17:24.027" CommunityOwnedDate="2010-10-11T05:17:24.027" />
  <row Id="10954" PostTypeId="2" ParentId="10793" CreationDate="2010-10-11T05:21:30.463" Score="0" ViewCount="" Body="&lt;p&gt;The large the commit, the more likely you'll break the build and get paid out by the rest of your team. I try commit changes twice a day. Just before lunch and before I go home. So @ 12pm and 4:30pm I try get everything working and ready to commit. I find this practice works for me. &lt;/p&gt;&#xA;" OwnerUserId="4219" LastActivityDate="2010-10-11T05:21:30.463" CommunityOwnedDate="2011-01-20T04:56:55.133" />
  <row Id="10955" PostTypeId="2" ParentId="10916" CreationDate="2010-10-11T05:39:44.230" Score="3" ViewCount="" Body="&lt;p&gt;Depends on the conference, the speaker, and how badly you're wanted. 99% of the conferences I've spoken at have given free admission to speakers. Some have paid my travel and lodging, but not always.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sadly, I'm seeing more and more conferences where, if you really want a speaking slot, your best bet is to become a sponsor -- aka &quot;pay to play.&quot; For some reason, these also seem to also be some of the priciest conferences to attend. Consequently, when deciding which sessions I'm going to attend at conferences, I tend to cross off any that feature sponsored speakers, as they rarely say anything that isn't marketing-speak.&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-10-11T05:39:44.230" />
  <row Id="10956" PostTypeId="2" ParentId="10930" CreationDate="2010-10-11T06:23:33.127" Score="0" ViewCount="" Body="&lt;p&gt;try explaining how did the calculator get it's digit displayed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;one&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I&lt;br&gt;&#xA;   I&lt;br&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;two&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;_ _&lt;br&gt;&#xA;   _ _ I&lt;br&gt;&#xA;  I_ _&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;three&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;_ _&lt;br&gt;&#xA;   _ _ I&lt;br&gt;&#xA;   _ _ I&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;eight &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&amp;nbsp; _ _&lt;br&gt;&#xA;   I _ _ I&lt;br&gt;&#xA;   I _ _ I&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Someting like, when one press key 8 all the lights get turned on for number 8. When pressing key 1, 2 lights are turned on for number 1, etc. &lt;/p&gt;&#xA;" OwnerUserId="2126" LastActivityDate="2010-10-11T06:23:33.127" />
  <row Id="10958" PostTypeId="2" ParentId="10816" CreationDate="2010-10-11T07:09:01.727" Score="2" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;If you like listening to Bach, you will like reading the book.&lt;/li&gt;&#xA;&lt;li&gt;The books by Daniel Dennett contain quite some challenging views on algorithms and life&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4723" LastActivityDate="2010-10-11T07:09:01.727" CommentCount="2" />
  <row Id="10959" PostTypeId="2" ParentId="10930" CreationDate="2010-10-11T07:15:35.783" Score="0" ViewCount="" Body="&lt;p&gt;Try to find a reference that makes sense to the persons specific frame of mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can make comparisons with other tasks that involves controlling something through instructions, like writing musical notes or cooking recepies, or working as a football coach or an ochestra conductor.&lt;/p&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-10-11T07:15:35.783" />
  <row Id="10960" PostTypeId="2" ParentId="10930" CreationDate="2010-10-11T07:18:08.137" Score="5" ViewCount="" Body="&lt;p&gt;My first contact with programming was with &lt;a href=&quot;http://en.wikipedia.org/wiki/Logo_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Logo&lt;/a&gt;. And I still have a good feeling about it today.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the &quot;turtle&quot; is the key to get your kids interested in the stuff. Showing them line of code will not make them exited ;) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They want to move the turtle !&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Logo is also much more adapted since kids of 6 years old. They are learning how to read and write at that age.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-11T10:22:09.667" LastActivityDate="2010-10-11T10:22:09.667" CommentCount="2" />
  <row Id="10961" PostTypeId="2" ParentId="10849" CreationDate="2010-10-11T07:30:13.960" Score="2" ViewCount="" Body="&lt;p&gt;Just a small thing to add, visualize the process. Make the continous integration run tests automatically and check for code coverage. List the most complete tested modules on some startpage that everyone can see. &#xA;That should get the team competition going.  &lt;/p&gt;&#xA;" OwnerUserId="4832" LastActivityDate="2010-10-11T07:30:13.960" />
  <row Id="10962" PostTypeId="2" ParentId="10930" CreationDate="2010-10-11T07:48:40.297" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Learn him to cook.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You can do cooking by following written instructions, step by step, just like a simple computer does while following a piece of software.&lt;/p&gt;&#xA;" OwnerUserId="3730" LastActivityDate="2010-10-11T07:48:40.297" />
  <row Id="10963" PostTypeId="2" ParentId="39" CreationDate="2010-10-11T08:52:31.620" Score="4" ViewCount="" Body="&lt;p&gt;It's not about programming &lt;em&gt;per se,&lt;/em&gt; but by a famous programmer:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The best way to predict the future is to invent it.&#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; Alan Kay&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Which is usually a good thing to remind myself to get moving and do things.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-10-11T13:59:50.510" CommunityOwnedDate="2010-10-11T08:52:31.620" />
  <row Id="10965" PostTypeId="2" ParentId="10930" CreationDate="2010-10-11T08:59:27.020" Score="1" ViewCount="" Body="&lt;p&gt;You might consider introducing the child to &lt;a href=&quot;http://scratch.mit.edu/&quot; rel=&quot;nofollow&quot;&gt;Scratch&lt;/a&gt;, which is specifically designed to get children involved/interested in programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My son started to plya with it around 7, although he was mostly just playing with the interface - making things larger or smaller, duplicating sprites, that sort of thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He's 9 now, and going much deeper, with a developing understanding of the event model and changing the behaviour of the components. He wants to know why things don't work the way he wants and what can be done about that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He plays with it when he wants for as long as he wants, with encouragement (admittedly) from me, but no pressure.&lt;/p&gt;&#xA;" OwnerUserId="4911" LastActivityDate="2010-10-11T08:59:27.020" />
  <row Id="10966" PostTypeId="2" ParentId="10930" CreationDate="2010-10-11T09:05:57.770" Score="4" ViewCount="" Body="&lt;p&gt;Let him play Light-Bot 2.0 or 1.0: &lt;a href=&quot;http://armorgames.com/play/6061/light-bot-20&quot; rel=&quot;nofollow&quot;&gt;http://armorgames.com/play/6061/light-bot-20&lt;/a&gt;&#xA;Worked for my kid even when he was just 3 years old! :) Amazing game! Kids can discover basics of procedural programming, recursion and conditionals themselves without any explanation from you! ;)&lt;/p&gt;&#xA;" OwnerUserId="4912" LastActivityDate="2010-10-11T09:05:57.770" CommentCount="1" />
  <row Id="10967" PostTypeId="2" ParentId="9598" CreationDate="2010-10-11T09:09:31.383" Score="1" ViewCount="" Body="&lt;p&gt;I read this: &lt;a href=&quot;http://stackoverflow.com/questions/76364/what-is-the-single-most-effective-thing-you-did-to-improve-your-programming-skill/3794416#3794416&quot;&gt;What is the single most effective thing you did to improve your programming skills?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More seriously, I guess you can try:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;to train your brain and solve puzzles and other games (as suggested by others),&lt;/li&gt;&#xA;&lt;li&gt;to learn &lt;a href=&quot;http://en.wikipedia.org/wiki/Logic#Nature&quot; rel=&quot;nofollow&quot;&gt;logic theory&lt;/a&gt;, and get back to the hard-core maths that comes with it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But mostly, i think you should:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;have a look at an algorithm bank and hand-pick a few,&lt;/li&gt;&#xA;&lt;li&gt;try to implement solutions for the problems they address,&lt;/li&gt;&#xA;&lt;li&gt;then look at the reference implementations,&lt;/li&gt;&#xA;&lt;li&gt;publish a paper if you beat them :)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://xw2k.nist.gov/dads/&quot; rel=&quot;nofollow&quot;&gt;NIST Dictionary of Algorithms and Data Structures&lt;/a&gt; should keep you busy for a while...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then find a pet project that involves solving something.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-10-11T09:15:59.853" LastActivityDate="2010-10-11T09:15:59.853" />
  <row Id="10968" PostTypeId="2" ParentId="10547" CreationDate="2010-10-11T09:31:28.343" Score="0" ViewCount="" Body="&lt;p&gt;When I stumble upon a problem I can't solve (yet), talking about it to a random person usually makes me solve the problem before I finished explaining it. Apparently finding words to explain a problem aligns with finding the solution better than thinking about it solo =]&lt;/p&gt;&#xA;" OwnerUserId="1922" LastActivityDate="2010-10-11T09:31:28.343" CommunityOwnedDate="2011-01-11T17:58:46.763" />
  <row Id="10969" PostTypeId="2" ParentId="8968" CreationDate="2010-10-11T09:33:11.873" Score="2" ViewCount="" Body="&lt;p&gt;Mine became really interested at age 4 after he finished Portal game. He learned many commands of Portal console and then asked me to teach him programming so he can develop Portal 2 :)))&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now he can do some simple calculations in Python command line.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let your kids play Light-Bot 2.0 or 1.0: &lt;a href=&quot;http://armorgames.com/play/6061/light-bot-20&quot; rel=&quot;nofollow&quot;&gt;http://armorgames.com/play/6061/light-bot-20&lt;/a&gt;&#xA;Worked for my kid even when he was just 3 years old! :) Amazing game! Kids can discover basics of procedural programming, recursion and conditionals themselves without any explanation from you! ;)&lt;/p&gt;&#xA;" OwnerUserId="4912" LastActivityDate="2010-10-11T09:33:11.873" CommunityOwnedDate="2011-03-04T21:09:34.713" />
  <row Id="10972" PostTypeId="2" ParentId="10547" CreationDate="2010-10-11T10:03:58.127" Score="1" ViewCount="" Body="&lt;p&gt;I would say untying knots is a good analogous exercise to debugging an application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A particularly complex knot, or compound knot is very much like a tricky bug. They both have to be methodically solved, and to reproduce the results it helps to know the steps that got you knotted in the first place.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-10-11T10:03:58.127" CommunityOwnedDate="2011-01-11T17:58:46.763" CommentCount="1" />
  <row Id="10973" PostTypeId="2" ParentId="10807" CreationDate="2010-10-11T10:19:27.457" Score="2" ViewCount="" Body="&lt;p&gt;I keep a work log. It's just a plain text file. Every day I make notes on stuff I'm working on: what I did, what sort of problems I encountered, how I solved them, who I talked to, what we discussed, what decisions we made, relevant files/classes/webpages, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So any time I have a problem and I have a deja-vu feeling about it I just search in my work log and in most cases I can quickly find what I'm looking for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Work log also makes it easier to keep track of how you spend your time, write weekly/monthly reports, prepare for performance reviews.&lt;/p&gt;&#xA;" OwnerUserId="4912" LastActivityDate="2010-10-11T10:19:27.457" />
  <row Id="10974" PostTypeId="2" ParentId="10816" CreationDate="2010-10-11T10:28:58.803" Score="2" ViewCount="" Body="&lt;p&gt;It is an interesting read (and a difficult one at times), but it won't make you a better programmer/developer/etc. As &lt;a href=&quot;http://programmers.stackexchange.com/questions/10816/godel-escher-bach-still-valid-today/10823#10823&quot;&gt;donroby said&lt;/a&gt;, it is still valid because it's about math and logic (and a lot more).&lt;/p&gt;&#xA;" OwnerUserId="220" LastActivityDate="2010-10-11T10:28:58.803" CommentCount="3" />
  <row Id="10976" PostTypeId="2" ParentId="10807" CreationDate="2010-10-11T10:55:48.560" Score="1" ViewCount="" Body="&lt;p&gt;Hi there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I often forget things after not using them for a while - syntax, keywords, techniques, etc. To help, I read &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1844831531&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; book by Dominic O'Brein (8 times World Memory Champion). There are some techniques and tips from that book which I use to help me remember things. It's not always easy to apply these to programming, but with some creativity, you can begin to link things together to help you recall them better. It's not perfect, but it might help over time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, have a read of &lt;a href=&quot;http://www.moserware.com/2008/03/what-does-it-take-to-become-grandmaster.html&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; article. It's an interesting read that gave me some ideas on how to improve my recall for my development work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By fa the most useful tool for me has been mind maps. I use them for allsorts:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Documenting test cases.&lt;/li&gt;&#xA;&lt;li&gt;Visually describing the architecture&#xA;of a project I'm working on.&lt;/li&gt;&#xA;&lt;li&gt;Notes and links to websites on a&#xA;technology I'm interested in.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Mind maps can be used for many different scenarios. Certainly has made a difference for me when learning new things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers.&#xA;Jas.&lt;/p&gt;&#xA;" OwnerUserId="3668" LastActivityDate="2010-10-11T10:55:48.560" />
  <row Id="10977" PostTypeId="2" ParentId="4123" CreationDate="2010-10-11T11:02:13.470" Score="2" ViewCount="" Body="&lt;p&gt;Think of software as a machine or assembly line that exists inside the computer. Some raw materials and components are fed into the machine, and it follows a set of procedures to process them into some final product. The procedures are set up to perform a specific operation on some raw material or component to a specific set of parameters (eg, time, temperature, distance, etc) in a particular order. If the details of the operation to be performed were incorrect, or the machine's sensors aren't correctly calibrated, or if some raw material or component wasn't within expected quality standards, it could change the operation's outcome and the product would not turn out as expected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Such a machine is very rigid in its operation and acceptable inputs. Machines don't question the designers' intelligence nor its current operating environment. It will continue to follow procedures as long as it's directed to. Even if a change in raw materials or components could have a dramatic effect on what happened in later operations, the machine would still perform its procedures. The process would need to be reviewed to see what changes to the procedures were necessary to compensate and produce the desired result. A change to the product's design or configuration might also require a significant change to the operations performed or their order. Although those in charge of production quickly learned the importance of isolating operations as much as possible to reduce undesirable effects between them, a lot of assumptions are made of the condition components are in as they undergo processing; assumptions that might not be detected until the final product is in the hands of the user in some different operating environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's what procedural programming is like.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What object-orientation provides is a way to remove the assumptions of the condition of components; thus, the operations to be performed on that component and how to integrate it into the final product. In other words, OOP is like taking the process details for dealing with some particular component and giving it to a smaller machine to do. The larger machine responsible for the process tells the component-specific machine which operation it expects to be done but leaves the details for the steps to the component-specific machine to handle.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-11T11:02:13.470" />
  <row Id="10978" PostTypeId="2" ParentId="4123" CreationDate="2010-10-11T11:11:18.063" Score="0" ViewCount="" Body="&lt;p&gt;I would suggest reading the book by Bertrand Meyer &quot;Object-oriented software construction&quot;&lt;/p&gt;&#xA;" OwnerUserId="4723" LastActivityDate="2010-10-11T11:11:18.063" />
  <row Id="10982" PostTypeId="2" ParentId="9062" CreationDate="2010-10-11T11:20:42.047" Score="7" ViewCount="" Body="&lt;p&gt;When I put something large or important onto the clipboard using CTRL+C or (with a stronger effect) CTRL+X, I feel as though my left hand is magically charged with the thing I have just copied or cut.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pasting it is like throwing this charge out into my keyboard like a hadouken or something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means that I can't use my right hand to paste something with SHIFT+INS, I have to use my left.  Also, I can only type with my right hand between the cut and the paste.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Colleagues who know about this foible, have declared me a freak.  I'm inclined to agree.&lt;/p&gt;&#xA;" OwnerUserId="628" LastActivityDate="2010-10-11T11:20:42.047" CommunityOwnedDate="2010-10-11T11:20:42.047" />
  <row Id="10986" PostTypeId="2" ParentId="2410" CreationDate="2010-10-11T11:40:47.060" Score="1" ViewCount="" Body="&lt;p&gt;Programming is like building a factory or an assembly line.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/iGkQ1.png&quot; alt=&quot;Automated Production Line&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think of software as a machine or assembly line that exists inside the computer. Some raw materials and components are fed into the machine, and it follows a set of procedures to process them into some final product. The procedures are set up to perform a specific operation on some raw material or component to a specific set of parameters (eg, time, temperature, distance, etc) in a particular order. If the details of the operation to be performed were incorrect, or the machine's sensors aren't correctly calibrated, or if some raw material or component wasn't within expected quality standards, it could change the operation's outcome and the product would not turn out as expected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Such a machine is very rigid in its operation and acceptable inputs. Machines don't question the designers' intelligence nor its current operating environment. It will continue to follow procedures as long as it's directed to. Even if a change in raw materials or components could have a drastic effect on what happened in later operations, the machine would still perform its procedures. The process would need to be reviewed to see what changes to the procedures were necessary to compensate and produce the desired result. A change to the product's design or configuration might also require a significant change to the operations performed or their order. Although those in charge of production quickly learned the importance of isolating operations as much as possible to reduce undesirable effects between them, a lot of assumptions are made of the condition components are in as they undergo processing; assumptions that might not be detected until the final product is in the hands of the user in some different operating environment.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-14T16:19:12.430" LastActivityDate="2010-10-14T16:19:12.430" CommunityOwnedDate="2011-03-03T17:06:14.173" />
  <row Id="10988" PostTypeId="2" ParentId="8973" CreationDate="2010-10-11T11:49:25.517" Score="3" ViewCount="" Body="&lt;p&gt;According to Me,C Language is the  first Language to learn by an every developer, because if u learn t c language very well ,&#xA;u can able to learn the Object Oriented Programming Languages very easily.I feel C is the Basic Foundation for an every developer, since all Languages inherit the features of C and if u are going to develop embedded applications, C language will help u to develop embedded applications in fragile manner. &lt;/p&gt;&#xA;" OwnerUserId="3993" LastActivityDate="2010-10-11T11:49:25.517" />
  <row Id="10989" PostTypeId="1" AcceptedAnswerId="10991" CreationDate="2010-10-11T11:56:12.843" Score="32" ViewCount="1820" Body="&lt;p&gt;&lt;strong&gt;The famous Tanenbaum - Torvalds debate : Microkernel vs. Monolithic OS architecture&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Portability is for people who cannot write new programs&quot; - Linus Torvalds&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Linus Torvalds said this during a debate with Andrew Tanenbaum, on Microkernel vs Monolithic Operating System architecture.&#xA;(Ref: &lt;a href=&quot;http://oreilly.com/catalog/opensources/book/appa.html&quot; rel=&quot;nofollow&quot;&gt;Debate&lt;/a&gt; )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How shall I interpret this statement of Linus Torvalds?&lt;/p&gt;&#xA;" OwnerUserId="4522" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-11-08T08:21:51.697" LastActivityDate="2011-02-14T07:04:19.863" Title="How do I interpret this statement made by Linus Torvalds?" Tags="&lt;quotes&gt;&lt;linus-torvalds&gt;" AnswerCount="10" CommentCount="6" FavoriteCount="2" />
  <row Id="10990" PostTypeId="2" ParentId="10989" CreationDate="2010-10-11T12:10:48.867" Score="9" ViewCount="" Body="&lt;p&gt;I think it means that each program should be written specifically for the hardware and operating system it runs on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think what he's driving as is that general purpose code that can run on several platforms is less efficient or more error prone than code written specifically for and tailored to one platform. It does, however, mean that when you develop like this you have to maintain several different code lines.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-11T12:10:48.867" />
  <row Id="10991" PostTypeId="2" ParentId="10989" CreationDate="2010-10-11T12:12:04.700" Score="61" ViewCount="" Body="&lt;p&gt;As Linus writes in the debate, it's with tongue in cheek (i.e. not to be taken too seriously).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, he goes on to explain that while portability is good thing, it's also a trade-off; unportable code can be much simpler. That is, instead of making the code perfectly portable, just make it simple and &lt;em&gt;portable enough&lt;/em&gt; (&quot;adhere to a portable API&quot;), and then if it needs to be ported, rewrite it as needed. Making code perfectly portable can also seen as a form of premature optimization - often more harm than good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course that's not possible if you can't write new programs and have to stick with the original one :)&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-11T12:12:04.700" CommentCount="2" />
  <row Id="10992" PostTypeId="2" ParentId="8968" CreationDate="2010-10-11T12:18:36.713" Score="2" ViewCount="" Body="&lt;p&gt;I know a smart 8 year old who's been programming in MIT's visual &lt;a href=&quot;http://scratch.mit.edu/&quot; rel=&quot;nofollow&quot;&gt;Scratch&lt;/a&gt; environment for at least a year.  Main benefits of it I can see over more conventional languages/tools are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Instant visual gratification.  You can't expect to impress anyone by printing stuff to the console these days. &lt;/li&gt;&#xA;&lt;li&gt;The snap-together blocks from which programs are constructed eliminates a lot of the &quot;syntax error&quot; problems which baffle and frustrate newbies, letting them concentrate on the logic of what they're doing.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;He's since graduated onto &lt;a href=&quot;http://byob.berkeley.edu/&quot; rel=&quot;nofollow&quot;&gt;BYOB&lt;/a&gt; (which massively expands the possibilities of Scratch) and seems to be showing some interest in Python now.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-10-11T12:18:36.713" CommunityOwnedDate="2011-03-04T21:09:34.713" />
  <row Id="10993" PostTypeId="2" ParentId="8973" CreationDate="2010-10-11T12:30:01.027" Score="3" ViewCount="" Body="&lt;p&gt;I started with Pascal, soon followed by Assembler/C and then C++.&#xA;I wouldn't change this order except, maybe, for Pascal (which is quite useless nowadays).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know I got lucky because it happened that the most &quot;famous&quot; languages of the time were also the &quot;better&quot; to understand the basics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I pity nowadays beginners (at least of Java and C#) which grow up without truly mastering the difference between automatic and dynamic variables. (I also was used to pity them for not knowing the difference between the memory model &lt;code&gt;tiny&lt;/code&gt;, &lt;code&gt;small&lt;/code&gt;, &lt;code&gt;huge&lt;/code&gt; etc but now that's only useful for historical reasons).&lt;/p&gt;&#xA;" OwnerUserId="4738" LastActivityDate="2010-10-11T12:30:01.027" CommentCount="2" />
  <row Id="10994" PostTypeId="2" ParentId="8352" CreationDate="2010-10-11T12:47:38.720" Score="0" ViewCount="" Body="&lt;p&gt;I have class files that span applications (&quot;libraries&quot;), and class files specific to applications. The libraries get a prefix to minimize the potential for conflicts with any third-party code we might include, ie. at &quot;My Sweet Company&quot; we might use the class name &quot;MSCPerson&quot; rather than &quot;Person.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We use &lt;code&gt;CamelCase&lt;/code&gt; class names, and class files are named &lt;code&gt;CamelCase.class.php&lt;/code&gt;. Most class files have the single class and any class-specific exceptions, but this rule is not set in stone. It's nice to have single-class files for vim's &lt;a href=&quot;http://vim.wikia.com/wiki/Open_file_under_cursor&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;gf&lt;/code&gt;&lt;/a&gt; feature.&lt;/p&gt;&#xA;" OwnerUserId="444" LastActivityDate="2010-10-11T12:47:38.720" />
  <row Id="10995" PostTypeId="2" ParentId="4123" CreationDate="2010-10-11T12:48:05.333" Score="1" ViewCount="" Body="&lt;p&gt;For me it was Head First Java which taught be what exactly OOP is.&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-10-11T12:48:05.333" CommentCount="1" />
  <row Id="10996" PostTypeId="2" ParentId="8352" CreationDate="2010-10-11T13:09:23.227" Score="0" ViewCount="" Body="&lt;p&gt;Personally, I store a class named &lt;code&gt;MyClass&lt;/code&gt; in a file called &lt;code&gt;MyClass.class.php&lt;/code&gt;, inside a &lt;code&gt;classes&lt;/code&gt; directory.&lt;br&gt;&#xA;My autoload function is then as simple as&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function __autoload($class) {&#xA;    require_once(&quot;/classes/&quot;.$class.&quot;.class.php&quot;);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;There is no structure inside the &lt;code&gt;classes&lt;/code&gt; directory, but in my projects this is never been a problem. If you need to have subdirectories, the method suggested by Asa Ayers is very practical and easy to implement.&lt;/p&gt;&#xA;" OwnerUserId="247" LastActivityDate="2010-10-11T13:09:23.227" />
  <row Id="10997" PostTypeId="2" ParentId="4711" CreationDate="2010-10-11T13:17:10.277" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Types, their use and their boundaries, their operations (their results, limits and effects);&lt;/li&gt;&#xA;&lt;li&gt;States, determination and transition, and applying them;&lt;/li&gt;&#xA;&lt;li&gt;Validation and verification - of assumptions, dogmas, the status quo and Standard Operating Procedures (challenge your knowledge/beliefs/understanding/skills/talents first, others last)&lt;/li&gt;&#xA;&lt;li&gt;Abstraction and Realization (and the use of metaphors, analogies and other mental contrivances)&lt;/li&gt;&#xA;&lt;li&gt;Analysis and diagnosis (listening, gathering data, deconstructing and reducing granularity, organizing phenomena, forming conclusions, etc)&lt;/li&gt;&#xA;&lt;li&gt;Problem-solving (defining goals, gathering requirements, prioritizing critical factors for success, leveraging situational elements to accomplish goals, etc)&lt;/li&gt;&#xA;&lt;li&gt;Process Engineering (and re-engineering)&lt;/li&gt;&#xA;&lt;li&gt;Profundity and Transcendence (spirituality, creativity, fantasy, artistry, etc)&lt;/li&gt;&#xA;&lt;li&gt;Design Principles (simplicity over complexity, reliability over flexibility, functionality over power)&lt;/li&gt;&#xA;&lt;li&gt;Design Patterns and Programming Idioms&lt;/li&gt;&#xA;&lt;li&gt;Programming languages&lt;/li&gt;&#xA;&lt;li&gt;Libraries, frameworks, interfaces, etc.&lt;/li&gt;&#xA;&lt;li&gt;Professionalism&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-11T13:17:10.277" CommentCount="2" />
  <row Id="10998" PostTypeId="1" CreationDate="2010-10-11T13:28:07.617" Score="12" ViewCount="468" Body="&lt;p&gt;What does Jamie Zawinski's quote mean exactly?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Some people, when confronted with a&#xA;  problem, think &quot;I know, I'll use&#xA;  regular expressions.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Now they have&#xA;  two problems.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've always had trouble understanding what he was getting at.&lt;/p&gt;&#xA;" OwnerUserId="5000" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-10-29T13:08:07.433" LastActivityDate="2011-05-19T19:38:21.277" Title="What does the JWZ regex quote mean?" Tags="&lt;quotes&gt;&lt;famous-people&gt;&lt;regex&gt;" AnswerCount="7" CommentCount="4" FavoriteCount="2" />
  <row Id="10999" PostTypeId="2" ParentId="10998" CreationDate="2010-10-11T13:32:33.800" Score="18" ViewCount="" Body="&lt;p&gt;Regular expressions - particularly non trivial ones - are difficult to code, understand and maintain. You only have to look at the number of questions on Stack Overflow tagged &lt;a href=&quot;http://stackoverflow.com/questions/tagged/regex&quot;&gt;&lt;code&gt;[regex]&lt;/code&gt;&lt;/a&gt; where the questioner has assumed that the answer is a regex had has got stuck. In a lot of cases the problem can (and perhaps should) be solved a different way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means that, if you decide to use a regex you now have two problems:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The original problem you wanted to solve.&lt;/li&gt;&#xA;&lt;li&gt;The support of a regex.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Basically, I think he means you should only use a regex if there's no other way of solving your problem. Any other solution is going to be easier to code, maintain and support.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-10-29T10:05:00.500" LastActivityDate="2010-10-29T10:05:00.500" CommentCount="9" />
  <row Id="11000" PostTypeId="2" ParentId="10998" CreationDate="2010-10-11T13:33:43.877" Score="5" ViewCount="" Body="&lt;p&gt;Regular expressions are very powerful, but they have one small and one big problem; they are hard to write, and near impossible to read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a best case the use of the regular expression solves the problem, so then you only have the maintainence problem of the complicated code. If you don't get the regular expression just right, you have both the original problem and the problem with unreadable code that doesn't work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes regular expressions are referred to as write-only code. Faced with a regular expression that needs fixing, it's often faster to start from scratch than to try to understand the expression.&lt;/p&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-10-11T13:33:43.877" />
  <row Id="11001" PostTypeId="2" ParentId="10998" CreationDate="2010-10-11T13:49:39.840" Score="5" ViewCount="" Body="&lt;p&gt;RegularExpressionsarenoworsetoreadormaintainthananyotherunformattedcontent;indeedaregexisprobablyeasiertoreadthanthispieceoftexthere-butunfortunatelytheyhaveabadreputationbecausesomeimplementationsdon'tallowformattingandpeopleingeneraldon'tknowthatyoucandoit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sub&gt;&lt;sup&gt;(Regular Expressions are no worse to read or maintain than any other unformatted content; indeed a regex is probably easier to read than this piece of text here - but unfortunately they have a bad reputation because some implementations don't allow formatting and people in general don't know that you can do it.)&lt;/sup&gt;&lt;/sub&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;Here's a trivial example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;^(?:[^,]*+,){21}[^,]*+$&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;Which isn't really that difficult to read or maintain anyway, but is even easier when it looks like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(?x)    # enables comments, so this whole block can be used in a regex.&#xA;^       # start of string&#xA;&#xA;(?:     # start non-capturing group&#xA;  [^,]*+  # as many non-commas as possible, but none required&#xA;  ,       # a comma&#xA;)       # end non-capturing group&#xA;{21}    # 21 of previous entity (i.e. the group)&#xA;&#xA;[^,]*+  # as many non-commas as possible, but none required&#xA;&#xA;$       # end of string&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That's a bit of an over-the-top example (commenting &lt;code&gt;$&lt;/code&gt; is akin to commenting &lt;code&gt;i++&lt;/code&gt;) but clearly there should be no problem reading, understanding, and maintaining that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;So long as you're clear as to when regular expressions are suited and when they're a bad idea, there's nothing wrong with them, and most times the JWZ quote doesn't really apply.&lt;/p&gt;&#xA;" OwnerUserId="89" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-10-11T13:55:58.703" LastActivityDate="2010-10-11T13:55:58.703" CommentCount="4" />
  <row Id="11002" PostTypeId="1" AcceptedAnswerId="11003" CreationDate="2010-10-11T13:52:00.010" Score="7" ViewCount="642" Body="&lt;p&gt;What free UML authoring tools do you use and why is it better than others?&lt;/p&gt;&#xA;" OwnerUserId="4287" LastActivityDate="2011-03-15T14:27:16.290" Title="Best free UML authoring tool" Tags="&lt;tools&gt;&lt;uml&gt;&lt;free&gt;" AnswerCount="13" FavoriteCount="3" />
  <row Id="11003" PostTypeId="2" ParentId="11002" CreationDate="2010-10-11T13:59:31.363" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://argouml.tigris.org/&quot; rel=&quot;nofollow&quot;&gt;ArgoUML&lt;/a&gt; - I use it for its simplicity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/nWrtG.png&quot; alt=&quot;enter image description here&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2011-02-24T12:40:52.497" CommentCount="2" />
  <row Id="11004" PostTypeId="2" ParentId="4123" CreationDate="2010-10-11T14:01:59.767" Score="0" ViewCount="" Body="&lt;p&gt;I started OOP with Delphi1. But I was always looking for the one glorious object hierarchy. The Gang of 4 Book about Software patterns open my eyes. The solid principles (and others like Law of Demeter etc.) help me to keep on track. Test driven development and Refactoring are my insurance for success.&lt;/p&gt;&#xA;" OwnerUserId="4999" LastActivityDate="2010-10-11T14:01:59.767" />
  <row Id="11005" PostTypeId="2" ParentId="11002" CreationDate="2010-10-11T14:02:59.210" Score="2" ViewCount="" Body="&lt;p&gt;I use ArgoUML because it's free. and in polytechnic they introduce, teach and make us use IBM Rational Software Modeler (RSM) school license.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the case of simplicity, IMHO I think all UML modeling software are much complicated due to the requirements of UML standards and its various diagrams.&lt;/p&gt;&#xA;" OwnerUserId="117" LastActivityDate="2010-10-11T14:02:59.210" />
  <row Id="11006" PostTypeId="2" ParentId="10930" CreationDate="2010-10-11T14:04:34.787" Score="1" ViewCount="" Body="&lt;p&gt;When someone doesn't know how to talk to a computer, they tell me and then I tell the computer what to do. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been asked this same question by adults and I'm tempted to give this answer because my current answer seems to be way over their head (at least the expression on their face seems to indicate that.).&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-11T14:04:34.787" />
  <row Id="11007" PostTypeId="1" AcceptedAnswerId="11008" CreationDate="2010-10-11T14:05:51.823" Score="7" ViewCount="881" Body="&lt;p&gt;Most of my fellow students that I've talked to claim that aiming for good grades is useless as the companies don't care about them when hiring programmers. To them, it's enough to have simply attended courses which may be important, and that's that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this true? Are university grades useless when leaving campus, or do employers ask to see them for an interview?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-29T13:12:57.160" Title="Do companies care about university grades when hiring programmers?" Tags="&lt;employment&gt;&lt;university&gt;&lt;industry&gt;" AnswerCount="13" CommentCount="1" FavoriteCount="1" />
  <row Id="11008" PostTypeId="2" ParentId="11007" CreationDate="2010-10-11T14:09:46.660" Score="16" ViewCount="" Body="&lt;p&gt;Incorrect. Grades are important especially if you have no or little professional programming experience. It's the bulk of your resume until you have professional experience.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-11T14:09:46.660" CommentCount="5" />
  <row Id="11009" PostTypeId="2" ParentId="11007" CreationDate="2010-10-11T14:10:42.727" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;They are useful if you don't have real work experience.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a potential employer has nothing else to go by (no work experience, open source project development, etc), then that's the only physical thing they can evaluate you by.  Typically, it doesn't matter as much as you actually knowing your stuff.  If you have a GPA of &amp;lt;2.0, and don't have other experience to back you up, you can expect some data structures questions to make sure you actually know that material, even if you did bad on all your tests in school.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-11T14:10:42.727" />
  <row Id="11010" PostTypeId="2" ParentId="11007" CreationDate="2010-10-11T14:18:10.623" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What is important is related to the person that will hire you.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If the guy spent most of his young life studying while others spent that same time in clubbing and flirting, there are good chances that he will value university a lot...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still today with more than 12 years experience in the industry, people ask me what university I went to (I left school early, so the dialogue that follows is really funny sometimes).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;To answer your question&lt;/strong&gt;: you will be more likely hired by someone that is highly educated, &lt;code&gt;so sure that studies will be important&lt;/code&gt;. If I had a time machine, I would have flirted with less girls and spend more time with my professors ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, since there is currently more demands than offer in programming world, you won't be a second choice for long, even if you did not spend too much time at university.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-11T14:23:35.617" LastActivityDate="2010-10-11T14:23:35.617" CommentCount="2" />
  <row Id="11011" PostTypeId="2" ParentId="2252" CreationDate="2010-10-11T14:18:28.483" Score="5" ViewCount="" Body="&lt;p&gt;You say &quot;My professional and academic background are already in the resumé, which the interviewer has obviously looked at.&quot;  Yes, that's true, but don't think that the interviewer is trying to get facts out of you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to understand &lt;em&gt;why&lt;/em&gt; the interviewer is asking this question, and what the role of it is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question “Tell me about yourself” serves at least five purposes.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It gives the candidate a chance to give her elevator speech, to tell about herself and what value she'll bring to the organization, and set the interview off in a given direction.&lt;/li&gt;&#xA;&lt;li&gt;It lets the manager see how well prepared the candidate is for the interview.&lt;/li&gt;&#xA;&lt;li&gt;It lets the candidate show how well-spoken she is.&lt;/li&gt;&#xA;&lt;li&gt;It lets the manager get an idea of the candidate's attitude and personality.&lt;/li&gt;&#xA;&lt;li&gt;It lets the manager compare what you tell him with what’s on the resume, to see if there are any discrepancies.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;More at my blog post that this inspired: &lt;a href=&quot;http://techworklove.com/2010/10/the-job-interview-is-not-about-collecting-factual-information/&quot; rel=&quot;nofollow&quot;&gt;http://techworklove.com/2010/10/the-job-interview-is-not-about-collecting-factual-information/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-11T14:18:28.483" CommentCount="1" />
  <row Id="11012" PostTypeId="1" AcceptedAnswerId="14385" CreationDate="2010-10-11T14:22:41.797" Score="8" ViewCount="356" Body="&lt;p&gt;My daughter and my son are learning Java with BlueJ. I really don't understand why the first thing they learn isn't to write code to bring a testcase to green light.&lt;/p&gt;&#xA;" OwnerUserId="4999" LastEditorUserId="4999" LastEditorDisplayName="" LastEditDate="2010-10-11T15:05:25.483" LastActivityDate="2010-10-25T04:09:56.357" Title="Why isn't TDD part of programming lessons at school" Tags="&lt;skills&gt;&lt;teaching&gt;" AnswerCount="9" CommentCount="6" />
  <row Id="11013" PostTypeId="2" ParentId="2591" CreationDate="2010-10-11T14:24:49.180" Score="1" ViewCount="" Body="&lt;p&gt;Probably the ones he put into his &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1590593898&quot; rel=&quot;nofollow&quot;&gt;book&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I especially like the Joel test, which is helpful on a few levels as well as his insistence that programmers understand economics - which I don't. Although I married a business major, which must count for something. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-11T14:24:49.180" />
  <row Id="11014" PostTypeId="2" ParentId="11012" CreationDate="2010-10-11T14:26:34.810" Score="14" ViewCount="" Body="&lt;p&gt;One reason is that TDD is seen as being new so it hasn't had chance to filter down to University or school programming courses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a lot of bureaucracy involved in the design of academic courses and it will take a while for everyone involved to become familiar with TDD and see its value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the same token, would you expect physics students to be taught the latest string theory - particularly when there are still arguments and unknowns in the theory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've just thought of another reason - the course is teaching &lt;em&gt;programming&lt;/em&gt; not &lt;em&gt;software development&lt;/em&gt;. Things like TDD, source control etc. are to do with the practice of software development, not the art of programming. You need both in order to succeed, and perhaps they should be taught in parallel, but if the course is a programming one you might only get the programming aspect taught.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-10-11T15:22:36.593" LastActivityDate="2010-10-11T15:22:36.593" CommentCount="5" />
  <row Id="11015" PostTypeId="2" ParentId="11007" CreationDate="2010-10-11T14:27:19.747" Score="2" ViewCount="" Body="&lt;p&gt;It's important to have good grade especially applying for the first job fresh out of college. Some companies might even set a GPA threshold (i.e 3.5/4.0) and might screen off candidates with gpa lower than that. Sure, there will always be exceptions, most likely due to leadership qualities, i.e. if you are the president of IEEE chapter of your school and have a 3.3 gpa, you might still have a shot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, it doesn't hurt to explain why you have lower grades as well. If a person can show that they've improved over time (maybe a student slacked off during freshmen year, or had gone through some hard-ships, but his/her grades improved over time when life circumstances are different), it does show maturity on the candidates side to explain those circumstances to the recruiter.&lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-10-11T14:27:19.747" />
  <row Id="11017" PostTypeId="2" ParentId="7126" CreationDate="2010-10-11T14:32:24.000" Score="2" ViewCount="" Body="&lt;p&gt;Think of software as a machine or assembly line that exists inside the computer. Some raw materials and components are fed into the machine, and it follows a set of procedures to process them into some final product. The procedures are set up to perform a specific operation on some raw material or component to a specific set of parameters (eg, time, temperature, distance, etc) in a particular order. If the details of the operation to be performed were incorrect, or the machine's sensors aren't correctly calibrated, or if some raw material or component wasn't within expected quality standards, it could change the operation's outcome and the product would not turn out as expected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Such a machine is very rigid in its operation and acceptable inputs. Machines don't question the designers' intelligence nor its current operating environment. It will continue to follow procedures as long as it's directed to. Even if a change in raw materials or components could have a dramatic effect on what happened in later operations, the machine would still perform its procedures. The process would need to be reviewed to see what changes to the procedures were necessary to compensate and produce the desired result. A change to the product's design or configuration might also require a significant change to the operations performed or their order. Although those in charge of production quickly learned the importance of isolating operations as much as possible to reduce undesirable effects between them, a lot of assumptions are made of the condition components are in as they undergo processing; assumptions that might not be detected until the final product is in the hands of the user in some different operating environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's what procedural programming is like.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What object-orientation provides is a way to remove the assumptions of the condition of components; thus, the operations to be performed on that component and how to integrate it into the final product. In other words, OOP is like taking the process details for dealing with some particular component and giving it to a smaller machine to do. The larger machine responsible for the process tells the component-specific machine which operation it expects to be done but leaves the details for the steps to the component-specific machine to handle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to the advantages of object-orientation over non-object-oriented software:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;component-specific behavior&lt;/em&gt; - making details on how to handle a particular component the responsibility of the smaller component-specific machine ensures any time that component is handled, its machine will do so appropriately;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;polymorphic expressions&lt;/em&gt; - because component-specific machines performs operations tailored to its particular component, the same message sent to different machines can act differently;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;type abstraction&lt;/em&gt; - it often makes sense for several different types of components to use the same vocabulary for the operations their machines do;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;separation of concerns&lt;/em&gt; - leaving component-specific details to their machines means the process machine only needs to handle the more general, larger concerns of its process and the data required to manage it; plus, it's less likely to be affected by changes in other components;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;adaptability&lt;/em&gt; - components that focus on their area of speciality can be adapted to unforeseen use simply by changing the components it uses, or making it available to another process machine;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;code reuse&lt;/em&gt; - components with a narrow focus and greater adaptability can leverage their development cost by being put to use more often.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4982" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-11T15:54:06.690" LastActivityDate="2010-10-11T15:54:06.690" CommentCount="2" />
  <row Id="11018" PostTypeId="2" ParentId="2252" CreationDate="2010-10-11T15:07:34.057" Score="0" ViewCount="" Body="&lt;p&gt;I start with&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;# mcotton --version&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;if that isn't enough I use&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;# more mcotton&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And if they continue to look interested&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;# tail -f /dev/random_thoughts&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3884" LastActivityDate="2010-10-11T15:07:34.057" CommentCount="3" />
  <row Id="11019" PostTypeId="2" ParentId="2252" CreationDate="2010-10-11T15:13:30.500" Score="0" ViewCount="" Body="&lt;p&gt;It happened to me to. Basically it depends on whom you are talking to. There are two main kinds of interviewers:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Technical one. My experience here is just that he wants to know your stuff in less formal and more personal way. I like this because I can focus on my professional path while talking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) HR person. This gives me creeps. He doesn't care much about your skills: he is just trying to predict if you are ambitious enough, if you are talkative enough, if you are good enough in a social way. This wouldn't be so bad if there was a scientific method to evaluate a person as a whole (skill+social) instead of just a bunch of questionable methods which practically lead to choose a person on a pure personal preference basis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With interviewer #1 a bit of surprise before answering is fine. With #2 that little gap could cost your job (&quot;are you hesitating? Hell you are not social cool enough!&quot;). Geez HRs need really to find a real job...&lt;/p&gt;&#xA;" OwnerUserId="4738" LastActivityDate="2010-10-11T15:13:30.500" />
  <row Id="11020" PostTypeId="2" ParentId="11012" CreationDate="2010-10-11T15:15:23.147" Score="4" ViewCount="" Body="&lt;p&gt;My university gave me tests to check my work against (well, test cases in the &quot;for input A, the output should be B&quot; sense). That was enough to ensure the assignment ran correctly, considering the workload required to complete the assignment in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think getting the concepts taught by the exercise is more important in school than spending time writing a test harness for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, whether or not there should be an additional &quot;real world application development&quot; course is a different matter. Such a course could teach TDD, agile, waterfall, etc.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-11T15:15:23.147" CommentCount="1" />
  <row Id="11021" PostTypeId="2" ParentId="11012" CreationDate="2010-10-11T15:20:48.627" Score="11" ViewCount="" Body="&lt;p&gt;If the students don't know how to write code, how are they supposed to do a test first?  This kind of makes me think that you'd want a student to write a summary of an essay without understanding sentence structure first.  Not likely to work well, I'd think but maybe that is just my opinion on the matter.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-11T15:20:48.627" CommentCount="3" />
  <row Id="11022" PostTypeId="2" ParentId="2252" CreationDate="2010-10-11T15:23:23.407" Score="4" ViewCount="" Body="&lt;p&gt;Here's how I answered on career overflow:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This question is a chance to summarize your resume and &lt;strong&gt;point out the things you think are important&lt;/strong&gt;. &quot;I'm a ...&quot; what noun phrase would you put there? &quot;... with ... &quot; what attributes or background are important to you? &quot;... who has been ... &quot; how would you describe what you've been doing lately, for better or worse? &quot;... and wants to ... &quot; what do you want, anyway? Done right you tell them &lt;strong&gt;why you are a great hire, why you are changing jobs, and what questions to ask next all in a few sentences&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, &quot;I'm a new Computer Science grad who's managed to get 3 years of paid software development experience while earning this degree, and has seen enough different kinds of companies to know that I want to work at a place like this, that uses [technology or methodology] and [something else important like is making the world a better place or is impressive to my friends or is financially stable.]&quot; Or &quot;I'm a 30+ year veteran of this industry who has run my own life for many years. I'm ready to join a big team so that I can take on work that solo practioners don't get. I'm looking forward to [specific tasks] and I believe I can get that here.&quot; Or &quot;I'm a published author, experienced speaker, amazing trainer and quick learner who needs some new challenges. I want to learn [technology] and I believe joining a firm like this one will give me those opportunities. I know my [specific skills and abilities] can make a real contribution here and I want to demonstrate that fit to you.&quot; Or &quot;I'm a new graduate who stands out from the rest of the class because I [have/did something amazing] and I want [something other than a paycheque].&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Thirty seconds.&lt;/strong&gt; If I want the details of your two year sailing trip around the world, or why you are leaving your old job, I'll drill in.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-11T15:23:23.407" />
  <row Id="11023" PostTypeId="2" ParentId="10880" CreationDate="2010-10-11T15:23:51.177" Score="2" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://jekyllrb.com/&quot; rel=&quot;nofollow&quot;&gt;Jekyll&lt;/a&gt;. It's simple, especially if you don't mind using JavaScript for small bits of dynamic content, and with Pygments it does excellent &lt;a href=&quot;http://github.com/mojombo/jekyll/wiki/Liquid-Extensions&quot; rel=&quot;nofollow&quot;&gt;syntax highlighting&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="679" LastEditorUserId="679" LastEditorDisplayName="" LastEditDate="2011-02-06T20:02:55.770" LastActivityDate="2011-02-06T20:02:55.770" CommentCount="1" />
  <row Id="11025" PostTypeId="2" ParentId="11012" CreationDate="2010-10-11T15:37:33.917" Score="1" ViewCount="" Body="&lt;p&gt;I was submitting assignments back in 1990 against automated tests - long before 'unit testing' as such existed as a term in the sense that we now mean it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the problem is that unit tests really come into their own when you don't have a clear idea about the requirements or when those requirements change. This is rarely, if ever, a problem for university assignments so they maybe don't appear that relevant in an academic setting and hence aren't taught (of course those of us doing unit testing know better...maybe... :-) )&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-11T15:37:33.917" />
  <row Id="11026" PostTypeId="2" ParentId="10816" CreationDate="2010-10-11T15:37:43.140" Score="4" ViewCount="" Body="&lt;p&gt;I can tell you for a fact that it is still &lt;i&gt;entertaining&lt;/i&gt; today, which is a lot more than some of our ancient tomes can say.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-11T15:37:43.140" CommentCount="2" />
  <row Id="11027" PostTypeId="2" ParentId="11012" CreationDate="2010-10-11T15:44:36.323" Score="0" ViewCount="" Body="&lt;p&gt;I think that TDD's many benefits wouldn't be demonstrable in the context of school assignments. Without demonstration, students (even professionals new to TDD) would fail to see these benefits. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One purpose (among others) of TDD is to ensure that future changes to the code don't break existing functionality. School assignments are usually standalone - there being no relationship between assignments - so this benefit wouldn't be apparent &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if we look at other benefits - that TDD helps in defining a clearcut API for your classes - I'm not sure how relevant this would be to school assignments - where the focus is more on the logic and getting it done than on elegant code and reusability.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-10-11T15:44:36.323" />
  <row Id="11029" PostTypeId="2" ParentId="7126" CreationDate="2010-10-11T16:12:45.327" Score="4" ViewCount="" Body="&lt;p&gt;I think OOP is basically just a name given to something you may have been tempted to do along the way, as I was.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Way back when I was a baby programmer, even in Fortran, there was such a thing as a pointer to a subroutine. It is really useful to be able to pass a pointer to a subroutine as an argument to another subroutine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then the next thing that would be really useful would be to store a pointer to a subroutine inside a record of a data structure. That way, you might say the record &quot;knows&quot; how to do operations on itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure if they ever built that into Fortran, but it's easy to do in C and its descendents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So underneath, it's a simple and useful idea that you might have been tempted to do yourself, and is easier to do in more recent languages, even if some people turned it into a giant bandwagon full of scary buzzwords.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-10-11T16:12:45.327" />
  <row Id="11030" PostTypeId="2" ParentId="11007" CreationDate="2010-10-11T16:16:56.963" Score="7" ViewCount="" Body="&lt;p&gt;Put yourself in the place of a hiring manager at a large (or not so large) company.  You have one or two entry level positions to fill, and 150 applicants.  The easiest thing to do is filter out everyone with a GPA less that 3.0 (or 3.5).  True, you may eliminate a truly good candidate.   But you will also cut down on your workload, and the time before you can hire someone.  As a hiring manager, my goal is not to fairly evaluate all of the potential candidates, it is to fill the positions with good or great people as quickly as possible.  Anything you can do to make yourself stand out in relation to your competition is a good thing.  Anything that raises questions in the mind of the person reviewing your resume, deserved or not, is a bad thing&lt;/p&gt;&#xA;" OwnerUserId="1427" LastActivityDate="2010-10-11T16:16:56.963" />
  <row Id="11031" PostTypeId="2" ParentId="9062" CreationDate="2010-10-11T16:18:46.890" Score="11" ViewCount="" Body="&lt;p&gt;As a Vim novice, I tend to abuse the Esc key to &lt;em&gt;make sure&lt;/em&gt; I am in normal mode.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am also known for insisting on using &lt;code&gt;++i&lt;/code&gt; instead of &lt;code&gt;i++&lt;/code&gt; in C/C++ &lt;code&gt;for&lt;/code&gt; loop counter increments, even though &lt;a href=&quot;http://stackoverflow.com/questions/24886/is-there-a-performance-difference-between-i-and-i-in-c&quot;&gt;the compiler probably takes care of this optimization&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5012" LastEditorUserId="5012" LastEditorDisplayName="" LastEditDate="2011-04-07T13:42:26.593" LastActivityDate="2011-04-07T13:42:26.593" CommunityOwnedDate="2010-10-11T16:18:46.890" CommentCount="3" />
  <row Id="11032" PostTypeId="1" AcceptedAnswerId="11035" CreationDate="2010-10-11T16:31:15.317" Score="3" ViewCount="217" Body="&lt;p&gt;In what is stress management effectively handled by programmers? I am having a hard time dealing with stress. Should I meditate to solve this?&lt;/p&gt;&#xA;" OwnerUserId="3993" LastEditorUserId="3388" LastEditorDisplayName="" LastEditDate="2010-10-12T12:04:59.990" LastActivityDate="2011-01-19T15:45:12.827" CommunityOwnedDate="2010-10-11T16:31:15.317" Title="In what ways stress Management is effectively handled by the Good Software Peoples?" Tags="&lt;career&gt;&lt;health&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="11035" PostTypeId="2" ParentId="11032" CreationDate="2010-10-11T16:41:32.750" Score="6" ViewCount="" Body="&lt;p&gt;Get enough exercise. Eat properly. Sleep well (but without resorting to medication or alcohol). Find the right balance between work and the rest of your life. If you are spending more than 9 hours a day working, you are not being productive for the last part, so leave it for tomorrow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hang out with non-software people as well as your peers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And remember - your software, and your job, should not be the most important part of your life!&lt;/p&gt;&#xA;" OwnerUserId="1852" LastActivityDate="2010-10-11T16:41:32.750" CommunityOwnedDate="2010-10-11T16:41:32.750" CommentCount="6" />
  <row Id="11037" PostTypeId="2" ParentId="10865" CreationDate="2010-10-11T16:44:38.623" Score="2" ViewCount="" Body="&lt;p&gt;Applications that are very stateful in nature. Video games are a good example because they model the real world. It makes much more sense to think about modifying the state of the world instead of rebuilding from the previous state every time something changes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A concrete example would be changing the health of a monster after it gets shot. It's a lot more sensible to simply alter its health than to replace it with an entirely new monster that is the same in every way except now it has less health. These kind of changes make up just about everything in a game world, and doing this in a pure functional manner is not very intuitive. I imagine there may be some significant performance penalties, at least if you're doing it in a purely functional language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(As a side note, some problems in games are very well suited to functional programming, such as AI. A hybrid functional/imperative language would be an excellent fit for those cases.)&lt;/p&gt;&#xA;" OwnerUserId="1360" LastEditorUserId="1360" LastEditorDisplayName="" LastEditDate="2010-10-11T20:00:46.623" LastActivityDate="2010-10-11T20:00:46.623" CommentCount="8" />
  <row Id="11038" PostTypeId="2" ParentId="11007" CreationDate="2010-10-11T16:47:54.487" Score="1" ViewCount="" Body="&lt;p&gt;In order to graduate at my university we had to do a major project, including non-trivial programming, with a suitable report, meaning quite a bit of work had to be done in order to have the project approved.  That work was time limited, and you had to manage your own time in order to finish the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hence, presenting a university grade not only show that you have had a bit of theory, but also that you have managed yourself to finish a non-trivial project with a deadline.  What the project was actually about is less important, than the fact that you finished it in an acceptable state on time.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-11T16:47:54.487" CommentCount="2" />
  <row Id="11039" PostTypeId="2" ParentId="11032" CreationDate="2010-10-11T16:50:04.280" Score="6" ViewCount="" Body="&lt;p&gt;I don't think working on the symptoms is effective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is how I think everybody should handle stress:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Accept&lt;/strong&gt; your stress. It's there. It's you. It's biological. Not accepting it will increase its effects. Your anxiety of today can become the panic attack of tomorrow. Then leads you to the burnout.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;In most cases, stress is the consequence of your own decisions. Learn how to accept and commit only things you know you will handle with &lt;code&gt;ease&lt;/code&gt;. &lt;strong&gt;Say no&lt;/strong&gt; to the rest. &lt;strong&gt;Know you limits&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Stress is a signal. Your body is talking to you. Take it seriously.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-11T16:55:37.773" LastActivityDate="2010-10-11T16:55:37.773" CommunityOwnedDate="2010-10-11T16:50:04.280" CommentCount="1" />
  <row Id="11040" PostTypeId="2" ParentId="9219" CreationDate="2010-10-11T16:50:30.190" Score="0" ViewCount="" Body="&lt;p&gt;It's often said that design patterns provide a ready-made solution for programming problems. What kind of problems are they? &quot;How can I change object behavior, but isolate the changes from the rest of the system?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The GoF patterns are recognized for providing that isolation (encapsulation) from the rest of the system, but it's often difficult to know what part of the system is given variability through the use of their design patterns. Instead of following the classification scheme they proposed (creational, behavioral and structural), I charted the patterns' differences and came up with two other schemes to classify their patterns: lifecycle and component encapsulation hierarchy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/dBQDW.jpg&quot; alt=&quot;design pattern encapsulation hierarchy&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you can see from this table for the encapsulation hierarchy, design patterns can be applied at every level of a component. But would it make sense? Will the component need to provide behavioral variation at the encapsulation level proposed, and is the proper pattern used for that level? If these questions aren't properly answered then design patterns are most likely misapplied. Just because a vertical pivot could be built into the cabin of a car doesn't make it a smart idea.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-11T16:50:30.190" />
  <row Id="11043" PostTypeId="2" ParentId="11032" CreationDate="2010-10-11T16:52:11.983" Score="3" ViewCount="" Body="&lt;p&gt;Stress indicates that the amount of work you think you need to do is more than you think you can handle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest that you divide the workload you have, into small reachable goals, so you can get things &lt;em&gt;done&lt;/em&gt; during a work day.   You may consider talking to your boss and say that you would appreciate help with this.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-11T16:52:11.983" CommunityOwnedDate="2010-10-11T16:52:11.983" />
  <row Id="11044" PostTypeId="2" ParentId="10736" CreationDate="2010-10-11T16:57:49.987" Score="2" ViewCount="" Body="&lt;p&gt;If this is some sort of startup, then the number one thing you need to do is get a product built.  You need good developers who will work hard and be dedicated to the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One really easy way to get rid of them, or at least to sap their morale and dedication, is to show them up front that you don't trust them.  In fact, they're likely to start thinking of ways they can get the code out (although they almost certainly won't follow through), and if they can come up with a way they'll think you not only paranoid but stupid.  (There are organizations where this level of caution is justified, and a financial website startup will not be considered one of them.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few clauses in the contract about how the software is your property will be fine.  If somebody will violate that, they'll violate any more severe language you've got, and probably feel more justified.  Non-compete clauses that aren't narrow and time-limited will just chase off the people you want, and may in fact not be legal in your jurisdiction (consult a local lawyer to find out).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you hire good people, they can rewrite the software later.  If you hire beginners, they won't know how to further develop what they walk off with, and anybody building on it will be running serious legal risks to come in late with an inferior version of what you've got.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, this should be way low on the things you worry about.  If you hire bad people, you're sunk no matter what.  Concentrate on hiring good people and let this slide.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-11T16:57:49.987" />
  <row Id="11045" PostTypeId="2" ParentId="11032" CreationDate="2010-10-11T17:03:15.240" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;I ride my bike to work some days which can be great in the evening to get me to forget about work stuff.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Also, I try to get to work earlier rather than later. If I stay later I can stay there until midnight, but if I go in early I can still get a few extra very productive hours in, but there is a limit on how much it can overtake my personal life.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-11T17:03:15.240" CommunityOwnedDate="2010-10-11T17:03:15.240" />
  <row Id="11046" PostTypeId="2" ParentId="11007" CreationDate="2010-10-11T17:04:44.457" Score="3" ViewCount="" Body="&lt;p&gt;You're trying to figure out what a hiring manager will value... and that can be tricky. My experience is mostly with companies doing systems programming, compilers, and embedded software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've worked at two companies who had a minimum GPA to be considered, but it wasn't too onerous. (3.0 out of 4) Some hiring managers view overall GPA as a half decent &quot;performance evaluation&quot; of the candidate over a long term period, and a decent measure of self-motivation. This is not entirely inaccurate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I'm hiring, I will look at GPA as something of a base requirement. Do I really want to hire someone who managed to spend four years of his life and how-many thousands of dollars, and couldn't put forth enough effort to beat a 2.5? Frankly, in order to even look at a below-B-average student, they need to have absolutely &lt;em&gt;stellar&lt;/em&gt; projects on the side that they've been working on. (core components of a large open source project would be acceptable, for example... senior thesis would not be)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other side of the coin, the difference between a 3.3 GPA and a 3.9 GPA is negligible from an employers standpoint. A 4.0 is notable, but a bit of a bias exists that the &quot;4.0 student&quot; is really aiming for academia, and may leave soon to pursue that goal. Others in this thread mention that some employers insist on a 3.5, but I haven't personally come across them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In summary, I would work hard to keep your grades above a 3.5. At least at my school, it was several orders of magnitude more difficult to maintain a 4.0 (or just short of it) from a 3.6-3.7 range. While that first job you want might not require it, you won't be shut out of interesting opportunities with a &quot;high A-B student&quot; grade, and you very well may get more out of your classes anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;First Job only&quot;: Some have mentioned that the employers after the first don't really care about grades. While this is true to a great extent, it's also true that there are &quot;job development paths&quot;, and it's much easier to move to higher paying positions if you start out at a higher-paying/more-technically-challenging first job, which will often have more strict requirements.&lt;/p&gt;&#xA;" OwnerUserId="3645" LastActivityDate="2010-10-11T17:04:44.457" CommentCount="1" />
  <row Id="11048" PostTypeId="2" ParentId="39" CreationDate="2010-10-11T17:36:29.537" Score="1" ViewCount="" Body="&lt;h3&gt;Concentrate Your Effort&lt;/h3&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Don't write too much. Concentrate your sweat on one story, rather than dissipate it over a dozen.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;em&gt;Jack London&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Somehow, I missed the (paraphrased, shorter) duplicate of this one:&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Be Diligent&lt;/h3&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Don't loaf and invite inspiration; light out after it with a club, and if you don't get it you will nonetheless get something that looks remarkably like it.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Part of &lt;a href=&quot;http://www.kirjasto.sci.fi/jlondon.htm&quot; rel=&quot;nofollow&quot;&gt;one quote&lt;/a&gt;; I split them to narrow down the topic.&lt;/p&gt;&#xA;" OwnerUserId="2515" LastEditorUserId="2515" LastEditorDisplayName="" LastEditDate="2010-10-21T05:48:41.153" LastActivityDate="2010-10-21T05:48:41.153" CommunityOwnedDate="2010-10-11T17:36:29.537" />
  <row Id="11049" PostTypeId="1" CreationDate="2010-10-11T17:44:57.887" Score="13" ViewCount="276" Body="&lt;p&gt;The goal is to compile a list of best practices for a development team. This can be anything from management techniques to software that make the team more productive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please keep one suggestion per answer and give an explanation of why you think this change will make the team better.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2011-05-23T16:16:19.620" ClosedDate="2011-05-23T16:13:47.863" Title="If you could implement one change in a development team, what would it be?" Tags="&lt;productivity&gt;&lt;best-practices&gt;&lt;team&gt;" AnswerCount="9" FavoriteCount="6" />
  <row Id="11050" PostTypeId="1" CreationDate="2010-10-11T17:45:13.663" Score="4" ViewCount="112" Body="&lt;p&gt;I haven't been programming for almost a decade. I used to be able to program in QBasic, Turbo Pascal, C, C++, Visual Basic and Assembly. I have no knowledge in any other programming language (other than HTML).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want a project (in &lt;em&gt;some&lt;/em&gt; programming language) to help me acquaint myself with the new environment (unix, python, perl, java, flash?) in a way that would give me the feeling that I've gained a mini-super-power. By that I mean something that give me the feeling of hacking (not actually learn about hacking, but just like learning C for the first time feels like hacking). Something that would put my programming skills to use in a way that the programming languages I do (did) know don't.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-11T20:00:36.763" Title="What's a neat project to help me get used to the modern environment?" Tags="&lt;learning&gt;" AnswerCount="4" CommentCount="4" />
  <row Id="11051" PostTypeId="2" ParentId="11049" CreationDate="2010-10-11T17:46:10.457" Score="8" ViewCount="" Body="&lt;p&gt;Implementing a &lt;strong&gt;version control&lt;/strong&gt; system will improve communication between developers, save time, and protect shared resources under development. I almost want to call it the founding block for a team's efficiency.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-11T17:46:10.457" CommentCount="5" />
  <row Id="11054" PostTypeId="2" ParentId="11049" CreationDate="2010-10-11T17:53:23.817" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Daily Stand-up&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First thing in the morning, everyone states in 60-120 seconds what:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;was accomplished yesterday&lt;/li&gt;&#xA;&lt;li&gt;what (if anything is blocking)&lt;/li&gt;&#xA;&lt;li&gt;what's the goal for today.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Yeah, it's Agile, but it's a great, quick communication tool.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-10-11T17:53:23.817" CommentCount="5" />
  <row Id="11055" PostTypeId="2" ParentId="11050" CreationDate="2010-10-11T17:55:44.233" Score="0" ViewCount="" Body="&lt;p&gt;I would start with &lt;strong&gt;a blog engine&lt;/strong&gt; in just about any modern language (C#, Java, etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A blog engine helps you learn new concepts by making you implement:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A web-based UI&lt;/li&gt;&#xA;&lt;li&gt;CRUD operations to a database (blog posts, comments, etc)&lt;/li&gt;&#xA;&lt;li&gt;Authentication (logging in/logging out and posting as a user)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These three things are the foundation of most applications that you'll write in the real world.  Also, writing a blog gives you the freedom of design and future changes.  You could go on to implement a module framework, or just add new functionality as you see fit.  The best part is you have a solid idea of what a blog engine does, so you have specific and concrete requirements to practice toward.  If you can write a blog engine, you'll be well on your way to learning your new language.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-11T17:55:44.233" />
  <row Id="11056" PostTypeId="2" ParentId="11049" CreationDate="2010-10-11T17:56:40.690" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Continuous Integration&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Building on version control, build your project as often and as automatically as possible. Then, eat your own dog food.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-10-11T17:56:40.690" CommentCount="1" />
  <row Id="11057" PostTypeId="2" ParentId="3684" CreationDate="2010-10-11T18:03:41.943" Score="0" ViewCount="" Body="&lt;p&gt;This Encapsulation Hierarchy Table of design patterns cheat sheet is pretty useful:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/2BoIJ.jpg&quot; alt=&quot;design pattern encapsulation hierarchy table&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-11T18:03:41.943" />
  <row Id="11060" PostTypeId="2" ParentId="2264" CreationDate="2010-10-11T18:23:03.123" Score="0" ViewCount="" Body="&lt;p&gt;I would definitely hire you to do Java work after coming from a C# background (I'll probably have to do the opposite for a project that's coming up since only Java people are available). The question is: do you do OO coding? Java and C# are syntactically very similar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you manage to get an interview, you may want to express this concern at the interview, with the obvious defense that &lt;strong&gt;you've done your homework.&lt;/strong&gt; You should be well-versed in the differences between the two. One example are the naming conventions and how they differ between the two. For instance, in C# methods are &lt;code&gt;Method&lt;/code&gt; and in Java they are always &lt;code&gt;method&lt;/code&gt;. Look at getters and setters, and how generics have been worked into both languages (IMHO, kind of sad how weird they are in Java). There are many other similar points, and a lot of great docs comparing the two.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-10-11T18:23:03.123" />
  <row Id="11062" PostTypeId="1" AcceptedAnswerId="11073" CreationDate="2010-10-11T18:24:00.697" Score="1" ViewCount="263" Body="&lt;p&gt;I saw a blog posting that spoke to me: &lt;a href=&quot;http://james-iry.blogspot.com/2010/10/how-to-estimate-software.html&quot; rel=&quot;nofollow&quot;&gt;http://james-iry.blogspot.com/2010/10/how-to-estimate-software.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oddly, this is the kind of estimate that I tend to do on smaller projects. Just about everything is &quot;two weeks&quot; as that is comfortably far enough out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I once had an instructor walk us through how to create a more detailed estimate, wherein we already had the requirements up front, etc. and even after all the careful tabulation and such the final instruction was &quot;Now that you have all this documentation go ahead and double it.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Agile practitioners seem to like two weeks also as a sprint length. Is there something magical about two weeks? Is it a hrair number for our psyches or some other kind of crutch? Do you have an immediate default fall-back schedule strategy when you are pressed for an initial delivery date?&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2011-01-29T05:32:40.987" Title="Two Weeks As A Software Estimation Rule of Thumb?" Tags="&lt;software&gt;&lt;estimation&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="1" />
  <row Id="11063" PostTypeId="2" ParentId="2264" CreationDate="2010-10-11T18:40:30.360" Score="1" ViewCount="" Body="&lt;p&gt;If you made the java-&gt;C# switch, why couldn't you do the inverse?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course it's possible, C# and Java have many points in common, as well as many differences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a java-job interview, I would concentrate on what makes java stronger against, for example, C# or other similar languages.&lt;/p&gt;&#xA;" OwnerUserId="4015" LastActivityDate="2010-10-11T18:40:30.360" />
  <row Id="11064" PostTypeId="2" ParentId="11062" CreationDate="2010-10-11T18:41:18.760" Score="1" ViewCount="" Body="&lt;p&gt;6-8 weeks.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-10-11T18:41:18.760" CommentCount="1" />
  <row Id="11065" PostTypeId="2" ParentId="11062" CreationDate="2010-10-11T18:42:27.787" Score="2" ViewCount="" Body="&lt;p&gt;It doesn't make a lot of sense to me that every different software project could have the same estimate.  &quot;Build some on-board drivers for a mars rover.&quot; and &quot;Design a 3 page website for a local dentist.&quot; can't possibly take the same amount of time.  When asked for an estimate I do my best to come up with an accurate one based on everything I know about the project.  I also tend to give a range of numbers reflecting the confidence of the estimate.  Always saying &quot;two weeks&quot; seems lazy and disingenuous to me.  It's fine as a joke but not as a real answer from a professional software developer.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-10-11T18:42:27.787" CommentCount="2" />
  <row Id="11068" PostTypeId="2" ParentId="2264" CreationDate="2010-10-11T18:55:55.950" Score="1" ViewCount="" Body="&lt;p&gt;How well do you know particular C# APIs and particular Java APIs? Though the languages are similar, I've found that it takes time to learn new APIs (in particular the Java XML APIs.)&lt;/p&gt;&#xA;" OwnerUserId="1961" LastActivityDate="2010-10-11T18:55:55.950" />
  <row Id="11070" PostTypeId="2" ParentId="11050" CreationDate="2010-10-11T19:00:31.770" Score="2" ViewCount="" Body="&lt;p&gt;In my mind there are two mainstream lanaguages (and their associated class hierarchies) in which to learn - C# and Java. Depending on the enviornment you are targeting, I'd start with one of those. I'm not saying all these newer dynamic languages are not good to learn, but the classic C#/Java would be an easier transition for you coming from C/C++/QuickBasic&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-11T19:00:31.770" CommentCount="1" />
  <row Id="11071" PostTypeId="2" ParentId="5354" CreationDate="2010-10-11T19:21:06.440" Score="3" ViewCount="" Body="&lt;p&gt;Relational databases will eventually fade away, and SQL will fade with them, but I do not expect this to occur any time soon.  The relational database model, for all its warts and foibles, is &quot;good enough&quot; for many applications - it's the right-sized hammer for the nail of &quot;how do I easily store my data&quot;.  It's reasonably easy to understand and work with, and there's plenty of implementations.  So if your question was an indirect way of asking &quot;Do I &lt;em&gt;really&lt;/em&gt; have to learn and understand SQL?&quot; the answer is &quot;Yes&quot;.  :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Share and enjoy.&lt;/p&gt;&#xA;" OwnerUserId="4848" LastActivityDate="2010-10-11T19:21:06.440" />
  <row Id="11072" PostTypeId="2" ParentId="11050" CreationDate="2010-10-11T19:29:04.163" Score="0" ViewCount="" Body="&lt;p&gt;I would suggest Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looking at your languages list you are sorely lacking a scripting language I think, and scripting is essential for development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I myself delved in Python a year and a half after having begun to work and I really felt like Superman: suddenly there were plenty of repetitive/mind-numbing tasks that I could just automate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stupid example:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;You have the following directory:&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;xxx/&#xA;  Bar.h&#xA;  foo.h&#xA;  fooBar.h&#xA;  Zulu.h&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;but your company policy requires that all include files begin with a lower case letter: how do you set about it ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;With any scripting language, it's a pretty trivial task, with a compiled language, it's usually a bit longer (need to create a file, compile it, etc...), and if you set to it manually, just pray there aren't too many to rename.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, Python is also used to build applications (&lt;a href=&quot;http://mercurial.selenic.com/&quot; rel=&quot;nofollow&quot;&gt;Mercurial&lt;/a&gt;) or web sites (using &lt;a href=&quot;http://www.djangoproject.com/&quot; rel=&quot;nofollow&quot;&gt;Django&lt;/a&gt;), so it's not restricted to throw away scripts either.&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2010-10-11T19:29:04.163" />
  <row Id="11073" PostTypeId="2" ParentId="11062" CreationDate="2010-10-11T19:29:17.623" Score="7" ViewCount="" Body="&lt;p&gt;In my experience, projects generally fall into 4 categories:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;5 minutes&lt;/li&gt;&#xA;&lt;li&gt;two weeks&lt;/li&gt;&#xA;&lt;li&gt;6 months&lt;/li&gt;&#xA;&lt;li&gt;forever&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-11T19:29:17.623" CommentCount="2" />
  <row Id="11074" PostTypeId="2" ParentId="11032" CreationDate="2010-10-11T19:29:22.180" Score="2" ViewCount="" Body="&lt;p&gt;There are various ways to relieve stress to my mind:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Tell someone your problems.  Having someone listen can help get some things off one's chest.  This can also be considered commiserating, whining, complaining or venting.  Sometimes someone may offer suggestions and other times you may just want someone's ear.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Blow off steam through exertion.  Physical exercise and video games come to mind here as these are ways to beat up stuff without getting into a lot of trouble.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Volunteer.  Some people like to help others and make a difference in the world as a way to feel better and not so overworked.  There can also be a new appreciation for things in your world if you see how bad other people live in the world.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make sure your physical appetites, which include food, sleep and sex to my mind, are managed.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Meditation, prayer or relaxation can also be a way to feel better.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Find some entertainment that you enjoy.  This can be music, movies, TV, plays, or people watching to my mind.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Which of these work best for you is something for you to try and see what works and what doesn't.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-11T19:29:22.180" CommunityOwnedDate="2010-10-11T19:29:22.180" CommentCount="2" />
  <row Id="11075" PostTypeId="2" ParentId="11049" CreationDate="2010-10-11T19:35:33.807" Score="7" ViewCount="" Body="&lt;p&gt;@DevSolo suggested &lt;em&gt;Continuous Integration&lt;/em&gt;, however i have always felt it was awkward: by the time the bot signals you that something is broken, the whole team may have contamined already.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead I would suggest &lt;strong&gt;Automated Integration&lt;/strong&gt;: instead of having developers commit into the main repository, they &lt;em&gt;ask&lt;/em&gt; the bot to commit for them, and it commits ONLY if the unit-tests / non-regressions all pass.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you get that, you don't have to worry about Continuous Integration any longer: you are assured that if you ever need to clone the main repository, you'll get a 100% validated software... which means that any regression is of your own fault :)&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2010-10-11T19:35:33.807" CommentCount="5" />
  <row Id="11076" PostTypeId="1" AcceptedAnswerId="11096" CreationDate="2010-10-11T19:38:23.627" Score="1" ViewCount="213" Body="&lt;p&gt;I often came across situations where people estimates I have more wits and capacities to do abstract stuff, but in the end, I'm just not motivated enough or I just want to do things my way instead of following the same way of other students, I often prefer the autodidact way of learning, since other's ways are often biased.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I failed scientific prep school in france because of that, and I still wonder if it's just a strategy some people try to just cheer up someone's ego. I just hate it when someone says &quot;you are smart&quot; but they don't mean it at all...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I'm in a private videogames programming school (something I always dreamed of), and since students are there to carry out their task by themselves without a teacher around outside theory classes, I'm afraid I will fail because of it: I'm still only trying to understand only the stuff I don't know yet, like matrices and quaternions, asking the students of the upper class, while wasting my time not making the work asked during the practice hours...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What can I do to correct such behaviour ? I feel I could do better, but instead I feel like I'm learning nothing and having paid to be with students who share the same interest, but don't have the motivation to learn complicated stuff (stuff that matters).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't you often feel the education is being made just to fill hours for people pretending they are learning something, but instead just spend one tenth of their time just trying to understand a problem ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why do I feel I have so many irrelevant and stupid people around me ? Or am I the one who is  dumb instead ? How do people work around that kind of feeling (the one where you feel surrounded with people who don't wish to learn something as much as you do) ?&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2010-10-11T20:22:08.617" ClosedDate="2010-10-11T20:34:55.230" Title="The &quot;will hunting&quot; syndrome and other self believing disorders..." Tags="&lt;school&gt;&lt;education&gt;&lt;computer-science&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="2" />
  <row Id="11077" PostTypeId="1" AcceptedAnswerId="11081" CreationDate="2010-10-11T19:41:48.503" Score="15" ViewCount="2073" Body="&lt;p&gt;When talking to another programmer I would refer to &lt;code&gt;(&lt;/code&gt; and &lt;code&gt;)&lt;/code&gt; as parentheses. I would refer to &lt;code&gt;[&lt;/code&gt; and &lt;code&gt;]&lt;/code&gt; as brackets. What do you refer to &lt;code&gt;{&lt;/code&gt; and &lt;code&gt;}&lt;/code&gt; as?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I checked &lt;a href=&quot;http://en.wikipedia.org/wiki/Bracket&quot; rel=&quot;nofollow&quot;&gt;the wikipedia article&lt;/a&gt; and there were several names listed:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;curly brackets&lt;/li&gt;&#xA;&lt;li&gt;squiggly brackets&lt;/li&gt;&#xA;&lt;li&gt;definite brackets&lt;/li&gt;&#xA;&lt;li&gt;swirly brackets&lt;/li&gt;&#xA;&lt;li&gt;birdie brackets&lt;/li&gt;&#xA;&lt;li&gt;Scottish brackets&lt;/li&gt;&#xA;&lt;li&gt;squirrelly brackets&lt;/li&gt;&#xA;&lt;li&gt;braces&lt;/li&gt;&#xA;&lt;li&gt;gullwings&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Is there a term commonly used within programmers to identify these characters?&lt;/p&gt;&#xA;" OwnerUserId="1785" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-13T14:48:24.423" LastActivityDate="2011-01-17T17:20:30.977" Title="What do you call this { character?" Tags="&lt;communication&gt;&lt;terminology&gt;" AnswerCount="29" CommentCount="8" FavoriteCount="6" />
  <row Id="11078" PostTypeId="2" ParentId="11077" CreationDate="2010-10-11T19:46:06.263" Score="48" ViewCount="" Body="&lt;p&gt;I call that a curly brace.&lt;/p&gt;&#xA;" OwnerUserId="2543" LastEditorUserId="2543" LastEditorDisplayName="" LastEditDate="2010-10-12T13:54:28.997" LastActivityDate="2010-10-12T13:54:28.997" CommentCount="1" />
  <row Id="11079" PostTypeId="2" ParentId="11077" CreationDate="2010-10-11T19:46:28.540" Score="1" ViewCount="" Body="&lt;p&gt;I go with Curly Bracers or Curly Bracket (gee that looks so funny written down)&lt;/p&gt;&#xA;" OwnerUserId="1130" LastEditorUserId="1130" LastEditorDisplayName="" LastEditDate="2010-10-12T11:35:35.557" LastActivityDate="2010-10-12T11:35:35.557" CommentCount="3" />
  <row Id="11080" PostTypeId="2" ParentId="11077" CreationDate="2010-10-11T19:46:44.330" Score="6" ViewCount="" Body="&lt;p&gt;well I use&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;[&lt;/code&gt; &amp;amp; &lt;code&gt;]&lt;/code&gt; = bracket&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;(&lt;/code&gt; &amp;amp; &lt;code&gt;)&lt;/code&gt; = parentheses (or actually sometimes just &quot;paren&quot; since my compiler refers to them as 'leftparen' and 'rightparen' :D)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;{&lt;/code&gt; &amp;amp; &lt;code&gt;}&lt;/code&gt; = brace&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;it's short and distinctive and people seem to understand :)&lt;/p&gt;&#xA;" OwnerUserId="667" LastEditorUserId="667" LastEditorDisplayName="" LastEditDate="2010-10-12T08:31:24.143" LastActivityDate="2010-10-12T08:31:24.143" />
  <row Id="11081" PostTypeId="2" ParentId="11077" CreationDate="2010-10-11T19:47:00.913" Score="103" ViewCount="" Body="&lt;h1&gt;Brace&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;Can also be called a &lt;em&gt;curly&lt;/em&gt; brace, if so inclined.&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;() are &lt;strong&gt;parentheses&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[] are &lt;strong&gt;brackets&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;{} are &lt;strong&gt;braces&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2011-01-17T17:20:30.977" LastActivityDate="2011-01-17T17:20:30.977" CommentCount="11" />
  <row Id="11082" PostTypeId="2" ParentId="11077" CreationDate="2010-10-11T19:49:27.210" Score="0" ViewCount="" Body="&lt;p&gt;Curly or brace brackets are the terms I'm use most for those types of brackets.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-11T19:49:27.210" />
  <row Id="11083" PostTypeId="2" ParentId="11076" CreationDate="2010-10-11T19:53:44.970" Score="0" ViewCount="" Body="&lt;p&gt;Knowledge is power, the power to act intelligently. If you focus too much on learning and never apply your knowledge, you could have just as well learnt nothing at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just start doing instead of thinking.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-10-11T19:53:44.970" CommentCount="4" />
  <row Id="11084" PostTypeId="2" ParentId="11077" CreationDate="2010-10-11T19:55:44.530" Score="6" ViewCount="" Body="&lt;p&gt;I call it a curly brace.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems the official terms from &lt;a href=&quot;http://unicode.org/charts/charindex.html&quot; rel=&quot;nofollow&quot;&gt;Unicode&lt;/a&gt; are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;BRACKET, LEFT CURLY&lt;/li&gt;&#xA;&lt;li&gt;BRACKET, RIGHT CURLY&lt;/li&gt;&#xA;&lt;li&gt;CURLY BRACKET, LEFT&lt;/li&gt;&#xA;&lt;li&gt;CURLY BRACKET, RIGHT&lt;/li&gt;&#xA;&lt;li&gt;LEFT CURLY BRACKET&lt;/li&gt;&#xA;&lt;li&gt;RIGHT CURLY BRACKET&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;with alternate names of&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;brace, opening&lt;/li&gt;&#xA;&lt;li&gt;brace, closing&lt;/li&gt;&#xA;&lt;li&gt;bracket, opening curly&lt;/li&gt;&#xA;&lt;li&gt;bracket, closing curly&lt;/li&gt;&#xA;&lt;li&gt;curly bracket, opening&lt;/li&gt;&#xA;&lt;li&gt;curly bracket, closing&lt;/li&gt;&#xA;&lt;li&gt;opening brace&lt;/li&gt;&#xA;&lt;li&gt;closing brace&lt;/li&gt;&#xA;&lt;li&gt;opening curly bracket&lt;/li&gt;&#xA;&lt;li&gt;closing curly bracket&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5027" LastEditorUserId="5027" LastEditorDisplayName="" LastEditDate="2010-10-11T20:09:43.403" LastActivityDate="2010-10-11T20:09:43.403" />
  <row Id="11085" PostTypeId="1" AcceptedAnswerId="11097" CreationDate="2010-10-11T19:59:09.217" Score="7" ViewCount="516" Body="&lt;p&gt;I believe the question says it all. I find myself sometimes unable to code, or not wanting to code. How do you get over there bumps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also do you find when you have no time to code you want to, then when you have all the time in the world you cant seem to get yourself to focus?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to overcome this issue because this long weekend was completely unproductive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="2446" LastActivityDate="2011-03-05T01:52:52.143" Title="What do you do, when you are burnt out from programming?" Tags="&lt;coding&gt;&lt;programming&gt;&lt;burnout&gt;" AnswerCount="11" CommentCount="3" FavoriteCount="3" />
  <row Id="11086" PostTypeId="2" ParentId="11012" CreationDate="2010-10-11T19:59:38.220" Score="-2" ViewCount="" Body="&lt;p&gt;Most people in academic circles haven't spent much time outside of it. My guess is most professors simply lack the practical experience to know the value of TDD.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-10-11T19:59:38.220" />
  <row Id="11087" PostTypeId="2" ParentId="11050" CreationDate="2010-10-11T20:00:36.763" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/8721/how-to-develop-my-coding-skills/9805#9805&quot;&gt;this is my standard answer&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've implemented either a betting pool or a Baccarat game in almost every language I've learned. This should wake up your dormant programmer neurons. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This type of software covers&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Dates and times, with calculations&lt;/li&gt;&#xA;&lt;li&gt;Currency types and things that can be converted to and from currency&lt;/li&gt;&#xA;&lt;li&gt;A discrete set of rules that is easy to test&lt;/li&gt;&#xA;&lt;li&gt;States, transition between states and multiple entities responsible for state transition&lt;/li&gt;&#xA;&lt;li&gt;Multiple users with different views of the same model &lt;/li&gt;&#xA;&lt;li&gt;Multiple end conditions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I like this project because it has tons of small parts that can be written interdependently but won't be done-done until all the parts are done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Multiple player blackjack and poker would work also.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is assuming you are looking to learn the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Modern strongly typed dynamic language&lt;/li&gt;&#xA;&lt;li&gt;Web app programming&lt;/li&gt;&#xA;&lt;li&gt;Modern dev workflow with unit testing, automated build &amp;amp; deploy, version control&lt;/li&gt;&#xA;&lt;li&gt;Current trends in UI&lt;/li&gt;&#xA;&lt;li&gt;Current IDE &amp;amp; VCS etc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I would recommend ruby or python as the language with either Django (python) or Sinatra (ruby) as the web tier. Sinatra apps look (and can act like) command line apps so there is that advantage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both Ruby and python have really nice unit testing options. With ruby you can start with the basic test:unit and then learn RSpec. With python, start with unittest then look at Pyramid or Cheese Shop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use subversion as the VCS. All the new DVCS borrow from svn for their syntax. Learn SVN (it should be very similar to the old VCS you used) and then look at git and mercurial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use Eclipse if you want and IDE. If you used to know vi really well, try VIM. if you're on a Mac, try textmate. On windows, notepad++ is pretty good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One caveat is that in my day job I work on financial systems and there is a huge overlap between things to consider when writing a multiplayer game of chance and a trading system.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-11T20:00:36.763" />
  <row Id="11088" PostTypeId="2" ParentId="10880" CreationDate="2010-10-11T20:05:02.713" Score="2" ViewCount="" Body="&lt;p&gt;TUMBLR! I feel that this platform, allows for the haphazardness of blogging when programmers come to mind. They can post interesting links and cool code snippets as well as share with other programmers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would for sure give tumblr a look.&lt;/p&gt;&#xA;" OwnerUserId="2446" LastActivityDate="2010-10-11T20:05:02.713" />
  <row Id="11089" PostTypeId="2" ParentId="11077" CreationDate="2010-10-11T20:08:09.740" Score="57" ViewCount="" Body="&lt;h1&gt;Open 'Stache&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;They're moustaches, didn't you know? &lt;strong&gt;{&lt;/strong&gt; and &lt;strong&gt;}&lt;/strong&gt; are open 'stache and close 'stache, respectively.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;:-{|&lt;/p&gt;&#xA;&#xA;&lt;p&gt;:-}|&lt;/p&gt;&#xA;" OwnerUserId="1360" LastActivityDate="2010-10-11T20:08:09.740" CommentCount="6" />
  <row Id="11090" PostTypeId="2" ParentId="11077" CreationDate="2010-10-11T20:11:51.790" Score="11" ViewCount="" Body="&lt;h2&gt;Left and Right Squiggly&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I only catch myself and call it &quot;curly brace&quot; if I'm in the presence of someone who will judge me by my calling it a squiggly.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-11T20:11:51.790" CommentCount="3" />
  <row Id="11091" PostTypeId="2" ParentId="11085" CreationDate="2010-10-11T20:14:25.683" Score="1" ViewCount="" Body="&lt;p&gt;Go play &lt;a href=&quot;http://halo.xbox.com/en-us&quot; rel=&quot;nofollow&quot;&gt;Halo&lt;/a&gt; or &lt;a href=&quot;http://nethack.org&quot; rel=&quot;nofollow&quot;&gt;Nethack&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-11T20:14:25.683" />
  <row Id="11092" PostTypeId="2" ParentId="11077" CreationDate="2010-10-11T20:15:22.377" Score="0" ViewCount="" Body="&lt;p&gt;I've never said &quot;Brace&quot; only &quot;Bracket&quot;, could be a 'sconsin thing though.  &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-11T20:15:22.377" CommentCount="1" />
  <row Id="11093" PostTypeId="1" AcceptedAnswerId="11237" CreationDate="2010-10-11T20:18:22.087" Score="3" ViewCount="343" Body="&lt;p&gt;When I first learnt to program back in the mid-80s I used to write simple programs based on articles in science or maths text books/magazines (Byte magazine had some nice articles, and &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0387966080&quot; rel=&quot;nofollow&quot;&gt;The Science of Fractal Images&lt;/a&gt; is one book that I remember well). These included things like a simple planetary simulator (which I later adapted into a flocking simulator after seeing a brief clip of &lt;a href=&quot;http://www.red3d.com/cwr/boids/&quot; rel=&quot;nofollow&quot;&gt;Boids&lt;/a&gt; on TV), various graphing/plotting odds and ends, some fractal generators (hey it was the 80s!) and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently I've been devoting some of my spare time to explore unfamiliar languages and frameworks - and I like the idea of reliving my youth a bit. Does anyone have any recommendations for books or magazines that could inspire projects like these? I guess pop-science or maths are possibilities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd rather the books themselves weren't directly related to programming, or if they are I'd rather they didn't spell out solutions/implementations of whatever they're discussing, but instead cover topics that would lend themselves to some sort of personal project.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2011-05-28T18:50:07.217" Title="Books that could inspire a personal programming project" Tags="&lt;books&gt;&lt;personal-projects&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="11094" PostTypeId="2" ParentId="11085" CreationDate="2010-10-11T20:19:00.823" Score="2" ViewCount="" Body="&lt;p&gt;Don't give up programming completely but take a break from coding for a while. Over doing it does have that affect.&lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-10-11T20:19:00.823" />
  <row Id="11095" PostTypeId="2" ParentId="11085" CreationDate="2010-10-11T20:19:08.273" Score="5" ViewCount="" Body="&lt;p&gt;I read technical books if I'm at work, fiction if I'm at home&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-11T20:19:08.273" CommentCount="1" />
  <row Id="11096" PostTypeId="2" ParentId="11076" CreationDate="2010-10-11T20:22:08.617" Score="2" ViewCount="" Body="&lt;p&gt;I feel your pain. I have a somewhat similar situation where I started a master and I found I just love doing research but I also have to do a number of credits of classes. The problem is that the classes do not interest me. Well that's not true, some looks interesting but like you I would prefer only to take what interest me (theory) and don't care much about following their program including required work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had not much problem during the B.Sc. but now I think I got to a stage where I feel like I learnt enough breadth of knowledge and really don't want to be hammered more stuff that I don't care about. I would like to be able to just takes what interest me, also at the rate that interest me (hint: hammered above means that I don't like their way of teaching).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the solution I don't know. It depend on what age are you or what you want to do later. If you think you need the degree you don't have much choice to go along and grind. It sucks but it's how the system works. I, like you, would love to have an alternative, but education is a business and being hammered stuff so that they can go out of school and earn money is what other people seems to want so it would be hard to change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could try to find a better school but from your description (students are left somewhat to themselves) it's probably the best you can find (for you, if I read you right).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another choice could be to try to get a job now without a degree but that's risky and well, the industry will be worse than school to learn stuff (tight deadline and all that) so I'm not sure about this either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end the choice is up to you but I think I would just drag along and try to makes the most out of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A last solution would be to just takes less than the required full load and you will then have time to study what interest you in your free time. I think that could be the best and more balanced solution. This is somewhat what I choose and I just love to be able to looks at lots of subject without needing to proves anything to anyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, I think you would probably likes it too. There's not much downside except you will takes more time in school. You could wait to haves most of the basic classes done though, not to lag behind you classmates. I think friends are important and you should probably benefit from having a somewhat stable pool of co-students.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end I think you need to takes your times thinking about this as this is an important choice that will probably shape what you will do later so takes a lot of times to think. Just remember, no you are not the only one, but we're too outnumbered and we can't do much against the big and mean system that's aldready in place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck. &lt;/p&gt;&#xA;" OwnerUserId="3063" LastActivityDate="2010-10-11T20:22:08.617" />
  <row Id="11097" PostTypeId="2" ParentId="11085" CreationDate="2010-10-11T20:22:58.457" Score="12" ViewCount="" Body="&lt;p&gt;I goto &lt;a href=&quot;http://stackoverflow.com&quot;&gt;Stack Overflow&lt;/a&gt; and see what I can do to get my rep up.&lt;/p&gt;&#xA;" OwnerUserId="119" LastActivityDate="2010-10-11T20:22:58.457" CommentCount="2" />
  <row Id="11098" PostTypeId="1" AcceptedAnswerId="11101" CreationDate="2010-10-11T20:25:03.927" Score="8" ViewCount="400" Body="&lt;p&gt;I work at a business who has a software side and manufacturing side. The software we write is sold as a package along with other hardware that our customers purchase. I basically work in a warehouse. There is one door that seperates the engineers from the warehouse noise. I have asked for noise cancelling walls to be put in. I have asked multiple times over 6 months to be moved up front to one of two vacant sales offices, but they seem reluctant to let an Engineer move into a sales office. In fact, sales are the only ones with windows and they get commission though they make mistakes or overpromise to the customer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, my question is how can I get better working conditions without necessarily having to leave my current job? It is very hard to work and concentrate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think I can finally close this chapter in my life. I have moved on to a large corporation which follows CMMI religiously and has even started using Agile in many of its projects. Nevertheless, there is organization, respect, and genuine care for the engineers and scientists that work for them. Pierre was right - quitting was the right answer. My life does not nearly have the amount of stress it used to have because I now work for a place that is organized and knows what it wants its engineers to do along with treating them like they should be treated. &lt;/p&gt;&#xA;" OwnerUserId="4459" LastEditorUserId="4459" LastEditorDisplayName="" LastEditDate="2011-05-28T20:50:04.013" LastActivityDate="2011-05-28T20:50:04.013" Title="How do you get better working conditions?" Tags="&lt;working-conditions&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="11099" PostTypeId="2" ParentId="11093" CreationDate="2010-10-11T20:27:08.423" Score="3" ViewCount="" Body="&lt;p&gt;I think you should try to be inspired by a problem you currently have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to solve it using a software you will write.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example: no multi room music distribution software meet my requirements. I plan to build one.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-11T20:27:08.423" CommentCount="7" />
  <row Id="11100" PostTypeId="2" ParentId="39" CreationDate="2010-10-11T20:28:17.967" Score="4" ViewCount="" Body="&lt;p&gt;From my first programming class (FORTRAN IV):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What is a computer?&lt;br&gt;&#xA;  It it a box with a little man in it.&lt;br&gt;&#xA;  This man is blazing fast. He can do millions of instructions per second.&lt;br&gt;&#xA;  But he is myopic. He's so myopic that he can see only one instruction at a time.&lt;br&gt;&#xA;  He's also not very smart, he'll attempt to do exactly what you tell him to do.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This has become the base of my philosophy of programming and debugging.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-10-11T22:35:34.410" CommunityOwnedDate="2010-10-11T20:28:17.967" />
  <row Id="11101" PostTypeId="2" ParentId="11098" CreationDate="2010-10-11T20:29:35.997" Score="21" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Quit&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This will make things move.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They will eventually try to keep you by giving you what you need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OR&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will leave and find a job with better working conditions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I bet 4039 reputation points that the solution 1 is going to happen&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-11T20:53:31.617" LastActivityDate="2010-10-11T20:53:31.617" CommentCount="13" />
  <row Id="11102" PostTypeId="2" ParentId="11098" CreationDate="2010-10-11T20:29:38.440" Score="12" ViewCount="" Body="&lt;p&gt;I would invest in noise canceling headphones while I looked for another job. &lt;/p&gt;&#xA;" OwnerUserId="119" LastActivityDate="2010-10-11T20:29:38.440" />
  <row Id="11103" PostTypeId="2" ParentId="11085" CreationDate="2010-10-11T20:30:53.803" Score="3" ViewCount="" Body="&lt;p&gt;Go to a movie that you can lose yourself in for a couple of hours.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-11T20:30:53.803" />
  <row Id="11104" PostTypeId="2" ParentId="11098" CreationDate="2010-10-11T20:37:25.597" Score="3" ViewCount="" Body="&lt;p&gt;While I agree (and upvoted) the two options above, one other option is to ask if you can work from home. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you think you can accomplish the same amount of work (or more) from home and your employer balks, ask for one or two days a week on a trial basis; then, if(when) they notice the productivity gains, ask for a few more days a week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they still say no, I'd either buy my own headphones or get a new job.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-10-11T20:37:25.597" CommentCount="5" />
  <row Id="11105" PostTypeId="2" ParentId="11049" CreationDate="2010-10-11T20:38:35.050" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Encourage &lt;a href=&quot;http://en.wikipedia.org/wiki/Pair_programming&quot; rel=&quot;nofollow&quot;&gt;pair programming&lt;/a&gt;. Destroy &lt;a href=&quot;http://www.scrum.org&quot; rel=&quot;nofollow&quot;&gt;individualism&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Use &lt;a href=&quot;http://www.agilehardware.com/pages/Planning-Poker.html&quot; rel=&quot;nofollow&quot;&gt;Planning Poker&lt;/a&gt; for estimations&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2011-05-23T15:36:50.047" LastActivityDate="2011-05-23T15:36:50.047" CommentCount="2" />
  <row Id="11106" PostTypeId="2" ParentId="10989" CreationDate="2010-10-11T20:50:29.580" Score="5" ViewCount="" Body="&lt;p&gt;Back when Linux was first written, it used features available only on the i386 CPU, which was fairly new and expensive at the time.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;That is exactly what linux does: it&#xA;  just uses a bigger subset of the 386&#xA;  features than other kernels seem to&#xA;  do.  Of course this makes the kernel&#xA;  proper unportable, but it also makes&#xA;  for a /much/ simpler design.  An&#xA;  acceptable trade-off, and one that&#xA;  made linux possible in the first&#xA;  place.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;As we went into the 21st century, the features that made the i386 unique became totally mainstream, allowing Linux to become very portable.&lt;/p&gt;&#xA;" OwnerUserId="2752" LastActivityDate="2010-10-11T20:50:29.580" CommentCount="3" />
  <row Id="11107" PostTypeId="2" ParentId="1007" CreationDate="2010-10-11T21:00:12.410" Score="5" ViewCount="" Body="&lt;p&gt;Sadly, for what is actually a highly skilled and technical role, there are a lot of cowboys out there. Far too many testers have had a long career moving from position to position being interviewed and hired by people who have no idea what testing is about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best testers I've met have:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;excellent communication skills, in order to liaise with business people and interpret/clarify requirements&lt;/li&gt;&#xA;&lt;li&gt;the ability to see the application from the perspective of a user unfamiliar with the system&lt;/li&gt;&#xA;&lt;li&gt;the patience to go through things systematically when required, and can analyse a system so that they really are going through it systematically, not just spending a lot of time&lt;/li&gt;&#xA;&lt;li&gt;a creative side to them to pick out things developers might not think of&lt;/li&gt;&#xA;&lt;li&gt;the ability to organise their own time so they spend an appropriate amount of time on exploratory testing, automation, etc rather than just focussing on a single type of testing&lt;/li&gt;&#xA;&lt;li&gt;an interest in what they do so they keep up with developments and best practices in their field&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and lastly, if the tester is working on an agile project&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;can do test automation in a structured maintainable way - I'm afraid that these days if a tester can't automate things that can be automated (and not everything can) then that tester will never end up being effective in an agile project&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1362" LastEditorUserId="1362" LastEditorDisplayName="" LastEditDate="2010-10-11T21:23:50.497" LastActivityDate="2010-10-11T21:23:50.497" CommentCount="2" />
  <row Id="11108" PostTypeId="2" ParentId="8142" CreationDate="2010-10-11T21:00:42.487" Score="4" ViewCount="" Body="&lt;p&gt;This is a great question, because there is no right answer.  Each and every situation, team, product, company, person, is different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a lot of books and websites available, some of which have already been posted (and will be posted).  I won't bother doing that here, as I'm sure others will have better ideas on those than I do.  I will just hit a couple of key points, in no particular order, from my own experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Know Your Team&lt;/strong&gt;&#xA;Sounds easy, but in practice, it's not.  I don't necessarily mean knowing everything about them (although buying at lunch once in a while doesn't hurt).  I just mean that you need to get a feel for what each person can do, and what they can't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people are better when pushed, some people are better with being left alone; most are somewhere in between.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Be Objective&lt;/strong&gt;&#xA;If you have worked with these people in the past, the biggest problem may become being objective.  You have to realistically evaluate what the people on your team are capable of, without letting friendship or dislike cloud your judgment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Be a Technical Lead, &lt;em&gt;not&lt;/em&gt; a Manager&lt;/strong&gt;&#xA;Sometimes its hard to remember that you are not really the boss.  If you have a problem with somebody in your group, you can try and deal with it yourself, to a certain point.  After that, you need to let the people that are supposed to deal with that kind of thing take care of it.  You also shouldn't be approving vacations and that sort of thing, although you will certainly need to be aware of them and plan accordingly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Delegate&lt;/strong&gt;&#xA;This was hard for me.  There was a tendency to &quot;oh, I'll just do that, it will be easier.&quot;  Do it enough, it will get you in the long run.  Plus, you will find that you don't have nearly as much time in a lead role for actually programming as you do outside that role.  No matter what it seems like at the beginning of the project, you will no doubt be involved in meetings, documentation, more meetings, time management, meetings, and hundreds of other things you don't think of as a regular code monkey.  And did I mention meetings?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Trust Your Team (but Verify)&lt;/strong&gt;&#xA;Don't waste time with weekly status meetings with the whole group, unless that would truly benefit everybody in the group.  I usually found that I cared about my 5 minutes, knew enough about what the one or two people that I was working with that I didn't really care about their 5 minutes, and really thought I was stealing company time sitting through everybody else's stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, you need to make sure that you know enough about what is going on for those &quot;surprise&quot; meetings with your supervisors or managers.  This goes back to knowing your team.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;You Might Not Be There Forever&lt;/strong&gt;&#xA;I was once the project lead where the guy who hired me was a team member, for which I had to tell him what to do.  It was awkward at first, but since we had a good working relationship, it quickly was a great benefit.  You may end up as a member of a project working for any of the others in your group, or you may even need them as a reference later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Don't Forget&lt;/strong&gt;&#xA;You weren't always a project lead.  Think about the things that worked, or didn't work, when you weren't the lead on a project.  And remember that you didn't necessarily have to like the things that did work - you may have a new found appreciation for them in your new position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-10-11T21:00:42.487" CommentCount="1" />
  <row Id="11109" PostTypeId="2" ParentId="10087" CreationDate="2010-10-11T21:07:49.240" Score="1" ViewCount="" Body="&lt;h2&gt;&lt;strong&gt;Repetition. Repetition. Repetition.&lt;/strong&gt;&lt;/h2&gt;&#xA;" OwnerUserId="4942" LastEditorUserId="4942" LastEditorDisplayName="" LastEditDate="2010-10-11T22:06:20.923" LastActivityDate="2010-10-11T22:06:20.923" CommunityOwnedDate="2010-10-11T21:07:49.240" />
  <row Id="11110" PostTypeId="2" ParentId="8104" CreationDate="2010-10-11T21:09:06.083" Score="1" ViewCount="" Body="&lt;p&gt;Is there any software company in the US besides Microsoft and FogCreek Software which provides private offices for software engineers?&lt;/p&gt;&#xA;" OwnerUserId="4378" LastActivityDate="2010-10-11T21:09:06.083" CommunityOwnedDate="2011-02-20T23:49:56.727" CommentCount="1" />
  <row Id="11111" PostTypeId="2" ParentId="11077" CreationDate="2010-10-11T21:09:29.883" Score="18" ViewCount="" Body="&lt;p&gt;In Swedish we often call them &lt;strong&gt;&quot;måsvingar&quot;&lt;/strong&gt; which translates directly to &lt;strong&gt;&quot;gull wings&quot;&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-11T21:09:29.883" CommentCount="2" />
  <row Id="11112" PostTypeId="1" CreationDate="2010-10-11T21:12:27.460" Score="4" ViewCount="336" Body="&lt;p&gt;What are practical alternatives to the usual monitor, mouse and keyboard?  Something perhaps that allows more moving around, something other than the common sit-at-desk posture, or just something sufficiently different to make everyday work more interesting?  Ergonomic, sure, but that's not as important as just being seriously different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But not a million dollar VR system (it's out of my budget!)&lt;/p&gt;&#xA;" OwnerUserId="4280" LastActivityDate="2010-10-12T00:04:44.483" CommunityOwnedDate="2010-10-11T21:12:27.460" Title="Alternatives to usual keyboard + mouse + monitor" Tags="&lt;keyboard&gt;&lt;ergonomics&gt;&lt;desk&gt;&lt;alternative&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="1" />
  <row Id="11113" PostTypeId="2" ParentId="11093" CreationDate="2010-10-11T21:15:02.177" Score="0" ViewCount="" Body="&lt;p&gt;After finishing reading some of the books I have at the moment, I'm going to buy a book about operating systems (&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0470128720&quot; rel=&quot;nofollow&quot;&gt;Operating System Concepts&lt;/a&gt;) and a book about compilers (&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321486811&quot; rel=&quot;nofollow&quot;&gt;Compilers: Principles, Techniques &amp;amp; Tools&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm hoping that the former will inspire me to write a small operating system and the latter to write a full-fledged compiler for some language of choice.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-11T21:15:02.177" CommentCount="1" />
  <row Id="11114" PostTypeId="2" ParentId="11112" CreationDate="2010-10-11T21:16:44.350" Score="4" ViewCount="" Body="&lt;h1&gt;Tablet PC&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Harder for coding, but meetings can be lots more fun (comparatively) and with OneNote/Evernote now able to search handwritten text in your notes, there's no reason to be forced to type your notes anymore.  Plus, people in meeting will feel like you're paying attention!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/9NSxW.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-11T21:16:44.350" CommunityOwnedDate="2010-10-11T21:16:44.350" CommentCount="5" />
  <row Id="11115" PostTypeId="2" ParentId="1007" CreationDate="2010-10-11T21:18:32.410" Score="4" ViewCount="" Body="&lt;p&gt;Here are a few that I'd add:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Smart - These people come across as rather bright or deep thinkers.  Boundary cases come quickly to these people it seems.  They may ask the, &quot;What about. .&quot; questions a lot.&lt;/li&gt;&#xA;&lt;li&gt;Attention to detail - Listing reproduction steps, stating the difference between expected and actual results, etc.  Thorough in their work.&lt;/li&gt;&#xA;&lt;li&gt;Self-motivated - The better testers I know seem to drive themselves to be thorough and go, go, go! Get things done would be another way to state this to my mind.&lt;/li&gt;&#xA;&lt;li&gt;Analytical - Arguing over priority or severity with calm, rational arguments.  Understanding what bugs are going to get fixed ASAP and which are too cosmetic, e.g. a bad color choice.&lt;/li&gt;&#xA;&lt;li&gt;Tenacity - They stuck to their interpretation unless a project manager, business analyst, or someone with the power changed the requirements to overrule them.  Not a push-over for another way to put this.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-11T21:18:32.410" />
  <row Id="11116" PostTypeId="2" ParentId="11112" CreationDate="2010-10-11T21:21:46.787" Score="0" ViewCount="" Body="&lt;h3&gt;10 Dollar Car VR system?&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I've always thought it might be fun to put my laptop on the passenger seat and code on the commute, but I'm too busy listening to LibriVox.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-11T21:21:46.787" CommunityOwnedDate="2010-10-11T21:21:46.787" CommentCount="1" />
  <row Id="11117" PostTypeId="2" ParentId="11112" CreationDate="2010-10-11T21:24:07.843" Score="5" ViewCount="" Body="&lt;h3&gt;Laptop Harness&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/zdydA.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You won't win any points for fashion, but you will get some mobility.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-11T21:24:07.843" CommunityOwnedDate="2010-10-11T21:24:07.843" CommentCount="6" />
  <row Id="11118" PostTypeId="2" ParentId="10989" CreationDate="2010-10-11T21:38:56.810" Score="3" ViewCount="" Body="&lt;p&gt;Tanenbaum makes the point that much of Linux is written in a non-modular way to leverage the 386 CPU, state of the art at the time, instead of making the CPU interaction be a component, and thus very easily swappable. Tanenbaum essentially believes that the fact that the Kernel is so monolithic and tied to 386 CPU makes it very difficult to,&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Port Linux itself to another CPU platform (Obviously incorrect, AMD64, PowerPC, etc)&lt;/li&gt;&#xA;&lt;li&gt;Port Programs written for linux x86 to another CPU architecture (also incorrect)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The linux camp makes several points, among which:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Linux offers multithreaded filesystem as part of the design&lt;/li&gt;&#xA;&lt;li&gt;Microkernel, while interesting and intuitive are not very performant&lt;/li&gt;&#xA;&lt;li&gt;The portable API adherence makes the portability issue more or a niggle as opposed to a blocker.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3968" LastActivityDate="2010-10-11T21:38:56.810" CommentCount="4" />
  <row Id="11119" PostTypeId="2" ParentId="3849" CreationDate="2010-10-11T21:40:18.990" Score="2" ViewCount="" Body="&lt;p&gt;My take is that you need to factor in their abilities beyond just their coding ability.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Be able to deliver what is being asked for the first time (not some large number of bug reports later). If you can't deliver, all the beautiful code you write is meaningless. &lt;/li&gt;&#xA;&lt;li&gt;Knows the &lt;em&gt;problems&lt;/em&gt; that can arise on their platform and plans for them before they become problems.  &lt;/li&gt;&#xA;&lt;li&gt;Be able to write code that is clean, succinct, understandable, secure, extensible, and maintainable.&lt;/li&gt;&#xA;&lt;li&gt;Understands the domain they are working in to the point that they can deliver the sales speech and can anticipate the next requirement. This feeds into #1 as they will be able to see potential usability and business rule issues before the code gets committed.&lt;/li&gt;&#xA;&lt;li&gt;Knows how to articulate an idea, not just code it up.&lt;/li&gt;&#xA;&lt;li&gt;Plays well with others.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-10-11T21:40:18.990" />
  <row Id="11120" PostTypeId="1" AcceptedAnswerId="11129" CreationDate="2010-10-11T21:48:53.743" Score="8" ViewCount="606" Body="&lt;p&gt;The company I am leaving has asked that I make myself available to answer questions and/or debug programs occasionally should the need arise. I'm not opposed to this. After searching google for some king of standard contract for this sort of thing, I didn't see any. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a standard contract for this sort of thing that you use?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any other steps I should take to ensure this kind of arrangement works smoothly?&lt;/p&gt;&#xA;" OwnerUserId="5040" LastActivityDate="2011-03-16T16:56:41.653" Title="Quit my job (for a new job). Old job wants me to be available for contracting. Steps to take?" Tags="&lt;contracting&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="2" />
  <row Id="11121" PostTypeId="1" AcceptedAnswerId="11127" CreationDate="2010-10-11T21:52:27.993" Score="1" ViewCount="83" Body="&lt;p&gt;Often some element of a path is variable, but the path as a whole needs to be documented in some manner for later programmers. Especially when using *nix systems, almost any character is a valid symbol for the path. Given that, I would like to delimit the variable portions of my path to prevent misunderstanding, but in a way that also survives best across different display environments (especially the browser).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Methods I have seen include (example path in users home directory):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;/home/&amp;lt;username&amp;gt;/foo - needs special escape for web browser context&lt;/li&gt;&#xA;&lt;li&gt;/home/your_username/foo - unfortunately the variable element tends to be overlooked&lt;/li&gt;&#xA;&lt;li&gt;/home/{username}/foo&lt;/li&gt;&#xA;&lt;li&gt;/home/:username/foo&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Which have you seen most often or had the most success with and why? If a double delimiter method (which seems to be the most common/successful), what lead your choice of delimiters?&lt;/p&gt;&#xA;" OwnerUserId="5038" LastActivityDate="2010-10-11T22:14:44.307" Title="Best way to delimit variable elements of a path in code documentation?" Tags="&lt;documentation&gt;&lt;variables&gt;&lt;file-structure&gt;" AnswerCount="2" />
  <row Id="11122" PostTypeId="2" ParentId="11120" CreationDate="2010-10-11T22:00:02.960" Score="6" ViewCount="" Body="&lt;p&gt;I would say &lt;em&gt;as time permits&lt;/em&gt; make yourself available for outside contracting. That means today they say &quot;We would like X hours from you next week / specific date&quot; and you say &quot;Yes / No / How about N hours?&quot;&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-11T22:00:02.960" />
  <row Id="11123" PostTypeId="2" ParentId="11121" CreationDate="2010-10-11T22:00:25.790" Score="2" ViewCount="" Body="&lt;p&gt;I'd say #1 is the clearest, and whats probably used most often.  The &amp;lt; and &gt; delimit it nicely, and clearly indicate something should be substituted there.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-11T22:00:25.790" />
  <row Id="11124" PostTypeId="2" ParentId="11120" CreationDate="2010-10-11T22:03:25.500" Score="10" ViewCount="" Body="&lt;p&gt;Pick a good hourly rate, and cash in!  Just be sure your &lt;em&gt;new&lt;/em&gt; company is ok with you doing this.  For example, they may not want you doing work for your old company if they are a competitor.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-11T22:03:25.500" CommentCount="1" />
  <row Id="11125" PostTypeId="1" CreationDate="2010-10-11T22:04:39.127" Score="4" ViewCount="817" Body="&lt;p&gt;I have an idea for a simple web application and I've heard a lot about Ruby, Ruby on Rails, Python, PHP, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But what language do you think is better to learn and have working prototypes and get the application running online really quick? (regardless of the language I already know)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;NOTE: This is not a question about the language's performance, I am just trying to find the best language to complete a working web application as fast as possible.&lt;/p&gt;&#xA;" OwnerUserId="5041" LastActivityDate="2011-04-14T20:27:48.973" ClosedDate="2011-04-14T21:15:12.600" Title="What language for fast web development would you recommend?" Tags="&lt;php&gt;&lt;python&gt;&lt;ruby-on-rails&gt;&lt;ruby&gt;" AnswerCount="11" CommentCount="4" FavoriteCount="1" />
  <row Id="11127" PostTypeId="2" ParentId="11121" CreationDate="2010-10-11T22:09:34.407" Score="1" ViewCount="" Body="&lt;p&gt;By far I've seen (and used) &lt;code&gt;/home/&amp;lt;username&amp;gt;/foo&lt;/code&gt; the most. Don't worry about special escapes for such comments because &lt;strong&gt;all of your code&lt;/strong&gt; is going to need to have those characters escaped when displayed in a browser (you may very well have statements like &lt;code&gt;echo &quot;&amp;lt;table&amp;gt;&quot;;&lt;/code&gt; in your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If escaping isn't possible for some reason, you can surround the term with spaces or underscores to prevent HTML parsing: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;/home/&amp;lt;_username_&amp;gt;/foo&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One added benefit of underscores is that some markups (like Markdown) will automatically make them italicized:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;/home/&amp;lt;&lt;em&gt;username&lt;/em&gt;&gt;/foo&lt;/p&gt;&#xA;&#xA;&lt;p&gt;making them understandable in a text editor and nicely formatted in a webpage.&lt;/p&gt;&#xA;" OwnerUserId="3881" LastEditorUserId="3881" LastEditorDisplayName="" LastEditDate="2010-10-11T22:14:44.307" LastActivityDate="2010-10-11T22:14:44.307" />
  <row Id="11129" PostTypeId="2" ParentId="11120" CreationDate="2010-10-11T22:10:17.113" Score="21" ViewCount="" Body="&lt;p&gt;You are in a good position here as your old company has asked you for help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take the following steps;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Get the agreement of your new employer&lt;/li&gt;&#xA;&lt;li&gt;Decide on how much time you are prepared to spend on this and &lt;em&gt;when&lt;/em&gt; you want to spend that time.&lt;/li&gt;&#xA;&lt;li&gt;Pick a sensible hourly rate - ask a recruitment agency in your area what the average is and charge that.&lt;/li&gt;&#xA;&lt;li&gt;Agree on how much notice your old employer must give you for a request for work.&lt;/li&gt;&#xA;&lt;li&gt;Agree when and how your old employer can contact you. You don't want them ringing you at your new employer so e-mail conversations is probably best.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Be prepared to negotiate - while you are in a good position if you ask for too high a rate (for example) they might suddenly find that they have the skills in-house after all.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-11T22:10:17.113" CommentCount="3" />
  <row Id="11131" PostTypeId="1" AcceptedAnswerId="11137" CreationDate="2010-10-11T22:22:59.047" Score="2" ViewCount="362" Body="&lt;p&gt;&lt;strong&gt;Explicit warning: I'm new in C&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unlike Java, C forces the programmer to carefully allocate memory and keep track of it. I was wondering do you have to say to the compiler &quot;free (array)&quot; for every single array/variable you create? Or is there some kind of 'behind the scenes' magic that will get rid of them after execution finishes.&lt;/p&gt;&#xA;" OwnerUserId="5035" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-03-14T23:27:49.890" LastActivityDate="2011-03-14T23:27:49.890" ClosedDate="2010-10-16T17:44:33.003" Title="Freeing memory in C" Tags="&lt;best-practices&gt;&lt;recommendations&gt;" AnswerCount="4" CommentCount="5" />
  <row Id="11133" PostTypeId="2" ParentId="11125" CreationDate="2010-10-11T22:27:20.280" Score="2" ViewCount="" Body="&lt;p&gt;For speed I would choose PHP, personally it has the fastest prototype to production speed compared to when I work in python or ruby. Haven't tried ruby-on-rails thou.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to work in a framework these 2 are my favorites.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://codeigniter.com/&quot; rel=&quot;nofollow&quot;&gt;http://codeigniter.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;cakephp.org/&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5035" LastActivityDate="2010-10-11T22:27:20.280" />
  <row Id="11135" PostTypeId="2" ParentId="11125" CreationDate="2010-10-11T22:37:44.547" Score="2" ViewCount="" Body="&lt;p&gt;If you have experience in any language that is suitable for web development, it is hands-down going to be the fastest way to get your idea working. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, a bit of clarification: Ruby is a language, and Rails is a framework written in Ruby. Ruby on Rails refers to the Rails framework. Make sense?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP is verbose and not very fun to develop in. I've been using it for years and years, and I'd still recommend it to a company because you can find lots of developers that know it and it's fairly inexpensive to hire them. Because of the verbosity, the lack of mature build/deployment tools, and shitty frameworks, building a web app from the ground up with PHP can take a while. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Python used to be a very insignificant language with a relatively limited popularity. Then something big happened that we refer to as Google, and they took it from relative obscurity to popularity. There are a number of frameworks for it, the most popular (TMK) is Django. It's a good language to learn and most Python developers are happy using it, but I can't really say it's going to be the fastest. It's good, but it just doesn't have the same hype about rapid prototyping. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Circling back to Ruby, it's a gorgeous language that is really enjoyable to write. It is both flexible and powerful with lots of ways to get the same thing done in an efficient manner. Rails accelerates that and gives you a set of strongly opinionated tools that let you worry about your application instead of figuring out the best way to structure files and whatnot. Between Ruby and Rails, there are a host of deployment and build tools, plugins and gems, generators, etc. to make your life a breeze.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're going to learn a language/framework and build an application, and you want to be able to do it as quickly as you can feasibly do it, I can't think of a more suitable set of tools than Ruby on Rails.&lt;/p&gt;&#xA;" OwnerUserId="5046" LastActivityDate="2010-10-11T22:37:44.547" CommentCount="11" />
  <row Id="11136" PostTypeId="2" ParentId="10930" CreationDate="2010-10-11T22:58:44.760" Score="1" ViewCount="" Body="&lt;p&gt;You can give Lego NXT a try. Fun for the kids to build a simple robot and give it simple instructions to complete simple tasks using their UI-based programming interface.&lt;/p&gt;&#xA;" OwnerUserId="117" LastActivityDate="2010-10-11T22:58:44.760" />
  <row Id="11137" PostTypeId="2" ParentId="11131" CreationDate="2010-10-11T22:59:57.410" Score="-3" ViewCount="" Body="&lt;p&gt;Items that are created for you will be cleaned up automatically and that is done for you using the stack.  When you allocate something and assign it to a pointer it is allocated on the heap.  You have to then free this allocated memory.  Even though this might sound easy it is one of the hardest things to get totally correct when your program gets complicated.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;“There are two ways to write&#xA;  error-free programs; only the third&#xA;  one works.” (Alan J. Perlis)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="119" LastEditorUserId="119" LastEditorDisplayName="" LastEditDate="2010-10-16T17:03:15.037" LastActivityDate="2010-10-16T17:03:15.037" CommentCount="8" />
  <row Id="11139" PostTypeId="2" ParentId="11112" CreationDate="2010-10-11T23:05:43.317" Score="0" ViewCount="" Body="&lt;p&gt;Using your camera as your mouse instead. &lt;/p&gt;&#xA;" OwnerUserId="117" LastActivityDate="2010-10-11T23:05:43.317" CommunityOwnedDate="2010-10-11T23:05:43.317" CommentCount="3" />
  <row Id="11140" PostTypeId="2" ParentId="11131" CreationDate="2010-10-11T23:10:59.097" Score="6" ViewCount="" Body="&lt;p&gt;You don't have to free numbers.  What you have to free is anything that a pointer points to, when a pointer is allocated dynamically.  So if you call malloc() and receive a pointer to some dynamically allocated memory, then that pointer has to be freed once you're done with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's actually not too difficult for a competent programmer to keep track of, pro-GC ranting notwithstanding.  Just remember the Single Ownership Principle:  Arrange your code so that every piece of dynamic memory has one single owner, that will hold a reference to it until it's no longer needed, and then free it immediately.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-11T23:10:59.097" CommentCount="3" />
  <row Id="11141" PostTypeId="2" ParentId="11125" CreationDate="2010-10-11T23:11:57.283" Score="2" ViewCount="" Body="&lt;h2&gt;PHP&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;You can quickly and easily throw together a decent site in PHP even without a framework (though a framework helps quite a bit).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you haven't had any experience with one of the mentioned languages then you might be better off trying them out before picking one. Experience goes a long ways. I know some Perl people who could build you a new Facebook faster then I can open up VIM.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;If you need a blogging engine, check out ROR though, there is that super simple &lt;code&gt;rails new blog&lt;/code&gt; command they use in the screen casts.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-11T23:11:57.283" CommentCount="13" />
  <row Id="11142" PostTypeId="2" ParentId="11085" CreationDate="2010-10-11T23:12:44.913" Score="1" ViewCount="" Body="&lt;p&gt;When my mind is about to burst (typically from too much programming) I usually just get away from the computer. I'll sit on my bed and practice playing the guitar. It takes your mind away from the stress and the problems you're having. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd recommend finding a hobby that doesn't require much thinking and isn't related to computers. Any physical activity is a great way of taking a break. You'll find that you'll have a clear head when you have to get back to work, resulting in better productivity. There's no use coding when you just &lt;em&gt;don't feel like it&lt;/em&gt;. Don't make it an obligation (if you have that sort of liberty), make it something you enjoy doing.&lt;/p&gt;&#xA;" OwnerUserId="3682" LastActivityDate="2010-10-11T23:12:44.913" />
  <row Id="11143" PostTypeId="2" ParentId="11077" CreationDate="2010-10-11T23:14:34.957" Score="28" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;US English&lt;/strong&gt;: (parentheses); [brackets]; {braces}.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;British English&lt;/strong&gt;: (brackets) or (round brackets) or (parentheses); [square brackets]; {curly brackets}.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, for obvious demographic reasons the US terms are understood and sometimes used in the UK too.  I'm not sure about other English-speaking countries.&lt;/p&gt;&#xA;" OwnerUserId="5049" LastActivityDate="2010-10-11T23:14:34.957" CommentCount="6" />
  <row Id="11145" PostTypeId="2" ParentId="11120" CreationDate="2010-10-11T23:16:55.530" Score="3" ViewCount="" Body="&lt;p&gt;I'm in the same situation. I have a work request sheet, which is basically like a detailed case diagram. Whenever they want me to do work, they fill out:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Name&lt;/li&gt;&#xA;&lt;li&gt;Pre-Conditions&lt;/li&gt;&#xA;&lt;li&gt;Steps to perform&lt;/li&gt;&#xA;&lt;li&gt;Post-Conditions&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I know the internals a bit better, so I'll adjust the pre/pos conditions and maybe add/remove some steps as necessary. They OK the changes, and I provide an estimate of how long it'll take. They agree to that, and I start working. And I bill through the nose. I left there for a reason.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-11T23:16:55.530" CommentCount="1" />
  <row Id="11146" PostTypeId="2" ParentId="11012" CreationDate="2010-10-11T23:20:29.127" Score="0" ViewCount="" Body="&lt;p&gt;It IS - check out HtDP: &lt;a href=&quot;http://www.htdp.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.htdp.org/&lt;/a&gt;     &lt;/p&gt;&#xA;" OwnerUserId="5048" LastActivityDate="2010-10-11T23:20:29.127" />
  <row Id="11147" PostTypeId="1" AcceptedAnswerId="21793" CreationDate="2010-10-11T23:27:51.643" Score="3" ViewCount="166" Body="&lt;p&gt;After having been fully spoiled by Navicat Premium for PostgreSQL and MySQL, I enter the SQL Server world and find that the management studio doesn't hold a candle to Navicat, at least as it relates to viewing data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fron your experience, what are the &lt;strong&gt;really good&lt;/strong&gt; programmer tools for Microsoft SQL Server 2008?&lt;/p&gt;&#xA;" OwnerUserId="5050" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-07T13:00:24.193" LastActivityDate="2010-11-26T21:21:06.363" Title="Navicat type tool for Microsoft SQL Server" Tags="&lt;database-development&gt;&lt;microsoft&gt;&lt;sql-server&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="1" />
  <row Id="11148" PostTypeId="2" ParentId="11012" CreationDate="2010-10-11T23:36:34.583" Score="0" ViewCount="" Body="&lt;p&gt;The question betrays a misunderstanding of the purpose of university. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The broad goal of university is to educate the attendees in a wide variety of subjects and to pursue research enriching the world around it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Computer science is a study of algorithms and data representation, the physical devices used to represent same, and the mathematics underlying same. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;em&gt;general tool&lt;/em&gt; is programming. &lt;em&gt;A&lt;/em&gt; tool for larger-scale programs is TDD, which requires fairly specialized knowledge to get running and to write tests against. Most universities I've read curricula from require a course in software engineering, which is an exposure to larger-scale software development ideas. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many universities seem to have automated assignment submission. Except since professors weren't in style enough to call it &quot;TDD&quot; and have green pixels light up, they didn't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And how in the &lt;em&gt;world&lt;/em&gt; are beginners going to write a test when they struggle to figure out how to write basic control structures?  &lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-11T23:36:34.583" />
  <row Id="11149" PostTypeId="2" ParentId="11120" CreationDate="2010-10-11T23:50:07.127" Score="8" ViewCount="" Body="&lt;p&gt;I'm going to go against the grain here a little bit here...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You've got a new job. You had good reasons to leave the last place and go find a new job - whether it be topic, pay, conditions, lack of career progression opportunities, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your new job requires 100% of your attention while you're there. If they sense you are 'moon lighting' by keeping the old job going, they'll be annoyed and you'll be in trouble. Do you want this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you've already left your previous job, if the post matters to them, they'll be looking to hire someone to take over from where you left off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If not, they'll be looking to get away from whatever projects you were keeping going before you left.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either way, the amount of work your previous employer has for you to do is probably quite low and you will have to give up your evenings and weekends to work for them, so you are perfectly entitled to charge whatever you like for contract rates, but please bear in mind the following:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Whatever you charge (say $180/hour), you have to deliver good value on this. You are not going get paid to read email or do on-line learning.&lt;/li&gt;&#xA;&lt;li&gt;Emails and phone calls to arrange, hand-over, clarify the work shouldn't really be billed, but use some common sense here.&lt;/li&gt;&#xA;&lt;li&gt;No expenses claims - how much is a phone call, really?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-11T23:50:07.127" CommentCount="2" />
  <row Id="11150" PostTypeId="2" ParentId="1007" CreationDate="2010-10-11T23:52:53.570" Score="4" ViewCount="" Body="&lt;p&gt;The best tester I ever worked with was extremely good at one thing: breaking software in a repeatable way. We could give him pretty much any software and he'd kill it within minutes. He's got the kind of skills that could probably find cheat codes on Nintendo games and Easter Eggs in professional software - just a natural, inquisitive nature and a good memory for what he tried before and didn't work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that his goals were the exact opposite of the programmers - he had a good day if he broke the software; the programmers had a good day if he &lt;em&gt;didn't&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-11T23:52:53.570" CommentCount="2" />
  <row Id="11151" PostTypeId="2" ParentId="11120" CreationDate="2010-10-12T00:02:58.340" Score="2" ViewCount="" Body="&lt;p&gt;You left. They obviously don't manage well, and hadn't balanced the risk of you leaving against the potential loss of productivity your departure leaves them faced with. You don't owe them any favours, and frankly, a new job generally needs all your attention especially if it's a full-time position. I'd be really unhappy if I found that one of ours is moonlighting. I wouldn't bother with it. You've left that mess behind, right?&lt;/p&gt;&#xA;" OwnerUserId="5056" LastActivityDate="2010-10-12T00:02:58.340" CommentCount="3" />
  <row Id="11152" PostTypeId="2" ParentId="11112" CreationDate="2010-10-12T00:04:44.483" Score="4" ViewCount="" Body="&lt;p&gt;It hit me when you said &quot;seriously different&quot; that I think this may be just what you are looking for:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/o5AFK.jpg&quot; alt=&quot;Rummy working.&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's right--Ol' Rummy uses a standing desk. The Wiki article has &lt;a href=&quot;http://en.wikipedia.org/wiki/Standing_desk#References&quot; rel=&quot;nofollow&quot;&gt;a few references and opinion articles&lt;/a&gt; you may want to examine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Standing_desk&quot; rel=&quot;nofollow&quot;&gt;standing desk&lt;/a&gt;&lt;/strong&gt;, in the words of users, makes you &lt;a href=&quot;http://www.steamboatpilot.com/news/2010/apr/11/steamboat-springs-high-school-senior-studies-peers/&quot; rel=&quot;nofollow&quot;&gt;feel more alert&lt;/a&gt; (Steamboat Springs Pilot):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Efn4t.jpg&quot; alt=&quot;Jungle-desk, bamboo.&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Notice the high stool you can sit on when you have been in one position too long.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;It's kind of a new experience, kind of exciting,” he said. “I actually feel a lot more alert. Because you’re standing up, you feel active. It keeps you on your game as opposed to sitting down and being able to relax.”&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(My own body tells me that, and I don't even use one--yet. Just consider the difference proper posture makes while sitting.) This is only natural, because more muscles are involved, and your metabolism and heart rate increase while standing, making more energy available and bringing more oxygen to the brain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An entry in Lifehacker.com's &quot;Coolest Workspace&quot; contest featured &lt;a href=&quot;http://lifehacker.com/software/coolest-workspace-contest/coolest-workspace-contest--the-adjustable-desk-170289.php&quot; rel=&quot;nofollow&quot;&gt;an adjustable standing desk&lt;/a&gt; that allowed you to sit at a normal height when necessary:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/yW5hG.gif&quot; alt=&quot;Zoop! Woosh.&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;It took awhile to get used to it, but now I actually prefer standing - at least when I'm working. I've found that standing frees me from the urge to sit at my computer for hours on end. When standing, &lt;strong&gt;I'm much more free&lt;/strong&gt; - both physically and psychologically - to move around, and find myself walking around my apartment more often. (Emphasis added)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.amazon.com/James-W.-Huston/e/B000APJOU2/ref=sr_ntt_srch_lnk_1?qid=1286838840&amp;amp;sr=8-1&quot; rel=&quot;nofollow&quot;&gt;Author&lt;/a&gt;, lawyer, and former Navy Flight Officer &lt;a href=&quot;http://www.jameswhuston.com/about/&quot; rel=&quot;nofollow&quot;&gt;James W. Huston&lt;/a&gt; writes about &lt;a href=&quot;http://www.jameswhuston.com/2010/09/my-stand-up-desk/&quot; rel=&quot;nofollow&quot;&gt;his decision to use a stand-up desk&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I thought I’d use it forty or fifty percent of the time during the day. Much to my surprise though, I probably use it ninety percent of the day....&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;...it is one of the best things I ever did. I feel much more energized, I get more done, and people even have begun commenting on how differently I work. I seem much more focused and directed, and I don’t have parts of my day where I “fade” and wish I could take a nap.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;He concludes with some advice on features, mainly the slanted surface you can lean on and a bar you can rest your foot on. He also mentions that Hemingway and Churchill also used a standing desk (Wikipedia does, too, but with no references):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/KFK7T.jpg&quot; alt=&quot;Hemmy, too!&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Okay, I think that is enough for now. I will leave you with a few more links:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.evolvingexcellence.com/blog/2009/10/stand-up-to-learn.html&quot; rel=&quot;nofollow&quot;&gt;Evolving Excellence : Stand up to Learn&lt;/a&gt; (Leadership blog)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jajjospeaks.blogspot.com/2010/01/canon-electronics-office-office-without.html&quot; rel=&quot;nofollow&quot;&gt;Canon Electronics Office : An Office Without Chairs!&lt;/a&gt; (Japanophile's Notes)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.nytimes.com/2009/02/25/us/25desks.html&quot; rel=&quot;nofollow&quot;&gt;Students Stand When Called Upon, and When Not&lt;/a&gt; (New York Times)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.wwmt.com/articles/school-1382479-desks-texas.html&quot; rel=&quot;nofollow&quot;&gt;Texas School District Uses Standing Desks&lt;/a&gt; (WWMT News)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.google.com/search?q=studies+on+standing+desks&quot; rel=&quot;nofollow&quot;&gt;Google results for &quot;studies on standing desks&quot;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I was &lt;em&gt;going&lt;/em&gt; to write a second section about &lt;a href=&quot;http://www.starling-fitness.com/archives/2009/01/02/treadmill-desk/&quot; rel=&quot;nofollow&quot;&gt;treadmill desks&lt;/a&gt;, but I think that is not necessary right now. There are &lt;a href=&quot;http://www.google.com/search?q=standing+desk+treadmill&quot; rel=&quot;nofollow&quot;&gt;many&lt;/a&gt;, &lt;a href=&quot;http://www.google.com/search?q=%22treadmill+desk%22&quot; rel=&quot;nofollow&quot;&gt;many&lt;/a&gt; search results. Here are a few:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.engadget.com/2007/10/19/steelcases-walkstation-marries-desk-and-treadmill/&quot; rel=&quot;nofollow&quot;&gt;Engadget preview&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.informationweek.com/blog/main/archives/2008/04/treadmill_desk.html;jsessionid=FVH43ALQ4POM3QE1GHPSKH4ATMY32JVN&quot; rel=&quot;nofollow&quot;&gt;It's Crazy--But Is It Crazy Enough to Be a Good Idea?&lt;/a&gt; (InformationWeek)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.treadmill-desk.com/&quot; rel=&quot;nofollow&quot;&gt;Design and Build Your Own Treadmill Desk&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2515" LastActivityDate="2010-10-12T00:04:44.483" CommunityOwnedDate="2010-10-12T00:04:44.483" CommentCount="2" />
  <row Id="11153" PostTypeId="1" CreationDate="2010-10-12T00:05:18.747" Score="69" ViewCount="3064" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/9539/what-trends-do-you-see-for-your-profession-in-30-years&quot;&gt;What trends do you see for your profession in 30 years?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a good friend who is a veteran of the technology business. We were getting coffee the other day when he told me he thinks programming will become completely automated in several years. Even if programming does not become completely automated, he argues, programmers will continue to face declining salaries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I honestly don't know what to think of this. I saw a Visual Lightswitch demo recently and thought while everyone was clapping that it is a preview of this automation my friend predicts. I also thought good luck debugging things if it doesn't work...it seems every time someone builds an abstraction, they also make more work, not less in some cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So here's my question: does programming have a future?&lt;/p&gt;&#xA;" OwnerUserId="5057" LastEditorUserId="3249" LastEditorDisplayName="" LastEditDate="2010-10-14T16:13:31.650" LastActivityDate="2010-10-15T03:16:06.597" CommunityOwnedDate="2010-10-12T18:44:01.817" ClosedDate="2010-10-15T21:53:21.923" Title="Will programmers be around in a few years?" Tags="&lt;career&gt;" AnswerCount="38" CommentCount="21" FavoriteCount="17" />
  <row Id="11154" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T00:13:20.130" Score="40" ViewCount="" Body="&lt;p&gt;Weren't they saying stuff like that in the 60s? We never got there, and likely never will. It takes a certain mind to precisely decompose problems to such a degree that they can be expressed algorithmically. The programmer's ability is this precision, and this will always be required even with some fancy abstraction that hides the precision that any unique bit of software requires. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Practically speaking, the abstractions of &quot;development-free&quot; development tools generally only address small subsets of the programmers domain. When moving to larger scale problems, these frameworks become inhibiting, and the only way to express the design of one's program is with a set of symbols that is sufficiently large to describe it. Generally, a programming language is the best choice when you reach this point.&lt;/p&gt;&#xA;" OwnerUserId="5056" LastEditorUserId="5056" LastEditorDisplayName="" LastEditDate="2010-10-12T00:19:31.397" LastActivityDate="2010-10-12T00:19:31.397" CommunityOwnedDate="2010-10-12T18:44:01.817" CommentCount="2" />
  <row Id="11155" PostTypeId="2" ParentId="11077" CreationDate="2010-10-12T00:14:02.187" Score="1" ViewCount="" Body="&lt;p&gt;I had a C prof in college that would call it a &quot;chicken lip&quot;, as it resembles the comb, beak, and wattle of a rooster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never heard it used anywhere else, but I think it's the most entertaining description out there.&lt;/p&gt;&#xA;" OwnerUserId="342" LastActivityDate="2010-10-12T00:14:02.187" />
  <row Id="11156" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T00:25:22.210" Score="131" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Programmers are problem solvers, not typists.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just because someone can drag and drop a CRUD app, doesn't mean they can do it correctly, or in the right context.  Either way, programmers identify problems and solve them.  That's what we do.  Most of our time in development is spent thinking about problems and the best way to go about solving them, not typing code.  Programming in the future may look a little different, just like we have more advanced IDEs and code generation, but thought, analysis, and critical thinking never goes out of style and will be in-demand far into the future.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-12T00:25:22.210" CommunityOwnedDate="2010-10-12T18:44:01.817" CommentCount="21" />
  <row Id="11157" PostTypeId="1" AcceptedAnswerId="11167" CreationDate="2010-10-12T00:29:20.897" Score="12" ViewCount="451" Body="&lt;p&gt;It is easy for managers and customers to appreciate what they can see. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have seen many GUI developers who are average programmers with minimal knowledge of design principles or other programming idioms. However, these shortcomings often go unnoticed, specially by management and customers, if the programmer can create an impressive looking user interface. So much so that many GUI developers I know spend hours beautifying the GUI at the expense of writing bad, unmaintainable code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, middle tier programmers who develop APIs or business functionality or database code (SQLs etc.) are at a disadvantage as there is nothing tangible to showcase. Perhaps a code reviewer or an architect may appreciate the elegance, good design, scalability etc. of code but it means nothing to the outside world. Your code may run for years without breaking, may be very easy to maintain and have good performance, yet it never elicits the 'wow' that a slick looking GUI does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion, a corollary to this is (and I am going to get heavily downvoted for this, I know) that there is less motivation for a GUI programmer to write good clean code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: I must explain here that by GUI programmer, I don't mean a full-fledged web/GUI designer but a front-end programmer e.g., a java-swing programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does the rest of the community agree ? &lt;/p&gt;&#xA;" OwnerUserId="2861" LastActivityDate="2011-04-16T20:56:48.067" Title="Do GUI programmers have an undue advantage over others ?" Tags="&lt;programming&gt;&lt;gui&gt;" AnswerCount="10" CommentCount="3" FavoriteCount="3" />
  <row Id="11158" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T00:29:44.683" Score="3" ViewCount="" Body="&lt;p&gt;That the job of programming can theorically be automated (especially on easy things) - yes. There's aldready a lot of code generator and I see that automatic code generation is probably a hot topic for the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a few years? I don't think so. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That it will make programmer totally obsolete? I don't think so. We will need highly competent programmer to write the program to automate it anyway. Lots of code monkey could be made redundant though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That it will happen before the automatisation of a ton of other high-paying job? I don't think so either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's your friends job exactly?&lt;/p&gt;&#xA;" OwnerUserId="3063" LastActivityDate="2010-10-12T00:29:44.683" CommunityOwnedDate="2010-10-12T18:44:01.817" CommentCount="14" />
  <row Id="11159" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T00:48:32.023" Score="2" ViewCount="" Body="&lt;p&gt;I think Ryan Hayes said it all &quot;Programmers are problem solvers, not typists.&quot; 4GL was meant to replace 3GL and remove programmers. &quot; the term 4GL was first used formally by James Martin in his 1982 book Applications Development Without Programmers&quot;. 4GL was around in the late 60s and 70s.Today it's a 3GL programming world, and there no sign of 4GL or anything else. Perhaps in the future most programmers will only be analytical problem solvers however they'll always be a market for low-level programming. &lt;/p&gt;&#xA;" OwnerUserId="4219" LastEditorUserId="4219" LastEditorDisplayName="" LastEditDate="2010-10-12T22:41:07.147" LastActivityDate="2010-10-12T22:41:07.147" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11160" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T00:51:39.317" Score="17" ViewCount="" Body="&lt;p&gt;I think 'programming' will probably be one of the few jobs that will actually survive in the future. &lt;/p&gt;&#xA;" OwnerUserId="2849" LastActivityDate="2010-10-12T00:51:39.317" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11161" PostTypeId="2" ParentId="11085" CreationDate="2010-10-12T00:53:21.327" Score="7" ViewCount="" Body="&lt;p&gt;Do something outdoors! The &lt;strong&gt;fresh air helps.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mountain Biking/riding bikes&lt;/li&gt;&#xA;&lt;li&gt;Walk / Run / Jog&lt;/li&gt;&#xA;&lt;li&gt;Skiing / Snowboarding&lt;/li&gt;&#xA;&lt;li&gt;Play with your children (if applicable) outside, they LOVE your attention.&lt;/li&gt;&#xA;&lt;li&gt;Skateboard&lt;/li&gt;&#xA;&lt;li&gt;Play football, soccer, or another organized sport with friends&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you are &lt;em&gt;really&lt;/em&gt; burned out, take a weekend trip somewhere - visit a national park, go backpacking, or just plain view the sights!&lt;/p&gt;&#xA;" OwnerUserId="4442" LastEditorUserId="4442" LastEditorDisplayName="" LastEditDate="2010-10-12T00:58:38.243" LastActivityDate="2010-10-12T00:58:38.243" CommentCount="2" />
  <row Id="11162" PostTypeId="2" ParentId="11085" CreationDate="2010-10-12T00:54:45.783" Score="2" ViewCount="" Body="&lt;p&gt;Ride a bike.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fly a plane.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read a novel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Play with a kid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Warm up your main squeeze.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-10-12T00:54:45.783" CommentCount="1" />
  <row Id="11163" PostTypeId="2" ParentId="11157" CreationDate="2010-10-12T01:00:17.127" Score="6" ViewCount="" Body="&lt;p&gt;For a person who doesn't deal with programmers any, I can confidently say that they would believe this kind of stuff. They don't know the amount of work that goes in the background, all they see is a bunch of buttons/textboxes/menus/[insert GUI element] and the speed it takes to accomplish what the button started. So initially, GUI people are liked more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the person &lt;em&gt;does&lt;/em&gt; deal with programmers, then its a bit different. As you said they would notice if you made it scalable, easier to maintain, rewrote an algorithm so it made more sense, or any other maintenance type task. This kind of person would look at all programmers equally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the middle it depends on what your doing. Speed then becomes the important factor here. If you can show before and after recordings of how long it takes for a form to be processed and stored and there's an improvement, you are equal. If you can show the app under load from 100 clients and show them the server melting, and then show them your version where everything is fine, your equal. Etc.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;In short, it depends on the person and what your doing. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-10-12T01:00:17.127" CommentCount="1" />
  <row Id="11164" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T01:01:20.520" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;... he thinks programming will become completely automated in several years.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;IMO, he is wrong.  People have been predicting this kind of thing since the 1960's.  It hasn't happened, and probably won't happen during your professional lifetime.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is happening is that programming is gradually bootstrap to higher levels of abstraction, with low level fiddly / boring / tedious programming tasks being performed using generators.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So in 5 or 10 years time you &lt;em&gt;may&lt;/em&gt; find that most programmers don't write DAO classes, don't fiddle around with HTML and CSS, and so on.  But there will still be programmers who figure out what needs to be done to get the computer to do tasks for normal folks.  And programmers will still need to do application-specific programming in more or less conventional programming languages, because, for instance&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;no generator designer can possibly anticipate the functional of all organization, and&lt;/li&gt;&#xA;&lt;li&gt;some problems are too hard to do automatically.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As an example of the latter, we don't know how to build generators that will automatically produce efficient, scalable systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other factor in this equation is that as software technology (e.g. generators) gets better, we are constantly pushing to do bigger and more complicated things with it.  So, where in the 60's we implemented payroll systems, etc in COBOL, now we use MYOB or SAP to implement these and a myriad of other standard business apps.  But we are now building systems that do things way, way beyond that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe in 50 years time, computers will be intelligent and won't need to be explicitly told what to do and how to do it.&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-10-12T03:47:18.200" LastActivityDate="2010-10-12T03:47:18.200" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11166" PostTypeId="2" ParentId="11077" CreationDate="2010-10-12T01:01:38.413" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/INTERCAL&quot; rel=&quot;nofollow&quot;&gt;INTERCAL&lt;/a&gt; calls &lt;code&gt;{&lt;/code&gt; &quot;embrace&quot;, and &lt;code&gt;}&lt;/code&gt; bracelet.&lt;/p&gt;&#xA;" OwnerUserId="1850" LastActivityDate="2010-10-12T01:01:38.413" CommentCount="3" />
  <row Id="11167" PostTypeId="2" ParentId="11157" CreationDate="2010-10-12T01:03:56.453" Score="9" ViewCount="" Body="&lt;p&gt;I think I see your point, but I suspect that there is also an opposite issue to consider.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially, I believe you are suggesting that, because the UI is the element of the application 'in the face' of the end users, the UI developers enjoy a higher visibility than the team members working in deeper layers of the app.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Certainly I agree that there may be a higher visibility. For instance, developers working on the UI elements may get to interact with the end users more often (arguably, for good reasons, since they do focus on the Human/Computer Interaction aspect).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yet, I think that the higher visibility come sin play even in cases when there is a problem. For instance, end users are very very likely to report issues as 'GUI Issues' even when they are not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may all boil down to perception, and a mature organization should be able to recognize values, virtues and weaknesses of the various team members independently from which layer of the app they work on.&#xA;A mature organization may also have moved beyond distinctions like 'UI developer' and 'business layer developer', recognizing they are all team members anyway, with different expertise perhaps, but always trying to educate each other on those areas of expertise.&lt;/p&gt;&#xA;" OwnerUserId="4237" LastActivityDate="2010-10-12T01:03:56.453" CommentCount="1" />
  <row Id="11168" PostTypeId="2" ParentId="10865" CreationDate="2010-10-12T01:04:26.953" Score="2" ViewCount="" Body="&lt;p&gt;I'd argue that GUI programming is not a good fit for functional programming. GUIs are generally very stateful, and it's a lot easier to model/manage them using state rather than using a side-effect free. It's certainly &lt;em&gt;possible&lt;/em&gt; to use a functional programming language for GUIs...but it's probably not a good idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As noted in another answer, games are often easier to manage by tracking state, and while you &lt;em&gt;can&lt;/em&gt; write a game in a functional language, it's often easier and more efficient to do so in a &quot;stateful&quot; language (i.e., an object-oriented language).&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-12T01:04:26.953" CommentCount="7" />
  <row Id="11169" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T01:07:53.530" Score="1" ViewCount="" Body="&lt;p&gt;If the tools get to where they can do more complex stuff automatically, we'll still need programmers to put those components together into yet even more complex interacting systems. Every tool that programmers have thus far developed to make programming easier has increased the total amount of work programmers have to do, directly or indirectly.&lt;/p&gt;&#xA;" OwnerUserId="5026" LastActivityDate="2010-10-12T01:07:53.530" CommunityOwnedDate="2010-10-12T18:44:01.817" CommentCount="1" />
  <row Id="11170" PostTypeId="2" ParentId="10857" CreationDate="2010-10-12T01:11:35.283" Score="1" ViewCount="" Body="&lt;p&gt;While I appreciate a clear and extensive documentation, there's nothing like self-documenting code. So, the bottom line (for me) is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Be very suspicious of (source code) documentation; try and make it redundant by improving the code, but don't shy away from documenting clearly and completely when necessary.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, under certain circumstances, documentation may be required for reasons other than 'explaining what the code is doing' (eg: large team base, organization standards, and so on so forth).&lt;/p&gt;&#xA;" OwnerUserId="4237" LastActivityDate="2010-10-12T01:11:35.283" />
  <row Id="11171" PostTypeId="2" ParentId="11077" CreationDate="2010-10-12T01:18:55.097" Score="0" ViewCount="" Body="&lt;p&gt;In portuguese, they are called 'chaves', which translates into keys. Despite not being the actual name in english, I find it to be a reasonable name, because it's impossible to confuse it with any other character, unlike brackets and braces.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-12T01:18:55.097" CommentCount="1" />
  <row Id="11172" PostTypeId="2" ParentId="11085" CreationDate="2010-10-12T01:26:39.133" Score="2" ViewCount="" Body="&lt;p&gt;Sports !&lt;br&gt;&#xA;(Eat, Sleep), &lt;strong&gt;&lt;em&gt;Swim, Bike, Run&lt;/em&gt;&lt;/strong&gt;, Eat, Sleep, &lt;em&gt;Party :-)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Life is simple :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://rlv.zcache.com/funny_triathlon_tshirt-p235060727506668561ybbb_400.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-12T01:26:39.133" />
  <row Id="11173" PostTypeId="2" ParentId="4711" CreationDate="2010-10-12T01:37:05.693" Score="2" ViewCount="" Body="&lt;p&gt;I'd argue computer science can help you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basic Information theory.&#xA;Graph theory. You have graphs everywhere. Programs are abstract syntax trees.&#xA;Partitioning graphs tells you all about network topologies, client-server trade-offs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read the Church-Turing thesis over at wikipedia. It is neither long nor involved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Shannons theorem&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nyquists criterion&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then get Software Fundamentals by David L Parnas.&#xA;It's a collection of his papers, and they are deep. It's available at Amazon and worth the money. If you have an ACM or IEEE membership, the online journals have a fair swathe of Dave Parnas's work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will start to see that we have achieved so little because we have stood on the toes of giants.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastEditorUserId="4623" LastEditorDisplayName="" LastEditDate="2010-10-22T00:02:28.957" LastActivityDate="2010-10-22T00:02:28.957" CommentCount="1" />
  <row Id="11174" PostTypeId="2" ParentId="11157" CreationDate="2010-10-12T01:43:15.580" Score="3" ViewCount="" Body="&lt;p&gt;To (maybe) expand a little on @TheLQ's answer, I think it also depends on the &quot;viewer&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had some experience with a few upper level managers/supervisors that don't have a programming background. Some appreciate that they don't program, but understand that chrome and hubcaps are just as important as the engine and chassis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I've had experience with some upper level managers/supervisors that don't care about any metrics other than the UI sizzle. Even stating that more UI oriented developers where important. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO, we all know that you can't polish a turd and a fast, reliable yet ugly app will far worse than an app that both looks good and functions good. It's all in the eye of beholder and to an extent, you have the power (regardless of what you do) to be seen in the light you want, by working for those that appreciate the same qualities as you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&#xA;I might add, being someone who feels more comfortable working on lower-level items, I have been jaded when you work equally as hard as the UI team and it's the polish that's lauded in the demo and not the fact that the system &quot;just worked&quot;. But like I said, I know that my supervisor's know the work is needed on all areas.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-10-12T01:43:15.580" />
  <row Id="11175" PostTypeId="1" AcceptedAnswerId="18562" CreationDate="2010-10-12T02:23:01.573" Score="5" ViewCount="306" Body="&lt;p&gt;First heard about it from Google Tech Talks, back 2009 when it was called Silver Bullet:&#xA;&lt;a href=&quot;http://www.youtube.com/watch?v=LpfmKIxusZY&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=LpfmKIxusZY&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's now called, Chronon...&#xA;&lt;a href=&quot;http://chrononsystems.com/&quot; rel=&quot;nofollow&quot;&gt;http://chrononsystems.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Sounds&quot; nice, have you tried Chronon the Java &quot;Time Travelling Debugger&quot; -- if so, is it worth trying and why?&lt;/p&gt;&#xA;" OwnerUserId="4942" LastEditorUserId="4942" LastEditorDisplayName="" LastEditDate="2010-10-12T20:41:04.647" LastActivityDate="2010-11-12T04:32:35.853" Title="Have you tried Chronon the Java &quot;Time Travelling Debugger&quot; -- if so, is it worth trying and why?" Tags="&lt;java&gt;&lt;ide&gt;&lt;bugs&gt;&lt;testing&gt;" AnswerCount="1" CommentCount="7" FavoriteCount="4" />
  <row Id="11177" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T02:38:45.327" Score="46" ViewCount="" Body="&lt;p&gt;Rsteckly, your skepticism is entirely justified. I'm afraid your friend's opinion is almost as badly informed as my dad's 1971 remark: &quot;Computers are a fad. They'll go away in a few years.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, they were saying &quot;programmers will be obsolete&quot; in the 60s - in fact, ever since there were programmers. The reasons have varied, from the advent of compilers in the 50s to SaaS in the last decade. but I've heard that myself many times since my dad made that quip when I first took programming in high school. (One of my personal favorites was that COBOL was going to put all the programmers out of work because business majors could write programs with English-like statements such as &lt;code&gt;ADD ONE TO I&lt;/code&gt; instead of &lt;code&gt;i++&lt;/code&gt;.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, in the real world, every advance in software development tools and methodologies has just created more jobs for programmers. That's because things become possible that weren't before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not too worried about my career vanishing due to automated software generators. I've mostly worked in C and C++ since 1985, am even now turning down work, and fully expect to be writing code in C-derived languages in 2035. And I'm sure at that point, when I'm 77, some young whippersnapper will be confidently predicting the imminent demise of the programming profession, and I'll shake my cane at him and tell him &quot;Get offa my lawn!&quot;&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-10-12T02:38:45.327" CommunityOwnedDate="2010-10-12T18:44:01.817" CommentCount="4" />
  <row Id="11180" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T03:13:58.790" Score="0" ViewCount="" Body="&lt;p&gt;I think another thing to remember along with those already brought up is that the users expectations of what a system should do are increasing just as fast as that of advances in development tools and practices. A lot of things are becoming more automated in development which is good because there is an endless list of problems people still want solved.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-12T03:13:58.790" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11181" PostTypeId="2" ParentId="7966" CreationDate="2010-10-12T03:20:02.363" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;They trusts their people to get the job done and don't try to &quot;herd cats&quot;.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Give their people room to make mistakes(not huge ones obviously) and learn from them.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2857" LastActivityDate="2010-10-12T03:20:02.363" CommunityOwnedDate="2011-01-26T19:57:30.693" />
  <row Id="11183" PostTypeId="2" ParentId="7966" CreationDate="2010-10-12T03:44:01.870" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;They support you when you say NO&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the most demotivating trait in a manager is the lack of courage to standup for his people and always bow in front of his own boss even if it means affecting the product or the team.&lt;/p&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-10-12T03:44:01.870" CommunityOwnedDate="2011-01-26T19:57:30.693" />
  <row Id="11185" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T03:59:46.453" Score="0" ViewCount="" Body="&lt;p&gt;Even &lt;em&gt;if&lt;/em&gt; Lightswitch makes programmers obsolete &amp;hellip; who wrote Lightswitch?&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-10-12T03:59:46.453" CommunityOwnedDate="2010-10-12T18:44:01.817" CommentCount="0" />
  <row Id="11187" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T04:38:21.180" Score="6" ViewCount="" Body="&lt;p&gt;The place I work has experimented with moving reporting duties over to business people. Basically, they are using Crystal Reports to churn out some business data. Last I heard, the business person in charge tried it for a week, utterly failed, and then the reporting went back to the programmers. Crystal Reports is more or less code free (there is the Crystal Syntax for basic boolean operations), but good luck to anyone who wants to use it without any knowledge of data structures or the patience of a programmer. (Some may say that programmers are impatient, but anyone who can work with Crystal successfully is patient by definition IMHO).&lt;/p&gt;&#xA;" OwnerUserId="3792" LastEditorUserId="3792" LastEditorDisplayName="" LastEditDate="2010-10-14T03:56:26.950" LastActivityDate="2010-10-14T03:56:26.950" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11188" PostTypeId="1" AcceptedAnswerId="11195" CreationDate="2010-10-12T04:41:53.893" Score="47" ViewCount="4241" Body="&lt;p&gt;I believe that an agile approach is best for projects where the requirements are fuzzy and a lot of interaction is required to help shape the end user's ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;However...&lt;/em&gt; In my professional work, I keep ending up at companies where an &quot;agile&quot; approach is used &lt;strong&gt;as an excuse as to why no effort was put into an up front design;&lt;/strong&gt; when the requirements are well understood.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't help but thinking that if the agile approach wasn't around, I'd be sitting here with a nice high-level specification and not having to revisit the same screen and functionality every second day when something else crops up or so and so hadn't thought of that. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Are the benefits of agile methodologies really enough to outweigh the excuse for being lame it gives to cowboy technical leads?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="5066" LastEditorUserId="1996" LastEditorDisplayName="" LastEditDate="2011-04-25T18:02:58.003" LastActivityDate="2011-04-25T18:02:58.003" CommunityOwnedDate="2011-03-19T17:28:35.220" Title="Is the agile approach too much of a convenient excuse for cowboys" Tags="&lt;agile&gt;&lt;cowboy-coding&gt;" AnswerCount="17" CommentCount="8" FavoriteCount="12" />
  <row Id="11189" PostTypeId="2" ParentId="39" CreationDate="2010-10-12T04:43:49.993" Score="11" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;On the seventh day, God said, &quot;Ship it!  We'll release patches later.&quot;&#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; Josh Flachsbart&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1792" LastActivityDate="2010-10-12T21:23:04.537" CommunityOwnedDate="2010-10-12T04:43:49.993" />
  <row Id="11190" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T04:46:14.843" Score="2" ViewCount="" Body="&lt;h3&gt;Yes!&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;You can be sure that as soon as Google perfects the &lt;a href=&quot;http://www.google.com/technology/pigeonrank.html&quot; rel=&quot;nofollow&quot;&gt;technology to automate web site evaluation.&lt;/a&gt;, it will turn its prodigious energies to this problem.&lt;/p&gt;&#xA;" OwnerUserId="2515" LastActivityDate="2010-10-12T04:46:14.843" CommunityOwnedDate="2010-10-12T18:44:01.817" CommentCount="2" />
  <row Id="11192" PostTypeId="2" ParentId="11188" CreationDate="2010-10-12T04:54:10.220" Score="5" ViewCount="" Body="&lt;p&gt;I will not say that I am a fan of Waterfall, since I too deal with ever-frustrating scope-creep, but I have always seen Agile as a concession to the problem, not an effective way to combat it. A good design, with early iterative testing and lots of paper prototypes seems to be much more effective.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-12T04:54:10.220" CommunityOwnedDate="2011-03-19T17:28:35.220" CommentCount="5" />
  <row Id="11193" PostTypeId="2" ParentId="6591" CreationDate="2010-10-12T04:55:45.730" Score="3" ViewCount="" Body="&lt;p&gt;I suggest that you do not write a book, because nowhere in your posting do I see anything even close to saying &quot;I really want to write a book&quot;, nor is there anything like &quot;I'm excited about topic X and I'd like to tell people about it&quot;.  Those are the two reasons to write a book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing a book is a labor of love.  I spent three years working on &lt;a href=&quot;http://www.pragprog.com/titles/algh/land-the-tech-job-you-love&quot; rel=&quot;nofollow&quot;&gt;my book about job hunting&lt;/a&gt;, and I wrote it because I felt strongly that it was information that techies needed to hear.  I sure didn't do it for the money.  Sure, I cashed my sixth quarterly royalty check the other day, and it's gratifying to get that, but that's not what gets you through the process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do feel like writing a book is seriously something that you'd be interested in, I suggest you practice to see if it's for you.  Go and start a blog on whatever topic it is that you'd like to write a book about.  Say you want to write a book about Ruby.  Go start a blog on blogspot.com or wordpress.com and write blog articles about Ruby.  Write at least three long articles every week, without fail.  Is that fun?  Then maybe you can write a book.  (And besides, you're going to need a blog to support your book and build interest in it, so you might as well start now.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I see from your posting history that you &lt;a href=&quot;http://programmers.stackexchange.com/questions/10609/&quot;&gt;asked the other day about presenting at conferences&lt;/a&gt;, and I told you about some of the process.  I'm getting the feeling that you're at a point where you're flailing around in your career.  Am I right in thinking that you feel like something's missing in your career, and you don't know what it is?  If that's the situation you're faced with, definitely do not go to write a book.  You write a book or give presentations because you have information that you need to get out.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-12T04:55:45.730" />
  <row Id="11194" PostTypeId="2" ParentId="11188" CreationDate="2010-10-12T05:05:45.597" Score="17" ViewCount="" Body="&lt;p&gt;Agile is no more to blame for poor development practices than BDUF. The problem lies with the discipline, or lack thereof, in applying the practices. The purpose of BDUF practices is to identify the direction of the project and determine risks beforehand. The purpose of agile practices is to keep the state of the development flexible enough to quickly change direction. An agile project could prepare highly-detailed user stories so the team is aware of future directions and still only select 2 or 3 per iteration to fully implement. The problem remains the same whichever methodology is used: management is letting cowboys run amuck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[BDUF: Big Design Up Front]&lt;/p&gt;&#xA;" OwnerUserId="4982" LastEditorUserId="23475" LastEditorDisplayName="" LastEditDate="2011-04-25T17:40:01.130" LastActivityDate="2011-04-25T17:40:01.130" CommunityOwnedDate="2011-03-19T17:28:35.220" CommentCount="5" />
  <row Id="11195" PostTypeId="2" ParentId="11188" CreationDate="2010-10-12T05:19:28.870" Score="61" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://dilbert.com/strips/comic/2007-11-26/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://i.imgur.com/XtRz6.gif&quot; alt=&quot;I'm Glad it has a name&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe if you're using Agile development as an excuse for cowboy-style programming, then you're not really following Agile development. Cowboys will always be cowboys, no matter what process you give them.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-12T05:19:28.870" CommunityOwnedDate="2011-03-19T17:28:35.220" CommentCount="1" />
  <row Id="11196" PostTypeId="2" ParentId="11077" CreationDate="2010-10-12T05:33:12.537" Score="-1" ViewCount="" Body="&lt;p&gt;+1 for curly brace &lt;/p&gt;&#xA;" OwnerUserId="5067" LastActivityDate="2010-10-12T05:33:12.537" CommentCount="1" />
  <row Id="11198" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T06:05:57.477" Score="10" ViewCount="" Body="&lt;p&gt;Automatic: Ok so i want to input this list and get the first word of everyline. Ok it doesnt know what i want so i have to say give me everything before the first tab. Ok done simple enough&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What if you have a speadsheet with first, middle and last name. Easy enough ask it for column row 1 and 3. Great now i want to email them, so i'll ask it to email this letter to everyone. But now i want to personalize it with their name. Yeah there will be an option or template for that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But now... How do i email people who has NOT bought an HD tv but has spent $2000 5-10years ago but not &amp;lt;5 years and has bought something from our gadgets section ignoring people who only buy in other sections (such as furniture). Complicated GUI maybe?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now lets have each person that clicks a special link to our site report how many times its been clicked and by who. Also lets have the site tell us what day and time people usually click our links&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now where is that button that lets me get their name, auto replace the text in my email and have the site email me the time everyone clicked their link. Theres no button for that? How the heck do i modify the website or give it that info. How the heck do i template the email?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is stupid. Someone else should do this. I am only here to write ads&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Problem solving is not everyones thing. Sure it make sense to us, but does the process of writing successful ads make sense to you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What if a problem wants the report and has no website. Like have the email email you back when someone clicked it. Why ISNT there an option for that? Theres tons of missing information as well as someone not knowing what they want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-edit- oh and did you realize i was just talking about writing an email and asking it to tell me when my customer clicked it. Thats suppose to be simple, right? but it has got to have......&lt;/p&gt;&#xA;" OwnerUserId="2528" LastEditorUserId="2528" LastEditorDisplayName="" LastEditDate="2010-10-12T06:15:59.647" LastActivityDate="2010-10-12T06:15:59.647" CommunityOwnedDate="2010-10-12T18:44:01.817" CommentCount="1" />
  <row Id="11199" PostTypeId="1" AcceptedAnswerId="11217" CreationDate="2010-10-12T06:14:26.200" Score="5" ViewCount="203" Body="&lt;p&gt;At my company (3-yr-old web industry startup), we have frequent problems with the product team saying &quot;aaaah this is a crisis patch it now!&quot; (doesn't everybody?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This has an impact on the productivity (and morale) of engineering staff, self included.  Management has spent some time thinking about how to reduce the frequency of these same-day requests and has come up with the solution that we are going to have a release every week.  (Previously we'd been doing one every two weeks, which usually slipped by a couple of days or so.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are 13 developers and 6 local / 9 offshore testers; the theory is that only 4 developers (and all testers) will work on even-numbered releases, unless a piece of work comes up that really requires some specific expertise from one of the other devs.  Each cycle will contain two days of dev work and two days of QA work (plus 1 day of scoping / triage / ...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My questions are:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(a) Does anyone have experience with this length of release cycle?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(b) Has anyone heard of this length of release cycle even being attempted?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(c) If (a) or (b), how on Earth do you make it work?  (Any pitfalls to avoid, etc., are also appreciated.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(d) How can we minimize the damage if this effort fails?&lt;/p&gt;&#xA;" OwnerUserId="5068" LastEditorUserId="5068" LastEditorDisplayName="" LastEditDate="2010-10-12T07:34:18.527" LastActivityDate="2010-10-15T16:47:00.427" Title="One-week release cycle: how do I make this feasible?" Tags="&lt;agile&gt;&lt;software-engineering&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="11200" PostTypeId="2" ParentId="11199" CreationDate="2010-10-12T06:28:16.403" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Management has spent some time thinking about how to reduce the frequency of these &quot;crisis jobs&quot; and has come up with the solution that we are going to have a release every week.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Looks like your managament are world champions... why not invest in your team spirit intead ? You will see the problems will disapear by themselve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(a) + (b) IMHO, according the size of your team it should be two weeks max. One week will work for one man shows or very tiny teams (like 2 or 3).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(c) + (d) But regardless the size of your team or project, one of the first thing I do, is automatize the build &amp;amp; deployment. I save days if not weeks of work by doing that in the early days of a project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your deployments must be done with one click. From source to staging, then from staging to production. There are a lot of tools to make this possible. From &lt;strong&gt;ant/nant&lt;/strong&gt; to super heavy stuff like &lt;strong&gt;Automated Build Studio&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everything can be automated from files deployments to database upgrade, including backups, notifications, reporting, ...&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-12T06:28:16.403" CommentCount="2" />
  <row Id="11201" PostTypeId="2" ParentId="11188" CreationDate="2010-10-12T06:36:00.820" Score="11" ViewCount="" Body="&lt;p&gt;Agile, like &lt;strong&gt;anything&lt;/strong&gt;, can be used to cover a bad behavior or to try to solve a problem that the team think they are not responsible of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the magic in some &lt;strong&gt;Agile&lt;/strong&gt; methodologies like &lt;strong&gt;Scrum&lt;/strong&gt; is that they will provide lot visibility on problems within the organization. Including problems within the team!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will be then given the opportunity to solve them as they arise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the problem lies to the cowboys, this will be very visible after the first iteration. If the problem is elsewhere, you will see it very soon too.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-12T15:25:00.980" LastActivityDate="2010-10-12T15:25:00.980" CommunityOwnedDate="2011-03-19T17:28:35.220" />
  <row Id="11202" PostTypeId="1" AcceptedAnswerId="11205" CreationDate="2010-10-12T06:37:47.783" Score="6" ViewCount="401" Body="&lt;p&gt;Hello...A friend asked me this &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Which book would you suggest for a newbie who wants to learn C# programming? This newbie understands basic programming concepts such as looping, data structures such as Arrays, Linked list, Stack, Queue etc., &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And I was lost for answer. Any suggestions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: Looking up in Google is not an acceptable answer ;-)&lt;/p&gt;&#xA;" OwnerUserId="5070" LastActivityDate="2011-02-03T00:19:21.193" Title="Recommended Books for C#" Tags="&lt;recommendations&gt;&lt;books&gt;&lt;c#&gt;" AnswerCount="7" FavoriteCount="6" />
  <row Id="11204" PostTypeId="1" AcceptedAnswerId="11361" CreationDate="2010-10-12T06:51:56.713" Score="9" ViewCount="372" Body="&lt;p&gt;It seems that everyone has a different opinion on which layer they find most enjoyable. Do you prefer GUI? Data Access? &lt;BR&gt;&#xA;Whether you are more low level or high level, what do you prefer to work with and why?&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-13T17:56:24.060" ClosedDate="2010-12-01T09:54:00.057" Title="What is your favorite program layer to work on?" Tags="&lt;design-patterns&gt;" AnswerCount="12" CommentCount="3" FavoriteCount="2" />
  <row Id="11205" PostTypeId="2" ParentId="11202" CreationDate="2010-10-12T06:55:47.940" Score="3" ViewCount="" Body="&lt;p&gt;&quot;Microsoft Visual C# 2008 Step by Step&quot; by John Sharp is terrific. It is a bit dry, but will get you through quickly and fairly thoroughly. For someone a little more right-brained, I would recommend &quot;Headfirst C#&quot; which is published by O'Reilly.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-12T06:55:47.940" CommentCount="6" />
  <row Id="11206" PostTypeId="2" ParentId="11204" CreationDate="2010-10-12T06:57:25.877" Score="3" ViewCount="" Body="&lt;p&gt;I love working with &lt;a href=&quot;http://download-llnw.oracle.com/javase/7/docs/api/java/util/concurrent/package-summary.html&quot; rel=&quot;nofollow&quot;&gt;java.util.concurrent&lt;/a&gt;. The abstraction level of passing &lt;em&gt;tasks&lt;/em&gt; and &lt;em&gt;results&lt;/em&gt; around, knowing that under the hood there's quite a complicated combination of various synchronization primitives to ensure thread safety and memory consistency and still it all somehow just works together efficiently, feels almost magic.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-12T07:02:26.367" LastActivityDate="2010-10-12T07:02:26.367" />
  <row Id="11208" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T06:58:51.270" Score="2" ViewCount="" Body="&lt;p&gt;Salaries are declining?! No one told my boss yet, apparently, so keep quiet about it! ;-)&lt;/p&gt;&#xA;" OwnerUserId="1020" LastActivityDate="2010-10-12T06:58:51.270" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11209" PostTypeId="1" AcceptedAnswerId="11210" CreationDate="2010-10-12T07:05:52.643" Score="4" ViewCount="432" Body="&lt;p&gt;Sometimes I heard people talking about how &quot;that guy is not a programmer, he is just a coder.&quot;&#xA;&lt;p&gt;Could someone specify what's the difference between &quot;programmer&quot; and &quot;coder&quot;?&lt;p&gt; Does the IT coder profession even exist? &lt;/p&gt;&#xA;" OwnerUserId="4164" LastEditorUserId="18594" LastEditorDisplayName="" LastEditDate="2011-06-04T01:52:49.660" LastActivityDate="2011-06-04T07:30:21.133" Title="What's the difference between &quot;Programmer&quot; and &quot;Coder&quot;?" Tags="&lt;terminology&gt;&lt;programmers&gt;&lt;comparison&gt;" AnswerCount="5" CommentCount="6" />
  <row Id="11210" PostTypeId="2" ParentId="11209" CreationDate="2010-10-12T07:17:15.797" Score="15" ViewCount="" Body="&lt;p&gt;In my book, they're one and the same.  Coder being a colloquial term.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you want to be called is a software developer or software engineer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, coder is a pejorative term used to imply that one is not passionate about their work and is merely a &quot;day coder.&quot;  I.e. they do not spend much of their own time outside of work programming, learning about programming, computers and other matters useful to the profession.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These days it seems that programmer is also pejorative, meaning basically the same thing.  One with a narrow focus on a small set of skills necessary to remain employed, without much passion for the work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No, there is no official coder profession, per se.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-10-12T07:17:15.797" />
  <row Id="11211" PostTypeId="2" ParentId="11209" CreationDate="2010-10-12T07:18:02.627" Score="4" ViewCount="" Body="&lt;p&gt;The same difference that exists between other Synonyms of any other word.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-12T07:18:02.627" CommentCount="3" />
  <row Id="11212" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T07:31:55.037" Score="1" ViewCount="" Body="&lt;p&gt;I suppose, programming business mainly has been consolidated inside such big corporations as Google and MS last decade. All the stuff used to be developed by different small group of programmers last years is captured inside big companies now, so yes, programming business will gradually go away. But this is the case not only in programming, but in many other areas as well, as a result of globalization. Partly I agree with the opinion at &lt;a href=&quot;http://programmers.stackexchange.com/questions/11153/will-programmers-be-around-in-a-few-years/11156#11156&quot;&gt;http://programmers.stackexchange.com/questions/11153/will-programmers-be-around-in-a-few-years/11156#11156&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4846" LastActivityDate="2010-10-12T07:31:55.037" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11213" PostTypeId="2" ParentId="11202" CreationDate="2010-10-12T07:38:05.673" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735626197&quot; rel=&quot;nofollow&quot;&gt;&quot;MCTS Self-Paced Training Kit (Exam 70-536): Microsoft® .NET Framework Application Development Foundation, Second edition [Hardcover]&quot;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a well written book, and the examples are in C# and VB.NET. The book will also guide you to pass your MCTS Exam 70-536 which is a requirement for all your programming  Microsoft MCTS certifications.&lt;/p&gt;&#xA;" OwnerUserId="4384" LastActivityDate="2010-10-12T07:38:05.673" CommentCount="2" />
  <row Id="11214" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T07:44:37.997" Score="2" ViewCount="" Body="&lt;p&gt;To put it short: &quot;Programmers will soon be obsolete&quot; is a meme which basically goes along the lines with &quot;there is nothing new to invent anymore&quot;. And I really hope nobody here thinks the latter.&lt;/p&gt;&#xA;" OwnerUserId="5072" LastActivityDate="2010-10-12T07:44:37.997" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11215" PostTypeId="2" ParentId="11204" CreationDate="2010-10-12T08:04:45.407" Score="5" ViewCount="" Body="&lt;p&gt;Sockets. Anything involving sockets: HTTP servers, SIP servers, etc.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-12T08:04:45.407" />
  <row Id="11216" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T08:05:34.177" Score="1" ViewCount="" Body="&lt;p&gt;Automatic programming does exist even today, this field is advancing very rapidly. I've used it to some extent. But I do not programmers will go away, they will probably always be needed - no matter what.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if the automatic programming systems gets so advanced that they can solve any problem, there must be a very logical thinking man or woman - a programmer - there who can define the problem with logical statements, and they must also define a function that tells the computer when it has hit the sweet spot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So we will stick around unless people start thinking straight and speaking Lojban to the AI.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; Did I forgot that this is going to need tremendous of processing power? Some stuff actually goes faster to solve today with automatic programming, others it is not worth it as an programmer is way much faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Automatic programming is best used where it is hard to define a solution but easy to define when the problem is solved. &lt;strong&gt;Note&lt;/strong&gt; that I say &lt;em&gt;when it is solved&lt;/em&gt; and not &lt;em&gt;to define the problem&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically the computer is using very much &lt;em&gt;brute force&lt;/em&gt; to solve a problem, whilst a programmer &lt;em&gt;thinks&lt;/em&gt; out a way to solve the problem. Of course the search time is minimized because a programmer defines a function that measures how close to the solution the generated algorithm is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In order for an automatic programming system to be able to program anything and everything on its own, it must:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Have a way to automatically be able to define a &lt;em&gt;fitness function&lt;/em&gt; (based on what someone tells it).&lt;/li&gt;&#xA;&lt;li&gt;Understand some kind of language that a human can use that is logical (a programming language for an example, or maybe Lojban). A non-logical language would probably be too unpractical.&lt;/li&gt;&#xA;&lt;li&gt;Have a great reference of every function it is never going to need, and probably a way to improve on that, as there is ought to be bugs there.&lt;/li&gt;&#xA;&lt;li&gt;Be totally bug-free, or else we are placing us on a security risk when giving a program such much knowledge and responsibility if there is no one standing and watching over its shoulder.&lt;/li&gt;&#xA;&lt;li&gt;Have a tremendous amount of processing power, I'm really stressing this one, right. I really mean it.&lt;/li&gt;&#xA;&lt;li&gt;And everything else I've forgot, please fill in for me.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It would probably take another 150 years before that system is available, probably then all would speak Lojban because people were sick of misunderstanding each other ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the question is, would we be ready? Fear for the unknown is a big part of being human, and it is not something that is that easy to get rid of. Some of us are more open than others, I'll not say that I'm perfect on that point either. Maybe more than others, and less than others (I've been afraid of going outside of my known programming paradigms, but I've broken loose and started to learn a language that does stuff different).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I mean is that people are going to be afraid of that they will accidentally create SkyNet or the HAL computers that turned on humans, SkyNet thinking that humans are parasites and HAL though that the crew was risking the mission. HALs top priority was to make sure that the mission were successful, when its priority one should have been the crews safety.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even tough it could be possible to get all this things right who would want to do it? Programmers would not want to make their replacement; Unless of course it would mean that everybody would live in an Utopian world and only do the things they like and have food automatically served on the table.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would want to travel to other planets and galaxies (if that were possible).&lt;/p&gt;&#xA;" OwnerUserId="5074" LastEditorUserId="5074" LastEditorDisplayName="" LastEditDate="2010-10-12T09:02:21.000" LastActivityDate="2010-10-12T09:02:21.000" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11217" PostTypeId="2" ParentId="11199" CreationDate="2010-10-12T08:06:25.327" Score="4" ViewCount="" Body="&lt;p&gt;You can certainly deliver every week - or even more frequently. At the moment we generally release every two weeks, but it isn't unusual to deploy functionality when something has arrived with no notice from one of our partners that would be irrelevant if we waited for the next cycle. At some point in the next few months I'd like us to move to continuous delivery (items are released as soon as is practical once they're 'done') as standard, but we're not quite confident enough yet to go that far.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The critical thing is you need your website strongly covered by automated tests - both unit tests and end-to-end acceptance tests/executable specifications. By implication this also means that your build is fully automated. At the acceptance level we use &lt;a href=&quot;http://code.google.com/p/robotframework/&quot; rel=&quot;nofollow&quot;&gt;Robot Framework&lt;/a&gt; which is excellent for quickly building up a maintainable test suite thanks to it's keyword approach. For look and feel our onsite tester makes some cursory checks, but we also have a couple of guys in India who do a more thorough check across different browsers (there are sites which help with this sort of thing by taking screenshots for you, e.g. &lt;a href=&quot;https://browserlab.adobe.com/en-us/index.html&quot; rel=&quot;nofollow&quot;&gt;BrowserLab&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We don't fully automate the deployment (the very final step requires manual intervention, this is a concious decision for us) - but we do automate all the things like ensuring that the correct database connections are being used, etc, with short deployment cycles it'd be too easy to make a mistake with this sort of thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a pretty good recentish book on continuous delivery that you might want to check out, I've skimmed it but not gone through it in detail yet. What I've read so far chimes well with our experiences though: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321601912&quot; rel=&quot;nofollow&quot;&gt;Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In summary you need a highly disciplined team, a high level of automation and - most important of all - an extremely high degree of trust in that automation. To me it seems that moving to weekly cycles in your case may be a mistake - crisis patches hint at other issues and you should work to eliminate those. Upping the tempo could potential make the situation worse...&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-12T08:06:25.327" />
  <row Id="11218" PostTypeId="2" ParentId="11077" CreationDate="2010-10-12T08:10:06.367" Score="8" ViewCount="" Body="&lt;p&gt;In the UK, I hear people use the following names for them&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;() Bracket&#xA;{} Curly Bracket, Squiggly Bracket, Brace&#xA;[] Square Bracket&#xA;&amp;lt;&amp;gt; Angle Bracket&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2395" LastActivityDate="2010-10-12T08:10:06.367" CommentCount="1" />
  <row Id="11219" PostTypeId="2" ParentId="11204" CreationDate="2010-10-12T08:10:42.567" Score="4" ViewCount="" Body="&lt;p&gt;I don't prefer GUI (unless when working in Labview): too much hassle for me to get it really right and the way I or the users want. Especially the layout can get messy and take a long time for the kind of applications I do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't prefer Data Access: I haven't done it enough to be confident with it and I find it a tad boring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things that really got me going are those deep inside an appplication, eventually close to the hardware (or actually, right onto it when programming DSPs). Main reason: if they are not done 100% right, the rest of the app is simply worthless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thing is those small but nifty programs that take only an hour or two to program, but are great utilities that make some jobs much easir and automated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So actually it's not a single layer I prefer, it's more the process where I can use my mind to the fullest and get results that satisfy me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The project that I enjoyed most until today involved creating hardwrare from scratch (AD and DA convertors) and putting them to use: start with drawing scheme, create PCB, put all components on, mount on DSP board, program DSP with I/O and heavy signal processing, be extremely satisfied when all that starts to work.&lt;/p&gt;&#xA;" OwnerUserId="3660" LastActivityDate="2010-10-12T08:10:42.567" />
  <row Id="11220" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T08:12:10.563" Score="0" ViewCount="" Body="&lt;p&gt;I worked for a couple of years with a proprietary BPM (Business Process Management - &quot;workflow&quot;) application that is heavily marketed as something that Business Analysts or even users (non-programmers) can use to cobble together working applications.  The sales pitch usually takes on the tone (addressed to management): &quot;You won't need to pay those outrageous developer wages any more....&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has a bunch of powerful wizards, Visio shapes to drag and drop to create a workflow, lots of bells and whistles.  Because of all of that window dressing, there is quite a bit of code generation that goes on in the app (Java objects created based information entered into a form and stored as XML).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the bottom line is that the demand for developers for this application (usually recycled java developers) is steadily growing and has done so for several years.  In those 2 years, I &lt;em&gt;never&lt;/em&gt; ran into one situation where a Business Analyst actually created a production application (&lt;em&gt;or wanted to&lt;/em&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the demand for our skill - the ability to wrap our heads around the instructions a computer needs to do its job &lt;em&gt;right&lt;/em&gt; won't go away.&lt;/p&gt;&#xA;" OwnerUserId="2671" LastEditorUserId="2671" LastEditorDisplayName="" LastEditDate="2010-10-12T08:26:00.150" LastActivityDate="2010-10-12T08:26:00.150" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11221" PostTypeId="2" ParentId="11125" CreationDate="2010-10-12T08:21:37.130" Score="0" ViewCount="" Body="&lt;p&gt;The best language for the job depends on what that job is. Even in web applications, not all web sites are the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, for complicated, highly interactive web sites, my vote is for &lt;strong&gt;&lt;a href=&quot;http://www.seaside.st/&quot; rel=&quot;nofollow&quot;&gt;Seaside&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seaside lets you concentrate on the flow of your application, rather than thinking about HTTP. You write components and plug them together much like you would for a desktop application. Take a look at their &lt;a href=&quot;http://book.seaside.st/book&quot; rel=&quot;nofollow&quot;&gt;introductory book&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-12T08:21:37.130" />
  <row Id="11222" PostTypeId="1" AcceptedAnswerId="11229" CreationDate="2010-10-12T08:37:02.693" Score="11" ViewCount="322" Body="&lt;p&gt;I am learning Java now a days. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to be a successful enterprise developer. Then what algorithms and data structures I should be well versed with? What books would you recommend me?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be a successful Java developer, do I need to know all the advanced algorithms such as those given in CLRS?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you suggest me a list of the topics that I should learn in the descending order of their priority?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tell me the name of some topics that I must know. Like Searching, Sorting, Graphs, Trees etc?&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-10-18T19:41:27.270" Title="Which are the topics of Algorithms and Data structure that a developer should absolutely know?" Tags="&lt;java&gt;&lt;algorithms&gt;&lt;suggestions&gt;" AnswerCount="4" FavoriteCount="3" />
  <row Id="11223" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T08:42:31.417" Score="23" ViewCount="" Body="&lt;p&gt;Programming is not disappearing, it's just evolving.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the 60s they said programmers were going to disappear BECAUSE the idea of programmer was tied to the one of &quot;board&quot;. The boards were about to disappear, hence they said programmers were too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the 80s they said programmers were going to disappear BECAUSE the idea of programmer was tied to the one of assembler. Usage of assembler was about to disappear, hence they said programmers were too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the 90s they said programmers were going to disappear BECAUSE the idea of programmer was tied to the one of writer of desktop applications. Desktop applications development was being automated by new powerful IDEs, writing programs using a pure text editor was about to disappear, hence they said programmers were too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the XXs they will say programmers will be going to disappear BECAUSE the idea of programmer will be tied to the YY idea. When YY will be about to disappear/change, they'll say programmer will be, too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We will not disappear. We will just debug different crap :)&lt;/p&gt;&#xA;" OwnerUserId="4738" LastEditorUserId="4738" LastEditorDisplayName="" LastEditDate="2010-10-13T09:25:58.797" LastActivityDate="2010-10-13T09:25:58.797" CommunityOwnedDate="2010-10-12T18:44:01.817" CommentCount="2" />
  <row Id="11224" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T08:43:08.283" Score="1" ViewCount="" Body="&lt;p&gt;From the beginning the trend is to automate more and more programming stuff, from manually setting actual switches to making holes in a piece of paper, to type assembly instructions, to type code which will result in assembly, to generate code from a nice UML diagram, ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, there is a step that will never be automated: gathering the user needs and translating them correctly in something to feed programming automatons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And don't forget that there is almost always losses between what the user actually needs and what he expresses, between what he says and what the gatherer understands, and between this understanding and formalisation.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-12T08:43:08.283" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11225" PostTypeId="2" ParentId="9481" CreationDate="2010-10-12T08:46:27.310" Score="4" ViewCount="" Body="&lt;p&gt;The software industry lacks unions simply because neither the workers nor management see the need for collective representation. There are obvious reasons why management would rather not see software professionals collectively bargain on work issues such as compensation, working conditions, etc. But software professionals haven't felt enough discomfort in the industry as a whole to take action collectively.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the larger issue is that software professionals also haven't looked at the collective representation model the same way professionals in other industries have. The American Bar Association could be considered a union for lawyers, as the AMA is for medical doctors, and AIA for architects. Those organizations define the level of professionalism for practices and skillsets that we should model ourselves on to improve the quality of software and working environments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We must because it's clear the management at your company isn't likely to do it.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-12T08:46:27.310" />
  <row Id="11227" PostTypeId="2" ParentId="10832" CreationDate="2010-10-12T08:54:07.353" Score="1" ViewCount="" Body="&lt;p&gt;Unit testing is all about testing units of your code. It is up to you to define what a unit is. Your coworkers define units as API elements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, testing API should result in exercising private code as well. If you define code coverage as an indicator of unit testing progress, you will end up in testing all your code. If some part of code has not been reached, give your coworkers three choices:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;define another test case for covering that part,&lt;/li&gt;&#xA;&lt;li&gt;analyze code for justifying why it cannot be covered in the context of unit testing but should be covered in other situations,&lt;/li&gt;&#xA;&lt;li&gt;remove dead code that has neither been covered not justified.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-12T08:54:07.353" CommentCount="1" />
  <row Id="11228" PostTypeId="2" ParentId="2331" CreationDate="2010-10-12T09:01:06.790" Score="2" ViewCount="" Body="&lt;p&gt;In C/C++: That assignments are also expressions COMBINED WITH the very similar assignment = and comparison == operators. Not a harmful feature per se, but it's way to easy to introduce (sometimes subtle) bugs by accidentally mistyping the operator.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int i = 10;&#xA;&#xA;someCode();&#xA;&#xA;if(i = 5)&#xA;{&#xA;    /* We don't want this block to be executed, but it is */&#xA;    moreCode();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4884" LastActivityDate="2010-10-12T09:01:06.790" />
  <row Id="11229" PostTypeId="2" ParentId="11222" CreationDate="2010-10-12T09:12:51.177" Score="10" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0262033844&quot; rel=&quot;nofollow&quot;&gt;Cormen's Introduction to Algorithms&lt;/a&gt; is a good book for some basic theoretical foundations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, most algorithms and data structures have been coded, tested and optimized by others already, and there's no reason to re-implement them once more. To be a successful &lt;em&gt;Java&lt;/em&gt; developer you need to know &lt;a href=&quot;http://download.oracle.com/javase/7/docs/technotes/guides/collections/index.html&quot; rel=&quot;nofollow&quot;&gt;The Collections Framework&lt;/a&gt; inside out.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-12T09:12:51.177" CommentCount="2" />
  <row Id="11230" PostTypeId="2" ParentId="11125" CreationDate="2010-10-12T09:12:59.007" Score="1" ViewCount="" Body="&lt;p&gt;For fast web development I would unquestionably go with Ruby on Rails. It's very quick and very painless to develop with and beautifully easy to use- Ruby as a language really does get out of the way and let you do your job and Rails fills in so much of the boring boilerplate stuff that you end up doing on most platforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I used it, a couple of years back, the problems I ran into were around finding good hosting ( or even configuring my own hosting ) and the pace of change meaning that I was trying to write an app and keep up with the moving target of the Rails platform at the same time. These may both have stabilised by now. Also the performance of Ruby is not equivalent to other languages, although that is very rarely important and the language philosophy is that you can always drop into C if you hit a bottleneck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, since Rails first arrived on the scene a lot of people have cloned it for other languages, so its advantages can probably be had in other languages as well, but given the choice of language I would always choose Ruby if I have the option.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-12T09:12:59.007" CommentCount="1" />
  <row Id="11231" PostTypeId="2" ParentId="11098" CreationDate="2010-10-12T09:13:50.800" Score="0" ViewCount="" Body="&lt;p&gt;Without having to leave your job? Check with laws in your state regarding the establishment of collective bargaining in your workplace. Then follow those laws in determining whether your co-workers feel the same way regarding working conditions and their interest in organizing at your workplace.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or see if you can find another local employer who could provide a more agreeable arrangement and would be willing to hire several members of your group. Such a would-be employer should not be one who could be considered a competitor as there are significant legal considerations and they might cause more problems if you even approach them.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-12T09:13:50.800" CommentCount="4" />
  <row Id="11232" PostTypeId="2" ParentId="11077" CreationDate="2010-10-12T09:36:15.333" Score="5" ViewCount="" Body="&lt;p&gt;There is one specific French word for this character: &lt;strong&gt;accolade&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4863" LastActivityDate="2010-10-12T09:36:15.333" CommentCount="2" />
  <row Id="11233" PostTypeId="2" ParentId="11093" CreationDate="2010-10-12T09:41:28.270" Score="2" ViewCount="" Body="&lt;p&gt;Perhaps if you wanted to go old-school and low level you could take a loook through &quot;Programming Pearls&quot; - a lot of the problems described in there are kind of low level- bitwise arithmetic and so on - but that doesn't make them less challenging.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-12T09:41:28.270" />
  <row Id="11234" PostTypeId="1" AcceptedAnswerId="11247" CreationDate="2010-10-12T09:42:01.123" Score="9" ViewCount="772" Body="&lt;p&gt;Please name/link a company you would love to work for (as a programmer).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And please explain why you think it would be better that your current job.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-12T20:04:03.160" CommunityOwnedDate="2010-10-12T09:42:01.123" ClosedDate="2010-10-12T23:53:42.823" Title="Why do you want to work for this Company?" Tags="&lt;jobs&gt;&lt;work-environment&gt;&lt;top-companies&gt;" AnswerCount="15" CommentCount="1" FavoriteCount="1" />
  <row Id="11235" PostTypeId="2" ParentId="11234" CreationDate="2010-10-12T09:47:55.453" Score="10" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Microsoft&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I think it offers a very good career opportunity, it has lots of intelligent people who I can learn with and you get to build software that gets used by millions! Of course there's Google and Apple who are in a similar playing league, but I currently live in Portugal and the most active of those 3 companies is Microsoft. I think it would be awesome to work there.&lt;/p&gt;&#xA;" OwnerUserId="3682" LastActivityDate="2010-10-12T09:47:55.453" CommunityOwnedDate="2010-10-12T09:47:55.453" CommentCount="1" />
  <row Id="11236" PostTypeId="2" ParentId="11222" CreationDate="2010-10-12T10:00:17.783" Score="3" ViewCount="" Body="&lt;p&gt;If you are to be a programmer of any kind you need to understand all the basic data structures ( stacks, queues, arrays, linked lists, hashtables, trees etc ) in some detail. Enough at least that you could implement any of them for yourself if you found yourself in a world with no collections frameworks to do the job for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With regard to algorithms, it seems to me that they are more tools for jobs, whereas your data structures are fundamental building blocks. I don't think it is as important to know the details of how to implement every algorithm that you might run into. What you do need to be able to do is evaluate how well an algorithm will work for a given purpose. Sometimes the difference between depth first and breadth-first search or the type of sort you perform on your data can make a very big difference to the performance or general success of your code, so knowing how to judge that is very important.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-12T10:00:17.783" />
  <row Id="11237" PostTypeId="2" ParentId="11093" CreationDate="2010-10-12T10:11:43.773" Score="1" ViewCount="" Body="&lt;p&gt;For some fun Ruby projects, I can recommend the book &lt;a href=&quot;http://apress.com/book/view/9781590599112&quot; rel=&quot;nofollow&quot; title=&quot;Practical Ruby Projects&quot;&gt;Practical Ruby Projects&lt;/a&gt;. However, a book more fitting to your description, is a 20 year old classic called &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0716721449&quot; rel=&quot;nofollow&quot; title=&quot;The Magic Machine&quot;&gt;The Magic Machine&lt;/a&gt; by A. K. Dewdney. There I found inspiration for many fun programming projects.&lt;/p&gt;&#xA;" OwnerUserId="305" LastEditorUserId="305" LastEditorDisplayName="" LastEditDate="2010-10-12T10:26:14.797" LastActivityDate="2010-10-12T10:26:14.797" CommentCount="1" />
  <row Id="11238" PostTypeId="2" ParentId="11234" CreationDate="2010-10-12T10:18:03.413" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Electronic Arts&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;https://jobs.ea.com/about/benefits/&quot; rel=&quot;nofollow&quot;&gt;https://jobs.ea.com/about/benefits/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it would be interesting to work for the company that makes so many games I enjoy.&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-10-12T10:18:03.413" CommunityOwnedDate="2010-10-12T10:18:03.413" CommentCount="8" />
  <row Id="11239" PostTypeId="2" ParentId="11188" CreationDate="2010-10-12T10:18:20.163" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I'd be sitting here with a nice high&#xA;  level specification and not having to&#xA;  revisit the same screen and&#xA;  functionality every second day as&#xA;  something else crops up or so and so&#xA;  hadn't thought of that.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That does seem to tally with my colleague's experience of the &quot;agile&quot; project he is on (I've never been on one myself): he is asked to write a piece of code to some spec, then just as he's finished testing it and is ready to move on a new requirement comes up that requires him to change it and re-test it.  He finds it frustrating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not bashing agile, I suspect the team is not doing agile properly - but as you say, the term &quot;agile&quot; can sometimes be used by cowboys to convince pointy headed management that half-baked design is a positive rather than a negative.&lt;/p&gt;&#xA;" OwnerUserId="3187" LastActivityDate="2010-10-12T10:18:20.163" CommunityOwnedDate="2011-03-19T17:28:35.220" CommentCount="1" />
  <row Id="11240" PostTypeId="2" ParentId="11234" CreationDate="2010-10-12T10:19:09.940" Score="11" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Google&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(I'm currently a student so I don't have job to compare with).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to work there for all the highly skilled people I would get to meet and learn from - it's a large and prominent company, so I'd assume it would attract the best of the best. Unfortunately, that is also the reason why I'd probably never get employed there (but you can always dream and try).&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-12T10:19:09.940" CommunityOwnedDate="2010-10-12T10:19:09.940" CommentCount="2" />
  <row Id="11241" PostTypeId="2" ParentId="11093" CreationDate="2010-10-12T10:31:57.500" Score="0" ViewCount="" Body="&lt;p&gt;Check out &lt;a href=&quot;http://www.manning.com/pearson/&quot; rel=&quot;nofollow&quot;&gt;Generative Art&lt;/a&gt;. Lots of artistic fun using the &lt;a href=&quot;http://processing.org/&quot; rel=&quot;nofollow&quot;&gt;Processing&lt;/a&gt; language.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-12T10:31:57.500" />
  <row Id="11242" PostTypeId="2" ParentId="11234" CreationDate="2010-10-12T10:36:31.420" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.s2games.com/aboutus.php?page=aboutus&quot; rel=&quot;nofollow&quot;&gt;S2Games&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's an indie game company. The main reason why I would want to work for them is because of how close they work with the community when it comes to developing their games. A player reports a minor bug, they'll give immediate feedback and fix the bug, someone asks for a feature, they'll discuss it with the whole community as to how they'll implement the feature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're also very transparent as to what's happening behind the scenes and the people working there seem like good people who are very passionate about gaming. Any software company who strives for excellence and works hand-in-hand with their customers gets my vote.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-10-12T10:36:31.420" CommunityOwnedDate="2010-10-12T10:36:31.420" />
  <row Id="11243" PostTypeId="2" ParentId="11234" CreationDate="2010-10-12T10:58:05.470" Score="11" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;a href=&quot;http://www.valvesoftware.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Valve&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It would be interesting to work on their steam platform plus they make some pretty good games.&lt;/p&gt;&#xA;" OwnerUserId="680" LastActivityDate="2010-10-12T10:58:05.470" CommunityOwnedDate="2010-10-12T10:58:05.470" CommentCount="6" />
  <row Id="11244" PostTypeId="2" ParentId="11204" CreationDate="2010-10-12T11:03:49.507" Score="4" ViewCount="" Body="&lt;p&gt;I love the Business Logic Layer. Man I love to work with Class and OO Paradigms :)&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-10-12T11:03:49.507" />
  <row Id="11245" PostTypeId="2" ParentId="8241" CreationDate="2010-10-12T11:03:50.987" Score="3" ViewCount="" Body="&lt;p&gt;Since the early days, it has been Del-fi in the US and Del-fee in Europe. Not sure about other areas. In the past I'd try to adapt the pronunciation to the audience, when speaking at conferences... lately I'm going for Del-fee as my standard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Embarcadero employee tend to follow local habits as well, when in Europe (for example David I in his recent tour used mostly Del-fee, following the local pronunciation).&lt;/p&gt;&#xA;" OwnerUserId="4600" LastActivityDate="2010-10-12T11:03:50.987" CommentCount="1" />
  <row Id="11247" PostTypeId="2" ParentId="11234" CreationDate="2010-10-12T11:11:49.950" Score="15" ViewCount="" Body="&lt;p&gt;My own company, yet to start and name it :)&lt;/p&gt;&#xA;" OwnerUserId="156" LastEditorUserId="156" LastEditorDisplayName="" LastEditDate="2010-10-12T11:17:25.563" LastActivityDate="2010-10-12T11:17:25.563" CommunityOwnedDate="2010-10-12T11:11:49.950" CommentCount="2" />
  <row Id="11248" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T11:17:26.827" Score="2" ViewCount="" Body="&lt;p&gt;Automation is about rules, reality is about exceptions. That's why programmers (and business analysts) need to analyze each project &quot;from scratch&quot; (at least to some extent).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you look at how programming evolved in the last years, all the things that got automated are about rules. They take some workload off from the programmer when it's about rules, leaving it up to him to code the logic for exceptions. That's why you often need to adapt auto-generated code to fit your very requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We could say, the art of programming is processing the exceptions to a set of logic rules, so that a framework, library, compiler or the CPU can apply those rules to support the business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short: There will always be a need for someone who asks for and points out the exceptions, transforms them into rules for whatever fancy automated code-generating system they will be using, and I'll call these people &quot;programmers&quot;.&lt;/p&gt;&#xA;" OwnerUserId="5085" LastActivityDate="2010-10-12T11:17:26.827" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11249" PostTypeId="2" ParentId="5531" CreationDate="2010-10-12T11:19:33.907" Score="0" ViewCount="" Body="&lt;p&gt;The failure to understand software as a network of state machines, the principles underlying their operation (states, their determination and transitions), and the interactions of the state machines.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-12T11:19:33.907" />
  <row Id="11250" PostTypeId="2" ParentId="8973" CreationDate="2010-10-12T11:21:42.313" Score="0" ViewCount="" Body="&lt;p&gt;I don't wish that anything from my past was different.  Why bother pondering past regrets?  Everything that I've done has helped shape who I am now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I get the feeling that your question is actually &quot;Help me decide which language I should learn first.&quot;  If so, I suggest it's a question that is a waste of time.  Instead of wasting time &lt;em&gt;thinking&lt;/em&gt; about what language you should learn first, spend your time actually doing the learning.  Then you can learn another one if that doesn't speak to you. The value of learning is 100% greater than the value of thinking about what you might do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ruby. Perl. Java. FORTRAN. Doesn't really matter. Pick one at random. Quit thinking and start doing.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-12T11:21:42.313" CommentCount="2" />
  <row Id="11251" PostTypeId="2" ParentId="11077" CreationDate="2010-10-12T11:32:27.017" Score="3" ViewCount="" Body="&lt;p&gt;that is the wrong question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the question is what sound is required by microsoft to recognize {?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the answer:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=KyLqUf4cdwc&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=KyLqUf4cdwc&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;be ware! its too funny to watch quietly at work.&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-10-12T11:32:27.017" />
  <row Id="11252" PostTypeId="2" ParentId="11234" CreationDate="2010-10-12T11:55:04.077" Score="-2" ViewCount="" Body="&lt;p&gt;Microsoft... because, at the moment, no one else (in the US, anyway) seems to want to employ F# wags.&lt;/p&gt;&#xA;" OwnerUserId="5088" LastActivityDate="2010-10-12T11:55:04.077" CommunityOwnedDate="2010-10-12T11:55:04.077" CommentCount="5" />
  <row Id="11254" PostTypeId="2" ParentId="8973" CreationDate="2010-10-12T12:09:12.743" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Pascal&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know it is not practical since Pascal it is of less use in the work life, but it is strongly typed language, so you learn to program the right way:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Variable definitions always at the start of a method.&lt;/li&gt;&#xA;&lt;li&gt;variables should be initialized before their use.&lt;/li&gt;&#xA;&lt;li&gt;no garbage collection, so you learn the memory model good.&lt;/li&gt;&#xA;&lt;li&gt;and many other points that I forgot.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4843" LastActivityDate="2010-10-12T12:09:12.743" />
  <row Id="11256" PostTypeId="2" ParentId="700" CreationDate="2010-10-12T12:33:05.060" Score="0" ViewCount="" Body="&lt;p&gt;Given the reluctance/resistance I've encountered on the part of management when trying to introduce more modern tools into corporate development groups I believe that native SQL hacking will continue unabated into the forseeable future.  Likewise, the existence of databases which are...ahem...&quot;other-than-functional&quot; (i.e. &lt;a href=&quot;http://www.laputan.org/mud/&quot; rel=&quot;nofollow&quot;&gt;Big Ball of Mud&lt;/a&gt;) militates for the continued presence of humans who can dig data out of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Share and enjoy.&lt;/p&gt;&#xA;" OwnerUserId="4848" LastActivityDate="2010-10-12T12:33:05.060" />
  <row Id="11257" PostTypeId="1" AcceptedAnswerId="11259" CreationDate="2010-10-12T12:35:08.690" Score="4" ViewCount="157" Body="&lt;p&gt;I'm interested in real experience and personal answers not just those standard worn out &quot;benefits of contributing to open source&quot; that we all memorized by heart by now. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've met many people who contribute to open source project and almost never did this topic come up: why did they contribute to this open source project. So, if you've contributed to an open source project before in any way, can you please pause for a second and try to remember what really made you decide to contribute to that particular project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Was it a random decision, was it because you were bored, was it because the company you worked for was already using it and you contributed as part of your job, was it because the project was too big you wanted to get contracts, or the project was too small you wanted to build it, or because your prof or co-worker asked you to help with his open source project, or..... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To substantiate your reasons, please mention the project name and rate your involvement (heavy, occasional, light, once). &lt;/p&gt;&#xA;" OwnerUserId="3839" LastEditorUserId="3839" LastEditorDisplayName="" LastEditDate="2010-10-12T12:40:55.980" LastActivityDate="2010-10-12T13:49:48.300" Title="What made you contribute to that open source project?" Tags="&lt;open-source&gt;" AnswerCount="5" />
  <row Id="11258" PostTypeId="2" ParentId="11188" CreationDate="2010-10-12T12:44:35.660" Score="7" ViewCount="" Body="&lt;p&gt;Oddly enough, from the &quot;agile&quot; projects I've been involved with, it seems more like a management excuse to skip the requirements-gathering phase than a cowboy desire to simply start coding.  My projects have been extremely frustrating because we don't &lt;em&gt;have&lt;/em&gt; any end-users to interact with.  Instead, we have a director who talks to sales to find out what they think customers want, then calls a meeting and describes it to the managers, who then start assigning tasks to developers.  On a &quot;good&quot; project we might have a PP presentation to refer to, but usually we wind up spending our daily scrum meetings asking how some feature's supposed to work, and the manager writes down the questions and asks the director.  It's a huge waste of time -- but it's &quot;agile&quot;!&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-10-12T12:44:35.660" CommunityOwnedDate="2011-03-19T17:28:35.220" CommentCount="2" />
  <row Id="11259" PostTypeId="2" ParentId="11257" CreationDate="2010-10-12T12:45:30.837" Score="8" ViewCount="" Body="&lt;p&gt;Because something was broken, and I needed to fix it for my own purposes anyway - why not share it with others in the same boat.&lt;/p&gt;&#xA;" OwnerUserId="4503" LastActivityDate="2010-10-12T12:45:30.837" />
  <row Id="11260" PostTypeId="2" ParentId="11257" CreationDate="2010-10-12T12:46:13.407" Score="4" ViewCount="" Body="&lt;p&gt;I like the idea that most open source contributors do it for something else than the &quot;benefits&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But because there is always a reason, conscious or not...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Some do it for the &lt;strong&gt;social&lt;/strong&gt; aspect. They meet people, they make new friends.&lt;/li&gt;&#xA;&lt;li&gt;Some do it for the &lt;strong&gt;status&lt;/strong&gt; it gives them. (StackOverflow like websites are based on that behavior).&lt;/li&gt;&#xA;&lt;li&gt;Some do it because they like to &lt;strong&gt;achieve&lt;/strong&gt; things. They like to solve problems. They like the idea that they are &lt;strong&gt;useful&lt;/strong&gt; in this world.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It's always a combination of more or less of the three.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm more of the last one, with a small amount of the first and the second.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Open Source has an additional behavior that is more &quot;practical&quot;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Some did it because they have to. Because of licensing terms, to clear they conscience, whatever.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-12T12:53:09.963" LastActivityDate="2010-10-12T12:53:09.963" CommentCount="5" />
  <row Id="11261" PostTypeId="2" ParentId="11257" CreationDate="2010-10-12T13:03:49.450" Score="2" ViewCount="" Body="&lt;p&gt;I did it to support the project. I loose if the project dies.&lt;/p&gt;&#xA;" OwnerUserId="5094" LastActivityDate="2010-10-12T13:03:49.450" />
  <row Id="11262" PostTypeId="2" ParentId="11131" CreationDate="2010-10-12T13:07:59.357" Score="8" ViewCount="" Body="&lt;p&gt;Every call to malloc() (or calloc()), will need exactly one corresponding call to free().&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes library functions will perform the malloc() for you (strdup() being a classic example) and the leave you to do the clean-up, the API specification should be able to tell you if you need to free() the returned pointer or not (sometimes, there is a resource release call that does all the de-allocation needed).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this toy example, there are two arrays, one that would require a free and one that will be automatically cleaned up:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void stupid_demo (void)&#xA;{&#xA;   char auto_cleaned[20];&#xA;   char *not_cleaned;&#xA;&#xA;   not_cleaned=malloc(20);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Since auto_cleaned is stack-allocated, there's no issue with it. However, since not_cleaned is allocated using malloc(), this (as written) is a memory leak.&lt;/p&gt;&#xA;" OwnerUserId="5084" LastActivityDate="2010-10-12T13:07:59.357" CommentCount="1" />
  <row Id="11263" PostTypeId="2" ParentId="11234" CreationDate="2010-10-12T13:11:54.760" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.fogcreek.com/&quot; rel=&quot;nofollow&quot;&gt;Fog Creek&lt;/a&gt;&lt;br&gt;&#xA;I like the idea of writing software for other developers, even though they are probably much more demanding as a general class of users. Also, the company seems like a cool place to work overall and everyone I've ever met from over there seems really nice and very smart.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Too bad I don't live in NYC or have any plans to ever move there.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-12T13:11:54.760" CommunityOwnedDate="2010-10-12T13:11:54.760" CommentCount="3" />
  <row Id="11264" PostTypeId="2" ParentId="5531" CreationDate="2010-10-12T13:16:35.517" Score="2" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Errare humanum est&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-12T13:16:35.517" />
  <row Id="11265" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T13:17:22.007" Score="0" ViewCount="" Body="&lt;p&gt;I've been hearing this (obsolete programmers) for the 20 years or so that I've been programming and it is no closer to being true today as the first time I heard it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I do suspect that programming salaries won't hold at these high rates forever. As a knowledge worker it is just too easy to farm our job overseas to countries with much lower standards of living. The free market is eventually going to put salaries at a level commensurate with the level of education required (not that much) to do this job. Frankly, I'm amazed (though happy) that it has held out this long.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-12T13:17:22.007" CommunityOwnedDate="2010-10-12T18:44:01.817" CommentCount="2" />
  <row Id="11266" PostTypeId="1" CreationDate="2010-10-12T13:22:42.867" Score="2" ViewCount="179" Body="&lt;p&gt;Now in the blurry state of mind because of some technology incomprehension and that's bringing me down into depths of depression which in case lead to - oh my god I am so dumb I can't understand that thing - state. &#xA;How do you deal with depression when you need to understand some new technology and code examples behind it fast and you brain is refusing to accept any type of new information?&#xA;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="4164" LastActivityDate="2010-10-12T19:41:18.503" ClosedDate="2010-10-12T21:48:08.227" Title="Technology incomprehension depression" Tags="&lt;psychology&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="1" />
  <row Id="11267" PostTypeId="2" ParentId="11234" CreationDate="2010-10-12T13:23:22.680" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://us.blizzard.com/en-us/company/careers/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Blizzard Entertainment&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have nothing but respect for them as a gamer. They consistently release awesome stuff (even before the Warcraft/Starcraft/Diablo craze caught on) and from everything I hear it would be a fantastic place to work as a dev. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Too bad it'd require relocating... they need an office in Canada.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-12T13:23:22.680" CommunityOwnedDate="2010-10-12T13:23:22.680" CommentCount="4" />
  <row Id="11268" PostTypeId="2" ParentId="11266" CreationDate="2010-10-12T13:27:17.780" Score="6" ViewCount="" Body="&lt;p&gt;Take a break. It doesn't matter what: play a game, read something, meditate, work up a sweat.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-12T13:27:17.780" />
  <row Id="11269" PostTypeId="2" ParentId="11266" CreationDate="2010-10-12T13:29:24.170" Score="3" ViewCount="" Body="&lt;p&gt;I thought that was supposed to be the fun part of programming? (getting in over your head). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It doesn't sound healthy if your getting depressed. &lt;/p&gt;&#xA;" OwnerUserId="5096" LastActivityDate="2010-10-12T13:29:24.170" />
  <row Id="11270" PostTypeId="2" ParentId="11266" CreationDate="2010-10-12T13:37:10.703" Score="2" ViewCount="" Body="&lt;p&gt;Stop reading MSDN magazine right now! Then make a super useful utility in &lt;em&gt;your&lt;/em&gt; &lt;a href=&quot;http://edn.embarcadero.com/&quot; rel=&quot;nofollow&quot;&gt;favorite language&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-12T13:37:10.703" CommentCount="2" />
  <row Id="11271" PostTypeId="2" ParentId="11234" CreationDate="2010-10-12T13:38:19.093" Score="0" ViewCount="" Body="&lt;p&gt;Back in my younger days, I would have chosen &lt;strong&gt;Borland&lt;/strong&gt;, &lt;strong&gt;Intel&lt;/strong&gt; or &lt;strong&gt;Microsoft&lt;/strong&gt; because I was quite enamored with compiler construction and would have loved to tinker with language design and turning high-level algorithms into optimal code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These days, I'm doing what I'm doing (workflow automation in the advertising industry) and am just pleased as punch to make my users happy.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-10-12T13:38:19.093" CommunityOwnedDate="2010-10-12T13:38:19.093" />
  <row Id="11272" PostTypeId="2" ParentId="11209" CreationDate="2010-10-12T13:39:15.753" Score="0" ViewCount="" Body="&lt;p&gt;Coder often may mean medical coder. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which, in my opinion, is only a little less mind numbing than coding medical coding software.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-12T13:39:15.753" />
  <row Id="11273" PostTypeId="2" ParentId="11234" CreationDate="2010-10-12T13:41:25.100" Score="4" ViewCount="" Body="&lt;p&gt;I would have loved to work for &lt;a href=&quot;http://www.lucasarts.com/&quot; rel=&quot;nofollow&quot;&gt;LucasArts&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On games like &lt;strong&gt;Maniac Mansion&lt;/strong&gt; or &lt;strong&gt;The Secret Of the Monkey Island&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the guys that worked on those games did not go to work at all. They went to their playground.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/oHW7s.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="17" LastEditorDisplayName="" LastEditDate="2010-10-12T13:55:20.963" LastActivityDate="2010-10-12T13:55:20.963" CommunityOwnedDate="2010-10-12T13:41:25.100" CommentCount="2" />
  <row Id="11274" PostTypeId="2" ParentId="11257" CreationDate="2010-10-12T13:42:35.823" Score="2" ViewCount="" Body="&lt;p&gt;I contributed an extension to a Squirrelmail plugin, because I wanted to use that functionality and it was not already available.&lt;/p&gt;&#xA;" OwnerUserId="5099" LastActivityDate="2010-10-12T13:42:35.823" />
  <row Id="11275" PostTypeId="1" CreationDate="2010-10-12T13:44:01.593" Score="7" ViewCount="188" Body="&lt;p&gt;If you know of an open source project whose organizer &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;has gotten really busy that he doesn't maintain it that much &lt;/li&gt;&#xA;&lt;li&gt;and he's the type of guy that doesn't accept contributions until a few months later (busy I guess) if at all&lt;/li&gt;&#xA;&lt;li&gt;and the project is starting to flounder &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;would you fork this project, give it a new name, and continue working hard on it and build a new community around it that's more encouraging to code contributions? Basically a better managed project since the concern now is bad management.&lt;/p&gt;&#xA;" OwnerUserId="3839" LastEditorUserId="3839" LastEditorDisplayName="" LastEditDate="2010-10-12T13:54:07.297" LastActivityDate="2010-10-12T14:52:35.893" Title="Would you fork an open source project because it's &quot;poorly managed&quot;" Tags="&lt;web-development&gt;&lt;open-source&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="11276" PostTypeId="2" ParentId="11266" CreationDate="2010-10-12T13:44:19.220" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;...when you need to understand some new technology and code examples behind it fast...&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Understanding new stuff doesn't happen fast. It's hard, slow work. But then, piece by piece things eventually fall in place. Frequent breaks to cool your brain are needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may need to adjust your expectations on what learning new stuff is supposed to be like. Depression may result from too big difference between your expectations and the real world.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-12T13:44:19.220" CommentCount="2" />
  <row Id="11277" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T13:44:31.480" Score="3" ViewCount="" Body="&lt;p&gt;When programmers are obsolete, so everyone else will be. As soon as an automated system can program other automated systems and reason as a programmer would, solving problems and implementing those solutions, what purpose has man? None. Welcome Skynet, the future is yours.&lt;/p&gt;&#xA;" OwnerUserId="3418" LastActivityDate="2010-10-12T13:44:31.480" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11278" PostTypeId="2" ParentId="11275" CreationDate="2010-10-12T13:45:42.490" Score="5" ViewCount="" Body="&lt;p&gt;I would fork it and do what I needed to do. If that attracted other people, keen to contribute, so be it. I wouldn't go out of my way to try lure people away. That's too much like politicking (for my taste).&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-12T13:45:42.490" CommentCount="1" />
  <row Id="11279" PostTypeId="2" ParentId="11257" CreationDate="2010-10-12T13:49:48.300" Score="2" ViewCount="" Body="&lt;p&gt;I contributed to an open source project that would have faded away had I not contributed. I'm happy to say that because I did contribute it's still around and has flourished a little more than anyone expected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I switched from Windows to a Mac, my favourite IM client wasn't available. There was a small project started to create one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It got into early alpha stages, was very buggy and crashy and eventually the author abandoned it. There were quite a few people using it at the time, and each time the IM service updated it's protocol, the client would get worse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started writing some fixes for it and before I knew it I had become it's developer. As it turned out, a couple of forks turned up, and the original project died back a little, yet I helped contribute to some of the forks too. The joys of open source!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now, an iPhone app I am actively working on is based on one of the forks that popped up for the IM protocol library. It's amazing how open source products can evolve and come full circle sometimes :)&lt;/p&gt;&#xA;" OwnerUserId="1732" LastActivityDate="2010-10-12T13:49:48.300" />
  <row Id="11280" PostTypeId="2" ParentId="11266" CreationDate="2010-10-12T13:49:53.767" Score="1" ViewCount="" Body="&lt;p&gt;I usually take a break and, when I come back, break the learning down into smaller bits. I try to come up with an application I could write and get a feel for things. Just reading examples can be either too overwhelming or give you a false sense of understanding and competence. Nothing beats hands-on experiments, and then the IDE can sometimes help you out too.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-12T13:49:53.767" />
  <row Id="11281" PostTypeId="2" ParentId="11275" CreationDate="2010-10-12T13:54:58.273" Score="12" ViewCount="" Body="&lt;p&gt;One should start by seeing if the current maintainer would be willing to let you take over. Since the issue is that he his busy, I would expect him to be willing to hand it off. If that works it is better for everyone involved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that fails, I'd suggest collecting contributions into a distribution that you maintain without making it a separate project. That way you work within the existing community. The hope is that eventually the maintainer will see the light and accept your offer to take over.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that fails, fork it. At that point you have gained some visibility and I think you'll attract some of the original community. But at the same time, you have made it clear its not your desire to split the community. &lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-10-12T13:54:58.273" CommentCount="2" />
  <row Id="11282" PostTypeId="2" ParentId="11204" CreationDate="2010-10-12T13:56:51.317" Score="1" ViewCount="" Body="&lt;p&gt;Sure, there's only so many times in one's career you can write a custom &lt;strong&gt;DAL&lt;/strong&gt; and/or &lt;strong&gt;ORM&lt;/strong&gt;, but it's still mighty fun and gives a broad knowledge of both language/framework constructs AND database technology.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-10-12T13:56:51.317" />
  <row Id="11283" PostTypeId="2" ParentId="11202" CreationDate="2010-10-12T14:00:08.970" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.yoda.arachsys.com/csharp/&quot; rel=&quot;nofollow&quot;&gt;Jon Skeet&lt;/a&gt;'s &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1933988363&quot; rel=&quot;nofollow&quot;&gt;C# in Depth&lt;/a&gt;.  Hands-down the best plain-English book which starts from the basics and dives into advanced concepts &lt;em&gt;when you're ready&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-10-12T14:00:08.970" CommentCount="3" />
  <row Id="11284" PostTypeId="2" ParentId="9245" CreationDate="2010-10-12T14:05:04.153" Score="0" ViewCount="" Body="&lt;p&gt;An implantable health monitor chip that send out signal in the event that health check fails and then brodcasts the signal out on free whitespace frequencies using a new peer to peer health protocol. A secondary signal is issued over wifi to connect and and make an authenticated web service call to a life registry service. It is carried viral over long distances through carriers and terminated if unsecured wifi is found and connect is successful or if found that registry service returns an already_dead response. The life registry service than executes a set of predefined actions set by you including but not limited to emailing necessary information/passwords to the people concerned and sent out final emails etc. :) &lt;/p&gt;&#xA;" LastActivityDate="2010-10-12T14:05:04.153" />
  <row Id="11285" PostTypeId="2" ParentId="5531" CreationDate="2010-10-12T14:06:23.270" Score="4" ViewCount="" Body="&lt;p&gt;Being incomplet&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-10-12T14:06:23.270" />
  <row Id="11286" PostTypeId="2" ParentId="11234" CreationDate="2010-10-12T14:13:22.103" Score="1" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://en.wikipedia.org/wiki/Justice_league&quot; rel=&quot;nofollow&quot;&gt;Justice League&lt;/a&gt;!  Who wouldn't want to proram the Justice League computer complete with the voice of &lt;a href=&quot;http://en.wikipedia.org/wiki/Casey_Kasem&quot; rel=&quot;nofollow&quot;&gt;Casey Kasem&lt;/a&gt;.  Yes I know I'm aging myself.&lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-10-12T14:13:22.103" CommunityOwnedDate="2010-10-12T14:13:22.103" CommentCount="1" />
  <row Id="11287" PostTypeId="2" ParentId="11199" CreationDate="2010-10-12T14:14:21.910" Score="4" ViewCount="" Body="&lt;p&gt;If you are continually in &quot;crisis release&quot; mode, I'd say it would be more prudent to take a step back and reevaluate your code and your process.  Obviously, there is some kind of failure there that just keeps getting repeated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While it may not be entirely possible to do this on a true production scale, but it would probably be worthwhile to have at least one senior member and some other subset of developers and testers be dedicated to this evaluation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;4 on at a time approach&quot; doesn't sound like a clear-cut winner to me.  That means constant context switching, which means far less efficiency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember, if you are constantly hurrying to make changes, you are much more likely to make mistakes in those changes, and break something else while you're doing it.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-10-12T14:14:21.910" CommentCount="1" />
  <row Id="11288" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T14:18:31.843" Score="1" ViewCount="" Body="&lt;p&gt;This is exactly what my father (first generation programmer) said to me, when I told him I would study computer science 25 years ago.&lt;/p&gt;&#xA;" OwnerUserId="1329" LastActivityDate="2010-10-12T14:18:31.843" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11289" PostTypeId="2" ParentId="11199" CreationDate="2010-10-12T14:22:24.297" Score="4" ViewCount="" Body="&lt;p&gt;Release cycles shorter than one week have certainly been achieved in the software industry.  They employ the technique called &lt;a href=&quot;http://continuousdelivery.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;continuous delivery&lt;/em&gt;&lt;/a&gt; (also called &lt;em&gt;continuous deployment&lt;/em&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a company that releases 50 times a day.  &lt;a href=&quot;http://timothyfitz.wordpress.com/2009/02/10/continuous-deployment-at-imvu-doing-the-impossible-fifty-times-a-day/&quot; rel=&quot;nofollow&quot;&gt;This blog post describes how they do it&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="464" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-10-15T16:47:00.427" LastActivityDate="2010-10-15T16:47:00.427" />
  <row Id="11290" PostTypeId="2" ParentId="11188" CreationDate="2010-10-12T14:29:28.150" Score="3" ViewCount="" Body="&lt;p&gt;Agile when done properly should have the effect of reining in &quot;cowboy&quot; technical leads and &quot;hero&quot; programmers.  If you don't observe this effect, that may be a sign that something important is missing from your agile implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to add that &quot;Agile&quot; is really an interface (I'm using an object-oriented metaphor here) and you cannot instantiate it.  If your concrete implementation of it is &lt;strong&gt;XP&lt;/strong&gt;, then you have to follow a bunch of technical practices with a lot of discipline, which leaves little room for cowboy programming.  Another possibility is that the teamwork of a well-self-organized &lt;strong&gt;Scrum&lt;/strong&gt; team will keep it in check.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-12T14:29:28.150" CommunityOwnedDate="2011-03-19T17:28:35.220" />
  <row Id="11291" PostTypeId="2" ParentId="5770" CreationDate="2010-10-12T14:43:14.187" Score="0" ViewCount="" Body="&lt;p&gt;The smallest device I have used for coding is my trusty eee PC. The smallest screen though was a &lt;a href=&quot;http://www.liteye.com/product.html&quot; rel=&quot;nofollow&quot;&gt;Liteye LE-750A&lt;/a&gt; head-mounted see-through display. We use it for some augmented-reality experiments at the university and I played a bit with it.&lt;/p&gt;&#xA;" OwnerUserId="4884" LastActivityDate="2010-10-12T14:43:14.187" />
  <row Id="11292" PostTypeId="2" ParentId="11275" CreationDate="2010-10-12T14:52:35.893" Score="3" ViewCount="" Body="&lt;p&gt;I would contact the original project organizer to see if he'd be willing to step aside and let you manage it. Of course, you need to build a good case as to why you would be better than him. If he's a decent guy who is willing to accept criticism, than you will work something out.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-12T14:52:35.893" />
  <row Id="11293" PostTypeId="2" ParentId="11222" CreationDate="2010-10-12T14:54:18.590" Score="0" ViewCount="" Body="&lt;p&gt;In addition to the other answers, I would just like to add that the study of algorithms is not just for knowing about well-known techniques (which is still important), but also to be able to understand about the thought process that goes into devising a solution to a problem you run into in real life, not necessarily well known.&lt;/p&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-10-12T14:54:18.590" />
  <row Id="11294" PostTypeId="2" ParentId="1059" CreationDate="2010-10-12T15:00:56.577" Score="1" ViewCount="" Body="&lt;p&gt;Objects have no more ability to deliver code reuse than a stairclimber or other fitness equipment can deliver weight loss. Developers have to be motivated to use tools properly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once software teams place a higher value on reusing tested code than they do on keeping all the details in their head, you'll see far more fine-grained objects and methods and hence more code reuse.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-12T15:00:56.577" />
  <row Id="11295" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T15:01:24.517" Score="1" ViewCount="" Body="&lt;p&gt;This is a good question, but I don't think you take the appropriate approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The goal of programming is to take advantage of programming languages to be able to talk to the machine, or to put it simply, understand how the machine works to make it do something we want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming languages are there for that and they ease the job a lot, but as computers become more powerful, it is obvious that we can do a lot more thing in the same amount of time, and the problem is different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You friend maybe meant that tools and libraries available speed up the programmer's task, and he maybe means that &quot;don't reinvent the wheel&quot; applies to most softwares, and thus programmers are just people who reuse existing stuff to deliver the right final application, just making adjustments. It is still a job, and it doesn't mean there are less things to do, because as computers go more powerfuls, you can implement a lot more, not just making it more precise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When thinking about the future and OOP, there are a lot to think about what is possible considering metaprogramming and AI: I don't think the road of computer languages is really &quot;done&quot; (I'm sure there is still to invent about semantics and programming languages). And to be able to have really smart machines, we would need neural networks, something which is not yet possible with the current computer architectures and power.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When we will come across such smart machines, maybe they will be able to solve programming problems, but for now, there are just softwares that ease solving them, we are still far from automatically solving them completely, and I guess it's more a problem of memory size and bandwidth than a lack of processor power.&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2010-10-12T15:01:24.517" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11296" PostTypeId="1" AcceptedAnswerId="11301" CreationDate="2010-10-12T15:23:05.993" Score="11" ViewCount="312" Body="&lt;p&gt;Over the Summer I found a cookie put on my computer by the school's network that seemed like it could be a problem. It stored authentication information and (long story short) I found if you put in other people's easily attainable information, you become signed in as them. Slow but sure, I discovered 3 security exploits that, when working together, compromised ALL security on the website. In theory I could sign in as teachers, access any student's email (with capabilities to send), adjust all grades, anything I wanted to do, I could do. They have since fixed this error, not only is the cookie gone, but the site is replaced with a Microsoft Sharepoint foundation instead of their &quot;roll your own&quot; system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I didn't research this to take advantage of the exploit. I did it because these exploits would allow MY information to be viewed by ANYBODY, a student of the school or not. So I went to my School's IT so that they would fix it. They did, and almost a month after they fixed, I decided to write a 2 page-ish article on my blog. I'd link to that page now except that the head of IT has asked that I take the page down. He claims we agreed that I'd never talk about the exploit to anybody outside of IT. I know I never agreed to that because since square one I wanted to take credit for my 3 or 4 weeks of hard investigation and work, I fully intended on telling people about the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wrote my article with discretion. I never mentioned the school's name and it had very little subjective content, it was primarily how I found the exploits, what they were, and how they could be used. The idea was that if I talked about it from the point of view of the discoverer, it'd show insight into how to develop against it. The school was very appreciative that I did not use these exploits and that I came straight to them with the intention of fixing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I only blog about Software Development concepts. Finding security holes in the wild like this is a perfect subject for my blog. Also, I want to make a name for myself in the cyber security world, Bruce Schneier linked me to an article in his blog talking about how if you want to make a name for yourself in the cyber security, you need to break ciphers, find security holes and fix them, and such.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, I feel I deserve credit for the hard work I did, they feel that the school's image is more important even though the security hole is more than fixed. What's the best way to go about getting my credit here?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have posted a pseudo censored version in the mean time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;UPDATE: no more pseudo censored version, I just put up a new article that's a little more ambiguous about it even being a school. &lt;a href=&quot;http://coreyogburn.com/post/2010/10/24/Censorship-and-Free-Speech.aspx&quot; rel=&quot;nofollow&quot;&gt;New article can be found here.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3369" LastEditorUserId="3369" LastEditorDisplayName="" LastEditDate="2010-12-03T01:20:59.560" LastActivityDate="2010-12-03T01:20:59.560" ClosedDate="2010-10-14T15:31:57.027" Title="Freedom of Speech vs. Computer Security" Tags="&lt;security&gt;&lt;recognition&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="1" />
  <row Id="11297" PostTypeId="1" CreationDate="2010-10-12T15:25:16.923" Score="10" ViewCount="368" Body="&lt;p&gt;What features make your favorite shell your favorite?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My boss uses tcsh and I have been using bash. It seems that &lt;a href=&quot;http://www.faqs.org/faqs/unix-faq/shell/shell-differences/&quot; rel=&quot;nofollow&quot;&gt;comparisons&lt;/a&gt; tend to rate &lt;a href=&quot;http://consult.cern.ch/writeup/shellchoice/main.ps&quot; rel=&quot;nofollow&quot;&gt;zsh highly&lt;/a&gt; (note the last link is a Postscript file). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;UPDATE:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something I thought bash did not have that tcsh did was &lt;code&gt;rehash&lt;/code&gt;. However, &lt;a href=&quot;http://fixunix.com/ubuntu/331001-where-rehash-command.html&quot; rel=&quot;nofollow&quot;&gt;this post&lt;/a&gt; indicates that you can do &lt;code&gt;hash -r&lt;/code&gt; in bash to achieve the same effect.&lt;/p&gt;&#xA;" OwnerUserId="3569" LastEditorUserId="3569" LastEditorDisplayName="" LastEditDate="2010-10-13T13:54:42.513" LastActivityDate="2010-10-13T13:54:42.513" Title="What is your favorite shell (zsh, tcsh, bash, other?) and why?" Tags="&lt;bash&gt;" AnswerCount="7" CommentCount="7" FavoriteCount="1" />
  <row Id="11298" PostTypeId="2" ParentId="11297" CreationDate="2010-10-12T15:28:30.830" Score="13" ViewCount="" Body="&lt;p&gt;Bash, for no other reason than I've used it for a long time and I've gotten used to it. I've thought about moving to zsh, but it doesn't seem to be worth it when I'm already happy and productive with bash.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-12T15:28:30.830" CommentCount="2" />
  <row Id="11299" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T15:31:26.050" Score="2" ViewCount="" Body="&lt;p&gt;As programmers, we all know that a computer can &lt;em&gt;only&lt;/em&gt; do what it is told.  Who's going to be telling it what to do?&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-10-12T15:31:26.050" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11300" PostTypeId="2" ParentId="11296" CreationDate="2010-10-12T15:32:38.450" Score="0" ViewCount="" Body="&lt;p&gt;I think you have to decide which is more important, taking the credit for finding the security flaw or your standing as a student. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming you in the USA, I think the school has most of the power if you are currently a student there. If you decide to push taking the credit, the school could push back saying that you violated the ethics they expect from their students and could try to expel you. Is that right? No, but it is how things seem to work in schools these days. &lt;/p&gt;&#xA;" OwnerUserId="1236" LastActivityDate="2010-10-12T15:32:38.450" CommentCount="3" />
  <row Id="11301" PostTypeId="2" ParentId="11296" CreationDate="2010-10-12T15:33:59.603" Score="9" ViewCount="" Body="&lt;p&gt;Of course you deserve credit for the hard work you did. But not at the expense of other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the head of IT asked you to remove the blog post, there is good chances that he thought it would be detrimental to him and/or the school.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The freedom ends where another's begins.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Now, I think it would be acceptable to publish something about your experience if:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You don't mention it's a school (people that know you will make the link)&lt;/li&gt;&#xA;&lt;li&gt;You don't mention real names or anything that may let people identify people or organizations.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-12T15:33:59.603" CommentCount="8" />
  <row Id="11302" PostTypeId="2" ParentId="11296" CreationDate="2010-10-12T15:35:57.240" Score="8" ViewCount="" Body="&lt;p&gt;Hold on to your article until you finish school. Once they don't have the upper hand (of possible suspension or expulsion), go ahead and post it and take all the credit you want.&lt;/p&gt;&#xA;" OwnerUserId="5126" LastActivityDate="2010-10-12T15:35:57.240" CommentCount="2" />
  <row Id="11303" PostTypeId="2" ParentId="11297" CreationDate="2010-10-12T15:36:19.440" Score="2" ViewCount="" Body="&lt;p&gt;Bash or whatever most other people are using at where I work. zsh is nice but is not yet pre-installed on most systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is an &lt;a href=&quot;http://www.unix.com/answers-frequently-asked-questions/12274-difference-between-ksh-bash-different-shells.html&quot; rel=&quot;nofollow&quot;&gt;interesting feature comparison&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-12T15:36:19.440" CommentCount="1" />
  <row Id="11304" PostTypeId="2" ParentId="5770" CreationDate="2010-10-12T15:38:54.643" Score="2" ViewCount="" Body="&lt;p&gt;I often use my Nokia N900 on the tube to code up little programming challenges like &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;project Euler&lt;/a&gt; or to try out new constructs/ideas I've just read about in language X and want to get a small working program to get a feel for how it works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not too bad as it has a slide out keyboard and I've got vim installed so text editing isn't too bad, but non-parenthesis brackets are still a bit of a pain though.&lt;/p&gt;&#xA;" OwnerUserId="4519" LastActivityDate="2010-10-12T15:38:54.643" CommentCount="2" />
  <row Id="11305" PostTypeId="2" ParentId="11296" CreationDate="2010-10-12T15:39:43.303" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A LONG LONG TIME AGO, I noticed a&#xA;  peculiarity on a section of SOME&#xA;  ESTABLISHMENT's website where all of&#xA;  the ESTABLISHMENT's services are&#xA;  centralized. Upon further inspection,&#xA;  it was a weakness in the site's&#xA;  authentication. For the record, ANY&#xA;  LIKENESS TO REAL EVENTS ARE PURELY&#xA;  COINCIDENTAL. This lead me to&#xA;  investigate what of THE information is&#xA;  made available through these exploits.&#xA;  I was driven to find out because THE&#xA;  information was available and you&#xA;  always assume that if you can get to&#xA;  it, anybody can.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Aside from the rediculous use of ALL UPPERCASE LETTERS TO ENSURE EVERYONE NOTICES YOU AREN'T TALKING ABOUT A PARTICULAR &lt;em&gt;ESTABLISHMENT&lt;/em&gt;, I would say it's fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some things to note:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Can they prove that this article is in some way connected to the school?&lt;/li&gt;&#xA;&lt;li&gt;Is the school administration asking you to take it down? If so then you need to meet with someone and discuss. If it's just the head of IT then I would say it's a pride issue.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-12T15:39:43.303" CommentCount="4" />
  <row Id="11306" PostTypeId="2" ParentId="11296" CreationDate="2010-10-12T15:42:07.413" Score="0" ViewCount="" Body="&lt;p&gt;I'd be inclined to check with someone higher-up than the IT-guy before you publish it - it was his mistake, and he should take the stick for it. Don't defend someone else's mistake at the cost of your own success.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastEditorUserId="3543" LastEditorDisplayName="" LastEditDate="2010-10-12T15:47:30.240" LastActivityDate="2010-10-12T15:47:30.240" CommentCount="8" />
  <row Id="11307" PostTypeId="2" ParentId="11296" CreationDate="2010-10-12T15:43:28.393" Score="1" ViewCount="" Body="&lt;p&gt;Did you sign anything saying you wouldn't talk about it?  What can he do if you post it? Honestly it look likes someone wanting to keep a huge mistake quite.  Post your blog entry, as long as it's discrete about the school it shouldn't be much of a problem. &lt;/p&gt;&#xA;" OwnerUserId="5131" LastActivityDate="2010-10-12T15:43:28.393" />
  <row Id="11308" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T15:44:05.617" Score="0" ViewCount="" Body="&lt;p&gt;When I was still in High School (I graduated in 1980), I predicted that programming was a non-starter, because computers would be programming themselves in 10 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Boy, was I wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I actually now believe that the era of well-engineered applications is just beginning.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-10-12T15:44:05.617" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11309" PostTypeId="2" ParentId="11188" CreationDate="2010-10-12T15:44:25.567" Score="0" ViewCount="" Body="&lt;p&gt;The reason while agile is putting very little emphasize on up-front design/specifications is not just because requirements may change. The deeper reason is that even when requirements are stable, specs tend to be:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;incorrect - fail to capture the requirements.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;inconsistent - riddled with contradictions because they contain enough information to make it impossible to the writer/reader to catch them.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;detached - they do not incorporate valuable feedback from a running (although degenerated) system. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4728" LastActivityDate="2010-10-12T15:44:25.567" CommunityOwnedDate="2011-03-19T17:28:35.220" />
  <row Id="11310" PostTypeId="2" ParentId="11234" CreationDate="2010-10-12T15:44:42.073" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.piriform.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Piriform&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;They make high quality, useful software, that I've used for years.&lt;/li&gt;&#xA;&lt;li&gt;The products are focused in scope (I'm not a huge fan of software that does tonnes of different things)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-12T15:44:42.073" CommunityOwnedDate="2010-10-12T15:44:42.073" />
  <row Id="11311" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T15:48:45.670" Score="0" ViewCount="" Body="&lt;p&gt;I feel like technology can't advance faster then human evolution, and the creation of new technology. When we as humans evolve we come up with new ideas, and new ways of doing things. These will still need to be programmed at least initially. I don't see a computer being able to advance technology, even at a programming level, on it's own. And, if that IS possible, don't we have bigger problems then programmers being obsolete? (See: The Matrix) If a computer can actually progress at a faster rate than the human that created it, it would change EVERYTHING, and a lot more then programmers would be out of a job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately the part about the decline in salary is correct, from what I've seen. Because of the automation of certain computer tasks readily available on the market, and things like SaaS, and even the increase in IT outsourcing, the programmer doesn't seem to be as important as it once was.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe we need a new term, instead of just &quot;programmer.&quot; We're automators, problem solvers, integrators, and efficiency increasers. So my question, to the rest of the &quot;programmers&quot; out there is: What would you call yourself?&lt;/p&gt;&#xA;" LastActivityDate="2010-10-12T15:48:45.670" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11312" PostTypeId="1" CreationDate="2010-10-12T15:49:07.183" Score="108" ViewCount="8499" Body="&lt;p&gt;I've been tasked with creating a fun and relaxing environment, one thing I know that I want is ergonomic mice and keyboards, others have suggested exercise balls and bands.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is it that every programmer needs while working? What might not be necessary but would be nice to have anyway?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: this question was asked previously, but has been recommended to be posted here. See this link for the previous responses: &lt;a href=&quot;http://stackoverflow.com/questions/3911911/stuff-every-programmer-needs-while-working-closed&quot;&gt;http://stackoverflow.com/questions/3911911/stuff-every-programmer-needs-while-working-closed&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5143" LastActivityDate="2011-05-28T04:40:38.757" CommunityOwnedDate="2010-10-12T21:33:42.510" ClosedDate="2011-05-25T15:11:39.737" Title="Stuff every programmer needs while working" Tags="&lt;work-environment&gt;" AnswerCount="90" CommentCount="9" FavoriteCount="64" />
  <row Id="11313" PostTypeId="2" ParentId="5770" CreationDate="2010-10-12T15:50:26.740" Score="0" ViewCount="" Body="&lt;p&gt;psion2. it sucked pretty bad&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/iJj5N.jpg&quot; alt=&quot;psion2&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="5142" LastActivityDate="2010-10-12T15:50:26.740" />
  <row Id="11314" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T15:54:44.217" Score="255" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Dual monitors&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-12T15:54:44.217" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="38" />
  <row Id="11315" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T15:57:57.223" Score="52" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Coffee Machine&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-12T15:57:57.223" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="10" />
  <row Id="11316" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T15:58:39.923" Score="143" ViewCount="" Body="&lt;h2&gt;Ergonomic chair&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I think one would definitely need an &lt;strong&gt;ergonomic chair&lt;/strong&gt; since most of your time is spent in front of the PC. If you are using a notebook then a &lt;strong&gt;notebook stand&lt;/strong&gt; would be nice as well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sufficient light, not too much noise and &lt;em&gt;coffee&lt;/em&gt; :)&lt;/p&gt;&#xA;" OwnerUserId="2849" LastEditorUserId="2849" LastEditorDisplayName="" LastEditDate="2010-10-13T10:15:32.413" LastActivityDate="2010-10-13T10:15:32.413" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="11" />
  <row Id="11317" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T16:10:21.987" Score="11" ViewCount="" Body="&lt;p&gt;An expensive but very good thing to have is an electrically height adjustable desk. Allows the developers to work sitting as normal or raise the desk (with the touch of a button) to a height that lets them work standing up.&lt;/p&gt;&#xA;" OwnerUserId="5148" LastActivityDate="2010-10-12T16:10:21.987" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="7" />
  <row Id="11318" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T16:11:12.063" Score="95" ViewCount="" Body="&lt;p&gt;A &lt;strong&gt;Do Not Disturb&lt;/strong&gt; option&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I actually like working in a place where I am not isolated all day long, where I am in tune with what else is going on in the office.  But sometimes the thing I need most is the ability to shut out all the noise, and to send a strong &quot; do not interrupt me unless there's a fire&quot; signal.  &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-12T16:11:12.063" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="5" />
  <row Id="11319" PostTypeId="2" ParentId="11188" CreationDate="2010-10-12T16:11:34.580" Score="3" ViewCount="" Body="&lt;p&gt;I am seeing defenses of Agile Development saying that it is not responsible for failures caused by cowboys. Success with Agile requires diligence and intelligence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This seems a reasonable position, as long as you apply the same concession to other methodologies. If you can't blame Agile for project failures caused by cowboys, you can't blame non-Agile methodologies for project failures caused by cowboys.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We can then argue whether there is a correlation (not causation!) between Agile and cowboys. With only anecdotal evidence, I believe there is. Is it perceived as a good way to get by with cowboy practices without being detected by management?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, if we accept that cowboys may not be evenly spread across methodologies, and we accept that cowboys undermine the successful use of a process, we have made it very difficult to test whether a process is successful. The claim that one process is better (within a context) becomes close to unfalsifiable. This is one of the issues that makes me hang my head in shame about my profession - the lack of scientific underpinning of many of the claims.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(By the way, I hate calling the alternative(s) to Agile &quot;waterfall&quot;, because waterfall processes seems to be a strawman that everyone attacks, but very few people ever actually used without any iteration.)&lt;/p&gt;&#xA;" OwnerUserId="5146" LastActivityDate="2010-10-12T16:11:34.580" CommunityOwnedDate="2011-03-19T17:28:35.220" CommentCount="8" />
  <row Id="11320" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T16:12:15.877" Score="71" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Proper Lighting&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either Natural, incandescent or indirect/diffused lighting is a big plus for me. Flourescent lighting makes me feel like I'm in a sweatshop and gives me a headache.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-12T16:12:15.877" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="8" />
  <row Id="11321" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T16:13:25.753" Score="21" ViewCount="" Body="&lt;p&gt;Paper &lt;em&gt;and&lt;/em&gt; pencil &lt;em&gt;and&lt;/em&gt; eraser!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are things that you just can't help but express better on paper. Initial drawings, sketches, etc.&lt;/p&gt;&#xA;" OwnerUserId="2093" LastEditorUserId="325" LastEditorDisplayName="" LastEditDate="2010-10-13T14:03:18.683" LastActivityDate="2010-10-13T14:03:18.683" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="3" />
  <row Id="11322" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T16:13:38.030" Score="16" ViewCount="" Body="&lt;p&gt;A nice &lt;strong&gt;note book&lt;/strong&gt; for taking notes with a pen or a pencil. As much as I love computers, I find having a nice note book for writing down ideas, taking notes during meetings, diagram drawings, etc. absolutely indispensable. &lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-12T16:13:38.030" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="2" />
  <row Id="11323" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T16:13:47.937" Score="162" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A large Whiteboard&lt;/strong&gt;&lt;br&gt;&#xA;Very handy for brainstorming and communicating ideas when working with other developers. Don't know if I could live without mine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW: Those tiny velcro attached CUBE white-boards don't cut it.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-12T16:13:47.937" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="7" />
  <row Id="11324" PostTypeId="2" ParentId="5770" CreationDate="2010-10-12T16:14:21.807" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://oldcomputers.net/hp85.html&quot; rel=&quot;nofollow&quot;&gt;The HP-85.&lt;/a&gt;  It was mobile... well, luggable.  32x16 character screen, HP BASIC built in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I also fiddled with Scheme running on the Handspring Visor (PalmPilot nephew), but someone else already mentioned the Visor.)&lt;/p&gt;&#xA;" OwnerUserId="1792" LastActivityDate="2010-10-12T16:14:21.807" />
  <row Id="11325" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T16:18:41.027" Score="3" ViewCount="" Body="&lt;p&gt;The best thing you could probably do, however I am unclear of your budget is get everyone maximum space and privacy (However these don't go well together). With this in place, programmers can create their own comfortable work environment&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-10-12T16:18:41.027" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="1" />
  <row Id="11326" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T16:20:44.903" Score="61" ViewCount="" Body="&lt;p&gt;Latest generation hardware, such as &lt;strong&gt;solid-state drives&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-12T16:20:44.903" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="16" />
  <row Id="11327" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T16:22:14.197" Score="3" ViewCount="" Body="&lt;p&gt;a computer, a mouse, a keyboard, and a monitor, a REALLY nice chair. oh, and google.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-12T16:22:14.197" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="1" />
  <row Id="11328" PostTypeId="2" ParentId="8241" CreationDate="2010-10-12T16:22:39.140" Score="6" ViewCount="" Body="&lt;p&gt;It's generally pronounced &quot;delf-eye&quot; in the US and &quot;delf-ee&quot; rest of world.  Even the Brits say &quot;delf-ee&quot;, so I don't know where the Americans got the odd pronunciation.  Probably from skipping Greek and Latin classes in school...&lt;/p&gt;&#xA;" OwnerUserId="5152" LastActivityDate="2010-10-12T16:22:39.140" CommentCount="3" />
  <row Id="11329" PostTypeId="2" ParentId="11188" CreationDate="2010-10-12T16:25:42.910" Score="3" ViewCount="" Body="&lt;p&gt;Agile is fine as long as it is working for your team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Far too many are selling it as a way to turn a bad team into a good team, and it just doesn't work that way.   You can't take bad people and apply a process to suddenly make them useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like many of the ideas behind agile, but the failure I see time and time again is that the managers are pushing a strict set of &quot;agile processes&quot;, which flies in the face of the entire concept of agile, that teams should be self-organizing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as &quot;cowboys&quot;, I find that for all the agile teams I've been on, the processes serve to slow them down more than let them go wild. I've never experienced a situation where agile served to &lt;em&gt;enable&lt;/em&gt; a &quot;cowboy coder&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For good teams, it seems to work well (then again, most processes seem to work well when you have a good team, funny how that works isn't it?).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For other teams, in my experience, it never helps the bad people do better, but it &#xA;&lt;em&gt;sometimes&lt;/em&gt; serves to bog down the productive people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall, I think the important thing is to build a good team, tell them what you need, and then get out of the way.  I don't think applying any string of buzzwords is likely to solve the problem of having a bad team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(If you haven't figured out from the above, I'm not a fan of &quot;Capitol-A Agile&quot; in the least.  On the other hand, I don't think it encourages cowboys either.)&lt;/p&gt;&#xA;" OwnerUserId="974" LastEditorUserId="974" LastEditorDisplayName="" LastEditDate="2010-10-12T16:31:00.320" LastActivityDate="2010-10-12T16:31:00.320" CommunityOwnedDate="2011-03-19T17:28:35.220" />
  <row Id="11330" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T16:29:35.490" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Quiet office with large windows&lt;/li&gt;&#xA;&lt;li&gt;Good ergonomic hardware&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2913" LastActivityDate="2010-10-12T16:29:35.490" CommunityOwnedDate="2010-10-12T21:33:42.510" />
  <row Id="11331" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T16:29:42.883" Score="218" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Smart Colleagues Who Enjoy Debating Solutions&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, the one thing that makes a fun and relaxing environment is the people you work with.  Surrounded with smart people who are passionate about software craftsmanship is a great way to do that.  Everything else is like dual monitors, helpful, but not vital.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find it interesting that most answers (up to this point) are physical things no one has mentioned the benefits of collaboration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can develop in a cave, but its easy to lose sight of the big picture.&lt;/p&gt;&#xA;" OwnerUserId="5138" LastActivityDate="2010-10-12T16:29:42.883" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="8" />
  <row Id="11332" PostTypeId="2" ParentId="11188" CreationDate="2010-10-12T16:29:50.573" Score="0" ViewCount="" Body="&lt;p&gt;Cowboy coders also tend to write code that is not very testable, and they tend to not like writing tests.  I think having everyone doing TDD can help reign in the cowboy attitude and make developers think about architecture a little more.  No methodology is perfect, of course.&lt;/p&gt;&#xA;" OwnerUserId="4949" LastActivityDate="2010-10-12T16:29:50.573" CommunityOwnedDate="2011-03-19T17:28:35.220" />
  <row Id="11333" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T16:44:11.507" Score="95" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Headphones&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/OO38J.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-12T16:44:11.507" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="17" />
  <row Id="11334" PostTypeId="1" CreationDate="2010-10-12T16:47:22.007" Score="6" ViewCount="167" Body="&lt;p&gt;Does your company have a written policy about contributing to open-source projects? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We've been contributing &quot;don't ask don't tell&quot; style, but it's time to write something down. I'd appreciate both full written policy text and bits and pieces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: we've made some progress since I asked this question and now have such a policy - read &lt;a href=&quot;http://code.dblock.org/ShowPost.aspx?id=140&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5162" LastEditorUserId="5162" LastEditorDisplayName="" LastEditDate="2010-11-04T15:42:20.007" LastActivityDate="2010-11-04T15:42:20.007" Title="Does your company have a written policy about contributing to open-source projects?" Tags="&lt;open-source&gt;&lt;contribution&gt;" AnswerCount="2" />
  <row Id="11335" PostTypeId="2" ParentId="5531" CreationDate="2010-10-12T16:47:58.150" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Schedule Pressure&lt;/strong&gt; is certianly a strong source.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rushed developers don't take the time to fully specify the requirements, or fully understand the intent behind requirements, or fully investigate alternates to find the best solution, or fully think through all the edge cases and interactions of the changes they are making, or develop a full set of test cases, or fully perform all the unit test, or perform a full integration test, or fully consider platform dependencies, or fully test out the installer, or fully document what they've done so the next developer can understand....&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-12T16:47:58.150" />
  <row Id="11336" PostTypeId="2" ParentId="11334" CreationDate="2010-10-12T16:49:51.677" Score="0" ViewCount="" Body="&lt;p&gt;We do not have a direct policy regarding this.  Long story short: work created at the university is owned by university unless declared prior to start of coding.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have discussed with my boss from time to time about this and we have not gone far with it as it becomes a political nightmare as the people who need to approve this do not quite understand open source software aside from the &quot;it is usually free&quot; idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;/me eagerly awaits others responses! &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-12T16:49:51.677" />
  <row Id="11337" PostTypeId="2" ParentId="8241" CreationDate="2010-10-12T16:56:39.750" Score="1" ViewCount="" Body="&lt;p&gt;After many years of working as an insider in Europe. My mission is not yet complete to have all of my American colleagues pronounce it properly... Del-fee :-)  ...but those of us in Embarcadero International will continue to work on it...great thread!&lt;/p&gt;&#xA;" LastActivityDate="2010-10-12T16:56:39.750" />
  <row Id="11338" PostTypeId="2" ParentId="11334" CreationDate="2010-10-12T16:59:11.090" Score="1" ViewCount="" Body="&lt;p&gt;I don't have any situation that I can directly cite, However I imagine that top Engineers and Programmers at major companies are forbidden from writing any other code for any other reason thats not beneficial to the company they work for. Of course this is purely speculative on my part.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-10-12T16:59:11.090" CommentCount="9" />
  <row Id="11339" PostTypeId="2" ParentId="9159" CreationDate="2010-10-12T17:03:31.477" Score="2" ViewCount="" Body="&lt;p&gt;Before you start being an agile programmer, you must aim to be a good programmer and software engineer. You cannot be the former without the later. Worry about code structure (including metrics such as LCOM and cyclomatic complexity), good practices, requirement analysis, software engineering, documentation, problem solving skills, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That statement your boss made really and honestly amounts to nothing. He's just juggling with buzzwords. The fact that they have you just watching someone code without you being able to really do anything (pair programming or not) indicates me that their understanding of agility is superficial at best. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All in all, avoid gluing yourself to buzzwords. In a perfect world, every project would be lean and agile. But, unlike the actual physical engineering disciplines, we are not even there to develop an engineering discipline, and many self-called agilists are anything but.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stick to the fundamentals and be good at them. Then focus about agility &lt;strong&gt;and pragmatism&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-12T17:03:31.477" />
  <row Id="11340" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T17:05:34.203" Score="8" ViewCount="" Body="&lt;p&gt;A &lt;strong&gt;decent chair&lt;/strong&gt;. (If you can afford it, a Herman Miller Mirra is absolutely wonderful for someone sitting in a chair for many hours a day.)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-12T17:05:34.203" CommunityOwnedDate="2010-10-12T21:33:42.510" />
  <row Id="11341" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T17:08:59.927" Score="0" ViewCount="" Body="&lt;p&gt;I think programming today is mostly about how to design solutions, the syntax of a language you can certainly to an extend auto generate but designing an elegant solution, a robust solution which can be proven to work in all conditions (think aircraft auto-pilot code), a high performance solution like a data warehouse which can handle terra bytes of data will still need talented software designers/programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then there is the regular &quot;next big think&quot; paradigm shift.  From Mainframes (1960/70's) to Client/Server (1980/1990's) to Internet (2000/...) to ...  It is hard to automate the future but a smart developer can adapt to it or maybe create it.&lt;/p&gt;&#xA;" OwnerUserId="2652" LastActivityDate="2010-10-12T17:08:59.927" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11342" PostTypeId="1" CreationDate="2010-10-12T17:14:27.007" Score="3" ViewCount="95" Body="&lt;p&gt;I want to contribute to an open source project, but I don't know much about unit testing. I want to learn how to test and then practice my skills on an open source. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will this also be acknowledged as a contribution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to first get my name out there and then conc. on development.&lt;/p&gt;&#xA;" OwnerUserId="2158" LastActivityDate="2010-10-12T18:52:59.390" Title="Is testing the easiest way to contribute to an Open Source Project?" Tags="&lt;unit-testing&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="11343" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T17:19:14.207" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Caffeine and a lot of patience...&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-10-12T17:19:14.207" CommunityOwnedDate="2010-10-12T21:33:42.510" />
  <row Id="11344" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T17:35:09.183" Score="2" ViewCount="" Body="&lt;p&gt;In the 1950s, assemblers were built to automate programming.  In 1959, COBOL appeared, with the promise of eliminating programmers from business applications.  People have been predicting the end of programmers for over sixty years now, and so far it hasn't come true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What has happened is that the job has changed.  Given COBOL instead of machine language, programmers could do more business applications, and with the falling price of computers it became possible for more enterprises to get computers and more functions to be automated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the 1980s, there was a belief that so-called fourth-generation languages would eliminate much of the need for programmers.  These languages were special-purpose, and generally either couldn't or shouldn't (think Excel macros before VBA) be used for general programming.  I watched a minicomputer acquisition that was supposed to do magical things with quarter time from a business analyst wind up with four full-time programmers and a backlog.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The real breakthrough of the time was shrinkwrap software, which a customer would buy and tailor his or her business procedures around.  Lots of businesses bought into that, but didn't wind up laying off programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nowadays, code generators and wizards are nice, but they're simply compilers, taking some sort of source code (whether text or dialog box entry) and compile it to a high-level language.  Like all forms of automatic programming, they translate one set of discrete inputs to a lower-level output form, requiring something very like a programmer to create the discrete inputs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing that has happened is that programmers have become far more efficient.  If there was a fixed need for programming, then, yes, there would be fewer programmers.  Instead, the demand continues because there's always more work to be done.  On the reasonable premise that there isn't a limited amount of programming that needs to be done and then nothing more to do, programmers will be in demand for the next sixty years also.  I don't know what languages and tools they'll be using, but they'll be there.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-12T17:35:09.183" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11345" PostTypeId="2" ParentId="874" CreationDate="2010-10-12T17:36:46.543" Score="5" ViewCount="" Body="&lt;p&gt;@Joe &quot;We are an &quot;Agile&quot; shop, so I get that we are supposed to adjust and what not, but sometime the change is large and nothing trivial. &quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your process doesn't allow you to control the rate of change in requirements, your process is not agile, but haphazard. Agile does not mean &quot;taking anything that comes my way.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To control requirement change/creep you can adopt - in your process - the notion that a requirement does not change (a notion that it's at the heart of Scrum.) Treat a requirement change as replacing an old requirement with a new one. You have to have a backlog of requirements, and you have to have the user choose which ones he/she wants to have implemented. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;You wanted X and Y in two weeks, but all of the sudden you want Z. Well, then I can deliver you all three in 4 weeks. Or I can give a pair (X and Z) or (X and Y) or (Y and Z) in two weeks and deliver the remaining one later. Choose.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is how you negotiate with customers. This is how you communicate the cost of requirement change. If your group does not have that power, you are not in an agile shop, and there is nothing that you can do about it. It sucks, but it's true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In case where you can negotiate, you have to track (with precision) the time it takes to implement requirements and requirement changes. That is, you have to collect this data from past and present projects. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You collect the original time estimate and the actual completion time (in addition to resources like developer count) per request (or module affected by N requests). Better yet, estimate the size of the request/request change (in terms of lines of code or function points in past projects and requests.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Say you  have a metric that you can talk to the user with. You know that a new request will take, say, 1K lines of code, or 10 web pages with an average of 5 input fields each (50 function points). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then by looking at historical data &lt;em&gt;specific&lt;/em&gt; to your past projects (some by lines of codes, some by web pages, some by actual function points), and you can estimate how each of these cost in terms of absolute completion time. For those with sufficient data, you can also identify those requirements that track an actual developer head count. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you use that and you tell your customer that based on historical data; you argue that project failures tend to follow a exponential distribution follow; and then you are armed with the following argument for your customer:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Based on data from our past and present projects and available resources, the requirement you are asking will take &lt;/p&gt;&#xA;&#xA;&lt;p&gt;X amount of time to complete with a 25% probability of failure (or 75% of success)&#xA;1.5 * X amount of time to complete with a 5% of failure (or 95% of success)&#xA;0.5 * X amount of time to complete with a 95% of failure (or 5% of success)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The probability of failure as a function of amount of time resources typically go 95%, 25% and 5% (resembling an exponential distro.) You convey the message that a certain baseline amount gives a somewhat decent chance of success (but with real risks). 1.5 of that might give almost a certain chance of success with minimal risk, but than much less than that (0.5 of the original guarantees almost certain failure.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You let them digest on that. If they still go for the risky proposition (&lt;em&gt;done yesterday!&lt;/em&gt;) at least you have in writing that you told them so. If there is hope for your group of not just being agile but engineering-like, then, the customer might put serious consideration into your numbers and schedule this and future requests accordingly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is your job as an engineer to explain in engineer, verifiable and clear terms that request changes are not a free meal.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-12T17:36:46.543" />
  <row Id="11346" PostTypeId="1" CreationDate="2010-10-12T17:38:00.697" Score="29" ViewCount="926" Body="&lt;p&gt;Opening up a &quot;hacker cafe&quot; in San Francisco has been a kind of passive dream of mine for a while, but the more I work here, the more I see the demand and the possibility of it happening. I can't think of a better place to ask for some feedback on what I should include in terms of environment, gadgets, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some ideas of mine include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Unlimited free coffee&lt;/li&gt;&#xA;&lt;li&gt;An external monitor to plug into at each station&lt;/li&gt;&#xA;&lt;li&gt;Vending machine with Jolt/Mtn Dew/[caffeine drink]&lt;/li&gt;&#xA;&lt;li&gt;TONS of outlets&lt;/li&gt;&#xA;&lt;li&gt;pull-down/up separators between work stations (if you want a little privacy)&lt;/li&gt;&#xA;&lt;li&gt;cupholders built into the desks&lt;/li&gt;&#xA;&lt;li&gt;open 24/7 or at least til late (maybe 3am?), maybe open like 11am to 3am&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you could think of something that you would love to see in a hacker-specific cafe, what would it be?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS I have seen &lt;a href=&quot;http://programmers.stackexchange.com/questions/11312/stuff-every-programmer-needs-while-working&quot;&gt;this question&lt;/a&gt;, and I like some of these ideas, but they are more for a work environment rather than a cafe environment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks, and I hope to turn this into a reality at some point! :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those who want to comment on the business end of things, I created a &lt;a href=&quot;http://programmers.stackexchange.com/questions/11371/what-would-be-a-fair-payment-structure-for-membership-to-a-hacker-cafe&quot;&gt;separate question&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4430" LastEditorUserId="4430" LastEditorDisplayName="" LastEditDate="2010-10-12T18:59:42.663" LastActivityDate="2010-11-20T01:13:59.793" Title="What would be in your ideal &quot;hacker cafe&quot;?" Tags="&lt;work-environment&gt;" AnswerCount="28" CommentCount="10" FavoriteCount="12" />
  <row Id="11347" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T17:41:01.077" Score="30" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Fast Internet Access!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wi-Fi and Cat-6/Gigabit Ethernet Cables coming up from the middle of the tables that hook me up to the fastest internet connection possible!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course!&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-12T17:41:01.077" CommentCount="4" />
  <row Id="11348" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T17:41:59.033" Score="13" ViewCount="" Body="&lt;p&gt;A sound-proof room with a conference table, chairs and a projector.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-12T17:41:59.033" CommentCount="3" />
  <row Id="11349" PostTypeId="2" ParentId="9814" CreationDate="2010-10-12T17:42:22.353" Score="0" ViewCount="" Body="&lt;p&gt;I've found it easier to talk about things on the task board/card wall/kanban board .&#xA;Talk only about what is blocking the movement of cards on the wall. Take anything else off line, if it it is not related to the cards on the wall.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This keeps the standup focussed and relevant.&#xA;Only let people in the team talk ( those who are working on things that are on the wall) everyone else has to be silent till the stand up is over&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Avoid technical discussions. Standups are about progress , removing blockers and communicating what everyone else is doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only let one person talk at a time. Have a standup token, only the person having the token may talk and they may hold the token only for a minute.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be disciplined and brutal. For a team of 5-6 shouldn't last longer than 10 minutes. Make it quick and snappy and full of energy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The stand up is for the team, no one else, not HR, not Management and not even the CEO. The team decides when to have the standup and the team sets the agenda.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have a look at common standup smells&#xA;&lt;a href=&quot;http://martinfowler.com/articles/itsNotJustStandingUp.html&quot; rel=&quot;nofollow&quot;&gt;http://martinfowler.com/articles/itsNotJustStandingUp.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5168" LastActivityDate="2010-10-12T17:42:22.353" />
  <row Id="11350" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T17:42:36.440" Score="0" ViewCount="" Body="&lt;p&gt;hackers! gotta have hackers! &lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-12T17:42:36.440" />
  <row Id="11351" PostTypeId="2" ParentId="11204" CreationDate="2010-10-12T17:43:22.500" Score="0" ViewCount="" Body="&lt;p&gt;OSI layer 1, and sometimes 2 and 3...but I'm an electrical engineer who just dabbles in software.&lt;/p&gt;&#xA;" OwnerUserId="4428" LastActivityDate="2010-10-12T17:43:22.500" />
  <row Id="11352" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T17:46:18.650" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Comfortable couches&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hackers need to take a nap sometimes.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-12T17:46:18.650" CommentCount="2" />
  <row Id="11353" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T17:47:55.123" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Foosball or pool table&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hackers need to take a break from hacking sometimes.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-12T17:47:55.123" CommentCount="3" />
  <row Id="11354" PostTypeId="2" ParentId="11131" CreationDate="2010-10-12T17:50:07.693" Score="6" ViewCount="" Body="&lt;p&gt;In all modern desktop and server operating systems, the OS will reclaim all memory at the end of execution.  If you write a program that is invoked to do something, does it, and quits, you can tolerate a lot of memory leakage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are, of course, a lot of programs that people start and leave running, and in these cases you have to be much more careful about your memory management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you allocated memory with &lt;code&gt;malloc()&lt;/code&gt; or &lt;code&gt;calloc()&lt;/code&gt;, you need to free it, or you'll have ever-growing memory use.  You do this by keeping track of the memory and calling &lt;code&gt;free()&lt;/code&gt; when you no longer need it, one and only one time per allocation.  (If you use &lt;code&gt;realloc()&lt;/code&gt;, it will free the memory you give it and allocate some more, so just consider it to be the same memory.)  You don't want to lose track of memory before you free it either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing this will affect the design of your program, since if you pay no attention to memory management in design it's really easy to wind up with chunks of memory that have no defined owner and an unknown lifetime, or even to losing memory allocations so they can never be freed.  However, that is how you do C programming.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-12T17:50:07.693" />
  <row Id="11355" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T17:52:09.850" Score="273" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The Internet&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Joel Spolsky said, &quot;The internet should be as freely available as air.&quot;&lt;/p&gt;&#xA;" OwnerUserId="5039" LastActivityDate="2010-10-12T17:52:09.850" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="24" />
  <row Id="11356" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T18:02:19.497" Score="17" ViewCount="" Body="&lt;p&gt;Free coffee and fast internet sounds really nice, but I feel it needs to be said that one thing you MUST have for this to avoid being a short-lived dream...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A workable business plan&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not saying you need to make money hand over fist from visitors, but you do need to make enough to cover the bills, support yourself, and recoup whatever you put into the place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just stating the obvious :P&lt;/p&gt;&#xA;" OwnerUserId="5169" LastActivityDate="2010-10-12T18:02:19.497" CommentCount="5" />
  <row Id="11357" PostTypeId="2" ParentId="11204" CreationDate="2010-10-12T18:02:39.433" Score="3" ViewCount="" Body="&lt;p&gt;Framework level. I enjoy building the tools others use. I'm not saying I'm an expert. :) Give me some acceptance criteria on the low level layers and I'm happy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not being very right-brained (and who's artistic talents grinds to screeching halt at stick figures), doing any UI work scares me.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-10-12T18:02:39.433" />
  <row Id="11358" PostTypeId="2" ParentId="5531" CreationDate="2010-10-12T18:03:00.117" Score="2" ViewCount="" Body="&lt;p&gt;Another thing which should be mentioned is not having an outsider test. When the developer writes the tests and runs them, he only tests his interpretation not the actual requirement.  While unit test written by the devs are useful to catch some bugs, most bugs will have passed these tests but not be what the user wants or needs. Any software not tested by someone other than the developer is not tested (And I don't mean just running the developer's tests).&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-12T18:03:00.117" />
  <row Id="11359" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T18:07:22.080" Score="16" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Meeting/Conference Rooms&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your programmers are going to be sharing a space, you might want some smaller conference room(s) off to the side for groups to meet and discuss projects without interfering with others.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-10-12T18:07:22.080" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="1" />
  <row Id="11360" PostTypeId="2" ParentId="6510" CreationDate="2010-10-12T18:09:46.143" Score="2" ViewCount="" Body="&lt;p&gt;I've found the following approach to be workable for the app I maintain:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The app is distributed as a single zip, that just has to be unzipped on a working PHP server.&lt;/li&gt;&#xA;&lt;li&gt;Navigating to the app automatically runs a set of sanity checks (PHP environment, app configuration). Errors explain in simple terms how to fix any issue that crops up.&lt;/li&gt;&#xA;&lt;li&gt;At first run, if the sanity checks pass, a configuration wizard is launched. This is disabled as soon as a settings file exists.&lt;/li&gt;&#xA;&lt;li&gt;All customer modifications are done in a special subfolder of the app, that they can copy over from old installs (backwards compatibility is maintained for this folder). Being able to do upgrades by unzipping files and copying around a few folders is a useful feature.&lt;/li&gt;&#xA;&lt;li&gt;The zip file itself is built with a command-line PHP script that is checked into the source repository. Doing a build is as simple as svn update followed by a call to build.php.&lt;/li&gt;&#xA;&lt;li&gt;Developer builds are made the same way as release builds, only with a &quot;-no-optimize&quot; flag passed to the build script to prevent minification and concatenation.&lt;/li&gt;&#xA;&lt;li&gt;The fact that the build script is itself PHP means that any developer can make changes to how the builds are made, without even having to log into our build server.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-10-12T18:09:46.143" CommentCount="2" />
  <row Id="11361" PostTypeId="2" ParentId="11204" CreationDate="2010-10-12T18:12:45.520" Score="1" ViewCount="" Body="&lt;p&gt;I actually find myself fascinated with the Human Computer Interaction part of developing. There's something unique about trying to meld the point at which the backend functionality meets the end user. Trying to think like a programmer in one regard and a user in another provides an exciting challenge to me. &lt;/p&gt;&#xA;" OwnerUserId="5003" LastActivityDate="2010-10-12T18:12:45.520" />
  <row Id="11362" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T18:13:25.090" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Ergonomic keyboard trays&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're going to be typing for most of the day, RSI will hit you at some point in your career.  These help relieve the stress.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-12T18:13:25.090" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="6" />
  <row Id="11363" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T18:18:30.313" Score="36" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2006/08/the-programmers-bill-of-rights.html&quot; rel=&quot;nofollow&quot;&gt;The programmers bill of rights&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="202" LastActivityDate="2010-10-12T18:18:30.313" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="1" />
  <row Id="11364" PostTypeId="2" ParentId="5531" CreationDate="2010-10-12T18:19:55.187" Score="2" ViewCount="" Body="&lt;p&gt;Rushing into things without fully understanding them. Starting to write code without fully understanding the functional requirements or the technical architecture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming should be almost automatic, just writing down that which is self-evident and has been already worked out in the mind. In practice, I see a lot of flailing in code to try to get a handle on exactly what the code is supposed to do. I've been guilty of this myself many times.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-10-12T18:19:55.187" CommentCount="2" />
  <row Id="11365" PostTypeId="2" ParentId="11297" CreationDate="2010-10-12T18:24:45.607" Score="2" ViewCount="" Body="&lt;p&gt;I like the &lt;a href=&quot;http://en.wikipedia.org/wiki/Es_shell&quot; rel=&quot;nofollow&quot;&gt;es based shells&lt;/a&gt; for their functional programming.&lt;/p&gt;&#xA;" OwnerUserId="5175" LastActivityDate="2010-10-12T18:24:45.607" CommentCount="2" />
  <row Id="11366" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T18:28:04.027" Score="18" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Massive whiteboards&lt;/strong&gt; and a &lt;strong&gt;secure&lt;/strong&gt; Internet connection.  &lt;/p&gt;&#xA;" OwnerUserId="1875" LastEditorUserId="1875" LastEditorDisplayName="" LastEditDate="2010-10-12T19:26:23.303" LastActivityDate="2010-10-12T19:26:23.303" CommentCount="1" />
  <row Id="11367" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T18:29:59.267" Score="5" ViewCount="" Body="&lt;p&gt;Some interesting hardware to connect to and try stuff out. I'm thinking about a ramped up DB server or web server. Perhaps other interesting hardware for testing/integrating into your project &lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-12T18:29:59.267" CommentCount="6" />
  <row Id="11368" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T18:31:00.320" Score="21" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Industrial strength air fresheners.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously. You're going to need them.&lt;/p&gt;&#xA;" OwnerUserId="3881" LastActivityDate="2010-10-12T18:31:00.320" CommentCount="4" />
  <row Id="11369" PostTypeId="2" ParentId="11342" CreationDate="2010-10-12T18:32:11.727" Score="1" ViewCount="" Body="&lt;p&gt;Those projects that practice unit testing would surely welcome decent, well-written tests. In projects that have been around a while, there's often all manner of functionality that hasn't been tested. Given that debugging and testing can be a bit of drudge work, projects often greatly appreciate someone taking the effort to do the necessary but not terribly sexy work. (Add writing documentation to the list of things-to-do!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We see it in &lt;a href=&quot;http://www.squeak.org/&quot; rel=&quot;nofollow&quot;&gt;Squeak&lt;/a&gt; all the time, for instance, where an excellent way for newcomers to get their feet wet is to write tests for something that doesn't already have tests.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-12T18:32:11.727" />
  <row Id="11370" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T18:35:44.997" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A password.&lt;/strong&gt;  I think it'd be awesome for a hacker cafe to have a 'secret password' you have to key before being let in.  Preferably one with a countdown timer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;oh, and a back room/cage for robot battles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, Halle Berry should be there.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-12T18:35:44.997" CommentCount="3" />
  <row Id="11372" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T18:38:53.263" Score="5" ViewCount="" Body="&lt;p&gt;PC componenets:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;High resolution&lt;/strong&gt; and/or &lt;strong&gt;wide screen monitor&lt;/strong&gt; having resolution at least &lt;strong&gt;1680x1050&lt;/strong&gt;, diagonally at least &lt;strong&gt;19&quot;&lt;/strong&gt;. Technology: &lt;strong&gt;LCD&lt;/strong&gt; or higher, having response time &amp;lt; 10 ms. &lt;strong&gt;Good color reproduction&lt;/strong&gt; and &lt;strong&gt;wide viewing angle&lt;/strong&gt; are also important (thanks to Billy).&lt;/li&gt;&#xA;&lt;li&gt;Processor should be &lt;strong&gt;Core 2 Duo&lt;/strong&gt; or higher.&lt;/li&gt;&#xA;&lt;li&gt;RAM should be &lt;strong&gt;2 GB&lt;/strong&gt; or higher.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fast (&gt;= 7200 RPM), large (&gt;= 320 GB)&lt;/strong&gt; hard disk. If possible, employ &lt;strong&gt;SSD&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;A set of &lt;strong&gt;exotic keyboard&lt;/strong&gt; and &lt;strong&gt;mouse&lt;/strong&gt;, possibly wireless.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Other:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Large enough&lt;/strong&gt; desk space.&lt;/li&gt;&#xA;&lt;li&gt;Free &lt;strong&gt;beverages&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5176" LastEditorUserId="5176" LastEditorDisplayName="" LastEditDate="2010-10-12T23:15:20.390" LastActivityDate="2010-10-12T23:15:20.390" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="11" />
  <row Id="11373" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T18:39:16.460" Score="42" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A Training Plan&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We're all expected to know everything about everything, new and old.  More often than not, we're expected to do so at our own time and expense.  Oh, sure, I was occasionally allowed to attend a conference, so long as it was 1.) free, and 2.) didn't take any time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that one thing I'd love to have is a training allotment of not only money, but time.  A small investment (a week and a class fee) by the employer pays off not only in increased knowledge and productivity, but also morale, and I'd argue even loyalty.  Why go somewhere else if you are letting me grow as an engineer?&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-10-12T18:39:16.460" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="5" />
  <row Id="11374" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T18:43:55.913" Score="5" ViewCount="" Body="&lt;p&gt;A set of team rooms so that people who want to work together can have a projector and whiteboards so they can flesh out their ideas together and get coordinated face to face instead of by e-mail or talking in the private work areas.  This would also reduce aisle meetings.&lt;/p&gt;&#xA;" OwnerUserId="5179" LastActivityDate="2010-10-12T18:43:55.913" />
  <row Id="11375" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T18:44:01.817" Score="3" ViewCount="" Body="&lt;p&gt;&quot;No silver bullet&quot; essay by Brooks (also included in 2nd edition of &quot;The Mythical Man Month&quot;) says that no single technology/method/process/idea can bring 10 times productivity in programming within a decade. This has held true since the very beginning till now. He explores various technologies/ideas that promises to bring in such productivity like AI, OOP, Automatic Programming/Code Generation etc and explains why they cannot bring in 10 times productivity within a decade. How can one eliminate programming completely, when we are still struggling to increase productivity?&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-12T18:44:01.817" CommunityOwnedDate="2010-10-12T18:44:01.817" />
  <row Id="11378" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T18:51:30.767" Score="8" ViewCount="" Body="&lt;p&gt;a lot of board games!&lt;/p&gt;&#xA;" OwnerUserId="488" LastActivityDate="2010-10-12T18:51:30.767" CommentCount="4" />
  <row Id="11379" PostTypeId="2" ParentId="11342" CreationDate="2010-10-12T18:52:59.390" Score="2" ViewCount="" Body="&lt;p&gt;Other than writing tests, here are other works that are relatively easy to get started with while you're familiarizing yourself with the project:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;triaging bugs&lt;/li&gt;&#xA;&lt;li&gt;testing patches subitted on the bug tracker &lt;/li&gt;&#xA;&lt;li&gt;preliminary patch review&lt;/li&gt;&#xA;&lt;li&gt;writing docs&lt;/li&gt;&#xA;&lt;li&gt;for smaller projects, packaging for package managers that they had not supported yet&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3733" LastActivityDate="2010-10-12T18:52:59.390" />
  <row Id="11380" PostTypeId="2" ParentId="11266" CreationDate="2010-10-12T18:56:13.613" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;turn off the computer&lt;/li&gt;&#xA;&lt;li&gt;go outside&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;(remember to wear pants)&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-10-12T18:56:13.613" />
  <row Id="11381" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T18:56:35.187" Score="4" ViewCount="" Body="&lt;h3&gt;Blacklights and Neon Paint&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Don't overlook the proper ambience in your ultimate hacker jungle experience.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If nothing else, at least include blacklights and neon paint in the bathroom.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-12T18:56:35.187" CommentCount="3" />
  <row Id="11383" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T19:03:39.593" Score="45" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A Bench Outside&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, sometimes the grind gets heavy, a problem is too hard, and you just need sunshine, air, and a moment to think while listening to cars drive by.  Nothing like a quiet place just off to the side of the building to go and think for a moment.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-10-12T19:03:39.593" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="6" />
  <row Id="11384" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T19:05:22.487" Score="7" ViewCount="" Body="&lt;p&gt;I'm pretty sure that if you ask this question to a roomful of programmers (i.e. here), the answers are all going to say &quot;YES!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The hidden question is, &lt;strong&gt;Why do non-programmers persist in thinking that programming will become obsolete?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Allow me to quote &lt;a href=&quot;http://programmers.stackexchange.com/questions/11153/will-programmers-be-around-in-a-few-years/11177#11177&quot;&gt;Bob Murphy&lt;/a&gt;, who hit the nail on the head but didn't really expand on this point:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;One of my personal favorites was that COBOL was going to put all the programmers out of work because business majors could write programs with English-like statements such as &lt;code&gt;ADD ONE TO I&lt;/code&gt; instead of &lt;code&gt;i++&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Putting on my armchair psychologist hat, there are a few cognitive biases at work here, most notably the &lt;a href=&quot;http://en.wikipedia.org/wiki/Focusing_effect&quot; rel=&quot;nofollow&quot;&gt;focusing effect&lt;/a&gt; and a lot of &lt;a href=&quot;http://en.wikipedia.org/wiki/Wishful_thinking&quot; rel=&quot;nofollow&quot;&gt;wishful thinking&lt;/a&gt;.  You could argue that there's even a bit of &lt;a href=&quot;http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect&quot; rel=&quot;nofollow&quot;&gt;Dunning-Kruger&lt;/a&gt; in there.  To make some sense of all this jargon:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Non-programmers, and especially those without &lt;em&gt;aptitude&lt;/em&gt; for programming, have &lt;em&gt;no understanding&lt;/em&gt; of what actually goes on inside a programmer's brain.  At the extreme end, you have people who only understand &quot;work&quot; as manual labour.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Being largely blind to the mental processes, they fixate (focus/anchor) on the one &lt;em&gt;physical&lt;/em&gt; process that they &lt;em&gt;can see:&lt;/em&gt;  &lt;strong&gt;code.&lt;/strong&gt;  They place an incredibly disproportionate weight on the relatively trivial task of &lt;em&gt;writing code&lt;/em&gt;.  They assume that this is the entire job, or at least the Hard Part, and that anyone who understands all of the different code words can write it.  This line of thinking is largely responsible for the Hollywood representation of &quot;hacking&quot; (&lt;code&gt;SEND SPIKE&lt;/code&gt; anyone?).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Thus assuming that they know all there is to know &lt;em&gt;about&lt;/em&gt; programming, even if they can't actually do it themselves (see Dunning-Kruger), they become incensed that such a simple process could be so expensive and error-prone and look for ways to reduce expenses and headaches.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Unsurprisingly, they fixate on activities that abstract away the &quot;coding&quot; aspect and, through much wishful thinking, assume that it is going to make programmers obsolete and that they'll be able to save a ton of cash.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Sometimes, if we're lucky, their endeavours - despite being useless to the general business community - actually turn out to be useful to the programming community and get co-opted as productivity-enhancing tools.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Of course, most of us spotted the error all the way back at bullet point #2 above.  But for the sake of those who have trouble articulating it, I will elaborate:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The mechanical act of writing code is actually one of the &lt;em&gt;least&lt;/em&gt; difficult tasks a programmer must do.&lt;/strong&gt;  The real difficulties lie in:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Interpreting requirements that are vague, ambiguous, conflicting, incorrect, or impossible;&lt;/li&gt;&#xA;&lt;li&gt;Determining edge conditions and exceptions, and how they should be handled;&lt;/li&gt;&#xA;&lt;li&gt;Breaking the project requirements down into a series of components;&lt;/li&gt;&#xA;&lt;li&gt;Further breaking down the components into a series of subcomponents, and so on;&lt;/li&gt;&#xA;&lt;li&gt;Working out how, specifically, all of the [sub]components will interact;&lt;/li&gt;&#xA;&lt;li&gt;Optimizing the design for maintainability, testability, adaptability, and performance;&lt;/li&gt;&#xA;&lt;li&gt;Analyzing bug reports to determine the cause (but generated apps will be perfect, right?)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Simply put, this is a &lt;strong&gt;sentient&lt;/strong&gt; process that simply cannot be replicated by a machine.  The mechanical act of writing code, sure, that can be automated, and has been; many of us use code-generation facilities on a regular basis, like generating a proxy to a web service or classes for a database schema.  The rest of it is &lt;em&gt;design&lt;/em&gt;; to repeat the analogy we've all heard and used so many times, programmers are the software equivalent of architects and foremen in the construction world; all of the actual construction work is &lt;em&gt;already&lt;/em&gt; being done by the computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, maybe not &lt;em&gt;all&lt;/em&gt;, but certainly &lt;em&gt;most&lt;/em&gt;.  We can always improve and &lt;em&gt;are&lt;/em&gt; improving upon the labour-intensive aspects of programming, one great example today being the state of ORMs.  They're not perfect, but they've gotten pretty damn good.  On the other hand, if we can't even rely on &quot;simple&quot; programmer-assisting tools like ORMs to do exactly the right thing 100% of the time, then there is virtually no hope of using an automated tool to create an entire application, unless said application does practically nothing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People who say that programmers are becoming obsolete generally believe that you just need to write a detailed enough &lt;strong&gt;specification&lt;/strong&gt; so that the computer can interpret it and produce a full-fledged product.  Of course, that &quot;specification&quot; would have to be in a standard form in order to eliminate all possible ambiguities.  And it would have to use a specific syntax, in order to avoid all of the problems associated with natural-language processing.  And what do you call a formal syntax for fully-describing the specifications of a software product?  A &lt;em&gt;programming language&lt;/em&gt;.  And who is going to write the &quot;specifications&quot; for this language?  &lt;em&gt;Programmers!&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="3249" LastActivityDate="2010-10-12T19:05:22.487" CommunityOwnedDate="2010-10-12T19:05:22.487" />
  <row Id="11385" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T19:06:22.107" Score="13" ViewCount="" Body="&lt;p&gt;Great tools. Be it editors, debuggers, compilers, OS, VCS whatever we are most comfortable and productive with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Open standards. This gives us flexibility to use tools of our choice to work with. So no MS Exchange emails solution, no doc, docx, xls, ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simple processes. The mundane should be either taken care, or the process should be simple enough so as not to come in between what we love the most.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Extra chair, available nearby. Very useful if we want to discuss something with your peer or during code reviews.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Biggest baddest monitor you can get. Get as much screen real estate as possible. Whatever helps us see more code at once. This includes dual/multiple monitors, though I personally find it difficult to use multiple monitors. So I prefer one single large high resolution monitor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Comfortable keyboard and mouse placed at proper height and distance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;White board, notepad (preferably unruled), pencil (a pen will not do, most admins fail to see the difference), board markers (multiple colors) ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The usual stuff that applies to any other desk job - proper lighting, air circulation, space, regular supply of fresh coffee, quiet environment, ...&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-12T19:06:22.107" CommunityOwnedDate="2010-10-12T21:33:42.510" />
  <row Id="11387" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T19:11:48.260" Score="69" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Silence.&lt;/li&gt;&#xA;&lt;li&gt;Silence.&lt;/li&gt;&#xA;&lt;li&gt;Silence.&lt;/li&gt;&#xA;&lt;li&gt;A flat keyboard + any number of gadgets wanted by the programmer (and this varies).&lt;/li&gt;&#xA;&lt;li&gt;Own office.&lt;/li&gt;&#xA;&lt;li&gt;Freedom from ridiculous inquiries by non-tech staff, including some clueless (technology-wise) CEOs.&lt;/li&gt;&#xA;&lt;li&gt;Access to educational resources, like books.&lt;/li&gt;&#xA;&lt;li&gt;Headphones and a large share with selection of great music.&lt;/li&gt;&#xA;&lt;li&gt;Free food is appreciated, though not necessarily a major plus.&lt;/li&gt;&#xA;&lt;li&gt;Ability to work with cool technologies, whether it's just the cutting edge release of a framework, or implementing a fuzzy controller for sorting numbers (I know this is a very dumb example, it's here for illustration purposes).&lt;/li&gt;&#xA;&lt;li&gt;Silence.&lt;/li&gt;&#xA;&lt;li&gt;A no-noise environment&lt;/li&gt;&#xA;&lt;li&gt;Coworkers who do not speak&lt;/li&gt;&#xA;&lt;li&gt;Call-out-only phone&lt;/li&gt;&#xA;&lt;li&gt;Quiet working environment.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5185" LastEditorUserId="12348" LastEditorDisplayName="" LastEditDate="2011-02-08T16:58:58.007" LastActivityDate="2011-02-08T16:58:58.007" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="16" />
  <row Id="11388" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T19:17:28.220" Score="2" ViewCount="" Body="&lt;p&gt;Virtual servers ready to go and the ability to save the state of them for return trips.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whiteboards have been mentioned but the ability to record what is on the whiteboard would also be needed.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-10-12T19:17:28.220" CommentCount="1" />
  <row Id="11389" PostTypeId="2" ParentId="11204" CreationDate="2010-10-12T19:20:08.163" Score="2" ViewCount="" Body="&lt;p&gt;The toolbox :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I could have said framework too, but I don't really like frameworks in general: whenever you get a framework there's always something that just don't work the way you'd like and you find yourself hacking around it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However I really enjoy making collections of lean utilities: simple and efficient, and then I can reuse them in multiple situations... and others can reuse them too.&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2010-10-12T19:20:08.163" />
  <row Id="11390" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T19:21:31.207" Score="54" ViewCount="" Body="&lt;p&gt;A door.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, everybody should have an office with a door they can shut when they really, really need to get some work done. You can leave it open most of the day, but for those times when you're carrying a lot of state in your head and you &lt;em&gt;really&lt;/em&gt; don't care about some random media event or sub-culture in-joke, you need a door you can close.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also like a good solid wall I can kick if I need to, but that's probably just me.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastEditorUserId="325" LastEditorDisplayName="" LastEditDate="2010-10-13T14:04:41.673" LastActivityDate="2010-10-13T14:04:41.673" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="6" />
  <row Id="11391" PostTypeId="2" ParentId="39" CreationDate="2010-10-12T19:21:35.980" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I don't understand why cheerleaders&#xA;  won't talk to me. Maybe I don't throw&#xA;  five touchdowns against Newport High,&#xA;  but let's see one of those football&#xA;  morons program in assembly language!&#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; Chris Lipe&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="837" LastActivityDate="2010-10-12T21:24:56.483" CommunityOwnedDate="2010-10-12T19:21:35.980" />
  <row Id="11392" PostTypeId="2" ParentId="6042" CreationDate="2010-10-12T19:24:05.647" Score="3" ViewCount="" Body="&lt;p&gt;Functional programming is an odd beast for me.  I learned F# and Haskell, wrote a few simple programs and love using them, but never had the &quot;flash of revelation&quot; that some people talk about.  But slowly, I noticed that more and more I was writing code that was meant to be immutable, breaking up tasks into more, smaller functions, and trying to use delegates a lot more.  Its a thing that, if you like it, creeps into your work because the value of those techniques are self-evident.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, more practically for training:&#xA;I find that two concepts really click Functional Programming as a style to me.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, FP style is based on structure of data, not composition as in OOP.  I looked at something like List in C# as being a clever trick to generate type-safe lists, something that composed the type (string) into the other type (list).  After learning FP, I look at generics more like Monads now.  List is a structured form that code can take, and it decorates the strings.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, and perhaps more useful to C#/ASP programmers, is the idea that FP works on recursion and repetition, while OOP works on mutability and looping. I tend to think of the ASP page lifecycle as a kind of FP now: each request is processed from scratch through the entire life-cycle, so the entire page is, in effect, one big slowly recursing program.  If you can narrow that notion down, you get a better idea of how an imperative program can be structured around loops of functions that take in data, operate over it, and return out new data instead of modifying the old.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The trickiest hurdle, at least for me, to overcome with this approach is that sinking feeling that you're wasting tons of resources when using mutable objects would save a ton of memory.  In GC we trust, and I just had to learn to let go of performance concerns until I'd actually seen the program run and verified if there even were any, and if so to use a profiler to see exactly where the problems were.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-10-12T19:24:05.647" CommentCount="1" />
  <row Id="11393" PostTypeId="2" ParentId="11266" CreationDate="2010-10-12T19:24:42.073" Score="0" ViewCount="" Body="&lt;p&gt;Get thee to a whiteboard!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beside the possibility that you may need a break, I suggest simplification, divide-and-conquer and drawing some pictures.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally speaking, when trying to comprehend a difficult topic, it's best to first take a high level view (simplification), tackle individual areas (divide-and-conquer), and then put it all together.  Being a visual thinker, I find that drawing pictures usually helps.  A whiteboard/chalkboard would be best, but a stack of scrap paper and a pencil works fine as well.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-10-12T19:24:42.073" />
  <row Id="11394" PostTypeId="2" ParentId="11266" CreationDate="2010-10-12T19:26:03.397" Score="0" ViewCount="" Body="&lt;p&gt;First, consider releasing some stress however you normally do it,e.g. exercise, video games, venting to someone, volunteering or watching something or someone.  This is to clear your head as well as get your body into a good state to pick up something.  Second, do you know how you learn?  Some learn with pictures, some words, some orally, having someone around to help, formal classes, etc. Another point here is to consider how much do you have to know to do what was asked?  Sometimes things can be made much larger than they are, which I've done many times and probably will again.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-12T19:26:03.397" />
  <row Id="11395" PostTypeId="2" ParentId="11297" CreationDate="2010-10-12T19:26:36.627" Score="2" ViewCount="" Body="&lt;p&gt;I use zsh because it offers a number of features that make my life marginally easier, such as:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;powerful prompt customization&lt;/li&gt;&#xA;&lt;li&gt;vcs_info to put VCS information into the prompt&lt;/li&gt;&#xA;&lt;li&gt;more powerful programmable completion&lt;/li&gt;&#xA;&lt;li&gt;global aliases&lt;/li&gt;&#xA;&lt;li&gt;chpwd_functions, for per directory profiles&lt;/li&gt;&#xA;&lt;li&gt;autocd: enter directory name to change into it&lt;/li&gt;&#xA;&lt;li&gt;REPORTTIME variable&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Each of these things by themselves probably wouldn't be worth the bother, but the sum makes the difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use zsh only for interactive use; I still write shell scripts in bash or portable shell, mainly for portability, and also because programming in zsh isn't actually that much better.&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-10-12T19:26:36.627" />
  <row Id="11396" PostTypeId="2" ParentId="5531" CreationDate="2010-10-12T19:32:40.617" Score="2" ViewCount="" Body="&lt;p&gt;It's because software engineering is inherently complex.  The essay &quot;No Silver Bullet&quot; discusses this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ironically, many of the other answers here touch on topics that are &quot;accidentally complex&quot;, in the language of that essay, whereas in reality most of what software developers do is &quot;essentially complex&quot;, so it's just in the nature of it that creating software is difficult, software will have bugs, and our job is to deal with it.&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-10-12T19:32:40.617" />
  <row Id="11397" PostTypeId="1" AcceptedAnswerId="11398" CreationDate="2010-10-12T19:32:48.640" Score="12" ViewCount="436" Body="&lt;p&gt;I am asking because I am interested by a lot of questions that are getting closed recently. I understand that the moderators want Programmers.SE to be a place for answers, not discussion, however I enjoy the discussion and find I can learn a lot from it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit #2&lt;/strong&gt;&#xA;Removed examples from here and posted them on &lt;a href=&quot;http://meta.programmers.stackexchange.com/questions/431/is-programmers-se-a-discussion-board-or-a-qa-board&quot;&gt;meta &lt;/a&gt; per suggestion. Would like to have my original question answered instead of this turning into a discussion about Programmers.SE&lt;/p&gt;&#xA;" OwnerUserId="1130" LastEditorUserId="1130" LastEditorDisplayName="" LastEditDate="2010-10-13T12:58:09.710" LastActivityDate="2011-01-14T18:35:41.863" Title="Is there a good site for programmers to discuss culture, stories, opinions, or whatever?" Tags="&lt;culture&gt;" AnswerCount="5" CommentCount="7" FavoriteCount="3" />
  <row Id="11398" PostTypeId="2" ParentId="11397" CreationDate="2010-10-12T19:36:19.643" Score="8" ViewCount="" Body="&lt;p&gt;Yeah... &lt;a href=&quot;http://programmers.stackexchange.com&quot;&gt;http://programmers.stackexchange.com&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-10-12T19:36:19.643" CommentCount="5" />
  <row Id="11399" PostTypeId="2" ParentId="11234" CreationDate="2010-10-12T19:36:43.603" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.apple.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;Apple&lt;/code&gt;&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One major reason would be &lt;a href=&quot;http://en.wikipedia.org/wiki/Steve_Jobs&quot; rel=&quot;nofollow&quot;&gt;Steve Jobs&lt;/a&gt; but also since I  love most of their products and would love to work on the iphone X which will change everything again :)&lt;/p&gt;&#xA;" OwnerUserId="2457" LastEditorUserId="2457" LastEditorDisplayName="" LastEditDate="2010-10-12T19:44:11.593" LastActivityDate="2010-10-12T19:44:11.593" CommunityOwnedDate="2010-10-12T19:36:43.603" CommentCount="2" />
  <row Id="11400" PostTypeId="1" AcceptedAnswerId="11442" CreationDate="2010-10-12T19:36:46.993" Score="10" ViewCount="389" Body="&lt;p&gt;When is it useful to use a captcha? When is it an unnecessary hindrance? Is a captcha just a quick fix for the lazy/unexperienced programmer, or are they really the best way to prevent spam and bots? &lt;/p&gt;&#xA;" OwnerUserId="5025" LastActivityDate="2011-04-05T18:58:40.107" Title="Are captchas worth the decreased usability?" Tags="&lt;recommendations&gt;&lt;users&gt;" AnswerCount="8" CommentCount="2" />
  <row Id="11401" PostTypeId="2" ParentId="11397" CreationDate="2010-10-12T19:36:55.887" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.dreamincode.net/&quot; rel=&quot;nofollow&quot;&gt;Dream in Code&lt;/a&gt;&lt;br&gt;&#xA;A decent forum with lots of discussions about programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt; downvote, really?  I don't think there is anything wrong with this answer.&lt;/p&gt;&#xA;" OwnerUserId="1013" LastEditorUserId="1013" LastEditorDisplayName="" LastEditDate="2010-10-12T23:00:27.080" LastActivityDate="2010-10-12T23:00:27.080" CommentCount="5" />
  <row Id="11402" PostTypeId="2" ParentId="11297" CreationDate="2010-10-12T19:39:14.630" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://fishshell.org&quot; rel=&quot;nofollow&quot;&gt;fish&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't usually do anything too complicated, so I like the user friendliness of fish. I've found the tab completion and syntax highlighting more intelligent and more useful than other shells. That isn't to say fish can't do complex things, but I've never tried so I can't speak to it.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastEditorUserId="1360" LastEditorDisplayName="" LastEditDate="2010-10-13T00:03:59.233" LastActivityDate="2010-10-13T00:03:59.233" CommentCount="1" />
  <row Id="11403" PostTypeId="2" ParentId="11400" CreationDate="2010-10-12T19:39:44.543" Score="1" ViewCount="" Body="&lt;p&gt;In my experience captchas are the best way to prevent spam, no matter how well the form is programmed there will always be a spam bot better than your app.&lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-10-12T19:39:44.543" />
  <row Id="11404" PostTypeId="2" ParentId="11400" CreationDate="2010-10-12T19:41:07.130" Score="3" ViewCount="" Body="&lt;p&gt;There are other way to prevent spam and bots, but captcha's work the best.  Sometimes asking a simple question on a form like &quot;2+10=&quot; or &quot;Are you human?&quot; works fine as a captcha, for a while at least.  &lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-10-12T19:41:07.130" />
  <row Id="11405" PostTypeId="2" ParentId="11266" CreationDate="2010-10-12T19:41:18.503" Score="0" ViewCount="" Body="&lt;p&gt;Sometimes, if you can, it's best to do something fun that you enjoy with a new tech, then worry about the practicalities and requirements later.  Sometimes just a simple change of the context around the new tech can excite you towards it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often one silly thing I'll do when learning a new library or language is try to port something, like writing a wrapper for the library in a language I like or writing a simple game in a new language.  I usually don't even finish the ports, but forcing myself to focus on a tangent to the original topic (how do I get this to work in Haskell?) will expose me to the &quot;cool bits&quot; of the thing I was afraid of. (hey, that function is neat, let me go back to my project and see if I can use that!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have a foot hold into it, you can explore outwards from there.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-10-12T19:41:18.503" />
  <row Id="11406" PostTypeId="2" ParentId="11397" CreationDate="2010-10-12T19:41:41.413" Score="5" ViewCount="" Body="&lt;h3&gt;&lt;a href=&quot;http://www.reddit.com/&quot; rel=&quot;nofollow&quot;&gt;Reddit&lt;/a&gt;&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Not much seems to be truly off topic there.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-12T19:41:41.413" CommentCount="2" />
  <row Id="11407" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T19:43:39.923" Score="9" ViewCount="" Body="&lt;p&gt;Some protocol for meal breaks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either you put in a bar and sell snacks, sandwiches, and beverages, and handle the pizza orders for the clientele.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or people will want some way to lock up their workstation and stow their stuff when they step out for 30 min to get food.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will probably want something in the middle.  Coffee and jolt supply sounds nice, but if you want to have regulars, you need to offer something that is not directly designed to ruin your health. ;-)&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-10-12T19:43:39.923" CommentCount="4" />
  <row Id="11408" PostTypeId="2" ParentId="11397" CreationDate="2010-10-12T19:44:35.263" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://news.ycombinator.com/&quot; rel=&quot;nofollow&quot;&gt;Hackernews&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Part of ycombinator is a great place.  Current news, discussion of specific articles but also ability to ask questions.  &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-12T19:44:35.263" />
  <row Id="11409" PostTypeId="2" ParentId="11400" CreationDate="2010-10-12T19:50:21.233" Score="2" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://en.wikipedia.org/wiki/ReCAPTCHA&quot; rel=&quot;nofollow&quot;&gt;reCaptcha&lt;/a&gt; because it cuts 90% of the spam out with 5% effort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't had people complain that the captcha is hard, makes things more difficult, or has any decreased usability either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Spammers and bots are abundant. It's very easy to scrape a form and start submitting bad requests &lt;em&gt;en masse&lt;/em&gt;. It is a simple, secure, &lt;em&gt;proven&lt;/em&gt; way to significantly reduce spam and bots. It's not a quick fix for the lazy or inexperienced, rather experience has led to this solution and it is now easy to implement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do I &lt;em&gt;like&lt;/em&gt; captchas? Hell no. Squiggly lines, what does it mean, opps I entered it wrong. It &lt;em&gt;is&lt;/em&gt; effective though. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-12T19:50:21.233" CommentCount="6" />
  <row Id="11413" PostTypeId="2" ParentId="11400" CreationDate="2010-10-12T19:56:39.727" Score="4" ViewCount="" Body="&lt;p&gt;Using &lt;a href=&quot;http://www.rustylime.com/show_article.php?id=676&quot; rel=&quot;nofollow&quot;&gt;honeypot fields&lt;/a&gt; is/was a method to reduce spam at no real usability cost.  Though in the arms-race-that-is-spam its effectiveness seems to have diminished.&lt;/p&gt;&#xA;" OwnerUserId="4428" LastActivityDate="2010-10-12T19:56:39.727" CommentCount="3" />
  <row Id="11415" PostTypeId="2" ParentId="5531" CreationDate="2010-10-12T20:01:28.773" Score="3" ViewCount="" Body="&lt;p&gt;Communication gap. In requirements collection. In schedule. In design document. In functional specification. In code (gap between what programmer wants and what he tells the compiler).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Social etiquette. It is socially unacceptable to call someone incapable.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-12T20:01:28.773" />
  <row Id="11417" PostTypeId="2" ParentId="11234" CreationDate="2010-10-12T20:04:03.160" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.bioware.com/&quot; rel=&quot;nofollow&quot;&gt;Bioware&lt;/a&gt; specifically in engine development, I've wanted to get into development on an engine, and these guys are some of the best right now. And they've made most of the games I've spent my time on over the last 10+ years, would love to give back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Could be part of EA answer, but it is a separate company)&lt;/p&gt;&#xA;" OwnerUserId="3541" LastActivityDate="2010-10-12T20:04:03.160" CommunityOwnedDate="2010-10-12T20:04:03.160" />
  <row Id="11418" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T20:04:17.533" Score="24" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A breakout area.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Somewhere where you can walk away from your desk and really chill out for a bit.&lt;/p&gt;&#xA;" OwnerUserId="5010" LastActivityDate="2010-10-12T20:04:17.533" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="4" />
  <row Id="11421" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T20:16:15.877" Score="26" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;An Expense Account&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-10-12T20:16:15.877" CommunityOwnedDate="2010-10-12T21:33:42.510" CommentCount="5" />
  <row Id="11424" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T20:33:09.563" Score="3" ViewCount="" Body="&lt;p&gt;It is 2011 and just about every programmer I knows still has to parse strings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If we still have to parse strings I don't think programming goes away anytime soon.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-10-12T20:33:09.563" CommunityOwnedDate="2010-10-12T20:33:09.563" />
  <row Id="11425" PostTypeId="1" AcceptedAnswerId="11566" CreationDate="2010-10-12T20:37:31.893" Score="35" ViewCount="1477" Body="&lt;p&gt;This is a difficult question to pose because the main target audience are people who are &lt;strong&gt;not&lt;/strong&gt; programmers anymore, so it's hard to imagine that there are many of them hanging around SE to see it and answer it. Virtually all &quot;burnout stories&quot; on programming forums are, understandably, about surviving burnout.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Long story short, I'm at the business end of a very severe and long term burnout. I've exchausted all the usual avenues that people advise one should take (vacations, exercise, change of diet, change of platform/language, etc), and it's still getting worse. With regards to how I feel about programming - I'm sort of in the state of mind (and have been, more and more, for quite a while now) where I &quot;love the idea of it&quot;, but just can't stand the reality anymore. That is, I still get the warm and fuzzy feeling when I play around with a new framework and get some little Hello World program or simple hobby app working. The idea of firing up a text editor, creating some little program from scratch, and making the machine do something - is still very cool to me. Unfortunately, I hate pretty much everything else. And the &quot;everything else&quot; is 99% of the work. From fixing annoying nitty-gritty bugs, to developing boring business apps that have no personal meaning to me, to maintenance and support, right through to the whole &quot;office work&quot; cultural meme in general. I feel like I need a complete and utter diametric change from it all, a bit like Peter Gibbons from Office Space.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So now I'm 60% decided that I'm going to try a complete change of career next year. And yes, like Peter Gibbons, the field I'm looking at going into is a bit more physical, hands-on, and practical, and doesn't involve any office work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is, has anyone here actually gone through with this? Again, it's a hard question to ask because the burnout advice here is mainly aimed at &lt;strong&gt;surviving&lt;/strong&gt; burnout, but I'd really like to hear what it's actually like to leave the field after a long time (I've been a programmer for a decade - four jobs so far, over five years in my current gig). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone done it and regretted it and then decided to come back? Do some years away in a less intellectual occupation heal the wounds and can you come back and feel better about the uninspiring aspects of programming and the cube culture? I guess the reason I'm asking all this is because there is a part of me that thinks I just need a very long term career break, rather than a permanent change of career. But since no other burnout advice has worked, this is the only option left to try. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: Thanks for the responses, with special thanks to Jerry Coffin. The way I feel about programming is best summed up by &quot;loving the idea of it, but often hating the reality&quot;. But it's very hard to tell sometimes how much of that has to do with particular roles, organisational psychoses, and the like. It does feel like this follows me into different roles and environments, but OTOH, it also feels like if I did change careers I'd probably come back after a few years due to missing it too much. So I suppose I'm mainly trying to avoid potentially going on a career limiting career gap which would lead nowhere. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE (4th Nov 2010):&lt;/strong&gt; I've decided to take a &lt;a href=&quot;http://new.joelonsoftware.com/articles/fog0000000076.html&quot; rel=&quot;nofollow&quot;&gt;sabbatical&lt;/a&gt; instead of a change of career next year. It's definitely not possible to salvage enough spark in my current situation to continue programming fulltime at the moment, but I do feel that I love programming enough that I'll want to come back to it after a serious break. So this seems like a good solution. - Now to stop thinking about it too much and just go with this flow! :)&lt;/p&gt;&#xA;" OwnerUserId="5064" LastEditorUserId="5064" LastEditorDisplayName="" LastEditDate="2010-11-03T21:15:33.163" LastActivityDate="2011-01-21T23:35:32.300" Title="Burned out on programming and given up?" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;burnout&gt;" AnswerCount="11" CommentCount="10" FavoriteCount="15" />
  <row Id="11426" PostTypeId="2" ParentId="11153" CreationDate="2010-10-12T20:37:47.987" Score="-1" ViewCount="" Body="&lt;p&gt;@rsteckly &quot;Even if programming does not become completely automated,&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hold it right there. It is mathematically impossible in this physical universe for programming to be automated. Anyone that works on software that does not know this should consider a different career. I mean seriously, c'mon, this is CompSci 301, we learn this thing on the sophomore/junior year. This is akin to a Mathematician not knowing that the square root of 2 is an irrational number.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;@rsteckly &quot;he argues, programmers will continue to face declining salaries.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This mostly apply to replaceable programming &quot;cookie cutters&quot;. The solution one has for avoiding (or at least ameliorating) salary decreases is to simply specialized in hard subjects and be adaptable and resilient. Be on top of technology and develop your engineering skills beyond the basics of coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a reduction of salary, but that's a reflection of the current economic conditions - I think we are about to enter an economic paradigm shift with much more austerity... despite the possible increase in unemployment, overall it might a be a good think if we as a nation can play it well. Furthermore, decreases in salaries are occurring in all fields. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is more to work and life than raw salaries - job satisfaction and career cultivation come to mind. With salaries decreasing in all white and blue collar professions, what options do we have? Jumping to the next &quot;big thing&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That was the mentality that saturated the software industry in the dot-com era, filling it with subpar people who would have never been allowed to graduate (but now can because of the lowering of standards.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not even super attractive strippers can have increasing salaries for sure. What are the chances of the rest of us smelly engineers? :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;@rsteckly &quot;I honestly don't know what to think of this.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't think too much about it. The programming automation thing is just stupid and without basis on reality and the laws of physics and mathematics. As for salaries, be resilient and cultivate your career (don't become a programming &quot;cookie cutter&quot;). And live frugal because every field is going to see a reduction in average salaries.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-12T20:37:47.987" CommunityOwnedDate="2010-10-12T20:37:47.987" CommentCount="22" />
  <row Id="11427" PostTypeId="2" ParentId="11204" CreationDate="2010-10-12T20:41:55.737" Score="1" ViewCount="" Body="&lt;p&gt;Systems level programming is my forte.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-12T20:41:55.737" />
  <row Id="11428" PostTypeId="2" ParentId="8562" CreationDate="2010-10-12T20:43:03.487" Score="2" ViewCount="" Body="&lt;p&gt;Become Java certified. Seriously. 3 years of programming experience in Java won't really cover all that there is to it. Been doing Java for 12 years now, and I didn't know how much &lt;em&gt;I didn't know&lt;/em&gt; until I did the SCJP. I'm now working towards the SCEA and the cert on web services.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suggest you work on the SCJP. Just the exercise of preparing for it will correct and enhance your Java knowledge in real-world practical terms. Then work on subsequent certs, the one for business components, web components, web service components and architecture. That will make you much better prepare (if you are smart about how you go about certs). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, don't take the certs for the sake of having the cert, but to actually learn and improve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously the challenge of learning a new language is a lot more attractive, and that is always on the plate (it is not mutually exclusive from getting cert'ed.) But even for learning new JVM languages, really, but really understanding Java and the JVM platform will help you better understand how these other JVM languages operate on the JVM.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-12T20:43:03.487" CommentCount="3" />
  <row Id="11429" PostTypeId="2" ParentId="8562" CreationDate="2010-10-12T20:46:39.673" Score="2" ViewCount="" Body="&lt;p&gt;Learn the JVM and instrumentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And for those who vote this downward, pray say why.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="2274" LastEditorDisplayName="" LastEditDate="2010-10-12T22:06:32.820" LastActivityDate="2010-10-12T22:06:32.820" CommentCount="2" />
  <row Id="11430" PostTypeId="2" ParentId="39" CreationDate="2010-10-12T20:46:59.747" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;2 + 2 = 5, for sufficiently large values of 2.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;— Anon&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-12T20:46:59.747" CommunityOwnedDate="2010-10-12T20:46:59.747" />
  <row Id="11431" PostTypeId="2" ParentId="10429" CreationDate="2010-10-12T20:51:32.547" Score="1" ViewCount="" Body="&lt;p&gt;Windows Azure is the easiest to get to grips with if you are already into .NET development. Other options are Google App Engine (free upto a certain level of use) and Amazon Web services. I am also looking into OpenStack as a good open-source alternative. &lt;/p&gt;&#xA;" OwnerUserId="4378" LastActivityDate="2010-10-12T20:51:32.547" />
  <row Id="11432" PostTypeId="2" ParentId="11425" CreationDate="2010-10-12T20:57:49.187" Score="5" ViewCount="" Body="&lt;p&gt;A break will certainly help on the short term, but not on the long term. It will probably just delay the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you worked with a &lt;a href=&quot;http://psychology.about.com/od/cognitivepsychology/f/cogpsych.htm&quot; rel=&quot;nofollow&quot;&gt;cognitive psychologist&lt;/a&gt; yet? If no, try!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After 3 burnouts in 12 years (one with highly painful physical symptoms), I tried almost everything I could and the only solution that worked was provided by a cognitive psychologist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason of your burnout are bound to your specific case, to your personnality. No one here can give you a good advice, unless we spend hours discussing with you.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Your body is warning you. Take is seriously&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Don't worry about the word &lt;code&gt;Psychology&lt;/code&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Cognitive_therapy&quot; rel=&quot;nofollow&quot;&gt;Cognitive Therapy&lt;/a&gt; is a lot different method, I find really effective with programmers. It is very &lt;strong&gt;concrete&lt;/strong&gt; and as programmers, we like that isn't? Try.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The technique in question was &lt;a href=&quot;http://en.wikipedia.org/wiki/Mindfulness-based_stress_reduction&quot; rel=&quot;nofollow&quot;&gt;Mindfulness-based stress reduction&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-14T11:49:43.430" LastActivityDate="2010-10-14T11:49:43.430" CommentCount="6" />
  <row Id="11433" PostTypeId="2" ParentId="11425" CreationDate="2010-10-12T21:01:25.893" Score="11" ViewCount="" Body="&lt;p&gt;I don't know your personal situation, responsabilities (wife,kids) etc. however if you are at a point in your life where you feel like you can try something else with minimal risk I encourage you to do so.  If it doesn't work out you can always come back.  I say err on the side of doing/trying more not less.&lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-10-12T21:01:25.893" />
  <row Id="11435" PostTypeId="2" ParentId="11425" CreationDate="2010-10-12T21:04:43.073" Score="8" ViewCount="" Body="&lt;p&gt;Start your own business and write the software you want to write.  Dig ditches like Peter Gibbons or whatever as your main source of income, and do your thing on the side, part time.  Soon you'll be realizing that you really wish you had more time for your programming projects, and you'll be on your way to recovery.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-12T21:04:43.073" />
  <row Id="11436" PostTypeId="1" AcceptedAnswerId="11463" CreationDate="2010-10-12T21:05:39.533" Score="4" ViewCount="207" Body="&lt;p&gt;Hello everybody&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to understand an existing project for improve myself more but i am not sure that project is overwhelming for me or not. I am not sure i am capable to understand it. I even think that i will be failed. When i look at projects, at a glance it makes me feel scary to see thousand line of codes . &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't even know where to start read codes.Do i have to follow by debugging or another else?&#xA;Can you please guide me about this situation ? I am totally get confused for start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit : Few thing for specify about my question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know C# language and I have learned some WEB technologies like ASP.NET MVC 2 and Web Forms but sure still there will be many thing which i still don't know. I call myself as beginner but it is just because lack of professional experience in this area. But my OOP understanding is enough good. I am thinking to improve myself on WEB so i am looking for WEB projects like blog engines which is simpler than others for starting.&lt;/p&gt;&#xA;" OwnerUserId="3664" LastEditorUserId="3664" LastEditorDisplayName="" LastEditDate="2010-10-12T21:38:18.613" LastActivityDate="2010-11-14T00:04:56.530" Title="Start to understand an existing project for beginner programmer" Tags="&lt;open-source&gt;&lt;project&gt;" AnswerCount="4" CommentCount="5" FavoriteCount="3" />
  <row Id="11437" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T21:08:01.913" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Raised-Floor Tiles&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make it feel like an old halon tile room. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;On-Premise Systems&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Already said, but provide some server infrastructure to try things out.  Employ an IBM admin and have AS/400, Mainframe, and AIX temporal VMs as an on-site pay-service.  Or a big'ol x64 box with 1 tebibyte of primary memory (OK, that might cost over $100k :) ) but you get the idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This can be done of course without the café, but it would be much better.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-10-12T21:08:01.913" />
  <row Id="11438" PostTypeId="2" ParentId="11425" CreationDate="2010-10-12T21:10:36.183" Score="3" ViewCount="" Body="&lt;p&gt;Like others pointed out, the people who frequent programmers.SE can probably only offer advice on how to handle burnout, not on quitting programming, so I'll try to offer a similar advice even though it's not exactly what you are asking about. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It sounds to me like you are tired of the corporate life, not programming per ce. So I would suggest that you invest in changing your work environment, not your career. One way to do this is start your own company and serve as CTO/main engineer (are these the same?). Since starting a company is non-trivial and will require you to do research on the matter and make personal connections with people this endeavor can act as the break from programming in a corporate environment that you need, while still occupy you with problem solving, and you'll be investing time and effort in bettering your situation overall. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end of the preparational phase you could return to developing in your own company, and hopefully regain your lost enthusiasm. And if you don't you can always sell or become the CEO. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-10-12T21:10:36.183" />
  <row Id="11439" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T21:10:42.017" Score="1" ViewCount="" Body="&lt;p&gt;As much screen space as possible and big desks with space to put post it notes somewhere.&lt;/p&gt;&#xA;" OwnerUserId="5199" LastActivityDate="2010-10-12T21:10:42.017" CommunityOwnedDate="2010-10-12T21:33:42.510" />
  <row Id="11440" PostTypeId="1" AcceptedAnswerId="11444" CreationDate="2010-10-12T21:14:39.547" Score="29" ViewCount="446" Body="&lt;p&gt;If you had a student or junior developer who was competent but just had no real world experience how do you think it would be best to mentor them or what information could you give them that would ease their transition from newbieness into leetness?&lt;/p&gt;&#xA;" OwnerUserId="5010" LastEditorUserId="149" LastEditorDisplayName="" LastEditDate="2010-10-12T21:27:59.143" LastActivityDate="2010-12-06T04:06:22.783" ClosedDate="2010-12-29T17:27:03.203" Title="Being a good mentor." Tags="&lt;teaching&gt;&lt;students&gt;" AnswerCount="13" CommentCount="1" FavoriteCount="12" />
  <row Id="11442" PostTypeId="2" ParentId="11400" CreationDate="2010-10-12T21:20:08.580" Score="5" ViewCount="" Body="&lt;p&gt;ReCAPTCHA seems to be pretty secure, and will probably outlast any other OCR based CAPTCHA solution. CAPTCHAs are useful when you aren't sure if it's a bot or a human - ie, after the second or third login attempt, or if you allow anonymous commenting. Once a user has authenticated, dump the CAPTCHA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An alternative that hasn't come up yet is the &quot;&lt;a href=&quot;http://dmytry.pandromeda.com/texts/captcha_and_saptcha.html&quot; rel=&quot;nofollow&quot;&gt;SAPTCHA&lt;/a&gt;&quot;.&lt;/p&gt;&#xA;" OwnerUserId="5038" LastActivityDate="2010-10-12T21:20:08.580" CommentCount="10" />
  <row Id="11443" PostTypeId="2" ParentId="11440" CreationDate="2010-10-12T21:25:20.110" Score="2" ViewCount="" Body="&lt;p&gt;The best person to answer that would really be the student.  Show him the project you're working on, give him some minor bug to fix, and turn him loose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any competent developer should be able to use basic debugging tools to locate the part of the code for the user interface section where the bug is reproduced.  Once he hits that point, he'll probably have a few questions.  Answer them as they come up, and try to answer in a way that not only answers his question, but helps him to develop a way to figure out the answer to related questions the next time they come up.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-12T21:25:20.110" />
  <row Id="11444" PostTypeId="2" ParentId="11440" CreationDate="2010-10-12T21:26:44.880" Score="22" ViewCount="" Body="&lt;p&gt;Hm, there are many things to mention, but I think the most important would be:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Try not to sound like a giant arse.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In other words, &lt;strong&gt;don't be pretentious&lt;/strong&gt;. Understand that you are as &quot;lame&quot; as he is, only on a different level. He &lt;em&gt;will&lt;/em&gt; make mistakes, and you need to explain why are they mistakes, not simply shout at him for making them. I guess you have to keep in mind that &lt;em&gt;you&lt;/em&gt; make mistakes too. Make him realize that mistakes happen and that he should not blame himself, instead, he should &lt;strong&gt;learn from his mistakes&lt;/strong&gt; to avoid repeating them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, &lt;strong&gt;try to learn from him&lt;/strong&gt;. Be modest in your teaching. He may lack experience and technical proficiency you have, but he may have insights you don't. As with any teaching, &lt;strong&gt;listen&lt;/strong&gt;, then talk. It is very important to figure out what's troubling him and what are his strong points.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd probably start by giving him a smaller project and review the code with him, then gradually introduce complexity when I feel he's ready. Even if it fails at first, he'd gain something from it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But try to instill some values of course, things like discipline, consistency, communication etc. Let him know he can ask any question, no matter how stupid it seems, without feeling like an idiot. If he's afraid to ask, he may never learn...&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-10-12T21:26:44.880" CommentCount="1" />
  <row Id="11445" PostTypeId="2" ParentId="11436" CreationDate="2010-10-12T21:27:19.670" Score="0" ViewCount="" Body="&lt;p&gt;A few tacts I've used for diving into an existing codebase:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Read any high-level documentation you can find on the project, and/or try to get an overview of how things work from someone else working on the project.&lt;/li&gt;&#xA;&lt;li&gt;Trace a few function calls though the code and see what happens.  Try to pick something that looks like it hits at least a few major subsystems.&lt;/li&gt;&#xA;&lt;li&gt;Try to implement some simple functionality.  It'll probably take a while and a lot of digging through code, but it's a good way to start understanding the code.&lt;/li&gt;&#xA;&lt;li&gt;Try to diagram the system at a high-level, or an important subsystem at a slightly lower level.  A uml-ish class diagram or sequence diagram will work.  The process of reading the codebase to construct such diagrams can be very educational.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-12T21:27:19.670" CommentCount="1" />
  <row Id="11446" PostTypeId="2" ParentId="11440" CreationDate="2010-10-12T21:27:39.153" Score="5" ViewCount="" Body="&lt;p&gt;I'd point them to a list of books and tell them to come to me with questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Mythical Man Month&lt;br&gt;&#xA;Code Complete&lt;br&gt;&#xA;Design Patterns - Elements of Reusable Object-Oriented Software&lt;br&gt;&#xA;A decent book on computer architecture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read&quot;&gt;This question&lt;/a&gt; on SO can give you some other ideas for good books.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beside that, I would spend time with them discussing various topics as they warranted, asking them questions and reviewing their code.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-10-12T21:27:39.153" CommentCount="2" />
  <row Id="11447" PostTypeId="2" ParentId="8340" CreationDate="2010-10-12T21:29:14.160" Score="1" ViewCount="" Body="&lt;p&gt;It sounds like you are going to be a hands-on (coding) manager. I was in a similar situation not too long ago. I, being a 10-yr Java developer was brought in to manage a C# team, though I was going to be a non-coding manager. The best advice I can give is to listen to your team and put weight on their advice as far as tools go. They are the subject-matter experts when it comes to the Java world... and there are a lot of differences in libraries, philosophies and standards that you will run into.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For your personal development and transition I would recommend some of the Java for .NET developer type books as well as checking out Java development blogs such as DZone.com just to get a feel for the environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I would be very leery of a coding Java team manager with a .NET background... no offense, but it's just a different mind set. It really would come down to your personality and your management skills, which you can't really show here. :-) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck.&lt;/p&gt;&#xA;" OwnerUserId="5198" LastActivityDate="2010-10-12T21:29:14.160" CommunityOwnedDate="2010-10-12T21:29:14.160" CommentCount="1" />
  <row Id="11448" PostTypeId="2" ParentId="11440" CreationDate="2010-10-12T21:30:52.267" Score="3" ViewCount="" Body="&lt;p&gt;Have them write unit and integration tests for one of the projects. This will improve their coding abilities and greatly advance their understanding of your system. Most importantly, have review sessions with them, where the first several times you review each line of code. This will hopefully identify some areas where they could improve. Also, never judge, but politely point out best practices of doing things as you review their code.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-12T21:30:52.267" CommentCount="1" />
  <row Id="11450" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T21:33:42.510" Score="10" ViewCount="" Body="&lt;p&gt;You don't say what technology stack you'll be working in but:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;MSDN License&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Licenses to any software/tool required&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-12T21:33:42.510" CommunityOwnedDate="2010-10-12T21:33:42.510" />
  <row Id="11451" PostTypeId="1" CreationDate="2010-10-12T21:33:54.673" Score="0" ViewCount="56" Body="&lt;p&gt;I have the following function which I use to check whether or not an email address is already registered. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;checkTaken() {&#xA;  var email_var = $('input#email').val();&#xA;&#xA;  $.post(&quot;../includes/check_email.inc.php&quot;,{email:email_var} ,function(data) {&#xA;      var ret = data + &quot;&quot;;&#xA;    if(ret==&quot;true&quot;) {//if username not avaiable&#xA;      $('div#emailTaken').show();&#xA;      $('input#email').addClass('redBack');&#xA;      return false;&#xA;    } else {&#xA;      $('div#emailTaken').hide();&#xA;      $('input#email').removeClass('redBack');&#xA;      return true;&#xA;    }&#xA;  });&#xA;} &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;When I call it using something like the following it works fine:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;email.blur(checkTaken);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But when I do something like &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var test1 = checkTaken();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(chekTaken) {&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;something quirky happens. It enters the function, executes the $.post line, but then never enters the rest of the routine. Why is this? And how do I fix it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a note, when I call the function using the last two examples, I do get information back from the server as &lt;a href=&quot;http://dl.dropbox.com/u/93529/consol.png&quot; rel=&quot;nofollow&quot;&gt;seen through firebug.&lt;/a&gt;If I add a watch for test1, it remains undefined.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-12T21:33:54.673" ClosedDate="2010-10-12T21:47:40.973" Title="jQuery $.Post quirk" Tags="&lt;jquery&gt;" CommentCount="2" />
  <row Id="11452" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T21:34:52.793" Score="9" ViewCount="" Body="&lt;p&gt;Decent network security. Seriously, with all that technology, and smart techies, I am ramping my fire wall and defenses to defcon 5&lt;/p&gt;&#xA;" OwnerUserId="3946" LastActivityDate="2010-10-12T21:34:52.793" CommentCount="2" />
  <row Id="11453" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T21:36:31.800" Score="108" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Time Allocated To Research&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be it tooling around with a potentially usable new tool/technology or reading up on a methodology, time to research is critical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anecdote:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I started my current job, Fridays were terrible because all of the evening telemarketing staff worked the day shift on Fridays. I started working at home on Fridays and took 50% of that time at home and devoted it directly to researching. I got up to speed on the codebase, the vendor tools, methodologies that we used in no time and discovered some new techniques/processes that I ended up putting in place to great effect.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-10-14T16:29:53.630" LastActivityDate="2010-10-14T16:29:53.630" CommunityOwnedDate="2010-10-12T21:36:31.800" CommentCount="3" />
  <row Id="11454" PostTypeId="2" ParentId="11440" CreationDate="2010-10-12T21:37:49.037" Score="9" ViewCount="" Body="&lt;p&gt;i would teach him design... and the rules behind the design (see the book Head First Design Patterns) and SOLID principles (see wikipedia) and basics like encapsulation, information hiding. and also some clean code (see Clean Code the book)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i would basically give him 4 articles, 2 books and 1 site:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.javaworld.com/javaworld/jw-05-2001/jw-0518-encapsulation.html&quot; rel=&quot;nofollow&quot;&gt;Encapsulation is not information hiding&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://pragprog.com/articles/tell-dont-ask&quot; rel=&quot;nofollow&quot;&gt;Tell, don't ask (article)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.javaworld.com/javaworld/jw-01-2004/jw-0102-toolbox.html?page=1&quot; rel=&quot;nofollow&quot;&gt;More on getters and setters&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html&quot; rel=&quot;nofollow&quot;&gt;Why getter and setter methods are evil&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596007124&quot; rel=&quot;nofollow&quot;&gt;Head First Design Patterns (book)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0132350882&quot; rel=&quot;nofollow&quot;&gt;Clean Code (book)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod&quot; rel=&quot;nofollow&quot;&gt;PrinciplesOfOod&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;this list refers to object oriented programming languages, but most languages out there are object-oriented.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if, on the other hand, you're teaching him functional programming, you'll have to search for some materials yourself&lt;/p&gt;&#xA;&#xA;&lt;p&gt;anyway, the idea remains the same: mentor him to write clean code that adheres the core principles of the language; you will make his life easy&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-12T21:37:49.037" />
  <row Id="11455" PostTypeId="2" ParentId="11440" CreationDate="2010-10-12T21:39:44.213" Score="5" ViewCount="" Body="&lt;p&gt;I would do pair programming with him for a while.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-12T21:39:44.213" />
  <row Id="11456" PostTypeId="2" ParentId="11436" CreationDate="2010-10-12T21:45:58.297" Score="0" ViewCount="" Body="&lt;p&gt;begin many paths: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;from inputs: places a user/client launches the application&lt;/li&gt;&#xA;&lt;li&gt;external system : tables on databases, other projects the one you're learning uses&lt;/li&gt;&#xA;&lt;li&gt;diagrams if possible (meaning: if you have any)&lt;/li&gt;&#xA;&lt;li&gt;core business (ask for what's the app supposed to do)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-12T21:45:58.297" />
  <row Id="11457" PostTypeId="2" ParentId="11440" CreationDate="2010-10-12T21:50:37.583" Score="1" ViewCount="" Body="&lt;p&gt;In this order:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Point out what they are doing right.&lt;/li&gt;&#xA;&lt;li&gt;Point out what they can do better.&lt;/li&gt;&#xA;&lt;li&gt;Point out why what they did wasn't a good idea.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-12T21:50:37.583" />
  <row Id="11458" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T21:51:36.103" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.faronics.com/en/Products.aspx&quot; rel=&quot;nofollow&quot;&gt;Deep Freeze&lt;/a&gt; (or something similar)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have any computers to rent this is a must.  When the computer is turned off it resets to exactly how it was before.  It's easier than fixing the computer every time a script kiddie breaks it.  Schools generally use this to keep computers fresh and clean.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its also worth noting that some kids see security as a challenge (and some adults). &lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-10-12T21:51:36.103" CommentCount="3" />
  <row Id="11459" PostTypeId="2" ParentId="11440" CreationDate="2010-10-12T21:51:36.553" Score="0" ViewCount="" Body="&lt;p&gt;I'd likely ask them how well do they know the tools and process that are used where they are.  I'd probably want to warn them of a baptism by fire coming though I'm not sure what use that serves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While some ideas like pair programming are good, there can be limited use to this in some cases.  In some places I've worked new developers tend to get the support tickets rather than the sexy projects, unless they are consultants of course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That would be my starting point, aside from the usual getting the backstory like I would with anyone new in my team.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-12T21:51:36.553" />
  <row Id="11460" PostTypeId="2" ParentId="11440" CreationDate="2010-10-12T21:53:53.983" Score="4" ViewCount="" Body="&lt;p&gt;One thing I let people know when I mentor them is that I learned some of these things by making the same mistakes they are making.  I think this makes my level of expertise seem more attainable and makes it seem less as if I'm saying, &quot;Ha, I'm smarter that you.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-12T21:53:53.983" CommentCount="2" />
  <row Id="11461" PostTypeId="2" ParentId="11440" CreationDate="2010-10-12T21:56:23.073" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The first step to becoming smarter is realizing how dumb you are.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="3881" LastEditorUserId="3881" LastEditorDisplayName="" LastEditDate="2010-10-12T22:03:11.820" LastActivityDate="2010-10-12T22:03:11.820" CommentCount="1" />
  <row Id="11462" PostTypeId="2" ParentId="11188" CreationDate="2010-10-12T22:02:12.677" Score="1" ViewCount="" Body="&lt;p&gt;Its funny how nobody thinks of themselves as cowboy coders. Im betting many of the posters are or have been one ;)&lt;/p&gt;&#xA;" OwnerUserId="5206" LastActivityDate="2010-10-12T22:02:12.677" CommunityOwnedDate="2011-03-19T17:28:35.220" CommentCount="2" />
  <row Id="11463" PostTypeId="2" ParentId="11436" CreationDate="2010-10-12T22:02:27.657" Score="3" ViewCount="" Body="&lt;p&gt;Best is to start off by fixing bugs. Start with small bugs. Fixing the first bug is a big milestone. Because when you do that, you already know how to edit version controlled code, build it, understand the desired functionality and test it. You also know the conventions used, libraries available, idiom/riffs used, debugging techniques, coding style/conventions of the project, overall code organization, the bug tracking system used etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do not be overwhelmed by the size of the project. Start small. Start with easy bugs. Ideally your mentor should assign something simple enough to get you familiar with your development environment. Then move on to small features, in modules that you are already familiar with. Then you can move on to more complex bugs or move to adjacent modules. In time you will be able to think in bigger chunks of the project and the size will suddenly seem smaller.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-12T22:02:27.657" />
  <row Id="11464" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T22:08:31.963" Score="2" ViewCount="" Body="&lt;p&gt;It may seems obvious but &lt;strong&gt;space&lt;/strong&gt; as in enough space to work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know rent cost a lot and you probably want to maximize your profit but when I work i need enough space to be able to take note, not be distracted by someone standing right behind me, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's something that is way too often overlooked in public spaces (restaurants, etc.). I like having space to breath and move. Especially if I'm supposed to be working.&lt;/p&gt;&#xA;" OwnerUserId="3063" LastActivityDate="2010-10-12T22:08:31.963" />
  <row Id="11465" PostTypeId="2" ParentId="11400" CreationDate="2010-10-12T22:13:55.773" Score="4" ViewCount="" Body="&lt;p&gt;In my experience, even if you have &lt;em&gt;the best captcha in the world&lt;/em&gt;, there are a lot of spammers who are nowadays employing real humans for very low wages to simple visit the site, signup (or whatever) and post their spam 'manually'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So any system that requires you to differentiate between &quot;human&quot; and &quot;bot&quot; is not going to work when faced with an &lt;em&gt;actual human&lt;/em&gt;. Whatever system you come up with is not going to be fool-proof and you're going to need to manually verify anonymous (or &quot;near anonymous&quot; - that is, new signup) content.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've actually found that a pretty good system is one that requires javascript. That is, have some javascript on the page that copies a randomly-generated value into a special field in the form. On the server, verify that the value has been copied. In my experience, that's stopped a great many spammers. It's not 100%, and perhaps not as good as ReCAPTCHA, but it works well enough for the sites I've worked on, and you don't have to worry about accessibility (there are clients that don't have javascript, but they are fewer and further between these days).&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-12T22:13:55.773" CommentCount="1" />
  <row Id="11467" PostTypeId="2" ParentId="11202" CreationDate="2010-10-12T22:19:05.463" Score="2" ViewCount="" Body="&lt;p&gt;Ricter's &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735627045&quot; rel=&quot;nofollow&quot;&gt;CLR Via C#&lt;/a&gt; is fairly advanced by probably the best all-around book for the .NET runtime as well as the C# language. I'd suggest it to anyone who knows how to program as an intro book.&lt;/p&gt;&#xA;" OwnerUserId="5205" LastActivityDate="2010-10-12T22:19:05.463" CommentCount="3" />
  <row Id="11468" PostTypeId="2" ParentId="9213" CreationDate="2010-10-12T22:19:09.093" Score="1" ViewCount="" Body="&lt;p&gt;Certainly, spend some time tweaking things to your liking.  If you don't, you'll have to put up with poorly chosen defaults or inefficient tools over and over and over, day after day for all year and next year.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Avoid spending too much time on it by doing so only after 4pm,  supposing the ol' factory whistle blows at 5pm.  Unless you're really gonzo nuts about your work, going home will always be appealing so your enviro tweaking will be limited to one hour or whatever time was left.   &lt;/p&gt;&#xA;" OwnerUserId="4280" LastActivityDate="2010-10-12T22:19:09.093" />
  <row Id="11469" PostTypeId="2" ParentId="11188" CreationDate="2010-10-12T22:25:03.733" Score="0" ViewCount="" Body="&lt;p&gt;Cowboys in an agile environment will start to miss their own estimates.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-12T22:25:03.733" CommunityOwnedDate="2011-03-19T17:28:35.220" />
  <row Id="11470" PostTypeId="2" ParentId="11204" CreationDate="2010-10-12T22:33:46.463" Score="1" ViewCount="" Body="&lt;p&gt;Since my undergrad degree is in EE, I enjoy working at the hardware level (UART, SPI, I2C, USB, Ethernet, Timers, PWM, wireless modems etc) where I have to work with various registers in a microntroller or peripherals.  Some of the time I use a protocol sniffer to debug firmware.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-12T22:33:46.463" />
  <row Id="11471" PostTypeId="2" ParentId="11188" CreationDate="2010-10-12T22:35:09.643" Score="3" ViewCount="" Body="&lt;p&gt;I'm currently working in a shop where this is the case, except it's more to do with organisational culture than with particular individual cowboys.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The organisation has always operated on a relatively loose, &quot;informal Agile&quot; approach. I wouldn't say it's truly Agile, it's more &quot;Agile in name&quot;, but just plain non-existent methodology in practice. Different teams operate differently, but since the overall organisational culture doesn't have any methodology in place other than a very loose &quot;Agile in name only&quot; process - it's relatively cowboyish and chaotic overall - especially in intergration (and there is a lot of that).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The moral of the story is - Yes, this does happen. If I was job hunting at the moment, I would be very careful with this. If a shop is claiming to be Agile - I'd ask some pretty tough questions in the interview to ensure that more than just a misnomer of Agile is actually being followed.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-12T22:35:09.643" CommunityOwnedDate="2011-03-19T17:28:35.220" CommentCount="1" />
  <row Id="11472" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T22:39:22.403" Score="6" ViewCount="" Body="&lt;p&gt;Networked color laser printer&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-12T22:39:22.403" CommentCount="5" />
  <row Id="11473" PostTypeId="1" AcceptedAnswerId="11495" CreationDate="2010-10-12T22:43:16.443" Score="11" ViewCount="354" Body="&lt;p&gt;Can working with bad code erode your programming skills?&lt;/p&gt;&#xA;" OwnerUserId="1996" LastActivityDate="2011-02-14T21:30:31.370" Title="Can working with bad code erode your programming skills?" Tags="&lt;career&gt;&lt;work-environment&gt;&lt;culture&gt;&lt;bad-code&gt;&lt;bad-habits&gt;" AnswerCount="7" />
  <row Id="11474" PostTypeId="2" ParentId="11473" CreationDate="2010-10-12T22:45:09.797" Score="6" ViewCount="" Body="&lt;p&gt;Only if you are easily tempted by group-think/laziness. Of course, working on projects where other people screw up your good code with their bad code can certainly reflect poorly on you.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-12T22:45:09.797" />
  <row Id="11475" PostTypeId="2" ParentId="4941" CreationDate="2010-10-12T22:48:11.073" Score="1" ViewCount="" Body="&lt;p&gt;Just wipe the fingertips off. How much time does it take to do so? There are some very objective battles that are worth spending time and emotional energy for. And there are times to be anal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Trying to insulate your monitor from filthy foraneous fingertips is not one of them. Yes, yes, right to privacy, personal space and all the precious, meticulous cultivated personal nuisances. Despite the me-me-me, not-in-my-backyard culture we live in, is it really worth even contemplating the issue? Just because one feels so?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a difference between an inalienable right and a subjective sense of entitlement argumented (sp?) from a position of comfort and exalted sensitivity. The later should not be entertained if it gets in the way of productivity... specially if you are getting paid for being productive. The key is to know how to separate these two.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-12T22:48:11.073" />
  <row Id="11478" PostTypeId="2" ParentId="11473" CreationDate="2010-10-12T22:51:46.487" Score="2" ViewCount="" Body="&lt;p&gt;I dont really think so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've worked with a fair amout of bad PHP code, at worst I think it promotes just hacking the bad code even worse. If I see a block of nasty code I just try to do what I need to do in the quickest way possible and get out.  Would I do this to good code or do this in my own programs? No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not going to erode your programming skills so long as you recognize that it is bad code and don't follow suit.&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-10-12T22:51:46.487" CommentCount="1" />
  <row Id="11479" PostTypeId="2" ParentId="3089" CreationDate="2010-10-12T22:52:24.830" Score="0" ViewCount="" Body="&lt;p&gt;Pet projects, learning new programming languages not required by job (helps alter the perspective and acquire new knowledge), and most importantly - ocasionaly just taking a break from programming for a few days.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-10-12T22:52:24.830" CommunityOwnedDate="2011-02-02T05:23:59.377" />
  <row Id="11481" PostTypeId="2" ParentId="11473" CreationDate="2010-10-12T22:55:09.367" Score="4" ViewCount="" Body="&lt;p&gt;I'd say:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;not if you can &lt;em&gt;recognize&lt;/em&gt; it as bad code.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;But if you can't, well...I think you can guess the rest. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; To elaborate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you recognize bad code, you'll most likely know why it's so bad, and what it should look like. By fixing it, you'll learn a lot. You'll also get a chance to see a lot of &quot;DON'Ts&quot;, and since seeing them is painful, you'll most likely remember them too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not recognizing bad code, &lt;strong&gt;especially your own bad code&lt;/strong&gt;, is a sign you're stagnating. And that's the worst thing I can imagine happening to me as a programmer.&lt;/p&gt;&#xA;" OwnerUserId="2815" LastEditorUserId="2815" LastEditorDisplayName="" LastEditDate="2010-10-12T23:08:53.503" LastActivityDate="2010-10-12T23:08:53.503" CommentCount="3" />
  <row Id="11482" PostTypeId="2" ParentId="3089" CreationDate="2010-10-12T22:58:13.927" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Touch typing&lt;/strong&gt;. Learnt touch typing during the first month of employment because I was bored.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Switching to Linux comes as a close second. It helped me understand the the background of the C programming language.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-12T22:58:13.927" CommunityOwnedDate="2011-02-02T05:23:59.377" />
  <row Id="11483" PostTypeId="2" ParentId="6042" CreationDate="2010-10-12T23:00:06.893" Score="1" ViewCount="" Body="&lt;p&gt;Many imperative programming languages (Ada, C/C++, Turbo Pascal, FoxPro) have the ability to define pointer to functions or procedure name literals that can be evaluated (and the procedures named after the literal invoked) at run time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The traditional example is qsort in C. Build on that the notion that you can define algorithms that execute &lt;em&gt;other&lt;/em&gt; algorithms on data structures. Obviously this is just a fraction of what functional programming is. But I've found that this is a good starting point to get the idea to sink in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once that sinks in, then you can start delving into other things (immutability, share-nothing, etc.)&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-12T23:00:06.893" CommentCount="1" />
  <row Id="11484" PostTypeId="2" ParentId="11473" CreationDate="2010-10-12T23:00:52.557" Score="8" ViewCount="" Body="&lt;p&gt;I've found that working with bad code can actually help improve programming by sharpening the eye for better refactoring. It's being constantly challenged to figure out how to make something better. That can be a good thing.&lt;/p&gt;&#xA;" OwnerUserId="3881" LastActivityDate="2010-10-12T23:00:52.557" />
  <row Id="11485" PostTypeId="1" AcceptedAnswerId="11510" CreationDate="2010-10-12T23:04:46.783" Score="27" ViewCount="350" Body="&lt;p&gt;We test our code to make it more correct (actually, &lt;em&gt;less likely to be incorrect&lt;/em&gt;). However, the tests are also code -- they can also contain errors. And if your tests are buggy, they hardly make your code better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can think of three possible types of errors in tests:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Logical errors, when the programmer misunderstood the task at hand, and the tests do what he thought they should do, which is wrong;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Errors in the underlying testing framework (eg. a leaky mocking abstraction);&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Bugs in the tests: the test is doing slightly different than what the programmer thinks it is.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Type (1) errors seem to be impossible to prevent (unless the programmer just... gets smarter). However, (2) and (3) may be tractable. How do you deal with these types of errors? Do you have any special strategies to avoid them? For example, do you write some special &quot;empty&quot; tests, that only check the test author's presuppositions? Also, how do you approach debugging a broken test case?&lt;/p&gt;&#xA;" OwnerUserId="4928" LastActivityDate="2011-02-20T19:55:29.597" Title="How to test the tests?" Tags="&lt;unit-testing&gt;&lt;tdd&gt;&lt;debugging&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="6" />
  <row Id="11486" PostTypeId="1" CreationDate="2010-10-12T23:05:43.163" Score="4" ViewCount="256" Body="&lt;p&gt;Does working with good code make you a better developer or does it make you soft and reluctant to work with anything &lt;em&gt;less&lt;/em&gt; than quality code?&lt;/p&gt;&#xA;" OwnerUserId="1996" LastActivityDate="2010-10-21T23:08:29.353" Title="Does working with good code make you a better developer or does it make you soft?" Tags="&lt;experience&gt;&lt;career&gt;&lt;self-improvement&gt;&lt;work-environment&gt;&lt;motivation&gt;" AnswerCount="7" />
  <row Id="11487" PostTypeId="2" ParentId="11473" CreationDate="2010-10-12T23:07:07.633" Score="2" ViewCount="" Body="&lt;p&gt;It should strengthen your programming ability if you refactor it, thereby practicing good coding.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-10-12T23:07:07.633" />
  <row Id="11488" PostTypeId="2" ParentId="11486" CreationDate="2010-10-12T23:09:31.857" Score="12" ViewCount="" Body="&lt;p&gt;Better.  It puts the good code ways in your subconscious, thereby influencing your future coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way the Treasure department trains its agents to find bad money, is to have them study good money.  Then it's easy for them to spot anything different.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-10-12T23:09:31.857" />
  <row Id="11489" PostTypeId="2" ParentId="11485" CreationDate="2010-10-12T23:09:38.017" Score="1" ViewCount="" Body="&lt;p&gt;There must be a point when one should stop trying to unit test. Should know when to draw the line. Should we write test cases to test test cases? What about the new test cases written to test test cases? How will we test them?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (0 &amp;gt; printf(&quot;Hello, world\n&quot;)) {&#xA;  printf(&quot;Printing \&quot;Hello, world\&quot; failed\n&quot;);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Edit: Updated with explanation as suggested by comment.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastEditorUserId="5178" LastEditorDisplayName="" LastEditDate="2010-10-13T00:17:25.777" LastActivityDate="2010-10-13T00:17:25.777" CommentCount="5" />
  <row Id="11490" PostTypeId="2" ParentId="11297" CreationDate="2010-10-12T23:09:42.493" Score="2" ViewCount="" Body="&lt;p&gt;I work 99% of the time on Windows, so Powershell. It's installed by default in the newer versions of Windows, and it has built in Unix-like aliases for a lot of the common commands (ls, kill, mount, etc.) and the equivalent DOS aliases, too, so all of my previous shell experience translates pretty easily.&lt;/p&gt;&#xA;" OwnerUserId="2498" LastActivityDate="2010-10-12T23:09:42.493" CommentCount="1" />
  <row Id="11492" PostTypeId="2" ParentId="11346" CreationDate="2010-10-12T23:14:03.557" Score="7" ViewCount="" Body="&lt;p&gt;A couple of ideas:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Rentable storage lockers&lt;br&gt;&#xA;Sure, I'll bring my laptop with me, but there's always some extra bits of kit that I'd rather not have to lug around. I'd pay for a secure place to leave things like a USB hub and a lapdesk.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Showers&lt;br&gt;&#xA;Laugh now, but think about it. Let's say you work from home and a group of people want to set up a meeting with you. You book the conference room at the Café in advance, and on the day, you ride your bike over (why own a car in SF when there's Zipcar?). When you get there, you realize that you look (and smell) like you just biked several miles, and these are important people to your business—wouldn't you like to freshen up somewhere? Something along the lines of the facilities available at a small gym would be perfect (or find one nearby that will co-market with you).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-10-12T23:14:03.557" CommentCount="1" />
  <row Id="11494" PostTypeId="2" ParentId="11486" CreationDate="2010-10-12T23:15:59.597" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;reluctant to work with anything less than quality code?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Is a very good thing and not soft at all in fact it's exactly the opposite. The soft or easy option is being satisfied with poor code. The hard option is always striving for quality code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being exposed to good code can only be beneficial.&lt;/p&gt;&#xA;" OwnerUserId="5066" LastActivityDate="2010-10-12T23:15:59.597" />
  <row Id="11495" PostTypeId="2" ParentId="11473" CreationDate="2010-10-12T23:16:06.707" Score="14" ViewCount="" Body="&lt;p&gt;It depends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It depends on whether you are allowed to correct bad code. If you are not allowed to correct, then it will definitely erode your programming skills. Surround yourself with excellence and you will automatically raise the bar for yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It depends on your team and manager. It depends on whether they can recognize good/bad code, and how much they appreciate good code. Man is a social animal. We look for support in each other. If nobody appreciates good code, it can be quite frustrating. It is difficult to plod on without encouragement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It depends on your team members and mentor. It depends on if they are trying to salvage the situation. If they are not, then the lead/mentor/team is not good enough for you to learn from.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-12T23:16:06.707" />
  <row Id="11496" PostTypeId="2" ParentId="11485" CreationDate="2010-10-12T23:17:13.483" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Try making the individual tests as small (short) as possible.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This should reduce the chances of creating a bug in the first place. Even if you manage to create one, it's easier to find. Unit tests are supposed to be small and specific, with low tolerance for failure and deviation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, it's probably just a matter of experience. The more tests you write, the better you become at it, the less chance you have to make crappy tests.&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-10-12T23:17:13.483" CommentCount="4" />
  <row Id="11498" PostTypeId="2" ParentId="11486" CreationDate="2010-10-12T23:27:33.030" Score="1" ViewCount="" Body="&lt;p&gt;Isn't it in the human race to strive for excellence? To push the boundaries? To settle for nothing less but the very best? Why should code be any different?&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-12T23:27:33.030" CommentCount="1" />
  <row Id="11499" PostTypeId="2" ParentId="11312" CreationDate="2010-10-12T23:30:42.827" Score="8" ViewCount="" Body="&lt;p&gt;A change room with a good shower, and somewhere to store your stuff. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Going for a run in the day or riding to work make the day so much better, except if you stink for the rest of the day. Plus, it enables people who might not bother getting outside the chance to do so. &lt;/p&gt;&#xA;" OwnerUserId="4458" LastActivityDate="2010-10-12T23:30:42.827" CommunityOwnedDate="2010-10-12T23:30:42.827" />
  <row Id="11500" PostTypeId="2" ParentId="11485" CreationDate="2010-10-12T23:34:10.920" Score="1" ViewCount="" Body="&lt;p&gt;In terms of #1 - I think it's a good idea to pair / code review for this side of things. It's easy to make presuppositions or just get things wrong but if you have to explain what your test is doing, what the point is, you're more likely to pick up if you're aiming at the wrong target. &lt;/p&gt;&#xA;" OwnerUserId="4458" LastActivityDate="2010-10-12T23:34:10.920" />
  <row Id="11501" PostTypeId="2" ParentId="11486" CreationDate="2010-10-12T23:35:42.973" Score="2" ViewCount="" Body="&lt;p&gt;The more you work with good code, the more it will rub off on you. Therefore, causing you to be a more efficient programmer.&lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-10-12T23:35:42.973" />
  <row Id="11502" PostTypeId="2" ParentId="11440" CreationDate="2010-10-12T23:35:56.707" Score="9" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Think about all the stuff that, once you discovered them, &lt;strong&gt;changed completely the way you work&lt;/strong&gt; as a programmer, and which you wish somebody had shown to you earlier. Tell him or her about it. For me such thing was Test Driven Development. If I had met somebody who was good at it a couple of years earlier, I would be a much better programmer today.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Show him or her the &lt;strong&gt;right tools&lt;/strong&gt;. Share your &lt;code&gt;.emacs&lt;/code&gt; file, help him with the source control system, show &lt;code&gt;screen&lt;/code&gt; and some of those neat shell tricks. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Don't micromanage&lt;/strong&gt;. Don't be afraid that he won't be able to cope with the problem. His approach may be different than yours (and in a lot of cases: plain worse), but he'll learn a lot in the process, and it will be yet another thing you won't have to do (which is always good). Also, let's face it: almost everyone has his overengineering period in life, andby ruining all the fun you won't make it go away more quickly :P&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Give &lt;strong&gt;feedback&lt;/strong&gt;, and give it often. Review his or her code and talk about all the strong and weak points. When you are criticizing, make sure you are criticizing the code, not the person.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Try to &lt;strong&gt;learn&lt;/strong&gt; something from him or her. Knowledge acquisition is much more difficult when you get older, and dealing with younger people may help you not to lose touch with the &lt;em&gt;cool new stuff&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4928" LastActivityDate="2010-10-12T23:35:56.707" />
  <row Id="11508" PostTypeId="2" ParentId="11440" CreationDate="2010-10-13T00:03:06.163" Score="0" ViewCount="" Body="&lt;p&gt;Point them in the direction of great online resources like this and &lt;a href=&quot;http://joelonsoftware.com&quot; rel=&quot;nofollow&quot;&gt;joelonsoftware&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-13T00:03:06.163" />
  <row Id="11510" PostTypeId="2" ParentId="11485" CreationDate="2010-10-13T00:06:55.690" Score="5" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;For this problem: &#xA;If you have an interface to the component a tester is the client of the interface and the developer is the implementer. You have multiple solutions:&#xA;a) The client should be different person than the implementer.&#xA;b) You could apply a technique Test Driven Development (TDD) in order to think about the client first and write tests, and after that you add functionality.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You don't need to test the underlying platform. The tests not only exercise the code written by you, but they run the code from the platform two. While you don't necessary want to catch bugs in the testing platform, is very hard to write code and tests that always hides a bug in the platform, in other words is very hard to have a systematic bug in both your tests/code and in the platform, and the probability is lowered with each test that you create. Even if you would try to do this you would have a very hard task. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;While you could have bugs in tests they usually are easy to be caught. Because the tests are tested by the code developed. Between the code and the tests you have a self enforcement feedback. Both make prediction about how a specific call of an interface should behave. If the response is different you don't necessary have a bug in the code. You could have a bug in the test as well.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So, as you can see from my answers this is a non problem. Tests are by design protected from the bugs, because the testing only detects differences between code and our expectations. If there are problems we have an error. The error could be in the code or with the same probability in tests.&lt;/p&gt;&#xA;" OwnerUserId="5218" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-02-20T19:29:50.403" LastActivityDate="2011-02-20T19:29:50.403" CommentCount="1" />
  <row Id="11511" PostTypeId="2" ParentId="750" CreationDate="2010-10-13T00:08:19.243" Score="2" ViewCount="" Body="&lt;p&gt;If you start following &lt;a href=&quot;http://en.wikipedia.org/wiki/Test-driven_development&quot; rel=&quot;nofollow&quot;&gt;Test Driven Development&lt;/a&gt; practices, they will sort &lt;em&gt;guide&lt;/em&gt; you through the process and knowing what to test will come naturally. Some places to start:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Tests come first&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never, ever write code before writing the tests. See &lt;em&gt;Red-Green-Refactor-Repeat&lt;/em&gt; for an explanation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Write regression tests&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whenever you encounter a bug, write a testcase, and make sure it &lt;strong&gt;fails&lt;/strong&gt;. Unless you can reproduce a bug through a failing testcase, you haven't really found it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Red-Green-Refactor-Repeat&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Red&lt;/em&gt;: Start by writing a most basic test for the behavior that you are trying to implement. Think of this step as of writing some example code that uses the class or function that you are working on. Make sure it compiles/has no syntax errors and that it &lt;strong&gt;fails&lt;/strong&gt;. This should be obvious: you haven't written any code, so it must fail, right? The important thing to learn here is that unless you see the test fail at least once, you can never be sure that if it passes, it does it because of something that you've done of because of some bogus reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Green&lt;/em&gt;: Write the most simple and stupid code that actually makes the test pass. Don't try to be smart. Even if you see that there's an obvious edge case but the test take in account, &lt;em&gt;don't&lt;/em&gt; write code to handle it (but don't forget about the edge case: you'll need it later). The idea is that every piece of code yo write, every &lt;code&gt;if&lt;/code&gt;, every &lt;code&gt;try: ... except: ...&lt;/code&gt; should be justified by a test case. The code doesn't have to be elegant, fast or optimized. You just want the test to pass.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Refactor&lt;/em&gt;: Clean up your code, get the method names right. See if the test is still passing. Optimize. Run the test again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Repeat&lt;/em&gt;: You remember the edge case that the test didn't cover, right? So, now it's its big moment. Write a testcase that covers that situation, watch it fail, write some code, see it pass, refactor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Test &lt;em&gt;your&lt;/em&gt; code&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are working on some specific piece of code, and this is exactly what you want to test. This means that you should not be testing library functions, the standard library or your compiler. Also, try to avoid testing the &quot;world&quot;. This includes: calling external web APIs, some database intensive stuff, etc. Whenever you can try to mock it up (make an object that follows the same interface, but returns static, predefined data).&lt;/p&gt;&#xA;" OwnerUserId="4928" LastActivityDate="2010-10-13T00:08:19.243" CommentCount="4" />
  <row Id="11512" PostTypeId="1" AcceptedAnswerId="11527" CreationDate="2010-10-13T00:10:37.790" Score="18" ViewCount="396" Body="&lt;p&gt;I am curious if anyone knows of any methodologies that are significantly different (not a recombination) and I would especially appreciate anyone who brought forward any experience with alternatives.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-11-05T06:17:42.860" Title="Are there any major alternatives to Waterfall and Agile?" Tags="&lt;programming-practices&gt;" AnswerCount="6" FavoriteCount="8" />
  <row Id="11513" PostTypeId="2" ParentId="11346" CreationDate="2010-10-13T00:12:05.513" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;a social networking medium&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some way to allow the residents of the cafe to interact easily without physically interrupting everyone. Maybe a simple twitter-like website that lets someone say &quot;Hey! Anyone know C# and wants to help me work out an issue?&quot;&lt;/p&gt;&#xA;" OwnerUserId="688" LastActivityDate="2010-10-13T00:12:05.513" CommentCount="1" />
  <row Id="11515" PostTypeId="1" CreationDate="2010-10-13T00:26:13.737" Score="-1" ViewCount="219" Body="&lt;p&gt;My anecdotal experience from working in a half-dozen companies tells me that there are a disproportionate number of women working in software QA, especially compared to the number of women in development roles. What's the reason for this, and is it peculiar to the United States? &lt;/p&gt;&#xA;" OwnerUserId="4409" LastActivityDate="2010-10-13T04:28:29.893" ClosedDate="2010-10-13T06:57:28.807" Title="Why are there so many women in QA?" Tags="&lt;industry&gt;&lt;economics&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="11516" PostTypeId="2" ParentId="11485" CreationDate="2010-10-13T00:29:26.417" Score="1" ViewCount="" Body="&lt;p&gt;For #1 and #3: Unit tests should not contain any logic, if you do then you are probably testing more than one thing in your unit test. One best practice for unit testing is to only have one test per unit test.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://osherove.com/videos/2009/8/25/unit-testing-best-practices.html&quot; rel=&quot;nofollow&quot;&gt;Watch this video by Roy Osherove&lt;/a&gt; to learn more on how to write unit tests well.&lt;/p&gt;&#xA;" OwnerUserId="1116" LastActivityDate="2010-10-13T00:29:26.417" CommentCount="2" />
  <row Id="11517" PostTypeId="1" CreationDate="2010-10-13T00:29:45.590" Score="4" ViewCount="212" Body="&lt;p&gt;What makes writing documentation unpleasant for some people, and what can be done to make it less unpleasant?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Current thoughts:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Ensure the program being described makes sense (eg doesn't have too many fudges or +1s or -1s in it). You feel bad, and it's more difficult, describing a program that doesn't make sense!&lt;/li&gt;&#xA;&lt;li&gt;Conquer your fear of writing. Improve your writing skills, possibly on pleasant tasks.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2114" LastActivityDate="2010-10-13T08:46:21.120" Title="How can documentation writing be made less unpleasant?" Tags="&lt;documentation&gt;" AnswerCount="6" />
  <row Id="11518" PostTypeId="2" ParentId="11512" CreationDate="2010-10-13T00:31:28.620" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Get 'er done.&lt;/strong&gt; &lt;/p&gt;&#xA;" OwnerUserId="1842" LastEditorUserId="1842" LastEditorDisplayName="" LastEditDate="2010-10-29T17:48:47.373" LastActivityDate="2010-10-29T17:48:47.373" CommentCount="1" />
  <row Id="11519" PostTypeId="2" ParentId="11312" CreationDate="2010-10-13T00:42:03.083" Score="0" ViewCount="" Body="&lt;p&gt;A &lt;strong&gt;rubik's cube&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="4366" LastActivityDate="2010-10-13T00:42:03.083" CommunityOwnedDate="2010-10-13T00:42:03.083" />
  <row Id="11520" PostTypeId="2" ParentId="11517" CreationDate="2010-10-13T00:45:19.967" Score="1" ViewCount="" Body="&lt;p&gt;One of the common reasons is an inhibition in writing anything. This needs to be worked upon. Participate in online community discussions where discussions happen in a written form. Start a blog. Blog posts can be short or long depending upon what we are comfortable with. Make it a habit to use proper English in day to day written communication like e-mails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We usually spend days trying to perfect our development environment. Be it bashrc, vimrc,  editor macros, utility scripts etc. But there may not be good documentation templates. Getting a good documentation template can be time consuming especially since we are not very good at word processors. We used to have a documentation template in comic sans font. I couldn't even bear to open the file itself, forget updating the documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general I find programmers not devoting time to understand how well to use a word processor. I personally prefer to write all documentation in pure text and then later get some expert help in porting it to word processor format. We can get help from technical writers in office to learn basic tips n tricks of the trade.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Existing document may be haphazardly written. There may not be any consistency in font type and size used for similar entries. Programmers typically prefer symmetry or rule of thumb to follow. Documents that are styled in a seemingly random fashion can be a big turn off for programmers to update. The best approach will be to bite the bullet once and get the document in shape before updating.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-13T00:45:19.967" />
  <row Id="11521" PostTypeId="2" ParentId="2541" CreationDate="2010-10-13T00:54:41.960" Score="1" ViewCount="" Body="&lt;p&gt;Succumb to the Dark Side, focus your anger and prove whoever/whatever is provoking you wrong. &lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-10-13T00:54:41.960" CommunityOwnedDate="2011-02-24T18:42:53.810" CommentCount="1" />
  <row Id="11523" PostTypeId="1" AcceptedAnswerId="11532" CreationDate="2010-10-13T01:07:04.453" Score="14" ViewCount="723" Body="&lt;p&gt;I often have to explain technical things and technical decisions to my &lt;em&gt;extremely&lt;/em&gt; non technical manager and I'm pretty awful at it. What are good ways to essential dumb things down for the rest of the world who don't have a passion for programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example questions I've been asked:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Why are you using Django instead of Java (Didn't accept that it was cheaper either)&lt;/li&gt;&#xA;&lt;li&gt;Asking me to rephrase things in non technical words, my sentence was &quot;Certain HTML tags are not allowed&quot;. How can I possibly dumb that down?&lt;/li&gt;&#xA;&lt;li&gt;Other stuff that makes perfect sense to me, but is just &lt;em&gt;so&lt;/em&gt; basic I don't know how to explain it&lt;/li&gt;&#xA;&lt;li&gt;Why this, why that, why everything!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also, how do I tell my manager to look the basic stuff up on Google, like &quot;What is Pylons?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm ready to rip my hair out, these questions are driving me insane!!&lt;/p&gt;&#xA;" OwnerUserId="3382" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-14T14:08:19.900" LastActivityDate="2010-10-14T19:43:46.107" Title="Explaining technical things to non-technical people" Tags="&lt;management&gt;&lt;non-programmers&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="1" />
  <row Id="11524" PostTypeId="2" ParentId="11512" CreationDate="2010-10-13T01:19:45.707" Score="0" ViewCount="" Body="&lt;h3&gt;Plan&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Sit down with the client (or end user) and design a series of use cases.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Design&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Layout the system on paper / whiteboard over a few beers and pizza. Snicker when something looks phallic. &lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Confirm&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Confirm design with client (or end user) and freeze requirements.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Code&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Self explanatory.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-13T01:19:45.707" />
  <row Id="11525" PostTypeId="2" ParentId="11512" CreationDate="2010-10-13T01:19:49.933" Score="3" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Spiral_model&quot; rel=&quot;nofollow&quot;&gt;The Spiral Model&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The spiral model is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. Also known as the spiral lifecycle model (or spiral development), it is a systems development method (SDM) used in information technology (IT). This model of development combines the features of the prototyping model and the waterfall model. The spiral model is intended for large, expensive and complicated projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-&lt;a href=&quot;http://en.wikipedia.org/wiki/Spiral_model&quot; rel=&quot;nofollow&quot;&gt;Wikipedia&lt;/a&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/V8SrJ.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-13T01:19:49.933" />
  <row Id="11526" PostTypeId="2" ParentId="11517" CreationDate="2010-10-13T01:19:53.030" Score="6" ViewCount="" Body="&lt;p&gt;If the project was well planned and managed, the documentation should have been nearly complete &lt;strong&gt;&lt;em&gt;before&lt;/em&gt;&lt;/strong&gt; a single line of code was written. Please don't misinterpret me as advocating any specific development methodology, in particular TDD. However, every proposed feature of a program should be well described prior to work actually beginning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course there will be changes, which means you'll need to update the project specification as you go. However, if done faithfully, the only mundane task is to take that specification and polish it into documentation that is ready to ship.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This avoids the daunting task of writing it from scratch after the project has been completed, and helps you to quickly identify scope and feature creep. Additionally, it helps you to better visualize the impact of changes in a way that can quickly be communicated to the client.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, your testers aren't just testing the program itself, they are also testing how well it adheres to the given specification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If done correctly, documentation is a painless process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, sometimes you will have to document something from scratch. In those cases, I highly suggest writing naturally, as you normally would and hiring a professional editor which is cheaper than you might think. Learn from the editing process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I agree with finding ways to practice and refine your writing skills, but for different reasons. Effective writing skills make you a more effective communicator in our world of e-mail and instant messages. You'll also be refining how you communicate verbally as you begin constructing shorter, more concise sentences naturally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being able to write better documentation faster, imho, is an ancillary bonus. Your job is to write programs and communicate. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-10-13T01:19:53.030" />
  <row Id="11527" PostTypeId="2" ParentId="11512" CreationDate="2010-10-13T01:23:24.203" Score="22" ViewCount="" Body="&lt;p&gt;Wikipedia lists these as &lt;a href=&quot;http://en.wikipedia.org/wiki/Software_development_process&quot; rel=&quot;nofollow&quot;&gt;methodologies/development processes&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Agile_software_development&quot; rel=&quot;nofollow&quot;&gt;Agile&lt;/a&gt;&lt;/strong&gt; - based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Cleanroom_Software_Engineering&quot; rel=&quot;nofollow&quot;&gt;Cleanroom&lt;/a&gt;&lt;/strong&gt; - the focus of the Cleanroom process is on defect prevention, rather than defect removal.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Iterative_and_incremental_development&quot; rel=&quot;nofollow&quot;&gt;Iterative&lt;/a&gt;&lt;/strong&gt; -  a cyclic software development process developed in response to the weaknesses of the waterfall model. It starts with an initial planning and ends with deployment with the cyclic interactions in between.&lt;br&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/eS19J.jpg&quot; alt=&quot;iterative diagram&quot;&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Rapid_application_development&quot; rel=&quot;nofollow&quot;&gt;RAD&lt;/a&gt;&lt;/strong&gt; -  uses minimal planning in favor of rapid prototyping. The &quot;planning&quot; of software developed using RAD is interleaved with writing the software itself.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/IBM_Rational_Unified_Process&quot; rel=&quot;nofollow&quot;&gt;RUP&lt;/a&gt;&lt;/strong&gt; - The Rational Unified Process (RUP) is an adaptable iterative software development process framework, intended to be tailored by selecting the elements of the process that are appropriate.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Spiral_model&quot; rel=&quot;nofollow&quot;&gt;Spiral&lt;/a&gt;&lt;/strong&gt; - combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. This model of development combines the features of the prototyping model and the waterfall model.&lt;br&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/TN3KQ.png&quot; alt=&quot;spiral model diagram&quot;&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Waterfall_model&quot; rel=&quot;nofollow&quot;&gt;Waterfall&lt;/a&gt;&lt;/strong&gt; - sequential through the phases of Conception, Initiation, Analysis, Design, Construction, Testing and Maintenance.&lt;br&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/irq9f.png&quot; alt=&quot;waterfall diagram&quot;&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Lean_software_development&quot; rel=&quot;nofollow&quot;&gt;Lean&lt;/a&gt;&lt;/strong&gt; -  a translation of Lean manufacturing and Lean IT principles and practices to the software development domain; everything not adding value to the customer is considered to be waste.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/V-Model_%28software_development%29&quot; rel=&quot;nofollow&quot;&gt;V-Model&lt;/a&gt;&lt;/strong&gt; -  Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape. The V-Model demonstrates the relationships between each phase of the development life cycle and its associated phase of testing.&lt;br&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/HksGH.png&quot; alt=&quot;v-model diagram&quot;&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Test-driven_development&quot; rel=&quot;nofollow&quot;&gt;TDD&lt;/a&gt;&lt;/strong&gt; -  relies on the repetition of a very short development cycle: first the developer writes a failing automated test case that defines a desired improvement or new function, then produces code to pass that test and finally refactors the new code to acceptable standards.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="89" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-10-13T01:29:48.183" LastActivityDate="2010-10-13T01:29:48.183" CommentCount="1" />
  <row Id="11528" PostTypeId="2" ParentId="2541" CreationDate="2010-10-13T01:24:35.567" Score="0" ViewCount="" Body="&lt;p&gt;When I get mad I just bask in whatever aspects of my program I've completed.  Then play some other games.&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-10-13T01:24:35.567" CommunityOwnedDate="2011-02-24T18:42:53.810" />
  <row Id="11529" PostTypeId="2" ParentId="11523" CreationDate="2010-10-13T01:27:34.510" Score="2" ViewCount="" Body="&lt;p&gt;Don't feel bad. I had to explain what &lt;em&gt;copy on write&lt;/em&gt; means to a complete and utter nitwit last week. Horrifically, that nitwit was one of our vendors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If in person, find a white board, or at least some paper so you can become a human layer of abstraction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If working with someone remotely, there are many sketch / white board tools available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Attempting to simplify something abstract, by abstracting it further, without some kind of visual aid is just madness. It will lead to things like drug and alcohol abuse, disenfranchisement from your family and peers and worse, unicorn cruelty.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-10-13T01:27:34.510" />
  <row Id="11532" PostTypeId="2" ParentId="11523" CreationDate="2010-10-13T01:35:28.513" Score="16" ViewCount="" Body="&lt;p&gt;I tend to use analogies. Take whatever the topic is, and think of something completely non-technical that they would understand, and explain it to them that way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best example I can think of offhand is if I need to explain object orientation, I'll explain it using a deck of cards. Or, when I was trying to explain the idea of wireless internet to my great aunt (who's never used a computer), I used cordless phones to explain it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've yet to come across any topic I can't dumb-down this way.&lt;/p&gt;&#xA;" OwnerUserId="2416" LastActivityDate="2010-10-13T01:35:28.513" CommentCount="7" />
  <row Id="11534" PostTypeId="2" ParentId="11523" CreationDate="2010-10-13T01:35:58.590" Score="4" ViewCount="" Body="&lt;p&gt;Try to answer not in terms of the underlying technology, but in terms of the problem domain.  &quot;when a customer using firefox tries to place an order, his browser wont display the BUY IT button - that browser doesn't support the HTML tag we are using&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often this is really the type of answer management wants.  If be really does want to u derstand the low level details, the best bet is to make analogies to technology you know he does understand.  &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-13T01:35:58.590" />
  <row Id="11535" PostTypeId="2" ParentId="11297" CreationDate="2010-10-13T01:39:42.367" Score="1" ViewCount="" Body="&lt;p&gt;I'm kind of partial to &lt;strong&gt;&lt;em&gt;dash&lt;/em&gt;&lt;/strong&gt; :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It is 'posixly correct' on the default 'sh' invocation&lt;/li&gt;&#xA;&lt;li&gt;It is easier to hack than bash, though bash's 'loadables' framework is quite nice&lt;/li&gt;&#xA;&lt;li&gt;It is much easier to study than bash (and most others), I wrote the shell for HelenOS after studying dash.&lt;/li&gt;&#xA;&lt;li&gt;You can easily add readline / editline / etc support to it to get missing creature comforts&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've been a proponent on avoiding 'bashisms' in any shell script that has to be portable for a long time. Sure, I use the extra conveniences (i.e. arrays) that bash provides, but only when I &lt;em&gt;know&lt;/em&gt; that the script will always run under bash.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I concede that the POSIX behavior is kind of nitpicking, and that bash provides (nearly) the same thing. That doesn't make me any less fond of my favorite shell, though :)&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-10-13T01:39:42.367" CommentCount="1" />
  <row Id="11536" PostTypeId="2" ParentId="2541" CreationDate="2010-10-13T01:40:30.440" Score="5" ViewCount="" Body="&lt;p&gt;Loud music. Very loud music. &quot;I am hated&quot;, &quot;everything ends&quot; and &quot;people = shit&quot; are all very good choices. For me, it really does help... Im not a phcologist, but what I think happens is that it channels anger into energy, to the point where you can just sit down and hammer out whatever dumb/pointless/inane task you were asked to complete and not even think about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think to answer your question: the most professional way to deal with it is not be confrontational (at least while you're angry, and until you can assess the situation with a clear mind) and turn that momentum into productive work. The worst thing you can do is argue with the subject of your anger, as these confrontations will turn bad very quick. Its good for neither party.&lt;/p&gt;&#xA;" OwnerUserId="5220" LastActivityDate="2010-10-13T01:40:30.440" CommunityOwnedDate="2011-02-24T18:42:53.810" CommentCount="2" />
  <row Id="11538" PostTypeId="2" ParentId="2541" CreationDate="2010-10-13T01:46:14.960" Score="6" ViewCount="" Body="&lt;p&gt;I highly recommend one of these:&#xA;&lt;img src=&quot;http://i.imgur.com/G7Qfm.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-10-13T01:46:14.960" CommunityOwnedDate="2011-02-24T18:42:53.810" CommentCount="3" />
  <row Id="11539" PostTypeId="2" ParentId="11153" CreationDate="2010-10-13T01:50:00.920" Score="0" ViewCount="" Body="&lt;p&gt;Nope, people have predicting programmers to go out of a profession since the year 2021 or so.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-10-13T01:50:00.920" CommunityOwnedDate="2010-10-13T01:50:00.920" />
  <row Id="11541" PostTypeId="2" ParentId="11486" CreationDate="2010-10-13T01:55:13.563" Score="7" ViewCount="" Body="&lt;p&gt;I would consider a natural reluctance to work with bad code to be an asset. If you have that, it probably means:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You can spot bad code&lt;/li&gt;&#xA;&lt;li&gt;You are motivated to fix bad code rather than perpetuate the vicious work-around cycle&lt;/li&gt;&#xA;&lt;li&gt;You have a clear understanding of what it would take to make a heap of bad code into good code, and can 'choose your battles' accordingly.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Soft is probably a bad word. &lt;strong&gt;&lt;em&gt;Frustrated&lt;/em&gt;&lt;/strong&gt; might be a better description.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-10-13T01:55:13.563" />
  <row Id="11542" PostTypeId="2" ParentId="11312" CreationDate="2010-10-13T02:11:44.847" Score="1" ViewCount="" Body="&lt;p&gt;This may sound ridiculous, but a music room for musically-inclined developers stocked with relatively inexpensive instruments and modest amplifiers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While working remotely at home, there's nothing better at keeping my brain actively thinking about solutions than practicing my guitar.&lt;/p&gt;&#xA;" OwnerUserId="894" LastActivityDate="2010-10-13T02:11:44.847" CommunityOwnedDate="2010-10-13T02:11:44.847" />
  <row Id="11543" PostTypeId="2" ParentId="11485" CreationDate="2010-10-13T02:13:53.623" Score="7" ViewCount="" Body="&lt;p&gt;One tactic is to write the test before the code it tests, and ensure the test fails first for the right reason.  If you use &lt;a href=&quot;http://en.wikipedia.org/wiki/Test-driven_development&quot; rel=&quot;nofollow&quot;&gt;TDD&lt;/a&gt; you should get at least this level of testing of tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A more exhaustive way to test the quality of a test suite is to use &lt;a href=&quot;http://en.wikipedia.org/wiki/Mutation_testing&quot; rel=&quot;nofollow&quot;&gt;mutation testing&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1353" LastEditorUserId="1353" LastEditorDisplayName="" LastEditDate="2010-10-13T09:36:25.247" LastActivityDate="2010-10-13T09:36:25.247" CommentCount="4" />
  <row Id="11544" PostTypeId="2" ParentId="9055" CreationDate="2010-10-13T02:21:49.957" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Erich Gamma&lt;/strong&gt; - co-author with Kent Beck of JUnit, and co-author with Richard Helm, Ralph Johnson and John Vlissides of &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201633612&quot; rel=&quot;nofollow&quot;&gt;Design Patterns&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1353" LastActivityDate="2010-10-13T02:21:49.957" CommunityOwnedDate="2010-10-13T02:21:49.957" />
  <row Id="11546" PostTypeId="1" CreationDate="2010-10-13T02:42:30.063" Score="3" ViewCount="217" Body="&lt;p&gt;Take the example of the recent ASP.NET (and Java Server Faces) vulnerability disclosure at a Hacker conference in Brazil.  It's my understanding that the poet tool was demonstrated before Microsoft was even aware of the issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there laws to protect legitimate customers from people who encite the hacker community to start hacking all the ASP.NET servers they can?  Who knows how many legitimate businesses were compromised between when the tool was demoed and the patch was applied to the server.&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-19T18:06:03.627" LastActivityDate="2010-10-19T18:06:03.627" Title="Are there laws to protect us from hackers who disclose vulnerabilities prior to alerting the vendor?" Tags="&lt;security&gt;&lt;asp.net&gt;&lt;hacking&gt;&lt;legal&gt;" AnswerCount="4" CommentCount="6" />
  <row Id="11547" PostTypeId="2" ParentId="11546" CreationDate="2010-10-13T02:51:35.713" Score="9" ViewCount="" Body="&lt;p&gt;None that I know of, and there probably shouldn't be, either.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Who knows how many legitimate businesses were compromised between when the tool was demoed and the patch was applied to the server.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Who knows how many legitimate business were compromised before the tool was demoed?  You seem to be making the assumption that because of this demo at a conference in Brazil that that was the first any bad guys heard of it.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-13T02:51:35.713" />
  <row Id="11549" PostTypeId="2" ParentId="9598" CreationDate="2010-10-13T02:58:05.123" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://projecteuler.net&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt; owns them all;&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/HIlXg.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-10-13T02:58:05.123" />
  <row Id="11551" PostTypeId="2" ParentId="2264" CreationDate="2010-10-13T03:07:04.200" Score="0" ViewCount="" Body="&lt;p&gt;TomWij, it depends on the potential employer. If the employer understand the interchangeability of knowledge among engineers, it should not be a problem. Unfortunately, most aren't like that. In fact, I only know of one employer in the commercial sector that does that. Government agencies and defense contractors are usually much better at this. That is, they give you a chance to apply for a job on X technology provided that you can demonstrate proficiency in a similar technology (or that you have very strong engineering skills.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My suggestion to you is not to worry about interview questions. It is a hit and miss. Either you get an interview with silly language questions that you can pass just by looking at the Javadocs (if you are good enough.) Or you get hammered with a real interview that you cannot possibly answer without having actual work experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the later, the reason being is that in Java development, it is a lot more than just knowing the language. You have to be proficient in the JEE architecture stack (sometimes down to the database/Java interoperability... typically Oracle or MySQL); you need to know either the standards (EJB 3.x, JSF, JPA) or alternate stacks (Spring, etc.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have no doubt that if you are good in C# you would have no problem doing well in Java. The problem is convincing employers that you are good without having experience. It is the stupid chicken-n-egg problem that plagues everybody in the software industry, not just us Java and C# developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you feel that you really need to switch to Java, but have a hard time getting a break w/o work experience because employers are simply too stupid to give you one, I'd suggest you work on becoming a Sun certified Professional.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd suggest you work your way through the following, at a minimum:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sun Certified Java Programmer (SCJP)&#xA;Sun Certified Web Component Developer (SCWCD)&#xA;Sun Certified Developer for Java Web Services (SCDJWS)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These three should start helping you a bit. However, I would strongly suggest you go for the following as well:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sun Certified Business Component Developer (SCBCD)&#xA;Sun Certified Enterprise Architect (SCEA)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is not a guarantee, but it will improve your odds. Taking the first 3 should take about a year. All five should take about 2. So you have to look at it as a mid-term investment. Even if you land a Java job without completing these, I'd suggest you do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can always try with defense contractors looking for Java developers (Lockheed Martin, General Dynamics, Northon Grumman, Honeywell, Harris) or with government agencies (DOD, DOE, DOT, which you canfind at usajobs.gov... if you are in the USA, though.). They'll be far more willing to take a good C# programmer for a Java position than a commercial entity. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, you earn your bones on the Java field and you are in. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do wish you luck you get a chance to work on Java. Although the JVM and .NET have a lot in c&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-13T03:07:04.200" CommentCount="2" />
  <row Id="11552" PostTypeId="2" ParentId="2247" CreationDate="2010-10-13T03:12:52.163" Score="-1" ViewCount="" Body="&lt;p&gt;Define productivity.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-13T03:12:52.163" CommentCount="1" />
  <row Id="11553" PostTypeId="2" ParentId="8685" CreationDate="2010-10-13T03:14:32.950" Score="0" ViewCount="" Body="&lt;p&gt;You'll probably love this classic, the &lt;a href=&quot;http://www.youtube.com/watch?v=rLDgQg6bq7o&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Turbo Encabulator&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/yl7Lf.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-10-13T03:14:32.950" CommunityOwnedDate="2010-10-13T03:14:32.950" />
  <row Id="11554" PostTypeId="2" ParentId="11523" CreationDate="2010-10-13T03:34:19.593" Score="11" ViewCount="" Body="&lt;h2&gt;Things I Use&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;to great and not so great effect.&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Analogies:&lt;/strong&gt; When explaining a situation or a process it really works well if you can put it into terms that they will understand. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Generic terms:&lt;/strong&gt; Instead of saying &lt;em&gt;HTML tags&lt;/em&gt; you could say &lt;em&gt;code&lt;/em&gt;. If they follow up requesting an explanation it might be time for a brief summary of HTML and how it works. &lt;em&gt;&quot;Web pages are built out of blocks called &quot;tags.&quot; If your browser doesn't support a specific tag the it won't be displayed correctly.&quot;&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Summaries and Overviews:&lt;/strong&gt; Sometimes it works well to give a brief synopses prior to hitting them upside the head with technical jargon.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Remove Jargon:&lt;/strong&gt; Turn &lt;em&gt;&quot;The database isn't properly load balancing when hit by multiple requests from an IP subnet.&quot;&lt;/em&gt; into &lt;em&gt;&quot;The database is having trouble handling requests from certain people.&quot;&lt;/em&gt; If you might have to explain it, replace it with something else. If you have to explain database you're in trouble. &quot;Place to store stuff&quot; is my fallback.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Visual Aids:&lt;/strong&gt; Whiteboards rock. Use them to your advantage. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Make them technical:&lt;/strong&gt; Keeping managers, bosses, and coworkers in the loop helps. If the account manager is confused at meetings because everyone but him understands what I'm saying, it might make him want to read those emails he was CC'ed on. Take time when writing memo's or emails to explain yourself thoroughly or point to references for explanation. Having someone figure out what &lt;em&gt;HTML&lt;/em&gt; is on their own will probably be better then trying to cram it into them during an important meeting.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-13T03:34:19.593" CommentCount="2" />
  <row Id="11555" PostTypeId="2" ParentId="11312" CreationDate="2010-10-13T03:36:00.073" Score="8" ViewCount="" Body="&lt;h3&gt;A sound-proof office.&lt;/h3&gt;&#xA;" OwnerUserId="4700" LastActivityDate="2010-10-13T03:36:00.073" CommunityOwnedDate="2010-10-13T03:36:00.073" CommentCount="1" />
  <row Id="11556" PostTypeId="2" ParentId="8685" CreationDate="2010-10-13T03:41:25.507" Score="1" ViewCount="" Body="&lt;p&gt;A programmer once told me in response to a bug report: &quot;I don't know what the problem was. But, whatever the problem was, it got fixed.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We in the QA department kicked that one around for months.&lt;/p&gt;&#xA;" OwnerUserId="5211" LastEditorUserId="5211" LastEditorDisplayName="" LastEditDate="2010-10-13T03:46:35.633" LastActivityDate="2010-10-13T03:46:35.633" CommunityOwnedDate="2010-10-13T03:41:25.507" />
  <row Id="11557" PostTypeId="2" ParentId="9055" CreationDate="2010-10-13T03:41:35.020" Score="6" ViewCount="" Body="&lt;p&gt;Paul Graham has an interesting commentary on this issue, in which he suggests that famous hackers are mostly famous because... well, random things happened.  You can read it &lt;a href=&quot;http://www.paulgraham.com/gh.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This does not directly address your question, but hopefully it shall reassure you that you need not feel bad about not having heard of these &quot;big names&quot;.  The big names themselves would probably tell you much the same thing. :-)&lt;/p&gt;&#xA;" OwnerUserId="5068" LastActivityDate="2010-10-13T03:41:35.020" CommunityOwnedDate="2010-10-13T03:41:35.020" CommentCount="1" />
  <row Id="11558" PostTypeId="2" ParentId="11515" CreationDate="2010-10-13T03:41:57.547" Score="3" ViewCount="" Body="&lt;h3&gt;Bad:&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Because women can't program. &lt;sup&gt;[This is the dumb conclusion]&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Better:&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;More women do &lt;sup&gt;[PC term here]&lt;/sup&gt; tasks then men, &lt;em&gt;voila&lt;/em&gt; more women then men. I would also consider that testers don't often come from programming backgrounds. I have yet to meet a Q / A tester who can tell my &lt;em&gt;why&lt;/em&gt; it failed rather then &quot;It's broke.&quot; &lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Best:&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Your statistics are skewed. A half dozen companies does &lt;em&gt;not&lt;/em&gt; make a competent example of the industry standard.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-13T03:41:57.547" CommentCount="3" />
  <row Id="11560" PostTypeId="2" ParentId="11312" CreationDate="2010-10-13T03:54:05.147" Score="1" ViewCount="" Body="&lt;p&gt;I prefer two monitors,Quiet office, good machine. &lt;/p&gt;&#xA;" LastActivityDate="2010-10-13T03:54:05.147" CommunityOwnedDate="2010-10-13T03:54:05.147" />
  <row Id="11561" PostTypeId="2" ParentId="8685" CreationDate="2010-10-13T03:59:39.510" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;My cup holder broke... again!&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;I see we've already replaced this for you once,&quot; (after reading copious note in the file that the &lt;em&gt;real&lt;/em&gt; purpose of that device was also explained), &quot;but since you didn't use a (company)-certified mug, we're terribly sorry that it's not covered by the warranty.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;How do you know I didn't use a certified mug?&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;They don't go on sale until next month.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;Oh... right.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;About fifteen years out of date—everyone's heard these stories about CD-ROM (not DVD! not even RW!) drives nowadays, and I expect (okay, I know better to expect, but I can hope) every user now knows what those motorized trays are for.  In fact, I believe this particular user knew better, but tried to play the dumb card to get a free replacement.  Maybe they had a small kid who broke it twice?  Details are a bit foggy since then, and I wasn't the tech that handled it.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-13T03:59:39.510" CommunityOwnedDate="2010-10-13T03:59:39.510" CommentCount="1" />
  <row Id="11563" PostTypeId="2" ParentId="11517" CreationDate="2010-10-13T04:10:45.213" Score="1" ViewCount="" Body="&lt;p&gt;Writing documentation is unpleasant for people who are not writers, which developers are not (generally). Developers are problem-solvers (primarily), and when they begin to document some system (especially one still under development) they invariably begin pondering how to make it work or how to make it better. Then they become impatient for &quot;wasting time&quot; documenting the system they envision instead of making it a reality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing documentation requires the mindset of an educator or helper. So if a developer can't pass responsibility for writing docs to a writer, he should try to minimize the pressure that imagining the changes causes by jotting down enough info in his ideas journal (we all have one, correct?) so he can take his mind off it for the time being (like the principle behind GTD). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then adopt the perspective of an educator explaining to the reader what the system's behavior is. Don't focus on the order, or keeping the explanation organized at the start. You'll just frustrate yourself if you attempt to clean house while you're being creative. Document the parts you think about first, and then reorganize them later.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-13T04:10:45.213" />
  <row Id="11564" PostTypeId="2" ParentId="11515" CreationDate="2010-10-13T04:15:20.417" Score="3" ViewCount="" Body="&lt;p&gt;Based on personal relationships and the perceived stereotype, women tend to pay more attention to details over men.&lt;/p&gt;&#xA;" OwnerUserId="1668" LastActivityDate="2010-10-13T04:15:20.417" CommentCount="1" />
  <row Id="11565" PostTypeId="1" AcceptedAnswerId="11958" CreationDate="2010-10-13T04:18:14.980" Score="12" ViewCount="635" Body="&lt;p&gt;What are the techniques that you use just about everyday, but are still awful at? Are you bad at it because of the difficulty of the task, laziness to learn better, or some other reason?&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-14T11:31:38.927" ClosedDate="2010-10-14T15:03:35.590" Title="What programming skill do you use most often that you are terrible at?" Tags="&lt;programming-practices&gt;" AnswerCount="19" CommentCount="2" FavoriteCount="2" />
  <row Id="11566" PostTypeId="2" ParentId="11425" CreationDate="2010-10-13T04:18:18.133" Score="21" ViewCount="" Body="&lt;p&gt;I've been there -- some years ago, I resigned from my job, and spent about three years making my living as a full-time bicycle mechanic. At the time (young, single, essentially no responsibilities) that was a pretty good option, and worked out quite well for me. Given the relative pay scales, it would be a lot more difficult for me to do that now though. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would add, however, that even a couple of years doing something else can make a big difference in your outlook. At least for me, it was a lot more of a long vacation than a real change of career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For that matter,  just under two years ago, I started to get pretty sick of my job and (especially) the office politics again. In this case, I resigned the job itself, but continue doing similar work as a consultant (quite a bit of it even for the same company). Whether this a reasonable option for you or not is open to a lot of question though. For me it works out pretty well, but a lot depends on your personality -- it does take considerable discipline to &quot;go to work&quot; in the morning and (importantly) knock off at a reasonable hour at night and spend time doing other things as well. It's very easy to spend too much time at the desk, which can lead to even worse burnout.&lt;/p&gt;&#xA;" OwnerUserId="902" LastEditorUserId="902" LastEditorDisplayName="" LastEditDate="2010-10-13T04:25:54.297" LastActivityDate="2010-10-13T04:25:54.297" CommentCount="1" />
  <row Id="11567" PostTypeId="2" ParentId="11517" CreationDate="2010-10-13T04:25:23.997" Score="3" ViewCount="" Body="&lt;p&gt;Write it at the same time as the code.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-13T04:25:23.997" />
  <row Id="11569" PostTypeId="2" ParentId="11346" CreationDate="2010-10-13T04:26:11.410" Score="0" ViewCount="" Body="&lt;p&gt;Cats! ;) Gotta have at least one cat.&lt;/p&gt;&#xA;" OwnerUserId="1223" LastActivityDate="2010-10-13T04:26:11.410" CommentCount="8" />
  <row Id="11570" PostTypeId="2" ParentId="11515" CreationDate="2010-10-13T04:28:29.893" Score="0" ViewCount="" Body="&lt;p&gt;I've found that in Canada too, but that is based on my small sample of where I worked.  I've seen women in various analyst and management positions generally more than developers.  I wonder if this is a side effect of the gender split I saw in university in Math and CS classes, which was about 4 males to each female on average the opposite of the arts gender split ironically.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-13T04:28:29.893" />
  <row Id="11571" PostTypeId="2" ParentId="11546" CreationDate="2010-10-13T04:41:18.453" Score="5" ViewCount="" Body="&lt;p&gt;Where would the laws apply? If the tool was demoed in Brazil, presumably it would have to be Brazilian law that is applied. So even if there &lt;em&gt;was&lt;/em&gt; a U.S. law that protected companies, it wouldn't have helped because you can't prosecute someone in Brazil for violating a U.S. law.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might be able to get a law like that passed in the U.S., and probably a few other countries as well (I'm sure you'd be able to get my country, Australia, to pass such as law as well, with a bit of lobbying). But good luck getting an equivalent one passed in China, Russia, or one of the many other countries where &quot;hacking&quot; is more prevalent anyway.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-13T04:41:18.453" CommentCount="1" />
  <row Id="11572" PostTypeId="2" ParentId="11565" CreationDate="2010-10-13T04:56:58.787" Score="1" ViewCount="" Body="&lt;p&gt;debugging. going in the code and try to figure out what he hell is happening and wher, trying to figure out what went wrong and where, putting logging into my code what watch the console&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-13T04:56:58.787" CommentCount="3" />
  <row Id="11573" PostTypeId="2" ParentId="11346" CreationDate="2010-10-13T05:09:48.843" Score="4" ViewCount="" Body="&lt;p&gt;I'd pass on trying include a really hot, fast new machine with huge quantities of memory, etc. Although the pace of obsolescence has slowed somewhat, to maintain this as a really cutting edge machine is still going to require a fairly serious level of ongoing investment (i.e., to remain cutting edge, you'll need to replace it every year or so at most).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead, I'd consider going the opposite direction: try to come up with a half dozen really &lt;em&gt;old&lt;/em&gt; machines that still work -- a TRS-80, an Apple II+, a Commodore 64 or VIC 20, maybe an old microVAX, possibly a few old S-100 machines, etc. With a bit of time scrounging at some rummage sales and such, you can probably come up with a reasonable collection for less than $100 -- and to quite a few people it'll be more impressive (not to mention just a lot more fun) than almost &lt;em&gt;anything&lt;/em&gt; you could do in the way of new machines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to show off new hardware, do your best to get it for free. One possibility is sponsored -- i.e., get a vendor to bring in a machine to show off to the admiring crowds. Another possibility is to hold monthly (or whatever) contests, primarily to give the high-end gamers a chance to show off their rigs.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-13T05:09:48.843" CommentCount="1" />
  <row Id="11574" PostTypeId="2" ParentId="11565" CreationDate="2010-10-13T05:19:54.737" Score="6" ViewCount="" Body="&lt;p&gt;Debugging other people's hacky code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, given that this is what 90% of the work is about in my current gig (and in most programming jobs), it's a huge problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And the reason I'm bad at it is because I have a bad internal response to the task. Subconsciously, I think the thought process goes something like this:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;This stuff shouldn't be so bad/overengineered/complex/undocumented.&lt;/li&gt;&#xA;&lt;li&gt;It shouldn't be my job to deal with this stuff.&lt;/li&gt;&#xA;&lt;li&gt;I wish I was doing something else.&lt;/li&gt;&#xA;&lt;li&gt;Ok, better just suck it up, concentrate, and deal with it.&lt;/li&gt;&#xA;&lt;li&gt;GOTO 1.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;....and often step 4 gets missed and I end up in a frustration loop where I hate my job.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-13T05:19:54.737" CommentCount="5" />
  <row Id="11575" PostTypeId="1" AcceptedAnswerId="56436" CreationDate="2010-10-13T05:21:09.327" Score="9" ViewCount="444" Body="&lt;p&gt;My current state is a mixture of spreadsheets, wikis, documents, and dated folders for my input/configuration and output files and bzr version control for code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am relatively new to programming that requires this level of documentation, and I would like to find a better, more coherent approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;update (for clarity):&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My inputs are data used to generate configuration files with parameter values and my outputs are analyses of model predictions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would really like to have an approach that allows me to associate particular configuration(s) with particular outputs, so that I can ask questions of my documentation such as &quot;what causes over/under estimates?&quot; or &quot;what causes error 'X'&quot;?&lt;/p&gt;&#xA;" OwnerUserId="5232" LastEditorUserId="5232" LastEditorDisplayName="" LastEditDate="2010-12-21T20:58:51.597" LastActivityDate="2011-03-09T18:44:30.833" Title="how do you document your development process?" Tags="&lt;project-management&gt;&lt;development-process&gt;&lt;recommendations&gt;&lt;tools&gt;&lt;version-control&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="4" />
  <row Id="11576" PostTypeId="2" ParentId="8241" CreationDate="2010-10-13T05:29:06.080" Score="1" ViewCount="" Body="&lt;p&gt;Here in Argentina, and AFAIK in all Latin America, we pronounce it &quot;Del-fee&quot;&lt;/p&gt;&#xA;" LastActivityDate="2010-10-13T05:29:06.080" />
  <row Id="11577" PostTypeId="1" CreationDate="2010-10-13T06:02:21.997" Score="1" ViewCount="177" Body="&lt;p&gt;I'm a sucker for javascript, and i'm increasingly drawn towards writing script utilities for my everyday needs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently I writing these utilities in bash scripts, but i'm not so proficient with shell scripting. I'm wondering if&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;any of you have ever come across an interpreter for javascript&lt;/li&gt;&#xA;&lt;li&gt;any other convenient language that you use to write script utlitities in (like csh/perl)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1634" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-13T06:43:27.717" LastActivityDate="2010-10-13T09:52:54.253" ClosedDate="2010-10-13T12:36:04.587" Title="running javascript on the command line" Tags="&lt;scripting&gt;&lt;javascript&gt;" AnswerCount="2" CommentCount="4" />
  <row Id="11578" PostTypeId="2" ParentId="11577" CreationDate="2010-10-13T06:19:19.737" Score="0" ViewCount="" Body="&lt;p&gt;Yes, Rhino is one of the better-known standalone JS interpreters. However, being that it's a JVM-based interpreter, it has a fairly long warmup time for the first run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, Perl is good for scripting, as is Ruby and Python. Heck, you can even write scripts in Scheme, using scsh or Guile. ;-)&lt;/p&gt;&#xA;" OwnerUserId="5167" LastActivityDate="2010-10-13T06:19:19.737" />
  <row Id="11580" PostTypeId="2" ParentId="11565" CreationDate="2010-10-13T06:42:22.430" Score="29" ViewCount="" Body="&lt;h2&gt;Regular expressions.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Really need to make an effort of learning those, once and for all.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-13T06:42:22.430" CommentCount="2" />
  <row Id="11581" PostTypeId="2" ParentId="2247" CreationDate="2010-10-13T06:52:27.227" Score="1" ViewCount="" Body="&lt;p&gt;Agree with Lorenzo, define the productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also did this:&#xA;1. Break down all the tasks (high level or low level break down).&#xA;2. Estimate the working hours for each task (don't forget to set delay buffer for each task).&#xA;3. Finish the task.&#xA;4. Review back each of task and see if you are productive enough or not.&lt;/p&gt;&#xA;" OwnerUserId="7022" LastActivityDate="2010-10-13T06:52:27.227" />
  <row Id="11582" PostTypeId="2" ParentId="11312" CreationDate="2010-10-13T07:07:51.673" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Supplement and Multivitamin ....&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7022" LastActivityDate="2010-10-13T07:07:51.673" CommunityOwnedDate="2010-10-13T07:07:51.673" />
  <row Id="11583" PostTypeId="2" ParentId="11517" CreationDate="2010-10-13T07:10:31.060" Score="1" ViewCount="" Body="&lt;p&gt;One reason for unpleasantness is subpar tools such as Microsoft Word. Using a good documentation tool such as &lt;a href=&quot;http://sphinx.pocoo.org/&quot; rel=&quot;nofollow&quot;&gt;Sphinx&lt;/a&gt; can considerably boost the fun of writing.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-13T07:10:31.060" />
  <row Id="11585" PostTypeId="2" ParentId="11546" CreationDate="2010-10-13T07:45:29.830" Score="2" ViewCount="" Body="&lt;p&gt;Many EULA prohibit reverse engineering. This could be a possible angle of legal attack.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-13T07:45:29.830" />
  <row Id="11586" PostTypeId="2" ParentId="11523" CreationDate="2010-10-13T07:49:04.607" Score="6" ViewCount="" Body="&lt;p&gt;Once, long ago whilst still an undergraduate, I was asked to explain something over Sunday lunch - one of the most educational experiences I've ever had. The person asking the question was demonstrably not stupid - but had no background, the level of knowledge I assumed just wasn't there. I started to answer, got a blank look, changed down, still blank, changed down again, still blank... hmm... so I started the same way you start to build an application, with little blocks of explanation that you can build into something more substantial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key part of this lesson, for me, was (and is) just how much we assume (not just programmers, everyone) about other people's knowledge of our chosen speciality whereas in fact, even, you might reasonably assume that the majority of people know that 1 + 1 = 2 but after that it gets interesting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the first and most important thing to grasp is that people don't know and don't understand what &lt;em&gt;you&lt;/em&gt; do - but they do understand what &lt;em&gt;they&lt;/em&gt; do and when you're explaining stuff you therefore need to start simple and stay at an appropriate level for your audience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of specific techniques -  I think that @Josh K has it pretty covered - and I'd emphasise that Analogies are an absolute winner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One more thing - it may be, from time to time, acceptable to just write things off as &quot;geek stuff&quot; people don't always want full explanations of why and if you've previously demonstrated a willingness to explain and a capability to do so in an understandable manner then people will be inclined to trust you when you suggest that &quot;complex technical reasons&quot; apply or that ultimately you can achieve a particular result by &quot;doing geek stuff&quot; (or &quot;programmer stuff&quot; or whatever term works well in your environs).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Communicating technical things to a non technical audience (of one or more) is a skill, one that you can develop and one that you need.&lt;/p&gt;&#xA;" OwnerUserId="866" LastEditorUserId="866" LastEditorDisplayName="" LastEditDate="2010-10-14T19:43:46.107" LastActivityDate="2010-10-14T19:43:46.107" CommentCount="1" />
  <row Id="11587" PostTypeId="2" ParentId="11575" CreationDate="2010-10-13T07:50:30.193" Score="3" ViewCount="" Body="&lt;p&gt;An issue tracker could be a nice way of organizing things. You can fill it with both feature requests and problem reports. Check this article from Joel on software blog: &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000029.html&quot; rel=&quot;nofollow&quot;&gt;Painless Bug Tracking&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-13T07:50:30.193" />
  <row Id="11588" PostTypeId="2" ParentId="11188" CreationDate="2010-10-13T08:03:08.400" Score="1" ViewCount="" Body="&lt;p&gt;I found that users can only give us feedback once they have an application they can use, screens they can enter data on. Only then, they truly understand what we were trying to say in the requirements documents (that clients sign but everybody have its own version of the meaning). If it is not an agile development, it is going to be a waterfall project going over budget but the application is going to change once you deliver it. Your first version is no more than a prototype for users to discuss what the requirements should have been. So I rather call it agile than over budget.&lt;/p&gt;&#xA;" OwnerUserId="5241" LastActivityDate="2010-10-13T08:03:08.400" CommunityOwnedDate="2011-03-19T17:28:35.220" CommentCount="2" />
  <row Id="11595" PostTypeId="1" CreationDate="2010-10-13T08:29:04.097" Score="6" ViewCount="292" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lately we have decides in our company to have a monthly 30-60 minutes talk on a subject that relates to C#/.Net programming or anything else that will make us better in our work.&lt;br&gt;&#xA;We are currently programming in C# 3.0 with .NET 3.5 in VS 2008.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So...&#xA;I tried to come out with some topic for the talk (Something that is not too trivial but still could be applied as a guide for better programming and not just an ad-hoc solution for specific problem) but nothing had come to my mind.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will be more that happy to hear about such topics that could fit my need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fill free to elaborate or set references to any resource that would help :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks a lot&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Itay&lt;/p&gt;&#xA;" OwnerUserId="5089" LastActivityDate="2010-10-13T22:29:06.103" Title="C#/.Net/Programming talk" Tags="&lt;programming-practices&gt;&lt;.net&gt;&lt;c#&gt;" AnswerCount="8" />
  <row Id="11599" PostTypeId="2" ParentId="11523" CreationDate="2010-10-13T08:37:53.217" Score="10" ViewCount="" Body="&lt;p&gt;Whatever you do, don't try to explain everything; it always leads to disaster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://abstrusegoose.com/98&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://abstrusegoose.com/strips/computer_programming_101.JPG&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1303" LastActivityDate="2010-10-13T08:37:53.217" CommentCount="1" />
  <row Id="11601" PostTypeId="2" ParentId="11565" CreationDate="2010-10-13T08:40:49.900" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Typing.&lt;/strong&gt; My typing is really bad (speed is OK but accuracy is poor) and I've never found the time or motivation to unlearn all my bad habits and learn to type &quot;properly&quot;.&lt;/p&gt;&#xA;" OwnerUserId="4441" LastActivityDate="2010-10-13T08:40:49.900" CommentCount="2" />
  <row Id="11602" PostTypeId="2" ParentId="11517" CreationDate="2010-10-13T08:46:21.120" Score="0" ViewCount="" Body="&lt;p&gt;To make the documentation something less unpleasant, I use two tricks:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;I use &lt;strong&gt;tools&lt;/strong&gt; that help me in the task. &lt;a href=&quot;http://submain.com/products/ghostdoc.aspx&quot; rel=&quot;nofollow&quot;&gt;GhostDoc&lt;/a&gt; for automated class members documentation, &lt;a href=&quot;http://www.innovasys.com/products/dx2010/overview.aspx&quot; rel=&quot;nofollow&quot;&gt;DocumentX&lt;/a&gt; for manual &amp;amp; WYSISWYG class members documentation, and of course simple tools like &lt;a href=&quot;http://www.madcapsoftware.com/products/flare/overview.aspx&quot; rel=&quot;nofollow&quot;&gt;Flare&lt;/a&gt; for end user documentation.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I document &lt;strong&gt;continously&lt;/strong&gt;. When I've finished a feature, I document it immediately. This is essential if you want to be able to release frequently.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-13T08:46:21.120" />
  <row Id="11604" PostTypeId="1" AcceptedAnswerId="11613" CreationDate="2010-10-13T08:55:32.283" Score="0" ViewCount="222" Body="&lt;p&gt;I'm going to build an application for iPad, iPhone and Android.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm wondering what devices I do need for testing. For example: I can run an iPhone app on an iPad, so the iPad would be a good solution, I guess.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And what about Android ? Should I hack the iPad and run Android on it as well ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is therefore the iPad a good testing device for all mobile softwares and screens with different resolutions ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;thanks&lt;/p&gt;&#xA;" OwnerUserId="5249" LastActivityDate="2010-10-13T15:00:58.780" Title="What device to get for mobile applications testing ?" Tags="&lt;testing&gt;&lt;mobile&gt;" AnswerCount="5" />
  <row Id="11606" PostTypeId="2" ParentId="11565" CreationDate="2010-10-13T08:59:03.570" Score="6" ViewCount="" Body="&lt;p&gt;Multi-threading. I quite often have to write stuff that runs asynchronously and it's as though my brain can retain the concepts but I totally forget what libraries/classes/methods I used last time and have to go back over my old code or go out in search of tutorials before I can get it again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then debugging multi-threaded code... &lt;em&gt;shudder&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-13T08:59:03.570" CommentCount="2" />
  <row Id="11607" PostTypeId="2" ParentId="11604" CreationDate="2010-10-13T09:07:09.763" Score="2" ViewCount="" Body="&lt;p&gt;Usually the SDK comes with some sort of emulator. You can find the android emulator here &lt;a href=&quot;http://developer.android.com/guide/developing/tools/emulator.html&quot; rel=&quot;nofollow&quot;&gt;http://developer.android.com/guide/developing/tools/emulator.html&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're serious about android/iphone/ipad development then eventually you will need a device. &lt;/p&gt;&#xA;" OwnerUserId="2849" LastActivityDate="2010-10-13T09:07:09.763" CommentCount="5" />
  <row Id="11608" PostTypeId="2" ParentId="39" CreationDate="2010-10-13T09:09:36.993" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Those who try to build idiot-proof systems always underestimate the persistence and ingenuity of idiots.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;— Anon&lt;/p&gt;&#xA;" OwnerUserId="5248" LastActivityDate="2010-10-13T09:09:36.993" CommunityOwnedDate="2010-10-13T09:09:36.993" />
  <row Id="11609" PostTypeId="2" ParentId="11604" CreationDate="2010-10-13T09:09:58.770" Score="0" ViewCount="" Body="&lt;p&gt;While you might be able to test the iPhone version on the iPad, it wouldn't be a valid to test to use a hacked iPad to test the Android version. There might be artefacts that won't be present on &quot;normal&quot; devices.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-13T09:09:58.770" CommentCount="2" />
  <row Id="11610" PostTypeId="2" ParentId="11595" CreationDate="2010-10-13T09:11:16.957" Score="5" ViewCount="" Body="&lt;p&gt;How about an introduction to &lt;strong&gt;functional programming&lt;/strong&gt;? You could talk about:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;what functional programming is&lt;/li&gt;&#xA;&lt;li&gt;introduce F#&lt;/li&gt;&#xA;&lt;li&gt;show how to do functional programming in C#.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;A good book in this area is &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1933988924&quot; rel=&quot;nofollow&quot;&gt;Real World Functional Programming: With Examples in F# and C#&lt;/a&gt;. There is a good presentation about functional programming in C# on InfoQ: &lt;a href=&quot;http://www.infoq.com/presentations/Functional-Programming-Sadek-Drobi&quot; rel=&quot;nofollow&quot;&gt;Functional Programming with a Mainstream Language&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-13T09:22:36.840" LastActivityDate="2010-10-13T09:22:36.840" CommentCount="1" />
  <row Id="11611" PostTypeId="2" ParentId="11565" CreationDate="2010-10-13T09:12:25.347" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Syntax&lt;/strong&gt; is my Nemesis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can solve the problem conceptually easily enough, but having learned a squillion different languages and tools and frameworks or whatever, I think I can be forgiven for having to Google the right syntax now and then.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;lt;Rant&gt;&#xA;Don't you just hate paper programming excercises in interviews? All about syntax, nothing to do with my ability to solve real problems. Grr.&#xA;&amp;lt;/Rant&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, the answer is easy. The IDE is usually quite helpful with syntax, and Google is my friend.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastEditorUserId="1928" LastEditorDisplayName="" LastEditDate="2010-10-13T09:48:25.137" LastActivityDate="2010-10-13T09:48:25.137" CommentCount="4" />
  <row Id="11613" PostTypeId="2" ParentId="11604" CreationDate="2010-10-13T09:38:30.063" Score="0" ViewCount="" Body="&lt;p&gt;I'm unsure about the ins and outs of the iPad backward compatibility, but while you can run iPhone apps on it, it's probably not the same as running it natively on an iPhone. Just as running an app in a simulator on the development machine isn't the same as running it on the device. I don't have experience with Android development, but I know that when it comes to the iPhone simulator, there's no substitute for a real device. Both iPhone and iPad. There are performance quirks that exist in the simulator which are not present on the devices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A quick google turned up this SO question: &lt;a href=&quot;http://stackoverflow.com/questions/380062/iphone-device-vs-iphone-simulator&quot;&gt;http://stackoverflow.com/questions/380062/iphone-device-vs-iphone-simulator&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5136" LastActivityDate="2010-10-13T09:38:30.063" CommentCount="5" />
  <row Id="11614" PostTypeId="2" ParentId="11565" CreationDate="2010-10-13T09:40:02.287" Score="25" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Time estimates&lt;/strong&gt; are always a challenge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It doesn't help that we have pressure from both within and without to give unrealistically short estimates:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Most of us overestimate how much we can get done in a given amount of time.&lt;/li&gt;&#xA;&lt;li&gt;The customer (understandably) wants things done yesterday.&lt;/li&gt;&#xA;&lt;li&gt;The customer is of the opinion that our estimates are unrealistically long because they can use Excel (or whatever) to solve &lt;em&gt;parts&lt;/em&gt; of the problem so quickly. They don't realise that the bits Excel can't do are hard (user interfaces, edge cases, transactions, multi-user, etc - as well as getting to know the problem domain). Moreover, they don't understand that the parts the problem that Excel &lt;em&gt;can&lt;/em&gt; solve are &lt;em&gt;also&lt;/em&gt; hard. Microsoft has invested thousands of hours in making them look easy - and we have to reproduce these bits, too.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The solutions to these challenges are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;To give realistic estimates based on experience and rules of thumb&lt;/li&gt;&#xA;&lt;li&gt;Refuse to change estimates based on pressure from managers or customers&lt;/li&gt;&#xA;&lt;li&gt;Try to ensure that people understand that an estimate is an estimate, not a promise&lt;/li&gt;&#xA;&lt;li&gt;Prioritise features based on customer needs.&lt;/li&gt;&#xA;&lt;li&gt;Deliver functionality early and often.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1928" LastEditorUserId="1928" LastEditorDisplayName="" LastEditDate="2010-10-13T20:29:06.250" LastActivityDate="2010-10-13T20:29:06.250" CommentCount="4" />
  <row Id="11615" PostTypeId="2" ParentId="2730" CreationDate="2010-10-13T09:41:38.990" Score="1" ViewCount="" Body="&lt;p&gt;Magical documentation. Language should have inbuilt documentation generation feature. The compiler itself should be able to generate the documentation. Unlike how we do with doxygen, the documentation should comments, oblivious to the language itself. It should be fully integrated. Python gets this to some extend with documentation strings. But it should do more. Compiler should be able to generate UML diagrams, flow charts, call trees etc.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastEditorUserId="5178" LastEditorDisplayName="" LastEditDate="2010-10-13T10:18:53.820" LastActivityDate="2010-10-13T10:18:53.820" CommentCount="1" />
  <row Id="11616" PostTypeId="2" ParentId="11595" CreationDate="2010-10-13T09:41:51.580" Score="4" ViewCount="" Body="&lt;p&gt;This question is hard to answer without knowing the skill level of you and your coworkers. The fact that nothing has came to your mind yet, may be an indicator that you should alter your idea a bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Instead of long monthly meetings, I would do short weekly informal talks about a topic that recently sparked the interest of you or a fellow co worker.&lt;/strong&gt; For example, when you notice that someone has problems with exception handling, talk about proper exception handling or if a co-worker made a really cool WPF tab control, let him/her talk about it. This way the topics will be much closer to real life and therefore more interesting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Make the sessions mandatory, but offer something as compensation&lt;/strong&gt; (everybody hates meetings), e.g. free coffee and a breakfast buffet. This way the attendees will always have something to look forward to even if they are not interested in the topic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Offer a reward for the person who did the presentation.&lt;/strong&gt; For example if you did 5 presentations you will get a free tech gadget as a reward. Set a price limit and let people choose whatever they want. This way people will do it voluntary and you don’t have to force anyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, another disadvantage of long sessions is that they are pretty time consuming. You will most likely spend a few days to find a good topic and to make a decent presentation about it that fills 30 to 60 minutes and doesn’t bore the attendees. If you have a lot of work to do, it’s hard to keep the monthly schedule while still maintaining high quality. If the quality declines, the chances will increase that people think that the whole monthly session thing is a giant waste of time. &lt;/p&gt;&#xA;" OwnerUserId="2955" LastActivityDate="2010-10-13T09:41:51.580" CommentCount="1" />
  <row Id="11617" PostTypeId="2" ParentId="9095" CreationDate="2010-10-13T09:44:06.630" Score="1" ViewCount="" Body="&lt;p&gt;One small but important points is the license: Scala is BSD (pretty much the most permissive free software license there is), F#  used to be &quot;Microsoft Research Shared Source license agreement&quot; but is a commercial product nowadays (according to @Lorenzo below, although I couldn't find more specific license agreements anywhere).&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-13T13:25:50.137" LastActivityDate="2010-10-13T13:25:50.137" CommentCount="7" />
  <row Id="11619" PostTypeId="2" ParentId="11595" CreationDate="2010-10-13T09:46:10.213" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;OOP&lt;/li&gt;&#xA;&lt;li&gt;C# Language&lt;/li&gt;&#xA;&lt;li&gt;OOP Best practices in C#&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4897" LastActivityDate="2010-10-13T09:46:10.213" CommentCount="1" />
  <row Id="11620" PostTypeId="2" ParentId="11312" CreationDate="2010-10-13T09:48:55.933" Score="19" ViewCount="" Body="&lt;p&gt;The Ability to use whatever editor/IDE that you prefer&lt;/p&gt;&#xA;" OwnerUserId="2395" LastActivityDate="2010-10-13T09:48:55.933" CommunityOwnedDate="2010-10-13T09:48:55.933" CommentCount="4" />
  <row Id="11621" PostTypeId="2" ParentId="11312" CreationDate="2010-10-13T09:51:40.713" Score="40" ViewCount="" Body="&lt;p&gt;A life outside of work.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-10-13T09:51:40.713" CommunityOwnedDate="2010-10-13T09:51:40.713" CommentCount="3" />
  <row Id="11622" PostTypeId="2" ParentId="39" CreationDate="2010-10-13T09:52:36.113" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;You should go home if you are thinking suicidal thoughts.&#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; Robert Read, &lt;a href=&quot;http://samizdat.mines.edu/howto/HowToBeAProgrammer.html&quot; rel=&quot;nofollow&quot;&gt;&quot;How to be a Programmer&quot;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" LastActivityDate="2010-10-13T17:54:00.650" CommunityOwnedDate="2010-10-13T09:52:36.113" />
  <row Id="11623" PostTypeId="2" ParentId="11577" CreationDate="2010-10-13T09:52:54.253" Score="0" ViewCount="" Body="&lt;p&gt;This rather depends on the OS you are using.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Windows:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;You can run JavaScript from the command line or Windowed via &lt;code&gt;cscript.exe&lt;/code&gt; (command line options determine which, and you can set the default). This is an entry point to Windows Scripting Host which &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/at5ydy31%28VS.85%29.aspx&quot; rel=&quot;nofollow&quot;&gt;has an API&lt;/a&gt; allowing file manipulation and some other things which are out of reach of JavaScript in a browser.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Better for management is &lt;a href=&quot;http://technet.microsoft.com/en-us/library/bb978526.aspx&quot; rel=&quot;nofollow&quot;&gt;PowerShell&lt;/a&gt; which provides a new administration command line and script language built on .NET with easy access to WMI, COM, remoting and other administration features. It is based on *nix shells, DCL and other sources. Uniquely (as far as I am aware) its command pipeline is based on objects (not just text) so things retain their type as processed. &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd835506%28VS.85%29.aspx&quot; rel=&quot;nofollow&quot;&gt;The SDK&lt;/a&gt; allows it to be extended in various ways.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="542" LastActivityDate="2010-10-13T09:52:54.253" CommentCount="1" />
  <row Id="11624" PostTypeId="1" CreationDate="2010-10-13T09:58:02.263" Score="1" ViewCount="118" Body="&lt;p&gt;I need to hire a web designer. How do I test his creativity and skills before I hire him. Ideally I'd like to give him a fairly open-ended task i.e. I give him a problem statement and ask him to design a PSD file. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any suggestions on the problem statement I might give him? Also, is there a better way to hire /test a web designer?&lt;/p&gt;&#xA;" LastActivityDate="2010-10-13T12:57:31.443" Title="hiring a web designer: design task" Tags="&lt;design&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="11627" PostTypeId="2" ParentId="7744" CreationDate="2010-10-13T10:04:54.267" Score="2" ViewCount="" Body="&lt;p&gt;C# is a superior language than Java, but the JVM is the superior VM compared to the .NET CLR. I would think that only the Erlang VM is superior than the JVM out of all available, industrial-strength VMs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are things you can do with Java that you cannot with C#. And that is, run on a sh*load of systems, from big iron to embedded systems running powerful chips (think OMAP). Hell, there is high performance hardware that runs JVM bytecode on chip (.ie. Au&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-13T10:04:54.267" CommentCount="2" />
  <row Id="11628" PostTypeId="2" ParentId="11624" CreationDate="2010-10-13T10:05:00.177" Score="5" ViewCount="" Body="&lt;p&gt;You can always ask for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Previous work&lt;/li&gt;&#xA;&lt;li&gt;Examples of design&lt;/li&gt;&#xA;&lt;li&gt;Mockups / thoughts / ideas before you commit to a design&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-13T10:05:00.177" CommentCount="1" />
  <row Id="11629" PostTypeId="2" ParentId="11312" CreationDate="2010-10-13T10:10:56.330" Score="4" ViewCount="" Body="&lt;p&gt;A really good &lt;strong&gt;text editor&lt;/strong&gt; and knowledge of its &lt;strong&gt;key bindings&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4609" LastEditorUserId="3941" LastEditorDisplayName="" LastEditDate="2010-10-14T00:30:14.950" LastActivityDate="2010-10-14T00:30:14.950" CommunityOwnedDate="2010-10-13T10:10:56.330" />
  <row Id="11631" PostTypeId="2" ParentId="368" CreationDate="2010-10-13T10:19:26.773" Score="3" ViewCount="" Body="&lt;p&gt;@bigown &quot;Why do people still say Java is slow?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because they are dumb. Because they have no work experience, but think they are the living incarnation of Dikjstra or the second coming of Linus Torvald, oh I dunno. The reasons for saying such a retarded thing are so many, but usually stupidity, mindless subjective fanboyism, and emotional attention-whoring seem to be behind them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's disect this so that you can see the truth of what I've just said above:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, what is slow, in what context, for what, under what conditions, with what engineering/scientific/business purpose (for saying &lt;em&gt;tehe it sucks&lt;/em&gt; is not one of them.) Any person who says &quot;X is slow&quot; for any technology X, or simply &quot;X is Y&quot; where Y is some type of negative statement, without answering any of the questions above should be dismissed as a fool. Statements like that don't have a place in engineering. In politics and juvenile chat rooms maybe, but not on engineering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, most of these misguided fools cry about Java being slow because ZOMG, their eclipse takes forever to fire up (gee, load the thing with all the plug ins, and guess what happens.) Most of these fools don't even know how to tune the jvm for eclipse to operate fast (or for any Java application for that matter). That is, they have no clue about performance tuning, which is a reality not just for Java, but for any non-trivial system, be it hardware or software. So right there, they disarm themselves for any technical validity in making such mindless statements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Third, let's consider what the bulk of Java development is for: back end OLTP first and foremost; monitoring systems coming second. Either type of system is intended to run in clusters, and to run uninterrupted for weeks if not months. Does it really matter then that your little eclipse or toy app takes a minute or two to load when the purpose of REAL Java apps is to run for extended periods of time? Context, people, context.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, the backbone of OLTP on Google and Ebay run on Java. I would take that as a proof by contradiction that Java is not slow (at least for conditions that matter, not for little toy experiments, benchmarks and unverifiable annecdotal evidence done specifically for the purpose of saying &quot;tehe X is slow, it sucks.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is engineering, and there is fanboyism. Guess which category statements like those belong to?&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-13T10:19:26.773" CommentCount="8" />
  <row Id="11632" PostTypeId="2" ParentId="8685" CreationDate="2010-10-13T10:38:27.063" Score="2" ViewCount="" Body="&lt;p&gt;My dad got his screen rotated by 90 degrees by mistake and asked me what happened. I explained that the computer has detected that you dozed off at your desk, so since your face rotated 90 degrees, it rotated the screen 90 degrees so you can still read properly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We had a good laugh and after some googling found out how to get it right again under the video drivers settings.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-13T10:38:27.063" CommunityOwnedDate="2010-10-13T10:38:27.063" />
  <row Id="11633" PostTypeId="1" AcceptedAnswerId="11668" CreationDate="2010-10-13T10:38:38.023" Score="8" ViewCount="517" Body="&lt;p&gt;Have you attempted to overcome it? How?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should not be only technical. Talking in public (internal conference), being fired, being judged by your peers, changing your location, etc...&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-13T11:32:09.687" LastActivityDate="2010-10-13T14:30:21.087" CommunityOwnedDate="2010-10-13T10:38:38.023" ClosedDate="2010-10-13T16:18:03.137" Title="As a programmer what is your biggest fear?" Tags="&lt;profession&gt;&lt;stress&gt;" AnswerCount="13" CommentCount="6" FavoriteCount="3" />
  <row Id="11635" PostTypeId="2" ParentId="11633" CreationDate="2010-10-13T10:42:49.093" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;To be technically out of date.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our world turns so fast that is very easy to seem stagnated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is not easy to avoid that when you are employed in a very large project, so I have to do some homework, read lots of blogs, I also try to be in touch with the community through webs like this one and participate in events where I can see what are the new trends.&lt;/p&gt;&#xA;" OwnerUserId="3730" LastEditorUserId="1069" LastEditorDisplayName="" LastEditDate="2010-10-13T12:39:07.893" LastActivityDate="2010-10-13T12:39:07.893" CommunityOwnedDate="2010-10-13T10:42:49.093" />
  <row Id="11636" PostTypeId="2" ParentId="11633" CreationDate="2010-10-13T10:49:39.257" Score="2" ViewCount="" Body="&lt;p&gt;Mediocrity. Should always strive for excellence. Sometimes I am afraid that I won't be able to strive for excellence if some dumb architect/manager/powerful-wise-guy ties my hands.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-13T10:49:39.257" CommunityOwnedDate="2010-10-13T10:49:39.257" />
  <row Id="11637" PostTypeId="1" AcceptedAnswerId="11702" CreationDate="2010-10-13T10:52:00.363" Score="3" ViewCount="278" Body="&lt;p&gt;I'm in the planning stages of developing a web application that I want to make as secure as possible. I'm pretty clear about how to do that from a technical point of view, but there is one massive potential security hole: I want the site to have users. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As anyone who has ever been a user knows, users forget usernames, forget passwords, sometimes forget that they even had an account with your site. Users respond to phishing emails and give away their credentials. If you do anything that they find too complicated they won't use your site, it has to be simple and all happen in as few clicks as possible, but we have to balance that out by making it as hard as possible for users to accidentally give away their credentials and to keep access to the service as secure as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I'm particularly interested in are strategies that go beyond the standard username and password combination and ways of recovering or resetting passwords that make things easy for users but hard for anyone trying to steal their account. I know a lot of sites provide an extra user-set security question, but because I don't trust users not to create a stupid question like &quot;what is 1+1&quot; I don't see how this can guarantee security.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there strategies that could be useable to the most clueless user but challenging to a determined and targetted attack aiming to break into their account? If not what are the closest things we could get? As a user what are the best/worst sites for this you have encountered and why?&lt;/p&gt;&#xA;" OwnerUserId="4027" LastEditorUserId="4027" LastEditorDisplayName="" LastEditDate="2010-10-13T11:00:42.133" LastActivityDate="2010-12-06T19:26:40.227" Title="How to make security usable in a web application?" Tags="&lt;web-development&gt;&lt;security&gt;&lt;users&gt;" AnswerCount="7" CommentCount="7" />
  <row Id="11638" PostTypeId="1" AcceptedAnswerId="11643" CreationDate="2010-10-13T10:57:19.170" Score="6" ViewCount="378" Body="&lt;p&gt;and what is the main cause for you to take a break?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every time I hit an non understandable error I stop for a break.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;what about you?&lt;/p&gt;&#xA;" OwnerUserId="5260" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-10-13T11:12:35.057" LastActivityDate="2010-10-14T15:45:02.947" Title="How many breaks do you take and how often do you take them?" Tags="&lt;work-environment&gt;" AnswerCount="11" FavoriteCount="2" />
  <row Id="11639" PostTypeId="2" ParentId="368" CreationDate="2010-10-13T10:59:25.660" Score="3" ViewCount="" Body="&lt;p&gt;Slow compared to what? I'm thinking of changing from ordinary Ruby to JRuby (Java based ruby) because I've heard it's faster.&lt;/p&gt;&#xA;" OwnerUserId="2114" LastActivityDate="2010-10-13T10:59:25.660" CommentCount="3" />
  <row Id="11640" PostTypeId="2" ParentId="177" CreationDate="2010-10-13T11:02:49.530" Score="2" ViewCount="" Body="&lt;p&gt;&quot;Popular&quot; isn't a terribly important metric. &quot;Useful&quot; or &quot;powerful&quot; is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Actor model's been around for about 35 years now, at least in academia, and it has been adopted by more and more real-world languages as time passes. (OK, Erlang didn't &lt;em&gt;adopt&lt;/em&gt; the Actor model, it &lt;em&gt;reinvented&lt;/em&gt; the Actor model. Still.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, given that it's survived several decades in academia, and it's moving into the mainstream, I'd say it's going to be around for a good while.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-13T11:02:49.530" />
  <row Id="11642" PostTypeId="2" ParentId="11637" CreationDate="2010-10-13T11:10:18.220" Score="3" ViewCount="" Body="&lt;p&gt;I think you shouldn't reinvent the wheel. Most websites have a solution that works for forgotten passwords, and that's sending a link to the user's e-mail account. The only way that plan goes haywire is if the e-mail account has been compromised.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's obvious that the more important the user data on your website is, the more security measures you should have, but these extra security measures have an impact on your site's usability. How critical is the data on your site? Should you have 2 or 3 authentication systems like sometimes e-banks do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most important aspect is &quot;don't trust user input&quot;. If you do this, most security problems won't exist and there won't be an impact on the usability. If you want to be paranoid, go ahead and build a fancy security system, but don't forget that it might impact the way users use your site (for the worst). You have to find a balance between these 2 things.&lt;/p&gt;&#xA;" OwnerUserId="3682" LastActivityDate="2010-10-13T11:10:18.220" CommentCount="2" />
  <row Id="11643" PostTypeId="2" ParentId="11638" CreationDate="2010-10-13T11:11:37.757" Score="8" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.workrave.org/&quot; rel=&quot;nofollow&quot;&gt;WorkRave&lt;/a&gt; for periodic breaks. &lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-10-13T11:11:37.757" CommentCount="3" />
  <row Id="11644" PostTypeId="2" ParentId="11638" CreationDate="2010-10-13T11:12:25.750" Score="1" ViewCount="" Body="&lt;p&gt;When I'm not being productive. Then I'll return with a clear head and voila, the problem solves itself.&lt;/p&gt;&#xA;" OwnerUserId="3682" LastActivityDate="2010-10-13T11:12:25.750" CommentCount="1" />
  <row Id="11645" PostTypeId="2" ParentId="11633" CreationDate="2010-10-13T11:18:55.253" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Incompetence&lt;/strong&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just work &lt;em&gt;hard&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2115" LastEditorUserId="2115" LastEditorDisplayName="" LastEditDate="2010-10-13T13:01:22.637" LastActivityDate="2010-10-13T13:01:22.637" CommunityOwnedDate="2010-10-13T11:18:55.253" CommentCount="2" />
  <row Id="11647" PostTypeId="2" ParentId="11638" CreationDate="2010-10-13T11:22:13.037" Score="1" ViewCount="" Body="&lt;p&gt;I take a break whenever I'm stuck with a problem instinctively knowing that it has a simple, elegant solution yet, somehow, I can't see it for the time being.&lt;/p&gt;&#xA;" OwnerUserId="5258" LastActivityDate="2010-10-13T11:22:13.037" />
  <row Id="11648" PostTypeId="2" ParentId="11637" CreationDate="2010-10-13T11:24:58.027" Score="1" ViewCount="" Body="&lt;p&gt;To the OP: Use standard approaches to security on web sites. There will inevitably be moron users that will drown and walk away from your secure site, but that's the nature of the beast. You want security, you'll have to sacrifice some flexibility (and again, there are known practices on security that have worked well from a user-friendly point of view.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, when a user walks away, it is usually for things other than security (shitty web design, confusing navigation, poor performance, unreliability, etc.) Obtrusive security is usually the result of a poor architecture, and not of security itself. Keep that in mind.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-13T11:24:58.027" CommentCount="2" />
  <row Id="11649" PostTypeId="2" ParentId="11633" CreationDate="2010-10-13T11:28:04.433" Score="9" ViewCount="" Body="&lt;h3&gt;(Accidentally) working on live servers/databases&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Always triple checking..&lt;/p&gt;&#xA;" OwnerUserId="2820" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-10-13T11:43:03.337" LastActivityDate="2010-10-13T11:43:03.337" CommunityOwnedDate="2010-10-13T11:28:04.433" />
  <row Id="11650" PostTypeId="2" ParentId="11638" CreationDate="2010-10-13T11:29:29.347" Score="0" ViewCount="" Body="&lt;p&gt;Its usually when I cannot code like - code is compiling, version synchronization with central repository, dangerously low levels of caffeine detected ...&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-13T11:29:29.347" />
  <row Id="11651" PostTypeId="2" ParentId="11312" CreationDate="2010-10-13T11:35:03.893" Score="4" ViewCount="" Body="&lt;h2&gt;A punching bag&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Great way to blow off some steam.&lt;/p&gt;&#xA;" OwnerUserId="3228" LastActivityDate="2010-10-13T11:35:03.893" CommunityOwnedDate="2010-10-13T11:35:03.893" CommentCount="1" />
  <row Id="11652" PostTypeId="2" ParentId="11312" CreationDate="2010-10-13T11:41:13.340" Score="2" ViewCount="" Body="&lt;p&gt;What I like is:&lt;br&gt;&#xA;A super fast computer.&lt;br&gt;&#xA;A large enough monitor. (Debugging in a 17' is horrible).&lt;br&gt;&#xA;Super ergonomic chair.&lt;br&gt;&#xA;A private room.&lt;br&gt;&#xA;Talks via chat or emails only for most of the part.&lt;br&gt;&#xA;Quality headphone&lt;br&gt;&#xA;Water bottle with fresh lukewarm water.&lt;br&gt;&#xA;Calm atmosphere.&lt;br&gt;&#xA;A sofa to lie down.&lt;br&gt;&#xA;A locker to keep personal things&lt;br&gt;&#xA;A book (to scribble some thoughts).&lt;br&gt;&#xA;Use which OS, IDE etc (left to the programmer).&lt;br&gt;&#xA;Fast internet connection with no restriction (ok adult contents can be restricted. Nothing else.)&lt;br&gt;&#xA;I need good friends and fellow programmers of preferably same age.&lt;br&gt;&#xA;A girl to flirt with may be ideal since life is so boring. And programmers hardly have got any girl friends. (hah! just kidding)&lt;br&gt;&#xA;A free time where we can pursue any hobby that we like.&#xA;Food available locally. Needn't go out of the building to have one.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-10-13T11:41:13.340" CommunityOwnedDate="2010-10-13T11:41:13.340" CommentCount="3" />
  <row Id="11653" PostTypeId="2" ParentId="8886" CreationDate="2010-10-13T11:42:42.077" Score="0" ViewCount="" Body="&lt;p&gt;It used to be possible, but it has become increasingly difficult (if not near impossible) in the last 15 years. I'm always of the school of thought that software engineering is &lt;em&gt;MUCH, MUCH MORE&lt;/em&gt; a mindset and innate mental capabilities towards analysis and problem solving that the completion of a formal curriculum.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, people either get (or have the capability of getting) things like recursion and pointers or not (independently of whether people go to CS schools or not.) I've known people with degrees in Literature or Accounting being able to code really low level crap on embedded systems, whereas I've met people well into the CS masters who still cannot grasp the idea of a pointer to a function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But nowadays, it will be really hard for someone without a formal education to break through into the software industry. Barring an opportunity to work at a small company where they might give you a chance, I don't know how to best suggest going about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;--- edit ---&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would really hesitate to hire someone without a HS degree (unless he already has a demonstratively long work record in the software field), though. I could consider someone with partial college education or with a degree not related to math, sciences or engineering if  they can prove they have the analytical skills (or the math that tends to be a good indicator of analytical skills.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is just too much the risk. And in hiring, there is always a risk analysis trade off involved.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-13T11:42:42.077" CommunityOwnedDate="2011-03-30T04:35:50.040" />
  <row Id="11654" PostTypeId="2" ParentId="11633" CreationDate="2010-10-13T11:43:35.927" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Not getting it&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually grasp things first go. It makes me feel so powerless when I can't get my head round something.&lt;/p&gt;&#xA;" OwnerUserId="5056" LastActivityDate="2010-10-13T11:43:35.927" CommunityOwnedDate="2010-10-13T11:43:35.927" />
  <row Id="11655" PostTypeId="2" ParentId="1166" CreationDate="2010-10-13T11:45:21.943" Score="0" ViewCount="" Body="&lt;p&gt;I prefer normal shirt and a pant. With slippers. Simple. Well if meeting client, then executive attire is preferred.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-10-13T11:45:21.943" CommunityOwnedDate="2011-01-30T18:03:58.527" CommentCount="2" />
  <row Id="11656" PostTypeId="2" ParentId="11595" CreationDate="2010-10-13T11:45:25.407" Score="4" ViewCount="" Body="&lt;p&gt;As far as I'm concerned, the biggest thing to come out of .net/C# recently is LINQ. If members of your team aren't using it, they haven't been properly introduced.&lt;/p&gt;&#xA;" OwnerUserId="5056" LastActivityDate="2010-10-13T11:45:25.407" CommentCount="5" />
  <row Id="11657" PostTypeId="2" ParentId="11312" CreationDate="2010-10-13T11:46:44.130" Score="1" ViewCount="" Body="&lt;p&gt;Easy access to refreshments, for example a coffee pot in the room (if that's your preference).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's nothing worse than grabbing a quick coffee before embarking on the next section of code, and being ambushed by users with support issues or managers who want &quot;a quick chat&quot; (or worse, vica versa).&lt;/p&gt;&#xA;" OwnerUserId="3526" LastActivityDate="2010-10-13T11:46:44.130" CommunityOwnedDate="2010-10-13T11:46:44.130" />
  <row Id="11658" PostTypeId="2" ParentId="11638" CreationDate="2010-10-13T11:49:27.787" Score="0" ViewCount="" Body="&lt;p&gt;I take a five-minute break each 30 minutes.  It adds rhythm to my work, and makes me more productive.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-10-13T11:49:27.787" />
  <row Id="11659" PostTypeId="2" ParentId="11546" CreationDate="2010-10-13T11:49:40.987" Score="3" ViewCount="" Body="&lt;p&gt;In the general case, no. It is not illegal to discover a security issue. It is not illegal (and I argue it should not be) to discuss this with other people before notifying the vendor. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is (in many, probably most jurisdictions) illegal to use a security flaw, without prior permission of the owner of the machine you're using it on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you ask &quot;is it ethical&quot;, I'd have to hedge my answers a bit more. It can be ethical, it can be unethical, it depends on many variables.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You also have the problem of &quot;what to do if the vendor is not responsive&quot;. This is, from my understanding, becoming less common these days, but there's certainly been multiple cases in the past when security researchers have notified a vendor of an existing security hole and the vendor has done nothing for years, until they've finally published the research (sometimes, but not always, prompted by seeing the security hole used by cracking toolsets in the wild).&lt;/p&gt;&#xA;" OwnerUserId="5084" LastActivityDate="2010-10-13T11:49:40.987" />
  <row Id="11660" PostTypeId="2" ParentId="11638" CreationDate="2010-10-13T11:51:36.223" Score="0" ViewCount="" Body="&lt;p&gt;I try to stand up and walk around for a few minutes at least once an hour. I have a some back issues that get worse the more I sit. This is all dependent on workload and focus of course. &lt;/p&gt;&#xA;" OwnerUserId="3421" LastEditorUserId="3421" LastEditorDisplayName="" LastEditDate="2010-10-14T15:45:02.947" LastActivityDate="2010-10-14T15:45:02.947" CommentCount="2" />
  <row Id="11661" PostTypeId="2" ParentId="11637" CreationDate="2010-10-13T11:54:30.467" Score="1" ViewCount="" Body="&lt;p&gt;My only suggestion on the &quot;usable but secure&quot; front would be to have set questions, but user-entered answers (e.g. notable place, first pet's name, notable date). Although these aren't watertight individually, making them answer a combination of two or three person-specfic questions should be good enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And don't forget Captcha words or similar to slow down or identify brute-forcing.&lt;/p&gt;&#xA;" OwnerUserId="3526" LastActivityDate="2010-10-13T11:54:30.467" CommentCount="6" />
  <row Id="11662" PostTypeId="2" ParentId="11638" CreationDate="2010-10-13T11:55:39.460" Score="0" ViewCount="" Body="&lt;p&gt;Like @Tony, I tend to &quot;stretch&quot; for about 5 minutes every hour then take a 20 to 30 minute jog at lunch to really break the day in two. Sometimes, i practice the pomodoro technique, but not everyday. &lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-10-13T11:55:39.460" />
  <row Id="11664" PostTypeId="2" ParentId="11633" CreationDate="2010-10-13T11:57:23.513" Score="3" ViewCount="" Body="&lt;p&gt;Getting stuck in a series of jobs where there's no one with greater or more varied experience to learn off. One can read all the books, do all the exams etc. but at a certain point it's other people that are required for inspiration and growth, if they're not around stagnation sets in.&lt;/p&gt;&#xA;" OwnerUserId="5066" LastActivityDate="2010-10-13T11:57:23.513" CommunityOwnedDate="2010-10-13T11:57:23.513" />
  <row Id="11665" PostTypeId="2" ParentId="11565" CreationDate="2010-10-13T12:03:05.863" Score="0" ViewCount="" Body="&lt;p&gt;OOP. Some concepts are making sense lately but still a lot to go. Hmm.. I like functional btw.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-10-13T12:03:05.863" CommentCount="2" />
  <row Id="11666" PostTypeId="2" ParentId="11565" CreationDate="2010-10-13T12:09:38.223" Score="0" ViewCount="" Body="&lt;h2&gt;Thinking.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I would write an explanation why, but ... ugh, brain hurts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(Then again, they say that in the simple solutions lies the genius :-))&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-13T12:09:38.223" />
  <row Id="11667" PostTypeId="1" AcceptedAnswerId="40526" CreationDate="2010-10-13T12:11:25.880" Score="0" ViewCount="106" Body="&lt;p&gt;I'm looking for a 'term' that describes holistically the set of various software development tools/services that most developers use on a day to day basis. While each tool by itself has a specific purpose and can be described, is there a plural term when they are grouped together and running as a polymorphic service.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a person said a server was a production test box, i'd expect it to be running the application that company are writing. If a person said box A is the office ware server, i'd know to expect email/communication related services.&lt;/p&gt;&#xA;" OwnerUserId="5263" LastActivityDate="2011-01-27T15:08:55.493" Title="terminology to describe a server running source control, bug tracking and CI tools" Tags="&lt;software&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="0" />
  <row Id="11668" PostTypeId="2" ParentId="11633" CreationDate="2010-10-13T12:13:34.020" Score="24" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;That moment when you realise the magnitude of a serious bug, error or mistake&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've never experienced that cold, dropping sensation in the pit of your stomach as you look at that minor bug in your latest fix or the support line phones start ringing and suddenly realise that it has dropped all the data from the customer database your sales team have been working on for the last five years, or emailed personal data about all your customers to all your customers or that it &lt;em&gt;might be doing it right now&lt;/em&gt; and it &lt;em&gt;must be stopped before things get worse&lt;/em&gt; but you're just paralysed, staring at the source like a rabbit in the headlights, then you are very lucky indeed.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-13T12:13:34.020" CommunityOwnedDate="2010-10-13T12:13:34.020" CommentCount="2" />
  <row Id="11669" PostTypeId="1" AcceptedAnswerId="11700" CreationDate="2010-10-13T12:14:58.300" Score="4" ViewCount="182" Body="&lt;p&gt;I saw some projects require BISON to generate C++ code. What is the advantage of having BISON/Yacc etc. generate C/C++ code instead of writing it yourself?&lt;/p&gt;&#xA;" OwnerUserId="2213" LastActivityDate="2010-10-13T15:00:06.380" Title="Why are parser generators used?" Tags="&lt;code-generation&gt;" AnswerCount="4" />
  <row Id="11670" PostTypeId="2" ParentId="8741" CreationDate="2010-10-13T12:18:03.483" Score="0" ViewCount="" Body="&lt;p&gt;Good companies care for their programmer and provides with good adjustable chairs and other necessities.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-10-13T12:18:03.483" />
  <row Id="11672" PostTypeId="2" ParentId="11565" CreationDate="2010-10-13T12:21:55.910" Score="5" ViewCount="" Body="&lt;p&gt;I'm not as good at math as I should be. Compared to the general population I'm fairly competent, but for someone with a degree in computer science, I feel like I should be a lot better at it.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-13T12:21:55.910" />
  <row Id="11675" PostTypeId="2" ParentId="9095" CreationDate="2010-10-13T12:28:53.543" Score="1" ViewCount="" Body="&lt;p&gt;Scala runs on JVM. F# runs on MS CLR (Microsoft's Common Language Runtime). F# is more like Ocaml. Its like comparing Java and C# where this ones (Scala &amp;amp; F#) supports functional programming paradigm too.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-10-13T12:28:53.543" />
  <row Id="11676" PostTypeId="2" ParentId="11312" CreationDate="2010-10-13T12:39:41.633" Score="4" ViewCount="" Body="&lt;p&gt;Headphones + white noise generator&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I either use the one at &lt;a href=&quot;http://www.simplynoise.com/&quot; rel=&quot;nofollow&quot;&gt;SimplyNoise&lt;/a&gt;, or a free iPhone app called White Noise Lite&lt;/p&gt;&#xA;" OwnerUserId="5265" LastActivityDate="2010-10-13T12:39:41.633" CommunityOwnedDate="2010-10-13T12:39:41.633" />
  <row Id="11677" PostTypeId="2" ParentId="11633" CreationDate="2010-10-13T12:39:47.297" Score="3" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Being supervised by some undereducated loser who thinks his &quot;work experience&quot;(=some PHP dabbling around an Open Source project) somehow makes up for for his lack of knowledge about design patterns.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Having to pick up a lousy job to pay bills.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A company culture of &quot;long hours&quot;, where long hours translate to &quot;It's normal for you to add value to company by putting in (on average) additional 3-4 workdays a month, however if you ask for a HALF A DAY OFF to attend a private event, WE WILL MAKE SURE TO TAKE IT OUT OF YOUR HOLLIDAYS&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;My temper exploding  when I've had enough.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-10-13T12:39:47.297" CommunityOwnedDate="2010-10-13T12:39:47.297" CommentCount="3" />
  <row Id="11679" PostTypeId="2" ParentId="11667" CreationDate="2010-10-13T12:52:46.227" Score="4" ViewCount="" Body="&lt;p&gt;I've been using the term &quot;build environment&quot; or &quot;build server&quot; which covers our: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;SVN Server&lt;/li&gt;&#xA;&lt;li&gt;Issue tracking&lt;/li&gt;&#xA;&lt;li&gt;CCNet &lt;/li&gt;&#xA;&lt;li&gt;Test case management &lt;/li&gt;&#xA;&lt;li&gt;Development wiki&lt;/li&gt;&#xA;&lt;li&gt;etc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It was the best term we could come up with at the time. &lt;/p&gt;&#xA;" OwnerUserId="4330" LastActivityDate="2010-10-13T12:52:46.227" />
  <row Id="11680" PostTypeId="1" AcceptedAnswerId="11691" CreationDate="2010-10-13T12:55:42.740" Score="12" ViewCount="334" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/9/how-do-you-stay-focused-at-work&quot;&gt;This is related&lt;/a&gt;, but I'm thinking about something more like a chastity belt for keeping me from checking programmers.SE or my email every time I compile. Rather advice like &quot;go take a walk and you'll feel more like coding&quot;, I just need something to augment my weak constitution - a net nanny for my geek fetish I guess.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll take my answer off the air and I promise not to check programmers.SE for at least a day.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-13T21:18:14.587" Title="What tools do you use to stay focused?" Tags="&lt;productivity&gt;&lt;tools&gt;&lt;focus&gt;" AnswerCount="7" FavoriteCount="4" />
  <row Id="11681" PostTypeId="2" ParentId="11624" CreationDate="2010-10-13T12:57:31.443" Score="2" ViewCount="" Body="&lt;p&gt;I just asked a designer sat across from me - he said he wouldn't perform the task but rely on his portfolio.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you testing the potential designer's competency with his/her tools or want a feel for their style/output/approach? Examples of previous work is a better way, talk to a past client or two, and listen for what feedback/ideas they have when talking to you. They might mock up one or two (roughly, not finished articles).&lt;/p&gt;&#xA;" OwnerUserId="4205" LastActivityDate="2010-10-13T12:57:31.443" CommentCount="1" />
  <row Id="11682" PostTypeId="2" ParentId="11669" CreationDate="2010-10-13T13:05:31.477" Score="3" ViewCount="" Body="&lt;p&gt;Two reasons:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Clarity&lt;/strong&gt;: A parser generator can use a language (say, ABNF) that is geared towards the problem, that of describing a grammar. (Some languages arguably can get away with not needing a separate language: just build a DSL in the host language.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Ease of use&lt;/strong&gt;: You don't have to know how to write a parser yourself. Would you use a recursive descent parser? a pack-rat parser? etc. And &lt;em&gt;do you care&lt;/em&gt;, if you just want to parse a SIP message?&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-13T13:05:31.477" />
  <row Id="11683" PostTypeId="2" ParentId="11680" CreationDate="2010-10-13T13:07:14.450" Score="1" ViewCount="" Body="&lt;p&gt;If compilation takes longer than several seconds you will become bored waiting till compilation ends. I'm in the same situation myself. you can try to optimize your building scripts though, or use ccache to at least speed it up.&lt;/p&gt;&#xA;" OwnerUserId="1027" LastActivityDate="2010-10-13T13:07:14.450" CommentCount="1" />
  <row Id="11684" PostTypeId="2" ParentId="11680" CreationDate="2010-10-13T13:14:20.900" Score="6" ViewCount="" Body="&lt;p&gt;From time to time, I use the pomodoro technique. More info is &lt;a href=&quot;http://www.pomodorotechnique.com/&quot; rel=&quot;nofollow&quot;&gt;here (official site)&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Pomodoro_Technique&quot; rel=&quot;nofollow&quot;&gt;here (wikipedia)&lt;/a&gt;. Basically, you work focused for 25 minutes, then break for 5. Rinse, repeat. You can use an egg timer, iPhone app, etc... to track the time. When the acceptance criteria is pretty cut and dried, this is a great way to hammer through the work and the day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't follow it religiously all the time but when I'm feeling scattered, I attempt to fall back to it. It's effective (IMHO) and easy to try.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-10-13T13:14:20.900" />
  <row Id="11685" PostTypeId="2" ParentId="11565" CreationDate="2010-10-13T13:21:17.997" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Interfacing with Customers&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not a technical skill, but a skill we should possess regardless. I'm not a people person in this regard. Just feed me the specs and I'm happy.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-10-13T13:21:17.997" />
  <row Id="11686" PostTypeId="2" ParentId="11565" CreationDate="2010-10-13T13:27:26.233" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;LINQ and Lambda Expressions&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well the LINQ part only really applies to .NET but I always end up asking on SO rather than learning it for myself.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-10-13T13:27:26.233" />
  <row Id="11687" PostTypeId="2" ParentId="11669" CreationDate="2010-10-13T13:30:51.903" Score="3" ViewCount="" Body="&lt;p&gt;The same reason that you don't write your own hashmap, or smart pointer, or threading library.  Its much better use of your time to use something that is already written and debugged that do it yourself.  There will always be certain people and certain situations where the best option is to roll your own, but these are rare.  Probably more rare than most people accept.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For parsers in particular, it is fairly easy to write a parser that works most of the time.  It is tricky to write one that work correctly for all input, including malformed input, and is easy to modify.  Its also tempting to impose some strange syntax on the input to make it east to parse, at the expense of making it harder to create input files.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For C++, I've had good results with Boost::spirit.  Its a parser framework that, through the use of lots of template magic, lets you embed BNF directly into your C++ code.  It has a bit of a learning curve, but once you wrap your mind around it, it make it easy to construct parsers for complex languages.&lt;/p&gt;&#xA;" OwnerUserId="1427" LastActivityDate="2010-10-13T13:30:51.903" CommentCount="2" />
  <row Id="11688" PostTypeId="2" ParentId="11077" CreationDate="2010-10-13T13:31:30.967" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;curly brackets&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="4843" LastActivityDate="2010-10-13T13:31:30.967" />
  <row Id="11689" PostTypeId="1" CreationDate="2010-10-13T13:37:20.113" Score="5" ViewCount="265" Body="&lt;p&gt;Recently I realized that most of my coding problems are solved either by digging stackoverflow archive or simply asking question here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, I spend lots of time fooling myself I will manage to find the solution without any help. It usually results in really high frustration level and the whole thing ends at stackoverflow anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So here is my question &quot;How long does it usually takes before you finally post your problem stackoverflow where it gets solved amazingly quickly (comparing to the time lost on &quot;solving without help)?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW thanks too all you guy who already helped me and thanks in advance to those who will in the future.&lt;/p&gt;&#xA;" OwnerUserId="5100" LastEditorUserId="5100" LastEditorDisplayName="" LastEditDate="2010-10-13T16:38:44.457" LastActivityDate="2010-10-13T16:38:44.457" ClosedDate="2010-10-14T03:44:25.457" Title="How long does it usually takes before you finally post your problem on stackoverflow?" Tags="&lt;productivity&gt;&lt;programming-practices&gt;&lt;time-management&gt;&lt;problem-solving&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="0" />
  <row Id="11690" PostTypeId="2" ParentId="11633" CreationDate="2010-10-13T13:39:19.407" Score="5" ViewCount="" Body="&lt;p&gt;Facing the problem that nobody on stackoverflow can solve - for me that means it is unsolvable :)&lt;/p&gt;&#xA;" OwnerUserId="5100" LastActivityDate="2010-10-13T13:39:19.407" CommunityOwnedDate="2010-10-13T13:39:19.407" CommentCount="3" />
  <row Id="11691" PostTypeId="2" ParentId="11680" CreationDate="2010-10-13T13:39:59.547" Score="3" ViewCount="" Body="&lt;p&gt;In addition to the Pomodoro technique that DevSolo mentioned, you can also get help from the &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/4476/&quot; rel=&quot;nofollow&quot;&gt;LeechBlock&lt;/a&gt; Firefox add-on, which blocks some sites after you spend too much time on them.&lt;/p&gt;&#xA;" OwnerUserId="3807" LastActivityDate="2010-10-13T13:39:59.547" CommentCount="3" />
  <row Id="11692" PostTypeId="2" ParentId="11689" CreationDate="2010-10-13T13:41:04.257" Score="1" ViewCount="" Body="&lt;p&gt;About an hour or two. What's really great is when after that hour I have some &quot;solution&quot; I've created and then I decide to check stackoverflow anyway only to find an amazingly more simple and elegant solution. It is humbling and sharpening!&lt;/p&gt;&#xA;" OwnerUserId="4881" LastActivityDate="2010-10-13T13:41:04.257" />
  <row Id="11693" PostTypeId="2" ParentId="11689" CreationDate="2010-10-13T13:41:27.500" Score="6" ViewCount="" Body="&lt;p&gt;I usually don't post until the problem becomes &quot;magical&quot; to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I get to the point where there's some configuration or combination of things that's making something not work as I expect to.  Once I've debugged, checked every log, and have enough information to ask a specific and well thought out question, then I go to SO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's more of a point I reach, more than a particular time.  I know that if I don't research it well myself in the first place, then I'll either waste time revising my question or send other people off on rabbit trails that I could have figured out faster just by checking a log.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-13T13:41:27.500" CommentCount="2" />
  <row Id="11694" PostTypeId="2" ParentId="11633" CreationDate="2010-10-13T13:44:07.920" Score="2" ViewCount="" Body="&lt;p&gt;Falling behind. Sometimes it feels like the world around me is moving at light speed and I'm crawling behind them like a turtle. There are so many technologies and patterns out there it can be overwhelming.&lt;/p&gt;&#xA;" OwnerUserId="4881" LastActivityDate="2010-10-13T13:44:07.920" CommunityOwnedDate="2010-10-13T13:44:07.920" />
  <row Id="11695" PostTypeId="2" ParentId="11595" CreationDate="2010-10-13T13:48:33.377" Score="2" ViewCount="" Body="&lt;p&gt;What about dependency injection using Inversion of Control containers? We use Microsoft's Unity Container, but there are a number of them you could choose from to talk about.&lt;/p&gt;&#xA;" OwnerUserId="4881" LastActivityDate="2010-10-13T13:48:33.377" />
  <row Id="11696" PostTypeId="2" ParentId="11633" CreationDate="2010-10-13T13:50:01.040" Score="1" ViewCount="" Body="&lt;p&gt;Not highlighting the where clause and running the query below in a production DB&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;delete from &amp;lt;MainTransactionTable&amp;gt;&#xA;where &amp;lt;KeyColumn&amp;gt; = '&amp;lt;UniqueValue&amp;gt;'&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-13T13:50:01.040" CommunityOwnedDate="2010-10-13T13:50:01.040" CommentCount="1" />
  <row Id="11697" PostTypeId="2" ParentId="11689" CreationDate="2010-10-13T13:57:32.070" Score="3" ViewCount="" Body="&lt;p&gt;I post when, even after some googling, I have no idea how to approach the particular problem. It may be after 5 minutes, or after 5 hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point is that when you have no clue, it's hard to find the solution from google because &lt;em&gt;you don't know what to search exactly&lt;/em&gt;. Formulating the problem into sentences that another human being interprets is in some ways more powerful than a google search.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I asked &lt;a href=&quot;http://stackoverflow.com/questions/1880166/is-it-possible-to-specify-where-jvms-crash-dumps-go&quot;&gt;how to specify where JVM's crash dumps go&lt;/a&gt;. Finding the answer from google is easy once you know that those dumps are called heap dumps, and they're controlled with - surprise - a parameter called HeapDumpPath.  But if you only know that they're &quot;hs_err_pidXXX.log&quot; files, it's hard to come up with the right keywords.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-13T14:26:00.533" LastActivityDate="2010-10-13T14:26:00.533" />
  <row Id="11698" PostTypeId="2" ParentId="11689" CreationDate="2010-10-13T13:59:55.683" Score="2" ViewCount="" Body="&lt;p&gt;Three reasons I usually post:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) The team does not have a consensus and we are seeking advice from the community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) The implementation I am considering does not pass the &quot;code sniff&quot; and I am wondering what alternatives there are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Resolving issues has become circular.  That is, by resolving issue A, it raises issue B, and by resolving issue B it raises issue A.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, usually an hour or two.&lt;/p&gt;&#xA;" OwnerUserId="5275" LastActivityDate="2010-10-13T13:59:55.683" />
  <row Id="11699" PostTypeId="2" ParentId="11633" CreationDate="2010-10-13T14:03:25.223" Score="0" ViewCount="" Body="&lt;p&gt;Being hit by a &lt;a href=&quot;http://www.johndcook.com/blog/2008/09/28/programmer-hit-by-a-bus/&quot; rel=&quot;nofollow&quot;&gt;Green Bus&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-10-13T14:03:25.223" CommunityOwnedDate="2010-10-13T14:03:25.223" CommentCount="1" />
  <row Id="11700" PostTypeId="2" ParentId="11669" CreationDate="2010-10-13T14:04:22.487" Score="10" ViewCount="" Body="&lt;p&gt;The most important thing about BISON and YACC is that they generate a state machine which would parse exactly your grammar. This is for speed reason, since complexity of generated code is &lt;em&gt;not&lt;/em&gt; O(n) with n = number of rules as it would be in most first-attempt implementations. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The state machine approach causes the number of states spawned to be &lt;em&gt;very&lt;/em&gt; high  and thus it would be very error prone to write that code. Manteinance of that code would also be an hell (where hell = I would quit the job if someone suggested me to do that). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bison and Yacc make you concentrate on the grammar instead of its implementation.&lt;/p&gt;&#xA;" OwnerUserId="4738" LastEditorUserId="4738" LastEditorDisplayName="" LastEditDate="2010-10-13T14:48:46.427" LastActivityDate="2010-10-13T14:48:46.427" CommentCount="1" />
  <row Id="11701" PostTypeId="2" ParentId="11689" CreationDate="2010-10-13T14:18:42.907" Score="22" ViewCount="" Body="&lt;p&gt;I tend to ask as a last resort when I've tried everything obvious, particularly when there is a term I don't know so I don't have something to narrow down a google search. Or when the searches I do are only returning Expert Sexchange and other nonsense sites.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I actually start typing perhaps five questions for every one I ask, and the simple act of writing down the exact situation so it can be understood by other SO users is often enough that I can see the solution myself. Likewise when I do have a really tough problem often the questions I get in comments lead me to solve it myself as often as actual answers help...&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-13T14:18:42.907" CommentCount="2" />
  <row Id="11702" PostTypeId="2" ParentId="11637" CreationDate="2010-10-13T14:20:49.493" Score="3" ViewCount="" Body="&lt;p&gt;The only way I know of to build a truly secure web site is to require a password and have a challenge/response device. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, TreasuryDirect.gov sends you a card with a grid of random characters. As part of the logon process, you are asked to provide the characters that are contained in specific cells of the grid. But this is expensive and time-consuming; it requires to get the cards, to track them and to send them out. Plus, if a person loses the card, they can't log in until you get them a new card. In the case of TreasuryDirect, where you could be managing millions of dollars, this hassle is worth it. Only you can determine if it will be worth it for your site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another option is to add a validation picture, like a lot of banks do. I believe this option only helps thwart some phishing attacks so if you think phishing will be a problem, this might be an option.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe the other alternatives, including what most banks use, seem to be secure but aren't really. Security questions, for example, I believe compromise sites more than they help. &lt;a href=&quot;http://www.wadewoolwine.com/2009/01/29/security-questions-dont-work/&quot; rel=&quot;nofollow&quot;&gt;Others think this too&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One other thing will be to encourage users to use a &quot;Passphrase&quot; instead of a password as &lt;a href=&quot;http://www.codinghorror.com/blog/2005/08/passphrase-evangelism.html&quot; rel=&quot;nofollow&quot;&gt;Jeff Atwood recommends&lt;/a&gt;. Amazon has taken this approach as well with their newish PayPhrase.&lt;/p&gt;&#xA;" OwnerUserId="1236" LastActivityDate="2010-10-13T14:20:49.493" CommentCount="9" />
  <row Id="11703" PostTypeId="2" ParentId="11312" CreationDate="2010-10-13T14:22:55.737" Score="1" ViewCount="" Body="&lt;p&gt;A &lt;strong&gt;game room&lt;/strong&gt; where he/she would not be disturb while is cleaning hes/her mind.&lt;/p&gt;&#xA;" OwnerUserId="5280" LastActivityDate="2010-10-13T14:22:55.737" CommunityOwnedDate="2010-10-13T14:22:55.737" />
  <row Id="11704" PostTypeId="2" ParentId="11680" CreationDate="2010-10-13T14:27:03.060" Score="2" ViewCount="" Body="&lt;p&gt;I can be called as brute force technique: unplug the Internet. &lt;/p&gt;&#xA;" OwnerUserId="5280" LastActivityDate="2010-10-13T14:27:03.060" />
  <row Id="11705" PostTypeId="2" ParentId="11637" CreationDate="2010-10-13T14:28:05.910" Score="0" ViewCount="" Body="&lt;p&gt;Unless you understand all the edge cases in securely dealing with authentication and sessions, don't implement this yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.owasp.org/index.php/Top_10_2007-Broken_Authentication_and_Session_Management&quot; rel=&quot;nofollow&quot;&gt;Broken authentication and session management&lt;/a&gt; is one of the top 10 OWASP security issues, and there is a reason for that. &quot;Getting it right&quot; is so complex you have to be a web security expert.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If possible, use a third party auth system. For example, use google accounts. Let them worry about all this stuff.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-10-13T14:28:05.910" CommentCount="1" />
  <row Id="11706" PostTypeId="2" ParentId="11633" CreationDate="2010-10-13T14:30:21.087" Score="0" ViewCount="" Body="&lt;p&gt;Lack of coffee in coffee machine. &lt;/p&gt;&#xA;" OwnerUserId="5280" LastActivityDate="2010-10-13T14:30:21.087" CommunityOwnedDate="2010-10-13T14:30:21.087" />
  <row Id="11707" PostTypeId="2" ParentId="9055" CreationDate="2010-10-13T14:39:26.877" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Konrad_Zuse&quot; rel=&quot;nofollow&quot;&gt;Konrad Zuse&lt;/a&gt;&lt;/strong&gt; for building the first &lt;strong&gt;programmable&lt;/strong&gt; Turing-complete computer and designing Plankalkül, the first high-level non-von Neumann &lt;strong&gt;programming language&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5281" LastActivityDate="2010-10-13T14:39:26.877" CommunityOwnedDate="2010-10-13T14:39:26.877" CommentCount="1" />
  <row Id="11708" PostTypeId="2" ParentId="11565" CreationDate="2010-10-13T14:43:56.933" Score="1" ViewCount="" Body="&lt;p&gt;Microsoft Word formatting codes.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like it or not, writing documentation, specs, test plans, etc. is a part of programming.  In my office, MS Word is the default tool.  Nothing frustrates me more than trying to figure out how to keep large documents formatted correctly and consistently.  I am always wrestling with autonumbering, tables, indenting, page breaks, and all the other ways Word &quot;helps&quot; by inserting hidden metainfo. &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-13T14:43:56.933" CommentCount="2" />
  <row Id="11709" PostTypeId="2" ParentId="9055" CreationDate="2010-10-13T14:48:35.643" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Miguel_de_Icaza&quot; rel=&quot;nofollow&quot;&gt;Miguel de Icaza&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;GNOME, Ximian, and Mono&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Very funny guy - any podcast interview I have found was very entertaining.  Listening to him at the Stack Overflow devdays in Boston in 2009.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quite an amazing productive developer.  &lt;/p&gt;&#xA;" OwnerUserId="3439" LastActivityDate="2010-10-13T14:48:35.643" CommunityOwnedDate="2010-10-13T14:48:35.643" />
  <row Id="11710" PostTypeId="2" ParentId="11312" CreationDate="2010-10-13T14:49:33.987" Score="1" ViewCount="" Body="&lt;p&gt;Quiet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Low light.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A steady and never-ending supply of soda, or other caffeinated beverage of choice, never more than an arms-length away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A computer fast enough that you don't leave the zone while waiting for a compiler or debugger to finish. Obviously for larger projects this becomes difficult, but ideally I never ever wait on the computer.&lt;/p&gt;&#xA;" OwnerUserId="3750" LastActivityDate="2010-10-13T14:49:33.987" CommunityOwnedDate="2010-10-13T14:49:33.987" />
  <row Id="11711" PostTypeId="2" ParentId="9055" CreationDate="2010-10-13T14:53:24.587" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.voelter.de/&quot; rel=&quot;nofollow&quot;&gt;Markus Völter&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Host and founder of the &lt;a href=&quot;http://www.se-radio.net/&quot; rel=&quot;nofollow&quot;&gt;Software Engineering Radio podcast&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3439" LastActivityDate="2010-10-13T14:53:24.587" CommunityOwnedDate="2010-10-13T14:53:24.587" />
  <row Id="11712" PostTypeId="2" ParentId="11604" CreationDate="2010-10-13T14:54:48.783" Score="1" ViewCount="" Body="&lt;p&gt;For iOS: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you can get one, I'd highly recommend testing on the oldest, slowest device running the minimum version of iOS you intend to support. (e.g. 2nd generation iPod Touch if your deployment target is iOS 3.2)  You'll be able to see how your app runs on older hardware and make performance adjustments if necessary.&lt;/li&gt;&#xA;&lt;li&gt;If you're using different xibs for iPhone and iPad, have both an iPhone/iPod Touch and an iPad for testing.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For Android: I don't really know, there are too many different devices.  I guess I'd stick with getting something that's slower and making sure the app runs OK with the memory constraints imposed by the older/slower device.&lt;/p&gt;&#xA;" OwnerUserId="3226" LastActivityDate="2010-10-13T14:54:48.783" CommentCount="1" />
  <row Id="11713" PostTypeId="2" ParentId="11669" CreationDate="2010-10-13T15:00:06.380" Score="2" ViewCount="" Body="&lt;p&gt;If you know the grammar you need to parse, it's much faster to get working code by simply feeding that grammar to a parser generator and use suitable call-outs from that than to hand-code a parser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If, however, you have a poorly-described file format you need to parse, it may be about as much work to hand-roll a parser as it would be to figure out the grammar, describe it to the parser generator and then get a parser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hopefully, you're closer to the first paragraph than the second.&lt;/p&gt;&#xA;" OwnerUserId="5084" LastActivityDate="2010-10-13T15:00:06.380" />
  <row Id="11714" PostTypeId="2" ParentId="11604" CreationDate="2010-10-13T15:00:58.780" Score="2" ViewCount="" Body="&lt;p&gt;If you want to be 99% sure that your app works on a given platform, you need a physical device that runs that platform. Preferrably natively (i.e. no hacked OSes). (I leave 1% for the possibility that something will go wrong on someone's phone anyway. Because it will.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some apps have different versions for iPad and iPhone, so that leads me to believe that there are difference there (at the very least when it comes to screen real estate). I'd bite the bullet and buy all 3 devices. You might be able to cut some costs by getting older models, which is nice for testing since you'll want to make sure you can run on an older, slower device.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-13T15:00:58.780" CommentCount="1" />
  <row Id="11715" PostTypeId="2" ParentId="11595" CreationDate="2010-10-13T15:05:35.430" Score="1" ViewCount="" Body="&lt;p&gt;You could research and talk of the benefits of VS 2010 and maybe get you and your compatriots an upgrade. You could end up with a whole lot of thanks.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-13T15:05:35.430" />
  <row Id="11716" PostTypeId="2" ParentId="1095" CreationDate="2010-10-13T15:05:50.143" Score="0" ViewCount="" Body="&lt;p&gt;UML is painful if you also try Model Driven development. I mean that UML is a very useful graphical notation only and everything else is useless.&#xA;I don't spend on modeling but use UML every day in order to create the structure of my projects. What I do is to quickly draw a basic usecase diagram at requirement levels, then immediately switch to class diagrams. I add requirement traceability between usecase and class diagrams. My class diagram also create code because it is live synchronized. No tag in the code all model is saved in the UML model which is mapped to the Java project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I create the skeleton of my application with few class diagrams, then switch to code. Once I finished the code I merge it with the model. It is a kind of iteration between code and model where the code runs the model. So my class diagrams give me a higher level of abstraction and my code while my code gives me my business logic implementation (e.g. methods).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;UML modeling requires less than 10 minutes per day, which is done when I need time to think what I need to develop and how.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;UML is great, fantastic and really useful but model driven development is useless !!&lt;/p&gt;&#xA;" OwnerUserId="5283" LastEditorUserId="5283" LastEditorDisplayName="" LastEditDate="2010-10-13T15:14:32.803" LastActivityDate="2010-10-13T15:14:32.803" CommentCount="1" />
  <row Id="11717" PostTypeId="2" ParentId="11565" CreationDate="2010-10-13T15:07:34.693" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;SQL&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do 95% of my programming work in C# or C++ equivalents, and I can do DDL to create the appropriate tables just fine.  However, when the time comes to populate a table with some sample data for debugging purposes, I have to look up INSERT INTO &lt;em&gt;every time&lt;/em&gt;!&lt;/p&gt;&#xA;" OwnerUserId="4265" LastActivityDate="2010-10-13T15:07:34.693" CommentCount="2" />
  <row Id="11718" PostTypeId="2" ParentId="11689" CreationDate="2010-10-13T15:12:17.803" Score="3" ViewCount="" Body="&lt;p&gt;I think a huge part of learning is to fail and figure out why, so I usually spend some time debugging and trying things out. I'd say it takes one - two hours until I start googling or searching stackoverflow. Nine times of ten that is enough to get me forward or atleast get me new things to test.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I haven't found a solution or workaround in a day I post on stackoverflow or some other board. It's probably a bit too much time spent searching for answer, but I'm a bit stubborn that way :)&lt;/p&gt;&#xA;" OwnerUserId="4832" LastActivityDate="2010-10-13T15:12:17.803" />
  <row Id="11719" PostTypeId="2" ParentId="9761" CreationDate="2010-10-13T15:19:30.123" Score="0" ViewCount="" Body="&lt;p&gt;I use EclipseUML Omondo for navigating in the code at model level. Really cool !!&#xA;I first reverse my java project in order to map it to the UML model. Then I create views of my model by detecting associations, dependencies, inheritances etc... show and hide what I need. I can create as many diagram as I need based on a single model which is mapped to Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The trick Omondo uses is to map Java and UML ids and synchronize it directly to the UML metamodel. Marvelous technology and really amazing to visualize my code.&lt;/p&gt;&#xA;" OwnerUserId="5283" LastActivityDate="2010-10-13T15:19:30.123" />
  <row Id="11720" PostTypeId="2" ParentId="11637" CreationDate="2010-10-13T15:29:42.633" Score="0" ViewCount="" Body="&lt;p&gt;You can also use &lt;a href=&quot;http://openid.net/&quot; rel=&quot;nofollow&quot;&gt;OpenID&lt;/a&gt; and &lt;a href=&quot;http://oauth.net/&quot; rel=&quot;nofollow&quot;&gt;OAuth&lt;/a&gt; rather than having user create new account&lt;/p&gt;&#xA;" OwnerUserId="4703" LastActivityDate="2010-10-13T15:29:42.633" CommentCount="5" />
  <row Id="11721" PostTypeId="1" CreationDate="2010-10-13T15:31:16.040" Score="20" ViewCount="1285" Body="&lt;p&gt;We've all heard it; whenever there's a discussion about CS grads having poor development skills someone eventually says,&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Computer science isn't software engineering.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The problem that I see is that programming and software development &lt;em&gt;are&lt;/em&gt; taught in CS courses. They're just commonly taught poorly. If it's being taught, then why not teach it right the first time? *&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I would like to see what the opinions are on 2 questions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Is the CS != SE argument a copout or excuse for not properly teaching programming skills.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Regardless of your answer to question 1; if you were in the almighty position of making such a decision: would you force an emphasis on proper teaching of programming in CS courses?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;sub&gt;*. I have a suspicion, based on anecdotal evidence I obtained throughout my education, that most academics in the field haven't had to write code to be maintained and haven't maintained code, and as a result don't have the knowledge/skills to teach it effectively.&lt;/sub&gt;&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2011-01-19T21:54:25.537" CommunityOwnedDate="2011-01-19T20:24:19.353" Title="Is &quot;Computer Science != Software Engineering&quot; an excuse to teach programming poorly?" Tags="&lt;computer-science&gt;&lt;programming&gt;&lt;teaching&gt;" AnswerCount="17" CommentCount="17" FavoriteCount="7" />
  <row Id="11722" PostTypeId="2" ParentId="11595" CreationDate="2010-10-13T15:32:21.170" Score="2" ViewCount="" Body="&lt;p&gt;I would suggest bringing up topics that not only provide your co-workers with some new found knowledge but may also improve your code base. Is there anything that is going on that you're not too keen on? Talk about a better way to do these things. Some other things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;LINQ&lt;/strong&gt;: As was suggested, this the &quot;latest toy&quot;. Beyond that, it can really clean up some messy code.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Unit Testing&lt;/strong&gt;: However you are (or want to) test, write some unit tests covering some code. Review the tests, can anyone thing of anything you've missed? If you aren't currently writing unit tests, discuss the pros and be the flagship.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Standards&lt;/strong&gt;: No one likes to talk about them, but they really can improve the speed at which you skim other people's code.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5286" LastActivityDate="2010-10-13T15:32:21.170" />
  <row Id="11724" PostTypeId="2" ParentId="11721" CreationDate="2010-10-13T15:41:39.853" Score="20" ViewCount="" Body="&lt;p&gt;Part of the problem here is the fact that 4 years is not enough time to become a polished software engineer. Given that we want the undergrad to have exposure to more things than just math and CS courses and the fact that there is plenty of pure mechanics to learn (algorithms, data structures, language syntax), we can not expect a green CS major to be a software engineer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would agree that CS != SE and I'm not sure you can just go to school and become a SE (even with a Masters)&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-13T15:41:39.853" CommunityOwnedDate="2011-01-19T20:24:19.353" CommentCount="7" />
  <row Id="11725" PostTypeId="2" ParentId="11721" CreationDate="2010-10-13T15:43:37.290" Score="8" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;At least in the United States, education as a whole has become about profit. Schools are dumbing down curriculum across the board to increase enrollment. There are more people in college that don't belong there than ever. Learning proper techniques is not something you can teach easily so they don't.&lt;/li&gt;&#xA;&lt;li&gt;Personally I would put more emphasis on SE than there typically is but I believe CS as a program is less appropriate for people looking to get into industry. I think more institutions should offer a practical SE program.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="712" LastEditorUserId="712" LastEditorDisplayName="" LastEditDate="2011-01-19T21:16:22.063" LastActivityDate="2011-01-19T21:16:22.063" CommunityOwnedDate="2011-01-19T20:24:19.353" CommentCount="2" />
  <row Id="11726" PostTypeId="1" CreationDate="2010-10-13T15:47:47.513" Score="11" ViewCount="278" Body="&lt;p&gt;A common task in the working world is dealing with existing, but buggy code. What are some tips to improve your skills as a debugger?&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-11-28T00:33:04.150" Title="How to improve your ability to debug existing code" Tags="&lt;debugging&gt;" AnswerCount="13" CommentCount="2" FavoriteCount="3" />
  <row Id="11727" PostTypeId="2" ParentId="11721" CreationDate="2010-10-13T15:47:59.197" Score="3" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Yes it is a copout 100%, they should be teaching long term skills which will be useful throughout our career. Whether or not your intention is to go into academia or the industry you will need to be able to program in a way that can be maintained, even if it's only by yourself.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Yes, although it would only be stressed in the proper courses. Personally, if I have to talk to you to better understand how you tried to implement an algorithm I would mark down your grade.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Even if you go pure CS research you will probably have to create code to demonstrate your ideas. Proper programming skills will be useful to you at some point so why not begin in college.&lt;/p&gt;&#xA;" OwnerUserId="5292" LastActivityDate="2010-10-13T15:47:59.197" CommunityOwnedDate="2011-01-19T20:24:19.353" CommentCount="3" />
  <row Id="11728" PostTypeId="2" ParentId="11721" CreationDate="2010-10-13T15:48:22.963" Score="1" ViewCount="" Body="&lt;p&gt;I think the answer is yes (in a way).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing is it is not possible to teach to kids in a short period of time programming. They  should be tought the programers logic thinking, how to solve (in a smaller scale) the programmer´s problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I´m certain the school´s programms should be revised, I my very small &quot;third world&quot; country, fortunately, an effort is being made for this to happen. We are the first country to implement OLPC program; &lt;a href=&quot;http://laptop.org/en/&quot; rel=&quot;nofollow&quot;&gt;http://laptop.org/en/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5014" LastActivityDate="2010-10-13T15:48:22.963" CommunityOwnedDate="2011-01-19T20:24:19.353" />
  <row Id="11729" PostTypeId="2" ParentId="11721" CreationDate="2010-10-13T15:54:46.467" Score="5" ViewCount="" Body="&lt;p&gt;I agree that 4 years is only enough time to give them a good foundation on which to grow. However, I think one thing that really helps is when people from the industry get involved in developing the curriculum and even teaching in the classroom. Last year I was an Industry Fellow in a Software Development class at a local university. It was a very eye-opening experience for me. The professor and I worked together on the course content and we put a lot more information about the development process, industry best practices, and &quot;real-world&quot; situations then they had been doing before. What we discovered was that, because most of the instructors do not develop widely used and maintained code, bringing in someone from industry helped to identify and teach the skills needed to do that. The professor did all the grading and provided the teaching expertise that I lacked. &lt;/p&gt;&#xA;" OwnerUserId="3697" LastActivityDate="2010-10-13T15:54:46.467" CommunityOwnedDate="2011-01-19T20:24:19.353" CommentCount="2" />
  <row Id="11730" PostTypeId="2" ParentId="11726" CreationDate="2010-10-13T15:54:54.813" Score="16" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Don't Assume Anything&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's often tempting to just say &quot;oh, I know what this bit of code is doing, it's fine&quot;. Don't do that. Test every assumption and step through everything carefully.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-13T15:54:54.813" CommentCount="4" />
  <row Id="11731" PostTypeId="2" ParentId="11726" CreationDate="2010-10-13T16:00:05.450" Score="0" ViewCount="" Body="&lt;p&gt;Understand functionally what the code is trying to do. If you don't know the complete picture (all test cases this code must pass) it's hard to debug properly without introducing new bugs&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-13T16:00:05.450" />
  <row Id="11732" PostTypeId="2" ParentId="4296" CreationDate="2010-10-13T16:00:07.637" Score="2" ViewCount="" Body="&lt;p&gt;This question dove-tails in another question. That is for what kinds or projects does migrating to Scala provide added value? I do Java day my day job, but dream about the day I can use Scala &quot;in anger&quot;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A couple answers to my own question:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Problems for which Actor based concurrency would provide great benefit (Akka)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Web applications than have data pushed to them via COMET (Lift)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Any other insights or better yet experiences?&lt;/p&gt;&#xA;" OwnerUserId="3463" LastActivityDate="2010-10-13T16:00:07.637" />
  <row Id="11733" PostTypeId="2" ParentId="11721" CreationDate="2010-10-13T16:03:01.180" Score="9" ViewCount="" Body="&lt;p&gt;CS is in fact not SE. And people seem to conflate the two all the time, even while admitting it. Computer science should really be renamed something like Computology, or the science of computing. In fact, computer science has very little to do with computers. It's graph theory, algorithm analysis, data structures, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People want to assume a fresh CS grad is actually an ITT grad; they want someone who has been trained in a vocation. Computer science is science, programming is an art. These are not the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is like asking why a fresh Physics grad isn't a good car engineer. It's silly.&lt;/p&gt;&#xA;" OwnerUserId="4109" LastActivityDate="2010-10-13T16:03:01.180" CommunityOwnedDate="2011-01-19T20:24:19.353" CommentCount="6" />
  <row Id="11734" PostTypeId="2" ParentId="8886" CreationDate="2010-10-13T16:03:17.623" Score="1" ViewCount="" Body="&lt;p&gt;Not without an education, no. But without a formal education, yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is programming knowledge that is categorized horizontally (problem-solving, logic, software architecture, OOP, security, etc.) and vertically (iPhone, *NIX, CICS, bash, PERL, XML, etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also industry-specific knowledge you need to familiarize yourself with. Health care. Automotive. Systems Programming. Scientific computing. ERP. Manufacturing. etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the key here is to realize your primary education is to acquire the skill to sell yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the first facts a salesman learns is you don't win over the person with the checkbook, you win over the person who controls the person with the checkbook. HR manages the legal and administrative details of its relationship with employees. You don't want to go through HR unless you want to write programs for HR.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You've got to hit the department with the need for the type of programs you want to write. Instill in them the emotional bond that their future success requires them to get you on-board (which, once you've taken the time to learn what they do, how they do it, and their culture, won't be hard).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take the time to develop a lot of practical software that applies to the department and industry you want the job in, for the programming environment typical in that industry. Plus a few more in related departments/industries/environments. And one or two in unrelated ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Odds are managers already know what graduates are like. You've got to be the iPhone of programmer candidates. The new, shiny that already fits into their culture and industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For end-user application development, become acquainted with their products and learn their features and their bugs. Learn it better than their salesmen. (It's a big bonus if you're familiar with their competitor's products too.) Hang out with their customers, and see what their needs are and how they use the software. Then go to conferences, user groups, networking events where salespeople interact with potential customers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Salespeople have been known to varnish the truth. Don't call them out on it (publicly) and don't torpedo the sale. Listen to what objections prospects have about the product and how sales handles them. If you make a suggestion for a feature that the customer really wants you can ingratiate yourself to the sales department, and they can exercise their pull to get you hired. Because $$$ (or your local currency) makes the decisions. So don't torpedo the sale.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe you find a hole in their product that you can fill by writing and selling your own product. Then they buy your company. That's another way to end up hired by a company without having a formal education.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-13T16:03:17.623" CommunityOwnedDate="2011-03-30T04:35:50.040" />
  <row Id="11735" PostTypeId="2" ParentId="11721" CreationDate="2010-10-13T16:05:45.160" Score="23" ViewCount="" Body="&lt;p&gt;I don't think it's a copout, but rather an assertion that computer science &lt;em&gt;isn't&lt;/em&gt; software engineering, it isn't programming -- it's, well, the science of formalized computation. In essence, it's &lt;em&gt;math&lt;/em&gt; (in fact, many CS programs started off as applied mathematics programs).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the problem lies more with industry than academia. Industry sees a CS degree listed on a résumé and thinks, &quot;Great, this guy's good with computers,&quot; and hires him to do &lt;em&gt;anything&lt;/em&gt; related to a computer: IT, programming, software development, whatever. Those things don't necessarily lie in the realm of expertise of a CS graduate. In turn, a lot of people who like building computers or playing videogames enter a CS program expecting to do that kind of stuff, and get a rude surprise; i.e., a lot of students going into CS don't really belong there, and would be better off in a more targeted degree program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, there's a &lt;em&gt;very&lt;/em&gt; limited time to teach CS -- a very broad subject -- in a typical undergraduate curriculum. My undergrad curriculum had 8 CS courses (for a BA) or 12 CS courses (for a BS), plus all the required math courses. That's not a lot of time to teach CS &lt;em&gt;and&lt;/em&gt; math &lt;em&gt;and&lt;/em&gt; programming &lt;em&gt;and&lt;/em&gt; software engineering, so at some point you have to decide what's important, and what a student can pick up on their own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That last point is crucial: I think a good student -- in any subject area -- will explore ideas on their own. I have a CS degree, but I think I came out of college as a decent developer, because I studied and wrote software &lt;em&gt;on my own&lt;/em&gt;. College isn't all about classes; it's also about giving students time to develop their skills semi-autonomously, while still giving valuable guidance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I maintain that teaching theory -- CS, math, etc. -- is just as important, if not &lt;em&gt;more&lt;/em&gt; important, than teaching specific job-related skills. If you teach a student the &lt;em&gt;why&lt;/em&gt; behind methods and techniques, and not just the &lt;em&gt;what&lt;/em&gt;, you'll end up with someone who is much more adaptable when applying his knowledge. For example, I went to a much-maligned &quot;Java school&quot; and thus was taught in Java, but I also had courses in programming language theory, which explained the &lt;em&gt;why&lt;/em&gt; behind many languages; as a result, I've learned to write much better software than if I didn't have that background. Sure, I don't write software in Haskell in my day job, but knowing a lot of programming language theory has allowed me to gain insight that &lt;em&gt;has&lt;/em&gt; been applicable to my job as a programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also think industry is expecting too much from college students. Industry wants to cut its own costs, so instead of training new recruits for their jobs, they expect colleges to become trade/technical schools; in effect, they want colleges to do their training for them. College graduates can't be expected to know &lt;em&gt;everything&lt;/em&gt; fresh out of college. Being a good developer is as much about experience as it is about knowledge (especially in a relatively young field like software development).&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-13T16:05:45.160" CommunityOwnedDate="2011-01-19T20:24:19.353" CommentCount="10" />
  <row Id="11736" PostTypeId="2" ParentId="11726" CreationDate="2010-10-13T16:09:49.263" Score="2" ViewCount="" Body="&lt;p&gt;Divide and conquer is a good approach. Try to identify some visible input (user input/network event ...) and output (log, output to user, outbound network message ...) between which the issue exists. Try putting prints at sizable chunks or significant points between them and try to narrow down where the bug is in the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Divide and conquer can also work very well in case of regressions over version controlled code. Find two builds - one where it works as expected, other with the regression. Narrow the gap down till you are left with a bunch of checkins as potential suspects.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-13T16:09:49.263" />
  <row Id="11737" PostTypeId="2" ParentId="11726" CreationDate="2010-10-13T16:10:53.820" Score="2" ViewCount="" Body="&lt;p&gt;Keep debugging. If you debug a lot, you'll improve.&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-10-13T16:10:53.820" CommentCount="1" />
  <row Id="11738" PostTypeId="2" ParentId="11680" CreationDate="2010-10-13T16:15:40.360" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.rescuetime.com/&quot; rel=&quot;nofollow&quot;&gt;RescueTime&lt;/a&gt; allows you to tell it which sites are or are not productive and then you can tell it to stop you accessing anything but useful sites for a given amount of time. It can also report on how you have spent your time during the day, to give a depressing assessment of how productive you aren't being. Or to give an encouraging picture of how absolutely productive you are, depending.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-13T16:15:40.360" CommentCount="2" />
  <row Id="11739" PostTypeId="2" ParentId="11726" CreationDate="2010-10-13T16:20:07.940" Score="3" ViewCount="" Body="&lt;p&gt;Rather than the binary bug chop, write tests in the form&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Given...&lt;/li&gt;&#xA;&lt;li&gt;When...&lt;/li&gt;&#xA;&lt;li&gt;Expect...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;To verify what you actually know to be true about the functioning of the app versus what you assume to be true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most IDEs make it easy to extract methods and to generate xUnit testing stubs. Make use of that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why not sprinkle debugs? Because after you are done, you will likely have to undo much of that work and delete a fair amount of those debugs. When you write tests, your debugging will aid in the prevention and detection of future bugs. &lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-13T16:20:07.940" />
  <row Id="11740" PostTypeId="2" ParentId="8886" CreationDate="2010-10-13T16:23:35.897" Score="0" ViewCount="" Body="&lt;p&gt;I think most places will give you a shot at an interview at least, and whether you get the job or not will be based on your interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We were recently trying to hire someone, and we didn't care what the application said. What we were interested in was Work Experience/Past Projects, Sample Code, and how the interview went. Its easy to get code online or to follow tutorials to create sample projects, but talking to someone generally identifies if they actually know their stuff or not. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also as a side note, if you have no Programming-Related work experience, leave it off your resume. That's the one bit that would actually put someone in a negative light before the interview with me... if their previous experience was all something like working at McDonalds. If you don't have any programming-related work experience, list projects you have worked on in the past instead (personal, open source, etc).&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-10-13T16:23:35.897" CommunityOwnedDate="2011-03-30T04:35:50.040" CommentCount="2" />
  <row Id="11741" PostTypeId="2" ParentId="8886" CreationDate="2010-10-13T16:28:47.580" Score="0" ViewCount="" Body="&lt;p&gt;At my old job the two best developers were a guy with a BS in Math, MS in CompSci; both from top tier schools and a guy with a GED who spent six years in the USMC and dropped out of community college after six weeks to take a full time programming job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Marine was self-taught and absolutely tenacious. First one in, last one to leave. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They were equally productive but the grad student work about 2/3 of the hours of the Marine.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-13T16:28:47.580" CommunityOwnedDate="2011-03-30T04:35:50.040" />
  <row Id="11742" PostTypeId="2" ParentId="9006" CreationDate="2010-10-13T16:28:59.827" Score="1" ViewCount="" Body="&lt;p&gt;I'm not opposed to FP as a useful paradigm, but I'm opposed to it as the only paradigm available in a programming language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It offers advantages in solving a lot of problems. However FP can, and has been, applied in procedural languages like C.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-13T16:28:59.827" CommentCount="4" />
  <row Id="11743" PostTypeId="2" ParentId="11721" CreationDate="2010-10-13T16:33:30.933" Score="0" ViewCount="" Body="&lt;p&gt;Those that can, do; those that cannot, teach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At my university, the knowledge base of the teachers is woefully deficient. I have seen teachers struggle to understand how to represent semi-structured tables in XML while holding a PHD in Database Design. I've seen my Assembly teacher ask me what my code is doing when it's his code snippet I copied and pasted. I've seen my software design teacher tell us the Agile method is the same as the waterfall method, only faster, that iterative development process model has and can only have 3 iterations because that's what the picture the book uses as example depicts. One of my teachers did not even know what an elseif statement was.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't believe they are 'coping out', or making excuses, I truly believe they are doing the best they can with their experiences, which they have precious few.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I agree with the other people posting here that 4 years is not enough to become a seasoned programmer, but the experience my teachers have had is not enough to make them seasoned either. It's much like in Ender's Shadow, where Bean notices the metrics used by the teachers in battle school fall short because the last war which is the guide rule, was too short to truly show what is actually needed. In otherwords, the teachers were doing the best they could, but failed to have the experience to know what is really needed to make a good commander (or good programmer in this case).&lt;/p&gt;&#xA;" OwnerUserId="3542" LastEditorUserId="3542" LastEditorDisplayName="" LastEditDate="2010-10-13T16:50:19.537" LastActivityDate="2010-10-13T16:50:19.537" CommunityOwnedDate="2011-01-19T20:24:19.353" CommentCount="5" />
  <row Id="11744" PostTypeId="2" ParentId="9013" CreationDate="2010-10-13T16:36:57.017" Score="2" ViewCount="" Body="&lt;p&gt;It is one of the risks of delaying architectural decisions on Agile teams. Obviously the most responsible thing for being agile is to delay architectural decisions until &lt;em&gt;the last responsible moment&lt;/em&gt;. But chances are the &lt;em&gt;last responsible moment&lt;/em&gt; can (or must) happen early on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing that helps is to clearly delineate early on your key driving requirements; things that you clearly know you must have (but don't have to necessarily implement right now.) Your evolving architecture (which attempts to be minimalistic and flexible) should accommodate existing or future support for such requirements. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;More importantly, however, your evolving architecture  MUST NOT implement artifacts that get (or can get) in the way of supporting such key driving requirements, even if those artifacts are meant for resolving current requirements. We can refer to such artifacts as &lt;em&gt;interfering artifacts&lt;/em&gt;, artifacts that deliver a real value (as they implement a solution to existing requirements) but whose presence makes it difficult/costly to implement a future key driving requirement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In cases when you must implement an interfering artifact, your task would be to plan for its removal at some point (so that you can implement the key driving requirement that is being interfered.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously this is all esoteric without an actual, tangible context (like a real project). But more or less your development process model and your evolving architecture must take these considerations into account.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Implicit requirements are the dead of architectures.Everything must be made explicit, both the key driving requirements and those that are ancillary. You don't need to implement a requirement early on. You only need to be able to account for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS. By requirement, I mean system-level architectural requirements and not necessarily the ephemeral application-level requirements that can be accommodated without substantial changes to the architecture. Hope it helps.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-13T16:36:57.017" />
  <row Id="11745" PostTypeId="2" ParentId="10424" CreationDate="2010-10-13T16:41:08.277" Score="0" ViewCount="" Body="&lt;p&gt;Time and scope are technical factors as they are orthogonal to time/space resources and output reach (scope) used by a particular process (in this case, writing a piece of software.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A non-technical reason would be driving out requirements, requirement elicitation, customer negotiation and so on. It would be hard to measure the effect of such non-technical reasons (or impediments) to the development of something that is clearly meant for usage by technical staff.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-13T16:41:08.277" />
  <row Id="11746" PostTypeId="2" ParentId="11726" CreationDate="2010-10-13T16:42:02.433" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Testing incrementally&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go depth first in your code and test it from smallest module moving up gradually.In this way, you are not under too much stress trying to figure out where the problem exactly might be. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also means that it affects less code at a time since you are moving incrementally..as at times I have had issues where I fixed something and that lead to breaking lots of other stuff. I give credit to my boss for this as he taught me this when I messed around. &lt;/p&gt;&#xA;" OwnerUserId="2457" LastEditorUserId="2457" LastEditorDisplayName="" LastEditDate="2010-10-13T17:07:45.680" LastActivityDate="2010-10-13T17:07:45.680" />
  <row Id="11748" PostTypeId="2" ParentId="11721" CreationDate="2010-10-13T16:49:34.530" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is the CS != SE argument a copout or excuse for not properly teaching programming skills.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No. CS is not SE. That's a fact, not an excuse.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Regardless of your answer to question 1; if you were in the almighty position of making such a decision: would you force an emphasis on proper teaching of programming in CS courses?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No. It would be like forcing astronomers to learn the details of building telescopes. Or forcing programmers to learn the details of building computers. Related stuff, but one man doesn't need to know everything.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-14T06:38:41.470" LastActivityDate="2010-10-14T06:38:41.470" CommunityOwnedDate="2011-01-19T20:24:19.353" />
  <row Id="11749" PostTypeId="2" ParentId="11726" CreationDate="2010-10-13T17:03:23.303" Score="1" ViewCount="" Body="&lt;p&gt;Before stepping over a small chunk of code, see if you can accurately determine the outcome. This does tend to fly in the face of don't assume anything (which I up voted BTW) but as you gain experience, it can help narrow down where to look.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This may sound trivial, but learn the nuances of your debugger and learn the hot-keys. Sometimes debuggers can be slow enough that your mind wonders when your stepping through. If you can keep up with the machine and aren't mousing around, that can help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can modify code while debugging:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;consider asserting pre AND post conditions. Sometimes you can then step over, instead of into code.&lt;/li&gt;&#xA;&lt;li&gt;for if statements with complicated expressions, consider something (some may frown at this but it works for me)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;bool isLessThan5 = a &amp;lt; 5;&#xA;bool isGreaterThan10 = a &amp;gt; 10;&#xA;if ( isLessThan5 || isGreaterThan10 )&#xA;{&#xA;   // more code here&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;instead of:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if ( a &amp;lt; 5 || a &amp;gt; 10 )&#xA;{&#xA;   // more code here&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;For the cases you can't debug everything, for whatever reason, learn to &quot;rubber-duck&quot; with a co-worker. Sometimes the act of explaining sheds light. (ok, maybe this isn't exactly in the questions theme, but I think it's close enough to warrant mention)&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-10-13T17:03:23.303" CommentCount="1" />
  <row Id="11750" PostTypeId="2" ParentId="6543" CreationDate="2010-10-13T17:06:12.860" Score="1" ViewCount="" Body="&lt;p&gt;One thing that hurts using ORMs is that many of their fans tend to claim we no longer need to know SQL and RDB theory. The results vary from funny to utterly catastrophic. And this is despite the million times that ORM' manufactures and pundits state that we &lt;em&gt;must know&lt;/em&gt; SQL and RDB theory well to properly use and configure a ORM. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why people take a tool that has its uses on many, but not all contexts into a magical, universally applicable silver bullet is beyond me.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-13T17:06:12.860" />
  <row Id="11751" PostTypeId="1" AcceptedAnswerId="11761" CreationDate="2010-10-13T17:09:16.820" Score="4" ViewCount="279" Body="&lt;p&gt;I use mostly free software on my main machine, and most programs that I write come out under either the GPL or BSD. I dislike proprietary software and prefer not to use it if a free software alternative is viable (read as: good enough).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your opinions on free software? Do you use or develop for it? Why do you use it? Why don't you? Are you as extremist as RMS, and use only free software?&lt;/p&gt;&#xA;" OwnerUserId="2448" LastEditorUserId="2448" LastEditorDisplayName="" LastEditDate="2011-02-11T22:00:19.190" LastActivityDate="2011-02-11T22:00:19.190" CommunityOwnedDate="2010-10-13T17:13:50.880" ClosedDate="2010-10-13T18:57:04.500" Title="What is your opinion on free software?" Tags="&lt;software-development&gt;&lt;free-software&gt;&lt;operating-systems&gt;&lt;free&gt;" AnswerCount="5" CommentCount="6" FavoriteCount="1" />
  <row Id="11753" PostTypeId="2" ParentId="11296" CreationDate="2010-10-13T17:16:15.113" Score="0" ViewCount="" Body="&lt;p&gt;They have no leg to stand on (the IT guys). Unfortunately, they might be in a position to screw you up. So you have to make the choice of whether to &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Post it and deal with the possible&#xA;consequences,&lt;/li&gt;&#xA;&lt;li&gt;List item&lt;/li&gt;&#xA;&lt;li&gt;List item&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Post it anonymously and wait till the time is right to take credit for it, or&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't post it until much later (when you out of school), as a type of memoir or anecdotal chapter in a security blog or book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just because you did something that you should take credit just now, that doesn't mean you must take the credit right this moment. To build your career, it takes time. This can certainly count in a chapter, paper or blog on, say, &lt;em&gt;Social Factors in Computer Security&lt;/em&gt; or something like that. Security is not just mechanical/computational. It is also social, and those who excel at security understand that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't let ego get over pragmatism. Battles are not won by ego (at least not efficiently). Learn how to fight your battles if you want to build your &lt;strong&gt;&lt;em&gt;professional&lt;/em&gt;&lt;/strong&gt; reputation. It is essential that you do so.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-13T17:16:15.113" />
  <row Id="11754" PostTypeId="2" ParentId="9095" CreationDate="2010-10-13T17:26:06.500" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;F# is settled on functional aspects&#xA;while scala is based on&#xA;object-oriented aspects.&lt;/li&gt;&#xA;&lt;li&gt;F# has better IDE support with Visual studio &lt;em&gt;while&lt;/em&gt; Scala's eclipse plug-in is for open source IDE and comparatively slower. &lt;/li&gt;&#xA;&lt;li&gt;F#, being more ML-like than Scala, has more of a minimal lambda calculus-y feel to it the way OCaml, Standard ML, and Scheme have. F# appears to be a considerably simpler language.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Thanks &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Ayush Goyal&lt;/p&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-10-13T17:26:06.500" CommentCount="1" />
  <row Id="11755" PostTypeId="2" ParentId="8142" CreationDate="2010-10-13T17:30:09.120" Score="2" ViewCount="" Body="&lt;p&gt;I have done this very thing, and there are a few core things to remember:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Management tasks first. Always be prepared to sacrifice your coding time to manage. If you don't have the time or peace to code, then don't. (Bottleneck prevention)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Respect your team. Don't work out all the details of a project and batch out work, instead bring the project to the team and work out the tasks and timescales together. (Motivation and team &quot;buy-in&quot;)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Trust your team. Don't be afraid to delegate, and listen to them. (Value as a team member)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="3526" LastActivityDate="2010-10-13T17:30:09.120" />
  <row Id="11756" PostTypeId="2" ParentId="11638" CreationDate="2010-10-13T17:30:15.707" Score="0" ViewCount="" Body="&lt;p&gt;About every hour to hour and a half for 10 minutes or so. I don't take a lunch. I'd rather break up my breaks. It helps me stay productive and focused. Plus my back kills me if I don't get up for too long.&lt;/p&gt;&#xA;" OwnerUserId="3564" LastActivityDate="2010-10-13T17:30:15.707" />
  <row Id="11757" PostTypeId="1" CreationDate="2010-10-13T17:31:40.400" Score="4" ViewCount="408" Body="&lt;p&gt;I'm used to &lt;a href=&quot;http://codeplex.com&quot; rel=&quot;nofollow&quot;&gt;CodePlex&lt;/a&gt;, and I've heard a lot about GitHub, but haven't looked around much there yet.  What are the best social coding sites that tracks commits, interesting projects, etc? (From a large community and popularity standpoint)&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-10-13T17:45:23.830" LastActivityDate="2011-02-14T11:27:40.450" Title="What are good social coding sites?" Tags="&lt;fun&gt;&lt;coding&gt;&lt;social&gt;&lt;social-networks&gt;&lt;version-control&gt;" AnswerCount="4" CommentCount="3" />
  <row Id="11758" PostTypeId="2" ParentId="11296" CreationDate="2010-10-13T17:32:48.963" Score="1" ViewCount="" Body="&lt;p&gt;Why don't you post your article, leave it as is, and add a section identifying that security holes will happen and it's the quick thinking and quick reactions of organizations like this school that are required in the software industry to keep security standards up to date and information safe.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;+1 career&lt;/li&gt;&#xA;&lt;li&gt;+1 school rep&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-13T17:32:48.963" />
  <row Id="11760" PostTypeId="2" ParentId="11751" CreationDate="2010-10-13T17:40:29.863" Score="24" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I dislike proprietary software and try not to use it when possible.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Counterpoint: I dislike poor software and try not to use it when possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like whatever software does the best job of what I need it to do. Sometimes that software is free, sometimes it isn't. But I'm also realistic and recognize that free software isn't always the &lt;em&gt;best&lt;/em&gt; software. I'm willing to shell out money for Visual Studio and Photoshop because, for my needs, the free alternatives don't come close.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Free software is both a resource and an ideology. I'm all for free software, and any of my own projects that I write and release are under a BSD style license. I also recognize that people need to make money. I think it was Stallman that said that selling software was a &quot;crime against humanity.&quot; I can't begin to express how completely out of touch with reality such a statement is.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastActivityDate="2010-10-13T17:40:29.863" CommunityOwnedDate="2010-10-13T17:40:29.863" CommentCount="2" />
  <row Id="11761" PostTypeId="2" ParentId="11751" CreationDate="2010-10-13T17:43:09.923" Score="4" ViewCount="" Body="&lt;p&gt;According to the Free Software Foundation's and Richard Stallman's &lt;a href=&quot;http://www.gnu.org/philosophy/open-source-misses-the-point.html&quot; rel=&quot;nofollow&quot;&gt;definitions&lt;/a&gt;, I'm an &lt;em&gt;Open Source software&lt;/em&gt; advocate, not &lt;em&gt;Free Software&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer and recommend Open Source software because it's &lt;strong&gt;practical&lt;/strong&gt;, not because of any beliefs, principals, politics, etc. With Open Source, I can modify the software any way I want, and not worry if the vendor gets out of business. Also, in &lt;em&gt;most&lt;/em&gt; cases, Open Source is &lt;strong&gt;technologically better&lt;/strong&gt;, it's usually more tested, has less bugs, more efficient, and runs on older hardware.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because of that, I prefer more permissive licenses such as BSD, MIT, and ISC over GPL and LGPL. GPL and LGPL are very restrictive, and have some arbitrary rules on when you can mix them with non-GPL software; this makes them a needless headache. On the other hand, I don't mind using GPL software; I use it all the time, but I don't release my own code under GPL unless I have to do that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for RMS, I highly admire him, even though I disagree with most of his opinions. He did a lot to Free Software and Open Source in the early years of GNU. Unfortunately, these days he seems to be just a grumpy old man who bashes anyone who doesn't agree with him. Some of his opinions, such as GNU/Linux naming, OpenBSD, and cloud computing are just plain ridiculous and sometimes quite paranoid. I still admire him though. Plus, without extremists, you can't recognize the moderates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And proprietary software, I use it when it's practical. Google (search, gmail, docs, reader, etc) is proprietary, StackOverflow is proprietary, Flash is proprietary, and so is a lot of software that I use. There are no good alternatives for these, and I wouldn't get any benefit from having the source of StackOverflow for example.&lt;/p&gt;&#xA;" OwnerUserId="1303" LastActivityDate="2010-10-13T17:43:09.923" CommunityOwnedDate="2010-10-13T17:43:09.923" CommentCount="6" />
  <row Id="11762" PostTypeId="2" ParentId="11751" CreationDate="2010-10-13T17:44:20.127" Score="1" ViewCount="" Body="&lt;p&gt;I &lt;em&gt;prefer&lt;/em&gt; free software. But I will use proprietary software where it is clearly superior (MS Office vs OpenOffice while on Windows, can't think of an example on my Linux install atm, but I'm sure there is one).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for what types of free software, I prefer BSD, MIT and similar licenses. I personally believe them to be more free than the GPL. BSD and co give the user the freedom to do what they want with the code (even sell it in a commercial program), while the GPL puts limits on it. (Such as the resulting program needing to be GPL)&lt;/p&gt;&#xA;" OwnerUserId="230" LastActivityDate="2010-10-13T17:44:20.127" CommunityOwnedDate="2010-10-13T17:44:20.127" />
  <row Id="11763" PostTypeId="2" ParentId="11751" CreationDate="2010-10-13T17:44:36.890" Score="1" ViewCount="" Body="&lt;p&gt;I use the best tool for the job.&lt;/p&gt;&#xA;" OwnerUserId="749" LastEditorUserId="749" LastEditorDisplayName="" LastEditDate="2010-10-13T18:01:23.943" LastActivityDate="2010-10-13T18:01:23.943" CommunityOwnedDate="2010-10-13T17:44:36.890" CommentCount="1" />
  <row Id="11764" PostTypeId="2" ParentId="11204" CreationDate="2010-10-13T17:56:24.060" Score="2" ViewCount="" Body="&lt;p&gt;Programming languages - grammar, compiler/interpreter, runtime, and [class] libraries. It is the space where the solution to the problem is constructed.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-13T17:56:24.060" />
  <row Id="11765" PostTypeId="2" ParentId="11757" CreationDate="2010-10-13T18:07:06.973" Score="13" ViewCount="" Body="&lt;h2&gt;GitHub&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Best example of &quot;social coding&quot; I know of. Everyone &lt;em&gt;forks&lt;/em&gt; &lt;strong&gt;everyone&lt;/strong&gt; and everyone is okay with it! How much better could it be?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Add in: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://gist.github.com/&quot; rel=&quot;nofollow&quot;&gt;Gists&lt;/a&gt; for snippets&lt;/li&gt;&#xA;&lt;li&gt;Markdown formatted &lt;em&gt;everything&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Bug / Issue tracking &lt;em&gt;for free&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Git (need I say more?) &lt;/li&gt;&#xA;&lt;li&gt;Beautiful UI&lt;/li&gt;&#xA;&lt;li&gt;Simple to use for the beginner, advanced git features for the veteran. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-13T18:07:06.973" CommentCount="8" />
  <row Id="11766" PostTypeId="2" ParentId="11346" CreationDate="2010-10-13T18:10:15.453" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Events&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What better way to promote the cafe than have events every now and again.  LAN competitions come to mind.&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-10-13T18:10:15.453" CommentCount="1" />
  <row Id="11767" PostTypeId="2" ParentId="11751" CreationDate="2010-10-13T18:11:40.323" Score="1" ViewCount="" Body="&lt;p&gt;I pity the fool that is as fanatical as RMS - he's just as lame as patent trolls, but simply sitting at the other end of the licensing spectrum. We are doing engineering, not theology. I used to believe otherwise, but I was young and idiot and didn't know the difference between emotion and fact.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll use whatever tool happens to be the right one for the job given the availability of monetary resources. One thing for certain, that I will respect any type of licensing, commercial and otherwise. I can't believe in software freedom without doing anything less than that. Furthermore, my business is to build solutions with the right tools. That's what I'm getting paid for. Anything less is just being unprofessional.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, I prefer the BSD license. If I were to build a software, I'd license it under with BSD. Feel free to compile, bind or link to my code as you please and ship the resulting product &lt;em&gt;of your creation&lt;/em&gt; in any license you feel like. That is the true essence of respecting software freedom, by allowing others the chance to license as they please as opposed to shoving pseudo-religious beliefs down their throats.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-13T18:11:40.323" CommunityOwnedDate="2010-10-13T18:11:40.323" />
  <row Id="11769" PostTypeId="1" AcceptedAnswerId="11784" CreationDate="2010-10-13T18:19:52.007" Score="3" ViewCount="209" Body="&lt;p&gt;All,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given a problem statement, when I start of with the analysis and design, I tend to think too much about the various functionalities associated with the task (sometimes not even mentioned in the task). My point is, I get diverted from the main task at hand thinking about various scenarios that I should consider while coding and this tends to demotivate me because I am often very confused in the end. What approach should I take in this case since thinking a lot on all possible scenarios comes naturally and I only try hard not to.&lt;/p&gt;&#xA;" OwnerUserId="4703" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-16T13:48:43.477" LastActivityDate="2010-10-16T13:48:43.477" Title="Approach to a programming task" Tags="&lt;programming&gt;&lt;problem-solving&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="11770" PostTypeId="2" ParentId="1717" CreationDate="2010-10-13T18:21:58.920" Score="6" ViewCount="" Body="&lt;p&gt;It's not new with Microsoft.  Let's go back to the days when IBM ruled the earth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most obvious nowadays is the Personal Computer, along with the Personal Computer Disk Operating System.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To go back in time, consider one of their earlier minicomputers, the System/36 that primarily ran programs written in Report Program Generator (RPG, anyway).  The IBM 360 was a perfectly good name for a computer in those days, but it came (originally, anyway) with Basic Operating System, Tape Operating System, Disk Operating System, or Operating System (which everybody wound up using after a while).  Many programs were written in Basic Assembly Language and run with Job Control Language.  IBM was also active in computer languages, promoting such languages as Programming Language One and A Programming Language.  (Some of these may be more familiar as acronyms.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know if this is necessarily a characteristic of a market-dominating company, but it sure looks like it (for a sample size of two).&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-13T18:21:58.920" />
  <row Id="11772" PostTypeId="2" ParentId="11769" CreationDate="2010-10-13T18:30:42.143" Score="5" ViewCount="" Body="&lt;p&gt;Instead of thinking about everything at once, use a top-down approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So think: 'what does this program do on the highest level possible?'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example: if you're writing a piece of code to take a string array and manipulate each string somehow, you'd code this first:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public ICollection&amp;lt;string&amp;gt; DoHighLevelStuff(ICollection&amp;lt;string&amp;gt; items)&#xA;{&#xA;    for(int i=0; i&amp;lt;items.Count; ++i)&#xA;        item = DoLowLevelStuff(item);&#xA;&#xA;    return items;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and worry about exactly how the lower-level methods work later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I take this approach naturally, but some people can't help doing the opposite.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: different problems require different approaches and a bottom-up approach is not neccessarily poor practice.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-10-13T18:30:42.143" />
  <row Id="11773" PostTypeId="2" ParentId="11721" CreationDate="2010-10-13T18:33:30.507" Score="3" ViewCount="" Body="&lt;p&gt;I think our problem is that we're much more like doctors than we're willing to admit... We have this idea that a four-year degree should prepare students to write software. It's not even close. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our profession is largely in its infancy compared to other disciplines. Maybe the question should be: how can we improve CS so that the students who graduate with that degree are better suited to become productive members of a real-world software development team in a much shorter time span? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe we should be more like medicine. Four years of basic work (CS degree) and then residency - practice of the craft under the supervision of a more experienced software engineer. Maybe that's what we already have, but it's less formal... I mean, like a resident, we learn our most valuable skills &lt;em&gt;at the workplace&lt;/em&gt; in our first jobs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe as as discipline we just need to formalize this better. &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-10-13T18:33:30.507" CommunityOwnedDate="2011-01-19T20:24:19.353" CommentCount="7" />
  <row Id="11774" PostTypeId="2" ParentId="11726" CreationDate="2010-10-13T18:36:34.243" Score="0" ViewCount="" Body="&lt;p&gt;Write automated unit test and other types of integration and functional tests. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The more automated tests you have, the less time you need to spend in a debugger. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, good design - SOLID principles. If you're writing small, focused classes and favoring composition over inheritance, eliminating duplication, etc., then your code will always be easier to debug. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that well designed code produces a different set of bugs that code that is not designed well. Generally speaking, well-designed code produces bugs that are easier to find, reproduce, and fix. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The exception (and there always is one) is multithreading code :-) &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-10-13T18:36:34.243" />
  <row Id="11775" PostTypeId="1" AcceptedAnswerId="11788" CreationDate="2010-10-13T18:38:30.167" Score="16" ViewCount="398" Body="&lt;p&gt;It seems like after I've written a significant amount of code I get this anxious feeling like I haven't done it in the best possible way, and I end up continuously refactoring and spending way too much time on the project, or never getting it done sometimes. Does this ever happen to anyone else, and how do you deal with this?&lt;/p&gt;&#xA;" OwnerUserId="5025" LastActivityDate="2011-05-19T16:53:49.777" Title="Does anyone else have a refactoring problem?" Tags="&lt;code-quality&gt;&lt;refactoring&gt;" AnswerCount="8" CommentCount="7" FavoriteCount="6" />
  <row Id="11776" PostTypeId="1" CreationDate="2010-10-13T18:39:13.947" Score="5" ViewCount="210" Body="&lt;p&gt;Which are the most useless of the UML (2.x) diagrams and features by your opinion?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am in the process of studying UML and I want to know which parts can I skip freely by now to save brain space. As far as I learned, there are some really clear and helping diagrams (like Sequence diagram), but the language is often criticized for being overly complicated.&lt;/p&gt;&#xA;" OwnerUserId="5307" LastActivityDate="2010-10-13T19:21:11.467" ClosedDate="2010-10-13T19:57:20.460" Title="Most useless UML diagrams &amp; features?" Tags="&lt;uml&gt;" AnswerCount="2" />
  <row Id="11777" PostTypeId="1" CreationDate="2010-10-13T18:43:15.617" Score="5" ViewCount="170" Body="&lt;p&gt;I want bookmarks specific to aiding in programming tasks, not to every task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the bookmark is awesome to every user, please don't post it as an answer here. I will down vote it and I suggest to users do the same. To general bookmarks, please post on &lt;a href=&quot;http://webapps.stackexchange.com/questions/293/what-useful-bookmarklets-do-you-use&quot;&gt;Webapps.StackExchange&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good answer is a bookmark which helps the programmer work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't expect get too many answers although it would be a great surprise if it happens.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please, explain what the bookmark does and where it can be used.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-04T23:30:39.953" LastActivityDate="2010-12-05T01:01:30.323" Title="What useful bookmarks to programmers do you use?" Tags="&lt;web-tools&gt;" AnswerCount="4" CommentCount="4" FavoriteCount="3" />
  <row Id="11778" PostTypeId="2" ParentId="11757" CreationDate="2010-10-13T18:47:41.333" Score="0" ViewCount="" Body="&lt;p&gt;I have a public facing SVN server that runs from my basement. I would have used a free one but I have already crossed the size limit on most free services. And I am not going to pay for something I can run my self. I already had the server running in the basement so it took next to no time to through SVN on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is not something I would use to mass distribute code with but it works for me at the moment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: as pointed out by the comments the above is not tied well to the social part of the question. soo...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The SVN server I run is public facing (Anyone has read privs). I have used it to share source code among friends or as examples for blog posts. None of this has generated enough traffic to warrant using anything else. The reason this works for me is I have not needed the added features of Github, codeplex, Sourceforge, or whatever else is out there. This is mainly due to just needing a place to store code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes the simplest solution is the best and in this case for me it is.&lt;/p&gt;&#xA;" OwnerUserId="3421" LastEditorUserId="3421" LastEditorDisplayName="" LastEditDate="2010-10-13T20:33:42.400" LastActivityDate="2010-10-13T20:33:42.400" CommentCount="6" />
  <row Id="11779" PostTypeId="2" ParentId="39" CreationDate="2010-10-13T18:48:03.893" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;It's OK to figure out murder&#xA;  mysteries, but you shouldn't need to&#xA;  figure out code. You should be able to read it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- Steve McConnell&lt;/p&gt;&#xA;" OwnerUserId="5307" LastActivityDate="2010-10-13T18:48:03.893" CommunityOwnedDate="2010-10-13T18:48:03.893" />
  <row Id="11781" PostTypeId="2" ParentId="10989" CreationDate="2010-10-13T18:51:36.180" Score="6" ViewCount="" Body="&lt;p&gt;As someone who's done a lot of Java, and experienced the &quot;write once, debug everywhere&quot; phenomenon on a weekly basis for years, I can fully relate to this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And Java is probably a mild example. I can't even begin to imagine what people go through who try to while a portable code base in a language/toolkit which wasn't even designed to be portable in and of itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now at work, we are investigating the idea of writing a lite version of one of our products for mobile devices. I've done some research on how to do a portable version of it for both J2ME and Android - that tries to share as much of the codebase as possible (obviously can't be fully &quot;portable&quot; per se, but it's a similar philosophy). It's a nightmare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So yeah, sometimes it really is good to be able to think (and do) in terms of using the given tools for the given job. ie Freely developing against one, single, monolithic platform/enviroment. And just writing separate, clean versions for each.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-13T18:51:36.180" />
  <row Id="11783" PostTypeId="2" ParentId="11775" CreationDate="2010-10-13T18:56:37.837" Score="7" ViewCount="" Body="&lt;p&gt;It does seem like you can always refactor, doesn't it? I try to limit refactoring only when trying to solve other issues. For example, refactor when you have a performance problem and refactoring with help you solve it - refactor when you need to add new functionality and refactoring will help you solve it&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-13T18:56:37.837" />
  <row Id="11784" PostTypeId="2" ParentId="11769" CreationDate="2010-10-13T18:58:25.953" Score="4" ViewCount="" Body="&lt;p&gt;What you appear to be describing is a problem in defining your scope. My advise is as follows:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;By all means think about all the different possible tasks, you may well come up with some useful additional features. Write headings for all the different ideas you've had, but nothing more than headings.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Review and prioritise the headings. Some at the bottom can probably be lost, concentrate on the functionality requested.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Expand the top headings into their sub-tasks until you have tasks that are only a few hours or days long each.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Review these with the person requesting the change (possibly before expanding the detail if the person is non-technical).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Begin work on the top task and continue downwards, producing prototypes and demonstrations (if not releases) at regular intervals for review with the requester.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Add to and review your task list between task completions; more tasks will always result from user reviews, and some may become obsolete.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="3526" LastActivityDate="2010-10-13T18:58:25.953" CommentCount="1" />
  <row Id="11785" PostTypeId="1" AcceptedAnswerId="11790" CreationDate="2010-10-13T18:58:47.693" Score="4" ViewCount="202" Body="&lt;p&gt;I was talking with someone today and this discussion came up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suppose you purchase some software and X user licenses for it. You then want to install another instance of the software, however the company tells you that you need to buy another X licenses to use the 2nd installation. Is it ethical to duplicate the licenses since the same X users are going to be using them? (the security on the program we were talking about is not very good)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&#xA;Licenses are per-concurrent-user. In this situation users would (generally) not be logged into both installations at once. Regardless, we would keep the number of users logged in between the two installations limited to the number of licenses we purchased.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastEditorUserId="1130" LastEditorDisplayName="" LastEditDate="2010-10-13T19:43:17.573" LastActivityDate="2010-10-13T21:12:56.160" Title="Is it ethical to duplicate user licenses if the same person is going to be using it?" Tags="&lt;ethics&gt;" AnswerCount="6" CommentCount="2" />
  <row Id="11786" PostTypeId="2" ParentId="6442" CreationDate="2010-10-13T18:59:56.163" Score="4" ViewCount="" Body="&lt;p&gt;Handling date calculations, date formating and localization issues dealing with dates.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-13T18:59:56.163" CommentCount="1" />
  <row Id="11787" PostTypeId="2" ParentId="11776" CreationDate="2010-10-13T19:00:25.210" Score="1" ViewCount="" Body="&lt;p&gt;The most useless UML feature is to try to complete them as much as possible. Every diagram has its use and I don't believe there is one that entirely useless.&lt;/p&gt;&#xA;" OwnerUserId="488" LastActivityDate="2010-10-13T19:00:25.210" />
  <row Id="11788" PostTypeId="2" ParentId="11775" CreationDate="2010-10-13T19:01:40.573" Score="16" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I enjoy these moments when they happen to me.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason: if I did not look back at my work and think there is something I could have done better than I would not be advancing as a developer.  Therefore, when these moments of enlightenment occur, embrace them and take note of what you learned.  Consider your timetable for current project and if possible refactor the code, if not possible take the lesson and use it in future implementations for projects.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either way, learning from your own mistakes is a great thing!  &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-13T19:01:40.573" />
  <row Id="11789" PostTypeId="2" ParentId="11785" CreationDate="2010-10-13T19:04:44.640" Score="1" ViewCount="" Body="&lt;p&gt;This may not be your case, but many programs, Delphi being one of them, have good-faith single user licensing where you can install it on multiple machines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was explained to me by an Embarcadero rep that you can install it on as many machines as you want, but you can only code on one of those machines at any given time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This licensing makes sense to me and probably is best suited for developers - it wouldn't work very well for networked software. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-13T19:04:44.640" CommentCount="2" />
  <row Id="11790" PostTypeId="2" ParentId="11785" CreationDate="2010-10-13T19:05:05.310" Score="7" ViewCount="" Body="&lt;p&gt;Is the license per-developer or per-machine?  That's really the determining factor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i.e. The Resharper and Sublime Text licenses I bought are per-developer.  I am allowed to install it on multiple machines as long as I'm the only one using it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the license is a concurrent user license, you are legally bound to stay within that limit.  If you have a 5 user license and 4 people are using it, then one of those people could use a second install..  If the 5th user shows up and launches it, you would be in violation of your license.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, can they detect it? can they do anything about it?.. Perhaps not, but you asked about ethics... it would be unethical to violate your license.&lt;/p&gt;&#xA;" OwnerUserId="189" LastEditorUserId="189" LastEditorDisplayName="" LastEditDate="2010-10-13T19:17:22.133" LastActivityDate="2010-10-13T19:17:22.133" CommentCount="5" />
  <row Id="11791" PostTypeId="2" ParentId="11785" CreationDate="2010-10-13T19:06:15.760" Score="0" ViewCount="" Body="&lt;p&gt;I think Windows have &quot;fair use&quot; licence which allows you multiple installs (i. e. desktop and laptop) if you're going to use just one of those machines at the same time. Read it somewhere some time ago, but kill me if I know now where...&lt;/p&gt;&#xA;" OwnerUserId="5072" LastActivityDate="2010-10-13T19:06:15.760" />
  <row Id="11792" PostTypeId="2" ParentId="11785" CreationDate="2010-10-13T19:07:09.190" Score="0" ViewCount="" Body="&lt;p&gt;If it's a per-user license, you can use it on many machines so long as the same person is using it. If it's a per-machine license, then you need a license per installation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems pretty cut-and-dry to me. If it's a per-machine license and you want to install the product on multiple machines for the same people to use it, it's a license breach and therefore not ethical.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-13T19:07:09.190" />
  <row Id="11794" PostTypeId="2" ParentId="8721" CreationDate="2010-10-13T19:10:27.083" Score="2" ViewCount="" Body="&lt;p&gt;&quot;How do you get to Carnegie Hall?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Practice, practice, practice!&quot;&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-13T19:10:27.083" />
  <row Id="11795" PostTypeId="2" ParentId="11769" CreationDate="2010-10-13T19:10:58.797" Score="2" ViewCount="" Body="&lt;p&gt;I would very strongly advise you to have a good look at Test Driven Design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here you start with writing a test for each new piece of functionality.  The word &quot;test&quot; here indicates that you test the behaviour of the code by checking if it works as you expect.  By writing the test first, you are guaranteed that you start by thinking in how to &lt;em&gt;use&lt;/em&gt; your code, instead of how to &lt;em&gt;write&lt;/em&gt; it.  You then implement enough to make the test pass - i.e. fulfill the requirements, and then add more tests describing more functionality, and more code to make it pass.  Repeat until you have all the functionality you need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest having a look at &lt;a href=&quot;http://junit.sourceforge.net/doc/testinfected/testing.htm&quot; rel=&quot;nofollow&quot;&gt;http://junit.sourceforge.net/doc/testinfected/testing.htm&lt;/a&gt; which describes how to develop a Money class in this way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have found the approach VERY helpful especially for libraries.  You might too.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-13T19:10:58.797" CommentCount="2" />
  <row Id="11796" PostTypeId="2" ParentId="11769" CreationDate="2010-10-13T19:12:07.293" Score="1" ViewCount="" Body="&lt;p&gt;You can try thinking in small increments and writing stuff down at each stage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start with a requirements document. Think from the end user's perspective. Freeze the requirements. Most importantly write it down in a version controlled document.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then move on to the functional specification. Think from an architect's perspective. Write down in a separate version controlled document, how each of the requirements will be met. It should describe all user interaction and functionality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now move on to the design document. Think from a lead's perspective. Write down the high level design document. This should describe high level modules and clearly spell out the interfaces between the modules. The interfaces must be frozen at this stage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now start actual coding. Think from a programmer's perspective. Implement module by module. Focus on one module at a time. Stop coding a module once it adheres to the already frozen interface.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If all goes well, integration shouldn't be too painful.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastEditorUserId="5178" LastEditorDisplayName="" LastEditDate="2010-10-13T19:17:12.930" LastActivityDate="2010-10-13T19:17:12.930" CommentCount="1" />
  <row Id="11797" PostTypeId="2" ParentId="11785" CreationDate="2010-10-13T19:15:38.813" Score="4" ViewCount="" Body="&lt;p&gt;This is not an ethics question, but a license terms question.  Each product can have its own license terms.  Some allow multiple installations as long as they're used by the same user; some don't.  If you do what your product's license prohibits, then you're breaking the terms of the license.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-13T19:15:38.813" CommentCount="2" />
  <row Id="11798" PostTypeId="2" ParentId="3851" CreationDate="2010-10-13T19:17:36.203" Score="2" ViewCount="" Body="&lt;p&gt;One thing that distinguishes a bad programmer from a newbie programmers is stubborn insistence on implementing their favorite system in whatever language and API they are working in. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I once inherited a system where the prior developer re-implemented (in Java) a large set of the Ashton Tate DBase III+ api layered on top of custom dbf access library. None of the Java collections framework was used. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This was so he could write a Java/swing app that looked and acted like a DBase III+ (or possibly clipper) app.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;The Apps he wrote in this system had lite-bar menus&lt;/em&gt; and would open a full window form with a row of buttons on the bottom when you navigated the lite-bar to the option. It was like a little time machine back to the 1980s.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The man was clearly a skilled developer. He knew enough that he was able to write that whole system himself in the time frame of that project. He was also able to re-use it on a few other internal systems. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But he was an awful programmer in that his code misused the features of the systems he worked on. He was more willing to spend 3 months on a custom lib of dubious benefit than learn Java/Swing/SQL. &lt;/p&gt;&#xA;" OwnerUserId="4603" LastEditorUserId="4603" LastEditorDisplayName="" LastEditDate="2010-10-14T13:26:55.560" LastActivityDate="2010-10-14T13:26:55.560" CommunityOwnedDate="2010-12-13T18:51:52.480" />
  <row Id="11799" PostTypeId="2" ParentId="11777" CreationDate="2010-10-13T19:20:06.550" Score="2" ViewCount="" Body="&lt;p&gt;DOM Count&lt;/p&gt;&#xA;&#xA;&lt;p&gt;javascript:alert(document.getElementsByTagName(&quot;*&quot;).length)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use it as a sort of gut estimate for when a page is getting too heavy to interact with. IE doesn't like it when the DOM count starts hitting ranges of 4000 or up (depends on what exactly is in the DOM).&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-10-13T19:20:06.550" />
  <row Id="11801" PostTypeId="2" ParentId="11776" CreationDate="2010-10-13T19:21:11.467" Score="2" ViewCount="" Body="&lt;p&gt;Use Case Diagram. I love use cases. I love most UML diagrams. But I have yet to see a Use Case Diagram that had any value sitting alone on a page without someone &quot;acting it out&quot; for me, or that was more helpful than a simple list of use case titles in intelligent order would be. I would love to be proven wrong (add a comment with a link to a good one) because I feel like they should be helpful, but it has yet to happen for me.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-13T19:21:11.467" CommentCount="2" />
  <row Id="11802" PostTypeId="1" AcceptedAnswerId="13150" CreationDate="2010-10-13T19:24:44.363" Score="4" ViewCount="202" Body="&lt;p&gt;I'm planning on using &lt;a href=&quot;http://nvie.com/posts/a-successful-git-branching-model/&quot; rel=&quot;nofollow&quot;&gt;Vincent Driessen's branching model&lt;/a&gt; which I found great for my current development. I think Vincent approach is very general to any development project but I'm finding it difficult to handle the following scenario.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm working on an application that will be branded to several customers, so each one of my bundles is a different branch that I &lt;code&gt;rebase&lt;/code&gt; from &lt;code&gt;develop&lt;/code&gt; branch each time a new build is going to be released. Each brand has its assets (images and text) and they do not conflict with changes in &lt;code&gt;develop&lt;/code&gt; branch because in that branch I never touch the assets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is, now that I'm planning on using it, how can I handle different versions based on the same code base but with different assets?&lt;/p&gt;&#xA;" OwnerUserId="1015" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-10-13T19:31:35.680" LastActivityDate="2010-10-20T00:00:25.440" Title="GIT branch model for derivative work" Tags="&lt;development-process&gt;&lt;dvcs&gt;" AnswerCount="2" />
  <row Id="11803" PostTypeId="2" ParentId="11775" CreationDate="2010-10-13T19:25:55.190" Score="5" ViewCount="" Body="&lt;p&gt;Here are a few rules to constrain this activity and make it more productive:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;time-box it, e.g. set the timer to 25 minutes&lt;/li&gt;&#xA;&lt;li&gt;do it only when you have decent test coverage.&lt;/li&gt;&#xA;&lt;li&gt;try to make your refactoring useful to the development of next few features &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="464" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-10-15T16:40:40.943" LastActivityDate="2010-10-15T16:40:40.943" CommentCount="2" />
  <row Id="11804" PostTypeId="2" ParentId="6395" CreationDate="2010-10-13T19:26:00.633" Score="2" ViewCount="" Body="&lt;p&gt;I like to do the following when I have a really large source file:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Copy the whole mess onto the clipboard&lt;/li&gt;&#xA;&lt;li&gt;Paste into Word/textmate whatever&lt;/li&gt;&#xA;&lt;li&gt;Reduce font size to the minimum. &lt;/li&gt;&#xA;&lt;li&gt;Scroll down looking at the patterns in the code&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You would be amazed at how oddly familiar the code looks when you get back to your normal editor.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-13T19:26:00.633" CommunityOwnedDate="2010-10-13T19:26:00.633" />
  <row Id="11805" PostTypeId="2" ParentId="2291" CreationDate="2010-10-13T19:28:54.887" Score="0" ViewCount="" Body="&lt;h2&gt;Turbo BASIC&lt;/h2&gt;&#xA;" OwnerUserId="1161" LastActivityDate="2010-10-13T19:28:54.887" CommunityOwnedDate="2010-10-13T19:28:54.887" />
  <row Id="11806" PostTypeId="2" ParentId="3851" CreationDate="2010-10-13T19:29:24.183" Score="2" ViewCount="" Body="&lt;p&gt;A big warning sign in my experience is when they don't comment their hacks....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You know what I mean: when you're forced to do something very hacky because there is simply no better way to do it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good programmers will hate having to do it and put in inline comments saying how much they hate putting in that kind of hack, but there is no choice. Bad programmers will just put in the hack and not comment it.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-13T19:29:24.183" CommunityOwnedDate="2010-12-13T18:51:52.480" />
  <row Id="11807" PostTypeId="2" ParentId="5297" CreationDate="2010-10-13T19:40:15.627" Score="2" ViewCount="" Body="&lt;p&gt;You might be a little &quot;slow&quot; compared to someone who has been programming for 5 or 10 years, but it all comes with time. You are probably doing things now in 1/10th of the time as when you were first learning, and it will continue to become easier. That's just the way most things in life are... you are slow when you first learn it, and you gradually get better, faster, more efficient. If you practice long enough, you might become &quot;masterful&quot;. &lt;/p&gt;&#xA;" OwnerUserId="5313" LastActivityDate="2010-10-13T19:40:15.627" />
  <row Id="11808" PostTypeId="2" ParentId="6395" CreationDate="2010-10-13T19:41:03.007" Score="2" ViewCount="" Body="&lt;p&gt;cscope can do whatever ctags can do for C, plus, it can also list where all current function is called. Plus it is very fast. Scales easily to millions of LOC. Integrates neatly to emacs and vim.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C and C++ Code Counter - cccc can generate code metrics in html format. I have used wc also for getting LOC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;doxygen can generate syntax highlighted and cross referenced code in html. Useful in browsing large code base.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-13T19:41:03.007" CommunityOwnedDate="2010-10-13T19:41:03.007" />
  <row Id="11809" PostTypeId="2" ParentId="11721" CreationDate="2010-10-13T19:43:15.543" Score="3" ViewCount="" Body="&lt;p&gt;I have a CS degree, and for a whole year of my program there was no programming, only theory. We were told that we are not getting a degree in programming but in Computer Science. If you want to be a programmer go to community college. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We learned about algorithmns, design patterns, and alot of the theory about solving problems without a spacific language. Programming languages come and go, but the underlining theory stays the same. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, to your first question, no I don't feel that CS != SE is a copout. It's a fact. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To your second question, no, I don't think I would. How do you properlty teach programming? Beyond loops, ifs, methods, classes and OOP, what would be 'proper programming' and how would you make it relevent to any programming language out there? You need experience writing code, something that a 4 year degree can't prepair you for.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing I would do though is provide a class on Development in the Real World. Source control, ticket/bug tracking, code tracing, and all that jazz would be a good start to prepare all the soon to be grads for what they will face in their new jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's on us when we hire a new grad to understand that they probably aren't going to be writing award winning code. They need guidance and direction. &lt;/p&gt;&#xA;" OwnerUserId="2305" LastEditorUserId="1093" LastEditorDisplayName="" LastEditDate="2011-01-19T21:54:25.537" LastActivityDate="2011-01-19T21:54:25.537" CommunityOwnedDate="2011-01-19T20:24:19.353" CommentCount="3" />
  <row Id="11810" PostTypeId="1" CreationDate="2010-10-13T19:49:21.277" Score="1" ViewCount="226" Body="&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ill be going for a Tech Support Engineer interview at Red Hat.The job profile requires familiarity with GNU/Linux operating system, as well as programming skills in C/C++,Python,Bash etc, ability to debug code among other things.&#xA;If someones been there done that, can you please let me know as to what questions can i expect ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please Help&#xA;Thank You.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-13T19:50:56.043" ClosedDate="2010-10-13T20:10:09.583" Title="Tech Support Engineer interview at Red Hat" Tags="&lt;interview&gt;&lt;interview-questions&gt;&lt;job-interview&gt;" AnswerCount="1" />
  <row Id="11811" PostTypeId="2" ParentId="11810" CreationDate="2010-10-13T19:50:56.043" Score="0" ViewCount="" Body="&lt;p&gt;Why are manhole covers round?&lt;/p&gt;&#xA;" OwnerUserId="5025" LastActivityDate="2010-10-13T19:50:56.043" CommentCount="1" />
  <row Id="11812" PostTypeId="2" ParentId="39" CreationDate="2010-10-13T19:55:19.433" Score="10" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Crockford is the sole user of the super-strict equality operator (====), which either returns true or kicks you in the balls.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2780" LastActivityDate="2010-10-13T19:55:19.433" CommunityOwnedDate="2010-10-13T19:55:19.433" />
  <row Id="11813" PostTypeId="1" AcceptedAnswerId="11816" CreationDate="2010-10-13T19:58:38.913" Score="9" ViewCount="280" Body="&lt;p&gt;I once interviewed at a consulting company where it came up in the conversation that they use open source products (which is great, I've used Hibernate, JBoss, etc. extensively.)  One thing that did surprise me is that when I asked if they used GPL licensed OSS when writing applications for clients, they said &quot;Sure, all the time!  As long as the client gets what they want and are happy.&quot;  Now, I'm no lawyer or big license buff, but I was under the impression that using GPL code (let's say some library that you include), then you are required to release the entire application under the same license.  When I pointed this out, I was given a quick response of, &quot;Well, we give the clients all the source code when we're done, so that's really not an issue.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not wanting to press the issue further (interviews aren't the place for arguments like that), I let it slide.  However, that still concerns me about that particular practice of the business.  What is the official word on GPL licensed code and how &quot;open&quot; does it need to be?  Do you have to publish it and say &quot;My company used this library so here is the site where you can download our shopping and order fulfillment system application that we spend millions of dollars to build.&quot;?  In this situation, is the company right for using GPL code without the client's knowledge?  Is it enough to just &quot;give them the source&quot;?&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-10-13T20:06:17.490" LastActivityDate="2010-10-13T20:47:03.507" Title="GPL in the workplace?" Tags="&lt;open-source&gt;&lt;business&gt;&lt;gpl&gt;&lt;consulting&gt;" AnswerCount="4" />
  <row Id="11814" PostTypeId="2" ParentId="11757" CreationDate="2010-10-13T20:00:50.223" Score="1" ViewCount="" Body="&lt;h1&gt;Bitbucket.&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Uses &lt;code&gt;hg&lt;/code&gt;. Similar to github in concept, but has a better source control system. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;/went there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;//yep hg is better. ;)&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-13T20:00:50.223" CommentCount="4" />
  <row Id="11815" PostTypeId="2" ParentId="11813" CreationDate="2010-10-13T20:14:59.900" Score="-4" ViewCount="" Body="&lt;p&gt;No, you are correct. Heres why:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider if we have an application under GPL. Now, then it can't be used by proprietary code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it was enough just to open source code that uses GPL, I could open source a project based on it as BSD.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then proprietary software could use the GPL product.&lt;/p&gt;&#xA;" OwnerUserId="227" LastActivityDate="2010-10-13T20:14:59.900" CommentCount="5" />
  <row Id="11816" PostTypeId="2" ParentId="11813" CreationDate="2010-10-13T20:23:25.320" Score="12" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Standard disclaimers apply: I am not a lawyer and neither are you.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;GPL, at its core, is about protecting the rights of those using the program to obtain and use the source as well. It &lt;em&gt;does not&lt;/em&gt; mandate that you publish the source of any program you write that uses GPL'd code, merely that &lt;em&gt;if you publish&lt;/em&gt; such a program you must also provide the source.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can write any number of apps for my personal use, pull in GPL'd code, and never give the source of any of this to anyone. I can write such apps for internal use by my company, and need only provide the source to those within my company who use the program (practically-speaking, I would have to do this anyway if they had any good reason to request it). If I write such a program for some other entity, I merely have to give &lt;em&gt;them&lt;/em&gt; the code (and make it clear that the program is GPL-licensed) - if &lt;em&gt;they&lt;/em&gt; go on to distribute it, they also must then make the source available, but I'm out of the picture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the only worry your consulting company might have is that they were failing to make their clients aware of the license the code they provided fell under. Actually, I lie - if they had negotiated a &lt;em&gt;different&lt;/em&gt; license with their clients (client owns all rights to code...) then they could be in hot water over that as well... But this is true for any third-party code: unless it's public-domain, you &lt;em&gt;must&lt;/em&gt; comply with the license, and must not re-license it unless that right has been granted you by the copyright holder.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-10-13T20:23:25.320" CommentCount="4" />
  <row Id="11817" PostTypeId="2" ParentId="779" CreationDate="2010-10-13T20:39:16.350" Score="2" ViewCount="" Body="&lt;p&gt;I was once asked if I had any food allergies.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-13T20:39:16.350" CommunityOwnedDate="2011-02-17T17:16:27.913" />
  <row Id="11818" PostTypeId="2" ParentId="11813" CreationDate="2010-10-13T20:39:48.007" Score="6" ViewCount="" Body="&lt;p&gt;As a consultant, I make a point of raising license issues early with my customer so that they can make an informed choice. If the best technology to apply to their problem is under GPL but they can't comply with the license, then I can't use it. In practice, this has had two effects. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, many are happy to pay for a commercial product specifically to avoid this issue. This is especially common in the embedded systems world where compliance with GPL would effectively require publishing the complete hardware design and documenting how it all works to meet the spirit of the GPL which is an attempt to make it possible for an end user to change the product. While it is possible to to make products that are that open, it requires a great deal of commitment at all levels of the company. The larger problem is that many components of a design are documented to us by their makers under NDA and it is effectively impossible to create GPL compliant code that uses documentation released under NDA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, we now have a preference for the MIT license and its many relatives (which make it clear that commercial use is acceptable) over the GPL at any revision. I haven't had any customer object to releasing bug fixes and improvements made back to the relevant product communities. Since the license is permissive, I can comply with my NDA obligations, keep my customer happy, and contribute to the relevant communities.&lt;/p&gt;&#xA;" OwnerUserId="4397" LastActivityDate="2010-10-13T20:39:48.007" />
  <row Id="11819" PostTypeId="2" ParentId="11813" CreationDate="2010-10-13T20:47:03.507" Score="2" ViewCount="" Body="&lt;p&gt;Open source does not necessarily mean free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IANAL either, but generally speaking the requirement for GPL is to provide the source code for your project.  You can certainly sell a product to someone else.  However, I believe that you cannot prevent them from giving it away.  That is probably what makes most GPL'd software free, as in beer.  I'm fairly certain that you do not have to publish your code to world+dog just because it is GPL'd.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the preamble to v3 of the GPL (emphasis my own):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;When we speak of free software, we are referring to freedom, not price.&lt;/strong&gt; Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(&lt;a href=&quot;http://www.gnu.org/licenses/gpl.html&quot; rel=&quot;nofollow&quot;&gt;source&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;In this situation, is the company right for using GPL code without the client's knowledge? Is it enough to just &quot;give them the source&quot;?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a slightly different question.  If the client has some expectation and that expectation is dictated in a contract, the company may have an issue.  Otherwise, it is up to them to determine how best to do the job.  However, they are supposed to include a notice in the source code regarding the license.  I am uncertain if they must disclose this to their client in any other way.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-10-13T20:47:03.507" CommentCount="2" />
  <row Id="11820" PostTypeId="2" ParentId="3535" CreationDate="2010-10-13T20:50:38.413" Score="5" ViewCount="" Body="&lt;p&gt;In the UK, if someone resigns the employer might put them on &quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Garden_leave&quot; rel=&quot;nofollow&quot;&gt;gardening leave&lt;/a&gt;&quot; instead of them working during their notice period (often 1 month, maybe 3 months or longer for experienced staff). The employer still pays you, and you're not allowed to work for your new employer until garden leave is over because then you're under breach of contract.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're a free agent after that (IANAL). Your (now ex)employer cannot prevent you from your basic right to earn a living. You would still be bound to confidentiality clauses and intellectual property ownership.&lt;/p&gt;&#xA;" OwnerUserId="4205" LastActivityDate="2010-10-13T20:50:38.413" CommentCount="2" />
  <row Id="11821" PostTypeId="2" ParentId="11425" CreationDate="2010-10-13T20:55:23.130" Score="7" ViewCount="" Body="&lt;p&gt;Have to agree with you, the burnout is there.  There's something about having paperwaste and food wrappers being the only physical output I create day after day that got to me.  I have...er..had...collegues that took up 'Habitat for Humanity' and flew to the honduras to volunteer in rebuilding efforts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find it feels like a tight knot thats always with you...tell yourself it's normal or you should learn to like it.  5 years later I was a pretty good wreck.  My solution was to take Febuary as vacation and fly to Indonesia ;)   Came back with a new perspective (living with people who lack concept of time does that) and promptly left my job.  New job, new perspective...still programming, but the knot is gone.  The seperation really helped me.&lt;/p&gt;&#xA;" OwnerUserId="5325" LastActivityDate="2010-10-13T20:55:23.130" />
  <row Id="11822" PostTypeId="2" ParentId="39" CreationDate="2010-10-13T20:55:37.107" Score="1" ViewCount="" Body="&lt;p&gt;I had a teacher that would tell students who were getting ahead of themselves this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;You don't know what you don't know&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I can't say for sure if it's his quote or something he picked up from somewhere else.&lt;/p&gt;&#xA;" OwnerUserId="3369" LastActivityDate="2010-10-13T20:55:37.107" CommunityOwnedDate="2010-10-13T20:55:37.107" CommentCount="2" />
  <row Id="11823" PostTypeId="2" ParentId="11680" CreationDate="2010-10-13T20:57:10.973" Score="2" ViewCount="" Body="&lt;p&gt;I would suggest to work on the root cause rather than the symptoms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's called cognitive behavorial therapy but you don't have to pay a cognitive psychologist, most concepts are described in personnal improvements books like &lt;strong&gt;Getting Things Done&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to work on the symptoms anyway, something that work well is using two machine. One for your dev work and one for the informal stuff like surfing and emails. Try, you will see the difference :)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-13T20:57:10.973" />
  <row Id="11824" PostTypeId="2" ParentId="11785" CreationDate="2010-10-13T21:12:56.160" Score="0" ViewCount="" Body="&lt;p&gt;I use a commercial source control system and the need arose to have multiple installations but naturally we didn't want to buy (and separately manage) a ton of licenses between servers.  Contacting the vendor, it turns out that they respectfully handle this fact and will give those who ask a &quot;free&quot; set of licenses for the second server as long as all of the users are properly licensed on the first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, why are you asking this question here instead of contacting the application vendor?&lt;/p&gt;&#xA;" OwnerUserId="2129" LastActivityDate="2010-10-13T21:12:56.160" CommentCount="2" />
  <row Id="11825" PostTypeId="2" ParentId="11680" CreationDate="2010-10-13T21:18:14.587" Score="1" ViewCount="" Body="&lt;p&gt;been playing around with FogBugz the last few days, and I find knowing that I have a timer going for a task on there keeps me focused.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't want my time estimates to be hugely off. Not sure how long it's going to last, though, since right now it's still in the novelty stage for me to be using it.&lt;/p&gt;&#xA;" OwnerUserId="2416" LastActivityDate="2010-10-13T21:18:14.587" CommentCount="1" />
  <row Id="11826" PostTypeId="2" ParentId="6395" CreationDate="2010-10-13T21:18:21.870" Score="1" ViewCount="" Body="&lt;p&gt;I would say to start with documentation, etc., but in my experience, the depth of documentation and local knowledge is often inversely proportional to the age, size and complexity of a system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, I usually try to identify a couple of functional threads.  By functional I mean stuff like logging in, pulling down a list of customers, etc.  If the patterns are consistent at all, one thread should give you a nice, not necessarily complete, cross-section of the system.  The best way to determine if the patterns are consistent is to analyze a handful of threads.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this goes without saying but, in my opinion, it's better to understand the system from a functional perspective rather than from a technical perspective.  I generally don't worry too much about the tools that are being used (ORMs, logging libraries, etc.) and focus more on the patterns (MVP, etc.) that are being used.  In my experience, tools are generally more fluid that patterns.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-10-13T21:18:21.870" CommunityOwnedDate="2010-10-13T21:18:21.870" />
  <row Id="11827" PostTypeId="2" ParentId="11802" CreationDate="2010-10-13T21:23:48.413" Score="3" ViewCount="" Body="&lt;p&gt;I've skimmed over the article, so I can't be sure I got everything 100% correct, but here's my idea: can you simply edit your assets in the &lt;code&gt;master&lt;/code&gt; branch? Or, if you're keeping your &quot;branded branches&quot;, modify your assets only there. You can then simply merge the code from your &lt;code&gt;develop&lt;/code&gt;, since you're not touching any assets there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be honest, if assets are the only problem here, I'd create a config file (or a database table if you have one) for your application which would tell it which assets to load dynamically. This would eliminate any &quot;brand branches&quot; and make it easy for you to maintain your assets easily.&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-10-13T21:23:48.413" CommentCount="1" />
  <row Id="11828" PostTypeId="2" ParentId="11565" CreationDate="2010-10-13T21:25:11.227" Score="2" ViewCount="" Body="&lt;p&gt;Behavior-Driven and Test-Driven Development... (or pretty much any other *-Driven Development.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of my peers rave about it and talk about how it not only improves the quality of code but it also helps to organize your thoughts when it comes to development.  Honestly, I've tried it before, but it's hard for me to justify writing tests for something that I haven't written yet.  I don't know... I'm sure that if I got it I'd be standing right along my peers singing it's praises, but, honestly, I don't think my brain is wired that way.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-10-13T21:25:11.227" CommentCount="1" />
  <row Id="11829" PostTypeId="2" ParentId="11721" CreationDate="2010-10-13T21:40:04.220" Score="4" ViewCount="" Body="&lt;p&gt;Yes, this sounds like a cop-out to me, and a sign of CS's immaturity as an academic discipline.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An American Chemical Society accredited B.S. program requires you to have passed specific courses to demonstrate particular proficiencies in both theory (lecture classes) and practice (lab classes). At present, CS has nothing like that as far as I know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of my grad schol profs was a very ivory-tower theoretician whose office was never sullied with anything more physically chemical than a fishbowl with Magic Rocks, but when I was his TA for freshman chem, he also proved to be a quite competent bench chemist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I worked as an industrial paint chemist, they'd have laughed their heads off at the notion that I'd have a bachelor's and be incompetent in the lab. Of course the details of what I was doing in the lab were different than what I'd had in lab classes in school, but the principles were the same - we just used a paint mixer and a can, rather than a beaker and magnetic stirrer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If one were to apply the same approach to CS, the details of what one might teach as practical software development skills for a CS/SE curriculum might vary from school to school, and over time. But it just sounds crazy to me that it's acceptable that somebody could get a degree in the field and not be competent at writing, debugging, and maintaining &lt;em&gt;some&lt;/em&gt; kind of code. (Of course, that's how things actually are in many CS programs, but it's still crazy.)&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-10-13T21:40:04.220" CommunityOwnedDate="2011-01-19T20:24:19.353" />
  <row Id="11830" PostTypeId="2" ParentId="39" CreationDate="2010-10-13T21:47:48.120" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Programming is one of the most&#xA;  difficult branches of applied&#xA;  mathematics; the poorer mathematicians&#xA;  had better remain pure mathematicians&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;— Edsger W. Dijkstra&lt;/p&gt;&#xA;" OwnerUserId="4928" LastActivityDate="2010-10-13T21:47:48.120" CommunityOwnedDate="2010-10-13T21:47:48.120" CommentCount="3" />
  <row Id="11831" PostTypeId="1" AcceptedAnswerId="11836" CreationDate="2010-10-13T21:48:23.893" Score="6" ViewCount="591" Body="&lt;p&gt;I know Python, and some HTML, PHP, Java, and Ruby.  What next?  A lot of people say C or C++.  Why?  Is C really the Godfather of all programming?&lt;/p&gt;&#xA;" OwnerUserId="4971" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-10-14T05:03:18.550" LastActivityDate="2010-10-17T00:20:39.277" ClosedDate="2010-10-19T05:05:02.453" Title="Most Beneficial Language to Learn" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;good-practices&gt;" AnswerCount="15" CommentCount="9" FavoriteCount="2" />
  <row Id="11832" PostTypeId="2" ParentId="11726" CreationDate="2010-10-13T21:52:18.783" Score="0" ViewCount="" Body="&lt;p&gt;Two things, based on spending most of the last 22 years maintaining code other people wrote.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Understand the kinds of bugs you tend to write.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, I'm a very meticulous coder, so once my code compiles, it's usually free of trivial bugs. So my bugs tend to be weird complicated things like thread deadlocks. On the flip side, I have friend who mostly writes trivial bugs - semicolons at the end of C++ for loops, so the next line only gets executed once, that kind of thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Don't assume other people write the same kinds of bugs you do.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know how many times I've wasted time pulling out the big debugging guns, assuming a bug was my kind of really subtle weird thing, only to have my friend look over my shoulder and go, &quot;Did you notice that extra semicolon?&quot; After years of that, I first go for the trivial, low-hanging fruit when looking at other peoples' code.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-10-13T21:52:18.783" CommentCount="5" />
  <row Id="11833" PostTypeId="2" ParentId="966" CreationDate="2010-10-13T21:53:00.307" Score="2" ViewCount="" Body="&lt;p&gt;While &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0449905292&quot; rel=&quot;nofollow&quot;&gt;Strategy of the Dolphin&lt;/a&gt; is geared more towards adjusting one's mindset to solving problems arising from dealing with others, applying the adaptive skills in dealing with the absolute world of developer tools will help intuit new ways of addressing problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/uS8gr.jpg&quot; alt=&quot;Strategy of the Dolphin&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="4982" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-14T05:35:29.640" LastActivityDate="2010-10-14T05:35:29.640" CommunityOwnedDate="2011-01-06T15:42:27.030" />
  <row Id="11834" PostTypeId="2" ParentId="11831" CreationDate="2010-10-13T21:53:00.387" Score="1" ViewCount="" Body="&lt;p&gt;If you refer to beginners I would recommend although it might be polemical learning html and php since they are the &quot;least frustrating&quot; languages, as soon as you start coding you see some immediate &quot;good&quot; results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is very subjective and very personal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C is a very powerful well documented and well written language thats why it so popular and so widely spread and considered the &quot;God father&quot;&lt;/p&gt;&#xA;" OwnerUserId="5014" LastActivityDate="2010-10-13T21:53:00.387" CommentCount="5" />
  <row Id="11835" PostTypeId="1" AcceptedAnswerId="11838" CreationDate="2010-10-13T21:54:49.760" Score="5" ViewCount="319" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/370/how-old-is-too-old&quot;&gt;How old is &amp;ldquo;too old&amp;rdquo;?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was at a shop where I suggested they hire a colleague who was in his 30's.  He was VERY well qualified.  My boss said that he wasn't &quot;the sort of person&quot; they sought.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I didn't think anything of it.  Then I noticed a disturbing trend: all the people we were interviewing were not over 25.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The irony behind all of this is that my boss himself was in his 60's.  He told me in my exit interview that I only had a few more years in programming before I would have problems getting a job for being too old (I'm 28 now).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is he right?  Or are the job woes older programmers sometimes face a result of not keeping their skills up to date and being more expensive?&lt;/p&gt;&#xA;" OwnerUserId="5057" LastActivityDate="2010-10-13T22:49:24.270" ClosedDate="2010-10-14T03:43:40.020" Title="What do you do about age discrimination in programming?" Tags="&lt;career-advice&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="11836" PostTypeId="2" ParentId="11831" CreationDate="2010-10-13T21:55:46.603" Score="12" ViewCount="" Body="&lt;p&gt;C is the most common language for performing low-level tasks and OS calls.  You'll absolutely need to know how to at least read C if you plan to move beyond working with scripting languages and into application development, in order to talk with the OS and external libraries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This doesn't necessarily mean that C is a good language to work with, or particularly good at what it does.  It's not.  But it's very widely used, and not knowing at least the basics will leave you at a real disadvantage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for C++?  Don't bother.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-13T21:55:46.603" CommentCount="8" />
  <row Id="11837" PostTypeId="2" ParentId="11831" CreationDate="2010-10-13T21:56:08.963" Score="1" ViewCount="" Body="&lt;p&gt;C is going to be helpful in understanding a lot of the lower level stuff like pointers that are rarely, if ever, needed to be considered for languages like PHP, Ruby or Java. Don't worry about C++, they only thing it will teach you is patience. &lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-13T21:56:08.963" />
  <row Id="11838" PostTypeId="2" ParentId="11835" CreationDate="2010-10-13T21:57:52.593" Score="7" ViewCount="" Body="&lt;p&gt;Sounds to me like your boss is simply a jerk, and quite possibly a law-breaking jerk too, depending on where you live.  Disregard his &quot;advice&quot;.  The only positions an experienced programmer will have trouble getting because he's being out-competed by younger hires are ones he probably wouldn't have wanted to work at anyway.  Companies that make good software want to hire people who know how to produce good software, and that means competence and experience.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-13T21:57:52.593" CommentCount="1" />
  <row Id="11839" PostTypeId="2" ParentId="11831" CreationDate="2010-10-13T22:02:07.643" Score="7" ViewCount="" Body="&lt;p&gt;C was the lingua franca at my University so perhaps this advice is biased to my experience, but here goes:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning C gives you a good general grounding in programming since a) Most languages that came after it are at least partially based on it, or outright evolved from it (eg C++, Java) and b) Both C and C++ do low level memory management (ie pointers) which is a good concept to learn, even if you don't necessarily need it much in high level programming in other languages and environments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found at University that low-level C (especially doing freaky things with pointers) really sorts out the wannabes from the Real Programmers(tm). We had a very hardcore subject in second semester first year which was basically &lt;strong&gt;THE&lt;/strong&gt; test of whether one was going to fail and drop out of our Computer Science degree or not. Some 70%+ of people failed it the first time around. But basically, if you managed to pass that unit, it was proof that you &quot;get&quot; programming.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-13T22:02:07.643" CommentCount="2" />
  <row Id="11840" PostTypeId="2" ParentId="11831" CreationDate="2010-10-13T22:07:17.327" Score="0" ViewCount="" Body="&lt;p&gt;I would say D, if you already have some programming experience.  The beauty of D is that it integrates high level and low level programming, as well as procedural, OO, functional and metaprogramming, better than probably any other language.  This enables you to see how things fit together and to see the forest through the trees.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you master D, you'll understand not only high-level abstractions, but how they can be implemented in terms of low-level abstractions.  You'll understand not only the mechanics of low-level abstractions, but how they can leak and do evil things to high-level abstractions.  You'll understand not only OO and functional programming, but how they complement each other and how to use them gainfully side by side.  You'll understand not only manual memory management and garbage collection, but the precise tradeoff between them and how to choose which one to use when &lt;em&gt;within the same program&lt;/em&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Last but not least, D will force you to learn to consider the tradeoffs between performance, maintainability/flexibility and simplicity in any given piece of code, as this decision is much less baked into D than most other languages.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-13T22:07:17.327" />
  <row Id="11841" PostTypeId="2" ParentId="1717" CreationDate="2010-10-13T22:07:59.737" Score="2" ViewCount="" Body="&lt;p&gt;Microsoft upper management is very much run by MBA types which means names are probably analysed and manipulated so much that only a generic name can come out the other side. Just being a 'cool name' isn't enough. I think Apple go by feel a lot more, and then just do what Steve says.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-13T22:07:59.737" CommentCount="1" />
  <row Id="11842" PostTypeId="2" ParentId="11595" CreationDate="2010-10-13T22:29:06.103" Score="2" ViewCount="" Body="&lt;p&gt;We do a similar thing where I work, a monthly &quot;developers meeting&quot; where people are encouraged to share new things - mostly in the C#/ASP.NET field, but we also have front-end developers talking about HTML and Javascript stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, here are a few tools that I have showed people in recent months. You might like to check out some of these, if you haven't seen them already, and tell people about them.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.mavitunasecurity.com/netsparker/&quot; rel=&quot;nofollow&quot;&gt;NetSparker Web Application Security Scanner&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://submain.com/products/ghostdoc.aspx&quot; rel=&quot;nofollow&quot;&gt;GhostDoc&lt;/a&gt; – autogenerate comment structure for C# code&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stylecop.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;StyleCop&lt;/a&gt; – check your code against Microsoft’s style rules&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://nimblepros.com/products/atomiq.aspx&quot; rel=&quot;nofollow&quot;&gt;Atomiq&lt;/a&gt; – duplicate code detector&lt;/li&gt;&#xA;&lt;li&gt;RedGate &lt;a href=&quot;http://www.red-gate.com/products/SQL_Compare/index.htm&quot; rel=&quot;nofollow&quot;&gt;SQL Compare&lt;/a&gt; and &lt;a href=&quot;http://www.red-gate.com/products/SQL_Data_Compare/index.htm&quot; rel=&quot;nofollow&quot;&gt;SQL Data Compare&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-10-13T22:29:06.103" />
  <row Id="11843" PostTypeId="2" ParentId="11835" CreationDate="2010-10-13T22:34:19.643" Score="0" ViewCount="" Body="&lt;p&gt;Although what Mason said is true, also take into account that we do not live in a perfect (utopian) world, but in the real one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, yes, it may be age discrimination - in some countries there are also laws against that, but it is how the world works. Think of it from the position of the &quot;&lt;a href=&quot;http://www.youtube.com/watch?v=lZD4ezDbbu4&quot; rel=&quot;nofollow&quot;&gt;boss&lt;/a&gt;&quot; ... and this doesn't apply to programming jobs only, quite the contrary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're going to hire a new guy, if you're going to invest in him in terms of training, ... in other words, if you're making him &quot;your investment&quot; yes, you would like him to be as young as possible. Would you rather hire a guy who's 18, or a guy who's 30, considering they're equally qualified, know &quot;their stuff&quot; equally well, and so on. I'm guessing - no.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are also practical reasons for this:&lt;br&gt;&#xA;- 18 years old guy - knows his stuff ... the end&lt;br&gt;&#xA;- 30 years old guy - knows his stuff ... PLUS is also getting marries, wishing to move into his flat, buy a car, get a dog, kids?, ... the reasons are many (money-wise)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, the only countries where age discrimination is rather low, are the most advanced ones (Sweden), and the most in-advanced ones (India, for example), although this is not, even by a longshot, a general rule.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-13T22:34:19.643" CommentCount="15" />
  <row Id="11844" PostTypeId="1" CreationDate="2010-10-13T22:39:33.743" Score="0" ViewCount="323" Body="&lt;p&gt;I was taking a look at this question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/6587/what-counts-as-an-ide&quot;&gt;http://programmers.stackexchange.com/questions/6587/what-counts-as-an-ide&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And wondered whether Dreamweaver should be considered as such?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance!&lt;/p&gt;&#xA;" OwnerUserId="5014" LastActivityDate="2010-10-14T00:27:12.643" ClosedDate="2010-10-14T14:46:02.433" Title="Is Dreamweaver a true IDE?" Tags="&lt;ide&gt;" AnswerCount="3" />
  <row Id="11845" PostTypeId="2" ParentId="11835" CreationDate="2010-10-13T22:41:34.657" Score="2" ViewCount="" Body="&lt;p&gt;I think a big part of &quot;ageism&quot; in our field comes simply from our field being relatively new.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mean, sure, there have been COBOL programmers working in banks since the 1960s, but it really wasn't until the 1990s and 2000s that our field became huge. Hence, most people in the field are still relatively young.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As the people who are in their 20s and 30s now rise into team lead and management positions, they'll probably take their generation with them to some extent. So I think the ageism will decrease over time.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-13T22:41:34.657" />
  <row Id="11846" PostTypeId="1" AcceptedAnswerId="11864" CreationDate="2010-10-13T22:44:07.747" Score="12" ViewCount="407" Body="&lt;p&gt;I’m a long time developer (I’m 49) but rather new to object oriented development. I’ve been reading about OO since Bertrand Meyer’s Eiffel, but have done really little OO programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point is every book on OO design starts with an example of a boat, car or whatever common object we use very often, and they start adding attributes and methods, and explaining how they model the state of the object and what can be done with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So they usually go something like &quot;the better the model the better it represents the object in the application and the better it all comes out&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So far so good, but, on the other hand, I’ve found several authors that give recipes such as “a class should fit in just a single page” (I would add “on what monitor size?&quot; now that we try not to print code!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take for example a PurchaseOrder class, that has a finite state machine controlling its behavior and a collection of PurchaseOrderItem, one of the arguments here at work is that we should use a PurchaseOrder simple class, with some methods (little more than a data class), and have a PurchaseOrderFSM “expert class” that handles the finite state machine for the PurchaseOrder.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say that falls in the “Feature Envy” or “Inappropriate Intimacy” classification of Jeff Atwood's “Code Smells” post in coding horror. I’d just call it common sense. If I can issue, approve or cancel my real purchase order, then the PurchaseOrder class should have a issuePO, approvePO and cancelPO methods.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doesn’t that goes with the “maximize cohesion” and “minimize coupling” age old principles that I understand as cornerstones of OO?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, doesn’t that helps toward the maintainability of the class?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TIA for your comments!&lt;/p&gt;&#xA;" OwnerUserId="5332" LastActivityDate="2010-10-14T21:24:47.960" Title="How large is ok for a Class?" Tags="&lt;design&gt;&lt;object-oriented&gt;&lt;development&gt;" AnswerCount="11" CommentCount="4" FavoriteCount="3" />
  <row Id="11847" PostTypeId="2" ParentId="11835" CreationDate="2010-10-13T22:49:24.270" Score="2" ViewCount="" Body="&lt;p&gt;The only reason I've ever seen a company employ a younger programmer is because they have less experience and are therefore cheaper. It would be a very foolish manager that didn't employ someone that was suitable for the position because they were the wrong age. Programmers also tend to be fairly mercenary so taking on young or graduate programmers in the hope that they will become wedded to the company is also a very risky proposition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a more practical note in my previous job I was the second youngest member on the development team at 36. The oldest was 72 (I believe he is still there now at 74) with three others in their 60's and 70's. The code base we were working on was predominantly Fortran and C which was a bit of an issue as not too many new programmers want to get stuck without .Net or Java. Case in point is that within 6 months I was the youngest member on the team as the Comp Sci graduate we did have found the going a bit tough and switched to applications support. &lt;/p&gt;&#xA;" OwnerUserId="5066" LastActivityDate="2010-10-13T22:49:24.270" />
  <row Id="11848" PostTypeId="2" ParentId="11846" CreationDate="2010-10-13T22:56:49.710" Score="8" ViewCount="" Body="&lt;p&gt;In my opinion size doesn't matter (&lt;em&gt;that's what she said&lt;/em&gt;) as long as the variables, functions and methods are relevant to the class in question.&lt;/p&gt;&#xA;" OwnerUserId="3682" LastActivityDate="2010-10-13T22:56:49.710" CommentCount="4" />
  <row Id="11849" PostTypeId="2" ParentId="11846" CreationDate="2010-10-13T23:01:14.673" Score="4" ViewCount="" Body="&lt;p&gt;The biggest problem with large classes is when it comes to testing those classes, or their interaction with other classes. Large class size by itself isn't a problem, but like all smells, it indicates a &lt;em&gt;potential&lt;/em&gt; problem. Generally speaking, when the class is large, that's an indication that the class is doing more than a single class should.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For your car analogy, if class &lt;code&gt;car&lt;/code&gt; is too large, that's probably an indication that it needs to be split into class &lt;code&gt;engine&lt;/code&gt;, class &lt;code&gt;door&lt;/code&gt;s, and class &lt;code&gt;windshield&lt;/code&gt;s, etc.&lt;/p&gt;&#xA;" OwnerUserId="886" LastActivityDate="2010-10-13T23:01:14.673" CommentCount="1" />
  <row Id="11850" PostTypeId="2" ParentId="39" CreationDate="2010-10-13T23:05:12.587" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;The complexity you remove can never&#xA;  fail&quot; &#xA;  -- Burt Rutan on the  Ansari X Prize &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" LastActivityDate="2010-10-13T23:05:12.587" CommunityOwnedDate="2010-10-13T23:05:12.587" CommentCount="1" />
  <row Id="11851" PostTypeId="2" ParentId="11844" CreationDate="2010-10-13T23:13:11.090" Score="2" ViewCount="" Body="&lt;p&gt;There is no real definition of an IDE, it is a marketing term. If you want Dreamweaver to be an IDE, so be it.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-13T23:13:11.090" />
  <row Id="11852" PostTypeId="2" ParentId="11312" CreationDate="2010-10-13T23:14:15.500" Score="31" ViewCount="" Body="&lt;p&gt;A manager who takes care of the knuckle-head stuff: endless meetings, repetitive and easily answered tech-support questions, requests to &quot;fix my computer&quot;, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I was a manager, I made it clear that no one was to disturb my programmers or schedule them in a meeting without coming to me first.&lt;/p&gt;&#xA;" OwnerUserId="3473" LastActivityDate="2010-10-13T23:14:15.500" CommunityOwnedDate="2010-10-13T23:14:15.500" CommentCount="2" />
  <row Id="11853" PostTypeId="2" ParentId="11844" CreationDate="2010-10-13T23:36:42.483" Score="1" ViewCount="" Body="&lt;p&gt;Yes it is... &lt;a href=&quot;http://en.wikipedia.org/wiki/Adobe_Dreamweaver&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Adobe_Dreamweaver&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-10-13T23:36:42.483" CommentCount="4" />
  <row Id="11854" PostTypeId="2" ParentId="3535" CreationDate="2010-10-13T23:50:28.183" Score="2" ViewCount="" Body="&lt;p&gt;I never sign them because they are just outright unfair. It's one of those ridiculous measures that some non-tech guy came up with, along with logging web traffic, 6-page NDAs, etc. that are practically of no use to anyone and sometimes impossible to really enforce. To add to opinions above, there is another aspect - since you spent time perfecting a specific set of skills required by your employer, it would be IMHO very unfair to limit anyone's employment prospects in that specific field and make them look job in areas in which they are not as profficient. &lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-10-13T23:50:28.183" />
  <row Id="11855" PostTypeId="1" CreationDate="2010-10-13T23:51:49.363" Score="9" ViewCount="394" Body="&lt;p&gt;I feel the MVVM community has become overzealous like the OO programmers in the 90's - it is a misnomer MVVM is synonymous with no code. From my &lt;a href=&quot;http://stackoverflow.com/questions/3878610/why-keep-code-behind-clean-and-do-everything-in-xaml-closed&quot;&gt;closed StackOverflow question&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many times I come across posts here about someone trying to do the equivalent in XAML instead of code behind. Their only reason being they want to keep their code behind 'clean'. Correct me if I am wrong, but is not the case that:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;XAML is compiled too - into BAML - then at runtime has to be parsed into code anyway.&#xA;XAML can potentially have more runtime bugs as they will not be picked up by the compiler at compile time - from incorrect spellings - these bugs are also harder to debug.&#xA;There already is code behind - like it or not&#xA;InitializeComponent();&#xA;has to be run and the .g.i.cs file it is in contains a bunch of code though it may be hidden.&#xA;Is it purely psychological? I suspect it is developers who come from a web background and like markup as opposed to code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: I don't propose code behind instead of XAML - use both - I prefer to do my binding in XAML too - I am just against making every effort to avoid writing code behind esp in a WPF app - it should be a fusion of both to get the most out of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;UPDATE: Its not even Microsoft's idea, every example on MSDN shows how you can do it in both.&lt;/p&gt;&#xA;" OwnerUserId="5337" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-02-17T00:30:02.543" LastActivityDate="2011-02-17T16:03:04.840" Title="Why have minimal user/handwritten code and do everything in XAML?" Tags="&lt;c#&gt;&lt;wpf&gt;" AnswerCount="5" FavoriteCount="2" />
  <row Id="11856" PostTypeId="1" AcceptedAnswerId="12030" CreationDate="2010-10-14T00:01:02.487" Score="5" ViewCount="498" Body="&lt;p&gt;I was involved in a programming discussion today where I made some statements that basically assumed axiomatically that circular references (between modules, classes, whatever) are generally bad.  Once I got through with my pitch, my coworker asked, &quot;what's wrong with circular references?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've got strong feelings on this, but it's hard for me to verbalize concisely and concretely.  Any explanation that I may come up with tends to rely on other items that I too consider axioms (&quot;can't use in isolation, so can't test&quot;, &quot;unknown/undefined behavior as state mutates in the participating objects&quot;, etc.), but I'd love to hear a concise reason for why circular references are bad that don't take the kinds of leaps of faith that my own brain does, having spent many hours over the years untangling them to understand, fix, and extend various bits of code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; I am not asking about homogenous circular references, like those in a doubly-linked list or pointer-to-parent.  This question is really asking about &quot;larger scope&quot; circular references, like libA calling libB which calls back to libA.  Substitute 'module' for 'lib' if you like.  Thanks for all of the answers so far!&lt;/p&gt;&#xA;" OwnerUserId="2129" LastEditorUserId="2129" LastEditorDisplayName="" LastEditDate="2010-10-14T16:37:48.943" LastActivityDate="2010-10-14T16:37:48.943" Title="What's wrong with circular references?" Tags="&lt;best-practices&gt;&lt;code-quality&gt;&lt;style-guide&gt;" AnswerCount="10" CommentCount="1" />
  <row Id="11857" PostTypeId="2" ParentId="11846" CreationDate="2010-10-14T00:07:01.910" Score="3" ViewCount="" Body="&lt;p&gt;I don't think there is a specific definition of a class being too large. However, I would use the following guidelines to determine whether I should refactor my class or redefine the scope of the class:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Are there many variables that are independent of each other? (My personal tolerance is around 10~20 in most cases)&lt;/li&gt;&#xA;&lt;li&gt;Are there many methods designed for corner cases? (My personal tolerance is ... well, it highly depends on my mood I guess)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In regards to 1, imagine that you define your windshield size, wheel size, tail light bulb model, and 100 other details in your class &lt;code&gt;car&lt;/code&gt; . Although they are all &quot;relevant&quot; to the car, it is very difficult to trace the behavior of such class &lt;code&gt;car&lt;/code&gt;. And when someday your colleague accidentally (or, in some case, intentionally) changes the windshield size based on the tail light bulb model, it takes you forever to find out why the windshield no longer fits into your car.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In regards to 2, imagine that you try to define all the behaviors a car may have in the class &lt;code&gt;car&lt;/code&gt;, but &lt;code&gt;car::open_roof()&lt;/code&gt; will be only available for convertibles, and &lt;code&gt;car::open_rear_door()&lt;/code&gt; does not apply to those 2-door cars. Although convertibles and 2-door cars are &quot;cars&quot; by definition, implementing them in the class &lt;code&gt;car&lt;/code&gt; complicates the class. The class becomes harder to use and harder to maintain. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than these 2 guidelines, I would suggest a clear definition of the class scope. Once you define the scope, implement the class strictly based on the definition. Most of the time, people get a &quot;too large&quot; class because of the poor definition of the scope, or because of the arbitrary features added to the class&lt;/p&gt;&#xA;" OwnerUserId="4873" LastActivityDate="2010-10-14T00:07:01.910" />
  <row Id="11858" PostTypeId="2" ParentId="11844" CreationDate="2010-10-14T00:27:12.643" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;An IDE normally consists of: &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;a source code editor &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;a compiler and/or an interpreter build automation tools &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;a debugger&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Sometimes a version control system and&#xA;  various tools are integrated to&#xA;  simplify the construction of a GUI.&#xA;  Many modern IDEs also have a class&#xA;  browser, an object inspector, and a&#xA;  class hierarchy diagram, for use with&#xA;  object-oriented software development.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If Dreamweaver has them, I guess it's an IDE. I wouldn't know though, I don't use Dreamweaver.&lt;/p&gt;&#xA;" OwnerUserId="2849" LastActivityDate="2010-10-14T00:27:12.643" CommunityOwnedDate="2010-10-14T00:27:12.643" CommentCount="1" />
  <row Id="11859" PostTypeId="1" CreationDate="2010-10-14T00:27:32.127" Score="4" ViewCount="149" Body="&lt;p&gt;I've been looking online to get an idea of what people who do my job are making as far as salary. Two resources I've been looking at are Robert Half and salary.com. Going off of this, I find out that my current salary is way out of whack. Are these resources trustworthy? How can I figure out what a reasonable salary is?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt; Both the sources I mentioned have adjustments for location.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit 2&lt;/strong&gt; Both those references have fine-grained position with responsibilities. For example, someone doing the java backend has a different salary from someone who does the design end. They are not both &quot;web programmers&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1936" LastEditorUserId="1936" LastEditorDisplayName="" LastEditDate="2010-10-14T04:28:57.393" LastActivityDate="2010-10-14T04:28:57.393" Title="Can I trust 'professional' career guidance sources for salary recommendations?" Tags="&lt;salary&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="1" />
  <row Id="11860" PostTypeId="2" ParentId="11856" CreationDate="2010-10-14T00:36:29.153" Score="1" ViewCount="" Body="&lt;p&gt;Garbage collectors tend to have trouble cleaning them up, because each object is being referenced by another.&lt;/p&gt;&#xA;" OwnerUserId="4045" LastActivityDate="2010-10-14T00:36:29.153" CommentCount="8" />
  <row Id="11861" PostTypeId="2" ParentId="11856" CreationDate="2010-10-14T00:39:52.547" Score="3" ViewCount="" Body="&lt;p&gt;Hmm... that depends on what you mean by circular dependence, because there are actually some circular dependencies which I think are very beneficial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider an XML DOM -- it makes sense for every node to have a reference to their parent, and for every parent to have a list of it's children.&lt;/p&gt;&#xA;" OwnerUserId="886" LastActivityDate="2010-10-14T00:39:52.547" CommentCount="4" />
  <row Id="11862" PostTypeId="2" ParentId="11856" CreationDate="2010-10-14T00:39:55.483" Score="1" ViewCount="" Body="&lt;p&gt;I'd answer that question with another question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What situation can you give me where keeping a circular reference model is the &lt;strong&gt;best&lt;/strong&gt; model for what you're trying to build?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From my experience, the best model will pretty much never involve circular references in the way I think you mean it.  That being said, there are a lot of models where you use circular references all the time, it's just extremely basic.  Parent -&gt; Child relationships, any graph model, etc, but these are well known models and I think you're referring to something else entirely.&lt;/p&gt;&#xA;" OwnerUserId="1418" LastActivityDate="2010-10-14T00:39:55.483" CommentCount="1" />
  <row Id="11863" PostTypeId="2" ParentId="11846" CreationDate="2010-10-14T00:40:00.453" Score="1" ViewCount="" Body="&lt;p&gt;I'm with the OP on the Feature Envy classification.  Nothing irritates me more than having a bunch of classes with a bunch of methods that work on some other class's internals.  OO suggests that you model data and the operations on that data.  That doesn't mean that you put the operations in a different place from the data!  It's trying to get you to put the data and those methods &lt;em&gt;together&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the &lt;code&gt;car&lt;/code&gt; and &lt;code&gt;person&lt;/code&gt; models so prevalent, it'd be like putting the code for making the electrical connection, or even spinning the starter, into the &lt;code&gt;person&lt;/code&gt; class.  I would hope that this would be &lt;em&gt;obviously wrong&lt;/em&gt; to any experienced programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't really have an ideal class or method size, but I prefer to keep my methods and functions fitting on one screen so that I can see their entirety all in one place.  (I have Vim configured to open a 60-line window, which happens to be right around the number of lines on a printed page.)  There are places where this doesn't make a lot of sense, but it works for me.  I like to follow the same guideline for class definitions, and try to keep my files under a few &quot;pages&quot; long.  Anything over 300, 400 lines starts to feel unwieldy (mostly because the class has started taking on too many direct responsibilities).&lt;/p&gt;&#xA;" OwnerUserId="2129" LastActivityDate="2010-10-14T00:40:00.453" CommentCount="2" />
  <row Id="11864" PostTypeId="2" ParentId="11846" CreationDate="2010-10-14T00:46:12.197" Score="11" ViewCount="" Body="&lt;p&gt;A class should use the Single Responsibility Principle. Most very large classes I have seen do to many things which is why they are too large. Look at each method and code decide should it be in this class or separate, duplicate code is a hint. You might have an issuePO method but does it contain 10 lines of data access code for example? That code probably shouldn't be there.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-14T00:46:12.197" CommentCount="1" />
  <row Id="11865" PostTypeId="2" ParentId="11859" CreationDate="2010-10-14T00:51:00.500" Score="2" ViewCount="" Body="&lt;p&gt;I wouldn't trust any single source, but as a rule of thumb I've checked around 4 to 5 different sources similar to the one's you listed, and as long as they all pretty much line up I know I should be in that ball park.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I don't look to those as hard numbers.  I would definitely leave a fair amount as a discrepancy.&lt;/p&gt;&#xA;" OwnerUserId="1418" LastActivityDate="2010-10-14T00:51:00.500" />
  <row Id="11866" PostTypeId="2" ParentId="11855" CreationDate="2010-10-14T01:20:33.477" Score="7" ViewCount="" Body="&lt;p&gt;I've never heard of anyone suggesting to put everything in XAML.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, that would be a terrible idea, IMO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem, historically, came from Winforms apps having logic in their code behind that didn't belong there, because it was &lt;strong&gt;&lt;em&gt;logic&lt;/em&gt;&lt;/strong&gt;. That's where the importance of VM comes from.  It allows you to isolate the parts that tie together the View to the Model.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, the View is left to only handle what is does best, which is UI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, if you happen to have situations where your UI requires code, then by all means go for it and put it in your code behind.  However, I would say that for 95% of the scenarios out there, you will most likely be better off leaving the UI in the markup file, and if you need some code behind, it's probably some logic that you're trying to write out that is more appropriately left to the View Model.  Exceptions to this are things such as Behaviors, but they are separate animals entirely, and require a special place (i.e. not in your code behind).&lt;/p&gt;&#xA;" OwnerUserId="1418" LastActivityDate="2010-10-14T01:20:33.477" CommentCount="1" />
  <row Id="11867" PostTypeId="2" ParentId="11153" CreationDate="2010-10-14T01:33:53.727" Score="0" ViewCount="" Body="&lt;p&gt;As everyone else has stated, I think programmers will be needed for a long time.  I think the real question will be: what part of the world will you need to live in to get a programming job?  I'm seeing an uncomfortable amount of outsourcing to other countries in my industry (insurance).&lt;/p&gt;&#xA;" OwnerUserId="5342" LastActivityDate="2010-10-14T01:33:53.727" CommunityOwnedDate="2010-10-14T01:33:53.727" />
  <row Id="11868" PostTypeId="2" ParentId="11859" CreationDate="2010-10-14T01:34:37.310" Score="4" ViewCount="" Body="&lt;p&gt;Generally, I don't fully trust &lt;strong&gt;ANY&lt;/strong&gt; source other than testing the market via applying for jobs myself. Here's why: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) I don't know about other markets, but here in Australia the recruitment industry is notoriously flaky and corrupt. They deliberately inflate potential salaries by specialty to get people to move around and hop jobs. It's understandable really - this is what their source of income is. If people didn't think they could get more elsewhere, they wouldn't be looking and applying for jobs as much, so there would be less of the churn that makes them business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Salaries in our field can have fairly large ranges (depending on specialty). For example: &quot;Web Developer&quot;. In my market, you can make anything from $A35,000 for a junior position maintaining a simple website, right through to $A100,000+ if you're a senior with mentoring experience working on a complex large corporate web app using ASP.NET MVC. Still, in both of these cases the position might be described as simply &quot;Web Developer&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is why I apply around a couple of times per year and go to a few interviews (for positions which are roughly the same type/level as my current role) and see what sort of offer I can get. This gives me a &lt;strong&gt;real world&lt;/strong&gt; idea of what I'm worth.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-14T01:34:37.310" CommentCount="1" />
  <row Id="11869" PostTypeId="2" ParentId="11859" CreationDate="2010-10-14T01:36:12.647" Score="3" ViewCount="" Body="&lt;p&gt;If it does not factor in location, then it is worthless. Location is one of the biggest factors and cannot be overlooked in terms of salary.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-14T01:36:12.647" CommentCount="2" />
  <row Id="11870" PostTypeId="2" ParentId="8973" CreationDate="2010-10-14T01:39:20.517" Score="1" ViewCount="" Body="&lt;p&gt;Assember / C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You get to understand how compilers / assemblers / linkers work, you can &quot;see&quot; the software drive serial ports, VDUs etc. and you get to understand how the whole stack works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Visual Studio, Netbeans and Eclipse are great IDE's which ramp up productivity but offer no understanding as to how things actually work.&lt;/p&gt;&#xA;" OwnerUserId="4090" LastActivityDate="2010-10-14T01:39:20.517" />
  <row Id="11871" PostTypeId="2" ParentId="11846" CreationDate="2010-10-14T01:39:23.837" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I’ve found several authors that give&#xA;  recipes such as “a class should fit in&#xA;  just a single page”&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In terms of just the physical size of a class, seeing a large class is an indication of a code smell, but doesn't necessarily mean that there always are smells.  (Usually they are though)  As the pirates in the Pirates of the Caribbean would put it, this is more what you'd call &quot;guidelines&quot; than actual rules.  I'd tried strictly following the &quot;no more than one hundred LOC in a class&quot; once and the result was a LOT of unnecessary over-engineering.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;So they usually go something like &quot;the&#xA;  better the model the better it&#xA;  represents the object in the&#xA;  application and the better it all&#xA;  comes out&quot;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I usually start my designs with this.  What does this class do in the real world?  How should my class reflect this object as stated in its requirements?  We add a bit of state here, a field there, a method to work on those fields, add a few more and voila!  We've got a working class.  Now fill in the signatures with the proper implementations and we're good to go, or so you think.  Now we've got nice big class with all the functionality we need.  But the problem with this is, it doesn't take the way the real world works into account.  And by that I mean it doesn't take into account, &quot;CHANGE&quot;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason why classes are preferably split into smaller parts is that it's hard to change large classes later on without affecting the existing logic or introducing a new bug or two unintentionally or just make everything hard to reuse.  This is where refactoring, design patterns, SOLID, etc come in to play and the end result is usually a small class working on other smaller, more granular sub classes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, in your example, adding IssuePO, ApprovePO and Cancel PO into the PurchaseOrder class seems illogical.  Purchase Orders don't issue, approve or cancel themselves.  If PO should have methods, then the methods should be working on its state not on the class as a whole.  They really are just data/record classes that other classes work on.  &lt;/p&gt;&#xA;" OwnerUserId="1668" LastActivityDate="2010-10-14T01:39:23.837" />
  <row Id="11874" PostTypeId="1" CreationDate="2010-10-14T01:50:55.127" Score="8" ViewCount="206" Body="&lt;p&gt;We find it relatively easy to hire developers to work on various projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem arises when the project is finished but still needs to be supported. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We really battle to get people to join the support team. It's seen as dead-end, career-limiting, boring, second-class etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently, we get round this by getting the project team to assign some of their team to the support team for a while. Part of the assignment is to do a &quot;brain dump&quot; of the project so that the support team understands it. This works as long as the assignment is only for a fixed period.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Trying to hire people to work in support full-time is a problem. There are few applications and the calibre is not particularly high.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(The financial reality though is that support can be very lucrative for a company and once you get a reputation, you get approached by other companies to do their support even though you weren't involved in the original development.)&lt;/p&gt;&#xA;" OwnerUserId="4090" LastActivityDate="2010-11-10T18:21:47.947" Title="How to you &quot;sell&quot; support as an career option" Tags="&lt;career&gt;" AnswerCount="10" CommentCount="3" FavoriteCount="2" />
  <row Id="11878" PostTypeId="2" ParentId="2490" CreationDate="2010-10-14T02:07:20.067" Score="3" ViewCount="" Body="&lt;p&gt;I'm really enjoying several online lectures on video from programming and programming related courses on iTunes U.  Stanford and MIT both have good selections. &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-14T02:07:20.067" />
  <row Id="11879" PostTypeId="2" ParentId="11874" CreationDate="2010-10-14T02:10:10.933" Score="11" ViewCount="" Body="&lt;p&gt;Don't&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me the best option here is not to separate the developers into support and non-support in the first place.  IMHO there are three main reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;people that write things that are hard to support do not learn until they have to support these things.&lt;/li&gt;&#xA;&lt;li&gt;people doing only support will usually take the path of least resistance in correcting an error even if it hampers future work.&lt;/li&gt;&#xA;&lt;li&gt;the theoretical time savings in staying on schedule in the new development by having the separate support developers is always more than consumed by having to provide instruction or repeat work.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Within the dev team you can have people that have maintenance tasks or take an approach of letting the maintenance tasks be the training grounds for the newer team members, but if you try to sell it as the long term goal of the position you will only attract people that will give you heartburn or people that will soon be on their way out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There always needs to be a clear path to getting out of a 100% support dev role, and/or a certain percentage of new development work to keep good people interested.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You do not want to attract the sort of people that are happy in that role indefinitely and you are never going to convince otherwise good devs to take that role and keep it long term unless you are offering the kind of pay that would never have them considering a career move.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-10-14T02:10:10.933" CommentCount="2" />
  <row Id="11880" PostTypeId="2" ParentId="11874" CreationDate="2010-10-14T02:36:15.940" Score="0" ViewCount="" Body="&lt;p&gt;Support is a difficult job, no body likes to listen to people complain all day. Finding good people can take time but once you have then you need to keep them by&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Pay good money, even well above industry rates to keep good people&lt;/li&gt;&#xA;&lt;li&gt;Provide good working environment, little things like work supplied lunch and drinks help&lt;/li&gt;&#xA;&lt;li&gt;Don't cram all your support staff into a small, noisy room&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-14T02:36:15.940" />
  <row Id="11884" PostTypeId="2" ParentId="11565" CreationDate="2010-10-14T03:16:50.283" Score="1" ViewCount="" Body="&lt;p&gt;Not sure if this counts, but &lt;strong&gt;&lt;em&gt;autotools&lt;/em&gt;&lt;/strong&gt; are my nemesis. This means autoconf, automake, autotest and libtool. A lot of projects that I manage were inherited with those tools in use for build configuration, and every time I need to change something about them .. my brain starts throbbing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Classic example, right now, today I'm working on breaking some code that is shared by 10 things out into a few shared libraries. I've &lt;strong&gt;maintained&lt;/strong&gt; library code managed by autotools, but I'm drawing a complete blank on how to start a whole new project using them. I &lt;em&gt;should&lt;/em&gt; know how to do this, but I keep digging through existing code to get 'help'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;CMake, here I come.  &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-10-14T03:16:50.283" />
  <row Id="11885" PostTypeId="2" ParentId="11874" CreationDate="2010-10-14T03:55:09.043" Score="1" ViewCount="" Body="&lt;p&gt;While I agree that being in support generally does suck, many developers might actually enjoy the prestige that goes along with the &quot;ownership&quot; of the project, even if they did not write the software themselves. That programmer becomes the goto on that project, and they really do become an invaluable expert on the system. While I am primarily involved in new development at the company I work for, many of my colleagues who are more than competent actually are quite respected for their maintenance of our most mission critical software. After all, the software currently being supported is probably the one currently making money (a bird in hand is worth two in the bush).&#xA;&lt;br&gt;  I would just say that not everyone sees support as a terrible dungeon job for sub-par programmers, and I would play off that sentiment to attract more people.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-14T03:55:09.043" />
  <row Id="11886" PostTypeId="2" ParentId="11312" CreationDate="2010-10-14T03:58:27.370" Score="1" ViewCount="" Body="&lt;p&gt;A window manager with &lt;strong&gt;multiple workspaces&lt;/strong&gt; and a terminal-based window manager such as &lt;strong&gt;GNU screen&lt;/strong&gt;.  Multitasking can be very difficult without an organization system.&lt;/p&gt;&#xA;" OwnerUserId="5353" LastActivityDate="2010-10-14T03:58:27.370" CommunityOwnedDate="2010-10-14T03:58:27.370" />
  <row Id="11887" PostTypeId="1" AcceptedAnswerId="11901" CreationDate="2010-10-14T04:22:43.873" Score="5" ViewCount="158" Body="&lt;p&gt;Obviously math is important. But could a subject that emphasizes communication (like English) or one that stresses critical thinking (like physics) actually be a better indicator? Everyone is different, of course, but as a programmer, which k-12 subject did you excel at?&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-11-28T06:57:13.927" Title="Which K-12 subject could indicate a future great programmer?" Tags="&lt;career&gt;" AnswerCount="5" CommentCount="2" />
  <row Id="11888" PostTypeId="2" ParentId="2490" CreationDate="2010-10-14T04:24:14.467" Score="2" ViewCount="" Body="&lt;p&gt;There is an online &lt;a href=&quot;http://tinyurl.com/VirtualBrownBag&quot; rel=&quot;nofollow&quot;&gt;virtual brown bag&lt;/a&gt; (&lt;a href=&quot;https://sites.google.com/site/vbbwiki/&quot; rel=&quot;nofollow&quot;&gt;group wiki here&lt;/a&gt;) which happens live on a weekly basis  with &lt;a href=&quot;http://virtualaltnet.com/Recordings&quot; rel=&quot;nofollow&quot;&gt;previous recordings&lt;/a&gt; (among other recordings) available.&lt;/p&gt;&#xA;" OwnerUserId="146" LastActivityDate="2010-10-14T04:24:14.467" />
  <row Id="11889" PostTypeId="1" AcceptedAnswerId="11898" CreationDate="2010-10-14T04:31:16.933" Score="9" ViewCount="337" Body="&lt;p&gt;I code primarily in .net at work, but was wondering if home MSDN subscriptions were available/worthwhile as a tool to stay in touch with the latest technology for Microsoft development?&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2011-01-31T13:23:26.053" Title="Is a MSDN subsciption worthwhile for personal use?" Tags="&lt;tools&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="11890" PostTypeId="2" ParentId="11874" CreationDate="2010-10-14T04:37:05.807" Score="2" ViewCount="" Body="&lt;p&gt;Why not just pay the support devs 5 or 10k more than the build and forget devs? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;By attaching an extra premium to support roles; in recognition of the additional challenges of &quot;customer liasion&quot; and &quot;production code maintenance&quot;; you'll not only provide extra motivation but more importantly the roles will be seen as having more prestige. After all a higher salary must mean a more important role and even if that's not the case it will be preceived that way.&lt;/p&gt;&#xA;" OwnerUserId="5066" LastActivityDate="2010-10-14T04:37:05.807" CommentCount="1" />
  <row Id="11891" PostTypeId="2" ParentId="11887" CreationDate="2010-10-14T04:49:33.400" Score="3" ViewCount="" Body="&lt;p&gt;Besides Math, Spelling and French were a couple of subjects where I excelled.  English was brutal until I had a teacher show me the algorithm for how to write an essay.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-14T04:49:33.400" />
  <row Id="11893" PostTypeId="2" ParentId="966" CreationDate="2010-10-14T05:02:47.287" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1561585335&quot; rel=&quot;nofollow&quot;&gt;Patterns of Home&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/sHusD.jpg&quot; alt=&quot;Patterns of Home front cover&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An excellent reference on 10 patterns for the &lt;em&gt;process&lt;/em&gt; of designing homes. Instead of being a catalog of patterns for elements of a home (such as living room, alcove, patio, etc.), it's a catalog of principles that should shape the design of homes; a guide to the factors that are critical to making a home livable for its habitants.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've translated the 10 design process patterns they catalog to the design of software and it's remarkable how effective they are in helping you focus on the details relevant to big-picture thinking before you get bogged down on the specifics of designing and coding classes.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-14T05:02:47.287" CommunityOwnedDate="2011-01-06T15:42:27.030" CommentCount="3" />
  <row Id="11894" PostTypeId="2" ParentId="11887" CreationDate="2010-10-14T05:04:57.247" Score="3" ViewCount="" Body="&lt;p&gt;Actually, I think the best indicator is not any school subject at all, but whether the child is good at crafting own designs with Lego, Meccano, or something similar. As a child, I was obsessed with transforming robots, so I would build different transforming robots over and over with Lego. The insight into how internal structure works as a prerequisite for external features and overall stability is something that applies to both Lego constructions and software constructions.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-10-14T05:04:57.247" />
  <row Id="11896" PostTypeId="2" ParentId="11889" CreationDate="2010-10-14T05:14:59.680" Score="5" ViewCount="" Body="&lt;p&gt;Probably not, unless you're actively working on long-term projects and/or making money on the side.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For everything else, there's the express versions of most of the software.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-14T05:14:59.680" />
  <row Id="11897" PostTypeId="2" ParentId="370" CreationDate="2010-10-14T05:31:15.527" Score="1" ViewCount="" Body="&lt;p&gt;In my very limited experience, I think hesitation to hire older developers is mainly due to stereotypes of (a) less energy/motivation and (b) less up-to-date skillset.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The older developers who have the biggest problems are the ones who are perceived as playing into those stereotypes.  For instance, a dev in his 50s who speaks and tackles interview problems more rapidly than the average 20-year-old will probably have no problems.  A dev who speaks slowly (even if he thinks quickly), or who has unusual gaps in his knowledge (even if those gaps would be easily closed within days of hiring), is likely to have more difficulty getting hired.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now get off my closure. ;-)&lt;/p&gt;&#xA;" OwnerUserId="5068" LastActivityDate="2010-10-14T05:31:15.527" />
  <row Id="11898" PostTypeId="2" ParentId="11889" CreationDate="2010-10-14T05:41:45.890" Score="3" ViewCount="" Body="&lt;p&gt;For personal use? Most likely. A MSDN subscription usually pays for itself over time. Aside from getting the latest version of Windows for free, there's plenty of other software/perks available (Free 1 year XNA Creators Club premium subscription).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For development purposes? Unless you want to develop for Windows Mobile/Phone 7, you're better off using express versions of Visual Studio since Windows and Visual Studio Professional are the common reasons why people have MSDN subscriptions&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-10-14T05:41:45.890" CommentCount="1" />
  <row Id="11899" PostTypeId="2" ParentId="1985" CreationDate="2010-10-14T05:43:22.017" Score="0" ViewCount="" Body="&lt;p&gt;I've answered a similar question &lt;a href=&quot;http://programmers.stackexchange.com/questions/2410/whats-a-good-programming-metaphor/10986#10986&quot;&gt;in more detail&lt;/a&gt;, but the gist is, &quot;Programming is like building a factory or an assembly line.&quot;&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-14T05:43:22.017" />
  <row Id="11900" PostTypeId="2" ParentId="4" CreationDate="2010-10-14T05:44:38.863" Score="0" ViewCount="" Body="&lt;p&gt;I've answered a similar question &lt;a href=&quot;http://programmers.stackexchange.com/questions/2410/whats-a-good-programming-metaphor/10986#10986&quot;&gt;in more detail&lt;/a&gt;, but the gist is, &quot;Programming is like building a factory or an assembly line.&quot;&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-14T05:44:38.863" />
  <row Id="11901" PostTypeId="2" ParentId="11887" CreationDate="2010-10-14T05:46:08.353" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It's not a class. It's behavior.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simply look for the lazy, quiet kid who:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;When you ask him what he's thinking, reluctantly tells you that he may have come up with the  most efficient way to travel to all his classes while making the least amount of trips to  his locker yet still comfortably carry all the necessary books&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Stresses that the class travel path can probably still be improved upon and works hard to do so&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Doesn't comb his hair as time is way too valuable a resource to be consumed by such an  unimportant endeavor as outward appearance&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Carries additional educational books with him that aren't even part of his curriculum so he  can read them between classes&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Doesn't talk much but when he gets excited by an idea he can't shut up (but still maintains only minimal eye contact)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Believes he finally found the meal in the cafeteria that affords the best bridge between  cost, taste and speed of preparation, allowing him more time to read&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Never notices that one of the band girls has had a crush on him since freshman year&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Whoever you are kid, keep hacking away. But for crying out loud, talk to that girl.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, you'd be surprised how &lt;strong&gt;many good programmers played a musical instrument in school.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="3881" LastEditorUserId="3881" LastEditorDisplayName="" LastEditDate="2010-10-14T06:06:15.123" LastActivityDate="2010-10-14T06:06:15.123" CommentCount="3" />
  <row Id="11902" PostTypeId="2" ParentId="1386" CreationDate="2010-10-14T05:46:54.740" Score="1" ViewCount="" Body="&lt;p&gt;I've answered a similar question &lt;a href=&quot;http://programmers.stackexchange.com/questions/2410/whats-a-good-programming-metaphor/10986#10986&quot;&gt;in more detail&lt;/a&gt;, but the gist is, &quot;Programming is like building a factory or an assembly line.&quot;&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-14T05:46:54.740" />
  <row Id="11903" PostTypeId="2" ParentId="11312" CreationDate="2010-10-14T05:52:31.800" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Virtual Machine Software!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on what you're developing you might also want some virtual machine software like VMWare or Parallels. For instance if you develop websites and do so on a Mac there is no way to run Internet Explorer on a Mac anymore. You either have to reboot into Bootcamp, which is a huge waste of time, or you can have a tiny VM running with Windows in it that you can use to test IE. Some people claim to use &lt;a href=&quot;http://winebottler.kronenberg.org/&quot; rel=&quot;nofollow&quot;&gt;WineBottler&lt;/a&gt;, an API wrapper, to run IE but it never worked for me and the moment IE gets an update the wine bottle breaks. It's easier just to have a TinyXP distro in a VM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course you could spend a couple grand on a second computer or have a test machine set up with Windows but that's a huge pain in the rump. When we did that someone was always breaking it and then you couldn't test. Using a VM made testing instantaneous and put the power back in the programmers' hands.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-14T05:52:31.800" CommunityOwnedDate="2010-10-14T05:52:31.800" CommentCount="2" />
  <row Id="11904" PostTypeId="2" ParentId="11831" CreationDate="2010-10-14T05:53:21.927" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Lisp&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C isn't the godfather of programming. The two oldest, still widely used, languages are FORTRAN and Lisp (or rather, the family of Lisps).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I won't argue that you simply have to know C; it's the de facto standard for interfacing with everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So why Lisp? Because it will teach you many, many things: functional programming, OO programming (the Common Lisp Object System), closures, higher order functions, code-is-data/data-is-code, and it could have taught all this when most languages today weren't even invented yet.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-14T05:53:21.927" CommentCount="4" />
  <row Id="11905" PostTypeId="2" ParentId="11312" CreationDate="2010-10-14T05:57:55.660" Score="30" ViewCount="" Body="&lt;h2&gt;&lt;strong&gt;Testers&lt;/strong&gt;, &lt;strong&gt;Sysadmins&lt;/strong&gt; and &lt;strong&gt;Tech Support&lt;/strong&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Obviously in some shops these will be a given, but for smaller setups, programmers are an order of magnitude more productive if they don't have to deal with anything other than their code.&lt;/p&gt;&#xA;" OwnerUserId="5230" LastActivityDate="2010-10-14T05:57:55.660" CommunityOwnedDate="2010-10-14T05:57:55.660" CommentCount="4" />
  <row Id="11906" PostTypeId="2" ParentId="11856" CreationDate="2010-10-14T06:00:16.827" Score="9" ViewCount="" Body="&lt;p&gt;A circular reference is twice the coupling of a non-circular reference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If Foo knows about Bar, and Bar knows about Foo, you have two things that need changing (when the requirement comes that Foos and Bars must no longer know about each other). If Foo knows about Bar, but a Bar doesn't know about Foo, you can change Foo without touching Bar.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-14T06:00:16.827" />
  <row Id="11907" PostTypeId="2" ParentId="7017" CreationDate="2010-10-14T06:09:09.533" Score="3" ViewCount="" Body="&lt;p&gt;Boost! Learn Boost, it's probably the most important thing you can do to bring yourself up to modern C++.  Other than as mentioned by other people read the books by Andrei Alexandrescu, Scott Meyers, and Herb Sutter.  Also, read Herb Sutter's blog.&lt;/p&gt;&#xA;" OwnerUserId="5320" LastActivityDate="2010-10-14T06:09:09.533" />
  <row Id="11908" PostTypeId="2" ParentId="11887" CreationDate="2010-10-14T06:24:02.277" Score="4" ViewCount="" Body="&lt;p&gt;It hasn't been said yet, and it's often overlooked, but one of the best ways to grow your mind is through music. Music is math made beautiful. There are numerous studies that show learning to play an instrument helps the development of the brain and can help keep it sharp into old age.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So add music classes to your list. If your school has none, like most schools now days because &lt;strong&gt;some people&lt;/strong&gt; hate art, then go to a private tutor. It's well worth it even if it's just once a month but you need to practice every day.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-14T06:24:02.277" />
  <row Id="11909" PostTypeId="2" ParentId="11887" CreationDate="2010-10-14T06:27:09.710" Score="2" ViewCount="" Body="&lt;p&gt;I was much better at geometry than algebra which is probably why working with databases has been easier for me.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-14T06:27:09.710" CommentCount="1" />
  <row Id="11910" PostTypeId="1" AcceptedAnswerId="11913" CreationDate="2010-10-14T06:28:49.993" Score="8" ViewCount="884" Body="&lt;p&gt;For interview questions that ask for personal hobbies, should you mention a bunch of tech activities you enjoy, like how &quot;I love building java applets in my free time&quot; or should you focus on non-programming activities to show you are well rounded? Does it show passion to say programming is a hobby, or does it sound disingenuous?  I could see it going either way, so please back up your answer with some sound reasoning.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-14T11:36:55.727" Title="Answer programming for &quot;What are your interests?&quot; interview questions?" Tags="&lt;interview-questions&gt;&lt;job-interview&gt;" AnswerCount="7" />
  <row Id="11912" PostTypeId="2" ParentId="11910" CreationDate="2010-10-14T06:43:35.143" Score="6" ViewCount="" Body="&lt;p&gt;Frankly, &quot;I love building java applets in my free time&quot; sounds scary. Besides, most employers don't want tunnel-visioned one-trick ponies. I would encourage not only mentioning non-programming activities in an interview, but also actually doing them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course your professionalism is the first thing in the interview, but I think the idea of a &quot;What are your interests?&quot; question is to probe areas outside your professional capability to get some kind of big picture of you as a human being.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-14T08:21:50.730" LastActivityDate="2010-10-14T08:21:50.730" CommentCount="1" />
  <row Id="11913" PostTypeId="2" ParentId="11910" CreationDate="2010-10-14T06:48:11.997" Score="20" ViewCount="" Body="&lt;p&gt;I think you should be honest. If you do love building java applets in your free time, you should say so. If you like other non-programming activities, you should mention that too. There are varied culture among companies and programmers. Being honest takes you one step closer to work for a company whose culture matches with what you are comfortable with.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-14T06:48:11.997" CommentCount="4" />
  <row Id="11914" PostTypeId="2" ParentId="11910" CreationDate="2010-10-14T06:52:37.997" Score="2" ViewCount="" Body="&lt;p&gt;If a programming applicant didn't mention at least one techncial interest outside of work, I'd be surprised and probably probe further. I go for trying to seem well-rounded and slightly cerebral: reading, music, movies, traveling, technical self-study, but recommend avoiding inappropriate subjects like partying, porn, gambling, nude sunbathing, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes you have to be disingenuous to avoid being an idiot.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-14T06:52:37.997" />
  <row Id="11915" PostTypeId="1" AcceptedAnswerId="11922" CreationDate="2010-10-14T06:56:11.810" Score="4" ViewCount="184" Body="&lt;p&gt;I am using MAMP (just and example) to develop web applications without having to constantly upload and download via FTP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I´m sure this is the correct way to test a project but I´m no sure if I´m doing it right. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After I´m satisfied with the project I have to change in every page the MySQL databases and most of the links etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a workaround this? How should this be used?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance!&lt;/p&gt;&#xA;" OwnerUserId="5014" LastActivityDate="2010-11-23T01:55:22.980" Title="How to work in localhost properly" Tags="&lt;web-development&gt;&lt;development-process&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="0" />
  <row Id="11916" PostTypeId="2" ParentId="11910" CreationDate="2010-10-14T06:58:53.033" Score="1" ViewCount="" Body="&lt;p&gt;I scared a few interviewers mentioning I like reading mangas and playing videogames. After that I just say &quot;I like reading and swimming&quot;. Which is indeed true, but still not the &lt;em&gt;whole&lt;/em&gt; truth.&lt;/p&gt;&#xA;" OwnerUserId="4738" LastActivityDate="2010-10-14T06:58:53.033" CommentCount="2" />
  <row Id="11917" PostTypeId="2" ParentId="11312" CreationDate="2010-10-14T07:04:53.477" Score="18" ViewCount="" Body="&lt;p&gt;Every programmer needs an employer who is willing to send them to conferences (and cover expenses).&lt;/p&gt;&#xA;" OwnerUserId="2588" LastActivityDate="2010-10-14T07:04:53.477" CommunityOwnedDate="2010-10-14T07:04:53.477" />
  <row Id="11918" PostTypeId="2" ParentId="11874" CreationDate="2010-10-14T07:05:50.513" Score="0" ViewCount="" Body="&lt;p&gt;I think zappos.com has shown that a job doesn't have to be crappy when you work for a good company. The worst part of being in support is not being able to help someone. If you screwed users over with service contract fine print or shipped buggy software that won't get fixed any time soon, support will suck. They need to be encouraged to find solutions to problems; sort of like programming.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-14T07:05:50.513" />
  <row Id="11919" PostTypeId="2" ParentId="11915" CreationDate="2010-10-14T07:15:12.630" Score="1" ViewCount="" Body="&lt;p&gt;Instead of hard coding the links, use a variable to hold the base URL, then append that as a prefix. &lt;/p&gt;&#xA;" OwnerUserId="2849" LastActivityDate="2010-10-14T07:15:12.630" CommentCount="1" />
  <row Id="11920" PostTypeId="1" AcceptedAnswerId="11936" CreationDate="2010-10-14T07:17:55.620" Score="3" ViewCount="349" Body="&lt;p&gt;Well till now I knew we implement interfaces, but today somebody (you know who, guess) told me that if I write an interface, then we implement it in class. But, if it is a system Interface, lets say &lt;code&gt;INotifyPropertyChanged&lt;/code&gt;, then we call it &quot;Class A inherits Interface INotifyPropertyChanged&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Though I feel right, I am not sure and unsure how to explain it to him.&lt;/p&gt;&#xA;" OwnerUserId="2167" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2010-10-14T13:28:22.420" LastActivityDate="2010-10-14T14:28:52.737" ClosedDate="2010-10-19T05:03:37.850" Title="Do we &quot;Inherit an Interface&quot; or &quot;Implement an Interface&quot;?" Tags="&lt;programming-languages&gt;&lt;technology&gt;&lt;work&gt;&lt;software-engineering&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="11921" PostTypeId="2" ParentId="11915" CreationDate="2010-10-14T07:19:56.677" Score="0" ViewCount="" Body="&lt;p&gt;I Would have a configuration file, which contains the bits that you have to change every time, so that you will only have to make a few changes.&lt;/p&gt;&#xA;" OwnerUserId="2395" LastActivityDate="2010-10-14T07:19:56.677" />
  <row Id="11922" PostTypeId="2" ParentId="11915" CreationDate="2010-10-14T07:20:05.497" Score="5" ViewCount="" Body="&lt;p&gt;Whether it is local or not, you need a development environment outside of production. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm no PHP expert, but every page should not have its own connection code to the database. Create a class that can be reused. Your application should be able to determine if you are on local host or example.com and connect to the appropriate database.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And for hyperlinks, look into Relative URL instead of Absolute URL.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-14T07:20:05.497" CommentCount="1" />
  <row Id="11923" PostTypeId="2" ParentId="7779" CreationDate="2010-10-14T07:25:38.757" Score="0" ViewCount="" Body="&lt;p&gt;It seems you're misplacing your importance when you compare yourself to other programmers. Programmers who look down on your for lack of a CS degree are like kids who were [American] football stars in high-school and college, and struggle to make it in the NFL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get caught up in the geek version of the rat race. Focus on the skills that are more valuable to employers and will help make your career more satisfying. (Which most programmers won't do because they're in love with the technology and employing it to solve problems. Focus on solving your employer's business problems.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Inside of 3 years from when I &quot;should have&quot; gotten my degree, I was a consulting software engineer to IBM. Inside of 10 I had consulted for Verifone and Apple as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I gave &lt;a href=&quot;http://programmers.stackexchange.com/questions/8886/can-someone-find-a-job-as-a-programmer-without-an-education/11734#11734&quot;&gt;more advice&lt;/a&gt; in an answer to a similar question, but the gist of it is the most important skill to have in your career is how to sell yourself.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-14T07:25:38.757" />
  <row Id="11924" PostTypeId="2" ParentId="11920" CreationDate="2010-10-14T07:26:33.443" Score="2" ViewCount="" Body="&lt;p&gt;You can do both. You can implement an interface and you can extend (inherit) an interface.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-14T07:26:33.443" CommentCount="1" />
  <row Id="11925" PostTypeId="2" ParentId="11312" CreationDate="2010-10-14T07:36:32.257" Score="0" ViewCount="" Body="&lt;p&gt;• Surroundings that harmonize with him/her. This includes what has been mentioned before. Next to nothing cuts down productivity as bad as feeling like you're a rare type of lizard in a terrarium. If you feel at home, you get going ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;• All the Software required plus some stuff to take away the hassle:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Current IDE and Equipment&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Bug Tracker&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Wiki&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;• Project leads that know their job : Have the developers develop, the help-deskers support. Period.&lt;/p&gt;&#xA;" OwnerUserId="5361" LastActivityDate="2010-10-14T07:36:32.257" CommunityOwnedDate="2010-10-14T07:36:32.257" />
  <row Id="11926" PostTypeId="2" ParentId="7017" CreationDate="2010-10-14T07:44:24.923" Score="1" ViewCount="" Body="&lt;p&gt;In the last years C++ development has focused a lot on metaprogramming. This is an aspect that is totally absent in Java but is growing in popularity among experts C++ programmers.&#xA;I understand this is more about design than about the language itself but nowadays it can really sound strange if you claim to be a C++ developer but you've never heard anything about metaprogramming. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I'd re-start with the Stroustrup book, followed by &lt;a href=&quot;http://www.boostpro.com/mplbook/&quot; rel=&quot;nofollow&quot;&gt;this book&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also learn the boost library and stay tuned on the the C++0x standard, which grabs a few things from the boost library.&lt;/p&gt;&#xA;" OwnerUserId="4738" LastActivityDate="2010-10-14T07:44:24.923" />
  <row Id="11927" PostTypeId="2" ParentId="11910" CreationDate="2010-10-14T07:52:47.307" Score="5" ViewCount="" Body="&lt;p&gt;I've been engaged into interviewing applicants for quite some time and I also ask the question about hobbies from time to time. It is not a question to influence my decision - as a rule by that moment I already have a decision. It is more to enrich the portrait of the person I've been talking to. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I should say that it can be easily noticed if a person says &quot;I like coding in my free time&quot; meaning &quot;give me a job, see I'm true geek&quot;. It is more interesting for me to see how a person is passionate about non-job-related activities. If our interests intersect, we can even discuss the most recent news in that area :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, +1 for &quot;be honest&quot; and +1 for &quot;show your other side&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1524" LastActivityDate="2010-10-14T07:52:47.307" />
  <row Id="11928" PostTypeId="2" ParentId="11312" CreationDate="2010-10-14T08:04:38.323" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A Phone!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why hasn't this been said yet? I need a phone to communicate with my colleagues, much easier than e-mailing them sometimes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Off course, my phone has a log-out/turn-off button on it so I don't get disturbed when I want to.)&lt;/p&gt;&#xA;" OwnerUserId="4168" LastActivityDate="2010-10-14T08:04:38.323" CommunityOwnedDate="2010-10-14T08:04:38.323" CommentCount="3" />
  <row Id="11929" PostTypeId="2" ParentId="11910" CreationDate="2010-10-14T08:15:50.930" Score="1" ViewCount="" Body="&lt;blockquote&gt;should you mention a bunch of tech activities you enjoy, like how &quot;I love building java applets in my free time&quot; ?&lt;/blockquote&gt; &#xA;&#xA;&lt;p&gt;if you do that for hobby, you could mention it. but you'd better have some examples and some insights into applets. you would want to back up your statement with evidence&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;should you focus on non-programming activities to show you are well rounded?&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;if you have other hobbies, you should mention those too. you might wind up with a company that embraces that type of activity; if not a company, maybe a couple of people. having friends at your workplace is great&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Does it show passion to say programming is a hobby, or does it sound disingenuous?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;back it up if you have a programming hobby. it doesn't sound disingenuous. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;if, on the other hand, it makes &lt;strong&gt;you&lt;/strong&gt; fell that way, you can mention both types of hobbies. if you still feel that way, don't mention that hobby (but you're losing ground there...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;my cv says i like &quot;gaming with friends&quot;. some find that odd, but i like how it sounds and it's true.&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-14T08:15:50.930" />
  <row Id="11930" PostTypeId="2" ParentId="11856" CreationDate="2010-10-14T08:19:47.367" Score="3" ViewCount="" Body="&lt;p&gt;They may be bad not by themselves but as an indicator of a possible poor design. If Foo depends on Bar and Bar depends on Foo, it is justified to question why they are two instead of a unique FooBar.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-14T08:19:47.367" />
  <row Id="11931" PostTypeId="2" ParentId="11856" CreationDate="2010-10-14T08:23:27.287" Score="3" ViewCount="" Body="&lt;p&gt;Is like the &lt;a href=&quot;http://en.wikipedia.org/wiki/Chicken_or_the_egg&quot; rel=&quot;nofollow&quot;&gt;Chicken or the Egg&lt;/a&gt; problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many cases in which circular reference are inevitable and are useful but, for example, in the following case it doesn't work:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Project A depends on project B and B depends on A. A needs to be compiled to be used in B which requires B to be compiled before A which requires B to be compiled before A which ...&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-10-14T08:23:27.287" />
  <row Id="11932" PostTypeId="2" ParentId="11889" CreationDate="2010-10-14T08:29:15.000" Score="1" ViewCount="" Body="&lt;p&gt;By the way, I seem to remember that MSDN subscriptions are personal, i.e. if they got one for you at work you can use it at home as well.&lt;/p&gt;&#xA;" OwnerUserId="5364" LastActivityDate="2010-10-14T08:29:15.000" CommentCount="1" />
  <row Id="11934" PostTypeId="2" ParentId="9081" CreationDate="2010-10-14T08:43:08.480" Score="5" ViewCount="" Body="&lt;p&gt;Not really an answer, but i dont have the rep to comment yet. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been doing some mono mvc stuff on my mac (unix not linux) in the recent weeks and have found mono combined with monodevelop to be a pretty featured and useful environment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So far in a few prototype sites i havent yet ran into any deal breakers or major issues. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the next few weeks i'll be deploying some sites to linux vps servers. So i'll comment on my experience. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;[Update]&#xA;So this answer was a long time ago and its taken me a while to get some stuff up and running. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my experience: mono-2.10.1 or higher is feature complete for asp.net mvc2 (mono-2.8 had some bugs that required a source compile) and its now being used by a few cloud providers.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Running on mono-2.8 &lt;a href=&quot;http://srvd.in/&quot; rel=&quot;nofollow&quot;&gt;http://srvd.in/&lt;/a&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;AppHarbor: &lt;a href=&quot;http://unwind.apphb.com/&quot; rel=&quot;nofollow&quot;&gt;http://unwind.apphb.com/&lt;/a&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;DeployFu: &lt;a href=&quot;http://unwind.deployfu.com/&quot; rel=&quot;nofollow&quot;&gt;http://unwind.deployfu.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've found it stable and easy to develop with, like i said there were 2 annoying bugs in the 2.8 version but they are fixed in 2.10.1.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm happy to elaborate based on comments. &lt;/p&gt;&#xA;" OwnerUserId="4330" LastEditorUserId="4330" LastEditorDisplayName="" LastEditDate="2011-03-12T11:04:07.070" LastActivityDate="2011-03-12T11:04:07.070" />
  <row Id="11935" PostTypeId="2" ParentId="11915" CreationDate="2010-10-14T08:43:27.627" Score="3" ViewCount="" Body="&lt;p&gt;It's always better to have a common class which contains your database connect, database disconnect and your most used paths like &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$config['base_url'] = 'http://'.$_SERVER['HTTP_HOST'];&#xA;$config['base_path']= $_SERVER['DOCUMENT_ROOT'].'/project/';&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;These are very help full. &lt;/p&gt;&#xA;" OwnerUserId="2595" LastActivityDate="2010-10-14T08:43:27.627" />
  <row Id="11936" PostTypeId="2" ParentId="11920" CreationDate="2010-10-14T08:51:33.080" Score="18" ViewCount="" Body="&lt;p&gt;A class &lt;em&gt;implements&lt;/em&gt; an interface. Classes never inherit interfaces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An interface can &lt;em&gt;inherit&lt;/em&gt; one or more interfaces. They never implement them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To complete the picture:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Classes can inherit from a base class.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interfaces don't implement anything.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-10-14T08:51:33.080" CommentCount="1" />
  <row Id="11937" PostTypeId="2" ParentId="11856" CreationDate="2010-10-14T08:58:04.153" Score="1" ViewCount="" Body="&lt;p&gt;The term &quot;circular reference&quot; is somewhat vague, your question needs some context to answer. For example, in a doubly linked list there are references (pointers) back and forth, but it is in no way harmful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But another meaning (under .NET) is when you reference an assembly with yours. In this case, a &quot;circular reference&quot; breaks compilation. &lt;/p&gt;&#xA;" OwnerUserId="3530" LastActivityDate="2010-10-14T08:58:04.153" />
  <row Id="11938" PostTypeId="2" ParentId="11874" CreationDate="2010-10-14T09:08:16.767" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Make the support job fun and valuable to your developers.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I love to do support for the following reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I talk with people all around the world. I made many &lt;strong&gt;friends&lt;/strong&gt; like that. Few years ago, one of my customer invited me to his wedding! I used to have a map of the world in my office with pins that located them.&lt;/li&gt;&#xA;&lt;li&gt;Support is almost the best &lt;strong&gt;get gratifications&lt;/strong&gt; for your work. When you make users happy, it really makes you happier too.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Complaints are useful&lt;/strong&gt; way to improve yourself. I take any complaint seriously, and in most case, I can convert someone angry into an happy customer/user that will eventually spread the word around.&lt;/li&gt;&#xA;&lt;li&gt;It helps me &lt;strong&gt;understand&lt;/strong&gt; what customers/users need. Then I can build better software.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That's just few reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding support itself, I suggest to implement an easy to manage process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When we get a support case, we do the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If it's a reproducible bug, we add it into the backlog and give its ID to the customer/user. We also take the ID of the customer/user to notify him of resolutions and release personnaly. This is easy if you collect his email directly.&lt;/li&gt;&#xA;&lt;li&gt;If it's a problem using the software, we take this as an opportunity to improve the documentation. Any answer is written like a knowledge base article that we add in our database afterwards. It takes triple the time to write, but we don't repeat ourselve later (most users prefer browsing in KB).&lt;/li&gt;&#xA;&lt;li&gt;If it's a feature request we connect the user with the product owner directly. This is very valuable. Of course we use systems like uservoice.com, but talking with the user directly is a lot better.&lt;/li&gt;&#xA;&lt;li&gt;If it's a complaint we try to manage that outside the process. People that complaint like to be considered as important (even if the complain is trivial).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-14T09:08:16.767" CommentCount="2" />
  <row Id="11939" PostTypeId="2" ParentId="11846" CreationDate="2010-10-14T09:16:05.077" Score="0" ViewCount="" Body="&lt;p&gt;When a class definition has a couple of hundred methods, it is too big.&lt;/p&gt;&#xA;" OwnerUserId="4087" LastActivityDate="2010-10-14T09:16:05.077" />
  <row Id="11940" PostTypeId="2" ParentId="11831" CreationDate="2010-10-14T09:17:48.847" Score="2" ViewCount="" Body="&lt;p&gt;This days functional languages like &lt;strong&gt;Clojure&lt;/strong&gt; and &lt;strong&gt;Scala&lt;/strong&gt;  which OOP and also functional.&lt;br&gt;&#xA; These are upcoming languages which will take the lead in near future.&lt;br&gt;&#xA;  In my target list these two are on top&lt;/p&gt;&#xA;" OwnerUserId="2595" LastActivityDate="2010-10-14T09:17:48.847" CommentCount="1" />
  <row Id="11941" PostTypeId="2" ParentId="11312" CreationDate="2010-10-14T09:20:58.687" Score="1" ViewCount="" Body="&lt;p&gt;Many people have mentioned a quite or silent workplace which is often not only impossible but is actually almost as bad as a noisy one. I can't stand utter silence, it's creepy, so here is my inexpensive suggestion:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A white/pink noise generator&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like a clock that has a white/pink noise generator in it. A lot of them have additional sounds but the beaches have annoying bird noises and rivers make me have to pee so the best ones are the sound modes that simulate rain. My favorite is rain on a tin roof.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-14T09:20:58.687" CommunityOwnedDate="2010-10-14T09:20:58.687" />
  <row Id="11942" PostTypeId="2" ParentId="11831" CreationDate="2010-10-14T09:30:54.387" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Smalltalk&lt;/strong&gt;&lt;br&gt;&#xA;Not because you'll ever use it but because you'll learn a lot about what real object oriented programming is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Simula&lt;/strong&gt;&lt;br&gt;&#xA;Again, you'll never use it but it is the first object oriented programming language. It has concepts that still are not incorporated in modern languages today. You might be the person that writes the next hot language and you should know the roots of OOP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning these languages is a lot like learning Latin. You'll never speak Latin but knowing it helps you understand every other romance language because they're all based on it. So too with Simula and Smalltalk. All OO languages owe their existence to those two languages and knowing them will give you problem solving tools that will make you a better programmer.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-14T09:30:54.387" CommentCount="1" />
  <row Id="11943" PostTypeId="2" ParentId="11915" CreationDate="2010-10-14T09:39:41.183" Score="1" ViewCount="" Body="&lt;p&gt;I'd have a configuration file with both the database connection info AND the server URL, you could actually use&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;define('SERVER_URL', 'http://' . $_SERVER['SERVER_NAME'] . '/');&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It's what I use when I work with WordPress :)&lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-10-14T09:39:41.183" CommentCount="1" />
  <row Id="11944" PostTypeId="2" ParentId="1386" CreationDate="2010-10-14T09:43:41.080" Score="4" ViewCount="" Body="&lt;p&gt;Tell a story. Don't focus on what you do, but on how you feel when you do it, how you are passionate or bored about it, on relationships with your coworkers.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-14T09:43:41.080" />
  <row Id="11945" PostTypeId="2" ParentId="11565" CreationDate="2010-10-14T10:20:48.130" Score="1" ViewCount="" Body="&lt;p&gt;Converting between binary, hex and decimal. I always have to pull out a calculator (or ask my colleague, who can do the conversions in his head quicker and more accurately than I can do them with the calculator). &lt;/p&gt;&#xA;" OwnerUserId="2242" LastActivityDate="2010-10-14T10:20:48.130" />
  <row Id="11946" PostTypeId="2" ParentId="11565" CreationDate="2010-10-14T10:32:11.197" Score="1" ViewCount="" Body="&lt;p&gt;Actually, C++.  I use C# whenever I can but I do a lot of Windows Installer work and M$ in its infinite wisdom doesn't support custom actions written in .NET so occasionally I have to get the stone tablets out and crank out some of that horrible C++ mess.  It's not just the language, it's the archaic nature of the tools and the APIs you have to work with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I should really spend some time getting better at it but as soon as I stop I'll just forget it all again - it's like my brain actively purges the evil from its neurons to be replaced with something more healthy.  Like beer.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-14T10:32:11.197" />
  <row Id="11947" PostTypeId="2" ParentId="5921" CreationDate="2010-10-14T10:40:15.150" Score="0" ViewCount="" Body="&lt;p&gt;I use a &lt;strong&gt;dwell clicking&lt;/strong&gt; utility which saves me from making thousands of mouse clicks per day.&lt;/p&gt;&#xA;" OwnerUserId="5328" LastActivityDate="2010-10-14T10:40:15.150" CommunityOwnedDate="2011-03-26T13:37:08.243" />
  <row Id="11948" PostTypeId="2" ParentId="2909" CreationDate="2010-10-14T10:57:38.683" Score="1" ViewCount="" Body="&lt;p&gt;I've had bad RSI episodes twice in my life, mainly in my mouse hand, to the extent that I have questioned my ability to continue in my career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In both cases I was able to resume computer work eventually by:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Initially taking lots of rest (several weeks).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Assessing and optimising my work environment and routine to minimise stress on my body.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Using dwell clicking software to reduce mouse clicking (this has a huge effect).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) Avoiding excessive computer use outside work. No gaming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) Taking regular exercise breaks away from the screen (Maybe just a walk round the office, stand up and stretch, hand exercises etc.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;6) Exercise and breathing; doing yoga; attention to posture. Lightness of touch. Economy of action.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;7) Planning work to minimise computer contact time (you can do a lot of the design work, reading, and thinking away from the screen - use pen and paper).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;8) Limit computer time per day; no all night sessions, no getting carried away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why did it come back the second time? I neglected to do too many of the above, for too long. In short, I forgot about RSI and thought it wouldn't come back. I was wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;RSI can be beaten, but it does require changes to your lifestyle and work approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For people without RSI -- consier doing the above things anyway. Once RSI bites, it's already too late. It never really goes away, but you can adapt to it.&lt;/p&gt;&#xA;" OwnerUserId="5328" LastActivityDate="2010-10-14T10:57:38.683" />
  <row Id="11949" PostTypeId="2" ParentId="1985" CreationDate="2010-10-14T11:01:41.333" Score="2" ViewCount="" Body="&lt;p&gt;I don't try to explain what I do. I try to make it sound like a technology sufficiently advanced as to be indistinguishable from magic, leaving people amazed at my mystical ability to greet entire worlds by invoking mystical languages of runes and symbols far beyond their comprehension. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;People are impressed. &quot;Tell us again,&quot; they say, &quot;how you can see sharp over great distances!&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Share with us,&quot; they beseech me, &quot;the wisdom of pearls!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It does get awkward when you tell people you're proficient in python and they expect you to be able to talk with their pet snake, but hey- just hiss a bit and they'll be none the wiser. I have very rarely been pursued by an angry mob seeking to burn me as a witch, so I'd say this is a safe strategy and a lot less work than trying to explain the technicalities of the job.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-14T11:01:41.333" />
  <row Id="11950" PostTypeId="2" ParentId="2909" CreationDate="2010-10-14T11:03:21.113" Score="0" ViewCount="" Body="&lt;p&gt;I had a lot of problems with my wrist when I started my internship, probably because I used a cheap crappy mouse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Switching to a more ergonomic mouse, where the surface you hold is more vertical, fixed it.&lt;/p&gt;&#xA;" OwnerUserId="2820" LastActivityDate="2010-10-14T11:03:21.113" />
  <row Id="11951" PostTypeId="1" AcceptedAnswerId="11979" CreationDate="2010-10-14T11:07:01.190" Score="4" ViewCount="196" Body="&lt;p&gt;We have an enormous number of nested SQL stored procedures, and a number of different ways of debugging them (varying from developer to developer).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So far, our methods include:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;An optional &lt;code&gt;@debug&lt;/code&gt; parameter, that&#xA;causes the procedure to&#xA;&lt;code&gt;print&lt;/code&gt;messages as it runs (passing&#xA;the variable down to called&#xA;procedures).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Checking &lt;code&gt;@@servername&lt;/code&gt; against a&#xA;table of test server names, and&#xA;&lt;code&gt;print&lt;/code&gt;ing as above&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Writing everything the procedure&#xA;does to a log table (in production&#xA;and test)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Which of these is preferable (and why), or is there a better method we've overlooked?&lt;/p&gt;&#xA;" OwnerUserId="3526" LastActivityDate="2010-10-14T14:51:04.653" Title="Production-safe SQL stored procedure debugging" Tags="&lt;best-practices&gt;&lt;testing&gt;&lt;sql&gt;&lt;debugging&gt;" AnswerCount="4" />
  <row Id="11952" PostTypeId="2" ParentId="11831" CreationDate="2010-10-14T11:11:17.347" Score="1" ViewCount="" Body="&lt;p&gt;Learning JavaScript would be a nice idea. You can do functional programming in js too. Learn functional concepts and OOP concepts. The thing is you see the outcome soon than say in Lisp or Erlang where you need to learn for months in-order to come up with something really useful.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-10-14T11:11:17.347" CommentCount="1" />
  <row Id="11954" PostTypeId="2" ParentId="6368" CreationDate="2010-10-14T11:17:31.773" Score="0" ViewCount="" Body="&lt;p&gt;Maybe it will be like in my game? :D Who knows&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=VHFu6q1twtE&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=VHFu6q1twtE&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(note: this is an old technical prototype video showing 3D flying command consoles, it's not an advert or anything like that...)&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-10-14T11:17:31.773" />
  <row Id="11955" PostTypeId="2" ParentId="5921" CreationDate="2010-10-14T11:18:52.957" Score="0" ViewCount="" Body="&lt;p&gt;What about listening to them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you start feeling like your hands are getting tired or something take a break. No need for fancy training or anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your body talks to you, just have to know how to listen.&lt;/p&gt;&#xA;" OwnerUserId="3063" LastActivityDate="2010-10-14T11:18:52.957" CommunityOwnedDate="2011-03-26T13:37:08.243" />
  <row Id="11957" PostTypeId="2" ParentId="5921" CreationDate="2010-10-14T11:31:08.607" Score="3" ViewCount="" Body="&lt;p&gt;That is an excellent question. After 10 years of pro-development, I started getting chronic arm/hand issues - burning sensation from shoulder to finger-tips, even when not using a computer. A specialist helped me, and we made some changes:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;work environment; in particular ensuring that I had support under both arms to reduce strain; at the time, that was as simple as switching from a left/right corner desk. Now (different desk) it means a good chair with arm support&lt;/li&gt;&#xA;&lt;li&gt;keyboard; I was using an ergonomic keyb, but there was a lot of travel between keyb and mouse; switching to a Goldtouch keyb (which doesn't have a numeric keypad) removed this travel, and allows for bespoke elevation / rotation (it has a ball joint you use to set the keyboard in a position comfortable for you)&lt;/li&gt;&#xA;&lt;li&gt;mouse; I now use an Evoluent vertical mouse; this takes a little adjustment, but removes the unnatural rotation you otherwise endure with a regular mouse &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/IJvJQ.jpg&quot; alt=&quot;Evoluent vertical mouse&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/MED5M.jpg&quot; alt=&quot;Goldtouch keyboard&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1508" LastActivityDate="2010-10-14T11:31:08.607" CommunityOwnedDate="2011-03-26T13:37:08.243" />
  <row Id="11958" PostTypeId="2" ParentId="11565" CreationDate="2010-10-14T11:31:38.927" Score="1" ViewCount="" Body="&lt;h2&gt;Commenting&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Comments should really explain why I've done something - however, I usually completely forget to comment on why I've changed something (if I was fixing a bug, for instance) or put a comment which doesn't help in the slightest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then I get annoyed when I see bad comments in code :(&lt;/p&gt;&#xA;" OwnerUserId="1698" LastActivityDate="2010-10-14T11:31:38.927" CommentCount="3" />
  <row Id="11959" PostTypeId="2" ParentId="11910" CreationDate="2010-10-14T11:36:55.727" Score="1" ViewCount="" Body="&lt;p&gt;This is a question that depends a lot what kind of culture you live in, and what the corporate culture is. In some companies employees might be expected to be total nerds, in others perhaps outdoor activities are popular, or it might be more diversified. It can be impossible to know this in advance, of course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason I asked this question in interviews, was two-fold: first, it's a way to get to know a person better. Second, it's a way to get to know if the person has a passion about IT, beyond it just being a job. To me, the latter is big plus, but not a show stopper - there are many variables to take into account.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having programming or programming-related hobbies (such as hanging out on programmers.stackexchange.com or stackoverflow.com) are highly likely to be seen as positive, so if that are your hobbies, go nuts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, having unusual hobbies might be considered weird, so it might actually be beneficial to not speak up about them. However, I do not exactly know what should be considered unusual - this is highly subjective. On the other hand, you might not want to work somewhere where your hobbies are considered unusual or weird!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mostly, I believe this is asked to get to know the applicant better, and hopefully to find some common interests. Bonding with the interviewer by having common interests should definitely be seen as a plus!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And by the way, asking about hobbies in interviews can be illegal in some countries (US?), or at least can lead to asking questions that are illegal: &lt;a href=&quot;http://www.microsoft.com/business/en-us/resources/management/recruiting-staffing/dont-ask-a-job-applicant-these-questions.aspx#Dontaskajobapplicantthesequestions&quot; rel=&quot;nofollow&quot;&gt;Don't ask a job applicant these questions&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1020" LastActivityDate="2010-10-14T11:36:55.727" />
  <row Id="11960" PostTypeId="2" ParentId="11831" CreationDate="2010-10-14T11:37:09.770" Score="1" ViewCount="" Body="&lt;p&gt;I think as far as need to know, C would be it. Although I think being able to use c++ and assembly are great. If nothing else the two allow you to appreciate how little you have to do when programming in higher level languages. Also, you learn so much about how everything actually operates in your system, and you are generally able to write more meaningful code. Also, I don't know if I think the bashing of c++ is right. All it is is OO based C. The beauty of it is you almost have full control over everything that your doing, such as, do I want to pass this whole huge array to my function, or just an address to the location in memory. Pointers are something that so many other languages lack, and it seems when you are working on the nitty gritty, performance based projects, there's just no other better way to do it than c++ and asm/inline-asm I think. Another example is if you want to read through an array just using c++, it's slower than using inline asm to read the array, and both are much faster(depending on language) than the higher level languages. I don't think I've ever written a meaningful project without an array. Think about the time saved. &lt;/p&gt;&#xA;" OwnerUserId="5378" LastActivityDate="2010-10-14T11:37:09.770" />
  <row Id="11961" PostTypeId="2" ParentId="11846" CreationDate="2010-10-14T11:53:25.570" Score="1" ViewCount="" Body="&lt;p&gt;I fully agree with the use of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Single_responsibility_principle&quot; rel=&quot;nofollow&quot;&gt;single responsibility principle&lt;/a&gt; for classes but if that's followed and results in large classes then so be it. The real focus should be that individual methods and properties are not too large, &lt;a href=&quot;http://en.wikipedia.org/wiki/Cyclomatic_complexity&quot; rel=&quot;nofollow&quot;&gt;cyclomatic complexity&lt;/a&gt; should be the guide there and following that may result in many private methods that will increase the overall class size but will leave it readable and testable to a granular level. If the code remains readable then size is irrelevant.&lt;/p&gt;&#xA;" OwnerUserId="2643" LastActivityDate="2010-10-14T11:53:25.570" />
  <row Id="11962" PostTypeId="1" AcceptedAnswerId="12056" CreationDate="2010-10-14T11:54:18.650" Score="5" ViewCount="171" Body="&lt;p&gt;Are there any recruitment agencies, recruiting for either UK-based roles or telecommuting roles that specialize in the software industry?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm specifically talking about agencies whose clients (and thus the roles they fill) are within the software industry itself.&lt;/p&gt;&#xA;" OwnerUserId="4351" LastActivityDate="2010-10-15T08:57:44.127" Title="Recruitment Agencies specializing in software industry" Tags="&lt;jobs&gt;&lt;recruiting&gt;" AnswerCount="4" FavoriteCount="4" />
  <row Id="11963" PostTypeId="2" ParentId="11962" CreationDate="2010-10-14T11:58:01.760" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.client-server.com&quot; rel=&quot;nofollow&quot;&gt;http://www.client-server.com&lt;/a&gt;. They are excellent - got me a lineup of interviews for suitable roles within days and fought on my behalf to get the best result possible. Ask for Nick Boulton.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-14T11:58:01.760" />
  <row Id="11964" PostTypeId="2" ParentId="11962" CreationDate="2010-10-14T12:05:39.147" Score="2" ViewCount="" Body="&lt;p&gt;There are quite a few in the UK:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.computerfutures.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.computerfutures.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.computerpeople.co.uk/&quot; rel=&quot;nofollow&quot;&gt;http://www.computerpeople.co.uk/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.gcsltd.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.gcsltd.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.matrixrecruitment.co.uk/&quot; rel=&quot;nofollow&quot;&gt;http://www.matrixrecruitment.co.uk/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.prospectus.co.uk/&quot; rel=&quot;nofollow&quot;&gt;http://www.prospectus.co.uk/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;are the first few that spring to mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you post your CV to boards like &lt;a href=&quot;http://www.jobsite.co.uk&quot; rel=&quot;nofollow&quot;&gt;Jobsite&lt;/a&gt; or &lt;a href=&quot;http://www.jobserve.co.uk&quot; rel=&quot;nofollow&quot;&gt;JobServe&lt;/a&gt; and mark that you are interested in IT jobs your details will be picked up by these and many other agencies who will then contact you about any role they have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This may not be a good thing as you will be contacted by any and all agencies and may end up with two (or more) sending your details for the same job. Good agencies should check with you before sending details anywhere and the best will actually tell you the name of the company.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-10-14T14:49:58.990" LastActivityDate="2010-10-14T14:49:58.990" CommentCount="5" />
  <row Id="11966" PostTypeId="2" ParentId="700" CreationDate="2010-10-14T12:09:51.687" Score="4" ViewCount="" Body="&lt;p&gt;I'm not following the question since it is not clearly defined what you meant by &quot;spring&quot; (I assume Spring Framework+Hibernate) and &quot;database developer&quot; (which I assume you mean programmers that knows SQL+DBAs.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are limits to what you can do with a framework like Spring. Plus, perhaps you are wrongly referring to Spring when in reality you are referring to Hibernate. A couple of months ago I was at a Hibernate H2 presentation that included among other things, how to help scale massive OLTP systems. One of the comments the presenter made was that it was extremely difficult to use a ORM for building OLTP that handle large volumes of data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Spring and Hibernate are well and dandy for creating &lt;em&gt;from-scratch&lt;/em&gt; systems where objects are first, and the database is simply a dumb persistence device for its objects. It would beg the question why not use a OODB, a document database or a simple key/value store like jdbm or BerkeleyDB and be done with it. For OLTPs, specially for those where the database is king, data is first and data has a much longer longevity that the many systems that access it (and your app is just one more among them), you have to start playing a lot of engineering games to properly and efficiently use a ORM. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A SQL mapper like iBatis works better in such situations. In some cases, it calls to use JDBC by hand and, by hand or with simple tools, map result sets to hash maps or dynabeans or very simple POJOS (more like dumb structures or &quot;data shuttles&quot;) than anything else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is an actual divide between an object model and a relational model. A business model might be legitimately represented by both (objects and relations.) It cases where the system &lt;strong&gt;&lt;em&gt;is&lt;/em&gt;&lt;/strong&gt; the database and its relations, you want your application to be coupled to the relational model (as opposed to hide it under an ORM-managed object model.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On systems like that, you need developers that know SQL, as well as dedicated DBAs who own the health, configuration and integrity of the databases. And you need both to work closely - I know people moan at the idea, but I've been fortunate to work in places where this is the norm (and I suspect many objectors simply exaggerate communication problems between these two groups.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even in places where a ORM is a good fit, you still need to know SQL. I've not heard a single ORM authority or book author stating otherwise. In fact (and I got to find the quote which I don't have with me at the moment), one of the leading Hibernate developers explicitly states that one cannot use a ORM efficiently without knowing SQL and knowing it well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, tools and frameworks like Spring+Hibernate do not remove the need of SQL... and in many cases, they aren't the right tool to begin with.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-14T12:09:51.687" />
  <row Id="11967" PostTypeId="2" ParentId="11312" CreationDate="2010-10-14T12:12:30.930" Score="1" ViewCount="" Body="&lt;p&gt;Stimulating, not intrusive music.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://open.spotify.com/user/mildfuzz/playlist/65FSHA5cRTlEJbEAaP1hdx&quot; rel=&quot;nofollow&quot;&gt;This is my work playlist&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4499" LastActivityDate="2010-10-14T12:12:30.930" CommunityOwnedDate="2010-10-14T12:12:30.930" />
  <row Id="11968" PostTypeId="2" ParentId="11638" CreationDate="2010-10-14T12:18:08.863" Score="1" ViewCount="" Body="&lt;p&gt;At least every hour for a smoke.&lt;/p&gt;&#xA;" OwnerUserId="919" LastActivityDate="2010-10-14T12:18:08.863" />
  <row Id="11969" PostTypeId="2" ParentId="11920" CreationDate="2010-10-14T12:21:07.450" Score="0" ViewCount="" Body="&lt;p&gt;I guess if class A implements interface F, and class B inherits from A, then B inherits A's implementation of F. So you &lt;em&gt;could&lt;/em&gt; say that B &quot;inherits&quot; F, but that's not common usage.  Unless maybe you're explaining why you can cast an instance of B to F, but even then...&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-10-14T12:21:07.450" />
  <row Id="11970" PostTypeId="2" ParentId="11726" CreationDate="2010-10-14T12:29:05.850" Score="1" ViewCount="" Body="&lt;p&gt;As others have said - do not assume anything. This is especially true if its code you've written. When debugging others code you are more likely to slow down because the code is new to you or you don't trust the coder. When debugging your own code its too easy to assume you wrote it correctly, slow down!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the actual process of debugging:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Write unit tests if they don't already exists.&lt;/li&gt;&#xA;&lt;li&gt;Add appropriate logging if doesn't already exist.&lt;/li&gt;&#xA;&lt;li&gt;Then use the debugging.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Adding the unit tests and logging first more efficient that using the debugger first up. You also get the added advantage of having the unit tests to help not introducing future bugs and the logging will help debugging sessions in the future.&lt;/p&gt;&#xA;" OwnerUserId="919" LastActivityDate="2010-10-14T12:29:05.850" />
  <row Id="11972" PostTypeId="2" ParentId="11951" CreationDate="2010-10-14T12:40:36.713" Score="1" ViewCount="" Body="&lt;p&gt;I prefer #1 personally. With an &lt;code&gt;@debug&lt;/code&gt; flag you can specify if production code gets run or not, and I find &lt;code&gt;print&lt;/code&gt; messages are one of the most helpful things to use when trying to figure out what is going on.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-10-14T12:40:36.713" />
  <row Id="11973" PostTypeId="2" ParentId="11757" CreationDate="2010-10-14T12:49:10.323" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://bitbucket.org&quot; rel=&quot;nofollow&quot;&gt;bitbucket.org&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Relatively clean interface.&lt;/li&gt;&#xA;&lt;li&gt;Unlimited public repositories.&lt;/li&gt;&#xA;&lt;li&gt;Unlimited private repositories.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="919" LastEditorUserId="7458" LastEditorDisplayName="" LastEditDate="2011-02-14T11:27:40.450" LastActivityDate="2011-02-14T11:27:40.450" />
  <row Id="11974" PostTypeId="2" ParentId="11638" CreationDate="2010-10-14T12:49:13.350" Score="0" ViewCount="" Body="&lt;p&gt;I tend to get up for coffee every 15-20 minutes or so, I go get a sandwich at lunch, and most days I will take a 30-45 minute break for a few games of pool in the afternoon.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I'll also get up and walk around if I feel like I'm not getting anywhere with something.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-14T12:49:13.350" CommentCount="2" />
  <row Id="11975" PostTypeId="1" AcceptedAnswerId="11986" CreationDate="2010-10-14T12:49:34.363" Score="22" ViewCount="514" Body="&lt;p&gt;I never used an automated test mechanism in any of my projects and I feel I'm missing a lot. I want to improve myself, so I have to start tackling some issues I've been neglecting like this and trying Git instead of being stuck on SVN.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's a good way to learn TDD? I'll probably be using Eclipse to program in Java. I've heard of JUnit, but I don't know if there's anything else I should consider.&lt;/p&gt;&#xA;" OwnerUserId="3682" LastActivityDate="2010-10-14T16:36:48.040" Title="I want to start using TDD. Any tips for a beginner?" Tags="&lt;java&gt;&lt;unit-testing&gt;&lt;tdd&gt;&lt;eclipse&gt;" AnswerCount="4" FavoriteCount="12" />
  <row Id="11976" PostTypeId="2" ParentId="11951" CreationDate="2010-10-14T12:50:52.497" Score="-1" ViewCount="" Body="&lt;p&gt;One could argue that this is not possible and is the reason for seperate (QA) enviornments.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-14T12:50:52.497" CommentCount="3" />
  <row Id="11977" PostTypeId="2" ParentId="11775" CreationDate="2010-10-14T12:56:36.673" Score="1" ViewCount="" Body="&lt;p&gt;There is no doubt I fall into this trap but some refactoring is important for the future support/debugging. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When writing a major piece of code it becomes very easy to keep through lines of code into the method that's currently being written. When I've completed a major piece of code I place a &lt;strong&gt;todo: code review&lt;/strong&gt; comment. Then a few days later I'll do the code review and refactor accordingly. If I have trouble reading it a few days later what's going to happen in a few months or even years.&lt;/p&gt;&#xA;" OwnerUserId="919" LastActivityDate="2010-10-14T12:56:36.673" />
  <row Id="11978" PostTypeId="2" ParentId="11846" CreationDate="2010-10-14T13:04:22.920" Score="2" ViewCount="" Body="&lt;p&gt;Issuing a purchase order is often a complicated process that involves more than just the purchase order.  In this case, keeping the business logic in a separate class and making the purchase order simpler is probably the right thing to do.  In general, though, you're right -- you don't want &quot;data structure&quot; classes.  For example, your &quot;POManager&quot; business class' &lt;code&gt;issue()&lt;/code&gt; method should probably call the PO's &lt;code&gt;issue()&lt;/code&gt; method.  The PO can then set its status to &quot;Issued&quot; and note the issue date, while the POManager can then send a notification to accounts payable to let them know to expect an invoice, and another notification to inventory so they know there's something coming in and the expected date.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anybody who pushes &quot;rules&quot; for method/class size obviously hasn't spent enough time in the real world.  As others have mentioned, it's often a refactoring indicator, but sometimes (especially in &quot;data processing&quot;-type work) you really do need to write a class with a single method that spans 500+ lines.  Don't get hung up on it.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-10-14T13:04:22.920" CommentCount="1" />
  <row Id="11979" PostTypeId="2" ParentId="11951" CreationDate="2010-10-14T13:06:49.423" Score="3" ViewCount="" Body="&lt;p&gt;You should also consider &lt;strong&gt;SQL Server Profiler&lt;/strong&gt;.  In SQL Server Management Studio, select Tools -&gt; SQL Server Profiler.  When the profiler window opens, select File -&gt; New Trace...  (I don't know specifics about other RDBMSs, but they've got to have tools with similar functionality.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As the long-term solution, you should of course move the business logic out of stored procedures.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-14T13:06:49.423" CommentCount="6" />
  <row Id="11981" PostTypeId="1" CreationDate="2010-10-14T13:11:39.257" Score="5" ViewCount="428" Body="&lt;p&gt;So I'm thinking about doing a masters, or some other form of degree to add to my Bsc in Computer Science - and am looking for ideas on some of the more unusual options out there. It seems to be fairly easy to understand &quot;typical&quot; career paths for programmers (and indeed, I may take one of those) - but I also want to explore what other possibilities exist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So - What is this question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am looking for people who have taken their programming careers into more unusual directions, specifically with a focus on the education to get there:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Politics&lt;/li&gt;&#xA;&lt;li&gt;Law&lt;/li&gt;&#xA;&lt;li&gt;Psychology&lt;/li&gt;&#xA;&lt;li&gt;Business (ok, not that unsual, but I'll include it)&lt;/li&gt;&#xA;&lt;li&gt;Other sciences (biology, etc)&lt;/li&gt;&#xA;&lt;li&gt;Anything else you can think of&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I suspect the science option will not be the one for me - but for completness on the question I will include it. Likewise if there are some really interesting offshoots that I have not thought of lets add them in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What this question is not:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are quite a few other questions on this and other stackexchange sites dealing with similar questions - and there are quite a few answers from people detailing why they advocate staying in computers forever. I love programming. And I may continue looking for ways to grow in this industry (team lead, architect, etc). But those answers have been &lt;em&gt;well and truly&lt;/em&gt; covered. So for this question I would really like to hear from people who have gone through different routes, the career paths they ended up on, and their thoughts on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="573" LastActivityDate="2011-03-22T02:47:59.213" Title="What are some interesting masters degrees to take a programming career in an unusual and interesting direction?" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="9" CommentCount="2" FavoriteCount="2" />
  <row Id="11982" PostTypeId="2" ParentId="11920" CreationDate="2010-10-14T13:11:47.383" Score="7" ViewCount="" Body="&lt;p&gt;In object oriented languages that have both &lt;em&gt;interface&lt;/em&gt; and &lt;em&gt;class&lt;/em&gt; keywords, such as Java and C#, classes &lt;strong&gt;implement&lt;/strong&gt; interfaces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ is a special case.  It doesn't have the &lt;em&gt;interface&lt;/em&gt; syntax like C# or Java, so one way to specify interfaces in C++ is to use &lt;em&gt;pure abstract classes&lt;/em&gt;.  To implement such interface, your concrete class &lt;strong&gt;&quot;inherits&quot;&lt;/strong&gt; such &quot;interface.&quot;  This may be the source of confusion between &lt;em&gt;implement&lt;/em&gt; and &lt;em&gt;inherit&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="464" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-10-14T13:35:39.567" LastActivityDate="2010-10-14T13:35:39.567" />
  <row Id="11984" PostTypeId="2" ParentId="11962" CreationDate="2010-10-14T13:21:35.983" Score="0" ViewCount="" Body="&lt;p&gt;how about &lt;a href=&quot;http://www.dice.com&quot; rel=&quot;nofollow&quot;&gt;Dice.com&lt;/a&gt; ?&lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-10-14T13:21:35.983" />
  <row Id="11985" PostTypeId="2" ParentId="8078" CreationDate="2010-10-14T13:23:51.690" Score="0" ViewCount="" Body="&lt;p&gt;I'll second what Stephen C and James McLeod had said. You dig yourself into a hole in a bad time (the economy stinks). You earn kudos for following your career move, but it just so happens that the conditions aren't there right now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First things first. Talk to your professors - I got my first part-time development job, and then my first full-time job thanks to my professors. While in college, I built some of my experience working at labs, doing admin work and teaching assistanships. Later I went back to school for a masters, and my first full-time job after grad school was also through contacts in school. Your professors might now of part-time development opportunities in one of the school departments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But no matter what, you need to get income flowing. Otherwise, your wife will pay. My sister and I were in a similar bind (I doing CS and she doing Math.) We took turns studying full-time and part-time to help each other. Once she got her masters in Mathematics, I was in a position to go to school full-time, ditch my full-time development job and survive with part-time jobs at school (or doing stuff on the side, like working on McDonalds or Home Depot.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to do the same for your wife. Get her through school first. Then she can work full-time while you concentrate on formalizing your education. It is very, very difficult to get a job without a degree. Believe it or not, you might have had a chance to get a development job had you had a degree in Mechanical Engineering (or any engineering degree for that matter.) DoD and Defense contractors are more amenable to sponsor engineers wishing to cross-over a different science or engineering field (provided they demonstrate engineering/analytical thinking skills.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without a degree - any degree - it is tough. The market is saturated with CS and MIS graduates (many who I honestly think should have never graduated to begin with.) I was lucky that I started working on development when it was still possible to get a decent development job with just a AA or AS. Now it is very difficult... in some areas, near impossible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back to you... get income flowing and help your wife graduate. Hopefully you can get a part-time job doing development or systems administration at a computer lab, and some other part-time somewhere else to get a near full-time income... or maybe both of you can survive with a computer lab part-time income. You know your specifics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another option (if you have not cap it already) is student loans. They suck, but they surely help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wish you and your wife the best of lucks, but no matter what happens, I think you need to see it through and get a CS degree. And take some EE/CE courses along the way. CS alone nowadays only help you get e-commerce/enterprise jobs. Having a modicum of EE/CE background will open a ton of doors in the DoD/DoE/DoT and communications sectors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The one thing you have going is that you have the drive in front of adversity. That is, you are unlike those who simply go to school and graduate unencumbered. The life lessons you are going to get (if you are dedicated enough to see it through) will most likely be more valuable than anything else.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-14T13:23:51.690" />
  <row Id="11986" PostTypeId="2" ParentId="11975" CreationDate="2010-10-14T13:30:31.107" Score="11" ViewCount="" Body="&lt;p&gt;You could start by working on &lt;a href=&quot;http://codingkata.org/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;coding katas&lt;/strong&gt;&lt;/a&gt;.  Pick an algorithm (e.g. decimal-to-Roman numeral conversion, scoring a bowling game, Conway's game of life, etc.) and try to use TDD to work on the solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your solution structure will likely to be very simple (much simpler than your real-world production code): one class for the test fixture and one class containing the algorithm under test.  And the class under test &lt;strong&gt;having no dependencies&lt;/strong&gt; is another plus.  You could use the simplicity of this setup to quickly get the hang of the red-green-refactor loop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which tool you use for your TDD katas doesn't really matter as long as you stick to the principles.  However, JUnit plugin for Eclipse is very easy to use, so it's an excellent choice.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-14T13:30:31.107" />
  <row Id="11987" PostTypeId="2" ParentId="11981" CreationDate="2010-10-14T13:38:40.373" Score="1" ViewCount="" Body="&lt;p&gt;It depends what you like to do. I got an MS in CS and probably would not do that again since it turns out I like the business side of things. A MBA would have been a much better choice for me. But that's me. Where to you want your career to go?&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-14T13:38:40.373" />
  <row Id="11988" PostTypeId="2" ParentId="11856" CreationDate="2010-10-14T13:39:09.887" Score="3" ViewCount="" Body="&lt;p&gt;When you tie two bits of code together, you effectively have one large piece of code. The difficulty of maintaining a bit of code is at least the square of its size, and possibly higher.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People often look at single class (/function/file/etc.) complexity and forget that you really should be considering the complexity of the smallest separable (encapsulatable) unit. Having a circular dependency increases the size of that unit, possibly invisibly (until you start trying to change file 1 and realize that also requires changes in files 2-127).&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-10-14T13:39:09.887" />
  <row Id="11991" PostTypeId="2" ParentId="11981" CreationDate="2010-10-14T13:49:31.193" Score="3" ViewCount="" Body="&lt;p&gt;I have always thought a Law degree would be a potential interesting direction to go.  With all the IP suits now adays, I would think a lawyer with a Computer Science degree would be well equipped for such a duty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have not done this path myself as I graduated last year but it seems like a potential career direction down the road if I decide I am looking for an out from programming but want to remain in the IT world.&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-14T13:49:31.193" CommentCount="4" />
  <row Id="11993" PostTypeId="2" ParentId="11981" CreationDate="2010-10-14T13:51:41.577" Score="9" ViewCount="" Body="&lt;p&gt;I'm in a similar situation to you and I've looked at lots of courses. Some of the ones I was interested in are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cognitive Science&lt;/li&gt;&#xA;&lt;li&gt;Neuroinformatics / Computational Neuroscience&lt;/li&gt;&#xA;&lt;li&gt;Masters by research degrees&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Its mostly down to what interests you since there's such a huge range to choose from.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-10-14T13:51:41.577" CommentCount="4" />
  <row Id="11994" PostTypeId="2" ParentId="6368" CreationDate="2010-10-14T13:52:18.160" Score="2" ViewCount="" Body="&lt;p&gt;In 1990 I worked on a Unix workstation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Today I work on a Unix iMac.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I bet that in 2030 I will still work on Unix.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-14T13:52:18.160" />
  <row Id="11995" PostTypeId="2" ParentId="11312" CreationDate="2010-10-14T13:53:18.830" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Choice&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I think your motives are good, I would recommend &lt;strong&gt;not deciding&lt;/strong&gt; on an ergonomic keyboard and mouse, dual monitors, etc. One of the things that motivates good people is autonomy. I would look at getting them &quot;the best&quot; as much defined by the individuals as possible. This can easily be accomplished by giving people a budget and allowing them to spend it as they see fit. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;While the team needs to agree on some things, common source control, open concept or private offices, there are plenty of things where there no advantage to everyone having the same thing. If someone want's a different chair and they're comparable in price, why not?&lt;/p&gt;&#xA;" OwnerUserId="5290" LastActivityDate="2010-10-14T13:53:18.830" CommunityOwnedDate="2010-10-14T13:53:18.830" CommentCount="1" />
  <row Id="11996" PostTypeId="2" ParentId="11975" CreationDate="2010-10-14T13:59:09.237" Score="5" ViewCount="" Body="&lt;p&gt;Get familiar with &lt;a href=&quot;http://www.arrangeactassert.com/why-and-what-is-arrange-act-assert/&quot; rel=&quot;nofollow&quot;&gt;AAA&lt;/a&gt;, read about it, read about the issues that come with test driven development ( &lt;a href=&quot;http://msdn.microsoft.com/en-us/magazine/dd263069.aspx&quot; rel=&quot;nofollow&quot;&gt;design for testability&lt;/a&gt; vs high cost tools so that the design doesn't matter). Learn &lt;a href=&quot;http://en.wikipedia.org/wiki/Dependency_injection&quot; rel=&quot;nofollow&quot;&gt;Dependency Injection&lt;/a&gt; so that removing external dependencies for testing becomes simpler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a good overview of notes I took while reading &lt;a href=&quot;http://www.manning.com/osherove/&quot; rel=&quot;nofollow&quot;&gt;The Art of Unit Testing&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://imaginarydevelopment.blogspot.com/2010/01/unit-testing-reference.html&quot; rel=&quot;nofollow&quot;&gt;http://imaginarydevelopment.blogspot.com/2010/01/unit-testing-reference.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5388" LastActivityDate="2010-10-14T13:59:09.237" CommentCount="1" />
  <row Id="11997" PostTypeId="2" ParentId="11981" CreationDate="2010-10-14T14:05:56.180" Score="5" ViewCount="" Body="&lt;p&gt;Biomechanics - it will expose you to anatomy, physiology, physics, statistics, high speed photography, digital imaging. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is where putting all the reflective dots on people and digitizing their movements all started. The program I was in focused on sports/athletics, but it has many other applications. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-14T14:05:56.180" />
  <row Id="11998" PostTypeId="1" CreationDate="2010-10-14T14:13:51.667" Score="4" ViewCount="62" Body="&lt;p&gt;If you are developing your own architecture or heavily use anothers vendors API, how do you promote awareness to the programming staff? For example, say you use Infragistics controls for you C# winforms apps - the controls have boatloads of methods, some quirks, and a best way to use them for your application. How do you promote the knowledge transfer thru your programming staff? Wiki's? Email? Blogs?.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-14T19:37:40.123" Title="What methods to you use to promote programmer awareness in an API or custom architecture?" Tags="&lt;development-process&gt;" AnswerCount="2" />
  <row Id="11999" PostTypeId="2" ParentId="11998" CreationDate="2010-10-14T14:17:56.993" Score="2" ViewCount="" Body="&lt;p&gt;Documentation seems like the most reasonable place to inform your development team regarding implementation and usage of external libraries/API.s &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Emails get lost, are not read.&#xA;Wikis are for interlinked content.&lt;br&gt;&#xA;Blogs are usually for individuals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Documentation is for communicating evidence of something.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although I suppose you could have a meeting initially when a project starts to discuss a chosen API/library to make sure 1. everyone is on the same page and 2. no one has a concern with using it that may have been missed. &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-14T14:17:56.993" CommentCount="4" />
  <row Id="12000" PostTypeId="2" ParentId="11920" CreationDate="2010-10-14T14:28:52.737" Score="0" ViewCount="" Body="&lt;p&gt;A class can't &quot;inherit&quot; an interface because there's nothing to inherit. Never forget what an interface is: it's a &quot;&lt;strong&gt;contract&lt;/strong&gt;&quot;. An interface says when I create a class &quot;I will expose these properties and these methods in this very specific way to all who wish to call me.&quot; &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-10-14T14:28:52.737" />
  <row Id="12001" PostTypeId="2" ParentId="11975" CreationDate="2010-10-14T14:30:04.013" Score="3" ViewCount="" Body="&lt;p&gt;There is really no substitute for just grabbing a test harness (like NUnit), reading some of the literature and then getting your hands dirty. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As James T. Kirk once said, &quot;We learn by doing.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-10-14T14:30:04.013" />
  <row Id="12002" PostTypeId="2" ParentId="6368" CreationDate="2010-10-14T14:33:58.920" Score="2" ViewCount="" Body="&lt;p&gt;I think an important characteristic of Operating Systems in the future will be the use of gestures. Over time different films have given us visions of this - I remember Johny Mnemonic with the Virtual Reality shades and gloves, someone posted a picture of Minority Report with Tom Cruise and the gloves he wore but the most recent incarnation of this was probably from the Iron Man films in which the gestures are made in space without equipment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In reality I think the most concrete implementations of this to date are in MacOS and iOS, the iPad is an example of gestures on screen that superset the conventions that we have with a mouse and keyboard. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because phone and computer operating systems are converging, I see more influences of this paradigm because phones won't have a keyboard (and one wouldn't want them to). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The unix gray beards in the forum that think an OS stops at a terminal need to consider their phones, if they have one, as the new frontier for OS development.&lt;/p&gt;&#xA;" OwnerUserId="3110" LastActivityDate="2010-10-14T14:33:58.920" />
  <row Id="12003" PostTypeId="2" ParentId="11856" CreationDate="2010-10-14T14:34:03.443" Score="1" ViewCount="" Body="&lt;p&gt;In database terms, circular references with proper PK/FK relationships make it impossible to insert or delete data. If you can't delete from table a unless the record is gone from table ba and you can't delete from table b unless the record is gone form table A, you can't delete. Same with inserts. this is why many databases do not allow you to set up cascading updates or deletes if there is a circular reference becasue at some point it becomes not possible. Yes you can set up these kind of relationships with out the PK/Fk being formally declared but then you will (100% of the time in my experience) have data integrity problems. That's just bad design. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-14T14:34:03.443" />
  <row Id="12004" PostTypeId="2" ParentId="11638" CreationDate="2010-10-14T14:37:01.183" Score="1" ViewCount="" Body="&lt;p&gt;I take a break whenever I have a glitch/problem that shouldn't exist. Normally that means I'm tired and not thinking straight.  When I come back, I'll always see the stupid-simple glitch.&lt;/p&gt;&#xA;" OwnerUserId="4058" LastActivityDate="2010-10-14T14:37:01.183" />
  <row Id="12005" PostTypeId="1" CreationDate="2010-10-14T14:38:25.750" Score="4" ViewCount="147" Body="&lt;p&gt;Seriously, what's the big deal about having a few cycles in one's import graph?  I see it as a lesser evil than having super fine grained imports that make keeping track of where to look for what code an absolute nightmare.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-14T17:56:21.560" Title="Why are cyclic imports considered so evil?" Tags="&lt;modules&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="12006" PostTypeId="2" ParentId="11981" CreationDate="2010-10-14T14:39:11.170" Score="3" ViewCount="" Body="&lt;p&gt;Of things not yet mentioned above, you should consider &lt;strong&gt;Statistics&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;more and more software products come with analytical components.  Statistical analysis of huge volumes of data is becoming more and more important.&lt;/li&gt;&#xA;&lt;li&gt;a fascinating application of statistics could be the analysis of random behavior of software under test.  Adoption of practices like &lt;a href=&quot;http://continuousdelivery.com/&quot; rel=&quot;nofollow&quot;&gt;continuous delivery&lt;/a&gt; in the following decade is likely to bring it into the spotlight.&lt;/li&gt;&#xA;&lt;li&gt;statistics background is a bonus if you plan to or end up working in the financial industry&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="464" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-10-15T16:42:37.307" LastActivityDate="2010-10-15T16:42:37.307" />
  <row Id="12008" PostTypeId="2" ParentId="12005" CreationDate="2010-10-14T14:47:03.897" Score="0" ViewCount="" Body="&lt;p&gt;One reason is that it &lt;em&gt;can be&lt;/em&gt;, but &lt;em&gt;isn't always&lt;/em&gt;, a warning sign of a bad design decision somewhere.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-10-14T14:47:03.897" />
  <row Id="12009" PostTypeId="2" ParentId="11951" CreationDate="2010-10-14T14:51:04.653" Score="1" ViewCount="" Body="&lt;p&gt;I use an @debug or @test flag as the input variable for all complex stored procs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I do with it then depends on the proc.  Normally, I issue a rollback if in test mode. I may also show the results of various inserts before the rollback to see if what I expected was what I got. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I have dynamic SQL that when I use the @debug and in this case I print the sql instead of executing it, so I can check the SQL statement produced. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course I can have an @test (used only when I am affecting data and want to be sure I can roll it back) and an @debug (to print out dynamic SQl) in the same proc although I usually don't run in both modes at once. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have also used an @print to print the steps as I go if I am debugging (helps alot to see where the thing failed!) or alternatively, you can use a table variable to hold the steps processed or any error codes and then select from the table variable after the rollback when in test mode to see what actually happened. You can even insert the values from the table variable into a permanent table if you need to see the data over time (we do this for complex imports so we can show the client how often their crappy data broke the import and caused us to have to do work to fix the issue.) It's important to use a table variable and not a temp table for this because it stays in scope after the rollback, a temp table rolls back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Note the table variable temp table stuff is SQL Server specific, I don't know if this will work with other databases.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A profiler can also provvide the actual sql that was sent to the database and should be used especially if you are not using stored procs. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-14T14:51:04.653" />
  <row Id="12010" PostTypeId="1" CreationDate="2010-10-14T14:55:29.523" Score="0" ViewCount="68" Body="&lt;p&gt;Hi all&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm trying to show a menu when clicking on a Gnome panel applet (the disper-applet for managing monitor configurations for nvidia proprietary driver). The problem is that building the menu takes some time -- a second or two. Consequently, when the menu is built and shown, it pops up wherever the mouse cursor happens to be. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;    def __create_menu(self):&#xA;        self.__menu = gtk.Menu()&#xA;        self.__menu.set_title(_('Manage displays'))        &#xA;&#xA;        # Do a lot of stuff that is needed to build the menu, but takes some time...&#xA;&#xA;        self.__menu.show_all()&#xA;        self.__menu.attach_to_widget(self.__applet, None)&#xA;&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Ideally, I'd like to initially capture the position of the cursor and then in the end specify where to pop up the menu:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;    def __create_menu(self):&#xA;        # Would be nice...&#xA;        x, y = XXX.getMouseCursorPos() &#xA;&#xA;        self.__menu = gtk.Menu()&#xA;        self.__menu.set_title(_('Manage displays'))        &#xA;&#xA;        # Do a lot of stuff that is needed to build the menu, but takes some time...&#xA;&#xA;        #Position the menu where the mouse was clicked...&#xA;        self.__menu.show_all(x,y) &#xA;        self.__menu.attach_to_widget(self.__applet, None)        &#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Does anyone have a tip on how to do this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All the best&lt;/p&gt;&#xA;&#xA;&lt;p&gt;/N&lt;/p&gt;&#xA;" OwnerUserId="5394" LastActivityDate="2010-10-14T14:55:29.523" ClosedDate="2010-10-14T15:24:03.210" Title="Pyton + GTK.Menu - show the menu at a certain position" Tags="&lt;python&gt;&lt;code-related&gt;" CommentCount="2" />
  <row Id="12011" PostTypeId="2" ParentId="6368" CreationDate="2010-10-14T15:13:29.027" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Think back to 1990, what OS were you using day-to-day?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I was using &lt;a href=&quot;http://en.wikipedia.org/wiki/Atari_TOS&quot; rel=&quot;nofollow&quot;&gt;Atari TOS&lt;/a&gt; with &lt;a href=&quot;http://en.wikipedia.org/wiki/Graphical_Environment_Manager&quot; rel=&quot;nofollow&quot;&gt;GEM&lt;/a&gt;, which looks surprisingly like modern day operating systems!&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What will the next 20 years have in-store?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't know, but I do hope there will be a focus on making it secure for end-users. As it is now, it seems far too common for regular users to be infected with a multitude of trojans and viruses. This has to change.&lt;/p&gt;&#xA;" OwnerUserId="1020" LastActivityDate="2010-10-14T15:13:29.027" />
  <row Id="12012" PostTypeId="2" ParentId="6368" CreationDate="2010-10-14T15:17:09.753" Score="1" ViewCount="" Body="&lt;p&gt;Even before I saw Iron Man, I was assured that it'd be more like a personal assistant (ala Jarvis) than a personal computer. Something that can be communicated with verbally and remote keyboards for those that are unable to speak. This assumes we make some strides in NLP, but I think it's possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the keyboard/mouse will go away for the average user, most commands and all text input will be voice, and all non-verbal interaction will be via touch/gesture (includes pupil tracking).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It'll likely start as specific applications behaving this way until acceptance is high enough that it's an option in the OS, and then as the general public stops using the computer's manual interface as they used to, it'll become the default mode of operation (which implies the only real mode of operation).&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-14T15:17:09.753" />
  <row Id="12013" PostTypeId="1" AcceptedAnswerId="12040" CreationDate="2010-10-14T15:22:21.440" Score="4" ViewCount="172" Body="&lt;p&gt;I love the &lt;a href=&quot;http://pages.cs.wisc.edu/~ghost/&quot; rel=&quot;nofollow&quot;&gt;GhostScript&lt;/a&gt; library for converting things to pdfs (usually after being printed to postscript).  However it's &lt;a href=&quot;http://www.gnu.org/licenses/gpl.html&quot; rel=&quot;nofollow&quot;&gt;GPL&lt;/a&gt; and many organizations don't like it.  Are there any comparable libraries for converting to PDF on Windows that are free but not GPL, preferably LGPL or Apache licensed?&lt;/p&gt;&#xA;" OwnerUserId="4422" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-23T22:21:44.300" LastActivityDate="2010-10-24T09:04:40.167" Title="Non GPL alternative to GhostScript?" Tags="&lt;gpl&gt;&lt;libraries&gt;&lt;license&gt;" AnswerCount="3" />
  <row Id="12014" PostTypeId="2" ParentId="11981" CreationDate="2010-10-14T15:22:31.823" Score="3" ViewCount="" Body="&lt;p&gt;One area you didn't mention is education.  A Masters in Education (MSEd) combined with a BSCS degree could prepare one for doing research and development in the area of distance learning, which is a growing field.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-14T15:22:31.823" />
  <row Id="12015" PostTypeId="2" ParentId="12005" CreationDate="2010-10-14T15:24:41.353" Score="1" ViewCount="" Body="&lt;p&gt;Keeping them separate does force you to think about the system dependencies when adding new code. This is a good thing.  When you have to think about the  whole architecture, you are less likely to make a decision that tangles it up.  &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-14T15:24:41.353" />
  <row Id="12016" PostTypeId="1" AcceptedAnswerId="12033" CreationDate="2010-10-14T15:34:58.990" Score="11" ViewCount="366" Body="&lt;p&gt;I'm interested in knowing from people that already have some experience developing applications/games for macos, iphone, ipad the usual annoyances/bugs/younameit or rather lack of features/support for certain things that they consider important. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only one per post please. &lt;/p&gt;&#xA;" OwnerUserId="2849" LastActivityDate="2010-10-15T01:46:11.163" ClosedDate="2010-10-15T22:13:48.653" Title="What is the thing that bothers you most about developing for apple-related products?" Tags="&lt;iphone&gt;&lt;apple&gt;&lt;objective-c&gt;&lt;ipad&gt;" AnswerCount="9" CommentCount="3" FavoriteCount="1" />
  <row Id="12017" PostTypeId="1" AcceptedAnswerId="12028" CreationDate="2010-10-14T15:38:51.027" Score="8" ViewCount="305" Body="&lt;p&gt;I have 5 books in my &quot;read-wish-list&quot;. When do I read them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mean I could force myself to use 1 hour during working hours, but this will last for 2 days then someone will ask me to do more &quot;high priority things&quot;. One option can be reading at night, but also this has limits, even because I prefer to spend time with kids.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Could you please share your experiences?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A long term plan is needed of course, it makes no sense to read 5 books in a week, but to continuously read something. For this reason it must not be a stressful thing. It should be easy. It must not be a struggle to find time to read, but it should be done on a continuous regular basis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Somehow this question can be similar to &lt;a href=&quot;http://programmers.stackexchange.com/questions/9813/where-do-you-find-the-time&quot;&gt;THIS ONE&lt;/a&gt; but I want to ask about books. How many if you read books at work for self improvement, not to tackle a specific task?&lt;/p&gt;&#xA;" OwnerUserId="5396" LastActivityDate="2010-10-26T04:08:59.243" Title="Software development books are useful, but when to find the time to read them?" Tags="&lt;self-improvement&gt;&lt;books&gt;" AnswerCount="10" FavoriteCount="3" />
  <row Id="12018" PostTypeId="2" ParentId="12016" CreationDate="2010-10-14T15:39:16.297" Score="4" ViewCount="" Body="&lt;p&gt;I can't use C# !&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-14T15:39:16.297" CommentCount="2" />
  <row Id="12019" PostTypeId="2" ParentId="12017" CreationDate="2010-10-14T15:41:39.563" Score="3" ViewCount="" Body="&lt;p&gt;I read during lunch often. Also, I am prone to reading a chapter when there's a bit of run-time idling i.e., something's compiling or whatever.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-14T15:41:39.563" CommentCount="1" />
  <row Id="12020" PostTypeId="2" ParentId="12017" CreationDate="2010-10-14T15:52:38.327" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Use Public Transports&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every day I have a 50 minutes trip by train to reach my company and 50 minutes to come home. Thats roughly 370 hours of reading every year.&lt;/p&gt;&#xA;" OwnerUserId="4999" LastActivityDate="2010-10-14T15:52:38.327" CommentCount="3" />
  <row Id="12021" PostTypeId="1" AcceptedAnswerId="12072" CreationDate="2010-10-14T15:52:48.170" Score="16" ViewCount="944" Body="&lt;p&gt;Having recently discovered the quite excellent trainyard for iPhone, which I think requires a lot of the sequential logic a programmer uses, I wondered if anyone else had any favourite games for getting their flow going.&lt;/p&gt;&#xA;" OwnerUserId="4499" LastActivityDate="2011-01-12T17:58:32.720" CommunityOwnedDate="2011-01-12T17:58:32.720" Title="What are the best games to help stimulate a programmer?" Tags="&lt;games&gt;" AnswerCount="30" CommentCount="1" FavoriteCount="11" />
  <row Id="12022" PostTypeId="2" ParentId="12017" CreationDate="2010-10-14T15:54:55.153" Score="7" ViewCount="" Body="&lt;p&gt;Time isn't &lt;em&gt;found&lt;/em&gt;. Time is &lt;strong&gt;made&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my case, I download my TV shows so that I can watch 2-3 of them, commercial free on a saturday night. This leaves time during the week, after dinner to let my food settle in my stomach, while I sit and read for an hour.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-14T15:54:55.153" CommentCount="3" />
  <row Id="12023" PostTypeId="2" ParentId="11153" CreationDate="2010-10-14T15:55:19.203" Score="0" ViewCount="" Body="&lt;p&gt;We (my programer peers at the time) asked ourselves this back in 1995 - 1997.  The thought then was that CASE (Computer Aided Software Engineering) or visual programming languages would make it so that anyone with a concept could write a software package.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This turned out not to be far from the truth because it's terribly difficult to express ideas visually with the amount of detail necessary for all but the most trivial of programs.  The logic in 75 lines of Java or C++ code is all but incomprehensible when represented using visual objects instead of a textual programming language.  To give you an analogy, imagine writing Hamlet using Egyptian Hieroglyphics -- you wouldn't get far.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other observation I've made, elitist as it may sound, the vast population of the world just isn't good at strict formulation of ideas.  The amount of thought that goes into preventing bugs from cropping up from edge cases or emergent behaviors is quite significant.  Put another way, you might be able to get more people to write code were you to say have Programming 101 be a part of every education, but you probably wouldn't get many more people to write &lt;em&gt;working&lt;/em&gt; code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Computers have been unable to 'program themselves' yet because essentially the act of programming is 'take a task someone wants a computer to do and make the computer do it'.  Crossing the barrier from user intention to algorithm is a tough step that, for now at least, seems to be best done by a well trained and specifically skilled person or team of people.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-14T15:55:19.203" CommunityOwnedDate="2010-10-14T15:55:19.203" />
  <row Id="12024" PostTypeId="2" ParentId="12017" CreationDate="2010-10-14T16:01:53.680" Score="1" ViewCount="" Body="&lt;p&gt;Some programming books aren't amenable to this, but many are available in audio book format. I have a 1 hour (each way) commute to work and like to listen to programming audio books and pod-casts during my commute.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-14T16:01:53.680" CommentCount="1" />
  <row Id="12025" PostTypeId="2" ParentId="12017" CreationDate="2010-10-14T16:01:53.670" Score="2" ViewCount="" Body="&lt;p&gt;I read in the bath, during any meals where I'm on my own ( I tend to leave the house later than my wife and she doesn't have breakfast so a chapter over breakfast is a pretty standard thing ) and if it's something that I think of as professional development I'll often bring a book into work and read it while I'm compiling, waiting for software to run or waiting for windows to start.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-14T16:01:53.670" />
  <row Id="12026" PostTypeId="2" ParentId="6368" CreationDate="2010-10-14T16:02:29.177" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;--Task Oriented--&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to think that it will be a system that figures out what I want to achieve and then to achieve it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;OS History&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First Generation: Process oriented. Programs were proceedural, OS was application centric.&#xA;Second Generation: Data oriented. Programs were object-oriented, OS was document centric.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;OS Future&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next Generation: Task oriented. Programs will be goal-oriented, OS will be project centric.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, instead of focusing on &quot;the email program&quot; or &quot;the email&quot; the OS will help me focus on &quot;communicating&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Serious Example&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Google. I type in a question. It guesses my intentions and gives me the answer.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-10-14T16:02:29.177" />
  <row Id="12027" PostTypeId="2" ParentId="12016" CreationDate="2010-10-14T16:05:16.793" Score="9" ViewCount="" Body="&lt;p&gt;I have to use Objective-C to develop&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-10-14T16:05:16.793" />
  <row Id="12028" PostTypeId="2" ParentId="12017" CreationDate="2010-10-14T16:05:55.607" Score="4" ViewCount="" Body="&lt;p&gt;I think you need to protect some of your work time for reading. I work at a disorganization where tasks are frequently called &quot;high priority&quot;, but that usually means they are letting me know about a project at the last minute. I think your office should want you to spend some time reading and improving your skills, so time should be available during your work hours. Otherwise, during lunch can be a good time. If the book concerns something more personal than work related, then you should set aside an hour a few nights a week to read.&lt;/p&gt;&#xA;" OwnerUserId="5399" LastActivityDate="2010-10-14T16:05:55.607" CommentCount="2" />
  <row Id="12029" PostTypeId="2" ParentId="11726" CreationDate="2010-10-14T16:06:36.637" Score="0" ViewCount="" Body="&lt;p&gt;If you've narrowed it down to a small region, but can't still can't spot the error, try the 'view code + assembly' option of your debugger.  Knowing enough ASM to say &quot;there should be a branch here&quot; or &quot;why is it only copying the low word?&quot; will often pinpoint the coding error.  &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-14T16:06:36.637" />
  <row Id="12030" PostTypeId="2" ParentId="11856" CreationDate="2010-10-14T16:06:46.997" Score="9" ViewCount="" Body="&lt;p&gt;There are a great &lt;em&gt;many&lt;/em&gt; things wrong with circular references:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Circular &lt;strong&gt;class&lt;/strong&gt; references create high &lt;strong&gt;coupling&lt;/strong&gt;; &lt;em&gt;both&lt;/em&gt; classes must be recompiled every time &lt;em&gt;either&lt;/em&gt; of them is changed.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Circular &lt;strong&gt;assembly&lt;/strong&gt; references &lt;strong&gt;prevent static linking&lt;/strong&gt;, because B depends on A but A cannot be assembled until B is complete.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Circular &lt;strong&gt;object&lt;/strong&gt; references can &lt;strong&gt;crash&lt;/strong&gt; naïve recursive algorithms (such as serializers, visitors and pretty-printers) with stack overflows.  The more advanced algorithms will have cycle detection and will merely fail with a more descriptive exception/error message.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Circular &lt;strong&gt;object&lt;/strong&gt; references also make &lt;strong&gt;dependency injection impossible&lt;/strong&gt;, significantly reducing the &lt;strong&gt;testability&lt;/strong&gt; of your system.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Objects with a very &lt;strong&gt;large&lt;/strong&gt; number of circular references are often &lt;a href=&quot;http://en.wikipedia.org/wiki/God_object&quot; rel=&quot;nofollow&quot;&gt;God Objects&lt;/a&gt;.  Even if they are not, they have a tendency to lead to &lt;a href=&quot;http://en.wikipedia.org/wiki/Spaghetti_code&quot; rel=&quot;nofollow&quot;&gt;Spaghetti Code&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Circular &lt;strong&gt;entity&lt;/strong&gt; references (especially in databases, but also in domain models) prevent the use of &lt;strong&gt;non-nullability constraints&lt;/strong&gt;, which may eventually lead to data corruption or at least inconsistency.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Circular references &lt;strong&gt;in general&lt;/strong&gt; are simply &lt;strong&gt;confusing&lt;/strong&gt; and drastically increase the cognitive load when attempting to understand how a program functions.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Please, think of the children; avoid circular references whenever you can.&lt;/p&gt;&#xA;" OwnerUserId="3249" LastActivityDate="2010-10-14T16:06:46.997" CommentCount="1" />
  <row Id="12031" PostTypeId="2" ParentId="11312" CreationDate="2010-10-14T16:09:12.007" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;h3&gt;supervisor/manager&lt;/h3&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;who cares about you as a person &lt;/li&gt;&#xA;&lt;li&gt;who encourages laughter&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5400" LastActivityDate="2010-10-14T16:09:12.007" CommunityOwnedDate="2010-10-14T16:09:12.007" />
  <row Id="12032" PostTypeId="2" ParentId="12013" CreationDate="2010-10-14T16:11:23.773" Score="0" ViewCount="" Body="&lt;p&gt;Why not use... GhostScript? Under the &lt;a href=&quot;http://www.artifex.com/downloads/doc/Public.htm&quot; rel=&quot;nofollow&quot;&gt;Aladdin Free Public Licence&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's as simple to install as &lt;code&gt;portinstall print/ghostscript-afpl&lt;/code&gt; in FreeBSD; presumably other systems have it as easy.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-14T16:11:23.773" CommentCount="2" />
  <row Id="12033" PostTypeId="2" ParentId="12016" CreationDate="2010-10-14T16:12:19.140" Score="11" ViewCount="" Body="&lt;p&gt;XCode, it's notepad with syntax coloring and a compiler. Horrible developer experience, unlike several top Java IDE's and Visual Studio.&lt;/p&gt;&#xA;" OwnerUserId="1801" LastActivityDate="2010-10-14T16:12:19.140" CommentCount="7" />
  <row Id="12034" PostTypeId="2" ParentId="12017" CreationDate="2010-10-14T16:12:55.863" Score="4" ViewCount="" Body="&lt;p&gt;Here's my plan that's working out well:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Stop watching TV &amp;amp; Movies/DVDs.  Started this a few years ago and watch around two movies a  month.  Lots of time freed up.&lt;/li&gt;&#xA;&lt;li&gt;Stop reading about things that &lt;em&gt;don't&lt;/em&gt; affect your daily life.  For example, national news, world economics, sports, Reddit/Digg, etc.  Substitute instead information sources directly relevant to your life (programming, hobbies, community, etc.) such as blogs and podcasts and Stack Exchange topics &lt;/li&gt;&#xA;&lt;li&gt;Get into eBooks.  Kindle, ORA Safari, etc.&lt;/li&gt;&#xA;&lt;li&gt;Get yourself a good multimedia reader that handles eBooks plus your targeted information.  Something like an Android phone or an iTouch that combines eReaders, RSS readers, podcast clients, etc.&lt;/li&gt;&#xA;&lt;li&gt;Double-up on time.  For example, read during lunch, watch podcasts or educational videos while working out, take the bus and read while commuting.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've been extremely happy with these changes in my life.  I'm better educated, I'm happier because I'm reading less about angst &amp;amp; catastrophe and more about progress and accomplishment.  I have more time with my family and I lead a more active life physically and mentally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, you won't be able to discuss world events or TV episodes or movies with friends or at parties.  But you said you were a programmer, so by definition you don't have friends or parties to worry about :-)&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-14T16:12:55.863" CommentCount="1" />
  <row Id="12035" PostTypeId="2" ParentId="12021" CreationDate="2010-10-14T16:13:40.543" Score="7" ViewCount="" Body="&lt;p&gt;Does &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt; count as a game?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, a bit more... programming-y than more usual games.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-14T16:13:40.543" CommunityOwnedDate="2011-01-12T17:58:32.720" CommentCount="3" />
  <row Id="12036" PostTypeId="2" ParentId="12016" CreationDate="2010-10-14T16:15:18.197" Score="6" ViewCount="" Body="&lt;p&gt;I have to jump through a whole pile of crypto hoops just to write a simple app for my own use... and when the provisioning profile expires, I'll have to do it all over again!&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-14T16:15:18.197" />
  <row Id="12037" PostTypeId="2" ParentId="12021" CreationDate="2010-10-14T16:19:06.267" Score="3" ViewCount="" Body="&lt;p&gt;Any good RPG games and sudoku.&lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-10-14T16:19:06.267" CommunityOwnedDate="2011-01-12T17:58:32.720" CommentCount="5" />
  <row Id="12039" PostTypeId="2" ParentId="11726" CreationDate="2010-10-14T16:23:58.980" Score="1" ViewCount="" Body="&lt;p&gt;Know your tools.  For example, Visual Studio's debugger has an awesome feature called &lt;a href=&quot;http://www.c-sharpcorner.com/UploadFile/satisharveti/tracepoints08112009072039AM/tracepoints.aspx&quot; rel=&quot;nofollow&quot;&gt;TracePoints&lt;/a&gt; that are like breakpoints but instead of stopping your code instead inserts a trace statement into the debug output.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reading books or taking a class on how to use your debugger is highly recommended.  I took a couple of classes and read a few books by John Robbins that made a big difference in my effectiveness as a debugger.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-14T16:23:58.980" />
  <row Id="12040" PostTypeId="2" ParentId="12013" CreationDate="2010-10-14T16:25:51.940" Score="2" ViewCount="" Body="&lt;p&gt;Or call a separate process linked against it via a pipe.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-10-14T16:25:51.940" />
  <row Id="12041" PostTypeId="2" ParentId="12021" CreationDate="2010-10-14T16:27:44.660" Score="7" ViewCount="" Body="&lt;p&gt;I don't think it matters really and is highly based on personal preference. As long as it gets my mind off of whatever I'm working on, it's good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, the games that I play spark my imagination and inspire me to make software of the same quality rather than flexing my programming-related skills. As a result, many triple-A games fit that need.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Starcraft 2&lt;/li&gt;&#xA;&lt;li&gt;WoW&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These inspire me to listen to my users.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;StarWars The Force Unleashed&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I was always interested in integrating upcoming technologies in an interesting way (&lt;a href=&quot;http://www.naturalmotion.com/euphoria.htm&quot; rel=&quot;nofollow&quot;&gt;Euphoria&lt;/a&gt; and &lt;a href=&quot;http://www.pixelux.com/&quot; rel=&quot;nofollow&quot;&gt;Digital Molecular Matter&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Left 4 Dead (1/2)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These really foster collaboration and team play more than other games I've played.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So in summary, I don't try to work on/develop skills through games, but I get inspired to improve my work through the games I play.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-10-15T16:38:38.900" LastActivityDate="2010-10-15T16:38:38.900" CommunityOwnedDate="2011-01-12T17:58:32.720" CommentCount="7" />
  <row Id="12042" PostTypeId="2" ParentId="3450" CreationDate="2010-10-14T16:28:32.020" Score="2" ViewCount="" Body="&lt;p&gt;I break out the messier subexpressions, or all of them, as bool variables.  Then the top-level boolean logic of the 'if' statement can be made clear.  In the kind of work I do, it's not always several things ORed or ANDed.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;bool goodblah = some_mess &amp;lt; whatever;&#xA;bool frobnacious = messy_crud != junky_expression;&#xA;bool yetanother = long_winded_condition;&#xA;&#xA;if (goodblah || (frobnacious &amp;amp;&amp;amp; yetanother))   {&#xA;    ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This is especially good in a debugger, where I can look at all the bools before executing the 'if'.&lt;/p&gt;&#xA;" OwnerUserId="4280" LastActivityDate="2010-10-14T16:28:32.020" />
  <row Id="12043" PostTypeId="2" ParentId="12017" CreationDate="2010-10-14T16:29:28.590" Score="2" ViewCount="" Body="&lt;p&gt;I would rather the people in my team sit and a read a book for a while then produce better, code than write lots of worse code immediately. I have generally found that other parts of the business can't recognise what a busy programmer looks like. If you want to you can (and I think should) do research as a work activity. If you are in an organisation that doesn't understand that engineering involves research, and that is preventing you from doing it, then I would seriously consider what exactly the organisation is offering you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could try and make it part of your team's normal activities. Perhaps even set some time aside to disscuss if and how to integrate the new ideas and technologies into your products.&lt;/p&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-10-14T16:29:28.590" CommentCount="2" />
  <row Id="12044" PostTypeId="2" ParentId="5560" CreationDate="2010-10-14T16:32:05.610" Score="4" ViewCount="" Body="&lt;p&gt;The biggest drawback I've seen is not with TDD itself but with practitioners. They take a dogmatic and zealot approach &lt;strong&gt;&lt;em&gt;where everything must be tested&lt;/em&gt;&lt;/strong&gt;. Sometimes (many times that is), that is not necessary. Also, it might not be practical (.ie. introducing an organization to TDD.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good engineer finds trade-offs and applies the right balance of when/where/how to apply test-first. Also, if you find yourself constantly spending much more time developing tests instead of actual code (by a factor of 2-3 or more), you are in trouble.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, be pragmatic and reasonable with TDD (or anything in software development for that matter.)&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-14T16:32:05.610" />
  <row Id="12045" PostTypeId="2" ParentId="12021" CreationDate="2010-10-14T16:33:10.057" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://retrocode.blogspot.com/2010/10/core-war-king-of-programming-games.html&quot; rel=&quot;nofollow&quot;&gt;Core War - The King of Programming Games&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The aim of a &lt;a href=&quot;http://programminggames.org/&quot; rel=&quot;nofollow&quot;&gt;programming game&lt;/a&gt; is to write a short program that competes towards a goal, usually destroying all opponents or capturing a flag.&lt;/p&gt;&#xA;" OwnerUserId="2913" LastActivityDate="2010-10-14T16:33:10.057" CommunityOwnedDate="2011-01-12T17:58:32.720" CommentCount="3" />
  <row Id="12046" PostTypeId="2" ParentId="12021" CreationDate="2010-10-14T16:34:18.603" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://armorgames.com/play/2205/light-bot&quot; rel=&quot;nofollow&quot;&gt;LightBot&lt;/a&gt; is a game where you have to write programs for a robot so they can complete a level. It's a cool way to show how problem solving works to non-programmers, and it's a cool way to use basic programming concepts in a new fashion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also a sequel now, &lt;a href=&quot;http://armorgames.com/play/6061/light-bot-20&quot; rel=&quot;nofollow&quot;&gt;LightBot 2.0&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-10-14T16:34:18.603" CommunityOwnedDate="2011-01-12T17:58:32.720" CommentCount="2" />
  <row Id="12047" PostTypeId="2" ParentId="11975" CreationDate="2010-10-14T16:36:48.040" Score="1" ViewCount="" Body="&lt;p&gt;I highly recommend this book: &lt;a href=&quot;http://www.growing-object-oriented-software.com/&quot; rel=&quot;nofollow&quot;&gt;Growing Object-Oriented Software Guided by Tests&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has a worked example running through the book and provides a very coherent view of when test should be created, what they ought to contain and how they should be constructed and refactored.&lt;/p&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-10-14T16:36:48.040" CommentCount="1" />
  <row Id="12048" PostTypeId="2" ParentId="1257" CreationDate="2010-10-14T16:37:26.883" Score="1" ViewCount="" Body="&lt;p&gt;I was a professor, and there were a few times when I was ill-prepared and had to squirm through a class.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, your question hits a nerve. Quality-control in university teaching is not what it could be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My big gripe is when teachers say and defend things that are conventional but wrong, such as much of what they say about performance, and students take it as gospel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you do? Sadly the professor has the power, since he's being paid several hundred dollars, by your parents or government, to &quot;enlighten&quot; you and give you a grade. @Walter and @Brian gave good answers. I would only add that you should get your information from more than one source.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also consider the old adage &quot;Believe half of what you see, and none of what you hear&quot;.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-10-14T16:37:26.883" />
  <row Id="12049" PostTypeId="2" ParentId="12016" CreationDate="2010-10-14T16:44:28.807" Score="7" ViewCount="" Body="&lt;p&gt;What bothers me the most? The fact that I am developing for apple-related products.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-14T16:44:28.807" />
  <row Id="12050" PostTypeId="2" ParentId="12016" CreationDate="2010-10-14T16:47:32.420" Score="15" ViewCount="" Body="&lt;p&gt;That I have to buy an overpriced Mac.&lt;/p&gt;&#xA;" OwnerUserId="1875" LastActivityDate="2010-10-14T16:47:32.420" />
  <row Id="12053" PostTypeId="2" ParentId="12021" CreationDate="2010-10-14T16:54:05.343" Score="1" ViewCount="" Body="&lt;p&gt;Anything that allows me to put work on a low priority background thread. It is amazing how many problems I have solved this way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lately it's been Angry Birds, Cut the Rope, and Pixel Junk Monsters Deluxe.&lt;/p&gt;&#xA;" OwnerUserId="749" LastActivityDate="2010-10-14T16:54:05.343" CommunityOwnedDate="2011-01-12T17:58:32.720" />
  <row Id="12054" PostTypeId="2" ParentId="11874" CreationDate="2010-10-14T16:55:10.837" Score="3" ViewCount="" Body="&lt;p&gt;If you think that support is a second-rate job, you'll likely have trouble hiring people for it.  If you treat it as a career-limiting and dead-end job, you won't get good applicants.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Support isn't generally seen as as much fun as new development, and if you've got separate development and support teams the support teams have to take what development gives them, which is often not fun.  (I worked at a place once where R&amp;amp;D would hand us some software that did something cool, but which typically needed redesign to be production-quality, and we didn't get enough time to do that, for political reasons.  That wasn't fun.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If support really is business-critical, you have to treat it as such.  If you insist on having separate support teams, and it's important to have good ones, you need to address these issues.  Make sure there's a career path up.  Publicize the money you're making from support, partly for their self-esteem, partly to make other people realize their value, partly so they can put dollar figures for their activities on their resumes.  Establish standards, and allow the support teams some input in whether a project is ready to go from development to support.  Since the job is less fun and possibly more important, pay them better.  (I'd have more sympathy with managers who complain &quot;we can't get the applicants we need&quot; if it didn't usually translate as &quot;we can't the the applicants we need cheap&quot;.)&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-14T16:55:10.837" />
  <row Id="12055" PostTypeId="2" ParentId="12021" CreationDate="2010-10-14T16:57:17.797" Score="1" ViewCount="" Body="&lt;p&gt;I like tower defense style games.  I've played a lot of &lt;strong&gt;Robo Defense&lt;/strong&gt; on my Android phone and it's great.  Even better when you envision that the &quot;enemy&quot; are your coworkers, managers, etc. and you need to build defenses around your desk.&lt;/p&gt;&#xA;" OwnerUserId="2129" LastActivityDate="2010-10-14T16:57:17.797" CommunityOwnedDate="2011-01-12T17:58:32.720" />
  <row Id="12056" PostTypeId="2" ParentId="11962" CreationDate="2010-10-14T16:57:34.113" Score="3" ViewCount="" Body="&lt;p&gt;I have been involved in recruiting from agents for some time (including several mentioned in other replies here), and they are a very expensive approach. They seem to have very little ability to distinguish candidates with different skill sets except on the most basic level (&quot;has this person ever programmed in Java?&quot;, that kind of thing). Whilst we would ocassionally get suitable candidates, they would be outnumbered 100:1 (literally) by candidates who were not even really close to what we required, despite myself putting lost of effort into communicating with the agents and sending detailed written and verbal feedback on every candidate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My feeling is that the agents actually filter out the candidates we required by only searching their database with the most basic and obvious keywords. And being unable to understand what most of those keywords mean (in some cases even basic synonym recognition)  If the candidate's CV was not litered with buzz words and names of technologies they wouldn't come through to us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also seemed that the Agents would favour their biggest clients. Only offering smaller clients the left-overs (which is, frankly, what I would do if I were in their, commission and target heavy, situation)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From your point of view, that would mean that the companies that might be best suited to you - the agent may never even realise, or deliberately not tell you about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can, I recommend trying to see if you can go more directly to the company (they may even offer you some of what they would normally pay in agent fees as a joining bonus). We now only recruit by advertising directly, to prevent the agents fitering out the people we want. Try searching around for software companies, and see if they have recuritment contact information on their websites?&lt;/p&gt;&#xA;" OwnerUserId="5404" LastEditorUserId="5404" LastEditorDisplayName="" LastEditDate="2010-10-15T08:57:44.127" LastActivityDate="2010-10-15T08:57:44.127" CommentCount="3" />
  <row Id="12057" PostTypeId="2" ParentId="11981" CreationDate="2010-10-14T17:04:09.910" Score="2" ViewCount="" Body="&lt;p&gt;I am currently a software developer as well as a graduate student. While in undergrad, I studied for a BA in Computer Science with a emphasis in Graphic Design. Currently, I'm taking an extreme approach in my studies. I'm working on my masters in Professional Counseling. This degree is an interesting mixture of Psychology and Education. I've always been fascinated by what makes people tick. For me, this is a stepping stone towards a PhD, which I would like to be able to integrate my technical skills of data crunching with my inquisitiveness about the human condition and desire to help others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are few points that I have found that are highly transferable:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Problem solving abilities. This takes strong combination of 'technical' knowledge and creative - out of the box thinking - in approaching a problem. People are messy, computers are predictable, both have issues that need to be solved. Counseling has its roots in Human Development and Growth compared to the traditional Biological/Philosophical roots of Psychology.The idea of developing and design a system can be related to developing and designing intervention plans for helping people heal and move on from their trouble.&lt;/li&gt;&#xA;&lt;li&gt;Both are highly collaborative processes. Training/Teaching/Mentoring is an invaluable tool in working with others. Strong abilities in expressing ideas are critical in both professions because there is a need to be able to work with others to implement change. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;As a follow-up having taken this path - I have found myself gravitating more towards the Human Resource / Leadership side of the equation because of the change more towards more a people centered world view.&lt;/p&gt;&#xA;" OwnerUserId="5400" LastActivityDate="2010-10-14T17:04:09.910" />
  <row Id="12058" PostTypeId="2" ParentId="5560" CreationDate="2010-10-14T17:04:56.307" Score="1" ViewCount="" Body="&lt;p&gt;For me there's some deep psychological problem with tests whenever I try to apply them extensively, as in TDD: if they're there, I code sloppily because I trust that the tests will catch any problems. But if there are no tests to provide a safety net, I code carefully, and the result is invariably better than with tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe it's just me. But I've also read somewhere that cars with all kind of safety bells &amp;amp; whistles tend to crash more (because the drivers know that the safety features are there), so maybe this is something to acknowledge; TDD can be incompatible with some individuals.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-14T17:04:56.307" CommentCount="2" />
  <row Id="12059" PostTypeId="2" ParentId="12005" CreationDate="2010-10-14T17:05:35.353" Score="3" ViewCount="" Body="&lt;p&gt;My big feeling on cyclical module dependencies is that if those two modules really do depend on one another, perhaps they should be one module.  You can't use one without the other, so what's the point of splitting them up?&lt;/p&gt;&#xA;" OwnerUserId="2129" LastActivityDate="2010-10-14T17:05:35.353" CommentCount="4" />
  <row Id="12060" PostTypeId="2" ParentId="11874" CreationDate="2010-10-14T17:05:58.677" Score="0" ViewCount="" Body="&lt;p&gt;I did support for a couple of years for my first company out of college. What got me to sign up for a couple of years was:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The required career path for&#xA;becoming a Software Engineer.&lt;/li&gt;&#xA;&lt;li&gt;I needed the time to brush up on the&#xA;company's main language (Fortran,&#xA;Circa 1989)&lt;/li&gt;&#xA;&lt;li&gt;I wasn't married so I could quit if&#xA;I found I didn't like the company or&#xA;the job.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="749" LastActivityDate="2010-10-14T17:05:58.677" />
  <row Id="12063" PostTypeId="2" ParentId="12016" CreationDate="2010-10-14T17:16:17.027" Score="1" ViewCount="" Body="&lt;p&gt;Working for a company that would love to offer iPhone/iPad apps, the learning curve and upfront costs certainly haven't encouraged us to jump on the band wagon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps this would be a better question on a &quot;What is the thing that prevents you from developing for apple-related products?&quot;&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-10-14T17:16:17.027" />
  <row Id="12064" PostTypeId="2" ParentId="12021" CreationDate="2010-10-14T17:19:25.373" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://store.steampowered.com/app/70110/&quot; rel=&quot;nofollow&quot;&gt;Hacker Evolution&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/5bSkK.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a series of games where you play as a hacker.  Solve puzzles and analyze code in an attempt to stop the computers from taking over!  OMG NOOOO!!!!&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-10-14T17:36:28.847" LastActivityDate="2010-10-14T17:36:28.847" CommunityOwnedDate="2011-01-12T17:58:32.720" CommentCount="8" />
  <row Id="12065" PostTypeId="2" ParentId="12021" CreationDate="2010-10-14T17:19:58.133" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://phpgolf.org/?p=main&quot; rel=&quot;nofollow&quot;&gt;phpGolf&lt;/a&gt; is a game where you write php to solve a problem with fewest number of bytes in similar fashion to how real golf is played.  Lower the strokes wins.&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-14T17:19:58.133" CommunityOwnedDate="2011-01-12T17:58:32.720" />
  <row Id="12066" PostTypeId="2" ParentId="11523" CreationDate="2010-10-14T17:20:51.190" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You're doing yourself an emotional and career disservice&lt;/strong&gt; by getting upset in having to explain technical details to non-technical people. The fact that non-technical people need you to translate technical processes to non-technical business processes and vice-versa is what got you employed. The more proficient you are at translating between the two problem domains, the more valuable you become to an employer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Familiarize yourself with manufacturing techniques, and explain the development process in terms of assembly line processes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/yq3SO.png&quot; alt=&quot;Assembly line metaphor&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, explaining the processing of html tags (and thus the inability to use them) can be expressed in terms of extrusion dies, popularly known in play-doh.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/dsdUN.jpg&quot; alt=&quot;extrusion dies&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Explain the problems of development process, such as changing requirements, updating interfaces, product defects, etc., in terms of the cost of shutting down the line, the time &amp;amp; expense spent building the line and having to modify it when requirements or conditions change, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I went into &lt;a href=&quot;http://programmers.stackexchange.com/questions/2410/whats-a-good-programming-metaphor/10986#10986&quot;&gt;more detail&lt;/a&gt; in another answer.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-14T17:20:51.190" />
  <row Id="12067" PostTypeId="2" ParentId="11981" CreationDate="2010-10-14T17:38:17.003" Score="4" ViewCount="" Body="&lt;h3&gt;Geography / Cartography&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I worked as a techie in the Geography Dept for UW Madison for 2 years and saw a lot of programming going on with the Masters Candidates (Python in ArcGIS, ActionScript for interactive maps, etc...).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have to say, it looked like a lot of fun and there certainly are jobs out there in the field as GPS's get plunked into nearly everything nowadays - and a GPS without a good map is just a fancy sextant. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Above all, if you want to apply what you learned in undergrad in a fun and useful way for a few years before entering the &quot;real world&quot;. Geography is a pretty good place to start.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-14T17:38:17.003" />
  <row Id="12068" PostTypeId="2" ParentId="11523" CreationDate="2010-10-14T17:42:12.940" Score="2" ViewCount="" Body="&lt;p&gt;I try to find an analogy to something similar in the real world.  Like, when I mentioned a stack and someone asked what that was:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Well, you've got kids.  Do they ever play with those little wooden blocks with letters on them?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Yeah.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Ever see them make a big tower by stacking one block on top of another?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Yeah.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;OK, and when you've got a tower like that, it's only safe to touch the top of the tower, right?  You can put another block on, or you can take the block on top off, but if you move anything underneath the top block, the whole thing's gonna fall down, right?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Laughing.&lt;/em&gt; &quot;Yep!  They love to smash the tower and make them all fall down!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Well, a stack is basically like doing that with data.  You set up a data structure in a way that you can only add things to the top or remove the element on top.  It's useful for keeping track of things that you're partway through doing, but you need to do something else first, and then before you finish that you need to do something else, and so on.&quot;  (Thus introducing the idea of a call stack.)  &quot;Except that you don't &lt;em&gt;want&lt;/em&gt; to knock the tower down in this case.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Oh, I get it now.  Cool!&quot;&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-14T17:42:12.940" />
  <row Id="12069" PostTypeId="2" ParentId="12021" CreationDate="2010-10-14T17:45:33.873" Score="2" ViewCount="" Body="&lt;p&gt;If you can get a copy of the old Lucas Learning game &quot;Pit Droids&quot;, I'd recommend it.  It is an exercise in mathematical thinking in an entertaining form, and my son just found that it ran fine on his Windows 7 box.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-14T17:45:33.873" CommunityOwnedDate="2011-01-12T17:58:32.720" />
  <row Id="12070" PostTypeId="1" AcceptedAnswerId="12079" CreationDate="2010-10-14T17:55:34.983" Score="26" ViewCount="1127" Body="&lt;p&gt;If applying for a new job, would you put your stackoverflow profile link on your resume?  This would show the employer you're an active member of the development community and also provide an insight into your knowledge + how well you convey your ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However it would feel a bit gimmicky to me?&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2011-03-08T12:12:16.030" Title="Would you put your stackoverflow profile link on your CV / Resume?" Tags="&lt;jobs&gt;&lt;career&gt;&lt;resume&gt;&lt;cv&gt;" AnswerCount="10" CommentCount="3" FavoriteCount="2" />
  <row Id="12071" PostTypeId="2" ParentId="12005" CreationDate="2010-10-14T17:56:21.560" Score="1" ViewCount="" Body="&lt;p&gt;Depending on your environment, cyclic dependencies across modules can make static linking impossible.  Module A cannot be linked until Module B is linked; but Module B depends on Module A and cannot be linked until Module A is linked.  This is why some environments - such as .NET and Delphi - don't allow this sort of thing at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other environments/compilers/linkers may be more forgiving, but that does not make it better design.  While it seems to be generally accepted that cyclic dependencies within &lt;em&gt;data structures&lt;/em&gt; are sometimes necessary (entity models, doubly-linked lists, certain kinds of trees... you get the picture), it is &lt;em&gt;almost always&lt;/em&gt; a serious design flaw to have a cyclic &lt;em&gt;module&lt;/em&gt; dependency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why?  Try to picture the initialization phase of an application, while modules are still being loaded.  &lt;em&gt;Most&lt;/em&gt; modules count on the fact that all of their dependencies have been fully-loaded before running any initialization code.  Cyclic dependencies invalidate this assumption, because it's physically impossible (at least in this universe) for both modules to be loaded before each other.  Similarly, in the teardown phase, finalization code that makes perfectly reasonable assumptions may crash because a dependent module has already been unloaded by the runtime.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The worst part is that on most operating systems, when you have cyclic module dependencies, the load order is deterministic but impossible to predict.  So an assumption about initialization order that turns out to be correct &lt;em&gt;today&lt;/em&gt; may suddenly break tomorrow due a totally innocent change in a totally different part of the application.  Tracking down these bugs can be an excruciatingly painful process.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Cyclic &lt;em&gt;imports&lt;/em&gt; within a single package/module/assembly are really another story entirely.  An &quot;import&quot; can mean so many different things depending on the context.  In many cases they are &quot;Considered Harmful&quot; simply because early compilers couldn't handle them, so you had to do your own cycle detection with a bunch of &lt;code&gt;#ifdef&lt;/code&gt; directives (or similar) and obviously, after a certain number of these, you start to lose your mind.  But in modern-day object-oriented programming it's often considered good practice to have one file per class, which means that a cyclic import is merely a sign of a cyclic class dependency, which as I mentioned above, isn't necessarily such a bad thing &lt;em&gt;unless it's unnecessary&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's unnecessary, then it's a Bad Thing simply on account of the fact that &lt;em&gt;any&lt;/em&gt; unnecessary complexity is a Bad Thing, and cyclic dependencies add complexity.&lt;/p&gt;&#xA;" OwnerUserId="3249" LastActivityDate="2010-10-14T17:56:21.560" />
  <row Id="12072" PostTypeId="2" ParentId="12021" CreationDate="2010-10-14T17:56:39.733" Score="19" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Chess.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Helps your brain improve its ability to think ahead, recognize patterns, employ tactics, formulate long-term strategies. It's like weight lifting for your mind (other problems can suddenly seem lighter after playing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Added benefits: Doesn't require electricity, rules have been the same for centuries, it's good to stare at something other than a monitor.&lt;/p&gt;&#xA;" OwnerUserId="3881" LastEditorUserId="3881" LastEditorDisplayName="" LastEditDate="2010-10-14T18:03:53.377" LastActivityDate="2010-10-14T18:03:53.377" CommunityOwnedDate="2011-01-12T17:58:32.720" CommentCount="9" />
  <row Id="12073" PostTypeId="1" CreationDate="2010-10-14T17:58:24.550" Score="8" ViewCount="126" Body="&lt;p&gt;This is my first question here, so i'll make it short and to the point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When Writing unit tests, should you write them before or after you have made the underlying framework for them? This came up in a discussion between my CEO and President, and I wanted your opinion on this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I have always wrote the code first, then wrote the unit tests, but what about you?&lt;/p&gt;&#xA;" OwnerUserId="5409" LastActivityDate="2010-10-14T19:38:21.073" Title="Unit tests, write them before or after the framework?" Tags="&lt;programming-practices&gt;&lt;unit-testing&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="12074" PostTypeId="2" ParentId="12073" CreationDate="2010-10-14T18:00:39.073" Score="3" ViewCount="" Body="&lt;p&gt;Write the unit tests first - they'll help you define your interfaces - starting from what functionality they expose down to the method signatures.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-10-14T18:00:39.073" />
  <row Id="12075" PostTypeId="2" ParentId="12073" CreationDate="2010-10-14T18:00:54.113" Score="13" ViewCount="" Body="&lt;p&gt;During. You're not going to get an entire framework done in one iteration. Your framework and unit tests should co-evolve simultaneously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a more micro scale, tests first, code second.&lt;/p&gt;&#xA;" OwnerUserId="3119" LastActivityDate="2010-10-14T18:00:54.113" />
  <row Id="12076" PostTypeId="2" ParentId="1025" CreationDate="2010-10-14T18:01:45.680" Score="5" ViewCount="" Body="&lt;p&gt;If you want to know what's on the App Store, &lt;em&gt;look at the App Store&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think you are going to produce good work if you start by asking yourself, &quot;What should I &lt;em&gt;not&lt;/em&gt; do?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Come up with a few ideas for apps, then search the App Store for them. If you find a dozen apps already there, you can avoid that category. (Unless you think you can do something much better than what's already there.) Then you can make your plans based on the search results.&lt;/p&gt;&#xA;" OwnerUserId="5213" LastActivityDate="2010-10-14T18:01:45.680" CommentCount="4" />
  <row Id="12077" PostTypeId="2" ParentId="12070" CreationDate="2010-10-14T18:02:18.487" Score="12" ViewCount="" Body="&lt;h3&gt;Yes.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Your SO profile gives potential employers a look at you actually coding, as well as your ability to solve problems and seek help.  If you have any amount of reputation there, I'd say put it on.  Either a URL alongside your contact info, or a bullet under &quot;Misc&quot;/&quot;Other&quot; with your rep.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-14T18:02:18.487" CommentCount="7" />
  <row Id="12078" PostTypeId="2" ParentId="12021" CreationDate="2010-10-14T18:04:03.077" Score="3" ViewCount="" Body="&lt;p&gt;A couple puzzle things:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.pexforfun.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.pexforfun.com/&lt;/a&gt; -- you have to write code to solve a problem. Only you don't know what the problem is and have to figure it out based on the test results your code produces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.toughestdeveloperpuzzleever.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.toughestdeveloperpuzzleever.com/&lt;/a&gt; -- a bunch of trivia/general knowledge/specific knowledge questions, one leading to the other. I like it because it's nothing like the problems I solve at work, so it's a nice way to distract myself without doing something completely 100% irrelevant.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-14T18:04:03.077" CommunityOwnedDate="2011-01-12T17:58:32.720" CommentCount="1" />
  <row Id="12079" PostTypeId="2" ParentId="12070" CreationDate="2010-10-14T18:06:29.517" Score="26" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It Depends&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I was looking for a job a month ago, I didn't put a link to SO on my resume, but I did mention that I participate on SO and added a link to my blog that contains the SO &quot;flair&quot; on the About page. At that point I had about 3000 rep.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't try to leverage rep, but I would leverage intelligent participation. If you act like a moron on SO and draw attention to it, that's obviously a bad move. But if you say &quot;hey, I participate on this dedicated Q&amp;amp;A site&quot; and you have been giving good answers and asking smart questions, it can work in your favour as it shows passion for your work and fellow developers.&lt;/p&gt;&#xA;" OwnerUserId="226" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2010-10-14T19:09:59.867" LastActivityDate="2010-10-14T19:09:59.867" CommentCount="4" />
  <row Id="12080" PostTypeId="2" ParentId="531" CreationDate="2010-10-14T18:07:43.220" Score="0" ViewCount="" Body="&lt;p&gt;When it was time for a new computer, I planned to purchase a 15&quot; MacBook Pro. Then I read up on the &lt;strong&gt;Apple LED Cinema display&lt;/strong&gt;, and decided to get a less powerful 13&quot; MacBook Pro and use the savings for the external display.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The trade-off was totally, utterly worth it. Now I have a big screen on my desk but I can still take my computer with me. And it's fast enough for me, old man.&lt;/p&gt;&#xA;" OwnerUserId="5213" LastActivityDate="2010-10-14T18:07:43.220" />
  <row Id="12081" PostTypeId="2" ParentId="11846" CreationDate="2010-10-14T18:09:43.667" Score="2" ViewCount="" Body="&lt;p&gt;Let's get at it backward:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Doesn’t that goes with the “maximize cohesion” and “minimize coupling” age old principles that I understand as cornerstones of OO?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Actually, it's a cornerstone of programming, of which OO is but one paradigm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll let &lt;a href=&quot;http://www.quotedb.com/quotes/2181&quot; rel=&quot;nofollow&quot;&gt;Antoine de Saint-Exupéry&lt;/a&gt; answer your question (cause I am lazy ;) ):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The simpler the class, the more confident you'll be it's right, the easier it'll be to &lt;strong&gt;fully&lt;/strong&gt; test it.&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2010-10-14T18:09:43.667" />
  <row Id="12082" PostTypeId="1" AcceptedAnswerId="12085" CreationDate="2010-10-14T18:19:12.913" Score="5" ViewCount="253" Body="&lt;p&gt;I am looking for a few ideas on how to change a highly conventional work culture to be more innovated in their approached to problem solving. I've come across this &lt;a href=&quot;http://www.blessingwhite.com/content/articles/Hills_Nov_2007_LE_Article_Leading_Innovation.pdf&quot; rel=&quot;nofollow&quot;&gt;article&lt;/a&gt; and am looking for more specific and practical ways that we as developers can help each other think outside of the box. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've constructed a simple formula of how to energize innovation in my everyday development. (Please critique this for improvement)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Input External Data/Info -&gt; Creates New Ideas/Concepts -&gt; Communicates/Shares Ideas  -&gt; Trusts Others -&gt; Risks Trials -&gt; Innovation Happens&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some of your attitudes, thought processes, and behaviors towards approaching a challenging problem in way that would be considered innovative?&lt;/p&gt;&#xA;" OwnerUserId="5400" LastActivityDate="2010-10-15T11:13:34.143" Title="What tricks/tips do you use for innovation?" Tags="&lt;productivity&gt;&lt;work-environment&gt;&lt;culture&gt;&lt;problem-solving&gt;" AnswerCount="9" FavoriteCount="2" />
  <row Id="12083" PostTypeId="2" ParentId="12021" CreationDate="2010-10-14T18:19:31.060" Score="1" ViewCount="" Body="&lt;p&gt;Flood-It or Minesweeper&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each game is quick and forces you to think.&lt;/p&gt;&#xA;" OwnerUserId="4082" LastActivityDate="2010-10-14T18:19:31.060" CommunityOwnedDate="2011-01-12T17:58:32.720" />
  <row Id="12084" PostTypeId="2" ParentId="12070" CreationDate="2010-10-14T18:22:56.733" Score="19" ViewCount="" Body="&lt;h1&gt;No&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I would not put &lt;em&gt;any&lt;/em&gt; websites on my Resume. I &lt;em&gt;will&lt;/em&gt; make reference to projects or applications I have done and other information that is &lt;em&gt;readily applicable&lt;/em&gt; to the person reviewing the resume. My resume is a one page summary of &lt;em&gt;me&lt;/em&gt;, I don't have room for the half dozen SO family accounts, LinkedIn, my blog, Facebook, Twitter, Tumblr, Digg, Reddit, (you get the picutre). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Putting &quot;I have XXX reputation on stackoverflow.com&quot; is just like saying &quot;I have 8.3k posts on myfavoriteforum.com.&quot; It's not professional. Deliberately pointing people elsewhere for information is also, in my view, wrong. What do you want to gain from adding a link to your LinkedIn profile? Work history? That should be on your resume. People you know? Connections? I guess it would be some indicator of how well you are known in the community, but honestly that information should be found elsewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they care, they can visit my website where I have an &lt;a href=&quot;http://joshuakehn.com/imprint&quot; rel=&quot;nofollow&quot;&gt;Imprint&lt;/a&gt; page linking to various online profiles. I get more referrals in regards to my &lt;a href=&quot;http://joshuakehn.com/blog/&quot; rel=&quot;nofollow&quot;&gt;blog&lt;/a&gt; then I do from my stackoverflow reputation ranking. I'm on &lt;a href=&quot;http://superuser.com/users&quot;&gt;page one&lt;/a&gt; of superuser.com but have &lt;em&gt;never&lt;/em&gt; had someone drop me an email because of it. Reputation is great however it is not applicable to your job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I notice I'm writing an extraordinarily &lt;em&gt;good&lt;/em&gt; answer to something I will turn it into a blog post. Sometimes I'll even turn it into a full blown application. This gets &lt;em&gt;far&lt;/em&gt; more recognition and attention then crawling through your answers. My &lt;a href=&quot;http://stackoverflow.com/questions/3197767/is-this-goto-expressive/3197792#3197792&quot;&gt;second highest rated answer on stackoverflow&lt;/a&gt; is a XKCD comic. My &lt;a href=&quot;http://programmers.stackexchange.com/questions/11077/what-do-you-call-this-character/11081#11081&quot;&gt;highest rated answer on programmers&lt;/a&gt; &lt;em&gt;is an explanation of a brace&lt;/em&gt;. These are not answers I'm especially proud of or feel like I should show off.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-10-14T19:49:42.143" LastActivityDate="2010-10-14T19:49:42.143" CommentCount="10" />
  <row Id="12085" PostTypeId="2" ParentId="12082" CreationDate="2010-10-14T18:24:58.707" Score="10" ViewCount="" Body="&lt;p&gt;I found three effectives way to stimulate innovation and creativity:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Be naive&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You won't be influenced by existing way of doing things.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Read a lot different things&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've noticed that the combination of ideas often create a much more bigger one.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Clear your mind&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I got my best ideas while relaxing in a bath or on my ride-on mower...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your creativity will comes naturally... now some persons are more creative than other. This is set in the very beginning of your life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How to encourage this in an enterprise ?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;One day a month, mix people accross department&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Encourage people to read books not specifically related to their qualification&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Periodically, organize some team building outside, mix departments. Integrate some workshops where people can listen to problems of others and make suggestions. Sort of brain storming.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;After that, you must ensure that you have a follow up, so someone in your organisation will have to track all ideas, prioritize them, and ensure that they are taken in consideration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen that process in one large enterprise I worked for. That's was really effective. They also gave a sort of funding once a year to their employees to develop one of two ideas they selected.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-14T18:30:41.897" LastActivityDate="2010-10-14T18:30:41.897" CommentCount="11" />
  <row Id="12086" PostTypeId="2" ParentId="8973" CreationDate="2010-10-14T18:40:33.290" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Logo&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Visual Feedback&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Logo gives you immediate gratification because it has a visual Turtle that you're moving around screen.  I successfully started programming with BASIC at 8 years old because I could write &quot;10 Print &quot;Hello World&quot; &quot;Run&quot;.  Moving a Turtle is a lot cooler than printing some text.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Immediate Success&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Logo has the immediacy of a scripting language, for example you can type:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Forward 10&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You don't have to 'write a program' or 'create a class' or 'create a Main method' that most other programming languages require as step one.  You don't even have to type 'Run' from the BASIC days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Structured Programming&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beneath the ease of use is a language which introduces the simple concepts of structured coding and classes, unlike BASIC.  It's starting you on the right path for a 'professional' language.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;To MoveForward Forward 10 End&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;MoveForward&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Logo is a great language to use for the first six months of programming.  It's simple.  It's visual.  It's immediate.  It's structured.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-14T18:40:33.290" />
  <row Id="12087" PostTypeId="1" AcceptedAnswerId="12092" CreationDate="2010-10-14T18:47:44.673" Score="6" ViewCount="262" Body="&lt;p&gt;I would like to start new Open Source project, and I believe all check-ins should be reviewed before merged into trunk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some great &lt;strong&gt;online&lt;/strong&gt; code review tools for Open Source projects that have this functionality, and what makes them great?&lt;/p&gt;&#xA;" OwnerUserId="2554" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-10-16T06:47:38.260" LastActivityDate="2010-10-16T06:47:38.260" Title="What are great online code reviews tool for Open Source projects?" Tags="&lt;tools&gt;&lt;web-tools&gt;&lt;code-reviews&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="12088" PostTypeId="2" ParentId="12021" CreationDate="2010-10-14T18:49:58.943" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.nethack.org&quot; rel=&quot;nofollow&quot;&gt;nethack&lt;/a&gt;! the &quot;ultimate&quot; rpg!&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-14T18:49:58.943" CommunityOwnedDate="2011-01-12T17:58:32.720" />
  <row Id="12089" PostTypeId="2" ParentId="12087" CreationDate="2010-10-14T18:52:58.403" Score="7" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://code.google.com&quot; rel=&quot;nofollow&quot;&gt;code.google.com&lt;/a&gt; &#xA;&lt;ul&gt;&#xA;&lt;li&gt;Used this during undergraduate for projects, it was free and provided all the tools needed for a team environment without having to manage a server.  (Perfect for undergraduate projects, back before github existed.) &lt;/li&gt;&#xA;&lt;li&gt;Offers svn or mercurial repositories although we used solely SVN for our projects.  &lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://github.com&quot; rel=&quot;nofollow&quot;&gt;github&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Great because its based on git which I have more and more taken a liking too! &lt;/li&gt;&#xA;&lt;li&gt;Also provides some bit of a &quot;social networking&quot; aspect that I enjoy.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="136" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-10-14T19:23:51.180" LastActivityDate="2010-10-14T19:23:51.180" CommentCount="4" />
  <row Id="12090" PostTypeId="2" ParentId="12082" CreationDate="2010-10-14T19:00:42.187" Score="1" ViewCount="" Body="&lt;p&gt;If you want to encourage your team to be innovative, &lt;a href=&quot;http://dondodge.typepad.com/the_next_big_thing/2010/01/how-google-sets-goals-and-measures-success.html&quot; rel=&quot;nofollow&quot;&gt;set impossible goals and achieve them&lt;/a&gt;. Also, it is OK to fail, provided that you learn from your mistakes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only question is if you can afford it...&lt;/p&gt;&#xA;" OwnerUserId="2554" LastActivityDate="2010-10-14T19:00:42.187" CommentCount="1" />
  <row Id="12091" PostTypeId="2" ParentId="12021" CreationDate="2010-10-14T19:24:24.647" Score="2" ViewCount="" Body="&lt;p&gt;&lt;H3&gt;Solitaire&lt;/H3&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It rests your brain for a bit.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-10-14T19:24:24.647" CommunityOwnedDate="2011-01-12T17:58:32.720" CommentCount="1" />
  <row Id="12092" PostTypeId="2" ParentId="12087" CreationDate="2010-10-14T19:32:39.213" Score="3" ViewCount="" Body="&lt;p&gt;Have you looked at Code Collaborator from &lt;a href=&quot;http://smartbear.com&quot; rel=&quot;nofollow&quot;&gt;http://smartbear.com&lt;/a&gt;? It is free for OSS&lt;/p&gt;&#xA;" OwnerUserId="4153" LastActivityDate="2010-10-14T19:32:39.213" CommentCount="1" />
  <row Id="12093" PostTypeId="2" ParentId="12070" CreationDate="2010-10-14T19:33:50.333" Score="1" ViewCount="" Body="&lt;p&gt;As I commented on Josh K's answer (a good one to take into consideration mind you), it depends on the type of content that you put in via your stackoverflow account. You can generalize that to the type of content present on your identifiable internet presence. I would probably not do it, not because it is a bad idea (nor I feel my content is inapropriate), but because I'm already including my linkedin profile and tech blog in my CV.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Potential employers can then use that to discern what I've posted on SO, ServerFault or say, cstheory.stackexchange or even slashdot if they so wish. I try to create mostly good content but there are a couple of WTFs here and there. I don't worry about them. If my content however contained a high ratio of flamewards and LOLZ, then I would be worried. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used to have one like that before under a pseudonym (younger, stupider days), but that has been completely replaced with more professional content under my actual name. The older one can still be found if one is really persistent, but then, unless I'm applying for, I dunno, a top secret gig or something like that, I would not be happy if an employer goes to that extreme of finding my much older content.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Neither would I accept to continue an interview or work with such a company. Probabilistically speaking, I doubt that such a thing is a common occurrence for employers worth working for (except for jobs with valid reasons to perform extensive background checks.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, it is a personal call whether to include a SO's profile on your CV. It depends on what type of content you have. My personal feeling is that I would prefer to have a well-maintained linkedin profile or tech blog, have it with links to other tech-oriented profiles of yours, and have that (your linkedin profile or a technical blog) included in your CV.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-14T19:33:50.333" />
  <row Id="12094" PostTypeId="2" ParentId="12082" CreationDate="2010-10-14T19:34:31.760" Score="2" ViewCount="" Body="&lt;p&gt;In order to innovate, it's critical that you see the forest for the trees.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As crazy it sounds, I'll often try to mentally put myself behind the eyes of a typical user of my application.  For instance, a few years ago I was designing an industrial automation tool for a large manufacturing firm.  One of the goals was to allow the floor supervisors to monitor the progress (and quality) of the employees on the floor.  Each employee worked at a station and there were only a handful of supervisors.  I actually went and visited the facility and tried to put myself in the shoes of the supervisor.  It occurred to me that integrated &lt;a href=&quot;http://www.google.com/images?hl=en&amp;amp;q=Andon+lights&amp;amp;um=1&amp;amp;ie=UTF-8&amp;amp;source=og&amp;amp;sa=N&amp;amp;tab=wi&amp;amp;biw=1180&amp;amp;bih=983&quot; rel=&quot;nofollow&quot;&gt;Andon lights&lt;/a&gt; would make it easy for floor supervisors to monitor the floor at a glance.  I would never have thought of that unless I put myself in the supervisor's shoes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess the moral of the story is to consider your end user.  Frameworks, patterns, etc. are awesome, but, in the end, your user is never going to see or know about any of those things.  Stepping back and getting a perspective on things really helps to add tangible (i.e., billable) value in my experience.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-10-14T19:34:31.760" />
  <row Id="12095" PostTypeId="2" ParentId="11998" CreationDate="2010-10-14T19:37:40.123" Score="0" ViewCount="" Body="&lt;p&gt;Use a combination of formats, appropriate for each knowledge function.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Blogs and RSS feeds can be used to announce updates, news items, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Wikis can be used to document current standards, policies, processes, how-tos, APIs, etc. The content can be structured, given a table of contents and index, support the development of commentaries, provide versioning, dynamic updates, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Forums/discussion boards can be used to work out issues of a technical or managerial nature.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Definitely allow tagging of content tagged for a variety of categories (data types, layer, functionality, bugs, etc).&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-14T19:37:40.123" />
  <row Id="12096" PostTypeId="2" ParentId="12073" CreationDate="2010-10-14T19:38:21.073" Score="2" ViewCount="" Body="&lt;p&gt;I would have to say unit tests first then coding. Even with the best will in the world, tight deadlines and other priorities will simply mean they will get pushed back or not done at all. Leaving a bigger headache for those who'll have to maintain the codebase.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides writing the unit test should help you formulate what your trying to achive.&lt;/p&gt;&#xA;" OwnerUserId="4960" LastActivityDate="2010-10-14T19:38:21.073" />
  <row Id="12097" PostTypeId="2" ParentId="12070" CreationDate="2010-10-14T19:40:17.713" Score="4" ViewCount="" Body="&lt;p&gt;I will have to hire someone in the next few months, and seeing that the person participates in the software community is a huge +1 on that end. Seeing that they have intelligent ways to solve problems, work with others respectfully, and have the courage to admit there's something they don't know-- but know how to ask for help... that's really attractive. Am I great in all the areas I mentioned? Not as well as I'd like to be, but it's part of growing. If you can show that you're always growing by linking to SO, go for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't put &quot;I have over 9000 rep on SO.&quot; but explain what you have. I'm not a fan of paper resumes, I'd like to see a web presence with online portfolio (which isn't always easy to do, I understand), but if you have to stick it on paper, put it under &quot;Professional Communities,&quot; where you have a table of communities you are inolved with, for example,&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; Community        | description                           | involvement&#xA; Stack Exchange   | A community of software professionals | I have participated in over 400 discussions on highly-technical issues, ranging from &amp;lt;your best two options here&amp;gt;.&#xA; EFF              | Down with the man                     | I'm stalking politicians against NN in my blog&#xA; FSF              | Free as in beer                       | I edit the man pages for YetAnotherY. The Y stands for YetAnotherY.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1525" LastActivityDate="2010-10-14T19:40:17.713" />
  <row Id="12098" PostTypeId="2" ParentId="11575" CreationDate="2010-10-14T19:40:47.727" Score="1" ViewCount="" Body="&lt;p&gt;We're a big fan of &lt;a href=&quot;http://37signals.com/&quot; rel=&quot;nofollow&quot;&gt;37 Signals'&lt;/a&gt; Backpack.  It's very flexible and allows us to continuously improve how we document our projects.  Campfire (also from 37 Signals) is also a great tool and their primary project management tool.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-10-14T19:40:47.727" />
  <row Id="12099" PostTypeId="2" ParentId="5233" CreationDate="2010-10-14T19:47:19.493" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;If I already have that programming&#xA;  job, and I really going to miss&#xA;  anything if I choose not to spend 2&#xA;  more years in school for that degree?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Depends on the type of programming job you want to do. There are type of programming work for which one really, really needs a CS background. Others instead require a CE background. Others don't require either at all beyond having good analytical and problem solving skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing that you must always keep in mind is the following:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Never confuse your job with your career&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your job is just what you do with the skills you have now. Your career is the buildup of your skills and your continuing education. If I were you, I would still continue your studies and get your degree in CS (or in an engineering discipline like CE).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or better yet, consult with a graduate advisor on working your way through a masters in CS peppered with some basics of EE/CE and/or math beyond Calc II (Calc III, Linear Algebra, DEQ). It will pay dividends. It opens a hell of a bunch of doors on programming and computer sciences, the type of jobs that make you say &quot;sh*t!!! I wanna work on that!!!&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it all depends on what you want. Are you satisfied with your skills now? With the types of jobs you have or the ones that you can apply for? Do you see yourself on a path of continuous improvement based on the jobs you can get?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I study obsessively on my own, but is&#xA;  there some golden nugget of knowledge&#xA;  that I won't get from my own studies?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you are naturally gifted, then there is nothing beyond your reach when it comes to self-study. But be mindful that the stresses of life and work can put a toll on one's plans for self-study. I've done self-study on my own and it has worked well for me. But I've also been in situations where I &lt;em&gt;must&lt;/em&gt; put myself under a schedule and class outline to get myself through a topic. Self-study can burn you out just as easily (or perhaps even more) than study on a classroom. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also know what getting burned and out of gas is. No matter how enthusiastic we might be, anyone can burn out. Don't you ever believe anyone that tells you otherwise. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's all about circumstances and personalities. My suggestion to you would be to err on the side of caution and simply continue your studies. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, it has become increasingly difficult to get a job without a degree. You have a degree already, proof that you have taken the time to go through college (believe it or not, that is a desirable trait.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, unless you find a generous engineering-oriented employer - DoD, DoE, DoT, Defense Contractors, small system-level programming firms - the type of jobs you will find without having a CS, Science or Engineering degrees become limited.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way I see your posts, I have the impression that you are of the scholastic type. As such, you should just keep increasing your education. &lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-14T19:47:19.493" />
  <row Id="12100" PostTypeId="2" ParentId="5384" CreationDate="2010-10-14T19:49:19.647" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I learnt to say no. It's not rude.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can simply explain that you already have a day job and that so many peoples were asking for help with their computer hardware that you once end up putting multiple hours per week/month in repairing computers for friends/colleagues while you don't really need the extra money. Every peoples whom I have said that have been understanding and usually insist that it's fine if I don't want to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For family members and close friends I usually tell them the same story, but I add that they are on the exception list and that I will be glad to help them. Some of them offers to pay me, but I never accept. If they insist I tell them my usual price is 85$ per hour, two hours minimum :)&lt;/p&gt;&#xA;" OwnerUserId="3887" LastActivityDate="2010-10-14T19:49:19.647" CommunityOwnedDate="2010-10-14T19:49:19.647" CommentCount="1" />
  <row Id="12101" PostTypeId="2" ParentId="11002" CreationDate="2010-10-14T19:51:14.927" Score="2" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.umlet.com/&quot; rel=&quot;nofollow&quot;&gt;Umlet&lt;/a&gt;. What I like with this software is that it's a drawing tool only. It doesn't force you to create and maintain a model, and it doesn't try to generate/parse code. Unlike a lot of UML tool I tried, I've always been able to draw the diagram I had in mind (the drawing primitives are quite complete, and they are extensible by code).&#xA;It works well with my other tools : the text based format is ok for working with my VCS, and the png/svg can be generated using a command line (I use it to automate the build of my doc).&lt;/p&gt;&#xA;" OwnerUserId="3527" LastActivityDate="2010-10-14T19:51:14.927" />
  <row Id="12102" PostTypeId="2" ParentId="12070" CreationDate="2010-10-14T19:52:45.613" Score="4" ViewCount="" Body="&lt;p&gt;When I was looking around, I put a link to my &lt;a href=&quot;http://careers.stackoverflow.com/&quot;&gt;careers.so&lt;/a&gt; page, which has a link to my SO and SU accounts, in the block with my contact information.  I felt this was an unobtrusive way to provide more information, if someone desired it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As someone who has done lots of developer hiring recently, I would be happy to see references to someone online profiles.  It wouldn't turn a no into an interview, but it might tip the scales if I'm unsure whether to bring someone in, assuming I like what I see online.  It gives a much deeper insight into how someone might fit into out team that a resume ever would. &lt;/p&gt;&#xA;" OwnerUserId="1427" LastActivityDate="2010-10-14T19:52:45.613" />
  <row Id="12103" PostTypeId="2" ParentId="12021" CreationDate="2010-10-14T20:01:01.413" Score="1" ViewCount="" Body="&lt;p&gt;Crosswords, minesweeper, solitaire. Simple games stimolates your brain enough :)&lt;/p&gt;&#xA;" OwnerUserId="4015" LastActivityDate="2010-10-14T20:01:01.413" CommunityOwnedDate="2011-01-12T17:58:32.720" />
  <row Id="12104" PostTypeId="2" ParentId="885" CreationDate="2010-10-14T20:02:52.690" Score="2" ViewCount="" Body="&lt;p&gt;I would think definitely so. All but two of my jobs in the last decade have come my way due to the type of research I did when I was in grad school (that and substantial salary improvements.) I only work one single paper when in grad school, and that alone has opened a lot of doors for me, both on the enterprise and defense sectors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My take is that grad school (just like any type of education) is whatever you make out of it. I've seen people going to grad school and simply learn nothing. But grad school is the opportunity to really tackle hard problems, to do research, experiment with software, learn industry standards, make connections and internships. If you play it smart, it can equip you with skills that you can take for life way above what you can get with an undergrad degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's all up to what we make of it really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is typically better to have some work experience before going to grad school, but it all depends on the individual. Outside work experience can be substituted (with the right attitude and opportunities) with part-time hands-on work in school (be it programming or doing systems administration and networking). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, it doesn't necessarily mean that you have to get a masters exactly on the same field you got your undergrad degree from. I've seen EE graduates going for a CS masters. I'm a CS guy, and I'm going for a masters in EE and CE (and later I will go for either a Ph.D in CS or a MS in Engineering Management.) It can be harder, but a cross-over education opens a lot more doors than being equipped in one field alone. It can also help if your work sponsors you (or you can tie your work with your studies.) It can still be done even if that's not the case, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even a Ph.D can be beneficial if you play it well and you have the appetite for it. For this, however, you certainly need to have outside work experience (otherwise, you might get yourself boxed in academia.) There are a lot of interesting jobs at the DoD, DoE, NSA, Avaya, Ericcson and the like that prefer people with a Ph.D.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, it's all about:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;How far you want to go,&lt;/li&gt;&#xA;&lt;li&gt;How you go about it,&lt;/li&gt;&#xA;&lt;li&gt;What you make of it.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-14T20:02:52.690" CommentCount="1" />
  <row Id="12105" PostTypeId="2" ParentId="893" CreationDate="2010-10-14T20:08:36.590" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I study software engineering and have&#xA;  every intention to become one and stay&#xA;  one. However, I also love logic,&#xA;  computability theory, automata theory,&#xA;  and similar computer sciency math&#xA;  topics, and would love to do at least&#xA;  a Masters degree at some point after I&#xA;  graduate to study these topics more in&#xA;  depth. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You should go for it, then. Don't fear education.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;This is really something I want&#xA;  to do for myself, and not because it&#xA;  will contribute something to my career&#xA;  as a software engineer (and let's face&#xA;  it- it won't either), but I'm worried&#xA;  that a few years of absence from the&#xA;  field will be frowned upon, and will&#xA;  make it harder for me to get back on&#xA;  the horse, so to speak. Is that true?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No, it is not. I went back to grad school and left the &quot;real world&quot; for a couple of years, and it didn't hurt me a bit. In fact, I used grad schools to build connections on the professional world. The type of jobs you can get with your masters tend to be better than those with only an undergrad degree... if you play your cards well.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How do employers react to such&#xA;  absence?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Good employers don't pay attention to that type of minutia. Bad employers (or incompetent people that might feel threatened by your education) will react badly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which type of employers would you like to care about? :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, remember that your job &lt;em&gt;is not your &lt;strong&gt;career&lt;/em&gt;&lt;/strong&gt;. Cultivate your career and fight for the type of jobs that require your education rather than shrinking your education to satisfy less-than-competent employers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Education and career, it's all about what you make out of them.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-14T20:08:36.590" />
  <row Id="12106" PostTypeId="2" ParentId="39" CreationDate="2010-10-14T20:16:27.150" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Just use string you G-- d---ed savages!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;during debate about merits of  &lt;code&gt;char[]&lt;/code&gt; vs &lt;code&gt;string&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="4475" LastActivityDate="2010-10-14T20:16:27.150" CommunityOwnedDate="2010-10-14T20:16:27.150" />
  <row Id="12107" PostTypeId="2" ParentId="11312" CreationDate="2010-10-14T20:57:11.247" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A great reference library&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Google is great for many things, but it's no substitute for a good collection of books.  Searchable EBooks preferred, like the O'Reilly Safari collection.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-14T20:57:11.247" CommunityOwnedDate="2010-10-14T20:57:11.247" />
  <row Id="12108" PostTypeId="2" ParentId="361" CreationDate="2010-10-14T20:58:11.433" Score="3" ViewCount="" Body="&lt;p&gt;Graduating from school does not make us experts. It takes about a decade of &lt;strong&gt;&lt;em&gt;good work&lt;/em&gt;&lt;/strong&gt; (not just any type of work) for one to become an expert of sorts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the great problems with CS schools nowadays is that they siphon students into a minimal curriculum of 60 credits. Unfortunately, a lot more has to happen for a student to get enough practice to develop a sound base of programming skills (before entering the work force.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, it took me about 1.5 years longer to get my BS simply because I (and many of my peers back then) took a lot more programming courses. The typical student now simply takes Programming 101 and 102 (possibly in Java or C#) before going into data structures. Back then, I took Basic, Pascal I and II, C I and II, C++, x86 Assembly, expert systems, Delphi and Ada before setting foot on a data structures class. I wasn't alone in that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was the norm for many of us back then. That is we had 30 credit hours of programming before hitting data structures whereas now a student typically has a meager 6 to 9 credit hours. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not counting internships and part-time jobs at the labs (be it tutoring, teaching or programming small projects like reports for a local school department) that we were exposed to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There was a great selection of programming courses &lt;strong&gt;&lt;em&gt;and&lt;/em&gt;&lt;/strong&gt; it was unthinkable &lt;strong&gt;&lt;em&gt;not&lt;/em&gt;&lt;/strong&gt; to take as many as possible. Now, all you see are a pair of meager Java courses and a half-ass course combining assembly and computer org (if you are lucky). To me, I don't see how an undergrad can have enough practicum by just following the bare-bone, minimal curriculum. Unless you land a really good job with a really good engineering-oriented, your job won't help you improve your programming skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, and this is specially true in the enterprise/e-commerce arena, most jobs are crappy with people not recognizing what good programming habits are even if they landed on their laps and called them &quot;momma&quot;. So the saying that one will learn more at work is half true. You learn something, but there is assurance that what you learn is good or bad (there is such a thing as bad learning.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advise to people in school boils down to the following:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Take as many programming courses as&#xA;possible (15-18 credits &lt;strong&gt;&lt;em&gt;at&#xA;least&lt;/em&gt;&lt;/strong&gt; beyond what a CS curriculum&#xA;requires you.)&lt;/li&gt;&#xA;&lt;li&gt;Make sure to have more than 9&#xA;credits of programming hours before&#xA;taking data structures. Anything&#xA;less won't prepare you enough.&lt;/li&gt;&#xA;&lt;li&gt;Take students loans and eat grass&#xA;and water if you have to, but do&#xA;take additional classes as outlined&#xA;above.&lt;/li&gt;&#xA;&lt;li&gt;Aim to get internships. Do whatever&#xA;you have to to get internships on&#xA;your junior and senior years&#xA;(preferably with reputable&#xA;engineering firms and not sh*tty&#xA;e-sweat shops.)&lt;/li&gt;&#xA;&lt;li&gt;Independently of whether you get&#xA;internships, always vie to get a&#xA;part-time job at a local computer&#xA;department, be it tutoring, but&#xA;preferably doing systems&#xA;administration and networking... or&#xA;if you are lucky, programming&#xA;reports or sysadmin utilities for&#xA;internal usage.&lt;/li&gt;&#xA;&lt;li&gt;Network, network, network. As&#xA;professors for potential employers,&#xA;employers they can recommend.&lt;/li&gt;&#xA;&lt;li&gt;Take Calc III and DEQ and/or take a&#xA;introductory course in EE/CE. It&#xA;will open a lot more doors beyond&#xA;what the &lt;em&gt;enterprise&lt;/em&gt; has to offer.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If you already graduated and feel that you still have a lot to learn (and on-the-job training and work exposure are not cutting it), go back to school, get a MS or get professionally certified (.ie. Sun Certified). Engage local programming user groups. Read DDJ and the Pragmatic Book series; books on Architecture; on algorithms and concurrency; on security, e-commerce, distributed systems; on requirements analysis and engineering; on systems engineering (actual systems engineering as delineated by government agencies.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recognizing that you need to improve your skills after leaving school is 90% of the battle. Most people never recognize (or care). But you do. All you need is to sacrifice time outside of work to develop your career. Your job is never your career. Remember that.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-14T20:58:11.433" CommentCount="2" />
  <row Id="12109" PostTypeId="2" ParentId="5233" CreationDate="2010-10-14T21:00:02.863" Score="0" ViewCount="" Body="&lt;p&gt;I always consider a degree to be the door opener and nothing more.  Once you are in work it is the experience that counts, not the bit of paper you have hanging up somewhere.&lt;/p&gt;&#xA;" OwnerUserId="5010" LastActivityDate="2010-10-14T21:00:02.863" />
  <row Id="12110" PostTypeId="2" ParentId="11312" CreationDate="2010-10-14T21:01:31.130" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Self Discipline&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like it or not, we're not all Pablo Picasos or Walt Whitmans who can code only if and when the muse strikes us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most programmers have likely already discovered they're asked to code things they're not personally enthused about all the time.  You also need to find a way to reach inside yourself and pull out good code even when the mood is wrong.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-14T21:01:31.130" CommunityOwnedDate="2010-10-14T21:01:31.130" />
  <row Id="12111" PostTypeId="2" ParentId="39" CreationDate="2010-10-14T21:04:54.210" Score="2" ViewCount="" Body="&lt;p&gt;COBOL can be cured if caught early.&#xA;&lt;br&gt;-- From Programming classes&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-10-14T21:04:54.210" CommunityOwnedDate="2010-10-14T21:04:54.210" />
  <row Id="12112" PostTypeId="2" ParentId="5233" CreationDate="2010-10-14T21:04:54.740" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Not now, but...&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a programmer with 20 years experience and an extensive resume with well known names on it, I find even today that the lack of a CS degree can be a stumbling block when looking for a new job.  You're going to switch jobs over the course of your career, even if it's only within the same company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I had the ability to make it happen, I'd definitely go for a BS or even MS in Computer Science, even now.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-14T21:04:54.740" />
  <row Id="12113" PostTypeId="2" ParentId="5384" CreationDate="2010-10-14T21:09:22.330" Score="0" ViewCount="" Body="&lt;p&gt;If it is family or a close friend I will give it a go.  I normally help them to help themselves for about 3 minutes before getting impatient watching them hurt the poor thing more and take over!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used to do it semi-regularly for a bit of extra cash on the side, plus for every hundred turn off and on again type solutions there was one problem that you could really get your teeth into, and of course solving problems is why we do what we do.&lt;/p&gt;&#xA;" OwnerUserId="5010" LastActivityDate="2010-10-14T21:09:22.330" CommunityOwnedDate="2010-10-14T21:09:22.330" />
  <row Id="12114" PostTypeId="2" ParentId="12087" CreationDate="2010-10-14T21:12:42.690" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Kiln/Fogbugz&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've tried a number of them and Code Collaborator is an excellent stand alone code review tool.  It imports well from many source control systems, but didn't integrate seamlessly with my bug/feature tracking system.  They have a new version out since I used it, so perhaps that has been improved.  Code Collaborator has a beautiful comment / issue / suggestion tracking system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fogbugz is a great lightweight feature/bug/customer tracking system for software development.  It also now integrates really well with Kiln, a Mercurial-based source control and they've recently added a pretty cool code review tool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I like best about the Kiln/Fogbugz code review process is that it works post-checkin and it enables the submitter to request a code review from a peer and automatically create a work item assigned to their peer to track the code review.  This is imho an excellent combination of all the code review best practices rolled into one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With Code Collaborator, I struggled with the 'assign a review to' logic and because it works against diffs/changesets rather than checked in code it tended to impede lines of code written with a bit too much process.  You want to ensure your code review process is a 'teaching tool' rather than a 'quality gate' otherwise the 'gate' slows things down and you start to lose acceptance from your devs.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastEditorUserId="5397" LastEditorDisplayName="" LastEditDate="2010-10-15T19:59:56.497" LastActivityDate="2010-10-15T19:59:56.497" CommentCount="5" />
  <row Id="12115" PostTypeId="2" ParentId="10230" CreationDate="2010-10-14T21:13:10.197" Score="2" ViewCount="" Body="&lt;p&gt;Don't bring it up to him. Bring it up to your bosses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;--- edit ---&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and do so in writing, in an e-mail (with receipt acknowledgment on if your mail server supports it.) Keep the e-mail and all subsequent acknowledgments and receipts (print them and scan them on pdf... and keep both the pdfs and print outs.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because blowing the lid on the issues you just mentioned could backfire you. After all, they were written under your bosses' noses, so they are partially responsible for it (or someone up the food chain.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That means that there is the distinctive possibility that your professional and ethical efforts to raise severe issues might not be welcomed by someone above you. So keep record of all conversations related to this issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For, if things hit the fan because of the security concerns, you have a record that you did your part. And by documenting everything (including the security issues), you can cover your ass when the spin doctors come into place.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-14T21:13:10.197" />
  <row Id="12116" PostTypeId="2" ParentId="11846" CreationDate="2010-10-14T21:24:47.960" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Say what you need in 300 lines&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Note: this rule of thumb assumes you're following the 'one class per file' approach which is in its own right a good maintainability idea&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not an absolute rule, but if I see over 200 lines of code in one class I'm suspicious.  300 lines and warning bells come on.  When I open up someone else's code and find 2000 lines, I know it's refactoring time without even reading the first page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mostly this comes down to maintainability.  If you object is so complex that you can't express its behavior in 300 lines, it's going to be very difficult for someone else to understand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm finding that I'm bending this rule in the Model -&gt; ViewModel -&gt; View world where I am creating a 'behavior object' for a UI page because it often takes more than 300 lines to describe the complete series of behaviors on a page.  However I'm still new to this programming model and finding good ways of refactoring/reusing behaviors between pages/viewmodels which is gradually reducing the size of my ViewModels.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-14T21:24:47.960" CommentCount="1" />
  <row Id="12117" PostTypeId="2" ParentId="1056" CreationDate="2010-10-14T21:30:15.833" Score="0" ViewCount="" Body="&lt;p&gt;It is worth depending on how you define something to be &quot;worth&quot; your time. For example, it might not be worth to learn an actively used language like C# because you are up to your eyeballs working on Java (or some other actively used language.) You simply are in no position to cut the extra time to learn something new, not without risking something else (the quality of your work, family time, etc.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OTH, you have a particular career plan where learning the principles of a programming language or platform might help you get where you want to be X number of years. Then  it is worth it. It could be the next big thing or it could be COBOL (because you foresee a shortage of COBOL programmers in the near future despite the fact that 70%+ of the current economic infrastructure runs on COBOL or FORTRAN a somewhat-distant second.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or say, you have some freedom to create small development or IT operation utilities at work. Your company demands that applications being written in JEE or .NET, but doesn't give a hoot about the small utilities you create to automate your work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Say you need a custom ant task that pulls content from a remote server to bundle it into your deliverables. So you can use this as an opportunity to learn a new programming language and use there. Bang, you get a Groovy, Ruby, Lisp or Lua book, get into a hackathon and find ways to build a not-so-trivial utility into any language of your fancy. You find a way to invoke the bloody thing into your build...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... and voila, you learned a new language, a new thing, an new infrastructure capability while delivering value (in the form of a not-trivial artifact) to your boss. Now you have just opened the door a little bit to introduce something of your fancy at work without being disruptive and in a very-low-risk, acceptable manner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is worth depends on your motives, your goals, the time you have at hand and how you go about it. It is not a black-n-white thing.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-14T21:30:15.833" />
  <row Id="12118" PostTypeId="2" ParentId="10230" CreationDate="2010-10-14T21:32:35.750" Score="1" ViewCount="" Body="&lt;p&gt;My experience is developers rarely take criticism well (who does?). Thats why there are so many heated religious arguments about anything to do with programming (best language, platform, framework). So I would just bring it up in casual conversation as you mention you have been looking at the system. &lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-14T21:32:35.750" />
  <row Id="12119" PostTypeId="2" ParentId="247" CreationDate="2010-10-14T21:37:43.877" Score="3" ViewCount="" Body="&lt;p&gt;We write new Cobol code every day, and we are on a constant lookout for new programmers.  The supply is too small around here.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2011-05-02T08:30:13.813" LastActivityDate="2011-05-02T08:30:13.813" CommunityOwnedDate="2011-05-02T13:21:01.583" CommentCount="10" />
  <row Id="12120" PostTypeId="2" ParentId="11312" CreationDate="2010-10-14T21:40:00.913" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Workstation OS freedom&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're an open source shop, let your developers choose between Windows, Mac OS X, or their favorite flavor of Linux for their workstation.&lt;/p&gt;&#xA;" OwnerUserId="1187" LastActivityDate="2010-10-14T21:40:00.913" CommunityOwnedDate="2010-10-14T21:40:00.913" CommentCount="1" />
  <row Id="12121" PostTypeId="2" ParentId="3811" CreationDate="2010-10-14T21:46:48.557" Score="2" ViewCount="" Body="&lt;p&gt;The fact that you have an aerospace engineering degree and that you can program puts you above many. I would not worry if I were you. Having that degree and your programming experience opens a lot of doors in the DoD and industrial sectors. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are ways to formally get those things you desire to learn (algorithms, automata, compilers). There are traditional brick-and-mortar universities and community colleges out there that provide distance learning courses (I'm talking real universities and colleges, not diploma mills.) You can take one course here, another one there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know  your specifics in your life, but I can tell you that you don't have to kill yourself and go to school full-time again to learn those things. Just take your time and look at it as a midterm (rather than short-term) process. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could do it yourself (you seem to have what it takes for self-study), but sometimes it is better to put oneself under a curriculum (specially when we have work, family and &lt;em&gt;gasp&lt;/em&gt; a life.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, one of the things I would do if I were you is to buy &quot;Algorithms in a Nutshell&quot;, and go one algorithm at a time. Also get the classic MIT textbook &quot;Structure and Interpretation of Computer Programs&quot; or SICP for short, and work through the chapters. These two will lay the ground for more advance CS stuff should you wish to pursue it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will have to take a course or do the work yourself for algorithms, and compilers (plus you need to get the nitty gritty of discrete mathematics and theory of computation.) Take your time and do it one step at a time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My suggestion, should you wish to pursue it, would be to take the following in the given order:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Discrete Mathematics&lt;/li&gt;&#xA;&lt;li&gt;Theory of Computation&lt;/li&gt;&#xA;&lt;li&gt;Algorithms/Algorithm Analysis&lt;/li&gt;&#xA;&lt;li&gt;Compilers&lt;/li&gt;&#xA;&lt;li&gt;And maybe get and read Wolfgang&#xA;Mauerer' &quot;Professional Linux Kernel Architecture&quot; just to cover your OS&#xA;bases.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Don't try to cram it all up, nor sacrifice your life out of work. Just take it one step at a time. You don't need any of this to do your job, but if you want to strengthen your CS knowledge, this would be the sequence I'd suggest to do (which will would definitely open more doors to very, very interesting software jobs.)&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-14T21:46:48.557" CommentCount="3" />
  <row Id="12122" PostTypeId="2" ParentId="11575" CreationDate="2010-10-14T21:52:14.470" Score="2" ViewCount="" Body="&lt;p&gt;I don't think it makes sense to try and put everything into one place. There are a bunch of related things that go along with development and each can have its own system.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Excel for my todo list, populated via SQL call to the awful in house bug tracker&lt;/li&gt;&#xA;&lt;li&gt;My status reports are built from my todo list&lt;/li&gt;&#xA;&lt;li&gt;The app build process is usually documented via a build.txt file in the source tree root&lt;/li&gt;&#xA;&lt;li&gt;The local app deployment info is usually documented via a deployment.txt file in the source tree root&lt;/li&gt;&#xA;&lt;li&gt;Anything that a new dev would need to know is in a README.txt file in the source tree root. This includes where the CI server is and what projects use/are used by this  project.&lt;/li&gt;&#xA;&lt;li&gt;Project planning, dealing with infrastructure larger Meta-issues that deal with system architecture go on the wiki. It makes little sense to me to put build or local deployment notes here rather than with the source. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-14T21:52:14.470" />
  <row Id="12123" PostTypeId="2" ParentId="247" CreationDate="2010-10-14T21:55:06.017" Score="1" ViewCount="" Body="&lt;p&gt;Maybe not worth from a work market perspective, but you might want to have a look at it just to get a feel of how stuff was done &quot;in the good ol' day&quot;. ^^&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-14T21:55:06.017" CommunityOwnedDate="2011-05-02T13:21:01.583" CommentCount="1" />
  <row Id="12124" PostTypeId="2" ParentId="12082" CreationDate="2010-10-14T21:55:21.297" Score="1" ViewCount="" Body="&lt;p&gt;Often the most original and useful innovations come not from the question &quot;how can I solve this problem?&quot; but from &quot;how can I solve this problem with only these tools?&quot; That can lead you down avenues that you might never explore otherwise and often produce interesting and unexpected side-effects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing that has helped me to write more original things is laziness. I'm a horribly lazy person and I don't enjoy repetition, so after a while I start thinking &quot;I wonder if there is a way I can make this code deploy itself so I don't have to go through that whole deployment rigmarole every time&quot; or &quot;hey, all these classes look similar, I wonder if I can write some code to create them for me automatically so I don't have to go through and do it myself&quot; and so on. Then I try and design for the lazy user, so I don't just think &quot;what is the quickest way to get this written?&quot; instead I think &quot;if I was using this, what would be the most amazingly great way for this software to work?&quot; Of course, I rarely actually get as far as implementing those ideas, but it opens me up to a different way of thinking about the problem and gets me thinking about the design from a different perspective.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-14T21:55:21.297" />
  <row Id="12125" PostTypeId="2" ParentId="12082" CreationDate="2010-10-14T21:55:39.737" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I am looking for a few ideas on how to&#xA;  change a highly conventional work&#xA;  culture to be more innovated in their&#xA;  approached to problem solving.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'm all for innovation, but it is not clear why it is being pursued here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do they need to change? Are they &lt;strong&gt;&lt;em&gt;sufficiently&lt;/em&gt;&lt;/strong&gt; effective at what they do, for the problems they are paid to solve, in their conventional ways? What are the clear short-term and long-term benefits of changing the current &lt;em&gt;modus operandi&lt;/em&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't attempt to change a work culture unless there are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Clear, objective observations on&#xA;things that are currently&#xA;detrimental and need to change, and&lt;/li&gt;&#xA;&lt;li&gt;There is a clear ROI in the&#xA;cultural/process change.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Change for the sake of change is not worth pursuing, and innovative does not necessarily translate into increased efficiency. There should be a clear problem statement that is worth solving. Unfortunately, I do not see that clearly stated in the question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A development group is first and foremost a problem solving machine that does not to run as its most efficiency. It simply needs to run optimally and predictably. Predictability is the most important quality because such a group must manage risk and uncertainty. Methodical management of risk and uncertainty are at the core of efficiency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, a development group is, whether we like it or not, a social group. There are social dynamics within the group and between the group and other groups in the organization. Innovation is counterproductive if it introduces friction that cannot be justified by a clear ROI or problem statement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think innovation is great, but introducing change for the sake of pure innovation tends to be unproductive, if not destructive.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-14T21:55:39.737" CommentCount="1" />
  <row Id="12126" PostTypeId="2" ParentId="12016" CreationDate="2010-10-14T21:56:03.260" Score="6" ViewCount="" Body="&lt;p&gt;The most bothersome in developing for Apple products? Apple.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Apple's insistence on controlling the entire development process and toolchain under the guise of creating a superior user experience while simultaneously making that experience inconsistent and overly restricted.&lt;/li&gt;&#xA;&lt;li&gt;Apple's development of multiple private frameworks and technologies which they do not share with their developers.&lt;/li&gt;&#xA;&lt;li&gt;Apple's capricious exercise of policy wherein it's impossible to know with certainty that investing in the training and effort to develop applications or accessories for their iOS products will pay off by approval in their AppStore, and that it won't be revoked sometime after approval.&lt;/li&gt;&#xA;&lt;li&gt;Apple's forced obsolescence policy wherein support for devices not sold for over 18 months is removed from frameworks.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-14T21:56:03.260" />
  <row Id="12127" PostTypeId="2" ParentId="260" CreationDate="2010-10-14T22:17:56.110" Score="3" ViewCount="" Body="&lt;p&gt;For college, it would be unthinkable &lt;em&gt;NOT&lt;/em&gt; to include math beyond calc II. The amount of doors such courses open are incredible. It doesn't matter how much one can program. There is no way in hell that one will program digital signal processors, do scientific programming or any type of advanced work (even in economics and finance) without having a good mathematical grounding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is just a tool to &quot;computerize&quot; a solution to a problem. But if the problem requires mathematical/engineering skills, no amount of programming skills will compensate for a lack of math and science.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just because the bulk of programming work out there does not require advance math (or even programming) skills, that does not mean that's all there is, that &lt;em&gt;that's&lt;/em&gt; is as far as the ceiling goes. People don't go to CS to become a programmer, but to become a computer scientist. Programming is an ancillary application of CS skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, I whole hearty believe one cannot tackle hard problems in the enterprise (high availability, massive parallelism, concurrency) without having a good theoretical background and firm knowledge of limits, series, sequences, logic, calculus, discrete mathematics and automata theory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good, solid, maintainable programs exhibit structural properties with mathematical underpinnings. So all of these things have practical implications on work outside academia.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-14T22:17:56.110" CommentCount="10" />
  <row Id="12128" PostTypeId="2" ParentId="12021" CreationDate="2010-10-14T22:30:03.883" Score="1" ViewCount="" Body="&lt;p&gt;Although I don't get much of a chance to play them any more, I love simulators - particularly ones which you can tinker with (the Microsoft ones being particularly good in that respect, I think I did more modding that flying in those ones).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from flight sims I enjoy the Silent Hunter series (submarine sims - nothing like going all old-school with the stop watch and geometry calculations/log tables). The latest version apparently has lots of extensibility points which can be scripted in Python (IronPython I think) which I'd love to take a stab at...if only I had the time...&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-14T22:30:03.883" CommunityOwnedDate="2011-01-12T17:58:32.720" />
  <row Id="12129" PostTypeId="2" ParentId="11002" CreationDate="2010-10-14T22:30:21.403" Score="4" ViewCount="" Body="&lt;p&gt;Although it's not exclusive to UML, I use &lt;a href=&quot;http://live.gnome.org/Dia&quot; rel=&quot;nofollow&quot;&gt;Dia&lt;/a&gt;. It has the symbols used in most (if not all) of the UML diagrams, but it also supports flowcharts, network diagrams, and a few other things that I've occasionally used as a software engineer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/fTRI3.png&quot; alt=&quot;enter image description here&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2011-02-24T12:40:48.583" CommentCount="2" />
  <row Id="12130" PostTypeId="2" ParentId="11312" CreationDate="2010-10-14T22:32:10.327" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Dual Monitors (I got that, yay me.)&lt;/li&gt;&#xA;&lt;li&gt;Access to newsgroups (me no have&#xA;it:/)&lt;/li&gt;&#xA;&lt;li&gt;Free coffee  (I got that, too, yay&#xA;me.)&lt;/li&gt;&#xA;&lt;li&gt;Blackboard.&lt;/li&gt;&#xA;&lt;li&gt;One or more bookshelves.&lt;/li&gt;&#xA;&lt;li&gt;Laptop.&lt;/li&gt;&#xA;&lt;li&gt;In-house training on software&#xA;engineering processes, tools, etc.&lt;/li&gt;&#xA;&lt;li&gt;Ability to create your own &quot;helper&quot;&#xA;tools (if they help you get the job&#xA;done) in any language of your&#xA;linking (which is different from&#xA;&lt;em&gt;using any language outside the official ones for developing the&#xA;main products you are getting paid&#xA;for&lt;/em&gt;.)&lt;/li&gt;&#xA;&lt;li&gt;Part-time student assistance.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-14T22:32:10.327" CommunityOwnedDate="2010-10-14T22:32:10.327" />
  <row Id="12131" PostTypeId="2" ParentId="11312" CreationDate="2010-10-14T22:33:17.310" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Memory upgrade&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;because sometimes the model I'm building in my head just won't fit.&lt;/p&gt;&#xA;" OwnerUserId="5422" LastActivityDate="2010-10-14T22:33:17.310" CommunityOwnedDate="2010-10-14T22:33:17.310" />
  <row Id="12132" PostTypeId="2" ParentId="12021" CreationDate="2010-10-14T22:33:49.307" Score="5" ViewCount="" Body="&lt;p&gt;A number of friends and I enjoy Minecraft.  It's a freeform game that's a lot like legos. Somebody built a &lt;a href=&quot;http://www.youtube.com/watch?v=LGkkyKZVzug&quot; rel=&quot;nofollow&quot;&gt;16-Bit ALU&lt;/a&gt; using the circuit material in it. It's still in alpha, but it's very enjoyable and mentally stimulating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;UPDATE: I just wanted to update that Minecraft is now in beta.&lt;/p&gt;&#xA;" OwnerUserId="5179" LastEditorUserId="5179" LastEditorDisplayName="" LastEditDate="2011-01-12T17:21:40.440" LastActivityDate="2011-01-12T17:21:40.440" CommunityOwnedDate="2011-01-12T17:58:32.720" CommentCount="6" />
  <row Id="12133" PostTypeId="1" CreationDate="2010-10-14T22:35:50.497" Score="0" ViewCount="270" Body="&lt;p&gt;As much as programmers hate to document their code/system and draw UML (especially, Sequencing, Activity and State machine diagrams) &lt;strong&gt;or other diagramming notation&lt;/strong&gt;, would you agree to do it if it kept managers from requesting a &quot;minor change&quot; every couple of weeks?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IOW, would you put together visual models to document the system if it helped you demonstrate to managers what the effect of changes are and why it takes so long to implement them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Edited to help programmers understand what type of answer I'm looking for.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2nd edit: Restating my question again, &quot;Would you be willing to use some diagramming notation, against your better nature as a programmer, if it helped you manage change requests?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This question isn't asking if there might be something wrong with the process. It's a given that there's something wrong with the process. Would you be willing to do more work to improve it?&lt;/p&gt;&#xA;" OwnerUserId="4982" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-15T16:59:37.660" LastActivityDate="2010-11-09T12:08:15.187" Title="Would you use UML if it kept stakeholders from requesting changes frequently?" Tags="&lt;development-process&gt;&lt;programming-practices&gt;&lt;software-engineering&gt;&lt;uml&gt;&lt;diagramming&gt;" AnswerCount="7" CommentCount="11" />
  <row Id="12134" PostTypeId="2" ParentId="12021" CreationDate="2010-10-14T22:36:26.643" Score="8" ViewCount="" Body="&lt;p&gt;Running and cycling.  Unfortunately these &quot;games&quot; don't earn me experience levels, but they grant +1 cardiovascular system when equipped!  Seriously though, I've had some breakthroughs when I can decompress &amp;amp; spend some time away from knowledge work.&lt;/p&gt;&#xA;" OwnerUserId="5197" LastActivityDate="2010-10-14T22:36:26.643" CommunityOwnedDate="2011-01-12T17:58:32.720" CommentCount="1" />
  <row Id="12135" PostTypeId="2" ParentId="12133" CreationDate="2010-10-14T22:40:29.810" Score="1" ViewCount="" Body="&lt;p&gt;Assuming you are using UML correctly, yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you already have code, you should be able to reverse engineer your UML models from the code. For the types of diagrams that can't be easily reversed engineered (deployment diagrams come to mind, but there are others), you should be able to keep them up to date with every change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you aren't using UML properly and have too many diagrams that don't actually add value to your documentation, then I would suggest cleaning them up out of your documentation.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-10-14T22:40:29.810" CommentCount="1" />
  <row Id="12136" PostTypeId="2" ParentId="11312" CreationDate="2010-10-14T22:43:19.903" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Color laser printer&lt;/strong&gt; (can be shared, but should be no more than 20' or so from one's desk).&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-14T22:43:19.903" CommunityOwnedDate="2010-10-14T22:43:19.903" />
  <row Id="12137" PostTypeId="2" ParentId="247" CreationDate="2010-10-14T22:50:49.977" Score="0" ViewCount="" Body="&lt;p&gt;I just did a search for &quot;cobol&quot; on Australia's largest job website. It returned 87 results, and (from a quick skim) they mostly seem to be legacy maintenance positions in banks and financial institutions. Mostly distinctly better paid than more &quot;modern&quot; language based jobs - presumably due to the rarity of Cobol experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So yeah, it seems like Cobol would be worth learning if you 1) don't mind doing legacy maintenance and 2) you want to get into a niche which is well paid and probably not very competitive since it's something few people are learning anymore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I'm assuming the Cobol market would be similar in most First World economies, but could be wrong?)&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-14T22:50:49.977" CommunityOwnedDate="2011-05-02T13:21:01.583" CommentCount="6" />
  <row Id="12138" PostTypeId="2" ParentId="247" CreationDate="2010-10-14T22:51:03.847" Score="1" ViewCount="" Body="&lt;p&gt;From a personal perspective I would say that there are better things to learn first.  However, many large companies have very large investments in their COBOL code base which they'll probably never really be able to leave behind, creating an industry for COBOL programmers to maintain the code base as well as write new code.  The company I work for is a large financial company and our technology split for developers is roughly 30% COBOL, 40% Java and 30%C#.&lt;/p&gt;&#xA;" OwnerUserId="5319" LastActivityDate="2010-10-14T22:51:03.847" CommunityOwnedDate="2011-05-02T13:21:01.583" CommentCount="1" />
  <row Id="12139" PostTypeId="2" ParentId="11002" CreationDate="2010-10-14T22:55:10.547" Score="3" ViewCount="" Body="&lt;p&gt;There's &lt;a href=&quot;http://yuml.me/&quot; rel=&quot;nofollow&quot;&gt;yuml&lt;/a&gt; which is pretty cool as it allows you to create UML diagrams online, with no tools and so easily embeddable in blogs, wikis, emails, etc.&lt;/p&gt;&#xA;" OwnerUserId="5319" LastActivityDate="2010-10-14T22:55:10.547" CommentCount="1" />
  <row Id="12140" PostTypeId="2" ParentId="386" CreationDate="2010-10-14T23:00:19.413" Score="1" ViewCount="" Body="&lt;p&gt;Competing on price always ends in fail. You are, in essence, commoditizing the product(s). It makes sense if your money maker isn't the product itself, but if it is... then it's a terrible idea.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-14T23:00:19.413" />
  <row Id="12141" PostTypeId="2" ParentId="361" CreationDate="2010-10-14T23:03:08.537" Score="1" ViewCount="" Body="&lt;p&gt;Remember that the science of computing is not the same as developing software and so for most comp-sci degrees I would expect there to be a large discrepancy between what you learn and what you apply (and how) in the real world.  But its not that important.  You'll learn what you need to on the job, and, if motivated, off the job.  One of the things I love most about programming is that I'll never run out of stuff to learn.&lt;/p&gt;&#xA;" OwnerUserId="5319" LastActivityDate="2010-10-14T23:03:08.537" />
  <row Id="12142" PostTypeId="2" ParentId="12133" CreationDate="2010-10-14T23:06:40.517" Score="3" ViewCount="" Body="&lt;p&gt;Gernerally speaking if minor changes required updates to UML diagrams then I would consider the diagrams to be too detailed. I have found the best use of UML diagrams is to succinctly convey the design of a system. It's incredibly beenficial to be able to look at a class diagram or a deployment diagram and get a feel for the software compared to trawling through code or trying to suck the information out of other distracted devs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the mistake a lot of people make - including me when I first started modelling - is to think that the model has to be of 100% complete. For example class diagrams can very quickly get unwieldy if they include every single class in a big project but often there are a lot of utility classes for logging, loading configuration settings etc. that don't really add a lot to the picture and can be ommitted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However there are also cases where more detailed UML diagrams may be useful. In particular activity or state diagrams can help clarify how a particularly tricky piece of business logic is working. In those cases it is a very good idea to change the diagram for every small change as a way of keeping track of the business process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;UML and modelling are a balancing act. If the incorporating the changes your manager is making into the diagrams make them more useful then add them. If on the other hand it takes you longer to make the changes to the models than it does to write the code then perhaps your UML is too low level.&lt;/p&gt;&#xA;" OwnerUserId="5066" LastActivityDate="2010-10-14T23:06:40.517" />
  <row Id="12143" PostTypeId="2" ParentId="361" CreationDate="2010-10-14T23:06:47.273" Score="1" ViewCount="" Body="&lt;p&gt;It is the same way as with a drivers licence.  Mastery takes much much longer....&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-14T23:06:47.273" />
  <row Id="12144" PostTypeId="2" ParentId="11312" CreationDate="2010-10-14T23:15:52.727" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Fast (i.e. 10000+rpm) disks!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nothing frustrates me more than waiting for I/O, where I find my computer can't keep up with my thinking.&lt;/p&gt;&#xA;" OwnerUserId="2508" LastActivityDate="2010-10-14T23:15:52.727" CommunityOwnedDate="2010-10-14T23:15:52.727" CommentCount="1" />
  <row Id="12145" PostTypeId="2" ParentId="12133" CreationDate="2010-10-14T23:21:47.490" Score="13" ViewCount="" Body="&lt;p&gt;Your problem is a lack of communication between you and your managers/stakeholders.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They don't understand the problems that making frequent changes can cause - even if you have an agile process in place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But equally the developers don't understand the need that the program is designed to solve or the business process as well as you should.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why do I say this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the managers were familiar with the development process then they'd know when was the appropriate time to request changes - before the start of the next sprint, or when the design document for the next phase was being written etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the developers understood the problem better then the product would be closer to the needs of the stakeholders.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to address the communication issue and put in place procedures to manage the change - because change &lt;strong&gt;will&lt;/strong&gt; happen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hiding behind UML diagrams (or specifications, or even story cards) isn't going to solve the problem.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-14T23:21:47.490" CommentCount="9" />
  <row Id="12146" PostTypeId="2" ParentId="361" CreationDate="2010-10-14T23:21:51.863" Score="0" ViewCount="" Body="&lt;p&gt;Along with the fact that you should not be expected to be an expert when you are just entering the work force, one thing that gets a lot of people down is that they see co-workers who know about things that they do not. The reality though is that you know things that they do not know about either, and as you gain expertise in your sub-field, your knowledge base will divide more and more from other people. I know I was intimidated very much how you are when I started my first job not too long ago, because my manager new absolutely everything about the tools we were using. While I am no where close to approaching him with those particular tools and methodologies, I have come to realize that there are certain things that even a grunt like me knows more about than some of the senior devs. As a young programmer, you have the advantage that everything is new to you, which can drive you to aggressively learn new technology and techniques, because you have to do that in order to catch up and prove yourself. Not all older developers are burnt out (maybe even most are still just as driven as when they started), but it is definitely an edge that you can use to your advantage. &lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-14T23:21:51.863" />
  <row Id="12147" PostTypeId="2" ParentId="3884" CreationDate="2010-10-14T23:27:37.080" Score="1" ViewCount="" Body="&lt;p&gt;I thought they were cool when I came across the notation in the early 80s. But it's so close to normal code, and cumbersome to maintain both the diagrams and the code that I decided just using indented code was close enough for my taste.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-14T23:27:37.080" CommentCount="1" />
  <row Id="12148" PostTypeId="2" ParentId="247" CreationDate="2010-10-14T23:28:35.753" Score="16" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;Nooo, of course not. COBOL is a dead language, after all. Or is it?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with that view is that programmers at sites like these usually work with high tech, fast running (and equally fast burning out) companies. For them COBOL is a dead language - it is nowhere to be seen. Has not been for some time now, 'tis true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But COBOL was not ment for them. There is more to software industry than this. Computers were not made for people with some unrational need for upgrading and replacing old with new all the time. They were made for business purposes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You want to see COBOL? Go to a company that processes payroll, or handles trucking of goods, or shipping (as in ships), or handles your bank account. There is a huge invisible system of code out there that's practically invisible to the users, and most of them never think about it although they encounter it in one way or another everyday (ATMs?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;No, it is not dead. But it is &quot;legacy&quot; for sure ... or is it?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again, depends how you look at it. Nowadays, a lot of people will take Java, C, something against COBOL ... rewriting from scratch ... introducing new bugs as we go along, naturally. That is not saying COBOL doesn't have bugs, and quirks. It does, as much as the next language. Of course it does. But in &quot;COBOL times&quot; companies which take bugs more seriously than usual (insurance, banks) tended to produce higher quality code with special quality service groups ... today there are deadlines where time and budget always wins over quality (also, these systems were developed for longer periods back then then the equivalent now).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If some software has been working for 30+ years, where is the incestive to switch? Whole companies went out of business because of ignoring the old wisdom of &quot;don't fix what ain't broken&quot;. Many tried to rewrite the thing ... then the first rewrite cost a lot, then the second one costed even more, ... and none of those new &amp;amp; improved managed to replace it. As I said, this industry is fast burning ... it also tends to forget fast. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the 70s COBOL was dead or dying soon, C/C++ were going to rule, then again in the early 80s Pascal was taking over, ... then in the 90s it was Java as THE Language, ... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think of Unisys Mapper, dBase, Clipper, Cold fusion, ... do people even remember those? Each one of them was the gravedigger for COBOL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Taking that into account, and the fact that it is great for processing high volumes of transactions, batch processing or record/transaction oriented processing, that it compiles without errors a subroutine 30 years old as managed COBOL code, and calls it from a managed COBOL.NET should you wish to go Windows and .NET, I'm having trouble finding a suitable replacement for it. (I'm also having trouble finding a Microsoft technology that lasted more then a decade.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, compare this with the stupid environment of today, where for a silly &quot;Hello World&quot; there is need of a framework of 500 MB, developing tools of 10 DVDs, and when it stops working there is no way to understand why so we just reboot. Do you wish for your &lt;em&gt;paycheck mainframe&lt;/em&gt; (btw, there is no such thing, but go with me here, I cannot find a suitable word for it) to reboot every once in a while. Of course you don't. Neither do I. That's why those things are made for running. (What do you think of uptime of 20 years? Yes, so do I. :-) And they're getting smaller and faster every day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, new COBOL code is being written today. One just has to know where to look.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those laughing at COBOL, IMHO, it is like laughing at the Egyptian Pyramids, they are there from 5000 years and they still will be there in next 5000 years, while today's &quot;hello world&quot; housing needing 24 controlls to work will be deleted, replaced, forgotten next month. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;So where are all those COBOL programmers?&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ah, for here lies the rub. The thing is that a lot of them don't have any computing science background. A lot of them are not professional programmers (as in cs sciences oriented univercity graduates). For the most part, they are people in their late 30's-50's, from all areas of expertise, trained entirely by the company specifically for that job. So they aren't COBOL programmers - the training they got is specific to the company which so heavily promotes from within. And that makes them pretty much invisible.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-14T23:28:35.753" CommunityOwnedDate="2011-05-02T13:21:01.583" CommentCount="6" />
  <row Id="12149" PostTypeId="2" ParentId="11346" CreationDate="2010-10-14T23:33:01.293" Score="18" ViewCount="" Body="&lt;h1&gt;Shelves full of good books&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;K&amp;amp;R, Paul Graham, Joel Spolsky, etc - and tons of books from O'Reilly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can tell a hacker from their bookshelf.&lt;/p&gt;&#xA;" OwnerUserId="381" LastActivityDate="2010-10-14T23:33:01.293" CommentCount="1" />
  <row Id="12150" PostTypeId="2" ParentId="247" CreationDate="2010-10-14T23:37:22.683" Score="3" ViewCount="" Body="&lt;p&gt;In the year 2000 I read a statistic that there were more lines of COBOL written than all other languages combined.&lt;br&gt;Add to that the IBM guarantee that any TEXT deck (object code), compiled on any MVS system is executable on all of their MVS systems and you have a guarantee that there will be COBOL programming around as long as the sun shines.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-10-14T23:37:22.683" CommunityOwnedDate="2011-05-02T13:21:01.583" CommentCount="1" />
  <row Id="12151" PostTypeId="2" ParentId="11346" CreationDate="2010-10-14T23:51:50.070" Score="0" ViewCount="" Body="&lt;h3&gt;Caves&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Perhaps this is just me, but - &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I'm really in the zone, I want to go into a dimly lit quiet cave with a mini-kitchen; a window by the chair to provide mental stimulation, controllable temperature, and maybe a scented candle burning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unlimited salad - heavy food brings down the thinking ability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Probably a cot as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Okay, that's sort of a dorm/hotel room.... :-)&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-14T23:51:50.070" />
  <row Id="12152" PostTypeId="2" ParentId="12087" CreationDate="2010-10-14T23:58:03.880" Score="0" ViewCount="" Body="&lt;p&gt;You could always just set up a good old mailing list and email patches for code review that way. Some people say patch emails are a sign of bad practice in version control, but I disagree since ideally all the developers read the mailing list. If they see a patch while just downloading email they are likely to click on it and maybe write a reply.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think most version control systems make this easy, like with &lt;code&gt;git-sendemail&lt;/code&gt; for example.&lt;/p&gt;&#xA;" OwnerUserId="227" LastActivityDate="2010-10-14T23:58:03.880" />
  <row Id="12153" PostTypeId="2" ParentId="12070" CreationDate="2010-10-15T00:19:53.770" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Probably Not&lt;/strong&gt;&lt;br&gt;&#xA;It's not an accomplishment but most of all because it puts everything you've ever said under scrutiny. I don't mind telling my peers that I'm ignorant about something so I can learn from them but I don't want an employer seeing that. I just can't trust someone in HR to know that someone that can admit they don't know everything is better than someone that thinks they do.&lt;/p&gt;&#xA;" OwnerUserId="5426" LastActivityDate="2010-10-15T00:19:53.770" CommentCount="5" />
  <row Id="12154" PostTypeId="2" ParentId="10230" CreationDate="2010-10-15T00:32:59.743" Score="2" ViewCount="" Body="&lt;p&gt;What is your intent in telling the programmer that his code needs improvement?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you trying to get him to be a better programmer?  Then yes, you're out of line, it's not your place to tell him that his programming skills are subpar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your goal is to raise security concerns about the code, then yes, that can be appropriate, but not with the programmer.  Talk to whoever is in charge of the application and ask if they're interested in some concerns you have.  Do not just go and say &quot;Hey, you know that app that maintains the records about foo?  It sucks, and here's why.&quot;  Describe the problem separate from the issues of how it got to be that way, and who did it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider if you noticed that the overhead door to the warehouse was secured at night with a piece of twine.  You wouldn't say &quot;Your security sucks, and whoever set it up is an idiot, and if you don't fix it now, you're screwed.&quot;  Even if you knew all the backstory about how it got to be that way, you'd leave all that out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead, you'd say &quot;I saw something that I thought I should point out.  I saw that the warehouse door is closed with twine, and I'm afraid that wouldn't be strong enough to keep out a determined burglar.&quot; It's entirely focused on the problem you see, and doesn't get into the drama of how it got to be that way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if you say &quot;Hey, I've got security concerns&quot; and they say &quot;Yeah, it's OK, it's internal, it's no big deal,&quot; then let it drop.  You've done your job.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-15T00:32:59.743" CommentCount="2" />
  <row Id="12155" PostTypeId="2" ParentId="247" CreationDate="2010-10-15T00:36:07.740" Score="2" ViewCount="" Body="&lt;p&gt;If you want to have a job as a COBOL programmer, then sure, go ahead and learn it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For any other reason, like trying to learn something useful that might help you with modern programming techniques, no, don't bother.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-15T00:36:07.740" CommunityOwnedDate="2011-05-02T13:21:01.583" CommentCount="1" />
  <row Id="12156" PostTypeId="2" ParentId="12070" CreationDate="2010-10-15T00:37:53.227" Score="6" ViewCount="" Body="&lt;p&gt;I have a special section on my CV that shows potential employers that I communicate effectively and work well with others. The section before that lists my involvement / accomplishments in various free/open source projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need &lt;em&gt;something&lt;/em&gt; to show that you not only know what you're doing, but can get along well with a team of your peers. While yes, you can articulate this in an interview, you need to help make sure that you actually get the call in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A number of people maintain that a reasonably high reputation score on Stack Overflow generally shows that you are not only knowledgeable, but also an effective communicator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have found many cases where this theory is directly contradicted. There are more than a few people on SO that have 12k + reputation and are consistently and incredibly rude.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I hire someone, I do ask if they read blogs, participate on programming related web sites, etc and I generally research their participation on whatever they mention.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A more 'general' synopsis of spare time activities is better, for instance:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Regular participant on the Stack Overflow Q&amp;amp;A Site&lt;/li&gt;&#xA;&lt;li&gt;Regular editor of CS related articles on Wikipedia&lt;/li&gt;&#xA;&lt;li&gt;Member of the League For Programming Freedom&lt;/li&gt;&#xA;&lt;li&gt;Contributing / Voting member of Software In The Public Interest&lt;/li&gt;&#xA;&lt;li&gt;Founder of Programmers For The Ethical Treatment Of Unicorns (PETU)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Just show the hiring manager that you &lt;em&gt;actually enjoy programming so much that you do it in your spare time&lt;/em&gt; and that you get along with others. There's no reason to draw attention to a single activity just because it features a numerical score.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-10-15T00:37:53.227" CommentCount="2" />
  <row Id="12157" PostTypeId="2" ParentId="5233" CreationDate="2010-10-15T00:53:35.737" Score="2" ViewCount="" Body="&lt;p&gt;I had a BS in Bio. I definitely feel I benefited by getting an MS in CS. I would &lt;em&gt;not&lt;/em&gt; recommend a BS in CS or anything else as a second degree just for practicality's sake.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;MS programs are focused on the discipline and you will generally not need to take any classes that are not somehow related to that discipline. With a second BS, you may find yourself having to fulfill other general education requirements that were not met while getting your first BS. In most cases unless it's the same school and you completed your first degree relatively recently, there will be some liberal arts or gym requirement that you also have to complete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you get your masters, most employers will ignore your BS field. An MS is also becoming more and more of a standard. That said, I'd make sure you have at least 4-5 years exp before going that route. You'll get much more out of it if you have solid real world exp. It will also almost assuredly be easier.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-10-15T00:53:35.737" CommentCount="2" />
  <row Id="12158" PostTypeId="2" ParentId="12070" CreationDate="2010-10-15T01:40:37.560" Score="0" ViewCount="" Body="&lt;p&gt;I haven't yet put my profile on my CV, mostly because I haven't thought of it while updating. It seems though that it's consistently quite high in google searches on my name, so people in the know will have no problem being led towards it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS. I just created my stackexchange.com profile, have had my stackoverflow.com profile for a few years.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-15T01:40:37.560" CommentCount="1" />
  <row Id="12159" PostTypeId="2" ParentId="12016" CreationDate="2010-10-15T01:46:11.163" Score="1" ViewCount="" Body="&lt;p&gt;The closed platform makes debugging on the device a pain. For example, IT deleted my keychain due to ununreated issue.  It turned out that action screwed up my provisioning profile and took me 6-hours to resolve.  All of this happened on the day the iPad app was due to the client, Fun.&lt;/p&gt;&#xA;" OwnerUserId="4058" LastActivityDate="2010-10-15T01:46:11.163" />
  <row Id="12160" PostTypeId="2" ParentId="247" CreationDate="2010-10-15T01:53:36.920" Score="0" ViewCount="" Body="&lt;p&gt;Think about the kinds of problem domains you want to work in.  Typically those domains have a set of languages that are generally used for the purpose.  If COBOL matches that then go ahead.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no way I would touch either cobol or the problem domain(s) that use it heavily with a 10 foot pole.  I'd rather flip burgers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also consider if the language offers some bonus/improvment to your programming ability/concepts.  I can't think of anything COBOL can do/implements/features that isn't done better or can be demonstrated better in another language.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You and others may feel differently.&lt;/p&gt;&#xA;" OwnerUserId="3439" LastActivityDate="2010-10-15T01:53:36.920" CommunityOwnedDate="2011-05-02T13:21:01.583" />
  <row Id="12161" PostTypeId="2" ParentId="12082" CreationDate="2010-10-15T02:12:26.047" Score="0" ViewCount="" Body="&lt;p&gt;Constantly explore what other people are doing. Relax. Grab a cup of coffee. Read a fictional book. And then think of ways to do it something totally different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OK... I made that sound way so easy.&lt;/p&gt;&#xA;" OwnerUserId="4058" LastActivityDate="2010-10-15T02:12:26.047" />
  <row Id="12163" PostTypeId="2" ParentId="8973" CreationDate="2010-10-15T02:36:19.377" Score="1" ViewCount="" Body="&lt;p&gt;The same language I learned first: C++. The way it was taught to me told me about more than just &quot;you type this it does that&quot;. It taught me the fundamentals of how computers work, exactly what a variable is, what bits and bytes are, ext...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Twenty years later can't remember a damn line of C++. But because of the principles I learned from that language I'm constantly able to pick up a new language whenever I need to.&lt;/p&gt;&#xA;" OwnerUserId="4058" LastActivityDate="2010-10-15T02:36:19.377" />
  <row Id="12164" PostTypeId="2" ParentId="3488" CreationDate="2010-10-15T03:00:54.720" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Say someone has a pretty low GPA&#xA;  (Grade Point Average) but has super&#xA;  positronic intelligence to work around&#xA;  computers,&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've never met a super intelligent person getting a bad GPA (or scholastic scores for those not familiar with GPA-based grading). I've met very smart people dropping out of school and do well, but they had good grades, some average some ok, but never low GPAs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The tale of the uber-intelligent person getting low GPAs is akin to the mythical unicorn or crocs on the NY sewage system. In other words, BS.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;Would you get a job? (Considering the GPA)&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Definitely he can get a jobs. McDonalds doesn't look at the GPA. So trivially, the answer is yes.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;Would it really affect the way people perceive you in the industry?&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Most definitely by many in the industry. I just cannot imagine someone with less than a 3.0 GPA average making all the way through the end of a Bachelor of Science degree, be it on CS, Sciences or Engineering.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;In the long run, does the concept of GPA hold any good?&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In the long run, not really. On the long run what matters is a good working track record. But to get there you have to start somewhere. Most companies that are worth working for will pay close attention to one's GPAs when fresh out of school (unless there are ameliorating factors, like having relevant work experience or internships before graduation.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other companies don't pay attention to the GPA for fresh-out-of-school graduates. Some are good, some are really sh*tty. And starting your career on a sh*tty company, with sh*tty developers and crappy software and crappy practices pretty much become your doom. The first job you have tends to dictate how your first 5-10 years of career will be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having a good GPA is not a guarantee that you are a good developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But having a bad GPA is almost a guarantee that can't program for squat, or you lack analytical skills, you have too much personal problems, or you simply lack the discipline. In other words, HR will perceive you as a risk and your CV will be handled like radioactive waste.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously there are exceptions, but they are exceptions. Unless you have a good track record and can demonstrate in tangible manner that you can do the job, a bad GPA will be your doom as soon as you get out of college, with only crappy jobs as an option.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-15T03:00:54.720" />
  <row Id="12165" PostTypeId="1" AcceptedAnswerId="12180" CreationDate="2010-10-15T03:15:25.780" Score="1" ViewCount="211" Body="&lt;p&gt;I'm not sure if i should ask this question here, or on SO ... i'll cross post it to SO if this is the wrong place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My group at work has been trying to come up with a good process that we can use with TFS. I'm just wondering if some of you guys had some successful strategies with using TFS across multiple sites using multiple branches. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One specific issue that we have is probably our release engine. On the simple side, a developer should be able to check in his/her changes into the DEV Branch, and then ok certain date (say a freeze date) the DEV Branch will be &quot;reverse integrated&quot; into the Main Trunk (QA) in which then the changes will be pushed to the Production branch. The issue arose when a user check into the DEV Branch, but he doesn't want those changes to be moved into QA (because maybe other portion of the code is not done yet) ... any thoughts on that?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;thanks in advanced&lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-10-15T08:33:57.803" Title="How do you structure your branches in TFS" Tags="&lt;version-control&gt;&lt;tfs&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="12166" PostTypeId="2" ParentId="11153" CreationDate="2010-10-15T03:16:06.597" Score="0" ViewCount="" Body="&lt;p&gt;Content creation will always exist. And creative content requires creative solutions. There's no George Jetson &quot;button&quot; for creativity and original thinking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about all the best software... say Photoshop. How could you automate the creation of &lt;strong&gt;&lt;em&gt;any&lt;/em&gt;&lt;/strong&gt; of their tools?&lt;/p&gt;&#xA;" OwnerUserId="4058" LastActivityDate="2010-10-15T03:16:06.597" CommunityOwnedDate="2010-10-15T03:16:06.597" />
  <row Id="12167" PostTypeId="2" ParentId="531" CreationDate="2010-10-15T03:17:25.843" Score="2" ViewCount="" Body="&lt;p&gt;Source Control server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being able to backup and tinker without fear of going back to a working version.&lt;br&gt;&#xA;Being able to commit at work and pull at home.&lt;br&gt;&#xA;Being able to pull someone else's work and commit it back to them.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And... a third monitor at work. One monitor for messenging, pandora, email... second monitor for background tasks - queries, builds running in background, etc... big monitor for what I'm focused on.&lt;/p&gt;&#xA;" OwnerUserId="2536" LastActivityDate="2010-10-15T03:17:25.843" />
  <row Id="12168" PostTypeId="2" ParentId="11312" CreationDate="2010-10-15T03:30:54.783" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Right to use his own methods&lt;/strong&gt; and allowed to do new experiment rather then using same old methods and sticking to the old rules. and of-course &lt;strong&gt;Light instrumental Music&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="4902" LastActivityDate="2010-10-15T03:30:54.783" CommunityOwnedDate="2010-10-15T03:30:54.783" />
  <row Id="12169" PostTypeId="2" ParentId="12017" CreationDate="2010-10-15T03:35:18.937" Score="1" ViewCount="" Body="&lt;p&gt;Time is in limited supply. Economics 101. You have to choose what's most important to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If after hours, spending time at the movies, watching football, on a date with your GF/Wife, kids... or learning to program with a new book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All have worth... you have to decide what's worth more. If you can do it AT work while getting paid? Awesome... odds are you won't get 40 hours to read and digest a new book. &lt;/p&gt;&#xA;" OwnerUserId="2536" LastActivityDate="2010-10-15T03:35:18.937" CommentCount="1" />
  <row Id="12170" PostTypeId="1" CreationDate="2010-10-15T03:46:09.520" Score="2" ViewCount="210" Body="&lt;p&gt;Good Day Everyone,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am realy out of option for interpreting the GPL for EXTJS for my work/idea/personal project. I can see that this is an active forum I realy hope, I have a closure on this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First let me explain my project, Iam creating this website which is like a webportal which is intented for End-User, now this webapps uses an EXTJS library which is GPL'ed as with my understanding on this GPL Any application uses GPL license libray should be released to as Open Source a a GPL compatible Linsence, this is when I or my application is a derivework or I have modified the Library and released it. or destribute it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But EXTJS has this dual license which is typically giving me the rights to do what I want. without giving out my code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If my application is intented for end user only, not a derive form of work, not a library, not a development tool, I will not distribute it because it is on the web. with this also the Libraries i will use will remain untouch as it is. and I will have list of library I use and thier respective license to credit them&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given this can I not close-source my application and not violate the GPL?&#xA;is it ok for me to use GPL library so long as the above is meet?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question in short is can i used GPL'ed Library, do not released my code as OPensource compatible License&#xA;and still NOT violate the GPL'ed terms?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in Advance&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nick Ace&lt;/p&gt;&#xA;" OwnerUserId="5436" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-23T22:21:10.257" LastActivityDate="2010-12-07T16:30:34.757" Title="GPLed Library (EXT JS) Licensing Issue" Tags="&lt;gpl&gt;&lt;libraries&gt;&lt;legal&gt;&lt;license&gt;" AnswerCount="2" />
  <row Id="12171" PostTypeId="1" AcceptedAnswerId="12196" CreationDate="2010-10-15T03:55:33.490" Score="4" ViewCount="211" Body="&lt;p&gt;Is there a size where you can copy under fair use for code you don't have a license for the purpose? For example, what if I copy a snippet that is (normally) 3 lines of code? Is that fair use? If it is fair use, what length is required before I need a license?&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-10-15T07:19:32.837" Title="How does fair use apply to code snippets?" Tags="&lt;copyright&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="12172" PostTypeId="1" AcceptedAnswerId="12197" CreationDate="2010-10-15T04:01:23.710" Score="6" ViewCount="261" Body="&lt;p&gt;The topic of our undergraduate project is SOA. Under this project we are supposed to build 3 service components and one example website that uses those components. I am quite good with Java and have no experience whatsoever with C# or .NET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have decided to do project in C#.NET. I found &lt;strong&gt;&lt;a href=&quot;http://www.amazon.com/NET-Windows-Azure-Service-Orientation-ebook/dp/B003V4ATGW&quot; rel=&quot;nofollow&quot;&gt;SOA with .NET &amp;amp; Windows Azure&lt;/a&gt;&lt;/strong&gt; by Thomas Erl. As we are not going to deploy our application to any cloud, I am bit worried about the book whose title has &quot;&amp;amp; Windows Azure&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am currently reading &lt;strong&gt;SOA Concepts, Technology and Design&lt;/strong&gt; by &lt;strong&gt;Thomas Erl&lt;/strong&gt;. Is the book SOA with .NET &amp;amp; Windows Azure right for my present needs? Or any other recommendations about book/blog etc on SOA with C#.NET?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance :)&lt;/p&gt;&#xA;" OwnerUserId="5443" LastEditorUserId="5443" LastEditorDisplayName="" LastEditDate="2010-10-20T11:34:10.810" LastActivityDate="2010-10-27T22:41:59.087" Title="Which book for SOA with .net?" Tags="&lt;books&gt;&lt;c#&gt;&lt;asp.net&gt;&lt;services&gt;&lt;soa&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="2" />
  <row Id="12173" PostTypeId="2" ParentId="3488" CreationDate="2010-10-15T04:18:00.893" Score="0" ViewCount="" Body="&lt;p&gt;Just to add my own answers:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;I had bad grades in many places over the years.  In grade school, I'd usually get Cs or 6/10 on most writing assignments though that did change at one point because I finally got a teacher to teach me the algorithm for an essay.  In university, I got 50 in Concurrent programming, which was the lowest passing grade possible.  My overall average was in the B range though so I still have an Honor's Bachelor degree.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;No, as most of the time you are perceived based on so many other factors like work ethic, likability, enthusiasm, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It can for those wanting scholarships or wanting to stay in academia.  I remember upon graduating looking at my average and passing on grad school then as my average was about 75% which wasn't high enough for the top tier schools in Canada, where I grew up and live now.  I remember going into university that one of the conditions of my scholarship was to maintain an 80% average after the first year which I did for all of one semester.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-15T04:18:00.893" />
  <row Id="12174" PostTypeId="1" AcceptedAnswerId="12178" CreationDate="2010-10-15T04:18:35.897" Score="8" ViewCount="472" Body="&lt;p&gt;I'm working as a developer back in my home country, where English is not a first/second language. However, I consider myself a native speaker since most of my schooling has been in an American environment.&#xA;Everyday I have to talk to my colleagues about technical stuff and English words obviously come up all the time. My colleagues pronounce English words very differently than how it's supposed to be (well most of the times) and I feel weird trying to correct them or speaking the 'right way' because it makes it seem like I'm a dick and often takes the focus away from the real subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you guys deal with this kind of 'problem?'  &lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-10-15T13:53:50.743" Title="How do you pronounce technical English words around non-natives?" Tags="&lt;work-environment&gt;&lt;colleagues&gt;" AnswerCount="10" CommentCount="2" FavoriteCount="2" />
  <row Id="12175" PostTypeId="2" ParentId="12171" CreationDate="2010-10-15T04:27:22.140" Score="7" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;I am not a lawyer&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, you are &lt;strong&gt;&lt;em&gt;absolutely free&lt;/em&gt;&lt;/strong&gt; to use the following 3 lines of code in anything that you write:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for (i = 0; i &amp;lt; 5; i++) {&#xA;    printf(&quot;I am not a lawyer!\n&quot;);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In all seriousness, your question is quite broad and highly subjective. Ten lines of code from what? A highly specialized sorting algorithm? Some kind of firmware? One of the millions of configuration file parsers that have been floating around since the dawn of usenet? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The golden rule, really, follow the license from which the snippet came. If that is not available, use your best judgement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I participate in several free/open source projects, some of them require a copyright assignment for anything not 'trivial'. All of them that have this requirement define 'trivial' to be ten lines of code added or modified. That is no way a substitute for competent legal advice from someone in your country, however.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My snippet gallery consists of hundreds of functions, all of them have the original author's information in doxygen style comments, as well as license info (if any, most are just public domain).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless clearly trivial (as in my humorous example), I would not re-use code unless I know that I have permission to do so. I also, always, follow the rules of whatever license applies.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-10-15T04:27:22.140" CommentCount="1" />
  <row Id="12176" PostTypeId="2" ParentId="12174" CreationDate="2010-10-15T04:32:44.240" Score="2" ViewCount="" Body="&lt;p&gt;I would just use the colloquial pronunciation unless there is a compelling reason not to do so, for instance if you are giving a presentation. You would be amazed how many different ways &quot;MySQL&quot; is pronounced throughout the world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd rather spend my time being understood and not hated due to constant pedantic correction than save the world from its many linguistic sins :)&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-10-15T04:32:44.240" CommentCount="2" />
  <row Id="12178" PostTypeId="2" ParentId="12174" CreationDate="2010-10-15T04:40:49.540" Score="8" ViewCount="" Body="&lt;p&gt;As a non-native English speaker, and knowing your background, I would expect you to do the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Whenever I pronounce something plain &lt;strong&gt;wrong&lt;/strong&gt;, just politely correct me. I'm eager to learn and improve. I will be thankful to you. If you don't feel like directly correcting me, just repeating what I said with the correct pronunciation will be enough.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If, however, I pronounce something just &lt;strong&gt;different&lt;/strong&gt; than you, but my pronunciation is correct in my language, don't make me feel I'm wrong. This happens a lot with acronyms: I'm very used to pronounce them spelling each letter in Spanish and that is a correct pronunciation, although might not be the 'official' one.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="76" LastActivityDate="2010-10-15T04:40:49.540" CommentCount="4" />
  <row Id="12179" PostTypeId="2" ParentId="12174" CreationDate="2010-10-15T04:42:33.363" Score="5" ViewCount="" Body="&lt;p&gt;Now and then, I watch videos in other than English languages and between the video (which the text on the screen is usually in English) and the few English words that come through in their talk, I can usually figure out close to what they are saying.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as the coworkers, as long as I can understand them, I stopped correcting them, but I say it right, unless they don't understand me (but I try the correct way first).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If someone wants to correct their language, they will do it with exposure to good examples.&lt;/p&gt;&#xA;" OwnerUserId="4591" LastActivityDate="2010-10-15T04:42:33.363" />
  <row Id="12180" PostTypeId="2" ParentId="12165" CreationDate="2010-10-15T04:58:51.467" Score="1" ViewCount="" Body="&lt;p&gt;I've been using it for about 4 years on a couple different teams. What I've found to work best for our group is managing branches by release/iteration. So all changes for the iteration are made on a development branch and when all of those are ready to go to QA then we merge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This does become a little bit of a problem if you have something on the branch that isn't really ready to merge but then you can choose not to merge those change sets. That gets messy if the code that you aren't including changes some key piece or something but that has been rare in my experience. What we have done is manage the iterations so that everything really is complete by the end. If there is a piece that is risky you can do a branch off your DEV branch just for that so that you can manage it seperately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would keep to as few branches as possible so that you don't spend to much time merging.&lt;/p&gt;&#xA;" OwnerUserId="3697" LastActivityDate="2010-10-15T04:58:51.467" CommentCount="3" />
  <row Id="12181" PostTypeId="2" ParentId="12170" CreationDate="2010-10-15T05:06:53.573" Score="5" ViewCount="" Body="&lt;p&gt;Based on the letter of the GPL, you may be right in interpreting that it's possible to use Ext without releasing any code, depending on the circumstances.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there's also something as the intent of the people who make it. In your place, I would mail licensing@sencha.com and ask them this question. If you don't like their answer, use a different library. Dojo, YUI and a ton of other libraries are available under more permissive licenses, so you have a ton of options.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you think that Ext JS is a step up from those other libraries, and the guys at Sencha want you to pay for it, then the honest thing to do is to pay for it. Good products deserve getting paid for if their authors want that.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-10-15T05:06:53.573" CommentCount="1" />
  <row Id="12182" PostTypeId="1" AcceptedAnswerId="12188" CreationDate="2010-10-15T05:09:04.053" Score="5" ViewCount="180" Body="&lt;p&gt;I've seen a lot of other framework/library developers throw the phrase 'we write opinionated software' around, but in practical terms, what does that really mean? Does it mean that the author of the 'Opinionated Framework X' says that because they write code a certain way, you should be writing the same type of code that they write?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(EDIT: This might be flamebait, but isn't that a bit pretentious?)&lt;/p&gt;&#xA;" OwnerUserId="4385" LastActivityDate="2010-10-15T15:46:56.320" Title="What does 'opinionated software' really mean?" Tags="&lt;software&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="12183" PostTypeId="2" ParentId="12174" CreationDate="2010-10-15T05:31:09.617" Score="0" ViewCount="" Body="&lt;p&gt;I have worked with many non native speakers and in each case I would ask them if they would like me to correct any non standard idiom.  I most cases the people were excited from me to help as many people are too self conscious to correct someone.  &lt;/p&gt;&#xA;" OwnerUserId="4553" LastActivityDate="2010-10-15T05:31:09.617" />
  <row Id="12184" PostTypeId="2" ParentId="6974" CreationDate="2010-10-15T05:41:08.823" Score="4" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Anything and everything written by Herbert Schildt. Calling this one book is probably a bit of a stretch -- it's more like an eternal case of food poisoning committed to paper.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Fractal Programming in C, by Roger T. Stevens. As Leonard Plinth-Garnell would have said, &quot;Exquisitely awful!&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Numeric Recipes in [C | C++]. Lots of &quot;recipes&quot;, but 1) the code is really Fortran with C-family syntax, and 2) &lt;em&gt;many&lt;/em&gt; (most?) of the algorithms is propounds are numerically unstable and generally best avoided.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="902" LastEditorUserId="902" LastEditorDisplayName="" LastEditDate="2010-10-15T15:37:50.217" LastActivityDate="2010-10-15T15:37:50.217" CommentCount="1" />
  <row Id="12185" PostTypeId="2" ParentId="12174" CreationDate="2010-10-15T05:47:49.940" Score="0" ViewCount="" Body="&lt;p&gt;I simply pronounce them the way I was taught. It even extends to saying out &quot;S.Q.L.&quot; instead of &quot;sequel&quot;. There is no true wrong or right in these. Just simply accept others may pronounce them differently, and take note of it so you can understand them subsequently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This issue isn't constrained to just technological terms. I do not expect an Englishman to communicate to us with a Singaporean chinese accent. He can continue speaking with his native accent and I will accept it. Likewise he has to accept me speaking in my own accent. We ought to do our best to learn and listen, and follow through the language nuances of others.&lt;/p&gt;&#xA;" OwnerUserId="5440" LastActivityDate="2010-10-15T05:47:49.940" />
  <row Id="12186" PostTypeId="1" AcceptedAnswerId="12190" CreationDate="2010-10-15T05:48:01.677" Score="4" ViewCount="256" Body="&lt;p&gt;I've seen a lot of different ways to [or not to] comment out the code, specially patterns on desciptions of function details and file purposes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to know what is most used pattern to do that [I'm specially interested on documentation generators and their patterns]&lt;/p&gt;&#xA;" OwnerUserId="3445" LastActivityDate="2010-10-15T09:43:38.323" Title="What are the best documentation patterns?" Tags="&lt;documentation&gt;" AnswerCount="3" FavoriteCount="3" />
  <row Id="12187" PostTypeId="2" ParentId="12021" CreationDate="2010-10-15T05:49:01.770" Score="1" ViewCount="" Body="&lt;p&gt;Another great iPhone game in the same genre as trainyard (which I also love) is Electric Box.&lt;/p&gt;&#xA;" OwnerUserId="4389" LastActivityDate="2010-10-15T05:49:01.770" CommunityOwnedDate="2011-01-12T17:58:32.720" />
  <row Id="12188" PostTypeId="2" ParentId="12182" CreationDate="2010-10-15T05:50:06.293" Score="6" ViewCount="" Body="&lt;p&gt;The framework imposes a certain way of working on you. Put another way, there's clearly one right way of using the framework which is nice and easy, and any other way of using the framework makes your life difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm no Rails expert, but I'm told that it's opinionated because it's awesome for simple CRUD stuff, but when you try deviate from the &quot;Rails way&quot; things get tough. (This isn't necessarily a bad thing; I don't mean it as criticism.)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-15T05:50:06.293" CommentCount="2" />
  <row Id="12189" PostTypeId="1" AcceptedAnswerId="12193" CreationDate="2010-10-15T05:56:25.830" Score="7" ViewCount="931" Body="&lt;p&gt;I am looking into learning Python for web development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming I already have some basic web development experience with Java (JSP/Servlets), I'm already familiar with web design (HTML, CSS, JS), basic programming concepts and that I am completely new to Python, how do I go about learning Python in a structured manner that will eventually lead me to web development with Python and Django?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not in a hurry to make web applications in Python so I really want to learn it thoroughly so as not to leave any gaps in my knowledge of the technologies involving web development in Python. Are there any books, resource or techniques to help me in my endeavor? In what order should I do/read them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I say learning in a structured manner, I mean starting out from the basics then learning the advanced stuff without leaving some of the important details/features that Python has to offer. I want to know how to apply the things that I already know in programming to Python.&lt;/p&gt;&#xA;" OwnerUserId="500" LastEditorUserId="500" LastEditorDisplayName="" LastEditDate="2010-10-15T09:27:49.703" LastActivityDate="2010-10-19T15:09:47.290" Title="How do I learn Python from zero to web development?" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;web-development&gt;&lt;python&gt;&lt;django&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="13" />
  <row Id="12190" PostTypeId="2" ParentId="12186" CreationDate="2010-10-15T06:05:01.820" Score="4" ViewCount="" Body="&lt;p&gt;Numerous projects are using &lt;a href=&quot;http://www.doxygen.org/&quot; rel=&quot;nofollow&quot;&gt;Doxygen&lt;/a&gt;, and I think you won't go wrong to pick that one as your choice. I've previously been involved in a portion of a much larger project that used Doxygen during their build process, do I didn't get into the actual doc generation part of the build, but adding the comments was easy and straight forward .&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your project is large with sub-systems written in different languages, then Doxygen is beneficial because of the many languages it supports: C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D.&lt;/p&gt;&#xA;" OwnerUserId="5447" LastActivityDate="2010-10-15T06:05:01.820" CommentCount="2" />
  <row Id="12191" PostTypeId="2" ParentId="12186" CreationDate="2010-10-15T06:40:58.640" Score="7" ViewCount="" Body="&lt;p&gt;Developers in Visual Studio tend to use the &lt;code&gt;/// &amp;lt;summary /&amp;gt;&lt;/code&gt; because apart from being able to generate an Xml usable as input for document generators, you also get tooltips during development when using the commented method/class.&lt;/p&gt;&#xA;" OwnerUserId="1922" LastActivityDate="2010-10-15T06:40:58.640" />
  <row Id="12192" PostTypeId="2" ParentId="6974" CreationDate="2010-10-15T06:57:17.653" Score="7" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Let Us C&lt;/strong&gt; -  Yashavant P. Kanetkar&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Object Oriented Programmig with C++&lt;/strong&gt; - E Balagurusamy &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-10-15T06:57:17.653" CommentCount="4" />
  <row Id="12193" PostTypeId="2" ParentId="12189" CreationDate="2010-10-15T07:12:53.757" Score="12" ViewCount="" Body="&lt;p&gt;First learn Python well&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some online resources for learning Python&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://docs.python.org/tutorial/index.html&quot; rel=&quot;nofollow&quot;&gt;The Python Tutorial&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikibooks.org/wiki/Python_Programming&quot; rel=&quot;nofollow&quot;&gt;Wiki-Book&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://diveintopython.org/&quot; rel=&quot;nofollow&quot;&gt;Dive Into Python&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://diveintopython3.org/&quot; rel=&quot;nofollow&quot;&gt;Dive Into Python 3&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.swaroopch.com/notes/Python&quot; rel=&quot;nofollow&quot;&gt;Byte of Python&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://homepage.mac.com/s_lott/books/python.html&quot; rel=&quot;nofollow&quot;&gt;Building Skills in Python Version 2.5&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://linkmingle.com/list/List-of-Free-Online-Python-Books-freebooksandarticles&quot; rel=&quot;nofollow&quot;&gt;Python Free Online Ebooks&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://openbookproject.net/pybiblio/&quot; rel=&quot;nofollow&quot;&gt;Python Bibliotheca&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.greenteapress.com/thinkpython/thinkpython.pdf&quot; rel=&quot;nofollow&quot;&gt;Think Python&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.brpreiss.com/books/opus7/html/book.html&quot; rel=&quot;nofollow&quot;&gt;Data Structures and Algorithms in Python&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.greenteapress.com/thinkpython/thinkCSpy/&quot; rel=&quot;nofollow&quot;&gt;How to Think Like a Computer Scientist: Learning with Python&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.openbookproject.net/py4fun/&quot; rel=&quot;nofollow&quot;&gt;Python for Fun&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://inventwithpython.com/&quot; rel=&quot;nofollow&quot;&gt;Invent Your Own Computer Games With Python&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://learnpythonthehardway.org/&quot; rel=&quot;nofollow&quot;&gt;Learn Python The Hard Way&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.mindview.net/Books/TIPython/&quot; rel=&quot;nofollow&quot;&gt;Thinking in Python&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids/&quot; rel=&quot;nofollow&quot;&gt;Snake Wrangling For Kids&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;For Django you can refer&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://djangobook.com/&quot; rel=&quot;nofollow&quot;&gt;The Django book&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What I suggest is &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://docs.python.org/tutorial/index.html&quot; rel=&quot;nofollow&quot;&gt;The Python Tutorial&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikibooks.org/wiki/Python_Programming&quot; rel=&quot;nofollow&quot;&gt;Wiki-Book&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://djangobook.com/&quot; rel=&quot;nofollow&quot;&gt;The Django Book&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Also check out this &lt;a href=&quot;http://www.youtube.com/watch?v=v1gTI4BOPUw&quot; rel=&quot;nofollow&quot;&gt;video&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-10-15T07:12:53.757" CommentCount="3" />
  <row Id="12194" PostTypeId="2" ParentId="12189" CreationDate="2010-10-15T07:12:56.467" Score="2" ViewCount="" Body="&lt;p&gt;You first learn python programming language. Then when you feel comfortable with it, learn libraries like Django. Setting up an using an application at Google App Engine would further help in development.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-10-15T07:12:56.467" />
  <row Id="12195" PostTypeId="2" ParentId="12021" CreationDate="2010-10-15T07:15:08.410" Score="0" ViewCount="" Body="&lt;p&gt;For a game that takes my mind off work; the music, humour, and fast pace of &lt;a href=&quot;http://store.steampowered.com/app/15520/&quot; rel=&quot;nofollow&quot;&gt;AaAaAA!!!&lt;/a&gt; does it for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also has the distinct start and end point mentioned as useful elsewhere.&lt;/p&gt;&#xA;" OwnerUserId="3526" LastActivityDate="2010-10-15T07:15:08.410" CommunityOwnedDate="2011-01-12T17:58:32.720" CommentCount="3" />
  <row Id="12196" PostTypeId="2" ParentId="12171" CreationDate="2010-10-15T07:19:32.837" Score="4" ViewCount="" Body="&lt;p&gt;In the US, the legal doctrine of Fair Use &lt;strong&gt;does not apply&lt;/strong&gt; to embedding excerpts of copyrighted works into source code. How such doctrine is applied by the laws of your jurisdiction may vary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will excerpt from a US Copyright Office &lt;a href=&quot;http://www.copyright.gov/fls/fl102.html&quot; rel=&quot;nofollow&quot;&gt;article on Fair Use&lt;/a&gt;, and of copyrights generally:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Section 107 contains a list of the&#xA;  various purposes for which the&#xA;  reproduction of a particular work may&#xA;  be considered fair, &lt;em&gt;such as criticism,&#xA;  comment, news reporting, teaching,&#xA;  scholarship, and research [emphasis mine]&lt;/em&gt;. Section 107&#xA;  also sets out four factors to be&#xA;  considered in determining whether or&#xA;  not a particular use is fair:&lt;/p&gt;&#xA;  &#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;The purpose and character of the use,&#xA;  including whether such use is of&#xA;  commercial nature or is for nonprofit&#xA;  educational purposes&lt;/li&gt;&#xA;  &lt;li&gt;The nature of the&#xA;  copyrighted work&lt;/li&gt;&#xA;  &lt;li&gt;The amount and&#xA;  substantiality of the portion used in&#xA;  relation to the copyrighted work as a&#xA;  whole&lt;/li&gt;&#xA;  &lt;li&gt;The effect of the use upon the&#xA;  potential market for, or value of, the&#xA;  copyrighted work.&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;  &#xA;  &lt;p&gt;The distinction&#xA;  between fair use and infringement may&#xA;  be unclear and not easily defined.&#xA;  &lt;em&gt;There is no specific number of words,&#xA;  lines, or notes [emphasis mine]&lt;/em&gt; that may safely be&#xA;  taken without permission.&#xA;  Acknowledging the source of the&#xA;  copyrighted material does not&#xA;  substitute for obtaining permission.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It summarizes the legal limits of copyright, which Fair Use further limits, like so:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Copyright protects the particular way&#xA;  an author has expressed himself. It&#xA;  does not extend to any ideas, systems,&#xA;  or factual information conveyed in the&#xA;  work.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The safest course is always to get&#xA;  permission from the copyright owner&#xA;  before using copyrighted material. The&#xA;  Copyright Office cannot give this&#xA;  permission.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;What the limits of what copyright protects tells us is though you cannot copy &quot;snippets&quot; of code via Fair Use, &lt;strong&gt;you can rewrite&lt;/strong&gt; the way ideas, systems (including algorithms), or factual information are expressed in those snippets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, 3 lines of code should be small enough for you to rewrite it so as not to violate the original work's copyright. It probably took longer to write your question than it will to do the rewrite.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-15T07:19:32.837" CommentCount="3" />
  <row Id="12197" PostTypeId="2" ParentId="12172" CreationDate="2010-10-15T07:24:23.473" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://oreilly.com/catalog/9780596526993&quot; rel=&quot;nofollow&quot;&gt;Programming WCF Services&lt;/a&gt; by Juval Lowy. I didn't read the thrid edition that includes Azure, but the second editions was brillant.&lt;/p&gt;&#xA;" OwnerUserId="5452" LastActivityDate="2010-10-15T07:24:23.473" CommentCount="3" />
  <row Id="12198" PostTypeId="2" ParentId="12082" CreationDate="2010-10-15T07:31:27.197" Score="0" ViewCount="" Body="&lt;p&gt;The best single thing to do is to &lt;strong&gt;whenever you get an idea, write it down.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideas come and go, and you think you'll remember them, but the fact is that you don't. Furthermore, it seems that writing ideas down makes room for new ones, so in turn you're generating even more of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For ubiquitous access while keeping things in one place, I suggest using something like &lt;a href=&quot;https://catch.com/&quot; rel=&quot;nofollow&quot;&gt;Catch&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-15T07:40:04.353" LastActivityDate="2010-10-15T07:40:04.353" />
  <row Id="12199" PostTypeId="2" ParentId="12174" CreationDate="2010-10-15T07:40:39.470" Score="1" ViewCount="" Body="&lt;p&gt;I've read several accounts of how Novell employees, technical and marketing alike, use different pronunciations of &lt;em&gt;Suse&lt;/em&gt;, often in the same session. That's one person, changing the way he pronounces it over the course of a presentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If an organization can't settle on one &lt;strong&gt;vocal identifier&lt;/strong&gt; for its own product, why would you insist that the pronunciation of a term from one language must be followed in any other language? We can't even find agreement on what most of the terms mean without heavily contextualizing them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I'm just the opposite. I tried to find native terms for words used for one of my products like &quot;outline&quot; and &quot;tags&quot;, and the users of the localized versions wanted the English words! It's like contaminating their culture!)&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-15T07:40:39.470" />
  <row Id="12200" PostTypeId="2" ParentId="12021" CreationDate="2010-10-15T07:45:05.670" Score="1" ViewCount="" Body="&lt;p&gt;As Pete I'm of that opinion that one of the best thing a programmer or any kind of engineer can do for improving the work performace is to spend time exercising. I'm writing from my own  experience from a decade of work in stressful works and the observation of my co-workers.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides that I am participating from time to time in a multiuser question-and-answer game on internet called Stack Overflow Have some influence of my programming skills or at least knowledge :)&lt;br&gt;&#xA;&lt;strong&gt;Edit&lt;/strong&gt;&lt;br&gt;&#xA; Playing games with my daughter help me to relax too...&lt;/p&gt;&#xA;" OwnerUserId="1041" LastEditorUserId="1041" LastEditorDisplayName="" LastEditDate="2010-10-15T16:27:55.223" LastActivityDate="2010-10-15T16:27:55.223" CommunityOwnedDate="2011-01-12T17:58:32.720" CommentCount="1" />
  <row Id="12201" PostTypeId="2" ParentId="12021" CreationDate="2010-10-15T07:50:38.530" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The Incredible Machine&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and its sequels (2 more that I know of) and the wacky spin-off(s), &quot;Sid &amp;amp; Al's Incredible Toons&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They were challenging and &lt;em&gt;fun&lt;/em&gt; puzzle games that required you to use a limited number of objects and creatures to achieve a goal. After you set everything up, you pressed &quot;Run&quot; and saw how your program worked out (oops, Freudian slip there!). If you did not succeed, you could make adjustments and run it again. I think there was a bonus for a low number of retrys. As I am thinking about it, I am realizing what a parallel it really is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are interested I will get you some links.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also just remembered that the human character you can put to use is named &lt;strong&gt;Mel&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2515" LastEditorUserId="2515" LastEditorDisplayName="" LastEditDate="2010-10-15T08:07:19.817" LastActivityDate="2010-10-15T08:07:19.817" CommunityOwnedDate="2011-01-12T17:58:32.720" CommentCount="5" />
  <row Id="12202" PostTypeId="2" ParentId="12087" CreationDate="2010-10-15T07:55:41.717" Score="1" ViewCount="" Body="&lt;p&gt;I saw a presentation of &lt;a href=&quot;http://www.atlassian.com/software/bamboo/&quot; rel=&quot;nofollow&quot;&gt;Bamboo&lt;/a&gt; once, and it blew me away. Although it's a commercial product, it's &lt;a href=&quot;http://www.atlassian.com/software/bamboo/licensing.jsp#nonprofit&quot; rel=&quot;nofollow&quot;&gt;free for open source software projects&lt;/a&gt;, just like most other &lt;a href=&quot;http://www.atlassian.com/&quot; rel=&quot;nofollow&quot;&gt;Atlassian&lt;/a&gt; products (I do not work for them, but I do think they make some very nice products. :))&lt;/p&gt;&#xA;" OwnerUserId="1020" LastActivityDate="2010-10-15T07:55:41.717" />
  <row Id="12203" PostTypeId="2" ParentId="11312" CreationDate="2010-10-15T08:03:44.540" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A Model M keyboard.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="24918" LastActivityDate="2010-10-15T08:03:44.540" CommunityOwnedDate="2010-10-15T08:03:44.540" CommentCount="1" />
  <row Id="12204" PostTypeId="2" ParentId="12133" CreationDate="2010-10-15T08:07:45.387" Score="0" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.topcased.org/&quot; rel=&quot;nofollow&quot;&gt;Topcased&lt;/a&gt;. It is able to generate code from UML diagrams and preserves changes you made in generated code when you generate a second time.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-15T08:07:45.387" />
  <row Id="12205" PostTypeId="2" ParentId="12174" CreationDate="2010-10-15T08:12:53.407" Score="0" ViewCount="" Body="&lt;p&gt;I use a word from my language if one exists or an English word if it's the only one I know. What other people do is their own business and I'm fine with whatever as long as I understand what they are talking about. I never try to correct anyone, it's impolite and irritating, you should be pretty close with each other to accept corrections.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, those who say &quot;other people are happy when I suggest correcting them&quot; - how else are other people supposed to react if they are polite? &quot;Get off you pedantic freak&quot;? :)&lt;/p&gt;&#xA;" OwnerUserId="4676" LastEditorUserId="4676" LastEditorDisplayName="" LastEditDate="2010-10-15T08:19:43.860" LastActivityDate="2010-10-15T08:19:43.860" />
  <row Id="12206" PostTypeId="2" ParentId="12021" CreationDate="2010-10-15T08:28:58.177" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://topcoder.com&quot; rel=&quot;nofollow&quot;&gt;TOP CODER&lt;/a&gt; , coding is the best game for programmers.&lt;/p&gt;&#xA;" OwnerUserId="2840" LastActivityDate="2010-10-15T08:28:58.177" CommunityOwnedDate="2011-01-12T17:58:32.720" />
  <row Id="12207" PostTypeId="2" ParentId="12165" CreationDate="2010-10-15T08:33:57.803" Score="0" ViewCount="" Body="&lt;p&gt;MS issued a white paper that covers one approach with detail on why.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://tfsbranchingguideiii.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;http://tfsbranchingguideiii.codeplex.com/&lt;/a&gt; (this is the 2008/2010 version, there is also a 2005 version).&lt;/p&gt;&#xA;" OwnerUserId="542" LastActivityDate="2010-10-15T08:33:57.803" />
  <row Id="12208" PostTypeId="2" ParentId="12189" CreationDate="2010-10-15T08:40:37.117" Score="2" ViewCount="" Body="&lt;p&gt;Web development always comes back to one thing: and that is the browser. Learn HTML, CSS and JavaScript very well, and it will serve you though any language change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Www.w3schools.com is a great place to learn these things, but when it comes to CSS, its often very useful to just sit down and play with it. Find a cool web design and implement it in HTML by hand. This is a very, very neccecary skill if any of your server side code results in HTML.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next, I like your logical approach, but it might not be the best way to go about it. A more rewarding approach may be to establish a goal that you want to accomplish, and learn on the way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Starting with django may not be the best idea, however. Many of the decisions that they made when designing the framework would only make sense if you'd experienced the problems that they solve first hand. My first web language was php, and the most effective way I understood best practices was to write crappy, brittle code, realizing that there was a problem, and resarching solutions. If I was to research a solution before I understood the problem, I wasn't able to apply it effectivly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're willing to take your time on this, perhaps starting with a less abstract technology set such as php may be a great learning experience.&lt;/p&gt;&#xA;" OwnerUserId="5220" LastActivityDate="2010-10-15T08:40:37.117" CommentCount="3" />
  <row Id="12209" PostTypeId="2" ParentId="10793" CreationDate="2010-10-15T08:57:25.313" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The Single Responsibility Principle.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every source control commit should serve only one purpose. If you have to put the word &quot;and&quot; or &quot;also&quot; in your summary, you need to split it up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's very common to end up with lots of separate unrelated or semi-related changes in your working copy. This is called the &quot;tangled working copy problem,&quot; and it's actually very hard to avoid even for disciplined developers. However, Git and Mercurial both give you tools to resolve it -- &lt;a href=&quot;http://tomayko.com/writings/the-thing-about-git&quot; rel=&quot;nofollow&quot;&gt;git add -p&lt;/a&gt; or &lt;a href=&quot;http://jamesmckay.net/2010/09/solving-the-tangled-working-copy-problem-with-hunk-selection-and-mercurial-queues/&quot; rel=&quot;nofollow&quot;&gt;chunk selection and Mercurial Queues in TortoiseHg&lt;/a&gt; respectively.&lt;/p&gt;&#xA;" OwnerUserId="1206" LastEditorUserId="1206" LastEditorDisplayName="" LastEditDate="2011-01-19T23:23:49.653" LastActivityDate="2011-01-19T23:23:49.653" CommunityOwnedDate="2011-01-20T04:56:55.133" />
  <row Id="12210" PostTypeId="2" ParentId="11312" CreationDate="2010-10-15T09:15:14.623" Score="0" ViewCount="" Body="&lt;p&gt;Personally, I always have Sopranos episodes running in the background or on the screen beside me, its always great when you hit a road block to just tune in for a few minutes to clear your head with some Paulie Walnuts!&lt;/p&gt;&#xA;" OwnerUserId="5461" LastActivityDate="2010-10-15T09:15:14.623" CommunityOwnedDate="2010-10-15T09:15:14.623" />
  <row Id="12211" PostTypeId="2" ParentId="531" CreationDate="2010-10-15T09:17:40.990" Score="2" ViewCount="" Body="&lt;p&gt;For C# devs... It's tech, but not hardware... Still:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.jetbrains.com/resharper/&quot; rel=&quot;nofollow&quot;&gt;http://www.jetbrains.com/resharper/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get it. Force yourself to use it for a week. Then tell me it isn't one of the, if not the, most important plugin you can add to Visual Studio.&lt;/p&gt;&#xA;" OwnerUserId="5220" LastActivityDate="2010-10-15T09:17:40.990" CommentCount="1" />
  <row Id="12213" PostTypeId="2" ParentId="10206" CreationDate="2010-10-15T09:30:29.070" Score="1" ViewCount="" Body="&lt;p&gt;My guess is this list actually appeals to software developers because it validates their self-image as pampered creative divas rather than hard-as-nails problem-solvers (a là Winston Wolf) and expect to be treated professionally as a result.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also suspect if we improved software development techniques to the point where our trade was certifiable like that of architects, lawyers, medical professionals and the like, we would be better able to direct how software developers are managed.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-15T09:30:29.070" CommentCount="2" />
  <row Id="12214" PostTypeId="2" ParentId="12174" CreationDate="2010-10-15T09:31:48.880" Score="0" ViewCount="" Body="&lt;p&gt;I personally don't consider this a problem. If you speak your native language with your colleague and you have to use technical terms you don't have in your language, it is OK to leverage the English words in any form understandable to you both. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm Ukrainian and at work in my local office we speak Russian, and some English words get transformed into Russian-like forms, I mean, adding prefixes, suffixes, endings, making a Russian-like verbs out of English nouns... It is perfectly understandable to everyone, and in most cases it is just fun, and finally it can be called a tech slang :) So, that's fine and doesn't bring any inconveniences. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I should also mention that most of these people are very good in English and when we speak with our colleagues from other English-speaking departments, both in verbal and written form, they use the same words correctly. So, these two facts are not mutually exclusive.&lt;/p&gt;&#xA;" OwnerUserId="1524" LastActivityDate="2010-10-15T09:31:48.880" />
  <row Id="12215" PostTypeId="2" ParentId="12186" CreationDate="2010-10-15T09:43:38.323" Score="0" ViewCount="" Body="&lt;p&gt;I used to put effort into documenting code using these kind of automated documentation tools (doxygen, javadoc). However, I seem to find that the cost of creating and maintaining this kind of documentation was rarely justified by the benefits from having it. As long as your users can see the names/types of your function parameters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer to spend the time creating/maintaining examples and task focused documentation (how do I x?), as well as general overviews of the functionality/model used by the API. This is especially true if the source code of what ever you are documenting is going to be available to the developers using it (as they can always read the source code to resolve any ambiguities).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A well designed API should be intuative and difficult to use incorrectly once the main concepts of the model have been communicated. Per-method/per-class documentation doesn't really help to communicate these (model) concepts efficently, as it is so fragmented. Using the per-method/per-class approach, your users already have to be quite familiar with your API before they are even able to look in the right place for the documentation they need.&lt;/p&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-10-15T09:43:38.323" />
  <row Id="12216" PostTypeId="1" AcceptedAnswerId="12222" CreationDate="2010-10-15T09:56:56.183" Score="10" ViewCount="1030" Body="&lt;p&gt;What are the features of other IDEs or editors you wish you have in Visual Studio? Here I am asking mainly for built-in features. So, if a feature is available via some plug-ins, still you can state them. You can even state features those you have not seen in any IDEs/editors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please state just ONE feature per answer with a relevant heading.&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2011-05-27T07:49:02.190" CommunityOwnedDate="2011-05-26T08:44:03.797" ClosedDate="2011-05-26T15:53:20.160" Title="Which features from other IDEs/editors you wish you have in Visual Studio?" Tags="&lt;features&gt;&lt;wish-list&gt;&lt;visual-studio&gt;" AnswerCount="22" CommentCount="2" FavoriteCount="8" />
  <row Id="12217" PostTypeId="2" ParentId="10793" CreationDate="2010-10-15T09:57:48.283" Score="2" ViewCount="" Body="&lt;p&gt;It isn't the size of the commit that really matters, it is the &lt;em&gt;scope&lt;/em&gt; of the change that should determine how your commitments are organized.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might, for instance change every instance of &lt;code&gt;__macro1&lt;/code&gt; to &lt;code&gt;__macro2&lt;/code&gt; in a large code base, which changes 200 files. 200 commitments would not be sane in that case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you want to end up with is being able to pull the repository at any single revision and having the build work. Did you change from &lt;code&gt;libfoo&lt;/code&gt; to &lt;code&gt;libbar&lt;/code&gt;? I hope that change includes updating your build scripts and Makefiles as well (or whatever is applicable).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes, you might need to make a series of experimental changes that accomplish one thing, in which case, you have to determine what scope is more important to you if you need to revert later. Does one depend on the other? Commit them all at once in one single revision. Otherwise, in that case, I'd suggest one commit per change. You should be doing something like that in another branch, or in another repo anyway. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;While yes, you do have the power to revert a single file to a previous revision (thus backing one file out of a larger commitment), doing so really screws up tools like bisection later on down the road, and pollutes the history.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you stop and think &quot;Ok, tests pass, I think this works .. but if it goes bad, can I easily back it out?&quot; .. you'll end up making sensible commitments. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-10-15T09:57:48.283" CommunityOwnedDate="2011-01-20T04:56:55.133" />
  <row Id="12218" PostTypeId="2" ParentId="12216" CreationDate="2010-10-15T10:14:14.480" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Converting Comment Styles&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its a nitpick but something that Ive ran into a number of times:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you're porting one project into another language, say Java to C#, I'd like a feature that goes through and changes all comments from the Java style i.e.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/**&#xA; * Summary of the class/method&#xA; * @param id Argument Description&#xA; * @return What it returns&#xA; */ &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;into another style like XML:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/// &amp;lt;summary&amp;gt;&#xA;/// Summary of the class/method&#xA;/// &amp;lt;/summary&amp;gt;&#xA;/// &amp;lt;param name=&quot;id&quot;&amp;gt;Argument Description&amp;lt;/param&amp;gt;&#xA;/// &amp;lt;returns&amp;gt;What it returns&amp;lt;/returns&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It seems so simple, maybe it already exists?&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-10-15T10:14:14.480" CommunityOwnedDate="2011-05-26T08:44:03.797" CommentCount="5" />
  <row Id="12219" PostTypeId="2" ParentId="12216" CreationDate="2010-10-15T10:29:18.383" Score="6" ViewCount="" Body="&lt;p&gt;All of vim's features (ViEmu doesn't cut it for me)&lt;/p&gt;&#xA;" OwnerUserId="3530" LastActivityDate="2010-10-15T10:29:18.383" CommunityOwnedDate="2011-05-26T08:44:03.797" CommentCount="3" />
  <row Id="12221" PostTypeId="2" ParentId="790" CreationDate="2010-10-15T10:47:31.357" Score="0" ViewCount="" Body="&lt;p&gt;Yes, they should as patents foster innovation by motivating experts into developing new inventions that duplicate the benefits of patented technologies without utilizing the inventions so patented. Without that motivation not to be indebted to someone else's licensing requirements, innovations would be slow in coming and we'd still be using a lot of older technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition, many technologies and businesses are funded on the basis of a significant return on the investment required to develop them through the use of patents. Without that investment with an expectation of profit, a lot of very advanced and expensive technologies would not be developed.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-15T10:47:31.357" CommentCount="2" />
  <row Id="12222" PostTypeId="2" ParentId="12216" CreationDate="2010-10-15T10:48:51.480" Score="25" ViewCount="" Body="&lt;h2&gt;Projectless compilation&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;So that I can just code on a single new file and run. I think this will help to start learning programming with visual studio. May be just in &lt;strong&gt;Express editions&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="963" LastEditorDisplayName="" LastEditDate="2010-12-02T06:54:20.337" LastActivityDate="2010-12-02T06:54:20.337" CommunityOwnedDate="2011-05-26T08:44:03.797" CommentCount="14" />
  <row Id="12223" PostTypeId="2" ParentId="12082" CreationDate="2010-10-15T10:53:58.777" Score="0" ViewCount="" Body="&lt;p&gt;Don't be a follower of design patterns (be a follower of antipatterns instead).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each time you do a thing similar to one you've done before try avoiding blind copy-paste and make the new thing better (but never make thing different just for the sake of this difference; if copy-paste would do the same, go ahead and free your time for the real challenge).&lt;/p&gt;&#xA;" OwnerUserId="4676" LastActivityDate="2010-10-15T10:53:58.777" />
  <row Id="12224" PostTypeId="2" ParentId="12082" CreationDate="2010-10-15T11:13:34.143" Score="1" ViewCount="" Body="&lt;p&gt;Just having an idea is not enough, it must be handled in some way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My company were doing something similar, they started by creating a website where users could enter new ideas and vote on other ideas. All ideas were looked on by mentors (senior developers, deparment managers and such) and given a &quot;thumbs up&quot; or &quot;thumbs down&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just the basic fact that someone higher up were looking at and considering an idea was encouraging.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure to list idea on the company magazine/intranet that evolve to improvements and possibly give some kind of reward to the submitter.&lt;/p&gt;&#xA;" OwnerUserId="4832" LastActivityDate="2010-10-15T11:13:34.143" CommentCount="1" />
  <row Id="12225" PostTypeId="2" ParentId="12216" CreationDate="2010-10-15T11:41:38.760" Score="-1" ViewCount="" Body="&lt;p&gt;I don't use Visual Studio. Anyway some of the features any good programmer's IDE should have are:&lt;br&gt;&#xA;1. Column wise (block-wise) selection, and editing. &lt;br&gt;&#xA;2. Auto build (along with incremental compilation). Shouldn't have to wait longer to run.&lt;br&gt;&#xA;3. I need more themes, better font rendering (smooth, stylish), makes me happier when looking at code. May be its an OS feature, anyway.&lt;br&gt;&#xA;4. Tagging (todo, fixme, a small sticky notes to write some sudden idea). I mean not comments.&lt;br&gt;&#xA;5. Auto formating code according to predefined style.&lt;br&gt;&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-10-15T11:41:38.760" CommunityOwnedDate="2011-05-26T08:44:03.797" CommentCount="4" />
  <row Id="12226" PostTypeId="2" ParentId="12216" CreationDate="2010-10-15T11:42:27.663" Score="4" ViewCount="" Body="&lt;p&gt;When I select any member (variable,function) in Netbeans, all the places where they are    used will get highlighted in the current file.&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-10-15T11:42:27.663" CommunityOwnedDate="2011-05-26T08:44:03.797" CommentCount="7" />
  <row Id="12227" PostTypeId="2" ParentId="12216" CreationDate="2010-10-15T12:02:59.660" Score="1" ViewCount="" Body="&lt;p&gt;Emacs style motion control for text editing.&#xA;Ctrl-N, Ctrl-P, Ctrl-A, Ctrl-E, and Ctrl-T are my most common keystrokes that I miss when editing code. Also, not part of VS, but the built in ability to remap the useless CAPS-LOCK key to Ctrl.&lt;/p&gt;&#xA;" OwnerUserId="749" LastActivityDate="2010-10-15T12:02:59.660" CommunityOwnedDate="2011-05-26T08:44:03.797" CommentCount="2" />
  <row Id="12228" PostTypeId="2" ParentId="12174" CreationDate="2010-10-15T12:07:54.397" Score="0" ViewCount="" Body="&lt;p&gt;We use English technical terms when I talk to colleagues in Spanish. If there is a mispronunciation, I do not correct them as I do not see it necessary for carrying out the business functions I'm supposed to do. If it does not help me get through the task I need to complete, then I don't do it.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-15T12:07:54.397" />
  <row Id="12229" PostTypeId="1" CreationDate="2010-10-15T12:21:11.670" Score="13" ViewCount="306" Body="&lt;p&gt;Does your company have a written policy about personal (technical) blogging?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Care to share?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We encourage our developers to keep personal blogs and talk about technical problems they've encountered at work that are not core competency or core IP. We've been doing it &quot;don't ask don't tell&quot; style, but it's time to write something down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: thank you all for your answers, we've implemented a policy for this last week - the full text is &lt;a href=&quot;http://code.dblock.org/ShowPost.aspx?id=131&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5162" LastEditorUserId="5162" LastEditorDisplayName="" LastEditDate="2010-10-25T15:54:34.917" LastActivityDate="2010-10-25T15:54:34.917" Title="Does your company have a written policy about personal (technical) blogging?" Tags="&lt;open-source&gt;&lt;blogs&gt;" AnswerCount="4" FavoriteCount="2" />
  <row Id="12230" PostTypeId="2" ParentId="12229" CreationDate="2010-10-15T12:29:53.470" Score="3" ViewCount="" Body="&lt;p&gt;I work for a Federal government agency.  The overall policy on any kind of social networking and blogging is that we should present ourselves as individuals and not as employees of the agency.  Pretty straightforward stuff.  They don't mind the exchange of &quot;tips and techniques&quot; as long as some internal things are not published.  That's never been a problem, as far as I know.&lt;/p&gt;&#xA;" OwnerUserId="3842" LastActivityDate="2010-10-15T12:29:53.470" />
  <row Id="12231" PostTypeId="2" ParentId="6974" CreationDate="2010-10-15T12:31:19.427" Score="1" ViewCount="" Body="&lt;p&gt;I can't remember the name - later I might see if I can dig it out - but there was an ASP.NET book I had that had all the code snippets (and there were a lot) as Visual Studio screenshots.  It seemed cool at first because it showed me exactly where to go in the IDE (I was just learning at that point).  After a while though (Chapter 2, I think), I found I knew where everything was and I was just finding the shots too difficult to read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pro C# by Andrew Troelsen was mostly very good, but someone needs to teach the man to use examples properly.  He'd teach one technique for a topic (let's say multithreading), then teach another and compare the two.  The problem is that rather than simply updating the first sample with the new code, he'd write a totally new application that does something totally different, and throw a bunch of extra concepts into the mix as well.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-15T12:31:19.427" />
  <row Id="12232" PostTypeId="2" ParentId="10032" CreationDate="2010-10-15T12:40:32.763" Score="1" ViewCount="" Body="&lt;p&gt;Here's a starting point:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://doi.ieeecomputersociety.org/10.1109/FLOSS.2007.5&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Do Programming Languages Affect Productivity? A Case Study Using Data from Open Source Projects&lt;/em&gt;&lt;/a&gt; (Delorey, Knutson, Chun, 2007)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4319" LastActivityDate="2010-10-15T12:40:32.763" CommunityOwnedDate="2010-10-15T12:40:32.763" CommentCount="5" />
  <row Id="12233" PostTypeId="2" ParentId="12133" CreationDate="2010-10-15T12:41:55.123" Score="0" ViewCount="" Body="&lt;p&gt;I think the OP is confusing UML (a language for modeling) with requirements management (a process). Modeling your system in UML is not going to stop users from asking requirements. You use UML to capture your architecture and to map requirements to artifacts. A requirement change would invariable represent a change in your model.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are systemic problems that you just don't &lt;em&gt;&quot;UML it out&quot;&lt;/em&gt;. There are things to consider here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Change Scope:&lt;/strong&gt;&#xA;Too large of a change, then either the request is disruptive, or your UML does not relate to the actual system, or your system has an inflexible architecture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Rate of Requirement Change&lt;/strong&gt;&#xA;Too frequent changes will cause &lt;strong&gt;you&lt;/strong&gt; to 1) update your model and 2) deliver. So without a requirements management process, you are going to UML yourself to death, thus decreasing the rate of at which you produce results. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could say that your productivity is inversely proportional to the rate of requirement change multiplied by a factor representing the UML &quot;crust&quot; artificially added to a process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest you get a book on requirements management, and learn a bit about the way Scrum handles requirements. Say you previously had a requirement R, and the user now wants a change on R, say R'. Then you treat R' as new requirement with its new timeline. You have to communicate users that requirements changes have associated costs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, it would do you well to study a bit of systems engineering and the concept of requirements as being:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Atomic.&lt;/li&gt;&#xA;&lt;li&gt;Precise.&lt;/li&gt;&#xA;&lt;li&gt;Unambiguous.&lt;/li&gt;&#xA;&lt;li&gt;Testable/Verifiable.&lt;/li&gt;&#xA;&lt;li&gt;Feasible.&lt;/li&gt;&#xA;&lt;li&gt;A change request on a requirement is&#xA;a defect on the requirement. Thus,&#xA;it creates a new requirement, and&#xA;puts the onus on the originator&#xA;(typically the customer.)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;There is such a thing as an invalid requirement. A requirement request that does not fill any of the above is an invalid requirement. And in a good process, the development team has the right to reject a requirement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mean, you ask an architect to design you a house without windows, he'll walk away. Or you ask repairman to fix your roof with clear tape, he'll give you the finger and walk away. Ask a dentist to remove a tooth from you using a pair of bolt cutters, he'll hit you with them and kick you out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only in software you see this notion that all requirements are valid and that they must implemented whatever the cost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recently put an answer to a related question, on requirements management and engineering. Maybe you might want to take a look at it. I hope you you find it helpful&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/874/how-do-you-deal-with-changing-requirements/11345#11345&quot;&gt;http://programmers.stackexchange.com/questions/874/how-do-you-deal-with-changing-requirements/11345#11345&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-15T12:41:55.123" CommentCount="3" />
  <row Id="12234" PostTypeId="1" CreationDate="2010-10-15T13:16:16.937" Score="5" ViewCount="177" Body="&lt;p&gt;More specifically, what do you feel Junior, Intermediate, and Senior programmers should know about OO design and programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm hoping that having some appropriate expectations will help us during the recruiting process.&lt;/p&gt;&#xA;" OwnerUserId="1853" LastActivityDate="2010-10-15T13:50:35.443" Title="What level of understanding should programmers have about OO?" Tags="&lt;object-oriented&gt;&lt;recruiting&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="2" />
  <row Id="12235" PostTypeId="2" ParentId="12229" CreationDate="2010-10-15T13:19:50.227" Score="9" ViewCount="" Body="&lt;h3&gt;No such policy here&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I do keep a &lt;a href=&quot;http://joshuakehn.com/blog/&quot; rel=&quot;nofollow&quot;&gt;personal / technical blog&lt;/a&gt; (more technical then personal), however it's not related in any way to companies I work for. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Publishing internal protocols, worksheets, code, or other thing would be a serious &lt;strong&gt;do not do&lt;/strong&gt; in my opinion. Other then that I can see for very few reasons where keeping a technical blog would not be allowed. One might be in a case where the contract stipulates any and all material you create is owned by the company. There was an interesting article I read about someone who worked at Microsoft where this was the case. Can't find it again for the life of me though.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-15T13:19:50.227" CommentCount="3" />
  <row Id="12236" PostTypeId="2" ParentId="6974" CreationDate="2010-10-15T13:20:44.290" Score="4" ViewCount="" Body="&lt;p&gt;It has to be &quot;&lt;strong&gt;Wicked Cool PHP&lt;/strong&gt;&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I bought it because it had a robot with a hammer on the front cover,what could go wrong? I thought.  Turns out everything. Pointless examples, terrible code and incorrect security information throughout.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/3sXnA.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="5010" LastActivityDate="2010-10-15T13:20:44.290" CommentCount="2" />
  <row Id="12237" PostTypeId="2" ParentId="12234" CreationDate="2010-10-15T13:23:55.797" Score="7" ViewCount="" Body="&lt;p&gt;If they develop in a OO language, I guess the answer is that they should understand the OO design and programming at 100%&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you are hiring a junior, I think you can be more flexible, and judge its ability to learn new concepts rather that its knowledge level at the time of the interview.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-15T13:23:55.797" CommentCount="1" />
  <row Id="12238" PostTypeId="2" ParentId="12234" CreationDate="2010-10-15T13:28:18.507" Score="3" ViewCount="" Body="&lt;p&gt;All levels should :&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Know Design Patterns (this is mostly understood to be the compilation by GoF, but also some other such as Dependency Injection, etc).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Understand how to model the interactions thru Use Cases a.k.a. &quot;user stories&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Is careful with inheritance. (EDIT, by request from OP: Basically, inheritance is recommended to be used very carefully as it leads to so-called &quot;white-box reuse&quot; (meaning that implementation details of base class are no longer hidden), which breaks the spirit of OOP. If you really need to reuse a class functionality you can often yield much bettter results by object composition, as it does not change the OOP landscape and leads to a cleaner design. This is summed up by the famous principle : &quot;Favor composition of objects over inheritance&quot;. This does not mean however that inheritance should always be avoided, just that other venues should be explored first.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Programs to interface rather than to class.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Understands UML and is able to describe his design through UML.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Never, ever comes up with the &quot;best possible&quot; design right in the first iteration.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Can identify potential problems with own design = understands contraints under which interfaces and classes are usable.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5185" LastEditorUserId="5185" LastEditorDisplayName="" LastEditDate="2010-10-15T13:50:35.443" LastActivityDate="2010-10-15T13:50:35.443" CommentCount="15" />
  <row Id="12239" PostTypeId="2" ParentId="5" CreationDate="2010-10-15T13:29:10.293" Score="0" ViewCount="" Body="&lt;p&gt;I use Notepad2 as a drop-in Notepad replacement and I use Emacs for when I want real power in my editor or I'm working with more complicated stuff. Once I have that open it will be my main text editor for everything, but if I'm just glancing over a log or viewing the source of a web page Notepad2 is good enough...&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-15T13:29:10.293" CommunityOwnedDate="2011-03-08T02:44:19.193" />
  <row Id="12240" PostTypeId="2" ParentId="12133" CreationDate="2010-10-15T13:35:07.847" Score="1" ViewCount="" Body="&lt;p&gt;Reasons users will accept denying a change request:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It will cost more money, but they have to feel the impact (It's actually their money or comes from their budget or has to be approved).&lt;/li&gt;&#xA;&lt;li&gt;It will delay the project.&lt;/li&gt;&#xA;&lt;li&gt;They will have to give up another feature.&lt;/li&gt;&#xA;&lt;li&gt;They are required to get involved more/spend more of their time with approval, testing, writing up request etc.&lt;/li&gt;&#xA;&lt;li&gt;Someone convinced them it will do harm or make the application worse.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If they are involved in the creation, editing, review/approval of the UML, they may think twice about a request since they will have to &quot;go through all that again.&quot; This is no different than if they have to write a formal request, update documentation/training materials, commit their time to test/review/approve, etc. These types of things are more tangible to them than code.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-15T13:35:07.847" />
  <row Id="12241" PostTypeId="2" ParentId="12174" CreationDate="2010-10-15T13:53:50.743" Score="0" ViewCount="" Body="&lt;p&gt;While it be more prevalent with English technical terms in non-English speakers, it is not unique to that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It all really depends on the situation and the person.  I work in an office that uses many different technologies, and I happen to use some of the &quot;newer&quot; stuff compared to many other people, and people sometimes come to me to learn some of the new technologies.  If they (English or non-English alike) describe something to me in a non-traditional or non-standard way, I'll find a way to gently correct them, either directly or indirectly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, I have a colleague that pronounced the LINQ technology &quot;Lin-queue&quot; rather than the generally accepted &quot;link.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't push the matter at all - I just want to help them understand the conventional way of pronouncing something, in case they (for instance) discuss it with others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been on the receiving end of this as well, and generally accept the help.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-10-15T13:53:50.743" CommentCount="2" />
  <row Id="12242" PostTypeId="2" ParentId="12216" CreationDate="2010-10-15T13:54:09.503" Score="5" ViewCount="" Body="&lt;h1&gt;:wq&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I find myself particularly attracted to the command mode of VIM. I can't tell you how many times I've found &lt;code&gt;:w&lt;/code&gt; when debugging after using and IDE / GUI to edit. Better yet hitting &lt;code&gt;:wq&lt;/code&gt; and wondering why it doesn't write and quit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there was one thing I could give Visual Studio it would be a command mode. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-15T13:54:09.503" CommunityOwnedDate="2011-05-26T08:44:03.797" CommentCount="5" />
  <row Id="12243" PostTypeId="2" ParentId="9965" CreationDate="2010-10-15T13:57:43.703" Score="3" ViewCount="" Body="&lt;p&gt;I like case sensitivity if for no other reason than it makes the code more self-documenting:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;this is a CONSTANT&#xA;this is a ClassName&#xA;this is a methodName&#xA;this is a local variablename&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I typically program in Python, but back in my C# days, I found it very convenient to name class instances the same as the class, but lower (or camel) case (as others have said):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Thing thing = new Thing();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Using case-insensitive languages requires some other convention for this, i.e., some sort of sigil like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Thing oThing = new Thing()&#xA;Thing instanceOfThing = new Thing()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Which is a &quot;bad thing&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also find it convenient to grep (case-sensitively) to find reference to a class vs. uses of a variable. With a case-insensitive language, this would be less easy. Same for search &amp;amp; replace.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, as a programmer, when I see words with different cases, it jumps out to me that they are different things...I rarely have bugs where variable cases were wrong, even in dynamic, scripted languages where a compiler would have helped.&lt;/p&gt;&#xA;" OwnerUserId="5472" LastEditorUserId="5472" LastEditorDisplayName="" LastEditDate="2010-10-15T14:08:17.253" LastActivityDate="2010-10-15T14:08:17.253" />
  <row Id="12244" PostTypeId="2" ParentId="12229" CreationDate="2010-10-15T14:08:16.810" Score="6" ViewCount="" Body="&lt;h3&gt;It is encouraged&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;We get 1 day a week for non-invoicable stuff such as learning, reading blogs, blogging, administration, preparing presentations for the weekly devcafés*, ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our boss prefers that we focus on sharing knowledge in that time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We're actually building a dashboard for our intranet that will display the ratio &quot;knowledge sharing / non-invoicable time&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;* devcafés: dev team sits together 1 hour/week and 1 team member presents a new technology, methodology, ..&lt;/p&gt;&#xA;" OwnerUserId="2820" LastEditorUserId="2820" LastEditorDisplayName="" LastEditDate="2010-10-15T14:13:34.503" LastActivityDate="2010-10-15T14:13:34.503" CommentCount="1" />
  <row Id="12245" PostTypeId="2" ParentId="8562" CreationDate="2010-10-15T14:12:57.850" Score="0" ViewCount="" Body="&lt;p&gt;My take : Decide where you want to go - where's your passion? if you like building frameworks of sorts AND you like them because you love designing - then you have a lead. If you like the technology, then understanding and mastering the underlying &quot;reasons&quot; &amp;amp; &quot;logic&quot; is what you must pursue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have a lead on where to move next, choose to get experienced in it. For example, if you like the technology, master the logic / code / architecture and see if you can suggest improvements / additions. Get yourself involved in what you like the most. if possible, actually go on to implement something of your own, something new innovative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, whenever you have done whatever you have done and are happy with it - give that knowledge back to the community. Maybe you would have done it right - and if you give it back, there are others who could do it right when they reach the stage you were :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All the very best!&lt;/p&gt;&#xA;" OwnerUserId="5475" LastActivityDate="2010-10-15T14:12:57.850" CommentCount="1" />
  <row Id="12246" PostTypeId="2" ParentId="12229" CreationDate="2010-10-15T14:32:34.973" Score="2" ViewCount="" Body="&lt;p&gt;My company is completely &lt;strong&gt;oblivious&lt;/strong&gt; to this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do have my own website, and another colleague has one too, but I think that's all. The colleague and I are the only two people who &lt;em&gt;actively&lt;/em&gt; seek knowledge [&lt;em&gt;as far as I know&lt;/em&gt;, although I think there are a few more, but low profile], so that may have something to do with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This may also be just a side-effect of our knowledge pool being nearly non-existent..as people here still focus on &quot;superstar&quot;/&quot;hotshot&quot; developers. Which sucks big-time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal advice to you is: &lt;strong&gt;open up as much as possible&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Feedback is useful, and you'll get plenty of it by publishing stuff.&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-10-15T14:32:34.973" />
  <row Id="12247" PostTypeId="2" ParentId="6974" CreationDate="2010-10-15T14:49:17.913" Score="6" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://imgur.com/2pxn0.jpg&quot; /&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Worst. Book. Ever.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the size of a phone book, and it's laid out like a sort of recipe book. It's basically a massive collection of thousands of code snippets for accomplishing various tasks, taken completely out of context and often wrong or broken or dated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only thing more hilarious is their follow-up book, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0766846822&quot; rel=&quot;nofollow&quot;&gt;Jamsa's C/C++/C# Programmers Bible&lt;/a&gt;. Because those languages are &lt;em&gt;totally&lt;/em&gt; interchangeable, right?&lt;/p&gt;&#xA;" OwnerUserId="5476" LastActivityDate="2010-10-15T14:49:17.913" CommentCount="2" />
  <row Id="12248" PostTypeId="1" CreationDate="2010-10-15T14:49:45.230" Score="9" ViewCount="583" Body="&lt;p&gt;Say you, a senior developer, get a junior developer straight out of uni or college to care under your wings. He/she is the typical freshly minted programmer: knows at least one mainstream language fairly good and perhaps some basic knowledge in a second or third; possesses the basic knowledge about search algorithms and data structures and when to use which; uses some form of coding standard consistently, but doesn't really grasp the notion of self-commenting code; have participated in several small projects of one or two team members and one larger project with 5-10 team members; etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, to ensure that your eager apprentice is mentally properly equipped before getting to work, which 3 technical books would you recommend him or her to read? These can really be any books, as long as they improve the developer's programming skills on way or another. (If you know a must-read book about a particular programming language and the project happens to contain lots of such code, do include that one in your list if you feel it applicable.)&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-10-16T08:26:06.000" LastActivityDate="2010-11-05T20:56:02.280" Title="Which 3 technical books would you recommend all fresh-out-of-uni junior developers to read?" Tags="&lt;recommendations&gt;&lt;books&gt;&lt;university&gt;" AnswerCount="13" CommentCount="4" FavoriteCount="10" />
  <row Id="12249" PostTypeId="2" ParentId="12248" CreationDate="2010-10-15T14:55:03.513" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The Pragmatic Programmer&lt;/strong&gt; taught me a lot and there is no complicated code examples in there either. Just good advice and useful concepts.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-10-15T14:55:03.513" />
  <row Id="12250" PostTypeId="2" ParentId="12248" CreationDate="2010-10-15T14:56:36.960" Score="9" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;The Pragmatic Programmer&lt;/em&gt;, by Andy Hunt and Dave Thomas&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Refactoring&lt;/em&gt;, by Martin Fowler&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Code: And Other Laws of Cyberspace&lt;/em&gt; by Lawrence Lessig&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;The Pragmatic Programmer&lt;/em&gt; tells you just about everything you need to know about how to be an effective programmer. (And the reason I don't list Kent Beck's &lt;em&gt;Test Driven Development&lt;/em&gt; is because that's an expansion of one topic in PragProg.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Refactoring&lt;/em&gt; shows you in detail how to improve your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Code: And Other Laws of Cyberspace&lt;/em&gt; shows you the impact your code can have on the world around you. You're not writing something in isolation. You're writing something that can have a &lt;em&gt;profound&lt;/em&gt; impact on your users, and the world at large. Code is Politics.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-15T14:56:36.960" CommentCount="3" />
  <row Id="12251" PostTypeId="2" ParentId="12248" CreationDate="2010-10-15T14:57:23.990" Score="0" ViewCount="" Body="&lt;p&gt;I found very useful to give three types of books. I'm assuming you target C#, but you can find the corresponding book in almost any technology:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;One more &quot;reference like&quot; book like &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1935182471&quot; rel=&quot;nofollow&quot;&gt;C# in Depth&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;One more &quot;framework related&quot; book like &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735627045&quot; rel=&quot;nofollow&quot;&gt;CLR Via C#&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;One more &quot;methodology related&quot; book like &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/097451408X&quot; rel=&quot;nofollow&quot;&gt;Practice of an Agile Developer&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;We can use an analogy and compare with learning a spoken language:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The first one helps with syntax&lt;/li&gt;&#xA;&lt;li&gt;The second with vocabulary and usage&lt;/li&gt;&#xA;&lt;li&gt;The third helps to know what to say... and when... and to whom... ;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;They are all essential to me.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-15T14:57:23.990" />
  <row Id="12252" PostTypeId="1" CreationDate="2010-10-15T15:00:12.503" Score="7" ViewCount="242" Body="&lt;p&gt;While I've heard about design patterns being mentioned in a few courses at uni, I know of only a single course which actually teaches design patterns. In almost all other areas (algorithms, parallelism, architecture, dynamic languages, paradigms, etc), there are several, often a basic course and an advanced course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should universities put more emphasis about teaching their students about design patterns and provide more courses in design patters? Are lack of knowledge about design patterns common in just-graduated junior developers?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-15T23:05:40.877" LastActivityDate="2010-10-15T23:05:40.877" Title="Should universities put more emphasis on teaching their students about design patterns?" Tags="&lt;education&gt;&lt;software-engineering&gt;&lt;design-patterns&gt;&lt;university&gt;" AnswerCount="6" />
  <row Id="12253" PostTypeId="2" ParentId="12252" CreationDate="2010-10-15T15:02:22.977" Score="1" ViewCount="" Body="&lt;p&gt;IMHO, universities can't go into details because of lack of time. It takes over a decade to master ONE technology. At universities you have so many topics to cover that it's impossible to do that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Design patterns are more suitable in real world development in medium to big projects. In universities, you can get lot of theory, and very little practice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe trought specializations ? Like in medecine.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-15T15:16:25.923" LastActivityDate="2010-10-15T15:16:25.923" CommentCount="3" />
  <row Id="12254" PostTypeId="2" ParentId="12248" CreationDate="2010-10-15T15:02:24.103" Score="1" ViewCount="" Body="&lt;p&gt;For the job, some of the first things that are not taught in school that a developer is going to have to get comfortable with are: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Unit Testing&lt;/li&gt;&#xA;&lt;li&gt;Version Control&lt;/li&gt;&#xA;&lt;li&gt;Project Automation (CI, etc.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Fortunately, there's the &lt;a href=&quot;http://www.pragprog.com/starter_kit&quot; rel=&quot;nofollow&quot;&gt;Pragmatic Starter Kit&lt;/a&gt;. It was a huge help when I started and it's by no means the &quot;if you only read 3 books, read these 3&quot; but if you're going to read a whole bunch in your career, I'd suggest &lt;em&gt;starting&lt;/em&gt; with these 3, just to get it out of the way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Covers:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/PH3D7.jpg&quot; alt=&quot;Pragmatic Project Automation&quot;&gt;&lt;img src=&quot;http://i.imgur.com/zsN6z.jpg&quot; alt=&quot;Pragmatic Version Control&quot;&gt;&lt;img src=&quot;http://i.imgur.com/KiEUP.jpg&quot; alt=&quot;Pragmatic Unit Testing&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-15T15:02:24.103" CommentCount="3" />
  <row Id="12255" PostTypeId="2" ParentId="12252" CreationDate="2010-10-15T15:10:51.807" Score="18" ViewCount="" Body="&lt;p&gt;Design patterns are paradigm-specific, and often language-specific.  The patterns in the Gang of Four book are primarily about object-oriented programming, and some are simply built into some languages.  Therefore, this is about programming, and should be taught in a software engineering curriculum.  It isn't computer science.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-15T15:10:51.807" CommentCount="7" />
  <row Id="12256" PostTypeId="2" ParentId="12252" CreationDate="2010-10-15T15:12:40.637" Score="8" ViewCount="" Body="&lt;p&gt;Definitely! Maybe not too detailed, but it could be a great 1-semester subject, just enough to give pointers to students, but not too wide as to waste time for other more fundamental subjects.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-10-15T15:12:40.637" CommentCount="2" />
  <row Id="12257" PostTypeId="2" ParentId="12248" CreationDate="2010-10-15T15:15:38.177" Score="3" ViewCount="" Body="&lt;p&gt;I'd likely give them the same sort of books that I tend to reach for the most often at my job, or those books that helped me out the most when I first got started. Thus:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735619670&quot; rel=&quot;nofollow&quot;&gt;Code Complete: A Practical Handbook of Software Construction&lt;/a&gt; by Steve McConnell&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735618798&quot; rel=&quot;nofollow&quot;&gt;Software Requirements&lt;/a&gt; by Karl E. Wiegers &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/059651624X&quot; rel=&quot;nofollow&quot;&gt;Algorithms in a Nutshell&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Some substitutions that I might make to this list depending upon the environment and the background of the person would be &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735605351&quot; rel=&quot;nofollow&quot;&gt;Software Estimation: Demystifying the Black Art&lt;/a&gt; by Steve McConnell if they didn't have much of a background in that. Also, the textbook &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0262033844&quot; rel=&quot;nofollow&quot;&gt;Introduction to Algorithms&lt;/a&gt; instead of the Nutshell reference if they didn't have a course using that book (or bought it on their own) in college.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-10-15T15:15:38.177" />
  <row Id="12258" PostTypeId="2" ParentId="5" CreationDate="2010-10-15T15:30:45.970" Score="0" ViewCount="" Body="&lt;p&gt;I really like &lt;a href=&quot;http://www.flos-freeware.ch/notepad2.html&quot; rel=&quot;nofollow&quot;&gt;Notepad2&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? There is a script for it to replace &lt;code&gt;notepad.exe&lt;/code&gt;, so that ANY action that would open notepad (such as right-click -&gt; edit on batch files or even &lt;code&gt;notepad.exe&lt;/code&gt; in the run dialog/start menu).&lt;br&gt;&#xA;It's very similar in interface to the standard notepad, but it does syntax highlighting and other goodness.&#xA;It's also very lightweight and starts quickly, even on my work computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It really is like notepad, version 2.&lt;/p&gt;&#xA;" OwnerUserId="912" LastActivityDate="2010-10-15T15:30:45.970" CommunityOwnedDate="2011-03-08T02:44:19.193" />
  <row Id="12259" PostTypeId="2" ParentId="12182" CreationDate="2010-10-15T15:46:56.320" Score="0" ViewCount="" Body="&lt;p&gt;The framework is saying &quot;I know the one true way to do this thing, and I'll fight you if you try it any other way&quot;.  Opinionated. &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-15T15:46:56.320" />
  <row Id="12260" PostTypeId="2" ParentId="5435" CreationDate="2010-10-15T15:50:14.300" Score="2" ViewCount="" Body="&lt;p&gt;I've been both a consultant and an in-house developer and I have to say the worst code I've ever seen was written by consultants.  Despite their expert knowledge they lack something important - &lt;strong&gt;commitment to the company&lt;/strong&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They don't care about how easy it is to maintain the code they wrote because they won't be the ones having to deal with it.  I truly believe in promote from within and loyalty.  Reward your in-house developers by letting them do the fun stuff instead of giving it to the consultants.  Happy people are much more productive than those who are not challenged, bored, and dissatisfied.&lt;/p&gt;&#xA;" OwnerUserId="5480" LastActivityDate="2010-10-15T15:50:14.300" />
  <row Id="12261" PostTypeId="2" ParentId="12216" CreationDate="2010-10-15T15:54:32.647" Score="6" ViewCount="" Body="&lt;p&gt;In the binary file editor, the ability to highlight a block, then apply a struct or class definition to it, so you can easily interpret your data. &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-15T15:54:32.647" CommunityOwnedDate="2011-05-26T08:44:03.797" />
  <row Id="12262" PostTypeId="2" ParentId="12252" CreationDate="2010-10-15T15:55:54.990" Score="1" ViewCount="" Body="&lt;p&gt;As opposed to absolutely none?  Yeah, I guess.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I'm not sure most of the professors are even qualified to teach anything about design patterns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think most good programmers like programming too much to teach and good programmers who like to teach probably have to teach at tech colleges and dumb down their stuff.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, Design Patterns are something a professional programmer needs to pick up in practice although I agree that I would have liked to have learned about them in school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I graduated from both a private tech school (AS in CIS) and a public university (BS in Comp Sci))&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-15T15:55:54.990" />
  <row Id="12263" PostTypeId="2" ParentId="12248" CreationDate="2010-10-15T15:56:32.437" Score="1" ViewCount="" Body="&lt;p&gt;Get him &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0385508603&quot; rel=&quot;nofollow&quot;&gt;The Bug by Ellen Ullman&lt;/a&gt;. I've rarely read such a vivid rendition of the life of a developer... Plenty of lessons to learn in the book, and it's not one of those dry technical tome, it's actually fiction.&lt;/p&gt;&#xA;" OwnerUserId="1597" LastActivityDate="2010-10-15T15:56:32.437" />
  <row Id="12264" PostTypeId="2" ParentId="12248" CreationDate="2010-10-15T15:58:57.410" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735619670&quot; rel=&quot;nofollow&quot;&gt;Code Complete&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This covers so many aspects of software craftsmanship.  It was my first, and it was a great book to start your career on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321205685&quot; rel=&quot;nofollow&quot;&gt;User Stories Applied&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This book helped me make meaningful estimates through the use of velocity based planning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Framework/Language specific books are important, but in my opinion books about craftsmanship and estimating software are more important to success in your career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There will always be another framework to learn.&lt;/p&gt;&#xA;" OwnerUserId="5138" LastActivityDate="2010-10-15T15:58:57.410" />
  <row Id="12265" PostTypeId="2" ParentId="12248" CreationDate="2010-10-15T16:04:10.740" Score="0" ViewCount="" Body="&lt;p&gt;Hrm:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Code Complete, it is the Bible of software development&lt;/li&gt;&#xA;&lt;li&gt;Rapid Software, you're going to question a lot of decisions your management makes and you're going to wonder what they're doing right or wrong.  It's good to question everything but since software management is so unintuitive this guide provides you with a more level understanding.&lt;/li&gt;&#xA;&lt;li&gt;Refactoring, Martin Fowler has never done me wrong so far.  You'll have to iterate a lot.  Best to learn how to do it correctly.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-15T16:04:10.740" />
  <row Id="12266" PostTypeId="2" ParentId="12216" CreationDate="2010-10-15T16:05:27.770" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://delphi.about.com/od/productreviews/ss/delphi2005first_2.htm&quot; rel=&quot;nofollow&quot;&gt;SyncEdit&lt;/a&gt;, from the Delphi IDE.  It's so useful I frequently find myself copying other code into Delphi just so I can use it to edit more intuitively.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-15T16:05:27.770" CommunityOwnedDate="2011-05-26T08:44:03.797" CommentCount="2" />
  <row Id="12267" PostTypeId="2" ParentId="9219" CreationDate="2010-10-15T16:06:24.010" Score="0" ViewCount="" Body="&lt;p&gt;I think of Design Patterns not of something that you're constantly trying to apply to your code. For me it is mainly about a common language for developers. It's easier to say &quot;we follow a builder pattern&quot; than explaining the whole thing over and over.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm currently re-reading &lt;em&gt;Patterns Of Enterprise Application Architecture&lt;/em&gt; right now, because I stumble upon a lot of code that follows one of the patterns from that book. I don't think it was intentionally chosen to follow one of the patterns, but it definitly helps if you can say &quot;&lt;em&gt;it's a Transaction Script&lt;/em&gt;&quot; and everyone has a clear understanding what that means.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I like the idea that you can choose from a prepared catalog of patterns, when you design a new functionality or a brand new application. Why reinvent everything if there are proven solutions for certain problems?&lt;/p&gt;&#xA;" OwnerUserId="3801" LastActivityDate="2010-10-15T16:06:24.010" />
  <row Id="12268" PostTypeId="2" ParentId="5435" CreationDate="2010-10-15T16:13:24.857" Score="1" ViewCount="" Body="&lt;p&gt;From working with subcontractors and being one myself there are two things you need to do:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Be explicit in your requirements.  Never leave anything to assumption, even if it is so well known in the industry or obvious that it shouldn't need to be stated.  This can be things like: no memory leaks, which language it will need to integrate with, performance criteria, etc.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's very frustrating for both of you when a requirement which was assumed is never stated until after the they attempt to deliver.  &quot;Oh you wrote it in Python?  We assumed you'd hand us a library to ingrate with our C++ applications.  We can't accept that.&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Test whatever they give you.  Seriously.  This isn't just about poorly written code.  It tells you where their strengths lie.  Some firms are amazing at UI layout but horrid at responsive software.  Others are great with numerical accuracy but fail at designing for the future.  It'll let you know if the firm sticks with the contract or expects to exceed.  If they gold-plate.  If it appears as if you didn't communicate your desires until later in the contract.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="838" LastEditorUserId="838" LastEditorDisplayName="" LastEditDate="2010-10-15T16:51:34.403" LastActivityDate="2010-10-15T16:51:34.403" />
  <row Id="12269" PostTypeId="2" ParentId="9219" CreationDate="2010-10-15T16:16:05.687" Score="0" ViewCount="" Body="&lt;p&gt;Using an analogy to money, a design pattern should be thought of as a solution with high capital cost but low operating costs.  Design patterns cost a fortune upfront in terms of extra coding, verboseness and the conceptual weight from the extra indirection they create.  They also have a tendency to lock down other aspects of your design.  For example, using template method forces you to program in a heavily OO style.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you need to solve a lot of closely related problems that vary in some small ways, or are definitely going to need to modify a piece of code heavily in some specific ways in the future, the upfront costs can be worth it because design patterns add flexibility to your code.  The modifications or the solution to the second of your set of closely related problems will be a lot easier with patterns than without.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-15T16:16:05.687" />
  <row Id="12270" PostTypeId="2" ParentId="9219" CreationDate="2010-10-15T16:17:33.363" Score="0" ViewCount="" Body="&lt;p&gt;Both camps are correct - they're a force for good when used correctly, a force for bad if they're splattered all over the place.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-15T16:17:33.363" />
  <row Id="12271" PostTypeId="1" CreationDate="2010-10-15T16:54:40.967" Score="5" ViewCount="168" Body="&lt;p&gt;How to achieve a good versioning system, I do use SVN for updating a code and making them to sit on trunk.&lt;br&gt;&#xA;My boss always ask a new feature and before one feature is completes he ask for another feature in same module. How Do I manage Branching in this situation ?&lt;/p&gt;&#xA;" OwnerUserId="2595" LastActivityDate="2010-10-15T17:47:15.360" ClosedDate="2010-10-15T22:17:20.820" Title="How I do versioning for an web application." Tags="&lt;project-management&gt;&lt;version-control&gt;&lt;versioning&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="12272" PostTypeId="2" ParentId="12271" CreationDate="2010-10-15T17:01:50.110" Score="0" ViewCount="" Body="&lt;p&gt;Assume that before you started the initial feature you created a branch called &quot;feature-x&quot;. You will then have&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;ul&gt;&#xA;&lt;li&gt;trunk&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;ul&gt;&#xA;&lt;li&gt;\&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;ul&gt;&#xA;&lt;li&gt;feature-x&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Branch again from trunk giving you a &quot;feature-y&quot; branch. Complete &quot;feature-y&quot; and then complete feature-x. Merge them together into the same dev branch and then once everything is tested merge it back into trunk.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-15T17:01:50.110" CommentCount="1" />
  <row Id="12273" PostTypeId="2" ParentId="12216" CreationDate="2010-10-15T17:09:48.433" Score="0" ViewCount="" Body="&lt;p&gt;Highlight the current line (I don't want to install a plug-in). &lt;/p&gt;&#xA;" OwnerUserId="844" LastActivityDate="2010-10-15T17:09:48.433" CommunityOwnedDate="2011-05-26T08:44:03.797" CommentCount="2" />
  <row Id="12274" PostTypeId="2" ParentId="12216" CreationDate="2010-10-15T17:12:25.043" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Ctrl+click&lt;/strong&gt; to open the method, attribute or class definition.&lt;/p&gt;&#xA;" OwnerUserId="5483" LastActivityDate="2010-10-15T17:12:25.043" CommunityOwnedDate="2011-05-26T08:44:03.797" CommentCount="2" />
  <row Id="12275" PostTypeId="2" ParentId="2459" CreationDate="2010-10-15T17:13:11.860" Score="4" ViewCount="" Body="&lt;p&gt;Yes, you need a login button. &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0789723107&quot; rel=&quot;nofollow&quot;&gt;Steve Krug has an excellent book&lt;/a&gt; on UI design principles that addresses this question with a simple principle: Do the least surprising thing. &lt;/p&gt;&#xA;" OwnerUserId="4792" LastActivityDate="2010-10-15T17:13:11.860" CommentCount="2" />
  <row Id="12276" PostTypeId="2" ParentId="12248" CreationDate="2010-10-15T17:24:00.557" Score="-1" ViewCount="" Body="&lt;p&gt;My answer is very different, it could be totally wrong :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I consider that College graduates should first have a strong foundation before they move to the finer aspects of SW Engg. Also in my experience a lot of graduates come very unprepared to the real world.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Continue reading and re reading Cormen. If you are done with it migrate to &quot;The Art of Computer Programming&quot; by Knuth. Read and re read these for an year or two :-)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Pick up one book on Operating System internals. &quot;Unix internals&quot; by Steve P Date is a good book. It will take an year or two to digest everything and be a champ on Unix.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Pick up Code complete. The book helps you decide at what standards you want to develop the code you write.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I would also advocate picking up a fourth book on TCP/IP or just plain networking whatever suits you.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-15T17:24:00.557" CommentCount="4" />
  <row Id="12277" PostTypeId="2" ParentId="12271" CreationDate="2010-10-15T17:47:15.360" Score="2" ViewCount="" Body="&lt;p&gt;I'm not experienced with SVN, but I've used Perforce and git to manage web projects. My practice is to &lt;strong&gt;keep a pristine branch that always matches the production code&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All new work is done in separate branches and merged in only to release. If a quick fix needs to be made immediately, you can do it on top of the pristine branch (or a branch thereof) and get it out the door without worrying about the state of the unfinished features. Depending on the VCS (and the cost of branching and merging), you may do a new branch for every feature, or just have a frozen 'production' branch and another 'forward' branch.&lt;/p&gt;&#xA;" OwnerUserId="4926" LastActivityDate="2010-10-15T17:47:15.360" />
  <row Id="12278" PostTypeId="1" CreationDate="2010-10-15T17:51:33.437" Score="12" ViewCount="711" Body="&lt;p&gt;Programmers sometimes get a little burned out and a little vacation can help. It used to be many hi-tech companies give 10 vacation days and 10 sick days per year.  But in recent years, I have seen vacation and sick days combined to become Paid Time Off (PTO).  Each year may be 15 days or 12 days.  (plus 1 floating and 9 fixed holidays such as Thanksgiving, Xmas, and New Year day)  (&lt;strong&gt;Update&lt;/strong&gt;: California doesn't not require any sick day for any company at all, so companies, to stay competitive, may not want to have sicks days and end up losing to other companies)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then I know some companies have unlimited vacation time, such as Netflix or Zynga, but then an experienced programmer told me many VPs in hi-tech companies also have unlimited vacation, but because they are so busy, practically in a year, they don't take any vacation at all.  It is also a bit strange that if unlimited is the policy, then what if Peter wants Dec 1 to Jan 1 for Xmas vacation, and John wants Nov 20 to Jan 1?  How do people decide what is fair if they can decide the length when it is unlimited?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It resembles a little bit like program such as FTP, where if the bandwidth is set to 300k/s, then it is 300k/s, but when it is set to 0, that means it is unlimited.  So &quot;unlimited&quot; in this case is also the same as &quot;zero&quot;.  I'd like to find out how it is in different companies?  Is your company or your post or what you hear about unlimited vacation and how it is like in real practice?&lt;/p&gt;&#xA;" OwnerUserId="5487" LastEditorUserId="5487" LastEditorDisplayName="" LastEditDate="2011-05-02T01:24:29.040" LastActivityDate="2011-05-02T01:24:29.040" Title="Can unlimited number of vacation means the same as 0 vacation time in practice?" Tags="&lt;burnout&gt;&lt;holidays&gt;" AnswerCount="8" FavoriteCount="4" />
  <row Id="12279" PostTypeId="1" CreationDate="2010-10-15T17:55:13.650" Score="23" ViewCount="974" Body="&lt;p&gt;How necessary or important is it? I try to keep a running list of blogs or sites to follow, but a lot of the time I pull up someone's profile and notice &lt;em&gt;there isn't anything there&lt;/em&gt;. Is it really important? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I understand are different levels of programming (from C/C++ system programmers to Rails and even Haskell and J) and not everyone works in a language easily worked with for web based applications. Not everything is web-centric, however with the advent of &lt;em&gt;many&lt;/em&gt; popular and sometimes free services I don't think it's unreasonable to expect a majority of programmers to have a personal site.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2011-02-15T09:38:18.340" Title="Is having your own website important?" Tags="&lt;websites&gt;&lt;personal&gt;&lt;importance&gt;&lt;professionalism&gt;" AnswerCount="12" CommentCount="2" FavoriteCount="2" />
  <row Id="12280" PostTypeId="2" ParentId="12279" CreationDate="2010-10-15T17:59:37.777" Score="19" ViewCount="" Body="&lt;p&gt;I say this with as much love as possible, but...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do the world a favor, and maintain a blog or website only if you have something substantial to say.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I fancy myself a reasonably good developer, and I feel like my body of work on StackOverflow is pretty decent.  But I don't have a blog.  Why?  Because there are many smart people out there who can write blogs much better than I can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is enough chaff on the internet already.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-10-15T17:59:37.777" CommentCount="2" />
  <row Id="12281" PostTypeId="2" ParentId="12279" CreationDate="2010-10-15T18:00:24.280" Score="48" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;To what end?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why would you want one? Some people use it as a way to sell themselves to employers. Others do it to help enrich the community and share information. Maybe both. I think you need to ask &lt;em&gt;why&lt;/em&gt; you want a website before you determine how important it is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to sell yourself to employers, then yes a site or blog can definitely be of help. If you want to share something with the community then yes, a blog is a great way to do that. But you should only contribute if you &lt;strong&gt;want&lt;/strong&gt; to contribute. Don't feel compelled to have a blog just because all the other &quot;good developers&quot; have one. If you like to write and have something good to say, go for it. Otherwise don't bother.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastEditorUserId="1360" LastEditorDisplayName="" LastEditDate="2010-10-15T18:33:07.840" LastActivityDate="2010-10-15T18:33:07.840" CommentCount="5" />
  <row Id="12282" PostTypeId="2" ParentId="12278" CreationDate="2010-10-15T18:00:40.143" Score="5" ViewCount="" Body="&lt;p&gt;The benefits of living in Europe (Belgium).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have 20 vacation days a year. Plus 6 extra days because I work 39 hours a week instead of 38. So a total of 26 paid vacation days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only 10 vacation days? The horror! Go move :)&lt;/p&gt;&#xA;" OwnerUserId="4930" LastEditorUserId="7" LastEditorDisplayName="" LastEditDate="2011-05-01T18:19:34.447" LastActivityDate="2011-05-01T18:19:34.447" CommentCount="5" />
  <row Id="12283" PostTypeId="2" ParentId="12279" CreationDate="2010-10-15T18:01:49.460" Score="15" ViewCount="" Body="&lt;p&gt;I don't see why you shouldn't have a blog.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend starting one for purely selfish reasons.  I use my site to keep track of things I've learned so I don't have to go look it up again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't want to add your site as spam on the internet, then don't crawl it on search engines, and just leave it for yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No harm no foul.&lt;/p&gt;&#xA;" OwnerUserId="1418" LastActivityDate="2010-10-15T18:01:49.460" CommentCount="2" />
  <row Id="12284" PostTypeId="2" ParentId="12278" CreationDate="2010-10-15T18:02:27.833" Score="2" ViewCount="" Body="&lt;p&gt;In the UK I don't think that's legal, to merge holiday with sick days. (I am not a solicitor or barrister)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In every job I've had (programmer or not) sick leave has been up to 5 days without a doctor's note, and this is not limited to 5 days a year, just 5 consecutive days. With a doctor's note I don't know as I've not had to go down that route. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So holiday is calculated separate to sick leave. I guess there are EU regulations UK businesses have to follow with regard to that.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-10-15T18:02:27.833" CommentCount="2" />
  <row Id="12285" PostTypeId="2" ParentId="12021" CreationDate="2010-10-15T18:04:20.433" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.mobygames.com/game/windows/typing-of-the-dead&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Typing of the dead.&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never hurts to type even faster.&lt;/p&gt;&#xA;" OwnerUserId="4930" LastActivityDate="2010-10-15T18:04:20.433" CommunityOwnedDate="2011-01-12T17:58:32.720" />
  <row Id="12286" PostTypeId="2" ParentId="12252" CreationDate="2010-10-15T18:06:48.450" Score="2" ViewCount="" Body="&lt;p&gt;Design patterns are formalised solutions to &lt;em&gt;common&lt;/em&gt; problems or high-level abstractions thereof; when I first came across them I discovered I had in fact been using a few of them for quite a while.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although I think it'd be very useful to give an &lt;strong&gt;outline&lt;/strong&gt; of the most widely used ones, analysing &lt;em&gt;each and every one&lt;/em&gt; detailed in the GOF book is certainly a waste of time; I think there is a danger of &quot;overabusing&quot; patterns and using them where simpler solutions could instead have been used: when learning to code you often use the few tools you have been taught, in the assumption that that is what is done and what should be done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps one or two hours of teaching regarding the subject maximum.&lt;/p&gt;&#xA;" OwnerUserId="2052" LastActivityDate="2010-10-15T18:06:48.450" />
  <row Id="12287" PostTypeId="2" ParentId="12021" CreationDate="2010-10-15T18:09:36.340" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Rocky%27s_Boots&quot; rel=&quot;nofollow&quot;&gt;Rocky's Boots&lt;/a&gt;. Teaches you boolean logic better 'n anything else! And these days you don't even need a working Apple ][e.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-10-15T18:09:36.340" CommunityOwnedDate="2011-01-12T17:58:32.720" />
  <row Id="12288" PostTypeId="2" ParentId="9030" CreationDate="2010-10-15T18:16:25.297" Score="1" ViewCount="" Body="&lt;p&gt;Sugar isn't a stimulant. It's the fuel for your brain to function, so your brain needs sugar (specifically glucose).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, you don't want glucose or any other sugar in its direct form as a sudden increase of sugar in the bloodstream will trigger insulin production, causing your body to store glucose. When the neurons in the brain, being more active due to (what had been) the above-normal supply of glucose, suddenly burn out the bulk of the remaining supply, they begin quiescing. This is one cause of the sugar crash.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another cause of the sugar crash is eating when there's insufficient blood sugar to support both digestion and brain functions. Normally brain activity supersedes most other bodily functions for self-preservation. But when it comes to processing food, not so much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Caffeine is a stimulant that helps reduce the after-meal crash. But since it raises brain activity it can eventually cause fatigue due to making neurons over-active as well as consuming blood sugar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eating foods with complex carbohydrates tends to improve the balance between digestion and brain activity and blood sugar levels. Consult your medical doctor and a nutritionist to improve your ability to function at work and your health.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-15T18:16:25.297" />
  <row Id="12289" PostTypeId="2" ParentId="9272" CreationDate="2010-10-15T18:16:45.763" Score="2" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;Keep it simple, stupid!&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Make sure &lt;em&gt;any other programmer&lt;/em&gt; can understand what your code does—and even better if it's &lt;em&gt;at a glance&lt;/em&gt; (this is where good names and comments come into their own).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fancy bit-twiddling kung-fu and inlined assembly is all great in the name of (perhaps unnecessary and premature) optimisation, but when even you can't understand the code &lt;em&gt;you wrote&lt;/em&gt; when you come across a bug in it two months later... What was the point? You'll cost yourself time and effort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I often refer to the &lt;a href=&quot;http://www.python.org/dev/peps/pep-0020/&quot; rel=&quot;nofollow&quot;&gt;Zen of Python&lt;/a&gt; in these situations. In particular:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Explicit is better than implicit.&#xA;Simple is better than complex.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2052" LastActivityDate="2010-10-15T18:16:45.763" />
  <row Id="12290" PostTypeId="2" ParentId="12252" CreationDate="2010-10-15T18:18:15.277" Score="1" ViewCount="" Body="&lt;p&gt;I think yes. From what I've seen in the US, a lot (but not the majority) of students tend to attack problems using language specific features and terms. By analyzing patterns, you tend to see the abstraction of the problem. Then when you see how the same pattern in a couple different languages, it's even better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It helps to make the individual a more pragmatic programmer.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-10-15T18:18:15.277" />
  <row Id="12291" PostTypeId="2" ParentId="9095" CreationDate="2010-10-15T18:26:28.257" Score="19" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Major Differences:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Both Scala and F# combine OO-imperative programming and functional programming into one language. Their approach towards unification of paradigms is vastly different though. Scala tries to &lt;em&gt;fuse&lt;/em&gt; the two paradigms into one (we call it object-functional paradigm), whereas F# provides the two paradigms side by side. For example, algebraic data types in F# are purely functional constructs with no OO'ness in them whereas ADTs in Scala are still regular classes and objects. (Note: In the process of compilation to CLR bytecode, even F# ADTs become classes and objects but they are not visible to F# programmer at the source level.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;F# has full Hindley-Milner style type inference. Scala has partial type inference. Support for subtyping and pure-OO-ness makes Hindley-Milner style type inference impossible for Scala.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Scala is much more minimalistic language than F#. Scala has a very small orthogonal set of constructs that are re-used throughout the language. F# seems to introduce new syntax for every little thing, thus becoming very syntax heavy as compared to Scala. (Scala has 40 keywords, whereas F# has 97. That should tell you something. :-)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;F# being a Microsoft language has an excellent IDE support in the form of Visual Studio. Things are not so good on the Scala side. Eclipse plugin is still not upto the mark. Same goes for NetBeans plugin. IDEA seems to be your best bet at the moment, though it doesn't even come close to what you get with Java IDEs. (For Emacs fans, there's ENSIME. I have heard a lot of good things about this package, but I haven't tried it yet.) &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Scala has far more powerful (and complex) type system than F#.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Other Differences:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;F# functions are curried by default. In Scala, currying is available but not used very often.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Scala's syntax is a mix of that of Java, Standard ML, Haskell, Erlang and many many other languages. F# syntax is completely OCaml-ish.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Scala supports higher kinds and typeclasses. F# doesn't.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Scala is much more amenable to DSLs than F#.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;PS: I love both Scala and F#, and hope they become predominant languages of their respective platforms in the future. :-)&lt;/p&gt;&#xA;" OwnerUserId="1968" LastEditorUserId="1968" LastEditorDisplayName="" LastEditDate="2010-10-16T01:48:46.130" LastActivityDate="2010-10-16T01:48:46.130" CommentCount="9" />
  <row Id="12292" PostTypeId="1" AcceptedAnswerId="12303" CreationDate="2010-10-15T18:32:08.693" Score="2" ViewCount="243" Body="&lt;p&gt;Let's say you have a static method that looks something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public static bool Foo()&#xA;{ &#xA;    var bar = new Bar();&#xA;    //do some stuff here&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This method as it stands can be a real headache to unit test.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the best practice to refactor this so that it can be testable, without turning it into an instance method or changing the method signature?&lt;/p&gt;&#xA;" OwnerUserId="1418" LastEditorUserId="1418" LastEditorDisplayName="" LastEditDate="2010-10-15T19:02:26.147" LastActivityDate="2010-10-15T20:43:51.477" Title="What is the best practice for refactoring a static method in order to make it more testable?" Tags="&lt;best-practices&gt;&lt;c#&gt;&lt;unit-testing&gt;" AnswerCount="2" CommentCount="4" />
  <row Id="12293" PostTypeId="2" ParentId="12279" CreationDate="2010-10-15T18:39:58.470" Score="6" ViewCount="" Body="&lt;p&gt;I'm a freelance consultant/contract programmer, and have a website mostly to publicly post my resume.  It's gotten me a fair share of business over time.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-15T18:39:58.470" />
  <row Id="12296" PostTypeId="2" ParentId="790" CreationDate="2010-10-15T18:56:05.197" Score="1" ViewCount="" Body="&lt;p&gt;Software patents are bad for several reasons that seem to apply quite acutely to software (but less so in some other industries, e.g. pharmaceuticals).&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Software is built on a stack of innovations at different levels. The ability to patent some of the core concepts that we take for granted and charge to license several patents at every level of innovation can increase costs of consumer products.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Software patents can be used to restrict the free implementation of interoperability protocols and interoperable standards. To require somebody to license a patent for the GIF file format or MP3 file format prevents interoperability.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Software patents make it difficult for upstart players (particularly open source players who have no revenue stream) to enter the market and/or take advantage of existing network effects.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;There are also plenty of reasons why the patent system itself has run amok, which hurt the software industry even more:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Submarine patents. These can be asserted against a product years after the product has already been written, released, and become popular and indispensable in business. (This happens with patent trolls a lot.) Another problem is companies that seek to make an easy buck by lobbying a standards committee to require their own technology as part of a standard. Then after the standard is finalized, they reveal that they've patented that technology and begin asserting the patent.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Vague patents can make it very difficult for people to tell whether they are infringing a particular patent. See, for example, &lt;a href=&quot;http://www.patentlyo.com/patent/2010/10/inducement-of-infringement-should-we-even-think-of-its-fault-element-in-mens-rea-terms.html&quot; rel=&quot;nofollow&quot;&gt;the Patently-O blog&lt;/a&gt; which mentions &quot;Given the uncertainties associated with patent law, one can virtually never be 'substantially certain' that conduct infringes a patent short of a final judgment.&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Newly-filed (and granted) patents on inventions that &lt;em&gt;everyone&lt;/em&gt;'s been using for years. Though this shouldn't be so difficult to deal with in theory (the prior art is obvious), it can cost millions of dollars to defend yourself in a patent suit.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1961" LastActivityDate="2010-10-15T18:56:05.197" />
  <row Id="12297" PostTypeId="2" ParentId="3732" CreationDate="2010-10-15T19:14:16.057" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The Internet&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Internet is supposed to be my fun and recreation. That's the purpose it served when I was a window cleaner. Now I'm building websites, the Internet is where I work, and it's no longer fun. My online social life has suffered.&lt;/p&gt;&#xA;" OwnerUserId="2406" LastActivityDate="2010-10-15T19:14:16.057" CommunityOwnedDate="2010-10-15T19:14:16.057" CommentCount="1" />
  <row Id="12299" PostTypeId="2" ParentId="9030" CreationDate="2010-10-15T19:29:46.363" Score="1" ViewCount="" Body="&lt;p&gt;Syntactic sugar does help me feel more productive, even when it's verbose. Something about needing less effort to understand when I have to go back and look at what I wrote ten minutes earlier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dietetic sugar is paper for the steam engine of your body--it burns fast and hot, but if you don't have some wood or coal in there too, you're not going to get very far.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-10-15T19:29:46.363" />
  <row Id="12300" PostTypeId="2" ParentId="1095" CreationDate="2010-10-15T19:30:33.333" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;However, I've had a professor or two&#xA;  that harped on the use of strict,&#xA;  formal UML, as close to the spec as&#xA;  possible.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Ask your professor when was the last time he used that approach on a real system. Seriously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I try to be as formal as possible when it comes to UML, but only if/when it makes sense. Zealots on both side of the spectrum (from cowboys to uptight formalists) fail to understand that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;There are contexts in which a less rigid approach&lt;/strong&gt; (like the one you personally use) is the best approach to follow. A good example is for small systems or changes, where requirements are small and not fully defined; the group in charge is efficient and effective; it is more important to get it out than to get it perfect. It is done iteratively and some deficiencies are acceptable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or maybe you are in a stage where you are doing guestimation and sketching as opposed to a full formal modeling phase. Those are examples that would come to mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;At other times, you need a rigid formal UML approach.&lt;/strong&gt; For example, you might be contractually bound; you have a very large number of developers in multiple teams (possibly distributed); the scope of the project might be in years; it is a very large system (including software and hardware components); the cost of failure is high, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;At other times&lt;/strong&gt;, you have to use something else instead/in addition to UML (actual mathematical formal models like petri nets, CSP or temporal logic.) Example of this are real-time systems, systems where failures are catastrophic (medical devices) or where you are contractually bound (.ie. as in Europe when developing transportation systems.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It all depends on the circumstances and what we expect to gain from each approach. A professor that harks on sticking to formality is simply being a blind zealot. The world of engineering is not a black-n-white, right/wrong dichotomy. It is a world of intelligent trade-offs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are intelligent enough to use a casual, informal model in a manner that is effective and appropriate to get the job done, then so be it. By the same token, you will be expected to recognize when &lt;strong&gt;&lt;em&gt;NOT&lt;/em&gt;&lt;/strong&gt; to use an informal approach and/or when &lt;strong&gt;&lt;em&gt;NOT&lt;/em&gt;&lt;/strong&gt; to use a formal one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, you have to play it by ears with professors. Give them a bone so that they give you a grade, and if that means to finally bow to their zealot mantra, that's fine. You know what works for you, and hopefully, you will know when to use what and how in the real world.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-15T19:30:33.333" />
  <row Id="12303" PostTypeId="2" ParentId="12292" CreationDate="2010-10-15T19:54:37.570" Score="4" ViewCount="" Body="&lt;p&gt;It really depends on what &lt;code&gt;Bar&lt;/code&gt; is.  If it's something simple then your &lt;code&gt;Foo&lt;/code&gt; method is already testable, you just need to specify your expectations and invoke it statically, e.g.:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Assert.IsTrue( FooContainer.Foo() );&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But if &lt;code&gt;Bar&lt;/code&gt; encapsulates, say, your database access layer, then you can't test &lt;code&gt;Foo&lt;/code&gt; without a real database, which is why (thanks @ysolik), &lt;a href=&quot;http://googletesting.blogspot.com/2008/12/static-methods-are-death-to-testability.html&quot; rel=&quot;nofollow&quot;&gt;static methods are death to testability&lt;/a&gt;.  Or, in the words of Michael Feathers, &quot;&lt;a href=&quot;http://blog.lowendahl.net/?p=299&quot; rel=&quot;nofollow&quot;&gt;don't hide a TUF in a TUC&lt;/a&gt;&quot; (TUF stands for a test-unfriendly feature, TUC stands for a test-unfriendly construct).  If &lt;code&gt;Bar&lt;/code&gt; is &lt;strong&gt;indeed test-unfriendly&lt;/strong&gt;, then sorry, it doesn't work well without making &lt;code&gt;Foo&lt;/code&gt; an instance method.  You would need to redesign your code first:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class FooContainer {&#xA;    public bool Foo() {&#xA;        var bar = new Bar();&#xA;        //...&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;When &lt;code&gt;Foo&lt;/code&gt; is no longer static, you can invoke it on an instance of &lt;code&gt;FooContainer&lt;/code&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var container = new FooContainer();&#xA;Assert.IsTrue( container.Foo() );&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The next step is to extract an interface from &lt;code&gt;Bar&lt;/code&gt; (let's call it &lt;code&gt;IBar&lt;/code&gt;) and inject it into &lt;code&gt;FooContainer&lt;/code&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class FooContainer {&#xA;    private IBar m_bar;&#xA;    public FooContainer (IBar bar ) { m_bar = bar; }&#xA;    public bool Foo() {&#xA;        // don't create another Bar, use m_bar&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now you can &lt;a href=&quot;http://martinfowler.com/articles/mocksArentStubs.html&quot; rel=&quot;nofollow&quot;&gt;mock/stub&lt;/a&gt; &lt;code&gt;IBar&lt;/code&gt; with your favourite &lt;a href=&quot;http://weblogs.asp.net/rosherove/archive/2010/09/10/2010-poll-which-isolation-framework-do-you-use-in-net.aspx&quot; rel=&quot;nofollow&quot;&gt;isolation framework&lt;/a&gt; and test your &lt;code&gt;FooContainer&lt;/code&gt; code in isolation from its dependencies.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-15T19:54:37.570" />
  <row Id="12304" PostTypeId="2" ParentId="7349" CreationDate="2010-10-15T19:55:27.273" Score="2" ViewCount="" Body="&lt;p&gt;In this modern world of ours most of the stuff that once was required (and will still be smacked as the only true knowledge by the old ones) is not required so much today. You don't need to know how the hardware work to still be an excellent programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my own opinion the only things you need to know in these modern days of ours are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;OO programming.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Unit testing.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Basic Big O notations (when should you use an ArrayList and when should you use an LinkedList?).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Communication. Communication is always needed. Either with the consumer, client or your programmer pals.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Refactoring/Removing smelly code.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Anything else will follow up afterward with practice and experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Except Unit testing of the things you mention I would only consider SQL, Concurrency and Version Control System to be useful more than maybe a few times in your career. The rest are just general stuff which can be useful at times though aren't needed.&lt;/p&gt;&#xA;" OwnerUserId="4317" LastActivityDate="2010-10-15T19:55:27.273" CommentCount="2" />
  <row Id="12305" PostTypeId="2" ParentId="12248" CreationDate="2010-10-15T20:03:17.783" Score="0" ViewCount="" Body="&lt;p&gt;Clean Code has already been mentioned in other posts. I'd like to add &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0976694050&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Interface Oriented Design: With Patterns&lt;/strong&gt;&lt;/a&gt; . It teaches how to think in terms of interfaces and not actual implementations. In the end making your code more flexible and maintainable. Also, &lt;strong&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1933988274&quot; rel=&quot;nofollow&quot;&gt;The Art of Unit Testing&lt;/a&gt;&lt;/strong&gt; is one of the best books on unit testing that has simple and practical examples. It teaches you why and not just the how.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-15T20:03:17.783" />
  <row Id="12306" PostTypeId="2" ParentId="12279" CreationDate="2010-10-15T20:11:43.463" Score="2" ViewCount="" Body="&lt;p&gt;Important in what sense?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Important to you, to be able to put your thoughts into writing and maybe get some feedback from other developers? Then sure, why not? There's no reason to &lt;em&gt;not&lt;/em&gt; have your own website.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Important for your career, to have something to show for yourself? Perhaps, depending on your specific type of work. If you do web development, it would be nice to have a place of your own to show off what you know. If you do freelance work, it would be a great way to advertise yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Important for the programming community? Not likely. Developer blogs are a dime a dozen and chances are yours won't be particularly noteworthy. I don't think anyone should feel compelled to have something to say. But again, no reason not to do so if you want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It all comes down to &lt;em&gt;why&lt;/em&gt; you think you should have a website in the first place. Plenty of developers do, and plenty don't. It's a matter of your own interests and motivations. If it's important to &lt;em&gt;you&lt;/em&gt;, for whatever reason, then go for it. Otherwise, don't bother.&lt;/p&gt;&#xA;" OwnerUserId="4766" LastActivityDate="2010-10-15T20:11:43.463" />
  <row Id="12307" PostTypeId="2" ParentId="12279" CreationDate="2010-10-15T20:15:51.840" Score="4" ViewCount="" Body="&lt;p&gt;Before I would have only said that Websites and Blogs only serve a valuable purpose if you work as a Web Developer or anything where having a Portfolio on-line would generate you business. But after much thought it became clear I was being extremely naive.&#xA;Blogs as people have already said are a great way to track work you do and different things you may learn and great for looking back and reminiscing, but recently I discovered a much more valuable use. During your time working in technology I can guarantee you will be asked to demonstrate or convey your passion for technology and when that time comes you will hit out with the every cliché in the book, BUT if you keep a blog you can add it to your CV for employers to look at and use it when asked that all important question. &#xA;It wasn't until recently when I worked for a world leading investment bank I discovered a sophisticated blog can be the difference between you and the next guy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even sites such as this , and giving consistent advice can help display a strong passion for tech.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So in my honest opinion it cant do no harm and if anything will personally benefit you, and can benefit you career wise aswell.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-15T20:15:51.840" />
  <row Id="12308" PostTypeId="2" ParentId="12279" CreationDate="2010-10-15T20:17:06.907" Score="1" ViewCount="" Body="&lt;p&gt;I myself do not have a website but I have many friends who do. A lot of them use it to show what their web development skills are like , post their resume online, show their projects from inside and outside of class, and host a blog. None of them have all of those, but they all have at least one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having a copy of your resume online allows employers whom you haven't contacted to get in contact with you about a job. This is useful because it makes you aware of opportunities you would not otherwise be aware of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hosting a blog allows you to express your views in an open forum so they can see your opinions on software development.  This way they can give you more specific questions or see you express yourself in writing (possibly advantageous if you have problems thinking on your feet or have a speech impediment).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Showing your web development skills and past projects is good because it lets them see your code.  This might not seem like much, but it will show them where your strengths lie and they might think your a better fit.  It will also let them see that you have actually worked on some of the things you claim.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In conclusion, it is not necessarily important in the sense of necessary, but it could make the difference in getting or not getting a job later.&lt;/p&gt;&#xA;" OwnerUserId="5179" LastActivityDate="2010-10-15T20:17:06.907" />
  <row Id="12309" PostTypeId="2" ParentId="2240" CreationDate="2010-10-15T20:21:41.290" Score="0" ViewCount="" Body="&lt;p&gt;If you are interested specifically in design patterns in C++ try &lt;a href=&quot;http://erdani.com/book/main.html&quot; rel=&quot;nofollow&quot;&gt;Modern C++ Design&lt;/a&gt; by Andrei Alexandrescu.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-15T20:21:41.290" />
  <row Id="12310" PostTypeId="2" ParentId="3732" CreationDate="2010-10-15T20:29:58.610" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Requirements that read like the following:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want it exactly like &lt;em&gt;(insert giant e-commerce operation, like eBay or Amazon)&lt;/em&gt; but with one small change &lt;em&gt;(insert rip of some social networking site, like Facebook or Twitter)&lt;/em&gt;.  Since they've already been done, we can just rip it off and get rich.  That way, I won't have to pay you, and we can split 50/50.  You do the coding, I'll come up with the ideas and show you this cool &quot;view source&quot; button I found that gives you free codes!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've got a great idea!  What if people could host auctions like on eBay, but on their Facebook statuses!  So instead of 'liking' something, you 'bid' on it!  We'll take a cut of each auction, and get really rich really fast!  You can have half the profits for doing all the code, and I'll chip in by copy-pasting some of this HTML stuff I stole from eBay.  &lt;/p&gt;&#xA;" OwnerUserId="4265" LastActivityDate="2010-10-15T20:29:58.610" CommunityOwnedDate="2010-10-15T20:29:58.610" CommentCount="2" />
  <row Id="12311" PostTypeId="2" ParentId="12292" CreationDate="2010-10-15T20:43:51.477" Score="0" ViewCount="" Body="&lt;p&gt;What is the point of Foo? What does it do? What is a Bar?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems from your question that Bar is a class that introduces side effects, &lt;em&gt;or&lt;/em&gt; Bar is a resource.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either way, in both circumstances, without changing the method signature, you're hooped without going into the ill-fated world of pre-processor directives (#if test var bar = FakeBar(); // = bad). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If Bar is a class that introduces side effects: without injecting that dependency or returning whatever it affects, you're in trouble.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's a resource (Stream, DBConnection, etc.) then the only realistic options I can see is to:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Extract out an interface and take an&#xA;IBar as a parameter like @azheglov&#xA;says &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Create a fake/stub that&#xA;inherits from Bar and pass that as a&#xA;parameter&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;What it boils down to is that you're likely going to have to change the method signature, reduce side-effects and not create hidden dependencies if you want to make it easier to test.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-15T20:43:51.477" />
  <row Id="12312" PostTypeId="2" ParentId="9030" CreationDate="2010-10-15T20:45:22.707" Score="0" ViewCount="" Body="&lt;p&gt;I think it depends on the individual. For example, I prefer coding while hyped up on caffeine.  Meanwhile I know people who develop personal software in their free time drunk, or while eating a bunch of candy.  It really depends on the person.&lt;/p&gt;&#xA;" OwnerUserId="5179" LastActivityDate="2010-10-15T20:45:22.707" />
  <row Id="12313" PostTypeId="2" ParentId="2240" CreationDate="2010-10-15T20:53:45.667" Score="0" ViewCount="" Body="&lt;p&gt;The original book, &quot;Design Patterns: Elements of Reusable Object Oriented Software&quot; is a good resource for object oriented design patterns.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There exist many other books out there.  When I need a quick reference and my GoF book is out of reach, Wikipedia normally has enough information on those and other design patterns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those are the primary ones I use.  It should also be noted that people have started applying the pattern format to other things, such as project management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to know about antipatterns, which you should be aware of, there's two books, &quot;AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis&quot; as well as &quot;Refactoring: Improving the Design of Existing Code&quot; which has a section on code smells, another name for antipatterns.&lt;/p&gt;&#xA;" OwnerUserId="5179" LastActivityDate="2010-10-15T20:53:45.667" />
  <row Id="12314" PostTypeId="2" ParentId="12189" CreationDate="2010-10-15T21:04:21.487" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://learnpythonthehardway.org/index&quot; rel=&quot;nofollow&quot;&gt;http://learnpythonthehardway.org/index&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is free &amp;amp; good.&lt;/p&gt;&#xA;" OwnerUserId="5499" LastActivityDate="2010-10-15T21:04:21.487" />
  <row Id="12315" PostTypeId="2" ParentId="12189" CreationDate="2010-10-15T21:07:06.383" Score="2" ViewCount="" Body="&lt;p&gt;In addition to the resources linked by @Chankey, I want to add the &lt;a href=&quot;http://docs.djangoproject.com/en/1.2/&quot; rel=&quot;nofollow&quot;&gt;Django Tutorial and Documentation&lt;/a&gt; which I am now using to learn web development myself.&lt;/p&gt;&#xA;" OwnerUserId="5179" LastActivityDate="2010-10-15T21:07:06.383" />
  <row Id="12316" PostTypeId="2" ParentId="3732" CreationDate="2010-10-15T21:09:32.557" Score="1" ViewCount="" Body="&lt;p&gt;Boring projects that need to be done yesterday and the requirements are changing tomorrow.&lt;/p&gt;&#xA;" OwnerUserId="1612" LastActivityDate="2010-10-15T21:09:32.557" CommunityOwnedDate="2010-10-15T21:09:32.557" />
  <row Id="12317" PostTypeId="2" ParentId="10793" CreationDate="2010-10-15T21:16:49.433" Score="3" ViewCount="" Body="&lt;p&gt;In my field (physics modeling), I discover a bug in the output today that wasn't in the repository as of 6 months ago.  When this happens, I will do a binary search on revisions:  &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Run model from 3 months ago&lt;/li&gt;&#xA;&lt;li&gt;If bug is still in output, run the model from 4.5 months ago&lt;/li&gt;&#xA;&lt;li&gt;... repeat until I find the commit that yields in bad output&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;When the bug was introduced in a monstrous commit, I have to sit with a fine-toothed comb to find the source of the problem.  If the commit touched a small number of files, it's less painful to track down the line(s) of code that introduced the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend breaking down your problem into a series of smaller tasks (ideally put each task in a bug tracker).  Make a commit as you complete each task (and close that bug/feature in your bug tracker).&lt;/p&gt;&#xA;" OwnerUserId="5197" LastActivityDate="2010-10-15T21:16:49.433" CommunityOwnedDate="2011-01-20T04:56:55.133" />
  <row Id="12318" PostTypeId="1" AcceptedAnswerId="12333" CreationDate="2010-10-15T21:24:05.000" Score="1" ViewCount="230" Body="&lt;p&gt;Questions revolving around ways of getting customers to embrace new web technology / browsers so one can deliver better web software to the end user.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's hard to manage expectations of customers. Expectations such as:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Websites should work on older browsers. (ambiguous).&lt;/li&gt;&#xA;&lt;li&gt;Websites should not require specific hardware.&lt;/li&gt;&#xA;&lt;li&gt;Giving system / computer specs for running a website is unacceptable.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Web development isn't as easy as many think. There's a lot that goes into creating a properly run web application (not just a website). Take a look at Google Docs or Microsoft Office online. These are more than just regular websites, and they force users to use newer browsers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;MS Office Online will not work with IE6, and they are trying very hard to push people to use IE8 (soon IE9). Google pushes as well, same with many other strong web entities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can do a lot on the internet, from playing games, watching movies, doing work, even coding and have the server you're connected to compile your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With everything the web can do, I find it amazing that people still want to put unrealistic expectations on web applications just because it will require someone to use a browser that is only... 2-3 years old. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I understand people don't like change. And we all know that many corporations will provide days/weeks of training to help their employees understand new internet browsers. There are also cases where people are forced to use old browsers because the archaic system they use for internal work only runs on that browser (ActiveX+IE6).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;My Questions&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can you tell your end users that they will need to upgrade their browser to use the latest version of your website without a huge outcry?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why does the expectation exist that it's ok for software to require people to upgrade Windows/Mac versions, but a website cannot require a new browser version?&lt;/p&gt;&#xA;" OwnerUserId="5500" LastActivityDate="2010-10-16T00:37:13.243" Title="Why can people expect hardware/software requirements on software applications, but it's not for web applications?" Tags="&lt;web-development&gt;" AnswerCount="3" />
  <row Id="12319" PostTypeId="1" AcceptedAnswerId="12330" CreationDate="2010-10-15T21:29:53.460" Score="4" ViewCount="134" Body="&lt;p&gt;If I'm honest with myself my current ant skills are minimal. I can dabble, and amend existing scripts but writing one from scratch, (for example, to package up a project into a war file) I couldn't do without trawling through the documentation repeatedly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What book(s)/website(s) would you  reccomend I read?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is that even the best approach. Would I be better just putting together some simple projects and writing the ant scripts to package them in jars/wars etc?&lt;/p&gt;&#xA;" OwnerUserId="5148" LastActivityDate="2010-10-16T02:48:27.933" Title="Whats the best way to learn Ant?" Tags="&lt;learning&gt;&lt;recommendations&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="1" />
  <row Id="12320" PostTypeId="2" ParentId="1599" CreationDate="2010-10-15T21:33:39.660" Score="3" ViewCount="" Body="&lt;p&gt;Escaping my quotes. I did this on an English paper once. I was quoting from a book, and therefore already had quotes. So I escaped the inside quotes to prevent confusion:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Kino said, \&quot;He will not come\&quot;&quot; (Steinbeck 7).&lt;/p&gt;&#xA;" LastActivityDate="2010-10-15T21:33:39.660" CommunityOwnedDate="2010-10-15T21:33:39.660" />
  <row Id="12321" PostTypeId="2" ParentId="12279" CreationDate="2010-10-15T21:42:30.560" Score="2" ViewCount="" Body="&lt;p&gt;I think having one is a great idea, both for yourself, and to increase the knowledgebase all around for everyone. Every problem has many different solutions, and it is unlikely that many of the specific solutions you find would be completely unoriginal.&lt;br&gt;&lt;BR&gt;&#xA;That being said... if your site has your name on it and is something that clients/employers have access to and know that its yours, be sure to keep it up to date, especially aesthetically. I know as programmers we know that graphic design is a whole different field, but clients do not know that and could see your site as a poor reflection of your work. People who sell life-sized Han Solo figurines can use all of the BLINK tags they want (with black background and yellow text), but the same cannot be said for a developer.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-15T21:42:30.560" CommentCount="1" />
  <row Id="12322" PostTypeId="1" AcceptedAnswerId="12328" CreationDate="2010-10-15T21:44:31.193" Score="3" ViewCount="97" Body="&lt;p&gt;TBH:  I've never used an observer pattern.  But it looks pretty useful for this situation:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm developing a very simple strategy game.  It involves two combatants who simultaneously bludgeon each other over a short period of time, the winner being the combatant with the most health remaining in the end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, there's a lot of configurable strategies for the combatants, different pieces of equipment that can change how often they attack, etc.  I'm also planning on including some &quot;outside&quot; factors like weather that will affect the combatants.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So....    I could create a Fight object that is the subject.  It keeps track of the time and notifies the observers every &quot;tick&quot; of the clock.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The observers are two instances of a Combatant object and one Weather object.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems like a good idea, but where are the pitfalls?  Actually, as I'm typing this I think one problem is that observers are probably ignorant of each others' parameters.  Or must they be?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone used an effective design pattern to do something like this?&lt;/p&gt;&#xA;" OwnerUserId="5497" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:11:38.163" LastActivityDate="2010-11-16T15:11:38.163" Title="Would this be an effective use of the Subject/Observer pattern, or is there a better way?" Tags="&lt;best-practices&gt;&lt;games&gt;" AnswerCount="1" CommentCount="5" />
  <row Id="12323" PostTypeId="2" ParentId="3732" CreationDate="2010-10-15T21:50:02.630" Score="1" ViewCount="" Body="&lt;p&gt;I hate typing and using the mouse. Causes nothing but pain.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-10-15T21:50:02.630" CommunityOwnedDate="2010-10-15T21:50:02.630" CommentCount="1" />
  <row Id="12324" PostTypeId="2" ParentId="12318" CreationDate="2010-10-15T21:50:48.807" Score="2" ViewCount="" Body="&lt;p&gt;The expectation that a website shouldn't need a new browser is simple. The browser works fine with other sites. Why is yours broken?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To overcome this resistance, you should take a page from Adobe's playbook and keep as much of your site's functionality compatible with older browsers as possible. For that which &lt;em&gt;requires&lt;/em&gt; a more modern browser, have some graphic indicate that additional functionality requires X feature of newer browsers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're dumping support for some outdated browser feature, try to have some corresponding indication on your site as well.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-15T21:50:48.807" />
  <row Id="12325" PostTypeId="2" ParentId="12318" CreationDate="2010-10-15T21:53:11.453" Score="2" ViewCount="" Body="&lt;p&gt;The primary point in favor of using a web site is that people can use it without worrying about the hassles of installing and maintaining up to date software. If they have to do that anyway, desktop applications generally have substantial advantages in responsiveness, performance, features, etc.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-15T21:53:11.453" CommentCount="1" />
  <row Id="12326" PostTypeId="2" ParentId="2459" CreationDate="2010-10-15T21:53:48.597" Score="1" ViewCount="" Body="&lt;p&gt;Like most programmers I am tech support for family and friends and almost every one of them use the mouse for all actions possible. Even for things like cut and paste they do it all with the mouse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they went to a webpage login without a login button I would end up getting a call and then I would curse the developer that decided a button wasn't necessary.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-10-15T21:53:48.597" />
  <row Id="12327" PostTypeId="2" ParentId="2459" CreationDate="2010-10-15T22:14:37.587" Score="0" ViewCount="" Body="&lt;p&gt;Users LOVE buttons. They want buttons to log in, log off, log off and shut the computer down, log off and go to hotmail etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Button's imply that a user is invoking an action. Logging off is an action, logging in is an action.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People will press enter, they might even tab out of password and press enter. give a button. IT's the un-written standard. &lt;/p&gt;&#xA;" OwnerUserId="5500" LastActivityDate="2010-10-15T22:14:37.587" />
  <row Id="12328" PostTypeId="2" ParentId="12322" CreationDate="2010-10-15T22:19:45.467" Score="2" ViewCount="" Body="&lt;p&gt;If the two Combatant instances and Weather object are notified as the result of the clock tick count being updated, and not by direct intervention by the Fight object, then it's the Observer pattern.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your Fight object triggers the notifications directly you can use the Command pattern to encapsulate the receivers or have the Fight object send messages directly to the Combatants and Weather objects individually.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-15T22:19:45.467" CommentCount="1" />
  <row Id="12329" PostTypeId="2" ParentId="9272" CreationDate="2010-10-15T22:57:53.583" Score="0" ViewCount="" Body="&lt;p&gt;I'm starting to never trust comments. All too often, comments don't get updated when code gets updated and are vastly out of date or represent rules from clients/management that no-longer are relevant. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has gotten to the point in some cases where the comments don't even match the code that they're describing anymore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I have to choose between short/fancy and longer/easier to understand then I always choose the latter unless there is a &lt;em&gt;really&lt;/em&gt; good reason.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-15T22:57:53.583" />
  <row Id="12330" PostTypeId="2" ParentId="12319" CreationDate="2010-10-15T23:34:20.613" Score="3" ViewCount="" Body="&lt;p&gt;Reading about it won't help you nearly as much as just doing a few projects will. Start small and then add more features as you think of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll find you're spending less and less time trawling the docs as you memorize what you need to do.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-15T23:34:20.613" />
  <row Id="12331" PostTypeId="2" ParentId="6157" CreationDate="2010-10-16T00:29:04.270" Score="9" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Pipeline_%28Unix%29&quot; rel=&quot;nofollow&quot;&gt;Pipes&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How do I find all ERROR level messages when this app is running under DEBUG?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;tail -f -n 100 /var/log/app/out.log | grep ERROR&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Pipes are invaluable and understanding them is key to properly using the ever present terminal prompt. Inability to comprehend flow through designs (like most Unix programs) will cripple your abilities to move nimbly with precision and speed.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-16T00:29:04.270" CommunityOwnedDate="2010-10-16T00:29:04.270" CommentCount="4" />
  <row Id="12332" PostTypeId="2" ParentId="10053" CreationDate="2010-10-16T00:34:26.893" Score="0" ViewCount="" Body="&lt;p&gt;I've been experimenting with a method called the 'Pomodoro Technique'. In essence you write down the task you want to achieve and set a timer for 25 minutes to focus on this task. Once the 25 minutes are up you take a 5 minute break. You then assess how far you got and then rinse and repeat. The trick is to try your best not to let your mind wander. It's harder than it looks!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read more &lt;a href=&quot;http://www.pomodorotechnique.com/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; (although you don't need to buy any of their stuff to be able to do this).&lt;/p&gt;&#xA;" OwnerUserId="5510" LastActivityDate="2010-10-16T00:34:26.893" />
  <row Id="12333" PostTypeId="2" ParentId="12318" CreationDate="2010-10-16T00:37:13.243" Score="2" ViewCount="" Body="&lt;p&gt;First of all, I don't really think people have any greater motivation &quot;to upgrade Windows/Mac versions&quot;: Here are the &lt;a href=&quot;http://en.wikipedia.org/wiki/Usage_share_of_operating_systems&quot; rel=&quot;nofollow&quot;&gt;usage share of web client operating systems&lt;/a&gt; (August 2010): Windows XP (48.32%), Windows 7 (19.81%), Windows Vista (18.43%), Mac OS X (6.42%), iOS (iPhone) (1.40%), Linux (1.34%). So nearly 50% are using an outdated OS (XP).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By contrast, here are the &lt;a href=&quot;http://www.w3schools.com/browsers/browsers_stats.asp&quot; rel=&quot;nofollow&quot;&gt;usage  share statistics&lt;/a&gt; for browsers: Overall- IE (31.1 %), FF (45.1%), Chrome (17.3%), Safari (3.7%), Opera (2.2%). Breaking down IE by version- IE9 (0.2%), IE8 (17.3%), IE 7 (8.0 %), IE6 (5.6%). And for Firefox- FF4 (0.8%), FF3.6 (35.3%), FF3.5 (5.6%), FF3.0 (2.9%). So over 50% use the latest stable (or beta) versions of these browsers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for your other question--&quot;How can you tell your end users that they will need to upgrade their browser to use the latest version of your website without a huge outcry?&quot;--you must understand (i) the factors motivating people to upgrade, and (ii) the factors inhibiting people from upgrading; then you must use these factors to bolster your appeal to your end-users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Motivators&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What rewards do end-users get by upgrading? Skimming Microsoft's IE8 marketing materials, these are the motivators they stressed most:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Appeals to Efficiency/Laziness:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Faster surfing (i.e., you will gain more free-time if you switch)&#xA;&lt;li&gt;You can accomplish more work with fewer clicks, because of a more intuitive design. IE7 had put certain buttons in strange places, etc. (I.e., you will lose less effort [as measured in clicks] if you upgrade).&#xA;&lt;/ul&gt;&#xA;&lt;li&gt;Appeals to Security/Fear:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;SmartScreen protects you from malicious software (i.e., you will lose safety if you don't upgrade).&#xA;&lt;li&gt;Compatibility View allows you to view older pages correctly just as the website’s designers intended (i.e., you won't lose anything if you upgrade).&#xA;&lt;/ul&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So motivators boil down to what the end-user will gain by upgrading (or lose if they don't upgrade). These things must be important to the end-user: Time, effort, financial security, compatibility, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Reinforcers&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reinforcers aren't rewards, but they help increase the rate of adopting the desired behavior. Here's an example: Your web site can detect old versions of browsers, and direct users to download and install the latest versions by providing links and motivators.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Inhibitors&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Nuisance (cost in terms of time and effort) to upgrade&#xA;&lt;li&gt;Nuisance of learning something new&#xA;&lt;li&gt;New versions are inevitably buggy and suffer from incompatibilities that haven't yet been discovered&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;You must anticipate these arguments, and develop effective counter-arguments:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;There is a risk/reward trade-off, and the rewards outweigh these risks.&#xA;&lt;li&gt;New versions of browsers are fully supported, and bugs will be worked out. By contrast, older versions aren't well supported; and the oldest version have lost support entirely.&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-16T00:37:13.243" />
  <row Id="12334" PostTypeId="1" AcceptedAnswerId="12413" CreationDate="2010-10-16T00:53:22.473" Score="13" ViewCount="352" Body="&lt;p&gt;I've recently been tasked with increasing standards and efficiency within a development team. I've read similar posts about the makings of a good development team but these often discuss the human elements such as &quot;passion for learning&quot;, &quot;being a team player&quot; etc. These are all of course important but I'm particularly interested in ideas surrounding practical methodologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some are just plain obvious, for example, my first implementations are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Implementation of Source Control - well, do I have to even explain why?&lt;/li&gt;&#xA;&lt;li&gt;A structured method of deploying builds that everybody adheres to - makes deployment easier for all involved&lt;/li&gt;&#xA;&lt;li&gt;Coding standards - ensures everybody is working in the same way and (hopefully) reduces technical debt&lt;/li&gt;&#xA;&lt;li&gt;Encouragement to make use of the developer community e.g. StackOverFlow and the like - keeps us in the loop with the big bad world and brings in ideas from outside our office walls&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What practical methodology does your team employ that you feel makes a tremendous difference to the productivity and overall &quot;goodness&quot; of a development team?&lt;/p&gt;&#xA;" OwnerUserId="5510" LastActivityDate="2010-10-25T16:24:34.030" Title="Methodologies of a high class development team" Tags="&lt;productivity&gt;&lt;work-environment&gt;&lt;code-quality&gt;" AnswerCount="9" CommentCount="3" FavoriteCount="6" />
  <row Id="12335" PostTypeId="2" ParentId="12334" CreationDate="2010-10-16T01:11:09.927" Score="4" ViewCount="" Body="&lt;p&gt;Implementing a &lt;strong&gt;bug tracking system&lt;/strong&gt; greatly improves team communication and reduced the number of issues in a deployed product. All the problems you come across need to be documented and &quot;in your face&quot;.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-16T01:11:09.927" />
  <row Id="12336" PostTypeId="1" CreationDate="2010-10-16T01:28:13.730" Score="4" ViewCount="1076" Body="&lt;p&gt;What do you think are the best plugins for vim that help with programming?&lt;/p&gt;&#xA;" OwnerUserId="5513" LastActivityDate="2011-05-18T06:49:11.337" ClosedDate="2011-05-18T07:46:53.490" Title="Best vim plugins for programmers" Tags="&lt;vim&gt;&lt;plugins&gt;" AnswerCount="9" CommentCount="4" FavoriteCount="12" />
  <row Id="12337" PostTypeId="2" ParentId="12334" CreationDate="2010-10-16T01:59:00.080" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Extreme_Programming&quot; rel=&quot;nofollow&quot;&gt;XP&lt;/a&gt; will address most of your concerns. It is made for small teams and brings a lot of cool techiniques that can help your team, such as TDD, continous integration and coding standards. You could, for example, set up a Version Control System and a build server that continuously watches the VCS for changes, runs all the unit tests and generates an output (an exe, a jar, whatever). There are tools like &lt;a href=&quot;http://hudson-ci.org/&quot; rel=&quot;nofollow&quot;&gt;Hudson&lt;/a&gt; for helping with that. But that is only a small part. I recomend you to read about XP. You don't need to do everything. Just go for the things your team feel confortable. You can improve your process over the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From my experience, another nice thing to enhance the &quot;goodness&quot; is to buy books. The company I work for buys any book that we want. It's nice to be able to catch one and take it home to read and learn new things.&lt;/p&gt;&#xA;" OwnerUserId="1124" LastActivityDate="2010-10-16T01:59:00.080" CommentCount="1" />
  <row Id="12339" PostTypeId="2" ParentId="11312" CreationDate="2010-10-16T02:13:48.017" Score="1" ViewCount="" Body="&lt;p&gt;For me a gym.  I'm a physical guy and I know a lot of programmers are not, but I need to go and work out or i'm just not as productive.  It doesn't have to be much but a place where you can do pull ups or sit ups a chin up bar and a punching bag.  however I would do this after you have 2 monitors and a place where ideas are debated but those have already been mentioned.&lt;/p&gt;&#xA;" OwnerUserId="4553" LastActivityDate="2010-10-16T02:13:48.017" CommunityOwnedDate="2010-10-16T02:13:48.017" />
  <row Id="12340" PostTypeId="2" ParentId="12334" CreationDate="2010-10-16T02:17:34.767" Score="4" ViewCount="" Body="&lt;p&gt;I'm taking some ideas out of specific methodologies because they're good in general:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Every time you touch code, try to improve it - This will hopefully reduce how much bad code there is simply by people refactoring the code into a better implementation&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Test early, test often - This way you know your code is working as you develop it. Doing this has saved me a lot of time versus projects on which I just wrote everything and tested later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Don't let people break the build - Keeping people from submitting code to the main repository until its working will keep people from pulling in a broken build or accidentally promoting incomplete systems to production which is very bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) As others have mentioned, a bug tracking system. When you can track bugs, you can fix bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) Bug seeding to find out approximate how many bugs you have - This works by having one group of people intentionally introduce bugs into the system and having another group check the system for bugs.  Then you calculate what percentage of the bugs were the ones placed into the system intentionally. From there you can approximate how many bugs are in your system by dividing the unseeded bugs by the percentage of the bugs found being seeded. - Just saw the comments about the size of the team.  For a team as big as it is currently, this is a bit of overkill. I would wait a while before doing this one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;6) Some form of workflow management system.  - What I mean is something to track what is currently being worked on and by whom and how long it is taking.  My experience with such systems is mainly with Kanban which is used to track and limit how many items are being worked on at a given time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;7) Use frameworks and libraries as much as possible.  - This will reduce how much you are rolling your own to a minimal amount.  I'm sure we've read a lot of stories from &lt;a href=&quot;http://thedailywtf.com/&quot; rel=&quot;nofollow&quot;&gt;The Daily WTF&lt;/a&gt; which demonstrate how rolling your own can cause ... problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;8) Don't add a lot of process in the middle of a project.  - This might seem counterintuitive but as McConnell showed in his book &lt;em&gt;Rapid Development&lt;/em&gt;, adding process in the middle of the project can result in increased thrashing.  The problem is that when process is introduced it temporarily reduces productivity as it gets set up. Seeing the reduction in productivity, management adds more process to better correct the situation. On top of that, as process is added developers initially thrash more.  Eventually, this self feeding loop of non-productivity results in no progress being made.  Point is, don't panic if process doesn't instantly increase productivity and add more as a result.  That is a dark and dangerous path.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is an incomplete list but this is what I have off the top of my head.&lt;/p&gt;&#xA;" OwnerUserId="5179" LastEditorUserId="5179" LastEditorDisplayName="" LastEditDate="2010-10-16T03:31:33.773" LastActivityDate="2010-10-16T03:31:33.773" />
  <row Id="12341" PostTypeId="2" ParentId="12336" CreationDate="2010-10-16T02:41:54.093" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1218&quot; rel=&quot;nofollow&quot;&gt;The NERD Commenter&lt;/a&gt; - code commenting for almost all file types&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-16T02:41:54.093" />
  <row Id="12342" PostTypeId="2" ParentId="12319" CreationDate="2010-10-16T02:48:27.933" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1930110588&quot; rel=&quot;nofollow&quot;&gt;Java Development with Ant&lt;/a&gt; is a pretty good reference. &lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-16T02:48:27.933" />
  <row Id="12343" PostTypeId="1" AcceptedAnswerId="12351" CreationDate="2010-10-16T02:48:50.827" Score="4" ViewCount="314" Body="&lt;p&gt;I was going through this article:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Subculture&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Subculture&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which got mee thinking is programming a subculture?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After the a while I started thinking it really hard, and if you go really in depth this is a very complex and interesting question to ask.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;YOu can even ask yourself if (heavy) internet (social) users are an subculture and programmers a culture within.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it might be an interesting discussion, hope you like it!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;NOTE:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I linked the wiki article because it might be a good baseline, maybe you can base you answer  on Ken Gelder´s proposal to distinguish subcultures. But it should be based on a little bit more that intuition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Trufa&lt;/p&gt;&#xA;" OwnerUserId="5014" LastActivityDate="2011-06-05T20:24:50.487" Title="Is programming a SubCulture?" Tags="&lt;programming&gt;&lt;general-purpose&gt;" AnswerCount="5" />
  <row Id="12344" PostTypeId="2" ParentId="12343" CreationDate="2010-10-16T02:53:13.773" Score="3" ViewCount="" Body="&lt;p&gt;Well, it's almost 11pm on Friday. An I'm answering your question...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's a subculture with a &lt;em&gt;lot&lt;/em&gt; of members. Similar to the hippy/counter-culture movement in the late 60's.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-10-16T02:53:13.773" CommentCount="1" />
  <row Id="12345" PostTypeId="2" ParentId="12172" CreationDate="2010-10-16T03:08:06.730" Score="2" ViewCount="" Body="&lt;p&gt;I recently had to get up to speed with WCF and fast. I would suggest starting with &lt;a href=&quot;http://channel9.msdn.com/Tags/wcf&quot; rel=&quot;nofollow&quot;&gt;Microsoft's Channel 9 -  WCF&lt;/a&gt;. It has many videos from introductory tutorials to advanced material. If that is not enough and/or you want an actual book, consider &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596101627&quot; rel=&quot;nofollow&quot;&gt;Learning WCF: A Hands-on Guide&lt;/a&gt; - it is not as heavy as Programming WCF Services (which is also a great book, but may not be as easy for a beginner).&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-16T03:08:06.730" />
  <row Id="12346" PostTypeId="2" ParentId="1745" CreationDate="2010-10-16T03:19:51.663" Score="-3" ViewCount="" Body="&lt;p&gt;That all of my day's voting points could be spent up voting answers to this question. Er, wait, that's not a myth - that just happened...&lt;/p&gt;&#xA;" OwnerUserId="5317" LastActivityDate="2010-10-16T03:19:51.663" CommunityOwnedDate="2010-10-16T03:19:51.663" />
  <row Id="12347" PostTypeId="1" CreationDate="2010-10-16T03:30:03.300" Score="5" ViewCount="221" Body="&lt;p&gt;Suppose you've had a recruiter contact you about a position at a medium-large to large company, and went for an interview and such, and seriously considered the position but ultimately you decided against joining, or they decided against hiring you for that particular position because they had someone more qualified show up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But time elapses, your circumstances change, and you realize that working there might be a better idea now (or they have other positions available)... How long should you wait before interviewing at the same company again?&lt;/p&gt;&#xA;" OwnerUserId="2348" LastActivityDate="2010-10-16T03:50:47.690" Title="How long should you wait before interviewing at the same company a second time?" Tags="&lt;interview&gt;&lt;employment&gt;&lt;etiquette&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="12348" PostTypeId="2" ParentId="12347" CreationDate="2010-10-16T03:36:39.647" Score="9" ViewCount="" Body="&lt;p&gt;Ask them.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When they tell you how long, say &quot;I will contact you again then.  Thank you for giving me the opportunity to interview with you.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then put it in your calendar.  When that day comes, call them and say, &quot;Hello.  You asked me to contact you again today to inquire about a position at your company.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-10-16T03:36:39.647" />
  <row Id="12349" PostTypeId="2" ParentId="1006" CreationDate="2010-10-16T03:47:24.267" Score="1" ViewCount="" Body="&lt;p&gt;Normally when I really need to program, I read up on the specific requirement I am going to be working on.  Then I try thinking about what might be necessary to solve the problem.  Eventually I've thought about it enough that I want to actually just write it and get it done.  Then there are the times I don't even want to think about it. I watch at least one movie (I'm a college student so this is doable in my work environment).  When I was on co-op and I didn't have that luxury I would look through my books on programming so that it relates to what I was working on and i can reasonably consider it work.  Eventually I get back to the point where I want to get back to work.&lt;/p&gt;&#xA;" OwnerUserId="5179" LastActivityDate="2010-10-16T03:47:24.267" />
  <row Id="12350" PostTypeId="2" ParentId="12347" CreationDate="2010-10-16T03:48:35.730" Score="1" ViewCount="" Body="&lt;p&gt;Normally it isn't your wish.. If it is an medium -large to a large company, they likely to have certain time bounds like * &lt;em&gt;Candidates who attended within the six months of duration need not apply&lt;/em&gt; (Possibly in the last line of their mail)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So just wait for that limit and give it another try. Or else, if they doesn't have anything like that as &lt;em&gt;Robert&lt;/em&gt; said, you can contact them and get to know about the possible date of when you can again contact..&lt;/p&gt;&#xA;" OwnerUserId="5491" LastActivityDate="2010-10-16T03:48:35.730" />
  <row Id="12351" PostTypeId="2" ParentId="12343" CreationDate="2010-10-16T03:49:33.697" Score="12" ViewCount="" Body="&lt;p&gt;No, programmers are not, in themselves a subculture.  There isn't a sense of belonging shared among programmers as a group, or really any of the elements of a shared identity.  &lt;strong&gt;However&lt;/strong&gt; -- and this is a big &quot;however&quot; -- a not-insignificant number of programmers are members of hacker culture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hackers have a shared identity, shared rituals/holiday, shared &lt;a href=&quot;http://esr.ibiblio.org/?p=2520&quot; rel=&quot;nofollow&quot;&gt;humor&lt;/a&gt;, a distinct shared &lt;a href=&quot;http://catb.org/jargon&quot; rel=&quot;nofollow&quot;&gt;language&lt;/a&gt;, they &lt;a href=&quot;http://catb.org/jargon/html/crackers.html&quot; rel=&quot;nofollow&quot;&gt;differentiate themselves from other cultures&lt;/a&gt;, have their &lt;a href=&quot;http://catb.org/jargon/html/appendixa.html&quot; rel=&quot;nofollow&quot;&gt;own folklore&lt;/a&gt;, and modes of dress, foods, habits, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hacker culture is not the same as programmer culture.  Many programmers don't grok hacker culture at all, and being a hacker isn't really defined by the activity of programming itself.  It's more about the mind set.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may be wondering why I call hackerdom a &quot;culture&quot; rather than a &quot;subculture&quot;.  Part of being a &quot;subculture&quot; is being somehow distinct from the &quot;dominant culture&quot;.  However, hackers don't have a specific term for non-hackers, despite having developed an expansive distinct vocabulary.  This is because the hacker doesn't consider him/her-self not to be part of other cultures due to his/her membership in the hacker culture.  It is not only acceptable that each hacker also belong to one or more other cultures, and that &lt;a href=&quot;http://binaryredneck.net/node/170&quot; rel=&quot;nofollow&quot;&gt;one hacker's &quot;other&quot; culture(s) may conflict with a fellow hacker's &quot;other&quot; culture(s)&lt;/a&gt;, but it is expected, and believed by some to be the reason hacker culture exists.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Culture#American_anthropology&quot; rel=&quot;nofollow&quot;&gt;One 20th century definition of &quot;culture&quot;&lt;/a&gt;, however, is a much better match: &quot;the universal human capacity to classify and encode their experiences symbolically, and communicate symbolically encoded experiences socially&quot;.  Hackers share a common way of classifying and encoding experiences, a shared symbology and language, and a shared way of communicating all of these things within the hacker social group.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Programmers&quot; as a group doesn't seem to fit either mold to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;--Susan&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;P.S. - I registered just to answer this question, but since I am new I can't link all of my references here.  Please see my comments for URLs (if the system lets me do that).&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Links:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Hacker humor and ritual observances (holidays): &lt;a href=&quot;http://esr.ibiblio.org/?p=2520&quot; rel=&quot;nofollow&quot;&gt;http://esr.ibiblio.org/?p=2520&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Hacker lexicon (dictionary of hacker language): &lt;a href=&quot;http://catb.org/jargon&quot; rel=&quot;nofollow&quot;&gt;http://catb.org/jargon&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;How hackers differentiate themselves from other cultures/subcultures: &lt;a href=&quot;http://catb.org/jargon/html/crackers.html&quot; rel=&quot;nofollow&quot;&gt;http://catb.org/jargon/html/crackers.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Hacker folklore: &lt;a href=&quot;http://catb.org/jargon/html/appendixa.html&quot; rel=&quot;nofollow&quot;&gt;http://catb.org/jargon/html/appendixa.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Hacker dress, food, habits, etc.: &lt;a href=&quot;http://catb.org/jargon/html/appendixb.html&quot; rel=&quot;nofollow&quot;&gt;http://catb.org/jargon/html/appendixb.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5516" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-10-23T19:40:00.317" LastActivityDate="2010-10-23T19:40:00.317" CommentCount="11" />
  <row Id="12352" PostTypeId="2" ParentId="12347" CreationDate="2010-10-16T03:50:47.690" Score="2" ViewCount="" Body="&lt;p&gt;For a medium to large company, I would say it is not necessary to wait at all....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's a different role, in a different department, then for all intents and purposes it's like a whole other job. The fact that it's the same company is just a formality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've worked at companies where different departments did vastly different things using vastly different technologies (eg. MFC desktop apps versus a web application versus strictly back end and SQL work). The different departments did such different things that their recruitments processes were more or less totally separate, and there is no reason why not taking a job with one meant that you shouldn't interview with another next week, if a vacancy came up.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-16T03:50:47.690" />
  <row Id="12353" PostTypeId="2" ParentId="12343" CreationDate="2010-10-16T04:04:27.617" Score="6" ViewCount="" Body="&lt;p&gt;No.  Programmers are no more a subculture than engineers, doctors, or lawyers.  If professions were actually subcultures then the word wouldn't mean very much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's look at the 6 criteria on the Wikipedia page:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;1. through their often negative relations to work (as 'idle', 'parasitic', at play or at leisure, etc.);&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is obviously not the case.  Most decent programmers work reasonably hard and enjoy it to some extent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;2. through their negative or ambivalent relation to class (since subcultures are not 'class-conscious' and don't conform to traditional class definitions);&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most programmers are middle-class, so this doesn't even really apply.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;3. through their association with territory (the 'street', the 'hood, the club, etc.), rather than property;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless the internet counts as territory, I'd have to say no to this as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;4. through their movement out of the home and into non-domestic forms of belonging (i.e. social groups other than the family);&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of programmers are on the anti-social side but again, and even the internet doesn't really apply here because everybody uses social networks now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;5. through their stylistic ties to excess and exaggeration (with some exceptions);&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most definitely not the case with programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;6. through their refusal of the banalities of ordinary life and massification.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pretty much every programmer I know enjoys the casual comforts of beer, pizza, and computer games.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Verdict:  &lt;strong&gt;No&lt;/strong&gt;, programming isn't a subculture.  It's a career.  What you do for a living has very little to do with how your philosophy on society.&lt;/p&gt;&#xA;" OwnerUserId="3249" LastActivityDate="2010-10-16T04:04:27.617" CommentCount="4" />
  <row Id="12354" PostTypeId="2" ParentId="11312" CreationDate="2010-10-16T04:17:53.273" Score="2" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Other beverages (hot water for tea, fridge for cold drinks).  Believe it or not, we're not all coffee nuts.&lt;/li&gt;&#xA;&lt;li&gt;Customizable workspace: coders have, if nothing else, strong opinions about how we code.  I often walk off with a fountain pen and notebook to start coding (often outside, on the floor, or in other strange places).  The more control coders have over our process, the more productive we can be.&lt;/li&gt;&#xA;&lt;li&gt;Business processes, etc. that allow us to customize our soft tools as we do our workspace: i.e. don't use proprietary protocols or formats that force us to all use the same client apps.&lt;/li&gt;&#xA;&lt;li&gt;Work/life balance: despite popular opinion, programmers may have lives.  Some of us have significant others and/or children.  Not only is it hard to attract and keep great coders if you work them 60h/week, but the ones you do keep will often be too burnt out to be productive.&lt;/li&gt;&#xA;&lt;li&gt;Work/learning/community balance: I think someone already covered this, but coders need chances to grow their skills and network with coders outside their office bubble in order to stay at the top of their game.  This is &lt;em&gt;especially&lt;/em&gt; true of coders working primarily on open-source products.  A few hours/week of community coding, and a conference or two a year can make a dramatic difference in your coder's ability and productivity, as well as your company's clout with other programmers, some of whom you might want to hire.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-10-16T04:17:53.273" CommunityOwnedDate="2010-10-16T04:17:53.273" />
  <row Id="12355" PostTypeId="2" ParentId="6974" CreationDate="2010-10-16T04:52:41.867" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A Computer Science Tapestry: Exploring Computer Science in C++&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This was assigned reading when I was in college.  Apart from being totally soporific, this book presents things in such a convoluted way, I doubt I could have parsed it without prior programming knowledge: most of my class, in which there was only one experienced coder beside myself, was completely lost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I gave up after reading only a fraction of the book and tried using it to hold up the end of a wobbly bookcase.  It wasn't great at that, either: a little too thick and the cover was slippery.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-10-16T04:52:41.867" />
  <row Id="12356" PostTypeId="2" ParentId="1040" CreationDate="2010-10-16T04:55:13.227" Score="5" ViewCount="" Body="&lt;p&gt;In addition to the other answers, it should be noted that the level of CMMI and the amount of documentation they require is absolutely massive.  As a result, smaller companies can tend to get swamped.&lt;/p&gt;&#xA;" OwnerUserId="5179" LastActivityDate="2010-10-16T04:55:13.227" CommentCount="1" />
  <row Id="12357" PostTypeId="1" AcceptedAnswerId="12365" CreationDate="2010-10-16T04:55:18.200" Score="17" ViewCount="423" Body="&lt;p&gt;I'm a web developer who previously joined a software company not knowing their value and respect went to big data analysis, not their website. Sure, they needed a public-facing website, but I eventually found that the most exciting, valued projects there went to data teams. Realizing this, members of the web team were picked off and switched teams, making it hard for those left behind to keep up the work load, and making us look bad. At times it seemed the company culture sneered at us, wondering, &lt;em&gt;&quot;What does that team even do here?&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A friend of mine had the opposite problem at another software company. All he wanted to do was crunch big numbers. However he complained that the rest of the company wouldn't shut up about developing the usability of their website. Meanwhile his analytics team languished.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also heard of salespeople getting love at a company, while engineering as a whole is undervalued, or vice versa.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for my story, if I could have known the company was like that, I might have avoided the job in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, before I join a new company, how do I gauge its actual respect for my programming role? For its other roles? I want to avoid companies that aren't serious about my particular focus in programming, or, perhaps bigger picture, companies that don't value everybody who works there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Note I think gauging the company's attitude toward the basic needs of its programmers is covered by these &lt;a href=&quot;http://programmers.stackexchange.com/questions/1319/what-questions-do-you-ask-about-a-company-before-deciding-to-work-there&quot;&gt;related&lt;/a&gt; &lt;a href=&quot;http://programmers.stackexchange.com/questions/7861/when-deciding-on-whether-or-not-to-work-for-a-new-company-what-are-your-dealbrea&quot;&gt;questions&lt;/a&gt;.)&lt;/p&gt;&#xA;" OwnerUserId="5517" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-10-16T05:19:09.550" LastActivityDate="2011-01-14T21:16:29.660" Title="During interviews, how do I gauge a company's respect for my position?" Tags="&lt;jobs&gt;&lt;work-environment&gt;&lt;interview&gt;&lt;corporate-culture&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="5" />
  <row Id="12358" PostTypeId="2" ParentId="2267" CreationDate="2010-10-16T05:06:40.567" Score="0" ViewCount="" Body="&lt;p&gt;If you're going to be using command line, I prefer nano in part because it gives you the keyboard shortcuts at the bottom of the screen and is pretty straight forward to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're going to be using a graphical text editor, I would recommend Gedit on any platform and Notepad++ on Windows.  They both have tabs and text highlighting for your software development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are going to be using an IDE, I prefer Eclipse, but only because I've only really used that one.  I have a friend who prefers NetBeans and of course you should probably use Visual Studio if you're developing a Windows application in VC++, VC#, VB.NET etc.&lt;/p&gt;&#xA;" OwnerUserId="5179" LastActivityDate="2010-10-16T05:06:40.567" />
  <row Id="12359" PostTypeId="1" CreationDate="2010-10-16T05:24:11.557" Score="3" ViewCount="117" Body="&lt;p&gt;I am editing some c++ and all of the built in types have been wrapped in a corresponding wrapper class. All of the operators have been overloaded to do bizarre things like operator[] coded to ignore the argument or to exactly what the underlying type would do.  Is this malevolent or is there some possibility this is a good idea in some other universe.    &lt;/p&gt;&#xA;" OwnerUserId="4553" LastActivityDate="2010-10-16T16:33:11.830" Title="Is there a valid reason to wrap built in type with your own." Tags="&lt;design&gt;&lt;c++&gt;" AnswerCount="2" CommentCount="4" />
  <row Id="12361" PostTypeId="2" ParentId="2267" CreationDate="2010-10-16T06:24:07.957" Score="0" ViewCount="" Body="&lt;p&gt;For small to medium sized projects, geany is a very good option.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It supports many languages out of the&#xA;box. Has a very small learning curve.&lt;/li&gt;&#xA;&lt;li&gt;Can be used as a text editor or an&#xA;IDE.&lt;/li&gt;&#xA;&lt;li&gt;There is no huge overhead of&#xA;setting up a project as in&#xA;conventional IDEs, but gives IDE like&#xA;features with very minimal effort.&lt;/li&gt;&#xA;&lt;li&gt;You can at create geany's version of a tag file and get contextual completion.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You should definitely give geany a try, it gets most of the things right with very minimal effort. It is still no competition for vim or emacs, but the learning curve is very small and the productivity gain is comparatively high.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-16T06:24:07.957" />
  <row Id="12362" PostTypeId="2" ParentId="12357" CreationDate="2010-10-16T06:24:43.790" Score="4" ViewCount="" Body="&lt;p&gt;The only possibility that I can think of  to gauge beforehand would be to either informally talk with someone there (in practice you should probably know someone personally), or trust rumors. Since these usually aren't very viable options, you just have to try working there, and if it sucks, quit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thing is that the respect isn't readily there waiting for you to arrive. You have to win the respect by doing well not only what &lt;em&gt;you&lt;/em&gt; consider your job to be, but also doing &lt;em&gt;what the company needs&lt;/em&gt;. Since this tends to vary as a function of time, you should be equally flexible, too. That's what companies value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think there are too many companies who really don't value everybody working there; in fact, they're already valuing them very much by employing them and paying their salary. Of course, personal and political conflicts can make things look different at times. As can personal expectations; mainly looking for extrinsic praise is a recipe for misery.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-16T06:24:43.790" CommentCount="11" />
  <row Id="12363" PostTypeId="2" ParentId="6974" CreationDate="2010-10-16T06:28:26.903" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1572318570&quot; rel=&quot;nofollow&quot;&gt;Programming Microsoft Visual C++, 5ed (Kruglinski, Shepherd, Wingo)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not that the book was bad, but its title is very misleading, especially to people new to C++. The preface of the book promises to teach you how to program in VC++, and a background in C but not C++ is all you need. Truth be told, you absolutely cannot learn anything about C++ from this book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I owned this book for about 10 years, and recently (after working for a C++/Windows job for 4 years) I started to find &lt;em&gt;a few&lt;/em&gt; chapters to be a bit useful when explaining stuff to new hires.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People wishing to learn Windows Programming are advised to: (in chronological order)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learn C (and preferably get a CS degree)&lt;/li&gt;&#xA;&lt;li&gt;Find a C/C++ project team and join it, and focus on the pure C/C++ part of programming to master it&lt;/li&gt;&#xA;&lt;li&gt;When something is needed, learn straight from MSDN (it has improved a lot in the last 4 years). Ask your coworkers for code snippets.&lt;/li&gt;&#xA;&lt;li&gt;Finally, read this book. It will start to make sense.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-16T06:28:26.903" />
  <row Id="12364" PostTypeId="2" ParentId="12336" CreationDate="2010-10-16T06:30:03.173" Score="2" ViewCount="" Body="&lt;p&gt;OmniCppComplete - for C++ Omni Completeion&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TagList - for a per file overview, and current tag in the status line&lt;/p&gt;&#xA;&#xA;&lt;p&gt;MiniBufExplorer&lt;/p&gt;&#xA;&#xA;&lt;p&gt;c-support - for automatic templates like new file header, function header, constructs like for, while etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And a very very good color scheme based on personal preference.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastEditorUserId="5178" LastEditorDisplayName="" LastEditDate="2010-10-16T06:39:09.147" LastActivityDate="2010-10-16T06:39:09.147" />
  <row Id="12365" PostTypeId="2" ParentId="12357" CreationDate="2010-10-16T06:54:31.040" Score="4" ViewCount="" Body="&lt;p&gt;To get to the best case scenario:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;At the end of the interview, you have a short conversation with the interviewers about the company's recent goals, visions, values and struggles. Also, ask them this question: given what they already know about your skills and experiences, in what way do they think you will maximize your contributions to the company. &lt;em&gt;This only works if you believe they are genuine and not faking it.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;During the office tour, watch carefully what the programmers are working on, and try to overhear their conversations. See what books they have on the table. Pay attention to those details.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;To avoid the worst case scenario:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Read &lt;a href=&quot;http://thedailywtf.com/&quot; rel=&quot;nofollow&quot;&gt;TDWTF&lt;/a&gt;. Usually, if a company has a serious corporate culture / alignment problem, your interviewers will be among the deeply affected, and you'll be able to sense it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-16T06:54:31.040" CommentCount="1" />
  <row Id="12366" PostTypeId="2" ParentId="12359" CreationDate="2010-10-16T07:03:25.450" Score="2" ViewCount="" Body="&lt;p&gt;Though I have never seen C++ code used this way. In C, stack implementations typically do not use built in types directly. They usually have some MY_INT_32 (not event int32_t from stdint.h). This is required for very high portability. You will be amazed by the peculiarities of some of the platforms (12 bit integers anyone?).&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-16T07:03:25.450" />
  <row Id="12367" PostTypeId="2" ParentId="12357" CreationDate="2010-10-16T07:26:53.483" Score="2" ViewCount="" Body="&lt;p&gt;There are a number of ways, but as Joonas pointed out above -- if you can have an informal discussion with someone who works at the company you're interested in, that's definitely your best bet in finding out quickly how the company values your profession. It can also save you a lot of headaches of false promises.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of companies like to preach innovation and the chance for you to make your mark with youthful ideas, but in reality -- they stifle you with old ways and insecurity. Those would be things I think you should try to take away from meeting with your future employer in interviews. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do they actually have a grasp on modern technologies? &lt;/li&gt;&#xA;&lt;li&gt;Do they seem excited about innovating and making life easier for their customers and employees?&lt;/li&gt;&#xA;&lt;li&gt;Even simple things like... are they willing to accomodate your needs as a programmer?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You can run down the line of questioning here and elaborate to more specifics pretty easily. To be honest, I normally work my way up the ladder instead of down. If an employer isn't willing to accomodate me with &lt;a href=&quot;http://www.codinghorror.com/blog/2006/08/the-programmers-bill-of-rights.html&quot; rel=&quot;nofollow&quot;&gt;programmer's bill of rights&lt;/a&gt;, I'm not really interested. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps that seems petty, but I actually quit a job once due to the fact that my computer at work simply could handle the work I was doing. That small, minute problem escalated into a full scale ignore campaign by my bosses. Instead of fixing the problem, they ignored it, and it become apparent that other things that I didn't notice before came to my attention. Innovation was actually being stifled instead of encouraged, and web sites became rather cumbersome due to ridiculous demands from management rather than usable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like I said, small examples, not true broad suggestions I suppose, but every little bit counts. But one of the things I avoid like the plague is hearing that the applications being built cater to a very computer-illiterate crowd. I know... that's probably not going to happen often, but if it does... run. Normally, that means you'll be sacrificing a lot of standard web usability stuff for things that don't make sense to anyone.&lt;/p&gt;&#xA;" OwnerUserId="5520" LastActivityDate="2010-10-16T07:26:53.483" />
  <row Id="12368" PostTypeId="2" ParentId="6157" CreationDate="2010-10-16T07:36:37.663" Score="17" ViewCount="" Body="&lt;h2&gt;Version control&lt;/h2&gt;&#xA;" OwnerUserId="1416" LastEditorUserId="4887" LastEditorDisplayName="" LastEditDate="2010-10-17T05:42:41.533" LastActivityDate="2010-10-17T05:42:41.533" CommunityOwnedDate="2010-10-16T07:36:37.663" CommentCount="2" />
  <row Id="12369" PostTypeId="1" CreationDate="2010-10-16T07:39:34.477" Score="4" ViewCount="245" Body="&lt;p&gt;As far as I know, Oracle's RDBMS is one of the few (the only?) SQL database products that doesn't support &lt;a href=&quot;http://en.wikipedia.org/wiki/Identity_column&quot; rel=&quot;nofollow&quot;&gt;identity/autonumeric&lt;/a&gt; columns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The alternative offered by Oracle is &lt;a href=&quot;http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/views002.htm#i1107995&quot; rel=&quot;nofollow&quot;&gt;database sequences&lt;/a&gt;, a feature in many ways much more powerful than auto-numeric columns, but &lt;a href=&quot;http://stackoverflow.com/questions/661998/oracle-sequence-but-then-in-ms-sql-server&quot;&gt;not equivalent&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is not that I don't like sequences. What I hate is having a different programming model for generating row identity values between Oracle and any other database. For example, I often try to setup HSQL or SQLite for java apps that will eventually run over an Oracle database when I'm not working specifically on the data layer (just as a stub or mocking database). I cannot do that easily because I need different set of SQL DDL scripts: one for Oracle, and one for everyone else; I also need two sets of Hibernate mapping files if I'm using Hibernate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I find intriguing is that Oracle Database, being one of the most complete and robust enterprise software packages of the last decade hasn't put that seemingly basic feature in their product, but almost any other RDBMS, even the smaller ones, has it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why doesn't oracle support a sequence-based identity column shortcut syntax that dumb and lazy people like me can use?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only reason I can think of is that Oracle does that on purpose as a vendor lock-in strategy so your code is harder to migrate to other RDBMS where your database sequences cannot be used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or maybe I'm just wrong and confused? Please enlighten me.&lt;/p&gt;&#xA;" OwnerUserId="76" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-10-20T23:15:26.480" LastActivityDate="2010-10-20T23:15:26.480" Title="What's stopping Oracle from supporting identity (auto-numeric) columns?" Tags="&lt;oracle&gt;&lt;database&gt;&lt;sequence&gt;&lt;product-features&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="12370" PostTypeId="2" ParentId="9948" CreationDate="2010-10-16T07:51:31.850" Score="0" ViewCount="" Body="&lt;p&gt;&lt;em&gt;No, you can't. Please don't.&lt;/em&gt; &lt;strong&gt;&lt;em&gt;We despise you.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, I think posting well-thought, well-organized answers to non-trivial questions qualifies as a way to practice &lt;strong&gt;technical communication&lt;/strong&gt;, as is careful reading of other people's great writings on SO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on the position you are interviewing for, technical communication may be an important and marketable skill, especially if the position is not entry-level. In this case, you should be able to demonstrate your writing and verbal skills without directly mentioning SO.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-16T07:51:31.850" />
  <row Id="12376" PostTypeId="2" ParentId="9730" CreationDate="2010-10-16T09:22:45.053" Score="5" ViewCount="" Body="&lt;p&gt;Functional programming and object-oriented programming are orthogonal to each other. You can have both in the same language. Examples: Scala, F#, OCaml etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe you meant functional vs imperative, as Jonas suggested?&lt;/p&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-16T09:22:45.053" CommentCount="3" />
  <row Id="12379" PostTypeId="2" ParentId="552" CreationDate="2010-10-16T09:30:03.990" Score="2" ViewCount="" Body="&lt;p&gt;Alonzo Church, Alan Turing, John McCarthy, Simon Peyton Jones, Robert Milner, Guy Steele, Gilad Bracha, Martin Odersky ... the list goes on and on! :-)&lt;/p&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-16T09:30:03.990" CommunityOwnedDate="2010-10-16T09:30:03.990" />
  <row Id="12380" PostTypeId="2" ParentId="552" CreationDate="2010-10-16T09:37:17.603" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.gotw.ca/&quot; rel=&quot;nofollow&quot;&gt;Herb Sutter&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-10-16T09:37:17.603" CommunityOwnedDate="2010-10-16T09:37:17.603" />
  <row Id="12381" PostTypeId="2" ParentId="10032" CreationDate="2010-10-16T09:45:35.943" Score="6" ViewCount="" Body="&lt;p&gt;Some suggested reading:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4085614&quot; rel=&quot;nofollow&quot;&gt;Developers Shift to Dynamic Languages&lt;/a&gt; (&lt;a href=&quot;http://portal.computer.org/portal/cms_docs_computer/computer/homepage/Feb07/COM_012-015.pdf&quot; rel=&quot;nofollow&quot;&gt;PDF&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.springerlink.com/index/5kyfv61vjdww2dw8.pdf&quot; rel=&quot;nofollow&quot;&gt;On the Revival of Dynamic Languages&lt;/a&gt; (&lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.67.5268&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;PDF&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.69.5966&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;Static typing where possible, dynamic typing when needed: The end of the cold war between programming languages&lt;/a&gt; (&lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.69.5966&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;PDF&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://portal.acm.org/citation.cfm?id=266428&quot; rel=&quot;nofollow&quot;&gt;The Security of Static Typing with Dynamic Linking&lt;/a&gt; (&lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.78.1114&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;PDF&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103.4627&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;Combining Static and Dynamic Reasoning for Bug Detection&lt;/a&gt; (&lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103.4627&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;PDF&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://portal.acm.org/citation.cfm?id=103138&amp;amp;dl=ACM&amp;amp;coll=portal&amp;amp;CFID=67004263&amp;amp;CFTOKEN=26275019&quot; rel=&quot;nofollow&quot;&gt;Dynamic Typing in a Statically Typed Language&lt;/a&gt; (&lt;a href=&quot;http://www.ccs.neu.edu/home/matthias/369-s10/Transcript/dynamic.pdf&quot; rel=&quot;nofollow&quot;&gt;PDF&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.5.8441&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;Turning Dynamic Typing into Static Typing by Program Specialization&lt;/a&gt; (&lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.5.8441&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;PDF&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://portal.acm.org/citation.cfm?id=1111059&quot; rel=&quot;nofollow&quot;&gt;Hybrid Type Checking&lt;/a&gt; (&lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.93.3743&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;PDF&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Not exactly on static typing, but related:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://portal.acm.org/citation.cfm?id=988672.988679&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;type=series&amp;amp;idx=SERIES968&amp;amp;part=series&amp;amp;WantType=Proceedings&amp;amp;title=WWW&quot; rel=&quot;nofollow&quot;&gt;Securing web application code by static analysis and runtime protection&lt;/a&gt; (&lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.62.2884&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;PDF&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some interesting articles or essays on the subject or on static analysis of programs in general:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.87.9425&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;Pluggable Type Systems&lt;/a&gt; (&lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.87.9425&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;PDF&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://docs.google.com/View?id=dcsvntt2_25wpjvbbhk&quot; rel=&quot;nofollow&quot;&gt;Strong Typing vs Strong Testing&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.usenix.org/event/usenix09/tech/full_papers/guo/guo_html/&quot; rel=&quot;nofollow&quot;&gt;Linux Kernel Developer Responses to Static Analysis Bug Reports&lt;/a&gt; (&lt;a href=&quot;http://www.usenix.org/event/usenix09/tech/full_papers/guo/guo.pdf&quot; rel=&quot;nofollow&quot;&gt;PDF&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://sites.google.com/site/steveyegge2/is-weak-typing-strong-enough&quot; rel=&quot;nofollow&quot;&gt;Is Weak Typing Strong Enough?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.2.3712&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;Correlation Exploitation in Error Ranking&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.cs.umd.edu/~mwh/papers/paste41gp-foster.pdf&quot; rel=&quot;nofollow&quot;&gt;Improving Software Quality w/ Static Analysis&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And for the ones who would be wondering what this is all about:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://articles.sitepoint.com/article/typing-versus-dynamic-typing&quot; rel=&quot;nofollow&quot;&gt;Introduction to Static and Dynamic Typing&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;However, I doubt any of these with give you a direct answer, as they don't do exactly the study you're looking for. They will be interesting reads though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Personally&lt;/strong&gt;, I firmly consider that static typing over dynamic typing facilitates bug detection. I spend way too much type looking for typos and minor mistakes like these into JavaScript or even Ruby code. And when it comes to the view that Dynamic Typing gives you a boost in productivity, I think that mostly comes down to tooling. If statically typed languages have the right tools to allow for background recompilation and provide an REPL interface, then you get the benefits of both worlds. Scala provides this for instance, which makes it very easy to learn and prototype away in the interactive console, but gives you the benefits of static typing (and of a stronger type system than a lot of other languages, ML-languages aside). Similarly, I don't think I have a loss of productivity by using Java or C++ (because of the static typing), as long as I use an IDE that helps me along. When I revert to coding only with simple configurations (editor + compiler/interpreter), then it feels more cumbersome and dynamic languages seem easier to use. But you still hunt for bugs. I guess people would say that the tooling issue is a reversible argument, as if tooling were better for dynamic languages, then most bugs and typos would be pointed out at coding-time, but that reflects the flaw in the system in my opinion. Still, I usually prototype in JRuby and will code in Java later most of the things I do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;WARNING:&lt;/strong&gt; Some of these links are unreliable, and some go through portals of various computing societies using fee-based accesses for members. Sorry about that, I tried to find multiple links for each of these but it's not as good as I'd like it to be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: I added some more articles.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-10-20T07:33:28.250" LastActivityDate="2010-10-20T07:33:28.250" CommentCount="10" />
  <row Id="12382" PostTypeId="2" ParentId="6974" CreationDate="2010-10-16T09:47:30.650" Score="3" ViewCount="" Body="&lt;p&gt;Head First C#. Shame to the Head First family IMO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/VtY6T.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-16T09:47:30.650" CommentCount="1" />
  <row Id="12384" PostTypeId="2" ParentId="12021" CreationDate="2010-10-16T10:08:11.150" Score="1" ViewCount="" Body="&lt;p&gt;I'd say that it is hard to beat &lt;a href=&quot;http://www.wizards.com/default.asp?x=ah/prod/roborally&quot; rel=&quot;nofollow&quot;&gt;RoboRally&lt;/a&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/RoboRally&quot; rel=&quot;nofollow&quot;&gt;(Wikipedia)&lt;/a&gt; for getting the old grey cells spun up and working.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It even teaches defensive programming. Well, you better write your robot moves so that disturbance along the path doesn't result in crushing, flaming, falling death.&lt;/p&gt;&#xA;" OwnerUserId="5084" LastActivityDate="2010-10-16T10:08:11.150" CommunityOwnedDate="2011-01-12T17:58:32.720" CommentCount="1" />
  <row Id="12385" PostTypeId="2" ParentId="364" CreationDate="2010-10-16T10:22:43.467" Score="2" ViewCount="" Body="&lt;p&gt;Take a look at &lt;a href=&quot;http://www.kogics.net/sf%3akojo&quot; rel=&quot;nofollow&quot;&gt;Kojo&lt;/a&gt; - a modern reincarnation of &lt;a href=&quot;http://en.wikipedia.org/wiki/Logo_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Logo&lt;/a&gt;, written in Scala. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/cTQ64.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-16T10:22:43.467" CommentCount="1" />
  <row Id="12386" PostTypeId="2" ParentId="364" CreationDate="2010-10-16T10:38:43.017" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.greenfoot.org/&quot; rel=&quot;nofollow&quot;&gt;Greenfoot&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Greenfoot is aimed at programming at high school level or above (from age 13 up). It can be effectively used at school level, college and university, and even in advanced university courses.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3684" LastActivityDate="2010-10-16T10:38:43.017" />
  <row Id="12388" PostTypeId="2" ParentId="364" CreationDate="2010-10-16T11:59:54.960" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.squeakland.org/&quot; rel=&quot;nofollow&quot;&gt;Etoys&lt;/a&gt;&lt;/strong&gt;. Like Scratch, it's built on &lt;a href=&quot;http://www.squeak.org/&quot; rel=&quot;nofollow&quot;&gt;Squeak&lt;/a&gt;. It's a visual scripting language, which Alan Kay demonstrates as a side-effect of his &lt;a href=&quot;http://sciencestage.com/v/428/alan-kay-education-technology-children-collaboration-computers-design.html&quot; rel=&quot;nofollow&quot;&gt;TED talk&lt;/a&gt;. He uses Etoys as his slide show, and demonstrates the work he does educating children using Etoys.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Etoys is also one of the more widely distributed languages, because it's shipped as part of the &lt;a href=&quot;http://laptop.org/&quot; rel=&quot;nofollow&quot;&gt;OLPC project&lt;/a&gt;. (Alan performs one of his Etoys demos in the above-mentioned talk on an XO.)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-10-16T12:06:19.813" LastActivityDate="2010-10-16T12:06:19.813" />
  <row Id="12389" PostTypeId="2" ParentId="364" CreationDate="2010-10-16T12:03:48.803" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/LOGO&quot; rel=&quot;nofollow&quot;&gt;LOGO&lt;/a&gt;&lt;/strong&gt;. Seymour Papert, protege of Jean Piaget, used it (uses it?) to teach geometry and programming to young children. Like Etoys and Squeak, it is a &quot;low barrier, high ceiling&quot; environment - very quick to get something useful working, and yet no artificial barriers to learning.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-16T12:03:48.803" />
  <row Id="12390" PostTypeId="2" ParentId="7057" CreationDate="2010-10-16T12:05:53.997" Score="0" ViewCount="" Body="&lt;p&gt;Bro, use a versioning control system, svn, git, mercurial, even old CVS is better than nothing. And these are independent of whether you are using PHP or some other programming/scripting languages(s).&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-16T12:05:53.997" CommentCount="2" />
  <row Id="12391" PostTypeId="2" ParentId="501" CreationDate="2010-10-16T12:17:17.220" Score="14" ViewCount="" Body="&lt;p&gt;Function pointer declaration syntax in C and C++:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(int)(*f)(int, int);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That declares a function pointer named &lt;code&gt;f&lt;/code&gt; whose pointee can take two &lt;code&gt;int&lt;/code&gt;s and return an &lt;code&gt;int&lt;/code&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd much prefer a syntax like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;f: (int, int) =&amp;gt; int&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Say you want to declare a function pointer &lt;code&gt;g&lt;/code&gt; whose pointee can take two &lt;code&gt;int&lt;/code&gt;s and a function from &lt;code&gt;int&lt;/code&gt; and &lt;code&gt;int&lt;/code&gt; to &lt;code&gt;int&lt;/code&gt;, and return an &lt;code&gt;int&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With C or C++ notation, you'd declare it as:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(int)(*g)(int, int, int(int, int));&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;With the above-proposed notation same thing can be declared as:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;g: (int, int, (int, int) =&amp;gt; int) =&amp;gt; int&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Latter is much more intuitive IMO.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Aside: The programming language called OOC fixes this syntax (and various other syntactical issues in C and C++). Check out its homepage &lt;a href=&quot;http://ooc-lang.org/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1968" LastEditorUserId="1968" LastEditorDisplayName="" LastEditDate="2010-10-16T15:07:36.950" LastActivityDate="2010-10-16T15:07:36.950" CommunityOwnedDate="2010-10-16T12:17:17.220" CommentCount="2" />
  <row Id="12392" PostTypeId="2" ParentId="10094" CreationDate="2010-10-16T12:18:54.207" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I'm interested in stories where office&#xA;  bureaucracy has had direct effect on&#xA;  the final code quality result.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't think bureaucracy has so much effect on code quality as personal dynamics and office politics do. Bureaucracy has to do with process. When an existing process is done improperly (or exploited negatively... see further below), it &lt;strong&gt;&lt;em&gt;has the potential&lt;/em&gt;&lt;/strong&gt; to negatively affect the ability to delivery or react to sudden changes. A lack of process, however, will have &lt;strong&gt;&lt;em&gt;a certain&lt;/em&gt;&lt;/strong&gt; and significant impact on code quality. Or to be more precise, a process that does not &lt;em&gt;govern&lt;/em&gt; code quality (also interpreted as a lack of code quality process) affect code quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, it is not bureaucracy itself but specific, QA-related holes in bureaucracy that affect code quality when exploited (either accidentally or nefariously.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personal dynamics and office politics, however, are much more of a culprit in bad code, however. Personal dynamics involves lack of professional ethics first and foremost. I don't really buy the argument that people write bad code because they &lt;em&gt;don't know better&lt;/em&gt; or &lt;em&gt;have not been properly trained&lt;/em&gt;. I've seen people w/o CS-related degrees writing decent code. It is a state of mind and a personal matter of being organized and meticulous.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Office politics play an even more terrible role. Bosses that push the &lt;em&gt;don't think, just code&lt;/em&gt; mantra (though there are times when we must just code and ship and clean the bodies later); developers who insist on delivering &lt;strong&gt;&lt;em&gt;what they think&lt;/em&gt;&lt;/strong&gt; is the perfect code even though getting something out of the door now is of the essence; code reviewers that are a**holes; cubicle wars and such. These things exacerbate problematic personal dynamics. The combination of both seep through any crack in the process (the bureaucracy) or lack thereof, causing a breakdown in code quality assurance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hole in bureaucracy could be solved if there is a culture of post-morten reviews and continuous improvement. However, negative personal dynamics and destructive office politics prevent such corrections on the process to occur, thus perpetuating existing problems (including those related to code quality.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bureaucracy by itself is rarely ever the culprit in bad code quality. I would actually say that code quality and bureaucracy are both negatively affected by negative personal dynamics and office politics.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastEditorUserId="5149" LastEditorDisplayName="" LastEditDate="2010-10-16T12:24:37.893" LastActivityDate="2010-10-16T12:24:37.893" CommentCount="1" />
  <row Id="12394" PostTypeId="1" CreationDate="2010-10-16T12:58:44.093" Score="12" ViewCount="320" Body="&lt;p&gt;I've done some open source projects, and I plan to do more in the future. So far, I've released all my code under GPL, but I've read a few articles which claim GPL is too restrictive for any code to be used in corporate environment. This, supposedly, reduces contributions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's what I wanted to accomplish:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For &lt;strong&gt;full applications&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;no commercial use with the exception of selling &lt;em&gt;support&lt;/em&gt; for the application (i.e. the app cannot be sold, but everything around it can)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For &lt;strong&gt;libraries&lt;/strong&gt; (components, plugins, ...):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;can be included into commercial projects &lt;strong&gt;without modifications&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;any modification the the library/component must be open sourced (contributed back) - the rest of the project, commercial or not, is not affected&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For applications, GPL still seems the logical choice. For libraries, my primitive understanding of licences makes me think that LGPL is a good match, but, I'm not sure. I've looked at MIT licence, and that seems too permissive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the time, I want people to use my code anywhere they want to, as long as any improvements are contributed back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This brings me to my question(s): is LGPL a logical choice for open source libraries, components, plugins etc? Is there a better alternative? Is GPL a good choice for my applications or is there something better?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those who are interested in my final decision, I've decided to release my libraries under multi-license scheme, MPL, LGPL and GPL. This enables virtually &lt;em&gt;everyone&lt;/em&gt; to use my code with no obligations, unless they modify it under MPL, in which case it would have to be contributed back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means the code can be used by both FSF and proprietary software, but &quot;bad&quot; commercial exploitation is prevented (or so I'd like to think).&lt;/p&gt;&#xA;" OwnerUserId="2815" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-23T22:22:41.850" LastActivityDate="2010-10-23T22:22:41.850" Title="Choosing a licence for open source projects" Tags="&lt;open-source&gt;&lt;gpl&gt;&lt;license&gt;&lt;mit&gt;&lt;lgpl&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="3" />
  <row Id="12395" PostTypeId="2" ParentId="12394" CreationDate="2010-10-16T13:02:25.797" Score="3" ViewCount="" Body="&lt;p&gt;It sounds to me like GPL and LGPL are what you want for your projects.&lt;/p&gt;&#xA;" OwnerUserId="227" LastActivityDate="2010-10-16T13:02:25.797" CommentCount="2" />
  <row Id="12396" PostTypeId="2" ParentId="12369" CreationDate="2010-10-16T13:12:22.610" Score="4" ViewCount="" Body="&lt;p&gt;This is probably really low-priority for them because you can &quot;fake&quot; it yourself with sequences and triggers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.lifeaftercoffee.com/2006/02/17/how-to-create-auto-increment-columns-in-oracle/&quot; rel=&quot;nofollow&quot;&gt;http://www.lifeaftercoffee.com/2006/02/17/how-to-create-auto-increment-columns-in-oracle/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-10-16T13:12:22.610" CommentCount="2" />
  <row Id="12397" PostTypeId="2" ParentId="486" CreationDate="2010-10-16T13:12:53.503" Score="1" ViewCount="" Body="&lt;p&gt;My kind-of favourite project is a small desktop app I did at work. Reasons?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;No legacy code from my worst nightmares - I did the app from scratch (actually, there were two choices, to modify/update and existing legacy app written in VB6 by a supposedly mad and epileptic &quot;developer&quot;, or a rewrite..&lt;em&gt;not really a choice!&lt;/em&gt;)&lt;/li&gt;&#xA;&lt;li&gt;At the time, desktop C# was fairly new to me, so I was learning new stuff&lt;/li&gt;&#xA;&lt;li&gt;I was working alone (not a big project), so I set my own deadlines, coding standards etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And most importantly:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it's been a few years since the app was deployed for &lt;em&gt;many&lt;/em&gt; clients, and there were 0 support calls and 0 bugs discovered to this day&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Which makes me a happy camper :)&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-10-16T13:12:53.503" CommentCount="2" />
  <row Id="12398" PostTypeId="2" ParentId="11831" CreationDate="2010-10-16T13:17:04.100" Score="4" ViewCount="" Body="&lt;p&gt;I would suggest you learn &lt;strong&gt;&lt;a href=&quot;http://www.haskell.org/&quot; rel=&quot;nofollow&quot;&gt;Haskell&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In &lt;a href=&quot;http://broadcast.oreilly.com/2009/01/why-you-should-learn-haskell.html&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; interview, John Goerzen - coauthor of &lt;a href=&quot;http://book.realworldhaskell.org/read/&quot; rel=&quot;nofollow&quot;&gt;Real World Haskell&lt;/a&gt; - explains in detail why he thinks you should learn Haskell and functional programming.&lt;/p&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-16T13:17:04.100" />
  <row Id="12399" PostTypeId="2" ParentId="12394" CreationDate="2010-10-16T13:17:31.713" Score="1" ViewCount="" Body="&lt;p&gt;Noone seems to talk about them, but you might consider a Creative Commons licence. They have a &lt;a href=&quot;http://creativecommons.org/about/licenses&quot; rel=&quot;nofollow&quot;&gt;range of licences&lt;/a&gt; (or one that you tailor to your needs, looked at a different way).&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-16T13:17:31.713" CommentCount="1" />
  <row Id="12400" PostTypeId="2" ParentId="6974" CreationDate="2010-10-16T13:20:48.183" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://everythingphpmysql.com&quot; rel=&quot;nofollow&quot;&gt;How to do everything with PHP and MySQL&lt;/a&gt; by Vikram Vaswani. That book set me back so much when learning programming at first. Horrible code, constant mixing and matching of code and markup, complete ignorance of OOP the barest nod to security throughout and just plain ignoring PHP5, which even then, wasn't exactly brand new.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wrote a &lt;a href=&quot;http://blog.webicity.info/2010/08/21/programming-books/&quot; rel=&quot;nofollow&quot;&gt;blog post on programming books&lt;/a&gt; in which I had this picture comparing the two first PHP books I got.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://blog.webicity.info/blog/wp-content/uploads/2010/08/books-small.jpg&quot; alt=&quot;Compare the size&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Guess which has the more accurate title?&lt;/p&gt;&#xA;" OwnerUserId="230" LastEditorUserId="230" LastEditorDisplayName="" LastEditDate="2010-10-16T13:27:51.963" LastActivityDate="2010-10-16T13:27:51.963" />
  <row Id="12401" PostTypeId="1" CreationDate="2010-10-16T13:41:14.630" Score="10" ViewCount="278" Body="&lt;p&gt;&lt;em&gt;[Disclaimer: this question is subjective, but I would prefer getting answers backed by facts and/or reflexions]&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think everyone knows about the &lt;a href=&quot;http://en.wikipedia.org/wiki/Robustness_principle&quot; rel=&quot;nofollow&quot;&gt;Robustness Principle&lt;/a&gt;, usually summed up by Postel's Law:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Be conservative in what you send; be liberal in what you accept.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I would agree that for the design of a widespread communication protocol this may make sense (with the goal of allowing easy extension), however I have always thought that its application to HTML / CSS was a total failure, each browser implementing its own silent tweak detection / behavior, making it near impossible to obtain a consistent rendering across multiple browsers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do notice though that there the RFC of the TCP protocol deems &quot;Silent Failure&quot; acceptable unless otherwise specified... which is an interesting behavior, to say the least.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are other examples of the application of this principle throughout the software trade that regularly pop up because they have bitten developpers, from the top off my head:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Javascript semi-colon insertion&lt;/li&gt;&#xA;&lt;li&gt;C (silent) builtin conversions (which would not be so bad if it did not truncated...)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and there are tools to help implement &quot;smart&quot; behavior:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;name matching phonetic algorithms (&lt;a href=&quot;http://en.wikipedia.org/wiki/Double_Metaphone&quot; rel=&quot;nofollow&quot;&gt;Double Metaphone&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;string distances algorithms (&lt;a href=&quot;http://en.wikipedia.org/wiki/Levenshtein_distance&quot; rel=&quot;nofollow&quot;&gt;Levenshtein distance&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;However I find that this approach, while it may be helpful when dealing with non-technical users or to help users in the process of error recovery, has some drawbacks when applied to the design of library/classes interface:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it is somewhat subjective whether the algorithm guesses &quot;right&quot;, and thus it may go against the &lt;a href=&quot;http://en.wikipedia.org/wiki/Principle_of_least_astonishment&quot; rel=&quot;nofollow&quot;&gt;Principle of Least Astonishment&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;it makes the implementation more difficult, thus more chances to introduce bugs (violation of &lt;a href=&quot;http://en.wikipedia.org/wiki/You_ain%27t_gonna_need_it&quot; rel=&quot;nofollow&quot;&gt;YAGNI&lt;/a&gt; ?)&lt;/li&gt;&#xA;&lt;li&gt;it makes the behavior more susceptible to change, as any modification of the &quot;guess&quot; routine may break old programs, nearly excluding refactoring possibilities... from the start!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And this is what led me to the following question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When designing an interface (library, class, message), do you lean toward the robustness principle or not ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I myself tend to be quite strict, using extensive input validation on my interfaces, and I was wondering if I was perhaps too strict.&lt;/p&gt;&#xA;" OwnerUserId="4853" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:09:04.873" LastActivityDate="2010-11-16T15:09:04.873" Title="Be liberal in what you accept... or not ?" Tags="&lt;design&gt;" AnswerCount="5" />
  <row Id="12402" PostTypeId="2" ParentId="12394" CreationDate="2010-10-16T13:43:56.717" Score="1" ViewCount="" Body="&lt;p&gt;If what you care about is making sure your code stays free, getting improvements back, and being sure anyone can use it, then &lt;a href=&quot;http://www.mozilla.org/MPL/MPL-1.1.html&quot; rel=&quot;nofollow&quot;&gt;MPL&lt;/a&gt; is the right license for you.  It's free to use in any product, including commercial software, without weird, arcane linking restrictions like the LGPL imposes.  It requires that anyone who uses your code and modifies it release the changes under MPL, but it doesn't touch or restrict any of the rest of the code in the project.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-16T13:43:56.717" CommentCount="1" />
  <row Id="12403" PostTypeId="2" ParentId="6847" CreationDate="2010-10-16T13:51:07.443" Score="12" ViewCount="" Body="&lt;p&gt;My favorite programming language is &lt;strong&gt;Scala&lt;/strong&gt; - Pure awesomeness!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/3dSGi.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Reasons:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Elegant and seamless unification of object-oriented paradigm and functional paradigm.&lt;/li&gt;&#xA;&lt;li&gt;Seamless Java interoperability. You can access any Java library easily from a Scala program in a fairly straightforward way.&lt;/li&gt;&#xA;&lt;li&gt;Pure OO. No more primitives and statics.&lt;/li&gt;&#xA;&lt;li&gt;Powerful type inference.&lt;/li&gt;&#xA;&lt;li&gt;Lambda expressions.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;case class&lt;/code&gt;es. Boilerplate is yesterday's news now!&lt;/li&gt;&#xA;&lt;li&gt;Properties. Like in C#, just a bit better. &lt;/li&gt;&#xA;&lt;li&gt;Mixin composition, made possible by cool &lt;code&gt;class&lt;/code&gt;-like devices called &lt;code&gt;trait&lt;/code&gt;s.&lt;/li&gt;&#xA;&lt;li&gt;Self-type annotations. (No more 3rd party frameworks for DI!)&lt;/li&gt;&#xA;&lt;li&gt;Uber-powerful static type system.&lt;/li&gt;&#xA;&lt;li&gt;Ease of creating internal DSLs. (thanks to the extremely flexible syntax of the language)&lt;/li&gt;&#xA;&lt;li&gt;Ease of creating external DSLs. (thanks to the beautiful parser combinator library)&lt;/li&gt;&#xA;&lt;li&gt;Type-classes, an ad hoc polymorphism device from the world of Haskell.&lt;/li&gt;&#xA;&lt;li&gt;Pattern matching.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;... the list goes on and on!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just can't stress enough how goddamn awesome this language is!!! :-)&lt;/p&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-16T13:51:07.443" CommunityOwnedDate="2010-10-16T13:51:07.443" CommentCount="1" />
  <row Id="12404" PostTypeId="2" ParentId="12401" CreationDate="2010-10-16T13:52:03.237" Score="0" ViewCount="" Body="&lt;p&gt;I think that HTML and the World Wide Web have provided a wide-scale real-world test of the Robustness Principle and shown it to be a massive failure.  It's directly responsible for the confusing mess of competing HTML almost-standards that makes life miserable for Web developers (and their users) and gets worse with every new Internet Explorer release.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We've known since the 1950s how to validate code properly.  Run it through a strict parser and if something isn't syntactically correct, throw an error and abort.  Do not pass go, do not collect $200, and for the love of all that is binary &lt;em&gt;do not let some computer program attempt to read the coder's mind if he made a mistake!&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HTML and JavaScript have shown us exactly what happens when those principles are ignored.  Best course of action is to learn from their mistakes and not repeat them.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-16T13:52:03.237" CommentCount="8" />
  <row Id="12406" PostTypeId="2" ParentId="12336" CreationDate="2010-10-16T14:17:03.163" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1643&quot; rel=&quot;nofollow&quot;&gt;SuperTab&lt;/a&gt; - Do all your insert-mode completion with Tab.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=152&quot; rel=&quot;nofollow&quot;&gt;ShowMarks&lt;/a&gt; - Marks are useful for jumping back and forth between interesting points in a buffer, but can be hard to keep track of without any way to see where you have placed them.  ShowMarks hopefully makes life easier by placing a sign in the leftmost column of the buffer.  The sign indicates the label of the mark and its location. &#xA;It can be toggled on and off and individual marks can be hidden(effectively removing them).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=474&quot; rel=&quot;nofollow&quot;&gt;SearchComplete&lt;/a&gt; - Provides tab completion while inside the “/” search&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://vim-taglist.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;TagList&lt;/a&gt; - Source code browser (with support for C/C++, java, perl, python, cooking coffee, bringing sandwiches ...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1318&quot; rel=&quot;nofollow&quot;&gt;snippetsEMU&lt;/a&gt; - Attempts to emulate some of the behaviour of ‘Snippets’ from the OS X editor TextMate, in particular the variable bouncing and replacement behaviour. An alternative to snippetsEMU would be &lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2540&quot; rel=&quot;nofollow&quot;&gt;snipMate&lt;/a&gt;. I prefer this one though (EMU).&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-16T14:17:03.163" />
  <row Id="12408" PostTypeId="2" ParentId="6847" CreationDate="2010-10-16T14:21:28.410" Score="4" ViewCount="" Body="&lt;h2&gt;Ada&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;For those times when you actually care whether the program works right, and will keep on working right, because lives depend on it working right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, Ada is a royal pain to use, if you're a wild-eyed cowboy hacker fresh out of school.  I've seen (and had to modify and maintain) enough of the code produced by such people that Ada being a royal pain for them is a Good Thing.  It makes them learn How To Do It Right.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-10-16T14:21:28.410" CommunityOwnedDate="2010-10-16T14:21:28.410" CommentCount="2" />
  <row Id="12410" PostTypeId="2" ParentId="12394" CreationDate="2010-10-16T14:44:20.553" Score="2" ViewCount="" Body="&lt;p&gt;If you want to prevent commercial use of your software, GPL won't cut it. GPL tends to be avoided by commercial enterprises in products they &lt;em&gt;sell&lt;/em&gt; because of the requirement to redistribute the modified source, but they're free to use GPL software internally. That's not to say businesses aren't set up to sell GPL software, or build hardware around GPL software (LinkSys, for example), but most businesses would prefer not to share their product with competitors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know if the Creative Commons Attribution Non-Commercial No Derivatives license is what you want (the only restriction you mentioned is commercial &lt;em&gt;use&lt;/em&gt;), but if not, you might need to have a license prepared for you by an attorney that contains the language granting rights you wish license holders to have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, once you begin to include such restrictions as &lt;em&gt;non-commercial use&lt;/em&gt; and &lt;em&gt;non-modifiability&lt;/em&gt;, you may no longer meet the criteria for an &lt;em&gt;open source&lt;/em&gt; license as &lt;a href=&quot;http://www.opensource.org/docs/osd&quot; rel=&quot;nofollow&quot;&gt;defined&lt;/a&gt; by the &lt;a href=&quot;http://www.opensource.org/&quot; rel=&quot;nofollow&quot;&gt;Open Source Initiative&lt;/a&gt;. Their site also lists &lt;a href=&quot;http://www.opensource.org/licenses&quot; rel=&quot;nofollow&quot;&gt;other approved OSS licenses&lt;/a&gt;. Perhaps there's one already that matches your goals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And &lt;em&gt;adequately defining your goals&lt;/em&gt; will be key before selecting the rights and limitations you place on users of your software. Is popularity more important than modifiability or distribution or usage or…? Think of your objectives in releasing the code to begin with, and in what spirit you do that or the terms under which you grant access may have the opposite effect.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-16T14:44:20.553" CommentCount="12" />
  <row Id="12411" PostTypeId="2" ParentId="12401" CreationDate="2010-10-16T14:50:15.860" Score="1" ViewCount="" Body="&lt;p&gt;As a counterpoint to Mason's example, my experience with the &lt;a href=&quot;http://tools.ietf.org/html/rfc3261&quot; rel=&quot;nofollow&quot;&gt;Session Initiation Protocol&lt;/a&gt; was that while different stacks would interpret the relevant RFCs differently (and I suspect this happens with &lt;em&gt;every&lt;/em&gt; standard ever written), being (moderately) liberal in what you accept means that you can actually make calls between two devices. Because these devices are usual physical things as opposed to pieces of software on a desktop, you simply have to be liberal in what you accept, or your phone can't call another phone of a particular make. That doesn't make your phone look good!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you're writing a library, you probably don't have the problem of multiple parties interpreting a common standard in mutually incompatible ways. In that case, I'd say be strict in what you accept, because it removes ambiguities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Jargon File also has a &lt;a href=&quot;http://www.catb.org/~esr/jargon/html/D/DWIM.html&quot; rel=&quot;nofollow&quot;&gt;horror story&lt;/a&gt; on &quot;guessing&quot; a user's intent.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-16T14:50:15.860" CommentCount="2" />
  <row Id="12412" PostTypeId="2" ParentId="6974" CreationDate="2010-10-16T14:56:20.137" Score="1" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/LQwa8.jpg&quot; alt=&quot;book cover&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0387948961&quot; rel=&quot;nofollow&quot;&gt;Verification of Sequential and Concurrent Programs, Second Edition&lt;/a&gt;, by Krzysztof R. Apt and Ernst-Rüdiger Olderog.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe it was the subject matter, but I distinctly remember this as being the driest book I have ever read. Getting all the way to the end was a genuine soporific challenge.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-10-16T14:56:20.137" />
  <row Id="12413" PostTypeId="2" ParentId="12334" CreationDate="2010-10-16T15:03:15.487" Score="15" ViewCount="" Body="&lt;p&gt;Here are some things you can do:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1. Implement a source control system&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reason: To keep a history of code, and also to enable branches to be created for new developments, which in turn means it's possible to release some code to testers, carry on with development on a new branch, then fix bugs on the release branch if the testers find bugs - this is the best route to creating stable releases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2. Write unit tests&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reason: If you don't unit test your code, how do you know it works (in all scenarios)?  How do you know it still works when somebody changes something? You should make sure unit tests are just that - unit tests - and not integration tests.  That means that if you have a data access layer, you should test it without it needing to connect to a database (or if you &lt;em&gt;really&lt;/em&gt;  must, also have scripts to do setup / teardown of data). If you have code which makes calls to services, create mock service endpoints in code (so you don't need to actually connect to the service.  Of course, you need other unit tests to test the service code in isolation).  Additionally, every bug that gets raised should have a unit test which replicates the bug, to help ensure no regressions occur.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3. Implement a continous integeration system&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reason: Continuous integration means (essentially) that when code is checked in to the source control system, a build server then attempts to rebuild the system (and run the tests), and will report success or failure.  In .NET (for example), you can use Nant + Ivy + CruiseControl (all free) which means a developer can do a full build on their machine (before checking in) which gives confidence that their code wont break anything, they can then check their code in which triggers a build on the build server.  Other developers then have confidence that if the code builds (and all tests pass) on the build server, then getting the latest version of code from source control will also work on their machine.  This encourages developers to check in early and often.  It also makes it possible to create automated releases and branching from the build server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;4. Implement coding standards&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reason: Badly formatted code takes longer for a developer to read and understand. It also shows a level of laziness from programmers if they can't be bothered to format their code correctly or consistenly with other members of the development team.&#xA;In .NET you can use Stylecop to enforce coding standards.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;5. Peer review code&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reason: Programmers should not be embarrassed by their code, so they should have no problem showing it to other people. Every task (story / work item  / issue / whatever) should have an associated peer review.  The peer review should be quick and simple (eg. (1) is the code unit tested, and what is the percentage coverage, (2) does the code follow coding standards, (3) does the code match the design (if there is one) -or- is the code well structured / could it be refactored)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;6. Track everything&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reason: If a bug isn't tracked, how do you know how many bugs you've got?  If tasks aren't tracked, how do you know what's been released, and what's left to do?  So get a good issue tracking system, and put eveything in there (tasks &amp;amp; bugs). When code is checked in to source control, the developer should note (in their check-in comment at the very least) the task or bug number that the code relates to. You should also keep a record of the peer reviews that have been done, and what version of code everything relates to (eg. what version of code does a bug affect, what version of code was peer reviewed, and by whom?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;7. Automate everything&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reason: It's much quicker, and less error prone, if everything that can be automated, is. So braching code should be automated (using the continuous integration system), releases should be automated, and you can write automated acceptance tests.  If your testing is not automated in any way, each new release will take longer and longer to adequately test, due to the volume of regression testing that has been built up. And the testers should just be testing the new stuff, not testing the release process, or testing things they tested in the last release.  &lt;/p&gt;&#xA;" OwnerUserId="55" LastActivityDate="2010-10-16T15:03:15.487" CommentCount="4" />
  <row Id="12414" PostTypeId="2" ParentId="10032" CreationDate="2010-10-16T15:10:03.737" Score="0" ViewCount="" Body="&lt;p&gt;I honestly do not think that Static vs Dynamic typing is the real question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that there are two parameters that should come first:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the expertise level in the language: the more experienced you are, the more you know about the &quot;gotchas&quot; and the more likely you are to avoid them / track them down easily. This is also true about the particular application/program you are working on&lt;/li&gt;&#xA;&lt;li&gt;testing: I love static typing (hell I like programming in C++ :p) but there just so much that a compiler / static analyzer can do for you. It's just impossible to be confident about a program without having tested it. And I am all for fuzzy testing (when applicable), because you just can't think about all possible input combinations.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you are comfortable in the language, you'll write code and you'll track down bugs with ease.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you write decoupled code, and test each functionality extensively, then you'll produce well-honed code, and thus you'll be productive (because you cannot qualify as productive if you do not assess the quality of the product, can you ?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would therefore deem that the static vs dynamic debate with regard to productivity is quite moot, or at least vastly superseded by other considerations.&lt;/p&gt;&#xA;" OwnerUserId="4853" LastEditorUserId="4853" LastEditorDisplayName="" LastEditDate="2010-10-17T10:20:24.950" LastActivityDate="2010-10-17T10:20:24.950" CommentCount="3" />
  <row Id="12415" PostTypeId="2" ParentId="12334" CreationDate="2010-10-16T15:11:52.127" Score="12" ViewCount="" Body="&lt;p&gt;One verb: &lt;strong&gt;care&lt;/strong&gt;. If everyone on the team cares - about each other, about the customer/client/enduser, about the people whose hands are on the keyboard and mouse when the software is live, about the people who sign the cheques or hand over their credit cards, about the profitability of their employer - then almost any methodology will &quot;work&quot; and the team will accept the methodologies you suggest and make those methodologies successful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People who don't care follow methodologies in a very passive-aggressive way and frustrate people who are trying to make things better. People who don't care need 50 page instruction guides on the optimum size of a checkin/commit or 20 page documents on how to comment your code. People who care do the right thing. When they see they did something not quite right, they do it better next time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore you want to avoid creating a methodology that frees people from caring about each other or their users. You want to surface as much information as you can about the consequences of the choices we all make every day. And you want the company/organization to show that it cares about the developers, too. Automated builds, automated testing, and continuous integration say &quot;we don't want to waste your time.&quot; Source control says &quot;we don't want to lose your good work, or to have it lost by someone overwriting it accidentally.&quot; And so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take each proposed part of your methodology, be it process or tool, and ask if it helps developers care about each other, the company, the users, or if it gives them an excuse to hide behind. Ask if it sends a message that the company values and cares about the developers, or that it doesn't trust them to do the right thing. If a given tool or process could be interpreted either way, make sure you communicate to everyone the &quot;we care here&quot; interpretation.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-16T15:11:52.127" CommentCount="2" />
  <row Id="12416" PostTypeId="1" CreationDate="2010-10-16T15:27:17.180" Score="8" ViewCount="848" Body="&lt;p&gt;I assume there are many people out here who are interested in research, and I was wondering if could be nice to order the top research institutes and where they are located.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know a few like the Max Planck Institutes, Fraunhofer Institutes ... et al. Then there even are Industrial Research Institutes like Microsoft, Yahoo and IBM Research Labs, but I am sure I don't know them all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know this question is not programming related, but is something every programmer/researcher in his/her early stage would love to know about, and I am sure to get an exhaustive list here than anywhere else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lets keep it to single answer - location&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;UPDATE: Any Institute related to EECS&lt;/p&gt;&#xA;" OwnerUserId="5540" LastEditorUserId="5540" LastEditorDisplayName="" LastEditDate="2010-10-17T18:00:00.823" LastActivityDate="2011-05-30T08:39:49.613" Title="Top Research Labs/Institutes in the World?" Tags="&lt;research&gt;" AnswerCount="12" CommentCount="10" FavoriteCount="3" />
  <row Id="12417" PostTypeId="2" ParentId="12401" CreationDate="2010-10-16T15:31:38.227" Score="1" ViewCount="" Body="&lt;p&gt;You're right, the rule applies to protocols, and not programming. If you make a typo while programming, you'll get an error as soon as you compile (or run, if you're one of those dynamic types). There's nothing to be gained by letting the computer guess for you. Unlike the common folk, we are engineers and capable of saying exactly what me mean. ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, when designing an API, I would say &lt;em&gt;don't&lt;/em&gt; follow the Robustness Principle. If the developer makes a mistake, they should find out about it right away. Of course, if your API uses data from an outside source, like a file, you should be lenient. &lt;strong&gt;The user of your library should find out about his/her own mistakes, but not anyone else's.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an aside, I would guess that &quot;silent failure&quot; is allowed in the TCP protocol because otherwise, if people were throwing malformed packets at you, you would be bombarded with error messages. That's simple DoS protection right there.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-10-16T15:31:38.227" />
  <row Id="12418" PostTypeId="2" ParentId="12416" CreationDate="2010-10-16T15:31:57.023" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Massachusetts_Institute_of_Technology&quot; rel=&quot;nofollow&quot;&gt;Massachusetts Institute of Technology&lt;/a&gt; (MIT) located in Cambridge, Massachusetts. It conducts a lot of scientific and technological research. Strong background in programming and computing.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-16T15:31:57.023" />
  <row Id="12419" PostTypeId="2" ParentId="7568" CreationDate="2010-10-16T15:33:07.533" Score="11" ViewCount="" Body="&lt;p&gt;Here are some interactive shells (i.e. REPLs) available on the web:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.simplyscala.com&quot; rel=&quot;nofollow&quot;&gt;SimplyScala&lt;/a&gt; for Scala&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://tryclj.licenser.net/&quot; rel=&quot;nofollow&quot;&gt;TryClojure&lt;/a&gt; for Clojure&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://tryhaskell.org/&quot; rel=&quot;nofollow&quot;&gt;TryHaskell&lt;/a&gt; for Haskell&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.tryerlang.org/&quot; rel=&quot;nofollow&quot;&gt;TryErlang&lt;/a&gt; for Erlang&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-16T15:33:07.533" CommentCount="3" />
  <row Id="12420" PostTypeId="2" ParentId="12416" CreationDate="2010-10-16T15:42:47.667" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Bell_Labs&quot; rel=&quot;nofollow&quot;&gt;Bell Labs&lt;/a&gt;. Headquarters are located at Murray Hill, New Jersey, but there are other research and development facilities around the world.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="3262" LastEditorDisplayName="" LastEditDate="2010-10-16T18:03:21.020" LastActivityDate="2010-10-16T18:03:21.020" CommentCount="4" />
  <row Id="12421" PostTypeId="2" ParentId="7568" CreationDate="2010-10-16T15:42:53.450" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.tryruby.org/&quot; rel=&quot;nofollow&quot;&gt;TryRuby&lt;/a&gt; for Ruby&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-10-16T15:42:53.450" />
  <row Id="12423" PostTypeId="1" AcceptedAnswerId="12454" CreationDate="2010-10-16T16:01:10.943" Score="7" ViewCount="418" Body="&lt;p&gt;I have heard this time and again and I am trying to understand and validate the idea that FP and OO are orthogonal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of all, what does it mean for 2 concepts to be orthogonal ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FP encourages immutability and purity as much as possible.&#xA;and OO seems like something that is built for state and mutation(a slightly  organized version of imperative programming?). And I do realize that objects can be immutable. But OO seems to imply state/change to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They seem like opposites. Does that meant they are orthogonal ? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A language like Scala makes it easy to do OO and FP both, does this affect the orthogonality of the 2 methods ?&lt;/p&gt;&#xA;" OwnerUserId="2966" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-17T08:51:51.343" LastActivityDate="2011-05-12T15:36:35.230" Title="FP and OO orthogonal ?" Tags="&lt;programming-languages&gt;&lt;functional-programming&gt;&lt;object-oriented&gt;&lt;paradigms&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="4" />
  <row Id="12424" PostTypeId="2" ParentId="6847" CreationDate="2010-10-16T16:01:23.203" Score="7" ViewCount="" Body="&lt;p&gt;I can't believe no one has said this yet...&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Lolcode&quot; rel=&quot;nofollow&quot;&gt;LOLCODE&lt;/a&gt;&lt;/h1&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-10-16T16:01:23.203" CommunityOwnedDate="2010-10-16T16:01:23.203" CommentCount="8" />
  <row Id="12425" PostTypeId="2" ParentId="12423" CreationDate="2010-10-16T16:05:42.803" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Orthogonality#Computer_science&quot; rel=&quot;nofollow&quot;&gt;Orthogonal&lt;/a&gt; roughly means &quot;independent.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if FP and OO are orthogonal, that means that you can use immutability whether you use objects or not, and you can use objects whether they're immutable or not.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-10-16T16:05:42.803" CommentCount="1" />
  <row Id="12426" PostTypeId="1" CreationDate="2010-10-16T16:08:27.110" Score="4" ViewCount="111" Body="&lt;p&gt;I have a web application (in ASP.NET MVC) with a Quotations controller. This controller can handle multiple Quotation types, MotorQuotation, PropertyQuotation, etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently it is using inheritance i.e. a Quotation model and it's children, to model the domain. The various children classes have differences in the data they store and not their behaviors. The difference in behavior would come with their validation methods as the validations can be different dependent on what unique fields a child class may store.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question is how would someone model the quotation objects using composition instead of inheritance?&lt;/p&gt;&#xA;" OwnerUserId="5511" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-16T17:00:47.550" LastActivityDate="2010-10-16T17:00:47.550" ClosedDate="2010-10-16T20:29:39.923" Title="What Methods Can Be Employed For Using Composition Over Inheritance?" Tags="&lt;design&gt;&lt;design-patterns&gt;&lt;asp.net&gt;&lt;architecture&gt;&lt;inheritance&gt;" CommentCount="2" FavoriteCount="1" />
  <row Id="12427" PostTypeId="2" ParentId="12423" CreationDate="2010-10-16T16:09:19.913" Score="0" ViewCount="" Body="&lt;p&gt;*&lt;strong&gt;&lt;em&gt;I have heard this time and again and I am trying to understand and validate the idea that FP and OO are orthogonal.  *&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;First of all, what does it mean for 2 concepts to be orthogonal ?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wikipedia quote: &quot;Orthogonality guarantees that modifying the technical effect produced by a component of a system neither creates nor propagates side effects to other components of the system.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simply, it just means that the change to one system does not, and cannot affect a change in the other system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, a car has orthogonal components and controls (e.g. accelerating the vehicle does not influence anything else but the components involved exclusively with the acceleration function. It does not affect radio for example (although I'm not sure whether it affect CD playing, since mine does skip sometimes)).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;FP encourages immutability and purity as much as possible. and OO seems like something that is built for state and mutation(a slightly organized version of imperative programming?). And I do realize that objects can be immutable. But OO seems to imply state/change to me.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;They seem like opposites. Does that meant they are orthogonal ?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Kinda. The problem is that none of these concepts are really rock hard defined. But yes, you got the gist of it.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-16T16:09:19.913" />
  <row Id="12428" PostTypeId="2" ParentId="12401" CreationDate="2010-10-16T16:14:20.047" Score="1" ViewCount="" Body="&lt;p&gt;Definitely not. Techniques such as defensive programming &lt;em&gt;obscures&lt;/em&gt; bugs, making their appearance less likely and more random which makes their detection harder which makes isolating them more difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The vastly under-rated &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1556155514&quot; rel=&quot;nofollow&quot;&gt;Writing Solid Code&lt;/a&gt; was tremendous in repeatedly emphasizing the need, and techniques, of making bugs as difficult to introduce or hide. Through application of its principles such as, &quot;Eliminate random behavior. Force bugs to be reproducible.&quot; and, &quot;Always look for, and eliminate, flaws in your interfaces.&quot; developers will vastly improve the quality of their software by eliminating the ambiguity and uncontrolled side-effects that is responsible for a large quantity of bugs.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-16T16:14:20.047" />
  <row Id="12429" PostTypeId="2" ParentId="12334" CreationDate="2010-10-16T16:14:42.873" Score="7" ViewCount="" Body="&lt;p&gt;&lt;em&gt;[Disclaimer: the opinions below are my own, they might get on your nerves, but I do try to back them up with facts]&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: It ended up being much longer than anticipated, so here is a summary :p&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Use a Distributed Version Control System&lt;/li&gt;&#xA;&lt;li&gt;Implement Automated Testing&lt;/li&gt;&#xA;&lt;li&gt;Automate Automated Testing&lt;/li&gt;&#xA;&lt;li&gt;Test Deeper&lt;/li&gt;&#xA;&lt;li&gt;Test Review&lt;/li&gt;&#xA;&lt;li&gt;Code Review&lt;/li&gt;&#xA;&lt;li&gt;Design Review&lt;/li&gt;&#xA;&lt;li&gt;Coding Standards&lt;/li&gt;&#xA;&lt;li&gt;Consistent Formatting&lt;/li&gt;&#xA;&lt;li&gt;3rd Party Code ?&lt;/li&gt;&#xA;&lt;li&gt;Task Tracking&lt;/li&gt;&#xA;&lt;li&gt;Automate Delivery&lt;/li&gt;&#xA;&lt;li&gt;Document&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1. Use a Distributed Version Control System&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Among good practices, you'll find the use of a VCS. Unfortunately it's insufficient. Trash CVS or SVN and get a modern Distributed VCS (preferably Git, or Mercurial otherwise).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;DVCS have several advantages over traditional sever-centric VCS:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;clones instead of check-out: makes branching easy, makes sharing code easy, makes working offline possible, ...&lt;/li&gt;&#xA;&lt;li&gt;improved merge strategies&lt;/li&gt;&#xA;&lt;li&gt;no longer necessary to back-up the server since everyone get a copy (which means you cannot screw-up a restoration...)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2. Implement Automated Testing&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Testing the same things over and over is &lt;em&gt;really&lt;/em&gt; boring. Yet you cannot have any confidence as to the quality of your software without testing it!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is why automated testing is a must-have, since it relieves the burden of re-testing while keeping its advantages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3. Automate Automated Testing&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even with automated testing, you still need to run the tests. It takes time. I gets in the way. &lt;em&gt;&quot;And I haven't changed much anyway&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Commits to the central repository should only be possible after passing a minimal set of tests (the full test suite might be too long), this means that you do not commit, you enqueue a commit request that a bot (Hudson, Buildbot) will eventually process for you.&lt;/li&gt;&#xA;&lt;li&gt;Nightly non-regressions tests should take over to run the full test-suite, it's everyone's top priority to get the nightly back up to 100% if they ever fail&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;4. Test Deeper&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Functional testing is indispensable, but it's covered by the first point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can go deeper though.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Statical Analysis software, aka Automated Bug Finding&lt;/li&gt;&#xA;&lt;li&gt;Runtime Analysis, aka Automated Bug Finding 2&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Run analysis as part of the nightly non-regressions tests. Unfortunately it's difficult to be precise here because I only know some for C++ :/&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;5. Test Review&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each specification change and each bug resolution should be accompanied by a set of tests. These should be reviewed to try and avoid &quot;forgetting&quot; something. New code should not make it into the repository without being accompagnied by its set of tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;6. Code Review&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each new feature or bug resolution should be review by at least one person. In my team we try to involve 2 persons: one that is knowledgeable in the area (to &quot;validate&quot;) and one that is not (to get experience).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The code review should be technical and functional, but it's too late to question design strategies (unless it's a glaring mistake).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the moment to enforce Coding Standards / Naming Conventions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;7. Design Review&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As mentionned, it's too late when at the code review stage to question design decisions. It's also difficult to design on one's own, because design requires insight, foresight, and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Design decisions should be discussed, I once again recommend a 3 persons settings:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the proposer: responsible for prototyping / checking the documentation etc... and coming up with a design&lt;/li&gt;&#xA;&lt;li&gt;the reviewer: someone with experience, with knowledge of the application, often times the team leader / project leader&lt;/li&gt;&#xA;&lt;li&gt;the student: someone either inexperienced in the craft or in the application&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It's not a good idea to let inexperienced / less knowledgeable take design decisions unguided: it's so much easier to change a paper draft than a hundred source files.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;8. Coding Standards&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need one, but you do not need any one: you need a good one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many dubious advices laying around on the web: don't incorporate them blindly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good Coding Standard is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;technical&lt;/em&gt;: that's how you get objectiveness&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;light&lt;/em&gt;: no one can memorize hundreds of points&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Taking the points backward: &lt;em&gt;light&lt;/em&gt; ensures that you &lt;em&gt;Don't sweat the small stuff&lt;/em&gt; (C++ Coding Standards, Herb Sutter and Andrei Alexandrescu).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;technical&lt;/em&gt; ensures that it's objective, which gives it much more change to get accepted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There probably isn't a Coding Standard adapted to your team, build you own by taking reknowed standards and adapting them to your specific projects. Discuss each point and make sure everyone agree on each of them, you need every team member to commit themselves on this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;9. Consistent formatting&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Naming Convention&lt;/em&gt;, &lt;em&gt;Indentation Style&lt;/em&gt;, &lt;em&gt;Bracket Style&lt;/em&gt;, &lt;em&gt;Tab vs Space&lt;/em&gt;... there are countless debates in the programming community on these subjective subjects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing is sure though, you need a &lt;strong&gt;consistent&lt;/strong&gt; formatting style in your code base, and preferably one that everyone is comfortable working with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This calls for setting those things once and for all. There is no silver-style, there are dubious ones, but what really matters is consistency of the code and commitment of the programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tools can assist in this task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;10. 3rd Party Code ?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;em&gt;Not Invented Here&lt;/em&gt; syndrom is bad, but incorporating blindly thousands of libraries is not much better.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The decision of bringing in a library or re-developping something in-house is a Design decision, and thus should involve several people (comprising the project leader)&lt;/li&gt;&#xA;&lt;li&gt;Restrict yourself to open-source well-tested libraries if possible (not necessarily free mind), it makes it easier to investigate bugs if you can step into the libraries calls&lt;/li&gt;&#xA;&lt;li&gt;Encapsulate the libraries, you don't want to have an interface change ripple through your code base like a typhoon in an atoll&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;11. Task Tracking&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know bug tracking is all the rage, but there is much more than bugs to be tracked, features changes should be tracked too, and planified, and accounted for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have an in-house system, well, use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If not, there are several systems existing out there, some free, some not. Examine them, pick one. You don't want to be recoding them I think, it would be a diversion from the real goal of your team :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;12. Automate Delivery&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even the latest addition to the team should be able to deliver the software into production.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It means that the process should be documented, streamlined, and automated as much as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Delivering the software should be as simple as pushing a button. Bonus points if this actually checks the delivered archive as well ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh... and obviously, reverting the deployment should be possible and automated too... we've been extra careful but Murphy is always on the prowl :/&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;13. Document&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am zero for overzealous documentation... but:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's easy to get Doxygen / Javadoc / whatever running (even if the code doesn't actually use their specific comment formatting, it still brings value)&lt;/li&gt;&#xA;&lt;li&gt;You need a central place to share procedures, archive meetings minutes and design decisions (with their rationale), etc...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I recommend a simple web server, preferably with a search engine. A wiki can be great. Anything easy to administrate / use, preferably light, once again it's not your primary task to administrate it, so it should not cost much.&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2010-10-16T16:14:42.873" CommentCount="1" />
  <row Id="12430" PostTypeId="2" ParentId="12401" CreationDate="2010-10-16T16:25:12.333" Score="6" ViewCount="" Body="&lt;p&gt;I would say &lt;strong&gt;robustness when it doesn't introduce ambiguities&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example: &#xA;When parsing a comma separated list, whether or not there's a space before/after the comma doesn't change the semantic meaning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When parsing a string guid it should accept any number of the common formats (with or without dashes, with or without surrounding curly braces).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most programming languages are robust with white space usage.  Specifically everywhere that it doesn't affect the meaning of code.  Even in Python where whitespace is relevant, it's still flexible when you're inside of a list or dictionary declaration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I definitely agree that if something can be interpreted multiple ways or if it's not 100% clear what was meant then too much robustness can end up being a pain though, but there's much room for robustness without being ambiguous.&lt;/p&gt;&#xA;" OwnerUserId="4214" LastActivityDate="2010-10-16T16:25:12.333" CommentCount="1" />
  <row Id="12431" PostTypeId="2" ParentId="12359" CreationDate="2010-10-16T16:33:11.830" Score="2" ViewCount="" Body="&lt;p&gt;IMO, your question is made of 2 questions:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is a good idea to wrap built-in/3rd party types in own types?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Depends. Having own types around existing types is great when you change the underlying type because the existing logic can be preserved (ideally) with no changes. Is like having a 3 tire architecture and you can change the database without changing the business logic. However, creating all those types takes time and developers also need time to learn them...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is a good idea to code own types that behave different from the original types when using the same syntax?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No. Is bad because it has side effects. Strange bugs may appear because one wasn't aware of the new behavior. Also makes debugging complicated and increases the time/cost of the development process.&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-10-16T16:33:11.830" />
  <row Id="12432" PostTypeId="2" ParentId="12423" CreationDate="2010-10-16T16:36:47.297" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;First of all, what does it mean for 2 concepts to be orthogonal ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It means that the two concepts do not have contrasting ideas or are not incompatible with each other.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;FP encourages immutability and purity as much as possible. and OO seems like something that is built for state and mutation(a slightly organized version of imperative programming?). And I do realize that objects can be immutable. But OO seems to imply state/change to me.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;They seem like opposites. How does it affect their orthogonality ?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;A language like Scala makes it easy to do OO and FP both, does this affect the orthogonality of the 2 methods ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;OO is about encapsulation, object composition, data abstraction, polymorphism via subtyping, and &lt;strong&gt;controlled mutation when necessary&lt;/strong&gt; (immutability is encouraged in OO as well). FP is about function composition, control abstraction, and constrained polymorphism (aka parametric polymorphism). Thus the two ideas are not contradictory. They both provide you with different kinds of powers and abstraction mechanisms, which are certainly possible to have in one language. In fact, this is the thesis on which &lt;a href=&quot;http://www.scala-lang.org/&quot; rel=&quot;nofollow&quot;&gt;Scala&lt;/a&gt; was built!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In his &lt;a href=&quot;http://video.google.com/videoplay?docid=553859542692229789#&quot; rel=&quot;nofollow&quot;&gt;Scala Experiment&lt;/a&gt; talk at Google, Martin Odersky explains it very well how he believes the two concepts - OO and FP - are orthogonal to each other and how Scala unifies the two paradigms elegantly and seamlessly into a new paradigm popularly known in Scala community as object-functional paradigm. Must watch talk for you. :-)&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Other examples of object-functional languages: &lt;a href=&quot;http://caml.inria.fr/&quot; rel=&quot;nofollow&quot;&gt;OCaml&lt;/a&gt;, &lt;a href=&quot;http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/default.aspx&quot; rel=&quot;nofollow&quot;&gt;F#&lt;/a&gt;, &lt;a href=&quot;http://nemerle.org/Main_Page&quot; rel=&quot;nofollow&quot;&gt;Nemerle&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1968" LastEditorUserId="1968" LastEditorDisplayName="" LastEditDate="2010-10-17T08:44:13.213" LastActivityDate="2010-10-17T08:44:13.213" CommentCount="2" />
  <row Id="12433" PostTypeId="2" ParentId="9614" CreationDate="2010-10-16T16:47:42.307" Score="0" ViewCount="" Body="&lt;p&gt;As soon as they graduate from using primitive JavaScript hacks for web development and advance to &lt;strong&gt;real&lt;/strong&gt; development using either Flex, Silverlight, or JavaFX rich clients. :)&lt;/p&gt;&#xA;" OwnerUserId="5543" LastActivityDate="2010-10-16T16:47:42.307" CommentCount="1" />
  <row Id="12434" PostTypeId="2" ParentId="12357" CreationDate="2010-10-16T16:58:06.170" Score="1" ViewCount="" Body="&lt;p&gt;I would say, &lt;strong&gt;it's impossible to know in advance unless you know (well) an existing employee of the company&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From my experience as being a consultant in many different companies, I've noticed that employees start to talk after 4 to 6 months approximatively. So don't expect to get any honest answer when you ask about the company to one of its employee before. &lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-16T16:58:06.170" />
  <row Id="12435" PostTypeId="1" AcceptedAnswerId="78449" CreationDate="2010-10-16T17:07:46.093" Score="14" ViewCount="690" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;NEW YORK - With a blast that made&#xA;  skyscrapers tremble, an 83-year-old&#xA;  steam pipe sent a powerful message&#xA;  that the miles of tubes, wires and&#xA;  iron beneath New York and other U.S.&#xA;  cities are getting older and could&#xA;  become dangerously unstable.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.nctimes.com/news/national/article_5d2472b8-cd27-5f40-a9e6-2ae4502ba138.html&quot; rel=&quot;nofollow&quot;&gt;July 2007 Story About a Burst Steam Pipe in Manhattan&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;We've heard about &lt;a href=&quot;http://en.wikipedia.org/wiki/Software_rot&quot; rel=&quot;nofollow&quot;&gt;software rot&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Technical_debt&quot; rel=&quot;nofollow&quot;&gt;technical debt&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And we've heard from the likes of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;Uncle Bob&quot; Martin - Who warned us about &quot;&lt;a href=&quot;http://blog.objectmentor.com/articles/2009/09/22/a-mess-is-not-a-technical-debt&quot; rel=&quot;nofollow&quot;&gt;the consequences of making a mess&lt;/a&gt;&quot;.&lt;/li&gt;&#xA;&lt;li&gt;Michael C. Feathers - Who gave us guidance for &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131177052&quot; rel=&quot;nofollow&quot;&gt;'Working Effectively With Legacy Code'&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So certainly the software engineering community is aware of these issues.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;But I feel like our aggregate society does not appreciate how these issues can plague working systems and applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Steve McConnell &lt;a href=&quot;http://forums.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx&quot; rel=&quot;nofollow&quot;&gt;notes&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;...Unlike financial debt, technical&#xA;  debt is much less visible, and so&#xA;  people have an easier time ignoring&#xA;  it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If this is true, and I believe that it is, then I fear that governments and businesses may defer regular maintenance and fortification against hackers until it is too late. [Much like NYC and the steam pipes.]&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;My Question:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you share my concern?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;And if so,&#xA;is there a way that we can avoid the&#xA;software equivalent of NYC and the steam pipes?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1996" LastEditorUserId="1996" LastEditorDisplayName="" LastEditDate="2011-05-20T10:50:04.300" LastActivityDate="2011-06-02T11:48:43.707" Title="In the Aggregate: How Will We Maintain Legacy Systems?" Tags="&lt;future&gt;&lt;trends&gt;&lt;culture&gt;&lt;profession&gt;&lt;technical-debt&gt;" AnswerCount="9" FavoriteCount="2" />
  <row Id="12436" PostTypeId="1" CreationDate="2010-10-16T17:08:17.233" Score="2" ViewCount="343" Body="&lt;p&gt;Well, the title says it all. Which is the most capable (and pretty) 3rd party grid control for WPF 4.0?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The xceed WPF 4.0 DataGrid sure looks impressive: &lt;a href=&quot;http://xceed.com/Grid_WPF_Intro.html&quot; rel=&quot;nofollow&quot;&gt;xceed DataGrid&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is any other one better looking and more feature rich?&lt;/p&gt;&#xA;" OwnerUserId="5317" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-03-14T23:28:02.523" LastActivityDate="2011-03-14T23:28:02.523" ClosedDate="2010-10-19T05:05:25.167" Title="Best 3rd party DataGrid control for WPF 4.0" Tags="&lt;c#&gt;&lt;.net&gt;&lt;wpf&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="1" />
  <row Id="12437" PostTypeId="2" ParentId="9630" CreationDate="2010-10-16T17:10:47.917" Score="0" ViewCount="" Body="&lt;p&gt;Logical step is first deciding what you want to do next. Usually programmers tend to specialize themselves in one server-side language. In your position I would only choose another server-side programming language strictly for web development if I wanted to work with a framework or application written in that particular language. Otherwise, not. &#xA;You can and should IMHO, continue to work with PHP even if you will learn something new.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The next thing if you want to remain in this area is to learn JavaScript and also start working with a framework and various libraries. If you're not interested in this, then you should choose either C# or Java. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't let your decision be influenced by people too much. Everyone has their favorite and some tend to get religious about theirs.&lt;/p&gt;&#xA;" OwnerUserId="2849" LastEditorUserId="2849" LastEditorDisplayName="" LastEditDate="2010-10-16T17:18:53.853" LastActivityDate="2010-10-16T17:18:53.853" />
  <row Id="12438" PostTypeId="2" ParentId="12436" CreationDate="2010-10-16T17:24:38.590" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.telerik.com/products/wpf.aspx&quot; rel=&quot;nofollow&quot;&gt;Telerik WPF controls&lt;/a&gt; are high-performance and visually appealing.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-16T17:24:38.590" />
  <row Id="12439" PostTypeId="1" CreationDate="2010-10-16T17:27:17.107" Score="16" ViewCount="696" Body="&lt;p&gt;It's been generally accepted in the OO community that one should &quot;favor composition over inheritance&quot;. On the other hand, inheritance does provide both polymorphism and a straightforward, terse way of delegating everything to a base class unless explicitly overridden and is therefore extremely convenient and useful.  Delegation can often (though not always) be verbose and brittle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most obvious and IMHO surest sign of inheritance abuse is violation of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Liskov_substitution&quot; rel=&quot;nofollow&quot;&gt;Liskov Substitution Principle&lt;/a&gt;.  What are some other signs that inheritance is The Wrong Tool for the Job even if it seems convenient?&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2011-03-19T04:31:21.553" Title="Code Smell: Inheritance Abuse" Tags="&lt;design&gt;&lt;object-oriented&gt;&lt;inheritance&gt;&lt;composition&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="3" />
  <row Id="12440" PostTypeId="2" ParentId="501" CreationDate="2010-10-16T17:43:29.950" Score="-1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&amp;amp; &amp;amp;&amp;amp; | || in C&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ has rectified it to some extend with explicit &quot;and&quot; &quot;or&quot; keywords. Many a bugs and torn hair could have been avoided in C if logical operations and bitwise operations weren't so hard to differentiate.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastEditorUserId="5178" LastEditorDisplayName="" LastEditDate="2010-10-17T05:30:22.170" LastActivityDate="2010-10-17T05:30:22.170" CommunityOwnedDate="2010-10-16T17:43:29.950" CommentCount="3" />
  <row Id="12441" PostTypeId="2" ParentId="12436" CreationDate="2010-10-16T17:44:34.813" Score="0" ViewCount="" Body="&lt;p&gt;If the datagrid control included in .NET 4.0 doesn't satisfy you, you can take a look at the one from &lt;a href=&quot;http://www.infragistics.com/dotnet/netadvantage/wpf.aspx#Overview&quot; rel=&quot;nofollow&quot; title=&quot;Infragistics&quot;&gt;Infragistics&lt;/a&gt;.  We've been using it for a couple of years and it works very well, and their support is pretty good (I've reported problems that were logged and fixed, and received a lot of help from the staff on their support forums.)  I don't know if you can just buy the datagrid though (I don't think so.)  As to know whether it's the best, well unfortunately I haven't had time to work enough with the other alternatives to make such a claim.  Just posting this as a satisfied user of the Infragistics controls (we use more than the datagrid.)&lt;/p&gt;&#xA;" OwnerUserId="3842" LastEditorUserId="3842" LastEditorDisplayName="" LastEditDate="2010-10-16T17:53:41.837" LastActivityDate="2010-10-16T17:53:41.837" CommentCount="2" />
  <row Id="12442" PostTypeId="2" ParentId="12439" CreationDate="2010-10-16T17:47:27.160" Score="1" ViewCount="" Body="&lt;p&gt;Perhaps most obvious is when the inheriting class ends up with a pile of methods/properties that are never used in the exposed interface. In the worst cases, where the base class has abstract members, you'll find empty (or meaningless) implementations of the abstract members just to 'fill in the blanks' as it were.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More subtly, sometimes you see where in an effort to increase code reuse two things which have similar implementations have been squeezed into one implementation - despite those two things not being related. This tends to increase code coupling and disentangling them when it turns out that the similarity was just a coincidence can be quite painful unless it's spotted early.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Updated with a couple of examples: Although not directly to do with programming as such, I think the best example for this sort of thing is with localisation/internationalisation. In English there's one word for &quot;yes&quot;. In other languages can be many, many more in order to agree grammatically with the question. Someone could say, ah let's have a string for &quot;yes&quot; and that's fine for lots of languages. Then they realise that the string &quot;yes&quot; doesn't really correspond to &quot;yes&quot; but actually the concept of &quot;the affirmative answer to this question&quot; - the fact that it's &quot;yes&quot; all the time is a coincidence and the time saved only having one &quot;yes&quot; is completely lost in disentangling the resulting mess.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen one particularly nasty example of this in our code base where what was actually a parent -&gt; child relationship where the parent and child had properties with similar names was modelled with inheritance. No-one noticed this as everything seemed to be working, then the behaviour of the child (actually base) and parent (subclass) needed to go in different directions. As luck would have it, this happened at exactly the wrong time when a deadline was looming - in attempting to tweak the model here and there the complexity (both in terms of logic and code duplication) went through the roof immediately. It was also really difficult to reason about/work with as the code simply didn't relate to how the business thought or talked about the concepts these classes represented. In the end we had to bite the bullet and do some major refactoring which could have been completely avoided if the original guy hadn't decided that a couple of similar sounding properties with values that happened to be the same represented the same concept.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastEditorUserId="1362" LastEditorDisplayName="" LastEditDate="2010-10-17T09:09:46.963" LastActivityDate="2010-10-17T09:09:46.963" CommentCount="3" />
  <row Id="12443" PostTypeId="2" ParentId="12439" CreationDate="2010-10-16T17:47:42.137" Score="10" ViewCount="" Body="&lt;p&gt;Is it really &quot;generally accepted&quot;? It's an idea I've heard a few times, but it's hardly a universally-recognized principle.  As you just pointed out, inheritance and polymorphism are the hallmarks of OOP.  Without them, you've just got procedural programming with goofy syntax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Composition is a tool for building objects a certain way.  Inheritance is a tool for building objects a different way.  There's nothing wrong with either of them; you just have to know how they both work and when it's appropriate to use each style.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-16T17:47:42.137" />
  <row Id="12444" PostTypeId="1" AcceptedAnswerId="12474" CreationDate="2010-10-16T18:13:29.803" Score="9" ViewCount="366" Body="&lt;p&gt;In maths, a variable means you can put any number there, and an equation will still be true:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;root(square(x)) = abs(x)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In programming languages, this is not so: a var can change. In Python:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;y = (x**2)**.5&#xA;x *= 2&#xA;assert y == abs(x)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;will raise an exception, since x in the last line is not the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there programming languages that use immutable variables?&lt;/p&gt;&#xA;" OwnerUserId="5545" LastActivityDate="2010-10-17T06:41:53.380" Title="Does any programming language use variables as they're in maths?" Tags="&lt;programming-languages&gt;&lt;math&gt;&lt;variables&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="1" />
  <row Id="12445" PostTypeId="2" ParentId="12444" CreationDate="2010-10-16T18:17:54.973" Score="16" ViewCount="" Body="&lt;p&gt;Purely functional programming languages, such as &lt;a href=&quot;http://www.haskell.org/&quot; rel=&quot;nofollow&quot;&gt;Haskell&lt;/a&gt;, enforce immutable variables. I like to call them identifiers though, instead of variables.&lt;/p&gt;&#xA;" OwnerUserId="5546" LastActivityDate="2010-10-16T18:17:54.973" CommentCount="4" />
  <row Id="12446" PostTypeId="2" ParentId="12439" CreationDate="2010-10-16T18:19:21.647" Score="16" ViewCount="" Body="&lt;p&gt;When inheriting just to get functionality, you're probably abusing inheritance. This leads to the creation of a &lt;a href=&quot;http://en.wikipedia.org/wiki/God_object&quot; rel=&quot;nofollow&quot;&gt;God Object&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Inheritance itself is not a problem as long as you see a real relation between the classes (like the classic examples, such as Dog extends Animal) and you're not putting methods on the parent class that doesn't make sense on some of it's children (for example, adding a Bark() method in the Animal class wouldn't make any sense in a Fish class that extends Animal).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a class needs functionality, use composition (perhaps injecting the functionality provider into the constructor?). If a class needs TO BE like other, then use inheritance.&lt;/p&gt;&#xA;" OwnerUserId="1124" LastActivityDate="2010-10-16T18:19:21.647" CommentCount="3" />
  <row Id="12447" PostTypeId="2" ParentId="12439" CreationDate="2010-10-16T18:21:51.673" Score="1" ViewCount="" Body="&lt;p&gt;The strength of inheritance is reusability. Of interface, data, behavior, collaborations. It's a useful pattern from which to convey attributes to new classes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The drawback to using inheritance is reusability. The interface, data and behavior are encapsulated and transmitted en masse, making it an all-or-nothing proposition. The problems become especially evident as hierarchies become deeper, as properties which might be useful in the abstract become less so and begin to obscure properties at the local level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every class that uses the composition object will have to more-or-less re-implement the same code to interact with it. While this duplication requires some violation of DRY, it affords greater freedom for designers to pick-and-choose those properties of a class most meaningful to their domain. This is particularly advantageous when classes become more specialized.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, it should be preferred to create classes via composition, and then converting to inheritance those classes with the bulk of their properties in common, leaving the differences as compositions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IOW, YAGNI (You Aren't Gonna Need Inheritance).&lt;/p&gt;&#xA;" OwnerUserId="4982" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2011-03-18T22:48:07.677" LastActivityDate="2011-03-18T22:48:07.677" CommentCount="3" />
  <row Id="12448" PostTypeId="2" ParentId="12439" CreationDate="2010-10-16T18:24:07.800" Score="8" ViewCount="" Body="&lt;p&gt;I would say, taking the risk of being shot down, that Inheritance is a code smell in itself :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The issue with inheritance is that it can be used for two orthogonal purposes:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;interface (for polymorphism)&lt;/li&gt;&#xA;&lt;li&gt;implementation (for code reuse)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Having a single mechanism to get both is what leads in &quot;inheritance abuse&quot; in the first place, since most people expect inheritance to be about interface, but it might be used to get default implementation even by otherwise careful programmers (it's just so easy to overlook this...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, modern languages like Haskell or Go, have abandonned inheritance in order to separate both concerns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back on track:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A violation of the Liskov Principle is therefore the surest sign, since it means that the &quot;interface&quot; part of the contract is not respected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However even when the interface is respected, you might have objects inheriting from &quot;fat&quot; base classes just because one of the methods was deemed useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore the Liskov Principle in itself is not enough, what you need to know is whether or not the polymorphism is &lt;strong&gt;used&lt;/strong&gt;. If it isn't, then there wasn't much point in inheriting in the first place, that's an abuse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Summary:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;enforce the &lt;code&gt;Liskov Principle&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;check it's actually used&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;A way around it:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imposing a clear separation of concerns:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;only inherit from interfaces&lt;/li&gt;&#xA;&lt;li&gt;use composition to delegate implementation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;means that at least a couple keystrokes are needed for each method, and suddenly people begin to think about whether or not it's such a great idea to reuse this &quot;fat&quot; class for just a small piece of it.&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2010-10-16T18:24:07.800" CommentCount="9" />
  <row Id="12449" PostTypeId="2" ParentId="12357" CreationDate="2010-10-16T18:44:25.747" Score="1" ViewCount="" Body="&lt;p&gt;Another point to consider is how the same title can apply to different departments.  For example, some companies may have web developers in both information systems and product development departments, with somewhat different treatments in each.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there are user groups applicable to your expertise,e.g. a .Net user group for developers that use a Microsoft stack, this may be another way to hear about various companies.  Granted there may be biases to note but sometimes there can be useful things heard when a few people from a company get together to chat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The maturity of the development process is something else to consider in where you work.  Some people may prefer little structure and enjoy working in a cowboy like environment, while others may want the other extreme where there is lots of process.  Some may want to be consultants that are sent to clients on a regular basis, while others may want to stay in the same office most of the time.  Just something else to consider.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-16T18:44:25.747" CommentCount="1" />
  <row Id="12450" PostTypeId="1" CreationDate="2010-10-16T18:57:22.880" Score="4" ViewCount="194" Body="&lt;p&gt;Hello All,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Say for example I wanted to pay somebody to create a programming language or scripting language for me, what type of document would they need, in order to fully understand what it is exactly that I want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mean, are there like... standard documents that describe the new programming/scripting language in question?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks! :)&lt;/p&gt;&#xA;" OwnerUserId="3486" LastActivityDate="2010-10-17T04:22:27.660" Title="Question about Creating a Scripting Language" Tags="&lt;programming&gt;&lt;scripting&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="1" />
  <row Id="12451" PostTypeId="2" ParentId="501" CreationDate="2010-10-16T19:06:13.950" Score="4" ViewCount="" Body="&lt;p&gt;Since people have already complained about &lt;code&gt;=&lt;/code&gt; vs. &lt;code&gt;==&lt;/code&gt;, let me point out a much worse alternative. PL/I had both &lt;code&gt;:=&lt;/code&gt; and &lt;code&gt;=&lt;/code&gt;, &lt;em&gt;but&lt;/em&gt; when something was &quot;obviously&quot; an assignment, it would let you get away with using &lt;code&gt;=&lt;/code&gt; to do it. Using &lt;code&gt;:=&lt;/code&gt; let you force something to be an assignment in a situation where the compiler would otherwise interpret it as a comparison.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, the compiler didn't always decided on things quite the way you might expect. Consider just one obvious example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;A = B = 0;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now, to most people familiar with most &quot;ordinary&quot; languages, the meaning of this is pretty obvious -- assign 0 to both A and B. PL/I is just a bit...different though. For reasons known only to the (insane) designers of the language, the first &lt;code&gt;=&lt;/code&gt; is interpreted as an assignment, but the second &lt;code&gt;=&lt;/code&gt; is interpreted as a comparison. Therefore, this compares B to 0, and then assigns the result of that comparison to A (following the C-style convention that &quot;false&quot; results in 0 and &quot;true&quot; in 1).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, if B was 0, then A becomes 1. Otherwise, A becomes 0. In other words, rather than assigning the same value to A and B, this actually ensures that A &lt;em&gt;cannot&lt;/em&gt; have the same value as B.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line: even though the C/C++/PHP style initially &lt;em&gt;seems&lt;/em&gt; like a pain, the alternative is much worse&lt;sup&gt;1&lt;/sup&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt;Well, technically, there's another alternative: Pascal style, where &lt;code&gt;=&lt;/code&gt; always means comparison and assignment always requires &lt;code&gt;:=&lt;/code&gt;. After using that for a while, it's pretty obvious (at least to me) that assignment is enough more common than comparison that if you're going to require extra &quot;stuff&quot; to disambiguate the two, you should definitely keep assignments clean and simple and require the extra &quot;grunge&quot; on comparisons, not vice versa. &lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-16T19:06:13.950" CommunityOwnedDate="2010-10-16T19:06:13.950" CommentCount="2" />
  <row Id="12452" PostTypeId="2" ParentId="6157" CreationDate="2010-10-16T19:19:17.610" Score="1" ViewCount="" Body="&lt;p&gt;At the very least, command line usage for their development environment. Terminal on OSX, Command Prompt or PowerShell for Windows, shell for *nix.&lt;/p&gt;&#xA;" OwnerUserId="146" LastActivityDate="2010-10-16T19:19:17.610" CommunityOwnedDate="2010-10-16T19:19:17.610" CommentCount="1" />
  <row Id="12453" PostTypeId="2" ParentId="12248" CreationDate="2010-10-16T19:27:41.353" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The Art of Unit Testing&lt;/strong&gt; - Roy Osherove&lt;br&gt;&#xA;&lt;strong&gt;Design Patterns in C#&lt;/strong&gt; - Steven Metsker (C#) / &lt;strong&gt;Head First Design Patterns&lt;/strong&gt; (Java) - Elisabeth Freeman, Eric Freeman,Bert Bates, Kathy Sierra&lt;br&gt;&#xA;&lt;strong&gt;Code Complete: A Practical Handbook of Software Construction&lt;/strong&gt; - Steve McConnell&lt;/p&gt;&#xA;" OwnerUserId="146" LastActivityDate="2010-10-16T19:27:41.353" />
  <row Id="12454" PostTypeId="2" ParentId="12423" CreationDate="2010-10-16T19:37:42.247" Score="12" ViewCount="" Body="&lt;p&gt;The term &quot;orthogonal&quot; comes from maths, where it has a synonym: &quot;perpendicular&quot;. In this context, you could understand it as &quot;the two things have nothing to do with each other.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When people compare FP and OO they often confuse two separate axes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the one hand you have functional programming versus imperative programming. Jonas gives a good &lt;a href=&quot;http://programmers.stackexchange.com/questions/9730/functional-programming-vs-oop/9769#9769&quot;&gt;comparison&lt;/a&gt; of the two. The one-sentence version says that &quot;data flow versus control flow&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other axis is data abstraction. Languages like Haskell use abstract data types to, well, abstract data. Smalltalk uses objects, which fuse the data and operations on that data into a single unit. William Cook explains better than I could in his paper &lt;a href=&quot;http://www.cs.utexas.edu/~wcook/Drafts/2009/essay.pdf&quot; rel=&quot;nofollow&quot;&gt;On Understanding Data Abstraction, Revisited&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's perfectly understandable that most people end up thinking that FP and OO are opposites: most OO languages are imperative, so if you compare, say, Haskell and Java, you have data flow + ADT versus control flow + object. But there are other possibilities! Matthias Felleisen explains how to happily marry FP and OO in his talk &lt;a href=&quot;http://www.ccs.neu.edu/home/matthias/Presentations/ecoop2004.pdf&quot; rel=&quot;nofollow&quot;&gt;Functional Objects&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2011-05-12T15:36:35.230" LastActivityDate="2011-05-12T15:36:35.230" CommentCount="2" />
  <row Id="12455" PostTypeId="2" ParentId="12450" CreationDate="2010-10-16T19:55:11.507" Score="1" ViewCount="" Body="&lt;p&gt;You can describe your language's grammar in &lt;a href=&quot;http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form&quot; rel=&quot;nofollow&quot;&gt;BNF&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, this is &lt;a href=&quot;http://docs.python.org/release/2.5.2/ref/grammar.txt&quot; rel=&quot;nofollow&quot;&gt;Python's grammar&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-16T19:55:11.507" CommentCount="1" />
  <row Id="12456" PostTypeId="2" ParentId="12450" CreationDate="2010-10-16T20:20:16.743" Score="8" ViewCount="" Body="&lt;p&gt;What you need to write is called a &lt;a href=&quot;http://en.wikipedia.org/wiki/Programming_language_specification&quot; rel=&quot;nofollow&quot;&gt;language specification&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It should contain a description of the language's grammar (preferably in &lt;a href=&quot;http://en.wikipedia.org/wiki/EBNF&quot; rel=&quot;nofollow&quot;&gt;Extended Backus-Naur-Form&lt;/a&gt;) and its semantics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the latter part you could either write a description in your own words (but take care to be precise) or a &lt;a href=&quot;http://en.wikipedia.org/wiki/Formal_semantics_of_programming_languages&quot; rel=&quot;nofollow&quot;&gt;formal semantics&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3446" LastActivityDate="2010-10-16T20:20:16.743" />
  <row Id="12457" PostTypeId="2" ParentId="12450" CreationDate="2010-10-16T20:28:31.683" Score="0" ViewCount="" Body="&lt;p&gt;if you're using .NET, here is something I stumbled across some time back. I only gave it a curious glance, but maybe it would be use to you:  &lt;a href=&quot;http://irony.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;irony&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-10-16T20:28:31.683" />
  <row Id="12458" PostTypeId="2" ParentId="12435" CreationDate="2010-10-16T21:23:56.403" Score="2" ViewCount="" Body="&lt;p&gt;Having supported a variety of government and private industry applications I would say that most companies and at least the US Government is well aware of the dangers of letting code rot and not staying on top of the latest security trends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We regularly have to get our software certified for various susceptibilities and most government electronic systems, even old ones, get regular updates to keep them secure. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course there are exceptions, and hackers are always on the move, but on the whole I think people are pretty aware you can't just throw something out there and never touch it again.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-10-16T21:23:56.403" />
  <row Id="12459" PostTypeId="2" ParentId="11831" CreationDate="2010-10-16T21:37:54.437" Score="1" ViewCount="" Body="&lt;p&gt;A good programmer is to some extent a language-independent entity. That is, many of the key skills that make a good programmer have very little to do with which language he expresses his designs in - it's more about problem solving and lateral thinking, knowing and applying good patterns, etc. Experience of many languages will benefit you by providing you with a more comprehensive &quot;bag of tricks&quot; with which to approach any programming problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, for &quot;useful&quot; programming skills, I'd suggest three paths that would be beneficial to consider:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For job opportunities, C++ and C# are good options. Why?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;C++ is one of the most widely used and well supported languages available. It is (more or less) a superset of C, which a lot of people will recommend as a good language to learn - indeed, with C++ you can start with simpler 'C style' procedural programming and move on to OOP later. And it's usually pretty trivial to move to any other C-like language (and there are lots of them) if you know C++.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Going higher level than C++ we get to C# or Java - these are very widely used and are a much easier learning curve than C++ - they do much more to protect the programmer, and the vastly better built-in libraries (especially .net) make it fabulously easy to do a lot of heavy lifting with very little effort. There's a thriving job market for them and they are so similar to C++ that it'd be reasonably easy to move in that direction should you wish to later. (You'll just have to retrain yourself to use 'delete', which might be a bit painful once C#/Java has made you lazy). So it's an easier stepping stone than C++.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Going the other way from C++, we get to Assembler. All the best programmers understand what is going on &quot;under the bonnet&quot;. This is often why people suggest C as a good language (it's high level but still not &quot;too far&quot; removed from the hardware) but if you wish to write efficient code, you need to have an understanding of how a computer actually works, and IMHO there is no better way than to actually &lt;em&gt;program the CPU&lt;/em&gt;, rather than asking a compiler or interpreter to do it for you. I'm sick of interviewing &quot;programmers&quot; who don't understand how to do basic bitwise operations, or don't have the faintest clue about how to write code that will be CPU friendly (make good use of registers, pipelining, cache coherence, etc). Make sure you at least do a bit of dabbling in Assembler (ARM is great - very simple and quick to learn) to get at least a feel for what a computer actually is.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1335" LastActivityDate="2010-10-16T21:37:54.437" />
  <row Id="12460" PostTypeId="2" ParentId="12416" CreationDate="2010-10-16T21:49:24.980" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.watson.ibm.com/index.shtml&quot; rel=&quot;nofollow&quot;&gt;IBM Watson Research Center&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-10-16T21:49:24.980" />
  <row Id="12461" PostTypeId="2" ParentId="12416" CreationDate="2010-10-16T22:02:20.900" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.sei.cmu.edu/&quot; rel=&quot;nofollow&quot;&gt;Software Engineering Institute&lt;/a&gt; at Carnegie Mellon University in Pittsburgh PA. DoD-funded, but works closely with major industry and academic clients through research and education, specifically improving engineering and management practices.&lt;/p&gt;&#xA;" OwnerUserId="4766" LastActivityDate="2010-10-16T22:02:20.900" CommentCount="2" />
  <row Id="12462" PostTypeId="2" ParentId="12444" CreationDate="2010-10-16T22:27:38.687" Score="4" ViewCount="" Body="&lt;p&gt;You can simulate immutability in &lt;a href=&quot;http://en.wikipedia.org/wiki/Immutable_object#Python&quot; rel=&quot;nofollow&quot;&gt;Python too by not allowing updates&lt;/a&gt; to classes.  As stated earlier most pure functional programming languages enforce immutability. &lt;a href=&quot;http://clojure.org/&quot; rel=&quot;nofollow&quot;&gt;Clojure&lt;/a&gt; is a recent addition to the &lt;a href=&quot;http://en.wikipedia.org/wiki/Java_Virtual_Machine&quot; rel=&quot;nofollow&quot;&gt;JVM&lt;/a&gt; platform (Clojure is a LISP dialect)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In &lt;a href=&quot;http://www.scala-lang.org/&quot; rel=&quot;nofollow&quot;&gt;Scala&lt;/a&gt; (also a &lt;a href=&quot;http://en.wikipedia.org/wiki/Java_Virtual_Machine&quot; rel=&quot;nofollow&quot;&gt;JVM&lt;/a&gt; language)  a unifier of OO and FP support variables declared with &lt;code&gt;val&lt;/code&gt; are immutable. Scala expressiveness and OO/FP hybrid support makes it look &lt;a href=&quot;http://thinkmeta.wordpress.com/2010/06/28/scala-expressiveness/&quot; rel=&quot;nofollow&quot;&gt;similar to Mathematica&lt;/a&gt;. (&lt;a href=&quot;http://akkasource.org/&quot; rel=&quot;nofollow&quot;&gt;Akka&lt;/a&gt; is a framework that adds Erlang OTP and Clojure functionality such as STM.. to Scala and Java.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Java a variable declared &lt;code&gt;final&lt;/code&gt; is immutable, and Java libraries such as &lt;a href=&quot;http://code.google.com/p/guava-libraries/&quot; rel=&quot;nofollow&quot;&gt;Google Guava&lt;/a&gt; includes immutable libraries of collections. Java &lt;code&gt;String&lt;/code&gt;s are also always immutable. &lt;/p&gt;&#xA;" OwnerUserId="1925" LastEditorUserId="1925" LastEditorDisplayName="" LastEditDate="2010-10-16T22:37:40.177" LastActivityDate="2010-10-16T22:37:40.177" />
  <row Id="12463" PostTypeId="2" ParentId="12450" CreationDate="2010-10-16T23:37:54.050" Score="1" ViewCount="" Body="&lt;p&gt;99.9% of the time creating a new language is completely unnecessary. The return on investment would most likely be tiny, and you would of just wasted your time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most likely you can use Javascript as a susceptible scripting language, and there are parsers available for most languages already. You can also use other scripting languages you like if you can find a suitable parser for them. Implementing those into your program would require much less work and have a bigger return. People don't have to learn another language, they just have to learn your API.  Its a much better solution. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Creating a new language is almost always bad.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-10-16T23:37:54.050" CommentCount="3" />
  <row Id="12464" PostTypeId="2" ParentId="11831" CreationDate="2010-10-16T23:38:20.637" Score="0" ViewCount="" Body="&lt;p&gt;I'd consider learning some simple assembly, not for writing a serious project, but just to get a real idea of how computers actually work. x86 is supposed to be complicated. ARM (as used in phones etc.) is probably the simplest one that might actually be useful for something. It's amazing how something like 27 instructions combine to produce an infinite range of programs.&lt;/p&gt;&#xA;" OwnerUserId="923" LastActivityDate="2010-10-16T23:38:20.637" />
  <row Id="12465" PostTypeId="2" ParentId="11831" CreationDate="2010-10-17T00:13:59.130" Score="0" ViewCount="" Body="&lt;p&gt;There no one answer that's anywhere close to correct without knowing quite a bit about what kind(s) of code you really want to write and what kinds of problems you enjoy solving. Some also depends on how well you know the languages you've listed, and in what kind of detail. Finally, we're left with a question of how oriented you are toward practicality, and how much more doing things just because they're fun, cool, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least from my perspective, HTML (as such) barely qualifies at all -- it's a markup language, not a programming language. OTOH, if your definition of knowing HTML includes knowing Javascript, that changes things a lot in a hurry -- Javascript &lt;em&gt;is&lt;/em&gt; a full-blown programming language with a lot of interesting capabilities, many of which are quite rare in other languages (e.g., nearly the only other language with the same model of object orientation is Self).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ruby is quite multi-paradigm and multi-purpose. If you honestly know all of Ruby really well, about 90% of the suggestions you've gotten so far are close to meaningless -- Ruby already supports both object-oriented and functional programming quite well, so Lisp (for one example) won't necessarily teach you a lot that's really very new or different. OTOH, a lot of people who &quot;know Ruby&quot; really mostly know how to take a RoR web site, and modify it somewhat to produce another web site that does similar things, but &lt;em&gt;looks&lt;/em&gt; different (anywhere from slightly to drastically).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That still leaves the question of what you're interested in accomplishing -- what kinds of problems you enjoy solving, what kinds of code you enjoy writing, what kind of environment you enjoy working with. For example, when you think of writing the coolest possible program, would it be a merchant site so cool it  could put Amazon out of business, the world's most accurate weather simulation, or perhaps an engine controller that could improve a car's fuel economy by 5%?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then we get to the question of practicality. If you spend a fair amount of time learning something new, do you expect to put it on your resume and have it enhance your chances of getting a better job? Would you be just as happy to learn about some niche that's intellectually cool and interesting, but unlikely to ever be of any practical use at all?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The answers to those questions will have a huge effect on the next language you should learn. If you really enjoy building web sites, and want to do that a lot better, C probably shouldn't be your first choice -- and quite a few of the other recommendations you've gotten don't really fit well either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you'll pardon my being a bit condescending (and bordering on nasty), I'd take &lt;em&gt;most&lt;/em&gt; of the answers you've gotten with (at least) a grain of salt. If you look through the other answers by many of the posters, it becomes apparent that a fair number are doing little more than expressing their personal likes and dislikes, with little regard for the degree (if any) to which those answers fit what you want, need or care about at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let me give just one particularly obvious example: Mason Wheeler tells you to forget about C++, and adds in one a comment that it's used in games only out of social inertia. Even if we stipulate that he's right&lt;sup&gt;1&lt;/sup&gt;, the advice is still bad if your real intent is to learn a language that will help you get a job writing 3D video games. Even if some other language could &lt;em&gt;theoretically&lt;/em&gt; work just as well (or even better) for writing such games, the simple fact is that the vast majority of such programming &lt;em&gt;is&lt;/em&gt; done in C++, and learning something else isn't going to help you get the job -- quite the contrary, most game developers are going to assume you're just plain clueless if you say you want to develop games but don't know C++. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt;Just for the record, I'm not at all convinced he is right, but that's a whole separate question and mostly irrelevant to the question at hand. If you look through his other answers, it's easy to see that Mason has &lt;em&gt;very&lt;/em&gt; strong likes and dislikes when it comes to programming languages, and most of his answers are little more than an expression of those opinions -- and that &lt;em&gt;is&lt;/em&gt; relevant to the question at hand. I don't mean to pick on Mason either -- his just happens to be one I noticed in this case.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-17T00:13:59.130" />
  <row Id="12466" PostTypeId="1" CreationDate="2010-10-17T00:20:20.047" Score="4" ViewCount="264" Body="&lt;p&gt;C is ubiquitous, and C++ nearly as much, but I'm curious which other languages follow a similar model of header files.  Specifically, in which other languages is it idiomatic to edit pairs or groups of &quot;header&quot; and &quot;implementation&quot; files?  (A group as in multiple headers with one corresponding implementation file or a single header with multiple implementation files, as also seen in C.)  For example, the pair &quot;blah.h&quot; and &quot;blah.c&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C's header files are tied into the C preprocessor, but that's not the detail I'm focusing on here.  For example, PHP has various include mechanisms, but you don't have a pair/group of &quot;blah-header.php&quot; plus &quot;blah-notheader.php&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some languages generate a file from source in a one-to-one mapping, such as Java, but that's not what I'm talking about either.  I'm interested in cases where the programmer &lt;em&gt;directly edits&lt;/em&gt; both/all files in the pair/group.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps to put it another way: which languages have a declaration file (&quot;header&quot;) and definition file (&quot;implementation&quot;) such that a person would generally edit both files in tandem?&lt;/p&gt;&#xA;" LastActivityDate="2010-10-17T22:42:49.857" Title="Which languages use &quot;paired&quot; header/implementation files?" Tags="&lt;programming-languages&gt;&lt;file-structure&gt;&lt;headers&gt;" AnswerCount="7" CommentCount="6" />
  <row Id="12467" PostTypeId="2" ParentId="11831" CreationDate="2010-10-17T00:20:39.277" Score="0" ViewCount="" Body="&lt;p&gt;The language that would benefit you most &lt;em&gt;now&lt;/em&gt; is Javascript. Although understanding C is virtually mandatory for understanding operating systems, its practical use is limited. Javascript, however, is the most widely used scripting language in the world; just about every modern computing device can run Javascript. You can use it to build everything from web applications to browser games. It has an active development community of extremely talented people who are creating new, high-quality tools and libraries &lt;em&gt;daily&lt;/em&gt;. Finally, in the marketplace, Javascript developers are in extremely high demand.&lt;/p&gt;&#xA;" OwnerUserId="4711" LastActivityDate="2010-10-17T00:20:39.277" />
  <row Id="12468" PostTypeId="2" ParentId="12444" CreationDate="2010-10-17T00:47:56.430" Score="2" ViewCount="" Body="&lt;p&gt;C, C++, and Objective-C can specify immutability for function (and method) arguments, as well as other variables (identifiers), with the &quot;const&quot; type qualifier.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-17T00:47:56.430" />
  <row Id="12469" PostTypeId="2" ParentId="12466" CreationDate="2010-10-17T00:52:32.753" Score="1" ViewCount="" Body="&lt;p&gt;I think Modula 2 uses a similar pattern&lt;/p&gt;&#xA;" OwnerUserId="3439" LastActivityDate="2010-10-17T00:52:32.753" CommentCount="1" />
  <row Id="12470" PostTypeId="2" ParentId="12466" CreationDate="2010-10-17T00:56:24.933" Score="0" ViewCount="" Body="&lt;p&gt;I've seen the C Preprossessor used in Haskell to include code from a header. Its not that common as far as I know though.&lt;/p&gt;&#xA;" OwnerUserId="227" LastActivityDate="2010-10-17T00:56:24.933" />
  <row Id="12471" PostTypeId="2" ParentId="12466" CreationDate="2010-10-17T01:23:25.360" Score="3" ViewCount="" Body="&lt;p&gt;Objective-C (and and its C++ counterpart, Objective-C++) can #include C (C or C++) header files as well as #import Objective-C header files. That pairs are even used is by convention.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In additon, ASP, Perl, Python, Pascal, and, since the file extension used for its includes doesn't have to follow a standard, PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Most assembler source code also use &quot;paired&quot; included/implementation files by convention.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT2 - ADDENDUM&lt;/strong&gt;&#xA;Apparently there's some confusion as to the use cases that prompted the use of separate header files in C, and so some developers are dubious that certain other languages would also use header files to deal with those use cases in the same way.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;as the earliest C compilers ran on machines with a small amount of memory, it wasn't possible to load up symbol tables with all the source that would be incorporated into the final build. So each source file was run through multiple passes separately to generate the object code with necessary interfaces for other sources included in headers;&lt;/li&gt;&#xA;&lt;li&gt;as the earliest C compilers ran on machines with a small amount of memory, it was more efficient to distribute the shared elements of a module among more specialized headers which could be included selectively by sources rather than in one;&lt;/li&gt;&#xA;&lt;li&gt;as the earliest C compilers ran on slow machines, especially since they had a small amount of memory, it was time-consuming to compile lots of source files belonging to a module when only a few had been changed;&lt;/li&gt;&#xA;&lt;li&gt;sometimes source code maintainers don't share their code with outside groups, but instead make the object code available with headers of the required interfaces to aid in proper integration with linked code;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;and most importantly these days&lt;/em&gt;, programs and the language runtime sometimes deal with libraries, &lt;strong&gt;especially platform-dependent libraries&lt;/strong&gt;, which are from an external environment or other language but which they can integrate with appropriate interface specifications in a header. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The last point is particularly true when a language supports a platform's GUI. I know it's been true on the Mac since its earliest days (when Pascal was its first high-level language) to now for &lt;strike&gt;Perl&lt;/strike&gt; (now automated), Python, and PHP. Its runtime environment may not make the inclusion process visible to you, but it's happening; especially if you use platform-specific symbols.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://wiki.freepascal.org/Creating_bindings_for_C_libraries&quot; rel=&quot;nofollow&quot;&gt;Creating bindings for C libraries in Free Pascal&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://perldoc.perl.org/h2xs.html&quot; rel=&quot;nofollow&quot;&gt;h2xs builds a Perl extension from C header files&lt;/a&gt;, or &lt;a href=&quot;http://stackoverflow.com/questions/3682375/how-do-i-use-swig-in-perl&quot;&gt;use SWIG&lt;/a&gt;, or &lt;a href=&quot;http://search.cpan.org/~mbarbon/ExtUtils-XSpp-0.15/lib/ExtUtils/XSpp.pod&quot; rel=&quot;nofollow&quot;&gt;support C++&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interfacing Python to a C lib doesn't require just a header, but &lt;a href=&quot;http://docs.python.org/extending/extending.html&quot; rel=&quot;nofollow&quot;&gt;writing an extension&lt;/a&gt;!&lt;/p&gt;&#xA;" OwnerUserId="4982" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-17T22:42:49.857" LastActivityDate="2010-10-17T22:42:49.857" CommentCount="3" />
  <row Id="12472" PostTypeId="1" CreationDate="2010-10-17T01:30:12.870" Score="11" ViewCount="429" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/11523/explaining-technical-things-to-non-technical-people&quot;&gt;Explaining technical things to non-technical people&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Working with stakeholders who don't know the first thing about technology can be interesting.  On one hand, I sometimes get requests like &quot;I need you fix this misspelled word- that should take about a month, right?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I sometimes get requests that would require fundamental breakthroughs in several fields of computer science.  The problem is that to explain why a problem is impossible (or at least, an order of magnitude larger than they think) often requires explaining a whole pile of background knowledge first, which in turn requires its own CS degree to make much sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, it seems simple to some users to just add a voice interface to an application.  That shouldn't take more than a week, tops!  But explaining the state of the current voice-recognition field and the problems associated with natural-language processing usually goes right over their heads.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, I'm curious if you have any good approaches for explaining the difficulty of certain tasks to certain people with minimal technical background.  Do you try to explain the technical details?  Use analogies?  Just tell them that it can't be done?&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-18T06:32:34.220" ClosedDate="2010-10-18T09:00:05.940" Title="How to deal with customers who don't understand the complexity of their requests?" Tags="&lt;users&gt;&lt;customer-relations&gt;&lt;requirements&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="1" />
  <row Id="12473" PostTypeId="2" ParentId="12466" CreationDate="2010-10-17T01:31:27.250" Score="5" ViewCount="" Body="&lt;h3&gt;Ada&lt;/h3&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Any Ada package on the other hand consists of two parts, the specification (header) and body (code). The specification however is a completely stand alone entity which can be compiled on its own and so must include specifications from other packages to do so. An Ada package body at compile time must refer to its package specification to ensure legal declarations, but in many Ada environments it would look up a compiled version of the specification.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;--file example.ads, the package specification.&#xA;package example is&#xA;:&#xA;:&#xA;end example;&#xA;&#xA;--file example.adb, the package body.&#xA;package body example is&#xA;:&#xA;:&#xA;end example;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Source: &lt;a href=&quot;http://www.adahome.com/ammo/cpp2ada.html#2&quot; rel=&quot;nofollow&quot;&gt;http://www.adahome.com/ammo/cpp2ada.html#2&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-10-17T01:31:27.250" CommentCount="1" />
  <row Id="12474" PostTypeId="2" ParentId="12444" CreationDate="2010-10-17T01:50:34.417" Score="4" ViewCount="" Body="&lt;p&gt;To answer your title question &quot;Does any programming language use variables as they're in maths?&quot;: &#xA;C, C#, Java, C++, and any other C style language use variables in the way they are used in math.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;You just need to use == instead of =.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I take your original &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;root(square(x)) = abs(x)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Then I can translate that into C# directly without any changes other than for the syntax. &#xA;&lt;code&gt;Math.Sqrt(Math.Pow(x,2)) == Math.Abs(x)&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This will evaluate to true for any value of x as long as x squared is less than the max for the data type you are using.&#xA;&lt;em&gt;(Java will be grossly similar, but I believe the Math namespace is a bit different)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This next bit will fail to compile in C# because the compiler is smart enough to know I can't assign the return of one operation to another operation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Math.Sqrt(Math.Pow(x,2)) = Math.Abs(x)&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Immutability has nothing to do with this. You still need to assign the value in an immutable language and it's entirely possible that a given language may chose to do this by using = as the operator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Further proving the point, this loop will run until you exhaust legal values of x and get an overflow exception:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; while (Math.Sqrt(Math.Pow(x, 2)) == Math.Abs(x))&#xA;        {&#xA;            ++x;&#xA;            System.Console.WriteLine(x);&#xA;        }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This is why mathematicians hate the use of = for assignment. It confuses them. I think this has led you to confuse yourself. Take your example&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;y = (x**2)**.5&#xA;x *= 2&#xA;assert y == abs(x)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;When I turn this into algebra, I get this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;abs(2x) = root(x^2)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which of course is not true for values other than 0. Immutability only saves you from the error of changing the value of x when you add extra steps between evaluating the Left Hand Side and Right Hand Side of the original equation. It's doesn't actually change &lt;em&gt;how&lt;/em&gt; you evaluate the expression.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-10-17T01:50:34.417" CommentCount="1" />
  <row Id="12475" PostTypeId="1" CreationDate="2010-10-17T02:33:10.637" Score="5" ViewCount="296" Body="&lt;p&gt;Most programming languages are Turing-complete, which means that any task that can be solved in one language can be solved in another one, or even on Turing machine. Then why there is no  automatic translators that can convert programs from any given language to any other language? I've seen couple attempts for two languages, but they always work only on a limited subset of a language and can hardly be used for converting real projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it possible, at least in theory, to write 100% correct translator between all languages? What are the challenges in practice? Are there any existing translators that work?&lt;/p&gt;&#xA;" OwnerUserId="193" LastActivityDate="2010-10-17T07:09:05.500" Title="Why there is no automated translators from one programming language to another?" Tags="&lt;programming-languages&gt;" AnswerCount="6" FavoriteCount="2" />
  <row Id="12476" PostTypeId="2" ParentId="12475" CreationDate="2010-10-17T02:44:21.260" Score="0" ViewCount="" Body="&lt;p&gt;There are no language translators for programming languages because programming languages are incredibly complex.  While it is hypothetically possible, there are many challenges.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first challenge is merely in the acceptable practices of the language.  Converting between two object oriented languages like Java and C++ is incredibly complex, and they are both C based.  The translator program would have to have perfect knowledge of the standard libraries for both languages and be able to know the differences in behavior.  You would have to create a massive dictionary and even then, the differences in programming styles from programmer to programmer would mean that it would have to guess on how to perform some changes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you've gotten the syntax translation down, you then have to figure out how to convert a construct in the first language to a construct in the second language.  This is fine if you're going an object in C++ to an object in Java (comparatively easy that is) but what do you do with your C++ structs? Or the functions outside of the C++ classes? Deciding how to handle this can be tricky as it can result in another problem, namely the creation of a blob object. The blob is an antipattern which is common enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't a complete list of the problems, but those are just two and they're big ones.  One of my professors mentioned that someone convinced his employer they could make one from machine code to C in the 80s, but it didn't work then. I doubt there will ever be one that works fully.&lt;/p&gt;&#xA;" OwnerUserId="5179" LastActivityDate="2010-10-17T02:44:21.260" CommentCount="2" />
  <row Id="12477" PostTypeId="2" ParentId="12475" CreationDate="2010-10-17T03:05:34.790" Score="0" ViewCount="" Body="&lt;p&gt;FWIW, there is a translator from Java to D.  It's called &lt;a href=&quot;http://www.dsource.org/projects/tioport&quot; rel=&quot;nofollow&quot;&gt;TioPort&lt;/a&gt; and was used in a fairly serious attempt to port SWT to D.  The main problem it ran into was that it would have been necessary to port massive portions of the Java standard library.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-17T03:05:34.790" />
  <row Id="12478" PostTypeId="2" ParentId="12466" CreationDate="2010-10-17T03:08:07.763" Score="1" ViewCount="" Body="&lt;p&gt;You can do this in D with .di files.  It's useful for distributing closed source libraries and such.  The .di files can also be generated automatically from the .d files.  However, unless you need to distribute a closed-source library or compile times become a major issue and you need to cut down on what the compiler has to parse, it's not idiomatic.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-17T03:08:07.763" CommentCount="1" />
  <row Id="12479" PostTypeId="2" ParentId="12475" CreationDate="2010-10-17T03:17:10.770" Score="6" ViewCount="" Body="&lt;p&gt;If you have an intermediate format, then you could implement something that translates a program in Language X &lt;em&gt;to&lt;/em&gt; that format, and also &lt;em&gt;from&lt;/em&gt; that format to Language Y. Implement those conversions for all languages you're interested and you're done, right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well you know what? Such a format already exists: assembly. The compiler already does the &quot;Language X to assembly&quot; conversion, and disassemblers to the &quot;assembly to Language Y&quot; conversion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, assembly is not that great a language for doing the reverse conversion, but MSIL is actually not that bad. Download &lt;a href=&quot;http://www.red-gate.com/products/reflector/&quot; rel=&quot;nofollow&quot;&gt;Reflector&lt;/a&gt; and you'll see it's got options to disassemble a .NET assembly into a bunch of different languages (and plugins provide even more). So it's quite possible to take a program in C#, compile it to a DLL (that is, MSIL), then use reflector to disassemble it into VB, C++/CLI, F#, and a whole bunch others. Of course, all the other conversion work, too. Take an F# file, compile to a DLL, use Reflector to convert it to C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, the two big problems that you'll find are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The code is basically unreadable. MSIL (even with debugging information) removes a lot of information from the original source, so the translated version doesn't have 100% fidelity (theoretically doing a C#-&gt;MSIL-&gt;C# conversion should give you back the original code, but it won't).&lt;/li&gt;&#xA;&lt;li&gt;Many .NET languages have their own custom libraries (e.g. the VB runtime library, F# library and so on). These would need to be included (or converted) when you do your conversion as well.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;There's really nothing to get around #2, but you could probably get around #1 with some additional annotations in the MSIL (via attributes, maybe). That would be additional work, of course.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-17T03:17:10.770" CommentCount="2" />
  <row Id="12480" PostTypeId="2" ParentId="272" CreationDate="2010-10-17T03:17:11.723" Score="0" ViewCount="" Body="&lt;p&gt;I prefer Web Developer. My previous titles were:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Senior Application Developer&lt;/li&gt;&#xA;&lt;li&gt;Web Developer (Front-End Platform)&lt;/li&gt;&#xA;&lt;li&gt;Software Design Engineer&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-17T03:17:11.723" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="12481" PostTypeId="2" ParentId="9539" CreationDate="2010-10-17T03:17:28.477" Score="2" ViewCount="" Body="&lt;p&gt;Computer programs that can observe what humans do on a computer, and then extract the repetitive aspects and automate it. For example, if you always follow a certain direction of thought when you reply on the social network, a computer program will be able to automate that for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Computers that can pass the Turing Test to a certain degree (that is, it can initiate and respond to a meaningful dialogue), as long as the human does not use certain tricks to exploit known weaknesses of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, CAPTCHA and other devices used to separate human from computers will eventually be broken one-by-one, but new tests will replace old, broken tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Almost every person will know how to &quot;program&quot; a computer to a certain degree, as it becomes part of the elementary education requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;obsolete-ness&quot; of the STEM education (science, technology, engineering, mathematics) will eventually improve and catch up with the latest knowledge, thanks to community-driven learning systems and online availability of education materials.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The arrival of the golden age of Computer Vision and Natural Language Processing, which leads to the next tech bubbles, followed by their decline, their renewal dubbed &quot;Intelligence 2.0&quot;, eventually reaching application maturity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The everyday work of professional programmers will remain the same, except that there will be more and more domain-specific languages, and tools with finely-divided foci.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-17T03:17:28.477" />
  <row Id="12482" PostTypeId="2" ParentId="12472" CreationDate="2010-10-17T03:17:47.180" Score="2" ViewCount="" Body="&lt;p&gt;In this case I wouldn't get bogged down with the technical details.  If you think that the requested solution isn't the correct solution explain why while pointing out the extra hours and cost implications, because that's something that clients can understand. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Always give an applicable alternative. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you feel that it is not the right solution because the current software is too limited, you need say that quite simply.  Again, you can always expand on something, but there are timing and cost implications. &lt;/p&gt;&#xA;" OwnerUserId="4058" LastActivityDate="2010-10-17T03:17:47.180" />
  <row Id="12483" PostTypeId="2" ParentId="12475" CreationDate="2010-10-17T03:20:19.430" Score="0" ViewCount="" Body="&lt;p&gt;It's theoretically possible but mostly useless. Almost any combination of source and target languages is possible, but in most cases nobody would ever want to look at or use the result.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A fair number of compilers do target C, simply because C compilers are available for almost every platform in existence (and there are automatic compiler generators that will let you design a processor, and automatically generate a C compiler that targets your new processor). There are also, of course, a fair number of implementations that target the languages used by various virtual machines such as .NET, JVM, C--, and LLVM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key point, however, is that it's really only useful if you treat the target is basically an assembly language that's only used as a step in the compilation process. In particular, you generally do &lt;em&gt;not&lt;/em&gt; want a normal programmer to read or work with that result; it usually won't be very readable.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-17T03:20:19.430" />
  <row Id="12484" PostTypeId="2" ParentId="12472" CreationDate="2010-10-17T03:26:18.487" Score="2" ViewCount="" Body="&lt;p&gt;Technologies that require the frontiers of science should be easy to explain: no company has succeeded in doing the same. This should tell something about the difficulty of the subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Technologies that a few companies have started offering, means that they are within human's reach. In this case, it might be possible to estimate the cost needed to acquire / license that technology, and if licensing is not possible, then it can be understood as a business barrier, not entirely a technological barrier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Technologies that can be added to the product today, but would be unable to meet the customer's expectation because of its imperfection. In this case, one has to build the product and integration &lt;em&gt;first&lt;/em&gt;, and then demonstrate it, in order to convince anyone that it is &lt;em&gt;doable&lt;/em&gt;, but is &lt;em&gt;not useful&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To explain why technologies that sounds cool but fails commercially, it is useful to study the &lt;a href=&quot;http://en.wikipedia.org/wiki/History_of_science&quot; rel=&quot;nofollow&quot;&gt;History of Science&lt;/a&gt;, especially on technology adoption. Sometimes the explanation is simply that &lt;em&gt;their primetime has not come yet&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Added&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;To explain why it might be a bad idea to automate a manually-performed task or to eliminate human involvement (approval, confirmation) in a certain step, use a scenario-based story or ask the customer to join a simple role-play game. These are good ways to explain the potential risks.&lt;/p&gt;&#xA;" OwnerUserId="620" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-10-18T05:24:49.170" LastActivityDate="2010-10-18T05:24:49.170" />
  <row Id="12486" PostTypeId="2" ParentId="8098" CreationDate="2010-10-17T03:48:51.243" Score="0" ViewCount="" Body="&lt;p&gt;As other answers have stated the minimum will vary from situation to situation.  For example, a self-employed contractor may need to know a bit more than the full-time employee as the former may need an accountant and others to help run the business the contractor has.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some basics on financial health that I'd consider some basics like understanding where is your company in terms of maturity:  Is it a start-up still burning angel investors money or venture capitalists money now?  How close to profitable is the company?  Are there any big lawsuits that may kill the company in the near term?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think some of the basics of understanding a project plan at a high level, how change requests are handled, and what kind of general process is there to get through a project are key things to know, as well.  I'm not saying you have to know all the steps in the change management process, but do be aware when this is used and how it may impact your project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to get more into the business side, you may want to inquire about more details of the contract that was won.  How many units are being sold?  Is this an initial pilot project at the client or is there a mass adoption now?  Those basic kind of questions that may help give a bit more detail to what you may end up having to tackle next.  For example, if your company started getting massive orders, couldn't this lead to some systems being pushed to their limits that may need to get remedied ASAP, no?  While I did give some vague areas and only a few specific examples, these are the parts that I tend to notice with a company.  How bureaucratic HR is would be another factor to not forget here to some extent.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-17T03:48:51.243" />
  <row Id="12488" PostTypeId="2" ParentId="12472" CreationDate="2010-10-17T03:52:36.587" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Triple Constraints.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mostly know as &quot;Do you want it good, fast or cheap&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also recommend &lt;a href=&quot;http://pmsimplicity.com&quot; rel=&quot;nofollow&quot;&gt;PM Simplicity e-book&lt;/a&gt; for all projects. There are a chapter for stakeholder analysis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For explain how certain things are hard to made, I prefer analogies. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been used one that I call &quot;Cerberus challenge&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a 3-head monster named Cerberus that you´ll face when you start a project. &#xA;Heads are: Bad, Expensive and Slow. &#xA;It is impossible to kill the monster, but you can cut one head, run and try to escape from hell. :O)&lt;/p&gt;&#xA;" OwnerUserId="3082" LastActivityDate="2010-10-17T03:52:36.587" />
  <row Id="12491" PostTypeId="2" ParentId="12475" CreationDate="2010-10-17T04:02:32.850" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is it possible, at least in theory, to write 100% correct translator between all languages? What are the challenges in practice?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Translating from a more-structured language to a less-structured language that is still Turing-complete, is always possible. &#xA;&lt;ul&gt;&#xA;&lt;li&gt;This claim should be viewed in a strictly technical sense: It means that the translated program will produce exactly the same result when it is executed. &lt;/li&gt;&#xA;&lt;li&gt;Nothing is implied about the readability of translated code, or the preservation of the original program structures.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Translating from a less-structured language to a more-structured language is possible, but the translated code will remain in its less-structured form.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-17T04:02:32.850" />
  <row Id="12492" PostTypeId="2" ParentId="12472" CreationDate="2010-10-17T04:11:42.547" Score="2" ViewCount="" Body="&lt;p&gt;Providing a ball park cost and delay in providing other requested features is the quickest and easiest to make the client reconsider their request. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is important to tell your clients not to make assumptions how long a request may or may not take; that's your job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is good practice to encourage lines of communications with your client. The vast majority of requests from clients are a good idea and they should be praise for them. Then just be honest and say that will take at least X hours to implement. It should be rare that you have to explain why.&lt;/p&gt;&#xA;" OwnerUserId="919" LastActivityDate="2010-10-17T04:11:42.547" />
  <row Id="12493" PostTypeId="2" ParentId="12444" CreationDate="2010-10-17T04:17:13.720" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.maplesoft.com/&quot; rel=&quot;nofollow&quot;&gt;Maple&lt;/a&gt;, &lt;a href=&quot;http://www.wolfram.com/&quot; rel=&quot;nofollow&quot;&gt;Mathematica&lt;/a&gt;, and &lt;a href=&quot;http://www.mathworks.com/help/toolbox/symbolic/solve.html&quot; rel=&quot;nofollow&quot;&gt;MATLAB symbolic toolbox&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The general name is called symbolic math solver. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In these systems, variables have the same meaning as they are in maths.&lt;/li&gt;&#xA;&lt;li&gt;It is totally different from immutable variables. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-17T04:17:13.720" />
  <row Id="12494" PostTypeId="2" ParentId="12450" CreationDate="2010-10-17T04:22:27.660" Score="0" ViewCount="" Body="&lt;p&gt;You will need the following:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A Philosophy&lt;/strong&gt;&lt;br&gt;&#xA;&lt;strong&gt;A Semantic Definition&lt;/strong&gt;&lt;br&gt;&#xA;&lt;strong&gt;A lexical description of your tokens&lt;/strong&gt;&lt;br&gt;&#xA;&lt;strong&gt;A Syntax Analysis definition&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How will your language be different? What is its mission? Is it functional? Is it object orientated? Is it a meta-language? What are its unique features? What will it give the world that doesn't exist (or exists in an ugly way)? How do you want to change things? Is it compiled or interpreted? A DSL or general purpose language? This is your &lt;em&gt;philosophy&lt;/em&gt; and dictates alot about your language's design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next, work on scratching out rough syntax and semantics on paper. This will be your &lt;em&gt;semantic definition&lt;/em&gt; ... writing fake code is a great way to develop your thoughts. Read &quot;The C Programming Language&quot; for an excellent example of how this is done. Play with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will then need to define your tokens and syntax in some way. Programs then process these into automata capable of reading in strings and processing the syntax. Yacc and Bison use Regular Expressions and a BNF style syntax for lexical and syntax analysis respectively. There are also Yacc and Bison like tools in for other languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will also need a &lt;strong&gt;grounding in language theory/compilers&lt;/strong&gt; to know what NOT to do. Examples include ambiguous grammars, AST generation and manipulation problems and generally how to make life simple for yourself. Knowing the theory is very important. I would consider getting the following to start off:  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321486811&quot; rel=&quot;nofollow&quot;&gt;Compilers: Principles, Techniques and Tools (Dragon Book)&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0521607655&quot; rel=&quot;nofollow&quot;&gt;Modern Compiler Implementation in C&lt;/a&gt; or &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/052182060X&quot; rel=&quot;nofollow&quot;&gt;Modern Compiler Implementation in Java&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5558" LastActivityDate="2010-10-17T04:22:27.660" />
  <row Id="12495" PostTypeId="1" CreationDate="2010-10-17T04:23:50.537" Score="1" ViewCount="273" Body="&lt;p&gt;Hi All,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have about 15 years of IT experience in IT Security and Networking. I am looking for a career change and I really would like to take a stab at Java programming. I have a CS degree but it's been about 5 years since my last class. I have intermediate experience in Perl (that is still current) and I am also trying to learn Python (although it has taken a back seat to Java). I picked up Sam's Teach Yourself Java in 24 Hours as a refresher to my Java classes I took in school. I am half way through it and luckily it's all coming back to me. I also have HTML and some SQL experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason I chose Java and not Perl is because a.) I liked programming in Java in school and b.) Java seems to be in high demand these days. I wouldn't mind being a Perl programmer but it seems like all of the jobs have Perl listed as &quot;nice to have&quot; experience and not a requirement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess my question is what kind of jobs should I be applying for? I am thinking I only have enough knowledge for a beginner/intern type jobs but it's going to be almost impossible for me (personally) to take a job that only makes 1/3 of what I'm making now ($90k). Will I be laughed at if I attempt to apply for &quot;real&quot; programming jobs or is there such a demand for Java programmers now that someone will be willing to give me a chance?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you for any advice. I would really like to make this change within the next 6 months.&lt;/p&gt;&#xA;" OwnerUserId="5559" LastActivityDate="2010-10-17T05:22:38.510" Title="Advice on Switching Careers to Java Programmer" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="2" />
  <row Id="12497" PostTypeId="2" ParentId="12495" CreationDate="2010-10-17T04:37:21.860" Score="2" ViewCount="" Body="&lt;p&gt;Java is one of those languages where if you want to do it professionally, then you need to know more than the language ....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition to working on learning the language, invest heavily in learning the &lt;strong&gt;libraries&lt;/strong&gt; and commonly used &lt;strong&gt;frameworks&lt;/strong&gt; and containers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also look into applications of various design patterns. Because Java's OOP features and structures are very explicit (unlike say, Python's) then they become a bigger part of complexity management and working with other programmers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get your hands on some real-code in an Open Source project and take a look. Beginners code is easy to spot ... the hallmarks are various degrees of code-smell, not understanding the APIs available and not correctly structuring your code to be maintainable and to support graceful refactoring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Much of this is learned with experience, and I am sure you already know alot of the above. With Java, more than some languages, there is &lt;strong&gt;more than the language&lt;/strong&gt; to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Recommended Reads:&lt;/strong&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735619670&quot; rel=&quot;nofollow&quot;&gt;Code Complete&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201633612&quot; rel=&quot;nofollow&quot;&gt;Design Patterns: Elements of reusable Object-Oriented Software&lt;/a&gt;&lt;br&gt;&#xA;and popular books on Web/WebServices, Concurrency, Struts ...&lt;/p&gt;&#xA;" OwnerUserId="5558" LastEditorUserId="5558" LastEditorDisplayName="" LastEditDate="2010-10-17T04:42:47.500" LastActivityDate="2010-10-17T04:42:47.500" />
  <row Id="12498" PostTypeId="2" ParentId="9200" CreationDate="2010-10-17T04:46:17.643" Score="4" ViewCount="" Body="&lt;p&gt;Artima's &lt;a href=&quot;http://www.artima.com/shop/programming_in_scala&quot; rel=&quot;nofollow&quot;&gt;Programming in Scala&lt;/a&gt; is the best Scala book you can get at the moment. &lt;strong&gt;Very recommended.&lt;/strong&gt; I found O'Reilly's &lt;a href=&quot;http://programming-scala.labs.oreilly.com/&quot; rel=&quot;nofollow&quot;&gt;Programming Scala&lt;/a&gt; to be a good second book; It moves a bit faster than I'd like though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also tried David Pollak's &lt;a href=&quot;http://apress.com/book/view/9781430219897&quot; rel=&quot;nofollow&quot;&gt;Beginning Scala&lt;/a&gt; but didn't quite like it, and I &lt;strong&gt;don't&lt;/strong&gt; recommend it to anyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All the above-mentioned books are somewhat oudated as they don't cover a lot of things new in Scala 2.8. I am hoping that the updated editions of these books will be published soon.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Though more than half a dozen Scala books have already been published, I believe that the best books are yet to come.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The two books in particular that I think you should keep your eye on are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.manning.com/suereth/&quot; rel=&quot;nofollow&quot;&gt;Scala in Depth&lt;/a&gt; by Josh Suereth&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0521747589&quot; rel=&quot;nofollow&quot;&gt;Steps in Scala&lt;/a&gt; by Christos Loverdos and Apostolos Syropoulos&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-17T04:46:17.643" CommentCount="2" />
  <row Id="12499" PostTypeId="1" AcceptedAnswerId="12505" CreationDate="2010-10-17T04:52:36.970" Score="5" ViewCount="205" Body="&lt;p&gt;Wikipedia helpfully explains:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The yobibit is a multiple of the bit, a unit of digital information&#xA;  storage, prefixed by the&#xA;  standards-based multiplier yobi&#xA;  (symbol Yi), a binary prefix meaning&#xA;  2^80. The unit symbol of the yobibit is Yibit or Yib.&lt;a href=&quot;http://www.iec.ch/news_centre/release/nr2005/nr2005.htm&quot; rel=&quot;nofollow&quot;&gt;1&lt;/a&gt;[2] 1 yobibit = 2^80&#xA;  bits = 1208925819614629174706176 bits =&#xA;  1024 zebibits[3] The zebi and yobi&#xA;  prefixes were originally not part of&#xA;  the system of binary prefixes, but&#xA;  were added by the International&#xA;  Electrotechnical Commission in August&#xA;  2005.[4]&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Now, what in the world actually takes up 1,208,925,819,614,629,174,706,176 bits? The information content of the known universe? I guess this is forward thinking -- maybe astrophyics or nanotech, or even DNA analysis really will require these orders of magnitude.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How far off do you think all this is? &lt;a href=&quot;http://www.iec.ch/news_centre/release/nr2005/nr2005.htm&quot; rel=&quot;nofollow&quot;&gt;Are these really meaningful units?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5557" LastEditorUserId="5557" LastEditorDisplayName="" LastEditDate="2010-10-17T05:24:12.047" LastActivityDate="2010-12-10T04:59:52.813" Title="Is a yobibit really a meaningful unit?" Tags="&lt;database-development&gt;&lt;software-engineering&gt;&lt;information&gt;" AnswerCount="4" CommentCount="4" />
  <row Id="12501" PostTypeId="2" ParentId="12495" CreationDate="2010-10-17T05:22:38.510" Score="1" ViewCount="" Body="&lt;p&gt;It would seem that the main thing you are missing is Java experience and (maybe) experience in building production quality applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are two ways to get these:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Take a low level position and learn on the job.  Your degree + experience in other IT topics should mean that you have a bit of an edge over raw graduates, but you &lt;em&gt;won't&lt;/em&gt; be as productive as a 5+ year Java developer should you should expect that salary.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Get involved with some worthy open source Java project or start a project of your own.  Build your Java programming skills by coding real stuff ... making sure that you pick up experience with J2EE and other framework technologies that are likely to land you a job.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I would really like to make this change within the next 6 months.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I think you may need to plan for a longer term transition than that ... especially if you want / need a good starting salary.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-10-17T05:22:38.510" />
  <row Id="12502" PostTypeId="2" ParentId="12499" CreationDate="2010-10-17T05:27:58.733" Score="4" ViewCount="" Body="&lt;p&gt;It is clearly meaningful.  A meaning has been defined.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it useful?  Probably not ... except when you want to impress people with your geek credentials.  (And even then, I'd not be impressed.)&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-10-17T05:27:58.733" />
  <row Id="12503" PostTypeId="2" ParentId="12357" CreationDate="2010-10-17T05:48:39.347" Score="3" ViewCount="" Body="&lt;p&gt;Ask the hiring manager flat out, &quot;How does the rest of the company perceive the value of your department?  Are we seen as a cost center or a source of growth?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask the people you'll be working with as part of the process.  When you're offered the job, you say &quot;I'd like to meet with the team I'd be joining,&quot; and then ask them at that point.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-17T05:48:39.347" CommentCount="2" />
  <row Id="12504" PostTypeId="2" ParentId="8721" CreationDate="2010-10-17T05:54:10.880" Score="2" ViewCount="" Body="&lt;p&gt;Peer reviews really help improve the quality of your code. If you have no real mentor, you can post your code [after you reduce it to necessary minimum] at StackOverflow or RefactorMyCode or mailing lists and people will help you with improving the quality of your code.&lt;/p&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-17T05:54:10.880" />
  <row Id="12505" PostTypeId="2" ParentId="12499" CreationDate="2010-10-17T06:01:52.767" Score="11" ViewCount="" Body="&lt;p&gt;Fifty years ago who could imagine a &quot;gigabyte&quot; of data? The entire text of &lt;em&gt;War and Peace&lt;/em&gt; takes up &lt;em&gt;~3.7 MB!&lt;/em&gt; What in the world would you need a thousand of them for? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Enter Multimedia Stage Left&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Video and audio take up a &lt;em&gt;huge&lt;/em&gt; portion of what we know as the internet [&lt;a href=&quot;http://www.wired.com/magazine/2010/08/ff_webrip/&quot; rel=&quot;nofollow&quot;&gt;source&lt;/a&gt;]. The sheer &lt;em&gt;size&lt;/em&gt; of this crap is mind boggling. We are always finding bigger and bigger things we need stored. There is no limit.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-17T06:01:52.767" CommentCount="1" />
  <row Id="12506" PostTypeId="2" ParentId="954" CreationDate="2010-10-17T06:22:37.153" Score="5" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Code is literature&lt;/strong&gt; (APIs are UIs, so try to focus on sane power-to-weight ratios, good documentation, intuitive naming conventions and &lt;em&gt;doing one thing well&lt;/em&gt; -- code is social more than ever today and 'code aesthetics' matter)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Don't be afraid of the bitbucket&lt;/strong&gt; (get comfortable refactoring; this requires good version control and a strong testing suite, of course)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;If it's too hard, you're not cheating enough&lt;/strong&gt; (relax; don't repeat yourself; study other people's code; read a mathematics book; and finally, be ruthless -- get as quick and dirty as you need to get around the bug that's causing your test not to run, so that you can just freaking finish hacking out your prototype; of course, this requires following up the prototyping phase with a thorough refactoring to clean everything up...)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Be brave&lt;/strong&gt; (fortune favors the bold; there are an infinite number of ways to implement an abstract specification; and, of course, it's easier to make dramatic changes if you're test-driven!)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5557" LastEditorUserId="5557" LastEditorDisplayName="" LastEditDate="2011-04-12T20:36:53.637" LastActivityDate="2011-04-12T20:36:53.637" CommentCount="1" />
  <row Id="12507" PostTypeId="2" ParentId="12444" CreationDate="2010-10-17T06:41:53.380" Score="4" ViewCount="" Body="&lt;p&gt;The &lt;code&gt;=&lt;/code&gt; sign used in programming languages is misleading.&#xA; &lt;code&gt;&amp;lt;-&lt;/code&gt;, meaning &quot;store&quot;, or even COBOL &lt;code&gt;MOVE&lt;/code&gt; should be used instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an addition, Prolog uses variable like math: Variables cannot change, and the Prolog engine will fill in the variables to see if the solutions exist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, Curry is a mix of Haskell and Prolog.&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-10-17T06:41:53.380" />
  <row Id="12508" PostTypeId="2" ParentId="8721" CreationDate="2010-10-17T06:57:14.020" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Practice!&quot; That is a cliche.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should review what you've learned in the math classes, and make some programs that deal with the problems.&#xA;Also, implement an elevator program, a vending machine (that calculates changes in coins), to sharpen your logic skills.&#xA;Think of everything in the everyday life, and implement them.&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-10-17T06:57:14.020" />
  <row Id="12509" PostTypeId="2" ParentId="4319" CreationDate="2010-10-17T07:00:54.857" Score="0" ViewCount="" Body="&lt;p&gt;Use less video games and mobile phones and play instruments like guitar and piano, this makes you comfortable over typing with middle to small (the last one) fingers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Video game controllers only let you use thumb and the second finger.&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-10-17T07:00:54.857" />
  <row Id="12510" PostTypeId="2" ParentId="12466" CreationDate="2010-10-17T07:03:06.463" Score="3" ViewCount="" Body="&lt;p&gt;F#: It optionally allows a &lt;code&gt;.fsi&lt;/code&gt; file to declare the symbols like C headers.&#xA;See &lt;a href=&quot;http://en.wikibooks.org/wiki/F_Sharp_Programming/Modules_and_Namespaces#Module_Signatures&quot; rel=&quot;nofollow&quot;&gt;http://en.wikibooks.org/wiki/F_Sharp_Programming/Modules_and_Namespaces#Module_Signatures&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-10-17T07:03:06.463" />
  <row Id="12511" PostTypeId="2" ParentId="12475" CreationDate="2010-10-17T07:09:05.500" Score="6" ViewCount="" Body="&lt;p&gt;The biggest problem is not the actual translation of program code, but the porting of the platform API. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider a PHP to Java translator. The only feasible way to do that without embedding part of the PHP binary is to reimplement all of PHP's modules and API's in Java. This involves implementing over 10.000 functions. Compared to that the job of actually translating the syntax is easy as pie. And even after all that work you wouldn't have Java code, you'd have some sort of monstrosity that happens to run on the Java platform, but that was structured like PHP on the inside.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is why the only such tools that come to mind are all about translating code to deploy it, not to maintain it afterwards. Google's GWT &quot;compiles&quot; Java to JavaScript. Facebook's hiphop compiles PHP into C.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-10-17T07:09:05.500" />
  <row Id="12513" PostTypeId="2" ParentId="954" CreationDate="2010-10-17T07:44:31.503" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Composability / Compositionality &lt;/li&gt;&#xA;&lt;li&gt;Elegance&lt;/li&gt;&#xA;&lt;li&gt;Correctness / Robustness / Well-typed-ness&lt;/li&gt;&#xA;&lt;li&gt;Readability&lt;/li&gt;&#xA;&lt;li&gt;Extensibility&lt;/li&gt;&#xA;&lt;li&gt;Maintainability&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-17T07:44:31.503" />
  <row Id="12515" PostTypeId="1" AcceptedAnswerId="12523" CreationDate="2010-10-17T08:12:41.880" Score="2" ViewCount="241" Body="&lt;p&gt;Donald Knuth reminds us that computer science is about computers in the way astronomy is about telescopes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To what extent can a program be considered a literary artifact? Are there requirements for code to be considered 'literature'? What are they?&lt;/p&gt;&#xA;" OwnerUserId="5557" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-17T09:00:30.620" LastActivityDate="2010-10-17T17:37:51.230" ClosedDate="2010-10-17T17:23:53.120" Title="Is code literature?" Tags="&lt;computer-science&gt;&lt;code&gt;&lt;legibility&gt;&lt;software-craftsmanship&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="12516" PostTypeId="2" ParentId="6067" CreationDate="2010-10-17T08:13:00.023" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.jsoftware.com/&quot; rel=&quot;nofollow&quot;&gt;J Programming Language&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;J is an array programming language, in the tradition of APL. It features great compositional capabilities, and unmatcheable succinctness. Array programming languages are often joked about as line noise or prank-gone-out-of-hand, but I don't agree with this crowd which is keen on dismissing things before giving them a serious try. &lt;a href=&quot;http://twitter.com/#!/kaleidic&quot; rel=&quot;nofollow&quot;&gt;Tracy Harms&lt;/a&gt; and &lt;a href=&quot;http://twitter.com/#!/old_sound&quot; rel=&quot;nofollow&quot;&gt;Alvaro Videla&lt;/a&gt; (both J experts) have convinced me that learning J can be a real mind-widening experience, and I am gonna go for it (maybe in the next college vacations). :-)&lt;/p&gt;&#xA;" OwnerUserId="1968" LastEditorUserId="1968" LastEditorDisplayName="" LastEditDate="2010-10-17T08:19:12.077" LastActivityDate="2010-10-17T08:19:12.077" CommunityOwnedDate="2010-10-17T08:13:00.023" />
  <row Id="12517" PostTypeId="2" ParentId="12515" CreationDate="2010-10-17T08:44:39.523" Score="1" ViewCount="" Body="&lt;p&gt;Well, there is code that is considered art. For example &lt;a href=&quot;http://www.0100101110101101.org/home/biennale_py/&quot; rel=&quot;nofollow&quot;&gt;Biennale.py&lt;/a&gt; and &lt;a href=&quot;http://www.perlmonks.org/index.pl?node=Perl%20Poetry&quot; rel=&quot;nofollow&quot;&gt;perl poetry&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-10-17T08:44:39.523" CommentCount="2" />
  <row Id="12519" PostTypeId="2" ParentId="1090" CreationDate="2010-10-17T09:42:27.213" Score="0" ViewCount="" Body="&lt;p&gt;Readability should come first, long-term most people spend most time modifying or extending existing code - readability is a big part of maintainability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, conciseness is something which can contribute towards readability. For example, in your question the second snippet is both more readable and more concise.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-17T09:42:27.213" />
  <row Id="12520" PostTypeId="2" ParentId="1090" CreationDate="2010-10-17T10:05:53.223" Score="1" ViewCount="" Body="&lt;p&gt;There is one thing that the verbose version has as an advantage.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has more lines, and most debuggers are &lt;em&gt;line-oriented&lt;/em&gt;!   It is very hard to set a break point in the middle of an expression, but it is usually trivially simple to set it inside a block statement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, which one would you want to see in your editor if you want your debugger to kick in when &lt;code&gt;boss == null&lt;/code&gt; ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(That said I like the ??-operator)&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-17T10:05:53.223" />
  <row Id="12522" PostTypeId="1" CreationDate="2010-10-17T10:13:32.070" Score="9" ViewCount="1504" Body="&lt;p&gt;I currently need to buy a new monitor (my old one broke and I'm stuck with my laptops screen). What's a good choice for a monitor these days? I've been quite out of the loop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm mostly concerned with my eyes of course, and I need something that is good for reading text (programming obviously). With that said I don't really care about gaming and beautiful picture display... just text.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any studies done on this? What's the best monitor for reading text? I would prefer a brand name if possible.&lt;/p&gt;&#xA;" OwnerUserId="3306" LastActivityDate="2010-10-27T07:14:49.967" Title="Best monitor for programming (eyes concerned)?" Tags="&lt;programming&gt;&lt;monitor&gt;&lt;reading&gt;" AnswerCount="5" CommentCount="7" FavoriteCount="3" />
  <row Id="12523" PostTypeId="2" ParentId="12515" CreationDate="2010-10-17T10:27:17.933" Score="4" ViewCount="" Body="&lt;p&gt;Knuth did his work on computer typesetting back in the 70'es, where documentation were at best thick manuals and computer listings on endless papers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that time has shown that Knuth were right in documentation needing to be better, but I also think that the large amount of explaining he was envisioning has turned out not to be good enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The crucial observation is that programmers do not like to do work more than once, and documentation is doing the work twice.  First explaining it to the computer, and then to the humans.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This implies that the explanation to the computer need to be good enough to work for the humans too.  This again requires the languages used to be concise and expressive enough for the points to be made not to drown in petty details.   This allows the programmer to explain &quot;how&quot; to both computer and human.  What is missing is then the &quot;why&quot;s.  This is what goes in documentation along with the actual programs.   In Java you have Javadoc which allows you to embed HTML in your programs which is then pulled out, organised, prettyfied, and made into a coherent whole &lt;em&gt;presenting&lt;/em&gt; the documentation.  Less work!   The Java-folks made a good example with the Java API which is some of the best documentation available online today.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The test driven development movement (TDD) goes as far as to encourage documenting program usage by writing testcases which provides real-world examples of how to use &lt;em&gt;your&lt;/em&gt; code along with what result can be expected.  A single page of code can serve as documentation for another programmer.  &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class MoneyTest extends TestCase {&#xA;    //…&#xA;    public void testSimpleAdd() {&#xA;        Money m12CHF= new Money(12, &quot;CHF&quot;); &#xA;        Money m14CHF= new Money(14, &quot;CHF&quot;);        &#xA;        Money expected= new Money(26, &quot;CHF&quot;);&#xA;        Money result= m12CHF.add(m14CHF);    &#xA;        Assert.assertTrue(expected.equals(result));  &#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://junit.sourceforge.net/doc/testinfected/testing.htm&quot; rel=&quot;nofollow&quot;&gt;http://junit.sourceforge.net/doc/testinfected/testing.htm&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can see excerpts of the Kent Beck book on the subject at &lt;a href=&quot;http://books.google.dk/books?id=goE1TL0u0dUC&quot; rel=&quot;nofollow&quot;&gt;http://books.google.dk/books?id=goE1TL0u0dUC&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might also find this an amusing work of literature (pasted in just a part):  &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;dear; (char)lotte--;&#xA;    for(get= !me;; not){&#xA;    1 -  out &amp;amp; out ;lie;{&#xA;    char lotte, my= dear,&#xA;    **let= !!me *!not+ ++die;&#xA;        (char*)(lie=&#xA;&#xA;&quot;The gloves are OFF this time, I detest you, snot\n\0sed GEEK!&quot;);&#xA;    do {not= *lie++ &amp;amp; 0xF00L* !me;&#xA;    #define love (char*)lie -&#xA;    love 1s *!(not= atoi(let&#xA;    [get -me?&#xA;        (char)lotte-&#xA;&#xA;(char)lotte: my- *love -&#xA;    'I'  -  *love -  'U' -&#xA;    'I'  -  (long)  - 4 - 'U' ])- !!&#xA;    (time  =out=  'a'));} while( my - dear&#xA;    &amp;amp;&amp;amp; 'I'-1l  -get-  'a'); break;}}&#xA;        (char)*lie++;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://ioccc.org/1990/westley.c&quot; rel=&quot;nofollow&quot;&gt;http://ioccc.org/1990/westley.c&lt;/a&gt; (it is hilarious)&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-17T10:27:17.933" />
  <row Id="12524" PostTypeId="1" CreationDate="2010-10-17T10:53:50.150" Score="8" ViewCount="609" Body="&lt;p&gt;I'm looking forward to delving into the .NET framework but most mobile applications seem to be developed in Java. I'll most probably be targeting the less pricier phones like Nokia and motorolla not android or iphone OS. Can I do these stuffs in C#?&lt;/p&gt;&#xA;" LastActivityDate="2010-10-19T04:41:48.000" Title="Should I learn java for mobile application development or will C# just do?" Tags="&lt;java&gt;&lt;c#&gt;&lt;mobile&gt;" AnswerCount="7" FavoriteCount="2" />
  <row Id="12525" PostTypeId="2" ParentId="6067" CreationDate="2010-10-17T10:55:04.720" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;LLVM IR&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's kind of an assembly language, though it's cross platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's minimalist (31 instructions if I recall correctly) yet Turing complete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The LLVM framework is really great, but I think I cannot use it fully if I am not able to (at least) read the IR that is produced (at least for small outputs).&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2010-10-17T10:55:04.720" CommunityOwnedDate="2010-10-17T10:55:04.720" />
  <row Id="12526" PostTypeId="2" ParentId="12524" CreationDate="2010-10-17T11:17:35.960" Score="1" ViewCount="" Body="&lt;p&gt;Cant specifically tell about Motorolla or Nokia but you need to keep in mind what is the platform these phone's support. You would be better of developing in Java as it is a more popular platform and need not depend only on Windows mobiles. One more thing C# is so shamelessly close to Java that a cross compiler does the trick for Desktop apps may be this applies to mobile apps too.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-17T11:17:35.960" CommentCount="1" />
  <row Id="12527" PostTypeId="2" ParentId="12524" CreationDate="2010-10-17T11:38:01.297" Score="-1" ViewCount="" Body="&lt;p&gt;If you want to develop for iPhone, you should currently forget about Java and learn Objective C instead.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-17T11:38:01.297" CommentCount="5" />
  <row Id="12528" PostTypeId="1" CreationDate="2010-10-17T11:54:37.243" Score="8" ViewCount="213" Body="&lt;p&gt;You probably know the list of open source licenses officially approved by the OSI. Most notably I guess would be the GPL, MIT, [insert your favorite license here].&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recently ran into a project which although was open source (the creator made all source code available), was not officially open source under one of those official licenses. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;It released the source, but made no promise to release the source in the future. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It allowed modification suggestions, but made no promises to accept patches and disallowed external distribution of externally-patched versions. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It allowed the use of the software in commercial or paid projects, but disallowed the sale of the software itself. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I suppose it could be called &quot;available source&quot; not open source as we like to think of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can see why the management team of a company wouldn't want to do business with this software. They can't fork it, they can't sell it, they can't create their own version of the software and distribute it or sell it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But would it matter to you as part of a software engineering team who's just using this software? I can still get my work done with it, I can use it in a project for which I'm paid (but I can't sell the software itself, which I'm not in the business of doing anyway), and I can make changes to the code to make it behave differently for my needs (but I can't make those modifications public), and if I do want those modifications officially made available to others, the approval is up to the project itself and they choose whether to incorporate them in an official release or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So we know that a company that wants to base its business on this &quot;available source&quot; software can't do that, but as someone from the software engineering team, would those differences matter to you or do they seem less relevant?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Curious what others think of this.&lt;/p&gt;&#xA;" OwnerUserId="5571" LastActivityDate="2010-12-27T13:57:30.067" Title="Does it matter to you that a software is &quot;available source&quot; but not &quot;open source&quot;" Tags="&lt;web-development&gt;&lt;open-source&gt;&lt;software&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="12529" PostTypeId="2" ParentId="12522" CreationDate="2010-10-17T11:56:17.520" Score="3" ViewCount="" Body="&lt;p&gt;My monitor says &quot;Samsung SyncMaster 2494hm&quot;. It features a joint that lets you turn it 90 degrees so that instead of standard number of ridiculously long lines (16:9) you can see an extra amount of standard long lines (9:16) at once. A definitive advantage in reading text and code, IMO.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-17T11:56:17.520" />
  <row Id="12530" PostTypeId="2" ParentId="12528" CreationDate="2010-10-17T11:58:04.603" Score="2" ViewCount="" Body="&lt;p&gt;The question for this and any other external library is &lt;em&gt;maintenance&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the lifespan of your application and what is the apparent lifespan of this library?  Yours should hopefully be the shortest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Who will do bug fixes for this library?  As it looks from here, your company should explicitly allocate resources in the future for maintaining this software, as you cannot rely on any other fixing bugs for you.  You cannot share the maintenance burden with anybody else since you cannot share the source.  Want to hunt down an elusive race condition bug in code you don't know?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This thought alone might make the library too expensive to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This might be irrelevant if the library is very solid and robust and easy to work with on the source level, but my experience is that the peer pressure of true open source projects simply make the code better because you tend to do your best then.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I would think very careful about if I would adopt this or any other external code, since the whole reason for using other peoples code is that &lt;em&gt;you don't have to deal with it yourself&lt;/em&gt;.    Also think of future maintainers - you should do fire drills changing code in the library to see if it can be done at all.  There might be some VERY nasty surprises here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you at liberty to discuss the library in question?&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-10-17T12:05:16.180" LastActivityDate="2010-10-17T12:05:16.180" />
  <row Id="12531" PostTypeId="2" ParentId="9539" CreationDate="2010-10-17T12:10:07.410" Score="1" ViewCount="" Body="&lt;p&gt;I expect that we will climb one more abstraction level up, in the sense that we will write programs unaware of the specific physical machines they will run on, or of how many different threads of execution will be needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Current examples of this trend include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Google's map/reduce infrastructure&lt;/li&gt;&#xA;&lt;li&gt;Web client programming, where the &quot;proper&quot; way to do things is to avoid having hardware/software requirements but instead try to deduce what functionality to launch by querying the run-time environment (aka graceful degradation).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I expect that this trend will drive a stronger stratification in programming skills, as others have pointed out. Each additional abstraction layer makes it harder to be knowledgeable enough about each layer to make meaningful contributions. Even now you'd have a hard time finding a kernel developer who can write high-quality web applications, or vice versa.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-10-17T12:10:07.410" />
  <row Id="12532" PostTypeId="2" ParentId="12522" CreationDate="2010-10-17T12:13:43.390" Score="8" ViewCount="" Body="&lt;p&gt;I cannot speak for any monitor as such, but I have been very happy with my pivotable Dell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would, however, mention to you that external things might be very significant here:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Size of screen, how much  must you move your head to see from one end to the other.  Too large a screen may simply be hard to see all at once.&lt;/li&gt;&#xA;&lt;li&gt;Lighting.  You need unintrusive, indirect lighting,   Many modern screens reflect a &lt;em&gt;lot&lt;/em&gt; and may make ceiling lamps reflections too annoying.  A straight down light gives good working conditions.&lt;/li&gt;&#xA;&lt;li&gt;Seating - you need it to be placed right for your head.  Monitors are frequently placed too &lt;em&gt;low&lt;/em&gt; so you have to bend in your neck.  That is tiresome over a few years.&lt;/li&gt;&#xA;&lt;li&gt;Bright enough.  You need contrast for easy reading.  There is a reason that physical pages are white, and ink black.&lt;/li&gt;&#xA;&lt;li&gt;Taller than wide.   For coding the most important feature is &quot;how many lines can I see at once&quot;, which implies you need a tall screen, not a wide one.  Get one that can be pivoted. This also avoids the cheapest models which you want - this is not the right place to save.  For a very big screen (&gt;24&quot;) you may want to skip on this as it gives you the normal layout in IDE's and such to work well.&lt;/li&gt;&#xA;&lt;li&gt;Use a good typeface for what you see.  For Windows this is hands down the Consolas font!  For XP it can be downloaded with the PowerPoint 2007 viewer.  Don't ever think about using non anti-aliased fonts again.  The Mac fonts are pretty good as-is.  For Linux there is Inconsolata.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(and, oh, the joy of not having to mentioning having high enough vertical refresh frequency)&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-27T06:44:03.627" LastActivityDate="2010-10-27T06:44:03.627" CommentCount="6" />
  <row Id="12533" PostTypeId="2" ParentId="12416" CreationDate="2010-10-17T12:15:04.987" Score="3" ViewCount="" Body="&lt;p&gt;Some world famous research labs:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;CSAIL at MIT (computer science and artificial intelligence)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SEI at Carnegie Mellon (Software Engineering Institute)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Robotics Institute at Carnegie Mellon&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Xerox PARC (influential in the computer/pc revolution)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Max Planck Institute for Informatics (Germany)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;CWI, Netherlands (programming languages, software modeling)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;NASA Jet Propulsion Lab&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sandia National Lab (high performance computing)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;National Center for Supercomputing Applications at UIUC (home of Mosaic, the first web browser)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Robotics lab at Tohoku University, Japan&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Graphics group at Univ of Utah (has spun off many famous graphics companies and shading and rendering techniques such as Phong shading, z-buffer, texture mapping)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is just a short list..&lt;/p&gt;&#xA;" OwnerUserId="4378" LastActivityDate="2010-10-17T12:15:04.987" CommentCount="2" />
  <row Id="12534" PostTypeId="2" ParentId="12416" CreationDate="2010-10-17T13:12:37.607" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://nowlab.cse.ohio-state.edu/&quot; rel=&quot;nofollow&quot;&gt;Network-Based Computing Lab&lt;/a&gt; at Ohio State University.&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-17T13:12:37.607" />
  <row Id="12535" PostTypeId="2" ParentId="12528" CreationDate="2010-10-17T13:14:25.950" Score="4" ViewCount="" Body="&lt;p&gt;For projects which would have had to develop from scratch the functionality provided by this software, it's a definite convenience not to do so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But whether a comparable open source package would be better depends on other factors:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;will it be used to provide some service or bundle it as a part of another product?&lt;/li&gt;&#xA;&lt;li&gt;do they have the resources to enhance and maintain the product independently?&lt;/li&gt;&#xA;&lt;li&gt;is there a competitive advantage to use this software over the open source version (either in the code or the project management)?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Answering &lt;em&gt;no&lt;/em&gt; to any of these factors indicates the OSS is a better choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the time, the code itself isn't the determining factor. One needs to examine the bigger picture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;SIDEBAR&lt;/strong&gt; OSS projects can't &lt;em&gt;legally&lt;/em&gt; promise they'll keep future versions open, or that there will be future versions. That's one reason why having an open license is so advantageous. Also, OSS projects aren't required to accept patches from contributors (particularly without a transfer of ownership or rights).&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-17T13:14:25.950" />
  <row Id="12536" PostTypeId="2" ParentId="6067" CreationDate="2010-10-17T13:42:44.927" Score="1" ViewCount="" Body="&lt;h2&gt;Smalltalk&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Heard a lot about the language. One of the languages from which C++ got inspiration.&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="82" LastEditorDisplayName="" LastEditDate="2010-10-27T20:28:59.483" LastActivityDate="2010-10-27T20:28:59.483" CommunityOwnedDate="2010-10-17T13:42:44.927" CommentCount="2" />
  <row Id="12537" PostTypeId="2" ParentId="12515" CreationDate="2010-10-17T14:06:40.253" Score="0" ViewCount="" Body="&lt;p&gt;No, code is not literature (or even art). Saying it is, only shows that you either do not know what code is or what literature is. Since this is a forum for programmers, my bet is on the second. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The original meaning of art as techne seems to warrant the analogy. The analogy can be reinforced by the observation that not only qualities such as imagination and creativity are attached to the craft of churning out code, but also that (sometimes intense) aesthetic feelings are attached to it. But much the same can be said about almost any human activity from playing soccer to building chairs. A study of literature, or more precisely, of the progressive element of literature that is literary criticism, will make you see very quickly where the analogy breaks and fails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In medieval times, the typical hero of the popular imagination would be the knight or the saint. With the romantic revolution, the artist occupied the place of the knight or the saint in the stock of heroes, or higher types of living that humans can attain. At the beginning of 21st century, it can be ranked as a veritable cultural obsession: everyone and their dog wants to be an &quot;artist&quot;. Producing maintainable, readable, robust code is no longer enough; vanity, hubris and ambition demands more, a criteria for separating the so-so programmers from the true &quot;genius&quot;, the masses from the elite of the chosen ones: the artist-mythology is always up for grabs.&lt;/p&gt;&#xA;" OwnerUserId="4790" LastActivityDate="2010-10-17T14:06:40.253" CommentCount="14" />
  <row Id="12538" PostTypeId="2" ParentId="9048" CreationDate="2010-10-17T14:27:18.790" Score="1" ViewCount="" Body="&lt;p&gt;Spend more time hanging out places where people like Java, such as &lt;a href=&quot;http://www.javaranch.com&quot; rel=&quot;nofollow&quot;&gt;http://www.javaranch.com&lt;/a&gt; where they welcome beginners and experienced java programmers alike.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're going to master something - and Java is worth knowing at least as another tool in  your toolkit - you gotta associate with positive happy productive people already doing it.&lt;/p&gt;&#xA;" OwnerUserId="4280" LastActivityDate="2010-10-17T14:27:18.790" />
  <row Id="12539" PostTypeId="2" ParentId="262" CreationDate="2010-10-17T14:39:14.240" Score="1" ViewCount="" Body="&lt;p&gt;I suspect all languages eventually go through a phase where pundits will say &quot;[Language] is the COBOL of the [insert decade here]&quot;.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java has become a standard tool, exclusively or one of the main tools, in a number of areas of software development.  Its VM is popular as a platform upon which to build new languages.   It'll be around way too long just from its massive inertia even as newer better languages become popular.  &lt;/p&gt;&#xA;" OwnerUserId="4280" LastActivityDate="2010-10-17T14:39:14.240" CommunityOwnedDate="2011-03-14T15:05:05.090" CommentCount="1" />
  <row Id="12540" PostTypeId="1" CreationDate="2010-10-17T14:53:18.873" Score="8" ViewCount="1073" Body="&lt;p&gt;I consider an e-reader a software development tool and would like to hear some opinions on reading technical e-books. Questions that I have are things like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;What are the usability issues you have experienced with e-books as opposed to physical books, what are the advantages/disadvantages of both?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;What experiences have people had with eye-strain on tablets/PC as compared to an e-ink based reader?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;What are people's specific experiences with the Kindle as a technical e-book reader? Does the screen size impact readability? Have you had any other concerns/issues?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Any other experiences/issues with reading technical e-books...resolution of text/diagrams; ability to keep a page open while referencing another, etc...?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Any suggestions as to solutions for any of the issues encountered with reading e-books on the device with the issue?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;P.S. I would like to hear people's actual experiences, and why/how they believe whatever device is currently a superior tool for reading e-books.&lt;/p&gt;&#xA;" OwnerUserId="5511" LastActivityDate="2010-10-18T04:25:20.237" Title="What Tool Do You Use For Reading Technical Ebooks?" Tags="&lt;tools&gt;&lt;books&gt;&lt;reading&gt;" AnswerCount="6" FavoriteCount="3" />
  <row Id="12541" PostTypeId="2" ParentId="12540" CreationDate="2010-10-17T15:04:19.190" Score="5" ViewCount="" Body="&lt;p&gt;You might find this slashdot article interesting, as it describes why the Kindle is not as good as a physical book:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://mobile.slashdot.org/story/10/05/25/1713242/Amazon-Kindle-Fails-First-College-Test?from=rss&quot; rel=&quot;nofollow&quot;&gt;http://mobile.slashdot.org/story/10/05/25/1713242/Amazon-Kindle-Fails-First-College-Test?from=rss&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;At Princeton University and&#xA;  Portland-based Reed College, a small&#xA;  liberal-arts institution, students&#xA;  praised the Kindle for its long&#xA;  battery life, paper savings and&#xA;  portability. They then complained they&#xA;  couldn't scribble notes in the&#xA;  margins, easily highlight passages or&#xA;  fully appreciate color charts and&#xA;  graphics.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;You don't read textbooks in the same&#xA;  linear way as a novel,&quot; said Roesner,&#xA;  23, a graduate student in computer&#xA;  science and engineering. &quot;You have to&#xA;  flip back and forth between pages, and&#xA;  the Kindle is too slow for that. Also,&#xA;  the bookmarking function is buggy.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The O'Reilly Safari online reading facility is not bad, but still a lot less interesting than a real book.  Its primary advantage is that I can subscribe to books instead of having to get permission to order them.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-17T15:04:19.190" />
  <row Id="12542" PostTypeId="2" ParentId="262" CreationDate="2010-10-17T15:06:13.353" Score="4" ViewCount="" Body="&lt;p&gt;I'm primary a .NET developer, although I do work with other languages (including Java) as needed to get the task at hand. As such, based upon my own experience working with the language, I don't think it's going away anytime soon, here's why:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Current Install Base&lt;/strong&gt; - There are enough programs out there that are going to need long term support that there is a reason for new developers to learn the language. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Use in the Academic Setting&lt;/strong&gt; - Most colleges and universities are using as one of their introductory languages to teach OOP and other fundamental concepts, this means that there will continue to be new developers graduating and entering the workforce that will be familiar with the language when they get started.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;It's Cross-Platform Nature&lt;/strong&gt; - An obvious one, but the fact that it is cross-platform is a big deal, even more so as smart phones at support for Java to new devices. The prospect of only having to maintain one code base, but being able to deploy (i.e. sell) apps for multiple platforms is going to be a bit deal. Can you imagine if iOS and Droid both supported apps written in Java?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;No Strong Competitor&lt;/strong&gt; - At this point in time I can't name a language that I consider a strong competitor to Java. Sure C# is starting to show up on more platforms thanks to Mono, but that's not quite the same as having the same cross platform that Java has. Granted there are a number of languages that do what Java does (and it some cases better) they tend to be tailored to what they are doing and for some large projects it doesn't make sense to have a ton of languages to maintain if you can accept any performance hit that Java might have.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-10-17T15:06:13.353" CommunityOwnedDate="2011-03-14T15:05:05.090" />
  <row Id="12543" PostTypeId="2" ParentId="12540" CreationDate="2010-10-17T15:06:48.607" Score="4" ViewCount="" Body="&lt;p&gt;Well, since most of the time I spend in front of my laptop, that naturally defaults to its screen for reading. I never had any problems with eye strain, nor vision, but that may not work for everyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from that, if it is something I know I'm going to be reading for a longer period of time, I usually just print the thing out (and bind it properly, not those spiral bindings, but a real hardcover one &amp;lt;-- notice; this only goes for books I know I'm gonna be keeping for a longer time on the slelf).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from that, I tried Kindle as a reader, and was more than satisfied with it - no problems whatsover, and the screen is really nice to look at. But it just didn't stick with me ... out of habit, maybe, I don't know ... that is not saying it isn't a nice reader. It's great actually. I just don't spend that much time away from my machine for it to be useful. It also lacks the feature that I have with real books - notes in the margins (oh, man - you should see some of the older ones. Uhmm, well, maybe you shouldn't.). Also, page turning speed can be a bit bothersome sometimes.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-17T15:06:48.607" />
  <row Id="12544" PostTypeId="1" CreationDate="2010-10-17T15:36:34.730" Score="4" ViewCount="744" Body="&lt;p&gt;It seems that Google App Engine and GWT is focused on Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will Google ever be using Node.js/Javascript on server/client side instead of abstracting it away with Java?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then we don't need a Java interpreter, and they can focus 100% on their V8 engine.&lt;/p&gt;&#xA;" OwnerUserId="5574" LastActivityDate="2011-05-17T20:47:14.720" Title="Google App Engine for Node.js/Javascript?" Tags="&lt;google&gt;&lt;javascript&gt;&lt;google-app-engine&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="12545" PostTypeId="2" ParentId="9048" CreationDate="2010-10-17T15:39:18.717" Score="1" ViewCount="" Body="&lt;p&gt;Java is good with a good job opportunities too..&#xA;Java is being evolving, I don't think it gonna die soon!&lt;/p&gt;&#xA;" OwnerUserId="5575" LastActivityDate="2010-10-17T15:39:18.717" CommentCount="3" />
  <row Id="12546" PostTypeId="2" ParentId="12472" CreationDate="2010-10-17T15:56:38.090" Score="10" ViewCount="" Body="&lt;p&gt;Sometimes I find myself in meetings with customers who keep saying &quot;...and could you ... &quot; , or &quot; ... and could it also ... &quot; over and over. At some point I smile sweetly and say &quot;I'm a consultant. Whenever you ask me if something can be done, I am always going to say yes. But for a lot of these, I also have to add: &lt;em&gt;you did bring your chequebook, right?&lt;/em&gt;&quot; They laugh but they also get the point. It's not just about what can be done, it's about what it will cost, and if it's worth it for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to take your example, voice recognition is actually three problems - one is the actual noticing that people said something and recognizing the sounds, second is having your UI and business logic sufficiently pulled apart that you can build a verbal ui in place of a visual one, and third is natural language processing. NLP is super hard, but did the client say &lt;em&gt;and none of that File, Save nonsense with pauses between menu commands, we want the system to understand &quot;ok please save that for me in case I lose my work?&quot;&lt;/em&gt; I bet they didn't. When they ask for the moon, be sure to find out if they would be ok with a reflecting pond that shows them the image of the moon every night. After a while it becomes second nature to rephrase requests into things that are humanly possible, and to ballpark estimates (whether you share them aloud or not) so that you know how much they are asking for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clients ask me to re-invent Excel, Project, and Crystal Reports all the time. For those folks I say &quot;A copy of Excel only costs a few hundred dollars, but it represents hundreds of developer-years of effort. You aren't going to fund that and I wouldn't want to do it even if you did.&quot; You may want to keep a sentence like that in your pocket for the people who reject the reflecting pond and demand the actual moon.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-17T15:56:38.090" />
  <row Id="12547" PostTypeId="2" ParentId="12524" CreationDate="2010-10-17T15:57:03.467" Score="5" ViewCount="" Body="&lt;p&gt;No, C# won't do. You need to learn Java, and not J2SE but the J2ME because most low-end mobile phones only support J2ME. However, you might want to consider Android again because it's really becoming popular even with low-end phone. Anyway, the language for J2ME and Android is both Java.&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-10-17T15:57:03.467" />
  <row Id="12548" PostTypeId="2" ParentId="9062" CreationDate="2010-10-17T15:57:51.427" Score="1" ViewCount="" Body="&lt;p&gt;If you use threads your code will have errors and be impossible to debug. While depending on the experience of the dev, tools being used, etc... there may be a little truth to this, often it seems to be caused by fear of learning something new. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ironically I've heard the same people argue for adding large numbers of threads to under performing applications and ignoring the number of processors available on the target system. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This same superstition can be applied to clustering and any other scaling mechanism that relies on asynchronous events.&lt;/p&gt;&#xA;" OwnerUserId="5576" LastEditorUserId="5576" LastEditorDisplayName="" LastEditDate="2011-04-06T08:22:07.350" LastActivityDate="2011-04-06T08:22:07.350" CommunityOwnedDate="2010-10-17T15:57:51.427" CommentCount="3" />
  <row Id="12549" PostTypeId="2" ParentId="12524" CreationDate="2010-10-17T16:02:56.263" Score="1" ViewCount="" Body="&lt;p&gt;If you want to develop for Windows Phone 7, C# is perfect (VB.NET is coming soon.) You can leverage any Silverlight or XNA knowledge you have, too. I have no idea whether the platform will succeed, but why not refine your app using a language you know, then port it to other languages once you're confident in your user experience, logic, calculations etc? The emulator is apparently very good, and can be supplemented with accelerometer-emulator and gps-emulator to do everything except making a phone call. (And really, who uses smartphones for making calls?)&lt;/p&gt;&#xA;" OwnerUserId="285" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2010-10-17T18:07:51.673" LastActivityDate="2010-10-17T18:07:51.673" CommentCount="1" />
  <row Id="12550" PostTypeId="2" ParentId="10816" CreationDate="2010-10-17T16:03:54.143" Score="5" ViewCount="" Body="&lt;p&gt;Gödel, Escher, Bach is a very unusual book.  A lot of concepts are presented and need a LOT of digestion to appreciate.  All you need to know is presented in the book, and you might find the explanation of Gödels Theorem (which is done quite well) and the various Turing-concepts fascinating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also the way he narrates a story similar to a six-part fugue still intrigues me.  And all the self-references, and the ALMOST-self references...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A fantastic book!  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(and for fellow readers, I found the real ending to the book :) )&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-17T16:03:54.143" />
  <row Id="12551" PostTypeId="2" ParentId="262" CreationDate="2010-10-17T16:06:29.983" Score="2" ViewCount="" Body="&lt;p&gt;Java will not completely lose it's relevance for many more years, but it is certainly on a decline. If recent developments will affect that or if Oracle can change that remains to be seen. But I do think that one day I might be like COBOL, no new projects, but never quite dying either.&lt;/p&gt;&#xA;" OwnerUserId="5179" LastActivityDate="2010-10-17T16:06:29.983" CommunityOwnedDate="2011-03-14T15:05:05.090" />
  <row Id="12552" PostTypeId="2" ParentId="12439" CreationDate="2010-10-17T16:20:47.660" Score="0" ViewCount="" Body="&lt;p&gt;If you are subclassing &lt;code&gt;A&lt;/code&gt; to class &lt;code&gt;B&lt;/code&gt; but nobody cares if &lt;code&gt;B&lt;/code&gt; inherits from &lt;code&gt;A&lt;/code&gt; or not, so that's the sign that you might be doing it wrong.&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-10-17T16:20:47.660" />
  <row Id="12553" PostTypeId="2" ParentId="262" CreationDate="2010-10-17T16:54:12.163" Score="10" ViewCount="" Body="&lt;p&gt;Java will be relevant for the foreseeable future, even if you define relevant to only include new code, not legacy maintenance mode.  Yes, the language sucks and treats its programmers like naughty children instead of consenting adults and hasn't had a facelift since the Stone Age.  On the other hand:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Java has some awesome libraries.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The JVM is an awesome platform.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You don't have to program in Java to use these libraries, now that there's been a proliferation of JVM languages.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;IMHO the way things will evolve is that Java in the JVM world will become what C is in the natively compiled world.  People will use Scala, Jython, Groovy, etc. in day to day coding, but will keep calling old, crufty Java code from these languages for eternity.  Certain performance-critical code might still be written in Java, because it's probably the lowest-level, most efficient JVM language.  Old libraries will need new features added.  Therefore, Java will remain highly relevant even if it's not used by the average programmer day to day.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-17T16:54:12.163" CommunityOwnedDate="2011-03-14T15:05:05.090" />
  <row Id="12554" PostTypeId="2" ParentId="9048" CreationDate="2010-10-17T17:07:17.790" Score="1" ViewCount="" Body="&lt;p&gt;Simply saying &quot;Java is slow&quot; means nothing. To be able to say whether Java is slow, fast, or somewhere in between, you have to define what you mean by &quot;slow&quot; (and, though to a lesser extent, what you mean by &quot;Java&quot;). You also have to define what sort of tasks you're interested in looking at, and what sort of environment you're comparing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without that, people claiming either that &quot;Java is slow&quot; or that &quot;Java is &lt;strong&gt;not&lt;/strong&gt;&quot; slow!&quot; are right in the same league with a couple of three year olds, one saying &quot;You're ugly&quot; and the other replying &quot;Am not 'cause you're stupid.&quot;&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-17T17:07:17.790" CommentCount="1" />
  <row Id="12555" PostTypeId="2" ParentId="12515" CreationDate="2010-10-17T17:37:51.230" Score="1" ViewCount="" Body="&lt;p&gt;What elevates any human activity, be it constructing a building, a costume, or some communiqué, to an art is that it produces a sense of appreciation or other emotional response on the part of the observer for the creativity and imagination used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you ever seen code that produces an emotional response in you for the way it was crafted? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you seen code that has no practical purpose, but has appeal simply for its existence?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you seen code that made you want to share it with others and point out some quality that was only significant in its source form?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just because formal outlets for literary criticism of source code aren't well-known (if they even exist) is not evidence that it isn't a valid art form. Only that one hasn't been established, or you are not aware of any.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We just need to start hanging up source code in coffee shops and such.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-17T17:37:51.230" />
  <row Id="12556" PostTypeId="1" CreationDate="2010-10-17T18:06:38.283" Score="12" ViewCount="376" Body="&lt;p&gt;I'm a student at the University of South Florida who's frustrated with the educational environment in the Computer Science program. Right now, I'm taking &quot;Program Design.&quot; I should be learning how to organize my source code into functions and modules in order to make my programs readable and maintainable; instead, I'm learning about arrays and recursion in C. Next semester, I have to take &quot;Object-Oriented Design,&quot; which is taught through C++ (&lt;em&gt;shudder&lt;/em&gt;.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two years ago, I fell in love with programming, and I've been learning as much as I could since then. The prospect of taking another C++ class bores me almost to tears. For that reason, I thought I would start a programming club in order to meet similarly ambitious students, learn new languages, discuss software development topics, and work with other students developers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I'm beginning to realize that there may not be any other students who share my software development experience. It's not because of a lack of motivation but a lack of opportunity: I know of only one other programming class (&quot;Programming Languages&quot;) and no classes on real-world software development. Everybody else only has experience writing trivial scripts in C and C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've realized that if I want to work with other student software developers, I'm going to have to train them myself. Now, I'm planning to make the club a software development bootcamp, teaching members how to develop software with modern tools and languages. Obviously, starting an unofficial software development course is a monumental task with many possible approaches. My question to you, dear reader, is &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What's my plan of attack?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;lecture the club myself, trying to balance club work with homework?&lt;/li&gt;&#xA;&lt;li&gt;ask the CS faculty to teach on topics within their expertise which may be less than relevant to members?&lt;/li&gt;&#xA;&lt;li&gt;try to find a sympathetic, experienced developer inside or outside the school who can share my workload?&lt;/li&gt;&#xA;&lt;li&gt;show video lectures (from &lt;a href=&quot;http://ocw.mit.edu/&quot; rel=&quot;nofollow&quot;&gt;MIT OpenCourseWare&lt;/a&gt;, &lt;a href=&quot;http://www.youtube.com/user/GoogleTechTalks&quot; rel=&quot;nofollow&quot;&gt;Google Tech Talks&lt;/a&gt;, etc)?&lt;/li&gt;&#xA;&lt;li&gt;hold hands-on programming workshops?&lt;/li&gt;&#xA;&lt;li&gt;assign homework?&lt;/li&gt;&#xA;&lt;li&gt;do something else?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4711" LastActivityDate="2010-11-18T15:33:39.180" Title="How can I bootstrap a software development community at my school?" Tags="&lt;education&gt;&lt;school&gt;&lt;teaching&gt;&lt;community&gt;" AnswerCount="9" CommentCount="23" FavoriteCount="3" />
  <row Id="12557" PostTypeId="2" ParentId="9048" CreationDate="2010-10-17T18:45:33.117" Score="1" ViewCount="" Body="&lt;p&gt;Languages are like relatives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People love to complain about them, but that's what they stick with.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-10-17T18:45:33.117" />
  <row Id="12558" PostTypeId="2" ParentId="12556" CreationDate="2010-10-17T18:51:39.883" Score="3" ViewCount="" Body="&lt;p&gt;Since everyone in your club is coming voluntarily, you need to make it interesting and modivating. And homework isn't exactly modivating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Teaching anybody is hard, but why not try teaching in a hands off kind of way with a goal at the end? Essentially at first you get everbody togeather and come up with a group project and a language. The project needs to be interesting and be able to show visible progress but not too hard. Once you've got the language nailed down, you teach them the basics (syntax, packages/namespaces, classes, static/dynamic typing, etc). You then give them resources (books, online tutorials, online documentation), an easy way to get a hold of you, and a specific part of the project to work on. Each person then works on the project in there spare time, consulting the documentation and you as needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whats the advantage of this process? &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;People don't get bored listening to you or somebody else drone on about something every single meeting&lt;/li&gt;&#xA;&lt;li&gt;People learn how to self teach, a very important real world skill&lt;/li&gt;&#xA;&lt;li&gt;You aren't overcommitting yourself since you aren't the sole resource of knowledge&lt;/li&gt;&#xA;&lt;li&gt;You don't have to know the whole language before you can teach it since you only need to introduce them to the language. And when they need to ask you about something, you can quickly research it. You do however need to be a little ahead of everybody else, since some things require knowing whats 5 steps ahead&lt;/li&gt;&#xA;&lt;li&gt;Your creating something, which tends to motivate people&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The only way to see if it works is to try it out.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-10-17T18:51:39.883" CommentCount="2" />
  <row Id="12559" PostTypeId="2" ParentId="262" CreationDate="2010-10-17T18:57:20.610" Score="1" ViewCount="" Body="&lt;p&gt;There have been some trends in the Java world -- particularly the absolutely brilliant adoption of JRuby and Rails or Groovy and Grails -- that indicate that Java still has a lot of life in it. Then there's the Android situation, which is also in Java's favor. As recently as Snow Leopard on Mac, certains changes -- now supporting Midi with no external drivers -- make it so that it's also gaining in possibilities on the desktop. And Swing apps finally look 99% native (or at least there are a lot of nutcases that believe this now: 10 years ago there were none).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java had an amazing moment in the 90s where it seemed like it was the solution for everything. Now it's clear that nothing is the solution for everything. .Net is kicking ass, and Ruby, and Python, and PHP (with goofy CMS solutions and entire frameworks that people get married to for life!), and Java (with Groovy JRuby JPython whatever), and a whole bunch more. The answer is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Expect a Pluralistic Universe&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will Java continue to play a major role in this Universe? If you mean &quot;languages that run on the JVM&quot; the answer is most definitely. If the answer is just Java (language, JVM, etc.), then the answer is &quot;maybe not so major.&quot; But come on, even Cobol is still hanging in.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-10-17T18:57:20.610" CommunityOwnedDate="2011-03-14T15:05:05.090" />
  <row Id="12560" PostTypeId="2" ParentId="11721" CreationDate="2010-10-17T19:09:33.670" Score="1" ViewCount="" Body="&lt;p&gt;From my own experience (I'm a student at the moment), I've gotta say yes,it is an excuse. Everybody refers to CS as a science that teaches us all the basics of computers, and SE as a special branch in CS that is explicitly teaching programming. Imo, everyone that has BS in CS, has to know how to write good and optimized code (even if programming isn't his/her speciality area). So yes, if I had a almighty position of making such a decision I would force the students to gain good programming skills.&lt;/p&gt;&#xA;" OwnerUserId="5582" LastActivityDate="2010-10-17T19:09:33.670" CommunityOwnedDate="2011-01-19T20:24:19.353" CommentCount="1" />
  <row Id="12561" PostTypeId="2" ParentId="9062" CreationDate="2010-10-17T19:19:56.473" Score="8" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Performant&lt;/em&gt; is a word.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-17T19:19:56.473" CommunityOwnedDate="2010-10-17T19:19:56.473" CommentCount="1" />
  <row Id="12562" PostTypeId="2" ParentId="12279" CreationDate="2010-10-17T19:22:26.713" Score="2" ViewCount="" Body="&lt;p&gt;I would not say important, but, having your own website can be good. Posting some codes/snippets and sharing your views on different topics in a blogish way is nice. It can  lead to new contacts, sharing ideas and maybe you'll get spotted by a potential customer/employer who likes your work, and your personality. Who knows :)&lt;/p&gt;&#xA;" OwnerUserId="5582" LastActivityDate="2010-10-17T19:22:26.713" />
  <row Id="12563" PostTypeId="1" CreationDate="2010-10-17T19:23:07.740" Score="0" ViewCount="114" Body="&lt;p&gt;Which way is the best way: RIA via Silverlight, RIA via Flash\Flex, Ruby\Python, Mobile App Dev(wp7\android), GameDev? Thx&lt;/p&gt;&#xA;" LastActivityDate="2010-10-17T20:31:32.097" ClosedDate="2010-10-17T23:01:53.983" Title="Which way is the best way: Career decision." Tags="&lt;career&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="12564" PostTypeId="2" ParentId="12540" CreationDate="2010-10-17T19:30:02.057" Score="6" ViewCount="" Body="&lt;p&gt;I've been a heavy O'Reilly Safari user for a few years now, so I had already made the transition to digital versions of technical books. I also never made notes inside my books (I keep notes in separate files), so I didn't miss this ability when I transitioned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a kindle 3 for reading e-books. Before that, I had a Cybook Opus. Both of these devices are not suitable for reading pdf's. While they can technically render them, the screen is too small to display content formatted for full page widths, and there is nothing out there that can reformat pdf's with acceptable quality. If your goal is to read pdf's, only large-size screens like the kindle dx or ipad will be suitable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When reading books formatted specifically for the kindle, I find that the reading experience is pleasant enough that I forget it is not paper. The kindle 3 is the first e-reader I've seen where the e-ink screen is on the level of quality of a printed book. I have the leather cover, which folds open like a hardcover book, and the combination is very pleasant to hold (very book-like feeling). The device is light enough and thin enough to not have the clumsiness that some books can have. I also love the fact that it always remembers the page you were on. Paper books can be really annoying that way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For technical books, I exclusively use safari, so I was very pleased when they launched a kindle 3-compatible version of their mobile site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good points about mobile safari books:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pages load fast and are pleasant to read. &lt;/li&gt;&#xA;&lt;li&gt;Content is reformatted for the screen. &lt;/li&gt;&#xA;&lt;li&gt;The page turn keys make it convenient to scroll down the page. &lt;/li&gt;&#xA;&lt;li&gt;Making bookmarks inside of safari is straightforward, and bookmarks are shared with the regular web version (you can also make notes, but I never do).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Downsides:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Awkward navigation between book sections (have to pick out a small link with the D-button)&lt;/li&gt;&#xA;&lt;li&gt;Awkward navigation in general (when you're navigating around the web site, you really notice the lack of a touch screen)&lt;/li&gt;&#xA;&lt;li&gt;Sometimes wifi connectivity is lost for a minute or two, where other devices remain connected. I got the wifi-only version. This is probably one of these &quot;it's just you&quot; problems.&lt;/li&gt;&#xA;&lt;li&gt;Scrolling down the page can leave a little ghosting (due to how the e-ink screen works). I'm not really bothered by this as it is very subtle, but that may not apply to everyone.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Bottom-line for the kindle I can say that it's a very good book reader, even for technical books, but only if the books are formatted specifically for the device, and only as a passive experience. As an interactive device (beyond page flips), it's weak, mostly due to the lack of a touch screen. Whether you like it or not heavily depends on the source of your books, and of the level of interactivity expected.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-10-17T19:30:02.057" CommentCount="1" />
  <row Id="12565" PostTypeId="1" CreationDate="2010-10-17T19:43:05.867" Score="2" ViewCount="694" Body="&lt;p&gt;I been teaching myself C/C++ programming and want to get into Linux programming. I have an old 1GHz Celeron box with motherboard video and 1GB RAM lying around. Which linux distro provides the best &quot;out of box&quot; support (i.e., everything available with minimal configuration) for general programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a side note, I'm currently working my way through &lt;a href=&quot;http://www.linuxfromscratch.org/&quot; rel=&quot;nofollow&quot;&gt;Linux From Scratch&lt;/a&gt;. While an interesting learning experience, I'm not sure if I want that to rely on that as a regular programming platform.&lt;/p&gt;&#xA;" OwnerUserId="5211" LastActivityDate="2010-10-18T11:34:40.717" ClosedDate="2010-10-18T11:45:40.317" Title="Best &quot;out of box&quot; linux distro for general programming?" Tags="&lt;productivity&gt;&lt;linux&gt;" AnswerCount="6" CommentCount="2" />
  <row Id="12566" PostTypeId="1" AcceptedAnswerId="12570" CreationDate="2010-10-17T19:48:22.127" Score="2" ViewCount="132" Body="&lt;p&gt;Sometimes an action is so long or complex that it makes sense to devote an entire class to it, and only expose a single method. What's the best way to name the class and method? I usually do something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class NodeFinder {&#xA;    public static Node Go(...);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;What would you name &lt;code&gt;NodeFinder&lt;/code&gt; and &lt;code&gt;Go&lt;/code&gt;?&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-10-17T20:26:28.327" ClosedDate="2010-10-18T21:43:09.057" Title="How to name a single-purpose class and method" Tags="&lt;naming-conventions&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="2" />
  <row Id="12567" PostTypeId="2" ParentId="12565" CreationDate="2010-10-17T19:49:33.227" Score="2" ViewCount="" Body="&lt;p&gt;Ubuntu is the most popular distro right now, AFAIK. Except for some hardware edge cases (which sadly includes three-monitor setups), it just works out of the box.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other programmers I know tend to prefer Debian.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-10-17T19:49:33.227" />
  <row Id="12568" PostTypeId="2" ParentId="9048" CreationDate="2010-10-17T19:49:43.077" Score="1" ViewCount="" Body="&lt;p&gt;I love Java.  Its hard to beat the on-line community, IDE support, many many libraries and excellent documentation of the language.  Makes overcoming new challenges much easier and enjoyable when it takes such a short time to figure out how to do something.  &lt;/p&gt;&#xA;" OwnerUserId="5319" LastActivityDate="2010-10-17T19:49:43.077" CommentCount="1" />
  <row Id="12569" PostTypeId="2" ParentId="12565" CreationDate="2010-10-17T19:50:55.407" Score="0" ViewCount="" Body="&lt;p&gt;I think nothing beats Ubuntu for &quot;out of the box&quot;. All linux distro's are good for programming as well, it depends on what exactly do you need and if you can't or can have it on that particular linux distro. This is usually not a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would install an Ubuntu variant on a machine like that. Take a look at Lubuntu, Xubuntu and CrunchBang Linux which come with LXDE/Xfce/Openbox. &lt;/p&gt;&#xA;" OwnerUserId="2849" LastEditorUserId="2849" LastEditorDisplayName="" LastEditDate="2010-10-17T19:56:38.933" LastActivityDate="2010-10-17T19:56:38.933" CommentCount="3" />
  <row Id="12570" PostTypeId="2" ParentId="12566" CreationDate="2010-10-17T19:51:29.993" Score="3" ViewCount="" Body="&lt;p&gt;(I think this question belongs to StackOverflow)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you should repeat what the class name meant. &lt;code&gt;NodeFinder&lt;/code&gt; -&gt; &lt;code&gt;FindNode(...);&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-10-17T19:51:29.993" CommentCount="1" />
  <row Id="12571" PostTypeId="2" ParentId="12540" CreationDate="2010-10-17T20:00:46.850" Score="0" ViewCount="" Body="&lt;p&gt;I use my netbook (I currently carry an OCZ Neutrino which I tricked out so that it rivals most laptops in terms of performance). &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It has a matte screen, so I can read&#xA;easily in a variety of lighting&#xA;conditions,  &lt;/li&gt;&#xA;&lt;li&gt;it's small enough to carry around,  &lt;/li&gt;&#xA;&lt;li&gt;and it has an almost&#xA;full-sized keyboard (so that if I&#xA;really wanted to, I could make little&#xA;notes about the book I'm reading)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If I know I'm gonna be keeping a given book around, I usually go out and buy the print edition, or get it printed/bound at staples (they do hardcover binding).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haven't actually tried an e-reader, mainly because all the ones that seem to support PDF reading turn out to suck in various other ways. I considered an iPad, but at $600, that actually costs more than my tricked out netbook for about 1/3 the specs and I really can't justify $600 just for an e-reader.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-10-17T20:00:46.850" />
  <row Id="12572" PostTypeId="1" CreationDate="2010-10-17T20:05:17.660" Score="13" ViewCount="349" Body="&lt;p&gt;I found this question quite interesting before it got closed:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/12512/how-long-does-it-take-you-to-read-an-average-400-page-book-closed&quot;&gt;How long does it take you to read an average 400 page book&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not because I care how long it takes someone to read a book, but more because I'm interested in how people get the knowledge from a book (or I guess other sources) into their brains in the best, most efficient way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I take a multi-pass approach (from my answer to the original question):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Skim through contents, dip in and read anything with an interesting looking heading and finally gawp at any nice diagrams and illustrations. I won't take much in at this stage, but it gives me a mental view of the book (an hour or so at most)&lt;/li&gt;&#xA;&lt;li&gt;First pass through the book, generally I'll read the opening chapters thoroughly for a book that is either very heavy going or introduces something completely new. For books that cover a subject I already know about I'll skim or skip bits that seem trivial. The remainder of the book I'll go through reasonably quickly but not so quickly that I'm just page flipping. (about a week)&lt;/li&gt;&#xA;&lt;li&gt;Not all books that I read make it this far, but if I find a book interesting or useful enough I'll then study it properly. I will go through the book at a slower pace and do some or all of the examples, try out code, etc. I will often skip entire chapters here unless the book is really good (1-3 weeks depending on the book).&lt;/li&gt;&#xA;&lt;li&gt;Finally when I've finished reading it and am reading other books I will often dip into it again and again to cross-reference, compare, look things up, browse, etc - so many of my favourite books don't just end up gathering dust on the bookshelf.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I rarely take notes when reading (although I may do some planning on paper if I'm working through something like a code sample). I've also considered starting to use a personal kanban for organising my progress, but have never quite got around to using that technique. Mindmaps are another thing I like the idea of but rarely do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What other methods to people have? How successful do you find them? Are there any commonly recommended techniques that you feel are a waste of time?&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-18T00:36:55.787" Title="How do you maximise the knowledge that you gain from a programming book?" Tags="&lt;learning&gt;&lt;self-improvement&gt;&lt;books&gt;" AnswerCount="4" FavoriteCount="3" />
  <row Id="12573" PostTypeId="2" ParentId="12572" CreationDate="2010-10-17T20:09:52.680" Score="14" ViewCount="" Body="&lt;p&gt;Do the exercises.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there aren't any, invent some.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-17T20:09:52.680" CommentCount="1" />
  <row Id="12574" PostTypeId="2" ParentId="9621" CreationDate="2010-10-17T20:11:23.260" Score="1" ViewCount="" Body="&lt;p&gt;I would suggest something like Python to get started. There are a number of basics that can be taught in any language such as flow control, functions and variables, and for that purpose an interactive language like Python is a great tool.&lt;/p&gt;&#xA;" OwnerUserId="4153" LastActivityDate="2010-10-17T20:11:23.260" />
  <row Id="12575" PostTypeId="2" ParentId="9621" CreationDate="2010-10-17T20:14:28.177" Score="2" ViewCount="" Body="&lt;p&gt;I saw Scratch demoed the other day by one of its designers, and I am pretty certain that even for a 15-year old it is great to get the basics straight.  It even runs the blocks in parallel so that can be introduced right away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When he is comfortable with that - you can do some quite nice things, and show them off to your friends - you can start with all the boring Hello World things, but frankly I think that the instant gratification in Scratch holds a lot longer than most people think.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-17T20:14:28.177" />
  <row Id="12576" PostTypeId="2" ParentId="12540" CreationDate="2010-10-17T20:16:34.060" Score="1" ViewCount="" Body="&lt;p&gt;I have a sony reader with a couple of technical e-books and here's my experience. I find the size is an issue with technical books more than novels. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The font is small, and hard to read so you almost always have to zoom.&lt;/li&gt;&#xA;&lt;li&gt;When zoomed, pagination is buggered (you'll get the last 2 lines of a page as a 'page' in your reader)&lt;/li&gt;&#xA;&lt;li&gt;Tech books have lots of sidebars and diagrams. These get pushed to other pages and in some cases they don't get rendered at all.&lt;/li&gt;&#xA;&lt;li&gt;Line carriages get buggered in zoom modes sometimes.&lt;/li&gt;&#xA;&lt;li&gt;When zoomed, the page count is often off. Not a big deal, but it's annoying if you're trying to referr back to something (in my case, I have the print copies of the books as well so referring between them can be annoying)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Additionally, finding technical e-books (.pdf) is not as easy as I figured it would be. This might be something that the Kindle has over the other readers.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-17T20:16:34.060" CommentCount="2" />
  <row Id="12577" PostTypeId="2" ParentId="12572" CreationDate="2010-10-17T20:19:21.750" Score="5" ViewCount="" Body="&lt;p&gt;Make sure that you apply some of the techniques in your day-to-day programming as soon as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that if I don't immediately apply things I've learnt I have to re-visit them when I do actually need them.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-17T20:19:21.750" CommentCount="2" />
  <row Id="12578" PostTypeId="2" ParentId="12566" CreationDate="2010-10-17T20:24:40.763" Score="1" ViewCount="" Body="&lt;p&gt;I would suggest (untested)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class NodeFinder implements Callable&amp;lt;Node&amp;gt; {&#xA;     public Node call(...);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The Callable interface is non-static but by doing it this way you get several advantages.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Using the Callable interface instead of a specialized class, allow you to mock the class while testing as well as wrap it with extra code if needed for any reason.&lt;/li&gt;&#xA;&lt;li&gt;Using a Callable allows you to directly utilize all the scheduling and parallelization support available with Executors.  This can allow you to use multiple cores just by feeding a single well-chosen executor with requests.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-17T20:24:40.763" />
  <row Id="12579" PostTypeId="2" ParentId="12566" CreationDate="2010-10-17T20:26:28.327" Score="3" ViewCount="" Body="&lt;p&gt;Sounds like you're using C#, so you could make it an extension method to the class that it would logically make sense for it to belong to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class Graph&#xA;{&#xA;    public List&amp;lt;Node&amp;gt; Nodes { get; set; }&#xA;    /* ... */&#xA;}&#xA;&#xA;public class Node&#xA;{&#xA;    /* ... */&#xA;}&#xA;&#xA;public static class GraphingExtensions&#xA;{&#xA;    public static Node FindNode(this Graph graphToSearch, Node nodeToFind) &#xA;    {&#xA;        /* ... */&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This way you get the physical separation to help keep things clean, without the logical separation for the consumers of your code.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-17T20:26:28.327" CommentCount="2" />
  <row Id="12580" PostTypeId="2" ParentId="12563" CreationDate="2010-10-17T20:31:32.097" Score="2" ViewCount="" Body="&lt;p&gt;All of these cover the same career.  You are expected to as a trained professional to be able to - given a reasonable amount of time to do so - pick any of these technologies up and use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is important is not as much to learn any particular technology but understand the underlying principles so that you know what is possible and reasonable ways to actually do the possible so that you can sit down and say &quot;Ok, I want to do it like this, how can I do it in &lt;em&gt;this&lt;/em&gt; world?&quot;.  If you are currently a student then learn all you can while you can of the basics.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-17T20:31:32.097" />
  <row Id="12581" PostTypeId="1" CreationDate="2010-10-17T20:31:59.640" Score="5" ViewCount="240" Body="&lt;p&gt;I like it when my programming assignments are relatively independent. I like having colleagues around -- but not collaborating on the same code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Independent assignments seem pretty rare in the Java infrastructure kind of work that I've mostly done. But what about other areas of programming? Maybe in the web development area? &lt;strong&gt;Do you have a programming role where you work fairly independently? What technologies are involved?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't an academic question, of course -- I'm proposing picking up some new technologies to fit a niche that I like more. So I'd mostly be interested in using good modern languages and technologies on a job type that is in demand to some extent.&lt;/p&gt;&#xA;" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-10-18T07:00:10.593" LastActivityDate="2010-10-18T11:22:51.180" Title="Programmer roles where you work independently?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;one-man-army&gt;" AnswerCount="4" CommentCount="4" FavoriteCount="1" />
  <row Id="12582" PostTypeId="2" ParentId="12581" CreationDate="2010-10-17T20:43:20.810" Score="8" ViewCount="" Body="&lt;p&gt;I've found two areas where you tend to work alone:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1. Freelancing&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A college roommate of mine got into freelance Rails web development, and ended up doing a lot of work by himself.  He got to pick technologies and make decisions on his own.  The downside, of course, was that he had to deal with everything himself too- graphic design, customer relations, self-marketing, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2. Non-Software Companies&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, companies whose primary focus is not software.  I worked at a medium-sized company that sold industrial radios.  I worked on the three-man desktop development team, and did most of my work by myself.  Of course, this came with all the problems endemic to non-software companies doing in-house development (Joel has &lt;a href=&quot;http://www.joelonsoftware.com/items/2007/12/04.html&quot; rel=&quot;nofollow&quot;&gt;a post&lt;/a&gt; on the subject).&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-17T20:43:20.810" CommentCount="1" />
  <row Id="12583" PostTypeId="1" CreationDate="2010-10-17T20:52:45.720" Score="3" ViewCount="149" Body="&lt;p&gt;I'v been using Linux on and off since 1997, mostly from the command line interface (CLI). Since I spent eight months on the help desk at Google with exposure to gooLinux (a variant of Ubuntu), recruiters been contacting me about my Linux experience. Three things stand out from these conversations:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) If you know how to do an operation from CLI but not the graphical user interface (GUI), recruiters will think you're an idiot because their question sheet says nothing about CLI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) If you do get past the recruiter to interview with the technical manager, he may have no clue about CLI and expects you to know GUI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Seems like Red Hat/CentOS is the most sought after Linux distro skill set.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The last point surprise me since Ubuntu seems to be the most popular Linux distro. However, these are Fortune 500 companies that probably installed the most popular Linux distro ten years ago and haven't upgraded to current crowd pleaser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which Linux distro should I familiarize myself to know the GUI to improve my job prospects?&lt;/p&gt;&#xA;" OwnerUserId="5211" LastActivityDate="2010-10-17T21:59:47.630" ClosedDate="2010-10-18T11:47:52.963" Title="Which linux distro to know the GUI to improve job prospects?" Tags="&lt;jobs&gt;&lt;career&gt;&lt;linux&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="1" />
  <row Id="12584" PostTypeId="1" CreationDate="2010-10-17T21:33:29.047" Score="4" ViewCount="312" Body="&lt;p&gt;In programming, lots of keys which are used often are, at least on Swedish QWERTY keyboards, on rather akward positions. Here are some examples of key combinations of common characters:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;=&lt;/strong&gt; : SHIFT + 0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&quot;&lt;/strong&gt; : SHIFT + 2&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;?&lt;/strong&gt; : SHIFT + + (next to 0)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;(&lt;/strong&gt; : SHIFT + 8&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;)&lt;/strong&gt; : SHIFT + 9&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;{&lt;/strong&gt; : ALT GR + 7&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;}&lt;/strong&gt; : ALT GR + 0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;[&lt;/strong&gt; : ALT GR + 8&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;]&lt;/strong&gt; : ALT GR + 9&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;\&lt;/strong&gt; : ALT GR + +&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&gt;&lt;/strong&gt; : SHIFT + &amp;lt; (next to left SHIFT)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;|&lt;/strong&gt; : ALT GR + &amp;lt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Obviously, many of these characters should be accessible more easily when programming as they are entered very often. And having to move the thumb to reach ALT GR isn't the best approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have akward key combinations on your keybaord when programming? How would you move around the keys to make programming more comfortable?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-18T09:00:23.047" ClosedDate="2010-10-18T19:28:09.807" Title="How would you make a QWERTY keyboard more programming-friendly?" Tags="&lt;programming&gt;&lt;keyboard-layout&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="12585" PostTypeId="2" ParentId="12584" CreationDate="2010-10-17T21:38:48.683" Score="0" ViewCount="" Body="&lt;p&gt;You could always try &lt;a href=&quot;http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard&quot; rel=&quot;nofollow&quot;&gt;Dvorak&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've given it a try myself, and once you get used to it it's nice. However, it does significantly mess up my VIM bindings on remote machines and machines that I can't change readily. Also it's not an extremely popular layout, if I type on your machine it means that you either have to switch or I have to mentally be able to juggle two layouts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You sound like the layout issue is due to localization, have you tried picking up a USA (or whatever &quot;standard&quot; is) keyboard and trying that? I'm not familiar with Swedish Qwerty layout.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-17T21:38:48.683" CommentCount="1" />
  <row Id="12586" PostTypeId="2" ParentId="12565" CreationDate="2010-10-17T21:42:13.260" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.linuxmint.com/&quot; rel=&quot;nofollow&quot;&gt;Linux Mint&lt;/a&gt; and &lt;a href=&quot;http://crunchbanglinux.org/&quot; rel=&quot;nofollow&quot;&gt;Crunchbang Linux&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both are Ubuntu derivates. Linux Mint has a much better multimedia support than Ubuntu (out of the box, that is), while Crunchbang is a very minimalistic linux which runs even fast on very old PCs (I myself am running it on a Celeron with 1,6 GHz and 1 Gig of memory, and it's blazing fast).&lt;/p&gt;&#xA;" OwnerUserId="1320" LastEditorUserId="1320" LastEditorDisplayName="" LastEditDate="2010-10-18T05:20:48.640" LastActivityDate="2010-10-18T05:20:48.640" />
  <row Id="12587" PostTypeId="2" ParentId="954" CreationDate="2010-10-17T21:47:29.333" Score="1" ViewCount="" Body="&lt;p&gt;Simplicity is beautiful.&lt;/p&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2010-10-17T21:47:29.333" CommentCount="1" />
  <row Id="12588" PostTypeId="2" ParentId="12583" CreationDate="2010-10-17T21:59:47.630" Score="4" ViewCount="" Body="&lt;p&gt;Three things are important here:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Any company whose recruiters think that someone who knows the CLI won't be able to figure out the GUI in a few days probably isn't a very well-run company.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Aside from some customizations, there are only two popular GUIs:  KDE and GNOME.  Most mainstream distros use one of the two as their default.  There are tons of others, but they are generally only used by niche distros and by power users who explicitly configure them.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you know the GUI for SomeDistribution x.xx, it will probably change fairly soon when SomeDistribution x.yy comes out, making extensive questions about your knowledge of the GUI even more idiotic.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-17T21:59:47.630" CommentCount="2" />
  <row Id="12589" PostTypeId="1" AcceptedAnswerId="12615" CreationDate="2010-10-17T22:23:04.397" Score="31" ViewCount="788" Body="&lt;p&gt;When choosing what we want to study, and do with our careers and lives, we all have some expectations of what it is going to be like. Now that I've been in the industry for almost a decade, I've been reflecting a bit on what I thought (back when I was studying Computer Science) programming working life was going to be like, and how it's actually turning out to be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My two biggest shocks (or should I say, broken expectations) by far are the sheer amount of maintenance work involved in software, and the overall lack of professionalism:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Maintenance: At uni, we were all told that the majority of software work is maintenance of existing systems. So I knew to expect this in the abstract. But I never imagined exactly how overwhelming this would turn out to be. Perhaps it's something I mentally glazed over, and hoped I'd be building cool new stuff from scratch a lot more. But it really is the case that most jobs are overwhelmingly maintenance, bug fixing, and support oriented.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Lack of professionalism: At uni, I always had the impression that commercial software work is very process-oriented and stringently engineered. I had images of ISO processes, reams of technical documentation, every feature and bug being strictly documented, and a generally professional environment. It came as a huge shock to realise that most software companies operate no differently to a team of students working on a large semester-long project. And I've worked in both the small agile hack shop, and the medium sized corporate enterprise. While I wouldn't say that it's always been outright &quot;unprofessional&quot;, it definitely feels like the software industry (on the whole) is far from the strong engineering discipline that I expected it to be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone else had similar experiences to this? What are the ways in which your expectations of what our profession would be like were different to the reality?&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-18T20:39:19.583" Title="Graduate expectations versus reality" Tags="&lt;career&gt;&lt;education&gt;&lt;computer-science&gt;&lt;software-engineering&gt;" AnswerCount="9" CommentCount="3" FavoriteCount="10" />
  <row Id="12590" PostTypeId="2" ParentId="9272" CreationDate="2010-10-17T22:39:15.583" Score="0" ViewCount="" Body="&lt;p&gt;Readability and maintainability are key, and your second example (i.e. the longer one) is much more of both.  But why limit yourself to two options?  Even the longer code is too complex (IMHO) to not notate further.  I'd put it in a method of its own with appropriate Javadoc (or whatever) and a suitable method name.&lt;/p&gt;&#xA;" OwnerUserId="5319" LastActivityDate="2010-10-17T22:39:15.583" />
  <row Id="12591" PostTypeId="2" ParentId="12466" CreationDate="2010-10-17T22:41:54.833" Score="0" ViewCount="" Body="&lt;p&gt;Erlang has header files that are often used (among other things) to declare data structures used in a module. They are not necessary, though, and many, if not most, modules don't use them.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-17T22:41:54.833" />
  <row Id="12592" PostTypeId="2" ParentId="9048" CreationDate="2010-10-17T23:21:06.237" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Java is comparable in performance to C/C++ and in some cases faster than those languages.&lt;/li&gt;&#xA;&lt;li&gt;Java is the most popular language used by software developers according to &lt;a href=&quot;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&quot; rel=&quot;nofollow&quot;&gt;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&lt;/a&gt;.  Don't take my word for it just search for Java job postings on websites.&lt;/li&gt;&#xA;&lt;li&gt;Java VM supports many different languages that run on it so learning Java gives you a great foundation even if you want to use another language: Scala, Javascript, JRuby, Clojure, etc.&lt;/li&gt;&#xA;&lt;li&gt;Companies love Java, and they love Java programmers: they're easy to find, fairly easy language to learn so easy to train someone, and a very productive language.&lt;/li&gt;&#xA;&lt;li&gt;Java is cross platform so you can develop with it on many different platforms which makes you more adaptable to would be employers.&lt;/li&gt;&#xA;&lt;li&gt;Java and C# share so much it's very easy to move between the languages without significant retraining.  You might be significantly annoyed at using Visual Studio, but ReSharper exists thank god.&lt;/li&gt;&#xA;&lt;li&gt;Java has a very robust community with the open source and commercial vendors.  Open source innovation has historically started on Java then ported to other platforms (e.g. Lucene, Spring, Hibernate, Log4J, etc).&lt;/li&gt;&#xA;&lt;li&gt;Java allows you to deploy to many platforms like low cost alternatives like Linux.&lt;/li&gt;&#xA;&lt;li&gt;Only Java and Python can be run on Google App Engine.&lt;/li&gt;&#xA;&lt;li&gt;Java is one of the 4 languages Google has standardized on.&lt;/li&gt;&#xA;&lt;li&gt;Java powers many large scale websites: LinkedIn, GMail, EBay, Amazon, Hi5.com, Google Ad words.&lt;/li&gt;&#xA;&lt;li&gt;Java is a safe language where things like buffer overflows, heap overflows, etc can't happen.  And after 15 years of scrutiny it's by in large held up to most security attacks.  Other VMs haven't been so fortunate.  Contrast that with Flash VM which has had multiple exploitable zero day vulnerabilities over the last few years.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5592" LastEditorUserId="5592" LastEditorDisplayName="" LastEditDate="2010-10-17T23:26:56.963" LastActivityDate="2010-10-17T23:26:56.963" CommentCount="6" />
  <row Id="12593" PostTypeId="1" CreationDate="2010-10-17T23:32:36.567" Score="11" ViewCount="630" Body="&lt;p&gt;Do you still send thank you letters after being interviewed for a developer/software engineer position? and do you do it by email or mail? what would you recommend?&lt;/p&gt;&#xA;" LastActivityDate="2010-10-18T08:22:05.957" ClosedDate="2010-10-18T19:27:50.450" Title="after interview - thank you letter" Tags="&lt;interview&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="2" />
  <row Id="12594" PostTypeId="1" CreationDate="2010-10-17T23:38:10.910" Score="8" ViewCount="173" Body="&lt;p&gt;I am working on a programming language called &lt;a href=&quot;http://github.com/fogus/potion&quot; rel=&quot;nofollow&quot;&gt;Potion&lt;/a&gt;. In the readme, a previous developer wrote:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;No error handling. I’m wary of just tossing in exceptions and feeling rather uninspired on the matter. Let’s hear from you.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Do any of you have any ideas for methods of error handling besides exceptions and checking the return value of functions (like in C)?&lt;/p&gt;&#xA;" OwnerUserId="5596" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-18T12:41:34.080" LastActivityDate="2010-10-18T12:52:06.970" Title="Do you have any new ideas for error handling? (to be implemented into a dynamic language)?" Tags="&lt;fun&gt;&lt;design&gt;&lt;software-engineering&gt;&lt;architecture&gt;&lt;errors&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="4" />
  <row Id="12595" PostTypeId="2" ParentId="12593" CreationDate="2010-10-17T23:38:51.757" Score="7" ViewCount="" Body="&lt;p&gt;I do. By email. (By the time they got your snail mail, they would have mostly likely already made their decision.) Can't hurt, right? Just keep it short and avoid sounding like a sycophant. &lt;/p&gt;&#xA;" OwnerUserId="4222" LastActivityDate="2010-10-17T23:38:51.757" CommentCount="2" />
  <row Id="12596" PostTypeId="2" ParentId="12593" CreationDate="2010-10-17T23:44:05.643" Score="1" ViewCount="" Body="&lt;p&gt;Yes write a thank you letter by email.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's your chance to say thank you, and mention anything else you might want to.  If you didn't get something right in your interview you can also take this chance to correct yourself and show you're a fast learner. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After interviews is not a good time to play hard to get.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-10-17T23:44:05.643" />
  <row Id="12597" PostTypeId="2" ParentId="12572" CreationDate="2010-10-17T23:47:11.863" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Implement&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Implement each new algorithm or technique your read about on your own, using only your memory of the description of the algorithm or technique as reference.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-17T23:47:11.863" />
  <row Id="12598" PostTypeId="2" ParentId="12593" CreationDate="2010-10-17T23:52:22.557" Score="2" ViewCount="" Body="&lt;h2&gt;Email, Morning After&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Is how I have always done it. Follow up quickly but not immediately. Sometimes I'll draft the email right after the interview so points are still fresh in my mind and I can hit them off.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-17T23:52:22.557" CommentCount="15" />
  <row Id="12599" PostTypeId="1" AcceptedAnswerId="12700" CreationDate="2010-10-17T23:52:25.060" Score="22" ViewCount="660" Body="&lt;p&gt;ProjectEuler was great for when the challenge is gone in general programming, but it's a little monotonous to do nothing else other than the challenges on there, data structure-&gt;loop-&gt;analysis method, it doesn't really change much. Or at all. Could do with some more sites with challenges on for a bit of variety, seeing as how the whole point of PE is to give you something more interesting to make. I can't find others, but it can't be the only one surely?&lt;/p&gt;&#xA;" OwnerUserId="5593" LastEditorUserId="5593" LastEditorDisplayName="" LastEditDate="2010-10-18T12:23:19.213" LastActivityDate="2010-10-28T07:11:19.480" Title="Alternatives to Project Euler?" Tags="&lt;websites&gt;&lt;challenge&gt;" AnswerCount="6" CommentCount="7" FavoriteCount="15" />
  <row Id="12600" PostTypeId="2" ParentId="12599" CreationDate="2010-10-17T23:59:12.720" Score="4" ViewCount="" Body="&lt;p&gt;If you're into Python, the &lt;a href=&quot;http://www.pythonchallenge.com/&quot; rel=&quot;nofollow&quot;&gt;PythonChallenge&lt;/a&gt; is great.&lt;/p&gt;&#xA;" OwnerUserId="1875" LastActivityDate="2010-10-17T23:59:12.720" />
  <row Id="12601" PostTypeId="2" ParentId="12599" CreationDate="2010-10-18T00:07:17.837" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.topcoder.com/tc&quot; rel=&quot;nofollow&quot;&gt;Top Coder&lt;/a&gt;. You can use Java, C++, C#, or Visual Basic .Net to solve problems.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-18T00:07:17.837" />
  <row Id="12602" PostTypeId="2" ParentId="12584" CreationDate="2010-10-18T00:26:13.103" Score="0" ViewCount="" Body="&lt;p&gt;I don't know about swedish key-mapping but I can talk about (canadian) french one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically there's more than one you can choose and only one is really good for programming: the one where the accents are not a one-key press. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;ie. é, è, à, etc. are written by pressing only one key in one but then it leaves less space for programming ones. The one that work best is the one where accent is a key, followed by the letter (two key needed to write it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe there exist the same counterpart for swedish?&lt;/p&gt;&#xA;" OwnerUserId="3063" LastActivityDate="2010-10-18T00:26:13.103" />
  <row Id="12603" PostTypeId="2" ParentId="12593" CreationDate="2010-10-18T00:31:00.763" Score="1" ViewCount="" Body="&lt;h2&gt;Handwritten, on paper, sent as soon as you get home.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;What you say in it is roughly what you said when you ended the interview, which is to recap the interview and then explicitly say you're interested in the job and/or ask what the next steps are.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Thank you for meeting with me yesterday to talk about the sysadmin position at Yoyodyne.  I enjoyed finding out about your department, and I was especially interested in hearing about your upcoming Linux-to-BSD migration.  With my background in both operating systems, I know I can be a great addition to that effort.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I look forward to hearing about the next step in the process.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It shows you were paying attention, and it shows that you're specifically interested in &lt;em&gt;that&lt;/em&gt; position and not just any old job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Send your thank-you note on paper, in an envelope, hand-written and addressed to the hiring manager or interviewer by name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some say that you should send it by email.  I think that's a horrible idea.  Part of the point of the thank-you note is to show that you give a damn.  An email thank-you note tells the recipient that you're just going through the motions.  If you're actually concerned that the decision might be made by the time the mail gets there, then send BOTH.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-18T00:31:00.763" CommentCount="6" />
  <row Id="12604" PostTypeId="2" ParentId="12572" CreationDate="2010-10-18T00:36:55.787" Score="3" ViewCount="" Body="&lt;p&gt;Highlight anything that surprised you.  It will make it easier to find it in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write in the margins extensively.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you loan your book to someone, ask the person to follow these same rules, ideally in different colors.  This adds value to your book.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-18T00:36:55.787" />
  <row Id="12605" PostTypeId="2" ParentId="12599" CreationDate="2010-10-18T00:41:06.487" Score="3" ViewCount="" Body="&lt;p&gt;Some websites [most of they are competitions, with examples or old problems] from my bookmarks:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.spoj.pl/&quot; rel=&quot;nofollow&quot;&gt;http://www.spoj.pl/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.topcoder.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.topcoder.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programming-challenges.com/&quot; rel=&quot;nofollow&quot;&gt;http://programming-challenges.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.ioinformatics.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.ioinformatics.org/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3445" LastEditorUserId="3445" LastEditorDisplayName="" LastEditDate="2010-10-18T04:10:10.070" LastActivityDate="2010-10-18T04:10:10.070" CommunityOwnedDate="2010-10-18T04:10:39.323" />
  <row Id="12606" PostTypeId="2" ParentId="12594" CreationDate="2010-10-18T00:48:03.110" Score="1" ViewCount="" Body="&lt;p&gt;In my experience exceptions are either caught immediately or at a last resort exception catcher. However, it is fairly easy to accidentally catch and exception when it was not intended.  Thus, I propose that any exception which is not caught show automatically be wrapped as a UncaughtException and rethrown to prevent it from being caught accidently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another approach would be to consider each function as having a number of different possible results. For example, a string find function either returns a string index or the fact that it failed to find the string. In most languages this will return -1, but you might accidentally treat that -1 as a string index. In this theory, you have to explicit indicate that you handle the not-found case otherwise its a runtime error (dump stack, jump to last resort error handler)  That way you have to explicitly handle any error (or unusual condition since this could be used for unusual but not error situations) or you implicitly assume that it will not happen.&lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-10-18T00:48:03.110" CommentCount="2" />
  <row Id="12607" PostTypeId="2" ParentId="12522" CreationDate="2010-10-18T00:51:26.937" Score="1" ViewCount="" Body="&lt;p&gt;For a desktop... I'm of the mindset 'bigger is better'. 21' would be my minimum. 27' at work and 32' at home has me spoiled.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1080p at-least (1920 x 1080). Or two. Sharp, crisp. More code OR bigger code (if you are hard of seeing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At-least 2 monitors... 3 or more if you want to go crazy. One for work, second for research (queries, code to compare), 3rd for text, email, etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't have anything that pivots... personally this is offset by the whole &quot;bigger&quot; part. no need for it with my setups.&lt;/p&gt;&#xA;" OwnerUserId="2536" LastEditorUserId="2536" LastEditorDisplayName="" LastEditDate="2010-10-18T00:57:51.683" LastActivityDate="2010-10-18T00:57:51.683" />
  <row Id="12608" PostTypeId="2" ParentId="2815" CreationDate="2010-10-18T00:56:46.563" Score="12" ViewCount="" Body="&lt;p&gt;Language support for property change notification (&lt;code&gt;INotifyPropertyChanged&lt;/code&gt;):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public observable int Foo { get; set; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The code above would have the same meaning as this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private int _foo;&#xA;public int Foo&#xA;{&#xA;    get { return _foo; }&#xA;    set&#xA;    {&#xA;        _foo = value;&#xA;        OnPropertyChanged(&quot;Foo&quot;);&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(this was &lt;a href=&quot;http://dotnet.uservoice.com/forums/40583-wpf-feature-suggestions/suggestions/478802-modify-the-language-to-allow-for-observable-proper&quot; rel=&quot;nofollow&quot;&gt;suggested on uservoice&lt;/a&gt; for WPF bindings, but it would be useful in other areas too)&lt;/p&gt;&#xA;" OwnerUserId="2373" LastEditorUserId="2373" LastEditorDisplayName="" LastEditDate="2010-10-18T06:52:01.670" LastActivityDate="2010-10-18T06:52:01.670" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="8" />
  <row Id="12609" PostTypeId="2" ParentId="4819" CreationDate="2010-10-18T00:59:53.440" Score="4" ViewCount="" Body="&lt;p&gt;I can't comment on which schools businesses recognize, but I can offer insight on the schools to which they should be paying attention. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every summer since 2005, Google has held a summer externship program called the Google Summer of Code in which college students work on open-source projects for generous stipends. In 2009, Google published an &lt;a href=&quot;http://spreadsheets.google.com/pub?key=0AgL4N-OdGxhQcDZEdW9BMmxKVG9LbVV6b1NxNnJhWlE&amp;amp;gid=5&quot; rel=&quot;nofollow&quot;&gt;informative spreadsheet&lt;/a&gt; which lists the number of participating students from each school for the preceding 4 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This statistic is valuable because it represents the self-motivation and real-world experience of a school's students. In order to be accepted, a student has to choose an open-source organization and a project within the organization, then prove that he is capable of completing his project. All applicants are required to submit proposals on how they will accomplish their projects, but the stronger applicants interact with the organizations directly, hashing out requirements, familiarizing themselves with the code base, submitting patches, and &amp;mdash; rarely &amp;mdash; building prototypes. This year, only 1,000 students were accepted out of 5,000 graduate and undergraduate student applicants.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The 10 schools that produced the most GSoC students for 2005-2009 were:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;University of Moratuwa  (Sri Lanka)&lt;/li&gt;&#xA;&lt;li&gt;University of Campinas / UNICAMP  (Brazil)&lt;/li&gt;&#xA;&lt;li&gt;University of Toronto  (Canada)&lt;/li&gt;&#xA;&lt;li&gt;Vienna University of Technology  (Austria)&lt;/li&gt;&#xA;&lt;li&gt;Graduate University of Chinese Academy of Sciences  (China)&lt;/li&gt;&#xA;&lt;li&gt;University of Illinois at Urbana-Champaign  (United States)&lt;/li&gt;&#xA;&lt;li&gt;Wroclaw University of Technology  (Poland)&lt;/li&gt;&#xA;&lt;li&gt;Budapest University of Technology and Economics  (Hungary)&lt;/li&gt;&#xA;&lt;li&gt;Carleton University  (Canada)&lt;/li&gt;&#xA;&lt;li&gt;Alexandru Ioan Cuza University of Iasi  (Romania)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These are the schools producing world-class software developers.&lt;/p&gt;&#xA;" OwnerUserId="4711" LastActivityDate="2010-10-18T00:59:53.440" CommentCount="2" />
  <row Id="12610" PostTypeId="2" ParentId="2815" CreationDate="2010-10-18T00:59:57.927" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Numeric literal suffixes for &lt;em&gt;all&lt;/em&gt; numeric types&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently the following suffixes exist :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;1&lt;/code&gt; &lt;em&gt;(no suffix)&lt;/em&gt; : int or double (based on decimal separator)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;1U&lt;/code&gt; : uint&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;1L&lt;/code&gt; : long&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;1UL&lt;/code&gt; : ulong&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;1f&lt;/code&gt; : float&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;1d&lt;/code&gt; : double&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;1m&lt;/code&gt; : decimal&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For other numeric types, you have to cast explicitly :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;(byte)1&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;(sbyte)1&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;(short)1&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;(ushort)1&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'd like to have the following suffixes added :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;1B&lt;/code&gt; : byte&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;1SB&lt;/code&gt; : sbyte&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;1S&lt;/code&gt; : short&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;1US&lt;/code&gt; : ushort&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And since there is a &lt;code&gt;BigInteger&lt;/code&gt; type in 4.0, it would be nice to have a suffix for it too (perhaps use lowercase &lt;em&gt;b&lt;/em&gt; for byte, and uppercase &lt;code&gt;B&lt;/code&gt; for &lt;code&gt;BigInteger&lt;/code&gt;)&lt;/p&gt;&#xA;" OwnerUserId="2373" LastActivityDate="2010-10-18T00:59:57.927" CommunityOwnedDate="2010-10-18T00:59:57.927" CommentCount="2" />
  <row Id="12611" PostTypeId="2" ParentId="12589" CreationDate="2010-10-18T01:19:15.540" Score="3" ViewCount="" Body="&lt;p&gt;I didn't get a degree, but I picked up a bit at college and university libraries and labs. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Big Iron&lt;/strong&gt; - The technologies they were teaching were primarily mainframes and minicomputers. The dean of one college told me I wouldn't be able to get a job because I didn't even know what a masterfile was. I had no intention of working on mainframes since I couldn't afford one, but I wasn't going to be so foolish as to not be slightly prepared. VAXen were cool, and I was looking forward to getting paid to code on my own Micro VAX in my cubicle. What a shame that market totally imploded. (As it turned out I had two positions working with mainframes…as a contractor for IBM.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Software Engineering&lt;/strong&gt; - On the heels of Structured Programming, SASD, and other design methodologies, you might have thought we were going to be real engineers. I did. But teachers were giving very little guidance on the design techniques I read in the library. Students were left to fend for themselves and micros made it too easy to flail in code until they get an answer they were happy with. I didn't realize how much worse it was in the job market.&#xA;Somehow I got to do quite a bit of new code, so it wasn't so boring. But I also took over a lot, and they were bad enough it was like a new project because I had to fix up a lot of code. It was a combination of researching existing functionality and creating new code (its replacement); writing tools to simplify the process and instituting better project management. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;High-tech Career&lt;/strong&gt; - It's one thing when schools have old buildings and equipment (the punch card equipment was replaced the semester before I started…in 1984), but when you're working in a poorly lit warehouse or for a boss who hangs up on customers calling the support line, you start to realize your job description isn't likely to include cooking popcorn with a 5-megawatt laser.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-18T01:19:15.540" />
  <row Id="12612" PostTypeId="2" ParentId="12584" CreationDate="2010-10-18T01:27:59.440" Score="1" ViewCount="" Body="&lt;p&gt;try pickig up a &lt;strong&gt;United States keyboard&lt;/strong&gt;. The layout is a bit more programmer friendly than other localized versions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Keyboard_layout#QWERTY&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Keyboard_layout#QWERTY&lt;/a&gt;&#xA;&quot;On the other hand, the US or UK keyboard layout is occasionally used by programmers in countries where the keys for []{} are located in less convenient positions on the locally customary layout.&quot; - wikipedia&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Switching between layouts can be doe with a keyboard shortcut (in windows at least).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Ctrl+Shift&lt;br&gt;&#xA;Switch the keyboard layout when multiple keyboard layouts are enabled&quot; -     &lt;a href=&quot;http://windows.microsoft.com/en-US/windows7/Keyboard-shortcuts&quot; rel=&quot;nofollow&quot;&gt;windows.microsoft.com/en-US/windows7/Keyboard-shortcuts&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1013" LastEditorUserId="1013" LastEditorDisplayName="" LastEditDate="2010-10-18T03:32:50.797" LastActivityDate="2010-10-18T03:32:50.797" CommentCount="6" />
  <row Id="12613" PostTypeId="2" ParentId="12599" CreationDate="2010-10-18T02:11:16.320" Score="1" ViewCount="" Body="&lt;p&gt;There's also &lt;a href=&quot;http://www.codechef.com&quot; rel=&quot;nofollow&quot;&gt;http://www.codechef.com&lt;/a&gt; which is fun... &lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-10-18T02:11:16.320" />
  <row Id="12614" PostTypeId="2" ParentId="12594" CreationDate="2010-10-18T02:24:21.327" Score="1" ViewCount="" Body="&lt;p&gt;You could make exceptions non-generic, so that you must specify exactly what exceptions you are trying to catch.  Therefore, it would be pretty well impossible to catch an exception unintentionally.  Of course it would suck if you wanted to catch, for example, a heap of different related exceptions.  &lt;/p&gt;&#xA;" OwnerUserId="5599" LastActivityDate="2010-10-18T02:24:21.327" />
  <row Id="12615" PostTypeId="2" ParentId="12589" CreationDate="2010-10-18T02:50:30.227" Score="18" ViewCount="" Body="&lt;p&gt;I feel you man.  I just graduated little over a year ago in fact, jumped on the first job offer that came my way and got the biggest shock of my life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things I didn't expect:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;School stress and Work stress aren't the same&lt;/strong&gt;&#xA;- The stress of working on a school project with friends, or working solo, even with that looming thesis deadline or special project defense does not compare to the stress of seemingly unreasonable work deadlines, communication problems, (a little of office politics) and crunch times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Lack of Best Practices&lt;/strong&gt;&#xA;- Same as your experience on professionalism. Before taking my first job and during my training period, I rushed off reviewing and reading about best practices in both programming and software engineering.  These aren't followed as well as they should for impractical and, to be fair, practical reasons. And sometimes, your knowledge counts very little against others who are merely afraid of the unknown and treat these practices with disdain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What they taught in school was just the tip of the iceberg&lt;/strong&gt;&#xA;- Thinking that what I learned self-studying and from classes was enough to get me through, I was shocked to say the least as I stared dumbfounded at the first piece of code I was supposed to maintain.  A lot of the skills I use now were learned on the job or during my job that I keep on wondering if I could've made it without a college degree at all. XD&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Importance of Communication&lt;/strong&gt;&#xA;- Made me realize what all those English classes were for. Before the real world, I could not see the relevance of having three to four different English classes in college when it's been taught since we were in the first grade. You're no use in your job when you can talk to a computer but fail to talk to people.&lt;/p&gt;&#xA;" OwnerUserId="1668" LastEditorUserId="1668" LastEditorDisplayName="" LastEditDate="2010-10-18T03:24:12.437" LastActivityDate="2010-10-18T03:24:12.437" CommentCount="5" />
  <row Id="12616" PostTypeId="2" ParentId="12594" CreationDate="2010-10-18T03:19:40.073" Score="1" ViewCount="" Body="&lt;p&gt;These ideas pertain to error handling, and not necessary related to exceptions.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;At the beginning of a scope (or a function), declare that a certain variable is &lt;em&gt;not supposed to be written to&lt;/em&gt;, and raise an exception if this ever happens.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;At the beginning of a scope (or a function), declare that a &quot;backup copy&quot; of a certain set of variables should be made, so that if any exceptions ever occur inside the scope, those variables would be automatically (and atomically) reverted to the backed-up states.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Allow fine-tuning of exception behaviors of primitive types such as finite-size integers or floating-point numbers. For example, normally finite-size integers would wrap around when it overflows / underflows. This is usually chosen for performance reasons. However, your language can allow a certain variable of a finite-size integer type to be declared to throw an exception whenever this happens. Same for range checks, odd/even values, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;To boil down, these three points are similar to allowing getters and setters to be defined for primitive types, or to allow the wrapping of an existing variable by a temporary (scope-based) proxy, which performs additional work in its getters and setters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Edited:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, the best way to design it is to write up some examples, and showcase how your new language / new design would solve the problem, and then put up the examples for a vote.&lt;/p&gt;&#xA;" OwnerUserId="620" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-10-18T03:24:52.430" LastActivityDate="2010-10-18T03:24:52.430" />
  <row Id="12617" PostTypeId="2" ParentId="12589" CreationDate="2010-10-18T03:21:37.303" Score="11" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;If you look at software today, through the lens of the history of engineering, it’s certainly engineering of a sort—but it’s the kind of engineering that people without the concept of the arch did. Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves. -Alan Kay, 2004&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;the full interview: &lt;a href=&quot;http://queue.acm.org/detail.cfm?id=1039523&quot; rel=&quot;nofollow&quot;&gt;http://queue.acm.org/detail.cfm?id=1039523&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm no industry vet; Quite the opposite, I'm a recent graduate but from a top CS school in the U.S. But my instinctual feeling is that the way we are building software is wrong. Rather than hitting the pause button and reexamining the fundamentals of how we program we have just rushed forward using out dated models from the 50s,60s continually adding a little sugar on top. If we keep on like this we will never get past where we are at. Humans just can't manage the complexity of things that are the size of the MS Windows codebase. We need a new way. I don't know what that is. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this is the underlying reason for the feeling that big and small software shops seem to make software by hacking it together without any deep understanding of fundamental principles. &lt;/p&gt;&#xA;" OwnerUserId="4375" LastEditorUserId="4375" LastEditorDisplayName="" LastEditDate="2010-10-18T06:39:43.293" LastActivityDate="2010-10-18T06:39:43.293" CommentCount="2" />
  <row Id="12618" PostTypeId="2" ParentId="12589" CreationDate="2010-10-18T03:40:01.927" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Computer programming is non-physical and non-intuitive.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When a house builder finishes his/her work, s/he can walk around and immediately see/feel if there is anything wrong. A computer programming bug cannot be discovered in the same way, and may lurk in the system for months, or even decades.&lt;/li&gt;&#xA;&lt;li&gt;While a programmer may look/feel a piece of source code through code review, it is not guaranteed to spot every error contained in the code. A computer, however, would be able to exactly reproduce the error every time by executing the program with certain input. Thus, human understanding of a piece of source code is always an imperfect model of the essense of it being the instructions to a computer.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;It is very easy to code a program that handles the most common cases, but completely fails to handle the edge cases.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In other disciplines, it is relatively easy to apply a remedial action after-the-fact. There may even be a body-of-knowledge specifically devoted to remedial actions. There is no such thing in Software Development.&lt;/li&gt;&#xA;&lt;li&gt;Fortunately, test-driven development helps codify the edge cases that the code is supposed to handle.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Added&lt;/strong&gt; On the other hand, certain software development methodologies seem to suggest that we can extract business value (faster time to market, etc.) by consciously choosing not to handle edge cases, and to communicate those decisions to the customers. &lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Customers may find business values in a software that handles only the most common cases, therefore software providers are not too concerned about handling the rare cases.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Customers simply learn to avoid the rough edges.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Added&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The elegance of the source code is not valued. &#xA;&lt;ul&gt;&#xA;&lt;li&gt;Customers do not see the elegance of the source code. They only see the elegance of the user interface and interactions. &lt;/li&gt;&#xA;&lt;li&gt;Programmers, on the other hand, usually do not value the elegance of the user interface, and they usually do not remain in a single project for a long enough time to start appreciating an elegant software design.&lt;/li&gt;&#xA;&lt;li&gt;Because neither customers nor programmers value the elegance of the source code, neither will it be valued by businesses.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Added&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My two cents: just get used to it.&lt;/p&gt;&#xA;" OwnerUserId="620" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-10-18T04:02:49.067" LastActivityDate="2010-10-18T04:02:49.067" CommentCount="1" />
  <row Id="12619" PostTypeId="2" ParentId="2815" CreationDate="2010-10-18T04:20:40.453" Score="-3" ViewCount="" Body="&lt;p&gt;Enums that actually represent a contiguous set of numbers should be permitted for array indexes.  Sure, you can easily cast them but that doesn't let the compiler protect you from mistakes.  This would also apply to bools.&lt;/p&gt;&#xA;" OwnerUserId="5555" LastActivityDate="2010-10-18T04:20:40.453" CommunityOwnedDate="2010-10-18T04:20:40.453" CommentCount="2" />
  <row Id="12620" PostTypeId="2" ParentId="12540" CreationDate="2010-10-18T04:25:20.237" Score="1" ViewCount="" Body="&lt;p&gt;My Kindle is well-suited for reading novels, since those are read in a linear fashion.  But since page turning is slow, I find it horrible for technical reference.  Most of my technical books are physical copies along with ebook versions.  If its a new technology (and doesn't have long code examples), I can deal with reading it &quot;cover-to-cover&quot; on the Kindle.  But when I need to reference it later, I usually go with Acrobat Reader or the physical copy.&lt;/p&gt;&#xA;" OwnerUserId="5603" LastActivityDate="2010-10-18T04:25:20.237" />
  <row Id="12621" PostTypeId="2" ParentId="12524" CreationDate="2010-10-18T04:36:36.553" Score="0" ViewCount="" Body="&lt;p&gt;I started writing Android apps in Java having prior experience in C#.  I found that many fundamental concepts of the language are similar, so it was simply a matter of learning the few differences, especially with the libraries.  If you can learn, coding in the other would be very simple (based on my experience).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend starting with Java.  Android is on track to becoming the most popular mobile OS, so you know it will definitely be around for a while.  Also, Java is older, so there are countless libraries and tutorials available for you to use and learn from.  Once you understand the core concepts of Java, learning C# should be a breeze - and you'll really appreciate some of the neat features (like attributes and LINQ) that C# has to offer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disclaimer: I started with C# (primarily for ASP.NET MVC web development) and then learned Java for writing Android apps.  I haven't done any mobile programming with C#, so I can't tell you what it's like.&lt;/p&gt;&#xA;" OwnerUserId="5603" LastActivityDate="2010-10-18T04:36:36.553" />
  <row Id="12622" PostTypeId="2" ParentId="10916" CreationDate="2010-10-18T04:36:42.217" Score="2" ViewCount="" Body="&lt;p&gt;It sounds like you're wondering if you can make any kind of decent money speaking at conferences.  The answer is &quot;No, not just from that.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Typically the people who are able to make a living in writing/speaking/blogging are using the writing/speaking/blogging to attract attention and give credence to what they &lt;em&gt;are&lt;/em&gt; making money at, such as consulting or teaching.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-18T04:36:42.217" />
  <row Id="12623" PostTypeId="2" ParentId="2815" CreationDate="2010-10-18T04:40:12.880" Score="12" ViewCount="" Body="&lt;p&gt;I would add a special Haskell-like syntax for &lt;code&gt;Tuple&lt;/code&gt;s.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So that instead of this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public static Tuple&amp;lt;int, int&amp;gt; Divide(int a, int b) {&#xA;  return Tuple.Create(a / b, a % b);&#xA;}&#xA;&#xA;var t = Divide(16, 3);&#xA;var division = t.Item1;&#xA;var remainder = t.Item2;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;you could write this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public static (int, int) Divide(int a, int b) {&#xA;  return (a / b, a % b);&#xA;}&#xA;&#xA;var (division, remainder) = Divide(16, 3);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-18T04:40:12.880" CommunityOwnedDate="2010-10-18T04:40:12.880" CommentCount="2" />
  <row Id="12624" PostTypeId="2" ParentId="12556" CreationDate="2010-10-18T04:51:03.680" Score="0" ViewCount="" Body="&lt;p&gt;What about programming competitions?  Even something like Perl Golf (or PHP Golf), where you have people (or teams) work to solve a problem using the least amount of code possible?  Its a great way to learn more about languages and competitions always make things interesting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course you should offer more than just competitions, but they are pretty easy to set up and I've always enjoyed them.&lt;/p&gt;&#xA;" OwnerUserId="5603" LastActivityDate="2010-10-18T04:51:03.680" />
  <row Id="12626" PostTypeId="1" AcceptedAnswerId="12665" CreationDate="2010-10-18T05:13:57.060" Score="4" ViewCount="99" Body="&lt;p&gt;For most open source project, there is a well-founded project team and corporate sponsorship, and a lot of active contributors. The procedure for filing bug reports are clearly documented.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there are also some open source project(s) that have been in existence for more than 10 years (maybe 15), and were included in all sorts of free and commercial products (OSes and linux distros, etc), and everyone just assumes it is correct, despite some parts of it in a state of despair and full of bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It appears to me that the real users (programmers in-the-know) simply choose to use the library in a certain way as not to trigger the bug. Few choose to speak up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are also big-name companies that fix the bugs quietly (in their own products) without giving out any patches. And use that to their business advantage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no leading developer. There is no information as to who are the active developers, except that you can browse the mailing list and see who has recently submitted patches, and assume that they might know someone who is helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How should I handle a vulnerability case, without leaking information in a way that gives ammunition to the bad guys?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;This question is a spin-off from: &lt;a href=&quot;http://programmers.stackexchange.com/questions/5168/whats-the-biggest-software-security-vulnerabilty-youve-personally-discovered&quot;&gt;http://programmers.stackexchange.com/questions/5168/whats-the-biggest-software-security-vulnerabilty-youve-personally-discovered&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="620" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-18T10:49:08.863" LastActivityDate="2010-10-18T11:17:51.857" Title="How do I report software vulnerabilities found in an open source library that are widely used but have a dilapidated team structure?" Tags="&lt;open-source&gt;&lt;security&gt;&lt;ethics&gt;" AnswerCount="4" />
  <row Id="12627" PostTypeId="2" ParentId="12589" CreationDate="2010-10-18T05:41:53.500" Score="6" ViewCount="" Body="&lt;h3&gt;Most of the work you do is not ground-breaking&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;When at Uni, I worked on AI routines to control soccer-playing robots, I built compilers and hacked on operating system kernels.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in the real world, 99%&lt;sup&gt;*&lt;/sup&gt; of software development is actually pretty boring. I've always admired architects or builders who, when asked &quot;what do you do for a living?&quot; can point to a building or whatever and say &quot;I did &lt;em&gt;that&lt;/em&gt;&quot;. But most software developers can't do that. When asked &quot;what do you do for a living?&quot; the closest to that that I've ever been able to come is when I used to work for a company which built software that processed SMS messages for radio stations and the like... I could say, &quot;you know when you text in to a radio station to vote for a song, well I wrote the software that processes those votes and stuff.&quot; Still no where near as cool as being able to point to a building and saying &quot;I built that.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, there &lt;em&gt;are&lt;/em&gt; people who can say &quot;I worked on Windows&quot; or whatever, but I'm sure they don't actually tell anybody that for fear of the very next question being &quot;I can't get my printer to work, can you fix that for me?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;*&lt;/sup&gt; and 62% of all statistics are made up on the spot&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-18T05:41:53.500" CommentCount="5" />
  <row Id="12628" PostTypeId="2" ParentId="262" CreationDate="2010-10-18T06:01:55.807" Score="4" ViewCount="" Body="&lt;p&gt;Java &lt;strong&gt;the language&lt;/strong&gt; may be in slow decline, but Java &lt;strong&gt;the platform&lt;/strong&gt; (JVM + JDK) has definitely been booming during the last couple of years (Scala, Clojure and many other languages; Android framework). It's easily the best (only viable?) multi-architecture, multi-OS, multi-language platform out there, scaling from embedded mobile devices to mainframe enterprise, and there are no comparable rivals currently AFAIK. So I would expect Java the platform to be relevant in 5 years, and even in 15 years. That also makes Java the language relevant in the long term, even if its popularity may be past the peak.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-18T07:41:29.153" LastActivityDate="2010-10-18T07:41:29.153" CommunityOwnedDate="2011-03-14T15:05:05.090" />
  <row Id="12629" PostTypeId="2" ParentId="262" CreationDate="2010-10-18T06:05:51.247" Score="4" ViewCount="" Body="&lt;p&gt;Not sure about JAVA. But surely the JVM will remain relevant supporting many other languages.&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-10-18T06:05:51.247" CommunityOwnedDate="2011-03-14T15:05:05.090" />
  <row Id="12630" PostTypeId="2" ParentId="12524" CreationDate="2010-10-18T06:27:46.167" Score="2" ViewCount="" Body="&lt;p&gt;Depends on the platform-&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Android - JAVA, C#(via MonoDroid)&lt;br&gt;&#xA;IPhone - Objective C, C#(via MonoTouch)&lt;br&gt;&#xA;Windows Phone - C#(Silverlight)&lt;br&gt;&#xA;Meego - C++(QT)&lt;br&gt;&#xA;Symbian - C++, JAVA&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think Symbian is going to be dropped by most companies. Smart Phones are the future. And for every type of smart phone os, C#/mono will be available (you have to pay extra, but the usability worth it) along with the native platform language. So, you can go for C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The true platform independence may not be achieved, but if you use C# everywhere, you will be able to use same core libraries and tweak the UI for the platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But for low cost phones, C# will not do. You have to go for JAVA.&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="963" LastEditorDisplayName="" LastEditDate="2010-10-18T06:40:27.917" LastActivityDate="2010-10-18T06:40:27.917" CommentCount="1" />
  <row Id="12631" PostTypeId="2" ParentId="12472" CreationDate="2010-10-18T06:32:34.220" Score="0" ViewCount="" Body="&lt;p&gt;If your client has trouble understanding why a given small task may take a long time and be quite expensive, then perhaps it is time for an analogy:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;On the moon the astronauts put a mirror to reflect laser beams to Earth.  What is the cost of adjusting that mirror slightly?&lt;/li&gt;&#xA;&lt;li&gt;I have a very complex Lego construction.  What is the cost of changing that brick in the middle to a yellow one?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Can't take long, can it?&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-18T06:32:34.220" />
  <row Id="12632" PostTypeId="2" ParentId="5019" CreationDate="2010-10-18T06:45:12.073" Score="0" ViewCount="" Body="&lt;p&gt;Aspire to become a software engineer who knows how to incorporate the right kind of architecture into the software as it is being written, know how to adapt the architecture in response to changing needs, and is good at teaching / discussing with others about the architectural choices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the title is very important, you can add &quot;(architect)&quot; &lt;em&gt;in brackets and quotes&lt;/em&gt; to your business card, with the stroke of an &lt;em&gt;architect's&lt;/em&gt; pen.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-18T06:45:12.073" />
  <row Id="12633" PostTypeId="2" ParentId="12581" CreationDate="2010-10-18T06:50:08.023" Score="1" ViewCount="" Body="&lt;p&gt;I develop software in a relatively small non-software company (scientific measurement instruments).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The good thing is that you get to work pretty much independently, and you get to choose the technologies to use pretty much independently (although the legacy ballast is there). The challenge is that you're personally responsible for getting things done with the technologies you've chosen, and you have to master the whole technology stack, for instance we're almost daily dealing with:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;C (embedded, device drivers)&lt;/li&gt;&#xA;&lt;li&gt;Java (e.g. Swing GUIs)&lt;/li&gt;&#xA;&lt;li&gt;Borland C++ (legacy software)&lt;/li&gt;&#xA;&lt;li&gt;Databases&lt;/li&gt;&#xA;&lt;li&gt;Linux maintenance&lt;/li&gt;&#xA;&lt;li&gt;Python. Ruby. Shell scripts. PHP. HTML. CSS. SQL.&lt;/li&gt;&#xA;&lt;li&gt;Fixing printers and computers, websites...&lt;/li&gt;&#xA;&lt;li&gt;Supporting users&lt;/li&gt;&#xA;&lt;li&gt;Keeping up to date with domain knowledge&lt;/li&gt;&#xA;&lt;li&gt;The list goes on.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And in the middle of this mountain of technology, you're supposed to create working products. Best in the class. ASAP and inexpensively, of course. Fun and challenging, definitely! :-) I couldn't imagine being tied to some particular platform, making one particular kind of software day after day.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-18T07:20:26.370" LastActivityDate="2010-10-18T07:20:26.370" />
  <row Id="12634" PostTypeId="2" ParentId="262" CreationDate="2010-10-18T07:07:39.830" Score="1" ViewCount="" Body="&lt;p&gt;I think academic still need the value of open source in JAVA. There are so many many powerful library (focused on academic purposes) developed on JAVA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I agree that JAVA will remain relevant, but for smaller segment. &lt;/p&gt;&#xA;" OwnerUserId="7022" LastActivityDate="2010-10-18T07:07:39.830" CommunityOwnedDate="2011-03-14T15:05:05.090" />
  <row Id="12635" PostTypeId="2" ParentId="12565" CreationDate="2010-10-18T07:34:15.347" Score="0" ViewCount="" Body="&lt;p&gt;Best out-of-the-box Linux distro out there is Ubuntu. It has everything that an ordinary user would want/need for his everyday tasks. But.... in my opinion with your CPU and Ram you shouldnt head for out-of-the-box distro becoase those distributions are heavy and you wouldnt have the best computing expirience for sure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So,my recommendation would be Ubuntu but,my vote is on ArchLinux - although it is not out-of-the-box distro, it is easy to install, work with and have fun with. &lt;/p&gt;&#xA;" OwnerUserId="5582" LastActivityDate="2010-10-18T07:34:15.347" />
  <row Id="12637" PostTypeId="2" ParentId="12565" CreationDate="2010-10-18T07:36:26.870" Score="0" ViewCount="" Body="&lt;p&gt;When it comes to programming I always found Debian the best. You're required to know what are you donig but:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) You can setup a really minimal system if you want (like 300 Mb) or so, installing really what you want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) You have virtually every existing (L)GPL library in the main repository at your disposal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general every Linux distribution is fine for general programming but I find that Debian (or Ubuntu for what that matters) are the best when it comes to #2: basically if a programming library is (L)GPL and used by more than 3 people, you can find it in the main repository.&lt;/p&gt;&#xA;" OwnerUserId="4738" LastActivityDate="2010-10-18T07:36:26.870" />
  <row Id="12638" PostTypeId="2" ParentId="4863" CreationDate="2010-10-18T07:40:43.367" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.bitc-lang.org/&quot; rel=&quot;nofollow&quot;&gt;BitC Programming Language&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BitC is a new systems programming language. It seeks to combine the flexibility, safety, and richness of Standard ML or Haskell with the low-level expressiveness of C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Design goals of BitC:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Provide full support for fine-grain data structure specifications, including hardware-defined data structures. Representation requirements are sometimes prescriptive! Check out defrepr.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Preserve mutability as a first-class notion in the language. Monads, effect types, and the like are wonderful things, but languages that rely on them have yet to demonstrate acceptable performance on systems problems.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Provide a modern type system in the style of Haskell or ML, including type inference and type classes, without giving up data structure representation and mutability.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Provide first class functions and type-safe abstraction mechanisms to programmers who can't give up performance to get them:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(define (add-one x) (+ 1 x))&#xA;add-one: (forall (Arith 'a) (fn 'a -&amp;gt; 'a))&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Provide a complete formal semantics in automated form, so that it is possible to reason formally about specialized BitC programs.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Develop the proving technology necessary to do useful verification about programs written in such a language.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-18T07:40:43.367" CommunityOwnedDate="2010-10-22T23:54:06.263" />
  <row Id="12639" PostTypeId="2" ParentId="4863" CreationDate="2010-10-18T07:42:45.187" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://github.com/graydon/rust&quot; rel=&quot;nofollow&quot;&gt;Rust Programming Language&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Rust is systems programming languages being developed by Mozilla. It's very preliminary work, but &lt;a href=&quot;http://github.com/graydon/rust/wiki/language-faq&quot; rel=&quot;nofollow&quot;&gt;the list of features&lt;/a&gt; suggests an interesting intersection of features. I'm particularly excited by the control over memory layout that Rust gives to the programmer, but it also has massive concurrency, structural typing, and the “ability to define complex invariants that hold over data structures” in its bag of tricks.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;[ &lt;a href=&quot;http://lambda-the-ultimate.org/node/4009&quot; rel=&quot;nofollow&quot;&gt;Source to the LtU discussion&lt;/a&gt; ]&lt;/p&gt;&#xA;" OwnerUserId="1968" LastEditorUserId="1968" LastEditorDisplayName="" LastEditDate="2010-10-18T08:42:27.130" LastActivityDate="2010-10-18T08:42:27.130" CommunityOwnedDate="2010-10-22T23:54:06.263" CommentCount="1" />
  <row Id="12640" PostTypeId="2" ParentId="2815" CreationDate="2010-10-18T07:47:54.880" Score="10" ViewCount="" Body="&lt;p&gt;I would want a placeholder syntax (&lt;code&gt;_&lt;/code&gt;) for lambda expressions (like in Scala).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider the following code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var namesOfAdultUsers = users.Where(c =&amp;gt; c.Age &amp;gt; 18).Select(c =&amp;gt; c.Name);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;With placeholder syntax, this could be written more succinctly as follows:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var namesOfAdultUsers = users.Where(_.Age &amp;gt; 18).Select(_.Name);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-18T07:47:54.880" CommunityOwnedDate="2010-10-18T07:47:54.880" CommentCount="9" />
  <row Id="12641" PostTypeId="2" ParentId="5168" CreationDate="2010-10-18T08:02:45.393" Score="2" ViewCount="" Body="&lt;p&gt;While working for one of the largest job Website in the country I found some strange entries in the logfile for one of our images (.gif file). It was getting far too much hits. And all hits had the same strange referer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seemed that a consumer organization had created a kind of bandwidth test. To test the bandwidth of internet providers. And a lot of people used it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The referer I found had was Base64 encoded. When I decoded it, it contained: &lt;code&gt;user=....;password=....&lt;/code&gt;. Yes, the password to login to the site. When logging in, you could find all kinds of personal data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I contacted the orginazation about this, they where very slow in reply. After all they are are consumer organization, used to critic others, not used to getting critic theirselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So after 2 months, and a lot of mails, I noticed a change in the referer. The Base64 string was now encrypted. By reversing it!!! (A reverse Base64 string is easily detected because a lot of them start with a = instead of ending with it).&lt;/p&gt;&#xA;" OwnerUserId="1329" LastActivityDate="2010-10-18T08:02:45.393" CommentCount="1" />
  <row Id="12642" PostTypeId="2" ParentId="12626" CreationDate="2010-10-18T08:07:29.377" Score="1" ViewCount="" Body="&lt;p&gt;To the coordinator(s).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there is no clear info, I suggest you to pick one random contributor and ask him who is in charge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pick another contributor until you have a clear answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case, send the details about the problem to each person you contact.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-18T08:07:29.377" CommentCount="2" />
  <row Id="12643" PostTypeId="2" ParentId="12593" CreationDate="2010-10-18T08:20:40.760" Score="4" ViewCount="" Body="&lt;p&gt;I've never written such a letter, I've never heard of this practice before and (I've been handling recruitement for development staff for 2 years now) have never received one. Is this a cultural thing?&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-18T08:20:40.760" CommentCount="4" />
  <row Id="12644" PostTypeId="2" ParentId="12593" CreationDate="2010-10-18T08:22:05.957" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I never send thank you email because I think it's not appropriate.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Many interviewers, including me, hate that. It can be taken as a sort of attempt to influence your judgment, and may do the exact opposite.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I'm sure that many interviewers like it too!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what to do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you are sure it will be positively accepted, don't send it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To avoid any risks, don't send it at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: &lt;em&gt;I wrote this based on my own experience. I'm from Europe, and I understand that this approach may be linked to the culture of your country. According to other answers, the vast majority of US citizen seems to like the idea. So if you are in US, this may be a good thing.&lt;/em&gt; &lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-18T08:22:05.957" CommentCount="1" />
  <row Id="12645" PostTypeId="1" AcceptedAnswerId="12646" CreationDate="2010-10-18T08:32:35.610" Score="12" ViewCount="262" Body="&lt;p&gt;Some time ago I wrote a very small python script that periodically checked an xml feed for new entries, and alerted the user to new entries when present.&#xA;I wrote this for myself, so it was essentially a console based program that anyone comfortable with a console interface could have used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After a while I decided it could be of more use to other people and began to tidy it up, sanitize inputs, remove bugs. It occurred to me that because I'd written the script I knew how to use it efficiently, accurately etc. Others might not, so I started adding a GUI. This started out as a simple menu, and then expanded to a more full GUI with both an interface and options menu. I then added stored user preferences and also storage for previously searched xml feeds to speed up repeat searches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I added logging to help debug the application in case things go wrong, brought the application up to the latest available stable python codebase for my chosen platform and improved dialog features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've bugfixed and commented my code clearly, and yet I still have things I think can be done to improve the app before I make it available to alpha testers. It's a far far cry from my original 20-30 line script. What I anticipated would take me just an hour or two to go from proof of concept to an acceptable use program has taken 10-20 times that. (I'm still a noob, and stuff takes me a long time, but still....)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you know when to stop adding/tweaking/fixing stuff and let your baby crawl out in the open?&lt;/p&gt;&#xA;" OwnerUserId="100" LastActivityDate="2010-10-18T14:26:38.910" Title="How do you know when to stop adding features?" Tags="&lt;development-process&gt;&lt;product-features&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="3" />
  <row Id="12646" PostTypeId="2" ParentId="12645" CreationDate="2010-10-18T08:38:48.677" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;When you hit the deadline.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you have no deadline, this is your problem...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is how I work:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I add new features/bugs in my product backlog.&lt;/li&gt;&#xA;&lt;li&gt;I prioritize the whole product backlog on business value and estimated (the last is optional in case of personnal project).&lt;/li&gt;&#xA;&lt;li&gt;I allocate work time to myself. The release date is the end of that time.&lt;/li&gt;&#xA;&lt;li&gt;I start with the very first in the list. I work on a feature a time. To be completed, a feature must be really complete including documentation (at the end of a feature, I can potentially ship the product).&lt;/li&gt;&#xA;&lt;li&gt;I take the next one until my allocated time is consumed.&lt;/li&gt;&#xA;&lt;li&gt;If the time is consumed when I'm building a feature, I discard it temporaly.&lt;/li&gt;&#xA;&lt;li&gt;When the allocated time is consumed, I take the latest build and make a release with it.&lt;/li&gt;&#xA;&lt;li&gt;I repeat the process from point 1.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-18T08:44:45.200" LastActivityDate="2010-10-18T08:44:45.200" CommentCount="5" />
  <row Id="12647" PostTypeId="2" ParentId="12645" CreationDate="2010-10-18T08:47:20.020" Score="3" ViewCount="" Body="&lt;p&gt;Make a &lt;a href=&quot;http://en.wikipedia.org/wiki/Software_Requirements_Specification&quot; rel=&quot;nofollow&quot;&gt;SRS&lt;/a&gt; then code according to the requirements. When you've achieved all the goals mentioned in the SRS it's time to stop and test your product. &lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-10-18T08:47:20.020" CommentCount="3" />
  <row Id="12648" PostTypeId="2" ParentId="12645" CreationDate="2010-10-18T08:52:25.613" Score="1" ViewCount="" Body="&lt;p&gt;When you are sure about the stability of your software go for a release though there can be pending features. Stability is more important than features. Get the feedback, incorporate with existing features and decide on what has to be delivered next and when!  &lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-10-18T08:52:25.613" />
  <row Id="12649" PostTypeId="2" ParentId="12581" CreationDate="2010-10-18T08:53:38.470" Score="1" ViewCount="" Body="&lt;p&gt;In my previous job I was pretty much in the same role as you are describing. I used primarily LabVIEW and was developing automation solution for them. I need to work with a team, but I was the only one developing the software. All the other guys where h/w related. It was lot of fun and learned a lot too! Starting from the source control to the backup plan, the technology to use for different solution etc, I could decide and test.&lt;/p&gt;&#xA;" OwnerUserId="4509" LastActivityDate="2010-10-18T08:53:38.470" />
  <row Id="12650" PostTypeId="2" ParentId="12584" CreationDate="2010-10-18T09:00:23.047" Score="0" ViewCount="" Body="&lt;p&gt;I used to have a keyboard with Danish layout. I switched the layout to EN-US because I don't look at keys when typing but still couldn't get used to it because the &quot;\&quot; key was on the left of the &quot;Z&quot; key. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I have a keyboard with &quot;normal&quot; layout and I'm happy with it.&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-10-18T09:00:23.047" />
  <row Id="12651" PostTypeId="1" CreationDate="2010-10-18T09:06:50.637" Score="6" ViewCount="181" Body="&lt;p&gt;Hey guys. I often need a background image to distribute with a demo and icons for sites. I thought it would be a good idea to create a list. So far i only know of &lt;a href=&quot;http://www.famfamfam.com/lab/icons/silk/&quot; rel=&quot;nofollow&quot;&gt;famfamfam Silk icon set&lt;/a&gt; which is under the creative commons attribute 2.5 license.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you guys use/like?&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-10-18T17:11:11.583" Title="List of stock resource (icons, background, audio, etc)" Tags="&lt;resources&gt;&lt;media&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="7" />
  <row Id="12652" PostTypeId="2" ParentId="12645" CreationDate="2010-10-18T09:07:55.613" Score="1" ViewCount="" Body="&lt;p&gt;You can always nurse a project for ever and ever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A very good rule is that you should never add things that are not in an approved use case.  This ensures that you don't end up with a lot of things that would be nice to have, but which nobody uses.  Approving ensures that others than you agree that this is needed in your project.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-18T09:07:55.613" />
  <row Id="12653" PostTypeId="1" CreationDate="2010-10-18T09:19:19.360" Score="19" ViewCount="535" Body="&lt;p&gt;How often when you're programming do you find yourself having to solve a purely mathematical or algorithmical problem? I mean problems such as &quot;Find the shortest path between two points in a graph&quot;, &quot;What's the derivative of a given function?&quot;, &quot;Find the greatest common denomitor&quot;, &quot;Find the most optimal solution from a given search tree&quot;, &quot;What's the maximum global value of a given function?&quot;, etc.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-19T13:32:46.250" Title="How often do you have to solve pure mathematical or algorithmical problems?" Tags="&lt;programming&gt;&lt;math&gt;&lt;algorithms&gt;" AnswerCount="20" FavoriteCount="2" />
  <row Id="12654" PostTypeId="2" ParentId="6677" CreationDate="2010-10-18T09:21:46.870" Score="1" ViewCount="" Body="&lt;p&gt;Class diagram creation should be done, during and after because the model should be interactive with the code and requirements modifications.&#xA;First you need to create a class diagram to start your project. It would help to visualize at a higher level of abstraction your objects. You will be able to create a stable and intelligent software architecture.&#xA;Then you need to code and sometimes you will notice that the architecture which seems to be well in UML is not really possible in the code. You then change you code and architecture.&#xA;Finally you update your model with code modification and generate documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my last project decision makers have changed my requirements over 50 times in the last year. It is really painful and UML help me to keep traceability of changes and why.&#xA;UML should allows model and code merge at any time in an iterative way (e.g. from code to model, from model to code, from both, from code after refactoring etc...)&#xA;I use Omondo EclipseUML for Helios and I am really happy with this tool. My favorite feature is the model merge which allows me to update my model at any time without loosing model information. I also like entities modeling directly in the class diagram and create the database using stereotype and hibernate. Really powerful and complete from object to database !! &lt;/p&gt;&#xA;" OwnerUserId="5283" LastActivityDate="2010-10-18T09:21:46.870" />
  <row Id="12655" PostTypeId="2" ParentId="12645" CreationDate="2010-10-18T09:26:46.127" Score="0" ViewCount="" Body="&lt;p&gt;I dont stop adding features anymore. I just try to get the app out there ASAP and write txt files if i need to. Then i can decide when to stop and when to work on something different&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also helps that i like doing the min possible to get something done (without resorting to hacking).&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-10-18T09:26:46.127" />
  <row Id="12656" PostTypeId="2" ParentId="954" CreationDate="2010-10-18T09:33:22.510" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Maintainability&lt;/strong&gt;, &lt;strong&gt;usability&lt;/strong&gt; and &lt;strong&gt;utility&lt;/strong&gt; are the three most important aspects of a program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usability and Utility are obvious requirements:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A useful but unusable application won't get used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, a usable application that provides no benefit won't get used either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maintainability is sometimes overlooked:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An unmaintainable application &lt;em&gt;might&lt;/em&gt; meet user's requirements, but may not do so if requirements have not been gathered or if user requirements change. OTOH, a program that easy to maintain allows deficiencies in usability, performance, scalability, etc. to be addressed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;An extreme view is that all development is a form of maintenance: even the first line of code is maintenance of a blank slate in the face of changing requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maintainability = usability + uitility from the programmer's perspective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All other attributes are by-products of these three - maintainability, usability and utility.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastEditorUserId="1928" LastEditorDisplayName="" LastEditDate="2010-10-18T09:38:37.130" LastActivityDate="2010-10-18T09:38:37.130" />
  <row Id="12657" PostTypeId="2" ParentId="1952" CreationDate="2010-10-18T09:37:39.317" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://valgrind.org/downloads/variants.html&quot; rel=&quot;nofollow&quot;&gt;http://valgrind.org/downloads/variants.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;https://code.ros.org/gf/project/opencv/&quot; rel=&quot;nofollow&quot;&gt;https://code.ros.org/gf/project/opencv/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-18T09:37:39.317" />
  <row Id="12658" PostTypeId="2" ParentId="12645" CreationDate="2010-10-18T09:39:39.887" Score="1" ViewCount="" Body="&lt;p&gt;It depends on why you're adding features. Are project owners asking for it? users? QA?programmers?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Add the features you have to.&lt;/li&gt;&#xA;&lt;li&gt;Sift through features that are important.&lt;/li&gt;&#xA;&lt;li&gt;Ignore features that are nice to have.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Focus on the program's purpose, and make its purpose focused. Feature requests that extend its purpose should be questioned thoroughly before it becomes a swiss army knife.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-18T09:39:39.887" CommentCount="3" />
  <row Id="12659" PostTypeId="2" ParentId="12653" CreationDate="2010-10-18T09:48:15.210" Score="19" ViewCount="" Body="&lt;p&gt;Never! I am in developing a enterprise web application for the past 4+ years and have not crossed any point where I need to solve any pure mathematical problems&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-10-18T09:48:15.210" />
  <row Id="12660" PostTypeId="2" ParentId="12645" CreationDate="2010-10-18T09:52:57.343" Score="2" ViewCount="" Body="&lt;p&gt;In the short term, when you have something that works reliably and doesn't crash out. Even if it doesn't do &lt;em&gt;everything&lt;/em&gt; it &lt;em&gt;could&lt;/em&gt; do if you worked on it indefinitely. &lt;em&gt;Shipping&lt;/em&gt; as the saying goes &lt;em&gt;is a feature&lt;/em&gt;. Reliability and restricted feature set gives you an opportunity for the core functionality to be tested by real people in the real world, who will find things that you never thought of that break your code in ways that would never cross your mind. The less features you have, at this point, the easier it will be to fix those early problems. As the core functionality works more reliably you can start implementing the other &quot;nice to have&quot; stuff with the knowledge that your most important and central code still works well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the long term: When you have completed and documented the plug-in system that will allow your users ( and of course you ) to implement new features quickly and easily if you need them. That should be the last feature you need to add- after that it's all plug-ins.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-18T09:52:57.343" />
  <row Id="12661" PostTypeId="2" ParentId="12653" CreationDate="2010-10-18T10:22:28.493" Score="6" ViewCount="" Body="&lt;p&gt;A few times a year - but I'm developing scientific software! I can imagine that most programmers will absolutely never need to solve such problems. And even when you do, it's usually just applying some well-known approach to a specific problem rather than actually solving a novel problem.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-18T10:22:28.493" />
  <row Id="12662" PostTypeId="2" ParentId="12653" CreationDate="2010-10-18T10:37:03.580" Score="4" ViewCount="" Body="&lt;p&gt;Rarely, and because of the lack of this during work, I sometimes launch &quot;home projects&quot; to keep my brain satisfied. However usually after solving the problem, the project dies with it :(&lt;/p&gt;&#xA;" OwnerUserId="1922" LastActivityDate="2010-10-18T10:37:03.580" />
  <row Id="12663" PostTypeId="2" ParentId="12651" CreationDate="2010-10-18T10:51:46.370" Score="3" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://sxc.hu&quot; rel=&quot;nofollow&quot;&gt;stock.xchng&lt;/a&gt; for stock images - all the images are free, although you need to register (also for free).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: and &lt;a href=&quot;http://www.smashingmagazine.com/&quot; rel=&quot;nofollow&quot;&gt;Smashing Magazine&lt;/a&gt; also has a lot of &lt;a href=&quot;http://www.smashingmagazine.com/tag/icons/&quot; rel=&quot;nofollow&quot;&gt;icon&lt;/a&gt; and &lt;a href=&quot;http://www.smashingmagazine.com/category/graphics/&quot; rel=&quot;nofollow&quot;&gt;graphic&lt;/a&gt; resources (along with other free stuff - fonts etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For more icons there's also &lt;a href=&quot;http://icons.mysitemyway.com/&quot; rel=&quot;nofollow&quot;&gt;icons.mysitemyway.com&lt;/a&gt;, which has a lot of glossy icon sets (mainly focussing on social media icons).&lt;/p&gt;&#xA;" OwnerUserId="1698" LastEditorUserId="1698" LastEditorDisplayName="" LastEditDate="2010-10-18T14:28:23.917" LastActivityDate="2010-10-18T14:28:23.917" />
  <row Id="12664" PostTypeId="1" CreationDate="2010-10-18T10:56:09.343" Score="3" ViewCount="103" Body="&lt;p&gt;I'm writing an article about .NET-Flash interoperation. I've made some interesting development for my previous project and it's quite original. I'm not experienced in writing articles, so my question is, what do good articles have in common? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some information about the topic:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I discuss using the Flash ActiveX player&lt;/li&gt;&#xA;&lt;li&gt;Communication between host and the flash application&lt;/li&gt;&#xA;&lt;li&gt;Adding features like disabling right-clicking and loading from any source&lt;/li&gt;&#xA;&lt;li&gt;Subclassing the window procedure to achieve almost complete control over the player, adding preview mouse and keyboard events&lt;/li&gt;&#xA;&lt;li&gt;Designing a better api&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What I have right now is a brief &quot;story&quot; of developing a nicer and more capable API around the flash player. Is it a good approach? I don't want to turn it into a step-by-step howto. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My goal with this article (and the others I plan to write) to sharpen my &quot;Google CV&quot; (i.e. what comes up when someone searches my name) and get some name in the field I'm working in.&lt;/p&gt;&#xA;" OwnerUserId="3530" LastActivityDate="2010-10-18T15:04:01.583" ClosedDate="2010-10-18T20:52:40.137" Title="What makes a good article?" Tags="&lt;career&gt;&lt;articles&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="12665" PostTypeId="2" ParentId="12626" CreationDate="2010-10-18T11:00:36.457" Score="3" ViewCount="" Body="&lt;p&gt;Talk to &lt;a href=&quot;http://secunia.com/&quot; rel=&quot;nofollow&quot;&gt;Secunia&lt;/a&gt; (or any of the other bug databases), and let them handle it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They do this on a daily basis, and probably already have a procedure for if they can't identify an appropriate contributor for a project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I would guess, if there's no contacts for the library itself, they'd contact major projects currently using the library, allowing any widespread software to fix/workaround any security issues, before releasing details to the public.)&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-10-18T11:00:36.457" CommentCount="1" />
  <row Id="12666" PostTypeId="2" ParentId="12653" CreationDate="2010-10-18T11:13:33.200" Score="1" ViewCount="" Body="&lt;p&gt;The last time I did run into this seriously I'm sorry to say I never actually figured out the solution. Years of web programming have, it seems, weakened me to the hard stuff. In my defence I was experimenting with 3D programming and basically it was lots of trigonometry, which I haven't studied for 15 years and then only worked with in two dimensions, and then lots of Quaternions which are very confusing indeed to use if you're not big on three ( four? ) dimensional geometry...&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-18T11:13:33.200" />
  <row Id="12667" PostTypeId="2" ParentId="12626" CreationDate="2010-10-18T11:15:46.723" Score="1" ViewCount="" Body="&lt;p&gt;If the project is open source, then I don't see a problem posting your findings directly to the mailing list. Particularly if you have a patch already (but even if you didn't). If managed to tell someone about it &quot;privately&quot;, as soon as they committed the fix to the repo (which I assume is public as well) everybody would know anyway.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-18T11:15:46.723" />
  <row Id="12668" PostTypeId="2" ParentId="12626" CreationDate="2010-10-18T11:17:51.857" Score="0" ViewCount="" Body="&lt;p&gt;Report the bug and if noone cares then clone the repository on github and fix the error there, and point to that repository in the original bugreport so others can get a fixed version.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember to merge the clone regularily to pick up other fixes.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-18T11:17:51.857" CommentCount="2" />
  <row Id="12669" PostTypeId="2" ParentId="12653" CreationDate="2010-10-18T11:18:34.773" Score="3" ViewCount="" Body="&lt;p&gt;I like to write games in my spare time, and you need to do it a fair bit with games (at least, certain aspects - particularly graphics, physics and AI - require solving purely mathematical problems).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in my day job, it's very rare.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-18T11:18:34.773" />
  <row Id="12670" PostTypeId="2" ParentId="12581" CreationDate="2010-10-18T11:22:51.180" Score="0" ViewCount="" Body="&lt;p&gt;I'm the web developer for a non-web-based company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The 'portals' (I can't stand the term — seems like marketing speak to me) I maintain (and someday will create) are used for provisioning, billing, monitoring, returns etc. There are two internal ones and 3 which are used both internally and by our customers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's nice to have a wide variety of things to work on (especially UDP sockets for monitoring), but a shame that &lt;em&gt;everything&lt;/em&gt; is in PHP/MySQL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP/SQL is definitely in demand, but ruby/RoR is the bandwagon some people might want to jump on in the web development arena.&lt;/p&gt;&#xA;" OwnerUserId="912" LastActivityDate="2010-10-18T11:22:51.180" />
  <row Id="12671" PostTypeId="2" ParentId="12565" CreationDate="2010-10-18T11:34:40.717" Score="1" ViewCount="" Body="&lt;p&gt;Red Hat is very popular among hosting companies, so CentOS, Red Hat, and Fedora are generally good because of that.  I also understand that creating a .rpm file is fairly simple, which means that once you've built something it is easier to share.  Personally, I can't stand yum so I'm more on the Ubuntu/Debian side of things (yes, there's more to it than that, but yum is truly wretched).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not terribly impressed with Debian, though.  Most of what you can do with Debian is actually easier with Ubuntu and, not only that, since there are far more Ubuntu users than there are Debian there are more step-by-step instructions which help you do things which you never would have tried otherwise.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will say this, though, it gives you the sense of being far closer &quot;to the machine&quot; than Ubuntu does.  You can still mess your Ubuntu machine up pretty bad, but that is not nearly as easy as it is with Debian.  The software is more &quot;bleeding edge&quot;, the preferences are more exposed... It is the computer version of, &quot;With great power comes greate responsibility.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&lt;li&gt;Are you interested in something relatively simple with a large user base? Ubuntu all the way (Whether you use Ubuntu, Kubuntu, Xubuntu, or whatever doesn't *terribly* matter).&lt;br /&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Is this work related and do you have to deal with someone else hosting?  Are you interested in setting up a dev environment which directly mimics that production environment? Fedora comes to mind.&lt;br /&gt;&#xA;&lt;/li&gt;&lt;li&gt;Do you know what you're doing?  Do you want to have access to the most recent version of software, immediately?  Can you eat Linux config for lunch?  Debian all the way.&#xA;&lt;/li&gt;&lt;/ol&gt;&#xA;" OwnerUserId="5602" LastActivityDate="2010-10-18T11:34:40.717" />
  <row Id="12672" PostTypeId="1" AcceptedAnswerId="12676" CreationDate="2010-10-18T11:37:30.263" Score="13" ViewCount="359" Body="&lt;p&gt;Imagine the following scenario:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You've detected that your (or someone else's) program has a bug - a function produces the wrong result when given a particular input. You examine the code and can't find anything wrong: it just seem to bog out when given this input.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can now do one of two things: you either examine the code further until you've found the actual cause; or you slap on a bandage by adding an &lt;code&gt;if&lt;/code&gt; statement checking if the input is this particular input - if it is, return the expected value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, applying the bandage would be completely unacceptable. If the code is behaving unexpectingly on this input, what &lt;em&gt;other&lt;/em&gt; input that you've missed will it react strangely to? It just doesn't seem like a fix at all - you're just shoveling the problem under the rug.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I wouldn't even consider doing this, I'm surprised at how often the professors and books keep reminding us about how applying &quot;bandage&quot; fixes is not a good idea. So this makes me wonder: just how common are these kinds of &quot;fixes&quot;?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-18T13:53:21.160" LastActivityDate="2010-12-26T20:38:51.967" Title="How common are &quot;bandage&quot; fixes?" Tags="&lt;best-practices&gt;&lt;programming-practices&gt;&lt;debugging&gt;" AnswerCount="10" FavoriteCount="1" />
  <row Id="12673" PostTypeId="2" ParentId="12672" CreationDate="2010-10-18T11:43:32.083" Score="1" ViewCount="" Body="&lt;p&gt;Depends a lot on the age of the code base I think. On old code I think it is very common, rewriting that 20 year old COBOL routine is not fun. Even on moderately new code that is in production it is still pretty common.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-18T11:43:32.083" />
  <row Id="12674" PostTypeId="2" ParentId="12653" CreationDate="2010-10-18T11:46:04.827" Score="1" ViewCount="" Body="&lt;p&gt;For standard enterprise or web development type apps it is very rare. In fact in the last 15 years of my professional development career the only time I can remember needing to was when developing an AutoCAD plugin that needed to do some serious maths.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-18T11:46:04.827" />
  <row Id="12675" PostTypeId="2" ParentId="12672" CreationDate="2010-10-18T12:02:19.773" Score="0" ViewCount="" Body="&lt;p&gt;It's difficult to say without more context - in your example, why is adding the if statement not the correct fix?  Is it because there's supposedly some other block of code in there somewhere that is supposed to be dealing with that input?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How often bandage fixes are used depends on a number of things such as how complex the code is, whether the person most familiar with the code is available (the person responsible for Craig's 20-year-old COBOL routine may have left the company years ago) and the timescales involved.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;With a deadline staring you in the face, you will sometimes plump for the safer fix, even if it is just slapping a plaster on rather than fixing the root cause.  That's ok as long as you don't make things worse, but it's important to track the fact that it's still not correct and still needs to be fixed properly.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-18T12:02:19.773" CommentCount="2" />
  <row Id="12676" PostTypeId="2" ParentId="12672" CreationDate="2010-10-18T12:03:36.743" Score="15" ViewCount="" Body="&lt;p&gt;Time/deadline pressures are one reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are up against a tight deadline and you've got your boss breathing down your neck (possibly literally!) then doing this and thinking &quot;I'll come back and fix this later&quot; is very tempting and might be the only thing you can do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course the number of times you actually go back and fix it properly are very few and far between because you have a new problem that needs fixing yesterday.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-18T12:03:36.743" />
  <row Id="12677" PostTypeId="2" ParentId="954" CreationDate="2010-10-18T12:04:29.597" Score="1" ViewCount="" Body="&lt;p&gt;Like for &quot;the Art of War&quot; : make sure you don't have to code in the end. Code only if  necessary.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-10-18T12:04:29.597" />
  <row Id="12678" PostTypeId="1" CreationDate="2010-10-18T12:20:02.830" Score="2" ViewCount="267" Body="&lt;p&gt;I wonder, why Google don't adapt tomcat, although it is the de-facto servlet container?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have any idea about that?&lt;/p&gt;&#xA;" OwnerUserId="5575" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-18T12:33:31.470" LastActivityDate="2010-10-18T12:33:31.470" ClosedDate="2010-10-18T18:12:01.597" Title="Why Google adapted Jetty instead of tomcat?" Tags="&lt;google&gt;&lt;google-app-engine&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="12679" PostTypeId="2" ParentId="12678" CreationDate="2010-10-18T12:23:27.350" Score="3" ViewCount="" Body="&lt;p&gt;Jetty is a great lightweight servlet container that runs just with a few megabytes of memory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See also: &lt;a href=&quot;http://www.infoq.com/news/2009/08/google-chose-jetty&quot; rel=&quot;nofollow&quot;&gt;Google Chose Jetty for App Engine&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The key features that Google would have chosen jetty for were size and flexibility. In the cloud, size is important, because if you are running 10s of thousands of instances of jetty (as Google are), then every MB saved per server is 10s of GBs less memory needed (or more memory available for applications).&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Jetty is also designed to be pluggable and extensible, so Google have been able to customize it to a high degree. They have plugged in their own HTTP connector, Google authentication and their own session clustering. Strangely enough, these same features mean that as well as being great for the cloud, jetty is really good for embedding in small devices likes phones and set top boxes.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-18T12:29:06.103" LastActivityDate="2010-10-18T12:29:06.103" />
  <row Id="12680" PostTypeId="2" ParentId="12664" CreationDate="2010-10-18T12:26:44.377" Score="0" ViewCount="" Body="&lt;p&gt;It all depends on your readership.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you write an article for a blog or for an IEEE magazine?&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-18T12:26:44.377" CommentCount="1" />
  <row Id="12681" PostTypeId="2" ParentId="12678" CreationDate="2010-10-18T12:27:24.857" Score="0" ViewCount="" Body="&lt;p&gt;Jetty is very well suited for being embedded inside something else, like e.g. Eclipse.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tomcat used to be the reference servlet implementation, which was then made good enough to run in production so there was not much need to use another server in production.  These days Glassfish is the reference implementation, and with the Web Profile, a very strong contender for taking over from Tomcat.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-18T12:27:24.857" />
  <row Id="12682" PostTypeId="2" ParentId="12651" CreationDate="2010-10-18T12:31:23.103" Score="2" ViewCount="" Body="&lt;p&gt;Two great icon sets:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://p.yusukekamiyamane.com/&quot; rel=&quot;nofollow&quot;&gt;Fugue icon set, 3000 icons, 16px, shadowed and shadowless flavour, also some 24px and 32px&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.fatcow.com/free-icons/&quot; rel=&quot;nofollow&quot;&gt;Fat-Cow icon set, 1700 icons, 32px and 16px&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Both are licensed under Creative Commons Attribution 3.0 license.&lt;/p&gt;&#xA;" OwnerUserId="5615" LastActivityDate="2010-10-18T12:31:23.103" />
  <row Id="12683" PostTypeId="1" AcceptedAnswerId="12694" CreationDate="2010-10-18T12:32:21.587" Score="11" ViewCount="475" Body="&lt;p&gt;Pseudocode helps us understand tasks in a language-agnostic manner. Is it best practice or suggested approach to have pseudocode creation as part of the development lifecycle? For instance:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Identify and split the coding tasks&lt;/li&gt;&#xA;&lt;li&gt;Write pseudocode&lt;/li&gt;&#xA;&lt;li&gt;Get it approved [by PL or TL]&lt;/li&gt;&#xA;&lt;li&gt;Start Coding based on Pseudocode&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Is this a suggested approach? Is it practiced in the industry?&lt;/p&gt;&#xA;" OwnerUserId="5605" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-18T22:19:05.170" LastActivityDate="2010-10-19T22:44:16.963" Title="Should one use pseudocode before actual coding?" Tags="&lt;development-process&gt;&lt;programming-practices&gt;&lt;design&gt;&lt;software-engineering&gt;&lt;pseudocode&gt;" AnswerCount="14" CommentCount="2" FavoriteCount="4" />
  <row Id="12684" PostTypeId="2" ParentId="4863" CreationDate="2010-10-18T12:34:25.147" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://whiley.org/about/overview/&quot; rel=&quot;nofollow&quot;&gt;Whiley&lt;/a&gt; is a language that claims to eliminate error on compile time basically through contracts.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-10-18T12:34:25.147" CommunityOwnedDate="2010-10-22T23:54:06.263" />
  <row Id="12685" PostTypeId="2" ParentId="12653" CreationDate="2010-10-18T12:36:20.510" Score="1" ViewCount="" Body="&lt;p&gt;At work: never (web development). The only problems I encounter are logic problems, which are straightforward enough once you get your head round them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Outside of work, as with other answers, I start different projects to try out algorithms and so on.&lt;/p&gt;&#xA;" OwnerUserId="1698" LastActivityDate="2010-10-18T12:36:20.510" />
  <row Id="12686" PostTypeId="2" ParentId="12594" CreationDate="2010-10-18T12:39:36.987" Score="1" ViewCount="" Body="&lt;p&gt;Use a variant of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Null_Object_pattern&quot; rel=&quot;nofollow&quot;&gt;NullObject&lt;/a&gt; pattern as a function return value, which provides diagnostic information of the error and its cause yet doesn't introduce corrupt values.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When messages are sent to the ErrorObject, it fulfills the responsibilities of its interface without side-effects. (Like a &lt;a href=&quot;http://en.wikipedia.org/wiki/NOP&quot; rel=&quot;nofollow&quot;&gt;NOP&lt;/a&gt;.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When context objects specifically need to check for errors, it can query the ErrorObject for details.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When debugging (or testing), return values can be queried to determine what triggered unexpected results or errors.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-18T12:39:36.987" />
  <row Id="12687" PostTypeId="2" ParentId="12651" CreationDate="2010-10-18T12:49:41.647" Score="1" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.iconarchive.com/&quot; rel=&quot;nofollow&quot;&gt;www.iconarchive.com&lt;/a&gt; a lot. They have quite a few different icons sets but you have to check the license since not all of them are free&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-10-18T12:49:41.647" />
  <row Id="12688" PostTypeId="2" ParentId="12594" CreationDate="2010-10-18T12:52:06.970" Score="1" ViewCount="" Body="&lt;p&gt;In some languages, the stdlib provides a type &lt;code&gt;Option&lt;/code&gt;, often used on values returned by functions. Returning an &lt;code&gt;Option&lt;/code&gt; is an alternative to returning null or -1, which leverages the type system. It works well with pattern matching, if your language supports it. Scala and Haskell both have an option Type&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding the handling of exceptions, I can think of two languages which have specific features :&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Java&lt;/strong&gt;, whose exceptions can be checked. This means that the exceptions possibly thrown by a method are part of the method's signature. If used with care, I think it is a great concept.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Common Lisp&lt;/strong&gt;, where a block that catches an exception can provide different ways of handling the error. The choice of which error-handling scenario to use is determined by a code which is lower on the stack. Okay, it's not easy to explain, but the advantage is that the higher level code can choose the type of error-handling to use, without the need of unwinding the stack. The best usage example is the Common List interpreter itself : when an exceptions is thrown, the interpreter prompts the user on the CLI, for what to do. You can choose &quot;retry&quot;, to run the faulty code again, or you can choose &quot;ignore&quot; to continue anyway, or you can choose &quot;propagate the exception&quot;. See &lt;a href=&quot;http://www.gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts.html&quot; rel=&quot;nofollow&quot;&gt;http://www.gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts.html&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="3527" LastActivityDate="2010-10-18T12:52:06.970" />
  <row Id="12689" PostTypeId="2" ParentId="12672" CreationDate="2010-10-18T12:57:07.917" Score="5" ViewCount="" Body="&lt;h1&gt;Time&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Is the #1 reason in my opinion. Although if the problem is codebase wise I might take more time to investigate it. Often my &quot;bandage&quot; fixes involve CSS or UI tweaks. I've written some pretty nasty inline CSS and JavaScript to deal with them quickly. Going back and fixing it is always an option if you get the time.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-18T12:57:07.917" CommentCount="1" />
  <row Id="12690" PostTypeId="2" ParentId="12645" CreationDate="2010-10-18T13:00:27.793" Score="0" ViewCount="" Body="&lt;p&gt;I'd suggest you timebox it. Give yourself a say week. Create a list of work to complete during that week, and make sure if you have a feature you can't complete you can back it out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the week release it. Release early, release often.&lt;/p&gt;&#xA;" OwnerUserId="1896" LastActivityDate="2010-10-18T13:00:27.793" CommentCount="1" />
  <row Id="12691" PostTypeId="2" ParentId="12683" CreationDate="2010-10-18T13:00:35.743" Score="2" ViewCount="" Body="&lt;p&gt;I would definitely recommend pseudocode. It helps you clarify what you are going to do and identify items you may have forgotten or potential problems. Its far easier/faster to fix your code when it's still in the planning stages rather then waiting until you've already coded a large portion of it.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-10-18T13:00:35.743" />
  <row Id="12692" PostTypeId="2" ParentId="12683" CreationDate="2010-10-18T13:09:23.337" Score="2" ViewCount="" Body="&lt;p&gt;More and more, pseudocode is written graphically with tools like UML. For instance, try out &lt;a href=&quot;http://yuml.me/&quot; rel=&quot;nofollow&quot;&gt;yUML&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-10-18T13:09:23.337" />
  <row Id="12693" PostTypeId="2" ParentId="12653" CreationDate="2010-10-18T13:15:22.327" Score="1" ViewCount="" Body="&lt;p&gt;Too few times.  I would rather like my brain to stay in shape by doing any kind of math, but in database apps or such, that unfortunately never happens.&lt;/p&gt;&#xA;" OwnerUserId="1058" LastActivityDate="2010-10-18T13:15:22.327" />
  <row Id="12694" PostTypeId="2" ParentId="12683" CreationDate="2010-10-18T13:19:27.110" Score="8" ViewCount="" Body="&lt;p&gt;Writing pseudocode before coding is certainly better than just coding without planning, but it's far from being a best practice. Test-driven development is an improvement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even better is to analyze the problem domain and design solutions using techniques like user stories, use cases, CRC cards, diagramming, as espoused by methodologies such as Cleanroom, RUP, Lean, Kanban, Agile, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thoroughly understanding the nature of the problem and the components you use to implement the solution is the principle behind best practices.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-18T13:19:27.110" CommentCount="10" />
  <row Id="12695" PostTypeId="2" ParentId="12683" CreationDate="2010-10-18T13:21:04.117" Score="1" ViewCount="" Body="&lt;p&gt;I'm going to disagree with the previous answers and say no, but with a caveat: you can get rid of psuedocode only if you're feverishly devoted to refactoring your code to deal with issues that crop up. Psuedocode is, at its essence, a way of defining your code before you define your code; it's an unnecessary abstraction in many circumstances, and since your code will never be perfect the first time (and likely, not follow the psuedocode's design to completion), it seems extraneous to me.&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-10-18T13:21:04.117" />
  <row Id="12696" PostTypeId="1" AcceptedAnswerId="12701" CreationDate="2010-10-18T13:31:55.633" Score="13" ViewCount="276" Body="&lt;p&gt;Recently I've been thinking I spend too much time on SO and general learning / keeping up with technology rather than actual coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is what ratio's of your time do you spend on the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Actual coding&lt;/li&gt;&#xA;&lt;li&gt;Reading around the subject, improving knowledge, learning new things&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-10-18T17:19:59.500" Title="What amount of time do you spend doing each of the following" Tags="&lt;productivity&gt;&lt;work-environment&gt;&lt;work-time&gt;&lt;research&gt;" AnswerCount="6" FavoriteCount="2" />
  <row Id="12697" PostTypeId="2" ParentId="5019" CreationDate="2010-10-18T13:32:05.820" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Somehow I don't think I want to be an&#xA;  architect-only guy&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;There is no such thing as an architect-only guy. Well there are, but those are architectural astronauts. A true architect codes alongside developing and enforcing the architecture; builds prototypes; proofs of concepts; develop coding standards; and most important of all, he/she is fully aware of the trade-offs imposed by his/her architecture when the pedal hits the metal (that is, when the architecture is realized in code.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A software architect is a coder that happens to own the entirety of the system for the lifetime of the project and system, not just the code that he's in charge of during an interval (short or long) in a project.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Ideally, becoming an architect occurs when a developer progresses on the scope of the project he's involved (as well as his responsibility on its overall design.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the question shouldn't be whether a programmer aspires to become an architect. The question should be about whether a programmer aspires to be the mastermind behind a very large or complex system (not just project, but system, a hardware and software system).&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I stress the scope of a system&lt;/strong&gt; because it is only with sufficiently large and/or complex systems that one needs a formal position of architect. For small projects, the architecture can be implicitly hashed out by a group of (good) developers. For midsize projects, it can still be done so by the senior developer, but it might be one that can be built iteratively out of a stable architectural core.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is only for sufficiently large and/or complex systems that you have to have an architect or group of architects &lt;strong&gt;&lt;em&gt;taking ownership&lt;/em&gt;&lt;/strong&gt;, laying out the architectural groundwork, and establishing the processes and procedures from which an architecture is realized into its deployables. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For much simpler systems, an architecture position is simply frivolous, obtrusive red-tape (since the architecture is/should be hashed out by a select group of developers in a lean manner.) Architecture is always present. Formalization of the positions in charge of it, should not necessarily be.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I also state &quot;ideally&quot;&lt;/strong&gt; because in my mind, a software architect 1) should know how to code and do it well, and 2) should be actively coding, even when functioning as an architect. For the later case, an architect should be building prototypes to prove characteristics of his architecture; he should also be heavily involved in the definition and enforcement of coding, configuration and deployment standards (which also require getting the hands dirty with the nitty gritty details.) Otherwise, what we have here is an &lt;a href=&quot;http://www.joelonsoftware.com/items/2008/05/01.html&quot; rel=&quot;nofollow&quot;&gt;architectural astronaut&lt;/a&gt; from the &lt;a href=&quot;http://thedailywtf.com/Articles/Consultants-of-the-Crystal-Citadel.aspx&quot; rel=&quot;nofollow&quot;&gt;Crystal Citadel&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;So the question here is whether all programmers want to eventually be the mastermind of something very large and/or complex. I think we all are, but once we take into consideration all the other non-technical and technical-other-than-barehand-coding issues and responsibilities involved, we prefer not to deal with it.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastEditorUserId="5149" LastEditorDisplayName="" LastEditDate="2010-10-18T13:39:06.787" LastActivityDate="2010-10-18T13:39:06.787" />
  <row Id="12698" PostTypeId="2" ParentId="12672" CreationDate="2010-10-18T13:35:17.700" Score="0" ViewCount="" Body="&lt;p&gt;There are cases where that kind of fix is really OK and probably the ideal (as far as the amount of time it takes to debug is concerned). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imagine a scenario where you've got 20 DLLs which are supposed to act as some sort of modules for your main executable, but also require some information from the main executable to run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you ever want to use those DLL's outside of the main executable, you will need to fudge some return values from the main executable because. A.) It doesn't exist in this context and B.) You don't want it to exist in this context.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, you better put some compiler directives in your code to make sure you're running completely different code when you're fudging the results vs when you're getting the real results.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of putting an &lt;code&gt;if&lt;/code&gt; inside someone else's function,  I'd put an &lt;code&gt;{$ifdef}&lt;/code&gt; around the function - that way no one confuses it with something that ought to be there.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-18T13:35:17.700" />
  <row Id="12699" PostTypeId="2" ParentId="12696" CreationDate="2010-10-18T13:40:05.443" Score="7" ViewCount="" Body="&lt;p&gt;Depends on what part of the development cycle I am in.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Initially in a project when little code has been laid out I would say 75/25 split between research and coding.  Perhaps even 80/20 during this initial time.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As the project gets more developed it sways more and more with time and eventually becomes the opposite during end of the development cycle.  Usually would end up being 20/80 research/code and during a last crunch it might be 10/90.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Great question, curious what others have to say. &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-18T13:40:05.443" />
  <row Id="12700" PostTypeId="2" ParentId="12599" CreationDate="2010-10-18T13:42:11.727" Score="4" ViewCount="" Body="&lt;p&gt;Please see &lt;a href=&quot;http://programmers.stackexchange.com/questions/756/programming-puzzles/764#764&quot;&gt;the answer to this question&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-18T13:42:11.727" CommentCount="1" />
  <row Id="12701" PostTypeId="2" ParentId="12696" CreationDate="2010-10-18T13:46:04.613" Score="9" ViewCount="" Body="&lt;h1&gt;Coding is Simple&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Coding is the easiest part of the entire job description. Planning, research, learning on the fly, these are the hard things. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because they are harder the inherently take more time. I have never found myself at a lack of speed in laying down code. Only then my planning or research is done poorly do I find myself backtracking because it's incorrect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given a time frame I tend to spend half researching and planning an half coding. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h3&gt;Further explanation&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;If you know what you are doing coding is simple. Say I'm writing a blog controller (for example) and I know it has to do two things, (1) list all posts and (2) list on individual post. I have an appropriate Post model that will do these and understand the system completely. Coding here is simple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I have an application dropped on my lap with the expectation to &quot;fix it&quot; it is going to be much harder. If I'm unfamiliar with the libraries or language itself I will have to learn on the fly by looking stuff up constantly. How do I fetch the all posts? How do I fetch one post? How do I ensure a post exists? What checks have to be made? Due to inadequate planning coding here is &lt;em&gt;hard&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assume an application that is supposed to do X, Y, and Z. I jump right in and make it do X. Then I work Y into it. By the time I get to Z the lack of planning is severely slowing down the development process. Parts of X and Y will be inefficient or need to be rewritten to accommodate Z, again depending on what X, Y, and Z are exactly. If they interact very little then it might be fine, on a closely linked system it will be a disaster. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Just thought I'd add: SO counts as research! &lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-10-18T16:52:15.103" LastActivityDate="2010-10-18T16:52:15.103" CommentCount="5" />
  <row Id="12702" PostTypeId="2" ParentId="12672" CreationDate="2010-10-18T13:52:12.410" Score="1" ViewCount="" Body="&lt;p&gt;It's not only common, but it's promoted as The Right Thing®. Just Google &quot;Guard Clause&quot; to see how often.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-18T13:52:12.410" CommentCount="2" />
  <row Id="12703" PostTypeId="1" AcceptedAnswerId="12706" CreationDate="2010-10-18T13:53:05.153" Score="7" ViewCount="184" Body="&lt;p&gt;I am not planning to leave my organization now, but I'd like to get more info about this suject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since I leave on a mountain area of the alps, and I decided to live here I am looking for possibilities of getting work abroad, by getting employed by a foreign company that needs developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone works for / in an organization that allows this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course I am looking for a seroius job, to work full time, planning to give my best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i also mentioned US/Canada/UK because those are english speaking countries where salaries are higher than the southern Europe area. My goal is not getting an high salary, a salary compared to southern europe salary is perfectly ok, the goal is to have a stimulating job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which are the limitations you can see? How to contact those organizations?&lt;/p&gt;&#xA;" OwnerUserId="5396" LastActivityDate="2010-10-19T20:22:48.563" Title="Finding employement in US/Canada/UK and working from home" Tags="&lt;jobs&gt;&lt;employment&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="4" />
  <row Id="12704" PostTypeId="2" ParentId="12653" CreationDate="2010-10-18T14:01:51.793" Score="2" ViewCount="" Body="&lt;p&gt;Out of work: All the time. I compete at TopCoder, CodeForces and similar sites for fun. I also work on some small projects of my own that are by choice algorithmic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At work: &#xA;Simple stuff: Not infrequent. I often have to think about the complexity of my code when working with large &lt;code&gt;List&lt;/code&gt;s or other large chunks of data. In rare occasions I have had to model the situation as a graph and formulate my approach accordingly. But in all cases, the problem is usually simple - it would just take a person not thinking about this algorithmically longer rather than being totally stuck. Just the other day, I convinced my boss to change one of our database tables to avoid having to store all O(n^2) relationships between some entities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Harder Stuff: Never. I've never had to use something like FFT or flow algorithms at work, but then again I work on simple CRUD apps most of the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day, it all comes down to what kind of work you do. I have friends who work in game development and they have to face all sorts of hard computationally intensive problems. OTOH, a lot of my friends and colleagues (and myself) work on &quot;enterprise&quot; system and spend their time coming up with &quot;business logic&quot;, which are little more than simple CRUDs and glue code that goes in between the framework/library and the database. A lot of the heavy lifting is actually done by the database and framework, leaving the programmer to simply design the way they fit together.&lt;/p&gt;&#xA;" OwnerUserId="1454" LastEditorUserId="1454" LastEditorDisplayName="" LastEditDate="2010-10-19T13:32:46.250" LastActivityDate="2010-10-19T13:32:46.250" />
  <row Id="12705" PostTypeId="2" ParentId="2815" CreationDate="2010-10-18T14:11:00.120" Score="4" ViewCount="" Body="&lt;p&gt;Having previously worked in C++ before C#, I really miss templates.  Generics are close, but you can't specify non-types as a generic parameter.  C++ template parameters allow typenames and primitives (&lt;code&gt;int&lt;/code&gt;, &lt;code&gt;enum&lt;/code&gt;, etc.).  C++ templates also allow defining &lt;a href=&quot;http://www.cprogramming.com/tutorial/template_specialization.html&quot; rel=&quot;nofollow&quot;&gt;specializations&lt;/a&gt;.  This allows for a wide variety of compile-time specialization.  This is entirely useful when portability of generics is not a requirement.&lt;/p&gt;&#xA;" OwnerUserId="4028" LastActivityDate="2010-10-18T14:11:00.120" CommunityOwnedDate="2010-10-18T14:11:00.120" CommentCount="2" />
  <row Id="12706" PostTypeId="2" ParentId="12703" CreationDate="2010-10-18T14:16:43.927" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Which are the limitations you can see?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Companies will rarely hire someone to work remotely when they can find talent in their respective countries - even if it means paying more, because it is more reliable to have someone work fixed work hours every day, than a developer far away. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Moreover, even if you are fully committed and serious, there is always going to be doubt on the employer's side, since they can't control you. I've done work like this for a few companies before, and would think not twice but 3 times before committing like that again. It just gets too stressful.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How to contact those organizations?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Try job boards, look for &quot;home office&quot; or &quot;telecommute&quot; opportunities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is also the option of actually working at the company offices for a while, and having earned your reputation ask for telecommute option, but nevertheless my first remark still applies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you are serious about this, make sure to prepare some code samples, or working apps to go with your resume/job application, ideally in that company's area of business, because you want to draw maximum attention.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-10-18T14:16:43.927" CommentCount="2" />
  <row Id="12707" PostTypeId="1" AcceptedAnswerId="12711" CreationDate="2010-10-18T14:16:53.517" Score="7" ViewCount="359" Body="&lt;p&gt;I would choose the following 4 concepts: Problem-solving, logic, design, and extreme attention to detail...&lt;/p&gt;&#xA;" OwnerUserId="5025" LastEditorUserId="5025" LastEditorDisplayName="" LastEditDate="2010-10-18T14:31:36.263" LastActivityDate="2010-10-18T19:58:24.173" ClosedDate="2010-10-18T20:07:14.383" Title="How would you describe programming in a few words?" Tags="&lt;programming&gt;" AnswerCount="17" CommentCount="4" />
  <row Id="12708" PostTypeId="2" ParentId="12696" CreationDate="2010-10-18T14:22:33.553" Score="0" ViewCount="" Body="&lt;p&gt;It really depends on the project at the time.  On average it's likely 50%/50% but there are times when you are working in a known domain with known patterns and you can spend much more time coding.  Other times you are in R&amp;amp;D mode on a project in a new domain and it flips around to about 75% research and 25% coding.  More than 75% research is not practical as you must be working ON something otherwise it's purely academic.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-18T14:22:33.553" CommentCount="1" />
  <row Id="12709" PostTypeId="2" ParentId="12707" CreationDate="2010-10-18T14:25:27.090" Score="1" ViewCount="" Body="&lt;p&gt;Computer-instructions, problem-solving, logic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Technically, these are five words, but ...&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-18T14:25:27.090" />
  <row Id="12710" PostTypeId="2" ParentId="12645" CreationDate="2010-10-18T14:26:38.910" Score="0" ViewCount="" Body="&lt;p&gt;When you've got something reliable and useful, release.  You don't have to stop adding features, but if anybody's using what you've got out there you'll get a much better idea of what features are wanted.  Currently, you're guessing.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-18T14:26:38.910" />
  <row Id="12711" PostTypeId="2" ParentId="12707" CreationDate="2010-10-18T14:26:45.587" Score="13" ViewCount="" Body="&lt;p&gt;Although I agree with other answers, I think &lt;strong&gt;Problem Solving&lt;/strong&gt; sums it up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No matter what you are working on, programming involves one thing solving a problem. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Problem solving requires/encompasses:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;problem inception: determine what the problem is&lt;/li&gt;&#xA;&lt;li&gt;design: based on the problem come up with a reasonable/approachable solution&lt;/li&gt;&#xA;&lt;li&gt;implementation: take your design and turn it into functional moving parts which address the problem&lt;/li&gt;&#xA;&lt;li&gt;review: including testing and assertion of the correctness of your implementation in terms of 1. design and 2. (more importantly) solving the problem.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-18T14:26:45.587" />
  <row Id="12712" PostTypeId="2" ParentId="12696" CreationDate="2010-10-18T14:31:41.987" Score="1" ViewCount="" Body="&lt;p&gt;Another factor would be your relative skill level with the toolset involved. If you're a Haskell master, for example, you probably don't need to spend much time doing research. On the other hand, if you're only a beginner, you actually need to try some things, and make a few mistakes, in order to learn. If you're somewhere in the middle, research is more profitable.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-10-18T14:31:41.987" />
  <row Id="12713" PostTypeId="2" ParentId="12683" CreationDate="2010-10-18T14:33:00.440" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;No, do not pseudo-code first&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is too much overhead.  You're doing the work of writing the logic with none of the benefits.  I'd suggest any of the following instead:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Prototype in the language you're going to ship with (AKA &lt;a href=&quot;http://stackoverflow.com/questions/78806/refactor-mercilessly-or-build-one-to-throw-away1.&quot;&gt;Write one to throw away&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Architecture diagrams w/ code snippets to test assumptions / key designs&lt;/li&gt;&#xA;&lt;li&gt;Test Driven Development where you write your interfaces/code structure first, followed by tests, followed by implementing the code.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;All three of these move you directly towards your solution, unlike pseudo-code.  Personally I tend to use techniques 1 or 2 depending upon team size.  For smaller (e.g. 5 people or less) teams, prototyping works very well.  For larger teams that have multiple groups of developers working in parallel, I've found that documentation produced early by technique 2 works well because it gives you something to discuss early and helps you define component boundaries better.  I'm sure TDD would work very well too, but I have yet to work on a team which had committed to this process.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-18T14:33:00.440" CommentCount="4" />
  <row Id="12714" PostTypeId="2" ParentId="5168" CreationDate="2010-10-18T14:36:54.263" Score="3" ViewCount="" Body="&lt;p&gt;Like other Universities, my school had a page where all services were accessible from some portal. This portal made you sign in with Active Directory and continue on to the actual portal. I discovered that there was a cookie that contained the student id and the hash of the student id. The hash could be found by looking up the individual in the school directory, the student's image file was named &quot;hashed id&quot;.jpg. There's also a page that lets you notify them of if you're working for the school. It asked for a student ID and it would spit out the name attached to the name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Between the cookie, and the page that connected an ID to a name, you could build enough information to change the cookie and sign in as somebody else. Thus, granting access to change their password and have access to all of the school's services for that user. These holes also let you sign in as teachers...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Slowly between these few bugs, all security could be bypassed through identity theft.&lt;/p&gt;&#xA;" OwnerUserId="3369" LastActivityDate="2010-10-18T14:36:54.263" />
  <row Id="12715" PostTypeId="2" ParentId="12707" CreationDate="2010-10-18T14:38:14.563" Score="1" ViewCount="" Body="&lt;p&gt;I'd like to add &lt;strong&gt;Student&lt;/strong&gt; to that list. Definitely need to be able to learn and teach yourself if you want to stay around in this field.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-10-18T14:38:14.563" />
  <row Id="12716" PostTypeId="2" ParentId="12707" CreationDate="2010-10-18T14:48:21.870" Score="1" ViewCount="" Body="&lt;p&gt;Making numbers dance.&lt;/p&gt;&#xA;" OwnerUserId="3748" LastActivityDate="2010-10-18T14:48:21.870" />
  <row Id="12717" PostTypeId="2" ParentId="12707" CreationDate="2010-10-18T14:49:05.050" Score="2" ViewCount="" Body="&lt;p&gt;To reiterate an &lt;a href=&quot;http://programmers.stackexchange.com/questions/2410/whats-a-good-programming-metaphor/10986#10986&quot;&gt;answer I've given before&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is like building a factory or an assembly line.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/3fZxY.png&quot; alt=&quot;Working Software&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-18T14:49:05.050" />
  <row Id="12718" PostTypeId="2" ParentId="5168" CreationDate="2010-10-18T14:53:34.557" Score="2" ViewCount="" Body="&lt;p&gt;A place I worked had a public newsletter that people could sign up for. One of my first projects was to make a minor change to the signup form. While doing that, I found a vulnerability that would let any user who signed up to see the account information of any other user, including the password -- which was not only stored in plain text in the database but was displayed in a regular text box in the form.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fixing the vulnerabilities became my second project.&lt;/p&gt;&#xA;" OwnerUserId="3869" LastActivityDate="2010-10-18T14:53:34.557" />
  <row Id="12719" PostTypeId="2" ParentId="12707" CreationDate="2010-10-18T14:54:32.713" Score="5" ViewCount="" Body="&lt;p&gt;Constant frustration&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-10-18T14:54:32.713" />
  <row Id="12720" PostTypeId="2" ParentId="12664" CreationDate="2010-10-18T15:04:01.583" Score="3" ViewCount="" Body="&lt;p&gt;Let's see:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Have something interesting to say and say it in a way that is interesting. &lt;/li&gt;&#xA;&lt;li&gt;Say it well which includes correct&#xA;grammar and spelling and punctuation.&lt;/li&gt;&#xA;&lt;li&gt;Make sure what you said is correct&#xA;technically - especially check your&#xA;assumptions to verify if they are, in&#xA;fact, true. It is very embarrassing&#xA;to state some limitation as the&#xA;reason why you did something and&#xA;then find out the limitation was all&#xA;in your head. It also doesn't&#xA;impress future employers. &lt;/li&gt;&#xA;&lt;li&gt;If you do get caught out with an&#xA;incorrect fact in a comment to the&#xA;blog entry, admit it and fix the&#xA;text - crediting the person who showed&#xA;you what was wrong.&lt;/li&gt;&#xA;&lt;li&gt;If your topic lends itself to&#xA;illustrations, use them. Make sure they are correct, too. Since many of the tools used to create illustrations don't have spell check, they often have typos.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Have some trusted friends review the text before publishing to see if you made it interesting. Have a technical writer review to make sure it is well-written. Since you want this as part of your Google CV, then the picky, little, technical details of writing are important. You are trying to impress strangers.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-18T15:04:01.583" CommentCount="3" />
  <row Id="12721" PostTypeId="2" ParentId="12707" CreationDate="2010-10-18T15:13:16.303" Score="2" ViewCount="" Body="&lt;p&gt;Instucting computers.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-10-18T15:13:16.303" />
  <row Id="12723" PostTypeId="2" ParentId="10032" CreationDate="2010-10-18T15:26:15.837" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://fishbowl.pastiche.org/2003/05/06/weighing_into_the_static_vs_dynamic_typing_debate/&quot; rel=&quot;nofollow&quot;&gt;This article&lt;/a&gt; is a wee bit old, but makes some interesting points not mentioned in this thread yet:&lt;/p&gt;&#xA;" OwnerUserId="1829" LastActivityDate="2010-10-18T15:26:15.837" />
  <row Id="12724" PostTypeId="2" ParentId="2815" CreationDate="2010-10-18T15:33:21.593" Score="3" ViewCount="" Body="&lt;p&gt;Enforcing that Linux and OS X are officially supported platforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently it is vendor-lock in.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-18T15:33:21.593" CommunityOwnedDate="2010-10-18T15:33:21.593" />
  <row Id="12725" PostTypeId="2" ParentId="12707" CreationDate="2010-10-18T15:35:28.310" Score="2" ViewCount="" Body="&lt;p&gt;Succinct and precise communication between human and computer. &lt;/p&gt;&#xA;" OwnerUserId="4873" LastActivityDate="2010-10-18T15:35:28.310" />
  <row Id="12726" PostTypeId="2" ParentId="12707" CreationDate="2010-10-18T15:58:46.100" Score="4" ViewCount="" Body="&lt;p&gt;I type gibberish for a living.&lt;/p&gt;&#xA;" OwnerUserId="5626" LastActivityDate="2010-10-18T15:58:46.100" />
  <row Id="12727" PostTypeId="2" ParentId="870" CreationDate="2010-10-18T16:03:21.600" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1558513973&quot; rel=&quot;nofollow&quot;&gt;Bruce F. Webster's &quot;Pitfalls of Object Oriented Development&quot;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We got too many &quot;OO&quot; developers who still don't know what an object or a class is or what is for; don't know what good OO, procedural, modular and structured programming look like; and somehow manage to cobble badly made pseudo-procedural code together with classes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This book (plus a few 70's oldies on structured design) would go a long way in helping these poor souls finally get to understand what good object orientation should look like.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Furthermore, chances are that if I were forced to pick one book and one book only beside this one, &lt;strong&gt;&lt;em&gt;I would not pick a technology-specific book&lt;/em&gt;&lt;/strong&gt;. &lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-18T16:03:21.600" CommunityOwnedDate="2011-01-21T21:28:48.980" />
  <row Id="12728" PostTypeId="2" ParentId="2227" CreationDate="2010-10-18T16:12:40.220" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What things should a developer learn&#xA;  that are handy regardless of the&#xA;  language the developer uses?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Non-Technical:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Project Management&lt;/li&gt;&#xA;&lt;li&gt;Requirements Management&lt;/li&gt;&#xA;&lt;li&gt;Technical Writing&lt;/li&gt;&#xA;&lt;li&gt;Communication Skills, Negotiation&#xA;and Conflict Resolution&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Technical:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Software Engineering &amp;amp; Architecture&lt;/li&gt;&#xA;&lt;li&gt;Systems Engineering (different from&#xA;Software Engineering)&lt;/li&gt;&#xA;&lt;li&gt;Code Metrics and how to use them (in&#xA;particular LCOM and Cyclomatic&#xA;Complexity.)&lt;/li&gt;&#xA;&lt;li&gt;Estimation&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-18T16:12:40.220" />
  <row Id="12729" PostTypeId="2" ParentId="2227" CreationDate="2010-10-18T16:28:01.993" Score="0" ViewCount="" Body="&lt;p&gt;The most important non-programming language skill a developer can have is a mastery of the local spoken/written language (e.g. English in North America).  Successfully writing a program requires knowing the syntax and vocabulary of the language.  Successfully functioning outside the computer requires knowing the syntax and vocabulary of the local language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ability to write clear, concise and unambiguous documents (project proposals, API documentation, test plans, etc) will help your career.  Being able to explain whatever it is you need to explain in clear, concise and unambiguous language to a programmer, boss, or other stakeholder will greatly help get your ideas implemented and extend your influence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What it really boils down to is that if you cannot clearly explain your ideas or programs to others, it doesn't matter how good those ideas or programs are.&lt;/p&gt;&#xA;" OwnerUserId="4453" LastActivityDate="2010-10-18T16:28:01.993" />
  <row Id="12730" PostTypeId="2" ParentId="12683" CreationDate="2010-10-18T16:36:45.003" Score="2" ViewCount="" Body="&lt;p&gt;Is pseudo-code a suggested approach?&#xA;For beginning programmers, I say yes.  It helps the new programmer learn how to translate a problem into code without worrying about the exact syntax of the language.  This shapes the thought process and can help ingrain useful habits (and I suppose bad habits too).  This is why it is used in schools so much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it practiced in industry?&#xA;In my experience, no.  No one has the time to rough out the project between the documentation (requirements, specifications, story boards, use cases or whatever else they use) and the actual code.  It is generally assumed that sufficient thought has already been put into the problem prior to the green-light to code.  At that point, coding the project is more important than adding one more layer of design preparation.&lt;/p&gt;&#xA;" OwnerUserId="4453" LastActivityDate="2010-10-18T16:36:45.003" />
  <row Id="12731" PostTypeId="2" ParentId="870" CreationDate="2010-10-18T16:38:10.900" Score="10" ViewCount="" Body="&lt;h2&gt;Refactoring: Improving the Design of Existing Code&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/BrLmD.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2849" LastActivityDate="2010-10-18T16:38:10.900" CommunityOwnedDate="2011-01-21T21:28:48.980" />
  <row Id="12732" PostTypeId="2" ParentId="279" CreationDate="2010-10-18T16:51:29.380" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Silverlight and WPF XAML combine&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd love to see XAML syntax become strictly compatible with Silverlight being a strict subset of WPF.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastEditorUserId="5397" LastEditorDisplayName="" LastEditDate="2010-10-18T21:33:34.807" LastActivityDate="2010-10-18T21:33:34.807" CommunityOwnedDate="2011-05-10T09:21:11.253" CommentCount="1" />
  <row Id="12733" PostTypeId="2" ParentId="279" CreationDate="2010-10-18T16:54:35.587" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Silverlight and Desktop CLR assemblies are the same&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Today you can reuse .NET assemblies between both runtimes, but only if you are careful and jump through some hoops.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-18T16:54:35.587" CommunityOwnedDate="2011-05-10T09:21:11.253" />
  <row Id="12734" PostTypeId="1" AcceptedAnswerId="12737" CreationDate="2010-10-18T16:56:16.897" Score="3" ViewCount="143" Body="&lt;p&gt;(I posted this at serverfault and it was suggested I post here instead)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking for an application recommendation to help me keep track of the discussions I have with the members of my team during our weekly 1-on-1 meetings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A windows desktop app would probably be best. For features, it should be able to manage goals, training, performance, reviews, and incidents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It should have an easy to use interface, but not as clunky as some of the tools like &lt;a href=&quot;http://www.managerassistant.com/products.html&quot; rel=&quot;nofollow&quot;&gt;http://www.managerassistant.com/products.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;word/notepad or excel just doesn't seem like a good fit...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;any ideas?&lt;/p&gt;&#xA;" OwnerUserId="5507" LastActivityDate="2010-10-18T18:15:41.950" Title="Ideas for developer management software?" Tags="&lt;tools&gt;&lt;management&gt;&lt;employment&gt;&lt;applications&gt;" AnswerCount="2" CommentCount="4" FavoriteCount="1" />
  <row Id="12735" PostTypeId="2" ParentId="12651" CreationDate="2010-10-18T16:56:45.380" Score="1" ViewCount="" Body="&lt;p&gt;If you're a Visual Studio user there is a huge trove of icons and bitmaps already installed on your machine (probably at &lt;code&gt;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\VS2010ImageLibrary\1033&lt;/code&gt; for a 64 bit machine, omit the (x86) for a 32 bit machine, replace 1033 with your locale if need be.) The only restrictions on these images is that you not subvert their meanings - we all know a red X means close or delete or take away, so don't use it for Save. &lt;a href=&quot;http://blogs.msdn.com/b/visualstudio/archive/2010/03/29/tips-and-tricks-visual-studio-2010-image-library.aspx&quot; rel=&quot;nofollow&quot;&gt;Wes Hutchins blogged about it&lt;/a&gt;. No audio, and doesn't help non-VS users, but it could still be useful.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-18T16:56:45.380" />
  <row Id="12736" PostTypeId="2" ParentId="279" CreationDate="2010-10-18T16:58:30.997" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Desktop CLR is properly factored like the Silverlight Runtime&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If we can get a 4 MB install for Silverlight and then add/download additional assemblies on demand, certainly the same approach could be applied to the desktop CLR.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-18T16:58:30.997" CommunityOwnedDate="2011-05-10T09:21:11.253" CommentCount="2" />
  <row Id="12737" PostTypeId="2" ParentId="12734" CreationDate="2010-10-18T17:01:08.017" Score="5" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.tiddlywiki.com/&quot; rel=&quot;nofollow&quot;&gt;TiddlyWiki&lt;/a&gt; is great for all kinds of notes.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://office.microsoft.com/en-us/onenote/&quot; rel=&quot;nofollow&quot;&gt;MS One Note&lt;/a&gt; although may be overkill would work great too. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-18T17:01:08.017" CommentCount="1" />
  <row Id="12738" PostTypeId="2" ParentId="12651" CreationDate="2010-10-18T17:11:11.583" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.iconfinder.com/&quot; rel=&quot;nofollow&quot;&gt;IconFinder&lt;/a&gt; an excellent icon search engine, and probably the only good one I've used. I can filter by license, too.&lt;/p&gt;&#xA;" OwnerUserId="1360" LastActivityDate="2010-10-18T17:11:11.583" />
  <row Id="12739" PostTypeId="2" ParentId="6486" CreationDate="2010-10-18T17:12:55.200" Score="1" ViewCount="" Body="&lt;p&gt;While I've no doubt great coders exist who can't type well, that's an awfully rare combination. A &quot;good&quot; programmer in my mind is someone who constantly strives to improve. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developers are tasked with conveying what's in their head via typing, so if a developer has never taken the time to learn solid typing skills I have a very hard time taking their passion for continuous learning seriously. Why would someone who truly wants to do great work with a computer handicap their performance in all computer interactions by ignoring something so fundamental?&lt;/p&gt;&#xA;" OwnerUserId="4792" LastActivityDate="2010-10-18T17:12:55.200" CommentCount="2" />
  <row Id="12740" PostTypeId="2" ParentId="6905" CreationDate="2010-10-18T17:15:23.420" Score="7" ViewCount="" Body="&lt;p&gt;Scala &lt;a href=&quot;http://code.google.com/p/specs/&quot; rel=&quot;nofollow&quot;&gt;Specs&lt;/a&gt; gets my vote! :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specs is a behavior-driven-development testing framework written in Scala. It can be used to write tests for Java and Scala. It was inspired by &lt;a href=&quot;http://rspec.info/&quot; rel=&quot;nofollow&quot;&gt;RSpec&lt;/a&gt; - a testing framework very popular in the Ruby world.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;An example test written in Specs:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;import org.specs._&#xA;&#xA;object ElementSpecification extends Specification {&#xA;  &quot;A UniformElement&quot; should {&#xA;    &quot;have a width equal to the passed value&quot; in {&#xA;      val ele = elem('x', 2, 3)&#xA;      ele.width must be_==(2)&#xA;    }&#xA;&#xA;    &quot;have a height equal to the passed value&quot; in {&#xA;      val ele = elem('x', 2, 3)&#xA;      ele.height must be_==(3)&#xA;    }&#xA;&#xA;    &quot;throw an IAE if passed a negative width&quot; in {&#xA;      elem('x', 2, 3) must throwA(new IllegalArgumentException)&#xA;    }&#xA;  }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Impressive, isn't it? :-)&lt;/p&gt;&#xA;" OwnerUserId="1968" LastEditorUserId="1968" LastEditorDisplayName="" LastEditDate="2010-10-18T17:27:46.780" LastActivityDate="2010-10-18T17:27:46.780" CommentCount="3" />
  <row Id="12741" PostTypeId="2" ParentId="12589" CreationDate="2010-10-18T17:15:34.480" Score="1" ViewCount="" Body="&lt;p&gt;I have heard it argued that all software engineering after the first line of code is maintainance. And that certainly seems to match my experience. The only code I have written that did not end up having most of its cost being maintaince was code that was so unsuccesful that it was never or only briefly used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you can find disiplined engineering teams that develop and follow strong processes that lead to the release of robust code which the team can have a high level of confidence in (although I wouldn't convolute that with large amounts of documentation). I believe that I work in a team like that at the moment. Although I have certainly experienced the other kind of development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing that I have come to appreciate though, is that the challenge is not always finding the perfect algorithm or the cleanest solution to the problem. But often trading off all sorts of constraints (resources, knowledge, money, time, skills, risk, pre-existing user training etc, etc) to achive the highest return for the available investment. That is building a system that is best suited to all those factors and not just the technical influences.&lt;/p&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-10-18T17:15:34.480" CommentCount="1" />
  <row Id="12742" PostTypeId="2" ParentId="12696" CreationDate="2010-10-18T17:18:56.303" Score="2" ViewCount="" Body="&lt;p&gt;For me it's something like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;10 % Actual coding (staring at existing code, editing it, typing in new code).&lt;/li&gt;&#xA;&lt;li&gt;10 % Learning by reading.&lt;/li&gt;&#xA;&lt;li&gt;30 % Learning by tinkering around, prototyping.&lt;/li&gt;&#xA;&lt;li&gt;50 % Thinking. With or without paper &amp;amp; pen.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-18T17:18:56.303" />
  <row Id="12743" PostTypeId="2" ParentId="12696" CreationDate="2010-10-18T17:19:59.500" Score="0" ViewCount="" Body="&lt;p&gt;I'd probably say that I spend half my time working with the code directly, adding to it or fixing something, and the other half in various other states like investigating a problem without looking at the code yet, gathering new requirements, testing the code in various browsers(which is separate from coding to my mind), generating documentation, moving cards on the story board, researching alternative solution sources like StackOverflow, Sitecore forums, or MSDN forums, and other administrative work like filling out time sheets, daily stand-ups, etc.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-18T17:19:59.500" />
  <row Id="12744" PostTypeId="2" ParentId="7804" CreationDate="2010-10-18T17:21:50.090" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://github.com/aemoncannon/ensime&quot; rel=&quot;nofollow&quot;&gt;Emacs ENSIME&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Emacs ENSIME is currently the most feature-rich development environment available for Scala.&#xA;(Watch &lt;a href=&quot;http://www.youtube.com/watch?v=A2Lai8IjLoY&quot; rel=&quot;nofollow&quot;&gt;this sneak-peak video&lt;/a&gt; on YouTube.)&lt;/p&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-18T17:21:50.090" />
  <row Id="12745" PostTypeId="2" ParentId="4296" CreationDate="2010-10-18T17:24:21.087" Score="5" ViewCount="" Body="&lt;p&gt;Have your boss read experiences like this: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;&lt;p&gt;I'm currently doing most of my things in Scala right now. (I should&#xA;  mention that I think that Scala is the&#xA;  best thing since the invention of the&#xA;  wheel some time ago. :-D )&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;In my humble opinion it is the only&#xA;  language which truly allows people to&#xA;  choose the best approach to a task&#xA;  without some unnecessary divide&#xA;  between (more) object-oriented and&#xA;  (more) functional approaches.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Looking at the languages which&#xA;  claimed something like this before, I&#xA;  can basically see two competing&#xA;  language design camps:&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;&lt;p&gt;The ones from the object-oriented side which saw that functional&#xA;  programming gained some traction&#xA;  lately and thought &quot;Well, we don't&#xA;  really understand that functional&#xA;  thingie, but let's add some fancy&#xA;  syntactical sugar to our language, so&#xA;  we can claim it is functional too!&quot;&#xA;  &lt;em&gt;(examples: Java, Python)&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Then the ones from the functional side, who thought &quot;Well, our&#xA;  functional approach is far superior to&#xA;  anything else and that object-oriented&#xA;  nonsense is annoying, but let's put&#xA;  some additional keywords into our&#xA;  language, that will make our language&#xA;  escape academia for sure!&quot; &lt;em&gt;(examples:&#xA;  F#, OCaml)&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;  &#xA;  &lt;p&gt;Scala's designers unified many&#xA;  approaches coming from both sides and&#xA;  created some well-designed language,&#xA;  which is - in my humble opinion - the&#xA;  biggest difference to other languages,&#xA;  which decided to take the&#xA;  &quot;Frankenstein&quot; approach to programming&#xA;  language design.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Having done only smaller things with Lift yet and only superficial&#xA;  experience with Rails and Django, I&#xA;  have to admit that most of the time&#xA;  when I wondered why something in Lift&#xA;  worked differently from what I&#xA;  expected, this was due to the fact&#xA;  that my expectations were flawed and&#xA;  Lift's approach superior.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Lift is certainly no &quot;easy&#xA;  introduction to Scala&quot; but learning&#xA;  how Lift works was almost as rewarding&#xA;  as learning Scala before it.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The ability to have a &quot;clean&quot; view&#xA;  without any logic in it is a great&#xA;  improvement to other frameworks which&#xA;  claimed the same, but fell short of&#xA;  it. Scala's XML literal support makes&#xA;  it possible to verify the&#xA;  well-formedness of your response: The&#xA;  compiler will prove at compile time&#xA;  that you only emit well-formed XML to&#xA;  a client.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Lift is viable technology and at the moment the only real approach if&#xA;  you want to build web applications&#xA;  which look, feel and behave like&#xA;  &quot;real&quot; desktop applications without&#xA;  writing insane amounts of code&#xA;  yourself.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;[ &lt;a href=&quot;http://stackoverflow.com/questions/3644251/what-are-your-experiences-developing-in-scala-lift/3646365#3646365&quot;&gt;Source&lt;/a&gt; ]&lt;/p&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-18T17:24:21.087" />
  <row Id="12746" PostTypeId="2" ParentId="12653" CreationDate="2010-10-18T17:33:03.607" Score="1" ViewCount="" Body="&lt;p&gt;Much of my work is on something similar to CAD software, so I have to solve geometrical problems of varying complexity fairly frequently.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-18T17:33:03.607" />
  <row Id="12747" PostTypeId="2" ParentId="6486" CreationDate="2010-10-18T17:36:37.833" Score="1" ViewCount="" Body="&lt;p&gt;I found that hunt-and-peck programmers get frustrated very often about their keyboards, hitting the wrong key, frequently cursing and hitting &quot;Backspace&quot; noisily. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think your typing abilities should be at least good enough so you're not having to think about it and doesn't feels it gets &quot;in the way&quot; of getting things done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I try to avoid being angry. And specially with keyboards...&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-10-18T17:36:37.833" CommentCount="1" />
  <row Id="12748" PostTypeId="2" ParentId="6486" CreationDate="2010-10-18T17:37:59.257" Score="3" ViewCount="" Body="&lt;p&gt;Typing is not the bottleneck of programming.   Thinking is.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-18T17:37:59.257" CommentCount="5" />
  <row Id="12750" PostTypeId="2" ParentId="279" CreationDate="2010-10-18T17:39:35.693" Score="3" ViewCount="" Body="&lt;p&gt;Actors for concurrency (a la &lt;a href=&quot;http://ruben.savanne.be/articles/concurrency-in-erlang-scala&quot; rel=&quot;nofollow&quot;&gt;Erlang&lt;/a&gt;).&lt;/p&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-18T17:39:35.693" CommunityOwnedDate="2011-05-10T09:21:11.253" CommentCount="5" />
  <row Id="12751" PostTypeId="2" ParentId="12653" CreationDate="2010-10-18T17:42:53.687" Score="3" ViewCount="" Body="&lt;p&gt;Perhaps not in the spirit of the question, I'd argue &quot;every day.&quot;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every time I use an if statement, write a loop, or (especially) design a &quot;system&quot; I am using math and logic.  Any kind of optimization effort is an attempt at solving an algorithmic puzzle.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-10-18T17:42:53.687" CommentCount="1" />
  <row Id="12752" PostTypeId="2" ParentId="12589" CreationDate="2010-10-18T17:44:23.297" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Images of ISO processes, reams of technical documentation, every feature and bug being strictly documented, and a generally professional environment&lt;/strong&gt; describes my company fairly well.  We do critical infrastructure software/hardware products though, so, well, the pressure is &lt;em&gt;on&lt;/em&gt; for quality (we are ISO 9001 certified, for example). &lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-18T17:44:23.297" CommentCount="1" />
  <row Id="12753" PostTypeId="2" ParentId="12707" CreationDate="2010-10-18T17:46:05.620" Score="5" ViewCount="" Body="&lt;h1&gt;&lt;strong&gt;Lego&lt;/strong&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;(with individual pieces being the components, and the final product being the software)&#xA;&lt;br&gt;&lt;br&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/tOfWA.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-18T17:46:05.620" CommentCount="1" />
  <row Id="12754" PostTypeId="2" ParentId="12653" CreationDate="2010-10-18T17:46:13.200" Score="4" ViewCount="" Body="&lt;p&gt;Almost every single day.  I work with scientists and engineers to commercialize their ideas.  Being scientists and engineers, they think in numbers.  Having to come up with all sorts of edge cases, test them out, and store that information in as compact a representation in a database is why I have a job.  Then again, I'm also doing a lot of geospatial work.  It comes with the territory.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-18T17:46:13.200" CommentCount="1" />
  <row Id="12756" PostTypeId="2" ParentId="12653" CreationDate="2010-10-18T17:53:07.730" Score="3" ViewCount="" Body="&lt;p&gt;I work in commercial software, so, rarely.  However, I will say this:  knowing how to evaluate the performance of the simple algorithms you create on the fly can result in components that scale well without any particular effort.  Knowing the difference between an algorithm that runs in O(n lg n) time vs. O(n^2) or even O(n!) (may Flying Spaghetti Monster have mercy on your soul) can do a lot to make sure you DON'T have algorithm-related problems that later need solving.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-10-18T17:53:07.730" />
  <row Id="12757" PostTypeId="2" ParentId="12707" CreationDate="2010-10-18T17:53:44.547" Score="3" ViewCount="" Body="&lt;p&gt;Programming....hmmm.....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is talking to hardware in a language which they know. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are knowing their language well, then you can tell them the efficient way of doing what you want them to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well that was quite a few words....;)&lt;/p&gt;&#xA;" OwnerUserId="5443" LastActivityDate="2010-10-18T17:53:44.547" CommentCount="1" />
  <row Id="12758" PostTypeId="2" ParentId="12589" CreationDate="2010-10-18T17:55:00.057" Score="2" ViewCount="" Body="&lt;p&gt;I thought after graduating that the people in charge would be able to recognize good work from bad work.  After being handed the millionth copy of &quot;really great code our top coder put together&quot; and having it look like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;def lf(p, q, r):&#xA;    x = 4&#xA;    xx = 4.5&#xA;    t = {1:p, 2:p+2, 3:p*4} #I think there's a bug in here but I don't know&#xA;    .&#xA;    .&#xA;    .&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I've almost given up trying to understand what goes on between the ears of the pointy-haired boss.  &quot;Great&quot; means maintainence nightmare, &quot;good&quot; means crashes in a gentle breeze, and &quot;horrible mess&quot; means either that or a well structured code base whose engineers have patently refused to meet obscene deadlines just to keep their sanity.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-18T17:55:00.057" />
  <row Id="12759" PostTypeId="2" ParentId="12653" CreationDate="2010-10-18T17:59:00.573" Score="10" ViewCount="" Body="&lt;p&gt;Not often enough.  In fact, the more often you have to do that, the better your job is, I'd say.&lt;/p&gt;&#xA;" OwnerUserId="2268" LastActivityDate="2010-10-18T17:59:00.573" />
  <row Id="12760" PostTypeId="2" ParentId="12653" CreationDate="2010-10-18T18:09:09.060" Score="0" ViewCount="" Body="&lt;p&gt;Almost never. I' working for embedded devices for 2 years, projects involving microcontroller coding. Sometimes I need to optimize my code to maintain performance level. But this doesn't involve mathematical/algorithmic solution.&lt;/p&gt;&#xA;" OwnerUserId="5176" LastActivityDate="2010-10-18T18:09:09.060" CommentCount="2" />
  <row Id="12761" PostTypeId="2" ParentId="954" CreationDate="2010-10-18T18:10:31.710" Score="1" ViewCount="" Body="&lt;p&gt;My philospohy... I write software I would want to use.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-18T18:10:31.710" />
  <row Id="12762" PostTypeId="1" AcceptedAnswerId="12880" CreationDate="2010-10-18T18:10:59.057" Score="5" ViewCount="258" Body="&lt;p&gt;What are the features do you want in Google GO ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since this language is in evolution and will continue to evolve for some time before it is fully adopted or rejected ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For eg.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;GC. It is already there.&lt;/li&gt;&#xA;&lt;li&gt;Type safety or unsafety.&lt;/li&gt;&#xA;&lt;li&gt;Platform Independent&lt;/li&gt;&#xA;&lt;li&gt;Pointers :-)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="672" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2010-10-19T01:42:19.330" LastActivityDate="2010-10-19T04:45:46.970" Title="What features do you want in Google GO?" Tags="&lt;programming-languages&gt;&lt;google&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="4" />
  <row Id="12763" PostTypeId="2" ParentId="12653" CreationDate="2010-10-18T18:13:46.277" Score="0" ViewCount="" Body="&lt;p&gt;I work for a major backbone provider.  Much, if not most of my work depends on analysing network data. To give a point of reference as to the scope, our network pushes about 23 petabytes of data per day, and that number keeps increasing.  It has become clear that using statistical methods to find anomalies in the network has become increasingly more important as the sheer volume of data increases.  It's to the point that I wish my math skills were better, and I'm looking at learning more so that I can better apply that knowledge.     &lt;/p&gt;&#xA;" OwnerUserId="1642" LastActivityDate="2010-10-18T18:13:46.277" />
  <row Id="12764" PostTypeId="2" ParentId="12734" CreationDate="2010-10-18T18:15:41.950" Score="0" ViewCount="" Body="&lt;p&gt;I second Chris's recommendation for OneNote (ON). Combined with a tablet PC it is ideal for what you're asking about. I'm a Manager Tools (&lt;a href=&quot;http://www.manager-tools.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.manager-tools.com/&lt;/a&gt;) disciple and kept all of my one-on-one (O3) meeting notes in ON. You can have multiple notebooks with multiple sections and sub-sections. Everything is searchable and linkable. It also integrates tightly with Outlook which is very handy for being able to tie things together. Anything that I wound up writing by hand I scanned and dropped into ON. There is also the ability with a tablet PC to free-hand things so it's great for jotting down ideas and such.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-10-18T18:15:41.950" />
  <row Id="12766" PostTypeId="1" CreationDate="2010-10-18T18:17:14.927" Score="18" ViewCount="843" Body="&lt;p&gt;It's been quite a few years since &lt;a href=&quot;http://cc2e.com/&quot; rel=&quot;nofollow&quot;&gt;Code Complete&lt;/a&gt; was published.  I really love the book, I keep it in the bathroom at the office and read a little out of it once or twice a day. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was just wondering for the sake of wonderment, what kinds of things need to be added to Code Complete 3e, and for the sake of reductionism, what kinds of things would be removed.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, what languages would you use for code examples?&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2011-02-21T08:42:30.723" Title="What would you add to Code Complete 3rd Edition?" Tags="&lt;code-complete&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="6" />
  <row Id="12768" PostTypeId="2" ParentId="12653" CreationDate="2010-10-18T18:40:21.447" Score="0" ViewCount="" Body="&lt;p&gt;Pretty infrequently, though it was pretty interesting hearing about the cases of others who actually do have to crunch these types of things fairly often.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've always been a weird dichotomy though - getting extra credit and being skipped past college Comp Sci courses because of advanced placement, yet I've also managed to fail nearly every advanced math course I've ever taken. Haha&lt;/p&gt;&#xA;" LastActivityDate="2010-10-18T18:40:21.447" />
  <row Id="12769" PostTypeId="2" ParentId="12707" CreationDate="2010-10-18T18:40:32.633" Score="2" ViewCount="" Body="&lt;p&gt;Programming is something that non-programmers will not understand but will benefit from it.&lt;/p&gt;&#xA;" OwnerUserId="5176" LastActivityDate="2010-10-18T18:40:32.633" />
  <row Id="12770" PostTypeId="1" CreationDate="2010-10-18T18:40:51.290" Score="4" ViewCount="93" Body="&lt;p&gt;Recently learned about ESE, the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms684493%28v=EXCHG.10%29.aspx&quot; rel=&quot;nofollow&quot;&gt;Extensible Storage Engine&lt;/a&gt; shipped with Windows.  Its the storage used by technologies such as Active Directory and Windows Search.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm wondering what kinds of ESE catalogs may be on your average installation (say, Windows 7), how to access them and what interesting stuff you might find in there.&lt;/p&gt;&#xA;" OwnerUserId="698" LastActivityDate="2010-10-18T18:40:51.290" ClosedDate="2011-01-06T02:55:44.420" Title="Cool things to do with ESE" Tags="&lt;windows&gt;&lt;database&gt;" CommentCount="3" />
  <row Id="12771" PostTypeId="2" ParentId="2815" CreationDate="2010-10-18T18:41:52.537" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Embed Reactive Extensions&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I'm still coming up to speed on this technology, it seems to me that it has some great implications for improving UI -&gt; business object decoupling (thereby reducing memory 'leaks' from forever-referenced objects) and for helping with M-V-VM design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See &lt;a href=&quot;http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx&quot; rel=&quot;nofollow&quot;&gt;Reactive Extensions&lt;/a&gt; for details.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-18T18:41:52.537" CommunityOwnedDate="2010-10-18T18:41:52.537" />
  <row Id="12772" PostTypeId="2" ParentId="12766" CreationDate="2010-10-18T18:43:17.543" Score="1" ViewCount="" Body="&lt;p&gt;The three problems in the 2nd chapter of 'Programming Pearls' and a thank-you note to Linus Torvalds.&lt;/p&gt;&#xA;" OwnerUserId="672" LastEditorUserId="1996" LastEditorDisplayName="" LastEditDate="2011-02-21T08:42:30.723" LastActivityDate="2011-02-21T08:42:30.723" CommentCount="3" />
  <row Id="12773" PostTypeId="1" AcceptedAnswerId="12986" CreationDate="2010-10-18T18:47:37.923" Score="12" ViewCount="456" Body="&lt;p&gt;I'd like to read a design patterns book. GoF for sure is the one to read. But after 15 years is it still valid, I mean isn't there an updated one?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something like &quot;Charles Darwin On the origin of species&quot; is a very important book, and some main concepts are still valid, anyway today (2010) one would read another book to study the subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In &lt;a href=&quot;http://programmers.stackexchange.com/questions/2240/what-are-good-resources-for-design-patterns&quot;&gt;this question&lt;/a&gt; the main suggestions are the Head First and GoF books. But Head first is not a replacement for GoF.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So any suggestion or should I stick with GoF?&lt;/p&gt;&#xA;" OwnerUserId="5396" LastActivityDate="2010-10-29T22:46:21.267" Title="Is the GoF book still the one to read?" Tags="&lt;books&gt;&lt;design-patterns&gt;&lt;object-oriented&gt;&lt;suggestions&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="1" />
  <row Id="12774" PostTypeId="2" ParentId="2806" CreationDate="2010-10-18T18:49:39.807" Score="0" ViewCount="" Body="&lt;p&gt;Also &quot;MVC, PVC and (¬M)VC&quot;:&#xA;&lt;a href=&quot;http://github.com/raganwald/homoiconic/blob/master/2010/10/vc_without_m.md&quot; rel=&quot;nofollow&quot;&gt;http://github.com/raganwald/homoiconic/blob/master/2010/10/vc_without_m.md&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1245" LastActivityDate="2010-10-18T18:49:39.807" CommentCount="0" />
  <row Id="12775" PostTypeId="2" ParentId="12707" CreationDate="2010-10-18T18:51:12.967" Score="2" ViewCount="" Body="&lt;p&gt;I am a wizard.  Fear me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Seriously, a lot of what we do is, from the point of view of most people, freakin' magic.)&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-10-18T18:51:12.967" />
  <row Id="12776" PostTypeId="2" ParentId="12773" CreationDate="2010-10-18T18:51:51.083" Score="2" ViewCount="" Body="&lt;p&gt;You will still need it. You will keep coming back to it for double checking and small revisons and good examples. Keep it on your shelf. If you are a starter pick up Head First. On the contrary I am very interested in  finding out a book which is rated higher than GOF :-)&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-18T18:51:51.083" />
  <row Id="12777" PostTypeId="1" CreationDate="2010-10-18T18:52:52.533" Score="12" ViewCount="601" Body="&lt;p&gt;I've heard it said that the inclusion of null references in programming languages is the &quot;billion dollar mistake&quot;.  But why?  Sure, they can cause NullReferenceExceptions, but so what?  Any element of the language can be a source of errors if used improperly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And what's the alternative?  I suppose instead of saying this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Customer c = Customer.GetByLastName(&quot;Goodman&quot;); // returns null if not found&#xA;if (c != null)&#xA;{&#xA;    Console.WriteLine(c.FirstName + &quot; &quot; + c.LastName + &quot; is awesome!&quot;);&#xA;}&#xA;else { Console.WriteLine(&quot;There was no customer named Goodman.  How lame!&quot;); }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You could say this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (Customer.ExistsWithLastName(&quot;Goodman&quot;))&#xA;{&#xA;    Customer c = Customer.GetByLastName(&quot;Goodman&quot;) // throws error if not found&#xA;    Console.WriteLine(c.FirstName + &quot; &quot; + c.LastName + &quot; is awesome!&quot;); &#xA;}&#xA;else { Console.WriteLine(&quot;There was no customer named Goodman.  How lame!&quot;); }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But how is that better?  Either way, if you forget to check that the customer exists, you get an exception.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suppose that a CustomerNotFoundException is a bit easier to debug than a NullReferenceException by virtue of being more descriptive.  Is that all there is to it?&lt;/p&gt;&#xA;" OwnerUserId="151" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-18T22:23:05.580" LastActivityDate="2010-10-19T17:51:22.167" Title="Are null references really a bad thing?" Tags="&lt;programming-practices&gt;&lt;software-engineering&gt;&lt;language-design&gt;&lt;exceptions&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="3" />
  <row Id="12778" PostTypeId="2" ParentId="9539" CreationDate="2010-10-18T18:57:41.070" Score="3" ViewCount="" Body="&lt;p&gt;My crystal ball says that after 30 years from now:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Multicore would be the norm.&lt;/li&gt;&#xA;&lt;li&gt;All softwares will be massively parallelized.&lt;/li&gt;&#xA;&lt;li&gt;Programmers would have embraced immutability. Mutability will be the new &lt;code&gt;goto&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Functional programming would be the major paradigm.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Dataflow_architecture&quot; rel=&quot;nofollow&quot;&gt;Data flow machines&lt;/a&gt; would have become popular.&lt;/li&gt;&#xA;&lt;li&gt;Programmers would still be the most arrogant animals on the planet. :D&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-18T18:57:41.070" />
  <row Id="12779" PostTypeId="2" ParentId="12773" CreationDate="2010-10-18T18:57:59.727" Score="6" ViewCount="" Body="&lt;p&gt;I fear the day the patterns in that book will not exist anymore. That day is likely never to come. Get the book.&lt;/p&gt;&#xA;" OwnerUserId="3660" LastActivityDate="2010-10-18T18:57:59.727" CommentCount="6" />
  <row Id="12780" PostTypeId="2" ParentId="12707" CreationDate="2010-10-18T18:58:02.243" Score="10" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/wksUc.png&quot; alt=&quot;A picture says more than a 1,000 words...&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-18T18:58:02.243" CommentCount="1" />
  <row Id="12782" PostTypeId="2" ParentId="5269" CreationDate="2010-10-18T19:00:25.870" Score="1" ViewCount="" Body="&lt;p&gt;The power of Lisp on the most popular and successful virtual platform there is, the JVM. Add to that good support for concurrency and transactional memory (and less parenthesis than other, more lispey dialects), what's there &lt;em&gt;not&lt;/em&gt; to like!?!? :)&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-18T19:00:25.870" CommentCount="1" />
  <row Id="12783" PostTypeId="2" ParentId="12777" CreationDate="2010-10-18T19:01:32.123" Score="0" ViewCount="" Body="&lt;p&gt;As long as a reference is NULL it is no good for the programming Logic hence there is no need to proceed. For this simple reason most compilers will not let you use a reference unless it is initialized. A NPE isn't really an Exception it is a logical Error. Compare it with a FileNotFoundException it is beyond the control of an Application but why would someone(your program) want to USE a thing that doesn't exist ?&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-18T19:01:32.123" CommentCount="7" />
  <row Id="12784" PostTypeId="2" ParentId="12707" CreationDate="2010-10-18T19:03:10.123" Score="2" ViewCount="" Body="&lt;p&gt;Constant Learning.&lt;/p&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-18T19:03:10.123" />
  <row Id="12785" PostTypeId="2" ParentId="12777" CreationDate="2010-10-18T19:05:24.407" Score="14" ViewCount="" Body="&lt;p&gt;The problem is that because in theory any object can be a null and toss an exception when you attempt to use it, your object-oriented code is basically a collection of unexploded bombs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're right that graceful error handling can be functionally identical to null-checking &lt;code&gt;if&lt;/code&gt; statements.  But what happens when something you convinced yourself couldn't &lt;b&gt;possibly&lt;/b&gt; be a null is, in fact, a null?  Kerboom.  Whatever happens next, I'm willing to bet that 1) it won't be graceful and 2) you won't like it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And do not dismiss the value of &quot;easy to debug.&quot;  Mature production code is a mad, sprawling creature; anything that gives you more insight into what went wrong and where may save you hours of digging.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-10-18T19:05:24.407" CommentCount="4" />
  <row Id="12786" PostTypeId="2" ParentId="12777" CreationDate="2010-10-18T19:06:45.373" Score="7" ViewCount="" Body="&lt;p&gt;Nulls aren't so bad, unless you're not expecting them. You &lt;strong&gt;should&lt;/strong&gt; need to explicitly specify in code that you're expecting null, which is a language-design problem. Consider this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Customer? c = Customer.GetByLastName(&quot;Goodman&quot;);&#xA;// note the question mark -- 'c' is either a Customer or null&#xA;if (c != null)&#xA;{&#xA;    // c is not null, therefore its type in this block is&#xA;    // now 'Customer' instead of 'Customer?'&#xA;    Console.WriteLine(c.FirstName + &quot; &quot; + c.LastName + &quot; is awesome!&quot;);&#xA;}&#xA;else { Console.WriteLine(&quot;There was no customer named Goodman.  How lame!&quot;); }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If you try to invoke methods on a &lt;code&gt;Customer?&lt;/code&gt;, you should get a compile-time error. The reason more languages don't do this (IMO) is that they don't provide for the type of a variable to change depending on what scope it's in. If the language can handle that, then the problem can be solved entirely within the type system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also the functional way to handle this problem, using option-types and &lt;code&gt;Maybe&lt;/code&gt;, but I'm not as familiar with it. I prefer this way because correct code should theoretically only need one character added to compile correctly.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastEditorUserId="2276" LastEditorDisplayName="" LastEditDate="2010-10-18T23:36:28.453" LastActivityDate="2010-10-18T23:36:28.453" CommentCount="5" />
  <row Id="12790" PostTypeId="2" ParentId="12777" CreationDate="2010-10-18T19:13:57.043" Score="2" ViewCount="" Body="&lt;p&gt;Null references are a mistake because they allow non-sensical code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;foo = null&#xA;foo.bar()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;There are alternatives, if you leverage the type system:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Maybe&amp;lt;Foo&amp;gt; foo = null&#xA;foo.bar() // error{Maybe&amp;lt;Foo&amp;gt; does not have any bar method}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The generally idea is to put the variable in a box, and the only thing you can do is unboxing it, preferably enlisting the compiler help like proposed for Eiffel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haskell has it from scratch (&lt;code&gt;Maybe&lt;/code&gt;), in C++ you can leverage &lt;code&gt;boost::optional&amp;lt;T&amp;gt;&lt;/code&gt; but you can still get undefined behaviour...&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2010-10-18T19:13:57.043" CommentCount="6" />
  <row Id="12794" PostTypeId="1" CreationDate="2010-10-18T19:21:48.807" Score="1" ViewCount="98" Body="&lt;p&gt;Reading a lot of questions about design patterns, a curious thought stroke me: Can design patterns be used outside the realm of programming, such as in real life? If so, which patterns, and how?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-18T19:57:04.367" ClosedDate="2010-10-18T19:59:06.920" Title="Can design patterns be applied outside the realm of programming?" Tags="&lt;design-patterns&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="12795" PostTypeId="2" ParentId="12707" CreationDate="2010-10-18T19:30:06.637" Score="1" ViewCount="" Body="&lt;p&gt;Protecting dumb people from real computing&lt;/p&gt;&#xA;" OwnerUserId="4499" LastActivityDate="2010-10-18T19:30:06.637" />
  <row Id="12796" PostTypeId="2" ParentId="12773" CreationDate="2010-10-18T19:31:58.333" Score="3" ViewCount="" Body="&lt;p&gt;Stick with the GoF. In addition, I'd suggest you read the following:&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201743973&quot; rel=&quot;nofollow&quot;&gt;Steven John Metsker's &quot;Design Patterns Java(TM) Workbook&quot; (ISBN 0201743973)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this book is a nice complement to the GoF or it could be safely used instead of the GoF if you are learning or working with Java. Similar books exist for other languages like C# and Ruby, but I cannot attest of their quality since I have not read them.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321109295&quot; rel=&quot;nofollow&quot;&gt;William C. Wake's &quot;Refactoring Workbook&quot; (ISBN 0321109295)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Refactoring goes hand in hand with patterns. This one is a nice workbook to read.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0471197130&quot; rel=&quot;nofollow&quot;&gt;Brown et al &quot;AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis&quot; (ISBN 0471197130)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other side of the coin are anti-patterns, code smells that scream for refactoring. This book is good (at least the first half that deals with software-related anti-patterns.)&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131489062&quot; rel=&quot;nofollow&quot;&gt;Craig Larmans' &quot;Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition)&quot; (ISBN 0131489062)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Larman's book is pretty much becoming a de-facto preferred textbook for undergrad courses in software engineering and systems analysis. It does a good work in walking through the utilization of UML and patterns in an iterative process.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0521663504&quot; rel=&quot;nofollow&quot;&gt;Chris Okasaki's &quot;Purely Functional Data Structures&quot; (ISBN 0521663504)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would consider this book once you have developed a good working knowledge of patterns, anti-patterns and re-factoring. It is a theoretical treatise of patterns and data structures from a purely functional point of view. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the things with the GoF (and books that carry that baton) is that those patterns are the product of an era where generic programming was finally being realized in C++. The patterns presented therein existed to accommodate a OO and procedural/algorithmic paradigm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Several of these patterns (visitor for example) don't have much of a reason to exist in languages that treat functions as first-class objects. &lt;strong&gt;I would not touch this book without a good grasp of patterns and functional languages, though&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-18T19:31:58.333" CommentCount="2" />
  <row Id="12797" PostTypeId="2" ParentId="12766" CreationDate="2010-10-18T19:39:43.580" Score="9" ViewCount="" Body="&lt;p&gt;After having read both editions of Code Complete, and taken extensive notes (see a &lt;a href=&quot;http://programmers.stackexchange.com/questions/2777/what-are-the-key-points-of-code-complete/4808#4808&quot;&gt;summary&lt;/a&gt; here), I'm not sure much should be added: methinks it's a book for advanced beginners and intermediate programmers (&amp;lt; 5 years in industry), for which it works very effectively in cultivating good habits, and a wider view of programming and software project management.  Programmers who are moving beyond intermediate level (e.g. starting to learn multiple paradigms, including learning non-mainstream languages and multiple development processes) won't get as much out of it.  But that's not the book's fault; it's not meant for them.  If every working programmer just read Code Complete and nothing else, the average skill level in the industry would be raised 5x at least.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of things to be removed: words. Needless words, to be precise.  The book is too long and the writing style can be tiresome.  I also don't care for the Microsoft-centric approach (VB examples?!) and overly-mainstream perspective (e.g. caution/fear of recursion in Ch.17).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond Code Complete are books like &lt;a href=&quot;http://www.pragprog.com/the-pragmatic-programmer&quot; rel=&quot;nofollow&quot;&gt;The Pragmatic Programmer&lt;/a&gt;, which if applied, does take one into advanced levels of skill.  Pragmatic Programmer assumes you're no longer doing silly things like using poor variable names or indenting/formatting inconsistently, thus freeing thinking for harder stuff.  It's much shorter with more content per sentence too.  But again, Code Complete has its place in boosting a naive, stumbling-but-curious programmer into a competent one.  &lt;/p&gt;&#xA;" OwnerUserId="2026" LastEditorUserId="2026" LastEditorDisplayName="" LastEditDate="2010-10-18T19:45:28.883" LastActivityDate="2010-10-18T19:45:28.883" CommentCount="2" />
  <row Id="12798" PostTypeId="2" ParentId="11222" CreationDate="2010-10-18T19:41:27.270" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I am learning Java now a days.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I want to be a successful enterprise&#xA;  developer. Then what algorithms and&#xA;  data structures I should be well&#xA;  versed with? What books would you&#xA;  recommend me?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;To be a successful Java developer, do&#xA;  I need to know all the advanced&#xA;  algorithms such as those given in&#xA;  CLRS?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Can you suggest me a list of the&#xA;  topics that I should learn in the&#xA;  descending order of their priority?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Tell me the name of some topics that I&#xA;  must know. Like Searching, Sorting,&#xA;  Graphs, Trees etc?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It is good that you are eager to extend and improve your programming skills. It is important however, not to treat algorithms as a catalog of things to memorize. What you need to know to become a good developer (in Java or anything else for that matter) is to understand algorithmic analysis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You learn this by learning a select few data structures and algorithms, &lt;em&gt;and&lt;/em&gt; learning to analyze their performance in terms of time and space (memory). Searching, sorting, graphs, trees, heaps, stacks and all of that good stuff. This should also follow some basics of theory of computation and discrete mathematics (even if in the realm of Java we never get to actually use those two topics directly - their benefits are indirect.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Separate the learning of a programming  language (in your case Java) with the learning of &#xA;algorithmic analysis (which is different from the &quot;memorization&quot; of algorithms and data structures.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/059651624X&quot; rel=&quot;nofollow&quot;&gt;George T. Heineman, Gary Pollice and Stanley Selkow's &quot;Algorithms in a Nutshell&quot;&lt;/a&gt; is a good start. &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0073523402&quot; rel=&quot;nofollow&quot;&gt;&quot;Algorithms&quot; by Sanjoy Dasgupta, Christos Papadimitriou, and Umesh Vazirani&lt;/a&gt; is another good undergrad textbook. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best think is to take 9-12 credit courses in programming before taking an undergrad, 3000-level course in algorithms. Barring that, self-study with the two books I mentioned might be a good alternative (self-study might not be for everyone, though.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-18T19:41:27.270" />
  <row Id="12799" PostTypeId="2" ParentId="12794" CreationDate="2010-10-18T19:42:58.687" Score="1" ViewCount="" Body="&lt;p&gt;We'd be pretty lightheaded to believe that only computer science has design patterns. The introduction of Design Patterns even talks about patterns in movie and novel plots. In fact, I believe most design patterns we have in programming were derived from techniques of other fields. For instance, we've had &lt;em&gt;adapters&lt;/em&gt; of all kinds (just think about electricity) far before we had computers. It's just that we're the first to give these strategies a fancy name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So design patterns &quot;work&quot; in the &quot;real world&quot; as you can get concrete versions of many of our patterns in other fields. However, you can't systematically apply design patterns to your workflow, since design patterns generally don't relate to your workflow. This is an algorithm's jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can iterate through my CDs collection (algorithm), but I can't create an iterator to my CDs collection (design pattern).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can create an adapter that will be shaped as a lightbulb base so I can get electricity out of a lightbulb socket for any device, but that won't help my workflow if I have other electricity sources.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, design patterns relate to design. They might help you when you have a design problem in real life, but aside from making your experience a more pleasant one, they probably won't help you do cooking or come back earlier from work.&lt;/p&gt;&#xA;" OwnerUserId="90" LastEditorUserId="90" LastEditorDisplayName="" LastEditDate="2010-10-18T19:48:26.117" LastActivityDate="2010-10-18T19:48:26.117" />
  <row Id="12800" PostTypeId="2" ParentId="12777" CreationDate="2010-10-18T19:44:11.490" Score="1" ViewCount="" Body="&lt;p&gt;The problem with nulls is that languages that allow them pretty much force you into programming defensively against it. It takes a lot of effort (far more than trying to use defensive if-blocks) to make sure that&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;the objects you expect them &lt;em&gt;not&lt;/em&gt; to&#xA;be null are indeed never null, and&lt;/li&gt;&#xA;&lt;li&gt;that your defensive mechanisms&#xA;indeed deal with all potential NPEs&#xA;effectively.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So, indeed, nulls end up being a costly thing to have.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-18T19:44:11.490" CommentCount="2" />
  <row Id="12801" PostTypeId="2" ParentId="9539" CreationDate="2010-10-18T19:47:58.240" Score="0" ViewCount="" Body="&lt;p&gt;Programmers should be made obsolete any time now...&lt;/p&gt;&#xA;" OwnerUserId="4766" LastActivityDate="2010-10-18T19:47:58.240" />
  <row Id="12802" PostTypeId="2" ParentId="12683" CreationDate="2010-10-18T19:48:54.290" Score="2" ViewCount="" Body="&lt;p&gt;In my opinion, pseudo-code has only two valid purposes:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(1) For programming students who need to learn the concepts of modularity and algorithms, but aren't yet fluent in a programming language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(2) To communicate how something will work to a non-technical person, or just for the sake of expediency in a white-board type meeting.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-18T19:48:54.290" />
  <row Id="12803" PostTypeId="2" ParentId="1483" CreationDate="2010-10-18T19:54:14.903" Score="2" ViewCount="" Body="&lt;p&gt;My primary language is English, but I frequently misspell in British English. Does that count? :D&lt;/p&gt;&#xA;" OwnerUserId="4478" LastActivityDate="2010-10-18T19:54:14.903" CommunityOwnedDate="2010-10-18T19:54:14.903" />
  <row Id="12804" PostTypeId="2" ParentId="12794" CreationDate="2010-10-18T19:57:04.367" Score="1" ViewCount="" Body="&lt;p&gt;Yes - all design patterns represent are solutions to common problems understood to be valid and useful by the majority of people in that field.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact the direct inspiration for design patterns comes from the 'real world' in the form of &lt;a href=&quot;http://en.wikipedia.org/wiki/Pattern_%28architecture%29&quot; rel=&quot;nofollow&quot;&gt;architectural patterns&lt;/a&gt; and more specifically a book from 1977: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0195019199&quot; rel=&quot;nofollow&quot;&gt;A Pattern Language&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea itself goes way back, you'll find hundreds of pattern books published in the 19th century for various craft professions.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-18T19:57:04.367" />
  <row Id="12805" PostTypeId="2" ParentId="12672" CreationDate="2010-10-18T19:58:11.773" Score="6" ViewCount="" Body="&lt;p&gt;As much as we as programmers don't like to admit it, beautifully coded software isn't always going to translate to more value to the company or the customers. This is doubly true in a disaster situation, for example the software is double charging people's credit cards. Sometimes, like a bandage, you just need to stop the bleeding by whatever means necessary and promise to get back after the patient has been stabilized and actually fix the core problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The trick is, that once the urgency is gone, it is really hard to convince anyone to prioritize replacing the bandage with a true fix. Especially considering that there is always another urgent issue waiting in line behind the first one. You just have to be vigilant about staying with the issue beyond the quick-fix.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-18T19:58:11.773" CommentCount="2" />
  <row Id="12806" PostTypeId="2" ParentId="12707" CreationDate="2010-10-18T19:58:24.173" Score="3" ViewCount="" Body="&lt;p&gt;Writing  magic words to make computers dance.&lt;/p&gt;&#xA;" OwnerUserId="5148" LastActivityDate="2010-10-18T19:58:24.173" />
  <row Id="12807" PostTypeId="1" CreationDate="2010-10-18T20:01:31.437" Score="96" ViewCount="6801" Body="&lt;p&gt;There is a colleague of mine who constantly writes:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (someBool == true)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It drives me up the wall!  Should I make a big deal of it or just drop it?&lt;/p&gt;&#xA;" OwnerUserId="4526" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2010-10-19T01:41:08.600" LastActivityDate="2010-12-27T09:57:50.010" CommunityOwnedDate="2010-10-19T11:00:05.103" Title="Make a big deal out of == true?" Tags="&lt;programming-practices&gt;&lt;coding-standards&gt;" AnswerCount="47" CommentCount="23" FavoriteCount="11" />
  <row Id="12808" PostTypeId="1" AcceptedAnswerId="12829" CreationDate="2010-10-18T20:05:50.717" Score="4" ViewCount="100" Body="&lt;p&gt;Say you've started an open source project and are posting it on a public repository.  (like I have, using Codeplex.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the key files just makes the connection to the database, contains the login/password, and is just included from any other source file that needs a database connection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's the best way to share the project without giving out your password?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So far I've specifically removed it before committing any changes, but I'm thinking there has to be a better way.&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-10-18T20:36:47.667" Title="Keeping a connection string secure when working with others." Tags="&lt;open-source&gt;&lt;security&gt;" AnswerCount="4" />
  <row Id="12809" PostTypeId="2" ParentId="12807" CreationDate="2010-10-18T20:05:52.863" Score="53" ViewCount="" Body="&lt;p&gt;That drives me crazy too, but I'd say mention the redundancy to them in a constructive way and then drop it even if they don't concur.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Alternatively you could try this approach:&lt;/strong&gt;&lt;br&gt;&#xA;&lt;strong&gt;You:&lt;/strong&gt; Can you start using the following code convention for evaluating Booleans?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (someBool==true)&amp;amp;&amp;amp;(true==true) {}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Them:&lt;/strong&gt; Why would we do that? The second half of that statement is redundant, it would always evaluate to true. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;You:&lt;/strong&gt; By George, you are right. Silly me. Let's just go with a version without all the redundancy then. How about?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (someBool) {}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="287" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-19T02:01:11.327" LastActivityDate="2010-10-19T02:01:11.327" CommunityOwnedDate="2010-10-19T11:00:05.103" CommentCount="7" />
  <row Id="12810" PostTypeId="2" ParentId="12807" CreationDate="2010-10-18T20:06:39.303" Score="4" ViewCount="" Body="&lt;p&gt;I prefer&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (bVal)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (!bVal)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;too, but I'm afraid that bringing it up would piss people off, so my advice is to forget it. Sorry!&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-10-18T20:13:41.767" LastActivityDate="2010-10-18T20:13:41.767" CommunityOwnedDate="2010-10-19T11:00:05.103" CommentCount="2" />
  <row Id="12811" PostTypeId="2" ParentId="12807" CreationDate="2010-10-18T20:08:14.823" Score="2" ViewCount="" Body="&lt;p&gt;Generally will omit the '== true', but it's hardly worth even a minute discussing it unless you have it included in your team's coding standards.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-18T20:08:14.823" CommunityOwnedDate="2010-10-19T11:00:05.103" CommentCount="2" />
  <row Id="12812" PostTypeId="2" ParentId="12807" CreationDate="2010-10-18T20:08:40.720" Score="119" ViewCount="" Body="&lt;p&gt;It's only redundant code, not life or death.  However....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's happening a lot, it could be a problem with how &lt;code&gt;someBool&lt;/code&gt; is being named. A good name can go a long way towards eliminating the need for the &lt;code&gt;==true&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(IsSomeCondition)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(hasCondition)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(somethingExists)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;for example.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-10-18T20:08:40.720" CommunityOwnedDate="2010-10-19T11:00:05.103" CommentCount="7" />
  <row Id="12813" PostTypeId="2" ParentId="12807" CreationDate="2010-10-18T20:09:48.893" Score="0" ViewCount="" Body="&lt;p&gt;I'd say consistency is king in a codebase. So you should use the style, that is &lt;em&gt;mostly&lt;/em&gt; used in your organization. Try to make your preferred style part of official company coding guidelines. If it's already in the guidelines, just follow it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(That being said, it would also really annoy me - but probably not enough to make a big deal out of it).&lt;/p&gt;&#xA;" OwnerUserId="2493" LastActivityDate="2010-10-18T20:09:48.893" CommunityOwnedDate="2010-10-19T11:00:05.103" />
  <row Id="12814" PostTypeId="2" ParentId="12807" CreationDate="2010-10-18T20:10:44.330" Score="11" ViewCount="" Body="&lt;p&gt;Typically, you don't want to make a big deal out of coding conventions unless said convention is somehow impeding the project in a significant way.  I've seen many a heated argument escalate over things as small as code regions and leading underscores.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, I see no issue with adding &lt;code&gt;== true&lt;/code&gt; to a conditional statement.  As a matter of fact, I am in the habit of using &lt;code&gt;== false&lt;/code&gt; as opposed to a leading exclamation point when testing for negative conditions.  I think it's more readable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there is an established convention, I say follow it unless there is reason to change.  However, it's not really worth raising a big stink about.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-10-18T20:10:44.330" CommunityOwnedDate="2010-10-19T11:00:05.103" CommentCount="2" />
  <row Id="12815" PostTypeId="1" CreationDate="2010-10-18T20:11:17.687" Score="5" ViewCount="127" Body="&lt;p&gt;I work for a mid sized Architecture and Engineering firm, our sub group focusses on developing tech solutions for engineers, mappers and technical managers. So we're heavy on desktop based apps for GIS and Civil/Env Engineering (some web). The company sells the services that our Engineers and mappers produce and our team develops tools that aids in them being more productive, efficient and help in adding value to their decesions and products, we DONOT sell the technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are going through growing pains where initally we used to be extremely responsive and could rapidly prototype apps for engineers which immediately brought budgetary savings. That mindset has worked for us in the past. But this year we won a huge contract and our client base has basically quintupled (5 times?). What we are finding is that this rapid prototyping culture is hurting us, where project managers have started to expect short response times for tool development and robust production ready tools for all our engineers and gis analysts. We've grown organically and now it seems that we are running into these issues were it appears we have to scale back our speed for more stability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this a legitimate tradeoff? Is there a win-win? How does one push back the engineer, project manager and analyst when they are our clients, they fund us and yet we need to be able to push back and tell them that if they want stability they have to be realistic about time frames? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isnt Microsoft Word, these are specialized GIS software and Engineering models with a ton of interop components for other industry standard models, they arent idiot proof tools, they need informed inputs and we can only test things so much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone dealt with similar growing pains? Recommendations/advice on a communication stance, books, blogs?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Appreciate the time!&lt;/p&gt;&#xA;" OwnerUserId="5637" LastActivityDate="2010-10-20T23:35:19.900" Title="communication , realistic approach" Tags="&lt;communication&gt;" AnswerCount="2" />
  <row Id="12816" PostTypeId="2" ParentId="12807" CreationDate="2010-10-18T20:13:49.507" Score="0" ViewCount="" Body="&lt;p&gt;I prefer not placing the extra == true, but sometimes I accidentally include it and don't notice it.  The person may not have noticed and accidentally placed them.  I reread my code and sometimes notice that I placed the extra == true so I remove that == true.  I sometimes don't notice it and would happily welcome someone telling me I placed it redundantly. &lt;/p&gt;&#xA;" OwnerUserId="3092" LastActivityDate="2010-10-18T20:13:49.507" CommunityOwnedDate="2010-10-19T11:00:05.103" />
  <row Id="12818" PostTypeId="2" ParentId="12807" CreationDate="2010-10-18T20:14:11.940" Score="39" ViewCount="" Body="&lt;p&gt;You should definitely stop this bad habit. Gently...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's easy to forget to write the double equal signs, turning the code into:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (someBool = true)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In C# for example this will only produce a warning, not an error. So unless you treat warnings as errors the code will run, set the variable to true and always enter the condition.&lt;/p&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-10-18T20:14:11.940" CommunityOwnedDate="2010-10-19T11:00:05.103" CommentCount="21" />
  <row Id="12819" PostTypeId="2" ParentId="12807" CreationDate="2010-10-18T20:16:42.557" Score="20" ViewCount="" Body="&lt;p&gt;I agree with you, but I'm going to play devil's advocate here:&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Depending on the language and the variable's name, x==true is appropriate:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider the following situation in a language with static typing and type coercion for integral types:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (actionsAllowed){&#xA;    //do actions, since they are allowed&#xA;    //...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Someone reading this section of the code might not realize immediately that actionsAllowed is a boolean variable - it could also be an integer, representing the number of allowed actions. So by adding == true, it becomes clear that x is a boolean, and not an integer being coerced to a boolean:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (actionsAllowed == true){&#xA;    //do actions, since they are allowed&#xA;    //...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1416" LastActivityDate="2010-10-18T20:16:42.557" CommunityOwnedDate="2010-10-19T11:00:05.103" CommentCount="10" />
  <row Id="12820" PostTypeId="2" ParentId="12672" CreationDate="2010-10-18T20:20:12.573" Score="1" ViewCount="" Body="&lt;p&gt;I would say it's very common.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check out Joel Spolsky's blog post: &lt;a href=&quot;http://www.joelonsoftware.com/items/2009/09/23.html&quot; rel=&quot;nofollow&quot;&gt;The Duct Tape Programmer&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can easily say that just about every project I've ever been on I've had to apply &lt;em&gt;some kind&lt;/em&gt; of bandage or duct tape to meet deadlines and complete a task.  It's not pretty, it's not clean, but it gets the job done so a business can continue to run, and the project can move forward in some way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a difference between the academic world, and the real world where software actually needs to ship under time and business contraints.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a way it is putting it under the rug, to defer a fix, until hopefully, later.  Sadly, too often, the deferred fix never happens and this code finds its way into production.&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-10-18T20:20:12.573" />
  <row Id="12821" PostTypeId="2" ParentId="12808" CreationDate="2010-10-18T20:21:52.167" Score="1" ViewCount="" Body="&lt;p&gt;If you are sharing the uname and pwd,  you should probably consider saving them in encrypted form.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-18T20:21:52.167" />
  <row Id="12822" PostTypeId="2" ParentId="10128" CreationDate="2010-10-18T20:22:14.837" Score="0" ViewCount="" Body="&lt;p&gt;I checked out the website like two months ago too. It kind of reminds me of BlueJ, which allows you to structure your classes via UML, then double click one of the squares representing the class to open the editor. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But as everyone else, the heavy use of the mouse is a dealbreaker to me. It would be great of the 'bubbles' could be rearranged via shortcuts, just like I can change the window layouts with &lt;a href=&quot;http://awesome.naquadah.org/&quot; rel=&quot;nofollow&quot;&gt;Awesome&lt;/a&gt;, cycle through the bubbles with [Cmd]+j and [Cmd]+k, etc.&lt;/p&gt;&#xA;" OwnerUserId="5636" LastActivityDate="2010-10-18T20:22:14.837" CommunityOwnedDate="2010-10-18T20:22:14.837" />
  <row Id="12823" PostTypeId="2" ParentId="12808" CreationDate="2010-10-18T20:23:14.443" Score="2" ViewCount="" Body="&lt;p&gt;If you're using windows you can encrypt the connection string (e.g. &lt;a href=&quot;http://www.beansoftware.com/ASP.NET-Tutorials/Encrypting-Connection-String.aspx&quot; rel=&quot;nofollow&quot;&gt;like this&lt;/a&gt;) and share that but not the encryption key. I dare say that other platforms have similar capabilities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course it'll be a waste of time unless that account is also locked down with limited privilages.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-18T20:23:14.443" />
  <row Id="12824" PostTypeId="2" ParentId="12589" CreationDate="2010-10-18T20:23:28.873" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Develop is mainly team work.&lt;/strong&gt; That meas that communication (spoken and read), read other people's code and reuse previous modules (both in-house and external) is something to face almost everyday. In m college, at least I had to code with more people in very few occasions, so I though that the main part of the work was to code alone, in the wilderness. It is not.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Explaining things to non-developers is hard&lt;/strong&gt; (also covered for the first point), and is your responsibility to make your points (not of the other 99% of the world).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;The good test is the test that fails.&lt;/strong&gt; (the first time, at least) And, of course, there is no such thing as a bug-free code. You're not a bad programmer is you have bugs. Bugs are just a (very important and time-consuming) part of your job.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;There are no silver bullets.&lt;/strong&gt; Each technology has its advantages and disadvantages.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;College doesn't teach you state-of-the-art technologies.&lt;/strong&gt; But also, 90% of the works uses pretty old technologies. Which, by the way, sometimes is what is needed.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Non technical people make decisions about technical solutions&lt;/strong&gt;, mostly for esoteric reasons like maintenance, partnership, workers availability... &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;You're just beginning&lt;/strong&gt;, young padawan&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Maybe now there are a little more conscience about that code is a work you do in conjunction with more people, as Open Software is more prominent, but when I was at College (late nineties), I was convinced that I was going to be doing things from scratch and not ever looking into other people's code or having to coordinate with others...&#xA;And the truth is that, to me, is one of the best parts, learning and teaching others.&lt;/p&gt;&#xA;" OwnerUserId="1571" LastEditorUserId="1571" LastEditorDisplayName="" LastEditDate="2010-10-18T20:39:19.583" LastActivityDate="2010-10-18T20:39:19.583" CommentCount="1" />
  <row Id="12826" PostTypeId="2" ParentId="12807" CreationDate="2010-10-18T20:28:03.043" Score="37" ViewCount="" Body="&lt;p&gt;I think if something so trivial is your biggest problem with your co-workers, you should consider yourself pretty lucky.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-18T20:28:03.043" CommunityOwnedDate="2010-10-19T11:00:05.103" CommentCount="3" />
  <row Id="12827" PostTypeId="2" ParentId="7592" CreationDate="2010-10-18T20:28:26.927" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329&quot; rel=&quot;nofollow&quot;&gt;VsVim&lt;/a&gt; vim binding for Visual Studio 2010. Really useful, it doesn't cover all the vim's command yet, but that's a minor point. And it's free, the source code is available on &lt;a href=&quot;http://github.com/jaredpar/VsVim&quot; rel=&quot;nofollow&quot;&gt;gighub&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3327" LastActivityDate="2010-10-18T20:28:26.927" />
  <row Id="12828" PostTypeId="2" ParentId="12807" CreationDate="2010-10-18T20:29:13.283" Score="64" ViewCount="" Body="&lt;p&gt;When I see &lt;code&gt;someBool == true&lt;/code&gt;, I can't help but feel like the programmer hasn't internalized the idea of &lt;em&gt;evaluation&lt;/em&gt;, which is a pretty fundamental deficiency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, my perspective is skewed because I spent several summers in college teaching programming to kids, who frequently wrote expressions like this because they genuinely hadn't mastered the mental exercise of evaluating an expression.  Once they grokked the concept, the redundancy became obvious.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For an otherwise competent professional programmer, this is probably not the case.  It's probably just a bad habit they developed in their early days of programming and never quite shook.  But it would still scare me a bit if it was the first thing I saw someone do in an interview.&lt;/p&gt;&#xA;" OwnerUserId="151" LastActivityDate="2010-10-18T20:29:13.283" CommunityOwnedDate="2010-10-19T11:00:05.103" CommentCount="5" />
  <row Id="12829" PostTypeId="2" ParentId="12808" CreationDate="2010-10-18T20:36:14.303" Score="6" ViewCount="" Body="&lt;p&gt;One trick learned in the ASP classic days, was to have the connection string in an outside file.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;''// Init the ADO objects  &amp;amp; the stored proc parameters&#xA;cmd.ActiveConnection = &quot;file name=c:\udl\mydb.udl&quot;&#xA;cmd.CommandText = sqlstmt&#xA;cmd.CommandType = adCmdStoredProc&#xA;....&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It works in ADO, don't know your environment&lt;/p&gt;&#xA;" OwnerUserId="1748" LastActivityDate="2010-10-18T20:36:14.303" CommentCount="3" />
  <row Id="12830" PostTypeId="2" ParentId="12808" CreationDate="2010-10-18T20:36:47.667" Score="3" ViewCount="" Body="&lt;p&gt;It sounds to me like you're sharing your code, but not the connection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may want to just store your password in a file outside your checkout or a file that is marked as ignored by your version control. I have a set of scripts at work that need my username/password that I shared, and I just have it look at ~/.live_db to get my info.&lt;/p&gt;&#xA;" OwnerUserId="4071" LastActivityDate="2010-10-18T20:36:47.667" CommentCount="1" />
  <row Id="12831" PostTypeId="2" ParentId="12815" CreationDate="2010-10-18T20:39:25.180" Score="3" ViewCount="" Body="&lt;p&gt;First of all I think the basic idea of quick development and delivery is fine and if you can keep it then great, do so (it is the gist of the Agile Movement).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Question is &lt;em&gt;why&lt;/em&gt; you have problems now?  Is the problem that you cannot deliver as fast because you have more clients to share your time?  Is the problem that the new employees cannot produce new code fast enough?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal guess is that you've found that &quot;talent doesn't scale&quot; and that you now have too few experienced programmers to do what you did before for more clients.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;EDIT:  If so, you need to acknowledge this fact, as it is impossible to throw additional people at the problem to keep the scaling.  Your experienced people will need to mentor new apprentices, and that will take some time.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-10-20T14:53:37.803" LastActivityDate="2010-10-20T14:53:37.803" />
  <row Id="12832" PostTypeId="2" ParentId="11312" CreationDate="2010-10-18T20:44:16.577" Score="0" ViewCount="" Body="&lt;p&gt;Coke.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, dual monitors are overrated. &lt;/p&gt;&#xA;" OwnerUserId="5636" LastActivityDate="2010-10-18T20:44:16.577" CommunityOwnedDate="2010-10-18T20:44:16.577" CommentCount="1" />
  <row Id="12833" PostTypeId="1" CreationDate="2010-10-18T20:51:03.027" Score="8" ViewCount="338" Body="&lt;p&gt;I'm looking for a book which covers algorithms, data structures and complexity, as well as hard algorithmical problems (by hard I mean NP-problems like traveling salesman problem, node-colouring a graph, etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you know of a book discussing these topics that you'd recommend? If you know of three books, each covering only one topic but does that really well, please include those as well.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-10-18T20:59:33.713" LastActivityDate="2010-10-19T00:23:02.467" Title="Recommended book about algorithms, data structures and complexity?" Tags="&lt;books&gt;&lt;problem-solving&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="7" />
  <row Id="12834" PostTypeId="2" ParentId="12777" CreationDate="2010-10-18T21:00:51.390" Score="7" ViewCount="" Body="&lt;p&gt;There are several problems with using null references in code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, it's generally used to indicate a &lt;strong&gt;special state&lt;/strong&gt;. Rather than defining a new class or constant for each state as specializations are normally done, using a null reference is using a &lt;strong&gt;lossy, massively generalized type/value&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, debugging code becomes more difficult when a null reference appears and you &lt;strong&gt;attempt to determine what generated it&lt;/strong&gt;, which state is in effect and its cause even if you can trace its upstream execution path.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Third, null references introduces &lt;strong&gt;additional code paths to test&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fourth, once null references are used as valid states for parameters as well as return values, defensive programming (for states caused by design) requires &lt;strong&gt;more null reference checking to be done in various places&lt;/strong&gt;…just in case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fifth, the language's &lt;strong&gt;runtime is already performing type checks&lt;/strong&gt; when it performs selector lookup on an object's method table. So you're duplicating effort by checking if the object's type is valid/invalid and then having the runtime check the valid object's type to invoke its method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why not use the &lt;a href=&quot;http://en.wikipedia.org/wiki/Null_Object_pattern&quot; rel=&quot;nofollow&quot;&gt;NullObject pattern&lt;/a&gt; to &lt;strong&gt;take advantage of the runtime's check&lt;/strong&gt; to have it invoke &lt;a href=&quot;http://en.wikipedia.org/wiki/NOP&quot; rel=&quot;nofollow&quot;&gt;NOP&lt;/a&gt; methods specific to that state (conforming to the regular state's interface) while also eliminating all the extra checking for null references throughout your codebase? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It &lt;strong&gt;involves more work&lt;/strong&gt; by creating a NullObject class for each interface with which you want to represent a special state. But at least the &lt;strong&gt;specialization is isolated&lt;/strong&gt; to each special state, rather than the code in which the state might be present. IOW, the number of tests are reduced because you have &lt;strong&gt;fewer alternate execution paths&lt;/strong&gt; in your methods.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-18T21:00:51.390" CommentCount="4" />
  <row Id="12835" PostTypeId="2" ParentId="12833" CreationDate="2010-10-18T21:03:09.857" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/059651624X&quot; rel=&quot;nofollow&quot;&gt;Algorithims in a nutshell&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-10-18T21:03:09.857" />
  <row Id="12836" PostTypeId="2" ParentId="12777" CreationDate="2010-10-18T21:11:07.067" Score="4" ViewCount="" Body="&lt;h2&gt;null is evil&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;There is a presentation on InfoQ on this topic: &lt;strong&gt;&lt;a href=&quot;http://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare&quot; rel=&quot;nofollow&quot;&gt;Null References: The Billion Dollar Mistake&lt;/a&gt;&lt;/strong&gt; by &lt;em&gt;Tony Hoare&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Option type&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The alternative from functional programming is using an &lt;a href=&quot;http://en.wikipedia.org/wiki/Option_type&quot; rel=&quot;nofollow&quot;&gt;Option type&lt;/a&gt;, that can contain &lt;code&gt;SOME value&lt;/code&gt; or &lt;code&gt;NONE&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good article &lt;strong&gt;&lt;a href=&quot;http://www.codecommit.com/blog/scala/the-option-pattern&quot; rel=&quot;nofollow&quot;&gt;The “Option” Pattern&lt;/a&gt;&lt;/strong&gt; that discuss the Option type and provide an implementation of it for Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have also found a bug-report for Java about this issue: &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5030232&quot; rel=&quot;nofollow&quot;&gt;Add Nice Option types to Java to prevent NullPointerExceptions&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-18T21:11:07.067" CommentCount="1" />
  <row Id="12837" PostTypeId="2" ParentId="12833" CreationDate="2010-10-18T21:13:58.510" Score="4" ViewCount="" Body="&lt;p&gt;I have heard nothing but praise for Cormen et al's &lt;em&gt;&lt;a href=&quot;http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&amp;amp;tid=11866&quot; rel=&quot;nofollow&quot;&gt;Introduction to Algorithms&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-18T21:13:58.510" CommentCount="2" />
  <row Id="12838" PostTypeId="2" ParentId="4693" CreationDate="2010-10-18T21:15:27.877" Score="4" ViewCount="" Body="&lt;p&gt;I guess we tend to show superiority because we tend to know a lot about non-trivial topics, giving the impression (or the reality, your choice) that we are some levels superior to everyone else (let's say, &lt;strong&gt;level 80 Paladdin&lt;/strong&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem comes when that behavior permeates to our interaction with our family or non-techie friends. I've come to avoid technical topics when I'm in such environments. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm such an asshole sometimes. But so are you.&lt;/p&gt;&#xA;" OwnerUserId="5636" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2010-11-13T10:43:01.407" LastActivityDate="2010-11-13T10:43:01.407" CommunityOwnedDate="2010-10-18T21:15:27.877" CommentCount="1" />
  <row Id="12839" PostTypeId="1" CreationDate="2010-10-18T21:22:37.523" Score="2" ViewCount="138" Body="&lt;p&gt;I would like to get a new monitor for work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Primary usage is Eclipse which is quite wasteful of screen estate, so I was looking at getting a high resolution.  I am not as such interested in a &lt;em&gt;BIG&lt;/em&gt; screen, but more a large pixel count.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Got any suggestions for monitors with a larger-than-HD resolution, and preferably if they can be pivoted to have the highest resolution vertically?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apple has non-pivotable 27&quot; and 30&quot; monitors.  They are too expensive for this purpose.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-18T21:22:37.523" ClosedDate="2010-10-18T22:53:48.450" Title="What monitors have larger than HD resolution? Size is less important." Tags="&lt;recommendations&gt;&lt;resolution&gt;" CommentCount="6" />
  <row Id="12840" PostTypeId="2" ParentId="12773" CreationDate="2010-10-18T21:27:25.553" Score="1" ViewCount="" Body="&lt;p&gt;Definitely begin with GoF - but bear in mind that since it came out there are numerous books with various pattern catalogues in them (most of the 'signature' series comes to mind, such as &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321127420&quot; rel=&quot;nofollow&quot;&gt;PoEAA&lt;/a&gt; or &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321200683&quot; rel=&quot;nofollow&quot;&gt;Enterprise Integration Patterns&lt;/a&gt;) which take the pattern idea into more specific areas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also remember that the implementation of some of the patterns is potentially a little archaic depending on the language you're working in. For example, although you could implement the Java code pretty much as-is in C# (and that would have been fine when C# 1 was knocking about) you'd be missing out on the potential that some modern language features provide. Specifically for .net I like the &lt;a href=&quot;http://www.dofactory.com/Patterns/Patterns.aspx&quot; rel=&quot;nofollow&quot;&gt;examples from dotfactory&lt;/a&gt;, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/059652773X&quot; rel=&quot;nofollow&quot;&gt;Judith Bishop's book&lt;/a&gt; is pretty good too.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-18T21:27:25.553" CommentCount="1" />
  <row Id="12841" PostTypeId="2" ParentId="4693" CreationDate="2010-10-18T21:32:53.450" Score="4" ViewCount="" Body="&lt;p&gt;Because we're optimists.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We believe computers can be well-designed.  Yet we see every day, almost every piece of hardware and software we touch is incredibly poorly designed.  And, being optimists, we think we could have done it better.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-18T21:32:53.450" CommunityOwnedDate="2010-10-18T21:32:53.450" />
  <row Id="12842" PostTypeId="2" ParentId="12777" CreationDate="2010-10-18T21:36:46.590" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;And what's the alternative?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Optional types and pattern matching. Since I don't know C#, here is a piece of code in a fictional language called Scala# :-)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Customer.GetByLastName(&quot;Goodman&quot;)    // returns Option[Customer]&#xA;match&#xA;{&#xA;    case Some(customer) =&amp;gt;&#xA;    Console.WriteLine(customer.FirstName + &quot; &quot; + customer.LastName + &quot; is awesome!&quot;);&#xA;&#xA;    case None =&amp;gt;&#xA;    Console.WriteLine(&quot;There was no customer named Goodman.  How lame!&quot;);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3684" LastActivityDate="2010-10-18T21:36:46.590" />
  <row Id="12843" PostTypeId="2" ParentId="11312" CreationDate="2010-10-18T21:39:56.803" Score="4" ViewCount="" Body="&lt;p&gt;Windows that you can open.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not the software kind.  The wood/metal frames with glass you look through to see the outside world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hate being completely enclosed in a sterile office.  I've been a dual-monitors guy since the 1990's, and I live in Seattle, but I'd give up free coffee and half of my display area to have fresh air in the summer.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-18T21:39:56.803" CommunityOwnedDate="2010-10-18T21:39:56.803" />
  <row Id="12844" PostTypeId="2" ParentId="12833" CreationDate="2010-10-18T21:40:44.680" Score="1" ViewCount="" Body="&lt;p&gt;I think this fits the bill well:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1848000693&quot; rel=&quot;nofollow&quot;&gt;The Algorithm design manual&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It goes through complexity, data structures etc, before moving on to combinatorial, graph, set and computational geometry algorithms. What I particularly enjoy is the number of exercises it includes and how it highlights where the algorithms may be/have been used in real life.&lt;/p&gt;&#xA;" OwnerUserId="4519" LastActivityDate="2010-10-18T21:40:44.680" />
  <row Id="12846" PostTypeId="2" ParentId="12833" CreationDate="2010-10-18T21:42:53.973" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321751043&quot; rel=&quot;nofollow&quot;&gt;Art of Computer Programming&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/aj6It.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-18T21:42:53.973" />
  <row Id="12847" PostTypeId="2" ParentId="1483" CreationDate="2010-10-18T21:51:02.630" Score="0" ViewCount="" Body="&lt;p&gt;Once I've worked with code which was written by Italian programmers, and once by German programmers. It was standard MFC/C++, so of course all the keywords and language/platform was in English. But the variable names, classes, functions, and inline comments were in Italian and German, respectively.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's amazing how much difference that makes in terms of readability and ease of maintenance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the flipside, I can imagine that as a non-English speaker, it would be quite a steep learning curve to learn a programming language/platform where all the keywords and APIs are in English. Even if all the documentation is translated and you can look it up.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-18T21:51:02.630" CommunityOwnedDate="2010-10-18T21:51:02.630" />
  <row Id="12848" PostTypeId="2" ParentId="12653" CreationDate="2010-10-18T22:12:25.197" Score="1" ViewCount="" Body="&lt;p&gt;These days, pretty much never - although the logical approach to problem solving is always applicable I never use any mathematics more complex than rearranging a simple (and I mean really, really simple like y = ax + b) and even that's rare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said even when I was working in an area that required maths skills (computer graphics) it was very much applying known algorithms. And even then, to be able to do that you only really need some basic knowledge of matrices and an appreciation of what various terms like 'normal', 'product' etc mean. Personally I think that's pretty basic stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suspect the number of people who really 'solve problems' with maths in their day-to-day jobs is tiny, it just isn't relevant in most business domains.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-18T22:12:25.197" />
  <row Id="12849" PostTypeId="2" ParentId="12777" CreationDate="2010-10-18T22:15:02.340" Score="0" ViewCount="" Body="&lt;p&gt;Optimise for the most common case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having to check for null all the time is tedious - you want to be able to just get hold of the Customer object and work with it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the normal case, this should work just fine - you do the look up, get the object and use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the &lt;em&gt;exceptional case&lt;/em&gt;, where you're (randomly) looking up a customer by name, not knowing whether that record/object exists, you'd need some indication that this failed. In this situation, the answer is to throw a RecordNotFound exception (or let the SQL provider beneath do this for you).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're in a situation where you don't know whether you can trust the data coming in (the parameter), perhaps because it was entered by a user, then you could also provide the 'TryGetCustomer(name, out customer)' pattern. Cross-reference with int.Parse and int.TryParse.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-18T22:15:02.340" />
  <row Id="12850" PostTypeId="2" ParentId="6625" CreationDate="2010-10-18T22:16:58.707" Score="2" ViewCount="" Body="&lt;p&gt;You will need physically close persons you can convince to work with you - and keep convincing - to get this started as a team project.  You will never attract good programmers from the net to do this kind of work - they will look at your project and immediately walk away if you don't provide substantial value up front.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-18T22:16:58.707" />
  <row Id="12851" PostTypeId="2" ParentId="9539" CreationDate="2010-10-18T22:19:30.003" Score="2" ViewCount="" Body="&lt;p&gt;30 years ago there was no Internet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You think anybody from back then could imagine anything like this site?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same may happen again...&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-18T22:19:30.003" />
  <row Id="12852" PostTypeId="2" ParentId="12762" CreationDate="2010-10-18T22:25:56.630" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Great Array Slicing routines&lt;/strong&gt;, something I need all the time and miss in my current language.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-10-18T22:25:56.630" CommentCount="3" />
  <row Id="12853" PostTypeId="2" ParentId="12762" CreationDate="2010-10-18T22:29:40.763" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Generics&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A sensible implementation for generics would be nice.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-18T22:29:40.763" />
  <row Id="12854" PostTypeId="2" ParentId="12653" CreationDate="2010-10-18T22:32:01.640" Score="2" ViewCount="" Body="&lt;p&gt;Very rarely....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is actually one of those things which surprised me about programming. When studying Computer Science at uni, there was a lot of emphasis on maths. Like: we had to take some hardcore mathematics subjects, and we were told that programmers have to be very mathematically minded.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, almost a decade later, I have to say I could have gotten away with basic high school maths in almost all the work that I've done. There was only one gig (a CNC machine tool programming job) where &quot;higher maths&quot; came in handy. But for most everyday programming work, in most gigs, I've really needed nothing more than a basic feel for logic and algorithm design. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;About the biggest issue that comes up on a regular basis is something like not using brute force iteration over a huge data set.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-18T22:32:01.640" />
  <row Id="12855" PostTypeId="2" ParentId="11312" CreationDate="2010-10-18T22:45:05.840" Score="0" ViewCount="" Body="&lt;p&gt;Some flexibility in hours&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not everyone is most productive at the same time of day&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-10-18T22:45:05.840" CommunityOwnedDate="2010-10-18T22:45:05.840" />
  <row Id="12856" PostTypeId="2" ParentId="724" CreationDate="2010-10-18T23:04:12.580" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://download.oracle.com/javafx/1.3/tutorials/core/dataBinding/&quot; rel=&quot;nofollow&quot;&gt;The Binding Mechanism&lt;/a&gt; in JavaFX (R.I.P). The &lt;strong&gt;bind&lt;/strong&gt; keyword enables you to bind the value of a variable to the value of an expression and getting you rid of all those ugly Listener whatsoever boilerplate code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While JavaFX was quite a fail in many ways, I found many features of the scripting language quite nice.&lt;/p&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2010-10-18T23:04:12.580" />
  <row Id="12857" PostTypeId="2" ParentId="2331" CreationDate="2010-10-18T23:10:35.740" Score="2" ViewCount="" Body="&lt;p&gt;Arrays in AWK starting at index &lt;strong&gt;1&lt;/strong&gt;!&lt;/p&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2010-10-18T23:10:35.740" CommentCount="3" />
  <row Id="12858" PostTypeId="1" CreationDate="2010-10-18T23:11:40.380" Score="4" ViewCount="152" Body="&lt;p&gt;In the spirit of getting new people on the project up to speed and leveraging their familiarity with existing Windows tools, what are possible options for cross-platform editing/development?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, the Windows people could learn vi/Emacs, X, Eclipse/NetBeans, etc, but this would involve a period of learning, per-person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any combination of technologies/tools that would let developers that are most familiar with a Windows tool-chain help out on a Linux-based project?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;E.g. One developer would like to use UltraEdit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For reference, the Linux project(s) are all daemon processes written in C++ and the development server has:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Version Control systems include RCS, CVS and SVN.  &lt;/li&gt;&#xA;&lt;li&gt;Compile tools are GCC and a Make-like build system.&lt;/li&gt;&#xA;&lt;li&gt;X Windows&lt;/li&gt;&#xA;&lt;li&gt;Telnet/RSH/SSH&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Suggestions don't have to be free/open-source, but an indication of licensing terms would be greatly appreciated&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Updated to add language)&lt;/p&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-10-19T08:38:04.323" LastActivityDate="2011-02-10T10:11:55.677" Title="Using Windows tools to edit Linux project files" Tags="&lt;tools&gt;&lt;windows&gt;&lt;c++&gt;&lt;linux&gt;&lt;cross-platform&gt;" AnswerCount="5" />
  <row Id="12859" PostTypeId="2" ParentId="12833" CreationDate="2010-10-18T23:20:01.533" Score="1" ViewCount="" Body="&lt;p&gt;Series by Robert Sedgewick:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201756080&quot; rel=&quot;nofollow&quot;&gt;Algorithms in C, Parts 1-5:&#xA;Fundamentals, Data Structures,&#xA;Sorting, Searching, and Graph&#xA;Algorithms (3rd Edition) &lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/020172684X&quot; rel=&quot;nofollow&quot;&gt;Algorithms in C++, Parts 1-5:&#xA;Fundamentals, Data Structures,&#xA;Sorting, Searching, and Graph&#xA;Algorithms (3rd Edition) &lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201775786&quot; rel=&quot;nofollow&quot;&gt;Algorithms in Java, Third Edition,&#xA;Parts 1-5: Fundamentals, Data&#xA;Structures, Sorting, Searching, and&#xA;Graph Algorithms (3rd Edition)&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-18T23:20:01.533" />
  <row Id="12860" PostTypeId="2" ParentId="11312" CreationDate="2010-10-18T23:20:29.563" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A Water Cooler&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't have one and I bring two water bottles with me every day. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many other answers have covered things like dual monitors and recreation areas (music and the like). &lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-10-18T23:20:29.563" CommunityOwnedDate="2010-10-18T23:20:29.563" />
  <row Id="12861" PostTypeId="1" CreationDate="2010-10-18T23:23:33.360" Score="5" ViewCount="664" Body="&lt;p&gt;I know python is not suitable for things like microcontrolers, make drivers etc, but besides that, you can do everything using python, companys get stuck with speed optimizations for real hard time system but does forget other factors which one you can just upgrade your hardware for speed proposes in order to get your python program fit in it, if you think how much cust can the company have to maintain  a system written in C, the comparison is like that:&#xA;for example: 10 programmers to mantain a system written in c&#xA;and just one programmer to mantain a system written in python,&#xA;with python you can buy some better hardware to fit your python program, I think that low level languages tend to get more cost, since programmers aren't so cheaply than a hardware upgrade,&#xA;then, this is my point, &lt;strong&gt;why should a system be written in c instead of python&lt;/strong&gt;?&lt;/p&gt;&#xA;" OwnerUserId="2369" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2010-10-19T01:41:41.513" LastActivityDate="2010-10-23T12:43:05.373" Title="Why should we use low level laguages if a high level one like python can do almost everything?" Tags="&lt;programming-languages&gt;&lt;python&gt;&lt;c&gt;&lt;language-choice&gt;" AnswerCount="7" CommentCount="5" FavoriteCount="4" />
  <row Id="12862" PostTypeId="2" ParentId="12833" CreationDate="2010-10-18T23:25:18.640" Score="1" ViewCount="" Body="&lt;p&gt;Another set of books with the same algorithms, implemented in different languages (I have the C version):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/3540605304&quot; rel=&quot;nofollow&quot;&gt;Numerical Algorithms with C&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/3540605290&quot; rel=&quot;nofollow&quot;&gt;Numerical Algorithms with&#xA;Fortran&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-18T23:25:18.640" />
  <row Id="12863" PostTypeId="2" ParentId="12861" CreationDate="2010-10-18T23:35:48.627" Score="10" ViewCount="" Body="&lt;p&gt;The main reason is because the software was &lt;em&gt;already&lt;/em&gt; written in C (or C++ or whatever) before Python became a legitimate choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's a question of rewriting your million lines of C code into Python or continuing with the C code, then the choice is clear. If you spend 12 month rewriting the code in Python, then that's 12 months where you're &lt;em&gt;not adding new features&lt;/em&gt; and you'll basically spend 12 months getting back to exactly where you were.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not to mention that fact that you'll probably have missed all those corner-case bugs that had been fixed over the years in the C version, but not really called out in the code so when your Python dev comes along to port it and says &quot;why does the code do this? That seems wierd... I'll just do it this other way&quot; he's actually forgetting about that customer from 6 years ago who lost 12 months worth of payroll because of this obscure bug in their RAID controller that was worked around with &lt;em&gt;just that specific piece of code&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's basically the same answer people get when they ask &quot;Why doesn't Microsoft rewrite Windows or Office or (insert-product-here) in .NET? I thought .NET was the poster-child for all Microsoft development these days?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, when it comes to developing &lt;em&gt;new&lt;/em&gt; products, then Python (and all the other possible choices) become a more viable option. But  you've still to weigh the benefit of going with Python (or whatever) over C or C++, particularly when your new product may be interfacing with lots of existing code that you've already got written in C or C++.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-18T23:35:48.627" CommentCount="4" />
  <row Id="12864" PostTypeId="1" AcceptedAnswerId="12870" CreationDate="2010-10-18T23:42:22.893" Score="6" ViewCount="258" Body="&lt;p&gt;I am curious about the very early steps that a programmer's mind takes when it first encounters a problem that it is supposed to solve. How do you start reasoning about it ? What are the first questions you ask yourself ??.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ok, let me make it more concrete for those of you who think the question is too vague or entirely situation dependent. Pick &lt;strong&gt;any&lt;/strong&gt; of the following   requirements and think out loud about your very first hunches/impressions/tendencies about how to solve it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) build a simple word processor with about as much functionality as MS Word Pad&lt;br&gt;&#xA; 2) design a single person card game (e.g. Solitaire)&lt;br&gt;&#xA; 3) build a scientific calculator&lt;br&gt;&#xA; 4) Any  problem of your choosing with similar scale/complexity as the above three&lt;/p&gt;&#xA;" LastActivityDate="2010-10-25T23:15:40.847" Title="What are your initial three steps when you are first presented with a software problem ?" Tags="&lt;self-improvement&gt;&lt;programming-practices&gt;" AnswerCount="12" CommentCount="3" />
  <row Id="12865" PostTypeId="2" ParentId="12861" CreationDate="2010-10-18T23:49:44.210" Score="3" ViewCount="" Body="&lt;p&gt;Because even when you're not writing &quot;low-level applications&quot; such as device drivers, the need for low-level &lt;em&gt;code&lt;/em&gt; tends to show up in all sorts of places, especially for performance optimizations in computation-intensive parts of your app.  This is common enough even in apps written in C and other static, fully-compiled languages, and it only gets worse when you start throwing inherently slow &quot;high-level&quot; language features such as dynamic typing and managed pointers into the equation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you have a language that abstracts away all the low-level details, such as Python, you are not able to get down to the level required to fix problems like this.  That's why you tend to see the pattern of writing the core code in a compiled language, and then implementing lightweight business logic in a scripting language that runs on top of the core code, increasing in popularity quite a bit lately.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-18T23:49:44.210" CommentCount="1" />
  <row Id="12866" PostTypeId="2" ParentId="12807" CreationDate="2010-10-18T23:54:17.980" Score="1" ViewCount="" Body="&lt;p&gt;Such coding would have rubbed me the wrong way before too. Although your example identifier is named &quot;someBool&quot;, using that coding style inadvertently on a variable which wasn't guaranteed to be a boolean could have unintended behavior. If the value of &quot;someBool&quot; isn't exactly &quot;true&quot; or &quot;false&quot;, the result will be false.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I encountered a very subtle bug this past year caused by such a coding style which was difficult to identify because one's eyes gloss over such constructs. You'd think, &quot;How could it be wrong?&quot; The same holds true for such well-understood expressions as &quot;(var)&quot; or &quot;(!var)&quot;, that you read or code them without verifying their behavior.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I've introduced a couple of coding standards to reduce the existence of such bugs in the codebase and the likelihood that such subtle bugs will accidentally creep in sometime in the future.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;All expressions must be parenthesized per their intent.&lt;/li&gt;&#xA;&lt;li&gt;All boolean tests must be expressed in the negative, like &quot;suchBool != false&quot;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;By cleaning up code not conforming to the new style, I've identified and corrected a few more instances of such subtle bugs.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-18T23:54:17.980" CommunityOwnedDate="2010-10-19T11:00:05.103" CommentCount="2" />
  <row Id="12867" PostTypeId="2" ParentId="12864" CreationDate="2010-10-18T23:55:33.047" Score="2" ViewCount="" Body="&lt;p&gt;1) &lt;strong&gt;Specify&lt;/strong&gt;.  Break the problem down into core parts and figure out how they're supposed to work.  When the problem is already well-defined, such as a card game with known rules, a fair amount of this step can be glossed over, but it's good to go over it just to make sure you understand the problem domain as well as you think you do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) &lt;strong&gt;Set up a source control repository for the project&lt;/strong&gt;.  Very important to do this before you even start writing any code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) &lt;strong&gt;Pull up your IDE and start hacking&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-18T23:55:33.047" />
  <row Id="12868" PostTypeId="2" ParentId="12833" CreationDate="2010-10-19T00:04:26.363" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201657880&quot; rel=&quot;nofollow&quot;&gt;Programming Pearls&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1237" LastActivityDate="2010-10-19T00:04:26.363" />
  <row Id="12869" PostTypeId="2" ParentId="12833" CreationDate="2010-10-19T00:23:02.467" Score="0" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/DcpGL.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321358287&quot; rel=&quot;nofollow&quot;&gt;Introduction to the Design and Analysis of Algorithms&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I find this one much easier to read than the classical &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0262033844&quot; rel=&quot;nofollow&quot;&gt;Introduction to Algorithms&lt;/a&gt;. I recommend this as an introduction to the topic.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-19T00:23:02.467" CommentCount="1" />
  <row Id="12870" PostTypeId="2" ParentId="12864" CreationDate="2010-10-19T00:51:43.833" Score="5" ViewCount="" Body="&lt;p&gt;1) &lt;b&gt;Get it running&lt;/b&gt;.  Even if it does nothing but say hi.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) &lt;b&gt;Analyze&lt;/b&gt;.  Figure out what it needs, what would be nice, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) &lt;b&gt;Have at it&lt;/b&gt;.  Add features one a time testing between each one.&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-10-19T00:51:43.833" CommentCount="4" />
  <row Id="12871" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T01:13:19.423" Score="1" ViewCount="" Body="&lt;p&gt;how about:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int j = 1;&#xA;for (int i=1; i&amp;gt;=j; i++) ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Yep, I've seen it.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-10-19T01:13:19.423" CommunityOwnedDate="2010-10-19T11:00:05.103" />
  <row Id="12872" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T01:20:47.937" Score="12" ViewCount="" Body="&lt;p&gt;What about nullable bools? &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;bool? MyFlag = null;&#xA;&#xA;if (MyFlag == true)&#xA;    ;  &#xA;&#xA;if (MyFlag)  // error, doesn't compile!&#xA;    ; &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5642" LastActivityDate="2010-10-19T01:20:47.937" CommunityOwnedDate="2010-10-19T11:00:05.103" CommentCount="8" />
  <row Id="12873" PostTypeId="2" ParentId="12858" CreationDate="2010-10-19T01:28:34.803" Score="0" ViewCount="" Body="&lt;p&gt;Well it depends on the language. If your talking about a low level language and your aiming for Linux binaries then Windows people either need a VM or Cygwin. If its high level and your aiming for platform independence, then use whatever editor you want that supports cross platform line endings &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Telnet, SSH, and most version control systems are cross platform to increase popularity, so that's not a problem. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not familiar with X, but shouldn't that be abstracted in the language with built in language features or GTK?&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-10-19T01:28:34.803" CommentCount="2" />
  <row Id="12874" PostTypeId="2" ParentId="12762" CreationDate="2010-10-19T02:13:58.923" Score="1" ViewCount="" Body="&lt;p&gt;This will probably get me down voted into oblivion, but I want:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Assertions&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that I'm going against the entire 'Go philosophy' by saying that, but in order for me to be able to pitch (and use) Go at work, I need (at least) &lt;em&gt;something&lt;/em&gt; like them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Google's explanation of why they are missing is not only insightful, but also compelling:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Go doesn't provide assertions. They&#xA;  are undeniably convenient, but our&#xA;  experience has been that programmers&#xA;  use them as a crutch to avoid thinking&#xA;  about proper error handling and&#xA;  reporting. Proper error handling means&#xA;  that servers continue operation after&#xA;  non-fatal errors instead of crashing.&#xA;  Proper error reporting means that&#xA;  errors are direct and to the point,&#xA;  saving the programmer from&#xA;  interpreting a large crash trace.&#xA;  Precise errors are particularly&#xA;  important when the programmer seeing&#xA;  the errors is not familiar with the&#xA;  code.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I tend to agree with them, somewhat, but that doesn't help me (at all) to get around the fact that while developing proper error handlers, &lt;strong&gt;&lt;em&gt;some programmers use assertions&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again, I don't disagree with Google on excluding them (well, not entirely anyway), but the lack of such a basic tool can become a major road block for use and eventual adoption.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disclaimer: It isn't stopping me from playing with Go. It's just stopping me from convincing others that we might consider using it.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-10-19T02:13:58.923" CommentCount="3" />
  <row Id="12875" PostTypeId="2" ParentId="12777" CreationDate="2010-10-19T02:20:06.947" Score="2" ViewCount="" Body="&lt;p&gt;The issue to what degree your programming language attempts to prove your program's correctness before it runs it. In a statically typed language you prove that you have the correct types. By moving to default of non-nullable references (with optional nullable references) you can eliminate many of the cases where null is passed and it shouldn't be. The question is whether the extra effort in handling non-nullable references is worth the benefit in terms of program correctness.&lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-10-19T02:20:06.947" />
  <row Id="12876" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T02:22:44.307" Score="6" ViewCount="" Body="&lt;p&gt;It depends on the language, but it's usually a bad idea...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In C, &lt;em&gt;never&lt;/em&gt; do this.  It's too easy to find a situation where the value you are testing is not false (non-zero), but also not equal to the single value defined as &quot;true&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Ruby, do this only if you are absolutely certain that you want to fail on everything except Boolean true. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In C++ and other static languages with a bool type,  it's redundant, and can lead to programming errors when you mis-type &lt;code&gt;=&lt;/code&gt; instead of &lt;code&gt;==&lt;/code&gt;, or promotion errors as mentioned in the comments.&lt;/p&gt;&#xA;" OwnerUserId="145" LastEditorUserId="145" LastEditorDisplayName="" LastEditDate="2010-10-19T19:23:09.953" LastActivityDate="2010-10-19T19:23:09.953" CommunityOwnedDate="2010-10-19T11:00:05.103" CommentCount="2" />
  <row Id="12877" PostTypeId="1" CreationDate="2010-10-19T02:35:33.150" Score="9" ViewCount="438" Body="&lt;p&gt;Everybody lives in a digital world these days, none more, it seems, than software developers. What office supplies do you find you still use? What is important enough to keep at your desk vs. leaving in a common office area?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is meant to be open enough to be everything from a staple remover to the copier.&lt;/p&gt;&#xA;" OwnerUserId="3369" LastActivityDate="2010-10-20T02:00:10.647" ClosedDate="2011-03-30T22:00:45.127" Title="What desktop office supplies do you still find to be necessities?" Tags="&lt;office-supplies&gt;" AnswerCount="19" />
  <row Id="12878" PostTypeId="2" ParentId="12877" CreationDate="2010-10-19T02:38:24.037" Score="24" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/rOfQ2.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-19T02:38:24.037" CommentCount="3" />
  <row Id="12879" PostTypeId="1" AcceptedAnswerId="12955" CreationDate="2010-10-19T02:39:11.803" Score="11" ViewCount="521" Body="&lt;p&gt;I'm a young programmer, only 18 and only 5 months into my career. Things I think are good habits or are normal to programmers have been pointed out to be bad habits by my managers. I have been told on multiple occasions that with experience, I'll &quot;grow out of them&quot;. I don't believe these are things you will or &lt;em&gt;should&lt;/em&gt; grow out of up, but I'd like some feedback.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I have a tendency to ask a lot of questions. Apparently I shouldn't ask questions and I'll grow out of it once I have experience in a work environment&lt;/li&gt;&#xA;&lt;li&gt;Bugs. What type of correlation is there between the frequency and severity of bugs with experience?&lt;/li&gt;&#xA;&lt;li&gt;Project management. For some reason I'm stuck managing all of my own projects &amp;amp; clients, and I'm told I'll just get better at it with age. Am I mistaken, or is this something not even close to my job as a programmer and a job which requires a different skill set? I am told however that programmers can become quite adept at managing &lt;strong&gt;&lt;em&gt;other&lt;/em&gt;&lt;/strong&gt; peoples projects&lt;/li&gt;&#xA;&lt;li&gt;Loss of productivity in a noisy environment. I'm sure with age you get better at ignoring distractions, but it never really goes away.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This question serves several purposes. I want to be able to backup my position to my manager, I want to get feedback for personal research purposes and I'd like to help anybody else in my position :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="3382" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-10-19T11:12:27.800" LastActivityDate="2010-10-19T13:30:16.830" Title="Do programmers &quot;grow&quot; out of such things as" Tags="&lt;experience&gt;&lt;career&gt;" AnswerCount="9" CommentCount="4" FavoriteCount="4" />
  <row Id="12880" PostTypeId="2" ParentId="12762" CreationDate="2010-10-19T02:43:08.607" Score="1" ViewCount="" Body="&lt;p&gt;Serious metaprogramming support.  With the ascent of Ruby, Python, D, Clojure and the &quot;modern&quot; dialect of C++, I believe any decent new language should make a serious effort to provide metaprogramming facilities useful by mere mortals.  As far as I can tell, Go is a throwback to a time when metaprogramming was something of an obscure wizardry.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-19T02:43:08.607" />
  <row Id="12881" PostTypeId="2" ParentId="12864" CreationDate="2010-10-19T02:49:45.600" Score="2" ViewCount="" Body="&lt;p&gt;Mentally I do the following, very quickly and abstractly&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) &lt;strong&gt;Requirements Gathering&lt;/strong&gt; - I quickly create a mental list of functionality and how it may be implemented&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) &lt;strong&gt;Methodology&lt;/strong&gt; - I try to figure out which technologies are best suited for the job&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) &lt;strong&gt;Identify Problems&lt;/strong&gt; - Before even starting the project I try to identify any problems that may arise and how to avoid them from the get-go &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Process I do the following:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) &lt;strong&gt;Requirements Gathering&lt;/strong&gt; - I'll almost always create a Project Specification which lists all of the features, how the features work, what they do, what they &lt;em&gt;don't&lt;/em&gt; do and which user groups will be using them. I think this is key, as it clearly defines goals for all parties and can aid in testing &amp;amp; Q.A. as well as provide an outline for development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For paid projects, it also ensures clients have no unmet expectations, however I do this for Internal projects as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) &lt;strong&gt;Development&lt;/strong&gt; - Development for me includes setting up a development environment separate from the production environment, setting up Version Control (Git for me), and getting each feature done, doing some testing along the way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) &lt;strong&gt;User Experience&lt;/strong&gt; - The UX phase involves having a Graphic Designer style all elements on the site/application as I'm a programmer and shouldn't be allowed to make any design decisions :P&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also involves testing the application and making any required tweaks. At the end of this phase the application/software/website should be ready for an initial release.&lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-10-19T02:49:45.600" />
  <row Id="12882" PostTypeId="2" ParentId="12877" CreationDate="2010-10-19T02:58:42.087" Score="33" ViewCount="" Body="&lt;p&gt;Pens, pencils, and paper.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-19T02:58:42.087" />
  <row Id="12883" PostTypeId="2" ParentId="12861" CreationDate="2010-10-19T03:00:00.430" Score="0" ViewCount="" Body="&lt;p&gt;There are some systems that link in C directly.  Sure you can proxy your function calls and embed an interpreter, but I can do that with nearly any language.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-10-19T03:00:00.430" />
  <row Id="12884" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T03:08:51.530" Score="0" ViewCount="" Body="&lt;p&gt;It's a code smell for a novice developer. They have yet to master/internalize the boolean condition and must explicitly evaluate to the true or false condition.&lt;/p&gt;&#xA;" OwnerUserId="4898" LastActivityDate="2010-10-19T03:08:51.530" CommunityOwnedDate="2010-10-19T11:00:05.103" />
  <row Id="12885" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T03:10:30.567" Score="0" ViewCount="" Body="&lt;p&gt;In JavaScript, I prefer &lt;code&gt;if(bool)&lt;/code&gt; when I have sufficient documentation explaining what the method expects... but when &lt;em&gt;evaluation&lt;/em&gt; of true can mean the variable exists, equals the number 1 or the boolean true, it's tougher.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Strongly typing in JS also means less flexibility.  Tough call.  Strongly typed languages, lay down the hammer.  Otherwise, ask why he does it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, there's your answer: ask him why.  Then correct him.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-19T03:10:30.567" CommunityOwnedDate="2010-10-19T11:00:05.103" />
  <row Id="12886" PostTypeId="2" ParentId="12864" CreationDate="2010-10-19T03:11:09.957" Score="0" ViewCount="" Body="&lt;p&gt;My first question is always &quot;What is the business need/problem we are trying to solve?&quot;.  Too many times, I have been asked to build a solution that ends up not actually addressing the customers problem.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I can understand their needs and goals, I can make sure that what I am building will be useful to them. This also helps reduce misinterpretation of requirements and reduces the number of iterations needed to get something usable into production.&lt;/p&gt;&#xA;" OwnerUserId="832" LastActivityDate="2010-10-19T03:11:09.957" />
  <row Id="12887" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T03:11:47.333" Score="3" ViewCount="" Body="&lt;p&gt;How about&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (x == &quot;true&quot;)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;WHY IS THAT A STRING?!&lt;/p&gt;&#xA;" OwnerUserId="5140" LastActivityDate="2010-10-19T03:11:47.333" CommunityOwnedDate="2010-10-19T11:00:05.103" CommentCount="3" />
  <row Id="12888" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T03:16:10.857" Score="1" ViewCount="" Body="&lt;p&gt;Had to use this all the time in ActionScript 2 (admittedly now a dead language), because:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var something:Boolean = org.black.box.unknown.ThisMightNotExistYet();&#xA;&#xA;// this is slightly ambiguous&#xA;if(something)&#xA;{&#xA;}&#xA;&#xA;// because if you allow undefined you might actually mean&#xA;if(false != something)&#xA;{&#xA;}&#xA;&#xA;// which can mean something different than&#xA;if(true == something)&#xA;{&#xA;}&#xA;&#xA;// and comparing against what you actually MEAN is less script than&#xA;if(undefined != value &amp;amp;&amp;amp; value)&#xA;{&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So it was almost always best to be specific.&lt;/p&gt;&#xA;" OwnerUserId="5656" LastActivityDate="2010-10-19T03:16:10.857" CommunityOwnedDate="2010-10-19T11:00:05.103" />
  <row Id="12889" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T03:16:35.300" Score="2" ViewCount="" Body="&lt;p&gt;While I agree as a mainly C# developer, I can't say this is always the case.  For instance, in Javascript, the === will perform type coalescence.  So assuming &lt;em&gt;var x = 3&lt;/em&gt; then:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(x) --&amp;gt; true&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;while&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (x === true) --&amp;gt; false&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I guess that's different than == since even in JS I wouldn't use &lt;em&gt;if(x == true)&lt;/em&gt; but just something to think about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This sort of touches on another point though which has come up in my office:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;bool b = false;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In C#, &lt;em&gt;bool b;&lt;/em&gt; would be enough and would initalize &lt;em&gt;b&lt;/em&gt; to &lt;em&gt;false&lt;/em&gt;.  However, it is more explicit to write the above line and anyway should be ripped out by the compiler during optimization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I guess my point is it's not always so obvious what is and isn't good practice and a lot of it boils down to preference as well as language features/quirks.&lt;/p&gt;&#xA;" OwnerUserId="5654" LastActivityDate="2010-10-19T03:16:35.300" CommunityOwnedDate="2010-10-19T11:00:05.103" CommentCount="2" />
  <row Id="12890" PostTypeId="2" ParentId="12877" CreationDate="2010-10-19T03:17:44.767" Score="10" ViewCount="" Body="&lt;p&gt;Grid paper - works great for jotting notes and brainstorming UI.&lt;/p&gt;&#xA;" OwnerUserId="5645" LastActivityDate="2010-10-19T03:17:44.767" />
  <row Id="12891" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T03:18:35.983" Score="2" ViewCount="" Body="&lt;p&gt;Actually, if it's nullable, testing for x == true would be necessary. :)&lt;/p&gt;&#xA;" OwnerUserId="848" LastActivityDate="2010-10-19T03:18:35.983" CommunityOwnedDate="2010-10-19T11:00:05.103" />
  <row Id="12892" PostTypeId="2" ParentId="12877" CreationDate="2010-10-19T03:19:42.330" Score="4" ViewCount="" Body="&lt;p&gt;Heavy-duty stapler -- others are allowed to use it, but it &lt;em&gt;stays&lt;/em&gt; on the table behind me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/v2JDD.jpg&quot; alt=&quot;Stanley Bostitch Antimicrobial Heavy Duty Stapler with AntiJam Mechanism, 130 Sheet Capacity (B310HDS)&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-19T03:19:42.330" CommentCount="3" />
  <row Id="12893" PostTypeId="2" ParentId="12877" CreationDate="2010-10-19T03:21:18.240" Score="0" ViewCount="" Body="&lt;p&gt;highlighters! if my eyes get heavy i take a break and use them to draw stupidness on random pieces of paper&lt;/p&gt;&#xA;" OwnerUserId="5653" LastActivityDate="2010-10-19T03:21:18.240" />
  <row Id="12894" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T03:27:05.683" Score="0" ViewCount="" Body="&lt;p&gt;use it as an opportunity to teach him. he will respect you more if you do. wouldn't you want someone to do the same for you?&lt;/p&gt;&#xA;" OwnerUserId="5653" LastActivityDate="2010-10-19T03:27:05.683" CommunityOwnedDate="2010-10-19T11:00:05.103" CommentCount="1" />
  <row Id="12895" PostTypeId="2" ParentId="815" CreationDate="2010-10-19T03:29:10.047" Score="0" ViewCount="" Body="&lt;p&gt;Along with XP. And I think XP will be irrelevant in 3 years.&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-10-19T03:29:10.047" />
  <row Id="12896" PostTypeId="2" ParentId="815" CreationDate="2010-10-19T03:34:06.587" Score="0" ViewCount="" Body="&lt;p&gt;I think it is safe to say that if Google has stopped catering to the IE6 community then so should everyone. ...and that was over 9 months ago!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Internet_Explorer_6#Market_share&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Internet_Explorer_6#Market_share&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5653" LastActivityDate="2010-10-19T03:34:06.587" CommentCount="1" />
  <row Id="12897" PostTypeId="2" ParentId="815" CreationDate="2010-10-19T03:35:16.550" Score="0" ViewCount="" Body="&lt;p&gt;When websites take the difficult choice and start to drop support for it.. good work youtube&lt;/p&gt;&#xA;" OwnerUserId="5660" LastActivityDate="2010-10-19T03:35:16.550" />
  <row Id="12898" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T03:43:44.670" Score="0" ViewCount="" Body="&lt;p&gt;Research shows that code with many redundancies correlates strongly with errors. Here's an &lt;a href=&quot;http://www.stanford.edu/~engler/p401-xie.pdf&quot; rel=&quot;nofollow&quot;&gt;interesting paper&lt;/a&gt; on the matter (PDF alert).&lt;/p&gt;&#xA;" OwnerUserId="5663" LastActivityDate="2010-10-19T03:43:44.670" CommunityOwnedDate="2010-10-19T11:00:05.103" />
  <row Id="12899" PostTypeId="2" ParentId="12683" CreationDate="2010-10-19T03:50:02.797" Score="8" ViewCount="" Body="&lt;p&gt;I use comments as a kind of very high-level pseudo code, in that I write the comments before I write the code. I find that thinking through the entire problem, even at a high level, improves my code considerably.&lt;/p&gt;&#xA;" OwnerUserId="5665" LastActivityDate="2010-10-19T03:50:02.797" CommentCount="2" />
  <row Id="12900" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T03:51:35.507" Score="11" ViewCount="" Body="&lt;p&gt;Ack. I'm that guy.  The shame, the shame.  It's how I learned, and it's how I &quot;auto-format&quot; in my head.  The only time I use Joel's prefered syntax is when the bool variable has a verb prefix like &quot;is.&quot;  I need the verb, be it &quot;is,&quot; &quot;can,&quot; &quot;did,&quot; or else I need the == to provide the verb &quot;equals.&quot;  I might never break that habit, so I'll understand if you don't say 'hello' to me on the street.&lt;/p&gt;&#xA;" OwnerUserId="730" LastActivityDate="2010-10-19T03:51:35.507" CommunityOwnedDate="2010-10-19T11:00:05.103" CommentCount="1" />
  <row Id="12901" PostTypeId="2" ParentId="10387" CreationDate="2010-10-19T03:53:28.973" Score="2" ViewCount="" Body="&lt;p&gt;I much prefer the first model. So many sites want to extract $x/month and some of these sites make it very difficult to unsubscribe from. Even if the first model was &lt;em&gt;more&lt;/em&gt; expensive, I'd prefer it as I would only be paying &lt;em&gt;if&lt;/em&gt; I had a project, in which case, justifying the cost is very easy.&lt;/p&gt;&#xA;" OwnerUserId="5665" LastActivityDate="2010-10-19T03:53:28.973" CommentCount="1" />
  <row Id="12903" PostTypeId="2" ParentId="12683" CreationDate="2010-10-19T03:59:58.967" Score="1" ViewCount="" Body="&lt;p&gt;Pseudocode can be useful if you're unfamiliar with the language, or if you need to change mental contexts. On the rare occasion that I write pseudocode, it's on paper. Sometimes just taking your hands off the keyboard and scribbling on paper can help get around a mental block.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But as a formalised part of the development process? No way. It's a sporadically helpful tool for individuals. There are better ways to &quot;know what you're writing before you write it&quot;, like:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;defining the contract (pre/post/invariant conditions) of the method before you start&lt;/li&gt;&#xA;&lt;li&gt;TDD&lt;/li&gt;&#xA;&lt;li&gt;1 and 2 combined (writing tests to execute the contract)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I'd also suggest that getting any sort of approval before you start writing code is likely to cause much more hassle than it's worth. Design reviews (pre-implementation) can be useful, but they need to be at a higher level than individual algorithms.&lt;/p&gt;&#xA;" OwnerUserId="5668" LastEditorUserId="5668" LastEditorDisplayName="" LastEditDate="2010-10-19T22:00:41.257" LastActivityDate="2010-10-19T22:00:41.257" CommentCount="1" />
  <row Id="12904" PostTypeId="2" ParentId="815" CreationDate="2010-10-19T04:04:16.547" Score="0" ViewCount="" Body="&lt;p&gt;I stopped caring about IE6 a while ago.  Microsoft does't support IE6, Google Does't support IE6.  Ocasionally I'll hop into IE6 to check that they layout doesn't explode but I don't care much past that.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I beleive XP had an update long, long ago that updated IE6 to IE7. So even Microsoft tried to kill off IE6.  The only way IE6 is going to go away is if you stop carring about it unless you absolutly have to.&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-10-19T04:04:16.547" />
  <row Id="12905" PostTypeId="2" ParentId="12861" CreationDate="2010-10-19T04:10:26.713" Score="4" ViewCount="" Body="&lt;p&gt;Well I understood your question as &quot;Why continue to write things in C/C++ when better alternatives are present.&quot;  Not let's rewrite everything just because we have a better hammer.  And I agree with you in theory.  Why write new things in C or ASM anymore because it turns out there are vastly more problems that work better for &quot;high-level&quot; languages than not.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think about a story that James Gosling recalled about the Java team.  They were looking at huge sections of code in the VM that was originally written in C because they thought it was faster.  As time went on and they had to improve it, maintain it, and add new features.  The team began to wonder why not move it to Java.  They did and it turned out to be just as performant, simpler, and easier to modify.  I do think new development should not be done in C/C++, except for those exceptions noted, but what makes our industry continue to grow is the platform change.  We haven't really answered any new questions about computer science since the 70s, but we continue to grow in amazing directions.  That's largely because every 10 years or so we create new platforms where we have to re-implement everything over there opening up opportunities to transition from previous languages to new ones.  That's the secret to our industries success.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a simple wrap up from 1980-2010:  Unix C-&gt;Windows C++-&gt;Web Java/Javascript/Python/Ruby-&gt;mobile Objective C/Java).&lt;/p&gt;&#xA;" OwnerUserId="5592" LastActivityDate="2010-10-19T04:10:26.713" />
  <row Id="12906" PostTypeId="2" ParentId="12877" CreationDate="2010-10-19T04:12:43.380" Score="1" ViewCount="" Body="&lt;p&gt;None. A printer/copier is handy, as are post-it notes and pens. But I could easily do without with no real impact.&lt;/p&gt;&#xA;" OwnerUserId="5668" LastEditorUserId="5668" LastEditorDisplayName="" LastEditDate="2010-10-19T05:02:02.227" LastActivityDate="2010-10-19T05:02:02.227" />
  <row Id="12907" PostTypeId="2" ParentId="4863" CreationDate="2010-10-19T04:15:02.843" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://ats-lang.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;ATS&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ATS is a programming language with a highly expressive type system rooted in the framework Applied Type System. In particular, both dependent types and linear types are available in ATS.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Functional programming&lt;/li&gt;&#xA;&lt;li&gt;Imperative programming&lt;/li&gt;&#xA;&lt;li&gt;Concurrent programming&lt;/li&gt;&#xA;&lt;li&gt;Modular programming&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;ATS allows the programmer to write efficient functional programs by taking advantage of native unboxed data representation.&#xA;ATS allows the programmer to reduce the memory footprint of a program by making use of linear types.&#xA;ATS allows the programmer to enhance the safety (and efficiency) of a program by making use of theorem proving.&#xA;ATS allows the programmer to write safe low-level code that runs in OS kernels.&#xA;ATS can help teach type theory, allowing students to see first-handedly how advanced types such as dependent types and linear types can be effectively employed in practical programming.&lt;/p&gt;&#xA;" OwnerUserId="2325" LastActivityDate="2010-10-19T04:15:02.843" CommunityOwnedDate="2010-10-22T23:54:06.263" />
  <row Id="12908" PostTypeId="2" ParentId="12773" CreationDate="2010-10-19T04:31:04.900" Score="2" ViewCount="" Body="&lt;p&gt;Definitely one to keep a copy of around. I've had the GoF book since I first started in software and find it's once one of those books that I get more out of every time I re-read it (and no, I don't read the whole thing cover-to-cover - just the odd pattern here and there). It is, however, one of those books that I felt as a &quot;beginner&quot;, I never got as much out of it as i did later in my career. I found that having more experience makes the book a much more interesting and, of course, more relevant.&lt;/p&gt;&#xA;" OwnerUserId="5677" LastActivityDate="2010-10-19T04:31:04.900" CommentCount="1" />
  <row Id="12909" PostTypeId="2" ParentId="12524" CreationDate="2010-10-19T04:41:48.000" Score="0" ViewCount="" Body="&lt;p&gt;Maybe file this under &quot;lateral thinking&quot;, but if you have decent skills in &quot;pure&quot; web technologies - HTML, JavaScript, CSS - and depending on what you're trying to achieve, check out something like PhoneGap (http://www.phonegap.com/about). In addition to support of iOS devices (iPhone, iPad) and Android, they also have some support for Symbian. You will, however, generally need the &quot;native&quot; tools in order to build your native binary apps. For example, if you want to do iPhone dev, you'll need the iPhone sdk, XCode and be running OSX.&lt;/p&gt;&#xA;" OwnerUserId="5677" LastActivityDate="2010-10-19T04:41:48.000" />
  <row Id="12910" PostTypeId="2" ParentId="12762" CreationDate="2010-10-19T04:45:46.970" Score="1" ViewCount="" Body="&lt;p&gt;A simple for loop&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for(a)&#xA;{&#xA;    //things to do&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And the loop will run for a time assuming a is a positive integer. There can be positive integer constants like 100 also.&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-10-19T04:45:46.970" CommentCount="1" />
  <row Id="12911" PostTypeId="2" ParentId="279" CreationDate="2010-10-19T04:46:28.740" Score="4" ViewCount="" Body="&lt;p&gt;A simple one: I'd like  &lt;code&gt;foreach&lt;/code&gt; to be able to take a null collection object without barfing.&lt;/p&gt;&#xA;" OwnerUserId="5668" LastActivityDate="2010-10-19T04:46:28.740" CommunityOwnedDate="2011-05-10T09:21:11.253" CommentCount="3" />
  <row Id="12912" PostTypeId="2" ParentId="9465" CreationDate="2010-10-19T04:48:19.073" Score="2" ViewCount="" Body="&lt;p&gt;If you're going to want/need automation around build and deployment - particularly deployment, have a look at the powershell extensions for Azure -  &lt;a href=&quot;http://code.msdn.microsoft.com/azurecmdlets&quot; rel=&quot;nofollow&quot;&gt;http://code.msdn.microsoft.com/azurecmdlets&lt;/a&gt;. Waaay nicer than having to use the web UI for deployments and pretty slick once you get all the kinks worked out.&lt;/p&gt;&#xA;" OwnerUserId="5677" LastActivityDate="2010-10-19T04:48:19.073" />
  <row Id="12913" PostTypeId="2" ParentId="12864" CreationDate="2010-10-19T04:50:05.517" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;What am I wanting exactly?  What does a solution look like,e.g. is it a new program, fixing a bug in an existing application, replacing a system, or something else?  This is probably similar in lots of ways to Mason Wheeler's answer.  Note that this is just what is the finished product, not necessarily what parameters are on it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;What parameters does this problem have?  For example, am I trying to solve this within the hour, day, week, month, year, etc.?  How big of a solution am I trying to create,e.g. replacing a content management system for a web site may be quite different in scale than creating a form to track earned time off on the company intranet?  What is the priority of getting this done?  Am I expected to work at this 24/7 to solve it or is it just when I am in the office and it isn't something that has to get solved soon or the company is dead?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Who is coming with me to implement this solution? This is where after I know what I'm trying to get and nailing down some details on how, why, when and where it'll be, next on my list of things to do is see if this is something that I can do alone, do I pass this request along to some other department as if the fix is a change to a firewall this may not be something I can do on my own, or could I pull in others to help on this?  Sometimes a problem may come up that has an &quot;all hands on deck&quot; feel where multiple developers are trying to find solutions, not unlike how the various doctors on &lt;em&gt;House&lt;/em&gt; try to propose various differential ideas.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Those are aspects to my starting point with a given problem.  Sometimes nailing down the problem can be a struggle, as there may be a case where a developer and a tester have different interpretations of requirements and someone has to be the judge and decide who is right and who is wrong.  Sometimes both can be wrong if the person who created the requirement didn't get enough detail and various cases were left open to interpretation.  After that, there may be various solutions that I'm passing along these different plans for someone else to decide which is the one to follow:  A quick band aid solution that isn't likely to last long but may work in the very short term, a moderate solution that may take some more time but better better in the intermediate future, or the industrial strength solution that may be overkill but definitely solves the problem permanently.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-19T04:50:05.517" />
  <row Id="12914" PostTypeId="2" ParentId="12877" CreationDate="2010-10-19T04:58:10.363" Score="6" ViewCount="" Body="&lt;p&gt;Notebook.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haven't found a software that can easily create/modify/keep the block diagrams or some waveforms.&lt;/p&gt;&#xA;" OwnerUserId="4873" LastActivityDate="2010-10-19T04:58:10.363" />
  <row Id="12915" PostTypeId="1" CreationDate="2010-10-19T05:53:21.043" Score="4" ViewCount="83" Body="&lt;p&gt;Hi everybody,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am working as a PhD student developing scientific/engineering simulations and algorithms to be tested in these simulations. These days the first student started to work on my project (for his Bachelor thesis) and I am wondering: how should I organize the project now? I think I have some good C++ knowledge (although I still want to improve everyday!) and the code contains some design patterns, lots of templated classes etc. These techniques are new to the student and I wonder if it's a good idea to have him work directly in the trunk of the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have any experiences what happens if programming newbies and more experienced programmers are mixed? Does the code get messed up or do the newbies learn more by this? Is it wise to have a branch for the student to test his algorithms and maybe merge them into the trunk later? Should I first give him a book like The Pragmatic Programmer for reading (better suggestions?)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for every answer!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PLEASE NOTE: I asked this question &lt;a href=&quot;http://stackoverflow.com/q/3957091/292233&quot;&gt;on Stackoverflow&lt;/a&gt;. The answer was about code reviews and I think this is a good way, but I was also advised that this site might be the more correct one, so I wanted to see if there are more things that might help or other opinions?&lt;/p&gt;&#xA;" OwnerUserId="5688" LastActivityDate="2010-10-20T02:44:26.490" Title="Project organization with professionals and students" Tags="&lt;project-management&gt;&lt;students&gt;&lt;code-reviews&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="12916" PostTypeId="2" ParentId="12864" CreationDate="2010-10-19T05:54:17.157" Score="0" ViewCount="" Body="&lt;p&gt;I decompose the problem into smaller and smaller parts until I have something resembling a solution to the problem.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Define the different assemblies (if necessary) e.g. UI/BLL/DAL/Tests. &lt;/li&gt;&#xA;&lt;li&gt;Then the 'major players' (classes) that will go in them e.g Playing Card, Game Board&lt;/li&gt;&#xA;&lt;li&gt;Define the nouns (properties) and verbs (methods) for the major players. I use canned values as returns for almost everything.&lt;/li&gt;&#xA;&lt;li&gt;Define the major use cases for the system (what will the user do). I usually wire up a simple UI to drive the underlying classes&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;After that, I start gluing the pieces together and replacing the canned values with actual functionality, refactoring as necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I write each piece of functionality I write unit and integration tests in tandem for it (I'm not totally sold on the TDD 'test first' part yet - I don't know what the interface is going to look like until I write it and if I test first I end up doing too much refactoring of test code).&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-19T05:54:17.157" />
  <row Id="12917" PostTypeId="2" ParentId="5269" CreationDate="2010-10-19T06:06:53.267" Score="3" ViewCount="" Body="&lt;p&gt;Two main things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Functional programming paradigm -&gt; expand your way of thinking.&lt;/li&gt;&#xA;&lt;li&gt;Useful in the real world, real projects, out of the box.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Many languages offer one of the two above. Clojure offers both. Additionally it's:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Simple, beautiful.&lt;/li&gt;&#xA;&lt;li&gt;Concurrency support superior.&lt;/li&gt;&#xA;&lt;li&gt;Interoperable with existing languages (Java) &amp;amp; libraries.&lt;/li&gt;&#xA;&lt;li&gt;Multi-paradigm.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-19T06:06:53.267" />
  <row Id="12918" PostTypeId="2" ParentId="12877" CreationDate="2010-10-19T06:13:04.117" Score="2" ViewCount="" Body="&lt;p&gt;I'm not sure if it counts as an office supply, but the only thing that I use regularly that isn't directly computer-related is &lt;strong&gt;coffee&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-10-19T06:13:04.117" />
  <row Id="12919" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T06:36:45.777" Score="4" ViewCount="" Body="&lt;p&gt;you should tell him that he is doing it wrong. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;its &lt;/p&gt;&#xA;&#xA;&lt;p&gt;if (true == someBool) {&lt;/p&gt;&#xA;&#xA;&lt;p&gt;}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if he ever forget one = he is in big trouble in his writing style.&lt;/p&gt;&#xA;" OwnerUserId="5260" LastActivityDate="2010-10-19T06:36:45.777" CommunityOwnedDate="2010-10-19T11:00:05.103" />
  <row Id="12920" PostTypeId="2" ParentId="5269" CreationDate="2010-10-19T06:44:10.777" Score="3" ViewCount="" Body="&lt;p&gt;The major reason for going Lisp instead of staying with Java is the ability to generate and compile code on the fly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember that Lisp deals with XML-like tree structures as the internal data format. This includes the Lisp programs itself, so it is trivially simple to generate new, and manipulate existing programs inside a running program.  This as opposed to either run javac or manipulate bytecodes inside Java which is somewhat above the &quot;trivially simple&quot; level.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-19T06:44:10.777" />
  <row Id="12921" PostTypeId="2" ParentId="12864" CreationDate="2010-10-19T06:45:30.500" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;My first instinctive response is to  enter &lt;strong&gt;solutions mode&lt;/strong&gt;. My brain starts looking for solutions, small and large immediately. This happens faster than it takes to read the problem statement.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;But pretty soon, I catch myself going down that (bad) path, and consciously force myself into &lt;strong&gt;pro mode&lt;/strong&gt; and I take a step back.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Once in &lt;strong&gt;pro mode&lt;/strong&gt;, I write a test.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-10-19T06:45:30.500" />
  <row Id="12922" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T06:45:59.853" Score="0" ViewCount="" Body="&lt;p&gt;Yes,&#xA;This is a kind of programmers mind set. All the time they considers &quot;if condition&quot; has no existence with out an expression with symbols =,&amp;lt;,&gt;... I've seen situations  people really get struggle as like &quot;function return&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;if(RowsAffected &gt; 0)&#xA;{&#xA;    return true;&#xA;}&#xA;else&#xA;{&#xA;    return false;&#xA;}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers need to watch their code from the real time angle.. :)&lt;/p&gt;&#xA;" LastActivityDate="2010-10-19T06:45:59.853" CommunityOwnedDate="2010-10-19T11:00:05.103" CommentCount="1" />
  <row Id="12923" PostTypeId="2" ParentId="12683" CreationDate="2010-10-19T06:51:47.330" Score="0" ViewCount="" Body="&lt;p&gt;Great work.  You started a good discussion. As of me, I used to write pseudo codes when I was learning programming to understand the various loops and algorithms. This was more then one and half decades ago. That days, even programming languages were not much powerful... and event driven programming was future. Now with 4GLs and 5GLs, we think in the language itself rather then in plain English. When we think of a problem, we think in terms of objects and operations. And until it is a complex algo, writing pseudo codes (or P-S-E-U-DO-Codes, just kidding) does not make any sense. Better, represent the solution in  a graphic way.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-19T06:51:47.330" />
  <row Id="12924" PostTypeId="2" ParentId="12877" CreationDate="2010-10-19T07:11:19.287" Score="15" ViewCount="" Body="&lt;p&gt;I'm going to add the standard 'whiteboard' response; because it comes in so handy when collaborating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We've managed to gain one so large the salesmen can't steal it, through sheer weight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I also love the smell of the markers and the sound of large diagrams &quot;squee-ee!&quot;)&lt;/p&gt;&#xA;" OwnerUserId="3526" LastActivityDate="2010-10-19T07:11:19.287" CommentCount="5" />
  <row Id="12925" PostTypeId="1" AcceptedAnswerId="12974" CreationDate="2010-10-19T07:13:11.310" Score="9" ViewCount="194" Body="&lt;p&gt;An advice I often get is to join some technical society like ACM or IEEE and follow their journals to keep knowledge up to date. However, I don't know which one is the best. What group do you recommend? What journal do you think is good for software developers?&lt;/p&gt;&#xA;" OwnerUserId="5697" LastActivityDate="2010-10-19T16:05:51.440" Title="What professional group or technical society do you join? What journals do you follow?" Tags="&lt;learning&gt;&lt;career&gt;&lt;software-engineering&gt;" AnswerCount="5" FavoriteCount="3" />
  <row Id="12926" PostTypeId="2" ParentId="12653" CreationDate="2010-10-19T07:17:44.260" Score="0" ViewCount="" Body="&lt;p&gt;I would say it depends on the industry you are working in. In my programming past...never, but just recently I switched into the financial software side (this is the high frequency trading, low latency trading you hear about) and here you bump into this stuff regularly trying to optimize code to go faster, handle more load search quicker calculate new risk /position parameters etc. &#xA;I would say the same if you work/code in some scientific field. But yes, most people out there never get to use this during their everyday work.&lt;/p&gt;&#xA;" OwnerUserId="5696" LastActivityDate="2010-10-19T07:17:44.260" />
  <row Id="12927" PostTypeId="2" ParentId="12683" CreationDate="2010-10-19T07:34:00.563" Score="0" ViewCount="" Body="&lt;p&gt;Depends on the language used, and your familiarity with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many modern languages such as Python or Java are already so close to pseudocode that writing some ad hoc pseudocode first is wasteful, IMHO. Better just do it right away using the &lt;a href=&quot;http://www.artima.com/intv/tracer.html&quot; rel=&quot;nofollow&quot;&gt;tracer bullet&lt;/a&gt; approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a different deal if you're making some low-level, close to metal things, or aren't yet comfortable with the language you're using. Then pseudocode can definitely be useful.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-19T07:34:00.563" />
  <row Id="12928" PostTypeId="2" ParentId="696" CreationDate="2010-10-19T07:53:55.647" Score="1" ViewCount="" Body="&lt;p&gt;A bunch of things I hate about php:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;$this-&amp;gt;foo //  Scoping is utterly broken and $this must be used all the time&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;{$i = &quot;scoping&quot;; } echo $i; // prints 'scoping' !&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&quot;someString&quot;.substr(10); // substr(&quot;someString&quot;, 0, 10);&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;try { } finally { }; // Finally not supported&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;if (!$foo)&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;if ($foo == false)&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;if ($foo === false)&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;if (!isset($foo) || $foo === false) // ... and so on ...&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;$element2 = functionThatReturnsAnArray()[2];  // Chaining does not work&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;self::$static vs $this-&amp;gt;instance // inconsistent syntax&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;(&quot;false&quot; == 0) // returns true!&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;include(&quot;somefile.php&quot;) // Instead of packages&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;sort(), asort(), , natsort(), natcasesort(), arsort(), rsort(), usort(), array_multisort(), ksort() and uksort() // Nuff said.&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;syslog() // Is not thread safe&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The good:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It has lots of functions, some of which works as documented.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-10-19T10:55:04.293" LastActivityDate="2010-10-19T10:55:04.293" CommentCount="5" />
  <row Id="12929" PostTypeId="1" AcceptedAnswerId="12935" CreationDate="2010-10-19T07:59:44.110" Score="1" ViewCount="177" Body="&lt;p&gt;Hi, I have been going through Flask and it seems that now I have a decent understanding to go ahead and build a web application. However I want to know how would I approach the problem. For eg: I decide to build a blogging application. The first thing I do is write down all the things that come to my mind, from user registrations to posting data on the blog to publishing it on the site&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But after that I just get into coding. I know that is not the right approach. I have heard of UML diagrams, workflow diagrams and stuff. It would be great if someone could just outline the steps they would follow for building a large application and then I could go ahead and learn more about them.For eg,it could be something like the below:-&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Collect requirements&lt;/li&gt;&#xA;&lt;li&gt;Draw UML diagrams&lt;/li&gt;&#xA;&lt;li&gt;Draw workflow diagrams&lt;/li&gt;&#xA;&lt;li&gt;Start coding&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Please suggest an exhaustive list so that I can make my approach much more systematic. Thanks&lt;/p&gt;&#xA;" OwnerUserId="5701" LastActivityDate="2010-10-19T09:18:37.793" Title="How to approach web app development?" Tags="&lt;web-development&gt;&lt;python&gt;" AnswerCount="1" FavoriteCount="3" />
  <row Id="12930" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T08:03:49.117" Score="2" ViewCount="" Body="&lt;p&gt;I write code like that!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is why:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;if bla == true&quot; reads like a sentence, where as &quot;if bla&quot; does not in many cases. It just sounds wrong, when READING actual code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also the compiler warns about assignments in if blocks, so there is really no danger in using == true. (confusing it with =)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also do guys that don't write &quot;== true&quot;, use that &quot;!()&quot; for &quot;== false&quot;? I find it really ugly. And if you use &quot;== false&quot;, it is only very consistent to also use &quot;== true&quot;, instead of having two distinct ways of verifying truth.&lt;/p&gt;&#xA;" OwnerUserId="5703" LastActivityDate="2010-10-19T08:03:49.117" CommunityOwnedDate="2010-10-19T11:00:05.103" CommentCount="2" />
  <row Id="12931" PostTypeId="2" ParentId="12189" CreationDate="2010-10-19T08:05:55.037" Score="1" ViewCount="" Body="&lt;p&gt;If Web development in python is what you are looking for, then after a thorough understanding of python , I suggest that you have a look at Flask. Django and other full stack frameworks would definitely make your life much much easier but overall would leave you with an incomplete feeling as if you have not learnt much. Flask IMHO , is the most awesome framework in python as of now, but yes that is just my opinion.&lt;/p&gt;&#xA;" OwnerUserId="5701" LastActivityDate="2010-10-19T08:05:55.037" />
  <row Id="12932" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T08:18:35.400" Score="7" ViewCount="" Body="&lt;p&gt;Personally, I strongly dislike the way to say &quot;not&quot; in C based languages.  That little exclamation mark is too easy to overlook.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hence I write it out in full:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (someCondition == false) {&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;After reading that for a while, I want symmetry too with&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (someCondition == true) {&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So consider it an artifact of C using &lt;code&gt;!&lt;/code&gt; instead of &lt;code&gt;not&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-19T08:18:35.400" CommunityOwnedDate="2010-10-19T11:00:05.103" CommentCount="2" />
  <row Id="12933" PostTypeId="1" AcceptedAnswerId="12940" CreationDate="2010-10-19T08:22:34.970" Score="5" ViewCount="372" Body="&lt;p&gt;I was wondering what is the best work rhythm for the job a programmer does? I am coding all day long and sometimes I get stuck in a problem and it keeps me occupied a few hours before I realize that maybe I need a break.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some say frequent and short brakes help you but sometimes when I am focused on a problem I feel like a break would not help, but rather loose my focus. So how often should a break be taken, and how long? The more basic question regarding this issue is comes from the fact that, you can get tons of &quot;good ideas&quot; ('promodo' for instance) on the net, that promise you will be more effective in whatever you do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are these principles good or, this is something everybody should decide for himself?&#xA;I wonder if any of them can accomplish what it promises! I mean what they promise is that (if the conditions are met) it works for &lt;strong&gt;everybody&lt;/strong&gt;. Are there really such principles? And if there are, what are these and how can we find them?&lt;/p&gt;&#xA;" OwnerUserId="5705" LastEditorUserId="18464" LastEditorDisplayName="" LastEditDate="2011-02-25T19:31:13.467" LastActivityDate="2011-02-25T19:31:13.467" Title="What is the most effective work rhythm for a programmer?" Tags="&lt;productivity&gt;&lt;self-improvement&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="12934" PostTypeId="2" ParentId="12877" CreationDate="2010-10-19T08:26:19.670" Score="6" ViewCount="" Body="&lt;p&gt;Trash bin.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And everything Anna Lear has.&lt;/p&gt;&#xA;" OwnerUserId="1045" LastActivityDate="2010-10-19T08:26:19.670" />
  <row Id="12935" PostTypeId="2" ParentId="12929" CreationDate="2010-10-19T08:28:08.807" Score="4" ViewCount="" Body="&lt;p&gt;Drop the diagrams for now, and only use them if/when you feel the need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look into value-driven development as the overall approach and &lt;a href=&quot;http://en.wikipedia.org/wiki/Test-driven_development&quot; rel=&quot;nofollow&quot;&gt;TDD&lt;/a&gt; for the specifics. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Begin by creating a bunch of stories. For instance, if creating a blog web site, the first step would probably be &quot;user should be able to write a simple blog entry&quot; followed by &quot;user should be able to display his blog entry&quot; etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next, pick the most valuable story using this question as guideline: &lt;em&gt;if you had to release today, what would be the &lt;strong&gt;single most valuable&lt;/strong&gt; functionality?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, break the selected story into small technical tasks such as &quot;Create a html form&quot;, &quot;Write back-end for submits&quot; etc which can be completed in a few hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Pick the next task&lt;/li&gt;&#xA;&lt;li&gt;Write a unit test for it&lt;/li&gt;&#xA;&lt;li&gt;Make the test pass&lt;/li&gt;&#xA;&lt;li&gt;Refactor code &lt;/li&gt;&#xA;&lt;li&gt;Not satisfied? goto 2&lt;/li&gt;&#xA;&lt;li&gt;Release it and/or goto 1&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Make sure to &lt;strong&gt;use small incremental steps&lt;/strong&gt; and keep your system working after each iteration so you don't get stuck in &lt;a href=&quot;http://www.chrisg.com/defeating-procrastination-analysis-paralysis/&quot; rel=&quot;nofollow&quot;&gt;analysis paralysis&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is just scratching the surface of course, but it should get you going I think.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-10-19T09:18:37.793" LastActivityDate="2010-10-19T09:18:37.793" CommentCount="3" />
  <row Id="12936" PostTypeId="2" ParentId="12877" CreationDate="2010-10-19T08:41:18.267" Score="2" ViewCount="" Body="&lt;p&gt;A flipboard, it's like a whiteboard with history. Must have when working with a team.&lt;/p&gt;&#xA;" OwnerUserId="5363" LastActivityDate="2010-10-19T08:41:18.267" />
  <row Id="12937" PostTypeId="2" ParentId="12933" CreationDate="2010-10-19T08:47:42.757" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;...works for everybody. Are there really such principles?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;No.&lt;/strong&gt; It can be proved with a single counter-example. In the end you have to find out what works for &lt;em&gt;you&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, regularity and rhythm are usually good in the long run, and there are ideas that tend to work for many, if not most, people. They're a good starting point to start fine-tuning what works for you. For example, there's &lt;a href=&quot;http://www.pomodorotechnique.com/&quot; rel=&quot;nofollow&quot;&gt;Pomodoro Technique&lt;/a&gt; that essentially creates a rhythm with 25-minute sprints plus 5 minute pauses. For me it works fine when I need to do something not-so-engaging, but once I'm in the flow, I'm definitely not going to pause at an arbitrary time because some technique suggests I should.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-19T10:26:42.897" LastActivityDate="2010-10-19T10:26:42.897" />
  <row Id="12938" PostTypeId="2" ParentId="12864" CreationDate="2010-10-19T08:54:49.963" Score="0" ViewCount="" Body="&lt;p&gt;All of the projects you list are non-trivial if you want to do them properly - i.e. a finished, polished, tested product. Therefore my initial steps are:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1. Requirements/Specifications&lt;/strong&gt;. Write down what it should do and what it should not do. Prioritize the to-do items - essential (can't function without it), nice-to-have and 'if there's time to kill'. Order the items in priority order. Agree with whoever is paying for the project that this is the correct order. Stay on step 1 until you have agreement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2. Design&lt;/strong&gt;. Draw out the UI - what will the features look like to the user. This doesn't have to be pretty - pencil and paper will do - but it will help you work through the user workflow and out of this will come the High Level Design, the major components/modules of the application. This doesn't have to be a 'big up-front design' effort, but a poor UI or workflow will kill any chance of success. Work with the project sponsor (whoever is paying) until they're happy with the UX.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3. Iterative Development&lt;/strong&gt;. Implement just enough code to achieve the next requirement on the prioritized list, complying with the design and workflow. Check in this code. Demonstrate to project sponsor. Goto 3.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-19T08:54:49.963" CommentCount="2" />
  <row Id="12939" PostTypeId="2" ParentId="5269" CreationDate="2010-10-19T09:06:19.453" Score="2" ViewCount="" Body="&lt;p&gt;It will make you a &lt;em&gt;better&lt;/em&gt; programmer&lt;/p&gt;&#xA;" OwnerUserId="5709" LastActivityDate="2010-10-19T09:06:19.453" />
  <row Id="12940" PostTypeId="2" ParentId="12933" CreationDate="2010-10-19T09:09:31.083" Score="21" ViewCount="" Body="&lt;p&gt;The most important thing for good programming is good sleep. It does not matter what time you program at or for how long. Whether you drink caffeine loaded drink or munch on chocolate all the time. What matters is that you have a good long peaceful sleep every few days. As someone with a young child I can tell you for a fact that lack of deep rest saps your ability to be creative. There have been studies that have shown that artist that are the most creative require the most sleep and workers in non demanding repetitive jobs the least.&lt;/p&gt;&#xA;" OwnerUserId="4753" LastActivityDate="2010-10-19T09:09:31.083" CommentCount="6" />
  <row Id="12941" PostTypeId="2" ParentId="12864" CreationDate="2010-10-19T09:09:51.737" Score="0" ViewCount="" Body="&lt;p&gt;I always try to start development with 3 questions in mind:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do I understand the the &lt;strong&gt;real business need&lt;/strong&gt;?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Quite often, the &quot;presenting problem&quot; is not the real problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I was recenly asked to produce a complex project management framwork when all the user needed was a static list of tasks with a progress text box next to each one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Questions like &quot;what will the users actually use it for?&quot; are useful in getting to the real problem.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Is this &lt;em&gt;really&lt;/em&gt; a programming problem&quot;&lt;/strong&gt;?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Does the required functionality already exist in an application that we already have? That we can buy? Could we use pen and paper instead?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, the &quot;build an simple word processor with about as much functionality as MS Word Pad&quot; should be answered with &quot;have you considered using WordPad&quot; rather than a programming project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was once asked to build a database that would store information on industrial processes, with a series of management reports that would enumerate the processes that fell into certain categories. It turned out that a maximum of 33 records would be created in the database, and that it would be used by 3 people who sat adjacent one another. The perfect solution was a physical file containing 33 sheets of A4 paper. The users could have physically counted the pages to produce their management reports. (Curiously, management decided to buy in a system instead! At least I was free to go and do some value work).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do I understand the customer's &lt;strong&gt;real priorities&lt;/strong&gt;?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In any application, some features are more important than others. It is important to get clear idea of what really matters to your users. Sometimes, the things that are important to us as developers (eg. that complicated bit) are less important to our custiomers (eg. the look and feel of the application).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A fellow developer recently told me about a demo of web app that he did to verify that the app met their needs. He was frustrated becasuse the users were unable to see past the design of the pages. For these users, appearence was more initially important than functionality, so needed to be prioritised by the dev team.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-10-19T09:09:51.737" />
  <row Id="12942" PostTypeId="1" CreationDate="2010-10-19T09:09:59.567" Score="0" ViewCount="63" Body="&lt;p&gt;I have plenty of bots accessing the site trying to find holes and stuff like that, so my idea was to block all non .se visitors (i dont mind google getting blocked either), that part works like a charm, but the response is 200, but i would like to give them 404 instead, any ideas?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have this in my apache.conf&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;IfModule mod_security2.c&amp;gt;&#xA;    SecRuleEngine On&#xA;&#xA;    SecAuditEngine RelevantOnly&#xA;    SecAuditLog /var/log/apache2/audit_log&#xA;&#xA;    SecDebugLog /var/log/apache2/modsec_debug_log&#xA;    SecDebugLogLevel 0&#xA;&#xA;    SecRequestBodyAccess On&#xA;    SecResponseBodyAccess Off&#xA;&#xA;    SecDefaultAction &quot;phase:2,deny,log,status:500&quot;&#xA;&#xA;    SecGeoLookupDb /usr/local/share/GeoIP/GeoIP.dat&#xA;    SecRule REMOTE_ADDR &quot;@geoLookup&quot; &quot;chain,drop,msg:'Non-SE IP address'&quot;&#xA;    SecRule GEO:COUNTRY_CODE &quot;!@streq SE&quot; &quot;t:none&quot;&#xA;&#xA;&amp;lt;/IfModule&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" LastActivityDate="2010-10-19T09:09:59.567" ClosedDate="2010-10-19T11:12:56.123" Title="mod_security + apache + geoip block != 404" Tags="&lt;modules&gt;" CommentCount="2" />
  <row Id="12943" PostTypeId="2" ParentId="12864" CreationDate="2010-10-19T09:31:09.003" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;1. Does the program already exist?&lt;/strong&gt; If the program already exists in the market, can I do significantly better? Is anybody interested in a better version?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2. Would developing that program be interesting to me?&lt;/strong&gt; Would it be a growthful experience? With experience, developers generally have more opportunities to do programming than they have available time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3. What ressources do I have?&lt;/strong&gt; Not enough? Negotiate. Now is the right time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, when I have a opportunity of developing a program, or solving a problem, my first thoughts always revolve around the question: Do I want to be involved?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Managers often think that they can get an engineer to solve anything. It is important to take care of oneself to avoid getting into a mess.&lt;/p&gt;&#xA;" OwnerUserId="5708" LastActivityDate="2010-10-19T09:31:09.003" CommentCount="1" />
  <row Id="12944" PostTypeId="2" ParentId="9272" CreationDate="2010-10-19T10:24:48.233" Score="0" ViewCount="" Body="&lt;p&gt;Don't write fancy code in production software. I know it feels good to be able to actually write that, and it's shorter. Writing fancy code significantly increases the &quot;WTF/minute&quot; value, in other words decreases quality. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/PKpTW.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="3530" LastActivityDate="2010-10-19T10:24:48.233" />
  <row Id="12945" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T10:35:42.307" Score="0" ViewCount="" Body="&lt;p&gt;Yes, it's a big deal because the name of the boolean should tell that it is boolean. Says if you have this piece of code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;bool arrayIsEmpty = array.length == 0;&#xA;if (arrayIsEmpty) { ... }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It is already easy to read so you won't need &lt;code&gt;== true&lt;/code&gt;, even for the person or programmer with less sense of evaluation.&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-10-19T10:35:42.307" CommunityOwnedDate="2010-10-19T11:00:05.103" />
  <row Id="12946" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T10:37:25.960" Score="0" ViewCount="" Body="&lt;p&gt;Programming conventions are not necessarily &quot;right&quot; or &quot;wrong&quot;. They exist to give the program a familiar structure to those reading it, so that possible mistakes will stand out more clearly -- it is difficult to &quot;see&quot; a problem if everything is slightly wrong-looking to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The important thing is that conventions be clearly defined and agreed upon by all participants (even if the agreement is like &quot;I agree to use this convention while I work here&quot; :), otherwise it does more harm than good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, the particularly case of comparing a boolean to true is plain wrong and to be avoided at all costs. ;-)&lt;/p&gt;&#xA;" OwnerUserId="5719" LastActivityDate="2010-10-19T10:37:25.960" CommunityOwnedDate="2010-10-19T11:00:05.103" />
  <row Id="12947" PostTypeId="2" ParentId="10865" CreationDate="2010-10-19T10:37:29.570" Score="1" ViewCount="" Body="&lt;p&gt;You can't easily dismiss any problem set for not suited for functional programming per se.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Much depends on the actual language used for functional programming and its features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One example is the already mentioned Erlang for realtime embedded-systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;State-fullness is also not a good criterium against functional programming, there are several successful ways implemented in functional programming languages to deal with this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Side effects are also often mentioned against functional programming.  Every program that is not totally solipsistic has side effects.  So every real world FP language has some way to deal with this, its only a matter how elegantly to encapsulate the world side effects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no need for arbitrary side effects like global variables at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But there are problem sets that make it easier to get into functional programming because they don't twist your familiar way of looking at the problem as much.  But once you manage to think functional more and more problem sets are open to less side-effects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even when programming C it is always a good idea to reduce arbitrary side effects like global variables as much as possible.&lt;/p&gt;&#xA;" OwnerUserId="5716" LastActivityDate="2010-10-19T10:37:29.570" CommentCount="8" />
  <row Id="12948" PostTypeId="2" ParentId="12925" CreationDate="2010-10-19T10:49:55.213" Score="4" ViewCount="" Body="&lt;p&gt;I'm a member of ACM, which I highly recommend. I find that digital library the most useful feature but I'm a student... The number of journals is huge so I just take the one i'm most interested in as well as CACM, which covers all the most important stuff in one magazine. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You also get a 3-times weekly email newsletter summarising developments in the field and an email forwarding account like: you@acm.org. Lots of other stuff that I have'nt used yet.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-10-19T10:49:55.213" CommentCount="3" />
  <row Id="12949" PostTypeId="1" AcceptedAnswerId="12970" CreationDate="2010-10-19T10:55:29.357" Score="4" ViewCount="168" Body="&lt;p&gt;If a piece of bespoke software was developed by a company and the Intellectual Property was retained by the company that wrote it, but now the client of the software company wants to get that source code (and its IP) how much should it cost them? How would you calculate a fair cost for the purchase of that source and IP?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: Just to add, the software in question is of no use to anyone else (for any legitimate purpose) as it ties in directly with the business processes of one company. It is not something that can be subsequently sub-licensed or installed outside the company in question. There are links of to third party services (but these were existing services that the bespoke software had to integrate with in the first place).&lt;/p&gt;&#xA;" OwnerUserId="1083" LastEditorUserId="1083" LastEditorDisplayName="" LastEditDate="2010-10-19T12:17:15.147" LastActivityDate="2010-10-19T16:09:37.950" Title="Intellectual Property cost" Tags="&lt;business&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="12950" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T11:00:05.103" Score="1" ViewCount="" Body="&lt;p&gt;I agree. It's a redundant construction, specially in strong typed languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To add another misuse of booleans, I have found this kind of construction a bunch of times in Javascript, (specially at some spaghetti-like monster functions, as in 100+ lines):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//create the variable, not initializing it&#xA;var flag;&#xA;//...&#xA;//assing a value to the var, by the example &#xA;flag=$(&quot;mycheckbox&quot;).selected;&#xA;//...&#xA;&#xA;//and at the moment of use it:&#xA;if(flag!=true) {&#xA;   //code to execute when the checkbox is unchecked&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It seems, that due to the lack of an strict type definition in this language, some programmers prefer not have to be messing around with the &lt;code&gt;false|undefined&lt;/code&gt; values.&lt;/p&gt;&#xA;" OwnerUserId="5717" LastActivityDate="2010-10-19T11:00:05.103" CommunityOwnedDate="2010-10-19T11:00:05.103" />
  <row Id="12951" PostTypeId="2" ParentId="12933" CreationDate="2010-10-19T11:07:01.717" Score="1" ViewCount="" Body="&lt;p&gt;I like the natural rhythm in pair programming. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, you program for a while until you feel somewhat tired, then switch and let the other person continue. This gives you a break from the  physical coding and switches your focus from syntax/writing to planning and look-a-head. It keeps your mind refreshed. At least for me anyway. &lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-10-19T11:07:01.717" CommentCount="1" />
  <row Id="12952" PostTypeId="2" ParentId="12879" CreationDate="2010-10-19T11:21:54.327" Score="0" ViewCount="" Body="&lt;p&gt;In a small company you'll always have to do some project management. This is indeed something you'll get better at (and hate less) as the years go by.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About the loss of productivity in a noisy environment: There are articles that you can show to your managers to prove that this is something serious. &#xA;But I guess he's right. If you get older, your hearing goes down and you'll be able to ignore noise a lot better :-)&lt;/p&gt;&#xA;" OwnerUserId="2820" LastEditorUserId="2820" LastEditorDisplayName="" LastEditDate="2010-10-19T11:27:22.120" LastActivityDate="2010-10-19T11:27:22.120" />
  <row Id="12953" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T11:26:55.660" Score="0" ViewCount="" Body="&lt;p&gt;I write if(var==false) because after writing var i dont feel like backtracking and write ! behind it. Also i like how ==false makes it look more clear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However == true is just weird. I dont know if there is a point of making a big deal. I wouldnt unless he is pushing others to use it or to make it a coding standard.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-10-19T11:26:55.660" CommunityOwnedDate="2010-10-19T11:26:55.660" />
  <row Id="12954" PostTypeId="2" ParentId="12879" CreationDate="2010-10-19T11:31:27.043" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Bugs. What type of correlation is there between the frequency and severity of bugs with experience?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;A little, but not as much as you'd expect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are various reasons why bugs occur - time pressures, inattention, inexperience, complacency - spring to mind. So using these as examples:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Time pressures - this happens to everyone and you are more likely to make mistakes when you are rushed. More experience will mitigate this, but someone who's highly experienced may well be put under &lt;em&gt;more&lt;/em&gt; pressure than the new guy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Inexperience - this is not just coding in general but also about the problem space or environment you are working in. To an extent the programmer straight out of college and the old hand with 20+ years experience are in the same position if the language is unfamiliar or they are solving a novel problem. The experienced coder will know some of the things to look out for, but there will still be some &quot;gotchas&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Inattention - this can strike anyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Complacency - this can happen if you think you know it all and is related to the previous two points.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So while experience does count it's not as simple as &quot;the longer you've been coding the fewer bugs you leave in your code and the less serious they are&quot;.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-19T11:31:27.043" />
  <row Id="12955" PostTypeId="2" ParentId="12879" CreationDate="2010-10-19T11:31:41.133" Score="8" ViewCount="" Body="&lt;p&gt;One of the things you'll find is that different companies, or even different departments within a company, have very different cultures.  For example, you say:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Apparently I shouldn't ask questions and I'll grow out of it once I have experience in a work environment&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That is a social norm of the group that you're in.  The group, as a whole, has it in their heads that programmers should be self-sufficient.  I suspect that you do very little programming with other people when you're at work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, there are groups where questions and collaboration are expected, and if someone is &lt;em&gt;not&lt;/em&gt; asking questions, then it's seen as an indication of a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What &lt;em&gt;is&lt;/em&gt; universally disdained is if you ask the same question over and over.  If you ask for the third time how to make Perl's DBI use bind variables, people will get annoyed, and rightly so.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Loss of productivity in a noisy environment. I'm sure with age you get better at ignoring distractions, but it never really goes away.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I wouldn't be sure about &quot;with age you get better&quot; on that.  I'm 42 and I'm finding that my tolerance for distractions is even worse.  Where I work, conversation is constant, and it's always distracting.  If I'm trying to work on code, then I'll put some headphones and play something loud and fast (lately it's been Coheed &amp;amp; Cambria's &lt;em&gt;No World For Tomorrow&lt;/em&gt;) and crank out code.  But if it's something that requires quiet concentration and thinking like a code review, or working on design for a new project, I have to take whatever I'm working to the lunchroom and hope that nobody's in there.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;For some reason I'm stuck managing all of my own projects &amp;amp; clients,&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&quot;For some reason&quot; here is &quot;because the company doesn't want to have dedicated project management.&quot;  Again, it's just the way the company is, and the next company you go to may have it done a different way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All these things vary between organizations.  This is why it's so crucial for you to research the company before you take any job, because these all affect your day-to-day life.  None of them is right or wrong.  They just are.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-19T11:31:41.133" />
  <row Id="12956" PostTypeId="2" ParentId="12949" CreationDate="2010-10-19T11:39:03.120" Score="1" ViewCount="" Body="&lt;p&gt;I doubt you can put a hard equation down for this one, it's very subjective. I guess some important things to consider would be:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How much of the software was custom built for them? If this number is high, you've probably billed them nearly the worth of the binaries + source.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are others using this? Would your company losing the ownership of the IP potentially upset anyone else?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also put a higher price on handing over the IP than I would on the source code.&lt;/p&gt;&#xA;" OwnerUserId="3694" LastActivityDate="2010-10-19T11:39:03.120" CommentCount="4" />
  <row Id="12957" PostTypeId="2" ParentId="12879" CreationDate="2010-10-19T11:45:11.330" Score="1" ViewCount="" Body="&lt;p&gt;I think that there are some things that you really end up assuming (not growing up of, but asuming as unavoidable evil), as:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Asking a lot, but selecting who you ask. Sometimes, you'll find some claimed gurus, who like to answer your question from their ivory tower, letting you know how much they know and how lucky you are for getting a piece of knowlegde from them. This people rarely offer a good technical solution. Make a good selection, a you'll need to ask fewer times.&lt;/li&gt;&#xA;&lt;li&gt;Bugs: depending on the programmer, experience is a grade. If you take a time on every bug in understanding why is it failing, how to solve it, and why it will work with the fix, you'll be learning how not to reproduce this kind of bugs, so with time your bug frecuency will be smaller. If you just google the error code, and copy-paste any solution, you rarely will reduce your bug ratio.&lt;/li&gt;&#xA;&lt;li&gt;Project management: being a good developer don't imply being a good manager. As you said, different skills are needed, a not everybody have both.&lt;/li&gt;&#xA;&lt;li&gt;Loss of productivity in a noisy environment. I found my solution a long time ago: earphones.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And at last:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Don't pay attention to some managers advices. When experienced, you learn who (and when) is offering you good advise for your well, and who is trying to sell you a fridge for the North Pole, thinking more on their productivity targets, that on you professional development.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Good luck.&lt;/p&gt;&#xA;" OwnerUserId="5717" LastEditorUserId="5717" LastEditorDisplayName="" LastEditDate="2010-10-19T12:41:56.480" LastActivityDate="2010-10-19T12:41:56.480" />
  <row Id="12958" PostTypeId="1" AcceptedAnswerId="12966" CreationDate="2010-10-19T11:47:14.853" Score="5" ViewCount="267" Body="&lt;p&gt;As a programmer what do you think that is the thing that your manager does that mostly decreases your motivation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My manager insists in blocking web content (this week was msdn content and Microsoft domain sites) This is so stupid, make me think I am not a reliable professional or that I am stealing his internet. And not, it is not a small business. It is a huge enterprise where such dinossaurs should not exist anymore.&lt;/p&gt;&#xA;" OwnerUserId="3410" LastActivityDate="2010-10-20T03:04:46.177" Title="Managers X Motivation" Tags="&lt;management&gt;&lt;motivation&gt;" AnswerCount="9" CommentCount="3" FavoriteCount="5" />
  <row Id="12959" PostTypeId="2" ParentId="12879" CreationDate="2010-10-19T11:48:24.663" Score="0" ViewCount="" Body="&lt;p&gt;Well, the questions you will grow out of, sort of. Eventually you will know all things there is to know, hence no need to ask question. You should however &lt;em&gt;never&lt;/em&gt; grow out of the desire to ask questions whenever something is unclear. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bugs will decrease with expertise and more knowledge, but they will always be there. The simple bugs are something you will learn to avoid as you get more used to the language/framework. The harder bugs will decrease slowly with expertise as you start to spot the parts of your code that will be error prone and may require codereviews or more tests. But in the end, bugs will always be a part of the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Luckily I've always been working in an environment with a dedicated project manager so I've never had to deal with that. In smaller companies I guess this can be part of the job. The question is if it should be..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Noisy environment. Nope, that will always be a distraction. Solution is in-ear headphones. &lt;/p&gt;&#xA;" OwnerUserId="4832" LastActivityDate="2010-10-19T11:48:24.663" />
  <row Id="12960" PostTypeId="2" ParentId="12879" CreationDate="2010-10-19T12:00:59.450" Score="1" ViewCount="" Body="&lt;p&gt;I would have to disagree with the notion that you grow out of writing bugs with experience. Studies that have looked at this did not find a correlation between code quality and experience (capped at a minimum level of experience).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See &lt;a href=&quot;http://blogs.construx.com/blogs/stevemcc/archive/2008/03/27/productivity-variations-among-software-developers-and-teams-the-origin-of-quot-10x-quot.aspx&quot; rel=&quot;nofollow&quot;&gt;http://blogs.construx.com/blogs/stevemcc/archive/2008/03/27/productivity-variations-among-software-developers-and-teams-the-origin-of-quot-10x-quot.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally speaking, if you have a code quality problem, you need to look at altering your practices, which can go beyond just your own responsibilities. Reading &quot;Code Complete&quot; is a good start towards that goal. Experience in the field does not automatically bring better development practices. It's really a conscious personal choice every developer has to make for themselves.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-10-19T12:00:59.450" CommentCount="2" />
  <row Id="12961" PostTypeId="2" ParentId="12864" CreationDate="2010-10-19T12:06:54.837" Score="0" ViewCount="" Body="&lt;p&gt;In terms of deciding what to do:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What is the need? Who needs it? Why? How will it make money (or achieve some other goal for non-money projects). How much is available to spend on it. Are the returns likely to justify the likley expenditure.&lt;/li&gt;&#xA;&lt;li&gt;What are the most valuable features. What are the features that are most unknown; likely to be the most risky (that is to say, most unpredictable). Try to break down the features into the smallest chunks the customer can still recognise (accept) as features. You don't need to identify all the features, just try to get a few that have high value to the customer.&lt;/li&gt;&#xA;&lt;li&gt;Implement the most risky, most valuable feature (trade off to get maximum value and remove maximum risk at the start of the project).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In terms of deciding how to do it:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Is there any existing code/technology/product/service that already solves the problem, can I use or adapt that?&lt;/li&gt;&#xA;&lt;li&gt;If not, what are the domain concepts involved and technical constraints on the solution.&lt;/li&gt;&#xA;&lt;li&gt;Implement the feature trying to achieve the simplest expression of the parts of domain model required for this feature. Decouple the domain model as much as practical from any technical considerations (e.g database technology, OS, client machine vs cloud, etc). I generally use a test driven approach to accomplish this.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-10-19T12:06:54.837" />
  <row Id="12962" PostTypeId="2" ParentId="12544" CreationDate="2010-10-19T12:08:43.253" Score="0" ViewCount="" Body="&lt;p&gt;I think the point is that during development, Google programmers like to use tools like Eclipse that use static typing to allow sound refactoring and easy code navigation.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And although V8 is impressive, Java still offers generally better performance and features such as low level access to e.g. memory mapped files, binary network protocols, etc.&lt;/p&gt;&#xA;" OwnerUserId="5725" LastActivityDate="2010-10-19T12:08:43.253" />
  <row Id="12963" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T12:14:31.617" Score="0" ViewCount="" Body="&lt;p&gt;You can try approaching your colleague with the following example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if ((x == 3) == true) {&#xA;    ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;He should say that the &lt;code&gt;== true&lt;/code&gt; is redundant and should be rewritten as&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (x == 3) {&#xA;    ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;since &lt;code&gt;x == 3&lt;/code&gt; is already a boolean expression.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now present him the &lt;code&gt;someBool == true&lt;/code&gt; example, but slightly rewritten:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if ((someBool) == true) {&#xA;    ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Since &lt;code&gt;someBool&lt;/code&gt; is already a boolean, by comparison with the previous example, it should now be clear that the &lt;code&gt;== true&lt;/code&gt; is redundant in this example, too. Thus, it should be rewritten as:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (someBool) {&#xA;    ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-19T12:14:31.617" CommunityOwnedDate="2010-10-19T12:14:31.617" />
  <row Id="12964" PostTypeId="2" ParentId="12958" CreationDate="2010-10-19T12:15:09.597" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;And no, it is not a small business.&#xA;  It is a huge enterprise where such&#xA;  dinossaurs should not exist anymore.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This statement baffles me. My experience with managers is the exact opposite. Only big enterprises can afford mismanagement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My enterprise is really small and my boss is actually a programmer, even a decent one, but still a cowboy. Which is why I have to clean up a lot of mess, that in a lot of cases really wouldn't have needed to be there in the first place.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-10-19T12:15:09.597" CommentCount="12" />
  <row Id="12965" PostTypeId="2" ParentId="12864" CreationDate="2010-10-19T12:19:17.157" Score="1" ViewCount="" Body="&lt;p&gt;In order:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Already exists?&lt;/li&gt;&#xA;&lt;li&gt;Seems complex? Do I really know how it should work?&lt;/li&gt;&#xA;&lt;li&gt;Lets try a prototype!&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="3410" LastActivityDate="2010-10-19T12:19:17.157" />
  <row Id="12966" PostTypeId="2" ParentId="12958" CreationDate="2010-10-19T12:27:10.973" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You need to find a new job.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do base such a harsh conclusion on?  I just think about some things you need from your work environment:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;it lets you do your job.&lt;/li&gt;&#xA;&lt;li&gt;it lets you grow professionally.&lt;/li&gt;&#xA;&lt;li&gt;surround yourself with smart people - who may be leaving or have left already.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-19T12:27:10.973" CommentCount="2" />
  <row Id="12967" PostTypeId="2" ParentId="12879" CreationDate="2010-10-19T12:27:23.267" Score="1" ViewCount="" Body="&lt;p&gt;For me there's a lot of meta-information in your question: you think something is normal that managers have told you is not. You might have crummy managers, but you might have good ones who are trying to teach you something. Take for example the question asking. I had an employee who asked a lot of questions. Assigned a work item to test the XYZ report and confirm the title was now centered, this employee would ask a manager, developer, or pretty much anyone &quot;how do I bring up the XYZ report?&quot; and get the answer &quot;it's on the Reports menu.&quot; Seconds later, this employee would ask (often a different person) &quot;what are some good values to put in all these text boxes on the page to bring up the XYZ report?&quot; and so on. Constant interrupting, not trying a few things to see if they worked, not reading the documentation, not pushing back on whoever wrote the work item and saying &quot;hey, if you want me to test, give me instructions,&quot; just running around asking everyone everything that popped up as a thought or a question. My guess is you do something like this too, and your boss can't explain to you the difference between that and &quot;asking questions&quot; but is sure you'll grow out of it. That's actually a way of saying your boss knows this isn't something your boss can fix about you. Either you'll choose to fix it, or someone else will, but your boss says &quot;I wash my hands of it.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things that might be negatives about you, things managers have told you are negatives about you - the way you ask questions, bugs, time management, project management, focusing on what you're doing and tuning out distractions - you will get better at with experience. And not just experience writing code, but experience making dinner, or taking the train to another city, or falling in love and breaking up. All these things can strengthen your abilities in other parts of your life. It's a handy short form to say you'll grow out of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From where I sit your boss is saying three things. First, that you're immature. Second, that it's not being held against you at the moment. Third, that your boss has no plan or intention to help you mature. That's going to be up to you, possibly with some help from your co-workers. But you seem to think it's fine to have a lot of bugs in the code you write, to be unable to manage your projects, to be unable to work productively in a normal working environment. So don't expect the passage of time to magically change those things. They will change when you stop thinking they are good and normal. Alternatively, they won't change, but you'll find an environment that is a better fit for you.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-19T12:27:23.267" />
  <row Id="12968" PostTypeId="2" ParentId="8588" CreationDate="2010-10-19T12:30:50.627" Score="1" ViewCount="" Body="&lt;p&gt;If the Evil Empire can be trusted...it's SEQUEL!  :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/intro.htm#i60831&quot; rel=&quot;nofollow&quot;&gt;http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/intro.htm#i60831&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5728" LastActivityDate="2010-10-19T12:30:50.627" CommentCount="1" />
  <row Id="12969" PostTypeId="2" ParentId="12877" CreationDate="2010-10-19T12:33:02.117" Score="3" ViewCount="" Body="&lt;p&gt;Post-its and index cards, especially in the 3-by-5-inch size for user stories.  They should come in a variety of colors do visualize different kinds of work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sharpie markers to write on those cards (if you can fit the phrasing of a user story written with pen, but not with Sharpie, then it's too long.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pens, pencils, highlighters, paper and notebooks.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-19T12:33:02.117" CommentCount="1" />
  <row Id="12970" PostTypeId="2" ParentId="12949" CreationDate="2010-10-19T12:39:24.953" Score="2" ViewCount="" Body="&lt;p&gt;You saw there was value in retaining ownership in the IP and the source. So does your client. Are there royalties that would be eliminated by their purchase? Do they hope to deny competitors access to the IP? Are there other related markets that are served by the IP?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question is how do you value the market for the IP and source code? There are &lt;a href=&quot;http://www.google.com/search?client=safari&amp;amp;rls=en&amp;amp;q=valuing+ip&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&quot; rel=&quot;nofollow&quot;&gt;many sources on the web&lt;/a&gt; to help you determine their value for these properties.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A &lt;a href=&quot;http://www.buildingipvalue.com/05_SF/360_363.htm&quot; rel=&quot;nofollow&quot;&gt;paper&lt;/a&gt; by accounting and management consulting firm PWC outlines several possible methods:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Excess operating profits or premium profits method.&lt;/li&gt;&#xA;&lt;li&gt;Premium pricing method.&lt;/li&gt;&#xA;&lt;li&gt;Cost savings method.&lt;/li&gt;&#xA;&lt;li&gt;Royalty savings method.&lt;/li&gt;&#xA;&lt;li&gt;Market approach.&lt;/li&gt;&#xA;&lt;li&gt;Cost approach.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;A &lt;a href=&quot;http://www.forensic-valuation.com/articles/A-smart-approach-to-valuing-intellectual-property.html&quot; rel=&quot;nofollow&quot;&gt;guide&lt;/a&gt; by valuation specialists Valuation &amp;amp; Forensic Partners focuses on market, cost, and income valuation methods and warns, &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Optimistic IP developers tend to&#xA;  overestimate asset potential. So,&#xA;  valuators generally view internal&#xA;  projections skeptically, especially&#xA;  when valuing unproven technology or&#xA;  when management lacks industry&#xA;  experience.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;But another question to ask yourself is how well can you translate ownership of these properties into capital (in the form of money or some other asset) on your own (either marketing them yourself or licensing them) versus selling them outright?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; In response to your update, two questions that have direct bearing on how valuable the properties are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Can you mine the source for generalized components that are useful elsewhere?&lt;/li&gt;&#xA;&lt;li&gt;Now that patents on business processes are deemed valid and have become a key factor in determining business valuation, is securing your IP crucial to patenting their business processes?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If none of these are valid, you might just have to settle for valuing your properties on a cost basis.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-19T12:52:51.960" LastActivityDate="2010-10-19T12:52:51.960" />
  <row Id="12971" PostTypeId="1" CreationDate="2010-10-19T12:44:10.123" Score="4" ViewCount="401" Body="&lt;p&gt;I want to create a list of Ranks for the employees in my company. We are an open source integrator that works usually with existing solutions and also building custom solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We don't want to name our employees as normal senior consultant, trainee and we would like give them ranks as forums do to the users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone have any suggestion for this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've placed the question here because i would love to hear feedback from programmers :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you in Advance.&lt;/p&gt;&#xA;" OwnerUserId="5732" LastEditorUserId="3010" LastEditorDisplayName="" LastEditDate="2010-10-19T14:10:07.080" LastActivityDate="2010-10-19T19:46:01.810" Title="Defining Rank names for employees" Tags="&lt;management&gt;&lt;creativity&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="1" />
  <row Id="12972" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T12:44:35.877" Score="0" ViewCount="" Body="&lt;p&gt;This may get some of your nickers in a wad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have extension methods for .IsTrue and .IsFalse for the bool type.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So we write &lt;/p&gt;&#xA;&#xA;&lt;p&gt;if(someBool.IsTrue()) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;-or-&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if(someBool.IsFalse())&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yep! And I love them. When reading code it just becomes more obvious to me.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-10-19T12:44:35.877" CommunityOwnedDate="2010-10-19T12:44:35.877" />
  <row Id="12973" PostTypeId="2" ParentId="12879" CreationDate="2010-10-19T12:44:52.930" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I have a tendency to ask a lot of questions.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Asking questions is great. I would much rather programmers ask questions than sit being unproductive, or worse doing the wrong thing. Questions can benefit the person being asked too. For example, the person being asked the question can learn which parts of the code are not as easy to understand as they should be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I regularly mentor university sandwich-course students. The ones that ask the most questions almost always increase their productivity the quickest. I would not expect someone with that level of experience to turn up with all the knowledge required to immediately integrate with our practices and be productive. Maybe your team should assign you a mentor and try to give that knowledge transfer process the support of the business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, being able to do research and answer questions yourself is also a skill. Interrupting someone with a minor question can break their concentration for little benefit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I sometimes find that what I remember about the code is not quite what it actually does. Having someone new try to answer the question themselves can generate a fresh perspective on the situation (as long as then tell everyone what they think they have found!).&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Bugs. What type of correlation is there between the frequency and severity of bugs with experience?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I think that I do write fewer of some kinds of bugs now than I did when I first started. However, far fewer of the bugs I do write get through to production. This is because I now know to make sure that there are processes, tests and other practices (dedicated QA testers, code reviews, pair programming, automated integration tests, continuous integration etc) in place to try to prevent any bugs from getting out. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Project management. For some reason I'm stuck managing all of my own projects &amp;amp; clients, and I'm told I'll just get better at it with age.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I guess most people get better at most things they have to do repeatedly. I find dedicated project, and product, management staff very valuable. They have a level of skill in those activities that I just don't have the motivation to achieve. However, that is not to say that there are not elements of (and inputs too) project management that fall squarely into the programmer's domain. For example, estimating work, tracking progress and providing early feedback, understanding and communicating with customers about their needs. Understanding how what you are doing fits into the wider business model and how and when it will start to generate revenue or reduce costs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of these things I have had to learn to do since I started working. However, it didn't just &quot;happen&quot; as I got older. I made a deliberate decisions as an individual but also as a team member to get better at doing that stuff.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Loss of productivity in a noisy environment. I'm sure with age you get better at ignoring distractions, but it never really goes away.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't really understand this. I think, fundamentally, noisy environments are distracting. They still distract me now as much as they ever did (as far as I can remember/tell). I think I have become more aware of when I might be distracting/interrupting someone else. I also appreciate that sometimes noise is a sign of a team collaborating closely and productively on something (especially if your team has its own room). But noise unrelated to what I am doing is still distracting to me. Maybe it will be less so as I get older... possibly as I start to lose my hearing...&lt;/p&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-10-19T12:44:52.930" />
  <row Id="12974" PostTypeId="2" ParentId="12925" CreationDate="2010-10-19T12:49:30.610" Score="7" ViewCount="" Body="&lt;p&gt;I have been a member of both ACM and the IEEE Computer Society for quite a few years. I find the CACM and IEEE Software the most useful and informative when it comes to programming. IEEE also has a number of journals in more specialty fields depending on what field you work in. In both cases I highly recommend the Digital Library subscription in addition to the regular membership. It is more than worth it.&lt;/p&gt;&#xA;" OwnerUserId="3225" LastActivityDate="2010-10-19T12:49:30.610" CommentCount="3" />
  <row Id="12975" PostTypeId="2" ParentId="1483" CreationDate="2010-10-19T12:53:23.067" Score="0" ViewCount="" Body="&lt;p&gt;I'm swedish and pretty much all my code is in english. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;An intresting concept in this regard is &lt;a href=&quot;http://domaindrivendesign.org/resources/what_is_ddd&quot; rel=&quot;nofollow&quot;&gt;Domain Driven Design&lt;/a&gt;, in that process it is a major point to not translate words and concepts:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Direct translation to and from the existing domain models may not be a good solution. Those models may be overly complex or poorly factored. They are probably undocumented. If one is used as a data interchange language, it essentially becomes frozen and cannot respond to new development needs.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Therefore:&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Use a well-documented shared language that can express the necessary domain information as a common medium of communication, translating as necessary into and out of that language.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;So if domain specific terms are in the local language and not translated along with the rest of the code, a domain expert but non-programmer can get a grasp of what the code does.&lt;/p&gt;&#xA;" OwnerUserId="4832" LastActivityDate="2010-10-19T12:53:23.067" CommunityOwnedDate="2010-10-19T12:53:23.067" />
  <row Id="12976" PostTypeId="2" ParentId="12683" CreationDate="2010-10-19T12:57:58.097" Score="0" ViewCount="" Body="&lt;p&gt;If you're writing COBOL or C, pseudocode may be helpful because writing the actual code will take much longer, and if you can verify your algorithm/requirements from the pseudocode, you can save some time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In more modern languages, pseudocode doesn't make as much sense. What would work better is writing method stubs, and filling out the top level logic, and as much detail as necessary to verify the algorithm and requirements, all of this in actual code. You can then show that code to the Team Lead for approval, and have your real code already started. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-10-19T12:57:58.097" />
  <row Id="12977" PostTypeId="2" ParentId="1890" CreationDate="2010-10-19T13:08:00.183" Score="0" ViewCount="" Body="&lt;p&gt;I go by option 5: &lt;code&gt;private int _MyFoo&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't see any real competitive advantage over _myFoo though.&lt;/p&gt;&#xA;" OwnerUserId="596" LastActivityDate="2010-10-19T13:08:00.183" />
  <row Id="12978" PostTypeId="2" ParentId="1483" CreationDate="2010-10-19T13:20:29.847" Score="1" ViewCount="" Body="&lt;p&gt;When I was at university in Switzerland I worked on a Modula-2 project, where everything (variables, comments, messages, etc) was in French, except for the keywords of the programming language.  They also told me there were preprocessors available that would allow you to write the keywords in French as well, so &quot;si&quot; = &quot;if&quot;, &quot;alors&quot; = &quot;then&quot;, &quot;sinon&quot; = &quot;else&quot;, etc.&lt;/p&gt;&#xA;" OwnerUserId="4526" LastActivityDate="2010-10-19T13:20:29.847" CommunityOwnedDate="2010-10-19T13:20:29.847" />
  <row Id="12980" PostTypeId="2" ParentId="12877" CreationDate="2010-10-19T13:23:07.487" Score="4" ViewCount="" Body="&lt;p&gt;Scissors. One thing the computer can't do is cut open packaging and or my Campbell's v8 soup boxes.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-10-19T13:23:07.487" CommentCount="1" />
  <row Id="12981" PostTypeId="2" ParentId="12877" CreationDate="2010-10-19T13:24:17.857" Score="1" ViewCount="" Body="&lt;p&gt;Whiteboard - even if just a small one.&lt;/p&gt;&#xA;" OwnerUserId="3199" LastActivityDate="2010-10-19T13:24:17.857" />
  <row Id="12982" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T13:25:39.163" Score="7" ViewCount="" Body="&lt;p&gt;remind me of &quot;boolean madness code&quot;, its like these&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(someBool == true)&#xA;   otherBool = false;&#xA;else&#xA;   otherBool = true&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Instead of:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; otherBool = !someBool&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3410" LastActivityDate="2010-10-19T13:25:39.163" CommunityOwnedDate="2010-10-19T13:25:39.163" CommentCount="1" />
  <row Id="12983" PostTypeId="2" ParentId="12971" CreationDate="2010-10-19T13:29:39.643" Score="-3" ViewCount="" Body="&lt;p&gt;&lt;p&gt;&lt;strong&gt;Scalar&lt;/strong&gt; is a entry level&#xA;&lt;p&gt;&lt;strong&gt;Composite&lt;/strong&gt; is regular developer&#xA;&lt;p&gt;&lt;strong&gt;Function&lt;/strong&gt; is senior&#xA;&lt;p&gt;&lt;strong&gt;Macro&lt;/strong&gt; or &lt;strong&gt;Template&lt;/strong&gt;  is the architect&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-19T13:29:39.643" CommentCount="1" />
  <row Id="12984" PostTypeId="2" ParentId="12879" CreationDate="2010-10-19T13:30:16.830" Score="2" ViewCount="" Body="&lt;p&gt;I am not going to write a full answer for you since others have already answered better then I could, but I do feel the need to say &lt;strong&gt;don't ever stop asking questions&lt;/strong&gt;!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will also suggest that you try and answer your questions yourself (if you don't already) before asking someone else since many questions are easily answered with a quick search (Google!)&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-10-19T13:30:16.830" />
  <row Id="12985" PostTypeId="2" ParentId="12877" CreationDate="2010-10-19T13:31:45.107" Score="1" ViewCount="" Body="&lt;p&gt;Whiteboard and Markers&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-19T13:31:45.107" />
  <row Id="12986" PostTypeId="2" ParentId="12773" CreationDate="2010-10-19T13:31:53.927" Score="10" ViewCount="" Body="&lt;p&gt;I recommend reading the Head First book first, as it does a better job of explaining why design patterns are needed. After that, you can use the GoF book for examples and as a reference.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-10-19T13:31:53.927" CommentCount="1" />
  <row Id="12987" PostTypeId="2" ParentId="12958" CreationDate="2010-10-19T13:36:51.157" Score="3" ViewCount="" Body="&lt;p&gt;It would be understandable to block pr0n or time-sapping sites (Facebook, MySpace, etc), but not professional resources such as these. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I strongly recommend that you book a 1-to-1 meeting with your manager and explain your case for requiring access to MSDN, Microsoft, *.se.com, etc and see what their response is. If, in a 1-to-1 meeting (i.e. private meeting room), they come out with 'I banned them to increase your productivity', you can:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Ask how they are measuring productivity - by bug count, LOC written, or the number of times they spot MSDN open on your monitor?&lt;/li&gt;&#xA;&lt;li&gt;Point out that blocking these resources &lt;em&gt;reduces&lt;/em&gt; productivity because you don't have reference materials, etc.&lt;/li&gt;&#xA;&lt;li&gt;Also point out that a move such as this has damaged yours/teams morale considerably and that the decision should be reversed.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Whatever you do, don't quit or go job-hunting without trying to work things out first. Describing your company/manager as a 'dinosaur' tells us that you may have some prejudices to address first and/or some gentle education of your management of modern software development techniques.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-19T13:36:51.157" CommentCount="3" />
  <row Id="12988" PostTypeId="2" ParentId="1890" CreationDate="2010-10-19T13:38:53.680" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.idesign.net/idesign/download/IDesign%20CSharp%20Coding%20Standard.zip&quot; rel=&quot;nofollow&quot;&gt;Juval Lowy's IDesign C# Coding Standard&lt;/a&gt; is quite popular.  This standard recommends prefixing private member variables with &quot;m_&quot; (Option 6).  That's what we do in our team.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private int m_myInteger;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Option 4 (&lt;code&gt;_myInteger&lt;/code&gt;) is an acceptable variation of this standard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I didn't like the MSDN recommendation (&lt;code&gt;myInteger&lt;/code&gt;), because it makes it difficult to tell a private member from a local variable.  Their recommendation, of course, solves this problem by qualifying private members with &lt;code&gt;this&lt;/code&gt;, which seems redundant to me.&lt;/p&gt;&#xA;" OwnerUserId="464" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2011-03-05T17:04:53.020" LastActivityDate="2011-03-05T17:04:53.020" />
  <row Id="12989" PostTypeId="1" CreationDate="2010-10-19T13:47:30.310" Score="1" ViewCount="282" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/3849/when-would-someone-be-considered-a-great-programmer&quot;&gt;When would someone be considered a great programmer?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;To become better programmers, it's really helpful to have a sense of what's possible at higher levels of skill. I'm curious to hear from this community about the best programmers you've personally met/worked with:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How did you recognize their skill?  What impressed you?&lt;/li&gt;&#xA;&lt;li&gt;What specific programming feats were they capable of?&lt;/li&gt;&#xA;&lt;li&gt;What did you learn from them?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Stories most welcome; names are not necessary, rather, observations of what makes good/great programmers so.  Thanks!&lt;/p&gt;&#xA;" OwnerUserId="2026" LastEditorUserId="2026" LastEditorDisplayName="" LastEditDate="2010-10-19T14:39:15.607" LastActivityDate="2010-10-19T14:39:15.607" ClosedDate="2010-10-19T15:04:02.793" Title="The best programmers you've worked with - what made them good/great?" Tags="&lt;learning&gt;&lt;experience&gt;&lt;self-improvement&gt;&lt;skills&gt;" CommentCount="5" />
  <row Id="12990" PostTypeId="2" ParentId="348" CreationDate="2010-10-19T13:49:14.390" Score="3" ViewCount="" Body="&lt;p&gt;Companies that don't know what they're doing should not have remote employees. The most incompetent manager will only feel like you are working hard if they can actually see you sitting at your computer doing a lot of typing. Also, sitting in useless meetings is one of the best indicators of strong communication and time managment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you have people who know what they are doing and are managed by those who know what they're doing, it really doesn't matter when, where, or how they work. They get what's needed done when it needs to be done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm at a company that pays someone to do a direct deposit for payroll AND print out a faux paper check (actual pre-printed check paper), puts it in an envelope and sticks it in our mailboxes. I guess internal email is not secure enough and what would we do with all those checks?. I believe this edict came from the Department of Redundancy Department. If anyone were to work remotely, there would be the extra cost of postage which is a good reason not to let people work remotely - too expensive.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-19T13:49:14.390" CommentCount="1" />
  <row Id="12991" PostTypeId="2" ParentId="12773" CreationDate="2010-10-19T13:50:38.617" Score="2" ViewCount="" Body="&lt;p&gt;go for the Head First. it explains how you write code the usual way, what the problem would be with a modification not done the right way, the design principle to apply, the refactor and then points the result to what pattern you just used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i found the design principles most useful. would not have bothered with the patterns if the principles weren't explained&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-19T13:50:38.617" />
  <row Id="12992" PostTypeId="1" CreationDate="2010-10-19T13:50:57.203" Score="5" ViewCount="309" Body="&lt;p&gt;I've never actually purchased a copy of Visual Studio myself. SharpDevelop and Express edition have always been good enough for my personal use, and my employers always furnished me with the IDEs I needed to serve them. However, I'm thinking of actually paying for a copy for my personal laptop. I need this mainly so I can open solutions that contain web projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is: Is there an edition cheaper than the $710 Pro edition on Amazon that will do what I need: &lt;a href=&quot;http://www.amazon.com/Microsoft-C5E-00521-Visual-Studio-Professional/dp/B0038KTO8S/ref=sr_1_2?ie=UTF8&amp;amp;qid=1287456230&amp;amp;sr=8-2&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Microsoft-C5E-00521-Visual-Studio-Professional/dp/B0038KTO8S/ref=sr_1_2?ie=UTF8&amp;amp;qid=1287456230&amp;amp;sr=8-2&lt;/a&gt; ? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I need is defined as:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Open up a solution with C#, Web App, VB.NET, and Web Projects.&lt;/li&gt;&#xA;&lt;li&gt;Install addins like resharper, testdriven.net, etc, SCM plugins, etc.&lt;/li&gt;&#xA;&lt;li&gt;Some level of db project support. At least to be able to open a dbproj. I only need that for SCM hooks. SSMS and SQLCMD are good enough for actually editing databases.&lt;/li&gt;&#xA;&lt;li&gt;Ability to install F#, IronPython, IronRuby etc.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Now naturally I'm a fairly intelligent resourceful person so I realize I can get Visual Studio in a questionable manner. Thats not what I'm looking to do. I want a legal copy, I don't want a student copy, or an MSDN copy. I want a real copy, I just want to make sure I get the cheapest edition that serves my needs.&lt;/p&gt;&#xA;" OwnerUserId="1750" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-23T22:19:29.150" LastActivityDate="2010-10-27T22:38:43.960" Title="Is there a cheaper non-express non-student, non-msdn version of Visual Studio 2010 that supports plugins in the US than the $710 Professional Edition?" Tags="&lt;work-environment&gt;&lt;visual-studio-2010&gt;&lt;license&gt;" AnswerCount="2" CommentCount="6" FavoriteCount="2" />
  <row Id="12993" PostTypeId="2" ParentId="12971" CreationDate="2010-10-19T14:06:16.537" Score="0" ViewCount="" Body="&lt;p&gt;Guild style- apprentice, craftsman, journeyman, master - can be applied to any stream of developer, architect or other technical type and describes things rather nicely, to my mind.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-19T14:06:16.537" CommentCount="4" />
  <row Id="12994" PostTypeId="2" ParentId="12971" CreationDate="2010-10-19T14:09:44.467" Score="16" ViewCount="" Body="&lt;p&gt;This is a tricky situation. You are straying into some seriously ego-driven territory here, particularly with people who identify very strongly with their work. I have seen people get VERY twisted over being a Developer III when somebody else they consider inferior is a Developer IV. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually when a system with grades like this is put in place it is because there is a push for some kind of a standardization. It usually appears with a pay scale. Almost always it is a larger organization. In smaller organizations you usually wind up with a title prefix like &quot;Senior&quot; or &quot;Chief&quot; as a way to differentiate. In all cases what you are doing is making a hierarchy visible and using it as a way for people to measure themselves. If this is your goal, then go ahead and put in some kind of a system. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be aware that you will immediately ruffle feathers when people find out they are not seen by management as the best on the team. Also be prepared for the demands of &quot;When will I make the next grade?&quot; This will come hand in hand with a demand for more compensation. If the compensation winds up tied to the title then people will be able to figure out what you are paying the new hire and this will spawn more issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's internal, maybe tie it to some kind of objective metric like number of releases authored, bugs resolved, etc. This would feed the need for recognition but not be something you'd have to put on a business card.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my own experience I just called everyone &quot;Software Developer&quot; and made sure that I communicated with everyone all the time so that I could head off any feelings of ill will, etc. It also cut down somewhat on &quot;that's not my job&quot; comments. The only person who wound up as a &quot;Senior Software Developer&quot; had minor management duties. It was not perfect and had its own issues but overall worked for me. YMMV.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-10-19T14:09:44.467" CommentCount="3" />
  <row Id="12995" PostTypeId="2" ParentId="12925" CreationDate="2010-10-19T14:09:58.867" Score="1" ViewCount="" Body="&lt;p&gt;&quot;To keep knowledge up to date&quot; I use to visit this two sites and also recommend to others. They will keep you up to date about tech and science in &quot;general&quot;.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.tgdaily.com/&quot; rel=&quot;nofollow&quot;&gt;TG Daily&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://arstechnica.com/&quot; rel=&quot;nofollow&quot;&gt;Ars Technica&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You may consider being a member of ACM or IEEE for info regarding &quot;Computer Science&quot; and tech also. But they are more academic in nature and have less to do with &quot;Software Development&quot;. But are really important for professors and research students. And another thing- probably you have to pay for the membership.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again there are other sources of up to date informations for developers. And mainly, the sources are blogs of other veteran developers. But it depends mostly on the platform and tool you use. You have to search for community that suits your needs. And this stackoverflow page can help-&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/5119/what-are-the-best-rss-feeds-for-programmers-developers&quot;&gt;http://stackoverflow.com/questions/5119/what-are-the-best-rss-feeds-for-programmers-developers&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And again what I feel, stay with this stackoverflow.com and similar stackexchange.com sites. You will learn so many things. These may be old but worth learning.&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-10-19T14:09:58.867" CommentCount="2" />
  <row Id="12996" PostTypeId="1" CreationDate="2010-10-19T14:15:07.923" Score="3" ViewCount="133" Body="&lt;p&gt;I am a fairly adept .NET and PHP programmer. These days my pattern of choice for complex web apps is an SOA approach where I use PHP as the front end, and WCF web services as the middle tier. My ajax calls are usually to JSON &lt;a href=&quot;http://weblogs.asp.net/kiyoshi/archive/2008/10/08/wcf-using-webhttpbinding-for-rest-services.aspx&quot; rel=&quot;nofollow&quot;&gt;webHttpBinding&lt;/a&gt; WCF endpoints. On the .NET side of things I am absolutely in love with the Visual Studio plugin &lt;a href=&quot;http://www.jetbrains.com/resharper/&quot; rel=&quot;nofollow&quot;&gt;ReSharper&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is as follows, I want to rethink my tool chain on the PHP side of things. On one side JetBrains, the makers of Resharper, have a PHP IDE called &lt;a href=&quot;http://www.jetbrains.com/phpstorm/&quot; rel=&quot;nofollow&quot;&gt;PHPStorm&lt;/a&gt;. On the other side, I can use VS.PHP and ReSharper. Does anyone use the later combination fo VS.PGP and Resharper? Can you recommend it?&lt;/p&gt;&#xA;" OwnerUserId="1750" LastActivityDate="2010-10-19T15:01:00.020" Title="Should I go with PHP.NET and Resharper or PHPStorm" Tags="&lt;php&gt;&lt;visual-studio&gt;" AnswerCount="1" />
  <row Id="12997" PostTypeId="2" ParentId="12925" CreationDate="2010-10-19T14:16:53.170" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://cacm.acm.org/&quot; rel=&quot;nofollow&quot;&gt;Communications of ACM&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has a good combinations of research articles, good day-to-day practical implementations articles, and policies round tables from time to time.&lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-10-19T14:16:53.170" />
  <row Id="12998" PostTypeId="2" ParentId="1890" CreationDate="2010-10-19T14:17:22.983" Score="0" ViewCount="" Body="&lt;p&gt;Use camelCasing for private variables like &lt;code&gt;myInteger&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider a preceding &lt;code&gt;_&lt;/code&gt; if the variable is a backup for a property to reduce confusions-&lt;br&gt;&#xA;Variable &lt;code&gt;_myProperty&lt;/code&gt; for property &lt;code&gt;MyProperty&lt;/code&gt; &lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-10-19T14:17:22.983" />
  <row Id="13000" PostTypeId="1" CreationDate="2010-10-19T14:58:06.117" Score="5" ViewCount="286" Body="&lt;p&gt;I recently started on my master studies adventure, and got recently introduced to LaTeX. I am parallely learning it and also wondering what other languages|tools are absolute essential for graduate student (Masters|PhD) to know?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to continue into PhD later in my career.&lt;/p&gt;&#xA;" OwnerUserId="5540" LastActivityDate="2010-11-19T18:04:31.570" Title="Tools/Languages every Graduate Student should Know?" Tags="&lt;research&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="0" />
  <row Id="13001" PostTypeId="1" AcceptedAnswerId="13069" CreationDate="2010-10-19T14:58:29.733" Score="0" ViewCount="79" Body="&lt;p&gt;Yesterday, a colleague asked me how to configure our VCS to timestamp the local copy of files pulled from the repository with the modification time in the repository.  I've always believed that they should be timestamped with the time they were pulled so that if you make a change, build, then back out by overwriting the changed file with the repository's copy, everything that depends on that file will build correctly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I thought about it overnight, but couldn't come up with a good reason to have timestamped with the repository modification time.  What would be the advantages of doing it that way?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Bonus question: repository modification time and local modification time are the only timestamping strategies that I'm aware of.  Are there others in use by VCS systems?)&lt;/p&gt;&#xA;" OwnerUserId="35" LastActivityDate="2010-10-19T18:57:15.967" Title="What timestamp to use when pulling files from a VCS system?" Tags="&lt;version-control&gt;&lt;time-stamp&gt;" AnswerCount="2" />
  <row Id="13002" PostTypeId="2" ParentId="12996" CreationDate="2010-10-19T15:01:00.020" Score="2" ViewCount="" Body="&lt;p&gt;Since you're also working with WCF Web Services, I'd recommend you stick with Visual Studio.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've done quite a bit with that platform and it works well.  PHP Storm is probably very nice, but it's going to cost extra and be a new environment that you'll have to get used to.  If it's not broke, don't fix it :)&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-10-19T15:01:00.020" CommentCount="2" />
  <row Id="13003" PostTypeId="2" ParentId="12189" CreationDate="2010-10-19T15:09:47.290" Score="2" ViewCount="" Body="&lt;p&gt;I also would like to recommend the Python Koans for learning: &lt;a href=&quot;http://github.com/gregmalcolm/python_koans&quot; rel=&quot;nofollow&quot;&gt;http://github.com/gregmalcolm/python_koans&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are pretty similar to the Ruby Koans (a lot of it was directly ported) and are pretty cool.&lt;/p&gt;&#xA;" OwnerUserId="3694" LastActivityDate="2010-10-19T15:09:47.290" />
  <row Id="13004" PostTypeId="2" ParentId="13000" CreationDate="2010-10-19T15:12:23.477" Score="9" ViewCount="" Body="&lt;p&gt;Any flavor of &lt;strong&gt;Linux/Unix&lt;/strong&gt; system. Graduate studies are rarely Windows-based.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-19T15:12:23.477" CommentCount="4" />
  <row Id="13005" PostTypeId="2" ParentId="12877" CreationDate="2010-10-19T15:12:43.520" Score="1" ViewCount="" Body="&lt;p&gt;A &lt;strong&gt;hole punch&lt;/strong&gt; and &lt;strong&gt;binders&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-10-19T15:12:43.520" />
  <row Id="13006" PostTypeId="1" AcceptedAnswerId="13015" CreationDate="2010-10-19T15:14:00.270" Score="1" ViewCount="278" Body="&lt;p&gt;I've been interested in programming for a while now, and have been slowly, slowly, slowly working on things over the years. However, I don't feel like I've learned much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've only really stuck with familiar languages (Java, C# and I've tried a little bit of PHP). The problem is that in those languages, I've only brushed upon the surface of them and have restricted myself to doing fairly simple things. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, as a Java project, I've downloaded the source code for some game and changed a few things to my liking, but nothing terribly difficult. In C#, I've made a few WinForm and console projects to do some repetitious or routine tasks for me, which is nice, but again nothing too complicated. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've just barely begun to grasp the concept of classes, multithreading and some basic but essential tools that are required in modern object-oriented programing. (&quot;Why can't I just shove everything into one monster-sized class?&quot; &quot;Why can't I just run everything in one thread?&quot; are questions I used to wonder about)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never made a large project by myself. Ultimately, my kind of &quot;dream&quot; hobby project is that I would like to create a game using DirectX technology. I say that because I've used XNA but it requires the user to install a framework to get it running, and I also feel that if I use the framework, that a lot of the back-end work is being obscured from me. (DirectX or OpenGL seem to be about as close to the machine as I can get without going overboard in complexity. DirectX is also installed on most [if not all] Windows machines that plan on running games.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I haven't even begun to even think about starting that. The amount of things I need to know to undertake a task is absolutely overwhelming. I wouldn't know where to begin. Likewise, I also feel inadequate because I've restricted myself to [what I see as] easy languages. I feel like I should start learning some scripting language or learn this or learn that, which is quite daunting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;--&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;tl;dr&lt;/strong&gt;: I've been slowly teaching myself to program for a while now, but have been restricting my knowledge to limited languages and only scratching the surface of what I can do. I want to learn more and possibly start a decent-sized project (I can only make so many text-based RPGs and calculators), but the massive amount of knowledge I'll need is very intimidating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of my concerns is that I know so little about programming languages in general. Is it better to learn several languages or to be able to delve deep into one single language?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can I motivate myself to learn more? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I thinking about this the wrong way?&lt;/p&gt;&#xA;" OwnerUserId="5624" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-04-26T14:58:48.850" LastActivityDate="2011-04-26T14:58:48.850" Title="How can I motivate myself to start learning more?" Tags="&lt;learning&gt;&lt;motivation&gt;" AnswerCount="5" />
  <row Id="13007" PostTypeId="2" ParentId="9466" CreationDate="2010-10-19T15:15:54.653" Score="0" ViewCount="" Body="&lt;p&gt;I find &lt;a href=&quot;https://jets3t.dev.java.net/&quot; rel=&quot;nofollow&quot;&gt;Jets3t&lt;/a&gt; to be very useful for S3 operations. You can use both the GUI tool as well as the library programmatically. For EC2, you can use the &lt;a href=&quot;http://aws.amazon.com/sdkforjava/&quot; rel=&quot;nofollow&quot;&gt;AWS Java SDK&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: Both of these are in Java. &lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-10-19T15:15:54.653" />
  <row Id="13008" PostTypeId="2" ParentId="1972" CreationDate="2010-10-19T15:18:33.133" Score="3" ViewCount="" Body="&lt;p&gt;What would I like to see? Three things.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;No Null References&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;If we can avoid the billion dollar mistake in a new language, I'd be a happy bunny. I understand that this &lt;em&gt;might&lt;/em&gt; not be possible with low-level languages for systems programming. But that does not mean we should have that on high level languages, though.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Efficient Range Types&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Ranged types, as in Ada. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;type Range_Type is range -5 .. 10;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Some languages have them in one way or another (Groovy, Scala) but others lack it completely (.ie. Java). I think every strongly typed high level language should have support for ranges as strong and consistent as found in Ada - the compiler has strict enforcement of assignments, and at code at run-time is mandated to throw specific errors when an out-of-range r-value is assigned to a ranged l-value. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similar type that might come in handy are modular types:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;type byte is mod 2**8;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Or ranged &lt;em&gt;real&lt;/em&gt; types with a specified precision (for example, from -1.0 to 1.0 with 10 digits of precision):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;type Sin_Values is digits 10&#xA;   range -1.0..1.0;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Pretty much the whole support for integer and floating point ranged types as &lt;em&gt;efficiently&lt;/em&gt; implemented in Ada. That's what I would like to see.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Homoiconicity&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Homoiconicity or at least being able to group programming constructs in S-expressions. Lisp got it right with this (though I could live without the overabundant parenthesis fetish and the prefix notation.)&lt;/p&gt;&#xA;" OwnerUserId="5149" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-25T01:44:03.153" LastActivityDate="2010-11-25T01:44:03.153" CommentCount="4" />
  <row Id="13009" PostTypeId="2" ParentId="13000" CreationDate="2010-10-19T15:28:04.203" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Citeseer, Google Scholar&lt;/strong&gt;, etc. Finding related research is a huge part of grad school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A program to help you &lt;strong&gt;organize references&lt;/strong&gt;. All the related work and papers you've read/cited. I used a spreadsheet and the Mac-based &lt;a href=&quot;http://mekentosj.com/papers/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Papers&lt;/strong&gt;&lt;/a&gt;. When it comes time to write chapter 2 of your thesis (&quot;Related Work&quot;), the work you did five years ago will be fuzzy; writing it down is essential.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good &lt;strong&gt;bibliography tool&lt;/strong&gt;. If you're using LaTeX, BibTeX is okay, but a tool like the above that can autogenerate the TeX is even better. As you craft papers for different conferences/journals, it can be overwhelming to find that one reference you really need. Tagging and categorizing things up front is helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Presentation skills&lt;/strong&gt;. If you cannot clearly and concisely explain your ideas, you will have a very hard time defending your thesis or presenting at conferences. Practice in front of the mirror, your mom, your gaming guild, whoever you can get to sit still for a minute.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Presentation software&lt;/strong&gt;. Whatever you like. &lt;strong&gt;Keynote&lt;/strong&gt; was great for me; PPT is of course the standard. Even the Google Docs equivalent. Learn to be concise and informative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://phdcomics.com&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;PhD Comics&lt;/strong&gt;&lt;/a&gt;. Because it is way too accurate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, of course, the local free-food list. ;)&lt;/p&gt;&#xA;" OwnerUserId="2983" LastEditorUserId="2983" LastEditorDisplayName="" LastEditDate="2010-10-19T15:33:40.863" LastActivityDate="2010-10-19T15:33:40.863" CommentCount="8" />
  <row Id="13010" PostTypeId="1" CreationDate="2010-10-19T15:28:09.023" Score="10" ViewCount="402" Body="&lt;p&gt;When you are under pressure, the deadline is approaching, and a manager is breathing down your neck do you find yourself starting to write bad code? Do TDD and best practices slip by the wayside in order to get things done? What do you do in situations like that? What were your experiences?&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-20T19:57:54.680" Title="Do you write bad code when under pressure?" Tags="&lt;experience&gt;&lt;work&gt;&lt;bad-code&gt;" AnswerCount="8" FavoriteCount="3" />
  <row Id="13011" PostTypeId="2" ParentId="12992" CreationDate="2010-10-19T15:29:25.257" Score="1" ViewCount="" Body="&lt;p&gt;Both student copies and MSDN copies are real copies. They are indistinguishable from copies bought and paid for in the usual manner. Further, the &quot;volume discount&quot; question linked above includes answers telling how to get one or more copies completely free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you mention Web Apps, looks like &lt;a href=&quot;http://www.microsoft.com/web/websitespark/&quot; rel=&quot;nofollow&quot;&gt;Website Spark&lt;/a&gt; is the answer for you - free Visual Studio, Expression, and more.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-19T15:29:25.257" CommentCount="6" />
  <row Id="13012" PostTypeId="2" ParentId="13006" CreationDate="2010-10-19T15:30:59.050" Score="3" ViewCount="" Body="&lt;p&gt;I think you are overwhelming yourself with the Big Picture.  Don't try to learn everything at once.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Could you read &lt;em&gt;War and Peace&lt;/em&gt; at the same time you were learning &lt;em&gt;&lt;a href=&quot;http://www.amazon.com/Marvin-Mooney-Please-MARVIN-Hardcover/dp/B002VLQ4VU/ref=sr_1_4?ie=UTF8&amp;amp;qid=1287502027&amp;amp;sr=8-4&quot; rel=&quot;nofollow&quot;&gt;Marvin K. Mooney&lt;/a&gt;&lt;/em&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pick a small task, and learn how to do it in the language of your choice.  Then enhance it.  Then enhance that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Despite the perception that all programming is either 1.) game programming or 2.) hacking into your favorite government agency (the main questions that I get when I speak at a Career Day in any high school), most of programming is not necessarily so glamorous.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Grow into it.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-10-19T15:30:59.050" CommentCount="3" />
  <row Id="13015" PostTypeId="2" ParentId="13006" CreationDate="2010-10-19T15:36:24.120" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;One of my concerns is that I know so&#xA;  little about programming languages in&#xA;  general. Is it better to learn several&#xA;  languages or to be able to delve deep&#xA;  into one single language?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't know that I can expound on much of your question, but this particular line struck me as one that I have something to offer...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While there's some merit in experimenting in a handful of different languages, what I've found (and it took me about 6 years to really see this) is that at its core, programming is programming, and languages are just syntax. The fundamentals are going to be the same across languages, and the longer you've programmed, the more you'll find that you can pick up a new language (at least to the point of basic proficiency) in almost no time. For that reason, I would say you'd be better served by diving deeper into one language and learning the craft than by trying to get a shallow understanding of several.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to how to motivate yourself to get deeper, your comment about &quot;another text-based RPG or calculator&quot; reminds me of this: the way I typically learn best is to have a project in mind. When I start out, I know that it's beyond my present capabilities, and I know that there are components in it that I have never done before and know that I don't even begin to know where to start on them. Because they are a defined part of the project, though, I have to do the research to learn. That way I'm not boxed into, &quot;Here are the tools I've already got. What new thing can I make with them?&quot;, but rather, &quot;Here's what I want to make. How do I get there?&quot;&lt;/p&gt;&#xA;" OwnerUserId="248" LastActivityDate="2010-10-19T15:36:24.120" CommentCount="6" />
  <row Id="13016" PostTypeId="2" ParentId="13010" CreationDate="2010-10-19T15:36:51.257" Score="15" ViewCount="" Body="&lt;p&gt;In a word, yes.  Anyone that tells you otherwise is probably, at best, mistaken.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the key is to build on your experience to write code that is &lt;em&gt;less&lt;/em&gt; bad.  Resist the temptation to put in something to make it &quot;just work&quot; if at all possible, because it won't.  You still need to follow some sort of process (be it your own, or your company's, or some mix thereof).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Experience tells me that its much better to (&lt;em&gt;gasp&lt;/em&gt;) slip the schedule a couple of days to prevent a week's worth of fixes, especially when &quot;under pressure&quot; means an expedited release to production.  If you are hurrying to release code, the testers are probably going to be in a hurry to rubberstamp it as well.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-10-19T15:36:51.257" CommentCount="2" />
  <row Id="13017" PostTypeId="2" ParentId="13010" CreationDate="2010-10-19T15:38:21.577" Score="12" ViewCount="" Body="&lt;h3&gt;If the team is in a crunch then something was done wrong.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Missing deadlines is a sign of poor planning and estimation. Acknowledge that the deadline will be missed and solve the issue. Sometimes you don't have control over the planning &lt;em&gt;or&lt;/em&gt; estimation. Identify who does and ensure that they know this was done in error.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a situation were the deadline cannot be moved you break out the highly caffeinated beverages and put a rush on it. Identify anything you can sacrifice and cut it out. Take what's left and implement it as fast as possible. This will cause issues such as instability, odd errors, inefficient coding practices, band-aid fixes, and all sorts of other horrors. It's not necessarily &lt;em&gt;bad&lt;/em&gt; code, but it's is &lt;strong&gt;not ideal&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A 50%-good solution that people&#xA;  actually have solves more problems and&#xA;  survives longer than a 99% solution&#xA;  that nobody has because it’s in your&#xA;  lab where you’re endlessly polishing&#xA;  the damn thing. &lt;strong&gt;Shipping is a&#xA;  feature&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;From Joel on Software &lt;em&gt;&lt;a href=&quot;http://www.joelonsoftware.com/items/2009/09/23.html&quot; rel=&quot;nofollow&quot;&gt;The Duct Tape Programmer&lt;/a&gt;&lt;/em&gt;.&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not ideal code can be dealt with &lt;em&gt;if it's dealt with&lt;/em&gt;. Code that hasn't been dealt with will pile up and in turn make additional changes harder, if not impossible. It can get to the point where the application is so inter-dependently taped together that additions can only be done by the most careful programmers at an exorbitant time cost. While shipping is a feature, so it maintainability. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-10-20T19:57:54.680" LastActivityDate="2010-10-20T19:57:54.680" CommentCount="11" />
  <row Id="13019" PostTypeId="2" ParentId="12958" CreationDate="2010-10-19T15:40:26.057" Score="2" ViewCount="" Body="&lt;p&gt;I have a few questions about this problem:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Have you brought your concern to management?&lt;/li&gt;&#xA;&lt;li&gt;Is one person abusing privileges to where others are having to pay their consequences?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;According to a recent &lt;a href=&quot;http://gmj.gallup.com/content/113542/what-followers-want-from-leaders.aspx&quot; rel=&quot;nofollow&quot;&gt;Gallup Poll&lt;/a&gt;, the question was asked &quot;what followers want from leadership&quot;. They found 4 common themes:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Trust&lt;/li&gt;&#xA;&lt;li&gt;Compassion&lt;/li&gt;&#xA;&lt;li&gt;Stability&lt;/li&gt;&#xA;&lt;li&gt;Hope&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I find it interesting that none of these include empowerment. &lt;a href=&quot;http://en.wikipedia.org/wiki/Self-Determination_Theory#Basic_needs_and_intrinsic_motivation&quot; rel=&quot;nofollow&quot;&gt;Self-Determination Theory&lt;/a&gt; claims that there are 3 key elements to foster intrinsic motivation, one being autonomy. Similar to &lt;a href=&quot;http://en.wikipedia.org/wiki/Theory_X_and_theory_Y#Theory_X&quot; rel=&quot;nofollow&quot;&gt;McGregor's X Y Theory&lt;/a&gt; on management styles, empowering employees is key to productive and creative solutions. If trust is present in leadership (both ways) then empowerment should flow naturally.&lt;/p&gt;&#xA;" OwnerUserId="5400" LastActivityDate="2010-10-19T15:40:26.057" />
  <row Id="13020" PostTypeId="2" ParentId="13010" CreationDate="2010-10-19T15:55:05.510" Score="4" ViewCount="" Body="&lt;p&gt;Hi there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a big fan of software craftsmanship - writing clean code as best I can, etc, but at times I've had to rush during moments where time is short and a deadline is approaching. I really try not do this as best I can, but sometimes you can't get away from it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people will say &quot;Well that's life, you gotta ship&quot; but I really disagree with this attitude.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When writing hurried code, you may end up getting the software out of the door on time, but what happens when, during the next few days, you end up getting support calls relating to bugs in the software (these bugs living in the same piece of code you rushed to get finished). Or you get an angry client calling you asking why their reporting module is no longer working, even though you promised it would be fine on the day of release?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's all very well saying &quot;You gotta ship&quot;, but their is a difference between looking efficient and looking like a sloppy worker.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers.&#xA;Jas.&lt;/p&gt;&#xA;" OwnerUserId="3668" LastActivityDate="2010-10-19T15:55:05.510" />
  <row Id="13021" PostTypeId="2" ParentId="13006" CreationDate="2010-10-19T15:58:47.973" Score="1" ViewCount="" Body="&lt;p&gt;I would ask myself 3 questions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What is smallest/attainable step I need to take first? Break down the long term into small bite-size tasks. &lt;/li&gt;&#xA;&lt;li&gt;Why did I get into programing in the first place? Go back to your real passion and use that as your fuel for motivation.&lt;/li&gt;&#xA;&lt;li&gt;Who do I know who can work on a project with me? Accountability is key in accomplishing tasks that seem overwhelming.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5400" LastActivityDate="2010-10-19T15:58:47.973" CommentCount="1" />
  <row Id="13025" PostTypeId="2" ParentId="13010" CreationDate="2010-10-19T16:05:01.643" Score="0" ViewCount="" Body="&lt;p&gt;Depends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is the pressure because there is no way everything can get done and because major new features are being added hours before release?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad code coming up!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if it is because the schedule is simply really really tight but the overall plan is solid and I just have to work much harder than usual and keep continually focused while tweaking a few features hear and there... Then I produce much better code than if the schedule allows tons of time. Even if it means I don't get all the unit tests written but cover the major parts of the code.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-10-19T16:05:01.643" CommentCount="3" />
  <row Id="13026" PostTypeId="2" ParentId="12925" CreationDate="2010-10-19T16:05:51.440" Score="1" ViewCount="" Body="&lt;p&gt;For software development, there is an organization based in the UK called &lt;a href=&quot;http://accu.org&quot; rel=&quot;nofollow&quot;&gt;ACCU&lt;/a&gt;.  It used to stand for &lt;em&gt;Association of C and C++ Users&lt;/em&gt;, but has morphed into something that covers all aspects of professional software development and various languages.  It is focused on people who develop software or a living, so its more applied and less academic that ACM or IEEE journals.  They also host a annual conference that attracts so big names in the software community.  Last year included Robert Martin (Uncle Bob), Tom Gilb, Andrei Alexandrescu, Walter Bright, Kevlin Henney, Michael Stal , James Coplien, Diomidis Spinellis, and John Lakos.&lt;/p&gt;&#xA;" OwnerUserId="1427" LastActivityDate="2010-10-19T16:05:51.440" />
  <row Id="13028" PostTypeId="2" ParentId="12949" CreationDate="2010-10-19T16:09:37.950" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;As much as the client is prepared to pay.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any more and the client won't buy. Any less and the developer is selling the IP for less than its market value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, how much is that?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) How much would it cost to have someone else redevelop the product? All else being equal, the developer should charge a little less to ensure that s/he gets the business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) How urgent is the IP aquisition? It it is urgent, the developer can charge a premium for producing the source code immediately whereas another vender will have to work on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Are there any other benefits that the client has for buying from the developer? Or from elsewhere? The developer can charge for the former, discount for the latter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interestingly, the original cost of developing the product and its original licencing cost need have little to do with the present price of the IP, despite the appeal factoring these in to the sale price.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, having decided on price point, the developer must decide if s/he is willing to sell at that price. This should be based on any long-term gains / losses from selling the IP:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;a) Will transfer of the IP result in lost revenue? For example, retaining the IP may mean that the developer will be paid for updates and enhancements to the original product. Are these losses covered by the payment for the IP?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;b) Will retaining the IP damage the relationship with the client, resulting in loss of future business? Or will the sale result in recommendations to other clients?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, the developer and client need a clear and accurate &lt;em&gt;written&lt;/em&gt; record regarding the  terms of both the original licencing agreement and the terms of the IP sale.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-10-19T16:09:37.950" />
  <row Id="13031" PostTypeId="2" ParentId="12877" CreationDate="2010-10-19T16:15:16.127" Score="0" ViewCount="" Body="&lt;p&gt;Pad and pen (useful for scribbling out ideas or quick notes for someone else)&#xA;Post-it notes (mainly for noting down a bug reference so I can go ask someone else about it)&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-19T16:15:16.127" />
  <row Id="13032" PostTypeId="2" ParentId="2042" CreationDate="2010-10-19T16:17:50.950" Score="1" ViewCount="" Body="&lt;p&gt;Bear with me, as this will have a distinctively .Net flavour :p&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With regard to types of projects that are amenable to the test-first approach, some things I'd look out for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;are you dealing with an existing code base? It's often prohibitively expensive to retrofit that a test suite in. Get an idea of how much inherited technical debt is there&lt;/li&gt;&#xA;&lt;li&gt;certain platforms and frameworks are inherently test-unfriendly. Recent experience that is seared into my mind - SharePoint, for example is very hard (but not impossible) to TDD. For stuff like this, you may have to resort to a commercial isolator product like TypeMock can help. &lt;/li&gt;&#xA;&lt;li&gt;certain implementation approaches lend themselves better to TDD than others. For example, ASP.Net with code-behinds - not so testable. ASP.Net MVC - testable. Silverlight with code-behinds - not so testable. Silverlight with MVVM - testable.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Ultimately, while &quot;the organization&quot; can do a lot to support the move to test-first, the key shift that needs to happen is in the developers' minds. I've given up on the &quot;thou shalt write thine tests first&quot; approach and instead look for teachable moments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;+1 on mpenrow's comment about not telling mgmt if they have an issue with it :p&lt;/p&gt;&#xA;" OwnerUserId="5677" LastActivityDate="2010-10-19T16:17:50.950" />
  <row Id="13033" PostTypeId="2" ParentId="13010" CreationDate="2010-10-19T16:19:34.273" Score="2" ViewCount="" Body="&lt;p&gt;When I am under a stress situation, my code is meant to get the work done. Thats it. I do not concentrate on efficiency and other issues, which is bad, in my opnion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will work on it though.&lt;/p&gt;&#xA;" OwnerUserId="5443" LastActivityDate="2010-10-19T16:19:34.273" />
  <row Id="13034" PostTypeId="1" AcceptedAnswerId="13092" CreationDate="2010-10-19T16:26:59.127" Score="7" ViewCount="292" Body="&lt;p&gt;Recently I worked with a group to create a logging system for tutoring labs to track Tutor hours, and usage of the labs. We had to change the design a fair amount to be in compliance with FERPA. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question stems from the curiosity that in my course of study there has never been a real mention of how people in this field have to deal with complying with the law in their work. So I would like to know how much programmers have to consider the law in the work they do. &lt;/p&gt;&#xA;" OwnerUserId="5292" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-19T19:46:43.250" LastActivityDate="2011-01-13T18:27:01.813" Title="What legal considerations do I need to have when programming?" Tags="&lt;legal&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="1" />
  <row Id="13035" PostTypeId="2" ParentId="13006" CreationDate="2010-10-19T16:27:42.220" Score="1" ViewCount="" Body="&lt;p&gt;As the others said, take baby steps. You make progress faster that way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, you need inspiration. I got that from&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Isaac Asimov, &quot;I Robot&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Marvin Minsky, &quot;Computation: Finite and Infinite Machines&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-10-19T16:27:42.220" />
  <row Id="13036" PostTypeId="2" ParentId="3747" CreationDate="2010-10-19T16:28:30.717" Score="2" ViewCount="" Body="&lt;p&gt;First, create a category for typical changes in terms of SLOC (and function points if it involves changes to UI elements.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then look at previous code changes and see where they fit in the category model described above. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do the same for new features (that is, treat code changes and new features differently unless a new feature involves significant change/cost on the existing code base.) If integrating a new feature is trivial, separate it from code changes. If its integration with existing code base is significantly costly, lump it with the code changes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, for each categorized code change (or new feature), determine &lt;strong&gt;1)&lt;/strong&gt; how long it took to complete, &lt;strong&gt;2)&lt;/strong&gt; how long was it supposed to take to complete, &lt;strong&gt;3)&lt;/strong&gt; how many people were actually involved in the completion, and &lt;strong&gt;4)&lt;/strong&gt; how many people were initially thought to be required for its completion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So now you should have a tabular presentation of delivered artifacts (code changes and new features), each with columns indicating estimated and actual resources (hours, people) consumed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can then assume a ballpark average engineer salary/hour (say $40/hr). Multiply that by 2 to indicate total cost of engineer/hour (an estimation of hourly salary, electricity, office amenities and rental, etc.) It doesn't have to be accurate, just realistic enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For each delivered artifact &lt;em&gt;A&lt;/em&gt;, you can compute the following:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;estimated_cost(A) := avg_hr_salary * estimated_hours(A) * estimated_people(A)&#xA;&#xA;approx_cost(A) := avg_hr_salary * (actual_hours(A) + estimated_hours(A))/2 * (actual_people(A) + estimated_people(A)/2&#xA;&#xA;max_cost(A) := avg_hr_salary * actual_hours(A) * actual_people(A)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;With these relations (which must be based on actual code changes or new items... otherwise they are meaningless), you can can calculate (per category size), what is the % of a &lt;strong&gt;code change&lt;/strong&gt; of that size to deviate from the estimated size (a % of failure), the approximate cost as well as the % the code change might actually reach a max. cost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Chances are the % for maximally deviating from the estimated (minimal) cost resembles more and more a exponential distributation the larger the code change is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that date, you can tell your customer the following:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;You to your customer:&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;This change you are requesting (A)&#xA;  might take 10K SLOC, &lt;strong&gt;on the old code&#xA;  base&lt;/strong&gt;. Historical data indicates that&#xA;  it might take 2 people at a minimum&#xA;  (estimate_people), possibly escalating&#xA;  up to 3 people (actual_people). The&#xA;  probability of the change to cost&#xA;  (estimate_cost) is A%; B% for&#xA;  approx_cost, and %C for max_cost.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Now, this is key. You have to do the same computations for &lt;em&gt;new requests&lt;/em&gt; (the type whose integration with the old code base involves not-significant changes on the later).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you find that the estimated, approx and max costs for &lt;em&gt;new requests&lt;/em&gt; of a given size is (hopefully) significantly less than the costs of old codebase changes of the same size, &lt;strong&gt;&lt;em&gt;THEN&lt;/em&gt;&lt;/strong&gt; you have an argument for a code rewrite. You have given sufficient evidence that the old code base is expensive to change compared to changes of the same magnitude in new code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if the costs of new code requests do not greatly diverge from old code changes of the same magnitude, you will have a hard time justifying  a code rewrite (and it might indicate that the problems are not only to the code base, but also in your development practices.)&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-19T16:28:30.717" CommentCount="3" />
  <row Id="13037" PostTypeId="2" ParentId="13034" CreationDate="2010-10-19T16:30:48.920" Score="1" ViewCount="" Body="&lt;p&gt;well, as my products are for the Public Safety sector (911 software, etc.) pretty much every day.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-19T16:30:48.920" />
  <row Id="13038" PostTypeId="2" ParentId="3747" CreationDate="2010-10-19T16:38:16.627" Score="7" ViewCount="" Body="&lt;p&gt;Think extremely carefully before any rewrite. Read Joel Spolsky's blog post,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000069.html&quot; rel=&quot;nofollow&quot;&gt;Things you should never do&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-19T16:38:16.627" />
  <row Id="13039" PostTypeId="2" ParentId="7859" CreationDate="2010-10-19T16:44:15.697" Score="5" ViewCount="" Body="&lt;p&gt;For &quot;the Agile process&quot; - I'd recommend Mike Cohn's &quot;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131479415&quot; rel=&quot;nofollow&quot;&gt;Agile Estimating and Planning&lt;/a&gt;&quot; - bearing in mind that it's Scrum-centric.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/gHh2v.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cohn covers a lot of the basics as well as some of the things new Scrum teams often struggle with - estimation using Story Points vs. Ideal days, what do do if you fail a story in a sprint, when to re-estimate/size and when not to, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He also goes into some really interesting stuff that's mainly the domain of a Product Owner - things like how to assess and prioritize features, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This book is on the top of my list whenever I'm asked about Scrum.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as technical practices go, I highly recommend Roy Osherove's &quot;&lt;a href=&quot;http://artofunittesting.com/&quot; rel=&quot;nofollow&quot;&gt;The Art of Unit Testing&lt;/a&gt;&quot;. Osherove presents a very pragmatic approach to unit testing. Presents a good approach on how to &lt;em&gt;refactor&lt;/em&gt; code to become more testable, how to look for seams, etc. It is a .Net centric book, however. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/YhWBs.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="5677" LastActivityDate="2010-10-19T16:44:15.697" CommentCount="2" />
  <row Id="13040" PostTypeId="1" CreationDate="2010-10-19T16:56:32.077" Score="0" ViewCount="94" Body="&lt;p&gt;For my software product manuals I use OpenOffice (and export to PDF). Now I would like to &quot;brush up&quot; some manuals, and iirc there are many plugins for OpenOffice available - do you know anything which would make manual authoring easier?&lt;/p&gt;&#xA;" OwnerUserId="1473" LastActivityDate="2010-10-19T16:56:32.077" ClosedDate="2010-10-21T10:55:14.447" Title="OpenOffice.org Writer templates and extensions for software manual authoring?" Tags="&lt;software&gt;&lt;documentation&gt;&lt;plugins&gt;" CommentCount="2" />
  <row Id="13041" PostTypeId="2" ParentId="12958" CreationDate="2010-10-19T16:57:12.000" Score="4" ViewCount="" Body="&lt;p&gt;I think the most demotivating thing of all (and I do not have this issue in my current company) is being expected to work overtime for no pay to meet some arbitrary deadline and then watching him get rewarded financially for the successful project completion but not me. Remind me again why I should give up my personal time so you can get a big bonus?&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-19T16:57:12.000" CommentCount="1" />
  <row Id="13042" PostTypeId="2" ParentId="13001" CreationDate="2010-10-19T16:59:35.870" Score="1" ViewCount="" Body="&lt;p&gt;Broadly speaking, if you use the repository timestamp then everything is consistent across multiple machines if you use the pull time you haven't got a clue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Further, if you use the commit timestamp you can see, just by looking at the file, when it was last modified whereas if you use the pull time... well all you know is the last pull time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This becomes particularly fun if, for example, you're trying to work out if file on a website is right and which files (when its a small number from a bit site) need to be updated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now that I've calmed down a teeny bit I do actually understand what you mean about the build issues but pragmatically its easy enough to force a complete rebuild (or it should be) but once you lose a timestamp you can't get it back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Put bluntly, I've had a lot of pain doing it your way and avoided a lot doing it the other way (though that may in turn be a reflection of the dev tools and deployment issues I have)&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-10-19T16:59:35.870" />
  <row Id="13043" PostTypeId="2" ParentId="12958" CreationDate="2010-10-19T17:17:22.023" Score="2" ViewCount="" Body="&lt;p&gt;I guess to some extent, &quot;the thing that your manager does that mostly decreases your motivation&quot; depends on what motivates you personally :p&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you agree with Daniel Pink's &lt;a href=&quot;http://www.danpink.com/drive&quot; rel=&quot;nofollow&quot;&gt;take&lt;/a&gt; on motivation, that we are driven by three key needs:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;autonomy&lt;/li&gt;&#xA;&lt;li&gt;mastery&lt;/li&gt;&#xA;&lt;li&gt;purpose&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;...then I'd say that management can kill your motivation by encouraging or demonstrating behaviour that runs counter to that:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;taking away autonomy, e.g. not&#xA;trusting that you can determine &lt;em&gt;how&lt;/em&gt;&#xA;best to do your job&lt;/li&gt;&#xA;&lt;li&gt;encouraging mediocrity&lt;/li&gt;&#xA;&lt;li&gt;taking away the meaning in your work.&#xA;For example, by chasing goals or&#xA;exhibiting values that aren't&#xA;meaningful to you&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Ultimately, I for me, I had to be clear on what &lt;em&gt;I&lt;/em&gt; was all about before I could really put my finger on why &quot;management&quot; wasn't motivating me.&lt;/p&gt;&#xA;" OwnerUserId="5677" LastActivityDate="2010-10-19T17:17:22.023" />
  <row Id="13044" PostTypeId="1" CreationDate="2010-10-19T17:21:16.187" Score="4" ViewCount="360" Body="&lt;p&gt;What is the most ridiculous manual process (which could have quite easily been automated) that you have encountered?  How long had it been going on?  Did you suggest an alternative and what was the response?&lt;/p&gt;&#xA;" OwnerUserId="4526" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-10-19T21:21:47.887" LastActivityDate="2010-10-20T13:12:41.417" Title="Most ridiculous manual process you have encountered" Tags="&lt;corporate-procedures&gt;" AnswerCount="10" CommentCount="1" />
  <row Id="13045" PostTypeId="1" CreationDate="2010-10-19T17:23:26.860" Score="4" ViewCount="212" Body="&lt;p&gt;I was told not to use Jquery as a beginner because it would hamper my learning of Javascript.  Now I've read a couple books on Javascript, read loads of sites, and made a Javascript web app.  Am I ready for Jquery? If not, then how will I know when I'm ready?&lt;/p&gt;&#xA;" LastActivityDate="2010-10-19T19:36:50.193" Title="When am I ready to start using Jquery for Javascript?" Tags="&lt;javascript&gt;&lt;jquery&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="1" />
  <row Id="13046" PostTypeId="2" ParentId="12958" CreationDate="2010-10-19T17:24:00.133" Score="0" ViewCount="" Body="&lt;p&gt;I once had to directly ask my manager not to be negative about our situation as a company when he talks to me, because while I'm aware that we have our ups and downs, I tend to be depressed and unmotivated when he tells me we're not doing well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also asked him to provide me with more positive feedback, because people tend to come to me with all the complaints about bugs etc., and when stuff works they just go about their day.&lt;/p&gt;&#xA;" OwnerUserId="290" LastActivityDate="2010-10-19T17:24:00.133" />
  <row Id="13047" PostTypeId="2" ParentId="13044" CreationDate="2010-10-19T17:26:26.120" Score="5" ViewCount="" Body="&lt;p&gt;Having to enter into timesheets the exact same information that's already in the CR tracking program, and then make a weekly report of everything you've worked on the last week, which could have easily been scraped from either source.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-19T17:26:26.120" CommentCount="2" />
  <row Id="13048" PostTypeId="2" ParentId="989" CreationDate="2010-10-19T17:26:59.597" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://entlib.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;Enterprise Library&lt;/a&gt; has a logging application block that works well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I don't know about frameworks but I have enjoyed building and using some AOP logging aspects in a library of mine. Nothing is easier than putting [Log] on a method to have it logged (or, almost as easy for an entire project). &lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-19T17:26:59.597" />
  <row Id="13049" PostTypeId="2" ParentId="13044" CreationDate="2010-10-19T17:28:25.950" Score="8" ViewCount="" Body="&lt;p&gt;One guy's job every morning was to come in and open up phpMyAdmin on the production servers and download all the databases, zip them up and place them into folders that were labeled with today's date. Took him 90 minutes every morning. I wrote shell scripts to automate the process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He is doing much more productive things with that time now.&lt;/p&gt;&#xA;" OwnerUserId="3881" LastActivityDate="2010-10-19T17:28:25.950" CommentCount="2" />
  <row Id="13050" PostTypeId="2" ParentId="13045" CreationDate="2010-10-19T17:34:46.420" Score="7" ViewCount="" Body="&lt;p&gt;Wow, I know this may go against some people's ideas about crawling then walking and then running.  But Javascript is not some awesome language you need to totally understand and then you'll be a whizbang programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just use JQuery and have fun.  Use it wiseley, use it cleverly!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did my company's website 3 years ago with just Javascript and replaced nearly everything I did with JQuery over the last year.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowing every last IE6 browser quirk is not going to help in the long run, so just go for it man!&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-19T17:34:46.420" CommentCount="16" />
  <row Id="13051" PostTypeId="2" ParentId="13044" CreationDate="2010-10-19T17:35:48.993" Score="24" ViewCount="" Body="&lt;p&gt;Oh, boy... Pretty much any process done around my workplace... For example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Customer wants to be emailed an invoice. First, the invoice is printed. Then, the invoice is scanned. It is run through the printer's OCR program. Then anything the OCR got wrong is manually corrected. It is saved as a Word document. Opened over in OpenOffice. Exported as a PDF. Emailed to the customer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've offered any number of solutions, all of them turned down. All of them rejected because it would require a bit of learning. Unacceptable for the Boss's wife.&lt;/p&gt;&#xA;" OwnerUserId="5169" LastActivityDate="2010-10-19T17:35:48.993" CommentCount="11" />
  <row Id="13052" PostTypeId="2" ParentId="1380" CreationDate="2010-10-19T17:37:44.070" Score="2" ViewCount="" Body="&lt;p&gt;Coverage is &lt;strong&gt;a&lt;/strong&gt; metric to keep an eye on, but it shouldn't be the ultimate goal. I've seen (and admittedly written!) plenty of high coverage code - 100% coverage (TDD, of course), yet:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;bugs still come up&lt;/li&gt;&#xA;&lt;li&gt;design can still be poor&lt;/li&gt;&#xA;&lt;li&gt;you can really kill yourself shooting for some arbitrary coverage target - pick your battles :p&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There's a &quot;The Way of Testivus&quot; &lt;a href=&quot;http://www.artima.com/weblogs/viewpost.jsp?thread=204677&quot; rel=&quot;nofollow&quot;&gt;entry&lt;/a&gt; that I think is appropriate to reference here :)&lt;/p&gt;&#xA;" OwnerUserId="5677" LastActivityDate="2010-10-19T17:37:44.070" />
  <row Id="13053" PostTypeId="1" CreationDate="2010-10-19T17:42:16.790" Score="6" ViewCount="206" Body="&lt;p&gt;Which was the first language with generic programming support, and what was the first major staticly typed language (widely used) with generics support. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generics implement the concept of parameterized types to allow for multiple types. The term generic means &quot;pertaining to or appropriate to large groups of classes.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have seen the following mentions of &quot;first&quot;: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;First-order parametric polymorphism is now a standard element of statically typed programming languages. Starting with System F [20,42] and functional programming lan- guages, the constructs have found their way into mainstream languages such as Java and C#. In these languages, first-order parametric polymorphism is usually called generics.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;From &quot;&lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.135.575&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;Generics of a Higher Kind&quot;&lt;/a&gt;, Adriaan Moors, Frank Piessens, and Martin Odersky&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Generic programming is a style of computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated when needed for specific types provided as parameters. This approach, pioneered by Ada in 1983&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;From Wikipedia &lt;a href=&quot;http://en.wikipedia.org/wiki/Generic_programming&quot; rel=&quot;nofollow&quot;&gt;Generic Programming&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1925" LastEditorUserId="1925" LastEditorDisplayName="" LastEditDate="2010-10-24T18:57:08.100" LastActivityDate="2011-02-10T21:05:38.640" Title="First languages with generic programming support" Tags="&lt;programming-languages&gt;&lt;history&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="13054" PostTypeId="2" ParentId="3747" CreationDate="2010-10-19T17:43:58.817" Score="1" ViewCount="" Body="&lt;p&gt;If at all possible do what you can to make the application better as it is right now. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are dissatisfied about the documentation, then after you have spent time figuring things out &lt;em&gt;WRITE THEM DOWN&lt;/em&gt; for the next maintainence session.  Frequently when you see a code base for the first time, just a short lists of &quot;therefores&quot; (to answer the whys the code cannot) can help immensely understanding what goes on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Improve incrementally!  &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-19T17:43:58.817" />
  <row Id="13056" PostTypeId="2" ParentId="12777" CreationDate="2010-10-19T17:51:22.167" Score="2" ViewCount="" Body="&lt;p&gt;While my respect for C.A.R. Hoare is immense, I am of the opinion that &lt;code&gt;null&lt;/code&gt; is fundamental. Any attempt to get around having an explicit representation of &quot;nothing&quot; results in...a representation of &quot;nothing&quot;!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Call it what you will (&lt;code&gt;NullObjectPattern&lt;/code&gt;, &lt;code&gt;NONE&lt;/code&gt; value, &lt;code&gt;NIL&lt;/code&gt;, etc.), &lt;code&gt;null&lt;/code&gt; is unavoidable.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-10-19T17:51:22.167" CommentCount="12" />
  <row Id="13057" PostTypeId="2" ParentId="12807" CreationDate="2010-10-19T17:57:22.727" Score="3" ViewCount="" Body="&lt;p&gt;You think that's bad? How about:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(someCondition) {&#xA;  return true;&#xA;} else {&#xA;  return false;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3834" LastActivityDate="2010-10-19T17:57:22.727" CommunityOwnedDate="2010-10-19T17:57:22.727" CommentCount="1" />
  <row Id="13058" PostTypeId="2" ParentId="13044" CreationDate="2010-10-19T18:05:13.153" Score="4" ViewCount="" Body="&lt;p&gt;We had a 260 step build process that if one step failed had to be started over.  On average taking two work days to complete.  After scripting and using xoreax I got it down two hours but I couldn't believe the resistance to automating even such an odious process.&lt;/p&gt;&#xA;" OwnerUserId="4553" LastActivityDate="2010-10-19T18:05:13.153" />
  <row Id="13059" PostTypeId="2" ParentId="13044" CreationDate="2010-10-19T18:08:39.517" Score="7" ViewCount="" Body="&lt;p&gt;The &quot;distributed source control&quot; that I saw at one previous job.  Everyone had a copy of the code and a central repository (actually, one dev's copy of the code).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When someone made a change, they had to coordinate with the lead dev to make sure they weren't overwriting something else.  Every so often (usually when the lead published) all the devs needed to &quot;get latest&quot; by copying the lead's contents to their machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All this while a Visual SourceSafe instance was running on one of the servers...  What did I do??  I started using VSS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Granted VSS sucks and Mercurial would've fit in nicely there but this was pre-Mercurial)&lt;/p&gt;&#xA;" OwnerUserId="4082" LastActivityDate="2010-10-19T18:08:39.517" CommentCount="1" />
  <row Id="13060" PostTypeId="2" ParentId="13045" CreationDate="2010-10-19T18:29:29.263" Score="2" ViewCount="" Body="&lt;h2&gt;Should have already started&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;jQuery is the only syntactic sugar I find indispensable for daily development. Selectors and events make everything more pleasing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prototype and MooTools alter the way you write JavaScript while jQuery merely fills in the gaping holes that span between browsers.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-19T18:29:29.263" />
  <row Id="13061" PostTypeId="1" CreationDate="2010-10-19T18:32:48.153" Score="9" ViewCount="441" Body="&lt;p&gt;I was just thinking of something that would be really cool to have in my if-elif-else controls.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&#xA;if condition:&#xA;    stuff()&#xA;elif condition:&#xA;    otherstuff()&#xA;then:&#xA;    stuff_that_applies_to_both()&#xA;else:&#xA;    stuff_that_doesnt_aply_to_either()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So basically a &lt;code&gt;then&lt;/code&gt; will be run when any of the conditions are run EXCEPT the else condition. Do you think this is useful? It's similar to the try-except-else of python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think some of you are nitpicking a very preliminary implementation. The &lt;code&gt;then&lt;/code&gt; block would be just like the &lt;code&gt;else&lt;/code&gt; block in a &lt;code&gt;try-except&lt;/code&gt; block in python. The real reason I suggest this is for situations like this.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&#xA;m = {}&#xA;if condition == '1':&#xA;    m['condition'] = condition&#xA;elif condition2 == '3':&#xA;    m['condition2'] = condition2&#xA;elif condition3 == 'False':&#xA;    m['condition3'] = True&#xA;then:&#xA;    run_test_that_relies_on_one_of_the_conditions_being_true()&#xA;&#xA;return m&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The &lt;code&gt;then&lt;/code&gt; block is scoped to the first if just like the &lt;code&gt;else&lt;/code&gt; is. So nesting works fine. And if you need to run a method before the if statements, that really has nothing to do with this use case.&lt;/p&gt;&#xA;" OwnerUserId="1369" LastEditorUserId="1369" LastEditorDisplayName="" LastEditDate="2010-10-19T19:59:15.607" LastActivityDate="2010-10-26T21:28:45.807" Title="What do you think of this new if-then syntax" Tags="&lt;syntax&gt;" AnswerCount="5" CommentCount="11" />
  <row Id="13062" PostTypeId="2" ParentId="12416" CreationDate="2010-10-19T18:33:32.433" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://merl.com&quot; rel=&quot;nofollow&quot;&gt;MERL - Mitsubishi Electric Research Laboratories&lt;/a&gt;, with locations in Cambridge, MA and Murray Hill, NJ. Lesser known but doing lots of interesting stuff.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-10-19T18:33:32.433" />
  <row Id="13063" PostTypeId="2" ParentId="12971" CreationDate="2010-10-19T18:37:49.113" Score="4" ViewCount="" Body="&lt;h2&gt;WARNING:&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Keep monetary rewards separate from social rewards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please read &lt;a href=&quot;http://www.spring.org.uk/2008/04/social-versus-financial-thinking-when.php&quot; rel=&quot;nofollow&quot;&gt;this article&lt;/a&gt; for further explaination.&lt;/p&gt;&#xA;" OwnerUserId="5400" LastActivityDate="2010-10-19T18:37:49.113" CommentCount="2" />
  <row Id="13064" PostTypeId="2" ParentId="13045" CreationDate="2010-10-19T18:45:11.530" Score="1" ViewCount="" Body="&lt;p&gt;You don't have to listen to everything people say. Just download jQuery and start using it. Who cares if someone told you not to use it while you're a &quot;beginner&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point is to write the best code you can, not to be a slave to every silly opinion another programmer has.&lt;/p&gt;&#xA;" OwnerUserId="4881" LastActivityDate="2010-10-19T18:45:11.530" CommentCount="1" />
  <row Id="13065" PostTypeId="2" ParentId="11062" CreationDate="2010-10-19T18:47:50.737" Score="1" ViewCount="" Body="&lt;p&gt;I do have a caveat about overestimating how long it will take you to do something.  There is a saying, often attributed to Abraham Lincoln: &quot;If I am given six hours to cut down a tree, I will spend the first five sharpening my axe.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to find that if I have until December 1 to complete something, it will be done on November 31 even if I wasn't procrastinating.  If I have until November 1 to do the same thing, it will be done on October 31.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-19T18:47:50.737" CommentCount="2" />
  <row Id="13066" PostTypeId="2" ParentId="13061" CreationDate="2010-10-19T18:51:25.637" Score="10" ViewCount="" Body="&lt;p&gt;I think it looks horrible. If you want code to run after a variety of conditions then either (a) recheck those conditions or (b) set a variable to indicated success status.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-19T18:51:25.637" CommentCount="3" />
  <row Id="13067" PostTypeId="2" ParentId="13061" CreationDate="2010-10-19T18:51:41.203" Score="11" ViewCount="" Body="&lt;p&gt;Generally you can already do this with a switch/case and a switch/case provides more fine tuned control over what you are proposing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also doesn't read properly logically.  If A else if B then C.  Doesn't imply to someone that C will be executed if either A or B evaluate to true.  &lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-10-19T18:51:41.203" CommentCount="4" />
  <row Id="13068" PostTypeId="2" ParentId="13061" CreationDate="2010-10-19T18:52:04.877" Score="4" ViewCount="" Body="&lt;p&gt;Interesting, but seems to me (admittedly somewhat set in my ways) an invitation for readability, logic, and syntax problems.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: &#xA;&lt;strike&gt;Your if-elif is very simple - what if there were 10 elifs?  20?  Would all conditions need to be true?  What are the chances of that?&lt;/strike&gt;&lt;br /&gt;&#xA;Your if-elif is very simple - what if there were 10 elifs?  20?  Wouldn't that make this fairly unreadable?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, can easily be achieved by tried-and-true established methodology:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (thisCondition or thatCondition)&#xA;{&#xA;  if (thisCondition)&#xA;     stuff();&#xA;  else&#xA;     otherstuff();&#xA;&#xA;    stuff_that_applies_to_both();&#xA;}&#xA;else&#xA;{&#xA;    stuff_that_doesn't_aply_sic_to_either();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;What happens if &quot;stuff_that_applies_to_both&quot; needs to happen before the individual steps?  Your code doesn't handle this case:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (thisCondition or thatCondition)&#xA;{&#xA;  stuff_that_applies_to_both();&#xA;&#xA;  if (thisCondition)&#xA;     stuff();&#xA;  else&#xA;     otherstuff();&#xA;}&#xA;else&#xA;{&#xA;    stuff_that_doesn't_aply_sic_to_either();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Finally, this syntax allows for greater flexibility with more conditions:&#xA;    if (thisCondition or thatCondition or anotherCondition)&#xA;    {&#xA;      stuff_that_applies_to_all();&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  // Any combination of the three conditions using &#xA;  // whichever logical syntax you'd like here&#xA;  if (thisCondition and anotherCondition)&#xA;     stuff();&#xA;  else if (thisCondition or thatCondition)&#xA;     stuff_number_2();&#xA;  else&#xA;     otherstuff();&#xA;}&#xA;else&#xA;{&#xA;    stuff_that_doesn't_aply_sic_to_either();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I have been using if/else, but could have as easily used a switch statement with a flag:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Boolean conditionApplies = true;&#xA;&#xA;switch (someConditionToCheck)&#xA;{&#xA;    case thisCondition:&#xA;      stuff();&#xA;      break;&#xA;&#xA;    case thatCondition:&#xA;        otherStuff();&#xA;        break;&#xA;&#xA;    default:&#xA;        stuff_that_doesnt_aply_sic_to_either();&#xA;        conditionApplies = false;&#xA;        break;&#xA;}&#xA;&#xA;if (conditionApplies)&#xA;    stuff_that_applies_to_both();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Note that I didn't actually need the conditionApplies flag - I could have added the &quot;stuff_that_applies_to_both()&quot; function to both the non-default conditions - I just did this so it looks more like the syntax defined above, albeit the &quot;then&quot; rather than the &quot;else&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, it seems to me to be a very specialized syntax, where a more general syntax fills the bill and more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;+1 for thinking of a possible feature (keep doing that!), but I wouldn't vote to implement it.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastEditorUserId="5030" LastEditorDisplayName="" LastEditDate="2010-10-19T20:43:24.993" LastActivityDate="2010-10-19T20:43:24.993" CommentCount="11" />
  <row Id="13069" PostTypeId="2" ParentId="13001" CreationDate="2010-10-19T18:57:15.967" Score="2" ViewCount="" Body="&lt;p&gt;See the tools in the contexts for which they were built.  Version control systems are primarily made to track content of source files.  They usually only track very little file metadata (executable bit, usually), because you don't need that for managing source code.  The timestamp of the file on disk needs to be changed whenever the file is actually changed on your local disk so that your local build tools behave correctly.  If you say you need to timestamp to be able to tell which file is which, well, the version control system is there to tell which file is which by means of the all the versions it controls.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If what you actually need is  not a source code management tool but a deployment or backup tool, then you should use a tool made for that.  All the tools is that area, such as tar, rsync, rpm, dpkg, preserve file modification timestamps and other metadata, because that is necessary or desirable for their job.&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-10-19T18:57:15.967" />
  <row Id="13070" PostTypeId="2" ParentId="12416" CreationDate="2010-10-19T19:06:58.063" Score="3" ViewCount="" Body="&lt;p&gt;Reprazenting da UK&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.gatsby.ucl.ac.uk/&quot; rel=&quot;nofollow&quot;&gt;Computational Neuroscience&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.sussex.ac.uk/informatics/&quot; rel=&quot;nofollow&quot;&gt;Sussex, specialists in artificial life/artificial evolution&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.cl.cam.ac.uk/&quot; rel=&quot;nofollow&quot;&gt;Cambridge&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.comlab.ox.ac.uk/&quot; rel=&quot;nofollow&quot;&gt;Oxford&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-10-19T19:06:58.063" CommentCount="3" />
  <row Id="13071" PostTypeId="2" ParentId="13061" CreationDate="2010-10-19T19:07:59.703" Score="3" ViewCount="" Body="&lt;p&gt;I wouldn't mind using something like this myself today. But, to be sure I'd use it about as often as I use repeat until.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code would at least look better without the superfluous nesting. Although I prefer &lt;code&gt;Else If&lt;/code&gt; to &lt;code&gt;elif&lt;/code&gt;.  I'd replace the &lt;code&gt;Then&lt;/code&gt; with &lt;code&gt;Do&lt;/code&gt; and the final &lt;code&gt;Else&lt;/code&gt; with &lt;code&gt;Otherwise&lt;/code&gt;.  &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-19T19:07:59.703" CommentCount="3" />
  <row Id="13072" PostTypeId="1" CreationDate="2010-10-19T19:18:03.003" Score="5" ViewCount="903" Body="&lt;p&gt;I was looking at &lt;a href=&quot;http://programmers.stackexchange.com/questions/13061/what-do-you-think-of-this-new-if-then-syntax&quot;&gt;this question today&lt;/a&gt; and I started thinking about alternatives to &lt;code&gt;if&lt;/code&gt;. What are the most common ones out there? I know Ruby has an &lt;code&gt;unless&lt;/code&gt; but that's just an &lt;code&gt;if&lt;/code&gt; backwards. It also has one-line tack-if-at-end-of-line things, which we have in Java/C# but we usually put in a carriage return. Anything really different out there in other languages?&lt;/p&gt;&#xA;" OwnerUserId="4688" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:10:06.400" LastActivityDate="2010-11-16T15:10:06.400" ClosedDate="2010-10-21T17:16:52.777" Title="Alternatives to If-else Statement" Tags="&lt;programming-languages&gt;&lt;software-engineering&gt;&lt;design-patterns&gt;&lt;syntax&gt;" AnswerCount="15" CommentCount="3" FavoriteCount="1" />
  <row Id="13073" PostTypeId="2" ParentId="13072" CreationDate="2010-10-19T19:23:55.443" Score="3" ViewCount="" Body="&lt;p&gt;I wrote a language with &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;if&lt;/code&gt;, &lt;code&gt;andif&lt;/code&gt;, &lt;code&gt;orif&lt;/code&gt;, &lt;code&gt;then&lt;/code&gt;, &lt;code&gt;otherwise&lt;/code&gt; and &lt;code&gt;do&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;got everything done and never needs to nest anything. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's the first part of the language:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;FormulaRoot         -&amp;gt; Do ReadActionList | Do WriteActionList | &#xA;                        If FactorCommandListThenListElse | If FactorThenListElse                             | Formula RepeatSegment | Formula RepeatField&#xA;&#xA;Formula             -&amp;gt; Do ReadActionList | Do WriteActionList | &#xA;                        If FactorCommandListThenListElse | If FactorThenListElse&#xA;Do                  -&amp;gt; 'do'&#xA;&#xA;If                                -&amp;gt; 'If'         &#xA;FactorcommandListThenListElse     -&amp;gt; Factor CommandListThenListElse&#xA;FactorThenListElse                -&amp;gt; Factor ThenListElse | Factor ThenList&#xA;CommandListThenListElse           -&amp;gt; CommandList ThenListElse | &#xA;                                     CommandList ThenList&#xA;ThenListElse                      -&amp;gt; ThenList Else | ThenAction Else &#xA;&#xA;&#xA;Factor     -&amp;gt; QuantifyingFactor ResultList | QualifyingFactor ResultList | &#xA;                AggregateFactor ResultList | OrderingFactor ResultList | &#xA;                NotQuantifyingFactor ResultList | NotQualifyingFactor ResultList &#xA;                | NotAggregateFactor ResultList | NotOrderingFactor ResultList |&#xA;              QuantifyingFactor Result | QualifyingFactor Result | &#xA;              AggregateFactor Result | OrderingFactor Result | &#xA;                NotQuantifyingFactor Result | NotQualifyingFactor Result | &#xA;                NotAggregateFactor Result | NotOrderingFactor Result&#xA;&#xA;&#xA;ThenList   -&amp;gt; ThenAction ThenList | Then ReadActionList | Then WriteActionList&#xA;ThenAction -&amp;gt; Then ReadActionList | Then WriteActionList&#xA;Then       -&amp;gt; 'then'&#xA;Else       -&amp;gt;  Else Formula&#xA;Else       -&amp;gt; 'else'&#xA;&#xA;CommandList-&amp;gt; Command CommandList | AndIfCommand Factor | OrIfCommand Factor | &#xA;                AndCommand Factor | OrCommand Factor&#xA;Command    -&amp;gt; AndIfCommand Factor | OrIfCommand Factor | AndCommand Factor | &#xA;              OrCommand Factor&#xA;Not        -&amp;gt; &quot;not&quot; &#xA;&#xA;AndIfCommand -&amp;gt; IfCommand AndCommand &#xA;OrIfCommand -&amp;gt; IfCommand OrCommand &#xA;IfCommand -&amp;gt; ifCommand&#xA;AndCommand -&amp;gt; andCommand&#xA;OrCommand -&amp;gt; orCommand&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I left off the factor part, because that gets down to the business stuff, but this works and I think it's in Chompsky Normal Form - although I fudge it a bit after this part. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-19T19:23:55.443" />
  <row Id="13074" PostTypeId="2" ParentId="13045" CreationDate="2010-10-19T19:27:49.003" Score="0" ViewCount="" Body="&lt;p&gt;I am not certain I would insist on one before the other, but using jquery without a decent understanding of the underlying features of javascript sometimes leads to some odd complexity when a newer dev starts writing everything from a jquery point of view first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use both, but be careful not to create complexity where it is not required.  Some of those jquery functions can be quite expensive/complicated.  On several projects I have had to replace jquery with plain javascript because they didn't perform as well as they should have at scale or on slower clients.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO the jquery is probably best mixed with more plain javascript than I see in many cases.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-10-19T19:27:49.003" />
  <row Id="13075" PostTypeId="2" ParentId="13034" CreationDate="2010-10-19T19:27:58.853" Score="1" ViewCount="" Body="&lt;p&gt;Though I've never had to deal with it, I have heard that &lt;a href=&quot;http://en.wikipedia.org/wiki/Sarbanes%E2%80%93Oxley_Act&quot; rel=&quot;nofollow&quot;&gt;Sarbanes-Oxley&lt;/a&gt; compliance has forced a fair bit onto many projects.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-19T19:27:58.853" />
  <row Id="13076" PostTypeId="2" ParentId="13072" CreationDate="2010-10-19T19:28:30.753" Score="3" ViewCount="" Body="&lt;p&gt;SmallTalk emulates if statements using an &lt;code&gt;ifTrue: ifFalse:&lt;/code&gt; method on booleans:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(a &amp;lt; b) ifTrue: [&#xA;    ...&#xA;] ifFalse: [&#xA;    ...&#xA;]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-10-19T19:28:30.753" />
  <row Id="13077" PostTypeId="2" ParentId="13072" CreationDate="2010-10-19T19:32:36.690" Score="20" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;thingadongdong = condition&#xA;while thingadongdong:&#xA;  do_stuff()&#xA;  thingadongdong = False&#xA;do_more_stuff()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;sub&gt;This is provided to you under the WTFPD License. Under the terms of &lt;em&gt;What The Fuck Please Don't&lt;/em&gt; license, you are granted a viral, non-exclusive, perpetual, worldwide, royalty-free license to &lt;em&gt;not&lt;/em&gt; use this or anything that looks like this in any situation whatsoever, even if your compiler notices your shenanigans and turns this into an &lt;code&gt;if&lt;/code&gt; statement. Your indefinite warranty guarantees you that a kitten shall be killed every time this code or anything like it is ever used.&lt;/sub&gt;&lt;/p&gt;&#xA;" OwnerUserId="236" LastActivityDate="2010-10-19T19:32:36.690" CommentCount="2" />
  <row Id="13078" PostTypeId="2" ParentId="13045" CreationDate="2010-10-19T19:36:50.193" Score="0" ViewCount="" Body="&lt;p&gt;I would say if you are an experienced programmer with other languages (PHP, Java, whatever), then there's no reason not to just start with jquery right off the bat.  Its just that immensely useful.  Besides, jquery is a framework, so you'd still be using javascript - just instead of messing around with DOM, you're using jquery.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are new to programming alltogether... then I'd say do a couple projects w/ javascript to get a basic understanding of client-side scripting without jquery, so you can learn a bit about what it is doing for you.  And then when you feel like you have a handle on things, move on to jquery.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-19T19:36:50.193" />
  <row Id="13079" PostTypeId="2" ParentId="13072" CreationDate="2010-10-19T19:39:02.043" Score="6" ViewCount="" Body="&lt;p&gt;Pattern matching over the &lt;code&gt;Boolean&lt;/code&gt; type.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example code (in Scala):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;val x = 3&#xA;(x == 3) match {&#xA;  case true =&amp;gt; println(&quot;x is 3&quot;)&#xA;  case false =&amp;gt; println(&quot;x is not 3&quot;)&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Prints &quot;x is 3&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1968" LastEditorUserId="1968" LastEditorDisplayName="" LastEditDate="2010-10-19T20:04:04.363" LastActivityDate="2010-10-19T20:04:04.363" CommentCount="3" />
  <row Id="13080" PostTypeId="2" ParentId="13072" CreationDate="2010-10-19T19:44:20.847" Score="2" ViewCount="" Body="&lt;p&gt;SNOBOL is a text-oriented language, and a statement is fundamentally taking a text A, a pattern B, and having a replacement C, so that if B matches part of A that part is replaced by C.  (It's possible to omit B, C, or both.)  There can be jump labels at the end of any statement that will jump to another labeled statement if there is a match, or if there isn't, or different places.  It's the SNOBOL control structure, and is hard to work with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's the &lt;code&gt;switch&lt;/code&gt; statement or equivalent in many languages, which is a multiway &lt;code&gt;if&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lisp has the &lt;code&gt;cond&lt;/code&gt; statement, which goes down a list of conditions and executes code corresponding to the first one that's found to be true.  The last of these conditions is normally &lt;code&gt;t&lt;/code&gt;, guaranteeing that one of them is true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Forth is a stack-based language, and the &lt;code&gt;if&lt;/code&gt; statement is expressed rather oddly:  &lt;code&gt;&amp;lt;condition&amp;gt; IF &amp;lt;action&amp;gt; THEN&lt;/code&gt;.  IIRC, this doesn't work right when entered at the command line, but needs to be compiled into a word first, but it's been a long time since I used Forth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Old-time FORTRAN had the arithmetic if, which was a numeric expression followed by three line numbers, jumping to the first if the expression is negative, the second if zero, and the third if positive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Getting into joke languages, Intercal's main control flow statement is &lt;code&gt;COME FROM ... UNLESS ...&lt;/code&gt;, and a certain number of those should be prefixed by &lt;code&gt;PLEASE&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-19T19:44:20.847" />
  <row Id="13081" PostTypeId="2" ParentId="13010" CreationDate="2010-10-19T19:44:56.090" Score="0" ViewCount="" Body="&lt;p&gt;I don't believe I personally write significantly worse code, but I do deliver a worse product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When faced with an arbitrary and impossible deadline, we skimp on the development process.  We do more superficial code reviews (or skip them altogether).  We test less, bypass detailed unit testing for spot-check type integration tests, then try to count the integration test as a formal qualification.  We tend to overlook anomalies during testing if they are not directly tied to pass-fail criteria.  We skip documentation updates, don't double check release notes, forget to scrub the list of deliverables for files that are no longer needed.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The source code you write during a crunch may be of high quality, but it will almost certainly be shipped as part of a shoddy product.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-19T19:44:56.090" />
  <row Id="13082" PostTypeId="2" ParentId="12971" CreationDate="2010-10-19T19:46:01.810" Score="0" ViewCount="" Body="&lt;p&gt;I think you should go with something feudal sounding, such as &quot;&lt;em&gt;Baron Bob of Iterations&lt;/em&gt;&quot;, or &quot;&lt;em&gt;Prince Larry of Encapsulation&lt;/em&gt;&quot;.  That would look awesome on business cards.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-19T19:46:01.810" CommentCount="3" />
  <row Id="13083" PostTypeId="2" ParentId="13072" CreationDate="2010-10-19T19:49:27.393" Score="3" ViewCount="" Body="&lt;p&gt;Stupid, but will work in various languages:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;switch (b)&#xA;{&#xA;    case true: //b&#xA;       something();&#xA;       break;&#xA;&#xA;    case false: //!b&#xA;       something2(); &#xA;       break;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4954" LastActivityDate="2010-10-19T19:49:27.393" />
  <row Id="13084" PostTypeId="1" AcceptedAnswerId="13107" CreationDate="2010-10-19T19:50:24.063" Score="0" ViewCount="357" Body="&lt;p&gt;Hello World,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since a year I am a graduated Computer Engineer, and am now working in named field since 2 years. However, I'd like to get a Masters in a &quot;softer&quot; field and was thinking over the following choices:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;MBA&lt;/strong&gt;: Master of Business Administration, to bridge the business world with the world of computer science. Would give me an interesting job, travel potential, high salary etc.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Techno-MBA&lt;/strong&gt;: Sort of an MBA, but aimed at people who already have a degree in Computer Science.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;HCI&lt;/strong&gt;: Human Computer Interaction degree, something I have been &lt;strong&gt;very&lt;/strong&gt; interested in, but feel like it doesn't have the growth potential of MBA/Techno-MBA&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Marketing&lt;/strong&gt;: My most recent brainchild is a degree in Marketing, is this at all a good idea given my background? Growth potential?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Main priority: Gaining a skill, and gaining a job allowing me to use my social skills. Which path has the best &quot;career potential&quot;? (Controversial I know)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any thoughts? Any feedback welcome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: DOH. Realized that the first sentence makes no sense. Was running my own semi-successful business during last year of school.&lt;/p&gt;&#xA;" OwnerUserId="5768" LastActivityDate="2010-10-19T21:08:35.067" Title="Degree after BSc in Computer Science: Marketing, MBA, Techno-MBA, HCI?" Tags="&lt;education&gt;" AnswerCount="2" />
  <row Id="13085" PostTypeId="2" ParentId="6884" CreationDate="2010-10-19T19:52:02.783" Score="4" ViewCount="" Body="&lt;p&gt;My list would include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Doesn't have time to create real&#xA;requirements. Trust me if they won't&#xA;create the requirements anything you&#xA;deliver will not be as expected and&#xA;you will be expected to &quot;fix&quot; it for&#xA;free.&lt;/li&gt;&#xA;&lt;li&gt;They balk at progress payments for a&#xA;large project or balk at having a&#xA;formal contract.&lt;/li&gt;&#xA;&lt;li&gt;They keep refering to how Google does&#xA;things. If they aren't going to pay&#xA;for Google's servers and&#xA;infrastructure, you will never make&#xA;them happy.&lt;/li&gt;&#xA;&lt;li&gt;Project details as specified and&#xA;timeframe for expected delivery bear&#xA;no relationship to each other. The&#xA;guy who wants a complex system in a&#xA;week is to be avoided at all costs.&lt;/li&gt;&#xA;&lt;li&gt;Everything they say makes you feel&#xA;like they want this done &quot;on the&#xA;cheap&quot;. Software development ain't&#xA;cheap and a client who thinks it&#xA;should be will never be happy.&lt;/li&gt;&#xA;&lt;li&gt;The person is unpleasant to deal with&#xA;and/or treats his staff poorly in&#xA;your presence. If he treats them&#xA;badly, he will treat you badly.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-19T19:52:02.783" CommentCount="1" />
  <row Id="13086" PostTypeId="2" ParentId="13072" CreationDate="2010-10-19T19:53:31.640" Score="5" ViewCount="" Body="&lt;p&gt;Scala lets you write your own control structures for your specialized needs. So what are you waiting for? Go create your own control structures and use them! :-)&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1. &lt;code&gt;unless&lt;/code&gt; a la Ruby:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// defining `unless`:&#xA;def unless(condition: =&amp;gt; Boolean)(block: =&amp;gt; Unit) { if(!condition) block }&#xA;&#xA;// usage:&#xA;unless(4 == 4) {&#xA;  println(&quot;Oops!&quot;)&#xA;}&#xA;&#xA;unless(4 == 5) {&#xA;  println(&quot;Yippee!&quot;)&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Prints &quot;Yippee!&quot;.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2. Ternary conditional operator a la C/C++/Java/C#:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact that everything is an expression in Scala (including &lt;code&gt;if&lt;/code&gt;-&lt;code&gt;else&lt;/code&gt;) removes the need for conditional operator. For example, what you would write in say Java as &lt;code&gt;int y = (x == 3) ? 7 : 5;&lt;/code&gt; can be written in Scala as &lt;code&gt;val y = if(x == 3) 7 else 5&lt;/code&gt;. However if you miss the terseness of the conditional operator, then you can add it to Scala fairly easily.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// defining a conditional operator:&#xA;implicit def conditional(condition: =&amp;gt; Boolean) = new {&#xA;  def ?[A](truePart: =&amp;gt; A) = new {&#xA;    def |(falsePart: =&amp;gt; A) = if(condition) truePart else falsePart&#xA;  }&#xA;}&#xA;&#xA;// usage:&#xA;val y = (x == 9) ? 7 | 5&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3. &lt;code&gt;ifTrue&lt;/code&gt; and &lt;code&gt;ifFalse&lt;/code&gt; a la Smalltalk:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take the same code as above conditional operator and change &lt;code&gt;?&lt;/code&gt; to &lt;code&gt;ifTrue&lt;/code&gt; and &lt;code&gt;|&lt;/code&gt; to &lt;code&gt;ifFalse&lt;/code&gt; and you have a Smalltalk-like conditional construct in Scala.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// usage:&#xA;val (a, b) = (4, 5)&#xA;&#xA;(a &amp;gt; b) ifTrue {&#xA;  println(&quot;greater&quot;)&#xA;} ifFalse {&#xA;  println(&quot;smaller&quot;)&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Prints &quot;smaller&quot;.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;4. &lt;code&gt;or&lt;/code&gt; and &lt;code&gt;and&lt;/code&gt; a la Perl:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// defining `or` and `and`:&#xA;implicit def booleanWithOrAndAnd[A](condition: =&amp;gt; Boolean) = new {&#xA;  def or(f: =&amp;gt; Unit) { if(!condition) f }&#xA;  def and(f: =&amp;gt; Unit) { if(condition) f }&#xA;}&#xA;&#xA;// usage:&#xA;(3 isOdd) or println(&quot;3 is not odd.&quot;) // doesn't print anything&#xA;(3 isOdd) and println(&quot;3 is odd.&quot;)    // prints &quot;3 is odd.&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1968" LastEditorUserId="1968" LastEditorDisplayName="" LastEditDate="2010-10-23T14:38:25.293" LastActivityDate="2010-10-23T14:38:25.293" CommentCount="9" />
  <row Id="13087" PostTypeId="2" ParentId="13072" CreationDate="2010-10-19T19:55:11.673" Score="7" ViewCount="" Body="&lt;p&gt;A few:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;while(condition)do{}&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;condition &amp;amp;&amp;amp; {}&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;!condition || {}&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;switch{case}&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;for(;condition;condition=false){}&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="2274" LastEditorDisplayName="" LastEditDate="2010-10-20T00:18:53.993" LastActivityDate="2010-10-20T00:18:53.993" CommentCount="1" />
  <row Id="13088" PostTypeId="2" ParentId="13072" CreationDate="2010-10-19T19:58:35.833" Score="7" ViewCount="" Body="&lt;p&gt;Some languages (like Perl) allow you to do sneaky &lt;code&gt;if&lt;/code&gt;-like things with &lt;code&gt;and&lt;/code&gt; and &lt;code&gt;or&lt;/code&gt;, where the second condition of the statement will only be executed if the first is/isn't true.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;some_function_that_better_bloody_well_return_true() or die_with_error();&#xA;check_to_see_if_something_terrible_happened() and send_warning_message();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;There's also ye olde &lt;code&gt;switch&lt;/code&gt; statement, generally considered preferable to towering if/else trees in some situations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And don't forget the ternary operator, the bane of rookie programmers, which definitely gives you &lt;code&gt;if&lt;/code&gt;-ish behavior without the &lt;code&gt;if&lt;/code&gt; word:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Integer puppies = puppyMill == null ? null : puppyMill.churn();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-10-19T19:58:35.833" />
  <row Id="13089" PostTypeId="2" ParentId="13084" CreationDate="2010-10-19T20:02:38.420" Score="4" ViewCount="" Body="&lt;p&gt;Answer this question: &quot;What do I want to be when I grow up?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can honestly answer that question, your choice will be made for you.  Any job is only as good as long as something about it makes you happy, and that's not always (and rarely primarily) money.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-10-19T20:02:38.420" CommentCount="8" />
  <row Id="13090" PostTypeId="2" ParentId="2042" CreationDate="2010-10-19T20:02:43.723" Score="1" ViewCount="" Body="&lt;p&gt;I do.  Its my preferred way of development, and I work for a large finance company who are happy for me to work in the way I see fit so long as I meet deadlines and produce quality code.  Done correctly, test first development need not take longer than test after development and let's not forget the other payoff's of test first development of less defects out of system testing later.&lt;/p&gt;&#xA;" OwnerUserId="5319" LastActivityDate="2010-10-19T20:02:43.723" />
  <row Id="13091" PostTypeId="1" CreationDate="2010-10-19T20:03:48.247" Score="6" ViewCount="372" Body="&lt;p&gt;Which of these is better for maintainability?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (byteArrayVariable != null)&#xA;    if (byteArrayVariable .Length != 0)&#xA;         //Do something with byteArrayVariable &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;OR&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if ((byteArrayVariable != null) &amp;amp;&amp;amp; (byteArrayVariable.Length != 0))&#xA;  //Do something with byteArrayVariable &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I prefer reading and writing the second, but I recall reading in code complete that doing things like that is bad for maintainability.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is because you are relying on the language to not evaluate the second part of the &lt;code&gt;if&lt;/code&gt; if the first part is false and not all languages do that.  (The second part will throw an exception if evaluated with a null &lt;code&gt;byteArrayVariable&lt;/code&gt;.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know if that is really something to worry about or not, and I would like general feedback on the question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="71" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-21T01:08:58.957" LastActivityDate="2011-01-04T01:42:19.823" Title="Maintainability of Boolean logic - Is nesting if statements needed?" Tags="&lt;programming-practices&gt;&lt;software-engineering&gt;&lt;coding-standards&gt;&lt;maintenance&gt;&lt;legibility&gt;" AnswerCount="12" CommentCount="4" FavoriteCount="1" />
  <row Id="13092" PostTypeId="2" ParentId="13034" CreationDate="2010-10-19T20:08:35.967" Score="3" ViewCount="" Body="&lt;p&gt;In many fields dealing with legal or regulatory requiremnts are a daily thing. Sarbanes Oxley compliance is critical for large businesses, health care organizations have to consider HIPAA, programming for state, local or federal government projects tends to have lots of regulatory requirements. You may also need to consider Government accounting standards to make sure you have what auditors need. You may have to deal with privacy considerations and there are laws about how the disabled must have ways to access the data. In our business we have government regulations that vary by state that our clients must follow and spend a fair amount of time making sure the compliance rules are followed and in creating reports to show that we have complied with regulations. If you are selling anything, at a minimum you need to consider taxes. You may also get stuck dealing with things like ISO certification requirements which aren't legal but are simliar in their pain in the posterior factor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general if you are doing business programming (especially anything to do with health care or finances) and you are unaware of any legal or regulatory requirements, you have a good chance of doing something wrong. If you (or your company) have never asked about them, then you are definitely doing something wrong as it should be one of the first questions that almost every project starts with. You don't know if the answer is no unless you ask. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are selling software to businesses (not so much indivuiduals), regulatory compliance is often a key selling point as not everyone does a good job with this. We get a lot of our clients specifically becasue we do a much better job of this than our competition and regulatory complicance is critical for our clients.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are in Gaming, I would expect less of a need for this although, I'd bet there are still disability laws to comply with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally have never worked on a major project that didn't have some regulatory or legal needs to consider. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-19T20:08:35.967" />
  <row Id="13093" PostTypeId="2" ParentId="13091" CreationDate="2010-10-19T20:10:23.817" Score="15" ViewCount="" Body="&lt;p&gt;I think the second form is fine, and also more clearly represents what you're trying to do. You say that...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I recall reading in code complete that doing things like that is bad for maintainability. This is because you are relying on the language to not evaluate the second part of the if if the first part is false and not all languages do that.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It doesn't matter if &lt;em&gt;all&lt;/em&gt; languages do that. You're writing in &lt;em&gt;one&lt;/em&gt; particular language, so it only matters if &lt;em&gt;that&lt;/em&gt; language does that. Otherwise, you're essentially saying that you shouldn't use the features of a particular language because other languages might not support those features, and that's just silly.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-19T20:10:23.817" CommentCount="1" />
  <row Id="13094" PostTypeId="2" ParentId="13091" CreationDate="2010-10-19T20:10:50.757" Score="0" ViewCount="" Body="&lt;p&gt;I find them both readable, and I do not accept the argument that you should worry about code maintainability if you were to switch languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In some languages the second option performs better so it would be the clear choice then.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-10-19T20:10:50.757" />
  <row Id="13095" PostTypeId="2" ParentId="13091" CreationDate="2010-10-19T20:11:27.487" Score="0" ViewCount="" Body="&lt;p&gt;I'm with you; I do it the second way.  To me, it's logically clearer.  The concern that some languages will execute the second part even if the first evaluates to false seems a tad silly to me, as I have never in my life written a program that ran in &quot;some languages&quot;; my code always seems to exist in a specific language, which either can handle that construction or can't.  (And if I'm not sure whether the specific language can handle it, that's something I really need to learn, isn't it.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my mind, the hazard with the first way of doing it is that it leaves me vulnerable to accidentally putting in code outside of that nested &lt;code&gt;if&lt;/code&gt; block when I didn't mean to.  Which, admittedly, is hardly a huge concern, but it seems more reasonable than fretting over whether my code is language agnostic.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-10-19T20:11:27.487" />
  <row Id="13096" PostTypeId="2" ParentId="12703" CreationDate="2010-10-19T20:22:48.563" Score="2" ViewCount="" Body="&lt;p&gt;You might want to consider working for an international organisation that has offices near you - think Google, Microsoft, IBM, etc. If you have confidence enough to post on an English-speaking site like this, you likely have abilities to learn the products/technologies for these companies. When an international organisation wants to expand into a region, they need people who understand the local issues and speak the local language to help them get established.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-19T20:22:48.563" />
  <row Id="13097" PostTypeId="2" ParentId="13091" CreationDate="2010-10-19T20:28:02.133" Score="1" ViewCount="" Body="&lt;p&gt;If you work in Delphi, the first way is, in general, safer. (For the given example, there's not much to gain from using nested ifs.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Delphi allows you to specify whether or not boolean expressions evaluate or &quot;short circuit&quot;, through compiler switches. Doing way #1 (nested ifs) allows you to ensure that the second clause executes if and only if (and strictly &lt;em&gt;after&lt;/em&gt;) the first clause evaluates to true.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-19T20:28:02.133" CommentCount="4" />
  <row Id="13098" PostTypeId="2" ParentId="13072" CreationDate="2010-10-19T20:28:23.803" Score="2" ViewCount="" Body="&lt;p&gt;The ternary operator of course :)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;bool absA = a &amp;gt;= 0 ? a : a * (-1);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4930" LastActivityDate="2010-10-19T20:28:23.803" CommentCount="4" />
  <row Id="13099" PostTypeId="2" ParentId="12683" CreationDate="2010-10-19T20:40:16.047" Score="1" ViewCount="" Body="&lt;p&gt;The only times I've used pseudocode in the last 10 years are on interview when we're working on a whiteboard and the particular language doesn't matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's certainly helpful for talking through a process/algorithm in loose terms without getting bogged down with syntax. E.g. writing a C++ class which has C# properties, just to illustrate the point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has its' place, but should only be used where needed (it's work that you'll throw away) and certainly not part of a formal process, unless you have ISO-type standards that insist on it.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-19T20:40:16.047" />
  <row Id="13100" PostTypeId="1" AcceptedAnswerId="13111" CreationDate="2010-10-19T20:47:24.007" Score="6" ViewCount="292" Body="&lt;p&gt;My current employer wants to move more to .NET technology, which does not bother me. The problem is I am a little rusty in the .NET area. What are some good .NET books with, if possible, VB.NET and C# code examples?&lt;/p&gt;&#xA;" OwnerUserId="3732" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-03T19:21:07.023" LastActivityDate="2011-02-03T19:21:07.023" Title="What are some good .NET books?" Tags="&lt;programming-languages&gt;&lt;.net&gt;&lt;c++&gt;&lt;vb.net&gt;" AnswerCount="7" CommentCount="4" FavoriteCount="3" />
  <row Id="13101" PostTypeId="1" CreationDate="2010-10-19T20:50:01.957" Score="4" ViewCount="84" Body="&lt;p&gt;I'm beginning to see that there is a game being played where cloud support is either &quot;host inside our cloud at low cost (so we lock you in)&quot; or &quot;we will support your private cloud provided that it's huge like 5000 nodes and you pay for our premium support ~$5000/month&quot;so where are the are the support options for &lt;a href=&quot;http://openstack.org/&quot; rel=&quot;nofollow&quot;&gt;OpenStack&lt;/a&gt; that aren't trying to play this game?&lt;/p&gt;&#xA;" OwnerUserId="5772" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-10-23T17:50:29.943" LastActivityDate="2010-10-23T17:50:29.943" Title="Vendor Support for OpenStack (that's not a rip-off)" Tags="&lt;support&gt;" AnswerCount="2" />
  <row Id="13102" PostTypeId="2" ParentId="10270" CreationDate="2010-10-19T20:52:35.050" Score="2" ViewCount="" Body="&lt;p&gt;Can't say I've ever been a fan of PDPs - and I've always worked in places that have some form of PDP-based process. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a start, they are often tied to extrinsic motivators (e.g. bonuses), which will motivate some people for a while, but in the long run don't really work. This also leads to &quot;gaming&quot; of the PDP process, where people will set goals deliberately low in order to maximize financial gain with minimal effort. You &lt;em&gt;personally&lt;/em&gt; might have the integrity to resist this - you might approach the process with the best intentions - but it sure is hard to motivate yourself to take the process seriously when everybody around you is just going through the motions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, having your professional development tied into the goals of the company make it more difficult to explore areas that &lt;strong&gt;you&lt;/strong&gt; want to explore but aren't core to the goals of the company. If you're lucky enough to have the same goals, this maybe isn't an issue - tho' bear in mind the company also has financial goals, which you may or may not share (or at least, may not prioritize the same way).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, you mentioned it above, so +1 - it's so much better to take responsibility for your own professional development. Be in the driver's seat instead of waiting for the bus to come :p&lt;/p&gt;&#xA;" OwnerUserId="5677" LastActivityDate="2010-10-19T20:52:35.050" />
  <row Id="13104" PostTypeId="2" ParentId="12858" CreationDate="2010-10-19T20:59:18.677" Score="1" ViewCount="" Body="&lt;p&gt;What is your issue with Eclipse SDK?  It is a GUI, has version control integrated into it and is portable across Windows and Linux.  I find that Windows users are able to handle it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look for Qt Creator: Cross-Platform IDE&lt;/p&gt;&#xA;" OwnerUserId="5772" LastEditorUserId="5772" LastEditorDisplayName="" LastEditDate="2010-10-19T21:11:52.170" LastActivityDate="2010-10-19T21:11:52.170" CommentCount="2" />
  <row Id="13105" PostTypeId="1" CreationDate="2010-10-19T21:00:10.773" Score="2" ViewCount="82" Body="&lt;p&gt;I have encountered several users who are great to work with, while some are just painful. The reason for asking this question is that it would be nice to know the type of client I am dealing with in order to most effectively work with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some of the broad categories that you have used to communicate the personalities (pet names) of users? Are there certain personality types to avoid or seek out?&lt;/p&gt;&#xA;" OwnerUserId="5400" LastActivityDate="2010-10-19T21:40:16.173" ClosedDate="2010-10-19T22:39:39.697" Title="What are the categories of user personalities?" Tags="&lt;personality&gt;&lt;users&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="13106" PostTypeId="2" ParentId="13000" CreationDate="2010-10-19T21:06:29.347" Score="0" ViewCount="" Body="&lt;p&gt;Continuing with &lt;a href=&quot;http://programmers.stackexchange.com/questions/13000/tools-languages-every-graduate-student-should-know#13009&quot;&gt;Alex Feinman answer&lt;/a&gt; I'll suggest &lt;a href=&quot;http://www.mendeley.com&quot; rel=&quot;nofollow&quot;&gt;Mendeley&lt;/a&gt; as a good option to organize your references.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;@ysolik, I think Centos, Debian, Ubuntu or Fedora are one of the most used Linux distributions, knowing how to use any of those would be fine.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-19T21:06:29.347" />
  <row Id="13107" PostTypeId="2" ParentId="13084" CreationDate="2010-10-19T21:08:35.067" Score="1" ViewCount="" Body="&lt;p&gt;Knowing everything I do now, I'd go for an MBA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I studied Software Engineering at university and we spent a tremendous amount of time on esoteric things that we really interesting but I've never used. Technology has moved on, but each new thing can be learned, usually on-the-job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Conversely, it is quite difficult to learn business skills while doing a software engineering job. Taking time out specifically to follow an MBA would give you the breathing space to be able to absorb the important concepts properly. The nature of businesses may evolve (international, online-only, etc) but generally it doesn't move that fast, so what you learn in an MBA will be relevant for some time to come.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need more evidence, look up what educational background big CEO/CTO's have in our industry.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-19T21:08:35.067" CommentCount="2" />
  <row Id="13108" PostTypeId="2" ParentId="13010" CreationDate="2010-10-19T21:09:48.963" Score="2" ViewCount="" Body="&lt;p&gt;Yes.  But it always comes back to haunt me later.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-19T21:09:48.963" />
  <row Id="13109" PostTypeId="1" AcceptedAnswerId="16795" CreationDate="2010-10-19T21:12:26.210" Score="8" ViewCount="535" Body="&lt;p&gt;Developers already working in the financial sector - What books on specifics of software development for financial markets do you recommend for someone just moving into this area? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifically, I'm interested in both the books that explain financial market software development landscape/the big picture, as well as the more narrow oriented titles treating   aspects like Black-Scholes model (like the one I'm reading right now). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looking for both theoretical and practical titles.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2011-04-08T13:56:35.427" Title="Books on developing software for financial markets/investment banks" Tags="&lt;books&gt;&lt;c#&gt;&lt;education&gt;&lt;c++&gt;&lt;financial&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="5" />
  <row Id="13110" PostTypeId="2" ParentId="13072" CreationDate="2010-10-19T21:13:03.073" Score="4" ViewCount="" Body="&lt;p&gt;It seems that the other answers are more of syntactic nature.  I'd like to put forth that both the &lt;a href=&quot;http://en.wikipedia.org/wiki/State_pattern&quot; rel=&quot;nofollow&quot;&gt;State Pattern&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Strategy_pattern&quot; rel=&quot;nofollow&quot;&gt;Strategy Pattern&lt;/a&gt; offer alternate execution paths via object-oriented inheritance.  These patterns tend to eliminate some of the spaghetti-ness of lots of &lt;code&gt;if&lt;/code&gt; statements and their equivalents.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-10-19T21:13:03.073" CommentCount="2" />
  <row Id="13111" PostTypeId="2" ParentId="13100" CreationDate="2010-10-19T21:13:47.360" Score="9" ViewCount="" Body="&lt;p&gt;First of all, although this is off-topic I think it's worth pointing out that most of the better .net books focus on C#. Most community activity is in C#. The better paid jobs are C#. I went to a JetBrains/Resharper community event a while back and only a single person out of a couple of hundred put their hand up when asked who is working with VB.Net. Until a few years ago I was working with VB.Net and it always felt like I was swimming upstream - if you have any say in the matter at all try and encourage a move towards C# rather than a mix unless you have a strong reason to use VB.Net. The following recommendations reflect that reality:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;As you're already a programmer an&#xA;excellent look at what the CLR is and&#xA;how that influences .net coding is:&#xA;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735627045&quot; rel=&quot;nofollow&quot;&gt;CLR via C#&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you want an indepth look at the&#xA;language features of C#, then there's&#xA;the obvious: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1933988363&quot; rel=&quot;nofollow&quot;&gt;C# in Depth&lt;/a&gt; (new&#xA;edition out soon)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Although not as comprehensive as its&#xA;massive size and weight suggests (for&#xA;example localisation is completely&#xA;absent) if you want a good overview&#xA;of the various parts of the framework&#xA;then I'd suggest &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1430225491&quot; rel=&quot;nofollow&quot;&gt;Pro C# 2010 And The&#xA;.NET 4.0 Platform 5th Edition&lt;/a&gt; as&#xA;it covers all the most widely used&#xA;features.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you have specific interests then&#xA;   you could explore either language&#xA;   features (e.g. functional&#xA;   programming) or framework features&#xA;   (e.g WCF, WPF, ASP.Net) further, but&#xA;   if you're newish to .net I'd begin&#xA;   with the 3 recommendations above as&#xA;   they're all excellent, easy-to-read&#xA;   books which take an indepth approach&#xA;   the areas they focus on.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-19T21:13:47.360" CommentCount="7" />
  <row Id="13112" PostTypeId="2" ParentId="13091" CreationDate="2010-10-19T21:16:02.900" Score="1" ViewCount="" Body="&lt;p&gt;The second style can backfire in VBA since if the first test is if the object generated, it will still do the second test and error out.  I've just got in the habit in VBA when dealing with object verification to always use the first method.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-10-19T21:16:02.900" CommentCount="3" />
  <row Id="13113" PostTypeId="2" ParentId="13044" CreationDate="2010-10-19T21:17:09.740" Score="1" ViewCount="" Body="&lt;p&gt;Having to send in a printed form for insurance claims instead of being able to do them online.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-10-19T21:17:09.740" CommentCount="5" />
  <row Id="13114" PostTypeId="2" ParentId="13091" CreationDate="2010-10-19T21:18:00.643" Score="0" ViewCount="" Body="&lt;p&gt;I prefer the second option, because it is more readable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the logic you're implementing is more complex (checking that a string is not null and not empty is just an example), then you can make a useful refactoring: extract a boolean function.  I'm with @mipadi on the &quot;Code Complete&quot; remark (&quot;it doesn't matter if all languages do that...&quot;)  If the reader of your code isn't interested in looking inside the extracted function, then the order in which boolean operands are evaluated becomes a moot question to them.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-19T21:18:00.643" />
  <row Id="13115" PostTypeId="2" ParentId="13010" CreationDate="2010-10-19T21:19:26.677" Score="0" ViewCount="" Body="&lt;p&gt;I know someone who never writes bad code under pressure. He also has some magic beans you might be interested in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everybody writes bad code sometimes and looming deadlines are the usual reason, the trick is to avoid getting into that situation in the first place (and that isn't easy either).&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-19T21:19:26.677" />
  <row Id="13116" PostTypeId="2" ParentId="13105" CreationDate="2010-10-19T21:19:29.173" Score="0" ViewCount="" Body="&lt;p&gt;You want to work for nicer users?  Here's the how-to:&#xA;&lt;a href=&quot;http://books.google.com/books?id=22HzI4qj5I0C&quot; rel=&quot;nofollow&quot;&gt;http://books.google.com/books?id=22HzI4qj5I0C&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5772" LastActivityDate="2010-10-19T21:19:29.173" CommentCount="1" />
  <row Id="13117" PostTypeId="2" ParentId="13044" CreationDate="2010-10-19T21:20:30.760" Score="1" ViewCount="" Body="&lt;p&gt;We have a old High Availability SCADA system that when it switches over to the other server has to have someone come into the office to turn the old one back on (into standby).  For most cases this really isn't necessary, but the vendor never gave us a way for an operator to just push a button and bring it up.  We're not willing to shell out to have the vendor build it for us, so we're just waiting until we buy a nice new system in a few years.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-10-19T21:20:30.760" />
  <row Id="13118" PostTypeId="2" ParentId="13091" CreationDate="2010-10-19T21:25:32.543" Score="3" ViewCount="" Body="&lt;p&gt;In this instance your two clauses are directly related, so the 2nd form is preferable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they weren't related (e.g. a series of guard clauses on different conditions) then I'd prefer the 1st form (or I'd refactor out a method with a name which represents what the compound condition actually represents).&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-19T21:25:32.543" />
  <row Id="13119" PostTypeId="2" ParentId="13072" CreationDate="2010-10-19T21:28:19.697" Score="3" ViewCount="" Body="&lt;p&gt;Ruby's case when:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;response = case query&#xA;    when 'hello', 'howdy'&#xA;            'Greetings.'&#xA;    when 'goodbye', 'bye'&#xA;            'Farewell'&#xA;    when 'help'&#xA;           &quot;Available queries:&quot; +&#xA;           &quot;hello, howdy, goodbye, bye, help&quot;&#xA;    else&#xA;           &quot;I do not understand #{query}&quot;&#xA;end&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5536" LastActivityDate="2010-10-19T21:28:19.697" CommentCount="1" />
  <row Id="13120" PostTypeId="2" ParentId="3747" CreationDate="2010-10-19T21:29:41.820" Score="1" ViewCount="" Body="&lt;p&gt;Don't re-write - the risks and costs are too high for your business. See the Joel Spolsky article referenced by @Grokus for reasons why.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I proffer an alternative option - a combination of refactoring the code that is suitable plus the introduction of a complementary technology alongside. For example, start writing new pages in ASP.NET, gradually migrating more and more code into the .NET world. We've done this successfully - new features are a great opportunity to do this, but simpler parts of the system that can be migrated quickly are also candidates. It may be necessary to concoct some level of abstraction or kind of bridging system (add an API layer to the 'old' system) to get there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only you can make the call whether to go for MVC + AJAX, MVC + SilverLight/Flash or similar, but you don't have to park one thing before going forward.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, there'll be some pain and confusion along the way, but you'll have a shippable product the whole time, rather than a long, long, long time 'in development' with an established product becoming obsolete and losing market share to competitors.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-19T21:29:41.820" />
  <row Id="13121" PostTypeId="1" CreationDate="2010-10-19T21:30:48.010" Score="7" ViewCount="119" Body="&lt;p&gt;At a meta level, I often find that when I grow a codebase organically, parts of the system that I eventually find need to know about each other (at least through some interface) have been mercilessly decoupled.  This often occurs in research prototype code, where one tends to frequently think of tweaks and small improvements that weren't planned for in the original codebase.  Usually, some setting or piece of data needs to be plumbed through about 15 zillion layers of function calls in ways that I never anticipated when I designed the code.  This leads to a very ugly dilemma:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Use an ugly hack.  This can be yet another global variable, bolting the data onto a class that it clearly doesn't belong in, putting a bunch of print statements in the middle of code that previously had nothing to do with I/O logic, doing a seemingly straightforward task in a very roundabout way to make it fit in my original codebase, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Shotgun surgery refactoring.  This almost never gets done in practice because the code will likely have to be rewritten anyhow if it is to become production quality, was hard to get working the first time, is hard to test, or I just plain have higher priorities than writing clean, maintainable code when either I have a deadline or I know it's just a prototype for now.  Furthermore, the next tweak may break whatever nice abstractions I come up with.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Are there any good meta-tips or design principles that will help me avoid situations like this in the first place?  I am &lt;strong&gt;&lt;em&gt;NOT&lt;/em&gt;&lt;/strong&gt; looking for answers that simply recommend refactoring after the fact, as a nightmarish shotgun surgery refactoring session is exactly the kind of thing I'm trying to avoid.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-20T02:16:19.237" Title="System Decoupled in the Wrong Places: Meta-Problem?" Tags="&lt;design&gt;&lt;design-patterns&gt;&lt;object-oriented&gt;&lt;bad-code&gt;&lt;hacks&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="13122" PostTypeId="2" ParentId="13105" CreationDate="2010-10-19T21:40:16.173" Score="4" ViewCount="" Body="&lt;p&gt;I saved this from a Usenet posting from almost 20 years ago documenting the classes of users at a university computer lab. Despite some of the dated technology references, it still seems very relevant.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;El Explicito&lt;/strong&gt;   &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;I tried the thing, ya know, and it&#xA;  worked, ya know, but now it doesn't,&#xA;  ya know?&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Advantages:&lt;/strong&gt;  Provides interesting communication challenges.&lt;br&gt;&#xA;&lt;strong&gt;Disadvantages:&lt;/strong&gt;  So do chimps.&lt;br&gt;&#xA;&lt;strong&gt;Symptoms:&lt;/strong&gt;  Complete inability to use proper nouns&lt;br&gt;&#xA;&lt;strong&gt;Real Case:&lt;/strong&gt;  One user walked up to a certain Armenian pod manager and said, &quot;I&#xA;can't get what I want!&quot;  The pod manager leaned back, put his hands on his&#xA;belt-buckle, and said, &quot;Well, ma'am, you've come to the right place.&quot;  &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Mad Bomber&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Well, I hit ALT-f6, shift-f8,&#xA;  CNTRL-f10, f4, and f9, and now it&#xA;  looks all weird.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Advantages:&lt;/strong&gt;  Will try to find own solution to problems.&lt;br&gt;&#xA;&lt;strong&gt;Disadvantages:&lt;/strong&gt;  User might have translated document to Navajo without meaning&#xA;to.&lt;br&gt;&#xA;&lt;strong&gt;Symptoms:&lt;/strong&gt;  More than six stopped jobs in UNIX, a 2:1 code-to-letter ratio in&#xA;WordPerfect&lt;br&gt;&#xA;&lt;strong&gt;Real Case:&lt;/strong&gt;  One user came in complaining that his WordPerfect document was&#xA;underlined.  When I used reveal codes on it, I found that he'd set and unset&#xA;underline more than fifty times in his document.  &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Frying Pan/Fire Tactician&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;It didn't work with the data set we&#xA;  had, so I fed in my aunt's recipe for&#xA;  key lime pie.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Advantages:&lt;/strong&gt;  Will usually fix error.&lt;br&gt;&#xA;&lt;strong&gt;Disadvantages:&lt;/strong&gt;  'Fix' is defined VERY loosely here.&lt;br&gt;&#xA;&lt;strong&gt;Symptoms:&lt;/strong&gt;  A tendency to delete lines that get errors instead of fixing&#xA;them.&lt;br&gt;&#xA;&lt;strong&gt;Real Case:&lt;/strong&gt;  One user complained that their program executed, but didn't do&#xA;anything.  The scon looked at it for twenty minutes before realizing that&#xA;they'd commented out EVERY LINE.  The user said, &quot;Well, that was the only&#xA;way I could get it to compile.&quot;    &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Shaman&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Last week, when the moon was full,&#xA;  the clouds were thick, and formahaut&#xA;  was above the horizon, I typed f77,&#xA;  and lo, it did compile.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Advantages:&lt;/strong&gt;  Gives insight into primitive mythology.&lt;br&gt;&#xA;&lt;strong&gt;Disadvantages:&lt;/strong&gt;  Few scons are anthropology majors.&lt;br&gt;&#xA;&lt;strong&gt;Symptoms:&lt;/strong&gt;  Frequent questions about irrelevant objects.&lt;br&gt;&#xA;&lt;strong&gt;Real Case:&lt;/strong&gt;  One user complained that all information on one of their disks got&#xA;erased (as Norton Utilities showed nothing but empty sectors, I suspect nothing&#xA;had ever been on it).  Reasoning that the deleted information went &lt;em&gt;somewhere&lt;/em&gt;,&#xA;they wouldn't shut up until the scon checked four different disks for the&#xA;missing information.  &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;X-user&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Will you look at those. . .um, that&#xA;  resolution, quite impressive, really.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Advantages:&lt;/strong&gt;  Using the cutting-edge in graphics technology.&lt;br&gt;&#xA;&lt;strong&gt;Disadvantages:&lt;/strong&gt;  Has little or no idea how to use the cutting-edge in graphics&#xA;technology.&lt;br&gt;&#xA;&lt;strong&gt;Symptoms:&lt;/strong&gt;  Fuzzy hands, blindness&lt;br&gt;&#xA;&lt;strong&gt;Real Case:&lt;/strong&gt;  When I was off duty, two users sat down in front of me at DEC&#xA;station 5000/200s that systems was reconfiguring.  I suppressed my laughter&#xA;while, for twenty minutes, they sat down and did their best to act like they&#xA;were doing exactly what they wanted to do, even though they couldn't log in.  &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Miracle Worker&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;But it read a file from it&#xA;  yesterday!&quot;  'Sir, at a guess, this&#xA;  disk has been swallowed and&#xA;  regurgitated.'  &quot;But I did that a&#xA;  month ago, and it read a file from it&#xA;  yesterday!&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Advantages:&lt;/strong&gt;  Apparently has remarkable luck when you aren't around.&lt;br&gt;&#xA;&lt;strong&gt;Disadvantages:&lt;/strong&gt;  People complain when scons actually use the word 'horse-puckey'.&lt;br&gt;&#xA;&lt;strong&gt;Symptoms:&lt;/strong&gt;  Loses all ability to do impossible when you're around.  Must be&#xA;the kryptonite in your pocket.&lt;br&gt;&#xA;&lt;strong&gt;Real Case:&lt;/strong&gt;  At least three users have claimed that they've loaded IBM&#xA;WordPerfect from Macintosh disks.  &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Taskmaster&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Well, this is a file in MacWrite.  Do&#xA;  you know how I can upload it to MUSIC,&#xA;  transfer it over to UNIX from there,&#xA;  download it onto an IBM, convert it to&#xA;  WordPerfect, and put it in&#xA;  three-column format?&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Advantages:&lt;/strong&gt;  Bold new challenges.&lt;br&gt;&#xA;&lt;strong&gt;Disadvantages:&lt;/strong&gt;  Makes one wish to be a garbage collector.&lt;br&gt;&#xA;&lt;strong&gt;Symptoms:&lt;/strong&gt;  An inability to keep quiet.  Strong tenancies to make machines&#xA;do things they don't want to do.&lt;br&gt;&#xA;&lt;strong&gt;Real Case:&lt;/strong&gt;  One user tried to get a scon to find out what another person's&#xA;E-mail address was even though the user didn't know his target's home system,&#xA;account name, or real name.  &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Maestro&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Well, first I sat down, like this. &#xA;  Then I logged on, like this, and after&#xA;  that, I typed in my password, like&#xA;  this, and after that I edited my file,&#xA;  like this, and after that I went to&#xA;  this line here, like this, and after&#xA;  that I picked my nose, like this. . .&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Advantages:&lt;/strong&gt;  Willing to show you exactly what they did to get an error.&lt;br&gt;&#xA;&lt;strong&gt;Disadvantages:&lt;/strong&gt;  For as long as five or six hours.&lt;br&gt;&#xA;&lt;strong&gt;Symptoms:&lt;/strong&gt;  Selective deafness to the phrases, &quot;Right, right, okay, but what&#xA;was the ERROR?&quot;, and a strong fondness for the phrase, &quot;Well, I'm getting to&#xA;that.&quot;&lt;br&gt;&#xA;&lt;strong&gt;Real Case:&lt;/strong&gt;  I once had to spend half an hour looking over a user's shoulder&#xA;while they continuously retrieved a document into itself and denied that they&#xA;did it (the user was complaining that their document was 87 copies of the&#xA;same thing).  &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Princess&lt;/strong&gt; (unfair, perhaps, as these tend, overwhelmingly, to be males)  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;I need a Mac, and someone's got the&#xA;  one I like reserved, would you please&#xA;  garrote him and put him in the paper&#xA;  recycling bin?&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Advantages:&lt;/strong&gt;  Flatters you with their high standards for your service.&lt;br&gt;&#xA;Disadvantages:  Impresses you with their obliviousness to other people on&#xA;this planet.&lt;br&gt;&#xA;&lt;strong&gt;Symptoms:&lt;/strong&gt;  Inability to communicate except by complaining.&lt;br&gt;&#xA;&lt;strong&gt;Real Case:&lt;/strong&gt;  One asked a scon to remove the message of the day because he&#xA;(the user) didn't like it.  &lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-19T21:40:16.173" CommentCount="1" />
  <row Id="13123" PostTypeId="2" ParentId="13121" CreationDate="2010-10-19T21:42:13.163" Score="2" ViewCount="" Body="&lt;p&gt;Three things that I find useful, but some people dislike:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider early prototype code - if you are doing something very different than what you have done in the past the first go of it is likely to teach you that you should have done it differently early on - work out your ideas then start fresh&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Minimize early decoupling - to me it is far easier to refactor something out of a coupled scenario once I have good reason than to juggle the bits across an arbitrary early decoupling border.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider having fewer tiers or allowing functions to skip tiers.  In some projects the latter can approach a necessity at times.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-10-19T21:42:13.163" />
  <row Id="13124" PostTypeId="2" ParentId="2042" CreationDate="2010-10-19T21:49:32.063" Score="0" ViewCount="" Body="&lt;p&gt;I do it.  The progress of our user stories is tracked on a Kanban board, which has a &lt;strong&gt;&quot;Has a Test?&quot;&lt;/strong&gt; column to the left (upstream) of Development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This somewhat unusual layout makes one policy explicit: a failing automated acceptance test (usually, a few of them) must exist.  It must be traceable to a customer requirement.  The acceptance tests arise from &lt;em&gt;conditions of satisfaction&lt;/em&gt;, which result from &lt;em&gt;conversations&lt;/em&gt; that begin with a &lt;em&gt;story card&lt;/em&gt;.  I facilitate regular workshops where we brainstorm requirements, identify gaps, and figure out the key acceptance tests that ensure user value is delivered when they pass (the &lt;em&gt;definition of done&lt;/em&gt;).  It's a collaborative activity involving programmers, business analysts and sometimes testers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The acceptance-testing feedback loop is kind of long: it may take several days to complete the story.  The development has its own, shorter TDD feedback loops.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;[...no test-first style...]  More akin to Agile....&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is a complete misrepresentation of Agile.  &lt;strong&gt;Definition of done&lt;/strong&gt; is a key component of Agile and one of the pillars it rests upon is the automated acceptance testing (what I described above is one way to do it.)  If extreme programming (XP) is used as an Agile implementation method, then ATDD/BDD and TDD are prescribed.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-19T21:49:32.063" />
  <row Id="13125" PostTypeId="2" ParentId="6526" CreationDate="2010-10-19T21:55:32.130" Score="1" ViewCount="" Body="&lt;p&gt;I think some of the problem is that they have a VERY specific use case (your not suited reason).  I have built and worked on systems that use this approach and when you have a problem that is actually this problem it can be a wonderful solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another part is that it looks a whole lot like some of the more painful bits of custom data storage you used to find a lot of 10+ years ago and has some of the same pitfalls (think batch updated btreive for example) which brings in your &quot;too custom&quot; point, but also makes it difficult to find off the shelf parts that work politely with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The last part is that they can be damn difficult to query against in many cases and folks in general are pretty accustom to being able to get their answers right now.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-10-19T21:55:32.130" />
  <row Id="13126" PostTypeId="2" ParentId="2042" CreationDate="2010-10-19T22:25:36.687" Score="0" ViewCount="" Body="&lt;p&gt;The key to doing TDD is to just do it as part of writing your code, and if necessary, you &lt;em&gt;do not tell anyone you're doing it.&lt;/em&gt;  It's not necessary to explain everything you're doing.  Your end result is working code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you explain &quot;I am writing tests,&quot; then The Powers That Be can say &quot;Oh, we can eliminate that!&quot;  But if you tell no one, then you still have the tests as residue of the coding process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is more than typing in working statements into an editor.  If people can't handle that, then shield them from this truth until they are ready to handle it.  &quot;Ready to handle it&quot; in this case means when you have a completed project or two, done on time with solid, reliable code, and oh yeah, look, you have unit tests for it, too.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-19T22:25:36.687" />
  <row Id="13127" PostTypeId="2" ParentId="10270" CreationDate="2010-10-19T22:32:19.683" Score="1" ViewCount="" Body="&lt;p&gt;I think it's mostly catering for the not-so-good developers (and other staff). Interested, passionate people will generally take care of themselves. I've found &quot;personal development&quot; is often a euphemism for &quot;moving to management&quot;, which is of course the only career goal any of us should have....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, it's good to talk about what you want to achieve so that opportunities are made available to you. It can also help narrowly-focused tech heads to take a step back and think beyond the current project/technology. If the only way an organisation can get those talks to happen is via enforced PDPs, then I guess they're useful. &lt;/p&gt;&#xA;" OwnerUserId="5668" LastEditorUserId="5668" LastEditorDisplayName="" LastEditDate="2010-10-19T23:26:15.313" LastActivityDate="2010-10-19T23:26:15.313" />
  <row Id="13128" PostTypeId="1" CreationDate="2010-10-19T22:35:06.850" Score="4" ViewCount="247" Body="&lt;p&gt;I come from a mathematics background but also considering a career in some form of software development. In particular I'm interesting in finding out what sort of industries are most likely to have a more algorithm development/mathematical and logical problem solving slant rather than pure application development etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, I'm assuming that some subset of the canonical data structures and associated algorithms (trees, lists, hash tables, sets, maps with search, insert, traversals etc.) are going to be present in most software development. However, where am I more likely to encounter problems of a more discrete maths nature (combinatorial, graph theory, sets, strings, ...) explicitly or more likely in disguise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any pointers much appreciated (including possible open source projects that I could use to further my search for applications and also possibly contribute to).&lt;/p&gt;&#xA;" OwnerUserId="4519" LastActivityDate="2010-10-20T06:34:00.910" Title="Algorithm development in jobs" Tags="&lt;career&gt;&lt;problem-solving&gt;&lt;algorithms&gt;" AnswerCount="8" FavoriteCount="2" />
  <row Id="13129" PostTypeId="2" ParentId="12683" CreationDate="2010-10-19T22:44:16.963" Score="1" ViewCount="" Body="&lt;p&gt;For myself and the people I have worked with for the last few years pseudocode has pretty much turned into not entirely perfect real code.  unless you work with many languages at the same time, most people seem to start thinking in the general pattern of their main language.  I have worked in .net shops for a while so most people's whiteboard scribbles around the office tend to look like vb or c# with some of the punctuation missing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The exercise is still valuable when debating options and such, but the language agnostic bit tends to drift away as you spend more time with a few languages.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-10-19T22:44:16.963" CommentCount="2" />
  <row Id="13130" PostTypeId="2" ParentId="13128" CreationDate="2010-10-19T22:44:52.473" Score="2" ViewCount="" Body="&lt;p&gt;Manufacturing industry (cnc machining software) for example; has a lot of optimization problems related to geometry (not to put a too fine a point to it).&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-19T22:44:52.473" CommentCount="1" />
  <row Id="13131" PostTypeId="2" ParentId="10270" CreationDate="2010-10-19T22:45:15.287" Score="1" ViewCount="" Body="&lt;p&gt;I regard these as an organizational smell. That is they are not necessarily a red flag, but an indicator that you should be looking for red flags. PDP initially sounds good, but I've rarely seen any action really happen with them in the past. Usually, they are just a waste of the several hours it takes to fill them out, get them approved, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I say they are a smell because these are part of that MBA/HR group of tools which includes Performance Objectives, Annual Reviews, PDP and &quot;incentive&quot; based pay (which is essentially a disincentive according to many including &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000070.html&quot; rel=&quot;nofollow&quot;&gt;Joel Spolsky&lt;/a&gt; and &lt;a href=&quot;http://www.poppendieck.com/pdfs/Compensation.pdf&quot; rel=&quot;nofollow&quot;&gt;Mary Poppendeick&lt;/a&gt;). All of these approaches put together encourage a me-first attitude and at best accidentally reward anyone for being a team player. This also usually means &quot;we have a quota of Excellent, Above Average, Average, and Not Meeting Expectations performance grades that we will abide by regardless of actual performance&quot; and thereby introduce competition instead of cooperation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I have to compete with my team members, am I going to share information with them? Am I going to risk falling behind on my tasks to help them out on theirs? The answer is &quot;no&quot;. &lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-10-19T22:45:15.287" />
  <row Id="13132" PostTypeId="2" ParentId="13128" CreationDate="2010-10-19T22:46:16.190" Score="3" ViewCount="" Body="&lt;p&gt;The finance sector is pretty keen on mathematicians who can write a bit of code. I've just gone through a series of interviews with banks and hedge funds and can tell you first hand that they want people who know about linear algebra, data structure and algorithm design, and optimisation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not so much graph theory, but combinatorial questions seem to be common in interviews. Who knows how much of that is actually used in practice (maybe someone else can speak to this) but at the interview stage they're pretty important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am more of a software engineer than a mathematician so I'm coming from the opposite direction. With our powers combined we could probably take over the world.&lt;/p&gt;&#xA;" OwnerUserId="5777" LastActivityDate="2010-10-19T22:46:16.190" CommentCount="2" />
  <row Id="13133" PostTypeId="2" ParentId="9378" CreationDate="2010-10-19T22:54:35.517" Score="2" ViewCount="" Body="&lt;p&gt;As ChrisF noted, VS2010 is memory hungry and leaks at times. I'm actually battling with IT to ramp up our PCs to account for how hungry it is. If I have multiple instances of it open along with the other development tools I use, I've actually ran out of memory and nearly max'ed my page file to the point in which my PC crashes or freezes up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The mouse scroll problems are annoying as well. I've noticed that it's a driver problem along with being a bug within VS2010, but coming from VS 2005/2008, it's hard not to be used to using the mouse wheel to scroll through windows. Sometimes it works, but most of the time... it's hung up on the Solution Explorer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had constant problems with VS2010 hanging up the web server instance as well, taking 50% of the CPU and not allowing me to end it. Once I end the process in Task Manager, VS2010 is frozen and I have to end it as a process as well and restart. I've had this happen a few times consecutively, maybe 5 or 6 times.&lt;/p&gt;&#xA;" OwnerUserId="5520" LastActivityDate="2010-10-19T22:54:35.517" CommunityOwnedDate="2011-02-02T16:35:27.803" CommentCount="1" />
  <row Id="13135" PostTypeId="2" ParentId="9378" CreationDate="2010-10-19T23:01:10.613" Score="2" ViewCount="" Body="&lt;p&gt;I use Ctrl + . to bring up the smart menu all the time - the menu you can get to when you see a little rectangle pop up underneath some symbol you just typed that lets you do things like automatically include the namespace of the class you're trying to use, or automatically implement all the methods of an interface. Because of the way VS2010 does background compilation, it takes 1/2 to 3/4 of a second for it to parse the entire symbol name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm pretty fast with Ctrl + ., so sometimes I'll do something like jam out &lt;code&gt;MyClass : IMyInterface&lt;/code&gt;, immediately Ctrl + ., and then hit enter to automatically implement IMyInterface. What happens? Well, the parser only got through IMyIn, and the default menu selection upon hitting Ctrl + . for a class that VS doesn't recognize is to implement it in your project, so now I get a brief progress bar and a new IMyIn class in my project.&lt;/p&gt;&#xA;" OwnerUserId="3044" LastActivityDate="2010-10-19T23:01:10.613" CommunityOwnedDate="2011-02-02T16:35:27.803" />
  <row Id="13136" PostTypeId="2" ParentId="13121" CreationDate="2010-10-19T23:10:48.197" Score="1" ViewCount="" Body="&lt;p&gt;Using a dependency injection framework can help with adding new dependencies without using global variables or passing values through a bunch of method calls. An AOP framework may help implement new cross-cutting concerns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, logging can be achieved through either AOP and/or a logging object that can be injected at any layer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example of a framework that provides both of these concepts is Spring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: I know the comment below is against the idea of more dependencies, but I did find this for Python: &lt;a href=&quot;http://springpython.webfactional.com/&quot; rel=&quot;nofollow&quot;&gt;Spring Python&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4949" LastEditorUserId="4949" LastEditorDisplayName="" LastEditDate="2010-10-20T01:10:29.153" LastActivityDate="2010-10-20T01:10:29.153" CommentCount="1" />
  <row Id="13139" PostTypeId="2" ParentId="2042" CreationDate="2010-10-19T23:17:23.803" Score="0" ViewCount="" Body="&lt;p&gt;I do, but generally only for non ui components, and when I know I cannot keep the whole algorithm for a module in my head at a single time, or when it the module is a new part of whatever system I'm working on, so I can't rely on the majority of libraries I'm using to have have the been highly debugged. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially, I do when the complexity of requirement means I could otherwise get lost in the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a difficult habit to start, and does require management buy-in, but, when your tests start breaking half way through development, it can be a life saver!&lt;/p&gt;&#xA;" OwnerUserId="3946" LastActivityDate="2010-10-19T23:17:23.803" />
  <row Id="13140" PostTypeId="2" ParentId="9378" CreationDate="2010-10-19T23:19:16.817" Score="2" ViewCount="" Body="&lt;p&gt;I can upgrade my memory, to curb it's hunger for memory. I can use an SSD to curb it's hunger for disks. But, what do I do for it's absolute abuse / misuse of the CPU for all things important? The IDE refuses to use multiple CPUs on multi-core hosts (i.e., all hosts, these days). It does this after all the hype MS is putting into writing multi-processor efficient code and all of the tools they are providing to &quot;help&quot; developers do this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I appreciate the new user-interface, but add extensions (Visual Assist, Resharper, whatever) and thing crawls. What sane developer develops without extensions, these days?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To summarize: We can live with it being a memory hog, but MS, please speed the thing up and have it use all available cores efficiently.&lt;/p&gt;&#xA;" OwnerUserId="5317" LastActivityDate="2010-10-19T23:19:16.817" CommunityOwnedDate="2011-02-02T16:35:27.803" CommentCount="1" />
  <row Id="13141" PostTypeId="2" ParentId="10387" CreationDate="2010-10-19T23:22:21.020" Score="0" ViewCount="" Body="&lt;p&gt;I realized I can't go with infinite autoscaling because that would require a very large amount of idle servers on hand, which I can't provide at this point. Google has a large amount of slack capacity on their servers, so they can easily do so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's what I will probably end up going with: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each user pays a few cents (around 2-3) an hour per instance that they have running. There will be an autoscaling option in place (user can set the maximum the platform can increase the running processes to in times of high load). By default, each project will get bandwidth, disk storage, memcached, and a database (at no additional cost). If the project needs more, they can upgrade each of those components at a reasonable rate. Also included would be cron, web-based monitoring, mobile apps, alerting, development/staging environment, backups, redundancy, failover and so on, all as part of the service. Sounds fair? &lt;/p&gt;&#xA;" OwnerUserId="4814" LastActivityDate="2010-10-19T23:22:21.020" CommentCount="1" />
  <row Id="13142" PostTypeId="1" AcceptedAnswerId="13154" CreationDate="2010-10-19T23:25:54.010" Score="8" ViewCount="178" Body="&lt;p&gt;I'm the odd kind of developer that likes writing and explaining - emails, specs, you name it.  I enjoy helping people understand things deeply. I hate ping-pong communications where groups go through 30 or 40 emails, phone calls and meetings because 25% of the group misunderstood the previous dashed-off email in which the writer only half-explained their position, or was in a hurry and miswrote a critical word or left out a negative or two.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This trait is great for documentation, but my emails are long, so people simply don't read them. A couple strategies I've used are formatting long emails as attached Word documents to encourage people to view them as documentation (works surprisingly well sometimes), or trying to use more bullet points instead of free paragraphs. These strategies increase readership, but the content is still long.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course I want to yell and scream that complex technical topics require a lot of exposition and clarification, but that doesn't help anyone. Obviously there are tradeoffs that can be made, but I have a hard time justifying making statements that aren't clear or that will result in a million questions, misunderstandings, or added &quot;terms and conditions&quot; later on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you keep your communications short but complete?&lt;/p&gt;&#xA;" OwnerUserId="3044" LastActivityDate="2010-10-21T15:39:14.277" Title="How do you keep emails short but complete?" Tags="&lt;communication&gt;&lt;writing&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="2" />
  <row Id="13143" PostTypeId="1" CreationDate="2010-10-19T23:27:28.780" Score="7" ViewCount="235" Body="&lt;p&gt;Hi!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2 years ago I starded learning AS3 in order to get hired at a web design company. A few months later, I ditched it, because I discovered that I'm better at design; so now I'm a web designer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently, I decided that knowing JavaScript would be nice and helpful, so i started with Essential JavaScript Training from Lynda.com. Untill today, I was under the impression that my knowledge of programming was somewhat basic. What happened today...?&#xA;I learned (through trial and error) that variables are only valid in the functions that they're defined in. This turned my world upside down. I was like: &quot;that makes sense now...&quot; thinkin of the all the headaches that the lack of this specific piece of knowledge gave me.&#xA;How could I have missed such a fundamental thing while learning AS3 (and now JS)? I didn't. And I remember reading a at least three books on AS3, but none of them taught me about programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what I want to ask you, is if you could recommend me a good JavaScript book from which i can learn programming, too, besides syntax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks! And sorry for my bad english :)&lt;/p&gt;&#xA;" OwnerUserId="5778" LastEditorUserId="99" LastEditorDisplayName="" LastEditDate="2010-10-21T04:04:20.863" LastActivityDate="2010-10-21T22:42:21.580" Title="JavaScript for a non-programmer" Tags="&lt;books&gt;&lt;training&gt;&lt;javascript&gt;" AnswerCount="3" CommentCount="4" FavoriteCount="1" />
  <row Id="13145" PostTypeId="2" ParentId="13142" CreationDate="2010-10-19T23:28:34.490" Score="1" ViewCount="" Body="&lt;p&gt;I use fewer words, that seems to do the job quite well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;seriously, tho...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try only explaining things that are pertinent, for example, &quot;load a file&quot; instead of going into detail about HOW you load the file and check for errors while doing it and etc. etc.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-19T23:28:34.490" />
  <row Id="13146" PostTypeId="2" ParentId="13142" CreationDate="2010-10-19T23:39:22.730" Score="2" ViewCount="" Body="&lt;p&gt;Focus on what you're trying to communicate. Does &lt;em&gt;each word&lt;/em&gt; you've used help get your message across?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to avoid &lt;a href=&quot;http://en.wikipedia.org/wiki/Adjective&quot; rel=&quot;nofollow&quot;&gt;adjectives&lt;/a&gt;. Avoid ranting or over-explaining. Use the most concise phrase possible - don't try to sound impressive by using long words and complex phrases where a simpler option exists. Avoid wank words.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read '&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0743455967&quot; rel=&quot;nofollow&quot;&gt;On Writing&lt;/a&gt;' by Stephen King.&lt;/p&gt;&#xA;" OwnerUserId="5668" LastActivityDate="2010-10-19T23:39:22.730" CommentCount="1" />
  <row Id="13147" PostTypeId="2" ParentId="7806" CreationDate="2010-10-19T23:42:28.223" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.tf-informatik.dk/FreeStuff/rettigNormalizationPoster.pdf&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;The 5 Rules of Data Normalization&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-10-19T23:42:28.223" CommentCount="1" />
  <row Id="13148" PostTypeId="2" ParentId="10831" CreationDate="2010-10-19T23:45:54.127" Score="1" ViewCount="" Body="&lt;p&gt;Bearing in mind that I logged all my SP project experience with SP2007 and MOSS, so can't really speak to SP2010:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the API is &lt;strong&gt;really&lt;/strong&gt; hard to isolate and test. Most things are dependent on some form of context or other&lt;/li&gt;&#xA;&lt;li&gt;following from the first point, then - TDD reeeeeaaaly hard w/o a commercial isolator product&lt;/li&gt;&#xA;&lt;li&gt;you can automate a lot of the deployment steps, but if you really want a clean deploy, it does take a fair bit of time. Enough time to get you out of any real &quot;flow&quot;&lt;/li&gt;&#xA;&lt;li&gt;CI is tricky. It is possible, but it takes a not-insignificant investment in time&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;On a more positive/helpful note - if you are in a position where you &lt;strong&gt;have&lt;/strong&gt; to do it :p : make the investment in time/money to write or buy whatever tooling you need to help you automate stuff. It'll save a lot of headache later and will totally pay off. In particular, custom MSBuild/Nant targets, command-line tools, PowerShell CmdLets, whatever you need to make things go smoother. If you do a lot of repeat SP work (I used to work for a consulting company who specialized in SP implementations) - consider writing tooling to help you generate some of the nasty stuff (e.g. site template defns, CAML, etc.). &lt;/p&gt;&#xA;" OwnerUserId="5677" LastActivityDate="2010-10-19T23:45:54.127" />
  <row Id="13149" PostTypeId="2" ParentId="10270" CreationDate="2010-10-19T23:48:49.623" Score="0" ViewCount="" Body="&lt;p&gt;Frankly, I was hired to do technical stuff (writing code is only part of my job, though the other aspects are also technical) and I have virtually no tolerance for red tape.  I tend not to even look at most of it until I've been nagged about it more than once, especially if the person asking for it is just an administrative person and not my boss.  I suspect a PDP would be yet another one of these things and I would grudgingly do it while waiting for code to compile or run, just to get rid of whoever was nagging me about it.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-19T23:48:49.623" />
  <row Id="13150" PostTypeId="2" ParentId="11802" CreationDate="2010-10-20T00:00:25.440" Score="1" ViewCount="" Body="&lt;p&gt;If each brand has independent assets then you can create each customer branch from &lt;code&gt;develop&lt;/code&gt; and then &lt;code&gt;pull&lt;/code&gt; future changes in as required. Individual assets can be created, edited and committed on the appropriate customer branch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A nice side-effect of this is that you could have common assets on &lt;code&gt;develop&lt;/code&gt; if that makes sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on how distributed your development is, you might consider &lt;code&gt;pull&lt;/code&gt;ing from master rather than &lt;code&gt;rebase&lt;/code&gt;ing. You don't want to &lt;code&gt;rebase&lt;/code&gt; if commits are being pushed around to other repositories.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To summarise: code changes on &lt;code&gt;develop&lt;/code&gt;; asset changes on &lt;code&gt;customer-X&lt;/code&gt;; occasionally &lt;code&gt;pull&lt;/code&gt; from &lt;code&gt;develop&lt;/code&gt; to &lt;code&gt;customer-X&lt;/code&gt;. Sorted.&lt;/p&gt;&#xA;" OwnerUserId="5777" LastActivityDate="2010-10-20T00:00:25.440" CommentCount="1" />
  <row Id="13151" PostTypeId="2" ParentId="12915" CreationDate="2010-10-20T00:22:20.070" Score="1" ViewCount="" Body="&lt;p&gt;I'd suggest you create one or more branches for each student. Let them work with the code and mess it up, but don't merge it into the trunk until it is un-messed. If they can write more-or-less independent code, which is what your description sounds like, then to some extent you can just leave them to it and let them learn. If they need to modify core components then you'll need to be more hands-on with code reviews, testing and style requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you know how good a coder the student is then you can think about giving them commit rights to the trunk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's difficult to apply industry principles (code review, style guidelines etc) to students because of the temporary nature of the work and the fact that research is the primary goal, not code writing. There is often some resistance to meeting industry standards because students often feel it is not worth their time writing unit tests and documentation: they've got a dissertation to write!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, whatever tools you can set up to encourage best practice will help. I recommend Git for version control because it makes branching and merging very easy, and you can set up a continuous integration server like Hudson or Cruise Control to help encourage cleaner coding - the dashboards will show things like test coverage, style violations etc if set up properly. I'm not too familiar with static analysis tools for C++, but in Java you can use things like Checkstyle and Findbugs to encourage good style. There must be similar tools for C++.&lt;/p&gt;&#xA;" OwnerUserId="5777" LastActivityDate="2010-10-20T00:22:20.070" />
  <row Id="13152" PostTypeId="2" ParentId="13072" CreationDate="2010-10-20T00:41:44.090" Score="3" ViewCount="" Body="&lt;p&gt;LISP (all three flavors I'm familiar with) has alternatives because of the way &lt;code&gt;if&lt;/code&gt; works by default (examples below in Scheme).&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(if (string? foo) bar baz)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Does &lt;code&gt;bar&lt;/code&gt; if &lt;code&gt;foo&lt;/code&gt; is a string and &lt;code&gt;baz&lt;/code&gt; otherwise. Because &lt;code&gt;if&lt;/code&gt; in LISP is basically the ternary operator, the language also provides &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(when (string? foo) bar baz)&#xA;(unless (string? foo) mumble baz)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The first one does &lt;code&gt;bar&lt;/code&gt; and &lt;code&gt;baz&lt;/code&gt; if &lt;code&gt;foo&lt;/code&gt; is a string, the second does &lt;code&gt;mumble&lt;/code&gt; and &lt;code&gt;baz&lt;/code&gt; if &lt;code&gt;foo&lt;/code&gt; is not a string.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You also get the switch-analogue &lt;code&gt;cond&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(cond ((string? foo) bar)&#xA;      ((number? foo) baz)&#xA;      (else mumble foo bar))&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Finally, if you need to just return one of a list of items, a fairly common idiom is&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(or foo bar baz mumble foobar)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;which will return the result of the first non-nil expression in that list (unless all of the expressions evaluate to nil, in which case it will return nil).&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-10-20T13:00:29.473" LastActivityDate="2010-10-20T13:00:29.473" />
  <row Id="13153" PostTypeId="2" ParentId="13101" CreationDate="2010-10-20T00:47:15.617" Score="0" ViewCount="" Body="&lt;p&gt;Every vendor plays this game.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you go to an ordinary ISP, you can pay a few dollars per month and get a shared hosting package, where everyone shares the same hardware and you have little control over the environment.  Or, you can pay a few hundred dollars per month, and they will give you your own machine, let you have full control over it, and provide support and backups.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Vendors can give you a shared account for less, because they can control the environment, and they get economies of scale.  If you want them to build you a custom infrastructure, it's going to cost more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As with all things, it really depends on what you want to do, how much you are willing to pay, and what tradeoffs you are willing to make.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-10-20T00:47:15.617" />
  <row Id="13154" PostTypeId="2" ParentId="13142" CreationDate="2010-10-20T01:09:41.400" Score="6" ViewCount="" Body="&lt;p&gt;Executive Summary:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Put the &lt;strong&gt;important facts at the top&lt;/strong&gt; then expand below. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Details:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I have a long technical email that I fear will lose half the audience, I make an effort to put a short, accurate &quot;executive summary&quot; at the top, and include the complete technical details below.   Selective use of bold or underlining also helps.  &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-20T01:09:41.400" CommentCount="5" />
  <row Id="13155" PostTypeId="2" ParentId="13142" CreationDate="2010-10-20T01:11:43.377" Score="0" ViewCount="" Body="&lt;p&gt;Write a succinct message and for things you think people may want details, provide hyper links to external Wiki pages from Wikipedia, eHow or even pages written by yourself.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-20T01:11:43.377" />
  <row Id="13156" PostTypeId="2" ParentId="12877" CreationDate="2010-10-20T01:12:15.120" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Fountain pens (at least two, preferably full of Noodler's Bulletproof or Warden ink)&lt;/li&gt;&#xA;&lt;li&gt;Post-its&lt;/li&gt;&#xA;&lt;li&gt;Notebook&lt;/li&gt;&#xA;&lt;li&gt;Day planner (yes, I use a paper planner)&lt;/li&gt;&#xA;&lt;li&gt;List pad&lt;/li&gt;&#xA;&lt;li&gt;Stickers (necessary motivator for after school time when my 7yo does his homework in my office)&lt;/li&gt;&#xA;&lt;li&gt;Highlighters&lt;/li&gt;&#xA;&lt;li&gt;Stapler&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-10-20T01:12:15.120" />
  <row Id="13157" PostTypeId="2" ParentId="12807" CreationDate="2010-10-20T01:25:26.373" Score="1" ViewCount="" Body="&lt;p&gt;Ah yes, but what if the variable is nullable? (bool?) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some languages (C#) will require and cast or comparison with 'true'.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;bool? isAccepted = true;&#xA;&#xA;if((bool)isAccepted)&#xA;{...}&#xA;&#xA;if(isAccepted == true)&#xA;{...}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" LastActivityDate="2010-10-20T01:25:26.373" CommunityOwnedDate="2010-10-20T01:25:26.373" />
  <row Id="13158" PostTypeId="2" ParentId="9621" CreationDate="2010-10-20T01:38:47.187" Score="0" ViewCount="" Body="&lt;p&gt;Hey there!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started programming pretty young, and have since taught it.  I &lt;em&gt;absolutely&lt;/em&gt; agree with those who have warned not to start with a scripting language that abstracts too much of what is going on.  Many such languages are useful to learn, but not as a first language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good first language is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Strongly typed&lt;/strong&gt; (meaning that you must treat integers like integers, floating point numbers like floating point numbers, characters like characters, etc.)  Programmers who start out in loosely-typed languages tend to be missing a fundamental sense of the nature of data handling when they get to the point of designing data structures of their own.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Widely used in the professional world&lt;/strong&gt;.  There are a number of languages touted as &quot;learning languages&quot; that no one actually uses for production code...learning them will not teach one how to write good production-quality code.  Many teachers have this idea that the code we write to learn to code should be different than the code we write to use: I really don't get the point of the learning phase if it isn't focused on the skills needed to write usable code.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Compiled&lt;/strong&gt; (as opposed to scripting languages which are interpreted as they are run, rather than compiled into a binary executable first)  Compiled languages, quite frankly, force one to write better code.  You can make a very major mistake in a scripted language, and if you don't happen to try the thing that is broken, you will never know it.  On the other hand, a seriously broken piece of code in a compiled language will fail to compile, forcing the coder to find and fix the mistake.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;An open standard&lt;/strong&gt;  Any language whose owner keeps tight control over its use, who may write compilers, etc., such as anything from MS or Adobe, will have its own little perversions of the developer experience that exist not for technical, but for legal or business reasons.  A good first language will have been put together with technical needs first, so that the developer experience makes sense, even to a newbie.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Finally, there is a lot of discussion about whether a procedural language or an object-oriented language should come first.  I see this question as a matter of taste, though I lean toward object-oriented languages because an OO language can be used to write either OO or strictly procedural code if desired: the same is not true of procedural languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Languages I will &lt;strong&gt;not&lt;/strong&gt; recommend as first languages:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Java  (owned and tightly controlled, not open)&lt;/li&gt;&#xA;&lt;li&gt;Python (interpreted, not compiled, and not typed let alone strongly typed)&lt;/li&gt;&#xA;&lt;li&gt;Ruby (see Python)&lt;/li&gt;&#xA;&lt;li&gt;.Net (not open, not strongly typed)&lt;/li&gt;&#xA;&lt;li&gt;Mono (attempt at an almost-free .net, suffers from .net's issues)&lt;/li&gt;&#xA;&lt;li&gt;Erlang (not widely used in production code)&lt;/li&gt;&#xA;&lt;li&gt;Lua (interpreted, not strongly typed, not widely used)&lt;/li&gt;&#xA;&lt;li&gt;Pascal (designed as a &quot;learning language&quot; not widely used in production)&lt;/li&gt;&#xA;&lt;li&gt;COBOL, FORTRAN (though still occasionally used, not widely used today and mostly of historical interest)&lt;/li&gt;&#xA;&lt;li&gt;PHP (interpreted, not compiled, not strongly typed)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I prefer to teach C or C++ as a first language.  For those who say your child is too young: I was a 13yo living on a hog farm without much exposure to the outside world, except by internet, when I learned it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All that said, I'm currently working on a modular curriculum for Middle-school through high-school extracurricular computer clubs, I'd love to have your family's input, and to provide some early drafts of units for you to try out and review!  You can reach me via the contact page on my blog at &lt;a href=&quot;http://binaryredneck.net&quot; rel=&quot;nofollow&quot;&gt;http://binaryredneck.net&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regards,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Susan&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-10-20T01:38:47.187" CommentCount="1" />
  <row Id="13159" PostTypeId="2" ParentId="13142" CreationDate="2010-10-20T01:46:18.500" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Wherever you can, link to an existing reference when a long explanation is needed, instead of including the entire explanation in the email.&lt;/li&gt;&#xA;&lt;li&gt;Think about what the recipient wants to &lt;em&gt;do&lt;/em&gt; with the information, and give them exactly enough to do that.  Most non-hackers don't want to know any more than they need to get their task at hand done, and anyone who needs more will ask you.&lt;/li&gt;&#xA;&lt;li&gt;As a general rule, when dealing with non-hackers, any email over one printed page in length (600 or so words) is too long.  Either cut down on the verbiage, or beak most of it out to a link you can reference or a document you can attach.  For example, 2,000 words of documentation should become a manual that you link to from or attach to the email.  This makes it easier to keep the documentation updated and under revision control, too!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-10-20T01:46:18.500" />
  <row Id="13160" PostTypeId="2" ParentId="12877" CreationDate="2010-10-20T02:00:10.647" Score="3" ViewCount="" Body="&lt;p&gt;A binder machine - it doesn't cost &lt;em&gt;that&lt;/em&gt; much for it to be thought about, and man, it can turn a messy office full of papers flying about into a (&lt;em&gt;well, let's not get ahead of ourselves here&lt;/em&gt;) relatively (&lt;em&gt;very :-)&lt;/em&gt;  tidy office.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only kidding of course. Paper is still paper, and this primitive thing, really helps it get sorted/binded nicely, without a book binding shop around.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://www.mybinding.com/www.mybinding.com/megabind1.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-20T02:00:10.647" />
  <row Id="13161" PostTypeId="2" ParentId="13121" CreationDate="2010-10-20T02:16:19.237" Score="0" ViewCount="" Body="&lt;p&gt;I think that, like a lot of other things in programming, you need balance. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find a solution that is both good enough and doesn't require too much work (as it is a prototype anyway and you will probably change lots of other things). Next when you got the things mostly finished, you can try to see where it can be made truly good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't skimp too much on the good enough part though, if your code is too bad (usually I think that adding a variable is not a problem, the big problem is lack of structure) you won't see the good change that needs to be done later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think as long as you keep a somewhat clear structure in your design, the rest is not that much important as it will be easily refactored out later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again, in the end, you are the programmer and you are the one in charge of taking the right decision regarding code clarity, time to implementation, etc. Don't try to fit a one-size-fit-all rule if you think it won't work.&lt;/p&gt;&#xA;" OwnerUserId="3063" LastActivityDate="2010-10-20T02:16:19.237" />
  <row Id="13162" PostTypeId="2" ParentId="12807" CreationDate="2010-10-20T02:26:22.280" Score="0" ViewCount="" Body="&lt;p&gt;Comparing booleans can actually cause major problems. I recently ran into some intern code that read:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(foo == false &amp;amp;&amp;amp; bar == 2) {...}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now, this seems pretty straight-forward, right? Just simplify it down to:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(!foo &amp;amp;&amp;amp; bar == 2) {...}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Wrong. In this case, order of operations dictates that the &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt; gets evaluated first, meaning that this really evaluates to:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(foo == (false &amp;amp;&amp;amp; bar == 2))&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;also known as&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(!foo)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That extra thing we were supposed to be checking for, &lt;code&gt;bar == 2&lt;/code&gt;, is totally gone. That is why I will never, ever approve a code review that contains &lt;code&gt;someBool == [true|false]&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(You can see how the reverse statement, &lt;code&gt;== true&lt;/code&gt; and &lt;code&gt;||&lt;/code&gt;, would also cause problems.)&lt;/p&gt;&#xA;" OwnerUserId="5786" LastActivityDate="2010-10-20T02:26:22.280" CommunityOwnedDate="2010-10-20T02:26:22.280" />
  <row Id="13163" PostTypeId="2" ParentId="12958" CreationDate="2010-10-20T02:28:57.343" Score="3" ViewCount="" Body="&lt;p&gt;Lack of recognition and reward for effort...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a common issue in software development (and in salaried knowledge work in general), but it is particularly pronounced in my current role - where the product I'm working on is a massive, 7-figure per month cash cow for the company. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's very demotivating to think of the huge packages, options, and big fat bonuses the higher-ups get (often in a year when a feature I implemented sells a large number of extra licenses) - while I get the same salary no matter how much, or how little, effort I put in. It tends to put me in the burned out, unmotivated, &quot;working just hard enough not to get fired&quot; mentality of Peter Gibbons from &lt;em&gt;Office Space&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-20T02:28:57.343" />
  <row Id="13164" PostTypeId="2" ParentId="13044" CreationDate="2010-10-20T02:30:34.003" Score="2" ViewCount="" Body="&lt;p&gt;I don't know that this is the most ridiculous thing, but it was a complete waste of time. At my job, I'm in the graphics department. We have a standalone laptop segregated from the network, just for the sole purpose of running a PowerPoint slideshow down to a television in the lobby. From time to time we create new slides and update it (by burning the slides to CD from another machine; we can't use flash drives), but there's one particular slide that stays around. It's a weather slide, it displays the current date, and the seven-day forecast (day, date, weather conditions and image, precipitation percentage, high temperature, and low temperature). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I first started, the job of updating this slide was thrown to me. That consisted of turning off the display in the lobby, then going to my desktop computer, pulling up weather.com, copying down the information manually into the slide, then saving the slide to CD, and moving it to the laptop. Took a good 10-15 minutes every morning, not to mention I didn't come in until 8 AM, so everyone there early that morning would see the incorrect date on the slide, until I was able to update it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my free time the next few days, I learned enough VBA (which I still don't like...) to write up a script that would update the current date, and change the dates for the next 7 days, and set it up to run every day at midnight. Unfortunately, it's still not connected to a network (security reasons...), otherwise I'd find a way to just automate the weather data import from the internet, but I at least put together a simple form that let me type the conditions, precipitation, and temperatures, and it inserts that data and an associated (e.g. cloudy) image where they should go. &lt;/p&gt;&#xA;" OwnerUserId="5787" LastActivityDate="2010-10-20T02:30:34.003" />
  <row Id="13166" PostTypeId="2" ParentId="3066" CreationDate="2010-10-20T02:43:21.300" Score="2" ViewCount="" Body="&lt;p&gt;As a C# programmer who has recently been exploring F# by reading &lt;a href=&quot;http://www.ctocorner.com/fsharp/book/default.aspx&quot; rel=&quot;nofollow&quot;&gt;The F# Survival Guide&lt;/a&gt;, I can't help thinking that if I'd been exposed to it back when we were still using C# 2.0, I would have thought it was awesome. Now, however, that C# 3.0 has added LINQ and type inference and anonymous types and lambda expressions and all the fun with IEnumerables, I feel like all the things would have been better expressed in F# can now be expressed pretty damn well in C# too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, as a stylistic judgement, my gut feeling that there was way too much going on with punctuation. Too many pipes and underscores and multi-symbol constructs like [| and -&gt; and (| and (_). Reminded me of Perl. I just find that too much meaning attached to punctuation makes for completely unreadable code.&lt;/p&gt;&#xA;" OwnerUserId="4217" LastEditorUserId="4217" LastEditorDisplayName="" LastEditDate="2010-10-20T02:48:55.763" LastActivityDate="2010-10-20T02:48:55.763" CommentCount="2" />
  <row Id="13167" PostTypeId="2" ParentId="12915" CreationDate="2010-10-20T02:44:26.490" Score="1" ViewCount="" Body="&lt;p&gt;I agree with the code review and branching advise already given. I would also have them participate in design reviews. Have them peer review your design and you peer review their design. That way they learn and hopefully implement better code and design and sometimes newbies point out things that you missed just because they don't assume as much as experienced people.&lt;/p&gt;&#xA;" OwnerUserId="3697" LastActivityDate="2010-10-20T02:44:26.490" />
  <row Id="13168" PostTypeId="2" ParentId="1785" CreationDate="2010-10-20T02:47:09.683" Score="1" ViewCount="" Body="&lt;p&gt;Some of these have been posted already, but here is my list:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Build to the requirements, don't add things you don't need, especially if you &quot;think&quot; you will. If you need it later, add it then.&lt;/li&gt;&#xA;&lt;li&gt;How to use Google search. Don't bother your co-worker, until you've looked.&lt;/li&gt;&#xA;&lt;li&gt;Don't be clever.&lt;/li&gt;&#xA;&lt;li&gt;It's not done till it's meets ALL the requirements, tested, documented, and checked into SVN.&lt;/li&gt;&#xA;&lt;li&gt;Proper coding standards, eg: naming conventions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5662" LastActivityDate="2010-10-20T02:47:09.683" CommunityOwnedDate="2010-10-20T02:47:09.683" />
  <row Id="13169" PostTypeId="2" ParentId="13053" CreationDate="2010-10-20T03:04:24.197" Score="4" ViewCount="" Body="&lt;p&gt;before generics there was template, and before that macro substitution.&lt;/p&gt;&#xA;" OwnerUserId="3733" LastActivityDate="2010-10-20T03:04:24.197" CommentCount="1" />
  <row Id="13170" PostTypeId="2" ParentId="12958" CreationDate="2010-10-20T03:04:46.177" Score="2" ViewCount="" Body="&lt;p&gt;These 2 tie for my top one:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Turn my work into a nasty hydra.  This where for anything I do finish, 3 new tasks appear as something to do ASAP.  Repeat this enough and suddenly I have a 101 things on my to-do list and I know that some of those will never get done.  The lack of getting something done is rather annoying here.  I call it a hydra as this was the mythical beast that any head it lost was replaced by two new ones.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Constantly reorganizing my work as I'm trying to do it.  So something that would take 3 days gets a day in and then it is &quot;Drop everything and get THIS done NOW!&quot; though I have seen worse.  Imagine only getting 20 minutes to get into something before getting a, &quot;Hold everything, this will make us millions!&quot; or a &quot;Boo-ya, this will make billions!&quot; and so nothing is getting done as even basic work like what is to be done hasn't been flushed out really.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-20T03:04:46.177" />
  <row Id="13171" PostTypeId="2" ParentId="1785" CreationDate="2010-10-20T03:10:08.457" Score="0" ViewCount="" Body="&lt;p&gt;every programmer should have a firm grounding in software engineering, and also system analysis/design and information systems concepts. this way if they are called upon to contribute substantially to systems analysis/design and/or information architecture, they will be in a position of knowledge + opionion..whereas normally it seems to be just personal opinion that usually simply stems from personal preferences instead of best problem solution. software engineering is a bit harder to measure, but the pre-requisite knowledge is available out there, and at suitable university degree courses where they teach more than just how to cobble a bit of code together.&#xA;anyway this is not meant to be negative because the main spirit is but improvement, but then i've worked with some people who have no IT knowledge whatsoever or there's the single minded &quot;script kiddies&quot; that code and re-code (and only in their language of choice) and only see every problem as a repeat of previously applied solutions (by that coder.)&#xA;so i would much prefer if programmers concentrated more on the larger picture in terms of software engineering (SSADM) and looked at problems as opportunities to do better for the client.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-20T03:10:08.457" CommunityOwnedDate="2010-10-20T03:10:08.457" CommentCount="1" />
  <row Id="13172" PostTypeId="1" CreationDate="2010-10-20T03:21:31.660" Score="8" ViewCount="229" Body="&lt;p&gt;I have a strong interest in creating and learning about highly scalable web sites and applications which deal with Big Data. For example, many world class web companies and startups such as Twitter, Facebook, Google, etc deal with massive amounts of data and their software engineers use tools such as Hadoop/MapReduce, Cassandra/memcache, and other algorithms and techniques and tools to make sense of this data. To me this is a very interesting and challenging area and much more invigorating than just creating yet another e-commerce or web portal for a commercial company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Naturally working at a typical software development firm won't get you experience with this level of massively distributed data processing opportunity, and very few if any people have access to cpu clusters to run Hadoop, DryadLinq, etc. I wanted to inquire if there are certain geographic areas in the countries which have companies dealing with such Big Data problems - Silicon Valley would be an obvious one, any others? Also, feel free to mention any non-obvious startups and companies which are dealing with such challenging problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Just read this recent article by Matt Welsh of Harvard on his (sabbatical) at Google and the scale of problems he's working on (he sounds clearly excited): &lt;a href=&quot;http://matt-welsh.blogspot.com/2010/10/computing-at-scale-or-how-google-has.html&quot; rel=&quot;nofollow&quot;&gt;http://matt-welsh.blogspot.com/2010/10/computing-at-scale-or-how-google-has.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Found another new link on getting experience with large scale data at government institutions &lt;a href=&quot;http://www.cloudera.com/blog/2010/11/tackling-large-scale-data-in-government/&quot; rel=&quot;nofollow&quot;&gt;http://www.cloudera.com/blog/2010/11/tackling-large-scale-data-in-government/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&lt;/p&gt;&#xA;" OwnerUserId="4378" LastEditorUserId="4378" LastEditorDisplayName="" LastEditDate="2010-11-02T20:24:17.887" LastActivityDate="2010-12-19T09:09:31.583" Title="Where to get experience with Big Data ?" Tags="&lt;career&gt;&lt;software-developer&gt;&lt;scalability&gt;" AnswerCount="4" />
  <row Id="13173" PostTypeId="2" ParentId="13128" CreationDate="2010-10-20T03:33:07.827" Score="-1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.mathworks.com/products/matlab/&quot; rel=&quot;nofollow&quot;&gt;Matlab&lt;/a&gt; and &lt;a href=&quot;http://www.maplesoft.com/&quot; rel=&quot;nofollow&quot;&gt;Maple&lt;/a&gt; would be a couple of software products that could be worth digging into somewhat if you want to mix Math and Computer Science.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS - Yes I did use both of these products in university in a course each, one for Numerical Analysis and the other Symbolic Computation.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-20T03:33:07.827" />
  <row Id="13174" PostTypeId="2" ParentId="13128" CreationDate="2010-10-20T03:54:47.493" Score="0" ViewCount="" Body="&lt;p&gt;In places that make high tech things (physical things, not bits), there are often systems analyst positions whose job is to write programs with mathematical models of the new tech, or create sophisticated analysis algorithms for the data gathered in testing.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This may require more of an engineering than a pure math background, but it is certainly a position that uses advanced math every day.  &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-20T03:54:47.493" />
  <row Id="13175" PostTypeId="2" ParentId="1785" CreationDate="2010-10-20T04:07:15.640" Score="0" ViewCount="" Body="&lt;p&gt;It stands in a few letters, really:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/RTFM&quot; rel=&quot;nofollow&quot;&gt;RTFM&lt;/a&gt; (and for the kewl kidz today: &lt;a href=&quot;http://en.wikipedia.org/wiki/JFGI&quot; rel=&quot;nofollow&quot;&gt;JFGI&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/DRY&quot; rel=&quot;nofollow&quot;&gt;DRY&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/KISS_principle&quot; rel=&quot;nofollow&quot;&gt;KISS&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/The_Hitchhiker%27s_Guide_to_the_Galaxy&quot; rel=&quot;nofollow&quot;&gt;H2G2&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Ok, I'm over-simplifying, but basically if you are pretty autodidact, never stop to learn, and are a bit of a perfectionist, you should have the basis to become a good programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anything beyond that would be more specific to particular roles and technologies.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-10-20T04:19:31.807" LastActivityDate="2010-10-20T04:19:31.807" CommunityOwnedDate="2010-10-20T04:07:15.640" />
  <row Id="13176" PostTypeId="2" ParentId="13006" CreationDate="2010-10-20T04:23:22.760" Score="0" ViewCount="" Body="&lt;p&gt;To really get motivated and to be able to learn from other peoples code you could start looking at some open source. With limited knowledge it would probably take you a while before you felt like you could contribute but it would give you real-world problems to solve and there would be real people out there using it which is fun.&lt;/p&gt;&#xA;" OwnerUserId="3697" LastActivityDate="2010-10-20T04:23:22.760" />
  <row Id="13177" PostTypeId="2" ParentId="13172" CreationDate="2010-10-20T04:24:12.873" Score="1" ViewCount="" Body="&lt;p&gt;Look into &lt;strong&gt;retail systems programming&lt;/strong&gt;.  You deal with many, many millions of records per day that go into OLTP systems (not just cubes or OLAP) via ETL alone, and blown out to several factors more in mastered records.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal opinion on this is that traditional data management (e.g. RDBMSs) do a stand-up job at managing and querying these data as long as the schema is intelligently designed (what's new) without having to resort to interesting data management alternatives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Anecdote&lt;/strong&gt;: With large data sets as described you can't be afraid to scale up rather than take the scale-out approach.  Many years back we were processing what amounted to cartesian joins on 4-to-5-million-record-per-day data; think combinatorics.  We had a &quot;cluster&quot; of 52 blades listening on a queue of data subsets and then doing smaller calculations with resubmittal back into the MQ.  &lt;em&gt;Sound familiar?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We ended up processing 24 hours of data in 26 hours, losing ground every day.  Dozens of people trying to optimize, myself included, taking weeks and weeks.  Finally this old, cool and collected DBA convinced the IT dept to get a lease on a 24-way IBM pSeries (which was really big back then) with some blazing DASD.  He stayed up one night writing a few monster SQL statements and ended up processing the same 24 hours of data in about 16 hours.  &lt;em&gt;Taught me a big lesson that next day.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other areas include equity and market data, GIS, and other areas where you have discreet data points that need evaluation.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="2274" LastEditorDisplayName="" LastEditDate="2010-10-20T04:35:02.523" LastActivityDate="2010-10-20T04:35:02.523" CommentCount="1" />
  <row Id="13178" PostTypeId="1" CreationDate="2010-10-20T04:29:07.987" Score="2" ViewCount="218" Body="&lt;p&gt;I graduated last year may and I got job on august last year ( 3 months gap). Do I need to mention in my resume as a gap or can I leave it ? Because my employer asked me mention any gaps in my resume.&lt;/p&gt;&#xA;" OwnerUserId="5791" LastActivityDate="2010-10-20T15:32:16.730" ClosedDate="2010-10-20T17:30:08.963" Title="Question regarding my resume" Tags="&lt;resume&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="1" />
  <row Id="13179" PostTypeId="2" ParentId="1280" CreationDate="2010-10-20T04:32:16.360" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Share Nothing architecture.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that in mind, and contrary to what you might think, don't jump to a scale-out solution right away.  The off-system overhead vs. an in-system call should not be under-weighed.  For instance, it takes a LOT longer to make an DB connection across any network interface than it does to make a local call.  Budget how much time in management, power, and tuning effort is needed in scale-out vs. the extra $ for a true large system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless, I there is still great value in &quot;share nothing&quot; architectures and you can layer and scale-out your systems when the time comes.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-10-20T04:32:16.360" />
  <row Id="13180" PostTypeId="2" ParentId="13128" CreationDate="2010-10-20T04:32:55.803" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Search (google)&lt;/li&gt;&#xA;&lt;li&gt;spam detection&lt;/li&gt;&#xA;&lt;li&gt;deep packet inspection (automating finding new signatures)&lt;/li&gt;&#xA;&lt;li&gt;image/audio/video processing (text to speech, image search, speech recognition, video optimization, video conversion based on user's screen size etc)&lt;/li&gt;&#xA;&lt;li&gt;compression, security and cryptography&lt;/li&gt;&#xA;&lt;li&gt;any kind of simulation (building resistance to earthquakes, F1 car's behavior towards wind etc).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-20T04:32:55.803" />
  <row Id="13181" PostTypeId="2" ParentId="13178" CreationDate="2010-10-20T04:34:38.973" Score="3" ViewCount="" Body="&lt;p&gt;In this day and age, three months (sometimes longer) is more than typical for the amount of time a programmer would spend seeking employment. I spent (nearly) nine months looking around the last time I made a lateral career change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would only elaborate on that small of a gap if you did something meaningful in that amount of time, such as contributed significantly to an open source project, did charity work, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm someone that is in charge of hiring programmers, and I would not consider anything less than ~6 months to be a 'gap'. My point of view is from the US And SE Asia (Philippines), I'm not sure what would be customary in other countries.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-10-20T04:34:38.973" CommentCount="2" />
  <row Id="13182" PostTypeId="2" ParentId="13128" CreationDate="2010-10-20T04:47:59.233" Score="1" ViewCount="" Body="&lt;p&gt;I work in the IAAS industry (Infrastructure As A Service) and find my job to be extremely challenging and rewarding. I'm constantly refining how virtual machines are migrated to achieve the best utilization and density, how to determine when something needs to scale and by what magnitude, when something should relinquish resources and writing more 'intelligent' load balancing algorithms. Studying various hypervisor implementations and working with them is also very interesting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also work on fraud detection, intrusion detection, algorithms to help differentiate between benign and malicious activity when given nearly identical patterns and many other interesting things. Some have already mentioned SPAM detection, which becomes our responsibility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is also ample opportunity in storage systems research.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have never liked 'straight' application development. I've always been a systems programmer. It is 'researchy' enough for me while providing rapid gratification when something I've worked on is deployed and becomes useful.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-10-20T04:47:59.233" />
  <row Id="13183" PostTypeId="2" ParentId="1785" CreationDate="2010-10-20T04:48:34.047" Score="3" ViewCount="" Body="&lt;h2&gt;Evaluation.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;A programmer ought to know how the statements they write are evaluated. &lt;code&gt;a(line.of(code) is aSequenceOf(evaluations))&lt;/code&gt; and if you don't understand what that line looks like after each step of its evaluation, you are going to be extremely restricted as a programmer in your ability to take advantage of language features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not just talking about the basic&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (bool == false):&#xA;    return true&#xA;else:&#xA;    return false&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;which of course can just be replaced by &lt;code&gt;return !bool&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm also referring to the ability to understand your language to the point where you can come up with something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;string[] thingsToOutput;&#xA;for(int i = 0; i &amp;lt;= thingsToOutput.Length; print(thingsToOutput[i++]));    &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;When I first saw a statement like that it blew my mind a little bit; it hadn't occurred to me I could leverage the for loop in such a way. The person who wrote that statement more fully understood the possibilities available to them - they saw more open doors than I, which gave them more freedom and power in their ability to design code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, whether it's &lt;strong&gt;good&lt;/strong&gt; code is an issue - whether any of those doors &lt;strong&gt;should&lt;/strong&gt; be opened - that's up to debate. It remains that &lt;strong&gt;with great power comes great responsibility&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5570" LastEditorUserId="5570" LastEditorDisplayName="" LastEditDate="2010-10-20T04:56:57.880" LastActivityDate="2010-10-20T04:56:57.880" CommunityOwnedDate="2010-10-20T04:48:34.047" CommentCount="1" />
  <row Id="13184" PostTypeId="2" ParentId="13178" CreationDate="2010-10-20T04:50:22.517" Score="1" ViewCount="" Body="&lt;p&gt;No need to mention the gap. I heard a statistic recently say it takes people an average of 6 months to find a new job. I have hired before and wouldn't even think twice about a 3 month gap especially following school.&lt;/p&gt;&#xA;" OwnerUserId="3697" LastActivityDate="2010-10-20T04:50:22.517" />
  <row Id="13185" PostTypeId="1" AcceptedAnswerId="13200" CreationDate="2010-10-20T04:50:40.490" Score="4" ViewCount="77" Body="&lt;p&gt;I like to learn Smalltalk. How should I start? Any suggestions regarding books or tutorials?&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-10-20T06:26:26.200" LastActivityDate="2010-10-20T06:26:26.200" Title="Smalltalk learning resources" Tags="&lt;learning&gt;&lt;resources&gt;&lt;suggestions&gt;&lt;smalltalk&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="1" />
  <row Id="13186" PostTypeId="2" ParentId="13178" CreationDate="2010-10-20T04:51:13.327" Score="1" ViewCount="" Body="&lt;p&gt;I would recommend, that you just leave that gap out, and just write your resume without it, and if he notices your gap, just tell him that you were job-seeking, or worked on an open-source project, or whatever...&lt;strong&gt;For all he/she knows, you just needed some time off...&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="4442" LastActivityDate="2010-10-20T04:51:13.327" />
  <row Id="13188" PostTypeId="2" ParentId="13100" CreationDate="2010-10-20T04:57:55.853" Score="0" ViewCount="" Body="&lt;p&gt;Although they are separate books for the different languages, I've gotten a good head start in catching up with the &lt;em&gt;Accelerated&lt;/em&gt; books from &lt;a href=&quot;http://apress.com&quot; rel=&quot;nofollow&quot;&gt;Apress&lt;/a&gt;, including:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://amzn.to/bAyaGv&quot; rel=&quot;nofollow&quot;&gt;Accelerated C# 2010&lt;/a&gt; (also available: 2008, 2005)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://amzn.to/ayqc9q&quot; rel=&quot;nofollow&quot;&gt;Accelerated VB.Net 2008&lt;/a&gt; (also available: 2005)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;They also have similar titles for SQL Server, Silverlight and a few other topics.&lt;/p&gt;&#xA;" OwnerUserId="146" LastActivityDate="2010-10-20T04:57:55.853" />
  <row Id="13189" PostTypeId="2" ParentId="4863" CreationDate="2010-10-20T05:11:06.963" Score="3" ViewCount="" Body="&lt;p&gt;Gosu is a programming language for the Java Virtual Machine (JVM). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Gosu&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;is object oriented&lt;/li&gt;&#xA;&lt;li&gt;is statically typed&lt;/li&gt;&#xA;&lt;li&gt;is imperative&lt;/li&gt;&#xA;&lt;li&gt;features type inference&lt;/li&gt;&#xA;&lt;li&gt;supports closures&lt;/li&gt;&#xA;&lt;li&gt;provides simplified generics&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-10-20T05:11:06.963" CommunityOwnedDate="2010-10-22T23:54:06.263" />
  <row Id="13190" PostTypeId="1" AcceptedAnswerId="13202" CreationDate="2010-10-20T05:20:28.187" Score="11" ViewCount="257" Body="&lt;p&gt;One of our junior developers has been assigned a new client (we don't have the client yet, we're still working with him to see if we can meet his needs) and the junior developer said the client will hire us if we can do the work on his project without getting access to his server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had a direct conversation with the client who turned out to have had his code stolen before by some offshore company that he outsourced. This made me more sympathetic but I still have mixed feelings about this. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On one hand I want to prove to the client that we're not all bad apples. Also if we do a good job with him, we get a loyal client who'll hire us for all his projects. I haven't heard of this happen before but I guess it happens more often than we'd all like to admit. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand I'm hesitant to accept working with him because deployment time is going to be a nightmare and no where in my career or education has anyone taught me how to work with clients like him. I (or the junior developer) would have to write a detailed description of exactly what to do with the source to deploy it and that is an annoying burden when I could deploy and test the whole thing in an hour myself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I said, I've never had to deal with this before (we're signing a non-disclosure but apparently so did the offshore company before us). We're not fully fully booked so it's not like I have an immediate replacement, but we're not begging for work either and I wonder if working under such restricted environment is worth the trouble. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another side is that the experience itself could be rewarding for us, but is it experience worth having, as in what's even the likelihood of getting a similar client anytime soon. Are we even expected to comply with such clients?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So since I don't have any first hand experience with this and it definitely wasn't covered in school, how would those with longer experience working with clients deal with a distrusting client like this? Would you even accept the job?&lt;/p&gt;&#xA;" OwnerUserId="5794" LastActivityDate="2010-10-20T14:54:32.887" Title="Is it possible to work with distrusting clients" Tags="&lt;web-development&gt;" AnswerCount="6" />
  <row Id="13191" PostTypeId="2" ParentId="2699" CreationDate="2010-10-20T05:21:59.230" Score="4" ViewCount="" Body="&lt;p&gt;The Background &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In a mission critical WCF application driving a website and providing backend trasactional processing..&lt;/li&gt;&#xA;&lt;li&gt;Large Volume application(hundreds of calls per second)&lt;/li&gt;&#xA;&lt;li&gt;Multiple server multiple instances   &lt;/li&gt;&#xA;&lt;li&gt;hundreds of passed unit test and countless QA attacks &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The Bug &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When moved to production the server would run fine for a random amount of time then begin to rapidly degrade and take the box CPU to 100%. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;How I found it &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At first I was sure this was a normal performance problem so I create elaborate logging. Checked performance on every call talked to the database people about utilization watched the servers for issues. 1 week &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I was sure I had a thread contention issue.  I checked my deadlocks attempted to create the situation create tools to attempt to create the situation in debug. With growing management frustration I turned to my peers how suggested things from restarting the project from scratch to limiting the server to one thread. 1.5 weeks &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I looked at  &lt;a href=&quot;http://blogs.msdn.com/b/tess/&quot; rel=&quot;nofollow&quot;&gt;Tess Ferrandez&lt;/a&gt; blog created a user dump file and annalized it with windebug the next time the server took a dump.  Found that all my threads were stuck int the dictionary.add function. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The long the short one small dictionary that just kept track of which log to write x threads errors to was not synchronized.  &lt;/p&gt;&#xA;" OwnerUserId="4553" LastActivityDate="2010-10-20T05:21:59.230" />
  <row Id="13192" PostTypeId="2" ParentId="13072" CreationDate="2010-10-20T05:23:49.603" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Jump Table&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;func *jumpTable[] = {FalseBranch, TrueBranch};&#xA;*(jumpTable[condition])(args...);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;One limitation is that all branches should be functions. Typically used in FSMs to achieve same performance no matter what the state or event is.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-20T05:23:49.603" />
  <row Id="13193" PostTypeId="2" ParentId="13100" CreationDate="2010-10-20T05:28:39.033" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;.NET Library, not .NET Book(s)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Get yourself some form of digital library, like &lt;a href=&quot;http://my.safaribooksonline.com/&quot; rel=&quot;nofollow&quot;&gt;O'Reilly Safari&lt;/a&gt; or &lt;a href=&quot;http://www.amazon.com/kindle-store-ebooks-newspapers-blogs/b?ie=UTF8&amp;amp;node=133141011&quot; rel=&quot;nofollow&quot;&gt;Amazon Kindle Reader&lt;/a&gt;. &lt;/li&gt;&#xA;&lt;li&gt;Find the topic that you're interested in today.  It could be &quot;Learning C#&quot; or &quot;Using Databases in C#&quot;&lt;/li&gt;&#xA;&lt;li&gt;Go to your search bar in your library (e.g. Safari search or Amazon.Com Kindle Store search).  Type in the term you figured out above.&lt;/li&gt;&#xA;&lt;li&gt;Take the top two books in the search result list based on popularity.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I like both libraries and use both every week.  The pros are:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Kindle&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Reads offline&lt;/li&gt;&#xA;&lt;li&gt;I like the 'feel' of Kindle reader better than Safari book view&lt;/li&gt;&#xA;&lt;li&gt;Reviews tend to be a bit more detailed.  References to related works is generally better.&lt;/li&gt;&#xA;&lt;li&gt;Does a better job of saving my reading location and syncing between multiple devices.&lt;/li&gt;&#xA;&lt;li&gt;Buy once, read forever.  Don't lose your books if you don't want to pay a monthly subscription.&lt;/li&gt;&#xA;&lt;li&gt;Reads better on small devices like iPhone/iTouch/Android.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Safari&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Subscribe once, read any book in the library.  Cheaper on the pocketbook in the short term.&lt;/li&gt;&#xA;&lt;li&gt;Full text search of all books in the library, very useful for pulling up every chapter in every book that contains the phrase &quot;C# databases using linq&quot;.  Kindle can't match this :-(&lt;/li&gt;&#xA;&lt;li&gt;In the past, I've found the selection is better.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If I find a book I &lt;em&gt;really&lt;/em&gt; like in Safari, I'll buy the Kindle version even though it's already 'free' in my Safari subscription.  I think this comes down to liking the Kindle reading experience so much more that if I'm going to invest my time in thoroughly reading a book, I'd prefer to do it using Kindle.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-20T05:28:39.033" CommentCount="1" />
  <row Id="13194" PostTypeId="2" ParentId="13190" CreationDate="2010-10-20T05:35:02.643" Score="10" ViewCount="" Body="&lt;p&gt;You start working with the client. If there is no need of any other resources for completing your project, then you are through that restricted environment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if you feel a need to have something which is restricted to you, then talk to client about this issue. Do the critical stuff in front of him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And last option but better, since you are not begging for any work, Kick it off! ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By critical stuff, I meant access to the clients code.&lt;/p&gt;&#xA;" OwnerUserId="5443" LastActivityDate="2010-10-20T05:35:02.643" CommentCount="1" />
  <row Id="13195" PostTypeId="1" AcceptedAnswerId="13203" CreationDate="2010-10-20T05:39:04.870" Score="5" ViewCount="285" Body="&lt;p&gt;So the thing is I have learned a lot in school so now I'm about to finish and I find myself being a &quot;jack of all trades, master of none&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know this is a very subjective question but i need advice on where should I push now? based on this things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Current trends &lt;/li&gt;&#xA;&lt;li&gt;Return of Investment (Wanna get paid)&lt;/li&gt;&#xA;&lt;li&gt;I want to improve my programming skills&lt;/li&gt;&#xA;&lt;li&gt;Cool things you can do with the language&lt;/li&gt;&#xA;&lt;li&gt;Something I can capitalize on&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I currently have programmed in: c++, c#, objective c, java, perl, php, ruby, common lisp, actionscript, javascript, so it might be good to build on that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel like I have read all the intros to awesome books, yet finished none.&lt;/p&gt;&#xA;" OwnerUserId="5793" LastEditorUserId="5793" LastEditorDisplayName="" LastEditDate="2010-10-20T05:53:51.867" LastActivityDate="2010-10-20T22:06:03.247" Title="What should I learn now?" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;software&gt;&lt;skills&gt;" AnswerCount="6" CommentCount="5" FavoriteCount="4" />
  <row Id="13196" PostTypeId="2" ParentId="13143" CreationDate="2010-10-20T05:40:00.943" Score="5" ViewCount="" Body="&lt;p&gt;As the author of Lynda.com's &lt;a href=&quot;http://www.lynda.com/home/DisplayCourse.aspx?lpk2=375&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;JavaScript Essential Training&lt;/em&gt;&lt;/a&gt;, I feel like I kind of have to jump in here…&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IIRC, I covered variables and global versus local scope in Example 4 of Lesson 4 (&quot;Creating prompts for users&quot;) when I first talked about &lt;code&gt;var&lt;/code&gt;. If I wasn't clear enough, I apologize!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're looking for a solid beginner-level JavaScript book, may I suggest &lt;a href=&quot;http://www.javascriptworld.com&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;JavaScript &amp;amp; Ajax for the Web: Visual QuickStart Guide, 7&lt;sup&gt;th&lt;/sup&gt; edition&lt;/em&gt;&lt;/a&gt;? Yes, I'm the co-author (with Tom Negrino), but I've received a lot of compliments on it from people who had never previously written code—they said that other books just confused them, and ours was the first that didn't assume they were already programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's what it says on page 36:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Using &lt;code&gt;var&lt;/code&gt; does two things:&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;It tells JavaScript to create a variable (that is, to set aside some space in memory for this new object).&lt;/li&gt;&#xA;  &lt;li&gt;It defines the &lt;em&gt;scope&lt;/em&gt; of the variable, that is, where JavaScript needs to know about this particular object (see the &lt;em&gt;What Is Scope?&lt;/em&gt; sidebar). If a variable is created inside a function, other functions don’t have access to it, as it’s &lt;em&gt;local&lt;/em&gt; to that function. If it’s created outside any function, it’s &lt;em&gt;global&lt;/em&gt;, and everything has access to it. In this script, we’re creating the &lt;code&gt;ans&lt;/code&gt; global variable.&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You said your previous books were on AS, so hopefully &lt;em&gt;JS&amp;amp;A:VQS&lt;/em&gt; wasn't one of the books you had trouble with…&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if you have any further questions about particular bits of JavaScript code, &lt;a href=&quot;http://www.stackoverflow.com&quot; rel=&quot;nofollow&quot;&gt;StackOverflow&lt;/a&gt; is probably the place for them.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;sub&gt;Edited to add…&lt;/sub&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just my 2¢: I suggest that you—for now—ignore the Douglas Crockford recommendations. Yes, he does know his stuff (although I disagree with some of what he says, and I suspect he disagrees with 90% of how/what I teach) -- but I cannot honestly recommend his work for someone who doesn't have solid programming experience. His stuff is for intermediate/advanced-level scripters, not for someone at your current stage.&lt;/p&gt;&#xA;" OwnerUserId="99" LastEditorUserId="99" LastEditorDisplayName="" LastEditDate="2010-10-21T22:42:21.580" LastActivityDate="2010-10-21T22:42:21.580" CommentCount="2" />
  <row Id="13197" PostTypeId="2" ParentId="6352" CreationDate="2010-10-20T05:43:30.700" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Back to the Future&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back many moons ago, Microsoft was heavily investing in Java via &lt;a href=&quot;http://en.wikipedia.org/wiki/Visual_J%2B%2B&quot; rel=&quot;nofollow&quot;&gt;J++&lt;/a&gt;.  While many different motivations were ascribed to what was going on, the fact was that a lot of time &amp;amp; talent &amp;amp; resources were being invested in improving the Java environment and making it run really well on Windows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then Sun sued Microsoft and won a billion dollar settlement.  This made it obvious that it was in Microsoft's best fiscal interest to compete with, rather than cooperate with, Java.  C# was born very soon after.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Jump forward a decade.  It's now in Google's best fiscal interest to compete with, rather than cooperate with, Java.  I suspect that smart people inside Google will figure this out and make a very similar decision to the one Microsoft did.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2010-12-30T01:18:57.953" LastActivityDate="2010-12-30T01:18:57.953" CommentCount="1" />
  <row Id="13198" PostTypeId="2" ParentId="13195" CreationDate="2010-10-20T05:43:59.730" Score="4" ViewCount="" Body="&lt;p&gt;Teach yourself another language from a totally different paradigm. I can't explain the benefits better than &lt;a href=&quot;http://forums.xkcd.com/viewtopic.php?p=2335081#p2335081&quot; rel=&quot;nofollow&quot;&gt;this post at XKCD&lt;/a&gt;, so I'll quote it:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Learning new languages gives you more perspective on programming in general, and exposes new idioms and constructions that aren't as obvious in the languages you already know. You should seek out languages that are as different from what you already know as possible. Haskell is usually a good bet in that regard, as are lisp and smalltalk. Wikipedia also lists several different paradigms; you should know something about as many of them as possible, preferably by learning at least the basics of a language in that paradigm. I find it's usually best to learn the essentials of a paradigm by learning a language that focuses heavily on that paradigm. Multi-paradigm languages often lose or hide some of the finer points, like how C++/Java has an inferior object model to Smalltalk, Ruby and even JavaScript, because they just bolted on some of the OO concepts onto the then-prevailing paradigm instead of fully embracing the paradigm.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="5570" LastActivityDate="2010-10-20T05:43:59.730" CommentCount="4" />
  <row Id="13199" PostTypeId="2" ParentId="13195" CreationDate="2010-10-20T05:48:14.950" Score="5" ViewCount="" Body="&lt;p&gt;If you want to reinforce your chances of getting a position, focus on your C# and Java strengths. I am &lt;strong&gt;NOT&lt;/strong&gt; saying this is the only thing that will get you a job and that it will be the best job ever, just that they both have very strong markets. Knowing both extensively will make you marketable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And by this I mean you need to know extensively the platform, the language, the tools, the standards governing them, their tooling, and a big bunch of frameworks built on top of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think &quot;business&quot;: what are the current buzzwords? What companies deal with that? What technologies do they use? For now, it's all about how many times you can spell &quot;Cloud Computing&quot; and &quot;Social&quot; in your product's overview. So ask yourself: how do these thing run? What problems do they face?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the side, develop your more &quot;interesting&quot; skills. Pick up languages and technologies you like because they are elegant or represent - in your opinion - an improvement over the current trends, and be sure to know why and how that would give you a competitive edge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my daily job, I interview new recruits who all say they are &quot;proficient&quot; in a technology and have an &quot;advanced level&quot; when they are young graduates or after a few years of professional experience. The truth it, you might be a technical-expert (but probably NOT!), but you don't have much of a clue of anything linking it to business (not even if you had any sort of business management and strategy module, no. Forget it.). And then they look ridiculous when the most simple tricks show that they don't know the inner workings of their own tools. Keep studying and &lt;a href=&quot;http://norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;Teach yourself programming in 10 years&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take online tests, lurk on StackOverflow.com, sites like JavaBlackBelt.com and others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: another interesting thing to do: pick and master a technology you really dislike. Maybe you dislike it without grounds, or maybe you can already deconstruct all the arguments put forward by its supporters. It doesn't matter. Know your enemy, and you'll know its shortcomings and you'll be able to use this later on as a business decision tool as well.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-10-20T06:50:22.967" LastActivityDate="2010-10-20T06:50:22.967" CommentCount="2" />
  <row Id="13200" PostTypeId="2" ParentId="13185" CreationDate="2010-10-20T05:52:13.400" Score="3" ViewCount="" Body="&lt;p&gt;Probably the first step is deciding which implementation to use. Among the free implementations are &lt;a href=&quot;http://www.squeak.org/&quot; rel=&quot;nofollow&quot;&gt;Squeak&lt;/a&gt;, &lt;a href=&quot;http://pharo-project.org/home&quot; rel=&quot;nofollow&quot;&gt;Pharo&lt;/a&gt; and &lt;a href=&quot;http://smalltalk.gnu.org/&quot; rel=&quot;nofollow&quot;&gt;GNU Smalltalk&lt;/a&gt;. There's not a lot of difference between Squeak and Pharo. The communities aim for slightly different things, but there's constant cross-contribution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't use GNU Smalltalk, so I don't have pointers to their resources.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good starting points for Squeak/Pharo are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Stephane Ducasse's &lt;a href=&quot;http://stephane.ducasse.free.fr/FreeBooks.html&quot; rel=&quot;nofollow&quot;&gt;list of free Smalltalk books&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Squeak &lt;a href=&quot;http://lists.squeakfoundation.org/mailman/listinfo/beginners&quot; rel=&quot;nofollow&quot;&gt;Beginner's mailing list&lt;/a&gt; and &lt;a href=&quot;http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-dev&quot; rel=&quot;nofollow&quot;&gt;main mailing list&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://squeakbyexample.org/&quot; rel=&quot;nofollow&quot;&gt;Squeak By Example&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://pharobyexample.org/&quot; rel=&quot;nofollow&quot;&gt;Pharo By Evample&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://lists.gforge.inria.fr/mailman/listinfo/pharo-project&quot; rel=&quot;nofollow&quot;&gt;Pharo's main mailing list&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Squeak also has an &lt;a href=&quot;http://wiki.squeak.org/squeak/1915&quot; rel=&quot;nofollow&quot;&gt;IRC channel&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you're interested in web apps, &lt;a href=&quot;http://book.seaside.st/&quot; rel=&quot;nofollow&quot;&gt;Dynamic Web Development with Seaside&lt;/a&gt; will gently introduce you to the Seaside framework.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-20T05:52:13.400" />
  <row Id="13201" PostTypeId="2" ParentId="13185" CreationDate="2010-10-20T05:57:47.207" Score="2" ViewCount="" Body="&lt;p&gt;May be &lt;a href=&quot;http://stackoverflow.com/questions/711664/best-smalltalk-squeak-books/&quot;&gt;this&lt;/a&gt; link to the question asked before on Stack Overflow helps you. &lt;/p&gt;&#xA;" OwnerUserId="5443" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-10-20T06:25:41.027" LastActivityDate="2010-10-20T06:25:41.027" CommentCount="1" />
  <row Id="13202" PostTypeId="2" ParentId="13190" CreationDate="2010-10-20T06:06:54.640" Score="12" ViewCount="" Body="&lt;p&gt;Work with the client, and add hours of extra (billable) time to your quotation for every task, to cover the hassles of deployment without server access.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's depressing to be limited like that due to (unfounded) trust issues, but really, it shouldn't be &lt;em&gt;that&lt;/em&gt; burdensome. I've worked with a number of clients where we had to work this way, not due to them not trusting us, but simply because they were huge companies with blanket IT policies. It just means you need to be more disciplined about your deployments so you're not deploying, fixing a tiny bug and deploying again, realizing you forgot a file and deploying again, etc. etc.&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-10-20T06:06:54.640" CommentCount="1" />
  <row Id="13203" PostTypeId="2" ParentId="13195" CreationDate="2010-10-20T06:10:05.067" Score="3" ViewCount="" Body="&lt;p&gt;You have been programming in a school for four years?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of all, learn all you can while in school.  Nowhere else do you get to play with functional programming (e.g. Haskell), logical programming (Prolog), declarative programming (SQL), assembler programming - which is a very important skill if not for anything else that it teaches you how the machine works - and more while having resources to help you actually learn the new stuff.  In this regard your current skills are not very broad even if you consider yourself a jack-of-all-trades, and you can get a lot more which will make you a better programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are three things I think you should ponder upon:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Academic code is optimistic about what will happen (or not) and if something fails we just run it again.  Real world production code need to be able to survive all kinds of strange situations, because that is what the customer expects and pays for.  It is not unusual for production code to consist of 80-90% error handling.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It takes time to achieve mastery.  Ten years is not unusual (which comes down to about ten thousand hours of deliberate practice).  &lt;a href=&quot;http://norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;Peter Norvig explains nicely how to teach yourself programming in ten years&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Skills matter when competing with others.  &lt;a href=&quot;http://www.paulgraham.com/avg.html&quot; rel=&quot;nofollow&quot;&gt;Paul Graham explains very convincingly how they managed to be better than the averages, and allowed him to earn a lot of money selling the result&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you only have time for one thing, then learn Lisp, and learn it well.  &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-20T06:10:05.067" CommentCount="7" />
  <row Id="13204" PostTypeId="2" ParentId="13128" CreationDate="2010-10-20T06:14:48.057" Score="2" ViewCount="" Body="&lt;p&gt;Two open source mathematical projects that leap to mind are&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://cran.r-project.org/&quot; rel=&quot;nofollow&quot;&gt;R&lt;/a&gt;, a language for statistical computing, and&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://maxima-project.org/&quot; rel=&quot;nofollow&quot;&gt;Maxima&lt;/a&gt;, a Common Lisp Computer Algebra System.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-20T06:14:48.057" />
  <row Id="13205" PostTypeId="2" ParentId="13128" CreationDate="2010-10-20T06:34:00.910" Score="1" ViewCount="" Body="&lt;p&gt;3D gaming or anything relating to real-time 3D graphics.  Tons of math &amp;amp; algorithm development.  And most of it needs to be optimized and &lt;em&gt;very fast&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-20T06:34:00.910" />
  <row Id="13206" PostTypeId="2" ParentId="6979" CreationDate="2010-10-20T06:34:18.650" Score="1" ViewCount="" Body="&lt;p&gt;Off the top of my head: &lt;a href=&quot;http://stackoverflow.com&quot;&gt;SO&lt;/a&gt;, &lt;a href=&quot;http://twitter.com&quot; rel=&quot;nofollow&quot;&gt;Twitter&lt;/a&gt;, &lt;a href=&quot;http://lambda-the-ultimate.org/&quot; rel=&quot;nofollow&quot;&gt;LtU&lt;/a&gt;, Wikipedia. :)&lt;/p&gt;&#xA;" OwnerUserId="1968" LastEditorUserId="1968" LastEditorDisplayName="" LastEditDate="2011-05-04T03:55:57.597" LastActivityDate="2011-05-04T03:55:57.597" CommunityOwnedDate="2011-05-04T09:36:28.593" />
  <row Id="13207" PostTypeId="1" CreationDate="2010-10-20T06:49:53.470" Score="4" ViewCount="124" Body="&lt;p&gt;I'm wondering why we don't have some string classes that represent a string of Unicode grapheme clusters instead of code points or characters.  It seems to me that in most applications it would be easier for programmers to access components of a grapheme when necessary than to have to organize them from code points, which appears necessary even if only to avoid casually breaking a string in &quot;mid-grapheme&quot; (at least in theory).  Internally a string class might use a variable length encoding such as UTF-8, UTF-16, or in this context even UTF-32 is variable length; or implement subclasses for all of them (and optionally configure the choice at run-time so that different languages could use their optimal encodings).  But if programmers could &quot;see&quot; grapheme units when inspecting a string, wouldn't string handling code in general be closer to achieving correctness, and without much extra complexity?&lt;/p&gt;&#xA;" OwnerUserId="5797" LastActivityDate="2010-10-29T00:54:34.057" Title="String class based on graphemes?" Tags="&lt;programming-practices&gt;&lt;design&gt;&lt;strings&gt;" AnswerCount="1" FavoriteCount="3" />
  <row Id="13208" PostTypeId="2" ParentId="12416" CreationDate="2010-10-20T07:39:43.863" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.sanger.ac.uk/&quot; rel=&quot;nofollow&quot;&gt;Wellcome Trust Sanger Institute&lt;/a&gt;&lt;/strong&gt; (aka simply &lt;strong&gt;Sanger Institute&lt;/strong&gt;) - Hinxton, Cambridgeshire, UK&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its campus also hosts &lt;strong&gt;&lt;a href=&quot;http://www.ebi.ac.uk/&quot; rel=&quot;nofollow&quot;&gt;European Bioinformatics Institute&lt;/a&gt;&lt;/strong&gt; (EBI), which is part of the &lt;strong&gt;&lt;a href=&quot;http://www.embl.de/&quot; rel=&quot;nofollow&quot;&gt;European Molecular Biology Laboratory&lt;/a&gt;&lt;/strong&gt; (EMBL) - Heidelberg, Germany)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(I know it's 3 answers in 1, but as the location and domain are commonly shared.)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2011-05-30T08:39:49.613" LastActivityDate="2011-05-30T08:39:49.613" />
  <row Id="13209" PostTypeId="2" ParentId="9621" CreationDate="2010-10-20T07:43:10.350" Score="1" ViewCount="" Body="&lt;p&gt;I started programming when I was 15 using Basic/Pascal and writing text adventures. I remember each room was a &lt;code&gt;label&lt;/code&gt; and I used &lt;code&gt;gotos&lt;/code&gt; to change room.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But no one was teaching me so I started from what I liked most (i.e. games).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My suggestion is to start with a simple language (Basic (not Visual) is still good for a very young one, or you could go with Python) and to avoid GUI stuff (too much boring generated code).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To enjoy programming when you are a child you need to &quot;enjoy&quot; it, even if you are using wrong tools (i.e. &lt;code&gt;goto&lt;/code&gt;). Don't worry about bad habits: the child will eventually move on looking for more complex stuff to create and &lt;em&gt;that&lt;/em&gt; will be a good point to teach him functions for example.&#xA;If you give him enough time to enjoy programming, he will eventually ask for more. That worked for me, at least.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think I would have become a programmer now if I had started with C++ or C :)&lt;/p&gt;&#xA;" OwnerUserId="4738" LastActivityDate="2010-10-20T07:43:10.350" />
  <row Id="13210" PostTypeId="2" ParentId="12416" CreationDate="2010-10-20T07:49:19.150" Score="2" ViewCount="" Body="&lt;p&gt;Let's not the forget the famous &lt;strong&gt;&lt;a href=&quot;http://public.web.cern.ch/public/&quot; rel=&quot;nofollow&quot;&gt;CERN&lt;/a&gt;&lt;/strong&gt; - Geneva, Switzerland.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Formerly the Conseil Europeen pour la Recherche Nucleaire, which though not primarily focused on computer science, &lt;a href=&quot;http://en.wikipedia.org/wiki/CERN#Computer_science&quot; rel=&quot;nofollow&quot;&gt;has still been very active in this area&lt;/a&gt; and gave us the &lt;a href=&quot;http://en.wikipedia.org/wiki/History_of_the_World_Wide_Web&quot; rel=&quot;nofollow&quot;&gt;World Wide Web&lt;/a&gt;. That's gotta account for something, huh?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of their labs is also leading the &lt;a href=&quot;https://www.scientificlinux.org/&quot; rel=&quot;nofollow&quot;&gt;Scientific Linux&lt;/a&gt; project.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;For a lot more, here's a &lt;a href=&quot;http://research.webometrics.info/top4000_r&amp;amp;d.asp&quot; rel=&quot;nofollow&quot;&gt;top 4000 of R&amp;amp;D centers in the world&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-10-20T08:04:41.177" LastActivityDate="2010-10-20T08:04:41.177" />
  <row Id="13211" PostTypeId="2" ParentId="10270" CreationDate="2010-10-20T07:51:31.423" Score="0" ViewCount="" Body="&lt;p&gt;I have worked for one company that had PDPs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with the PDPs was that once they were set, there was no time allowed for the development.&#xA;So you had to do it on your own time. If you didn't do it, there was no chance of a bonus or raise. &#xA;From this experience I decided that the company wants to benefit from  you spending  you own time and money.&#xA;Overall I think it is a good thing to develop yourself but not necessarily with targets set by your company.&lt;/p&gt;&#xA;" OwnerUserId="2395" LastActivityDate="2010-10-20T07:51:31.423" />
  <row Id="13212" PostTypeId="1" AcceptedAnswerId="13215" CreationDate="2010-10-20T07:51:57.277" Score="4" ViewCount="287" Body="&lt;p&gt;Our team is switching to Scrum. I would be the ScrumMaster (in addition to being a developer), and another developer would become Product Owner (in addition to our product marketing guy).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All members of the team, including me, would be managed by the would-be Product Owner. By that I mean that the guy would be the one deciding about our yearly evaluation, raises, etc. Would this hierarchical link be prone to introduce issues? How do organizations typically map hierarchical structure onto agile teams?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suppose it's quite common that the ScrumMaster has a hierarchical link to the other developers in the team.  Here it would be the Product Owner.  Is this different?&lt;/p&gt;&#xA;" OwnerUserId="602" LastEditorUserId="602" LastEditorDisplayName="" LastEditDate="2010-10-20T08:31:34.967" LastActivityDate="2010-10-20T14:28:20.097" Title="Can the ScrumMaster and other team members be managed by the Product Owner?" Tags="&lt;agile&gt;&lt;management&gt;&lt;scrum&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="13213" PostTypeId="2" ParentId="12416" CreationDate="2010-10-20T07:54:26.160" Score="1" ViewCount="" Body="&lt;p&gt;The &lt;strong&gt;&lt;a href=&quot;http://www.inria.fr/&quot; rel=&quot;nofollow&quot;&gt;INRIA&lt;/a&gt;&lt;/strong&gt; (Institut National de Recherche en Informatique et en Automatique) - Paris, France&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which we have to thank for &lt;a href=&quot;http://caml.inria.fr/&quot; rel=&quot;nofollow&quot;&gt;CAML&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-10-20T07:54:26.160" />
  <row Id="13214" PostTypeId="1" CreationDate="2010-10-20T07:58:49.430" Score="0" ViewCount="235" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/12485/what-do-programmers-do-in-their-spare-time&quot;&gt;What do programmers do in their spare time?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Actually, you can answer that programmer should relax and walk somewhere in the park.&#xA;I'd prefer to program something. I'd like to help with something to community and to grow up my skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you know opensource projects which have needing in programmers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(i'm a LAMP developer but would like to participate in C++/Java/Python projects)&lt;/p&gt;&#xA;" LastEditorUserId="1373" LastEditorDisplayName="" LastEditDate="2010-10-20T10:20:30.493" LastActivityDate="2010-10-20T10:20:30.493" ClosedDate="2010-10-20T10:19:14.443" Title="What a programmer can do in his free time?" Tags="&lt;free-time&gt;" AnswerCount="2" CommentCount="5" />
  <row Id="13215" PostTypeId="2" ParentId="13212" CreationDate="2010-10-20T08:01:10.233" Score="3" ViewCount="" Body="&lt;p&gt;The product manager doesn't manage the team, but the product backlog. Having any hierarchical link will make things harder.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also suggest you to remove yearly evaluations from your company. They are individual, and Scrum is focused on a team rather than individuals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no hierarchical link between the Scrum Master and the rest of the team. The team is self managed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ScrumMaster ensure that the scrum process is properly implemented and &lt;strong&gt;help&lt;/strong&gt; the team on a daily basis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The team reports to the team during the daily stand ups.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The team reports to the product owner during the sprint review.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simple and effective.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-20T08:42:10.340" LastActivityDate="2010-10-20T08:42:10.340" CommentCount="6" />
  <row Id="13216" PostTypeId="2" ParentId="13212" CreationDate="2010-10-20T08:02:45.657" Score="0" ViewCount="" Body="&lt;p&gt;The product owner should, ideally, be part of the team in exactly the same way as the others. It's also got nothing to do with admin tasks. The scrummaster should be owning the process and ensuring the technical side is on track, the product owner should be ensuring that what the team is up to is matching what the business needs and that it isn't getting bogged down in technical tangents not relevent to the project. There is a natural tension there, which is why it's generally better not to combine them into one person. I find the closest parallel to PO in a traditional setup would be something between Business Analyst and project manager - but much, much closer to BA than PM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously you'll need to do reporting, and also the admin tasks - but don't get them mixed up with the scrummaster and product owner roles (even if those are the people doing them).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In our team we rotate the scrummaster role every couple of months (or when it looks like someone gets bored of it). I'm the development manager where I work (but I also take an active part in coding) - but that doesn't necessarily mean that at any one time I'm SM. I find that emphasises collaboration over hierarchy and once you're comfortable with scrum I suggest you do the same.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-20T08:02:45.657" CommentCount="2" />
  <row Id="13217" PostTypeId="2" ParentId="9161" CreationDate="2010-10-20T08:03:22.273" Score="1" ViewCount="" Body="&lt;p&gt;May I suggest reading &lt;a href=&quot;http://www.distributedscrum.com/&quot; rel=&quot;nofollow&quot;&gt;A Practical Guide to Distributed Scrum&lt;/a&gt;?  A review of the book is &lt;a href=&quot;http://books.dzone.com/reviews/practical-guide-distributed&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-10-20T08:03:22.273" />
  <row Id="13218" PostTypeId="2" ParentId="13214" CreationDate="2010-10-20T08:04:48.633" Score="2" ViewCount="" Body="&lt;p&gt;StackOverflow is running a &lt;a href=&quot;http://rads.stackoverflow.com/ossads/all&quot; rel=&quot;nofollow&quot;&gt;campaign&lt;/a&gt; for open source project recruiting. You may start there:&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-20T08:04:48.633" />
  <row Id="13219" PostTypeId="2" ParentId="2948" CreationDate="2010-10-20T08:15:50.870" Score="1" ViewCount="" Body="&lt;p&gt;I think daily stand-ups are a great idea regardless of what methodology or area you're working in - provided you can keep them short 15min max. If you can't regularly keep to that then there are either too many people attending a single stand-up or the meeting isn't focussed enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where we are the marketing team started copying us and now also have stand-ups - so it's not just for developers either!&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-20T08:15:50.870" CommunityOwnedDate="2011-02-21T11:56:32.877" />
  <row Id="13220" PostTypeId="2" ParentId="13190" CreationDate="2010-10-20T08:27:56.567" Score="3" ViewCount="" Body="&lt;p&gt;Explain to the client the full implications of their restrictive policy. Charge for extra work during development and deployment. It is for them to decide if the restrictive policy is worthwhile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most serious downside is not the extra hassle you will go through in development, but slow turnaround with bug fixes after launch. Unless your system is dead-simple (or your name is Donald Knuth), you will have bugs after deployment, no matter how careful you are. &lt;/p&gt;&#xA;" OwnerUserId="2193" LastActivityDate="2010-10-20T08:27:56.567" />
  <row Id="13221" PostTypeId="2" ParentId="12216" CreationDate="2010-10-20T08:35:55.253" Score="3" ViewCount="" Body="&lt;h2&gt;Minimal Size&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;N.B. This thing may or may not be considered as a &lt;strong&gt;FEATURE&lt;/strong&gt;.&lt;/em&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is also mainly for &lt;strong&gt;Express editions&lt;/strong&gt;. I think the size of Visual Studio is too large. Both the installer and post-installation sizes. But it can be minimized easily. Few steps can be-&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Other than visual Web Developer Express, the express edition do not require the full .Net framework and can be supported to install just on top of the smaller &lt;strong&gt;client framework&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Again, the &lt;strong&gt;SQL server express&lt;/strong&gt; can be omitted(welcome &lt;strong&gt;SQL server CE 4&lt;/strong&gt;).&lt;/li&gt;&#xA;&lt;li&gt;And there can be smaller respective &lt;strong&gt;individual redistributable packages&lt;/strong&gt; for different express editions instead of the &lt;strong&gt;bulky DVD image&lt;/strong&gt; they supply.&lt;/li&gt;&#xA;&lt;li&gt;I don't like to register for the Express Editions.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="963" LastEditorUserId="963" LastEditorDisplayName="" LastEditDate="2010-12-06T04:18:57.890" LastActivityDate="2010-12-06T04:18:57.890" CommunityOwnedDate="2011-05-26T08:44:03.797" CommentCount="3" />
  <row Id="13222" PostTypeId="2" ParentId="12807" CreationDate="2010-10-20T08:53:21.950" Score="1" ViewCount="" Body="&lt;p&gt;I have a colleague who will have some code like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(something == true)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And then, for some sort of test/debugging, he will wish to not call this block so he'll change it to:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(something == true &amp;amp;&amp;amp; false)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And then occasionally he'll change it to:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(false)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The worst thing is, this type of debugging has rubbed off on me on occasion and is really bad for other developers to read!&lt;/p&gt;&#xA;" OwnerUserId="3849" LastActivityDate="2010-10-20T08:53:21.950" CommunityOwnedDate="2010-10-20T08:53:21.950" />
  <row Id="13223" PostTypeId="2" ParentId="13214" CreationDate="2010-10-20T08:58:27.633" Score="0" ViewCount="" Body="&lt;p&gt;Or if you work in a compagny you could ask your manager if you can help on some R&amp;amp;D developpements...&#xA;This will give you something to do and will give you something to say for your next salary discussion ;)&lt;/p&gt;&#xA;" LastActivityDate="2010-10-20T08:58:27.633" />
  <row Id="13224" PostTypeId="2" ParentId="13190" CreationDate="2010-10-20T09:17:41.657" Score="3" ViewCount="" Body="&lt;p&gt;I have worked with a fundamentally distrusting client and it made life exceedingly difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In most countries if you have a contract with a client then you can make explicit what will and will not take place and the contract will be binding. You may be able to reassure your client by pointing out that as a company based in the same territory, their complaint will have full force of law if you do steal their code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However there is a difference between someone who has had their fingers burnt and someone with a paranoid nature. In the latter case I would avoid the client altogether as they will be difficult and expensive to deal with. Not impossible, but very difficult, very irritating and most likely to be among the 20% of clients who provide 80% of your support load.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-20T09:17:41.657" />
  <row Id="13225" PostTypeId="2" ParentId="11312" CreationDate="2010-10-20T09:26:44.460" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Lighting that doesn't make you feel like your on a supermarket floor. &lt;/li&gt;&#xA;&lt;li&gt;Some nice big green plants&lt;/li&gt;&#xA;&lt;li&gt;High performance pcs, Dual 22&quot; LCD screens&lt;/li&gt;&#xA;&lt;li&gt;A developer wiki&lt;/li&gt;&#xA;&lt;li&gt;Sectional dividers so everyone can have their little privacy and not look at each other all day. Avoid cubicles though... there still has to be an interaction environment.&lt;/li&gt;&#xA;&lt;li&gt;Ample workspace&lt;/li&gt;&#xA;&lt;li&gt;Game room witha pool table/Ping Pong table, nice tv, PS3/XBox/Wii with some multiplayer games.&lt;/li&gt;&#xA;&lt;li&gt;A nice kitchen&lt;/li&gt;&#xA;&lt;li&gt;Balanced snack/drink machine that caters to healthy and non healthy eaters.&lt;/li&gt;&#xA;&lt;li&gt;Nice outside area that is cool in summer where people can sit and relax and eat.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The work is the most important aspect. You can have all these things but still feel like your stuck in a terrible job. Work ahs to feel like fun, and the fun stuff has to be a bonus.&lt;/p&gt;&#xA;" OwnerUserId="4722" LastActivityDate="2010-10-20T09:26:44.460" CommunityOwnedDate="2010-10-20T09:26:44.460" CommentCount="1" />
  <row Id="13226" PostTypeId="2" ParentId="9378" CreationDate="2010-10-20T09:43:45.993" Score="1" ViewCount="" Body="&lt;p&gt;Opening big workflow xaml files like the one provided for team build and working with it is almost impossible. On XP it will crash after using a lot of memory.&lt;/p&gt;&#xA;" OwnerUserId="3414" LastActivityDate="2010-10-20T09:43:45.993" CommunityOwnedDate="2011-02-02T16:35:27.803" />
  <row Id="13227" PostTypeId="2" ParentId="13172" CreationDate="2010-10-20T09:46:39.450" Score="2" ViewCount="" Body="&lt;p&gt;The genome projects have dealt with massive amounts of data, also in related areas such as drug discovery. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;See eg:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://cnx.org/content/m11317/latest/&quot; rel=&quot;nofollow&quot;&gt;http://cnx.org/content/m11317/latest/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.genedata.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.genedata.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2242" LastActivityDate="2010-10-20T09:46:39.450" />
  <row Id="13228" PostTypeId="1" AcceptedAnswerId="13239" CreationDate="2010-10-20T10:20:43.043" Score="13" ViewCount="1307" Body="&lt;p&gt;No, this isn't off topic, I'm trying to decide on a name for myself and any other future developers we'll hire at my company. All of our copy is casual (On our website, brochures, etc) since we've seen that is the way to go, and we want out job titles to match.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm the lead developer/co-founder and I also need titles for other developers that are better than &quot;Developer&quot; or &quot;Programmer&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bonus: Titles for Graphic Designers and Project Managers would be nice as well :)&lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-10-21T08:27:48.977" ClosedDate="2010-10-20T22:54:26.993" Title="What are awesome job titles for programmers?" Tags="&lt;career&gt;&lt;job-title&gt;" AnswerCount="20" CommentCount="6" FavoriteCount="7" />
  <row Id="13229" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T10:25:38.643" Score="6" ViewCount="" Body="&lt;p&gt;In the words of &lt;a href=&quot;http://smuglispweeny.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;Ken Tilton&lt;/a&gt;,&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I actually had a business card that&#xA;  just said &quot;Programmer&quot;. Got everyone&#xA;  quite upset, they wanted &quot;Systems&#xA;  Analyst&quot; or &quot;Software Engineer&quot; or&#xA;  &quot;Database Administrator&quot; or something.&#xA;  My point was that one cannot program a&#xA;  computer effectively without doing all&#xA;  those things, so &quot;Programmer&quot; was&#xA;  sufficient.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-20T10:25:38.643" CommentCount="2" />
  <row Id="13230" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T10:25:46.663" Score="1" ViewCount="" Body="&lt;p&gt;Job Titles:-&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;For &lt;a href=&quot;http://education.yahoo.net/articles/it_job_titles.htm&quot; rel=&quot;nofollow&quot;&gt;IT&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;For &lt;a href=&quot;http://www.yourmessageconsultant.com/articles/web-pros.html&quot; rel=&quot;nofollow&quot;&gt;Web Development&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Choose which fits the best. :)&lt;/p&gt;&#xA;" OwnerUserId="5443" LastActivityDate="2010-10-20T10:25:46.663" />
  <row Id="13231" PostTypeId="1" CreationDate="2010-10-20T10:29:18.897" Score="4" ViewCount="367" Body="&lt;p&gt;I'm interested how long did it took the average programmer to get into Apple development (iphone/ipad/macos). Meaning learning obj-c, various API's and such to get you started working on an app.&lt;/p&gt;&#xA;" LastEditorUserId="1928" LastEditorDisplayName="" LastEditDate="2010-10-20T10:56:12.423" LastActivityDate="2010-10-24T10:08:58.590" Title="How long did it take you to learn apple development?" Tags="&lt;apple&gt;&lt;objective-c&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="13232" PostTypeId="2" ParentId="9378" CreationDate="2010-10-20T10:38:21.817" Score="0" ViewCount="" Body="&lt;p&gt;A C++-specific answer...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest problem I've had with it so far is that, when importing a project from VS2008, because I have in my source files:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;using namespace std;&#xA;using namespace boost;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and I'm using boost::shared_ptr&amp;lt;&gt;, it's getting confused about which namespace an unadorned shared_ptr&amp;lt;&gt; comes from even though I've never #included the std::shared_ptr&amp;lt;&gt; header.&lt;/p&gt;&#xA;" OwnerUserId="3991" LastActivityDate="2010-10-20T10:38:21.817" CommunityOwnedDate="2011-02-02T16:35:27.803" CommentCount="2" />
  <row Id="13233" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T10:41:37.963" Score="1" ViewCount="" Body="&lt;p&gt;Apparently, I'm a &quot;Senior Software Design Engineer&quot;.  I don't know how well the &lt;em&gt;Design&lt;/em&gt; part works out, but extra spangly words on business cards are good, I guess.  It doesn't make me feel any different, but clients might feel otherwise.&lt;/p&gt;&#xA;" OwnerUserId="3991" LastActivityDate="2010-10-20T10:41:37.963" CommentCount="4" />
  <row Id="13234" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T10:43:53.867" Score="4" ViewCount="" Body="&lt;p&gt;-Magician&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Firefighter&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Dreammaker&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Coder&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A combination of them:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Magic coder fighter&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Firemaker&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Dream coder&lt;/p&gt;&#xA;" OwnerUserId="5807" LastActivityDate="2010-10-20T10:43:53.867" CommentCount="2" />
  <row Id="13235" PostTypeId="2" ParentId="13072" CreationDate="2010-10-20T11:13:28.383" Score="3" ViewCount="" Body="&lt;p&gt;In Smalltalk messages are used to do just about everything.  For example, there's no &quot;if-then-else&quot; statement; instead, the message :ifTrue:ifFalse is sent to a Boolean object, which then just executes the appropriate version (i.e. if the Boolean is true it executes the 'ifTrue' condition; if the Boolean is false it executes the 'ifFalse' condition).  In practice it looks something like&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;a &amp;lt; b  &quot;&amp;lt;-- Evaluates to a Boolean - either true or false&quot;&#xA;  ifTrue: [ &quot;block to be evaluated if a is less than b&quot; ]&#xA;  ifFalse: [ &quot;block to be evaluated if a is greater than or equal to b&quot; ]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But, you ask, how can this work?  It's like this - Boolean has two subclasses, True and False.  The True implementation of :ifTrue:ifFalse looks like&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;True#ifTrue: trueBlock ifFalse: falseBlock&#xA;  trueBlock value&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;while the False version of this looks like&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;False#ifTrue: trueBlock ifFalse: falseBlock&#xA;  falseBlock value&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(The #value message, sent to a Block, tells the Block to execute itself - it's similar to how &lt;strong&gt;yield&lt;/strong&gt; works in Ruby).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Share and enjoy.&lt;/p&gt;&#xA;" OwnerUserId="4848" LastActivityDate="2010-10-20T11:13:28.383" CommentCount="3" />
  <row Id="13236" PostTypeId="2" ParentId="13195" CreationDate="2010-10-20T11:23:44.957" Score="0" ViewCount="" Body="&lt;p&gt;I know this is the same cliche that comes around time and again, but between where you are and where you want to be the biggest single thing is probably experience. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best way to gain that is to work alongside good existing programmers on something practical that you find interesting. My recommendation would be to find an open source project you find interesting and useful as an end user and look at getting involved with it. You will find there is a very steep learning curve, but by looking at the code other people have written and understanding it, and by responding to user requirements - especially if you are one of the users in question - you will find you gain a lot of skills that will prove valuable in future. Also you will have made a tool you find useful a little bit better, which is good for you and for everyone else.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-20T11:23:44.957" />
  <row Id="13237" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T11:34:07.050" Score="2" ViewCount="" Body="&lt;p&gt;Computer Execution Placement Engineer (You place computer instructions in the right order ;-)&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-10-20T11:34:07.050" />
  <row Id="13238" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T11:35:10.373" Score="22" ViewCount="" Body="&lt;p&gt;Inscrutable Digital Mystic&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Network Aetheronaut&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Codesmith&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Information Frontiersman&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bitwise Cartographer&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Data Forklift Driver&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code Captain&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Extraordinary Sequentialist&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-20T11:35:10.373" CommentCount="3" />
  <row Id="13239" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T11:35:42.540" Score="22" ViewCount="" Body="&lt;p&gt;The best job titles are made up of one or two generic terms that say what someone does, optionally prefixed by a single term indicating seniority.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples of generic terms:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;Programmer&quot; for someone who writes code.&lt;/li&gt;&#xA;&lt;li&gt;&quot;Analyst&quot; for someone who does analysis.&lt;/li&gt;&#xA;&lt;li&gt;&quot;Architect&quot; for someone who does systems architecture.&lt;/li&gt;&#xA;&lt;li&gt;&quot;Tester&quot; for someone who tests stuff.&lt;/li&gt;&#xA;&lt;li&gt;&quot;Developer&quot; for those of us who can't decide.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Examples of seniority terms:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;Junior&quot; for inexperienced.&lt;/li&gt;&#xA;&lt;li&gt;&quot;Senior&quot; for very experienced&lt;/li&gt;&#xA;&lt;li&gt;&quot;Principal&quot; for gurus.&lt;/li&gt;&#xA;&lt;li&gt;Null for everyone else.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So, I'm a &quot;&lt;strong&gt;Senior Developer&lt;/strong&gt;&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the light of the &quot;casual&quot; requirement, you could just swap-in less formal prefixes like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;Rookie&quot; for &quot;Junior&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;Geek&quot; for someone with intermediate skills.&lt;/li&gt;&#xA;&lt;li&gt;&quot;Master&quot; or &quot;Wizard&quot; for &quot;Senior&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;Guru&quot; or &quot;(Big) Chief&quot; for &quot;Principal&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And substitute the function words:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;Programmer&quot; becomes somethig like &quot;Bit-Twiddler&quot;, &quot;Information Heards(wo)man&quot; or &quot;Code-Meister&quot;.&lt;/li&gt;&#xA;&lt;li&gt;&quot;Tester&quot; becomes &quot;Bug Catcher&quot;&lt;/li&gt;&#xA;&lt;li&gt;The BI Officer becomes a &quot;Byte Harvester&quot; or &quot;Data Miner&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;Graphic Designer&quot; becomes &quot;Doodler&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;Project Manager&quot; becomes &quot;Actualization Engineer&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That would probably make me a &quot;&lt;strong&gt;Master Bit-Wrangler&lt;/strong&gt;&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alternatively, you could just prefix our regular title with &quot;Geek&quot; and be done with it.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastEditorUserId="1928" LastEditorDisplayName="" LastEditDate="2010-10-21T08:27:48.977" LastActivityDate="2010-10-21T08:27:48.977" CommentCount="6" />
  <row Id="13240" PostTypeId="1" AcceptedAnswerId="13241" CreationDate="2010-10-20T11:35:53.527" Score="5" ViewCount="440" Body="&lt;p&gt;I like to develop GUI applications. So far I have most used Java Swing but it's pretty outdated and I don't wont to work with it anymore, it's too bad. I have done some smaller applications using WPF and I really like the XAML declarative layout and databindings and other modern features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But WPF is not a good alternative for Linux at the moment. What is the most modern GUI framework for Linux? I would like to have similar features as WPF with a declarative layout and databindings. I have heard about GTK and Qt. Qt seems to be the most modern one but it also seems to be closely related to C++. I would prefer a framework that is independent of programming language, even for customization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the most modern GUI framework for Linux?&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-20T12:03:34.710" Title="What is the most modern GUI framework for Linux?" Tags="&lt;frameworks&gt;&lt;linux&gt;&lt;gui&gt;" AnswerCount="1" FavoriteCount="3" />
  <row Id="13241" PostTypeId="2" ParentId="13240" CreationDate="2010-10-20T11:43:03.403" Score="11" ViewCount="" Body="&lt;p&gt;Qt. You can use Qt not only from C++, but from Python and other languages.&lt;/p&gt;&#xA;" OwnerUserId="3970" LastActivityDate="2010-10-20T11:43:03.403" CommentCount="4" />
  <row Id="13242" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T11:44:49.047" Score="3" ViewCount="" Body="&lt;p&gt;Core Technology Evangelist.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-20T11:44:49.047" />
  <row Id="13243" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T11:53:39.127" Score="6" ViewCount="" Body="&lt;p&gt;Technically my title is Senior Development Specialist, but I always use Programmer.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-10-20T11:53:39.127" CommentCount="1" />
  <row Id="13244" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T11:59:35.827" Score="19" ViewCount="" Body="&lt;p&gt;Code Monkey.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.jonathancoulton.com/songdetails/Code%20Monkey&quot; rel=&quot;nofollow&quot;&gt;We even have a theme song.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-10-20T11:59:35.827" CommentCount="4" />
  <row Id="13246" PostTypeId="2" ParentId="6979" CreationDate="2010-10-20T12:04:14.553" Score="4" ViewCount="" Body="&lt;p&gt;My dad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He worked in a steel mill and fought and cursed at computers, but he taught me a love of learning.  Everything else is just an implementation detail.&lt;/p&gt;&#xA;" OwnerUserId="1622" LastActivityDate="2010-10-20T12:04:14.553" CommunityOwnedDate="2011-05-04T09:36:28.593" />
  <row Id="13247" PostTypeId="2" ParentId="13231" CreationDate="2010-10-20T12:04:36.597" Score="5" ViewCount="" Body="&lt;p&gt;After about 12 years of web development work, I got a job to basically get really good at iPhone development. The company had already sold a couple of projects and was hiring someone to build them. I sat down at my new desk here and within a couple weeks my head had quit spinning enough that I could start building the project I was hired to build.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, almost six months later, I just knocked out my fourth project in about 12 hours, when I'd quoted it (two months ago) as a two-week deal. I'd now call myself a competent iOS developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So. A couple weeks to a month for basic framework familiarity, six months for fluency and productivity. That's what it took me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: I used the Mark/LaMarche &quot;Beginning&quot; book, to begin with, working my way through the exercises. Then I went and got their second one &quot;More iPhone 3 Development&quot;. Those books are now a major version out of date, but they still cover the basics. Now that I've learned a few things, I feel like the first book could have done better at really covering the basic design patterns of Cocoa development, but it'll still get you writing stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, note that this wasn't casual &quot;pick it up on the side&quot; time. It was 40+ hours of in-office, intensive &lt;em&gt;learning&lt;/em&gt;. I went home many nights with my brain leaking out of my ears.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT 2: I &lt;em&gt;by no means&lt;/em&gt; claim any sort of expert status. I can produce applications that look nice and interface with web sites or SQLite for data. There are VAST swaths of the API that I've never touched.&lt;/p&gt;&#xA;" OwnerUserId="15" LastEditorUserId="15" LastEditorDisplayName="" LastEditDate="2010-10-21T16:00:40.103" LastActivityDate="2010-10-21T16:00:40.103" CommentCount="4" />
  <row Id="13248" PostTypeId="2" ParentId="9378" CreationDate="2010-10-20T12:20:26.430" Score="1" ViewCount="" Body="&lt;p&gt;We've had problems with the debugger.  It'll ignore breakpoints, and other times break randomly.  If you restart, it'll work properly for one session, but then it's hit or miss.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-10-20T12:20:26.430" CommunityOwnedDate="2011-02-02T16:35:27.803" />
  <row Id="13249" PostTypeId="1" AcceptedAnswerId="14403" CreationDate="2010-10-20T12:25:20.073" Score="9" ViewCount="446" Body="&lt;p&gt;I'm looking web or desktop software solution, which can be used for internal scrum execution.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Where I can create Product Backlog,&#xA;  Sprint Backlog, Tasks and share it&#xA;  among scrum team.  Each scrum member&#xA;  can view and update their tasks, there&#xA;  will be a Burndown Chart  etc... A&#xA;  complete scrum execution solution...&#xA;  Above all it must be free :)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I know it sounds Greedy! but I'm desperate!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please post your suggestions and recommendations.&lt;/p&gt;&#xA;" OwnerUserId="493" LastActivityDate="2011-02-05T17:01:41.047" Title="Is there any free tool to manage Scrum? Product Backlog, Burn Down Chart, Sprint Backlog, etc.?" Tags="&lt;recommendations&gt;&lt;scrum&gt;&lt;free-software&gt;" AnswerCount="5" FavoriteCount="4" />
  <row Id="13250" PostTypeId="1" CreationDate="2010-10-20T12:25:30.083" Score="0" ViewCount="238" Body="&lt;p&gt;Hi, I am a PHP developer. I have 1 years of experience in PHP in a middle scale company. now I just realize that there is no top MNC use this technology. So for a better opportunity should I switch technologies and I should learn new technology?&lt;br&gt;&#xA;Actually I am worried because I have already learned Zend and Magento... It will get totally wasted if I switch...&#xA;But I have to think about my career too.&#xA;:(&lt;/p&gt;&#xA;&#xA;&lt;p&gt;please suggest&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&#xA;Richa&lt;/p&gt;&#xA;" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-10-20T12:34:04.050" LastActivityDate="2011-04-03T18:06:42.380" Title="Should I switch tech.?" Tags="&lt;php&gt;&lt;technology&gt;" AnswerCount="5" CommentCount="7" />
  <row Id="13251" PostTypeId="2" ParentId="13250" CreationDate="2010-10-20T12:32:33.853" Score="2" ViewCount="" Body="&lt;p&gt;Top MNC is a very subjective word. What are your target companies ?? Amazon/Google/MS are probably top MNC's in most countries. Yes they dont work in PHP, you might have to move to C++/Java for that but that will not be enough, you will also have to be good in OS/Algorithms and become an overall better Engineer to be hired there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However if you are worried about Job security PHP is not bad there are a lot of companies who are working in it.&lt;/p&gt;&#xA;" OwnerUserId="672" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-10-20T12:34:31.273" LastActivityDate="2010-10-20T12:34:31.273" CommentCount="1" />
  <row Id="13252" PostTypeId="2" ParentId="13172" CreationDate="2010-10-20T12:32:47.767" Score="0" ViewCount="" Body="&lt;p&gt;I personally used to work for a company that did logistics, tracking product as it was shipped around the country.  We'd get around eight million bar-code scans an hour, and we had to validate, log and accumulate that data into several categories (product, shipper, state, region, source, destination, etc) and each category had several &quot;buckets&quot; (hourly, daily, weekly, monthly, month-to-date, quarter, quarter-to-date, ...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A shop that does data warehousing is a good candidate too.  In that situation, it's not so much the amount of raw data, it's the volume you build up by slicing and dicing it so many ways.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-10-20T12:32:47.767" CommentCount="2" />
  <row Id="13253" PostTypeId="2" ParentId="13250" CreationDate="2010-10-20T12:43:04.553" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;WARNING:&lt;/strong&gt; All this is quite &lt;strong&gt;personal&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I don't really code in PHP anymore (and prefer to avoid it if I can) I don't think the tech is dead &quot;market-wise&quot;. You might not score a MNC, but a lot of startups are still favoring PHP over big-guns like Java/JEE solutions. But obviously, the news trends are in favor of Ruby-on-Rails and Grails, and even Lift or Seaside if you want to be bleeding edge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think PHP will be around for a while, but it's becoming the tech people avoid, a bit like Perl. Except Perl has always been and is still amazingly good as certain things, where you just bite the bullet and use it if you really need to. PHP, I really don't see it have a competitive edge anymore, so to be on the sage side I'd recommend learning other technologies, yes. Otherwise in 5 or 10 years from now, you might be in a pickle. And it will be easier for you to learn something else now than in 5 or 10 years.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-10-20T12:43:04.553" />
  <row Id="13254" PostTypeId="2" ParentId="13250" CreationDate="2010-10-20T12:51:34.377" Score="0" ViewCount="" Body="&lt;p&gt;Highlight your HTML/CSS experience if you want to go the designer route, but if you want to go the programming route, the best paying jobs are in Java.  Those are going to mostly be in either IT or consulting/contracting companies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ruby is another good choice with lots of opportunities, but I don't see it being a big player with big companies.  It is finding a nice home in niche companies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get some self training and then you may have to take a lower level entry job in Java to get real experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to go Rails though, there is a lot of stuff you can do on your own there including creating your own web project.  Doesn't have to be big, but you will cover all the basics to get it up out there, you never know it might even make a buck or two.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good Luck&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-10-20T12:51:34.377" />
  <row Id="13255" PostTypeId="2" ParentId="6979" CreationDate="2010-10-20T12:54:35.113" Score="0" ViewCount="" Body="&lt;p&gt;Modern C++ Design by Andrei Alexandrescu.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not so much the specific content inside it (which took a good four -- probably more -- reads to grok), but that I was in a profession where the only way to compete effectively was to learn, learn, learn, and never stop learning.&lt;/p&gt;&#xA;" OwnerUserId="3991" LastActivityDate="2010-10-20T12:54:35.113" CommunityOwnedDate="2011-05-04T09:36:28.593" />
  <row Id="13256" PostTypeId="2" ParentId="13044" CreationDate="2010-10-20T12:55:56.097" Score="2" ViewCount="" Body="&lt;p&gt;This is a bit old but was at time when computers were just getting into the mainstream.  I had a codebase of many thousands of lines.  The release processes called for all deliverables to be printed and send to doc control.  If you had changes you marked them in Red pen and sent them in to be &quot;edited&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I go to release my code and they want a &quot;printed&quot; copy.  Came out to 600 pages or printed source code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We actually had a drill press in the copy room to &quot;three hole&quot; punch large stacks of documents.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-10-20T12:55:56.097" />
  <row Id="13257" PostTypeId="2" ParentId="13250" CreationDate="2010-10-20T12:57:35.783" Score="2" ViewCount="" Body="&lt;p&gt;Generally, I think you should never choose a technology because of its &lt;em&gt;perceived&lt;/em&gt; value on the &lt;em&gt;current&lt;/em&gt; job market. You should choose technologies because there's something good about them and &lt;em&gt;you&lt;/em&gt; can do great stuff using them. To be able to judge that, you probably should know a few, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, you don't really &lt;em&gt;switch&lt;/em&gt; tech, you just add new ones to your repertoire. If you learn Java now, you can still code PHP, right? My guess would be, that you even write better PHP by learning something else. Not because of PHP in particular, just because knowing more different paradigms helps you understand each one better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They say the second programming language is the hardest to learn, because it's the first time you have to really grok the difference between language-specific issues (such as typing) vs. API/library-specific (such as the concepts behind a particular framework) and general programming issues (such as big-O). Past that hurdle, it becomes more fun all the time, I think.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My first serious switch (I had toyed around with Python before) was from PHP to Java, and it was quite an eye-opener (and I didn't like the switch at all for quite a while). For the past two years, I'm constantly switching from Java to EcmaScript (both JS and AS), and for me, that was really, really instructive. I had read books about LISP and even played around with it a little, but it wasn't until I actually worked in JavaScript, that I realized what the strengths of this sort of language are.&lt;/p&gt;&#xA;" OwnerUserId="5405" LastEditorUserId="5405" LastEditorDisplayName="" LastEditDate="2010-10-20T13:11:16.583" LastActivityDate="2010-10-20T13:11:16.583" />
  <row Id="13258" PostTypeId="2" ParentId="13195" CreationDate="2010-10-20T13:02:52.590" Score="0" ViewCount="" Body="&lt;p&gt;I'll take a different approach to the others in trying to answer your question. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which platform / language did you enjoy the most? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software development is such a large field that given your preferred choice of platform there will be jobs and interesting problems to solve. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you enjoy building things? &#xA; - Embedded development, get an arduino (processing language / c) or netduino (similar hardware using c#) and build something interesting&#xA; - Enjoy linux/unix? Look at the platforms and offerings&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Up and coming? &#xA; - Functional programming in everyday use (as in another answer). Keep in mind its not a silver bullet. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take a look at the job listings every week and see what talent people are looking for.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Simply, find your passion and go for it! The world is big enough for it. &lt;/p&gt;&#xA;" OwnerUserId="4330" LastActivityDate="2010-10-20T13:02:52.590" />
  <row Id="13259" PostTypeId="1" AcceptedAnswerId="13307" CreationDate="2010-10-20T13:04:44.100" Score="9" ViewCount="353" Body="&lt;p&gt;Scrum being a project management methodology, how would you 'sell' it to the developers in a team that is reasonably happy with its current situation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems easy to me to explain to our Product Manager how Scrum will allow him to get regular releases, to amend requirements, and get the team to focus on the high-priority stories first.  I found it easy to explain what TDD or Continuous Integration bring in a developer's day-to-day life.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But how can developers be convinced to embrace Scrum?  How would Scrum make their life easier?&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-10-28T03:15:05.733" Title="Advantages of Scrum for the developers themselves?" Tags="&lt;scrum&gt;" AnswerCount="9" FavoriteCount="1" />
  <row Id="13260" PostTypeId="2" ParentId="13259" CreationDate="2010-10-20T13:05:22.477" Score="0" ViewCount="" Body="&lt;p&gt;During a sprint, developers are shielded from outside interferences by the ScrumMaster&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-10-20T13:05:22.477" />
  <row Id="13261" PostTypeId="2" ParentId="13143" CreationDate="2010-10-20T13:08:08.117" Score="2" ViewCount="" Body="&lt;p&gt;I'd recommend a few links all located at: &#xA;&lt;a href=&quot;http://javascript.crockford.com/&quot; rel=&quot;nofollow&quot;&gt;http://javascript.crockford.com/&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with JavaScript is there is a lot of really bad advice out there, the link above may be a bit of a rant from the author but he knows what he is doing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;JavaScript can be a horrible thing to write and maintain or something very easy and fluid. The choice is in how you use it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://javascript.crockford.com/code.html&quot; rel=&quot;nofollow&quot;&gt;http://javascript.crockford.com/code.html&lt;/a&gt; for conventions.&lt;/p&gt;&#xA;" OwnerUserId="4330" LastActivityDate="2010-10-20T13:08:08.117" CommentCount="2" />
  <row Id="13262" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T13:11:54.357" Score="7" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Code Poet&lt;/li&gt;&#xA;&lt;li&gt;Computer Poet&lt;/li&gt;&#xA;&lt;li&gt;Software Craftsman&lt;/li&gt;&#xA;&lt;li&gt;Computer Whisperer (analogous to horse whisperer)&lt;/li&gt;&#xA;&lt;li&gt;Computer Dictator (You tell the computer exactly what to do)&lt;/li&gt;&#xA;&lt;li&gt;Computer-Human Translator&lt;/li&gt;&#xA;&lt;li&gt;Computer-Human Interface&lt;/li&gt;&#xA;&lt;li&gt;Computer-Human Protocol Officer = CHPO (just like C-3PO)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4506" LastActivityDate="2010-10-20T13:11:54.357" CommentCount="1" />
  <row Id="13263" PostTypeId="2" ParentId="13044" CreationDate="2010-10-20T13:12:41.417" Score="1" ViewCount="" Body="&lt;p&gt;Because it's easier to give a man a fish than to teach him to fish I often find myself writing DLL's solely to validate &lt;a href=&quot;http://muskie.usm.maine.edu/mds/RCF_AssessFileSpecs.pdf&quot; rel=&quot;nofollow&quot;&gt;government forms ASCII output&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That pretty much consists of one 2,000 line function to match one 100 page spec.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This, I believe is the way the US government does things (except they use VB instead of Delphi).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To remedy this, I made a generic formula generator that the people who implement our software should be able to set up themselves.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-20T13:12:41.417" />
  <row Id="13264" PostTypeId="2" ParentId="12369" CreationDate="2010-10-20T13:23:45.463" Score="1" ViewCount="" Body="&lt;p&gt;I'm only guessing here but its probably for legacy reasons. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sequences &amp;amp; identity columns have annoying properties like not respecting transactions. Sequences actually provide you with more flexibility than a plain identity column as it allows you, the developer, to decide how and when to apply the sequence. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sequences also give you the ability to know your assigned sequence number &lt;strong&gt;before&lt;/strong&gt; having to insert the record. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a side note, if you plan in the future to support either replication or any form of disconnected'ness (eg mobile devices or offline connections to your database) i would suggest using GUIDs as your key. As this removes issues around sequence partitioning etc. &lt;/p&gt;&#xA;" OwnerUserId="4330" LastActivityDate="2010-10-20T13:23:45.463" CommentCount="2" />
  <row Id="13265" PostTypeId="1" CreationDate="2010-10-20T13:28:14.207" Score="13" ViewCount="301" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At my current workplace, we don't have any testers, the rationale for that from the management being: &quot;if we had testers, you wouldn't test your own code at all&quot;. This kind of thinking seems to be detrimental to product quality, as while I do test my own code, there are a lot of things that I will miss just for the fact that I know the system inside out and don't know how to use it &quot;wrong&quot;. Black box testing doesn't really work as I subconsciously avoid the pitfalls that a dedicated tester would fall into. A lot of my time goes into fixing bugs that have slid into production code and found by the end user.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The system in question is large but is developed solely by me. This has also caused some managemental duties to fall on my lap, such as defining schedules and working on specifications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should these kind of tasks be my responsibility? I see myself strictly as a programmer and nothing else. And if these are my responsibility, to what extent? When is a project so large that it requires testers? Should a programmer have to refine the specification, worry about management of the project or even provide customer support?&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Note&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Some might have got the impression that I am against widening my responsibilities &amp;ndash; that is not the case, I'm eager to get a role that involves more management duties, but currently it is not in my job description. Until I'm officially employed as such or the additional duties start showing in my paycheck, I'm going to think of myself as 'just' a programmer. Unfortunately, as a junior developer, shifting to managerial duties is not going to happen very soon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Excellent answers so far, keep them coming if you have something to add or personal experiences to share!&lt;/p&gt;&#xA;" OwnerUserId="5615" LastEditorUserId="5615" LastEditorDisplayName="" LastEditDate="2010-10-20T15:24:02.623" LastActivityDate="2010-10-20T16:01:44.333" Title="Is a programmer supposed to be self-sufficient?" Tags="&lt;project-management&gt;&lt;testing&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="2" />
  <row Id="13266" PostTypeId="2" ParentId="13259" CreationDate="2010-10-20T13:28:25.953" Score="4" ViewCount="" Body="&lt;p&gt;Breaking the big goal (&quot;get the software done&quot;) into smaller pieces - stories - and deciding which of them to do at the current sprint improves productivity and reduces stress. When you know specifically what you're supposed to be doing &lt;em&gt;now&lt;/em&gt;, there's little to stress about, and you can focus on doing the little piece instead of feeling overwhelmed by the large whole.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-20T13:28:25.953" CommentCount="3" />
  <row Id="13267" PostTypeId="2" ParentId="5531" CreationDate="2010-10-20T13:34:46.207" Score="1" ViewCount="" Body="&lt;p&gt;Writing code that fails silently vs. code that reports all errors.&lt;/p&gt;&#xA;" OwnerUserId="5768" LastActivityDate="2010-10-20T13:34:46.207" />
  <row Id="13268" PostTypeId="2" ParentId="13265" CreationDate="2010-10-20T13:36:57.870" Score="8" ViewCount="" Body="&lt;p&gt;Yes. If you &lt;em&gt;have&lt;/em&gt; to, you should be able to test your code. (I'm not talking unit tests, but acceptance tests and such.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;No&lt;/strong&gt;. Testers are better at testing than you are. And as you point out, just like proofreading, it's very hard to spot your own mistakes. Having extra eyeballs will have a major (good) impact on your program quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have a lot of other questions. I'll only one:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Should a programmer have to refine the specification?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes! You have to implement the specification, so you have to ensure that the specification is actually implementable. Also, as a programmer - trained in clear thinking, precision and such - you can help people discover what actually needs to be done, and weed out ambiguous or logically flawed requirements.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-20T13:36:57.870" />
  <row Id="13269" PostTypeId="2" ParentId="13249" CreationDate="2010-10-20T13:45:42.660" Score="2" ViewCount="" Body="&lt;p&gt;Consider &lt;a href=&quot;http://www.redmine.org/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Redmine&lt;/strong&gt;&lt;/a&gt;. It is open source and has most if not all the extensions you mentioned.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-10-20T13:45:42.660" CommentCount="1" />
  <row Id="13272" PostTypeId="2" ParentId="13265" CreationDate="2010-10-20T13:59:06.807" Score="4" ViewCount="" Body="&lt;p&gt;What they are saying and reality are probably two different things. Most likely the rationale is:&lt;br&gt;&#xA;&quot;Why do I have to pay a tester's salary when I can just make the programmer do double duty?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, they aren't going to say that and will make up all sorts of excuses they think are reasonable. I can think of several rebuttals to their point, but honestly they aren't going to help. I've seen this battle over and over and they will just shift their approach whenever you debunk their current reasoning. Eventually they will give up and just direct you to do it anyway and you will be labeled a complainer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best approach I can think of is to address it not from a quality point of view, which management never seems to value until there are problems, but from a cost point of view. Testers are, or at least are perceived as, less expensive than programmers. Remind them that by having you do double duty they are paying a higher paid resource (programmer) to do the work that could be accomplished by a less expensive resource (tester). Thus they are not maximizing the value they are extracting from your programming skill. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This approach does have the downside of falling apart if you are salaried and they have no compunctions about just making you work more unpaid overtime, but it is worth a shot.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-20T13:59:06.807" CommentCount="2" />
  <row Id="13273" PostTypeId="2" ParentId="13259" CreationDate="2010-10-20T14:01:22.627" Score="1" ViewCount="" Body="&lt;p&gt;The fact that requirements will change is taken into account right from start.  Developers don't need to create detailed specs with precise estimates and then spend weeks developing a feature only to realize that the customer changes his mind as soon as he sees the result...&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-10-20T14:01:22.627" />
  <row Id="13274" PostTypeId="2" ParentId="13259" CreationDate="2010-10-20T14:03:27.970" Score="1" ViewCount="" Body="&lt;p&gt;For me, you get to self assign tasks from the backlog is the biggest selling point from a developer point of view. Also, the intimacy with the customer / product owner helps understand the larger scheme of things.&lt;/p&gt;&#xA;" OwnerUserId="5117" LastActivityDate="2010-10-20T14:03:27.970" />
  <row Id="13275" PostTypeId="2" ParentId="13265" CreationDate="2010-10-20T14:10:22.967" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;The system in question is large but is developed solely by me. This has also caused some managerial duties to fall on my lap, such as defining schedules and working on specifications.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Fair enough.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Should these kind of tasks be my responsibility?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That is ultimately up to your management to decide.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I see myself strictly as a programmer and nothing else.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Perhaps you are in the wrong job then.  A lot of people like being given the extra responsibility.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;And if these are my responsibility, to what extent? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If management say so, yes. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;When is a project so large that it requires testers? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;When there is too much other work that the developers have to do.  At that point, management need to decide whether they want to employ a dedicated tester, or take the risk of skimping on testing.  (Ultimately, developers can only do so much.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are definite advantages in having dedicated testers, but there are downsides as well ... in addition to the cost of employing extra staff.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Should a programmer have to refine the specification, &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If necessary, yes.  In fact, if the specification needs refining and there's nobody else working on it, then the failure to do this is likely to cause the project to fail.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;worry about management of the project&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If necessary, yes. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;or even provide customer support?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If necessary, yes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It sound to me like you are overworked, and reacting to the pressure.  This is a problem.  But taking the position that it is &quot;not your job to do X, Y, Z&quot; is not going to help.  A better plan is to make it clear that there is only so much that you can do, and point out that this is likely to cause deadlines to be missed, quality to slip, poor customer support and so on.   But do your best anyway ... without damaging your health, relationships, etc in the process.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-10-20T14:10:22.967" />
  <row Id="13276" PostTypeId="2" ParentId="13265" CreationDate="2010-10-20T14:12:22.190" Score="4" ViewCount="" Body="&lt;p&gt;You &lt;b&gt;do&lt;/b&gt; have testers.  Only, you call them &quot;end users.&quot;  This is detrimental for all the reasons you describe; no matter how conscientious a coder you are, you're simply never going to be able to do a good enough job overcoming your own preconceptions about how the code is &quot;supposed&quot; to be used for you to find all the ways it can screw up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to re-open this issue with management.  By this point, it sounds like you have some hard data to back your case; the current hands-off approach to Quality Assurance both wastes your time &lt;b&gt;and&lt;/b&gt; compromises your users' experience.  You need to be careful in how you present this so that it's clear this is a structural problem and &lt;b&gt;not&lt;/b&gt; a case of &quot;You just suck at testing,&quot; but it sounds like a discussion that needs to happen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It sounds like you're coming to a crossroads with this employer.  If you're intent on remaining a programmer and nothing else, you may need to start pushing back and requesting that they start getting you the help you need to take some of the managerial tasks off your plate, either by bringing in somebody new or by expanding an existing co-worker's responsibilities.  (&quot;This isn't what you hired me for, and these tasks aren't going away.  Time I spend doing this stuff badly is time I'm &lt;b&gt;not&lt;/b&gt; spending on what I'm good at.&quot;)  But that may or may not be realistic.  Do you think you could handle moving into to a more managerial role if they gave you the resources and authority you'd need to get the job done right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to how big does a project need to be before it needs testers, I'm not sure how to precisely define that line, but I definitely think you've crossed it.  You're spending more time than you'd like fixing bug reports coming in from actual users; to me that says it's time to spend more effort stopping the bugs from getting to the users in the first place.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-10-20T14:12:22.190" />
  <row Id="13277" PostTypeId="2" ParentId="13190" CreationDate="2010-10-20T14:14:07.400" Score="6" ViewCount="" Body="&lt;p&gt;Actually, a detailed description of how to deploy is valuable in itself.  Your client may want to be able to control deployment rather than going through you each time.  Just include it in your estimates and make sure you get paid for it.  Not having access to the client's server is going to make things take longer in general, but that shouldn't itself be a problem.  Remember that there also can be perfectly legitimate legal or liability reasons why you don't get access, so you probably want to have some idea how to work without access.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any relationship where there's a trust issue, I'd pay attention to the payment schedule, and make sure I was never owed more money than I was willing to write off if things went bad.  Distrust in one area can spread.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-20T14:14:07.400" />
  <row Id="13278" PostTypeId="2" ParentId="13250" CreationDate="2010-10-20T14:14:37.617" Score="0" ViewCount="" Body="&lt;p&gt;It's not a matter of &lt;em&gt;if&lt;/em&gt; you will ever need to switch, but &lt;em&gt;when&lt;/em&gt;.  I've been paid to program in seven different languages, and done open source work in a few more, including learning python a few weekends ago.  I highly recommend having an 15-minute tutorial level knowledge of just about every language you read about.  Then when the opportunity presents itself to use a new language in a real project, you will recognize the best language for the job and can come up to speed on the details quickly without being scared of the unknown.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as your career goes, remember that businesses switch technologies too.  Even with no significant experience in a language, you can get hired by showing a mastery of a different programming language, showing a knowledge of the basics of the new language, and demonstrating that your skills can transfer by asking intelligent questions.  Trust me, that's how I got my current position.&lt;/p&gt;&#xA;" OwnerUserId="3965" LastActivityDate="2010-10-20T14:14:37.617" />
  <row Id="13279" PostTypeId="1" AcceptedAnswerId="13286" CreationDate="2010-10-20T14:17:33.147" Score="17" ViewCount="645" Body="&lt;p&gt;I get casually asked a lot to take a couple days to teach someone how to program. Most people really think they can learn what I know in a few days. When I tell them I have been doing this for many years and I can't teach them to be a programmer in a few days, they look at me like I am being a jerk and just don't want to help them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this is because when I say I am a programmer, or I programmed &lt;em&gt;this&lt;/em&gt;. I truly think most people do not realize that I mean I wrote the code that makes it up. I think that they think I mean I configured it, like when you say, &quot;I programmed my VCR.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone else think this? Whats your experience?&lt;/p&gt;&#xA;" OwnerUserId="1785" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-10-20T19:35:18.993" LastActivityDate="2010-10-21T00:15:17.793" Title="How do you portray to non programmers what programming involves?" Tags="&lt;non-programmers&gt;&lt;terminology&gt;" AnswerCount="10" CommentCount="14" FavoriteCount="2" />
  <row Id="13280" PostTypeId="2" ParentId="13259" CreationDate="2010-10-20T14:19:53.813" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Stack Ranks / Backlog keeps milestone ends from being death-marches&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a developer, the 'destructive pattern' I see most in software development is when some 'external controller' (e.g. project management, executive management) gets very excited over the fact that 'favorite feature' isn't going to make it on 'calendar date' and orders a death-march.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scrum, because it ranks 'important features' high in a backlog list helps developers manage this tension proactively in two ways.  First, you can rank 'favorite feature' high in the backlog so that s/he is most likely to be happy.  Second, it gives a very visual and concrete answer to &quot;since we moved 'blinking widgets' to rank 1, it's very likely that we're not going to get to 'bouncing bunnies' in this sprint since it is now rank 7.  Are you comfortable with this trade-off?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also found that with short sprints, 'external controllers' are less upset about postponing work.  If 'blinking widgets' doesn't make it into 'milestone 1' and 'milestone 2' doesn't end until 9 months from now, the sponsor of 'blinking widgets' gets very upset.  But if 'blinking widgets' is stack ranked 7 instead of 1 because there really are 6 more important things that have to get done first, this means that we'll probably get to it in sprint + 1 or at worst sprint + 2 which means it will show up 12 or 18 weeks from now (using 6 week sprints).  In my experience, waiting 3 months is 'acceptable' to the impatient -- besides, back in the 'waterfall' model of 3+ month milestones, waiting until the next two sprints end is the same calendar time as waiting until the current milestone ends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, if we're reaching the end of the sprint and things took longer than expected, it's very nice to be able to push backlog items 5-6-7 to the next sprint and make sure we've completed 1-2-3-4 with high quality and without 70 hr weeks.  After all, we'll be sure to get to 5-6-7 next sprint.  Again, given the shorter timeframes involved in the postpone, 'external controllers' are generally more comfortable with this and don't insist that we slip the milestone two weeks and order dinners each night 'to just push through it'.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-20T14:19:53.813" />
  <row Id="13281" PostTypeId="2" ParentId="13279" CreationDate="2010-10-20T14:22:26.460" Score="12" ViewCount="" Body="&lt;p&gt;My experience is that people do not understand how complex coding is.  They think something like Tetris can be written easily by anyone.  They do not understand that it is a lot more complicated than they think.  My friends (have never seen code) think my degree in computer science means I can do IT.  They do not understand that I can program and write code.&lt;/p&gt;&#xA;" OwnerUserId="3092" LastActivityDate="2010-10-20T14:22:26.460" CommentCount="5" />
  <row Id="13282" PostTypeId="1" CreationDate="2010-10-20T14:24:43.210" Score="15" ViewCount="628" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/51591/sites-for-getting-freelancer-jobs&quot;&gt;Sites for getting freelancer jobs&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;What are good WWW sites to farm-out work of $100-2000 involving 1 hour to 16 hours of work?&lt;/p&gt;&#xA;" OwnerUserId="5818" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2010-10-21T02:11:08.150" LastActivityDate="2010-10-23T05:29:04.417" ClosedDate="2011-02-24T20:59:53.857" Title="Freelance programming sites" Tags="&lt;jobs&gt;&lt;independent&gt;&lt;freelance&gt;&lt;telecommute&gt;" AnswerCount="7" CommentCount="0" FavoriteCount="18" />
  <row Id="13283" PostTypeId="2" ParentId="13212" CreationDate="2010-10-20T14:28:20.097" Score="2" ViewCount="" Body="&lt;p&gt;As with most things there is no fixed answer here - it really depends on the team and the individuals involved and their relationships. I am the PO for a team who I functionally manage. It works fine. Can it get in the way? Sure it can, but if everybody wants it to work it can and does work. As a manager you need to be very clear about separation of your activites (manager vs PO - what hat am I wearing right now?) and also behave as more of a coach / team member than the old command and control style traditionalist. Manage with a very light touch and act as part of the team.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-20T14:28:20.097" CommentCount="2" />
  <row Id="13284" PostTypeId="2" ParentId="13249" CreationDate="2010-10-20T14:28:53.213" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Scrumy.Com&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just fiddled with Scrumy.Com a bit and I think it does what you want in a easy to use, visual way.  Not sure it would scale to very large projects, but it was good for the 5 person team I used it for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Their business model is quite interesting.  The basic tool is free but has no password protection or burndown chart.  If you get serious about using it, they want $7/project/month.  At this price, I was happy to put it on my personal credit card because a good project management system is worth two lattes / mo to me :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All hosted, no setup, trivial to jump into and use.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-20T14:28:53.213" />
  <row Id="13285" PostTypeId="2" ParentId="6352" CreationDate="2010-10-20T14:29:22.027" Score="1" ViewCount="" Body="&lt;p&gt;Java isn't going away.  Oracle was using Java as a language for stored database procedures shortly after it came out, and last I hung around Oracle people there were indications that Oracle would really like to drop its proprietary PL/SQL in favor of Java.  Oracle will continue to develop Java, although not necessarily in the same directions Sun would have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While Oracle is not friendly to Open Source (openSolaris as run by Sun is apparently dead), they'll likely keep the open portions open (and they can't withdraw an OS license issued by Sun).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Google suit is largely because what Google's doing isn't straight Java, but rather is compiled to another VM that apparently works better for Google's purposes, but is close enough to what Java does to trigger lawsuits.  It will doubtless get resolved, probably with Oracle getting something from Google.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-20T14:29:22.027" />
  <row Id="13286" PostTypeId="2" ParentId="13279" CreationDate="2010-10-20T14:32:00.890" Score="20" ViewCount="" Body="&lt;p&gt;Should only take a few minutes to set them up to write &quot;Hello World&quot; in JavaScript. There, you have taught them to program. And if they complain that they don't know enough to be useful, then hopefully they can begin to appreciate that it is something that takes more than a few minutes to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe try introducing yourself as a Software Engineer - the title normally elicits more respect than &quot;programmer&quot; (since people do identify the verb with more mundane tasks like programming the XYZ).&lt;/p&gt;&#xA;" OwnerUserId="4403" LastActivityDate="2010-10-20T14:32:00.890" CommentCount="10" />
  <row Id="13287" PostTypeId="2" ParentId="13282" CreationDate="2010-10-20T14:37:16.770" Score="3" ViewCount="" Body="&lt;p&gt;I can recommend you &lt;a href=&quot;http://vworker.com&quot; rel=&quot;nofollow&quot;&gt;vWorker&lt;/a&gt; (ex-rentacoder). Alot of project's you can bid on, and the payment system is nice. You might wanna try it out.&lt;/p&gt;&#xA;" OwnerUserId="5582" LastEditorUserId="5582" LastEditorDisplayName="" LastEditDate="2010-10-20T17:18:07.347" LastActivityDate="2010-10-20T17:18:07.347" />
  <row Id="13288" PostTypeId="2" ParentId="13282" CreationDate="2010-10-20T14:39:29.803" Score="1" ViewCount="" Body="&lt;p&gt;I've heard praise for Elance:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.elance.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.elance.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They seem very professional.&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-10-20T14:39:29.803" />
  <row Id="13289" PostTypeId="2" ParentId="13190" CreationDate="2010-10-20T14:54:32.887" Score="3" ViewCount="" Body="&lt;p&gt;I have worked in IT and government for many years.  In those environments developers NEVER have access to the production system.  It should be par for the course to provide installation instructions especially for code being custom developed by the client.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I assume the client will own the code you are writing for them.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-10-20T14:54:32.887" />
  <row Id="13290" PostTypeId="2" ParentId="12248" CreationDate="2010-10-20T14:54:45.420" Score="0" ViewCount="" Body="&lt;p&gt;I would recommend &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/078214327X&quot; rel=&quot;nofollow&quot;&gt;Code to Developer&lt;/a&gt; by Mike Gunderloy. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of the technology references (VS 2003) in the book are a little bit dated, but I specifically remember this book as being my main introduction to concepts like source control, defensive programming, bug tracking, etc - all of the stuff that they didn't teach me in school.&lt;/p&gt;&#xA;" OwnerUserId="4403" LastActivityDate="2010-10-20T14:54:45.420" />
  <row Id="13291" PostTypeId="2" ParentId="11077" CreationDate="2010-10-20T14:59:31.253" Score="0" ViewCount="" Body="&lt;p&gt;In Denmark they were previously nicknamed &quot;open Tuborg&quot; and &quot;closing Tuborg&quot; (the beer).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look carefully at the roof on this model car to see why.&lt;br&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/VbrcL.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These days it is just the dull &quot;curly parenthesis&quot;.  Sigh.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-16T19:44:38.690" LastActivityDate="2010-12-16T19:44:38.690" CommentCount="1" />
  <row Id="13292" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T15:09:20.280" Score="10" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://dilbert.com/strips/comic/2008-03-04/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://i.imgur.com/4w6Vo.gif&quot; alt=&quot;link text&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2051" LastActivityDate="2010-10-20T15:09:20.280" />
  <row Id="13293" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T15:10:10.730" Score="4" ViewCount="" Body="&lt;p&gt;Resourceful human. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Grand vizier. &lt;/p&gt;&#xA;" OwnerUserId="1051" LastActivityDate="2010-10-20T15:10:10.730" CommentCount="1" />
  <row Id="13301" PostTypeId="2" ParentId="13231" CreationDate="2010-10-20T15:21:34.727" Score="1" ViewCount="" Body="&lt;p&gt;I started writing Mac software about five years ago. It's pretty easy to &lt;em&gt;learn&lt;/em&gt;, but like most things, it's tough to &lt;em&gt;master&lt;/em&gt;. I was capable of writing Mac software after just a few months, but it wasn't for another year or two before I could write it &lt;em&gt;really well&lt;/em&gt; (that is, I knew most of the ins and outs of Mac OS X), and even now, five years later, I still learn a lot of new things (partly because Apple releases a lot of new frameworks with each OS X revision, so every time a new point release comes out, there's something new to read up about).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To learn it, I mostly just read a few books (including O'Reilly's &lt;em&gt;Cocoa in a Nutshell&lt;/em&gt;) and started contributing to a few open-source projects, namely the Adium and Colloquy projects.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-20T15:21:34.727" CommentCount="1" />
  <row Id="13302" PostTypeId="2" ParentId="11077" CreationDate="2010-10-20T15:23:00.320" Score="0" ViewCount="" Body="&lt;p&gt;I believe Wiggly Bracket is the official name.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-10-20T15:23:00.320" />
  <row Id="13304" PostTypeId="2" ParentId="13282" CreationDate="2010-10-20T15:28:59.623" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.odesk.com&quot; rel=&quot;nofollow&quot;&gt;oDesk&lt;/a&gt; is an alternative you should consider.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-20T15:28:59.623" CommentCount="2" />
  <row Id="13305" PostTypeId="2" ParentId="11077" CreationDate="2010-10-20T15:30:08.697" Score="0" ViewCount="" Body="&lt;p&gt;In Sweden we say &quot;måsvingar&quot; == &quot;gull wings&quot;. They sort of look like birds, no?&lt;/p&gt;&#xA;" OwnerUserId="5768" LastActivityDate="2010-10-20T15:30:08.697" />
  <row Id="13306" PostTypeId="2" ParentId="13178" CreationDate="2010-10-20T15:32:16.730" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Writing a resume is like writing an ad.&lt;/strong&gt; A resume is not a pedigree. While you shouldn't lie, you should not mention things that make you look bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In copy writing, every statement has a purpose. Similarly, every statement in a resume should have the purpose of selling you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do not mention gaps, but also, &lt;strong&gt;do not mention experiences that don't sell you as a good candidate for the job&lt;/strong&gt; you are pursuing. If you are pursuing a job as a developer, for example, it may not be a good idea to mention your experience as a clerk in a supermarket. It depends on the situation -- maybe that was a relevant experience, after all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As suggested in the other answers, there are many ways to communicate about the &quot;gap&quot;. I would suggest you make the gap invisible. For example, I never mention my graduation year. This is a way to prevent people from calculating my experience from the year of graduation, which is irrelevant. That's because, in reality, I actually started my career before graduating, and even had a small business, which is not common where I live.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recommend reading the excellent book:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Executive Jobs Unlimited&lt;/strong&gt;, By Carl R. Boll — &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/002512790X&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Executive-Jobs-Unlimited-Carl-Boll/dp/002512790X/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1287588518&amp;amp;sr=8-1&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've used the ideas in this book for my own job search, and when helping several friends, and it's been very useful.&lt;/p&gt;&#xA;" OwnerUserId="5708" LastActivityDate="2010-10-20T15:32:16.730" CommentCount="1" />
  <row Id="13307" PostTypeId="2" ParentId="13259" CreationDate="2010-10-20T15:32:41.407" Score="8" ViewCount="" Body="&lt;p&gt;Scrum will &lt;strong&gt;provide much more visibility on what is going on&lt;/strong&gt;. Bad management, last minute changes, pressures, and all kind of stuff a developer usually face.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it will also bring a lot of visibility on procrastinators, bad faith developers, insane individualists, ... in other words, bad developers.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Scrum is a double edged sword&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Scrum will bring you with opportunities to solve those problems. That's why it's so powerful.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-20T15:32:41.407" />
  <row Id="13309" PostTypeId="2" ParentId="11077" CreationDate="2010-10-20T15:39:30.833" Score="0" ViewCount="" Body="&lt;p&gt;Klamra in Poland; official name is nawias klamrowy, but no one has time for it. In general this word means just buckle.&lt;/p&gt;&#xA;" OwnerUserId="2051" LastActivityDate="2010-10-20T15:39:30.833" />
  <row Id="13310" PostTypeId="1" CreationDate="2010-10-20T15:39:56.580" Score="2" ViewCount="278" Body="&lt;p&gt;What I'm trying to do? I'm using gVim on Windows, and am trying to get something that looks like &lt;a href=&quot;http://leetless.de/images/vim/phd.png&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/IqEuN.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See the indent lines and tab characters? &lt;em&gt;(check out the link for the big picture if this one is too small)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tried a lot of things already, some of them having to do with fonts, some of them having to do with encodings, some of them having to do (it seems) with the current air pressure, and wind speed. But none of them worked.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-10-21T07:29:18.017" LastActivityDate="2010-10-21T07:29:18.017" Title="Getting unicode characters in gVim on Windows" Tags="&lt;gvim&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="1" />
  <row Id="13311" PostTypeId="1" AcceptedAnswerId="13313" CreationDate="2010-10-20T15:42:38.950" Score="5" ViewCount="257" Body="&lt;p&gt;At work I have a computer with 2gb of memory. It's a fast core2duo with ddr3 memory. But it's really slow because I have open Eclipse, Jboss, sql developer, outlook, firefox with firebug, IM program, etc etc etc and the swap is killing me. I asked for 2gb more of memory about 6 months ago with no response. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I go and buy 2gb memory by myself? Take into account that: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If the machine was responsive I could save like an hour of my 8hour job. Also I wouldn't lose focus of what I'm doing because of having to wait for the machine to respond.&lt;/li&gt;&#xA;&lt;li&gt;The case has a lock so I'd have to cut it with a saw.&lt;/li&gt;&#xA;&lt;li&gt;It has 32bit windows XP so I'll see about 3.25 gb of memory at most, it also has an antivirus that cannot be uninstalled which also helps with the &quot;slowness&quot;.&lt;/li&gt;&#xA;&lt;li&gt;I wouldn't like to be fired.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="4701" LastActivityDate="2010-10-20T22:41:27.880" ClosedDate="2010-10-20T22:51:20.697" Title="Memory of my work computer" Tags="&lt;work-environment&gt;&lt;technology&gt;" AnswerCount="8" CommentCount="3" />
  <row Id="13312" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T15:45:03.453" Score="5" ViewCount="" Body="&lt;p&gt;Try this one out:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bit Herder&lt;/p&gt;&#xA;" OwnerUserId="5824" LastActivityDate="2010-10-20T15:45:03.453" />
  <row Id="13313" PostTypeId="2" ParentId="13311" CreationDate="2010-10-20T15:47:13.083" Score="13" ViewCount="" Body="&lt;p&gt;It's up to your employer to provide you with the right tools and environment. If you'd have to cut through a case lock (and likely be fired because of it -- the lock's there for a reason) for 1.25GB of RAM, it's time to look for a new job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alternatively, just live with what you've got. Make your case to the management again just in case your original request got lost, but otherwise it's their money lost by not allowing you to be more productive.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-20T15:47:13.083" CommentCount="2" />
  <row Id="13314" PostTypeId="2" ParentId="13311" CreationDate="2010-10-20T15:51:23.343" Score="5" ViewCount="" Body="&lt;p&gt;I agree with Anna but would like to add that you should update the case by quoting how much money (i.e. hours * the rate they charge your time at) you've wasted waiting for builds etc. since you filed the last request.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might also be worth asking to up upgraded to a 64 bit OS so you can make use of this memory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aim high and then you might get what you actually want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you immediate boss won't help - go to his boss.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-20T15:51:23.343" CommentCount="1" />
  <row Id="13315" PostTypeId="2" ParentId="13311" CreationDate="2010-10-20T15:55:34.660" Score="2" ViewCount="" Body="&lt;h3&gt;Try asking for it in person.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;If they approve but nothing happens for a week, ask again in person.&lt;/p&gt;&#xA;" OwnerUserId="2820" LastActivityDate="2010-10-20T15:55:34.660" CommentCount="2" />
  <row Id="13316" PostTypeId="2" ParentId="13279" CreationDate="2010-10-20T15:57:21.700" Score="12" ViewCount="" Body="&lt;p&gt;My dad and I were talking about what it would take to build a program to visualize stairs (his specialty is building custom stairs). He starts off by saying &quot;It should be easy, right?&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I begin to ask him some very specific questions about the domain of stairs and the terminology. After about 3-5 minutes of asking these questions, he recognizes that the domain itself is complex (We didn't even get into a discussion of the actual programming complexity).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, no, programming is not understood. Typically programming is considered to be some sort of wizard-y operation.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-20T15:57:21.700" CommentCount="2" />
  <row Id="13317" PostTypeId="2" ParentId="13265" CreationDate="2010-10-20T16:01:44.333" Score="3" ViewCount="" Body="&lt;p&gt;We have testers. I would not want to work without them. Although I do write unit tests (using TDD), and automated integration test for all my code, testers still have a very valuable function.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;They are highly skilled, and have different skills to programmers. &#xA;&lt;ol&gt;&#xA;&lt;li&gt;They have lots of experience and knowledge of how to do QA testing, and how to verify that the code that has been produced really matches both the user's expectation and the actual behavior of the users. &lt;/li&gt;&#xA;&lt;li&gt;They have experienced many bugs, and are very good at thinking of situations that could break the software.&lt;/li&gt;&#xA;&lt;li&gt;They tend to be cynical and systematic. I have observed that programmers are often much more optimistic.&lt;/li&gt;&#xA;&lt;/ol&gt;&lt;/li&gt;&#xA;&lt;li&gt;They provide valuable early feedback on usability. For instance, when creating a REST API recently, areas which the QA testers could not understand easily were a good indication of areas that the user would also be unhappy with.&lt;/li&gt;&#xA;&lt;li&gt;They test on the actual environment, in fact many configurations of the real hardware, OS, etc.&lt;/li&gt;&#xA;&lt;li&gt;They know how to build large scale, realistic, test beds and do performance, load and stress testing&lt;/li&gt;&#xA;&lt;li&gt;They are focused on preventing bad releases from getting out. Programmers tend to focus on getting the code released. Its almost like, a programmer will release the code by default, but a QA tester will need a reason to release it (it has been shown to work!)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-10-20T16:01:44.333" />
  <row Id="13318" PostTypeId="1" CreationDate="2010-10-20T16:02:08.077" Score="1" ViewCount="138" Body="&lt;p&gt;I am looking at a few different ways to get Rails 3 working (database is not important right now) on Windows 7, would appreciate some advice on different stacks and IDEs. I do want to go with an IDE for several reasons such as code completion and because i will be using the ruby debugger (which i find easier to use on a GUI)&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Netbeans for Ruby 7.0 m2, seems like the easiest route so far.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Aptana 3/Radrails, tried this last night, had a few problems already, it seems Rails does not work out-of-box, at least when i tried creating a new Rails project, nothing seemed to happen.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Rubystack with Notepad++/Gvim, might be overkill/less than ideal, but if it works better than the rest, i'm happy.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Turnkey Linux/Jumpbox/Elastic server, all of these are currently a bit out of date, as i wanted to get into Rails 3, so only Rubystack seems like it fits that criteria so far.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Rubymine. Didn't really look at this yet, but wanted to avoid paying unless it really turned out to be the best overall option.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Ubuntu, yeah might end up dual-booting or at least using the Bitnami Rubystack VM in VMware, though i tried this and had a couple of issues getting Rails to work/connect to the guest OS. If i dual-booted, would this involve significantly less effort than getting Rails to run in Win7? Yes, i'm already experienced with Linux, Ubuntu in particular, but my main work machine is Win7-based (for now)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1913" LastActivityDate="2010-10-20T16:02:08.077" ClosedDate="2010-10-21T23:40:48.700" Title="Getting Rails 3 working with minimum hassle on Windows 7?" Tags="&lt;ruby-on-rails&gt;" CommentCount="3" FavoriteCount="0" />
  <row Id="13319" PostTypeId="2" ParentId="13249" CreationDate="2010-10-20T16:03:08.567" Score="0" ViewCount="" Body="&lt;p&gt;If you're looking for a &quot;web or desktop software solution&quot; - we use Rally and I believe they have a &quot;community&quot; edition that you can use for free (with limitations)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.rallydev.com/agile_products/editions/community/signup/&quot; rel=&quot;nofollow&quot;&gt;http://www.rallydev.com/agile_products/editions/community/signup/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I should add that while we use Rally - there are a few things that are a bit &quot;huh?&quot; about it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that - we use Rally, but for our day to day, we still rely heavily on our physical task board, etc. (i.e. our &quot;Visual Controls&quot;, to borrow a term from Lean) . In fact, I'd argue if it wasn't for &quot;management&quot; needing reports and charts, we'd do just fine, if not better with our task board. IMO, for a co-located team that isn't too big, you can't beat a physical system.&lt;/p&gt;&#xA;" OwnerUserId="5677" LastActivityDate="2010-10-20T16:03:08.567" />
  <row Id="13320" PostTypeId="2" ParentId="13259" CreationDate="2010-10-20T16:03:32.290" Score="0" ViewCount="" Body="&lt;p&gt;A couple of things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Building on Xavier's point about&#xA;requirements changing right from the&#xA;start - a less political atmosphere&#xA;develops when everyone accepts from the start that&#xA;some things will not be as the client&#xA;expects. Quick&#xA;delivery and review will mean that&#xA;the cost of mis-communications is&#xA;low, and instead of playing the blame&#xA;game, the developers can just change&#xA;things so that they do work as the&#xA;client expects.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Story points! What developer doesn't&#xA;like getting points for doing&#xA;stuff!!?! Seriously, it's better than&#xA;getting badges in SC2 or Stack&#xA;Overflow.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5826" LastActivityDate="2010-10-20T16:03:32.290" />
  <row Id="13321" PostTypeId="2" ParentId="13311" CreationDate="2010-10-20T16:10:14.267" Score="1" ViewCount="" Body="&lt;p&gt;Tell your Boss, you can't work, because of that few memory. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need a minimum of 2GB more memory (~ $50-100).&#xA;Talking about this little money is more expansive than buying it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your Boss can't give you that memory, look for another job. I don't think they will fire you, but may be, the company will stop to exist in near future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry, if I scared you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And don't buy it by yourself. You may be not allowed to open the PS-Case and plug it in.&lt;/p&gt;&#xA;" OwnerUserId="2910" LastActivityDate="2010-10-20T16:10:14.267" CommentCount="2" />
  <row Id="13322" PostTypeId="2" ParentId="13311" CreationDate="2010-10-20T16:14:50.630" Score="3" ViewCount="" Body="&lt;p&gt;Even if you didn't have to cut through the case lock, I still don't think you should do it for three reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;First&lt;/em&gt;, if you damage the computer, or it just breaks for some other reason by coincidence, you may get blamed for the situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Second&lt;/em&gt;, management will learn that if they don't provided you with the proper equipment you will do it your self. Which provides them with an incentive to continue to refuse your equipment requests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Third&lt;/em&gt;, you might make it more difficult for other co-workers to get the upgrades they need. Management may say to your co-workers &quot;look, Luciano is getting on with only 2GB of ram, why can't you&quot;. Or if you know you have added more ram, they may begin to expect your co-workers to do the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, if you are working for a company where a programmer getting a 2GB memory upgrade is a big deal I would be more worried about the company/project finances (memory is usually very cheap compared to the salary of a programmer); and seriously consider looking for a new job.&lt;/p&gt;&#xA;" OwnerUserId="5404" LastEditorUserId="5404" LastEditorDisplayName="" LastEditDate="2010-10-20T17:06:40.617" LastActivityDate="2010-10-20T17:06:40.617" CommentCount="2" />
  <row Id="13323" PostTypeId="2" ParentId="5531" CreationDate="2010-10-20T16:16:56.983" Score="0" ViewCount="" Body="&lt;p&gt;At one level, management. But it's not just the PHB. It's the management of the code itself, which may or may not be a reflection of the corporate management. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The participants in the entire &quot;lifecycle&quot; need to be fully invested in quality and making a product that just &lt;em&gt;doesn't die&lt;/em&gt;. Software itself has the promise of never breaking, &lt;em&gt;given&lt;/em&gt; the proper abstraction reliability. It is only a question of whether the software constructors are interested in having that perfect operation. &lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-20T16:16:56.983" />
  <row Id="13324" PostTypeId="2" ParentId="5531" CreationDate="2010-10-20T16:31:54.510" Score="1" ViewCount="" Body="&lt;p&gt;Lack of checking for things that &quot;can't happen&quot; or are unlikely to happen is a big one.  Sometimes the perfect is the enemy of the good.  If it's not worth a well-thought out exception hierarchy, some quick and dirty handling is always better than nothing.  I'm a &lt;strong&gt;huge&lt;/strong&gt; fan of failing fast, of asserts and of leaving asserts that have negligible impact on performance on in release builds.  Even in quick and dirty one-off scripts where I control all input data, I put some quick/dirty error handling in, usually just with a function that is equivalent to assert but stays on all the time.  My rule of thumb is that, if it's not likely to occur or you think it can't happen, it doesn't need to fail gracefully with a user-friendly error message, but it should at least fail fast with an error message that gives a programmer some hints about what went wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:  One related useful tactic is to use asserts as a major debugging tool and &lt;em&gt;leave them in there&lt;/em&gt; after the debugging session is over.  From that point on, your codebase will have some builtin sanity checks that make it very hard for related bugs to ever happen again.  This is especially useful for code that is hard to unittest.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastEditorUserId="1468" LastEditorDisplayName="" LastEditDate="2010-10-28T19:05:47.297" LastActivityDate="2010-10-28T19:05:47.297" />
  <row Id="13325" PostTypeId="2" ParentId="13311" CreationDate="2010-10-20T16:33:54.547" Score="2" ViewCount="" Body="&lt;p&gt;Definitely don't cut the lock.  What helped me in the same situation was to mention in our daily scrum meetings that I was waiting for a response.  Since they were daily meetings, I mentioned it every day.  My manager got tired of hearing about it, so he started bugging our IT department and eventually I got it installed.  If your manager/team lead tells you to stop bringing it up, then I side with the others that are suggesting you walk.  If the company won't help you do your job, then find another.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-10-20T16:33:54.547" CommentCount="1" />
  <row Id="13326" PostTypeId="2" ParentId="13279" CreationDate="2010-10-20T16:39:06.307" Score="7" ViewCount="" Body="&lt;p&gt;The simple answer is &quot;No&quot;.  The more complex answer is &quot;What's this 'code' stuff?&quot;.  :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously - non-developers don't understand programming.  Not at all.  Not even a little bit.  Even the ones who've written some formulas in Excel and think that they are therefore &quot;software developers&quot; are not possessed of Clue #1.  To someone who took a Basic programming class way back when programming is all about '10 PRINT &quot;HELLO WORLD!&quot;', and everything else is just...details.  And details are so easy to gloss over, misunderstand, and/or ignore, and...well...programming is just details, isn't it?  :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IT managers who've never coded (&lt;strong&gt;especially&lt;/strong&gt; IT managers who've never coded) don't Get It.  Knowledge isn't gained by proximity, but try convincing them of that...  Even managers who once-upon-a-time were developers, back in their salad days when men were men, computers were water-cooled, and COBOL was the up-and-coming new technology - still don't Get It, especially when &quot;It&quot; is defined as &quot;something that didn't even &lt;em&gt;exist&lt;/em&gt; 35 years ago&quot; such as the Web.  (I've read anecdotes that when Windows 1.0 was being developed, Bill Gates just didn't &quot;get&quot; event-driven programming.  As the Beatles didn't quite say, &quot;Money can't buy you clues&quot; :-).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And this is fine (up to a point :-).  I've been developing software for a Long Time (I'm 53 - started learning how to program when I was 16 - and I'm still learning), but I don't know how to do what other people do very well.  I can bang nails into boards well enough that things don't fall down, but my 81-year-old uncle was a professional carpenter his whole working life has forgotten more about carpentry that I'll ever know.  My neighbor on one side is a plumbing/heating/air conditioning guy - I know enough to know when to scream for help, but I'm no plumber.  My other neighbor - great salesman and heavy equipment operator - and I'm neither.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Share and enjoy.&lt;/p&gt;&#xA;" OwnerUserId="4848" LastActivityDate="2010-10-20T16:39:06.307" />
  <row Id="13327" PostTypeId="2" ParentId="3317" CreationDate="2010-10-20T16:43:54.463" Score="2" ViewCount="" Body="&lt;p&gt;In my experience &quot;programmer&quot; is pretty much out-of-date.  Nowadays &lt;em&gt;everyone&lt;/em&gt; is a Developer.  I've found that the title doesn't matter much - you're still expected to be analyst, programmer, DBA, project manager, janitor, chief cook and bottle washer, and stable hand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I still put &quot;Programmer&quot; on my 1040 every year.  I've never been much for style...  :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Share and enjoy.&lt;/p&gt;&#xA;" OwnerUserId="4848" LastActivityDate="2010-10-20T16:43:54.463" />
  <row Id="13328" PostTypeId="2" ParentId="6979" CreationDate="2010-10-20T16:45:05.107" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Programming Perl.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never learned so much about programming than when I learned (and am still learning Perl).  Sure functional languages and set theory helped too, but true application of knowledge, Perl holds the key.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-10-20T16:45:05.107" CommunityOwnedDate="2011-05-04T09:36:28.593" />
  <row Id="13329" PostTypeId="2" ParentId="13311" CreationDate="2010-10-20T16:51:09.330" Score="1" ViewCount="" Body="&lt;p&gt;You should &lt;em&gt;never&lt;/em&gt; buy stuff for your work computer.  First, as you point out, you can be fired for doing so - and they'll probably keep the memory if they fire you for putting it in, so it'd be a double loss.  Second, it's the d*mn company's d*mn computer, let them buy the d*mn memory!  If they don't want to invest a few bucks in helping you be more productive, fine - they're paying you to be unproductive, so be what you're paid to be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;YMMV.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Share and enjoy.&lt;/p&gt;&#xA;" OwnerUserId="4848" LastActivityDate="2010-10-20T16:51:09.330" CommentCount="4" />
  <row Id="13330" PostTypeId="2" ParentId="13310" CreationDate="2010-10-20T16:52:57.747" Score="1" ViewCount="" Body="&lt;p&gt;I don't know if I'm not 100% clear, but if you're talking about seeing hidden characters and :set list doesn't cut it for you there's an entry on SO to tweak it further: &lt;a href=&quot;http://stackoverflow.com/questions/1675688/make-vim-show-all-white-spaces-as-a-character&quot;&gt;http://stackoverflow.com/questions/1675688/make-vim-show-all-white-spaces-as-a-character&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: OK, try this one out, then:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;:set listchars=eol:$,tab:\|-,trail:~,extends:&amp;gt;,precedes:&amp;lt;&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then type &lt;code&gt;:set list&lt;/code&gt; and see if it matches what you're looking for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Hmmm - I dug a little more and found this info &lt;a href=&quot;http://www.mail-archive.com/vim@vim.org/msg09289.html&quot; rel=&quot;nofollow&quot;&gt;http://www.mail-archive.com/vim@vim.org/msg09289.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;vim is currently unable to display glyphs for Unicode &lt;em&gt;supplementary&lt;/em&gt; chars (they appear as question marks)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The post is several years old, and I'm running GVim under Windows 7, but I get the question mark whenever I try to put in supplementary characters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I am eager for a vim ninja to come along and show me the way, also :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Last stab, and then that's enough time down this rabbit hole.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;:set listchars=eol:$,tab:\|\¬,trail:~,extends:&amp;gt;,precedes:&amp;lt;&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To get the funny glyph after the escaped pipe character (under Windows) type &lt;code&gt;CTRL+Q&lt;/code&gt; then &lt;strong&gt;CAPITAL&lt;/strong&gt; &lt;code&gt;U&lt;/code&gt; then &lt;code&gt;00AC&lt;/code&gt; and then hit enter (props to Rook for the link). It's not EXACTLY what you wanted, but it is a character you won't normally type and it will display in a contrasting color under Windows.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastEditorUserId="3010" LastEditorDisplayName="" LastEditDate="2010-10-20T19:30:19.437" LastActivityDate="2010-10-20T19:30:19.437" CommentCount="4" />
  <row Id="13331" PostTypeId="2" ParentId="3317" CreationDate="2010-10-20T16:54:04.933" Score="2" ViewCount="" Body="&lt;p&gt;This awesome blog post nails it:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.skorks.com/2010/03/the-difference-between-a-developer-a-programmer-and-a-computer-scientist/&quot; rel=&quot;nofollow&quot;&gt;The Difference Between A Developer, A Programmer And A Computer Scientist&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://i.imgur.com/Lrbri.jpg&quot; rel=&quot;nofollow&quot;&gt;Computer Scientist&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://i.imgur.com/ovv2d.jpg&quot; rel=&quot;nofollow&quot;&gt;Programmer&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://i.imgur.com/rdbyo.jpg&quot; rel=&quot;nofollow&quot;&gt;Developer&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1968" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-29T19:23:17.553" LastActivityDate="2010-10-29T19:23:17.553" />
  <row Id="13332" PostTypeId="2" ParentId="12807" CreationDate="2010-10-20T16:56:16.580" Score="0" ViewCount="" Body="&lt;p&gt;Coleague of mine called &lt;code&gt;if&lt;/code&gt; a &lt;code&gt;loop&lt;/code&gt;.  I lived to tell about it.&lt;/p&gt;&#xA;" OwnerUserId="1058" LastActivityDate="2010-10-20T16:56:16.580" CommunityOwnedDate="2010-10-20T16:56:16.580" />
  <row Id="13333" PostTypeId="1" CreationDate="2010-10-20T17:00:55.670" Score="-1" ViewCount="140" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/1108/are-there-any-magazines-still-worth-reading&quot;&gt;Are there any magazines still worth reading?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Thinking of the magazine &lt;em&gt;Byte&lt;/em&gt; recently, I am curious if you believe that a paper-published (no blog, maybe a PDF for subscribers) magazine on programming and all aspects thereof would be of value?  Articles with interesting programming culture with sprinklings on embedded, mainframe, system landscape architecture, and articles on real-world scalability?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally prefer to leave my terminal and go read print on good old fashioned paper.  There was a time when I would think that traditional magazines were dead, but I have two disparate colleagues who have become publishers of new print magazines and have been very successful at it.  &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Here are a few of which I am aware?  Others?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://hackermonthly.com/&quot; rel=&quot;nofollow&quot;&gt;http://hackermonthly.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.code-magazine.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.code-magazine.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ACM&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.computer.org/portal/web/computer/home&quot; rel=&quot;nofollow&quot;&gt;http://www.computer.org/portal/web/computer/home&lt;/a&gt; ???&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="2274" LastEditorDisplayName="" LastEditDate="2010-10-20T17:12:52.840" LastActivityDate="2010-10-20T17:12:52.840" ClosedDate="2010-10-21T10:44:07.067" Title="Would a programming paper magazine be of value today?" Tags="&lt;magazines&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="13334" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T17:03:59.777" Score="2" ViewCount="" Body="&lt;p&gt;Titles should reflect what people do (developer, engineer, analyst, architect, lead, manager, associate, representative), their field or organizational compartment (software, systems, IT Operations, Sales, Marketing, Claims) and possibly seniority (.ie. Level I, II, Senior, Staff, Sr. Staff, Principal, Tech. Staff).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anything beyond that is complexity for the sake of giggles; unclear organizational goals (or worse, cubicle attention wh*ring.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ever seen the guy in, say, Dice or linkedin whose job title is &quot;entrepreneur visionary, uber-hacker or world changer&quot;? Don't be &lt;strong&gt;&lt;em&gt;THAT&lt;/em&gt;&lt;/strong&gt; guy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason why sometimes job titles are treated as meaningless labels is because people abuse them when they should communicate something useful and measurable about an individual and his experience within a given context.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, if I were to have the chance to choose a title without consequences, I'd chose code monkey, or better yet, software silverback.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-20T17:03:59.777" CommentCount="2" />
  <row Id="13335" PostTypeId="2" ParentId="13333" CreationDate="2010-10-20T17:06:54.957" Score="0" ViewCount="" Body="&lt;p&gt;you mean like &lt;a href=&quot;http://msdn.microsoft.com/en-us/magazine/default.aspx&quot; rel=&quot;nofollow&quot;&gt;MSDN magazine&lt;/a&gt;, or &lt;a href=&quot;http://www.drdobbs.com/&quot; rel=&quot;nofollow&quot;&gt;Dr. Dobbs magazine&lt;/a&gt;?&#xA;there used to be a really nice one--&lt;a href=&quot;http://en.wikipedia.org/wiki/C/C%2B%2B_Users_Journal&quot; rel=&quot;nofollow&quot;&gt;C/C++ Users Journal&lt;/a&gt;, but it died due to lack of subscribers. :-(&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-20T17:06:54.957" CommentCount="4" />
  <row Id="13336" PostTypeId="2" ParentId="13333" CreationDate="2010-10-20T17:07:39.643" Score="3" ViewCount="" Body="&lt;p&gt;Well, of course this is subjective, and depends on the habits of the readers, but as far as I'm concerned, yes. With the few exceptions of heavy manuals where I need a search function, a paper magazine / book / journal, is still THE source of information for me. Laying down on a couch, or on the bench with a laptop near by (&lt;em&gt;wondering whether I've saved anything I've been doing in the past half an hour, and whether the battery is about to go dead any minute now&lt;/em&gt;) reading in peace is still more appealing to me than staring at the monitor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, you're talking at first of paper magazine, then of PDF for subscribers, so I'm not sure if I maybe misunderstood you.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-20T17:07:39.643" />
  <row Id="13337" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T17:09:11.127" Score="1" ViewCount="" Body="&lt;p&gt;Thread Herder.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because it's like herding cats.&lt;/p&gt;&#xA;" OwnerUserId="5044" LastActivityDate="2010-10-20T17:09:11.127" />
  <row Id="13338" PostTypeId="2" ParentId="12369" CreationDate="2010-10-20T17:16:53.383" Score="0" ViewCount="" Body="&lt;p&gt;I don't know about sequence in Oracle db but I try to avoid using identity columns. Usually identity columns are used as surrogate keys and seem working well at beginning but sooner or later when business requires to transfer/export/import data between systems and clients, identity columns are the one that is most troublesome to deal with.&lt;/p&gt;&#xA;" OwnerUserId="844" LastActivityDate="2010-10-20T17:16:53.383" CommentCount="7" />
  <row Id="13339" PostTypeId="2" ParentId="13259" CreationDate="2010-10-20T17:20:06.190" Score="1" ViewCount="" Body="&lt;p&gt;People in a Scrum team get to decide many things by themselves: what will be done during the next sprint, how do we break this story in tasks, who works on what, etc.  This empowers them, and is almost the exact contrary to micro-management.&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-10-20T17:20:06.190" />
  <row Id="13340" PostTypeId="1" AcceptedAnswerId="13395" CreationDate="2010-10-20T17:26:23.217" Score="4" ViewCount="292" Body="&lt;p&gt;I found Power++ and to my suprise it looks like a good alternative for Delphi and Visual Studio. Anyone used it? Can you tell me if it is worth it buying/learning it?&lt;/p&gt;&#xA;" OwnerUserId="5830" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2010-10-21T02:02:09.940" LastActivityDate="2011-05-07T21:14:47.483" Title="Is Power++ worth buying/learning?" Tags="&lt;delphi&gt;" AnswerCount="3" CommentCount="5" />
  <row Id="13341" PostTypeId="1" AcceptedAnswerId="42638" CreationDate="2010-10-20T17:30:39.773" Score="18" ViewCount="335" Body="&lt;p&gt;I have a problem: I suck at tracking time-on-task for specific feature/defects/etc while coding them.  I tend to jump between tasks a fair bit (partly due to the inherit juggling required by professional software development, partly due to my personal tendancy to focus on the code itself and not the business process around code).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal preference is for a hard-copy system.  Even with gabillions of pixels of real-estate on-screen I find it terribly distracting to keep a tracking window convienient; either I forget about it or it gets in my ways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, looking for suggestions on time-tracking.  My only requirement is a simple system to track start/stop times per task.  I've considered going as far as buying a time-clock and giving each ticket a dedicated time-card.  When I start working on it, punch-in; when done working, punch-out.&lt;/p&gt;&#xA;" OwnerUserId="5828" LastEditorUserId="5828" LastEditorDisplayName="" LastEditDate="2010-10-20T20:28:11.513" LastActivityDate="2011-02-02T00:33:13.843" Title="Hard-copy approaches to time tracking" Tags="&lt;time-management&gt;&lt;time-tracking&gt;" AnswerCount="10" CommentCount="2" FavoriteCount="5" />
  <row Id="13342" PostTypeId="1" CreationDate="2010-10-20T17:32:07.063" Score="0" ViewCount="151" Body="&lt;p&gt;I am a new programmer and I have been given a job I am not qualified for and I am trying not to get fired.  Not sure how to take some incoming variables and use javascript or jquery on them to make my content populate and then display in accordion style with headings and paragraph content. The output should look like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;h3&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;CHEAT MOCK UP ONLY&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;div&amp;gt;Variable ID: JHBSv-1269018531662&amp;lt;/br&amp;gt;&#xA;Description: Cheated on math test in High School 1 - Yes 0 - No&amp;lt;/br&amp;gt;Start Value: 0&#xA;&amp;lt;/br&amp;gt;History&amp;lt;div id=history&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The way I am doing it it looks like it doesn't want to &quot;accordionize&quot; I think that it doesn't want to change the structure of the accordion after the accordion script is ran. Is there a work around for this? People have said to use jquery-tmpl. Will this make it work? Also if it helps here is my non working for loop so far:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function loadVariables(variables) {&#xA;   /*Variables&#xA;       *       name:String - plain text name&#xA;       *       variableID:String - unique string identifier for the variable&#xA;       *       description:String - description of the variable and its meaning&#xA;       *       value:Integer - current number-based value of the variable&#xA;       *       locked:Boolean - whether the variable is locked against further modification&#xA;      */&#xA;            if (typeof variables != &quot;object&quot;) { alert(variables); return; }&#xA;        for (var i = 0; i &amp;lt; variables.length - 1; i++) {&#xA;            var h3 = $('&amp;lt;h3&amp;gt;').append($('&amp;lt;a&amp;gt;').attr('href', '#').text(variables[i].name))&#xA;            $('#accordion').append(h3)&#xA;            var div = $('&amp;lt;div&amp;gt;').append($('&amp;lt;div&amp;gt;').html(variables[i].variableID));&#xA;   //not wrk $(parent).append($('&amp;lt;div&amp;gt;').html(variables[i].description));&#xA;            //not wrk $(parent).append($('&amp;lt;div&amp;gt;').html(variables[i].value));&#xA;            div = div.append($('&amp;lt;div&amp;gt;').html());&#xA;            $('#accordion').append(div)&#xA;        }&#xA;        };&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1780" LastActivityDate="2010-10-20T18:45:46.613" ClosedDate="2010-10-20T18:57:20.497" Title="Dynamically created jQuery Accordian?" Tags="&lt;jquery&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="13343" PostTypeId="2" ParentId="7806" CreationDate="2010-10-20T17:33:45.020" Score="1" ViewCount="" Body="&lt;p&gt;I hung this on my neighbors partition because I was tired of having it sit in the box: &lt;a href=&quot;http://veerle-en-geert.be/delphi/ebooks/Delphi%207%20-%20VCLHierarchyPoster.pdf&quot; rel=&quot;nofollow&quot;&gt;Delphi VCL&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-20T17:33:45.020" CommentCount="2" />
  <row Id="13344" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T17:40:44.930" Score="4" ViewCount="" Body="&lt;p&gt;(With background to &lt;a href=&quot;http://www.xkcd.com/722/&quot; rel=&quot;nofollow&quot;&gt;this comic strip&lt;/a&gt;):&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Light Pattern Coordinator&lt;/h3&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-20T17:40:44.930" />
  <row Id="13345" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T17:42:14.960" Score="4" ViewCount="" Body="&lt;p&gt;I always liked Technomancer.&lt;/p&gt;&#xA;" OwnerUserId="5832" LastActivityDate="2010-10-20T17:42:14.960" CommentCount="2" />
  <row Id="13346" PostTypeId="2" ParentId="13341" CreationDate="2010-10-20T17:45:35.770" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.pomodorotechnique.com/&quot; rel=&quot;nofollow&quot;&gt;Pomodoro&lt;/a&gt; might help you out. The gist of it is that you get a timer (can be software, can be a physical timer) and you work on a task for 25 minutes, then take a 5 minute break, and take a longer break after repeating that pattern four times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The system provides ways for you to deal with interruptions and distractions as well, so you can manage those and stay focused. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;While it is mostly a time management system, it is in its pure form paper-based and you could tally up all your pomodoros at the end and arrive at the time spent on a given issue.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-20T17:45:35.770" CommentCount="2" />
  <row Id="13347" PostTypeId="2" ParentId="13279" CreationDate="2010-10-20T17:46:01.073" Score="11" ViewCount="" Body="&lt;p&gt;Well you could always take the code for something moderately complex and print it out and put it in a BIG binder. Haul that out to show them how hard it is, most people will run screaming away, the rest, you can teach to program.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-20T17:46:01.073" CommentCount="1" />
  <row Id="13348" PostTypeId="2" ParentId="13341" CreationDate="2010-10-20T17:46:50.393" Score="6" ViewCount="" Body="&lt;p&gt;This may sound naive, overly simpleton even, but you can buy a chess clock and measure your spend time on two tasks with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Know a few people who do that ... however, they are also chess players, so ... ;-)&lt;br&gt;&#xA;Looks nice on the table however (and most people will stop and ask why do you need two clocks and in what timezone is the second one).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Q8Woa.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-20T17:46:50.393" CommentCount="5" />
  <row Id="13349" PostTypeId="1" AcceptedAnswerId="13353" CreationDate="2010-10-20T17:51:25.600" Score="13" ViewCount="1027" Body="&lt;p&gt;Lots of things are nowadays done in Asia which used to be done in the U.S. or Europe: car manufacturing, making of clothes and shoes, almost all computer components, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And it looks that part of software development is heading the same way. In fact, it is already underway. Where I previously worked as a functional tester for a 150+ developers-project, almost a third of the positions were outsourced to India.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will this process go further and further until all software development is done in Asia?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-10-20T21:58:03.050" LastActivityDate="2011-02-03T14:25:13.877" CommunityOwnedDate="2011-02-03T13:18:28.527" Title="Will software development be completely outsourced to Asia?" Tags="&lt;career&gt;&lt;work&gt;&lt;industry&gt;&lt;outsourcing&gt;" AnswerCount="19" CommentCount="7" FavoriteCount="3" />
  <row Id="13350" PostTypeId="2" ParentId="13349" CreationDate="2010-10-20T17:56:31.983" Score="2" ViewCount="" Body="&lt;p&gt;Although as much as what you're saying is true, most of R&amp;amp;D centers for industry are still located in the USA and Europe. Same goes for the software industry, from what I can tell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, no one can predict what the future brings, but for now I wouldn't be rushing over to buy &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0743550498&quot; rel=&quot;nofollow&quot;&gt;Learning Mandarin Chinese&lt;/a&gt;. For once, a lot of programming text editors still don't support Unicode, therefore making that a big obstacle for the aforementioned :)&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-20T17:56:31.983" CommunityOwnedDate="2011-02-03T13:18:28.527" CommentCount="2" />
  <row Id="13351" PostTypeId="2" ParentId="13349" CreationDate="2010-10-20T18:04:25.673" Score="0" ViewCount="" Body="&lt;p&gt;No I certainly don't think all software development will be outsourced to Asia.  Although there has been a push to outsource alot of development, most things swing like a pendulum.  Like a pendulum things swing to far in one direction then swing back.  I think if you look at many trends over time you'll see the same pendulum pattern.&lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-10-20T18:04:25.673" CommunityOwnedDate="2011-02-03T13:18:28.527" CommentCount="1" />
  <row Id="13352" PostTypeId="2" ParentId="13349" CreationDate="2010-10-20T18:06:22.790" Score="8" ViewCount="" Body="&lt;p&gt;Of course, in 50 years, we might be asking if the Asians are going to start outsourcing all of their work to North America and Europe.&lt;/p&gt;&#xA;" OwnerUserId="4403" LastActivityDate="2010-10-20T18:06:22.790" CommunityOwnedDate="2011-02-03T13:18:28.527" CommentCount="5" />
  <row Id="13353" PostTypeId="2" ParentId="13349" CreationDate="2010-10-20T18:09:11.473" Score="32" ViewCount="" Body="&lt;p&gt;No.  If the pendulum swings too far towards Asia, the Asian programmers will start demanding more money and better working conditions and the Western ones, less.  A new equilibrium will be reached.  The main advantage Asia has is a limitless supply of warm bodies willing to work cheap.  However, unlike for manufacturing, these warm bodies need to be trained if they are to become programmers.  Furthermore, I often feel the need to remind people that a lot of manufacturing is still done in the U.S., just not low-skill labor intensive manufacturing of cheap consumer goods.  I suspect programming will evolve the same way.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-20T18:09:11.473" CommunityOwnedDate="2011-02-03T13:18:28.527" />
  <row Id="13354" PostTypeId="2" ParentId="13341" CreationDate="2010-10-20T18:09:29.290" Score="2" ViewCount="" Body="&lt;p&gt;I keep several cheap &lt;a href=&quot;http://en.wikipedia.org/wiki/Stopwatch&quot; rel=&quot;nofollow&quot;&gt;stopwatches&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Chronograph&quot; rel=&quot;nofollow&quot;&gt;chronographs&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Eggtimer&quot; rel=&quot;nofollow&quot;&gt;eggtimers&lt;/a&gt; handy at my desk. I can always grab one to use for each individual task:&#xA;&lt;img src=&quot;http://i.imgur.com/6I4MH.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-20T18:09:29.290" CommentCount="1" />
  <row Id="13355" PostTypeId="2" ParentId="8090" CreationDate="2010-10-20T18:11:55.447" Score="4" ViewCount="" Body="&lt;p&gt;Software estimates are always difficult.  Software is a creative business, and creativity waxes and wanes.  I'm just starting to bounce back after a week of severe exhaustion--the other night it took me &lt;em&gt;hours&lt;/em&gt; to do a task that should have been 15-30 minutes...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also consider that each developer has different estimating abilities.  More disciplined or senior developers will tend to be more accurate and more junior or undisciplined developers are less accurate.  Also, their accuracy changes over time (not always for the better).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my personal consulting experience I try to blend a realistic estimate with a ceiling.  Basically saying &quot;I expect this feature to take 7-10 hours, but could reach 18--at most, even if it takes 40 hours, you will be billed for 18&quot;.  Usually this type of approach is new to clients and some flat-out reject it with &quot;give me a firm price&quot;--those clients get the ceiling estimate (or I politely decline their business).  For clients that accept this approach, they understand that I'll honestly track time, and their actual final bill will reflect my time-spent (but won't exceed my ceiling).  Essentially this is a lean-approach with a guarantee added; and the customer is aware that any changes to requirements introduces changes to the estimates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall that approach has worked well for clients willing to accept it.  My personal goal is to gain their trust and repeat business, so it's in my interest to be honest and try to come in well under the ceiling--and it's in their interest to be helpful in keeping me under my estimates (by avoiding uncertainty, late changes, etc--I revise estimates if changes are anything beyond minor).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you haven't, I would suggest reading &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Mythical_Man-Month&quot; rel=&quot;nofollow&quot;&gt;The Mythical Man Month&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5828" LastActivityDate="2010-10-20T18:11:55.447" />
  <row Id="13356" PostTypeId="2" ParentId="13282" CreationDate="2010-10-20T18:15:45.997" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.guru.com/pro/index.aspx&quot; rel=&quot;nofollow&quot;&gt;Guru&lt;/a&gt; is another.&lt;/p&gt;&#xA;" OwnerUserId="4478" LastActivityDate="2010-10-20T18:15:45.997" />
  <row Id="13357" PostTypeId="2" ParentId="13341" CreationDate="2010-10-20T18:26:42.010" Score="6" ViewCount="" Body="&lt;p&gt;In addition to a clock, check out the &lt;a href=&quot;http://davidseah.com/2005/11/the-printable-ceo-part-ii-much-to-do-about-task-tracking/&quot; rel=&quot;nofollow&quot;&gt;Task Progress Tracker&lt;/a&gt; (&lt;a href=&quot;http://davidseah.com/2005/11/the-printable-ceo-part-ii-much-to-do-about-task-tracking/&quot; rel=&quot;nofollow&quot;&gt;pdf&lt;/a&gt;) by David Seah.&lt;/p&gt;&#xA;" OwnerUserId="4403" LastActivityDate="2010-10-20T18:26:42.010" CommentCount="6" />
  <row Id="13358" PostTypeId="2" ParentId="13341" CreationDate="2010-10-20T18:28:06.883" Score="0" ViewCount="" Body="&lt;p&gt;Use a white board. Put tasks on their. When you start on one task take it from the column &quot;waiting&quot; to &quot;in progress&quot; column and write down the datetime on it. When you have to switch on another task, put it back to the &quot;waiting&quot; column (write down date/time).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't trust software or virtual systems, they are unreliable ;)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-20T18:28:06.883" />
  <row Id="13359" PostTypeId="2" ParentId="13349" CreationDate="2010-10-20T18:33:22.630" Score="-1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Nobody knows&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;But certainly not tomorrow ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main competition is not offshore, but software development &lt;strong&gt;without&lt;/strong&gt; developers. More we advance in years more it becomes possible to build complete applications without writing a single line of code.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2011-02-03T10:53:55.890" LastActivityDate="2011-02-03T10:53:55.890" CommunityOwnedDate="2011-02-03T13:18:28.527" CommentCount="5" />
  <row Id="13360" PostTypeId="2" ParentId="13282" CreationDate="2010-10-20T18:39:55.097" Score="0" ViewCount="" Body="&lt;p&gt;A couple more:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.freelancer.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.freelancer.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.ifreelance.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.ifreelance.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-20T18:39:55.097" />
  <row Id="13361" PostTypeId="2" ParentId="4765" CreationDate="2010-10-20T18:40:15.560" Score="9" ViewCount="" Body="&lt;p&gt;The final straw was when I was at the hospital with my newborn baby, who was born early and needed to be on oxygen. I was using my own vacation days to be there, I did not get time off for this sort of thing. Then I was getting called and pressured to return back to work early before using up all my vacation days while my child was still in hospital. That was the last of many straws.&lt;/p&gt;&#xA;" OwnerUserId="5835" LastActivityDate="2010-10-20T18:40:15.560" CommentCount="3" />
  <row Id="13362" PostTypeId="2" ParentId="13279" CreationDate="2010-10-20T18:44:29.673" Score="1" ViewCount="" Body="&lt;p&gt;My favorite metaphor for programming is writing knitting recipes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is something that most people can relate to and some of the most computer illiterate have actual experience with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think that anybody would suggest that writing knitting recipes is easy or that Kaffe Fasset just takes a standard sweater and configure it to get results like those shown in &lt;a href=&quot;http://www.kaffefassett.com/Knitting.html&quot; rel=&quot;nofollow&quot;&gt;the slide shows here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-20T18:44:29.673" CommentCount="3" />
  <row Id="13363" PostTypeId="2" ParentId="13342" CreationDate="2010-10-20T18:45:46.613" Score="0" ViewCount="" Body="&lt;p&gt;You will have better luck asking this question on &lt;a href=&quot;http://stackoverflow.com&quot;&gt;stackoverflow&lt;/a&gt;.  &lt;/p&gt;&#xA;" OwnerUserId="5837" LastActivityDate="2010-10-20T18:45:46.613" CommentCount="5" />
  <row Id="13365" PostTypeId="2" ParentId="4765" CreationDate="2010-10-20T19:00:47.177" Score="-1" ViewCount="" Body="&lt;p&gt;When they fire you.&lt;/p&gt;&#xA;" OwnerUserId="3754" LastActivityDate="2010-10-20T19:00:47.177" CommentCount="1" />
  <row Id="13366" PostTypeId="2" ParentId="13279" CreationDate="2010-10-20T19:21:27.740" Score="0" ViewCount="" Body="&lt;p&gt;I know exactly what a programmer does: &#xA;It's someone that writes GUI interfaces using VB to track IP addresses!&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-10-20T19:21:27.740" CommentCount="2" />
  <row Id="13367" PostTypeId="2" ParentId="9409" CreationDate="2010-10-20T19:23:02.423" Score="4" ViewCount="" Body="&lt;p&gt;My worst customer experiences are doing 3rd party B2B integrations.  When a business-customer can't meet their requirements/expectations it almost always results in them slinging as much mud at you as possible.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The sad part is how often it works; I'll be pulled off a project just to cover due-diligence and ensure there isn't an issue on our end.  If they uncover &lt;em&gt;any&lt;/em&gt; crack in your defense then it's back to step-1 (more fact-checking).  Usually by the time the senseless emails, conference calls, and other fallout are at an end they've bought enough time to hack together their end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's worst is that with a non-technical customer in the middle you &lt;em&gt;have&lt;/em&gt; to play along--otherwise it's just their word against yours, leaving you looking uncooperative.  If they find &lt;em&gt;something&lt;/em&gt; you could change to supposedly solve their issues (&quot;can you do a &lt;code&gt;.Trim()&lt;/code&gt; before sending that field?  That trailing space breaks out architechture!!!!&quot;), then it quickly spirals downward--especially if the change could easily be put in their side, but putting it in yours requires a new release/QA cycle, whatever it may be.&lt;/p&gt;&#xA;" OwnerUserId="5828" LastActivityDate="2010-10-20T19:23:02.423" CommentCount="2" />
  <row Id="13368" PostTypeId="2" ParentId="12807" CreationDate="2010-10-20T19:26:05.753" Score="0" ViewCount="" Body="&lt;p&gt;Hopefully, you are using a sensible language, like VB.NET with Option Strict On, which doesn't allow coercion of other types to Boolean inside an If statement. Then there's no need to ever add the &quot;== true&quot; (or &quot;= True&quot; in VB), since the coercion case can't happen.  If you want to check for non-zero then write that explicitly (ie., &quot;If x &amp;lt;&gt; 0&quot;).&lt;/p&gt;&#xA;" OwnerUserId="5415" LastActivityDate="2010-10-20T19:26:05.753" CommunityOwnedDate="2010-10-20T19:26:05.753" />
  <row Id="13369" PostTypeId="2" ParentId="4765" CreationDate="2010-10-20T19:27:47.073" Score="1" ViewCount="" Body="&lt;p&gt;The last full time job I left was because I became 'too valuable' to maintaining our very successful - and award winning, I might add - system that they would not assign me to the task of designing a new system.  At that point I realized they werent interested in rewarding success, and didnt appreciate the notion of domain knowledge, so I jumped ship, leaving an ever more and more depressing corporate environment for a very fun dot-com.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-20T19:27:47.073" CommentCount="1" />
  <row Id="13370" PostTypeId="2" ParentId="13282" CreationDate="2010-10-20T19:44:26.683" Score="3" ViewCount="" Body="&lt;p&gt;you can find a detailed review of the top freelance market places &lt;a href=&quot;http://whichlance.com/review/freelance-market-review-q1-2010-full.pdf&quot; rel=&quot;nofollow&quot;&gt;here :: freelance-market-review-2010&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It covers almost all the major ones including detailed overview of the following ones.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;oDesk&lt;/li&gt;&#xA;&lt;li&gt;Elance&lt;/li&gt;&#xA;&lt;li&gt;Guru&lt;/li&gt;&#xA;&lt;li&gt;Freelancer&lt;/li&gt;&#xA;&lt;li&gt;Rent A Coder&lt;/li&gt;&#xA;&lt;li&gt;People Per Hour&lt;/li&gt;&#xA;&lt;li&gt;Script Lance&lt;/li&gt;&#xA;&lt;li&gt;Lime Exchange&lt;/li&gt;&#xA;&lt;li&gt;Get A Coder&lt;/li&gt;&#xA;&lt;li&gt;ifreelance&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5605" LastEditorUserId="5605" LastEditorDisplayName="" LastEditDate="2010-10-23T05:29:04.417" LastActivityDate="2010-10-23T05:29:04.417" />
  <row Id="13371" PostTypeId="1" AcceptedAnswerId="13405" CreationDate="2010-10-20T19:44:31.470" Score="4" ViewCount="147" Body="&lt;p&gt;We are currently developing a .net app in WPF, that will be a desktop app with a good bit of data-access to local (and some remote) servers. The business logic here is very complex, and currently it is built into the code along with the data access and whatnot (being WPF the UI is seperated pretty nicely). &lt;br&gt;&lt;br&gt; Now I have been tasked with reorganizing this system to make it more maintainable in the longrun as certain logic changes.  I know that workflows are supposed to seperate the logic out pretty nicely and allow you to visualize it a bit.  Is workflow a good choice for an app that does not need to be run over long periods? (since workflows CAN wait in idle for months) What has been your experience with the platform? Is it slow for dealing with a mid-sized company; around 150 simultaneous users?  If you liked it, do you know of any good online tutorials(preferably not MSDN) that can give me a taste for the platform and do some testing before I commit to implementing it on a huge app?&lt;/p&gt;&#xA;" OwnerUserId="3792" LastEditorUserId="1256" LastEditorDisplayName="" LastEditDate="2011-03-26T08:05:07.593" LastActivityDate="2011-03-26T08:05:07.593" Title="Workflow Foundation to seperate data from business logic on a mid-sized App?" Tags="&lt;c#&gt;&lt;.net&gt;&lt;workflows&gt;&lt;workflow-foundation&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="0" />
  <row Id="13372" PostTypeId="2" ParentId="4765" CreationDate="2010-10-20T19:47:06.347" Score="1" ViewCount="" Body="&lt;p&gt;At one job, I had a recurring dream that my model soldiers were going to show up and rescue me, despite their size and the fact that they were lifeless metal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At another job, I got into trouble for following standard promotion procedure from development to test to production, as somebody else had, with management approval, hacked the production system directly without making sure to keep a backup.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both were good signs that I needed to get out of there.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-20T19:47:06.347" />
  <row Id="13373" PostTypeId="2" ParentId="13349" CreationDate="2010-10-20T20:01:45.547" Score="4" ViewCount="" Body="&lt;p&gt;To address this question, we can divide programming jobs into two types. Jobs of one type involve developing software to be sold for general use by many customers. The other type involves developing highly customized software for use by the company the programmer works for. The second type of job is not as well suited for outsourcing because knowledge of the business the software is being customized for is as essential to the job as programming skill (if not more so). Employers at the second type of job also generally prefer to have their programmers in the office where they can be called into meetings and there aren't time zone differences to deal with. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Jobs of the first type are subject to the market forces described in the other answers given. There have been and will be attempts to outsource jobs of the second type, with mixed results. My opinion is that the majority of jobs of the second type will remain in-house, or done by local contractors. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-10-20T20:01:45.547" CommunityOwnedDate="2011-02-03T13:18:28.527" />
  <row Id="13374" PostTypeId="2" ParentId="13195" CreationDate="2010-10-20T20:02:35.650" Score="0" ViewCount="" Body="&lt;p&gt;I am asking myself the same question, I found Power++ and it seems promising to me because of all the Grid Computing and SaaS being the future and all, but you can check it out for yourself, they give the Community Edition for free. Check out &lt;a href=&quot;http://gridplusplus.com&quot; rel=&quot;nofollow&quot;&gt;http://gridplusplus.com&lt;/a&gt;, to be honest I just found it today and I don't know much about it but after fundling around with the samples it impresses me more.&lt;/p&gt;&#xA;" OwnerUserId="5830" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-10-20T22:06:03.247" LastActivityDate="2010-10-20T22:06:03.247" CommentCount="2" />
  <row Id="13375" PostTypeId="2" ParentId="13091" CreationDate="2010-10-20T20:07:17.157" Score="1" ViewCount="" Body="&lt;p&gt;The second form is more readable, especially if you are using {} blocks around each clause, because the first form will lead to nested {} blocks and multiple levels of indentation, which can be a pain to read (you have to count indentation spaces to figure out where each block ends).&lt;/p&gt;&#xA;" OwnerUserId="5415" LastActivityDate="2010-10-20T20:07:17.157" />
  <row Id="13376" PostTypeId="1" CreationDate="2010-10-20T20:09:12.333" Score="5" ViewCount="190" Body="&lt;p&gt;When there is too much work for one scrum team to manage, multiple teams are created. A scrum team has a stand up meeting everyday. How often should the intra-scrum team meeting occur and who should attend? What should they talk about?&lt;/p&gt;&#xA;" OwnerUserId="5842" LastActivityDate="2010-10-21T20:00:16.030" Title="When there are multiple scrum teams, how often should the 'scrum of scrums' meet and who should attend?" Tags="&lt;scrum&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="13377" PostTypeId="2" ParentId="13034" CreationDate="2010-10-20T20:10:18.303" Score="0" ViewCount="" Body="&lt;p&gt;One Sarbanes-Oxley control I'm familliar with is the requirement where no developer is permitted to deploy into production... only a System Administrator may deploy binaries.&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-10-20T20:10:18.303" />
  <row Id="13378" PostTypeId="2" ParentId="13349" CreationDate="2010-10-20T20:17:30.720" Score="16" ViewCount="" Body="&lt;p&gt;The key element here is communication.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can come up with clear and unambiguous requirements for software, you can get it done by people anywhere in the world, although it's harder to manage than a more local project would be.  You also have to remember that workplace culture and expectations vary from place to place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If, as is the norm, you don't really know what you want, or are unwilling to spec it out that precisely, you need frequent communication with your developers, and that isn't helped by having time zone and language differences.  This, of course, doesn't stop some businesses from outsourcing with inadequate communications because the people are cheaper over there, but some businesses will always be doing dumb things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means that, for competent businesses, offshore development will always live in that zone between what a code generator can do and what requires analysis.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-20T20:17:30.720" CommunityOwnedDate="2011-02-03T13:18:28.527" CommentCount="1" />
  <row Id="13379" PostTypeId="2" ParentId="13349" CreationDate="2010-10-20T20:23:30.377" Score="1" ViewCount="" Body="&lt;p&gt;There is still a tremendous demand for engineers to be in house.  You can work with the clients better and get better product.  Rands described it best when he said if your job involves following a script (think customer service) then it can be done by any monkey.  If you job involved thinking and creating then you are a valuable commodity.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That won't stop companies from trying overseas projects, but in general these tend to be lower quality results.  Unless the quality is better then it will hit a certain point and not grow any further.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-10-20T20:23:30.377" CommunityOwnedDate="2011-02-03T13:18:28.527" />
  <row Id="13380" PostTypeId="2" ParentId="1920" CreationDate="2010-10-20T20:24:30.157" Score="3" ViewCount="" Body="&lt;p&gt;Here are some common choices:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.vim.org/&quot; rel=&quot;nofollow&quot;&gt;Vim&lt;/a&gt; or &lt;a href=&quot;http://www.gnu.org/software/emacs/&quot; rel=&quot;nofollow&quot;&gt;Emacs&lt;/a&gt; for command&#xA;line editor.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.eclipse.org/&quot; rel=&quot;nofollow&quot;&gt;Eclipse&lt;/a&gt; or &lt;a href=&quot;http://www.netbeans.org&quot; rel=&quot;nofollow&quot;&gt;Netbeans&lt;/a&gt; as graphical IDE for C/C++, Java, Python, Ruby and more...&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Bash_%28Unix_shell%29&quot; rel=&quot;nofollow&quot;&gt;Bash&lt;/a&gt; or &lt;a href=&quot;http://en.wikipedia.org/wiki/Zsh&quot; rel=&quot;nofollow&quot;&gt;Zsh&lt;/a&gt; for interactive shell and shell scripting.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.python.org/&quot; rel=&quot;nofollow&quot;&gt;Python&lt;/a&gt; or &lt;a href=&quot;http://www.ruby-lang.org/en/&quot; rel=&quot;nofollow&quot;&gt;Ruby&lt;/a&gt; as&#xA;high-level, object-oriented scripting&#xA;languages.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://getfirebug.com/&quot; rel=&quot;nofollow&quot;&gt;Firebug&lt;/a&gt; with &lt;a href=&quot;http://en.wikipedia.org/wiki/Mozilla_Firefox&quot; rel=&quot;nofollow&quot;&gt;Firefox&lt;/a&gt; for&#xA;web development.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://git-scm.com/&quot; rel=&quot;nofollow&quot;&gt;Git&lt;/a&gt; or &lt;a href=&quot;http://subversion.tigris.org/&quot; rel=&quot;nofollow&quot;&gt;SVN&lt;/a&gt; for version&#xA;control.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://kdiff3.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Kdiff3&lt;/a&gt; or &lt;a href=&quot;http://meld.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Meld&lt;/a&gt; for&#xA;inspecting differences and merging&#xA;files&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5567" LastEditorUserId="5567" LastEditorDisplayName="" LastEditDate="2010-10-21T06:30:47.790" LastActivityDate="2010-10-21T06:30:47.790" />
  <row Id="13381" PostTypeId="1" CreationDate="2010-10-20T20:40:04.627" Score="7" ViewCount="182" Body="&lt;p&gt;Coming from a scrum environment with no integrated testing support and an independent minded QA staff, how is a tester (QA person) best integrated with a scrum team? What should they do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For reference some test functions are:&#xA;&lt;li&gt;Unit Testing&lt;/li&gt;&#xA;&lt;li&gt;Integration Testing&lt;/li&gt;&#xA;&lt;li&gt;Functional Testing&lt;/li&gt;&#xA;&lt;li&gt;Performance Testing&lt;/li&gt;&#xA;&lt;li&gt;Acceptance Testing&lt;/li&gt;&lt;/p&gt;&#xA;" OwnerUserId="5842" LastActivityDate="2010-10-20T21:02:24.963" Title="What should a tester (Quality Assurance) person do on a scrum team?" Tags="&lt;testing&gt;&lt;scrum&gt;" AnswerCount="2" FavoriteCount="2" />
  <row Id="13382" PostTypeId="2" ParentId="13376" CreationDate="2010-10-20T20:41:00.320" Score="2" ViewCount="" Body="&lt;p&gt;Initially, I would plan to have a &quot;Scrum of Scrums&quot; once a week, preferably on a similar schedule to your planning sessions and retrospectives.  As far as who should be in attendance, I would advise you to have each team elect a member that will participate and speak on behalf of the team, but leave the door open for any team member to attend should they want to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The beauty of Scrum and Agile methods as a whole is that there is no single magic recipe.  The advice that I gave about the schedule and attendees should be fluid and easily modified.  The best kind of agile, at least in my experience, is organic agile.  It's difficult to be truly agile when you're dogmatic about your processes. ;)&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-10-20T20:41:00.320" />
  <row Id="13383" PostTypeId="1" AcceptedAnswerId="13511" CreationDate="2010-10-20T20:41:16.607" Score="3" ViewCount="541" Body="&lt;p&gt;Are there any good extensions for Visual Studio that build on Intellisense and assist with code-completion? I've heard that refactor is awesome, but does anyone have any experience with any others? VS 2010 intellisense is actually pretty good, but when I code in Java I use eclipse, which has a few nice goodies that I would like to be able to use coding in C# to increase productivity.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastEditorUserId="40" LastEditorDisplayName="" LastEditDate="2010-10-20T21:00:20.243" LastActivityDate="2010-10-21T13:48:54.307" Title="Good intellisense extension for Visual Studio?" Tags="&lt;recommendations&gt;&lt;ide&gt;&lt;visual-studio-2010&gt;&lt;plugins&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="1" />
  <row Id="13384" PostTypeId="1" CreationDate="2010-10-20T20:44:46.877" Score="7" ViewCount="117" Body="&lt;p&gt;Change is not uncommon, change in requirements, change in specs change in workflow. I've accepted that there will be change, but I wonder: knowing that change is going to happen, how short of a planning period is too short? (Justifications are encouraged)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;An iteration (2-4 weeks)?&lt;/li&gt;&#xA;&lt;li&gt;A week?&lt;/li&gt;&#xA;&lt;li&gt;A 2-3 day period?&lt;/li&gt;&#xA;&lt;li&gt;A day?&lt;/li&gt;&#xA;&lt;li&gt;1/2 a day?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Assume that the company 'plans' 1 [time interval (from above)] in advance from the current so that any plan sounds like:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;[this morning/today/this week/etc.] you'll work on &lt;em&gt;this&lt;/em&gt; and [this afternoon/tomorrow/next week/etc.] you'll be working on &lt;em&gt;that&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also assume that the changes in focus/direction will consistently occur every second to third time interval.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-31T21:19:26.913" Title="Considering consistent change, how short of a planning period is too short?" Tags="&lt;project-management&gt;&lt;time-management&gt;&lt;estimation&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="13385" PostTypeId="2" ParentId="4765" CreationDate="2010-10-20T20:44:59.437" Score="2" ViewCount="" Body="&lt;p&gt;I have a mathematical formula that I apply in my head on about a monthly basis.  I call it the &lt;b&gt;pay-to-crap ratio&lt;/b&gt;  It works thusly: does the amount of pay I receive seem to offset the amount of crap I have deal with, crap being defined as the things outside of my core job responsibilities of software architecture and development (i.e. corporate mandates, re-organizations, bungee bosses, seagull management, budget reductions, benefits changes, etc.).  If I feel that the crap quantity is overpowering my pay quantity, I'll talk to my boss about increasing my pay and/or reducing the crap.  If neither of those are possible: sayonara, job.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-10-20T20:44:59.437" CommentCount="1" />
  <row Id="13386" PostTypeId="2" ParentId="1920" CreationDate="2010-10-20T20:48:47.557" Score="3" ViewCount="" Body="&lt;p&gt;I'd say &lt;a href=&quot;http://www.gnu.org/software/gdb/&quot; rel=&quot;nofollow&quot;&gt;gdb&lt;/a&gt; is a must if you're developing with a supported language&lt;/p&gt;&#xA;&#xA;&lt;p&gt;here is an example of a &lt;a href=&quot;http://heather.cs.ucdavis.edu/~matloff/UnixAndC/CLanguage/Debug.html&quot; rel=&quot;nofollow&quot;&gt;good gdb tutorial&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5846" LastActivityDate="2010-10-20T20:48:47.557" />
  <row Id="13387" PostTypeId="2" ParentId="13381" CreationDate="2010-10-20T20:53:06.297" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;ScrumMaster&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because the team must have people with cross-funcional skills.&lt;/p&gt;&#xA;" OwnerUserId="3082" LastActivityDate="2010-10-20T20:53:06.297" CommentCount="1" />
  <row Id="13388" PostTypeId="2" ParentId="13383" CreationDate="2010-10-20T21:01:12.440" Score="8" ViewCount="" Body="&lt;p&gt;Give Resharper a go, you can download a free 30 day trial from &lt;a href=&quot;http://www.jetbrains.com/resharper/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;. It has loads of refactoring and other tools to increase your productivity:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Continuous code quality analysis in&#xA;C#, XAML, XML, ASP.NET, and ASP.NET&#xA;MVC.&lt;/li&gt;&#xA;&lt;li&gt;Instant fixes to eliminate errors and&#xA;code smells.&lt;/li&gt;&#xA;&lt;li&gt;40 solution-wide refactorings to&#xA;safely change your code base, and&#xA;200+ code editing helpers.&lt;/li&gt;&#xA;&lt;li&gt;Extended web development support with&#xA;code inspections, code generation,&#xA;navigation, and extended&#xA;IntelliSense.&lt;/li&gt;&#xA;&lt;li&gt;Navigation features to let you&#xA;instantly traverse your whole&#xA;solution.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Once you have tried it you will wonder how you managed without it.&lt;/p&gt;&#xA;" OwnerUserId="1116" LastEditorUserId="1116" LastEditorDisplayName="" LastEditDate="2010-10-20T21:09:23.747" LastActivityDate="2010-10-20T21:09:23.747" CommentCount="5" />
  <row Id="13389" PostTypeId="2" ParentId="13381" CreationDate="2010-10-20T21:02:24.963" Score="1" ViewCount="" Body="&lt;p&gt;If they're in the code--have them do standard code-reviews before a task is completed.  Their review can encompass a review of the functionality as well as a code-guideline review (if they have enough experience as a developer or in code to get by).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, when someone reports a &quot;done&quot; then it becomes a QA todo.  It's actually a very good idea to integrate this quick-QA approach, provided they can keep up--it's always best to catch issues sooner rather than later, so even if it's not comprehensive it can have the effect of accelerating the formal/full QA cycle.&lt;/p&gt;&#xA;" OwnerUserId="5828" LastActivityDate="2010-10-20T21:02:24.963" />
  <row Id="13390" PostTypeId="2" ParentId="13383" CreationDate="2010-10-20T21:05:19.640" Score="3" ViewCount="" Body="&lt;p&gt;CodeRush is an option, and roughly on-par with Resharper.  We use Resharper, but if we were to reconsider we would definately evaluate both side-by-side.&lt;/p&gt;&#xA;" OwnerUserId="5828" LastActivityDate="2010-10-20T21:05:19.640" />
  <row Id="13391" PostTypeId="1" CreationDate="2010-10-20T21:07:52.480" Score="9" ViewCount="234" Body="&lt;p&gt;Say you have 5 customers, you develop 2 or 3 different projects for each. Each project has X&lt;sub&gt;i&lt;/sub&gt; tasks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each project takes from 2 to 10 man weeks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given that there are few resources, it is desired to minimize the management overhead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two questions in this scenario:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What tools would you use to prioritize the tasks and track their completion, while tending to minimize the overhead? &lt;/li&gt;&#xA;&lt;li&gt;What criteria would you take into consideration to determine which task to assign to the next available resource given that the primary objective is to increase throughput (more projects finished per time unit, this objective conflicts with starting one project and finishing it and then moving on to the next)?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Ideas, management techniques, algorithms are welcome&lt;/p&gt;&#xA;" OwnerUserId="2018" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-21T12:30:05.493" LastActivityDate="2011-02-13T21:56:00.027" Title="How to prioritize tasks when you have multiple programming projects running in parallel?" Tags="&lt;development-process&gt;&lt;project-management&gt;" AnswerCount="4" FavoriteCount="3" />
  <row Id="13392" PostTypeId="2" ParentId="13383" CreationDate="2010-10-20T21:08:02.173" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.wholetomato.com/&quot; rel=&quot;nofollow&quot;&gt;Visual Assist X&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5027" LastActivityDate="2010-10-20T21:08:02.173" />
  <row Id="13393" PostTypeId="2" ParentId="13391" CreationDate="2010-10-20T21:35:06.290" Score="7" ViewCount="" Body="&lt;p&gt;Sounds like the company has taken on more work than it can handle and it's trying to dig itself out of a hole.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Give your salespeople a vacation, pick the projects that have the higest profit ratios, finish them and postpone the rest until they can be worked on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or get more people to work on the projects that you can't handle (it's not a mythical man-month scenario if there is &lt;em&gt;no-one&lt;/em&gt; to work on them).&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-20T21:35:06.290" CommentCount="1" />
  <row Id="13394" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T21:39:07.123" Score="2" ViewCount="" Body="&lt;p&gt;I just scraped the first one thousand job titles off a popular IT job site and analyzed them. Here are the results...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Titles for Graphic Designers:&lt;/b&gt;&#xA;&lt;br&gt;User Experience Designer&#xA;&lt;br&gt;Digital Graphics Designer&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Titles for Project Managers:&lt;/b&gt;&#xA;&lt;br&gt;Project Coordinator&#xA;&lt;br&gt;Project Analyst&#xA;&lt;br&gt;IS Sr Project Manager - &lt;a href=&quot;http://en.wikipedia.org/wiki/Project_Management_Professional&quot; rel=&quot;nofollow&quot;&gt;PMP&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Statistics:&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Main Job Function:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;Administrator 4.0%&#xA;Analyst      29.0%&#xA;Architect     2.1%&#xA;DBA           0.7%   &#xA;Developer    12.9%&#xA;Engineer     13.8%&#xA;Operator      1.9%&#xA;Programmer    4.1%&#xA;Project Mgr   2.8%&#xA;Specialist    3.9%&#xA;Technician    8.2%&#xA;Tester        1.2%&#xA;Trainer       0.2%&#xA;Writer        0.9%&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Seniority:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;Director      1.4%&#xA;Coordinator   1.1%&#xA;Junior        0.4%&#xA;Lead          1.8%&#xA;Manager      18.9%&#xA;Mid Level     0.9%&#xA;Principle     0.9%&#xA;Roman Numerals&#xA; I/II/III/IV  4.0%&#xA;Level&#xA; 1/2/...      1.5%&#xA;Senior/Sr.   11.8%&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Scope:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;Global         0.1%&#xA;Regional       5.6%&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Specific tools mentioned in title:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;.NET           17.9%&#xA;Java            1.9%&#xA;SQL             1.2%&#xA;Flash           0.2%&#xA;Etc.&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Credentials:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;Certified       1.0%&#xA;Licensed        0.3%&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Miscellaneous Adjectives:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;Application    23.6%&#xA;Business        6.3%&#xA;Consultant      3.3%&#xA;Contractor      0.6%&#xA;Desktop         1.2%&#xA;E-Commerce      0.8%&#xA;Financial       1.4%&#xA;Healthcare      0.8%&#xA;Help            1.2%&#xA;Internet        0.4%&#xA;IT/Information/&#xA; Informatics   11.7%&#xA;Network         3.2%&#xA;Office          0.3%&#xA;PC              0.3%&#xA;QA              1.2%&#xA;Security        1.7%&#xA;Service         2.1%&#xA;Support         8.0%&#xA;Solutions       0.8%&#xA;Systems         9.3%&#xA;UI/Front-end    0.6%&#xA;Web             3.5%&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Examples of using lots of adjectives:&lt;/b&gt;&#xA;&lt;br&gt;Business Solutions Technical Consultant&#xA;&lt;br&gt;Business Office Systems Specialist&lt;/p&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-20T21:39:07.123" />
  <row Id="13395" PostTypeId="2" ParentId="13340" CreationDate="2010-10-20T21:41:47.087" Score="2" ViewCount="" Body="&lt;p&gt;I am going to answer my own question. After playing with Power++ for about 5 hours I am convinced to learn it and maybe even go for the Professional edition. It is a Grid Computing Platform and the samples provided and the contents of their Community Grid -&gt; &lt;a href=&quot;http://gridplusplus.net&quot; rel=&quot;nofollow&quot;&gt;http://gridplusplus.net&lt;/a&gt; has convinced me that there are already many developers learning and creating grid solutions. It looks like Delphi and the fxl even is very similar to delphi vcl and you can use 4 dialects to create solutions. You can import ActiveX, .NET, they are few examples of using dlls and bpls, and importing delphi and .net projects, overall the IDE has a few flaws but I can live with it. I am convinced that Power++ can be a great use for me. Thus my answer is: Although it is a very new product -&gt; Yes it is worth learning and maybe buying it.&lt;/p&gt;&#xA;" OwnerUserId="5830" LastActivityDate="2010-10-20T21:41:47.087" CommentCount="3" />
  <row Id="13396" PostTypeId="1" CreationDate="2010-10-20T21:52:23.940" Score="19" ViewCount="669" Body="&lt;p&gt;Help! I'm drowning in user emails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I’d like to implement a better way to manage all these requests I get and put them in a “queue” where those people on a team as well as users have access to them and can make common notes.  I’m thinking about some sort of task management tool that would allow multiple “tasks” to be created under a project where emails, comments, ideas, etc. could be dropped/entered and easily accessible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would anyone have advice?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe let me pose the question this way.&#xA;If you have your dream tool to manage user requests, what would it look like (this may be TOO subjective for this site)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found list of &lt;a href=&quot;http://www.opensourcescrum.com/&quot; rel=&quot;nofollow&quot;&gt;scrum agile sofware project management open source tools&lt;/a&gt;. Since I am limited on time, has anyone used these? Which one should I test to see if it will meet my needs?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think I am starting to look in more of a Agile/Scrum direction for solving this problem.  Any advice?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am needing something that all parties can be involved in - Users, Managers, Team Leads, Developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking for a tool that can allow:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Users to just drag/drop an email to submit a request for maintenance or enhancement. &lt;/li&gt;&#xA;&lt;li&gt;Developers to just see their queue and the weighted priority of each task/project. &lt;/li&gt;&#xA;&lt;li&gt;A team of developers to see what everyone is working on in real-time. &lt;/li&gt;&#xA;&lt;li&gt;Management to keep a a log of time spent on each task.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.telerik.com/team-productivity-tools/products/teampulse.aspx&quot; rel=&quot;nofollow&quot;&gt;TeamPulse&lt;/a&gt; is a good direction, but think it is a little too bloated. I need something simple for all parties.&lt;/p&gt;&#xA;" OwnerUserId="5400" LastEditorUserId="5400" LastEditorDisplayName="" LastEditDate="2010-10-27T19:38:42.760" LastActivityDate="2010-11-02T11:23:36.497" Title="What tools do you use to manage requests from users?" Tags="&lt;project-management&gt;&lt;agile&gt;&lt;scrum&gt;&lt;bug-tracking&gt;" AnswerCount="13" CommentCount="1" FavoriteCount="9" />
  <row Id="13397" PostTypeId="1" CreationDate="2010-10-20T21:55:21.937" Score="5" ViewCount="73" Body="&lt;p&gt;Tell me if this sounds familiar: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;something something something... as seen in figure 1-1 on the next page...&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's in practically every book I've ever read about programming. So when I was writing a small instructional booklet on how to use some in-house software, which had images of the screen that the user will be on at this certain step I wrote something like &quot;The screen that pops up looks like the one shown in figure 1-1 below.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I'm thinking: I'm used to that style of writing, but if my target audience is the 'average person' are they going to be confused?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, more generally, are there any common practices in technical books that should be avoided when writing documentation for average people?&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-21T02:28:12.380" Title="Is it unreasonable to write user documentation in the style of a technical book?" Tags="&lt;documentation&gt;&lt;writing&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="1" />
  <row Id="13398" PostTypeId="2" ParentId="13396" CreationDate="2010-10-20T22:01:23.327" Score="8" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.fogcreek.com/fogbugz&quot; rel=&quot;nofollow&quot;&gt;FogBugz&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Honestly one of the best systems I've used. Plus you can have email addresses per-client which will automatically create a new task.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-10-21T02:32:07.950" LastActivityDate="2010-10-21T02:32:07.950" CommentCount="5" />
  <row Id="13399" PostTypeId="2" ParentId="7747" CreationDate="2010-10-20T22:03:56.837" Score="2" ViewCount="" Body="&lt;p&gt;I am currently using BASIC to teach my son to write his own simple games. I never used it, I started my carrier with PowerBuilder and PowerScript and jumped over to C/C++ and then Delphi. Today, I use almost all languages available and I adapt very fast because the ground of all languages are the same, mathematical formulas with different signs, operators and symbols. That's also what I am teaching my son and because of that he can already read and explain C++ code. My son is 12 btw.&lt;/p&gt;&#xA;" OwnerUserId="5830" LastActivityDate="2010-10-20T22:03:56.837" CommunityOwnedDate="2011-01-20T21:00:13.020" />
  <row Id="13400" PostTypeId="2" ParentId="13397" CreationDate="2010-10-20T22:04:07.890" Score="2" ViewCount="" Body="&lt;p&gt;There are a lot of books describing styles and giving advices on technical writing, but when publishing a book, I think it is a publisher's decision, as to how many pictures it will have (images affect publishing costs), and that can also somewhat influence your style of writing (whether you will reference Figure 1-1 several times, or whether it will always appear below the text, as in a tutorial).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, books dealing with courses of CAD tools often choose, for clarity and ease of use the second approach (because user doesn't want to flip pages all the time, but to follow the process of generating a design, for example).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming books, from what I've seen more often follow the first example. Since images usually serve only as an aid to the text, the user will get most of its information from the text itself. Therefore, referencing a figure several times is acceptable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Hope this makes some sense ...&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-20T22:04:07.890" CommentCount="2" />
  <row Id="13401" PostTypeId="1" CreationDate="2010-10-20T22:17:44.690" Score="14" ViewCount="391" Body="&lt;p&gt;I want to start working on documenting my projects better. What are some open source projects out there that have really excellent documentation I could look to for an example of how best to approach it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One project per answer please.&lt;/p&gt;&#xA;" OwnerUserId="190" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2010-10-21T02:08:04.107" LastActivityDate="2011-02-14T11:20:16.623" Title="Good documentation examples" Tags="&lt;documentation&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="4" />
  <row Id="13402" PostTypeId="2" ParentId="13396" CreationDate="2010-10-20T22:20:12.613" Score="1" ViewCount="" Body="&lt;p&gt;&lt;H2&gt;Sharepoint&lt;/H2&gt;&#xA;is good for tracking issues and tasks.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastEditorUserId="1842" LastEditorDisplayName="" LastEditDate="2010-11-01T20:02:59.423" LastActivityDate="2010-11-01T20:02:59.423" CommentCount="4" />
  <row Id="13403" PostTypeId="2" ParentId="13383" CreationDate="2010-10-20T22:26:54.313" Score="0" ViewCount="" Body="&lt;p&gt;If you're relatively new to VS.NET, there might be some in-built code completion features you don't know about (I only discovered them relatively recently). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Firstly, code snippets for boilerplate code blocks. eg &lt;code&gt;prop tab-tab&lt;/code&gt; creates a property, &lt;code&gt;ctor tab-tab&lt;/code&gt; a constructor etc. Ctrl-K Ctrl-X in VS will show you the available snippets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, Ctrl-. is awesome for adding usings/implementing interfaces/creating methods.&lt;/p&gt;&#xA;" OwnerUserId="5668" LastActivityDate="2010-10-20T22:26:54.313" />
  <row Id="13404" PostTypeId="2" ParentId="13228" CreationDate="2010-10-20T22:32:28.983" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Chief Orthoalgorithmancer&lt;/strong&gt; (or &lt;strong&gt;Chief Orthoalgorithmatist&lt;/strong&gt;) are ones I've wanted for myself.  Ortho meaning &quot;correct&quot; and algorithmancer meaning &quot;someone who conjures up algorithms&quot; (algorithmatist referencing the movie &lt;a href=&quot;http://www.imdb.com/title/tt0449639/&quot; rel=&quot;nofollow&quot;&gt;The Rhythmatist&lt;/a&gt;, meaning &quot;one who seeks out the roots of an algorithm&quot;).&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-10-20T22:32:28.983" />
  <row Id="13405" PostTypeId="2" ParentId="13371" CreationDate="2010-10-20T22:35:42.980" Score="3" ViewCount="" Body="&lt;p&gt;I have a small amount of experience with WF - creating custom TFS workflows and activities. I found it generally painful and slow to work with - opening a workflow takes a long time (on a WEI 5.9 machine), it often hangs VS.NET, is missing some core features and is marginally buggy. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have anything more than a simple workflow you soon run out of screen real estate. I have a 24&quot; in portrait orientation (1200x1920) and often found myself wanting more vertical room.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall I found it pretty frustrating and wouldn't recommend it. It didn't seem to allow me to do anything that I couldn't have done more easily in code.&lt;/p&gt;&#xA;" OwnerUserId="5668" LastActivityDate="2010-10-20T22:35:42.980" CommentCount="2" />
  <row Id="13406" PostTypeId="2" ParentId="13383" CreationDate="2010-10-20T22:39:34.083" Score="1" ViewCount="" Body="&lt;p&gt;If you do any XAML, I strongly recommend Karl Shifflet's XAML &lt;a href=&quot;http://karlshifflett.wordpress.com/2010/03/21/visual-studio-2010-xaml-editor-intellisense-presenter-extension/&quot; rel=&quot;nofollow&quot;&gt;Editor IntelliSense Presenter Extension&lt;/a&gt;, which adds Filtering, Pascal case lookup, narrowing filter, etc.&lt;/p&gt;&#xA;" OwnerUserId="146" LastActivityDate="2010-10-20T22:39:34.083" />
  <row Id="13407" PostTypeId="2" ParentId="13311" CreationDate="2010-10-20T22:41:27.880" Score="1" ViewCount="" Body="&lt;p&gt;For every day of next week, buy a trashy newspaper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read the paper whenever your PC goes slow for a period of time, in very clear view of the manager who didn't follow up your upgrade request.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When asked why you're reading the paper, explain that you're waiting for your PC to catch up because its' underpowered, that you've previously raised the issue and are still waiting on a response.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-20T22:41:27.880" CommentCount="1" />
  <row Id="13408" PostTypeId="2" ParentId="13349" CreationDate="2010-10-20T23:02:52.720" Score="0" ViewCount="" Body="&lt;p&gt;The future of programming is not being tied to a desk, building, city, country. The world is online now with amazing communication facilities and tools. Projects being managed and monitored online, businesses extend their solutions to Cloud/Grid/SaaS etc. So I think outsourcing will die out because you will hire programmers with the skills you need from all over the world. I think thats good, more brains that come from different cultures gives you a global view of things.&lt;/p&gt;&#xA;" OwnerUserId="5830" LastActivityDate="2010-10-20T23:02:52.720" CommunityOwnedDate="2011-02-03T13:18:28.527" />
  <row Id="13410" PostTypeId="2" ParentId="13279" CreationDate="2010-10-20T23:22:59.213" Score="1" ViewCount="" Body="&lt;p&gt;IMOH: &lt;strong&gt;Programming/configuring a VCR is actually an analogy for 'what does programmers mean by programming'.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When one configures a VCR, after configuring it the VCR works in a 'certain' way. That's kind of solving a problem. When we program for computer, we also want the program to work in a 'certain' way -- that's also problem solving.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;VCR/Cell Phone/Computers are all state machines. A computer program is executed as state machine. A VCR has very few states, like play, pause, forwarding, reversing, stopped, displaying elapsed/remaining time, ejected etc. Any normal person can learn this things quickly. In contrast, a computer program may have billions or trillions of states. It is not possible for non-programmers to understand all these states because most of the states are &lt;em&gt;invisible&lt;/em&gt; to him/her. That's where the confusion comes. When a non-programmer works in a word processor, at the basic level for him it is just like &quot;tap here - go there&quot; thing. S/he cannot imagine what is happening under the hood.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whenever someone asks me what is programming, I try to find out such simple things and describe to the person. For example, functionality of a digital clock. I tell them, what the 'computer' inside the clock doing after every second. What the computer does when a button is pressed etc.&lt;/p&gt;&#xA;" OwnerUserId="5176" LastActivityDate="2010-10-20T23:22:59.213" />
  <row Id="13411" PostTypeId="1" AcceptedAnswerId="13417" CreationDate="2010-10-20T23:23:43.663" Score="1" ViewCount="302" Body="&lt;p&gt;There are a lot of things that people don't know about programming that can save time or are just generally nice to know. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some things about programming that apply to multiple languages (And not just dialects of one language) that aren't &quot;common&quot; knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, you can use thiS:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for ($i = 0; $i &amp;lt;= 10; print $i++ . &quot;\n&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;instead of this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for ($i = 0; $i &amp;lt;= 10; $i++) {&#xA;    print &quot;$i\n&quot;;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It's a PHP example but applicable to most programming languages&lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-10-21T05:03:20.033" ClosedDate="2010-10-21T10:47:19.180" Title="Things you probably didn't know about programming" Tags="&lt;programming&gt;&lt;knowledge&gt;" AnswerCount="4" CommentCount="7" FavoriteCount="1" />
  <row Id="13412" PostTypeId="2" ParentId="11077" CreationDate="2010-10-20T23:27:48.947" Score="3" ViewCount="" Body="&lt;p&gt;I heard one guy call them &quot;sexy braces.&quot;&lt;/p&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2010-10-20T23:27:48.947" CommentCount="1" />
  <row Id="13413" PostTypeId="2" ParentId="13411" CreationDate="2010-10-20T23:28:53.937" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Simple Lazy Loading&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;C#&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public object Obj&#xA;{&#xA;    get { return _obj = _obj ?? new object(); }&#xA;}&#xA;private object _obj;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;ECMAScript&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var obj;&#xA;function getObj() {&#xA;    return obj = obj || new Object();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-10-20T23:28:53.937" CommentCount="3" />
  <row Id="13414" PostTypeId="2" ParentId="13279" CreationDate="2010-10-20T23:32:31.513" Score="1" ViewCount="" Body="&lt;p&gt;To reiterate an &lt;a href=&quot;http://programmers.stackexchange.com/questions/2410/whats-a-good-programming-metaphor/10986#10986&quot;&gt;answer I've given before&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is like building a factory or an assembly line.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/3fZxY.png&quot; alt=&quot;Working Software&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To explain the complexity of useful programs, you could use the example of the scene in Toy Store 2 where the toys go to the airport in pursuit of Woody and the other round-up gang toys and are conveyed into the baggage processing area. The scene is meant to intimidate viewers with the complexity of the system and the difficulty in getting a sense of where you are in it.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-20T23:32:31.513" />
  <row Id="13415" PostTypeId="2" ParentId="12815" CreationDate="2010-10-20T23:35:19.900" Score="0" ViewCount="" Body="&lt;p&gt;This is basically a management problem, not a software problem. You will need to hire some more people to handle the new demand. You will probably also start having to build a QA team, at least informally. &#xA;Depending on your product line, continuous integration &amp;amp; continuous unit testing might be feasible.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-20T23:35:19.900" />
  <row Id="13416" PostTypeId="2" ParentId="11157" CreationDate="2010-10-20T23:53:25.483" Score="1" ViewCount="" Body="&lt;p&gt;You can get away with all sorts of hackery and shortcuts in the internal systems. When dealing with the GUI you do not have that freedom. Your internal api may have inconsistency and you just expect the coders to deal with it because its too hard to fix. You cannot trying and make your customers do the same thing. So in some sense, the people who have to deal with the user visible components have to actually follow a higher standard. &lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-10-20T23:53:25.483" />
  <row Id="13417" PostTypeId="2" ParentId="13411" CreationDate="2010-10-20T23:59:43.563" Score="5" ViewCount="" Body="&lt;p&gt;In C based languages it is a good idea to make a habit out of putting the constant on the left side of a comparison.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (42==TheMeaningofLifeTheUniverseAndEverything) {&#xA;  ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If you make the common mistake of using the assignment operator (=) instead of the comparison operator (==) the compiler will warn you instead of forcing to track it down yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe this isn't a common issue with people who program in C#, Java, or C++ all day long, but I frequently go back and forth between languages that use the = operator for both and am more likely to make this mistake.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-20T23:59:43.563" CommentCount="4" />
  <row Id="13418" PostTypeId="2" ParentId="13396" CreationDate="2010-10-21T00:05:28.890" Score="1" ViewCount="" Body="&lt;p&gt;TestTrackPro worked for us in my last job.  I don't know how it has changed in the last 3 years.&lt;/p&gt;&#xA;" OwnerUserId="88" LastActivityDate="2010-10-21T00:05:28.890" CommentCount="1" />
  <row Id="13419" PostTypeId="2" ParentId="11157" CreationDate="2010-10-21T00:13:27.503" Score="1" ViewCount="" Body="&lt;p&gt;I'm going to say yes, for one simple reason: The iPhone. Everyone I've ever spoken to thinks it's fantastic because of the slick interface, but I can only imagine the work underneath to make that all possible.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-21T00:13:27.503" />
  <row Id="13420" PostTypeId="2" ParentId="13279" CreationDate="2010-10-21T00:15:17.793" Score="0" ViewCount="" Body="&lt;p&gt;Usually I get referred to as a web designer when engaging in such discussions or the other standard issue question is do I fix computers. I often provide these people with a copy of the book &lt;em&gt;Code Complete&lt;/em&gt; and invite them to reconvene in about ten years.&lt;/p&gt;&#xA;" OwnerUserId="5510" LastActivityDate="2010-10-21T00:15:17.793" />
  <row Id="13421" PostTypeId="2" ParentId="13396" CreationDate="2010-10-21T00:17:15.733" Score="1" ViewCount="" Body="&lt;p&gt;In my experience, you're hosed. The point of no return was when you let someone send you an e-mail in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In all seriousness, &lt;a href=&quot;http://www.axosoft.com/&quot; rel=&quot;nofollow&quot;&gt;OnTime&lt;/a&gt; is nice and has the customer portal (the whole thing is wicked easy to setup and they have free online seminars that are pretty good) where users can create tickets, vote on things, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No amount of software you put in place will be easier than your users clicking &quot;send&quot; though. I wish you good tidings trying to convert them!&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-21T00:17:15.733" CommentCount="1" />
  <row Id="13422" PostTypeId="2" ParentId="13391" CreationDate="2010-10-21T00:21:29.563" Score="4" ViewCount="" Body="&lt;p&gt;Kanban allows you to track tasks in workflows. They show areas in the workflow that are experiencing backlogs so you can dedicate more effort to clearing them, as well as begin to isolate what's causing them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are &lt;a href=&quot;http://www.infoq.com/articles/agile-kanban-boards&quot; rel=&quot;nofollow&quot;&gt;several&lt;/a&gt; &lt;a href=&quot;http://www.agileproductdesign.com/blog/2009/kanban_over_simplified.html&quot; rel=&quot;nofollow&quot;&gt;nice&lt;/a&gt; &lt;a href=&quot;http://www.crisp.se/kanban&quot; rel=&quot;nofollow&quot;&gt;references&lt;/a&gt; on the &lt;a href=&quot;http://leansoftwareengineering.com/2007/10/27/kanban-bootstrap/&quot; rel=&quot;nofollow&quot;&gt;techniques&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read them all. Yes. Read them again &lt;strong&gt;until nothing seems to contradict&lt;/strong&gt; your &quot;learned&quot; experience. Then take out some post-its and &lt;strong&gt;try to teach someone else&lt;/strong&gt; what kanban is. Then read them again so you &lt;strong&gt;see what you didn't understand&lt;/strong&gt; as well as you thought. &lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-21T00:21:29.563" />
  <row Id="13423" PostTypeId="2" ParentId="13411" CreationDate="2010-10-21T00:32:11.077" Score="2" ViewCount="" Body="&lt;p&gt;It's not a really a secret, but nevertheless not really uncommon: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (1 == 1) { return true; } else { return false; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;can and should be written just as&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;return (1 == 1);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="436" LastActivityDate="2010-10-21T00:32:11.077" CommentCount="2" />
  <row Id="13424" PostTypeId="1" CreationDate="2010-10-21T00:45:10.637" Score="14" ViewCount="304" Body="&lt;p&gt;I find it fairly simple keep focused on a task at hand whilst I am actively engaged on it, however, during a long compile (and our current main project can compile in 5-10 mintues on a bad day) that my focus will drift. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll start procrastinating, check the web, talk to someone, start thinking about something else, and just generally lose my attention, and realise that the compile had finished a while back and I have lost my train of thought, or worse, a lot of time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is hurting my productivity, and whilst it has not been mentioned by anyone, I think it's a habit I should stop. I have tried white-noise generators (brilliant whilst I have something to focus on), shutting down my web connection and the like, however, through long compiles what can I do rather than stare at the monitor?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What tricks or tips can be used to keep focused without spending large amounts of your day starting at a compile in boredom, just to ensure you don't miss it finishing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hang on, my build broke 10 minutes ago ... :) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, I am fairly sure this question isn't a dup of &lt;a href=&quot;http://programmers.stackexchange.com/questions/9/how-do-you-stay-focused-at-work&quot;&gt;this&lt;/a&gt;, as as I am talking specifically about compile times, rather than waining motivation. Foosball is not an option, rather the problem :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt; People trying to gloat about their language of choice compiling faster are not really helping, nor being particularly amusing. Thanks anyway.&lt;/p&gt;&#xA;" OwnerUserId="3946" LastEditorUserId="3946" LastEditorDisplayName="" LastEditDate="2010-10-21T21:45:30.877" LastActivityDate="2010-10-21T21:59:04.270" Title="How do you keep focused through long compiles" Tags="&lt;focus&gt;" AnswerCount="9" CommentCount="5" FavoriteCount="3" />
  <row Id="13425" PostTypeId="2" ParentId="11157" CreationDate="2010-10-21T00:53:11.830" Score="1" ViewCount="" Body="&lt;p&gt;I hate GUI development for two reasons, &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I am more logical than graphically artistic and my UI always suffers as a result.&lt;/li&gt;&#xA;&lt;li&gt;As UI isn't based on logic, unit tests are nigh on impossible to write with any meaning&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;At the end of the day, however, I think that my code will be better appreciated by the end user (as opposed, perhaps to a project sponsor), than that of a mediocre developer who is a whiz at UI, as it generally works.&lt;/p&gt;&#xA;" OwnerUserId="3946" LastActivityDate="2010-10-21T00:53:11.830" />
  <row Id="13426" PostTypeId="2" ParentId="13424" CreationDate="2010-10-21T00:57:47.203" Score="2" ViewCount="" Body="&lt;p&gt;You might want to raise the issue with the project-lead and manager to see if you can collectively come up with a means of either shortening the compile-time or requiring less-frequent compiles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been in a similar situation where the effort required to do basic tasks continued to grow to the point that it was impossible to remain focused and be effective.  After a year of trying my best to offer alternatives and suggest changes I hadn't seen much response--and it ultimately led to me changing jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps more constructively; could you spend the time on related--but non-coding tasks (such as time-accounting, updating ticket-statuses, code-reviews, etc).  While they might not address the main issue of you losing your focus they at least keep you up-to-date on the pencil-pushing during a big downtime.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Also, just noticed you mentioned &quot;don't want to miss it finishing&quot;.  A simple solution is to have an egg timer you can quickly set to 10-minutes; or possibly explore if there's a notification of the build-completing that you can use.  For example, if it can send you an email, and you use Outlook, you can create an Outlook rule that says &quot;when mail received from buildserver@example.com with title 'Build Complete' then play sound Alert.wav&quot;&lt;/p&gt;&#xA;" OwnerUserId="5828" LastActivityDate="2010-10-21T00:57:47.203" CommentCount="4" />
  <row Id="13427" PostTypeId="2" ParentId="11157" CreationDate="2010-10-21T01:12:37.110" Score="2" ViewCount="" Body="&lt;p&gt;I think there is a general presumption out there that the UI developers are the &quot;junior&quot; developers. I can only think of one case I ran into where a UI guy was considered senior. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I think UI is a lot harder than any other part of our apps. And I'm not talking about the UX design, I'm talking about the coding. How many other areas do we code in where we have to account for dozens, if not hundreds, or possible scenarios? Just resizing a screen can sometimes become a royal pain when you need to figure out what needs to happen with a couple of dozen elements. This primarily comes up when you have guidelines that say &quot;we need to support 800x600&quot; and then UX designers that never use anything other than HD resolutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, if they get more goodness because of more exposure, they probably deserve it. Usually, they are on the wrong receiving end more often than the good receiving end.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-10-21T01:12:37.110" />
  <row Id="13428" PostTypeId="2" ParentId="13424" CreationDate="2010-10-21T01:13:50.360" Score="2" ViewCount="" Body="&lt;p&gt;(During a compile) I had an idea of Visual Studio alerting me to an end of compile and found an answer on (of course) &lt;a href=&quot;http://stackoverflow.com/questions/2774609/visual-studio-2005-2008-compile-completed-alert&quot;&gt;Stack Overflow&lt;/a&gt;. This will help, at least, to warn me that the build is done.&lt;/p&gt;&#xA;" OwnerUserId="3946" LastActivityDate="2010-10-21T01:13:50.360" CommentCount="1" />
  <row Id="13429" PostTypeId="2" ParentId="2042" CreationDate="2010-10-21T01:14:10.103" Score="2" ViewCount="" Body="&lt;p&gt;Your situation won't change quickly, and the key to getting it through is to make it part of your personal discipline, and to be good at it, before trying to push it on others.  If you can be the example of it working then your managers should see objective benefits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also make good business cases:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;TDD can be simply summarized as &quot;spec which the system can automatically verify itself against&quot;.  It's not programming differently, it's not building a different product.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Unit testing is really just a form of automated-testing; which is just letting the computer do for itself what the company is likely paying meat-space engineers to do manually.  Automated tests run faster, more consistently, and--when well written--provide fast, concise and accurate feedback and descriptions and direction for the issue&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;TDD, when being done by someone who knows what they're doing, produces results just as fast as code-first.  There will be a learning/training curve (and, if your engineers are from the short-end of the talent pool then this may entirely kill your chances of pushing TDD--in this case the best you can do is to continue to champion it and make management question &lt;em&gt;them&lt;/em&gt; rather than TDD)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;TDD is very much about thinking through the task at hand before starting it.  It's along the lines of &quot;measure twice, cut once&quot;--the extra measurment adds a marginal amount of time to the task, but avoids throwing away your most precious resource--dev hours).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;...and just remember; the most important thing you can do is to lead by example.  If you're rough in TDD, invest some extra hours in becomming better.  Once you're proficient, just start doing it at work (would your managers &lt;em&gt;really&lt;/em&gt; complain that you write tests?).  Fight one battle at a time and make steps towards it--going for the whole shebang likely will result in failure and the blame will fall on you if you pushed hard for it.&lt;/p&gt;&#xA;" OwnerUserId="5828" LastActivityDate="2010-10-21T01:14:10.103" />
  <row Id="13430" PostTypeId="2" ParentId="13091" CreationDate="2010-10-21T01:37:26.607" Score="6" ViewCount="" Body="&lt;p&gt;I'm surprised nobody has mentioned it (so hopefully I'm not misreading the question)--&lt;strong&gt;but both kind of suck!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The better alternative would be to use early-exits (placing a return statement early in the code if no other code should execute).  This makes the assumption that your code is relatively well refactored, and that each method has a concise purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At that point you would do something like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if ((byteArrayVariable == null) || (byteArrayVariable .Length != 0)) {&#xA;  return; // nothing to be done, leaving&#xA;{&#xA;&#xA;// Conditions met, do something&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It might look a lot like validation--and that's precisely what it is.  It validates that conditions have been satisfied for the method to do it's thing--both options you offered hid the actual logic within the pre-condition checks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your code is a lot of spaghetti (loooong methods, lots of nested ifs with logic scattered between them, etc) then you should focus on the bigger problem of getting your code into shape before the smaller stylistic issues.  Depending on your environment, and the severity of the mess, there are some great tools to help (e.g. Visual Studio has an &quot;Extract Method&quot; refactoring function).&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;As Jim mentions, there's still room for debate about &lt;em&gt;how&lt;/em&gt; to structure the early-exit.  The alternative to what is above would be:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (byteArrayVariable == null) {&#xA;  return; // nothing to be done, leaving&#xA;{&#xA;&#xA;if (byteArrayVariable .Length != 0) {&#xA;  return;&#xA;}&#xA;&#xA;// Conditions met, do something&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5828" LastEditorUserId="5828" LastEditorDisplayName="" LastEditDate="2010-10-21T12:58:36.953" LastActivityDate="2010-10-21T12:58:36.953" CommentCount="1" />
  <row Id="13431" PostTypeId="2" ParentId="13424" CreationDate="2010-10-21T01:40:21.683" Score="1" ViewCount="" Body="&lt;p&gt;I like to thread my development tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After kicking off a build to test my latest changes on task #1, I'll immediately jump back to the editor and start working on task #2. By the time I'm done with #2, the build for task #1 will be ready for testing. Eventually I'll start a build to test issue #2, giving me time either to return to issue #1, or start on #3 if I'm done with #1.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously this can only work if you can find two tasks such that development in one area shouldn't affect the other. You'll also have to deal with the overhead of switching threads - sometimes it would take me a few seconds to remember which change I was supposed to be testing in the new build.&lt;/p&gt;&#xA;" OwnerUserId="5831" LastActivityDate="2010-10-21T01:40:21.683" />
  <row Id="13432" PostTypeId="2" ParentId="13091" CreationDate="2010-10-21T01:45:10.507" Score="6" ViewCount="" Body="&lt;p&gt;Your example is the perfect example of why the nested &lt;code&gt;ifs&lt;/code&gt; are a bad approach for most languages that properly support boolean comparison. Nesting the &lt;code&gt;ifs&lt;/code&gt; creates a situation where your intention is not at all clear. Is it required that the second &lt;code&gt;if&lt;/code&gt; immediately follows the first one? Or is it just because you haven't put another operation in there yet?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if ((byteArrayVariable != null) &amp;amp;&amp;amp; (byteArrayVariable.Length != 0))&#xA;  //Do something with byteArrayVariable &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In this case, these pretty much &lt;em&gt;must&lt;/em&gt; be together. They are acting as a guard to ensure you don't perform an operation that would result in an exception. Using nested &lt;code&gt;ifs&lt;/code&gt;, you leave it up to interpretation of the person following you as to whether the two represent a two-part guard or some other branching logic. By combining them into a single &lt;code&gt;if&lt;/code&gt; I am stating that. It's a lot harder to sneak an operation inside of there where it shouldn't be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will always favor clear communication of my intention over someone's stupid assertion that it &quot;doesn't work in all languages&quot;. Guess what... &lt;code&gt;throw&lt;/code&gt; doesn't work in all languages either, does that mean I shouldn't use it when coding in C# or Java and should instead rely on return values to signal when there was a problem?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All that said, it's a lot more readable to invert it and just return out of the method if either is &lt;em&gt;not&lt;/em&gt; satisfied as STW says in their answer.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-10-21T01:45:10.507" CommentCount="1" />
  <row Id="13433" PostTypeId="2" ParentId="13424" CreationDate="2010-10-21T01:47:22.320" Score="0" ViewCount="" Body="&lt;p&gt;My team is working in python. So I don't have that problem... for now =]&lt;/p&gt;&#xA;" OwnerUserId="1369" LastActivityDate="2010-10-21T01:47:22.320" />
  <row Id="13434" PostTypeId="2" ParentId="2042" CreationDate="2010-10-21T01:50:03.803" Score="1" ViewCount="" Body="&lt;p&gt;My boss fed me a good one today on this, I think I'm going to steal it like he was stealing it from someone else.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Would you expect a carpenter to&#xA;  measure the board before he cuts it?&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I took wood shop class in high school and worked construction through school. Our mantra was always &quot;measure twice, cut once&quot; which got followed up by the sarcastic &quot;I cut it and cut it again and it was still too short!&quot;&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-10-21T01:50:03.803" />
  <row Id="13435" PostTypeId="2" ParentId="11157" CreationDate="2010-10-21T02:01:24.060" Score="4" ViewCount="" Body="&lt;p&gt;As the &quot;UI expert&quot; at my company (the guy in charge of all the UI development, not just the design), I think you might be missing some part of the story. While I'm the guy in charge of the UI, I also work the on back-end, on the databases, etc. I do it all (we're a small team). [C# and ASP.Net WebForms development]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of all, yes it is much easier for non-technical people to appreciate the work of a GUI developer because that's what's in the face of people. To non-technical people, &lt;strong&gt;the GUI is the application&lt;/strong&gt;. The drawback is that the GUI is also the first one to be blamed when something goes wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second of all, developing the front-end has been much more challenging for me than the back-end ever was (obscure/complex algorithms aside). There's so much more to guard against, it's stateless (our apps are on the Web), browsers don't behave consistently (JavaScript libraries were a godsend), etc. I'm hoping most of this complexity is due to the framework I have to work with (ASP.Net WebForms) and that all the difficult stuff won't be an issue in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall, I've had much more difficulty solving UI issues than back-end issues.&lt;/p&gt;&#xA;" OwnerUserId="220" LastActivityDate="2010-10-21T02:01:24.060" />
  <row Id="13436" PostTypeId="2" ParentId="11157" CreationDate="2010-10-21T02:08:09.627" Score="1" ViewCount="" Body="&lt;p&gt;It depends on the audience. I work with a lot of financial analysts and their idea of a good gui design is one that has as many fields as you can possibly jam onto one form. Seriously, I'm talking 75 - 100. They're data junkies who always want more. I recently improved the performance on a few stored procedures that could take 45 seconds to load (calculate weighted averages since the beginning of time stuff). Got it down to 30 seconds; I'm thinking wow, cut one-third of the time; it should be a line item on my resume. No one even noticed. Kept working on it and got it to 15-20. Noticable change. Everyone was very happy. I still think the GUI is an abomination and if we took out this useless crap, it would load in 2 seconds, but when there are 15 different multi-line text boxes (You know the ones that have all the formating capability with MAX character settings.), it's hopeless. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you want users to really love you, remember that the best user interface is no interface at all (wish I remembered who said that). After wanting to see all these data, my analysts have realized they are the ones to do all the data entry - the horror.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-21T02:08:09.627" />
  <row Id="13437" PostTypeId="2" ParentId="13424" CreationDate="2010-10-21T02:27:44.120" Score="4" ViewCount="" Body="&lt;p&gt;The biggest problem with a long compile phase is that it lengthens the amount of time in the code-test-fix cycle which breaks flow, increasing development time and decreasing your effectiveness as a developer.  &lt;strong&gt;The best way to maintain flow in this case is to avoid compiling.&lt;/strong&gt;  To do this you can spend a little extra time before compiling to ensure that when you &lt;em&gt;do&lt;/em&gt; compile it will be effective (e.g. waiting even 1 minute to find out you made a syntax error is a waste) and that the code you write will work the first time (because a stupid/simple logic error will cost you an extra 5-10 minutes).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To become more productive you need to alter your development process to reduce errors when it's cheap, in this case before you compile.  The &lt;a href=&quot;http://en.wikipedia.org/wiki/Personal_Software_Process&quot; rel=&quot;nofollow&quot;&gt;Personal Software Process&lt;/a&gt; introduces a personal inspection phase before compilation to help accomplish this.  So rather than following a code-compile-test-fix cycle you would follow a code-inspect-fix-compile-test-fix cycle.  With practice, inspections can be quite effective, and having an effective inspection step will let you get away with compiling less often.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are other techniques for &quot;defect filtering&quot; used in the PSP, but I've found personal inspection to be one of the most simple, effective, and universally applicable techniques to use.&lt;/p&gt;&#xA;" OwnerUserId="3966" LastActivityDate="2010-10-21T02:27:44.120" CommentCount="1" />
  <row Id="13438" PostTypeId="2" ParentId="13397" CreationDate="2010-10-21T02:28:12.380" Score="2" ViewCount="" Body="&lt;p&gt;If you want a better answer to your question and a real awakening as to how well you write instructional manuals, hand the lady at the desk your instructions and watch over her shoulder as she tries to follow. Don't interject; pretend your not there. Ask her to think outloud. Take lots of notes. Prepared to be shocked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go back and rewrite the instructions with all the feedback you received. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least with the romance novels, you know who's banging who. Our instructions are rarely that clear.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-21T02:28:12.380" />
  <row Id="13439" PostTypeId="1" AcceptedAnswerId="13459" CreationDate="2010-10-21T02:34:16.517" Score="13" ViewCount="299" Body="&lt;p&gt;At what  point does a developer stops being simply a developer and turns into a software architect. Or in other words , whats the minimum job description of a software architect?  &lt;/p&gt;&#xA;" LastActivityDate="2010-10-21T08:17:48.720" Title="What defines a software architect ?" Tags="&lt;software-engineering&gt;&lt;software-developer&gt;&lt;architect&gt;&lt;job-definition&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="13440" PostTypeId="2" ParentId="13439" CreationDate="2010-10-21T02:42:18.343" Score="4" ViewCount="" Body="&lt;p&gt;Like most IT job titles there is no definition, it is just a made up term. I would describe a Software Architect as someone who is in charge of the technical application design, building things like base libraries, application frameworks etc. Of all the various IT 'Architecture' jobs this is probably the lowest one on the food chain.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-21T02:42:18.343" />
  <row Id="13441" PostTypeId="2" ParentId="13384" CreationDate="2010-10-21T02:46:13.403" Score="0" ViewCount="" Body="&lt;p&gt;I break things down like this:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Any significant project/application development - 1 week.&lt;/li&gt;&#xA;&lt;li&gt;Simple one-off enhancements are thrown into a list, prioritized, and each one gets addressed in half to full day periods.&lt;/li&gt;&#xA;&lt;li&gt;Bug fixes usually take priority and go through a similar process as #2, but can sometimes be fixed much quicker.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The key factor here is how much planning can you actually do for a given task? Starting a brand new website that does yadda, yadda, yadda, there is more planning up front than fixing a bug. Who plans bugs in advance? Department manager discovers they forgot something and need it for the end of the quarter reporting, you have to put things aside and work on it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A weekly iteration may have 10 hrs or may have 50. It all depends on how much other stuff is immediate. I think it is much easier for management to understand the time contraints when you ask, if you should put a project aside to make a small addition? I'm pleasantly surprised when they identify that little change as unecessary and I should keep working on the yadda-yadda-yadda-website.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-21T02:46:13.403" />
  <row Id="13442" PostTypeId="2" ParentId="7747" CreationDate="2010-10-21T02:49:34.997" Score="1" ViewCount="" Body="&lt;p&gt;I think, given that this quote is 35 years old, it has a lot to do with the lack of abstraction that was available in programming languages, and what was required for you to know to develop well, back when it was said. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being given a language like BASIC teaches you little about how to program at a low level, something far more necessary in the past than now, and would give you the mistaken impression that programming was simpler than it really is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I remember disctinctly trying to learn 'machine code' at the age of 15 after over 3 years of VZ200, C64 and Apple ][e BASIC, it was a rude wake up call.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These days, however, although I am a complete snob about these things, and you wil not find me working happily in any language with BASIC in the name (I tend to start yelling at the monitor phrases like 'stupid Fisher Price Language' as it, yet again, rejects my careless curly braces),I admit it is easier to do productive things with languages that abstract the mechanics of the CPU than it was 35 years back (or 25 years ago, in my own personal experience and example)&lt;/p&gt;&#xA;" OwnerUserId="3946" LastActivityDate="2010-10-21T02:49:34.997" CommunityOwnedDate="2011-01-20T21:00:13.020" />
  <row Id="13443" PostTypeId="1" CreationDate="2010-10-21T02:49:44.147" Score="7" ViewCount="208" Body="&lt;p&gt;A few weeks ago, my class was assigned to translate to Portuguese the book Real World Haskell. As I did the translation of the text and comments, I started to wonder if I should translate the code as well, as the instructor suggested. For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;data BookInfo = Book Int String [String]&#xA;              deriving Show&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;would become&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;data InfoLivro = Livro Int String [String]&#xA;               deriving Show&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Since I haven't read any software-related books in Portuguese, I don't know if that's a common practice, neither if it should be done this way. In the end, the code is a language mix (perhaps the example in Haskell is not a good one, since you can create synonyms quickly like &lt;code&gt;type CadeiaDeCaracteres = String&lt;/code&gt;, but you get the point). So it doesn't really matter how hard you try, you'll have to rely on the reader previous experience with some sort of basic English words. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowing this, I really don't see the point in translating code, since we learn in the early days of our coding life it should be written in the universal language. Nevertheless, if the surrounding text (comments, for example, and text itself in a book) needs to be translated, what is possible and feasible in this matter? Can you provide me with some guidance of what to do?&lt;/p&gt;&#xA;" OwnerUserId="5855" LastActivityDate="2010-10-21T03:14:39.563" Title="Should source-code in textbooks and the like be translated?" Tags="&lt;coding&gt;" AnswerCount="2" CommentCount="4" FavoriteCount="2" />
  <row Id="13444" PostTypeId="2" ParentId="13443" CreationDate="2010-10-21T02:57:44.923" Score="8" ViewCount="" Body="&lt;p&gt;In my opinion, no. Most programmers are forced whether they want it or not, to learn english, and nowadays it is the &lt;em&gt;lingua franca&lt;/em&gt; of the software world. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, however, books written by authors in one of the &lt;em&gt;stronger&lt;/em&gt; languages, have a tendency to do that - so far I've seen the practice in books in german, french and russian (well, russian is a little different of a case, since they use different alphabet as well). It is a rule of thumb that it depends on the country's &lt;em&gt;dependency&lt;/em&gt; on english.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The text is of course translated, the bigger comments also (one that describe the workings of a program in greater detail), then somewhat more rare, smaller comments and variable names. I've also seen the case where variable names were translated, but smaller comments were left in english. I believe the author however, in that particular case, was counting on his audience to have a working english knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Sorry if this didn't solve your dilemma, but there still isn't a consensus on this one :-/&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-21T02:57:44.923" />
  <row Id="13445" PostTypeId="2" ParentId="9885" CreationDate="2010-10-21T03:04:43.790" Score="0" ViewCount="" Body="&lt;p&gt;I've found that a risk-driven approach such as that presented in George Fairbanks' book &lt;a href=&quot;http://rhinoresearch.com/content/software-architecture-book&quot; rel=&quot;nofollow&quot;&gt;Just Enough Software Architecture&lt;/a&gt; works extremely well for understanding how much documentation is enough.  You can read the section which presents this concept (chapter 3) on his website but the main idea is to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Express the things that worry you about &quot;system understanding&quot; as risks&lt;/li&gt;&#xA;&lt;li&gt;Prioritize the risks&lt;/li&gt;&#xA;&lt;li&gt;Mitigate the risks until your team feels the project risk has been sufficiently reduced.  In this case you'll probably be creating some kind of documentation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;To help calibrate concerns so you can prioritize risks I've found it helpful to identify a couple of goals known as the &lt;a href=&quot;http://neverletdown.net/2010/01/threshold-of-success/&quot; rel=&quot;nofollow&quot;&gt;Threshold of Success&lt;/a&gt;, that is the minimum set of goals your team thinks a &quot;successful&quot; project must achieve.  From a documentation perspective an example ToS might be something like &quot;A developer should be able to build a simple plug-in within 4 hours of picking up the framework for the first time.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now identify some risks.  With the system you've built (or are building) what are the things that worry your team most?  Phrase these as risk statements.  I like the SEI's condition-consequence style but there are others.  Examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The data model is large and complex; developers might not know which data elements to use in a given situation.&lt;/li&gt;&#xA;&lt;li&gt;The system has API connection limits to increase reliability; developers might accidentally overstep the connection limit.&lt;/li&gt;&#xA;&lt;li&gt;Plug-ins are consumed in several sequential steps; developers might not build plug-ins with these ordered steps in mind.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Now as a team, prioritize the risks.  Multi-voting works extremely well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mitigate the top priority risks, and repeat starting with identification until the risk of your project failing (defined by the Threshold of Success) is within a tolerable limit.  Generally this will mean you'll have some risks that the team agrees are not much of a concern.  Keep in mind that you probably won't want to mitigate all the risks.  An example mitigation strategy for the last risk above might be to create a tutorial.&lt;/p&gt;&#xA;" OwnerUserId="3966" LastActivityDate="2010-10-21T03:04:43.790" />
  <row Id="13446" PostTypeId="2" ParentId="13443" CreationDate="2010-10-21T03:09:18.187" Score="6" ViewCount="" Body="&lt;p&gt;I'm brazilian [we speak portuguese here, ofc] and, when I can choose between the original or the translated version, I always take the original, since almost every book is translated to people who aren't programmers so commands and expressions lose their original meaning after the translation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another reason to want books in english is that everything on web [or the best things, like this site] is written in english, so you will be familiarized with the english term and you will be able to understand better other people code... [since a good programmer would code in english, at least from my POV]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need to read books in portuguese [or another language] prefer those written on that language [not translated].&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To make it clear: if you are going to translate that book, try to keep all code in english [comments may be translated, but not vars or funcs] and don't try to translate stuff like 'array' to 'arranjo' or 'mouse' to 'rato' [at least I would prefer the english term, people on Portugal would prefer the second, I guess]. &lt;/p&gt;&#xA;" OwnerUserId="3445" LastEditorUserId="3445" LastEditorDisplayName="" LastEditDate="2010-10-21T03:14:39.563" LastActivityDate="2010-10-21T03:14:39.563" CommentCount="1" />
  <row Id="13447" PostTypeId="2" ParentId="13401" CreationDate="2010-10-21T03:11:09.867" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.djangoproject.com/&quot; rel=&quot;nofollow&quot;&gt;Django&lt;/a&gt; has well-written documentation.&lt;/p&gt;&#xA;" OwnerUserId="4711" LastActivityDate="2010-10-21T03:11:09.867" />
  <row Id="13448" PostTypeId="2" ParentId="13439" CreationDate="2010-10-21T03:24:24.640" Score="9" ViewCount="" Body="&lt;p&gt;I could probably come up with 2 pages of humor here, but I'll assume you are taking this seriously. So, I'll respond as seriously as I can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First thing you must understand: @Craig is right... differnet organizations mean different things. For some, it's just part of their advancement track and doesn't really mean much beyond that. For others, its a distinct role and very often, they get subverted out of doing any code or other hands on work and so lose their efficiency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point at which you stop being a developer and start being an architect is the point at which you spend 90%+ of your time engaged in the following&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Writing specs / drawing pretty pictures&lt;/li&gt;&#xA;&lt;li&gt;Meetings with management/Stakeholders&lt;/li&gt;&#xA;&lt;li&gt;Researching what technologies you should be using instead of learning what your team &lt;em&gt;is&lt;/em&gt; using today.&lt;/li&gt;&#xA;&lt;li&gt;Wondering what the code for your apps looks like because you haven't seen the code in 4 months&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Short of it is that an architect is the interface between the dev team and the stakeholders (the BA is the opposite). They need to be able to understand the business side and the technical details, but truth is, they are likely to not &quot;get their hands dirty&quot; all that often. Their primary 'technical' skills need to be with UML, a word processor, other technical drawing tools, and presentation software. So, in most cases, within a few years, they will start to become less and less effective as their knowledge of coding becomes dated (e.g. they are trying to think in C++ while the project is in C# or Java). At that point, the smart people learn how to lean on and learn from the hands on folks. The others become a pain in rear because they have a harder and harder time relating to state of the art.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-10-21T03:24:24.640" CommentCount="2" />
  <row Id="13449" PostTypeId="2" ParentId="13143" CreationDate="2010-10-21T04:13:16.523" Score="1" ViewCount="" Body="&lt;p&gt;Video Tutor : &lt;a href=&quot;http://video.yahoo.com/watch/111593/1710507&quot; rel=&quot;nofollow&quot;&gt;Douglas Crockford: &quot;The JavaScript Programming Language&quot;(4 videos)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Though Crockford can confuse you initially, he can get basic concepts straight in JavaScript. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Text Tutor : A very detailed tutor available on Mozilla Development Center on &lt;a href=&quot;https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide%3aJavaScript_Overview&quot; rel=&quot;nofollow&quot;&gt;Javascript&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-10-21T04:13:16.523" />
  <row Id="13450" PostTypeId="2" ParentId="13411" CreationDate="2010-10-21T05:03:20.033" Score="1" ViewCount="" Body="&lt;p&gt;One of my favorites I originally got from Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of using a ternary operator (of which python doesn't have):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;cond ? value if true : value if false&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You can use &amp;amp;&amp;amp; and ||:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;cond &amp;amp;&amp;amp; value if true || value if false&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Although depending on the language you may need to include &quot;()&quot;s.&lt;/p&gt;&#xA;" OwnerUserId="4478" LastActivityDate="2010-10-21T05:03:20.033" />
  <row Id="13451" PostTypeId="2" ParentId="13424" CreationDate="2010-10-21T05:43:45.137" Score="5" ViewCount="" Body="&lt;p&gt;Where I work, a clean compile takes 45 minutes. A squeaky clean compile from scratch takes 4.5 hours. One line changes take about 5-10 minutes each. And this is on a machine that has 32 cores and 128 GB of ram.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How I get around this is to have a separate compilation for my module alone. This also has the added advantage of being more modular, since I will know all the dependencies of the module. Also unit tests give the execution context needed for the module. So I have a ready made unit test framework also. Only after all unit tests pass, will I start compiling with the platform and do integration testing. Compilation time for individual modules are typically within seconds.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-21T05:43:45.137" CommentCount="3" />
  <row Id="13452" PostTypeId="2" ParentId="13391" CreationDate="2010-10-21T06:52:37.013" Score="0" ViewCount="" Body="&lt;p&gt;Given your scenario, I would ask the customer's to prioritize the projects that you are working on for them. I would not choose these projects by those with &quot;the highest profit ratios&quot; as your sending your customer the message that all you are interested in is their money. You want your customer to know that you're interested in helping them solve their software problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then the process of determining what you work on next is a conversation between you and them, where you explain what resources you have available to devote to their project(s) and which they would prioritize first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They may not be thrilled that you are telling them that you can't do everything they want, but they'll appreciate that your putting them in charge of what they consider important. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another side effect of this process is that you can manage the customer's expectation better.&lt;/p&gt;&#xA;" OwnerUserId="4478" LastActivityDate="2010-10-21T06:52:37.013" />
  <row Id="13453" PostTypeId="1" CreationDate="2010-10-21T07:11:22.403" Score="2" ViewCount="187" Body="&lt;p&gt;All,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Between the 2, which programming language would you suggest considering:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1 &gt; Advanced features i.e. providing more flexibility to perform various tasks such as handling multimedia tasks etc  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;2 &gt; Corporate scenario i.e. Which one would be most widely accepted by companies  &lt;/p&gt;&#xA;" OwnerUserId="4703" LastActivityDate="2010-10-21T09:34:28.560" ClosedDate="2010-10-21T10:49:53.117" Title="To learn Perl or Python is the question" Tags="&lt;programming-languages&gt;&lt;jobs&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="13454" PostTypeId="2" ParentId="272" CreationDate="2010-10-21T07:42:19.567" Score="0" ViewCount="" Body="&lt;p&gt;It depends on the audience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My official title is &quot;Software Design Engineer&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My 'net title is &quot;Pixel-Stained Technopeasant&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually use something with a formality level between those two.  The more technical the person, the less formal the title.&lt;/p&gt;&#xA;" OwnerUserId="5068" LastActivityDate="2010-10-21T07:42:19.567" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="13455" PostTypeId="2" ParentId="13453" CreationDate="2010-10-21T07:48:14.467" Score="3" ViewCount="" Body="&lt;p&gt;I would go for Python - with regard to your first criterion I'd say they're probably about the same, but Python is much more acceptable in a corporate environment I'd say because Perl tends to be very idiosyncratic and consequently other people's Perl, even ( or especially ) if they are excellent programmers is often very hard to read. Python is much easier to maintain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also Perl is probably harder to learn- the variable handling is quite odd at first. I'd say Python is more transferable to other languages.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-21T07:48:14.467" />
  <row Id="13456" PostTypeId="2" ParentId="13401" CreationDate="2010-10-21T07:51:38.923" Score="1" ViewCount="" Body="&lt;p&gt;See this thread on &lt;a href=&quot;http://stackoverflow.com/questions/181421/who-has-the-best-documentation-you-have-ever-seen-language-framework-cms-wh&quot;&gt;Who has the BEST documentation you have ever seen?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5567" LastActivityDate="2010-10-21T07:51:38.923" />
  <row Id="13457" PostTypeId="2" ParentId="13396" CreationDate="2010-10-21T08:08:19.070" Score="2" ViewCount="" Body="&lt;p&gt;Bugzilla (roa any ticketing system - Jira etc..) should be great here.&#xA;It allows tickets (that will be tasks in your case) to be linked and finally, you can create tickets for your taskforce (engineers etc..).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bugzilla supports products, components, ticket dependencies and the like - probably all you need for managing your task queue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;+1 for not letter customers send emails that will create tickets directly.&lt;/p&gt;&#xA;" OwnerUserId="5475" LastActivityDate="2010-10-21T08:08:19.070" />
  <row Id="13458" PostTypeId="2" ParentId="13424" CreationDate="2010-10-21T08:10:10.613" Score="1" ViewCount="" Body="&lt;p&gt;Don't focus, it's the perfect time for a short break, programmers are human and they need rest too, don't they?&lt;/p&gt;&#xA;" OwnerUserId="2347" LastActivityDate="2010-10-21T08:10:10.613" CommentCount="5" />
  <row Id="13459" PostTypeId="2" ParentId="13439" CreationDate="2010-10-21T08:17:48.720" Score="1" ViewCount="" Body="&lt;p&gt;I think there is no best answer than:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;An architect do architecture.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;So if you do architecture, you are an architect. Maybe you asked for what is a &quot;good&quot; architect ? Or maybe a predefined task list?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition to the other excellent answers, including the one from Jim Leonardo, please read this document:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf&quot; rel=&quot;nofollow&quot;&gt;Who needs an architect&lt;/a&gt; - Martin Fowler&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My opinion ?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Architecture is a team sport&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-21T08:17:48.720" CommentCount="1" />
  <row Id="13460" PostTypeId="2" ParentId="13424" CreationDate="2010-10-21T08:26:25.560" Score="10" ViewCount="" Body="&lt;p&gt;I don’t. :-( &lt;strong&gt;We actually &lt;a href=&quot;http://xkcd.com/303/&quot; rel=&quot;nofollow&quot;&gt;bought swords&lt;/a&gt; for the office.&lt;/strong&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, the following helps:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Immediately start some writing task.&lt;/strong&gt; You know, that one method you wanted to write documentation for but never got around? There’s one piece of code that badly needs an explanatory comment. Work log needs updating? Now is the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It’s very important to find a writing task &lt;em&gt;immediately&lt;/em&gt;, otherwise the 10 minutes delay will be too small to get anything done. To help this, I keep a list of “to do” items that is either already opened in the background or can be opened by a single command.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An alternative is littering the code base with &lt;code&gt;TODO Documentation/comment&lt;/code&gt; tags. I do this a lot, and by and by these &lt;code&gt;TODO&lt;/code&gt;s get replaced. I don’t know if this works for everyone but it works for me.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/Bokken&quot; rel=&quot;nofollow&quot;&gt;Bokken&lt;/a&gt;, actually.&lt;/p&gt;&#xA;" OwnerUserId="2366" LastActivityDate="2010-10-21T08:26:25.560" />
  <row Id="13461" PostTypeId="2" ParentId="13349" CreationDate="2010-10-21T08:58:26.213" Score="1" ViewCount="" Body="&lt;p&gt;No, just like the auto industry was not copletely outsourced to Japan. Or some other country... Though there will emerge some big software names there, like Toyota, Honda, etc in the auto idustry. &lt;/p&gt;&#xA;" OwnerUserId="5865" LastActivityDate="2010-10-21T08:58:26.213" CommunityOwnedDate="2011-02-03T13:18:28.527" />
  <row Id="13462" PostTypeId="2" ParentId="13349" CreationDate="2010-10-21T09:00:47.667" Score="12" ViewCount="" Body="&lt;p&gt;I don't want to be rude, but I worked on some projects along with Asian engineers, and the quality of their work was very low. They had to be guided in every little detail, they weren't self-sufficient, and didn't show initiative at all.&#xA;Maybe in the future the situation will change, but as now I can't see how they could rule a project in autonomy.&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-10-21T21:36:24.683" LastActivityDate="2010-10-21T21:36:24.683" CommunityOwnedDate="2011-02-03T13:18:28.527" CommentCount="4" />
  <row Id="13464" PostTypeId="2" ParentId="39" CreationDate="2010-10-21T09:30:53.887" Score="9" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A normal person believes a kilobyte is 1000 bytes, a coder believes a kilometer is 1024 meters.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-Unknown&lt;/p&gt;&#xA;" OwnerUserId="5867" LastActivityDate="2010-10-21T09:30:53.887" CommunityOwnedDate="2010-10-21T09:30:53.887" />
  <row Id="13466" PostTypeId="2" ParentId="13453" CreationDate="2010-10-21T09:34:28.560" Score="0" ViewCount="" Body="&lt;p&gt;I would prefer python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Year ago I've learned Perl, so my knowlage about this language is very old. But I tried python some months ago. Phython seems to be easier to lern and more modern (but as written above, my perl knowledge is pretty old). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My conclusion:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn python. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;There are bindings for other languages and you can create a GUI application on top of an python script.&lt;/li&gt;&#xA;&lt;li&gt;You can use the commandline interpreter for hacking python code&lt;/li&gt;&#xA;&lt;li&gt;The python community seems to be larger than the perl community&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2910" LastActivityDate="2010-10-21T09:34:28.560" />
  <row Id="13467" PostTypeId="2" ParentId="39" CreationDate="2010-10-21T09:40:19.643" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Kurzfristige Hacks tendieren dazu, langfristige Lösungen zu werden.&#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; Bodo Tasche&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Translated:&lt;/em&gt; Current hacks tend to be long-term solutions.&lt;/p&gt;&#xA;" OwnerUserId="2910" LastActivityDate="2010-10-28T02:38:22.293" CommunityOwnedDate="2010-10-21T09:40:19.643" />
  <row Id="13468" PostTypeId="2" ParentId="13396" CreationDate="2010-10-21T09:44:43.137" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.redmine.org/&quot; rel=&quot;nofollow&quot;&gt;Redmine&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-10-21T09:44:43.137" CommentCount="1" />
  <row Id="13469" PostTypeId="2" ParentId="13349" CreationDate="2010-10-21T09:49:13.903" Score="0" ViewCount="" Body="&lt;p&gt;I sure hope not!  And I don't think so, not really.  Software requires a much lower initial investment than auto manufacture, a project can get started with fewer people, and there's many more smaller projects to work on - there'll always be a market to create websites for small businesses, for example, and non-development companies will always prefer someone local (because of the language barrier, because they understand the market better, because being in the same timezone makes face-to-face and phone conversations easier).&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-21T09:49:13.903" CommunityOwnedDate="2011-02-03T13:18:28.527" />
  <row Id="13470" PostTypeId="1" AcceptedAnswerId="13474" CreationDate="2010-10-21T09:55:20.920" Score="57" ViewCount="3215" Body="&lt;p&gt;I'm thinking about leaving my current employer and wondering how one goes about that process in the programming world. We have a lot of projects on the go at the moment and I'm the only developer. We have 4-5 projects that are fairly big and need to be done in the next few months and even a few longer than that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm leaving because I'm the only employee and that's doing me no good. I'm young and want to learn, so a team would be nice. It's also too much work and the company is managed horribly. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have no contract to worry about so I could theoretically quit and just not come back without notice. Just wondering how this is &lt;em&gt;normally&lt;/em&gt; handled. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Should I write a resignation letter&lt;/li&gt;&#xA;&lt;li&gt;How much notice should I give&lt;/li&gt;&#xA;&lt;li&gt;Should I give a reason for leaving&lt;/li&gt;&#xA;&lt;li&gt;Should I go to my boss who is the main reason I'm leaving or go to his boss?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Overview of replies&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the feedback here, it looks as though it's best to give 2-4 weeks of notice, and present a written resignation. Don't go into detail explaining why you're leaving in most cases. Don't burn bridges. Be professional.&lt;/p&gt;&#xA;" OwnerUserId="3382" LastEditorUserId="3382" LastEditorDisplayName="" LastEditDate="2010-11-04T20:34:15.033" LastActivityDate="2010-12-09T05:23:36.663" Title="How do programmers quit a job?" Tags="&lt;jobs&gt;&lt;career-advice&gt;" AnswerCount="29" CommentCount="19" FavoriteCount="24" />
  <row Id="13471" PostTypeId="2" ParentId="8886" CreationDate="2010-10-21T10:03:37.943" Score="1" ViewCount="" Body="&lt;p&gt;I'd start at a small company with no HR filters to worry about, get some experience there and then move to a bigger company once you have a nice job or two in your job history. Education matters less and less and we find Computer Science graduates who can't even do the FizzBuzz test and self-educated programmers are blowing them away.&lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-10-21T10:03:37.943" CommunityOwnedDate="2011-03-30T04:35:50.040" />
  <row Id="13472" PostTypeId="2" ParentId="13470" CreationDate="2010-10-21T10:10:52.130" Score="30" ViewCount="" Body="&lt;p&gt;You should just tell them, that the way things are, you are unwilling to stay.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Worst case, they take it very personally and start yelling at you. Since you intend to leave, you don't have to take it, just leave.&lt;/li&gt;&#xA;&lt;li&gt;Maybe, they simply don't care. There's no discussion, they just let you go and you don't need to justify anything&lt;/li&gt;&#xA;&lt;li&gt;Best outcome is, they engage in a discussion with you and show the willingness to address your problems, possibly by hiring other developers (you &lt;strong&gt;must&lt;/strong&gt; be involved in that process. It's better working alone than teaming up with a bad developer).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In any way, it is neither particularly fair, nor neccessary to exclude your superiors from this decision. If they know anything about software, they understand that letting you - the &lt;strong&gt;only&lt;/strong&gt; developer - go will cost them a hell lot more money than doubling your salary our hiring additional devs. And thus they will talk to you. If they don't understand that, don't bother trying to explain anything.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-10-21T10:10:52.130" CommentCount="6" />
  <row Id="13473" PostTypeId="2" ParentId="13470" CreationDate="2010-10-21T10:21:50.430" Score="0" ViewCount="" Body="&lt;p&gt;if you are sure to leave, give a resignation letter(write on it the date)  and keep a copy, it important. in some couturiers its by law to leave a two weeks upfront notice. if you don't, they could squeeze out of you another 2 week notice of work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if you want to be nice, talk to them before you hand the letter over.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;start looking for a job now, it takes time to find one. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;good luck.&lt;/p&gt;&#xA;" OwnerUserId="5260" LastActivityDate="2010-10-21T10:21:50.430" />
  <row Id="13474" PostTypeId="2" ParentId="13470" CreationDate="2010-10-21T10:35:39.823" Score="66" ViewCount="" Body="&lt;p&gt;You should write a letter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The amount of notice should be in your contract - assuming you have one. Even if you didn't sign the contract you should abide by its terms. By working and getting paid you and the company are working to that contract even if it's not &quot;official&quot;. If nothing else you'll be seen to be doing &quot;the right thing&quot; and it will be harder for your employer to get you to work longer. If they want you to leave straight away you still should get paid as though you were working.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't need to give any reasons for your decision.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should leave all files etc. you've worked on so that they are accessible to your manager, co-workers and anyone who follows you. A short document explaining what's what would be polite. &lt;strong&gt;Don't&lt;/strong&gt; delete anything. The files/data aren't yours they are your employers.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-10-21T11:19:33.853" LastActivityDate="2010-10-21T11:19:33.853" CommentCount="8" />
  <row Id="13475" PostTypeId="2" ParentId="13470" CreationDate="2010-10-21T10:36:35.300" Score="11" ViewCount="" Body="&lt;p&gt;Definitely write a resignation letter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as notice go, I'd say &quot;it depends&quot;. What's the legal minimum notice required? This varies a lot from country to country (and varies from US state to US state as well). It'd probably go for the highest of &quot;legal minimum&quot;, &quot;contractual minimim&quot; and &quot;two weeks&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd not volunteer a reason for leaving in the resignation letter, just say &quot;I, &lt;em&gt;Name&lt;/em&gt;, resign my position as &lt;em&gt;blah&lt;/em&gt; with my last work day being &lt;em&gt;date&lt;/em&gt;. &lt;em&gt;Dated&lt;/em&gt;, &lt;em&gt;signed&lt;/em&gt;, &lt;em&gt;location&lt;/em&gt;&quot;. If the company wants to give you an exit interview, accept and explain your reasons for leaving there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hand your resignation letter to your boss on the same day as you sign (and date) it. Since it's all very impersonal, it shouldn't matter if you hand it to the boss or someone higher in the food-chain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Definitely leave your corporate-related emails behind (you do have your private and your corporate mail separated, don't you?) and leave all documentation you wrote for the company time behind. Deleting that sort of things is petty and beneath you, even if it may feel good at the moment.&lt;/p&gt;&#xA;" OwnerUserId="5084" LastActivityDate="2010-10-21T10:36:35.300" CommentCount="2" />
  <row Id="13476" PostTypeId="2" ParentId="13401" CreationDate="2010-10-21T10:55:08.787" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://sphinx.pocoo.org/&quot; rel=&quot;nofollow&quot;&gt;Sphinx&lt;/a&gt; is a good example. It's a documentation tool itself.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-21T10:55:08.787" />
  <row Id="13477" PostTypeId="1" AcceptedAnswerId="13484" CreationDate="2010-10-21T11:17:03.493" Score="2" ViewCount="99" Body="&lt;p&gt;Hello...Can you all please suggest some books (tutorials, links, examples) for someone who knows absolutely nothing on XSLT?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I need to manipulate XML-to-XML (&lt;strong&gt;NOT&lt;/strong&gt; XML-to-HTML) and would like to learn it pretty quickly as well. &lt;/p&gt;&#xA;" OwnerUserId="5070" LastActivityDate="2010-10-21T12:32:29.237" Title="XSLT for Beginners" Tags="&lt;books&gt;&lt;xml&gt;&lt;reference&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="13480" PostTypeId="2" ParentId="13470" CreationDate="2010-10-21T11:32:19.503" Score="2" ViewCount="" Body="&lt;p&gt;I think a great thing to do is to hand in a resignation letter and then explain the situation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most important thing: be gentle and make the company understand why you're leaving, so that they can improve. Tell them it's not really their fault - it's you seeking new experiences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looking forward to hear about your progress!&lt;/p&gt;&#xA;" OwnerUserId="4643" LastActivityDate="2010-10-21T11:32:19.503" CommentCount="4" />
  <row Id="13481" PostTypeId="2" ParentId="13470" CreationDate="2010-10-21T11:37:16.460" Score="21" ViewCount="" Body="&lt;p&gt;Maybe just treat others like you wish to be treated. What would that be?&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-10-21T14:57:51.150" LastActivityDate="2010-10-21T14:57:51.150" CommentCount="1" />
  <row Id="13483" PostTypeId="2" ParentId="8886" CreationDate="2010-10-21T12:00:54.403" Score="1" ViewCount="" Body="&lt;p&gt;I think, the point is 'without degree' and 'without education' is not equivalent. I know &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;many people with both&lt;/li&gt;&#xA;&lt;li&gt;even more CS graduates with degree and without educaction - very annoying people&lt;/li&gt;&#xA;&lt;li&gt;a lot of people with education and without degree&lt;/li&gt;&#xA;&lt;li&gt;and - last but not least - quite a lot of people without any of those two, but those guys usually go into marketing.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There are places, where you have no chance of being hired. &lt;a href=&quot;http://programmers.stackexchange.com/questions/3488/does-bad-grades-mean-you-are-ruined-for-life/3575#3575&quot;&gt;These are not the places where you want to work anyway.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Germany 2-3 years of experience generally outweigh a degree. I don't have a degree but that never posed a problem for me. Also, if you freelance, your reference is much more important than any number of certificates could be. I suppose this is valid anywhere around the world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, to put it into few words: Yes you can!&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-10-21T12:00:54.403" CommunityOwnedDate="2011-03-30T04:35:50.040" CommentCount="1" />
  <row Id="13484" PostTypeId="2" ParentId="13477" CreationDate="2010-10-21T12:04:48.290" Score="3" ViewCount="" Body="&lt;p&gt;You might want to track down a copy of &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1930110111&quot; rel=&quot;nofollow&quot;&gt;XSLT Quickly&lt;/a&gt; from &lt;a href=&quot;http://www.manning.com/ducharme/&quot; rel=&quot;nofollow&quot;&gt;Manning&lt;/a&gt; - I've not read this particular book, but it looks like it matches your needs and generally I find Manning books to be very clear. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I found a combo of &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596527217&quot; rel=&quot;nofollow&quot;&gt;XSLT: Mastering XML Transformations. For Beginners and Advanced Users&lt;/a&gt; and the &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596009747&quot; rel=&quot;nofollow&quot;&gt;XSLT Cookbook&lt;/a&gt; got me doing useful things pretty quickly. The cookbook in particular is good for seeing practical, real world applications of the general concepts - even if they're not all going to be relevant to what you want to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It depends on what you want to do, but I also found it useful to have a more indepth understanding of XPath - which I got from &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596002912&quot; rel=&quot;nofollow&quot;&gt;XPath and XPointer: Locating Content in XML Documents&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-21T12:04:48.290" CommentCount="1" />
  <row Id="13487" PostTypeId="2" ParentId="13396" CreationDate="2010-10-21T12:28:41.003" Score="1" ViewCount="" Body="&lt;p&gt;No where near as &quot;formal&quot; as Bugzilla or Fogbugz or any of those, but as a way to keep your clients more engaged, I've used &lt;a href=&quot;https://docs.google.com/&quot; rel=&quot;nofollow&quot;&gt;Google Docs&lt;/a&gt; with great results. Certainly, it would be a good first step from the total chaos that is everybody just emailing you all the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It works really well when there's more than one person sending you requests as well. Because everybody can see what everybody else has written, you're less likely to get different people all sending in the same thing. And you can update the points one-at-a-time when done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If someone sends me an &quot;out-of-band&quot; email, I'll just ask them to add it to the doc.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-21T12:28:41.003" />
  <row Id="13488" PostTypeId="2" ParentId="13470" CreationDate="2010-10-21T12:29:25.993" Score="4" ViewCount="" Body="&lt;p&gt;Usual procedure is to write a resignation letter.  It can be as brief as &quot;$MANAGER: Effective $DATE, please accept my resignation from $COMPANY.&quot;  Give at least two weeks notice, if possible.  Normally in your situation (sole developer), you would offer to document everything and offer to answer e-mail questions from your replacement for a couple of weeks after they hire one.  Definitely don't delete anything or do anything else spiteful.  For all you know, the person they hire to replace you will wind up becoming influential and will make your professional life miserable.  Leave everything the way you wish you'd found it your first day on the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also recommend not leaving before you have a new gig lined up, but that's just me.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-10-21T12:29:25.993" CommentCount="2" />
  <row Id="13489" PostTypeId="2" ParentId="13477" CreationDate="2010-10-21T12:32:29.237" Score="0" ViewCount="" Body="&lt;p&gt;I would suggest &lt;a href=&quot;http://www.w3schools.com/xsl/&quot; rel=&quot;nofollow&quot;&gt;http://www.w3schools.com/xsl/&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are examples and tutorials.&lt;/p&gt;&#xA;" OwnerUserId="2910" LastActivityDate="2010-10-21T12:32:29.237" CommentCount="1" />
  <row Id="13492" PostTypeId="2" ParentId="13470" CreationDate="2010-10-21T12:47:33.797" Score="17" ViewCount="" Body="&lt;p&gt;While it may feel good to take the &quot;take this job and shove it&quot; approach, that rarely works in the real world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You say that you are young - I am assuming that this is your first real job.  Do yourself a favor - do nothing that you regret later.  It's a small world, and the coding world is getting smaller.  Reputation spreads quickly.  This is especially true if you are planning to start your own company.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sidebar:  You say that you are planning to start your own company.  A word of advice there - research, research, research.  There is a whole lot more involved than coming up with a product.  There are legal issues (your new product better not look &lt;em&gt;anything&lt;/em&gt; like the product you just left).  It is going to take time to make a product, and only then can you start to try to get customers.  Be prepared to live lean for a fairly long while.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back to the task at hand.  Two weeks notice is customary, although being the &quot;nice guy&quot; and working with them to find (and train) a replacement will be looked on as very professional.  Plus, there is no real down side - you will continue to be employed (i.e. paid) while you either look for your next position, or work evenings to start your own code base.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write a polite, but minimal, resignation letter.  Say you plan to leave, effective an actual date, sign, date, and hand it in.  At that point, be prepared to discuss what your plans are, and/or why you are leaving.  Be honest, but again, be minimal.  Most importantly, leave all emotion out of it - business only.  Try to make the negatives sound like a positive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;DO NOT BURN BRIDGES.  Remember, you may have to work for or with some of these people again some day, and your reputation will follow you.  Also remember that these people, no matter how it turned out, were willing to hire you in the first place (and you were willing to work for them).&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-10-21T12:47:33.797" CommentCount="5" />
  <row Id="13493" PostTypeId="2" ParentId="13470" CreationDate="2010-10-21T12:47:58.830" Score="7" ViewCount="" Body="&lt;p&gt;Be a &lt;strong&gt;professional&lt;/strong&gt;, keep your head high no matter what the company does. Write a letter, give 2 weeks notice. It's a small world, ya never know what the future will bring. You could be back working for the same company or working for/with these same people at a later date.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-21T12:47:58.830" />
  <row Id="13494" PostTypeId="2" ParentId="262" CreationDate="2010-10-21T12:48:00.270" Score="3" ViewCount="" Body="&lt;p&gt;It depends on how the language will evolve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At present state Java is not very actractive as language. It was born to support one (and just one) paradigm: OOP.&#xA;It places itself somewhere midway between languages that permit higher level abstractions (like C++ and its metaprogramming features) and scripting languages with reflection capabilities (like the Python &quot;exec&quot; and &quot;dir&quot; commands) but somehow it fails to find its real place.&#xA;It's basically becoming obsolete as &quot;language&quot;. Weren't for the fact it's a de-facto standard on mobile devices I think it would be dead by now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the fact it's a good teaching language for OOP I have my doubts from what I can see: all Java-born programmers just spawn Visitor and Observer patterns everywhere but it's not that I have a great experience with Java programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still there is a lot of legacy code and on mobile devices it's a standard. That said I'd never choose Java for either a desktop or a web application. There is no reason to, apart business ones (most managers nod if you say &quot;Java&quot; and that is, I suppose, the reason it's a standard on mobile devices).&lt;/p&gt;&#xA;" OwnerUserId="4738" LastActivityDate="2010-10-21T12:48:00.270" CommunityOwnedDate="2011-03-14T15:05:05.090" CommentCount="2" />
  <row Id="13495" PostTypeId="2" ParentId="13470" CreationDate="2010-10-21T12:57:55.737" Score="7" ViewCount="" Body="&lt;p&gt;Be a professional when leaving in my opinion...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you go for the last two options in the rotten state of Denmark, they'll actually be able to drag you to court for doing so. Concerning the emails you are allowed to delete those that contain information you can find otherwise in the company according to the cases they have trialed here. If you delete files you have created while being employeed you are probably hitting a lawsuit about intellectual property vs business/company knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I had no contract I would give them a months notice, just like I have when I have a written contract. I would get them to sign a letter where I state when I quit, and when my last day in the company will be so there is no case of bugging me about that later on. The few times I have quit I haven't written anything about why, but I have always had another job at hand I could go to so it was pretty obvious that I went for greener grass :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Who should you go to...at the moment I have a manager and two bosses and I would probably go to the boss office and quit, or if the situation allows it I would bring the manager as well.&lt;/p&gt;&#xA;" OwnerUserId="564" LastActivityDate="2010-10-21T12:57:55.737" />
  <row Id="13497" PostTypeId="1" AcceptedAnswerId="13520" CreationDate="2010-10-21T13:02:42.387" Score="1" ViewCount="72" Body="&lt;p&gt;I am thinking of purchasing an Infragistics library for a project I'm working on, but I've never used a third-party library in my code before. Is it something you would recommend? Have you ever had any problems with them? What should I watch out for?&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-10-21T15:10:47.967" Title="What has been your experience with commercial third-party libraries?" Tags="&lt;experience&gt;&lt;third-party-libraries&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="13498" PostTypeId="2" ParentId="8748" CreationDate="2010-10-21T13:04:16.533" Score="1" ViewCount="" Body="&lt;p&gt;No, it won't lead to a &lt;em&gt;deficit&lt;/em&gt; of programmers with computer architecture knowledge. Languages are used to solve problems in a particular domain. If you want to solve a particular problem, you use the appropriate language or one good enough given your resources.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In reality, what domains actually need knowledge of the computer's architecture? That need to be tied down to a particular hardware architecture? Operating Systems? Device Drivers? Sure, but even then only parts of such code need specific architectural knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Performance improvement? Yes, you can apply knowledge of the computer's architecture to improve the performance of algorithms. But two other factors have a bigger impact on performance: the use of better algorithms and knowledge of the language's runtime environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In essence, more abstract programming languages solve problems for which details of the computer architecture isn't necessary. They allow more problems to be solved. The people that use them aren't using them to solve machine-dependent problems. People that need to solve machine-dependent problems will continue to use machine-capable languages. This isn't a zero-sum issue.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-21T13:04:16.533" />
  <row Id="13499" PostTypeId="2" ParentId="13470" CreationDate="2010-10-21T13:08:52.110" Score="2" ViewCount="" Body="&lt;p&gt;You may still be subject to your employer's contract even if you haven't signed it - check what your local employment law says before doing anything rash. If that's the case, or you want to play it safe, you should follow the procedure in that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're &lt;em&gt;sure&lt;/em&gt; that you have no contractual obligations, you should still think twice before burning your bridges. You may need a good reference from your employer; you may end up working with some of your colleagues again in the future; your successor may be a violent psychopath; your boss may have powerful friends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without a contract, I'd give written notice of perhaps two weeks, and spend the time making a reasonable effort to tidy up and document my work. Separately, I'd discuss the reasons for leaving, but wouldn't complain about my boss (or anyone else) unless there was a serious problem with them. Mild incompetence is endemic in middle management, and the only effective paths are to subtly educate your boss, put up with it, or move on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, make sure you have a new job lined up, or plenty of savings to live off. You may find that everywhere else you look is even worse...&lt;/p&gt;&#xA;" OwnerUserId="3748" LastActivityDate="2010-10-21T13:08:52.110" CommentCount="10" />
  <row Id="13500" PostTypeId="2" ParentId="13497" CreationDate="2010-10-21T13:09:49.830" Score="1" ViewCount="" Body="&lt;p&gt;My experience with third party libraries has been excellent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Granted, I don't know of the specific one you're mentioning as your example. I've used mostly numerical &amp;amp; plotting libraries (IMSL, NetLib, MKL, CalComp, IBM's StatPack) in the past, and in general, they've almost always shown themselves to be better than anything &lt;em&gt;the boys down the hall&lt;/em&gt; could patch up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's natural really, they live off it (third party libraries company), so it is in their best intentions to make it as good as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Advantages:&lt;br&gt;&#xA;- you don't have to write it (obviously)&lt;br&gt;&#xA;- they are usually better written than it would be written if you wrote it yourself (you're making it for yourself, they're making it for everybody ... i.e. a function)&lt;br&gt;&#xA;- names, &quot;way of work&quot; are consistent, and intuitive after a brief period of &quot;getting into&quot;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disadvanages:&lt;br&gt;&#xA;- price, of course&lt;br&gt;&#xA;- they're usually closed source (but authors are almost always ready to take comments if you think something is not working properly)  &lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-21T13:09:49.830" />
  <row Id="13501" PostTypeId="1" CreationDate="2010-10-21T13:10:49.670" Score="1" ViewCount="49" Body="&lt;p&gt;I have a reel-to-reel magnetic tape which I got from my college days which I think contains the files from my home directory back then.  I don't remember which machine it came from but it would have been either a DEC-20 or a VAX 11/780.  Is there any hope of me reading these files?&lt;/p&gt;&#xA;" OwnerUserId="4526" LastActivityDate="2010-10-21T13:10:49.670" ClosedDate="2010-10-21T14:22:24.727" Title="get files off ancient reel-to-reel magnetic tape" Tags="&lt;old-software&gt;" CommentCount="3" />
  <row Id="13502" PostTypeId="1" CreationDate="2010-10-21T13:12:45.987" Score="2" ViewCount="308" Body="&lt;p&gt;What is the oldest software that is still being sold &lt;strong&gt;as new&lt;/strong&gt; in its original form (not updated)?&lt;/p&gt;&#xA;" OwnerUserId="4526" LastEditorUserId="4526" LastEditorDisplayName="" LastEditDate="2010-10-21T15:17:07.827" LastActivityDate="2010-10-21T16:43:43.520" ClosedDate="2010-10-21T17:17:39.533" Title="most ancient software still being sold unchanged" Tags="&lt;software&gt;" AnswerCount="6" CommentCount="5" />
  <row Id="13503" PostTypeId="1" AcceptedAnswerId="13504" CreationDate="2010-10-21T13:15:36.667" Score="14" ViewCount="402" Body="&lt;p&gt;One of the joys of programming is having the opportunity to always learn new things. However, as I'm becoming more senior, I'm noticing that its easy when you get 5-10 years of primarily C++ (or whatever) experience to find that most job opportunities available to you are C++ jobs. How does one break this mold? What strategies should one employ to jump the rails so-to-speak to a different area when one has spent a good bit of their profession career in one specific environment? Lower salary expectations? Find entry level jobs? Is that even an option when one already has a bunch of experience?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a feeling one answer will be to do a lot of self-study. Personal projects is definitely something that is on my resume. However I fear employers want to see the sustained, professional experience. Will the half-dozen python/C#/whatever projects I've done in my own time matter?&lt;/p&gt;&#xA;" OwnerUserId="980" LastEditorUserId="980" LastEditorDisplayName="" LastEditDate="2010-10-21T13:23:11.253" LastActivityDate="2010-11-12T14:03:57.147" Title="Best way for a senior programmer to switch languages/environments in next job?" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="9" FavoriteCount="5" />
  <row Id="13504" PostTypeId="2" ParentId="13503" CreationDate="2010-10-21T13:30:24.890" Score="11" ViewCount="" Body="&lt;p&gt;Contributing to open source software could be a good solution.  That way you can gain experience in the new language in an quasi professional environment.  At the end of the day you will also have something more substantial to show for you work than the random python tool you threw together with a couple weekends worth of work.  Depending on the project you choose and your work, you might also come away with some valuable references who could speak on your behalf.&lt;/p&gt;&#xA;" OwnerUserId="5837" LastEditorUserId="5837" LastEditorDisplayName="" LastEditDate="2010-11-12T14:03:57.147" LastActivityDate="2010-11-12T14:03:57.147" />
  <row Id="13505" PostTypeId="2" ParentId="13502" CreationDate="2010-10-21T13:35:19.637" Score="-1" ViewCount="" Body="&lt;p&gt;As per my knowlege, from india, Tally Accounting Software is one of the most old software which used it many places till now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Tally_Solutions&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Tally_Solutions&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="622" LastActivityDate="2010-10-21T13:35:19.637" CommentCount="5" />
  <row Id="13506" PostTypeId="2" ParentId="13470" CreationDate="2010-10-21T13:36:07.640" Score="7" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Write a letter.  It doesn't need to be long, and should not go into details of why you're unhappy (if in fact you are).  &quot;I am resigning effective (current date plus two weeks) in order to pursue other opportunities&quot;.  Be nice, even if you have to lie - something to the effect of &quot;I am grateful for the opportunities which have been afforded me at (current place of employment), but feel that my career goals will best be met elsewhere&quot;.  DO NOT SAY &quot;Everyone at this company is a total waste of oxygen, I hate you all, and the bomb goes off in ten minutes!&quot; - this will only cause hard feelings.  It should be hand delivered, hard-copy and in person.  Doesn't have to be in an envelope, etc, but resigning by email or phone is IMO tacky and gutless if you work in the same office.  (I've resigned over the phone before, but A) I didn't work in the same location as my boss, B) we had a good relationship anyways, and C) it was a contracting firm so resignations were pretty common).&lt;/li&gt;&#xA;&lt;li&gt;Do not tell them where you are going, especially if you feel they may be vindictive.  You are under no obligation to do so.&lt;/li&gt;&#xA;&lt;li&gt;Two weeks notice is customary in order to wrap up current tasks.  However, don't be surprised if they show you the door immediately.&lt;/li&gt;&#xA;&lt;li&gt;Do not accept a counter-offer unless your principle reason for leaving is low pay, in which case the counter would have to be significantly more than the place you plan to go to.&lt;/li&gt;&#xA;&lt;li&gt;Do not delete business-related emails or documents - these are the property of the business.  Stuff from your mom, girlfriend, etc, should be deleted BEFORE you turn in your notice (because they may cut off your computer access and pitch you out the door immediately - hey, it happens).&lt;/li&gt;&#xA;&lt;li&gt;Turn your notice in to your boss.  Don't tell him you hate his stinking guts and hope he rots in hell, even in you do - burnt bridges never helped anyone.  If you think your boss may be vindictive or lie you might want to blind-copy your boss's boss on your resignation letter - this is about the ONLY time I would ever BCC anybody.&lt;/li&gt;&#xA;&lt;li&gt;Remember the military maxim - &quot;Seize and hold the high ground&quot; - at least then they have to actively lie to say bad things about you.  Be polite, nice, and &quot;let them down easy&quot;.  It may help to say something like &quot;I'm sure we'll remain friends&quot; even if you hope to never see them again.  Words like &quot;I've learned a lot here&quot; can help, as can &quot;I will always respect the integrity of this firm&quot;, even if they're a bunch of despicable, lying bastards who would sell their own children for pocket change.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Good luck, and have fun at your new job.&lt;/p&gt;&#xA;" OwnerUserId="4848" LastActivityDate="2010-10-21T13:36:07.640" CommentCount="1" />
  <row Id="13507" PostTypeId="2" ParentId="13503" CreationDate="2010-10-21T13:36:38.323" Score="3" ViewCount="" Body="&lt;p&gt;You could look at more senior roles - not necessarily management ones - where there is less emphasis on coding skills more on design and architecture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These skills are to a large extent transferable between languages and environments, so your lack of experience in the new language shouldn't be such a great handicap.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can show familiarity with the language - which is where open source or your own project come in - then this will count in your favour too.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-21T13:36:38.323" />
  <row Id="13508" PostTypeId="2" ParentId="13503" CreationDate="2010-10-21T13:37:50.987" Score="2" ViewCount="" Body="&lt;p&gt;Some employers want to see proven ability with their language/domain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Others are more interested in proven ability to think, work with large projects, adapt to changing language/environment/application requirements - the current language that you know or don't know isn't so important, since if you meet their general criteria, you can learn enough to get started in a few weeks. These are the employers that you are looking for. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personal projects, involvement on online forums, open source, along with good career track record and references (not to mention a blog) are all positive contributing factors.&lt;/p&gt;&#xA;" OwnerUserId="4403" LastActivityDate="2010-10-21T13:37:50.987" />
  <row Id="13511" PostTypeId="2" ParentId="13383" CreationDate="2010-10-21T13:48:54.307" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Visual Studio 2010 Productivity Power Tools&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef?SRC=Home&quot; rel=&quot;nofollow&quot;&gt;http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef?SRC=Home&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A set of extensions to Visual Studio Professional (and above) which improves developer productivity. In this second major release of the Power Tools we have added the following four extensions: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tools Options Support&#xA;The number one feature request by far has been the ability to turn off the individual extensions in the Productivity Power Tools.  In this release, we’ve added an extension which adds a category to Tools Options which allows you to toggle the extensions on/off and provides a single place to find the options for a particular extension.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Solution Navigator  (More Info)&#xA;Solution Navigator is a new tool window that acts like an enhanced Solution Explorer.  With it, you can:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* Expand code files to navigate to its classes, expand classes to navigate to their members, and so on (C# and VB only)&#xA;* Search your solution, all the way down to class members&#xA;* Filter your solution or projects to see just opened files, unsaved files, and so on&#xA;* View related information about classes and members (such as references or callers/callees for C#)&#xA;* Preview images by hovering over them, or preview rich information by hovering over code ite &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In other words, it merges functionality from Solution Explorer, Class View, Object Browser, Call Hierarchy, Navigate To, and Find Symbol References all into one tool window!&#xA;Note that the tool window doesn’t (yet) support everything that Solution Explorer supports, such as multiselect and drag-and-drop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Solution Navigator also provides interactive tooltips in C# and VB code (replacing the default “quick info” tooltips) that give you the same kind of data, but right at your fingertips.  In addition to getting the tooltips on hover, you can: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* Press Ctrl+1 to open a relevant tooltip at the current cursor location&#xA;* Press Ctrl+2 to quickly navigate to any class/member in the current source file &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Quick Access  (More Info)&#xA;Quick Access is a new tool window that allows users to search for and execute common tasks within the Visual Studio IDE.  Not sure where a particular menu command is located?  Want a quick way to create a new Silverlight project? By using Quick Access, you can efficiently find and execute common VS operations without taking your hands off the keyboard.  Quick Access allows users to:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* Execute Main Menu and Context Menu commands&#xA;* Open the New Project Dialog with a specific Project Template selected&#xA;* Show a tool window&#xA;* Jump to a Visual Studio Options page&#xA;* Navigate to an open document in your Tab Well&#xA;* Create and execute a series of actions (task)   &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;To use, press Ctrl+3 to launch Quick Access, type in your search term (e.g., “debug”), and press Enter on the desired result.  If your search term returns too many results, continue pressing Ctrl+3 to cycle through each category of results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Auto Brace Completion&#xA;Automatic Brace Completion improves the productivity of writing code by automatically inserting the closing code construct when the opening construct is typed for VB &amp;amp; C#.  More specifically, this extension:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* Supports the following constructs: (), {}, [], &amp;lt;&amp;gt;, “”, and ‘’. &#xA;* Allows you to press &amp;lt;TAB&amp;gt; to navigate past the next enclosing brace&#xA;* Allows you to automatically complete a statement in C# by inserting the closing semi-colon and moving you to the next line with SHIFT + ENTER &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The extensions from the previous Producitivity Power Tools have been included and improved. See the revision notes at the end of this post:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tab Well UI  (More Info)&#xA;This extension allows you to completely customize the behaviour of your document tabs from the Productivity Power Tools Options:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* Scrollable tabs&#xA;  Maintain spatial consistency of the documents that are included in the document well.&#xA;* Vertical tabs&#xA;  Document tabs are shown vertically, allowing you to fit more tabs than are normally visible when shown horizontally.&#xA;* Pinned tabs&#xA;  Allows you to pin tabs to keep them always visible and available.&#xA;* Show close button in tab well&#xA;  Similar to Visual Studio 2008, will show a close button in the document well that will close the active tab.&#xA;* Tab Behavior&#xA;      o Remove tabs by usage order (LRU)&#xA;        When a new tab is inserted and existing tabs don't fit in the document well, instead of removing the tab at the end of the well it will remove the least recently used tab. This ensures that frequently used tabs are readily available.&#xA;      o Show pinned tabs in a separate row/column&#xA;        Pinning tabs can quickly cause you to run out of space for regular tabs. The option allows you to always show pinned tabs in a separate row (or column, if displayed vertically) from regular tabs.&#xA;      o Sorting&#xA;            + Sort tabs by project&#xA;              Tabs will be sorted by the project they belong to, thus keeping them always together in the document tab well.&#xA;            + Sort tabs alphabetically&#xA;              Tabs will be sorted alphabetically. When Sort By Project is turned on, tabs will be sorted first by project and then alphabetically.&#xA;            + Sort tab well dropdown alphabetically&#xA;              The drop down menu at the right end of the document well is sorted alphabetically. This option allows ordering as the tabs are laid out in the document well. &#xA;* Tab UI&#xA;      o Color tabs according to their project or according to regular expressions&#xA;        This option permits tabs to be colored according to the project they belong to. This is particularly useful when sorting tabs by project, as it allows you to immediately identify different groups of project documents.&#xA;        You can also configure regular expressions and assign a color to each one. If the name of a tab matches the configured regular expression, it will be colored with the assigned color. &#xA;* Miscellaneous options that modify tab UI&#xA;      o Show document/toolwindow icon in tab&#xA;      o Show close button in tab&#xA;      o Modify dirty indicator style&#xA;        This option allows you to select from a set of different dirty indicators that you might prefer over the asterisk.&#xA;      o Modify minimum and maximum tab size&#xA;        Allows you to modify minimum and maximum tab size. Try setting minimum and maximum sizes to the same value, and you will have evenly spaced tabs. &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Searchable Add Reference Dialog (More Info)&#xA;The new Add Reference dialog makes it faster and easier for you to find the reference that you are looking for and add it to your VB, C# or F# project.  From the Solution Explorer, simply right click on the References node, select the Add Reference command to see the updated Add Reference Dialog. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Highlight Current Line&#xA;As the resolution of monitors increases, it’s becoming more difficult to find the caret in the code editor.  The highlight current line extension makes it easy to find the caret by highlighting the line that the caret is on in the editor.  You can even configure the default colour by changing the setting for “Current Line (Extension)” and “Current Line Inactive (Extension)” in Tools Options Fonts &amp;amp; Colors. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;HTML Copy (More Info)&#xA;This extension provides support for the HTML Clipboard format when cutting or copying code from the editor.  This means that you’ll no longer have to go fix up the formatting of your code when you paste it into a TFS bug form or any other HTML based control. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Triple Click&#xA;It’s never been easier to select a line of code from the mouse by simple triple-clicking anywhere on the line. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fix Mixed Tabs&#xA;Some developers prefer tabs, others prefer spaces, and nobody likes mixing tabs &amp;amp; spaces.  This extension promotes developer harmony by warning as they are open or save a file that has a mixture of tabs &amp;amp; spaces.  The information bar also provides an easy way to fix the file to suit your preference. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ctrl + Click Go To Definition&#xA;This extension gives the editor a web browser by adding clickable hyperlinks to symbols in your code as you hold down the Ctrl key.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Align Assignments&#xA;This extension is useful for making your code a little more readable by aligning the assignments when you type Ctrl+Alt+] such that it takes this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And turns it into this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please note: This may conflict with your formatting settings. E.g. in C# you will need to disable: Tools-&gt;Options-&gt;Text Editor-&gt;C#-&gt;Formatting-&gt;Spacing-&gt;&quot;Ignore spaces in declaration statements&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Move Line Up/Down Commands&#xA;This extension maps the Alt+Up Arrow &amp;amp; Alt+Down Arrow keys such that they will move the current line of code or the selected lines up and down through the editor. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Column Guides&#xA;Since Visual Studio 2002, there has been a not so secret registry key which allowed user to draw a vertical line in the code editor.  This is very useful to remind developers that their full line of code or comments may not fit one a single screen. Thanks to this extension this feature has returned with UI configure it.  Simply place the cursor at the appropriate column and select Add Guideline from the context menu &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Colorized Parameter Help&#xA;This extension improves consistency with the editor by applying syntax highlighting to the contents of the Parameter Help window for C# &amp;amp;VB.&#xA;Please note: Syntax highlighting colors can be customized using the display items prefixed with “Signature Help” in the “Fonts and Colors” menu.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For more addons&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/&quot; rel=&quot;nofollow&quot;&gt;http://visualstudiogallery.msdn.microsoft.com/en-us/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="622" LastActivityDate="2010-10-21T13:48:54.307" />
  <row Id="13512" PostTypeId="1" AcceptedAnswerId="13544" CreationDate="2010-10-21T13:49:49.997" Score="11" ViewCount="535" Body="&lt;p&gt;So I just started at this company right out of college about a half a year ago. I'm doing ASP.NET MVC, VB.NET, SQL, the whole sha-bang.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The company pays well (for a new graduate), but I know I could be making more out there, especially in the C# world (which I came from). Now I have only been here for 6 months, so I thought I would look like a job hopper if I left, but it's my first job so would I really?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I really hate the way this company treats its employees. Some guys here work upwards up 75 hours a week and they really don't even get any recognition for it. This company promises features and releases to its customers before they even understand the scope, and then all of our backs are against the wall.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know there's a very good chance that I could get at least 5k more per year by switching. What do you guys think?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Scott&lt;/p&gt;&#xA;" OwnerUserId="3577" LastActivityDate="2010-10-21T21:37:29.557" Title="Serious Question about my career" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="10" CommentCount="7" FavoriteCount="4" />
  <row Id="13513" PostTypeId="2" ParentId="13503" CreationDate="2010-10-21T14:04:31.167" Score="7" ViewCount="" Body="&lt;p&gt;I think one way forward is to find an employer who is using multiple technologies on the same project- which if you have C or C++ is quite plausible because that's often how bottlenecks are solved in scripting languages. That would make your existing skill set an asset but also mean that you would have the chance to diversify more in future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you explained your situation in an interview I think most employers would be fine with that.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-21T14:04:31.167" CommentCount="1" />
  <row Id="13514" PostTypeId="2" ParentId="13502" CreationDate="2010-10-21T14:05:02.897" Score="2" ViewCount="" Body="&lt;p&gt;Not that long ago, I bought TRS-80 software for my wife to run on an emulator (she was nostalgic about the Scrabble game, basically), so that's 25-30 years.  It wasn't sold from the original source, if that matters.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-21T14:05:02.897" />
  <row Id="13515" PostTypeId="1" CreationDate="2010-10-21T14:09:21.060" Score="5" ViewCount="289" Body="&lt;p&gt;I am a developer a fairly large firm of programmers (100+). Since there are several departments and several teams within each department; communication is an issue regarding: sharing of ideas, availability of resources/tools, use of good/bad coding practices, awareness of existing utilities, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What social networks (Facebook/StackExchange) are out there that are used 'in-house' for work related communications? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What business cases could be used to help senior management see the value of a resource like this for increased productivity?&lt;/p&gt;&#xA;" OwnerUserId="5400" LastActivityDate="2010-12-12T00:39:04.780" Title="Do social networks increase development productivity?" Tags="&lt;productivity&gt;&lt;work-environment&gt;&lt;management&gt;&lt;communication&gt;&lt;co-workers&gt;" AnswerCount="6" CommentCount="2" />
  <row Id="13516" PostTypeId="2" ParentId="13497" CreationDate="2010-10-21T14:13:02.003" Score="1" ViewCount="" Body="&lt;p&gt;Make sure you shop around, and evaluate all the trial versions that are available first. I used an SFTP library and the upload rates between the different libraries varied quite considerably. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found that price does not neccessarily relate to quality / performance so make use of the trial versions before making a decision would be my advice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, you're usually safe with one of the big names: Rebex, Infragistics, Telerik.....&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-10-21T14:13:02.003" />
  <row Id="13517" PostTypeId="1" AcceptedAnswerId="13631" CreationDate="2010-10-21T14:13:33.720" Score="4" ViewCount="107" Body="&lt;p&gt;I am a very experienced SQL Server developer who is being thrust into an Oracle heavy environment.  I want very much to start being useful and productive and need to get up to speed.  I can read the PL/SQL without much of a problem (although a lot of it is written old school without inner and outer join syntax).  Writing is is still very slow for me and the old time Oracle developers are always redoing my code.  They look upon my TSQL experience as almost an impediment instead of a bonus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any recommendations on decent tutorials.  Online would be great but I like books as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance!&lt;/p&gt;&#xA;" OwnerUserId="2312" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-21T19:35:36.737" LastActivityDate="2011-04-13T17:20:27.560" Title="Oracle Tutorial" Tags="&lt;recommendations&gt;&lt;sql&gt;&lt;oracle&gt;&lt;tutorial&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="13518" PostTypeId="2" ParentId="13424" CreationDate="2010-10-21T14:17:48.417" Score="-1" ViewCount="" Body="&lt;p&gt;I work with Delphi and even at about a million lines of code... which are the most project i have to compile, i do it at most in a minute so i really don't have this problem yet :)&lt;/p&gt;&#xA;" OwnerUserId="850" LastActivityDate="2010-10-21T14:17:48.417" />
  <row Id="13519" PostTypeId="2" ParentId="13512" CreationDate="2010-10-21T14:18:19.810" Score="3" ViewCount="" Body="&lt;p&gt;Welcome to the real world of professional programming.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What do you guys think?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you should quit your job?? I would never say that. Take some personal days to go on interviews. Remember that you could be jumping out of the frying pan and into the fire. Your complaints are common across the industry so don't be surprised if your in a similar situations six months into your new job (save 75 hours a week which is insanity) (or maybe you'll be laid off and wish you never left this one).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, your primary motivation appears to be $5000. I certainly hope you didn't get into the business for that. We all want to make more money but would you take a job at a company right now if they gave you plenty of recognition, didn't make you work overtime but paid you $5000 &lt;strong&gt;less&lt;/strong&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assess your priorities, always try to maintain a stranglehold on perspective and proceed carefully. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wish you the very best of luck.&lt;/p&gt;&#xA;" OwnerUserId="3881" LastEditorUserId="3881" LastEditorDisplayName="" LastEditDate="2010-10-21T15:17:49.383" LastActivityDate="2010-10-21T15:17:49.383" CommentCount="5" />
  <row Id="13520" PostTypeId="2" ParentId="13497" CreationDate="2010-10-21T14:21:47.943" Score="1" ViewCount="" Body="&lt;p&gt;Generally good, but I've had exceptions.  The best and worst support I've gotten was from commercial software places.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The software will almost always be better than what you would write, and cheaper (if you value development time).  It may not meet your needs, but that's something you should check before you buy.  If the vendor doesn't have a way for you to evaluate the software before buying, that's a warning sign.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The safest way is to buy software from a company that's in the software business and has been in it for a while.  If the company can live off what they make, they must be providing good software and good support.  Software from vendors that get their primary income from other things may or may not be good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look for reviews, but be aware that reviews are also written by fanboys, irrational people with an axe to grind, people paid by the company (sometimes), and competitors.  Unless you get a review from a source you trust, use the reviews to come up with things you want to specifically evaluate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider the policy on source code.  Some library vendors include source code, perhaps at extra cost, some don't.  The value of source code is not usually so much in modifying it as in recompiling it on different or updated platforms, so it's largely a matter of future-proofing.  You may want to inquire about source code escrow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, don't be too cost-conscious.  What would two months of developer time cost you?  You can get some good libraries for less than that, and they'll be far better than what anybody could do in two months.  If you need it, and it's for sale, it's almost always better to buy than build.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-21T14:21:47.943" />
  <row Id="13521" PostTypeId="2" ParentId="13515" CreationDate="2010-10-21T14:23:14.390" Score="0" ViewCount="" Body="&lt;p&gt;Try &lt;a href=&quot;http://yammer.com&quot; rel=&quot;nofollow&quot;&gt;Yammer&lt;/a&gt; - kind of like private Twitter only for people in your company (sharing same email domain).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would definitely avoid social networks like Facebook when it comes to business-related communications. Not a good idea to mix business and personal (and even if it was approved, I think that it may be challenging to have it aid productivity).&lt;/p&gt;&#xA;" OwnerUserId="4403" LastActivityDate="2010-10-21T14:23:14.390" CommentCount="2" />
  <row Id="13522" PostTypeId="2" ParentId="13515" CreationDate="2010-10-21T14:25:40.493" Score="0" ViewCount="" Body="&lt;p&gt;IMO, industry-specific forum/Q&amp;amp;A sites like SO and SE increase productivity - indeed, they're increasingly the top hit in Search Results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also think that sites like Facebook, Twitter, Bebo, Tumblr, MySpace are so full of incredible attention-seeking distractions that they're just bad news when you're trying to get things done. Oh yeah, and potential security threats too - XSS attacks etc.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-21T14:25:40.493" />
  <row Id="13523" PostTypeId="2" ParentId="13515" CreationDate="2010-10-21T14:26:03.253" Score="11" ViewCount="" Body="&lt;p&gt;I may be old school when it comes to programming and the work environment but I cannot see &lt;strong&gt;ANY&lt;/strong&gt; value in this to  increase productivity.  All that using social networks will do is increase the number and triviality of interruptions that have a disastrous effect upon productivity and the quality of the code that you produce.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want ideas for improving the work environment and productivity then get management to give all of the programmers private offices, twin/triple screen computers and comfortable chairs.  These will all pay for themselves in very short order in faster development and higher quality products.  See the data in &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0932633439&quot; rel=&quot;nofollow&quot;&gt;Lister and DeMarco's book Peopleware.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have to have the company chat program on my machine. (like MSN Messenger).  This is a productivity killer and my status is normally set to &quot;Away&quot; just to get rid of the interruptions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to know about good/bad practices in development in your company then read the company coding standard document (you do have one, don't you?), use the version control system daily and read books like &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735619670&quot; rel=&quot;nofollow&quot;&gt;Code Complete by steve Mcconnell.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com&quot;&gt;Stack Overflow&lt;/a&gt; is a great resource for getting answers to questions and there is a large group of very capable programmers who can answer most things - if you ask good questions with sufficient detail to allow a good answer to be worked out.&lt;/p&gt;&#xA;" OwnerUserId="5877" LastActivityDate="2010-10-21T14:26:03.253" CommentCount="2" />
  <row Id="13524" PostTypeId="2" ParentId="13515" CreationDate="2010-10-21T14:26:05.263" Score="2" ViewCount="" Body="&lt;p&gt;I would definitely say no they don't. Too many distractions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for your other question about something to use for in-house work-related communications, we use &lt;a href=&quot;http://wave.google.com&quot; rel=&quot;nofollow&quot;&gt;Google Wave&lt;/a&gt;. I know they're going to stop hosting/supporting it at the end of the year but I was told we can still set it up on our own network to keep using&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-10-21T14:26:05.263" />
  <row Id="13525" PostTypeId="2" ParentId="13470" CreationDate="2010-10-21T14:27:09.163" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;How do programmers quit a job?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;myJob.Abort()? :-)&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-21T14:27:09.163" CommentCount="3" />
  <row Id="13526" PostTypeId="1" CreationDate="2010-10-21T14:27:40.273" Score="14" ViewCount="282" Body="&lt;p&gt;Professions like art, history and literature have countless museums in their honor, but even regular non-entertaining fields like transportation and medicine have some destinations that could be of interest to the enthusiast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What about programming ? Are there any places of interest or historic significance that could amuse people with an interest in programming ?&lt;/p&gt;&#xA;" OwnerUserId="153" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-21T15:57:56.077" LastActivityDate="2011-05-09T19:37:21.510" Title="Places of historic significance in the field of programming ?" Tags="&lt;education&gt;&lt;history&gt;&lt;entertainment&gt;" AnswerCount="10" CommentCount="3" FavoriteCount="3" />
  <row Id="13527" PostTypeId="2" ParentId="13512" CreationDate="2010-10-21T14:28:29.233" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Also, I really hate the way this company treats its employees&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Do you hate how they treat you? Do you find the work rewarding? Or are you annoyed at having to work 75 hours/week with no recognition, answering to people who don't understand what you do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The tone of your question suggests that you want out. If so, try the market - if you are asked about your short tenure, then you can be honest (use your answer to that question as a way of feeling out your potential future employer's sensitivity to such issues - if they see your attitude in this are as being negative, it is a good sign that it is not the place for you).&lt;/p&gt;&#xA;" OwnerUserId="4403" LastActivityDate="2010-10-21T14:28:29.233" />
  <row Id="13528" PostTypeId="2" ParentId="13512" CreationDate="2010-10-21T14:28:32.010" Score="0" ViewCount="" Body="&lt;p&gt;I think after college, the best place you could be is place where you're learning a lot and it's not really about the pay...do you feel you're learning a lot even though the treatment and the compensations are not so good? I am working with a small firm and i know a number of my friends who are doing less than i am doing and have less responsibility that i do at the moment but seriously i don't envy them. You see, even though I wish I could be making much more I really love what I am doing and I am learning the exact stuff I wanted to know about software development and I am content and happy with it. So at the end of the day, it's not what we really think but it's what you really want out of your job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All the Best!&lt;/p&gt;&#xA;" OwnerUserId="850" LastActivityDate="2010-10-21T14:28:32.010" />
  <row Id="13529" PostTypeId="2" ParentId="13502" CreationDate="2010-10-21T14:30:07.453" Score="0" ViewCount="" Body="&lt;p&gt;I won't give an example, since I cannot think of any at the moment, but will try instead to consider what requisites that software should adhere to, to make it for the answer. This is boviously not a proper answer, and it shouldn't be considered as such, but the problem is this won't fit in the comments box, so I'm putting it here. Treat it as a comment, will'ya? ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, chances are small that that software is made for Windows platform; that OS changes every 5 years or so. Even though XP could run software of, I don't know, Win95 unchanged, chances are that if it is sold, that it is unchanged, are negligible. Same goes for Mac's too. *nix family - chances are increasing here, but it is a relatively dynamic platform - even if software is sold, chances of it being unchanged for a longer period are pretty slim. The fact is, that &lt;em&gt;long-term-running&lt;/em&gt; + &lt;em&gt;being sold&lt;/em&gt; are direct opposites of &lt;em&gt;not-being-updated&lt;/em&gt;. Otherwise, everyone who wants it buys it, and the company goes down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is plenty of software however, that its starting date is very old, it is still being sold, but it is(!) being updated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software for embeeded devices have a similar timeline; it &lt;em&gt;needs&lt;/em&gt; to be updated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My guess on the original question goes to software that's part of larger systems - powerplants, ships (before they had regular PCs on board), satellites; today's versions will be an update of the old ones, but the companies will in all chances still sell the old versions, due to the chances of let's say, ship needing a overhaul.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-21T14:30:07.453" />
  <row Id="13530" PostTypeId="2" ParentId="13526" CreationDate="2010-10-21T14:31:40.890" Score="5" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://en.wikipedia.org/wiki/University_of_Pennsylvania_School_of_Engineering_and_Applied_Science&quot; rel=&quot;nofollow&quot;&gt;School&lt;/a&gt; of Engineering and Applied Science (formerly Moore School of Engineering) at the University of Pennsylvania has on display a remnant of &lt;a href=&quot;http://en.wikipedia.org/wiki/ENIAC&quot; rel=&quot;nofollow&quot;&gt;ENIAC&lt;/a&gt; (&quot;the first general-purpose, electronic computer&quot;).&lt;/p&gt;&#xA;" OwnerUserId="4403" LastActivityDate="2010-10-21T14:31:40.890" />
  <row Id="13531" PostTypeId="2" ParentId="13512" CreationDate="2010-10-21T14:32:16.140" Score="1" ViewCount="" Body="&lt;p&gt;Is there a conflict in your personality and workplace? If its more about the money, I'm sorry, good luck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it is not, remember that the culture is key to a fulfilling work experience. Programming is a versatile skill and can be applied to any business. Look for something that fits your &lt;a href=&quot;http://en.wikipedia.org/wiki/Holland_Codes&quot; rel=&quot;nofollow&quot;&gt;work personality&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Realistic&lt;/strong&gt; - practical, physical, hands-on, tool-oriented&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Investigative&lt;/strong&gt; - analytical, intellectual, scientific, explorative&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Artistic&lt;/strong&gt; - creative, original, independent, chaotic&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Social&lt;/strong&gt; - cooperative, supporting, helping,&#xA;healing/nurturing&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Enterprising&lt;/strong&gt; - competitive environments, leadership, persuading&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Conventional&lt;/strong&gt; - detail-oriented, organizing, clerical&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5400" LastActivityDate="2010-10-21T14:32:16.140" />
  <row Id="13532" PostTypeId="2" ParentId="13526" CreationDate="2010-10-21T14:40:24.450" Score="8" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://www.computerhistory.org/visit/&quot; rel=&quot;nofollow&quot;&gt;Computer History Museum&lt;/a&gt; in Mountain View, California, USA, as its web site states, &quot;offers a wide variety of information, exhibits, research and a rich library of multimedia content garnered from some of the most influential people of the computing era. Take some time to dig deeper into computing history and the one-of-a-kind information available here.&quot;&lt;/p&gt;&#xA;" OwnerUserId="4982" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-21T14:57:48.887" LastActivityDate="2010-10-21T14:57:48.887" CommentCount="4" />
  <row Id="13533" PostTypeId="2" ParentId="13526" CreationDate="2010-10-21T14:41:04.933" Score="20" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Bletchley_Park&quot; rel=&quot;nofollow&quot;&gt;Bletchley Park&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/I9kkc.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Charles_Babbage_Institute&quot; rel=&quot;nofollow&quot;&gt;Charles Babbage Institute&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-21T14:41:04.933" CommentCount="6" />
  <row Id="13536" PostTypeId="1" AcceptedAnswerId="13542" CreationDate="2010-10-21T14:45:32.253" Score="0" ViewCount="68" Body="&lt;p&gt;Would it be useful to have experience in multiple programming languages/frameworks/stacks when applying for a software architect role?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, combining experience in C#/.NET with Java/J2EE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How valuable would the above be, in this context?&lt;/p&gt;&#xA;" OwnerUserId="5879" LastActivityDate="2010-10-21T15:42:21.510" Title="Would experience in multiple programming languages/frameworks assist one in becoming a software architect?" Tags="&lt;programming-languages&gt;&lt;career&gt;&lt;architecture&gt;&lt;enterprise-architecture&gt;" AnswerCount="3" />
  <row Id="13537" PostTypeId="2" ParentId="9043" CreationDate="2010-10-21T14:47:16.133" Score="0" ViewCount="" Body="&lt;p&gt;I need a professional to develop an application that runs on the server, and syncs with PDA.&#xA;the application is equal to see this video:&#xA;&lt;a href=&quot;http://www.neumann-neumann.de/film_en_eqss.html&quot; rel=&quot;nofollow&quot;&gt;http://www.neumann-neumann.de/film_en_eqss.html&lt;/a&gt;&#xA;if you have a team and want to send me the budget, if you have no conditions and you know someone let me know.&#xA;Thanks,&#xA;Gomes&lt;/p&gt;&#xA;" LastActivityDate="2010-10-21T14:47:16.133" />
  <row Id="13538" PostTypeId="2" ParentId="13526" CreationDate="2010-10-21T14:50:22.853" Score="4" ViewCount="" Body="&lt;p&gt;The Smithsonian Institution Museum of American History in D.C. has a pretty impressive set of &lt;a href=&quot;http://americanhistory.si.edu/collections/comphist/&quot; rel=&quot;nofollow&quot;&gt;exhibits&lt;/a&gt; regarding the history of computers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I remember correctly, they even have the original Wooden Apple-1 computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/q2zAa.jpg&quot; alt=&quot;The Apple-1&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update: That first link threw some (ironic) ColdFusion errors on a lot of the sub-links. Here is a more reliable page talking about the exhibit: &lt;a href=&quot;http://americanhistory.si.edu/collections/subject_detail.cfm?key=32&amp;amp;colkey=11&quot; rel=&quot;nofollow&quot;&gt;Computers &amp;amp; Business Machines Exhibit&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="287" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-10-22T14:45:43.003" LastActivityDate="2010-10-22T14:45:43.003" CommentCount="5" />
  <row Id="13539" PostTypeId="2" ParentId="11486" CreationDate="2010-10-21T14:51:00.650" Score="1" ViewCount="" Body="&lt;p&gt;How long can you keep the code good?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can maintain quality over a significant period of time, including changes to functionality, by frequent refactoring, you must certainly have developed a high level of skill.&lt;/p&gt;&#xA;" OwnerUserId="5879" LastActivityDate="2010-10-21T14:51:00.650" />
  <row Id="13540" PostTypeId="1" AcceptedAnswerId="13648" CreationDate="2010-10-21T14:53:23.750" Score="10" ViewCount="533" Body="&lt;p&gt;There are many masters degree programs in computer science online offered by reputable organizations. However, I've found very few bachelors only degree programs offered by non for-profit institutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am looking for a degree in computer science and also any programs for entrepreneurship/management or algorithmic trading.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found only 2 programs so far that fit:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.regis.edu/regis.asp?sctn=cpcis&amp;amp;p1=ap&amp;amp;p2=cs&amp;amp;p3=ol&quot; rel=&quot;nofollow&quot;&gt;http://www.regis.edu/regis.asp?sctn=cpcis&amp;amp;p1=ap&amp;amp;p2=cs&amp;amp;p3=ol&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://depaul.edu&quot; rel=&quot;nofollow&quot;&gt;http://depaul.edu&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Requirements:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;100% online undergraduate non-profit&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Options: Bachelor of Science Bachelor of Arts&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bonuses: accelerated recognized ABET cost effective&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update:&#xA;I've answered my question with a list. If anyone knows an online program that combines skills in entrepreneurship (getting capital, starting a business) or algorithmic trading with a computer program that would be ideal.. maybe too much to ask though &lt;/p&gt;&#xA;" OwnerUserId="5882" LastEditorUserId="5882" LastEditorDisplayName="" LastEditDate="2010-10-22T01:49:56.177" LastActivityDate="2010-11-09T01:21:27.770" Title="Not-for-profit universities that offer computer science undergraduate degree online?" Tags="&lt;education&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="4" />
  <row Id="13541" PostTypeId="2" ParentId="13526" CreationDate="2010-10-21T14:54:15.773" Score="1" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://www.compustory.com/&quot; rel=&quot;nofollow&quot;&gt;American Computer Museum&lt;/a&gt; in Bozeman, Montana, USA, showcases &quot;the history of the information age while also offering in-depth displays for those who are serious technophiles&quot;.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-21T14:54:15.773" />
  <row Id="13542" PostTypeId="2" ParentId="13536" CreationDate="2010-10-21T14:54:39.987" Score="5" ViewCount="" Body="&lt;p&gt;The reason experience in multiple languages helps is that it forces you to learn &lt;strong&gt;concepts over implementation&lt;/strong&gt;.  &lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-21T14:54:39.987" />
  <row Id="13543" PostTypeId="2" ParentId="13526" CreationDate="2010-10-21T14:54:47.070" Score="4" ViewCount="" Body="&lt;p&gt;If you are in Austin Texas, there is a really decent computer museum surprisingly managed by Goodwill (yes the charity). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They have a special unit for accepting donated electronics and I think they just started collecting historically significant computers from the donations and putting them on display with placards containing a brief history of the device.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.austincomputerworks.org/museum/&quot; rel=&quot;nofollow&quot;&gt;Goodwill Computerworks Austin Computer Museum&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are still looking for donations of early computer technology to add to the museum.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-21T14:54:47.070" />
  <row Id="13544" PostTypeId="2" ParentId="13512" CreationDate="2010-10-21T14:56:50.620" Score="15" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Some guys here work upwards up 75 hours a week and they really don't even get any recognition for it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;RED FLAG RED FLAG RED FLAG&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All right, the big question:  are they &lt;b&gt;expected&lt;/b&gt; to work 75 hours a week?  Do they &lt;b&gt;need&lt;/b&gt; to work 75 hours a week to hit the deadlines and milestones they're responsible for?  In fairness to your employer, some people just love what they're doing that much -- or are masochists.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But on the other hand, you could be getting a glimpse of your future.  How prevalent is this practice -- is it just one or two hard-core types, or is this standard operating procedure for every senior developer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel like there are additional relevant details we're not hearing.  You're intimating in the question and comments that you don't care for how you're being treated.  Is it just the 75 hour work weeks, or something more?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless ... yuck, I say.  That kind of massive effort is worthy of at least a pat on the back.  The fact that it goes without comment* implies that it's just what's expected.  That's bad juju for a company that doesn't want its employees burning the hell out.  Maybe I'm sheltered/lucky, but I've been doing this full-time since '97 and I've never worked for a company that habitually** forced its employees beyond 40/week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(* -- Are you sure it goes without comment?  Have the 75-hour drudges actually told you that nobody cares?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(** -- Now, occasional deadline-drive hell weeks?  Those happen.  Welcome to the software industry.  The question is, are they the exception or the rule?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And you're implying you'd rather be doing C# than what you're actually doing?  Damn, mate, why is this even a question?  For a chance to do what I'd rather be doing in an environment where the phrase &quot;Work-Life Balance&quot; &lt;b&gt;doesn't&lt;/b&gt; elicit derisive snickers from upper management, I'd be willing to take a pretty substantial pay &lt;b&gt;cut.&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a stable company, six months is indeed a bit fast to be jumping ship.  But if you're challenged on it in an interview, tell the truth -- it was your first job out of college and the work environment left a lot to be desired.  I have to think most future potential employers would be willing to give you a mulligan on this, particularly because it's so early in your career.  Just watch it's not the first data point in a pattern.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-10-21T14:56:50.620" CommentCount="2" />
  <row Id="13545" PostTypeId="2" ParentId="13503" CreationDate="2010-10-21T14:57:00.730" Score="2" ViewCount="" Body="&lt;p&gt;If you can do a worthwhile project in a new language, it will show competence. I recommend not to use multiple languages. It decreases efficiency. I was great in C++ several years ago but have C# since then.. if I were to keep C++ in my head it would just slow me down.&lt;/p&gt;&#xA;" OwnerUserId="5882" LastActivityDate="2010-10-21T14:57:00.730" />
  <row Id="13546" PostTypeId="2" ParentId="13512" CreationDate="2010-10-21T15:01:29.487" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Forget the money and what it will look like to future employers. If the company is terrible to work for and treats you badly, leave.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you really want to spend more than half your waking hours being miserable? Life is too short to waste time being unhappy, especially if no one appreciates your sacrifice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might be a slight negative on your job history, at least for the next job. But, frankly, as a hiring manager myself I never weigh the tenure on that first job too heavily. Most people take anything they can get right out of college, especially in a weak job market. I'd frown more heavily on things like not giving proper 2 weeks notice to a previous employer or being fired for some ethical breach.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-21T15:01:29.487" CommentCount="2" />
  <row Id="13547" PostTypeId="1" AcceptedAnswerId="13686" CreationDate="2010-10-21T15:05:39.070" Score="9" ViewCount="267" Body="&lt;p&gt;These jobs seem to pay well if you're in the right location and have experience doing financial programming with C#/C++/Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what's the downside?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is the work boring or interesting? (Subjective, I know.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What &quot;parts&quot; of your brain get used?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How are the hours? The working environments?&lt;/p&gt;&#xA;" OwnerUserId="5879" LastActivityDate="2010-10-22T14:22:30.363" Title="What's it like to be a developer working on trading systems?" Tags="&lt;java&gt;&lt;c#&gt;&lt;career-advice&gt;&lt;c++&gt;&lt;financial&gt;" AnswerCount="3" FavoriteCount="3" />
  <row Id="13548" PostTypeId="2" ParentId="13470" CreationDate="2010-10-21T15:07:48.347" Score="4" ViewCount="" Body="&lt;p&gt;Submit your resignation in writing making sure to include date of notice and final day. If they want you to stay longer, try and negotiate. I would turn my present employer into a client. You won't be able to work for them full time, but could finish a project or work the new hire.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do not &quot;burn this bridge.&quot; This manager, as bad as he may seem, could end up anywhere or be in contact with any one else who is hiring. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You prefer to work at a place with more programmers; this job can not accommodate that. Very simple, no emotions. Don't put your supervisor down. If you have an exit interview try to give some constructive feedback.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure you help out the next person taking your job. I always feel I leave positions better off than when I started. You may end up doing nothing but documentation your last few days/weeks. Let your supervisor know where all current projects stand. He may start to get an idea of what you've been doing and if he has half a brain will recognize that this may be the problem. It will help in finding your replacement.&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2010-10-22T11:50:58.887" LastActivityDate="2010-10-22T11:50:58.887" CommentCount="1" />
  <row Id="13549" PostTypeId="2" ParentId="13526" CreationDate="2010-10-21T15:09:14.443" Score="2" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://www.sciencemuseum.org.uk&quot; rel=&quot;nofollow&quot;&gt;Science Museum&lt;/a&gt; in London also has &lt;a href=&quot;http://www.sciencemuseum.org.uk/onlinestuff/museum_objects/computing.aspx&quot; rel=&quot;nofollow&quot;&gt;several pieces&lt;/a&gt; that are important to the history of computers.  Their exhibits include components from and reproductions of a few of Charles Babbage's machines.&lt;/p&gt;&#xA;" OwnerUserId="5837" LastActivityDate="2010-10-21T15:09:14.443" CommentCount="1" />
  <row Id="13550" PostTypeId="2" ParentId="13512" CreationDate="2010-10-21T15:10:19.107" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Never quit a job before you have another offer closed&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alright, I know that &lt;em&gt;never&lt;/em&gt; is a long time and shouldn't be used, but if I had one piece of sage advice I could give a new member of the workforce it would be this.  And in your case, you definitely don't quality for any of the 'never' loopholes (like abuse, etc.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Life is funny in that it doesn't always go to plan.  That 85% chance means that there's a 15% chance that it could fall through, and behind that is another chance that you could be unemployed or forced to take a worse job (&quot;would you like fries with that?&quot;) in desperation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's time to move polish the resume, find excuses to get time off to interview and do whatever it takes to aggressively pursue a better option.  But until you have signed paper in your hand telling you what your new salary and start date is, don't tender your resignation or (and this is the hard one) &lt;em&gt;let anyone know or subtly imply that you're looking for new work.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, go out there and get a new job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S.  Post your resume electronically to multiple job sites (not Facebook :-), something like Monster.Com, LinkedIn, etc.)  Your employer may find your resume online and ask questions so be prepared to answer, but the upside in finding potential new jobs outweighs the downside.  I've made it a policy to have an updated resume out of the Internet at &lt;em&gt;all&lt;/em&gt; times, even when I'm not looking.  This way when I start looking, there's less of an electronic trail to leave.  Most programming professionals I know do this as well.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastEditorUserId="5397" LastEditorDisplayName="" LastEditDate="2010-10-21T15:28:13.710" LastActivityDate="2010-10-21T15:28:13.710" />
  <row Id="13551" PostTypeId="2" ParentId="13526" CreationDate="2010-10-21T15:10:44.597" Score="4" ViewCount="" Body="&lt;p&gt;It's not a museum (and may not be open to the public) but I think &lt;a href=&quot;http://www.bell-labs.com&quot; rel=&quot;nofollow&quot;&gt;Bell Labs&lt;/a&gt; deserves a mention.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-10-21T15:10:44.597" CommentCount="1" />
  <row Id="13552" PostTypeId="2" ParentId="13497" CreationDate="2010-10-21T15:10:47.967" Score="1" ViewCount="" Body="&lt;p&gt;It depends a lot on the product, some are better than others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to Infragistics, they are a mixed bag unto themselves. The quality of the UI components are decidedly mixed. They are fairly inconsistent in API and performance. I think they bought a lot of the components from third party companies and integrated them into their suite, which probably explains the inconsistencies. Also the annual per-developer pricing seemed a bit heavy, especially when MS started providing some of the controls built into ASP.NET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: My information is probably a few years out of date. I've moved on to another team than the one we used it on.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-21T15:10:47.967" />
  <row Id="13553" PostTypeId="2" ParentId="3272" CreationDate="2010-10-21T15:11:13.503" Score="2" ViewCount="" Body="&lt;p&gt;I've had 16 jobs in the space of nearly 7 years. Do the math.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am a contractor and I exclusively target that market, so I'm typically not looking for a permanent role.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think I'll ever go permanent unless I either &lt;em&gt;have&lt;/em&gt; to or am presented with a job that's so suitable and interesting that I'd want to do it for the next 5 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But at the moment, this is what I love doing, and I'll stick to it as long as I can.&lt;/p&gt;&#xA;" OwnerUserId="5879" LastActivityDate="2010-10-21T15:11:13.503" />
  <row Id="13554" PostTypeId="2" ParentId="13470" CreationDate="2010-10-21T15:14:21.427" Score="4" ViewCount="" Body="&lt;p&gt;I'm going to address some things you should do before submitting your resignation letter. First, take any personal files off your computer as you may not have access once you resign. BE careful of taking company code though. Legally the code belongs to the company not you.  I would also quietly, the night before I hand in the resignation lette,r and after everyone is mostly gone so you don't get questions, pack up my personal things. Some companies will terminate you on the spot when you resign. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also have always created a document that summarizes my projects, where things can be found, what has been done and not done yet, etc. I hand that to my boss when handing in the resignation letter. This tells them you are going to be professional about the resignation and may ease their fears a bit. I also usually suggest to them what tasks would be the best use of my time in the period before my last day. If you promise to deliver something before your last day, then be sure to really deliver it. Don't promise anything you don't think you can get done. All of this is especially true since you are the only programmer. Think what you would want in this situation if you were the replacement and that is the info you should prepare in advance of resigning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you so desire, many people have offered to be paid as a consultant on their own time to train a replacement or to do some urgent tasks until the replacement is hired. You are under no obligation to do this, but if you do want to do it, make sure you are paid the going rate for consultants (not your current pay rate) to do work. Make sure it is clear you will be doing this work outside your normal work hours at your new job and put a deadline on how long you are willing to do it (or they may never hire your replacement!). Be prepared to tell them what you want moneywise if they offer this as an option. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-21T15:14:21.427" CommentCount="1" />
  <row Id="13555" PostTypeId="2" ParentId="13512" CreationDate="2010-10-21T15:18:04.797" Score="1" ViewCount="" Body="&lt;p&gt;Changing jobs after 6 months to work with different technology is a legitimate reason. Making more money can be secondary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The 5k may not seem like a lot to some, but remember, all bonuses, raises, and future job wage offerings are all based on your current salary. Compound interest can really add up. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to start working on how you determine/pick good jobs. Why did you take this one? How could you have discovered all of these issues ahead of time? Be careful! You can't go to your next interview and demand more money and openly refuse to work long hours. Be diplomatic. Indirectly find out how much people are working. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And this whole 75 hours a week nonsense is probably made up of a lot of SO and other web surfing. I've noticed where I work that the people who put in the most hours waste the most time. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-21T15:18:04.797" CommentCount="1" />
  <row Id="13556" PostTypeId="1" CreationDate="2010-10-21T15:19:08.337" Score="4" ViewCount="193" Body="&lt;p&gt;What do you think about using exclamation points in error messages?  i.e. &quot;The address is not valid!&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I think it adds nothing, insults the user, and makes the product look like it was written in TRS-80 BASIC by a 12-year-old.&lt;/p&gt;&#xA;" OwnerUserId="4526" LastActivityDate="2010-10-21T18:46:27.837" Title="exclamation points in error messages" Tags="&lt;error-messages&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="13557" PostTypeId="2" ParentId="13517" CreationDate="2010-10-21T15:20:50.540" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://tahiti.oracle.com/&quot; rel=&quot;nofollow&quot;&gt;Oracle Guides and Manuals&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-10-21T15:20:50.540" CommentCount="1" />
  <row Id="13558" PostTypeId="2" ParentId="13556" CreationDate="2010-10-21T15:21:07.937" Score="2" ViewCount="" Body="&lt;p&gt;They are almost as bad as the word &quot;please&quot; in dialogs. Dump em!&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-21T15:21:07.937" CommentCount="2" />
  <row Id="13559" PostTypeId="2" ParentId="13540" CreationDate="2010-10-21T15:22:04.953" Score="1" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://www.unisa.ac.za/&quot; rel=&quot;nofollow&quot;&gt;University of South Africa&lt;/a&gt; offer both undergraduate and postgraduate degrees in mathematics, computer science, information technology, and all the rest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also the &lt;a href=&quot;http://www.open.ac.uk/&quot; rel=&quot;nofollow&quot;&gt;Open University&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-21T15:22:04.953" />
  <row Id="13560" PostTypeId="2" ParentId="13536" CreationDate="2010-10-21T15:22:27.593" Score="2" ViewCount="" Body="&lt;p&gt;Yes, exposure to lots of different idioms and practices is essential if you want to do any serious software architecture.  Sometimes the greatest lesson you can learn from a particular framework/approach is how &lt;em&gt;not&lt;/em&gt; to do something.  And learning how to recognize a bad design will be indispensible when you design higher-level systems and frameworks of your own.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-10-21T15:22:27.593" />
  <row Id="13561" PostTypeId="2" ParentId="2291" CreationDate="2010-10-21T15:23:39.200" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Algol 60&lt;/strong&gt; ===                 &lt;/p&gt;&#xA;" LastActivityDate="2010-10-21T15:23:39.200" CommunityOwnedDate="2010-10-21T15:23:39.200" />
  <row Id="13562" PostTypeId="2" ParentId="13556" CreationDate="2010-10-21T15:25:30.430" Score="8" ViewCount="" Body="&lt;p&gt;On error messages meant to be displayed to the user?  Yeah, I'm with you.  Anything that makes the user feel like their machine is yelling at them for being an idiot should be filed under &quot;Bad Idea.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, error messages to be sent to the log file, particularly on the server?  I know you're &lt;b&gt;supposed&lt;/b&gt; to still maintain a sense of professionalism, because those can still wind up on the user's screen.  But I gotta admit, snarking it up is awfully tempting....&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-10-21T15:25:30.430" CommentCount="3" />
  <row Id="13563" PostTypeId="2" ParentId="39" CreationDate="2010-10-21T15:32:11.487" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Software is hard.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- Donald Knuth&lt;/p&gt;&#xA;" OwnerUserId="4766" LastActivityDate="2010-10-21T15:32:11.487" CommunityOwnedDate="2010-10-21T15:32:11.487" CommentCount="1" />
  <row Id="13564" PostTypeId="2" ParentId="2291" CreationDate="2010-10-21T15:32:36.540" Score="0" ViewCount="" Body="&lt;h2&gt;PL/M-51&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Followed closely by PL/M-86 and PL/M-386&lt;/p&gt;&#xA;" OwnerUserId="5877" LastActivityDate="2010-10-21T15:32:36.540" CommunityOwnedDate="2010-10-21T15:32:36.540" />
  <row Id="13565" PostTypeId="2" ParentId="13282" CreationDate="2010-10-21T15:32:55.243" Score="0" ViewCount="" Body="&lt;p&gt;You can compare a range of the leading freelance marketplaces by factors such as price, popularity, skills available etc at &lt;a href=&quot;http://whichlance.com&quot; rel=&quot;nofollow&quot;&gt;http://whichlance.com&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-10-21T15:32:55.243" />
  <row Id="13566" PostTypeId="2" ParentId="13142" CreationDate="2010-10-21T15:34:05.977" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Read Strunk &amp;amp; White's The Elements Of Style&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I quote, &quot;Vigorous writing is concise. A sentence should contain no unnecessary words, a paragraph no unnecessary sentences, for the same reason that a drawing should have no unnecessary lines and a machine no unnecessary parts. This requires not that the writer make all his sentences short, or that he avoid all detail and treat his subjects only in outline, but that every word tell.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My favorite line, &quot;Omit needless words.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0205313426&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://i.imgur.com/nbev5.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5397" LastEditorUserId="5397" LastEditorDisplayName="" LastEditDate="2010-10-21T15:39:14.277" LastActivityDate="2010-10-21T15:39:14.277" CommentCount="1" />
  <row Id="13567" PostTypeId="2" ParentId="13512" CreationDate="2010-10-21T15:35:00.317" Score="0" ViewCount="" Body="&lt;p&gt;Take some time to think of the following factors;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learning (languages, project management, design / architecture, QA, client relations etc.)&lt;/li&gt;&#xA;&lt;li&gt;Remuneration (pay, benefits etc.)&lt;/li&gt;&#xA;&lt;li&gt;Work / life balance (overtime, management culture, travelling, etc.)&lt;/li&gt;&#xA;&lt;li&gt;Career growth (responsibility, leadership roles etc.)&lt;/li&gt;&#xA;&lt;li&gt;Satisfaction (encompasses all the above categories; pride in your work, your relevance to the organisation, workplace atmosphere etc.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It is very rare that a job will excel in all categories. Instead, you must carefully weigh them against each other and make your decision based on that. If any one area is suffering to the extreme, then it's probably time to move on. For example, in my last job, it was probably something like this;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learning = Very High&lt;/li&gt;&#xA;&lt;li&gt;Remuneration = OK&lt;/li&gt;&#xA;&lt;li&gt;Work / life balance = Terrible&lt;/li&gt;&#xA;&lt;li&gt;Career Growth = Very good, to a point (no promotions available - just increase in role responsibility).&lt;/li&gt;&#xA;&lt;li&gt;Satisfaction = Varied wildly, very unstable working environment.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It was a difficult decision to leave, but I held on for longer than I felt comfortable because I knew the experience I was getting was solid gold in terms of establishing future career growth. In the end though, my personal life was suffering too much and so I had to quit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make a similar judgement yourself. Six months is about the length of time that it takes for the novelty of a new job to wear off and it's natural to feel a bit of a slump in enthusiasm for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you feel like you aren't getting a net benefit in the areas mentioned above, then it's probably better to get out instead of letting your career stagnate. It can look equally bad on a CV to have too long a stint in somewhere you hated as it can to have too short a one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck.&lt;/p&gt;&#xA;" OwnerUserId="4538" LastActivityDate="2010-10-21T15:35:00.317" />
  <row Id="13568" PostTypeId="2" ParentId="13502" CreationDate="2010-10-21T15:42:15.800" Score="2" ViewCount="" Body="&lt;p&gt;For a loose definition of &quot;sold&quot;, I'd guess that some of the original unix utilities are still being distributed from the original source from the 70's.  How much maintainance does 'cat' need?&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-21T15:42:15.800" />
  <row Id="13569" PostTypeId="2" ParentId="13536" CreationDate="2010-10-21T15:42:21.510" Score="2" ViewCount="" Body="&lt;p&gt;Yes, but learning &lt;a href=&quot;http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29&quot; rel=&quot;nofollow&quot;&gt;design patterns&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Systems_design&quot; rel=&quot;nofollow&quot;&gt;systems designs&lt;/a&gt; would help even more. That is, concepts as explored in &lt;a href=&quot;http://www.vincehuston.org/dp/&quot; rel=&quot;nofollow&quot;&gt;Design Patterns (GoF)&lt;/a&gt;, &lt;a href=&quot;http://martinfowler.com/eaaCatalog/&quot; rel=&quot;nofollow&quot;&gt;Patterns of Enterprise Application Architecture (PoEAA)&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Embedded_system&quot; rel=&quot;nofollow&quot;&gt;embedded systems&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Real-time_computing&quot; rel=&quot;nofollow&quot;&gt;real-time systems&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Interprocess_communication&quot; rel=&quot;nofollow&quot;&gt;interprocess communications&lt;/a&gt;, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Especially useful are &lt;a href=&quot;http://en.wikipedia.org/wiki/Finite-state_machine&quot; rel=&quot;nofollow&quot;&gt;state machines&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Operations_research&quot; rel=&quot;nofollow&quot;&gt;operations research&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Systems_engineering&quot; rel=&quot;nofollow&quot;&gt;systems engineering&lt;/a&gt;, which are applied in software architecture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But of everything there is to learn to improve your software development skillset, the &lt;strong&gt;most critical is state machines&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-21T15:42:21.510" />
  <row Id="13570" PostTypeId="1" AcceptedAnswerId="13574" CreationDate="2010-10-21T15:45:33.640" Score="7" ViewCount="168" Body="&lt;p&gt;I've inherited a project with a fairly large codebase, and the original developer rarely, if ever, replies to emails. There's a ton of different ways to do some things in it, and I don't know all of them. A lot of duplicated code along these paths (rather than functions included by, say, 5 pages that do relatively the same thing, it's code copied across 5 pages), and some subtle issues in the database (we've all heard of spaghetti code, but have you ever heard of a spaghetti database?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of this I can deal with most of the time no problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The issue is when a client finds a bug somewhere. They'll usually send a screenshot of the ending issue, and say, &quot;Could you take a look at this?&quot; while highlighting the specific thing on the page that's wrong, and sometimes what was expected. Very little more information is given, and trying to talk to them and get more (such as what they did to get the result) is like pulling teeth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, it boils down to this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Large and complex code base I'm not 100% familiar with&lt;/li&gt;&#xA;&lt;li&gt;Many many ways things can go wrong&lt;/li&gt;&#xA;&lt;li&gt;Very little information on how a bug came to be&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Does anybody have any tips, tricks, suggestions, etc. on how to debug this sort of thing?&lt;/p&gt;&#xA;" OwnerUserId="2416" LastActivityDate="2010-10-22T09:47:22.380" Title="Tips for debugging with very little info?" Tags="&lt;debugging&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="0" />
  <row Id="13571" PostTypeId="1" CreationDate="2010-10-21T15:48:46.097" Score="12" ViewCount="599" Body="&lt;p&gt;How do you determine what is fair to pay a developer?  What factors do you take into account?  What resources do you use to make sure you're being fair?&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="3010" LastEditorDisplayName="" LastEditDate="2010-10-21T16:14:17.577" LastActivityDate="2011-05-05T19:42:34.777" Title="How do you determine the fair wage to pay a developer?" Tags="&lt;career&gt;&lt;management&gt;&lt;salary&gt;" AnswerCount="9" CommentCount="4" FavoriteCount="2" />
  <row Id="13572" PostTypeId="2" ParentId="13470" CreationDate="2010-10-21T15:53:34.007" Score="0" ViewCount="" Body="&lt;p&gt;I have quited from 3 jobs, not because they were bad (well one sort of was) but because I had better opportunities (first to go study abroad, then to work in my &quot;dream&quot; industry, third because the last company didnt keep its promises and wage was super low).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the first two, I went with my manager and just said that even though I really liked it there I had a great opportunity that I couldn't let pass, that I appreciated them for having me for the time I lasted. In the first company they actually helped me out giving recommendation letters for the student visa. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the second one, my manager did panicked a little bit since we were on a really really tight schedule and the deadline was soon, but she understood that I had to do it (eventually she was in the same situation, and also left). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In both occasions they asked me to write a letter, I think they even had the format, so I only had to put my name and sign it. In the second one I also had to go to some government office to declare I was voluntarily quitting (it needed to be done this way because it was a government sponsored project) .&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the last one, I was very dissapointed with the company and just told my boss all the things that I had been dissapointed with, and said that I really think I was not using my time adecuately, and that I had to quit. He seemed fine enough, though he did asked me to give more details about my reasons, once I did he seemed hurt by it, and then never talked to me again.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;All in all, I say that giving 2 weeks&#xA;  notice is fine enough, if they find&#xA;  somebody in that time and want you to&#xA;  train him, its fine, but I wouldn't&#xA;  stay around until they find somebody.&#xA;  Just bring it forth to your manager,&#xA;  say you want to do other things and&#xA;  you are going to quit, after that, its&#xA;  either gonna be ok or they'll explode,&#xA;  if they do you I wouldnt stay the 2&#xA;  weeks.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="693" LastActivityDate="2010-10-21T15:53:34.007" />
  <row Id="13573" PostTypeId="2" ParentId="13570" CreationDate="2010-10-21T15:57:10.773" Score="6" ViewCount="" Body="&lt;p&gt;A good start might be this &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131177052&quot; rel=&quot;nofollow&quot;&gt;book&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/RbTtK.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am using the definition below as it sounds like the developer isn't around to support it anymore.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Legacy code is source code that relates to a no-longer supported.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="64" LastEditorUserId="64" LastEditorDisplayName="" LastEditDate="2010-10-21T18:53:54.077" LastActivityDate="2010-10-21T18:53:54.077" CommentCount="2" />
  <row Id="13574" PostTypeId="2" ParentId="13570" CreationDate="2010-10-21T15:57:40.400" Score="7" ViewCount="" Body="&lt;p&gt;When I get something like that, I usually demand more information.  Not sure how it is where you work, but here if I don't have enough information to reproduce the problem locally, I can send the ticket back marked Cannot Reproduce, with a request for more information, and they know that nothing's getting fixed until I'm able to break it on my end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your clients are having trouble with describing steps, ask them for a screencap video.  There are a few free products that can create them, such as &lt;a href=&quot;http://www.techsmith.com/jing/free/&quot; rel=&quot;nofollow&quot;&gt;Jing.&lt;/a&gt;  It makes it a lot easier when you can watch exactly what they were doing.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-21T15:57:40.400" CommentCount="2" />
  <row Id="13575" PostTypeId="2" ParentId="13571" CreationDate="2010-10-21T16:00:56.720" Score="1" ViewCount="" Body="&lt;p&gt;For me, a quick Google search normally gives me average salary for my job title (and similar jobs) in this area. After that, I try to adjust the value for Experience, Benefits (health insurance, 401k, etc), stress level, travel time, and work environment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That generally gives a good range of values to work with. Of course the exact figure that ends up getting decided upon depends on the programmer and the company&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-10-21T16:00:56.720" />
  <row Id="13576" PostTypeId="2" ParentId="13503" CreationDate="2010-10-21T16:03:16.920" Score="0" ViewCount="" Body="&lt;p&gt;Learn a new language yourself and then put it on your resume at the same rank as your first language.  If you can't easily jump between languages of the same paradigm, you shouldn't call yourself a senior programmer. &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-21T16:03:16.920" />
  <row Id="13577" PostTypeId="2" ParentId="13515" CreationDate="2010-10-21T16:04:22.373" Score="2" ViewCount="" Body="&lt;p&gt;Increase development productivity? Generally, probably not - but I expect it would depend on the discipline of the individual. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I'd argue that developers who are engaged in their community -  whether it be via user groups, conferences, forums &lt;strong&gt;or&lt;/strong&gt; social networking sites such as Twitter - tend to be more well rounded and more aware of different perspectives, approaches, technologies, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, I think the highly engaged, passionate developer will be more productive and valuable to an organization than the one who is &quot;number of lines of code&quot; productive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On my &quot;third hand&quot; - FaceBook is a waste of time :p&lt;/p&gt;&#xA;" OwnerUserId="5677" LastActivityDate="2010-10-21T16:04:22.373" />
  <row Id="13578" PostTypeId="2" ParentId="12556" CreationDate="2010-10-21T16:04:23.637" Score="0" ViewCount="" Body="&lt;p&gt;You're right that you need some structure; you want to force yourself and the others to learn, and not just sit around gabbing about software/bitching about the lousy course selection.  But I'm not sure treating this as a class with you as its teacher is the way to go; you're not an expert yet, and you're in this to learn something, too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How about organizing the club around software projects?  Not some toy homework programs, but something you think you might actually find useful.  (Note that &quot;marginally useful&quot; still qualifies as &quot;useful&quot;; you're trying to learn-by-doing, not found a startup.  :-)  )  If the club has enough people for multiple teams, form multiple teams.  The team decides what language it wants to use, what the specs are, how labor is to be divided, etc., etc., and works on it individually in their own time.  Then at your weekly club meeting, you discuss how it's going face to face, where the roadblocks are, neat stuff you've learned, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also really like the idea of bringing in guest lecturers, be they faculty, professionals, or videos that you or somebody else thinks are worth sharing.  So, you could organize a nightly meeting like this:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Guest lecture on some software topic from somebody who knows it well.&lt;/li&gt;&#xA;&lt;li&gt;Q&amp;amp;A/gab session on the lecture (hopefully with the lecturer participating, but just amongst yourselves for videos).&lt;/li&gt;&#xA;&lt;li&gt;Divide into project teams, do project stuff.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;That'll take up an evening and stuff it full of knowledge-enhancing goodness.  Hopefully.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless, I wish you luck with this project.  When you get it off the ground, I hope you'll come back here and tell us how it's working out.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-10-21T16:04:23.637" />
  <row Id="13579" PostTypeId="2" ParentId="13571" CreationDate="2010-10-21T16:13:07.150" Score="6" ViewCount="" Body="&lt;p&gt;&quot;Fair&quot; is a very subjective concept so there is no silver bullet answer to your question. I'll take a stab at it, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the local market I have a decent idea of reasonable ranges. For a sanity check I use Salary.com, PayScale.com or similar. In all cases you will always find a range and then you have to balance that against the kind of person you think can do the position in question. You also have to factor in the other benefits that come with the job (both monetary and non-monetary) and the, er, non-benefits that come with the job (like getting to wear a pager, for example, or having to work over a product release weekend, etc.). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, just ask the candidate. It is a reasonable question and will let you know how well prepared the person is. If you get a lot of stammering and blushing they haven't done much to prepare. An immediate demand for 50% more than the current market supports is also a red flag (unless the person really IS just that awesome). A reasonable &quot;Positions that require this level of experience and this skill set in this area pay between $X and $Y, depending. I believe that I am strong in both and would like to see something near top of the range&quot; or such indicates somebody who has put some work in. Sometimes you'll get the &quot;Are you offering me the position?&quot; response, which is usually followed by &quot;We should not discuss compensation until both of us have decided if I am a fit for this position or not&quot;. I'm not always sure what to make of this one. It seems fairly presumptuous, and not very cooperative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you find a candidate who looks great for the position and there's a small gap between what you can offer and what they would like you can start to get into negotiation about other things like training funds, etc. and also the promise to circle back in six months to review how they have done so far.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-10-21T16:13:07.150" CommentCount="5" />
  <row Id="13580" PostTypeId="2" ParentId="13571" CreationDate="2010-10-21T16:14:10.723" Score="0" ViewCount="" Body="&lt;p&gt;The work a developer is gonna do is a deciding factor, taking into accounts the qualification, certifications, experience, &lt;strong&gt;&lt;em&gt;MINUS&lt;/em&gt;&lt;/strong&gt; other benefits ( Cost to company ) &lt;strong&gt;&lt;em&gt;PLUS&lt;/em&gt;&lt;/strong&gt; some percentage(variable) of  profit a developer earns for his company. &lt;/p&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-10-21T16:14:10.723" CommentCount="1" />
  <row Id="13581" PostTypeId="2" ParentId="13556" CreationDate="2010-10-21T16:15:15.513" Score="0" ViewCount="" Body="&lt;p&gt;Well, if it's a standard Windows dialog box, it may already have an exclamation point in a red triangle or blue circle, depending on the parameters passed to the Win32 API method that displays it.  So why duplicate the urgency?&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-10-21T16:15:15.513" CommentCount="2" />
  <row Id="13582" PostTypeId="2" ParentId="13526" CreationDate="2010-10-21T16:15:54.367" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.parc.com/&quot; rel=&quot;nofollow&quot;&gt;Xerox Parc&lt;/a&gt; in Palo Alto California.  The birth place to a lot of things common to us now.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-10-21T16:15:54.367" CommentCount="1" />
  <row Id="13583" PostTypeId="2" ParentId="13556" CreationDate="2010-10-21T16:25:58.427" Score="7" ViewCount="" Body="&lt;p&gt;Usability guru Jakob Nielsen discourages their use. Most usability advise is based on research. That's why i tend to prefer those advice over personal opinions.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-10-21T16:25:58.427" CommentCount="0" />
  <row Id="13584" PostTypeId="2" ParentId="13502" CreationDate="2010-10-21T16:28:28.043" Score="5" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://imgs.xkcd.com/comics/1996.png&quot; alt=&quot;link text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;&lt;sub&gt;&lt;strong&gt;Alternate text&lt;/strong&gt;: &lt;em&gt;College Board issues aside, I have fond memories of TI-BASIC, writing in it a 3D graphing engine and a stock market analyzer. With enough patience, I could make anything ... but friends. (Although with my chatterbot experiments, I certainly tried.)&lt;/em&gt;&lt;/sub&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, though. The original TI-86 and TI-89 still manage to retail for over $150ish, and some older models are a bit cheaper but they're still in the $100 range. The newer models from 2004+ have slightly better hardware, but are virtually unchanged in software. Even the hardware doesn't warrant their nearly $200 price tag.&lt;/p&gt;&#xA;" OwnerUserId="5624" LastActivityDate="2010-10-21T16:28:28.043" CommunityOwnedDate="2010-10-21T16:32:40.353" CommentCount="1" />
  <row Id="13585" PostTypeId="2" ParentId="13502" CreationDate="2010-10-21T16:43:43.520" Score="1" ViewCount="" Body="&lt;p&gt;As far as off the shelf software goes, I'd hazard a guess at the Windows version of Theme Hospital. Last updated for Windows 95, seen on sale in Gamestop yesterday. &lt;/p&gt;&#xA;" OwnerUserId="230" LastActivityDate="2010-10-21T16:43:43.520" />
  <row Id="13586" PostTypeId="2" ParentId="13556" CreationDate="2010-10-21T16:57:26.133" Score="0" ViewCount="" Body="&lt;p&gt;No exclamations please :)&lt;/p&gt;&#xA;" LastActivityDate="2010-10-21T16:57:26.133" />
  <row Id="13587" PostTypeId="2" ParentId="12556" CreationDate="2010-10-21T17:06:26.280" Score="12" ViewCount="" Body="&lt;p&gt;Frankly your whole attitude concerns me. You haven't even gotten the group together and already you assume you will be only one who has any knowledge to impart and the one who should decide what the group will do. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best bet is to get the intial group together and, as a group, brainstorm what they want to do. What you personally want to do is irrelevant in terms of what the group wants to do. Deciding what to do without the input of the other group members before the first meeting,  you will come across as an arrogant idiot that I wouldn't want to work with voluntarily. Thus you would kill the group before it got started.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-21T17:06:26.280" CommentCount="1" />
  <row Id="13588" PostTypeId="2" ParentId="13470" CreationDate="2010-10-21T17:08:01.777" Score="2" ViewCount="" Body="&lt;p&gt;I was actually in your position fairly recently. I was working as a programmer in an engineering lab. I was the only developer, so, like you, I wasn't learning a whole lot. I also didn't like the location (I got the job at the nadir of the recession, so I didn't have much choice at the time). Plus, I spent more time doing IT support (&quot;Hey, my printer's broken, can you fix it?&quot; &quot;How do you do this in Outlook?&quot;), which wasn't a part of the job description.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Should I write a resignation letter?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I did. It was just a brief &quot;Hey, I'm leaving by this date&quot; sort of letter. HR likes to have something in writing, I guess. :) (Actually, I sent an email, but same difference in modern times, right?)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How much notice should I give?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I gave four weeks. Two weeks is the absolute minimum, but...I feel that for a more &quot;professional&quot; job like a programmer, you want to give extra time. Six weeks might be even better, if you can swing that, but I think four is enough. (For what it's worth, my predecessor at my old job gave less than two weeks' notice.)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Should I give a reason for leaving?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You're not obligated to give a reason for leaving. If you get along well with your boss, it may be nice to outline your reasons (&quot;I found something that offered better prospects&quot; or whatever), but I wouldn't formally give your reasons in your resignation notice. Judging by your next question, I'm guessing you &lt;em&gt;don't&lt;/em&gt; get along well with your boss, so a simple &quot;I found another job&quot; would probably suffice.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Should I go to my boss who is the main reason I'm leaving or go to his boss?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'd go to your boss. I mean, look, you don't have to criticize him excessively when you quit, you just have to say you're leaving. If the next guy and the next next guy quit quickly, even a mediocre boss should start to notice there're management issues. ;)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Should I leave all of my emails nice and organized to help the next guy/gal (They are organized now) or possibly erase them as the last several people did?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I left all of my emails. I had a separate work account that I accessed via IMAP, so after ensuring I hadn't accidentally mingled personal correspondence with the work account, I left it all on the server, and gave the server admin permission to let the new guy access the emails. Most of them weren't important, but I figured it would help him out. Like your situation, the guy before me left no emails, and very little documentation, so I thought I'd be nicer to the next person. :)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Should I leave all of the documents I worked hard to create (All of the FTP info for our different sites and what not that wasn't being kept before I got here), or should I delete them?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Leave 'em, they'll help out the new guy and it's the right thing to do anyway, since you (presumably) created them at work. Sounds like your predecessor wasn't nearly as helpful, but there's no need to be vindictive towards your replacement. :) And if you already created the documentation, it'll take &lt;em&gt;less&lt;/em&gt; time to &lt;em&gt;not&lt;/em&gt; delete the files.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-21T17:08:01.777" CommentCount="1" />
  <row Id="13589" PostTypeId="1" CreationDate="2010-10-21T17:15:47.070" Score="3" ViewCount="261" Body="&lt;p&gt;I work as a consultant in a medium-sized firm. We need to keep track of time spent on individual tasks and which customers to bill to. Our current system for doing this is an old in-house system, that needs to be retired for various reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most developers don't like registering time, so I am looking for the best tool for this job, that minimizes the time needed to register time. Must have features:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Must be simple and easy to use.&lt;/li&gt;&#xA;&lt;li&gt;Must have reporting feature to use for billing.&lt;/li&gt;&#xA;&lt;li&gt;Must have an API, so we can integrate in-house tools.&lt;/li&gt;&#xA;&lt;li&gt;Registering time should be based on hours worked (ie. today, worked on Customer A, Task B from 8 AM to 12 AM).&lt;/li&gt;&#xA;&lt;li&gt;TFS integration is a plus, but not needed (ie. register time on a work item)&lt;/li&gt;&#xA;&lt;li&gt;May be open source or a paid product; doesn't really matter.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What would you recommend ?&lt;/p&gt;&#xA;" OwnerUserId="2493" LastActivityDate="2011-02-17T05:35:24.713" Title="Most pain-free time registration software for developers ?" Tags="&lt;time-management&gt;&lt;time-tracking&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="13590" PostTypeId="1" CreationDate="2010-10-21T17:16:31.283" Score="22" ViewCount="921" Body="&lt;p&gt;A group of developers and I recently started a book club, and our first book of choice is &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0132350882&quot; rel=&quot;nofollow&quot;&gt;Clean Code&lt;/a&gt; by Robert C. Martin. It is a great book on software craftsmanship and I would highly recommend it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I invite other developers to share their definitions of clean code.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2011-02-23T01:39:52.067" CommunityOwnedDate="2011-02-23T01:29:15.137" Title="What does Clean Code mean to you?" Tags="&lt;books&gt;&lt;best-practices&gt;&lt;software-craftsmanship&gt;&lt;clean-code&gt;" AnswerCount="15" CommentCount="1" FavoriteCount="7" />
  <row Id="13591" PostTypeId="2" ParentId="13547" CreationDate="2010-10-21T17:16:35.917" Score="2" ViewCount="" Body="&lt;p&gt;They tend to be challenging positions with tough deadlines and little direction. You also have a fair about of support which is not much fun. You generally get to work on recent software platforms and nice expensive hardware - my biggest question is to make sure you are actually doing some development and not just supporting existing systems. A pure support role for a developer is not that good. Hours and environments vary, but people tend to work pretty hard. Learn the business side - a good C# developer that knows how to mark-to-market a position (or something similar) is very valuable.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-21T17:16:35.917" />
  <row Id="13592" PostTypeId="2" ParentId="13590" CreationDate="2010-10-21T17:19:00.053" Score="25" ViewCount="" Body="&lt;p&gt;I think my best definition of Clean Code would be:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Code that I can skim, and immediately understand it's purpose and how it works.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That seems simple enough, but alot of goes into fulfilling that goal, such as:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Good naming of types, methods, and locals.&lt;/li&gt;&#xA;&lt;li&gt;Avoiding &quot;clever tricks&quot;.&lt;/li&gt;&#xA;&lt;li&gt;Not putting too much in one statement / line.&lt;/li&gt;&#xA;&lt;li&gt;Adhering to a shared coding style, if on a project with more than one developer.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2493" LastActivityDate="2010-10-21T17:19:00.053" CommunityOwnedDate="2011-02-23T01:29:15.137" CommentCount="2" />
  <row Id="13593" PostTypeId="2" ParentId="13590" CreationDate="2010-10-21T17:23:28.183" Score="5" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Nothing is in the code (including comments) that is not needed (so if the code is not needed, then delete it, don't comment it out).&lt;/li&gt;&#xA;&lt;li&gt;Every line should serve a clear purpose, and be as concise as possible without sacrificing readability (no need to obfuscate your code, but also no need to be more verbose than is needed).&lt;/li&gt;&#xA;&lt;li&gt;Consistency, both in naming convention and coding style.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4403" LastActivityDate="2010-10-21T17:23:28.183" CommunityOwnedDate="2011-02-23T01:29:15.137" />
  <row Id="13594" PostTypeId="2" ParentId="13590" CreationDate="2010-10-21T17:23:30.333" Score="19" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Clean Code&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The code which doesn't make me want to kill the author.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I &lt;em&gt;can&lt;/em&gt; accept different coding styles, but if I can't read the damn thing, I will &lt;strong&gt;hate&lt;/strong&gt; the damned author.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: Sometimes, it is possible to discover that &lt;strong&gt;I&lt;/strong&gt; am the damned author :)&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-10-21T17:23:30.333" CommunityOwnedDate="2011-02-23T01:29:15.137" CommentCount="8" />
  <row Id="13595" PostTypeId="2" ParentId="13589" CreationDate="2010-10-21T17:29:28.147" Score="2" ViewCount="" Body="&lt;p&gt;Maybe I'm just cranky, but entering time is always a pain. When I used to do some independent contracting and tracking time was, well, kind of important - I used Harvest&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.getharvest.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.getharvest.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Harvest has a number of different applications you can use to enter time, including, of course the usual web interface, but also desktop widgets for Mac and PC, API access. Also has integration with a number of other &lt;a href=&quot;http://www.getharvest.com/platform&quot; rel=&quot;nofollow&quot;&gt;services&lt;/a&gt;. Somebody even hacked together a &lt;a href=&quot;http://www.getharvest.com/blog/2009/07/harvest-on-the-command-line-hcl/&quot; rel=&quot;nofollow&quot;&gt;CLI for Harvest&lt;/a&gt; :p&lt;/p&gt;&#xA;" OwnerUserId="5677" LastActivityDate="2010-10-21T17:29:28.147" />
  <row Id="13596" PostTypeId="1" AcceptedAnswerId="13608" CreationDate="2010-10-21T17:29:40.567" Score="0" ViewCount="182" Body="&lt;p&gt;No explanation needed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;you can name the applications you use. ( Desktop applications, not handheld devices) &lt;/p&gt;&#xA;" OwnerUserId="1368" LastEditorUserId="1368" LastEditorDisplayName="" LastEditDate="2010-10-21T19:04:54.750" LastActivityDate="2010-10-21T19:57:15.120" ClosedDate="2010-10-21T21:01:00.830" Title="Does anyone really use speech-to-text applications ?" Tags="&lt;applications&gt;" AnswerCount="7" CommentCount="2" />
  <row Id="13597" PostTypeId="2" ParentId="13590" CreationDate="2010-10-21T17:34:49.250" Score="2" ViewCount="" Body="&lt;p&gt;Clean &amp;lt;=&gt; Simple.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-10-21T17:34:49.250" CommunityOwnedDate="2011-02-23T01:29:15.137" />
  <row Id="13598" PostTypeId="2" ParentId="13590" CreationDate="2010-10-21T17:37:04.803" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Consistent code: it doesn't look like more than two people have written.&lt;/li&gt;&#xA;&lt;li&gt;Naming: sensible names for functions and variables.&lt;/li&gt;&#xA;&lt;li&gt;Good ordering: head files should be sorted in a consistent way. Functions should be sorted.&lt;/li&gt;&#xA;&lt;li&gt;Comment: consistent with code. If quirky things have to be done, they should be documented.&lt;/li&gt;&#xA;&lt;li&gt;No warnings: for compiled language, no warning should be given.&lt;/li&gt;&#xA;&lt;li&gt;Well componentized: things are modulized correctly.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-10-21T17:37:04.803" CommunityOwnedDate="2011-02-23T01:29:15.137" CommentCount="2" />
  <row Id="13599" PostTypeId="2" ParentId="13470" CreationDate="2010-10-21T17:39:58.340" Score="0" ViewCount="" Body="&lt;p&gt;Teach the secretary that &lt;a href=&quot;http://bofh.ntk.net/BOFH/1996/bastard96-05.php&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;rm -Rf&lt;/code&gt; automatically removes duplicate files&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5769" LastActivityDate="2010-10-21T17:39:58.340" />
  <row Id="13600" PostTypeId="2" ParentId="12556" CreationDate="2010-10-21T17:46:54.780" Score="0" ViewCount="" Body="&lt;p&gt;The group project is a great idea. Especially if the project is something that can help out the university, or your fellow classmates. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I joined a group while in college that was working on projects for students.&lt;br&gt;&#xA;The most popular project was a 360 degree virtual tour of the campus.&lt;br&gt;&#xA;We purchased the equipment needed and started taking photos around campus.  Then we built a website to house the tour, figured out the hosting, and got it featured on the university's web site for prospective students. This project spanned more than just programming tasks, and got non-programmers interested as well.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try identifying a new website or application that not only you would use, but everyone on campus would like to use.  I think it's easier and more fun to learn if you have a goal in mind.&lt;/p&gt;&#xA;" OwnerUserId="4885" LastActivityDate="2010-10-21T17:46:54.780" CommentCount="2" />
  <row Id="13601" PostTypeId="2" ParentId="12556" CreationDate="2010-10-21T17:51:32.987" Score="0" ViewCount="" Body="&lt;p&gt;If this is going to be an extra-curricular activity, don't do the homework thing. That's just lame.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could probably get something cool going by just starting up a github group and postering/emailing in your school (I guess kids these days use Facebook and Twitter too? Might be a good idea to hit those points as well). When you get a group of 5-6 people who are really interested together, decide on a project and just work at it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there's no interest, it's pretty ridiculously easy to join an open source project if you're reasonably skilled. Simple as forking something you're interested in at github, and starting to talk to the developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The advantage you have that the previous generation didn't is that it's not difficult at all to connect to programmers at your level, and in your language, while being very geographically disparate. And I don't mean just send an email. Skype/iChat/Ventrilo make voice conferences easy, tools like git/mercurial (and the associated project pages online) make it easy to code as a group even if you're on opposite sides of the atlantic. There's really no reason not to code socially these days, if that's what you want to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, don't make a habit of judging people by the languages they know/want to know. It's an easy trap to fall into when you're the only Smalltalker in a herd of people who think C++ represents the limit of programming, but it won't get you many friends, and it'll give you a bias against certain tools. I've met hackers who are miles ahead of me in skill and experience, who have used LISP, Perl and C &lt;em&gt;on the same project&lt;/em&gt;. The people at the top of the professional developer heap tend to not care much what level their tools are as long as they do the job.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-10-21T18:27:10.697" LastActivityDate="2010-10-21T18:27:10.697" />
  <row Id="13602" PostTypeId="2" ParentId="39" CreationDate="2010-10-21T17:51:36.417" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Entia non sunt multiplicanda praeter necessitatem&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;(Keep it simple, stupid)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Years ago I ran across a poster that had the Latin expression with the English translation under it.&lt;/p&gt;&#xA;" OwnerUserId="359" LastEditorUserId="359" LastEditorDisplayName="" LastEditDate="2010-10-23T17:24:30.713" LastActivityDate="2010-10-23T17:24:30.713" CommunityOwnedDate="2010-10-21T17:51:36.417" CommentCount="3" />
  <row Id="13603" PostTypeId="2" ParentId="13596" CreationDate="2010-10-21T17:58:43.850" Score="0" ViewCount="" Body="&lt;p&gt;Google voice search for the iPhone. &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-21T17:58:43.850" CommentCount="3" />
  <row Id="13604" PostTypeId="2" ParentId="13570" CreationDate="2010-10-21T17:59:29.947" Score="4" ViewCount="" Body="&lt;p&gt;I had a similar problem a few years ago and the biggest boost to productivity and code clean-up was integrating bug tracking into the system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We used Fogbugz (I assume they still do Fogcreek!) and we were able to build an exception handling mechanism where the user could press a button any time an exception was raised and it would get immediately logged into our system -- no more calls and no more screenshots.  &lt;strong&gt;With this option you take the information you need instead of trying to extract it from the user.&lt;/strong&gt;  Sounds like a variant would do you some good, especially with a screenshot capture option.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing you'll want to start doing is to start adding logging.  You may want to go as far as logging every method call with argument values.  Since it sounds like you're working with legacy code (code with no tests), this logging will help you add appropriate unit tests so you don't repeat any problems.&lt;/p&gt;&#xA;" OwnerUserId="4082" LastActivityDate="2010-10-21T17:59:29.947" CommentCount="3" />
  <row Id="13605" PostTypeId="2" ParentId="13596" CreationDate="2010-10-21T18:07:04.067" Score="0" ViewCount="" Body="&lt;p&gt;No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I need to enter 15 characters.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-10-21T18:07:04.067" />
  <row Id="13606" PostTypeId="2" ParentId="13547" CreationDate="2010-10-21T18:13:50.017" Score="1" ViewCount="" Body="&lt;p&gt;Personally I find trading systems a lot of fun, though as mentioned above you want to try to focus on developing them and not supporting them if you can.  Your customer base will be very demanding.  Generally my experience is if you have a problem or need something done with front office systems the scarce resource will be time not money.  That is, people would rather spend twice the money to solve the problem in halve the time than halve the money in twice the time.  So you will also need to enjoy thinking quick and thinking on your feet when it comes time to solve problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal recommendation is to learn the business side as quick as possible, learn to price the instruments and then focus on optimizing your code to do it better and faster.  Then you will be pretty much set.    &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Trading systems tend to be either order capture and routing systems, portfolio management and asset pricing systems.  They all have different challenges for a developer but the need to understand the underlying product is equally true for all of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the hours and the environment.  If you are unlucky (or lucky depending on your view) you will be siting in a trading room, otherwise it is normal office work.  The hours can very depending on what you do but the financial markets are open somewhere in the world 24 hours a day so you might end up providing out of hours third level support. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="2652" LastEditorUserId="2652" LastEditorDisplayName="" LastEditDate="2010-10-22T14:22:30.363" LastActivityDate="2010-10-22T14:22:30.363" CommentCount="1" />
  <row Id="13607" PostTypeId="2" ParentId="262" CreationDate="2010-10-21T18:15:12.883" Score="2" ViewCount="" Body="&lt;p&gt;COBOL, Fortran, and C are still relevant.  What's the chance that Java will go away in five years?  Conceivably there won't be much new Java development in five years, but I'd bet against that, too, since there's lots of people who use Java and shops are rather slow to switch their preferred languages.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-21T18:15:12.883" CommunityOwnedDate="2011-03-14T15:05:05.090" />
  <row Id="13608" PostTypeId="2" ParentId="13596" CreationDate="2010-10-21T18:19:02.857" Score="5" ViewCount="" Body="&lt;p&gt;Yes on a smartphone/handheld/PDA. Yes on an IVR system that makes a lot of money for one of my clients. No on the desktop - but I am fully abled. I know more than one person who can't see and uses speech-to-text among other control techniques. I also know several developers very worried about carpal tunnel who use speech recognition for emails and documentation, saving their hands for code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always remember an IBM ad (maybe for Naturally Speaking?) that was a picture of a word processor and it was in the middle of typing &quot;anyone can wreck a nice beach&quot;. That is still an issue, but for constrained inputs I think it can be very helpful.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-21T18:19:02.857" CommentCount="3" />
  <row Id="13609" PostTypeId="2" ParentId="13596" CreationDate="2010-10-21T18:24:27.940" Score="0" ViewCount="" Body="&lt;p&gt;Yes.  Software like dragon is pretty popular.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-21T18:24:27.940" />
  <row Id="13610" PostTypeId="2" ParentId="13596" CreationDate="2010-10-21T18:33:45.613" Score="4" ViewCount="" Body="&lt;p&gt;Yes, they're very common among blind computer users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Looking for names?  Well, I've got a blind friend who talks a lot about two different programs: JAWS, which is very good but &lt;em&gt;way&lt;/em&gt; too expensive (think Photoshop), and NVDA, which is open-source but mediocre in quality.&lt;/p&gt;&#xA;" OwnerUserId="935" LastEditorUserId="935" LastEditorDisplayName="" LastEditDate="2010-10-21T19:12:07.737" LastActivityDate="2010-10-21T19:12:07.737" />
  <row Id="13611" PostTypeId="2" ParentId="13470" CreationDate="2010-10-21T18:40:22.433" Score="2" ViewCount="" Body="&lt;p&gt;Is there any chance of salvaging the situation?  Of them hiring additional people, for example?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless programming jobs are plentiful and easy to get where you are, or your plan is to take 6 months off and backpack in the Andes or something, I'd start the job hunt process first, before you leave.  Get your resume together and start searching job boards, ideally lining up interviews and having an offer waiting.  You dont want to run off to greener pastures unless you know they actually exist.  If this was 1999, the height of the dot-com boom when you couldnt stumble six feet without being offered a high paying programming job, I'd tell you to jump ship without looking.  But, alas, its not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do leave, follow the advice others have listed - ample notice, &lt;em&gt;dont delete anything&lt;/em&gt;, etc.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-21T18:40:22.433" CommentCount="3" />
  <row Id="13612" PostTypeId="2" ParentId="13556" CreationDate="2010-10-21T18:46:27.837" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I LIKE BOLD, ALL CAPS, AND EXCLAMATIONS!&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-10-21T18:46:27.837" CommentCount="2" />
  <row Id="13613" PostTypeId="2" ParentId="13570" CreationDate="2010-10-21T18:59:53.317" Score="1" ViewCount="" Body="&lt;p&gt;My most earnest advise is to start refactoring where you can.  I can not count the number of times I saw a recopy of functionality only to find out that it wasn't 100% a full copy.  It was 99.9% copy and 1 small, minor mistake which resulted in a bug.  Start adding unit tests to everything and if you have a QA department try to get some automated testing scripts going for those portions of the code you're working.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, see how much logging to can inject into the code.  That is, if it doesn't have much in the way of logging you can add a flag to the code to start picking up more verbose logging for your own debugging purposes.  This is something you can have a user turn on and off if you can get a dialog going.  It's helped me more times than I can count.  I normally get &quot;it doesn't work&quot; without a picture of the problem.  I just say &quot;send me the log file.&quot;&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-21T18:59:53.317" />
  <row Id="13614" PostTypeId="1" CreationDate="2010-10-21T19:00:05.920" Score="8" ViewCount="561" Body="&lt;p&gt;If a software company loses the source code to one of the products they are selling, how serious would that be, in terms you could explain to a layman?  Would the term &quot;gross negligence&quot; be too strong?  Or &quot;gross incompetence&quot;?  Obviously no one got killed but isn't it as serious as some financial negligence that people get jail time for?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt;&#xA;Let's say it's not a case of a disk drive crashing, natural disaster or anything like that.  Just they misplaced it.&lt;/p&gt;&#xA;" OwnerUserId="4526" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-21T19:37:10.463" LastActivityDate="2010-10-22T14:44:18.393" Title="How serious is losing the source code?" Tags="&lt;code&gt;&lt;legal&gt;" AnswerCount="11" CommentCount="14" FavoriteCount="1" />
  <row Id="13615" PostTypeId="2" ParentId="13596" CreationDate="2010-10-21T19:01:42.610" Score="0" ViewCount="" Body="&lt;p&gt;Most GPS units now days have speech to text software on them to keep drivers from messing with the unit while driving.&lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-10-21T19:01:42.610" />
  <row Id="13616" PostTypeId="1" AcceptedAnswerId="13642" CreationDate="2010-10-21T19:03:52.933" Score="5" ViewCount="393" Body="&lt;p&gt;I happened to know some system admin and according to him - testing guys are not given preferences in an organization in comparison to developers. &#xA;No doubt software releases are not possible without testers but I've never laid my hands on testing so not much aware of it . No offense intended. &lt;/p&gt;&#xA;" OwnerUserId="1368" LastEditorUserId="6" LastEditorDisplayName="" LastEditDate="2010-10-22T00:41:34.083" LastActivityDate="2011-03-17T12:10:50.670" Title="Are testing guys considered low profilers ?" Tags="&lt;testing&gt;" AnswerCount="7" FavoriteCount="3" />
  <row Id="13617" PostTypeId="2" ParentId="13614" CreationDate="2010-10-21T19:04:59.807" Score="24" ViewCount="" Body="&lt;p&gt;Let's say MS loses the source for Windows Phone 7... people have been killed for &lt;em&gt;waaaaay&lt;/em&gt; less than the estimated $400 million it cost to develop it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on the product, there isn't a term that I can think of that is 'too strong'.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-21T19:04:59.807" CommentCount="2" />
  <row Id="13618" PostTypeId="2" ParentId="13571" CreationDate="2010-10-21T19:07:00.617" Score="1" ViewCount="" Body="&lt;p&gt;I'm restricted to a certain range for a given band in a large corporate. This applies to permanents + contractors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfair? Maybe...&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-10-21T19:07:00.617" CommentCount="2" />
  <row Id="13619" PostTypeId="2" ParentId="13614" CreationDate="2010-10-21T19:07:15.280" Score="15" ViewCount="" Body="&lt;p&gt;For a company this is like losing the crown jewels.  If it is a product with an embedded processor then they can continue to make the product &quot;as is&quot; but they lose the ability to improve it or to fix any problems.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In today's markets a company &lt;strong&gt;IS&lt;/strong&gt; it's IP.  Lose that and it goes out of business.&lt;/p&gt;&#xA;" OwnerUserId="5877" LastActivityDate="2010-10-21T19:07:15.280" CommentCount="1" />
  <row Id="13620" PostTypeId="2" ParentId="13614" CreationDate="2010-10-21T19:08:37.213" Score="1" ViewCount="" Body="&lt;p&gt;As long as they're still able to sell the product, I don't think they're in trouble.  Now, if they're under contract to a client to extend the product and provide certain new features in the next version, that's a lot more serious because it's setting them up for breach of contract penalties.  But I don't think there's a legal problem with losing the code itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This doesn't mean that it isn't an &lt;strong&gt;absolute disaster&lt;/strong&gt; for the company.  But it's a financial disaster; not a legal one.  I'd probably start with the term &quot;gross incompetence&quot; and work my way up from there.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-21T19:08:37.213" CommentCount="2" />
  <row Id="13621" PostTypeId="2" ParentId="13616" CreationDate="2010-10-21T19:08:40.707" Score="0" ViewCount="" Body="&lt;p&gt;Yes. Like it or leave it they are equally important but are always less preferred. May be because they are easy to replace.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-21T19:08:40.707" CommentCount="4" />
  <row Id="13622" PostTypeId="2" ParentId="13614" CreationDate="2010-10-21T19:10:07.240" Score="2" ViewCount="" Body="&lt;p&gt;To be honest, I think it depends on the language used. If you lose a C# codebase, it can be decompiled extremely easily, but if you lose a C++ codebase, that's far worse.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-10-21T19:10:07.240" CommentCount="3" />
  <row Id="13623" PostTypeId="1" CreationDate="2010-10-21T19:11:13.340" Score="102" ViewCount="33939" Body="&lt;p&gt;Suppose I give my developers a screaming fast machine.  WPF-based VS2010 loads very quickly.  The developer then creates a WPF or WPF/e application that runs fine on his box, but much slower in the real world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This question has two parts...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) If I give a developer a slower machine, does that mean that the resulting code may be faster or more efficient?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) What can I do to give my developers a fast IDE experience, while giving 'typical' runtime experiences?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the record, I'm preparing my even-handed response to management. This isn't my idea, and you folks are helping me correct the misguided requests of my client.  Thanks for giving me more ammunition, and references to where and when to approach this.  I've +1'ed valid use cases such as:&lt;br&gt;&#xA;- specific server side programming optimizations&lt;br&gt;&#xA;- test labs&lt;br&gt;&#xA;- the possibly buying a better server instead of top of the line graphics cards&lt;br&gt;&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-10-22T19:02:42.960" LastActivityDate="2011-04-18T06:21:32.520" CommunityOwnedDate="2010-10-22T17:12:01.930" Title="Does giving a developer a slower development machine result in faster/more efficient code?" Tags="&lt;ide&gt;&lt;testing&gt;&lt;performance&gt;" AnswerCount="47" CommentCount="33" FavoriteCount="24" />
  <row Id="13624" PostTypeId="2" ParentId="13614" CreationDate="2010-10-21T19:12:30.670" Score="3" ViewCount="" Body="&lt;p&gt;While there are certainly cases where it could be cataclysmic, I think there are plenty where it's not (at least from the perspective of the software company).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that there are far too many variables to give a blanket answer as to whether there are any legal repercussions, but a handful of questions to consider in determining that would include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What's the nature of the program? If it's something they lost because apps like it are a dime a dozen and it's not &lt;em&gt;important&lt;/em&gt;, so what? If it's the company's flagship commercial product, they've only really harmed themselves. If it's custom software they've been contracted to build, that's where it could get interesting, but they you have to ask ...&lt;/li&gt;&#xA;&lt;li&gt;Who owned the copyright of the code? (If the customer holds the copyright, then their property has been arguably lost/destroyed)&lt;/li&gt;&#xA;&lt;li&gt;Is the customer being actively harmed by the code's disappearance?&lt;/li&gt;&#xA;&lt;li&gt;Were there contracts in place regarding future development that will be breached as a result of the code's disappearance?&lt;/li&gt;&#xA;&lt;li&gt;How important is it to be able to recreate the existing software? If it's something like a shell script to do maintenance tasks, the software company eats the time it takes to make a new one that does the same things. If it's an office suite, dust off the resume.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And I'm sure there are plenty of other factors that ought to be considered. Feel free to add on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I did say &quot;from the perspective of the software company.&quot; It may still be catastrophic in the mind of the customer because of plans they had for changes, enhancements, or whatnot. A contract for such things or ownership of the copyright notwithstanding, though, it may seriously anger the customer, but without any obligation on the part of the developer aside from doing what they can to maintain good customer relations. &lt;/p&gt;&#xA;" OwnerUserId="248" LastEditorUserId="248" LastEditorDisplayName="" LastEditDate="2010-10-21T19:21:12.523" LastActivityDate="2010-10-21T19:21:12.523" CommentCount="2" />
  <row Id="13625" PostTypeId="2" ParentId="13623" CreationDate="2010-10-21T19:13:03.303" Score="333" ViewCount="" Body="&lt;p&gt;The answer is (I'll be bold and say) &lt;em&gt;always&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;&lt;strong&gt;NO&lt;/strong&gt;.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Develop on the best you can get with your budget, and test on the min-max spec range of equipment you'll deploy to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's emulators, virtual machines, actual machines with testers that can all test performance to see if it's a factor.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="7313" LastEditorDisplayName="" LastEditDate="2010-11-12T10:14:45.153" LastActivityDate="2010-11-12T10:14:45.153" CommunityOwnedDate="2010-10-22T17:12:01.930" CommentCount="11" />
  <row Id="13627" PostTypeId="2" ParentId="13616" CreationDate="2010-10-21T19:19:32.073" Score="6" ViewCount="" Body="&lt;p&gt;It depends on the company, but usually.  They're often seen as second class citizens, and in many companies, testing is seen as an entry-level position from which you would then move on to becoming a real developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is, of course, crap.  Having worked with some good testers, I can say that they are both valuable and hard to come by.  Someone with a mind that is creative enough to find non-obvious bugs and methodical enough to do a thorough job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One exception, though: I've known a few Microsoft test guys, and I hear that testers there are first-class citizens.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-21T19:19:32.073" CommentCount="2" />
  <row Id="13628" PostTypeId="2" ParentId="13623" CreationDate="2010-10-21T19:23:16.673" Score="65" ViewCount="" Body="&lt;p&gt;1)  &lt;strike&gt;Very, very unlikely.&lt;/strike&gt;&lt;b&gt;No,&lt;/b&gt; and your developers may put something nasty in your coffee for suggesting it.  Time your developers spend waiting for the code to compile or for the IDE to do whatever it's doing or whatever is time they're &lt;b&gt;not&lt;/b&gt; spending making the code better.  Disrupts their mental flow, too.  Keep their minds on the problem, and they'll be much more efficient solving that problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2)  Give them each a second PC representing the lowest specs you want them to actually support, with a KVM switch to go between the that and their real workstation.&lt;/p&gt;&#xA;" OwnerUserId="17" LastEditorUserId="17" LastEditorDisplayName="" LastEditDate="2010-10-21T19:32:22.533" LastActivityDate="2010-10-21T19:32:22.533" CommunityOwnedDate="2010-10-22T17:12:01.930" CommentCount="2" />
  <row Id="13629" PostTypeId="2" ParentId="13614" CreationDate="2010-10-21T19:25:29.253" Score="7" ViewCount="" Body="&lt;p&gt;As the others have noted, this likely falls under the &quot;it all depends&quot; heading, so a couple of senarios:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Source for a disk-based, console video game&lt;/strong&gt; - This would likely have little impact on the company since they tend to not make any changes to the game once it has been burned to disk. Granted they might lose some time if there is library code that they have to redevelop, it wouldn't be that bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Source for a downloadable video game&lt;/strong&gt; - This would likely be bad since the the customers are likely going to expect that bugs will be patched, not being able to do so could cause the customers to lose faith in the company which could adversely effect future releases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Source for a game in development&lt;/strong&gt; - Most video game companies cannot afford to lose the code for a game currently in development unless it is extremely early in the development cycle (i.e. days, maybe weeks into it.) For a small company, losing the source for their flagship release could cause them to go out of business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Source for a small business application with a limited release audience&lt;/strong&gt; - Unlikely to cause any problems for the company, although they might lose a couple customers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Source for a large business application with a limited release audience&lt;/strong&gt; - Another situation where it might cause the company to go out of business due to the loss of faith from their customers. Even in most small markets there tend to be more than one company operating and this could be enough for the business to move to a competitor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Source for a major application from a large company&lt;/strong&gt; - Here is where it really all depends and would likely be on a very narrow, case-by-case basis. Flagship products (e.g. Microsoft Windows) generally have support contracts associated with them and not being able to support the product could lead to breach of contract lawsuits. If I had to give an estimate, I would say that most people involved in the lose of the code up to senior leadership of those people might need to be looking for new employment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Across the board though, I would likely say that the person that lost the code would be looking for a new job (and might find it hard to find one!) and they might also be facing lawsuits from the company.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-10-21T19:25:29.253" />
  <row Id="13630" PostTypeId="2" ParentId="13571" CreationDate="2010-10-21T19:26:20.397" Score="3" ViewCount="" Body="&lt;p&gt;According to &lt;a href=&quot;http://en.wikipedia.org/wiki/Labour_%28economics%29&quot; rel=&quot;nofollow&quot;&gt;labor economics&lt;/a&gt;, compensation is all about the value the employee brings to the company. A firm hires employees up to the point where the Marginal Revenue Product (MRP) of the last worker hired equals the Marginal Cost of that worker (MRP=MC). So figure out how much greater your revenue will be with this employee: if its greater than or equal to the cost of this employee, then hire him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Customarily, employees get paid more for&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;More years of experience&#xA;&lt;li&gt;Higher education&#xA;&lt;li&gt;Better performance reviews&#xA;&lt;li&gt;Greater drive, passion, and aptitude&#xA;&lt;li&gt;Higher earnings at his most recent job&#xA;&lt;li&gt;Greater number of employees reporting to him&#xA;&lt;li&gt;More professional associations and certifications&#xA;&lt;li&gt;Shift differentials (working longer shifts or nighttime or weekends) &#xA;&lt;li&gt;Hazardous working conditions&#xA;&lt;li&gt;Working in a location with a higher cost of living (e.g., NYC vs. rural Iowa)&#xA;&lt;li&gt;Simply having a more generous boss&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You need to pay enough initially to attract the right employee. But don't forget you may need to pay even more later to &lt;a href=&quot;http://www.inc.com/guides/2010/04/employee-retention.html&quot; rel=&quot;nofollow&quot;&gt;retain&lt;/a&gt; a good employee! You might want to budget for that now.&lt;/p&gt;&#xA;" OwnerUserId="4128" LastEditorUserId="4128" LastEditorDisplayName="" LastEditDate="2010-10-21T21:15:37.230" LastActivityDate="2010-10-21T21:15:37.230" CommentCount="2" />
  <row Id="13631" PostTypeId="2" ParentId="13517" CreationDate="2010-10-21T19:28:28.703" Score="2" ViewCount="" Body="&lt;p&gt;I have had a similar experience when the company i work for aquired an Oracle based solution to operate its core business after using SQL Server, now we have a hybrid environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend anything from Steven Feuerstein on PL/SQL. Having his book on PL/SQL would be a must have for me as i find it indespensible in covering most of the area's of interest in a complete and comprehensive manner. I do find google a little harder to handle unless you are after something very specific.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Chankey has also said, the guides and manuals are a good source although i find them a little more heavy going.&lt;/p&gt;&#xA;" OwnerUserId="4960" LastEditorUserId="4960" LastEditorDisplayName="" LastEditDate="2010-10-22T18:56:21.037" LastActivityDate="2010-10-22T18:56:21.037" />
  <row Id="13632" PostTypeId="1" CreationDate="2010-10-21T19:28:48.577" Score="1" ViewCount="61" Body="&lt;p&gt;Few months ago, I was invited to a forum in a local university to discuss about programmers´s job market. The forum joined teachers and companies representants for understand this issue. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The final conclusion of debate was that the students are focused on tech part of software but they don't get understand the business concepts because classes has a little bit or none focus at that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The university has commited to insert more business concepts on some tech courses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think about this? &#xA;More business concepts really would help companies and students or tech courses must focus on tech things?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt;&#xA;The event was focused on Business Intelligence. So,  companies were interested in programmers who had easy understanding to business rules too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that, in this area, is essencial have these knowledgment. &lt;/p&gt;&#xA;" OwnerUserId="3082" LastEditorUserId="3082" LastEditorDisplayName="" LastEditDate="2010-10-22T11:38:52.847" LastActivityDate="2010-10-22T11:38:52.847" Title="Business Knowledge in Tech Courses" Tags="&lt;business&gt;&lt;courses&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="13633" PostTypeId="2" ParentId="1692" CreationDate="2010-10-21T19:40:59.520" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.virtualbox.org/&quot; rel=&quot;nofollow&quot;&gt;Virtual Box&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-10-21T19:40:59.520" />
  <row Id="13634" PostTypeId="2" ParentId="13571" CreationDate="2010-10-21T19:43:57.717" Score="2" ViewCount="" Body="&lt;p&gt;I don't know about other markets, but in Australia at least, it appears that the developer market is very cut-throat and mercenary, with a relatively large range of potantial pay for relatively similar positions - and little to no concept of &quot;fair pay&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a word: the main thing is to have a rare skill/experience set. If you have a generic skill set and are easy to replace, you'll probably be on average wage, if not below.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example from my current specialty (web development): low end work (esp. PHP) on relatively simple straight forward sites can pay as low as $A40,000 per year, which is about the same as you'd get for unskilled low end office admin work. On the flipsite, if you have a rarer skill set such as proven experience on very complex large sites which utilise a specific and rare combination of technologies, you can go for over $A100,000. And this is for a job description which is basically the same, &quot;web developer&quot;, and where the everyday work would be roughly the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So basically, there isn't much &quot;fairness&quot; to it. It's simple mercenary economics. People with rare skill sets, who know they are in demand and are hard to replace, get paid a lot more than generic programmers who are easy to replace. Nothing beyond this seems to make much difference. &lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-21T19:43:57.717" CommentCount="2" />
  <row Id="13635" PostTypeId="2" ParentId="1166" CreationDate="2010-10-21T19:51:00.387" Score="0" ViewCount="" Body="&lt;p&gt;A comfortable outfit , but it should be same for all co-workers as it gives kinda professional feeling when working in teams. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it were wearable outside office premises( if we have a party right after working hours, then we don't have to worry about it, it should make one proud), that'd be appreciated. &lt;/p&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-10-21T19:51:00.387" CommunityOwnedDate="2011-01-30T18:03:58.527" />
  <row Id="13636" PostTypeId="2" ParentId="13614" CreationDate="2010-10-21T19:56:08.507" Score="2" ViewCount="" Body="&lt;p&gt;If word of that got out, well, any vendor that could lose its source code by any means other than a fairly widespread disaster is obviously not following anything like sound development practices, and is not to be trusted.  I'd consider that as very strong prima facie evidence of gross corporate incompetence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How about &quot;incredible stupidity&quot;?&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-21T19:56:08.507" />
  <row Id="13637" PostTypeId="2" ParentId="13596" CreationDate="2010-10-21T19:57:15.120" Score="0" ViewCount="" Body="&lt;p&gt;Opera Browser Voice command is kinda cool ...&#xA;&lt;a href=&quot;http://help.opera.com/Windows/9.23/en/voice.html&quot; rel=&quot;nofollow&quot;&gt;http://help.opera.com/Windows/9.23/en/voice.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-10-21T19:57:15.120" />
  <row Id="13638" PostTypeId="2" ParentId="13376" CreationDate="2010-10-21T20:00:16.030" Score="2" ViewCount="" Body="&lt;p&gt;We have Scrum-of-scrums daily. The typical day goes like this...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;9:15 - individual teams have their stand-up meetings. The usual stuff: what you did yesterday, what you're doing today and (most importantly) any blocks&#xA;9:30 - Scrum Masters from each team have their Scrum-of-scrums. Same stuff: what the team did yesterday, what they're working on today and &lt;strong&gt;most importantly&lt;/strong&gt; (even more so than for the individual team Scrums) any blocks and/or cross-team issues&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing it this way requires a lot of discipline to stay focussed on the important stuff, but that's Agile in general for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, the most important thing, regardless of how or when or who is that blockages and cross-team issues are raised and resolved quickly. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally as Casey mentioned, don't be dogmatic. If it doesn't work - do something about it. &lt;/p&gt;&#xA;" OwnerUserId="5677" LastActivityDate="2010-10-21T20:00:16.030" />
  <row Id="13639" PostTypeId="2" ParentId="13632" CreationDate="2010-10-21T20:00:38.760" Score="1" ViewCount="" Body="&lt;p&gt;This was sorta asked before and I'll give a similar answer - there just in not enough time during a 4 yr degree to teach all the engineer mechanics necessary, provide a well-rounded education, and include business courses. It would be nice, business would love it but it's just not possible. Personally I would not want to ding the engineering courses to add business courses.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-21T20:00:38.760" CommentCount="2" />
  <row Id="13640" PostTypeId="2" ParentId="13614" CreationDate="2010-10-21T20:01:37.243" Score="0" ViewCount="" Body="&lt;p&gt;If they don't have to fix any bugs, then it's probably not that big of a deal.  For example, if the company makes custom ActiveX controls, and they lose the source to one of their legacy products, then who really cares?  The product probably isn't actively maintained, and likely isn't being aggressively marketed, either.  They'll sell it as long as people still use 32-bit ActiveX, and then forget about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I'd still classify it as gross negligence.  Obviously there's no source code management system in place, which is professional incompetence for a software house.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-10-21T20:01:37.243" CommentCount="2" />
  <row Id="13641" PostTypeId="1" AcceptedAnswerId="13644" CreationDate="2010-10-21T20:01:52.767" Score="3" ViewCount="303" Body="&lt;p&gt;As IT manager what goals would you set for your programmers in your team. These goals would be used in the annual performance review. Any recommendations?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How would you create goals that actually measure programmers technical abilities.&lt;/p&gt;&#xA;" OwnerUserId="5910" LastEditorUserId="5910" LastEditorDisplayName="" LastEditDate="2010-10-21T21:37:30.603" LastActivityDate="2010-10-21T21:37:30.603" Title="annual goal for programmers in IT company" Tags="&lt;management&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="13642" PostTypeId="2" ParentId="13616" CreationDate="2010-10-21T20:03:02.093" Score="13" ViewCount="" Body="&lt;p&gt;In my experience, unfortunately, they are often treated like second class employees and even worse a frivolous perk for programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It stems from a number of things:  &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;When the testers are doing their jobs correctly, it is easy for everyone but the programmers to forget they even exist. Much like a network admin, you only notice them when they are not doing their jobs, or doing them badly. So from the perspective of the rest of the organization, they are remembered only for their mistakes.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It is mistakenly seen as an entry-level job for people who aspire to be programmers, but aren't qualified yet for those jobs. In fact, at one company I worked they were given Jr. Programmer job titles despite their pleas to get a Q&amp;amp;A job title. Even the fact that they were in a QA department wasn't enough to get HR to budge on that.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Because of #2, it is assumed that testers are all entry-level folks, and should be paid accordingly.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Nobody likes to be criticized, and it is all too common for defensive programmers to dislike testers because their jobs require them to point out programmer mistakes all day. As a manager, I was constantly on a PR mission to remind programmers that the QA team was there to make them look good, not narc them out.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It tends to be a job people get into by accident and not choice, at least initially. I don't remember any degree plan at any of the schools I attended that prepared people for software Q&amp;amp;A. They do exist, but usually at the lower-end vocational schools, which only contributes to the idea that they are less skilled professionals.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Testing jobs are much more likely than programming jobs to be sent offshore. At least the programmers can argue that it is more efficient to communicate design needs locally and that it is valuable to keep the knowledge of how the company's flagship app works inside the company. Testing, however, is much easier to modularize and thus easier to outsource.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;For all of the reasons above, testers tend to see the writing on the wall and move into other jobs (like programming), especially the really good ones. This means that most testing jobs tend to get staffed with more entry level people who haven't burned out on it yet or moved on to other things, which unfortunately reinforces several of the above ideas.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="287" LastEditorUserId="3801" LastEditorDisplayName="" LastEditDate="2011-03-17T12:10:50.670" LastActivityDate="2011-03-17T12:10:50.670" CommentCount="4" />
  <row Id="13643" PostTypeId="2" ParentId="13616" CreationDate="2010-10-21T20:03:46.460" Score="1" ViewCount="" Body="&lt;p&gt;Good testers who can analyse problems efficiently and can do decent test automation are worth their weight in gold as there are so many cowboy testers out there (when interviewing one &quot;tester&quot; once he actually burst out laughing as he realised that we knew he was making stuff up on the spot whilst being quizzed on his CV).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my team the tester is treated as an equal - which includes responsibility and salary. If you want a tester that clicks next all day - outsource them to somewhere cheap (we also do that).&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-21T20:03:46.460" />
  <row Id="13644" PostTypeId="2" ParentId="13641" CreationDate="2010-10-21T20:04:20.327" Score="5" ViewCount="" Body="&lt;p&gt;I'd try to dovetail this with the technical diretion of the company - are you trying to move all your GUI to WPF? Then learning WPF would be a good goal. I'd always emphasize learning the business - the more the programmers know about the business the better they can help automate.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-21T20:04:20.327" />
  <row Id="13645" PostTypeId="2" ParentId="13641" CreationDate="2010-10-21T20:09:41.047" Score="2" ViewCount="" Body="&lt;p&gt;I generally set goals that are product oriented so it's clear what we're working on.  However, I realize that those may change so I usually include goals that help the team while working on what I believe is a weakness of the team member.  For example, if the team member struggles writing English, I create a goal that requires them to write (they can't get better if they avoid doing it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also like to include goals that help them achieve their personal goals.  If they indicate they want to move from code-monkey to developer, then I'll set a goal or two that requires them to help write a spec document.&lt;/p&gt;&#xA;" OwnerUserId="4453" LastActivityDate="2010-10-21T20:09:41.047" />
  <row Id="13646" PostTypeId="2" ParentId="1692" CreationDate="2010-10-21T20:13:01.100" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;VirtuaWin&lt;/strong&gt; and &lt;strong&gt;VMware&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-10-21T20:13:01.100" />
  <row Id="13647" PostTypeId="2" ParentId="13641" CreationDate="2010-10-21T20:15:11.347" Score="10" ViewCount="" Body="&lt;p&gt;This can be really difficult, because good goals for employees should be specific and quantifiable. As we know, quantifying a programmer's productivity is definitely a conundrum. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience managing programmers, I try to create goals based on the long term goals of the individual employee. For example, if the programmer aspires to move into management I'll set a goal for them to seek out and take on leadership roles on teams or projects to help them build some informal authority that will be necessary for the transition. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually, however, to create measurable goals they tend to be fairly task oriented. For example getting a MCDBA certification for someone who wants to move into a DBA role. For someone who claims they want to improve/learn on a particular technology I'll usually pick a goal like reading x books on the topic or teaching a brown-bag class to the other developers on the technology.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-21T20:15:11.347" CommentCount="3" />
  <row Id="13648" PostTypeId="2" ParentId="13540" CreationDate="2010-10-21T20:21:33.530" Score="0" ViewCount="" Body="&lt;p&gt;I've found these non-for profit, accredited, online-only programs/colleges:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Uni Illinois, very tough/limited CS program, may have an information systems&#xA;&lt;a href=&quot;http://www.uis.edu&quot; rel=&quot;nofollow&quot;&gt;http://www.uis.edu&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;private&#xA;&lt;a href=&quot;http://www.regis.edu/&quot; rel=&quot;nofollow&quot;&gt;http://www.regis.edu/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;private, accelerated, flexible, quarter system, minor&#xA;&lt;a href=&quot;http://depaul.edu&quot; rel=&quot;nofollow&quot;&gt;http://depaul.edu&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;public, expensive, computer science and information system&#xA;&lt;a href=&quot;http://umuc.edu&quot; rel=&quot;nofollow&quot;&gt;http://umuc.edu&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;UMASS Online&#xA;&lt;a href=&quot;http://www.umassonline.net/&quot; rel=&quot;nofollow&quot;&gt;http://www.umassonline.net/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Penn State World&#xA;&lt;a href=&quot;http://www.worldcampus.psu.edu/&quot; rel=&quot;nofollow&quot;&gt;http://www.worldcampus.psu.edu/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Troy website not working, a minus but cost is good.&#xA;&lt;a href=&quot;http://www.troy.edu/ecampus/programs/ugdegreeprograms.htm&quot; rel=&quot;nofollow&quot;&gt;http://www.troy.edu/ecampus/programs/ugdegreeprograms.htm&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eastern Carolina -- a business program, probably cheapest option&#xA;&lt;a href=&quot;http://www.ecu.edu/business/undergraduateprograms.cfm&quot; rel=&quot;nofollow&quot;&gt;http://www.ecu.edu/business/undergraduateprograms.cfm&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since 1889&#xA;&lt;a href=&quot;http://www.saintleo.edu/Academics/School-of-Business/Undergraduate-Degree-Programs/Computer-Information-Systems/Degree-Requirements&quot; rel=&quot;nofollow&quot;&gt;http://www.saintleo.edu/Academics/School-of-Business/Undergraduate-Degree-Programs/Computer-Information-Systems/Degree-Requirements&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;newer public school&#xA;&lt;a href=&quot;http://www.rsu.edu/rsuonline/&quot; rel=&quot;nofollow&quot;&gt;http://www.rsu.edu/rsuonline/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Columbia College&#xA;&lt;a href=&quot;http://www.ccis.edu/&quot; rel=&quot;nofollow&quot;&gt;http://www.ccis.edu/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Drexel Online (expensive)&#xA;&lt;a href=&quot;http://www.drexel.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.drexel.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;List of others that might fit&#xA;&lt;a href=&quot;http://oedb.org/rankings&quot; rel=&quot;nofollow&quot;&gt;http://oedb.org/rankings&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;May be others in this list&#xA;&lt;a href=&quot;http://www.forbes.com/bow/b2c/category.jhtml?id=147&quot; rel=&quot;nofollow&quot;&gt;http://www.forbes.com/bow/b2c/category.jhtml?id=147&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;very tough to find these&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="5882" LastEditorUserId="5882" LastEditorDisplayName="" LastEditDate="2010-10-22T13:52:53.970" LastActivityDate="2010-10-22T13:52:53.970" />
  <row Id="13649" PostTypeId="2" ParentId="13614" CreationDate="2010-10-21T20:31:42.790" Score="0" ViewCount="" Body="&lt;p&gt;I would liken it to other jobs that require construction of an item. Likely something physical. e.g. If an architect lost the plans for a building that was built; If an automobile company lost the plans for a model of car; If a seamstress lost the pattern for an outfit they had made; etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many jobs that have physical comparisons to liken to creating software.&lt;/p&gt;&#xA;" OwnerUserId="4478" LastActivityDate="2010-10-21T20:31:42.790" CommentCount="6" />
  <row Id="13650" PostTypeId="2" ParentId="13623" CreationDate="2010-10-21T20:39:03.177" Score="29" ViewCount="" Body="&lt;p&gt;This is a terrible idea.  You want your developers to be as productive as possible, which means giving them as fast a machine as possible, so they don't sit around all day waiting for things to compile.  (Slightly OT, but it also helps not to block their access to potentially helpful sites with WebSense and the like.)  If you are constrained by having users who are still running Stone-Age technology, then you'll need to have a test machine with similar specs, and be sure to test early and often to make sure that you aren't going down the wrong road in terms of technology choices.&lt;/p&gt;&#xA;" OwnerUserId="5415" LastActivityDate="2010-10-21T20:39:03.177" CommunityOwnedDate="2010-10-22T17:12:01.930" CommentCount="1" />
  <row Id="13651" PostTypeId="2" ParentId="13590" CreationDate="2010-10-21T20:40:17.963" Score="2" ViewCount="" Body="&lt;p&gt;&quot;clean code&quot; is one of those marketing-phrases that puts a dent in my ability to take anything the person says afterward without a serious grain of salt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;@grokus about has it right.&lt;/p&gt;&#xA;" OwnerUserId="5918" LastEditorUserId="5918" LastEditorDisplayName="" LastEditDate="2010-10-22T12:43:40.927" LastActivityDate="2010-10-22T12:43:40.927" CommunityOwnedDate="2011-02-23T01:29:15.137" CommentCount="1" />
  <row Id="13652" PostTypeId="2" ParentId="2240" CreationDate="2010-10-21T20:41:33.840" Score="0" ViewCount="" Body="&lt;p&gt;&quot;Agile Principles, Patterns, and Practices in C#&quot; by Robert C. Martin.  I think he has a Java version of the book as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, not a pattern itself, but Domain Driven Design has some great concepts even if you don't go for the full DDD approach.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  * Ubiquitous Language&#xA;  * Code first approach (vs. DB first)&#xA;  * etc.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" LastActivityDate="2010-10-21T20:41:33.840" />
  <row Id="13653" PostTypeId="2" ParentId="13632" CreationDate="2010-10-21T20:44:16.970" Score="0" ViewCount="" Body="&lt;p&gt;First question:  what's being removed to add business concepts?  I've looked at curricula before and thought they were light on certain concepts, but couldn't find anything less valuable to remove.  The number one desirable feature in a programmer hire is the ability to program well, number two is the ability to fit into the team.  (Fail either and you've got somebody worse than useless, while a naive but competent programmer can be very useful.)  Knowing how the business works is nice, but way down there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second question:  Which tech courses are we talking about, and who takes them?  Science courses should concentrate on science.  People taking the courses to go to grad school have no immediate need of the business concepts, and need all the tech prep they can get.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Third question:  Which business concepts?  Ideally they'd be fairly basic and applicable to most businesses, and that really limits them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What anybody in a company needs to know is what pays their salaries, and that's fairly simple in most companies.  Knowing how sales, marketing, accounting, and such things work is usually not important.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-21T20:44:16.970" CommentCount="2" />
  <row Id="13655" PostTypeId="2" ParentId="13590" CreationDate="2010-10-21T20:52:38.730" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Keeping it as concise and as small as possible. (KISS)&lt;/li&gt;&#xA;&lt;li&gt;Logical separation of functionality.&lt;/li&gt;&#xA;&lt;li&gt;Enough layers of abstraction to keep each component manageable.&lt;/li&gt;&#xA;&lt;li&gt;Consistent coding style.&lt;/li&gt;&#xA;&lt;li&gt;Intuitively named object/methods/variables.&lt;/li&gt;&#xA;&lt;li&gt;DRY - Don't repeat your self.&lt;/li&gt;&#xA;&lt;li&gt;Well documented.&lt;/li&gt;&#xA;&lt;li&gt;Unit and regression tests.&lt;/li&gt;&#xA;&lt;li&gt;Avoid use of globals.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3122" LastActivityDate="2010-10-21T20:52:38.730" CommunityOwnedDate="2011-02-23T01:29:15.137" />
  <row Id="13656" PostTypeId="2" ParentId="13623" CreationDate="2010-10-21T21:08:17.773" Score="4" ViewCount="" Body="&lt;p&gt;Point 1, NO! Studio is meant to be run on decent machines and that requirement has only become more powerful with each version.  You can actually lock some versions of studio if you turn intellisense on and use a single core non HT box.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To point #2 there are some features in the testing projects that allow you to throttle some resources.  They are not perfect, but they are there.  VPC or low spec VM images to a pretty good job of being constrained as well.  I have had users sit down at bad machines to do testing occasionally so that they can see the implications of the features they have requested.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-10-21T21:08:17.773" CommunityOwnedDate="2010-10-22T17:12:01.930" />
  <row Id="13657" PostTypeId="2" ParentId="13623" CreationDate="2010-10-21T21:11:06.797" Score="6" ViewCount="" Body="&lt;p&gt;It results in a bunch of bitchin' developers. This stuff is hard enough as it is, let's not make the experience worse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would encourge you to have similar hardware to your users in a Test or QA environment to smoke out any performance issues however. That's a good idea.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-10-21T21:11:06.797" CommunityOwnedDate="2010-10-22T17:12:01.930" CommentCount="1" />
  <row Id="13658" PostTypeId="1" CreationDate="2010-10-21T21:17:20.760" Score="0" ViewCount="59" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a javascript that runs uses a replace with regular expressions to modify content on a page. I'm having a problem with a specific RegExp (regular expressions) quantifier, though. Every documentation I've read (and I know it work in Regex in other languages, too) says that Javascript supports the &quot;&lt;em&gt;{N}&lt;/em&gt;&quot;, &quot;&lt;em&gt;{N,}&lt;/em&gt;&quot; and &quot;&lt;em&gt;{N,N}&lt;/em&gt;&quot; quantifiers. That is, you can specify a particular number of matches you want, or a range of matches. E.g. &quot;(zz){5,}&quot; matches at least 10 &quot;z&quot; in a row, and &quot;z{5,10}&quot; would match any amount of &quot;z&quot; from 5 to 10, no more and no less.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is, I can match an exact number (e.g. &quot;z{5}&quot;) but not a range. The nearest I can figure is that it has something to do with the comma in the regex string, but I don't understand why and can't get around this. I have tried escaping the comma and even using the unicode hexidecimal string for comma (\u002C), but to no avail.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If anyone has any insight, it would be much-appreciated.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-21T21:17:20.760" ClosedDate="2010-10-21T22:00:17.797" Title="Javascript RegExp quantifier problem" Tags="&lt;javascript&gt;&lt;regular-expressions&gt;" CommentCount="2" />
  <row Id="13659" PostTypeId="2" ParentId="13590" CreationDate="2010-10-21T21:17:50.900" Score="2" ViewCount="" Body="&lt;p&gt;I haven't read the book you suggest but my idea of clean code is as follows...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Similar format (look and feel) throughout&lt;/li&gt;&#xA;&lt;li&gt;Parameter naming is consistent and makes since&lt;/li&gt;&#xA;&lt;li&gt;Parameters are EXPLICIT and STRICT in use&lt;/li&gt;&#xA;&lt;li&gt;Comments that are concise/relevant and not stories (I have seen some code whose comments read like a book when there are only a handful of lines of code)&lt;/li&gt;&#xA;&lt;li&gt;Simplicity is best when possible&lt;/li&gt;&#xA;&lt;li&gt;Complexity should be used only when required and documented appropriately - Complexity should not be used to make yourself (if you are the developer) the knowledge silo of the system in an attempt to make yourself a &quot;required&quot; asset of the company in order to continue support - which I have seen done before&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5919" LastActivityDate="2010-10-21T21:17:50.900" CommunityOwnedDate="2011-02-23T01:29:15.137" />
  <row Id="13660" PostTypeId="2" ParentId="13540" CreationDate="2010-10-21T21:31:22.550" Score="1" ViewCount="" Body="&lt;p&gt;I got mine from University of Maryland University College. &lt;a href=&quot;http://umuc.edu/&quot; rel=&quot;nofollow&quot;&gt;http://umuc.edu/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;UMUC is part of the Maryland state university system and is a public institution. Their computer science program is pretty good and entirely online.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;UMUC is also regionally accredited by the US Dept. of Education. &lt;a href=&quot;http://umuc.edu/gen/accred.shtml&quot; rel=&quot;nofollow&quot;&gt;http://umuc.edu/gen/accred.shtml&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5832" LastActivityDate="2010-10-21T21:31:22.550" CommentCount="1" />
  <row Id="13661" PostTypeId="2" ParentId="12394" CreationDate="2010-10-21T21:33:52.927" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;no commercial use with the exception of selling &lt;em&gt;support&lt;/em&gt; for the application (i.e. the app cannot be sold, but everything around it can)&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Beware that the GPL doesn’t forbid selling the application, and forbidding this would indeed render your license non-free, as observed by Huperniketes. The only thing the GPL ensures is that the company selling the software would &lt;em&gt;also&lt;/em&gt; have to provide the code base for free. But they don’t have to provide the &lt;em&gt;software&lt;/em&gt; package as-is for free. That’s quite a big difference, since the source code of a software is not a readily usable product.&lt;/p&gt;&#xA;" OwnerUserId="2366" LastActivityDate="2010-10-21T21:33:52.927" CommentCount="3" />
  <row Id="13662" PostTypeId="2" ParentId="13512" CreationDate="2010-10-21T21:37:29.557" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I know I could be making more out there&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Based on what?  Your dreams?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without facts, that's a dangerous hope.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2010-10-21T21:37:29.557" />
  <row Id="13663" PostTypeId="2" ParentId="13623" CreationDate="2010-10-21T21:52:17.243" Score="0" ViewCount="" Body="&lt;p&gt;That programmers sitting on slow hardware would write faster applications is equivalent to arguing that race car engineers equipped with crappy tools would make faster vehicles.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-21T21:52:17.243" CommunityOwnedDate="2010-10-22T17:12:01.930" CommentCount="1" />
  <row Id="13664" PostTypeId="2" ParentId="13623" CreationDate="2010-10-21T21:54:15.207" Score="3" ViewCount="" Body="&lt;p&gt;This is an interesting thought (giving devs a slow machine may lead them to optimize more).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the solution is framed in a better way - put the response time in the requirements for programs, and have a low-end machine available for testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you have a really whiz-bang compiler/language, it might be able to devise different ways to generate code and pick the best one. That would only be helped by a faster computer.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-21T21:54:15.207" CommunityOwnedDate="2010-10-22T17:12:01.930" />
  <row Id="13665" PostTypeId="2" ParentId="13570" CreationDate="2010-10-21T21:55:31.197" Score="0" ViewCount="" Body="&lt;p&gt;Start by writing unit tests.  Pick a class or a function and write a set of tests corresponding to how you think it should work.  If the tests fail, figure out why.  If it is a bug - fix it.  If your expectations turn out to be wrong, figure out what the thing actually does and modify the tests accordingly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have a decent set of working unit tests, you have a safety net for doing some refactoring to make the code cleaner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep iterating until you understand the code base.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Needless to say, this is something you should do ahead of time, not in response to a bug report.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-21T21:55:31.197" />
  <row Id="13667" PostTypeId="2" ParentId="13623" CreationDate="2010-10-21T22:07:35.153" Score="2" ViewCount="" Body="&lt;p&gt;Others have responded that generally you want developers to have fast machines.  I agree.  Do not skip on RAM - you want as much in memory as you can - some build processes are very heavy on disk usage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things you might want to consider getting rid of is antivirus on build drives!  That only slows down and can be an extremely strong slowing down factor.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may want to let the developes develop on Linux if possible.  The tools there are much better for all kinds of extra tasks  (just grep for something in a file, etc).  This also gets rid of the anti-virus.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-21T22:07:35.153" CommunityOwnedDate="2010-10-22T17:12:01.930" CommentCount="1" />
  <row Id="13668" PostTypeId="2" ParentId="9048" CreationDate="2010-10-21T22:13:55.157" Score="1" ViewCount="" Body="&lt;p&gt;There are only two kinds of languages: the ones people complain about and the ones nobody uses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- Bjarne Stroustrup, creator of C++&lt;/p&gt;&#xA;" OwnerUserId="3044" LastActivityDate="2010-10-21T22:13:55.157" CommentCount="1" />
  <row Id="13669" PostTypeId="2" ParentId="13623" CreationDate="2010-10-21T22:34:47.277" Score="4" ViewCount="" Body="&lt;p&gt;Nope - in fact it would result in more bugs because they won't do as much testing, and they won't use extra tools like profilers as much.  Give them the best machines you can afford (including graphics acceleration hardware if you're a game development or graphics shop), and have them test inside VMs.  The VM specs can be scaled up or down as needed.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-21T22:34:47.277" CommunityOwnedDate="2010-10-22T17:12:01.930" CommentCount="1" />
  <row Id="13670" PostTypeId="2" ParentId="13616" CreationDate="2010-10-21T22:35:50.230" Score="5" ViewCount="" Body="&lt;p&gt;I've worked as a functional tester for a year on a fairly large project. Each team of about 10 members had 2-3 were testers. I must say that we were treated as equally important to the project as the developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finding bugs is not easy. First, the testers have to understand what the code is suppose to do. That means reading and understanding the requirements. Key here is understanding the requirements - if the testers can't understand the requirements well enough to know how to to write positive test cases, you should be worried. This means that the developers have written some code that does what they've assumed it to do. Is this assumption the right one? You don't know until you've sorted out the requirements, and you can thank your testers for finding that flaw.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, the testers have to write false test cases, which ensures that the code &lt;em&gt;does not&lt;/em&gt; what it's not supposed to do. A reasonable rule of thumb is that you write 5-10 false test cases for every positive test case. This means understanding the requirements even further, and often &lt;em&gt;this&lt;/em&gt; information is, or was at least in our project, confusing and ambiguous. (And it wasn't because of low effort on gathering requirements - we had something like 13,000 in our team alone.) Again, the developers will have written their code using their assumptions, or even worse, not even considered this at all. So what does the code do under these conditions which are not normal? You don't know until you've tested it. Maybe the program doesn't respond; maybe it just crashes; maybe it destroys data; maybe it allows the user to run commands as root user. Whatever it does, you want to know. Otherwise you may find yourself reading the following headline in the newspaper one day - &lt;strong&gt;BUG IN [YOUR COMPANY NAME]'S FLAGSHIP PROGRAM LEAKS CLIENTS' CREDIT CARD NUMBERS.&lt;/strong&gt; You can thank your testers if this doesn't happen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So treat your testers good. Treat them well. After all, they are the ones who root out the bugs in your software and make your, and our, life easier.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-21T22:35:50.230" CommentCount="1" />
  <row Id="13671" PostTypeId="1" AcceptedAnswerId="13672" CreationDate="2010-10-21T22:36:30.830" Score="0" ViewCount="277" Body="&lt;p&gt;Hello guys&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am just too curious to know all your thoughts on old school software developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of them come from Cobol ages, Pascal, Mumps, Basic, Clipper, C and C++, Assembly :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imagine a situation where managers put you and some school guys to talk about the adequate system behavior or any features or functionalities a system should have. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now when you are talking, this guy interrupts you (raising his voice) telling you are wrong and propose some stupid idea you know it will cause trouble to your company. Well, people know him from 10 thousand years ago, and they pay attention to the wrong solution. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question is, how do you react with old school know-all developers that try to draw attention to themselves. Do you interrupt again and insist, or you let everyone go for the worst solution?&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-22T16:34:16.713" ClosedDate="2010-10-23T01:20:30.433" Title="How do you react to old school know-all developers?" Tags="&lt;behavior&gt;&lt;relationships&gt;" AnswerCount="4" CommentCount="5" />
  <row Id="13672" PostTypeId="2" ParentId="13671" CreationDate="2010-10-21T22:44:24.927" Score="9" ViewCount="" Body="&lt;p&gt;I try to guide them to the right decision, and when they come to it I do the opposite of what I want to do:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I say, &quot;Wow, that's a great idea!  I'm glad I'm on your team.&quot;  Their success is your success.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or something to that effect.  Programmers have egos.  Those egos grow over time.  If this person won't listen to you, then get them to take advice from someone they will listen to - themselves.  It's hard, but give them credit for ideas and things you implement from the start.  When your boss comes to thank you for your hard work, in front of the other developer say, I couldn't have done it without X's help and guidance.  Usually, this will get them to think more highly of you.  They'll start to learn that your success is their success and will become more open.  I've used this technique time and time again as a consultant and it's always helped.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, many times those &quot;old school&quot; developers actually DO know what will and won't work at companies.  The most influential thing that kills most projects and hinders progess is people and politics.  &lt;strong&gt;Developers that have been around the company for many years know the ropes of those politics and can often take a &quot;good enough&quot; approach much further than a &quot;perfect&quot; approach that is shoved down managers' throats.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Note: There are always exceptions&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-21T22:44:24.927" CommentCount="1" />
  <row Id="13673" PostTypeId="1" CreationDate="2010-10-21T22:49:33.850" Score="3" ViewCount="131" Body="&lt;p&gt;Not sure if I asked this at the right place (it's development related). It would be great if you can direct me to the right place if I did ask in the wrong place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was encouraged by hosts during some company tours to participate in the open-source software community if interested in software. The reasons include showing initiative to contribute useful components to a project while others can evaluate the quality of your design and coding practices. However, other than case studies of CUSP being bought out by Apple Inc., I can't think of other case studies showing the trend of interesting opportunities being attracted over the long term.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have any high-profile projects fitting this criteria that comes to your mind? Appreciate it in advance for your suggestions!&lt;/p&gt;&#xA;" OwnerUserId="5937" LastActivityDate="2010-10-22T18:45:26.223" Title="Open Source Projects Leading to Uniquely Interesting Opportunities" Tags="&lt;open-source&gt;&lt;employment&gt;" AnswerCount="3" />
  <row Id="13674" PostTypeId="2" ParentId="13623" CreationDate="2010-10-21T22:55:59.053" Score="5" ViewCount="" Body="&lt;p&gt;I think this is an interesting question, and I wouldn't go for a &quot;no&quot; that quickly. My opinion is: it depends on what kind of developing team we are talking about. Example: if you are leading a group that's running for the annual ICFP programming contest, maybe having good results after a small amount of developing time on a HPC cluster wouldn't necessarily mean that the solution you found is good. The same can be said if you are writing some scientific or numerical algorithm: on your old AMD Duron 600 MHz with 64 MB of memory you're forced to be careful about the way you are getting things done, and this may affect even some design choices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, a smart programmer/scientist/whatever is supposed to be careful anyways. But I found myself writing down some of my best codes when I had NO computer AT ALL and had to take notes on paper. This may not apply for big projects involving huge frameworks, when an IDE is strictly necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing is sure: fast machines and good immediate results make (bad) programmers spoiled and may be one of the reasons for some of the crap we find on computers.&lt;/p&gt;&#xA;" OwnerUserId="5936" LastEditorUserId="5936" LastEditorDisplayName="" LastEditDate="2010-10-22T00:19:16.590" LastActivityDate="2010-10-22T00:19:16.590" CommunityOwnedDate="2010-10-22T17:12:01.930" CommentCount="1" />
  <row Id="13675" PostTypeId="2" ParentId="13671" CreationDate="2010-10-21T22:59:09.273" Score="1" ViewCount="" Body="&lt;p&gt;Hmm...  I guess I must be an old-timer, since I primarily program in C++... ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the first thing to do in the situation you have described, is to ask yourself: &quot;Is this old geezer really saying something stupid, or could it be that in his 10000 years of coding he has actually learned a thing or two, and has a valid point.&quot;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are really sure that your way is best, then the best thing to do is to explain in a calm and respectful tone why your idea works and his does not.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-21T22:59:09.273" />
  <row Id="13676" PostTypeId="1" AcceptedAnswerId="13677" CreationDate="2010-10-21T22:59:53.950" Score="9" ViewCount="446" Body="&lt;p&gt;Hello guys&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had many bosses, each one had a different approach about allowing or not use of Windows Live Messenger, Facebook, and many other Internet sites.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course Internet is really needed to research about the best way to solve a specific task. Sometimes you could have a friend online, also a programmer, who knows better about something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For some managers, internet access would slow down project progress, and on the other hand, allow people to interact and find out brand new solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would you do?&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-12-11T21:53:39.707" Title="Would you allow your programmers to use Messenger and social networks like Facebook?" Tags="&lt;productivity&gt;&lt;social-networks&gt;" AnswerCount="13" FavoriteCount="2" />
  <row Id="13677" PostTypeId="2" ParentId="13676" CreationDate="2010-10-21T23:06:17.593" Score="24" ViewCount="" Body="&lt;p&gt;I wouldn't make it an issue unless it became a problem. I prefer to treat my employees as adults and assume they will act professionally unless there is evidence to the contrary. For example, if someone is continually missing deadlines without a good reason I might check in on them once in a while and if they are wasting time online, THEN I would deal with that individual as needed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, since none of my employees are paid hourly, I don't see the sense in policing every minute they spend at the office as long as they are getting their work done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The exception might be if they were doing something online that is otherwise problematic (porn, leaking company secrets, badmouthing the company publicly, etc.) For those things we would have specific policies against it and deal with infractions also on an individual basis. &lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-21T23:06:17.593" CommentCount="2" />
  <row Id="13678" PostTypeId="2" ParentId="13676" CreationDate="2010-10-21T23:07:06.190" Score="4" ViewCount="" Body="&lt;p&gt;Basically a developer needs full access to the Internet, to search for information, download programs etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore a liberal policy is important.   Then it comes down to, can the individual person use it in a &quot;reasonable&quot; amount of time each day, which in turn is measurable by - how long is this project estimated to take, and how long took it really.  If productivity is low, then consider looking at why.  If productivity is high or acceptable then let the developers do as they like.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-21T23:07:06.190" CommentCount="3" />
  <row Id="13679" PostTypeId="2" ParentId="13676" CreationDate="2010-10-21T23:08:18.980" Score="16" ViewCount="" Body="&lt;p&gt;In a team of developers it very quickly becomes clear who is productive and who is not.  IMHO, banning IM or Facebook will not make bad programmers any more productive, but it certainly will negatively affect the morale of the good ones.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2010-10-22T13:58:48.380" LastActivityDate="2010-10-22T13:58:48.380" />
  <row Id="13680" PostTypeId="2" ParentId="11486" CreationDate="2010-10-21T23:08:29.353" Score="3" ViewCount="" Body="&lt;p&gt;From my own experience, working with a good code lets you learn things, extend the existing good code with your own and feel happy. Working with a bad code may make you feel anger, frustration and apathy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's not, think again whether you consider yourself a good programmer...&lt;/p&gt;&#xA;" OwnerUserId="5928" LastActivityDate="2010-10-21T23:08:29.353" />
  <row Id="13681" PostTypeId="2" ParentId="13676" CreationDate="2010-10-21T23:09:15.330" Score="8" ViewCount="" Body="&lt;p&gt;If you can't trust your employees to get their work done because of the presence of distractions, then you might be hiring the wrong type of people.&lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-10-21T23:09:15.330" CommentCount="2" />
  <row Id="13682" PostTypeId="2" ParentId="13676" CreationDate="2010-10-21T23:09:55.843" Score="3" ViewCount="" Body="&lt;p&gt;we use Messenger inter-office. I would have to say &quot;no&quot; to facebook (etc.) as the temptation to update your profile rather then doing your coding, is too great. Of course, the exception would be if you are developing something for facebook (etc.)  Not to mention the addiction many people have to Farmville (etc.)&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-21T23:09:55.843" CommentCount="2" />
  <row Id="13683" PostTypeId="2" ParentId="13676" CreationDate="2010-10-21T23:10:30.697" Score="3" ViewCount="" Body="&lt;p&gt;Personally, if I wanted to slack off on a workplace, I would've used a book or a music player instead of facebook. Some people prefer chit-chat with colleagues.&lt;br&gt;&#xA;And overall, all those internat-limitation policies seem like installing and locking a door without walls. If employee has a problem with attitude, it (problem) needs to be dealt with directly.&lt;/p&gt;&#xA;" OwnerUserId="5938" LastActivityDate="2010-10-21T23:10:30.697" CommentCount="1" />
  <row Id="13684" PostTypeId="2" ParentId="13623" CreationDate="2010-10-21T23:12:23.927" Score="28" ViewCount="" Body="&lt;p&gt;Development should be done in the best environment that is feasible.&#xA;Testing should be done in the worst environment that is feasible.&lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-10-21T23:12:23.927" CommunityOwnedDate="2010-10-22T17:12:01.930" />
  <row Id="13685" PostTypeId="2" ParentId="13614" CreationDate="2010-10-21T23:19:31.763" Score="3" ViewCount="" Body="&lt;p&gt;Ah, given this clarification from you (in the comments):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;It was developed a long time ago, without source control, they've been selling it all this time and now suddenly they need to update it &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In &lt;em&gt;this specific situation&lt;/em&gt;, I would say it's probably not the end of the world. Given that they've been selling the software for years without needing the source code, then you can just say to this one customer that's requesting the update, &quot;sorry no-can-do&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now don't get me wrong, losing the code is not good. It's going to be very expensive for your company to re-write or reverse-engineer the original version (if that's what they decide to do). But it's not the end of the world. They've obviously survived for this long without needing the code, so they probably continue to survive without it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is assuming, of course, that the software they're selling is only a small part of their business. Which I'm guessing must be the case...&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-21T23:19:31.763" CommentCount="1" />
  <row Id="13686" PostTypeId="2" ParentId="13547" CreationDate="2010-10-21T23:23:23.970" Score="3" ViewCount="" Body="&lt;p&gt;It is a high-tempo environment - &lt;strong&gt;time is money&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to be at your desk and effective before the markets open in your timezone and stay at least a couple of hours after too. You need to learn a heck of a lot of diverse systems, how they work and their complex interdependecies. And fast. When someone rolls out a buggy minor version of some distant system and all hell breaks loose, you need the confidence, stamina and know-how of how to, e.g., remotely connect into some production server, diagnose the problem, debug the bad processes - sometimes live - and then follow up with hotfixes/patches, while all the time keeping incident management teams aware of the situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the times when you're not fire-fighting, expect some process-heavy workflows as you may need to get several different departments (security, infrastructure, compliance, regulator) to sign off on even the most innocuous of fixes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're unlikely to ever do any green-fields development - there needs to be a clear business case for any new features or products.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's both exhilarating and exhausting - don't be surprised if your contract mandates 45 + hours a week - with an unspoked expectation of more - but the remuneration package will ease any pain this might cause.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-21T23:23:23.970" />
  <row Id="13687" PostTypeId="2" ParentId="3272" CreationDate="2010-10-21T23:23:50.647" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;In the ideal world&lt;/strong&gt;, the decision would be made on a case by case basis. Sometimes,  jumping frequently from job to job may be an indicator of a work ethic or other problem. Many times, it's nothing to worry about. For example, if you are just starting your career, you may need to try many different jobs before you know what you like. Also, certain job types, such as start-ups or contract roles naturally have a high turnover rate. Moreover, working at multiple companies has some advantages. After having worked at a number of companies, I can compare &amp;amp; contrast their methods and have a much better idea of what works and what doesn't; I've seen and solved a wide variety of problems; I've become very good at learning new skills; and I can bring this invaluable knowledge to a future employer. In fact, I've often found that someone that moves around every few years is a much better employee than somebody who has been stagnating at the same job for a decade.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;In reality&lt;/strong&gt;, many people do see this as a red flag and without giving more thought to it, pass over the candidate. It's a shame, but that's just the way it is. &lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-10-21T23:23:50.647" />
  <row Id="13688" PostTypeId="2" ParentId="13676" CreationDate="2010-10-21T23:27:13.700" Score="4" ViewCount="" Body="&lt;p&gt;With the proliferation of smart phones and mobile data plans, how exactly do you monitor and control use of the internet? You can create policies against use of company equipment and internet connections, but you can't eliminate the distractions. Your best bet is to hire people who get the job done. A developer who works eight solid hours a day, and spends two hours on &quot;distractions,&quot; is worth more than a weak developer who puts in ten hours face time.&lt;/p&gt;&#xA;" OwnerUserId="1852" LastActivityDate="2010-10-21T23:27:13.700" />
  <row Id="13689" PostTypeId="2" ParentId="13623" CreationDate="2010-10-21T23:29:47.063" Score="6" ViewCount="" Body="&lt;p&gt;I'll buck the norm and say yes IF AND ONLY if they're writing server software.  Laugh all you want, but the most efficient team I ever saw was a group of Perl guys with Wyse terminals.  This was late 1990s, was a University off-shoot shop, and they were writing spatial gridding software (which basically just calculates).  They were however talking to some relatively powerful late-model RS/6000s.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just to add interest to the event, there was a blind programmer there.  I was thoroughly impressed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Won6d.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-10-21T23:29:47.063" CommunityOwnedDate="2010-10-22T17:12:01.930" CommentCount="7" />
  <row Id="13690" PostTypeId="2" ParentId="13623" CreationDate="2010-10-21T23:36:14.940" Score="0" ViewCount="" Body="&lt;p&gt;THIS IS THE MOST DISGUSTING THING I HAVE EVER READ... I think giving your developer a 2 leged stool to sit on would have the same desired effect... &quot;he will work for you, and when you are not looking, seek other employment&quot;&lt;/p&gt;&#xA;" OwnerUserId="5616" LastActivityDate="2010-10-21T23:36:14.940" CommunityOwnedDate="2010-10-22T17:12:01.930" />
  <row Id="13691" PostTypeId="1" CreationDate="2010-10-21T23:36:42.773" Score="3" ViewCount="609" Body="&lt;p&gt;I am very interested in Python for programming on the JVM, and I've worked in Java and Ruby (not JRuby) a lot, and to a certain extent in Groovy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the limits to the Java-Jython and Java-JRuby integration right now? What about Groovy: are there any things that a Java class can do that a Groovy class cannot? And what about IDE integration (mostly Eclipse, but IntelliJ and Netbeans are also interesting)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I'm not interested in whether Python, Ruby or Groovy is better/more-concise/whatever.&lt;/strong&gt; I'm just interested in how well they are working in the JVM and tools (especially IDEs) right now. My main interest is not inside a web server, if that matters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simple examples of getting a HelloWorld which extends a custom Java class and implements a custom Java interface would be very useful to me. &lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-12-16T15:06:22.583" Title="Jython and JRuby vs. Groovy (and Java)" Tags="&lt;java&gt;&lt;jruby&gt;&lt;groovy&gt;&lt;jvm&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="13692" PostTypeId="1" AcceptedAnswerId="13694" CreationDate="2010-10-21T23:39:45.513" Score="7" ViewCount="751" Body="&lt;p&gt;Hello people!&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Have you ever found a lazy&#xA;programmer? &lt;/li&gt;&#xA;&lt;li&gt;Have you ever see someone&#xA;asking you the same question over and&#xA;over again? &lt;/li&gt;&#xA;&lt;li&gt;Have you taught this&#xA;programmer step-by-step and he just&#xA;can't get it? &lt;/li&gt;&#xA;&lt;li&gt;Have you introduced him&#xA;to Google? &lt;/li&gt;&#xA;&lt;li&gt;Have you shown some good&#xA;resources, manuals and tips? &lt;/li&gt;&#xA;&lt;li&gt;Nothing worked?&lt;/li&gt;&#xA;&lt;li&gt;Are you doing someone else's job?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you said yes to all these questions, I may say we are one of a kind!&#xA;We do have patience, but sometimes it is disappearing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please tell me, what do you do with lazy programmers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do they have any hope or you would give up? :-)&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-12-11T02:10:24.387" Title="What do you do with lazy programmers?" Tags="&lt;recommendations&gt;&lt;behavior&gt;" AnswerCount="9" CommentCount="6" FavoriteCount="1" />
  <row Id="13693" PostTypeId="1" CreationDate="2010-10-21T23:44:13.507" Score="14" ViewCount="239" Body="&lt;p&gt;Although I've seen many discussions on how to do an interview and develop your brand, I haven't seen many discussions on how to determine if your hiring &amp;amp; interview process is actually working well. I think this question has two parts: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;How do you know your hiring process is getting the right candidates to apply and go through the interview process?&lt;/li&gt;&#xA;&lt;li&gt;Of the people that you end up interviewing, how can you tell that the ones you choose to hire are better (on average) than those that you rejected?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I suppose the &quot;extreme&quot; cases - when you end up with a superstar or a total dud - are pretty obvious, but what about the rest?&lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2011-03-05T17:11:41.033" Title="How do you measure the effectiveness of your hiring &amp; interview process?" Tags="&lt;interview&gt;&lt;hiring&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="0" />
  <row Id="13694" PostTypeId="2" ParentId="13692" CreationDate="2010-10-21T23:46:39.827" Score="19" ViewCount="" Body="&lt;p&gt;I would be careful not confuse Lazy Programmers with Dumb Programmers...&#xA;for example, a lazy programmer might write a 200 line utility to generate 1,000 lines of code for him. or to do a repetitive task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://c2.com/cgi/wiki?LazinessImpatienceHubris&quot; rel=&quot;nofollow&quot;&gt;from the book ProgrammingPerl (1st edition):&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Laziness:&lt;/strong&gt;&#xA;The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don't have to answer so many questions about it. Hence, the first great virtue of a programmer. Also hence, this book. See also impatience and hubris. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Impatience:&lt;/strong&gt;&#xA;The anger you feel when the computer is being lazy. This makes you write programs that don't just react to your needs, but actually anticipate them. Or at least pretend to. Hence, the second great virtue of a programmer. See also laziness and hubris. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Hubris:&lt;/strong&gt;&#xA;Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won't want to say bad things about. Hence, the third great virtue of a programmer. See also laziness and impatience.&lt;/p&gt;&#xA;" OwnerUserId="882" LastEditorUserId="882" LastEditorDisplayName="" LastEditDate="2010-10-21T23:52:32.383" LastActivityDate="2010-10-21T23:52:32.383" CommentCount="4" />
  <row Id="13695" PostTypeId="2" ParentId="13692" CreationDate="2010-10-21T23:48:51.367" Score="3" ViewCount="" Body="&lt;p&gt;Yes, I've seen a so called &quot;Lazy Programmer&quot; although some people just can't teach themselves and these get confused with Lazy Programmers. I'd almost argue you can't be a programmer (Or a good one at least) if you can't teach yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back to your point. I would ensure that the questions they are asking aren't meaningful questions, and are simple to answer or repetitive or otherwise stupid. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tell them upfront that they need to use Google and that disrupting you is damaging your productivity. Maybe point them towards useful sites for their question topic. Other than that, tell them you cannot help them and apologize &quot;Sorry, I really can't help you, I &lt;em&gt;really&lt;/em&gt; need to get this done&quot;.&lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-10-21T23:48:51.367" />
  <row Id="13696" PostTypeId="2" ParentId="13231" CreationDate="2010-10-21T23:52:55.087" Score="1" ViewCount="" Body="&lt;p&gt;It entirely depends on your previous experience. Assuming you have never done Mac development before, ie. don't know Cocoa or OBJ-C;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Are you comfortable with C style languages?    &lt;/li&gt;&#xA;&lt;li&gt;Are you comfortable with manual memory management?    &lt;/li&gt;&#xA;&lt;li&gt;Are you comfortable with OOP?    &lt;/li&gt;&#xA;&lt;li&gt;Are you comfortable with event based programming?    &lt;/li&gt;&#xA;&lt;li&gt;Are you comfortable with GUI app development?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you have answered YES to all of the above then you should be able to 'knock' your first app in a couple of weeks. Then it's just a matter of learning Cocoa which you can do on an as needed basis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have answered NO to all of the above then you are probably talking months if not years to become proficient.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-10-21T23:52:55.087" />
  <row Id="13697" PostTypeId="2" ParentId="13623" CreationDate="2010-10-21T23:56:57.193" Score="176" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Absolutely&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also true that managers should conduct all meetings in Pig-Latin.  It improves their communication skills overall to have them disadvantaged when speaking simple sentences.  They'll have to rely more on facial expressions and body language to get their point across and we all know that is at least 70% of all communication anyways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;CFOs should use only an abacus and chalk.  Otherwise they end up relying too much on 'raw data' and not enough on their 'gut feel'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And Vice Presidents and higher should be required to hold all important business meetings in distracting settings like golf courses while semi-intoxicated.   Oh snap...&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-21T23:56:57.193" CommunityOwnedDate="2010-10-22T17:12:01.930" CommentCount="3" />
  <row Id="13699" PostTypeId="1" AcceptedAnswerId="13715" CreationDate="2010-10-22T00:03:16.367" Score="18" ViewCount="728" Body="&lt;p&gt;I'm going to be co-founding a business in the coming weeks that will cater to web development, design and web application development, possibly extending into software development in the future. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a programmer myself and so I have quite a few ideas already, but I'm wondering what you guys would personally like as incentives at a job. Because of our location, we'll probably have to lure programmers away from existing jobs or locations, so we need some really competitive bonuses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideas I'd like to exclude right off the bat:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Salary. We'll be offering a decent salary for the person's skill level and this is also a given&lt;/li&gt;&#xA;&lt;li&gt;Two monitors/One large monitor. All of our employees will have a choice between these&lt;/li&gt;&#xA;&lt;li&gt;Free drinks &amp;amp; snacks. This is also a given, and not quite specific to programmers :)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you can provide examples of companies that offer the bonus you're suggesting that would also be nice :)&lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-10-22T15:37:52.613" Title="Incentives to offer programmers" Tags="&lt;hiring&gt;&lt;job-market&gt;" AnswerCount="19" CommentCount="0" FavoriteCount="6" />
  <row Id="13700" PostTypeId="1" CreationDate="2010-10-22T00:04:15.600" Score="3" ViewCount="334" Body="&lt;p&gt;There are a lot of choices available with respect to revision control (SVN, CVS, GitHub, etc.). What are the major options out there? What are the most popular ones right now (although I'm not sure if new revision control systems would be rolled out in the near future)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance for the feedback, although I'm not sure if this is an appropriate place to ask.&lt;/p&gt;&#xA;" OwnerUserId="5937" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-10-22T00:24:05.487" LastActivityDate="2010-10-22T16:22:52.730" Title="What are the most popular revision control systems?" Tags="&lt;version-control&gt;&lt;source-check&gt;" AnswerCount="6" CommentCount="3" />
  <row Id="13701" PostTypeId="2" ParentId="13699" CreationDate="2010-10-22T00:11:38.613" Score="13" ViewCount="" Body="&lt;p&gt;Rather than give one that other companies are already doing, since you want to stand out, how about this idea?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.e3expo.com/homepage.cfm&quot; rel=&quot;nofollow&quot;&gt;An annual trip to the Electronic Entertainment Expo (E3)&lt;/a&gt; (plane fare and conference tickets) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on where you are in the country, the plane fare might not be too prohibitive and sending the development team as a group might be a good team building exercise. Plus most of us are technophiles, so it would be a cool perk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that is too hard to stomach, an alternative might be agreeing to send them to &lt;strong&gt;at least one developer conference of their choosing each year&lt;/strong&gt;. At least this way you get the benefit of the training as a return on your investment.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-22T00:11:38.613" CommentCount="2" />
  <row Id="13703" PostTypeId="2" ParentId="13700" CreationDate="2010-10-22T00:14:53.943" Score="11" ViewCount="" Body="&lt;p&gt;Amongst the distributed family currently Git and Mercurial are in the lead.&#xA;Amongst the centralized family, SVN is still holding strong (very^2 strong). It is also a default choice in many corporate enviroments. Each of them has their own strengths and weaknesses, both technical and &quot;office political&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, on StackOverflow there is a plethora of questions that deal with this subject (choosing a version control system). It really has been dealt to death, shot, resurrected, hanged, then resurrected again (it is currently on intensive care, and every once in a while a new queston pops up ;-), so it might be an interesting read to check out some of the more popular ones. Search under [git], [mercurial], [svn], [cvs] tags.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some of the more popular items, dealing with choosing a version control system in general, as well as some of the mentioned one in particular.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/3859/what-is-the-difference-between-all-the-different-types-of-version-control&quot;&gt;What is the difference between all the different types of version control?&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://stackoverflow.com/questions/4670/dvcs-choices-whats-good-for-windows&quot;&gt;DVCS Choices - What's good for Windows?&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://stackoverflow.com/questions/1598759/git-and-mercurial-compare-and-contrast&quot;&gt;Git and Mercurial - Compare and Contrast&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://stackoverflow.com/questions/995636/popularity-of-git-mercurial-bazaar-vs-which-to-recommend&quot;&gt;Popularity of Git/Mercurial/Bazaar vs. which to recommend&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Just these four should bore you to death :-)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-10-22T00:20:12.140" LastActivityDate="2010-10-22T00:20:12.140" CommentCount="3" />
  <row Id="13704" PostTypeId="2" ParentId="13699" CreationDate="2010-10-22T00:16:18.933" Score="5" ViewCount="" Body="&lt;p&gt;Also you could allow them some time to create something or come up with an innovate approach. They could have 2 hours by week free for creating and proposing new exciting ideas to you.&#xA;If you find these ideas interesting, you could share a participation or some sort of financial bonus. I'm sure they will come up with brand new ideas, some could be really smart and profitable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was abroad and I also saw a software company room, just for relaxing. Stressed people could enter these room and sit, listen to music, read a book, play a XBox and Playstation game for some minutes. This is a kind of recreation room! Interesting place to be when you are really upset and want some space to think get a better solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This company also had some social meetings, where people get together to have parties, chat, games, and etc. They had a Google approach: if you let your employees feel better, they would work better. (There will be always exceptions).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope you find some of those ideas interesting.&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-22T00:16:18.933" CommentCount="1" />
  <row Id="13705" PostTypeId="2" ParentId="13623" CreationDate="2010-10-22T00:24:22.007" Score="22" ViewCount="" Body="&lt;p&gt;Embedded systems programmers run into this all the time! And there's a two part solution:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Your requirements need to specify X performance on Y hardware.&lt;/li&gt;&#xA;&lt;li&gt;Test on Y hardware, and when you don't get X performance, file bugs.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Then it won't matter what hardware your developers work on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you've done that, let's say faster equipment can save your programmers a half-hour a day, or 125 hours in a year. And let's say they cost $100,000 a year with benefits and overhead (ridiculously low for Silicon Valley), or $50 an hour. That 125 hours * $50/hour is $6250. So if you spend anything less than $6250 a year on rockin' development hardware per programmer, you're saving money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's what you should tell your management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tim Williscroft pretty much said the first half of this in a comment, and in a just world, he would get half of any points this answer gets.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Added Oct. 24:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My ex-employer had that theory, and it helped them piss away about $100 million.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're a Japanese-based conglomerate that was used to hiring programmers in Japan, Korea and China. Folks there are cool with using crappy development hardware, 13-hour work days, sleeping at their desks, and not having a life. So they figured when they acquired a noted Silicon Valley company to do a Linux-based cell phone OS, those silly Californians who wanted modern gear were just whiny prima-donnas and didn't actually have a good reason for it (like productivity).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Four years later, the OS worked like crap, all the schedules were blown, and the customers were pissed off and terminating contracts right and left. Finally, the OS project was cancelled, and a large percentage of the conglomerate's worldwide workforce was laid off over the last year. And frankly, I wouldn't want to have been one of the executives who had to explain to the stockholders where all that money and effort went.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It wasn't just the slow development machines that caused this fiasco. There were a lot of other strategic and tactical blunders - but they were that same kind of thing where the people working in the trenches could see the train wreck coming, and wondered why the decision-makers couldn't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And the slow gear was certainly a factor. After all, if you're under the gun to deliver on time, is it really a smart thing to deliberately slow down the work?&lt;/p&gt;&#xA;" OwnerUserId="1696" LastEditorUserId="1696" LastEditorDisplayName="" LastEditDate="2010-10-24T19:33:17.687" LastActivityDate="2010-10-24T19:33:17.687" CommunityOwnedDate="2010-10-22T17:12:01.930" />
  <row Id="13706" PostTypeId="2" ParentId="13693" CreationDate="2010-10-22T00:29:43.983" Score="11" ViewCount="" Body="&lt;p&gt;One thing that has been really useful for me in this regard is to review my interview notes on the one year anniversary of hiring an employee.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a standard interview script, although I usually tweak it for the particular candidate. In any case, I type up the questions that I asked and summarize the answers into a word document directly after the interview while the information is still fresh. I also have a section for my general gut feel about the candidate and what stands out about them either positively or negatively.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course I use this document extensively throughout the rest of the hiring process, especially when I am talking to a lot of candidates when it is easy to get confused about who said what, but it really comes in handy for fine tuning my interviewing process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On or about one year after the hire, I think about how well the person has worked out. I look at both the positive and negative surprises over their first year. Then I go back to my interview notes and evaluate how well my questions drew out that information. Finally, I use this analysis to tweak my template interview script so that I can make sure to extract that information in future interviews. Also, I use this to get rid of questions that aren't contributing useful information and wasting valuable time during the interviews.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over time this has really honed my recruiting process and the quality of my hires has improved steadily. I think the most important lesson I have learned from doing this is to never ignore your gut when you have qualms about a candidate, even when you can't put your finger on what the specific issue is. Not once did I have a concern from an interview that didn't manifest itself over that first year. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I blogged about this a while back in my article &lt;a href=&quot;http://improvingsoftware.com/2009/09/29/19-tips-for-recruiting-great-developers/&quot; rel=&quot;nofollow&quot;&gt;&quot;19 Tips For Recruiting Great Developers&quot;&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-22T00:29:43.983" CommentCount="3" />
  <row Id="13707" PostTypeId="2" ParentId="13700" CreationDate="2010-10-22T00:30:58.020" Score="0" ViewCount="" Body="&lt;p&gt;In Brazil I would say we use most SVN and CVS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At my company we are using AnkhSVN and Tortoise. The unique drawback is when people forget to lock their files, so they can change it and upload the newer version. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We share the same files with another European developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is also VisualSVN and I like it too, it is really simple to use.&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-22T00:30:58.020" />
  <row Id="13708" PostTypeId="2" ParentId="13503" CreationDate="2010-10-22T00:35:01.973" Score="0" ViewCount="" Body="&lt;p&gt;If you've done a half-dozen personal projects in these other languages, write an article about each of them (CodeProject is a good place to publish these, if you don't have a blog), release a product (for cheap or free), put them on your resume, and apply. Learning new languages is easy, it's the frameworks and environment that have a significant learning curve. Published works (software, articles) demonstrates facility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With these projects to reference, it will be much more difficult to question your qualifications. So go ahead and apply for the job you want!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-10-22T00:35:01.973" />
  <row Id="13709" PostTypeId="2" ParentId="13699" CreationDate="2010-10-22T00:37:08.507" Score="2" ViewCount="" Body="&lt;p&gt;A new laptop (and not a stripped-down model either).  Initially a loan to use however they want, but theirs to keep after some time period TBD.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-10-22T04:15:28.180" LastActivityDate="2010-10-22T04:15:28.180" CommentCount="9" />
  <row Id="13710" PostTypeId="2" ParentId="13692" CreationDate="2010-10-22T00:46:17.490" Score="4" ViewCount="" Body="&lt;p&gt;I have been in this situation a few times now at my current employer. Most of the time I will try and find out what that person's strengths are and encourage them and management to help move them into that area of strength. If possible. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the persons attitude is not conducive to this, or they are not a cultural fit i will encourage management to move them on. This may be harsh but it's the best outcome for both the company and the individual. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am referring here to people that don't learn from their mistakes. &lt;/p&gt;&#xA;" OwnerUserId="4330" LastActivityDate="2010-10-22T00:46:17.490" />
  <row Id="13711" PostTypeId="1" AcceptedAnswerId="13768" CreationDate="2010-10-22T00:49:10.697" Score="37" ViewCount="2302" Body="&lt;p&gt;We're dealing with an interesting problem on StackOverflow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We've got a whole bunch of little &quot;needs to be done soon-ish&quot; tasks.  An example is updating &quot;Related Questions&quot; lists.  What we've done in the past is to piggy-back those tasks onto some users' page loads.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This was never ideal, but it wasn't really noticeable.  Now that SO has passed the 1,000,000 question mark, those unlucky users are starting to feel it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The natural solution is to actually push these tasks into the background.  There are two broad ways of doing this I'm considering.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;1. In IIS as a custom Thread-Pool/Work-Queue&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Basically, we spin up a few (non-&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx&quot; rel=&quot;nofollow&quot;&gt;ThreadPool&lt;/a&gt;, so as to not interfere with IIS) threads and have them services some collections we're shoving &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/bb549151.aspx&quot; rel=&quot;nofollow&quot;&gt;Funcs&lt;/a&gt; into.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The big pro here is simplicity.  We don't have to worry about marshaling anything, nor do we have to make sure some external service is up and responding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We also get access to all of our common code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The con is, well, that we shouldn't use background threads.  The objections I know of are all centered around starving IIS (if you use ThreadPool) and the threads dieing randomly (due to AppPool recycling).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We've got existing infrastructure to make the random thread death a non-issue (its possible to detect a task has been abandoned, basically), and limiting the number of threads (and using non-ThreadPool threads) isn't difficult either.&lt;/p&gt;&#xA;&#xA;&lt;del&gt;&#xA;Am I missing any other objections to in IIS process thread-pooling/work-queues?&#xA;&lt;/del&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/3994085/are-there-any-non-obvious-dangers-in-using-threads-in-asp-net&quot;&gt;Moved to StackOverflow&lt;/a&gt;, as it wasn't really addressed here.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;2. As a Service&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Either some third-party solution, or a custom one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, we'd marshal a task across the process boundary to some service and just forget about it.  Presumably we're linking some code in, or restricted to raw SQL + a connection string.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The pro is that its the &quot;right way&quot; to do this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The cons are that we're either very restricted in what we can do, or we're going to have to work out some system for keeping this service in sync with our code base.  We'll also need to hook all of our monitoring and error logging up somehow, which we get for free with the &quot;In IIS&quot; option.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Are there any other benefits or problems with the service approach?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a nutshell, are there unforseen and insurmountable problems that make approach #1 unworkable and if so are there any good third-party services we should look into for approach #2?&lt;/p&gt;&#xA;" OwnerUserId="32" LastEditorUserId="32" LastEditorDisplayName="" LastEditDate="2010-10-22T05:53:06.823" LastActivityDate="2010-10-22T22:17:48.007" Title="Servicing background tasks on a large site" Tags="&lt;web-development&gt;&lt;design&gt;&lt;multi-threaded&gt;&lt;iis7&gt;" AnswerCount="20" CommentCount="8" FavoriteCount="24" />
  <row Id="13712" PostTypeId="2" ParentId="3438" CreationDate="2010-10-22T01:03:37.643" Score="1" ViewCount="" Body="&lt;p&gt;syntactic sugar is a feature that doesn't extend the language expressivity itself, hence being redundant and sometimes an abuse of notation, but that both simplifies writer's life and gives the reader more insight.&lt;/p&gt;&#xA;" OwnerUserId="5936" LastActivityDate="2010-10-22T01:03:37.643" />
  <row Id="13713" PostTypeId="2" ParentId="3438" CreationDate="2010-10-22T01:04:41.693" Score="0" ViewCount="" Body="&lt;p&gt;To answer my own question, a feature is syntactic sugar if and only if it it was included primarily to enhance aesthetics and readability &lt;strong&gt;and&lt;/strong&gt; can be trivially translated in a roughly one-to-one fashion into the de-sugared version.  (By roughly one-to-one I mean modulo trivial things like the order of commutative operations, variable names and whitespace.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any feature that could only be de-sugared with a significant amount of programmer discipline is not syntactic sugar.  As a subset of this, any feature that increases type safety is not syntactic sugar, since manually enforcing type safety via programmer discipline is highly non-trivial.  For example, C++'s object system is more than syntactic sugar on top of C pointer cast polymorphism.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any feature that would require either significant code duplication or a major redesign if removed is not syntactic sugar, since neither of these is a trivial undertaking.  For example, templates are not just syntactic sugar because getting the equivalent functionality without them would require tons of clone-and-modify.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example of things that &lt;strong&gt;are&lt;/strong&gt; syntactic sugar:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;a[i]&lt;/code&gt; instead of &lt;code&gt;*(a + i)&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;a -&amp;gt; b&lt;/code&gt; instead of &lt;code&gt;(*a).b&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;foreach&lt;/code&gt; syntax instead of manually typing out iterator syntax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All operator overloading is pure syntactic sugar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does this sound like a fair and reasonably unambigous definition?&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-22T01:04:41.693" CommentCount="1" />
  <row Id="13714" PostTypeId="2" ParentId="13401" CreationDate="2010-10-22T01:05:48.747" Score="0" ViewCount="" Body="&lt;p&gt;I found &lt;a href=&quot;http://flowplayer.org/tools/documentation/index.html&quot; rel=&quot;nofollow&quot;&gt;jQuery TOOLS&lt;/a&gt; documentation to be an absolute delight to work with.&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-10-22T01:05:48.747" />
  <row Id="13715" PostTypeId="2" ParentId="13699" CreationDate="2010-10-22T01:06:48.667" Score="15" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com&quot; rel=&quot;nofollow&quot;&gt;Jeff&lt;/a&gt; and &lt;a href=&quot;http://www.joelonsoftware.com/&quot; rel=&quot;nofollow&quot;&gt;Joel&lt;/a&gt; wrote a lot on the subject (well, related to). Of many, these two may give you a few insights.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2006/08/the-programmers-bill-of-rights.html&quot; rel=&quot;nofollow&quot;&gt;Programmer's bill of rights&lt;/a&gt; (what every programmer should have)&lt;br&gt;&#xA;&lt;a href=&quot;http://www.joelonsoftware.com/articles/FieldGuidetoDevelopers.html&quot; rel=&quot;nofollow&quot;&gt;A Field Guide to Developers&lt;/a&gt; (how to make &amp;amp; keep him happy &amp;amp; productive ... well, happy :-)  &lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-22T01:06:48.667" />
  <row Id="13716" PostTypeId="2" ParentId="13699" CreationDate="2010-10-22T01:10:08.037" Score="1" ViewCount="" Body="&lt;p&gt;Cash Bonuses&#xA;" OwnerUserId="1842" LastActivityDate="2010-10-22T01:10:08.037" CommentCount="3" />
  <row Id="13717" PostTypeId="2" ParentId="13699" CreationDate="2010-10-22T01:15:10.240" Score="17" ViewCount="" Body="&lt;p&gt;Allowing working from home for 1-2 days/week.&lt;/p&gt;&#xA;" OwnerUserId="4873" LastActivityDate="2010-10-22T01:15:10.240" CommentCount="1" />
  <row Id="13718" PostTypeId="2" ParentId="13700" CreationDate="2010-10-22T01:19:55.830" Score="0" ViewCount="" Body="&lt;p&gt;See what VCS Google code/sourceforge uses.&lt;/p&gt;&#xA;" OwnerUserId="2347" LastActivityDate="2010-10-22T01:19:55.830" />
  <row Id="13719" PostTypeId="2" ParentId="39" CreationDate="2010-10-22T01:24:45.423" Score="1" ViewCount="" Body="&lt;p&gt;&quot;That's not the way I would have done it&quot;&lt;/p&gt;&#xA;" OwnerUserId="2835" LastActivityDate="2010-10-22T01:24:45.423" CommunityOwnedDate="2010-10-22T01:24:45.423" />
  <row Id="13720" PostTypeId="2" ParentId="13540" CreationDate="2010-10-22T01:38:59.873" Score="2" ViewCount="" Body="&lt;p&gt;I ran across &lt;a href=&quot;http://www.tuiu.edu/&quot; rel=&quot;nofollow&quot;&gt;TUI International Online University&lt;/a&gt; which I thought looked promising. It's based in California and accredited.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2010/07/14/BAC61EEDI4.DTL&quot; rel=&quot;nofollow&quot;&gt;The University of California will test a fully-online program&lt;/a&gt;, but as the article says, &quot;it's unclear when students could enroll.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other possibly useful resources for you:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.onlinedegreereviews.org/&quot; rel=&quot;nofollow&quot;&gt;Online Degree Reviews&lt;/a&gt;&lt;br&gt;&#xA;Along with seeing what students think of their schools, you can also search for schools and programs  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.cvc.edu/students/programs/?q=&amp;amp;degree=1&amp;amp;subject=9&quot; rel=&quot;nofollow&quot;&gt;California Virtual Campus Catalog&lt;/a&gt;&lt;br&gt;&#xA;Lets you search for online programs by degree and subject.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="99" LastEditorUserId="99" LastEditorDisplayName="" LastEditDate="2010-11-09T01:21:27.770" LastActivityDate="2010-11-09T01:21:27.770" CommentCount="3" />
  <row Id="13721" PostTypeId="1" CreationDate="2010-10-22T01:59:19.527" Score="-2" ViewCount="101" Body="&lt;p&gt;I want to have a great design for the Intranet Web Application that Add, Edit, Search Or Delete the tables on the DataBase, how can i have some examples (or Buy) great and Faster designs ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(sorry for my english)&lt;/p&gt;&#xA;" OwnerUserId="5949" LastActivityDate="2010-10-23T10:28:42.890" Title="Design for Intranet Table Maintenance" Tags="&lt;design&gt;&lt;asp.net&gt;&lt;maintenance&gt;" AnswerCount="1" />
  <row Id="13722" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T02:03:44.633" Score="3" ViewCount="" Body="&lt;p&gt;Have you considered this &lt;a href=&quot;http://quartznet.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;http://quartznet.sourceforge.net/&lt;/a&gt; ?&lt;/p&gt;&#xA;" OwnerUserId="5956" LastActivityDate="2010-10-22T02:03:44.633" />
  <row Id="13723" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T02:06:09.080" Score="5" ViewCount="" Body="&lt;p&gt;I'd do it the right way and have a Windows Service running that monitors a &quot;queue&quot;.  I say &quot;queue&quot; because programming w/ MSMQ is akin to sticking hot pokers in your eyeballs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've fallen in love with the simplicity of &lt;a href=&quot;http://www.therailsway.com/2009/7/22/do-it-later-with-delayed-job&quot; rel=&quot;nofollow&quot;&gt;Delayed::Job&lt;/a&gt; in Rails, and something similar could easily be done in .NET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically you add any sort of &lt;code&gt;SomethingOperation&lt;/code&gt; (something that has an &lt;code&gt;Perform()&lt;/code&gt; method).  Then just serialize the relevant parameters, give it a priority, some sort of default retry behavior and stuff it into a database.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your service would just monitor this and work the jobs in the queue.&lt;/p&gt;&#xA;" OwnerUserId="5958" LastActivityDate="2010-10-22T02:06:09.080" CommentCount="4" />
  <row Id="13724" PostTypeId="1" CreationDate="2010-10-22T02:10:11.620" Score="0" ViewCount="594" Body="&lt;p&gt;Hi All -&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the best personal laptop for a developer who wants to learn stuff at leisure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" LastActivityDate="2010-10-22T02:46:02.543" ClosedDate="2010-10-22T04:00:05.630" Title="Best Laptop for Developers" Tags="&lt;productivity&gt;" AnswerCount="1" CommentCount="3" FavoriteCount="1" />
  <row Id="13725" PostTypeId="2" ParentId="13699" CreationDate="2010-10-22T02:10:30.843" Score="6" ViewCount="" Body="&lt;p&gt;We have a ping pong table and pinball machine in the office, and it's really nice to be able to get away from the screen every couple of hours to do something fun. And neither takes very long to play a game or two, so it's not much of a hindrance on productivity.&lt;/p&gt;&#xA;" OwnerUserId="5140" LastActivityDate="2010-10-22T02:10:30.843" CommentCount="4" />
  <row Id="13727" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T02:13:15.310" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://github.com/defunkt/resque&quot; rel=&quot;nofollow&quot;&gt;Resque&lt;/a&gt; is nice. Or even &lt;a href=&quot;http://github.com/plukevdh/kthxbye&quot; rel=&quot;nofollow&quot;&gt;Kthxbye&lt;/a&gt; if you need to be notified of the resulting value once it's completed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both Redis/Ruby based tho.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, if you're doing a service-based approach, it really doesn't need to be super-integrated with your current platform, which I feel is a plus. I would hope it could be a set-and-forget system that would run (with monitoring of some kind) and complete jobs. I'm not sure it has to be run on the same platform at all since its just updating/modifying database info.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pretty sure you could get away with a lot more for a lot less if you farmed this kinda work out to a separate entity, especially since it seems you're dealing with threading issues. Both &lt;a href=&quot;http://github.com/defunkt/resque&quot; rel=&quot;nofollow&quot;&gt;Resque&lt;/a&gt; and &lt;a href=&quot;http://github.com/plukevdh/kthxbye&quot; rel=&quot;nofollow&quot;&gt;Kthxbye&lt;/a&gt; move the processing out to separate processes to allow the OS to handle the concurrency. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://github.com/defunkt/resque&quot; rel=&quot;nofollow&quot;&gt;Resque&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://github.com/plukevdh/kthxbye&quot; rel=&quot;nofollow&quot;&gt;Kthxbye&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5961" LastEditorUserId="5961" LastEditorDisplayName="" LastEditDate="2010-10-22T15:20:08.333" LastActivityDate="2010-10-22T15:20:08.333" CommentCount="2" />
  <row Id="13728" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T02:14:18.570" Score="0" ViewCount="" Body="&lt;p&gt;I would use a WAS hosted WCF service listening to an MSMQ Queue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pro's &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Fire and forget one way messages from the web app&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;MSMQ/WCF throttling and retry&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Guaranteed delivery ;D&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Dead Letter management&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Distributed processing&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;WAS / MSMQ activation&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Con's&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;MSMQ (it's not dead ... Yet)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The MSMQ features in WCF makes using MSMQ really nice. Yes you will bleed on the configuration but the benefits will outweigh the sacrifice.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-22T02:21:13.903" />
  <row Id="13729" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T02:19:34.610" Score="1" ViewCount="" Body="&lt;p&gt;I liked TopShelf.  Keeps the simplicity, yet still do it the proper way running as a Windows Service.  Basically create a Console App, add about 15-20 lines of code, then it installs as a service.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://code.google.com/p/topshelf/&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/p/topshelf/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5967" LastActivityDate="2010-10-22T02:19:34.610" />
  <row Id="13730" PostTypeId="2" ParentId="13623" CreationDate="2010-10-22T02:25:58.717" Score="2" ViewCount="" Body="&lt;p&gt;My Macbook Pro at work is a few years old.  Between Linux and Windows(to test IE quirks) vms as well as couple of web browsers and terminals open, the OSX spinning wheel shows up a lot.  Guess what I do when it spins, I sit and wait.  In this case, a slow machine does slow productivity.&lt;/p&gt;&#xA;" OwnerUserId="5968" LastActivityDate="2010-10-22T02:25:58.717" CommunityOwnedDate="2010-10-22T17:12:01.930" />
  <row Id="13731" PostTypeId="1" AcceptedAnswerId="13735" CreationDate="2010-10-22T02:27:56.790" Score="3" ViewCount="280" Body="&lt;p&gt;I am considering to buy a desktop computer, but could not determine which size of LCD should I buy. What's the size of your screen, will large LCD(30 inches+) will do good to develop?&lt;/p&gt;&#xA;" OwnerUserId="1854" LastActivityDate="2010-11-11T20:38:31.520" Title="Will large screen increase develop productivity?" Tags="&lt;work-environment&gt;&lt;hardware&gt;" AnswerCount="3" />
  <row Id="13732" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T02:29:04.807" Score="18" ViewCount="" Body="&lt;p&gt;There is actually a third way in Windows to run background services, and it is very common in the UNIX world.  The third way is a &lt;code&gt;CRON&lt;/code&gt; job that runs a piece of your infrastructure.  In Windows this is known as the &lt;code&gt;task scheduler&lt;/code&gt; and is very common for running code on a scheduled basis.  To use this you would create a command-line app that is executed on a pre defined schedule.  The advantage of this is that you don't have to worry if the process stays up and running like a service, because if it fails for some reason, it will just start up next time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for marshaling specific tasks, you really just need to store these tasks in a persistent binary storage.  Until the command line app picks them out of the storage and executes them.  I have done this in the past using the Cassandra database as a Session State Provider for stuffing background tasks for specific users in the Cassandra database, and then having the commandline pick them out and execute them for the user.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This may not have been the typical marshaling solution, but it worked out very well for me and it turned out to be a very elegant solution, because the scheduled tasks survived shutdowns, network problems, and any machine could execute the task since it was centrally stored.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Shameless promotion, but this is my project and the solution I just briefly detailed is why I created the project:&#xA;&lt;a href=&quot;http://github.com/managedfusion/fluentcassandra/&quot; rel=&quot;nofollow&quot;&gt;http://github.com/managedfusion/fluentcassandra/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="475" LastActivityDate="2010-10-22T02:29:04.807" CommentCount="2" />
  <row Id="13733" PostTypeId="2" ParentId="13692" CreationDate="2010-10-22T02:29:22.187" Score="3" ViewCount="" Body="&lt;p&gt;In school, they encourage us to be lazy.  If you are too lazy to repeat some codes, you consolidate them somewhere.  If you are too lazy to do manual tasks, you write some code to automate it.  Being lazy can be a quality to write some useful code.&lt;/p&gt;&#xA;" OwnerUserId="5968" LastActivityDate="2010-10-22T02:29:22.187" />
  <row Id="13734" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T02:31:43.223" Score="1" ViewCount="" Body="&lt;p&gt;How about having a very simple Windows service that runs on the web server and periodically hits a maintenance URL which does your miscellaneous tasks.  Have it throttle how much work it does in any given request.&lt;/p&gt;&#xA;" OwnerUserId="2346" LastActivityDate="2010-10-22T02:31:43.223" />
  <row Id="13735" PostTypeId="2" ParentId="13731" CreationDate="2010-10-22T02:35:13.523" Score="10" ViewCount="" Body="&lt;p&gt;Looks like this was discussed already on &lt;a href=&quot;http://stackoverflow.com/questions/26625/one-large-monitor-or-dual-monitor-setup&quot;&gt;Stack Overflow&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, my personal opinion: two monitors is far better than one large one for productivity. Oh, and for the record, I don't like the super high resolution of 30&quot; screens. I have good eye sight, but the font size ends up way too small at 2560x1600 and can be very tricky to change across all applications w/o breaking UI. 2x24&quot; is better, and 2x37&quot; (1080p TV's) is by far the best. &lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-10-22T02:35:13.523" CommentCount="7" />
  <row Id="13736" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T02:42:06.147" Score="0" ViewCount="" Body="&lt;p&gt;I've run into this a couple of times when developing web applications. We've been solving it by creating a windows console application that carries out the task, and creating a scheduled task that runs every so often to actually do the task.&lt;/p&gt;&#xA;" OwnerUserId="5972" LastActivityDate="2010-10-22T02:42:06.147" />
  <row Id="13737" PostTypeId="2" ParentId="13724" CreationDate="2010-10-22T02:46:02.543" Score="3" ViewCount="" Body="&lt;p&gt;Maybe your question should have been what characteristics should a developer look for when buying a laptop?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should look for the fastest processor affordable and the most ram. Those are the 2 things that determine the speed of development environment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that screen real estate, though not the size of the screen, but the resolution displayable. The more pixels the more things you can fit on screen at once, and the less switching you will have to do, saving you time and mental effort (remembering what you were looking for in the documentation or cross referencing something, etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then depending on what you are planning on developing, video card or hard disk space might be a consideration.&lt;/p&gt;&#xA;" OwnerUserId="5682" LastActivityDate="2010-10-22T02:46:02.543" />
  <row Id="13738" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T02:47:22.297" Score="1" ViewCount="" Body="&lt;p&gt;I'm going to buck the apparent trend here and suggest going for the in-IIS model. I've used it myself and it works really well. It's really not that hard to implement a decent thread-pool class (over the years, I've extended my thread pool class to support dynamic creation and destruction of threads, retrying of jobs and so on). Advantages are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;No external service to monitor&lt;/li&gt;&#xA;&lt;li&gt;Simplicity of implementation: no cross-process marshalling, no advanced job monitoring&lt;/li&gt;&#xA;&lt;li&gt;You're still inside your IIS process, so you can do all of your usual logging and so on (no need for multiple log files)&lt;/li&gt;&#xA;&lt;li&gt;Vastly simplified deployment (when you update a service, you have to stop the service, copy the files, start the service - this is in addition to your usual updates to the website code)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In my opinion, an in-IIS solution is simply the &quot;next step up&quot; from piggybacking the work onto random page views.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-22T02:47:22.297" />
  <row Id="13739" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T02:47:27.747" Score="6" ViewCount="" Body="&lt;p&gt;I have tried and used just about every possible way of doing this in my current application. I started out doing the same thing that you currently do, piggy back on a user request to fill the data and then cache it going forward. I realized this was a bad idea as well (especially as you scale to multiple web servers, more users take the hit).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also have had a scheduled job that hits a URL in the ASP.NET app - this is a decent solution but it starts to break down the minute you scale past 1 web server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently I use two different methods, both using Quartz.NET which is a great little library. The first is Quartz.NET running in-process with ASP.NET, it is setup in the global.asax and runs every couple of minutes. I use this to update the ASP.NET cache out of band which is the only reason it is run as part of ASP.NET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second is that I wrote a library to wrap Quartz.NET called DaemonMaster - it makes it easy to drop a DLL into a directory and have it run in a Windows service. I found it helps avoid some of the annoying parts of working with a Windows Service and also cleans up the Quartz.NET api some. The services that run through DaemonMaster are of two different flavors, the first are jobs that need to run every night or every X minuts. The other jobs work off of a queue based on data coming in from the ASP.NET application. The ASP.NET app drops JSON objects on RabbitMQ and the services poll RabbitMQ then process the data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Based on this I would suggest you go with a Windows service (and check out DaemonMaster) and if needed use a queue like RabbitMQ for passing the data from the ASP.NET app to the services - it has worked the best out of all these solutions. If you are loading cache then running in ASP.NET makes sense, otherwise I don't think it does.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;DaemonMaster: &lt;a href=&quot;http://github.com/adzerk/DaemonMaster&quot; rel=&quot;nofollow&quot;&gt;http://github.com/adzerk/DaemonMaster&lt;/a&gt;  &lt;/li&gt;&#xA;&lt;li&gt;Quartz.NET: &lt;a href=&quot;http://quartznet.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;http://quartznet.sourceforge.net/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5971" LastEditorUserId="37" LastEditorDisplayName="" LastEditDate="2010-10-22T03:02:48.000" LastActivityDate="2010-10-22T03:02:48.000" />
  <row Id="13740" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T02:52:43.210" Score="0" ViewCount="" Body="&lt;p&gt;You can shunt work onto a background thread ( or many background threads ) using Rx and something like the following:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var scheduler = new EventLoopScheduler( SchedulerThreadName );&#xA;_workToDo = new Subject&amp;lt;Action&amp;gt;();&#xA;var queueSubscription = _workToDo.ObserveOn( scheduler ).Subscribe( work =&amp;gt; work() );&#xA;_cleanup = new CompositeDisposable( queueSubscription, scheduler );&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;To use:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var work = () =&amp;gt; { ... };&#xA;_workToDo.OnNext( work ); // Can also put on error / on complete in here&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Host all that inside a class that there is only ever one of ( aka a singleton, but do it properly - use you IoC container to determine the lifestyle ).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can control the size of the thread pool etc by writing a custom scheduler in place of using the EventLoopScheduler ( which runs a single thread ).&lt;/p&gt;&#xA;" OwnerUserId="3298" LastActivityDate="2010-10-22T02:52:43.210" />
  <row Id="13741" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T02:57:15.877" Score="3" ViewCount="" Body="&lt;p&gt;We've been pretty happy with a Service Bus / Message Queue / Service approach. The basic architecture is this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Website sends message to queue&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;bus.Send(new ProjectApproved()); // returns immediately&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Windows service receives and processes message in its own time&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class DoesSomethingAwesome : ConsumerOf&amp;lt;ProjectApproved&amp;gt;&#xA;{&#xA;   public void Consume(ProjectApproved Message)&#xA;   {&#xA;      // Do something &quot;offline&quot;&#xA;   }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The advantage is that there is no delay for the front-end service that users are connected too. The windows service can be shutdown and be upgraded without interruption to the main site. Plus it's &lt;em&gt;extremely fast&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you cannot store all of your data within the message you can always store it and retrieve it later. I suggest using a document storage mechanism such as: &lt;a href=&quot;http://ravendb.net/&quot; rel=&quot;nofollow&quot;&gt;RavenDB&lt;/a&gt; or &lt;a href=&quot;http://www.mongodb.org/&quot; rel=&quot;nofollow&quot;&gt;MongoDB&lt;/a&gt; where it's very straight forward to store your classes without changes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Website sends message to queue&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// Save your object&#xA;store.Save(completeProject);&#xA;&#xA;// Send a message indicating its ready to be processed&#xA;bus.Send(new ProjectApproved() { ProjectId = completeProject.Id });&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Windows service receives and processes message in its own time&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class DoesSomethingAwesome : ConsumerOf&amp;lt;ProjectApproved&amp;gt;&#xA;{&#xA;   public void Consume(ProjectApproved Message)&#xA;   {&#xA;      // Retrieve your object back&#xA;      var completeProject = store.Get(Message.ProjectId);&#xA;   }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;To make things simple we use: &lt;a href=&quot;http://hibernatingrhinos.com/open-source/rhino-service-bus&quot; rel=&quot;nofollow&quot;&gt;Rhino ESB&lt;/a&gt; and &lt;a href=&quot;http://topshelf-project.com/&quot; rel=&quot;nofollow&quot;&gt;Topshelf&lt;/a&gt;. The configuration is extremely simple and putting this in place for an existing application has proved to take very little time.&lt;/p&gt;&#xA;" OwnerUserId="5974" LastEditorUserId="5974" LastEditorDisplayName="" LastEditDate="2010-10-22T03:32:50.690" LastActivityDate="2010-10-22T03:32:50.690" CommentCount="1" />
  <row Id="13742" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T03:00:57.070" Score="2" ViewCount="" Body="&lt;p&gt;I think the con with the pure service approach is that you have code scattered into the service and away from the core app.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's what we've done with large background non time-sensitive jobs, which keeps the code together and simplifies the service:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Create a jobs queue (either in-memory or DB, whatever persistence is needed for the types of jobs)&lt;/li&gt;&#xA;&lt;li&gt;Create a web service that will execute the queued jobs&lt;/li&gt;&#xA;&lt;li&gt;Dead simple service app that calls the web service at a specified interval, leave all the complex stuff (job retrieval and execution) to the web service in your core codebase.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Even simpler, just make the call in a console app and use Task Scheduler or VisualCron to turn it into a &quot;service&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1596" LastEditorUserId="1596" LastEditorDisplayName="" LastEditDate="2010-10-22T03:09:32.040" LastActivityDate="2010-10-22T03:09:32.040" CommentCount="1" />
  <row Id="13743" PostTypeId="2" ParentId="13699" CreationDate="2010-10-22T03:04:47.483" Score="2" ViewCount="" Body="&lt;p&gt;Although some basic level of salary, technology and benefits is a requirement for an offer to even be considered - and the possibility of getting rich quick (e.g. pre IPO stock options) can be hard to turn down - these items aren't really what lure developers in. In fact, these external rewards are not good motivators in general: check out &lt;a href=&quot;http://www.ted.com/talks/dan_pink_on_motivation.html&quot; rel=&quot;nofollow&quot;&gt;Dan Pink's TED Talk on Motivation&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the things that really excite developers (and most people) are those that generate an &quot;internal drive.&quot; For example, knowing that you'll have total ownership and creative control of a problem or having the opportunity to work with cutting edge technology and become a pioneer in a new space is what keeps people up at night. Solving problems that &lt;em&gt;really matter&lt;/em&gt; is nice. Having a genuine opportunity for your work to be seen &amp;amp; recognized is a big motivator. This is why developers flock to companies with a reputation for this sort of work, such as Google. &lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-10-22T03:04:47.483" />
  <row Id="13744" PostTypeId="2" ParentId="13692" CreationDate="2010-10-22T03:29:42.390" Score="4" ViewCount="" Body="&lt;p&gt;At one of my first positions, I was told that the measure of my value was how little I bothered the senior programmers.  It really got me thinking about the value of other people's time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;New hires should ask a lot of questions, but after a while, they should have the skills to solve most problems independently.  If not, then it could be a motivation issue for management to resolve, or else the person might not be suited to programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a colleague, I would suggest making a point about the value of working independently because you have things you want to get done too.  You can also show them how to, for example, use google, at progressively slower speeds each time they ask until they avoid asking you altogether.&lt;/p&gt;&#xA;" OwnerUserId="1312" LastActivityDate="2010-10-22T03:29:42.390" />
  <row Id="13745" PostTypeId="2" ParentId="13731" CreationDate="2010-10-22T03:32:28.367" Score="0" ViewCount="" Body="&lt;p&gt;24&quot;+24&quot; is great!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;19&quot;+24&quot;+19&quot; if you want to go all out.&lt;/p&gt;&#xA;" OwnerUserId="3122" LastActivityDate="2010-10-22T03:32:28.367" />
  <row Id="13746" PostTypeId="1" AcceptedAnswerId="13748" CreationDate="2010-10-22T03:49:07.453" Score="4" ViewCount="194" Body="&lt;p&gt;Hi. I keep coming across this term hooks in various programming articles. However I don't understand what they are, and how can they be used . So I just wanted to know what is the concept of hooks; if someone could link me to some examples, particularly in the context of web development, it would be great.&#xA;Thanks&#xA;Alice&lt;/p&gt;&#xA;" OwnerUserId="5701" LastEditorUserId="6" LastEditorDisplayName="" LastEditDate="2010-10-22T03:53:58.313" LastActivityDate="2010-10-22T22:01:36.253" Title="What are hooks ?-python" Tags="&lt;web-development&gt;&lt;python&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="1" />
  <row Id="13747" PostTypeId="2" ParentId="13699" CreationDate="2010-10-22T04:05:18.950" Score="2" ViewCount="" Body="&lt;p&gt;couple of things..... &lt;ul&gt;&lt;li&gt;Flex Time&lt;/li&gt; &lt;li&gt;Company Sponsered Conference/Training/Education/Certifications&lt;/li&gt;&lt;li&gt;A book/periodical budget&lt;/li&gt;&lt;li&gt;Company-Sponsored social events (BBQ's, Mini-Golf, etc.)&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-22T04:05:18.950" />
  <row Id="13748" PostTypeId="2" ParentId="13746" CreationDate="2010-10-22T04:09:33.277" Score="7" ViewCount="" Body="&lt;p&gt;My answer pertains to WordPress which is written in PHP, but this is a general development mechanic so it shouldn't really matter, despite the fact that you put 'python' in your question title.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One good example of usage of hooks, coincidentally in web development, are &lt;a href=&quot;http://codex.wordpress.org/Plugin_API&quot; rel=&quot;nofollow&quot;&gt;WordPress' hooks&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are named appropriately in that they allow a way to 'hook into' certain points of the execution of a program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for example, the &lt;a href=&quot;http://codex.wordpress.org/Plugin_API/Action_Reference/wp_head&quot; rel=&quot;nofollow&quot;&gt;wp_head&lt;/a&gt; is an 'action' that is emitted when a WordPress theme is being rendered and it's at the part where it renders the part that's within the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; tags. Say that you want to write a plugin that requires an additional stylesheet, script, or something that would normally go within those tags. You can 'hook into' this action by defining a function to be called when this action is emitted. Something like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;add_action('wp_head', 'your_function');&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;your_function()&lt;/code&gt; could be something as simple as:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function your_function() {&#xA;    echo '&amp;lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;lol.css&quot; /&amp;gt;';&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now, when WordPress emits this action by doing something like &lt;code&gt;do_action('wp_head');&lt;/code&gt;, it will see that &lt;code&gt;your_function()&lt;/code&gt; was &lt;em&gt;'hooked into'&lt;/em&gt; that action, so it will call that function (&lt;em&gt;and pass it any arguments if it takes any, as defined in the documentation for any particular hook&lt;/em&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Long story short: It allows you to add additional functionality at specific points of the execution of a program by 'hooking into' those points, in most cases by assigning a function callback.&lt;/p&gt;&#xA;" OwnerUserId="515" LastActivityDate="2010-10-22T04:09:33.277" CommentCount="4" />
  <row Id="13749" PostTypeId="2" ParentId="13623" CreationDate="2010-10-22T04:32:03.837" Score="3" ViewCount="" Body="&lt;p&gt;I work on a package that takes about an hour to build on my 8 core 8G machine (full clean build).   I also have a relatively low end laptop I test on.   The low end laptop doesn't manage two full builds during a single work day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I more productive on the fast machine with some deliberate testing done on the laptop, or should I do all my builds on the laptop?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep in mind these are not made up numbers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a rigged demo in that I don't normally need to do a clean build every day (I can do a lot of testing on single modules), but even the partial builds show roughly an order of magnitude difference in compile/link times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the real issue is on my slower machine a typical build is long enough for me to go get a cup of coffee, while on my faster machine I can only sip a little coffee.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a point of view of getting work done I prefer doing development on a fast machine.  I can far more reliably hit deadlines.   On the other hand I imagine if management made me do development on my slow machine I would get a lot more web browsing done, or at least book reading.&lt;/p&gt;&#xA;" OwnerUserId="5985" LastActivityDate="2010-10-22T04:32:03.837" CommunityOwnedDate="2010-10-22T17:12:01.930" CommentCount="2" />
  <row Id="13750" PostTypeId="2" ParentId="13699" CreationDate="2010-10-22T04:34:24.283" Score="9" ViewCount="" Body="&lt;p&gt;Check out this RSA Animate video that describes several incentives that programmers want... in particular:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Autonomy&lt;br&gt;&#xA;2) Mastery &lt;br&gt;&#xA;3) Purpose&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=u6XAPnuFjJc&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=u6XAPnuFjJc&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/PoJ3H.png&quot; alt=&quot;alt text&quot;&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=u6XAPnuFjJc&quot; rel=&quot;nofollow&quot;&gt;click&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-10-22T14:28:34.137" LastActivityDate="2010-10-22T14:28:34.137" CommentCount="2" />
  <row Id="13751" PostTypeId="1" AcceptedAnswerId="13763" CreationDate="2010-10-22T04:51:01.793" Score="6" ViewCount="367" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to know, how long you have been a programmer? and how long you are going to continue to be a programmer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What will you move to higher position, if you are (currently): Web developer? what I am asking is, after few years of being a web developer, I want to try something else, but I dont know where I should go. I am tired of being technical/programmer guy, but other than programming, I know nothing else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PLEASE dont close this question, as this is very, very important to me. Please suggest, where can I leap to? Change to others environment like &quot;java/c++&quot; software development? Change to others line(not IT line)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Okay, to make the story short, answer this question please:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What will you do (be), if you do not want to be a programmer anymore?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" LastActivityDate="2010-12-07T22:27:27.573" Title="Programmer -&gt; Web Developer:: Life Cycle?" Tags="&lt;career&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="6" />
  <row Id="13752" PostTypeId="2" ParentId="11312" CreationDate="2010-10-22T04:51:24.917" Score="0" ViewCount="" Body="&lt;p&gt;Well from my experience so far I think the following things are absolutely vital:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Powerful development machine&lt;/li&gt;&#xA;&lt;li&gt;Dual monitors (at least 22&quot; or 24&quot;)&lt;/li&gt;&#xA;&lt;li&gt;Decent chair&lt;/li&gt;&#xA;&lt;li&gt;Unfiltered internet (I don't know how many useful sites I've seen blocked by WebSense)&lt;/li&gt;&#xA;&lt;li&gt;The ability to decorate/furnish your workspace (it's amazing how much this can help you be comfortable/at east)&lt;/li&gt;&#xA;&lt;li&gt;Good support servers for version control, wiki, backup, testing with other applications if your solution stack includes several, etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4193" LastActivityDate="2010-10-22T04:51:24.917" CommunityOwnedDate="2010-10-22T04:51:24.917" />
  <row Id="13753" PostTypeId="2" ParentId="13751" CreationDate="2010-10-22T04:53:23.430" Score="4" ViewCount="" Body="&lt;p&gt;I play guitar when I'm working through a problem. Maybe I'll become a professional musician. I'm told I'm good at writing documentation for my code, maybe I'll turn writing into a career. From years of thinking my way through problems, I've discovered I have a mechanical mind, maybe I'll become an auto mechanic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the world ended tomorrow, if all the computers in the world suddenly blew up and left everything else untouched, I (and all the other people of the world) would find a way to somehow move on because if we can't do that, we'd die. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;blockquote&gt;&#xA;    &lt;p&gt;-Robert A. Heinlein &lt;/p&gt;&#xA;  &lt;/blockquote&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="5988" LastActivityDate="2010-10-22T04:53:23.430" CommentCount="6" />
  <row Id="13755" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T04:59:59.600" Score="0" ViewCount="" Body="&lt;p&gt;I have implemented this type of thing a few times. On windows, I set up a python command-line program that does something at various times. This program also exposes an xmlrpc interface on a port. Then, a scheduled-task job runs every minute and queries the xmlrpc interfaces. If they are not up, it tries to launch them. If it can't, it emails me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The advantage is that the job that runs isn't cron or schedule bound. I have a process job that runs every seconds, but will wait longer and longer between starting a new job depending on whether it had work to do. Also, it can be used to act intelligently based on the result. Got a 500 error? Got a really long delay? Do something else. Notify another service. Etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And the same system works on unix, with minor modifications. &lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-10-22T04:59:59.600" />
  <row Id="13757" PostTypeId="1" CreationDate="2010-10-22T05:04:14.660" Score="11" ViewCount="997" Body="&lt;p&gt;How do you correctly or erroneously pronounce programming terms?  Any that you find need strict correction or history into the early CS culture?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Programming&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;char&lt;/code&gt; = &quot;tchar&quot; not care?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;!&lt;/code&gt; = bang not exclamation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;#&lt;/code&gt; = pound not hash? Exception &lt;code&gt;#!&lt;/code&gt; = shebang&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;*&lt;/code&gt; = splat not star?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;regex&lt;/code&gt; = &quot;rej ex&quot; not &quot;regg ex&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;sql&lt;/code&gt; = &lt;a href=&quot;http://programmers.stackexchange.com/questions/8588/whats-the-history-of-the-non-official-pronunciation-of-sql&quot;&gt;&quot;s q l&quot; not &quot;sequel&quot;&lt;/a&gt; (already answered, just i.e.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Unixen&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;|&lt;/code&gt; = pipe not vertical bar?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;bin&lt;/code&gt; = bin as in pin , not as in binary?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;lib&lt;/code&gt; = lib as in library , not as in liberate?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;etc&lt;/code&gt; = &quot;ett see&quot; , not &quot;e t c&quot; (as in &lt;code&gt;/etc&lt;/code&gt; and not &quot;&amp;amp;c&quot;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Annoyance&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;/&lt;/code&gt; = slash not backslash&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;LaTeX&lt;/code&gt; = &quot;laytek&quot; not &quot;lay teks&quot;&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="2274" LastEditorDisplayName="" LastEditDate="2010-10-28T16:50:22.190" LastActivityDate="2011-01-10T07:09:31.207" CommunityOwnedDate="2011-01-09T02:54:49.947" Title="Pronunciation in programming?" Tags="&lt;programming&gt;&lt;pronunciation&gt;" AnswerCount="18" CommentCount="13" FavoriteCount="2" />
  <row Id="13758" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T05:07:25.880" Score="0" ViewCount="" Body="&lt;p&gt;I don't have an answer for you myself, but the problem rung a bell - I remember some random guys &lt;a href=&quot;https://stackoverflow.fogbugz.com/default.asp?W13117&quot; rel=&quot;nofollow&quot;&gt;discussing it on a podcast once&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Spolsky: I noticed one of the&#xA;  questions you asked on the blog was&#xA;  how should you handle maintenance&#xA;  recurring tasks in general?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Atwood: Yes.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Spolsky: Is that a fair&#xA;  characterization?  Every website has&#xA;  some tasks that you don't want to&#xA;  execute at the time a web page is&#xA;  loading, but you want to execute with&#xA;  some recurrence of some sort.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Atwood: Ya, background tasks sort of&#xA;  thing.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Spolsky: Ya, so what did you figure&#xA;  out?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Atwood: Well, I originally asked on&#xA;  Twitter, because I just wanted&#xA;  something light weight.  I really&#xA;  didn't want to like write a windows&#xA;  service.  I felt like that was out of&#xA;  band code. Plus the code that actually&#xA;  does the work is a web page in fact,&#xA;  because to me that is a logical unit&#xA;  of work on a website is a web page. &#xA;  So, it really is like we are calling&#xA;  back into the web site, it's just like&#xA;  another request in the website, so I&#xA;  viewed it as something that should&#xA;  stay inline, and the little approach&#xA;  that we came up that was recommended&#xA;  to me on Twitter was to essentially to&#xA;  add something to the application cache&#xA;  with a fixed expiration, then you have&#xA;  a call back so when that expires it&#xA;  calls a certain function which does&#xA;  the work then you add it back in to&#xA;  the cache with the same expiration. &#xA;  So, it's a little bit, maybe &quot;ghetto&quot;&#xA;  is the right word.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="5146" LastActivityDate="2010-10-22T05:07:25.880" CommentCount="4" />
  <row Id="13759" PostTypeId="2" ParentId="13757" CreationDate="2010-10-22T05:14:45.620" Score="2" ViewCount="" Body="&lt;p&gt;char = &quot;tchar&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;!&lt;/code&gt; = punto esclamativo (in Italian)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;#&lt;/code&gt; = &quot;sharp&quot; or I strangely say 'S' (like 'ess') if it's a C preprocessor statement O_O&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;#!&lt;/code&gt; = shebang&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;*&lt;/code&gt; = asterisco (italian again)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;regex&lt;/code&gt; = &quot;rej ex&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;sql&lt;/code&gt; = &quot;s q l&quot; or &quot;sequel&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unixen&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;|&lt;/code&gt; = pipe?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;bin&lt;/code&gt; = bin as in pin&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;lib&lt;/code&gt; = lib as in liberty?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;etc&lt;/code&gt; = &quot;etch&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Annoyance&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;/&lt;/code&gt; = slash (and it's correct, this -&gt; &lt;code&gt;\&lt;/code&gt; is the backslash&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;LaTeX&lt;/code&gt; = &quot;latek&quot;&lt;/p&gt;&#xA;" OwnerUserId="87" LastEditorUserId="87" LastEditorDisplayName="" LastEditDate="2010-10-22T17:04:44.360" LastActivityDate="2010-10-22T17:04:44.360" CommunityOwnedDate="2011-01-09T02:54:49.947" CommentCount="2" />
  <row Id="13760" PostTypeId="2" ParentId="13757" CreationDate="2010-10-22T05:21:41.517" Score="2" ViewCount="" Body="&lt;p&gt;I learned most of my programming lingo from my roommate in college who was also a CS major. Only thing he did &quot;wrong&quot; was intentionally pronounce &quot;sql&quot; as &quot;ess coo ell&quot;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;regex: regg exx&lt;/p&gt;&#xA;&#xA;&lt;p&gt;lib: as in liberation (from Windows)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;bin: as in clothesbin&lt;/p&gt;&#xA;&#xA;&lt;p&gt;etc: &lt;em&gt;et cetera&lt;/em&gt; (from the Latin &lt;em&gt;and so on&lt;/em&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;|: pipe&lt;/p&gt;&#xA;&#xA;&lt;p&gt;#!: the &quot;bang line&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;#: hatch mark&lt;/p&gt;&#xA;" OwnerUserId="5988" LastActivityDate="2010-10-22T05:21:41.517" CommunityOwnedDate="2011-01-09T02:54:49.947" CommentCount="3" />
  <row Id="13761" PostTypeId="2" ParentId="13699" CreationDate="2010-10-22T05:22:07.693" Score="2" ViewCount="" Body="&lt;p&gt;I suppose this depends on the age/maturity of the programmer. For instance a 25 year old programmer would &lt;em&gt;love&lt;/em&gt; to get a free laptop, but a 35 year old programmer with a family and mortgage just wants the $1,000.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, my list:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Book budget&lt;br&gt;&#xA;Gadgets&lt;br&gt;&#xA;Cell phones (You pay the bill)&lt;br&gt;&#xA;Free trips to conferences&lt;br&gt;&#xA;Time to work on personal projects&lt;br&gt;&#xA;Time to play through out the day  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And last -- but certainly not least -- don't start the work day until 11pm! (Just kidding)&lt;/p&gt;&#xA;" OwnerUserId="5990" LastActivityDate="2010-10-22T05:22:07.693" />
  <row Id="13762" PostTypeId="2" ParentId="13692" CreationDate="2010-10-22T05:29:18.073" Score="1" ViewCount="" Body="&lt;p&gt;I wouldn't call that a lazy programmer. Sounds more like an incompetent programmer. A true lazy programmer knows how to do all the things you've mentioned, but still plays WoW all day long. Those kinds of programmers sometimes need a little inspiration. An incompetent programmer needs to be fired.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I say fire them because even if you do get them to do their job (write code) it's likely to be riddled with bugs and security holes.&lt;/p&gt;&#xA;" OwnerUserId="5990" LastActivityDate="2010-10-22T05:29:18.073" />
  <row Id="13763" PostTypeId="2" ParentId="13751" CreationDate="2010-10-22T05:29:47.243" Score="4" ViewCount="" Body="&lt;p&gt;I'm also &lt;a href=&quot;http://programmers.stackexchange.com/questions/11425/burned-out-on-programming-and-given-up&quot;&gt;burning out at the moment&lt;/a&gt;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, when I say &quot;at the moment&quot;, I mean for about a year and a half. It was in early/mid 2009 that this feeling started bubbling towards the surface. And now it's finally breaking through.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How long have I been a programmer? 9 years commercially. More like 15 years if you count hobby programming and study.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've talked to many people, read many books and websites, and studied this whole burnout and career change issue to death, and my general conclusion is basically this: It is very &lt;strong&gt;personal&lt;/strong&gt; and &lt;strong&gt;different for everyone&lt;/strong&gt;. People get tired of particular careers and modes of work for very different reasons. Often, even if it sounds very similar, it is quite different underneath. Now, as for what to do instead of programming - this is a thought experiment that gave me my &quot;epiphany&quot;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&quot;Imagine you are on your death bed, looking back on your life, and reflecting on what you did with it. What do you want to see?&quot;&lt;/em&gt; -Now take what you see and then think of what you can do for a job/career that would help fulfill that kind of memory of your life. Then follow that direction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The bad news: I don't think any specific advice on which job to take instead of programming can be very useful. This is what I mean by career being a very personal thing. Even when people tell the same story of how they got sick of programming, they often took totally different directions which made them happy. This is the part that everyone has to work out for themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: I've worked out that I'm not burned out with programming itself, as much as with the corporate environment, and with the &quot;model&quot; of working for someone else, having so much of my life controlled by being in a fulltime job, etc. So I'm taking a sabbatical next year to take stock, possibly get ideas for a startup/misv, etc. Or, at worst, it'll just serve as a nice long break. :)&lt;/p&gt;&#xA;" OwnerUserId="5064" LastEditorUserId="5064" LastEditorDisplayName="" LastEditDate="2010-12-07T22:27:27.573" LastActivityDate="2010-12-07T22:27:27.573" CommentCount="7" />
  <row Id="13764" PostTypeId="2" ParentId="13676" CreationDate="2010-10-22T05:45:15.727" Score="18" ViewCount="" Body="&lt;p&gt;My personal belief is people in all professions, but especially creative/problem solving professions need mental down time through out the day. Sure, you could stand behind your programmers cracking a whip and yelling, &quot;More code!&quot;, and the project will probably get done on time and on budget, but you will get a mediocre product. They'll cut corners and write sloppy code just to get you off their back, and their minds won't be engaged enough to come up with elegant solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anytime I've had programmers working under me I've always encouraged them to take time off through out the day. Read a book, listen to music, play some basketball outside, or even spend some time on Face/Digg/Reddit/Whatever if that's what they like. All I care about is the final product. I don't care how they managed their time to achieve great results.&lt;/p&gt;&#xA;" OwnerUserId="5990" LastActivityDate="2010-10-22T05:45:15.727" CommentCount="2" />
  <row Id="13765" PostTypeId="2" ParentId="13673" CreationDate="2010-10-22T05:53:22.533" Score="1" ViewCount="" Body="&lt;p&gt;Networking is a large part of the open source community. You'll meet people that you can count on for advice, and for help. More importantly networking equals job opportunities. As with most professions, it's not what you know, but who you know. I make a pretty good living as a programmer, and it all started with a couple open source projects that I started and contributed to.&lt;/p&gt;&#xA;" OwnerUserId="5990" LastActivityDate="2010-10-22T05:53:22.533" CommentCount="1" />
  <row Id="13766" PostTypeId="2" ParentId="13757" CreationDate="2010-10-22T06:06:36.677" Score="1" ViewCount="" Body="&lt;p&gt;&lt;code&gt;char&lt;/code&gt; =  &lt;code&gt;character&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;!&lt;/code&gt;    =  &lt;code&gt;exclamation&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;#&lt;/code&gt;    =  &lt;code&gt;hash&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;*&lt;/code&gt;    =  &lt;code&gt;Star&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;regex&lt;/code&gt;=  &lt;code&gt;rej x&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;sql&lt;/code&gt;  =  &lt;code&gt;S Q L&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="3313" LastActivityDate="2010-10-22T06:06:36.677" CommunityOwnedDate="2011-01-09T02:54:49.947" CommentCount="2" />
  <row Id="13767" PostTypeId="2" ParentId="13673" CreationDate="2010-10-22T06:19:58.350" Score="1" ViewCount="" Body="&lt;p&gt;I know at least one excellent programmer who got hired explicitly because of his work on an open source project.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do excellent work on a project that ends up being integrated in an open source product produced by e.g. Redhat it could happen to you too.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-22T06:19:58.350" />
  <row Id="13768" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T06:20:00.760" Score="10" ViewCount="" Body="&lt;p&gt;A few weeks back I asked a &lt;a href=&quot;http://stackoverflow.com/questions/3711081/thoughts-on-running-windows-service-type-apps-on-asp-net-4-with-startmodealway&quot;&gt;similar question&lt;/a&gt; on SO. In a nut shell, my approach for some time now has been to develop a Windows Service. I would use NServiceBus (essentially MSMQ under the covers) to marshal requests from my web app to my service. I used to use WCF but getting a distributed transaction to work correctly over WCF always seemed like a pain in the ass. NServiceBus did the trick, I could commit data and create tasks in a transaction and not worry whether my service was up and running at the time. As a simple example, if ever I needed to send an email (for example a registration email) I would create the user account and fire off a signal to my Windows Service (to send the email) in a transaction. The message handler on the service side would pick up the message and process accordingly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since ASP .NET 4.0 and AppFabric have been released, there are a number of viable alternatives to the mechanism above. Referring back to the question I mentioned above, we now have AppFabric's AppInitialize(via net.pipe) as well as ASP .NET 4.0's Auto-Start feature which make developing Windows Services as web apps a viable alternative. I have started doing this now for a number of reasons (biggest one being deployment is no longer a pain in the ass):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You can develop a web UI over your service (since it's running as a web app). This is extremely useful to see what is happening at runtime.&lt;/li&gt;&#xA;&lt;li&gt;Your deployment model for your web apps will work for your service application.&lt;/li&gt;&#xA;&lt;li&gt;IIS provides a few neat features for handling application failures (similar in some respects to a Windows Service).&lt;/li&gt;&#xA;&lt;li&gt;Web developers are very familiar with developing web apps (naturally), most don't know much about best practice when developing a Windows Service.&lt;/li&gt;&#xA;&lt;li&gt;It provides a number of alternatives to exposing an API for other apps to consume.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If you go this route (forgive me for copying and pasting from my original post) I would definitely consider running the background logic in a separate web application. There are number of reasons for this:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Security&lt;/strong&gt;. There may be a different security model for the UI displaying information about the running background processes. I would not want to expose this UI to anyone else but the ops team. Also, the web application may run as a different user which has an elevated set of permissions.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Maintenance&lt;/strong&gt;. It would be great to be able to deploy changes to the application hosting the background processes without impacting on user's using the front end website.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Performance&lt;/strong&gt;. Having the application separated from the main site processing user requests means that background threads will not diminish IIS's capability to handle the incoming request queue. Furthermore, the application processing the background tasks could be deployed to a separate server if required.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Doing this gets back to the marshaling aspect. WCF, NServiceBus/RabbitMQ/ActiveMQ etc., vanilla MSMQ, RESTful API (think MVC) are all options. If you are using Windows Workflow 4.0 you could expose a host endpoint which your web app could consume.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The web hosting approach for services is still fairly new to me, only time will tell if it was the correct choice. So far so good though. By the way, if you don't want to use AppFabric (I couldn't because for some bizarre reason, Windows Server Web Edition ain't supported), the Auto-Start capability mentioned in the Gu's post works nicely. Stay away from the applicationhost.config file though, everything in that post is possible to setup through the IIS console (Configuration Editor on the main server level).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: I had originally posted a few more links in this message but alas, this is my first post to this exchange and only one link is supported! There was basically two others, to get them Google &quot;Death to Windows Services...Long Live AppFabric!&quot; and &quot;auto-start-asp-net-applications&quot;. Sorry about that.&lt;/p&gt;&#xA;" OwnerUserId="5991" LastActivityDate="2010-10-22T06:20:00.760" CommentCount="2" />
  <row Id="13769" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T06:20:07.293" Score="3" ViewCount="" Body="&lt;p&gt;I'm curious why a combination of the two isn't a viable option. Right now you trigger jobs on page views, with some unlucky sap getting stuck waiting 10 seconds for the page to come up. At least that's my understanding of your current method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However those jobs are taking longer and longer to run as the site grows, and you don't want to derail the user experience on the site. Not even for a few (Or maybe a lot) unlucky users through out the day, so now you're thinking about scheduling jobs in the background.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't see why a background job run at regular intervals can't mimic a visitor. Now I'm not a Windows programmer, but in the Linux world I would set up a cron job that runs at a regular interval, and it would have 2 lines of code.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#!/bin/bash&#xA;wget -O /dev/null http://stackoverflow.com/specially_crafted_url&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It combines the pros of both systems. It's done in the background. It doesn't effect users. It still uses a page view to kick off the job. I've seen this approach used before. It tends to be the middle ground between the simple ways of old, and the more complex ways coming down the road.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you can get around the load balancing issue by running the job runners on the web servers themselves. The job runner pulls a URL out of the job queue, and runs it like so:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;wget -O /dev/null http://localhost/specially_crafted_url&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Because of the nature of job/messaging queues, the jobs will get evenly distributed among the job runners, which means the specially_crafted_url is eventually distributed among your web servers.&lt;/p&gt;&#xA;" OwnerUserId="5990" LastEditorUserId="5990" LastEditorDisplayName="" LastEditDate="2010-10-22T06:50:00.607" LastActivityDate="2010-10-22T06:50:00.607" CommentCount="5" />
  <row Id="13770" PostTypeId="2" ParentId="13692" CreationDate="2010-10-22T06:25:18.583" Score="1" ViewCount="" Body="&lt;p&gt;In your shoes I would bring this to the attention of my boss. This means that either you are told that it is part of your job (in case you can ask for how much time  you are to spend on this) or that the programmer is told to change things (in case you can complain if they doesn't).  In any case management needs to know that there is a potential bottleneck here.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-22T06:25:18.583" />
  <row Id="13771" PostTypeId="2" ParentId="13699" CreationDate="2010-10-22T06:44:53.220" Score="0" ViewCount="" Body="&lt;p&gt;One thing I have learned is that you cannot do a Marathon as a lot of sprints, and that rest is important to code quality.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hence it is very important if you do long term planning and want to keep people that you focus on having normal, regular working hours for all employees and that overtime is an absolutely last resort.  This needs to be an integrated part of the culture, so that e.g. deadlines are planned according to this (with the usual slack), and that it is considered unusual if a person do too much work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again this is only for the very long time perspective.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-22T06:44:53.220" />
  <row Id="13772" PostTypeId="2" ParentId="13691" CreationDate="2010-10-22T06:52:04.363" Score="1" ViewCount="" Body="&lt;p&gt;I have no experience of JRuby nor Groovy. But &lt;strong&gt;Jython:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Excellent integration with NetBeans. NetBeans can run Python programs with Jython almost straight out of the box, just install the &quot;Jython Distribution&quot; plugin and you're done. Apparently Eclipse works as well. See chapter &lt;a href=&quot;http://www.jython.org/jythonbook/en/1.0/JythonIDE.html&quot; rel=&quot;nofollow&quot;&gt;Using Jython in an IDE&lt;/a&gt; in the &lt;a href=&quot;http://www.jython.org/jythonbook/en/1.0/&quot; rel=&quot;nofollow&quot;&gt;Jython Book&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Java-Jython integration is excellent. Calling Java from Jython is super easy. Calling Jython from Java is not quite as straightforward (Java was not designed with Jython in mind), but still fairly easy. I've mostly had luck with creating a class in Jython (extending a Java class/interface), and then creating instances of that class in Java using an object factory. See &lt;a href=&quot;http://www.jython.org/jythonbook/en/1.0/JythonAndJavaIntegration.html&quot; rel=&quot;nofollow&quot;&gt;Jython and Java Integration&lt;/a&gt; for how-to.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Extending a Java class in Jython works like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;from javax.swing import JFrame, JButton&#xA;&#xA;class MyFrame(JFrame):&#xA;&#xA;    def __init__(self):&#xA;        self.defaultCloseOperation = JFrame.EXIT_ON_CLOSE&#xA;        self.size = (300, 300)&#xA;        self.add(JButton('Click Me!', actionPerformed=self.print_something))&#xA;        self.visible = True&#xA;&#xA;    def print_something(self, event):&#xA;        print 'Clicked!'&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Implementing interfaces works similarly, just import the interface, &quot;extend&quot; it using a class definition such as &lt;code&gt;class MyClass(MyInterface)&lt;/code&gt; and implement what's needed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My only criticism against Jython is that its raw performance is not very good (and that's mostly because it uses massive reflection to interact with Java). But then, raw performance is usually pretty irrelevant for a scripting language.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-22T09:14:43.327" LastActivityDate="2010-10-22T09:14:43.327" CommentCount="6" />
  <row Id="13773" PostTypeId="2" ParentId="13699" CreationDate="2010-10-22T07:11:03.107" Score="2" ViewCount="" Body="&lt;p&gt;I have always found the offer of higher salary, food &amp;amp; drinks and multiple moniters really cheesy as I think it's something way to basic to attract a good developer. Hell even paid fitness options are cheesy these days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would attract me would be an open book budget with a note of which direction you wish the developer to go...sorta like a whitelist of topics, and if he/she wanna go outside the whitelist I think he/she should explain what the book is expected to do for the dev.&#xA;As many others have written I think conferences would be a really nice offer as well, in my current job we go to a conference ever 3 years (which is way to little imo since it's very product specific). What I would like (and would include in my next contract) is a statement that says I can go to one conference free of choice on the continent every year. I'm living in Denmark and that would give me obvious options like TechEd Europe, NDC, Oredev etc. so there are plenty of options that way.&lt;/p&gt;&#xA;" OwnerUserId="564" LastActivityDate="2010-10-22T07:11:03.107" />
  <row Id="13774" PostTypeId="2" ParentId="13676" CreationDate="2010-10-22T07:16:08.137" Score="1" ViewCount="" Body="&lt;p&gt;Personally I don't see the reason of banning Messenger and a other messaging services (including twitter), cause it's a way of getting information as fast as possible and sometimes people have great networks they can leverage in that way. What I do understand is why people ban facebook at the office, cause I don't see it as a way of keeping professional contacts (and many have gaming tendencies aswell).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that set look at the year...2010 that means the age of smartphone so if I really wanted to used facebook I could do it on my phone without the company being able to track it unless they see me sitting with my phone constantly and that would just be to obvious what I was doing.&lt;/p&gt;&#xA;" OwnerUserId="564" LastActivityDate="2010-10-22T07:16:08.137" />
  <row Id="13775" PostTypeId="1" AcceptedAnswerId="13776" CreationDate="2010-10-22T07:37:40.980" Score="4" ViewCount="157" Body="&lt;p&gt;Though it is always a plus point to have knowledge of multiple technologies, but due to time-constraint it is not possible for me right now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have extensive experience in .NET Windows development and 1 year experience in PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to apply for a job of web programmer. Is it absolutely necessary for me to learn web-designing also that includes CSS and PhotoShop?&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2010-10-22T15:59:34.377" Title="Is it absolutely necessary for a programmer to be a designer?" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="13776" PostTypeId="2" ParentId="13775" CreationDate="2010-10-22T07:42:54.353" Score="7" ViewCount="" Body="&lt;p&gt;While I would say &quot;yes&quot; to CSS, I don't think it's necessary for a web programmer to know PhotoShop well. If you're not planning to work for a 2/3 people shop, there will probably be somebody responsible for graphics design.&lt;/p&gt;&#xA;" OwnerUserId="2612" LastEditorUserId="2612" LastEditorDisplayName="" LastEditDate="2010-10-22T07:58:17.833" LastActivityDate="2010-10-22T07:58:17.833" CommentCount="2" />
  <row Id="13777" PostTypeId="2" ParentId="13775" CreationDate="2010-10-22T07:44:16.503" Score="3" ViewCount="" Body="&lt;p&gt;The question of if it is necessary depends, and I will answer that shortly, but I feel that anyone working with the web should have a good core understanding of what it is built on (HTML/CSS/JavaScript) without knowing how these work designing the backend will be largely irrelevant.  For example no one cares if you can query 17 massive databases in under a second if what you return takes 20 seconds to render in the browser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But to answer your question;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it really depends on the scale of the company you are joining.  For example I work for a 10 man web development company, I &lt;em&gt;need&lt;/em&gt; to know the fundamentals of design because we have too much work for our one design resource.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you work for a massive company with specialists then no, you wouldn't need to learn these things.&lt;/p&gt;&#xA;" OwnerUserId="5010" LastActivityDate="2010-10-22T07:44:16.503" />
  <row Id="13778" PostTypeId="1" AcceptedAnswerId="13785" CreationDate="2010-10-22T08:01:28.060" Score="5" ViewCount="271" Body="&lt;p&gt;I'm pretty sure about &lt;code&gt;Who&lt;/code&gt; but when  ? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The one with proficient knowledge of programming and software development or the one who's just a beginner in cyber ( programming, to be precise ) world ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm persuing bachelors right now, when its preferable for me( and folks like me) to read this &lt;strong&gt;&lt;em&gt;Must read for programmers&lt;/em&gt;&lt;/strong&gt;     book ? &lt;/p&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-10-22T15:20:29.737" Title="When one should read 'Code Complete' ?" Tags="&lt;code-complete&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="13779" PostTypeId="1" CreationDate="2010-10-22T08:04:44.463" Score="6" ViewCount="129" Body="&lt;p&gt;I'm not sure if there's an established protocol for this (even if it's not an official one), but thought those most experienced with open source might want to share with us. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm aware that random patches submitted to open source projects are never paid. They may be indirectly funded by a client but they're never paid for by the open source project itself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But how about core developers? I heard for example that drupal has some 800 core developers behind it. Core developers means that they work on drupal core itself and together they push the main releases, so they're very important to the project. Of course drupal is just an example, but in general, is there any established protocol in the open source world that defines whether the company behind the project is expected to pay them and do these core developers expect such payment? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any facts or first hand experiences?&lt;/p&gt;&#xA;" OwnerUserId="3598" LastActivityDate="2010-10-22T08:10:33.603" Title="Payments and open source core developers" Tags="&lt;open-source&gt;" AnswerCount="1" />
  <row Id="13780" PostTypeId="2" ParentId="13779" CreationDate="2010-10-22T08:10:33.603" Score="1" ViewCount="" Body="&lt;p&gt;As a particular example, a few of the core &lt;a href=&quot;http://www.squeak.org&quot; rel=&quot;nofollow&quot;&gt;Squeak&lt;/a&gt; developers work for &lt;a href=&quot;http://www.teleplace.com/&quot; rel=&quot;nofollow&quot;&gt;Teleplace&lt;/a&gt;. They hack on Squeak as part of their day job, so Teleplace gets the stuff they need, and then release the changes to the base Squeak image and virtual machine back to the larger Squeak community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are quite a few other companies that pay their employees, in part at least, to hack on Squeak.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-22T08:10:33.603" />
  <row Id="13781" PostTypeId="2" ParentId="13623" CreationDate="2010-10-22T08:23:56.833" Score="22" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-10-22T08:23:56.833" CommunityOwnedDate="2010-10-22T17:12:01.930" CommentCount="6" />
  <row Id="13782" PostTypeId="1" AcceptedAnswerId="14459" CreationDate="2010-10-22T08:37:15.227" Score="20" ViewCount="1106" Body="&lt;p&gt;I had saw in a company named X,there must be a code review conducted by the team leaders after the completion of every module. Mean While i had saw Company named Y, they have not conducted any code review; they just check the functionality issue and design issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I am confused. Is the code review process really needed? If it is, why? And if it isn't, why not? My team mates feel that in code reviews the team leaders only interfere or stop the ideas of junior developers.&lt;/p&gt;&#xA;" OwnerUserId="3993" LastEditorUserId="3993" LastEditorDisplayName="" LastEditDate="2011-04-26T17:40:22.037" LastActivityDate="2011-04-26T17:40:22.037" Title="Is Code Review needed for Junior Developers?" Tags="&lt;career&gt;&lt;experience&gt;&lt;code-reviews&gt;" AnswerCount="11" CommentCount="6" FavoriteCount="2" />
  <row Id="13783" PostTypeId="2" ParentId="13782" CreationDate="2010-10-22T08:42:12.110" Score="24" ViewCount="" Body="&lt;p&gt;Basically code review is needed for all programmers regardless of experience.  It is the Quality Control of software development, and one of the reasons Open Source can be of very high quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately very few wants to do it, but seen from a business point of view it should be mandatory.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-22T08:42:12.110" CommentCount="4" />
  <row Id="13784" PostTypeId="2" ParentId="13782" CreationDate="2010-10-22T08:47:46.013" Score="62" ViewCount="" Body="&lt;p&gt;I personally think that every piece of code should go through a code review, it doesn't matter if you are junior or senior developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? For starters your title doesn't state anything about how you develop, and a senior developer could learn something from the junior. At our company we shift around so one of the other members of the team review your code...mostly we are teamed a &quot;junior&quot; and a senior together, so all the stuff that doesn't get said on a daily basis can be caught in a follow up. If the senior doesn't like the junior code he should listen to why the junior did as he did and look at it and see if that's a feasible solution that might be used in the future...it's a matter of getting wiser no matter who you are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One important thing about code review is not being to nice, if you are being a nice guy you'll just allow more and more messy code to evolve in the system. Just as yesterday I started reworking a complete application that a former employed juniordeveloper wrote, and my god that code could have needed a review before he left.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't see why it should be the teamleader only doing reviews but it requires a person that's not affraid of picking a &quot;fight&quot; over a piece of poorly developed code, and it have to be a person that care about how the code should be. Not all companies hire people that actually care about what they do, and those bad eggs should imo not be allowed to do code reviews as they are likely just to shrug their shoulders and say &quot;OK&quot; to bad code.&lt;/p&gt;&#xA;" OwnerUserId="564" LastActivityDate="2010-10-22T08:47:46.013" CommentCount="6" />
  <row Id="13785" PostTypeId="2" ParentId="13778" CreationDate="2010-10-22T08:50:50.693" Score="5" ViewCount="" Body="&lt;p&gt;Like &lt;a href=&quot;http://programmers.stackexchange.com/questions/2777/what-are-the-key-points-of-code-complete/2779#2779&quot;&gt;Robert Harvey&lt;/a&gt; said, it's probably best to read it as an intermediate programmer. I read it after having programmed, more or less, for 10 years. After having read it, I wished I had read it at least 5 years sooner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Code Complete&lt;/em&gt; is a bible of best (or at least very good) practices which you only really appreciate after first having tried out a few of your own. It's like doing a math exercise - you won't appreciate the solution unless you've first made your own stab at it. Maybe the book's solution solved the problem differently compared to your solution, and while the final answer may be the same it is the approach which is interesting. Some approaches are better than others, are more intuitive and yield a better understanding of the problem. The same goes for programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The following quote of Robert Harvey really says it best:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If you're a beginning programmer you won't understand a lot of the material, and if you are experienced, the book will only confirm what you already know.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-22T08:50:50.693" />
  <row Id="13786" PostTypeId="1" AcceptedAnswerId="13846" CreationDate="2010-10-22T08:53:32.277" Score="12" ViewCount="313" Body="&lt;p&gt;Hello everyone,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was asked to make some small technical presentation about specific application scalability. (This application is developed using Java, Spring MVC, Hibernate). I have access to application source codes.&#xA;The question is : how can I measure software scalability(using sources) and  what main points(measurements) do I need to look after when measuring software scalability? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="4164" LastEditorUserId="3966" LastEditorDisplayName="" LastEditDate="2010-10-22T13:28:25.893" LastActivityDate="2010-10-22T14:12:21.740" Title="How to measure software scalability?" Tags="&lt;software&gt;&lt;architecture&gt;&lt;scalability&gt;&lt;quality-attributes&gt;" AnswerCount="2" FavoriteCount="3" />
  <row Id="13787" PostTypeId="2" ParentId="13700" CreationDate="2010-10-22T09:03:39.717" Score="0" ViewCount="" Body="&lt;p&gt;I have a feeling that it might be unpopular in certain circumstances, so I am wary of downvotes...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;but one company I have worked for uses ClearCase as their RCS of choice.  I have to say that it's actually quite good, and has good integration with the tools used (although the UIs for the tools it comes with are dire).  It definitely seems a &quot;big corporate&quot; choice, though.&lt;/p&gt;&#xA;" OwnerUserId="3991" LastActivityDate="2010-10-22T09:03:39.717" CommentCount="1" />
  <row Id="13788" PostTypeId="2" ParentId="13778" CreationDate="2010-10-22T09:05:14.597" Score="0" ViewCount="" Body="&lt;p&gt;I would have probably got the most from it around a year after I graduated. It was useful when I did read it ( about five years later ) but there was some stuff there that I had learned the hard way and I really wished I had known about sooner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I read &lt;em&gt;The Pragmatic Programmer&lt;/em&gt; at the same time and that was spot on- I wouldn't have been ready for that any earlier than when I read it.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-22T09:05:14.597" />
  <row Id="13789" PostTypeId="1" AcceptedAnswerId="13807" CreationDate="2010-10-22T09:09:05.383" Score="5" ViewCount="310" Body="&lt;p&gt;I want to learn Ruby and Python as well, but don't know when .NET will leave me. I can't, at present, change the camp and .NET is coming out with a new thing every now and than.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am planning to distribute my day hours for learning multiple technologies. I want to know what is hot in your view and how soon it should be mastered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please list your top three technologies according to the priority and urgency.&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2010-10-22T17:37:57.383" ClosedDate="2011-01-04T20:55:43.083" Title="Which three technologies you want to learn soon?" Tags="&lt;learning&gt;&lt;career&gt;&lt;technology&gt;" AnswerCount="6" CommentCount="5" FavoriteCount="1" />
  <row Id="13790" PostTypeId="2" ParentId="13789" CreationDate="2010-10-22T09:18:32.990" Score="4" ViewCount="" Body="&lt;p&gt;Grails (Groovy), Apache Buildr and Scala. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I need Grails because of some side project (Actually its legacy system builded on Struts 1 - Grails is helping me with that because there is pretty nice Grails plug-in for struts).&#xA;Apache Buildr -  I heard about it on local JUG conference and learning how to use it to write build scripts (my weak point actually)&#xA;and Scala ... oh Scala is just for self-improvement - want to learn some functional programming with that. &lt;/p&gt;&#xA;" OwnerUserId="4164" LastActivityDate="2010-10-22T09:18:32.990" />
  <row Id="13791" PostTypeId="2" ParentId="13789" CreationDate="2010-10-22T09:25:44.330" Score="4" ViewCount="" Body="&lt;p&gt;.net will definitely give you a job if you learn it. Python and Ruby are popular and which one depends on the syntax you are familiar with. I have tried both and Python suites me more. Its not because Python is better or like that. Its just the matter of syntax, notations etc. Python is more like Algol style where as Ruby is Perl like.&lt;br&gt;&#xA;There are languages that hackers tinker with, like Scala, D etc. But they aren't yet widely adopted in enterprise. I can say that Java, .net, JavaScript, ActionScript (Flash, Flex), C, C++, PHP etc are adopted enterprise technologies.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-10-22T09:25:44.330" CommentCount="3" />
  <row Id="13792" PostTypeId="2" ParentId="13757" CreationDate="2010-10-22T09:33:33.233" Score="1" ViewCount="" Body="&lt;p&gt;Not really programming, but it bugs me when Americans say &quot;Router&quot; (first syllable rhymes with &quot;out&quot;), while Europeans say &quot;Root-er&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that is based on how American's say &quot;Route&quot;, but then why is the song Route 66 sung like it is?&lt;/p&gt;&#xA;" OwnerUserId="4757" LastActivityDate="2010-10-22T09:33:33.233" CommunityOwnedDate="2011-01-09T02:54:49.947" CommentCount="4" />
  <row Id="13793" PostTypeId="1" AcceptedAnswerId="13823" CreationDate="2010-10-22T09:37:25.487" Score="9" ViewCount="494" Body="&lt;p&gt;While travelling I met a mathematician who was sitting near me. In a discussion he said: &quot;...&lt;em&gt;there is nothing like engineering in IT or rather programming&lt;/em&gt;&quot;. A true engineering is what Architecture is, what Electrical and Mechanical is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It made me think and I was puzzled. A percent of my brain agreed also because in Indian Army, there is no subject like Computer Engineering in the Engineering Corps. They don't consider programming as engineering. This is what I heard few years back, I don't know what Indian Army thinks now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your views?&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2011-04-11T22:22:21.230" Title="Is Information Technology really Engineering?" Tags="&lt;software-engineering&gt;" AnswerCount="11" CommentCount="3" FavoriteCount="1" />
  <row Id="13794" PostTypeId="2" ParentId="13793" CreationDate="2010-10-22T09:46:57.773" Score="2" ViewCount="" Body="&lt;p&gt;It depends on the country, on their definition, on their academic system and so on. Some for example do not count architecture as engineering - unlike civil engineering, it is viewed as more of a mix between engineering and art.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It all depends on how you look at it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But why does it matter. &lt;strong&gt;&lt;em&gt;After all, what's in a name?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-22T09:46:57.773" CommentCount="2" />
  <row Id="13795" PostTypeId="2" ParentId="13570" CreationDate="2010-10-22T09:47:22.380" Score="0" ViewCount="" Body="&lt;p&gt;As a complement, &lt;a href=&quot;http://goo.gl/2KIH&quot; rel=&quot;nofollow&quot;&gt;read the &quot;psychic debugging&quot; posts on Raymond Chen's blog&lt;/a&gt;!&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-10-22T09:47:22.380" />
  <row Id="13796" PostTypeId="1" AcceptedAnswerId="13929" CreationDate="2010-10-22T09:47:49.707" Score="3" ViewCount="176" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In hopes of getting myself and my coworkers to adopt automated unit testing methods in future projects, I would like to see a proper example on how it's done. Simple introductionary lessons to unit testing only cover very basic examples and they don't seem to convince anyone of the benefits unit testing can offer. What are some open source projects written in PHP that come with an extensive array of unit tests that are done &quot;properly&quot;, and can be used as an example of how testing should be done?&lt;/p&gt;&#xA;" OwnerUserId="5615" LastEditorUserId="5615" LastEditorDisplayName="" LastEditDate="2010-10-22T09:52:55.403" LastActivityDate="2010-10-22T17:31:19.343" Title="Good example of a properly unit tested PHP project?" Tags="&lt;php&gt;&lt;unit-testing&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="13797" PostTypeId="2" ParentId="13757" CreationDate="2010-10-22T09:51:30.793" Score="4" ViewCount="" Body="&lt;p&gt;I don't deal with all these all the time but...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;char = &quot;tchar&quot; not care?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;hard c like car (because it comes from &quot;character&quot;)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;! = bang not exclamation?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'm just used to calling this exclamation - where did &quot;bang&quot; come from?  Must be an Americanism.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;# = pound not hash? Exception #! = shebang&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;hash - again, pound is an Americanism&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;* = splat not star?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;star, or asterisk&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;regex = &quot;rej ex&quot; not &quot;regg ex&quot;?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;rejex - hard g here just sounds weird&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;sql = &quot;s q l&quot; not &quot;sequel&quot; (already answered, just i.e.)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Both depending on what mood I'm in.  Normally, I say &quot;Sequel Server&quot;, &quot;My Sequel&quot;, but &quot;S Q L&quot; when on its own&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unixen&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;| = pipe not vertical bar?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;pipe, though I used to call it vertical bar.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;bin = bin as in pin , not as in binary?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;bin as in that's where all my junk goes :)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;lib = lib as in library , not as in liberate?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;lib as in liberate because saying &quot;libe&quot; just sounds wrong.  Sounds like I'm trying to say &quot;lube&quot; in an Australian accent&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;etc = &quot;ett see&quot; , not &quot;e t c&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;et cetera, but I'm not a unix guy mainly so I could be wrong with that&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Annoyance&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;/ = slash not backslash&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;slash or forward slash.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;LaTeX = &quot;laytek&quot; not &quot;lay teks&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;as in latex since that's how it's spelt - maybe you can use it with your lib from above.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-22T09:51:30.793" CommunityOwnedDate="2011-01-09T02:54:49.947" CommentCount="10" />
  <row Id="13798" PostTypeId="1" AcceptedAnswerId="13804" CreationDate="2010-10-22T09:51:40.820" Score="6" ViewCount="306" Body="&lt;p&gt;Following reading the latest codeproject newsletter I came accross &lt;a href=&quot;http://www.catonmat.net/blog/low-level-bit-hacks-you-absolutely-must-know/&quot; rel=&quot;nofollow&quot;&gt;this article on bitwise operations&lt;/a&gt;.  It makes for interesting reading, and I can certainly see the benefit of checking if an integer is even or odd, but testing if the n-th bit is set?  What can possibly be the advantages of this?&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-10-24T09:38:02.280" Title="Bitwise Operations advantages" Tags="&lt;software&gt;&lt;software-engineering&gt;&lt;algorithms&gt;&lt;operators&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="13800" PostTypeId="2" ParentId="13700" CreationDate="2010-10-22T10:02:40.907" Score="1" ViewCount="" Body="&lt;p&gt;Depends on the type of team - in small commercial projects VSS still holds sway.  Larger projects will sometimes go for Clearcase, TFS, Starteam...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We use TFS, having switched from VSS.  Personally, I'd prefer to use a distributed system set up like a centralized system so I could check in to my private repository at my leisure without my boss complaining (we're not allowed to do branching unless it's a major piece of work).  Shelvesets are a good step in getting us halway there - but it's still only halfway there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:  BTW if anyone's confused about what I meant there, I just mean the perfect system would have a central repository so that there's One True Version at any one time, but also with local branches so I can keep track of what I've been doing with large changes without committing them before they're ready.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastEditorUserId="5375" LastEditorDisplayName="" LastEditDate="2010-10-22T16:22:52.730" LastActivityDate="2010-10-22T16:22:52.730" CommentCount="1" />
  <row Id="13801" PostTypeId="2" ParentId="13789" CreationDate="2010-10-22T10:03:56.773" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;CodeIgniter, jQuery and C#.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;CodeIgniter and jQuery because they're different ways of coding languages I already know (PHP and Javascript) - so I don't have to learn a whole new language to benefit from different techniques. C# is next on my list because I don't know any .net technologies at the moment, and they're used quite frequently in my field (web development).&lt;/p&gt;&#xA;" OwnerUserId="1698" LastActivityDate="2010-10-22T10:03:56.773" />
  <row Id="13802" PostTypeId="2" ParentId="13798" CreationDate="2010-10-22T10:15:14.097" Score="2" ViewCount="" Body="&lt;p&gt;These kind of operations are often used when writing for embedded systems where memory or CPU power is restricted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, to save space you may store multiple variables in a single 8-bit int variable by using each bit to represent a boolean. Then you need a fast way to set a specific bit or retrieve the bit value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally when programming in higher level languages like C# on a desktop PC with Gigabytes of memory, you don't really care that each &lt;code&gt;bool&lt;/code&gt; &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/eahchzkf.aspx&quot; rel=&quot;nofollow&quot;&gt;takes up a whole byte&lt;/a&gt;. But if you're programming a microcontroller in C with 2kb of memory, every single bit counts, so the ability to pack 8 bools into a single byte may be critical.&lt;/p&gt;&#xA;" OwnerUserId="134" LastEditorUserId="134" LastEditorDisplayName="" LastEditDate="2010-10-22T10:42:55.280" LastActivityDate="2010-10-22T10:42:55.280" CommentCount="4" />
  <row Id="13803" PostTypeId="2" ParentId="13796" CreationDate="2010-10-22T10:17:54.707" Score="2" ViewCount="" Body="&lt;p&gt;Drupal, specifically &lt;a href=&quot;http://drupal.org/drupal-7.0-beta1&quot; rel=&quot;nofollow&quot;&gt;Drupal 7&lt;/a&gt;, is probably one of the most high-profile and most comprehensively unit-tested public PHP projects, with built-in unit testing support, over 24,000 tests, and a requirement that all core contributions have tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its unit testing support is based on &lt;a href=&quot;http://www.simpletest.org/&quot; rel=&quot;nofollow&quot;&gt;SimpleTest&lt;/a&gt;, and has been in active use for a couple of years now. One of the neat things that Drupal does is test all patches that are attched to issue queues, giving feedback to contributors discussing a particular issue without having to manually apply patches themselves (&lt;a href=&quot;http://drupal.org/node/872680&quot; rel=&quot;nofollow&quot;&gt;example&lt;/a&gt;).&lt;/p&gt;&#xA;" OwnerUserId="8" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-10-22T17:31:19.343" LastActivityDate="2010-10-22T17:31:19.343" />
  <row Id="13804" PostTypeId="2" ParentId="13798" CreationDate="2010-10-22T10:32:32.570" Score="9" ViewCount="" Body="&lt;p&gt;Bitwise operations are absolutely essential when programming hardware registers in embedded systems.  For example every processor that I have ever used has one or more registers (usually a specific memory address) that control whether an interrupt is enabled or disabled.  To allow an interrupt to fire the usual process is to set the enable bit for that one interrupt type while, most importantly, not modifying any of the other bits in the register.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When an interrupt fires it typically sets a bit in a status register so that a single service routine can determine the precise reason for the interrupt.  Testing the individual bits allows for a fast decode of the interrupt source.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In many embedded systems the total RAM available may be 64, 128 or 256 BYTES (that is Bytes not kilobytes or megabytes)  In this environment it is common to use one byte to store multiple data items, boolean flags etc. and then use bit operations to set and read these.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have, for a number of years been working with a satellite communications system where the message payload is 10.5 bytes.  To make the best use of this data packet the information must be packed into the data block without leaving any unused bits between the fields.  This means making extensive use of bitwise and shift operators to take the information values and pack them into the payload being transmitted.&lt;/p&gt;&#xA;" OwnerUserId="5877" LastActivityDate="2010-10-22T10:32:32.570" CommentCount="1" />
  <row Id="13805" PostTypeId="2" ParentId="13623" CreationDate="2010-10-22T10:33:15.037" Score="22" ViewCount="" Body="&lt;p&gt;If I was given a slow machine I'd spend my day optimising the development process and not optimising my delivered code.&#xA;So: NO!&lt;/p&gt;&#xA;" OwnerUserId="6015" LastActivityDate="2010-10-22T10:33:15.037" CommunityOwnedDate="2010-10-22T17:12:01.930" CommentCount="2" />
  <row Id="13807" PostTypeId="2" ParentId="13789" CreationDate="2010-10-22T10:50:09.163" Score="3" ViewCount="" Body="&lt;p&gt;I would like to learn better:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ruby&lt;/strong&gt; - it seems to be a great opportunity to write less code and achieve your goals. I'm just concerned about performance issues, but I think at least, for web projects I would gain some time. The market here is lacking some intellisense tools in order to get things done with minimum effort. That's why I love the next language below.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;C#&lt;/strong&gt; - I came across many languages, just like Turbo Pascal and Java, when I used C#, I felt like I was at home... :) My productivity grew a lot, and I'm able to deliver things faster than using another languages, including Java itself. I remember I had a Java system developed by a colleague, and we had to install so many plugins, that it took about 1 hour and a half, configuring xmls, hardcoding some strings, I really hate that world. When the IDE offers you a wizard to repetitive tasks, I think it is awesome. I hope Ruby will have some good IDE like Visual Studio.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Android&lt;/strong&gt; - I would love to create mobile applications. I think the market for Android is going to grow, Google APIs will be spread in many gadgets, and we will have a great opportunity to make money in future business! I really would like to develop some great ideas on this framework.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And what would you like to learn? &lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-22T10:50:09.163" />
  <row Id="13811" PostTypeId="1" AcceptedAnswerId="13818" CreationDate="2010-10-22T10:52:21.050" Score="5" ViewCount="316" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm trying to think of a way to tell a recruiter that the role I went for I don't want, but as there is an offer they keep hassling me. I do have another role which I have accepted, but I told the recruiter that I wasn't speaking to anyone else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So do I go back and tell the truth, that I have another role. Or ignore their calls and emails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stephen (scared of pushy recruiters) &lt;/p&gt;&#xA;" OwnerUserId="3242" LastActivityDate="2010-10-22T16:41:26.197" Title="What is the best way to tell a recruitment agency you aren't interested in a role" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="1" />
  <row Id="13815" PostTypeId="2" ParentId="13811" CreationDate="2010-10-22T11:01:06.177" Score="4" ViewCount="" Body="&lt;p&gt;First it is nice to be in demand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would just go back to the first recruiter and tell them that you are not going to accept the offer.  You can say that you had another better offer elsewhere, don't be specific.  You may be embarrassed that you lied to the recruiter about looking elsewhere.  That is their tough luck.  They lie to their clients all of the time and should not expect you to tell the whole truth all of the time.  Once you tell them that you are not interested then they should go away, after all, all that they want is the commission for filling the position and hassling you is a waste of their time.  On the other hand they might come back with a better offer.&lt;/p&gt;&#xA;" OwnerUserId="5877" LastActivityDate="2010-10-22T11:01:06.177" CommentCount="1" />
  <row Id="13816" PostTypeId="2" ParentId="13811" CreationDate="2010-10-22T11:01:18.720" Score="0" ViewCount="" Body="&lt;p&gt;Hello&lt;/p&gt;&#xA;&#xA;&lt;p&gt;you just have to answer politely you are not interested by now, but would like to receive new opportunities by e-mail if possible. You never know what is going to happen tomorrow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is always good to be nice with agencies and tell them to inform you about job openings in your area. Someday you might find this information relevant when you begin to search a new job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Believe me: phone marketing guys are worst! :)&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-22T11:01:18.720" />
  <row Id="13818" PostTypeId="2" ParentId="13811" CreationDate="2010-10-22T11:01:42.973" Score="9" ViewCount="" Body="&lt;p&gt;I always used to reply to recruiters but I began to notice that they never inform me when they have no further interest in me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are 100% focussed on making a sale. Anything which does not work towards closing a deal is simply ignored.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure there are exceptions. Just haven't met that person yet ;-)&lt;/p&gt;&#xA;" OwnerUserId="598" LastActivityDate="2010-10-22T11:01:42.973" CommentCount="4" />
  <row Id="13819" PostTypeId="2" ParentId="13757" CreationDate="2010-10-22T11:08:36.610" Score="6" ViewCount="" Body="&lt;p&gt;# = Hash     (£ is a pound sign)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;! = Pling&lt;/p&gt;&#xA;" OwnerUserId="5877" LastActivityDate="2010-10-22T11:08:36.610" CommunityOwnedDate="2011-01-09T02:54:49.947" CommentCount="4" />
  <row Id="13820" PostTypeId="2" ParentId="13811" CreationDate="2010-10-22T11:12:53.927" Score="3" ViewCount="" Body="&lt;p&gt;&quot;Hi, I'm not interested in that role. Don't ask me again.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are not required to explain or justify yourself to them. In fact, doing so encourages them to pester you, because it's a sign of weakness. (&quot;If you're explaining, you're losing&quot;, as my local politicians say.)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-22T11:12:53.927" />
  <row Id="13821" PostTypeId="2" ParentId="13811" CreationDate="2010-10-22T11:15:39.207" Score="9" ViewCount="" Body="&lt;p&gt;I think the &lt;strong&gt;most powerful&lt;/strong&gt; way to tell someone your are not interested is:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;telling him you are not interested.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If he insist, just do this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;tell him your are not interested.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If he still insist, do this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;tell him you are not interested.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If he insist again, I highly suggest you to do this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;tell him you are not interested.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;My maximum number of time I answered the same question with the same answer was 4.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This technique also work with other people aush as managers, employees, coworkers, wife/husband, kids, pets, ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What doesn't work and should be avoided in any relation&lt;/strong&gt;: being aggressive, avoiding answers or calls or emails, lies, not answering at all.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-22T11:25:35.610" LastActivityDate="2010-10-22T11:25:35.610" CommentCount="2" />
  <row Id="13822" PostTypeId="2" ParentId="13699" CreationDate="2010-10-22T11:19:39.193" Score="13" ViewCount="" Body="&lt;p&gt;For us, the costs-us-but-doesn't-put-money-in-your-pocket are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;conferences and training. Two weeks a year (you find them and show me you want to attend) including travel expenses&lt;/li&gt;&#xA;&lt;li&gt;flex time. I had people start work as early as 7 or as late as 10, typically to mesh with kid or spouse schedules.&lt;/li&gt;&#xA;&lt;li&gt;cover your fees to write certifications or similar exams, on top of the training costs&lt;/li&gt;&#xA;&lt;li&gt;no questions asked book buying policy.&lt;/li&gt;&#xA;&lt;li&gt;pop, snacks (popcorn, fresh fruit, pretzels, nuts) bought by an admin and paid for by the firm, and a mini kitchen (in our old office)&lt;/li&gt;&#xA;&lt;li&gt;you can make personal calls, even long distance ones, from your desk, and receive personal calls on our 800 number&lt;/li&gt;&#xA;&lt;li&gt;I have a company car and over the years when an employee has had car trouble I have let them use it if they otherwise couldn't get to work&lt;/li&gt;&#xA;&lt;li&gt;our preference is for no overtime; if it's really required we pay you for it (and therefore you need permission)&lt;/li&gt;&#xA;&lt;li&gt;(I forgot) time off (usually unpaid) for kid reasons like you want to accompany a field trip or volunteer in their classroom. I can't understand places that think making you miss your child's concert or whatever is a good idea. Actually, time off, days/weeks/months, unpaid whenever you want without making you beg.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;We've had other things over the years but these are the ones people really appreciated. Some of them, like the fruit bowl, are very low cost but have a big impact.&lt;/p&gt;&#xA;" OwnerUserId="285" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2010-10-22T13:48:53.663" LastActivityDate="2010-10-22T13:48:53.663" CommentCount="2" />
  <row Id="13823" PostTypeId="2" ParentId="13793" CreationDate="2010-10-22T11:21:07.070" Score="11" ViewCount="" Body="&lt;p&gt;If we follow this &lt;a href=&quot;http://en.wikipedia.org/wiki/Engineer&quot; rel=&quot;nofollow&quot;&gt;description&lt;/a&gt;, we are 75% engineers, or 75% of us are engineers :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unlike other engineering disciplines:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;software developers don't need formal education and/or licences&lt;/li&gt;&#xA;&lt;li&gt;is a relatively young discipline and don't have proven best practices (like construction, for example)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think this is going to change in the future. Someday we'll be 100% engineers.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Engineer&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;source: &lt;a href=&quot;http://en.wikipedia.org/wiki/Engineer&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Engineer&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An engineer is a professional practitioner of engineering, concerned with applying scientific knowledge, mathematics and ingenuity to develop solutions for technical problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The word engineer is derived from the Latin root ingenium, meaning &quot;cleverness&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Occupation&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Names  &lt;strong&gt;Engineer&lt;/strong&gt; &lt;/li&gt;&#xA;&lt;li&gt;Type  &lt;strong&gt;Profession&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Activity sectors  &lt;strong&gt;Applied sciences&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Competencies  &lt;strong&gt;Mathematics, scientific&#xA;knowledge, management skills&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Education required  &lt;strong&gt;Engineering&#xA;education&lt;/strong&gt;   &lt;/li&gt;&#xA;&lt;li&gt;Fields of employment  &lt;strong&gt;Research and development, industry, business&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related jobs  &lt;strong&gt;Scientist, architect, project manager&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2913" LastActivityDate="2010-10-22T11:21:07.070" />
  <row Id="13824" PostTypeId="2" ParentId="13623" CreationDate="2010-10-22T11:22:01.563" Score="8" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;1) If I give a developer a slower&#xA;  machine, does that mean that the&#xA;  resulting code may be faster or more&#xA;  efficient?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;We have been building software for the last 6 decades, and we still get questions like these? Seems more like yet another attempt at cutting corners. No offense, but c'mon, do you think the question is even logical? Think about it in these terms (if you can): you want to build a 4x4 vehicle that can operate under harsh conditions, rain, mud, whatever. Are you going to put your engineers and assembly line under the elements just to make sure the resulting vehicle can operate on them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mean, Jesus Christ! There is development and there is testing. Testing is done in a different, harsher environment, or the developer knows how to assemble a test-bed in his own dev environment in a manner suitable for stress testing. If he can't, replace him with a better developer.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;2) What can I do to give my developers&#xA;  a fast IDE experience, while giving&#xA;  'typical' runtime experiences?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You should be asking that to your developers. And if they can't give you an objective and valid answer, you need to replace them with actual developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But to entertain the question, give your developers (assuming you have good developers), good tools and good hardware, the best you can afford. Then set up a lowest common baseline environment in which your software must operate. &lt;strong&gt;That's&lt;/strong&gt; where testing should occur. It is much better engineering practice to have a test environment &lt;strong&gt;&lt;em&gt;that is distinct&lt;/em&gt;&lt;/strong&gt; from the development environment (preferably one that allows you do to stress testing.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your developers are any good, they should have communicated this to you (assuming you have asked them.)&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-22T11:22:01.563" CommunityOwnedDate="2010-10-22T17:12:01.930" CommentCount="3" />
  <row Id="13825" PostTypeId="2" ParentId="13798" CreationDate="2010-10-22T11:26:03.593" Score="2" ViewCount="" Body="&lt;p&gt;Basically, you use them due to size and speed considerations. Bitwise operations are incredibly simple and thus usually faster than arithmetic operations. For example to get the green portion of an rgb value, the arithmetic approach is &lt;code&gt;(rgb / 256) % 256&lt;/code&gt;. With bitwise operations you would do something as &lt;code&gt;(rgb &amp;gt;&amp;gt; 8) &amp;amp; 0xFF&lt;/code&gt;. The latter is significantly faster and once you're used to it, its also easier. Generally bitwise operations come into play a lot when you need to encode/decode data in a compact and fast way.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-10-22T11:26:03.593" CommentCount="1" />
  <row Id="13827" PostTypeId="2" ParentId="13811" CreationDate="2010-10-22T11:43:08.223" Score="0" ViewCount="" Body="&lt;p&gt;It doesn't matter what you do, the recruitment vultures will keep hassling you every time they think they can make a quick buck off your skills. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just politely tell them I have a role I'm happy with for the time being and they say they'll maybe call back in six months and then pester me again the minute anything matching my old CV happens to drift by.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-22T11:43:08.223" />
  <row Id="13828" PostTypeId="2" ParentId="13623" CreationDate="2010-10-22T11:51:49.783" Score="15" ViewCount="" Body="&lt;p&gt;In programming, there is an old saying that &quot;&lt;a href=&quot;http://c2.com/cgi/wiki?OptimizeLater&quot; rel=&quot;nofollow&quot;&gt;premature optimization is the root of all evil&lt;/a&gt;&quot;. I think you have managed to successfully create another &quot;root&quot; (or at least first branch) of all evil. From now on, we can say &quot;premature developer deoptimization is the root of all evil.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, the answer is that this will only slow up your development time and make further maintenance more difficult. Compile times will take longer, searching for code on disk will go slower, finding answers online will take longer, and MOST importantly, developers will start to use prematurely optimize their code in order to even to be able to test the needed functionality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That last point is the most critical issue and isn't brought up in many of the other answers. You may get your first version out ok, but then when you want to update the code in the future, you will find that the developers premature optimization took the focus of your code away from good design and pushed it closer to &quot;gotta make this at least work to keep my job&quot; style of code. Adding additional features will become more difficult because the optimizations chosen at the time may be unneeded and lock your code into a path of semi-optimized hacks on top of other semi-optimized hacks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an example of this, imagine that your current version's minimum system requirement is a single processor machine of somewhat slow speed. You place developers on this box and they come up with a intricate single threaded solution that relies on a lot of hacks because they wanted to develop the product quickly. Now 5 years later, you have a new version of the product that has a minimum requirement of a dual processor machine. You would like to be able to cleanly separate out parts of the program that you can run in parallel but the decision you made 5 years ago that forced your developers to make a hacky software now prevents you from using the full power of your new minimum requirement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you should do is to add a phase at the end of your development cycle where you do acceptance testing on the lower bound boxes. Certainly some of the code will be too slow because of the developer's faster machine but you can isolate that part and optimize it there. The rest of your code stays clean and maintainable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I see your question as saying, &quot;Can I force my developers to optimize early by giving them poor developer machines yet still get good code?&quot; And the answer is no.&lt;/p&gt;&#xA;" OwnerUserId="6018" LastActivityDate="2010-10-22T11:51:49.783" CommunityOwnedDate="2010-10-22T17:12:01.930" CommentCount="1" />
  <row Id="13829" PostTypeId="2" ParentId="13623" CreationDate="2010-10-22T11:53:25.747" Score="6" ViewCount="" Body="&lt;p&gt;This is not a bad idea - but you want your developers to have a speedy programming environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could possibly implement this by giving your programmers two machines - a fast dev box, and a slower commodity box (possibly virtual) for testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some tweaking of the VS build process could make deployment to the test box the norm, with remote debugging.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are other ways to consider forcing your coders to develop more efficient code - you can include performance and memory-use goals in your unit tests, for example. Setting budgets for memory use is an excelent goal as well. Also setting page-weight budgets for html code.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-22T11:53:25.747" CommunityOwnedDate="2010-10-22T17:12:01.930" />
  <row Id="13830" PostTypeId="1" AcceptedAnswerId="13848" CreationDate="2010-10-22T12:41:21.697" Score="5" ViewCount="259" Body="&lt;p&gt;When you are updating your resume, what is the best way to describe a single, long term project? For example, if you are working on &lt;em&gt;project x&lt;/em&gt; for three years with only minor side projects, how do you describe that project to ensure that the full scope and impact of the work is made clear?&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-10-22T13:55:18.073" Title="What is the best way to describe a single, long project on a resume?" Tags="&lt;career&gt;&lt;resume&gt;&lt;job-hunting&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="3" />
  <row Id="13831" PostTypeId="2" ParentId="13470" CreationDate="2010-10-22T12:41:36.487" Score="2" ViewCount="" Body="&lt;p&gt;Poor management abounds in this world. Definitely stay on board until you have a place to land. Which means taking PTO time to go to interviews. Also, it's usually in bad taste to show up to work in interview clothes. So avoid doing that if you really care about leaving a bad taste in their mouth. If you don't care, meh.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can write a letter to your current employer with a list of things that could make you stay, but, it sounds like you need to move on - there's nothing wrong with that - it's business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On that note, meditate on some of the things that are deal breakers about where you are now. Make a list. Spend a good deal of time on the weekend assessing the root causes of those issues and try to build interview questions for your next series of interviews from them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You want to be politically correct when you go into the interview, so if you have &quot;bad management&quot; on your list, enumerate on why you think the management is bad and then turn those enumerations into a list of questions for your next interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they ask why you're leaving don't be too honest. Just say something like, &quot;I'm looking to learn more professionally and where I am now, I can't really grow&quot;. Something like that. It avoids being overly critical about management, but at the same time, it's a true statement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you find a good place to land, give your employer at least 2 weeks. From my experience most HR departments (sounds like you're in a small company) will take at least a month or two to process new personnel. I'd say if that's the case, give your employer at least a month's to a month-and-a-half of time to bail.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't care - 2 weeks is the standard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;good luck.&lt;/p&gt;&#xA;" OwnerUserId="5918" LastEditorUserId="5918" LastEditorDisplayName="" LastEditDate="2010-10-22T12:47:08.660" LastActivityDate="2010-10-22T12:47:08.660" CommentCount="1" />
  <row Id="13832" PostTypeId="2" ParentId="13623" CreationDate="2010-10-22T12:51:47.900" Score="12" ViewCount="" Body="&lt;p&gt;Interesting reading, all those answers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I think most people answering here are missing the point. The question, as I read it is not (only at least) about really giving the developers a P1 to make faster code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point is that a lot of software today is just as slow or even slower than the seftware we used back in last millennium in spite of very much more powerful computers. Judging from the answers here most developers don't get that hint. This is very obvious in web applications. This site is a very good exception, but many sites are having a front page in 1 mb. What do I get for waiting for that to download? I don't know. I think it seems to be about an ignorance from the developer not respecting the time the user need to spend on it, or even worse pay for if you pay per mb. The thing is that all those web pages is not even containing high resolution pictures. Often it is just some crap code delivered from some development-environment. Well, of course it is not crap code I guess, but it gives no gain to me as user.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general it is not only about optimizing the code, but just as much about choosing to not include things slowing down more than the it gives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few weeks ago I started a laptop from 1995. Windows 3.x was up and running in no time. The database I should get some data from started before the enter key was fully released (almost at least).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that we get a lot more from our software today, but we also have computers many times faster. Why doesn't the development industry decide to keep the speed of software from 1995 and make people buy new hardware because they want new functionality. Today it is more like the everyday-programs and web sites forces people to buy new hardware to do exactly the same things as they did earlier. But of course in a fancier way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have to say I think the Linux development seems to handle this better. Linux distributions has for many years been quite far ahead windows even in fanciness with many eye candy things like animated windows. The thing is that they have in spite of that worked on the computers of today and even yesterday. Not only on cutting edge hardware.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By now I guess many developers have an unhealthy level of adrenalin. Yes, I found a way to give back some frustration from all waiting in front of:&lt;br&gt;&#xA;office &#xA;sql server (starting up management console)&#xA;arcgis  (starting up and using)&#xA;acrobat reader  (starting up)&#xA;agresso  (using, at least as web application)&#xA;windows  (staring and using, well I haven't tried 7 yet)&#xA;.net web pages (downloading)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and so on &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel good :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers&lt;br&gt;&#xA;Nicklas&lt;/p&gt;&#xA;" OwnerUserId="4667" LastEditorUserId="4667" LastEditorDisplayName="" LastEditDate="2010-10-22T13:00:25.177" LastActivityDate="2010-10-22T13:00:25.177" CommunityOwnedDate="2010-10-22T17:12:01.930" CommentCount="2" />
  <row Id="13833" PostTypeId="2" ParentId="13830" CreationDate="2010-10-22T12:54:27.067" Score="3" ViewCount="" Body="&lt;p&gt;Resist the temptation to blather on about it to fill up space on the resume. Just succinctly mention the technologies and highlights and maybe throw in the duration of the project if you think it makes you otherwise look bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Filler always hurts your resume in my opinion.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-22T12:54:27.067" CommentCount="1" />
  <row Id="13834" PostTypeId="2" ParentId="13830" CreationDate="2010-10-22T12:57:20.370" Score="3" ViewCount="" Body="&lt;p&gt;You give detail on what your role in the project entailed. It doesn't really matter to someone looking to recruit you what you were actually working on nearly so much as the skills you used to do it. You don't even necessarily have to say what the project was, just saying &quot;I was using the following skills&quot; is going to give them the information they want to evaluate whether your skill set is equivalent to their requirement. Really that's the whole purpose of a Resume. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's pretty unusual for someone, even on a single project, to only be doing one thing for years at a stretch, so I would expect that would give a good indication of what your experience is while in that role.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-22T12:57:20.370" CommentCount="2" />
  <row Id="13835" PostTypeId="2" ParentId="13793" CreationDate="2010-10-22T13:02:14.587" Score="10" ViewCount="" Body="&lt;p&gt;Software engineering is engineering, but IT or programming aren't. That's much like mechanical engineering is engineering and physics or welding aren't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software engineering is an incredibly young field (compared to other engineering branches), which it is actually hard to teach people, because there's not much experience to teach from. Only in the last 20-25 years has software become so big and complex that mere programming won't do the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Due to this shortcoming of established knowledge, actual software engineering is rarely taught. The only way you can become a decent software engineer is following the way of a craftsman: being mentored in the field. So while software engineering is an existent discipline, very few are actually in this field. Most people are doing software tinkering or software over-engineering.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-10-22T13:02:14.587" CommentCount="9" />
  <row Id="13837" PostTypeId="1" CreationDate="2010-10-22T13:11:09.937" Score="0" ViewCount="189" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/2715/curly-braces-on-their-own-line-or-not&quot;&gt;Curly braces on their own line or not?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;This question is similar in nature to &lt;a href=&quot;http://programmers.stackexchange.com/q/2715/5288&quot;&gt;this question&lt;/a&gt;, but has a slightly different purpose:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a chain of if/else-if statements, should the else-if (and the eventual else) statement be on the same line or the line after the closing &lt;code&gt;}&lt;/code&gt; of the previous if.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Visually:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (var == 5) {&#xA;    // Do stuff&#xA;}&#xA;else if (var &amp;lt; 5) {&#xA;    // Do other stuff&#xA;}&#xA;else {&#xA;    // Do more other stuff&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;vs.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (var == 5) {&#xA;    // Do stuff&#xA;} else if (var &amp;lt; 5) {&#xA;    // Do other stuff&#xA;} else {&#xA;    // Do more other stuff&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I also wonder how it correlates with people who think that the opening brace deserves its own line as well. Personally, I prefer the second method, but I tend to leave an empty line before and after the if/else if/else lines to break it up. I like that keeping the else on the same line as the closing braces makes it very clear in a block of nested if's which if the else belongs to.&lt;/p&gt;&#xA;" OwnerUserId="5288" LastActivityDate="2010-10-22T16:17:19.553" ClosedDate="2010-10-27T01:25:56.657" Title="Does else-if / else deserve its own line or share with the previous closing brace?" Tags="&lt;holy-war&gt;&lt;curly-braces&gt;&lt;coding-style&gt;" AnswerCount="5" CommentCount="4" />
  <row Id="13838" PostTypeId="2" ParentId="13837" CreationDate="2010-10-22T13:15:14.233" Score="1" ViewCount="" Body="&lt;p&gt;It is mostly personal preference &lt;em&gt;unless&lt;/em&gt; there is an agreed way/rule to do it in the group if it is a multi-person project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I am working alone, I prefer to have if/else on its own line like the first shown.  I find this method to be easier to read since you know exactly where the if/else ends and the new one begins.&lt;/p&gt;&#xA;" OwnerUserId="3092" LastActivityDate="2010-10-22T13:15:14.233" />
  <row Id="13839" PostTypeId="2" ParentId="13778" CreationDate="2010-10-22T13:18:25.367" Score="0" ViewCount="" Body="&lt;p&gt;I'm about to start a new job, thinking of re-reading Code Complete, just to get back to using good habits again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stephen&lt;/p&gt;&#xA;" OwnerUserId="3242" LastActivityDate="2010-10-22T13:18:25.367" />
  <row Id="13840" PostTypeId="2" ParentId="13837" CreationDate="2010-10-22T13:19:07.767" Score="4" ViewCount="" Body="&lt;p&gt;Rule number one: BE CONSISTENT.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rule number two: Follow your local/company/project coding standard document.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My preference is to put the opening and closing brace on their own line.  Always place braces around the executed part of the if, even when there is only one executed statement.  I am so used to this that if I see an if without a brace then it screams ERROR to me.  This rule ensures that any lines that may be added to the if clause will be added to the conditionally executed part of the code.  If the braces are missing then it is too easy to forget to add them.&lt;/p&gt;&#xA;" OwnerUserId="5877" LastActivityDate="2010-10-22T13:19:07.767" />
  <row Id="13841" PostTypeId="2" ParentId="13837" CreationDate="2010-10-22T13:26:08.117" Score="7" ViewCount="" Body="&lt;p&gt;I will prefer the braces to have their own lines. One of the advantages I can think of is when you want to remove or comment out a chunk of the codes.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (var == 5) {&#xA;    callMethodA();&#xA;}&#xA;else if (var &amp;lt; 5) {&#xA;    callMethodB();&#xA;}&#xA;else {&#xA;    callMethodC();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Commenting or removing the &lt;code&gt;else if&lt;/code&gt; block will just be:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (var == 5) {&#xA;    callMethodA();&#xA;}&#xA;//else if (var &amp;lt; 5) {&#xA;//    callMethodB();&#xA;//}&#xA;else {&#xA;    callMethodC();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;vs&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (var == 5) {&#xA;    callMethodA();&#xA;} //else if (var &amp;lt; 5) {  &amp;lt;-- untidy i must say &#xA;  //  callMethodB();&#xA;//}  &amp;lt;-- oops convention broken &#xA;else {&#xA;    callMethodC();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2262" LastActivityDate="2010-10-22T13:26:08.117" CommentCount="1" />
  <row Id="13842" PostTypeId="2" ParentId="13811" CreationDate="2010-10-22T13:26:41.903" Score="1" ViewCount="" Body="&lt;p&gt;In my experience recruiters just want to sell. Most neither care too much about you nor about your potential employer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you make clear they don't need to call you anymore, they can stop wasting everybody's time. Including their own.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-10-22T13:26:41.903" />
  <row Id="13844" PostTypeId="2" ParentId="13623" CreationDate="2010-10-22T13:40:45.097" Score="3" ViewCount="" Body="&lt;p&gt;For many applications the issue is getting developers to test with real world data sets before they are &quot;done.&quot;  For interactive applications, a baseline test machine/VM would be required.&lt;/p&gt;&#xA;" OwnerUserId="6043" LastActivityDate="2010-10-22T13:40:45.097" CommunityOwnedDate="2010-10-22T17:12:01.930" />
  <row Id="13846" PostTypeId="2" ParentId="13786" CreationDate="2010-10-22T13:44:01.160" Score="3" ViewCount="" Body="&lt;p&gt;I would start with reading &lt;a href=&quot;http://en.wikipedia.org/wiki/Scalability&quot; rel=&quot;nofollow&quot;&gt;Wikipedia article&lt;/a&gt; on the subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, scalability is &lt;em&gt;how system performance grows with adding more resources&lt;/em&gt; or, alternatively, &lt;em&gt;how the resource utilization grows with increasing load&lt;/em&gt;. For example, how many concurrent users can your site handle until response time grows beyond 0.3 sec? The same question after you double the available RAM/disk/CPU/etc. You probably can use your knowledge of the application internals to decide which parameters are worth checking. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Setup a test bench with a server machine and one or more client machines. Use some tool to limit the amount of resources available to the server (e.g. &lt;code&gt;ulimit&lt;/code&gt;) or run some interfering application on the server. Measure how the server deals with client requests. Repeat the above gradually increasing/decreasing interfering load/available resources. At the end you get n-dimensional space with  dots in it. It may be simpler to change only one parameter at a time while fixing all the others at some typical value (or a couple of values). In this case you can represent the result as a bunch of 2D graphs with server performance (e.g. number of users/requests) on one axis and resource utilization/availability on the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are more complex scenarios where your application uses several servers for several part of the application and you can vary their amount and ratio, but I guess it's not your case. At most, you probably may want to vary the number of threads/processes, if this matters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you measure the whole application you usually don't need source code access. However, you may be interesting in measuring some specific part of the code (e.g. only DB or UI). Then you can use the source code to expose only this module for measurements and run your tests. This is called a &lt;em&gt;microbenchmark&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're looking for examples, there is a plenty of them in academic articles. Search the google scholar for &lt;a href=&quot;http://scholar.google.com/scholar?q=performance+evaluation&quot; rel=&quot;nofollow&quot;&gt;performance evaluation&lt;/a&gt; + your preferred terms.&lt;/p&gt;&#xA;" OwnerUserId="5928" LastEditorUserId="5928" LastEditorDisplayName="" LastEditDate="2010-10-22T14:12:21.740" LastActivityDate="2010-10-22T14:12:21.740" />
  <row Id="13847" PostTypeId="2" ParentId="13623" CreationDate="2010-10-22T13:52:29.557" Score="4" ViewCount="" Body="&lt;p&gt;Interestingly, I worked at a startup where we ended up doing this.  I think it actually worked pretty well, but only because of the specific situation we were in.  It was a mod_perl shop where class auto-reloading actually worked correctly.  All the developers used vim as their IDE of choice (or used some remote editing software).  The end result was that very little (if any) time was lost waiting for code to compile/reload/etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, I like this idea IFF there is a negligible impact on the development cycle for all developers, and it only impacts runtime operation of your code.  If your code is in anyway compiled, preprocessed, etc, then you are adding time to &quot;fix bug; test; next&quot; loop that developers are working in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the interpersonal side, people were never &lt;em&gt;forced&lt;/em&gt; to use the slow servers, but if you used the slow servers, you didn't have to do any of your own maintenance or setup.  Also, this setup existed from the very beginning, I can't imagine trying to sell this to an established development team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After rereading your original question, it occurs to me that one thing that perpetually terrifies me is development environments that differ from production environments.  Why not use a VM for code execution that you can cripple for runtime without affecting the dev workstation?  Lately, I've been using/loving VirtualBox.&lt;/p&gt;&#xA;" OwnerUserId="6041" LastActivityDate="2010-10-22T13:52:29.557" CommunityOwnedDate="2010-10-22T17:12:01.930" />
  <row Id="13848" PostTypeId="2" ParentId="13830" CreationDate="2010-10-22T13:55:18.073" Score="5" ViewCount="" Body="&lt;p&gt;If it's a project in the sense that you're a freelancer and this was your gig, that's one thing. But if you were an employee, don't worry about how many projects you did over your tenure at the firm. Either way, describe what you did (after all if the project included a ton of T-SQL stored procedures but you didn't write them then I don't care about them) whether it was all for one project or for tons of different projects. Long projects may give you a chance to show good PM skills, good documentation skills, and good communication skills with new team members. Be sure to mention those too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do engage in a little introspection before the interview. I've had staff who are great on one project for long stretches and suffer when asked to juggle a lot of short projects or several medium projects at once. I've had others who crave variety and newness and get fed up of long projects with the same customers. You should know which kind of person you are, and how that fits with the single long project you had. Then in the interview if you are asked whether you prefer one long thing, lots of things at once, or lots of short things sequentially, you will have an honest and informed answer that you can relate back to your own experience.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-22T13:55:18.073" />
  <row Id="13849" PostTypeId="2" ParentId="13470" CreationDate="2010-10-22T13:58:05.177" Score="4" ViewCount="" Body="&lt;p&gt;Before you quit your current job find a new one first!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finding a job is always easier when you already have one.  It looks better to recruiters and potential employers if you're currently employed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing a letter is hardly necessary unless you want to make a statement, and if you do, be diplomatic about it.  At my previous job, which I wasn't terribly happy with, I was getting all kinds of calls for opportunities - far more than I received while job hunting unemployed.  I eventually got a great offer - my current job which I'm really happy with - and just gave notice to my previous employer.  I sat down with my manager and explained the opportunity I had and she was very understanding.  I gave at least a month's notice because I had that much time until I started my current job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But two weeks notice is just fine - you'd be lucky to get more than that from your employer if they ever decide to let you go!  And I doubt they'd be writing you a letter.&lt;/p&gt;&#xA;" OwnerUserId="6045" LastActivityDate="2010-10-22T13:58:05.177" CommentCount="1" />
  <row Id="13850" PostTypeId="2" ParentId="13699" CreationDate="2010-10-22T13:59:51.923" Score="0" ViewCount="" Body="&lt;p&gt;If you really, really, really want to stand out from the pack:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Buy pizza for my programming group meetings and/or supply the office space.  (Capital IQ ClariFI buys the pizza for Boston Scala, Google supplies the office space)&lt;/li&gt;&#xA;&lt;li&gt;Pay for an Android or iPhone for me&lt;/li&gt;&#xA;&lt;li&gt;A window w/ a bird feeder&lt;/li&gt;&#xA;&lt;li&gt;Provide dry-cleaning/laundry services on site.  This can be as much as having a local business come to the office and you subsidizing the costs&lt;/li&gt;&#xA;&lt;li&gt;Provide grocery shopping services: I order, someone else picks it up.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Finally let me just say screw cash bonuses and the like.  What I'm looking for in an employer at the moment is:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;A kick-ass computer&lt;/li&gt;&#xA;&lt;li&gt;An Aeron chair&lt;/li&gt;&#xA;&lt;li&gt;A keyboard tray which attaches to the bottom of my desk so that I can position it along with the mouse in whatever way I want&lt;/li&gt;&#xA;&lt;li&gt;A flexible work schedule&lt;/li&gt;&#xA;&lt;li&gt;Two monitors&lt;/li&gt;&#xA;&lt;li&gt;Free reign to try out any library or technology that will help solve our problems&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-22T13:59:51.923" CommentCount="3" />
  <row Id="13851" PostTypeId="2" ParentId="13623" CreationDate="2010-10-22T14:01:42.567" Score="3" ViewCount="" Body="&lt;p&gt;I work on a slow Windows95 machine, and it allows me efficiently to write MindForth artificial intelligence in Forth and in JavaScript.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-22T14:01:42.567" CommunityOwnedDate="2010-10-22T17:12:01.930" />
  <row Id="13852" PostTypeId="2" ParentId="13786" CreationDate="2010-10-22T14:02:47.563" Score="1" ViewCount="" Body="&lt;p&gt;Scalability is not really a quantifiable property for real applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In practical terms, scalability is about being able to support workloads that are increasing in various dimensions.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To start with the application will support the increasing workloads with existing hardware resources.  But there are various points where you hit limits; e.g. the amount of memory, the number of cores, contention on data structures, database throughput, and so on.  Each time you hit one of these limits, you have to take a different approach to supporting increasing workloads.  Scalability is about how long you can keep increasing the workload before you hit an insurmountable limit, or you need to undertake a major redesign.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-10-22T14:02:47.563" />
  <row Id="13853" PostTypeId="2" ParentId="13837" CreationDate="2010-10-22T14:04:56.610" Score="1" ViewCount="" Body="&lt;p&gt;Assuming you understand that consistency is the most important part: I'd say keep them on their own lines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I care a whole lot less about how much space the code takes up, and a whole lot more about scan-ability. (This is also why I like the braces-on-their-own-line style.)  I like being able to scan up and down the left column of text and find out where the individual blocks are.  Having them on their own line, I can see by only looking at the first column of text, where an if statement starts, where it ends, where the else starts, where it ends, without having to look at the rest of the line (indentation is key here.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With keeping the brace at the end, and keeping your &quot;else if&quot;'s inline, I have to read entire lines to see the control flow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ie: I think this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;if (var == 5)&#xA;{&#xA;    callMethodA();&#xA;}&#xA;else if (var &amp;lt; 5)&#xA;{&#xA;    callMethodB();&#xA;}&#xA;else&#xA;{&#xA;    callMethodC();&#xA;}&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;is easier to read than this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;if (var == 5) {&#xA;    callMethodA();&#xA;} else if (var &amp;lt; 5) {&#xA;    callMethodB();&#xA;} else {&#xA;    callMethodC();&#xA;}&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;On the latter all I see are a bunch of }'s in a row, and my first hint is that I  have my braces unbalanced.  Which end-brace corresponds with which beginning brace?  I have to look at some pretty compressed text to find what is what.  Or worse, I have to move my cursor over and have my editor highlight the open/close brace pairs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to save more space, here's what I think is a good compromise:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;if (var == 5) &#xA;{   callMethodA();&#xA;    doMoreStuff();&#xA;}&#xA;else if (var &amp;lt; 5)&#xA;{   callMethodB();&#xA;    doMoreStuff();&#xA;}&#xA;else&#xA;{   callMethodC();&#xA;    doMoreStuff();&#xA;}&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;which kinda gives the best of both worlds.&lt;/p&gt;&#xA;" OwnerUserId="6050" LastActivityDate="2010-10-22T14:04:56.610" />
  <row Id="13854" PostTypeId="2" ParentId="13757" CreationDate="2010-10-22T14:05:29.043" Score="13" ViewCount="" Body="&lt;p&gt;To summarize my own (North American) experience:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;char&lt;/strong&gt; may be pronounced both ways: like &quot;char&quot; in &quot;charcoal&quot;, or close to &quot;care&quot;; never like &quot;car&quot;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;!&lt;/strong&gt; is an &quot;exclamation point&quot;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;#&lt;/strong&gt; is a &quot;pound sign&quot; (probably an Americanism)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;*&lt;/strong&gt; is an &quot;asterisk&quot; (never in 15 years heard anyone call it &quot;splat&quot;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;RegEx&lt;/strong&gt; with a hard &quot;g&quot; because it's regular, not rejular.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;SQL&lt;/strong&gt;: heard both &quot;ess-queue-ell&quot; and &quot;sequel&quot;; but (Microsoft's) SQL Server is much more often pronounced &quot;sequel server&quot;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;bin&lt;/strong&gt; is like a recycle bin; not &quot;bine&quot;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;LaTeX&lt;/strong&gt;'s ancestor is TeX.  The &quot;tech&quot; pronunciation goes all the way back to TeX's creator Donald Knuth.  Actually the &lt;strong&gt;X&lt;/strong&gt; was supposed to sound more like the German &quot;ch&quot; in Bach.  &quot;La-tech&quot; is the only way LaTeX is pronounced in the US research community; if you pronounce it like a sort of rubber, you give away that you don't belong to it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-22T14:05:29.043" CommunityOwnedDate="2011-01-09T02:54:49.947" CommentCount="8" />
  <row Id="13856" PostTypeId="2" ParentId="13757" CreationDate="2010-10-22T14:22:00.063" Score="2" ViewCount="" Body="&lt;p&gt;I use the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;char:&lt;/strong&gt; &quot;char&quot;, as in &quot;charbroiled&quot;. It rhymes nicely with &quot;star&quot;, so &quot;char *&quot; comes off as &quot;char star&quot;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;!:&lt;/strong&gt; Intriguing; I'm not sure I've ever pronounced this aloud. I'd probably say &quot;exclamation point&quot;, to be honest, just to be clear.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;#:&lt;/strong&gt; &quot;Hash&quot;, although sometimes in my head I also say &quot;number&quot;.&lt;/li&gt;&#xA;&lt;li&gt;*&lt;strong&gt;:&lt;/strong&gt; &quot;Star&quot;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Regex:&lt;/strong&gt; &quot;REG-ex&quot;. It's interesting, since &quot;regular&quot; has a hard g, but I suppose the soft g flows better.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;SQL:&lt;/strong&gt; Maybe I differ from most people, but I say &quot;sequel&quot;, except in the case of PostgreSQL. I've heard you can tell on what RDBMS programmers cut their teeth, as those who learned on SQL Server tend to say &quot;sequel&quot; and everyone else tends to say &quot;ess cyoo ell&quot;. Not sure if that's true, but it's true in my case. :)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;|:&lt;/strong&gt; &quot;Pipe&quot;. Duh. :)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;bin:&lt;/strong&gt; &quot;bin&quot; rhymes with &quot;pin&quot;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;lib:&lt;/strong&gt; &quot;lib&quot; as in &quot;liberate&quot;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;etc:&lt;/strong&gt; &quot;ets-see&quot;, as in &quot;slash ets-see&quot;. :)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;/:&lt;/strong&gt; &quot;Slash&quot;. It annoys me when people call it a backslash, too -- so much that I wrote a &lt;a href=&quot;http://www.monkey-robot.com/blog/2005/02/24/slash-vs-backslash/&quot; rel=&quot;nofollow&quot;&gt;blog post&lt;/a&gt; about it many moons ago.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;LaTeX:&lt;/strong&gt; I say &quot;LUH-tech&quot;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'll throw another one in the mix:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Mac OS X:&lt;/strong&gt; It's &quot;Mac OS &lt;em&gt;Ten&lt;/em&gt;&quot;, not &quot;Mac OS &lt;em&gt;Ex&lt;/em&gt;&quot; :)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-22T14:22:00.063" CommunityOwnedDate="2011-01-09T02:54:49.947" CommentCount="2" />
  <row Id="13858" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T14:24:15.520" Score="6" ViewCount="" Body="&lt;h2&gt;Cron + Web App&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;This is a battle-tested design that &lt;strong&gt;scales horizontally&lt;/strong&gt; along with your web farm and ensures that you're using the &lt;strong&gt;web technology stack&lt;/strong&gt; you already know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's how it works:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Create a controller/action in your web application to handle scheduled background tasks. By convention, I usually call mine &lt;code&gt;http://mydomain.com/system/cron&lt;/code&gt;. &lt;/li&gt;&#xA;&lt;li&gt;For security, this action should be locked down to only authenticated IP addresses on the local network.&lt;/li&gt;&#xA;&lt;li&gt;On a seperate machine, install &lt;a href=&quot;http://gnuwin32.sourceforge.net/packages/wget.htm&quot; rel=&quot;nofollow&quot;&gt;Wget&lt;/a&gt; and setup a &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa383614%28VS.85%29.aspx&quot; rel=&quot;nofollow&quot;&gt;Scheduled Task&lt;/a&gt; to have wget fetch the resource from step 1. You can make the task run as frequently as you want (I usually opt for 30 seconds). Don't forget to pass the appropriate cookie argument to Wget so that it authenticates to your web app.&lt;/li&gt;&#xA;&lt;li&gt;For redundancy, you can also install a second scheduled wget on a second machine. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Hooray! Now you have a route that will be called every 30 seconds. And if the request takes 5 minutes to process, nobody will care, because it's not part of a user's page request.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;code&gt;cron&lt;/code&gt; action ends up looking very simple: he has a list of methods to execute on a certain frequency. When a request comes in, he sees if there is a method that needs to be executed and calls the appropriate method. &lt;strong&gt;This means that you can control the schedule in your database&lt;/strong&gt;, where you probably already have lots of other important configuration data for your site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More importantly (for you), this means that your jobs don't have to be called on a fixed schedule. You can write any logic you want for determining when to execute a method. &lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Pros and Cons&lt;/h3&gt;&#xA;&#xA;Pros&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You're already very good at writing ASP.NET MVC code, so this lets you write your background tasks in the &lt;strong&gt;same platform&lt;/strong&gt; that you write the rest of your solution in. &lt;/li&gt;&#xA;&lt;li&gt;The tasks run in the same context as your web app, so you can &lt;strong&gt;share the cache&lt;/strong&gt; and make use of &lt;strong&gt;helper methods&lt;/strong&gt; that already exist.&lt;/li&gt;&#xA;&lt;li&gt;If you have wget fetch a &lt;strong&gt;load-balanced&lt;/strong&gt; URI, then your background tasks are now load-balanced as well.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Simultaneous deployment&lt;/strong&gt; - you don't have to worry about syncing your web app with your background task logic, because they're all in the same deployment. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;Cons&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Over the years, a few people have told me this design is &quot;highly coupled&quot;, but when pressed they haven't been able to articulate why that is a bad thing.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Note: If there are any questions or concerns, &lt;em&gt;please add a comment&lt;/em&gt;. I'm happy to elaborate.&lt;/p&gt;&#xA;" OwnerUserId="467" LastEditorUserId="467" LastEditorDisplayName="" LastEditDate="2010-10-22T14:31:00.540" LastActivityDate="2010-10-22T14:31:00.540" />
  <row Id="13859" PostTypeId="2" ParentId="13623" CreationDate="2010-10-22T14:25:37.543" Score="4" ViewCount="" Body="&lt;p&gt;I'm going to buck the trend here too. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anecdote: I worked for a Dutch software development firm that upgraded 286 computers to 486-es (yes, I'm that old).  Within weeks the performance of all of our in-house libraries dropped by 50% and bugs increased...  A little research showed that people no longer thought through the code itself during the debugging process, but resorted to 'quick' successive code -&gt; compile -&gt; test -&gt; fix (code) etc. cycles.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Related: when I started a subsidiary for that same company in the USA, I ended up hiring Russian programmers because they were used to PCs with fewer features/less power and were much more efficient coders.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realize these were different times, and resources were much more scarce than they are today, but it never ceases to amaze me how, with all the progress that's been made on the hardware front, the net result seems to be that every step forward is negated  by sloppier programming requiring higher minimum specs... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hence... I feel programmers should be forced to test their applications on machines that do not exceed the 'Average Joe' computing power and hardware specs.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-22T14:25:37.543" CommunityOwnedDate="2010-10-22T17:12:01.930" CommentCount="1" />
  <row Id="13860" PostTypeId="2" ParentId="2192" CreationDate="2010-10-22T14:26:02.133" Score="0" ViewCount="" Body="&lt;p&gt;Apart of the things mentioned by others, the &lt;em&gt;long way between deciding to compile&amp;amp;run your code and getting a positive/negative result&lt;/em&gt;. Ideally, this &lt;a href=&quot;http://en.wikipedia.org/wiki/Round-trip_delay_time&quot; rel=&quot;nofollow&quot;&gt;RTT&lt;/a&gt; would be just a second, but I've seen an example of hours. BTW, unit testing tries to deal with this problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another related this is a &lt;em&gt;general latency&lt;/em&gt; of your working environment. Imagine you'd need to work over remote desktop connection to the computer on the other side of the world, over a creepy connection. I've been there. I've hated this.&lt;/p&gt;&#xA;" OwnerUserId="5928" LastActivityDate="2010-10-22T14:26:02.133" CommunityOwnedDate="2011-01-05T06:12:52.770" />
  <row Id="13861" PostTypeId="2" ParentId="13699" CreationDate="2010-10-22T14:29:10.297" Score="3" ViewCount="" Body="&lt;p&gt;What would attract me would be a commitment to give me what I need to be productive.  Programmers, in general, like programming, and get annoyed when things get in their way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This includes providing the resources needed, and a book/whatever budget helps, and most importantly avoiding hindering work.  I've seen that happen in several places, because of somebody else's convenience or corporate policy or whatever.  Whenever I'm prevented from accomplishing something, I start thinking &quot;Why should I care if you don't?&quot; and then I get unhappy.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-22T14:29:10.297" CommentCount="1" />
  <row Id="13864" PostTypeId="2" ParentId="13778" CreationDate="2010-10-22T14:39:45.297" Score="0" ViewCount="" Body="&lt;p&gt;My case: As soon as possible.&#xA;And then I open it from time to time when I want to refresh something specific or in a random page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;McConnel changed my life :-)&lt;/p&gt;&#xA;" OwnerUserId="6059" LastActivityDate="2010-10-22T14:39:45.297" />
  <row Id="13866" PostTypeId="2" ParentId="2192" CreationDate="2010-10-22T14:43:02.980" Score="3" ViewCount="" Body="&lt;p&gt;Poor code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having to rewrite the part of someone else who could have done the job right in the first place is the biggest time sink I can imagine.&lt;/p&gt;&#xA;" OwnerUserId="3063" LastActivityDate="2010-10-22T14:43:02.980" CommunityOwnedDate="2011-01-05T06:12:52.770" CommentCount="1" />
  <row Id="13867" PostTypeId="2" ParentId="13782" CreationDate="2010-10-22T14:43:54.147" Score="5" ViewCount="" Body="&lt;p&gt;Code review is a good way of spreading knowlege and good practice through a team. In my experience it is a good idea to make sure all code gets reviewed, and try to vary who reviews what code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my current team everyones' code is reviewed equally, and both programmer and reviewer have to be satisifed with the code before it can be released. This applies just as much to senior developers being reviewed by more junior developers, a junior developer reviewing another, or other senior developers reviewing each other. If the reviewer is inexperienced or does not feel comfortable reviewing any particular piece of code then they will team up with another developer (and maybe also the original developer) to do the review as a group.&lt;/p&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-10-22T14:43:54.147" CommentCount="1" />
  <row Id="13868" PostTypeId="2" ParentId="13614" CreationDate="2010-10-22T14:44:18.393" Score="0" ViewCount="" Body="&lt;p&gt;I think apart from the option of decompiling the code, this would be a pretty big issue assuming the company intended to continue to market the software product.  If it was an in-house application the same would be true to a lesser degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can not restore the source code then maintence (bug fixing) and enhancements can not be performed so the application is now static.  If Microsoft or Apple or Apache or whoever your operating platform is changes or upgrades their code then your old compiled code may not work and you can not fix it.   If you are selling this application to external clients you can not control when they will upgrade their Windows, MAC OSX, iPhone, Web Browser so you have a pretty big risk here to your company's reputation and possibly legal risk also if you have a maintenance contract with the clients.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly the source code represents an asset for the company.  So for a software company it is an asset on the books.  It is something you can sell as a product or sell the source code and all rights to another software company.  I would not continue to sell a software product to clients I knew I could not maintain as I have lost the source code.  Further I doubt another software company would buy the application and all rights if they could not further develop the product.  So the asset value of this application must be reduced.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For an internal in-house application you may have more control over the operating platform for your application but I would still look to replace this application if the source code can not be decompiled into a useable code base for maintenance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Kevin&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS I hope this is only a theoretical question...:)&lt;/p&gt;&#xA;" OwnerUserId="2652" LastActivityDate="2010-10-22T14:44:18.393" />
  <row Id="13869" PostTypeId="2" ParentId="12556" CreationDate="2010-10-22T14:44:38.377" Score="2" ViewCount="" Body="&lt;p&gt;Looking at the &lt;a href=&quot;http://www.cse.usf.edu/files/86021253722868csFlowchart2009.pdf&quot; rel=&quot;nofollow&quot;&gt;course flowchart for your major&lt;/a&gt;, you really are misunderstanding what to expect in different classes of a Computer Science major.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The classes that you're talking about are introductory classes that introduced students to various basic concepts in coding. It looks like &quot;Programming Concepts&quot;  an intro to the profession with 1-week overviews of all of the basic areas of computer science, with no actual coding. From there, it's &lt;strong&gt;NORMAL&lt;/strong&gt; to have an introductory course in C, and another introductory course in C++ is &lt;strong&gt;NORMAL&lt;/strong&gt; for a Computer Science major. &lt;strong&gt;You&lt;/strong&gt; may be coming into the program with some coding experience, but most people are not. The program has to &lt;strong&gt;teach&lt;/strong&gt; concepts like recursion, and how to write classes, and operator overloading, and templates and all that stuff (not to mention teaching about variables, for-loops, if-statements, etc...), so there are two classes basically designed to teach you how to code in some programming language. And they usually have the kinds of misleading names that your university's classes do. Classes that teach the level of organization you want are usually named &quot;Software Engineering&quot; or &quot;Design Patterns&quot;. The former is typically a requirement, and the latter is typically an elective (maybe at the graduate level), but both may be electives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's an academic and industry debate about whether the Computer Science curriculum focuses on software organization as much as it should, whether the major should be reorganized, and whether Computer Science and Software Engineering are different majors, but for now, your Computer Science program is &lt;strong&gt;NORMAL&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(And hang in there -- in another semester or two, you &lt;em&gt;will&lt;/em&gt; get to more challenging classes that teach you things you haven't already taught yourself.)&lt;/p&gt;&#xA;" OwnerUserId="1961" LastEditorUserId="1961" LastEditorDisplayName="" LastEditDate="2010-10-22T20:33:25.317" LastActivityDate="2010-10-22T20:33:25.317" CommentCount="2" />
  <row Id="13870" PostTypeId="1" AcceptedAnswerId="13920" CreationDate="2010-10-22T14:47:56.630" Score="8" ViewCount="364" Body="&lt;p&gt;A bit of background: I've got a small open source project that I've started on, a basic framework which provides an object oriented means of generating HTML code (since I don't really like HTML, and I do like PHP). It has some released source, and a few downloads, but primarily, the project is for me, with the Open Source portion just being a side benefit. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The original project which caused me to be able to develop on this project has mostly gone into hibernation for the time being, which means that all the development I get to sink into it at this point is personal time only. Unfortunately, I'm currently working toward my bachelor's degree, studying for certifications, and I have a three month old baby at home. In short, by the time I get around to &quot;me time&quot;, I rarely feel like doing work, but rather usually feel like just chilling out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, if there's anyone else out there who feels like they're in a similar position, what strategies have you used to keep yourself motivated toward working on the project? I would really like to at least be able to work on this until I have 100% spec coverage, but I haven't committed source in months. Anyone out there who can help?&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2011-01-27T14:18:43.570" Title="How do you find time to work on Open Source Projects?" Tags="&lt;development-process&gt;&lt;open-source&gt;" AnswerCount="8" />
  <row Id="13871" PostTypeId="2" ParentId="13789" CreationDate="2010-10-22T14:49:57.283" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Clojure&lt;/strong&gt; — I just need to find a project to utilise it.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Cappuccino&lt;/strong&gt;, SproutCore, or some other web UI framework.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Objective-C&lt;/strong&gt; — for Mac/iOS development&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Bonus (if only there were more hours in the day!)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Python&lt;/strong&gt; — as a massive fan of Ruby, I doubt I'd end up using it for web development. But Ruby lacks much of an ecosystem outside of web development, where I'm led to believe Python shines. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;C&lt;/strong&gt; — I know the basics, but I'd like to learn more, if only to broaden my knowledge in computer science.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Node.js&lt;/strong&gt; — it seems like a promising backend for real-time apps.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;MongoDB&lt;/strong&gt; — I want to explore NoSQL databases, especially document ones, to see what the hoopla is about.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2693" LastActivityDate="2010-10-22T14:49:57.283" CommentCount="1" />
  <row Id="13873" PostTypeId="2" ParentId="13782" CreationDate="2010-10-22T14:50:46.490" Score="10" ViewCount="" Body="&lt;p&gt;Agile guy would say: &quot;You don't need a code review, just do pair programming and write good tests&quot; :)&lt;/p&gt;&#xA;" OwnerUserId="5928" LastActivityDate="2010-10-22T14:50:46.490" CommentCount="6" />
  <row Id="13874" PostTypeId="2" ParentId="13699" CreationDate="2010-10-22T14:53:29.380" Score="1" ViewCount="" Body="&lt;p&gt;Happy hour with a couple hundred dollars on the tab every couple weeks has done a lot to boost morale where I work. It allows people to socialize and get to know each other better, all while unwinding from the week and having a good time. It is hard not to like somebody who buys you a good beer, even if its your boss.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-22T14:53:29.380" />
  <row Id="13875" PostTypeId="2" ParentId="2192" CreationDate="2010-10-22T14:53:51.080" Score="9" ViewCount="" Body="&lt;h2&gt;Conversations of others&lt;/h2&gt;&#xA;&#xA;&lt;h3&gt;and noise in general&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Many answers talk about context-switching and getting out of the zone, and noise, especially conversation, is one of those things that leads to those for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my cubeworld, I'm surrounded by noise and conversation on all sides.  One row over, the mainframe team holds constant planning meetings in the cube row.  Sometimes, they'll meet with consultants in an office along the wall, and that tends to lead to loud hootin' and hollerin' and laughin' and I have to go over and ask them to close their doors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other side, the web team conference table is on the other side of my west cube wall, so I am part of every meeting, like it or not.  There's also a printer on the other side of the south cube wall, and that's always good for chit-chat from people hanging out waiting for their printouts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The immediate and obvious answer of &quot;&lt;a href=&quot;http://xoa.petdance.com/Can%27t_you_just...%3F&quot; rel=&quot;nofollow&quot;&gt;Can't you just&lt;/a&gt; get noise-canceling headphones&quot; doesn't help when what you want is silence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes for code reviews, I take my stack of papers to the lunchroom (at non-lunch times, of course), but there's a TV in there that's usually blaring.  I'll turn it off if no one is watching.  Otherwise, I'll go find an empty cube in an other department in another part of the building.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want your programmers to do the work they need to do, which is predominantly thinking and pondering and considering, they need an environment where they can do it.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-22T14:53:51.080" CommunityOwnedDate="2011-01-05T06:12:52.770" CommentCount="1" />
  <row Id="13876" PostTypeId="2" ParentId="13676" CreationDate="2010-10-22T14:57:33.140" Score="0" ViewCount="" Body="&lt;p&gt;I think chat software can be very useful for passing code snippets and URLs around between programmers (and much more efficient than voice dictation). So some kind of messenger should definitely be allowed.&lt;/p&gt;&#xA;" OwnerUserId="1961" LastActivityDate="2010-10-22T14:57:33.140" CommentCount="1" />
  <row Id="13877" PostTypeId="2" ParentId="2192" CreationDate="2010-10-22T15:02:51.697" Score="2" ViewCount="" Body="&lt;p&gt;Even though you asked not to list distractions, they can be a big factor. Look at their work environment, check to see if they're being interrupted frequently or asked to do other things that aren't related to the project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes, a developer might get stuck because they're doing something they've never done before, and they don't know where to look for help. If it's a small team or individual, it can be even more difficult. We tend to be somewhat prideful and dont like to admit when we dont know how to do things. Also, we dont like asking others for help. There's no easy way to get a developer to admit this, except maybe to ask if they can meet the deadline, or what they need to meet the deadline, and then hope they'll be honest. You may need to offer to bring in other help, or find someone that can help them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lack of clearly defined requirements, which leads to them having to figure things out or make decisions.&lt;/p&gt;&#xA;" OwnerUserId="6061" LastActivityDate="2010-10-22T15:02:51.697" CommunityOwnedDate="2011-01-05T06:12:52.770" />
  <row Id="13878" PostTypeId="2" ParentId="2192" CreationDate="2010-10-22T15:02:53.983" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Excessive paperwork&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Having a dependency on someone who's never around (such as your boss - if you need to ask a question but he's always in meetings)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Inadequate tools &amp;amp; equipment.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;People shoving their oar in for no reason (any UI-visible change is subject to this) or just arguing the toss about trivial stuff.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Broken coffee machine&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Being assigned the wrong tasks&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-22T15:02:53.983" CommunityOwnedDate="2011-01-05T06:12:52.770" />
  <row Id="13879" PostTypeId="2" ParentId="10172" CreationDate="2010-10-22T15:08:08.707" Score="0" ViewCount="" Body="&lt;p&gt;Technical questions in an interview are necessary, but try not to ask about things that the person could answer if they looked up in the documentation in under a minute. Even things that you think would be necessary (How do you take all commas out of a string) to be half decent. That kind of stuff they can figure out as they go if they are smart problem solvers. Look to see how they answer subjective technical questions rather than objective. Quite literally, you could ask some questions off of this site. Try to avoid Stackoverflow questions. It does not matter. If they can understand the higher level in a nuanced way and sound smart but humble while doing it, They will be able to tackle that language/technology stuff better in a couple months than their peers who have a lot more experience with it.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-22T15:08:08.707" />
  <row Id="13880" PostTypeId="2" ParentId="13699" CreationDate="2010-10-22T15:13:41.187" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Respect&lt;/strong&gt; of their skills, opinions and experience. The most frustrating thing I know is having some idiot who never learned anything proper in his life take decisions without consulting anyone with technical knowledge.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-10-22T15:13:41.187" CommentCount="2" />
  <row Id="13881" PostTypeId="2" ParentId="2192" CreationDate="2010-10-22T15:14:12.497" Score="0" ViewCount="" Body="&lt;p&gt;The air conditioning failing to work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the temperature in the office gets up to 40 degs in the summer of -5 in the winter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The -5 not good for typing, as i can't wear gloves and type.&#xA;The 40, just slows my thinking down.&lt;/p&gt;&#xA;" OwnerUserId="2395" LastActivityDate="2010-10-22T15:14:12.497" CommunityOwnedDate="2011-01-05T06:12:52.770" />
  <row Id="13882" PostTypeId="2" ParentId="13782" CreationDate="2010-10-22T15:16:50.627" Score="3" ViewCount="" Body="&lt;p&gt;I've been in the business for more than 20 years, working for software companies and for different businesses and none of these places had a code review process. However, I can understand and appreciate the benefits of having one. Essentially, as I understand them, they should be used to ensure adherence to standards, which should be followed in order for others to be able to more easily maintain the code in the future. Code readability might also be checked in a review process as this too will ensure that maintenance can effectively work with the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently, I work in a small shop where I am the single developer. Occasionally we have brought in contractors to help with the backlog. At least one or two of those contractors have written code that didn't necessarily meet mine or the companies' standards, but it did work well and was at least somewhat understandable. When I pointed this issue out to management, they didn't care, they just wanted to know if it did what we paid them to do.&#xA;So, I guess it just depends on the company, and whether or not clean, easy to maintain code is the desired product, or if they just want something that works well for the money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously as a developer, and one who has to maintain code, I would like to work with clean code that follows a standard of some sort, but I dont always have that luxury, so I make the best of it and deal with what I have, even if it means sometimes having to re-write some code in my own standard.&lt;/p&gt;&#xA;" OwnerUserId="6061" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-10-22T21:44:25.960" LastActivityDate="2010-10-22T21:44:25.960" />
  <row Id="13883" PostTypeId="2" ParentId="13778" CreationDate="2010-10-22T15:20:29.737" Score="1" ViewCount="" Body="&lt;p&gt;When one is considering a career in programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When one is a programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That means it's OK to read it more than once.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-22T15:20:29.737" />
  <row Id="13884" PostTypeId="2" ParentId="13676" CreationDate="2010-10-22T15:20:35.377" Score="0" ViewCount="" Body="&lt;p&gt;Yes, as long as I still do my work.  Developers need to be treated with a degree of trust, unless you want to spend all your time watching them, which means you don't do your work and you have unhappy devs.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a developer just isn't turning in the work then discuss it with him, and if necessary request his internet history from IT.  If he's failing to turn in work in a timely manner and you see that he's spending all his time on YouTube, then it's time to have a quiet little word.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You also have to understand that sometimes a developer will just be blocked from doing work, through no fault of his own.  I was a build engineer at a small company, where the build machine was (you guessed it!) my desktop.  A build would last up to half an hour, and would max out the machine for most of that (it wasn't a very powerful machine - actually an old dev box from a previous employee who had left).  I would then go and test the install, which would take about 20 minutes.  I normally took a book to work.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-22T15:20:35.377" />
  <row Id="13885" PostTypeId="2" ParentId="2777" CreationDate="2010-10-22T15:23:40.397" Score="15" ViewCount="" Body="&lt;p&gt;If you write code, you owe it to yourself to read this book.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Unfortunately, I am so busy that I don't have time to read it&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Suppose you were to come upon someone in the woods working feverishly to saw down a tree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;What are you doing?&quot; you ask.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Can't you see?&quot; comes the impatient reply. &quot;I'm sawing down this tree.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;You look exhausted!&quot; you exclaim. &quot;How long have you been at it?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Over five hours,&quot; he returns, &quot;and I'm beat! This is hard work.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Well why don't you take a break for a few minutes and sharpen that saw?&quot; you inquire.  &quot;I'm sure it would go a lot faster.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I don't have time to sharpen the saw,&quot; the man says emphatically. &quot;I'm too busy sawing!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(From &lt;em&gt;Seven Habits of Highly Effective People&lt;/em&gt;)&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-22T15:23:40.397" CommentCount="1" />
  <row Id="13886" PostTypeId="2" ParentId="13470" CreationDate="2010-10-22T15:26:59.207" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;* Should I write a resignation letter&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes. Make it short and to the point, giving thanks for the opportunity to have worked with your employer (even if employment there is horrible.)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;* How much notice should I give&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;A month is typically the expected as a professional courtesy. Now if you have this hot opportunity that you must take now, then you do what you have to do. But in general, you should tell any prospective employer that you need to give your current employer about a month to clean things up.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;* Should I give a reason for leaving&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In this case, no. Talk to your boss or HR about the reasons if there are questionable practices that compel you to quit (.ie. harassment and such.) But terrible management is not one of those (despite what many people will tell you.) There are always management and operational problems of one type or another. Putting it in writing is just pouring salt on the wound, and would do no good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either they know things are bad and either don't care or are not currently capable of fixing, or they are too dumb to know. So putting horrible management as the reason of leaving in writing doesn't help that much. Just write that you are leaving for better opportunities or because you are pursuing a different direction in your career (without implying that the company is too crappy to pursue that career direction there.)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;* Should I go to my boss who is the main reason I'm leaving or go to&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;  &#xA;  &lt;p&gt;his boss?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You have to ask yourself: what are you trying to do here? Are you trying to leave to pursue something better, or are you trying point the finger (even if the finger is pointing in the right direction)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What does it get you? &#xA;Does it make you a better professional? &#xA;Will it help the company you are leaving? &#xA;Is the company capable of using your observation in a positive matter?&#xA;Do you think it will actually improve things, for you and your soon-to-be former employer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More importantly, will you ever be in a situation where you &lt;em&gt;might&lt;/em&gt; have to work with them again?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't do the things you want to, only the things you need to. Two different things buddy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck with your future endeavors.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-22T15:26:59.207" CommentCount="1" />
  <row Id="13888" PostTypeId="2" ParentId="368" CreationDate="2010-10-22T15:34:34.963" Score="14" ViewCount="" Body="&lt;p&gt;This question operates on false premises: where it counts, &lt;strong&gt;Java is still slow.&lt;/strong&gt; Where it counts are computation-heavy algorithms on large data sets. Granted, these &lt;em&gt;can&lt;/em&gt; be optimized, sometimes to be on par with C/C++ code, but only at the cost of modularity and genericity. Efficient C++ code can be designed to be generic and usable as a general-purpose library. Java code can’t. Just look at the heavily optimized &lt;code&gt;Array.sort&lt;/code&gt; method, which uses different implementations for all fundamental types, and whose object variant is still &lt;em&gt;much&lt;/em&gt; slower than C++’ generic &lt;code&gt;sort&lt;/code&gt; because these objects have to dispatch equality comparisons dynamically.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Granted, just in time optimizations as performed by the HotSpot engine can actually predict the target of these virtual calls and attempt inlining. But this is &lt;em&gt;still&lt;/em&gt; slower than the directly inlined call that is dispatched inside C++’ &lt;code&gt;sort&lt;/code&gt; method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A former colleague of mine has done comparative benchmarks of a problem on huge data sets (&lt;em&gt;q&lt;/em&gt;-gram counting using dynamic shapes) with a templated C++ implementation and an object-oriented Java implementation. The Java code was around 400 times slower than the C++ code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course this is comparing apples with oranges. But the point is that the Java implementation was the best possible implementation (in terms of performance, given the degree of modularity required for a library), and so was the C++ implementation.&lt;/p&gt;&#xA;" OwnerUserId="2366" LastEditorUserId="2366" LastEditorDisplayName="" LastEditDate="2010-10-24T13:36:35.170" LastActivityDate="2010-10-24T13:36:35.170" CommentCount="5" />
  <row Id="13889" PostTypeId="2" ParentId="13699" CreationDate="2010-10-22T15:37:52.613" Score="0" ViewCount="" Body="&lt;p&gt;Let people know that you'll get people whatever they need to do their job well.  Perhaps you could provide each person a budget to get whatever they find important to make them happy at work, whether it's a nice monitor, more ram, a fancy chair, good books, training, or a Foosball table.  This also says &quot;I trust you to make the right decision&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you should fund at least one conference/training per year.  Provide a social/team budget that can be used for happy hour, lunches or group outings.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, be clear on how deadlines are set and what sort of hours you expect.  I consider realistic deadlines truly enticing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always see &quot;free drinks/snacks&quot; as a red flag.  I expect to be paid a salary that makes the cost of snacks insignificant. It can even be a bit of a negative for me because it's hard to avoid the temptation of good snacks while I sit on my ass all day.  &lt;/p&gt;&#xA;" LastActivityDate="2010-10-22T15:37:52.613" CommentCount="1" />
  <row Id="13890" PostTypeId="2" ParentId="13782" CreationDate="2010-10-22T15:38:00.303" Score="1" ViewCount="" Body="&lt;p&gt;I think code reviewing ALL CODE is overkill.  The amount of time it takes to review all code could be better spent elsewhere.  Alterntivley I think critical code and or particularly complex pieces need code review but certainly not every line of code.&lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-10-22T15:38:00.303" CommentCount="15" />
  <row Id="13891" PostTypeId="2" ParentId="13470" CreationDate="2010-10-22T15:41:38.517" Score="0" ViewCount="" Body="&lt;p&gt;Since you don't have a formal contract you could in theory flip them the bird and walk out, but then you would probably lose any pay they owe you, and you can forget about good references.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The normal (better) way to leave a company is to write a termination (or resignation) letter and give it to your boss.  This is the formal notice, and it's normally 1 month before you're due to quit.  Make it formal but to the point.  However, if you really don't like your boss you can go to the boss's boss, but ultimately it makes little difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't have to give a reason to leave, but you can if you like.  Often, people will already know the reason if it's due to a conflict in the workplace.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-22T15:41:38.517" CommentCount="3" />
  <row Id="13892" PostTypeId="1" AcceptedAnswerId="13895" CreationDate="2010-10-22T15:43:04.303" Score="14" ViewCount="327" Body="&lt;p&gt;At my job, I'm currently a programmer, but in the next few weeks I'll be taking control my own project.  I was wondering if anyone else here has been in the same situation, and if so, what advice you can offer to help me be able to better run my project.  Experience in dealing with contractors would be greatly appreciated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A little more info:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Project will have 3 people including myself, with extra people coming in when needing testing.&lt;/li&gt;&#xA;&lt;li&gt;The project has been programmed mainly by 2 people&lt;/li&gt;&#xA;&lt;li&gt;I would like to contribute to the programming as I like doing it and think I can add to the program, but am afraid of how the contractors will react.  I don't want to create bad feelings which may harm the project.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;EDIT:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Forgot to mention that I'll have to be picking up communications with customers to make sure their needs are met.  Any advice on talking to customers cold would be greatly appreciated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT 2:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not a new project, I'm picking it up around version 6.  Sorry that I didn't make it clear before.&lt;/p&gt;&#xA;" OwnerUserId="6071" LastEditorUserId="6071" LastEditorDisplayName="" LastEditDate="2010-10-22T15:57:37.900" LastActivityDate="2010-10-22T15:59:12.070" Title="How to move from Programmer to Project Lead" Tags="&lt;jobs&gt;&lt;project-management&gt;&lt;career-advice&gt;" AnswerCount="2" FavoriteCount="5" />
  <row Id="13893" PostTypeId="2" ParentId="13623" CreationDate="2010-10-22T15:46:17.070" Score="4" ViewCount="" Body="&lt;p&gt;The problem isn't the developer building inefficient code on a fast machine, the problem is that you haven't defined performance metrics that must be measured against.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There should be defined, as part of the product requirements, a specific target that can be measured on all computers based off of the required customer experience. There are many websites (Check SpecInt) that allow you to relate your computer to other types of computers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is good for many reasons. It allows you to define minimum supported hardware more easily so you can limit the number of customer complains - we all know most software runs on most computers, it's just a matter of performance - if we set our specs so that people in the minimum requirements range has reasonably acceptable performance, you limit customer complaints - and then when a customer calls in, you can use the benchmarks to determine if there really is an issue, or if the customer is just not happy with how the product is supposed to work.&lt;/p&gt;&#xA;" OwnerUserId="6073" LastActivityDate="2010-10-22T15:46:17.070" CommunityOwnedDate="2010-10-22T17:12:01.930" />
  <row Id="13894" PostTypeId="2" ParentId="13892" CreationDate="2010-10-22T15:49:55.330" Score="2" ViewCount="" Body="&lt;p&gt;I can share with you what I usually do when I'm in your position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I take a &quot;project startup&quot; meeting where we discuss the technical architecture of the software being developed. We decide roles and assign tasks and priorities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I, being the project leader, usually take care of creating the abstraction layer (interfaces, facade, contexts, etc) so other developers have a common base upon which they can write their own code, implement methods, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually (but it could be someone else) write unit tests in a TDD approach while the programmers implement the methods. They do frequent commits to our SVN repo so I can unit-test their code constantly and see if there are problems and such. I also take care of filling out bug reports on our bug tracking system at the end of the day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another task I attend to is review the code and look for antipatterns, bad practices and such. I talk to the developers in a as friendly as possible manner, point their errors and suggest ways to improve. Code quality must stay high throughout all the development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the development becomes mature, the software will be human-tested and more bug reports will be filled. Unit tests will continue to play their role of course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is just my experience anyway, it could be right or wrong or somewhere between.&lt;/p&gt;&#xA;" OwnerUserId="3426" LastActivityDate="2010-10-22T15:49:55.330" CommentCount="4" />
  <row Id="13895" PostTypeId="2" ParentId="13892" CreationDate="2010-10-22T15:50:32.817" Score="5" ViewCount="" Body="&lt;p&gt;It is very difficult to lead and write code at the same time. Generally speaking, one of two things could happen:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) You micro-manage the contractors and they resent it (as you mention)&lt;br&gt;&#xA;2) You get lost in programming and lose the big picture&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some tips that may keep you in good standing with both groups:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Articulate the standards you're looking for in the beginning.  Work with managment to define the spec., and don't stray from it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Meet the commitments you make. This applies to commitments you make to management and to your developers.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't over-commit yourself. Keep an eye on your ambition, and ego and make sure that you don't find yourself in a place of disappointing everyone.  The honest hard truth in the beginning is often better than the letdown of false hopes.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some general management tips (not sure if this applies to you)&#xA; - Review the contracts that each contractor has.  What are the terms each one has?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Management will likely expect you to audit and verify the hours/time put into the project.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Meet with the team regularly, and keep an open dialog to keep them on track.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Create a process to handle code reviews, QA and testing.  Each person has a responsibility to the process.  The Project Lead must make sure there are no &quot;code cowboys&quot; in the group and reign them in if there are.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-10-22T15:59:12.070" LastActivityDate="2010-10-22T15:59:12.070" CommentCount="2" />
  <row Id="13896" PostTypeId="2" ParentId="368" CreationDate="2010-10-22T15:58:42.380" Score="0" ViewCount="" Body="&lt;p&gt;Simple, canonical Java code tends to be on par with or faster than simple, canonical C/C++/D code.  Simple, canonical code tends to perform a lot of memory allocations unnecessarily, not be particularly tuned to any CPU architecture, not have tons of low level optimizations done to it, etc.  Java's HotSpot GC is nothing short of amazing, and the VM optimizations tend to be better than what a static compiler could do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if you &lt;em&gt;really&lt;/em&gt; need performance and are willing to hand-tune stuff to get it, C/C++/D provides many more opportunities for this.  You can't use inline assembler in Java.  You can't use dirty type punning tricks to treat floating point numbers as arrays of bits.  You can't use custom memory management schemes that may be faster than the GC for your specific use case.  You can't allocate nearly as much on the stack in Java as in C/C++/D.  In Java the only way to get anything roughly equivalent to higher order functions is with interfaces and runtime binding.  In D and (I think, correct me if I'm wrong) C++, you can pass functions to templates, allowing for binding to happen at compile time without loss of flexibility.  &lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-22T15:58:42.380" CommentCount="1" />
  <row Id="13897" PostTypeId="2" ParentId="13775" CreationDate="2010-10-22T15:59:34.377" Score="0" ViewCount="" Body="&lt;p&gt;The more you know the job of those with whom you will cooperate, the better you will cooperate. That's a fact.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems important to me to have some Photoshop skills if you are involved in any kind of web project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, thinking like a programmer can really help bringing ideas to those who work in CSS and Photoshop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am a developer &lt;em&gt;and&lt;/em&gt; a designer. I found that my Photoshop files were always better architectured than those of pure graphic designers. There are ways to organize PSD files that will reduce the time required to maintain them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not to mention CSS files.. Although CSS files are declarative, writing CSS is, to some degree, programming.&lt;/p&gt;&#xA;" OwnerUserId="5708" LastActivityDate="2010-10-22T15:59:34.377" />
  <row Id="13898" PostTypeId="2" ParentId="13623" CreationDate="2010-10-22T15:59:35.283" Score="0" ViewCount="" Body="&lt;p&gt;The run-time speed on developer machine is so irrelevant, unless you want to revenge or punish your developer for writing slow code and for ignorance of target deployment environment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As the manager, you should make sure the developers knows the objective of the project and always ensure they are on track. About the target machine issue we are discussing, it could be prevented by early and frequently testing on slow machine, not by giving them slow machine to use and be suffering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The slow run-time speed also slow down development, as most programmers are using code-and-test method. If the run-time is slow, their task will be slow too.&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-10-22T15:59:35.283" CommunityOwnedDate="2010-10-22T17:12:01.930" />
  <row Id="13899" PostTypeId="2" ParentId="13693" CreationDate="2010-10-22T16:05:19.000" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Lead time&lt;/strong&gt; is an important metric.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Measure the total time from the day a need for a new open position is established to the new employee's starting date.  The lead time for an existing employee to leave a company may be as short as two weeks (the &quot;two-week notice&quot;), so if your lead time to hire measures in months, that's a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are numerous and sometimes creative ways companies can waste time in the process, but if you know what your typical lead time is and it is indeed too long, you can find ways to shorten it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lead time has nothing to do with the quality of candidates or new hires, but if it is too long, it affects quality indirectly, as better candidates find work elsewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;ADDED&lt;/strong&gt;: some time after I wrote this, I discovered this &lt;a href=&quot;http://www.personalkanban.com/pk/designpatterns/kanban-for-short-intense-projects-how-we-used-kanban-to-visualize-our-hiring-process-workflow-and-make-our-lives-easier/&quot; rel=&quot;nofollow&quot;&gt;blog post - basically how to do lean HR and recruiting and eliminate waste from it&lt;/a&gt;.  It's endorsed by some of the best in business.&lt;/p&gt;&#xA;" OwnerUserId="464" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2011-03-05T17:11:41.033" LastActivityDate="2011-03-05T17:11:41.033" CommentCount="2" />
  <row Id="13900" PostTypeId="1" AcceptedAnswerId="13910" CreationDate="2010-10-22T16:08:30.767" Score="0" ViewCount="155" Body="&lt;p&gt;Don't get me wrong. I am in favor of open-source, but what I am seeing since last few years, the open-source companies being acquired by closed-source companies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take for example: MySQL, BerkeleyDB (I guess so) and PGP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even though the companies that acquired these open-source brands are trying to maintain the open-source identity, but I suspect the quality and the soul. It won't remain the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is the main problem of open-source: Funding. People support it because of the free availability of the code and technology, but when long lasting R&amp;amp;D comes, a need to get associated with a company is beneficial. You need to search pockets of the same community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, how the open-source revolution will continue. Who pays the open-source developers and truly &lt;em&gt;Who Cares&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2010-10-22T16:24:45.547" ClosedDate="2010-10-22T17:08:06.463" Title="Sooner or later the Open-Source gets acquired by the Closed-Source." Tags="&lt;open-source&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="13901" PostTypeId="2" ParentId="13870" CreationDate="2010-10-22T16:08:31.627" Score="2" ViewCount="" Body="&lt;p&gt;Chilling out might not be such a bad idea. Young babies take a lot of energy, so you might consider saying to yourself &quot;OK, 3 month break from non-essential programming&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take the time to relax while you can, and either wait for inspiration to strike (rather than trying to squeeze it out), or write down (in prose or code) some rough ideas on where you'd like the project to be, or how you'd like the code to look.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-22T16:08:31.627" />
  <row Id="13902" PostTypeId="1" CreationDate="2010-10-22T16:11:46.383" Score="4" ViewCount="193" Body="&lt;p&gt;I'm interested in learning about any process you need to follow when coding for a large corporation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, it would be nice to see a little insight into how you (or your manager) handles&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Code reviews&lt;/li&gt;&#xA;&lt;li&gt;Deployment to production&lt;/li&gt;&#xA;&lt;li&gt;Procuring HW/SW for development&lt;/li&gt;&#xA;&lt;li&gt;Evaluating vendors&lt;/li&gt;&#xA;&lt;li&gt;SOX Compliance&lt;/li&gt;&#xA;&lt;li&gt;Security reviews &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;... or anything else I may have missed.  It would also be nice to see if you think there is any benefit to the paperwork, or if there is a comparable software alternative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm interested in everything from paperwork, meetings, routines, or even software tools you may use.  &lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-10-22T17:03:04.610" LastActivityDate="2010-10-22T17:03:04.610" Title="What processes do you follow when developing code for large corporations?" Tags="&lt;project-management&gt;&lt;management&gt;&lt;project&gt;&lt;non-technical-manager&gt;&lt;corporate-procedures&gt;" AnswerCount="6" CommentCount="5" FavoriteCount="1" />
  <row Id="13903" PostTypeId="2" ParentId="13700" CreationDate="2010-10-22T16:13:21.813" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Git&lt;/strong&gt; and &lt;strong&gt;Mercurial&lt;/strong&gt; are the leading distributed VCSs, while &lt;strong&gt;Subversion&lt;/strong&gt; leads among the traditional systems.  This is a popular opinion and you can validate it by checking &lt;a href=&quot;http://www.thoughtworks.com/radar/&quot; rel=&quot;nofollow&quot;&gt;the ThoughtWorks Technology Radar&lt;/a&gt; from time to time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://code.google.com/p/support/wiki/DVCSAnalysis&quot; rel=&quot;nofollow&quot;&gt;Here's Google's white paper comparing Git and Mercurial side-by-side&lt;/a&gt; and explaining why Google chose Mercurial for their Google Code site.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-22T16:13:21.813" />
  <row Id="13904" PostTypeId="2" ParentId="1018" CreationDate="2010-10-22T16:16:15.257" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I would have been messing up with&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;ABACUS&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-10-22T16:16:15.257" />
  <row Id="13905" PostTypeId="2" ParentId="13837" CreationDate="2010-10-22T16:17:19.553" Score="0" ViewCount="" Body="&lt;p&gt;First one. I just don't like putting anything after &lt;code&gt;}&lt;/code&gt; for no apparent reason.&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-10-22T16:17:19.553" />
  <row Id="13906" PostTypeId="2" ParentId="13902" CreationDate="2010-10-22T16:19:28.710" Score="1" ViewCount="" Body="&lt;p&gt;Really there should be no difference between the procedure you follow where ever you program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you should be doing:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Code reviews&lt;/li&gt;&#xA;&lt;li&gt;Using Source Control&lt;/li&gt;&#xA;&lt;li&gt;Continuous/Nightly builds&lt;/li&gt;&#xA;&lt;li&gt;Automatic deployment to test servers&lt;/li&gt;&#xA;&lt;li&gt;Strict procedures when deploying to production servers&lt;/li&gt;&#xA;&lt;li&gt;etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These things will make your development process run smoothly where ever you code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With larger organisations there might be more paperwork.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This could cause difficulties as you have to go through more layers of bureaucracy to get hardware and software purchased. In this case you have to be absolutely certain about what you want, why you want it and what advantages it will bring to the company.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-22T16:19:28.710" CommentCount="3" />
  <row Id="13907" PostTypeId="2" ParentId="13902" CreationDate="2010-10-22T16:19:35.303" Score="2" ViewCount="" Body="&lt;p&gt;If I'm getting the question right, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Systems_Development_Life_Cycle&quot; rel=&quot;nofollow&quot;&gt;SDLC&lt;/a&gt;&lt;/strong&gt; is the answer you're looking for.&lt;/p&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-10-22T16:19:35.303" CommentCount="2" />
  <row Id="13908" PostTypeId="2" ParentId="13870" CreationDate="2010-10-22T16:22:01.957" Score="1" ViewCount="" Body="&lt;p&gt;I'd say that by far your most interesting project and top of the top priority at the moment is your baby - you should kick all the non-work related programming out and just enjoy the baby growing up, first smiles and giggles. Use your available time to watch a good movie/soccer game/ read a book, or  whatever relaxes you.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-10-22T16:22:01.957" />
  <row Id="13909" PostTypeId="2" ParentId="13671" CreationDate="2010-10-22T16:23:54.360" Score="5" ViewCount="" Body="&lt;p&gt;You're conflating two different concepts: &lt;strong&gt;know-it-all&lt;/strong&gt; and &lt;strong&gt;old-school&lt;/strong&gt;.  They're independent of each other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In software industry, a junior developer can easily be a know-it-all.  They remember what worked well on their last project -- their only project.  On the other hand, a 20-year veteran can give you a perspective that comes from dozens of things, some successful, some failed, that happened in 5 or more different companies or environments.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-22T16:23:54.360" CommentCount="1" />
  <row Id="13910" PostTypeId="2" ParentId="13900" CreationDate="2010-10-22T16:24:45.547" Score="4" ViewCount="" Body="&lt;p&gt;Part of the problem with your assumption is that people who work on Open Source projects do it for money. This is not necessarily the case. Many contributors contribute because they enjoy programming. It provides them experience and gives them something they can show at an interview (rather than just saying what you've done you can show the open source code). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many larger software companies also provide support for open source project. IBM and Intel are some of the &lt;a href=&quot;http://news.cnet.com/8301-13505_3-10288910-16.html&quot; rel=&quot;nofollow&quot;&gt;larger corporate contributors to the Linux kernel&lt;/a&gt;.  This is because they actually use the open source software on a regular basis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason why many companies do work with open source software is because they don't have to pay licensing fees for proprietary software they can't improve.  Their ability to improve the software is what draws such companies to open source software.  Also, it's important to &lt;a href=&quot;http://articles.sitepoint.com/article/public-license-explained&quot; rel=&quot;nofollow&quot;&gt;note that using open source to develop or work with your program is not the same as making a derivative work&lt;/a&gt;.  Many companies don't use open source software because they don't quite understand it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TLDR: The open source community does not need funding necessarily, it can continue by word of mouth and developers who want to write code and use it for their resumes.  Companies will continue contribute to open source software projects because doing so benefits them.  Not all open source projects are run by companies, so the projects will continue.  Also, anyone can create their own open source project.&lt;/p&gt;&#xA;" OwnerUserId="5179" LastActivityDate="2010-10-22T16:24:45.547" />
  <row Id="13911" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T16:25:19.480" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://code.google.com/appengine/docs/java/taskqueue/overview.html#Tasks_as_Offline_Web_Hooks&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Task Queue Java API Overview&lt;/strong&gt;&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Task Concepts&lt;/strong&gt;&lt;br&gt;&#xA;In App Engine background processing, a task is a complete description of a small unit of work. This description consists of two parts:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A data payload which parameterizes&#xA;the task. &lt;/li&gt;&#xA;&lt;li&gt;Code which implements the task.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Tasks as Offline Web Hooks&lt;/strong&gt;&lt;br&gt;&#xA;Fortunately, the Internet provides such a solution already, in the form of an HTTP request and its response. The data payload is the content of the HTTP request, such as web form variables, XML, JSON, or encoded binary data. The code reference is the URL itself; the actual code is whatever logic the server executes in preparing the response.&lt;/p&gt;&#xA;" OwnerUserId="649" LastActivityDate="2010-10-22T16:25:19.480" CommentCount="1" />
  <row Id="13912" PostTypeId="2" ParentId="13902" CreationDate="2010-10-22T16:28:19.773" Score="3" ViewCount="" Body="&lt;p&gt;Throw it out there and hope it sticks from what I have seen in many places.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-10-22T16:28:19.773" CommentCount="2" />
  <row Id="13913" PostTypeId="2" ParentId="13902" CreationDate="2010-10-22T16:30:07.243" Score="1" ViewCount="" Body="&lt;p&gt;The main differences I've experienced is that sometimes policies will be applied at the corporate level without consulting everyone at the bottom (such as what version control system to use, or what bug tracker to use), and there's often more complex release procedures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But that's about it.  The development process is pretty much whatever the team uses - sometimes large companies will use agile processes sometimes they won't.  Same goes for smaller companies.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-22T16:30:07.243" />
  <row Id="13914" PostTypeId="2" ParentId="13676" CreationDate="2010-10-22T16:30:26.687" Score="0" ViewCount="" Body="&lt;p&gt;IMO, this question actually leads into the difference between &lt;strong&gt;people that must be managed&lt;/strong&gt; vs. &lt;strong&gt;people that can manage themselves&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Much like managed code, &lt;strong&gt;people that must be managed&lt;/strong&gt; require a runtime. They must have structure, office hours, scheduled meetings, a certain amount of vacation days so they know how much they've &quot;used up&quot;, tasks/tickets handed to them, and a set of rules to play by. Without this structure, they will get lazy, push the boundaries, and require constant correction from you. There's a certain, usually &quot;corporate&quot; style of development that lends itself to these types of developers. If that's you, then you might consider ways to restrict distractions and social networks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;People that can manage themselves&lt;/strong&gt; are the ones that only need a vision, and they're off with it, delivering stuff at 2pm Tuesday and midnight on Thursday or on the weekend, talking with customers, and moving things forward without your scheduling a status meeting. They will set their own limits with regard to social network time, StackExchange time (ahem), etc. These make good developers for creative and innovative products. Under no circumstances should you restrict their access to social networks or anything else; it's not necessary. A good trust relationship is a must, and web proxies / filters / timeclocks / forms are the enemy of trust.&lt;/p&gt;&#xA;" OwnerUserId="1596" LastActivityDate="2010-10-22T16:30:26.687" CommentCount="1" />
  <row Id="13915" PostTypeId="2" ParentId="13902" CreationDate="2010-10-22T16:31:00.680" Score="1" ViewCount="" Body="&lt;p&gt;I've seen many different way of working, but in most case, there is a responsible for everthing.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;One team responsible of deployment&lt;/li&gt;&#xA;&lt;li&gt;One team responsible of analysis&lt;/li&gt;&#xA;&lt;li&gt;One team responsible of coding&lt;/li&gt;&#xA;&lt;li&gt;One team responsible of database management&lt;/li&gt;&#xA;&lt;li&gt;One team responsible of documentation&lt;/li&gt;&#xA;&lt;li&gt;One team responsible of reviews&lt;/li&gt;&#xA;&lt;li&gt;One team responsible of architecture&lt;/li&gt;&#xA;&lt;li&gt;One team responsible of hiring&lt;/li&gt;&#xA;&lt;li&gt;and so on...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Of course you have a responsible of the responsible team, and of course a reponsible of responsibles, and often responsibles of responsibles of responsibles...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everyone has send a written request to the other responsible for anything. Some organization even invest in heavy and complicated workflow systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since everyone is evaluated on his personnal performances, and that's the only way to get promoted or get a salary increase, everyone try to protect themselve from external requests and make choice based on how they will be evaluated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's almost impossible to have a successful software project in such organizations. (success = in time and in budget).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is also an environment where a decent programmer wouldn't work in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been able to improve some of the problems by implementing Scrum and other agile  like methodologies such as Scrum, Lean, XP... So that's my answer:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;To solve most large enterprise weaknesses, agile is a best practice&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-22T16:31:00.680" />
  <row Id="13916" PostTypeId="2" ParentId="13671" CreationDate="2010-10-22T16:34:16.713" Score="1" ViewCount="" Body="&lt;p&gt;My team of 8 spans ages 22 to 62.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as there is no outright know-it-all, or the old dogs can to learn new tricks, everyone brings something to the table: we possibly have a one of the more effective teams in our large corporate&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-10-22T16:34:16.713" />
  <row Id="13917" PostTypeId="2" ParentId="13757" CreationDate="2010-10-22T16:39:03.397" Score="4" ViewCount="" Body="&lt;p&gt;We're a very international shop: there is no correct way, as long as we all understand each other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Annoyance: # is hash in proper British English (and how we use it): £ or lb is pound to Europeans.&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-10-22T16:39:03.397" CommunityOwnedDate="2011-01-09T02:54:49.947" />
  <row Id="13918" PostTypeId="2" ParentId="13811" CreationDate="2010-10-22T16:41:26.197" Score="0" ViewCount="" Body="&lt;p&gt;Be up-front, but diplomatic.  Tell the recruiter that after visiting with the prospective employer you don't feel that the company is a good fit for you and you are turning down their offer.  Don't make excuses, don't let them bully you.  They get paid huge commissions (15% or more of your first year salary) and see you and your offer as a big fish.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-10-22T16:41:26.197" />
  <row Id="13919" PostTypeId="2" ParentId="745" CreationDate="2010-10-22T16:43:07.613" Score="0" ViewCount="" Body="&lt;p&gt;I'm like you - I drink a lot of coffee, and occasionally I feel my eyes begin to droop.  Then it's time to get up, walk around, drink some water (or some coffee).  Maybe even play a game of pool.  The main thing is to change something, and normally just getting away from the screen for 5 minutes is a big help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that doesn't work, it's on with the headphones.  Pick a choice of music that has a bit of pace (Black Stone Cherry, for example) and crank up the volume.  Just make sure they're decent headphones, as much to reduce the effect on coworkers as anything else.  These are good ones, especially for the money:  &lt;a href=&quot;http://www.amazon.co.uk/gp/product/B000MRP1B4/ref=oss_product&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.co.uk/gp/product/B000MRP1B4/ref=oss_product&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-22T16:43:07.613" />
  <row Id="13920" PostTypeId="2" ParentId="13870" CreationDate="2010-10-22T16:43:26.993" Score="6" ViewCount="" Body="&lt;p&gt;If you are asking yourself how to find time working on your open source project, this may indicates that you are willing to work on too much things at the same time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may not be able to physically handle everything and the consequence is that you will be bad in most things you will work on because of the lack of time and focus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about your baby! And your bachelor degree! It's already 2 FULL TIME projects believe me!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Unless your open source project is more important than your baby or your bachelor degree, abandon your open source project for now.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-10-22T16:53:40.030" LastActivityDate="2010-10-22T16:53:40.030" CommentCount="2" />
  <row Id="13921" PostTypeId="2" ParentId="13902" CreationDate="2010-10-22T16:47:13.933" Score="1" ViewCount="" Body="&lt;p&gt;We have dedicated teams for provisioning, DBA, windows, Unix, test, networks, security, change management etc,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, at the code monkey level we try for Agile and combine analysts with shopfloor architects with developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This works for us because we focus on a given business line with in depth knowledge, but the DBAs for example manage all 1000s of servers for all businesses with only superficial knowledge of each.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;bureaucratic&quot; cuts both ways:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;does it make sense to have 200 code monkey teams buying their own servers and installing them with their own standards?&lt;/li&gt;&#xA;&lt;li&gt;who the hell do I speak to find out how to set up a server inside this firewall with that config etc?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Consistency is king: I can run my app on any web of DB server in the organisation but lordy it's annoying at times.&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-10-22T16:47:13.933" />
  <row Id="13922" PostTypeId="2" ParentId="13870" CreationDate="2010-10-22T16:59:43.757" Score="2" ViewCount="" Body="&lt;p&gt;I posted an answer to a similar question &lt;a href=&quot;http://programmers.stackexchange.com/questions/12017/software-development-books-are-useful-but-when-to-find-the-time-to-read-them/12022#12022&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The bottom line is that you &lt;strong&gt;make&lt;/strong&gt; time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll demonstrate with an anecdote.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My sister is a novelist that writes purely in her spare time. She's got a husband and a son and she's published 4 books and a few short stories. On Mondays her husband and son (though he's 7 now, but she's been writing for a long time) know that it's her time to write. So mondays between 7 and 9 she writes, and they leave her alone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wednesdays, my brother-in-law plays hockey in a men's league.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-22T16:59:43.757" CommentCount="2" />
  <row Id="13923" PostTypeId="2" ParentId="13691" CreationDate="2010-10-22T17:02:49.020" Score="1" ViewCount="" Body="&lt;p&gt;Regarding Groovy, a Groovy class can certainly do everything that a Java class can, since valid Java is (almost) always valid Groovy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found that Eclipse and NetBeans aren't quite ready for prime-time when it comes to Groovy/Grails development.  But IntelliJ is really good, if you have the money.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-12-16T13:59:21.140" LastActivityDate="2010-12-16T13:59:21.140" CommentCount="3" />
  <row Id="13924" PostTypeId="2" ParentId="13623" CreationDate="2010-10-22T17:12:01.930" Score="21" ViewCount="" Body="&lt;p&gt;I like long compile times.  It gives me more time to work on my resume.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-10-22T17:12:01.930" CommunityOwnedDate="2010-10-22T17:12:01.930" CommentCount="1" />
  <row Id="13925" PostTypeId="2" ParentId="13757" CreationDate="2010-10-22T17:12:04.777" Score="1" ViewCount="" Body="&lt;p&gt;At a former job, we had a religious flamewar around the pronunciation of &lt;strong&gt;GIF&lt;/strong&gt;.  I argued that the G should be a hard-G because it represents the word Graphics.  My colleagues argued that since the G is in front of an I, it should be a soft-G as in giraffe.  They further argued that the creator of the format pronounces with a soft-G so we should take that as the final proof.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, at that job, I was the author of our Output Run-Time module, abbreviated &lt;strong&gt;ORT&lt;/strong&gt;.  As the creator, I demanded that it be pronounced &lt;strong&gt;GIF&lt;/strong&gt; with a hard-G.  Some people hated me.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-10-22T17:12:04.777" CommunityOwnedDate="2011-01-09T02:54:49.947" CommentCount="8" />
  <row Id="13927" PostTypeId="1" AcceptedAnswerId="13934" CreationDate="2010-10-22T17:20:21.727" Score="4" ViewCount="87" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I live in Manchester, UK, and while there are lots of developer communities (regular events, get togethers etc) in London, there are not many &quot;up north&quot;.  I know of a few (NxtGenUg and ManchesterGeekNights) but there must be more than this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's the best ways of finding out about these?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How have people got involved with communities in there area?&lt;/p&gt;&#xA;" OwnerUserId="6104" LastEditorUserId="6104" LastEditorDisplayName="" LastEditDate="2010-10-22T17:36:01.800" LastActivityDate="2010-10-22T17:44:04.913" Title="How can I get involved with developer communities in my area?" Tags="&lt;community&gt;" AnswerCount="1" />
  <row Id="13928" PostTypeId="1" CreationDate="2010-10-22T17:22:18.450" Score="2" ViewCount="306" Body="&lt;p&gt;Hi all,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your IT company, how do you provide a written feedback to the programmers at their annual review. Like what kind of things you judge them on? In my case, following things come to mind. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Code failed in production?&lt;/li&gt;&#xA;&lt;li&gt;Code required rework by others?&lt;/li&gt;&#xA;&lt;li&gt;Code did not meeting explicit clear requirements.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;What else do you hold the programmers accountable for?&lt;/p&gt;&#xA;" OwnerUserId="5910" LastActivityDate="2010-10-22T20:37:27.247" ClosedDate="2010-10-22T21:03:40.207" Title="Feedback to programmers at annual review" Tags="&lt;management&gt;" AnswerCount="7" CommentCount="1" />
  <row Id="13929" PostTypeId="2" ParentId="13796" CreationDate="2010-10-22T17:26:33.687" Score="3" ViewCount="" Body="&lt;p&gt;Most PHP frameworks these days are unit tests, for a good example of the difference in tools, Zend Framework uses PHPUnit and CakePHP uses SimpleTest. Their repos should be enough to get you started or writing &quot;proper&quot; unit tests.&lt;/p&gt;&#xA;" OwnerUserId="6109" LastActivityDate="2010-10-22T17:26:33.687" />
  <row Id="13931" PostTypeId="2" ParentId="13928" CreationDate="2010-10-22T17:30:31.307" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Reviews Shouldn't Be A Call to Judgment&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How about a couple of &quot;here is what you did well&quot; comments?   With your comments, you aren't looking to review a programmer, you are looking for somebody to blame.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are waiting a year to correct any of the mistakes listed (particularly recurring mistakes), then you are a bad manager.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-10-22T17:30:31.307" CommentCount="5" />
  <row Id="13932" PostTypeId="2" ParentId="9119" CreationDate="2010-10-22T17:36:49.523" Score="0" ViewCount="" Body="&lt;p&gt;Take a look at &lt;a href=&quot;http://www.mpsoftware.dk/phpdesigner.php&quot; rel=&quot;nofollow&quot;&gt;PHPDesigner&lt;/a&gt;. Its fast and lightweight but still has most of the functions people love about Eclipse and Netbeans. Its not free but it is definitely worth the investment.&lt;/p&gt;&#xA;" OwnerUserId="6109" LastActivityDate="2010-10-22T17:36:49.523" />
  <row Id="13933" PostTypeId="2" ParentId="13789" CreationDate="2010-10-22T17:37:57.383" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Functional Programming&lt;/strong&gt; - I'm just trying to work out what I language I should use to help me learn the style.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Haskell&lt;/em&gt; - Pure, but a steep learning curve that I keep slipping to the bottom of if I don't keep practising.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Erlang&lt;/em&gt; - Feels more fun than Haskell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Clojure&lt;/em&gt; - Runs in the JVM so I can sneak it into a lot of places at work and I like the Lisp syntax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Ruby On Rails&lt;/strong&gt; I haven't got any web programming experience, this seems like a good place to get some, plus ruby looks like its here to stay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Spring Framework&lt;/strong&gt; - Satisfying the same itch as above, but in a way that's more useful for my job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then when I'm feeling like a challenge:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Quantum Computer Programming&lt;/strong&gt; - We've all got to have our 'something stupid'&lt;/p&gt;&#xA;" OwnerUserId="6107" LastActivityDate="2010-10-22T17:37:57.383" />
  <row Id="13934" PostTypeId="2" ParentId="13927" CreationDate="2010-10-22T17:38:44.603" Score="2" ViewCount="" Body="&lt;p&gt;Get in touch with Manchester Uni or Manchester Met student's unions... they will have programmer's societies ran by the student's union. They welcome non-students and have regular meetups. &lt;a href=&quot;http://www.umsu.manchester.ac.uk/societies/list/&quot; rel=&quot;nofollow&quot;&gt;Here is a list of societies&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also check out &lt;a href=&quot;http://www.manlug.org/&quot; rel=&quot;nofollow&quot;&gt;ManLug&lt;/a&gt; as there is bound to be coders there, and they may be able to point you in the right direction. Manchester also has a rich hacker community.&lt;/p&gt;&#xA;" OwnerUserId="5558" LastEditorUserId="5558" LastEditorDisplayName="" LastEditDate="2010-10-22T17:44:04.913" LastActivityDate="2010-10-22T17:44:04.913" />
  <row Id="13935" PostTypeId="2" ParentId="8352" CreationDate="2010-10-22T17:40:41.280" Score="0" ViewCount="" Body="&lt;p&gt;I use a modified version of &lt;a href=&quot;http://pear.php.net/manual/en/standards.php&quot; rel=&quot;nofollow&quot;&gt;PEAR Coding Standards&lt;/a&gt;. As mentioned before it helps with autoloading, and I find it looks a little cleaner and easier to read IMO. Basically what it comes down to is just decide what works for you and stick to it. As long as all the code looks the same, in the end the rest will fall into place.&lt;/p&gt;&#xA;" OwnerUserId="6109" LastActivityDate="2010-10-22T17:40:41.280" />
  <row Id="13936" PostTypeId="2" ParentId="13928" CreationDate="2010-10-22T17:40:48.823" Score="9" ViewCount="" Body="&lt;p&gt;Feedback should be&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Immediate&lt;/li&gt;&#xA;&lt;li&gt;In private if negative&lt;/li&gt;&#xA;&lt;li&gt;In public if positive&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Your idea of feedback seems to be fault finding alone.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-10-22T17:40:48.823" CommentCount="3" />
  <row Id="13937" PostTypeId="2" ParentId="13928" CreationDate="2010-10-22T17:41:08.387" Score="8" ViewCount="" Body="&lt;p&gt;I tend to focus on team goals rather than individual goals. Individual goals encourage &quot;gaming&quot; of the system rather than collaboration. It encourages cover-your-ass behavior which, in my experience is counterproductive and damaging to team dynamics. &lt;/p&gt;&#xA;" OwnerUserId="5677" LastActivityDate="2010-10-22T17:41:08.387" CommentCount="1" />
  <row Id="13938" PostTypeId="2" ParentId="2192" CreationDate="2010-10-22T17:43:07.563" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Having to wait about 15 minutes for the PC to boot into a usable state&lt;/li&gt;&#xA;&lt;li&gt;Waiting for the PC to switch applications&lt;/li&gt;&#xA;&lt;li&gt;Being the only person in the office who has to make his own tea/coffee.&lt;/li&gt;&#xA;&lt;li&gt;A broken keyboard (fixed!)&lt;/li&gt;&#xA;&lt;li&gt;Working outside the Managing Director's (US CEO) office (and not in an office, either), with only a partition in between (especially when there is a meeting)&lt;/li&gt;&#xA;&lt;li&gt;The boss is only reachable by email, but everybody else is in the building&lt;/li&gt;&#xA;&lt;li&gt;Not being allowed to use a VCS — apparently it should be in my brain&lt;/li&gt;&#xA;&lt;li&gt;Small screen&lt;/li&gt;&#xA;&lt;li&gt;Not allowing time for breaks other than lunch&lt;/li&gt;&#xA;&lt;li&gt;Having to do remote server backups despite having a sysadmin in the building&lt;/li&gt;&#xA;&lt;li&gt;Being told to do said backups manually.&lt;/li&gt;&#xA;&lt;li&gt;Being forced to use a stupid time management system that is needlessly complicated&lt;/li&gt;&#xA;&lt;li&gt;Only just getting a vague idea of the requirements two months into the job&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I could go on, but it's Friday and I want to forget about work.&lt;/p&gt;&#xA;" OwnerUserId="912" LastActivityDate="2010-10-22T17:43:07.563" CommunityOwnedDate="2011-01-05T06:12:52.770" CommentCount="1" />
  <row Id="13939" PostTypeId="2" ParentId="13928" CreationDate="2010-10-22T17:45:44.583" Score="3" ViewCount="" Body="&lt;p&gt;You seem to be focusing on the negative aspects - is that because there aren't any positive aspects to discuss, or is it the negative stuff you're having trouble with?  That'd be understandable because it's sometimes difficult to go into a review and tell someone they didn't do so well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to talk about the positive stuff - this is especially important when there's negative stuff because otherwise the subject might just assume you're having a whinge for no good reason.  Presumably there is a good reason so you want those bad points top be taken on board so that progress can be made.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be candid and talk about areas where the subject did well, and say &quot;this is the stuff we want to see from you.  However there were some concerns about...&quot; and then go over the stuff that wasn't so good.  Allow them to tell their side of the story.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Part of working in a team is giving and taking constructive criticism.  Of course, that means that if the programmer in question comes back with criticisms of his own, you have to listen and take them on board as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you walk in, tell the developer they suck, and don't listen when they try to explain their side of the situation, you'll just be left with an employee who thinks you're an idiot.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-22T17:45:44.583" />
  <row Id="13940" PostTypeId="1" AcceptedAnswerId="13954" CreationDate="2010-10-22T17:59:36.927" Score="4" ViewCount="290" Body="&lt;p&gt;I've been working on a .NET personal project for a little while now and it's almost ready to go open source. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've decided (arbitrarily) to host it on codeplex. Codeplex offers TFS or mercurial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm wondering which I should pick. Consider:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I've only ever used subversion.&lt;/li&gt;&#xA;&lt;li&gt;I'm using VS 2010 express as my IDE.&lt;/li&gt;&#xA;&lt;li&gt;Tools must be free (so the mercurial client if I go that route).&lt;/li&gt;&#xA;&lt;li&gt;From what I've been hearing, mercurial sounds interesting but I know &lt;em&gt;very&lt;/em&gt; little about it so if there's a learning curve, then I don't want to add too many more learning objectives to the project.&lt;/li&gt;&#xA;&lt;li&gt;I don't expect any contributors.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So I guess the actual question is, is mercurial easy enough to use with codeplex and does it add anything that the TFS option doesn't?&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2011-04-05T10:38:21.487" Title="mercurial or tfs for codeplex?" Tags="&lt;open-source&gt;&lt;.net&gt;&lt;mercurial&gt;&lt;tfs&gt;&lt;codeplex&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="13941" PostTypeId="2" ParentId="1620" CreationDate="2010-10-22T18:01:41.463" Score="4" ViewCount="" Body="&lt;p&gt;PHP6 Is not something that is really aimed for right now. Originally it was going to be the &quot;namespace/closure/plus some&quot; release. With the release of PHP 5.3 containing most of the cool stuff that was supposed to be in PHP 6, its not really known what the current trunk will be versioned. Its said it &quot;&lt;a href=&quot;http://schlueters.de/blog/archives/128-Future-of-PHP-6.html&quot; rel=&quot;nofollow&quot;&gt;PHP 5.4, PHP 6 or maybe even PHP 7&lt;/a&gt;.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either way the functionality is looking awesome. Things like array dereferencing (example: &lt;code&gt;echo foo()[0]&lt;/code&gt;) are already in trunk for everyone to play with. I wouldn't put too much concern on how long the '6' release is taking. 5.3 was released in July of 2009 (which contained most of the functionality that was supposed to be in 6) and they recently released 5.3.3 (July 2010), so it still seems like development is running smoothly.&lt;/p&gt;&#xA;" OwnerUserId="6109" LastActivityDate="2010-10-22T18:01:41.463" />
  <row Id="13942" PostTypeId="2" ParentId="13928" CreationDate="2010-10-22T18:06:07.650" Score="1" ViewCount="" Body="&lt;p&gt;As noted by the others, annual reviews shouldn't focus on what negative events have occurred over the previous year and in fact, most people would argue that surprising someone with a negative review is going to have a high probability of losing that person as an employee. Negative trends should be addressed as soon as they are noticed and if they are just now being noticed it might be a good idea to address them in a meeting separate from the annual review.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of the annual review, the key things to focus on are generally what was done over the prior year, how the employee compares to their peers, and what their goals for the next year should be. If the employee is coming due for a promotion (either through them bringing it up, or just as part of the standard process at the company) let them know what they need to do to meet the requirements for the promotion and if it is unlikely they will get it, make sure they are at least aware that it is not guaranteed so they are not surprised if they don't get it (if someone thinks they are due and don't get a promotion it might lead to them looking for a new job that they think is more inline with where they are career wise).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, the annual review is a good chance to open the floor up to all of your employees and see if there are any issues that they might not be mentioning due to day to day work issues that might improve their quality of life at the office. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, make sure the annual review isn't a negative experience unless it needs to be and even then, low preforming employees should be mentored throughout the year as opposed to at the annual review. &lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-10-22T18:06:07.650" />
  <row Id="13944" PostTypeId="2" ParentId="13470" CreationDate="2010-10-22T18:14:00.947" Score="2" ViewCount="" Body="&lt;p&gt;I'm not sure there's any right way or wrong way to leave a position but I'm a strong believer of what you said about &lt;em&gt;not&lt;/em&gt; burning bridges.  A very similar situation happened to a friend of a mine, when he left his company he was honest and upfront with the employer; gave his two weeks notice in person.  The company needed him more then they knew so they ended up contracting through him and his newly started company.  The compensation he currently receives is an order of magnitude larger than what his salary was when he worked for the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just be honest, confident and polite. Good things will happen, if not you're young you'll be fine.&lt;/p&gt;&#xA;" OwnerUserId="6105" LastActivityDate="2010-10-22T18:14:00.947" CommentCount="1" />
  <row Id="13945" PostTypeId="1" AcceptedAnswerId="13949" CreationDate="2010-10-22T18:16:57.477" Score="6" ViewCount="288" Body="&lt;p&gt;Hello Everyone,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am stuck finding solution for my problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some time ago I decided to outsource web development projects (php coding &amp;amp; design). I've opened small office abroad with manager and couple of programmers and designer. I just started but already have a problem controlling their work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some programmers are fast, others work much slower. I pay them fixed salary, so it matters for me if they do their job on time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When they work from office, I at least have a person responsible for the project to tell if they really worked. But sometimes they work from home and in that case I have no way to know if they really spent that time working on some issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of my ideas were: controlling amount of code done with svn, strict deadlines, everyday reporting.. But nothing seems perfect to me. It creates even more work from my side.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can anyone suggest a way of fair judgment on how much really time was spent on actual work? How to stimulate people to work? Maybe create some bonus system if work is done fast? Any idea/experience on this topic would be highly appreciated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you!&lt;/p&gt;&#xA;" OwnerUserId="6124" LastActivityDate="2011-02-08T19:44:48.700" Title="How to control work of programmers (outsourcers)" Tags="&lt;productivity&gt;&lt;project-management&gt;&lt;time-management&gt;&lt;startups&gt;&lt;outsourcing&gt;" AnswerCount="6" CommentCount="6" />
  <row Id="13946" PostTypeId="2" ParentId="1620" CreationDate="2010-10-22T18:29:42.840" Score="0" ViewCount="" Body="&lt;p&gt;I don't think there's any demand for PHP 6. I mean, what do you expect 6 to have that doesn't already exist? True unicode support is all I can think of, and that doesn't even impact me at the moment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also there's been new features added recently, like namespaces and the phar packaging system that need some time to soak in. You don't want to throw even more features at the community before they've adopted the old features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally the industry as a whole has been slow to adopt new versions of PHP. There are still applications being written that target 4.3. The industry and community need to catch up before PHP goes much further.&lt;/p&gt;&#xA;" OwnerUserId="5990" LastActivityDate="2010-10-22T18:29:42.840" CommentCount="3" />
  <row Id="13947" PostTypeId="2" ParentId="13470" CreationDate="2010-10-22T18:33:47.853" Score="1" ViewCount="" Body="&lt;p&gt;No matter what you do, do it in a respectful way. It will come back to you in full circle. I've been called back by many companies that i've left and i've gotten contract work from them. Give them at least 2-4 weeks so they can find a replacement. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would you want your mechanic quitting in the middle of fixing your car without having another to take over?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just my 2 cents. In the end it is all about how you feel. But I would bring it up to them and ask them to hire another person. Maybe a Sr dev this time. If you're young then I suggest you stay and earn exp in years. Take side jobs to get your learning in. Companies don't want to pay you to learn on the job.&lt;/p&gt;&#xA;" OwnerUserId="6127" LastActivityDate="2010-10-22T18:33:47.853" CommentCount="1" />
  <row Id="13948" PostTypeId="2" ParentId="13751" CreationDate="2010-10-22T18:36:24.057" Score="1" ViewCount="" Body="&lt;p&gt;I've been programming for the last 27 years, from my C64 days to now.  Professionally, I've been coding for almost 13 years.  I'll be a programmer of some form for most of the rest of my life I imagine.  Not that it'll always be in my job, but I may volunteer some time to help with a problem or two somewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've done web development all my professional life.  The web changes so much that it can be tricky just to keep up with things coming out and really know how to harness new features in new versions of stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Jobs where a developer background may be useful would include, while still being technical:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;System/Solution/Enterprise Architect&lt;/li&gt;&#xA;&lt;li&gt;Business Analyst&lt;/li&gt;&#xA;&lt;li&gt;Quality Analyst&lt;/li&gt;&#xA;&lt;li&gt;Project Manager&lt;/li&gt;&#xA;&lt;li&gt;Development Manager, this would also be general management of people&lt;/li&gt;&#xA;&lt;li&gt;Product Manager&lt;/li&gt;&#xA;&lt;li&gt;System Administrator&lt;/li&gt;&#xA;&lt;li&gt;Network Analyst&lt;/li&gt;&#xA;&lt;li&gt;Database Administrator&lt;/li&gt;&#xA;&lt;li&gt;Security Officer&lt;/li&gt;&#xA;&lt;li&gt;Tech Support Specialist&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-22T18:36:24.057" />
  <row Id="13949" PostTypeId="2" ParentId="13945" CreationDate="2010-10-22T18:38:17.970" Score="4" ViewCount="" Body="&lt;p&gt;You must define performance metrics and goals that they must meet. If you were doing any type of Agile and/or SCRUM then you wouldn't have this problem. There are many free applications to help with this. Rally (rallydev.com) is a great one (not free!!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Set time lines and goals and hold them to it. Seems like you need to apply basic managerial skills. If they don't produce, then get rid of them. You pay them for results. Would you give $10 to Mc Donalds for 1/2 of a hamburger? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're a developer of any type then you should be able to break down a project come up with time estimates for each part. Give the estimates to the developers and you and your team can then discuss them and agree. If you say 5 hours and they say 15, make them explain why it will be 15 and not 5. Even if you don't know what they are talking about, you can smell BS. Call them on it and make them explain it. That will cut down the crap. This is what I do everyday and it works even with difficult employees.&lt;/p&gt;&#xA;" OwnerUserId="6127" LastActivityDate="2010-10-22T18:38:17.970" CommentCount="1" />
  <row Id="13950" PostTypeId="2" ParentId="13945" CreationDate="2010-10-22T18:39:07.343" Score="2" ViewCount="" Body="&lt;p&gt;To start things off, this is a hard problem since there really is no good metric that you can use to rank how productive one developer is versus another one. If you use something like lines of code (LoC) you may find that one developer only writes 1000+ LoC, but if its just getting information from the database, is that nearly as hard as the 200 LoC that someone else wrote for parsing data that is being entered, or even the one line of code that was written by someone chasing down a nasty bug?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One idea that did come to mind was having a tracking system where in the tasks that need to be done would be entered (i.e. &quot;Get &lt;em&gt;x&lt;/em&gt; from the database and display it to users&quot;, &quot;Fix the stack overflow but in the &lt;em&gt;y&lt;/em&gt; module&quot;) and have all of your developers &quot;vote&quot; on how many hours they think it would take them to do each task. Once you have everyone vote, you could average that out and see how they compare to what developers are actually putting into fix the problem. There would likely be a bit of calibration involved and there are still ways to game the system, but it might be a way to get a fair idea of what they expect of each other an thus possibly a fair metric to use for judging them.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-10-22T18:39:07.343" />
  <row Id="13951" PostTypeId="2" ParentId="9119" CreationDate="2010-10-22T18:39:18.793" Score="1" ViewCount="" Body="&lt;p&gt;I personally use Notepad++ with a few helpful plugins. Regarding frameworks, I would avoid them until you have a solid grasp of the language. For one they can increase the learning curve. Not only are you trying to learn a new language, but you're also trying to learn a new framework. Additionally you can't really appreciate the frameworks until you've spend a considerable amount of time writing apps from scratch.&lt;/p&gt;&#xA;" OwnerUserId="5990" LastActivityDate="2010-10-22T18:39:18.793" CommentCount="1" />
  <row Id="13952" PostTypeId="2" ParentId="13793" CreationDate="2010-10-22T18:44:26.163" Score="7" ViewCount="" Body="&lt;p&gt;Software engineers in an engineering company &lt;em&gt;are&lt;/em&gt; engineers.  I'm talking about places like defense contractors, equipment manufacturers, etc.   We follow rigorous processes for: creating requirements and design documentation, doing detailed analysis that the design will meet requirements before any code is written,  performing code reviews and unit tests, planning and performing integration and qualification tests.   Documents are reviewed by boards of peers and stakeholders, tests are witnessed by the QA organization a d results presented to the customer for formal acceptance.   Software engineering as P&#xA;practiced in these places is a rigorous, scientific process.    &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-22T18:44:26.163" CommentCount="1" />
  <row Id="13953" PostTypeId="2" ParentId="13673" CreationDate="2010-10-22T18:45:26.223" Score="1" ViewCount="" Body="&lt;p&gt;It's been my experience that low-profile open-source projects can also lead to opportunities, so pick a project that interests you and don't worry about who may be watching.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-10-22T18:45:26.223" />
  <row Id="13954" PostTypeId="2" ParentId="13940" CreationDate="2010-10-22T18:46:39.217" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Mercurial&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like Mercurial provided you install &lt;a href=&quot;http://tortoisehg.bitbucket.org/&quot; rel=&quot;nofollow&quot;&gt;TortoiseHG&lt;/a&gt; and &lt;a href=&quot;http://visualhg.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;VisualHG&lt;/a&gt; tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best feature is that you can create a &quot;branch&quot; to try out some funky new code by just copying your enlistment directory in Explorer.  This copy will sync back to Codeplex without changing any settings if all goes well.  If it goes poorly, delete the directory and 'all is forgiven'.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-22T18:46:39.217" CommentCount="4" />
  <row Id="13955" PostTypeId="2" ParentId="13928" CreationDate="2010-10-22T18:49:08.527" Score="0" ViewCount="" Body="&lt;p&gt;Consider what is the annual review for: promotion? bonus? pay rise?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also consider what many HR departments and companies use it for: culling &quot;bottom performers&quot;? &quot;employee engagement&quot;? &quot;personal development&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Frankly, I'd measure my team by agreed, unambiguous objectives set at the start of the year. And that alone. Anything else is an invitation to legal action.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not least, I've never seen a &quot;clear requirement&quot; in 20 years...&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-10-22T18:49:08.527" />
  <row Id="13956" PostTypeId="1" CreationDate="2010-10-22T18:49:15.013" Score="10" ViewCount="182" Body="&lt;p&gt;I like &quot;red/green/refactor&quot; for RoR, etc. just fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My day job involves batch processing very large files from third-parties in python and other custom tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Churn on the attributes of these files is high, so there are a lot of fixes/enhancements applied pretty frequently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regression testing via a known body of test data with expected results does not exist.  Closest thing is running against the last batch with new test cases hand coded in, make sure it does not blow up, then apply spot-checking and statistical tests to see if data still looks OK.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Q&gt;&gt; How to bring TDD principles into this kind of environment?&lt;/p&gt;&#xA;" OwnerUserId="6130" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-23T16:17:47.990" LastActivityDate="2010-12-05T01:24:48.297" Title="TDD for batch processing: How to do it?" Tags="&lt;best-practices&gt;&lt;testing&gt;&lt;tdd&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="13957" PostTypeId="2" ParentId="13945" CreationDate="2010-10-22T18:59:13.310" Score="8" ViewCount="" Body="&lt;p&gt;Your only measure should be achievement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is the work done?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No? Get another developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is so easy I still don't understand why people try to control other people (impossible to do) while what you should do is stop working with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether they are outsourced or offshore, the problem is the same. The only difference is the location and the fact that it's harder to try to control someone that is 4000km away. &lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="1577" LastEditorDisplayName="" LastEditDate="2011-02-08T19:44:48.700" LastActivityDate="2011-02-08T19:44:48.700" CommentCount="3" />
  <row Id="13958" PostTypeId="1" AcceptedAnswerId="14811" CreationDate="2010-10-22T19:00:40.453" Score="9" ViewCount="319" Body="&lt;p&gt;I am a Software Engineer and over the past few years I have become the de-facto software project manager simply because there isn't one. So to keep our sanity in the R&amp;amp;D/Engineering department, customers have become accustomed to coming to me with their requests. I have no experience in this realm so it is my first time acting as a project manager for software projects. I have managed other things but not software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, how do you manage software projects and mark priorities? Requests come in at infrequent intervals so we very well could be working on something for someone else and then another person comes in with a &quot;rush&quot; job that needs working on. Is it easier to just say First Come, First Serve or is it the person with the most money?&lt;/p&gt;&#xA;" OwnerUserId="4459" LastActivityDate="2010-10-26T15:24:37.117" Title="How do you manage feature requests and software changes?" Tags="&lt;project-management&gt;&lt;software-engineering&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="1" />
  <row Id="13959" PostTypeId="2" ParentId="13958" CreationDate="2010-10-22T19:05:21.283" Score="0" ViewCount="" Body="&lt;p&gt;The company I work for uses two main applications, a web based tool called JIRA to handle the project related aspects and our help desk system to handle the change request via it's rfc functionality&lt;/p&gt;&#xA;" OwnerUserId="4960" LastActivityDate="2010-10-22T19:05:21.283" />
  <row Id="13960" PostTypeId="2" ParentId="13945" CreationDate="2010-10-22T19:10:54.503" Score="2" ViewCount="" Body="&lt;p&gt;You should not be measuring the productivity of developers - the manager should be doing that instead of you, because he's there and you are not. &lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-10-22T19:10:54.503" />
  <row Id="13961" PostTypeId="1" AcceptedAnswerId="13969" CreationDate="2010-10-22T19:13:50.317" Score="5" ViewCount="137" Body="&lt;p&gt;We are working on a large ongoing project that has continual feature changes. These features could take as long as 3 - 4 weeks to complete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This would of course be fine, except the client is always changing its priorities/focus based on pushes from THEIR clients who may want certain features implemented before others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, we often have to shift gears in the middle of a major feature build and start a new feature that all of a sudden has a greater priority. We then of course have the time cost of merging everything together at some point, and also the cost of that lost momentum on the original feature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our estimates are out the window at that point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any good way to handle this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some options I've thought of:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;assume this is the way things will be, and apply a 'distracted client' factor of up to 100% on all estimates (this is dangerous in the case where we can actually complete a feature without interruption)&lt;/li&gt;&#xA;&lt;li&gt;educate the client on the costs of shifting gears, and perhaps apply a change premium to previous estimates if they want us to change to working on a different feature&lt;/li&gt;&#xA;&lt;li&gt;refuse to work on more than one feature/release at a time (aside from bug fixes). This is probably not realistic.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I'm looking forward to hearing about how others have tackled this. It can't be uncommon.&lt;/p&gt;&#xA;" OwnerUserId="6135" LastActivityDate="2010-10-22T21:01:15.360" Title="How do you handle changes in client focus?" Tags="&lt;project-management&gt;&lt;changes&gt;" AnswerCount="4" CommentCount="4" FavoriteCount="1" />
  <row Id="13962" PostTypeId="2" ParentId="745" CreationDate="2010-10-22T19:13:53.000" Score="1" ViewCount="" Body="&lt;p&gt;Having Fun - Nothing reinvigorates me mentally like having fun! Grab a couple coworkers/friends, and go toss a football around for 15 minutes, and play a video game, or whatever is fun for you. You'll feel completely recharged.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Move Around - I work from home, so when I'm feeling sluggish I put on my headphones, and do some house cleaning. It gets my blood flowing again, and gives my brain a chance to rest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, there are some magic pills that are prevalent in the IT industry (And among college students), but they're illegal without a prescription. So I'm not going to recommend them.&lt;/p&gt;&#xA;" OwnerUserId="5990" LastActivityDate="2010-10-22T19:13:53.000" />
  <row Id="13964" PostTypeId="2" ParentId="13956" CreationDate="2010-10-22T19:23:18.643" Score="2" ViewCount="" Body="&lt;p&gt;Just an FYI: Unit testing is not equivalent to TDD. TDD is a process of which unit testing is an element.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that said, if you were looking to implement unit testing then there's a number of things you could do:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;All new code/enhancements are tested&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This way you don't have to go through and unit test everything that already exists, so the initial hump of implementing unit testing is much smaller.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Test individual pieces of data&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Testing something that can contain large amounts of data can lead to many edge cases and gaps in the test coverage. Instead, consider the 0, 1, many option. Test a 'batch' with 0 elements, 1 element and many elements. In the case of 1 element, test the various permutations that the data for that element can be in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From there, test the edge cases (upper bounds to the size of individual elements, and quantity of elements in the batch). If you run the tests regularly, and you have long running tests (large batches?), most test runners allow categorization so that you can run those test cases separately (nightly?).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That should give you a strong base.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Using actual data&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Feeding in 'actual' previously used data like you're doing now isn't a bad idea. Just complement it with well formed test data so that you immediately know specific points of failure. On a failure to handle actual data, you can inspect the results of the batch process, produce a unit test to replicate the error, and then you're back into red/green/refactor with useful regression cases.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-22T19:23:18.643" CommentCount="1" />
  <row Id="13965" PostTypeId="2" ParentId="13956" CreationDate="2010-10-22T19:23:42.107" Score="1" ViewCount="" Body="&lt;p&gt;Its the same as any other environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Separate out the logic into its smallest level of granularity. This will give you a set of rules for the process, each rule will cover one item of logic that is required for your process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then write a test for each rule. These tests will fail. Write the code to fix the test.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The regression testing with known test data that you are talking about is not unit testing. That would be integration testing, this is different from TDD. With TDD you may have a single test to test that you could load a file, but generally no other test would actually go near a data file with test data. Instead you would simulate the data required to exercise a particular rule using a mocking object.&lt;/p&gt;&#xA;" OwnerUserId="1724" LastActivityDate="2010-10-22T19:23:42.107" />
  <row Id="13966" PostTypeId="2" ParentId="13961" CreationDate="2010-10-22T19:25:10.840" Score="1" ViewCount="" Body="&lt;p&gt;I was &lt;em&gt;just&lt;/em&gt; about to ask this same question. I think we've all worked for clients/bosses that constantly shift gears. Here's a typical work week for me (at times):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Monday: Boss says, &quot;Hey, I came up with this great idea over the weekend! Lets do it!&quot; So I spend the rest of the week coding it up and testing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next Monday: I say, &quot;Okay, here's that great idea you had.&quot; They say, &quot;Eh, I don't care about that anymore. But I did come up with another great idea over the weekend! Lets do it!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rinse and repeat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm at the point now that I just ignore half the crazy stuff my boss comes up with.&lt;/p&gt;&#xA;" OwnerUserId="5990" LastActivityDate="2010-10-22T19:25:10.840" CommentCount="4" />
  <row Id="13967" PostTypeId="2" ParentId="13958" CreationDate="2010-10-22T19:28:59.007" Score="0" ViewCount="" Body="&lt;p&gt;Here some thoughts ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is plenty software in the market that helps you, &lt;a href=&quot;http://www.fogcreek.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.fogcreek.com/&lt;/a&gt; with Fogbugz , GeneXus USA with XPM &lt;a href=&quot;http://www.genexususa.com/xpm&quot; rel=&quot;nofollow&quot;&gt;http://www.genexususa.com/xpm&lt;/a&gt; , etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's like an art to balance new feature requests with bug fixes and with your own ideas.&#xA;You have to get food for the next winter, but you have to eat today too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have time, resources and scope, make your best out of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Henry Ford also once famously said, “If I’d listened to customers, I’d have given them a faster horse&quot; ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally: be dynamic, don't put rules like the ones you said...&#xA;and be careful with other people's rules ... they may work well in their context, but not in yours. &lt;/p&gt;&#xA;" OwnerUserId="6137" LastActivityDate="2010-10-22T19:28:59.007" />
  <row Id="13968" PostTypeId="2" ParentId="13623" CreationDate="2010-10-22T19:30:44.143" Score="5" ViewCount="" Body="&lt;p&gt;I am convinced that having slower computer for development results in faster code, but this comes at a price. The rationale is that I have experienced this first hand: having long commute time, I bought a netbook to work in the train, netbook which is slower than any computer I have bought in the 5 last years. Because everything is so slow, I see very quickly when something is unbearably slow on this netbook, and I am aware of slow spots much more quickly (no need to benchmark all the time). Working on a netbook really changed how I developed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, I am not advocating doing this, especially in a profesional environment. First, it is demoralizing. The very fact that almost everybody said the idea did not even make sense show that programmers react badly to the idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, having everything slower means that things you may want to do on a fast machine (takes say 1 minute) are not really doable anymore on a slow machine, because of lazyness, etc... It is a question of incentive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally: the produced code may be faster, but it almost certainly takes longer to produce.&lt;/p&gt;&#xA;" OwnerUserId="6139" LastActivityDate="2010-10-22T19:30:44.143" CommunityOwnedDate="2010-10-22T19:30:44.143" CommentCount="1" />
  <row Id="13969" PostTypeId="2" ParentId="13961" CreationDate="2010-10-22T19:36:10.740" Score="3" ViewCount="" Body="&lt;p&gt;I think that your #2 is the way to go. Such problems can only be solved by talking to the customer. Tell them that changes are costly - both in time and money. Show them your estimations and indicate where their new changes interfere.&lt;/p&gt;&#xA;" OwnerUserId="2612" LastActivityDate="2010-10-22T19:36:10.740" />
  <row Id="13970" PostTypeId="2" ParentId="13958" CreationDate="2010-10-22T19:45:19.910" Score="8" ViewCount="" Body="&lt;p&gt;I've found that the more a customer complains about how urgent their request is, unless they are also a developer in their own right, it's usually a good sign that the request isn't urgent at all.  One of my professors in college always used to tell us not to let the urgent interrupt the important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually classify requests in this order (YMMV):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Issues related to a recent upgrade or migration (most important). &lt;/li&gt;&#xA;&lt;li&gt;Security fixes. &lt;/li&gt;&#xA;&lt;li&gt;Broken functionality of the existing system. &lt;/li&gt;&#xA;&lt;li&gt;Broken functionality in RC and beta features. &lt;/li&gt;&#xA;&lt;li&gt;Paid feature requests. &lt;/li&gt;&#xA;&lt;li&gt;R&amp;amp;D feature requests from a large part of the user base. &lt;/li&gt;&#xA;&lt;li&gt;R&amp;amp;D feature requests from only one or two users.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;This last one actually takes a lot more time because they tend to be those &quot;urgent, I need it yesterday&quot; requests.  In reality, the user has rarely thought completely through what they actually need or how it will support their business model.  Most often, these urgent requests, once delivered, end up being used once or twice and forgotten about.  And once forgotten, they become an endless headache of security holes and unintended consequences.&lt;/p&gt;&#xA;" OwnerUserId="6140" LastActivityDate="2010-10-22T19:45:19.910" CommentCount="3" />
  <row Id="13971" PostTypeId="1" CreationDate="2010-10-22T19:46:12.873" Score="3" ViewCount="366" Body="&lt;p&gt;In your local area, are you making much higher than your average programmers salary? If so, how did you achieve that? How did you go from an average salary to a very high salary compared to your peers in your local area? Did you focus on technical skills alone? Did you get an MBA?&lt;/p&gt;&#xA;" OwnerUserId="5910" LastActivityDate="2010-10-22T20:11:54.357" ClosedDate="2010-10-22T20:17:17.483" Title="programmer salary" Tags="&lt;salary&gt;" AnswerCount="2" />
  <row Id="13972" PostTypeId="2" ParentId="13945" CreationDate="2010-10-22T19:48:46.400" Score="1" ViewCount="" Body="&lt;p&gt;Your are asking programmers how can you control them ? ... good luck !&lt;/p&gt;&#xA;" LastActivityDate="2010-10-22T19:48:46.400" CommentCount="2" />
  <row Id="13973" PostTypeId="1" CreationDate="2010-10-22T19:50:00.337" Score="9" ViewCount="336" Body="&lt;p&gt;I am trying to get an extra income after my day time job as an IT programmer/Lead. Have you done that? Have you been successful at getting extra income on regular basis? Have your after hours consulting paid of? If so.. can you give me some advice.. I am looking for some motivation.&lt;/p&gt;&#xA;" OwnerUserId="5910" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2010-10-23T02:24:54.877" LastActivityDate="2011-03-15T19:27:11.340" Title="Consulting after hours" Tags="&lt;consulting&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="3" />
  <row Id="13974" PostTypeId="2" ParentId="13973" CreationDate="2010-10-22T19:52:48.557" Score="5" ViewCount="" Body="&lt;p&gt;Surely you've already given your motivation? &quot;I am trying to get an extra income.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do after-hours work. The problem isn't motivation, the problem is finding the work. If you can find a nice steady client (I did), then it's great: it's like a job after I finish my other job.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-22T19:52:48.557" CommentCount="2" />
  <row Id="13975" PostTypeId="2" ParentId="13971" CreationDate="2010-10-22T19:54:19.157" Score="0" ViewCount="" Body="&lt;p&gt;There are plenty of salary surveys out there that are far more scientific then what you might be able to drum up here.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-22T19:54:19.157" />
  <row Id="13976" PostTypeId="2" ParentId="13973" CreationDate="2010-10-22T20:03:56.233" Score="7" ViewCount="" Body="&lt;p&gt;If you get a part-time contract, my advice is to get work (if you can) in a different area than what you do during the day.  For example, I do mostly embedded programming in C.   If I have extra contracts doing the same thing (as I do currently), I start to burn out.  But if I get a contract doing web development in PHP, it's enough different than embedded software that it doesn't feel like I'm just continuing my day job at night.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as getting work, there was a good list of freelance sites posted in another question &lt;a href=&quot;http://programmers.stackexchange.com/questions/13282/freelance-programming-sites/13565#13565&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-22T20:03:56.233" />
  <row Id="13977" PostTypeId="2" ParentId="13971" CreationDate="2010-10-22T20:11:54.357" Score="0" ViewCount="" Body="&lt;p&gt;Yes I do 4 times more than the guy on my right that do exaclty the same work in the same team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I'm a freelance consultant&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-22T20:11:54.357" />
  <row Id="13978" PostTypeId="2" ParentId="6067" CreationDate="2010-10-22T20:16:09.620" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Erlang_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Erlang&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6129" LastActivityDate="2010-10-22T20:16:09.620" CommunityOwnedDate="2010-10-22T20:16:09.620" />
  <row Id="13979" PostTypeId="2" ParentId="13973" CreationDate="2010-10-22T20:18:10.100" Score="1" ViewCount="" Body="&lt;p&gt;Talk to other consultants who may be overloaded. Let everyone around you know you are looking and that you'd like their help. Contact former employers. There are websites that connect contractors with clients.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just like in the fairy-tales, the princess has to kiss a lot of frogs until she finds a prince. Pucker up ;)&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-22T20:18:10.100" />
  <row Id="13980" PostTypeId="2" ParentId="13973" CreationDate="2010-10-22T20:18:17.853" Score="9" ViewCount="" Body="&lt;p&gt;Why you want to earn more money if you don't have time anymore to spend it? :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would try to emphasis my efforts on optimizing my existing work hours to get paid more instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Working more than 45h a week is a bad idea on the long term. For your health, your family, your social life, ...&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-22T20:18:17.853" CommentCount="2" />
  <row Id="13981" PostTypeId="2" ParentId="8886" CreationDate="2010-10-22T20:20:09.220" Score="-4" ViewCount="" Body="&lt;p&gt;Personally i wouldn't hire someone without a masters degree, unless they could document some relevant experience and got very good references&lt;/p&gt;&#xA;" OwnerUserId="6129" LastActivityDate="2010-10-22T20:20:09.220" CommunityOwnedDate="2011-03-30T04:35:50.040" />
  <row Id="13982" PostTypeId="2" ParentId="13961" CreationDate="2010-10-22T20:22:01.440" Score="0" ViewCount="" Body="&lt;p&gt;Unless they add features and you don't adjust the billable amount, I would think this client is aware of this already since it happens so much. They know it would have been cheaper to do it up front. Whether or not the cost is worth it is up to them.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-22T20:22:01.440" CommentCount="2" />
  <row Id="13984" PostTypeId="2" ParentId="13793" CreationDate="2010-10-22T20:32:38.397" Score="1" ViewCount="" Body="&lt;p&gt;Next time someone tries to bait you on the topic, ask them about the following jobs:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Locomotive engineer&lt;/li&gt;&#xA;&lt;li&gt;Flight engineer&lt;/li&gt;&#xA;&lt;li&gt;Audio engineer&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;None of those positions have much to do with electrical/mechanical/civil engineering either.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-10-22T20:32:38.397" CommentCount="2" />
  <row Id="13985" PostTypeId="2" ParentId="13793" CreationDate="2010-10-22T20:36:34.580" Score="1" ViewCount="" Body="&lt;p&gt;I'd say most programmers are actually &lt;code&gt;software mechanics&lt;/code&gt;. I mean, most programmers in the software industry do no more than software maintenance and bugfixing.&lt;/p&gt;&#xA;" OwnerUserId="6147" LastActivityDate="2010-10-22T20:36:34.580" CommentCount="6" />
  <row Id="13986" PostTypeId="2" ParentId="13928" CreationDate="2010-10-22T20:37:27.247" Score="0" ViewCount="" Body="&lt;p&gt;Several guidelines:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Feedback, positive or negative, should be timely.&lt;/li&gt;&#xA;&lt;li&gt;Negative feedback should be done privately.&lt;/li&gt;&#xA;&lt;li&gt;Individual positive feedback should be done at an appropriate time and place.  Don't embarrass shy staff members in public, don't heap praise on one team member, it can alienate others.&lt;/li&gt;&#xA;&lt;li&gt;When the team does well, praise the team.  Make sure they know you will pass the good news on to your boss (and do it).&lt;/li&gt;&#xA;&lt;li&gt;Annual review should just be a summary of the feedback over the year and indications of progress made (hopefully).  There should be no surprises at the annual review.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6145" LastActivityDate="2010-10-22T20:37:27.247" />
  <row Id="13987" PostTypeId="2" ParentId="13958" CreationDate="2010-10-22T20:38:36.103" Score="2" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Setup a feature/bug/request tracking system and have your customers/coworkers file tickets. If they don't file a ticket for it, you aren't doing it. Tickets &lt;em&gt;must&lt;/em&gt; be detailed enough to be actionable and must specify an &quot;urgency&quot; (&quot;I need it now&quot; vs. &quot;nice to have&quot;).&lt;/li&gt;&#xA;&lt;li&gt;Go through new tickets and &lt;em&gt;carefully&lt;/em&gt; scope them. Enter the cost in the ticket in dollars, developers, resources, and/or time. This is &lt;strong&gt;essential&lt;/strong&gt;. When your customers see what something will &lt;em&gt;really&lt;/em&gt; cost them, you'll see very different choices in the &quot;urgency&quot; field.&lt;/li&gt;&#xA;&lt;li&gt;On a daily basis, figure out your schedule based on the tickets filed &amp;amp; their urgency. Make the schedule visible to others so it's obvious what you're up to and your availability for future requests.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-10-22T20:38:36.103" CommentCount="1" />
  <row Id="13989" PostTypeId="2" ParentId="13590" CreationDate="2010-10-22T20:45:31.113" Score="5" ViewCount="" Body="&lt;p&gt;Somewhere between&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away&lt;/em&gt;. -- Antoine de Saint-Exupery&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;and&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult&lt;/em&gt;. -- Tony Hoare&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;you get clean code.&lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-10-22T20:45:31.113" CommunityOwnedDate="2011-02-23T01:29:15.137" CommentCount="1" />
  <row Id="13990" PostTypeId="2" ParentId="8886" CreationDate="2010-10-22T20:51:31.783" Score="0" ViewCount="" Body="&lt;p&gt;I am a college drop out as well and I too have thought that getting a regular job as a programmer would be hard. But most programmers know that a CV is not something that can reflect programming capabilities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your case when called for an interview you got to prove your best, and present why you as a self taught programmer can be as good as others. Because trust me, once they do not see a diploma on that resume they expect you to be really something in order to hire you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you say you are an average programmer, than no problem for you, because in small to medium firms most programmers are lower than average and you can shine through (from own experience).&lt;/p&gt;&#xA;" OwnerUserId="6147" LastActivityDate="2010-10-22T20:51:31.783" CommunityOwnedDate="2011-03-30T04:35:50.040" />
  <row Id="13991" PostTypeId="2" ParentId="13958" CreationDate="2010-10-22T20:53:04.080" Score="0" ViewCount="" Body="&lt;p&gt;The answers I see thus far are good.  One thing that I will specifically spell out is that you are going to have to be good at saying &quot;No&quot; to some requests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you allow the customer to set the urgency, it will almost always be &quot;High&quot; (or greater).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You (either you yourself, or a team, depending on your setup) will need to evaluate these requests, and prioritize them based on your own criteria.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-10-22T20:53:04.080" />
  <row Id="13992" PostTypeId="2" ParentId="13973" CreationDate="2010-10-22T20:57:30.927" Score="1" ViewCount="" Body="&lt;p&gt;While for me it was not that hard to find an external company with which to collaborate after my daily work hours, I restrain myself from accepting big projects. One week long projects, max.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And that I have learned with a failed project I accepted. After working 8 hours a day you can not work with more than, let's say, 30% of your capabilities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The advantage of taking one week long projects is that you can code 2-3 hours every day after work and a one day marathon in the weekend.&lt;/p&gt;&#xA;" OwnerUserId="6147" LastActivityDate="2010-10-22T20:57:30.927" />
  <row Id="13993" PostTypeId="2" ParentId="12807" CreationDate="2010-10-22T21:00:24.927" Score="3" ViewCount="" Body="&lt;p&gt;Remember you are working as part of a team, so you need to work these things out together.  &quot;Plays nice with others&quot; is still an important personality trait even after elementary school :)&lt;/p&gt;&#xA;" OwnerUserId="6145" LastActivityDate="2010-10-22T21:00:24.927" CommunityOwnedDate="2010-10-22T21:00:24.927" />
  <row Id="13994" PostTypeId="2" ParentId="13961" CreationDate="2010-10-22T21:01:15.360" Score="0" ViewCount="" Body="&lt;p&gt;I agree most closely with #2.  However, you better make sure that you are careful with the wording in your contract.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, you are going to have to have some flexibility (on both sides) to allow some further feature definition on existing features, and allow for some additional (small) features to be added to fill in any missing functionality that is thought of later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if there are big changes, then you need to make the client feel the cost.  Explaining the cost to them is one thing, but unless you actually pass it on to them in a  way, they are unlikely to change.  It may even pay to draw up a second contract for that new work, if it is truly new work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make the cost realistic.  You don't want to gouge your client, but you also don't want to have constant context switching - in the long run, that could lead to bad software.  If you come up with a cost that actually makes the context switching worthwhile, and they agree to it, then everybody wins.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-10-22T21:01:15.360" />
  <row Id="13995" PostTypeId="2" ParentId="12807" CreationDate="2010-10-22T21:19:46.880" Score="0" ViewCount="" Body="&lt;p&gt;Funny because I always replace code like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(foo) {&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;With:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(true == foo) {&#xA;if(false == foo) {&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But I got this habit because most of the time the code I worked with didn't have clear variable names.&lt;/p&gt;&#xA;" OwnerUserId="6147" LastActivityDate="2010-10-22T21:19:46.880" CommunityOwnedDate="2010-10-22T21:19:46.880" CommentCount="1" />
  <row Id="13996" PostTypeId="2" ParentId="9554" CreationDate="2010-10-22T21:25:42.253" Score="1" ViewCount="" Body="&lt;p&gt;The algorithm being implemented sets a lower limit on how simple the code for an implementation can be.  If an abstract description of the algorithm to be implemented is extremely complicated and requires tons of different pieces of data to be coupled to each other, then the code implementing said algorithm can't be simple no matter who's writing it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, one reason why I sometimes write inscrutable code is because, given the algorithm I want to implement, I have no choice.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-22T21:25:42.253" />
  <row Id="13997" PostTypeId="2" ParentId="13958" CreationDate="2010-10-22T21:36:52.890" Score="4" ViewCount="" Body="&lt;p&gt;I like &lt;img src=&quot;http://i.imgur.com/O41FL.png&quot; alt=&quot;Covey&quot;&gt;'s principles:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;QI - Important and Urgent&lt;/li&gt;&#xA;&lt;li&gt;QII - Important but Not Urgent&lt;/li&gt;&#xA;&lt;li&gt;QIII - Not Important but Urgent&lt;/li&gt;&#xA;&lt;li&gt;QIV - Not Important and Not Urgent&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5400" LastActivityDate="2010-10-22T21:36:52.890" CommentCount="3" />
  <row Id="13998" PostTypeId="2" ParentId="5427" CreationDate="2010-10-22T21:38:44.617" Score="3" ViewCount="" Body="&lt;p&gt;Since 2004, I've used Python to develop:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;GUIs&lt;/li&gt;&#xA;&lt;li&gt;Scripting ray tracer scenes with Python to C++ bindings&lt;/li&gt;&#xA;&lt;li&gt;Cross platform automated build systems&lt;/li&gt;&#xA;&lt;li&gt;Test scripts&lt;/li&gt;&#xA;&lt;li&gt;General purpose tools to solve your everyday issues&lt;/li&gt;&#xA;&lt;li&gt;Web sites and web apps&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Back in 2004, Python was the language of choice because Python scripts are portable across Windows, Linux and Mac with very little modifications.&lt;/p&gt;&#xA;" OwnerUserId="5968" LastActivityDate="2010-10-22T21:38:44.617" CommentCount="1" />
  <row Id="13999" PostTypeId="2" ParentId="1018" CreationDate="2010-10-22T21:50:28.207" Score="0" ViewCount="" Body="&lt;p&gt;Complete the BHI distance learning course in Horology and become a maker of fine mechanical complications. (...a watch maker).&lt;/p&gt;&#xA;" OwnerUserId="2652" LastActivityDate="2010-10-22T21:50:28.207" />
  <row Id="14000" PostTypeId="2" ParentId="13623" CreationDate="2010-10-22T21:54:58.900" Score="6" ViewCount="" Body="&lt;p&gt;Giving the developers a slow computer will result in the following:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://imgs.xkcd.com/comics/compiling.png&quot; alt=&quot;XKCD Comic #303&quot;&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- &lt;a href=&quot;http://xkcd.com/303&quot; rel=&quot;nofollow&quot;&gt;XKCD Comic #303&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5044" LastActivityDate="2010-10-22T21:54:58.900" CommunityOwnedDate="2010-10-22T21:54:58.900" />
  <row Id="14001" PostTypeId="2" ParentId="1018" CreationDate="2010-10-22T21:56:31.797" Score="1" ViewCount="" Body="&lt;p&gt;I was a farmer, then an Aircraft Mechanic before a professional programmer. I think I'd go back to farming.&lt;/p&gt;&#xA;" OwnerUserId="5547" LastActivityDate="2010-10-22T21:56:31.797" CommentCount="1" />
  <row Id="14002" PostTypeId="2" ParentId="13746" CreationDate="2010-10-22T22:01:36.253" Score="1" ViewCount="" Body="&lt;p&gt;Depending on the background of the person asking sometimes the answer to this question can be as simple as hooks are usually another word for an event handler, which Blaenk gave an excellent explanation for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are also uses of this phrase that are when you inject an event or code into a process that otherwise does not have events like &lt;a href=&quot;http://geekswithblogs.net/thomasweller/archive/2010/04/28/mocking-the-unmockable-using-microsoft-moles-with-gallio.aspx&quot; rel=&quot;nofollow&quot;&gt;moles&lt;/a&gt; for example.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-10-22T22:01:36.253" CommentCount="2" />
  <row Id="14003" PostTypeId="2" ParentId="1018" CreationDate="2010-10-22T22:09:10.163" Score="2" ViewCount="" Body="&lt;p&gt;Play sports ... If I hadn't spent a lot of time playing/working with a computer then I'd probably be really good at sport ;-)&lt;/p&gt;&#xA;" OwnerUserId="5914" LastActivityDate="2010-10-22T22:09:10.163" />
  <row Id="14004" PostTypeId="2" ParentId="13870" CreationDate="2010-10-22T22:13:57.380" Score="2" ViewCount="" Body="&lt;p&gt;Most people have a fair amount of downtime that they use watching television.  (This doesn't normally apply to parents of three-month-olds.)  It isn't generally a matter of finding time, but finding energy and motivation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you usually able to sleep through the night?  I wasn't when my kid was that old.  If you're not getting enough sleep, you're going to have a hard enough time with your schoolwork, let alone an outside project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, spend time with your wife and kid.  Don't worry about extra projects for now, there will be more time for that a few years from now.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-22T22:13:57.380" />
  <row Id="14005" PostTypeId="2" ParentId="1018" CreationDate="2010-10-22T22:17:04.633" Score="14" ViewCount="" Body="&lt;p&gt;I get this question as well, and I find that it's actually &lt;em&gt;not&lt;/em&gt; a good question at all. The &lt;strong&gt;entire civilized  world&lt;/strong&gt; would be different. I would have never had that fateful moment when I was 6 and asked my dad &quot;What's QBasic?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a result, I'd probably end up doing whatever curious people did 100 years ago - get eaten by a bear.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-22T22:17:04.633" />
  <row Id="14006" PostTypeId="2" ParentId="13711" CreationDate="2010-10-22T22:17:48.007" Score="0" ViewCount="" Body="&lt;p&gt;Do Both&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Add a optional parameter to the question path that does the work you are currently piggybacking on user requests:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/13711/servicing-background-tasks-on-a-large-site?doextrastuff&quot;&gt;http://programmers.stackexchange.com/questions/13711/servicing-background-tasks-on-a-large-site?doextrastuff&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Create a console app that runs on each server and opens the IIS log shared binary and reads it to the current end of the file.  Use a filesystemwatcher or a timed interval to read forward to collect updates as IIS flushed the log.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use this information to determine what pages have been currently viewed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use the page urls from the parsed log to call the &quot;extrastuff&quot; version of the url on localhost with a webclient object.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Add in some code to switch files at the end of each log period or restart the process each log period.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-10-22T22:17:48.007" />
  <row Id="14007" PostTypeId="2" ParentId="13623" CreationDate="2010-10-22T22:29:21.313" Score="3" ViewCount="" Body="&lt;p&gt;Hardware is less costly than time of development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most bottlenecks are in the database not in the client PC, but that doesn't excuse testing on &#xA;slower machines than the developer. Use testing tools to test optimization.&lt;/p&gt;&#xA;" OwnerUserId="6153" LastActivityDate="2010-10-22T22:29:21.313" CommunityOwnedDate="2010-10-22T22:29:21.313" />
  <row Id="14008" PostTypeId="2" ParentId="1018" CreationDate="2010-10-22T22:35:47.210" Score="2" ViewCount="" Body="&lt;p&gt;Automotive/Mechanical Engineering.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-10-22T22:35:47.210" />
  <row Id="14009" PostTypeId="1" CreationDate="2010-10-22T22:41:48.870" Score="3" ViewCount="266" Body="&lt;p&gt;I've been coding for the past 5 years with a dark background and light text.... I'm wondering what other people use and if one is actually better than the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I know it's Friday night and I'm bored)&lt;/p&gt;&#xA;" OwnerUserId="3306" LastActivityDate="2010-10-23T04:53:20.720" ClosedDate="2010-10-23T05:04:15.613" Title="Do you prefer dark text on light background or the other way around when coding?" Tags="&lt;coding&gt;" AnswerCount="8" CommentCount="1" />
  <row Id="14010" PostTypeId="2" ParentId="1018" CreationDate="2010-10-22T22:42:11.910" Score="0" ViewCount="" Body="&lt;p&gt;Whah...?  That's like asking what would you do if there was no oxygen or gravity!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would probably have spent less time playing computer games, and maybe done better at physics as a result.  Maybe I would have gone into aviation engineering like I wanted to when I was a kid.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-22T22:42:11.910" CommentCount="1" />
  <row Id="14011" PostTypeId="2" ParentId="1018" CreationDate="2010-10-22T22:42:17.587" Score="3" ViewCount="" Body="&lt;p&gt;I would study physics, it's really fascinating. &lt;/p&gt;&#xA;" OwnerUserId="2849" LastActivityDate="2010-10-22T22:42:17.587" CommentCount="1" />
  <row Id="14012" PostTypeId="2" ParentId="14009" CreationDate="2010-10-22T22:44:15.473" Score="0" ViewCount="" Body="&lt;p&gt;I can go either way.  right now, im using a light blue background with dark text.&#xA;&lt;a href=&quot;http://studiostyl.es//&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; is a site where you can create and share vs2k10 and vs2k8 color schemas&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-22T22:44:15.473" />
  <row Id="14013" PostTypeId="2" ParentId="14009" CreationDate="2010-10-22T22:47:18.130" Score="3" ViewCount="" Body="&lt;p&gt;White background, black text.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-22T22:47:18.130" CommentCount="2" />
  <row Id="14014" PostTypeId="2" ParentId="14009" CreationDate="2010-10-22T22:48:39.547" Score="0" ViewCount="" Body="&lt;p&gt;My background/foreground colors used, in chronological order:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;black / green (no syntax highlighting)&lt;/li&gt;&#xA;&lt;li&gt;black / orange (no syntax highlighting)&lt;/li&gt;&#xA;&lt;li&gt;blue / yellowish (no syntax highlighting)&lt;/li&gt;&#xA;&lt;li&gt;white / black (with ...)&lt;/li&gt;&#xA;&lt;li&gt;dark blue / various (with ...) - current&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Can't really say ... although I think I was most productive during the black/orange period.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-22T22:48:39.547" />
  <row Id="14015" PostTypeId="2" ParentId="9119" CreationDate="2010-10-22T22:54:21.900" Score="0" ViewCount="" Body="&lt;p&gt;Though I haven't used it myself, I have heard good praise from several users &lt;a href=&quot;http://www.activestate.com/komodo-ide&quot; rel=&quot;nofollow&quot;&gt;Komodo&lt;/a&gt; as an IDE for multiple languages, including PHP, Python and Ruby.&lt;/p&gt;&#xA;" OwnerUserId="146" LastActivityDate="2010-10-22T22:54:21.900" />
  <row Id="14016" PostTypeId="2" ParentId="14009" CreationDate="2010-10-22T23:00:29.077" Score="1" ViewCount="" Body="&lt;p&gt;Whatever is easier on the eyes.  I prefer black text on light gray background: enough contrast to see clearly, but not too bright. And definitely with syntax highlighting.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-22T23:00:29.077" />
  <row Id="14018" PostTypeId="2" ParentId="5427" CreationDate="2010-10-22T23:16:21.523" Score="2" ViewCount="" Body="&lt;p&gt;It's elegant and really easy to learn, and once you're familiar with its basic types (especially lists) your productivity has no limit. It's perfect for prototyping algorithms, or for writing them in a pseudocode-like language that can eventually put directly on a machine, and it's really good as a scripting language for doing repetitive jobs or perform annoying operations on files. I use it as a glue language for making subprocesses communicate with each other: not as powerful as bash for some easy tasks, but WAY easier if you need to do more than just a single line of code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then it doesn't distinguish between functions and subroutines, you know what I mean.&lt;/p&gt;&#xA;" OwnerUserId="5936" LastActivityDate="2010-10-22T23:16:21.523" />
  <row Id="14019" PostTypeId="2" ParentId="5427" CreationDate="2010-10-22T23:26:54.493" Score="4" ViewCount="" Body="&lt;p&gt;Compared to Ruby, which is really cool and produces amazing Code Golf-offs, Python has this core philosophy that &quot;There should be one - and preferably only one - obvious way to do [things],&quot; meaning the idiomatic Python way. I have found this to be a huge advantage compared to Ruby.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-10-22T23:26:54.493" CommentCount="3" />
  <row Id="14020" PostTypeId="2" ParentId="4863" CreationDate="2010-10-22T23:28:52.067" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://github.com/fogus/potion&quot; rel=&quot;nofollow&quot;&gt;Potion&lt;/a&gt; is a language that relies on Lua. It's small, fast, safe and have a lot of innovations.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-10-22T23:28:52.067" CommunityOwnedDate="2010-10-22T23:54:06.263" />
  <row Id="14021" PostTypeId="2" ParentId="13870" CreationDate="2010-10-22T23:53:25.187" Score="2" ViewCount="" Body="&lt;p&gt;It depends upon how important the open-source project is in the grand cosmic scheme of things. If the project involves creating trivial screen-savers, you just work on it haphazardly now and then whenever you are too bored to do anything else. If it is a project like &lt;a href=&quot;http://code.google.com/p/mindforth&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/p/mindforth&lt;/a&gt; for creating true artificial intelligence that will bring on a Technological Singularity, then you need to organize your entire life and all available nanoseconds in service to your Grand Challenge Open-Source AI Project.&lt;/p&gt;&#xA;" OwnerUserId="6159" LastActivityDate="2010-10-22T23:53:25.187" />
  <row Id="14023" PostTypeId="2" ParentId="486" CreationDate="2010-10-22T23:59:02.400" Score="1" ViewCount="" Body="&lt;p&gt;My favorite project to work on was an open-source AI project where I really felt that I could create a new species of intelligent life on the planet Earth. Trouble was, it took most of my lifetime to first create the theory of mind and then to write the open-source artificial intelligence software in Forth for intelligent robots and in JavaScript as an easily accessable, tutorial version of the otherwise difficult to set up software.&lt;/p&gt;&#xA;" OwnerUserId="6159" LastActivityDate="2010-10-22T23:59:02.400" />
  <row Id="14024" PostTypeId="2" ParentId="5427" CreationDate="2010-10-23T00:00:30.817" Score="2" ViewCount="" Body="&lt;p&gt;The philosophy that the Benevolent Dictator should enforce his idea of good style[1], his idea of good programming, his idea of how to program frustrates me regularly. I don't think like van Rossum. However, his language resists attempts to express non-van Rossum thoughts.  His thinking works &lt;em&gt;really&lt;/em&gt; well for many (most?) programmers. But I seem to not fit into his model of how to program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is why I believe Perl is a superior language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[1] See his blog about removing &lt;code&gt;reduce&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-23T00:00:30.817" CommentCount="2" />
  <row Id="14025" PostTypeId="2" ParentId="6847" CreationDate="2010-10-23T00:04:55.370" Score="1" ViewCount="" Body="&lt;h1&gt;Forth&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;because it lets you create your own words that function as a subroutine.&lt;/p&gt;&#xA;" OwnerUserId="6159" LastEditorUserId="4222" LastEditorDisplayName="" LastEditDate="2010-10-28T04:39:17.440" LastActivityDate="2010-10-28T04:39:17.440" CommunityOwnedDate="2010-10-23T00:04:55.370" CommentCount="1" />
  <row Id="14027" PostTypeId="2" ParentId="9554" CreationDate="2010-10-23T01:11:52.750" Score="0" ViewCount="" Body="&lt;p&gt;Loose coupling and documentation that helps you put a model of what you're working with in your head.&lt;/p&gt;&#xA;" OwnerUserId="3044" LastActivityDate="2010-10-23T01:11:52.750" />
  <row Id="14028" PostTypeId="1" AcceptedAnswerId="14036" CreationDate="2010-10-23T01:16:31.070" Score="13" ViewCount="853" Body="&lt;p&gt;Hello guys&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm here to post this question and know more about your thoughts on it:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Can you work with noise?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes, when you're developing something really tricky, your deadline is getting close, and someone enters your room talking to your colleagues, with loud talking, suddenly... your logic is gone! :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About me, it's really funny and ironic this: when it comes to music, I can think better, maybe because I'm focused in my solution avoiding distractions and chit-chat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I know people who told me that they can't work in silence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just can't work with too much noise. How about you?&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2011-05-22T13:29:21.853" CommunityOwnedDate="2011-05-22T12:09:23.967" Title="As a programmer, can you work with noise?" Tags="&lt;behavior&gt;&lt;social&gt;" AnswerCount="17" CommentCount="4" FavoriteCount="1" />
  <row Id="14029" PostTypeId="2" ParentId="14028" CreationDate="2010-10-23T01:21:07.660" Score="3" ViewCount="" Body="&lt;p&gt;I can work with noise until about 2am, when something I've been trying to fix for 3 hours still isn't working, and I've pulled out half my hair. At that moment I want complete silence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said I don't like people trying to talk to me while I'm concentrating. I probably come across as rude because I ignore them, but it's a huge distraction for me.&lt;/p&gt;&#xA;" OwnerUserId="5990" LastActivityDate="2010-10-23T01:21:07.660" CommunityOwnedDate="2011-05-22T12:09:23.967" />
  <row Id="14030" PostTypeId="2" ParentId="14009" CreationDate="2010-10-23T01:32:45.763" Score="0" ViewCount="" Body="&lt;p&gt;I have always used Visual Studio IDE, I really find it easy to code and I love the features, including this one you can customize your theme, font type, font colors, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here I am using &lt;a href=&quot;http://www.hanselman.com/blog/VisualStudioProgrammerThemesGallery.aspx&quot; rel=&quot;nofollow&quot;&gt;Moria&lt;/a&gt; but I changed a little to look like Ragnarok theme. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a good theme where background is black, and classes and statements have bright different colors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started using Moria theme when I noticed that my eyes were always red at the end of the day! Now with a soft brightness on my monitor, and using Moria, my eyes are quite normal :-)&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-23T01:32:45.763" />
  <row Id="14031" PostTypeId="2" ParentId="14028" CreationDate="2010-10-23T01:34:13.637" Score="3" ViewCount="" Body="&lt;p&gt;Personally I never had a problem with noise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The big killer is stress and you should probably look at that before trying to put the fault on other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not saying noise cannot be the cause of your distraction but I'd bet on stress (read: incoming deadline).&lt;/p&gt;&#xA;" OwnerUserId="3063" LastActivityDate="2010-10-23T01:34:13.637" CommunityOwnedDate="2011-05-22T12:09:23.967" CommentCount="15" />
  <row Id="14032" PostTypeId="2" ParentId="14028" CreationDate="2010-10-23T01:37:28.367" Score="1" ViewCount="" Body="&lt;p&gt;Yes. I can work alongside pretty much all kinds of noises (notable exceptions are jackhammers and Eurovision winner songs) - it's just that it isn't much as effective as working in a quiet environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, I also know people who, almost never work in silence (giant headphones on head, volume to a jackhammer level). But from what I figured, it's not so much the content of the music that interests them - it's more of their way to filter the other sources of noise  in the background. Probably those Eurovision songs playing on the radio.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-23T01:37:28.367" CommunityOwnedDate="2011-05-22T12:09:23.967" CommentCount="0" />
  <row Id="14033" PostTypeId="1" CreationDate="2010-10-23T01:49:08.720" Score="9" ViewCount="192" Body="&lt;p&gt;I have hosted my latest project, a &lt;a href=&quot;http://confusionists.com/mjdj&quot; rel=&quot;nofollow&quot;&gt;JVM-based MIDI processor/API called Mjdj MIDI Morph&lt;/a&gt;, on Github (&lt;a href=&quot;http://github.com/drosenstark/mjdj&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://github.com/drosenstark/mjdj-api&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;). Now I need to bring some interest to it, even if it's negative interest (so I can improve it). I've looked up open source list on Google and end up with such things as &lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_free_and_open_source_software_packages&quot; rel=&quot;nofollow&quot;&gt;this page on Wikipedia&lt;/a&gt;, which makes it quite clear that they don't want your project if it's new. Where should I list my project? Short of adwords and talking it up in forums and trade shows, where should I submit my URLs?&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-10-23T15:14:59.117" Title="Where Can I List My Opensource Project?" Tags="&lt;open-source&gt;&lt;marketing&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="2" />
  <row Id="14034" PostTypeId="2" ParentId="14028" CreationDate="2010-10-23T01:54:20.467" Score="1" ViewCount="" Body="&lt;p&gt;Its actually nearly impossible for me to work in silence. At home, when writing code, I'll ALWAYS leave the TV on as a rule. It'll generally be a re-run, something I know I wont' be interested in, but without background noise or maybe a short 5 second distraction once in awhile, I just can't think straight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At work, I almost always listen to music while writing code. And its typically something you would consider very distracting, not calm music at all. I mainly listen to Speed Metal or Baroque Classical while working; very fast, very technical, very complicated and busy music. But it doesn't distract me, it actually energizes me and empowers me to keep pushing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, anything new or novel could be highly distracting. If you put a tv-show on I've never seen, I'm going to be tempted to turn away and watch it, and then I'll forget what I was working on. Similarly, if people are trying to talk to me frequently, it will force me to stop what I'm doing, respond, and then try to remember where I was. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But things like radio are actually more conductive to production than hampering. :)&lt;/p&gt;&#xA;" OwnerUserId="6167" LastActivityDate="2010-10-23T01:54:20.467" CommunityOwnedDate="2011-05-22T12:09:23.967" CommentCount="1" />
  <row Id="14035" PostTypeId="2" ParentId="4863" CreationDate="2010-10-23T02:02:04.137" Score="-3" ViewCount="" Body="&lt;p&gt;My question is: Why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning esoteric languages is fun, but if thats your point; just pick one and have fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really understand your CS fundamentals, you already understand all programming languages. Everything else is just syntax and which tricks you can use to do what, but you can just pick up those few interface changes as you go. Its not hard, really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what do you want to use this for?&#xA;You said you specifically want one that isn't popular... just looking for something super esoteric to show off with? lol. But then why does it have to be new? Have fun with Brainfuck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hell, you want to be impressive? Write some asm code. Thats as hardcore as it gets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just sounds like you wanna learn something nobody else knows... which seems pointless. Not sure what you want to DO, which is the most important thing in picking a language.&lt;/p&gt;&#xA;" OwnerUserId="6167" LastActivityDate="2010-10-23T02:02:04.137" CommunityOwnedDate="2010-10-23T02:02:04.137" CommentCount="1" />
  <row Id="14036" PostTypeId="2" ParentId="14028" CreationDate="2010-10-23T02:03:14.867" Score="10" ViewCount="" Body="&lt;p&gt;Between the blabbering about Lady Gaga to how much someone had to drink the night before, much of the noise at work drives me nuts. I had a chance to try out an open house event at a coworking location. In the 'quiet' room, the other person in there slurped their coffee, allowed their nose to run and managed to make noise eating oatmeal (I know HTF do you do that?). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I went into the room where they allow talking and open cell phone conversations. There were two programmers in there who worked for the same company and were in discussion often;didn't bother me at all. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Was it the difference in my level of respect for the person and no matter what they did would have irritated me or maybe the types of distractions are the same I make and don't even know it? One man's noise is another man's background music.&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2010-10-23T11:15:57.193" LastActivityDate="2010-10-23T11:15:57.193" CommunityOwnedDate="2011-05-22T12:09:23.967" CommentCount="1" />
  <row Id="14037" PostTypeId="2" ParentId="14028" CreationDate="2010-10-23T02:29:40.153" Score="4" ViewCount="" Body="&lt;p&gt;For me it really depends on what kind of noise.  I find absolute silence is the best.  Ironically, familiar wall-of-sound punk rock played loud enough to drown out all other noise is a close second and is generally my preferred auditory environment when absolute silence is not an option.  The wall of sound guitar and drums effect energizes me and drowns out more distracting sounds, and the lyrics aren't distracting because I already have them memorized.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Miscellaneous background noises aren't much of a problem either because they don't garner that much attention from my brain.  People's conversations are what I really can't stand.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The absolute worst, though, is when people have conversations in a language other than English.  (English is the only language I understand, and conversations in other languages happen frequently in my workplace, as I'm in grad school and there are several international students.)  I think the reason is that non-English conversation still sounds like speech, so my brain keeps trying extra hard to process it and make sense of the individual words before realizing it can't.  With English, the low-level processing of understanding individual words (which I find difficult to voluntarily turn off) doesn't consume too much processing power, and the task of higher level understanding is something I find easy to turn off when needed.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-23T02:29:40.153" CommunityOwnedDate="2011-05-22T12:09:23.967" CommentCount="4" />
  <row Id="14038" PostTypeId="2" ParentId="14028" CreationDate="2010-10-23T03:09:11.550" Score="1" ViewCount="" Body="&lt;p&gt;For me its just mainly blocking out distracting conversations from others. I work in an open plan office, so I use earphones and trance music (which is not my preferred type of music but it provides a nice background noise that I don't get too caught up in) to block conversations out. &lt;/p&gt;&#xA;" OwnerUserId="2106" LastActivityDate="2010-10-23T03:09:11.550" CommunityOwnedDate="2011-05-22T12:09:23.967" />
  <row Id="14039" PostTypeId="2" ParentId="14009" CreationDate="2010-10-23T03:23:11.500" Score="2" ViewCount="" Body="&lt;p&gt;Black background with muted foreground colours for syntax highlighting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find the default white background of most editors too glaring.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-23T03:23:11.500" />
  <row Id="14040" PostTypeId="2" ParentId="14033" CreationDate="2010-10-23T03:37:09.200" Score="2" ViewCount="" Body="&lt;p&gt;Post it on &lt;a href=&quot;http://news.ycombinator.com/&quot; rel=&quot;nofollow&quot;&gt;Hacker News&lt;/a&gt; - you'll get a lot of feedback.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastEditorUserId="1539" LastEditorDisplayName="" LastEditDate="2010-10-23T07:16:40.457" LastActivityDate="2010-10-23T07:16:40.457" CommentCount="1" />
  <row Id="14041" PostTypeId="2" ParentId="492" CreationDate="2010-10-23T03:54:47.227" Score="1" ViewCount="" Body="&lt;p&gt;I think it completely depends on what kind of programming that you do. Most of my work is bug-fixes and so it's usually just changing a few chars at a time, and many times it requires no typing whatsoever: copy-paste a line from point A to point B. Not saying I'm a copy/paste coder, but sometimes the right code is already there, it's just in reverse order.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I code something new, much of the code is generated from my &lt;a href=&quot;http://www.sparxsystems.com.au/products/ea/8/index.html&quot; rel=&quot;nofollow&quot;&gt;modeling application&lt;/a&gt; -- including comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, the coders that I've witnessed who can type fast aren't necessarily &lt;em&gt;good&lt;/em&gt; at typing. Sure, they can hit 20 wpm more than me, but they also have about 2x's as many bugs introduced by typos. Perhaps it's less of an issue in compiled langs, or maybe more of an issue since you have to compile more often than someone who gets it right the first time?&lt;/p&gt;&#xA;" OwnerUserId="1549" LastActivityDate="2010-10-23T03:54:47.227" CommunityOwnedDate="2011-03-20T20:58:56.467" />
  <row Id="14042" PostTypeId="2" ParentId="14009" CreationDate="2010-10-23T03:58:37.487" Score="0" ViewCount="" Body="&lt;p&gt;black background, white text&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Unix style ! &lt;/p&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-10-23T03:58:37.487" />
  <row Id="14043" PostTypeId="2" ParentId="13692" CreationDate="2010-10-23T04:31:43.657" Score="2" ViewCount="" Body="&lt;p&gt;At times it may just be the person is just not interested in what they are doing. Some people just need to find their niche.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One gal just would not/could not do the middle tier, back end or windows forms development. So we tasked her to spiff up the interface of a little used web app just to get her out of our hair. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;She did wonders for it. It ended up pretty and fast and intuitive. She became the best web interface developer we had. And she was about a week from being fired.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another developer sucked until they started doing end user testing. Couldn't really program but could find all kinds of bad interface design and worked really well because they knew programming enough to work with the developers and end users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My suggestion is to put your lazy developer on different tasks until you either exhaust the tasks available (then fire them) or find what they are good at within your organization.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-10-23T04:31:43.657" />
  <row Id="14044" PostTypeId="2" ParentId="14009" CreationDate="2010-10-23T04:53:20.720" Score="0" ViewCount="" Body="&lt;p&gt;Light text on dark backgrounds hurts my eyes.&lt;/p&gt;&#xA;" OwnerUserId="4222" LastActivityDate="2010-10-23T04:53:20.720" />
  <row Id="14045" PostTypeId="2" ParentId="14033" CreationDate="2010-10-23T05:01:41.957" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://openhatch.org/&quot; rel=&quot;nofollow&quot;&gt;OpenHatch&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4711" LastActivityDate="2010-10-23T05:01:41.957" />
  <row Id="14046" PostTypeId="2" ParentId="14033" CreationDate="2010-10-23T05:15:58.280" Score="0" ViewCount="" Body="&lt;p&gt;If above doesn't work, try posting it on your site and get some traffic by link exchange techniques. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;( Not sure if this works ) &lt;/p&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-10-23T05:15:58.280" />
  <row Id="14047" PostTypeId="1" AcceptedAnswerId="14062" CreationDate="2010-10-23T05:20:29.807" Score="6" ViewCount="298" Body="&lt;p&gt;I gave many interviews in the last few years and each time I found the interviewers are not satisfied with what I know. My first company only developed desktop Windows applications using .NET. They had nothing to do with features like: &lt;em&gt;Remoting&lt;/em&gt; etc. We also had limited use of &lt;em&gt;Generics&lt;/em&gt;, &lt;em&gt;Reflection&lt;/em&gt; and &lt;em&gt;Multi-threading&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I appeared for the interviews, I was asked questions on above features even when I told them that I don't have real-life experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now the .NET interviews are even more complex. Seeing my experience, the interviewers target the latest framework. I have no real-life exposure to the new features and technologies like WPF, WCF etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please suggest me how to effectively prepare for the .NET interview. I have 3 years experience in .NET but I only developed Windows based applications. At present I work on .NET Framework 3.5. I never worked on ASP.NET, as in my present company I work on PHP for web-applications.&lt;/p&gt;&#xA;" OwnerUserId="6001" LastEditorUserId="6001" LastEditorDisplayName="" LastEditDate="2010-10-23T05:40:14.963" LastActivityDate="2010-10-23T08:54:28.173" Title="How you prepared for your .NET interview?" Tags="&lt;career&gt;&lt;.net&gt;&lt;interview&gt;&lt;career-advice&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="14048" PostTypeId="2" ParentId="14047" CreationDate="2010-10-23T05:34:55.097" Score="5" ViewCount="" Body="&lt;p&gt;This is not meant to be a holistic answer, just to highlight a few points to get the ball rolling:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Know the core e.g. CLR, GAC, GC, OO etc&lt;/li&gt;&#xA;&lt;li&gt;Familiar with the language, syntax and features (C#, VB.NET minimal and their respective features e.g. C#3.0 vs C#2.0)&lt;/li&gt;&#xA;&lt;li&gt;Understand what your future company is doing. My company is still am doing v2.0 for some years to come, so 3.5/4.0 are nice to have but not mandatory. Some might be at the cutting edge, WCF/WF/Silverlight/Lamda etc&lt;/li&gt;&#xA;&lt;li&gt;Convince them that though you might not have experience, you can pick up new stuff quickly&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2262" LastActivityDate="2010-10-23T05:34:55.097" />
  <row Id="14049" PostTypeId="2" ParentId="4863" CreationDate="2010-10-23T06:23:31.580" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://code.google.com/p/anic/&quot; rel=&quot;nofollow&quot;&gt;ANI&lt;/a&gt;. An &quot;experimental, high-performance, implicitly parallel, deadlock-free general-purpose dataflow programming language&quot; that claims to be &quot;faster than C, safer than Java, simpler than *sh&quot;. I haven't tried it, but the implicitly parallel aspect of the language - where every line of code, conceptually, executes in parallel - seems incredibly interesting. I think the syntax is pretty ugly and am waiting to see some real applications built on the language before diving in.&lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-10-23T06:23:31.580" CommunityOwnedDate="2010-10-23T06:23:31.580" />
  <row Id="14050" PostTypeId="2" ParentId="492" CreationDate="2010-10-23T06:25:29.243" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Did you learn to touch-type when you were already working as a programmer? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No.  I still cannot touch type properly.  My fingers go all over the place, and I'm mostly two fingers on each hand, and not very accurate.  (I learned to type the hard way ... on an IBM 026 card punch in the 1970's.)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If so how did it affect your productivity? Or are you still unable to touch type and do you think it holds you back?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't think it holds me back.  Most of the time I'm thinking rather than typing.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-10-23T06:25:29.243" CommunityOwnedDate="2011-03-20T20:58:56.467" />
  <row Id="14051" PostTypeId="1" CreationDate="2010-10-23T06:27:44.933" Score="1" ViewCount="329" Body="&lt;p&gt;I've seen other questions ask about rates and payments in general, but I'm interested in developers or dba's who work with databases in areas such as database optimization and so on. I've seen some consultants charge $300/hour and I'm not sure if these advertised rates are usually upheld. &lt;/p&gt;&#xA;" LastActivityDate="2010-10-23T09:48:09.980" ClosedDate="2010-10-23T12:00:45.793" Title="How much do database developers charge per hour" Tags="&lt;pricing&gt;&lt;billing&gt;" AnswerCount="1" CommentCount="6" />
  <row Id="14052" PostTypeId="1" AcceptedAnswerId="14059" CreationDate="2010-10-23T06:46:58.233" Score="5" ViewCount="611" Body="&lt;p&gt;Have you come across a super programmer? What identifies him or her as such, compared to &quot;normal&quot; experienced/great programmers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also. how do you deal with a person in your team who believes he is a super programmer? Both in case he actually is or if he isn't?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: Interesting inputs all round, thanks. A few things can be gleaned:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few definitions emerged. Disregarding too localised definitions (that identified the authors or their acquaintance as super programmers), I liked a couple definitions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/14052/is-there-such-a-thing-as-a-super-programmer/14059#14059&quot;&gt;Thorbjørn's definition&lt;/a&gt;: a person who does the equivalent of a good team consistently for a long time.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Free Electron, linked from &lt;a href=&quot;http://programmers.stackexchange.com/questions/14052/is-there-such-a-thing-as-a-super-programmer/14395#14395&quot;&gt;Henry's answer&lt;/a&gt;. A very productive person, of exceptional abilities. The &lt;a href=&quot;http://www.randsinrepose.com/archives/2005/03/20/free_electron.html&quot; rel=&quot;nofollow&quot;&gt;explanation&lt;/a&gt; is a good read.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A Free Electron can do anything when it comes to code. They can write a complete application from scratch, learn a language in a weekend, and, most importantly, they can dive into a tremendous pile of spaghetti code, make sense of it, and actually getting it working. You can build an entire businesses around a Free Electron. They’re that good.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Contrasting with the last definition, is the point linked to by &lt;a href=&quot;http://programmers.stackexchange.com/questions/14052/is-there-such-a-thing-as-a-super-programmer/15017#15017&quot;&gt;James&lt;/a&gt; about the myth of the genius programmer (&lt;a href=&quot;http://www.google.com/events/io/2009/sessions/MythGeniusProgrammer.html&quot; rel=&quot;nofollow&quot;&gt;video&lt;/a&gt;). The same idea is expressed as &lt;a href=&quot;http://www.codinghorror.com/blog/2006/05/egoless-programming-you-are-not-your-job.html&quot; rel=&quot;nofollow&quot;&gt;egoless programming&lt;/a&gt; in rwong's comment. They present opposite opinions as whether to optimise for such a unique programmer or for a team.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;These definitions are definitely different, so I would appreciate it if you have an input as to which is better. Or add your own if you want of course, though it would help to say why it is different from those.&lt;/p&gt;&#xA;" OwnerUserId="6184" LastEditorUserId="6184" LastEditorDisplayName="" LastEditDate="2010-10-27T14:06:22.717" LastActivityDate="2010-10-27T14:06:22.717" Title="Is there such a thing as a super programmer?" Tags="&lt;productivity&gt;&lt;experience&gt;&lt;great-programmer&gt;" AnswerCount="9" CommentCount="6" FavoriteCount="1" />
  <row Id="14053" PostTypeId="2" ParentId="1018" CreationDate="2010-10-23T07:08:01.170" Score="1" ViewCount="" Body="&lt;p&gt;Mechanical engineering, then doing calculations on pen and paper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without computer, mechanical engineering would be a labor-intensive job and potentially good for out-sourcing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of TopCoder we'll see something like TopHydraulics?&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-23T07:08:01.170" />
  <row Id="14054" PostTypeId="2" ParentId="7747" CreationDate="2010-10-23T07:25:07.267" Score="2" ViewCount="" Body="&lt;p&gt;BASIC's &lt;code&gt;GOTO&lt;/code&gt; is a great way to teach the way of &lt;em&gt;thinking in assembly language&lt;/em&gt;. It does not mutilate one's mind, it only brings one's mind further away from carbon-based synapses and closer to silicon-based transistors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, let's compare BASIC to LOGO. BASIC can turn young kids away from programming, because to write a simple fun program, all you could do is keep copy-typing a very, very long program printed on a magazine, whereas with LOGO a one-liner can draw very impressive graphics, which is essential in attracting kids.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-23T07:25:07.267" CommunityOwnedDate="2011-01-20T21:00:13.020" />
  <row Id="14055" PostTypeId="2" ParentId="14052" CreationDate="2010-10-23T07:31:41.077" Score="2" ViewCount="" Body="&lt;p&gt;Ask the person to write a chapter of himself/herself in the &lt;a href=&quot;http://www.codersatwork.com/&quot; rel=&quot;nofollow&quot;&gt;Coders at Work&lt;/a&gt; style. Submit it to a publisher. If it gets rejected, then the person is not a super programmer.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-23T07:31:41.077" CommentCount="6" />
  <row Id="14056" PostTypeId="2" ParentId="14028" CreationDate="2010-10-23T08:17:33.003" Score="2" ViewCount="" Body="&lt;p&gt;If I'm doing something at the edge of my abilities then any noise is bad, but &lt;strong&gt;speech&lt;/strong&gt; is 1000x worse than anything else. Plain hearing (not actively listening to) speech activates certain parts of your brain, want it or not, and those parts also seem to be necessary for serious concentration. The funny thing is that the less the number of talking people, the more distracting is the talk. If there's just one person talking, it's virtually impossible to not get your attention drawn by that. If there are ten or hundred talkers, then it's not that bad because their words mask each other, even if the total physical noise level is higher.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, &lt;em&gt;continuous&lt;/em&gt; exposure to background noise, even if relatively quiet, has been proved to be bad to health in the long term. Apparently it increases stress hormone release (again: want it or not), and while temporarily harmless, prolonged raised cortisol levels are disastrous to cardiovascular health.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-12-04T08:34:23.193" LastActivityDate="2010-12-04T08:34:23.193" CommunityOwnedDate="2011-05-22T12:09:23.967" />
  <row Id="14057" PostTypeId="2" ParentId="486" CreationDate="2010-10-23T08:17:45.627" Score="0" ViewCount="" Body="&lt;p&gt;I'd say my own little side project. (niche-search-engine for clothes brands in Belgium) &lt;a href=&quot;http://www.fashiongrabber.com&quot; rel=&quot;nofollow&quot;&gt;http://www.fashiongrabber.com&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learned asp.net mvc with it a few years ago, and a lot of other techniques.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Earned 0€ so far on it, but nonetheless the most exciting project to work on because it's close to me.&lt;/p&gt;&#xA;" OwnerUserId="6191" LastActivityDate="2010-10-23T08:17:45.627" />
  <row Id="14058" PostTypeId="2" ParentId="14028" CreationDate="2010-10-23T08:41:35.177" Score="10" ViewCount="" Body="&lt;p&gt;Noise, yes. Talking, no.&lt;/p&gt;&#xA;" OwnerUserId="6194" LastActivityDate="2010-10-23T08:41:35.177" CommunityOwnedDate="2011-05-22T12:09:23.967" />
  <row Id="14059" PostTypeId="2" ParentId="14052" CreationDate="2010-10-23T08:42:59.903" Score="11" ViewCount="" Body="&lt;p&gt;I would consider the term &quot;super programmer&quot; only for those who can do work that usually requires a team of good programmers, and do it &lt;em&gt;consistently&lt;/em&gt; for a long time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This goes both for writing high quality code (documentation, tests etc) and solving very difficult problems requiring a lot of knowledge and talent to solve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it requires a high performance on all accounts for a long time.  For those who write tons of code nobody can understand and maintain, the term is not applicable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How to deal with?  If you truly have such a person then do all you can to provide the scaffolding needed for the person to excel.  This means moving irrelevant stuff out of the way, and provide the resources the person needs.  Please note that I've found that very high performers tend to be humble.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is, unfortunately, much more likely that you have a person who thinks he is a super programmer and isn't.  The way to deal with those is in my experience to make their performance measurable.  &quot;FindBugs may not find any problems&quot;, &quot;All code must have tests corresponding to the use cases&quot;, &quot;Peer review&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the code is truly hard to understand, consider weekly meetings where the super programmer explains any code the code he's written since the last meeting that anybody can request &lt;em&gt;anonymously&lt;/em&gt; to have explained, and anybody can reject &lt;em&gt;anonymously&lt;/em&gt; to have accepted in the code base for it to be unmaintainable.  Then at least you have shared the mindset and allowed for future maintainers to veto a piece of code.  This will also strongly indicate to the programmer which kind of code will trigger him having to do extra work.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-23T08:42:59.903" CommentCount="11" />
  <row Id="14060" PostTypeId="2" ParentId="14052" CreationDate="2010-10-23T08:43:12.270" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Have you come across a super programmer? What identifies him or her as such&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;From the &lt;strong&gt;programs/projects that have create&lt;/strong&gt;, the source code of it, the study that have done.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;believes he is a super programmer&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;As you say he believes it, this is very difficult to make him not to believe it. The worst think is that that person have been stop to be better programmer because he is think that is all ready is super, and he stop the evolution of him. What worse than that in programming. Anyway, you can always ask for proof... and ask him with whom he/she compare him self to make the assumption that he/she is super.&lt;/p&gt;&#xA;" OwnerUserId="1397" LastActivityDate="2010-10-23T08:43:12.270" />
  <row Id="14061" PostTypeId="2" ParentId="14028" CreationDate="2010-10-23T08:46:46.210" Score="6" ViewCount="" Body="&lt;p&gt;I find music better than &quot;silence&quot;.  Maybe that's because real silence is so rare .. there are always snatches of distant conversation, the ticking of a machine somewhere, a car horn in the distance, a bird outside -- something to activate that part of your brain that probably was designed to let you sleep in a jungle and wake up when something is trying to sneak up on you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that music gives that watchful, alert part of the mind something to listen to and keeps it just busy enough that it doesn't keep interrupting me.  But it does have to be the right music, and what that is seems to vary from week to week.  Something I keep coming back to is ambient drone or wall-of-static type music.  Try the last.fm stream for Aix Em Klemm or PanAmerican for examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, occasionally if I really get into it I can sit in a room full of shouting kids and a TV and work, suddenly realising that my wife has been talking to me for 30 seconds without my noticing and is now really pissed off.&lt;/p&gt;&#xA;" OwnerUserId="6193" LastActivityDate="2010-10-23T08:46:46.210" CommunityOwnedDate="2011-05-22T12:09:23.967" CommentCount="1" />
  <row Id="14062" PostTypeId="2" ParentId="14047" CreationDate="2010-10-23T08:54:28.173" Score="3" ViewCount="" Body="&lt;p&gt;Even at a junior level, if someone has been using .net 3.5 then I would certainly expect them to be comfortable using generics. At a more intermediate level I would expect at least &lt;em&gt;some&lt;/em&gt; knowledge of reflection and multi-threading.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my first piece of advice is, if you want to progress your skills in programming then you must devote at least a little bit of your own time to learning and keeping up with current developments in the field. I'm not talking about cutting edge stuff here - if you're a good programmer and have been using .net 2+ for a significant amount of time if you're not comfortable with generics by now then it tells me you're not keeping your skills up to date at all. This applies if, as in your case, you don't have the opportunity to learn in the workplace but also if you're lucky enough to be somewhere where skills development is valued. You can get this knowledge by reading books, blogs and by supplementing that knowledge by applying it to some personal/open source projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My second piece of advice is, if you have a lot of experience with windows apps and you want to join a company that is doing web development then you should understand that you're looking at what is potentially a very different job despite it having .net in common. So, either apply for jobs where your current experience is going to be valuable, or gain the skills in those areas (see above) before applying, or accept that you're going to be applying for potentially more junior jobs than if you were applying for windows app development roles and treat it as a stepping stone to a more senior position.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-23T08:54:28.173" CommentCount="3" />
  <row Id="14063" PostTypeId="2" ParentId="14052" CreationDate="2010-10-23T08:58:45.713" Score="2" ViewCount="" Body="&lt;p&gt;I think you can get great programmers but only teams composed of great programmers can be super.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-23T08:58:45.713" CommentCount="2" />
  <row Id="14064" PostTypeId="2" ParentId="14051" CreationDate="2010-10-23T09:48:09.980" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.payscale.com/research/US/Job=Senior_Database_Administrator_%28DBA%29/Hourly_Rate&quot; rel=&quot;nofollow&quot;&gt;Payscale&lt;/a&gt; says a DBA with &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;1-4   years experience gets $15-50 USD per hour&#xA;5-9   yrs exp               $35-65&#xA;10-19 yrs exp               $50-75&#xA;20+   yrs exp               $45-85&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But I believe the data is further broken down by factors like location, education, certifications, employer type, company size, etc. So I'd try narrowing down what you're looking for over there.&lt;/p&gt;&#xA;" OwnerUserId="4128" LastActivityDate="2010-10-23T09:48:09.980" />
  <row Id="14065" PostTypeId="2" ParentId="13721" CreationDate="2010-10-23T10:28:42.890" Score="1" ViewCount="" Body="&lt;p&gt;You could try to enhance your question... But, trying to help, you could search for some opensource CMS tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You tagged you question with asp.net, so search for DotNetNuke. But personally I recommend Drupal. Joomla is a very nice tool too (both uses PHP).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These tools have great themes (desing) for free and paid. They also have add, edit, search and delete CONTENT capabilities (I didn't understood what do you want to do with tables...).&lt;/p&gt;&#xA;" OwnerUserId="6199" LastActivityDate="2010-10-23T10:28:42.890" />
  <row Id="14066" PostTypeId="1" AcceptedAnswerId="14070" CreationDate="2010-10-23T10:29:37.367" Score="3" ViewCount="196" Body="&lt;p&gt;I had this doubt since a long time , having enclosed in CV the experience or knowledge of technologies that are 'anti' to each other or rivals in real world. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For e.g. -  A guy having &lt;a href=&quot;http://www.redhat.com/certification/rhce/&quot; rel=&quot;nofollow&quot;&gt;RHCE&lt;/a&gt; certification &lt;strong&gt;and&lt;/strong&gt; &lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/mcse.aspx&quot; rel=&quot;nofollow&quot;&gt;MCSE&lt;/a&gt; certification will be preferred or rejected at sight ? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my view - he is having experience of both technologies so I'd prefer this guy &lt;code&gt;but  I've heard that&lt;/code&gt; people with this kind of CV are considered like- they didnt had it in their mind &quot; What they want to do in future, What are their interests &quot; etc etc ...&lt;/p&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-10-23T13:38:29.700" Title="Is it a bad practice having experience of anti-technologies ?" Tags="&lt;cv&gt;" AnswerCount="3" />
  <row Id="14067" PostTypeId="2" ParentId="12861" CreationDate="2010-10-23T10:30:08.847" Score="1" ViewCount="" Body="&lt;p&gt;Because if the &quot;system&quot; is a scientific library or a go playing program it might require top performances, that's why. If you buy hardware that's 10 times faster, the low level implementation will still perform better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then there's a quite philosophic reason, in my opinion: we have to keep in touch with the lowest level of our machines. Losing the knowledge of basic instruments like the C language would be like covering every inch of the earth with cement and build a perfectly working &quot;system&quot; upon it, forgetting about what was down there once that gave us birth and condemning the human race to eternal ignorance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Kernighan and Ritchie would be very upset about it. &lt;/p&gt;&#xA;" OwnerUserId="5936" LastActivityDate="2010-10-23T10:30:08.847" />
  <row Id="14068" PostTypeId="2" ParentId="2815" CreationDate="2010-10-23T10:35:55.247" Score="2" ViewCount="" Body="&lt;p&gt;It'll be nice if type inference is extended to collection initializers. So that instead of writing the code like following:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var dict = new Dictionary&amp;lt;int, List&amp;lt;string&amp;gt;&amp;gt; {&#xA;  {1, new List&amp;lt;string&amp;gt; {&quot;ek&quot;, &quot;one&quot;, &quot;ooga&quot;}},&#xA;  {2, new List&amp;lt;string&amp;gt; {&quot;don&quot;, &quot;two&quot;, &quot;bira&quot;}}&#xA;};&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I could just write:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var dict = new Dictionary {&#xA;  {1, new List {&quot;ek&quot;, &quot;one&quot;, &quot;ooga&quot;}},&#xA;  {2, new List {&quot;don&quot;, &quot;two&quot;, &quot;bira&quot;}}&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-10-23T10:35:55.247" CommunityOwnedDate="2010-10-23T10:35:55.247" CommentCount="3" />
  <row Id="14069" PostTypeId="1" CreationDate="2010-10-23T10:38:28.973" Score="8" ViewCount="218" Body="&lt;p&gt;I have graduated this year and got my first job involved with C programming, Linux administration and embedded systems development. I feel quite content with my job, but I'm afraid I won't become a successful programmer in this field. I'm a lone developer on my job now, with my teammates being hardware experts, there is no one to guide me or teach me in the ways of embedded programming, I have to study all on my own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So here are my questions. Is it possible to become a good embedded systems developer starting from an entry level position without any supervision by senior programmers? How could I become one (perhaps with the help of forums, IRC channels, good textbooks)? How long would it take?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; So far, I have received a handful of helpful answers, but I realized that I need some specific pointers on the subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, here are my particular questions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What are some good textbooks one can use to learn embedded development?&lt;/li&gt;&#xA;&lt;li&gt;What specialized online communities can be helpful for an aspiring embedded developer (not counting general stuff like Stack Overflow, Reddit and so on)?&lt;/li&gt;&#xA;&lt;li&gt;What are the most interesting blogs dedicated to embedded development?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6198" LastEditorUserId="6198" LastEditorDisplayName="" LastEditDate="2010-10-24T13:37:20.117" LastActivityDate="2010-10-24T13:37:20.117" Title="Learning embedded systems development without supervision" Tags="&lt;learning&gt;&lt;career&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="14070" PostTypeId="2" ParentId="14066" CreationDate="2010-10-23T11:18:01.043" Score="6" ViewCount="" Body="&lt;p&gt;It depends on who is hiring, and since it's usually impossible to determine its profile before talking with him, it's more like a guess...&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multiple certifications/experience = bad&lt;/strong&gt;: You are right when you say that a guy with multiple technologies and certifications can be seen as a someone not very stable.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multiple certifications/experience = good&lt;/strong&gt;: However, the same guy can be seen by other as a very good choice thanks to its extended experience and open mind.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It is a very personnal consideration, and therefore you can't generalize here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FYI, I'm the kind of guy that will hire based on the second observation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The good news&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You prefer to be hired by the second one isn't, the one that will value your multiple experience ? Being hired by the first one will usually means they had no alternative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So how to give you more change to be hired by someone that will consider what you are, rather than taking you as an alternative (with plan to replace you as soon as they get their expert)?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Be yourself in your resume&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-23T11:18:01.043" CommentCount="1" />
  <row Id="14071" PostTypeId="2" ParentId="14066" CreationDate="2010-10-23T11:23:15.060" Score="0" ViewCount="" Body="&lt;p&gt;I've seen several jobs requirements looking for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;sql server and oracle&lt;/li&gt;&#xA;&lt;li&gt;windows and mac&lt;/li&gt;&#xA;&lt;li&gt;windows servers and linux&lt;/li&gt;&#xA;&lt;li&gt;C sharp and java&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It's amazing the combinations they put together and a miracle they ever find anyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you imagine: Wanted LAMP developer with absolutely no exposure to windows.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-23T11:23:15.060" CommentCount="5" />
  <row Id="14072" PostTypeId="2" ParentId="14069" CreationDate="2010-10-23T11:26:34.320" Score="2" ViewCount="" Body="&lt;p&gt;You are right that being in your case will make things little bit harder. However there are many solutions to solve your issue.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;First try to &lt;strong&gt;participate to communities&lt;/strong&gt; like this one, but maybe more specialized in your field. By participating, you will increase your knowledge, and more importantly, meet other people.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Try to &lt;strong&gt;participate to code camps&lt;/strong&gt;, or any initiative where you meet other developers like you in real. It's easier to share knowledge when you have the person in front of you.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Ask your boss to book you at least &lt;strong&gt;10 days of training a year&lt;/strong&gt;. No need to explain the advantages here, if he refuses, he is stupid.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Try to &lt;strong&gt;go to 1 to 2 conference or trade show&lt;/strong&gt; related to your business.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Try to &lt;strong&gt;read a technical book every two months&lt;/strong&gt;. If you can read more, don't hesitate.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Get a mentor&lt;/strong&gt;. It's not the easiest thing to achieve of course.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Reserve some time in the week to &lt;strong&gt;experiment and do research &amp;amp; development&lt;/strong&gt;, by trying new technologies of things you read in your books, community, trade shows, trainings, etc... Taking the time to practice what you have learn is VERY important.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Today you are the only developer, but thanks to your hard work, the company you are in will grow, and will probably &lt;strong&gt;need to hire more people of your kind&lt;/strong&gt;. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-23T11:44:27.207" LastActivityDate="2010-10-23T11:44:27.207" />
  <row Id="14074" PostTypeId="2" ParentId="14069" CreationDate="2010-10-23T11:48:42.940" Score="1" ViewCount="" Body="&lt;p&gt;It mostly depends on yourself. If you are intelligent enough, willing to learn and know how gather enough information on the subject you can teach yourself anything. But not all people are equally succesfull in doing that:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started in a similar environment, and if I see where I am now as opposed to 5 years ago (graduated as electronics engineer, practically no programming background), I find it amazing what the human brain is capable of. When I started I had never heard of design patterns, TDD, ... and had never seen the code of a real program. Now I know these things pretty well, and know how to use them. The only thing I do is searching the net, reading code from others and some books (which again, I found on the net), and most important, write tons of code, debug, learn from my mistakes. Learning from a mistake is imo a much much better way to learn something as opposed to just reading a sample and replicating behaviour. It's very strange, but I have only talked in real life to what I'd call a good programmer a couple of times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only other programmer here is what you'd call a senior (because he's been on the job for 15+ years). He works in a completely different way than I do. And he's still writing a crippled form of C with classes, never uses STL, has no idea what a design pattern is etc etc (I'm probably going to start a question on this matter soon, I'm having a hard time trying to get him to adopt at least some of my methods..) &lt;/p&gt;&#xA;" OwnerUserId="3660" LastActivityDate="2010-10-23T11:48:42.940" />
  <row Id="14075" PostTypeId="2" ParentId="8297" CreationDate="2010-10-23T11:49:13.983" Score="0" ViewCount="" Body="&lt;p&gt;A customer wants to pay little for a lot isn't going to pay more just because you write up a large set of requirments and get them to sign a contract. They will always come back and want it changed without paying. They'll claim they misunderstood the spec or better yet, you misinterpreted. They will demand changes knowing you won't push back. This is a bad relationship that you don't want to keep going. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you break up a large project, and get them to pay as you go, it is easier to see that this amount of development costs this amount of money. The next componenent is going to cost the same amount and take the same amount of time to build. When it is all together in a large project, they'll want to get some sort of &quot;bulk&quot; discount. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've hired someone to do work on my home. Started with a small project. Maybe I could have negotiated a better price by bundling a bunch of jobs together, but what do I do when he's in the middle of 3 projects, doing a poor job and taking longer than expected? I saw the quaility and timeliness of his work. And felt very comfortable having him to other jobs and I didn't have to monitor him. You could have a much better relationship with your clients. They may ask for more because they may feel you're taking advantage of them.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-23T11:49:13.983" />
  <row Id="14078" PostTypeId="2" ParentId="14066" CreationDate="2010-10-23T11:52:47.600" Score="4" ViewCount="" Body="&lt;p&gt;It depends on the role and how it's advertised.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Depth not breadth&lt;/strong&gt;. If it seems that the company is after a very specific skill set then it might be worth de-emphasising certain parts of your CV. Don't omit experience, but perhaps don't mention irrelevant certifications etc. (unless directly asked). This will indicate that you've concentrated on gaining an in depth knowledge of your chosen skills, which is what they are after.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Breadth not depth&lt;/strong&gt;. If the company is after a more general skill set then mentioning everything you've done will show that you are a &quot;well rounded individual&quot; who's not afraid to try new things and can apply your knowledge to new areas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So - tailor your CV to the job being advertised, but as &lt;a href=&quot;http://programmers.stackexchange.com/questions/14066/is-it-a-bad-practice-having-experience-of-anti-technologies/14070#14070&quot;&gt;@Pierre&lt;/a&gt; points out be yourself and &lt;strong&gt;don't lie&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-10-23T13:38:29.700" LastActivityDate="2010-10-23T13:38:29.700" CommentCount="6" />
  <row Id="14079" PostTypeId="2" ParentId="12861" CreationDate="2010-10-23T11:58:12.927" Score="1" ViewCount="" Body="&lt;p&gt;Some observations:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The huge trend in computing is mobile, which from several aspects is not far from microcontroller and embedded system development. Python is not yet the dedicated language for iOS, Android or Windows Phone 7.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;In desktop computing, getting faster hardware is more and more difficult: CPU speed is stuck aroud 3GHz and getting all the power of multiple cores is far from easy. Low level languages have an advantage over Python here.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;About maintainability, the 10:1 ratio may be true with just-graduated people who have never been exposed to C but know Python and Ruby and all other new languages. For the majority of senior developers, the ratio doesn't favour Python.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Some years ago, everything could be made in Java and be portable at the same time. Some years before, it was Perl. Clearly the actual winners these days are C, C++, C# and Objective-C.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1033" LastEditorUserId="1033" LastEditorDisplayName="" LastEditDate="2010-10-23T12:43:05.373" LastActivityDate="2010-10-23T12:43:05.373" CommentCount="1" />
  <row Id="14082" PostTypeId="2" ParentId="12861" CreationDate="2010-10-23T12:19:13.183" Score="3" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;Yup! Python is great.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/6aIWc.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;But for some things you still need ...&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/SzFny.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-23T12:19:13.183" />
  <row Id="14083" PostTypeId="2" ParentId="14028" CreationDate="2010-10-23T12:28:09.520" Score="2" ViewCount="" Body="&lt;p&gt;Most full-time positions I've had have been in open plan working environments, which I find to be a very distracting situation. I can zone out background conversation, but when it's about the same project I'm working on it's too easy to start focussing on it, or even joining in. Similarly I find I get distracted by my colleagues' phones ringing, or people entering the room to see someone else. After all, they're entering &quot;my office&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like other people I don't find music to be a problem. Interestingly I can listen to radio comedy and technical podcasts without being interrupted, too. I suppose it might be because those are happening on my terms.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-10-23T12:28:09.520" CommunityOwnedDate="2011-05-22T12:09:23.967" />
  <row Id="14084" PostTypeId="2" ParentId="13958" CreationDate="2010-10-23T12:40:31.320" Score="0" ViewCount="" Body="&lt;p&gt;I've seen projects where requirements changes are managed by a very heavyweight change control system. This is bad. Many important changes do not happen because the customer does not want to go through the hassle of submitting a change control, so the software doesn't match their needs. Some small changes get slipped in &quot;under the radar&quot; to avoid the process, so the software doesn't even match what you think it does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Conversely, I've also seen projects where the project manager thinks &quot;reactive&quot; means getting the coders to respond to every request from the users, which just means you never get any core development done and your code becomes a big unwieldy mess of hack atop hack. Essentially you now don't have any developers, you have a team of overqualified sales engineers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So one might hope there's a situation between these two poles that works well, and I expect that what works best for you is both a personal choice and situated. There's definitely value in capturing the cost of each change. In a framework like Scrum you can express the cost in story points, and the team can trade off the work they do in each iteration versus the total available effort. If you have a product manager you can get that person to quantify the expected benefit of a change or feature request. This is usually done in terms of protected revenue (how many customers would leave if you didn't do this) and attracted revenue (how many customers will arrive if you do do this). That can help with prioritisation, but can also just reflect the bias or personal preference of the product manager.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-10-23T12:40:31.320" />
  <row Id="14086" PostTypeId="2" ParentId="7859" CreationDate="2010-10-23T13:03:14.240" Score="0" ViewCount="" Body="&lt;p&gt;Scotty from iDeveloper.tv did a talk at nsconference mini about XP for the solo developer, I think you can buy the video from the website and I recommend that as an overview of the key features of agile development and how/when/if they make sense for one-person shops.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastEditorUserId="19" LastEditorDisplayName="" LastEditDate="2010-10-25T14:26:32.950" LastActivityDate="2010-10-25T14:26:32.950" CommentCount="4" />
  <row Id="14087" PostTypeId="2" ParentId="14028" CreationDate="2010-10-23T13:11:55.990" Score="2" ViewCount="" Body="&lt;p&gt;I heard a line somewhere which goes like the following:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;The city never sleeps, you should learn to tune out the noise.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After working in a noisy environment for a while, I have learned to convert the noise into background sound.  If that doesn't work, you can still hang out at stackoverflow or programmers stackexchange until the noise subsides.&lt;/p&gt;&#xA;" OwnerUserId="5968" LastActivityDate="2010-10-23T13:11:55.990" CommunityOwnedDate="2011-05-22T12:09:23.967" />
  <row Id="14089" PostTypeId="1" CreationDate="2010-10-23T13:32:00.063" Score="4" ViewCount="76" Body="&lt;p&gt;Hi guys,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you write wrappers for APIs how do you handle usage errors?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you assume that the user uses it right and write the wrapper such that it makes the call to the server and let the server return the error?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or do you check for the missing parameters and return an error? If yes, how do you convey the error? a string or an error code?&lt;/p&gt;&#xA;" OwnerUserId="2728" LastActivityDate="2010-10-24T08:35:57.493" Title="When you write wrappers for APIs how do you handle usage errors?" Tags="&lt;programming&gt;" AnswerCount="2" />
  <row Id="14090" PostTypeId="2" ParentId="13623" CreationDate="2010-10-23T13:33:16.107" Score="0" ViewCount="" Body="&lt;p&gt;Yes, of course! And making them working using only a sheet of paper and a pencil will effect in ever more efficient code (and obviously more portable). Of course, only if pencils aren't too sharp.  &lt;/p&gt;&#xA;" OwnerUserId="5351" LastActivityDate="2010-10-23T13:33:16.107" CommunityOwnedDate="2010-10-23T13:33:16.107" />
  <row Id="14091" PostTypeId="2" ParentId="14033" CreationDate="2010-10-23T13:35:30.757" Score="2" ViewCount="" Body="&lt;p&gt;How about a Wikipedia page that is directly topically related to what your software does?  I have a simulation library that supplies routines for studying genetics, so I put a link on the page for &quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Linkage_disequilibrium#Simulation_software&quot; rel=&quot;nofollow&quot;&gt;linkage disequilibrium&lt;/a&gt;,&quot; since my software allows you to model it.&lt;/p&gt;&#xA;" OwnerUserId="1935" LastActivityDate="2010-10-23T13:35:30.757" CommentCount="1" />
  <row Id="14092" PostTypeId="1" AcceptedAnswerId="14101" CreationDate="2010-10-23T13:41:58.170" Score="8" ViewCount="195" Body="&lt;p&gt;While looking for a job via agencies some time ago, I kept having questions from the recuitment agents or in the application forms like:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How many years of experience do you have in:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Oracle&lt;/li&gt;&#xA;&lt;li&gt;ASP.NET&lt;/li&gt;&#xA;&lt;li&gt;J2EE etc etc etc....&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;At first I answered faithfully... 5yrs, 7yrs, 2 yrs, none, few months etc etc.. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I thought; I can be doing something shallow for 7 years and not being competent at it simply because I am just doing a minor support for a legacy system running SQL2000 which requires 10 days of my time for the past 7 years. Eventualy I declined to answers such questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wonder why do they ask these questions anymore. Anyone who just graduated with a computer science can claim 3 to 4 years experience in anything they 'touched' in the cirriculum, which to me can be equivalent to zero or 10 years depending how you look at it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might hold true decades ago where programmers and IT skills are of very different nature. I might be wrong but I really doubt 'time' or 'years' are a good gauge of competency or experience anymore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any opinion/rebuttal are welcome!&lt;/p&gt;&#xA;" OwnerUserId="2262" LastActivityDate="2010-10-23T19:12:27.453" Title="How do you quantify competency in terms of time (years)?" Tags="&lt;jobs&gt;&lt;skills&gt;&lt;resume&gt;&lt;competence&gt;" AnswerCount="4" />
  <row Id="14093" PostTypeId="1" AcceptedAnswerId="14097" CreationDate="2010-10-23T13:47:18.020" Score="1" ViewCount="155" Body="&lt;p&gt;I dropped out of college half way through my final year due to personal reasons. I have 6 modules to repeat but unfortunately I cant afford to go back and finish them for at least another year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Im wondering if i put this down on my resume will it pass the HR filter?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Bachelor of Science in Computing in Software Development&#xA;2007 - present&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6208" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-10-23T15:34:39.037" LastActivityDate="2010-10-23T15:34:39.037" Title="Will a degree in progress get past the HR filter?" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="3" />
  <row Id="14094" PostTypeId="2" ParentId="14089" CreationDate="2010-10-23T13:50:09.037" Score="1" ViewCount="" Body="&lt;p&gt;Think &lt;code&gt;wrapper&lt;/code&gt; vs &lt;code&gt;adapter&lt;/code&gt; vs &lt;code&gt;bridge&lt;/code&gt; from a design pattern point of view. You might have a new perspective and find your answer from there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;E.g. &lt;a href=&quot;http://weblogs.foxite.com/andykramek/archive/2007/01/07/3096.aspx&quot; rel=&quot;nofollow&quot;&gt;Adapters and Wrappers&lt;/a&gt; from Andy Kramek and lots more if you google.&lt;/p&gt;&#xA;" OwnerUserId="2262" LastActivityDate="2010-10-23T13:50:09.037" />
  <row Id="14095" PostTypeId="2" ParentId="14093" CreationDate="2010-10-23T13:52:04.410" Score="0" ViewCount="" Body="&lt;p&gt;It's certainly better than nothing but it will depend on company policies whether they hire drop-outs.&lt;/p&gt;&#xA;" OwnerUserId="2612" LastActivityDate="2010-10-23T13:52:04.410" />
  <row Id="14096" PostTypeId="2" ParentId="14033" CreationDate="2010-10-23T13:53:32.137" Score="3" ViewCount="" Body="&lt;p&gt;Get it announced on Freshmeat.  Also, remember to get to a usable state or people will only use it once and keep that impression forever...&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-23T13:53:32.137" CommentCount="1" />
  <row Id="14097" PostTypeId="2" ParentId="14093" CreationDate="2010-10-23T13:54:04.420" Score="10" ViewCount="" Body="&lt;p&gt;As mentioned in other answers about CV - &lt;strong&gt;don't lie&lt;/strong&gt;. It &lt;em&gt;will&lt;/em&gt; come back and bite you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be honest about the fact that you haven't completed your degree - you don't have to give all the details - and that you are going to finish and when.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I assume that you want a job that will earn you enough money so you can go back and complete your degree. You need to tell a prospective employer this. They may even allow you to carry on working for them part time while you are back at college, but you won't know if you don't ask.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-23T13:54:04.420" CommentCount="2" />
  <row Id="14098" PostTypeId="1" AcceptedAnswerId="14104" CreationDate="2010-10-23T14:01:56.610" Score="7" ViewCount="300" Body="&lt;p&gt;Before you start coding something, how do you prepare yourself? &#xA;Do you make diagrams, pseudocode, mockups or any of that kind of stuff or you just start coding and see what comes along the way. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I prefer to jump into the code as fast as possible when I am comfortable doing what I have to do. If something is more complicated or a problem occurs, I normally take a sheet of paper and start writing pseudocode down since I have less trouble concentrating that way (I guess that's kinda weird and hard to explain, but whatever...It works!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess everybody has there own strategy, so what's yours?&lt;/p&gt;&#xA;" OwnerUserId="5386" LastActivityDate="2010-11-07T16:48:35.523" Title="How do you prepare yourself before you start coding?" Tags="&lt;productivity&gt;&lt;work-environment&gt;&lt;self-improvement&gt;&lt;coding&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="2" />
  <row Id="14099" PostTypeId="2" ParentId="14092" CreationDate="2010-10-23T14:05:28.323" Score="6" ViewCount="" Body="&lt;p&gt;You have raised a very good question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to convey several pieces of information:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;How long have you being using the technology.&lt;/li&gt;&#xA;&lt;li&gt;What skill level you feel you are at.&lt;/li&gt;&#xA;&lt;li&gt;When you last used the technology.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Unfortunately most recruiters just look for a single figure so that they can rank candidates and only send those that hit a &quot;score&quot; along to the prospective employer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to say something like:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;1997 - 2004, developed 3D toolset and desktop applications using C and C++/MFC with Visual Studio 6.0&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This conveys all the above information, but doesn't fit in most forms.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-23T14:05:28.323" CommentCount="1" />
  <row Id="14100" PostTypeId="2" ParentId="14093" CreationDate="2010-10-23T14:06:54.590" Score="4" ViewCount="" Body="&lt;p&gt;As for your specific line in the resume, I would suggest this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Bachelor of Science in Computing in Software Development&#xA;Expected completion date: Spring 2011&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Here, you are being a little more clear.  If you just say &quot;Present&quot;, then you are being honest, but they may have no idea how fast you're working on it, or when you'll be done and can focus full-time on the job they hire you for.  Adding your expected completion date will give HR a better idea of where you are in it.  Rely on your other experience to carry you over this.  If you're still worried, but feel your classes still make a difference, like for a programming jobs involving lots of webservices or something, try this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Bachelor of Science in Computing in Software Development&#xA;Expected completion date: Spring 2011&#xA;Relevant Classes:&#xA;     Computer Networking&#xA;     Algorithms&#xA;     Software Testing&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This shows your employer that you've taken more than just gen-ed classes and have made some headway into the parts that further your software development prowess, which is what they're looking for in a  degree anyway.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-23T14:06:54.590" />
  <row Id="14101" PostTypeId="2" ParentId="14092" CreationDate="2010-10-23T14:10:15.767" Score="6" ViewCount="" Body="&lt;p&gt;I agree, this measure of competence is meaningless.  However, I am guessing that most recruiters do not know that.  They simply try to match your resume to the job description as best they can.  If the job ad says &quot;10 years of experience with Oracle&quot;, then your resume may be rejected if it only lists 5 years, even if in those 5 years you have become an expert.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice is to answer these questions the way you did initially, to get past the initial resume filter.  At the same time, look carefully at the job description yourself, and try to gauge if it is really a good match for your skills. &lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-23T14:10:15.767" CommentCount="2" />
  <row Id="14102" PostTypeId="1" AcceptedAnswerId="14111" CreationDate="2010-10-23T14:31:41.223" Score="2" ViewCount="615" Body="&lt;p&gt;Many times searching for programming jobs in USA I run on this: &quot;Must be authorized to work in the United States on a full-time basis for any employer.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can someone explain what does it mean exactly? For example if I am living outside USA and want to work there what I have to do to in order to be authorized to work? What kind of visa do I need and can company that I'm applying for do that for me?&lt;/p&gt;&#xA;" OwnerUserId="6211" LastEditorUserId="6211" LastEditorDisplayName="" LastEditDate="2010-10-23T17:59:12.113" LastActivityDate="2010-10-23T18:34:59.073" ClosedDate="2010-10-23T18:40:34.243" Title="&quot;Must be authorized to work in the United States”" Tags="&lt;career&gt;&lt;legal&gt;&lt;job-hunting&gt;" AnswerCount="3" CommentCount="5" FavoriteCount="1" />
  <row Id="14103" PostTypeId="2" ParentId="14098" CreationDate="2010-10-23T14:40:25.383" Score="0" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;   I guess everybody has there own strategy, so what's yours?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I just write the starting code ( including header files, packages etc ) while thinking and it accelerates thinking process in my case, if its taking longer, then I delete the lines already written and repeat. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;This is not at all a standard approch , it just works for me sometimes..&lt;/p&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-10-23T14:40:25.383" />
  <row Id="14104" PostTypeId="2" ParentId="14098" CreationDate="2010-10-23T14:48:23.660" Score="4" ViewCount="" Body="&lt;p&gt;It depends. If it something easy that I know exactly how to do, then I just code immediately. I start by writing some pseudo-code in form of comments to get an overview of what needs to be done (unless it's a &lt;em&gt;very&lt;/em&gt; simple problem or small function).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing these comments first often lets me know if I've missed something because I will stumble upon how to write them. If I can't formulate good comments or make an overview of the functionality, it means I haven't understood the problem or purpose of the function completely. If that happens I take a step back and think about the problem some more before continuing. If I get stuck I treat it as a difficult problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's a difficult problem I try to solve it anyway which seems fit or will lead to a solution: if I can use a visual approach I try to draw the solution with pen and paper; if it's a manner of knowing what library functions to call I read the manuals; etc. Most importantly, if I think that this is something someone else must already have solved, I ask around my fellow colleagues, google it or visit StackOverflow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mostly I've done this subconsciously, but I try to always think about what I'm doing and see if there's something I can do better. For instance, I didn't bother writing overview comments or pseudo-code until after reading &lt;em&gt;Code Complete&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-10-23T14:54:34.323" LastActivityDate="2010-10-23T14:54:34.323" />
  <row Id="14105" PostTypeId="2" ParentId="14098" CreationDate="2010-10-23T14:54:04.413" Score="0" ViewCount="" Body="&lt;p&gt;Well, I launch my IDE. Just kidding. Come to think of it, I don't think I have a 'standard' prep routine. Psuedo coding in my thoughts, flow-charting on papers and sometimes code right away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However when it comes to UI for a not-so-small user base, I will definitely have mock-ups and have group/user reviews before actual coding.&lt;/p&gt;&#xA;" OwnerUserId="2262" LastActivityDate="2010-10-23T14:54:04.413" />
  <row Id="14106" PostTypeId="2" ParentId="7337" CreationDate="2010-10-23T14:57:38.290" Score="7" ViewCount="" Body="&lt;p&gt;No one mentioned&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;&lt;a href=&quot;http://www.postgresql.org/&quot; rel=&quot;nofollow&quot;&gt;PostgreSQL&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;yet, so I figure I should. Because it's open source and not even indirectly owned by Oracle, because it's featureful and because it has excellent CL integration through &lt;a href=&quot;http://www.cliki.net/postmodern&quot; rel=&quot;nofollow&quot;&gt;postmodern&lt;/a&gt; (which is, IMO, better than using cl-sql or cl-mysql on top of MySQL).&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-10-23T15:02:41.453" LastActivityDate="2010-10-23T15:02:41.453" CommentCount="2" />
  <row Id="14107" PostTypeId="2" ParentId="14102" CreationDate="2010-10-23T15:01:04.407" Score="6" ViewCount="" Body="&lt;p&gt;It means that you either : &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Hold USA Citizenship.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Hold a USA Green Card (it's a permanent residence permit - almost like citizenship minus the right to vote, serve the army or run for the elections).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You hold something like USA H1B (or something like that) work visa - usually this means that some employer in the USA is willing to SPONSOR you, that is, to request a work permit be issued by the US Government.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-10-23T15:01:04.407" CommentCount="2" />
  <row Id="14108" PostTypeId="2" ParentId="14098" CreationDate="2010-10-23T15:05:36.310" Score="0" ViewCount="" Body="&lt;p&gt;Depends entirely on what I'm supposed to be coding.  If I'm inheriting an existing project, I'll usually have a hand-off (me and the previous developer sat at my desk looking at the code) and then dive into the work queues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I'm starting a new project, we usually have a design document, just as part of our process.  If it's a smaller project that is only used by us (extensions to the build tools, for example) then the design is more informal, often just an email from my boss with basic requirements.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-23T15:05:36.310" CommentCount="2" />
  <row Id="14109" PostTypeId="2" ParentId="13623" CreationDate="2010-10-23T15:14:56.033" Score="0" ViewCount="" Body="&lt;p&gt;I can only imagine the profile experience while using a slow machine. Yikes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short. Hell No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also have at least 4gb of ram so you can have 2gb on your main machine, 1 for a VM and the other 1 for the extra memory the VM needs and for you to have memory leeway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also two processors are a must so if an app locks/eats CPU up the developer doesnt have to painfully way to ctrl-alt-del something.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-10-23T15:14:56.033" CommunityOwnedDate="2010-10-23T15:14:56.033" />
  <row Id="14110" PostTypeId="2" ParentId="14033" CreationDate="2010-10-23T15:14:59.117" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://5by5.tv/contact&quot; rel=&quot;nofollow&quot;&gt;Suggest&lt;/a&gt; it to Dan Benjamin, and he might discuss it on his software development podcast, &lt;a href=&quot;http://5by5.tv/devshow&quot; rel=&quot;nofollow&quot;&gt;The Dev Show&lt;/a&gt;. Your website has black text on a white background, so your project has a good chance of making it into the show.&lt;/p&gt;&#xA;" OwnerUserId="4711" LastActivityDate="2010-10-23T15:14:59.117" />
  <row Id="14111" PostTypeId="2" ParentId="14102" CreationDate="2010-10-23T15:27:32.083" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Must be authorized to work in the United States on a full-time basis for any employer.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This means that you must be a US citizen or have a Green Card.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many temporary work visas (including H1-B) are tied to a particular employer, and therefore would not meet job advertisement's stated requirements. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, it means that the employer is not prepared to go through the expense and delay of sponsoring an overseas worker for a temporary work visa.  Also note that most work visa categories have an annual quota.  Once the quota is filled, your prospective employer has to try again next year.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-10-23T15:27:32.083" CommentCount="1" />
  <row Id="14112" PostTypeId="2" ParentId="14098" CreationDate="2010-10-23T15:39:52.277" Score="0" ViewCount="" Body="&lt;p&gt;as said, depends. (note, the following is for c++ projects)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For really simple/small projects, just write the thing and run it. Fix where needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I feel like Test Driven (as in test before you code) is the way for a project, I just take a paper and come up with classes I need. Then start writing interfaces and tests for those. The implement one by one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other times it's the other way around: come up with needed classes, implement them, write a bunch of tests and debug failures/crashes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For really huge projects, first split up in smaller parts that can be done with the above principles. This is mostly done by writing on paper, which is after all 10x faster than having to draw diagrams on a computer.&lt;/p&gt;&#xA;" OwnerUserId="3660" LastActivityDate="2010-10-23T15:39:52.277" />
  <row Id="14113" PostTypeId="1" CreationDate="2010-10-23T16:07:35.317" Score="2" ViewCount="263" Body="&lt;p&gt;I was trying to look for a better name other than 'pessimistic' but &lt;a href=&quot;http://thesaurus.com&quot; rel=&quot;nofollow&quot;&gt;thesaurus&lt;/a&gt; couldn't give me anything better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looking through some Jeff-related sites:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;codinghorror&lt;br/&gt;&#xA;StackOverflow&lt;br/&gt;&#xA;ServerFault&lt;br/&gt;&#xA;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;all have problem-related names. &lt;br/&gt;&#xA;Does anyone know whether there are any special reasons?&lt;/p&gt;&#xA;" LastActivityDate="2010-10-23T16:36:41.610" ClosedDate="2010-10-23T16:46:47.740" Title="Why does Jeff Atwood choose pessimistic names for his sites?" Tags="&lt;personality&gt;" AnswerCount="4" CommentCount="6" />
  <row Id="14114" PostTypeId="2" ParentId="14113" CreationDate="2010-10-23T16:16:26.497" Score="1" ViewCount="" Body="&lt;p&gt;I gather because &lt;a href=&quot;http://www.programmersheaven.com/&quot; rel=&quot;nofollow&quot;&gt;Programmer's heaven&lt;/a&gt; was already taken. As to the other two, what's interesting about a program that runs just fine ? ;-)&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-23T16:16:26.497" />
  <row Id="14115" PostTypeId="2" ParentId="14113" CreationDate="2010-10-23T16:26:01.850" Score="2" ViewCount="" Body="&lt;p&gt;I don't think there's much to do with Jeff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe more human nature. We tend to notice flaws more than quality so this could explain it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, because of it, it probably sound more catchy for us, humans. I think that is maybe why Jeff was attracted to it. He's good marketer, not that he is pessimistic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not a real question though.&lt;/p&gt;&#xA;" OwnerUserId="3063" LastActivityDate="2010-10-23T16:26:01.850" CommentCount="16" />
  <row Id="14116" PostTypeId="2" ParentId="14113" CreationDate="2010-10-23T16:31:42.950" Score="1" ViewCount="" Body="&lt;p&gt;Altough only J.A. can give proper answer, I suspect it's because 80% of programming work is related with error handling - even designing software on paper is about avoiding errors.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-10-23T16:31:42.950" />
  <row Id="14117" PostTypeId="2" ParentId="14113" CreationDate="2010-10-23T16:36:41.610" Score="0" ViewCount="" Body="&lt;p&gt;I think it is also easier to remember these kinds of names, furthermore these words get less hits in a search and makes it easier to make the names stand out in a search, I think.&lt;/p&gt;&#xA;" OwnerUserId="1041" LastActivityDate="2010-10-23T16:36:41.610" />
  <row Id="14118" PostTypeId="2" ParentId="14102" CreationDate="2010-10-23T17:08:46.313" Score="0" ViewCount="" Body="&lt;p&gt;Hi there&lt;/p&gt;&#xA;&#xA;&lt;p&gt;so you want to know what you have to do to in order to be authorized to work and what kind of visa do you need? Here is some information I have got so far.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have visited embassy website months ago, and I talked to embassy agent. He told me the visa is called &lt;strong&gt;&quot;H Visa&quot;&lt;/strong&gt;, there are some types of H Visa, you can focus on the temporary one, called &lt;strong&gt;H1B&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;The first step is the employer filing the petition on &lt;strong&gt;Homeland Security&lt;/strong&gt;, using the Form I-129, you can check it here &lt;a href=&quot;http://bogota.usembassy.gov/general_information/nonimmigrant-visa-unit-how-to-apply-for-a-visa.html&quot; rel=&quot;nofollow&quot;&gt;http://bogota.usembassy.gov/schvisa.html&lt;/a&gt;. This petition is about 300 dollars. The employer has to fill your personal data that would on Form I-129 as follows:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On Part 3:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Family Name:  &#xA;Given name: &#xA;Date of Birth: &#xA;Country of Birth: &#xA;Province of Birth: &#xA;Country of Citizenship: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On Part 4-1:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Type of office: Consulate Office&#xA;address: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On Part 4-2: Does each person have a valid passport: yes&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instructions to complete Form I-129 are available on:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.uscis.gov/portal/site/uscis/menuitem.5af9bb95919f35e66f614176543f6d1a/?vgnextoid=f56e4154d7b3d010VgnVCM10000048f3d6a1RCRD&amp;amp;vgnextchannel=db029c7755cb9010VgnVCM10000045f3d6a1RCRD&quot; rel=&quot;nofollow&quot;&gt;http://www.uscis.gov/portal/site/uscis/menuitem.5af9bb95919f35e66f614176543f6d1a/?vgnextoid=f56e4154d7b3d010VgnVCM10000048f3d6a1RCRD&amp;amp;vgnextchannel=db029c7755cb9010VgnVCM10000045f3d6a1RCRD&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Once this form is approved, you would register your information data online to have an appointment here at US Embassy in your country. The embassy officer should tell you it will take about 10 days for the appointment and perhaps seven days to give back your passport with the result of the petition. A sampe of the rest of the process goes here as described at &lt;a href=&quot;http://bogota.usembassy.gov/general_information/nonimmigrant-visa-unit-how-to-apply-for-a-visa.html&quot; rel=&quot;nofollow&quot;&gt;http://bogota.usembassy.gov/general_information/nonimmigrant-visa-unit-how-to-apply-for-a-visa.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since this is only a sample, remember to verify this process with US Embassy agents in your country.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://bogota.usembassy.gov/schvisa.html&quot; rel=&quot;nofollow&quot;&gt;http://bogota.usembassy.gov/schvisa.html&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I hope this can help you and others!&lt;/p&gt;&#xA;" OwnerUserId="5934" LastEditorUserId="5934" LastEditorDisplayName="" LastEditDate="2010-10-23T18:34:59.073" LastActivityDate="2010-10-23T18:34:59.073" />
  <row Id="14119" PostTypeId="2" ParentId="13101" CreationDate="2010-10-23T17:28:35.203" Score="1" ViewCount="" Body="&lt;p&gt;If you think you are being ripped off, you have a couple of alternatives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can always &quot;roll your own&quot; cloud. Factor in the cost of the hardware, software development, administration, support, facilities etc. into your costs and see if you can do it for less. If you can figure out how to do this for significantly less than the going rate, you can always go into the provider business yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or you can ask for bids. Create a request for proposal that spells our your needs and contact businesses that can provide them and ask for competitive quotes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="6222" LastActivityDate="2010-10-23T17:28:35.203" />
  <row Id="14120" PostTypeId="2" ParentId="39" CreationDate="2010-10-23T18:28:01.117" Score="0" ViewCount="" Body="&lt;p&gt;Keep it Simple!&lt;/p&gt;&#xA;" OwnerUserId="6211" LastActivityDate="2010-10-23T18:28:01.117" CommunityOwnedDate="2010-10-23T18:28:01.117" CommentCount="1" />
  <row Id="14121" PostTypeId="1" CreationDate="2010-10-23T18:48:22.910" Score="3" ViewCount="68" Body="&lt;p&gt;I wonder who are the best thought leaders working in the field of software metrics today?&lt;/p&gt;&#xA;" OwnerUserId="6229" LastActivityDate="2010-10-23T22:04:14.303" Title="who are the current thought leaders in the area of software metrics?" Tags="&lt;software-engineering&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="14122" PostTypeId="2" ParentId="39" CreationDate="2010-10-23T18:49:06.893" Score="9" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;a href=&quot;http://www.c2.com/cgi/wiki?CeePlusPlus&quot; rel=&quot;nofollow&quot;&gt;C++: an octopus made by nailing extra&#xA;  legs onto a dog.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-10-23T18:49:06.893" CommunityOwnedDate="2010-10-23T18:49:06.893" />
  <row Id="14123" PostTypeId="2" ParentId="14098" CreationDate="2010-10-23T18:57:35.927" Score="0" ViewCount="" Body="&lt;p&gt;Think about which &lt;strong&gt;algorithms&lt;/strong&gt; will be used to solve the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make a &lt;strong&gt;Flowchart&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make the &lt;a href=&quot;http://books.google.co.in/books?id=uIVJiAPlBq0C&amp;amp;pg=PA99&amp;amp;lpg=PA99&amp;amp;dq=prep+code+test+code+real+code&amp;amp;source=bl&amp;amp;ots=9flhKk_ouI&amp;amp;sig=Ss0E9gNVk03eP-3S7QrK4XA2pW8&amp;amp;hl=en&amp;amp;ei=QC3DTKWsOYm2vQP2yKTiCQ&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=1&amp;amp;ved=0CBkQ6AEwAA#v=onepage&amp;amp;q=prep%20code%20test%20code%20real%20code&amp;amp;f=false&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;prep code&lt;/strong&gt;&lt;/a&gt; (a form of pseudo-code).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pick up a programming-language, make real code from prep-code according to the syntax of the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Run , Debug. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Happy programming :)&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-10-23T18:57:35.927" />
  <row Id="14124" PostTypeId="1" AcceptedAnswerId="14131" CreationDate="2010-10-23T18:59:20.180" Score="12" ViewCount="1103" Body="&lt;p&gt;Here is the situation&lt;/p&gt;&#xA;&#xA;&lt;p&gt;you are working in your clever hi-tech code, and your boss keep on asking if it's finished.&#xA;But the project started just yesterday and you have two weeks to go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What can I do? Shall I keep on answering I'm on it? :)&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-11-05T10:55:06.313" Title="What can I do if my boss is asking about my program every hour?" Tags="&lt;behavior&gt;&lt;boss&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="2" />
  <row Id="14125" PostTypeId="1" CreationDate="2010-10-23T19:01:38.147" Score="1" ViewCount="63" Body="&lt;p&gt;I'm, going into partnership on a software project as the lead developer - I want to licence the software to the company, and am wondering what licence types would be applicable here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Payment for the use of the software is likely to be royalty based, or as a percentage of the client bills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't have any experience of this type of set up commercially. Can anyone advice how I might licence the software and what licence types might be applicable here?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many thanks in advance.&lt;/p&gt;&#xA;" OwnerUserId="6230" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-23T22:11:16.277" LastActivityDate="2010-10-23T22:11:16.277" ClosedDate="2010-10-23T19:45:51.620" Title="Going into partnership on a software project as the lead developer - How to licence the software to the company, licence type?." Tags="&lt;business&gt;&lt;legal&gt;&lt;license&gt;" CommentCount="4" />
  <row Id="14126" PostTypeId="2" ParentId="14069" CreationDate="2010-10-23T19:02:54.360" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I'm a lone developer on my job now,&#xA;  with my teammates being hardware&#xA;  experts&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Don't hesitate to use them as a resource.  One of the hardest things for embedded programmers who are not EE's is getting comfortable with the hardware.  It is very useful to be able to read a schematic (even if you can't design one), and understand how to use an scope to look at signals coming out of the microcontroller.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-23T19:02:54.360" />
  <row Id="14127" PostTypeId="2" ParentId="14124" CreationDate="2010-10-23T19:03:50.213" Score="9" ViewCount="" Body="&lt;p&gt;Your boss is probably anxious about the progress. Ask him/her if it would be OK for you to send him/her a progress report at the end of each day explaining what you've done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's probably more effective, and less career-limiting than telling your boss that the constant interruptions are ruining your ability to work effectively, and he/she is really annoying you.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-23T19:03:50.213" CommentCount="2" />
  <row Id="14128" PostTypeId="2" ParentId="14124" CreationDate="2010-10-23T19:04:21.593" Score="15" ViewCount="" Body="&lt;p&gt;Suggest that you have daily update meetings first thing in the morning. In these you will tell him what you did yesterday, what you hope to achieve and what (if anything) is causing a hold up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He can tell you the latest sales/marketing news and if there are any changes to the plan.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is basically an agile/scrum meeting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If he knows this is happening he might leave you alone for the rest of the day.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-23T19:04:21.593" CommentCount="25" />
  <row Id="14129" PostTypeId="2" ParentId="14124" CreationDate="2010-10-23T19:04:29.917" Score="4" ViewCount="" Body="&lt;p&gt;If he is so keen then he would probably like a 15 minute status report every morning.  Do that every day for the coming two weeks, and he will be happy.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-23T19:04:29.917" />
  <row Id="14130" PostTypeId="2" ParentId="39" CreationDate="2010-10-23T19:05:15.020" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;In C++ it’s harder to shoot yourself in the foot, but when you do, you blow off your whole leg.&#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; Bjarne Stroustrup&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-28T02:36:35.960" CommunityOwnedDate="2010-10-23T19:05:15.020" CommentCount="1" />
  <row Id="14131" PostTypeId="2" ParentId="14124" CreationDate="2010-10-23T19:05:22.440" Score="46" ViewCount="" Body="&lt;p&gt;You plan to work on this for two weeks. So do you actually have a plan? For example &quot;I am going to put together the ui, connect the event handlers using mocks/stubs for the data part, test all that, write the data part, ...&quot;. Or if you're TDD, which tests you're going to write and which pieces of the puzzle will stay mocked the longest. I think your boss will be happy to see a plan and see where you are in it. If there are 10 steps in your plan and after 1 day you have 1 done, it's a pretty good guess you need two weeks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you and your boss have a communication issue. Either your boss doesn't think it needs two weeks, and is asking &quot;Why isn't it done yet?&quot;, or your boss is really saying &quot;show me a plan so I know it will be done on time&quot;, or some completely different thing. So it might also be a good idea to say &quot;I am not sure why you are asking me if it is finished yet. Is there anything else you need to know besides yes/no is it finished?&quot;&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-23T19:05:22.440" CommentCount="3" />
  <row Id="14132" PostTypeId="2" ParentId="14092" CreationDate="2010-10-23T19:06:40.610" Score="-1" ViewCount="" Body="&lt;p&gt;If, for example, you started using ASP.NET in 2003, but have spent only 1/4 of your time doing projects with it since then, then you should claim only 7/4 or roughly 2 years of experience.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-23T19:06:40.610" CommentCount="3" />
  <row Id="14133" PostTypeId="2" ParentId="14052" CreationDate="2010-10-23T19:09:46.477" Score="2" ViewCount="" Body="&lt;p&gt;A superprogrammer is any person who can generate code faster than a speeding compiler, more powerful than a recursive function, and able to leap over FIFO stacks in a single bound.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way you deal with a person in your team who believes he is a superprogrammer is by exposing him to his only weakness - sunlight.&lt;/p&gt;&#xA;" OwnerUserId="6231" LastEditorUserId="6231" LastEditorDisplayName="" LastEditDate="2010-10-27T03:12:00.147" LastActivityDate="2010-10-27T03:12:00.147" CommentCount="9" />
  <row Id="14135" PostTypeId="2" ParentId="14092" CreationDate="2010-10-23T19:12:27.453" Score="0" ViewCount="" Body="&lt;p&gt;I prefer to separate in my resume the experience in advanced and basic categories. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Over advanced there are all technologies I have been using most.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Over basic I introduce those languages and technologies I left in the past, or those I see less over time.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm not describing years in resume, except on my presentation letter.&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-23T19:12:27.453" />
  <row Id="14138" PostTypeId="1" AcceptedAnswerId="14139" CreationDate="2010-10-23T19:23:25.403" Score="3" ViewCount="251" Body="&lt;p&gt;Hi&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When do you use a &lt;code&gt;for&lt;/code&gt; loop and not a &lt;code&gt;while&lt;/code&gt; loop?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When choose one and not the other one?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;thank you&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-23T20:40:26.107" Title="Why do you use a for loop and not a while statement?" Tags="&lt;best-practices&gt;" AnswerCount="3" />
  <row Id="14139" PostTypeId="2" ParentId="14138" CreationDate="2010-10-23T19:25:48.410" Score="6" ViewCount="" Body="&lt;p&gt;I choose the construct that leads to the most legible code while still solving the problem at hand.&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-10-23T19:25:48.410" />
  <row Id="14141" PostTypeId="2" ParentId="14138" CreationDate="2010-10-23T19:36:09.300" Score="18" ViewCount="" Body="&lt;p&gt;&lt;code&gt;for&lt;/code&gt; works well if you have a data structure with a size known you iterate over.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;while&lt;/code&gt; works well if you need to do something until a condition changes.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-23T19:36:09.300" />
  <row Id="14142" PostTypeId="2" ParentId="1588" CreationDate="2010-10-23T19:44:32.803" Score="0" ViewCount="" Body="&lt;p&gt;I have a powerfull notebook, really good for software development and better: it's &lt;strong&gt;portable&lt;/strong&gt;!&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-23T19:44:32.803" CommunityOwnedDate="2011-01-27T05:21:04.337" />
  <row Id="14143" PostTypeId="2" ParentId="12343" CreationDate="2010-10-23T19:46:11.990" Score="0" ViewCount="" Body="&lt;p&gt;Yes it can be. I've been involved in the demo scene in early 90s, building a diskmag called Imphobia talking about demos parties. The demo scene is defined like this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The demoscene is a computer art subculture that specializes in producing demos, which are non-interactive audio-visual presentations that run in real-time on a computer. The main goal of a demo is to show off programming, artistic, and musical skills.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;So yes I think programming is a subculture&lt;/strong&gt; &lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-23T19:46:11.990" CommentCount="3" />
  <row Id="14147" PostTypeId="2" ParentId="14124" CreationDate="2010-10-23T20:24:29.703" Score="1" ViewCount="" Body="&lt;p&gt;If you are autonomous person, just tell him that you don't need so much supervision. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have the luck to work for a university teacher and basically he's too busy doing other stuff to be always looking at what I'm doing (I don't need him to look after me to work, thank you, I love my work and that motivate me enough).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say tell him to find other stuff to do but bothering you but that's obviously a big NO. So, try to get him to trust you that you can do a good job even when he's not looking and he might get the hint. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why does he not trust you anyway? Did you just get on the job? Proved him that you needed supervision? or is he just a poor manager?&lt;/p&gt;&#xA;" OwnerUserId="3063" LastActivityDate="2010-10-23T20:24:29.703" />
  <row Id="14149" PostTypeId="2" ParentId="14138" CreationDate="2010-10-23T20:40:26.107" Score="1" ViewCount="" Body="&lt;p&gt;The same thing can be accomplished with either type of loop, but depending on the circumstances, one type or the other will generally make your code cleaner &amp;amp; easier to understand. For loops are typically used to iterate over a collection of items. While loops are usually used to iterate until a certain condition is met. &lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-10-23T20:40:26.107" />
  <row Id="14150" PostTypeId="2" ParentId="39" CreationDate="2010-10-23T20:46:21.680" Score="0" ViewCount="" Body="&lt;p&gt;&quot;Real programmers don't see code, they see trees.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-10-23T20:46:21.680" CommunityOwnedDate="2010-10-23T20:46:21.680" />
  <row Id="14152" PostTypeId="1" AcceptedAnswerId="14154" CreationDate="2010-10-23T20:49:55.680" Score="4" ViewCount="106" Body="&lt;p&gt;I'm going to be managing projects for a very small (2-5) senior developer team.  They develop a subscription based web application.  It has been in use for many years so at this point the work involves:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Developing new features and updates to existing features&lt;/li&gt;&#xA;&lt;li&gt;Developing in-house tools and reports&lt;/li&gt;&#xA;&lt;li&gt;Fixing bugs&lt;/li&gt;&#xA;&lt;li&gt;Investigating customer service issues&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Production releases are sometimes determined by customer obligations, sometimes by competitive advantage, but for the most part are not time-critical.  I'd like to have regular production releases to keep the product fresh -- once every 2 months or so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since the team is so small, the developers themselves will have to be involved in designing, testing, deployment, and maintenance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since we do not have a dedicated maintenance team I see the major challenge being development and planning disrupted by bug fixing and customer service issues.  They can distract us during new feature development and disrupt the release schedule.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My initial thought is to do the following:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Hire a junior programmer to buffer the senior developers from maintenance tasks.  In between maintenance tasks this person can assist the senior devs.&lt;/li&gt;&#xA;&lt;li&gt;Adopt a scrum style approach where we have a series of sprints leading up to a production release.  This will allow us to keep the stakeholders in the loop and allow us to reflect and improve our process with each sprint.&lt;/li&gt;&#xA;&lt;li&gt;Shortly following the release, which is when most bugs surface, the team can focus on design for the next release with the expectation that each one will likely get pulled into bug fixing.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I'd love to hear your thoughts and lessons learned.&lt;/p&gt;&#xA;" OwnerUserId="6232" LastActivityDate="2010-10-23T21:09:03.633" Title="Best process for product development and maintenance by a small team?" Tags="&lt;development-process&gt;&lt;product&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="1" />
  <row Id="14154" PostTypeId="2" ParentId="14152" CreationDate="2010-10-23T21:09:03.633" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Scrum is the perfect choice here&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Forget the point 1. Let your cross functionnal team self manage itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do point 2, but implement everything in Scrum, not just what you think is useful. Also don't try alone, hire a certified Scrum Practionner or a Certified Scrum Coach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Forget the point 3. Hire a tester and put it in your Scrum team. Also using Scrum properly, that will help to reduce bugs in production.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-23T21:09:03.633" CommentCount="3" />
  <row Id="14155" PostTypeId="2" ParentId="9614" CreationDate="2010-10-23T21:26:58.677" Score="0" ViewCount="" Body="&lt;p&gt;A scripter is like a car mechanic, he may be highly skilled at what he does, but he has to have the car to start with, and what's wrong with it has to be fixable by means of replacing a part. A programmer is anyone from the assembly line worker building the car to the designer sketching concepts in a CAD package. &lt;/p&gt;&#xA;" OwnerUserId="6219" LastActivityDate="2010-10-23T21:26:58.677" />
  <row Id="14157" PostTypeId="2" ParentId="12858" CreationDate="2010-10-23T21:43:51.693" Score="1" ViewCount="" Body="&lt;p&gt;Ultraedit is pretty good as already mentioned.  Lots of people swear by Notepad++ too.  I've often used Scite as a quick GUI editor both on Windows and Linux.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they need an X Server on Windows, you can use XMing although that seems to defeat the point of getting them to use Windows tools.  Combine that with PuTTY and you have a decent setup to run an Xterm on your windows desktop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've not used one but I'm sure there are plenty of Windows SVN clients.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps you'd be better off with some effort on the Linux side too?  For example, what about creating a really nice build/test script with text menus that they can run from a SSH login without needing to learn command line tools?  Also you can make sure everything is accessible via Samba.&lt;/p&gt;&#xA;" OwnerUserId="6193" LastActivityDate="2010-10-23T21:43:51.693" CommentCount="1" />
  <row Id="14158" PostTypeId="1" CreationDate="2010-10-23T21:45:40.630" Score="6" ViewCount="256" Body="&lt;p&gt;I am dealing with MS SQL since from version 2000 even before that, I think that I am pretty good in writing TSQLs and general database designs . Can I consider myself as programer ?&lt;br&gt;&#xA;I know that TSQL is not enough for any kind of application so i started learning C# but I looks like that is much longer way then mastering TSQL and SQL server.&lt;/p&gt;&#xA;" OwnerUserId="6240" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-10-24T01:09:05.413" LastActivityDate="2010-11-07T16:30:59.043" Title="If I only know TSQL can I call myself programmer?" Tags="&lt;programming-languages&gt;&lt;self-improvement&gt;&lt;sql&gt;&lt;suggestions&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="1" />
  <row Id="14159" PostTypeId="2" ParentId="14158" CreationDate="2010-10-23T21:51:56.543" Score="2" ViewCount="" Body="&lt;p&gt;That depends: have you done any programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If all you've done is designed databases and created queries, no.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you regularly write complex stored procedures, then maybe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've only done a little bit of programming, that doesn't make you a Programmer, unless it is one of your key roles.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-10-23T21:51:56.543" />
  <row Id="14160" PostTypeId="2" ParentId="14158" CreationDate="2010-10-23T21:54:19.907" Score="2" ViewCount="" Body="&lt;p&gt;You can call yourself anything you would like, even if it isn't true. In this case, if you can complete almost any database programming task in T-SQL you can call yourself a programmer and it would be a true statement. &lt;em&gt;(Some C programmers may disagree.)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-10-23T21:54:19.907" />
  <row Id="14161" PostTypeId="2" ParentId="14158" CreationDate="2010-10-23T21:54:38.877" Score="3" ViewCount="" Body="&lt;p&gt;TSQL is mostly a declarative programming language (with some other stuff like UDTs, UDFs, SPs, cursors, etc.), so I guess strictly speaking you could say that you are a programmer. In reality though: no, I would say that T-SQL by itself is not what most people think a programmer is.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-23T21:54:38.877" />
  <row Id="14162" PostTypeId="1" AcceptedAnswerId="14286" CreationDate="2010-10-23T21:59:01.523" Score="29" ViewCount="904" Body="&lt;p&gt;I'm trying to decide if I need to reassess my defect-tracking process for my home-grown projects.  For the last several years, I really just track defects using &lt;code&gt;TODO&lt;/code&gt; tags in the code, and keeping track of them in a specific view (I use Eclipse, which has a decent tagging system).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, I'm starting to wonder if this system is unsustainable.  The defects I find are typically associated with a snippet of code I'm working on; bugs which are not immediately understood tend to be forgotten, or ignored.  I wrote an application for my wife which has had a severe defect for almost 9 months, and I keep forgetting to fix it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What mechanism do you use to track defects in your personal projects?  Do you have a specific system, or a process for prioritizing and managing them?&lt;/p&gt;&#xA;" OwnerUserId="2294" LastEditorUserId="2294" LastEditorDisplayName="" LastEditDate="2010-10-23T22:22:34.470" LastActivityDate="2011-05-12T05:07:31.930" Title="How do you track bugs in your personal projects?" Tags="&lt;best-practices&gt;&lt;bug-tracking&gt;&lt;personal-projects&gt;" AnswerCount="14" CommentCount="2" FavoriteCount="13" />
  <row Id="14163" PostTypeId="2" ParentId="14121" CreationDate="2010-10-23T22:04:14.303" Score="1" ViewCount="" Body="&lt;p&gt;Victor Basili &#xA;Barry Boehm &lt;/p&gt;&#xA;" OwnerUserId="6252" LastActivityDate="2010-10-23T22:04:14.303" CommentCount="1" />
  <row Id="14164" PostTypeId="2" ParentId="13623" CreationDate="2010-10-23T22:09:33.857" Score="1" ViewCount="" Body="&lt;p&gt;The answer lies in the middle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have one fast box to run the dev environment (eg Eclipse)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And another slow box for testing the output. This is especially important for web apps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Side-by-side screens, one for each box.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the code is acceptable on the output box, it will be more than acceptable for most users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fast dev boxes make programmers lazy. For example, searching for an element in the DOM every time it's needed. Find it once and cache the result.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll really notice the difference on a slow box running IE 6.... &lt;/p&gt;&#xA;" LastActivityDate="2010-10-23T22:09:33.857" CommunityOwnedDate="2010-10-23T22:09:33.857" CommentCount="1" />
  <row Id="14165" PostTypeId="2" ParentId="13623" CreationDate="2010-10-23T22:09:45.583" Score="0" ViewCount="" Body="&lt;p&gt;Ask the client if they would create more efficient business processes using slow PCs.&lt;/p&gt;&#xA;" OwnerUserId="2237" LastActivityDate="2010-10-23T22:09:45.583" CommunityOwnedDate="2010-10-23T22:09:45.583" />
  <row Id="14166" PostTypeId="2" ParentId="14162" CreationDate="2010-10-23T22:10:57.460" Score="1" ViewCount="" Body="&lt;p&gt;For my personal projects I use Omnifocus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update:25/10/2010&#xA;If i find a bug that I can't or don't want to fix immediately I quickly add it to the Omnifocus inbox. Then later, when I'm doing a review I will gather all the info that I think I will need to fix the bug and then add it to the project. It's position in the task list indicates it's relative importance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I treat bugs the same way as requirements/features in most respects.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastEditorUserId="5505" LastEditorDisplayName="" LastEditDate="2010-10-25T04:44:43.043" LastActivityDate="2010-10-25T04:44:43.043" CommentCount="4" />
  <row Id="14167" PostTypeId="2" ParentId="14028" CreationDate="2010-10-23T22:20:26.160" Score="0" ViewCount="" Body="&lt;p&gt;Background noise that I have no interest in is actually helpful: something like sittin in a cafe. Office talk is distracting because it's easy to pick out individual conversations and they may be relevant. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Silence can be great if I'm really thinking through a problem, but I usually &quot;get into the flow&quot; better with music. &lt;/p&gt;&#xA;" OwnerUserId="5668" LastActivityDate="2010-10-23T22:20:26.160" CommunityOwnedDate="2011-05-22T12:09:23.967" />
  <row Id="14168" PostTypeId="2" ParentId="14162" CreationDate="2010-10-23T22:23:04.457" Score="6" ViewCount="" Body="&lt;p&gt;I used to use a spreadsheet/text file per project (ToDo comments in the code don't scale well for the reasons you list; they're local to the code, and if there's an issue that's not, it tends to slip through the cracks).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently I've set up a &lt;a href=&quot;http://www.redmine.org/projects/redmine&quot; rel=&quot;nofollow&quot;&gt;Redmine&lt;/a&gt; server on my home network. It's a bit heavyweight for a &quot;team&quot; of one, but I'm working on quite a few projects on my own time, and tend to just use the Issue Tracker + Repository options with maybe the odd wiki page in more complex places.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A friend of mine swears by &lt;a href=&quot;http://www.pivotaltracker.com/landing_page&quot; rel=&quot;nofollow&quot;&gt;Pivotal Tracker&lt;/a&gt; for the same purposes, but my current employer uses Redmine internally, so I figured this would give me some practice. It's not bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For open source projects, I would probably just use GitHub's issue tracking.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-10-24T05:56:54.580" LastActivityDate="2010-10-24T05:56:54.580" CommentCount="1" />
  <row Id="14169" PostTypeId="1" AcceptedAnswerId="14203" CreationDate="2010-10-23T22:26:49.883" Score="6" ViewCount="312" Body="&lt;p&gt;Hi!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am a huge fan of naming guidelines available &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/xzf533w0%28VS.71%29.aspx&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&#xA;Also I prefer to code using hungarian notation from Charles Simonyi.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What about you? Which naming guidelines do you follow in which programming language?&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-27T11:54:17.023" Title="What naming guidelines do you follow?" Tags="&lt;naming-conventions&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="7" />
  <row Id="14170" PostTypeId="2" ParentId="13623" CreationDate="2010-10-23T22:27:41.383" Score="1" ViewCount="" Body="&lt;p&gt;This theory is simple-minded and &lt;strong&gt;outdated&lt;/strong&gt;. It was true back in the days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I remember spending more time microoptimizing my Turbo Pascal stuff on my pre-Pentium computer. It just made sense before Y2K, much less ever since. Nowadays you don't optimize for 10 year old hardware. It's sufficient to testrun software to find bottlenecks. But as everyone here agress, this doesn't mean developer (and thus optimization) productivy correlates to giving them outdated hardware for development.&lt;/p&gt;&#xA;" OwnerUserId="1245" LastActivityDate="2010-10-23T22:27:41.383" CommunityOwnedDate="2010-10-23T22:27:41.383" />
  <row Id="14171" PostTypeId="2" ParentId="14169" CreationDate="2010-10-23T22:44:28.237" Score="1" ViewCount="" Body="&lt;p&gt;In Elisp/Scheme/Common Lisp, I follow the naming conventions implicitly set out in Practical Common Lisp with a few changes, influenced by PLT Racket coding standards. All lower case, sub-words delimited by &lt;code&gt;-&lt;/code&gt;, global variables wrapped by &lt;code&gt;*&lt;/code&gt;, predicates end in &lt;code&gt;?&lt;/code&gt; and functions with side-effects end in &lt;code&gt;!&lt;/code&gt;. Finally, functions that convert an input to an output get named with a &lt;code&gt;-&amp;gt;&lt;/code&gt; to denote that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example (these aren't necessarily GOOD function names, I'm just using them to demonstrate the above standards)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;sort           ;a functional sort (I expect it to return a new list)&#xA;merge-sort     ;a function with a longer name&#xA;*colors-list*  ;a global variable&#xA;starts-with?   ;a predicate (I would expect it to return NIL or the match)&#xA;sort!          ;a destructive sort (I expect it to return t or NIL and modify its inputs)&#xA;rgb-&amp;gt;hsb       ;a function that takes an RGB color and returns an HSB color&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;These are all composeable, of course, so I could name a function &lt;code&gt;hsb-&amp;gt;rgb!&lt;/code&gt; (and I would expect that one to return &lt;code&gt;t&lt;/code&gt; or &lt;code&gt;NIL&lt;/code&gt; and modify the color I passed it from HSB to RGB representation). You can tell a surprising amount about what's going on in a given piece of code by paying attention to the naming conventions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other languages (which tend not to use prefix notation), I just stick to the standard camel-caps naming, but I do name any predicate functions with a trailing &lt;code&gt;_p&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-10-24T13:11:06.027" LastActivityDate="2010-10-24T13:11:06.027" />
  <row Id="14172" PostTypeId="2" ParentId="7744" CreationDate="2010-10-23T22:53:28.960" Score="0" ViewCount="" Body="&lt;p&gt;Well, if possible, keep both in your tool-belt, and also C++, and some Python/Ruby. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That versatility is the way I've worked for the last 30 years, and it served me well, both in small consulting companies working for many clients, and inside big companies that run many different big projects across time and organizational units.&lt;/p&gt;&#xA;" OwnerUserId="6253" LastActivityDate="2010-10-23T22:53:28.960" />
  <row Id="14173" PostTypeId="2" ParentId="539" CreationDate="2010-10-23T23:03:16.980" Score="0" ViewCount="" Body="&lt;p&gt;No emacs yet, so I thought I'd better speak up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/muGQr.png&quot; alt=&quot;my IDE&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-10-23T23:03:16.980" CommunityOwnedDate="2010-10-23T23:03:16.980" />
  <row Id="14174" PostTypeId="2" ParentId="539" CreationDate="2010-10-23T23:12:47.507" Score="1" ViewCount="" Body="&lt;p&gt;I use Ragnarok blue theme :&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/141371/which-visual-studio-color-theme&quot;&gt;http://stackoverflow.com/questions/141371/which-visual-studio-color-theme&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-23T23:12:47.507" CommunityOwnedDate="2010-10-23T23:12:47.507" />
  <row Id="14175" PostTypeId="2" ParentId="14169" CreationDate="2010-10-23T23:26:39.007" Score="3" ViewCount="" Body="&lt;p&gt;There needs to be a clear distinction between Hungarian notation as originally intended by Charles Simonyi and Systems Hungarian. Thanks to @&lt;a href=&quot;http://programmers.stackexchange.com/users/2592/inaimathi&quot;&gt;Inaimathi&lt;/a&gt; for pointing to this article  &lt;a href=&quot;http://www.joelonsoftware.com/articles/Wrong.html&quot; rel=&quot;nofollow&quot;&gt;joelonsoftware.com/articles/Wrong.html&lt;/a&gt;. I admit that I was one of those who fell victim to this misunderstanding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think Systems Hungarian notation adds much value nowadays, when embedding data-type information in variable names. Linus Torvalds and Bjarne Stroustrup said it best:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Linus Torvalds:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Encoding the type of a function into&#xA;  the name (so-called Hungarian&#xA;  notation) is brain damaged—the&#xA;  compiler knows the types anyway and&#xA;  can check those, and it only confuses&#xA;  the programmerthe programmer&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Bjarne Stroustrup:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;No I don't recommend 'Hungarian'. I regard 'Hungarian' (embedding an abbreviated version &gt; of a type in a variable name) a technique that can be useful in untyped languages, but is &gt; completely unsuitable for a language that supports generic programming and object-&#xA;  oriented programming—both of which emphasize selection of operations based on the type an &gt; arguments (known to the language or to the run-time support). In this case, 'building the &gt; type of an object into names' simply complicates and minimizes abstraction.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I can see Hungarian notation being very valuable in UI programming where it is benefitial to know whether somethign is a text field or a label. For example, I usually do this: lblCustomerName (label preceding the text field), txtCustomerName (actual text field).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, whatever convention you chose, make sure the name is descriptive and does not need a comment line above variable declaration. It doesn't cost us anything to make a descriptive variable, method, or class name. In the end, the code will be more readable, which is important. Programmers spend more time reading code than writing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a more technical side of things, below are some of the guidelines that I follow, which use Hungarian notation (I'm a .NET developer):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I use Camel casing.&lt;/li&gt;&#xA;&lt;li&gt;'m_' prefix for class variables&lt;/li&gt;&#xA;&lt;li&gt;'_' prefix for method parameter declarations&lt;/li&gt;&#xA;&lt;li&gt;'I' prefix for interface names&lt;/li&gt;&#xA;&lt;li&gt;'Base' postfix for base classes&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="3262" LastEditorDisplayName="" LastEditDate="2010-10-24T06:21:47.053" LastActivityDate="2010-10-24T06:21:47.053" CommentCount="4" />
  <row Id="14176" PostTypeId="1" CreationDate="2010-10-23T23:30:02.580" Score="3" ViewCount="97" Body="&lt;p&gt;Does anyone know (or, I guess, I have gut feeling about) how the download size of a software product affects potential users, bandwidth not withstanding?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example: Does a bigger download make them&#xA;   believe that is it more full-featured&#xA;   than it is (like huge .NET Runtimes&#xA;   if deployed with your package)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reason is, I'm developing a VSTO add-in where there is my add-in (small MB), the VSTO run-time, .NET runtime, and Primary Interops. This could make it more than 70 MB in total size, just for an add-in that does a couple of things well. &lt;em&gt;But that's all they are - just a couple of things.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With VSTO deployments, I know I could deploy a smaller package size by assuming they've got the .NET runtime (and when they don't, initialize the download/install of that, but it seems like a clunky way to make just an ass out of me).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I really want is for people to just download the app (the trial version) to see if they like it. Is there some kind of magic happy threshold - like users of non-big name apps are more likely to download something that is under 20 MB than 50 MB?&lt;/p&gt;&#xA;" OwnerUserId="6258" LastActivityDate="2010-10-24T08:50:32.897" Title="How Does Download Size Affect Potential Users of Your Product" Tags="&lt;deployment&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="14177" PostTypeId="2" ParentId="500" CreationDate="2010-10-23T23:34:15.753" Score="0" ViewCount="" Body="&lt;p&gt;Good night&lt;/p&gt;&#xA;&#xA;&lt;p&gt;many times we have debated about practices of Extreme Programming and the &lt;strong&gt;pair programming&lt;/strong&gt;. Back in time, we are able to understand that programming is a solo activity because programmers needed concentration and isolation. The programmers at that time were in the &lt;strong&gt;zone&lt;/strong&gt;, a mental state where they could efficiently focus on the code and make nice and creative decisions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pair programming seems to be also risky if you assume one programmer interrupts each other. On the other hand, it's more difficult to interrupt two programmers working together. On Solo programming for example, it will be easier to be interrupted, so it's almost impossible to a solo programmer to stay in the &quot;zone&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The code quality is another when dead line is just around the corner. People will be always in a hurry, be a pair programmers or a solo programmer: they will not apply certain best practices and will just forget about unit testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would stick with pair programming. Because when it come to risks, when one programmer is gone, you will always have another guy to document the process and teach everyone else how it works.&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-23T23:34:15.753" />
  <row Id="14179" PostTypeId="2" ParentId="2284" CreationDate="2010-10-23T23:39:29.487" Score="1" ViewCount="" Body="&lt;p&gt;Five years is not enough for you to do the 10000 hours of deliberate practice needed to achieve mastery.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may then consider what e.g. Linus Thorvalds do, and think how much further you have to learn from mastery to get to his level.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-23T23:39:29.487" />
  <row Id="14180" PostTypeId="2" ParentId="13623" CreationDate="2010-10-23T23:49:03.873" Score="3" ViewCount="" Body="&lt;p&gt;Asking programmers whether programmers should get good hardware is like asking a fat man whether he likes food.  I know this is the subjective exchange, but still ... is the question worth asking us? :P&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said I of course agree with the majority: &lt;strong&gt;NO&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastActivityDate="2010-10-23T23:49:03.873" CommunityOwnedDate="2010-10-23T23:49:03.873" CommentCount="1" />
  <row Id="14182" PostTypeId="2" ParentId="13623" CreationDate="2010-10-24T00:22:41.377" Score="2" ViewCount="" Body="&lt;p&gt;I'm tempted to say &quot;No&quot; categorically, but let me share a recent experience: Someone on our project was working on some code to import data into the database.  At the time he had the oldest PC in our group, maybe even the entire organization.  It worked fine with VS 2008, but of course a faster machine would have made the experience better.  Anyway, at one point the process he was writing bombed while testing (and that's before it was fully-featured).  He ran out of memory.  The process also took several hours to execute before it bombed.  Keep in mind, as far as we knew, this is what the users would have had to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He asked for more RAM.  They refused, since he was getting a newer machine in 3-4 weeks and the old one was going to be discarded.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep in mind that this guy's philosophy on optimization is: &quot;We have fast machines with lots of RAM&quot; (his and a few machines excluded, anyway), so why waste valuable programmer time optimizing?  But the situation forced him to change the algorithm to be more memory-efficient so that it would run on his 2Gb machine (running XP.)  A side-effect of the rewrite is that the process also ran much, much faster than it did before. Also the original version would eventually have bombed even with 4Gb when more data was being imported - it was a memory hog, plain and simple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Soooo... While generally I'd say &quot;No&quot;, this is a case where the developer having a less powerful machine resulted in a better optimized module, and the users will benefit as a result (since it's not a process that needs to be run very often, he initially had no intention of optimizing it either way, so they would have been stuck with the original version if the machine had had enough RAM to run a few large tests...)  I can see his point, but personally I don't like the idea of users having to wait 8 hours for a process to complete, when it can run in a fraction of that time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that said, as a general rule programmers should have powerful machines because most development is quite intensive.  However, great care should be taken to ensure that testing is done on &quot;lowest common denominator&quot; machines to make sure that the process doesn't bomb and that the users won't be watching paint dry all day long.  But this has been said already. :)&lt;/p&gt;&#xA;" OwnerUserId="3842" LastActivityDate="2010-10-24T00:22:41.377" CommunityOwnedDate="2010-10-24T00:22:41.377" />
  <row Id="14183" PostTypeId="1" AcceptedAnswerId="14259" CreationDate="2010-10-24T00:29:06.397" Score="5" ViewCount="337" Body="&lt;p&gt;I'm curious because I notice that the Ultimate subscription &lt;a href=&quot;http://msdn.microsoft.com/en-us/subscriptions/buy.aspx&quot; rel=&quot;nofollow&quot;&gt;costs $12,000&lt;/a&gt;... for one year (after that, it's $3,800 to renew). Looking at the &lt;a href=&quot;http://msdn.microsoft.com/en-us/subscriptions/subscriptionschart.aspx&quot; rel=&quot;nofollow&quot;&gt;subscription chart&lt;/a&gt;, you do get quite a bit of software that is normally expensive by itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is the package meant for 1 person or is it meant for like a business-type bundle of some sort? If it's the latter, I can &lt;em&gt;kind of&lt;/em&gt; understand that, but I can't fathom where anybody is going to have 12 grand to plop down on something that only lasts 12 months.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, yeah, my question is, is this a good deal to anyone at all? Maybe it's just me not having any industry experience and this is actually a steal and millions of companies should be buying it right now, but I just can't personally picture this being worth the money. &lt;/p&gt;&#xA;" OwnerUserId="5624" LastActivityDate="2010-10-24T21:34:02.940" Title="What does an MSDN subscription offer?" Tags="&lt;microsoft&gt;" AnswerCount="3" />
  <row Id="14184" PostTypeId="2" ParentId="14183" CreationDate="2010-10-24T00:47:01.197" Score="5" ViewCount="" Body="&lt;p&gt;You can still use the software you get through the subscription even after it expires. You just have to make sure you have all of it downloaded and the license keys on hand. So that $12000 buys you a lot of software. If you're a contractor, you might find it very useful/justifiable. If you're a major software company and you want your developers to use Visual Studio Ultimate and whatever else a subscription offers (there are also training packages included, for example), then you buy it for your developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Far as I know, MSDN subscriptions are for individuals. Companies can get in on the volume licensing instead.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-24T00:47:01.197" />
  <row Id="14185" PostTypeId="2" ParentId="14176" CreationDate="2010-10-24T01:09:37.270" Score="2" ViewCount="" Body="&lt;p&gt;Who are you targeting? Most people couldn't care less about download sizes. If you're targeting tech users, then I'd say most of them would prefer a smaller download, which signals that your software isn't bloated. But even then, it's really not a huge deal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't include runtimes in a download if they are several times larger than the application/plugin itself, which sounds to be the case. I'd have the installer search for prerequisites, and if one isn't found, either &lt;code&gt;(1)&lt;/code&gt; prompt the user to download and install (ask, and then launch a web browser), or &lt;code&gt;(2)&lt;/code&gt; automatically download and install, after asking for permission to go online.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-10-24T01:09:37.270" CommentCount="3" />
  <row Id="14186" PostTypeId="2" ParentId="7744" CreationDate="2010-10-24T03:10:23.160" Score="0" ViewCount="" Body="&lt;p&gt;There's a lot more to learn in the .Net space than C# and asp.net. WCF, MVC, nHibernate etc etc. Having used both, I find .net the nicer toolset to work with, and as a language C# seems to be evolving a log more quickly than Java. Both will be around for a long time though. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recently had to make a similar choice, and went with .net. Don't regret it at all. &lt;/p&gt;&#xA;" OwnerUserId="5668" LastActivityDate="2010-10-24T03:10:23.160" />
  <row Id="14187" PostTypeId="2" ParentId="14183" CreationDate="2010-10-24T03:26:58.957" Score="2" ViewCount="" Body="&lt;p&gt;In short it depends on what kind of development you are doing.  If it's (limited to) basic windows/web development then it may not be cost effective.  However if you need to support a wide field of development activities (SharePoint, Web, Desktop) that may use other tools such as SQL Server it may pay for it self.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an example I currently work for a consulting company and I am supporting projects that are developing SharePoint applications for WSS 3.0 on Win 2003, a WPF application, and a ASP.NET MVC app backed by oracle.  The MSDN subscription helps in that I can get an OS license to run a SharePoint VM for dev purposes.  I've also got a different VM setup for development of the MVC project.  If you looked at purchasing a license for each of those OS's you would most likely be quickly pushing the basic MSDN price.  Add in a new project that requires SQL Server and you are probably there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am aware of a group that is trying to convince their manager that MSDN will be cheaper in the long run for them with setting up a proper SharePoint development activity then trying to purchase individual licenses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something else to consider is the fact that having access to try out the various MS products (versus a short term demo) and what that may or could mean to your future product development may prove useful.&lt;/p&gt;&#xA;" OwnerUserId="4819" LastActivityDate="2010-10-24T03:26:58.957" />
  <row Id="14188" PostTypeId="2" ParentId="14158" CreationDate="2010-10-24T03:34:56.000" Score="4" ViewCount="" Body="&lt;p&gt;I am going to assume you've written stored procedures, functions, etc to support various databases/schemas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, you can say you are a programmer.  However I would probably caveat it and say you are a DB programmer.  In my experience when people ask if someone is a programmer they seem to normally be asking if you are a application/web programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can understand your statement about C# taking a while to pickup.  I am helping to convert some DB programmers to application programmers and they are going through a learning pain as well.  Things that application developers take for granted the DB developers generally haven't had to think about (reference vs. value types, etc.).&lt;/p&gt;&#xA;" OwnerUserId="4819" LastActivityDate="2010-10-24T03:34:56.000" />
  <row Id="14189" PostTypeId="2" ParentId="14176" CreationDate="2010-10-24T03:49:29.333" Score="1" ViewCount="" Body="&lt;p&gt;I would assume that a longer download means they are more likely to get tired of waiting and try something else. People are impatient. The sooner they are using and loving you app the better. &lt;/p&gt;&#xA;" OwnerUserId="6272" LastActivityDate="2010-10-24T03:49:29.333" CommentCount="2" />
  <row Id="14190" PostTypeId="2" ParentId="14162" CreationDate="2010-10-24T03:49:59.380" Score="4" ViewCount="" Body="&lt;p&gt;I use ToDo List program, an open source code from codeproject&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codeproject.com/KB/applications/todolist2.aspx&quot; rel=&quot;nofollow&quot;&gt;http://www.codeproject.com/KB/applications/todolist2.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Very nice and with many features.&lt;/p&gt;&#xA;" OwnerUserId="1397" LastEditorUserId="1397" LastEditorDisplayName="" LastEditDate="2010-10-24T20:40:10.947" LastActivityDate="2010-10-24T20:40:10.947" />
  <row Id="14192" PostTypeId="2" ParentId="2284" CreationDate="2010-10-24T05:33:25.177" Score="1" ViewCount="" Body="&lt;p&gt;Great, you became the best programmer in all popular languages. Now, I work in a 40 story building that has only four elevators. Everyone comes to work at 9, takes lunch at 12 and leaves at 6.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure nobody has to wait more than ~2 minutes to get in an elevator car, and it had better not be crowded. Surely, the best programmer in the world could do that? BTW, 2/3 of the people push both the 'up' and 'down' call buttons because a rumor circulated that doing so reduces the wait to get into an elevator car.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your future self is always going to be better than your current self, so long as metacognition is not taken off the table. Just do your thing, enjoy it and get better at it. There are always more interesting problems to solve, many of which find even the 'best' problem solvers vastly under qualified.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-10-24T05:33:25.177" CommentCount="1" />
  <row Id="14193" PostTypeId="2" ParentId="14162" CreationDate="2010-10-24T05:42:56.797" Score="10" ViewCount="" Body="&lt;p&gt;I usually use a web based revision control system(Github, Bitbucket, Redmine, Google Code, ...) to store my source code and track bugs. If you think there's a bug in a specific code, you can create an issue with the revision number/changelist/changeset and specify which file and the range of lines you suspect.&lt;/p&gt;&#xA;" OwnerUserId="5968" LastActivityDate="2010-10-24T05:42:56.797" />
  <row Id="14195" PostTypeId="2" ParentId="500" CreationDate="2010-10-24T06:24:42.257" Score="1" ViewCount="" Body="&lt;p&gt;Working on anything of non-trivial complexity tends to be a good candidate for pair programming so that multiple people understand the code rather than just one developer knowing a portion of the code base.  Another case is where someone is wanting to transfer some skills.  An example here may be having someone that is really good at unit tests pair with someone not quite as familiar with the concept and thus helps to get an initial habit on something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for where to avoid pair programming, grunt work tasks that are straightforward where it would be better to divide the work into two groups and let each developer do some of the work separately to get the work done.  Some tasks can just require a fair bit of typing but aren't so big that it is worthwhile to spend a few hours trying to find a better way to do it as it could be done if each developer takes a brute force approach for a few hours.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-24T06:24:42.257" />
  <row Id="14196" PostTypeId="2" ParentId="14169" CreationDate="2010-10-24T06:25:03.960" Score="0" ViewCount="" Body="&lt;p&gt;First: use whatever case convention is generally accepted for the language of choice, and&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second: &lt;strong&gt;the really important one&lt;/strong&gt;, name classes, attributes and methods so you don´t need to write comments explaining them.&lt;/p&gt;&#xA;" OwnerUserId="5332" LastActivityDate="2010-10-24T06:25:03.960" />
  <row Id="14197" PostTypeId="2" ParentId="14124" CreationDate="2010-10-24T06:39:37.090" Score="3" ViewCount="" Body="&lt;p&gt;You need to persuade him to bother you rather less often.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I agree with all the suggestions above of a daily status report. I would also refer you and your boss to point 8 in Joel's article here: &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/fog0000000043.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-10-24T06:39:37.090" />
  <row Id="14198" PostTypeId="2" ParentId="13623" CreationDate="2010-10-24T06:45:52.223" Score="2" ViewCount="" Body="&lt;p&gt;In reading the question, and the answers, I'm kind of stunned by the vehemence of the NO case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've worked in software development for 25 years now, and I can say without any hesitation that programmers need a bunch of things to develop good code:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;A REASONABLE development environment. Not dinosaur. Neither does it need to be bleeding edge. Good enough not to be frustrating.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A good specification (how much is done with NO written specification?)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Good and supportive management.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A sensible development schedule.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A good understanding of the users AND THE ENVIRONMENT the users will have.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Further, on this last point, developers need to be in the mindset of what the users will use. If the users have supercomputers and are doing atom-splitting simulations or something where performance costs a lot of money, and the calculations run for many hours, then thinking performance counts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the users have 286 steam powered laptops then developing and having developers do their development test on the latest 47 GHz Core i9000 is going to lead to some problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those who say &quot;give developers the best and TEST it&quot; are partly right but this has a big MENTAL problem for the developers. They have no appreciation of the user experience until its too late - when testing fails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When testing fails - architectures have been committed to, management have had promises made, lots of money has been spent, and then it turns into a disaster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developers need to think like, understand, and be in the zone of the user experience from day 1.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those who cry &quot;oh no it does not work like that&quot; are talking out their whatsit. I've seen this happen, many times. The developers usual response is one of &quot;well tell the CUSTOMERS to buy a better computer&quot;, which is effectively blaming the customer. Not good enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So this means that you have several problems:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Keep the devs happy and piss of the management, increase the chances of the project failing.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Use slower machines for development, with the risk of upsetting the devs, but keeping them focussed on what really matters.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Put 2 machines on the devs desk AND FORCE THEM TO TEST ON THE CLUNKER (which they wont do because it is beneath contempt.... but at least its very clear then if there are performance problems in test).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Remember batch systems and punch cards? People waited an hour or a day for turnaround. Stuff got done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember old unix systems with 5 MHz processors? Things got done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Techo-geeks love chasing the bleeding edge. This encourages tinkering, not thinking. Something I've had arguments about with more juniour developers over the years.... when I urge them to get fingers away from the keyboard and spend more time reading the code and thinking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In development of code, there is no substitute for thinking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this case, my feeling is - figure out WHAT REALLY MATTERS. Success of the project? Is this a company making / killing exercise? If it is, you can't afford to fail. You can't afford to blow money on things that fail in test. Because test is too late in the development cycle, the impacts of failure are found too late.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[A bug found in test costs about 10x as much to fix as a bug found by a dev during development. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And a bug found in test costs about 100x as much to fix as that bug being designed out during the architectural design phase.]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this is not a deal breaker, and you have time and money to burn, then use the bleeding edge development environment, and suffer the hell of test failures. Otherwise, find another way. Lower end h/w, or 2 machines on each desk.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-10-24T06:45:52.223" CommunityOwnedDate="2010-10-24T06:45:52.223" CommentCount="5" />
  <row Id="14199" PostTypeId="2" ParentId="14162" CreationDate="2010-10-24T06:55:07.227" Score="5" ViewCount="" Body="&lt;p&gt;I've actually installed the Free MANTIS bugtracker system on my hosted web server (that I use for a blog and other things), and put all my defects in that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words I run my stuff as though it were professional and paid for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find it helps keep a better mindset (closing off defects, etc) as well as being consistent (ish) with other practices commonly used in industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use TODO notes in code, etc, as well - but only for notes top self like: &quot;one day I gotta make this more efficient, the bubble sort hurts performance&quot;. Or for more immediate notes about where you got up to when you were hauled off for dinner :)&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-10-24T06:55:07.227" CommentCount="1" />
  <row Id="14200" PostTypeId="1" AcceptedAnswerId="15326" CreationDate="2010-10-24T07:02:01.030" Score="2" ViewCount="1142" Body="&lt;p&gt;I want to download Visual Studio 2010 Express Edition to learn all that is new in it. I find it insufficient as there is no Crystal Reports integration in it. Apart from that I want to learn other enterprise features that are bundled with the Professional Edition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I download the VS 2010 Professional Edition, it is just limited to 90 days. Is there any other alternative for learners? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, is there any FREE alternative for reporting in Express Edition.&lt;/p&gt;&#xA;" OwnerUserId="6001" LastEditorUserId="6001" LastEditorDisplayName="" LastEditDate="2010-10-28T04:31:00.337" LastActivityDate="2010-10-28T15:14:18.323" Title="Reporting in Visual Studio 2010 Express" Tags="&lt;visual-studio-2010&gt;&lt;visual&gt;" AnswerCount="6" CommentCount="2" />
  <row Id="14201" PostTypeId="2" ParentId="14052" CreationDate="2010-10-24T07:02:02.870" Score="2" ViewCount="" Body="&lt;p&gt;There are those who can produce more output than others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are those who can produce output with a lower defect rate than others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those who can CONSISTENTLY produce more output, with lower than normal defect rates, might be worthy of being called as Super-Programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being known of or thought of as such is usually only apparent to an enlightened manager with the benefit of hind sight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Somebody who things they ARE a super-programmer probably has a big ego and thinks they are good. That does not make them good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Attitude &amp;lt;&gt; Ability.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-10-24T07:02:02.870" />
  <row Id="14202" PostTypeId="2" ParentId="2682" CreationDate="2010-10-24T07:22:34.190" Score="2" ViewCount="" Body="&lt;p&gt;Making a $ from something where the source is given away is kinda hard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea of selling licenses which include the source is more sensible, especially on the context of this being a library. People will have to poke into the internals now and again and that needs to be easy for them to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just putting up everything, source and all, and expecting revenue? Might get a few who pay, but there will be a large number who won't.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-10-24T07:22:34.190" />
  <row Id="14203" PostTypeId="2" ParentId="14169" CreationDate="2010-10-24T07:28:07.063" Score="7" ViewCount="" Body="&lt;p&gt;You should follow the lexical conventions of the file, subsystem, project, and language you're working in, in roughly that order of precedence.  This will include things like the use of CamelCase versus underscores, conventional use of prefixes/suffixes, Hungarian notation (either Simonyi's original intent or the broken Systems Hungarian or neither), and so on and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you're past the above (and that's what most people argue about), naming guidelines really boil down to effective communication: how do you make your code readable.  Here are some thoughts that I have come to believe over the years.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Choose names that are understandable when read out loud.  This means they should largely follow the phrase order of the (natural) language the team writing the software.  (Many of the later suggestions in fact are special cases of this one.)  For example, given an object type &quot;foo&quot;, the function name &lt;code&gt;allocate_foo&lt;/code&gt; is better than &lt;code&gt;foo_allocate&lt;/code&gt; because the former is the more natural English phrase.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Name boolean variables, members, or functions in the postive sense.  For example, prefer &lt;code&gt;done&lt;/code&gt; to &lt;code&gt;notFinished&lt;/code&gt;, &lt;code&gt;empty&lt;/code&gt; to &lt;code&gt;notFull&lt;/code&gt;, etc.  The latter choices will lead to much more complicated expressions in conditional statements.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Name functions that test some condition in the form of a question: &lt;code&gt;isDone&lt;/code&gt;, or &lt;code&gt;hasSomeInterestingProperty&lt;/code&gt;, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Name accessors with noun phrases, with adjectives as necessary.  &lt;code&gt;radius&lt;/code&gt; or &lt;code&gt;backgroundColor&lt;/code&gt; and so on, and avoid useless prefixes on these like &lt;code&gt;get&lt;/code&gt; or &lt;code&gt;find&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Name update operations with verb phrases.  So, &lt;code&gt;sort&lt;/code&gt; or &lt;code&gt;insert&lt;/code&gt; or &lt;code&gt;insertAfter&lt;/code&gt; and so on.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Avoid vague names like &lt;code&gt;handleFoo&lt;/code&gt;, except perhaps for things like state machine event handlers where there isn't really much else to say.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Avoid names that expose implementation internals.  Don't write &lt;code&gt;findThingOnSomeQueue&lt;/code&gt; if the reader has to look inside the function to see what a &lt;code&gt;SomeQueue&lt;/code&gt; is,  just say &lt;code&gt;findThing&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;One suggestion that is often in tension with those above, and yet I also believe is quite important:  Don't be (too) verbose.  Good notation is concise notation, and names are a form of notation.  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Do use abbrevations for key concepts (whether in the user domain or in the implementation domain) but use them consistently.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do use short local variable names, especially for conventional uses such as loop indices or iterators.  Otherwise, local names need to be longer as the function gets longer.  (If your local variable names start to get long, your function is too big.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I suspect that this last set of thoughts is where I most differ from current conventional wisdom.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, I would highly recommend reading &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0132350882&quot; rel=&quot;nofollow&quot;&gt;Clean Code&lt;/a&gt; by Robert C. Martin.  It's probably the best book I've ever read on the general issues of code and design tidiness (including naming conventions) at the level of the function, file, and subsystem.&lt;/p&gt;&#xA;" OwnerUserId="6273" LastEditorUserId="6273" LastEditorDisplayName="" LastEditDate="2010-10-27T03:44:39.043" LastActivityDate="2010-10-27T03:44:39.043" CommentCount="2" />
  <row Id="14205" PostTypeId="2" ParentId="1588" CreationDate="2010-10-24T07:47:34.133" Score="5" ViewCount="" Body="&lt;p&gt;The major plus point with a laptop is portability, and that's a huge plus, but a &lt;strong&gt;desktop&lt;/strong&gt; has the following performance and productivity advantages:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Bigger screen&lt;/strong&gt;. The average desktop screen is larger than the average laptop screen and you have the option of going all the way up to 30&quot; or so. A laptop can do the same resolution, yes, but the pixels are &lt;em&gt;tiny&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Multiple monitors&lt;/strong&gt;. Yes, the same thing could be achieved using a laptop and a USB/PCMCIA video card, but then you'd be tied to a desk.. defeating the point of the laptops' portability as they'd need to be at the same height to avoid getting a crick in your neck.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Faster/Multiple CPUs&lt;/strong&gt;. A desktop can have the very fastest of processors and more than one processor too. A top-of-the-line laptop has a fast processor, but it usually tops out at a Core i5 and never the fastest. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Better/Multiple Graphics cards&lt;/strong&gt;. A desktop can have multiple high-end graphics cards, possibly linked together.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Lots of RAM&lt;/strong&gt;. If you want fast response, you put in  as much RAM as you can afford. Not having to swap memory gives a massive performance boost, even if you were using Solid State Drives.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Choice of Keyboard&lt;/strong&gt;. You can have a bigger keyboard with dedicated function buttons (Volume, Cut/Copy/Paste, etc) and even a &lt;a href=&quot;http://www.microsoft.com/hardware/mouseandkeyboard/productdetails.aspx?pid=043&quot; rel=&quot;nofollow&quot;&gt;split one for improved ergonomics.&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Choice of Mouse&lt;/strong&gt;. You could even have a vertical mouse, trackball or graphics tablet, since you're already sat at a desk. It's hard to use a mouse &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Better Speakers&lt;/strong&gt;. The speakers built into a laptop are very small and often cheap.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Wired networking&lt;/strong&gt;. No need to worry about &lt;a href=&quot;http://www.theregister.co.uk/2010/10/22/google_acknowledges_street_views_wifi_data_contained_emails_urls_passwords/&quot; rel=&quot;nofollow&quot;&gt;Google Street View reading your emails&lt;/a&gt; if you're not using Wifi. If you've another machine on the same network (e.g. NAS device), it's a lot quicker to use Wired networking.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Remote Access&lt;/strong&gt;. It's easy to install &lt;a href=&quot;http://www.logmein.com/&quot; rel=&quot;nofollow&quot;&gt;secure remote access software&lt;/a&gt; such that you can get to your desktop PC from your Phone or some other PC. Many routers can be configured to wake up the PC from 'off' (not just sleep), especially if you have AMT.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Faster/Multiple Hard Drives&lt;/strong&gt;. SSD is the fastest, yes, but also expensive for lots of storage. If you're doing serious video editing, you'd want multiple hard drives, which is difficult in a laptop. Yes, you could connect a big USB drive to a laptop, but that's a hassle and can't easily be done in the airplane/bus/train.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Better/More webcams&lt;/strong&gt;. The webcam built into a laptop is often fairly poor compared to a decent HD USB webcam.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Expansion&lt;/strong&gt;. All of the above hardware items can be upgraded at any time without replacing the entire machine.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-24T07:47:34.133" CommunityOwnedDate="2011-01-27T05:21:04.337" CommentCount="2" />
  <row Id="14206" PostTypeId="1" AcceptedAnswerId="14277" CreationDate="2010-10-24T07:50:27.410" Score="6" ViewCount="272" Body="&lt;p&gt;I'm a student of web development languages like PHP, Ruby, and Python. Currently I'm working on some school projects but I'm trying to work on some weekend projects which I can use to showcase for potential employers, what's the best way to set this up? Specifically, are there any tips you have for a new programmer because I don't want opinions on how this or that should or shouldn't be set up. If possible please give real examples. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; what about Git? Is this a good place to show my projects?&lt;/p&gt;&#xA;" OwnerUserId="3910" LastEditorUserId="3910" LastEditorDisplayName="" LastEditDate="2010-10-24T21:57:00.777" LastActivityDate="2011-04-17T10:57:28.887" Title="How do I showcase my work experience in programming?" Tags="&lt;ruby&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="1" />
  <row Id="14207" PostTypeId="2" ParentId="14089" CreationDate="2010-10-24T08:35:57.493" Score="1" ViewCount="" Body="&lt;p&gt;A lot of the answer depends on the API you're wrapping, the target audience for wrapping it and the language you're using. If you're exposing an API written in one particular technology to a different technology, there'd be value in smoothing out some of the common problems in the wrapped technology. For example, .NET wraps up some Win32 APIs, like CreateFile() to read a file. It's quite easy to use the wrong parameters for CreateFile(), so if you want to do something simple like read a text file, there's a utility function to achieve just that operation, rather than just encapsulating each function with a wrapped version.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Checking the input parameters for empty/null/out-of-range before calling the wrapped API would have value, but not if its at the expense of performance - better to decipher the problem when the wrapped function fails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Exceptions, if available in your wrapping language, would be appropriate for conveying errors to the caller.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-24T08:35:57.493" />
  <row Id="14208" PostTypeId="2" ParentId="14206" CreationDate="2010-10-24T08:42:50.600" Score="2" ViewCount="" Body="&lt;p&gt;I would suggest looking into the Google AppEngine as it allows you to deploy your web application (Python/Java) to their servers for free for small projects.  You can then have a persistent showcase for your abilities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then make that application do something useful and make it as good as you can.  Also make the code easily accessible so they can see how good you are at writing maintainable code.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="7762" LastEditorDisplayName="" LastEditDate="2011-04-17T10:14:34.043" LastActivityDate="2011-04-17T10:14:34.043" CommentCount="2" />
  <row Id="14209" PostTypeId="2" ParentId="14200" CreationDate="2010-10-24T08:46:34.957" Score="2" ViewCount="" Body="&lt;p&gt;After 30 days, you must 'register' the software using a .NET passport account, which is free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While the product suite is complete - you can write code, no problem - a lot of the interesting features are not there. No class diagrams, mixed-language projects, etc and certainly not any 'Enterprise Features'. In fact, you're actually downloading an ISO file with 4 distinct products in it, so it doesn't feel as 'integrated' as VS Pro.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-24T08:46:34.957" CommentCount="1" />
  <row Id="14210" PostTypeId="2" ParentId="14176" CreationDate="2010-10-24T08:50:32.897" Score="0" ViewCount="" Body="&lt;p&gt;Look at the motivation for Microsoft developing the .NET Client Profile - a smaller download because 350MB for the full .NET framework installer is pretty big. As @Jason says, people are impatient - don't assume that they're on  wired networking or a decent broadband connection. Indeed, this site is migrating from the West Coast to the East Coast of the US to address performance concerns.. and this site is mostly text.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's no need to ship the frameworks as part of your install - the VS Installer support will check for the existence of your dependent frameworks and instruct the user how to get them.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-24T08:50:32.897" CommentCount="1" />
  <row Id="14211" PostTypeId="2" ParentId="12013" CreationDate="2010-10-24T09:04:40.167" Score="0" ViewCount="" Body="&lt;p&gt;Have you tried &lt;a href=&quot;http://www.cutepdf.com/Products/CutePDF/writer.asp&quot; rel=&quot;nofollow&quot;&gt;CutePDF&lt;/a&gt;? It is freeware and works very well.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-24T09:04:40.167" />
  <row Id="14212" PostTypeId="1" CreationDate="2010-10-24T09:17:46.643" Score="9" ViewCount="269" Body="&lt;p&gt;I've been doing general ANSI C/Console C++/Java/Web development on Mac hardware for about ten years. I make no claims of objective superiority over other platforms, it just satisfies my personal tastes. With the success of the iPhone and the related App store there was some speculation that Apple would get out of the general purpose computer market, and become a closed software ecosystem, focusing on consumer appliances. I pooh-poohed the speculation at the time, but this week Apple announced that a) they were opening an App store for the Mac, b) Java applications would not be eligible for the App store, c) the Apple JVM was being deprecated and might not be available for future releases of OS X.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not a Java developer per se, but I work in a research lab that occasionally writes Java applications, and also depends on tools written Java. This has the potential to be a huge pain in the butt for us. As of now, there is no other JVM for OS X that we can point our end users to. Soy Latte and OpenJDK might be appropriate for developers, but the complexity of the installation makes them inappropriate for end users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually I expect Oracle/SUN will produce a replacement JVM for OS X. More worrisome to me is that Apple used to specifically advertise that it was an excellent platform for scientific development, because they supported all major language platforms. Is the deprecation of their JVM a sign that this market no longer interests them?&lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2011-03-09T02:39:45.113" Title="Is Apple getting out of the general purpose development platform business?" Tags="&lt;java&gt;&lt;apple&gt;&lt;jvm&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="2" />
  <row Id="14213" PostTypeId="2" ParentId="14212" CreationDate="2010-10-24T09:19:42.227" Score="2" ViewCount="" Body="&lt;p&gt;Apple was never in that business. The java community used the JDK apple supplied for cocoa-java and WebObjects development.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-10-24T09:19:42.227" CommentCount="4" />
  <row Id="14214" PostTypeId="1" AcceptedAnswerId="18943" CreationDate="2010-10-24T09:35:04.877" Score="0" ViewCount="169" Body="&lt;p&gt;It has been announced that Apple deprecates their JVM.   It is a really nice piece of work giving an excellent user experience for Swing application on OS X, and it would be a pity if it just went away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I see it the only realistic long term alternative to Apples own JVM is the OpenJDK unless Oracle chooses to take over the Apple JVM which I doubt as OS X is not a core platform for Oracle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But for this to work Apple needs to donate their enhancements to OpenJDK, and it needs to be under the GPL.  They did so already with WebKit so there is precedent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would be the best way to make them do so?  Make a stackexchange poll?  Get James Gosling and other high profile Java persons to say so?  Email Steve Jobs?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suggestions?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;EDIT:  Well, &lt;a href=&quot;http://blogs.oracle.com/henrik/2010/11/oracle_and_apple_announce_openjdk_project_for_osx.html&quot; rel=&quot;nofollow&quot;&gt;Apple has now promised to do so&lt;/a&gt; :)  Shows that asking on StackExchange really &lt;em&gt;MAKES A DIFFERENCE&lt;/em&gt;!  Great!&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-11-14T15:37:58.907" LastActivityDate="2011-03-08T05:16:20.950" Title="What would be the best way to get Apple to donate their JVM-work to OpenJDK?" Tags="&lt;java&gt;&lt;apple&gt;&lt;jvm&gt;&lt;osx&gt;" AnswerCount="2" CommentCount="4" />
  <row Id="14215" PostTypeId="2" ParentId="14212" CreationDate="2010-10-24T09:35:29.350" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Apple used to specifically advertise that it was an excellent platform for scientific development, because they supported all major language platforms.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Compared to Apple's current main business - mp3 players, cell phones and associated toy apps - the potential extra income from offering a scientific development platform is negligible. Money talks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I believe that someone will create an easy-to-install, de facto OpenJDK distribution for OSX any time soon. Coming up with an installer should not be a big deal; the important thing is that OpenJDK can be compiled and works with OSX almost out of the box (so far; thanks to Apple's closed philosophy, no one besides them can give any &lt;em&gt;guarantees&lt;/em&gt; on how long it will work).&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-24T09:44:47.457" LastActivityDate="2010-10-24T09:44:47.457" />
  <row Id="14216" PostTypeId="2" ParentId="13798" CreationDate="2010-10-24T09:38:02.280" Score="1" ViewCount="" Body="&lt;p&gt;Tricks that combine bitwise logical operations, bitwise shift operations and arithmetic operations can be understood by people who have studied the construction of a binary adder using logic gates (and, or, not). Outside that circle, it is very difficult to understand without a detailed comment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is useful when programming &lt;a href=&quot;http://en.wikipedia.org/wiki/SIMD&quot; rel=&quot;nofollow&quot;&gt;SIMD&lt;/a&gt; units, especially if the CPU's architecture intentionally left out some SIMD instructions because they could be emulated by a few others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, the architecture may not define any instructions for taking the negative values of a group of 16 bytes, but that can be emulated by bitwise negating and then adding 1. Likewise, subtraction can be omitted too, because it can be emulated by taking the negative of the second operand. The availability of the &quot;alternate route&quot; is the reason for omitting certain instructions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Likewise, the SIMD may only support parallel 8-bit addition, without implementing addition for wider elements such as 16-bit, 32-bit or 64-bit. To emulate them, one needs to extract the sign bit from the 8-bit calculation result, then perform the carry operation on the next element.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-24T09:38:02.280" />
  <row Id="14217" PostTypeId="2" ParentId="39" CreationDate="2010-10-24T09:43:47.780" Score="25" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Being a good software engineer is 3% talent, 97% not being distracted by the internet.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;— Unknown, appropriated&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="5570" LastEditorUserId="5570" LastEditorDisplayName="" LastEditDate="2010-12-26T11:59:01.860" LastActivityDate="2010-12-26T11:59:01.860" CommunityOwnedDate="2010-10-24T09:43:47.780" CommentCount="2" />
  <row Id="14218" PostTypeId="1" AcceptedAnswerId="14523" CreationDate="2010-10-24T10:06:55.007" Score="6" ViewCount="383" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/2654/what-parts-of-your-coding-standard-contribute-to-quality-code&quot;&gt;What parts of your coding standard contribute to quality code?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Standards that relate to readability? Encapsulation guidelines? Variable usage? OOP guidelines? Spartan Programming ideas? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Feel free to interpret &quot;quality code&quot; as you see fit (aesthetic, less problematic, most secure, etc.), but make it so your answer will be something that if you had to pick one coding standard element you always want to have defined a certain way in a project it will be &lt;em&gt;this&lt;/em&gt;. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-10-26T12:00:39.973" ClosedDate="2010-10-27T01:28:26.937" Title="Which coding standards do you find the most helpful for quality code, and why?" Tags="&lt;coding-standards&gt;" AnswerCount="8" CommentCount="1" FavoriteCount="2" />
  <row Id="14219" PostTypeId="2" ParentId="13231" CreationDate="2010-10-24T10:08:58.590" Score="0" ViewCount="" Body="&lt;p&gt;I started on Objective-C with the nextstep platform, back when there wasn't even a reference counting system for memory management. Learning the objective-c syntax itself took less than a day, and within a week (bear in mind I was a student so had to learn some physics and go to lectures in this time too) I could write simple applications of about the same complexity as the samples, but with different functionality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It sounds trite but is correct to say that I'm still learning, as there are so many things I haven't done yet. Obviously there are new things, particularly UIKit, that come along, but as another example I've never used NSForm in an application and that became available in OpenStep.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The good news is that now there's much better documentation, a bigger community and more third-party resources like the wiki and books than there were a decade ago. So I imagine the first part of learning Cocoa-understanding objc and the basic structure of an application-takes the same week that it took me. However the second 90%, discovering and using all the Apis can be done much more readily.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-10-24T10:08:58.590" CommentCount="3" />
  <row Id="14220" PostTypeId="2" ParentId="14158" CreationDate="2010-10-24T10:19:29.560" Score="1" ViewCount="" Body="&lt;p&gt;T-SQL is code, it is a programming language: what more do you need?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although, if are re-designing and tuning the work of other &lt;em&gt;programmers&lt;/em&gt; T-SQL efforts to make it work then perhaps you're a &lt;em&gt;developer&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a Developer DBA who knows a little of C# and other languages. The label doesn't worry me...&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-10-24T10:19:29.560" CommentCount="1" />
  <row Id="14221" PostTypeId="2" ParentId="14218" CreationDate="2010-10-24T10:38:35.897" Score="1" ViewCount="" Body="&lt;p&gt;Mine has to be that errors are not ignored, and if a do-nothing handler exists then the reason must be documented. In languages with checked exceptions like Java this is more or less automatic, but I work a lot with objective-c where you can easily ignore error conditions. My reasons are twofold:&#xA; - I'm a security guy, and failing to treat error conditions correctly can lead to vulnerabilities in an application&#xA; - it forces programmers to think about what errors might occur and the consequences of them, leading to more robust code and greater understanding of the limitations of an API or class. &lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-10-24T10:38:35.897" />
  <row Id="14222" PostTypeId="2" ParentId="14214" CreationDate="2010-10-24T10:40:10.560" Score="2" ViewCount="" Body="&lt;p&gt;Show them how it would contribute to their stock price. Apple is a publicly traded company, so has a legal obligation to work in the interests of its shareholders.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-10-24T10:40:10.560" />
  <row Id="14223" PostTypeId="2" ParentId="14218" CreationDate="2010-10-24T10:45:02.217" Score="3" ViewCount="" Body="&lt;p&gt;I'm in .NET technologies and I use Microsoft's coding guidelines because they are the most widely used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I try to avoid all non standard technologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The more non standard technologies you use, the more difficult recruiting is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And recruiting .NET developers can be very chalenging in most part of the world (I've two open positions since 12 months).&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-24T10:45:02.217" CommentCount="9" />
  <row Id="14224" PostTypeId="1" AcceptedAnswerId="14234" CreationDate="2010-10-24T11:49:26.400" Score="7" ViewCount="779" Body="&lt;p&gt;So I've handed in my notice at my current job as I've been offered a job at another company. However, my current employer doesn't want to lose me and they want to know what I want to stay. I mostly enjoy working there so I'd be open to negiotiation. The new job was an unexpected opportunity that presented itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Such things I'd be looking for are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Better computers for developers&lt;/li&gt;&#xA;&lt;li&gt;Opportunity to work from home occasionally&lt;/li&gt;&#xA;&lt;li&gt;Improved internet access (e.g. able to download software, no keyword blocking)&lt;/li&gt;&#xA;&lt;li&gt;Chance to work on other technologies than my primary (we do have projects on other technologies)&lt;/li&gt;&#xA;&lt;li&gt;Pay increase (though this isn't my primary motivation)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I found out that some of these were already in progress when I handed in my notice :(&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it ever a good idea to remain at a company after you've resigned? What if they meet all my conditions and alter my contract accordingly? Will I burn my bridges at the new company (I've already told them I'd accept their offer)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Thanks for the answers. Quite a mixed bag which was interesting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, just so you know, I've chosen to stay at my current company. So far, it definately feels like the right decision. Guess I won't know for a few months whether is was though.&lt;/p&gt;&#xA;" LastActivityDate="2011-02-22T07:25:13.550" Title="Quit job for another but current employer doesn't want to lose me. Would it be a bad idea to stay?" Tags="&lt;jobs&gt;&lt;work-environment&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="1" />
  <row Id="14225" PostTypeId="2" ParentId="14218" CreationDate="2010-10-24T11:49:33.923" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Write readable code instead of comments&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A comment followed by a block of code can be replaced by a method which states the intent just as well as the comment, and makes the code more modular and reusable as&#xA;well. &lt;/li&gt;&#xA;&lt;li&gt;It makes refactoring happen more often. &lt;/li&gt;&#xA;&lt;li&gt;It helps us write simple, readable &lt;a href=&quot;http://franksworld.com/blog/archive/2010/07/01/12035.aspx&quot; rel=&quot;nofollow&quot;&gt;clean code&lt;/a&gt;. Readable code is a joy to work with. &lt;/li&gt;&#xA;&lt;li&gt;It tends to make methods short and sweet. &lt;/li&gt;&#xA;&lt;li&gt;It avoids comments getting out of sync with the code &lt;/li&gt;&#xA;&lt;li&gt;It challenges you to rewrite commented code that is hard to understand.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Compare this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public void update() {&#xA;  // Fetch the data from somewhere&#xA;  lots of lines of;&#xA;     code;&#xA;     for;&#xA;       fetching;&#xA;     data;&#xA;  from somewhere;&#xA;  // Sort the data&#xA;  more lines of;&#xA;      code;&#xA;         which sorts;&#xA;         stuff;&#xA;      around;&#xA;  a bit and then;&#xA;  // Update the database&#xA;  lines of code;&#xA;      which uses;&#xA;         some lib;&#xA;         to update;&#xA;            using iteration;&#xA;            and logic; &#xA;      the database;&#xA;  done;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;With this version where comments are replaced with function calls:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public void update() {&#xA;    data = fetchData();&#xA;    sorted = sortResults(data);&#xA;    updateDatabase(sorted);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-10-26T08:19:38.077" LastActivityDate="2010-10-26T08:19:38.077" CommentCount="8" />
  <row Id="14226" PostTypeId="1" CreationDate="2010-10-24T11:54:35.490" Score="7" ViewCount="544" Body="&lt;p&gt;Formerly: &lt;em&gt;Do you have a phone on your desk?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My intent with this question is to get experiences from fellow programmers who have (or don't have) a phone on the desk. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people have one and wish they didn't, some don't and think it would be cool to have one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: Question changed based on &lt;a href=&quot;http://meta.programmers.stackexchange.com/questions/485/i-dont-think-people-or-me-understand-programmers-se&quot;&gt;meta programmers suggestion&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1061" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-10-29T11:58:44.260" LastActivityDate="2011-01-07T02:23:03.807" CommunityOwnedDate="2011-01-07T02:23:03.807" ClosedDate="2011-01-07T13:30:48.843" Title="How do you feel about having (or not) a phone on your desk?" Tags="&lt;communication&gt;&lt;desk&gt;" AnswerCount="22" CommentCount="9" FavoriteCount="0" />
  <row Id="14227" PostTypeId="2" ParentId="39" CreationDate="2010-10-24T11:56:54.913" Score="17" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;There, it should work now.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;— All programmers&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-10-24T11:56:54.913" CommunityOwnedDate="2010-10-24T11:56:54.913" />
  <row Id="14228" PostTypeId="2" ParentId="14158" CreationDate="2010-10-24T12:21:42.967" Score="1" ViewCount="" Body="&lt;p&gt;If you are writing stored procedures and so processing data in the DB tables with logic then I would call you a programmer.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might want to say you are a DB programmer or a procedural programmer so as not to be confused with an object oriented programmer but programming in my mind is simply processing data with first order logic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding C# you need to get your head around object orientating programmer to master it which is very different to database programmer but I would say C# is a great language to get up to speed with Objects in.  Good luck!&lt;/p&gt;&#xA;" OwnerUserId="2652" LastActivityDate="2010-10-24T12:21:42.967" />
  <row Id="14229" PostTypeId="2" ParentId="14226" CreationDate="2010-10-24T12:25:46.517" Score="0" ViewCount="" Body="&lt;p&gt;Yes.  It is needed for calling out of the house, and for internal calls which does not warrant an email or is too cumbersome for an IM.    Fortunately I do not have customers calling me directly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't have one, and your manager don't think you need one, good for you :)&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-24T12:25:46.517" CommunityOwnedDate="2011-01-07T02:23:03.807" />
  <row Id="14230" PostTypeId="2" ParentId="14226" CreationDate="2010-10-24T12:28:32.267" Score="3" ViewCount="" Body="&lt;p&gt;Yes. I wouldn't be able to talk to the offsite people without it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't get so many calls that it's a distraction. I think if you're getting that many calls, then the phone itself is not the problem... (that is, if it wasn't phone calls, it would be people walking up to you/IMs/emails - emails you can ignore, but only for so long)&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-24T12:28:32.267" CommunityOwnedDate="2011-01-07T02:23:03.807" />
  <row Id="14231" PostTypeId="2" ParentId="39" CreationDate="2010-10-24T12:33:51.580" Score="1" ViewCount="" Body="&lt;p&gt;By Mike Williams, one of the creators of Erlang:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Find the right methods—Design by Prototyping.&lt;/li&gt;&#xA;&lt;li&gt;It is not good enough to have ideas, you must also be able to implement them and know they work.&lt;/li&gt;&#xA;&lt;li&gt;Make mistakes on a small scale, not in a production project.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-10-24T12:33:51.580" CommunityOwnedDate="2010-10-24T12:33:51.580" />
  <row Id="14232" PostTypeId="2" ParentId="14224" CreationDate="2010-10-24T12:44:02.120" Score="4" ViewCount="" Body="&lt;p&gt;I'm a little confused as you say your &quot;contract&quot; could be altered, are you an employee, or a contract developer? If you are a contractor the terms for breaking the deal should be clear. I'll answer this in two ways, once like an employee, and once like a contractor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Employee&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously things were not to your liking or else you would not have accepted the new position. Technically you could bail on the new guys and stay where you are but I would say no, time to move on. If you stay you will be resented. If you'd gone the normal route of talking to your manager about your misgivings and seen nothing change and the only thing that will cause change is threatening to leave then it is not a good situation, regardless of their promises of future changes. Whatever small changes you get now (including a raise) will be resented as they were made under duress. Despite protestations to the contrary, there will be some ill will. You have already shown your hand that you are not 100% on board and it will be remembered. Go to the new gig and do a solid, professional job. In the same vein be VERY professional on your way out of this one. Do NOT take the opportunity to take shots at people, shake hands and be nice. You never know when you will see people again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Contractor&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are on a contract then you are talking about a contract re-negotiation. There should be language in the contract about it. If there is not there MUST be some wording about the termination of the contract (probably something about &quot;employment at will&quot; or such). At that point, not knowing your age or professional reputation, it really becomes a judgment call that I can't make without more data. If the contract was written to allow the company to finish a particular project it would be professional to finish that off, do good work and then re-negotiate for the next block of work. The other items you mention really sound like employee things, but if they're conditions of the contract, negotiate those too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Final observation: If you've told the new company that you would accept their offer, but you do not have a job offer / contract IN WRITING and in your hand you have nothing. Keep that in mind with all jobs. Right up until you are sitting at a desk on-site and are sure you will be paid you don't have much (well, at least in the USA and Canada where employers can play pretty fast and loose with things and trust to you not wanting to spend a bunch of money on a lawyer).&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-10-24T12:44:02.120" CommentCount="1" />
  <row Id="14233" PostTypeId="2" ParentId="14226" CreationDate="2010-10-24T12:48:50.297" Score="2" ViewCount="" Body="&lt;p&gt;Yes and personally I hate it.  During coding sessions I put my headphones on and usually never hear my phone ring.  Next I look over and see I have voicemails.  Upon checking these they are always able to be sent as email. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our development team, we use some form of IM for communication.  &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-24T12:48:50.297" CommunityOwnedDate="2011-01-07T02:23:03.807" CommentCount="5" />
  <row Id="14234" PostTypeId="2" ParentId="14224" CreationDate="2010-10-24T12:55:57.333" Score="3" ViewCount="" Body="&lt;p&gt;Hi there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was once offered a job at a new company, but after some thought, I decided to turn the offer down. I won't go into the specifics of why, but I can offer some advice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you choose to decline the offer of joining the new company, do so by meeting with them if you can. If this is not practical then call the company instead, or write them a letter. I tend to think of emailing as a last resort - it's like dumping your girlfriend via a text message.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Upon informing my current employer of my decision to stay, we had a &quot;clearing the air&quot; meeting to talk about my frustrations there. This was invaluable. It did not result in all my points being rectified, but I did end up gaining some of the things I wanted. (At the time, I was doing 100% support work for all our SharePoint clients, which was way too much to take on. Based on this, my employer offered to either get another dev on the team, or to ask an existing dev to help out).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although I was given the offer in writing, I had not verbally (or written) accepted their offer. The fact that you have accepted the job should not be a problem, as long as you have not signed any contracts with them. In that case, I don't know what the legal circumstances are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately this experience did not introduce any bad feelings between me and my current employer, and in fact I ended up becoming even more valuable to the team (rather then being left to feel like an outcast who didn't want to be a part of the company). If you are going to stay at your current employer, you must give 100% to them, else they will feel like you might be just hanging out looking for a better job when it comes up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers.&#xA;Jas.&lt;/p&gt;&#xA;" OwnerUserId="3668" LastActivityDate="2010-10-24T12:55:57.333" />
  <row Id="14235" PostTypeId="2" ParentId="14206" CreationDate="2010-10-24T13:26:10.370" Score="1" ViewCount="" Body="&lt;p&gt;Usually participating to an Open-source project gives you some coverage, and some credibility as a developer, either a ruby or a php open project, that have everyday application into a enterprise environment.&#xA;Your commit and contribution to the project is traceable.&lt;/p&gt;&#xA;" OwnerUserId="6295" LastActivityDate="2010-10-24T13:26:10.370" />
  <row Id="14236" PostTypeId="2" ParentId="14052" CreationDate="2010-10-24T13:40:16.593" Score="0" ViewCount="" Body="&lt;p&gt;Yes, and his name is &lt;a href=&quot;http://en.wikipedia.org/wiki/John_D._Carmack&quot; rel=&quot;nofollow&quot;&gt;John Carmack&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6300" LastActivityDate="2010-10-24T13:40:16.593" />
  <row Id="14237" PostTypeId="2" ParentId="14226" CreationDate="2010-10-24T13:40:17.707" Score="0" ViewCount="" Body="&lt;p&gt;I have mine permanently diverted to voicemail, but then I only seem to get calls from recruiters.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-10-24T13:40:17.707" CommunityOwnedDate="2011-01-07T02:23:03.807" />
  <row Id="14238" PostTypeId="2" ParentId="14226" CreationDate="2010-10-24T13:53:13.417" Score="8" ViewCount="" Body="&lt;p&gt;Being profoundly Deaf I do not have a phone as such but do have a minicom. The fortunate side effect of having a minicom and people requiring an 18002 XXX number to call in is that no-one has ever worked it out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore I have the perfect situation of being able to call anyone I need to converse with without anyone being able to call me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my humble opinion Phones should be treated like Messenger and Email. You enable them only when your work load permits interruptions, taking a call on &quot;Do you need any envelopes from the stationary cupboard&quot; while trying to decipher your predecessors understanding of RegEx (or lack thereof) could be extremely counter productive.&lt;/p&gt;&#xA;" OwnerUserId="6296" LastActivityDate="2010-10-24T13:53:13.417" CommunityOwnedDate="2011-01-07T02:23:03.807" CommentCount="2" />
  <row Id="14242" PostTypeId="2" ParentId="14218" CreationDate="2010-10-24T14:17:26.783" Score="0" ViewCount="" Body="&lt;p&gt;Given most business constrain code quality is very difficult as the benefits are very difficult to measure. &#xA;Making one appreciate the quality of it is very subjective and time consuming, and I prefer to delegate to automated tool (like fxcop for dotnet), then rely on human eyes. The trouble is dealing with &quot;clever&quot; programmer that have the habit of coding &quot;clever&quot; code (that give hard to debug routine).&lt;/p&gt;&#xA;" OwnerUserId="6295" LastActivityDate="2010-10-24T14:17:26.783" />
  <row Id="14244" PostTypeId="2" ParentId="14224" CreationDate="2010-10-24T14:31:27.043" Score="1" ViewCount="" Body="&lt;p&gt;A good opportunity is when you can face new challenge (new function, new industry, new everything).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So maybe it's better to stay where you are. Here is what you should ask to stay:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Better computers for developers&lt;/li&gt;&#xA;&lt;li&gt;Opportunity to work from home occasionally&lt;/li&gt;&#xA;&lt;li&gt;Improved internet access (e.g. able to download software, no keyword blocking)&lt;/li&gt;&#xA;&lt;li&gt;Chance to work on other technologies than my primary (we do have projects on other technologies)&lt;/li&gt;&#xA;&lt;li&gt;Pay increase (though this isn't my primary motivation)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As you can see, I just copy/pasted what you wrote above...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not that complicated isn't ?&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-24T14:31:27.043" />
  <row Id="14247" PostTypeId="2" ParentId="14226" CreationDate="2010-10-24T14:56:23.317" Score="0" ViewCount="" Body="&lt;p&gt;I have one, but didn't ask for it. I get very few calls and miss most that I do since I wear headphones and don't notice the light flashing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have an email notification for voicemail, but the .wav file capability of our system as been deactivated. The powers-that-be thought being able to have a copy of the voice mail message outside the phone system (very closed/proprietary) was a liability.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-24T14:56:23.317" CommunityOwnedDate="2011-01-07T02:23:03.807" />
  <row Id="14248" PostTypeId="2" ParentId="14224" CreationDate="2010-10-24T15:10:51.593" Score="3" ViewCount="" Body="&lt;p&gt;You should have negotiated with the old company before accepting with the new one. &#xA;At this point, it's bad form.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And most likely, outside of more money, nothing would really change at the current place and you're back to square one with bridges burnt at the new place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, if the old company want you so badly, then surely you can always go back if it doesn't work out in the new place (on either side of course).&lt;/p&gt;&#xA;" OwnerUserId="5905" LastEditorUserId="5905" LastEditorDisplayName="" LastEditDate="2011-02-22T07:25:13.550" LastActivityDate="2011-02-22T07:25:13.550" />
  <row Id="14249" PostTypeId="2" ParentId="39" CreationDate="2010-10-24T15:11:46.783" Score="8" ViewCount="" Body="&lt;p&gt;It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nathaniel Borenstein&lt;/p&gt;&#xA;" OwnerUserId="4553" LastActivityDate="2010-10-24T15:11:46.783" CommunityOwnedDate="2010-10-24T15:11:46.783" />
  <row Id="14250" PostTypeId="2" ParentId="14226" CreationDate="2010-10-24T15:20:51.850" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes&lt;/strong&gt;. I think it's always better to have one. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To solve the interuption problem, &lt;em&gt;just disable the sound&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My cell phone is in silent mode since 2 years now, and I'm happier ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The year before, I had no cell phone at all. Only in the car. I was even happier! I plan to do it again as soon as I get another car.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Don't be a slave of your communication tools. This includes emails.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-24T15:20:51.850" CommunityOwnedDate="2011-01-07T02:23:03.807" />
  <row Id="14251" PostTypeId="2" ParentId="2682" CreationDate="2010-10-24T15:28:55.220" Score="0" ViewCount="" Body="&lt;p&gt;I think that having source can come at two levels.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Source for the classes you have but not in a state where it is easy to rebuild the distributed binary.  In other words, you can see but not touch.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Full source in a form that can be easily rebuilt.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I as a developer strongly prefer the latter, as it allows you to hot fix a problem.  It might be the decisive factor when given a choice between two libraries!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing to protect your source must be the license.  Let the Open Source version be GPL and allow business to purchase a non-GPL version to be included in their commercial non-GPL products.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-24T15:28:55.220" />
  <row Id="14252" PostTypeId="2" ParentId="14226" CreationDate="2010-10-24T15:37:33.757" Score="0" ViewCount="" Body="&lt;p&gt;I do, and it's really annoying. As I work for a small business, all the phones ring on external calls, which results in me having a headache and not being able to concentrate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The company policy is that the phones should never ring more than thrice, which means I've had to answer some calls. It's very rare that I get a direct call though, so every call is a drain on my concentration for 5–10 minutes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Internal calls don't bother me, as people only seem to call if its important (it's usually an email instead).&lt;/p&gt;&#xA;" OwnerUserId="912" LastEditorUserId="912" LastEditorDisplayName="" LastEditDate="2010-11-01T11:12:54.457" LastActivityDate="2010-11-01T11:12:54.457" CommunityOwnedDate="2011-01-07T02:23:03.807" CommentCount="2" />
  <row Id="14254" PostTypeId="1" CreationDate="2010-10-24T16:16:49.387" Score="29" ViewCount="765" Body="&lt;p&gt;I have a blog that I use mostly to record solutions to problems I have had, that I had some trouble finding an answer to. Mostly problems where the online doc I googled provided too much info, and I found the answer to my question on the fifth page of my third goggle hit. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Or if I asked the question here, I either didn't get an answer or I got slammed for asking a question that &quot;the answer could be easily googled.&quot;) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I frequently look up stuff on this blog to remind myself of how I solved a problem, and it gets a decent amount of hits from others as well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, I was wondering if mentioning this blog on my resume would help or hurt me in a job search? The topics are all over the map. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I would hope it shows is that&#xA;-I am a person who finds solutions to problems&#xA;-I have used many different technologies in my work&#xA;-I am not afraid to tackle a challenge &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I am concerned it shows is that&#xA;-This person had trouble with something that simple?&#xA;-Why is this person bothering to blog this stuff? &lt;/p&gt;&#xA;" OwnerUserId="6305" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-10-24T18:04:08.290" LastActivityDate="2011-05-15T16:00:54.273" Title="Is mentioning my blog on my resume helpful or hurtful to a job search?" Tags="&lt;career&gt;&lt;blogs&gt;&lt;resume&gt;" AnswerCount="11" CommentCount="3" FavoriteCount="4" />
  <row Id="14255" PostTypeId="2" ParentId="14254" CreationDate="2010-10-24T16:23:41.437" Score="2" ViewCount="" Body="&lt;p&gt;I'd say that mentioning your blog would be helpful. It gives a history of your progression and shows a potential employer that you're able to solve problems and diligent enough to record that information for future use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, it differentiates you from most other candidates that probably don't have their own blog.&lt;/p&gt;&#xA;" OwnerUserId="6306" LastActivityDate="2010-10-24T16:23:41.437" />
  <row Id="14256" PostTypeId="2" ParentId="14254" CreationDate="2010-10-24T16:24:28.247" Score="32" ViewCount="" Body="&lt;p&gt;Any blog, if it covers technical topics rather than the adventures of your cat, can be useful in showing employers what you care about, what you know, and how you approach problems. Consider adjusting your entry style a little bit to eliminate the one negative, that it might show you once didn't know X, where X is some trivial thing that &quot;everyone&quot; should know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next time you want to write &quot;I have been having such trouble for weeks now trying to figure out how to get the first 4 characters of a string with .NET, I was so confused but in the end I sorted it out, and along the way I learned a lot about the String functions ...&quot; and then writing a useful post about string functions, but possibly tainting yourself as someone who didn't know that basic thing, start it instead &quot;Some people are confused about all the different String functions. Here's a handy summary...&quot; and then carry on as you would have. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're not lying, you're sharing the same information you would have otherwise shared, and you're helping others. Plus, it looks better when others investigate you.&lt;/p&gt;&#xA;" OwnerUserId="285" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2010-10-24T16:37:54.477" LastActivityDate="2010-10-24T16:37:54.477" CommentCount="4" />
  <row Id="14257" PostTypeId="2" ParentId="14254" CreationDate="2010-10-24T16:27:13.160" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Probably not&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a fine question @TheMoot.  It's been discussed a couple of times in slightly different wording (e.g. should I put my StackExchange profile on my resume, etc.)  The general consensus seems to be that pointing to websites is a double-edged sword and it's probably best to stick to a traditional resume format that lists your job experience and accomplishments on the job instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, if your potential employer is really into a person's web presence, they'll be Googling your name anyways.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-24T16:27:13.160" CommentCount="7" />
  <row Id="14258" PostTypeId="2" ParentId="14226" CreationDate="2010-10-24T16:30:17.773" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;No&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I traded in my desk phone 3-4 years ago for a VoIP headset.  It's much less distracting when an incoming call comes in, takes up less space, gives me a high quality hands free experience when I do answer the call, and is useful for listening to loud music when the mood strikes.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-24T16:30:17.773" CommunityOwnedDate="2011-01-07T02:23:03.807" />
  <row Id="14259" PostTypeId="2" ParentId="14183" CreationDate="2010-10-24T16:36:34.210" Score="5" ViewCount="" Body="&lt;p&gt;The most expensive MSDN option ($12,000 in the US) gives you Visual Studio Ultimate. There are several questions on Stack Overflow [eg &lt;a href=&quot;http://stackoverflow.com/questions/2727835/is-it-worth-upgrading-to-vs2010-ultimate-to-take-advantage-of-the-advanced-debugg&quot;&gt;this one&lt;/a&gt;] about whether VS Ultimate is worth it. (The answer is a rousing IT DEPENDS, of course.) Even if you only got the software for a year (and you don't, you have it forever, which in most cases means 3 years and then you'll go on to another version) it's $50/day. If it saves you an hour a day, you're ahead, right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the price gives you pause, there are lots of ways to get it for less or for free. [&lt;a href=&quot;http://programmers.stackexchange.com/questions/8055/can-a-developer-get-volume-discount-for-microsoft-products&quot;&gt;This question&lt;/a&gt; on Programmers for example.] You could get a version less than Ultimate, all the way down to Express which is free. You could join BizSpark or WebSpark or DreamSpark, if you qualify. Your firm could join the Partner Program, either at the Registered level and buy Action Pack, or at the Certified level and get 5 MSDN licenses for $3500. You could become an MVP and be given a free copy (this is actually probably the most expensive way to do it.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, many companies buy some sort of MSDN (not always Ultimate) for each developer. And find it worthwhile. I could probably get by with Premium but I use something from Ultimate probably once a month.&lt;/p&gt;&#xA;" OwnerUserId="285" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2010-10-24T21:34:02.940" LastActivityDate="2010-10-24T21:34:02.940" CommentCount="1" />
  <row Id="14260" PostTypeId="1" AcceptedAnswerId="14262" CreationDate="2010-10-24T16:40:21.000" Score="0" ViewCount="133" Body="&lt;p&gt;I have enough experience in .NET Windows development. My previous and present companies develop Windows applications and if they have something to do with the Web than they choose PHP over ASP.NET. So I have knowledge of PHP also.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With very soon advancements in .NET, I am finding myself unable to cope with the technology and it is creating problems for my future interviews. I want to change my track and want to move entirely to PHP, RoR or else entirely to DB2.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take for example, LINQ. An year back I heard that Microsoft is going to discontinue working on LINQ project, but now I see market again flooding with it. Today I heard that Microsoft has decided to discontinue working on IronPython and IronRuby.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I remember how much money I already wasted buying books on .NET. Sometimes &lt;em&gt;this&lt;/em&gt; sometimes &lt;em&gt;that&lt;/em&gt;. There is no end. They are coming out with a new thing every now and than.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to clear DB2 DBA exams and want to get absorbed in some company. Is it a wise move?&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2010-10-24T17:08:55.453" Title="Career move from .NET to something else" Tags="&lt;.net&gt;&lt;db2&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="14261" PostTypeId="2" ParentId="14254" CreationDate="2010-10-24T16:58:16.293" Score="12" ViewCount="" Body="&lt;p&gt;You are right when saying that some people will certainly see you as a noob while browsing your blog... however:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;most employers will NOT visit your blog. They don't care&lt;/li&gt;&#xA;&lt;li&gt;a part of the remaining employers will see it as a good thing. Will see you as a problem solver!&lt;/li&gt;&#xA;&lt;li&gt;a part of the remaining employers will take you like a noob.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Would you be hired, and report to, a person that think he should not hire you because you ask yourself questions on your blog?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Certainly not!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Problem solved.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-24T16:58:16.293" />
  <row Id="14262" PostTypeId="2" ParentId="14260" CreationDate="2010-10-24T17:02:43.563" Score="4" ViewCount="" Body="&lt;p&gt;That's how technology works, since technology exist. New things everyday, dead things everyday. Nobody can predict the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How to survive ?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Invest in your ability to solve problems&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The more different technologies you will learn, the easiest it will be for you to learn a new one. I would start learning the technology you like the most first. The higher interest you have in the technology, the easier it is to memorize. So go for PHP, DB2 or RoR whatever. But go...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additional trick (regarding ability to solve problems): rather than buying too much books on technology, buy books that will help you as an individual to be stronger and face incertainty and constant world change. The good ratio is 1 personnal improvement book per 2 technical books.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-24T17:08:55.453" LastActivityDate="2010-10-24T17:08:55.453" CommentCount="3" />
  <row Id="14264" PostTypeId="2" ParentId="7017" CreationDate="2010-10-24T17:14:13.520" Score="2" ViewCount="" Body="&lt;p&gt;It will require a (small) paradigm shift.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Going from Java to C++ means: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Raw pointers. &#xA;&lt;ul&gt;&#xA;&lt;li&gt;It works the same way in 2010 as in 1995.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;No garbage collection. &#xA;&lt;ul&gt;&#xA;&lt;li&gt;Need to understand the various ways of resource cleanup without GC, and their limitations.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;RAII&lt;/li&gt;&#xA;&lt;li&gt;Reference counting&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;The importance of destructor.&lt;/li&gt;&#xA;&lt;li&gt;How smart pointers encapsulates these resource cleanup methods&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Use the appropriate type of smart pointers for resource.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;How resource management, sharing and smart pointers affect API design&lt;/li&gt;&#xA;&lt;li&gt;How RAII, smart pointers and exception work together&lt;/li&gt;&#xA;&lt;li&gt;Pick up the standard libraries, including STL. Also need to pick up platform-specific APIs, maybe a couple other libraries because the standard library is not as powerful as Java's.&lt;/li&gt;&#xA;&lt;li&gt;Learn just enough C++ templates to be able to use the libraries.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Similar to Java generics&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;RAII basically means the lifetime of a resource is &lt;em&gt;either&lt;/em&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Same as a C++ object, by putting the resource into a class member, initializing it in the constructor (or an initialize function) and releasing it in the object's destructor,&lt;/li&gt;&#xA;&lt;li&gt;Same as a scope, which may be a function or some code surrounded by braces &lt;code&gt;{}&lt;/code&gt;. This requires the resource be encapsulated by a C++ object, so that it is released by the destructor at the end of scope, regardless of normal or exception.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;RAII requires a more hierarchical &lt;em&gt;ownership&lt;/em&gt; structure. It does not allow sharing resources between two objects where one may be released &lt;em&gt;independently&lt;/em&gt; of another, unless the two objects are in turn &lt;em&gt;owned&lt;/em&gt; by the same higher-level object.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reference-counting allows sharing resources between objects having independent lifetimes. However, care should be taken to avoid cyclic references when using reference-counting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is something called &lt;a href=&quot;http://www.hpl.hp.com/personal/Hans_Boehm/gc/&quot; rel=&quot;nofollow&quot;&gt;Boehm GC (mark-sweep)&lt;/a&gt; which tries to bring back the joy of automatic garbage collection to C++, but it's not a silver bullet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The learning process is much easier and productive if the first few months of going to C++ is spent working on an existing &quot;Clean&quot; C++ code base, which uses the main C++ features without touching the difficult concepts. (I took 6 months.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the project involves multi-threading, porting will be much more difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edited&lt;/strong&gt; You probably &lt;em&gt;need&lt;/em&gt; to learn &lt;code&gt;goto&lt;/code&gt; because there is no equivalent of &lt;em&gt;labeled break&lt;/em&gt; in C++.&lt;/p&gt;&#xA;" OwnerUserId="620" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-10-24T17:39:59.847" LastActivityDate="2010-10-24T17:39:59.847" />
  <row Id="14265" PostTypeId="2" ParentId="14218" CreationDate="2010-10-24T17:21:15.703" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;DRY, KISS, YAGNI&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5564" LastActivityDate="2010-10-24T17:21:15.703" CommentCount="1" />
  <row Id="14266" PostTypeId="1" CreationDate="2010-10-24T17:23:01.033" Score="4" ViewCount="202" Body="&lt;p&gt;I've recently &quot;discovered&quot; mind mapping and even found some people here recommending it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems like a real handy tool, but I'm not really sure how to apply it to my work and/or hobby projects. I &lt;em&gt;really&lt;/em&gt; want to organize my time and work, because I feel like my projects are stagnating lately, and that doesn't really feel nice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I'm interested in any tips you have if you're using mind maps, how do you organize your projects, TODOs, ideas..? For example: do you keep separate mind maps for projects, tasks, ideas, or do you have separate mind maps for each project? How do you organize your project mind maps? Please share your thoughts and ideas. (Feel free to suggest alternative methods if you think mind maps suck, but state your reasons)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;[Can we make this community wiki since there is no &quot;right&quot; answer?]&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-10-24T17:32:58.150" Title="Use of mind-mapping software in project/task management" Tags="&lt;productivity&gt;&lt;tools&gt;&lt;project-management&gt;&lt;organization&gt;&lt;mind-mapping&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="14267" PostTypeId="2" ParentId="14206" CreationDate="2010-10-24T17:25:01.533" Score="1" ViewCount="" Body="&lt;p&gt;I don't think you need a 'showcase portfolio' that much, unless you're a designer. What is in your head is far more important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prepare a good CV that clearly lists the techniques you're used and your impact (ie. optimized stored procs so average query execution time went down 20%). You are more likely to be asked technical questions during your interviews that asked to show your 'portfolio'.&lt;/p&gt;&#xA;" OwnerUserId="5564" LastActivityDate="2010-10-24T17:25:01.533" CommentCount="5" />
  <row Id="14269" PostTypeId="2" ParentId="14266" CreationDate="2010-10-24T17:31:19.343" Score="1" ViewCount="" Body="&lt;p&gt;I use mindmapping on my iPad to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Gather notes&lt;/strong&gt; during meetings or just to &lt;strong&gt;capture ideas&lt;/strong&gt;...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Organize my main TODO list&lt;/strong&gt; with priorities&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But I also use it to &lt;strong&gt;organize ideas of a specific projects&lt;/strong&gt;. For example the chapters and sub divisions of a book, features of a software, business strategies and things like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The REAL mindmapping is the one you draw by hand, not specifically with texts, but images, icons, etc.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-24T17:31:19.343" CommentCount="3" />
  <row Id="14270" PostTypeId="2" ParentId="14266" CreationDate="2010-10-24T17:32:58.150" Score="1" ViewCount="" Body="&lt;p&gt;Mind Mapping is literally that, mapping out your thought processes into some tangible form.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I use MindGenius Business, which is a separate application that I saw used by our HR department first. I will often scribble ideas down on paper, and have a few hours a week set aside during the early stages of a project to add more sophistication to the raw ideas and create the flows and mappings in MindGenius.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This process works very well for me, but I know some people detest the idea of mind mapping. If the process works for you or at least your willing to give it a go then you should start on paper, spend time developing out your ideas for new sections and spilt from there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Top level: What features and functionality am I trying to impalement&#xA;2nd Level: Functions and Procedures (names and results no code)&#xA;3rd Level: Time to impalement, resources required and importance to the system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have this mapping its easy to take over and code.&lt;/p&gt;&#xA;" OwnerUserId="6296" LastActivityDate="2010-10-24T17:32:58.150" CommentCount="3" />
  <row Id="14271" PostTypeId="1" AcceptedAnswerId="14391" CreationDate="2010-10-24T17:34:43.700" Score="10" ViewCount="566" Body="&lt;p&gt;I guess you could call me a &quot;MicroISV&quot; because it's basically just me doing the work to create a product to be sold commercially. I'm sure there are many out there like me, so here's my question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides the programming/coding aspect to get your code out the door, &lt;strong&gt;&lt;em&gt;do you DIY or vendor-out everything else&lt;/em&gt;&lt;/strong&gt;? For example, web site creation, internet marketing, accounting/taxes, company minutes, customer support, setting up ecommerce/banking, server management, procurement, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of those activities seem to be out of the realm of what I'm good at or have the patience/time for, but I don't know if the alternative is too untrustworthy or too expensive to make it worthwhile to try to farm out these tasks to someone else (like a local company, vendors on oDesk, etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can certainly understand wanting to keep all these tasks &quot;in-house&quot; (i.e. me) to protect strategy, plans, code, private things like bank account numbers, but is it really that much of a risk to outsource these tasks? What is your experience?&lt;/p&gt;&#xA;" OwnerUserId="6258" LastEditorUserId="6258" LastEditorDisplayName="" LastEditDate="2010-10-24T23:09:31.053" LastActivityDate="2010-10-27T05:10:11.647" Title="Lone Programmer vs. Everything Else" Tags="&lt;business&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="5" />
  <row Id="14272" PostTypeId="2" ParentId="14271" CreationDate="2010-10-24T17:44:58.797" Score="24" ViewCount="" Body="&lt;p&gt;We have a simple rule in our company, as we are a small software house.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Can we do it as well as a third party&lt;/li&gt;&#xA;&lt;li&gt;Will we save more money by doing the work internally or would it be more cost effective to work on another project&lt;/li&gt;&#xA;&lt;li&gt;Do we really have time for the additional work&lt;/li&gt;&#xA;&lt;li&gt;Is there any other elements that internal staff may not be aware of such as legislation etc.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The answers to simple questions like this should help you make an informed choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope this helps a little.&lt;/p&gt;&#xA;" OwnerUserId="6296" LastActivityDate="2010-10-24T17:44:58.797" CommentCount="4" />
  <row Id="14273" PostTypeId="2" ParentId="14254" CreationDate="2010-10-24T17:58:47.223" Score="1" ViewCount="" Body="&lt;p&gt;You can use your blog as an example of your personal knowledge management if this turns up in the interviewer's question. Otherwise, there is no need to mention in interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never include your blog URL in a resume. When a personal URL appears in a resume, the reviewer will naturally expect that the site is &lt;em&gt;as professionally managed&lt;/em&gt; as a corporate website (due to the reviewer's own expectation bias). Any sign of non-professionalism will hurt your chances, compared to candidates who do not provide any URL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most modern companies use some knowledge-sharing technologies such as internal wiki, internal blog, informal documentation, white board, prototyping, etc. This is in addition to any personal notetaking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key differences are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Knowledge generated inside a company usually must be kept internal. Therefore, one needs to strike a balance in terms of asking questions without revealing sensitive intellectual/business information.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Modern companies are interested in improving overall (team) productivity through knowledge sharing. Personal notetaking only contributes to personal productivity. Therefore, it is important that your coworkers can understand your information and find it useful. This may require good technical writing skill.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="620" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-10-24T18:04:32.480" LastActivityDate="2010-10-24T18:04:32.480" />
  <row Id="14274" PostTypeId="2" ParentId="386" CreationDate="2010-10-24T18:04:05.110" Score="2" ViewCount="" Body="&lt;p&gt;This came up at a conference recently. The problems with competing on price:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;there's always someone who lives in a cheaper economy and is willing to get paid less than you&lt;/li&gt;&#xA;&lt;li&gt;there's often someone who will open source a competing product, at which point the price war has just gone nuclear, and you're on the wrong end of the ICBM&lt;/li&gt;&#xA;&lt;li&gt;market perception of your product will be that it has little value&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-10-24T18:04:05.110" CommentCount="1" />
  <row Id="14275" PostTypeId="2" ParentId="7017" CreationDate="2010-10-24T18:16:44.547" Score="0" ViewCount="" Body="&lt;p&gt;I would recommend following the C++, C++0x and related tags over on SO. Make sure you understand each question and each answer, read the linked documents that are almost always in the answers, search to learn more about RAII and other acronyms that pop up consistently, and basically drag yourself forward until you feel you could answer many of the questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This has the advantage of feedback. If you &quot;just start typing&quot; you will not have any way of knowing if you're using appropriate idioms. It might compile, but be very old-school or just not C++-ish. If you read a book, it might be outdated. But if your &quot;I knew that&quot; meter is rising over time spent in those tags, you know you're starting to get it.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-24T18:16:44.547" />
  <row Id="14276" PostTypeId="2" ParentId="14226" CreationDate="2010-10-24T18:17:11.470" Score="0" ViewCount="" Body="&lt;p&gt;I used to have a phone on the desk, and very useful it was too for talking to customers. Then the management decided that all telephone calls had to be logged in a database...&lt;/p&gt;&#xA;" OwnerUserId="2566" LastActivityDate="2010-10-24T18:17:11.470" CommunityOwnedDate="2011-01-07T02:23:03.807" />
  <row Id="14277" PostTypeId="2" ParentId="14206" CreationDate="2010-10-24T18:31:22.853" Score="2" ViewCount="" Body="&lt;p&gt;I honestly think you can do no better then shelling out a few bucks to buy a domain name that has your name and a monthly server. It's not expensive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This way, you can do anything you want on it, show case your projects and let them be viewed and downloadable by employers or the friends your trying to impress =)   The way you want people to see them. Small portions or full downloads, your in control of the name and the content.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-10-24T18:31:22.853" />
  <row Id="14278" PostTypeId="2" ParentId="14226" CreationDate="2010-10-24T18:47:05.577" Score="0" ViewCount="" Body="&lt;p&gt;It all depends on how big your company is and whether or not you need to talk to customers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a phone on my desk, but I have no use for it, because I work at a small company, and I do not directly interact with customers.  If my co-workers need to talk to me they simply walk over to my cube.  Except for this one guy, who uses email even for the most simple questions.  When I get an email from him, I walk over to his cube and answer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if you work at a larger company, where you co-workers may be down the hall, on another floor, in another building, or in another city, then you would need a phone.  Same thing if your job requires you to talk to customers.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-24T18:47:05.577" CommunityOwnedDate="2011-01-07T02:23:03.807" />
  <row Id="14279" PostTypeId="2" ParentId="14254" CreationDate="2010-10-24T18:51:21.407" Score="6" ViewCount="" Body="&lt;p&gt;If someone puts down that they have a blog on their CV I will always look at it - either before interviews if a URL is given or after if not (as I will ask for it in the interview). I'm guessing I must be unusual in doing this as almost always the blog does not exist/is offline, has a single entry and/or hasn't been updated for eons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't take this as a negative by itself as it's unfortunately so common, but I would take it as a big positive if a blog makes interesting reading. It shows that you care enough about things to keep a blog in the first place (note to self - I really should start a blog sometime) but even more importantly if you have difficulty doing something once that you've taken steps to make it easier on yourself the second time around.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-24T18:51:21.407" />
  <row Id="14280" PostTypeId="2" ParentId="14226" CreationDate="2010-10-24T19:03:22.007" Score="1" ViewCount="" Body="&lt;p&gt;Yes, I have a phone - unless you're lucky enough to have everyone you need to speak to onsite, all day, every day, I find it hard to imagine being able to write business software at anything but a junior level without one. Communication is just too important a piece of the jigsaw to want to exclude it.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-24T19:03:22.007" CommunityOwnedDate="2011-01-07T02:23:03.807" />
  <row Id="14281" PostTypeId="1" CreationDate="2010-10-24T19:25:24.743" Score="4" ViewCount="57" Body="&lt;p&gt;It's easy to find resources for learning WPF, similarly it's pretty easy to find resources for F#. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I feel that I could save some time if I could learn them both at the same time. So can anyone recommend any books, blogs, articles , something else? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I'm familiar with functional programming, winforms and c#)  &lt;/p&gt;&#xA;" OwnerUserId="2825" LastActivityDate="2010-10-24T19:40:10.897" Title="Anyone know of any resources for someone who wants to learn WPF and F#" Tags="&lt;learning&gt;&lt;self-improvement&gt;&lt;books&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="1" />
  <row Id="14282" PostTypeId="2" ParentId="14281" CreationDate="2010-10-24T19:32:54.453" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Learning WPF through F#, and vice versa, by John Liao&lt;/strong&gt;&#xA; &lt;br&gt; &lt;a href=&quot;http://blogs.msdn.com/b/dsyme/archive/2008/01/05/learning-wpf-through-f-and-vice-versa-by-john-liao.aspx&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com/b/dsyme/archive/2008/01/05/learning-wpf-through-f-and-vice-versa-by-john-liao.aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-10-24T19:32:54.453" />
  <row Id="14283" PostTypeId="2" ParentId="14281" CreationDate="2010-10-24T19:40:10.897" Score="1" ViewCount="" Body="&lt;p&gt;As far as books are concerned I think you'll struggle to find anything - I have most (all?) of the currently available F# books and did a very quick check without much success. Expert F# has about 10 pages on WPF, Beginning F# slightly more. The other books have a couple of mentions of WPF and that's about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So...your best bet is probably the series of blog posts by Don Syme (which I see Robert has already linked to in his answer).&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-24T19:40:10.897" CommentCount="1" />
  <row Id="14284" PostTypeId="2" ParentId="500" CreationDate="2010-10-24T19:40:27.760" Score="1" ViewCount="" Body="&lt;p&gt;We have been experimenting with Pair programming in our team for the last few months. I feel its pretty useful when you are working on something new (new technology, new feature etc) as you can quickly bounce ideas with another person of the team and have them validated/invalidated. Also, a side by side peer review helps in keeping bugs out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another teammate tried using pair programming with a test to do ATDD and they were quite happy with the results (according to his calculations a increase in 20% dev cost led to a decrease of about 50% in test time)&lt;/p&gt;&#xA;" OwnerUserId="3755" LastActivityDate="2010-10-24T19:40:27.760" />
  <row Id="14285" PostTypeId="2" ParentId="14254" CreationDate="2010-10-24T19:47:11.870" Score="1" ViewCount="" Body="&lt;p&gt;It depends on the quality of the blog. Same for a authoring a book. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I interview candidates, if they have a blog, I take a look. The content of the blog directly effects the bias I have towards the candidate.&lt;/p&gt;&#xA;" OwnerUserId="2577" LastEditorUserId="2577" LastEditorDisplayName="" LastEditDate="2010-12-07T12:56:24.750" LastActivityDate="2010-12-07T12:56:24.750" CommentCount="2" />
  <row Id="14286" PostTypeId="2" ParentId="14162" CreationDate="2010-10-24T19:47:55.317" Score="18" ViewCount="" Body="&lt;p&gt;Fogbugz (free individual license) if its a longish project or a simple to do list (using Google tasks)&lt;/p&gt;&#xA;" OwnerUserId="3755" LastActivityDate="2010-10-24T19:47:55.317" CommentCount="3" />
  <row Id="14287" PostTypeId="1" AcceptedAnswerId="14290" CreationDate="2010-10-24T20:04:18.843" Score="6" ViewCount="449" Body="&lt;p&gt;After getting shot down on SO, I'll try this here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure you'll all know of Apple's recent announcement to deprecate Java on OS X (&lt;a href=&quot;http://www.theregister.co.uk/2010/10/22/jobs_on_java_for_mac/&quot; rel=&quot;nofollow&quot;&gt;such as discussed here&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've recently come back to programming in the last year or so since I originally learnt on ye olde BASIC many years ago. I have a Mac at home and a PC at work and whilst I have got Windows and Ubuntu installed on my Mac as VMs, I chose to focus my &quot;relearning&quot; on VB first (as it was closest to BASIC) and then rapidly moved to Java as it was cross platform (with minimal effort) and so it was easiest to work on code from both OSes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question, if the winds of change on Mac are blowing away from Java and in this post-Sun era, what would be the best language to focus my new efforts on?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please note, this isn't a general &quot;which language is better?&quot; thread and or an opportunity for the associated flame-war. There's plenty of those and it's not the point. I realise that in the long term one shouldn't be allegiant to an individual language so, taking this as an excuse, the question is specifically which is going to be the most quick to be productive on given the background whilst bearing in mind minimum portability rewrites (aspiration rather then requirement) and with a long term value of usage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To that I see the main options as:&#xA;C# - Closest in &quot;style&quot; to Java but M$ dependent (unless you consider Mono of course)&lt;br&gt;&#xA;C++ - Hugely complex but if even slightly conquered, then a win? Is it worth the climb up the learning curve?&lt;br&gt;&#xA;VB.Net - Already have background so easiest to go back to but who uses VB for .Net these days? Surely if using a CLI language I should use C#...&lt;br&gt;&#xA;Python - Cross-platform but what about UI for the end-user?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt;&#xA;As a usage priority, I envision desktop application programming.  Though the ability to branch in the future is always desirable.  I guess graphics are the next direction once basics are in place.&lt;/p&gt;&#xA;" OwnerUserId="6320" LastEditorUserId="6320" LastEditorDisplayName="" LastEditDate="2010-10-24T21:26:55.653" LastActivityDate="2010-12-29T19:47:36.457" Title="Now that Apple's intending to deprecate Java on OS X, what language should I focus on?" Tags="&lt;java&gt;&lt;apple&gt;" AnswerCount="11" CommentCount="8" />
  <row Id="14288" PostTypeId="2" ParentId="14287" CreationDate="2010-10-24T20:25:58.127" Score="2" ViewCount="" Body="&lt;p&gt;You should first ask yourself what type of applications you want to code (web, desktop, libraries?) and for whom (yourself, corporates, small clients?) - it's quite difficult to answer the question otherwise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also right now I think it's premature to jump from Java if all you're basing your decision on is Apple's announcement. If I were you I would continue learning Java and make a more informed decision in 6 months or so by when it should be clear what the long term future of OSX is as a Java development platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and if going the .net route I would avoid VB.Net unless you have a strong reason to learn it. There's nothing wrong with it as a language but most books, blog, community activity, etc will be in C#. There are also lots of general books which use Java for code samples and switching those to C# usually very straightforward whereas converting them to vb.net requires a bit more thought (it's not hard, but it gets in the way of learning the concepts that the books address).&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-24T20:25:58.127" />
  <row Id="14289" PostTypeId="2" ParentId="14287" CreationDate="2010-10-24T20:30:39.357" Score="-1" ViewCount="" Body="&lt;p&gt;I concur with the points you make about the languages in your list.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for Python, the Qt GUI (PyQt) would be the current best choice of cross-platform UI, in my opinion: it looks quite good (it looks almost native on OS X, for instance, contrary to TkInter) and it's well supported (as opposed to wxpython on OS X).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to keep web development in mind, Python also has Django, which is currently quite popular (I guess for good reasons).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus, I can't think of a more enjoyable language than Python. :)&lt;/p&gt;&#xA;" OwnerUserId="3807" LastActivityDate="2010-10-24T20:30:39.357" CommentCount="7" />
  <row Id="14290" PostTypeId="2" ParentId="14287" CreationDate="2010-10-24T20:31:59.793" Score="7" ViewCount="" Body="&lt;p&gt;It depends on where you want to go:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;C#&lt;/strong&gt;: will have the shortest learning curve if you already know java, but M$ dependent like you said. If you want to do anything with windows, C# is a great choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;C++&lt;/strong&gt;: not worth it IMHO as its more difficult to use. Inherent lower-level makes it better for game programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;VB.NET&lt;/strong&gt;: I agree with you, if you want a CLI language go with C# as its massively more popular.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt;: cross-platform, very different from java but widely praised for its beauty as a language. Used in many different areas, &lt;a href=&quot;http://wiki.python.org/moin/GuiProgramming&quot; rel=&quot;nofollow&quot;&gt;several different gui choices&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Javascript&lt;/strong&gt;: used for browser scripting and html manipulation only. Extremely useful for web design/dev but barely used anywhere else e.g. desktop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;PHP&lt;/strong&gt;: big in server-side world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Scala&lt;/strong&gt;: kind of like a 'better java' on the jvm, but outsting the jvm gets rid of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you can see, it depends on what you want to do. What are you priorities?&lt;/p&gt;&#xA;" OwnerUserId="1220" LastActivityDate="2010-10-24T20:31:59.793" CommentCount="4" />
  <row Id="14291" PostTypeId="2" ParentId="14287" CreationDate="2010-10-24T20:32:21.913" Score="0" ViewCount="" Body="&lt;p&gt;Go for &lt;strong&gt;C#&lt;/strong&gt;, you will not be so dependent. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;With such skills you could gauge you way:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;The market is still growing! It's a&#xA;smart, fun and clever language.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't worry. Knowing C# you should be able to&#xA;learn other languages easily.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-24T20:32:21.913" CommentCount="1" />
  <row Id="14292" PostTypeId="2" ParentId="14162" CreationDate="2010-10-24T20:42:45.130" Score="3" ViewCount="" Body="&lt;p&gt;If you're familiar with using TODO tags in Eclipse, a simple step up would be to use &lt;a href=&quot;http://www.eclipse.org/mylyn/&quot; rel=&quot;nofollow&quot;&gt;Mylyn&lt;/a&gt;.  At it's most basic, it's a simple todo list.  But, it also associates context with tasks - click on a task to activate it, do some stuff, and then next time you activate it, Eclipse will open up the relevant classes, and show you the relevant methods.  Even more powerfully, if you eventually move to some other bug tracking system, Mylyn can pull tasks from those systems and present them in your IDE. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most Eclipse downloads these days have Mylyn bundled in as standard.  Just search out the Task List view and start adding tasks.&lt;/p&gt;&#xA;" OwnerUserId="627" LastActivityDate="2010-10-24T20:42:45.130" CommentCount="2" />
  <row Id="14293" PostTypeId="1" AcceptedAnswerId="21094" CreationDate="2010-10-24T20:46:55.380" Score="3" ViewCount="532" Body="&lt;p&gt;Many people praise Sinatra's ability to create simple projects in a single file.  This is great and all but what if I want to use Sinatra for slightly larger project?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm fairly new to Ruby as a whole but have already found a couple ways to create a Sinatra application with separate models files, partitioning different groups or URLs into individual files, etc... But is there any best practice for this?&lt;/p&gt;&#xA;" OwnerUserId="6325" LastActivityDate="2010-11-24T06:15:37.723" Title="Ruby Sinatra best practices for project structure" Tags="&lt;best-practices&gt;&lt;ruby&gt;" AnswerCount="1" FavoriteCount="2" />
  <row Id="14294" PostTypeId="2" ParentId="14162" CreationDate="2010-10-24T20:54:29.500" Score="2" ViewCount="" Body="&lt;p&gt;Like others here I use either a text file or the bug tracker built into whatever dvcs hosting service.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lots of it depends on what sort of &quot;personal project&quot; it is.  Is it something that is ever going to see the light of day or is it just an experiment?  Is this project in use by the public?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, one of my personal projects became moderately popular and setting up a &lt;a href=&quot;http://getsatisfaction.com&quot; rel=&quot;nofollow&quot;&gt;Get Satisfaction&lt;/a&gt; site for it worked really well. Not really &quot;bug tracking&quot; but it worked great for bug/feature requests.&lt;/p&gt;&#xA;" OwnerUserId="6325" LastActivityDate="2010-10-24T20:54:29.500" />
  <row Id="14295" PostTypeId="1" CreationDate="2010-10-24T20:59:17.960" Score="7" ViewCount="181" Body="&lt;p&gt;Although &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201733862&quot; rel=&quot;nofollow&quot;&gt;not a new idea&lt;/a&gt; there seems to have been a big increase in the interest in software craftsmanship over the last couple of years (notably the often recommended book Clean Code's full title is &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0132350882&quot; rel=&quot;nofollow&quot;&gt;Clean Code: A Handbook of Agile &lt;em&gt;Software Craftsmanship&lt;/em&gt;&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I see software craftsmanship as good software engineering with an added interest in ensuring that the end result is a joy to work with (both as an end user and as someone maintaining that software) - and also that its focus is more at the coding level of things than the higher level process things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To draw an analogy - there were lots of buildings constructed in the 50s and 60s in a very modern style which took very little account of the people who would be living in them or how those buildings would age over time. Many of those buildings rapidly developed into slums or have been demolished long before their expected lifespans. I'm sure most developers with a few years under their belts will have experienced similar codebases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the specific things that a software craftsman might do that a software engineer (possibly a bad one) might not?&lt;/p&gt;&#xA;" OwnerUserId="1362" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:11:23.030" LastActivityDate="2010-11-27T21:46:29.337" Title="Which specific practices could be called &quot;software craftsmanship&quot; rather than &quot;software engineering&quot;?" Tags="&lt;best-practices&gt;&lt;software-engineering&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="14296" PostTypeId="2" ParentId="13623" CreationDate="2010-10-24T21:00:46.227" Score="2" ViewCount="" Body="&lt;p&gt;Absolutely not.  Give your Programmers the best laptop money can buy, a keyboard of their choice, multiple great big screens, a private office, no phone, free soft drinks, all the books they want (that are relevent), annual trips to key tech conferences and you'll get great results.  Then test on upper and lower boundary hardware/software/browser/bandwidth combinations.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-24T21:00:46.227" CommunityOwnedDate="2010-10-24T21:00:46.227" />
  <row Id="14297" PostTypeId="1" CreationDate="2010-10-24T21:12:41.430" Score="63" ViewCount="3850" Body="&lt;p&gt;I attended a software craftsmanship event a couple of weeks ago and one of the comments made was &quot;I'm sure we all recognize bad code when we see it&quot; and everyone nodded sagely without further discussion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This sort of thing always worries me as there's that truism that everyone thinks they're an above average driver. Although I think I can recognize bad code I'd love to learn more about what other people consider to be code smells as it's rarely discussed in detail on people's blogs and only in a handful of books. In particular I think it'd be interesting to hear about anything that's a code smell in one language but not another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll start off with an easy one:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Code in source control that has a high proportion of commented out&#xA;  code&lt;/strong&gt; - why is it there? was it meant&#xA;  to be deleted? is it a half finished&#xA;  piece of work? maybe it shouldn't have&#xA;  been commented out and was only done&#xA;  when someone was testing something&#xA;  out? Personally I find this sort of&#xA;  thing really annoying even if it's just the odd line here and there, but when you see large blocks interspersed with the rest of the code it's totally unacceptable. It's&#xA;  also usually an indication that the rest of&#xA;  the code is likely to be of dubious&#xA;  quality as well.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1362" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-13T14:48:56.293" LastActivityDate="2011-03-28T18:40:58.330" CommunityOwnedDate="2010-10-25T14:40:27.240" Title="Which things instantly ring alarm bells when looking at code?" Tags="&lt;code-quality&gt;&lt;anti-patterns&gt;" AnswerCount="61" CommentCount="18" FavoriteCount="36" />
  <row Id="14298" PostTypeId="1" CreationDate="2010-10-24T21:15:21.283" Score="8" ViewCount="180" Body="&lt;p&gt;Is &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201895420&quot; rel=&quot;nofollow&quot;&gt;&quot;Analysis Patterns: Reusable Object Models&quot;&lt;/a&gt; by Martin Fowler (published 1996) still a good book to use for the content it covers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there other good books that cover the same content? Are there more up-to-date books?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Are there any more answers on this question, as well as any answers on the second part about alternative books?&lt;/p&gt;&#xA;" OwnerUserId="5511" LastEditorUserId="5511" LastEditorDisplayName="" LastEditDate="2010-11-23T05:19:08.457" LastActivityDate="2010-11-23T05:19:08.457" Title="Is &quot;Analysis Patterns: Reusable Object Models&quot; Still A Good Book To Use For Its Subject Matter Today?" Tags="&lt;books&gt;&lt;design-patterns&gt;&lt;financial&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="14299" PostTypeId="1" AcceptedAnswerId="14371" CreationDate="2010-10-24T21:21:06.590" Score="10" ViewCount="1511" Body="&lt;p&gt;I was doing some research and found &lt;a href=&quot;http://www.happinessatworkindex.co.uk/articles/april07/what-is-the-happiest-profession.php&quot; rel=&quot;nofollow&quot;&gt;this study&lt;/a&gt; about happiness.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While 69% of respondents working in Law say they are happy, only 28% in IT say so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the same survey, the vast majority of the respondents say the most important thing at work is &lt;a href=&quot;http://www.happinessatworkindex.co.uk/&quot; rel=&quot;nofollow&quot;&gt;people&lt;/a&gt; (41%). Is it because IT people tend to have less social skills?&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-04T22:34:42.270" LastActivityDate="2010-12-05T08:23:20.877" ClosedDate="2010-12-06T23:27:18.693" Title="Why is IT/programming the profession with the least happy people?" Tags="&lt;work&gt;&lt;profession&gt;" AnswerCount="10" CommentCount="4" FavoriteCount="2" />
  <row Id="14300" PostTypeId="2" ParentId="14299" CreationDate="2010-10-24T21:23:53.160" Score="8" ViewCount="" Body="&lt;p&gt;By IT do you mean something like systems administrator? I've read that these people are rarely considered or thanked for their work, the only time anyone knows of their existence is when things go bad, and usually they are on the wrong side of the blame-stick. So I guess that would make someone unhappy: feeling like no one knows you exist, until something goes wrong then everyone knows you exist but hate you.&lt;/p&gt;&#xA;" OwnerUserId="515" LastActivityDate="2010-10-24T21:23:53.160" CommentCount="3" />
  <row Id="14302" PostTypeId="2" ParentId="14297" CreationDate="2010-10-24T21:48:32.747" Score="2" ViewCount="" Body="&lt;p&gt;anything with something like this&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// TODO: anything could be here!&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: I should qualify that I meant this in production code. But even in code committed to source control this still isn't good. But, that could be a personal thing in that I like to finish the day off having tied off all my loose ends :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit 2&lt;/strong&gt;: I should further qualify that I meant when I see this in established code. Like something that's a number of years old and I am fixing a bug it. I see a TODO and that's when the alarm bells start ringing. TODO's (to me) imply that the code was never finished for some reason.&lt;/p&gt;&#xA;" OwnerUserId="370" LastEditorUserId="370" LastEditorDisplayName="" LastEditDate="2010-11-22T09:19:16.113" LastActivityDate="2010-11-22T09:19:16.113" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="6" />
  <row Id="14303" PostTypeId="2" ParentId="14295" CreationDate="2010-10-24T21:51:37.800" Score="0" ViewCount="" Body="&lt;p&gt;I would say having unit tests covering 100% of the code would be a good one. As that allows the excess stuff to be stripped away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I sometimes compare software development to sculpture. It's not what you add, it's what you take away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously you can take that too far. No-one is going to say a small shiny pebble is a good sculpture :S&lt;/p&gt;&#xA;" OwnerUserId="370" LastActivityDate="2010-10-24T21:51:37.800" CommentCount="3" />
  <row Id="14304" PostTypeId="2" ParentId="14297" CreationDate="2010-10-24T21:55:18.257" Score="58" ViewCount="" Body="&lt;p&gt;Spelling errors in identifiers.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-24T21:55:18.257" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="14" />
  <row Id="14305" PostTypeId="2" ParentId="14297" CreationDate="2010-10-24T21:57:22.077" Score="28" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Maybe not the worst but clearly shows the implementers level: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(something == true) &#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If a language has a for loop or iterator construct, then using a while loop also demonstrates implementers level of understanding of the language: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;count = 0; &#xA;while(count &amp;lt; items.size()){&#xA;   do stuff&#xA;   count ++; &#xA;}&#xA;&#xA;for(i = 0; i &amp;lt; items.size(); i++){&#xA;  do stuff &#xA;}&#xA;//Sure this is not terrible but use the language the way it was meant to be used.&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Poor spelling/grammar in documentation/comments eats at my almost as much as code itself.  The reason for this is because code was meant for humans to read and machines to run.  This is why we use high level languages, if your documentation is hard to get through it makes me preemptively form a negative opinion of the codebase without looking at it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Moderator's Note&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to discuss this answer further take it to chat.&lt;/p&gt;&#xA;" OwnerUserId="136" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-02-22T16:01:34.467" LastActivityDate="2011-02-22T16:01:34.467" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="45" />
  <row Id="14306" PostTypeId="2" ParentId="12334" CreationDate="2010-10-24T21:58:34.527" Score="0" ViewCount="" Body="&lt;p&gt;You should aim for a high score on Joels 12 bullets:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/fog0000000043.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you use source control?&lt;/li&gt;&#xA;&lt;li&gt;Can you make a build in one step?&lt;/li&gt;&#xA;&lt;li&gt;Do you make daily builds?&lt;/li&gt;&#xA;&lt;li&gt;Do you have a bug database?&lt;/li&gt;&#xA;&lt;li&gt;Do you fix bugs before writing new code?&lt;/li&gt;&#xA;&lt;li&gt;Do you have an up-to-date schedule?&lt;/li&gt;&#xA;&lt;li&gt;Do you have a spec?&lt;/li&gt;&#xA;&lt;li&gt;Do programmers have quiet working conditions?&lt;/li&gt;&#xA;&lt;li&gt;Do you use the best tools money can buy?&lt;/li&gt;&#xA;&lt;li&gt;Do you have testers?&lt;/li&gt;&#xA;&lt;li&gt;Do new candidates write code during their interview?&lt;/li&gt;&#xA;&lt;li&gt;Do you do hallway usability testing?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you score 0 then start with the source control.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-24T21:58:34.527" />
  <row Id="14307" PostTypeId="2" ParentId="14287" CreationDate="2010-10-24T22:03:51.583" Score="2" ViewCount="" Body="&lt;h2&gt;Depends On What You Do&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Java is also probably not dead, there will be a JVM, it's a very popular language and Oracle can't allow the Apple platform to simply die. Why you are writing Apps in Java baffles me, you don't write GUI's in Java.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I've recently come back to programming&#xA;  in the last year or so since I&#xA;  originally learnt on ye olde BASIC&#xA;  many years ago.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;One year of programming means you have barely scratched the surface. If you really want to ditch Java, go for another widespread structured language like C++.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;To that I see the main options as: C#&#xA;  - Closest in &quot;style&quot; to Java but M$ dependent (unless you consider Mono of&#xA;  course) C++ - Hugely complex but if&#xA;  even slightly conquered, then a win?&#xA;  Is it worth the climb up the learning&#xA;  curve? VB.Net - Already have&#xA;  background so easiest to go back to&#xA;  but who uses VB for .Net these days?&#xA;  Surely if using a CLI language I&#xA;  should use C#... Python -&#xA;  Cross-platform but what about UI for&#xA;  the end-user?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You seem to be UI focused, and I'm not a desktop GUI programmer. I tended to web based languages and wrote the occasional Swing GUI (not something I recommend).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My honest opinion is that you should look at web centric technologies. Again, look for a strong backing language that will force you to implement good styles (Java) and then augment it with a more loosely defined language (PHP, Python, JavaScript). I highly recommend learning JavaScript (language, not browser) due to my belief that in the near future JavaScript will become one of the more prevalent languages. Look at MongoDB, Node.js, jQuery, Firefox plug-ins, Appcelerator, these are all JavaScript centric.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want end use UI work, go browser and JavaScript. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-24T22:03:51.583" CommentCount="1" />
  <row Id="14308" PostTypeId="2" ParentId="14297" CreationDate="2010-10-24T22:07:21.873" Score="18" ViewCount="" Body="&lt;p&gt;When grading a student's program, I can sometimes tell in a &quot;blink&quot;-style moment. These are the instant clues:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Poor or inconsistent formatting&lt;/li&gt;&#xA;&lt;li&gt;More than two blank lines in a row&lt;/li&gt;&#xA;&lt;li&gt;Nonstandard or inconsistent naming conventions&lt;/li&gt;&#xA;&lt;li&gt;Repeated code, the more verbatim the repeats, the stronger the warning&lt;/li&gt;&#xA;&lt;li&gt;What should be a simple piece of code is overly complicated (for example, checking the arguments passed to main in a convoluted way)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Rarely are my first impressions incorrect, and these warning bells are right about &lt;strong&gt;95% of the time&lt;/strong&gt;. For one exception, a student new to the language was using a style from a different programming language. Digging in and re-reading their style in the idiom of the other language removed the alarm bells for me, and the student then got full credit. But such exceptions are rare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When considering more advanced code, these are my other warnings:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The presence of &lt;em&gt;many&lt;/em&gt; Java classes that are only &quot;structs&quot; to hold data. It doesn't matter if the fields are public or private and use getters/setters, it's still not likely part of a well thought-out design.&lt;/li&gt;&#xA;&lt;li&gt;Classes that have poor names, such as just being a namespace and there's no real cohesion in the code&lt;/li&gt;&#xA;&lt;li&gt;Reference to design patterns that aren't even used in the code&lt;/li&gt;&#xA;&lt;li&gt;Empty exception handlers without explanation&lt;/li&gt;&#xA;&lt;li&gt;When I pull up the code in Eclipse, hundreds of yellow &quot;warnings&quot; line the code, mostly due to unused imports or variables&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In terms of style, I generally don't like to see:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Javadoc comments that only echo the code&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These are &lt;strong&gt;only clues&lt;/strong&gt; to bad code. Sometimes what may seem like bad code really isn't, because you don't know the programmer's intentions. For instance, there may be a good reason that something seems overly complex-- there may have been another consideration at play.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-10-26T17:28:40.060" LastActivityDate="2010-10-26T17:28:40.060" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="11" />
  <row Id="14309" PostTypeId="2" ParentId="14297" CreationDate="2010-10-24T22:08:19.767" Score="80" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;/* Fuck this error */&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Typically found inside a nonsense &lt;code&gt;try..catch&lt;/code&gt; block, it tends to grab my attention. Just about as well as &lt;code&gt;/* Not sure what this does, but removing it breaks the build */&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A couple more things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Multiple nested complex &lt;code&gt;if&lt;/code&gt; statements&lt;/li&gt;&#xA;&lt;li&gt;Try-catch blocks that are used to determine a logic flow on a regular basis&lt;/li&gt;&#xA;&lt;li&gt;Functions with generic names &lt;code&gt;process&lt;/code&gt;, &lt;code&gt;data&lt;/code&gt;, &lt;code&gt;change&lt;/code&gt;, &lt;code&gt;rework&lt;/code&gt;, &lt;code&gt;modify&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Six or seven different bracing styles in 100 lines&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;One I just found:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/* Stupid database */&#xA;$conn = null;&#xA;while(!$conn) {&#xA;    $conn = mysql_connect(&quot;localhost&quot;, &quot;root&quot;, &quot;[pass removed]&quot;);&#xA;}&#xA;/* Finally! */&#xA;echo(&quot;Connected successfully.&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Right, because having to brute force your MySQL connections is the right way do things. Turns out the database was having issues with the number of connections so they kept timing out. Instead of debugging this, they simply attempted again and again until it worked.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2011-03-28T18:40:58.330" LastActivityDate="2011-03-28T18:40:58.330" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="16" />
  <row Id="14310" PostTypeId="2" ParentId="14299" CreationDate="2010-10-24T22:13:01.533" Score="2" ViewCount="" Body="&lt;p&gt;&quot;The Badenoch &amp;amp; Clark Happiness at Work Index is conducted quarterly by surveying a minimum of 1000 UK office based workers&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This 'study' is done by 1 (one) job agency in 2007. I wouldn't pay much attention to it. &lt;/p&gt;&#xA;" OwnerUserId="5564" LastActivityDate="2010-10-24T22:13:01.533" CommentCount="3" />
  <row Id="14311" PostTypeId="2" ParentId="1018" CreationDate="2010-10-24T22:15:39.970" Score="0" ViewCount="" Body="&lt;p&gt;I'd probably learn a trade, and generally go down a hands-on sort of occupational path...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no other &quot;knowledge work&quot; I can imagine doing except software development.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-24T22:15:39.970" />
  <row Id="14312" PostTypeId="2" ParentId="10208" CreationDate="2010-10-24T22:18:32.980" Score="0" ViewCount="" Body="&lt;p&gt;The purpose of the &quot;greatest weakness&quot; question is greatly misunderstood!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea is not to talk about your weakness as a person (e.g. &quot;boy, I'm a workaholic!&quot;), it's to give you an opportunity to be up front about what they are already going to find out. &lt;strong&gt;It's about how well of a match you are for the job requirements.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;Your ad says you want svn admin experience, but I've only worked with hg, however I'm fast at learning.&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;Your ad says that fluency in Spanish is desired, but I only took two years of it in high school.&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Naturally, you should do the same comparison of your skills/experience for the &quot;greatest strength&quot; question too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if the ad really describes you perfectly, when asked for your weakness simply say &quot;I don't think there are any. I'm a good fit for this job.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm trying to imagine how the original meaning of this question got to be misinterpreted to be about personality, and it probably happens when a more junior interviewer is given the list of questions to ask and they don't know what it means. If you are in the position to change this at your company, reword the question to be specific: &quot;This job requires A, B, C, what are your weaknesses in these areas?&quot; [The question actually does the interviewee a favor: Their resume might show no experience with X, but you might find something that compensates for that.]&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-10-24T22:27:27.470" LastActivityDate="2010-10-24T22:27:27.470" CommentCount="1" />
  <row Id="14313" PostTypeId="2" ParentId="1090" CreationDate="2010-10-24T22:34:44.207" Score="0" ViewCount="" Body="&lt;p&gt;Readability comes first where it conflicts with conciseness, because code is modified more often than it is initially written.  On the other hand:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Syntactic noise and boilerplate code often obscure intentions and thus hurt readability.  Sometimes the more concise code is also more readable.  For example, think lambda functions or delegates/first-class functions versus single-method classes that implement a single-method interface.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Readability should be assessed based on how easy the code is to read for a reasonably experienced programmer who knows the language and its unique/advanced features fairly well, not some barely competent code monkey who only knows the lowest common denominator.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-24T22:34:44.207" />
  <row Id="14314" PostTypeId="2" ParentId="14295" CreationDate="2010-10-24T22:37:42.230" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Refactoring To Patterns.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, build something that satisfies 90% of the software requirements, then refactor the whole project into some clean, elegant design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Normally, software engineering would prevent you from doing this, because satisfying 90% of the requirements means that the software has enough business value to the customer that it should not be modified in any significant way (except high-priority bugfixes). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software engineering would instead advise you to &lt;em&gt;stabilize&lt;/em&gt; the software at this point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, if a project does not start with that elegant design from the very beginning, it would be considered a poorly &lt;em&gt;executed&lt;/em&gt; project (regardless of the project's outcome), according to software engineering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Spike Solution.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A design that is inspired from a spike solution is normally not acceptable according to the prevailing software engineering methodology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Deprecation&lt;/strong&gt;, for whatever reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In software engineering, any kind of deprecation is allowed to happen only at the end of a software system's life cycle. This must be planned as part of the SDLC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In practice, it is rather common that the shortcomings of a specific part of the software interface being discovered a few years into production, and that specific part can be deprecated in the middle of the life cycle, without invalidating the rest of the software. This would have required a re-certification of the entire software system after the deprecation, according to software engineering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;In the end,&lt;/strong&gt; software craftsmanship is a personal strive for good judgments from individuals, whereas software engineering is a conservative body of knowledge. Allowing that good judgment into the project's decision making is what separates software craftsmanship from software engineering.&lt;/p&gt;&#xA;" OwnerUserId="620" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-10-24T22:55:19.007" LastActivityDate="2010-10-24T22:55:19.007" />
  <row Id="14315" PostTypeId="1" CreationDate="2010-10-24T22:45:56.433" Score="30" ViewCount="1769" Body="&lt;p&gt;Similar to my question about &lt;a href=&quot;http://programmers.stackexchange.com/questions/14297/which-things-instantly-ring-alarm-bells-when-looking-at-code&quot;&gt;easily spotted warning signs in code&lt;/a&gt; I think sometimes comments programmers make can tell you quite a lot (of not good things) about them in a short period of time. The scariest I've heard recently (from a senior) is:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I could use source control, but it'd&#xA;  slow me down&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Also, although not in the same category when I see something listed at the top of someone's CV and I ask them about it:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Oh, I didn't really use that but I was&#xA;  just in the same room as people using&#xA;  it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Duh! Then why is it featured prominently on your CV???&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally I quite often interview people with what looks like an excellent set of skills on paper. Sometimes these are excellent developers, but some of them when asked about a topic will rattle through a dictionary definition like a machine gun (and probably a better definition than I would be able to say if put on the spot like that). Then when asked to explain even really, really simple things to do with that topic are totally unable to (usually coming up with something totally wrong, followed by a repeat of the dictionary definition). I suspect that these are developers who have been in teams where they're not treated well and so have had no opportunity to act independently - which results in their learning being very superficial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What other things have you heard that tell you that a programmer is, er, let's try and think of a nice way of saying this...still taking the first steps towards being great?&lt;/p&gt;&#xA;" OwnerUserId="1362" LastEditorUserId="1362" LastEditorDisplayName="" LastEditDate="2010-10-25T08:20:35.577" LastActivityDate="2010-11-17T15:14:32.877" CommunityOwnedDate="2010-10-29T22:01:50.383" Title="Which comments instantly ring alarm bells when a programmer says them?" Tags="&lt;communication&gt;&lt;professionalism&gt;&lt;anti-patterns&gt;" AnswerCount="39" CommentCount="9" FavoriteCount="11" />
  <row Id="14316" PostTypeId="2" ParentId="14297" CreationDate="2010-10-24T22:49:29.923" Score="17" ViewCount="" Body="&lt;p&gt;A method that requires me to scroll down to read it all.&lt;/p&gt;&#xA;" OwnerUserId="5510" LastActivityDate="2010-10-24T22:49:29.923" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="10" />
  <row Id="14317" PostTypeId="2" ParentId="14297" CreationDate="2010-10-24T22:53:03.713" Score="66" ViewCount="" Body="&lt;p&gt;The major red flag for me is duplicated code blocks, because it shows that the person either doesn't understand programming fundamentals or was too scared to make the proper changes to an existing code base.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used to also count lack of comments as a red flag, but having recently worked on a lot of very good code with no comments I've eased back on that. &lt;/p&gt;&#xA;" OwnerUserId="5668" LastActivityDate="2010-10-24T22:53:03.713" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="7" />
  <row Id="14318" PostTypeId="2" ParentId="14315" CreationDate="2010-10-24T22:56:56.143" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&quot;This thing surely works&quot; / &quot;This module has no bugs&quot; (about his code)&lt;/li&gt;&#xA;&lt;li&gt;&quot;I've almost done, this already compiles&quot;&lt;/li&gt;&#xA;&lt;li&gt;using the wrong terminology in comments/variable names/function names (and really abusing it)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5928" LastActivityDate="2010-10-24T22:56:56.143" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="1" />
  <row Id="14319" PostTypeId="2" ParentId="9903" CreationDate="2010-10-24T22:57:16.833" Score="2" ViewCount="" Body="&lt;p&gt;A junior developer is most likely to become a &lt;strong&gt;good&lt;/strong&gt; senior developer if they recognise that they will have to be an intermediate developer first. There's no shortcut to gaining the skills that everyone else has listed - recognising that you have a lot to learn is the first step.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sadly there are a lot of junior developers out there with the title senior developer purely because they have the years under their belts. Unfortunately they're still junior because they've thought they were senior right from the beginning and were just waiting for the job title.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, the really good senior ones know that you will always have a lot to learn...&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-24T22:57:16.833" />
  <row Id="14320" PostTypeId="2" ParentId="14315" CreationDate="2010-10-24T22:59:38.060" Score="12" ViewCount="" Body="&lt;p&gt;When a programmer fixes a bug which can't be tested (because it requires an extensive environment which only exists in production) and they say:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Meh. I'll just check this in and assume it'll work.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Famous last words.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-24T22:59:38.060" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="8" />
  <row Id="14321" PostTypeId="1" AcceptedAnswerId="14346" CreationDate="2010-10-24T23:05:35.337" Score="5" ViewCount="337" Body="&lt;p&gt;&lt;strong&gt;Cross-Posted from StackOverFlow.com as suggested by a member.&lt;/strong&gt;&#xA;&lt;a href=&quot;http://stackoverflow.com/questions/4010914/web-development-what-should-i-learn-to-get-a-good-job&quot;&gt;http://stackoverflow.com/questions/4010914/web-development-what-should-i-learn-to-get-a-good-job&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm finishing up my Computer Science degree within the next year. For the past couple of years I've been doing Web Development on a freelance basis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd really like to be able to get a decent job doing Web Development after school. My &quot;professional&quot; experience so far has been with PHP, MySQL, and various frameworks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I live in the Dayton, Ohio area. We don't have a huge market for web developers at the moment. I'm willing to learn and use any language and technology available. I'm not a big fan of PHP at all so I'd like to switch to something more powerful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I do searches online for jobs, I typically see either people going for Java-based solutions or .Net-based solutions. Out of the two, I would prefer Java. The main problem that I have is on every job ad it feels like the company just lists off a bunch of &quot;buzzword&quot; technologies and every company desires different things. It's impossible for me to learn every piece of technology out there before I graduate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What should I focus on learning and using within the next year to increase my chances on getting a web development job in this area?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any extra tips would be appreciated too!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="6331" LastEditorUserId="500" LastEditorDisplayName="" LastEditDate="2010-10-25T01:40:39.093" LastActivityDate="2010-10-25T06:09:12.463" Title="Web Development - What should I learn to get a good job?" Tags="&lt;jobs&gt;&lt;learning&gt;&lt;recommendations&gt;&lt;web-development&gt;&lt;career-advice&gt;" AnswerCount="4" />
  <row Id="14322" PostTypeId="2" ParentId="14297" CreationDate="2010-10-24T23:05:39.540" Score="8" ViewCount="" Body="&lt;p&gt;Language agnostic:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;TODO: not implemented&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;int function(...) { return -1; }&lt;/code&gt; (the same as &quot;not implemented&quot;)&lt;/li&gt;&#xA;&lt;li&gt;Throwing an exception for a non-exceptional reason.&lt;/li&gt;&#xA;&lt;li&gt;Misuse or inconsistent use of &lt;code&gt;0&lt;/code&gt;, &lt;code&gt;-1&lt;/code&gt; or &lt;code&gt;null&lt;/code&gt; as exceptional return values.&lt;/li&gt;&#xA;&lt;li&gt;Assertions without a convincing comment saying why it should never fail.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Language specific (C++):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;C++ Macros in lowercase.&lt;/li&gt;&#xA;&lt;li&gt;Static or Global C++ variables.&lt;/li&gt;&#xA;&lt;li&gt;Uninitialized or unused variables.&lt;/li&gt;&#xA;&lt;li&gt;Any &lt;code&gt;array new&lt;/code&gt; that is apparently not RAII-safe.&lt;/li&gt;&#xA;&lt;li&gt;Any use of array or pointer that is apparently not bounds-safe. This includes &lt;code&gt;printf&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Any use of the un-initialized portion of an array.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Microsoft C++ specific:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Any identifier names that collide with a macro already defined by any of the Microsoft SDK header files.&lt;/li&gt;&#xA;&lt;li&gt;In general, any use of the Win32 API is a big source of alarm bells. Always have MSDN open, and look up the arguments/return value definitions whenever in doubt. &lt;strong&gt;(Edited)&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;C++/OOP specific:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Implementation (concrete class) inheritance where the parent class have both virtual and non-virtual methods, without a clear obvious conceptual distinction between what should/should not be virtual.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="620" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-10-24T23:57:05.153" LastActivityDate="2010-10-24T23:57:05.153" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="5" />
  <row Id="14323" PostTypeId="2" ParentId="11312" CreationDate="2010-10-24T23:09:39.173" Score="0" ViewCount="" Body="&lt;p&gt;A Hardware clock&lt;/p&gt;&#xA;" OwnerUserId="6240" LastActivityDate="2010-10-24T23:09:39.173" CommunityOwnedDate="2010-10-24T23:09:39.173" />
  <row Id="14324" PostTypeId="2" ParentId="1018" CreationDate="2010-10-24T23:16:29.653" Score="3" ViewCount="" Body="&lt;p&gt;Are mechanical/analog computers out too, or are we just talking about electronic computers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Charles_babbage&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Charles_babbage&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://en.wikipedia.org/wiki/Analytical_engine&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Analytical_engine&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If we had no electrical computers, then i'd run my software on mechanical ones. &lt;br&gt;&#xA;And I guess if I didn't have mechanical computers, I'd train humans as mentats!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But even if those don't count, I'll always be a programmer, no matter what I &quot;do for a living&quot;. Its a way of thinking.&lt;/p&gt;&#xA;" OwnerUserId="6167" LastActivityDate="2010-10-24T23:16:29.653" CommentCount="0" />
  <row Id="14325" PostTypeId="2" ParentId="14315" CreationDate="2010-10-24T23:21:19.640" Score="42" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Our build/install is just too complicated. &#xA;  It can't be automated.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I have walked onto way too many projects where the build, development setup, and/or the product installation &quot;process&quot; was a ton of manual operations.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The result was either a poorly documented process with one guy who knew all of the steps that had to be done (and would mess up at least one of the steps and be forced to do it several times, or worse not realize until later that it was done wrong), or a giant Word document with page after page of screenshots and instructions to type something at the command prompt and hit return, which made the process take forever, easy to skip steps, likely to be out-of-date, and just painful.&lt;/p&gt;&#xA;" OwnerUserId="4922" LastEditorUserId="4922" LastEditorDisplayName="" LastEditDate="2010-10-26T12:20:04.003" LastActivityDate="2010-10-26T12:20:04.003" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="6" />
  <row Id="14326" PostTypeId="1" CreationDate="2010-10-24T23:22:42.643" Score="6" ViewCount="210" Body="&lt;p&gt;The title pretty much gives you the gist of the question, but allow me elaborate a bit nevertheless. Apart from Google's involvement on Python, and Activestate's on Perl development (Strawberry AFAIK doesn't make any money on its own product) I'm interested in what are the major sources of funding of such. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any texts that cover this? I tried searching, but found nothing apart from the &quot;history of&quot; and &quot;it's opensource, everyone gives in&quot; ...&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-29T00:45:28.720" Title="How is the development of languages like Python and Perl funded?" Tags="&lt;python&gt;&lt;perl&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="1" />
  <row Id="14327" PostTypeId="2" ParentId="14226" CreationDate="2010-10-24T23:24:18.513" Score="0" ViewCount="" Body="&lt;p&gt;I work in a fairly small company (~15 people), and almost everyone has a desk phone with buttons to directly call anyone else in the company.  So it is handy for internal calls, the other end defaults to speakerphone mode so the person you are calling can answer without having to reach for their phone (thought of course there is still a distraction).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hardly every use my desk phone for outgoing calls (generally use my cell phone for that), and probably get only one or two incoming calls from outside a month.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-24T23:24:18.513" CommunityOwnedDate="2011-01-07T02:23:03.807" />
  <row Id="14328" PostTypeId="2" ParentId="14226" CreationDate="2010-10-24T23:46:13.373" Score="0" ViewCount="" Body="&lt;p&gt;Yes but I have worked where the phone was shared which is worse.  I rarely get phone calls at work.  I didn't ask for it but I do think it is almost standard to have it in most offices in some form.  Where I work we also have rooms with phones for those calls where one wants some privacy.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-24T23:46:13.373" CommunityOwnedDate="2011-01-07T02:23:03.807" />
  <row Id="14329" PostTypeId="2" ParentId="3918" CreationDate="2010-10-24T23:47:47.750" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Code conventions&lt;/strong&gt; is &lt;em&gt;the&lt;/em&gt; answer. You should have one at work. If you don't, start right now (a good starting point is &lt;a href=&quot;http://code.google.com/p/google-styleguide/&quot; rel=&quot;nofollow&quot;&gt;google style guide&lt;/a&gt;) . When there are written (or at least commonly known) rules the answer to your question is trivial.&lt;/p&gt;&#xA;" OwnerUserId="5928" LastActivityDate="2010-10-24T23:47:47.750" />
  <row Id="14330" PostTypeId="2" ParentId="14326" CreationDate="2010-10-24T23:48:41.673" Score="7" ViewCount="" Body="&lt;p&gt;&quot;It's opensource, everyone gives in&quot; pretty much &lt;em&gt;is&lt;/em&gt; the state of the funding for these languages.  (Aside from Google, of course.)  Your question seems to be based on the unspoken assumption that in order to develop the language, it has to be funded by someone with deep pockets, and this simply isn't true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Development (of anything) doesn't require money, it requires time, effort and raw materials.  We've got an economy where money is commonly used to buy raw materials and motivate people to put time and effort into something, and the concept is so prevalent that so we tend to equate them, but they're separate and separable concepts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People who contribute to an open-source programming language already have the raw materials (a computer, an Internet connection and basic development tools,) and usually have a different motivation for putting time and effort into it:  They don't do it for money, they do it because they're using the language and they want to help shape it into a better tool for whatever it is they're using it for.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-24T23:48:41.673" CommentCount="1" />
  <row Id="14331" PostTypeId="2" ParentId="14315" CreationDate="2010-10-24T23:49:42.540" Score="1" ViewCount="" Body="&lt;p&gt;Oh that is a magic number, it maps the &amp;lt;foo&amp;gt; to &amp;lt;baz&amp;gt;&lt;/p&gt;&#xA;" OwnerUserId="4623" LastEditorUserId="935" LastEditorDisplayName="" LastEditDate="2010-10-25T02:01:30.267" LastActivityDate="2010-10-25T02:01:30.267" CommunityOwnedDate="2010-10-29T22:01:50.383" />
  <row Id="14332" PostTypeId="2" ParentId="14315" CreationDate="2010-10-24T23:52:25.497" Score="40" ViewCount="" Body="&lt;p&gt;Let's rebuild this from scratch.&lt;/p&gt;&#xA;" OwnerUserId="6135" LastActivityDate="2010-10-24T23:52:25.497" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="9" />
  <row Id="14333" PostTypeId="2" ParentId="14297" CreationDate="2010-10-24T23:54:39.090" Score="4" ViewCount="" Body="&lt;p&gt;Comments that say &quot;this is because the design of the froz subsystem is totally borked.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That go on over an entire paragraph. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They explain that the following refactor needs to happen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But did not do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, they might have been told they couldn't change it by their boss at the time, because of time or competence issues, but maybe it was because of people being petty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a supervisor thinks that j.random. programmer can't do a refactoring, then the supervisor should do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway this happens, I know the code was written by a divided team, with possible power politics, and they didn't refactor borked subsystem designs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;True story. It could happen to you.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-10-24T23:54:39.090" CommunityOwnedDate="2010-10-25T14:40:27.240" />
  <row Id="14334" PostTypeId="2" ParentId="3918" CreationDate="2010-10-24T23:59:49.693" Score="0" ViewCount="" Body="&lt;p&gt;Hi&lt;/p&gt;&#xA;&#xA;&lt;p&gt;this is a thought I saw on internet talking about &lt;strong&gt;refactoring&lt;/strong&gt; and maybe explain why would someone touch your code to make it better:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Why?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are two main reasons to refactor:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;To improve the code/design before&#xA;building on it’s top: It’s really&#xA;hard to come up with good code on&#xA;the first attempt. The first try to&#xA;implement any initial design will&#xA;show us that we misinterpreted or&#xA;forgot some logic.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;To adapt to changes in the&#xA;requirements. Change happens in the&#xA;software development; to be&#xA;responsive to change is better to&#xA;have a good code base. We have two&#xA;options for both scenarios, path the&#xA;code or refactor it. Patching the&#xA;code will lead us to unmaintainable&#xA;code, and will increase our&#xA;technical debt, it’s always better&#xA;to refactor.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;When?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;The sooner the better as is easier.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;faster and less risky to refactor over a recently refactored code rather than waiting to refactor for the code to be almost completed.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;All the code and all the design are candidates for refactoring. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;An exception for not refactoring something could be a working piece of code which is quality is low, but due to be close to a deadline, we prefer to keep our technical debt rather than risking the planification.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;You just have to let him do his best, if it would be great for both and save your time in future!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;cheers&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-24T23:59:49.693" />
  <row Id="14335" PostTypeId="1" AcceptedAnswerId="14374" CreationDate="2010-10-25T00:02:30.797" Score="28" ViewCount="2165" Body="&lt;p&gt;Similar to the question I read on Server Fault, what is the biggest mistake you've ever made in an IT related position. Some examples from friends:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I needed to do some work on a production site so I decided to copy over the live database to the beta site. Pretty standard, but when I went to the beta site it was still pulling out-of-date info. OOPS! I had copied the beta database over to the live site! Thank god for backups.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And for me, I created a form for an event that was to be held during a specific time range. Participants would fill out the form for a chance to win, and we would send the event organizers a CSV from the database. I went into the database, and found ONLY 1 ENTRY, MINE. Upon investigating, it appears as though I forgot an auto increment key, and because of the server setup there was no way to recover the lost data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am aware this question is similar to ones on Stack Overflow but the ones I found seemed to receive generic answers instead of actual stories :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/200610/what-is-the-biggest-coding-error-mistake-ever&quot;&gt;What is the biggest coding error/mistake ever…&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2011-04-20T02:05:25.763" CommunityOwnedDate="2011-01-13T19:43:02.007" Title="Biggest mistake you've ever made" Tags="&lt;experience&gt;&lt;programming&gt;" AnswerCount="38" CommentCount="1" FavoriteCount="6" />
  <row Id="14336" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T00:06:09.100" Score="14" ViewCount="" Body="&lt;p&gt;Personally, I look out for technically true statements that signal a broken understanding of software development/reality. Some of my favorites so far:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I like developing in Joomla because it uses the MVC architecture&quot; (the project in question is an application that will be deployed only on Windows Server and doesn't have any dynamic content)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;In my professional experience, version control never benefits the developers&quot; (When asked, she clarified that she had only used Visual Source Safe in the past)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Well what's the problem with using GPL licensed code? It's just open source, there's no big deal!&quot; (maintained dismissive arrogance even after confronted with the facts of GNU GPL's restrictions, particularly ones that affect proprietary software)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Why would you need to track those files? They're just scripts and code.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm lucky because my (non-technical) boss trusts me enough that when I call this particular developer out on something, I get the benefit of the doubt, but I know this kind of garbage must work at other companies, and I weep for them.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="610" LastEditorDisplayName="" LastEditDate="2010-11-17T15:14:32.877" LastActivityDate="2010-11-17T15:14:32.877" CommunityOwnedDate="2010-10-29T22:01:50.383" />
  <row Id="14338" PostTypeId="2" ParentId="14226" CreationDate="2010-10-25T00:10:42.620" Score="2" ViewCount="" Body="&lt;p&gt;I do have a desk phone, but did not ask for it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't receive many calls during the day, and make it clear to my coworkers that I would prefer that most things be resolved via email or IM. For whatever the reason, verbal communication leaves me feeling incredibly drained.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So far this has worked out well. There are still a few that won't do it, and I try to meet them halfway. The goal is still communication, so if some compromise has to be made, so be it.&lt;/p&gt;&#xA;" OwnerUserId="1215" LastActivityDate="2010-10-25T00:10:42.620" CommunityOwnedDate="2011-01-07T02:23:03.807" />
  <row Id="14339" PostTypeId="2" ParentId="14226" CreationDate="2010-10-25T00:23:57.473" Score="0" ViewCount="" Body="&lt;p&gt;Yes, I had to dig around for a filter. The internet connection was interfering. People had assumed it broken. Being the techie, I guessed what the problem was. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't get distracted, I never give out the number, being that I have no idea what my extension is. I guess it's a one way phone.  &lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-10-25T00:23:57.473" CommunityOwnedDate="2011-01-07T02:23:03.807" />
  <row Id="14340" PostTypeId="2" ParentId="14226" CreationDate="2010-10-25T00:24:23.237" Score="0" ViewCount="" Body="&lt;p&gt;I have a phone, but the number is shared by everyone (small company) and either the office manager of the CEO usually answers it. I have it turned down, never answer it and very rarely use it. We have one offsite guy and use IM with him most of the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I &lt;em&gt;do&lt;/em&gt; have my mobile on my desk though, which is the only number I give anyone to contact me during business hours.&lt;/p&gt;&#xA;" OwnerUserId="5668" LastActivityDate="2010-10-25T00:24:23.237" CommunityOwnedDate="2011-01-07T02:23:03.807" />
  <row Id="14341" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T00:24:34.953" Score="32" ViewCount="" Body="&lt;h1&gt;Typo's&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Spent three solid days on this chunk:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if($func == &quot;remove&quot;)&#xA;{&#xA;    $p-&amp;gt;comments[$index]-&amp;gt;removed = true;&#xA;    $p-&amp;gt;save();&#xA;}&#xA;else if($func == &quot;approve&quot;);&#xA;{&#xA;    $p-&amp;gt;comments[$index]-&amp;gt;approved = true;&#xA;    $p-&amp;gt;comments[$index]-&amp;gt;removed = false;&#xA;    $p-&amp;gt;save();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;See the error? It's the semicolon at the end of the &lt;code&gt;else if&lt;/code&gt;. I couldn't figure out why my removed comments weren't removing. Dug into the database, the AJAX request I was using, POST variables, had &lt;code&gt;error_log&lt;/code&gt;'s and &lt;code&gt;alerts&lt;/code&gt; &lt;strong&gt;everywhere&lt;/strong&gt;. Ended up re-writing the method and it worked. Then I did a diff with the original version and noticed the semicolon. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Typo's are the hardest to track down on a language that isn't compiled or pre-checked by something. Even errors like this would be difficult on a compiled language. Change a &lt;code&gt;==&lt;/code&gt; to &lt;code&gt;=&lt;/code&gt; and suddenly you have assignment inside an &lt;code&gt;if&lt;/code&gt;. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2011-04-19T22:07:14.007" LastActivityDate="2011-04-19T22:07:14.007" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="30" />
  <row Id="14342" PostTypeId="2" ParentId="2815" CreationDate="2010-10-25T00:25:29.390" Score="-3" ViewCount="" Body="&lt;p&gt;Not sure if someone put something about &lt;strong&gt;automatic casting&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int age = 70;&#xA;var foo = &quot;John Lennon would be &quot; + age + &quot; years old&quot;;&#xA;Console.WriteLine(foo);&#xA;&#xA;//---- output&#xA;John Lennon would be 70 years old&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-25T00:25:29.390" CommunityOwnedDate="2010-10-25T00:25:29.390" CommentCount="2" />
  <row Id="14343" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T00:26:08.463" Score="7" ViewCount="" Body="&lt;p&gt;I once used a cross join without a filter.  Worked just fine on the test database with a fraction of the data.  When it was deployed, it ended up with ~60M rows in an average query. &lt;/p&gt;&#xA;" OwnerUserId="4082" LastActivityDate="2010-10-25T00:26:08.463" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="1" />
  <row Id="14344" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T00:28:50.007" Score="42" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;20,000 (exaggeration) line functions. Any function that takes more than a couple of screens needs re-factoring.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Along the same lines, class files that seem to go on forever. There are probably a few concepts that could be abstracted into classes which would clear up the purpose and function of the original class, and probably where it is being used, unless they are all internal methods.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;non-descriptive, non-trivial variables, or too many trivial non-descriptive variables. These make deducing what is actually happening a riddle.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5682" LastActivityDate="2010-10-25T00:28:50.007" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="10" />
  <row Id="14345" PostTypeId="2" ParentId="2815" CreationDate="2010-10-25T00:42:46.563" Score="-4" ViewCount="" Body="&lt;p&gt;I'd get rid of the syntax litter like &lt;code&gt;{}&lt;/code&gt; and &lt;code&gt;;&lt;/code&gt;. And &lt;code&gt;var&lt;/code&gt; (which makes a C# programmer a VB.NET programmer)&lt;/p&gt;&#xA;" OwnerUserId="6258" LastActivityDate="2010-10-25T00:42:46.563" CommunityOwnedDate="2010-10-25T00:42:46.563" CommentCount="2" />
  <row Id="14346" PostTypeId="2" ParentId="14321" CreationDate="2010-10-25T00:44:41.890" Score="4" ViewCount="" Body="&lt;p&gt;The most important thing you can learn is flexibility.  Never allow yourself to become limited to a single tool set or a single technology.  As you point out, every job asks for various things.  You're not really expected to be an expert in everything, but you should be able to think and learn in an abstract enough manner so as to figure something out when it's not immediately familiar to you.  &quot;Learning how to learn&quot; as it were.  It's kind of obvious, I know, but you'll be surprised how useful it is in professional environments when you're on a team full of people trained in a single setup and something comes up that doesn't fit.  Managers love to hear things like &quot;Sure, I should be able to figure that out&quot; when everyone else is saying &quot;That's the wrong technology for this shop, we can't do anything with that.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thing to point out goes back again to your observation that every job lists out all kinds of different things they want.  Generally these job descriptions are written by hiring managers and/or HR departments who don't always have a firm grasp (or any grasp) on what the developer is actually going to do on a daily basis.  They have a list of tools and technologies and maybe vague concepts that their company &quot;officially uses&quot; and they just put that list on the job posting.  Don't sweat it if you're not an expert in all of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're very comfortable with some of it, a little comfortable with some of it, and think you can manage the rest then there's no harm in trying.  It's a judgement call on a case by case basis.  Also, the responsibility is mostly on the interviewer(s) and hiring manager to make sure you're a good fit.  When they ask about the tools and technologies, be honest.  &quot;I've barely used that, but am familiar with it.&quot;  &quot;I haven't had a chance to use that tool yet.&quot;  etc.  The person interviewing you &lt;em&gt;should&lt;/em&gt; know if that's a deal breaker.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;During any interview you definitely want to find out what your daily activities for that job are going to be.  Maybe they put T-SQL Stored Procedures on the job description because all of their application's logic is in the database.  Or maybe they put it there because they have basic CRUD procedures auto-generated by an ORM tool and you'll never actually need to manually edit or even read them, but they're there.  It is often a list of buzzwords and more indicative of them covering their bases than an accurate description of your daily duties there.  (Case in point, I was hired in my current job because they needed someone to do PHP development.  Upon arrival I discover that the primary task is converting some PHP sites to .NET, with a little support of the live PHP sites in the meantime.  Works out pretty well for me, though, being a .NET developer with a bit of PHP experience.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what should you learn?  Well, what &lt;em&gt;shouldn't&lt;/em&gt; you learn?  If it interests you, learn it.  Even if you never take a job that uses it, learn it anyway.  C# or Java?  The differences aren't as important as most hiring managers think.  Learn good practices.  Learn design patterns (and, more importantly, how to identify the problems those patterns address).  Learn the concepts of writing code that's efficient and how to scale it from a small website to a critical high-volume system.  Learn how to find and solve problems in code.  (Being able to pick up an old legacy codebase, even one outside of your company's given development environment, and identify and/or correct a problem will be &lt;em&gt;very&lt;/em&gt; useful.  Sometimes you can attach WinDbg to an old VB6 app for which they might not even have the code anymore, find why it's suddenly randomly failing, and perhaps identify an infrastructure/environment problem as the root cause to be corrected.  Suddenly you're some other department's hero.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ya, this was more general advice than perhaps you were looking for with this question.  But hopefully it'll help you at some point.  There is no path to take to become a successful (as in: happy with your career) developer.  You have to make the path.  To run with that analogy, the most important thing you can do is be able to change direction or even double back if you reach an impasse.  Any advice we give you on &quot;which technology to learn&quot; or &quot;which language/tool to use&quot; will be useless advice in a few years.  (Though a useful guide can often be found here: &lt;a href=&quot;http://www.thoughtworks.com/radar/&quot; rel=&quot;nofollow&quot;&gt;http://www.thoughtworks.com/radar/&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Congrats on the coming degree, and good luck!&lt;/p&gt;&#xA;" OwnerUserId="6335" LastActivityDate="2010-10-25T00:44:41.890" CommentCount="1" />
  <row Id="14347" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T00:49:50.373" Score="2" ViewCount="" Body="&lt;p&gt;Built a version of our software on my computer instead of the build computer as it was faster (about 4 hours faster, which meant that it could go into QA that day instead of the next) and the publisher wanted it asap.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had a special define for debugging on my computer which caused a bug that wasn't detected in QA. They only detected it at the end of 4 weeks of validation testing, but it was bad enough to fail validation.&lt;/p&gt;&#xA;" OwnerUserId="5682" LastActivityDate="2010-10-25T00:49:50.373" CommunityOwnedDate="2011-01-13T19:43:02.007" />
  <row Id="14348" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T00:54:03.973" Score="0" ViewCount="" Body="&lt;p&gt;I saw once in code where they tested if something existed then connected to the DB and then kept looping and connecting to the DB every time with the same call instead of storing the data into a dataset.&lt;/p&gt;&#xA;" OwnerUserId="6338" LastActivityDate="2010-10-25T00:54:03.973" CommunityOwnedDate="2010-10-25T14:40:27.240" />
  <row Id="14349" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T00:56:20.457" Score="5" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;#define ...&#xA;#define ...&#xA;#define ...&#xA;#define ...&#xA;#define ...&#xA;#define ...&#xA;#define ...&#xA;#define ...&#xA;#define ...&#xA;#define ...&#xA;#define ...&#xA;#define ...&#xA;#define ...&#xA;#define ...&#xA;#define ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Of course without any kind of documentation and the occasional nested &lt;code&gt;#define&lt;/code&gt;s&lt;/p&gt;&#xA;" OwnerUserId="6339" LastActivityDate="2010-10-25T00:56:20.457" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="1" />
  <row Id="14350" PostTypeId="1" CreationDate="2010-10-25T01:03:39.263" Score="4" ViewCount="260" Body="&lt;p&gt;My desktop is fine, except that I like programming while reclining on a couch. My legs hurt after sitting too long in an office chair.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there anything like a keyboard, trackpad, and monitor combo that I could hook up to my desktop (8 feet away from the couch), so I can work on the couch?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was thinking of buying a laptop for this purpose, but I'm looking to save money.&lt;/p&gt;&#xA;" OwnerUserId="6340" LastActivityDate="2010-10-25T05:00:07.957" Title="Laptop like keyboard, trackpad, and monitor combo that I can hook up to my desktop so I can program while reclining on my couch?" Tags="&lt;hardware&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="14351" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T01:20:08.770" Score="18" ViewCount="" Body="&lt;p&gt;A lot of people have mentioned: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//TODO: [something not implemented]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;While I wish that stuff was implemented, at least they made a note. What I think is worse is:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//TODO: [something that is already implemented]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Todo's are worthless and confusing if you never bother to remove them!&lt;/p&gt;&#xA;" OwnerUserId="3792" LastEditorUserId="2894" LastEditorDisplayName="" LastEditDate="2010-11-22T14:09:27.933" LastActivityDate="2010-11-22T14:09:27.933" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="9" />
  <row Id="14353" PostTypeId="2" ParentId="14254" CreationDate="2010-10-25T01:34:20.897" Score="3" ViewCount="" Body="&lt;p&gt;It's not necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always Google the candidates I interview, I check everything Facebook, Twitter, Github, etc. If they have a blog a will find it and read it anyway.&lt;/p&gt;&#xA;" OwnerUserId="31" LastActivityDate="2010-10-25T01:34:20.897" CommentCount="3" />
  <row Id="14354" PostTypeId="2" ParentId="14321" CreationDate="2010-10-25T01:35:43.580" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The answer you may have been looking for:&lt;/strong&gt;&lt;br&gt;&#xA;.Net is going to be all Microsoft products, generally as the core technology tools, so I have found you can predict what they are looking for with a bit more ease. For Web, learn C#, XAML, Linq, some SQL, WPF, and ASP.Net pretty well and you will probably hit most of the bases.&lt;br&gt;&#xA;&lt;strong&gt;The real answer:&lt;/strong&gt;&lt;br&gt;&#xA;Market yourself who is in it to learn. Make it a requirement of any employer you are looking at. By this, I mean literally say &quot;I would like to work for you provided that I have the opportunity to learn and be challenged by new technologies.&quot;  Of course a company interviews you, but you also need to interview them. The great part is that not only will you be happier at the job you actually land, it looks really good from the employers perspective. Sure, some companies are looking for an AS 400 savant, but what happens when the AS 400 becomes obsolete? They are going to want someone who is not only capable of learning the new platform, but someone who will be excited about it, which encourages all the savants stuck in the &quot;old way&quot; to learn a bit more.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-25T01:35:43.580" />
  <row Id="14356" PostTypeId="1" AcceptedAnswerId="14360" CreationDate="2010-10-25T01:40:46.390" Score="14" ViewCount="488" Body="&lt;p&gt;As a programmer who work in a company whose vision is to make &lt;strong&gt;paperless office&lt;/strong&gt; possible, is there any way I can work effectively while using less paper?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can list at least several kinds of papers I use quite often:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Paper notebook, on which I do most of the pre-coding design work and ideas&lt;/li&gt;&#xA;&lt;li&gt;Books&lt;/li&gt;&#xA;&lt;li&gt;Temporary printouts of source code, though not so often (&lt;em&gt;in color, with a 6 point font at 600 DPI&lt;/em&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Sticky note, to remind myself of things that should be taken care of within a few days&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I also use a wiki and an office text editor. Once a while I would use a diagramming software to make a few flowcharts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Deeper questions:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is there a relationship between paper use and productivity? &lt;/li&gt;&#xA;&lt;li&gt;How can programmers help save the trees? &lt;/li&gt;&#xA;&lt;li&gt;Is paperless software development fundamentally different from paperless office?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Related questions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/7656&quot;&gt;Do you ever write code with pen and paper, and should we do it more often?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/3629&quot;&gt;What physical tools do you find useful to work as a programmer?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/2233&quot;&gt;What things are essential on a programmer's desk?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/11312&quot;&gt;Stuff every programmer needs while working&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Additional info, if it helps:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Everyone has dual monitors.&lt;/li&gt;&#xA;&lt;li&gt;We have decent project management and issue tracking software (both web-based).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Please be constructive.&lt;/strong&gt; In particular, please give your answer to your peer programmers who wish to be flexible and are willing to change working style in order to become more productive as well as meeting certain their own personal values.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Edited:&lt;/em&gt;&lt;/strong&gt; I removed the company's view because it appears to be too flamebait. If you need to see my original words, go to the edit history.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Deleted: Doxygen and whiteboard.&lt;/em&gt;&lt;/strong&gt;&lt;br&gt; Reason: disregarding my personal experience with these great tools, we never had to print out anything as a consequence of using/not using them. To see my original words, go to the edit history.&lt;/p&gt;&#xA;" OwnerUserId="620" LastEditorUserId="4887" LastEditorDisplayName="" LastEditDate="2011-02-13T19:46:14.560" LastActivityDate="2011-02-13T21:56:39.137" Title="Is paper indispensable in a programmer's everyday work?" Tags="&lt;productivity&gt;&lt;work-environment&gt;&lt;pen-and-paper&gt;" AnswerCount="13" CommentCount="7" FavoriteCount="1" />
  <row Id="14357" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T01:47:25.177" Score="36" ViewCount="" Body="&lt;p&gt;&quot;This is an emergency the change needs to go to production now, we don't have time for review, testing, or a roll-back plan.&quot;&lt;/p&gt;&#xA;" OwnerUserId="3697" LastActivityDate="2010-10-25T01:47:25.177" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="7" />
  <row Id="14358" PostTypeId="2" ParentId="14356" CreationDate="2010-10-25T01:48:12.087" Score="2" ViewCount="" Body="&lt;p&gt;PDF versions, of books are nice and can be a convenient reference. I do not think I could work without my legal pad though. It is like my brain that sits on my desk and never forgets anything (unless it gets wet). I like to print out screens of UI prototypes as well so that I can mark them up with a pen.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-25T01:48:12.087" CommentCount="4" />
  <row Id="14359" PostTypeId="2" ParentId="2815" CreationDate="2010-10-25T01:55:44.900" Score="1" ViewCount="" Body="&lt;p&gt;I would add &lt;a href=&quot;http://en.wikipedia.org/wiki/Duck_typing&quot; rel=&quot;nofollow&quot;&gt;Duck-Typing&lt;/a&gt;. Think of it as implicit interfaces. If an object implements the set of methods that compose an interface it is considered to implement that interface, even if the class does not explicitly name it.&lt;/p&gt;&#xA;" OwnerUserId="4142" LastEditorUserId="147" LastEditorDisplayName="" LastEditDate="2011-02-22T21:29:06.400" LastActivityDate="2011-02-22T21:29:06.400" CommunityOwnedDate="2010-10-25T01:55:44.900" CommentCount="3" />
  <row Id="14360" PostTypeId="2" ParentId="14356" CreationDate="2010-10-25T01:56:03.720" Score="24" ViewCount="" Body="&lt;h1&gt;Absolutely Yes&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Paper, along with a whiteboard, is absolutely indispensable.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-25T01:56:03.720" CommentCount="8" />
  <row Id="14361" PostTypeId="2" ParentId="14356" CreationDate="2010-10-25T02:01:16.663" Score="2" ViewCount="" Body="&lt;p&gt;About the only thing I use paper for now is note-taking when on the phone, printing cheat sheets to stick on the wall, and occasionally algorithm development when my brain needs a change of context. There's also reference text books around the place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To get me completely off paper, I'd need a digital copy of any reference books I need, either online or preferably on a separate e-reader/tablet. If I had a headset I could type to take notes when on the phone (which is rare anyway).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the need to scrawl algorithms, perhaps a desk surface that's a whiteboard would work. A shared whiteboard is OK, but often my scrawl is not something that should be/needs to be shared.&lt;/p&gt;&#xA;" OwnerUserId="5668" LastActivityDate="2010-10-25T02:01:16.663" />
  <row Id="14362" PostTypeId="2" ParentId="14356" CreationDate="2010-10-25T02:16:17.457" Score="2" ViewCount="" Body="&lt;p&gt;It really depends on the programmer.  During meetings, some people jot notes on paper while others use a text editor from their laptop.  I prefer using a real notepad to write stuffs on during meeting because I don't like dragging my laptop with me.  Moreover, in 2+ hours of meeting, the laptop might run out of batteries(some rooms might not have enough power outlet for your charger).  Some of you might argue that laptops can last 10 hours but a 3 year old laptop can have a battery life of 2 hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Paper is also useful to quickly write pseudocodes, algorithm, ideas and hand drawn graphics to connect your points.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When all the above can be done faster, more efficiently with very little hassle electronically for a budget programmer, then paper might become obsolete in a programmer's work environment.&lt;/p&gt;&#xA;" OwnerUserId="5968" LastActivityDate="2010-10-25T02:16:17.457" />
  <row Id="14363" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T02:19:30.417" Score="2" ViewCount="" Body="&lt;p&gt;All our data is safe since we are using C++ which (unlike C) will automatically take care of all data hiding and abstraction.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-25T02:19:30.417" CommunityOwnedDate="2010-10-29T22:01:50.383" />
  <row Id="14364" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T02:25:58.853" Score="4" ViewCount="" Body="&lt;p&gt;&quot;Let's get this code written first; I'll get to the tests later.&quot;&lt;/p&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-10-25T02:25:58.853" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="2" />
  <row Id="14365" PostTypeId="2" ParentId="14356" CreationDate="2010-10-25T02:26:41.410" Score="0" ViewCount="" Body="&lt;p&gt;Personally I like using paper. It is really useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think your company fell into the trap of (green) penny saving. You don't have to eliminate all papers to save the planet, only waste.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really want to make a difference vs the environment there is a TON of other things you could look for. Try to minimize waste in other areas instead. Maybe you could try saving on fuel cost, or anything really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is your company doing exactly? There is also the option to work directly in technology that could help to save the environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Penny picking, green or not, really don't sound like the right solution to me, just don't waste.&lt;/p&gt;&#xA;" OwnerUserId="3063" LastActivityDate="2010-10-25T02:26:41.410" CommentCount="8" />
  <row Id="14366" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T02:31:15.180" Score="39" ViewCount="" Body="&lt;p&gt;These four things were said to me by the same programmer:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&quot;I don't believe in encapsulation.  There's really no point.  All it does is add boilerplate and slows you down.&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;I don't do unit tests.  That just slows me down.&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;Java is too slow.  I need a fast language like C++.&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;I should really comment my code but it takes so long.  It would just slow me down.&quot;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Mr. Speedy's code is a joy to be handed.  Every time a piece winds up in my lap, it just slows me down...&lt;/p&gt;&#xA;" OwnerUserId="838" LastEditorUserId="838" LastEditorDisplayName="" LastEditDate="2010-10-25T02:40:26.203" LastActivityDate="2010-10-25T02:40:26.203" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="8" />
  <row Id="14367" PostTypeId="2" ParentId="14356" CreationDate="2010-10-25T02:31:38.050" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;No&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I run a completely paperless office and I don't find it to be an inconvenience.  I consider myself to be a successful programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use a whiteboard + camera for sketches.  I used to supplement this with a Tablet PC but gave this up after Tablet PCs started coming in either low durability (HP) or low performance (everyone else) models.  Now I just do whiteboard -&gt; photo -&gt; diagram (Visio et al).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I keep my notes in Evernote and always have an EverNote capable phone or laptop or netbook around.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-25T02:31:38.050" CommentCount="1" />
  <row Id="14368" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T02:39:44.410" Score="1" ViewCount="" Body="&lt;p&gt;Anytime I read the following:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//Don't put in negative numbers or it will crash the program.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Or something similar.  If that's the case then put in an assert!  Let the debugger know that during run-time you don't want those values and make sure the code spells out the contract with the caller. &lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-25T02:39:44.410" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="1" />
  <row Id="14369" PostTypeId="2" ParentId="14299" CreationDate="2010-10-25T02:44:40.073" Score="2" ViewCount="" Body="&lt;p&gt;I would think that programmers and &quot;networking/hardware&quot; IT would be very very different on this metric. The responsibilities are very different. Where I work at least the programmers are generally happy (although a bit reclusive and sometimes strange to the extreme [one guy has worn the same &quot;Predator&quot; shirt since I got there every casual Friday]), while the networkers are always under tremendous stress, running around on Saturdays at 5 am doing backups, and generally doing things that would give me an ulcer. Programmers have stress too, but while they may get emails that complain, a computer tech has to sit at the users desk for 20 minutes while they complain right in their face. Ugh.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-25T02:44:40.073" />
  <row Id="14370" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T02:52:19.263" Score="14" ViewCount="" Body="&lt;p&gt;when phpmyadmin asked:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;You are about to DESTROY a complete database! Do you really want to DROP DATABASE xxx?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hit Enter.&lt;/p&gt;&#xA;" OwnerUserId="6261" LastActivityDate="2010-10-25T02:52:19.263" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="4" />
  <row Id="14371" PostTypeId="2" ParentId="14299" CreationDate="2010-10-25T02:54:59.490" Score="15" ViewCount="" Body="&lt;p&gt;I prefer &lt;a href=&quot;http://money.cnn.com/magazines/moneymag/bestjobs/2010/index.html&quot; rel=&quot;nofollow&quot;&gt;this CNNMoney survey&lt;/a&gt;, which lists many programmer-related jobs as among the &quot;Best Jobs In America 2010&quot;, including Software Architect at #1.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, though, the survey you link to (note it's a &lt;em&gt;survey&lt;/em&gt;, not a &lt;em&gt;study&lt;/em&gt;) lumps a whole bunch of professions together in the category &quot;IT and telecom&quot;. Probably a very small portion of those jobs are programming related. Most are probably hardware support or customer support jobs, which may be much less satisfying than computer programming is.&lt;/p&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-10-25T02:54:59.490" CommentCount="1" />
  <row Id="14372" PostTypeId="2" ParentId="2815" CreationDate="2010-10-25T02:56:07.093" Score="10" ViewCount="" Body="&lt;p&gt;Not so much a Problem with C# but with the BCL: Wipe out all non-generic collections.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Goodbye &lt;code&gt;ArrayList&lt;/code&gt;, Hello &lt;code&gt;List&amp;lt;Object&amp;gt;&lt;/code&gt; if you really need a 'non-generic' collection, at least be explicit about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have &lt;code&gt;TableRowCollection&lt;/code&gt; actually return &lt;code&gt;TableRow&lt;/code&gt; instead of &lt;code&gt;Object&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IEnumerable? Was nice knowing you, now go away.&lt;/p&gt;&#xA;" OwnerUserId="6342" LastActivityDate="2010-10-25T02:56:07.093" CommunityOwnedDate="2010-10-25T02:56:07.093" CommentCount="2" />
  <row Id="14373" PostTypeId="2" ParentId="14350" CreationDate="2010-10-25T03:00:48.723" Score="1" ViewCount="" Body="&lt;p&gt;If you want to be reclined on your couch, but use your desktop PC I'd think that a laptop is your only choice, even though you want to save money. By the time you bought another monitor and rigged something up along with a keyboard and mouse with cables etc. it would be a nightmare setup and not save you very much. Get a relatively weak laptop and then RDC / VNC / etc. into your desktop. If you have a large flat screen TV that you could hook the laptop into then you could spring for a wireless keyboard up and use the TV for the display.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-10-25T03:00:48.723" CommentCount="1" />
  <row Id="14374" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T03:02:57.947" Score="45" ViewCount="" Body="&lt;p&gt;Issuing a SQL UPDATE with a 'bad' WHERE Clause that matched everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lesson Learned: Always issue a SELECT first to see what will be changed.&lt;/p&gt;&#xA;" OwnerUserId="6342" LastActivityDate="2010-10-25T03:02:57.947" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="13" />
  <row Id="14375" PostTypeId="2" ParentId="14350" CreationDate="2010-10-25T03:05:37.720" Score="1" ViewCount="" Body="&lt;p&gt;You need to attend to having your regular breaks!  Get up and walk around.   Your code will be better too...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also your office chair may need adjusting.  If your legs hurt, the char may give too much pressure on the underside of the thighs reducing blood flow.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="882" LastEditorDisplayName="" LastEditDate="2010-10-25T05:00:07.957" LastActivityDate="2010-10-25T05:00:07.957" />
  <row Id="14376" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T03:20:00.793" Score="22" ViewCount="" Body="&lt;p&gt;Accidentally deleted the database that stored all our customer info, order history and invoices going back to the start of the company (several years worth). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be fair, my employer has to share some of the blame though. They had the only copy of that database stored on the Mac SE (yes this was a long time ago) that they gave me (a brand new employee, first job out of college) as my workstation and had never even considered making a backup.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, thinking it was a copy of the DB I dragged it to the trash can. Because of the size of the file it deleted it immediately. We eventually got it back after paying an ungodly amount to a data restoration service, but for about 5 days we couldn't fulfill or bill any orders, and had no way to access information about any customer. It pretty much brought the (3 person company) to a standstill.&lt;/p&gt;&#xA;" OwnerUserId="287" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2011-01-13T19:23:47.850" LastActivityDate="2011-01-13T19:23:47.850" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="9" />
  <row Id="14377" PostTypeId="2" ParentId="14350" CreationDate="2010-10-25T03:20:30.023" Score="0" ViewCount="" Body="&lt;p&gt;You could get something like the &lt;a href=&quot;http://www.amazon.com/gp/product/B001LDKO60?ie=UTF8&amp;amp;tag=thecodejedi00-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B001LDKO60&quot; rel=&quot;nofollow&quot;&gt;Gyration Keyboard/Mouse Combo&lt;/a&gt; for input, and at eight feet distance, you may want to look into plugging your video out into a television if you have one that accepts PC inputs at native resolutions. Most recent flat screen/LCD televisions will accept HDMI and/or DVI connections at 1920 x 1080 resolution.&lt;/p&gt;&#xA;" OwnerUserId="146" LastActivityDate="2010-10-25T03:20:30.023" />
  <row Id="14378" PostTypeId="2" ParentId="14299" CreationDate="2010-10-25T03:25:08.643" Score="1" ViewCount="" Body="&lt;p&gt;Simply because the pay is not commensurate with our intelligence and the efforts we put in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about the sales guy ( say, used car salesman), he typically makes a few times more than the pathetic programmer's salary. And his intelligence? Not even half of the programmer's. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can you be happy when you are severely underpaid compared to other profession?&lt;/p&gt;&#xA;" OwnerUserId="468" LastActivityDate="2010-10-25T03:25:08.643" CommentCount="17" />
  <row Id="14379" PostTypeId="2" ParentId="14321" CreationDate="2010-10-25T03:25:41.040" Score="0" ViewCount="" Body="&lt;p&gt;You should learn what it takes to deploy working software. This includes writing code using various languages, toolsets, and technologies, but that's just where it begins.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to develop great communication skills so that you can effectively talk to your customers to gather and interpret requirements. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to be organized to keep up with all of the responsibilities you will have. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to know how to keep your code safe and organized using a version control system. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to know how to automate as many tests as possible so your code can respond to changing requirements reliably. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to remember that the code you write will spend most of its lifetime in support mode (usually supported by someone else), so you need to be able to write code that is easily understood by others. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to respect the intricacies of deployment, but be confident enough in your code to be able to deploy often. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to be able to estimate at least somewhat reliably.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to learn when and how to say &quot;no&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to be willing and able to learn quickly, and on your own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you learn how to do these things (and probably many more I've forgotten), then the particular technologies used become less important. That's the (relatively) easy part.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you learn these things? The answer to that is another entire topic. But my suggestion is: build something. Get some experience under your belt. Find a customer and an idea, and treat it like a real project. Make a schedule, get some requirements, write some code, write some tests, put it in source control, deploy it early and often, have your customer test it, rinse and repeat. If you can find a mentor or an internship that can help you understand what goes on in the &quot;real world&quot;, you'll be that much more prepared. &lt;/p&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-10-25T03:25:41.040" />
  <row Id="14380" PostTypeId="2" ParentId="2815" CreationDate="2010-10-25T03:28:06.520" Score="-2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Case-sensitivity.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd make C# autocorrect case like VB .NET does, so that whether you type in all caps or all lower-case or a mixture, your code comes out in the correct case once you move off the line.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It vexes me greatly when I type the name of a class, but I don't happen to capitalize it, and C# pretends it has no idea what I'm talking about.&lt;/p&gt;&#xA;" OwnerUserId="3963" LastActivityDate="2010-10-25T03:28:06.520" CommunityOwnedDate="2010-10-25T03:28:06.520" CommentCount="5" />
  <row Id="14381" PostTypeId="2" ParentId="39" CreationDate="2010-10-25T03:43:49.920" Score="4" ViewCount="" Body="&lt;p&gt;Make everything as simple as possible, but &lt;em&gt;not simpler&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- Albert Einstein (for me, via Scott Myers). Emphasis added.&lt;/p&gt;&#xA;" OwnerUserId="6180" LastActivityDate="2010-10-25T03:43:49.920" CommunityOwnedDate="2010-10-25T03:43:49.920" CommentCount="1" />
  <row Id="14382" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T04:06:17.287" Score="5" ViewCount="" Body="&lt;p&gt;C++ code with explicit delete statements (unless I'm looking at the innards of a smart pointer implementation).  'delete' is the 'goto' of memory management &lt;a href=&quot;http://stackoverflow.com/questions/959621/c-idiom-to-avoid-memory-leaks/959708#959708&quot;&gt;IMHO&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Closely related to this, code like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// Caller must take ownership&#xA;Thing* Foo::Bar()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(And count yourself lucky if there's the comment!).  It's not like smart pointers are rocket science.  &lt;code&gt;std::auto_ptr&lt;/code&gt; is made for this sort of thing (documenting &lt;em&gt;and&lt;/em&gt; enforcing the intent expressed in the comment) and been part of the &lt;a href=&quot;http://www.aristeia.com/BookErrata/auto_ptr-update.html&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;standard&lt;/a&gt; for ages now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Together these scream unloved legacy code, or maintainers with a mindset stuck somewhere in the early 90s.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-10-25T04:06:17.287" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="7" />
  <row Id="14383" PostTypeId="2" ParentId="14299" CreationDate="2010-10-25T04:08:31.163" Score="4" ViewCount="" Body="&lt;p&gt;Here is my &lt;em&gt;folklore psychology&lt;/em&gt; perspective (worth 2 cents):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a worker believes that she/he is doing &lt;em&gt;creative work&lt;/em&gt;, and the working environment does not try to actively &lt;em&gt;refute&lt;/em&gt; that belief, then the worker will be happer than either (i) a worker who does not have that belief or (ii) a worker who has that belief, but works in an environment where the belief is regularly refuted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;According to my &lt;em&gt;gut feeling&lt;/em&gt;, this effect should be observable &lt;em&gt;after&lt;/em&gt; all other factors (including income effects) have been accounted for. &lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-25T04:08:31.163" CommentCount="2" />
  <row Id="14384" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T04:08:58.407" Score="31" ViewCount="" Body="&lt;p&gt;What sets off the bells for me is whenever I hear a programmer - a professional, not a student - asking a question that demonstrates that they really dont have a basic knowledge of computers or their profession.  For example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a web developer asking a question that clearly indicates they dont understand the difference between what runs on the server side and what runs on the client.  &lt;/li&gt;&#xA;&lt;li&gt;a programmer who does not understand that files names are not magical, and that a file's contents can be anything despite the name.  &lt;/li&gt;&#xA;&lt;li&gt;or my favorite, when I hear questions such as &quot;&lt;em&gt;Can [programming language] be used to create [some routine application]&lt;/em&gt;&quot;.  Yes, &lt;em&gt;thats kinda the point of a programming language&lt;/em&gt;.  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I dealt with one guy not too long ago, and I kid you not, when I told him to just merge a couple of text files into a single file, he didnt know how to do such a thing.  BIG RED FLAG right there.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I dont get particularly perturbed at 'religious' statements.  If you want to use methodology X, or dont want to use Y, go nuts, you're an adult, I dont care what you do.  But when I see programmers who obviously dont understand the very basics, it drives me nuts.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-25T04:08:58.407" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="4" />
  <row Id="14385" PostTypeId="2" ParentId="11012" CreationDate="2010-10-25T04:09:56.357" Score="2" ViewCount="" Body="&lt;p&gt;I am taking a Java class that uses BlueJ right now. An assignment due tomorrow is to use JUnit, which come preinstalled into BlueJ, to utilize TTD methods to build a program. Every class I have taken so far encourages (if not requires) pair programming and Agile methodology, so I would say that schools actually do teach this, at least in some cases.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-25T04:09:56.357" CommentCount="1" />
  <row Id="14386" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T04:14:27.497" Score="3" ViewCount="" Body="&lt;p&gt;Here are a few fun ones I've heard...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;QA is reporting too many bugs against&#xA;  us, so we don't have time to fix the&#xA;  compiler warnings.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;At a company where the technical management wasn't really paying attention:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I know the way I've set up the company's source&#xA;  control system only really works well for me, and works like crap for everybody else, but you'll just have&#xA;  to live with that.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;A development lead for a Linux-based product that was dead in the water without snazzy graphics, WebKit, a PDF engine, and highly sophisticated Javascript, all of which lives outside the kernel:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;That's all user-space code, so it's&#xA;  all the same, and why should we care about it anyway?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-10-25T04:14:27.497" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="2" />
  <row Id="14387" PostTypeId="2" ParentId="8055" CreationDate="2010-10-25T04:17:41.150" Score="6" ViewCount="" Body="&lt;p&gt;If you are a student you should check out &lt;a href=&quot;https://www.dreamspark.com/default.aspx&quot; rel=&quot;nofollow&quot;&gt;dreamspark&lt;/a&gt;. It allows students to get basically any professional level tool for free. Last I checked there was VS 2010, Windows Server 2008 R2, SQL Server 2008 Developer, Expression Studio Ultimate, and a bunch of others.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-25T04:17:41.150" />
  <row Id="14388" PostTypeId="2" ParentId="1474" CreationDate="2010-10-25T04:17:43.153" Score="2" ViewCount="" Body="&lt;p&gt;I'm pretty sure these were both in &lt;em&gt;Peopleware&lt;/em&gt;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One slightly irrelevant thing I can recall is the story about a bunch of developers in a classic open-plan office (not even cubes, just a grid of desks) taking wire-cutters to the PA speakers in the ceiling, and stuffing tissue paper into the ancient Bell phones (you know, the ones that weighed about five pounds with an actual dial and an alarm-clock-style clapper inside) so that they weren't so distracting when someone called you.  Of course, even this story isn't irrelevant once you view it as a developer team doing what they could to establish a decent work environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also irrelevant today is their defense of actual offices with actual doors and sometimes even actual windows.  Of course, it's only irrelevant not because they were wrong but because that battle has been well and truly lost for over two decades now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An excellent book, as you say, and one I should reread.&lt;/p&gt;&#xA;" OwnerUserId="6273" LastActivityDate="2010-10-25T04:17:43.153" CommentCount="3" />
  <row Id="14389" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T04:17:44.090" Score="17" ViewCount="" Body="&lt;p&gt;The one I notice immediately is the frequency of &lt;strong&gt;deeply nested code blocks&lt;/strong&gt; (if's, while's, etc).  If code is &lt;em&gt;frequently&lt;/em&gt; going more than two or three levels deep, thats a sign of a design/logic problem.  And if it goes like 8 nests deep, there better be a darn good reason for it not to be broken up.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-25T04:17:44.090" CommunityOwnedDate="2010-10-25T14:40:27.240" />
  <row Id="14390" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T04:27:18.510" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&quot;I'm sure I can fix the bug, I just need to try a few more combinations of...&quot;&lt;/strong&gt; sets my alarm bells ringing as an indicator of a programmer who's approach to fixing an identified bug is simply to guess, and to shuffle parameters or constants (or even code) randomly in the hope of stumbling on a fix.  This is particularly dangerous when some superficial improvements may initially be obtained, and the developer presses on assuming that with enough time to continue prodding at the system the fix may be arrived at by chance or intuition.  Needless to say, this is absolutely no substitute for a deep understanding of the code and the problem domain, and a more structured analysis of what's going on.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-10-25T04:27:18.510" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="4" />
  <row Id="14391" PostTypeId="2" ParentId="14271" CreationDate="2010-10-25T04:35:19.470" Score="3" ViewCount="" Body="&lt;p&gt;I think that rather sooner that later you are going to need an organization to back your product, because an important part of a software's value comes from the ability to support your users and evolve the software from your user's requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At some point you are not going to have enough time do this all by yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can outsource most of the administrative tasks but upgrading your software and supporting your users (the core of your business) are key to success, so you are going to need a team (could be just two or three people).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Building a team usually takes some time, so my suggestion is to start finding people that work with you in the technical aspects of your product, so eventually you can let them handle those and you start MANAGING the team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It looks like you are the technical kind of guy, so you need to a) start developing you management skills or b) get someone you know and trust, that has those skills, to become your business partner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developing a product by yourself is a completely different game from having a team work together towards that goal, management is key for the latter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Running a business is a team work beacause it's impossible (IMHO) that one single person can efficiently handle all aspects, specially those regarding strategy, marketing, product development and user support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So IMHO: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Develop a team for working out strategy, marketing, product development and user support, and&lt;/li&gt;&#xA;&lt;li&gt;Outsource everything else&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5332" LastActivityDate="2010-10-25T04:35:19.470" CommentCount="1" />
  <row Id="14392" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T04:41:33.120" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Statically linking obviously GPL'd source code into a commercial, closed-source program.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whoever did it, didn't care at all about intellectual property law, or getting their employer sued. And since most useful libraries are LGPL'd, so it's okay to link to them if you build them into a shared object (DLL), whoever did it was probably either too ignorant or too lazy to do that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, people who do that that invariably write crappy, buggy code as well.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-10-25T04:41:33.120" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="2" />
  <row Id="14393" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T04:42:12.810" Score="10" ViewCount="" Body="&lt;p&gt;The user ir wrong!!, he/she doesn't have a clue, so I'll do what I KNOW is right.&#xA;(disregarding user's needs)&lt;/p&gt;&#xA;" OwnerUserId="5332" LastEditorUserId="5332" LastEditorDisplayName="" LastEditDate="2010-10-29T14:20:11.477" LastActivityDate="2010-10-29T14:20:11.477" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="4" />
  <row Id="14394" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T04:50:25.213" Score="6" ViewCount="" Body="&lt;p&gt;Allowed my manager to brow beat me into leaving a job I loved. I should have let him mess things up, get fired and then I should have stepped up and clean up the pieces.&#xA;Instead I quit and have regretted it ever since.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-10-25T07:43:48.993" LastActivityDate="2010-10-25T07:43:48.993" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="2" />
  <row Id="14395" PostTypeId="2" ParentId="14052" CreationDate="2010-10-25T05:05:22.387" Score="3" ViewCount="" Body="&lt;p&gt;I have a list of 4 &lt;a href=&quot;http://www.randsinrepose.com/archives/2005/03/20/free_electron.html&quot; rel=&quot;nofollow&quot;&gt;Free Electrons&lt;/a&gt; on a small piece of paper locked in a draw in my desk.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-10-25T05:05:22.387" CommentCount="1" />
  <row Id="14396" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T05:35:03.423" Score="0" ViewCount="" Body="&lt;p&gt;Sometime before when coding the JS, I was not able to distinguish between &quot;1&quot; (one) and &quot;l&quot;  &quot;small L&quot;. Even when I was typing this answer both looks almost same in editor! &lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-10-25T05:35:03.423" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="1" />
  <row Id="14397" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T05:36:03.847" Score="12" ViewCount="" Body="&lt;p&gt;Not sure it was my &quot;biggest mistake&quot;, but definitely a memorable one. In my first week or two at a new job, I was assigned to do a small &quot;feature enhancement&quot; that involved modifying the sort order of some items on one of the most popular pages on the site. I wasn't too familiar with the code base, but quickly found the relevant Comparator and added calls to a couple harmless-looking methods inside the compareTo method without thinking too much about it. The code tested locally and in QA w/o issues and went live. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had a 1 on 1 with my boss that same day and with a big smile on his face, he congratulated me on getting my first &quot;feature&quot; live so soon after joining. We both looked on as he visited the corresponding page to see the feature in action. The page took 47 seconds to load. My heart sank. He refreshed the page: 53 seconds. His smile vanished. I went back to my desk and spent a long evening debugging and pushing critical patches to the live site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It turns out one of the harmless looking methods I added was a remote service call that resulted in at least one DB hit. In each compareTo call. So on a page where 2,000+ items were being sorted, I was making ~6000 (nlogn) DB hits. Ouch.&lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-10-25T05:36:03.847" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="3" />
  <row Id="14398" PostTypeId="2" ParentId="14321" CreationDate="2010-10-25T06:09:12.463" Score="4" ViewCount="" Body="&lt;p&gt;Learn to enjoy learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do read &lt;a href=&quot;http://writing.bryanwoods4e.com/1-poor-poor-child&quot; rel=&quot;nofollow&quot;&gt;POOR, POOR CHILD. YOU HAVE NO IDEA. THE LETTER I WISH I COULD WRITE TO MY FORMER SELF, AND HAVE BEAMED AT LIGHT-SPEED THROUGH SOME KIND OF VACUUM TUBE AND DELIVERED AT THE PRECISE MOMENT WHEN I FINALLY DECIDED TO LEARN TO PROGRAM.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Jobs will follow.&lt;/p&gt;&#xA;" OwnerUserId="1345" LastActivityDate="2010-10-25T06:09:12.463" CommentCount="2" />
  <row Id="14399" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T06:13:02.287" Score="1" ViewCount="" Body="&lt;p&gt;I told my Director that just because he is OLD and has more years of experience than I have does not mean that I will respect him. The only thing that I would respect is ABILITY. I didn't have to face the consequences of such a pathetic statement may be because I was a junior Programmer than. Looking back this seems to be my bisggest mistake. Where was my common sense\humility ?? :-(&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-25T06:13:02.287" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="3" />
  <row Id="14400" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T06:17:28.057" Score="1" ViewCount="" Body="&lt;p&gt;Senior programmer who asks how to make a text file with a &quot;non keyboard&quot; character. Basically not understanding ASCII encoding or how to write a file in binary mode.&lt;/p&gt;&#xA;" OwnerUserId="3122" LastEditorUserId="3122" LastEditorDisplayName="" LastEditDate="2010-10-27T01:09:09.943" LastActivityDate="2010-10-27T01:09:09.943" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="2" />
  <row Id="14401" PostTypeId="1" CreationDate="2010-10-25T06:33:08.160" Score="5" ViewCount="211" Body="&lt;p&gt;I work for a company that owns several closed source software. One of our software is used to service clients and generate income so it has commercial value to us (and it pays my salary). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've talked about open sourcing the code, but the option of open sourcing under something like the MIT or GPL or any other open source license that allows competitors to install it and offer it to our clients for cheaper has met clear resistance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What about showing the code but not under an open source license? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The arguments I've been getting against this is that this move will confuse clients and developers and will get us more bad publicity than any good thing. The developer of PAINT.NET used to release his code and got a lot of flack when he started reminding competitors that the code is only for educational purposes and isn't really open source. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also been told that open sourcing for the sake of open sourcing doesn't make sense, bla bla bla, and that unless I have a plan for how that's going to bring more revenue, it's not for us. Well, honestly I don't have a plan, but I thought why not try. Of course I can't say if this will help us or hurt us. I don't want to take the responsibility for a move that might hurt a company that's doing well and get people laid off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I said, an open source license does not look like an option, so it's between closed source or showing the code but still under a normal copyright license. But as I said there's resistance to showing the code because of the worry that competitors will use our code to create their own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone know of any facts that can help with this decision, whether in favor or against showing the code.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-25T13:19:33.437" Title="Is it a bad decision to release code that is not open source" Tags="&lt;project-management&gt;&lt;open-source&gt;" AnswerCount="4" CommentCount="6" FavoriteCount="1" />
  <row Id="14402" PostTypeId="2" ParentId="14401" CreationDate="2010-10-25T06:54:46.290" Score="5" ViewCount="" Body="&lt;p&gt;The primary question here isn’t: what do &lt;em&gt;you&lt;/em&gt; get from showing the source – it’s what do &lt;em&gt;others&lt;/em&gt; get from being shown the source. If you can’t answer this question, then nobody will bother looking at it, and that in turn will mean you and your company don’t benefit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, if the source isn’t Open Source then the usefulness of the code to others is drastically reduced. I can imagine only two scenarios which make it worthwhile publishing the code:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It’s a showcase of good architecture and design. In that case, you can annotate it and publish it as an educational aid.&lt;/li&gt;&#xA;&lt;li&gt;It uses a hitherto unknown pattern or algorithm that you might want to publish, and your project serves as a demonstration.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2366" LastActivityDate="2010-10-25T06:54:46.290" />
  <row Id="14403" PostTypeId="2" ParentId="13249" CreationDate="2010-10-25T07:10:24.180" Score="1" ViewCount="" Body="&lt;p&gt;I think, found what I'm looking for...&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;&lt;a href=&quot;http://www.pivotaltracker.com/&quot; rel=&quot;nofollow&quot;&gt;Pivotal Tracker&lt;/a&gt;&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;At first glance, it has all the features I'm looking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Project dashboard is stunningly beautiful and simple.&lt;/p&gt;&#xA;" OwnerUserId="493" LastActivityDate="2010-10-25T07:10:24.180" CommentCount="1" />
  <row Id="14404" PostTypeId="2" ParentId="3233" CreationDate="2010-10-25T07:12:09.863" Score="3" ViewCount="" Body="&lt;p&gt;If you're writing a platform instead of a product, making it open source assures that people can build on it with confidence. So that's one reason.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-10-25T07:12:09.863" CommunityOwnedDate="2010-10-25T07:12:09.863" />
  <row Id="14405" PostTypeId="2" ParentId="14401" CreationDate="2010-10-25T07:18:25.967" Score="1" ViewCount="" Body="&lt;p&gt;Its up to the employer's will whether to open-source their code. Even thought you have written that code its not your code. Its your employer's. You need abide by their terms and have good ethics. If open-sourcing the code reduces the revenue then don't open-source it. I'm not against open-source movement.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-10-25T07:18:25.967" />
  <row Id="14406" PostTypeId="2" ParentId="3233" CreationDate="2010-10-25T07:29:28.917" Score="1" ViewCount="" Body="&lt;p&gt;If you produce closed source, paid software, it's likely that you had to pay for libraries and other gimmicks to develop your product. What you earn must be subtracted of the amount of money you spent in developing that product, not only the time. This leaves a very small net income. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you use open source free products, you didn't spend any money to use them, but you are also obligated (by some licenses) to reuse the same license for your software. You paid &quot;in code&quot;, rather than &quot;in money&quot;. It's a different economy, but it gives products anyway.&lt;/p&gt;&#xA;" OwnerUserId="1338" LastActivityDate="2010-10-25T07:29:28.917" CommunityOwnedDate="2010-10-25T07:29:28.917" />
  <row Id="14407" PostTypeId="2" ParentId="2271" CreationDate="2010-10-25T07:44:29.867" Score="0" ViewCount="" Body="&lt;p&gt;Back in the 1990s I heard it expanded as Just Another Vague Acronym.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-10-25T07:44:29.867" />
  <row Id="14408" PostTypeId="2" ParentId="2271" CreationDate="2010-10-25T07:55:46.737" Score="5" ViewCount="" Body="&lt;p&gt;Because JAVA is the COBOL for the new generation.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-25T07:55:46.737" CommentCount="3" />
  <row Id="14409" PostTypeId="1" CreationDate="2010-10-25T07:57:45.120" Score="0" ViewCount="182" Body="&lt;p&gt;Can someone help me select a good professional course to take in order to earn a professional certificate? i am a university graduate doing my national service and i want to take a professional course in programming. Please help me with some suggestions&lt;/p&gt;&#xA;" LastActivityDate="2010-11-03T02:03:56.563" Title="what professional certificate can help?" Tags="&lt;learning&gt;&lt;career&gt;&lt;computer-science&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="1" />
  <row Id="14410" PostTypeId="1" AcceptedAnswerId="15036" CreationDate="2010-10-25T08:04:46.267" Score="0" ViewCount="202" Body="&lt;p&gt;Eric Lippert has recently started a &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2010/10/21/continuation-passing-style-revisited-part-one.aspx&quot; rel=&quot;nofollow&quot;&gt;blog&lt;/a&gt; &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2010/10/22/continuation-passing-style-revisited-part-two-handwaving-about-control-flow.aspx&quot; rel=&quot;nofollow&quot;&gt;series&lt;/a&gt; on Continuation Passing Style (CPS), kind-of implying that something new and shiny may be round the corner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I thought it could be fun (and instructive) to come up with ideas for exactly what this new syntax might be - new keywords? operators? types?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The green tick will go to the person who gets closest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Bets off, all has been &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2010/10/28/asynchrony-in-c-5-part-one.aspx&quot; rel=&quot;nofollow&quot;&gt;revealed&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="4285" LastEditorUserId="4285" LastEditorDisplayName="" LastEditDate="2010-10-28T19:55:50.577" LastActivityDate="2010-10-28T19:55:50.577" ClosedDate="2010-12-20T15:22:41.153" Title="Speculation on &quot;hypothetical upcoming C#5&quot; CPS feature" Tags="&lt;c#&gt;&lt;blogs&gt;&lt;future&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="14411" PostTypeId="1" AcceptedAnswerId="14424" CreationDate="2010-10-25T08:09:01.577" Score="6" ViewCount="245" Body="&lt;p&gt;Hi there.&#xA;I am still having a issue getting over a small issue when it comes to TDD.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I need a method that will get a certain record set of filtered data from the data layer (linq2SQL).  Please note that i am using the linq generated classes from that are generated from the DBML.&#xA;Now the problem is that i want to write a test for this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;do i:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;a) first insert the records in the test and then execute the method and test the results&lt;/p&gt;&#xA;&#xA;&lt;p&gt;b) use data that might be in the database.  Not to keen on this logic cause it could cause things to break.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;c) what ever you suggest?&lt;/p&gt;&#xA;" OwnerUserId="6036" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-10-25T14:08:02.637" LastActivityDate="2010-10-25T14:08:02.637" Title="How would I unit test database logic?" Tags="&lt;best-practices&gt;&lt;c#&gt;&lt;unit-testing&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="14412" PostTypeId="2" ParentId="14401" CreationDate="2010-10-25T08:25:08.950" Score="2" ViewCount="" Body="&lt;p&gt;I have certainly seen some companies (with some classes of software) provide the source code to any paying customer, either for an extra licensing fee or as part and parcel of a normal installation. This, however, tends to be niche markets, with few established vendors and clients with demands that can more easily be met by letting them look at the source.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, that would depend on what you're looking at making happen by allowing people to look at your source code. Unless you have a plan that's a bit more fleshed out than &quot;let's try it and see what happens&quot;, I would probably have to argue against it.&lt;/p&gt;&#xA;" OwnerUserId="5084" LastActivityDate="2010-10-25T08:25:08.950" />
  <row Id="14413" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T08:30:53.973" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Code smell: not following best practices&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;This sort of thing always worries me as there's that truism that everyone thinks they're an above average driver.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Here's a news flash for ya: 50% of the world's population is below average intelligence. Ok, so some people would have exactly average intelligence, but let's not get picky. Also, one of the side affects of stupidity is you can't recognize your own stupidity! Things don't look so good if you combine these statements.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Which things instantly ring alarm bells when looking at code?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Many good things have been mentioned, and in general it seems that &lt;em&gt;not following best practices&lt;/em&gt; is a code smell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best practices are usually not invented randomly, and are often there for a reason. Many times it can be subjective, but in my experience they are mostly justified. Following best practices should not be a problem, and if you're wondering why they are as they are, research it rather than ignoring and/or complaining about it - maybe it's justified, maybe it's not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One example of a best practice might be using curlies with every if-block, even if it only contains one line:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (something) {&#xA;    // whatever&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You might not think it's necessary, but I recently &lt;a href=&quot;http://programmers.stackexchange.com/questions/9062/what-superstitions-do-programmers-have/9106#9106&quot;&gt;read&lt;/a&gt; that it is a major source of bugs. Always using brackets have also been discussed on &lt;a href=&quot;http://stackoverflow.com/questions/2125066/is-it-bad-practice-to-use-an-if-statement-without-brackets&quot;&gt;Stack Overflow&lt;/a&gt;, and checking that if-statements have brackets is also a &lt;a href=&quot;http://pmd.sourceforge.net/rules/braces.html&quot; rel=&quot;nofollow&quot;&gt;rule&lt;/a&gt; in &lt;a href=&quot;http://pmd.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;PMD&lt;/a&gt;, a static code analyzer for Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember: &quot;Because it's best practice&quot; is never an acceptable answer to the question &quot;why are you doing this?&quot; If you can't articulate why something is a best practice, then it's not a best practice, it's a superstition.&lt;/p&gt;&#xA;" OwnerUserId="1020" LastEditorUserId="1020" LastEditorDisplayName="" LastEditDate="2010-12-20T09:38:03.907" LastActivityDate="2010-12-20T09:38:03.907" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="5" />
  <row Id="14414" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T08:33:09.437" Score="33" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;{ Let it Leak, people have good enough computers to cope these days }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Whats worse is that's from a commercial library!&lt;/p&gt;&#xA;" OwnerUserId="6296" LastActivityDate="2010-10-25T08:33:09.437" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="7" />
  <row Id="14415" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T08:34:28.383" Score="17" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;I'm not sure why it has to be this way, but it won't work unless it's like this.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;While this can sometimes be a problem due to a problematic code base, this usually gets my alarm bells ringing, as it shows a lack of interest in finding out how the code really works and why it does what it does.&lt;/p&gt;&#xA;" OwnerUserId="1020" LastEditorUserId="1020" LastEditorDisplayName="" LastEditDate="2010-10-25T11:55:19.207" LastActivityDate="2010-10-25T11:55:19.207" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="6" />
  <row Id="14416" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T08:40:12.793" Score="2" ViewCount="" Body="&lt;p&gt;Using &lt;code&gt;==&lt;/code&gt; instead of &lt;code&gt;equals&lt;/code&gt; for string comparison in Java&lt;/p&gt;&#xA;" OwnerUserId="488" LastEditorUserId="488" LastEditorDisplayName="" LastEditDate="2010-10-26T04:45:44.330" LastActivityDate="2010-10-26T04:45:44.330" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="5" />
  <row Id="14417" PostTypeId="2" ParentId="2271" CreationDate="2010-10-25T08:43:26.397" Score="0" ViewCount="" Body="&lt;p&gt;Because JAVA is(was?, now they have been bought by oracle) the stockticker for the Sun Corporation.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-10-25T08:43:26.397" />
  <row Id="14418" PostTypeId="2" ParentId="2271" CreationDate="2010-10-25T09:25:08.640" Score="0" ViewCount="" Body="&lt;p&gt;IT'S WAY COOLER&lt;/p&gt;&#xA;" OwnerUserId="5768" LastActivityDate="2010-10-25T09:25:08.640" />
  <row Id="14419" PostTypeId="1" CreationDate="2010-10-25T09:26:13.400" Score="4" ViewCount="164" Body="&lt;p&gt;Probably many of you receive hundreds/thousands of e-mail every week. This happens especially when you are part of wide distribution lists.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you find the relevant ones? Do you use any &lt;em&gt;smart&lt;/em&gt; plugins (for Outlook)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Until now I tried:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Sorting them in folders but it failed because then I got into folder overload&lt;/li&gt;&#xA;&lt;li&gt;Making rules. Fails especially when doing text matching because is not taking into account the context.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-10-25T13:51:22.273" Title="How do you deal with e-mail overload?" Tags="&lt;productivity&gt;&lt;tips&gt;" AnswerCount="6" CommentCount="5" FavoriteCount="0" />
  <row Id="14420" PostTypeId="2" ParentId="14409" CreationDate="2010-10-25T09:29:16.767" Score="1" ViewCount="" Body="&lt;p&gt;I had exactly the same issue when I was doing my military service as well. I also went once to a seminar. My opinion: towards where you want to go&#xA;  and only entry level. Example for networks, a CCNA, java? First developer certifcate from Oracle. Microsoft's .net? &quot;.net fundamentals&quot; (or something like that) or the entry level for your domain of choice (mine was web development). Why? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will learn in the entry level many &quot;platform agnostic&quot; concepts, so it would be easy to start working in an another environment.&#xA;  Going Deeper will cost you money and change your expectations (you will want to work there because you invested so much time and money).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a speaker told once: &quot;Why learn cisco telephony, while you might be doing QoS?, Demonstrate your intention with a basic CCNA and then if&#xA;  your company wants something more specific, let them send you there&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you are more interested in programming than in other aspects of IT, I would suggest an entry level certification on the most popular programming environment in your country or in the domain you want to work on after your national service. In order to find that, start reading job postings from now on.&lt;/p&gt;&#xA;" OwnerUserId="6059" LastEditorUserId="6059" LastEditorDisplayName="" LastEditDate="2010-10-25T15:26:02.520" LastActivityDate="2010-10-25T15:26:02.520" CommentCount="5" />
  <row Id="14421" PostTypeId="2" ParentId="14409" CreationDate="2010-10-25T09:37:30.373" Score="0" ViewCount="" Body="&lt;p&gt;If you are interested in serious programming, you should go for SCJP.&lt;/p&gt;&#xA;" OwnerUserId="6365" LastActivityDate="2010-10-25T09:37:30.373" CommentCount="2" />
  <row Id="14422" PostTypeId="1" AcceptedAnswerId="14439" CreationDate="2010-10-25T09:43:49.827" Score="4" ViewCount="369" Body="&lt;p&gt;The other day someone asked me what type of work I do. I answered that I help to build web sites (Asp.net, c#, mostly). So he said &quot;so then you must do a lot of Web 2.0 stuff, right?&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I proceeded to respond by trying to define Web 2.0 as a change in the way that websites were designed 5+ years ago, incorporating more client-side scripting, ajax and standards-based approach to building web sites. I then said that almost anyone doing web design/development today who has stayed up to date with new standards and techniques over the past few years, should be using &quot;Web 2.0-like&quot; techniques, and it is not a really accurate statement to describe a website today as being &quot;Web 2.0&quot;. (Person with whom I was talking was a programmer, but in a totally different domain - C++/VOIP stuff).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you answer (well-intentioned) people who try to talk to you about programming using the catch-phrases of yesteryear? (&quot;Web 2.0&quot; could apply for web development, I am sure that there are similar terms in other areas as well.) Just nod and say yes? Try to explain yourself?&lt;/p&gt;&#xA;" OwnerUserId="4403" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-10-25T09:59:43.823" LastActivityDate="2010-11-28T22:34:33.507" Title="You make websites? So then you must have heard about Web 2.0, right?" Tags="&lt;technology&gt;&lt;buzzwords&gt;&lt;web-2.0&gt;&lt;catch-phrases&gt;&lt;labels&gt;" AnswerCount="7" CommentCount="4" FavoriteCount="1" />
  <row Id="14423" PostTypeId="2" ParentId="14419" CreationDate="2010-10-25T09:47:23.333" Score="1" ViewCount="" Body="&lt;p&gt;I use the first two items that you use - don't abandon them. Rules will help most for items where the context truly does not matter. You can also have rules that flag items which may be of interest, but do not require you to respond right away (ie: most distribution list emails) - at the least they will be moved out of your inbox.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something else to try: conversation view, along with flags. Have list items moved by default into appropriate folders. When there is a conversation that you want to follow, flag it, and then track it through the conversation view in Outlook.&lt;/p&gt;&#xA;" OwnerUserId="4403" LastActivityDate="2010-10-25T09:47:23.333" />
  <row Id="14424" PostTypeId="2" ParentId="14411" CreationDate="2010-10-25T09:52:01.303" Score="2" ViewCount="" Body="&lt;p&gt;Variation on (a). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have a test db or subsection of the db that can be used for testing. When you are setting up &#xA;your tests, have a routine that initializes the DB as you need it to begin testing (this can be done before each test, as appropriate). This may include deleting data, inserting data, etc. Then run your tests. In the Teardown phase, clean up after yourself. Can be repeated as much as is needed, without risk of disrupting live system (not a good idea to test using data in the database that is needed for anything else).&lt;/p&gt;&#xA;" OwnerUserId="4403" LastActivityDate="2010-10-25T09:52:01.303" CommentCount="2" />
  <row Id="14425" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T09:58:11.360" Score="6" ViewCount="" Body="&lt;p&gt;Using lots of text-blocks rather than enums or globally defined variables.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (itemType == &quot;Student&quot;) { ... } // Not Good&#xA;&#xA;-------------------&#xA;&#xA;private enum itemTypeEnum {&#xA;  Student,&#xA;  Teacher&#xA;}&#xA;if (itemType == itemTypeEnum.Student.ToString()) { ... } // better&#xA;&#xA;-------------------&#xA;&#xA;private itemTypeEnum itemType;&#xA;...&#xA;if (itemType == itemTypeEnum.Student) { ... } // best&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4403" LastActivityDate="2010-10-25T09:58:11.360" CommunityOwnedDate="2010-10-25T14:40:27.240" />
  <row Id="14426" PostTypeId="2" ParentId="14419" CreationDate="2010-10-25T09:58:24.187" Score="1" ViewCount="" Body="&lt;p&gt;Of course we always receive unimportant emails from many people, and only a few are really needed to be checked. We just have to filter creating a folder and rules.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal trick is:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Let those really &lt;strong&gt;important&lt;/strong&gt; on &lt;strong&gt;Inbox&lt;/strong&gt;, when they are getting old (about months), I move them to a folder when it is related to a project. In case its unneeded, I move them to Trash. If it is something to remember the next day, I put a flag on the email.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;For not so important emails, I create a rule and extra folders for each topic, them my email client software move all them automatically to these other folders, so I can check them when I get some time.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Those unwanted marketing I mark them as junk.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-25T09:58:24.187" />
  <row Id="14427" PostTypeId="2" ParentId="2271" CreationDate="2010-10-25T10:02:26.067" Score="1" ViewCount="" Body="&lt;p&gt;Because they subconsciously believe the Java is greater. ;-)&lt;/p&gt;&#xA;" OwnerUserId="5280" LastActivityDate="2010-10-25T10:02:26.067" />
  <row Id="14428" PostTypeId="2" ParentId="14422" CreationDate="2010-10-25T10:03:19.470" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Web_2.0&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Web_2.0&lt;/a&gt;&#xA;&lt;br&gt;Wikipedia has a good article on Web 2.0. Mainly its the upcoming of AJAX, more client side scripting, more of dynamic pages, weblogs (blogs), socializing websites, micro-websites, etc.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-10-25T10:03:19.470" CommentCount="3" />
  <row Id="14429" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T10:23:36.857" Score="3" ViewCount="" Body="&lt;p&gt;Seven years ago my boss &amp;amp; company owner, whom I'd not yet met I was so new to the job, was in another state doing a demo of our research web site to a couple of potential clients. Memberships fees ran in the low to mid five figures, so these demos were a big deal to our fledgling company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the middle of his demo, as I was doing some database work, I made a change to the live database and updated every survey question in every survey to the same text, something like &quot;This is a test question&quot; because of a flaw in the WHERE. My co-worker and I scrambled for the backup and cringed, hoping he wasn't demoing that section of the site right then but waiting for the email in all caps that gratefully never appeared.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The good side was the boss finally sprung for a development box.&lt;/p&gt;&#xA;" OwnerUserId="988" LastActivityDate="2010-10-25T10:23:36.857" CommunityOwnedDate="2011-01-13T19:43:02.007" />
  <row Id="14430" PostTypeId="2" ParentId="2271" CreationDate="2010-10-25T10:27:02.530" Score="5" ViewCount="" Body="&lt;p&gt;The reason people write JAVA instead if Java is &lt;strong&gt;ignorance&lt;/strong&gt; - but a special kind of ignornance that is both understandable and quite interesting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is the way aour minds work. People don't really remember thousands of individual facts, but instead learn general rules and then learn exceptions to these rules. In the case of JAVA, people are just overgeneralising the rule &quot;computer languages are written in caps&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where does the rule come from?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) A lot of the older programming languages are written in caps: COBOL, COMAL, BASIC, C, FORTRAN, ALGOL, ADA, etc. One reason for this is that, back in the day, most computers didn't implement lower case, so if you wanted to display a language's own name then it had to be an upper case name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Many common computer languages are acronyms: XML, HTML, BASIC, SQL etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Some modern languages may be written in caps for sylistic or historical reasons: C#, LOLCODE (not common, but the only example I can think of).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW: I recommend &quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/The_Language_Instinct&quot; rel=&quot;nofollow&quot;&gt;The Language Instinct&lt;/a&gt;&quot; by Steven Pinker for mor information on the way people develop and use language.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-10-25T10:27:02.530" />
  <row Id="14431" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T10:39:36.653" Score="3" ViewCount="" Body="&lt;p&gt;I was running Xenu's link sleuth on our intranet to try and clear up some of the many broken links that have built up over the years (most, unsurprisingly enough were links from the wiki to the shared network drive).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After about 30 minutes I started noticing some of the new items had some odd pictures, it looked like people had used some of the grainy old stock photos that were on the system but I ignored that thinking that maybe there just wasn't anything newer that had what they wanted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another 10 minutes later I noticed the featured items were changing randomly for some reason. At this point it dawned on me what was happening. The intranet uses windows authentication and some of the functions (such as selecting news images and featured items) were coded to response to HTTP GET requests. The link checker had been using my authentication and had crawled to pages on the admin side, loyally doing its job and following everylink it found including ones like &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;/admin/displayItems/icon_update.asp?image=eastereggs.jpg&amp;amp;itemID=3174&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="6366" LastActivityDate="2010-10-25T10:39:36.653" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="3" />
  <row Id="14432" PostTypeId="2" ParentId="14419" CreationDate="2010-10-25T11:00:45.027" Score="7" ViewCount="" Body="&lt;p&gt;I too used to have a load of folders and a bunch of email rules until I had too many rules and too many folders to manage and began to overlook important emails. I now use a triage system to manage my emails. It has four levels: urgent and important, important but not urgent, urgent but not important and not important or urgent. I try to work through them in that order. I spend about 10 minutes each day organising my inbox to separate out the important and urgent emails to make sure they get actioned as a priority. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any CC or BCC email usually goes straight into the &quot;not important or urgent&quot; folder.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a whole methodology dedicated to this called GTD (Getting Things Done) which is worth a read if you are being deluged by email.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recommend listening this &lt;a href=&quot;http://www.hanselminutes.com/default.aspx?showID=253&quot; rel=&quot;nofollow&quot;&gt;pod cast about GTD&lt;/a&gt; from Scott Hanselman for a &quot;pros and cons&quot; style introduction to GTD.&lt;/p&gt;&#xA;" OwnerUserId="5510" LastActivityDate="2010-10-25T11:00:45.027" CommentCount="3" />
  <row Id="14433" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T11:04:54.917" Score="2" ViewCount="" Body="&lt;p&gt;So far my only stomach-twisting, heart-rate-increasing, suddenly-get-hot-and-itchy mistake was running an UPDATE query without a WHERE clause. Luckily there was a backup from the last 15 minutes and the data didn't change very often which meant I was able to fully restore the data within 10 minutes without anybody knowing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nothing too bad but I've had some close calls. They are and remain close calls because I've heard enough horror stories in this industry that everything I do that could screw things up gets a good going over.&lt;/p&gt;&#xA;" OwnerUserId="6370" LastActivityDate="2010-10-25T11:04:54.917" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="6" />
  <row Id="14434" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T11:14:59.773" Score="1" ViewCount="" Body="&lt;p&gt;Due to time pressure we did not write any tests.&lt;/p&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-10-25T11:14:59.773" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="2" />
  <row Id="14435" PostTypeId="1" CreationDate="2010-10-25T11:23:36.780" Score="2" ViewCount="145" Body="&lt;p&gt;I have a subversion server setup that I need to look after several projects, grouped by language, then client (company) and then by project&lt;/p&gt;&#xA;&#xA;&lt;p&gt;e.g.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;repos/&#xA;&#xA;flex3&#xA;     \com1&#xA;          \project1&#xA;          \project2&#xA;     \com2&#xA;          \project1&#xA;          \project2&#xA;          \project3&#xA;&#xA;flex4&#xA;     \com1&#xA;         \projectx&#xA;     \com2&#xA;         \projecty&#xA;&#xA;java&#xA;    \projectz&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;repos is my repository root and then I have the 3 repositories inside (create with svnadmin create) flex3, flex4 and java, then flex3 should have two folders com1 and com2 for different clients, each will contain different &quot;project&quot; repos.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a feeling I have done this wrong, should I simply create the top level structure as normal folders and then make the com1 and com2 etc into repos with &quot;svnadmin create&quot; so that different projects can be added directly below them. Is this correct?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="6371" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-10-25T11:28:07.953" LastActivityDate="2010-10-25T12:49:58.420" Title="Subversion server hierarchy, need advice." Tags="&lt;version-control&gt;" AnswerCount="2" />
  <row Id="14436" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T11:25:01.700" Score="8" ViewCount="" Body="&lt;p&gt;The customer wants a mailout to their entire userbase that will basically send a personalised email about an event and when they click on a link in the email will automatically log them in to a form with half their data filled in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I write the code, test the code, it works fine, the links work, it's pretty smooth. Having checked and double checked everything, I switch over to the live list and away we go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The live list is significantly bigger than my sample data and the mail server falls over. I have to stop my console app, then realise I'll have to restart it from where it stopped. Fortunately this feature is not too hard to add and I have logged what users the mailout has already gone to, so having got the mailserver up and running again, and reconfigured the code to be able to restart from the point it failed previously and to pause to let the mailserver catch up, away we go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately I had somehow managed to not get all my code updating right. I don't remember the details of what I did, but the query to get the user data was getting one set of data, the query to generate the hash was getting another, so if a user clicked on the link they would get to a form that contained &lt;em&gt;someone else's&lt;/em&gt; personal data from their account details. And this in a niche industry where there were lots of competetive small businesses on the list.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It didn't take long for the phone to start ringing at the customers' office...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That was the only mistake so far that has lead to me offering my resignation.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-25T11:25:01.700" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="2" />
  <row Id="14437" PostTypeId="2" ParentId="14422" CreationDate="2010-10-25T11:30:34.940" Score="4" ViewCount="" Body="&lt;p&gt;If the other party was technical (C++/VOIP) then you can perhaps talk in detail about the definition of &quot;Web 2.0&quot; and they will gladly listen, learn, and appreciate the gory details.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OTOH, and given your subsequent question this may be the case, they're not particularly technical then I'd suggest taking care not to make them feel as though they're a bit of a chump for falling to the marketing boffins hype, and rather agree with them, that yeah, you are doing a lot of &quot;Web 2.0 stuff&quot; with some serious &quot;AJAX JSON postbacks to and from your cloudbased VPS server which is mashing into Google's latest satellite based API and presenting with an integrated YUI, jquery html5 iphone app&quot;; all making them feel like they're pretty smart to ask, and you look like you're pretty smart to be doing it.&lt;/p&gt;&#xA;" OwnerUserId="6372" LastEditorUserId="6372" LastEditorDisplayName="" LastEditDate="2010-10-25T11:37:58.397" LastActivityDate="2010-10-25T11:37:58.397" CommentCount="1" />
  <row Id="14438" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T11:31:20.010" Score="16" ViewCount="" Body="&lt;p&gt;“This is best practice.”&lt;/p&gt;&#xA;" OwnerUserId="3329" LastActivityDate="2010-10-25T11:31:20.010" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="7" />
  <row Id="14439" PostTypeId="2" ParentId="14422" CreationDate="2010-10-25T11:35:01.913" Score="11" ViewCount="" Body="&lt;p&gt;Web 2.0 has nothing to do with programming, only with marketing. The techniques existed 10 years ago. The perceived change is, that all over sudden all the people who have no understanding of technology thought this was hip.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So just politely tell him Web 2.0 is nothing but a buzzword and whether you do Web 2.0 or not mostly depends on how your product is sold, not what it actually involves. Say that you'd be happy to elaborate on the languages, platforms, concepts and techniques you employ so he can judge on his own.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-10-25T11:35:01.913" />
  <row Id="14440" PostTypeId="2" ParentId="14435" CreationDate="2010-10-25T11:37:22.567" Score="0" ViewCount="" Body="&lt;p&gt;Why did you created three repositories and not just one? &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; root&#xA;  +--- flex3&#xA;         +----...&#xA;  +--- flex4&#xA;         +----...&#xA;  +--- java&#xA;         +----...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;may you should orgnaize the projects based on the projects not on the programming language which is used....and use a single svn repository instead of multiple....&lt;/p&gt;&#xA;" OwnerUserId="6374" LastActivityDate="2010-10-25T11:37:22.567" CommentCount="5" />
  <row Id="14441" PostTypeId="1" AcceptedAnswerId="14457" CreationDate="2010-10-25T11:38:44.687" Score="3" ViewCount="192" Body="&lt;p&gt;When my Manager told to team that &quot;&lt;strong&gt;&lt;em&gt;now onwards successful user stories will be considered for appraisal!&lt;/em&gt;&lt;/strong&gt;&quot;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We sat there for while shocked and that was one of the several jaw dropping moments he gave us :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We felt that was stupid idea, since this will ruin all concept and goal of agile development methodology. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let me know what you people think? and how can we convince him?&lt;/p&gt;&#xA;" OwnerUserId="493" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-10-25T13:16:20.960" LastActivityDate="2010-10-25T13:44:30.900" Title="Is it right to appraise Scrum members according to number of successful user stories completed?" Tags="&lt;work-environment&gt;&lt;agile&gt;&lt;scrum&gt;&lt;appraisal&gt;" AnswerCount="5" />
  <row Id="14442" PostTypeId="2" ParentId="2271" CreationDate="2010-10-25T11:42:33.777" Score="1" ViewCount="" Body="&lt;p&gt;Actually I used to write it as JAYA in my exam papers because that was my staffs name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And when she enquired about it, I pretended as if it was not intentional...:)&lt;/p&gt;&#xA;" OwnerUserId="6373" LastActivityDate="2010-10-25T11:42:33.777" />
  <row Id="14443" PostTypeId="2" ParentId="14419" CreationDate="2010-10-25T11:55:10.603" Score="0" ViewCount="" Body="&lt;p&gt;You could consider gmail.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It does not require sorting to folders, but allow you to tag mails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Searching for stuff is fast.  Their web interface can be used without a mouse.  Really nice.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-25T11:55:10.603" CommentCount="3" />
  <row Id="14444" PostTypeId="2" ParentId="14441" CreationDate="2010-10-25T12:00:50.950" Score="2" ViewCount="" Body="&lt;p&gt;This is on a par to measuring lines of code, or number of bugs - but slightly more sophisticated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At first glance there's nothing wrong with the measurement, but when you think about it you start raising objections:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;what about more complicated stories?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;is the most obvious one that springs to mind - I'm sure there are others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You manager obviously thinks this is a good idea, so you need to be careful that when you raise objections you can also present solutions. This solution might have to be a modification to his scheme rather than a new scheme.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for example you might want to point out that someone who just works on &quot;easy&quot; stories will complete more than someone who works on a more &quot;difficult&quot; one and this &lt;em&gt;might&lt;/em&gt; lead to a concentration on the less important aspects of the development. So one solution might be to consider the number of story points rather than just the number of stories.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-25T12:00:50.950" CommentCount="1" />
  <row Id="14445" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T12:27:56.903" Score="8" ViewCount="" Body="&lt;p&gt;Q: &quot;So what is this library about ?&quot;&lt;br&gt;&#xA;A: &quot;This library is a DSL&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can replace this by : &quot;What is this class about ?&quot; -&gt; &quot;It is a Command pattern&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This rings a bell because this developer is more interested in how the code is written than on what it does and what is its final goal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can you be good programmer if you put more value on the &quot;beauty of the code&quot; than on client value ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that I don't say that design patterns are useless or that code quality is useless. I just say that what comes first is understanding and meeting customer needs.&lt;/p&gt;&#xA;" OwnerUserId="2365" LastEditorUserId="2365" LastEditorDisplayName="" LastEditDate="2010-10-25T12:34:58.937" LastActivityDate="2010-10-25T12:34:58.937" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="4" />
  <row Id="14446" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T12:30:48.227" Score="4" ViewCount="" Body="&lt;p&gt;&lt;Blockquote&gt;It just works.&lt;/Blockquote&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anytime I hear this phrase, I just assume whatever is suppose to just work doesn't. I learned early on that if someone can not explain in detail how code (or anything for that matter) is going to work, it probably doesn't. &lt;/p&gt;&#xA;" OwnerUserId="3421" LastActivityDate="2010-10-25T12:30:48.227" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="2" />
  <row Id="14447" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T12:32:29.097" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&quot;Didn't have time for this, fix later&quot; : Usually means it will never work.&lt;/li&gt;&#xA;&lt;li&gt;&quot;This is hacky code but it works, based on xyz&quot; : Usually means I stole this code and I have no idea how it really works.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3043" LastActivityDate="2010-10-25T12:32:29.097" CommunityOwnedDate="2010-10-29T22:01:50.383" />
  <row Id="14448" PostTypeId="1" CreationDate="2010-10-25T12:37:50.507" Score="1" ViewCount="297" Body="&lt;p&gt;How do you pronounce IaaS (as in SaaS, PaaS)?&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-10-25T12:48:13.250" LastActivityDate="2010-10-25T13:26:27.803" Title="How do you pronounce the Cloud technology &quot;IaaS&quot;?" Tags="&lt;buzzwords&gt;&lt;pronunciation&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="0" />
  <row Id="14449" PostTypeId="2" ParentId="14448" CreationDate="2010-10-25T12:44:59.457" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&quot;I aye aye Ess&quot;&lt;/strong&gt;. The other way... sounds a bit like &quot;Iä! Iä! &lt;a href=&quot;http://en.wikipedia.org/wiki/Shub-Niggurath&quot; rel=&quot;nofollow&quot;&gt;Shub-Niggurath&lt;/a&gt;! The Black Goat of the Woods with a Thousand Young!&quot;&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-25T12:44:59.457" />
  <row Id="14450" PostTypeId="2" ParentId="14419" CreationDate="2010-10-25T12:46:44.080" Score="2" ViewCount="" Body="&lt;p&gt;Similar to BradB's triage system I'd use the categories Act, Read, File and Bin. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Act&lt;/strong&gt; means this is something you have been asked to do and it's your responsibility to do it. Do this stuff first after categorising. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Read&lt;/strong&gt; means it may contain useful information, but you don't know yet. This also takes those magazines and CPD activities. Pick up this stuff when you hit a mental block on the work you are &quot;Acting&quot; on or in the time you put aside for CPD.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;File&lt;/strong&gt; means it contains relevant information about a decision or work done that needs to be stored for future reference. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Bin&lt;/strong&gt; is just as it says.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start by moving all items in your inbox to one of these categories, as you act upon or read stuff move it to file or bin as necessary. Clear out the File stuff at the end of the day, and only check your inbox when your programming work hits a natural break and you are not &quot;in the zone&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It doesn't address how to file stuff, but that is an individual thing anyway. &lt;/p&gt;&#xA;" OwnerUserId="5610" LastActivityDate="2010-10-25T12:46:44.080" />
  <row Id="14451" PostTypeId="2" ParentId="14448" CreationDate="2010-10-25T12:47:21.347" Score="3" ViewCount="" Body="&lt;p&gt;I don't. They're all silly acronyms in the first place, (and I'd love the slap the people that started them).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It makes more sense to just say &quot;rented X&quot; - since that's what it is, and it means everyone knows what you mean anyway.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-10-25T12:47:21.347" />
  <row Id="14452" PostTypeId="2" ParentId="14435" CreationDate="2010-10-25T12:49:58.420" Score="1" ViewCount="" Body="&lt;p&gt;I think you should ask yourself following questions before deciding repository layout for your company.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;What data do you expect to live in your repository (or repositories), and&#xA;  how will that data be organized?&lt;/li&gt;&#xA;  &lt;li&gt;Where will your repository live, and how will it be accessed?&lt;/li&gt;&#xA;  &lt;li&gt;What types of access control and repository event reporting do you&#xA;  need?&lt;/li&gt;&#xA;  &lt;li&gt;Which of the available types of data store do you want to use?&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.visualsvn.com/support/svnbook/reposadmin/planning/&quot; rel=&quot;nofollow&quot;&gt;Here&lt;/a&gt; you will find full article and how to answer above queries...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have been using Visual SVN Server for quiet time to manage our project repositories. &#xA;Have a look at &lt;a href=&quot;http://www.visualsvn.com/support/topic/00017/&quot; rel=&quot;nofollow&quot;&gt;Visual SVN Server recommended repository layout&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Said that, we are not using Visual SVN recommended layout; because we have projects which may overlap technologies e.g. an ASP.NET project may have flash module or ASP admin (for some legacy applications). And there is access restriction each projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is what we are using, and it seems to be working fine so far. Some tasks are very easy, especially repo backup routines, access management and trunk, branch and tag structure.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;+ Repositories (root)&#xA;    + Project 1 (repository)&#xA;    + .......&#xA;    + Project 2 (repository)&#xA;    + .......&#xA;    + Project 3 (repository)&#xA;    + .......&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="493" LastActivityDate="2010-10-25T12:49:58.420" />
  <row Id="14453" PostTypeId="2" ParentId="14441" CreationDate="2010-10-25T12:52:36.140" Score="1" ViewCount="" Body="&lt;p&gt;I agree with ChrisF that this goes back to the same problem with any measurement.  What you praise is what you get.  There are always going to be people that game the system, whatever that system is going to be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only real effective method that I've found for rewarding programmer's comes with three steps.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Leads know and understand the abilities of the people on their team.&lt;/li&gt;&#xA;&lt;li&gt;Managers listen to the recommendations of the leads for team members who aren't pulling their weight.&lt;/li&gt;&#xA;&lt;li&gt;The team is praised as a whole for successful sprints.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The entire key is that programmer's are not cogs in a machine that can be 'tuned' by looking at statistics.  The real people need to be examined and improved as whole and the team needs to be able to rely on each other in a cooperative, and not a competitive manner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The poor performers on the team are given every opportunity for improvement and enrichment before they are considered to be let go.  Ultimately, good programmers will thrive in this environment and the poor programmers, who refuse to be improved, will be let go.&lt;/p&gt;&#xA;" OwnerUserId="6378" LastActivityDate="2010-10-25T12:52:36.140" CommentCount="1" />
  <row Id="14454" PostTypeId="2" ParentId="14441" CreationDate="2010-10-25T12:56:15.897" Score="3" ViewCount="" Body="&lt;p&gt;My main objection to this method of assessment is that it can be an obstacle to co-operation between developers. I think that an important part of the productivity of a development team is the willingness of team members to help each other. As I understand the suggested scheme, it could lead to developers sticking with their own assigned tasks and ignoring other team members who are stuck and could easily be unstuck by a little assistance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are always looking for the contribution the programmer is making to the team and the business.&lt;/p&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-10-25T12:56:15.897" CommentCount="1" />
  <row Id="14455" PostTypeId="2" ParentId="14448" CreationDate="2010-10-25T13:08:41.237" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&quot;Ae-a-s&quot;&lt;/strong&gt; (but as it if were one word).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise from that, I agree completely with &lt;a href=&quot;http://programmers.stackexchange.com/questions/14448/how-do-you-pronounce-the-cloud-technology-iaas/14451#14451&quot;&gt;Peter&lt;/a&gt; - there isn't a bad enough punishment for people who make that sort of acronyms. Short of making them use Lotus Notes all the time ... but that would be a little too harsh! :-)&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-25T13:08:41.237" />
  <row Id="14456" PostTypeId="2" ParentId="14422" CreationDate="2010-10-25T13:11:32.823" Score="3" ViewCount="" Body="&lt;p&gt;I nod my head and say yes. There is almost no point in explaining and going into a big long rant on what Web 2.0 is really does nothing more than make you come across like a pompous asshole.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they pry deeper into what that entails then I'll explain, but in a 'why my job is cool way', not 'why everything you just said is wrong and an example of everything that is wrong with humanity' kind of way.&lt;/p&gt;&#xA;" OwnerUserId="5736" LastActivityDate="2010-10-25T13:11:32.823" />
  <row Id="14457" PostTypeId="2" ParentId="14441" CreationDate="2010-10-25T13:15:36.797" Score="6" ViewCount="" Body="&lt;p&gt;Sandy, unfortunately your manager's statement is a classic misunderstanding of scrum in particular and agile in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The proposed approach kills &lt;strong&gt;collaboration&lt;/strong&gt; and counters the principle of &lt;strong&gt;collective code ownership&lt;/strong&gt;.  User stories in agile (if it is a real agile) rarely get completed before being touched by multiple people.  Also, you will have user stories from time to time that need &lt;strong&gt;swarming&lt;/strong&gt; in order to be finished within the iteration.  How are you going to all get that when the individual incentives are aligned 180 degrees in the opposite direction?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your teams instincts are correct.  What sources would I suggest in the short term for you to read as you brainstorm the response to your manager?  Look at blogs of renowned agile experts like &lt;a href=&quot;http://blog.mountaingoatsoftware.com/&quot; rel=&quot;nofollow&quot;&gt;Mike Cohn&lt;/a&gt;, &lt;a href=&quot;http://martinfowler.com/bliki/&quot; rel=&quot;nofollow&quot;&gt;Martin Fowler&lt;/a&gt;, &lt;a href=&quot;http://testobsessed.com/&quot; rel=&quot;nofollow&quot;&gt;Elizabeth Hendrickson&lt;/a&gt;, &lt;a href=&quot;http://www.noop.nl/&quot; rel=&quot;nofollow&quot;&gt;Jurgen Appelo&lt;/a&gt;, &lt;a href=&quot;http://www.estherderby.com/&quot; rel=&quot;nofollow&quot;&gt;Esther Derby&lt;/a&gt; and several others and look for articles about agile team organization.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-25T13:15:36.797" />
  <row Id="14458" PostTypeId="2" ParentId="14401" CreationDate="2010-10-25T13:19:33.437" Score="4" ViewCount="" Body="&lt;p&gt;In a comment you mention when asked for a reason to open source you replied &quot;Obviously I'm hoping it will benefit the company somehow, but as I said, I don't know yet exactly how.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's not a good enough reason.  You absolutely &lt;strong&gt;must&lt;/strong&gt; know how it benefits the company.  It's not a try it and see how it turns out kind of decision.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like @Vatine said there are many companies that will license the source in addition to the software, sometimes for an additional price.  It gives a little peace of mind in that if there's a critical bug affects their customer they can make a hot-fix while they wait for your company to fix it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other big benefit of open-source is the community.  As @Konrad says, if the source is available but not open it greatly diminishes this effect. Also a community doesn't just establish itself, it needs promoting which costs time and/or money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also think about what actually makes the money for your company.  Is it the software itself, or is it something external and the software is merely a facilitator?  Google makes most of their money through advertisement.  The fact they open source most of their software and is a huge proponent of open source isn't negatively impacted by having the source out there.  It's the user-base that is their biggest asset, not the software.  Open-sourcing helps build that user-base and build good-will.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does your company have a model that would benefit from a large non-paying user-base?  By non-paying I mean paying for the software.  If you're selling the software directly you can more or less forget it.  If you're providing support or consultation services then you can use open source to give you an edge over the competition.  Open sourcing then can help build brand recognition.  Notice I said &quot;can&quot; and not &quot;will&quot;.  It still needs to be marketed and promoted properly otherwise it's useless.  It's all about building a community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition to the above, it's also a very personal decision for the company.  Is the personality of the company an open culture?  If it's not fully embraced by the company, especially at the head, it's not going to work.  Once it goes open source you can't just close it.  You can close future modifications, but what's out there will be out there, you can't take it back, so it's not a willy-nilly decision.  You &lt;strong&gt;absolutely&lt;/strong&gt; must know &lt;strong&gt;how and why&lt;/strong&gt; it will benefit &lt;strong&gt;your company&lt;/strong&gt; specifically.  &lt;/p&gt;&#xA;" OwnerUserId="4214" LastActivityDate="2010-10-25T13:19:33.437" />
  <row Id="14459" PostTypeId="2" ParentId="13782" CreationDate="2010-10-25T13:24:39.673" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Code Review&lt;/strong&gt;: The Code Review process must be a &lt;strong&gt;vital&lt;/strong&gt; one for all, I will explain who are all get benefits due to conduction of code review as well as what are the benefits they are getting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;1. Benefits Obtained By the Company Due to the Conduction of Code Review:&lt;/em&gt;&#xA;        If frequent code review is conducted, then the company can get the final products in much better optimized way which help them to get branded name in their market and also help company to get or improve their current &lt;strong&gt;CMMI&lt;/strong&gt; level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;2. Benefits to Team Leader Due to the Conduction of Code Review:&lt;/em&gt;&#xA;       As we all know a teacher can easily identify the mistakes, because they are reviewing the answers of their students more frequently, so they can get an idea , in which areas there may be possible for wrong things. similarly the team leader also knows what are the things goes wrong in this areas. How can we rectify those.And also Help the team Leader to grab the news ideas from the junior developer too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;3. Benefits to The Junior Developer  Due to the Conduction of Code Review:&lt;/em&gt;&#xA;       Junior Developer can easily grab the ideas about Code review Process, also they are able to get what is the coding standard, For Instance: to create API in a proper way, they will learn the standardization of the coding which may help them in future specially when they are become in Higher level post.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So My Conclusion is Code review is a Very Very Vital Process for all[even for team Member too], since code Reviewing helps us to correct our careless mistakes in our code,because we are all human beings, so we cannot predict that we never do careless mistakes in code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&#xA;Tilsan The Fighter.&lt;/p&gt;&#xA;" OwnerUserId="3993" LastActivityDate="2010-10-25T13:24:39.673" CommunityOwnedDate="2010-10-25T13:24:39.673" />
  <row Id="14460" PostTypeId="2" ParentId="14448" CreationDate="2010-10-25T13:26:27.803" Score="3" ViewCount="" Body="&lt;p&gt;Infrastructure as a Service.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;;-)&lt;/p&gt;&#xA;" OwnerUserId="5736" LastActivityDate="2010-10-25T13:26:27.803" />
  <row Id="14461" PostTypeId="1" CreationDate="2010-10-25T13:29:26.947" Score="1" ViewCount="131" Body="&lt;p&gt;According SaaS maturity model a SaaS is level 2 if is configurable, but how i can get started in this concept?how patterns and Technics, i can use to enable my SaaS?&lt;/p&gt;&#xA;" OwnerUserId="6382" LastActivityDate="2011-02-11T21:01:26.507" Title="SaaS maturity level 2, how i can build configurable SaaS?(Technics and patterns)" Tags="&lt;cloud&gt;&lt;architect&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="2" />
  <row Id="14462" PostTypeId="2" ParentId="3629" CreationDate="2010-10-25T13:38:01.620" Score="0" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Company&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now you can argue over whether I just called my colleagues &quot;tools&quot; if you like, but it's really useful to have other people to review code, criticise designs at the whiteboard, come up with alternatives to my hare-brained schemes, and so on. Of course this has to be within reason: I have been on one team which was a total talking-shop and got little done as a result. But even when I'm working alone I talk about my project with other indies, discuss particular problems, and get fresh input on my work.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-10-25T13:38:01.620" CommunityOwnedDate="2010-10-25T13:38:01.620" />
  <row Id="14463" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T13:39:57.277" Score="29" ViewCount="" Body="&lt;p&gt;Comments that are so verbose that if there were an English compiler, it would compile and run perfectly, yet doesn't describe anything that the code doesn't.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//Copy the value of y to temp.&#xA;temp = y;&#xA;//Copy the value of x to y.&#xA;y = x;&#xA;//Copy the value of temp to x.&#xA;x = temp;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Also, comments on code that could have been done away with had the code adhered to some basic guidelines:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//Set the age of the user to 13.&#xA;a = 13;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6385" LastActivityDate="2010-10-25T13:39:57.277" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="6" />
  <row Id="14464" PostTypeId="2" ParentId="14441" CreationDate="2010-10-25T13:44:30.900" Score="0" ViewCount="" Body="&lt;p&gt;Most of the time, User Stories are completed in a collective effort. This makes it virtually impossible to base individual appraisal on this metric.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The metric itself can be easily manipulated since the planning process is also a team effort and even sooner than later, the whole system gets rigged. That's definitely what you don't want in a people focused process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think good performance has to be recognized by some kind of bonus system based on team success, but User Stories are not a good indicator of success.&lt;/p&gt;&#xA;" OwnerUserId="5157" LastActivityDate="2010-10-25T13:44:30.900" />
  <row Id="14465" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T13:46:34.980" Score="42" ViewCount="" Body="&lt;p&gt;Code that tries to show off how clever the programmer is, despite the fact that it adds no real value:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;x ^= y ^= x ^= y;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6385" LastActivityDate="2010-10-25T13:46:34.980" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="3" />
  <row Id="14466" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T13:49:14.537" Score="21" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Functions with numbers in the name instead of having descriptive names&lt;/strong&gt;, like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void doSomething()&#xA;{&#xA;}&#xA;&#xA;void doSomething2()&#xA;{&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Please, make the function names mean something!  If doSomething and doSomething2 do similar things, use function names that differentiate the differences.  If doSomething2 is a break-out of functionality from doSomething, name it for its functionality.  &lt;/p&gt;&#xA;" OwnerUserId="5030" LastEditorUserId="5030" LastEditorDisplayName="" LastEditDate="2010-10-25T14:05:56.503" LastActivityDate="2010-10-25T14:05:56.503" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="7" />
  <row Id="14467" PostTypeId="1" CreationDate="2010-10-25T13:50:01.837" Score="5" ViewCount="318" Body="&lt;p&gt;I have been hearing about this term for close to 5 years now. I have read about services from Microsoft (Azure) etc. but never saw it adopted in mainstream usage. The thing I am trying to understand is this - &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Whatever happened to cloud computing? Is the infrastructure at present insufficient to implement this?&lt;/li&gt;&#xA;&lt;li&gt;Or is it still in it's infancy?&lt;/li&gt;&#xA;&lt;li&gt;Or is it being used in other forms now. Like all the services Google seems to provide. Plus Google OS etc.&lt;/li&gt;&#xA;&lt;li&gt;If it has failed, then why?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6345" LastActivityDate="2011-01-22T11:49:00.333" Title="Cloud Computing wherever has it gone?" Tags="&lt;cloud&gt;&lt;computer&gt;" AnswerCount="8" />
  <row Id="14468" PostTypeId="2" ParentId="14419" CreationDate="2010-10-25T13:51:22.273" Score="1" ViewCount="" Body="&lt;p&gt;The trick is to set up an Opt-in system and set of triage rules that moves new mail there. Only opt-in to email that tends to be urgent and important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have outlook at work and I have rules that move email based on three groupings&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Items addressed to me, are from Sr. Team members or boss(es) or support people get flagged and moved to my real Inbox &lt;strong&gt;TODO&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Other team members and items not addressed directly to me get moved to &lt;strong&gt;Filter&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Everything else stays in the &lt;strong&gt;Inbox&lt;/strong&gt; which I alias to &quot;bulk-rate&quot;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;From my experience&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;If you have more then three inboxes, the system will break down when email isn't were you expect it or don't know where it should go.&lt;/li&gt;&#xA;&lt;li&gt;If you don't have a way to separate urgent and important from just important,  the system will break down as it will be hard to sort out things that must be done right now&lt;/li&gt;&#xA;&lt;li&gt;If you can not easily adjust the system, it will break down as it will slowly become the wrong system for you.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The most important part of this is to adjust the rules every week or so. I sometimes add subject key words to Filter when a project needs my attention. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;If I had a lot of mail boxes to filter too, it would be too much effort to adjust the rules.&lt;/li&gt;&#xA;&lt;li&gt;If I had more than to address list groups Important and Filtered, it would be too hard to manage who goes where.&lt;/li&gt;&#xA;&lt;li&gt;If I had more than a dozen rules, it would be too hard to adjust every week.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I only get three or four items a day in TODO and less than 20 in Filter. I get over 100 a day in bulk. I read TODO email as it comes in. I read Filter once or twice a day. I usually flip through bulk on my blackberry on the way home. I delete well over 99% of everything there after reading only the first screen full. Most of it is FYI stuff. Can take an hour to clean it out.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-25T13:51:22.273" CommentCount="1" />
  <row Id="14469" PostTypeId="2" ParentId="14422" CreationDate="2010-10-25T13:52:30.997" Score="1" ViewCount="" Body="&lt;p&gt;Explain that Web 2.0 is sooo 2005 and that you only code in HTML5 these days&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a more serious note. Is it that bad to interpret roughly what someone means by a marketing term such as Web 2.0 and run with it? Unless you think there's an interesting conversation to be had in educating someone on web terminology, it may be easier to adopt a &quot;If you can't beat 'em, join 'em&quot; approach&quot;&lt;/p&gt;&#xA;" OwnerUserId="5723" LastEditorUserId="5723" LastEditorDisplayName="" LastEditDate="2010-10-25T14:08:34.267" LastActivityDate="2010-10-25T14:08:34.267" CommentCount="1" />
  <row Id="14470" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T13:55:47.987" Score="3" ViewCount="" Body="&lt;p&gt;We'll fix it in the next version.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-25T13:55:47.987" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="1" />
  <row Id="14471" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T13:56:18.173" Score="1" ViewCount="" Body="&lt;p&gt;When the code looks like a mess: Comments with &quot;todo&quot; and &quot;note to self&quot; and lame jokes. Code that was obviously used at some point solely for debugging purposes, but was then not removed. Variables or functions with names that suggest that the writer did not consider that anyone would read it later. Often these names will be very long and unwieldy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also: If the code lacks rhythm. Functions of wildly divergent length. Functions that do not adhere to the same naming schemes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Slightly related: It always makes me nervous if a programmer has slobby handwriting. Or if they are bad writers or bad communicators.&lt;/p&gt;&#xA;" OwnerUserId="6386" LastActivityDate="2010-10-25T13:56:18.173" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="2" />
  <row Id="14472" PostTypeId="1" CreationDate="2010-10-25T13:57:54.257" Score="2" ViewCount="208" Body="&lt;p&gt;I am looking for a theme with gadgets that will make my life easier as a programmer.&lt;br&gt;&#xA;Googling from the desktop is one feature I am looking for.&lt;br&gt;&#xA;Integration with SharePoint or other bug trackers are the second.&lt;br&gt;&#xA;Any other idea that might make me more productive is a good one.&lt;/p&gt;&#xA;" OwnerUserId="1271" LastActivityDate="2010-10-25T14:08:41.497" Title="What's are best Windows 7 gadgets for programmers?" Tags="&lt;productivity&gt;&lt;windows&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="14473" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T13:58:12.393" Score="24" ViewCount="" Body="&lt;p&gt;Code that produces warnings when compiled.&lt;/p&gt;&#xA;" OwnerUserId="6385" LastActivityDate="2010-10-25T13:58:12.393" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="4" />
  <row Id="14474" PostTypeId="1" AcceptedAnswerId="14490" CreationDate="2010-10-25T13:58:45.403" Score="5" ViewCount="368" Body="&lt;p&gt;Let's say you know of an anonymous noobie that wants to be lead upon the path of righteousness.  This noobie wants to use some sort of source control tools simply for the experience of using source control tools (and possibly for whatever benefits they bring along with them).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To constrain things further (and to make this possibly even more noobie-tastic), let's say they're stuck in windows developing in visual studio.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How would you guide your neophyte?&lt;/p&gt;&#xA;" OwnerUserId="6387" LastEditorUserId="1654" LastEditorDisplayName="" LastEditDate="2011-05-25T20:07:19.590" LastActivityDate="2011-05-25T20:07:19.590" Title="Noobie wants to use source control, how would you guide them?" Tags="&lt;version-control&gt;&lt;windows&gt;&lt;visual-studio&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="5" />
  <row Id="14475" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T14:02:16.307" Score="5" ViewCount="" Body="&lt;p&gt;Can anyone think of an example where code should legitimately refer to a file by absolute path?&lt;/p&gt;&#xA;" OwnerUserId="6385" LastActivityDate="2010-10-25T14:02:16.307" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="9" />
  <row Id="14476" PostTypeId="1" CreationDate="2010-10-25T14:03:54.893" Score="1" ViewCount="87" Body="&lt;p&gt;Hi, i have a medium SaaS project and need scale out, where i can find materials to get started my cloud project?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ps: i dont want work with a PaaS, like App engine or Azure...i will use IaaS like ec2 or rackspace&lt;/p&gt;&#xA;" OwnerUserId="6382" LastActivityDate="2010-10-25T14:03:54.893" ClosedDate="2010-10-27T21:46:14.903" Title="Scale out my application in cloud, how i can do that?" Tags="&lt;cloud&gt;&lt;architect&gt;&lt;architecture&gt;&lt;enterprise-architecture&gt;" CommentCount="3" />
  <row Id="14477" PostTypeId="2" ParentId="14467" CreationDate="2010-10-25T14:04:45.237" Score="2" ViewCount="" Body="&lt;p&gt;Look to the enterprise.  You will find cloud computing on the consumer side, but it is often not as you think of cloud computing. You hit the nail on the head when you mentioned Google Services, also look at all the Web services business popping up, Evernote, Mint.com, etc.  They are all in the cloud.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you think of Cloud Computing as an Infrastructure service, then you will be more likely to find that on the enterprise side, with Amazon, Rackspace, and even IBM all offering Infrastructure on Demand services.  I've heard that a lot of startup web companies love to use these services to quickly get their servers up and running and to ease the task of anticipating demand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To sum up, the cloud isn't dead, and is still growing at a strong pace. That said much like Web 2.0 there are multiple definitions to what Cloud Computing actually is.&lt;/p&gt;&#xA;" OwnerUserId="5736" LastActivityDate="2010-10-25T14:04:45.237" CommentCount="1" />
  <row Id="14478" PostTypeId="2" ParentId="14467" CreationDate="2010-10-25T14:08:20.060" Score="2" ViewCount="" Body="&lt;p&gt;The cloud was originally invented by companies like Amazon and Google for their own internal use- they needed a way to make things scale, stay available and be resilient because they depend on making their services reliably accessible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once those technologies had matured somewhat they started making them available to others and companies like Microsoft saw the possible benefits of this approach and began working on their own service. By now there are a few different services available and they all have their positives and negatives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's being used now by the big players. They're not making a fuss about it, just taking advantage of the things it offers. It's very convenient if you want to build a service and be ready for future capacity without having to worry about the hardware underneath it. Takes a few considerations out of the equation in a very helpful way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think if anything the term is going to become less popular/buzzwordy because it will just be acknowledged that people are using this technology and it will be nothing special.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-25T14:08:20.060" CommentCount="4" />
  <row Id="14479" PostTypeId="2" ParentId="10084" CreationDate="2010-10-25T14:08:34.163" Score="1" ViewCount="" Body="&lt;p&gt;The &quot;just do it&quot; approach works best, that's why it's a bit of a cliched response to a question like this.  &lt;em&gt;Find a project that you're interested in and do it in a language you're interested in, read books that run parallel to this.  Expand upon it.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A large project will teach you valuable lessons like having a good grasp on the design before writting much code or(replace this or with an AND if you want to be really awesome!) keep things loose (as in loosely coupled) enough allow lower level changes without mangling a great deal on up the food chain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The refactoring you'll have to do when you inevitably paint yourself into a corner will make you concious of design patterns and when to use them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;This is the very important bit that you will likely not encounter in school:&lt;/strong&gt; Programming is more than n or n+1 languages.  It's a combination of algorithms, languages, design paradigms and history.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although it certainly helps to master a couple languages if you want some sort of career!  I'd suggest digging deeper into metaprogramming concepts.  The art and science of programming is about wielding tools to create tools.&lt;/p&gt;&#xA;" OwnerUserId="6387" LastEditorUserId="6387" LastEditorDisplayName="" LastEditDate="2010-10-25T19:42:34.990" LastActivityDate="2010-10-25T19:42:34.990" CommunityOwnedDate="2010-10-25T14:08:34.163" CommentCount="2" />
  <row Id="14480" PostTypeId="2" ParentId="14472" CreationDate="2010-10-25T14:08:41.497" Score="2" ViewCount="" Body="&lt;p&gt;TFS gadgets:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/lPioD.jpg&quot; alt=&quot;TFS gadgets&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See &lt;a href=&quot;http://www.gregcons.com/KateBlog/SidebarGadgetsForTFS.aspx&quot; rel=&quot;nofollow&quot;&gt;http://www.gregcons.com/KateBlog/SidebarGadgetsForTFS.aspx&lt;/a&gt; - it's about two years old, so ignore the Vista comments.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-25T14:08:41.497" />
  <row Id="14481" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T14:09:15.037" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;We need to do a rewrite.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;On the otherhand, it was a five year old VB6 app.&lt;/p&gt;&#xA;" OwnerUserId="4765" LastActivityDate="2010-10-25T14:09:15.037" CommunityOwnedDate="2011-01-13T19:43:02.007" />
  <row Id="14482" PostTypeId="2" ParentId="10002" CreationDate="2010-10-25T14:10:58.633" Score="0" ViewCount="" Body="&lt;p&gt;If it is indeed a single use, I tend to go with option B. However, the moment I notice more than a single use, it's normally better off as option A. Might be just me, but I don't really like polluting the default namespace with potentially a large number of identifiers, only one of which is ever used and only once.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This differs somewhat based on the size of the namespace named in the using directive; a large namespace, such as System.Windows, sees more scrutiny at my keyboard than, say, System.Collections.Generic. It also depends somewhat on the size of the source code file; in a small file, it's easier to have an overview of what adding a using clause might do. (Yes, I know that best would often be to refactor and break up into smaller classes and files, but sometimes it's not practical to do so inside the scope of a small task.)&lt;/p&gt;&#xA;" OwnerUserId="6384" LastActivityDate="2010-10-25T14:10:58.633" />
  <row Id="14483" PostTypeId="2" ParentId="14169" CreationDate="2010-10-25T14:17:46.827" Score="0" ViewCount="" Body="&lt;p&gt;A better question would be, what popular languages don't have clear style guides from authoritative sources?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I checked the google and found guides for Java, C#, ruby, python, php and c/c++ in less than a minute. Within php, there are pear and drupal guidelines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm convinced that much of the debate on coding styles is about the desire of some programmers to have some say on what their teammates do.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-25T14:17:46.827" />
  <row Id="14484" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T14:17:56.700" Score="5" ViewCount="" Body="&lt;p&gt;Class naming conventions that demonstrate a poor understanding of the abstraction they're attempting to create. Or that don't define an abstraction at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An extreme example comes to mind in a VB class I saw once that was titled &lt;code&gt;Data&lt;/code&gt; and was 30,000+ lines long...in the &lt;em&gt;first&lt;/em&gt; file. It was a partial class split into at least half a dozen other files. Most of the methods were wrappers around stored procs with names like &lt;code&gt;FindXByYWithZ()&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even with less dramatic examples, I've sure we've all just 'dumped' logic into a poorly conceived class, given it a wholly generic title, and regretted it later.&lt;/p&gt;&#xA;" OwnerUserId="1972" LastActivityDate="2010-10-25T14:17:56.700" CommunityOwnedDate="2010-10-25T14:40:27.240" />
  <row Id="14486" PostTypeId="2" ParentId="14474" CreationDate="2010-10-25T14:21:29.097" Score="4" ViewCount="" Body="&lt;p&gt;Give them a copy of TortoiseSVN for a client and CollabNet's SVN server for a server, and have them put their My Documents folder under Subversion control.  As the old joke says, there's no place like $HOME, and living entirely under source control for a few months is an experience they'll never forget.  Plus, when they learn to check in frequently, they'll find that source control is a fantastic backup system.&lt;/p&gt;&#xA;" OwnerUserId="6390" LastActivityDate="2010-10-25T14:21:29.097" CommentCount="2" />
  <row Id="14487" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T14:29:54.690" Score="13" ViewCount="" Body="&lt;p&gt;Conjunctions in method names:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public void addEmployeeAndUpdatePayrate(...) &#xA;&#xA;&#xA;public int getSalaryOrHourlyPay(int Employee) ....&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Clarification: The reason this rings alarm bells is that it indicates the method likely violates the &lt;a href=&quot;http://www.oodesign.com/single-responsibility-principle.html&quot; rel=&quot;nofollow&quot;&gt;single responsibility principle&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="287" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-10-25T15:10:44.590" LastActivityDate="2010-10-25T15:10:44.590" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="2" />
  <row Id="14488" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T14:34:48.213" Score="16" ViewCount="" Body="&lt;p&gt;&quot;It works on my machine.&quot;&lt;/p&gt;&#xA;" OwnerUserId="6390" LastActivityDate="2010-10-25T14:34:48.213" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="5" />
  <row Id="14489" PostTypeId="2" ParentId="14474" CreationDate="2010-10-25T14:37:05.370" Score="1" ViewCount="" Body="&lt;p&gt;I got started thanks to the Pragmatic Press with Pragmatic Version Control using ( &lt;a href=&quot;http://www.pragprog.com/titles/svn2/pragmatic-version-control-using-subversion&quot; rel=&quot;nofollow&quot;&gt;Subversion&lt;/a&gt; || &lt;a href=&quot;http://www.pragprog.com/titles/vcc/pragmatic-version-control-using-cvs&quot; rel=&quot;nofollow&quot;&gt;CVS&lt;/a&gt; || &lt;a href=&quot;http://www.pragprog.com/titles/tsgit/pragmatic-version-control-using-git&quot; rel=&quot;nofollow&quot;&gt;Git&lt;/a&gt; ).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually I think I got started with SourceSafe before that, but I wasn't using it that well and also &lt;em&gt;it was SourceSafe.&lt;/em&gt; Really a quick read-through of any of those will get someone up to speed on the concepts pretty effectively.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-25T14:37:05.370" />
  <row Id="14490" PostTypeId="2" ParentId="14474" CreationDate="2010-10-25T14:37:28.163" Score="10" ViewCount="" Body="&lt;p&gt;First, show them &lt;a href=&quot;http://visualhg.codeplex.com/documentation&quot; rel=&quot;nofollow&quot;&gt;VisualHg&lt;/a&gt;, &lt;em&gt;which really fits Visual Studio like a glove to a hand&lt;/em&gt;, so they fall in love with it on first sight. Then show them where they can &lt;a href=&quot;http://visualhg.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;download it&lt;/a&gt;, and then, although it's &lt;em&gt;lemon easy&lt;/em&gt; to use, also show them these two really swell tutorial sites, that shows a little more than just pretty pictures (although it's got some pretty pictures in there as well): &lt;a href=&quot;http://hginit.com/&quot; rel=&quot;nofollow&quot;&gt;Hg Init&lt;/a&gt; and &lt;a href=&quot;http://hgtip.com/&quot; rel=&quot;nofollow&quot;&gt;Hg Tip&lt;/a&gt;. As soon as they're across that, they can stop calling themselves newbies for sure --&gt; &lt;a href=&quot;http://tekpub.com/codeplex&quot; rel=&quot;nofollow&quot;&gt;here be dragons&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-25T14:37:28.163" CommentCount="1" />
  <row Id="14491" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T14:37:37.900" Score="23" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/47882/what-is-a-magic-number-and-why-is-it-bad&quot;&gt;Magic Numbers&lt;/a&gt; or Magic Strings.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;   if (accountBalance&amp;gt;200) { sendInvoice(...); }&#xA;&#xA;   salesPrice *= 0.9;   //apply discount    &#xA;&#xA;   if (invoiceStatus==&quot;Overdue&quot;) { reportToCreditAgency(); }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-25T14:37:37.900" CommunityOwnedDate="2010-10-25T14:40:27.240" CommentCount="4" />
  <row Id="14492" PostTypeId="1" CreationDate="2010-10-25T14:37:52.063" Score="2" ViewCount="92" Body="&lt;p&gt;I have worked as a developer developing C/C++ applications for mobile platforms (Windows Mobile and Symbian) for about six years. About a year ago, however, I changed job and currently work with large(!) enterprise systems with high security and availability requirements, all developed in Java. My problem is that I am having a hard time getting a grip on the architecture of the systems, even after a year working with them, and understanding systems other people have built has never been my strong side. The fact that I haven't worked with enterprise systems before doesn't exactly help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone have a good approach on how to learn and understand large systems? Are there any particular techniques and/or patterns I should read up on?&lt;/p&gt;&#xA;" OwnerUserId="6392" LastActivityDate="2010-10-25T15:03:30.720" Title="How to gain understanding of large systems?" Tags="&lt;jobs&gt;&lt;architecture&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="14493" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T14:38:06.743" Score="6" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Multiple ternary operators strung together, so instead of resembling an &lt;code&gt;if...else&lt;/code&gt; block, it becomes an &lt;code&gt;if...else if...[...]...else&lt;/code&gt; block&lt;/li&gt;&#xA;&lt;li&gt;Long variable names with no underscores or camelCasing. Example from some code I have pulled up: &lt;code&gt;$lesseeloginaccountservice&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Hundreds of lines of code in a file, with little to no comments, and the code being very non-obvious&lt;/li&gt;&#xA;&lt;li&gt;Overly complicated &lt;code&gt;if&lt;/code&gt; statements. Example from code: &lt;code&gt;if (!($lessee_obj instanceof Lessee &amp;amp;&amp;amp; $lessee_obj != NULL))&lt;/code&gt; which I chomped down to &lt;code&gt;if ($lessee_obj == null)&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2416" LastActivityDate="2010-10-25T14:38:06.743" CommunityOwnedDate="2010-10-25T14:40:27.240" />
  <row Id="14494" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T14:40:27.240" Score="4" ViewCount="" Body="&lt;p&gt;Weakly typed parameters or return values on methods.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public DataTable GetEmployees() {...}&#xA;&#xA;public DateTime getHireDate(DataTable EmployeeInfo) {...}&#xA;&#xA;public void FireEmployee(Object EmployeeObjectOrEmployeeID) {...}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="287" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-10-25T14:54:52.470" LastActivityDate="2010-10-25T14:54:52.470" CommunityOwnedDate="2010-10-25T14:40:27.240" />
  <row Id="14495" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T14:44:41.123" Score="0" ViewCount="" Body="&lt;p&gt;I shouldn't need to understand the database structure. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was an urgent fix, so we fixed it directly on production. (Oh so glad, devs no longer have prod rights at our company anymore.)&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-25T14:44:41.123" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="2" />
  <row Id="14496" PostTypeId="2" ParentId="14467" CreationDate="2010-10-25T14:44:44.087" Score="10" ViewCount="" Body="&lt;p&gt;Cloud Computing, like most new technologies, was painfully over-hyped by the industry media. As it matures and is adopted -- or not -- as a working strategy, it is finding its valid place in the ecosystem. It is neither a panacea for all infrastructure problems nor a failure. &lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-10-25T14:44:44.087" CommentCount="1" />
  <row Id="14497" PostTypeId="1" AcceptedAnswerId="14506" CreationDate="2010-10-25T14:46:54.957" Score="4" ViewCount="296" Body="&lt;p&gt;What benefits for the developer does the Ruby language have that are not available in C# (preferably with code examples)?&lt;/p&gt;&#xA;" OwnerUserId="6394" LastActivityDate="2011-03-17T05:47:03.423" Title="What benefits for the developer does the Ruby language offer that C# does not have?" Tags="&lt;c#&gt;&lt;ruby&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="14498" PostTypeId="2" ParentId="13782" CreationDate="2010-10-25T14:48:39.853" Score="0" ViewCount="" Body="&lt;p&gt;We make online football game in Turkey. A lot of users and game masters helps us on functionality. Also they give comments on needed features. So I think, if you have a lot of users, functionality tests can be done for helping or getting badges. Collobration of developers, game masters and users with forums, support teams and private test environments create a social project.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure code reviews and sharing experiences between development team is needed but if it's not critical you don't have to force yourself. &lt;/p&gt;&#xA;" OwnerUserId="4628" LastActivityDate="2010-10-25T14:48:39.853" />
  <row Id="14499" PostTypeId="2" ParentId="14467" CreationDate="2010-10-25T14:52:35.917" Score="2" ViewCount="" Body="&lt;p&gt;It's still out there and being used quite a bit. The conundrum is that it was never defined very succinctly and became an umbrella term for just about &lt;a href=&quot;http://www.youtube.com/watch?v=0FacYAI6DY0&quot; rel=&quot;nofollow&quot;&gt;anything related to the Internet&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on how you define it, you could say it is very widely used (SalesForce, GMail, StackOverflow, etc.). Given the ambiguity, I think people are using more specific terms now instead of the over-hyped moniker &quot;Cloud computing&quot;. For example Platform as a Service (MS Azure), Infrastructure As a Service (Amazon EC3), or Application as a Service (GMail).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More and more, however, I think the term &quot;Cloud computing&quot; where it is still used is mostly applied to PaaS or IaaS. In that aspect it is very much used. A big example is FaceBook apps, many of which run on cloud providers.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-25T14:52:35.917" />
  <row Id="14500" PostTypeId="2" ParentId="14467" CreationDate="2010-10-25T14:53:03.223" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Distributed resources is what defines a grid.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although good answers thus far I believe most of you have missed some of the big key points.  To my knowledge there is a committee still actively defining protocols to standardize cloud computing.  Google, amazon, microsoft, the big name players have all implemented their own cloud solutions to provide SAAS provisions for internal and in some cases external use.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of cloud computing for the end user it is just not there yet.  People think of the cloud as in: &quot;My computer is strictly virtual with as client accessing it wherever I am physically located.&quot;  This idea is not yet ready and will take much effort to form protocols and specifications for interoperability.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are great examples of cloud computing though.  One example in the educational sector is &quot;ChindaGrid&quot;.  Google it if you wish.  It was a project from CERNET in China to provide computational resources to institutions such as universities.  IBM has extensive interest/effort put forth towards grid computing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also it should be noted that p2p is a form of grid computing.  Distributed resources is what defines a grid.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember the internet came about in the 60's for physicists to communicate across distances and then expanded to DARPA/ARPNET project for government use to have a decentralized network with no single point of failure.  We are talking how many years before the internet as we know it became alive.  The grid is still in its infancy and will take time to mature but the idea of scalable on demand provisioning is where computers will go without a doubt. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Great question, looking forward to other answers/comments! &lt;/p&gt;&#xA;" OwnerUserId="136" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-10-26T18:17:33.113" LastActivityDate="2010-10-26T18:17:33.113" />
  <row Id="14501" PostTypeId="2" ParentId="14497" CreationDate="2010-10-25T14:56:38.777" Score="0" ViewCount="" Body="&lt;p&gt;Ruby's extremely dynamic nature makes it very easy to create Domain Specific Languages. Ruby on Rails is the ne plus ultra of this aspect of Ruby as far as I know. RoR's ActiveMigrations is a DSL that takes a very difficult problem set and addresses it in a way that is easy to understand and to use. ActiveRecord, too.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-10-25T14:56:38.777" />
  <row Id="14502" PostTypeId="2" ParentId="1166" CreationDate="2010-10-25T14:59:53.287" Score="2" ViewCount="" Body="&lt;p&gt;It's a non-issue down here in Austin. Pretty much every job that doesn't involve sales or require a uniform has an extremely lax dress code, if any at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I still see companies making a big deal out of it in an effort to attract developers, but frankly it seems equivalent these days to advertising that you will get an air-conditioned workspace.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-25T14:59:53.287" CommunityOwnedDate="2011-01-30T18:03:58.527" />
  <row Id="14503" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T15:03:01.623" Score="0" ViewCount="" Body="&lt;p&gt;I made a &lt;a href=&quot;http://vision-language.sourceforge.net/cgi-bin/Home&quot; rel=&quot;nofollow&quot;&gt;site templating language&lt;/a&gt;, in an early version of which all HTTP parameters were implicitly expanded as variables. This meant that you could write a URL like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;page.vis?body=&amp;lt;body&amp;gt;&amp;lt;p&amp;gt;Oh dear&amp;lt;/p&amp;gt;&amp;lt;/body&amp;gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And it would do exactly what it looks like it does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Luckily I have no users (sigh), so I guess it wasn't too much of a security risk.&lt;/p&gt;&#xA;" OwnerUserId="2107" LastActivityDate="2010-10-25T15:03:01.623" CommunityOwnedDate="2011-01-13T19:43:02.007" />
  <row Id="14504" PostTypeId="2" ParentId="14492" CreationDate="2010-10-25T15:03:30.720" Score="4" ViewCount="" Body="&lt;p&gt;Personally I don't think anything beats just slogging through the code and learning it. There is not quick way to understand. When I go to a new job, I spend a week, doing almost nothing but understanding the design of the database (I'm a database specialist). If diagrams don't exist, I make them. I track things through from the top level of the queries all the way to the tables. I ask questions when something doesn't make sense. I look for the most critical of the queries to understand first (usually the search queries, they will give you a really good idea of the most important tables.). If possible get someone with some expertise to sit down with me for a good half a day and show me what he knows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you are way past your first week (when it is easier to get this time) this is harder. But start with one module you have worked on or are getting ready to work on and read the code, following the paths in the code until you have gone down to the lowest level. Make notes.  Make diagrams if you need to. Just work through one section at a time, but go through it thoroughly. Try to find someone who worked on the design to understand the design choices. Often they chose what was best at the time they did the design but something which five years later looks pretty awful to you. It helps to understand the constraints that caused the design to be the way it is. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Enterprise applications tend to be heavily database centric. Make sure to take the time to understand the database design as well as the structure of the application. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there requirements documents from the orginal design on out? Take the time to read some of them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is never easy to understand a large Enterprise system. There are alot of different little designs at different time periods involved in it so there is often very little consistency. It is likely that no one on the team understands the whole system completely. If you do have someone who is the acknowldeged expert in the system, listen to him or her very carefully, ask lots of questions, ask why they made the choices they did.  BUt do it respectfully, nothing will shut the expert onteh system up faster than asking questions in a way that makes them feel defensive. While you may or may not agree with all the choices they made (about a 100% chance you won't agree with all of them in my experience) at least understanding the whys helps you start to see the pattern of how this group of people approach design which will clue you in to how they did the next thing you look at as well. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-25T15:03:30.720" />
  <row Id="14505" PostTypeId="2" ParentId="14474" CreationDate="2010-10-25T15:09:27.923" Score="1" ViewCount="" Body="&lt;p&gt;If your developing in a Windows environment and targeting Visual Studio as an IDE, I would highly recommend Mercurial for source control.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Use &lt;a href=&quot;http://tortoisehg.bitbucket.org/&quot; rel=&quot;nofollow&quot;&gt;TortoiseHg&lt;/a&gt; as for managing&#xA;repositories.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Use &lt;a href=&quot;http://visualhg.codeplex.com/-&quot; rel=&quot;nofollow&quot;&gt;VisualHg&lt;/a&gt; for an in editor&#xA;interface to TortoiseHg.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;For the actual storage of the&#xA;repository, you have two choices:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Using the built in server &lt;code&gt;hg serve&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Use a hosted solution like &lt;a href=&quot;http://www.bitbucket.org&quot; rel=&quot;nofollow&quot;&gt;Bit Bucket&lt;/a&gt; (highly recommended)&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4765" LastActivityDate="2010-10-25T15:09:27.923" />
  <row Id="14506" PostTypeId="2" ParentId="14497" CreationDate="2010-10-25T15:15:34.323" Score="6" ViewCount="" Body="&lt;p&gt;Check this articles: &lt;a href=&quot;http://www.codethinked.com/post/2010/10/18/What-Is-So-Great-About-Ruby.aspx&quot; rel=&quot;nofollow&quot;&gt;What Is So Great About Ruby?&lt;/a&gt;, also don't miss &lt;a href=&quot;http://amazedsaint.blogspot.com/2010/10/poor-mans-singleton-methods-via-dynamic.html&quot; rel=&quot;nofollow&quot;&gt;Poor Man's Singleton Methods via Dynamic Wrappers in C#&lt;/a&gt; as answer to first article.&lt;/p&gt;&#xA;" OwnerUserId="5997" LastActivityDate="2010-10-25T15:15:34.323" CommentCount="3" />
  <row Id="14508" PostTypeId="1" CreationDate="2010-10-25T15:28:45.790" Score="1" ViewCount="115" Body="&lt;p&gt;I love the LinqPad not just for the Linq, but also for the various types of simple compile options it provides like single expression, statements and programs for C# and VB.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone knows something similar to this for C/C++?&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-11-24T18:45:41.263" Title="Something like LinqPad for C/C++?" Tags="&lt;learning&gt;&lt;c++&gt;&lt;startups&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="14509" PostTypeId="2" ParentId="14410" CreationDate="2010-10-25T15:29:19.287" Score="0" ViewCount="" Body="&lt;p&gt;I don't have any idea but might want to watch &quot;The Future of C# and Visual Basic&quot; from &lt;a href=&quot;http://player.microsoftpdc.com/Schedule/Filter/FrameworkTools&quot; rel=&quot;nofollow&quot;&gt;PDC10&lt;/a&gt; once it is posted.  &lt;/p&gt;&#xA;" LastActivityDate="2010-10-25T15:29:19.287" CommentCount="3" />
  <row Id="14510" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T15:56:47.720" Score="1" ViewCount="" Body="&lt;p&gt;This happened to a colleague this month.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He was fixing a bug that occurred when you send an SMS to a lot of cellphones. Usually these messages won't actually be sent to save on costs but due to a misconfiguration in our database they did get sent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cost: one months wage of SMS traffic.&lt;/p&gt;&#xA;" OwnerUserId="4930" LastActivityDate="2010-10-25T15:56:47.720" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="1" />
  <row Id="14511" PostTypeId="2" ParentId="14162" CreationDate="2010-10-25T16:00:23.943" Score="2" ViewCount="" Body="&lt;p&gt;I use the $10 starter license for Jira.  It's cheap and I already know it well from work.&lt;/p&gt;&#xA;" OwnerUserId="5847" LastActivityDate="2010-10-25T16:00:23.943" />
  <row Id="14512" PostTypeId="1" AcceptedAnswerId="19559" CreationDate="2010-10-25T16:07:52.840" Score="18" ViewCount="686" Body="&lt;p&gt;I'm wondering what parents programmers (or really any working-at-a-computer job) have to say about staying at home with an infant while trying to get some work done; is it at all feasible?  How much work might you actually do?  Long term or short term, one child or several; not real relevant right now to me, but I've often wondered.&lt;/p&gt;&#xA;" OwnerUserId="6401" LastActivityDate="2010-11-17T11:23:39.340" Title="Programming with a baby" Tags="&lt;programming&gt;&lt;home&gt;&lt;telecommute&gt;&lt;children&gt;" AnswerCount="9" CommentCount="11" FavoriteCount="1" />
  <row Id="14513" PostTypeId="2" ParentId="14162" CreationDate="2010-10-25T16:11:34.510" Score="0" ViewCount="" Body="&lt;p&gt;I don't see the point in using formal bug tracking for small one-man projects.  Usually I just keep a (very short) mental list and fix the bugs as I become aware of them.  Of course this doesn't scale for large/multi-person projects, but the point is that it doesn't need to.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-25T16:11:34.510" CommentCount="4" />
  <row Id="14514" PostTypeId="2" ParentId="12334" CreationDate="2010-10-25T16:15:51.103" Score="3" ViewCount="" Body="&lt;p&gt;Aside from things already mentioned. I think that having version control is not enough. How you use version control is very important. Here are some guidelines we use:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every commit to version control should be:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;small&lt;/li&gt;&#xA;&lt;li&gt;complete and correct&lt;/li&gt;&#xA;&lt;li&gt;understandable by itself&lt;/li&gt;&#xA;&lt;li&gt;have one single clear objective&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;There are many reasons to use this practice. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Problems with large commits&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Large commits are harder to review. The commit is large either because the commit contains multiple unrelated changes or the change is very complex. Break the change down into a series of smaller steps so that any future reviewer can easily follow the chain of reasoning. Occasionally a checkin may be large because it contains the result of an automated tool (e.g. renaming a widely used function), in this case you need to plan how the reviewer will confirm the change in advance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Large commits often mean that the code is checked out on the developer's local machine and not integrated for a long time. This increases the chances of conflicting changes between developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Problems with incomplete or incorrect commits&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Incomplete or incorrect commits break the invariants of some or all of your code. They cause code to not behave according to its contract. If you have multiple developers working on the code at the same time this could interfere with what they are doing. Some event, like a fire alarm or 5.30pm or a sick day may mean that the incomplete code gets released.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each commit should take your codebase from a working correct state to another working correct state. You should aim to be able to build and release every revision of your project's source control tree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Problems with incomprehensible commits&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a bug is found between two versions, or for the purposes of code review you need to examine the version control history each commit should be clearly understandable. Both the purpose (commit comment?) and the actual code change. For instance, do not paste code from some where else in the system in one commit and then remove it in a subsequent commit. The reader of the commit will not be able to tell from the first revision where the new code has come from. Move the code block in a single commit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing clear tests to accompany each commit also helps here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Problems with commits that have multiple objectives&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Commits with multiple objectives are difficult to revert. In particular, if one of the objectives is wrong but the others are OK then it may take significant error-prone work to un-pick them. The same logic applies to creating patches for older versions (branches). You should be able to create a patch for an individual functionality change in isolation.&lt;/p&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-10-25T16:15:51.103" />
  <row Id="14515" PostTypeId="2" ParentId="14297" CreationDate="2010-10-25T16:16:46.127" Score="14" ViewCount="" Body="&lt;p&gt;Personal favorite/pet peeve: IDE generated names that get comitted. If TextBox1 is a major and important variable in your system, you've got another thing coming come code review.&lt;/p&gt;&#xA;" OwnerUserId="3762" LastActivityDate="2010-10-25T16:16:46.127" CommunityOwnedDate="2010-10-25T16:16:46.127" />
  <row Id="14516" PostTypeId="1" CreationDate="2010-10-25T16:20:03.310" Score="0" ViewCount="173" Body="&lt;p&gt;What is the market like for custom apps or scripts using the OpenOffice.org API?  I started delving into it a while back.  I found it a fairly painful environment to work in.  Is there any demand for this skill set?  I might keep at it if it seemed like there was money to be made.&lt;/p&gt;&#xA;" OwnerUserId="498" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-07T13:06:48.080" LastActivityDate="2011-01-17T13:31:14.223" Title="Work opportunities in OpenOffice.org development" Tags="&lt;python&gt;&lt;office&gt;&lt;basic&gt;&lt;open-office&gt;" AnswerCount="1" CommentCount="6" />
  <row Id="14517" PostTypeId="2" ParentId="12334" CreationDate="2010-10-25T16:24:34.030" Score="1" ViewCount="" Body="&lt;p&gt;What do bug trackers, continuous integration and shared source control have in common? Transparency. Great teams are transparent -- any member can instantly know what is going on with the project, the build, what is broken, what is being fixed and who is fixing what. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Corallary to this is that team members know they are good and when they break a build they don't go hide in their office but say &quot;Yup, I broked it, here is the fix&quot; or otherwise behave like adults. &lt;/p&gt;&#xA;" OwnerUserId="3762" LastActivityDate="2010-10-25T16:24:34.030" />
  <row Id="14518" PostTypeId="2" ParentId="14512" CreationDate="2010-10-25T16:31:16.457" Score="16" ViewCount="" Body="&lt;p&gt;I would say that it depends greatly on the age, personality and disposition of the child. Two of my children were born during a period of five years during which I exclusively worked from home. They were typically in day care, but I watched them on all of the many occasions that they were too ill to go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found that during early months when they do little besides eat and sleep, there was no problem. I was even able to feed them a bottle with one hand and type with the other. However, once they started being able to crawl, it was more difficult to give enough attention to the computer to be normally productive. There's just too-much trouble that the child can get into, and they begin to need intervention.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No parent wants to think that they are neglecting their child's needs in order to get work done, no matter how important the work is, so it's a large and risky proposition to plan to combine home car of a baby with work-at-home. You might give it a go on a short-time basis to see if it works, but even if it does, children grow and change so quickly that you might find that what works today fails badly next week.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-10-25T16:31:16.457" CommentCount="5" />
  <row Id="14519" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T16:33:47.547" Score="12" ViewCount="" Body="&lt;p&gt;I've done this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;rm -rf /bin&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(Actually, I didn't do &lt;em&gt;exactly&lt;/em&gt; that. That would be dumb and inexcusable. I did it in a more subtle, roundabout way that resulted in essentially that command being executed.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Needless to say, the Unix system was unusable after that point and had to be re-installed. I was a beginning sysadmin at the time and the senior guy overseeing me was understanding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some good came of the experience. I learned how to list directories without having any of the /bin commands to use.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;echo *&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2010-10-25T16:33:47.547" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="2" />
  <row Id="14521" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T16:51:20.450" Score="6" ViewCount="" Body="&lt;p&gt;I crashed a 100 000$ laser scanner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The controller was storing positions as integer so I divided everything by 10000 to get the actual position in inches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the last digit was a 0, it was omitted so the Z axis was 10 times to far.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hillarity ensued&lt;/p&gt;&#xA;" OwnerUserId="3250" LastActivityDate="2010-10-25T16:51:20.450" CommunityOwnedDate="2011-01-13T19:43:02.007" />
  <row Id="14522" PostTypeId="2" ParentId="14298" CreationDate="2010-10-25T16:52:06.423" Score="1" ViewCount="" Body="&lt;p&gt;Yes, it definitely still is a good book! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It talks about general ideas and principles that don't change much, even if your language/platform/library has evolved. It doesn't matter what material you're using to build a bridge - you still have to take gravity into consideration ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is more, Martin Fowler is still quite active and recently involved in Domain Specific Languages. Check out his &lt;a href=&quot;http://martinfowler.com/&quot; rel=&quot;nofollow&quot;&gt;web site&lt;/a&gt; for more information.&lt;/p&gt;&#xA;" OwnerUserId="5564" LastActivityDate="2010-10-25T16:52:06.423" />
  <row Id="14523" PostTypeId="2" ParentId="14218" CreationDate="2010-10-25T16:58:26.683" Score="12" ViewCount="" Body="&lt;p&gt;Uniformity&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't care whether your code is camel cased or has &lt;em&gt;_&lt;/em&gt; everywhere.&lt;br&gt;&#xA;I don't care if you use 3 or 4 spaces or tabs.&lt;br&gt;&#xA;I don't care if you write this. or if your privates are prefixed with m_.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just make sure that you do it the same way everywhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just make sure you do it the same way it already is in the file you are editing, it might be MY file&lt;/p&gt;&#xA;" OwnerUserId="3250" LastActivityDate="2010-10-25T16:58:26.683" />
  <row Id="14524" PostTypeId="1" AcceptedAnswerId="14539" CreationDate="2010-10-25T17:01:25.910" Score="5" ViewCount="194" Body="&lt;p&gt;Being a freelancer, I don't have access to corporate training programs where employees learn best practices. Most of the time I am advised to look into the available code on the Internet. Ideal places would be: CodePlex and SourceForge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But this proves to be of limited rather very little help. I want my existing code to be analyzed and a better solution be suggested to improve the quality of the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How to learn coding that matches standards?&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2010-12-04T13:56:38.857" Title="How a freelancer can learn industry standards?" Tags="&lt;code-quality&gt;&lt;coding-standards&gt;" AnswerCount="4" CommentCount="5" />
  <row Id="14525" PostTypeId="1" CreationDate="2010-10-25T17:03:15.947" Score="17" ViewCount="1561" Body="&lt;p&gt;Here we are in 2010, software engineers with 4 or 5 years or experience, still designing tables with 96 fracking columns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I told him it's gonna be a nightmare.&lt;br&gt;&#xA;I showed him that we have to use ordinals to interface MySQL with C#.&lt;br&gt;&#xA;I explained that tables with more columns than rows are a huge smell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, I get the &quot;It's going to be simpler this way&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What should I do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT *&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This table contains data from sensors.&lt;br&gt;&#xA;We have sensor 1 with&lt;br&gt;&#xA;Dynamic_D1X&lt;br&gt;&#xA;Dynamic_D1Y&lt;br&gt;&#xA;[...]  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dynamic_D6X&lt;br&gt;&#xA;Dynamic_D6Y&lt;br&gt;&#xA;[...]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT2 *&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, I finally left that job. It is a sign when the other programmer goes dark for months at the time, it is another sign when management does not realise this is a problem&lt;/p&gt;&#xA;" OwnerUserId="3250" LastEditorUserId="3250" LastEditorDisplayName="" LastEditDate="2011-03-18T00:04:21.477" LastActivityDate="2011-03-18T00:23:31.797" Title="My coworker created a 96 columns SQL table" Tags="&lt;best-practices&gt;&lt;sql&gt;&lt;code-smell&gt;" AnswerCount="12" CommentCount="21" FavoriteCount="0" />
  <row Id="14526" PostTypeId="2" ParentId="14218" CreationDate="2010-10-25T17:06:07.800" Score="0" ViewCount="" Body="&lt;p&gt;Standard indentation.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-10-25T17:06:07.800" CommentCount="1" />
  <row Id="14527" PostTypeId="2" ParentId="14525" CreationDate="2010-10-25T17:11:38.170" Score="3" ViewCount="" Body="&lt;p&gt;Get him to read this article about &lt;a href=&quot;http://martinfowler.com/bliki/TechnicalDebt.html&quot; rel=&quot;nofollow&quot;&gt;technical debt&lt;/a&gt;. If he still decides to keep it this way, then at least you have offered a constructive opinion.&lt;/p&gt;&#xA;" OwnerUserId="5510" LastActivityDate="2010-10-25T17:11:38.170" />
  <row Id="14528" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T17:13:49.510" Score="1" ViewCount="" Body="&lt;p&gt;On a manager's request, I copied &lt;code&gt;/etc/sudoers&lt;/code&gt; from one machine to another (even though it wouldn't have fixed the problem at hand, but that's beside the point).  Unfortunately, I used &lt;code&gt;sudo&lt;/code&gt; to move the copied file into place, without noticing that its owner and permissions were completely wrong.  At that point, nobody had a root shell open, nobody could &lt;code&gt;sudo&lt;/code&gt;, and nobody could log in as root because its shell was set to &lt;code&gt;/bin/false&lt;/code&gt;.  And the machine was in a remote data warehouse...&lt;/p&gt;&#xA;" OwnerUserId="2833" LastActivityDate="2010-10-25T17:13:49.510" CommunityOwnedDate="2011-01-13T19:43:02.007" />
  <row Id="14529" PostTypeId="2" ParentId="14525" CreationDate="2010-10-25T17:14:15.157" Score="12" ViewCount="" Body="&lt;p&gt;Unfortunately your average developer still thinks of relational databases as big flat files. The only way they will get any better is if someone takes charge and leads by example. Just recently I spearheaded a major redesign of an important schema in our database and followed common relational practices. All of the sudden our stored procedures were more elegant and all of the proper indexes seemed to fall into place like they were born for it. The ego driven developer will never believe you without proof.&lt;/p&gt;&#xA;" OwnerUserId="712" LastEditorUserId="712" LastEditorDisplayName="" LastEditDate="2010-10-25T18:46:48.977" LastActivityDate="2010-10-25T18:46:48.977" CommentCount="5" />
  <row Id="14530" PostTypeId="2" ParentId="14525" CreationDate="2010-10-25T17:19:04.843" Score="0" ViewCount="" Body="&lt;p&gt;I'm going to go out on a limb here and assume he's going to cut and paste a lot of code to work with this &quot;New&quot; table. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If so, you probably won't incur any additional technical debt.  He's just split his share of technical debt and may be well on the way to some sort of grand unification of things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If he's got some tried and true methodology that requires a 96 column thing consider the actual benefits of doing it a different way in this particular case.  If there are none, then give him the benefit of the doubt, but remind him that next time you want to be in on the planning phase the next time he makes what we'd all consider to be a pretty dumb move.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-25T17:19:04.843" />
  <row Id="14531" PostTypeId="2" ParentId="14525" CreationDate="2010-10-25T17:24:41.513" Score="11" ViewCount="" Body="&lt;p&gt;Something similar was discussed previously on &lt;a href=&quot;http://stackoverflow.com/questions/489003/sql-optimization-how-many-columns-on-a-table&quot;&gt;StackOverflow&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, having lots of columns on a table doesn't &lt;em&gt;necessarily&lt;/em&gt; mean you are doing something wrong, but it definitely should raise some red flags so you look closely at the design. Sometimes a huge table is the right choice, but in many cases, other alternatives make more sense. For example, one option is to divide the storage into two tables: one table that identifies your entities and another table that is effectively a key/value store of attributes describing those entities (so you may end up with at most 96 &lt;em&gt;rows&lt;/em&gt; for each entity). Other designs are possible as well. Talk with your teammates and figure out which solution is better depending on data normalization, code readability &amp;amp; maintainability (insert statements with 96 attributes to fill in?), performance implications, how often new attributes (columns) could be added or changed, how sparse the data is (how many of the 96 columns will ever be filled and how many remain NULL?), and implications on reporting. Any developer should be able to reasonably justify their design decisions and show that the cost/benefit trade off (and yes, every design decision is a trade off) is in their favor. Your responsibility is not to complain or criticize, but to propose alternatives and make sure they thought through these issues.&lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-10-25T17:24:41.513" CommentCount="2" />
  <row Id="14532" PostTypeId="2" ParentId="4475" CreationDate="2010-10-25T17:38:19.177" Score="0" ViewCount="" Body="&lt;p&gt;While I still haven't come across quite as comprehensive as what I'm looking for, many of the websites in &lt;a href=&quot;http://webdesign.tutsplus.com/articles/workflow/the-importance-of-getting-great-feedback-in-web-design/&quot; rel=&quot;nofollow&quot;&gt;this article&lt;/a&gt; provide feedback for a design.&lt;/p&gt;&#xA;" OwnerUserId="73" LastActivityDate="2010-10-25T17:38:19.177" />
  <row Id="14533" PostTypeId="2" ParentId="14525" CreationDate="2010-10-25T17:44:09.467" Score="9" ViewCount="" Body="&lt;p&gt;Is it normalised with 96 columns? Does it satisfy 1st, 2nd, 3rd etc NF?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may be that you have 96 separate attributes for on entity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, make him read &lt;a href=&quot;http://www.simple-talk.com/author/joe-celko/&quot; rel=&quot;nofollow&quot;&gt;Joe Celko on Simple Talk&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5905" LastEditorUserId="5905" LastEditorDisplayName="" LastEditDate="2011-02-21T05:27:29.947" LastActivityDate="2011-02-21T05:27:29.947" />
  <row Id="14534" PostTypeId="2" ParentId="13782" CreationDate="2010-10-25T17:46:04.380" Score="3" ViewCount="" Body="&lt;p&gt;Code reviews can identify defects earlier in the software lifecycle when issues are easier (and cheaper) to fix. At &lt;a href=&quot;http://smartbear.com&quot; rel=&quot;nofollow&quot;&gt;SmartBear&lt;/a&gt; we have developed a &lt;a href=&quot;http://codecollaborator.smartbear.com&quot; rel=&quot;nofollow&quot;&gt;peer code review tool&lt;/a&gt; and have also done a lot of research into how to make code reviews effective. Based on data from our customers, defects found in code review are 8-12X cheaper to find and fix than defects found in QA. The cost savings alone makes code review worth it, but there is more value than just that. Code review is an excellent way for everyone on the team to learn and improve as software developers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some traps that can cause code reviews to become less effective, and it seems like your organization is caught in one of them. Make the code review about the code, not the people. Titles mean nothing in a code review. Appeals to authority (you must do it my way because I'm the team lead) do more harm than good. Teach instead. Senior engineers should explain why it should be done their way, not just demand that it is. If you're having a hard time explaining a concept, it's a learning experience for you too. Both of you will be better developers for the effort you put in.&lt;/p&gt;&#xA;" OwnerUserId="6403" LastActivityDate="2010-10-25T17:46:04.380" CommentCount="2" />
  <row Id="14535" PostTypeId="2" ParentId="14512" CreationDate="2010-10-25T17:46:12.180" Score="33" ViewCount="" Body="&lt;p&gt;I have been working (programming) from home for 6 years now and have 3 children (7, 5, 2). It is certainly possible, but I think the most important thing is a home office. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;An office with a locking door is essential. I always work in my office with the door shut. If I have a conference call or really need to put my head down I will lock the door. Every now and then my kids will come in the office unannounced. If I'm not super busy it's OK. We can spend a few minutes together and then they leave. If I am busy, I should have locked the door. My kids (even my 2 year old) know that if the door is locked I'm not going to open it, so they just turn around and go do something else. There is background noise, but you'll get to used to that after a while and learn to tune it out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some side issues involved as well. It can be more difficult when the kids are infants or they're not behaving. My wife sometimes gets upset that I'm in my office with the door locked while she's having to wrangle the children. Also, you lose the social aspect of being in an office, so it may not be for everyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To specifically answer your question: I am just as, if not more, productive as I would be if I were in an office building. I have no commute to deal with and if I need to work after hours it's as simple as going upstairs. It also allows me to spend what free time I can get out of my day with my family if they're home. But I couldn't do it without a dedicated office.&lt;/p&gt;&#xA;" OwnerUserId="6414" LastActivityDate="2010-10-25T17:46:12.180" CommentCount="9" />
  <row Id="14536" PostTypeId="2" ParentId="14525" CreationDate="2010-10-25T17:46:52.367" Score="28" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Maybe he did that for a good reason, such as performances or ROI ?&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The best thing to do, is asking him questions. With a certain amount of &quot;why&quot; you will certainly make him understand he is probably wrong by itself (if he really is).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I had one case myself that is not related to performances but return on investment (ROI). I had a table containing objects that had a specific value for each hour of the week (168h in a week). We had the choice to create a ObjectHour table that would contain the value, but also a key to the Object and the day number of hour number. But we also had the opportunity to put the 168 values right in the row. Probably like what your coleague did.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The developers estimated both solutions. The simple solution (168 columns) was a lot cheaper to do than its well designed counterpart. For the exact same result for the customer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;We decided to go for the simple/cheapest solution to focus our efforts of more important stuffs such as security.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We will have many opportunities to improve that in the future. Time to market was the priority for us at the time.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-25T21:11:43.937" LastActivityDate="2010-10-25T21:11:43.937" CommentCount="5" />
  <row Id="14537" PostTypeId="2" ParentId="14512" CreationDate="2010-10-25T17:56:55.163" Score="6" ViewCount="" Body="&lt;p&gt;I've been working from home for years, have 2 kids (6yrs old and 3) and it is possible to get work done and be productive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to establish how and when you work and be consistent.  Kids need for the rules to apply everytime so what ever you come up with stick to it.  I will work with the door to my office closed if I cannot be disturbed and even a 1 year old can learn that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you plan on spending time with your kid(s) during the day?  If so set aside the time every day and make it part of your schedule.  I take a break when my kids get home from school and start back up after they go to bed.  It's a decent sized break and really allows for some good time with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best of luck.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-10-25T17:56:55.163" CommentCount="1" />
  <row Id="14538" PostTypeId="2" ParentId="14512" CreationDate="2010-10-25T17:59:05.620" Score="2" ViewCount="" Body="&lt;p&gt;Got 2 kids at home all day and one on the way.  I telecommute when the weather is to dangerous to drive and I've found that the only way to do it is to wake up early and pretend you're not there. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find it very difficult to child/babyproof my home office.  If they do make it in to your fortress of solitude, my best advice would be to get an old junker computer, remove all the screws and jumpers and let your little tike tear into it.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-25T17:59:05.620" />
  <row Id="14539" PostTypeId="2" ParentId="14524" CreationDate="2010-10-25T18:00:53.153" Score="5" ViewCount="" Body="&lt;p&gt;The ideal solution is near you. There is a website called &lt;a href=&quot;http://www.stackoverflow.com&quot; rel=&quot;nofollow&quot;&gt;stackoverflow.com&lt;/a&gt; where thousand of fanatic developers are answering questions for free. Just for what is called reputation points. That website is full of extremely experienced professionnals and it's not very common to meet people like Jon Skeet the author of C# In Depth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Your strategy?&lt;/strong&gt; Try to answer to questions you know the answer, but also consult questions you may be interested in, such as the ones that talk about industry standards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is becoming so huge, that now I skip google, and search directly on &lt;a href=&quot;http://www.stackoverflow.com&quot; rel=&quot;nofollow&quot;&gt;stackoverflow.com&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-25T18:00:53.153" CommentCount="15" />
  <row Id="14540" PostTypeId="2" ParentId="14508" CreationDate="2010-10-25T18:07:23.357" Score="1" ViewCount="" Body="&lt;p&gt;I don't know of one, but our credo is (or should be) &quot;If you cant find it, write it.&quot;  We are, after all, programmers.  Maybe go with an opensource project to get the community involved.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-25T18:07:23.357" />
  <row Id="14541" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T18:07:24.377" Score="3" ViewCount="" Body="&lt;p&gt;For a robot I work on, we keep a log file of every run. We have the robot and a simulator, both which generate these log folders. The simulator's log files are useless, but the robots log files are very useful and are stored forever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because the robot itself has limited hard drive space, they're transferred to another computer and stored there. This computer happens to be the main operating computer for communicating with the robot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, I had just started working on the robot a couple months earlier and didn't know this. I thought the logs on the operating computer were the useless ones generated by the simulator and deleted them. We lost all of the old logs because there wasn't a proper backup.&lt;/p&gt;&#xA;" OwnerUserId="3102" LastActivityDate="2010-10-25T18:07:24.377" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="1" />
  <row Id="14542" PostTypeId="2" ParentId="11312" CreationDate="2010-10-25T18:17:44.760" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;A fast Computer &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A good internet connection( can't see that loading sign for too long ) &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Liberty to wear what I want ( ofcourse in a limit ) &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That much would be sufficient :) &lt;/p&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-10-25T18:17:44.760" CommunityOwnedDate="2010-10-25T18:17:44.760" />
  <row Id="14543" PostTypeId="1" CreationDate="2010-10-25T18:33:15.127" Score="13" ViewCount="291" Body="&lt;p&gt;If you have a project and there are questions that need answered regarding a specific part of it but answers are not coming back to you because of a reason such as: &quot;The project is not in scope and as a side project we are not going to push for answers,&quot; is it appropriate to go outside/around your boss to get those answers.  If so how?  If not why?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My situation: In the next month we have a lot of projects slated for our team but currently we have a lot of down time and some side projects that I really want to participate in are coming to a screeching halt because of the lack of answers I have received regarding some of the specifications.  My boss won't press for answers because he said since this is a side project we are not &quot;supposed&quot; to really be investing out full efforts into it, however, I go crazy at work with down time unless I find something constructive to do.  Ie. learn a new language, take on a side project like this one.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can I elicit the answers I need to start working on this project because chartered projects come up that require my full time and I have to toss this side project off to a student developer?  Additionally, how can I do so without pissing off anyone above me?  &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-11-07T19:41:38.850" Title="Is it appropriate to go around your boss to receive an answer? If so how?" Tags="&lt;work-environment&gt;&lt;boss&gt;&lt;politics&gt;&lt;specifications&gt;" AnswerCount="10" CommentCount="5" />
  <row Id="14544" PostTypeId="2" ParentId="14543" CreationDate="2010-10-25T18:41:10.900" Score="8" ViewCount="" Body="&lt;p&gt;If your boss has specifically said not to do X, then don't do X.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I go crazy at work with down time unless I find something constructive to do.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's an opportunity.  Learn something new, but don't disobey a direct order because you don't want to be bored.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-10-25T18:41:10.900" CommentCount="2" />
  <row Id="14545" PostTypeId="2" ParentId="14543" CreationDate="2010-10-25T18:41:12.507" Score="0" ViewCount="" Body="&lt;p&gt;I have no idea of the politics of the situation -- and you might not either. Perhaps asking the question is opening a big can of worms your boss doesn't want to open?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you tried asking your boss again, explaining your reason why these answers would be helpful? If there is a value proposition, you've got a better shot at getting the answer.&lt;/p&gt;&#xA;" OwnerUserId="3762" LastActivityDate="2010-10-25T18:41:12.507" />
  <row Id="14546" PostTypeId="2" ParentId="14543" CreationDate="2010-10-25T18:41:32.647" Score="3" ViewCount="" Body="&lt;p&gt;Your manager probably said so for a reason.  In many organizations the bean counters don't understand that sometimes there is downtime and sometimes there is crunch time.  All they see is time.  If you're at a point in the cycle where most of your time is spent awaiting QA they'll see that as wasteful overhead instead of seeing the case where you're frantically attempting to catch up to a deadline.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More than likely, your manager is shielding you from things that shouldn't worry you.  Just ask him why.  Tell him you'd like to push back the viel of office politics to see what he's not showing you.  Trust in him.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-25T18:41:32.647" CommentCount="2" />
  <row Id="14547" PostTypeId="2" ParentId="14543" CreationDate="2010-10-25T18:43:00.997" Score="0" ViewCount="" Body="&lt;p&gt;Trying to get the answer to your questions will actually be an indication you are problem solver. Companies like problem solvers and tend to reward them with promotions, better work conditions, or wiht public rewards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So go ahead. Show you are someone that people in your organization can count on!&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-25T18:43:00.997" CommentCount="4" />
  <row Id="14548" PostTypeId="2" ParentId="1166" CreationDate="2010-10-25T18:43:25.617" Score="0" ViewCount="" Body="&lt;p&gt;I've noticed that the people who complain the loudest about dress codes tend to be the worst developers.  Would you ignore the company's documentation or testing standards just because they're &quot;too formal&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oddly enough, the best developers at my company tend to be &quot;old school&quot; guys who wear slacks and button-down shirts with loafers.  Probably because that's what they've been wearing for years, so they've got a closet full of 'em...&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-10-25T18:43:25.617" CommunityOwnedDate="2011-01-30T18:03:58.527" CommentCount="6" />
  <row Id="14549" PostTypeId="2" ParentId="14543" CreationDate="2010-10-25T18:44:44.240" Score="8" ViewCount="" Body="&lt;p&gt;Short answer: No. Your boss is concerned about visibility of an unfunded project - meaning he doesn't want you poking around about it and raising awareness of what you are working on. In some organizations working on an unfunded side project is the same as not working at all, and advertising that may make things difficult for your boss and still not get you the answers you want. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Longer answer: It depends on your personal connections inside your company. What you need to do is casually get this information without scheduling meetings and sending official looking documents around that could get forwarded to the wrong person. If you have a relationship with someone who can help from a prior project, maybe ask them to lunch and pick their brain a bit. Depending on where they sit and who they talk to, you may still need to exercise some discretion. &lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-10-25T18:44:44.240" CommentCount="2" />
  <row Id="14550" PostTypeId="2" ParentId="14524" CreationDate="2010-10-25T18:52:05.607" Score="5" ViewCount="" Body="&lt;p&gt;If you are doing development in .NET you can get inexpensive or free static analysis of your code with a tool like FxCop (&lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=917023f6-d5b7-41bb-bbc0-411a7d66cf3c&amp;amp;displaylang=en&quot; rel=&quot;nofollow&quot;&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=917023f6-d5b7-41bb-bbc0-411a7d66cf3c&amp;amp;displaylang=en&lt;/a&gt;). This does not cover best practices for the PROCESS of creating software but it does cover a lot of things that tend to wind up in best practices documents. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You did say &quot;I want my existing code to be analyzed and a better solution be suggested to improve the quality of the code.&quot; so I think that FxCop would be a good place to start IF you are doing .NET development. I would imagine that there are similar static analysis tools for Java or other environments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-10-25T18:52:05.607" CommentCount="2" />
  <row Id="14551" PostTypeId="1" AcceptedAnswerId="14556" CreationDate="2010-10-25T18:54:27.483" Score="8" ViewCount="451" Body="&lt;p&gt;I've been a Classic ASP web developer for the last 10 years and for the second time in two years I'm facing the possibility of being laid off. The biggest difference now is that the job market for someone with my limited skill set is actually worse than it was in 2008-2009. Years ago I took a diploma course in ASP.NET web development but was unable to translate that into a job; since then, I've kept up my .NET skills on my own but have never been able to break through the 'no work experience' barrier, and I haven't been given the opportunity to work with .NET at any of the jobs I've held (including my current position, where they broke the promise they made at my hiring to send me out for training).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I'm wondering if it's even possible to self-teach and turn that knowledge into a paying position? Is the 'no work experience' catch-22 worse with Microsoft technologies than it is for others, or is it basically the same for all programming languages? I had considered joining open-source projects or doing volunteer work as a way to bootstrap myself in a new language, but the project listings I read all wanted experience with references. Is there any way to reboot my career at this point?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; I'm curious about the job market for open-source languages vs. MS languages. Is it easier to get a job as, say, a self-taught Ruby programmer than a self-taught C# programmer? The last time I scanned through Craigslist it seemed like all of the grassroots/startup opportunities were all PHP, Ruby, etc.&lt;/p&gt;&#xA;" OwnerUserId="6391" LastEditorUserId="6391" LastEditorDisplayName="" LastEditDate="2010-10-26T14:38:28.320" LastActivityDate="2010-10-26T14:38:28.320" Title="How can I get a job without work experience?" Tags="&lt;career-advice&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="1" />
  <row Id="14552" PostTypeId="2" ParentId="14512" CreationDate="2010-10-25T18:55:22.807" Score="3" ViewCount="" Body="&lt;p&gt;I have had co-workers who did this and usually they produced less work of poorer quality than when they were in the office. In fact it deteriorated so badly, we had to let some of them go. If you have a sitter who is watching the children, it's ok, but you cannot work and watch children at the same time and any parent worth his or her salt will make the child's needs the priority. If you are staying home to save child care costs, then you might as well quit. If you have someone else watching the children and you have a place where you can work with a door that will lock, then it can work but you have to be very disciplined about work hours vice home hours.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-25T18:55:22.807" />
  <row Id="14553" PostTypeId="2" ParentId="14474" CreationDate="2010-10-25T18:59:02.853" Score="2" ViewCount="" Body="&lt;p&gt;Everyone here mentioned a lot of IDE tools to use for source control. But from what I've seen generally the largest problem with source control is organization. The directory structure can make your life 10 times easier with a project that multiple people are working on. People take the branching feature for granted but don't realize that without the proper structure branching can be a pain. Setting up source control on another computer can be a pain if the user doesn't choose the same exact path as the original user. There are so many gotchas with source control that experienced developers take for granted I would have loved for someone to warn me of these situations before I had to learn the hard way. Most of them can be solved with a good directory structure. Here's an example.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;$/{ProjectName}&#xA;    /Main&#xA;        /Branches&#xA;        /Trunk&#xA;            /Docs (documentation)&#xA;            /External (external dll's referenced outside the project)&#xA;            /Scripts (build scripts, install scripts, +)&#xA;            /Source (all source code)&#xA;            /Tests (unit tests, stress tests, etc)&#xA;            /Tools (tools for building or installing example: nant, ilmerge)&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Of course for a new programmer there are many features here that are &quot;excessive&quot; but having the structure in place and realizing that it makes a difference are a big help. &lt;/p&gt;&#xA;" OwnerUserId="6421" LastActivityDate="2010-10-25T18:59:02.853" CommentCount="1" />
  <row Id="14554" PostTypeId="2" ParentId="14551" CreationDate="2010-10-25T19:02:14.720" Score="2" ViewCount="" Body="&lt;p&gt;I've seen evidence to the contrary. I've had a number of recruiters call me looking for someone with classic ASP skills and having trouble locating people because no one wants to work with such an old technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice would be to look for a job that still uses the old technology, but is considering an upgrade to ASP.NET and learn on that job. That might be a good bridge to keep your career going.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-25T19:02:14.720" />
  <row Id="14555" PostTypeId="2" ParentId="9465" CreationDate="2010-10-25T19:07:21.970" Score="2" ViewCount="" Body="&lt;p&gt;I have enjoyed using the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.cloudberrylab.com/&quot; rel=&quot;nofollow&quot;&gt;CloudBerry Explorer freeware (there are other Azure tools available from them as well)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Red Gate SQL Compare and SQL Data Compare - free trial versions available with easy survey, go to &lt;a href=&quot;http://www.surveymk.com/s/JN8QTZ3&quot; rel=&quot;nofollow&quot;&gt;www.surveymk.com/s/JN8QTZ3&lt;/a&gt;  (sorry I can't link it since I'm a new user and you cannot have more than 1 hyperlink in a post)&lt;/p&gt;&#xA;" OwnerUserId="6423" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-10-25T20:30:29.927" LastActivityDate="2010-10-25T20:30:29.927" />
  <row Id="14556" PostTypeId="2" ParentId="14551" CreationDate="2010-10-25T19:08:09.003" Score="6" ViewCount="" Body="&lt;p&gt;I too was in your position about three years ago but slightly worse I would say. No degree, no experience, but I wanted to learn. I posted my resume on a couple sites and after a few weeks I got an interview. They were only hiring for someone to do some easy web development work, not really my cup of tea but I took the job and while I was there I was continuously looking for new things to learn. I am 100% self taught if you get the hang of programming theory you can teach yourself any language or any technology. The best way to learn is to take a junior position somewhere and work under an experienced programmer. They will teach you so much if you're willing to listen to their advice. Getting a job with ASP will be a lot easier if you have some other skill sets that include XML, JavaScript (JQuery or Prototype), SQL. There are plenty of companies (mine included) that would hire someone without much experience if they seemed to have a good head on their shoulders in the interview and seemed willing to learn.&lt;/p&gt;&#xA;" OwnerUserId="6421" LastActivityDate="2010-10-25T19:08:09.003" CommentCount="3" />
  <row Id="14558" PostTypeId="2" ParentId="12416" CreationDate="2010-10-25T19:16:06.207" Score="1" ViewCount="" Body="&lt;p&gt;Google claims the top research institutes for EEC are:&#xA;&lt;a href=&quot;http://www.google.com/Top/Computers/Computer_Science/Research_Institutes/&quot; rel=&quot;nofollow&quot;&gt;http://www.google.com/Top/Computers/Computer_Science/Research_Institutes/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft's list:&#xA;&lt;a href=&quot;http://academic.research.microsoft.com/CSDirectory/org_category_24.htm&quot; rel=&quot;nofollow&quot;&gt;http://academic.research.microsoft.com/CSDirectory/org_category_24.htm&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4317" LastEditorUserId="4317" LastEditorDisplayName="" LastEditDate="2010-10-26T12:55:01.457" LastActivityDate="2010-10-26T12:55:01.457" />
  <row Id="14559" PostTypeId="2" ParentId="14551" CreationDate="2010-10-25T19:21:02.697" Score="3" ViewCount="" Body="&lt;p&gt;Are you able and &lt;em&gt;willing&lt;/em&gt; to learn? Let those interviewing you see that passion.&lt;/p&gt;&#xA;" OwnerUserId="5400" LastActivityDate="2010-10-25T19:21:02.697" />
  <row Id="14560" PostTypeId="2" ParentId="14512" CreationDate="2010-10-25T19:21:18.220" Score="3" ViewCount="" Body="&lt;p&gt;I could never figure it out with an infant. I could get work done but I lost all kinds of productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the kid is old enough to play safely within ear shot (at least 4 years old in my experience) then maybe, depending on the kid. My daughter I could work at home while she played with no problem. My first son I had to keep an eye on but generally there wasn't much problem.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My second son... forget it, he doesn't stop getting into things or climbing or figuring out how to get outside. I cannot even watch a 30 minute television show, let alone getting deep into programming.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-10-25T19:21:18.220" />
  <row Id="14561" PostTypeId="2" ParentId="14525" CreationDate="2010-10-25T19:28:20.737" Score="3" ViewCount="" Body="&lt;p&gt;It completely depends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Normalized / unnormalized DB designs both have their advantages and disadvantages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My first DB design was a normalized thing of beauty.  It was flexible and extensible.  It was also an incredible PITA for anyone except myself to deal with on the code level, and it was a mild PITA for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My next attempt was a flat structure, and it was (a) a lot faster and (b) a lot easier to code with.  And it won't be a huge chore to normalize more later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So it may be a smell but some other DB design will have its own delightful array of smells.&lt;/p&gt;&#xA;" OwnerUserId="5493" LastActivityDate="2010-10-25T19:28:20.737" CommentCount="1" />
  <row Id="14562" PostTypeId="2" ParentId="14543" CreationDate="2010-10-25T19:29:51.517" Score="1" ViewCount="" Body="&lt;p&gt;If you bypass your boss then you could well be perceived:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;by your client to be committing to a deliverable that is unfunded&lt;/li&gt;&#xA;&lt;li&gt;by your boss (and his bosses) as ill disciplined and untrustworthy&lt;/li&gt;&#xA;&lt;li&gt;by your co-workers as unreliable or attention seeking, perhaps a smart alec.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But it's your career, not mine...&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-10-25T19:29:51.517" CommentCount="3" />
  <row Id="14563" PostTypeId="2" ParentId="14551" CreationDate="2010-10-25T19:35:40.447" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Who do you know?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a bit of a newbie in the industry, and have been in it for ~2.5 years.  I don't have any formal training in form of a college degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I landed my first job because I knew somebody who has seen some of my personal projects. So he knew that I was good at picking up on new stuff. I had only been working with C and Python, and it was an ASP.NET shop. Granted, ASP.NET is easy stuff, I was working efficiently in it after the first few days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Really, if you know somebody who can vouch for you, and you are confident that you can actually do the work, then you should be able to find a job.&lt;/p&gt;&#xA;" OwnerUserId="5042" LastActivityDate="2010-10-25T19:35:40.447" />
  <row Id="14564" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T19:42:18.320" Score="1" ViewCount="" Body="&lt;p&gt;I wanted to create metadata files for each file in a directory (i.e. for every file &lt;code&gt;somedir/foo.bin&lt;/code&gt;, I'd want to create a file &lt;code&gt;somedir/foo.bin.meta&lt;/code&gt;). For some stupid reason I decided to create the files by opening and closing a file stream via Python:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for fn in os.listdir(path):&#xA;    open(os.path.join(path, fn), 'w').close()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;For some even stupider reason I thought it was clever to test this script against a directory on my harddrive with several gigs of personal data on it. Only after running it I realized that I had forgot to actually &lt;em&gt;modify&lt;/em&gt; the filename prior to passing it to &lt;code&gt;open&lt;/code&gt; and that I had just truncated every single file in that directory (ouch).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Luckily that was on a personal computer and didn't cause any damage to anything important, but I still learned my lesson.&lt;/p&gt;&#xA;" OwnerUserId="2734" LastActivityDate="2010-10-25T19:42:18.320" CommunityOwnedDate="2011-01-13T19:43:02.007" />
  <row Id="14565" PostTypeId="2" ParentId="14551" CreationDate="2010-10-25T19:43:38.453" Score="1" ViewCount="" Body="&lt;p&gt;I absolutely used freelance, personal, and consulting references on my resumé and they made a big difference in getting my current job. Code samples and working websites are useful, no matter who paid you, or if you got paid, for the work. I switched from Java/C to .NET. I still do some Java, php, classic ASP, and more. The more you know, the easier it is to pick up different languages and frameworks.&lt;/p&gt;&#xA;" OwnerUserId="3564" LastActivityDate="2010-10-25T19:43:38.453" />
  <row Id="14566" PostTypeId="2" ParentId="14524" CreationDate="2010-10-25T19:45:00.737" Score="2" ViewCount="" Body="&lt;p&gt;For C# code as well as FxCop (as mentioned by Todd) there's &lt;a href=&quot;http://code.msdn.microsoft.com/sourceanalysis&quot; rel=&quot;nofollow&quot;&gt;StyleCop&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;StyleCop analyzes C# source code to enforce a set of style and consistency rules. It can be run from inside of Visual Studio or integrated into an MSBuild project.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It checks for different, complementary, things and can be useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Though, as for FxCop, don't run &lt;em&gt;all&lt;/em&gt; your code through it in one go. The &quot;errors&quot; will overwhelm you.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-25T19:45:00.737" />
  <row Id="14567" PostTypeId="2" ParentId="10930" CreationDate="2010-10-25T19:51:20.447" Score="6" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/cCqxS.png&quot; alt=&quot;This is how I explain computer problems to my cat. My cat usually seems happier than me.&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alt text: This is how I explain computer problems to my cat. My cat usually seems happier than me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From &lt;a href=&quot;http://xkcd.com/722&quot; rel=&quot;nofollow&quot;&gt;http://xkcd.com/722&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2448" LastActivityDate="2010-10-25T19:51:20.447" CommentCount="1" />
  <row Id="14569" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T20:02:35.290" Score="0" ViewCount="" Body="&lt;p&gt;Definitely TSQL mishap - too many TSQL statements in one editor window.  Was a bit tired, and people were interrupting me left and right, and I issued a command that updated 47,000 records address, city, state, and zip - oops.  Had it fixed in about 25 minutes, though.&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2010-10-25T20:02:35.290" CommunityOwnedDate="2011-01-13T19:43:02.007" />
  <row Id="14570" PostTypeId="1" CreationDate="2010-10-25T20:05:30.040" Score="7" ViewCount="344" Body="&lt;p&gt;When a new programming language or framework gets introduced (or I come across it the first time ), I want to play with it to get a handle on how things work in that new way. Can you recommend  any good  list of small apps to be built, that can get me up to speed with the new technology ?. A sort of todo list that can be done on a weekend... tiny software solutions that can be implemented quickly.    &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be more concrete ....&lt;br&gt;&#xA;1) print out &quot;Hello World !&quot; to the standard console&lt;br&gt;&#xA;2) declare, initialize, populate, read  an array/collection&lt;br&gt;&#xA;3) create, read from , write to , and finally close a file&lt;br&gt;&#xA;4) ?&lt;br&gt;&#xA;5) ?&lt;br&gt;&#xA;6) ?&lt;br&gt;&#xA;.&lt;br&gt;&#xA;. &#xA;..... tasks getting progressively involved .. &#xA;.&lt;br&gt;&#xA;.&#xA;.&lt;br&gt;&#xA;&lt;strong&gt;??) ?&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-10-31T17:31:01.997" Title="TODO list to play with a new programming language/framework/platform" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;experience&gt;&lt;self-improvement&gt;&lt;programming&gt;" AnswerCount="6" CommentCount="6" FavoriteCount="3" />
  <row Id="14571" PostTypeId="2" ParentId="10930" CreationDate="2010-10-25T20:05:40.247" Score="2" ViewCount="" Body="&lt;p&gt;You could have the child tell you how to do something (this should be a task that the child fully understands how to do).  Then play the following game:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ask the kid to give you very specific instructions.  &lt;/li&gt;&#xA;&lt;li&gt;Follow the instructions the child gives you, as he/she says them.  &lt;/li&gt;&#xA;&lt;li&gt;If you feel that his/her instructions are too high-level, ask for clarification.  &lt;/li&gt;&#xA;&lt;li&gt;Deliberately mis-interpret vague instructions.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This should help to explain how you instruct a computer to these certain tasks.  You can then explain that once you teach the computer how to do something, it can repeat that task over and over again, very quickly:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Imagine if you could teach a computer to clean your room for you!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1466" LastActivityDate="2010-10-25T20:05:40.247" CommentCount="1" />
  <row Id="14572" PostTypeId="2" ParentId="1166" CreationDate="2010-10-25T20:07:19.403" Score="3" ViewCount="" Body="&lt;p&gt;Dress codes are good if you are in consistent contact with customers.  I think that if you don't have any physical (or video) interactions with customers, some medium between business-casual and casual is reasonable for programmer-types.&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2010-10-25T20:07:19.403" CommunityOwnedDate="2011-01-30T18:03:58.527" />
  <row Id="14573" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T20:10:58.980" Score="1" ViewCount="" Body="&lt;p&gt;I'll just whip something up.  I don't need requirements.  It should be ready for production in an hour.&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2010-10-25T20:10:58.980" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="1" />
  <row Id="14574" PostTypeId="2" ParentId="14570" CreationDate="2010-10-25T20:12:12.190" Score="4" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Write a set of classes to demonstrate OO Principles(inheritence, polymorphism, interfaces)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Write a simple UI to take in User Input and display it back.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Execute CRUD against a database.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2283" LastActivityDate="2010-10-25T20:12:12.190" CommentCount="1" />
  <row Id="14575" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T20:12:18.923" Score="21" ViewCount="" Body="&lt;p&gt;My biggest mistake was to think that programming is easy money...&lt;/p&gt;&#xA;" OwnerUserId="3410" LastActivityDate="2010-10-25T20:12:18.923" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="3" />
  <row Id="14576" PostTypeId="2" ParentId="3629" CreationDate="2010-10-25T20:14:16.527" Score="0" ViewCount="" Body="&lt;p&gt;My MP3 player.  Everyone knows that when I've got earbuds in, they should leave me the hell alone.&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2010-10-25T20:14:16.527" CommunityOwnedDate="2010-10-25T20:14:16.527" />
  <row Id="14577" PostTypeId="2" ParentId="13782" CreationDate="2010-10-25T20:19:44.773" Score="6" ViewCount="" Body="&lt;p&gt;I work in a place where code review is now a requirement but was not as little as 3 years ago. It has made a huge improvement in in our code and in the ability of others to maintain the code later. Even senior, very experienced developers make mistakes which can easily and quietly be fixed in code review before QA finds them or worse before the customer finds them. Further at least one person other than the orginal developer is familar with the code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often when an organization tries something new to it, as we did with code review, there is much resistance to change. I have seen almost none of that (we were estatic to get a formal QA department too.) with code review. It pretty much takes only one or two reviews to see the value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have found new techniques I had not considered both in doing a code review of someone else's work or in having my code reviewed. We have found competence problems with new hires relatively quickly by having code reviews and more importantly by how they responded to the code review.  We have learned what thing sseem perfectly clear right now in the thick of programming that section that will not be clear in maintenance. This is invaluable. It may be that the only thing needed is a comment as to why something was done. We have found some fundamental misunderstandings about our database design that needed to be corrected for a report to actually have the correct information. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often what I have seen in a code review is that, by the very act of explaining something to someone else, the developer will have a lightbulb turn on in his head and realize that there is a bug the reviewer didn't see. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And boy can code review identify those cowboy programmers who won't follow any standard or use mandated tools and whose code will be nigh onto unmaintainable by anyone else. And it can force them to get with the program or get out too. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The people most resistant to code review are often the people the organization most needs to get rid of because they know in their hearts their code can't pass a code review. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastEditorUserId="1093" LastEditorDisplayName="" LastEditDate="2010-10-26T17:37:17.263" LastActivityDate="2010-10-26T17:37:17.263" CommentCount="2" />
  <row Id="14578" PostTypeId="2" ParentId="13782" CreationDate="2010-10-25T20:23:51.637" Score="0" ViewCount="" Body="&lt;p&gt;I think that how verbose 2nd party inspection is depends on your lifecycle, whether you're more agile, or more waterfall in your processes.  I think it's reasonable to do high level designs/inspections, as well as more detail level design inspections.  I think it's also good to involve several members of a team to inspect.&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2010-10-25T20:23:51.637" />
  <row Id="14579" PostTypeId="2" ParentId="14512" CreationDate="2010-10-25T20:24:42.323" Score="3" ViewCount="" Body="&lt;p&gt;It's probably obvious, but the important thing is to have some sort of separate environment when you work, and you, your children and your spouse have to realize that you are &quot;at work&quot;, even if you're at home.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can do that (for example with a reasonably quiet home office and clear rules for &quot;at work&quot; vs &quot;at home&quot;), working at home is great because not having to commute gives you more flexibility in scheduling your time and also more net time that you can, but don't have to, use for work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The downside is that you usually don't have any colleagues around you when you work at home. I guess, depending on your colleagues, this might be a plus, but I've been working on my own for the past two years, and it starts getting tiresome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I set up shop with my startup in an office just down the street, and I think that gives me the best of both worlds.&lt;/p&gt;&#xA;" OwnerUserId="5405" LastActivityDate="2010-10-25T20:24:42.323" />
  <row Id="14580" PostTypeId="1" CreationDate="2010-10-25T20:29:41.383" Score="5" ViewCount="247" Body="&lt;p&gt;I am currently undecided between which of the following web algorithms book to buy:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1933988665&quot; rel=&quot;nofollow&quot;&gt;Algorithms of the Intelligent web by Marmanis&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1933988312&quot; rel=&quot;nofollow&quot;&gt; Collective Intelligence by Alag &lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both feature code in Java; Marmanis' book delves deeper into the core algorithms while Alag's book discusses more APIs including WEKA. I have already read Programming Collective Intelligence by Segaran and enjoyed it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any comments on these books or any other recommendations are welcome.&lt;/p&gt;&#xA;" OwnerUserId="4378" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-25T21:02:56.333" LastActivityDate="2010-12-26T16:44:06.513" Title="Which web algorithms book to get ?" Tags="&lt;books&gt;&lt;artificial-intelligence&gt;" AnswerCount="3" FavoriteCount="5" />
  <row Id="14581" PostTypeId="2" ParentId="8968" CreationDate="2010-10-25T20:39:43.897" Score="4" ViewCount="" Body="&lt;p&gt;Whenever your kid expresses interest in doing so. Apparently, &lt;a href=&quot;http://www.hanselman.com/blog/HanselminutesPodcast194HelloWorldComputerProgrammerForKidsAndOtherBeginners.aspx&quot; rel=&quot;nofollow&quot;&gt;there's kids who do so at the age of three&lt;/a&gt;, and I certainly know adults who still don't. It's hard to believe, I know, but I have friends who are 30+ and still can't program.&lt;/p&gt;&#xA;" OwnerUserId="5405" LastActivityDate="2010-10-25T20:39:43.897" CommunityOwnedDate="2011-03-04T21:09:34.713" />
  <row Id="14582" PostTypeId="1" AcceptedAnswerId="14609" CreationDate="2010-10-25T20:43:48.187" Score="5" ViewCount="338" Body="&lt;p&gt;Good afternoon&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to know how do you guys organize your project folders?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had once a boss that suggest me to organize by Customers.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Projects&#xA;|&#xA;|----Customer 1&#xA;     |---- A Cool Solution 1&#xA;           |---- source&#xA;                 |---- version1.0&#xA;                 |---- version1.1&#xA;           |---- docs&#xA;                 |---- analysis&#xA;                 |---- meetings&#xA;                 |---- manuals&#xA;|----Customer 2&#xA;|----Customer 3&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;A friend of mine told me to organize tem by Technology&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Projects&#xA;|&#xA;|----.NET&#xA;     |---- C#&#xA;          |---- Customer 1     &#xA;                |---- A Cool Solution 1&#xA;                      |---- source&#xA;                            |---- version1.0&#xA;                            |---- version1.1&#xA;                      |---- docs&#xA;                            |---- analysis&#xA;                            |---- meetings&#xA;                            |---- manuals&#xA;|----Ruby&#xA;|----PHP&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And you? Do you have a clever way to organize your project folders?&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-25T22:14:01.930" Title="How do you organize your projects folders?" Tags="&lt;organization&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="14583" PostTypeId="2" ParentId="8968" CreationDate="2010-10-25T20:45:09.370" Score="1" ViewCount="" Body="&lt;p&gt;I think 12 would be great depending on his/her interest.&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-25T20:45:09.370" CommunityOwnedDate="2011-03-04T21:09:34.713" />
  <row Id="14584" PostTypeId="1" CreationDate="2010-10-25T20:45:44.250" Score="7" ViewCount="433" Body="&lt;p&gt;When you're coding, do you actively think about your code might be exploited in ways it wasn't originally meant to do and thus gain access to protected information, run commands or something else you wouldn't want your users to do?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-12-07T15:53:32.217" Title="Do you actively think about security when coding?" Tags="&lt;security&gt;" AnswerCount="13" CommentCount="2" FavoriteCount="2" />
  <row Id="14585" PostTypeId="2" ParentId="13396" CreationDate="2010-10-25T20:51:18.257" Score="2" ViewCount="" Body="&lt;h1&gt;TargetProcess&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;You can:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;track bugs &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;track requests &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;track time-sheets &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;track user stories&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;track releases&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.targetprocess.com&quot; rel=&quot;nofollow&quot;&gt;http://www.targetprocess.com&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-25T20:51:18.257" />
  <row Id="14586" PostTypeId="2" ParentId="14584" CreationDate="2010-10-25T20:52:49.623" Score="2" ViewCount="" Body="&lt;p&gt;Yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(what, you wanted more? :-) )&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-25T20:52:49.623" CommentCount="1" />
  <row Id="14587" PostTypeId="2" ParentId="14584" CreationDate="2010-10-25T20:54:10.750" Score="1" ViewCount="" Body="&lt;p&gt;Absolutely.  I think about injection vulnerabilities, and also how my business logic will work in a desktop environment versus a web environment, and how security is implemented in both types of environments.&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2010-10-25T20:54:10.750" />
  <row Id="14588" PostTypeId="2" ParentId="14584" CreationDate="2010-10-25T20:54:26.843" Score="3" ViewCount="" Body="&lt;p&gt;I use industry-standard practices, like using SQL parameters.  I use &quot;safe&quot; platforms, like the .NET Framework, and take advantage of security features like anti-forgery tokens in ASP.NET MVC.  I don't write my own encryption algorithms, but I do understand what those encryptions provide in the way of security benefits, and when I need to use them to obtain those security benefits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, I use best practices, but I don't develop my own security tools.  I am not a security expert in that regard; I rely on other security experts, who have presumably already thought deeply about these issues, and have a clear understanding of the risks and benefits.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My fundamental approach to security, beyond simply using security tools, is to eliminate all possible input to the system except that which I am expecting.  If I have a social security number field, the only characters that should actually show up are numeric digits and dashes, in a specific pattern.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I validate user input on both the client and the server.  &lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-27T21:42:02.290" LastActivityDate="2010-11-27T21:42:02.290" CommentCount="4" />
  <row Id="14589" PostTypeId="2" ParentId="14584" CreationDate="2010-10-25T20:55:25.017" Score="0" ViewCount="" Body="&lt;p&gt;Yes. Security is important, and shouldn't be an afterthought; adding security after the fact is generally more difficult than designing it into the application in the first place, and if you add it in later you'll probably miss some things (or just not bother adding it in at all).&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-25T20:55:25.017" />
  <row Id="14590" PostTypeId="2" ParentId="14584" CreationDate="2010-10-25T20:55:50.117" Score="5" ViewCount="" Body="&lt;p&gt;Kindof. Disclaimer: I'm a security guy ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the way I work is that I have my threat model, which describes what kind of attacks by what kind of attackers are likely. That helps to work out the security requirements. When I'm actually coding, I do the usual &quot;safe coding&quot; practices like being careful that cursor variables are always within bounds, tainted input is sanitised, error conditions are handled. Then I go back to my threat model to see which modules are most likely to get targeted by attackers; those get some extra review. &lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-10-25T20:55:50.117" />
  <row Id="14591" PostTypeId="2" ParentId="14582" CreationDate="2010-10-25T20:59:34.653" Score="1" ViewCount="" Body="&lt;p&gt;I have a structure that loosely looks like the following:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;~/&#xA;|-- Developer/&#xA;|   |-- Projects/&#xA;|   |   |-- Archives/&#xA;|   |   |-- Current/&#xA;|   |   |-- Work/&#xA;|-- Projects -&amp;gt; ~/Developer/Projects/Current&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Archives&lt;/code&gt; contains old projects I'm no longer working on. &lt;code&gt;Work&lt;/code&gt; contains work-related projects. &lt;code&gt;Current&lt;/code&gt; is all current development. Then, in my home directory, I symlink &lt;code&gt;Projects&lt;/code&gt; to &lt;code&gt;~/Developer/Projects/Current&lt;/code&gt;. &lt;code&gt;~/Projects&lt;/code&gt; also includes symlinks to some work projects.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-25T20:59:34.653" />
  <row Id="14592" PostTypeId="2" ParentId="14584" CreationDate="2010-10-25T21:03:08.393" Score="2" ViewCount="" Body="&lt;p&gt;Absolutely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Security is everything. And with numerical software, that goes twice.&lt;br&gt;&#xA;Just the other day, a user managed to find and exploit the bug in one of my old programs. The damage was unreparable. &lt;em&gt;See below:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/SvIZh.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;It used to be round.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-25T21:03:08.393" CommentCount="3" />
  <row Id="14593" PostTypeId="2" ParentId="14582" CreationDate="2010-10-25T21:04:00.123" Score="0" ViewCount="" Body="&lt;p&gt;Hi,&#xA;I think that you means &quot;documentation folder&quot;.&#xA;I organise my documents for sector first at all, after for customer/application, at the end for &quot;developing and maintenance&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example:&#xA;Projects&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Financial&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Web application&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;App Alpha&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; - source&#xA; - functional docs&#xA; - etc etc (testing, meeting with customer)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;App Beta&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; - functional docs&#xA; - etc etc (testing, meeting with customer)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Desktop software      &lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Energy &amp;amp; utilities&lt;/li&gt;&#xA;&lt;li&gt;BLA BLA&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6330" LastActivityDate="2010-10-25T21:04:00.123" CommentCount="2" />
  <row Id="14594" PostTypeId="2" ParentId="13396" CreationDate="2010-10-25T21:04:02.807" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.mantisbt.org/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Mantis&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i thought mantis was easy to use as far as bug/feature tracking goes.&lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-10-25T21:04:02.807" CommentCount="1" />
  <row Id="14595" PostTypeId="2" ParentId="14582" CreationDate="2010-10-25T21:06:39.400" Score="3" ViewCount="" Body="&lt;p&gt;I'm pretty flat:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;/Projects&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some varation getting there depending on box, but behind that there are just lots of individual folders for projects. Real deal lives in source control anyhow, so this is just the temporary local home. &lt;/p&gt;&#xA;" OwnerUserId="3762" LastActivityDate="2010-10-25T21:06:39.400" CommentCount="1" />
  <row Id="14596" PostTypeId="1" AcceptedAnswerId="14678" CreationDate="2010-10-25T21:15:49.127" Score="7" ViewCount="162" Body="&lt;p&gt;My manager has talked with me and says that the quality of my work is excellent, but I need to step up the quantity of how much I crank out. I've only been working for a couple of years, so I still feel like I have a lot to learn. Which route do I take (or is there another?):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quantity: If they want crap, I can give them lots of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quality: Ignore the request, and hope that my productivity will increase with experience.&lt;/p&gt;&#xA;" OwnerUserId="5400" LastEditorUserId="5400" LastEditorDisplayName="" LastEditDate="2010-10-25T21:40:16.000" LastActivityDate="2010-10-26T09:24:05.333" Title="Where do you draw the line between quantity and quality?" Tags="&lt;productivity&gt;&lt;work-environment&gt;&lt;code-quality&gt;&lt;management&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="14597" PostTypeId="2" ParentId="14596" CreationDate="2010-10-25T21:24:43.847" Score="2" ViewCount="" Body="&lt;p&gt;Start thinking of projects more generically, start building your own frameworks for things and as time progresses your toolkit will grow to such a degree that you will start to be able to snap together old projects to create new ones, that is when the quantity will grow whilst maintaining quality.&lt;/p&gt;&#xA;" OwnerUserId="5010" LastActivityDate="2010-10-25T21:24:43.847" />
  <row Id="14598" PostTypeId="2" ParentId="14580" CreationDate="2010-10-25T21:31:15.960" Score="2" ViewCount="" Body="&lt;p&gt;I personally really enjoyed &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596529325&quot; rel=&quot;nofollow&quot;&gt;Programming Collective Intelligence: Building Smart Web 2.0 Applications&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-10-25T21:31:15.960" CommentCount="1" />
  <row Id="14599" PostTypeId="2" ParentId="14596" CreationDate="2010-10-25T21:32:14.187" Score="4" ViewCount="" Body="&lt;p&gt;Quality code will, in the long run, cost you less time to maintain.  Also, in theory, you should be reducing the time your QA team needs to test your code because there will be less bugs for them to document.  Finding ways to reuse components you've already coded or are in the process of coding will speed up your apparent quantity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would stick with quality if given the choice.  I'd rather be known for high quality code then for being able to spew out a lot of junk.  &lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-10-25T21:32:14.187" />
  <row Id="14600" PostTypeId="2" ParentId="14596" CreationDate="2010-10-25T21:36:44.700" Score="1" ViewCount="" Body="&lt;p&gt;It is a matter of how you define quantity?  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Number of lines? &#xA;-- Bad metric&lt;/li&gt;&#xA;&lt;li&gt;Use cases addressed&#xA;-- Good Metric&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;To me it is a matter of perspective.  If I write 10k lines of code to solve a problem and another needs merely 200 lines of code along with an open source library which is more productive?  A matter of opinion.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, when it comes down to it your manager is the one making these opinions so you need to understand how he places metrics of developers productivity and how does he explicitly quantify quantity for you to better understand.&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-25T21:36:44.700" />
  <row Id="14601" PostTypeId="1" CreationDate="2010-10-25T21:41:10.960" Score="18" ViewCount="432" Body="&lt;p&gt;What do you do with your old books that either cover old versions of languages or just become too dated?  And I mean books that focus on out-dated things and contain no best practice / timeless stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think I could sell or give them away and I think that giving them to charity seems pointless because it will just sit in there shops not getting sold.&lt;/p&gt;&#xA;" OwnerUserId="5010" LastActivityDate="2010-10-26T13:37:34.027" ClosedDate="2010-10-27T21:44:20.440" Title="What to do with old computing books?" Tags="&lt;books&gt;" AnswerCount="12" CommentCount="2" FavoriteCount="1" />
  <row Id="14602" PostTypeId="2" ParentId="14601" CreationDate="2010-10-25T21:42:02.617" Score="10" ViewCount="" Body="&lt;p&gt;Throw them out or recycle them?  Unless they're of historical value, they're just junk.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-25T21:42:02.617" CommentCount="4" />
  <row Id="14603" PostTypeId="2" ParentId="3849" CreationDate="2010-10-25T21:43:21.930" Score="1" ViewCount="" Body="&lt;p&gt;A great programmer is one that I know will do a better job at solving a problem than I will.  All programmers are egotistical about their own code (even if we don't immediately admit it) so this is a big thing.&lt;/p&gt;&#xA;" OwnerUserId="158" LastActivityDate="2010-10-25T21:43:21.930" />
  <row Id="14604" PostTypeId="2" ParentId="14601" CreationDate="2010-10-25T21:43:32.037" Score="13" ViewCount="" Body="&lt;p&gt;Monitor Mounts/Height Boosters&lt;/p&gt;&#xA;" OwnerUserId="5400" LastActivityDate="2010-10-25T21:43:32.037" CommentCount="6" />
  <row Id="14605" PostTypeId="2" ParentId="14601" CreationDate="2010-10-25T21:45:37.700" Score="4" ViewCount="" Body="&lt;p&gt;You can donate them and get a few dollars of tax deduction (in the US).&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-25T21:45:37.700" CommentCount="4" />
  <row Id="14606" PostTypeId="2" ParentId="14601" CreationDate="2010-10-25T21:48:01.057" Score="14" ViewCount="" Body="&lt;p&gt;Put them in your garage/attic and read them again in 20+ years.  I just found an AppleSoft BASIC book the other day and had a great read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or get a bunch of like-minded programmers with all their old books and open a &lt;a href=&quot;http://programmers.stackexchange.com/questions/11371/what-would-be-a-fair-payment-structure-for-membership-to-a-hacker-cafe&quot;&gt;hacker library&lt;/a&gt;?&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="2274" LastEditorDisplayName="" LastEditDate="2010-10-25T22:53:43.103" LastActivityDate="2010-10-25T22:53:43.103" CommentCount="4" />
  <row Id="14607" PostTypeId="2" ParentId="14601" CreationDate="2010-10-25T21:48:59.333" Score="4" ViewCount="" Body="&lt;p&gt;Depends on how outdated they are.  Visual Studio 2003 is outdated, but I know a company that is still using it.  Try donating them to a library.  Or offer them for free to the students of the nearest university's computer science department.  Somebody will find a use for them.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-25T21:48:59.333" />
  <row Id="14608" PostTypeId="2" ParentId="14474" CreationDate="2010-10-25T21:50:08.810" Score="0" ViewCount="" Body="&lt;p&gt;I have to recommend Perforce, it's expensive but free for two users and really really good.&lt;/p&gt;&#xA;" OwnerUserId="158" LastActivityDate="2010-10-25T21:50:08.810" />
  <row Id="14609" PostTypeId="2" ParentId="14582" CreationDate="2010-10-25T21:54:35.443" Score="2" ViewCount="" Body="&lt;p&gt;This is what we've been using:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Projects&#xA;|&#xA;|----Customer A&#xA;     |---- Project 1&#xA;     |     |---- BuildControl       (CI/nAnt/Make/MSBuild files and config, etc)&#xA;     |     |---- Documentation      (In XML format so we can 'build' them)&#xA;     |     |---- Source&#xA;     |     |     |---- Component X&#xA;     |     |     |---- Component X.tests&#xA;     |     |     |---- Component Y &#xA;     |     |     |---- Component Y.tests&#xA;     |     |---- Testing&#xA;     |     Project 1.sln      (Has folders as per project on-disk structure)&#xA;     |---- Project 2&#xA;     |---- Shared/Common components&#xA;|----Customer B&#xA;|----Customer C&#xA;|----&amp;lt;Our Company&amp;gt;&#xA;     |---- Internal Project A&#xA;     |---- Internal Library B&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;We've been using this structure for multiple projects with many different customers for years now and it works very well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's very similar to your initial suggestion, but we use version control to manage the versioning. The server repositories are named as &quot;Customer X - Project Y&quot;, rather than anything else. This allows us to have external contractors working on some projects but not able to access others as we can set permissions at the version control root.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everyone checks out their working copies to wherever they want on their (Windows) dev machine and uses the SUBST command to map a drive letter to that location. That way we can have hard-coded relative paths in build files, etc, that work across everyones' setup. So, for example, we can have links to shared libraries, if we so wish. We usually use version control links/aliases to achieve this tho.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One big benefit of this structure is that you can isolate customers' code from each other. This is useful if you need to (a) send them regular updates of the source for integration purposes, (b) have external contractors working on selected parts of the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your second suggestion won't work so well with a complex project which uses more than one technology.&lt;/p&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-10-25T22:14:01.930" LastActivityDate="2010-10-25T22:14:01.930" />
  <row Id="14610" PostTypeId="1" AcceptedAnswerId="14616" CreationDate="2010-10-25T21:55:56.037" Score="8" ViewCount="233" Body="&lt;p&gt;Have you ever encountered a case of code duplication where, upon looking at the lines of code, you couldn't fit a thematic abstraction to it that faithfully describes its role in the logic? And what did you do to address it? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is code duplication, so ideally we need to do some refractoring, like for example making it its own function. But since the code doesn't have a good abstraction to describe it the result would be a strange function that we can't even figure out a good name for, and whose role in the logic is not obvious just from looking at it. That, to me, hurts the clarity of the code. We can preserve clarity and leave it as it is but then we hurt maintainability. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think is the best way to address something like this? &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-25T22:11:54.820" LastActivityDate="2010-10-25T22:39:00.613" Title="Code duplication with no obvious abstraction" Tags="&lt;design&gt;&lt;maintenance&gt;&lt;refactoring&gt;" AnswerCount="4" />
  <row Id="14611" PostTypeId="2" ParentId="14610" CreationDate="2010-10-25T22:04:30.363" Score="3" ViewCount="" Body="&lt;p&gt;Personally I ignore it and move on.  Chances are if it is that odd a case it is better to have it duplicated, you could spend ages refactoring and the next dev will take one look and undo your change!&lt;/p&gt;&#xA;" OwnerUserId="5010" LastActivityDate="2010-10-25T22:04:30.363" />
  <row Id="14612" PostTypeId="2" ParentId="14596" CreationDate="2010-10-25T22:05:46.787" Score="2" ViewCount="" Body="&lt;p&gt;If you are currently writing good code, I guarantee you that you will get faster and faster as you get more experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are currently writing code quickly, there is absolutely no guarantee that you will &lt;em&gt;ever&lt;/em&gt; write higher quality code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I would say that you are on the right track.&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-10-25T22:05:46.787" />
  <row Id="14613" PostTypeId="2" ParentId="14601" CreationDate="2010-10-25T22:07:26.773" Score="2" ViewCount="" Body="&lt;p&gt;There is a book drop-box in the parking lot of one of our nearby supermarkets, so I put them in there.  I feel marginally better about doing that then putting them into the recycling bin.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Actually, I just checked and our town's recycling program does not accept hard-bound books.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-10-25T23:06:07.160" LastActivityDate="2010-10-25T23:06:07.160" />
  <row Id="14614" PostTypeId="2" ParentId="14582" CreationDate="2010-10-25T22:10:31.477" Score="1" ViewCount="" Body="&lt;p&gt;I also have a flat structure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;/Projects&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Agreeing with Wyatt Barnett, real deal lives in source control anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just want to add that there shouldn't be anything special about folder structure anyway, since many IDEs provide shortcuts to recent projects/files anyway.  And how many projects does anyone work on anyway?  Truly, only by definition, the recent ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I only add recent projects into top level folder anyway.  I archive all the older and completed stuff into:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;/Projects/Old_stuff&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;or something like that. I archive what I generally won't be working on again.&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-10-25T22:10:31.477" CommentCount="1" />
  <row Id="14615" PostTypeId="2" ParentId="14601" CreationDate="2010-10-25T22:11:47.113" Score="4" ViewCount="" Body="&lt;p&gt;Half-price books. You get a small chunk of spare change, and later some other guy gets to pick up that book for a buck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've got tons of computing books that are a little outdated, but were at half-price for like literally a dollar or two, so I just grabbed them on a whim. And they've been interesting, even if old-fashioned :)&lt;/p&gt;&#xA;" OwnerUserId="6167" LastActivityDate="2010-10-25T22:11:47.113" CommentCount="1" />
  <row Id="14616" PostTypeId="2" ParentId="14610" CreationDate="2010-10-25T22:13:29.530" Score="11" ViewCount="" Body="&lt;p&gt;Sometimes code duplication is the result of a &quot;pun&quot;: Two things look the same, but aren't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is possible that over-abstracting can break the true modularity of your system. Under the regime of modularity, you have to decide &quot;what is likely to change?&quot; and &quot;what is stable?&quot;. Whatever is stable gets put in the interface, while whatever is unstable gets encapsulated in the module's implementation. Then, when things do change, the change you need to make is isolated to that module.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Refactoring is necessary when what you thought was stable (e.g. this API call will always take two arguments) needs to change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, for these two duplicated code fragments, I would ask: &lt;strong&gt;Does a change required to one necessarily mean the other must be changed as well?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How you answer that question might give you better insight into what a good abstraction might be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Design patterns are also useful tools. Perhaps your duplicated code is doing a traversal of some form, and the iterator pattern should be applied.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your duplicated code has multiple return values (and that's why you can't do a simple extract method), then perhaps you should make a class that holds the values returned. The class could call an abstract method for each point that varies between the two code fragments. You would then make two concrete implementations of the class: one for each fragment. [This is effectively the Template Method design pattern, not to be confused with the concept of templates in C++. Alternatively, what you are looking at might be better solved with the Strategy pattern.]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another natural and useful way to think about it is with higher-order functions. For example, making lambdas or using anonymous inner classes for the code to pass to the abstraction. Generally, you can remove duplication, but unless there really is a relation between them [if one changes, so must the other] then you might be hurting modularity, not helping it.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-10-25T22:13:29.530" CommentCount="1" />
  <row Id="14617" PostTypeId="2" ParentId="14610" CreationDate="2010-10-25T22:13:48.413" Score="3" ViewCount="" Body="&lt;p&gt;When you encounter a situation like this, it's best to think about &quot;non-traditional&quot; abstractions.  Maybe you have a lot of duplication within a function and factoring a plain old function doesn't fit very well because you have to pass too many variables.  Here, a D/Python style nested function (with access to the outer scope) would work great.  (Yes, you could make a class to hold all that state, but if you're only using it in two functions, this is an ugly and verbose workaround for not having nested functions.)  Maybe inheritance doesn't quite fit, but a mixin would work well.  Maybe what you really need is a macro.  Maybe you should consider some template metaprogramming or reflection/introspection, or even generative programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, from a pragmatic point of view, these are all difficult if not impossible to do if your language doesn't support them and doesn't have enough metaprogramming capabilities to implement them cleanly within the language.  If this is the case, I don't know what to tell you except &quot;get a better language&quot;.  Also, learning a high-level language with lots of abstraction capabilities (like Ruby, Python, Lisp or D) might help you program better in lower-level languages where some of the techniques might still be usable, but less obvious.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-25T22:13:48.413" CommentCount="1" />
  <row Id="14618" PostTypeId="1" CreationDate="2010-10-25T22:16:17.240" Score="18" ViewCount="556" Body="&lt;p&gt;How do I not undersell myself when looking for a job but remaining honest? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm 10 months out of school and I lost my first programming job last week. I personally know a lot about different stuff - just look at my &lt;a href=&quot;http://stackoverflow.com/users/23528/daniel-a-white&quot;&gt;StackOverflow account&lt;/a&gt;, but I don't feel I have the professional experience necessary to ask more in salary. Example: I was told they were looking for a mid-level person at $75k/year. I told him I wasn't sure where I fell. He asked me where I could fall, so I said I was worth only $50k/year - which was close to my last salary. The guy told me I wasn't what they were looking for.&lt;/p&gt;&#xA;" OwnerUserId="5808" LastEditorUserId="5808" LastEditorDisplayName="" LastEditDate="2010-10-26T12:21:33.723" LastActivityDate="2010-11-07T19:27:18.353" Title="How not to undersell (and be honest) your skills while job hunting" Tags="&lt;career&gt;&lt;jobs&gt;&lt;interview&gt;&lt;salary&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="4" />
  <row Id="14619" PostTypeId="2" ParentId="8968" CreationDate="2010-10-25T22:17:14.877" Score="1" ViewCount="" Body="&lt;p&gt;Lego Mindstorms lists kids age 12+, you probably want to be at least 12 if you're getting into things that complicated, but at the same time, thats a GREAT way to start, because you can really have some fun and see what you're accomplishing. I probably wouldn't introduce any REAL programming until at least 12.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if you want to talk about &quot;programming&quot; in quotes, then maybe you could start even earlier. Very simple concepts like program flow can be explained very easily. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say if you want to start before age 12, don't get anywhere near a computer. Just sit down with your kid and a whiteboard, and maybe like a toy car. Have him/her write pseudo-code on the whiteboard, and then talk to him/her about what the car would do if it was following those instructions. Then you can explain how in order to make a Turnleft() all you have to do is &#xA;Turnleft{&#xA;TurnRight&#xA;TurnRight&#xA;TurnRight&#xA;}&#xA;And he/she could start to get the fundamentals down.&lt;/p&gt;&#xA;" OwnerUserId="6167" LastActivityDate="2010-10-25T22:17:14.877" CommunityOwnedDate="2011-03-04T21:09:34.713" />
  <row Id="14620" PostTypeId="2" ParentId="14601" CreationDate="2010-10-25T22:19:41.580" Score="4" ViewCount="" Body="&lt;p&gt;I recycle them.  Most of them are so old that it's pointless to give away, no one starting out would need to know such detail on depricated information.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-10-25T22:19:41.580" />
  <row Id="14621" PostTypeId="2" ParentId="1166" CreationDate="2010-10-25T22:23:58.257" Score="2" ViewCount="" Body="&lt;p&gt;I for one hate a strict dress code, will not work at a company that forces me to fully suit-up every day, and look down on companies that have dress codes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The computer and the compiler DO NOT care what I look like. Yes, you shouldn't come to work naked. Yes, you shouldn't wear t-shirts with obscene messages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But going any further than that seems extremely old-fashioned to me, and just makes me think that if I work for that company, I'm going to find more and more archaic business practices where my voice can't be heard and I get buried in bureaucracy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wear t-shirt and jeans as pretty much a rule. I can wear slacks and business casual shirts if I feel like it sometimes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But then again, I've got long hair and a beard, so the really uptight companies probably wouldn't like me anyways. Which is just silly. That said, I keep myself groomed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You hiring me to be a model, a businessman, or a programmer? The QA team expects me to look like a nerd, and won't look down on me for it; besides its their job to deal with it. And software development isn't really a customer-facing position at all. So what does it matter?&lt;/p&gt;&#xA;" OwnerUserId="6167" LastActivityDate="2010-10-25T22:23:58.257" CommunityOwnedDate="2011-01-30T18:03:58.527" />
  <row Id="14622" PostTypeId="1" AcceptedAnswerId="14671" CreationDate="2010-10-25T22:26:37.457" Score="8" ViewCount="764" Body="&lt;p&gt;With all the problems that sitting at a desk can cause - back problems, general lazyness, and I think it's a lot easier to get distracted when just sitting back, relaxing in your chair - I'm wondering if anyone uses a standing desk?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I visited my brother the other day and he uses a standing desk (not a software dev, but does a lot of desk work), and it just seemed like an awesome idea to me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you had experience with it? Looks like it's all the rage - &lt;a href=&quot;http://en.wikipedia.org/wiki/Standing_desk&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Standing_desk&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="4458" LastActivityDate="2010-10-26T17:20:49.383" ClosedDate="2010-10-27T21:43:43.717" Title="Anyone Using A Standing Desk?" Tags="&lt;work-environment&gt;&lt;health&gt;&lt;desk&gt;" AnswerCount="8" CommentCount="1" FavoriteCount="2" />
  <row Id="14623" PostTypeId="2" ParentId="10930" CreationDate="2010-10-25T22:26:45.030" Score="1" ViewCount="" Body="&lt;p&gt;Don't bother, play football with them instead. :o)&lt;/p&gt;&#xA;" OwnerUserId="6300" LastActivityDate="2010-10-25T22:26:45.030" CommentCount="1" />
  <row Id="14624" PostTypeId="2" ParentId="14622" CreationDate="2010-10-25T22:34:33.130" Score="2" ViewCount="" Body="&lt;p&gt;I have, and without a way to sit occasionally it gets painful for me after about 6-8 hours.  A bar stool height chair is one alternative, but they are not very ergonomic or comfortable IMHO so I would probably not do it again without an adjustable height desk.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-10-25T22:34:33.130" />
  <row Id="14625" PostTypeId="2" ParentId="14622" CreationDate="2010-10-25T22:38:14.123" Score="1" ViewCount="" Body="&lt;p&gt;I have thought about it before but I have problems with my knees which get worse when I stand for long periods of time.&lt;/p&gt;&#xA;" OwnerUserId="5010" LastActivityDate="2010-10-25T22:38:14.123" />
  <row Id="14626" PostTypeId="2" ParentId="14610" CreationDate="2010-10-25T22:39:00.613" Score="1" ViewCount="" Body="&lt;p&gt;Without a code sample, it's difficult to say why your code has no readily identifiable abstraction. With that caveat, here's a couple ideas:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;instead of creating one new function to hold the common code, break the functionality into several distinct pieces;&lt;/li&gt;&#xA;&lt;li&gt;group small pieces together based on common data types or abstract behavior;&lt;/li&gt;&#xA;&lt;li&gt;rewrite the duplicate code given the new pieces;&lt;/li&gt;&#xA;&lt;li&gt;if the new code still defies a clear abstraction, break it up into small as well and repeat the process.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The largest difficulty in this exercise is that your function is likely incorporating too many unrelated behaviors at a given abstraction level, and you need to handle some of them at lower levels. You correctly surmise that clarity is key to maintaining the code, but making the behavior of the code clear (its current condition) is very different from making the intent of the code clear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make the how of the smaller code pieces abstract by having their function signatures identify the what, and the larger pieces should be easier to classify.&lt;/p&gt;&#xA;" OwnerUserId="4982" LastActivityDate="2010-10-25T22:39:00.613" />
  <row Id="14627" PostTypeId="2" ParentId="14474" CreationDate="2010-10-25T22:41:19.740" Score="1" ViewCount="" Body="&lt;p&gt;Whilst I personally use git I would send them to some articles explaining version control and source management and let them experiment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Surely fooling around with different tools like this is what we programmers love no? I say let this newb have some fun learning which tools are best for him/her&lt;/p&gt;&#xA;" OwnerUserId="5010" LastActivityDate="2010-10-25T22:41:19.740" CommentCount="2" />
  <row Id="14628" PostTypeId="2" ParentId="14622" CreationDate="2010-10-25T22:44:22.650" Score="5" ViewCount="" Body="&lt;p&gt;One alternative is to use an exercise ball or an &lt;a href=&quot;http://www.amazon.com/Gaiam-Balance-Ball-Chair-Black/dp/B0007VB4NE&quot; rel=&quot;nofollow&quot;&gt;exercise ball chair&lt;/a&gt; for part of the time at an ordinary sitting desk, which I have tried.  This works by requiring you to use your core muscles (lower back and abdomen) for balance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/BGGRr.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You still need a regular chair; I can't do this all day, or even for longer than an hour or two, but I suspect that if I kept it up over time my core would strengthen enough where I could sit on an exercise ball all day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some caution is required, since it does destabilize your sitting position.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-26T01:01:52.527" LastActivityDate="2010-10-26T01:01:52.527" CommentCount="7" />
  <row Id="14629" PostTypeId="2" ParentId="14570" CreationDate="2010-10-25T22:47:43.413" Score="5" ViewCount="" Body="&lt;p&gt;Write a TODO list app.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-10-25T22:47:43.413" CommentCount="2" />
  <row Id="14630" PostTypeId="2" ParentId="14315" CreationDate="2010-10-25T22:55:41.870" Score="7" ViewCount="" Body="&lt;p&gt;&quot;It's impossible to test this&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, I managed a whole team who believed this. Fortunately it didn't take long to convince them otherwise.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-10-25T22:55:41.870" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="2" />
  <row Id="14631" PostTypeId="2" ParentId="14570" CreationDate="2010-10-25T22:57:30.873" Score="7" ViewCount="" Body="&lt;p&gt;Write a blog engine; that seems to be the new hello world these days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But seriously, I'd suggest coming up with the &lt;em&gt;problem&lt;/em&gt; first:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What is it you want to accomplish? &lt;/li&gt;&#xA;&lt;li&gt;What problem needs solving?&lt;/li&gt;&#xA;&lt;li&gt;What do you need built?&lt;/li&gt;&#xA;&lt;li&gt;What itches do you want to scratch?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In other words, pick the problem you want to solve first, then try a new tool to solve it. Doing it the other way around feels backwards to me.&lt;/p&gt;&#xA;" OwnerUserId="37" LastActivityDate="2010-10-25T22:57:30.873" CommentCount="2" />
  <row Id="14632" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T22:59:23.093" Score="0" ViewCount="" Body="&lt;p&gt;At an internship, I was just learning SQL, performed an update without a where, affecting 17k+ rows instead of 10. Good news was that it was only the dev database. Bad news was that it couldn't be rolled back without the testers losing a lot of work, and a coworker was stuck fixing it for the rest of the day. I felt pretty bad.&lt;/p&gt;&#xA;" OwnerUserId="6433" LastActivityDate="2010-10-25T22:59:23.093" CommunityOwnedDate="2011-01-13T19:43:02.007" />
  <row Id="14633" PostTypeId="2" ParentId="525" CreationDate="2010-10-25T23:10:27.950" Score="0" ViewCount="" Body="&lt;p&gt;In work I use WeBuilder. It's Windows-only and you have to pay for it, but it's pretty good. Can syntax-highlight and do a certain amount of auto-completion in a ton of languages (HTML, PHP, CSS, and JavaScript are the ones I use, but it knows others too), and can open and edit files over FTP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I ever get my home computer fixed, I'll be using Netbeans there. I have no experience with it, but I've heard good things. Actually, gEdit can do everything that WeBuilder does, except for auto-completion of brackets and the like.&lt;/p&gt;&#xA;" OwnerUserId="2406" LastActivityDate="2010-10-25T23:10:27.950" />
  <row Id="14634" PostTypeId="2" ParentId="14335" CreationDate="2010-10-25T23:11:48.963" Score="2" ViewCount="" Body="&lt;p&gt;Drop a production database by accident instead of a development version. I didn't see what server I was working. Fortunately, the last backup was produced 4 hour ago and the user didn't made a lot of changes on the system, so no big data loss.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-25T23:11:48.963" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="1" />
  <row Id="14635" PostTypeId="1" AcceptedAnswerId="15955" CreationDate="2010-10-25T23:59:36.093" Score="1" ViewCount="161" Body="&lt;p&gt;... that is, the inputs and outputs of service functions ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are entities, or aggregates, allowed to leave service boundaries?&lt;/p&gt;&#xA;" OwnerUserId="3552" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:14:07.227" LastActivityDate="2010-11-16T15:14:07.227" Title="Why doesn't DDD consider Documents ?" Tags="&lt;design-patterns&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="1" />
  <row Id="14636" PostTypeId="2" ParentId="14622" CreationDate="2010-10-26T01:03:27.547" Score="4" ViewCount="" Body="&lt;p&gt;I'm saving my pennies for one of these: &lt;a href=&quot;http://www.geekdesk.com&quot; rel=&quot;nofollow&quot;&gt;Geek Desk&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're a little pricy, but give you the option to sit or stand when you feel like it. Unless I'm mistaken I believe these are what they use in the Fog Creek office.&lt;/p&gt;&#xA;" OwnerUserId="6414" LastActivityDate="2010-10-26T01:03:27.547" CommentCount="1" />
  <row Id="14637" PostTypeId="2" ParentId="10930" CreationDate="2010-10-26T01:07:36.937" Score="1" ViewCount="" Body="&lt;p&gt;I picked this up a couple of years ago: &lt;a href=&quot;http://www.c-jump.com/&quot; rel=&quot;nofollow&quot;&gt;C-Jump Boardgame&lt;/a&gt;. My son is 7 so I think he still has some time before he's truly interested in programming. If and when that happens hopefully the game will help.&lt;/p&gt;&#xA;" OwnerUserId="6414" LastActivityDate="2010-10-26T01:07:36.937" />
  <row Id="14638" PostTypeId="2" ParentId="14618" CreationDate="2010-10-26T01:10:36.463" Score="1" ViewCount="" Body="&lt;p&gt;The only thing I want to say is that if it's a 75k job, you shouldn't have said you're worth 50k. That just seems like too low for someone with programming experience.&lt;/p&gt;&#xA;" OwnerUserId="3910" LastActivityDate="2010-10-26T01:10:36.463" />
  <row Id="14639" PostTypeId="2" ParentId="14618" CreationDate="2010-10-26T01:11:10.393" Score="9" ViewCount="" Body="&lt;p&gt;Why are you setting your own salary?  And how did you come up with the $50K figure? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I generally ask for a rate of pay commensurate with my experience.  If that's $50K for you, that's all well and good, but the employer is supposed to be deciding whether you're worth that based on your experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, if you are 10 months out of school (meaning you have 10 months of experience, correct?) employers will be viewing you as entry-level, not mid-level (intermediate).  That's all right; look for a position where you can move up in a few years, or move laterally when you have some more experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I'm not going to ask why you lost your last job, but prospective employers will.  If you left on good terms, ask if your former employer is willing to back you up with a reference.  If they are, hire one of those &quot;reference screener&quot; outfits to call them and get a reference from them.  If they give a good reference, you're home free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they don't give a good reference, you should examine the reasons why you parted ways, and ask yourself if there might be room for improvement on your part.  Then, be honest with your prospective employers about that if they ask, and work on getting better.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-10-26T01:11:10.393" />
  <row Id="14640" PostTypeId="2" ParentId="14335" CreationDate="2010-10-26T01:12:39.443" Score="3" ViewCount="" Body="&lt;p&gt;The biggest mistake I ever made was not having my work in source control off of my development machine. My hard drive crashed and I lost weeks of work. It's a lesson hard-learned and something I'll never let happen again.&lt;/p&gt;&#xA;" OwnerUserId="6414" LastActivityDate="2010-10-26T01:12:39.443" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="1" />
  <row Id="14641" PostTypeId="2" ParentId="14622" CreationDate="2010-10-26T01:25:27.990" Score="2" ViewCount="" Body="&lt;p&gt;Maybe it is all the rage, but it's hardly new as a concept. Large drawing desks (for large blueprints*) have been made that way for decades.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Had a lot of experience with those, some seven, eight years in college and then some years later. They are normally used instead of inclined desks because if the paper is large in height, it is a pain to always reach &quot;behind the desk&quot;. And the kind we had were also wide (2,5m), paper that is, so any other kind of desk would have been impractical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as posture and all that health stuff goes ... can't really say. Never had any back problems, nor any similar kind of problems, but I remember not all of my coleagues were thrilled at the thought of standing for 3 hours straight. So some of them got bar chairs (y'know, the high ones), which worked for a while. Although it was rather clumsy, so they got to standing and walking around it again. In the end, we all graduated, so ... :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure it sounds like fun, but I just can't see them being usable for work which requires standing in one place, typing, for hours in a row.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Drawing, yes ... but then you walk around it, you move your hands, ... you're generally rather active. Just standing and typing, ... no, sorry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;All of this is IMHO of course ...&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*Not exactly blueprints; I'm not sure of the exact translation. Large pen and ink drawings in any case.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-26T01:25:27.990" />
  <row Id="14642" PostTypeId="2" ParentId="14622" CreationDate="2010-10-26T01:26:03.200" Score="2" ViewCount="" Body="&lt;p&gt;If you're really gung-ho, you can go for &lt;a href=&quot;http://store.steelcase.com/go/products/detail/A7T/?cvsfhu=413754&amp;amp;utm_source=affiliate&amp;amp;utm_medium=bannerad&amp;amp;utm_campaign=logo&quot; rel=&quot;nofollow&quot;&gt;one of these&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/1lwra.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, if you already have a treadmill, and don't feel like shelling out four grand for a desk, you can get a &lt;a href=&quot;http://www.activeforever.com/p-24467-trekdesk-treadmill-desk.aspx?CMPID=Froogle_trekdesk-treadmill-desk&quot; rel=&quot;nofollow&quot;&gt;TrekDesk.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-10-26T01:26:03.200" CommentCount="1" />
  <row Id="14643" PostTypeId="2" ParentId="14618" CreationDate="2010-10-26T01:33:37.473" Score="6" ViewCount="" Body="&lt;p&gt;You're young and cheap but not that cheap.  In your first 5 years you should change jobs 2-3x and that's where you'll get your salary increase.  Guess what, you just changed jobs.  If you say you're worth 50k people will think you don't know what you're doing.  If you say that you're worth what the market will bear, then they'll tell you what their own appraisal is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rules of negotiation:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Don't state your last salary unless it was enormous.  Then, if it was, state you are very flexible and that was a unique situation.&lt;/li&gt;&#xA;&lt;li&gt;Ask for more.  Doesn't have to be money.  Don't have to be aggressive about it.&lt;/li&gt;&#xA;&lt;li&gt;Don't undersell yourself.  You can be honest with them and say &quot;I'm young, work hard but I'm not the greatest that ever walked the earth.&quot;  You just can't &quot;I&quot;m fairly worthless.&quot;  The former may be believed, the later will always be believed.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Also:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Job hunting is like dating.  You ask 10 girls out, 1 will say yes.  You go on your first date to see if you're compatible.  In 10 dates with 10 girls, 2-3 may decide they like you enough to go on a second date.  After a few dates, one may even decide to go steady with ya.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When they say what they're looking for, be prepared to be rejected.  But if you only settled for what life gave you, you'd be dating some fat porker with pizza for face.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-26T01:33:37.473" />
  <row Id="14644" PostTypeId="2" ParentId="1166" CreationDate="2010-10-26T01:45:01.320" Score="2" ViewCount="" Body="&lt;p&gt;Never judge a person by what they are wearing, but be aware that you &lt;strong&gt;will&lt;/strong&gt; be judged by what you wear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dress codes are useless in my opinion, I've seen people wearing formal clothes and somehow still looking like a bum.&lt;/p&gt;&#xA;" OwnerUserId="31" LastActivityDate="2010-10-26T01:45:01.320" CommunityOwnedDate="2011-01-30T18:03:58.527" />
  <row Id="14645" PostTypeId="1" AcceptedAnswerId="14649" CreationDate="2010-10-26T01:47:50.027" Score="12" ViewCount="841" Body="&lt;p&gt;What questions will validly judge an individuals skills as a programmer? These should be applicable to a programmer using any language, and they should be aimed at entry level positions possibly questioning a recent graduate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We're all aware of the various types of questions that interviewers ask, but specifically, which ones most effectively assess the real performance of an employee on the job?&lt;/p&gt;&#xA;" OwnerUserId="3964" LastActivityDate="2010-11-01T03:17:05.637" Title="What are effective interview questions?" Tags="&lt;interview-questions&gt;" AnswerCount="12" FavoriteCount="6" />
  <row Id="14646" PostTypeId="2" ParentId="14645" CreationDate="2010-10-26T02:11:34.913" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Given a linked list with a loop in it, how would you measure the length of the 'stem'- the part before the loop starts?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This could really be replaced with any algorithmic question.  What it needs is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It can't be one with a well known solution (eg, how do you detect a cycle in a linked list)&lt;/li&gt;&#xA;&lt;li&gt;It can't be too complex to do in an interview (eg, &lt;a href=&quot;http://www.facebook.com/careers/puzzles.php&quot; rel=&quot;nofollow&quot;&gt;Facebook's Puzzles&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;It should have a few different solutions of varying complexity (this one can get down to constant space, linear time).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The point is to see how the candidate attacks the problem and thinks through it.  Realistically, very few programming jobs (in my experience) really require much algorithmic analysis; rather, it's there to see if the person doesn't give up, and can keep finding new avenues to explore.  Even if they don't get the question, do you think they'd get it eventually, or would they say &quot;That's the best I can do- I'm stumped?&quot;&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-26T02:11:34.913" CommentCount="1" />
  <row Id="14647" PostTypeId="2" ParentId="14645" CreationDate="2010-10-26T02:15:34.397" Score="0" ViewCount="" Body="&lt;p&gt;I take real problems we had in the code and ask them in the interview.&#xA;This way I have before and after code, it's already worked out and it's typical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can solve the sort of problems we run into in an interview, it's a dead certainty you can do it every day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This presupposes you have a bug tracking system tied to your VCS  and make sensible commit comments; which we might term &quot;wearing pants&quot; in a work context.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-10-26T02:15:34.397" />
  <row Id="14648" PostTypeId="2" ParentId="14645" CreationDate="2010-10-26T02:16:51.867" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Design a hotel registration system.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question is intentionally vague, since the point is to test the candidate's requirements elicitation abilities.  Figuring out what a customer wants is non-trivial.  So, the candidate that does well starts out by asking a pile of questions: &quot;Ok, what functions does it need?&quot; &quot;What is your process like before this system?&quot; &quot;What types of users will be using it?&quot; etc, to which the interviewer can make up and/or have prepared answers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good candidate:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Avoids making assumptions about functionality, technical resources, users, etc&lt;/li&gt;&#xA;&lt;li&gt;Doesn't talk about specifics of implementation, but just what it needs to do.&lt;/li&gt;&#xA;&lt;li&gt;Asks good questions to draw out information.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-26T02:16:51.867" CommentCount="0" />
  <row Id="14649" PostTypeId="2" ParentId="14645" CreationDate="2010-10-26T02:19:45.920" Score="18" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Explain a linked list to a 10 year old.&lt;/strong&gt;&lt;br&gt;&#xA;&lt;strong&gt;Explain OOP to someone who doesn't know anything about programming.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being able to communicate is important in most jobs.  Programmers have the difficult task of explaining complex technical concepts to non-technical people.  Questions like this test (to some degree) an applicant's ability to do that.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-26T02:19:45.920" CommentCount="8" />
  <row Id="14650" PostTypeId="1" AcceptedAnswerId="14753" CreationDate="2010-10-26T03:07:06.770" Score="27" ViewCount="1656" Body="&lt;p&gt;For example, being a beginner, I find a lot of inspiration and direction from reading &lt;a href=&quot;http://writing.bryanwoods4e.com/1-poor-poor-child&quot; rel=&quot;nofollow&quot;&gt;this post&lt;/a&gt; by &lt;a href=&quot;http://twitter.com/bryanwoods&quot; rel=&quot;nofollow&quot;&gt;Bryan Woods&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1345" LastEditorUserId="5493" LastEditorDisplayName="" LastEditDate="2011-02-16T22:20:48.527" LastActivityDate="2011-02-16T22:34:48.990" CommunityOwnedDate="2010-11-12T17:51:25.287" Title="What are some things you have read that inspired and guided you as a programmer?" Tags="&lt;learning&gt;&lt;self-improvement&gt;&lt;books&gt;&lt;inspiration&gt;" AnswerCount="40" CommentCount="2" FavoriteCount="27" />
  <row Id="14651" PostTypeId="2" ParentId="14645" CreationDate="2010-10-26T03:07:12.697" Score="2" ViewCount="" Body="&lt;p&gt;A very interesting question and I am eager to see the answers to this. I think most of the times Puzzles/Algorithms and language knowledge are overrated.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Also the concept, I want to see how a candidate ATTACK's a problem is also overrated. Most Interviewers also say that if you have already solved this problem let us know so that we can give you another problem because all we are interested in is your approach. This is Bullshit. For eg. Ask yourself the first time you wrote a Program to write all possible permutations of a word recursively, how much time did it take ? 20 min, 30 mins ?? I bet a correct program took more than that,So if you are doing it for the first time in an interview and taking 30 mins to do it, I bet MOST Interviewers will run out of patience. What can be tested out of these puzzle questions is that whether someone knows these type of questions or not, someone who knows/practised these questions will be able to solve similar problems in Projects if needed. So in some cases if someone is not able to solve such problems doesn't mean he is NOT SMART he might not have practised enough.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Language concepts ? In my opinion these can be applied to most general concepts. If someone doesn't know an obscure concept in a language doesn't mean he is not good enough. If he knows the most popular concepts, let him in.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Approach ? how do you judge it ? What if someone is faking it ? For eg. it is not uncommon to see many guys in an Interview not being able to solve problems but when you want to move to something else, they have that AHA moment and seem to solve it instantly :) Also the smart programmers will always first give O(n^2) solution and then will keep on thinking and then give the O(n) solution, Most of the times they know both on the first hand they are clever enough to show that they are thinking through it :-)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I generally ask people to solve known or similar problems and ask them to write the code. I am mostly interested in how the Code looks at the end of the problem. Correctness of the solution/code quality/corner cases/ exception handling/ null references etc are what I look at. Sometimes I dont even mind telling the O(n) solution :-) the code is what matters to me. Also I like people who have a breadth of knowledge, these are guys who have been READING they will be able to research various technologies for you and come up with the best thing for the Project. Just my opinions though may be you hire a Mainframe guy differently.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-26T03:07:12.697" CommentCount="4" />
  <row Id="14652" PostTypeId="2" ParentId="14650" CreationDate="2010-10-26T03:15:13.657" Score="11" ViewCount="" Body="&lt;p&gt;Read the speech given by Alex Stepanov at Adobe. At the end of 5 years this will seperate the GREAT ones from the GOOD ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.scribd.com/doc/210467/Speech-by-Alex-Stepanov&quot; rel=&quot;nofollow&quot;&gt;http://www.scribd.com/doc/210467/Speech-by-Alex-Stepanov&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-26T03:15:13.657" CommunityOwnedDate="2010-11-12T17:51:25.287" CommentCount="5" />
  <row Id="14653" PostTypeId="2" ParentId="14601" CreationDate="2010-10-26T03:41:08.457" Score="2" ViewCount="" Body="&lt;p&gt;Every once in a while we are encouraged to put our unwanted books at a specific location in the building.  They sit there for about two weeks and we are free to go through and take what we want.  When the time is up, the unwanted books are recycled.  It is a great way of getting rid of books, and getting new books.  I got many brand new programming books, as well as some great older ones.&lt;/p&gt;&#xA;" OwnerUserId="1428" LastActivityDate="2010-10-26T03:41:08.457" />
  <row Id="14654" PostTypeId="2" ParentId="14650" CreationDate="2010-10-26T04:00:26.413" Score="5" ViewCount="" Body="&lt;h2&gt;In terms of guidance&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The book &lt;em&gt;The Elements of Programming Style&lt;/em&gt; by Kernighan and Plauger was very influential for me when I was learning C. The book was already considered &quot;obsolete&quot; by the time I read it, due to its use of PL/I and Fortran samples, but the tips transcended both languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before reading that book, I was convinced &quot;style&quot; was about what I now consider trivial issues, like formatting (how many spaces for a tab? where do you place the curlies?). But style is what you have once you remove formatting and naming conventions. Is it easier to construct a string backwards and then reverse it? Then construct it backwards and reverse it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another book from Kernighan and Plauger, &lt;em&gt;Software Tools&lt;/em&gt;, was also helpful, but not quite as good. And the much newer book &lt;em&gt;The Practice of Programming&lt;/em&gt;, by Kernighan and Pike is also useful, but a far cry from &lt;em&gt;The Elements of Programming Style&lt;/em&gt;. I wish I still had my copy. It's worth it for every programmer to read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I grew an appreciation of testing and QA after reading Glenford Myers &lt;em&gt;The Art of Software Testing&lt;/em&gt;. It showed me that testing was a real creative activity, and not just something for computer science majors who don't like to program. Perhaps with the growing popularity of Test-Driven Development more people will turn to Myers's book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I cannot think of a better introduction to the notion of abstraction than the book &lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book.html&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;The Structure and Interpretation of Programs&lt;/em&gt;&lt;/a&gt;, which is available free online. It introduces the Scheme programming language, but hits upon many other topics in computer science, including declarative programming.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;In terms of inspiration&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;In my academic career, I was inspired by the concept of Aspect-Oriented Programming. You can read some of the very early papers on AOP and end up with half a page of notes for ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also think the progress of Church and Turing is very inspiring. In the 1930s, before computers were even made, scientists and mathematicians were programming in a higher-order programming language: Lambda calculus. The construction of &lt;a href=&quot;http://en.wikipedia.org/wiki/Church_encoding&quot; rel=&quot;nofollow&quot;&gt;Church numbers&lt;/a&gt; and the predecessor function is probably one of the most clever programming constructs ever. It shows you how to make something from almost nothing.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-10-26T04:00:26.413" CommunityOwnedDate="2010-11-12T17:51:25.287" CommentCount="3" />
  <row Id="14655" PostTypeId="2" ParentId="12017" CreationDate="2010-10-26T04:08:59.243" Score="1" ViewCount="" Body="&lt;p&gt;Hang a bookshelf in your bathroom.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-26T04:08:59.243" CommentCount="1" />
  <row Id="14656" PostTypeId="2" ParentId="966" CreationDate="2010-10-26T04:11:20.017" Score="2" ViewCount="" Body="&lt;p&gt;The single best book on writing I've ever read is &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0205296327&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;The Sense of Structure: Writing from the Reader's Perspective&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/w2esj.jpg&quot; alt=&quot;The Sense of Structure&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can help you think logically about your writing. It gives concrete advise about the structure of what you say. It's not a book about grammar mistakes or rules, nor a bunch of platitudes-- which distinguishes itself from most other writing books. [At least that I've seen, and I've read &quot;the classics&quot; too.]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Better writing can help you compose better emails, write write clearer comments, and help you realize what you think it important or not.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-10-26T04:11:20.017" CommunityOwnedDate="2011-01-06T15:42:27.030" />
  <row Id="14657" PostTypeId="2" ParentId="14650" CreationDate="2010-10-26T04:35:50.563" Score="9" ViewCount="" Body="&lt;p&gt;I always found &lt;a href=&quot;http://www.codinghorror.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Coding Horror&lt;/a&gt; and &lt;a href=&quot;http://www.joelonsoftware.com/&quot; rel=&quot;nofollow&quot;&gt;Joel on Software&lt;/a&gt; to be inspiring on certain blog posts. They also always made me feel good because I understood what they were talking about and made me think of myself as a programmer.&lt;/p&gt;&#xA;" OwnerUserId="3102" LastActivityDate="2010-10-26T04:35:50.563" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="14658" PostTypeId="2" ParentId="14650" CreationDate="2010-10-26T05:01:22.887" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://thecleancoder.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;Uncle Bob Martin&lt;/a&gt;'s programming posts&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-10-26T05:01:22.887" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="14659" PostTypeId="2" ParentId="8968" CreationDate="2010-10-26T05:02:13.383" Score="1" ViewCount="" Body="&lt;p&gt;Like a few others, I too began programming early -- around age 9. I started with VB and progressed to web languages, specifically PHP. I started not by my father introducing me but more my own interest in programming. The way I recall it is that I got my first computer around age 9 and was on ICQ and IRC on a regular basis. One day, I went to my father and told him I wanted to be able to program. He gave me a Visual Basic 6 CD and showed me how to set up the project. From there, I was on my own and taught myself everything I've learned. I'm now 22 years old (without a college education) and very successful in my career (I'm a Senior Software Architect at a major social networking website in the US). I attribute my success not only to my own ambition and passion for programming, but also my father's willingness to get me started with programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as getting your son started, I'd say it's never too early, but it might not be his &lt;em&gt;thing&lt;/em&gt;. Honestly, I'd suggest getting him started in something he can be really proud of, explore, and show to friends. I'd suggest taking a look at &lt;a href=&quot;http://arduino.cc&quot; rel=&quot;nofollow&quot;&gt;Arduino&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6451" LastActivityDate="2010-10-26T05:02:13.383" CommunityOwnedDate="2011-03-04T21:09:34.713" />
  <row Id="14660" PostTypeId="2" ParentId="192" CreationDate="2010-10-26T05:03:06.317" Score="7" ViewCount="" Body="&lt;p&gt;In a strict sense, it is not fair to make any claims until the quality of the test suite is established. Passing 100% of the tests isn't meaningful if most of the tests are trivial or repetitive with each other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question is: &lt;strong&gt;In the history of the project, did any of those tests uncover bugs?&lt;/strong&gt; The goal of a test is to find bugs. And if they didn't, they failed as tests. Instead of improving code quality, they might only be giving you a false sense of security.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To improve you test designs, you can use (1) whitebox techniques, (2) blackbox techniques, and (3) mutation testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(1) Here are some good whitebox techniques to apply to your test designs. A whitebox test is constructed with specific source code in mind. One important aspect of whitebox testing is code coverage:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is every function called? [Functional coverage]&lt;/li&gt;&#xA;&lt;li&gt;Is every statement executed? [Statement coverage-- Both functional coverage and statement coverage are very basic, but better than nothing]&lt;/li&gt;&#xA;&lt;li&gt;For every decision (like &lt;code&gt;if&lt;/code&gt; or &lt;code&gt;while&lt;/code&gt;), do you have a test that forces it to be true, and other that forces it to be false? [Decision coverage]&lt;/li&gt;&#xA;&lt;li&gt;For every condition that is a conjunction (uses &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;) or disjunction (uses &lt;code&gt;||&lt;/code&gt;), does each subexpression have a test where it is true/false? [Condition coverage]&lt;/li&gt;&#xA;&lt;li&gt;Loop coverage: Do you have a test that forces 0 iterations, 1 iteration, 2 iterations?&lt;/li&gt;&#xA;&lt;li&gt;Is each &lt;code&gt;break&lt;/code&gt; from a loop covered?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(2) Blackbox techniques are used when the requirements are available, but the code itself is not. These can lead to high-quality tests:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do your blackbox tests cover multiple testing goals? You'll want your tests to be &quot;fat&quot;: Not only do they test feature X, but they also test Y and Z. The interaction of different features is a great way to find bugs.&lt;/li&gt;&#xA;&lt;li&gt;The only case you don't want &quot;fat&quot; tests is when you are testing an error condition. For example, testing for invalid user input. If you tried to achieve multiple invalid input testing goals (for example, an invalid zip code and an invalid street address) it's likely that one case is masking the other.&lt;/li&gt;&#xA;&lt;li&gt;Consider the input types and form an &quot;equivalence class&quot; for the types of inputs. For example, if your code tests to see if a triangle is equilateral, the test that uses a triangle with sides (1, 1, 1) will probably find the same kinds of errors that the test data (2, 2, 2) and (3, 3, 3) will find. It's better to spend your time thinking of other classes of input. For example, if your program handles taxes, you'll want a test for each tax bracket. [This is called equivalence partitioning.]&lt;/li&gt;&#xA;&lt;li&gt;Special cases are often associated with defects. Your test data should also have boundary values, such as those on, above, or below the edges of an equivalence task. For example, in testing a sorting algorithm, you'll want to test with an empty array, a single element array, an array with two elements, and then a very large array. You should consider boundary cases not just for input, but for output as well. [This is call boundary-value analysis.]&lt;/li&gt;&#xA;&lt;li&gt;Another technique is &quot;Error guessing.&quot; Do you have the feeling if you try some special combination that you can get your program to break? Then just try it! Remember: &lt;strong&gt;Your goal is to find bugs, not to confirm that the program is valid&lt;/strong&gt;. Some people have the knack for error guessing.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(3) Finally, suppose you already have lots of nice tests for whitebox coverage, and applied blackbox techniques. What else can you do? It's time to &lt;strong&gt;Test your Tests&lt;/strong&gt;. One technique you can use is Mutation Testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Under mutation testing, you make a modification to (a copy of) your program, in the hopes of creating a bug. A mutation might be:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Change a reference of one variable to another variable;&#xA;  Insert the abs() function;&#xA;  Change less-than to greater-than;&#xA;  Delete a statement;&#xA;  Replace a variable with a constant;&#xA;  Delete an overriding method;&#xA;  Delete a reference to a super method;&#xA;  Change argument order&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Create several dozen mutants, in various places in your program [the program will still need to compile in order to test]. If your tests do not find these bugs, then you now need to write a test that can find the bug in the mutated version of your program. Once a test finds the bug, you have killed the mutant and can try another.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Addendum&lt;/strong&gt;: I forgot to mention this effect: &lt;strong&gt;Bugs tend to cluster&lt;/strong&gt;. What that means is that the more bugs you find in one module, the higher the probability that you'll find more bugs. So, if you have a test that fails (which is to say, the test is successful, since the goal is to find bugs), not only should you fix the bug, but you should also write more tests for the module, using the techniques above.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So long as you are finding bugs at a steady rate, testing efforts must continue. Only when there is a decline in the rate of new bugs found should you have confidence that you've made good testing efforts for that phase of development.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-10-26T13:37:16.303" LastActivityDate="2010-10-26T13:37:16.303" CommentCount="1" />
  <row Id="14661" PostTypeId="2" ParentId="14650" CreationDate="2010-10-26T05:08:40.640" Score="2" ViewCount="" Body="&lt;p&gt;The most useful single book ever - not about programming, but about how to work effectively in this field: &quot;Peopleware&quot; by DeMarco and Lister. Should be on every programmers book shelf. And if you move up into management, doubly so.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-10-26T05:08:40.640" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="14662" PostTypeId="2" ParentId="14650" CreationDate="2010-10-26T05:17:45.983" Score="3" ViewCount="" Body="&lt;p&gt;Among many inspirations the most recent one was this book on: &lt;strong&gt;&lt;a href=&quot;http://oreil.ly/sDgyT&quot; rel=&quot;nofollow&quot;&gt;Apprenticeship Patterns&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="6452" LastActivityDate="2010-10-26T05:17:45.983" CommunityOwnedDate="2010-11-12T17:51:25.287" CommentCount="1" />
  <row Id="14663" PostTypeId="2" ParentId="8565" CreationDate="2010-10-26T05:20:59.723" Score="1" ViewCount="" Body="&lt;p&gt;I think what you're getting at here is the concept of &lt;strong&gt;cohesion&lt;/strong&gt;. Does this code have a good purpose? Can I internalize that purpose and understand the &quot;big picture&quot; of what's going on?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It could lead to hard-to-follow code, not just because there are many more source files (assuming these are separate classes), but because no single class seems to have a purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From an agile perspective, I might suggest that such loose coupling would be an anti-pattern. Without the cohesion, or even use cases for it, you cannot write sensible unit tests, and cannot verify the code's purpose. Now, agile code can lead to loose coupling, for example when test-driven development is used. But if the right tests were created, in the right order, then it's likely there is both good cohesion and loose coupling. And you're talking about only the cases for when clearly no cohesion is there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again from the agile perspective, you don't want this artificial level of indirection because it is wasted effort on something that probably won't be needed anyway. It's much easier to refactor when the need is real.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall, you want high-coupling within your modules, and loose coupling between them. Without the high-coupling, you probably do not have cohesion.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-10-26T05:20:59.723" />
  <row Id="14664" PostTypeId="2" ParentId="3438" CreationDate="2010-10-26T05:31:04.657" Score="0" ViewCount="" Body="&lt;p&gt;Here is a &lt;em&gt;very&lt;/em&gt; rigorous definition for a related concept: &lt;strong&gt;expressiveness&lt;/strong&gt;, by&lt;br&gt;&#xA;Matthias Felleisen:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;a href=&quot;http://www.ccs.neu.edu/scheme/pubs/scp91-felleisen.ps.gz&quot; rel=&quot;nofollow&quot;&gt;On the Expressive Power of Programming Languages&lt;/a&gt; [Postscript was the only free form I could find.]&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Also see this entry on &lt;a href=&quot;http://gafter.blogspot.com/2007/03/on-expressive-power-of-programming.html&quot; rel=&quot;nofollow&quot;&gt;the Java language and closures&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Effectively, something is syntactic sugar if it can be changed to a form without the syntax by only making local changes. If, for example, without the syntactic form, you would need to change several different code locations, or move fragments to other locations, then it is not sugar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, syntactic sugar is fine when used appropriately. I think any Scheme programmer would rather there be a &lt;code&gt;let&lt;/code&gt; special form than to have to create a new anonymous function and then apply it, which would do the same thing. The purpose is to make code clearer.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-10-26T05:31:04.657" />
  <row Id="14665" PostTypeId="2" ParentId="14335" CreationDate="2010-10-26T05:32:34.660" Score="21" ViewCount="" Body="&lt;p&gt;Thinking that programming is mostly about building cool new stuff from scratch.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-26T05:32:34.660" CommunityOwnedDate="2011-01-13T19:43:02.007" CommentCount="2" />
  <row Id="14666" PostTypeId="2" ParentId="14645" CreationDate="2010-10-26T05:33:39.590" Score="11" ViewCount="" Body="&lt;p&gt;There's a really simple one that is sure to do the trick...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Ask the candidate about their previous projects.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make the interview more of a conversation, and less like the SAT's.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask them what they did.  Describe the parts of the project they worked on.  Their responsibilities.  Use follow ups to ask about what technologies were used and why they were selected.  How code was arranged.  How they tested.  Design mistakes and what they'd do differently. Basically, learn why they made the decisions they made.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a competent programmer is doing the interview it is very easy to separate the candidates who know what they are doing from the buzzword shoveling posers. &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-26T05:33:39.590" CommentCount="7" />
  <row Id="14667" PostTypeId="2" ParentId="14650" CreationDate="2010-10-26T05:36:25.657" Score="2" ViewCount="" Body="&lt;p&gt;The most inspiring talk I've ever heard was Richard Gabriel talking about that writing software is similar to writing poems.  Poets often use a lot of effort to get few words &lt;em&gt;just right&lt;/em&gt; - think Haikus - and we should strive towards the same kind of excellence and elegance when writing software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Elegance and conciseness is as important in programming as in poetry and math, and it requires a lot of effort to do so fluently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See some of the points on &lt;a href=&quot;http://www.dreamsongs.com/PoetryOfProgramming.html&quot; rel=&quot;nofollow&quot;&gt;http://www.dreamsongs.com/PoetryOfProgramming.html&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2011-02-16T22:28:53.200" LastActivityDate="2011-02-16T22:28:53.200" CommunityOwnedDate="2010-11-12T17:51:25.287" CommentCount="1" />
  <row Id="14668" PostTypeId="2" ParentId="8968" CreationDate="2010-10-26T05:48:07.683" Score="1" ViewCount="" Body="&lt;p&gt;If you program a lot at home your kids will naturally over time want to see what you are doing. Show them some basic things and let them go. If they are interested they will keep asking questions and play for themselves. No need to force it down their throats.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-26T05:48:07.683" CommunityOwnedDate="2011-03-04T21:09:34.713" />
  <row Id="14669" PostTypeId="2" ParentId="192" CreationDate="2010-10-26T05:56:35.897" Score="1" ViewCount="" Body="&lt;p&gt;Code with absolutely no tests can be extremely high quality, readable, beautiful and efficient (or total junk), so no, it's not fair to say that code with 80 % test coverage is of higher quality than code with no test coverage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It could be fair to say that code 80 % covered with &lt;em&gt;good&lt;/em&gt; tests is &lt;em&gt;probably&lt;/em&gt; of acceptable quality, and &lt;em&gt;probably&lt;/em&gt; relatively maintainable. But it guarantees little, really.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-26T05:56:35.897" />
  <row Id="14670" PostTypeId="2" ParentId="14650" CreationDate="2010-10-26T06:02:16.477" Score="5" ViewCount="" Body="&lt;p&gt;Not something I read. In 1984 I was talking to my neighbor and his friend. I was 16. The friend told me that essentially the world is split between computer users and computer programmers. He said only the smartest people in the world can become programmers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yeeeeee! What a challenge! &lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-10-26T06:02:16.477" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="14671" PostTypeId="2" ParentId="14622" CreationDate="2010-10-26T06:19:31.373" Score="5" ViewCount="" Body="&lt;p&gt;I currently use a standing desk and I'll share some of my experience with you:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Get good shoes.  If you need arch support, standing around all day without arch support is going to kill you&lt;/li&gt;&#xA;&lt;li&gt;Have a &quot;high&quot; chair.  Some days you can't make it 8-16 hours standing continuously, its important to have a back up plan&lt;/li&gt;&#xA;&lt;li&gt;Your first couple weeks will hurt.  Chances are you haven't stood in one place for 8 hours straight before.&lt;/li&gt;&#xA;&lt;li&gt;Make sure the desk is 2-3 inches below where your elbows naturally fall.  This is a comfort thing, but makes a big difference&lt;/li&gt;&#xA;&lt;li&gt;Watch your foot placement.  Leaning to one side will wear that side out faster.  Ideally you want your feet directly below your shoulders (or close to that)&lt;/li&gt;&#xA;&lt;li&gt;Stretch.  There may be no health benefit to stretching before or after a work out but it will help move blood around if you do it every couple hours&lt;/li&gt;&#xA;&lt;li&gt;Don't slouch.  Slouching is just as bad for you standing as it is sitting.&lt;/li&gt;&#xA;&lt;li&gt;Make sure the top of your monitor is eye hight.  This often means propping your monitor up as your desk is below your elbows (unless you have unusual proportions).  You don't want pain in your neck in addition to your legs.&lt;/li&gt;&#xA;&lt;li&gt;If you walk home or to lunch, make sure to spend half an hour before hand sitting.  This will make these walks more bearable.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="539" LastActivityDate="2010-10-26T06:19:31.373" CommentCount="2" />
  <row Id="14672" PostTypeId="2" ParentId="1267" CreationDate="2010-10-26T06:44:38.987" Score="0" ViewCount="" Body="&lt;p&gt;I don't think there are lots of diciplines where you can reuse what you've done before in the way we can as programmers. I hate doing something again and again, even if it differs slightly from the first time. But I enjoy building bigger things based on what I did before. Then I just love programming!&lt;/p&gt;&#xA;" OwnerUserId="5688" LastActivityDate="2010-10-26T06:44:38.987" />
  <row Id="14673" PostTypeId="1" AcceptedAnswerId="14674" CreationDate="2010-10-26T06:49:08.160" Score="4" ViewCount="258" Body="&lt;p&gt;Since Oracle bought Sun and Apple have decided not to continue developing their JVM, is the &quot;write once and run everywhere&quot; model still relevant or has web services/SOA reduced it to an edge case?&lt;/p&gt;&#xA;" OwnerUserId="4960" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-10-26T06:59:45.680" LastActivityDate="2010-10-26T09:23:59.640" Title="Write once, run anywhere. Is it still relevant?" Tags="&lt;java&gt;&lt;coding&gt;&lt;cross-platform&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="14674" PostTypeId="2" ParentId="14673" CreationDate="2010-10-26T06:58:02.153" Score="3" ViewCount="" Body="&lt;p&gt;Whatever the fate of the JVM, &quot;write once, run anywhere&quot; is still extraordinarily relevant. The WAY you achieve that goal -- using a VM or translating down to a machine-specific language -- is irrelevant. In 2010 the desktop is still a VERY hot topic and apps are very much alive. What's all the buzz about iPhone anyway? They're client-side apps, and if you can cover more platforms at once -- whether you do it with Java or something like Python in Titanium (sadly, no Python for iOS, if I understand correctly) -- you save money, development time, and ultimately have more left over to buy sushi.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, native apps have their place, &lt;code&gt;[[[even if] you write:them] likeThis];&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Later:&lt;/strong&gt; Since you did mention WS in this, you're probably talking about the server-side. It's still relevant: being able to change server platforms gives a technology company flexibility as prices and performance of server OSes vary through time. So many things are write-once run anywhere on the server-side now, though: Rails, PHP. But still, very relevant.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-10-26T06:58:02.153" CommentCount="4" />
  <row Id="14675" PostTypeId="2" ParentId="1267" CreationDate="2010-10-26T07:05:44.997" Score="1" ViewCount="" Body="&lt;p&gt;Yes&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is the closest thing to wish fulfilment there is.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-10-26T07:05:44.997" />
  <row Id="14676" PostTypeId="2" ParentId="14570" CreationDate="2010-10-26T07:09:19.287" Score="1" ViewCount="" Body="&lt;p&gt;I would find a beginners tutorial and follow the samples in it, creating them from scratch (not copy/pasting), understanding the basic concepts. Usually, many tutorials point out where to extend this or that sample to play with more features. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if the framework/toolset/technology is interesting, new ideas will come to your mind while stepping through the tutorial.&lt;/p&gt;&#xA;" OwnerUserId="1524" LastActivityDate="2010-10-26T07:09:19.287" />
  <row Id="14677" PostTypeId="2" ParentId="13349" CreationDate="2010-10-26T07:17:07.900" Score="7" ViewCount="" Body="&lt;p&gt;No I think not. For these specific reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;It is very, very hard to produce high quality, competitive software with distributed (dispersed) teams, especially when the customer is not actually on-site to answer questions.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Programming is a non-deterministic, problem solving, creative effort and it is simply not possible to just &quot;throw more bodies&quot; at the problem to get it sorted.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Finally, any sufficiently experienced programmer will probably want to migrate to other countries with higher standards and better pay.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-10-27T08:06:08.687" LastActivityDate="2010-10-27T08:06:08.687" CommunityOwnedDate="2011-02-03T13:18:28.527" CommentCount="1" />
  <row Id="14678" PostTypeId="2" ParentId="14596" CreationDate="2010-10-26T07:19:08.553" Score="2" ViewCount="" Body="&lt;p&gt;As other stated in their answers, quality is very important from a technical point of view.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But quality is also very important for motivation. If your boss asks you to make shit, on the long run, it will destruct you. Imagine yourself in a drink answering the question &quot;what do you do?&quot; you won't answer &quot;I write shit for a insane manager&quot; isn't it? But you will think it loudly...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I think that the key in organization is making its employees proud of what they make.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That said, quality can be one of the four factor that you would reduce in order to get to the market. Four factors are resources, time, scope, and quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've once worked on a project where resources was limited, scope vital and deadline fixed to tbe first if january by a contract that would have make that company loose millions every minutes of late.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The decision has been made to do our best but withou considering quality over time &amp;amp; scope.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The application generated enought profit on its first hour of run to paid back past development AND the complete rewrite that was planned afterwards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Conclusion: quality IS very important, but sometimes, business priorities requires you to reduce it for the well being of the whole organisation.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-26T07:19:08.553" CommentCount="1" />
  <row Id="14679" PostTypeId="2" ParentId="14297" CreationDate="2010-10-26T07:22:21.413" Score="0" ViewCount="" Body="&lt;p&gt;getters all over the place make me freak out. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;and a special thing: getters delegating to other getters. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;this is bad because it means the person who wrote that doesn't understand the basic of object-oriented, which is encapsulation, which means where the data is, the methods that act on that data should be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;delegation is for one method not all the getters. the principle is &quot;tell, dont's ask&quot;; tell one thing to an object to do, don't ask it for one thousand things and then do it yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;getters freak me out, cause it means other oop principles are going to be violated hard core.&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-26T07:22:21.413" CommunityOwnedDate="2010-10-26T07:22:21.413" />
  <row Id="14680" PostTypeId="2" ParentId="14650" CreationDate="2010-10-26T07:25:54.280" Score="5" ViewCount="" Body="&lt;p&gt;it's a very short list, made of two books :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;head first - design patterns&lt;/li&gt;&#xA;&lt;li&gt;clean code&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-26T07:25:54.280" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="14681" PostTypeId="2" ParentId="14673" CreationDate="2010-10-26T07:33:40.237" Score="2" ViewCount="" Body="&lt;p&gt;Yes, it's still relevant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you live in a part of the world that has highly available, ultra-fast Internet access, you're lucky.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you're that lucky, and the webservice you wish to use is that lucky, you still have to suffer the issues of latency, and the fallacies of distributed computing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just imagine for a moment what it would be like to use something like Photoshop through a browser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So desktop applications probably aren't going away anytime soon. Which means that if you want to target multiple platforms/architectures, you need to care about write once, run anywhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As &lt;a href=&quot;http://programmers.stackexchange.com/questions/14673/write-once-run-anywhere-is-it-still-relevant/14674#14674&quot;&gt;Yar points out&lt;/a&gt; it doesn't terribly matter how you get WORA, whether you use a VM, or cross-translation. The important question is whether or not you wish to target multiple platforms in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Historical note: everyone seems to think of Java when they hear &quot;VM&quot;, but virtual machines were old news long before Java was on the scene.)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-26T07:33:40.237" CommentCount="3" />
  <row Id="14682" PostTypeId="1" AcceptedAnswerId="14686" CreationDate="2010-10-26T08:05:32.597" Score="7" ViewCount="550" Body="&lt;p&gt;If you have been asked to explain Big-O in your words.&#xA;How would you define it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When should one use it and when not?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Provide some examples. &lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-10-26T14:37:58.843" Title="Explain Big O notation in your words." Tags="&lt;computer-science&gt;&lt;algorithms&gt;&lt;big-o&gt;" AnswerCount="9" CommentCount="3" FavoriteCount="8" />
  <row Id="14683" PostTypeId="2" ParentId="14650" CreationDate="2010-10-26T08:09:02.737" Score="2" ViewCount="" Body="&lt;p&gt;When I first read the &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201633612&quot; rel=&quot;nofollow&quot;&gt;Design Patterns&lt;/a&gt; Book in 1995 or something it was a real eye-opener for me as a programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nowadays, &lt;a href=&quot;http://jamesshore.com/Agile-Book/&quot; rel=&quot;nofollow&quot;&gt;James Shores'&lt;/a&gt; book about agile development inspired me a lot, and lately &lt;a href=&quot;http://www.coachingagileteams.com/publications/books/&quot; rel=&quot;nofollow&quot;&gt;Lyssa Adkins&lt;/a&gt; about coaching teams, both of which are highly recommended if you are interested in such stuff.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-10-26T08:09:02.737" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="14684" PostTypeId="2" ParentId="14650" CreationDate="2010-10-26T08:16:26.903" Score="3" ViewCount="" Body="&lt;p&gt;Those of an Eastern bent may enjoy a cute little book of koans on the transcendent &lt;a href=&quot;http://www.canonical.org/~kragen/tao-of-programming.html&quot; rel=&quot;nofollow&quot;&gt;Tao of Programming&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This was my first step toward on the path toward enlightenment, and was the first thing that encouraged me to think about programming, and creative work in general, as an unconquerable entity of its own that exists to be discovered over time by the creator. Those who try to fight it or understand it will surely fail.&lt;/p&gt;&#xA;" OwnerUserId="2107" LastActivityDate="2010-10-26T08:16:26.903" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="14685" PostTypeId="2" ParentId="14673" CreationDate="2010-10-26T08:28:57.790" Score="2" ViewCount="" Body="&lt;p&gt;Write once, run anywhere always had a couple of problems:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;write once, debug everywhere&quot;: developers coming from a particular platform would occasionally make unwarranted assumptions about how &lt;em&gt;all&lt;/em&gt; platforms worked, e.g. that configuration could always be stored in a registry, that all execution environments have virtual memory, or that all mobile phones that claim to support JPEG can actually render JPEGs. So in fact you would need to test your application on every platform you claimed to support, bringing the development costs back up.&lt;/li&gt;&#xA;&lt;li&gt;&quot;write once, run away&quot;: user interfaces in cross-platform apps tend to borrow the HCI paradigms of the platform in which the designer was most comfortable, and therefore don't fit well in the platforms to which they're ported. Even where the widget library has been engineered to produce native-looking controls (Apple, in particular, invested heavily in making Swing look native) the placement, behaviour and workflow can still be different.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;On the server side these problems are less significant - the browser is the UI, and people tend to choose one of either Win or *nix and stay with it. In that instance, &quot;write once, run anywhere&quot; was what allowed numerous companies to ditch Solaris for Linux after the dot-com crash.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-10-26T08:28:57.790" />
  <row Id="14686" PostTypeId="2" ParentId="14682" CreationDate="2010-10-26T08:45:06.193" Score="8" ViewCount="" Body="&lt;p&gt;Big-O describes &lt;strong&gt;the relative (to itself) slowness of an algorithm as a function of the dataset size&lt;/strong&gt;. For example, sorting algorithms:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;O(n) means that if sorting 10 elements takes 1 second, sorting 100 elements takes 10 seconds.&lt;/li&gt;&#xA;&lt;li&gt;O(n^2) means that if sorting 10 elements takes 1 second, sorting 100 elements takes 100 seconds.&lt;/li&gt;&#xA;&lt;li&gt;O(log n): 10 elements takes 1 second, 100 elements takes 2 seconds, 1000 elements takes 3 seconds.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-26T08:50:22.147" LastActivityDate="2010-10-26T08:50:22.147" CommentCount="6" />
  <row Id="14687" PostTypeId="2" ParentId="14645" CreationDate="2010-10-26T08:47:11.357" Score="0" ViewCount="" Body="&lt;p&gt;How would you solve a problem you've hit a brick wall with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every programmer every now and again doing interesting work will hit a wall with something that goes beyond their experience and ability to independently think around, a decent programmer will have come across this and know how to deal with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Asking a coworker is the first and best answer but must be backed up by follow-ups like, MSDN/PHP Docs or whatever the authoritative documentation for your language/framework is, stackoverflow, MSN to old colleagues, twitter - the more the better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always ask this one and it gives good insight.&lt;/p&gt;&#xA;" OwnerUserId="561" LastEditorUserId="561" LastEditorDisplayName="" LastEditDate="2010-10-26T11:07:10.487" LastActivityDate="2010-10-26T11:07:10.487" />
  <row Id="14688" PostTypeId="2" ParentId="14673" CreationDate="2010-10-26T08:48:55.487" Score="2" ViewCount="" Body="&lt;p&gt;Yes, but in web-realm (give or take a few browser quirks). As for desktops, the &quot;write once, run anywhere&quot; is pretty much irrelevant given that something like 90% computer users in the world are MS Windows users.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-10-26T08:48:55.487" CommentCount="1" />
  <row Id="14689" PostTypeId="2" ParentId="14673" CreationDate="2010-10-26T08:49:15.627" Score="1" ViewCount="" Body="&lt;p&gt;Less than it was, it seems to me, certainly on the client. Javascript is constantly getting faster and more powerful and with the opportunities offered by HTML 5 there will be many more options for working in the browser in future ( or indeed now ) to do things that in the past would have needed some kind of client side software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the server it's less of an issue anyway I think- often enough I've used windows to develop Perl, PHP or Rails applications to run on linux or bsd servers and by and large they have worked fine. If you're working to a scripting runtime then you get similar platform-agnostic benefits to working on the JVM ( which is quite similar in essence ) without the typing overhead of working in Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've experimented a bit with game development in Java and that is somewhere that write-once, read anywhere would be really handy, but actually once you need access to hardware accelleration you are no longer genuinely platform agnostic anyway....&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-26T08:49:15.627" />
  <row Id="14690" PostTypeId="2" ParentId="14682" CreationDate="2010-10-26T08:52:48.090" Score="5" ViewCount="" Body="&lt;p&gt;It describes what you get when you graph how long it takes against what you give it.&lt;/p&gt;&#xA;" OwnerUserId="2107" LastActivityDate="2010-10-26T08:52:48.090" CommentCount="2" />
  <row Id="14691" PostTypeId="2" ParentId="525" CreationDate="2010-10-26T08:54:15.333" Score="0" ViewCount="" Body="&lt;p&gt;My choice is Visual Studio or the free Web Developer Express. Before you start to downrate this, read carefully: NOT for the visual designer. In fact, I never used it. I write all my html/css/js by hand, and I strive to get always standard compliant documents. The really amazing thing in VS is the text editor with full intellisense and autocompletion even for javascript if you supply the -vsdoc file. I tried many other ides but nothing gets me to the productivity levels of VS.&lt;/p&gt;&#xA;" OwnerUserId="3426" LastActivityDate="2010-10-26T08:54:15.333" CommentCount="2" />
  <row Id="14692" PostTypeId="2" ParentId="14650" CreationDate="2010-10-26T09:02:32.043" Score="4" ViewCount="" Body="&lt;p&gt;Originaly &lt;a href=&quot;http://www.joelonsoftware.com/&quot; rel=&quot;nofollow&quot;&gt;Joel on Software&lt;/a&gt;, the way he writes made it very easy to grasp the concepts when I was beginning.&lt;/p&gt;&#xA;" OwnerUserId="6457" LastActivityDate="2010-10-26T09:02:32.043" CommunityOwnedDate="2010-11-12T17:51:25.287" CommentCount="2" />
  <row Id="14693" PostTypeId="2" ParentId="14650" CreationDate="2010-10-26T09:02:44.523" Score="6" ViewCount="" Body="&lt;h2&gt;To read&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;books (both hyper inspirational, extremely educative, and deeply humbling):&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Hackers%3a_Heroes_of_the_Computer_Revolution&quot; rel=&quot;nofollow&quot;&gt;Hackers: Heroes of the Computer Revolution&lt;/a&gt;&lt;/em&gt;, by Stephen Levy&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;&lt;a href=&quot;http://books.google.com/books?id=58MhGwAACAAJ&quot; rel=&quot;nofollow&quot;&gt;Dealers of Lightning: Xerox PARC and the Dawn of the Computer Age&lt;/a&gt;&lt;/em&gt;, by Michael Hitzlik&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;essays:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;Teach Yourself Programming in 10 Years&lt;/a&gt;, by Peter Norvig&lt;/li&gt;&#xA;&lt;li&gt;Many &lt;a href=&quot;http://www.codinghorror.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Coding Horror&lt;/a&gt; articles and posts&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;To view&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=_5Z7eal4uXI&quot; rel=&quot;nofollow&quot;&gt;11&lt;/a&gt; &lt;a href=&quot;http://www.youtube.com/watch?v=lK_HThS8DZo&quot; rel=&quot;nofollow&quot;&gt;part&lt;/a&gt; &lt;a href=&quot;http://www.youtube.com/watch?v=Scf6dV4FSf8&quot; rel=&quot;nofollow&quot;&gt;interview&lt;/a&gt; &lt;a href=&quot;http://www.youtube.com/watch?v=cCvLTlQWT6A&quot; rel=&quot;nofollow&quot;&gt;with&lt;/a&gt; &lt;a href=&quot;http://www.youtube.com/watch?v=wuhHIqJyjY0&quot; rel=&quot;nofollow&quot;&gt;Bill&lt;/a&gt; &lt;a href=&quot;http://www.youtube.com/watch?v=PXKv9jc-otc&quot; rel=&quot;nofollow&quot;&gt;Gates&lt;/a&gt; &lt;a href=&quot;http://www.youtube.com/watch?v=D_rxpAgBFQo&quot; rel=&quot;nofollow&quot;&gt;and&lt;/a&gt; &lt;a href=&quot;http://www.youtube.com/watch?v=X2aLYBC5onk&quot; rel=&quot;nofollow&quot;&gt;Steve&lt;/a&gt; &lt;a href=&quot;http://www.youtube.com/watch?v=hM8K1yexO6s&quot; rel=&quot;nofollow&quot;&gt;Jobs&lt;/a&gt; &lt;a href=&quot;http://www.youtube.com/watch?v=QGH-1L-0zo4&quot; rel=&quot;nofollow&quot;&gt;on&lt;/a&gt; &lt;a href=&quot;http://www.youtube.com/watch?v=oQwhbazr5ug&quot; rel=&quot;nofollow&quot;&gt;Youtube&lt;/a&gt; (The hosts are truly useless, but the guests are inspirational, obviously).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;Sometimes it's more about people...&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;And a bunch of people on whose footsteps to follow, and on whose shoulders to stand (in no particular order and listed as they come to my mind now in free-flow): &lt;a href=&quot;http://en.wikipedia.org/wiki/Alan_Kay&quot; rel=&quot;nofollow&quot;&gt;Alan Kay&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Richard_Stallman&quot; rel=&quot;nofollow&quot;&gt;Richard Stallman&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Ken_Thompson&quot; rel=&quot;nofollow&quot;&gt;Ken Thompson&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Dennis_Ritchie&quot; rel=&quot;nofollow&quot;&gt;Dennis Ritchie&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Brian_Kernighan&quot; rel=&quot;nofollow&quot;&gt;Brian Kernighan&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Theo_de_Raadt&quot; rel=&quot;nofollow&quot;&gt;Theo de Raadt&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Linus_Torvalds&quot; rel=&quot;nofollow&quot;&gt;Linus Torvalds&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Eric_S._Raymond&quot; rel=&quot;nofollow&quot;&gt;Eric S. Raymond&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Rob_Pike&quot; rel=&quot;nofollow&quot;&gt;Rob Pike&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Bill_Gates&quot; rel=&quot;nofollow&quot;&gt;Bill Gates&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Steve_Jobs&quot; rel=&quot;nofollow&quot;&gt;Steve Jobs&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/John_McCarthy_%28computer_scientist%29&quot; rel=&quot;nofollow&quot;&gt;John MacCarthy&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/John_Horton_Conway&quot; rel=&quot;nofollow&quot;&gt;John Conway&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Martin_Odersky&quot; rel=&quot;nofollow&quot;&gt;Martin Odersky&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/James_Gosling&quot; rel=&quot;nofollow&quot;&gt;James Gosling&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Guy_L._Steele,_Jr.&quot; rel=&quot;nofollow&quot;&gt;Guy Steele&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Donald_Knuth&quot; rel=&quot;nofollow&quot;&gt;Donald Knuth&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Edsger_W._Dijkstra&quot; rel=&quot;nofollow&quot;&gt;Edsger Dijkstra&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/John_D._Carmack&quot; rel=&quot;nofollow&quot;&gt;John Carmack&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Peter_Molyneux&quot; rel=&quot;nofollow&quot;&gt;Peter Molyneux&lt;/a&gt;... Either their own words and works were inspirational or their stories told by others. As long as you keep in mind that their skills and genius in some areas doesn't prevent them to be blind-sided by their own beliefs in others. Like anyone else. (The 2 books listed above will already cover them fairly well, for most of them!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or less famous but nonetheless active technologists that are interesting to follow from afar: Neal Gafter, &lt;a href=&quot;http://en.wikipedia.org/wiki/Martin_Fowler&quot; rel=&quot;nofollow&quot;&gt;Martin Fowler&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Don_Syme&quot; rel=&quot;nofollow&quot;&gt;Don Syme&lt;/a&gt;, etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was inspired by the works of these people, and the things they did to achieve (or abandon) their projects.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Sometimes it's more about a culture and a dream, and breaking barriers...&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Reading the &lt;a href=&quot;http://en.wikipedia.org/wiki/2600%3a_The_Hacker_Quarterly&quot; rel=&quot;nofollow&quot;&gt;2600&lt;/a&gt; as a kid when my English was embyonic, the story of &lt;a href=&quot;http://en.wikipedia.org/wiki/Phreaking&quot; rel=&quot;nofollow&quot;&gt;early phreakers&lt;/a&gt; like &lt;a href=&quot;http://en.wikipedia.org/wiki/John_Draper&quot; rel=&quot;nofollow&quot;&gt;Captain Crunch&lt;/a&gt; or the birth of the PC era with &lt;a href=&quot;http://en.wikipedia.org/wiki/Steve_Wozniak&quot; rel=&quot;nofollow&quot;&gt;Wozniak&lt;/a&gt; at Apple and reading books and essays by &lt;a href=&quot;http://en.wikipedia.org/wiki/William_Gibson&quot; rel=&quot;nofollow&quot;&gt;William Gibson&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Neal_Stephenson&quot; rel=&quot;nofollow&quot;&gt;Neil Stephenson&lt;/a&gt; were also inspirational for me as a programmer, though it didn't relate to programming directly. In that vein, even the &lt;a href=&quot;http://en.wikipedia.org/wiki/Hacker_Manifesto&quot; rel=&quot;nofollow&quot;&gt;Hacker's Manifesto&lt;/a&gt;, the &lt;a href=&quot;http://www.google.co.uk/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;sqi=2&amp;amp;ved=0CBwQFjAA&amp;amp;url=http%3A%2F%2Fagilemanifesto.org%2F&amp;amp;ei=9E3cTJ2aBYq0hAf51P3-Dw&amp;amp;usg=AFQjCNHwXRVf_KP8rGFX8ts0m0mI78Wc5Q&amp;amp;sig2=_TUCptfD_F-iijXgD67Gpw&quot; rel=&quot;nofollow&quot;&gt;Agile Manigesto&lt;/a&gt; or even things like the &lt;a href=&quot;http://www.ieee.org/membership_services/membership/ethics_code.html&quot; rel=&quot;nofollow&quot;&gt;IEEE Code of Ethics&lt;/a&gt; were and still are inspirational.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-11-11T20:17:36.837" LastActivityDate="2010-11-11T20:17:36.837" CommunityOwnedDate="2010-11-12T17:51:25.287" CommentCount="5" />
  <row Id="14694" PostTypeId="2" ParentId="14467" CreationDate="2010-10-26T09:05:21.817" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Think of the  simplest of  programmers dilemmas:- You want to allocate an array ( whose  size is to be decided upfront) to store some program data in working memory.&lt;/strong&gt;&lt;br&gt;&#xA; Now this is fairly analogous  to the dilemma that a start up faces; its very hard to accurately predict the IT infrastructure/data requirements upfront.  You just don't know the future. So a smaller initial allocation will likely require a costly reallocation and copying of the array's contents at some point in future if the startup picks up growth. On the other hand a larger initial allocation risks being a dangerous waste of meager resources if growth does not happen as expected or very slow to come by.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Large companies providing cloud services is like someone  pre allocating a large array for you upfront, without you having to worry about the future  cost of the entire array.&lt;/strong&gt; Now this makes perfect economic sense for both the provider (the cloud company ) and the consumer of the array(that is the startup). The consumer uses as much of the array as it needs at a given point in time; no more no less. So it can enjoy a seamless scaling up (pay as you go) experience. For the provider it makes sense as he is not bound to just one app. using the array. He can lease a certain range of array locations to one app. and other ranges to other apps. The cost of maintenance and management per array location decreases as the size of the array grows. Thus the provider accrues the benefits of economies of scale. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;So the basic idea behind the cloud hype is economically sound and feasible.&lt;/strong&gt; Now, how much of an impact it has on the industry in the real world .... too early to say. &lt;/p&gt;&#xA;" LastActivityDate="2010-10-26T20:35:10.333" />
  <row Id="14695" PostTypeId="2" ParentId="525" CreationDate="2010-10-26T09:05:50.717" Score="1" ViewCount="" Body="&lt;p&gt;For PHP I recommend &lt;a href=&quot;http://www.nusphere.com/products/phped.htm&quot; rel=&quot;nofollow&quot;&gt;PHPEd&lt;/a&gt; Only thing it isn't particulary good at is js completion but other than that it does everything a web dev needs.&lt;/p&gt;&#xA;" OwnerUserId="6457" LastActivityDate="2010-10-26T09:05:50.717" />
  <row Id="14696" PostTypeId="2" ParentId="14645" CreationDate="2010-10-26T09:07:09.473" Score="2" ViewCount="" Body="&lt;p&gt;One test I had which worked quite well was to given, on hard copy, a small program and the task was to determine the output of the program. The program implemented a linked list, added a set of values to the list then traversed the list outputing the values of each node. The catch was that the linked list implementation didn't behave in the standard way, it added new items to the front of the list so that traversing the list would output the values in a different order to the order they were added.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This would sort out people who can really read and understand code from those who jump to conclusions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Needless to say, it didn't catch me out as I used the boxes-and-arrows method to track the behaviour of the linked list.&lt;/p&gt;&#xA;" OwnerUserId="914" LastActivityDate="2010-10-26T09:07:09.473" CommentCount="1" />
  <row Id="14697" PostTypeId="2" ParentId="14682" CreationDate="2010-10-26T09:18:27.743" Score="1" ViewCount="" Body="&lt;p&gt;If we were to plot a &lt;strong&gt;datasize x algospeed curve&lt;/strong&gt; , it will usually give you an inverse relationship. The term in the paranthesis of O() notation for an algorithm will indicate the  &lt;strong&gt;slope of that curve&lt;/strong&gt;. Smaller the scale of the term in the paranthesis, lesser the slope of the curve, faster the algorithm compared to other alogos as the data size increases. &lt;/p&gt;&#xA;" LastActivityDate="2010-10-26T09:18:27.743" />
  <row Id="14698" PostTypeId="2" ParentId="14645" CreationDate="2010-10-26T09:18:51.980" Score="17" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Give them a computer, a text editor and ask them to write some code&lt;/strong&gt; in a suitable language that performs a common function like strstr()/string.IndexOf(str), itoa()/int.toString(). You choose - best to have a number of options if a newbie isn't familiar with the function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Leave them alone for a few minutes to do this. The language doesn't really matter - something appropriate will do, as long as no library calls (at all). It doesn't have to compile and run  - but you could do this together when they're done, just for kicks. Obviously, no access to the web for this exercise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This should demonstrate:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Can the candidate write code at all. &lt;/li&gt;&#xA;&lt;li&gt;Can solve programming/algorithmic problems. If they're nowhere near a reasonable solution, no point in continuing the interview.&lt;/li&gt;&#xA;&lt;li&gt;Do they write maintainable code? Do they demonstrate an understanding that other team members might adapt their code?&lt;/li&gt;&#xA;&lt;li&gt;Is there any consistent style to the coding? It doesn't have to match your in-house style, but do they write consistently-styled code that is easy to read.&lt;/li&gt;&#xA;&lt;li&gt;Can they talk through their code? Do they get too defensive when you critique it? How do they respond to feedback?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Using this technique I have identified:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Candidates that can talk their way through the interview and then crumble when asked to write code.&lt;/li&gt;&#xA;&lt;li&gt;Candidates that bought in print outs of &lt;em&gt;someone else's code&lt;/em&gt; as an example of their own work.&lt;/li&gt;&#xA;&lt;li&gt;High-scoring graduates that couldn't get their head around an 'isUpperCase(char)' function.&lt;/li&gt;&#xA;&lt;li&gt;A guy who got aggressive and then then threatened the HR person and I who were interviewing him once we started to work through his code, giving him feedback on different approaches.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-10-26T09:26:39.013" LastActivityDate="2010-10-26T09:26:39.013" CommentCount="2" />
  <row Id="14699" PostTypeId="1" AcceptedAnswerId="14703" CreationDate="2010-10-26T09:23:51.237" Score="0" ViewCount="36" Body="&lt;p&gt;I would like to revert to a previous version of my code. I am using Aptana. Is it possible?&lt;/p&gt;&#xA;" OwnerUserId="392" LastActivityDate="2010-10-26T09:28:39.413" ClosedDate="2010-10-26T18:05:14.870" Title="Can you revert to a previous version of code in Aptana?" Tags="&lt;web-development&gt;&lt;ide&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="0" />
  <row Id="14700" PostTypeId="2" ParentId="14682" CreationDate="2010-10-26T09:23:54.117" Score="0" ViewCount="" Body="&lt;p&gt;it's a notation that tells the complexity of an algorithm. it works by telling how long it would take to run the algorithm with different number of elements (where the elements are the stuff to compute; more elements, more stuff to compute)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if you want to get into details: the big-o is usually applied when talking about the access time to searching an element into an array (or into a linked list) or to add/remove an element into a vector (versus into a linked list)&lt;/p&gt;&#xA;" OwnerUserId="2657" LastEditorUserId="2657" LastEditorDisplayName="" LastEditDate="2010-10-26T09:34:58.710" LastActivityDate="2010-10-26T09:34:58.710" />
  <row Id="14701" PostTypeId="2" ParentId="14673" CreationDate="2010-10-26T09:23:59.640" Score="0" ViewCount="" Body="&lt;p&gt;Its actually a pretty simple and straightforward case of a fundamental tension  that's not going away anytime soon. While its the developers dream, &quot;write once, run anywhere&quot;  commoditizes platforms. Platforms vendors' whole business depends on differentiation. For them , its &quot;Write once, and write for me only&quot;. The two sides will continue to pull in opposite directions for some time to come.  &lt;/p&gt;&#xA;" LastActivityDate="2010-10-26T09:23:59.640" />
  <row Id="14702" PostTypeId="2" ParentId="14596" CreationDate="2010-10-26T09:24:05.333" Score="6" ViewCount="" Body="&lt;p&gt;Remember that you need to actually ship software for it to be useful: there's no point in writing the most awesome code in the world if it isn't available when it's needed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's one of many requirements that you need to balance. Assuming your manager is competent I'd be listening to them: they're more likely to know the quality/speed ratio required for the project than you (as a fairly new dev) are. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or to use a common phrase: the perfect is the enemy of the good. &lt;/p&gt;&#xA;" OwnerUserId="5668" LastActivityDate="2010-10-26T09:24:05.333" CommentCount="1" />
  <row Id="14703" PostTypeId="2" ParentId="14699" CreationDate="2010-10-26T09:28:39.413" Score="0" ViewCount="" Body="&lt;p&gt;You would need a versioning system to restore a file, doubt Aptana can do it directly although the beta for 3 appears to include GIT support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If no versioning system you will have to rely on system backups, Previous versions on Vista/7 Pro+ and Time machine on Mac.&lt;/p&gt;&#xA;" OwnerUserId="6457" LastActivityDate="2010-10-26T09:28:39.413" CommentCount="1" />
  <row Id="14704" PostTypeId="2" ParentId="9675" CreationDate="2010-10-26T09:40:20.313" Score="1" ViewCount="" Body="&lt;p&gt;uhm, how about &lt;a href=&quot;http://haxe.org/doc/intro&quot; rel=&quot;nofollow&quot;&gt;haXe&lt;/a&gt;? You can target a lot of platforms by now and should you learn OCaml you're free to write a new backend for whatever you fancy.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-10-26T09:40:20.313" />
  <row Id="14705" PostTypeId="1" CreationDate="2010-10-26T09:46:06.990" Score="3" ViewCount="364" Body="&lt;p&gt;Are you using mind mapping software for solving programming problems? How can mind mapping help programmer in his thought process?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you please also suggest a good simple mind mapping software? Optionally, it could also be free.&lt;/p&gt;&#xA;" OwnerUserId="4486" LastEditorUserId="4486" LastEditorDisplayName="" LastEditDate="2010-10-26T09:54:05.843" LastActivityDate="2010-12-25T22:15:50.513" Title="Do you use mind mapping software for solving programming problems?" Tags="&lt;productivity&gt;&lt;software&gt;&lt;problem-solving&gt;" AnswerCount="10" CommentCount="3" FavoriteCount="3" />
  <row Id="14706" PostTypeId="1" AcceptedAnswerId="14710" CreationDate="2010-10-26T09:49:49.710" Score="57" ViewCount="3501" Body="&lt;p&gt;My manager told me that working overtime is just part of the job and that I'm expected to work overtime. We're not paid overtime like most companies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm aware that most programmers put in 50-60+ hour work weeks, but is that the attitude a manager should take? It seems like they're taking it for granted. Or maybe I'm totally wrong and it's completely normal :P&lt;/p&gt;&#xA;" OwnerUserId="3382" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-26T11:12:51.277" LastActivityDate="2011-01-12T19:14:34.977" ClosedDate="2010-12-10T13:33:45.663" Title="&quot;Overtime is part of the job&quot; true but a bad attitude?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;work-environment&gt;" AnswerCount="28" CommentCount="18" FavoriteCount="23" />
  <row Id="14707" PostTypeId="2" ParentId="14705" CreationDate="2010-10-26T09:54:56.450" Score="2" ViewCount="" Body="&lt;p&gt;I use mindmapping software all the time to sketch out ideas and relationships. A very good and free alternative is &lt;a href=&quot;http://freemind.sourceforge.net/wiki/index.php/Main_Page&quot; rel=&quot;nofollow&quot;&gt;FreeMind&lt;/a&gt;, which runs on all major platforms. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that it is helpful to just put down all my thoughts and ideas on a page, and then reorganize the map afterwards to map out relationships and connections.&lt;/p&gt;&#xA;" OwnerUserId="305" LastActivityDate="2010-10-26T09:54:56.450" CommentCount="2" />
  <row Id="14708" PostTypeId="1" CreationDate="2010-10-26T09:55:04.540" Score="0" ViewCount="79" Body="&lt;p&gt;We have a legacy application in Lotus Notes which I occasionally need to direct others to through either email or a web page.  I've had a look and Notes supports right-click-&gt;Copy as link which gives me the following on the clipboard:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;TITLE&#xA;&amp;lt;NDL&amp;gt;&#xA;&amp;lt;REPLICA 41256489:003B32D7&amp;gt;&#xA;&amp;lt;VIEW OF23697E95:6CDA5D6D-ON412564C7:00553BC3&amp;gt;&#xA;&amp;lt;NOTE OF6BCA8821:34ABD6F6-ONC12577C8:0034BEF2&amp;gt;&#xA;&amp;lt;HINT&amp;gt;CN=XXX/O=YYY&amp;lt;/HINT&amp;gt;&#xA;&amp;lt;REM&amp;gt;....&amp;lt;/REM&amp;gt;&#xA;&amp;lt;/NDL&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(slightly anonymized).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can I create a hyperlink which - when clicked - allow others to open Notes to this location?&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-26T09:55:04.540" ClosedDate="2010-10-26T18:06:09.330" Title="How to create hyperlink to legacy application in Lotus Notes" Tags="&lt;notes&gt;&lt;email&gt;" CommentCount="2" />
  <row Id="14709" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T09:58:46.053" Score="5" ViewCount="" Body="&lt;p&gt;That's sound reasonable for a young programmer that needs to prove to itself and others that he can do the job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have done this on my first project, but now I will never do that again. &#xA;My boss has never asked me to do such free overtime. (He even actually told me to go home when I stay late at the office !)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can do unpaid overtime when project is close to an important release but that is very occasional.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may have to spend 50, 60 or more hours on your project if you are your own boss or&#xA;if you are working for a small startup without fund and you think you will be rewarded when a big company will buy it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Else don't be a fool :) Your time is precious: keep it for you or sell it !&lt;/p&gt;&#xA;" OwnerUserId="4989" LastEditorUserId="4989" LastEditorDisplayName="" LastEditDate="2010-10-27T08:02:54.463" LastActivityDate="2010-10-27T08:02:54.463" />
  <row Id="14710" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T10:01:22.713" Score="141" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;That's insane. It's like CPU overclocking. It works, but you reduce the lifetime a lot, and in many case, you burn it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That said, &lt;strong&gt;sometimes is unavoidable&lt;/strong&gt; to do extra hours to fix an exceptional issue, or work over the weekend to meet a deadline you company must satisfy. That's a &lt;strong&gt;flexibility&lt;/strong&gt; you must provide.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any of the above cases, &lt;strong&gt;the extra hours should be paid or converted into vacation days&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;No one should work more than 40h a week&lt;/strong&gt;. Still today, I apply that rule to myself, and really dislike when my employees want to do too much. You have only one body, you must preserve it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's my opinion. It's bound to my beliefs that an &lt;strong&gt;happy&lt;/strong&gt; developer with a &lt;strong&gt;good health&lt;/strong&gt; is always better and more productive than a &lt;em&gt;crushed lemon&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-26T16:46:43.783" LastActivityDate="2010-10-26T16:46:43.783" CommentCount="27" />
  <row Id="14711" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T10:03:18.363" Score="4" ViewCount="" Body="&lt;p&gt;I suppose it depends, my friend is a games programmer, for them it is the norm near the end of the project but everyine wants to do the overtime and everyone does (all departments), also they benefit from a nice break after the release.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a contractor, I don't tend to do any overtime and no one wants me to (costs them), as a freelancer though I worked all the hours I could and loved it, that was down to working on projects I enjoyed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When last employed I only did overtime if critical and consider that the norm outside of areas like games etc.&lt;/p&gt;&#xA;" OwnerUserId="6457" LastActivityDate="2010-10-26T10:03:18.363" CommentCount="2" />
  <row Id="14712" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T10:11:01.487" Score="30" ViewCount="" Body="&lt;p&gt;I've had this kind of thing before, and it's normal - to a point.  I'm a late worker - I come in late, and I work late, and this is just how I work best. In a previous review my manager wanted me to come in earlier, but still wanted me to work late (though he'd quite often shoot off early).  He used the overtime argument as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I came back and told him to get the contract out - that was what we all signed, and we'd have a look at what the actual contracted hours are and we'd show that I was doing more than that.  If he liked, I could go to doing just the contracted hours and the company would lose out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In another case, I needed to stay home in the morning to meet some British Gas engineers for a boiler service.  He complained, but I reminded him that the next time he needed me to work a weekend, I might be busy that weekend.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He quickly made the point that there is an amount of give and take (well done boss, did you figure that out all on your own?)  The working relationship between you and the company works best when there's flexibility on both sides.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately it all comes down to what's in the contract.  The contract probably allows them to ask you to do overtime - it does not give them a license to engage in forced labor.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastEditorUserId="5375" LastEditorDisplayName="" LastEditDate="2010-10-26T10:18:39.233" LastActivityDate="2010-10-26T10:18:39.233" CommentCount="1" />
  <row Id="14713" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T10:13:07.007" Score="4" ViewCount="" Body="&lt;p&gt;Working extra hours should always be compensated for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This might be in the form of days off in lieu, being allowed to work shorter hours at other times or ultimately with more pay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There might not be a 1:1 correspondence between the two, for example you might only get one day off for every 2 or 3 days worth of extra hours, but it should be stated in your contract.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there isn't the coercion your manager may find that people work the extra hours anyway.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-10-26T13:12:33.903" LastActivityDate="2010-10-26T13:12:33.903" />
  <row Id="14714" PostTypeId="2" ParentId="525" CreationDate="2010-10-26T10:19:36.467" Score="1" ViewCount="" Body="&lt;p&gt;I have been using &lt;a href=&quot;http://www.jetbrains.com/webstorm/&quot; rel=&quot;nofollow&quot;&gt;webstorm&lt;/a&gt; recently and it may be the first ever piece of development software that I actually purchase. &lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-10-26T10:19:36.467" CommentCount="1" />
  <row Id="14715" PostTypeId="1" AcceptedAnswerId="14719" CreationDate="2010-10-26T10:30:36.857" Score="3" ViewCount="183" Body="&lt;p&gt;Is it any good ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://findbugs.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;http://findbugs.sourceforge.net/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had a go on the webstart/demo version and it did indeed look useful. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone got any experience with it, is it a valuable tool ?&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="1373" LastEditorDisplayName="" LastEditDate="2010-10-26T12:33:31.993" LastActivityDate="2010-10-30T17:53:17.447" Title="Find bugs in Java programs, specially using the eclipse plug-in." Tags="&lt;java&gt;&lt;bugs&gt;&lt;eclipse&gt;" AnswerCount="2" />
  <row Id="14716" PostTypeId="2" ParentId="14705" CreationDate="2010-10-26T10:37:06.477" Score="5" ViewCount="" Body="&lt;p&gt;I once did use the NovaMind software for mind-mapping by request from a non-tech client who was really into this. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have to say it did not work for me,  for the most of the time I was struggling with finding various icons to insert and then somehow interconnecting them. With my technical mind it just ended up being a messy and unorganized version of a UML diagram. Basically it just obscured my train of thought and added another layer of UNNECESSARY complexity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Maybe it's just me, but  at the end of the day, my impression was that this whole mind-mapping hype was a huge load of BS .&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-10-26T10:37:06.477" CommentCount="2" />
  <row Id="14717" PostTypeId="2" ParentId="14682" CreationDate="2010-10-26T10:46:39.177" Score="1" ViewCount="" Body="&lt;p&gt;Big O notation describes how the execution time for an algorithm will increase in worst case as its input increases.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-10-26T14:25:38.343" LastActivityDate="2010-10-26T14:25:38.343" />
  <row Id="14718" PostTypeId="2" ParentId="14705" CreationDate="2010-10-26T10:51:04.917" Score="0" ViewCount="" Body="&lt;p&gt;I use it for quickly getting thoughts about a large-scale project (e.g. my entire life, my business, my house) written down, but never for programming problems. I'm training myself to use TDD for solvign programming problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The mind-mapping software I use is &lt;a href=&quot;http://www.omnigroup.com/applications/omnigraffle/&quot; rel=&quot;nofollow&quot;&gt;OmniGraffle&lt;/a&gt;. I decided not to take up the optional part of your question; it isn't free.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-10-26T10:51:04.917" />
  <row Id="14719" PostTypeId="2" ParentId="14715" CreationDate="2010-10-26T10:53:58.200" Score="4" ViewCount="" Body="&lt;p&gt;It is the best static Java code analyzer out there, AFAIK. I don't have experience with the Eclipse plugin, but at least NetBeans plugin integration works fine. It shows the lines in the source code where it thinks something suspicious is going on. Bug detectors can be individually switched on/off from the Options menu.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found it especially useful in finding threading-related issues. That said, sometimes you'll want to do something that FindBugs thinks may be a potential bug but actually isn't, and there's nothing wrong with that. You're the programmer, FindBugs is just a tool; use it, but don't trust it blindly. For example, FindBugs suggests making &lt;code&gt;final&lt;/code&gt; everything that can be made. IMHO it just clutters code most of the time.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-26T11:04:29.017" LastActivityDate="2010-10-26T11:04:29.017" CommentCount="1" />
  <row Id="14720" PostTypeId="1" AcceptedAnswerId="14757" CreationDate="2010-10-26T10:58:35.637" Score="11" ViewCount="934" Body="&lt;p&gt;Imagine yourself hired by a new startup backed with few millions coming from venture capitalists.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your mission: &lt;code&gt;organize the development of the next killer app&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;25 developers is too much to take care of each individually, so &lt;strong&gt;what decision(s) you would make to motivate them?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;I will appreciate any answers from stock options to free cookies ;)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course the trick here (unless you are really a manager of a such startup), is put yourself in the shoes of one of those programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: it's an imaginary context. The purpose of this story is to stimulate your wishes. I want to capture what motivates developers.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-26T20:00:14.370" LastActivityDate="2011-02-25T17:01:54.597" CommunityOwnedDate="2011-02-24T20:58:48.413" Title="If you were the manager of a team of 25 developers, how would you motivate them?" Tags="&lt;productivity&gt;&lt;management&gt;&lt;motivation&gt;" AnswerCount="21" CommentCount="7" FavoriteCount="13" />
  <row Id="14721" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T10:58:43.053" Score="71" ViewCount="" Body="&lt;p&gt;I see overtime as a failure of planning and other processes. Your project should not require overtime, it should be properly estimated and resourced. If the planning has failed and the project is not properly resourced, forcing your developers to do unpaid overtime is not a good way of correcting the situation.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Good developers will often simply go and find somewhere else to work that has better conditions.&lt;/li&gt;&#xA;&lt;li&gt;Developers will be unwilling to use their contacts to aid with recruitment (no one wants to get their friends into an excessive unpaid overtime situation). And will not recommend the company as a good place to work should the opportunity arise as alumni in the future (they may even actively warn people off working there).&lt;/li&gt;&#xA;&lt;li&gt;Developers will rush the work as they want to go home. This will lead to a reduction in quality. Which will reduce your ability to correctly estimate changes to the project in the future (unexpected bugs, having to dealing with poor design and poor implementation decisions, etc).&lt;/li&gt;&#xA;&lt;li&gt;Developers will not spend time doing soft tasks, like thinking about how to find better abstractions, exploring the opportunity to exploit new technology, or furthering their understanding of the business and customers.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;All of these factors can result in a vicious cycle of overtime where overtime leads to lower quality leads to less predictability leads to more overtime.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compulsory paid overtime is not much better than compulsory unpaid overtime in my experience. Although voluntary paid overtime may alleviate at least some of the issues above.&lt;/p&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-10-26T10:58:43.053" CommentCount="4" />
  <row Id="14722" PostTypeId="2" ParentId="14618" CreationDate="2010-10-26T11:08:58.150" Score="4" ViewCount="" Body="&lt;p&gt;Turning down a job before having a chance to find out whether it suited you (by interview or doing it) prematurely limits your options. If the interviewer ascertains you've not got the experience, they may make you a lower offer with the option of increases based on performance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That you're 10 months out of school may not fill you with confidence that you can go for a 50% salary raise, but I say, what do you have to lose? You might have to get up a bit earlier, smarten up a bit (e.g. wear a shirt+trousers if you weren't already) and learn to pick your battles wisely, but if you can do the job, why not go get it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another way of looking at this is that you've somehow determined that value = $50k + ('time since college' * ~$5k). That doesn't make sense - remuneration is relative to the value you bring to your employer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your StackOverflow account demonstrates you know a lot about a number of technologies and that the SO community (by voting) corroborates this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, by my reckoning, you're a smart guy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's totally understandable to be a bit less confident as you're relatively inexperienced, but consider that some people are a 'natural born genius' and others have to learn everything the hard way. Is it so bad that your natural abilities are well paid?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have previously hired 'genius' guys at a reasonable entry salary, seen them become incredible engineers and have given them pay raises according to their output/value to the company rather than their age.&lt;/p&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-10-26T11:14:50.070" LastActivityDate="2010-10-26T11:14:50.070" CommentCount="1" />
  <row Id="14723" PostTypeId="2" ParentId="14720" CreationDate="2010-10-26T11:10:31.093" Score="15" ViewCount="" Body="&lt;p&gt;Delegate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming that the 25 developers will be working on different aspects of the application, split them into sub-teams and nominate 1 member of each team to be the team leader. (NOTE: This role should move around as the project develops and the teams get reshuffled).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now you have 5 team leads to motivate and they in turn have 4 developers to motivate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can concentrate on the &quot;global&quot; motivators (like stock options etc.) while your team leads can concentrate on the individual motivators (being allowed to leave early on a Wednesday).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure you are consistent and the team leads communicate their actions with you and each other to avoid unnecessary frictions.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-26T11:10:31.093" CommunityOwnedDate="2011-02-24T20:58:48.413" CommentCount="3" />
  <row Id="14724" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T11:14:01.703" Score="16" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;My manager told me that working overtime is just part of the job and that I'm expected to work overtime.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is wrong, for the most part.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, there are two types of overtime:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Overtime you put in because you want to - do not expect to be paid for this (unless you're a consultant, more on that later)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Mandatory overtime - if something has gone wrong, or a project is late, someone can sometimes tell you to put in some overtime. This should be paid for, and be aware that not all managers can demand mandatory overtime, this will vary from company to company.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There is nothing wrong with working a little bit extra from time to time - perhaps you're working on an interesting project, or you want to make a good impression - but unless you have an agreement with your employer, don't expect to be paid for this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Working a little bit extra can be fun when you can choose when you want to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if it is &lt;em&gt;expected&lt;/em&gt; that you work overtime, &lt;em&gt;all the time&lt;/em&gt;, this is a warning sign. It can work fine in the short term, but in the long term it can be very stressful, and you can risk burning out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest talking (confidentially) to someone in the HR department, if that is an option.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;We're not paid overtime like most companies.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't think it's that uncommon in the IT industry, but perhaps it depends on what kind of job you have. It wasn't until I started working as a consultant that I started getting paid for overtime, in the sense that there's a bonus that is related to how much I work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you're a consultant, being paid for overtime isn't such a big deal anymore - as you work more hours, the client is billed more hours, and thus it is not as expensive for the company you work for to pay you for overtime. It'll be more expensive for the client perhaps, but the nature of consulting is usually that you simply bill for hours spent. I've never heard of any consultants working for free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not sure why being paid for overtime is such a big deal, and I'm not sure how it is in other industries.&lt;/p&gt;&#xA;" OwnerUserId="1020" LastEditorUserId="1020" LastEditorDisplayName="" LastEditDate="2010-10-26T13:47:02.777" LastActivityDate="2010-10-26T13:47:02.777" CommentCount="4" />
  <row Id="14725" PostTypeId="2" ParentId="14570" CreationDate="2010-10-26T11:25:38.497" Score="1" ViewCount="" Body="&lt;p&gt;How about a url shortening service? I find it much easier and faster to create than a todo list or blog engine, and it's quite handy in the real world too. I'm actually building one now.&lt;/p&gt;&#xA;" OwnerUserId="6464" LastActivityDate="2010-10-26T11:25:38.497" />
  <row Id="14726" PostTypeId="2" ParentId="14720" CreationDate="2010-10-26T11:27:32.497" Score="6" ViewCount="" Body="&lt;p&gt;Edit: Upon reflection, here is the main point: treat employees like people, not like machines or &quot;resources&quot;.  Make sure they feel comfortable asking you questions or raising issues.  Make sure that you can accommodate people when they have personal issues, like a sick child or parent.  In other words, do your best to establish a rapport with them.  Also, 25 is still a small enough group to celebrate everyone's birthday with a cake. These little things make a world of difference.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Definitely stock options, so that the success of the company would have a significant impact on their own quality of life.  In addition to that, be open with them about what is going on in the business side of things.  The point is to make employees see at least some of the big picture in addition to their immediate responsibilities, so that they feel more like partners in the company, and less like cogs in a machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good working conditions.  Comfortable chairs, fast machines, large monitors, keyboards and mice they are most comfortable with.  A window is nice...  Good air flow.  Buy them books on programming if they want to improve their skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, having a meal together regularly, like once a week, preferably with beer, is great for morale.  25 people may be a bit too many for that, though.  So maybe individual teams should have pizza and beer together once a week.  Payed for by the company, of course. :)&lt;/p&gt;&#xA;" OwnerUserId="4365" LastEditorUserId="4365" LastEditorDisplayName="" LastEditDate="2010-10-26T14:29:26.060" LastActivityDate="2010-10-26T14:29:26.060" CommunityOwnedDate="2011-02-24T20:58:48.413" CommentCount="5" />
  <row Id="14727" PostTypeId="1" AcceptedAnswerId="14764" CreationDate="2010-10-26T11:38:56.943" Score="2" ViewCount="153" Body="&lt;p&gt;When your programming you often have to go and look at other pieces of code for reference, search for something etc. I'm looking for some numbers on the ratio of time spend actually typing the code(coding) and the time spend going back and forth between other parts of the system, not even counting browsing the internet, reading documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ofcourse this depends on a large number of factors, probably also on your IDE, programming language etc. I just need some rough estimates, or researches on the subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Background:&#xA;I want to investigate how much network latency is tolerable for a programmer to work on virtual machines (if any).  &lt;/p&gt;&#xA;" OwnerUserId="1022" LastActivityDate="2010-10-26T15:05:04.027" Title="When programming: How much time is spend navigating/scrolling and how much typing?" Tags="&lt;productivity&gt;&lt;programming&gt;&lt;time&gt;" AnswerCount="5" />
  <row Id="14728" PostTypeId="1" CreationDate="2010-10-26T11:39:02.357" Score="14" ViewCount="263" Body="&lt;p&gt;I have seen this happen multiple times:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The candidate likes the company, succeeds at the interview. Then comes to work and at the end of the first day he is sure the codebase/project is not what he would like to spend time with. So he leaves quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that introducing candidates to the codebase at the interview could potentially solve this problem. Maybe even better: mixing this with interview questions like &quot;how would you improve this part of the code?&quot; This way, it would be obvious if the candidate is a &quot;good fit for the codebase&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you seen this approach applied anywhere? Would you show your own codebase to the candidates at the interview: if they asked/as part of the interview process?&lt;/p&gt;&#xA;" OwnerUserId="4486" LastActivityDate="2010-10-26T14:03:56.687" Title="Would you show your production code to candidates at the interview?" Tags="&lt;code-quality&gt;&lt;interview&gt;" AnswerCount="4" FavoriteCount="3" />
  <row Id="14729" PostTypeId="2" ParentId="14727" CreationDate="2010-10-26T11:43:55.493" Score="1" ViewCount="" Body="&lt;p&gt;Depends on many factors.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning a new library?  A lot.&#xA;Have two monitors? Probably not much.&#xA;Dealing with code written by monkeys? Tons.&#xA;Reading/Writing documentation in a waterfall process? Tons.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-26T11:43:55.493" />
  <row Id="14730" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T11:51:24.307" Score="8" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;My manager told me that working overtime is just part of the job and that I'm expected to work overtime.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Occasional overtime is unfortunately sometimes necessary due to unforeseen circumstances.  Routine overtime should not be.  If you have a contract for 37.5 or 40 hours a week yet you are expected to work 50-60 hours a week every week, without additional compensation, then there is something wrong.  It's not what you signed up for and you are being taken advantage of.  In the EU it is illegal for your employer to ask you to work for more than 48 hours a week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, it's not particularly productive.  You cannot maintain the same level of output.  You'll probably end up being less productive than if you just worked 40 hours because tired programmers make mistakes and poor decisions.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;We're not paid overtime like most companies.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you're a salaried employee, getting paid for overtime is not that common.  Usually the best you can hope for is time off in lieu.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I'm aware that most programmers put in 50-60+ hour work weeks&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;[citation needed]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my first job, during crunch periods, I would  work from 9am to 7pm.  That was less than 50 hours a week but, with a 50-minute drive each way as well, it's not sustainable.  Since then, except for the occasional stay-late-to-fix-the-urgent-problem, I have generally been able to stick to 40 hours a week or less and never had to work on a Saturday.&lt;/p&gt;&#xA;" OwnerUserId="25" LastEditorUserId="25" LastEditorDisplayName="" LastEditDate="2010-10-26T12:38:54.780" LastActivityDate="2010-10-26T12:38:54.780" CommentCount="7" />
  <row Id="14731" PostTypeId="2" ParentId="14645" CreationDate="2010-10-26T11:58:58.460" Score="2" ViewCount="" Body="&lt;p&gt;One question I have found very revealing for entry level is to ask the candidate to implement a blocking queue of objects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always try to get them to do it on paper. It can be in the language of their choice (or one of the languages they claim to know, or pseudo code, depending what want). This way less time is wasted on the syntax or exact names of the language/api features and more is focused on the choice of algorithm. They can even invent their own language features to allow them to do it if they can't remember.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realise it is a textbook question, but we are usually recruiting people who will have to work on code with large amounts of concurrency. I have generally found that most people that cannot answer effectively also cannot answer the other more advanced and in-depth questions about how to deal with concurrency.&lt;/p&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-10-26T11:58:58.460" />
  <row Id="14732" PostTypeId="2" ParentId="14218" CreationDate="2010-10-26T12:00:39.973" Score="0" ViewCount="" Body="&lt;p&gt;The things that &lt;strong&gt;must&lt;/strong&gt; be covered in a coding standard are, IMO&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Naming conventions&lt;/li&gt;&#xA;&lt;li&gt;Code layout (brace placement, indentation, continuation of complex conditons, etc.)&lt;/li&gt;&#xA;&lt;li&gt;Documentation guidelines/layout&lt;/li&gt;&#xA;&lt;li&gt;Project-specific programming rules (multiple exits allowed or strictly SESE; discouraged language features (&lt;code&gt;goto&lt;/code&gt; anyone?), etc) and what to do when you have to break a rule.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;A &lt;em&gt;good&lt;/em&gt; coding standard would also have a rationale for the programming rules.&lt;/p&gt;&#xA;" OwnerUserId="5099" LastActivityDate="2010-10-26T12:00:39.973" />
  <row Id="14733" PostTypeId="2" ParentId="14727" CreationDate="2010-10-26T12:05:34.103" Score="0" ViewCount="" Body="&lt;p&gt;Depends on which phase of the project you're in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Initially there's a bunch of typing--I find that to be the case even when I'm tying in a lot of external stuff. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once I have the structure of the application in place and the general flow of the thing constructed, it becomes more navigational and surgical.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-10-26T12:05:34.103" />
  <row Id="14734" PostTypeId="2" ParentId="14705" CreationDate="2010-10-26T12:06:36.520" Score="4" ViewCount="" Body="&lt;p&gt;I do do mind mapping sometimes, this is because it's a quick way to grab ideas and link them up, making changes and regrouping things is very easy, it works great for more stream of conciousness creativity and it gives a nice visual representation of ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And for all the above reasons I don't use mind mapping software. I have tried a few and all of them break up the quick flow that makes the technique useful, some things are just better left to the whiteboard.&lt;/p&gt;&#xA;" OwnerUserId="6366" LastActivityDate="2010-10-26T12:06:36.520" />
  <row Id="14735" PostTypeId="2" ParentId="14720" CreationDate="2010-10-26T12:08:35.597" Score="6" ViewCount="" Body="&lt;p&gt;I agree with Dima and ChrisF. Except on one of Dima's points: stock options.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that this is a regional thing, but in many countries, stock options are taxed by the state at their actual value (inner value) when assigned or issued. This unless you can proof that the volatility does not allow to calculate an inner value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I once ended up paying in taxes for my stock options much more than what they were worth. They had a value of $40 each when issued, but I could not exercise them for a year, and by then they were down under a dollar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But back to your question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Individual working times, great tools, influence in decision making, an environment free of politics (keep it away from them, so they can work). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fringe benefits like a budget to spend on their own on tools, books, courses. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;NO cubicles, at most 3 people in an office with more than 9 m2 per person. If possible, move the team in its own building or at least on its own floor. Let them personalize their desk - no desk police.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eliminate phones from their desks (email without sound or instant messaging, again without sound, and telephone booths outside the offices with chairs and small desks for their laptops, no interruption of workflow without urgency). Have a secretary to handle incoming phone calls.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As little meetings as possible. Don't do them on Mondays (Mondays aren't fun anyway, some are still in the weekend, some lose the last energy to start through) or on Fridays (what did I just say about weekends), but Wednesdays are perfect (this gives a nice break in mid week).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Administrative rights on their machines. No first and second level support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would not like to be forced to eat with the bunch - I know I am different - as I need a break from being with the same people all day. But a croissant break for informal information exchange, a monthly evening out with no peer pressure to participate every time and with spouses (bowling, dinner) would do it for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To second ChrisF: I don't think that anybody can handle 25 direct reports. Form teams. And from time to time organize a competition between them.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-26T12:08:35.597" CommunityOwnedDate="2011-02-24T20:58:48.413" CommentCount="2" />
  <row Id="14736" PostTypeId="2" ParentId="525" CreationDate="2010-10-26T12:09:52.207" Score="1" ViewCount="" Body="&lt;p&gt;Shocked that nobody has mentioned &lt;strong&gt;&lt;a href=&quot;http://www.eclipse.org&quot; rel=&quot;nofollow&quot;&gt;eclipse&lt;/a&gt;&lt;/strong&gt; yet.... built in debugger and web browser, plugin/extension support, good refactoring.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-10-26T12:09:52.207" />
  <row Id="14737" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T12:14:28.870" Score="30" ViewCount="" Body="&lt;p&gt;In Western companies, having a culture of mandatory overtime is generally a &quot;job smell&quot; and a pretty good indication that something is wrong either with the corporate culture, the leadership of the group you are in, or the management of the project you are working on. It has generally been shown that requiring employees to work overtime is bad for their moral and in most cases, also causes degradation in their performance. What's the point in staying late to write more code if you end up introducing errors that take twice as long to correct?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Granted you might have to work overtime from time to time due to various issues that pop up, but a properly run project should be constrained to assumption that the team members will be working a normal work week (i.e. 40 hours) and timelines should be set based upon that assumption. &lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-10-26T12:14:28.870" CommentCount="1" />
  <row Id="14738" PostTypeId="2" ParentId="14720" CreationDate="2010-10-26T12:15:37.527" Score="24" ViewCount="" Body="&lt;p&gt;Give them interesting problems to work on, and their choice of tools to work on them, then get out of their way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Great programmers are not motivated by money, or by status within a company. They need enough money and status to be comfortable, but that's it. Great programmers are motivated by interest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Paul Graham &lt;a href=&quot;http://www.paulgraham.com/gh.html&quot; rel=&quot;nofollow&quot;&gt;agrees with me&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="854" LastActivityDate="2010-10-26T12:15:37.527" CommunityOwnedDate="2011-02-24T20:58:48.413" CommentCount="9" />
  <row Id="14739" PostTypeId="2" ParentId="14728" CreationDate="2010-10-26T12:16:47.380" Score="1" ViewCount="" Body="&lt;p&gt;Yes, if the code in question didn't belong to a client.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Last time I interviewed someone, the person rocked up and felt completely overwhelmed at the size of the codebase, and soon left.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the code belonged to a client, it wouldn't (in my opinion) be ethical to show the source, because your client's code is your client's, not yours. (Of course, if you asked your client for permission, and you got it, then there's no problem.)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-26T12:16:47.380" />
  <row Id="14740" PostTypeId="2" ParentId="14728" CreationDate="2010-10-26T12:18:15.027" Score="4" ViewCount="" Body="&lt;p&gt;I haven't done it, but I would. If a developer thought it didn't look like something he wanted to work on, this could be a chance to find something out about the candidate's mentality: why doesn't he like it? What would he change? Would he enjoy being in a position where he could make such a change? If so, why did he originally say he didn't want to work on it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen sentiment on the daily WTF that people think if an interviewer shows you real code, she is trying to get the candidate to fix her problems for free. This is paranoid, IMO. The interviewer is trying to find out how well you can solve real world problems in a real world codebase. And you get to find out more about the project you'll be working on.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-10-26T12:18:15.027" />
  <row Id="14741" PostTypeId="2" ParentId="14728" CreationDate="2010-10-26T12:19:56.010" Score="7" ViewCount="" Body="&lt;p&gt;We not only show the candidates our code, we get them to work on it. We do pair programming, so we do interviews by pairing the candidate with one of our programmers and working on a real problem (albeit a carefully chosen one - something that doesn't need masses of contextual knowledge). They get to see our code, and we get to see their coding, and we both get to see how they fit in with our culture.&lt;/p&gt;&#xA;" OwnerUserId="854" LastActivityDate="2010-10-26T12:19:56.010" CommentCount="5" />
  <row Id="14742" PostTypeId="2" ParentId="14551" CreationDate="2010-10-26T12:32:14.553" Score="0" ViewCount="" Body="&lt;p&gt;If you can present yourself in a manner that shows that despite your lack of official work experience, you are in fact truly apt for any related position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that you have already what it takes to be in the industry, interviewers won't overlook that. So you should not hesitate to apply for jobs and attend interviews because unless you try, you won't know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To address some of your maybe you can establish a company (with a friend, or otherwise) and make it seem like the projects you have worked on were for this company. It might seem like lying but I like to think that it's part of the game we have to play.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for references, you might want to look into contracting/volunteering for small/medium companies, they won't turn down free help from someone as experienced as you are, and after a while I am sure they'd be glad to provide with references.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck! Happy hunting.&lt;/p&gt;&#xA;" OwnerUserId="1345" LastActivityDate="2010-10-26T12:32:14.553" />
  <row Id="14743" PostTypeId="2" ParentId="14720" CreationDate="2010-10-26T12:35:38.877" Score="3" ViewCount="" Body="&lt;p&gt;IMO, stock options in startups are a bit of a scam.  It typically goes like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1)  A team of bright energetic young developers is recruited with promises of getting rich through stock options.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2)  The startup runs through its initial capital and second round of VC funding is injected.  The options are diluted to 1/2, 1/4 of there initial paper value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3)  This is repeated once, twice, ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually the startup folds and the developers' options are totally worthless.  Alternatively, they are so diluted that the developers' return is tiny.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that you should be paying your developers a decent salary in real money.  Whether this motivates them depends on their personalities.  But at least they will be getting a fair return for their labor ... not some flim-flam. &lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-10-26T12:35:38.877" CommunityOwnedDate="2011-02-24T20:58:48.413" CommentCount="3" />
  <row Id="14744" PostTypeId="1" AcceptedAnswerId="14747" CreationDate="2010-10-26T12:35:49.270" Score="17" ViewCount="1133" Body="&lt;p&gt;My first programming language was PHP (&lt;strong&gt;&lt;em&gt;gasp&lt;/em&gt;&lt;/strong&gt;).  After that I started working with JavaScript.  I've recently done work in C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never once looked at low or mid level languages like C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The general consensus in the programming-community-at-large is that &quot;a programmer who hasn't learned something like C, frankly, just can't handle programming concepts like pointers, data types, passing values by reference, etc.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not agree.  I argue that:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Because high level languages are easily accessible, more &quot;non-programmers&quot; dive in and make a mess, and&lt;/li&gt;&#xA;&lt;li&gt;In order to really get anything done in a high level language, one needs to understand the same similar concepts that most proponents of &quot;learn-low-level-first&quot; evangelize about.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Some people need to know C.  Those people have jobs that require them to write low to mid-level code.  I'm sure C is awesome.  I'm sure there are a few bad programmers who know C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is, why the bias?  As a good, honest, hungry programmer, if I had to learn C (for some unforeseen reason), I would learn C.  Considering the multitude of languages out there, shouldn't good programmers focus on learning what advances us? Shouldn't we learn what interests us?  Should we not utilize our finite time moving &lt;em&gt;forward&lt;/em&gt;?  Why do some programmers disagree with this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe that striving for excellence in what you do is the fundamental deterministic trait between good programmers and bad ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone have any real world examples of how something written in a high level language--say Java, Pascal, PHP, or Javascript--truely benefitted from a prior knowledge of C?  Examples would be most appreciated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(revised to better coincide with &lt;a href=&quot;http://meta.programmers.stackexchange.com/questions/350/the-six-subjective-question-guidelines-enforcement-notice&quot;&gt;the six guidelines&lt;/a&gt;.)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="5497" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-11-15T19:18:18.117" LastActivityDate="2010-12-30T01:03:11.327" Title="I don't know C. And why should I learn it?" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;great-programmer&gt;&lt;c&gt;" AnswerCount="11" CommentCount="15" FavoriteCount="1" />
  <row Id="14745" PostTypeId="1" AcceptedAnswerId="14784" CreationDate="2010-10-26T12:38:46.917" Score="3" ViewCount="293" Body="&lt;p&gt;I'm on the way of learning java myself.I find most of texts giving emphasis to java applets.  I got confused about the importance.  Is it something widely used?  Do i need to spend more time on it?   &lt;/p&gt;&#xA;" OwnerUserId="4239" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-10-26T12:47:19.877" LastActivityDate="2011-05-23T15:31:18.930" Title="Are java applets worth learning?" Tags="&lt;learning&gt;&lt;java&gt;" AnswerCount="7" CommentCount="3" />
  <row Id="14746" PostTypeId="2" ParentId="14315" CreationDate="2010-10-26T12:40:20.750" Score="6" ViewCount="" Body="&lt;p&gt;When asking another developer to do something:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;It's not that hard. &lt;br&gt;&#xA;  Can't you just...&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;All too often a developer wants someone on another team to make a change.  Dev A doesn't understand how to do it, so he asks Dev B to do it instead.  Since it's no longer Dev A's problem, it must be simple right?  Sometimes it's not as simple as Dev B likes to believe (and there may be good reasons why it doesn't already do things that way), but he doesn't care because someone else has to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you don't work in a particular field or on a particular project, it looks very simple from the outside.  If I write a client for another developer's server, it looks simple to me - that's how things should be and it's a sign the server's well-written.  But I know it's probably not that simple underneath and if I want a change to be done, and the developer comes back and says no, I don't turn around and say &quot;come on, it's not that hard - can't you just do X?&quot; because I know that the developer probably isn't an idiot, knows his own app better than I do, and has already thought of X and dismissed it.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastEditorUserId="5375" LastEditorDisplayName="" LastEditDate="2010-10-27T12:01:57.533" LastActivityDate="2010-10-27T12:01:57.533" CommunityOwnedDate="2010-10-29T22:01:50.383" />
  <row Id="14747" PostTypeId="2" ParentId="14744" CreationDate="2010-10-26T12:41:58.473" Score="46" ViewCount="" Body="&lt;p&gt;The advantage to knowing C is that you have a very good idea of how a computer works. Not just how your programming model works, but how memory's laid out, and suchlike.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only level below C is the assembly spoken by a particular CPU.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I'd add that knowing C also lets you appreciate how much less work you have to do in a higher level language. And hopefully an appreciation of the &lt;em&gt;cost&lt;/em&gt; involved in working in that higher level language.)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-26T12:41:58.473" CommentCount="27" />
  <row Id="14748" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T12:44:20.623" Score="1" ViewCount="" Body="&lt;p&gt;Unpaid overtime for IT people is the norm in the Southeastern, USA.  The only exception are working for the government, companies that deal with Non-profit/churches(they look as unpaid overtime as a moral conflict to their values) or companies with operations in the north east or out west and are in heavy union areas and offer great benefits and fair schedules to keep the employees happy.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I worked for companies 100% located in the southeast, they worked you as many hours as possible (I worked over 3000 hours a year for 3 straight years).  Being an EXEMPT aka SALARY employee to them is meaning you are married to the company and need to work as many hours as they want and are always on call no matter what.  I hope to never work for one of those again!&lt;/p&gt;&#xA;" OwnerUserId="1789" LastActivityDate="2010-10-26T12:44:20.623" CommentCount="4" />
  <row Id="14749" PostTypeId="2" ParentId="14744" CreationDate="2010-10-26T12:45:15.037" Score="1" ViewCount="" Body="&lt;p&gt;A language is a tool.  If you only have to write web pages and the like then I am sure that you can get away without having to learn C, in just the same way that if you only ever make plastic model kits you only need a sharp knife and glue, a spanner is not normally required.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I write code for embedded systems with highly restricted memory resources (the biggest I have done recently is 16kbyte and that was HUGE)  In this market then C or assembler are the only options and any of the fluffy higher level languages just don't work.&lt;/p&gt;&#xA;" OwnerUserId="5877" LastActivityDate="2010-10-26T12:45:15.037" CommentCount="4" />
  <row Id="14750" PostTypeId="2" ParentId="14744" CreationDate="2010-10-26T12:45:53.397" Score="2" ViewCount="" Body="&lt;p&gt;I don't agree that you need to learn C &lt;em&gt;first&lt;/em&gt;, but I do believe you should learn C &lt;em&gt;eventually&lt;/em&gt;.  All abstractions are leaky and understanding C makes it easier to understand what's really happening when you use some fancy high-level abstraction.  That said, I also think all serious programmers should eventually learn to at least read assembler, for the same reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning these low-level concepts gives surprising ability to reason about high-level stuff.  For example, in C++ and D, default arguments to virtual functions are determined by the static (compile time) type of the object, not the dynamic (runtime) type.  This makes no sense unless you understand how vtables and calling conventions work and why it would be extremely hard to implement virtual functions in the opposite way.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-26T12:45:53.397" CommentCount="4" />
  <row Id="14751" PostTypeId="1" CreationDate="2010-10-26T12:46:36.453" Score="0" ViewCount="65" Body="&lt;p&gt;Is there a open source effort to port VCL (Delphi Lib) to .NET&lt;/p&gt;&#xA;" OwnerUserId="5830" LastActivityDate="2010-10-26T12:46:36.453" ClosedDate="2010-10-26T14:17:38.493" Title="VCL port to .NET" Tags="&lt;.net&gt;&lt;delphi&gt;" CommentCount="2" />
  <row Id="14752" PostTypeId="2" ParentId="14745" CreationDate="2010-10-26T12:49:58.413" Score="-9" ViewCount="" Body="&lt;p&gt;no (min chars no again)&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-10-26T12:49:58.413" CommentCount="3" />
  <row Id="14753" PostTypeId="2" ParentId="14650" CreationDate="2010-10-26T12:51:43.500" Score="20" ViewCount="" Body="&lt;p&gt;I'm surprised no one has mentioned &lt;a href=&quot;http://www.pragprog.com/the-pragmatic-programmer&quot; rel=&quot;nofollow&quot;&gt;The Pragmatic Programmer&lt;/a&gt;. It's a must-read if you are at all interested in your craft.&lt;/p&gt;&#xA;" OwnerUserId="3762" LastActivityDate="2010-10-26T12:51:43.500" CommunityOwnedDate="2010-11-12T17:51:25.287" CommentCount="5" />
  <row Id="14754" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T12:59:26.440" Score="12" ViewCount="" Body="&lt;p&gt;Overtime should be exceptional; if it's &quot;expected&quot; on a 50-60 hours per week basis, then I'd find another job. That shouldn't be normal. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;People are sacrificing their quality of life. And for what? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Family &gt; overtime. &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-10-26T12:59:26.440" />
  <row Id="14755" PostTypeId="2" ParentId="14744" CreationDate="2010-10-26T13:00:11.153" Score="6" ViewCount="" Body="&lt;p&gt;The bias is one of status quo.  In the old days (1980s and earlier), C / C++ was pretty much a requirement for performance applications.  That's changed but senior developers generally come from that old-skool background and view things in that context.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For actual development other languages &lt;em&gt;are&lt;/em&gt; used - C# is a popular one, as is Java, while PHP and Python are popular for internal projects and it's always useful to have someone on hand with at least basic knowledge in that area in case you choose an open source PHP project for, let's say, your bug tracking system.  However, job specs still seem to come from that standard template that was written 25 years ago.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-26T13:00:11.153" CommentCount="3" />
  <row Id="14756" PostTypeId="2" ParentId="14720" CreationDate="2010-10-26T13:00:22.470" Score="1" ViewCount="" Body="&lt;p&gt;You want to find out about the personalities of the people. &#xA;According to recent leadership theories, it is important that you are authentic and share common behavior and goals with your team members. Leadership can also be seen as coaching your team members to achieve their goals (&lt;a href=&quot;http://en.wikipedia.org/wiki/Transformational_leadership&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; would be some theory)&lt;/p&gt;&#xA;" OwnerUserId="4723" LastActivityDate="2010-10-26T13:00:22.470" CommunityOwnedDate="2011-02-24T20:58:48.413" />
  <row Id="14757" PostTypeId="2" ParentId="14720" CreationDate="2010-10-26T13:00:59.420" Score="38" ViewCount="" Body="&lt;p&gt;Here's my checklist, in no particular order:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Awesome computers&lt;/strong&gt; to develop on. At least double the power of the target user, think Dual Core i7 with plenty of RAM and large/multiple monitors... ~$3 to 5k budget.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Nice headphones&lt;/strong&gt; for whoever needs them, when they prefer to work to music.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Excellent development tools&lt;/strong&gt; to work with. This depends somewhat on your target environment, but Visual Studio / Eclipse / whatever is the best for the job. This includes things like continuous integration/build servers.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fast internet access&lt;/strong&gt; - at least 50Mbps, perhaps with a caching proxy server to pre-cache things like SO, TheRegister, Reddit, etc&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Very few meetings&lt;/strong&gt; - only what is absolutely necessary and a limit on their length. Think 'stand-up meeting' like Scrum.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Healthy atmosphere&lt;/strong&gt; in which to work. Daylight, fresh air options, stable aircon, plants, pictures, good lighting.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;10 to 20% downtime&lt;/strong&gt; to learn something new or flex your skills a little.&lt;/li&gt;&#xA;&lt;li&gt;A &lt;strong&gt;water&lt;/strong&gt; cooler for each group of desks that is regularly maintained.&lt;/li&gt;&#xA;&lt;li&gt;Market-&lt;strong&gt;competitive salaries&lt;/strong&gt; with performance-related bonuses, where performance and the remuneration are clearly defined. Performance bonuses would likely be company profit share.&lt;/li&gt;&#xA;&lt;li&gt;Encourage a &lt;strong&gt;collaborative work ethic&lt;/strong&gt;; have tech debriefs to share learning, rotate people around teams to build their experience.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Free drinks&lt;/strong&gt; (non-alcoholic).&lt;/li&gt;&#xA;&lt;li&gt;A &lt;strong&gt;fruit basket&lt;/strong&gt; for healthy snacks that don't ruin lunch.&lt;/li&gt;&#xA;&lt;li&gt;Establish a level of professional &lt;strong&gt;respect&lt;/strong&gt; from the other parts of the business for the software development department and vice versa. This is a long-term, fuzzy target, but there are ways and means of establishing it.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Clear communication&lt;/strong&gt; to and from management of expectations and delivery on those expectations.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Clear priorities&lt;/strong&gt; for work items, reviewed regularly.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Use of best practices&lt;/strong&gt; in terms of SDLC methodologies - Agile/Scrum, etc.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Clear and documented procedures&lt;/strong&gt; on what has to be done, why and how for important stuff like release management. Whatever can be automated would be, so this is just the manual bits - there's always some.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Supportive environment&lt;/strong&gt; for when things don't go so well. No kicking people when they cause bugs, but helping them learn from their mistakes.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;24x7 access&lt;/strong&gt; to the building and via remote protocols (SSH, LogMeIn, RDP, etc) for when team members get inspiration outside of normal hours.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Whiteboards&lt;/strong&gt; for prototyping/thinking out loud.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Celebrations of success&lt;/strong&gt; - whether a team lunch or a trip to the Grand Prix at the weekend, it's important to recognise great effort and great results.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I would not have:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Nerf guns/frisbees/pool table/toys. The work environment is where we work. There's lots of fun to be had while doing the job without playing soldiers around colleagues that are trying to focus.&lt;/li&gt;&#xA;&lt;li&gt;Free food - people should take a break to go out and get something to eat.&lt;/li&gt;&#xA;&lt;li&gt;Internet censorship - I'd leave it up to the individuals to exercise their judgement.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2011-02-25T16:12:54.487" LastActivityDate="2011-02-25T16:12:54.487" CommunityOwnedDate="2011-02-24T20:58:48.413" CommentCount="11" />
  <row Id="14758" PostTypeId="2" ParentId="5168" CreationDate="2010-10-26T13:06:42.770" Score="2" ViewCount="" Body="&lt;p&gt;I'd been informed that the our switchboard department's bleep system had a web front-end that could be used to send messages though it was ugly and not very user friendly so I wanted to have a look and see if we could use a form on our main intranet site and submit the values via our server to theirs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There was a simple username/password form to access the system with User and Admin roles so I took a look to see how I'd impliment handling the security. I discovered the two following cookies being stored:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Username: [username I had used]&#xA;Admin: False&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Just to make sure it was as bad as I thought I opened up Firefox, gave it the url, created 2 cookies, my username and &lt;code&gt;Admin: True&lt;/code&gt; and lo and behold I had Admin access. Just to check it out I created a new user without any problems. To make matters worse having the username locally meant that the log would show my actions to be by any one I wanted to give it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Security through obscurity doesn't work but it works far less when you give people everything they need on a silver platter.&lt;/p&gt;&#xA;" OwnerUserId="6366" LastActivityDate="2010-10-26T13:06:42.770" CommentCount="1" />
  <row Id="14759" PostTypeId="2" ParentId="14745" CreationDate="2010-10-26T13:09:23.470" Score="2" ViewCount="" Body="&lt;p&gt;If your aim is to learn GUI development in Java, I would say to stay away from applets and just focus on learning Swing the old-fashioned way.  I don't know all the ins and outs of Applets and it hasn't affected my job negatively.  On the other hand, many games are distributed as applets, as well as the output of &lt;a href=&quot;http://processing.org/&quot; rel=&quot;nofollow&quot;&gt;Processing&lt;/a&gt;.  So it's a good skill to have if you want to distribute your work in an easy to view way on the web, but I wouldn't strive to create anything huge within an applet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Do note that it's not impossible to port existing code written for the desktop to run as an applet, which is why I suggest you learn desktop development first.  You'll learn the concepts but without having to jump through the extra hoops of the special applet GUI code, and the browser interactions.&lt;/p&gt;&#xA;" OwnerUserId="6473" LastActivityDate="2010-10-26T13:09:23.470" />
  <row Id="14760" PostTypeId="2" ParentId="14682" CreationDate="2010-10-26T13:09:54.440" Score="0" ViewCount="" Body="&lt;p&gt;I ran across a good &lt;a href=&quot;http://rob-bell.net/2009/06/a-beginners-guide-to-big-o-notation/&quot; rel=&quot;nofollow&quot;&gt;beginner's guide to Big O notation&lt;/a&gt; which should help explain things with some simple yet succinct examples.&lt;/p&gt;&#xA;" OwnerUserId="146" LastActivityDate="2010-10-26T13:09:54.440" />
  <row Id="14761" PostTypeId="2" ParentId="14720" CreationDate="2010-10-26T13:13:33.783" Score="18" ViewCount="" Body="&lt;p&gt;There's a great YouTube video about the &quot;Surprising Truth About What Motivates Us&quot;. I blogged this a while back: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.chrisholmesonline.com/2010/06/02/the-surprising-truth-about-what-motivates-us/&quot; rel=&quot;nofollow&quot;&gt;http://www.chrisholmesonline.com/2010/06/02/the-surprising-truth-about-what-motivates-us/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like the part where he says, essentially, to pay your employees enough so that money is taken off the table as a consideration for why they want to work there. When money is no longer a motivating factor, you get a much better set of results. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know what motivates me: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Being able to use the tools I prefer. So give your developers the tools they want and need. With a team of 25 people, obviously, you have to come to compromise and consensus, but the bottom line is they need the best tools. This encompasses hardware and software.&lt;/li&gt;&#xA;&lt;li&gt;Normal work hours. 35-40 hours per work. Nothing more. If they want to come in on their own to do more because they're inspired, fine. But overworking people in jobs where they are required to flex their critical thinking muscles is the fast track to disaster. &lt;/li&gt;&#xA;&lt;li&gt;Telecommute options. I like to work from the comfort of my own home; not have to deal with the headache of traffic and losing an hour a day to travel. I can be there for my family, for emergencies, as a taxi, etc. If you have employees who can handle it and get their workloads done, give them the telecommute option. Also, it is way easier to take a 20-30 minute power-nap at home (proven to increase productivity, but society still frowns on the nap). &lt;/li&gt;&#xA;&lt;li&gt;A quality workspace. Whiteboards, collaborative tools, conference rooms, etc. A team of 25 employees can only really create something awesome if they're working together, and to work together they have to share ideas freely and collaborate. If they're working remotely, have Skype, etc. But give them the tools to be collaborative. &lt;/li&gt;&#xA;&lt;li&gt;Clearly defined goals. Not deadlines - those are different. Goals. Implement this however you want - Scrum, XP, I don't care - but your team needs clear goals and milestones. &lt;/li&gt;&#xA;&lt;li&gt;Don't get locked into one particular dogma; be open to change and new ideas, new technologies, etc. Listen to each other. Don't force architecture on your team; let it evolve through collaboration, feedback, input. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Developers want to make awesome software. If you can give them the opportunity to do that, compensate them well enough that money doesn't factor into their thought processes, and provide them with a healthy work/life balance, they'll produce. &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-10-26T13:13:33.783" CommunityOwnedDate="2011-02-24T20:58:48.413" CommentCount="3" />
  <row Id="14762" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T13:13:57.367" Score="20" ViewCount="" Body="&lt;p&gt;This question already has a bunch of great, sane answers, but there was one point that I felt like I should add: what exactly is your employer's disincentive to making you work crazy hours? If they can get you to work 60 hours a week just by saying that you need to, they are effectively paying you 2/3 of your actual salary. Why wouldn't they do it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only reason that they wouldn't take advantage of you is that you refuse to be taken advantage of. Being a salaried professional does not mean that you are signing your life over to some shmenzer with a good haircut and no ethics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Refuse to get used.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-10-26T13:13:57.367" CommentCount="4" />
  <row Id="14763" PostTypeId="2" ParentId="14601" CreationDate="2010-10-26T13:15:03.470" Score="2" ViewCount="" Body="&lt;p&gt;Half-Price Books or a similar store. I have ten file boxes full of books going back about ten to fifteen years that I have not looked at in over five years. Even if I get nothing or almost nothing for them I know that somebody might be browsing and have a need for a VB4 book and get it for a buck so it'll be of some use. Further out they just sell the books &quot;by the foot&quot; to people who are staging houses, etc. At the outermost they just recycle them, but they'll have had a chance at being useful one more time. I get nostalgic about things I own sometimes, like books, and keep ones that are more dear to me but I have to do some clearing out.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-10-26T13:15:03.470" />
  <row Id="14764" PostTypeId="2" ParentId="14727" CreationDate="2010-10-26T13:19:46.460" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I want to investigate how much network latency is tolerable for a programmer to work on virtual machines (if any). &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is simple. I'm going to throw out the &quot;scrolling/navigating&quot; part of this question and go directly to the root here: typing vs. latency. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I hit the key, I expect the character to appear immediately. Anything less than immediate is unacceptable. When it comes to typing, I expect results. I type something approaching 100 wpm. Latency negates that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest problem I have with latency when typing is this: if I misspell something, on a live computer I can backtrack and correct it at 100 wpm. So it's taken care of and corrected immediately. If I am typing with latency, then what happens is I misspell something and don't see it for a word or two. Now I have to stop, erase, retype, all slowly because of the latency. It just flat-out slows down the whole process of composition. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When it comes to typing latency, you just have to decide what you can reasonably live with. &lt;/p&gt;&#xA;" OwnerUserId="1080" LastActivityDate="2010-10-26T13:19:46.460" />
  <row Id="14765" PostTypeId="2" ParentId="11147" CreationDate="2010-10-26T13:22:05.317" Score="1" ViewCount="" Body="&lt;p&gt;How about &lt;a href=&quot;http://www.quest.com/toad-for-sql-server/&quot; rel=&quot;nofollow&quot;&gt;Toad&lt;/a&gt;, Toad for Oracle is really good, the MySQL client is OK, although not as good as Navicat imo.&lt;/p&gt;&#xA;" OwnerUserId="6457" LastActivityDate="2010-10-26T13:22:05.317" />
  <row Id="14766" PostTypeId="2" ParentId="14601" CreationDate="2010-10-26T13:22:21.510" Score="0" ViewCount="" Body="&lt;p&gt;I've got 1000+ page tomes &quot;Object Oriented Programming in Java&quot; and &quot;HTML 3.2 &amp;amp; CGI&quot; safely under toe as portable modular foot rests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've actually never opened these books, I got them as a joke present after I graduated from college. (Another great use, what graduate wouldn't love 30 lbs of book all wrapped up with a pretty bow).&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-26T13:22:21.510" />
  <row Id="14767" PostTypeId="2" ParentId="14682" CreationDate="2010-10-26T13:23:15.037" Score="1" ViewCount="" Body="&lt;p&gt;Stackoverflow already has some good information on this topic:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/487258/plain-english-explanation-of-big-o&quot;&gt;http://stackoverflow.com/questions/487258/plain-english-explanation-of-big-o&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/941283/when-does-big-o-notation-fail&quot;&gt;http://stackoverflow.com/questions/941283/when-does-big-o-notation-fail&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/133008/what-is-big-o-notation-do-you-use-it&quot;&gt;http://stackoverflow.com/questions/133008/what-is-big-o-notation-do-you-use-it&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/107165/big-o-for-eight-year-olds&quot;&gt;http://stackoverflow.com/questions/107165/big-o-for-eight-year-olds&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-26T13:23:15.037" />
  <row Id="14768" PostTypeId="2" ParentId="14727" CreationDate="2010-10-26T13:35:57.143" Score="0" ViewCount="" Body="&lt;h3&gt;Cmd + F&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Best friend I have. No more scrolling, no more browsing code to find it. Need to find a file quickly? &lt;code&gt;find . | grep [filename]&lt;/code&gt;. Poof, there it is. Can even file name match with regex. Using TextMate? &lt;code&gt;Cmd + T&lt;/code&gt; and &lt;code&gt;Cmd + Opt + T&lt;/code&gt; are your friends. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-26T13:35:57.143" />
  <row Id="14769" PostTypeId="2" ParentId="14601" CreationDate="2010-10-26T13:37:34.027" Score="1" ViewCount="" Body="&lt;p&gt;well, keep the books and use them as historical artifacts for the generations to come.&lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-10-26T13:37:34.027" />
  <row Id="14770" PostTypeId="2" ParentId="11312" CreationDate="2010-10-26T13:43:17.977" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Ability to choose own rig/chair&lt;/li&gt;&#xA;&lt;li&gt;Ability to choose own software, withing reason IDE etc&lt;/li&gt;&#xA;&lt;li&gt;Plenty of Tea/Coffee and Water (very important)&lt;/li&gt;&#xA;&lt;li&gt;No stupid internet policies (no streaming etc)&lt;/li&gt;&#xA;&lt;li&gt;Time to work on own projects&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6457" LastActivityDate="2010-10-26T13:43:17.977" CommunityOwnedDate="2010-10-26T13:43:17.977" />
  <row Id="14771" PostTypeId="2" ParentId="14650" CreationDate="2010-10-26T13:50:45.777" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Gloves&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/bQ5UD.jpg&quot; alt=&quot;Gloves - take a good, hard look at your first revision and just say to yourself, &amp;quot;gloves.&amp;quot;&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://thedailywtf.com/Articles/The_Complicator_0x27_s_Gloves.aspx&quot; rel=&quot;nofollow&quot;&gt;This post from the Daily WTF&lt;/a&gt; has kept me on the right path. I'll admit to several times having started developing something where a pair of &quot;gloves&quot; were the appropriate solution. &lt;/p&gt;&#xA;" OwnerUserId="5736" LastActivityDate="2010-10-26T13:50:45.777" CommunityOwnedDate="2010-11-12T17:51:25.287" CommentCount="6" />
  <row Id="14772" PostTypeId="2" ParentId="14356" CreationDate="2010-10-26T13:52:00.047" Score="7" ViewCount="" Body="&lt;h2&gt;Oh, yes!&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I really don't believe in a paper-less office, which is quite radical even though I extensively use the wiki, tracker and other digital tools. I'm a bit biased though given I've work mainly as a UI programmer and also freelance as a illustrator as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some reasons and occasions where I have to use &lt;code&gt;paper&lt;/code&gt; and &lt;code&gt;(pencils|ball-point pens|felt-tip pens)&lt;/code&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;As I'm a user interface programmer, I need to sketch out ideas (such as placement and other notes) which is just not time effective for me to do in ASCII form.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;For me, concepts and implementation details tend to become easier to explain when I'm doodling them out on paper or on the white board.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;In a dynamic workplace where I'm at I need to write down requests when they crop up during meetings I have with real people. Unfortunately these requests pop up while I'm not near a computer. This is why I need paper and pencil to write it down, or else I forget to add it to the tracker.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I always keep a small todo list next to the monitor, so I can focus on what I need to do &lt;em&gt;right here, right now&lt;/em&gt;. This is far more quicker than task switching to the notepad or tracker on the computer… and I'm using multiple screen setup!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also, my favorite kind of pen is the ball-point pen.&lt;/p&gt;&#xA;" OwnerUserId="1683" LastActivityDate="2010-10-26T13:52:00.047" />
  <row Id="14773" PostTypeId="2" ParentId="14682" CreationDate="2010-10-26T13:53:26.637" Score="0" ViewCount="" Body="&lt;p&gt;Big O notation gives an idea of how &lt;strong&gt;upper bound time taken by an algorithm grows as the input data set grows&lt;/strong&gt;. n is the size of the input data set and the RHS gives an idea of how upper bound time taken to accomplish something using that particular algorithm for that size of input data set.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, insertion sort complexity is O(n^2). It means that the maximum time taken for any 2n sized input, merge sort will complete the sorting within 2n^2/n^2 = 4 times the time taken to merge any n sized input.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Big_O_notation&quot; rel=&quot;nofollow&quot;&gt;Wikipedia&lt;/a&gt; has a very good description of Big O notation.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-26T13:53:26.637" />
  <row Id="14774" PostTypeId="2" ParentId="14618" CreationDate="2010-10-26T13:57:42.013" Score="1" ViewCount="" Body="&lt;p&gt;The easiest way to sell your skills is to prove them:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Stack Overflow rep is one form of 'proof', but it doesn't necessarily correlate well with success in a company.&lt;/li&gt;&#xA;&lt;li&gt;Having the tenacity to complete a project and put it out on the web for employers to find is another. If you've got some side project (i.e. non-work), whatever it is, make it visible; it will say a lot about how you think, what you work on, what's important to you, and what you're able to accomplish.&lt;/li&gt;&#xA;&lt;li&gt;Contributing to a larger project (something you didn't initiate) is yet a third type, showing that you can act as part of a team. Find an Open Source project that needs help (i.e. all of them) and that you're interested in, and pitch in. This also will say a lot about what you're made of.&lt;/li&gt;&#xA;&lt;li&gt;Visible work from your old company is useful but only for beginning a conversation in the interview. It's hard to pull apart your contributions from the rest of the company's.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As for the actual job interview: what kind of a moronic interviewer asks you &quot;what are you worth&quot;? Never pitch a low number; don't undervalue yourself; let them say no, don't make them say no. If you applied for the job and they brought you in, the assumption on both sides is that you are &lt;em&gt;probably&lt;/em&gt; worth it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember they are hiring not just the person you are now, but the person you'll be in a year or three years when you've learned more and practiced your skills more.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-10-26T13:57:42.013" CommentCount="1" />
  <row Id="14775" PostTypeId="2" ParentId="14356" CreationDate="2010-10-26T14:02:09.900" Score="1" ViewCount="" Body="&lt;p&gt;I will say no, but I use a whiteboard for most my brainstorm/design work, where as I notice most people who don't use a whiteboard use a paper notebook or legalpad.  It looks to me that it really depends on the programmer, with the key being to make sure that they have something to jot ideas onto.&lt;/p&gt;&#xA;" OwnerUserId="5736" LastActivityDate="2010-10-26T14:02:09.900" />
  <row Id="14776" PostTypeId="2" ParentId="14728" CreationDate="2010-10-26T14:03:56.687" Score="1" ViewCount="" Body="&lt;p&gt;as long as your not violating those NDA's I think it would be a Good Thing(TM). This way you get to size up the candidate and the candidate gets to size up you.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-26T14:03:56.687" />
  <row Id="14777" PostTypeId="2" ParentId="14744" CreationDate="2010-10-26T14:14:07.063" Score="0" ViewCount="" Body="&lt;p&gt;maybe the question you should ask is why &lt;em&gt;shouldn't&lt;/em&gt; you learn C?  You might someday have a job where you get to maintain some old legacy code written in C (Or Fortran, or Cobol, or...) C is good for you.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-26T14:14:07.063" CommentCount="3" />
  <row Id="14778" PostTypeId="1" AcceptedAnswerId="14788" CreationDate="2010-10-26T14:14:32.413" Score="16" ViewCount="341" Body="&lt;p&gt;I see this too often. They need &lt;strong&gt;one&lt;/strong&gt; guy who is proficient in:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Assembly&lt;/li&gt;&#xA;&lt;li&gt;C/C++ (sic!)&lt;/li&gt;&#xA;&lt;li&gt;Python&lt;/li&gt;&#xA;&lt;li&gt;Delphi&lt;/li&gt;&#xA;&lt;li&gt;C#&lt;/li&gt;&#xA;&lt;li&gt;PHP&lt;/li&gt;&#xA;&lt;li&gt;SQL&lt;/li&gt;&#xA;&lt;li&gt;Joomla&lt;/li&gt;&#xA;&lt;li&gt;Drupal&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;... and so on. Why?&lt;/p&gt;&#xA;" OwnerUserId="3530" LastActivityDate="2010-10-26T19:27:18.437" Title="Why are they stacking technologies and languages for single person jobs?" Tags="&lt;jobs&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="2" />
  <row Id="14779" PostTypeId="1" AcceptedAnswerId="14901" CreationDate="2010-10-26T14:15:29.123" Score="6" ViewCount="166" Body="&lt;p&gt;A modern IDE wouldn't be taken seriously if it didn't have a good editor with syntax highlighting, comprehensive warnings, and a source-level debugger. And there are many more tools/IDE features that programmers find essential:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Refactoring transformations&lt;/li&gt;&#xA;&lt;li&gt;Unit testing support&lt;/li&gt;&#xA;&lt;li&gt;Source code control integration&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Yet, there are still &lt;strong&gt;many good tools&lt;/strong&gt; that don't have the exposure and usage that they should. For example, the following tools are usually expensive or hard to find for a given language:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Automated GUI testing&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Program_slicing&quot; rel=&quot;nofollow&quot;&gt;Program slicing&lt;/a&gt; (e.g. &lt;a href=&quot;http://www.grammatech.com/products/codesurfer/overview.html&quot; rel=&quot;nofollow&quot;&gt;CodeSurfer&lt;/a&gt; -- useful for finding what statements can affect another statement)&lt;/li&gt;&#xA;&lt;li&gt;Test coverage (depending on your language, this can be very easy to find, or quite difficult)&lt;/li&gt;&#xA;&lt;li&gt;Points-to analysis (&quot;Do I really need to make this list concurrent, or will it ever be accessible by one thread anyway?&quot;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Partly it's an issue of education and awareness, and partly it's because IDE makers are often too busy supporting the next version of the language to dedicate resources to developing these secondary tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;What features are missing in today's IDEs? What secondary tools should really be primary? What makes them so helpful?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, what features do you think you'd use every month, or every day, if the tool was available? Please consider tools that both exist or should exist. For a tool that &lt;em&gt;should&lt;/em&gt; exist, make sure the idea is feasible.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-10-26T22:08:10.793" Title="How can current IDEs improve the development experience? What secondary tools should be primary?" Tags="&lt;tools&gt;&lt;ide&gt;&lt;refactoring&gt;&lt;static-analysis&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="2" />
  <row Id="14780" PostTypeId="2" ParentId="14778" CreationDate="2010-10-26T14:17:06.893" Score="13" ViewCount="" Body="&lt;p&gt;Probably because they laid off 4 people and want to replace them with 1 to save money.  I've seen it happen lots of times where a corporation will cut too many people during layoffs and then realize that they have to hire someone to do a WHOLE bunch of things.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-10-26T14:17:06.893" CommentCount="1" />
  <row Id="14781" PostTypeId="1" CreationDate="2010-10-26T14:19:08.600" Score="13" ViewCount="622" Body="&lt;p&gt;I just finished college a couple of months ago and im taking time out to improve my knowledge. I love programming but i feel like i dont know enough to be confident if I went for an interview. Last night i was browsing through questions and came across a question that asks interviewees how to work out a linked list. I learned these at college but if i was asked on the spot how to do it i wouldnt know. So that's another thing added to the list of what to learn. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is when the anxiety hit me because i have so much to learn in so little time (at least it feels that way). Upon introspection i think this anxiety is related to my perfectionism even though being perfect isnt rational e.g. Shakespeare and Einstein failed 80% of the time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the questions are, have you felt this anxiety of not knowing enough? If so, how did you deal with it? I suppose there's a point in time when you begin to feel comfortable in your abilities?&lt;/p&gt;&#xA;" OwnerUserId="6208" LastEditorUserId="6208" LastEditorDisplayName="" LastEditDate="2010-10-27T11:38:52.387" LastActivityDate="2010-10-27T15:50:26.180" Title="How do you deal with the anxiety of not knowing enough?" Tags="&lt;self-improvement&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="4" />
  <row Id="14782" PostTypeId="2" ParentId="14745" CreationDate="2010-10-26T14:21:24.047" Score="0" ViewCount="" Body="&lt;p&gt;Generally no, unless you have tried all other GUI platforms/frameworks and itching for something different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Academically speaking, can provide a different perspective of GUI development whether it is for teaching or demostrations (some might say -ve demo :P ).&lt;/p&gt;&#xA;" OwnerUserId="2262" LastActivityDate="2010-10-26T14:21:24.047" />
  <row Id="14783" PostTypeId="2" ParentId="14779" CreationDate="2010-10-26T14:24:18.487" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Show better alternatives of a piece of code&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its very rare in the IDEs that I've experienced for them to suggest alternatives to a piece of code. For example, suggesting &lt;code&gt;if(something) return true; else return false&lt;/code&gt; should be replaced with &lt;code&gt;return something&lt;/code&gt;. Less obviously, replace &lt;code&gt;list.size() == 0&lt;/code&gt; with &lt;code&gt;list.isEmpty()&lt;/code&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Java land, Netbeans does this to some extent, but isn't all that good. IDEA does this pretty well but most of the best features are hidden in the commercial version, which is frustrating for an open source developer. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-10-26T14:24:18.487" CommentCount="1" />
  <row Id="14784" PostTypeId="2" ParentId="14745" CreationDate="2010-10-26T14:29:09.853" Score="7" ViewCount="" Body="&lt;p&gt;Applets aren't used widely these days, so the knowledge won't be that useful.  That said, there is little in Java that is applet-specific.  It makes no difference if you learn AWT and Swing by writing applets or by writing desktop applications.  It's fairly easy to write an application that will also function as an applet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main distinction is that you use a different top-level container for applets than for applications.  Unsigned applets also have some security restrictions, particularly around IO and networking.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-10-26T14:29:09.853" />
  <row Id="14785" PostTypeId="2" ParentId="14778" CreationDate="2010-10-26T14:30:07.597" Score="3" ViewCount="" Body="&lt;p&gt;This is also a sign that the inmates may be running the asylum. That is, there is probably weak or no management of the programming team and everyone is using their pet language instead of standardizing one or a few complementary technologies.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-26T14:30:07.597" CommentCount="1" />
  <row Id="14786" PostTypeId="2" ParentId="14781" CreationDate="2010-10-26T14:31:05.497" Score="1" ViewCount="" Body="&lt;p&gt;Expect that you don't know enough. That's a sure thing. Either because you have gaps or because people just want to see how you handle situations you're not familiar with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Break problems down into solvable or familiar pieces. If you don't know something important, try to direct the talk to something you know.&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-10-27T07:59:18.010" LastActivityDate="2010-10-27T07:59:18.010" />
  <row Id="14787" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T14:34:06.023" Score="9" ViewCount="" Body="&lt;p&gt;I'm wondering if there's an assumption that your &quot;overtime is part of the job&quot; line means that you'll be pulling 80-hour weeks constantly.  If so, that's pretty bad and will burn you out in no time.  Especially when you're up against the clock.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I think there's also an expectation that we software developers &lt;em&gt;get stuff done&lt;/em&gt;.  If that means pulling an extra couple of hours a night for a week or so when a deadline is looming, then I'm quite happy to accept that as &quot;part of the job.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suppose it's part of the implicit contract between developer and manager: you give me sane deadlines, and I'll give you sane products.&lt;/p&gt;&#xA;" OwnerUserId="3991" LastActivityDate="2010-10-26T14:34:06.023" CommentCount="1" />
  <row Id="14788" PostTypeId="2" ParentId="14778" CreationDate="2010-10-26T14:34:45.743" Score="16" ViewCount="" Body="&lt;p&gt;HR created the job advert and don't know what is required so tack on everything they have ever seen. It is generally a reason for me to ignore the advert.&lt;/p&gt;&#xA;" OwnerUserId="6457" LastActivityDate="2010-10-26T14:34:45.743" CommentCount="5" />
  <row Id="14789" PostTypeId="1" CreationDate="2010-10-26T14:36:08.293" Score="8" ViewCount="373" Body="&lt;p&gt;In &lt;a href=&quot;http://programmers.stackexchange.com/q/14169/145&quot;&gt;What naming guidelines do you follow?&lt;/a&gt;, the author says:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Also I prefer to code using hungarian notation from Charles Simonyi.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've run in to several programmers who still prefer to use Hungarian, mostly of the Petzold/Systems Hungarian flavor.  Think &lt;code&gt;dwLength = strlen(lpszName)&lt;/code&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've read &lt;a href=&quot;http://www.joelonsoftware.com/articles/Wrong.html&quot; rel=&quot;nofollow&quot;&gt;Making Wrong Code Look Wrong&lt;/a&gt;, and I understand the rationale for Apps Hungarian, where domain-type information is included in the variable names.  But I don't understand the value in attatching the compiler type to the name.     &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why do programmers still persist on using this style of notation?  Is it just inertia?  Are there any benefits that outweigh the decreased readability?  Do people just learn to ignore the decorators when reading the code, and if so, how do they continue to add value?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&#xA;A lot of answers are explaining the history, or why it is no longer relevant, both of which are covered in the article I cited. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd really like to hear from anyone out there who still uses it.  Why do you use it?  Is it in your standard?  Would you use it if it wasn't required?  Would you use it on a new project?  What do you see as the advantages?&lt;/p&gt;&#xA;" OwnerUserId="145" LastEditorUserId="145" LastEditorDisplayName="" LastEditDate="2010-10-26T18:52:22.707" LastActivityDate="2010-11-03T10:01:17.800" Title="What is the appeal of Systems Hungarian?" Tags="&lt;coding-standards&gt;&lt;hungarian&gt;&lt;notation&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="2" />
  <row Id="14790" PostTypeId="2" ParentId="14781" CreationDate="2010-10-26T14:36:28.460" Score="7" ViewCount="" Body="&lt;p&gt;Some people:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Thought they know and they do&lt;/li&gt;&#xA;&lt;li&gt;Thought they know but they don't&lt;/li&gt;&#xA;&lt;li&gt;Don't know they know but they do&lt;/li&gt;&#xA;&lt;li&gt;Don't know they know and they don't&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;To me, 1 &gt; 3 &gt; 4 &gt; 2&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact that you know that you don't know everything is already knowing something. Learning takes longer than a lifetime, pace yourself and convince yourself that you can never learn everything; so is the genius in the next cubicle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowing is one thing, applying it is another. Apply what you have learnt and be open-minded for new ideas and let the passion leads your way. Sounds philosophical? Maybe, but life is too short to be so tensed up. :P&lt;/p&gt;&#xA;" OwnerUserId="2262" LastActivityDate="2010-10-26T14:36:28.460" />
  <row Id="14791" PostTypeId="2" ParentId="14779" CreationDate="2010-10-26T14:37:18.653" Score="3" ViewCount="" Body="&lt;p&gt;My primary IDEs are Visual Studio 2008/2010 and NetBeans. One feature that is common to both that I use frequently is the Database Designer tool. When I am starting a project, I find it invaluable to be able to quickly design my database tables and have a visual representation of my work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The visual representation allows me to get some feedback that what I am creating matches my mental model. Often, the fingers do not translate the brain's intention with 100% efficiency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I just hate typing out verbose SQL commands.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-10-26T14:37:18.653" />
  <row Id="14792" PostTypeId="2" ParentId="14682" CreationDate="2010-10-26T14:37:58.843" Score="1" ViewCount="" Body="&lt;p&gt;Big-O is a shorthand way of describing how long an algorithm will take to run based on the size of its input data.  (It can also be used to describe how much memory it will take based on the input size, but run time is more typical.)  Some common uses:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;O(1) means the algorithm runs in constant time.  The input data is irrelevant; if an O(1) algorithm runs in (say) 10 seconds, then it's going to run it 10 seconds regardless of whether you feed it one data point or a million.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;O(log n) means the algorithm's run time will increase the more data you feed it ... but it's going to increase very, very slowly.  If feeding it one data point takes one second, feeding it ten may take two seconds, feeding it a hundred may only take three, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;O(n) is the most intuitively easy to understand.  Run time increases linearly with data set size; so if you have ten times the data, the algorithm will take ten times as long to run.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;O(n log n) is best thought of as &quot;linear-ish.&quot;  If you have ten times the data, the algorithm will take a little (but not a lot) more than ten times as long to run.  Good sorting algorithms run in O(n log n) time.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;O(n^2) is where you start running into trouble.  Run time increases with data size VERY quickly; ten times the data will take one hundred times as long to process.  Bad sorting algorithms run in O(n^2) time.  If you code an algorithm that runs in O(n^2) (or O(n^3), or O(n^4), or whatever) time, you'd best have a &lt;b&gt;really&lt;/b&gt; good reason.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;O(n!) means the data must be tested in every conceivable combination.  This gets out of hand very, very quickly.  If one data point takes a single second, five data points take (5 * 4 * 3 * 2 * 1) 120 seconds, ten data points take (10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1) 3,628,800 seconds, etc.  There are many problems that actually require an O(n!) algorithm in order to guarantee the correct answer; but coding an O(n!) algorithm for a sizable data set is going to be a flaming disaster that cannot be fixed by chucking more hardware at the problem.  O(n!) is where brute force &lt;b&gt;FAILS&lt;/b&gt;.  Entire companies have been founded on clever algorithms that come up with reasonable solutions to O(n!) problems in a more realistic time frame.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-10-26T14:37:58.843" />
  <row Id="14793" PostTypeId="2" ParentId="14315" CreationDate="2010-10-26T14:39:19.153" Score="4" ViewCount="" Body="&lt;p&gt;&quot;And then I do this, &lt;em&gt;'just in case'&lt;/em&gt;.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You mean... you don't &lt;em&gt;know&lt;/em&gt; what your code does?  You don't &lt;em&gt;know&lt;/em&gt; whether what you want to do would have worked or not had you not done that thing, &lt;em&gt;just in case&lt;/em&gt;?&lt;/p&gt;&#xA;" OwnerUserId="3991" LastActivityDate="2010-10-26T14:39:19.153" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="4" />
  <row Id="14794" PostTypeId="2" ParentId="5168" CreationDate="2010-10-26T14:40:02.780" Score="2" ViewCount="" Body="&lt;p&gt;Antivirus was unabled to detect malicious code in encrypted binaries. So we created the first virus with an encrypted trojan inside it. That's long time ago but really fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the same domain, I created a DLL to switch to Ring0 mode in Win32. It implemented several methods to switch to Ring0 mode. Simple easy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And do you remember caramail? It was a java applet application to live chat. After decompilation we found a way to become admin.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used to crack security software to protect games and so on. And I used to explain how to the authors... &lt;/p&gt;&#xA;" OwnerUserId="6485" LastActivityDate="2010-10-26T14:40:02.780" />
  <row Id="14795" PostTypeId="2" ParentId="14778" CreationDate="2010-10-26T14:41:38.617" Score="6" ViewCount="" Body="&lt;p&gt;Personally I think it's likely to mean one of two things:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Whoever put the spec together has no idea what any of that means and just looked at a bunch of other people's programmer specs and picked a few things at random from them.&lt;/li&gt;&#xA;&lt;li&gt;Or...they have a number of teams/projects and actually they'd be happy with just a subset of those skills but have put them all in 'just in case' after advice from their HR department.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Either way I think it's a bad idea to do this from the perspective of the employer - and I have no idea why this is so common...&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-26T14:41:38.617" CommentCount="2" />
  <row Id="14796" PostTypeId="2" ParentId="14778" CreationDate="2010-10-26T14:42:14.717" Score="1" ViewCount="" Body="&lt;p&gt;Most hiring managers are uncertain about future of a project. He/She will always think, if this project doesn't work out, can my &quot;resources&quot; be useful in other projects? Typically during such interviews, the main focus will be on the immediately required technologies/skills, but the doubtful manager will always check if he/she can get more mileage.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-26T14:42:14.717" CommentCount="3" />
  <row Id="14797" PostTypeId="1" CreationDate="2010-10-26T14:46:11.483" Score="7" ViewCount="533" Body="&lt;p&gt;I have found Gtk# to be a fairly neat, simple, and sweet, cross platform GUI library for the C# language and mono/.net framework. I wonder whats your favorite cross platform GUI toolkit that you personally adore   while using your language/framework of choice. &lt;/p&gt;&#xA;" LastActivityDate="2011-03-18T15:35:06.807" Title="What is your favorite cross platform GUI toolkit ?" Tags="&lt;gui&gt;&lt;cross-platform&gt;" AnswerCount="8" FavoriteCount="2" />
  <row Id="14798" PostTypeId="2" ParentId="14778" CreationDate="2010-10-26T14:47:38.377" Score="4" ViewCount="" Body="&lt;p&gt;They may want one person who can do everything, and be a team of one, or they may want you to join a team of ten. Either way, you might use different skills on different days. I once stepped into the office of one of my staff and told him we'd had an emergency call from a client about something being broken on a live site and could he please take a look at it. He asked me a few questions and then said &quot;I'll do it, but I just need to go on the record that this will be my fourth language today. And it's not lunch yet.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There most certainly are jobs where you are asked to support a range of products written in assorted languages. If you know only one you probably wouldn't enjoy the job even if you convinced them you were a fast learner. But if you love roller coasters, a job description like that is fun - and you know you won't have to compete with as many people!&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-26T14:47:38.377" CommentCount="5" />
  <row Id="14799" PostTypeId="2" ParentId="8968" CreationDate="2010-10-26T14:59:38.150" Score="5" ViewCount="" Body="&lt;p&gt;I think that if you are over 30 then you should be alright. Younger than that and you don't have enough experience with programming or with children :)&lt;/p&gt;&#xA;" OwnerUserId="4858" LastActivityDate="2010-10-26T14:59:38.150" CommunityOwnedDate="2011-03-04T21:09:34.713" CommentCount="1" />
  <row Id="14801" PostTypeId="2" ParentId="14797" CreationDate="2010-10-26T15:02:11.087" Score="2" ViewCount="" Body="&lt;p&gt;I was about to write Java Swing, but actually it is not. Qt4 is quite good and free at the same time. Although I haven't heard of C# port (Java binding exists).&lt;/p&gt;&#xA;" OwnerUserId="2554" LastEditorUserId="2554" LastEditorDisplayName="" LastEditDate="2010-10-26T16:44:13.083" LastActivityDate="2010-10-26T16:44:13.083" CommentCount="4" />
  <row Id="14802" PostTypeId="2" ParentId="1060" CreationDate="2010-10-26T15:04:30.993" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;In general&lt;/strong&gt; tagging code elements with a declarative feature, &lt;strong&gt;but specifically&lt;/strong&gt; the Attribute system  in the C#/.NET/Mono world.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-26T15:11:23.090" CommentCount="5" />
  <row Id="14803" PostTypeId="2" ParentId="14727" CreationDate="2010-10-26T15:05:04.027" Score="0" ViewCount="" Body="&lt;p&gt;I see absolutely no connection with scrolling etc.  Having a ten-second latency isn't good, even if I wasn't going to type more than 360 characters that hour anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When typing flat-out, I probably go about 60 wpm, or 1 wps.  (I've been objectively tested at 87 wpm.)  Given about six characters per word in tests like that, we're talking about 6 characters per second.  Ideally, each would appear on the screen before the next keypress, so I can easily keep track of where I am and correct typos immediately.  Bear in mind that I'm thinking about what I'm typing, so having to divert any cognition to the act of typing is a real limitation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since I don't know how bursty my typing is, I'd say that 0.1 second is the maximum acceptable latency from all causes.  That's network latency both ways, any latency in bringing up my personal VM, everything.  Anything more is going to be a drain on productivity.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-26T15:05:04.027" />
  <row Id="14804" PostTypeId="2" ParentId="14789" CreationDate="2010-10-26T15:06:02.447" Score="2" ViewCount="" Body="&lt;p&gt;I am also curious to see rationale. We know why they used it in the past: lack of IDE support for type information. But now? Simply put, I think it is a tradition. C++ code &lt;strong&gt;always&lt;/strong&gt; looked like this, so why change things? Besides, when you build on top of previous code that used Hungarian notation, it would look quite strange when you suddenly stop using that...&lt;/p&gt;&#xA;" OwnerUserId="2554" LastActivityDate="2010-10-26T15:06:02.447" CommentCount="3" />
  <row Id="14805" PostTypeId="2" ParentId="14781" CreationDate="2010-10-26T15:06:18.997" Score="2" ViewCount="" Body="&lt;p&gt;The best way to learn, is to do.  Admitting to your self that you don't know something is the beginning of knowledge.  If I were you, instead of taking time out trying to learn what you think you need to learn  I would put myself out there and try to find a job.  Get some interviews under your belt, then you can get an idea of what you need to know to pass an interview. Who knows, you just might get a job and then you can have a corporate-funded learning experience surrounded by experienced people who can help you on your journey.  Remember, knowledge is a journey, not a destination.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-26T15:06:18.997" />
  <row Id="14806" PostTypeId="2" ParentId="14789" CreationDate="2010-10-26T15:07:37.510" Score="2" ViewCount="" Body="&lt;p&gt;If you come up with the right system of prefixes, you could spread the wear and tear of your keys, which would reduce spending on replacement keyboards.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I suppose I could expand on this.  I have used SH at my work place for the last, oh, ten years or so (because it's in our Standard).  It has never helped solve a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I have used unadorned but well-named variables in my 'home code' for almost equally as long. I have never missed SH.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In both places, I have written protocol code that requires fixed size primitive types.  This is the most beneficial use case I can think of for SH.  It hasn't helped that I can tell when written with SH, and it hasn't hindered me when written without SH.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, in conclusion, the only difference I can see is the wear and tear on your keyboard.&lt;/p&gt;&#xA;" OwnerUserId="3991" LastEditorUserId="3991" LastEditorDisplayName="" LastEditDate="2010-10-27T14:45:03.807" LastActivityDate="2010-10-27T14:45:03.807" CommentCount="1" />
  <row Id="14807" PostTypeId="2" ParentId="14720" CreationDate="2010-10-26T15:18:24.887" Score="3" ViewCount="" Body="&lt;p&gt;Get to know each and every developer individually, personally, and genuinely by meeting their needs on these dimensions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Giving clear direction of responsibility and &lt;strong&gt;expectations&lt;/strong&gt; (tell them what is needed)&lt;/li&gt;&#xA;&lt;li&gt;Give access to the &lt;strong&gt;tools&lt;/strong&gt; needed to do the job correctly (monitors, beefy systems)&lt;/li&gt;&#xA;&lt;li&gt;Give them a way to &lt;strong&gt;measure&lt;/strong&gt; their performance (geeks like graphs)&lt;/li&gt;&#xA;&lt;li&gt;Give ample of opportunity to &lt;strong&gt;develop&lt;/strong&gt; professional skills&lt;/li&gt;&#xA;&lt;li&gt;Give them plenty of &lt;strong&gt;acknowledgment&lt;/strong&gt; when they do a good job (who doesn't like praise)&lt;/li&gt;&#xA;&lt;li&gt;Give them jobs that that will be &lt;strong&gt;successful&lt;/strong&gt; at (what are they individually good at doing)&lt;/li&gt;&#xA;&lt;li&gt;Give them a way to &lt;strong&gt;voice&lt;/strong&gt; their opinions, ideas, and feelings (in a safe way)&lt;/li&gt;&#xA;&lt;li&gt;Give ways to encourage and foster &lt;strong&gt;friendship&lt;/strong&gt; (work culture)&lt;/li&gt;&#xA;&lt;li&gt;Give them a reason to make &lt;strong&gt;quality&lt;/strong&gt; products (pride in what they make)&lt;/li&gt;&#xA;&lt;li&gt;Give a higher calling pointing out why what they do is &lt;strong&gt;significant&lt;/strong&gt; to another person (there seems to be almost a 'spiritual' dimension to work)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5400" LastActivityDate="2010-10-26T15:18:24.887" CommunityOwnedDate="2011-02-24T20:58:48.413" />
  <row Id="14808" PostTypeId="1" AcceptedAnswerId="15178" CreationDate="2010-10-26T15:20:31.880" Score="9" ViewCount="681" Body="&lt;p&gt;C# delegates types  are to methods what classes are to instances is one of the many aha moments that I can currently recall from the top of my head. What were some of the memorable moments in your programming life where after a long struggle for getting your head around a concept or language feature culminated  in a sudden epiphany ?&lt;/p&gt;&#xA;" LastActivityDate="2010-10-28T06:37:39.960" ClosedDate="2010-10-27T21:48:57.120" Title="Your most memorable programming eureka(s)" Tags="&lt;learning&gt;&lt;self-improvement&gt;&lt;programming&gt;" AnswerCount="24" CommentCount="19" FavoriteCount="5" />
  <row Id="14809" PostTypeId="2" ParentId="14720" CreationDate="2010-10-26T15:23:35.323" Score="1" ViewCount="" Body="&lt;p&gt;You are to motivate developers to write the next killer app?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps a good place to start would be to let them KNOW that they will do so, in a way so they can see the long term perspective on this.  Such a goal should be highly motivating on its own - IF it really is a killer app.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then show them in action that you actually mean it!&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-26T15:23:35.323" CommunityOwnedDate="2011-02-24T20:58:48.413" />
  <row Id="14810" PostTypeId="2" ParentId="14797" CreationDate="2010-10-26T15:23:43.527" Score="2" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.wxwidgets.org/&quot; rel=&quot;nofollow&quot;&gt;wxWidgets&lt;/a&gt; (wxPython, actually) in a lot of projects, but on the next one I think I'll go with QT :) (via &lt;a href=&quot;http://www.pyside.org/&quot; rel=&quot;nofollow&quot;&gt;PySide&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="5565" LastActivityDate="2010-10-26T15:23:43.527" />
  <row Id="14811" PostTypeId="2" ParentId="13958" CreationDate="2010-10-26T15:24:37.117" Score="1" ViewCount="" Body="&lt;p&gt;What we ended coming up with was we would now have bi-monthly sales/engineering meetings to discuss current projects and upcoming or future feature requests. The sales engineers will become project managers and at least they will be in tune with the latest product offerings. In the past it was just easy to pass it along to Engineering and forget about it. This will likely lessen the load a software engineer has to do and put the onus on sales and management to use our time wisely.&lt;/p&gt;&#xA;" OwnerUserId="4459" LastActivityDate="2010-10-26T15:24:37.117" />
  <row Id="14812" PostTypeId="2" ParentId="14808" CreationDate="2010-10-26T15:26:09.253" Score="0" ViewCount="" Body="&lt;p&gt;I never got object-oriented programming until I read Head First Design Patterns and did a small, one-day project in Java (which doesn't have templates, function pointers, or any other features that let you program effectively without using OO).  Before that, OO (or at least the polymorphism/virtual function part of it) seemed like a solution in search of a problem and I never used it.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-26T15:26:09.253" />
  <row Id="14813" PostTypeId="2" ParentId="14720" CreationDate="2010-10-26T15:26:11.890" Score="2" ViewCount="" Body="&lt;p&gt;You mean, they're building &quot;the next big thing&quot; and they're not motivated already?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get rid of 'em and find people who enjoy what they do.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-26T15:26:11.890" CommunityOwnedDate="2011-02-24T20:58:48.413" CommentCount="3" />
  <row Id="14814" PostTypeId="2" ParentId="14808" CreationDate="2010-10-26T15:31:11.927" Score="1" ViewCount="" Body="&lt;p&gt;PROLOG. Realising what exactly &quot;code is data, data is code&quot; actually means, and how PROLOG uses that both to answer queries and do useful things.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-26T15:31:11.927" />
  <row Id="14815" PostTypeId="2" ParentId="14808" CreationDate="2010-10-26T15:47:19.430" Score="2" ViewCount="" Body="&lt;p&gt;Figuring out monads in Haskell. I got the visual, using &lt;code&gt;do&lt;/code&gt; notation, that each line was enveloping values inside the Monad. Before I used to not know what a valid line would be in the &lt;code&gt;do&lt;/code&gt; notation, and I'd get strange type errors. Then I just realized that all the values have to be 'enveloped' in the right Monad, and that all &lt;code&gt;return&lt;/code&gt; does is take any value and 'envelop' it in the correct Monad. &lt;/p&gt;&#xA;" OwnerUserId="6482" LastActivityDate="2010-10-26T15:47:19.430" />
  <row Id="14816" PostTypeId="2" ParentId="14781" CreationDate="2010-10-26T15:49:02.467" Score="11" ViewCount="" Body="&lt;p&gt;It's not about knowing everything.  It's about knowing where to find the information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I try to keep the core language I am using in memory.  The rest I am merely familiar with, so I use MSDN a lot to look up things.  Lately, I have been trying to get through the C# specification so that I can think more deeply about the language itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I learn best by doing.  Which means ultimately I am doomed to re-implementing Linq to learn lambda expressions, and such.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a programmer, I am capable of doing anything that the top developers can do.  It just takes me a little longer. :)&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-10-26T15:49:02.467" CommentCount="3" />
  <row Id="14817" PostTypeId="2" ParentId="14808" CreationDate="2010-10-26T15:53:23.633" Score="5" ViewCount="" Body="&lt;p&gt;I remember inventing threaded hash tables while studying for a CS midterm.  I was seriously pumped until I explained it to an upperclassman, and he showed me Knuth's explanation (written many years before).  Oh well, at least it validated my idea...&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-10-26T15:53:23.633" />
  <row Id="14818" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T15:59:17.380" Score="0" ViewCount="" Body="&lt;p&gt;Unless you're working at a startup in it's first year or so, overtime weeks shouldn't be happen more than a small percent of the time.  If you job doesn't respect your personal time, they're probably not respecting your paycheck either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd recommend looking for new work, you'll probably get a pay increase in the process.&lt;/p&gt;&#xA;" OwnerUserId="6492" LastActivityDate="2010-10-26T15:59:17.380" />
  <row Id="14819" PostTypeId="2" ParentId="14789" CreationDate="2010-10-26T16:05:59.683" Score="2" ViewCount="" Body="&lt;p&gt;The Systems Hungarian notation was in fact a bit of a cock-up, a misunderstanding of the term 'type'. The systems developers took it literally as the compiler type (word, byte, string, ...) as opposed to the apps domain type (row index, column index, ...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I guess that every developer goes through several phases of style that seem like a great idea at the time (and prefixing type does seem like a good idea to a novice) before falling into the pitfalls (changing type, creating new, meaningful prefixes, etc). So I guess there's an inertia: from developers that don't get better and realise why it's a poor choice, from developers stuck with coding standards that mandate the practice and from people using &lt;code&gt;&amp;lt;windows.h&amp;gt;&lt;/code&gt;. It would be too costly for Microsoft to change  to get rid of the prefix notation (which is incorrect in many places: WPARAM?).&lt;/p&gt;&#xA;" OwnerUserId="914" LastEditorUserId="914" LastEditorDisplayName="" LastEditDate="2010-10-27T09:12:33.827" LastActivityDate="2010-10-27T09:12:33.827" CommentCount="3" />
  <row Id="14820" PostTypeId="2" ParentId="14789" CreationDate="2010-10-26T16:06:03.223" Score="4" ViewCount="" Body="&lt;p&gt;I'm not a huge fan of using hungarian notation but think this way:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;We can also notice that it's faster to find a string refering to a TextBox in your code: by typing &quot;txt&quot; in your search box. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;No imagine the opposite, where every element has its own name. It might be slower for you to find where you want to go, right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same goes for ddl when we want to refer to a DropDownList, its easier or not? :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People won't spend so much time to find where is this element.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The prefix use is not usable for modern languages compilers like C#, but &lt;strong&gt;it is usable (readable)&lt;/strong&gt; for human beings.&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-26T16:06:03.223" CommentCount="3" />
  <row Id="14821" PostTypeId="2" ParentId="14745" CreationDate="2010-10-26T16:06:31.337" Score="0" ViewCount="" Body="&lt;p&gt;I would say not, because they're not very widely used.  If you're curious, you might want to take a look at them after you've gotten a good handle on Java.  They're not terribly hard to understand, but I wouldn't include them on my primary list of things to learn.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-10-26T16:06:31.337" />
  <row Id="14822" PostTypeId="2" ParentId="14808" CreationDate="2010-10-26T16:09:56.530" Score="4" ViewCount="" Body="&lt;p&gt;I read &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Art_of_the_Metaobject_Protocol&quot; rel=&quot;nofollow&quot;&gt;AMOP&lt;/a&gt; a second time, because I'd heard Alan Kay praise it.  The second time, I finally 'got' the genius of how CLOS was implemented (even though I'd been using it for years).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(You can define a system in the system you're defining, before you're done defining it!  You just have to quote the definition because it can't parse itself, yet.  An object system has a UI layer, like any other program!  Whoa!)&lt;/p&gt;&#xA;" OwnerUserId="6499" LastActivityDate="2010-10-26T16:09:56.530" CommentCount="1" />
  <row Id="14823" PostTypeId="2" ParentId="14808" CreationDate="2010-10-26T16:13:14.683" Score="6" ViewCount="" Body="&lt;p&gt;When you [really] understand pointers on C is the greatest &quot;eureka&quot; I already had. [I mean when you understand what you can do with them, like: while(*d++ = *s++);]&lt;/p&gt;&#xA;" OwnerUserId="3445" LastActivityDate="2010-10-26T16:13:14.683" CommentCount="7" />
  <row Id="14824" PostTypeId="1" AcceptedAnswerId="15237" CreationDate="2010-10-26T16:13:33.107" Score="7" ViewCount="342" Body="&lt;p&gt;Has anyone actually used either the Kinesis advantage keyboard (pro or not) or the Goldtouch?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking for feed back on how easy you found it to adapt to using either of them and how you feel they helped (or not) when it came to coding?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've read the questions about &quot;which is the best keyboard for coding&quot; etc and both of these keyboards get mentions but no one really explained why they were reccomending these ones?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Kinesis looks very interesting but is far to expensive for me to just buy it and try it without some feedback from an actual user. Much of what I've found online is around 5 years old.&lt;/p&gt;&#xA;" OwnerUserId="5148" LastEditorUserId="5148" LastEditorDisplayName="" LastEditDate="2010-10-26T17:00:07.830" LastActivityDate="2011-05-05T11:47:46.860" Title="Have you used the Kinesis advantage (pro) or the Goldtouch" Tags="&lt;recommendations&gt;&lt;keyboard&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="14825" PostTypeId="2" ParentId="1060" CreationDate="2010-10-26T16:16:02.137" Score="1" ViewCount="" Body="&lt;p&gt;I'm no expert on AOP, but from reading about it over the years, it has always seemed like a weaker form of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Aspect-oriented_programming#Comparison_to_other_programming_paradigms&quot; rel=&quot;nofollow&quot;&gt;metaprogramming offered by Lisp&lt;/a&gt;, especially parts like its metaobject protocol.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This should come as no surprise, I suppose: Gregor Kiczales was one of the authors of AMOP, and later wrote AspectJ for Java!&lt;/p&gt;&#xA;" OwnerUserId="6499" LastActivityDate="2010-10-26T16:16:02.137" />
  <row Id="14826" PostTypeId="2" ParentId="14720" CreationDate="2010-10-26T16:16:07.397" Score="6" ViewCount="" Body="&lt;p&gt;I'm ready to be voted down, but you can motivate me any way you want (make me work hard hours, give me a 386 for a machine on which to code, work on a shaking card table in the dark in a basement, yell at me, work weekends and holidays, and provide no free coffee) and I will be your crack team as long as you &lt;strong&gt;pay me a &lt;em&gt;ridiculous&lt;/em&gt; amount of money&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-10-26T16:16:07.397" CommunityOwnedDate="2011-02-24T20:58:48.413" CommentCount="5" />
  <row Id="14827" PostTypeId="1" CreationDate="2010-10-26T16:18:39.077" Score="36" ViewCount="1560" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/14706/overtime-is-part-of-the-job-true-but-a-bad-attitude&quot;&gt;This question&lt;/a&gt; stated as an assumption: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I'm aware that most programmers put in&#xA;  50-60+ hour work weeks&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It also stated that working long hours is usually mandatory. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this typical?  &lt;/p&gt;&#xA;" OwnerUserId="1364" LastEditorUserId="3382" LastEditorDisplayName="" LastEditDate="2010-10-27T02:35:59.203" LastActivityDate="2011-01-12T20:41:09.457" CommunityOwnedDate="2011-01-12T18:52:29.870" Title="Typical hours/week for programmers" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="25" CommentCount="1" FavoriteCount="18" />
  <row Id="14828" PostTypeId="2" ParentId="14808" CreationDate="2010-10-26T16:18:51.590" Score="6" ViewCount="" Body="&lt;p&gt;When I realized how important good issue tracking, planning, and version control all were to managing a project. Even now when I work on solo projects for fun (or for profit), I have a repository set up and use FogBugz to both plan out tasks for the project, and to keep track of issues I come across when working on it. It made me a lot more productive, as I wasn't wondering what I should working on next, and it made moving files between computers and servers a breeze.&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-10-26T16:18:51.590" CommentCount="1" />
  <row Id="14829" PostTypeId="2" ParentId="14827" CreationDate="2010-10-26T16:19:58.763" Score="1" ViewCount="" Body="&lt;p&gt;I run around 40-42 per week, a bit more when deadlines are coming up.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-26T16:19:58.763" CommunityOwnedDate="2011-01-12T18:52:29.870" />
  <row Id="14830" PostTypeId="2" ParentId="14808" CreationDate="2010-10-26T16:20:38.767" Score="1" ViewCount="" Body="&lt;p&gt;Being 12 or 13, sitting in the basement, working on some game and writing a &quot;scramble&quot; algorithm for an array in BASIC on my Commodore 64. Then, similar to @TMN, realizing I had written a backwards q-sort, or maybe it was a bubble sort. I remember that as being the first &quot;heady&quot; thing I had done. It wasn't much, but it was my first Eureka! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wow, that was 25 years ago... Off my lawn!  :)&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-10-26T16:20:38.767" CommentCount="2" />
  <row Id="14831" PostTypeId="1" CreationDate="2010-10-26T16:21:19.183" Score="14" ViewCount="818" Body="&lt;p&gt;Hello...How do you go about teaching Exception Handling to Programmers. All other things are taught easily - Data Structures, ASP.NET, WinForms, WPF, WCF - you name it, everything can be taught easily. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;With Exception Handling, teaching them try-catch-finally is just the syntactic nature of Exception Handling. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What should be taught however is - What part of your code do you put in the &lt;strong&gt;try&lt;/strong&gt; block? What do you do in the &lt;strong&gt;catch&lt;/strong&gt; block?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let me illustrate it with an example. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are working on a Windows Forms Project (a small utility) and you have designed it as below with 3 different projects. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;UILayer&lt;/li&gt;&#xA;&lt;li&gt;BusinessLayer&lt;/li&gt;&#xA;&lt;li&gt;DataLayer&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If an Exception (let us say of loading an XDocument throws an exception) is raised at DataLayer (the UILayer calls BusinessLayer which in turns calls the DataLayer), do you just do the following&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//In DataLayer&#xA;&#xA;try&#xA;{&#xA;XDocument xd_XmlDocument = XDocument.Load(&quot;systems.xml&quot;);&#xA;}&#xA;catch(Exception ex)&#xA;{&#xA;throw ex;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;which gets thrown again in the BusinessLayer and which is caught in UILayer where I write it to the log file? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this how you go about Exception Handling?&lt;/p&gt;&#xA;" OwnerUserId="5070" LastEditorUserId="5070" LastEditorDisplayName="" LastEditDate="2010-10-27T01:45:57.403" LastActivityDate="2010-11-06T22:27:45.940" Title="How to teach Exception Handling for New Programmers?" Tags="&lt;java&gt;&lt;programming-practices&gt;&lt;c#&gt;&lt;teaching&gt;&lt;exceptions&gt;" AnswerCount="14" CommentCount="5" FavoriteCount="8" />
  <row Id="14832" PostTypeId="2" ParentId="14827" CreationDate="2010-10-26T16:21:19.480" Score="2" ViewCount="" Body="&lt;p&gt;My current job is for 37.5 hours per week, based in London. I wasn't paid overtime, but also didn't have to. (I also work 10 hours a week in a second job though, so while my &lt;em&gt;job&lt;/em&gt; doesn't ask me to work more than 37.5, I do actually work about 50 hours a week.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My next job (starting next week) is for 40 hours per week, again in London. Flexible hours mean that when or if I do need to work 50-60 hours this week, I can work 20-30 hours next week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Previous to that, in Cape Town, I worked 40 hours per week. Again, no paid overtime, but rarely had to use it.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-26T16:21:19.480" CommunityOwnedDate="2011-01-12T18:52:29.870" CommentCount="1" />
  <row Id="14833" PostTypeId="2" ParentId="14824" CreationDate="2010-10-26T16:24:13.507" Score="2" ViewCount="" Body="&lt;h1&gt;Neither&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Honestly the IBM Model &quot;M&quot; keyboard was about as good as it gets. The ergonomic or split keyboards are only good if you only use that one and have perfect typing technique. Especially when programming the perfect technique will often go out the into in favor of speed and being able to eat while type with three fingers of one hand. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not to mention the fact the if you end up ever using someone else keyboard you will have a hard time, just like if someone tried to use your ergonomic monster.  &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-26T16:24:13.507" CommentCount="4" />
  <row Id="14834" PostTypeId="2" ParentId="14645" CreationDate="2010-10-26T16:27:06.747" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;FizzBuzz&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From &lt;a href=&quot;http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html&quot; rel=&quot;nofollow&quot;&gt;CodingHorror&lt;/a&gt;, originally from &lt;a href=&quot;http://imranontech.com/2007/01/24/using-fizzbuzz-to-find-developers-who-grok-coding/&quot; rel=&quot;nofollow&quot;&gt;Imran on Tech&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Write a program that prints the numbers from 1 to 100. But for multiples of three print &quot;Fizz&quot; instead of the number and for the multiples of five print &quot;Buzz&quot;. For numbers which are multiples of both three and five print &quot;FizzBuzz&quot;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;When I first read the claim that over 99% of applicants to the average programming job can't complete this, I honestly didn't believe it.  I ended up working at a small company that asked me this question, though, and talked with the CEO later; he told me that those statistics hold true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As such, this is a great question to weed out a large chunk of applicants.  It's short enough to make them do it on paper if that's all you have, and simple enough that a college kid should be able to code it after their first intro to programming course.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-26T16:27:06.747" CommentCount="3" />
  <row Id="14835" PostTypeId="2" ParentId="14831" CreationDate="2010-10-26T16:28:52.597" Score="14" ViewCount="" Body="&lt;p&gt;To explain exception handling, explain the concept behind it: &lt;em&gt;The code where an error occurs frequently does not know how to properly handle that error.&lt;/em&gt;  The code that knows how to handle it properly could be the function that called that one, or it could be further up the call stack.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you write a routine that calls a routine that might throw an exception, if you know how to handle that error correctly, put the call in a try block and put the error-handling code in the catch block.  If not, leave it alone and let something above you in the call stack handle the error.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Saying &quot;catch ex, throw ex&quot; is &lt;strong&gt;not&lt;/strong&gt; a good way to do exception handling, since it doesn't actually handle anything.  Plus, depending on how the exception model in your language works, that can actually be harmful if it clears stack trace information that you could have used to debug the issue.  Just let the exception propagate up the call stack until it hits a routine that knows how to handle it.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-26T16:28:52.597" CommentCount="1" />
  <row Id="14836" PostTypeId="2" ParentId="14808" CreationDate="2010-10-26T16:29:06.013" Score="3" ViewCount="" Body="&lt;p&gt;When I finally learned about Design Patterns. I used to think that 'good OOP' was understand how inheritance and polymorphism worked. I read Head First Design Patterns, and realized that was just OOP 101, and there are a lot of methods for dealing with certain problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More so than the actual design patterns in the book, was some of the general principles, such as 'favor composition over inheritance', the single responsibility principle, decoupling, and true reusuability or objects, it made it much clearer what a 'good' object should look like and how to write better applications. &lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-10-26T16:29:06.013" CommentCount="1" />
  <row Id="14837" PostTypeId="2" ParentId="14827" CreationDate="2010-10-26T16:29:57.213" Score="25" ViewCount="" Body="&lt;p&gt;I do 40 a week, with up to 50 if needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, working overtime is a &quot;process smell.&quot;  I mean, you can't control everything, and there will always be unforeseen circumstances, but if it happens with any regularity, your team/group/company is doing something wrong.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-26T16:29:57.213" CommunityOwnedDate="2011-01-12T18:52:29.870" />
  <row Id="14838" PostTypeId="2" ParentId="14827" CreationDate="2010-10-26T16:30:53.780" Score="89" ViewCount="" Body="&lt;p&gt;As a salaried employee, I refuse to work more than 40 hours per week unless there is a very exceptional circumstance to account for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether employers like it or not, my annual salary translates to a dollar-per-hour figure for me, and I am not interested in diluting my income to help out with their poor planning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, my life -- which includes a wife and three kids -- is far, far more important than putting more dollars in their pockets, especially when it is at the expense of my own pocket.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-10-26T16:30:53.780" CommunityOwnedDate="2011-01-12T18:52:29.870" CommentCount="14" />
  <row Id="14839" PostTypeId="1" AcceptedAnswerId="14869" CreationDate="2010-10-26T16:38:35.803" Score="6" ViewCount="531" Body="&lt;p&gt;So I just started a new position at a great company that is pretty much a dream to work for. The only problem is that there's a steep learning curve for the type of data I will be working with, and my boss/training lead &lt;strong&gt;is never there.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think he is, after 10 years, experiencing burnout. He's here probably 3-10 hours out of the week, and even then its not a guarantee he's checked-in. I can still contribute in some fashion (I don't need training on programming, per say), but I'm two months in and I still don't feel comfortable in my position due to the lack of one on one time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can contribute to some projects which I volunteer for, but they're a little outside the scope of my primary responsibilities. I'm worried that the higher ups might view me as slow to adjust. Any suggestions to change this situation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I took the suggestion in the multiple answers to schedule face time. I did, and it took us about 20 minutes to accomplish a task that should have taken about 5. The reason it took so long? &lt;strong&gt;He was talking about his kid.&lt;/strong&gt; FML&lt;/p&gt;&#xA;" OwnerUserId="6501" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-21T03:41:49.443" LastActivityDate="2010-12-21T03:41:49.443" Title="New job and my boss is frequently absent." Tags="&lt;career&gt;&lt;career-advice&gt;&lt;boss&gt;&lt;new-job&gt;" AnswerCount="7" CommentCount="0" FavoriteCount="2" />
  <row Id="14840" PostTypeId="2" ParentId="14839" CreationDate="2010-10-26T16:44:57.997" Score="12" ViewCount="" Body="&lt;p&gt;Time for you to Shine. Great oppurtunity.. take his job :-)&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-26T16:44:57.997" CommentCount="6" />
  <row Id="14841" PostTypeId="2" ParentId="12556" CreationDate="2010-10-26T16:47:13.003" Score="1" ViewCount="" Body="&lt;p&gt;This sounds like a networking opportunity, I'm sure there are a number of students interested in programming with a similar level of experience/training... you're just not finding them...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you attended one of the Code Camps (free developer related training) in the Tampa Bay area, or joined one of the local programming user groups?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both of these resources will provide you with networking opportunities. And instead of feeling like you have to train your fellow students, you'll be able to invite your friends along with you and then discuss what was covered.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll also gain access to people who are programming as a career and can get an idea of what kinds of situations you're likely to come up with in &quot;the real world&quot;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you've explored these local resources you may still find that you opportunities to share your knowledge by doing your own presentations, which is great. Sharing what you've learned with a user group or as a speaker of a code camp presentation is a good way to get feedback on what you've learned and opens you up to learning more as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I grew up in the Tampa Bay area and attended a lot of free Microsoft sponsored events, your local user group should have information on how to get involved in those events as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, this was a long winded reply... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The next Code Camp in Tampa is on Nov. 13th 2010 according to the tampacodecamp website.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a link to your local INETA/programming user group:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.tampadev.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.tampadev.org/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I'm new to this group and was only able to include one link.)&lt;/p&gt;&#xA;" OwnerUserId="6498" LastActivityDate="2010-10-26T16:47:13.003" />
  <row Id="14842" PostTypeId="1" CreationDate="2010-10-26T16:50:33.863" Score="5" ViewCount="413" Body="&lt;p&gt;&lt;em&gt;It's entirely too early for speculation on what C++ will be like&lt;/em&gt; after &lt;em&gt;C++0x, but idle hands make for wild predictions.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What features would you find useful and why?  Is there anything in another language that would fit nicely into the state of C++ after 0x?  What should be considered for the next TC and TR?  (Mostly TR, as the TC would depend more on what actually becomes the next standard.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Export was &lt;em&gt;removed,&lt;/em&gt; rather than merely deprecated, in 0x.  (It remains a keyword.)  What other features carry so much baggage to also be more harmful than helpful?&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;ISO Standards' process&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I'm not involved in the &lt;a href=&quot;http://www.open-std.org/jtc1/sc22/wg21/&quot; rel=&quot;nofollow&quot;&gt;C++ committee&lt;/a&gt;, but it's also a mystery, unfortunately, to most programmers using C++.  A few things worth keeping in mind:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;There will be 10 years between standards, barring extremely exceptional circumstances.&lt;/li&gt;&#xA;&lt;li&gt;The standard can get &quot;bug fixes&quot; in the form of a Technical Corrigendum.  This happened to C++98 with TC1, named C++03.  It fixed &quot;simple&quot; issues such as making the explicit guarantee that std::vector stores items contiguously, which was always intended.&lt;/li&gt;&#xA;&lt;li&gt;The committee can issue reports which can add to the language.  This happened to C++98/03 with TR1 in 2005, which introduced the std::tr1 namespace.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2010-12-10T12:50:34.483" Title="The next next C++" Tags="&lt;c++&gt;&lt;language-design&gt;&lt;language-features&gt;&lt;c++1x&gt;" AnswerCount="5" CommentCount="0" FavoriteCount="2" />
  <row Id="14843" PostTypeId="2" ParentId="14827" CreationDate="2010-10-26T16:51:12.420" Score="3" ViewCount="" Body="&lt;p&gt;If you have to work longer then you planned to work then your process is broken. If you plan to work 50, well that is your deal. I work 40 sometimes a few hours more sometimes a few hours less.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A while back I worked in a group that normaly planed for 40 but always put in 55-60. We made some major changes including adding design peer reviews, estimating as a group, and better testing practices and easily brought the number down to 40 while still getting the same amount or more work done.&lt;/p&gt;&#xA;" OwnerUserId="3697" LastActivityDate="2010-10-26T16:51:12.420" CommunityOwnedDate="2011-01-12T18:52:29.870" />
  <row Id="14844" PostTypeId="2" ParentId="14839" CreationDate="2010-10-26T16:52:26.517" Score="2" ViewCount="" Body="&lt;p&gt;If he/she is your boss, they don't check in with you... you check in with them if present. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I understand you are in a tough situation but all you can do is communicate as easily as possible with your boss. Ie. via cell or email if possible when he is not in the office. Also it cannot hurt to ask for some face time weekly, schedule it so he will know when and hopefully be there. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps you can discuss with him why he is out of the office so often.  Do not question his motives.  There could be reasons outside of work too: ie. family problems, health complications, etc.  So do not take this at face value, try to show your boss that you need his mentoring to feel comfortable with the technology and hope you can find at least some time each week/two weeks to get knowledge/information from him. &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-26T16:52:26.517" CommentCount="7" />
  <row Id="14845" PostTypeId="2" ParentId="14831" CreationDate="2010-10-26T16:57:48.360" Score="1" ViewCount="" Body="&lt;p&gt;I would imagine to understand exceptions you first need to understand the child/parent relationship of classes for example.  If you understand that a child can inherit functionality from a parent, they might be able to on an elementary level understand that if a child has a problem it cannot handle it will pass this problem (exception) up to its parent and let the parent deal with it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This becomes a chained relation until you end up with a place where something knows how to handle the exception. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And as far as finally goes this is the trivial part... when a problem occurs something has to handle it so the program does not exit fatally, after that exception is handled the finally block is there which will always execute regardless of the try catch.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good example of this might be with networking: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;we make connection&lt;/li&gt;&#xA;&lt;li&gt;connection is ok so we use it &lt;/li&gt;&#xA;&lt;li&gt;when finished we close up and free resources&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;or in exception case: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;make a connection &lt;/li&gt;&#xA;&lt;li&gt;an exception occurs which something handles&lt;/li&gt;&#xA;&lt;li&gt;at whichi point we free up connection and resources associated&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-26T16:57:48.360" CommentCount="1" />
  <row Id="14846" PostTypeId="2" ParentId="14827" CreationDate="2010-10-26T17:09:06.267" Score="2" ViewCount="" Body="&lt;p&gt;It really depends on the type of company but this is a cultural thing that varies quite a bit between otherwise similar companies. Start-ups have a reputation of long hours but in most larger established companies and departments you won't so often see that as a requirement, and its not a rule for startups either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did interview within my own company though for a job in another division and the manager told me up-front that they expected people to work 50-60 hours a week. I said thanks for your time...&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-10-26T17:09:06.267" CommunityOwnedDate="2011-01-12T18:52:29.870" />
  <row Id="14847" PostTypeId="2" ParentId="14824" CreationDate="2010-10-26T17:12:24.960" Score="2" ViewCount="" Body="&lt;p&gt;I've got the Kinesis Advantage, one at work and one at home. I got it because the &quot;natural&quot; style keyboards just didn't cut it ergonomically for me anymore and I easily got pain in my wrists. I do touch-type and it took me a couple of days to adjust to the new key positions, especially that of the space key. I often pressed backspace (left thumb) instead of space (right thumb) in the beginning. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition to changing keyboard, I also changed my keyboard layout to a Swedish version of Dvorak, with most special (programming) characters as combinations of Alt and letter keys, which made them easier to reach. I reprogrammed the keyboard to have Alt as the End (left thumb) and Page Down (right thumb) keys to make it easily reachable. To be honest, I don't think changing the keyboard layout gives as much of an advantage on the Kinesis keyboard since all keys are more easily reachable anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't really say that the Advantage has helped my actual programming all that much, except for the fact that I can actually work with it all day now. &lt;/p&gt;&#xA;" OwnerUserId="4389" LastActivityDate="2010-10-26T17:12:24.960" CommentCount="2" />
  <row Id="14848" PostTypeId="2" ParentId="14808" CreationDate="2010-10-26T17:14:03.387" Score="2" ViewCount="" Body="&lt;p&gt;I waited like a year or so after Visual Studio 2008 was released, to start using (and learning) some of the latest features that C#3.5 provided. Before that I was working in other projects using C#2.0.&#xA;By that time, I also started reading Eric Lippert's Blog, so I yielded a big eureka when I realized the power of LINQ and lambda expressions in C#.&lt;/p&gt;&#xA;" OwnerUserId="4879" LastActivityDate="2010-10-26T17:14:03.387" />
  <row Id="14849" PostTypeId="2" ParentId="14827" CreationDate="2010-10-26T17:14:12.323" Score="7" ViewCount="" Body="&lt;p&gt;Depends on what's going on and who's fault the issue is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I run around 40-42 hours a week like someone else said. If I get lost in my work and realized I worked a few extra hours, no biggie , in fact I enjoyed it so it's all good. If I'm working on something and I screwed up - I'll stay late to fix it (That's a ME problem).  IF on the other hand management screwed up scheduling, underbid, and has unrealistic expectations where they think I'm going to go on some coder death march of 10 hour days M-F and occasionally weekends I will find somewhere else to work.  (That is a YOU problem)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a deadline is coming up and something needs to get done, I'll do it because most likely this is only going to go on for a week - maybe two tops and then things settle down.  But once again that's not the norm so it can be dealt with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You only live this life once (or so I'm told) so there is no reason to burn yourself out and put other things at risk (husband/wife , kids , whatever) so some manager can get a raise for getting something done while you get no credit.&lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-10-26T17:14:12.323" CommunityOwnedDate="2011-01-12T18:52:29.870" CommentCount="3" />
  <row Id="14850" PostTypeId="2" ParentId="14827" CreationDate="2010-10-26T17:18:23.453" Score="21" ViewCount="" Body="&lt;p&gt;Define 'work'. Is waking up in the middle of the night visualizing the perfect architecture included in work hours? What about chewing it over on the drive home? Or explaining linked lists to your kids/spouse/priest/bartender so you can figure out a particularly thorny problem?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Presence hours are a useful measure of how many hours a person is present in a workplace. They're at best a proxy for other measures of performance.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-10-26T17:18:23.453" CommunityOwnedDate="2011-01-12T18:52:29.870" CommentCount="1" />
  <row Id="14851" PostTypeId="2" ParentId="14622" CreationDate="2010-10-26T17:20:49.383" Score="2" ViewCount="" Body="&lt;p&gt;I have a standard chair and one of &lt;a href=&quot;http://www.thehumansolution.com/wosiadhecode.html&quot; rel=&quot;nofollow&quot;&gt;these&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://ep.yimg.com/ca/I/thehumansolution_2126_57258331&quot; alt=&quot;&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I stand. Most of the time I sit. However, standing is not the best part. Sometimes it's more comfortable to have the desk at 30 inches, sometimes 27 is better. Being able to switch between is the best part. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to do is spend a half hour making sure none of your cables unplug when you raise it up to the full height though.&lt;/p&gt;&#xA;" OwnerUserId="6434" LastActivityDate="2010-10-26T17:20:49.383" />
  <row Id="14852" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T17:26:46.883" Score="4" ViewCount="" Body="&lt;p&gt;In companies with decent work practices, developers are asked to give a careful estimate of how long their tasks will take. Normally, the dev estimate is multiplied by some factor (1.5x usually) to lower the risk. Larger plans are based on these building blocks. Of course, estimates are just a guideline, and unpredictable items occur all the time -- software development is not like digging ditches. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I break my own estimate, I do feel obliged to work overtime until delivery of the feature. However, if management does not solicit my input, does no proper planning, or allocates 4 hrs on a task I think would take 6 and actually takes 12, then I don't feel obliged to compensate for their incompetence. &lt;/p&gt;&#xA;" OwnerUserId="2193" LastEditorUserId="2193" LastEditorDisplayName="" LastEditDate="2010-10-27T17:14:41.400" LastActivityDate="2010-10-27T17:14:41.400" CommentCount="5" />
  <row Id="14853" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T17:26:50.177" Score="3" ViewCount="" Body="&lt;p&gt;This is the reason I only work as a consultant/contractor, and have been doing so for over 30 years.  I only get paid by the hour, unless I'm doing a fixed-price contract, which is rare.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if a client asks me to work overtime, and I can fit it in, I do so but I make sure I get paid for every hour.  Fifteen years ago, when working on a satellite TV system with a very tight schedule, I actually had some weeks with 100+ billable hours.  That was pretty crazy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My hours are flexible.  I bill whatever hours I work -- generally 40 hours a week, but if I have to take an afternoon off and don't make it up, then I might only bill 36.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently the main reason I sometimes have to work extra hours at my main job (I have several other contracts going on simultaneously), is due to extra tasks popping up (e.g. proof of concept demos, or one-offs for a customer) which haven't been scheduled.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The downside of all is this of course is I don't get paid for holidays or vacation.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-26T17:26:50.177" CommentCount="2" />
  <row Id="14854" PostTypeId="2" ParentId="14827" CreationDate="2010-10-26T17:32:44.537" Score="0" ViewCount="" Body="&lt;p&gt;I work only as a consultant/contract programmer.  I currently have one main contract at a startup, where I typically work 40 hours a week, but sometimes Saturdays for a total of 48 (all paid of course since I bill by the hour).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also have some other smaller contracts, so I end up working anywhere from 45 to 60 hours in a typical week.  It helps if the other jobs are different from my main one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I try to avoid working seven full days a week, doing that really starts to burn me out.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-26T17:32:44.537" CommunityOwnedDate="2011-01-12T18:52:29.870" />
  <row Id="14855" PostTypeId="2" ParentId="14827" CreationDate="2010-10-26T17:36:05.130" Score="0" ViewCount="" Body="&lt;p&gt;It can be:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're in Investment Banking IT in London then yes. But your reward is commensurate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been in jobs where the contract was 35 hours per week, anything above was overtime.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently, my contract has no hours mentioned because of my role but I work around 45 hours per week quite flexibly though.&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-10-26T17:36:05.130" CommunityOwnedDate="2011-01-12T18:52:29.870" />
  <row Id="14856" PostTypeId="1" CreationDate="2010-10-26T17:37:28.073" Score="77" ViewCount="4969" Body="&lt;p&gt;&quot;Best practices&quot; are everywhere in our industry.  A &lt;a href=&quot;http://www.google.com/search?q=coding+best+practices&quot; rel=&quot;nofollow&quot;&gt;Google search on &quot;coding best practices&quot;&lt;/a&gt; turns up nearly 1.5 million results.  The idea seems to bring comfort to many; just follow the instructions, and everything will turn out fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I read about a &lt;em&gt;best practice&lt;/em&gt; - for example, I just read through several in &lt;a href=&quot;http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&amp;amp;field-keywords=clean+code&amp;amp;x=0&amp;amp;y=0&quot; rel=&quot;nofollow&quot;&gt;Clean Code&lt;/a&gt; recently - I get nervous.  Does this mean that I should &lt;em&gt;always&lt;/em&gt; use this practice?  Are there conditions attached?  Are there situations where it might &lt;em&gt;not&lt;/em&gt; be a good practice?  How can I know for sure until I've learned more about the problem?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Several of the practices mentioned in &lt;em&gt;Clean Code&lt;/em&gt; did not sit right with me, but I'm honestly not sure if that's because they're potentially bad, or if that's just my personal bias talking.  I do know that many prominent people in the tech industry seem to think that &lt;a href=&quot;http://www.satisfice.com/blog/archives/27&quot; rel=&quot;nofollow&quot;&gt;there are no best practices&lt;/a&gt;, so at least my nagging doubts place me in good company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The number of best practices I've read about are simply too numerous to list here or ask individual questions about, so I would like to phrase this as a general question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Which coding practices that are popularly labeled as &quot;best practices&quot; can be sub-optimal or even harmful under certain circumstances?  What are those circumstances and why do they make the practice a poor one?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would prefer to hear about specific examples and experiences.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="3249" LastEditorDisplayName="" LastEditDate="2011-01-19T02:10:22.820" LastActivityDate="2011-02-19T20:34:00.480" CommunityOwnedDate="2010-12-09T20:27:23.670" Title="What popular &quot;best practices&quot; are not always best, and why?" Tags="&lt;best-practices&gt;&lt;programming&gt;" AnswerCount="43" CommentCount="14" FavoriteCount="46" />
  <row Id="14857" PostTypeId="2" ParentId="14808" CreationDate="2010-10-26T17:38:10.223" Score="1" ViewCount="" Body="&lt;p&gt;EXISTS and NOT EXISTS in SQL. And why they are better than In + JOIN.&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-10-26T17:38:10.223" CommentCount="0" />
  <row Id="14858" PostTypeId="2" ParentId="14827" CreationDate="2010-10-26T17:39:08.273" Score="1" ViewCount="" Body="&lt;p&gt;It's 40 hours here, 37.5 paid (the half hour lunch time isn't paid.)  I usually stick to that.  Of course sometimes there's something that needs to be resolved &lt;em&gt;now&lt;/em&gt;, so I will then put in more time.  They usually don't pay overtime, but we can take some time off (leave early, come in late, whatever... Rather flexible.)  And of course there are those times when I'm working on something that I want to finish before going home (otherwise I'll haunt me until the next day.)&lt;/p&gt;&#xA;" OwnerUserId="3842" LastActivityDate="2010-10-26T17:39:08.273" CommunityOwnedDate="2011-01-12T18:52:29.870" />
  <row Id="14859" PostTypeId="2" ParentId="14839" CreationDate="2010-10-26T17:42:51.360" Score="0" ViewCount="" Body="&lt;p&gt;Are you the sole programmer (?) in your team? Maybe you your co-workers can fill-in his role?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if I were you, I would bombard your boss with e-mails. You know, CYA strategy. Although it might be not so good idea if you work for big G (lucky you, in such case) :)&lt;/p&gt;&#xA;" OwnerUserId="2554" LastActivityDate="2010-10-26T17:42:51.360" CommentCount="1" />
  <row Id="14860" PostTypeId="2" ParentId="14808" CreationDate="2010-10-26T17:44:08.253" Score="2" ViewCount="" Body="&lt;p&gt;The moment when lambda calculus became intuitive.&lt;/p&gt;&#xA;" OwnerUserId="2107" LastActivityDate="2010-10-26T17:44:08.253" />
  <row Id="14861" PostTypeId="2" ParentId="14789" CreationDate="2010-10-26T17:44:09.640" Score="2" ViewCount="" Body="&lt;p&gt;Apps Hungarian (tags to denote semantic properties of objects that can't be expressed through the type system) was a reasonable way to deal with some common errors when using the weakly-typed languages of the early 1980s. They serve little purpose in today's strongly-typed languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Systems Hungarian (tags to redundantly denote an object's declared type) has never served any purpose except to impose a superficially uniform appearance on a code base. It was created and propagated by non-technical managers, and inexperienced programmers, who misunderstood the intent of Apps Hungarian, and believed that code quality could be enhanced by complex coding guidelines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both styles originated within Microsoft. These days, Microsoft's &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms229045.aspx&quot; rel=&quot;nofollow&quot;&gt;naming conventions&lt;/a&gt; categorically say &quot;Do not use Hungarian notation.&quot;&lt;/p&gt;&#xA;" OwnerUserId="3748" LastActivityDate="2010-10-26T17:44:09.640" />
  <row Id="14862" PostTypeId="2" ParentId="14856" CreationDate="2010-10-26T17:47:37.630" Score="20" ViewCount="" Body="&lt;p&gt;Writing function names as if they were English sentences:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Draw_Foo()&#xA;Write_Foo()&#xA;Create_Foo()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;etc. This might look great, but it's a pain when you're learning an API. How much easier is it to search an index for &quot;Everything that starts with Foo&quot;?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Foo_Draw()&#xA;Foo_Write()&#xA;Foo_Create()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;etc.&lt;/p&gt;&#xA;" OwnerUserId="4432" LastActivityDate="2010-10-26T17:47:37.630" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="11" />
  <row Id="14863" PostTypeId="2" ParentId="14827" CreationDate="2010-10-26T17:49:02.183" Score="0" ViewCount="" Body="&lt;p&gt;I suppose looking at the comments here I am different from the norm as I work between 45 to 60 hours a week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing that separates me from most of the comments above is the size of team I work in and also my involvement in the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As we are a small software house specialising in medical systems (though we have a few others as well) much of our time is spent on implementation of systems to cope with either new legislation or advances in techniques used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are currently in the middle of a product launch which has been ongoing for 2 years of solid development, that coupled with Data conversions have lead to very long hours sometimes in excess of 70 hours in a week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said all this, I am lining my own pockets by working hard and covering the extra hours. If I was salaried as a standard employee then I would not work in excess of 40 hours without suitable remuneration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a wife, 2 children and a third on the way, all the hours I do still leave me time to spend with the family as I will not work from 5pm through to 8pm which is when the children are put to bed. I also only work on Sundays as an absolute emergency and will take another day off in its place.&lt;/p&gt;&#xA;" OwnerUserId="6296" LastActivityDate="2010-10-26T17:49:02.183" CommunityOwnedDate="2011-01-12T18:52:29.870" CommentCount="1" />
  <row Id="14864" PostTypeId="2" ParentId="14808" CreationDate="2010-10-26T17:50:01.320" Score="2" ViewCount="" Body="&lt;p&gt;I took a distance learning Assembly Language class in highschool with no one within 100 miles to help me figure out how to do anything.  I was stuck in a little closet alone with an ancientish computer and I literally fell out of my chair the first time I got it to compile.  If I'd have cracked my skull on the floor and bled to death right there, I would have died a happy man.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-26T17:50:01.320" />
  <row Id="14865" PostTypeId="2" ParentId="14839" CreationDate="2010-10-26T17:53:28.600" Score="7" ViewCount="" Body="&lt;p&gt;Store up your notes for a &lt;a href=&quot;http://thedailywtf.com/&quot; rel=&quot;nofollow&quot;&gt;Daily WTF&lt;/a&gt; article ending with &quot;Bob left that company with a smile.&quot;  Either you or your boss will be Bob. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-26T17:53:28.600" CommentCount="1" />
  <row Id="14866" PostTypeId="2" ParentId="14842" CreationDate="2010-10-26T17:56:05.413" Score="7" ViewCount="" Body="&lt;p&gt;The two main features I would like to see are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;concepts&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2073.pdf&quot; rel=&quot;nofollow&quot;&gt;modules&lt;/a&gt;, so we can finally get rid of .h files&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;They will certainly continue to standardize features that we use often (like they did for regular expressions or threads):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;sockets&lt;/li&gt;&#xA;&lt;li&gt;HTTP client&lt;/li&gt;&#xA;&lt;li&gt;XML parser&lt;/li&gt;&#xA;&lt;li&gt;GUI (but that would be a huge amount of work)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Random guessing:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;some classes are missing in &lt;code&gt;&amp;lt;type_traits&amp;gt;&lt;/code&gt; like &lt;code&gt;is_callable&lt;/code&gt; or &lt;code&gt;remove_member_pointer&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;a &lt;code&gt;synchronized&lt;/code&gt; keyword (with the same syntax as &lt;code&gt;const&lt;/code&gt; and &lt;code&gt;volatile&lt;/code&gt;) with the possibility for the class designer to either manage this automatically (a mutex being added by the compiler in the class' members) or manually&lt;/li&gt;&#xA;&lt;li&gt;some kind of compile-time reflection, eg. the possibility to add a filter in &lt;code&gt;operator-&amp;gt;&lt;/code&gt; depending on the signature of the called function&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I didn't see any feature worth deprecating, so here are some artifacts in the library (that they will never remove because it would break existing code):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;with the arrival of concepts, &lt;code&gt;enable_if&lt;/code&gt; will be replacable by something much easier to use&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pair&lt;/code&gt;s can be replaced by &lt;code&gt;tuple&lt;/code&gt;s&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;bind1st&lt;/code&gt;, &lt;code&gt;bind2nd&lt;/code&gt; and &lt;code&gt;mem_fun&lt;/code&gt; are now more or less useless&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5301" LastActivityDate="2010-10-26T17:56:05.413" CommentCount="1" />
  <row Id="14867" PostTypeId="2" ParentId="14808" CreationDate="2010-10-26T17:56:45.367" Score="1" ViewCount="" Body="&lt;p&gt;When I first started teaching myself programming and C, I was writing a little pong clone, I spent an entire weekend trying to track down a bug in a function for moving objects.  I woke up early one morning and it just occurred to me that the objects values weren't being updated because you can't change the values of parameters without using pointers.  Suddenly everything worked, and I realized that programming was what I wanted to do with my life.&lt;/p&gt;&#xA;" OwnerUserId="5736" LastActivityDate="2010-10-26T17:56:45.367" />
  <row Id="14868" PostTypeId="2" ParentId="14808" CreationDate="2010-10-26T17:56:52.053" Score="2" ViewCount="" Body="&lt;p&gt;When I discovered Delphi had action lists!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I dropped 40,000 lines of code from a project and it ran much more efficiently. I was so pleased with this new feature that I raved about it to a friend who pointed out it had been in for YEARS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;from Eureka to manic depressive in one hour.&lt;/p&gt;&#xA;" OwnerUserId="6296" LastActivityDate="2010-10-26T17:56:52.053" CommentCount="1" />
  <row Id="14869" PostTypeId="2" ParentId="14839" CreationDate="2010-10-26T18:00:20.943" Score="5" ViewCount="" Body="&lt;p&gt;Make sure your boss's boss knows about this. Make sure they know it's happening, and that it's happening all the time. If they aren't bothered, fine, time to power-level your SO rep (that Jon Skeet guy needs taking down a peg or two). If they are, they'll make something happen - reassign you, assign a secondary boss, whatever. Staffing is not your problem - find someone whose it is.&lt;/p&gt;&#xA;" OwnerUserId="854" LastActivityDate="2010-10-26T18:00:20.943" CommentCount="2" />
  <row Id="14870" PostTypeId="2" ParentId="1060" CreationDate="2010-10-26T18:01:19.353" Score="1" ViewCount="" Body="&lt;p&gt;There are several ways to tackle the problems of crosscutting concerns:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use Better Design Patterns, Idioms, or Abstraction Mechanisms&lt;/strong&gt;: Code may be crosscutting even though it can be modularized. In order to maintain the code, you will need to refactor to use the design technique that can modularize it. Such refactoring may introduce crosscutting of a different kind, but hopefully what crosscuts is stable, and not likely to change.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Develop Richer Language Features&lt;/strong&gt;: Many manifestations of crosscutting can be solved through better abstraction mechanisms, and sometimes new language features are necessary. For instance, more advanced languages that include functional and object-oriented features often don't employ as many design patterns, because they aren't necessary. Note that &lt;em&gt;design patterns themselves can be crosscutting in nature&lt;/em&gt;, because they describe the roles of several different objects and classes. In Java, reflection can often be used instead of an aspect, although at a higher runtime cost. For example, using reflection, you can support the visitor pattern over hundreds of classes with just a couple lines of code. &lt;a href=&quot;http://www.ccs.neu.edu/research/demeter/DJ/&quot; rel=&quot;nofollow&quot;&gt;The DJ library&lt;/a&gt; from Northeastern is one reflective solution that does just that. &lt;a href=&quot;http://en.wikipedia.org/wiki/Mixin&quot; rel=&quot;nofollow&quot;&gt;Mixins&lt;/a&gt; are a powerful technique available in C++ (but not Java) and can give you some of the same uses cases as an aspect.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Provide Better Tool Support&lt;/strong&gt;: Techniques such as using &lt;code&gt;grep&lt;/code&gt; and performing refactoring operations can deal with problems related to crosscutting code. For example, the name of a method declared in an interface can cut across the program. (Note the technical difference here: It is the name of the method, not the method's implementation, that crosscuts.) This usually isn't a problem in an IDE like Eclipse, where you can use the &quot;rename refactoring&quot; to change all of the places in your code that use the name. In this way, it's possible to not need language features when the programming environment is expressive enough for you.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use Domain-Specific Languages&lt;/strong&gt;: The early aspect languages, which came before AspectJ, were domain-specific and applied to only certain problems, such as thread synchronization or data-flow analysis for efficiently combining function compositions. These languages were experimental, but seemed highly successful at modularizing concerns that otherwise were crosscutting.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use Generative Programming Techniques&lt;/strong&gt;: Stepping up to the meta level might be considered an implementation technique for aspect-oriented programming, but it's a big enough area that it transcends simple aspects. Generative techniques (where a program generates source code for another program) are also related to domain-specific languages.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For all of these, I think studying AOP is appropriate. AOP can help you expand your conceptions of code, even if you don't use an AOP language.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-11-12T01:03:14.287" LastActivityDate="2010-11-12T01:03:14.287" />
  <row Id="14872" PostTypeId="2" ParentId="167" CreationDate="2010-10-26T18:06:01.393" Score="0" ViewCount="" Body="&lt;p&gt;One of the great advantages of technology is that it can provide solutions where you would have least thought of one. In this particular case, the technology that can help you (at least to some extent) is the speech to text technology.  You can make use of professional products like Dragon Naturally Speaking which take dictation and convert it to text. I just started using it a few days back but so far it's been an interesting experience using it. It does have some problems &quot;understanding&quot; an Indian accent but with time and practice you will be able to use it better. Just google for it and it'll lead you to their homepage. &#xA;There are some free speech to text products as well, but most couldnt recognize an Indian accent so I had to give up on those. Good luck and I hope you find a good product!&lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-10-26T18:06:01.393" />
  <row Id="14873" PostTypeId="1" AcceptedAnswerId="15171" CreationDate="2010-10-26T18:08:14.757" Score="3" ViewCount="176" Body="&lt;p&gt;I am currently looking into the possibility of using a hosted email environment and dropping my in-house exchange setup. My tech-consulting company has used an internal Exchange server for mail since we started. At that time it was a business advantage to maintain your own Exchange server. With the introduction of infrastructure and software as a service the advantage for smaller companies and companies with a small IT staff seems to have disappeared. Today, email should just be available, a utility like electricity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my pursuit I started thinking more about the engagements I am seeing and the fundamental shift in the past few years. In the past i would walk into a small company where things were more or less set up and chugging along under the stewardship of the full time tech staff and lend a helping hand one way or another... today I find myself dealing less with in-house tech staff and more with situations where I deal directly with non technical people who run projects (poorly most of the time and make my life hell). The critical thing I find myself thinking of is this shift from small companies retaining a small technical staff to the present situation where companies utilize the SAAS model and outsourcing custom development and integration and forgoing full time tech staff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone else noticed this trend? I would love to see what others think of the matter and hear their reasoning. Thoughts?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I contribute my efforts to the north east and focus most on NY/ NJ areas. this is where my observations come from.)&lt;/p&gt;&#xA;" OwnerUserId="6507" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2010-10-26T18:29:28.197" LastActivityDate="2010-10-27T19:51:37.280" Title="Are small in-house dev teams extinct?" Tags="&lt;career&gt;&lt;consulting&gt;" AnswerCount="3" />
  <row Id="14874" PostTypeId="2" ParentId="14856" CreationDate="2010-10-26T18:08:34.780" Score="25" ViewCount="" Body="&lt;p&gt;Object Relational Mapping... &lt;a href=&quot;http://en.wikipedia.org/wiki/Object-relational_mapping&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Object-relational_mapping&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't want to ever be abstracted away from my data, nor do I want to lose that precise control and optimization.  My experience with these systems has been extremely poor... The queries generated by these abstraction layers is even worse than what I've seen from off-shoring.&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-10-26T18:08:34.780" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="16" />
  <row Id="14875" PostTypeId="2" ParentId="14873" CreationDate="2010-10-26T18:14:20.443" Score="1" ViewCount="" Body="&lt;p&gt;Just like any other chain of dependencies the longer it grows the more points of failure.  I have noticed a shift from self reliance to outsourcing to other companies.  The argument is usually why house it in-house and pay to maintain it when we can let vendor house it and be responsible for it.  It also is easy to argue, if its broken we are not to blame. &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-26T18:14:20.443" />
  <row Id="14876" PostTypeId="2" ParentId="14831" CreationDate="2010-10-26T18:14:47.160" Score="0" ViewCount="" Body="&lt;p&gt;For the &lt;strong&gt;ASP.NET part (your example case),&lt;/strong&gt; point them to &lt;a href=&quot;http://www.amazon.com/Robust-ASP-NET-Exception-Handling-Wrox/dp/B0036V7H56&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Robust ASP.NET Exception Handling&lt;/strong&gt;&lt;/a&gt; book (60-page download, $7).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;And as for the Java part,&lt;/strong&gt; to &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131008528&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Robust Java: Exception Handling, Testing, and Debugging&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5933" LastEditorUserId="5933" LastEditorDisplayName="" LastEditDate="2010-10-29T16:45:36.470" LastActivityDate="2010-10-29T16:45:36.470" />
  <row Id="14877" PostTypeId="2" ParentId="14720" CreationDate="2010-10-26T18:16:49.650" Score="0" ViewCount="" Body="&lt;p&gt;Team Events might help.&#xA;Events like going to a sports game and so forth might motivate part of the group.&#xA;I guess the balance is finding out an event that will include everyone.&lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-10-26T18:16:49.650" CommunityOwnedDate="2011-02-24T20:58:48.413" CommentCount="1" />
  <row Id="14878" PostTypeId="2" ParentId="14856" CreationDate="2010-10-26T18:17:43.687" Score="72" ViewCount="" Body="&lt;p&gt;&quot;Unit Test Everything.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've heard it said often that all code should have unit tests, a point I disagree with.  When you have a test for a method, any change to the output or structure of that method must be made twice (once in the code, once in the test).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As such, unit tests should be, in my opinion, proportional to the structural stability of the code.  If I'm writing a layered system from the bottom up, my data access layer will have tests out the wazoo; my business logic layer will be pretty well tested, my presentation layer will have some tests, and my views will have little to no testing.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-26T18:17:43.687" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="24" />
  <row Id="14879" PostTypeId="2" ParentId="14856" CreationDate="2010-10-26T18:18:57.497" Score="9" ViewCount="" Body="&lt;h2&gt;JavaBeans&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The use of JavaBeans in Java. See my question &lt;strong&gt;&lt;a href=&quot;http://stackoverflow.com/questions/3511120/why-shouldnt-i-use-immutable-pojos-instead-of-javabeans&quot;&gt;Why shouldn't I use immutable POJOs instead of JavaBeans?&lt;/a&gt;&lt;/strong&gt; on StackOverflow.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-26T18:18:57.497" CommunityOwnedDate="2010-12-09T20:27:23.670" />
  <row Id="14880" PostTypeId="2" ParentId="14856" CreationDate="2010-10-26T18:19:03.037" Score="18" ViewCount="" Body="&lt;p&gt;For SQL&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Don't use triggers&lt;/li&gt;&#xA;&lt;li&gt;Always hide tables behind views&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In order:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;They are a feature that has it's place. You have multiple update paths to a table, or require 100% auditing?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Just why? I would if I was refactoring to maintain a contract, but not when I've read that folk change the view to match any table changes&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Edit:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Number 3: Avoiding * with EXISTS. Try 1/0. It works. The column list isn't evaluated as per SQL standard. &lt;a href=&quot;http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt&quot; rel=&quot;nofollow&quot;&gt;Page 191&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5905" LastEditorUserId="5905" LastEditorDisplayName="" LastEditDate="2010-10-26T19:22:03.383" LastActivityDate="2010-10-26T19:22:03.383" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="9" />
  <row Id="14881" PostTypeId="2" ParentId="1674" CreationDate="2010-10-26T18:25:53.210" Score="1" ViewCount="" Body="&lt;p&gt;CodePlex.com lists many open source projects that were made using C#. You could take a look at the site to get some ideas.&lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-10-26T18:25:53.210" />
  <row Id="14882" PostTypeId="2" ParentId="14856" CreationDate="2010-10-26T18:30:55.480" Score="77" ViewCount="" Body="&lt;p&gt;Might as well throw this into the ring:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;Premature optimization is the root of all evil.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;No, it's not.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The complete quote:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;We should forget about small&#xA;  efficiencies, say about 97% of the&#xA;  time: premature optimization is the&#xA;  root of all evil. Yet we should not&#xA;  pass up our opportunities in that&#xA;  critical 3%.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That means that you take advantage of &lt;em&gt;specific, strategic performance enhancements throughout your design process.&lt;/em&gt;  It means that you use data structures and algorithms that are consistent with performance objectives.  It means that you are aware of design considerations that affect performance.  But it also means that you do not frivolously optimize when doing so will give you minor gains at the expense of maintainability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Applications need to be well-architected, so that they don't fall down at the end when you apply a little load on them, and then you wind up rewriting them. The danger with the abbreviated quote is that, all too often, developers use it as an excuse to not think about performance at all until the end, when it might be too late to do anything about it. It's better to build in good performance from the start, provided you're not focusing on minutiae.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's say you're building a real-time application on an embedded system.  You choose Python as the programming language, because &quot;Premature optimization is the root of all evil.&quot;  Now I have nothing against Python, but it &lt;em&gt;is&lt;/em&gt; an interpreted language.   If processing power is limited, and a certain amount of work needs to get done in real-time or near real-time, and you choose a language that requires more processing power for the work than you have, you are royally screwed, because you now have to start over with a capable language. &lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-26T18:38:04.723" LastActivityDate="2010-10-26T18:38:04.723" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="20" />
  <row Id="14883" PostTypeId="2" ParentId="14720" CreationDate="2010-10-26T18:35:45.693" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Sub teams (DB, middle layer, GUI)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Wot no testers? Replace some code monkeys&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Wot no analysts? Replace some code monkeys&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Who will manage tools/source control/wiki/infrastructure/environments? Replace some code monkeys&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Free coffee, free water, free fruit&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Friday beers&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-10-26T18:35:45.693" CommunityOwnedDate="2011-02-24T20:58:48.413" />
  <row Id="14886" PostTypeId="2" ParentId="14467" CreationDate="2010-10-26T18:47:09.827" Score="2" ViewCount="" Body="&lt;p&gt;Mate, it has not gone away. It was not over hyped, niether has it failed. I will try to take a moderate approach to answering this. We are still years behind in using the cloud to full potential. It is a paradigm shift not just a technology adoption. Also adopting a new technology takes years to be in practise. The Mainframes never went away ? There are solutions scalable enough to run Mainframe Applications but they are not getting adopted, why ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A clear problem with the cloud is the Application Readiness. So your Application can run in the Cloud but the Applications that provides your App Security are they Cloud ready ? Is your customer Ok to host his data on the Cloud ? Are there any compliances which certify that your data will be safe in the Cloud ? Some of these things are in Progress and will take time to come in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also all the Applications that are going to provide Software As A Service are good candidates for Cloud. Most of them are actually having thier own Clouds, they might/will eventually move to the Cloud with better standards and adoption of the Technology.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-10-26T18:47:09.827" CommunityOwnedDate="2010-10-26T18:47:09.827" />
  <row Id="14888" PostTypeId="2" ParentId="14839" CreationDate="2010-10-26T18:52:26.623" Score="2" ViewCount="" Body="&lt;p&gt;Seems to me you don't care how many hours he works, or what else he gets done, but you want your one-on-ones. Some companies have a culture of them, some don't. You might not be getting one-on-ones if he worked 80 hours a week. So ignore the total hours and ask him to schedule you a one-on-one at whatever frequency you like (based on how you feel after two months, I'd guess once a month.) Explain you aren't asking for a meeting to deal with a specific issue, you just feel comfortable having this time for catching up. If he cancels your one-on-one by not coming in on a day it was planned for, push for a reschedule. If every rescheduled meeting gets cancelled you can then go around him to the next level, saying &quot;I really need some manager time and he has cancelled 6 meetings in a row, who can I meet with instead?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best outcome is that you get comfortable, with or without more hours a week from your boss. The ok outcome is that higher ups become aware you feel undersupervised, and get you a new boss or take some other action. The not-good outcome is that you are seen as a squeaky wheel complainer who wants to hog the tiny bit of time the boss can spend in the building - but if an hour a month gets you that label, you really can't win.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-26T18:52:26.623" />
  <row Id="14889" PostTypeId="2" ParentId="14873" CreationDate="2010-10-26T18:58:21.827" Score="1" ViewCount="" Body="&lt;p&gt;When my company opens a new line-of-business and needs a new application, we tend to use a SAAS solution, but only those that offer a local install as well. This way, if that part of the business grows, we can bring the app inhouse. We're mostly a centralized office with a climate controlled server room. An app on the LAN performs better if that's where the users are. Email is in-house. When users absolutely have to have 2-5 gigs of space for their inbox, these clutter junkies want their mess close by.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually we don't need to purchase more hardware or hire additional staff. Our in-house staff handles most of the integration and customization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As more workers continue to move away from the office, you'll see the trend to hosted solutions increase. What's the point of having an app in an office when everyone is coming in through the Internet? Makes more sense to have an external datacenter with better connections, up time, backups, security etc. SAAS apps are also getting better and provide enough of an API to handle customizations and integrations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Getting rid of data silos is like a game of Whack-A-Mole.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-26T18:58:21.827" />
  <row Id="14890" PostTypeId="2" ParentId="8721" CreationDate="2010-10-26T19:01:44.537" Score="1" ViewCount="" Body="&lt;p&gt;Yes, practice is extremely important to develop programming skills and to keep them sharp.  However practice alone will only take you so far.  You also have to learn from people who know more than you.  There are techniques you have never heard of, practices whose benefits are not immediately obvious, and tricks that you could never invent yourself.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way to learn new techniques, neat tricks, and useful practices are many.  Read books.  Talk to co-workers.  Ask questions. Review other people's code, and have them review yours.  Read blogs and articles on programming, including this site. In short, do not work in a vacuum.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and if you are not sure what NP-complete means, or if the big-O notation scares you, then you should probably take some theory of computation and algorithms classes.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-26T19:01:44.537" />
  <row Id="14891" PostTypeId="2" ParentId="14842" CreationDate="2010-10-26T19:03:35.037" Score="3" ViewCount="" Body="&lt;p&gt;The current wishlist is here: &lt;a href=&quot;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1901.html&quot; rel=&quot;nofollow&quot;&gt;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1901.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have to say, I am not holding my breath for GUI support in the C++ standard libary.  Things I would like to see include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Standard symbol table (i.e. remove the need to use extern &quot;C&quot; {} for shared libraries)&lt;/li&gt;&#xA;&lt;li&gt;Modules--anything to simplify development&lt;/li&gt;&#xA;&lt;li&gt;Unicode support and text encoding support&lt;/li&gt;&#xA;&lt;li&gt;Process/inter-process communication&lt;/li&gt;&#xA;&lt;li&gt;Thread support&lt;/li&gt;&#xA;&lt;li&gt;Sockets&lt;/li&gt;&#xA;&lt;li&gt;Asynchronous I/O&lt;/li&gt;&#xA;&lt;li&gt;Asynchronous event support (useful for UI, servers, etc)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That in itself is a large amount of work.  It's been a while since I've done straight C++ programming, and I hope to be getting back into it for a bit.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-10-26T19:03:35.037" />
  <row Id="14892" PostTypeId="2" ParentId="14779" CreationDate="2010-10-26T19:03:35.460" Score="1" ViewCount="" Body="&lt;p&gt;I'll repeat my answer from the linked question, since it applies to this one:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Type Checking for Dynamic Languages&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as your code doesn't get too 'meta', an IDE for Ruby or Python or a similar language with dynamic types should be able run a background task which:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;for a given function, determines all the possible classes that will get passed in as arguments &lt;/li&gt;&#xA;&lt;li&gt;for those classes, ensures they respond to all the methods invoked by that function &lt;/li&gt;&#xA;&lt;li&gt;presents a list of the incompatible classes with the missing methods you need to implement &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This would be better than waiting until runtime to discover a 'type error'.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-26T19:03:35.460" CommentCount="2" />
  <row Id="14893" PostTypeId="2" ParentId="14842" CreationDate="2010-10-26T19:04:53.283" Score="2" ViewCount="" Body="&lt;p&gt;There's a fairly long list of features that have been tentatively accepted for a TR2 that's expected rather sooner than the next full-blown update to the standard proper. Like TR1, however, this is likely to be restricted (almost?) exclusively to additions to the library, not the base language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, at least AFAIK, there's not a nice document summarizing what proposals have been accepted for TR2. TR2 proposals are mixed in with all the other papers (all available, but hard to find) and accepted vs. rejected can only be found (again, AFAIK) by scanning through meeting minutes. It's certainly possible, but equally certainly tedious and time consuming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as the next standard for the language itself goes, I personally think many of the goals of concepts and modules are sufficiently similar that it's worth some time trying to figure out whether they can be combined. Even if they can't, I think figuring out why they can't will still (probably) clarify both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As much as I might wish it were otherwise, I don't see any reasonable possibility of standardizing a GUI library. Standardization requires consensus, and I don't see much chance of that happening. There are just too many different possible approaches, and too many people heavily invested in each for any of them to quietly give up on their pet ideas, and converge on a single ideal.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-26T19:04:53.283" />
  <row Id="14894" PostTypeId="2" ParentId="14839" CreationDate="2010-10-26T19:07:34.363" Score="2" ViewCount="" Body="&lt;p&gt;It sounds to me like the problem isn't that he's not there, but that he's giving you no direction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to catch him when he's there, ask him for a few minutes of his time, and politely explain this situation to him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tell him you don't mind that he's not around often, but that you need to be able to get more feedback and direction, and see what works with his unusual schedule.  The solution could be a variety of things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;e-mails, which he could reply to from his mobile phone even if he's out&lt;/li&gt;&#xA;&lt;li&gt;occasional phone calls now and then to his mobile, even if he's out&lt;/li&gt;&#xA;&lt;li&gt;a scheduled one-on-one once or twice a week, in person if he's in, and by phone if he's out&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It's demoralizing to work at a company and not know what you're doing or what your contribution is, so I'd recommend having this talk with him as soon as possible.  Make sure you don't sound like he's a fault.  Just explain that you want to find a way to get more direction while still working within his schedule.&lt;/p&gt;&#xA;" OwnerUserId="3963" LastActivityDate="2010-10-26T19:07:34.363" />
  <row Id="14895" PostTypeId="2" ParentId="14856" CreationDate="2010-10-26T19:08:15.593" Score="104" ViewCount="" Body="&lt;p&gt;I think you've hit the nail on the head with this statement&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;I'd hate to take things at face value and not think about them critically&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I ignore almost all Best Practices when it doesn't come with explanation on why it exists&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Raymond Chen puts it best in &lt;a href=&quot;http://blogs.msdn.com/b/oldnewthing/archive/2009/11/04/9917052.aspx&quot; rel=&quot;nofollow&quot;&gt;this article&lt;/a&gt; when he says&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Good advice comes with a rationale so&#xA;  you can tell when it becomes bad&#xA;  advice. If you don't understanding why&#xA;  something should be done, then you've&#xA;  fallen into the trap of cargo cult&#xA;  programming, and you'll keep doing it&#xA;  even when it's no longer necessary or&#xA;  even becomes deleterious.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="162" LastEditorUserId="162" LastEditorDisplayName="" LastEditDate="2010-10-26T21:08:16.503" LastActivityDate="2010-10-26T21:08:16.503" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="8" />
  <row Id="14896" PostTypeId="2" ParentId="8721" CreationDate="2010-10-26T19:10:07.763" Score="1" ViewCount="" Body="&lt;p&gt;I would say that you should read up on design patterns, such as Builder, Factory, Composite, and eventually Observer, Mediator, and Flyweight.  Design patterns aren't the end-all-be-all for coding solutions, but they demonstrate how to implement theoretical concepts of object oriented programming.&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2010-10-26T19:10:07.763" />
  <row Id="14897" PostTypeId="2" ParentId="14789" CreationDate="2010-10-26T19:15:43.250" Score="1" ViewCount="" Body="&lt;p&gt;I hate Hungarian.  It has its place in procedure programming languages that don't support Polymorphism, inheritance, or interfaces, but it simply makes no sense to use Hungarian in object oriented languages, because you are not necessarily going to be bound to a concrete type.&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2010-10-26T19:15:43.250" CommentCount="1" />
  <row Id="14898" PostTypeId="2" ParentId="14778" CreationDate="2010-10-26T19:16:05.963" Score="4" ViewCount="" Body="&lt;p&gt;Because it chases away the inexperienced candidates who don't know that they'll accept someone with just half of the requirements, minimum 5 years experience can be had in 3, and Computer Science Degree or related field means any degree at all.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-26T19:16:05.963" />
  <row Id="14899" PostTypeId="2" ParentId="815" CreationDate="2010-10-26T19:21:44.123" Score="0" ViewCount="" Body="&lt;p&gt;From my experience, I would say roughly 5 years from now depending on your industry.  A recent project of mine involved a website used by hospitals, and the number of them still using IE6 is staggering, and I would imaging this is the same for other large, legacy system-encumbered organizations.  Some of our customers are trying to upgrade and move away from IE6 but they have so many old applications that require it that the process gets delayed until those legacy applcations are updated or replaced.&lt;/p&gt;&#xA;" OwnerUserId="6423" LastActivityDate="2010-10-26T19:21:44.123" />
  <row Id="14900" PostTypeId="1" CreationDate="2010-10-26T19:21:59.487" Score="2" ViewCount="257" Body="&lt;p&gt;Where I work, the IT dept. has been nicknamed &lt;em&gt;the walking wounded&lt;/em&gt; because of all the sick time. Is this a common phenomenon or just specific to where I work? If common, any reason why? &lt;/p&gt;&#xA;" OwnerUserId="1785" LastActivityDate="2010-10-27T09:13:30.240" ClosedDate="2010-10-27T09:58:49.827" Title="Do programmers take more sick days?" Tags="&lt;untagged&gt;" AnswerCount="5" CommentCount="6" />
  <row Id="14901" PostTypeId="2" ParentId="14779" CreationDate="2010-10-26T19:23:26.440" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;class diagram generation&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I actually had a discussion about this with another developer friend of mine recently and we agreed that no-one really writes or maintains a UML diagram anymore - and they shouldn't. Looking at one for a minute or two, on the other hand, can tell you a lot about a system or set of classes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key is that it has to be generated because the workflow goes like this:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Generate UML for section of codebase&lt;/li&gt;&#xA;&lt;li&gt;Look at it, confirm assumptions about the organization/layout of the classes, spot any inconsistencies, etc.&lt;/li&gt;&#xA;&lt;li&gt;Destroy diagram(s)&lt;/li&gt;&#xA;&lt;li&gt;Continue coding&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It's not easy, (the layout usually gets mangled) and it doesn't have to be UML Spec x.y compliant, but I think it's a tool sorely overlooked.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-26T19:23:26.440" CommentCount="1" />
  <row Id="14902" PostTypeId="2" ParentId="8721" CreationDate="2010-10-26T19:23:57.287" Score="2" ViewCount="" Body="&lt;p&gt;Jump in the water, it might be cold at first and you'll be tempted to get out but soon your body will get used to it and become warm again and as you become comfortable in the water you can then swim around maybe go into the deep end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just finished college a couple of months ago where i studied Java. Same as you i didnt have a clue on how to code properly. About a month ago i wanted to build a web app in PHP. I didn't know what i was doing but just went for it. It was intimidating and overwhelming at first but as you practice it becomes natural. I even wrote the application many times, every time simplifying it even more. Now im working on the app from scratch but this time im figuring out how to do it objected oriented and using PEAR and its module quickform which is another hurdle i've to get through but determined and excited nonetheless. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So practice. Jump in the water! Best of luck :)&lt;/p&gt;&#xA;" OwnerUserId="6208" LastActivityDate="2010-10-26T19:23:57.287" />
  <row Id="14903" PostTypeId="2" ParentId="14856" CreationDate="2010-10-26T19:24:28.437" Score="1" ViewCount="" Body="&lt;p&gt;Over generalization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The square block does NOT fit into the circle hole!&lt;/p&gt;&#xA;" OwnerUserId="6492" LastActivityDate="2010-10-26T19:24:28.437" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="5" />
  <row Id="14904" PostTypeId="2" ParentId="167" CreationDate="2010-10-26T19:25:05.333" Score="0" ViewCount="" Body="&lt;p&gt;I have never had carpal tunnel problems, but have heard enough people have problems that I am taking preventive action.  Aside from taking breaks (I use workrave to remind me), switching the side the mouse is on, (both already mentioned before) I have started doing the stretches as suggested by Zad Shaw at &lt;a href=&quot;http://sheddingbikes.com/posts/1281257293.html&quot; rel=&quot;nofollow&quot;&gt;http://sheddingbikes.com/posts/1281257293.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6513" LastActivityDate="2010-10-26T19:25:05.333" />
  <row Id="14905" PostTypeId="2" ParentId="14900" CreationDate="2010-10-26T19:26:58.357" Score="4" ViewCount="" Body="&lt;p&gt;I once had a former manager of a hospital IT department say that the IT members who went to the hospital to provide IT services got sick more often...so if you work for a hospital IT department, that might explain it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If not, then consider health habits of [some] IT-types.  Do they eat well?  Do they exercise enough?  Do they have healthy ways to relieve stress that they consume at work?  I would expect personal trainers or professional athletes to not get sick as much because of these &quot;basics&quot;.  A lot of people I know in IT do not have the best health practices.&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2010-10-26T19:26:58.357" />
  <row Id="14906" PostTypeId="2" ParentId="14900" CreationDate="2010-10-26T19:27:12.573" Score="1" ViewCount="" Body="&lt;p&gt;Not common in my current shop. There is always the odd one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also find that give folk a laptop and remote access they'll work if at home (say too ill to travel or need to stay close to the toilet :-) anyway. I do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lordy, we aren't front line emergency services or manual labourers...&lt;/p&gt;&#xA;" OwnerUserId="5905" LastEditorUserId="5905" LastEditorDisplayName="" LastEditDate="2010-10-26T19:35:11.827" LastActivityDate="2010-10-26T19:35:11.827" />
  <row Id="14907" PostTypeId="2" ParentId="14778" CreationDate="2010-10-26T19:27:18.437" Score="0" ViewCount="" Body="&lt;p&gt;one more thing to note is the flood of off-shore and Indian developers in the market place. I have run many teams and have hired such a person to take care of some legwork that no one wants to do since the price is right. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;in looking at such candidate's resume you will find one of two things. either a resume of a 6th grader you can use as scratch paper or an essay of over 6 pages filled with everything they did in their entire career. in such a resume you will likely find a section listing technology in an excel-like table. I have seen this section alone take half a page and list everything from JAVA, to DotNet and Ruby... with every database known to man - i think you get the point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;on top of everything these candidates are very willing to take half the salary of other workers and will without shame express this on an interview. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;this is a dangerous mixture when you figure in HR because they will set expectations and salary caps based on these types of experience. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;then the cycle goes... 2 month pass and the guy can not finish a single project or unit of work and is let go. then HR goes into a mad dash trying to replace the person and then we are back at square one except the pay for the job has dropped by 20% this time around.&lt;/p&gt;&#xA;" OwnerUserId="6507" LastActivityDate="2010-10-26T19:27:18.437" />
  <row Id="14908" PostTypeId="2" ParentId="14720" CreationDate="2010-10-26T19:28:07.183" Score="5" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Avoid the temptation to hire all 25&#xA;at once.&lt;/li&gt;&#xA;&lt;li&gt;Try to attract known top developers&#xA;at the beginning.&lt;/li&gt;&#xA;&lt;li&gt;Once you have a small team of very&#xA;talented people, who know what they&#xA;are doing and have established a&#xA;high-level of expectation.&lt;/li&gt;&#xA;&lt;li&gt;Keep adding more people. They need to know that they are surrounded by good people who are willing to help them, but they have to keep up.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The less-talented (I'm not saying they suck, but these things are relative.) people will be able to achieve if put in the right environment (good people), are trained well, and supervised.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's much easier to manage people when you get the right people and build culture and attitudes instead of trying to establish a bunch of rules.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-26T19:28:07.183" CommunityOwnedDate="2011-02-24T20:58:48.413" CommentCount="1" />
  <row Id="14909" PostTypeId="2" ParentId="14779" CreationDate="2010-10-26T19:30:24.837" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;integrated unit testing&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've use plugins like CodeRush! and testdriven.net, both of which are good but could use some UI improvements.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Colouring class names in the solution according to test results&lt;/li&gt;&#xA;&lt;li&gt;Better output window that allows (more-obvious in some cases) double-click to go to the test/code under test upon failures&lt;/li&gt;&#xA;&lt;li&gt;Integrated code coverage (imo, code coverage and unit testing should be parts of the same tool)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-26T19:30:24.837" />
  <row Id="14910" PostTypeId="2" ParentId="14779" CreationDate="2010-10-26T19:32:02.797" Score="0" ViewCount="" Body="&lt;p&gt;I wish my IDE could write code for me.  Sounds simple, but I've built a custom code-builder to build classes for me based on attributes and behaviors I specify in a UI.  Having the code builder generate comments also takes a lot of work away, as I always comment all private members, public attributes, and private and public methods.&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2010-10-26T19:32:02.797" />
  <row Id="14912" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T19:35:22.593" Score="2" ViewCount="" Body="&lt;p&gt;I still stick to the old adage, &quot;consistent overtime is either a sign of poor management or not enough employees.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes the problem is just finding enough skilled workers, but often the underlying problem is a desire to minimise expenses and drive &quot;productivity.&quot;  &lt;/p&gt;&#xA;" OwnerUserId="1642" LastActivityDate="2010-10-26T19:35:22.593" />
  <row Id="14914" PostTypeId="1" AcceptedAnswerId="14972" CreationDate="2010-10-26T19:38:05.413" Score="8" ViewCount="758" Body="&lt;p&gt;Other than title and pay. What is the difference? What different responsibilities do they have, how knowledgeable/experienced are they?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically what would you use to determine which one you (or someone else) should be?&lt;/p&gt;&#xA;" OwnerUserId="1785" LastActivityDate="2010-12-13T19:45:41.623" Title="Whats the difference between Entry Level/Jr/Sr developers?" Tags="&lt;experience&gt;&lt;job-title&gt;" AnswerCount="10" CommentCount="5" FavoriteCount="6" />
  <row Id="14915" PostTypeId="2" ParentId="14856" CreationDate="2010-10-26T19:39:02.977" Score="54" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Always&lt;/strong&gt; program to interfaces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes there will only be one implementation.  If we delay the process of extracting an interface until the time when we see the need for it, we will often find it isn't necessary.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-10-26T19:39:02.977" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="16" />
  <row Id="14916" PostTypeId="2" ParentId="12336" CreationDate="2010-10-26T19:39:13.693" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;https://wincent.com/products/command-t&quot; rel=&quot;nofollow&quot;&gt;command-t&lt;/a&gt; - can be used with projects with large number of files&lt;/p&gt;&#xA;" OwnerUserId="6517" LastActivityDate="2010-10-26T19:39:13.693" CommentCount="1" />
  <row Id="14917" PostTypeId="2" ParentId="14914" CreationDate="2010-10-26T19:41:50.783" Score="2" ViewCount="" Body="&lt;p&gt;This strictly depends on the company.  But the words are fairly obvious: entry level is someone who is just entering the field, junior is someone who is beyond entry level and knows there way around a few languages technologies.  Lastly senior are those who are more in charge of the project and sit at a higher level.  They can usually delegate as much as they code. &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-26T19:41:50.783" CommentCount="4" />
  <row Id="14918" PostTypeId="1" AcceptedAnswerId="14928" CreationDate="2010-10-26T19:49:35.337" Score="6" ViewCount="189" Body="&lt;p&gt;Between the broad web friendly back-end languages, which one would you chose if you have a project that required 5 to 10 year support and why? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider the options available today:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;.NET (C# / ASP / et. al)&lt;/li&gt;&#xA;&lt;li&gt;Java&lt;/li&gt;&#xA;&lt;li&gt;Perl&lt;/li&gt;&#xA;&lt;li&gt;PHP&lt;/li&gt;&#xA;&lt;li&gt;Python&lt;/li&gt;&#xA;&lt;li&gt;Ruby&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6511" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-10-26T20:06:18.837" LastActivityDate="2010-10-27T11:32:13.253" ClosedDate="2010-12-28T15:44:22.690" Title="Language / Platform for long term support" Tags="&lt;web-development&gt;" AnswerCount="8" CommentCount="5" FavoriteCount="3" />
  <row Id="14919" PostTypeId="2" ParentId="14914" CreationDate="2010-10-26T19:50:23.593" Score="2" ViewCount="" Body="&lt;p&gt;It's going to boil down to the company's expectations of the programmer.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I'm the hiring company and I hire an Entry Level programmer, I know that that person knows next to nothing and we're going to assume he/she needs to learn everything.  If I hire a Senior level person, in theory, they'll be self sufficient, from a technical stand point.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-10-26T19:50:23.593" />
  <row Id="14920" PostTypeId="2" ParentId="14827" CreationDate="2010-10-26T19:52:45.060" Score="13" ViewCount="" Body="&lt;p&gt;It really depends on the company culture....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of high tech shops (especially startups) have a long hours culture. Particularly those that are staffed by young and generally single people who don't have kids yet. These can often have what I call a &quot;positive long hours culture&quot;: the staff are mostly graduates, juniors, and die hard geeks who love programming, and actually put in the effort totally voluntarily, because they simply love what they do, and get into the flow because they're eager to learn and program. This can be a problem if you work there but AREN'T the type who is &quot;into it&quot; enough to keep up with their culture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the flipside, in traditional (non high tech) companies, if there is a long hours culture it is generally a &quot;negative long hours culture&quot;. This is where there is some entrenched managerial psychosis which constantly blows out deadlines, underbids timelines, and puts pressure on software teams to stay back against their will and put in extra hours to get things done. This is generally bad all-round. But some people who find their niche in such an environment can deal with it okay, if they &lt;em&gt;really&lt;/em&gt; love the particular work they're doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case, it needs to be understood that &quot;long hours&quot; doesn't necessarily equate to &quot;bad&quot;. When I was younger and more keen, I actually enjoyed the &quot;startup culture&quot;, and 10 hour days, in one of the companies I worked for (it was technically a bit more than a startup by that point though). Now, when I'm in my 30s and more jaded, I don't think I'd like that anymore. As for a &quot;negative long hours culture&quot; in a more traditional corporate setting - that's something I wouldn't put up with &lt;strong&gt;AT ALL&lt;/strong&gt; anymore. At least - no more than for fixing my own mistakes or putting in a bit of extra effort for the occasional deadline. But certainly not to compensate for systemic managerial fail on an &lt;em&gt;ongoing&lt;/em&gt; basis.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-26T19:52:45.060" CommunityOwnedDate="2011-01-12T18:52:29.870" />
  <row Id="14921" PostTypeId="2" ParentId="14918" CreationDate="2010-10-26T19:54:24.797" Score="5" ViewCount="" Body="&lt;p&gt;C#, ASP&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Used widely&lt;/li&gt;&#xA;&lt;li&gt;Been around for a decade or so&lt;/li&gt;&#xA;&lt;li&gt;Will always find a code monkey to work on it: a Java developer can pick it up quickly&lt;/li&gt;&#xA;&lt;li&gt;Lots invested by MS, 3rd parties = hopefully committed to it&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;No discussion if it's best or fastest or purest or whatever-est: just very practical&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: Same points as Josh K's answer: Java would be interchangable almost&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit 2: Downvoted for an &lt;em&gt;opinion&lt;/em&gt; on a question where I &lt;em&gt;can't&lt;/em&gt; be wrong? What Windows-hating fanboi will put their hand up? Do you hate MS &lt;em&gt;that&lt;/em&gt; much?&lt;/p&gt;&#xA;" OwnerUserId="5905" LastEditorUserId="5905" LastEditorDisplayName="" LastEditDate="2010-10-27T03:51:45.197" LastActivityDate="2010-10-27T03:51:45.197" CommentCount="20" />
  <row Id="14922" PostTypeId="2" ParentId="14918" CreationDate="2010-10-26T19:55:05.227" Score="2" ViewCount="" Body="&lt;h1&gt;Java&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;No thinking required. Though if you need something language dependent that would of course influence the decision. Any project with long term support options need to be looked at very carefully with a good chunk of planning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Benefits? &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Huge user base&lt;/li&gt;&#xA;&lt;li&gt;Lots of open source systems built on it&lt;/li&gt;&#xA;&lt;li&gt;Proven enterprise level deployment&lt;/li&gt;&#xA;&lt;li&gt;Solid documentation&lt;/li&gt;&#xA;&lt;li&gt;Extendable and easily interfaced from a variety of sources&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h3&gt;What about language XYZ?&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Planning is more important then the language&lt;/em&gt;. With a solid plan you could probably build and maintain this in VB.NET. Might not be the most fun thing in the world but it will do. If you fail the planning stage you're hosed. No amount of language finesse will save you. Dynamic / static, it doesn't matter at the end of the day if it's written in a disorganized lump. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I promote Java because with a 10+ year support package you are going to want the community support Java provides. You are going to need documentation and community support, Java has an incredible amount of both. The only thing I've seen with as verbose and useful comments as Java source would be CodeIgniter. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Failing the static language you're looking at Ruby / Python / PHP. Which isn't a choice, PHP hands down. Again, documentation and community support. You have a much larger backing behind PHP then Ruby or Python. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-10-26T20:31:31.153" LastActivityDate="2010-10-26T20:31:31.153" CommentCount="5" />
  <row Id="14923" PostTypeId="2" ParentId="14918" CreationDate="2010-10-26T20:00:19.317" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt; Dynamic languages are the future, and Python is the best designed of Ruby, Python, and PHP.  (IMHO)&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-10-26T20:00:19.317" CommentCount="6" />
  <row Id="14924" PostTypeId="2" ParentId="14918" CreationDate="2010-10-26T20:02:31.263" Score="-2" ViewCount="" Body="&lt;p&gt;I would use Ruby or Python.  The flexibility of these languages makes it harder to paint yourself into a corner where unforeseen changes are impossible to implement without heavy refactoring than with a more rigid language like Java or C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since people really want an example, here's one.  Let's say you make a class &lt;code&gt;Foo&lt;/code&gt; that does something.  As far as you can tell, there's no requirement for having more than one &lt;code&gt;Foo&lt;/code&gt;-like class, so you don't bother with an &lt;code&gt;iFoo&lt;/code&gt;, etc.  All your methods that need a &lt;code&gt;Foo&lt;/code&gt; just take a &lt;code&gt;Foo&lt;/code&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All the sudden due to some unforeseen requirement you need to be able to use polymorphism with &lt;code&gt;Foo&lt;/code&gt;-like objects.  In a dynamic language the names of the methods form an implicit interface, so you just make another &lt;code&gt;Foo&lt;/code&gt;-like object and you're all set.  In a static language you have two choices:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;The Wrong But Expedient Way (TM) is to inherit from &lt;code&gt;Foo&lt;/code&gt; and override just about everything.  Since &lt;code&gt;Foo&lt;/code&gt; will be acting more like an interface plus one possible implementation than a true base class, this will lead to a lot of WTFs.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The Right But A PITA Way (TM) is to create an &lt;code&gt;iFoo&lt;/code&gt; interface, change all the places where &lt;code&gt;Foo&lt;/code&gt; is used to use &lt;code&gt;iFoo&lt;/code&gt; (this includes anything that may be using reflection, generated code, etc., not just things visible to the IDE), and make a new class that inherits from &lt;code&gt;iFoo&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1468" LastEditorUserId="1468" LastEditorDisplayName="" LastEditDate="2010-10-26T20:29:04.600" LastActivityDate="2010-10-26T20:29:04.600" CommentCount="7" />
  <row Id="14925" PostTypeId="2" ParentId="14914" CreationDate="2010-10-26T20:04:48.640" Score="16" ViewCount="" Body="&lt;p&gt;Entry Level - must give them explicit instructions, check everything they do, little or no design responsibility, no analysis responsibility&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Junior - less explicit instructions, less checking, some minor design and analysis responsibility; helps the entry-level people find the compiler and use the repository&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Senior - major design and analysis responsibility, is expected to correct oversights on his/her own, little/no checking, little/no instructions; helps the junior-level people learn/improve analysis and design skills&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-10-28T00:44:10.993" LastActivityDate="2010-10-28T00:44:10.993" CommentCount="3" />
  <row Id="14926" PostTypeId="2" ParentId="14918" CreationDate="2010-10-26T20:23:30.020" Score="0" ViewCount="" Body="&lt;p&gt;You're basically just going to get a list of people's preferred programming langauges with a question like this.  All the languages listed above will be around 10 years from now so you're really just into personal preference here.  So for mine, I'd say:&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;PHP&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;PHP is ubiquitous, and changes slowly enough.  I have PHP apps that are already nearing 10 years old, so PHP has already proven to me that its suitable for the task.  Its nicely backwards compatible, so there's minimal changes necessary to get code written for php 4.x to run fine in 5.x.  And most importantly, I'm already very familiar with it.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-26T20:23:30.020" CommentCount="2" />
  <row Id="14927" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T20:30:26.477" Score="2" ViewCount="" Body="&lt;p&gt;I agree with others here who asserted that consistent overtime is a sign of either poor management or lack of respect for employees' personal time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One point to note, in Indiana, even if an employee is salaried, &lt;strong&gt;scheduled&lt;/strong&gt; overtime (meaning an established and required schedule that results in working in excess of 40 hours per week) must be compensated at the State-mandated overtime rate (1.5). I know this from first-hand experience.&lt;/p&gt;&#xA;" OwnerUserId="6520" LastActivityDate="2010-10-26T20:30:26.477" />
  <row Id="14928" PostTypeId="2" ParentId="14918" CreationDate="2010-10-26T20:36:59.440" Score="7" ViewCount="" Body="&lt;p&gt;You could use any of these languages to build either a Frankenstein-ish support nightmare or a clean, easily-maintained application. &lt;strong&gt;The key to a maintainable application is not the language that's used but the disciplined use of standards and patterns from the beginning of the project.&lt;/strong&gt;  And good documentation never hurt either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;br&gt;&#xA;I should add that I'm not saying the language doesn't matter.  Different languages are better suited for different purposes.  You should choose your language based on the task at hand and the available skillsets.&lt;/p&gt;&#xA;" OwnerUserId="4260" LastEditorUserId="4260" LastEditorDisplayName="" LastEditDate="2010-10-26T20:57:13.207" LastActivityDate="2010-10-26T20:57:13.207" CommentCount="2" />
  <row Id="14929" PostTypeId="2" ParentId="14918" CreationDate="2010-10-26T20:47:09.350" Score="0" ViewCount="" Body="&lt;p&gt;There are different ways to answer this question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way I think about this question, is by recasting it as &quot;how hard will it be to hire developers to do this work for the next 10 years?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that this does not just reflect how many people can do this work, it also indicates which kind of work skilled resources will be willing to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think they will all still be around but here is my stack rank on highest to least number of developers in the market:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java&lt;br&gt;&#xA;.NET&lt;br&gt;&#xA;Ruby - Python (too close to call now, depends on where the trendmongers take us)&lt;br&gt;&#xA;PHP - actually I think this will still be more common than Ruby/Python but this is where a bit of bias is showing&lt;br&gt;&#xA;Perl - there will still be lots of people who would do it but probably not as many for a full-time project that was nothing but Perl  &lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-10-26T20:47:09.350" />
  <row Id="14930" PostTypeId="2" ParentId="14900" CreationDate="2010-10-26T20:49:41.797" Score="1" ViewCount="" Body="&lt;p&gt;Well, from my observations (including observing myself), programmers usually &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;drink lots of coffee&lt;/li&gt;&#xA;&lt;li&gt;prefer junk to healthy food&lt;/li&gt;&#xA;&lt;li&gt;don't work out regularly&lt;/li&gt;&#xA;&lt;li&gt;don't have regular sex (this seems to sound funny but sex is a big stress reliever)&lt;/li&gt;&#xA;&lt;li&gt;stay up late&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So yes, this may be quite common.&lt;/p&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2010-10-26T20:49:41.797" CommentCount="1" />
  <row Id="14931" PostTypeId="1" CreationDate="2010-10-26T20:51:13.453" Score="12" ViewCount="237" Body="&lt;p&gt;Conundrum:  During the course of working on a new feature or fixing a defect, you find a legacy problem in code.  What should you do?  Fix it and risk altering the behavior of the code. It has either been working up until now by some fluke, or else the defect has not been detected or worth anyone's time to report.  Should you leave it alone and allow the problem to make the code harder to work with later?  Fixing the problem will only add to the time of your original task and force you to regression test. Few will appreciate the work. Fixing it, however, seems right somehow. Code with fewer problems is easier to refactor and build upon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been finding myself in this situation time and time again as we work to modernize a web application. I can't tell if I'm being obsessive or honorable when I go off-tangent working on these old bugs.  How do you handle these situations?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&#xA;Corey&lt;/p&gt;&#xA;" OwnerUserId="6522" LastActivityDate="2010-10-27T03:29:14.260" Title="Should you fix preexisting defects while working on something else?" Tags="&lt;code-quality&gt;&lt;bad-code&gt;&lt;refactoring&gt;&lt;maintenance&gt;" AnswerCount="11" CommentCount="1" FavoriteCount="3" />
  <row Id="14932" PostTypeId="2" ParentId="14931" CreationDate="2010-10-26T20:52:53.727" Score="0" ViewCount="" Body="&lt;p&gt;If it's an obvious bug, such as something that will violate security, corrupt data, or raise an exception that gets displayed to the user, then fix it.  Otherwise, ask someone who knows the codebase better than you.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-26T20:52:53.727" CommentCount="2" />
  <row Id="14935" PostTypeId="2" ParentId="14914" CreationDate="2010-10-26T20:58:29.103" Score="1" ViewCount="" Body="&lt;p&gt;As most have said, it varies from company to company, and job to job.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, I once worked at a company that considered anybody who worked there for more than 5 years a &quot;Senior Software Engineer&quot;.  At the other extreme, another place I worked had &lt;em&gt;very&lt;/em&gt; stringent definitions (and associated pay scales).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some places may consider &quot;entry level&quot; and &quot;junior&quot; to mean the same thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can vary based on years of experience, general knowledge, specific knowledge (i.e. knowing the features of a certain language), managerial and/or leadership experience, all combinations thereof, and certainly much more.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-10-26T20:58:29.103" />
  <row Id="14936" PostTypeId="2" ParentId="14931" CreationDate="2010-10-26T20:59:26.497" Score="0" ViewCount="" Body="&lt;p&gt;It depends, if its a small bug where you are certain that your fix has low impact then personally i would fix it as part of the other work and then let the PM know. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it has &lt;strong&gt;any&lt;/strong&gt; risk to client, users or company bring it up with the Project Manager and discuss a course forward. Its their job to evaluate risk so bring it to their attention and the case for fixing it. Then honour their decision. &lt;/p&gt;&#xA;" OwnerUserId="4330" LastActivityDate="2010-10-26T20:59:26.497" />
  <row Id="14937" PostTypeId="2" ParentId="14931" CreationDate="2010-10-26T20:59:49.787" Score="7" ViewCount="" Body="&lt;p&gt;I work on a very small team, so it kind of depends on what the change is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If its a small, obvious bug fix, I definitely go for it.  I also throw in extra comments if I have to work through someone else's code and other little improvements that fall under the &quot;boyscout rule&quot; to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the code is so entwined that you have to ask &quot;Will changing this break something and require testing&quot; then no, you shouldn't change it.  Bring it up in your bug tracking system if it worries you.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This, incidentally, is why I try to code smaller methods with more obvious type-signatures as well.  If you know there aren't side-effects and can make the ins and outs match, you can fix, rearrange, or tweak any of the interior code without risk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But don't feel like lack of appreciation is a reason not to fix bugs you find or to improve the code base for any reason.  If nothing else, you're being kind to the future you who will assuredly be back in there to fix something else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&#xA;You also need to watch your time on the project.  Obviously under tight deadlines, you need to focus on getting the main work done, but if you're just under &quot;normal load&quot; then I think a little cleaning up here and there makes everyone happier in the long run.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-10-26T20:59:49.787" CommentCount="1" />
  <row Id="14938" PostTypeId="2" ParentId="14931" CreationDate="2010-10-26T21:00:31.503" Score="0" ViewCount="" Body="&lt;p&gt;Our testers hate this. Unless it is very trivial we log it in the bug database, then allocate it to a release and write regression tests. If the developers are just going to making changes that are not on the schedule how can you ever keep a deadline?&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-26T21:00:31.503" CommentCount="2" />
  <row Id="14939" PostTypeId="2" ParentId="14931" CreationDate="2010-10-26T21:02:59.833" Score="0" ViewCount="" Body="&lt;p&gt;I've been on teams where non-critical defects or standard-violations are submitted as a &quot;Weak Code&quot; defect.  I would say that the person who finds a critical defect has a responsibility to throw some kind of flag&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2010-10-26T21:02:59.833" />
  <row Id="14940" PostTypeId="2" ParentId="14931" CreationDate="2010-10-26T21:08:03.180" Score="0" ViewCount="" Body="&lt;p&gt;it depends on the bug. the main concern is introducing new bugs.  Better to deal with a known issue rather then an unknown one.  If its simple, say a text change, or a simple logic error, we fix it, otherwise leave it alone.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing to note, tho, we are a small shop of 4 devs and an intern and the bug i fix is probably the bug i created.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-10-26T21:08:03.180" />
  <row Id="14941" PostTypeId="2" ParentId="14931" CreationDate="2010-10-26T21:10:47.860" Score="0" ViewCount="" Body="&lt;p&gt;If the code is obviously wrong, the fix is fairly straightforward and you believe the risk of impacting the users is low, then go for it. It comes down to professional judgement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to remember though that if you've found it then presumably the users haven't, or else they'd have reported it. Rather than spending time fixing an issue that may never be encountered by a user, you might be better off spending that time fixing issues that are causing your users problems now.&lt;/p&gt;&#xA;" OwnerUserId="6306" LastActivityDate="2010-10-26T21:10:47.860" CommentCount="1" />
  <row Id="14942" PostTypeId="1" AcceptedAnswerId="14944" CreationDate="2010-10-26T21:11:11.060" Score="3" ViewCount="45" Body="&lt;p&gt;This question was prompted by a comment left on another question pointing to this article. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.informit.com/articles/article.aspx?p=1235624&amp;amp;seqNum=6&quot; rel=&quot;nofollow&quot;&gt;What Is Clean Code?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was thinking about how that sentiment can be applied to shared resources (servers, etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some of the ways you've found that work to ensure that when others use a shared server they clean up after themselves?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Delete files / folders after one time use (after a fix or upgrade)&lt;/li&gt;&#xA;&lt;li&gt;Leave the desktop clean of crap&lt;/li&gt;&#xA;&lt;li&gt;Dont install software that they can use on their desktop &lt;/li&gt;&#xA;&lt;li&gt;Dont create filesystem shares not needed for the solution&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Oh Yes, the applies mostly to a windows server environment, in a team of developers + support staff of about 25. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know there are a few ways to tackle the problem, so what have you guys found that works?&lt;/p&gt;&#xA;" OwnerUserId="4330" LastActivityDate="2010-10-26T21:19:48.347" Title="Methods to encourage good behaviour when using shared servers?" Tags="&lt;software-developer&gt;&lt;cleaning&gt;" AnswerCount="1" />
  <row Id="14943" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T21:16:33.883" Score="1" ViewCount="" Body="&lt;p&gt;No. it is not normal, and you shouldn't act as it is normal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as you and your coworkers are willing to put up with that practice, it will continue to be like so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do yourself and us all a favor, and just plain refuse to work unpaid overtime.&lt;/p&gt;&#xA;" OwnerUserId="4604" LastActivityDate="2010-10-26T21:16:33.883" />
  <row Id="14944" PostTypeId="2" ParentId="14942" CreationDate="2010-10-26T21:19:48.347" Score="1" ViewCount="" Body="&lt;p&gt;The problem is very similar to &quot;dirty toilet&quot; problem. The classic approach is a shield &quot;please leave the cabin in a condition in which you would like to find it&quot; (forgive me my poor English).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Combining this with a simple monitoring/mailing scripts should work fairly well.&lt;/p&gt;&#xA;" OwnerUserId="4676" LastActivityDate="2010-10-26T21:19:48.347" CommentCount="1" />
  <row Id="14945" PostTypeId="2" ParentId="14827" CreationDate="2010-10-26T21:20:24.840" Score="2" ViewCount="" Body="&lt;p&gt;I've never been in a salaried job that expected more than 40 hours a week as a norm.  I have of course worked overtime on a short-term basis as needed, but never over 40 on a regular basis.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-26T21:20:24.840" CommunityOwnedDate="2011-01-12T18:52:29.870" />
  <row Id="14946" PostTypeId="2" ParentId="13061" CreationDate="2010-10-26T21:28:45.807" Score="0" ViewCount="" Body="&lt;p&gt;It seems like a cool idea. However the only problem i imagine is you are more prone to bugs. Like writing an if/else if and calling blah() in then. Writing an extra else if that doesnt want blah, removing blah from then and adding it to your ifs/elseifs. Then when you or another programmer add another statement you may expect blah to be called but not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or you can have several ifs, write a blah and forget all ifs but one require this which would break something. Also chances are if you need them to follow every if you'll put it under the if block. Possibly setting a bool in else (NoUpdate=true) and just write a if(!NoUpdate) {} directly under which is clearer and can be set by an if&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am just saying it seems more prone to bugs, not that i dont like the idea. I wouldnt mind seeing it in a language but i cant imagine any situtaion where i would use it if my language does support it.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-10-26T21:28:45.807" CommentCount="1" />
  <row Id="14947" PostTypeId="2" ParentId="14914" CreationDate="2010-10-26T21:31:19.653" Score="0" ViewCount="" Body="&lt;p&gt;I'm going to go with the really simple answer here: senior developers (in general) are people that can see the forest for the trees. They think beyond just the immediate issue in front of their faces and have an understanding of what architectural changes could or should happen as a result of fixing the problem they are faced with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most software companies I've seen have the entry level people doing the day to day coding while the senior devs are overseeing what the new people are doing and tackling the really ugly, thorny issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously this is just my opinion, and not a hard-and-fast rule. YMMV.&lt;/p&gt;&#xA;" OwnerUserId="6525" LastActivityDate="2010-10-26T21:31:19.653" />
  <row Id="14950" PostTypeId="2" ParentId="167" CreationDate="2010-10-26T21:34:02.833" Score="2" ViewCount="" Body="&lt;p&gt;As other people have said, ergonomics, taking breaks and stretches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aside from that, observe yourself as you work, notice when your muscles feel tight. Those are the instances that are adding to the RSI. Experiment to find out what causes the tightness. For instance, are you pulling your fingers up before you are finished pushing the key down? Ok, try just pushing down then relax, rather than push down pull up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rest. While thinking, take your hands away from the keyboard. You don't have to remain at ready while you aren't typing. If you are doing a lot of typing constantly, stop for a second every 5, it won't slow you down that much, and will keep you going at full speed later when you might be slowed by pain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One very specific to me, but might be useful to others, lift your arms, let the wrists relax, and the hands hang. This takes all tension out of the wrist, which is my main cause of RSI.&lt;/p&gt;&#xA;" OwnerUserId="5682" LastActivityDate="2010-10-26T21:34:02.833" />
  <row Id="14951" PostTypeId="2" ParentId="14706" CreationDate="2010-10-26T21:38:24.140" Score="3" ViewCount="" Body="&lt;p&gt;Personally, I don't see a problem with requiring lots of overtime as long as the company is very clear with you upfront about this requirement and informs you in no uncertain terms that you should reject the offer if you can't handle it.  Where it would bother me more is if they started requiring significant overtime after I was already established at that job, when switching costs would make getting out of there painful for me, at least in the short term.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-26T21:38:24.140" />
  <row Id="14953" PostTypeId="2" ParentId="14808" CreationDate="2010-10-26T21:44:49.747" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;SQL Join Syntax&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This one is really simple, but I remember it like the crack of a whip.  Joins were mystical to me.  The syntax was confusing.  Left Join Inner Join, wha?  I was used to putting all the tables after the &lt;code&gt;FROM&lt;/code&gt; like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;SELECT * FROM table_a, table_b;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;After finally figuring out how &lt;code&gt;LEFT JOIN&lt;/code&gt; works, I wondered almost aloud &quot;what the hell was I so confused about? This is easy!&quot;&lt;/p&gt;&#xA;" OwnerUserId="5497" LastActivityDate="2010-10-26T21:44:49.747" CommentCount="2" />
  <row Id="14954" PostTypeId="2" ParentId="1224" CreationDate="2010-10-26T21:46:36.890" Score="9" ViewCount="" Body="&lt;p&gt;At my work we have a very simple rule: &lt;strong&gt;changes must be reviewed by at least one other developer before a merge or a commit to the trunk&lt;/strong&gt;.  In our case this means the other person physically sits with you at your computer and goes through the change list.  This is not a perfect system, but it has noticeably improved code quality nonetheless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you know that your code is going to be reviewed that forces you to look it over first.  Many problems become apparent then.  Under our system, you have to explain what you did to the reviewer, which again causes you to notice problems you may have missed before.  Also, if something in your code is not immediately clear to the reviewer, that is a good indication that a comment is required.  And, of course, the reviewer may find problems too.  Furthermore, in addition to looking at the change, the reviewer may also notice problems in the nearby code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are two main drawbacks to this system.  When the change is trivial, it makes little sense to have it reviewed.  However, we absolutely have to stick to the rules, to avoid the slippery slope of declaring changes to be &quot;trivial&quot; when they are not.  On the other hand, this is not a very good way to review significant changes to the system or addition of large new components.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have tried more formal reviews before, when one developer would email code to be reviewed to the rest of the team, and then the whole team would get together and discuss it.  This took a lot of everyone's time, and as a result these reviews were few and far between, and only a small percentage of the code base got reviewed.  The &quot;one other person reviews changes before commit&quot; has worked much better for us.  &lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-26T21:46:36.890" />
  <row Id="14955" PostTypeId="2" ParentId="14808" CreationDate="2010-10-26T21:50:38.543" Score="1" ViewCount="" Body="&lt;p&gt;When I associated objects with the real world - simplified my OO designs like crazy!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One I still get is solving any new design problem and &lt;i&gt;knowing&lt;/i&gt; that it's the best, most cut-down solution that can be found.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-10-26T21:50:38.543" />
  <row Id="14956" PostTypeId="1" AcceptedAnswerId="14957" CreationDate="2010-10-26T21:51:50.627" Score="8" ViewCount="123" Body="&lt;p&gt;Often when I'm writing code to do a certain thing, I'm faced with either writing my own or using someone else's code. Assume here that this &quot;thing&quot; is something that I've never done before and am interested in learning how it's done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Which would you say is better from a learning perspective: try writing your own solution; or looking at code by someone else?&lt;/strong&gt; I've always written my own code if I have an idea on how to do it, but resorted to looking at someone else's when I don't have a clue. I believe that the best is probably a combination of both: make your own attempt and then look at how someone else did.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-27T03:51:05.480" Title="Which is best for learning how to do a certain thing: writing your own or looking at someone else's?" Tags="&lt;learning&gt;&lt;coding&gt;" AnswerCount="4" FavoriteCount="3" />
  <row Id="14957" PostTypeId="2" ParentId="14956" CreationDate="2010-10-26T21:54:34.663" Score="11" ViewCount="" Body="&lt;p&gt;First try to write your own.  Then look at someone else's solution.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-26T21:54:34.663" CommentCount="3" />
  <row Id="14959" PostTypeId="2" ParentId="14827" CreationDate="2010-10-26T21:57:17.420" Score="0" ViewCount="" Body="&lt;p&gt;I found in college I often finished an assignment in an hour and a half that others took 3-4 and still got the same or better grade. It's not the quantity of work you do; it's the quality that really matters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I forget who said it, but &quot;People remember your mistakes longer than missing deadlines.&quot;&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-10-26T21:57:17.420" CommunityOwnedDate="2011-01-12T18:52:29.870" CommentCount="2" />
  <row Id="14960" PostTypeId="2" ParentId="14931" CreationDate="2010-10-26T21:57:50.667" Score="4" ViewCount="" Body="&lt;p&gt;The Pragmatic Programmer calls these 'Broken Windows'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't fix broken windows then there is a tendency for them to create a downward spiral of code quality. And the more of them there are the bigger job of fixing them, and therefore it is less likely that they will be fixed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether to fix them now or later is up to a matter of judgment. Is it a simple fix? Are you sure the code is doing what you think it is? Is it likely to distract from your current task? Are you under time constraints? Is it likely to introduce more bugs?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the very least, mark the item in your tracking system and make sure it gets fixed later. It is a important to mark it in the tracking system even if you decide to fix it now, to make sure that it is tested as well, and to document changes. &lt;/p&gt;&#xA;" OwnerUserId="5682" LastActivityDate="2010-10-26T21:57:50.667" />
  <row Id="14961" PostTypeId="2" ParentId="14914" CreationDate="2010-10-26T21:58:49.073" Score="2" ViewCount="" Body="&lt;p&gt;I think the old school craftsman slots of apprentice, journeyman and master fit into these slots well for entry level, junior (or just no prefix) and senior. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Someone entry level is given relatively simple tasks that do not have profound consequences and their work is checked by a junior or senior. Over time they get more responsibility and are given more complex tasks, learning the ropes along the way. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At a junior (or just the removal of &quot;entry level&quot; / &quot;junior&quot; from the title / description) you have completed your apprenticeship and have covered the major areas of development for your company, having dipped into each major area so that you are familiar with each of them. You now help provide guidance and input for the apprentice equivalent, but your own work is still reviewed by the master / senior, though perhaps not as much as when you were a junior. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over time and the delivery of successful projects you eventually become senior. At a senior level you have mastered everything that is covered in your area, covering the entire development process and all the tools and technologies that are involved. You are empowered to make significant technical decisions and are expected to provide insight to management into the software development process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, given those guidelines you should be able to look at a person or a position and determine which of the three bins they land in.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-10-26T21:58:49.073" />
  <row Id="14962" PostTypeId="2" ParentId="1224" CreationDate="2010-10-26T21:59:47.693" Score="1" ViewCount="" Body="&lt;p&gt;I recommend using code reviews if you are not doing pair programming. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not to argue the pros and cons with pairing, but it is hard to dispute the positive effects of having your code constantly reviewed by (at least) another person. The code is even written and designed by (at least) two programmers -- it can hardly get any better than that. I'm saying &quot;at least&quot; because imo, you should try to switch pairs &lt;em&gt;a lot&lt;/em&gt; so everyone gets a shot at working with the code. &lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-10-26T21:59:47.693" />
  <row Id="14963" PostTypeId="2" ParentId="14956" CreationDate="2010-10-26T22:04:24.570" Score="0" ViewCount="" Body="&lt;p&gt;Depends on the size of the required solution and the community feedback to any existing solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Useing web dev as an example, I can write a forum but wouldn't bother, just use a respected well known solution, almost anything smaller write myself.&lt;/p&gt;&#xA;" OwnerUserId="6457" LastActivityDate="2010-10-26T22:04:24.570" />
  <row Id="14964" PostTypeId="2" ParentId="14931" CreationDate="2010-10-26T22:05:36.383" Score="7" ViewCount="" Body="&lt;p&gt;As always, it depends.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If it's trivial and you are sure you can fix it, fix it.&lt;/li&gt;&#xA;&lt;li&gt;If there are plenty of unit tests, so you can be fairly sure you haven't broken anything, fix it.&lt;/li&gt;&#xA;&lt;li&gt;Otherwise, add a //TODO, add it to your bug tracking, whatever&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Basically you're doing a risk assessment: what's the risk of changing vs not changing. If you don't feel like you've got enough experience (with programming in general, or the system in particular) ask someone else in the team.&lt;/p&gt;&#xA;" OwnerUserId="5668" LastActivityDate="2010-10-26T22:05:36.383" CommentCount="1" />
  <row Id="14965" PostTypeId="2" ParentId="14827" CreationDate="2010-10-26T22:05:57.750" Score="0" ViewCount="" Body="&lt;p&gt;These days I won't ork more than 40 hours per week, unless it is my own business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With programming it is never about the number of hours you put in but the planning you do beforehand, most of the time the coding doesn't take up the majority of a project.&lt;/p&gt;&#xA;" OwnerUserId="6457" LastActivityDate="2010-10-26T22:05:57.750" CommunityOwnedDate="2011-01-12T18:52:29.870" />
  <row Id="14966" PostTypeId="2" ParentId="14831" CreationDate="2010-10-26T22:07:49.313" Score="1" ViewCount="" Body="&lt;p&gt;Pick up a copy of &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0132350882&quot; rel=&quot;nofollow&quot;&gt;Clean Code&lt;/a&gt;. There's a whole chapter on it.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-26T22:07:49.313" CommentCount="1" />
  <row Id="14967" PostTypeId="2" ParentId="14779" CreationDate="2010-10-26T22:08:10.793" Score="1" ViewCount="" Body="&lt;h2&gt;Context sensitive search&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I want to find all call to this method of this class, not everthing that has the same name. Visual Assist tries hard but doesn't quite work, and the built in find references in Visual Studio is only a little better than find in files.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Class and Method code generators&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I don't want to have to write the boiler plate for these, I've got better things to do with my time. The ones in Visual Assist work pretty well.&lt;/p&gt;&#xA;" OwnerUserId="5682" LastActivityDate="2010-10-26T22:08:10.793" CommentCount="1" />
  <row Id="14968" PostTypeId="1" AcceptedAnswerId="14970" CreationDate="2010-10-26T22:16:10.437" Score="10" ViewCount="568" Body="&lt;p&gt;It's a fairly common adage that adding more programmers to a late project will make matters worse. Why is this?&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-10-27T20:10:10.953" Title="Why does adding more resource to a late project make it later?" Tags="&lt;project-management&gt;" AnswerCount="10" CommentCount="4" FavoriteCount="2" />
  <row Id="14969" PostTypeId="2" ParentId="14968" CreationDate="2010-10-26T22:21:24.413" Score="9" ViewCount="" Body="&lt;p&gt;It's not merely adage; it's verifiable.  Check out Brooks' &lt;em&gt;The Mythical Man-Month&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5493" LastEditorUserId="5493" LastEditorDisplayName="" LastEditDate="2010-10-27T20:10:10.953" LastActivityDate="2010-10-27T20:10:10.953" CommentCount="5" />
  <row Id="14970" PostTypeId="2" ParentId="14968" CreationDate="2010-10-26T22:23:35.853" Score="17" ViewCount="" Body="&lt;h3&gt;Introduction overhead&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Each new developer has to be introduced to the code base and development process which takes not only the new person's time but also requires assistance from [a] senior developer[s] &lt;em&gt;(guiding them through the build process, explain the testing process, help them with pitfalls in the code base, much more detailed code reviews, etc)&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, the more new developers you add to the project the more time has to be spent to bring them to a point where they can actually contribute to the project.&lt;/p&gt;&#xA;" OwnerUserId="3453" LastActivityDate="2010-10-26T22:23:35.853" CommentCount="5" />
  <row Id="14971" PostTypeId="2" ParentId="14968" CreationDate="2010-10-26T22:24:09.113" Score="4" ViewCount="" Body="&lt;p&gt;Here are some thoughts on this issue ...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Need to use current resources to bring the new resources up to speed on what's going on with the project. &lt;/li&gt;&#xA;&lt;li&gt;New resource might not be familiar with the code base, thus required more time to get acclimated to the code.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;now, adding new resources for testing might not be a bad idea ... it might speed up the testing process (if your test cases are well written), and yes using testing tools will help too.&lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-10-26T22:24:09.113" CommentCount="1" />
  <row Id="14972" PostTypeId="2" ParentId="14914" CreationDate="2010-10-26T22:25:03.210" Score="17" ViewCount="" Body="&lt;p&gt;This will vary but this is how I see it at a place large enough to have distinctions between types of programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say entry level and Junior are the same thing. They are just out of school and have less than two years of work experience. They are assigned the least complex tasks and should be supervised fairly closely. Generally they know about 10% of what they think they know. Usually they have not been through the whole development cycle and so often make some very naive choices if given the opportunity to choose. Sadly many of them, don't actually care what the requirement is, they want to build things their way. They often have poor debugging skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Intermediate level is where the many programmers fall. They have more than two years experience and generally less than ten although some can stay at this level their whole careers. They can produce working code with less supervision as long as they are assigned to relatively routine tasks. They are not generally tasked with high level design or highly complicated tasks that require an in depth level of knowledge. They may be tasked with the design of a piece of the application though especially as they are inthe zone to become a senior developer.  They are good at maintenance tasks or tasks where they can focus on just their piece of the puzzle but are not usually expected to consider the application as a whole unless working with senior developers or being prepped for promotion to senior. They can usually do a decent job of troubleshooting and debugging but they have to really slog through to get the hard ones. They do not yet have enough experience to see the patterns in the problems that point them to the probable place they are occurring. But they are gaining those skills and rarely need to ask for debugging help. They have probably been through the whole development cycle at least once and seen the results of design problems and are learning how to avoid them in the future. Usually they tend to be more likely to take a requirement at face value and not push it back when it has obvious problems or gaps.  They have learned enough to know what they don't know and are starting to gain that knowledge. They are the workhorses of the programming world, they deliver probably 80-90% of the routine code and maybe 10% of the very difficult stuff. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;No one who is senior level even needs to ask this question. They are experts in their chosen technology stacks. They are given the hard tasks (the ones nobody knows how to solve) and often get design responsibilties. They often work independently because they havea proven track record of delivering the goods. They are expected to mentor Junior and intermediate developers. Often they are amazing troubleshooters. They have run into those same problems before and have a very good idea of where to look first. Seniors often mentor outside the workplace as well. They generally have at least ten years of experience and have almost always been on at least one death march and know exactly why some things are to be avoided. They know how to deliver a working product and meet a deadline. They know what corners can be cut and what corners should never be cut. They know at least one and often several languages at the expert level. They have seen a lot of 'hot new technologies&quot; hit the workplace and disappear, so they tend to be a bit more conservative about jumping on the bandwagon for the next exciting new development tool (but not completely resistant to change - those would be the more older Intermediate developers who never make the leap to Senior). They understand their job is to deliver working software that does what the users want, not to play with fun tools. They are often pickier about where they will work because they can be and because they have seen first hand how bad some places can be. They seek out the places that have the most interesting tasks to do. Often they know more about their company's products than anyone else even if they have been there only a few months. They know they need more than programming knowledge and are good at getting knowldege about the business domain they support as well. They are often aware of issues that juniors never consider and intermediates often don't think about such as regulatory and legal issues in the business domain they support. They can and will push back a requirement because they know what the problems with it will be and can explain the same to the laymen. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-26T22:25:03.210" CommentCount="1" />
  <row Id="14973" PostTypeId="2" ParentId="14968" CreationDate="2010-10-26T22:27:14.453" Score="3" ViewCount="" Body="&lt;p&gt;Because programming is not basic production line work. Getting up to speed on a software project takes time. New people need to ask lots of questions which leads to negative productivity (ie New person learning, old person teaching them -&gt; no actual work getting done).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To simplify it, imagine a relatively simple one-man project which is scheduled to go for 1 week: on Thursday, you realise that it won't get done on time, that it would take the one programmer more like 6-7 days instead of 5. If you add another programmer at that point, they'll need to workn with programmer1 for at least a few hour or a day or so, ask lots of questions to get up to speed, etc. You probably won't get any net positive productivity for the rest of the week. The new programmer is likely to introduce some extra bugs too (since they won't know the existing code as well as programmer1), so that'll blow out the implementation and testing cycle by another day or two more. The project will easily last a full two working weeks instead of the original one! - And most likely longer than if the first programmer was simply given a couple of extra days to finish it themselves.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-26T22:27:14.453" CommentCount="25" />
  <row Id="14975" PostTypeId="1" AcceptedAnswerId="14976" CreationDate="2010-10-26T22:32:58.727" Score="9" ViewCount="252" Body="&lt;p&gt;I've gotten a bug report from one of my users in a section of the software. The scenario is basically a databinding scenario where the user enters info, and that info is printed to pdf.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is, that the functionality:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is used frequently (about 40 times a week)&lt;/li&gt;&#xA;&lt;li&gt;Hasn't been updated/modified in months&lt;/li&gt;&#xA;&lt;li&gt;The area of code is relatively simple to walk through&lt;/li&gt;&#xA;&lt;li&gt;The validation appears fine (ie, if the information wasn't filled out in the app, validation fires indicating it with a msgbox before the pdf is generated)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But this one user claims that in the past 2 weeks it's happened about 3 times out of 50 and I just can't reproduce it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what do you do in the case of a heisenbug?&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2011-03-02T01:57:31.307" Title="What do you do with a heisenbug?" Tags="&lt;bug-tracking&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="2" />
  <row Id="14976" PostTypeId="2" ParentId="14975" CreationDate="2010-10-26T22:36:28.543" Score="11" ViewCount="" Body="&lt;p&gt;Add some logging to this users code.&lt;/p&gt;&#xA;" OwnerUserId="6513" LastActivityDate="2010-10-26T22:36:28.543" CommentCount="5" />
  <row Id="14980" PostTypeId="2" ParentId="14968" CreationDate="2010-10-26T22:40:46.280" Score="19" ViewCount="" Body="&lt;p&gt;In addition to the other answers: Another factor to consider is communication.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The worst case for the amount of communication channels on a team (which isn't uncommon), is a &lt;a href=&quot;http://en.wikipedia.org/wiki/Complete_graph&quot; rel=&quot;nofollow&quot;&gt;complete graph&lt;/a&gt;. As you can imagine, adding in &lt;em&gt;just 1&lt;/em&gt; developer can increase the communication channels a lot. With more streamlined methods of communication, the impact is less... but it still adds up.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-26T22:40:46.280" CommentCount="3" />
  <row Id="14981" PostTypeId="2" ParentId="14956" CreationDate="2010-10-26T22:41:57.590" Score="7" ViewCount="" Body="&lt;p&gt;If I really want to learn how to do X and someone's got a sample online, going through the sample really speeds up how quickly I can write it myself.  Stepping through their code gives you one possible starting place on where the code can end up.  I may end up with my own code that is no where near the example, but the example got me to that decision.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the sample is gold code, then I may incorporate it into what I'm doing, but 9 times out of 10 the sample is not quite what I was looking for.  In those cases I'll use what I learned with the sample and build my own.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-10-26T22:41:57.590" CommentCount="3" />
  <row Id="14982" PostTypeId="2" ParentId="14968" CreationDate="2010-10-26T22:45:15.303" Score="1" ViewCount="" Body="&lt;p&gt;The adage that is always worked for me is you can't get nine women to make a baby in one month.  &lt;/p&gt;&#xA;" OwnerUserId="4553" LastActivityDate="2010-10-26T22:45:15.303" CommentCount="8" />
  <row Id="14984" PostTypeId="2" ParentId="14975" CreationDate="2010-10-26T22:50:28.637" Score="5" ViewCount="" Body="&lt;p&gt;depending on your situation you might have success with:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Monitor the user's machine (perfmon, eventlog, etc)&lt;/li&gt;&#xA;&lt;li&gt;Monitor the user (sit with them until they have the issue again)&lt;/li&gt;&#xA;&lt;li&gt;Replace the user's machine temporarily (get them on another desktop to see if it is a hardware/os thing)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;kasterma's suggestion of logging is still good, give them a debug build or use injectable logging if the full deploy is too troublesome.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-10-26T22:50:28.637" />
  <row Id="14985" PostTypeId="2" ParentId="14975" CreationDate="2010-10-26T22:51:11.070" Score="2" ViewCount="" Body="&lt;p&gt;The best thing to do is to add logging and try to catch it in the act.  If that is impractical, then the only thing left is to do a very thorough code review.  Going through the change log would be a reasonable way to begin.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-26T22:51:11.070" />
  <row Id="14986" PostTypeId="1" AcceptedAnswerId="15008" CreationDate="2010-10-26T23:00:36.287" Score="5" ViewCount="699" Body="&lt;p&gt;I am teaching an introduction to computer science lab session this semester.  We are using Java.  I am looking for some hard bonus questions for students to solve.  They should be able to solve them in a relatively minimal amount of code (say 50-300 lines).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So Far they know: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;input using Scanner&lt;/li&gt;&#xA;&lt;li&gt;Basic Math (including %)&lt;/li&gt;&#xA;&lt;li&gt;boolean logic&lt;/li&gt;&#xA;&lt;li&gt;Strings&lt;/li&gt;&#xA;&lt;li&gt;if statements&lt;/li&gt;&#xA;&lt;li&gt;while/for loops&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Later in the term they will know how to make methods and classes although this is getting towards the end of the class.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to offer some short but challenging bonus questions.  Does anyone have any good suggestions?  &lt;/p&gt;&#xA;" OwnerUserId="1364" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-11-11T15:23:02.973" LastActivityDate="2010-11-11T15:23:02.973" Title="Challenging Java questions for beginners" Tags="&lt;java&gt;&lt;school&gt;&lt;teaching&gt;&lt;challenge&gt;&lt;intro-to-programming&gt;" AnswerCount="13" CommentCount="2" FavoriteCount="3" />
  <row Id="14987" PostTypeId="2" ParentId="14808" CreationDate="2010-10-26T23:03:57.410" Score="1" ViewCount="" Body="&lt;p&gt;My two real eureka moments were in math, not programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first was in Linear Algebra, which was the first math class I'd ever had that put axiomatic proofs first, rather than as a support for experience and intuition. It was hard to wrap my head around it, but about a week into it, the light broke through and I felt like somebody had just handed me The Truth on a platter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second was epsilon-delta proofs for limits. I could &lt;em&gt;do&lt;/em&gt; them in introductory calculus, but they always seemed like pointless juju, again in support of intuition. A few years later, we tackled them again in a class in real analysis, using point-set topology... and again, the light broke through!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There were a few other less astonishing, but still &quot;wow, that's cool&quot;, moments, like treating one-dimensional functions as an infinite-dimensional vector space and realizing that either polynomials, or powers of sine and cosine, can form a basis for it. (The latter is the basis of Fourier transforms, variants of which are useful for lossy raster image compression like JPEG and MPEG.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never had any major epiphanies in programming like those. The closest I ever came was understanding function pointers in C. However, I suspect I might have one if I ever studied a functional language like Haskell.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-10-26T23:03:57.410" />
  <row Id="14988" PostTypeId="2" ParentId="14914" CreationDate="2010-10-26T23:05:30.677" Score="2" ViewCount="" Body="&lt;p&gt;Really, I think it just comes down to how long you have been on the job. If you have 10 years experience you are a senior dev, if you are a graduate then you are probably entry level. I have seen many 'senior' dev's who could hardly code and didn't really know what they were doing and many junior dev's who were fantastic. &lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-26T23:05:30.677" />
  <row Id="14989" PostTypeId="2" ParentId="12021" CreationDate="2010-10-26T23:09:35.943" Score="1" ViewCount="" Body="&lt;p&gt;1) Logic puzzles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0486252116&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Entertaining-Mathematical-Puzzles-Martin-Gardner/dp/0486252116/ref=pd_bxgy_b_text_b&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0486270785&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Moscow-Puzzles-Mathematical-Recreations-Logic/dp/0486270785/ref=sr_1_8?s=books&amp;amp;ie=UTF8&amp;amp;qid=1288134428&amp;amp;sr=1-8&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) The 2-player game von Neumann played on a trip to Europe, after reading Turing's 1936 paper: player 1 defines a large number n, player 2 attempts to write a Turing machine that will compute n.&lt;/p&gt;&#xA;" OwnerUserId="1398" LastActivityDate="2010-10-26T23:09:35.943" CommunityOwnedDate="2011-01-12T17:58:32.720" />
  <row Id="14991" PostTypeId="2" ParentId="14297" CreationDate="2010-10-26T23:53:55.893" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Bizarre indentation style.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a couple of very popular styles, and people will take that debate to the grave. But sometimes I see someone using a really rare, or even a home-grown indentation style.  This is a sign that they have probably not been coding with anyone other than themselves.&lt;/p&gt;&#xA;" OwnerUserId="1223" LastActivityDate="2010-10-26T23:53:55.893" CommunityOwnedDate="2010-10-26T23:53:55.893" CommentCount="3" />
  <row Id="14993" PostTypeId="2" ParentId="14986" CreationDate="2010-10-27T00:12:05.870" Score="0" ViewCount="" Body="&lt;p&gt;This might be a bit of a stretch, but would a recursive method work? I think the Fibbonacci numbers function would probably be the easiest.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-10-27T00:12:05.870" CommentCount="2" />
  <row Id="14994" PostTypeId="2" ParentId="14986" CreationDate="2010-10-27T00:37:03.703" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://cm.baylor.edu/ICPCWiki/Wiki.jsp?page=Problem%20Resources&quot; rel=&quot;nofollow&quot;&gt;http://cm.baylor.edu/ICPCWiki/Wiki.jsp?page=Problem%20Resources&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has a lot of really good questions from the ICPC world finals.&lt;/p&gt;&#xA;" OwnerUserId="5292" LastActivityDate="2010-10-27T00:37:03.703" />
  <row Id="14996" PostTypeId="2" ParentId="14986" CreationDate="2010-10-27T00:56:23.403" Score="2" ViewCount="" Body="&lt;p&gt;Here are some ideas that I've used in intro courses:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Write a &lt;a href=&quot;http://www.insectdissection.com/save-curtis/swname/&quot; rel=&quot;nofollow&quot;&gt;&quot;Star Wars Name&quot; Generator&lt;/a&gt; -- This is a fun way to use the substring method&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Input a &lt;code&gt;double&lt;/code&gt; and a &lt;code&gt;String&lt;/code&gt; of digits, e.g. &lt;code&gt;4.980&lt;/code&gt; and &lt;code&gt;&quot;14285&quot;&lt;/code&gt; representing a decimal number and then the &quot;repeating digits&quot; after that number. The program will then use a formula you give them to generate the rational form: &lt;code&gt;34861/7000&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You can make #2 more challenging by having them always output the rational in lowest terms (you can give them the GCD algorithm, or they can simply write a loop and do it exhaustively). Naturally, you can make the problem even more challenging by not telling them the formula from 2.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Write a program to take a credit card balance, an APR, and a number of months, and then print the monthly payment in order to pay the credit card off. (Effectively, write the Excel &lt;code&gt;PMT&lt;/code&gt; function.) This might be interesting to students from a personal finance stand point, and also because of the new change to credit card statements to show the 36 month payoff. Again, the formula, or only pieces of it, should be provided.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you can cover graphics at all (simple drawing of lines), have the students use trig to draw a regular polygon.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-10-27T00:56:23.403" />
  <row Id="14997" PostTypeId="2" ParentId="14986" CreationDate="2010-10-27T00:58:55.650" Score="1" ViewCount="" Body="&lt;p&gt;Create a number guessing game (or variation of it )using the random generator might be a fun one.&lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-10-27T00:58:55.650" />
  <row Id="15001" PostTypeId="2" ParentId="14315" CreationDate="2010-10-27T01:25:15.443" Score="4" ViewCount="" Body="&lt;p&gt;People that want to apply rules without seeing the context.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know best practices are really good but they are not magical things and you have to know when and how to apply them. Someone who tell me to apply a rules without seeing the context just tell me they don't know what they are doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want more info on this I suggest to read about the Dreyfus model of competence. Basically they done study to find what differentiate novice from expert and found that the more you go up on the ladder the less you have to blindly apply rules: you know why they are usefull, and, as such, when to apply them and when not to. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a key point from the study: context is everything.&lt;/p&gt;&#xA;" OwnerUserId="3063" LastActivityDate="2010-10-27T01:25:15.443" CommunityOwnedDate="2010-10-29T22:01:50.383" />
  <row Id="15002" PostTypeId="1" CreationDate="2010-10-27T01:36:03.640" Score="4" ViewCount="290" Body="&lt;p&gt;This is in regards to Meta Programming System or MPS by JetBrains. Thus far, from my efforts to learn how to use MPS, I have only learned its basic purpose and that it is very complex.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is MPS worth learning?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there anyone who already effectively uses MPS to create their own languages and editors for those languages and uses these created editors as their primary way of programming? If so, what types of programs have they made with this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the advantages and disadvantages of working with MPS?&lt;/p&gt;&#xA;" OwnerUserId="2340" LastEditorUserId="2340" LastEditorDisplayName="" LastEditDate="2011-01-20T17:47:10.563" LastActivityDate="2011-01-20T17:47:10.563" Title="Practical Meta Programming System (MPS)" Tags="&lt;ide&gt;&lt;language-design&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="4" />
  <row Id="15003" PostTypeId="2" ParentId="14931" CreationDate="2010-10-27T02:13:26.617" Score="0" ViewCount="" Body="&lt;p&gt;Well document the observations first, and decide whether to fix it later.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have some formal discussion (e.g, in the regular meeting) or informal discussion (e.g., during the lunch) with your colleagues, and make the changes after you gain more confidence on the behavior of the codes you are going to fix. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although it seems a bug/defect to you, it may actually be a &quot;feature&quot; this time. It could be a poorly implemented solution to get around some corner cases at the last minute of the previous release, and your &quot;clean fix&quot; may revive some previously resolved issues.&lt;/p&gt;&#xA;" OwnerUserId="4873" LastActivityDate="2010-10-27T02:13:26.617" />
  <row Id="15004" PostTypeId="1" AcceptedAnswerId="15006" CreationDate="2010-10-27T02:42:49.463" Score="29" ViewCount="950" Body="&lt;p&gt;I recently had a programmer in for an interview, who listed Python, PHP, Rails and ASP as a few of their skills. In the interview however, they interviewee didn't enough know what control structures and basic logic were, they had only followed a few demo tutorials.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is this: &lt;strong&gt;At which point can you add a technology to your resume accurately&lt;/strong&gt;. Is it when you can demonstrate all basic concepts, write a useful program in it, or are just comfortable using it without having to refer to the documentation every 30 seconds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't believe this is overly subjective, a baseline should easily be established based on feedback.&lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-11-03T20:04:03.797" Title="At which point do you &quot;know&quot; a technology enough to list it on a resume" Tags="&lt;career-advice&gt;&lt;skills&gt;&lt;resume&gt;" AnswerCount="10" CommentCount="2" FavoriteCount="15" />
  <row Id="15005" PostTypeId="2" ParentId="15004" CreationDate="2010-10-27T02:51:55.510" Score="3" ViewCount="" Body="&lt;p&gt;I'm not sure it is exactly determinable. In my opinion, it should be on a case to case basis. What I mean - let me explain on an example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Job ad 1 - wanted candidate with knowledge of: Python, PHP, Rails, ASP, Assembler.&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&#xA;&lt;em&gt;(and usually it can be somewhat determined from the ad which skills are more important than others - which are just there &quot;in case&quot;)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this case I would put on my resume Python, PHP ... only if I really well know them. Assembler, for example, I know very little, but I'd put it still, for it can't have a major impact in combination with the rest of the above.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Job ad 2 - wanted candidate with knowledge of: Assembler, C/C++, Kernel ..., Python, PHP, ...&lt;/em&gt;&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This case is different. Here it is (is it?) obvious that they're looking for a different kind of candidate, and that they'll (probably) disregard the lack of knowledge of PHP for example, if the candidate posseses these other skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So it depends really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a general rule, to put something on a resume, IMO, one should know how to &quot;find his way&quot; around code, basic syntax, and have at least a few small sized projects behind him using that particular language. He doesn't of course have to know the libraries &amp;amp; help by heart ... but should how &amp;amp; where to get help should he need it.&lt;br&gt;&#xA;There can be counter examples to this rule - I've noticed that people who (really) know a lot of languages tend to get confused sometimes &quot;depending on which one they're stuck in currently&quot; - for example: using IF/loops/...other syntax elements in a correct way, but with an incorrect syntax (which actually fits some other language then the one they're currently thinking about). So that is not really a necessary true test of abilities.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-27T02:51:55.510" CommentCount="5" />
  <row Id="15006" PostTypeId="2" ParentId="15004" CreationDate="2010-10-27T03:01:24.017" Score="27" ViewCount="" Body="&lt;p&gt;You should be able to defend/explain each and every word you put in your resume. Kind of like you dissertation/thesis. I have seen many candidates rejected with the reason &quot;could not justify what he had put in his resume&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One approach is to follow Google's self questionnaire. Rate each skill on a scale of 10. That way we can project how relatively comfortable we are with various technologies. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;1 means you can read others code with plenty of googling.&lt;/li&gt;&#xA;&lt;li&gt;5 maybe for implementing modules in the technology. Etc.  &lt;/li&gt;&#xA;&lt;li&gt;8 for plenty of experience and comfortable with designing and implementing large projects in that technology.  &lt;/li&gt;&#xA;&lt;li&gt;9 for architectural knowledge with moderate understanding of what's under the hood. &lt;/li&gt;&#xA;&lt;li&gt;10 means you have written a book on it or invented it. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I have seen resumes which have bar graphs indicating relative proficiency in various technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another option is to group skills as &quot;strong understanding&quot;, &quot;moderate proficiency&quot; and &quot;familiar with&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tried to put this as a comment, but didn't look due to lack of formatting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a reference, here is what Google defines the rates in their Self Evaluation&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;0 – You have no experience&lt;/li&gt;&#xA;&lt;li&gt;1 to 3 – You are familiar with this&#xA;area but would not be comfortable&#xA;implementing anything in it.-&lt;/li&gt;&#xA;&lt;li&gt;4 to 6 – You are confident in this&#xA;area and use it daily.-&lt;/li&gt;&#xA;&lt;li&gt;7 – 9 You are extremely proficient to&#xA;expert and have deep technical&#xA;expertise in the subject and feel&#xA;comfortable designing any project in&#xA;it.-&lt;/li&gt;&#xA;&lt;li&gt;10 – Reserved for those who are&#xA;recognized industry experts, either&#xA;you wrote a book in it or invented&#xA;it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5178" LastEditorUserId="5178" LastEditorDisplayName="" LastEditDate="2010-10-28T06:03:02.000" LastActivityDate="2010-10-28T06:03:02.000" CommentCount="13" />
  <row Id="15007" PostTypeId="2" ParentId="15004" CreationDate="2010-10-27T03:23:09.057" Score="16" ViewCount="" Body="&lt;p&gt;To my way of thinking, the focus on specific technologies is a mistake. I still list my Rexx experience, not because I think anyone today would be looking for it, but because I want to highlight my capacity to move fluidly in different languages, even after 19 years in I.T. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;No, I probably could not fluently white-board some of the languages I list. But, give me half a day, and I could write the same script in any 3 of them (your choice). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, the real question is, can you take advantage of the tech in front of you (whatever that may be), to put good ideas into action in a way that benefits the company, and makes your job challenging and enjoyable?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's a tough question to answer, just based on reading a list of &quot;what you already know&quot;. &lt;/p&gt;&#xA;" OwnerUserId="1829" LastActivityDate="2010-10-27T03:23:09.057" CommentCount="4" />
  <row Id="15008" PostTypeId="2" ParentId="14986" CreationDate="2010-10-27T03:28:17.147" Score="4" ViewCount="" Body="&lt;p&gt;There is a good place to practice java, www.codingbat.com go there and there are pleanty of simple problems in java.Ask students to solve them.It will provide an opportunity to prove their skills in String,Array,loops,etc....You can check their answers online. &lt;/p&gt;&#xA;" OwnerUserId="4239" LastActivityDate="2010-10-27T03:28:17.147" CommentCount="1" />
  <row Id="15009" PostTypeId="2" ParentId="14931" CreationDate="2010-10-27T03:29:14.260" Score="0" ViewCount="" Body="&lt;p&gt;I'll buck the trend here.  Unless you are in the very early prototype phase of development, you should never fix it immediately, you should file a bug report.   This has several advantages:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the team gets to evaluate it. Is it a real bug, what are the risks of fixing it.  &lt;/li&gt;&#xA;&lt;li&gt;management gets to decide if is important enough to take the schedule impact of including it in this release&lt;/li&gt;&#xA;&lt;li&gt;a method for detecting it can be added to the test suite, hopefully in a general enough way to also find similar errors.  &lt;/li&gt;&#xA;&lt;li&gt;it provides valuable metrics about how many bugs are slipping through the previous  phases&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-27T03:29:14.260" />
  <row Id="15010" PostTypeId="2" ParentId="14968" CreationDate="2010-10-27T03:48:47.363" Score="11" ViewCount="" Body="&lt;p&gt;The problem cited in the book the originally promulgated this law, &lt;em&gt;The Mythical Man-Month&lt;/em&gt;, is communication. He starts off by saying:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Men and months are interchangeable commodities only when a task can be partitioned among many workers &lt;em&gt;with no communication among them.&lt;/em&gt; This is true of reaping wheat or picking cotton; it is not even approximately true of systems programming.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;He does mention training as part of the problem:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The added burden of communication is made up of two parts: training and intercommunication. Each worker must be trained in the technology, the goals of the effort, the overall strategy, and the plan of work. This training cannot be partitioned, so this part of the work varies linearly with the number of workers.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;...but notes that intercommunication is by far the &lt;em&gt;larger&lt;/em&gt; factor:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Since software construction is inherently a systems effort -- an exercise in complex interrelationships--communication effort is great, and it quickly dominates the decrease in individual task time brought about by partitioning. Adding more men lengthens, not shortens, the schedule.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's also worth noting that Fred Brooks (the author) does have the background to know what he's talking about. Most of the book is based on his experience managing IBM's OS/360 project. Despite decades of adherents preaching all manner of &quot;improved&quot; management methods, and some even coming up with cool names (eXtreme, Agile, Scrum, etc.) when you get down to it, little of essence&lt;sup&gt;1&lt;/sup&gt; seems to have changed since.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt;For the definition of &quot;essence&quot;, see the same author's &quot;No Silver Bullet: Essence and Accident in Software Engineering&quot;, included in the 20&lt;sup&gt;th&lt;/sup&gt; Anniversary Edition of &lt;em&gt;The Mythical Man-Month&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-27T03:48:47.363" />
  <row Id="15011" PostTypeId="2" ParentId="14986" CreationDate="2010-10-27T03:48:48.307" Score="1" ViewCount="" Body="&lt;p&gt;How about a program that solves a &lt;a href=&quot;http://en.wikipedia.org/wiki/Sudoku&quot; rel=&quot;nofollow&quot;&gt;Sudoko puzzle&lt;/a&gt; that is provided as input to the program?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They will get a good primer on arrays, and the programming logic will require some thinking about algorithms. You could even give bonus points for a non-brute force solution.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-27T03:48:48.307" CommentCount="4" />
  <row Id="15012" PostTypeId="2" ParentId="14956" CreationDate="2010-10-27T03:51:05.480" Score="0" ViewCount="" Body="&lt;p&gt;Something closely related that I just realised today....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things that I learn by writing my own program for a &lt;em&gt;real life&lt;/em&gt; solution to something stick with me a lot more than doing samples/tutorial/exercises just for the sake of learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Walking through a tutorial or sample of something new is good as a basic learning exercise, but if I then walk away from it and have to apply it three weeks later (without looking at that technology at all since), I'll tend to have to Google things, revisit, look up, etc, a lot more than if I did a real program in it. It's only when I actually create something from scratch for myself in a given programming language or technology that it really sticks, and that I &lt;em&gt;internalize&lt;/em&gt; the knowledge.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-27T03:51:05.480" />
  <row Id="15013" PostTypeId="2" ParentId="14968" CreationDate="2010-10-27T03:57:20.887" Score="2" ViewCount="" Body="&lt;p&gt;Fred Brooks wrote an entire book &quot;The Mythical Man-Month&quot; answering this question. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's the quick-n-dirty version:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) There is a limit to how much you can break a project out into distinct pieces to assign to more programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Splitting a project out to more people increases the amount of communication required to coordinate all the parts of the application. More communication = More Work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) For every person you add to the project you add more than one communication channel that must be navigated to the team. This number grows geometrically and increases the amount of communication that must happen. More communication = More work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) There is a &quot;J-Curve&quot; when you add each team member. That is, the existing productive resources have to spend time getting the new people up to speed that they otherwise could have spent working on the project. Ultimately you may increase capacity, but it temporarily slows down the project. The later in the project the more that must be learned, thus the more pronounced the effect.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-27T03:57:20.887" />
  <row Id="15014" PostTypeId="2" ParentId="15004" CreationDate="2010-10-27T04:07:55.290" Score="10" ViewCount="" Body="&lt;p&gt;This is a problem I've run into a bit.  I eventually ditched the &quot;Skills&quot; section of my resume entirely, and just focused on what I'd &lt;em&gt;done&lt;/em&gt; with those languages, specifically in my projects and employment section.  I highlight/bold specific technologies as part of the description.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Web Developer @ Company X (3/3/03 to 5/5/05) Primary developer on a database-driven website to help film students organize their projects. &lt;strong&gt;Used PHP and MySQL&lt;/strong&gt;. Worked on it through development and release leading to a successful roll-out to students in early 2009, and maintenance thereafter.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This method gives your skills actual context that you can discuss in an interview.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-27T04:07:55.290" />
  <row Id="15015" PostTypeId="1" CreationDate="2010-10-27T04:33:19.843" Score="4" ViewCount="443" Body="&lt;p&gt;I got a call the other day from a recruiter.  I wasn't really looking for a new gig, but he claimed that it is now &quot;better than the year 2000&quot;.  He has too many requests and not enough people to fill.  He even offered me a $1,000 for a qualified lead that gets hired.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hear murmurs of a bad job market, but I don't know a soul in IT that is looking for work.  In fact, everyone that has jumped ship found a much better gig.  Are we currently in a job market boom?  Is anyone out there seeking a new gig in a major metro area and not finding abundance?  If so, where are you and what is your experience?&lt;/p&gt;&#xA;" OwnerUserId="6526" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-10-27T04:41:08.740" LastActivityDate="2010-10-30T09:23:46.797" Title="Are we in the middle of a job market boom?" Tags="&lt;job-market&gt;" AnswerCount="9" />
  <row Id="15016" PostTypeId="2" ParentId="15015" CreationDate="2010-10-27T04:42:43.043" Score="0" ViewCount="" Body="&lt;p&gt;It depends on the location?  Though I did notice in my country that a lot of the jobs that didn't want applicants just last year have been mass hiring since early this year.&lt;/p&gt;&#xA;" OwnerUserId="1668" LastActivityDate="2010-10-27T04:42:43.043" CommentCount="1" />
  <row Id="15017" PostTypeId="2" ParentId="14052" CreationDate="2010-10-27T05:01:14.020" Score="1" ViewCount="" Body="&lt;p&gt;If 'super programmer' == 'genius programmer'&#xA;       click_this &lt;a href=&quot;http://www.google.com/events/io/2009/sessions/MythGeniusProgrammer.html&quot; rel=&quot;nofollow&quot;&gt;http://www.google.com/events/io/2009/sessions/MythGeniusProgrammer.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6546" LastActivityDate="2010-10-27T05:01:14.020" />
  <row Id="15018" PostTypeId="2" ParentId="14827" CreationDate="2010-10-27T05:18:12.070" Score="3" ViewCount="" Body="&lt;p&gt;As a senior developer around Silicon Valley, when I'm on salary, I consider a normal work week to be 40-45 hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also expect that a few times a year, the company may have a push where everybody pulls 50-60 hours for 1-3 weeks. When that happens, I expect some kind of quid-pro-quo, like comp time or a bonus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, my last couple of employers had significant strategic challenges, and tried to cope with them by having the programmers work 60-80 hour weeks for extended periods of time. After leaving the last one, I've gone back to freelancing as a contractor/consultant. That way, if somebody wants me to work crazy hours, at least I'll get paid for them.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-10-27T05:18:12.070" CommunityOwnedDate="2011-01-12T18:52:29.870" />
  <row Id="15019" PostTypeId="2" ParentId="15015" CreationDate="2010-10-27T05:25:53.180" Score="0" ViewCount="" Body="&lt;p&gt;I'm seeing lots of new activity.  However with each manufactured boom/bust cycle, it seems again the desire is for cheap programming. :(&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-10-27T05:25:53.180" />
  <row Id="15020" PostTypeId="2" ParentId="15015" CreationDate="2010-10-27T05:26:15.567" Score="4" ViewCount="" Body="&lt;p&gt;During the first year of recession, a lot of big companies laid off people, thinking that it is the appropriate time to layoff the least productive 10% of the workforce.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the third year of the recession, the remaining workforce realize that they have a lot more bargaining power because of the loss of expertise caused by an improperly executed layoff (that is, the people getting laid off aren't the real least productive, as the truly least productive know how to game the system), they start to demand more. When their demands aren't met, they're much more open to a promotion elsewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a whole bunch of companies with lots of cash and aren't deeply affected by the several years of recession, thinking that it is the appropriate time to grab the talents they need in the coming years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually this other bunch of companies overhire - hiring more than they could afford. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And so the story goes. Like the condensing water droplets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;New Info&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the new hiring activity is due to &lt;strong&gt;new startups&lt;/strong&gt;. If you are not likely to be of interest to a new startup, hang on to your current job.&lt;/p&gt;&#xA;" OwnerUserId="620" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-10-30T07:51:55.270" LastActivityDate="2010-10-30T07:51:55.270" />
  <row Id="15021" PostTypeId="2" ParentId="15015" CreationDate="2010-10-27T05:57:36.633" Score="1" ViewCount="" Body="&lt;p&gt;Maybe where you live. There's sweet nothing where I live (Not sure how you define 'major metro' though - 300K people here but maybe 2 software companies, 1 of which is 9 months out from a major layoff). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm quitting my job tomorrow in fact and I'm not sure where I'll end up.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-27T05:57:36.633" CommentCount="6" />
  <row Id="15022" PostTypeId="2" ParentId="15004" CreationDate="2010-10-27T06:15:14.753" Score="2" ViewCount="" Body="&lt;p&gt;If all you do is list the skills with no other context, then most people reading your resume would expect you to know those well enough to handle interview questions on them. However, there is plenty of context you can put around each skill to make it more obvious what your level of expertise is. Some examples:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;List how long you've used the skill&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Java (5 years)&lt;/li&gt;&#xA;&lt;li&gt;C++ (3 years)&lt;/li&gt;&#xA;&lt;li&gt;SQL (1 year)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Give each skill a rating&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Java (5/5)&lt;/li&gt;&#xA;&lt;li&gt;C++ (3/5)&lt;/li&gt;&#xA;&lt;li&gt;SQL (1/5)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;List skills in categories&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently using: Java, C++&#xA;Previous experience: SQL&lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-10-27T06:15:14.753" CommentCount="3" />
  <row Id="15023" PostTypeId="2" ParentId="14986" CreationDate="2010-10-27T06:24:30.873" Score="1" ViewCount="" Body="&lt;p&gt;Some of the higher numbered Project Euler questions are quite challenging.  You would probably be able to pick some off &lt;a href=&quot;http://projecteuler.net/index.php?section=problems&amp;amp;page=1&quot; rel=&quot;nofollow&quot;&gt;http://projecteuler.net/index.php?section=problems&amp;amp;page=1&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-27T06:24:30.873" />
  <row Id="15024" PostTypeId="2" ParentId="15015" CreationDate="2010-10-27T06:42:32.693" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Not a boom&lt;/strong&gt;. It will recover, but give it more time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/SVePD.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And that's what analyst predict...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/RHFhN.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When market is good, I receive at least one call a day by an head hunter. This is one per week currently, so I don't think we are in a major recovery.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can read the full &lt;a href=&quot;http://www.washingtonpost.com/wp-srv/business/the-output-gap/index.html&quot; rel=&quot;nofollow&quot;&gt;explanation of the economic slump&lt;/a&gt; from the &lt;strong&gt;Washington Post&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-27T15:08:46.117" LastActivityDate="2010-10-27T15:08:46.117" CommentCount="8" />
  <row Id="15025" PostTypeId="2" ParentId="14986" CreationDate="2010-10-27T06:44:16.607" Score="0" ViewCount="" Body="&lt;p&gt;Whatever you do, don't skip on the difficulty of the problem. Make sure it is hard. Students that do not have to take time to figure out the problem are never learning anything, they should be immediately stumped and really have to think about the solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is, only you know the correct problem to give in terms of size, difficulty and how long it takes to solve. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can throw a dozen ideas at you, my favorite,&#xA;&lt;a href=&quot;http://en.wikipedia.org/wiki/Knight%27s_tour&quot; rel=&quot;nofollow&quot;&gt;Knights Tour&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But only you have the right answer!&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-10-27T06:44:16.607" />
  <row Id="15026" PostTypeId="2" ParentId="14986" CreationDate="2010-10-27T06:47:45.587" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Give me some code that will make the JVM to crash&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(taken from the excellent book, &lt;a href=&quot;http://www.pragprog.com/titles/mjwti/my-job-went-to-india&quot; rel=&quot;nofollow&quot;&gt;My Job Went To India&lt;/a&gt; from &lt;a href=&quot;http://chadfowler.com/&quot; rel=&quot;nofollow&quot;&gt;Chad Fowler&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-27T06:47:45.587" CommentCount="3" />
  <row Id="15027" PostTypeId="2" ParentId="7566" CreationDate="2010-10-27T07:10:20.577" Score="3" ViewCount="" Body="&lt;p&gt;The Joel Test inspired me to ask questions 'like that'. What version control, bug tracking, testing, ... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually ask a ton of questions at the end of (or during) the interview. &#xA;&lt;strong&gt;If anything&lt;/strong&gt;, it shows you're interested in best practices/quality assurance/.... If they don't do those things already, maybe they will be interested in you implementing eg: unit testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best case scenario: they haven't thought about those things already, but they're amazed at what you can improve in their development process. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Worst case scenario: they dislike the fact you're asking so many questions, thus have no interest in improving their process, in which case you probably don't &lt;strong&gt;want&lt;/strong&gt; to work there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: just make sure you know what you're talking about, not just mindlessly walking over some list.&lt;/p&gt;&#xA;" OwnerUserId="4000" LastActivityDate="2010-10-27T07:10:20.577" />
  <row Id="15028" PostTypeId="2" ParentId="12522" CreationDate="2010-10-27T07:13:35.163" Score="1" ViewCount="" Body="&lt;p&gt;I haven't seen any studies on how different monitors affect the safety of your eyes, so I can only speak from personal experience. What I've found is that I get the least eye strain by using a large (37&quot;+) 1080p TV as a monitor. You get large, crisp text, a decent amount of real estate (1920x1080) and great side-by-side viewing. Perfect for coding, web browsing, and of course, movies &amp;amp; games. For comparison, at various jobs over the years, I've used 22&quot; LCD's (1600x1200), 2x24&quot; LCD's (1920x1200), 30&quot; LCD's (2560x1600), and a variety of laptop screens. Absolutely &lt;em&gt;nothing&lt;/em&gt; compares to the TV's I use at home. I used to have a &lt;a href=&quot;http://www.amazon.com/Westinghouse-LVM-37W3-37-Inch-1080p-Monitor/dp/B000EYZ994&quot; rel=&quot;nofollow&quot;&gt;Westinghouse LVM-37W3&lt;/a&gt; and now have a &lt;a href=&quot;http://www.amazon.com/Toshiba-REGZA-40XV645-Diagonal-1080p/dp/B003R1BCTM&quot; rel=&quot;nofollow&quot;&gt;Toshiba Regza 40XV645&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-10-27T07:13:35.163" />
  <row Id="15029" PostTypeId="2" ParentId="12522" CreationDate="2010-10-27T07:14:49.967" Score="1" ViewCount="" Body="&lt;p&gt;IPS matrix is a must have. About size, it is better to have more smaller monitors, you'll not waist time moving windows around.&lt;/p&gt;&#xA;" OwnerUserId="2051" LastActivityDate="2010-10-27T07:14:49.967" />
  <row Id="15030" PostTypeId="2" ParentId="14827" CreationDate="2010-10-27T07:22:20.410" Score="5" ViewCount="" Body="&lt;p&gt;I work 4 days / week, so officially 32 hours / week. It is a choice on my part to get less money but get a better quality of life. It did take some time to convince my employer that it was a good idea and I still have to be carefull not to end up working 40 hours a week but getting paid for 32. Still, I think it is a good solution both for me and for my employer, as even if I work less hours / week, I definitly think tht I am more efficient than when I was working 42.5 hours / week.&lt;/p&gt;&#xA;" OwnerUserId="2248" LastActivityDate="2010-10-27T07:22:20.410" CommunityOwnedDate="2011-01-12T18:52:29.870" />
  <row Id="15031" PostTypeId="2" ParentId="15004" CreationDate="2010-10-27T07:22:31.520" Score="5" ViewCount="" Body="&lt;p&gt;I list only the things I know well, and for me that means &lt;strong&gt;used in anger for about a year or more&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's just me. That's how long I think I take to &lt;strong&gt;really&lt;/strong&gt; know, appreciate, and understand a language / system / IDE / environment / whatever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When tinkering, you don't really learn so well. Most languages / frameworks / etc really require you to get into the mind of the designer before you &quot;get it&quot;, and to really know what you are about takes about 12 months.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a bit of an aside:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my position interviewing and reading CV's, I find it interesting that people list all kinds of stuff, with no supporting information in their experience to back up their assertion. For example, they might list PHP, MYSQL, Ada, C++, C#. And then their experience might say they did a project using C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When there is nothing to back up the languages claimed in the experience listed, I usually smell a rat and that person won't even make it to an interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Listing languages by rating, or how long used, or proficiency, all helps the interviewer - which is not always whats intended by the person submitting the CV!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HINTS:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IF WRITING A CV:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Be clear, straightforward, and scrupulously honest.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make life as simple for the person reading your CV as possible. Present clearly, with no hyperbole.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you have a position description that you don't completely meet, attach a statement showing HOW you meet the position description (don't make the person who gets your CV figure this out). AND WHERE YOU DON'T MEET SOMETHING required - say so. And if willing to learn, SAY SO.  This also shows that you have actually read the position description, and understood it, and you are not just cranking out form CV's for every position around.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;IF READING A CV:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Cross check - does the experience listed match the skill set listed? If not, something is fishy.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;How long was something used? A few days, or a tutorial, is not experience no matter how you dress it up.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Has the person constantly chopped and changed? Did they stick around long enough to actually see something through? (Have they lived with their own mistakes? No = another warning)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Sometimes these things are hard to assess, and you end up going on &quot;smell&quot;. It a CV has a bit of a whiff of the sea (ie it seems a bit fishy) then move on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From Joel On Software: Any doubts at all = No Hire.&#xA;And from my own experience: A vacant position is far better than one filled with somebody you had doubts about, who turns out to be a bad choice. (No progress is better than going backwards.)&lt;/p&gt;&#xA;" OwnerUserId="6279" LastEditorUserId="6279" LastEditorDisplayName="" LastEditDate="2010-10-27T07:31:41.853" LastActivityDate="2010-10-27T07:31:41.853" />
  <row Id="15032" PostTypeId="2" ParentId="14975" CreationDate="2010-10-27T07:34:25.330" Score="3" ViewCount="" Body="&lt;p&gt;I've seen things like this on an embedded system take 6 months to find. Really frustrating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However in desktop land, it's amazing what happens if you go an actually watch what the user does. They may be doing things in some order / manner that had not been expected and this in turn causes the trouble.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-10-27T07:34:25.330" CommentCount="3" />
  <row Id="15033" PostTypeId="2" ParentId="9062" CreationDate="2010-10-27T07:36:58.553" Score="4" ViewCount="" Body="&lt;p&gt;Is this code working? Don't modify &lt;strong&gt;absolutely&lt;/strong&gt;!&lt;/p&gt;&#xA;" OwnerUserId="6330" LastActivityDate="2010-10-27T07:36:58.553" CommunityOwnedDate="2010-10-27T07:36:58.553" CommentCount="2" />
  <row Id="15034" PostTypeId="2" ParentId="14968" CreationDate="2010-10-27T07:44:32.497" Score="1" ViewCount="" Body="&lt;p&gt;I'd also suggest &quot;Peopleware&quot; by DeMarco and Lister.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And &quot;The Deadline&quot; by DeMarco presents this, and a number of other software project management diseases and fallacies in a lighthearted and very readable fashion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also delves into the dynamics of people doing project / team work, and goes into some detail about just HOW things like communication and introduction deplete the available working time of a team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These books are quite cheap, I'd suggest you get them (Amazon or The Book Depository have them) and have a read. The short answers here can't really do justice to the question asked.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-10-27T07:44:32.497" CommentCount="1" />
  <row Id="15035" PostTypeId="1" AcceptedAnswerId="15040" CreationDate="2010-10-27T07:57:55.433" Score="0" ViewCount="88" Body="&lt;p&gt;Can i use this &lt;a href=&quot;http://acko.net/dev/farbtastic&quot; rel=&quot;nofollow&quot;&gt;http://acko.net/dev/farbtastic&lt;/a&gt; color picker in my Web application? It falls under GPL so I think this is free of cost?&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-10-27T08:43:49.373" ClosedDate="2010-10-27T21:42:33.433" Title="Question about Color picker license" Tags="&lt;license&gt;&lt;jquery&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="15036" PostTypeId="2" ParentId="14410" CreationDate="2010-10-27T08:11:41.893" Score="0" ViewCount="" Body="&lt;p&gt;OK, going out on a limb here, thinking out loud...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What if the C# team used F# as inspiration?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, given this canonical F# example: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;let getWebPage (url:string) = &#xA;    async { let req = WebRequest.Create url&#xA;            let! resp = req.AsyncGetResponse()&#xA;            let stream = resp.GetResponseStream()&#xA;            let reader = new StreamReader(stream)&#xA;            return! reader.AsyncReadToEnd() }&#xA;&#xA;Async.RunSynchronously getWebPage &quot;http://www.google.com&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;What could that look like in C#4? (with a hypothetical AsyncFunc class, and assuming that the Async... methods exist, and pretending we can do &lt;a href=&quot;http://www.ridgesolutions.ie/index.php/2008/08/12/implicit-cast-of-lambda-expression-to-custom-class-in-c-30/&quot; rel=&quot;nofollow&quot;&gt;implicit casts from lambdas to custom classes&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;AsyncFunc&amp;lt;string, string&amp;gt; getWebPage = (url, callback) =&amp;gt;&#xA;{&#xA;     var req = WebRequest.Create(url);&#xA;     req.AsyncGetResponse(resp =&amp;gt;&#xA;         {&#xA;             var stream = resp.GetResponseStream();&#xA;             var reader = new StreamReader(stream);&#xA;             reader.AsyncReadToEnd(callback);&#xA;         }&#xA;     );&#xA;};&#xA;&#xA;string webPage = getWebPage.RunSynchronously(&quot;http://www.google.com&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Supposing (the completely hypothetical future) C#5 also used the ! operator, and the compiler magically threaded in the callbacks (to convert what follows into what precedes):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;AsyncFunc&amp;lt;string, string&amp;gt; getWebPage = url =&amp;gt;&#xA;{&#xA;     var req = WebRequest.Create(url);&#xA;     !var resp = req.AsyncGetResponse();  //&amp;lt;- a miracle happens&#xA;     var stream = resp.GetResponseStream();&#xA;     var reader = new StreamReader(stream);&#xA;     !return reader.AsyncReadToEnd(); //&amp;lt;- is this going too far???&#xA;};&#xA;&#xA;string webPage = getWebPage.RunSynchronously(&quot;http://www.google.com&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But could we reuse the ! operator in this way? I think so: even though it is already a unary operator, I don't think there's any ambiguity, in any case the compiler currently doesn't like any of these constructions:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;!int x = 3;&#xA;!x = 3;&#xA;!DoSomething();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4285" LastActivityDate="2010-10-27T08:11:41.893" CommentCount="4" />
  <row Id="15037" PostTypeId="2" ParentId="14706" CreationDate="2010-10-27T08:20:49.347" Score="1" ViewCount="" Body="&lt;p&gt;I have had been in a job where at the end of a project it was expected for me to work overtime, I did, I was told I would get the time of lieu. When I came to wanted to take the time off, I wasn't allowed to use this time. The company also didn't pay overtime. From that moment I refused to work overtime along with my colleagues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From this experience I decided from that moment on, I wouldn't work any unpaid overtime unless it was less than 2 hours a week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any company that wants you to work overtime without pay, indicates that they don't want to pay for what they need. They either need to extend their deadlines, or plan the projects properly in the first place.&lt;/p&gt;&#xA;" OwnerUserId="2395" LastActivityDate="2010-10-27T08:20:49.347" />
  <row Id="15038" PostTypeId="2" ParentId="14900" CreationDate="2010-10-27T08:21:12.040" Score="0" ViewCount="" Body="&lt;p&gt;In my experience, this is not common in the IT industry in general, but getting sick often can be a sign of stress or unsatisfactory working conditions - something that is &lt;em&gt;not&lt;/em&gt; uncommon in our industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stress and overtime will make you sick in the long run - avoid if possible, at least make sure it doesn't last. Frustrating projects and bad managers can make people &quot;sick&quot; - perhaps they aren't really sick, but unmotivated and do not want to go to work?&lt;/p&gt;&#xA;" OwnerUserId="1020" LastActivityDate="2010-10-27T08:21:12.040" />
  <row Id="15039" PostTypeId="2" ParentId="15004" CreationDate="2010-10-27T08:38:17.667" Score="-4" ViewCount="" Body="&lt;p&gt;Sometimes just knowing the meaning of the acronym is enough to add it to the resume...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's true, for example, for frameworks and libraries that you can couple with a given language.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-10-27T08:38:17.667" CommentCount="7" />
  <row Id="15040" PostTypeId="2" ParentId="15035" CreationDate="2010-10-27T08:43:49.373" Score="1" ViewCount="" Body="&lt;p&gt;It might be free of cost. (It looks so, at any rate.) Make sure you abide by the licence, and you're set.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even better: if you have a query about the licence or cost, ask the author. He or she will know better than any random answer you get on Programmers.SE.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-27T08:43:49.373" />
  <row Id="15041" PostTypeId="2" ParentId="14900" CreationDate="2010-10-27T09:13:30.240" Score="0" ViewCount="" Body="&lt;p&gt;I think this comes and goes in waves.  Because programming isn't exactly a physically demanding activity, staying at home lying in bed thinking about code is almost the same effort as going to work and thinking about code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, if the illness is contageous, this leads to everyone else getting sick to some degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wikipedia discusses this phenomenon as &lt;a href=&quot;http://en.wikipedia.org/wiki/Presenteeism&quot; rel=&quot;nofollow&quot;&gt;Presenteeism&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3991" LastActivityDate="2010-10-27T09:13:30.240" />
  <row Id="15042" PostTypeId="2" ParentId="14856" CreationDate="2010-10-27T09:21:39.670" Score="12" ViewCount="" Body="&lt;p&gt;Now that you mentioned Clean Code, while it contains some good ideas, I think its obsession to refactor all methods into submethods and those into subsubmethods etc. is taken way too far. Instead of a couple of ten-line methods you're supposed to prefer twenty (supposedly well named) one-liners. Obviously someone thinks it's clean, but to me it seems way worse than the original version.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, replacing simple elementary things such as&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;0 == memberArray.length&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;within a class with a call to the class's own method such as&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;isEmpty()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;is a questionable &quot;improvement&quot; IMHO. &lt;strong&gt;Addition:&lt;/strong&gt; The difference is that the first check does exactly what it says: checks whether the array length is 0. Ok, &lt;code&gt;isEmpty()&lt;/code&gt; might check array length too. But it could also be implemented like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;return null != memberArray ? 0 == memberArray.length : true;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That is, it  includes an implicit null check! This may be fine behavior for a public method - if the array is null, then something is certainly empty -  but when when we're talking about class internals, this is not so fine. While encapsulation &lt;em&gt;to outside&lt;/em&gt; is a must, class &lt;em&gt;internals&lt;/em&gt; must know exactly what's going on within the class. &lt;strong&gt;You can't encapsulate the class from itself&lt;/strong&gt;. &lt;a href=&quot;http://www.python.org/dev/peps/pep-0020/&quot; rel=&quot;nofollow&quot;&gt;Explicit is better than implicit.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;This is not to say that breaking down long methods or involved logical comparisons is no good; of course it is, but &lt;em&gt;to which degree to do it&lt;/em&gt; -- where the sweet spot is -- is obviously a question of taste. Breaking down a long method results in more methods, and that does not come for free. You have to jump around source code in order to see what's really going on, when you could see it at a glance if all that stuff were in a single method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would even go as far as to say that in some cases a 1-line method is &lt;em&gt;too short&lt;/em&gt; to deserve being a method.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-28T11:52:58.753" LastActivityDate="2010-10-28T11:52:58.753" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="8" />
  <row Id="15043" PostTypeId="2" ParentId="14745" CreationDate="2010-10-27T09:47:58.867" Score="1" ViewCount="" Body="&lt;p&gt;It all depends on what your intentions are and who your audience is.  Since you are just starting out, and if you do not have a project that requires you to project into the web/browser, I would tinker with Swing and learn how that UI paradigm works.  When the time comes, you can then learn how to wrap that into an Applet and deal with the deployment issues (security, deployment, platform compatibility, etc).  Even if you never use an Applet, or Swing in the future, the core concepts you learn to master Swing (threading, events and listeners, employing a MVC philosophy, basic behavior of UI widgets ....) are useful in almost any UX context.&lt;/p&gt;&#xA;" OwnerUserId="6561" LastActivityDate="2010-10-27T09:47:58.867" />
  <row Id="15044" PostTypeId="1" AcceptedAnswerId="35638" CreationDate="2010-10-27T10:06:58.287" Score="1" ViewCount="164" Body="&lt;p&gt;I remember stumbling across an amusing graphic a year or so ago which demonstrated the tiers of web development. The back-end was shown as a tiny box, but the front end was shown as a huge box crammed with lots of front-end technologies like AJAX, DHTML.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is all a vague recollection. Does anyone know where on the Intraweb this graphic might be? It was probably on a programming cartoon site, but I only view XKCD on a regular basis, and I couldn't find it on there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although tagged as fun, my request does have a productive edge to it - it would be quite useful in driving home to my colleagues how UI top-heavy web application development has become.&lt;/p&gt;&#xA;" OwnerUserId="6562" LastActivityDate="2011-01-11T15:29:53.740" Title="Graphic demonstrating emphasis of front end in web apps" Tags="&lt;web-development&gt;&lt;fun&gt;" AnswerCount="1" FavoriteCount="3" />
  <row Id="15045" PostTypeId="2" ParentId="14789" CreationDate="2010-10-27T10:14:44.860" Score="13" ViewCount="" Body="&lt;p&gt;At the moment I still use Hungarian for &lt;strong&gt;exactly three reasons&lt;/strong&gt;, &lt;strong&gt;judiciously avoiding&lt;/strong&gt; it for everything else:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;To be consistent with an existing code base when doing maintenance.&lt;/li&gt;&#xA;&lt;li&gt;For controls, eg. &quot;txtFirstName&quot;. We often need to distinguish between (say) &quot;firstName&quot; the value and &quot;firstName&quot; the control. Hungarian provides a convenient way to do this. Of course, I could type &quot;firstNameTextBox&quot;, but &quot;txtHungarian&quot; is just as easy to understand and is less characters. Moreover, using Hungarian means that controls of the same type are easy to find, and are often grouped by name in the IDE.&lt;/li&gt;&#xA;&lt;li&gt;When two variables hold the same value but differ by type. For example, &quot;strValue&quot; for the value actually typed by the user and &quot;intValue&quot; for the same value once it has been parsed as in integer.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I certainly wouldn't want to set up my ideas as best practice, but I follow these rules because experience tells me that it occasional use of Hungarian benefits code maintainability but costs little. That said, I constantly review my own practice, so may well do something different as my ideas develop.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Update:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've just read an &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2003/09/12/52989.aspx&quot; rel=&quot;nofollow&quot;&gt;insightful article&lt;/a&gt; by Eric Lippert, explaining how Hungarian can help make wrong code look wrong. Well worth reading.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastEditorUserId="1928" LastEditorDisplayName="" LastEditDate="2010-11-03T10:01:17.800" LastActivityDate="2010-11-03T10:01:17.800" CommentCount="3" />
  <row Id="15046" PostTypeId="2" ParentId="14986" CreationDate="2010-10-27T10:32:03.400" Score="0" ViewCount="" Body="&lt;p&gt;Let them &quot;transpose&quot; a text file.  For example, this file:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;===&#xA;ab&#xA;cde&#xA;fg&#xA;===&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;would be transposed to:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;===&#xA;acf&#xA;bdg&#xA; e&#xA;===&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-10-27T10:32:03.400" CommentCount="3" />
  <row Id="15047" PostTypeId="2" ParentId="14781" CreationDate="2010-10-27T10:42:43.563" Score="1" ViewCount="" Body="&lt;p&gt;I'm surrounded with a lot of really good programmers, and I've only been programming professionally for a year, so I feel this stress.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When these guys are getting excited about learning Clojure and Scala, I can feel overwhelmed.  After all, I'm still confused about jQuery, only passable at Hibernate, and clueless with web services.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I find important to remember is that &lt;strong&gt;I don't learn much at all in a day, but I can learn a lot in a month&lt;/strong&gt;.  And as the months pile up I find that I'm turning into a knowledgeable programmer in certain areas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as you are committed to continue to learn, you will surpass many of your classmates, even if you forget everything you ever knew about linked lists.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-10-27T10:42:43.563" />
  <row Id="15048" PostTypeId="2" ParentId="8617" CreationDate="2010-10-27T11:06:52.530" Score="6" ViewCount="" Body="&lt;p&gt;Working on site with a client, who ran a website but was basically a complete amateur and had no idea how the site worked, how their server worked, how &lt;em&gt;anything&lt;/em&gt; worked. But because they had once had a bad experience where a programmer 'stole their code' ( I don't believe this to be true, I doubt a programmer would ever want to steal this code and the customer was very paranoid ) I had to work in their house, in a small home office, with them looking over my shoulder the whole time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To give a picture of the type of person this was, they accessed their website by typing the URL into the google search box then clicking the first link returned. Every. Single. Time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would frequently be bombarded with questions &quot;why are you doing that?&quot; and when I answered they would say &quot;I don't need details- that is too much detail!&quot; But they once did a few weeks course on Cobol or Fortran or similar, so clearly they understood every aspect of building websites in PHP and could tell me what I was doing wrong at any time. Particularly when something stopped working on a page that had nothing to do with what I was editing. It didn't matter that it was entirely unrelated. I was working on the site so I had broken the page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And no, they wouldn't stand for upgrading MySQL to a version that would cut out hours of work on my part and massively improve the speed of the site, so I had to spend hours time working around features absent from an old version of the database rather than helping them through a much quicker upgrade to a better backend. I don't know why.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everything, of course, had to happen on the live site. No staging here, it was developmestruction all the way. At least I could use an out of the way directory for some of the development. But then the client would start telling me my code wasn't working because they couldn't see it at all, because they were looking at the current site rather than the development directory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know if it was pure stupidity or a personality disorder, but they were very hard to work with indeed. Also I never got paid for the last few days work I did with them. I should have taken them to court over it, but it was almost worth the money for the relief of never having to have any dealings with them ever again.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-27T11:06:52.530" CommentCount="2" />
  <row Id="15049" PostTypeId="2" ParentId="15004" CreationDate="2010-10-27T11:10:56.883" Score="-1" ViewCount="" Body="&lt;p&gt;I only list skills that I have used in a project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't like the idea of putting my idea of my skill in a technology on my CV, mark out of 5 etc, I've interviewed to many people who mark themselves much higher than they are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer if interviewing to ask and ask why they say that level or if being interviewed to be asked about where and why I rate myself as a 5/5.&lt;/p&gt;&#xA;" OwnerUserId="6457" LastActivityDate="2010-10-27T11:10:56.883" CommentCount="2" />
  <row Id="15050" PostTypeId="1" CreationDate="2010-10-27T11:30:10.853" Score="6" ViewCount="198" Body="&lt;p&gt;I have my own thoughts how &quot;ideal&quot; multilingual web application or web site should behave. Can you think of better solution? What are the pros and cons of them? What are cons of the solution I am presenting bellow? Any comments?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My &quot;ideal&quot; solution:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;application should read browser language (from Accept Language header)&lt;/li&gt;&#xA;&lt;li&gt;user should be able to override his/her default language in options (logged-on users will see the web site in this language no matter of current browser settings; useful when one is travelling for example)&lt;/li&gt;&#xA;&lt;li&gt;on top of this, when lang attribute is specified in URL (see example bellow), user will see the page in language specified by this attribute (both accept language and user settings would be overridden; this could be useful for book-marking, sharing, RSS feeds selection, web crawlers).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Example URL: &lt;a href=&quot;http://www.example.com/index.html?lang=ex&quot; rel=&quot;nofollow&quot;&gt;http://www.example.com/index.html?lang=ex&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2554" LastActivityDate="2010-10-31T19:59:24.143" Title="Natural language detection for web application" Tags="&lt;best-practices&gt;&lt;web-development&gt;&lt;internationalization&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="15051" PostTypeId="2" ParentId="14918" CreationDate="2010-10-27T11:32:13.253" Score="2" ViewCount="" Body="&lt;p&gt;I would avoid Ruby, or at least certainly avoid Rails. When I was developing with it ( admittedly a few years ago now, around the time of Rails 1.0 ) it seemed that every fortnight a new release would come out deprecating everything I was using.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I have known Java to dive into Deprecation Fever as well over the years, but at nothing close to the rate that Rails did. If you're developing with a certain platform it's very beneficial to develop in the way that works best with the design of the platform, but it seemed to me that the &quot;Rails Way&quot; kept changing at that time, so if I had been sticking with it, I would have been rewriting my code every month or so just to keep up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love working in Ruby and I think Rails is a brilliant platform, but that was quite irritating when I was trying to get a product out the door.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-27T11:32:13.253" CommentCount="1" />
  <row Id="15053" PostTypeId="2" ParentId="14781" CreationDate="2010-10-27T11:45:19.307" Score="2" ViewCount="" Body="&lt;p&gt;90 % of programmers don't know they don't know stuff. So you are already in the top 10%. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The jobs that you will be going for are junior positions. The people looking at you don't expect you to know everything that they ask, if you did you would be a senior programmer. They aren't looking for an already knowledgable programmer, but one who has a grasp of the basics and is willing to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So a third of the questions they will expect you to know, a third of the questions they expect you to not know, but have an idea what they are talking about and have a good try at answering. And the last third will be questions that try to figure out your personality, your learning ability, and willingness to learn. If you get the first third right, and show that you are enthusiastic about programming then you'll do alright.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disclaimer: statistics are completely made up. :D&lt;/p&gt;&#xA;" OwnerUserId="5682" LastActivityDate="2010-10-27T11:45:19.307" />
  <row Id="15054" PostTypeId="2" ParentId="14169" CreationDate="2010-10-27T11:54:17.023" Score="0" ViewCount="" Body="&lt;p&gt;I use whatever ReSharper tells me to.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-10-27T11:54:17.023" CommentCount="1" />
  <row Id="15055" PostTypeId="2" ParentId="15015" CreationDate="2010-10-27T11:56:00.347" Score="0" ViewCount="" Body="&lt;p&gt;In Australia current &lt;a href=&quot;http://www.abs.gov.au/ausstats/abs@.nsf/mf/6202.0&quot; rel=&quot;nofollow&quot;&gt;unemployment rate&lt;/a&gt; is 5.1% which is a fall since GFC.&lt;br&gt;&#xA;Total &lt;a href=&quot;http://www.anz.com.au/about-us/our-company/media-centre/job-advertisement/&quot; rel=&quot;nofollow&quot;&gt;number of job ads&lt;/a&gt; in Sep 2010 is 32% more than same time last year.&lt;br&gt;&#xA;A lot of it is in mining and construction though and the &lt;a href=&quot;http://www.theaustralian.com.au/news/nation/sparkies-do-it-tough-for-big-bucks/story-e6frg6nf-1225852497368&quot; rel=&quot;nofollow&quot;&gt;pay is great&lt;/a&gt;.&lt;br&gt;&#xA;So yes, in Australia there is a jobs boom, but sadly mostly not in manufacturing and IT.&lt;/p&gt;&#xA;" OwnerUserId="3414" LastActivityDate="2010-10-27T11:56:00.347" />
  <row Id="15056" PostTypeId="2" ParentId="14706" CreationDate="2010-10-27T12:03:52.010" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://37signals.com/rework/&quot; rel=&quot;nofollow&quot;&gt;Workaholism&lt;/a&gt;&lt;/strong&gt; (from book Rework by 37signals)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Our culture celebrates the idea of the workaholic. We hear about people burning the midnight oil. They pull all-nighters and sleep at the office. It’s considered a badge of honor to kill yourself over a project. No amount of work is too much work.amount of work is too much work.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Not only is this workaholism unnecessary, it’s stupid. Working more doesn’t mean you care more or get&#xA;  more done. It just means you work more.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Workaholics wind up creating more problems than they solve. First off, working like that just isn’t sustainable over time. When the burnout crash comes— and it will— it’ll hit that much harder.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Workaholics miss the point, too. They try to fix problems by throwing sheer hours at them. They try to make up for intellectual laziness with brute force. This results in inelegant solutions.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;They even create crises. They don’t look for ways to be more efficient because they actually like working overtime. They enjoy feeling like heroes. They create problems (often unwittingly) just so they can get off on working more.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Workaholics make the people who don’t stay late feel inadequate for “merely” working reasonable hours.&#xA;  That leads to guilt and poor morale all around. Plus, it leads to an ass-in-seat mentality—people stay late out of obligation, even if they aren’t really being productive.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;If all you do is work, you’re unlikely to have sound judgments. Your values and decision making wind up&#xA;  skewed. You stop being able to decide what’s worth extra effort and what’s not. And you wind up just plain tired. No one makes sharp decisions when tired.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;In the end, workaholics don’t actually accomplish more than nonworkaholics. They may claim to be per-&#xA;  fectionists, but that just means they’re wasting time fixating on inconsequential details instead of moving on to the next task.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Workaholics aren’t heroes. They don’t save the day, they just use it up. The real hero is already home because she figured out a faster way to get things done.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6567" LastActivityDate="2010-10-27T12:03:52.010" CommentCount="1" />
  <row Id="15057" PostTypeId="2" ParentId="14986" CreationDate="2010-10-27T12:07:31.950" Score="0" ViewCount="" Body="&lt;p&gt;One type of question that can be quite fun is to give them a bit of code that behaves in a standard way and then challenge them to find a way to implement the same functionality in fewer lines of code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That can be particularly good if they're starting to learn about the standard libraries available to them and you can use it as a way to bring in utility methods from those rather than implementing stuff longhand.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-27T12:07:31.950" />
  <row Id="15058" PostTypeId="2" ParentId="1483" CreationDate="2010-10-27T12:11:08.913" Score="0" ViewCount="" Body="&lt;p&gt;I had worked for a few months in Japan. Although the code was in English the file headers and small amount of comments they had was in Japanese. They actually had to find me a English keyboard to work with.&lt;/p&gt;&#xA;" OwnerUserId="3414" LastActivityDate="2010-10-27T12:11:08.913" CommunityOwnedDate="2010-10-27T12:11:08.913" />
  <row Id="15059" PostTypeId="2" ParentId="8617" CreationDate="2010-10-27T12:14:32.623" Score="1" ViewCount="" Body="&lt;p&gt;Our summer peaks at about 30 degrees C.  That's pretty hot for an Englishman, but we have air conditioning so it's OK.  But last year the air con failed, so it was absolutely steaming, and with 100 developers, most with multiple computers (I have 3) it was even worse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One other point to note: I'm an asthmatic and don't do stuffy heat, I just can't breathe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They fixed it eventually, but I had to get some desk fans, and anyone who even thought about grabbing one would have got their arms ripped off.  My other option was to simply not go in.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-27T12:14:32.623" CommentCount="1" />
  <row Id="15060" PostTypeId="2" ParentId="14706" CreationDate="2010-10-27T12:21:49.833" Score="0" ViewCount="" Body="&lt;p&gt;I'm with @dsimcha, on what was the time agreement when hired? You can always compare it to another job. Does this job pay better on your salary, which in a way, is paying you overtime (Call it what you want.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a defined amount of work to be done and if so are you getting it done? Could be a sign of poor planning or just a 'get as much done as possible' attitude.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Putting in extra hours without compensation is a risk reward proposition. Is there any type of bonus for finishing a particular project? I wouldn't compare working at a startup where you have a percentage of the company to being a salaried employee. You could be at another job working fewer hours for the same money. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this going to look good on a resume/CV? Many employers in various fields are known for driving their people like slaves, but after awhile, those people are in a position to get much better jobs.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-27T12:21:49.833" CommentCount="2" />
  <row Id="15062" PostTypeId="2" ParentId="8617" CreationDate="2010-10-27T12:28:08.080" Score="4" ViewCount="" Body="&lt;p&gt;In a temporary portakabin type building - the LOWEST temperature we measured was 36 degrees C, highest was 44.  No air conditioning. Windows would not open.  The bosses tried to stop us wearing shorts as it &quot;looked unprofessional&quot;!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another one was at a shipyard in NW England.  The design work and code written out longhand in an enormous office the size of a couple of football pitches.  No walls/cubicles.  Desks in a rigid grid like an exam hall.  When the code was written it was then typed into the shared development system/console located in a cabin on the dockside.  This was a half a mile walk to get to from the main office.&lt;/p&gt;&#xA;" OwnerUserId="5877" LastEditorUserId="5877" LastEditorDisplayName="" LastEditDate="2010-10-27T13:12:52.297" LastActivityDate="2010-10-27T13:12:52.297" CommentCount="2" />
  <row Id="15063" PostTypeId="1" CreationDate="2010-10-27T12:37:18.083" Score="7" ViewCount="451" Body="&lt;p&gt;Most of us don't get to spend our time programming in the newest and coolest language.  I'm interested in the question of what language you use to pay the bills, and what language you wish you could program in professionally.  I think it may be interesting to see how these two languages are related to each other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since this is essentially a poll question, don't duplicate exact answers, upvote in that case.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-01-26T10:29:58.703" LastActivityDate="2011-01-26T10:29:58.703" ClosedDate="2010-10-27T14:42:18.460" Title="What language is your bread and butter, and what language is your fantasy?" Tags="&lt;programming-languages&gt;" AnswerCount="17" CommentCount="2" FavoriteCount="2" />
  <row Id="15064" PostTypeId="2" ParentId="14968" CreationDate="2010-10-27T12:37:55.797" Score="1" ViewCount="" Body="&lt;p&gt;Because no one takes the time to have a well thought out, planned, tested process for: hiring, training, developing and supervising programmers let alone brining them up to speed on a particular project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are managing a team of developers, you should have several contacts right now of people you would like to hire if you have an openning. Join developer groups. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How fast can you get a brand new development machine setup and ready to go? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you ever tested your project documentation and specs by showing them to a developer on another project? Did they look at it and determine they could start working on the project if necessary?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How up to date is any project schedule?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Save up for a rainy day because when a project falls behind it is more like a huricane.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-27T12:37:55.797" />
  <row Id="15065" PostTypeId="2" ParentId="15063" CreationDate="2010-10-27T12:38:23.293" Score="2" ViewCount="" Body="&lt;p&gt;I program primarily in Java, but I wish that I could be paid to be a Python programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Currently I'm programming in Groovy, which seems an acceptable compromise.)&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-10-27T12:38:23.293" />
  <row Id="15066" PostTypeId="2" ParentId="15063" CreationDate="2010-10-27T12:42:11.663" Score="0" ViewCount="" Body="&lt;p&gt;PHP, on my way to C#&lt;/p&gt;&#xA;" OwnerUserId="6457" LastActivityDate="2010-10-27T12:42:11.663" />
  <row Id="15067" PostTypeId="2" ParentId="8617" CreationDate="2010-10-27T12:42:56.997" Score="1" ViewCount="" Body="&lt;p&gt;HMS Ocean - they made room for me next to a Operator Mechanic working radar. We are below deck, I am a civilian, they sailed early and we were not expecting to be there. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just enough room for a laptop, mostly crouched on the end of someone Else's seat. &#xA;3 Weeks of this and only having 5 hours sleep before swapping the sheets so the next person could have the bunk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would have loved Mt. Everest, it would have been much cooler and not at all claustrophobic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never again will I do a contract for the Navy. (Pay was good, and the food superb!)&lt;/p&gt;&#xA;" OwnerUserId="6296" LastActivityDate="2010-10-27T12:42:56.997" CommentCount="1" />
  <row Id="15068" PostTypeId="2" ParentId="15063" CreationDate="2010-10-27T12:43:11.897" Score="3" ViewCount="" Body="&lt;p&gt;I mostly use C# at work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to use / learn Clojure.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-10-27T12:43:11.897" CommentCount="2" />
  <row Id="15069" PostTypeId="2" ParentId="15063" CreationDate="2010-10-27T12:46:41.147" Score="0" ViewCount="" Body="&lt;p&gt;Bread and Butter is Delphi 2006, on my way to Delphi XE, and some Java. But I am looking forward to use literate programming as a paradigm. But more than that German and English when preaching the Gospel and writing Christian books. &lt;/p&gt;&#xA;" LastActivityDate="2010-10-27T12:46:41.147" />
  <row Id="15070" PostTypeId="2" ParentId="15063" CreationDate="2010-10-27T12:47:14.000" Score="2" ViewCount="" Body="&lt;p&gt;Day job: Ruby/Rails &amp;amp; javascript/jQuery&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wish: Actually quite happy with the above, but looking into things like node.js and other fancy javascript stuff.&lt;/p&gt;&#xA;" OwnerUserId="4757" LastActivityDate="2010-10-27T12:47:14.000" CommentCount="2" />
  <row Id="15071" PostTypeId="2" ParentId="15063" CreationDate="2010-10-27T12:50:13.283" Score="2" ViewCount="" Body="&lt;p&gt;Delphi (5, 7 and 2010) are my bread and butter. My old reliable friend and constant companion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C# is my flusy, we have late night interludes and .NET4 is my secret lover, but alas Delphi is still the better Win32 language so we must keep our passions hidden from the light of day.&lt;/p&gt;&#xA;" OwnerUserId="6296" LastActivityDate="2010-10-27T12:50:13.283" CommentCount="2" />
  <row Id="15072" PostTypeId="2" ParentId="15063" CreationDate="2010-10-27T12:53:30.813" Score="2" ViewCount="" Body="&lt;p&gt;I'm working with C# and ASP.Net.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to switch to Ruby on Rails.&lt;/p&gt;&#xA;" OwnerUserId="220" LastActivityDate="2010-10-27T12:53:30.813" CommentCount="4" />
  <row Id="15073" PostTypeId="2" ParentId="15063" CreationDate="2010-10-27T12:53:48.953" Score="1" ViewCount="" Body="&lt;p&gt;Day job: A horrible mangled dialect of C++, smatterings of ARM assembly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hobby/Wish: Idiomatic C++.&lt;/p&gt;&#xA;" OwnerUserId="3748" LastActivityDate="2010-10-27T12:53:48.953" CommentCount="1" />
  <row Id="15074" PostTypeId="2" ParentId="14781" CreationDate="2010-10-27T12:55:08.047" Score="1" ViewCount="" Body="&lt;p&gt;There will always be more stuff to know than you, or anyone else, can possibly know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you shouldn't really concern yourself, mostly, with whether you do or do not know something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you should have confidence in, is your ability to learn. If you have the attitude that whatever you need to know you can learn, then you will be fine.&lt;/p&gt;&#xA;" OwnerUserId="4757" LastActivityDate="2010-10-27T12:55:08.047" />
  <row Id="15075" PostTypeId="2" ParentId="14315" CreationDate="2010-10-27T13:01:08.070" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I don't need to write unit tests as I&#xA;  write bug-free code&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4757" LastActivityDate="2010-10-27T13:01:08.070" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="1" />
  <row Id="15076" PostTypeId="2" ParentId="15063" CreationDate="2010-10-27T13:01:17.097" Score="3" ViewCount="" Body="&lt;p&gt;I am in java/c# but very much interested in C. May not be the coolest/newest but it drives me :)&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-10-27T13:01:17.097" CommentCount="2" />
  <row Id="15077" PostTypeId="2" ParentId="15004" CreationDate="2010-10-27T13:09:13.560" Score="-3" ViewCount="" Body="&lt;p&gt;If you are confident that given a programming test in that technology as part of the interview, you would manage it, then it is fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you were to say,&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;actually I haven't used X in a while&#xA;  so I am a bit rusty...&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Probably best not to list it as a skill. Doesn't mean you can't mention elsewhere on previous projects you have worked on.&lt;/p&gt;&#xA;" OwnerUserId="4757" LastActivityDate="2010-10-27T13:09:13.560" CommentCount="3" />
  <row Id="15078" PostTypeId="2" ParentId="15063" CreationDate="2010-10-27T13:09:39.893" Score="1" ViewCount="" Body="&lt;p&gt;B&amp;amp;B: PHP, Javascript, AS3.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wish: Any good functional language.&lt;/p&gt;&#xA;" OwnerUserId="1416" LastActivityDate="2010-10-27T13:09:39.893" />
  <row Id="15079" PostTypeId="2" ParentId="15063" CreationDate="2010-10-27T13:15:03.747" Score="1" ViewCount="" Body="&lt;p&gt;Mostly C with some C++ and Assembler&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wish that I could use ADA&lt;/p&gt;&#xA;" OwnerUserId="5877" LastActivityDate="2010-10-27T13:15:03.747" CommentCount="3" />
  <row Id="15080" PostTypeId="2" ParentId="15063" CreationDate="2010-10-27T13:17:49.990" Score="0" ViewCount="" Body="&lt;p&gt;Day Job: Common Lisp, Javascript, some light PHP + Ruby + Perl (the corporate site is PHP, and I need to do scripting every once in a while in Ruby/Perl)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wish: Happy with the above, actually. I just wish I had the time to learn more of them. Specifically, I've been meaning to pick up Haskell for quite a while.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-10-27T13:17:49.990" CommentCount="1" />
  <row Id="15081" PostTypeId="2" ParentId="15063" CreationDate="2010-10-27T13:26:40.723" Score="0" ViewCount="" Body="&lt;p&gt;Bash.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wish I could develop in Java/C# &lt;/p&gt;&#xA;" OwnerUserId="5736" LastActivityDate="2010-10-27T13:26:40.723" />
  <row Id="15082" PostTypeId="2" ParentId="9062" CreationDate="2010-10-27T13:31:43.130" Score="7" ViewCount="" Body="&lt;p&gt;Don't touch the machine while the code is compiling or you'll screw it up.&lt;/p&gt;&#xA;" OwnerUserId="5736" LastActivityDate="2010-10-27T13:31:43.130" CommunityOwnedDate="2010-10-27T13:31:43.130" />
  <row Id="15083" PostTypeId="2" ParentId="15063" CreationDate="2010-10-27T13:41:10.703" Score="0" ViewCount="" Body="&lt;p&gt;Day job: Classic ASP, Javascript, SQL, bit of PHP&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wish: Python, but really anything that isn't classic ASP. It just takes sooo long to do anything :( Even PHP is vastly better.&lt;/p&gt;&#xA;" OwnerUserId="1698" LastActivityDate="2010-10-27T13:41:10.703" />
  <row Id="15084" PostTypeId="2" ParentId="1483" CreationDate="2010-10-27T13:43:39.837" Score="0" ViewCount="" Body="&lt;p&gt;I'am from indonesia, and english is not our primary language, but all of programmers that i know is coding in english including the code comments.&lt;/p&gt;&#xA;" OwnerUserId="3321" LastActivityDate="2010-10-27T13:43:39.837" CommunityOwnedDate="2010-10-27T13:43:39.837" />
  <row Id="15085" PostTypeId="2" ParentId="15063" CreationDate="2010-10-27T14:05:45.600" Score="0" ViewCount="" Body="&lt;p&gt;I work with Python, I'd love to spend some time with C#.&lt;/p&gt;&#xA;" OwnerUserId="6579" LastActivityDate="2010-10-27T14:05:45.600" CommentCount="2" />
  <row Id="15086" PostTypeId="1" AcceptedAnswerId="15091" CreationDate="2010-10-27T14:09:48.860" Score="4" ViewCount="688" Body="&lt;p&gt;This question asked how to auto update version number in VS 2010 : &#xA;&lt;a href=&quot;http://stackoverflow.com/questions/4025704/publishing-in-net-produces-application-files-myapp-someversionnumber-how-to-ge&quot;&gt;http://stackoverflow.com/questions/4025704/publishing-in-net-produces-application-files-myapp-someversionnumber-how-to-ge&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The answer was, &#xA;You have to update both Assembly Version AND File version manually &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Shouldn't the version number increment each time I publish?  Why should I do it manually?  Is this is a conscious decision by MS to do it this way? What's the thinking behind having people manually update their own version number?&lt;/p&gt;&#xA;" OwnerUserId="2527" LastActivityDate="2010-10-27T15:07:16.067" Title="Why doesn't Visual Studio auto increment your version number?" Tags="&lt;visual-studio-2010&gt;" AnswerCount="2" FavoriteCount="0" />
  <row Id="15087" PostTypeId="2" ParentId="15063" CreationDate="2010-10-27T14:10:14.793" Score="1" ViewCount="" Body="&lt;p&gt;Day job:  D.  Being a grad student who works on research prototypes rather than production code, I'm fortunate enough to have a choice and overall I love D, but...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fantasy:  Ruby, or Python in a close second.  The main reason I use D is because I need a fast, close to the metal language.  I'd love to use something more dynamic if the constraints of the project allowed it.  I use Python occasionally when I can get away with its slowness  and need a Python library, but AFAIK Ruby doesn't really have any compelling scientific libraries yet and is even slower than Python.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-27T14:10:14.793" CommentCount="1" />
  <row Id="15088" PostTypeId="2" ParentId="14856" CreationDate="2010-10-27T14:11:55.217" Score="-1" ViewCount="" Body="&lt;p&gt;Using static and final keywords.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;static, because its faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;final, because you dont want anybody to extend that class(aka Design For Extension).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;it makes class using those classes very hard to unit-test.&lt;/p&gt;&#xA;" OwnerUserId="929" LastEditorUserId="929" LastEditorDisplayName="" LastEditDate="2010-10-27T14:39:19.390" LastActivityDate="2010-10-27T14:39:19.390" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="10" />
  <row Id="15089" PostTypeId="2" ParentId="14297" CreationDate="2010-10-27T14:19:56.810" Score="16" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Completely unused variables&lt;/strong&gt;, especially when the variable has a name similar to variable names that are used.&lt;/p&gt;&#xA;" OwnerUserId="4422" LastActivityDate="2010-10-27T14:19:56.810" CommunityOwnedDate="2010-10-27T14:19:56.810" />
  <row Id="15090" PostTypeId="2" ParentId="8617" CreationDate="2010-10-27T14:24:07.180" Score="1" ViewCount="" Body="&lt;p&gt;My wife once worked for a family-owned sporting goods company.  Her boss was the brother who'd drawn the short straw and was responsible for accounting, and her office was close to the skate-sharpening machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The system had been set up by a guy one of the brothers personally liked.  He was a nice guy and technically quite competent, but had no business sense, and seemed to be motivated by the ability to set up a high-tech system (with 80186s!) with somebody else paying for it.  I met him shortly before he moved far away to go to school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things continued reasonably well, although the accounting brother had this habit of locking the user manuals in his office (although not anything actually confidential), until the hard disk drive caught fire, with flames coming out of the housing.  We figure this had to be due to the metal filings in the air from the skate sharpening, and neither of us have seen or heard of this sort of thing happening since.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this point, things went bad in a hurry.  The backups were of no use without a properly formatted 40MB hard disk.  Back then, MS-DOS could handle disks up to 32MB, and anything bigger required special formatting tools.  Naturally, the guy who set up the system had used an unknown partitioning program that he'd taken with him, and had not left any documentation on system setup or anything.  I don't think the computer system ever recovered.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-27T14:24:07.180" />
  <row Id="15091" PostTypeId="2" ParentId="15086" CreationDate="2010-10-27T14:27:30.140" Score="3" ViewCount="" Body="&lt;p&gt;So two or more developers can publish their code under the same version.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-27T14:27:30.140" />
  <row Id="15092" PostTypeId="2" ParentId="15015" CreationDate="2010-10-27T14:34:39.277" Score="0" ViewCount="" Body="&lt;p&gt;I think we are an interesting time in history. We are facing a huge transition in generations in the labor force. &#xA;Check out this &lt;a href=&quot;http://www.bls.gov/spotlight/2008/older_workers/images/home_image020.gif&quot; rel=&quot;nofollow&quot;&gt;graph&lt;/a&gt;. Read more &lt;a href=&quot;http://www.bls.gov/spotlight/2008/older_workers/pdf/older_workers_bls_spotlight.pdf&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5400" LastEditorUserId="5400" LastEditorDisplayName="" LastEditDate="2010-10-27T14:51:19.123" LastActivityDate="2010-10-27T14:51:19.123" />
  <row Id="15093" PostTypeId="2" ParentId="15063" CreationDate="2010-10-27T14:35:00.527" Score="4" ViewCount="" Body="&lt;p&gt;Wish: Python&#xA;&lt;br/&gt;&#xA;Day Job: Python&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know, I'm a lucky girl...&lt;/p&gt;&#xA;" OwnerUserId="3423" LastActivityDate="2010-10-27T14:35:00.527" CommentCount="1" />
  <row Id="15094" PostTypeId="1" AcceptedAnswerId="15099" CreationDate="2010-10-27T14:44:30.500" Score="6" ViewCount="212" Body="&lt;p&gt;I've seen a lot of tests measuring execution speed of programming languages, but I've never found tests measuring development speed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've heard development speed is increased when working with dynamic languages, but is there any proof of that ? I'm not trying to say dynamic languages aren't efficient, but I'd kind of like to see the results of a scientific study, if such a thing exists.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even better would be informations on maintenance facility. Are some languages easier to debug than others ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT : I'm mostly interested in the differences between two languages that are close in syntax. For example, I guess programming in C will usually be slower than programming in Java; but is programming in Java faster than programming in C# ? &lt;/p&gt;&#xA;" OwnerUserId="6579" LastEditorUserId="6579" LastEditorDisplayName="" LastEditDate="2010-10-27T14:58:53.897" LastActivityDate="2010-10-27T22:17:47.590" Title="A measure of development speed" Tags="&lt;programming-languages&gt;&lt;comparison&gt;" AnswerCount="5" CommentCount="3" />
  <row Id="15095" PostTypeId="2" ParentId="15094" CreationDate="2010-10-27T14:50:16.943" Score="2" ViewCount="" Body="&lt;p&gt;For me this is kind of analogous to which type of paint brush lets you paint quicker.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you consider what you paint a commodity, then the bigger the brush the quicker you will paint.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you see good code as an art-form, then it is less abut the size of brush, and more what exactly you do with your brushes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry, this is a bit of a non-answer to the actual question.&lt;/p&gt;&#xA;" OwnerUserId="4757" LastActivityDate="2010-10-27T14:50:16.943" CommentCount="3" />
  <row Id="15096" PostTypeId="1" AcceptedAnswerId="15098" CreationDate="2010-10-27T14:52:22.100" Score="1" ViewCount="197" Body="&lt;p&gt;They both can be seen as centralized processing, but from a developer's perspective is it returning us to the days when access to computers you could program yourself were limited and expensive? To me that was the problem the PC solved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Heard this on &lt;a href=&quot;http://thisdeveloperslife.com/&quot; rel=&quot;nofollow&quot;&gt;http://thisdeveloperslife.com/&lt;/a&gt; 1.0.6 Abstraction.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-27T23:20:59.523" Title="Is comparing cloud computing to main frames a bad analogy?" Tags="&lt;cloud&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="1" />
  <row Id="15097" PostTypeId="2" ParentId="14706" CreationDate="2010-10-27T14:56:42.160" Score="2" ViewCount="" Body="&lt;p&gt;I've been a manager in a company that had a corporate policy of a minimum 45hr workweek. My take on it is that as long as the company is upfront about the expectations during the hiring process it gives you a chance to negotiate a salary commensurate with the additional hours. That is, just because you are salaried it doesn't necessarily mean you are working uncompensated overtime. However, such a company should be paying higher salaries than companies that expect fewer hours per week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are in such a shop, I think you could make a good case to your manager (you will probably need some evidence for this) that similar jobs require fewer hours and that you are working x% more for the same money, thus you deserve an x% raise or an x% reduction in hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately you have the power to vote with your feet. &lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-27T14:56:42.160" />
  <row Id="15098" PostTypeId="2" ParentId="15096" CreationDate="2010-10-27T15:01:26.913" Score="4" ViewCount="" Body="&lt;p&gt;Computing is constantly swinging back and forth between centralized and decentralized architectures. I think it is simply a case of &quot;The grass is always greener&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I don't think that the centralized model (IaaS) is necessarily going to make access to computing power more expensive. That, in my opinion, was more a factor of how expensive the computing equipment was and not so much the purchasing model of computing power.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-27T15:01:26.913" />
  <row Id="15099" PostTypeId="2" ParentId="15094" CreationDate="2010-10-27T15:05:16.723" Score="5" ViewCount="" Body="&lt;p&gt;Absolutely the programming language makes a difference. However, I think that difference is far more about how familiar the programmer is with each language than any particular aspect of the language, especially given your constraint of languages with similar syntax.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-27T15:05:16.723" />
  <row Id="15100" PostTypeId="2" ParentId="15086" CreationDate="2010-10-27T15:07:16.067" Score="6" ViewCount="" Body="&lt;p&gt;You could always use the &lt;a href=&quot;http://autobuildversion.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;&quot;Build Version Increment&quot;&lt;/a&gt; open source add-on for visual studio to do it for you.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-27T15:07:16.067" CommentCount="1" />
  <row Id="15101" PostTypeId="2" ParentId="15096" CreationDate="2010-10-27T15:08:49.420" Score="5" ViewCount="" Body="&lt;p&gt;Actually, I think that the effect of Cloud Computing will be quite the opposite: it will democratize the building of large web applications by making the required infrastructure available to nearly anyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, we will have to be able to pay for the services provided by the cloud providers, but it will be immensely more practical for a single developer or a small team to have viral-level success with a web application than if they had to provide the hardware, co-lo, configuration and maintenance themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, IaaS provides a marked advantage over traditional hosting in that it accounts for sudden, low-effort scalability. If my application runs on Google AppEngine and goes viral, I have to do nothing; it will scale without any effort on my part. However, if my PHP/MySQL app is on GoDaddy and needs to scale, I will have a good amount of work ahead of me.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-10-27T15:08:49.420" CommentCount="2" />
  <row Id="15102" PostTypeId="2" ParentId="15094" CreationDate="2010-10-27T15:11:21.120" Score="0" ViewCount="" Body="&lt;p&gt;Imagine how this would be tested: you need to have some real world project developed independently both repeatedly with the same language (to take away the variability of programmer experience and knowledge) and with different languages (to get some data to compare the languages).  Seems to me that the experiment quickly grows to an unmanageable size.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd love to hear about ways to &quot;shrink&quot; the experiment, or about attempts to actually perform the experiment as stated.&lt;/p&gt;&#xA;" OwnerUserId="6513" LastActivityDate="2010-10-27T15:11:21.120" CommentCount="3" />
  <row Id="15103" PostTypeId="1" CreationDate="2010-10-27T15:13:17.653" Score="1" ViewCount="178" Body="&lt;p&gt;A co-worker of mine has recently moved on to another job. In the past, this co-worker/friend of min have worked together on several projects. Our dynamic was great and we returned innovative and quality work. As management is looking for additional hires... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the number 1 top quality that you could not live without in a programmer team-mate/co-worker?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Please limit responses to only 1 quality&lt;/em&gt; &lt;/p&gt;&#xA;" OwnerUserId="5400" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-27T15:15:23.503" LastActivityDate="2010-10-27T16:48:13.963" ClosedDate="2010-10-27T16:58:07.603" Title="What is the number one top quality that you could not live without in a programmer team-mate/co-worker?" Tags="&lt;hiring&gt;&lt;personality&gt;&lt;co-workers&gt;&lt;qualifications&gt;" AnswerCount="9" CommentCount="5" />
  <row Id="15104" PostTypeId="2" ParentId="15103" CreationDate="2010-10-27T15:14:58.087" Score="0" ViewCount="" Body="&lt;p&gt;Be able to accept and learn from critisim/feedback&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-10-27T15:14:58.087" />
  <row Id="15105" PostTypeId="2" ParentId="15103" CreationDate="2010-10-27T15:15:45.607" Score="1" ViewCount="" Body="&lt;p&gt;Common sense (which is not quite common :-).&lt;/p&gt;&#xA;" OwnerUserId="6513" LastActivityDate="2010-10-27T15:15:45.607" />
  <row Id="15106" PostTypeId="2" ParentId="14781" CreationDate="2010-10-27T15:17:29.743" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;This is when the anxiety hit me&#xA;  because i have so much to learn in so&#xA;  little time.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Granted, you have a lot to learn, but you have all the time in the world.  You are only 21 according to your profile.  I'm 63 and still learning.  Sure, I worked out the linked list thing a few decades ago, but there was (and is) always something else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Always having new stuff to learn is what makes programming still fun for me even though I've been doing it for 40 years.  If I knew it all at your age, it would have gotten a little boring by now.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-10-27T15:17:29.743" />
  <row Id="15107" PostTypeId="1" CreationDate="2010-10-27T15:19:03.810" Score="4" ViewCount="1139" Body="&lt;p&gt;I have 2 years of experience in Software Testing. I have worked on both Manual as well as Automation forms of testing. But, this time I have a got a chance in my company to become a Software Developer. I know opportunities like these rarely come in life and I want to make use of it. I could not get any job early in my career in the field of Development that's why I moved into Software Testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The risk involved with this is that I don't have any experience in Development and chances are I would be treated as fresher. I am not much aware as to what kind of impact it will have on my Profile. I'm getting confused as the whole 2 years I have spent in Software Testing could go waste.&lt;/p&gt;&#xA;" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-15T02:35:09.983" LastActivityDate="2010-12-15T16:47:45.700" Title="After having 2 years experience in Software Testing, is it worth taking the risk to move to Development?" Tags="&lt;career-advice&gt;&lt;testing&gt;&lt;software-developer&gt;&lt;coding&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="1" />
  <row Id="15108" PostTypeId="2" ParentId="15107" CreationDate="2010-10-27T15:21:50.030" Score="20" ViewCount="" Body="&lt;p&gt;Take the developer job.  It's your next logical step.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's OK being a fresher for awhile.  The company is giving you the opportunity to learn a new craft.  Take it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That you started out as a software tester and moved into development looks good on your resume, not bad; I wouldn't worry about that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately, there's more money being a developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Did I mention you should take the developer job?&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-10-27T15:21:50.030" CommentCount="5" />
  <row Id="15109" PostTypeId="2" ParentId="15107" CreationDate="2010-10-27T15:23:19.000" Score="3" ViewCount="" Body="&lt;p&gt;You can't lose anything by &lt;strong&gt;applying&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you lack in development experience you probably more than make up for with knowledge about your company's product and domain. These can hold back even the best developer with years of experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously you might lose pay if your company pays new developers less than testers with 2+ year experience, but that's a conversation you need to have with your employer.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-12-15T16:37:58.767" LastActivityDate="2010-12-15T16:37:58.767" CommentCount="2" />
  <row Id="15110" PostTypeId="2" ParentId="14986" CreationDate="2010-10-27T15:28:07.593" Score="2" ViewCount="" Body="&lt;p&gt;A Pig Latin translator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This project while simple covers a lot of basic techniques.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I/O - users must enter a string to be translated and have the results visible to them&lt;/li&gt;&#xA;&lt;li&gt;JAVA API - specifically for manipulating strings&lt;/li&gt;&#xA;&lt;li&gt;Loops - for moving through the input&lt;/li&gt;&#xA;&lt;li&gt;String manipulation - rearranging each word into it's Pig Latin equivalent&lt;/li&gt;&#xA;&lt;li&gt;Dealing with requirements and conditions, The rules for Pig Latin translation&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I've been a T/A for my schools intro java course, and this was one of the projects given, generally students really enjoyed working on it, and it gives them a program that is more fun than just arbitrary data and output.&lt;/p&gt;&#xA;" OwnerUserId="5736" LastActivityDate="2010-10-27T15:28:07.593" />
  <row Id="15111" PostTypeId="2" ParentId="15103" CreationDate="2010-10-27T15:30:11.177" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Team player&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Without hesitation&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-27T15:30:11.177" />
  <row Id="15112" PostTypeId="1" AcceptedAnswerId="15119" CreationDate="2010-10-27T15:32:06.870" Score="6" ViewCount="202" Body="&lt;p&gt;I'm currently working on the following types of web sites and apps:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;ecommerce like Amazon&lt;/li&gt;&#xA;&lt;li&gt;Reservation system (think of a hotel receptionist checking rooms availability)&lt;/li&gt;&#xA;&lt;li&gt;Invoice management like Freshbook&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;On Amazon, I didn't notice any breadcrumbs, just facets from the left panel.  However, newegg is using both breadcrumbs and facets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a management system like hotel reservations or invoice management, you usually have unique reservation or customer number that you search through your system.  Each reservation can then expand to more sections, for instance:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Reservations&#xA;    &amp;gt; Reservation #123456&#xA;        &amp;gt; Guests&#xA;        &amp;gt; Room&#xA;        &amp;gt; Airport pickup&#xA;        &amp;gt; Payment&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In each unique reservation page, I'm using breadcrumbs to show the location of the current page relative to the site.  Is that a good method to present that kind of information?  Should I use tabs or other techniques?&lt;/p&gt;&#xA;" OwnerUserId="5968" LastActivityDate="2010-10-27T15:47:24.247" Title="Are breadcrumbs still a viable way to navigate web sites and web apps?" Tags="&lt;web-development&gt;&lt;websites&gt;&lt;web-applications&gt;" AnswerCount="2" CommentCount="4" />
  <row Id="15113" PostTypeId="2" ParentId="15107" CreationDate="2010-10-27T15:32:13.787" Score="5" ViewCount="" Body="&lt;p&gt;The answer that you don't want to hear, but need to, is &quot;&lt;strong&gt;it's up to you.&lt;/strong&gt;&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you want to do development?  If so, go for it.  It sounds like your company knows your abilities (including the ability to learn and adapt), and you're much more likely to grow into becoming a developer with your knowledge of the current system (as opposed to starting fresh with a new company).  You aren't likely to get a much better opportunity to do so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I know plenty of people that take the craft of software testing, and make it a career.  If you enjoy that more, work on that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I, for one, think that it behooves all developers to spend some time in the test lab, and if possible, for testers to get a taste of what it takes to develop software.  From that perspective, trying it out will make you a better &lt;strong&gt;_&lt;/strong&gt;, whichever path you decide to take.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course you will be, and should be,  treated as an entry level developer.  For either you or your company to expect more is unreasonable.  With two years experience, your pay &lt;em&gt;may&lt;/em&gt; be slightly higher than a true newbie.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-10-27T15:32:13.787" CommentCount="1" />
  <row Id="15114" PostTypeId="1" CreationDate="2010-10-27T15:33:11.827" Score="0" ViewCount="102" Body="&lt;p&gt;I have a base class Shape, and drived classes Line Segment, Arc, B-spline,... I want to find the intersection point between these shapes. I would like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Shape* a = new LineSegment();&#xA;Shape* b = new Arc();&#xA;&#xA;bool did_intersect = a-&amp;gt;Intersect(b);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I don't like this design in Intersect:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;bool LineSegment(Shape* s) {&#xA;  Arc* arc = dynamic_cast&amp;lt;Arc*&amp;gt;(s);&#xA;  if (NULL != arc)&#xA;    return LineSegmentArcIntersection(this, arc);&#xA;&#xA;  BSpline* bspline = dynamic_cast&amp;lt;BSpline*&amp;gt;(s);&#xA;  if (NULL != bspline)&#xA;    return LineSegmentBSplineIntersection(this, bspline);&#xA;  ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So, What &lt;strong&gt;design pattern&lt;/strong&gt; is best suitable with this context?&lt;/p&gt;&#xA;" OwnerUserId="681" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-27T15:39:20.523" LastActivityDate="2010-10-28T01:06:48.527" Title="What design pattern is best suitable with this context?" Tags="&lt;design&gt;&lt;design-patterns&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="15115" PostTypeId="2" ParentId="15114" CreationDate="2010-10-27T15:37:07.740" Score="4" ViewCount="" Body="&lt;p&gt;I think you are looking for &lt;a href=&quot;http://en.wikipedia.org/wiki/Double_dispatch&quot; rel=&quot;nofollow&quot;&gt;double dispatch&lt;/a&gt; or &lt;a href=&quot;http://en.wikipedia.org/wiki/Multiple_dispatch&quot; rel=&quot;nofollow&quot;&gt;multiple dispatch&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Btw., this question is better suited for StackOverflow.&lt;/p&gt;&#xA;" OwnerUserId="1309" LastEditorUserId="4982" LastEditorDisplayName="" LastEditDate="2010-10-28T01:06:48.527" LastActivityDate="2010-10-28T01:06:48.527" />
  <row Id="15116" PostTypeId="2" ParentId="15112" CreationDate="2010-10-27T15:37:14.067" Score="4" ViewCount="" Body="&lt;p&gt;Breadcrumbs are used in Windows 7 Explorer, in a highly effective manner.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I actually think breadcrumbs are underused in web sites.  It's an extremely effective technique for moving around in the website tree, especially if the website is large and complex.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-27T15:43:55.730" LastActivityDate="2010-10-27T15:43:55.730" CommentCount="1" />
  <row Id="15117" PostTypeId="2" ParentId="15103" CreationDate="2010-10-27T15:38:29.547" Score="1" ViewCount="" Body="&lt;p&gt;Good communication skills.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-27T15:38:29.547" />
  <row Id="15118" PostTypeId="2" ParentId="14781" CreationDate="2010-10-27T15:45:39.830" Score="1" ViewCount="" Body="&lt;p&gt;Making a linked list is something you should have learned in college.  The Java programmers never have to do so, because the standard runtime library provides a set of list implementations with different characteristica.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest that you - if you have gotten a job yet - dig into what you can learn of what is expected of you in your current job.  For Java programmers that would be &quot;Effective Java&quot; you should learn by heart.  The ecosystem these days is so great that there is PLENTY to learn just for the standard runtimes.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-27T15:45:39.830" />
  <row Id="15119" PostTypeId="2" ParentId="15112" CreationDate="2010-10-27T15:47:24.247" Score="6" ViewCount="" Body="&lt;p&gt;I find breadcrumbs a very useful feature.  I particularly like it on ecommerce sites where I might be in and out of a lot of different category products.  Its a wonderful tool that should be used more often and doesn't require a lot of screen real estate to implement.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-10-27T15:47:24.247" />
  <row Id="15120" PostTypeId="2" ParentId="14781" CreationDate="2010-10-27T15:48:30.110" Score="1" ViewCount="" Body="&lt;p&gt;Interview anxiety is natural. You're going to be under a spotlight in the interview. If they're doing their jobs, the interviewers will ask you questions you don't know the answer to. That's the only way to test the boundaries of what you know and also to gauge how you react when faced with a problem where you don't have the information. This will be true regardless of how much you study.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowing that, there's only one thing to do: take the interview. What's the worst that can happen? They'll hire someone else (which is what they're going to do if you don't apply) and you will have interview experience to build on. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember, the interviewers are not trying to embarrass or belittle you (if they are, they're not doing their job). They have better things to do with their time. In fact, the reason they're hiring is because they have more work than they can handle without someone. They just want to find the right person to do that work. &lt;/p&gt;&#xA;" OwnerUserId="6403" LastActivityDate="2010-10-27T15:48:30.110" />
  <row Id="15121" PostTypeId="2" ParentId="14781" CreationDate="2010-10-27T15:50:26.180" Score="1" ViewCount="" Body="&lt;p&gt;My perspective on this is to understand that what I need to know to do a task is often going to be a combination of research and applying it.  I may not know all of what to do but I can figure it out usually.  At least that is my perspective though there is something to be said for understanding how to play the game that can exist in some cases like interviews.  Some people may memorize a hundred answers to try to handle various programming problems but others may just remember what the heuristic was and the general outline of what to do and correct themselves as they go.  Technology changes enough that as I get comfortable with one thing up comes something new to add to my list of things to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you believe you are too much of a perfectionist, it may be worthwhile to see a therapist or counselor to try to work through this.  I'm not saying all perfectionists need help, but for those that want it, it could be a very good idea.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-27T15:50:26.180" CommentCount="2" />
  <row Id="15122" PostTypeId="2" ParentId="15096" CreationDate="2010-10-27T15:53:52.297" Score="0" ViewCount="" Body="&lt;p&gt;The whole thing about the cloud is that it should be decentralised- one datacentre goes down? No problem, the app is running in five other places too. It really doesn't care about physical hardware.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;traditional&quot; model for serving websites is that you pay for a server or a bunch of servers in a datacentre somewhere. You give the hosting company money and they give your computers a home and/or provide some maintenance. Every user who accesses your site does so by going to that server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is a fairly centralised situation right there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The advantage of a cloud setup is that your site or service is now hosted on virtual machines wherever you need them to be. To me that is &lt;em&gt;less&lt;/em&gt; centralised. Admittedly the code isn't running on your local machine and the data isn't being stored on your local machine, but if that is the only place you're running code or storing data then that's a kind centralisation too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way it is perhaps more like mainframes is the pay-as-you-use approach. Again if you compare that with traditional web hosting approach you aren't paying the background running and rental costs of having a server at someone's server farm, so actually relative to that it can represent fairly good value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the whole I would say that &lt;em&gt;the cloud&lt;/em&gt; is neither centralising nor particularly similar to a mainframe. Maybe the approach of storing your data on a server far from your own machine is more mainframe-like, but that isn't really something to do with cloud computing, that's more to do with how developers design applications now. They could be doing that with a few physical servers of their own as easily as using one of the cloud storage services.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-27T15:53:52.297" CommentCount="2" />
  <row Id="15123" PostTypeId="2" ParentId="1224" CreationDate="2010-10-27T16:08:11.553" Score="3" ViewCount="" Body="&lt;p&gt;At &lt;a href=&quot;http://smartbear.com&quot; rel=&quot;nofollow&quot;&gt;SmartBear&lt;/a&gt; we not only make a &lt;a href=&quot;http://codecollaborator.smartbear.com&quot; rel=&quot;nofollow&quot;&gt;code review tool&lt;/a&gt;, we also use it on a day to day basis. It's an essential part of our development process. We review every change that gets checked in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's a bad idea to have a single gatekeeper code reviewer for many reasons. That person becomes a bottleneck and they have to do too much code reviewing (just to keep the project moving) to really be effective at it (60-90 minutes at a time is the limit of effectiveness). Code reviews are a great way to share ideas and knowledge. No matter how much of a superstar your gatekeeper is, they can learn from others on the team. Also, having everyone do code reviews also creates a &quot;collective code ownership&quot; environment -- where people feel that they own the quality of the code (it's not just QA or the gatekeeper). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have a free whitepaper on &quot;&lt;a href=&quot;http://codecollaborator.smartbear.com/docs/BestPracticesForPeerCodeReview.pdf&quot; rel=&quot;nofollow&quot;&gt;Best Practices for Peer Code Review&lt;/a&gt;&quot; that has 11 tips for making code reviews effective. Much of this is the same content from the book that John mentioned in a more distilled form.&lt;/p&gt;&#xA;" OwnerUserId="6403" LastActivityDate="2010-10-27T16:08:11.553" />
  <row Id="15124" PostTypeId="1" AcceptedAnswerId="15141" CreationDate="2010-10-27T16:11:31.450" Score="19" ViewCount="304" Body="&lt;p&gt;Are there any services that 'for a reasonable price' will give and provide good and technical advice on applications. On a lot of projects, I'm usually the only developer, and sometimes, I think some of my work needs to be improved for efficiency, better MVC interactions, etc. It would be great if there was a professional service that actually can and will do such reviews&lt;/p&gt;&#xA;" OwnerUserId="6511" LastActivityDate="2010-10-27T18:33:50.283" Title="Application / Code reviews for lone programmers?" Tags="&lt;code-reviews&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="4" />
  <row Id="15125" PostTypeId="2" ParentId="15103" CreationDate="2010-10-27T16:12:31.970" Score="0" ViewCount="" Body="&lt;p&gt;Is unlikely to commit major crimes against me.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-27T16:12:31.970" />
  <row Id="15127" PostTypeId="2" ParentId="14808" CreationDate="2010-10-27T16:15:35.580" Score="6" ViewCount="" Body="&lt;p&gt;When I understood what it means that &lt;em&gt;references are passed by value&lt;/em&gt; in e.g. Java and Python, and how this differs from &lt;em&gt;objects are passed by reference&lt;/em&gt; in C.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-28T06:37:39.960" LastActivityDate="2010-10-28T06:37:39.960" CommentCount="0" />
  <row Id="15128" PostTypeId="1" AcceptedAnswerId="15146" CreationDate="2010-10-27T16:16:04.347" Score="5" ViewCount="123" Body="&lt;p&gt;One of the products I developed, is really a niche type application (2 or 3 other competitors in the market). Although for the most part, I'm the lone user of these applications, I'm thinking of selling the app right now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Because of the small market share and that it's a niche project would you advise I open or close my application?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6511" LastActivityDate="2010-10-27T19:54:57.867" Title="Pros and cons for open or close sourcing niche type products" Tags="&lt;open-source&gt;&lt;applications&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="1" />
  <row Id="15129" PostTypeId="2" ParentId="15103" CreationDate="2010-10-27T16:18:05.783" Score="0" ViewCount="" Body="&lt;p&gt;Define the quality 'good developer' to mean &quot;smart, good teamwork/communicaton skills, productive, friendly, and a highly skilled programmer and mathematician&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then my chosen requirement would be that the coworker is a good developer.&lt;/p&gt;&#xA;" OwnerUserId="1416" LastActivityDate="2010-10-27T16:18:05.783" />
  <row Id="15130" PostTypeId="2" ParentId="14808" CreationDate="2010-10-27T16:23:52.090" Score="2" ViewCount="" Body="&lt;p&gt;in python or java:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;return ( a == 5 ) ;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;if &lt;code&gt;a == 5&lt;/code&gt; it'll return true, otherwise it returns false. I was so shocked about this, I smiled for a whole hour. Of course you can make it more complex, but that statement right there saved me a $h!t load of if/thens&lt;/p&gt;&#xA;" OwnerUserId="6511" LastActivityDate="2010-10-27T16:23:52.090" CommentCount="1" />
  <row Id="15131" PostTypeId="2" ParentId="15103" CreationDate="2010-10-27T16:28:48.390" Score="0" ViewCount="" Body="&lt;p&gt;Since I'll assume we're talking about programmer-specific qualities:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not being obsessed with best practices to the point of cargo cult programming.  Obviously best practices should &lt;em&gt;usually&lt;/em&gt; be followed, but if the reasons don't apply, or if you understand that you're violating a best practice, but are gaining something more valuable through a well-calculated tradeoff, you should be willing to use your judgement and violate them.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-27T16:28:48.390" />
  <row Id="15132" PostTypeId="2" ParentId="15103" CreationDate="2010-10-27T16:32:07.773" Score="0" ViewCount="" Body="&lt;p&gt;doesn't talk to much. I don't mind intro/extro verts. I don't mind anything, but what I can't stand is when programmers start yapping about a technical detail that is so irrelevant and dragging everyone else's time down the toilet. They got no point, no goal of what they're trying to say, and when it comes to the big picture, what they're saying is so irrelevant.&lt;/p&gt;&#xA;" OwnerUserId="6511" LastActivityDate="2010-10-27T16:32:07.773" />
  <row Id="15133" PostTypeId="2" ParentId="15124" CreationDate="2010-10-27T16:38:52.117" Score="1" ViewCount="" Body="&lt;p&gt;This is not really 'professional', but it may help a little?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Try to explain your design to a 10 year old (and keep their engagement). &lt;/li&gt;&#xA;&lt;li&gt;Have a 5 year old try to break your system (make it a game to make it crash).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5400" LastActivityDate="2010-10-27T16:38:52.117" CommentCount="6" />
  <row Id="15134" PostTypeId="2" ParentId="14808" CreationDate="2010-10-27T16:46:51.753" Score="1" ViewCount="" Body="&lt;p&gt;Finally figuring out how HTML tables worked. In particular, using colspans and rowspans baffled the heck out of me... which cells were supposed to be in which rows? Then again, merging cells in FrontPage Express was so much simpler I didn't really need to know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, it was a real eye-opener to learn that this weird code I had been copy-pasting into lots of HTML documents was a separate language called Cascading Style Sheets, and there was a lot more to it than setting link colours and font styles.&lt;/p&gt;&#xA;" OwnerUserId="456" LastActivityDate="2010-10-27T16:46:51.753" />
  <row Id="15135" PostTypeId="2" ParentId="15103" CreationDate="2010-10-27T16:48:13.963" Score="0" ViewCount="" Body="&lt;p&gt;A desire to constantly improve - not just coding skills but also professionally.&lt;/p&gt;&#xA;" OwnerUserId="6306" LastActivityDate="2010-10-27T16:48:13.963" />
  <row Id="15136" PostTypeId="2" ParentId="12021" CreationDate="2010-10-27T16:50:10.160" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Stack Overflow&lt;/strong&gt;, of course! I'm a long way off the high score, though :(&lt;/p&gt;&#xA;" OwnerUserId="456" LastActivityDate="2010-10-27T16:50:10.160" CommunityOwnedDate="2011-01-12T17:58:32.720" />
  <row Id="15138" PostTypeId="1" CreationDate="2010-10-27T16:58:09.710" Score="7" ViewCount="351" Body="&lt;p&gt;I'm looking into Entity Framework for a new project that I'm going to be taking on and as part of my research into it I'm asking some industry professionals if it's stable and ready for 'real world' implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the running is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;EF&lt;/li&gt;&#xA;&lt;li&gt;NHibernate&lt;/li&gt;&#xA;&lt;li&gt;DevExpress XPO&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I already have a great deal of experience with XPO, but I'm not particularly happy with it. &lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-10-28T00:05:22.077" LastActivityDate="2011-06-02T16:46:35.543" Title="Is Entity Framework ready for production?" Tags="&lt;.net&gt;&lt;orm&gt;&lt;entity-framework&gt;" AnswerCount="6" FavoriteCount="2" />
  <row Id="15140" PostTypeId="2" ParentId="15138" CreationDate="2010-10-27T17:02:11.350" Score="1" ViewCount="" Body="&lt;p&gt;I would think so. I'm using EF4 code-first (CTP) for developing a multi-tenant web application.&lt;/p&gt;&#xA;" OwnerUserId="5564" LastActivityDate="2010-10-27T17:02:11.350" CommentCount="2" />
  <row Id="15141" PostTypeId="2" ParentId="15124" CreationDate="2010-10-27T17:15:07.050" Score="14" ViewCount="" Body="&lt;p&gt;Find someone else who's an indie and needs their code reviewing, and buddy up with them. Sitting next to each other in an office or pub is best, but you can use online paste bin services and videoconferencing if there's no one in your town.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-10-27T17:15:07.050" CommentCount="3" />
  <row Id="15142" PostTypeId="2" ParentId="15138" CreationDate="2010-10-27T17:22:01.603" Score="6" ViewCount="" Body="&lt;p&gt;Yes, but with some caveats:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;It's fully supported by Microsoft, and has a growing community--but being newer than its closest competetor, nHibernate, it still doesn't have quite as mature a community.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Along with having a less mature community, there will be times where a feature is available with EF4 but &lt;em&gt;barely&lt;/em&gt; documented; or EF4 will throw exceptions which Google can't help you with.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It is full-featured when used as Microsoft intends, but in my experience it can be quite difficult to retrofit into an existing system.  Ideally you'll use it in a greenfield scenario with a 100% Microsoft stack.  It's certainly flexible enough to intermingle with other systems, but doing so increases the difficulty substantially.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;However, to reiterate the main point, it is complete and stable enough for production use.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;One &lt;strong&gt;key&lt;/strong&gt; thing to point out, which seems obvious but is often overlooked until it causes pain, is that an ORM works to map from the relational paradigm to the OO-paradigm.  If either of these tiers doesn't follow the rules of its respective paradigm then you'll feel extra hurt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This can go both ways--if you're well versed in the relational/set-based paradigm of SQL and OOP then the ORM will let the two intermingle like butter.  If your database looks like it wants to be OO, and your OO-code looks like it wants to be record-based, then YMMV.&lt;/p&gt;&#xA;" OwnerUserId="5828" LastEditorUserId="5828" LastEditorDisplayName="" LastEditDate="2010-10-27T19:58:10.807" LastActivityDate="2010-10-27T19:58:10.807" CommentCount="2" />
  <row Id="15143" PostTypeId="2" ParentId="15124" CreationDate="2010-10-27T17:26:16.303" Score="4" ViewCount="" Body="&lt;p&gt;There are a lot of software consulting companies out there which will do this kind of service for you. They're not free of course (and often not cheap) but I am working with one now and I find what I learn from them is worth the price.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-10-27T17:26:16.303" CommentCount="4" />
  <row Id="15144" PostTypeId="2" ParentId="15096" CreationDate="2010-10-27T17:28:28.063" Score="0" ViewCount="" Body="&lt;p&gt;It is similar in the standpoint of cloud computing is implemented using virtual machines and Mainframes have been doing that for thirty years or longer. Mainframes also can be physically distributed while supporting a single logical instance. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing that strikes me as very different, is that real cloud solutions provide computing resources on demand. Now, not every cloud environment really supports this but the biggest ones all do in some way. So whether its just seamlessly replicating the application to more app servers as Google does, or by providing API's to add new virtual machines like Amazon does, either way you can immediately get more computing resources. Mainframes you can increase allocations to existing LPARs but bringing on a new LPAR is not trivial and neither is adding more processing power to the system (depends very much though on what you want to add and the system you are using).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clouds are not centralized in the sense of having one large system support all these VMs, they are usually built on a distributed architecture even at the local level (lots of blade servers for example).&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-10-27T17:28:28.063" />
  <row Id="15145" PostTypeId="2" ParentId="15107" CreationDate="2010-10-27T17:37:51.517" Score="1" ViewCount="" Body="&lt;p&gt;It sounds like you're experiencing an irrational* aversion to the loss of your potential career as a Software Tester when you should be thinking about your career as a Software Developer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes you will prove yourself as a developer as you did when you first started as a software tester. This is also the case when ever you change roles or teams or jobs or toolsets. So you can only avoid this by staying with the same role on the same team at the same company using the same tools. Honestly that doesn't appeal to me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally you won't lose the time you spent as Tester. I came from a testing background and you can leverage your testing background when you do your Unit Testing, e.g. understanding how test cases are built, how regression testing is performed, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sub&gt;* Its irrational because you perceive software development as a better career choice when you indicated when you said you gave up on software development and then went to software testing. For some software testing is a better career than software development&lt;/sub&gt;&lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-10-27T17:37:51.517" />
  <row Id="15146" PostTypeId="2" ParentId="15128" CreationDate="2010-10-27T17:45:18.730" Score="5" ViewCount="" Body="&lt;p&gt;An open source project without contributors is really bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the market is small, I doubt you will find any contributor. But I may be wrong. I don't know anything about your market.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;You &lt;strong&gt;must&lt;/strong&gt; do a market study.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you can't afford it, &lt;strong&gt;try to release the software first&lt;/strong&gt;. In free BETA to get more users, but you can do it as a paid edition too already.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As soon as you get users, ask them questions directly (chat with them, don't waste your time with surveys). They will like that very much, and they will always help you to improve your solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask them if they would contribute if you were open source.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Analyze the results&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Decide&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-27T17:45:18.730" CommentCount="2" />
  <row Id="15147" PostTypeId="2" ParentId="15128" CreationDate="2010-10-27T17:46:30.640" Score="3" ViewCount="" Body="&lt;p&gt;I think the answer to this comes down to your personal principles, and how you feel about the concept of open source.  Do you want end-users or admins looking at, and possibly changing your code?  Are you concerned about people lifting your business logic, etc?  My guess is that the risk of exposing intellectual property to your competitors is small, since the market is not already saturated.  The other question is: what will you gain from making it open source?  If the build process is complicated, and your potential customer base is small, users won't want to go through the build process anyway.  Likewise, you probably won't find too many contributors, either.  But if you feel like this is the sort of technology that belongs to the whole world, then I say go ahead and make it open source.&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2010-10-27T17:46:30.640" />
  <row Id="15148" PostTypeId="2" ParentId="14827" CreationDate="2010-10-27T17:54:34.300" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is this typical? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;By Federal statute, we programmers are &quot;exempt&quot; which means that in the absense of a union contract to the contrary, we don't get overtime. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;29 U.S.C. § 213 a(17) any employee who is a computer systems analyst, computer&#xA;  programmer, software engineer, or other similarly skilled worker&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://codes.lp.findlaw.com/uscode/29/8/213&quot; rel=&quot;nofollow&quot;&gt;http://codes.lp.findlaw.com/uscode/29/8/213&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A book that I strongly recommend that all developers read is &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/013143635X&quot; rel=&quot;nofollow&quot;&gt;Death March&lt;/a&gt;. Sadly, &quot;death marches&quot; are the norm and not the exception in software development. As some folks have mentioned above, culture plays a lot in how many hours and how hard you'll work. &lt;a href=&quot;http://c2.com/cgi/wiki?DeathMarch&quot; rel=&quot;nofollow&quot;&gt;Death March&lt;/a&gt; includes a description of some cultures, one of which gets nicknamed &quot;Marine Corps Programmer&quot; - where toughness and suffering is touted as a virtue and not a vice. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-10-27T17:54:34.300" CommunityOwnedDate="2011-01-12T18:52:29.870" />
  <row Id="15149" PostTypeId="2" ParentId="14808" CreationDate="2010-10-27T18:22:24.703" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;one&lt;/strong&gt;: the first time I got threading to really perform&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;two&lt;/strong&gt;:&#xA;when I realized you could use the like operator in reverse in mssql&lt;/p&gt;&#xA;&#xA;&lt;p&gt;select * from matches m where @inputvar like m.pattern&lt;/p&gt;&#xA;&#xA;&lt;p&gt;crazy wheres became simple lookups&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know it isn't a solution you use a ton, but at the time for what I was doing it was pure gold even if I had to generate the patterns on the fly sometimes.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-10-27T18:22:24.703" />
  <row Id="15150" PostTypeId="2" ParentId="15128" CreationDate="2010-10-27T18:24:30.810" Score="1" ViewCount="" Body="&lt;p&gt;I would if the market is made up of users who prefer open source. If the users are not developers, there is going to be an even smaller number of potential contributors. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-27T18:24:30.810" CommentCount="1" />
  <row Id="15151" PostTypeId="2" ParentId="15124" CreationDate="2010-10-27T18:33:50.283" Score="3" ViewCount="" Body="&lt;p&gt;Not really for lone developers, but as a &lt;em&gt;silo&lt;/em&gt; programmer working with other programmers I was able to convince management to allow for cross-training time where we would review each other's code on a rotating basis. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I claimed it would ease problems if a contractor left and there was no one ready to take over his projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We did peer 4:1 reviews once a week. It kind of worked and I did get some good advice from the others. And learned what projects to stay away from.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-27T18:33:50.283" CommentCount="1" />
  <row Id="15152" PostTypeId="2" ParentId="15015" CreationDate="2010-10-27T18:35:37.793" Score="3" ViewCount="" Body="&lt;p&gt;From a hiring manager point of view it looks to me like this is neither the best nor worst of times. Meaning when I try to hire people, I am able to find qualified people but not a glut of them and I haven't heard of any good people staying on the market more than a few weeks. Based on the numbers though it looks like this differs dramatically between industry's and regions though.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-10-27T18:35:37.793" />
  <row Id="15153" PostTypeId="2" ParentId="14808" CreationDate="2010-10-27T18:40:02.750" Score="0" ViewCount="" Body="&lt;p&gt;When I realized that if I write &lt;code&gt;if(5 == x)&lt;/code&gt;  rather than &lt;code&gt;if(x == 5)&lt;/code&gt; I'd catch bugs like &lt;code&gt;if(5 = x)&lt;/code&gt; easier.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-10-27T18:40:02.750" CommentCount="1" />
  <row Id="15155" PostTypeId="2" ParentId="13349" CreationDate="2010-10-27T18:47:30.510" Score="3" ViewCount="" Body="&lt;p&gt;To answer your question, no, software development will not be &lt;strong&gt;completely&lt;/strong&gt; outsourced. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally, if work can be done remotely, then one can shop based on price. Very few companies are organized enough that they have unambigious specs and requirements, and these will be the ones who can benefit most from offshoring. Companies that aren't good at articulating requirements and specs tend to do very poorly when offshoring.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And finally, some organizations will never outsource/offshore their work. Two examples would be the military and finance. Outsourcing your key intellectual property &quot;jewels&quot; would be fatal to most organizations.&lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-10-27T18:47:30.510" CommunityOwnedDate="2011-02-03T13:18:28.527" />
  <row Id="15158" PostTypeId="1" AcceptedAnswerId="15180" CreationDate="2010-10-27T19:09:13.913" Score="7" ViewCount="274" Body="&lt;p&gt;While trying to answer questions on SO site (particularly C++ questions) I find that most of the times one person or the other includes a quote from the standard. I myself have hardly read the language spec. Even when I try to read it, I can't get my head around the language used in the specs. So, my question to become a good developer in a particular language is it essential to read its spec and know all its dusty corners which invoke undefined/implementation defined behavior? &lt;/p&gt;&#xA;" OwnerUserId="123" LastActivityDate="2010-11-05T00:23:24.290" Title="Do you ever read language specs?" Tags="&lt;programming-languages&gt;&lt;specifications&gt;" AnswerCount="15" FavoriteCount="1" />
  <row Id="15159" PostTypeId="1" AcceptedAnswerId="15435" CreationDate="2010-10-27T19:10:05.223" Score="5" ViewCount="232" Body="&lt;p&gt;How many of you have ever used (or even know of)  the Visual Studio Text Templating Engine?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mean, T4 templates have been around for quite some years now. The where initially included in Visual Studio 2005 SDK, and they where moved to Visual Studio 2008 core just before releasing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I want to know is if this is really used out there. I mean, why doesn't the VS team invested in a descent minimal editor for the templates? It doesn't even have syntax couloring!&#xA;I know there are a couple of good T4 editors out there, but as they don't come built in, I tend to think that this is an unknown feature for most developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you ever used T4 templates in any of your projects? I'm really interested in answers that explain how they created their own T4 to accelerate, automate, or generate artifacts for your project.&lt;/p&gt;&#xA;" OwnerUserId="4879" LastActivityDate="2010-11-19T12:45:25.700" Title="Real world T4 usage" Tags="&lt;visual-studio&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="3" />
  <row Id="15161" PostTypeId="2" ParentId="15158" CreationDate="2010-10-27T19:15:43.170" Score="7" ViewCount="" Body="&lt;p&gt;I would say that knowing the spec inside out is not a requirement to knowing how to program in C++ or even to become a excellent C++ programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say though that being able to find information from the spec is important, if there is a part of the language that you are using that isn't very well documented.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is also important knowing where your compiler doesn't meet the spec if you want you code to protable between compilers.&lt;/p&gt;&#xA;" OwnerUserId="2395" LastActivityDate="2010-10-27T19:15:43.170" />
  <row Id="15162" PostTypeId="2" ParentId="15138" CreationDate="2010-10-27T19:15:50.157" Score="5" ViewCount="" Body="&lt;p&gt;We have been using EF in several production applications.  We also have NHibernate in several production apps.  The comment by STW that EF works best &quot;when used as Microsoft intends&quot; is certainly true.  It is also true of NHibernate that it works best when used following the patterns that the NHibernate team intended.  I have no knowledge or experience with XPO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not regret putting NHibernate into production.&lt;br&gt;&#xA;I do not regret putting Entity Framework into production.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the driving factors to use EF was the integration with LINQ.  I know that NHibernate has done a lot of work with LINQ as well but have not had the time to investigate that as yet.&lt;/p&gt;&#xA;" OwnerUserId="6597" LastActivityDate="2010-10-27T19:15:50.157" CommentCount="1" />
  <row Id="15163" PostTypeId="2" ParentId="15138" CreationDate="2010-10-27T19:17:00.533" Score="2" ViewCount="" Body="&lt;p&gt;I haven't actually used the full stack, but we use it piecemeal in our product and it seems quite mature, though we had to adapt some pieces for our needs.&lt;/p&gt;&#xA;" OwnerUserId="6594" LastActivityDate="2010-10-27T19:17:00.533" />
  <row Id="15164" PostTypeId="2" ParentId="15158" CreationDate="2010-10-27T19:17:54.153" Score="3" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://www.lispworks.com/documentation/HyperSpec/Front/&quot; rel=&quot;nofollow&quot;&gt;Common Lisp Hyperspec&lt;/a&gt; is a really useful bit of documentation. I refer to it a &lt;em&gt;lot&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-27T19:17:54.153" CommentCount="3" />
  <row Id="15165" PostTypeId="2" ParentId="15158" CreationDate="2010-10-27T19:26:32.983" Score="4" ViewCount="" Body="&lt;p&gt;No it not essential to be a good developer in a particular language. However it helps a ton when answering a question in a definitive way. So StackOverFlow users use it a lot. &lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-10-27T19:26:32.983" CommentCount="1" />
  <row Id="15166" PostTypeId="2" ParentId="15128" CreationDate="2010-10-27T19:28:55.747" Score="1" ViewCount="" Body="&lt;p&gt;As has been mentioned, a niche application may have trouble finding contributors and an open source project without contributors is bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can always easily go from closed source to oepn source, but once opened the source cannot be closed.  At least, not the version that was opened.  You should keep that in mind as you move forward.  Also, should you decide to go open source, carefully read understand and evaluate the various open source licenses and carefully chose the one that is right for your project and you.&lt;/p&gt;&#xA;" OwnerUserId="6597" LastActivityDate="2010-10-27T19:28:55.747" CommentCount="1" />
  <row Id="15168" PostTypeId="2" ParentId="15158" CreationDate="2010-10-27T19:37:20.280" Score="0" ViewCount="" Body="&lt;p&gt;I don't think not reading language specs themselves keeps anyone from being a good programmer, but reading them certainly wouldn't hurt. Reading specs straight through is boring as heck, and I don't blame anyone for not doing so, but reading specs in pieces when working on related items isn't so bad and I find I retain more over time doing it that way anyway.&lt;/p&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2010-10-27T19:37:20.280" />
  <row Id="15169" PostTypeId="2" ParentId="15158" CreationDate="2010-10-27T19:45:15.117" Score="0" ViewCount="" Body="&lt;p&gt;I learned C# from the language spec, which I believe was floated at least a couple of years before Visual Studio.NET was released. But that was more of a matter of just taking note of what was different from Java - I don't know if it would be such a good way to learn a language that was a lot different from what I already knew.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-10-27T19:45:15.117" />
  <row Id="15171" PostTypeId="2" ParentId="14873" CreationDate="2010-10-27T19:51:37.280" Score="2" ViewCount="" Body="&lt;p&gt;Perhaps on the decline, but certainly not extinct.  My current job is leading a small dev team for a specialized line-of-business suite of systems that are used internally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have outsourced some specific development projects to speed up time-to-market.  While we have made this work, it has not worked as easily as management wanted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Small teams of talented people are hard to beat for productivity.  The 'talented' part being the key.  I do not beleive that this type of team will disappear, I certainly hope not.&lt;/p&gt;&#xA;" OwnerUserId="6597" LastActivityDate="2010-10-27T19:51:37.280" />
  <row Id="15172" PostTypeId="2" ParentId="15159" CreationDate="2010-10-27T19:52:05.887" Score="1" ViewCount="" Body="&lt;p&gt;One of my peer groups migrated a lot of custom templates from Codesmith to T4. They like it pretty well, but they have a couple of people who have been modifying and creating custom templates for years so the lack of tools and polish does not affect them so much. In my team we still use Codesmith.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-10-27T19:52:05.887" />
  <row Id="15173" PostTypeId="2" ParentId="15158" CreationDate="2010-10-27T19:54:26.347" Score="0" ViewCount="" Body="&lt;p&gt;I never read specs because I mostly use newer languages that don't have a formal, legalese spec yet.  My main languages are Python and D and AFAIK neither one has a formal spec, i.e. one whose intended audience is language lawyers/implementers, not average users.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-27T19:54:26.347" CommentCount="1" />
  <row Id="15175" PostTypeId="2" ParentId="15128" CreationDate="2010-10-27T19:54:57.867" Score="1" ViewCount="" Body="&lt;p&gt;Pros:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;people can contribute&lt;/li&gt;&#xA;&lt;li&gt;possibly keep a buzz going&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Cons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;your app is now free&lt;/li&gt;&#xA;&lt;li&gt;people can rehack your code without your permission&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I generally feel that academic code should be stringently open source. I feel that non-academic work should be able to be sold without guilt, with a caveat - if there is seminal work involved, it is a public service to publish the sketch of the seminal work and/or publish the source when the product is discontinued.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-27T19:54:57.867" />
  <row Id="15178" PostTypeId="2" ParentId="14808" CreationDate="2010-10-27T20:07:44.763" Score="1" ViewCount="" Body="&lt;p&gt;The very first time I wrote a 'hello world' app from scratch without a reference manual. I smiled for hours feeling like the smartest guy on the planet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still makes me grin typing this.&lt;/p&gt;&#xA;" OwnerUserId="6479" LastActivityDate="2010-10-27T20:07:44.763" />
  <row Id="15179" PostTypeId="2" ParentId="15158" CreationDate="2010-10-27T20:10:05.073" Score="1" ViewCount="" Body="&lt;p&gt;I do read language standards on occasion, but not everybody does.  Certainly it's possible to be a very good developer without ever touching one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you need is the knowledge of the parts of the language you're going to use, and somewhere to go to find out about what the stuff you don't understand in other people's programs does.  You don't need to know exactly what constitutes undefined behavior if you make sure you never go near it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To give an example, in C++ you could avoid starting any identifier name you write with an underscore.  There are rules as to what names starting with underscores are reserved for the implementation with what linkages that you could learn, or you could just stop writing your own identifiers with leading underscores.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-27T20:10:05.073" />
  <row Id="15180" PostTypeId="2" ParentId="15158" CreationDate="2010-10-27T20:17:28.020" Score="3" ViewCount="" Body="&lt;p&gt;As one of the guilty parties, I'll add my 2¢ worth. No, I don't think it's necessary. Unfortunately, in C++ it's &lt;em&gt;closer&lt;/em&gt; to necessary than almost anybody would like -- i.e., as Bjarne put it, C++ is &quot;expert friendly&quot;. You need to be aware of a lot more details than anybody would like to be able to use it well. While probably true to &lt;em&gt;some&lt;/em&gt; degree in almost any case, this is much less true in many (most?) other languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other side of it is that a lot of times people are asking about relatively subtle details of the language that, quite frankly, darned few people really know off the top of their head, so those of us who provide answers about them often have to look up the details to be sure we're right. I also find that quoting from the standard has a tendency to prevent a lot of arguments -- even when I do know an answer, it'll frequently be questioned (to at least some degree) if I just say: &quot;here's how it is.&quot; If you quote the standard, far fewer people will argue, so it can save time and effort in the long run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately, I think knowing the standard (or the dark corners of the language) really well is less important to programming per se than to mentoring others about the language -- even cases where you just say &quot;don't go there!&quot; About the only programming to which it's important is writing code that actually works with the language (tokenizing, parsing, analyzing, etc.)&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-27T20:17:28.020" />
  <row Id="15183" PostTypeId="2" ParentId="15158" CreationDate="2010-10-27T20:27:01.063" Score="0" ViewCount="" Body="&lt;p&gt;Once. I read the Java Spec. The only reason I read it was I was competing nationally in Java Programming for FBLA (Future Business Leaders of America) and thought it would give me an edge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was helpful, but the ROI (return on investment) was too low for me to do it again.&lt;/p&gt;&#xA;" OwnerUserId="3542" LastActivityDate="2010-10-27T20:27:01.063" />
  <row Id="15184" PostTypeId="2" ParentId="4693" CreationDate="2010-10-27T20:27:55.260" Score="1" ViewCount="" Body="&lt;p&gt;To people who do not know how to troubleshoot (anything), those that do seem to be arrogant, especially when we laugh at them trying to suggest solutions to a problem by randomly poking at it. Since programmers are, by nature, expert troubleshooters (even the bad programmers), our &quot;way of looking at things&quot; is viewed as arrogant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not, &quot;we're not arrogant, we're just better.&quot; This is, &quot;we're not arrogant, but we are perceived as arrogant.&quot;&lt;/p&gt;&#xA;" OwnerUserId="4688" LastEditorUserId="2953" LastEditorDisplayName="" LastEditDate="2010-11-03T05:46:20.123" LastActivityDate="2010-11-03T05:46:20.123" CommunityOwnedDate="2010-10-27T20:27:55.260" CommentCount="2" />
  <row Id="15186" PostTypeId="2" ParentId="7566" CreationDate="2010-10-27T20:31:06.067" Score="4" ViewCount="" Body="&lt;p&gt;I've never worked at a place that scored higher than a 4 on the Joel test. When I go, I have a small packet I bring with me which includes another copy of my resume (I've come across recruiters putting my name on top of someone else's resume) as well as a bunch of questions, some of which were the joel test shuffled around. No one ever mentioned that they recognized the questions.&lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-10-27T20:31:06.067" CommentCount="4" />
  <row Id="15194" PostTypeId="2" ParentId="15096" CreationDate="2010-10-27T20:46:11.743" Score="0" ViewCount="" Body="&lt;p&gt;If you listen to &lt;a href=&quot;http://www-03.ibm.com/systems/z/news/announcement/20090915_annc.html&quot; rel=&quot;nofollow&quot;&gt;IBM's Marketing&lt;/a&gt; then no, its not a bad anology.&lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-10-27T20:46:11.743" CommentCount="1" />
  <row Id="15195" PostTypeId="2" ParentId="14706" CreationDate="2010-10-27T21:00:39.520" Score="2" ViewCount="" Body="&lt;p&gt;As a manager - I really, really, don't like being asked to make my staff work overtime, for all the reasons noted by others. Ultimately my firm pays developers to be productive, not tired.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, sometimes incompetent project managers or salespeople will overcommit a development team. Some ideas I've successfully used in these situations include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Making work fun. Seriously: when there's extra commitment needed, that's when the foosball table, games console, free coffee and whathaveyou make a real difference. I want my staff to come to the office and enjoy themselves, and ideally not even notice outrageous demands from senior management. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Making work easy. Make sure that everyone's in &quot;flow&quot; for as long as possible. If that means spending more capital on good hardware, then fine, I'll earn back what state-of-the-art kit earns easily in six months.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Making sure developers do development. I don't want my expensive developers wasting time with unnecessary documentation, timesheets, or other pointless make-work nonsense. Some of this is hard to avoid (HR, I'm looking at you) but I'll directly intercede if I catch timewasters getting in the way of my developers.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'll reward those developers that do show extra commitment by committing to them in return. Their commitment is perfectly feasible in our regular working hours; in fact I'd rather work with someone who comes in on time, leaves on time and does a fabulous, focused job than a workaholic who winges about how nobody recognises the extra hours they're working. In return I'll snaffle extra holiday time, overlook the odd long lunchtime, and other things that I don't have to account for -- but which I know from my own past experience make a difference. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Better watch out if you don't pull your weight, though. The team will have you for breakfast, not me!&lt;/p&gt;&#xA;" OwnerUserId="125" LastActivityDate="2010-10-27T21:00:39.520" />
  <row Id="15196" PostTypeId="2" ParentId="11188" CreationDate="2010-10-27T21:04:17.520" Score="2" ViewCount="" Body="&lt;p&gt;I think its true, in some environments Agile is used as an excuse for no discipline.  The real problem is we've lost sight of why we have any methodology.  Personally, I feel the methodology is an architectural issue in the sense that the architecture of the system is supposed to address the non-functional, quality attributes, the methodology should be addressing some of those same attributes (maintainability, development productivity, knowledge transfer, et al.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Viewing the methodology as a control for the process attributes implies a couple of things:  1)  without metrics we cannot compare the effectiveness of one methodology over another, 2) an active decision needs to be made about what attributes are important (delivery time vs code quality vs knowledge transfer).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without having both metrics and a tangible goal, we simply choose a methodology as our &quot;magic feather&quot; that if we hold on to tight, we'll be able to deliver software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now the nay-sayers of Agile, XP, Scrum, etc talk about the fragility of that particular category of methodologies.  The argument being:  why use a methodology that can be sabotaged by one individual lacking the discipline to follow all the rules?  The question is a valid one; however, that is the symptom, not the cause.  If an accurate and meaningful (that's the hard part) set of process metrics are defined, tested, and timely feedback given I think we'll discover the particular methodology has little to do with success. (Anecdotally speaking I've seen successful projects using a myriad of methodologies and twice as many fail using the same methodologies)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what are the metrics?  They vary from project to project, team to team, and time to time.  Useful for when the delivery schedule is important, one that I've personally used is estimation skill and quality.  Most developers can accurately estimate tasks that are a week long or less.  So one approach is to divide up the project into tasks one developer-week long and track who made the estimation.  As the project goes along, they may change their estimates.  After a task is complete, if its off by more than 10% (1/2 a day) we treat this the same as a bug - we identify why the estimate was off (i.e. a database table wasn't considered), identify the corrective action (i.e. involve the DBA in the estimation), and then move on.  Using this information we can create metrics such as # of estimation bugs per week, # of bugs per developer, # of bugs per KLOC, # of bugs per developer-KLOC, etc.  Posting these numbers on the team wiki provides serious social pressure and from the managerial perspective, after a couple of weeks, you can generate a predictive model of subsequent development weeks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what?  That's when the methodologies come in - if you have a predictive model that fails to meet the process qualities, you can choose to add or remove some aspect of the methodology and see how it affects your model.  Granted, no one wants to play with a development process for fear of failure, but we're already failing at a consistently high and predictable rate.  By making individual changes and measuring the result you may find that Agile is the perfect methodology for your team, but you could just as easily find RUP, waterfall, or just a hodge-podge of best practices to be ideal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my suggestion is lets stop worrying about what we call the process, put in place checks that are relevant to our development process goals, and experiment with different techniques to improve that process.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-27T21:04:17.520" CommunityOwnedDate="2011-03-19T17:28:35.220" CommentCount="1" />
  <row Id="15197" PostTypeId="2" ParentId="14831" CreationDate="2010-10-27T21:05:52.417" Score="4" ViewCount="" Body="&lt;p&gt;I would start with &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms229014.aspx&quot; rel=&quot;nofollow&quot;&gt;Design Guidelines for Exceptions&lt;/a&gt; its short and includes DO, DO NOT and AVOID. It also gives the reasons why. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your example case the revelvent section would be &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms229049.aspx&quot; rel=&quot;nofollow&quot;&gt;Wrapping Exceptions&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And would expect it to be written this way. Note that it catches a specific exception and attempts to add information so that a more meaningful message is propagated. Also note that the inner exception is still maintained for logging purposes&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//In DataLayer&#xA;&#xA;try&#xA;{&#xA;XDocument xd_XmlDocument = XDocument.Load(&quot;systems.xml&quot;);&#xA;}&#xA;catch(FileNotFoundException ex)&#xA;{&#xA;        throw new TransactionFileMissingException(&#xA;                     &quot;Cannot Access System Information&quot;,ex);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;&#xA;Kanini asks is it even right to have this exception block in the Data Layer or should the checking the file be available to Business Layer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well first I'd like to point out that the rationale for Wrapping Exceptions is this&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Consider wrapping specific exceptions&#xA;  thrown from a lower layer in a more&#xA;  appropriate exception, if the lower&#xA;  layer exception does not make sense in&#xA;  the context of the higher-layer&#xA;  operation.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;So if you feel that have a higher layer should know about the file at all then your data layer should look like this&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//In DataLayer&#xA;&#xA;XDocument xd_XmlDocument = XDocument.Load(&quot;systems.xml&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;No Try No Catch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I feel that unless your data layer can do something usefull like use a default systems.xml that is an assembly resource, doing nothing or wrapping the exception is a good bet since your logging will tell you what method and what file was the problem. (&lt;code&gt;throw ex&lt;/code&gt; in this case or the preferred &lt;code&gt;throw&lt;/code&gt; does too but adds no value). This means that once identified you'll be able to fix the problem quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an asside this particular example also has the following problem in that XDocument.Load can throw four execeptions&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ArgumentNullException&lt;/li&gt;&#xA;&lt;li&gt;SecurityException&lt;/li&gt;&#xA;&lt;li&gt;FileNotFoundException    &lt;/li&gt;&#xA;&lt;li&gt;UriFormatException&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;We cannot safely guarantee that the following code won't throw and FileNotFoundException, simply because it could be there when we do existence check and gone when we do load. Having that available to the business layer would not help. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; if (File.Exists(&quot;systems.xml&quot;)) &#xA;     XDocument.Load(&quot;systems.xml&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;SecurityException is even worse because among other reasons for this being thrown if another process grabs has an exclusive file lock you'll won't get the error until you try an open it for reading because there's no File.CanIOpenThis() method. And if such a method existed you still have the same problem as with File.Exists&lt;/p&gt;&#xA;" OwnerUserId="162" LastEditorUserId="162" LastEditorDisplayName="" LastEditDate="2010-11-02T05:02:34.470" LastActivityDate="2010-11-02T05:02:34.470" CommentCount="5" />
  <row Id="15200" PostTypeId="2" ParentId="260" CreationDate="2010-10-27T21:30:09.490" Score="2" ViewCount="" Body="&lt;p&gt;If I were forced to choose between the two, I would choose math. My reasoning is that math builds logic and critical thinking skills (thinking outside the box, if you will). Also, Programming requires that you simply find a way through the problem, but not how to prove that that way is correct. Math does. Finally, math skills open your eyes to the world, while programming limits vision to the area you're working on.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-10-27T21:30:09.490" />
  <row Id="15205" PostTypeId="2" ParentId="14200" CreationDate="2010-10-27T21:37:15.720" Score="1" ViewCount="" Body="&lt;p&gt;It depends on what you want to learn. Is Crystal Reports essential for you ?&#xA;Otherwise for learning .Net it is quite full featured. Granted it doesn't comer with built in MS Test framework but learning unit testing with NUnit and using the NUnit GUI runner is quite easy anyway. The other thing is source control integration but that can be done externally (e.g. Subversion and Tortoise) quite easily.&lt;br&gt;&#xA;As a perspective when I was doing C++ programming on Visual Studio 6 there was no free edition to learn with. The express editions are a great option for today's students and learners.&lt;/p&gt;&#xA;" OwnerUserId="3414" LastActivityDate="2010-10-27T21:37:15.720" CommentCount="4" />
  <row Id="15206" PostTypeId="2" ParentId="15094" CreationDate="2010-10-27T21:46:57.127" Score="0" ViewCount="" Body="&lt;p&gt;I'm not sure this is relevant, but it is interesting&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In The Mythical Man Month, Fred Brooks mentions studies comparing assembly and higher level languages. They found that programmers produced the same amount of instructions per year in both, but the instructions for a high level language were equal to multiple assembly language instructions. So by switching to the high level language, the programmers achieved an increase whatever the average multiple of assembly instruction to language instruction in productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same should be true of C vs Java/C#, I don't know the real difference between C# and Java. But every time you increase the level of abstraction, you will increase productivity. However I also think that it will reduce control over what the machine is actually doing. You have to trust that the language is doing what you want. For instance in high performance software, garbage collection is unacceptable, except if you have complete control over when it is run, and how long it runs for.&lt;/p&gt;&#xA;" OwnerUserId="5682" LastActivityDate="2010-10-27T21:46:57.127" />
  <row Id="15207" PostTypeId="1" AcceptedAnswerId="15260" CreationDate="2010-10-27T21:55:42.600" Score="6" ViewCount="90" Body="&lt;p&gt;Are there any recommendations for book(s) that are largely agnostic (with examples of MQ implementations is fine) on vendor but go to great details on the architecture, management, nomenclature, atomicity, durability, patterns, and logical deployments on Message Queue systems?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Surely there are enough shared concepts between MQ Series, MSMQ, SysV IPC (OK, that might be stretching it), RabbitMQ, &amp;amp;c &amp;amp;c?&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-10-28T04:29:51.557" Title="Product agnostic book on Message Queues?" Tags="&lt;books&gt;&lt;message-queue&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="15208" PostTypeId="1" AcceptedAnswerId="15225" CreationDate="2010-10-27T21:59:35.503" Score="4" ViewCount="277" Body="&lt;p&gt;I'm in the initial planning phase of a re-write project and I'm deciding between silverlight/silverlight oob/wpf. TL;DR at the end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a LOB app that handles leads/customers/appointment calendars. Not too complicated. I'm independently researching these options elsewhere, but I thought I'd ask around. Some rough initial requirements/foreseeable problems are:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have to be able to call an exe on the system with commandline args (sip phone).&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Makes SL a problem&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The userbase is distributed and I want to limit the traffic that goes over the wire as much as possible and avoid some nasty concurrency issues&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I can see this being a problem using WPF&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Software deployment/updating has to be &lt;em&gt;dead simple&lt;/em&gt;. Some users are highly non-technical (see: 70 years old, on a computer for the first time)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;This isn't a huge problem now with the ClickOnce app we are replacing, and I have control over the machines that it gets used on. However, it's simpler for users if they don't even have to click the clickonce &quot;Install&quot; button. I don't know how this is handled with Silverlight OOB.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The company is planning a hard expansion in 12 months so hardware deployment should be fast/easy. The idea is to get an internet connection at a new location, plug in some computers and be able to work without the need for dedicated IT people or server setup. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Makes SL appealing&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Integration with other services (financial software, asterix server) isn't an immediate goal, but it is an eventual goal to be part of the system. This is made much simpler/more efficient if a single service is setup to integrate with those secondary services and doesn't have to transfer all of that data over the wire&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Makes SL appealing&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Making multiple 'versions' is out the window. I don't know what it's like maintaining a silverlight + silverlight oob version (if there's even any problems)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Might make WPF a better option.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;TL;DR: From my vantage point, a silverlight app makes the best sense for 90% of the users - the other 10% can't use it because they need to run an exe. Silverlight OOB might be a happy middleground but I don't know at the moment what the execution model for it is like (is there still a concept of server-side code? If so, that would possibly be ideal) and I don't know how deployment/updating works for it.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-27T23:49:24.917" Title="I need help deciding between silverlight/silverlight out-of-browser/wpf" Tags="&lt;wpf&gt;&lt;silverlight&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="15209" PostTypeId="1" AcceptedAnswerId="15212" CreationDate="2010-10-27T22:06:09.210" Score="7" ViewCount="237" Body="&lt;pre&gt;&lt;code&gt; &amp;lt;body&amp;gt;  &#xA;  &amp;lt;!-- wrapper --&amp;gt;  &#xA;  &amp;lt;div id=&quot;wrapper&quot;&amp;gt; &#xA;   &amp;lt;!-- title --&amp;gt;&#xA;   &amp;lt;div id=&quot;title&quot;&amp;gt;&amp;lt;img src=&quot;title.png&quot; alt=&quot;&quot; /&amp;gt;&amp;lt;/div&amp;gt;&#xA;&#xA;   &amp;lt;!-- form wrapper --&amp;gt;&#xA;   &amp;lt;div id=&quot;form_wrapper&quot;&amp;gt;&#xA;&#xA;    &amp;lt;!-- form --&amp;gt;&#xA;    &amp;lt;form action=&quot;thankyou.php&quot; method=&quot;POST&quot;&amp;gt;&#xA;     &amp;lt;!-- ... ... --&amp;gt;&#xA;    &amp;lt;/form&amp;gt;&#xA;    &amp;lt;!-- /form --&amp;gt;&#xA;   &amp;lt;/div&amp;gt;&#xA;   &amp;lt;!-- /form wrapper --&amp;gt;&#xA;  &amp;lt;/div&amp;gt;&#xA;  &amp;lt;!-- /wrapper --&amp;gt;&#xA; &amp;lt;/body&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I can almost understand the &lt;code&gt;&amp;lt;!-- /wrapper --&amp;gt;&lt;/code&gt; at the end, because it's so far from the start of the tag/pair...  but seriously, what's the point of the opening comment lines?  I wouldn't ask the question if I didn't see this &lt;em&gt;all the time&lt;/em&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel as if I'm missing something.  Maybe there's some unwritten best-practice involved, though I fail to comprehend what it could possibly be.  More than likely it's just obsessive-compulsive behavior.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you guys normally comment your markup, if at all?&lt;/p&gt;&#xA;" OwnerUserId="5497" LastActivityDate="2010-10-27T23:36:24.330" Title="&lt;!-- open --&gt; Why do so many developers do this in their HTML? &lt;!-- /close --&gt;" Tags="&lt;comments&gt;&lt;html&gt;" AnswerCount="3" CommentCount="5" />
  <row Id="15210" PostTypeId="2" ParentId="15209" CreationDate="2010-10-27T22:11:36.690" Score="3" ViewCount="" Body="&lt;p&gt;Usually my markup is generated dynamically so comments are not included... but when I do write markup I will have:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;!-- start BLOCK--&amp;gt; &#xA;  html markup &#xA;&amp;lt;!-- close BLOCK--&amp;gt; &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It makes it easier for me to see where major blocks/divs are within my code. &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-10-27T22:11:36.690" CommentCount="1" />
  <row Id="15211" PostTypeId="2" ParentId="15107" CreationDate="2010-10-27T22:11:59.113" Score="1" ViewCount="" Body="&lt;p&gt;Take the opportunity.  It sounds like you want to, and there's every career reason why you should.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I began as a hardware and system maint guy, and moved to tester five years ago with the specific objective of shifting to dev eventually - which I now have part-time.  I'm not as good a developer as guys who've been coding longer - but I'm well paid and critical to several of the company's projects, because I have a good overview and understanding of all our work.  (And I'm the go-to guy when we need development work on our test tools!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So take the opportunity.  Yes, you'll be a newbie.  So?  If you're &lt;em&gt;never&lt;/em&gt; the newbie, it means you &lt;em&gt;never learn anything new&lt;/em&gt; - a fail in any career.  Your test experience is a plus, not a drawback.  (And if you decide you don't like it, move back - your dev experience will look good on applications for test jobs too.  Knowing where the bugs are &lt;em&gt;likely&lt;/em&gt; to be is critical.  My boss is my boss not because her code is amazing, but because when trouble strikes she invariably goes straight to the problem.)&lt;/p&gt;&#xA;" OwnerUserId="6565" LastActivityDate="2010-10-27T22:11:59.113" />
  <row Id="15212" PostTypeId="2" ParentId="15209" CreationDate="2010-10-27T22:15:47.163" Score="3" ViewCount="" Body="&lt;p&gt;Some times CSS class names are generic and aren't specifically named. For example, what if you had&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;!--Code before--&amp;gt;&#xA;&#xA;&#xA;&#xA;&amp;lt;!--Column one--&amp;gt;&#xA;&amp;lt;div class=&quot;center-bold&quot;&amp;gt;&#xA;&#xA;&#xA;&#xA;&#xA;    &amp;lt;!--Tons of lines--&amp;gt;&#xA;&#xA;&#xA;&#xA;&#xA;&amp;lt;/div&amp;gt;&#xA;&amp;lt;!--End column--&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Wouldn't it be nice to know what your starting? I surely wouldn't want to scroll all the way to the end to find out that the whole div was a column. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-10-27T22:15:47.163" CommentCount="3" />
  <row Id="15213" PostTypeId="2" ParentId="15208" CreationDate="2010-10-27T22:16:54.167" Score="2" ViewCount="" Body="&lt;p&gt;Your analysis is very good.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only other thing that I would mention is that not ALL of the framework is available to you in a Silverlight application.  That restriction MAY tilt your choice towards WPF, but you'll need to see how that restriction applies or not to your application needs.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-10-27T22:16:54.167" CommentCount="1" />
  <row Id="15214" PostTypeId="2" ParentId="15094" CreationDate="2010-10-27T22:17:47.590" Score="1" ViewCount="" Body="&lt;p&gt;What is productivity? What is &lt;em&gt;product&lt;/em&gt;, even? No one knows, mathematically speaking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;KLoC? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cyclomatic complexity?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Function points?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe that you would have to look at the business level and run percentile comparisons with other programmers doing similar work, then measure the features delivered per programmer. Those are very sophisticated and subtle points to be able to statistically measure and retain meaning.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-10-27T22:17:47.590" />
  <row Id="15215" PostTypeId="2" ParentId="15207" CreationDate="2010-10-27T22:23:08.913" Score="3" ViewCount="" Body="&lt;p&gt;I think the book you are looking for would be a valuable resource but in my experience I've only ever seen books available as they apply to one vendor or another.  I've had a lot of experience with IBM MQ and a fair amount with MSMQ and have looked for references from time to time but have never come across what you are looking for.  I'll be interested to see if anyone else has a different experience.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-10-27T22:23:08.913" />
  <row Id="15216" PostTypeId="1" AcceptedAnswerId="15253" CreationDate="2010-10-27T22:24:07.033" Score="14" ViewCount="699" Body="&lt;p&gt;I'm planning to take an &lt;a href=&quot;http://programmers.stackexchange.com/questions/11425/burned-out-on-programming-and-given-up&quot;&gt;extended career break/possibly change&lt;/a&gt; next year, and am planning to quit such that I'd be free for the Christmas/New Year holiday period (already lining up personal and career re-training activities tightly following up, so it's hard to extend the timing now).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's my dilemma: I was originally planning to do it at that time because the cusp of the year is generally a relatively quiet period in the company, and a good time to quit without making a mess of the group's projects and schedules. But as it turns out, it's gotten very busy and management is currently scheduling lots of work for us for the next few months - a lot of it dependent on the full manifest of experienced people (incl. myself) being here. When I give notice, all this will come crashing down. - In effect, I'm worried that it'll be a case of &quot;&lt;em&gt;burning bridges due to leaving at a bad time&lt;/em&gt;&quot;, when it hurts the company and the group.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm thinking that the way to cushion this is to speak up now - give almost 2 months notice instead of the required 1, that way things can be re-scheduled better to include my handover. Obviously, this would be going over and above what is contractually required, and it has some risks (not getting the Xmas bonus, etc), but OTOH, it seems like a nice gesture to save the company (and especially my group) lots of stress and hassle. And possibly leave with a better reference for doing something over and above and responsible - as opposed to dropping the projects on the floor with minimum notice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I'm just wondering, is this something that's done? Or would it be an odd thing to do? Seeing the scheduling of upcoming work now is like watching an impending train wreck, knowing how dependent some of the work is on my being here. At the very least, I feel bad for my group, and would like to try and make it as smooth as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: Thanks all. I've decided to go with essentially the &quot;by the book&quot; approach, and give the required 4 weeks notice when the time comes. I'll be nice and stick around up to an extra week or two if asked &quot;can you stay another week or two for a more comprehensive handover?&quot; or something along those lines. I figure I don't really have any fixed date I have to be gone on as such, so having a flexible last date is fine. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: I handed in my resignation. Basically went by the book, other than instead of giving a totally fixed final day, I gave a nominal one (and mentioned that I'm flexible re: staying a bit longer for the handover if needed). I think that was appreciated. :)&lt;/p&gt;&#xA;" OwnerUserId="5064" LastEditorUserId="5064" LastEditorDisplayName="" LastEditDate="2010-12-12T23:52:06.447" LastActivityDate="2010-12-12T23:52:06.447" Title="Giving more notice than required when quitting at a busy time?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;career-advice&gt;" AnswerCount="10" CommentCount="3" FavoriteCount="3" />
  <row Id="15217" PostTypeId="2" ParentId="15216" CreationDate="2010-10-27T22:29:27.247" Score="8" ViewCount="" Body="&lt;p&gt;Yes, it would be a nice thing to do for the company.  But that's the only thing it would be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are suffering burnout, it means that, no matter how much notice you give them, they still won't be ready for you to leave.  It's because of the way the company does business that you are burned out.  My guess is that it's an endless parade of fighting fires.  No matter how many fires you fight before you leave, there will still be more fires left to put out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's hard for me to be sympathetic for companies that do business this way.  If they really wanted to make things better, they would.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-10-27T22:29:27.247" />
  <row Id="15218" PostTypeId="2" ParentId="15216" CreationDate="2010-10-27T22:36:18.720" Score="2" ViewCount="" Body="&lt;p&gt;If you give notice now that is plenty of time. They have two months to find a suitable replacement which is enough. Management take it bad when someone leaves no matter the situation so don't worry, it's not your company.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-27T22:36:18.720" />
  <row Id="15219" PostTypeId="2" ParentId="14827" CreationDate="2010-10-27T22:36:48.877" Score="8" ViewCount="" Body="&lt;p&gt;I have never had a contract for more than 30hrs/week. I have certainly worked more than that, but never for free.&lt;br&gt;&#xA;Usually I have about one week of overtime available, so that nobody can complain when I need a day off to do something else. If it gets more, &lt;strong&gt;&lt;em&gt;I try to work less to make up for it&lt;/em&gt;&lt;/strong&gt;. I have taken &lt;strong&gt;&lt;em&gt;up to 5.5 months off&lt;/em&gt;&lt;/strong&gt; to compensate for accumulated overtime, but twice in the last decade I had to have a boss &lt;strong&gt;&lt;em&gt;pay me for it&lt;/em&gt;&lt;/strong&gt;, because they couldn't afford me being away for several weeks of accumulated overtime.&lt;br&gt;&#xA;I might not exactly be a guru, but I'm certainly not bad enough to work without whoever I work for paying for every hour I work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;OTOH, I cannot &quot;switch off&quot; my thoughts about work when I leave work. (Though having to commute an hour each way does help with that. When I rode my bike for 4mins to get to work and back home, I had a much harder time doing the mental transition.) I'm working on a laptop and take that machine home so that, when I have a thought at 10pm or on a Sunday afternoon, I can check it out. Also I do check my work mail regularly and have occasionally responded to mails from home. Also, I will have a look at the CI results when I come home after having checked in something right before I left work.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I currently work 4 days/week, and I sometimes work for a few hours from home on the fifth day, in order to &lt;strong&gt;&lt;em&gt;offload any thoughts&lt;/em&gt;&lt;/strong&gt; about the current project that piled up and threaten to burden me. However, I always count half the time I work from home against my weekly 30hrs, so I'm not doing this for free. (I only charge half the time from home because IMO creating good software is 50% communication with the others in the project, and my ability to communicate is limited when I'm working from home or after hours.) &lt;/p&gt;&#xA;" OwnerUserId="1512" LastEditorUserId="1512" LastEditorDisplayName="" LastEditDate="2011-01-12T16:18:21.793" LastActivityDate="2011-01-12T16:18:21.793" CommunityOwnedDate="2011-01-12T18:52:29.870" CommentCount="1" />
  <row Id="15220" PostTypeId="2" ParentId="15216" CreationDate="2010-10-27T22:37:06.157" Score="5" ViewCount="" Body="&lt;p&gt;That's a very nice gesture on your part and I would hope that your boss(es) would appreciate it as well.  If they don't, then that's your cue to stop worrying about how they'll manage without you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They will survive without you.  Those that are left will have a lot of extra work but that's your boss' problem.  &lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-10-27T22:37:06.157" />
  <row Id="15221" PostTypeId="2" ParentId="12992" CreationDate="2010-10-27T22:38:43.960" Score="1" ViewCount="" Body="&lt;p&gt;If you are a business startup, there is also BizSpark &lt;a href=&quot;http://www.microsoft.com/bizspark/&quot; rel=&quot;nofollow&quot;&gt;http://www.microsoft.com/bizspark/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6518" LastActivityDate="2010-10-27T22:38:43.960" />
  <row Id="15222" PostTypeId="2" ParentId="12172" CreationDate="2010-10-27T22:41:59.087" Score="0" ViewCount="" Body="&lt;p&gt;I am also interested in any opinions on Erls new book SOA with .net. I read his SOA Design Patterns book and found it chockful of great info on design patterns, but am looking for a book with practical SOA implementation snippets and thought SOA with .NET might be it. I found Lowy's Programming with WCF Services too wordy and manual-like with little to no actual implementation examples in the write-up.&lt;/p&gt;&#xA;" OwnerUserId="4378" LastActivityDate="2010-10-27T22:41:59.087" />
  <row Id="15224" PostTypeId="2" ParentId="14224" CreationDate="2010-10-27T23:11:36.383" Score="13" ViewCount="" Body="&lt;p&gt;The scenario you are describing is called a counter offer. Pretty uniformly career advisors are against it. &#xA;Jason Evans may have a good experience but his might be the exception rather than the rule and you may not have his experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's the top 10 reasons not to do it that if you search for counter offer you will find. I would site a source but its all over the internet and its source isn't cited. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Top 10 Reasons Not to Accept a Counter Offer&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;What type of company do you work for if you have to threaten to resign before they give you what you are worth?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Where is the money for the counter offer coming from? Is it your next raise early? All companies have strict wage and salary guidelines, which must be followed.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Your company will immediately start looking for a new person at a cheaper price. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You have now made your employer aware that you are unhappy. From this day on, your loyalty will always be in question.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When promotion time comes around, your employer will remember who was loyal and who wasn't.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When times get tough, your employer will begin to cutback with you.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The same circumstances that now caused you to consider a change will repeat themselves in the future, even if you accept a counteroffer.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Statistics show that if you accept a counteroffer the probability of voluntarily leaving in six months or being let go within a year is extremely high, over 90%.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Accepting a counteroffer is an insult to your intelligence and a blow to your personal pride, knowing that you were bought.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Once the word gets out, the relationship that you now enjoy with your co-workers will never be the same. You will lose the personal satisfaction of peer group acceptance.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="162" LastEditorUserId="162" LastEditorDisplayName="" LastEditDate="2010-12-06T00:27:58.050" LastActivityDate="2010-12-06T00:27:58.050" CommentCount="2" />
  <row Id="15225" PostTypeId="2" ParentId="15208" CreationDate="2010-10-27T23:14:03.603" Score="3" ViewCount="" Body="&lt;p&gt;Well - interesting problem. You forgot to mention that you can have a Silverlight full trust application as of SL4, so if you're thinking of WPF you might want to consider that instead. It would need installing (ClickOnce), but you seem to be moving away from that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've not done anything with OOB yet, but I'm pretty sure that the same binary can be used both in broswer and out of browser as it's a project setting rather than a separate build target.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Enable running application out of the browser&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;on the Silverlight project's Silverlight tab.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So there'd be no separate maintenance issue there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can build a fair amount of code into the web application that hosts the Silverlight app and communicate using WCF RIA Services - again you'd have to go with .NET 4 and SL 4 to get version 1.0 of this. .NET 3.5 and SL 4 only supports the WCF RIA services beta. This would reduce a) the size of the download and b) the amount of code that would need to execute on the client but would increase the network traffic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On that score you can split your Silverlight code into several assemblies and using something like Prism set them to load on demand. This means that the user only downloads those parts of the application they are actually using. You can further reduce the amount downloaded by checking the&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Reduce XAP size by using application library caching&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;option.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have an &quot;extmap&quot; file to go with any external dlls (third party or .NET) then this means that they get bundled into a zip file and downloaded separately to be shared across all xap files in your project. This keeps the individual xap files to their minimum size and ensures that you only have one copy of these other dlls on the client machine.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-27T23:14:03.603" CommentCount="1" />
  <row Id="15226" PostTypeId="2" ParentId="15096" CreationDate="2010-10-27T23:20:59.523" Score="0" ViewCount="" Body="&lt;p&gt;Disclaimer:  I do not work for IBM.  I also can't stand Mainframe salesfolks who have repeatedly blown me off when I try to bring them in on some accounts.  I am no IBM fan for many reasons, BUT:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The beauty of Mainframe is that it can act as a big cloud with centralized management or it can act in a highly-scale-up system as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ability to run literally thousands of Linux instances with a physical (energy, rack space) and support footprint in the fractions of what it would cost to manage several hundred VMWare boxen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Workload management and on-demand ergonomics of CP(U) and memory resources is simply decades ahead of anything else.  This is &lt;em&gt;very&lt;/em&gt; important when you are overcommitting computing resources, and running any cloud services company, this would be crucial to your margin.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stepping down from Mainframe, even AIX can run circles in vertical and management scalability around other computing &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember the cloud is no different from colocating some slabs, just at an extreme price point for the consumer to adopt as well as the ability to remove the liability of most systems management.  Ask yourself this, if you were to create a new Amazon AWS-style service, what architecture would you choose from the context of your P&amp;amp;L?&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-10-27T23:20:59.523" />
  <row Id="15227" PostTypeId="2" ParentId="15209" CreationDate="2010-10-27T23:36:24.330" Score="2" ViewCount="" Body="&lt;p&gt;HTML is like compiled code to me. It's optimized, has no spaces, no comments, and is as small as possible while getting the job done. I do, however, have some comments in my templates which generate the HTML files. You'll never see them though, unless you join the dev team!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Same thing goes for JavaScript. Any JS you see on my site is compressed, minified, and has the comments removed. Comments are for developing, not for wasting bandwidth!&lt;/p&gt;&#xA;" OwnerUserId="1486" LastActivityDate="2010-10-27T23:36:24.330" />
  <row Id="15229" PostTypeId="2" ParentId="15208" CreationDate="2010-10-27T23:44:01.007" Score="1" ViewCount="" Body="&lt;p&gt;Just a couple of quick things:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Deployment and &quot;server-side code&quot;: A Silverlight app is a client-side app, plain and simple. Don't let the mere fact that it is delivered through the browser confuse you - when you run an in-browser SL app, you are downloading the assemblies for that app in a zipped package, extracting them, and running them using the plugin. Silverlight by itself has no notion of &quot;server-side code&quot; - if you want code to run on a remote server, write a WCF service.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Updating the app: This is a common scenario for OOB apps and SL has built-in support. Google around for CheckAndDownloadUpdateAsync.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: Forgot to mention - installing the application is done from within the application. By default, an installable SL app will have a context menu action to install it. However, installing can also be done programmatically in response to the user clicking a button. The install state can also be detected programmatically, so what I've seen some SL apps that are only intended to run OOB do is first detect if they are installed. If so, run the app. If not, just show a splash screen with a button that installs the app.&lt;/p&gt;&#xA;" OwnerUserId="3044" LastEditorUserId="3044" LastEditorDisplayName="" LastEditDate="2010-10-27T23:49:24.917" LastActivityDate="2010-10-27T23:49:24.917" />
  <row Id="15230" PostTypeId="1" CreationDate="2010-10-28T00:19:29.987" Score="8" ViewCount="282" Body="&lt;p&gt;Hello guys&lt;/p&gt;&#xA;&#xA;&lt;p&gt;once I was talking to a friend of mine. He told me that he has two curricula version: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;one shorter, &lt;strong&gt;summarized&lt;/strong&gt;, for sending to companies by e-mail&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;one &lt;strong&gt;complete&lt;/strong&gt; (bigger), for presenting on paper his whole background&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I was wandering how do you guys organize your curriculum. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think your curriculum may vary according to your culture (Country).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please, share your thoughts telling:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;What parts do you emphasize&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you prefer to present technologies, or you present business gains after you joined the company&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you include your very personal data like contact address, marital status, children information&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you add courses and education information not related to computer science&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;and anything else you might like to tell us...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-28T07:36:01.180" Title="How do you organize your curriculum vitae?" Tags="&lt;recommendations&gt;&lt;resume&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="15231" PostTypeId="2" ParentId="15230" CreationDate="2010-10-28T00:41:59.843" Score="2" ViewCount="" Body="&lt;p&gt;Here's a version I use, think it's a combo of uni-given layouts and others CVs, migrated over time (country = Australia)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;H1&amp;gt; YOUR NAME&#xA;&#xA;H2&amp;gt; Contact Details&#xA;email, phone, etc&#xA;&#xA;H2&amp;gt; Summary&#xA;General stuff, years experience, no more than 5 bullet points&#xA;Include something about teamwork, people skills, if you have them&#xA;&#xA;H2&amp;gt; Product Skills&#xA;Expert: (list)&#xA;Intermediate: (list)&#xA;Exposure to: (list) (exposure as opposed to beginner)&#xA;&#xA;H2&amp;gt; Education&#xA;duh&#xA;&#xA;H2&amp;gt; Employment History&#xA;duh, again&#xA;&#xA;H2&amp;gt; Achievements&#xA;NY Hotdog eating champion, etc. Anything that is an award, etc.&#xA;&#xA;H2&amp;gt; Affiliations&#xA;ACM? Other Acronyms?&#xA;&#xA;H2&amp;gt; References&#xA;Available on Request&#xA;or&#xA;(Details here)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It's a nutshell, if they read the first 2 sections, they get a general overview, they read the whole thing, yay. Uses the jouro layout of top = important info, going down = less important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't add age, marital status, race, etc.&lt;/p&gt;&#xA;" OwnerUserId="965" LastActivityDate="2010-10-28T00:41:59.843" CommentCount="5" />
  <row Id="15232" PostTypeId="2" ParentId="14827" CreationDate="2010-10-28T00:53:42.513" Score="0" ViewCount="" Body="&lt;p&gt;I am a salaried programmer where it is only required to work 40 hour weeks. I tend to work in the evenings sometimes after the kids are put to bed although this is not required. Why? Just because I like coding and trying things out. Like others I also tend to spend a lot of time thinking about architecture, design, learning outside of normal work hours as well but you better believe when I_need_to take time away from work management quickly will eat up my holiday,vacation,personal days without even thinking twice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did come from a position where it was required to work on average 50 hour weeks. If I left at 4-5PM my former boss would say things like 'I will text you later' or email me in the evening and wait on a response, no joke.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like has been said though, it depends on the culture. &lt;/p&gt;&#xA;" OwnerUserId="6479" LastActivityDate="2010-10-28T00:53:42.513" CommunityOwnedDate="2011-01-12T18:52:29.870" />
  <row Id="15233" PostTypeId="2" ParentId="15230" CreationDate="2010-10-28T00:56:36.603" Score="1" ViewCount="" Body="&lt;p&gt;I have a short and a long version. The short version is for job hunting websites, which generally have restrictions or their own format. The long version is to e-mail the HR if I get a call from them and also the version I take to the interview.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What parts do you emphasize:&lt;br&gt;&#xA;Well, this probably varies a lot from person to person. I generally emphasize what's worth emphasizing, what will set me apart. I like to put my education background since it's a well known university in the US and I'm actually back in my crappy country. I know this worked because this was the first thing my previous and current employer said that 'stood out.' &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Then I like to put relevant courses I took while in the university, just a couple of them, with descriptions to complex projects. &#xA;Since I have some work experience, I list my previous position and level, some important projects I was involved in and the results. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding personal information, I usually put it because it seems like it's the norm in my country. &#xA;For non computer science related things I list the languages I can speak natively and some standardized language scores for reference. If you were involved in an important club or organization, it's a good idea to mention in a brief sentence too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has worked pretty well for me so far.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-10-28T00:56:36.603" />
  <row Id="15235" PostTypeId="2" ParentId="14914" CreationDate="2010-10-28T01:04:50.707" Score="0" ViewCount="" Body="&lt;p&gt;Simply put and from personal observations found on job posting sites and only regarding experience levels.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Entry = Your new probably your first job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Junior = Your good but not supposed to be the best, you also &lt;em&gt;usually&lt;/em&gt; have less then 5 years and more than 2 years experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Senior = You are supposed to be the best and do have more than 5 years experience.&lt;/p&gt;&#xA;" OwnerUserId="6479" LastActivityDate="2010-10-28T01:04:50.707" />
  <row Id="15236" PostTypeId="2" ParentId="14986" CreationDate="2010-10-28T01:05:48.067" Score="2" ViewCount="" Body="&lt;p&gt;Verify the check digit in a barcode. Some of the most common barcode standards have check digits which are fairly easy to calculate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;UPC (12 digits) and its superset EAN (13 digits) are among the most common barcode standards you will find. The check digit is calculated like this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the right-most digit is the check digit which we want to verify&lt;/li&gt;&#xA;&lt;li&gt;if you have a 12-digit barcode, add a zero to the beginning - e.g. 008811908027 becomes 0008811908027&lt;/li&gt;&#xA;&lt;li&gt;considering the left-most digit to be in position 0 and ignoring the check digit, sum the digits in odd-numbered positions (0 + 8 + 1 + 9 + 8 + 2 = 28) and multiply the result by 3 (84)&lt;/li&gt;&#xA;&lt;li&gt;sum the digits in even-numbered positions (0 + 0 + 8 + 1 + 0 + 0 = 9)&lt;/li&gt;&#xA;&lt;li&gt;add those two results together (93) then calculate that total modulo 10 (93 % 10 = 3)&lt;/li&gt;&#xA;&lt;li&gt;if the answer is 0 then that is the check digit, otherwise subtract the result from 10 to give the check digit (7)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That should cover most of the areas highlighted in the question&lt;/p&gt;&#xA;" OwnerUserId="1359" LastActivityDate="2010-10-28T01:05:48.067" CommentCount="1" />
  <row Id="15237" PostTypeId="2" ParentId="14824" CreationDate="2010-10-28T01:08:30.117" Score="2" ViewCount="" Body="&lt;p&gt;I have used both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used a GoldTouch for a year and a half or so which my employer bought for me, but then went to a new job and requested a Kinesis Advantage and they got it for me.  I have since purchased two Advantages for myself (so I provided my own at a subsequent new job).  In fact, I think I also own a GoldTouch but now that I'm thinking about it I can't remember where it is.  Maybe my partner took it to her job to use (she also has another for her Mac, which has a slightly different key layout).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Advantage is amazing.  I remap a couple of the keys to work better for me (for instance, I always pressed the wrong arrow when moving up and down, so I just swapped them.  I also remap CapsLock to Escape as I'm a Vim user).  However, it is expensive.  The footswitch(es) that you can get are also pretty cool but I've never really used them much.  I &lt;em&gt;really&lt;/em&gt; like the fact that the key columns are straight up and down; one of the things that really started bugging me about &quot;normal&quot; keyboards (incl. the GoldTouch) was that my left hand always felt like it had to move at a severe angle to go from the home row to the top row of keys.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The GoldTouch is also great and much less expensive.  I always wished that it could be spread more but as it was it did a great job of alleviating the RSI strain.  I really liked that they put they put some &quot;action&quot; keys (home, end, pgup, pgdn maybe?) on the left of the keyboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both of these suffer from a lack of a number pad.  That's rarely a problem but annoying when it comes up.  Both have a built-in number pad but using it is less than stellar.  At least, I think the GoldTouch has a built in one.  Maybe I'm misremembering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use(d) both of these as Dvorak keyboards, but I don't spring the extra dough for the legends since I never look at anything but the shifted numbers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also got some ErgoRest arm rests.  Those, too, are great, but some desks are hostile to them.&lt;/p&gt;&#xA;" OwnerUserId="2129" LastActivityDate="2010-10-28T01:08:30.117" CommentCount="1" />
  <row Id="15238" PostTypeId="2" ParentId="14200" CreationDate="2010-10-28T01:15:24.547" Score="2" ViewCount="" Body="&lt;p&gt;You can &lt;a href=&quot;http://www.microsoft.com/visualstudio/en-us/download&quot; rel=&quot;nofollow&quot;&gt;download&lt;/a&gt; and use any full version of VS2010 and try it out for &lt;strong&gt;90 days&lt;/strong&gt; (after 30 days, register it to extend it 60 more days). All of these versions (Professional, Premium, Ultimate) have Crystal Reports.&lt;/p&gt;&#xA;" OwnerUserId="6258" LastActivityDate="2010-10-28T01:15:24.547" CommentCount="2" />
  <row Id="15239" PostTypeId="1" CreationDate="2010-10-28T01:19:34.507" Score="17" ViewCount="485" Body="&lt;p&gt;Somewhat inspired by this question: &lt;a href=&quot;http://programmers.stackexchange.com/questions/10865/for-what-common-problems-is-functional-programming-not-a-good-fit&quot;&gt;For what common problems is functional programming not a good fit?&lt;/a&gt; - but nevertheless a question which I always wanted, but was too afraid to ask.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been in ... well, let's call it &lt;em&gt;engineering software development&lt;/em&gt; practically all my life, and in all that time, although OO had always been there (well, &lt;em&gt;most&lt;/em&gt; of that time) I've never had the need to use &quot;its ways&quot;, nor to learn that paradigm. We've always used rather simple program structures, routines/functions/modules and although it is opposite to today's best practices managing those programs (programs up to roughly 300k LOC, nothing too big) never proved to be difficult, let alone impossible. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I wanted to ask you, what would be the sorta problems for which object oriented paradigm would not be a good choice? In comparison to procedural programming ?&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-28T10:44:14.890" Title="For what problems is object oriented programming not a good choice?" Tags="&lt;paradigms&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="4" />
  <row Id="15240" PostTypeId="2" ParentId="15239" CreationDate="2010-10-28T01:28:38.973" Score="4" ViewCount="" Body="&lt;p&gt;The main value of OO is that it provides decoupling among components of your system, making it easier to write DRY code and adapt to specific types of change that you plan for in your design.  The cost is that it adds layers of indirection, which can make the code harder to reason about, less efficient and harder to modify in unanticipated ways (the ways that aren't aided by the decoupling your design provides).  It is therefore a waste of time for any subproblem where you don't need the decoupling it provides.  Specifically, it is a waste of time if you can easily write DRY code without it and don't anticipate any &lt;em&gt;specific&lt;/em&gt; requirement changes that would benefit from the strong decoupling that OO provides.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastEditorUserId="1468" LastEditorDisplayName="" LastEditDate="2010-10-28T01:39:16.807" LastActivityDate="2010-10-28T01:39:16.807" CommentCount="4" />
  <row Id="15241" PostTypeId="1" AcceptedAnswerId="15295" CreationDate="2010-10-28T01:36:43.893" Score="17" ViewCount="740" Body="&lt;p&gt;The saying &quot;It's easier to beg forgiveness than ask permission&quot; seems pretty popular among programmers and IIRC was attributed to Grace Hopper.  In what situations is this typically true, and why do you believe that such a counterintuitive proposition would hold?&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2011-01-27T18:11:13.847" Title="When/why is it easier to beg forgiveness than ask permission?" Tags="&lt;management&gt;" AnswerCount="11" CommentCount="4" FavoriteCount="3" />
  <row Id="15242" PostTypeId="2" ParentId="15241" CreationDate="2010-10-28T01:42:59.440" Score="9" ViewCount="" Body="&lt;p&gt;It's politics, all politics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen this become a reality on occasion, when the management or client put up too many barriers to simple changes (e.g. &quot;quality&quot; reviews by people who know nothing about the system, needing to get signoff from too many business areas) that it's sometimes quicker and easier to just &quot;rip off the bandage&quot;: don't tell too many people, just make the change, and if it works, everyone's happy, you might get a slap on the wrist for &quot;not following the process&quot;, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, if the change fails, you might find even more processes being layered on... but that's the risk you took.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(disclaimer: I have no problems with quality controls and checks and balances - as long as they're reasonable)&lt;/p&gt;&#xA;" OwnerUserId="1934" LastActivityDate="2010-10-28T01:42:59.440" />
  <row Id="15243" PostTypeId="2" ParentId="15241" CreationDate="2010-10-28T01:43:22.247" Score="21" ViewCount="" Body="&lt;p&gt;Because once something is done, as long as it doesn't make things worse, it's often easier to leave it in than to take it out (i.e. &quot;what's done is done.&quot;)&lt;/p&gt;&#xA;" OwnerUserId="1852" LastActivityDate="2010-10-28T01:43:22.247" CommentCount="1" />
  <row Id="15244" PostTypeId="2" ParentId="15230" CreationDate="2010-10-28T01:47:31.867" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What parts do you emphasize&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Any experience relevant to the position.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If you prefer to present technologies, or you present business gains after you joined the company&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Both, where relevant to the position.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If you include your very personal data like contact address, marital status, children information&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Never, because these are irrelevant. I'll only put in the necessary information they need to contact me (e.g. phone number and email address).&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If you add courses and education information not related to computer science&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I would only list education relevant to the position; if none, then I might list the most recent and highest-level education.&lt;/p&gt;&#xA;" OwnerUserId="1934" LastActivityDate="2010-10-28T01:47:31.867" />
  <row Id="15245" PostTypeId="1" AcceptedAnswerId="15268" CreationDate="2010-10-28T01:58:54.123" Score="6" ViewCount="196" Body="&lt;p&gt;I love programming, but I've hit the awful wall of intermediateness that comes after the first books; I don't know where to go. I want to develop my basic skills further, but simple exercises don't do that for me. I've tried Project Euler, I've tried SPOJ, but all of those kind of challenge-based sites don't really work for me, because I want to develop something bigger, something at least marginally practical. I'm trying to work on getting proficient with curses to begin developing a simple roguelike, but I'm not primarily interested in making games.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm restricted to the console, because I don't want to complicate it for myself with a GUI, and I'm using C++ for a variety of reasons (I don't see why that should matter, but I figure it's worth mentioning). The most advanced thing I've done is implement a doubly linked list, so I'm open to really anything. I want to try something with a user interface that does something visible, but I'm starved for ideas. Does anybody have any suggestions?&lt;/p&gt;&#xA;" OwnerUserId="6483" LastActivityDate="2010-10-28T07:14:01.520" Title="What are some good medium-sized projects an inexperienced programmer could take on?" Tags="&lt;personal-projects&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="1" />
  <row Id="15246" PostTypeId="2" ParentId="15216" CreationDate="2010-10-28T02:00:00.557" Score="3" ViewCount="" Body="&lt;p&gt;You want to be nice to the company, fine - but I would reflect on whether they would be as nice to you if the shoe was on the other foot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they're a good company, they'll find a way to cope with the loss. Alternatively, if they're not a good company, why would you care? Are they your friends?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, &quot;burning bridges&quot; has nothing to do with how inconvenient it was for the company - it's more to do with the way you leave. As long as you give the full required notice time, and write a professional resignation letter, you have not burnt any bridges. If they're still resentful as a result, that's their problem, and not your fault.&lt;/p&gt;&#xA;" OwnerUserId="1934" LastActivityDate="2010-10-28T02:00:00.557" />
  <row Id="15247" PostTypeId="1" AcceptedAnswerId="15262" CreationDate="2010-10-28T02:10:47.050" Score="3" ViewCount="128" Body="&lt;p&gt;What's next in the web industry, as social media reaches a plateau, what are the next milestones in this &quot;experiment&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess I'm looking for in depth opinions on what's next in our beloved industry? What's beyond facebook, wikis, collaboration, shiny buttons, and interactive instantaneous communications? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What will drive the next dot com boom? &lt;/p&gt;&#xA;" OwnerUserId="6511" LastEditorUserId="6511" LastEditorDisplayName="" LastEditDate="2010-10-28T08:57:27.630" LastActivityDate="2011-02-12T20:29:40.160" Title="What are the main components, technologies, and features of the next generation of web applications?" Tags="&lt;web-development&gt;" AnswerCount="3" />
  <row Id="15248" PostTypeId="2" ParentId="724" CreationDate="2010-10-28T02:28:15.763" Score="0" ViewCount="" Body="&lt;p&gt;String mixins plus compile time function evaluation in D is a pretty unique killer feature.  Yes, technically it's two features, but the real power comes from combining them.  With this combination, you can write regular D functions that generate code as a string at compile time, and then mix this code into any scope and have it be evaluated as regular D code.  The code is fully statically compiled and executes exactly as if it had been handwritten.  This feature is even used to work around a couple sticky situations in the standard library.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-28T02:28:15.763" />
  <row Id="15249" PostTypeId="2" ParentId="15245" CreationDate="2010-10-28T02:39:18.947" Score="4" ViewCount="" Body="&lt;p&gt;You are limiting yourself by avoiding GUI. One of the prime problems in creating software is how to get input from the user and how to display the result of the program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are a few things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Pick an open source project that you use or interests you, get the source code and try to understand it, then try to contribute.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Watch &lt;a href=&quot;http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/&quot; rel=&quot;nofollow&quot;&gt;these&lt;/a&gt; lectures, the Structure and Interpretation of Computer Programs. Very old but still very relevant to programming.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Pick a technology that you are interested in and try to implement something that uses it, for instance a command line based chat program or ftp client for networking, an image converter for image processing, or a sound effects program (read in file and apply a preset effect like normalising) for sound processing.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Find a good book on algorithms and try to implement them.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5682" LastEditorUserId="5682" LastEditorDisplayName="" LastEditDate="2010-10-28T03:44:48.117" LastActivityDate="2010-10-28T03:44:48.117" CommentCount="3" />
  <row Id="15250" PostTypeId="2" ParentId="14824" CreationDate="2010-10-28T02:46:02.217" Score="3" ViewCount="" Body="&lt;p&gt;I use a Goldtouch at work and home, and I find it simply amazing.  I have severe arthritis in my hands, and it's been a great relief for the stress of typing on a normal keyboard.  It's not a perfect setup (I'd prefer to try something more &lt;a href=&quot;http://www.safetype.com/&quot; rel=&quot;nofollow&quot;&gt;vertical&lt;/a&gt;), but the general position is much more comfortable than standard ergonomic keyboards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It took me a little while to get used to the lack of number-pad, but it hasn't really hampered my programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also don't have much problem going from a Goldtouch to a standard keyboard.  I use a laptop regularly (much to my aching hands' chagrin :), so going and forth isn't terribly difficult.  If you have occasional exposure to a standard keyboard, I don't think you'll become fully dependent on it.&lt;/p&gt;&#xA;" OwnerUserId="2294" LastActivityDate="2010-10-28T02:46:02.217" />
  <row Id="15251" PostTypeId="1" CreationDate="2010-10-28T02:58:41.967" Score="6" ViewCount="165" Body="&lt;p&gt;I have been disassembling a large software project on my own, as a hobby. It is an educational exercise and I have learned a lot in the process. That said, I feel that my progress would be considerably quicker if I was to collaborate on the project with other like-minded individuals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Herein lies the problem -- maybe. I am reversing this software for personal interest and potentially (but unlikely; given the magnitude of the codebase in question) implementing an interoperable service to interact with this software, replacing the vendor's own service. My (very limited) understanding is that this particular use-case is protected under copyright law. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, my wish is to collaborate with others freely on the Internet, in a similar system employed by open source projects: version control repositories of assembly files, wikis to coordinate and share knowledge, public mailing lists, et cetera. I have a feeling this may be iffy at best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is what I want to do blatantly illegal, a gray area or even legally defensible? Would the situation be any different if the collaboration was in private rather than public? If it has any bearing on the answer, I am located in Australia and the software vendor in located in the USA.&lt;/p&gt;&#xA;" OwnerUserId="6606" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-28T07:20:00.280" LastActivityDate="2010-10-28T16:26:08.043" Title="Legality of collaborative reverse-engineering" Tags="&lt;legal&gt;&lt;reverse-engineering&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="15252" PostTypeId="2" ParentId="14706" CreationDate="2010-10-28T03:07:16.537" Score="0" ViewCount="" Body="&lt;p&gt;If you can't finish your assigned work in 40 hours, you have to stay late. If you can finish it in 20 hours, you get to leave early. Working for salary is awesome.&lt;/p&gt;&#xA;" OwnerUserId="6431" LastActivityDate="2010-10-28T03:07:16.537" CommentCount="6" />
  <row Id="15253" PostTypeId="2" ParentId="15216" CreationDate="2010-10-28T03:12:01.340" Score="7" ViewCount="" Body="&lt;p&gt;One month is plenty of notice.  Do things &quot;by the book&quot;.  You're probably not the first person with responsibilities to leave in the history of the company; they've experienced it before, and if it caused them serious pain they'd have renegotiated contracts or at least started new hires on longer notice periods (in fact some places link notice period to length of service, which always seemed very sensible to me).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And consider this: if the company was thinking of getting rid of you, do you think those responsible would be wondering if they should give you any more notice of it than is in your contract ?  Unlikely.  You're under no obligation to treat them differently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to have some fun, try to bring up the subject of project risks and risk mitigation in a planning meeting for all this upcoming activity (if you're that key to it then I assume you're involved in planning of it ?).  Then raise the risk of &quot;key people leaving&quot; (or being hit by a bus is the usual euphemism).  It may reveal some enlightening asymmetries in opinions on the value and short-term replace-ability of people.  And when you do resign, you can at least point out they have a mitigation plan in place.  However, if you do go down this route, do have an answer (one better than a lie) prepared for what to say if they outright ask you &quot;Why ? Are you thinking of leaving ?!?!?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-10-28T03:12:01.340" CommentCount="2" />
  <row Id="15254" PostTypeId="2" ParentId="13259" CreationDate="2010-10-28T03:15:05.733" Score="0" ViewCount="" Body="&lt;p&gt;There are several things that I as a developer like about scrum.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The developers tend to be given more information upfront. The product owner needs to explain all the work that is going to be done during the next sprint in sufficient detail to allow for good estimates.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just in time estimating means that that estimates are reasonably accurate. Everyone usually has a reasonably good idea of what will be finished in a sprint. This gives programmers and project managers the tools to push back against unreasonable demands.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is nice to step back every three to four weeks and take a breath and at least have a change of pace. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Self organizing teams, seem to give a bit more variety in the work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In theory at least, during the sprint there are fewer interruptions and 'emergencies'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The daily stand up meeting forces programmers to say several words every day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is easier to see the progress being made as stories are explicitly finished and reviewed at the end of each sprint. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The burn down charts are a pretty effective light weight means of tracking progress.&lt;/p&gt;&#xA;" OwnerUserId="5842" LastActivityDate="2010-10-28T03:15:05.733" />
  <row Id="15255" PostTypeId="2" ParentId="15245" CreationDate="2010-10-28T03:19:22.017" Score="0" ViewCount="" Body="&lt;p&gt;Try learning another field that interests you like digital imaging, neural networks, OSes, compilers etc. and implement the concepts on the language you know. Sometimes, learning a programming language is not enough to know how to program.&lt;/p&gt;&#xA;" OwnerUserId="6546" LastActivityDate="2010-10-28T03:19:22.017" />
  <row Id="15256" PostTypeId="2" ParentId="15251" CreationDate="2010-10-28T03:35:38.597" Score="5" ViewCount="" Body="&lt;p&gt;Maybe read this &lt;a href=&quot;http://lwn.net/Articles/134642/&quot; rel=&quot;nofollow&quot;&gt;http://lwn.net/Articles/134642/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think reverse engineering is always a gray area legally. But that doesn't worry big corp, they will just use their lawyers to squash you legal or not if you are doing something they don't like. I think they key is to not make noise.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-28T03:35:38.597" CommentCount="1" />
  <row Id="15257" PostTypeId="2" ParentId="6921" CreationDate="2010-10-28T03:42:39.613" Score="1" ViewCount="" Body="&lt;p&gt;If you're in India, these two are the best online bookstores - free shipping + a discount on most technical (and other books)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.flipkart.com&quot; rel=&quot;nofollow&quot;&gt;www.flipkart.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.infibeam.com&quot; rel=&quot;nofollow&quot;&gt;www.infibeam.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Amazon does not ship to India - except for some rare items, and the shipping prices are way too high. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disclaimer : I'm not associated with any of them, just a very satisfied customer.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastEditorUserId="1539" LastEditorDisplayName="" LastEditDate="2011-05-25T04:17:23.023" LastActivityDate="2011-05-25T04:17:23.023" />
  <row Id="15258" PostTypeId="2" ParentId="15245" CreationDate="2010-10-28T03:47:26.953" Score="2" ViewCount="" Body="&lt;p&gt;Find a problem. Use programming to solve it, even if it's only a benefit to you. Just the act of writing some piece of software that does something will help you enforce what you've learned or develop new skills. And, when you run into a roadblock, research solutions, or get help (hint: &lt;a href=&quot;http://www.stackoverflow.com&quot; rel=&quot;nofollow&quot;&gt;StackOverflow&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, you can also check out this related SO &lt;a href=&quot;http://stackoverflow.com/questions/88040/c-project-ideas&quot;&gt;question&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="3286" LastEditorUserId="3286" LastEditorDisplayName="" LastEditDate="2010-10-28T03:52:29.540" LastActivityDate="2010-10-28T03:52:29.540" />
  <row Id="15259" PostTypeId="2" ParentId="14706" CreationDate="2010-10-28T03:55:06.747" Score="3" ViewCount="" Body="&lt;p&gt;KevinDTimm was asking for input from managers, so:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I manage a small team.  I never want to have to ask any of them to work overtime.  I'd consider it to be a major failure by myself and/or my parent organization if I ever had to.  When I have had to (once, years ago), I've been happy to give time-off-in-lieu back (although this did have to be done a bit &quot;under the radar&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The time overtime was required was a bad death-march period for the company.  Everyone got really pissed off and a lot of the best people left.  It's much better now (and people are way more productive and creative) and no one wants to go back to the death-march under any circumstances.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, all the best developers I know put in significant personal time outside work into personal development, pet learning projects, hobby computing or whatever you want to call it.  This sort of activity is &lt;em&gt;incredibly&lt;/em&gt; valuable to companies IMHO, and yet hugely overlooked.  The real big problem with making people work extra hours on &quot;real stuff&quot; is that it displaces all the extra learning and creative stuff which the good people were doing out of work hours which was generally &quot;oiling the wheels of innovation&quot;.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-10-28T03:55:06.747" />
  <row Id="15260" PostTypeId="2" ParentId="15207" CreationDate="2010-10-28T04:29:51.557" Score="4" ViewCount="" Body="&lt;p&gt;Have you tried &lt;a href=&quot;http://www.eaipatterns.com/&quot; rel=&quot;nofollow&quot;&gt;Enterprise Integration Patterns&lt;/a&gt;? It's not exclusively on message queues, but on messaging systems.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-28T04:29:51.557" CommentCount="1" />
  <row Id="15261" PostTypeId="1" AcceptedAnswerId="15281" CreationDate="2010-10-28T04:44:51.083" Score="6" ViewCount="179" Body="&lt;p&gt;I have been looking at RentACoder, Freelancer and eLance from last few years but I always hesitated to register at these site. Hesitation includes little worry too. These questions fill me:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(1) Is there a legal contract between the bidder and the coder? Just in case my delivery date extends, what happens?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(2) After delivery, payment reach without trouble or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(3) In case the customer didn't find the project useful, then? Probably he might say that it is not useful to me and you return money. He might copy the source code and return another copy to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(4) What are further recommendations? How should I start?&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2010-11-22T09:53:54.260" Title="Queries on online project outsourcing sites." Tags="&lt;outsourcing&gt;&lt;freelance&gt;&lt;elance&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="15262" PostTypeId="2" ParentId="15247" CreationDate="2010-10-28T05:09:25.517" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Kevin_Kelly_%28editor%29&quot; rel=&quot;nofollow&quot;&gt;Kevin Kelly&lt;/a&gt; gave a tedtalk on the subject, titled &quot;&lt;a href=&quot;http://www.ted.com/talks/lang/eng/kevin_kelly_on_the_next_5_000_days_of_the_web.html&quot; rel=&quot;nofollow&quot;&gt;Predicting the next 5,000 days of the web&lt;/a&gt;.&quot; He has some interesting theories.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(The projections start about eight minutes into the video.)&lt;/p&gt;&#xA;" OwnerUserId="1444" LastEditorUserId="1444" LastEditorDisplayName="" LastEditDate="2010-10-28T05:16:47.207" LastActivityDate="2010-10-28T05:16:47.207" CommentCount="1" />
  <row Id="15263" PostTypeId="2" ParentId="15247" CreationDate="2010-10-28T05:23:13.580" Score="3" ViewCount="" Body="&lt;p&gt;Web 3.0 is just made up term like web 2.0 that means nothing. Just throw around a few cliches like HTML5, Cloud computing and you will be there.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-28T05:23:13.580" CommentCount="1" />
  <row Id="15264" PostTypeId="2" ParentId="15261" CreationDate="2010-10-28T05:38:40.693" Score="5" ViewCount="" Body="&lt;p&gt;As with anything, you need to use common sense. The odds are somewhat stacked in favour of the buyer, but if you work with buyers that have a higher reputation, then you'll usually be fine. If the buyer has never awarded a job before, you need to be careful that the job they're posting is reasonable and they're not asking you to re-write Facebook for &amp;lt; $500 or something silly like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You also need to remember that you're generally competing with teams of people in developing countries who will be happy working for 1/10 the rate you would expect. The regular buyers will have come to expect those rates and if your bids are significantly higher, your bids will be discarded out of hand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, these websites can be a good way to get your name out there on a couple of projects. But don't expect to be able to make a living exclusively from them...&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-28T05:38:40.693" CommentCount="1" />
  <row Id="15265" PostTypeId="2" ParentId="15216" CreationDate="2010-10-28T05:48:15.337" Score="15" ViewCount="" Body="&lt;p&gt;At my last job, when I told them of my plan to leave, they didn't want me to go so they offered me a big bonus and pay increase to stay for another 12 months. I (perhaps foolishly) agreed, and said &quot;OK, I'll stay another 12 months, but then I'm moving on.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, the 12 months passed, and I went to hand in my resignation again... and they were totally shocked! Argh! We only have one month to find a replacement for you! What are we going to do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So even 12 months notice isn't long enough for some companies. That you're thinking of giving two months is a nice gesture, but at the end of the day, no time is ever a good time to lose someone who's an important part of the team. The company just needs to deal with it. When I left that job, I still kept in touch and they were free to email me with any questions or problems. After a few weeks, the emails petered out and they got over it.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-28T05:48:15.337" CommentCount="1" />
  <row Id="15266" PostTypeId="2" ParentId="15245" CreationDate="2010-10-28T05:48:20.290" Score="1" ViewCount="" Body="&lt;p&gt;Use the qt GUI library and network library from boost or POCO (just make a search on the names) and make a networking version of your favourite card game.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;You will get exposed  to GUI writing, (it is actually kind of fun when you get the hang of it.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You will be exposed to networking&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You will make something that your friends could be interested in&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I am making some courses in the university and have made some, as I think real interesting things. But the only thing my wife have showed only a bit interest in is when I made a card game that we could play together.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck&lt;/p&gt;&#xA;" OwnerUserId="1041" LastActivityDate="2010-10-28T05:48:20.290" />
  <row Id="15267" PostTypeId="2" ParentId="15245" CreationDate="2010-10-28T05:54:48.637" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codeproject.com/&quot; rel=&quot;nofollow&quot;&gt;The Code Project&lt;/a&gt; contains a very large collection of demo projects, ranging from the very simple to the feature-rich. This site is more leaned toward Windows programming (especially on MFC), but there's still a good number of cross-platform projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://homepages.inf.ed.ac.uk/rbf/HIPR2/wksheets.htm&quot; rel=&quot;nofollow&quot;&gt;http://homepages.inf.ed.ac.uk/rbf/HIPR2/wksheets.htm&lt;/a&gt; will teach you about 50% of the first introductory course on image processing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To actually build something useful with computer vision or digital image processing, &lt;a href=&quot;http://opencv.willowgarage.com/wiki/&quot; rel=&quot;nofollow&quot;&gt;OpenCV&lt;/a&gt; is a very good library of choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have some artistic talents, try &lt;a href=&quot;http://processing.org/&quot; rel=&quot;nofollow&quot;&gt;Processing.org&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to focus on a single project that is self-contained, with a clearly defined goal, and has no dependency on Operating Systems or programming languages, try implement your own &lt;a href=&quot;http://en.wikipedia.org/wiki/Diff&quot; rel=&quot;nofollow&quot;&gt;diff&lt;/a&gt;. Or, you can implement a program for parsing (syntax checking) C source code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To experiment with the network, try re-implement &lt;a href=&quot;http://en.wikipedia.org/wiki/Rsync&quot; rel=&quot;nofollow&quot;&gt;rsync&lt;/a&gt;. To make it easier you can just handle text files.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may want to buy some CS textbooks ahead of your future coursework.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-10-28T05:54:48.637" />
  <row Id="15268" PostTypeId="2" ParentId="15245" CreationDate="2010-10-28T05:57:45.147" Score="1" ViewCount="" Body="&lt;p&gt;You need to work on an actual project. Programming puzzles and things like Project Euler are good for a distraction, or as a way to hoe your problem-solving skills, but you're never going to get far with just those.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't think of anything else, then I would suggest you build a game. Pick a game from your childhood that you enjoyed, and create a remake. You can start simple with tetris or pong (be careful with trademark violations if you ever decide to release these!) and work your way up to something more complicated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Games are great because there are many, many different disciplines involved: graphics (2D or 3D), physics, AI, trigonometry, calculus, algebra, and the list goes on.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-28T05:57:45.147" />
  <row Id="15269" PostTypeId="1" AcceptedAnswerId="15274" CreationDate="2010-10-28T06:05:50.370" Score="16" ViewCount="712" Body="&lt;p&gt;I feel that side effects are a natural phenomenon. But it is something like taboo in functional languages. What are the reasons?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: My question is specific to functional programming style. Not all programming languages/paradigms.&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="963" LastEditorDisplayName="" LastEditDate="2010-10-28T10:53:06.937" LastActivityDate="2010-12-23T00:15:31.580" Title="Why are side-effects considered evil in functional programming?" Tags="&lt;functional-programming&gt;&lt;side-effect&gt;" AnswerCount="10" FavoriteCount="3" />
  <row Id="15270" PostTypeId="2" ParentId="15239" CreationDate="2010-10-28T06:06:36.487" Score="7" ViewCount="" Body="&lt;p&gt;Object oriented programming &lt;em&gt;is&lt;/em&gt; procedural programming. The thing that makes OO object oriented is, as Robert Harvey mentions in a comment, that OO abstracts data in a particular way (to wit: bundling the functions that operate on a structure with that structure).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.cs.utexas.edu/~wcook/Drafts/2009/essay.pdf&quot; rel=&quot;nofollow&quot;&gt;William Cook&lt;/a&gt; explains the difference between objects and abstract data types nicely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So at the risk of sounding facile, I'd say that objects are not a good fit for when you need to easily extend the (number of) operations that perform on your data, and you don't need to have varying implementations of your data. Having said that, there are &lt;a href=&quot;http://www.cs.purdue.edu/homes/jv/510s05/papers/shriram-ecoop98.pdf&quot; rel=&quot;nofollow&quot;&gt;things you can do&lt;/a&gt; to bring the two closer together.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-28T06:06:36.487" />
  <row Id="15271" PostTypeId="2" ParentId="15269" CreationDate="2010-10-28T06:26:33.587" Score="5" ViewCount="" Body="&lt;p&gt;You've got it wrong, functional programming promotes limiting side effects to make programs easy to understand and optimize. Even Haskell allows you to write to files.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially what I am saying is that functional programmers don't think side effects are evil, they simply think limiting the use of side effects is good. I know it may seem like such a simple distinction but it makes all the difference.&lt;/p&gt;&#xA;" OwnerUserId="712" LastEditorUserId="712" LastEditorDisplayName="" LastEditDate="2010-10-28T14:41:49.933" LastActivityDate="2010-10-28T14:41:49.933" CommentCount="4" />
  <row Id="15272" PostTypeId="2" ParentId="15269" CreationDate="2010-10-28T06:30:02.807" Score="4" ViewCount="" Body="&lt;p&gt;Few to no languages make it impossible to cause side-effects.  Languages that were completely side-effect free would be prohibitively difficult (near to impossible) to use, except in a very limited capacity.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Why side-effects are considered evil?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Because they make it much more difficult to reason about exactly what a program does, and to prove that it does what you expect it to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At a very high level, imagine testing an entire 3-tier web site with only black-box testing.  Sure, it's doable, depending on the scale.  But there is certainly a lot of duplication going on.  And if there &lt;em&gt;is&lt;/em&gt; a bug (that is related to a side-effect), then you could potentially break the entire system for further testing, until the bug is diagnosed and fixed, and the fix is deployed to the test environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Benefits&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, scale that down.  If you were fairly good at writing side-effect free code, how much faster would you be at reasoning at what some existing code did?  How much faster could you write unit tests?  How confident would you feel that the code with no side-effects was guaranteed bug-free, and that users could limit their exposure to any bugs it &lt;em&gt;did&lt;/em&gt; have?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If code has no side-effects, the compiler also may have additional optimizations that it could perform.  It may be much easier to implement those optimizations.  It may be much easier to even conceptualize an optimization for side-effect free code, which means that your compiler vendor might implement optimizations that are difficult-to-impossible in code with side effects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Concurrency is also drastically simpler to implement, to automatically generate, and to optimize when code has no side-effects.  This is because all the pieces can be safely evaluated in any order.  Allowing programmers to write highly concurrent code is widely considered the next big challenge that Computer Science needs to tackle, and one of the few remaining hedges against &lt;a href=&quot;http://en.wikipedia.org/wiki/Moore%27s_law&quot; rel=&quot;nofollow&quot;&gt;Moore's Law&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6611" LastEditorUserId="6611" LastEditorDisplayName="" LastEditDate="2010-10-28T09:32:30.943" LastActivityDate="2010-10-28T09:32:30.943" CommentCount="2" />
  <row Id="15273" PostTypeId="2" ParentId="14856" CreationDate="2010-10-28T06:32:29.653" Score="72" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Don't reinvent the wheel&lt;/strong&gt; is a widely mis-used dogma. Its idea is that if a suitable solution exists, use it instead of creating your own; in addition of saving effort, the existing solution is likely better implemented (bug-free, efficient, tested) than what you would come up with initially. So far, so good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is that a 100 % suitable solution seldom exists. A 80 % suitable solution might exist, and using it is probably fine. But how about 60 % suitable? 40 %? Where do you draw the line? If you don't draw the line, you could end up incorporating a bloated library to your project because you're using 10 % of its features - just because you want to avoid &quot;reinventing the wheel&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do reinvent the wheel, you'll get exactly what you want. You'll also &lt;em&gt;learn how to make wheels.&lt;/em&gt; Learning by doing shouldn't be underestimated. And in the end, a custom wheel may well be better than off-the-shelf generic wheel.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-28T12:28:34.047" LastActivityDate="2010-10-28T12:28:34.047" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="10" />
  <row Id="15274" PostTypeId="2" ParentId="15269" CreationDate="2010-10-28T06:33:49.917" Score="28" ViewCount="" Body="&lt;p&gt;Writing your functions/methods without side effects - so they're &lt;em&gt;pure functions&lt;/em&gt; - makes it easier to reason about the correctness of your program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also makes it easy to compose those functions to create new behaviour.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also makes certain optimisations possible, where the compiler can for instance memoise the results of functions, or use Common Subexpression Elimination.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: at Benjol's request: Because a lot of your state's stored in the stack (data flow, not control flow, as Jonas has called it &lt;a href=&quot;http://programmers.stackexchange.com/questions/9730/functional-programming-vs-oop/9769#9769&quot;&gt;here&lt;/a&gt;), you can parallelise or otherwise reorder the execution of those parts of your computation that are independent of each other. You can easily find those independent parts because one part doesn't provide inputs to the other.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-10-28T09:39:40.463" LastActivityDate="2010-10-28T09:39:40.463" CommentCount="6" />
  <row Id="15275" PostTypeId="2" ParentId="15269" CreationDate="2010-10-28T06:39:15.963" Score="1" ViewCount="" Body="&lt;p&gt;Side effects are like &quot;leaks&quot; in your code that will need to be handled later, either by you or some unsuspecting coworker. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Functional languages avoid state variables and mutable data as a way of making code less context dependent and more modular. Modularity insures that the work of one developer won't affect/undermine the work of another. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scaling rate-of-development with team size, is a &quot;holy grail&quot; of software development today. When working with other programmers, few things are as important as modularity. Even the most simple of logical side effects make collaboration extremely difficult.&lt;/p&gt;&#xA;" OwnerUserId="1444" LastActivityDate="2010-10-28T06:39:15.963" CommentCount="2" />
  <row Id="15276" PostTypeId="2" ParentId="15241" CreationDate="2010-10-28T06:42:57.720" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;why do you believe that such a counterintuitive proposition would hold&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It is a point of view that advocates taking risks.  By that point of view, if you don't take risks, you aren't testing the water, and you will not reach your maximum potential.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you agree that you learn from your mistakes, then you may agree with this adage.  You may find that the bruises you take aren't nearly as bad as you imagined, and when you are successful, you find yourself rewarded in excess, because you &quot;showed leadership&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This thought pattern makes the concept intuitive, if not the practice.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Risk&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Risk&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Risk_aversion&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Risk_aversion&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In what situations is this typically true&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This attitude is most valuable someone who is in a new job situation, but has an established track record (assuming competent management).  This is when mistakes will most often be forgiven (assuming good sense, intentions, and rationale), and progress will be most highly rewarded.&lt;/p&gt;&#xA;" OwnerUserId="6611" LastEditorUserId="6611" LastEditorDisplayName="" LastEditDate="2010-10-28T22:40:42.477" LastActivityDate="2010-10-28T22:40:42.477" CommentCount="3" />
  <row Id="15277" PostTypeId="2" ParentId="15216" CreationDate="2010-10-28T06:51:57.070" Score="1" ViewCount="" Body="&lt;p&gt;Assuming you've been at the copmpany a while and assuming you're fairly senior, I would guess they'd find it difficult to get a worthy replacement in 2 months either. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, the question is, would it make a big difference one way or the other? At the end of the day, it would only be a nice guesture which would probably not get noticed or appreciated anyway.&lt;/p&gt;&#xA;" OwnerUserId="598" LastActivityDate="2010-10-28T06:51:57.070" />
  <row Id="15278" PostTypeId="2" ParentId="15239" CreationDate="2010-10-28T07:07:10.810" Score="0" ViewCount="" Body="&lt;p&gt;Most programmers, OO savvy or not, uses concepts like abstraction, information hiding and interfaces in their code. OO languages simply makes that easier since these concepts are already built-in. You don't have to invent them yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A core algorithm like &lt;code&gt;qsort()&lt;/code&gt; uses abstractions for comparison of arbitrary objects. &lt;code&gt;fread()&lt;/code&gt; uses an interface to abstract away the details of the stream etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From that standpoint I find it hard to come up with any particular problem that are better solved with a non-OO approach.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-10-28T07:07:10.810" />
  <row Id="15279" PostTypeId="2" ParentId="12599" CreationDate="2010-10-28T07:11:19.480" Score="0" ViewCount="" Body="&lt;p&gt;Peter Seibel's new project, &lt;a href=&quot;http://codequarterly.com/code-challenges/&quot; rel=&quot;nofollow&quot;&gt;Code Quarterly&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;So we’re going to try to leverage the&#xA;  latter fact to help out with the&#xA;  former by including as a regular&#xA;  feature of Code Quarterly a coding&#xA;  challenge wherein we present the&#xA;  specification of a medium-sized bit of&#xA;  functionality, along with some test&#xA;  cases, and ask our readers to send us&#xA;  code that implements the&#xA;  specification.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;We will then publish all the submitted&#xA;  code on our website and will write an&#xA;  article giving a detailed analysis and&#xA;  critique of some of the best programs.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-28T07:11:19.480" />
  <row Id="15280" PostTypeId="2" ParentId="15245" CreationDate="2010-10-28T07:14:01.520" Score="0" ViewCount="" Body="&lt;p&gt;Peter Seibel's new project, &lt;a href=&quot;http://codequarterly.com/code-challenges/&quot; rel=&quot;nofollow&quot;&gt;Code Quarterly&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;So we’re going to try to leverage the&#xA;  latter fact to help out with the&#xA;  former by including as a regular&#xA;  feature of Code Quarterly a coding&#xA;  challenge wherein we present the&#xA;  specification of a medium-sized bit of&#xA;  functionality, along with some test&#xA;  cases, and ask our readers to send us&#xA;  code that implements the&#xA;  specification.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;We will then publish all the submitted&#xA;  code on our website and will write an&#xA;  article giving a detailed analysis and&#xA;  critique of some of the best programs.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://codequarterly.com/code-challenges/markup/&quot; rel=&quot;nofollow&quot;&gt;first challenge&lt;/a&gt; asks you to implement a parser for Markup, &quot;a lightweight markup language similar to Markdown and reStructuredText&quot;, which sounds rather practical/useful to me!&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-28T07:14:01.520" />
  <row Id="15281" PostTypeId="2" ParentId="15261" CreationDate="2010-10-28T07:17:55.307" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;(1) Is there a legal contract between the bidder and the coder? Just in case my delivery date extends, what happens?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes and no. For RentACoder.com you have to comply to the project's conditions that are in most case standards. Standard stuff such as intellectual property that you must give away to the company your work for. Obvious things like that.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;(2) After delivery, payment reach without trouble or not.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;RentACoder.com has an escrow service that limit the troubles. The company that post a bid request pay in advance. But you don't receive the money yet. If you don't provide the work as requested, the company can decide not accept your work. Then there is an arbitration service you can initiate where an arbitrator evaluate the situation and decide what to do. In most case, the process and decision is fair.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;(3) In case the customer didn't find the project useful, then? Probably he might say that it is not useful to me and you return money. He might copy the source code and return another copy to me.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's a risk yes, and very few do it. The arbitration service is pretty fair and will limit those behavior.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;(4) What are further recommendations? How should I start?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Create an account, and start to bid on projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Give what customers want&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have managed hundred of projects on the platforms you mention. Here is how I work, and I think that most people do the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I discard 9 or 10 bids from user with less than 15 ratings and if the average rating is less than 95%. I then filter on bid price. Sometimes, when I read a nice cover letter from a lower bid, I can decide to go with him. Sometimes in parallel with a higher bid (assign the same project to two different bidders).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I discard every bid with no personnal cover letter. I've observed that no cover letter means in most time that he didn't read the requirements. It will leads you to failure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I generally don't care of the location of the bidder. However, I require a good knowledge of English.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you get a project, do your best to satisfy the customer. Don't start any new project until the previous one is done. Target high quality. If the customer is not satisfied, negociate a refund.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You WILL face bad behavior and customers that will take advantage of you. But only at the beggining. As you gain high ratings, you will be able to bid higher and that problem will be less frequent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To summarize:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Bid lower than others bidders to increase your chances to get projects assigned. Explain why you bid lower&lt;/li&gt;&#xA;&lt;li&gt;Customer that take lower bids are the most difficult, so you will need to work harder than usual&lt;/li&gt;&#xA;&lt;li&gt;Always write a personnalized cover letter that shows you know what the customer wants&lt;/li&gt;&#xA;&lt;li&gt;Don't hesitate to negociate full refund if you think the customer is not happy&lt;/li&gt;&#xA;&lt;li&gt;Work on one project at a time. Or two maximum if communication with the customer is slow&lt;/li&gt;&#xA;&lt;li&gt;At the end of each project, add your success in your portofolio&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-28T07:39:41.287" LastActivityDate="2010-10-28T07:39:41.287" CommentCount="3" />
  <row Id="15282" PostTypeId="2" ParentId="15251" CreationDate="2010-10-28T07:22:39.917" Score="3" ViewCount="" Body="&lt;p&gt;I like to say that no answerers here will pay for your liabilities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;You must ask a lawyer&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My opinion: the risk is very limited since you are an individual of 21 year old, so probably without many assets. Suing you will be a waste of time and money since you won't be able to pay.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-28T07:22:39.917" CommentCount="2" />
  <row Id="15283" PostTypeId="2" ParentId="15230" CreationDate="2010-10-28T07:36:01.180" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Don't ask job seekers. Ask employers.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The goal of your resume is to get the interviews. The goal of the interview however, is to get the jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Here are few advices&lt;/em&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I rarely read anything else than the first page... just like most people I think. Ensure that the first page is attractive.&lt;/li&gt;&#xA;&lt;li&gt;I want to know what you want to do. The very first lines of the CV should list what you are looking for. Try to limit your list to 3 things.&lt;/li&gt;&#xA;&lt;li&gt;I want to see your last experiences at the beginning from newest to oldest. I don't care (yet) you worked as a paper boy 10 years ago. This will however be nice to mention it during the interview.&lt;/li&gt;&#xA;&lt;li&gt;Don't put your photo. It's not necessary, and people will (even if they think they won't) judge you on your face. They will eventually see you during the interview.&lt;/li&gt;&#xA;&lt;li&gt;Don't create lists of technologies you know. Talk about them in project's descriptions instead.&lt;/li&gt;&#xA;&lt;li&gt;Write a 2 to 3 sentence explanation of what you did for each projects. Put emphasis on problems you solved.&lt;/li&gt;&#xA;&lt;li&gt;Group projects by company. If you are a consultant this will be a company per project usually. If you were in the same company, you will have several projects per company. That's fine.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Not required, here 2 more advices that will boost your CV:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Put few references right in the CV with full names and company.&lt;/li&gt;&#xA;&lt;li&gt;Details about open-source projects you commit to, or communities your participate. Such as this one.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-28T07:36:01.180" CommentCount="2" />
  <row Id="15284" PostTypeId="2" ParentId="15241" CreationDate="2010-10-28T07:40:53.653" Score="4" ViewCount="" Body="&lt;p&gt;In a hierarchical organization the upper management typically has no clue about the subject matter you're working on; then their decisions are, inevitably, based on &lt;em&gt;how&lt;/em&gt; you represent your suggestions to them. Representing technical ideas to non-technical people is notoriously hard: if you explain it as it is, they don't understand anything and might refuse just because of that. And if you explain it so that they understand, you're not stating the thing as it is. Is it ethical either, huh? Thus is it may be best to just do the right thing instead of trying to explain that in such a flowery  and falseful manner that the management agrees with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not irresponsible. Even if you asked for permission, the result would strongly depend on how you represented your issue. Since you're able to affect the decision this way, why bother? Just do it and screw bureaucracy. At least you're not lying then. The key point is that you know it's &lt;strong&gt;the right thing to do&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, you have to be pretty damn sure you're right, since you're now the one taking the risk. What you're saving is your and management's time and effort; not a small feat.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-28T08:14:29.853" LastActivityDate="2010-10-28T08:14:29.853" CommentCount="1" />
  <row Id="15285" PostTypeId="2" ParentId="15241" CreationDate="2010-10-28T07:48:13.317" Score="6" ViewCount="" Body="&lt;p&gt;I think it's much more complicated that you think. Here are my two views on the problem:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Asking cost nothing&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'm always amazing when I hear discussion about salary increase. People complaint they are not increased. But if they don't ask (unless they are in an administration automatic and predefined salary increase), they will get nothing by just waiting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the same with the car of the neighbor you want to borrow... You may think &quot;he will think I'm .....&quot; or &quot;She won't accept because .....&quot; or &quot;He will probably need it anyway ....&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The truth is that you don't know until you ask. However, the way our brain work will fill our mind with unhelpful thought that you created yourself. In most case, they are false.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So asking &lt;em&gt;may&lt;/em&gt; be the first thing to try.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Do it instead of asking will prevent you from a refusal. If you fail, you can apologize&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This statement is also true because in enterprise where responsabilities are clearly defined and where people are rated on their individual achievement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you ask the responsible of another department for something that may (thought he creates) affect him negatively, but the outcome (if positive), will not affect him, he will surely refuse, to be safe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two answers are very similar: fear. In the first answer it's YOUR fear, in the second is the fear of THEM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To overcome fear of others, don't ask. In many many case, you will succeed, and in case of failure, then yes... apologize will be enought.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not in most case unfortunaly, but that's a risk YOU MUST take in order to advance in both life and your career.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-28T07:48:13.317" CommentCount="1" />
  <row Id="15286" PostTypeId="1" AcceptedAnswerId="15329" CreationDate="2010-10-28T07:51:30.023" Score="17" ViewCount="684" Body="&lt;p&gt;I come from a scientific and embedded programming background, and I have had minimal experience with web programming.  What would be the best approach to take to get up to speed with web programming?  Tools and framework suggestions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One approach would be to dive into learning a framework, such as Rails. I started doing this with rails tutorial, but I find that the framework abstracts so many important concepts that I should be learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To sum up, experienced programmer wants to learn web-app programming.&lt;/p&gt;&#xA;" OwnerUserId="1388" LastEditorUserId="4711" LastEditorDisplayName="" LastEditDate="2010-12-14T14:46:39.880" LastActivityDate="2010-12-14T14:46:39.880" Title="Best approach to learning web programming" Tags="&lt;career&gt;&lt;web-development&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="11" />
  <row Id="15287" PostTypeId="2" ParentId="15269" CreationDate="2010-10-28T08:18:49.343" Score="1" ViewCount="" Body="&lt;p&gt;In my experience good design in Object Orientated programing mandates the use of functions that have side effects. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, take a basic UI desktop application. I may have a running program that has on its heap an object graph representing the current state of domain model of my program. Messages arrive to the objects in that graph (for instance, via methods calls invoked from the UI layer controller). The object graph (domain model) on the heap is modified in response to the messages. Observers of the model are informed of any changes, the UI and maybe other resources are modified.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Far from being evil the correct arrangement of these heap-modifying and screen-modifying side effects are at the core of OO design (in this case the MVC pattern).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, that does not mean that your methods should have arbitary side-effects. And side effect free functions do have a place in improving the readbility and sometimes performance, of your code. &lt;/p&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-10-28T08:18:49.343" CommentCount="2" />
  <row Id="15288" PostTypeId="2" ParentId="1533" CreationDate="2010-10-28T08:20:59.713" Score="0" ViewCount="" Body="&lt;p&gt;Probably something like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Jr Developer -&gt; Developer -&gt; Sr Developer / Team Leader / Lead Developer -&gt; Software Architect&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-10-28T08:20:59.713" CommunityOwnedDate="2010-10-28T08:20:59.713" />
  <row Id="15289" PostTypeId="2" ParentId="15286" CreationDate="2010-10-28T08:24:55.393" Score="1" ViewCount="" Body="&lt;p&gt;Maybe you should start learning basics before using more sophisticated tools like a framework. Exactly like you start with easy and simple programs in C before using C++ and libraries, you can start with simple websites in Php or Python, with a frontend in javascript, just to get used to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, when you feel at ease, you can start making cleaner websites &quot;the right way&quot;.&lt;/p&gt;&#xA;" OwnerUserId="6579" LastActivityDate="2010-10-28T08:24:55.393" />
  <row Id="15290" PostTypeId="2" ParentId="15239" CreationDate="2010-10-28T08:38:28.500" Score="0" ViewCount="" Body="&lt;p&gt;Object Orientated programming can be used to model your domain. The classes can be used to represent the state and behaviour of entities, aggregates, collaborations, services within your domain model.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have found it to be a useful way of producing a DRY model that can cleanly represent the rules and behaviour of your application in a way that is decoupled from technical issues (such as the use of a database, or a message queue, or the fact it is a web application). A good book on the topic is &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321125215&quot; rel=&quot;nofollow&quot;&gt;Domain Driven Design&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;An important thing to note here, is that the &quot;entities&quot; I mentioned above do not have to map onto real world objects! They can represent abstract parts of the domain of your application to. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, if that is what Object Orientated programming is good at; what is not good at? Well, anything where the domain model cannot be expressed well as objects. For instance, some mathematical, (statistical, logic, etc) or technical (e.g. a compiler) programs are expressible better in different styles. I have found so far however, that at least for the kind of a business applications I have been involved in, a combination of OO and custom DSL techniques have been very effective in allowing us to take a domain modeling approach to design.  &lt;/p&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-10-28T08:38:28.500" />
  <row Id="15291" PostTypeId="2" ParentId="15286" CreationDate="2010-10-28T08:47:02.547" Score="9" ViewCount="" Body="&lt;p&gt;Do you know anything about HTML?  This is probably the most basic and easiest yet essential thing you need.  Make yourself a simple webpage, play around with fonts, images, positioning etc and everytime you come across a problem look up the answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From there move onto CSS, Server Side Programming etc&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you find this is the way most of us learnt.&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-10-28T08:47:02.547" />
  <row Id="15292" PostTypeId="1" AcceptedAnswerId="15335" CreationDate="2010-10-28T08:56:13.867" Score="17" ViewCount="1167" Body="&lt;p&gt;For me I am C# and Java person. I find these 2 languages are quite similar so its easier for me to crossover each other. I'm not sure if its good idea to pick up other different languages. Any thoughts?&lt;/p&gt;&#xA;" OwnerUserId="6450" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-10-28T15:09:57.207" LastActivityDate="2011-04-07T18:47:54.703" Title="A programmer should concentrate on at least how many languages?" Tags="&lt;programming-languages&gt;" AnswerCount="17" CommentCount="2" FavoriteCount="8" />
  <row Id="15293" PostTypeId="2" ParentId="15239" CreationDate="2010-10-28T09:01:16.153" Score="0" ViewCount="" Body="&lt;p&gt;I think that when building systems that combine other systems through web apis (rest, xmlprc, plain curl/wget) you can write OO wrappers but it's clearly just a convenience. If the web service to be used is simple, and it's just a matter of one or two lines, then OO is too much. If on the other hand you end up having to wrap a complex web api (like Amazon AWS for example) then it's nice to have a wrapper library (like boto in python for AWS).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thoughts?&lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-10-28T09:01:16.153" />
  <row Id="15294" PostTypeId="2" ParentId="2815" CreationDate="2010-10-28T09:04:37.280" Score="2" ViewCount="" Body="&lt;p&gt;Some syntactic sugar for the long-winded type-check-and-cast:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (obj is MyType)&#xA;{&#xA;    var o = (MyType) obj;&#xA;    &amp;lt;use o&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;e.g.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if ((var o = obj as MyType) != null)&#xA;{&#xA;    &amp;lt;use o&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or something a bit less ugly and more thought-through.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Better still, perhaps some special support for &lt;strong&gt;polymorphic extension methods&lt;/strong&gt;. Code like the above is often the result of writing an extension method that would really have been a virtual method with overrides had it been implemented in the original class.&lt;/p&gt;&#xA;" OwnerUserId="3278" LastEditorUserId="3278" LastEditorDisplayName="" LastEditDate="2010-10-28T14:15:43.053" LastActivityDate="2010-10-28T14:15:43.053" CommunityOwnedDate="2010-10-28T09:04:37.280" CommentCount="3" />
  <row Id="15295" PostTypeId="2" ParentId="15241" CreationDate="2010-10-28T09:08:36.010" Score="18" ViewCount="" Body="&lt;p&gt;I think that one imporant reason is responsibility. By asking for permission, you are transfering the responsibility to the person you are asking, so that person might be inclined to deny just to avoid being held responsible for the result, in case of failure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, once it's done, that's no longer a problem. Even if the result was a failure, it's still your responsibility, no matter if you get forgiveness or not.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-01-27T04:51:56.900" LastActivityDate="2011-01-27T04:51:56.900" CommentCount="3" />
  <row Id="15296" PostTypeId="2" ParentId="7966" CreationDate="2010-10-28T09:11:14.677" Score="2" ViewCount="" Body="&lt;p&gt;Two things:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;1)  Is (or fairly recently was) a developer him/her self.&lt;br&gt;&#xA;  2)  Manages &lt;em&gt;upwards&lt;/em&gt; as well as &lt;em&gt;downwards&lt;/em&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Point 1 will give you, as a developer, a manager who truly &lt;em&gt;understands&lt;/em&gt; what your job is and consists of, and &lt;em&gt;understands&lt;/em&gt; what you need (and also &lt;em&gt;don't&lt;/em&gt; need) to do your job to the best of your abilities.  If they're not a developer &lt;em&gt;now&lt;/em&gt; (and they really shouldn't actually be a hands-on developer now as they're a manager - and that's a full time job itself) they should have previous development experience, but that should be &lt;em&gt;fairly&lt;/em&gt; recently (ie. in the last few years) so that they're at least familiar with modern development languages, tools, methods and techniques.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Point 2 will give you a manager who accepts his responsibilities, shields his team from the office politics and needless distractions and fights for his team to be &lt;em&gt;provided&lt;/em&gt; with the things they need (thus enabling Point 1) and can manage expectation from the business and those above him (This is even more important in a large corporation where many levels and layers of management exist between you (the developer) and the business decision makers (senior management)).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a nutshell, having trait (1) gives you a manager who &lt;strong&gt;understands&lt;/strong&gt; what you need to get your job done, and having trait (2) gives you a manager who will &lt;strong&gt;provide&lt;/strong&gt; what you need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Joel Spolsky's &lt;a href=&quot;http://www.joelonsoftware.com/items/2007/12/04.html&quot; rel=&quot;nofollow&quot;&gt;Talk at Yale&lt;/a&gt; (and the related &quot;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000072.html&quot; rel=&quot;nofollow&quot;&gt;Command and Conquer and the Herd Of Coconuts&lt;/a&gt;&quot; article) puts it very succinctly:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In talking about the (bad) management at Juno:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;The assumption there was that&#xA;  managers exist to tell people what to&#xA;  do.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In talking about the (generally good) management at Microsoft:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Managers exist to get furniture out&#xA;  of the way so the real talent can do&#xA;  brilliant work.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4351" LastEditorUserId="4351" LastEditorDisplayName="" LastEditDate="2010-10-28T10:09:20.247" LastActivityDate="2010-10-28T10:09:20.247" CommunityOwnedDate="2011-01-26T19:57:30.693" />
  <row Id="15297" PostTypeId="2" ParentId="15292" CreationDate="2010-10-28T09:18:12.790" Score="8" ViewCount="" Body="&lt;p&gt;It is good to learn one new programming language each year. But rather than learning something similar to what you already know, I will advise you to learn something radically different like Scala or F#. It will show you new ways to do things and eventually enrich your programming skills.&lt;/p&gt;&#xA;" OwnerUserId="2554" LastActivityDate="2010-10-28T09:18:12.790" CommentCount="2" />
  <row Id="15298" PostTypeId="2" ParentId="15269" CreationDate="2010-10-28T09:19:00.227" Score="5" ViewCount="" Body="&lt;p&gt;A few notes:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Functions without side effects can trivialy be executed in parallel, while functions with side effects typically require some sort of synchronisation.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Functions without side effects allow for a more aggressive optimization (e.g. by transparentely using an result cache), because as long as we get the right result, it doesn't even matter whether or not the function was &lt;em&gt;really&lt;/em&gt; executed&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="6617" LastEditorDisplayName="" LastEditDate="2010-12-23T00:15:31.580" LastActivityDate="2010-12-23T00:15:31.580" />
  <row Id="15299" PostTypeId="2" ParentId="15292" CreationDate="2010-10-28T09:24:53.900" Score="21" ViewCount="" Body="&lt;p&gt;I'd say the most important thing is the ability to learn fast.&#xA;That said it's important to know different languages that are used for different purposes.&#xA;For example I know:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Python and Perl for the scripting languages category&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) C++ as &quot;framework&quot; language&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Java for mobile application&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) C for the &lt;em&gt;huge&lt;/em&gt; amount of legacy code&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) Some obsolete languages I used to know when I was young (Basic, Pascal, Clipper etc)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say that you need at least a &lt;em&gt;main&lt;/em&gt; language and a scripting one.&#xA;Knowing C# I'd say you need to learn Python or Perl or Ruby next. (I'd go with Python but that's just a matter of preference).&lt;/p&gt;&#xA;" OwnerUserId="4738" LastEditorUserId="4738" LastEditorDisplayName="" LastEditDate="2010-10-28T10:17:51.077" LastActivityDate="2010-10-28T10:17:51.077" CommentCount="5" />
  <row Id="15300" PostTypeId="2" ParentId="14827" CreationDate="2010-10-28T09:26:20.907" Score="1" ViewCount="" Body="&lt;p&gt;I currently work only for 30-35 hours per week, as a consultant, but fortunately, I still earn enough to make ends meet. Because of my familiy duties, I could hardly work more than 40 hours, but by working less hours, I have more time for my kids and myself.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-10-28T09:26:20.907" CommunityOwnedDate="2011-01-12T18:52:29.870" />
  <row Id="15301" PostTypeId="2" ParentId="15292" CreationDate="2010-10-28T09:30:16.747" Score="46" ViewCount="" Body="&lt;p&gt;It's not about how many languages you learn. It's about learning new concepts. Some languages might be able to teach you many concepts, while others might be able to teach only one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you know C#, you probably wouldn't learn anything terribly new by learning Java. But you would if you learned Haskell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So when you pick a new language to learn, pick something that will teach you concepts you don't already know.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-28T09:30:16.747" CommentCount="11" />
  <row Id="15302" PostTypeId="2" ParentId="15292" CreationDate="2010-10-28T09:42:24.763" Score="7" ViewCount="" Body="&lt;p&gt;concentrate on none. focus on learning and writing clean code; clear, expressive, simple and, most important, not duplicated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;go for the principles of that type of programming, the basics (for example, encapsulation for OOP; what is means and what it implies) and learn some principles&lt;/p&gt;&#xA;&#xA;&lt;p&gt;this stuff will make your job easier. this will even make it easier for the people that work with your or after you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ya, you have to know the syntax pretty well, too. but that not something what takes your focus a long time&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and ya, you must understand pretty well the technologies you use, too. but those can be prioritized according to the level of complexity your business requires.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the last two are not of a main focus, but of some focus&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-28T09:42:24.763" CommentCount="2" />
  <row Id="15303" PostTypeId="2" ParentId="15239" CreationDate="2010-10-28T09:50:41.790" Score="0" ViewCount="" Body="&lt;p&gt;concurrency: the locking mechanism seems kind of problematic; only some very good developers are put to work on the threading part of projects&lt;/p&gt;&#xA;&#xA;&lt;p&gt;extending: don't know how extandable the current OO languages are. only know that Java is bad. therefor DSLs (domain-specific languages) have to be implemented as Frameworks. Clojure on the other hand (that is functional), has macros.&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-28T09:50:41.790" />
  <row Id="15304" PostTypeId="2" ParentId="15292" CreationDate="2010-10-28T09:52:40.380" Score="4" ViewCount="" Body="&lt;p&gt;I don't think you can necessarily master a language without having enough understanding of other languages to see that language &quot;from the outside&quot; as it were. Each different language brings something else to the table and the concepts they bring are things you can take back to the main languages you work with. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So time spent learning to use other languages is never wasted even if you are not planning to use them commercially. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The old adage is to learn a language every year and I'd certainly say for the first ten years or so you need to do that. Maybe beyond that you could choose between exploring some of the ones you already know in more depth ( perhaps updating your knowledge of ones you learned a few years back ) or working with particular libraries rather than just accumulating new languages endlessly, but keeping an eye on exploring the practice of programming through working with different languages is certainly an aid to your development as a programmer.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-28T09:52:40.380" CommentCount="1" />
  <row Id="15305" PostTypeId="2" ParentId="2815" CreationDate="2010-10-28T09:54:33.423" Score="-1" ViewCount="" Body="&lt;p&gt;One thing that I miss from my C++ background is &lt;a href=&quot;http://www.parashift.com/c%2B%2B-faq-lite/const-correctness.html&quot; rel=&quot;nofollow&quot;&gt;const correctness&lt;/a&gt;. i.e. do not allow constant objects to be changed.&lt;/p&gt;&#xA;" OwnerUserId="3414" LastEditorUserId="3414" LastEditorDisplayName="" LastEditDate="2010-10-30T09:28:29.573" LastActivityDate="2010-10-30T09:28:29.573" CommunityOwnedDate="2010-10-28T09:54:33.423" CommentCount="3" />
  <row Id="15306" PostTypeId="2" ParentId="14827" CreationDate="2010-10-28T09:56:26.450" Score="2" ViewCount="" Body="&lt;p&gt;when I was in game industries I work almost like 50-60++ hrs per week.&#xA;after I left the industries, my life became more stablised. 40++ per week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find game industries is very challenging area to work in. Timelines are very tight most of the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No matter how you plan, you just cannot spend more time for yourself...&lt;/p&gt;&#xA;" OwnerUserId="6450" LastActivityDate="2010-10-28T09:56:26.450" CommunityOwnedDate="2011-01-12T18:52:29.870" />
  <row Id="15307" PostTypeId="2" ParentId="15269" CreationDate="2010-10-28T10:01:09.847" Score="1" ViewCount="" Body="&lt;p&gt;Well, IMHO, this is quite hypocritical. Nobody likes side effects, but everybody needs them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is so dangerous about side effects is that if you call a function, then this possibly has an effect not only on the way the function behaves when it is called next time, but possibly it has this effect on other functions. Thus side effects introduce unpredictable behavior and nontrivial dependencies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming paradigms such as OO and functional both address this problem. OO reduces the problem by imposing a separation of concerns. This means the application state, which consists of a lot of mutable data, is encapsulated into objects, each of which is responsible for maintaining its own state only. This way the risk of dependencies is reduced and problems are far more isolated and easier to track. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Functional programming takes a far more radical approach, where the application state is simply immutable from the perspective of the programmer. This is a nice idea, but renders the language useless on its own. Why? Because ANY I/O-operation has side effects. As soon as you read from any input stream, you application state is likely to change, because the next time you invoke the same function, the result is likely to be different. You may be reading different data, or - also a possibility - the operation might fail. The same is true for output. Even output is an operation with side effects. This is nothing you realize often nowadays, but imagine you have only 20K for your output and if you output any more, your app crashes because you're out of disk space or whatever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So yes, side effects are nasty and dangerous from the perspective of a programmer. Most bugs come from the way certain parts of the application state are interlocked in a nearly obscure way, through unconsidered and oftentimes unnecessary side effects. From the perspective of a user, side effects are the point of using a computer. They don't care for what happens inside or how it is organized. They do something and expect the computer to CHANGE accordingly.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-10-28T10:01:09.847" CommentCount="2" />
  <row Id="15308" PostTypeId="1" AcceptedAnswerId="15311" CreationDate="2010-10-28T10:07:45.567" Score="6" ViewCount="735" Body="&lt;p&gt;If you were to quit a small company, small enough that they'd probably hold a grudge because you quit, would you be able to list that job on your resume?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do list it on your résumé, I assume you just don't list it as a reference?&lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-10-28T13:55:29.927" ClosedDate="2010-10-28T14:15:14.963" Title="Can you list a job on a résumé if you quit?" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;resume&gt;" AnswerCount="5" CommentCount="6" />
  <row Id="15309" PostTypeId="2" ParentId="15269" CreationDate="2010-10-28T10:08:19.763" Score="4" ViewCount="" Body="&lt;p&gt;From an article about &lt;a href=&quot;http://java.ociweb.com/mark/clojure/article.html&quot; rel=&quot;nofollow&quot;&gt;Functional programming&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In practice, applications need to have some side effects. Simon Peyton-Jones, a major contributor to the functional programming language Haskell, said the following: &quot;In the end, any program must manipulate state. A program that has no side effects whatsoever is a kind of black box. All you can tell is that the box gets hotter.&quot; (&lt;a href=&quot;http://oscon.blip.tv/file/324976&quot; rel=&quot;nofollow&quot;&gt;http://oscon.blip.tv/file/324976&lt;/a&gt;) The key is to limit side effects, clearly identify them, and avoid scattering them throughout the code.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1797" LastActivityDate="2010-10-28T10:08:19.763" />
  <row Id="15310" PostTypeId="2" ParentId="15308" CreationDate="2010-10-28T10:19:14.190" Score="1" ViewCount="" Body="&lt;p&gt;You should avoid this situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Taking the decision to leave a company is not easy. In order to transform your existing employer into a really effective reference (that you will use in your resume), ensure the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Discuss your plan before taking the decision. He/she will really appreciate&lt;/li&gt;&#xA;&lt;li&gt;Leave for the good reasons. Leaving for a higher salary is less acceptable than leaving to take a huge opportunity.&lt;/li&gt;&#xA;&lt;li&gt;Propose your help after you left. If they have a question, an advice, always accept to help them.&lt;/li&gt;&#xA;&lt;li&gt;Don't leave a mess. Ensure that everything is in order before you leave. That's your priority, don't accept new stuff until the previous stuff is well organized.&lt;/li&gt;&#xA;&lt;li&gt;Help to find your replacement. Like you would do if it was your own company.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In any case, even if you don't have to legally (you have a contract, you can leave if you want), take in consideration their situation too. Especially if you are very important in the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I must confess that's one of my regrets in my career: not being able to leave &quot;well&quot; for every mission I had. If I could start over, I would follow the advices above.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-28T10:24:26.853" LastActivityDate="2010-10-28T10:24:26.853" CommentCount="3" />
  <row Id="15311" PostTypeId="2" ParentId="15308" CreationDate="2010-10-28T10:19:22.257" Score="15" ViewCount="" Body="&lt;p&gt;You should list it - otherwise there'll be a gap and you'll have to explain &lt;em&gt;that&lt;/em&gt; to your future employer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are really concerned about what they'll say don't list it as a reference. Though in the UK employers references usually don't say anything more (or less) than:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;this person worked for us between these dates and took this many sick days&quot;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Also don't forget - you left the company (for what ever reason) and if the form asks the question &quot;would you employ this person again&quot; I'd half expect the answer &quot;no&quot; anyway.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-28T10:19:22.257" CommentCount="3" />
  <row Id="15312" PostTypeId="2" ParentId="15269" CreationDate="2010-10-28T10:29:37.123" Score="0" ViewCount="" Body="&lt;p&gt;Evil is a bit over the top.. it all depends on the context of the usage of the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another consideration to those already mentioned is that it makes proofs of correctness of a program much simpler if there are no functional side effects.&lt;/p&gt;&#xA;" OwnerUserId="6620" LastActivityDate="2010-10-28T10:29:37.123" />
  <row Id="15313" PostTypeId="2" ParentId="15269" CreationDate="2010-10-28T10:40:47.353" Score="0" ViewCount="" Body="&lt;p&gt;Any side-effect introduces extra input/output parameters which must be taken in account when testing.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This make code validation much more complex as the environment cannot be limited to just the code being validated, but must bring in some or all of the surrounding environment (the global that is updated lives in that code over there, which in turn depends on that code, which in turn depends on living inside a full Java EE server....)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By trying to avoid side-effects you limit the amount of externalism needed to run the code.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-28T10:40:47.353" />
  <row Id="15314" PostTypeId="2" ParentId="15239" CreationDate="2010-10-28T10:44:14.890" Score="0" ViewCount="" Body="&lt;p&gt;The PURE object oriented languages are not suitable for many cases. Because there are some criteria to be fulfilled for being pure object oriented language. See-&lt;br&gt;&#xA;&lt;a href=&quot;http://stackoverflow.com/questions/250062/what-is-meant-by-the-term-true-object-orientation/250098#250098&quot;&gt;http://stackoverflow.com/questions/250062/what-is-meant-by-the-term-true-object-orientation/250098#250098&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But most widely-used programming languages are multi-paradigm. They incorporate many non-OO features to encounter various types of programming and development issues. C++, C#, Java or Ruby all have non-OO functionalities. So, they can face issues that pure-OO is not good at.&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-10-28T10:44:14.890" />
  <row Id="15315" PostTypeId="2" ParentId="15286" CreationDate="2010-10-28T10:56:12.677" Score="3" ViewCount="" Body="&lt;p&gt;From experience, the best way has to be get in too deep. Get making stuff, &lt;strong&gt;make mistakes&lt;/strong&gt;, make lot's of mistakes. Learn from them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With so many alternate paths, it's a really subjective thing to say you should take any one of them.&lt;/p&gt;&#xA;" OwnerUserId="4499" LastActivityDate="2010-10-28T10:56:12.677" CommentCount="1" />
  <row Id="15316" PostTypeId="2" ParentId="15286" CreationDate="2010-10-28T11:17:38.737" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Start with raw &lt;code&gt;HTML&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Then get used to &lt;code&gt;CSS&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Learn server side programming with any easy-to-use &lt;code&gt;scripting languages&lt;/code&gt; like python or php.&lt;/li&gt;&#xA;&lt;li&gt;Learn &lt;code&gt;Javascript&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Then go for the various web frameworks like &lt;code&gt;MVC&lt;/code&gt; for learning web application management. Use the framework that suits you like Ruby-On-Rails or ASP.net MVC. If you switch to any framework depending on a language not learnt in 3rd step like C#(ASP.net) or JAVA(J2EE), then you have to learn that language also.&lt;/li&gt;&#xA;&lt;li&gt;Go for &lt;code&gt;JQuery&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-10-28T11:17:38.737" />
  <row Id="15317" PostTypeId="1" AcceptedAnswerId="15319" CreationDate="2010-10-28T11:19:54.227" Score="5" ViewCount="189" Body="&lt;p&gt;What are the risk factors that we need to consider while planning for a software project.&lt;/p&gt;&#xA;" OwnerUserId="5605" LastActivityDate="2010-10-28T13:58:13.327" Title="Factors to be Considered for Software Risk Management" Tags="&lt;project-management&gt;&lt;software-engineering&gt;" AnswerCount="6" FavoriteCount="2" />
  <row Id="15318" PostTypeId="2" ParentId="15286" CreationDate="2010-10-28T11:27:33.233" Score="0" ViewCount="" Body="&lt;p&gt;The way I went about it was:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Create a personal website, with only static content (only HTML)&lt;/li&gt;&#xA;&lt;li&gt;Extend the website with dynamic content (using PHP)&lt;/li&gt;&#xA;&lt;li&gt;Reform everything into a framework, to get better separation of presentation and business logic.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The biggest hurdle I had to wrap my mind about is that the server-side part of a web-application will not do anything without a preceding trigger from the client.&lt;/p&gt;&#xA;" OwnerUserId="5099" LastActivityDate="2010-10-28T11:27:33.233" />
  <row Id="15319" PostTypeId="2" ParentId="15317" CreationDate="2010-10-28T11:32:12.947" Score="7" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Is your team adequately trained?&lt;/li&gt;&#xA;&lt;li&gt;Is your team large enough? &lt;/li&gt;&#xA;&lt;li&gt;Do you have contingency in case&#xA;someone leaves the project, and how&#xA;would it affect the schedule? &lt;/li&gt;&#xA;&lt;li&gt;Is your team too large? &lt;/li&gt;&#xA;&lt;li&gt;Do they have the resources they need?&lt;/li&gt;&#xA;&lt;li&gt;Might a competitor bring a product to&#xA;market before your project completes?&lt;/li&gt;&#xA;&lt;li&gt;Can you deal with changed&#xA;requirements? &lt;/li&gt;&#xA;&lt;li&gt;Can you deal with the&#xA;project becoming irrelevant? &lt;/li&gt;&#xA;&lt;li&gt;Do you have buy-in from senior&#xA;management? &lt;/li&gt;&#xA;&lt;li&gt;Do you have any reliances on&#xA;suppliers or contractors? &lt;/li&gt;&#xA;&lt;li&gt;Are you&#xA;doing anything in-house that your&#xA;team isn't competent enough at? &lt;/li&gt;&#xA;&lt;li&gt;Do you have budget big enough to meet&#xA;the estimated project cost?&lt;/li&gt;&#xA;&lt;li&gt;Can you meet unforeseen project&#xA;costs?&lt;/li&gt;&#xA;&lt;li&gt;And anything that's specific to your&#xA;circumstances :-)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4051" LastEditorUserId="156" LastEditorDisplayName="" LastEditDate="2010-10-28T11:42:38.247" LastActivityDate="2010-10-28T11:42:38.247" CommentCount="2" />
  <row Id="15320" PostTypeId="2" ParentId="9006" CreationDate="2010-10-28T11:35:04.820" Score="-1" ViewCount="" Body="&lt;p&gt;some have a learning curse quite steep, taking a long time (especially if you come from OOP; you'll beak your head a few times before getting the paradigm shift)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;even though i started getting functional programming (coming from Java and going Clojure) i still find it quite difficult. the community does not seem to write code as expressive as Java. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;seems like there is a small loss in expressiveness and a small increase in complexity.&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-28T11:35:04.820" CommentCount="7" />
  <row Id="15321" PostTypeId="1" AcceptedAnswerId="15332" CreationDate="2010-10-28T11:41:57.940" Score="12" ViewCount="732" Body="&lt;p&gt;If you've just been introduced to a new project, what's the first thing you look for to get an idea of how it works?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you look for the design first?  If there is a design, what do you look for in it? Class diagrams or deployment diagrams or sequence diagrams or something else?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or do you go straight for the code? If so, how do you understand how the different layers interact?&lt;/p&gt;&#xA;" OwnerUserId="55" LastActivityDate="2011-04-08T10:09:01.537" CommunityOwnedDate="2011-04-08T10:09:01.537" Title="What do you look at first: the code or the design?" Tags="&lt;design&gt;&lt;architecture&gt;" AnswerCount="18" FavoriteCount="3" />
  <row Id="15322" PostTypeId="2" ParentId="15317" CreationDate="2010-10-28T11:50:39.083" Score="2" ViewCount="" Body="&lt;p&gt;We used the &lt;a href=&quot;http://en.wikipedia.org/wiki/Capability_Maturity_Model&quot; rel=&quot;nofollow&quot;&gt;Capability Maturity Model&lt;/a&gt; for the longest time. &lt;/p&gt;&#xA;" OwnerUserId="6511" LastActivityDate="2010-10-28T11:50:39.083" />
  <row Id="15323" PostTypeId="2" ParentId="15317" CreationDate="2010-10-28T11:51:54.463" Score="4" ViewCount="" Body="&lt;p&gt;I would add to @Graham's list:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Are some of the requirements out of your control (eg the laws about calculating sales tax) and might they change?&lt;/li&gt;&#xA;&lt;li&gt;Are you using a tool for the first time and how confident are you the tool will work for you? (It might be brand new, eg Azure, or just new to your team)&lt;/li&gt;&#xA;&lt;li&gt;Are you relying on a general acceptance by your users of another product (eg writing an iPhone app means you expect your users to have iPhones, writing a BlackBerry app means you expect your users to have BlackBerries etc.)&lt;/li&gt;&#xA;&lt;li&gt;Can you restore/recreate any lost or wrongly-changed work (not just source control but version control for documents, emails from clients, etc)&lt;/li&gt;&#xA;&lt;li&gt;Do you have tools and process that enable you to understand progress, lack of progress, and regressions? Does management understand the milestones (I've had projects where at 10% complete the management saw UI prototypes and believed the work was &quot;almost done&quot; then pressured to hurry hurry hurry from then on.)&lt;/li&gt;&#xA;&lt;li&gt;Do you have testing (automated or not) to demonstrate that a particular set of changes has not broken some other part of the application? Without such tests, could you ever make significant changes such as porting to another language or platform? &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-28T11:51:54.463" />
  <row Id="15324" PostTypeId="1" CreationDate="2010-10-28T11:58:49.777" Score="2" ViewCount="277" Body="&lt;p&gt;Just found this &quot;placeholder&quot; in my feeds:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Asynchronous programming is something&#xA;  that helps make your UI more&#xA;  responsive, especially in applications&#xA;  that interact with databases or&#xA;  network or disk. It's also used to&#xA;  make ASP servers scale better.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Until now, asynchronous programming&#xA;  has also been prohibitively hard, &quot;not&#xA;  worth the investment&quot;-hard. But with&#xA;  the Async CTP we've made asynchronous&#xA;  programming easy enough that&#xA;  developers should routinely consider&#xA;  asynchrony for most of their&#xA;  applications.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Async is a true &quot;parity&quot; feature&#xA;  between VB and C#. We had the same&#xA;  designers develop it in VB and C# at&#xA;  the same time, and the same developers&#xA;  implement the feature for both&#xA;  compilers, and even the same unit&#xA;  tests for both. The end result is a&#xA;  feature that's keyword-for-keyword&#xA;  identical in both languages (and&#xA;  probably bug-for-bug compatible in the&#xA;  CTP...)&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;We're also very happy to announce that&#xA;  iterators are coming to VB, and are&#xA;  included in the Async CTP! That's&#xA;  because async and iterators are deeply&#xA;  related (and inside the compiler&#xA;  they're implemented with 99% the same&#xA;  codebase). We'll write further posts&#xA;  about iterators.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Sample:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Async Function WaitOnTablesAsync() As System.Threading.Tasks.Task(Of Decimal)&#xA;    Dim takings = 0D&#xA;    While Not TimeToGoHome&#xA;        DeliverMenus()&#xA;        Await GetOrdersAsync()&#xA;        Await WaitForKitchenAsync()&#xA;        GetFoodFromKitchen()&#xA;        GiveFoodToPatrons()&#xA;        Await WaitForPatronsToFinish()&#xA;        takings += Await GetPayment()&#xA;    End While&#xA;    Return takings&#xA;End Function&#xA;&#xA;Private Async Sub Button1_Click() Handles Button1.Click&#xA;    Dim takings = Await WaitOnTablesAsync()&#xA;    MessageBox.Show(&quot;Shift finished; took {0}&quot;, takings)&#xA;End Sub&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;What do you think about it?&lt;/p&gt;&#xA;" OwnerUserId="1748" LastActivityDate="2010-10-28T11:58:49.777" ClosedDate="2010-10-28T17:27:03.480" Title="New Async CTP leaked from the VB.net team blog" Tags="&lt;.net&gt;&lt;async&gt;" CommentCount="3" />
  <row Id="15325" PostTypeId="2" ParentId="15286" CreationDate="2010-10-28T11:58:57.047" Score="1" ViewCount="" Body="&lt;p&gt;I agree with Mild-Fuzz with going deep.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the start you're going to be working with at least 4 different interacting languages: (Html, Css, JavaScript and at least 1 server side language. Likely you're going to have SQL in there as well, possibly some XML. Then you'll likely also be using a framework or two (for JavaScript and your server-side code).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will have to start with the obvious basics in each. Ie make a simple html page, style it up with css, make it dynamic with some JS, a few basic CRUD operations to get into the server-side stuff. But after you have a basic knowledge of these you need to try and focus developing them roughly concurrently. You'll often find that to improve one you'll need to improve the others as you go, make sure to embrace this rather than fight it by trying to learn one well before diving into the others. Taking the all at once approach will also help you be more flexible when you move on to bigger things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will find that most of your problems and the areas with the most value is on the boundaries between each of these, an AJAX call to update a widget for instance will involve all of JS, CSS, HTML DOM, server-side and probably SQL. Passing data through each layer is you're biggest breaking point, if you are really good at one area in particular you might focus there to fix your bug and have a more convoluted solution than if you had looked at your server-side code.&lt;/p&gt;&#xA;" OwnerUserId="6366" LastActivityDate="2010-10-28T11:58:57.047" />
  <row Id="15326" PostTypeId="2" ParentId="14200" CreationDate="2010-10-28T11:59:26.407" Score="2" ViewCount="" Body="&lt;p&gt;You can't do reporting with Express. There isn't some trick to turn the free product into the paid product, and there isn't some obligation on Microsoft that they should have all the same features in the free and paid product. As you are saying, there's great value in those reporting features, and that's why people buy the versions that cost money. Just because Microsoft says you're allowed to sell the products you make with Express, they're not saying you can have any and all features in Express that you might use to make a product you will sell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, you can probably get the versions that cost money for free. If you're writing software you intend to sell, if you make web sites for customers, or if you're a student (high school or college/university) then there are programs from Microsoft that give you free licenses of non-Express editions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;See &lt;a href=&quot;http://programmers.stackexchange.com/questions/8055/can-a-developer-get-volume-discount-for-microsoft-products&quot;&gt;http://programmers.stackexchange.com/questions/8055/can-a-developer-get-volume-discount-for-microsoft-products&lt;/a&gt; which has several answers that have nothing to do with &quot;volume discounts&quot; because they actually explain how to get the full featured product for free.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-28T11:59:26.407" CommentCount="1" />
  <row Id="15327" PostTypeId="2" ParentId="15317" CreationDate="2010-10-28T12:03:24.483" Score="3" ViewCount="" Body="&lt;p&gt;I'd add the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you know your customer's needs.  If not, has your requirements gathering team adequately determined what it is that the customer wants in the past and been responsive enough to ensure that changes are propagated as quickly as possible to the development team?  Are they adding in gold-plating to the requirements?&lt;/li&gt;&#xA;&lt;li&gt;Is there an existing product you are competing with and have you determined prior to design just how you will compete with this product?  This is critical as existing products often come out with &quot;I want that feature too&quot; aspects which could make you deviate from original plans.  Is your team/management/target customer able to be side tracked by such an occurrence and do you have contingency plans set-up to handle such an issue?&lt;/li&gt;&#xA;&lt;li&gt;Is the proposed design of your product relevant to the market?  Halfway through you don't want to discover that while it satisfies your customer's needs it lacks critical aspects to compete in the &quot;new&quot; world.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-28T12:03:24.483" />
  <row Id="15328" PostTypeId="2" ParentId="15321" CreationDate="2010-10-28T12:03:32.103" Score="4" ViewCount="" Body="&lt;p&gt;My preference is to start with the design to get an overview of project and try to understand some of its key features and/or structure before drilling into the details.&lt;/p&gt;&#xA;" OwnerUserId="4960" LastActivityDate="2010-10-28T12:03:32.103" CommunityOwnedDate="2011-04-08T10:09:01.537" />
  <row Id="15329" PostTypeId="2" ParentId="15286" CreationDate="2010-10-28T12:06:36.007" Score="14" ViewCount="" Body="&lt;p&gt;Few years back I asked this question to myself!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is what I find easy and organized way to start web programming, you can skip steps which you have already know  &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;To learn web programming, first you have to know&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What is a website&lt;/li&gt;&#xA;&lt;li&gt;What are the main role players&lt;br&gt;&#xA;[Webserver, Mark-up languages, Client side scripting, Server side scripting, Protocols (http), Browsers    &lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Trace complete server round trip i.e. from typing google.com in browser and to loading the complete page.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Why http is stateless? Role of session to overcome this?  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Start learning html &amp;amp; little JavaScript  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Basic tags&lt;/li&gt;&#xA;&lt;li&gt;Marquee :-)&lt;/li&gt;&#xA;&lt;li&gt;Alert, change color page background color via javascript etc&lt;/li&gt;&#xA;&lt;li&gt;Have some fun playing around with html, javscript and css  &lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Server side scripting &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Start with php &lt;/li&gt;&#xA;&lt;li&gt;Use all necessary input – type elements and create forms&lt;/li&gt;&#xA;&lt;li&gt;Validate form with plain javascript&lt;/li&gt;&#xA;&lt;li&gt;Retrieve submitted form data and display it via php&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I think you can complete 1 to 5 quickly.  Its interesting part for all novice web programmers, because of the visual excitement they get while using html and css first time/&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then move to serious stuff!!!  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this time, you know fundamental things of web programming and working of website.&lt;br&gt;&#xA;Now, it’s your responsibility to choose most appropriate language, platform and framework.&lt;br&gt;&#xA;No one here can’t help you with this; You have to consider your personal interests and future plans to decide.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My recommendation is to go with php, since you learned it in initial stages. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Next, is databases&#xA;a.  Learn how to connect database &#xA;b.  Basic sql queries. Select, insert, update and delete&#xA;c.  Manipulate user inputs using database&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Now, start creating a personal website; or any simple website&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;Download any open source website and learn from it.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Here are few references, which may help you&lt;br&gt;&#xA; 1. &lt;a href=&quot;http://www.w3schools.com/&quot; rel=&quot;nofollow&quot;&gt;W3 Schools&lt;/a&gt; – for learning basics of html, css, JavaScript, asp, database queries&lt;br&gt;&#xA; 2. &lt;a href=&quot;http://php.net/&quot; rel=&quot;nofollow&quot;&gt;Php.net&lt;/a&gt;– for everything about php&lt;br&gt;&#xA; 3. For exploring open source projects&lt;br&gt;&#xA;  - &lt;a href=&quot;http://bitbucket.org/&quot; rel=&quot;nofollow&quot;&gt;http://bitbucket.org/&lt;/a&gt;&lt;br&gt;&#xA;  - &lt;a href=&quot;http://github.com/&quot; rel=&quot;nofollow&quot;&gt;http://github.com/&lt;/a&gt;&lt;br&gt;&#xA;  - &lt;a href=&quot;http://www.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.codeplex.com/&lt;/a&gt;&lt;br&gt;&#xA;  - &lt;a href=&quot;http://sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;http://sourceforge.net/&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Always remember that there are several peoples here for help you; if anything happen, post it in stackoverflow.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find someone with some amount of web programming experience to guide you; it’s always easy to learn from experienced programmers.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do not forget to find some books too… for a starter you can checkout &lt;a href=&quot;http://www.dummiesbooks.net/web-dummies-books.html&quot; rel=&quot;nofollow&quot;&gt;dummies&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All the best!!!&lt;/p&gt;&#xA;" OwnerUserId="493" LastEditorUserId="493" LastEditorDisplayName="" LastEditDate="2010-10-28T12:27:43.283" LastActivityDate="2010-10-28T12:27:43.283" CommentCount="1" />
  <row Id="15330" PostTypeId="2" ParentId="1533" CreationDate="2010-10-28T12:07:05.413" Score="8" ViewCount="" Body="&lt;p&gt;Depends on the sort of company you work for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many companies don't value talented, experienced developers as highly as managers, and will never reward them to the same level &amp;lt;- This is not the sort of company people like you should be working for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other (usually more tech-focused) companies will value their developers more, and staying in technology should not limit your career in terms of reward and status &amp;lt;- you probably want to work for this sort of company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a bit of entrepreneurial spirit you could also start your own company - then you'd be the boss.&lt;/p&gt;&#xA;" OwnerUserId="4757" LastActivityDate="2010-10-28T12:07:05.413" CommunityOwnedDate="2010-10-28T12:07:05.413" />
  <row Id="15331" PostTypeId="2" ParentId="15241" CreationDate="2010-10-28T12:07:42.780" Score="3" ViewCount="" Body="&lt;p&gt;When you ask permission, the person you are asking must imagine the consequences that COULD happen if you are allowed to do it. This could include terrible things like the company going bankrupt. A risk averse person (or one with a lurid imagination) will tell you no. They may not be swayed by the possible benefit of your plan. When you just go on ahead and do it without asking, if you get the benefit then you are unlikely to be punished or reprimanded. If you get a small consequence, you will get a small punishment. Of course, if you bankrupt your employer, it's all over.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't employ someone who needs to check with me on every email, every line of code, constantly wanting permission to do their regular job. But someone who thought it was ok to risk the entire company on a ridiculous gamble (a company that isn't theirs to risk, since I own it not them) would not still work for me even if the gamble paid off. You need to be in a fairly big and deep pocketed organization (the US military for example) to take this attitude - and you need to understand the risks very well.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-28T12:07:42.780" />
  <row Id="15332" PostTypeId="2" ParentId="15321" CreationDate="2010-10-28T12:10:24.837" Score="15" ViewCount="" Body="&lt;p&gt;I start with code. Separate design documents, if there are any, are as likely to be wrong or misconceived as not. So, i start by trying to trace some simple flow through the code; if it's a webapp, it could be a request or a sequence of requests, for instance. Once i've done that, i have a sort of skeleton to hang more understanding on. Then, i might go back and read designs or other documentation, but at that point, i have something concrete to relate them to, and to validate them with, so i can detect duff information. Or i might just carry on reading code, or test cases, etc.&lt;/p&gt;&#xA;" OwnerUserId="854" LastActivityDate="2010-10-28T12:10:24.837" CommunityOwnedDate="2011-04-08T10:09:01.537" CommentCount="1" />
  <row Id="15333" PostTypeId="2" ParentId="15308" CreationDate="2010-10-28T12:18:42.473" Score="7" ViewCount="" Body="&lt;p&gt;Of course! Listing jobs you've held is not the same as listing references. If it's the job you've just left, be prepared for questions about why you're leaving it. If it's a job or two ago, no worries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, quitting is a way better reason for leaving a job than being fired for incompetence. If you only listed jobs from which you were fired, it would be a strange resume indeed.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-28T12:18:42.473" />
  <row Id="15334" PostTypeId="2" ParentId="15292" CreationDate="2010-10-28T12:33:20.757" Score="8" ViewCount="" Body="&lt;p&gt;You should &lt;strong&gt;concentrate on the languages you need and use for what you're doing&lt;/strong&gt;.  Really learning a language comes from practice, so you get the benefit of that language when you're practicing it.  If you are going to learn a new language in your spare time, then do it by implementing it in tasks of increasing complexity, so that you really get a handle on it.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-10-28T12:33:20.757" />
  <row Id="15335" PostTypeId="2" ParentId="15292" CreationDate="2010-10-28T12:53:31.503" Score="25" ViewCount="" Body="&lt;p&gt;I can think of at least five reasons to learn a language, and it seems like you should eventually learn one for each of these.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;One language to get your first job - likely Java/C#/C++&lt;/li&gt;&#xA;&lt;li&gt;One language to get things done - likely Bash/Perl/Python/Ruby&lt;/li&gt;&#xA;&lt;li&gt;One language to bend your mind - likely Haskell/Clojure/Scala/F#&lt;/li&gt;&#xA;&lt;li&gt;One language for domain specific reasons - likely JavaScript/Objective C&lt;/li&gt;&#xA;&lt;li&gt;One language to get your hands dirty - likely C/Assembly&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-10-28T12:53:31.503" CommentCount="10" />
  <row Id="15336" PostTypeId="2" ParentId="15216" CreationDate="2010-10-28T13:00:36.470" Score="2" ViewCount="" Body="&lt;p&gt;I agree its not necessary but I don't really see the downside to doing it either. Worst case is they find someone next week and tell you to take a hike after a month. That hardly would be a problem for you would it?&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-10-28T13:00:36.470" />
  <row Id="15337" PostTypeId="2" ParentId="15317" CreationDate="2010-10-28T13:00:44.367" Score="2" ViewCount="" Body="&lt;p&gt;Steve McConnell's &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1556159005&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Rapid Development&lt;/em&gt;&lt;/a&gt; contains a chapter on risk management, with a usefully long list of potential risks. I've used it as a starting point more than once.&lt;/p&gt;&#xA;" OwnerUserId="542" LastActivityDate="2010-10-28T13:00:44.367" />
  <row Id="15338" PostTypeId="2" ParentId="15321" CreationDate="2010-10-28T13:05:40.833" Score="2" ViewCount="" Body="&lt;p&gt;It depends upon the type of application. If its a data-centric app, I usually start with the database design. If it has a UI you can run (or good screen designs) those can also give you a good idea what the app does very quickly (I'm talking just a few hours here at most). After that I start digging into code and it will make more sense because I know what the application is doing.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-10-28T13:05:40.833" CommunityOwnedDate="2011-04-08T10:09:01.537" />
  <row Id="15339" PostTypeId="2" ParentId="15321" CreationDate="2010-10-28T13:09:24.427" Score="9" ViewCount="" Body="&lt;p&gt;I would start at a higher level.  If there is any user facing documentation - user manual or guide.  Failing that then have a look at the requirements spec so that you have some idea as to what the software is supposed to do.  I would than look at the design and try to map it onto the code files.  Hopefully these are structured into folders in some sensible way.  I would then pick part of the design and go into the files to follow the flow of the code without getting too bogged down into the fine detail.&lt;/p&gt;&#xA;" OwnerUserId="5877" LastActivityDate="2010-10-28T13:09:24.427" CommunityOwnedDate="2011-04-08T10:09:01.537" CommentCount="1" />
  <row Id="15340" PostTypeId="2" ParentId="14856" CreationDate="2010-10-28T13:17:05.887" Score="36" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Don't use anything open-source (or non-Microsoft for you .NET developers)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If Microsoft didn't develop it -- we don't use it here.  Want to use ORM - EF, want to use IOC - Unity, want to log - enterprise logging application block.  So many better libraries exist -- yet I'm always stuck ordering from the dollar menu of the development world.  I swear every time I hear Microsoft Best Practices I think &quot;McDonald's Nutritional Guidelines&quot;.  Sure, you'll probably live if you follow them, but you'll also be malnourished and overweight. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Note this might not be &lt;strong&gt;your&lt;/strong&gt; best practice, but it's a common one followed almost everywhere I've worked.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-10-28T13:17:05.887" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="8" />
  <row Id="15341" PostTypeId="2" ParentId="15308" CreationDate="2010-10-28T13:17:53.563" Score="3" ViewCount="" Body="&lt;p&gt;In the U.S. at least, it is generally recognized that changing jobs occasionally is the only real way to make significant advances in your rate of pay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps it is just the corporate short-sightedness of keeping expenses down. Perhaps it is the phenomenon described in that old song: &quot;You don't know what you got 'til it's gone.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless, changing jobs is expected, normal and healthy both for the employee and employer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do list the job on your resume, and be prepared to honestly answer questions about the company, your work experience there and your reasons for leaving. Don't bad mouth anyone or anything about the place; that is a red-flag for many interviewers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Above all, be honest&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-10-28T13:17:53.563" CommentCount="1" />
  <row Id="15342" PostTypeId="2" ParentId="14856" CreationDate="2010-10-28T13:47:45.630" Score="31" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Object orientation&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is the assumption, just because code is &quot;object-oriented&quot;, it's magically good. So people go on squeezing functionality into classes and methods, just to be object-oriented.&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="13473" LastEditorDisplayName="" LastEditDate="2011-01-17T10:43:52.930" LastActivityDate="2011-01-17T10:43:52.930" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="13" />
  <row Id="15343" PostTypeId="2" ParentId="15308" CreationDate="2010-10-28T13:55:29.927" Score="1" ViewCount="" Body="&lt;p&gt;As an employer, I'd much rather hear from a candidate that they left due to legitimate technical disagreements, culture, etc., than having it unexplained or jumping from job to job seeking small advantages.  Genuine opportunities are a different matter (promotions, ability to work on something cutting edge or exciting, etc.).  It shouldn't turn into whining or complaining, but describing in a reasonable way what the disagreement was is your opportunity that you really care about the craft of programming, rather than just treating it as a paycheck.  It is also a chance to be proactive about potentially bad references, rather than being defensive after the fact.  It is a small enough industry that someone at the new company may have contacts at the old company, even if you don't list them as a reference.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The basic rule comes down to, Always act like an adult, even if others are being childish.  &lt;/p&gt;&#xA;" OwnerUserId="1427" LastActivityDate="2010-10-28T13:55:29.927" />
  <row Id="15344" PostTypeId="2" ParentId="15317" CreationDate="2010-10-28T13:58:13.327" Score="1" ViewCount="" Body="&lt;p&gt;Do you have the right mix of people? Are all your developers application developers in a data-centric project? Do you need a database designer, a QA person or a UI specialist  instead of only hiring people with the same skill mix? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have adequate hardware to support the project? This is especially true if you are creating a high volume system or if you are too cheap to buy development servers in addition to production servers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you set up backups of your databases? Just having the code to recreate a database is not enough, you need to be keeping the data as well even on dev.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are your developers working with a small data set instead of one the size that production will be? This almost guarantees production performance issues because queries that work well on a small data set often do not on a large set. I've seen a lot of failed production updates that had to be immediately rolled back due to this particular problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you defining what to do in edge cases and are you testing them? For instance, I've seen projects where nobody ever defined what happens what an approval is required and the approver says no.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will you be forced into making bad design choices in order to meet unreasonable deadlines? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your planning for the project did you consider that people take vacation and sick days, get jury duty, take bereavement leave etc? You need to plan not just for people leaving the project but for the day-to-day time off people get.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-28T13:58:13.327" />
  <row Id="15345" PostTypeId="2" ParentId="15321" CreationDate="2010-10-28T14:01:51.793" Score="4" ViewCount="" Body="&lt;p&gt;Always the design. With the code it's worth going through the developer setup steps (checking out the source, getting the project built, making any configuration changes required) but there's no point trying to learn an application's structure from its code. That only tells you &lt;em&gt;what&lt;/em&gt; the structure is, not &lt;em&gt;why&lt;/em&gt; the structure is or what the other developers think the highlights and bad points are of the architecture. Those you learn from whiteboard diagrams and chats with the developers.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-10-28T14:01:51.793" CommunityOwnedDate="2011-04-08T10:09:01.537" />
  <row Id="15346" PostTypeId="2" ParentId="15216" CreationDate="2010-10-28T14:06:07.700" Score="1" ViewCount="" Body="&lt;p&gt;Once I was 100% sure I was leaving, I'd give notice so I could feel good about where I stood and I wouldn't have to answer the question &quot;how long have you been planning to leave&quot; with &quot;two months&quot; when I gave them only two weeks.  But that's the only reason. But it would be my right to give them shorter notice if I wanted. Sometimes it's a bitch to work at a place when everyone knows you are leaving, and a protracted breakup can really suck the life out of the remaining time. They might even wait until the last couple of weeks before addressing the problem, knowing they &quot;still have enough time&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd only give immediate notice to soothe my over-active conscience. I totally agree with @timday - the company likely would not tell you they were laying you off until they had to and unless you feel like you should give them more notice than is required and feel okay with an answer to the inevitable &quot;how long have you been planning to leave&quot; question, don't sweat it.&lt;/p&gt;&#xA;" OwnerUserId="988" LastActivityDate="2010-10-28T14:06:07.700" />
  <row Id="15347" PostTypeId="2" ParentId="15251" CreationDate="2010-10-28T14:07:24.063" Score="1" ViewCount="" Body="&lt;p&gt;If you are not making money off of it, you are unlikely to be sued right away.  The most likely result, if Big Corp find out about it and cares, is a &lt;em&gt;cease and desist&lt;/em&gt; letter.  Basically, telling you to stop what you are doing.  At that point, you can decide if it is worth fighting to continue, or just stop (or go underground).  If you ever get to the point where you want to start selling something, then you need legal advice to figure out what your options are.&lt;/p&gt;&#xA;" OwnerUserId="1427" LastActivityDate="2010-10-28T14:07:24.063" CommentCount="3" />
  <row Id="15348" PostTypeId="2" ParentId="15321" CreationDate="2010-10-28T14:07:57.430" Score="1" ViewCount="" Body="&lt;p&gt;Design first, then code, top-down if you wish, so I understand the context at every level I have to work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if I have to do a very specific change, like fixing a report or a calculation, I just go and look at the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More specifically, my &quot;design first&quot; approach is this one:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I start with de domain model if there is one, if there is none I build al least a basic one (a good starting point is the data model). It defines the &quot;glosary&quot; of the application and the relation between the objects (classes).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It pictures &quot;which objects are handled&quot; by the aplication.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I look for the use case model to find out &quot;what processes are done&quot; by the application, although I prefer a process map if the is one, that shows sequences of processes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that I should have a nice picture of the application and then I can go about designing the change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, the above answer is in the context of business applications.&lt;/p&gt;&#xA;" OwnerUserId="5332" LastEditorUserId="5332" LastEditorDisplayName="" LastEditDate="2010-11-02T13:15:21.780" LastActivityDate="2010-11-02T13:15:21.780" CommunityOwnedDate="2011-04-08T10:09:01.537" />
  <row Id="15349" PostTypeId="2" ParentId="15216" CreationDate="2010-10-28T14:24:03.397" Score="3" ViewCount="" Body="&lt;p&gt;Maybe it would be better for them if you left now - that would give them a chance to hire a replacement, or adjust their plans to ruin everyone's Christmas. I suggest asking for a meeting with your boss and saying what you have in mind. You could come out of that meeting with a small cardboard box holding the contents of your desk, or an agreement to leave Dec 1st, or Jan 1st, or Jan 15th, or whatever. You can work something out that is good for everyone (bonus for you if you stay, for example) or you can get out of a bad situation sooner rather than later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, if your plans rely on being paid through till the end of the year, don't do this. But if you're done and the only question is when, they might appreciate a chance to schedule it and react to it.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-28T14:24:03.397" />
  <row Id="15350" PostTypeId="1" AcceptedAnswerId="15355" CreationDate="2010-10-28T14:24:03.730" Score="7" ViewCount="385" Body="&lt;p&gt;Registering on an insurance company's website right now, and my password is 16 characters long, using a nice variety of letters, numbers, special characters, etc. However, here's their list of restrictions:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Note your password:&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;must be between 6 and 12 characters&lt;/li&gt;&#xA;  &lt;li&gt;must not contain spaces, special/international characters&lt;/li&gt;&#xA;  &lt;li&gt;must not contain your user name, first name or last name&lt;/li&gt;&#xA;  &lt;li&gt;is case-sensitive&lt;/li&gt;&#xA;  &lt;li&gt;should contain at least 1 number and 1 letter&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I can understand minimum 6 characters, not allowing parts of your name, being case-sensitive, and needing at least 1 number and letter. The part I don't get is restricting your choice of characters you can use, and having an upper bound.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why do websites do this? The only thing I can think of it they don't know the basics of hashing a password, which would secure it better than anything, and get rid of any security concerns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I choose to type &lt;code&gt;DELETE FROM users WHERE 1=1&lt;/code&gt; as my password, I should be allowed to. PHP's MD5 hash of it becomes &lt;code&gt;fe5d54132b51b7d65ab89b739b600b4b&lt;/code&gt; which I don't think will harm anything.&lt;/p&gt;&#xA;" OwnerUserId="2416" LastActivityDate="2010-12-04T13:39:12.017" Title="Why do websites restrict the number &amp; choice of characters in a password?" Tags="&lt;security&gt;&lt;passwords&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="1" />
  <row Id="15351" PostTypeId="2" ParentId="15350" CreationDate="2010-10-28T14:32:06.683" Score="0" ViewCount="" Body="&lt;p&gt;Not that I agree with the password restriction in this case, but generally allowing full set of unicode characters for password might introduce some problems. E.g. if the system allows retrieving password via email through some validation mechanism, the password might not get rendered properly in the email client due to lack of unicode support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for why spaces and other special characters are no allowed, e.g. in the password retrieval email:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your password is :actually something else, not this one&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ermm... confusing yea?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;vs&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your password is ActuallySomethingElseNotThis1&lt;/p&gt;&#xA;" OwnerUserId="2262" LastActivityDate="2010-10-28T14:32:06.683" CommentCount="5" />
  <row Id="15352" PostTypeId="2" ParentId="14200" CreationDate="2010-10-28T14:40:08.140" Score="1" ViewCount="" Body="&lt;p&gt;The problem is that most reporting packages are commercial.  That being said, have you thought about programs like Bizspark and websitespark that offer free software licenses?  There are requirements to enroll, but from the sounds of it you should be eligible.  Here are the links -&#xA;&lt;a href=&quot;http://www.microsoft.com/bizspark/&quot; rel=&quot;nofollow&quot;&gt;http://www.microsoft.com/bizspark/&lt;/a&gt; and &lt;a href=&quot;http://www.bizspark.com/Programs/Pages/WebsiteSpark.aspx&quot; rel=&quot;nofollow&quot;&gt;http://www.bizspark.com/Programs/Pages/WebsiteSpark.aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5804" LastActivityDate="2010-10-28T14:40:08.140" />
  <row Id="15353" PostTypeId="2" ParentId="2815" CreationDate="2010-10-28T14:41:29.823" Score="-1" ViewCount="" Body="&lt;p&gt;Include an &quot;IM Jon Skeet&quot; option on the IDE&lt;/p&gt;&#xA;" OwnerUserId="178" LastActivityDate="2010-10-28T14:41:29.823" CommunityOwnedDate="2010-10-28T14:41:29.823" />
  <row Id="15354" PostTypeId="2" ParentId="15292" CreationDate="2010-10-28T14:43:46.427" Score="1" ViewCount="" Body="&lt;p&gt;When you're not a native English speaker, at least you must concentrate in improving your &lt;strong&gt;English&lt;/strong&gt;. I'm saying that based on my experience. Understanding that language helped me a lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All good materials(books, articles, code, etc.) for learning programming languages, technologies and new concepts are written in English.&lt;/p&gt;&#xA;" OwnerUserId="374" LastActivityDate="2010-10-28T14:43:46.427" />
  <row Id="15355" PostTypeId="2" ParentId="15350" CreationDate="2010-10-28T14:44:19.287" Score="8" ViewCount="" Body="&lt;p&gt;It comes down to their programmers (or their management) being lazy and/or uneducated.  It doesn't take that much more work to make your system accept any characters, but it means you need to spend some time thinking about SQL injection attacks, cross site scripting, making sure that all parts of the system are able to deal with it, etc.  It can be cheaper and quicker just to forbid any characters that could be a problem.&lt;/p&gt;&#xA;" OwnerUserId="1427" LastActivityDate="2010-10-28T14:44:19.287" />
  <row Id="15356" PostTypeId="2" ParentId="15292" CreationDate="2010-10-28T14:47:54.367" Score="5" ViewCount="" Body="&lt;p&gt;A programmer need to concantrate on &lt;strong&gt;programming&lt;/strong&gt; not on a spesific language/s.&lt;/p&gt;&#xA;" OwnerUserId="1262" LastActivityDate="2010-10-28T14:47:54.367" />
  <row Id="15357" PostTypeId="2" ParentId="15292" CreationDate="2010-10-28T14:49:31.817" Score="5" ViewCount="" Body="&lt;p&gt;As many as is needed to do your job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But C# and Java are as close as UK English and US English.  You might learn something &lt;em&gt;new&lt;/em&gt; by going for Finnish or Navajo.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-28T14:49:31.817" CommentCount="3" />
  <row Id="15358" PostTypeId="2" ParentId="15350" CreationDate="2010-10-28T14:52:41.657" Score="1" ViewCount="" Body="&lt;p&gt;I can understand prohibiting special characters, but there is no excuse for password length limits.  I use a password manager and like to use ridiculously long passwords.  Since I don't have to remember them or type them, why not?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can think of only one reason why a site might limit password length.  The people who run the site are afraid that if they let their users use really good passwords, they will forget them more frequently and they will have to field a couple more support calls or emails.  It's a very lame excuse, but it's the only possible reason for such a stupid policy that I can come up with.&lt;/p&gt;&#xA;" OwnerUserId="477" LastActivityDate="2010-10-28T14:52:41.657" CommentCount="2" />
  <row Id="15359" PostTypeId="2" ParentId="15350" CreationDate="2010-10-28T14:53:35.833" Score="1" ViewCount="" Body="&lt;p&gt;Banks restrict the special characters, probably because &lt;s&gt;they are storing the passwords in plain text, &lt;em&gt;which they shouldn't be doing&lt;/em&gt;, and&lt;/s&gt; they are afraid some special characters will leak into their business logic and hack it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to the limit of number of characters, I can only speculate that software on some of the mainframes they still use cannot handle text fields larger than that.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-28T16:19:27.670" LastActivityDate="2010-10-28T16:19:27.670" CommentCount="4" />
  <row Id="15360" PostTypeId="1" AcceptedAnswerId="15363" CreationDate="2010-10-28T15:03:20.837" Score="8" ViewCount="359" Body="&lt;p&gt;I read this answer &lt;a href=&quot;http://programmers.stackexchange.com/questions/15350/why-do-websites-restrict-the-number-choice-of-characters-in-a-password/15351#15351&quot;&gt;http://programmers.stackexchange.com/questions/15350/why-do-websites-restrict-the-number-choice-of-characters-in-a-password/15351#15351&lt;/a&gt; and found a comment insisting not to send password in E-Mail, this raises me the question of handling Forgot Password option? At any cost the raw password must be displayed in any UI so that user will be able to read it. So what would be the BEST/BETTER way to handle &quot;Forgot Password&quot;&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2011-01-27T22:16:09.673" Title="&quot;Forgot Password&quot; - How to handle this?" Tags="&lt;recommendations&gt;&lt;passwords&gt;&lt;email&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="1" />
  <row Id="15361" PostTypeId="2" ParentId="15292" CreationDate="2010-10-28T15:04:23.893" Score="2" ViewCount="" Body="&lt;p&gt;When it comes to keeping skills up to date, and flexible, I think you should try to learn at least one completely new programming language every 6 months or so. And I mean a language that is very, very different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So while learning more of the .net framework while using C# or the Java frameworks helps in keeping limber, learning Haskell, Smalltalk, Scala, Clojure or Ruby will expand your technique and help you think in different ways, some of which you may take usefully back to your main language, and some of which may help you move on if Java ceases to be king of the hill.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've never learned C, then although it's syntax has been brought to Java, the mindset can be quite different. It is worth knowing it, in depth, and even better, understanding how OO code can be written in this language which seems only procedural.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recommend reading Bruce Tate's book &quot;Beyond Java&quot;, which highlights only too well the dangers of being only on one language, noting the rise and fall of C++. Although C++ is far from dead yet and has decades left, it is becoming restricted more and more to use only in situations that cannot benefit from productivity gains in other languages. To contrast, Sinatra, a ruby framework, allows you to build a simple web service in about 6/7 lines of code, the C++ equivalent may be an order of magnitude larger than this.&lt;/p&gt;&#xA;" OwnerUserId="6630" LastActivityDate="2010-10-28T15:04:23.893" />
  <row Id="15362" PostTypeId="2" ParentId="15360" CreationDate="2010-10-28T15:07:21.080" Score="3" ViewCount="" Body="&lt;p&gt;You should not store the users main password as plaintext, but you CAN store a temporary password as plaintext, i.e&lt;/p&gt;&#xA;&#xA;&lt;p&gt;user resets password -&gt; temp password is created -&gt; temp password is sent via email -&gt; user is forced to change password at next log in (new password can't be temp password maybe)&lt;/p&gt;&#xA;" OwnerUserId="3541" LastActivityDate="2010-10-28T15:07:21.080" CommentCount="4" />
  <row Id="15363" PostTypeId="2" ParentId="15360" CreationDate="2010-10-28T15:08:22.483" Score="20" ViewCount="" Body="&lt;p&gt;A good application design will not be able to explicitly recover a users password.  This is because it is usually stored after it is run through some sort of hash which is a one way operation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best way to handle lost password is to perform a reset, email to the users account a link with a generated parameter tacked on that identifies this as a valid password reset for the account in question.  At this point they can set a new password.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This does assume you have a users email address on file.  &lt;/p&gt;&#xA;" OwnerUserId="136" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2011-01-27T22:16:09.673" LastActivityDate="2011-01-27T22:16:09.673" CommentCount="1" />
  <row Id="15364" PostTypeId="2" ParentId="14200" CreationDate="2010-10-28T15:14:18.323" Score="0" ViewCount="" Body="&lt;p&gt;I'd like to point out also that Crystal Reports tools aren't integrated anymore in VS since version 2008. They have been replaced by MS Reports, and I found them more powerful and easy to use than CR. VS does anyway support the CR format for legacy projects, it just doesn't provide you the templates to create them.&lt;/p&gt;&#xA;" OwnerUserId="3426" LastActivityDate="2010-10-28T15:14:18.323" CommentCount="4" />
  <row Id="15365" PostTypeId="1" AcceptedAnswerId="15372" CreationDate="2010-10-28T15:18:31.973" Score="1" ViewCount="398" Body="&lt;p&gt;Hello...I have an offer from Company A. An offer letter has been offered as well. I have attended an interview with Company B and the in-person interview went fine. The Company B will take about 2-3 weeks before they roll out the offer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do I ask for more time to Company A before I sign/reject their offer letter? What reasons could I tell them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: Company A has not specified any time before which I need to sign/reject the offer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disclaimer: Not entirely sure if this can be asked here. But if you think it is not valid here, please feel free to close it/vote it down. &lt;/p&gt;&#xA;" OwnerUserId="5070" LastActivityDate="2010-10-28T15:44:09.020" ClosedDate="2010-10-28T15:44:15.590" Title="Asking for more time to Accept/Reject Offer" Tags="&lt;jobs&gt;&lt;new-job&gt;" AnswerCount="5" CommentCount="10" />
  <row Id="15366" PostTypeId="2" ParentId="15360" CreationDate="2010-10-28T15:20:44.607" Score="3" ViewCount="" Body="&lt;p&gt;The thing I like the best is for the application to send an email to the user on the registered email-address with a one-time link valid for X hours which provides a &quot;Change password&quot; page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The user can then set the password as s/he likes without risking having it put in an email.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-28T15:20:44.607" />
  <row Id="15367" PostTypeId="2" ParentId="15365" CreationDate="2010-10-28T15:23:18.620" Score="2" ViewCount="" Body="&lt;p&gt;Two to three weeks seems like an awfully long time to sit on an offer letter. While they may not have explicitly told you by when you need to respond, they likely didn't think that it'd take quite that long.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are really invested in hearing B's offer, you probably ought to be upfront with A and tell them that you are going to need more time.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastEditorUserId="6393" LastEditorDisplayName="" LastEditDate="2010-10-28T15:28:25.417" LastActivityDate="2010-10-28T15:28:25.417" CommentCount="3" />
  <row Id="15368" PostTypeId="2" ParentId="13870" CreationDate="2010-10-28T15:25:39.827" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;The time with your kids is the most precious in the world, and it never comes back.  &lt;/li&gt;&#xA;&lt;li&gt;Your degree will feed your family.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Prioritize accordingly :)&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-28T15:25:39.827" />
  <row Id="15369" PostTypeId="2" ParentId="15365" CreationDate="2010-10-28T15:27:22.880" Score="0" ViewCount="" Body="&lt;p&gt;You have a job?  Take it!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a better job comes around then you are still in your probation period and can quit without any further notice.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-28T15:27:22.880" CommentCount="7" />
  <row Id="15370" PostTypeId="2" ParentId="15360" CreationDate="2010-10-28T15:28:43.043" Score="4" ViewCount="" Body="&lt;p&gt;The comment is against sending the original password in email, not sending anything in email.  If the institution can send the original password, that means they have it, and that's a security problem.  The commenter was not arguing against sending a password through email, because that's pretty much necessary in most cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The proper way is to assign a new password that's usable once, for whatever reason.  Perhaps it's already marked expired by the system, perhaps it just logs into a page to change the password that's dynamically generated once and only once, whatever.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-28T15:28:43.043" />
  <row Id="15371" PostTypeId="2" ParentId="15360" CreationDate="2010-10-28T15:30:02.553" Score="3" ViewCount="" Body="&lt;p&gt;My credit card provider has a &quot;forgotten password&quot; option that asks you some security questions ( this is not immensely secure in itself but lots of banks do it ) and then generates a new code and gives you half on screen and emails the second half to you. That way you can't break the account without access to both the web page and the email address.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have asked a little about this from a &lt;a href=&quot;http://programmers.stackexchange.com/questions/11637/how-to-make-security-usable-in-a-web-application&quot;&gt;usability perspective&lt;/a&gt; a while back.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-28T15:30:02.553" />
  <row Id="15372" PostTypeId="2" ParentId="15365" CreationDate="2010-10-28T15:41:16.413" Score="3" ViewCount="" Body="&lt;p&gt;If they really want you, they probably will not withdraw the offer unless they find someone else and have no more positions open. It is very expensive to find suitable candidates for a programming role. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After we have made an offer to someone we would only gaurentee it for a limited time before we make offers to other people. However, if someone who couldn't answer within that time came back to us later whilst we were still looking we would almost certainly take them on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually candiates have notice periods and other things, so it is not uncommon to have 3 months btween us making the offer and them starting work. The critical issue for us is do we have to spend time and resources interviewing more people just in case the offer is turned down. We have on ocassion offered a bonus to people who accept quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would ask them what their policy is and be frank that you want to consider what the other roles are before making a comittment. They should understand this, and give you an honest answer about how long it will be before they have to make an offer to someone else instead. If they mess you about, think about if you really want to work for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, only you know your situation. So if you really need the Job you might want to take the offer while it is there.&lt;/p&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-10-28T15:41:16.413" CommentCount="1" />
  <row Id="15373" PostTypeId="2" ParentId="15365" CreationDate="2010-10-28T15:43:40.367" Score="0" ViewCount="" Body="&lt;p&gt;Dealing with company A:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only way to know for sure how long they will give you is to ask, &quot;How long can you give me to make a desision&quot;. If they ask why you want to know, be honest - it shouldn't worry them that they have competition. If they're really keen on you, they will wait a little longer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, there might well have a second choice lined up. If this is the case, and they wait too long, (1) they risk loosing both you and their second choice, and (2) their second choice could miss out on working for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dealng with company B:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If company B feel that you meed their requirements, they should be able to make you an offer more quicky. Ask them to do so. Tell them that you have another offer, that you are being pressured for a desision, but that you would prefer to work with company B. If company B can't speed up this process, that should tell you everything you need to know about them and how much they value you.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-10-28T15:43:40.367" />
  <row Id="15374" PostTypeId="2" ParentId="15365" CreationDate="2010-10-28T15:44:09.020" Score="1" ViewCount="" Body="&lt;p&gt;Actually, instead of telling A that you want to hear from B first, tell B that you have an outstanding off from another company and you need to get back to them.  There's no reason to make A feel like they're an after thought.  If B can't speed up their own process then you might be the 2nd place pick.  Do you want to be their fall-back plan?&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-28T15:44:09.020" CommentCount="1" />
  <row Id="15375" PostTypeId="2" ParentId="9006" CreationDate="2010-10-28T15:52:14.747" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Time To Market&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Difficult to rid a full IT landscape of procedural code and mantras.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-10-28T15:52:14.747" CommentCount="1" />
  <row Id="15376" PostTypeId="2" ParentId="9006" CreationDate="2010-10-28T16:08:55.797" Score="2" ViewCount="" Body="&lt;p&gt;Even if I had mastered it, I might be disinclined to use a functional language for a commercial product for the simple reason that they are not widely understood and if I expected the business to grow I would be concerned about the ability to find other developers capable of maintaining or extending it over time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not inconceivable, and you would probably get a higher standard of developer because a javaschool grad with no real hacking skills wouldn't know where to start on a project of that type, but the limited pool of capable developers would certainly be a necessary consideration from a business perspective.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-28T16:08:55.797" />
  <row Id="15377" PostTypeId="2" ParentId="15292" CreationDate="2010-10-28T16:25:32.130" Score="1" ViewCount="" Body="&lt;p&gt;Languages are tools to get work done. Some languages are good for some types of problems, others are generally good at all sorts of problem solving. I recommend learning new languages as they come out. Don't get obsessed with what is fashionable this month, but learn what they can do, what they are good at. My advice is 1 new language per year. They come out faster than that, but you are looking to put new tools in your toolbox, not be the fashionable new kid on the block. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One essay that talks about the differences in languages is Paul Graham's &quot;Beating the Averages.&quot; I recommend reading it, but one important part is here (he uses &quot;Blub&quot; as a hypothetical language so that you don't go arguing about what your favorite langage can do): &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Or how about Perl 4? Between Perl 4 and Perl 5, lexical closures got added to the language. Most Perl hackers would agree that Perl 5 is more powerful than Perl 4. But once you've admitted that, you've admitted that one high level language can be more powerful than another. And it follows inexorably that, except in special cases, you ought to use the most powerful you can get.&lt;/em&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;em&gt;This idea is rarely followed to its conclusion, though. After a certain age, programmers rarely switch languages voluntarily. Whatever language people happen to be used to, they tend to consider just good enough.&lt;/em&gt; &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;{snip}&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;As long as our hypothetical Blub programmer is looking down the power continuum, he knows he's looking down. Languages less powerful than Blub are obviously less powerful, because they're missing some feature he's used to. But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn't realize he's looking up. What he sees are merely weird languages. He probably considers them about equivalent in power to Blub, but with all this other hairy stuff thrown in as well. Blub is good enough for him, because he thinks in Blub.&lt;/em&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;em&gt;When we switch to the point of view of a programmer using any of the languages higher up the power continuum, however, we find that he in turn looks down upon Blub. How can you get anything done in Blub? It doesn't even have y.&lt;/em&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;em&gt;By induction, the only programmers in a position to see all the differences in power between the various languages are those who understand the most powerful one. (This is probably what Eric Raymond meant about Lisp making you a better programmer.) You can't trust the opinions of the others, because of the Blub paradox: they're satisfied with whatever language they happen to use, because it dictates the way they think about programs.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.paulgraham.com/avg.html&quot; rel=&quot;nofollow&quot;&gt;http://www.paulgraham.com/avg.html&lt;/a&gt;   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the applications we ship are written in C# or VB. When we needed to add scripting to an application, we chose Python (Lua was the runner-up choice). We're learning F# because that can do some hairy new things that are hard to explain and understand if all one knows is C#/Java/VB. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-10-28T16:25:32.130" CommentCount="1" />
  <row Id="15378" PostTypeId="2" ParentId="15251" CreationDate="2010-10-28T16:26:08.043" Score="1" ViewCount="" Body="&lt;p&gt;My limited understanding is that, in the US, reverse engineering for purposes of interoperability is perfectly legal.  However, I'm not a lawyer and I doubt you are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you need to do is find a lawyer who specializes in this sort of thing and who works in your jurisdiction.  In the US, it should be fairly easy to find one by going to your local Bar Association, and the first consultation is unlikely to be expensive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never accept legal advice from anybody who happens to post, usually from a potentially different place with potentially different laws, on the net.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-28T16:26:08.043" />
  <row Id="15379" PostTypeId="1" AcceptedAnswerId="15394" CreationDate="2010-10-28T16:26:08.753" Score="2" ViewCount="510" Body="&lt;p&gt;I have been developing on Android for a couple months now, and building upon one in house program I found the scalability to be lacking. I have that gut feeling that if I applied some OO Design Patterns I would get an overall better program in speed, scalability, and readability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do any of you SOdians have some ways you applied a/many design pattern(s) that just seem to fit extremely well with the way Android works?&lt;/p&gt;&#xA;" OwnerUserId="6640" LastActivityDate="2010-10-28T20:21:48.180" Title="What sort of Design Patterns do you use in Android Development?" Tags="&lt;java&gt;&lt;design-patterns&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="15380" PostTypeId="1" CreationDate="2010-10-28T16:30:17.690" Score="3" ViewCount="357" Body="&lt;p&gt;Hello all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I bumped into an old friend at a conference and he told me he was now a consultant doing reverse engineering. I don't have much knowledge of this particular area, but this person (that I can't manage to get in touch with now) just casually mentioned that he was earning big bucks. I was hoping someone at SO may know of the salary range that a skilled and experienced employee/freelancer may earn in this area? I can't find much information on the web - small area maybe? I dunno. Any help would be appreciated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-11-27T16:28:08.870" LastActivityDate="2010-11-27T17:51:41.543" Title="Salaries in reverse engineering fields" Tags="&lt;salary&gt;&lt;reverse-engineering&gt;" AnswerCount="3" CommentCount="7" />
  <row Id="15381" PostTypeId="1" AcceptedAnswerId="15390" CreationDate="2010-10-28T16:31:08.293" Score="10" ViewCount="808" Body="&lt;p&gt;April Fools is 6 months away, time to start planning!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some of the best practical jokes you've done/seen/heard of?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please only jokes &lt;strong&gt;that involve programming&lt;/strong&gt; and are technically inclined,&lt;br&gt;&#xA;perhaps using the internet, people's computers, etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They can be on coworkers or people outside of work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bonus points to whoever can come up with a mass prank... say for a university...&lt;/p&gt;&#xA;" OwnerUserId="3369" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-30T13:48:50.290" LastActivityDate="2010-10-30T15:18:20.337" ClosedDate="2010-10-30T18:57:41.850" Title="Best practical programming joke?" Tags="&lt;best-practices&gt;&lt;fun&gt;&lt;joke&gt;" AnswerCount="11" CommentCount="7" FavoriteCount="6" />
  <row Id="15382" PostTypeId="2" ParentId="15381" CreationDate="2010-10-28T16:33:24.167" Score="3" ViewCount="" Body="&lt;p&gt;Surreptitiously attaching a &lt;a href=&quot;http://www.thinkgeek.com/gadgets/electronic/ae83/&quot; rel=&quot;nofollow&quot;&gt;Phantom Keystroker&lt;/a&gt; to a coworker's computer.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-28T16:33:24.167" CommentCount="2" />
  <row Id="15383" PostTypeId="2" ParentId="15381" CreationDate="2010-10-28T16:34:08.223" Score="10" ViewCount="" Body="&lt;p&gt;Post it note on the bottom of an optical mouse.  It's a classic, and doesn't hurt anyone.&lt;/p&gt;&#xA;" OwnerUserId="6488" LastActivityDate="2010-10-28T16:34:08.223" CommentCount="2" />
  <row Id="15384" PostTypeId="2" ParentId="2815" CreationDate="2010-10-28T16:34:24.790" Score="-1" ViewCount="" Body="&lt;p&gt;I want indexers not to limit modification. like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;...&#xA;// MyList&amp;lt;T&amp;gt;&#xA;public this[int index]&#xA;{&#xA;get{/*do something to return value*/}&#xA;set{/*do something to set value*/}&#xA;}&#xA;...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;so:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;MyList&amp;lt;MyPersonClass&amp;gt; lst = new MyList&amp;lt;MyPersonClass&amp;gt;();&#xA;lst.Add(SomePeople);&#xA;lst.Add(SomeOtherPeople);&#xA;lst[0].name = &quot;Fred&quot;;    // error&#xA;lst[1].last = &quot;McKenny&quot;; // error&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6641" LastActivityDate="2010-10-28T16:34:24.790" CommunityOwnedDate="2010-10-28T16:34:24.790" CommentCount="1" />
  <row Id="15385" PostTypeId="2" ParentId="15350" CreationDate="2010-10-28T16:36:47.023" Score="7" ViewCount="" Body="&lt;p&gt;Usually the restrictions on &quot;extended characters&quot; are because the management in bank programming groups used to be COBOL programmers, and know that Character Sets Are Hard.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-10-28T16:36:47.023" CommentCount="2" />
  <row Id="15386" PostTypeId="2" ParentId="15292" CreationDate="2010-10-28T16:38:20.137" Score="3" ViewCount="" Body="&lt;p&gt;Popular programming languages like C# and Java will keep you gainfully employed most places, but neither are different enough from each other to learn new ways of solving problems.  I think there are some languages that you eat with (the ones you use to do your job), and others that you play with.  Both have their purposes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found that by learning new programming languages, I've also learned new and more elegant ways to solve problems.  It's not about the number of languages, or how often you pick them up.  Each programming language worth learning has a unique point of view, which forces you to approach your problems with a new mindset.  Many times the value comes from learning that mindset.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've played with Smalltalk, and I loved it.  The language was just a pleasure to develop with.  Once you got used to the idioms, they helped you be more expressive with your code.  I didn't miss the static typing you have in Java/C++/C# at all.  The generics we live with in our statically typed languages are really constructs to work around the limitations static typing imposes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use Ruby and Ruby on Rails regularly, although not for paying jobs right now.  Ruby's designing principle was &quot;increasing programmer happiness&quot;.  You gotta love that sentiment, and for the most part I think it delivers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually Java will go the way of lisp and Smalltalk, and C# will follow suit.  What will be there to take their place remains to be seen.  At the end of the day, if you know how to solve problems, and you have a number of ways to slice and dice the problem, you will be able to find a job and pick up whatever language you need for it.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-10-28T16:38:20.137" />
  <row Id="15387" PostTypeId="2" ParentId="15381" CreationDate="2010-10-28T16:47:53.903" Score="11" ViewCount="" Body="&lt;p&gt;Take a screenshot on unattended computer. Make said screenshot the background. Hide all icons, taskbars etc. Hilarity ensues...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your friend's mouse has a left button and a right button and I bet their operating system will allow you to swap them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you ever seen what happens when someone's Speech-To-Text is switched on but they don't realise it has been switched on? It's like their computer mysteriously knows what they are thinking. Very freaky. Or hilarious. Depending on whether you are the afflicted or the afflicter. Also &quot;afflicter&quot; may not be a word, use with caution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're really smart, you could maybe script any of these things to switch on and off at arbitrary intervals, doubling the confusion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are working in a C or C++ shop, you could drop some sneaky #define statements in there to redefine common keywords and replace them with &quot;april fools&quot;. How your colleagues will laugh.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastEditorUserId="4027" LastEditorDisplayName="" LastEditDate="2010-10-28T16:59:42.317" LastActivityDate="2010-10-28T16:59:42.317" CommentCount="6" />
  <row Id="15388" PostTypeId="2" ParentId="13757" CreationDate="2010-10-28T16:56:17.783" Score="2" ViewCount="" Body="&lt;p&gt;GUID.  I've heard some people say G-U-I-D, some people pronouncing it rhyming with &quot;fluid&quot; and some people pronouncing it rhyming with &quot;squid&quot;.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-28T16:56:17.783" CommunityOwnedDate="2011-01-09T02:54:49.947" />
  <row Id="15389" PostTypeId="2" ParentId="15381" CreationDate="2010-10-28T17:00:19.057" Score="0" ViewCount="" Body="&lt;p&gt;Unplug the internet connection.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-10-28T17:00:19.057" />
  <row Id="15390" PostTypeId="2" ParentId="15381" CreationDate="2010-10-28T17:00:29.477" Score="7" ViewCount="" Body="&lt;p&gt;When I was at Uni, we would take our CS courses on a networked set of IBM X terminals.  Their &lt;code&gt;xinit&lt;/code&gt; scripts all had &lt;code&gt;xhost +&lt;/code&gt; so during classes (and even tests) I would spawn &lt;a href=&quot;http://linuxcommand.org/man_pages/decayscreen1.html&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;decayscreen -root&lt;/code&gt;&lt;/a&gt; on all of their X servers.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could listen to the Unix-uninformed while pandemonium ensued.  The professors even couldn't figure it out.  Funny stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/ERfQu.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="2274" LastEditorDisplayName="" LastEditDate="2010-10-28T17:07:57.920" LastActivityDate="2010-10-28T17:07:57.920" CommentCount="1" />
  <row Id="15391" PostTypeId="1" AcceptedAnswerId="15392" CreationDate="2010-10-28T17:04:58.900" Score="5" ViewCount="115" Body="&lt;p&gt;It is now more and more popular to have video tutorials of the software or technology instead of writing long articles. As for me, it makes perfect sense, especially for such areas like &quot;Getting Started&quot; or &quot;What's New&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think is the most appropriate duration for such a videos? If you record the video tutorial yourself, would you just touch main points to keep it brief, or rather split it into a number of parts to keep the same level of details? And why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know this question isn't implied to have one and only answer. I'd like to hear the reasoning behind various opinions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have personally come across a video tutorial 45 minutes long today, and I got tired at around minute 10... So, my own impression is it's better to keep it from 5 to 10 minutes to gain visitor's attention fully.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="1524" LastActivityDate="2010-10-30T14:39:22.057" Title="What's the most appropriate duration of the video tutorial?" Tags="&lt;experience&gt;&lt;documentation&gt;" AnswerCount="6" CommentCount="1" />
  <row Id="15392" PostTypeId="2" ParentId="15391" CreationDate="2010-10-28T17:09:13.723" Score="2" ViewCount="" Body="&lt;p&gt;I would tend to agree with the 5-10 minute rule. When I see a new technology, most of the time I don't want to get into the nitty-gritty details; I just want to get a general overview of it so that I can decide if it's something I want to learn more about. If the video does a B-tree traversal of everything one needs to know to use the tech, you can't get the general picture of WHY you would want it in the first place.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-10-28T17:09:13.723" CommentCount="4" />
  <row Id="15393" PostTypeId="2" ParentId="15391" CreationDate="2010-10-28T17:15:55.423" Score="0" ViewCount="" Body="&lt;p&gt;I would keep the introduction to 5 minutes. That should be long enough to hook people who are going to get hooked. Then they will be willing to watch longer videos, but even those should be no longer than 15 minutes, long enough to introduce one or two keys ideas, illustrate how they work and give the viewer some exercises for putting into practice the new ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am a very firm believer in tangibly reinforcing information very quickly after it is delivered. In addition to increasing the likelihood that the information will be truly understood and retained, it reduces the odds that the viewer will become fatigued.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that the Khan Academy videos are an excellent model and might even be the best and most well thought-out video instruction created to date.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-10-28T17:15:55.423" CommentCount="1" />
  <row Id="15394" PostTypeId="2" ParentId="15379" CreationDate="2010-10-28T17:16:17.483" Score="1" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller&quot; rel=&quot;nofollow&quot;&gt;MVC&lt;/a&gt; pattern when developing for Android/Windows Phone 7.  Android Views lend themselves pretty well to it and is a great help when keeping the separate. Android code can get pretty complicated tossing views and intents around, so it helps to keep things as compartmentalized as possible.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-28T17:16:17.483" CommentCount="1" />
  <row Id="15395" PostTypeId="1" CreationDate="2010-10-28T17:20:58.953" Score="2" ViewCount="114" Body="&lt;p&gt;Greetings everyone, I am somewhat new to programming.  I have taking a c++ class and have some experience scripting in Python, more specifically ArcPy.  I want to take the dive and really get into programming.  I have chosen VB because it would benefit me the most right now in my current job (GIS based).  I would like to be able to program custom GIS tools but I need to learn the basics so I am looking for websites that would be good for a VB.net beginner.  I will be using visual studio 2008. &lt;/p&gt;&#xA;" OwnerUserId="6650" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-04-26T14:58:17.400" LastActivityDate="2011-04-26T14:58:17.400" Title="Website with tutorials on learning VB.net" Tags="&lt;visual-studio&gt;&lt;vb.net&gt;&lt;tutorial&gt;" AnswerCount="3" />
  <row Id="15396" PostTypeId="2" ParentId="15381" CreationDate="2010-10-28T17:22:43.330" Score="7" ViewCount="" Body="&lt;p&gt;We once hooked up a second mouse to a docking station where the &quot;victim&quot; would not see it and ran the cable under the wall to an adjacent cube. Every once and a while the prankster would subtly move the second move causing &quot;unexplained&quot; cursor movement.&lt;/p&gt;&#xA;" OwnerUserId="3463" LastActivityDate="2010-10-28T17:22:43.330" CommentCount="4" />
  <row Id="15397" PostTypeId="1" AcceptedAnswerId="15412" CreationDate="2010-10-28T17:25:16.180" Score="5" ViewCount="977" Body="&lt;p&gt;Am I wrong if I think that Python is all I need to master, in order to solve most of the common programming tasks?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&#xA;I'm not OK with learning new programming languages if they don't teach me new concepts of programming and problem solving; hence the idea behind mastering a modern, fast evolving, with a rich set of class libraries, widely used and documented, and of course has a &quot;friendly&quot; learning curve programming language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that in the fast evolving tech industry, specialization is key to success.&lt;/p&gt;&#xA;" OwnerUserId="6651" LastEditorUserId="1842" LastEditorDisplayName="" LastEditDate="2010-10-28T18:41:53.000" LastActivityDate="2011-02-15T17:11:50.893" Title="Python and only Python for almost any programming tasks!" Tags="&lt;python&gt;&lt;language-choice&gt;" AnswerCount="13" CommentCount="7" FavoriteCount="4" />
  <row Id="15398" PostTypeId="2" ParentId="15391" CreationDate="2010-10-28T17:27:56.710" Score="7" ViewCount="" Body="&lt;p&gt;&lt;sub&gt;This is perhaps slightly off-topic, but hopefully still useful feedback for anyone considering doing video tutorials&lt;/sub&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the video is basically slides with speaking, &lt;em&gt;please&lt;/em&gt; provide a non-video version with images and a transcript as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can read far faster than people can talk, and it can be incredibly frustrating having to sit through even a short video - especially so when I'm listening to music, and just want to know how to do whatever the tutorial is teaching.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(This has the added benefit of allowing the content of the tutorial to be indexed, thus increasing exposure to the tutorial in general.)&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-10-28T17:27:56.710" CommentCount="3" />
  <row Id="15399" PostTypeId="2" ParentId="15397" CreationDate="2010-10-28T17:29:49.017" Score="1" ViewCount="" Body="&lt;p&gt;I wouldn't say that you are wrong at all. Python is a multi-domain, general-purpose programming language.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-10-28T17:29:49.017" />
  <row Id="15400" PostTypeId="2" ParentId="15397" CreationDate="2010-10-28T17:38:39.723" Score="0" ViewCount="" Body="&lt;p&gt;Python is an extremely flexible general-purpose programming language, it has been used to write nearly anything imaginable, except OS kernel (QUICK UPDATE: in fact it has: &lt;a href=&quot;http://mail.python.org/pipermail/python-announce-list/2004-July/003220.html&quot; rel=&quot;nofollow&quot;&gt;http://mail.python.org/pipermail/python-announce-list/2004-July/003220.html&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it's always good to learn new languages, especially one that is very different from the languages you already know about. &lt;/p&gt;&#xA;" OwnerUserId="3733" LastActivityDate="2010-10-28T17:38:39.723" CommentCount="3" />
  <row Id="15401" PostTypeId="2" ParentId="15397" CreationDate="2010-10-28T17:38:55.920" Score="29" ViewCount="" Body="&lt;h1&gt;Yes&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;You would be wrong to think that any single language can do everything without considering other languages.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I think that in the fast evolving tech industry, specialization is key to success.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I can't think of a better way to shoot yourself in the foot. Learning and mastering a language is great, but you mention you aren't comfortable with learning new languages if they &lt;em&gt;&quot;don't teach me new concepts of programming and problem solving.&quot;&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Languages don't teach you these concepts, thick dusty tomes and many years working closely with people better then yourself does. These basic patterns, concepts, and principals of design transcend languages and can be applied in many different scopes.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2011-02-15T02:38:11.440" LastActivityDate="2011-02-15T02:38:11.440" CommentCount="8" />
  <row Id="15402" PostTypeId="2" ParentId="15397" CreationDate="2010-10-28T17:42:05.900" Score="8" ViewCount="" Body="&lt;p&gt;You may be able to solve many problems with it but it won't always be the best tool for the job.&lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-10-28T17:42:05.900" />
  <row Id="15404" PostTypeId="2" ParentId="15397" CreationDate="2010-10-28T17:52:27.057" Score="5" ViewCount="" Body="&lt;p&gt;Python (despite my misgivings about it) simply can't&lt;code&gt;^H^H^H^H^H&lt;/code&gt;shouldn't be used for everything, the same way my slip joint pliers aren't used as a screwdriver.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;SQL?&lt;/strong&gt;  Stored procedures?  Startup scripts?  HTML (already mentioned) and XSLT?  C library wrappers?&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="2274" LastEditorDisplayName="" LastEditDate="2010-10-28T18:15:58.157" LastActivityDate="2010-10-28T18:15:58.157" CommentCount="1" />
  <row Id="15405" PostTypeId="1" CreationDate="2010-10-28T17:54:15.890" Score="18" ViewCount="723" Body="&lt;p&gt;Do other people fix bugs when they see them, or do they wait until there's crashes/data loss/people die before fixing it?&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Example 1&lt;/h2&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; Customer customer = null;&#xA; ...&#xA; customer.Save();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The code is clearly wrong, and there's no way around it - it's calling a method on a null reference. It happens to not crash because &lt;code&gt;Save&lt;/code&gt; happens to not access any instance data; so it's just like calling a static function. But any small change anywhere can suddenly cause broken code that doesn't crash: to start crashing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;But&lt;/strong&gt;, it's also not &lt;em&gt;inconceivable&lt;/em&gt; that correcting the code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Customer customer = null;&#xA;...&#xA;customer = new Customer();&#xA;try&#xA;   ...&#xA;   customer.Save();&#xA;   ...&#xA;finally&#xA;   customer.Free();&#xA;end;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;might &lt;em&gt;introduce&lt;/em&gt; a crash; one not discovered through unit tests with complete coverage, and manual user testing.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Example 2&lt;/h2&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;float speed = 0.5 * ((G * mass1 * mass2) / R) * Pow(time, 2);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;People knowing physics will recognize that it's supposed to be R&lt;sup&gt;2&lt;/sup&gt; in the denominator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The code is wrong, it's absolutely wrong. And overestimating the speed will cause the retro-rockets to fire too soon, killing all the occupants of the spacecraft.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it's also possible perhaps having it over-estimate the speed is masking another issue: the air-bags can't deploy while the shuttle is moving too fast. If we suddenly fix the code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;float speed = 0.5 * ((G * mass1 * mass2) / Pow(R, 2)) * Pow(time, 2);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now the speed is accurate, and suddenly airbags are deploying when they shouldn't. &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Example 3&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Here's an example that i had recently, checking if a string contains invalid characters:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (StrPos(Address, &quot;PO BOX&quot;) &amp;gt;= 0&#xA;{&#xA;   //Do something&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;What if it turns out there's a bug in the &lt;code&gt;Do something&lt;/code&gt; branch? Fixing the obviously incorrect code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (StrPos(&quot;PO BOX&quot;, Address) &amp;gt;= 0&#xA;{&#xA;   //Do something&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Fixes the code, but introduces a bug.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;The way i see it there are two possiblities:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;fix the code, and get blamed for breaking it&lt;/li&gt;&#xA;&lt;li&gt;wait for the code to crash, and get blamed for having a bug&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What do &lt;em&gt;you&lt;/em&gt; politically do?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;Example 4 - Today's real world bug&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;i am constructing an object, but calling the wrong constructor:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Customer customer = new Customer();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Turns out that the &quot;parameterless&quot; constructor is actually an parameterized constructor from  further back in the inheritence chain:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public Customer(SomeObjectThatNobodyShouldBeUsingDirectly thingy = null)&#xA;public Customer(InjectedDependancy depends)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Calling it is a mistake, since it bypasses all the subsequent constructors. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;i could change the object's lineage to not expose such a dangerous constructor, but now i have to change the code to:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Customer customer = new Customer(depends);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But i can't guarantee that this change won't break anything. Like my &lt;strong&gt;Example 1&lt;/strong&gt; above, perhaps someone, somewhere, somehow, under some esoteric conditions, depends on the constructed &lt;code&gt;Customer&lt;/code&gt; to be invalid and full of junk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps the &lt;code&gt;Customer&lt;/code&gt; object, now that it is &lt;strong&gt;properly&lt;/strong&gt; constructed will allow some code to run that previously never did, and now i can get a crash.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i can't bet your wife's life on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And i can test it from here to Tuesday, i can't swear on your daughter's life that i didn't introduce a regression.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do i:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;fix the code and get blamed for breaking it? or&lt;/li&gt;&#xA;&lt;li&gt;leave the bug, and get blamed when the customer finds it?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6654" LastActivityDate="2010-11-01T15:32:49.610" Title="Fix bugs, or wait for the customer to find them?" Tags="&lt;code-quality&gt;&lt;bugs&gt;" AnswerCount="13" CommentCount="8" FavoriteCount="5" />
  <row Id="15406" PostTypeId="2" ParentId="15405" CreationDate="2010-10-28T18:03:53.093" Score="20" ViewCount="" Body="&lt;p&gt;This depends wildly on the situation, the bug, the customer, and the company. There is always a trade-off to consider between correcting the implementation and potentially introducing new bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I were to give a general guideline to determining what to do, I think it'd go something like this:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Log the defect in tracking system of choice. Discuss with management/coworkers if needed.&lt;/li&gt;&#xA;&lt;li&gt;If it's a defect with potentially dire consequences (e.g. your example #2), run, scream, jump up and down till someone with authority notices and determine an appropriate course of action that will mitigate the risks associated with the bug fix. This may push your release date back, save lives, wash your windows, etc.&lt;/li&gt;&#xA;&lt;li&gt;If it's a non-breaking defect, or a workaround exists, evaluate whether the risk of fixing it outweighs the benefit of the fix. In some situations it'll be better to wait for the customer to bring it up, since then you know you aren't spending time fixing/retesting things when it's not 100% required.  &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Mind you, this only applies when you're close to a release. If you're in full development mode, I'd just log the defect so it can be tracked, fix it, and call it done. If it's something that takes more than, say, half an hour to fix and verify, I'd go to the manager/team lead and see whether or not the defect should be fit into the current release cycle or scheduled for a later time.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-28T18:03:53.093" CommentCount="2" />
  <row Id="15407" PostTypeId="2" ParentId="15405" CreationDate="2010-10-28T18:06:42.997" Score="24" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Customers will ALWAYS find bugs&lt;/strong&gt;. There's no hiding bugs from customers, ever. In the end bugs you introduce will always come back to you. Not fixing them is simply a bad professional practice. Professionals don't do this. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When customers find bugs, the company looks bad, not an individual developer. This is much worse for the company, so there's your case for making the change. If you really are not sure about making this change in fear of introducing other bugs, talk to a more senior developer, project technical lead or whoever else is in the position to make a decision on such change and subsequently handle consequences. &lt;/p&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="3262" LastEditorDisplayName="" LastEditDate="2010-11-01T15:32:49.610" LastActivityDate="2010-11-01T15:32:49.610" CommentCount="7" />
  <row Id="15408" PostTypeId="2" ParentId="15405" CreationDate="2010-10-28T18:10:06.110" Score="4" ViewCount="" Body="&lt;p&gt;You first need to consider the definition of a bug:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The code as read doesn't match with what you percieve to be right&lt;/li&gt;&#xA;&lt;li&gt;The software does not properly perform its tasks&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;You appear to be focusing on #1, where #2 is the best place to sit.  Sure, we programmers want our code to be &lt;em&gt;right&lt;/em&gt; (#1), but people pay us for it to &lt;em&gt;work&lt;/em&gt; (#2).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you may or may not do to the code base that could accidentally introduce new bugs is irrelevant to #2's view of the current software.  However, #1 matters for yourself or the maintenance programmer that follows.  It's sometimes difficult to decide, but when #2 and #1 conflict, you have to know that #2 is clearly more important.&lt;/p&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-10-28T18:10:06.110" />
  <row Id="15409" PostTypeId="2" ParentId="15395" CreationDate="2010-10-28T18:15:33.530" Score="3" ViewCount="" Body="&lt;p&gt;You can try &lt;a href=&quot;http://www.learnvisualstudio.net/&quot; rel=&quot;nofollow&quot;&gt;http://www.learnvisualstudio.net/&lt;/a&gt;. Some of the videos are pretty advanced, but I think there's a good amount of beginner-level material to get you started, too.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-10-28T18:15:33.530" CommentCount="1" />
  <row Id="15410" PostTypeId="2" ParentId="15405" CreationDate="2010-10-28T18:22:39.207" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Fix the bug&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We're professionals here.  If you find a failing path in the code that will cause a crash or incorrect behavior, you need to fix it.  Depending upon your team's procedures, you likely need to file a defect, perhaps write a regression test, and check in the fix at the right time of the ship cycle.  If it's a low priority bug, checking in the fix near the beginning of a milestone is always a good time because if you do cause a regression you won't affect the release cycle of the milestone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't confuse this with refactoring or making performance improvements that are not related to a performance bug.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A distributed source control system where you can keep a separate repository of 'little bug fixes' and then easily merge at the beginning of a milestone is a great help here.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-10-28T18:22:39.207" CommentCount="1" />
  <row Id="15412" PostTypeId="2" ParentId="15397" CreationDate="2010-10-28T18:37:26.060" Score="22" ViewCount="" Body="&lt;p&gt;You are right and wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Right:&lt;/strong&gt;  Knowing a single tool very well is very marketable and to be desired.  And Python is good for OO, for scripts, for functional-ish programming, and it has excellent mathematical and scientific libraries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Wrong:&lt;/strong&gt;  Python doesn't teach you everything a good developer should know.  Sometimes you will need JavaScript to provide some client-side functionality.  Sometimes you need to understand what's happening at a more fundamental level, such as the C underneath the Python.  And sometimes you need to learn to think in different ways, as you would with Haskell or Clojure.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-10-28T18:37:26.060" />
  <row Id="15415" PostTypeId="2" ParentId="15405" CreationDate="2010-10-28T18:53:33.267" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;What would the customer say?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is how I imagine this playing out:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Customer:&lt;/em&gt; It crashes when I do x.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;em&gt;Programmer:&lt;/em&gt; Oh yeah! I remember I saw that a while back. I figured it&#xA;  wasn't a big deal yet, so I left it in&#xA;  there.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;em&gt;Customer:&lt;/em&gt; [reaches for blunt object]&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes. Fix the bug. You'll be saving the customer from an aggravating experience, and you get to fix it before it becomes an emergency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;And if you think your fix might actually cause a crash, then you haven't really found a fix yet.&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-10-28T18:53:33.267" />
  <row Id="15417" PostTypeId="2" ParentId="15405" CreationDate="2010-10-28T18:57:57.923" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Start chipping away at your technical debt as soon as you can&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your examples definitely look like &lt;em&gt;legacy code&lt;/em&gt;, having lots of &lt;em&gt;technical debt&lt;/em&gt; and I sense there's &lt;em&gt;the fear of change&lt;/em&gt; (BTW, this is not a criticism or a judgment).  Your entire team has to acknowledge that you have this technical debt (so you alone aren't blamed for it) and then you can decide how you're going to deal with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Example 1, if &lt;code&gt;Save()&lt;/code&gt; doesn't access any instance data, what customer data does it save exactly?  Start fixing and testing that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Example 2, it's easy to cover the speed calculator with tests and ensure that it calculates the result correct in all key examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Example 3, there's danger of bringing dead code back to life.  Should that code be eliminated altogether?  What is the intent of the boolean condition under that if?  Is it to ensure the string contains no invalid characters?  Or to ensure it has &quot;PO BOX&quot; in it?  The sooner you start addressing such questions, the better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After you have fixed a number of such issues, have a sort of retrospective/post-mortem with your team.  It is important to learn from the experience so that you can reduce your defect injection rate in the future.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-28T18:57:57.923" />
  <row Id="15418" PostTypeId="2" ParentId="15395" CreationDate="2010-10-28T18:59:22.930" Score="2" ViewCount="" Body="&lt;p&gt;I would start here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/vbasic/bb466159.aspx&quot; rel=&quot;nofollow&quot;&gt;MSDN&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6423" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-28T21:12:06.930" LastActivityDate="2010-10-28T21:12:06.930" CommentCount="1" />
  <row Id="15419" PostTypeId="1" CreationDate="2010-10-28T19:05:29.240" Score="4" ViewCount="115" Body="&lt;p&gt;Coding bat, project euler, python challenge for example are all amazing brain teasers that usually provide you with some learning material, ways to compact your code, and enhance your problem solving skills. At the end of the day, when you go through a few of those exercises, you learn something new, or you better understood a concept.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there similar exercises for OOP, MVC, MVVM, MVT, and so on type situations? In class it is usually taught to think of an object as a cat, part of an animal class. and you have mammals and so on. However, in real life, objects are more abstract, and harder to imagine and implement. The same could be said about MVC, MVVM, and MVT, where applying a small system is usually simple, but when the problem is scaled, it suddenly becomes a bit more daunting.&lt;/p&gt;&#xA;" OwnerUserId="6511" LastActivityDate="2010-10-28T21:21:55.383" Title="Problem sets or challenges and solutions for beginners to practice MVC, OOP, MVT etc. type problems" Tags="&lt;tools&gt;&lt;challenge&gt;&lt;mvc&gt;" AnswerCount="2" FavoriteCount="2" />
  <row Id="15421" PostTypeId="2" ParentId="15391" CreationDate="2010-10-28T19:10:10.450" Score="-1" ViewCount="" Body="&lt;p&gt;Let's assume for the sake of discussion that you are (or can enlist the services of) an excellent speaker and editor and you're able to cut out &lt;strong&gt;all&lt;/strong&gt; unnecessary material, which is depressingly far from the truth with most tutorial videos and &quot;screencasts&quot; which tend to be full of stumbles and pauses and monotone blathering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The answer is:&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Two and a half minutes.&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;What's that number based on?&lt;/em&gt; I hear you asking.  &lt;em&gt;You just pulled it out of your backside, didn't you?&lt;/em&gt;  Well, I'll tell you where I got it from.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Two and a half minutes is the &lt;a href=&quot;http://mediatedcultures.net/ksudigg/?p=163&quot; rel=&quot;nofollow&quot;&gt;average length of a YouTube movie&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could not &lt;em&gt;possibly&lt;/em&gt; ask for a better pool of data.  We are talking about over &lt;strong&gt;50 billion&lt;/strong&gt; videos and over &lt;strong&gt;2 billion&lt;/strong&gt; views &lt;strong&gt;per day&lt;/strong&gt;.  And averaged out of &lt;em&gt;all&lt;/em&gt; of these people and &lt;em&gt;all&lt;/em&gt; of these videos, the majority are watched for well under 3 minutes, which is only a minute short of the &lt;a href=&quot;http://a-candle-in-the-dark.blogspot.com/2010/02/song-length.html&quot; rel=&quot;nofollow&quot;&gt;average song length&lt;/a&gt; and about the same length as a typical commercial break on TV.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some studies show that &lt;a href=&quot;http://news.bbc.co.uk/2/hi/uk_news/education/8449307.stm&quot; rel=&quot;nofollow&quot;&gt;a typical attention span is 10 minutes&lt;/a&gt;, but that statistic is for college students in a classroom environment.  That is, they are &lt;em&gt;trying&lt;/em&gt; to focus their attention.  Most users who watch your tutorial video are already in the mindset that this video is just a nuisance, it's something that they have to get through in order to start using some other thing that was too complicated and unintuitive to understand without a tutorial video.  They &lt;em&gt;desperately&lt;/em&gt; want to get through it as quickly as possible and get back to their &quot;real&quot; work or activities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two and a half minutes.  That's it.  More than three minutes and you're going to start losing people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've got a lot of material to get through then split it up over multiple videos.  One concept or task per video.  Do not make people sit through a 10-minute video just to learn a single concept.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Attention spans seem to be declining every year with the advent of services like SMS messaging and now Twitter.  Row against this current at your own peril.&lt;/p&gt;&#xA;" OwnerUserId="3249" LastActivityDate="2010-10-28T19:10:10.450" CommentCount="8" />
  <row Id="15422" PostTypeId="1" AcceptedAnswerId="15455" CreationDate="2010-10-28T19:12:51.627" Score="6" ViewCount="395" Body="&lt;p&gt;I would like to include a technology section on my resume but I'm not sure where to put it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I could put it on page 1, after the Professional Summary and before the experience. That puts it in front but pushes the experience down quite a bit on the first page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I could put it at the end; the last thing in the resume. That way, it is included but it is out of the way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe the meat of the resume is the experience section so I'm leaning putting it at the end. What do you think? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I don't want this to be a debate about whether or not a technology section is needed. Today, at least in the US, I believe it is needed for two reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;So many companies use software that automatically screen resumes by keywords. &lt;/li&gt;&#xA;&lt;li&gt;I need a place to list all of the skills I want to mention, even if I'm not including my experience with those technologies (e.g. my COBOL &amp;amp; CICS experience from the late 80's and early 90's).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1236" LastActivityDate="2010-10-28T21:57:08.880" Title="Where do you put your technology section on your resume" Tags="&lt;resume&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="1" />
  <row Id="15423" PostTypeId="2" ParentId="15159" CreationDate="2010-10-28T19:14:17.233" Score="1" ViewCount="" Body="&lt;p&gt;A few years ago I was part of a couple of projects where we used T4 templates via the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ff687174.aspx&quot; rel=&quot;nofollow&quot;&gt;Guidance Automation Toolkit&lt;/a&gt; as well as the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ff648753.aspx&quot; rel=&quot;nofollow&quot;&gt;Smart Client Software Factory&lt;/a&gt;.  On both projects we were able to take out most, if not all, of the repetitive setup steps for creating new modules that would work within the main &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ff648747.aspx&quot; rel=&quot;nofollow&quot;&gt;Composite UI App Block&lt;/a&gt; shell applications we had created.  The T4 templates we created would ask the developer/user for various pieces of project-specific data and then do everything from initial Visual Studio solution creation to view/controller creation.  I agree with you that editing the templates isn't the easiest thing in the world, but the payoff was always worth it for us.  There were some add-in's if I remember correctly that would add syntax coloring for you too...&lt;/p&gt;&#xA;" OwnerUserId="6423" LastActivityDate="2010-10-28T19:14:17.233" />
  <row Id="15426" PostTypeId="2" ParentId="5531" CreationDate="2010-10-28T19:19:54.713" Score="1" ViewCount="" Body="&lt;p&gt;The prime cause of software defects is writing code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write less code and you'll have fewer bugs ;-)&lt;/p&gt;&#xA;" OwnerUserId="3044" LastActivityDate="2010-10-28T19:19:54.713" />
  <row Id="15427" PostTypeId="2" ParentId="15422" CreationDate="2010-10-28T19:19:58.397" Score="0" ViewCount="" Body="&lt;p&gt;To be honest, I've never ever submitted the same resume twice. It all depends on who your audience are. Seriously, When reading your resume, the potential employer should have the following impressions about you:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I'm the most attractive candidate you have.&lt;/li&gt;&#xA;&lt;li&gt;Look at my resume, it reads hire me.&lt;/li&gt;&#xA;&lt;li&gt;Look at my cover letter, it just reads greatness.&lt;/li&gt;&#xA;&lt;li&gt;Your resume should make the potential employer obliged to at least give you back a personal correspondence&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I applied for a job at Texas A &amp;amp; M. I knew they were big in robotics, so I built a robot emulator and attached it to my resume.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;they loved it&lt;/p&gt;&#xA;" OwnerUserId="6511" LastActivityDate="2010-10-28T19:19:58.397" />
  <row Id="15428" PostTypeId="2" ParentId="15419" CreationDate="2010-10-28T19:26:06.233" Score="2" ViewCount="" Body="&lt;p&gt;One thing I know of for OOP is code kata, like the &lt;a href=&quot;http://www.butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata&quot; rel=&quot;nofollow&quot;&gt;bowling game kata&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing about open-ended exercises for OOP is that you may interpret the domain in a number of ways, leading to very different design. Kata walk you down the garden path, but in doing so they can help you to realize how to frame your thinking, and discover the kinds of things you should be thinking about at certain stages in your design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The effectiveness of things like the sudoku solver problem or the bowling kata at teaching ideas like TDD is debated, as is the classification of these exercises as &quot;kata&quot; (does going through them repeatedly &lt;em&gt;really&lt;/em&gt; help you cement ideas? I'm not disagreeing, just posing the question), but going through them at least once can help.&lt;/p&gt;&#xA;" OwnerUserId="3044" LastActivityDate="2010-10-28T19:26:06.233" />
  <row Id="15429" PostTypeId="2" ParentId="15422" CreationDate="2010-10-28T19:27:27.963" Score="1" ViewCount="" Body="&lt;p&gt;When reading resumes I like to see the technologies before I wade through the experience. I would put it up top, ahead of experience.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-28T19:27:27.963" />
  <row Id="15430" PostTypeId="2" ParentId="15405" CreationDate="2010-10-28T19:36:25.420" Score="2" ViewCount="" Body="&lt;p&gt;Neither. There is a third way: find a way to prove that &quot;the problematic code&quot; is actually causing issue from a business point of view. Confirm what you find with BA/QA or at least your manager. Then plan the fix when everyone is aware of issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are more possible scenarios other than a valid bug in the cases you mentioned:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The code you are looking at are some dead code. It's possibly because like ysolik said: customers always find bugs. If they didn't, maybe the code never gets executed.&lt;/li&gt;&#xA;&lt;li&gt;There was a WTF situation where the obvious error did have its purpose. (We are talking about production code, anything could have happened, right?)&lt;/li&gt;&#xA;&lt;li&gt;Business/customers already knew about the issue but don't feel necessity to the fix.&lt;/li&gt;&#xA;&lt;li&gt;Maybe more...&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In any case above, if I am a manager, I don't want a developers to use his/her judgment and fix the &quot;error&quot; in place. Fixing the error in place may help in most of the time, but when it goes wrong, it may cause more trouble than its good intention.&lt;/p&gt;&#xA;" OwnerUserId="844" LastActivityDate="2010-10-28T19:36:25.420" CommentCount="2" />
  <row Id="15431" PostTypeId="2" ParentId="15422" CreationDate="2010-10-28T19:40:38.277" Score="0" ViewCount="" Body="&lt;p&gt;The only time that I have a &quot;Technologies&quot; section on my resume is if the company I am applying to specifically asks for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My thought is that if I used a technology at a job or on a personal project, it's going to be in the description of my job/duties/project, in the context which I used the mentioned technology. If I have only used the technology in a classroom setting, that will show up on my transcripts through the courses that I have taken.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-10-28T19:40:38.277" />
  <row Id="15432" PostTypeId="2" ParentId="15405" CreationDate="2010-10-28T19:41:55.873" Score="0" ViewCount="" Body="&lt;p&gt;If there's clearly a crasher, or something &lt;em&gt;wrong&lt;/em&gt;, then you should fix it. If there's an ambiguity in the spec, i.e. if you find yourself thinking &quot;well the customer &lt;em&gt;might&lt;/em&gt; expect this, but then it looks like it &lt;em&gt;might&lt;/em&gt; be a bug&quot; or a problem in the spec, like &quot;we've been asked to do this but it sucks&quot; then you need to find out what to do. Throwing the code over the wall and waiting for customer feedback is bad - you might ask a product manager if you have one, or ask the customer before you deploy the product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember, &quot;we know about that problem and will fix it in a future release&quot; is synonymous with &quot;we know about that problem but don't care about you enough to avoid you dealing with it&quot;.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-10-28T19:41:55.873" />
  <row Id="15433" PostTypeId="2" ParentId="15159" CreationDate="2010-10-28T19:49:10.393" Score="2" ViewCount="" Body="&lt;p&gt;We use T4 in our project for several things:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Auto-generating POCO classes in our DAL when our Entity Framework model is modified.&lt;/li&gt;&#xA;&lt;li&gt;Auto-generating SQL scripts for triggers when our Entity Framework model is modified. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So far they have been working great and have cut out a decent amount of dev time.&lt;/p&gt;&#xA;" OwnerUserId="6414" LastActivityDate="2010-10-28T19:49:10.393" CommentCount="2" />
  <row Id="15434" PostTypeId="2" ParentId="15405" CreationDate="2010-10-28T19:50:27.763" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Do i:&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;fix the code and get blamed for breaking it? or&lt;/li&gt;&#xA;  &lt;li&gt;leave the bug, and get blamed when the customer finds it?&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You fix the bug, start the &lt;strong&gt;&lt;em&gt;unit tests&lt;/em&gt;&lt;/strong&gt;, and when they succeed, you check in your fix. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Or, if your unit tests take a really long time, you check in your fix first, and then wait whether your CI tool sends you a mail because your commit broke something.) &lt;/p&gt;&#xA;" OwnerUserId="1512" LastActivityDate="2010-10-28T19:50:27.763" CommentCount="3" />
  <row Id="15435" PostTypeId="2" ParentId="15159" CreationDate="2010-10-28T19:59:10.937" Score="2" ViewCount="" Body="&lt;p&gt;I just started to use them recently with &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa697427%28VS.80%29.aspx&quot; rel=&quot;nofollow&quot;&gt;Entity Framework&lt;/a&gt; in order to generate the SQL scripts and/or POCO classes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before that, I'd used &lt;a href=&quot;http://www.stringtemplate.org/&quot; rel=&quot;nofollow&quot;&gt;String Template&lt;/a&gt; for quick code generation. Deklarit's dkts were also a great solution, plus, it had a nice template editor right on Visual Studio (those were the days) :)&lt;/p&gt;&#xA;" OwnerUserId="1061" LastActivityDate="2010-10-28T19:59:10.937" />
  <row Id="15436" PostTypeId="2" ParentId="15397" CreationDate="2010-10-28T20:00:37.873" Score="0" ViewCount="" Body="&lt;p&gt;While you are right that you should master at least one language, learning another language is rarely if ever a waste of time. Even the most horrible programming language (I won't tell the name because this could end up in a bloody religious war :-)) has some features who made me think:&quot;Hey, why can't Java/C/ do this?&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, there isn't THE perfect language as of today. Though Python comes pretty close to it ^^.&lt;/p&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2010-10-28T20:00:37.873" CommentCount="1" />
  <row Id="15437" PostTypeId="2" ParentId="15379" CreationDate="2010-10-28T20:21:48.180" Score="0" ViewCount="" Body="&lt;p&gt;Patterns aren't really platform-specific; they're about solving a particular issue.  So the patterns to apply vary on the type of application.  Platforms almost always have baked-in patterns that aren't explicitly mentioned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're likely using many patterns without being aware of them (observer, service layers, transaction scripts, active record, controller, factory, etc...).  So, perhaps another good question to ask is &quot;What patterns should I understand to take advantage of the Android Platform?&quot;, or &quot;What patterns aren't implemented in Android but make development easier?&quot; (which is much more subjective, especially without a firm definition of what it is you're working on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So perhaps the best answer for you isn't to ask for advice but to do some studying to see what you're using but not acknowledging.  Fowler's Patterns of Enterprise Application Architecture is a great read for this--and it's &quot;Cheat Sheet&quot; in the rear-cover is an awesome way to start reading the book.&lt;/p&gt;&#xA;" OwnerUserId="5828" LastActivityDate="2010-10-28T20:21:48.180" />
  <row Id="15438" PostTypeId="2" ParentId="13757" CreationDate="2010-10-28T20:23:54.997" Score="8" ViewCount="" Body="&lt;p&gt;Obviously quite a few people haven't done their homework and read the &lt;a href=&quot;http://www.seebs.net/faqs/c-iaq.html&quot; rel=&quot;nofollow&quot;&gt;comp.lang.c infrequently asked questions&lt;/a&gt; list. Otherwise, they'd know how to pronounce &lt;code&gt;char&lt;/code&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;19.26: How do you pronounce ``char''?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Like the first word of ``char *''. The accent is generally on the first syllable.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Some other pieces are funnier:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;17.6: What's this ``white space'' I keep hearing about?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;White space is a racist, segregational term. Implicitly, &quot;dark&quot; or &quot;colored&quot; space (i.e., the '_' character) is not good enough to separate tokens. More interestingly, the white space characters keep the other tokens apart. They say it's for parsing, but there's ample evidence the goal of white space is to keep the other characters from &quot;taking over&quot; the program. This is disguised by the description of C as &quot;white space insensitive&quot; - a simple ploy for sympathy.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-28T20:23:54.997" CommunityOwnedDate="2011-01-09T02:54:49.947" />
  <row Id="15439" PostTypeId="2" ParentId="15397" CreationDate="2010-10-28T20:25:25.497" Score="1" ViewCount="" Body="&lt;p&gt;It really depends on the industry you plan to enter. I would say that far more jobs are available in Java or .Net than Python (not that there's anything wrong with Python). More people using these two application languages means they have, pretty much hands down (at the risk of offending someone), the widest knowledgebase and most expansive frameworks available. In the business app world, framework support is a huge part of remaining competitive.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-10-28T20:25:25.497" CommentCount="1" />
  <row Id="15440" PostTypeId="2" ParentId="15422" CreationDate="2010-10-28T20:26:16.237" Score="1" ViewCount="" Body="&lt;p&gt;Skills/Technologies section definitely belongs on the first page of your resume.  I believe this is the professional resume standard.  Most resumes I see follow this standard, unless the candidate has only a few years of experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Summary, objective, and skills/technologies should leave enough space on the first page for the last one or two jobs that you've had so that you can showcase them.  The rest of the work history and education can fill the second page (they are less important, at least in the eyes of some interviewers).&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-10-28T20:26:16.237" />
  <row Id="15442" PostTypeId="2" ParentId="14856" CreationDate="2010-10-28T20:49:45.600" Score="-2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Static typing of primitives&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having to specify a data type as one of a large number of types of number is premature optimization.  Just call it a number, keep track of its value, and assign a type later if it's useful for optimization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;User-defined types are useful.  Inherent types aren't.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-28T20:49:45.600" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="9" />
  <row Id="15443" PostTypeId="2" ParentId="5920" CreationDate="2010-10-28T20:53:58.310" Score="4" ViewCount="" Body="&lt;p&gt;I manage my resume in XML; in the &lt;a href=&quot;http://xmlresume.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;XML Resume&lt;/strong&gt;&lt;/a&gt; format.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have also customized the XSLT transforms and ANT build script from the project to produce the following output formats: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;PDF&lt;/strong&gt; - by importing the XSL-FO stylesheets from the &lt;a href=&quot;http://xmlresume.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;XML Resume&lt;/a&gt; project and adding some customizations.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;HTML&lt;/strong&gt; - leveraging the generated XSL-FO and transforming with the &lt;a href=&quot;http://www.renderx.com/tools/fo2html.html&quot; rel=&quot;nofollow&quot;&gt;FO2HTML stylesheet from RenderX&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;DOCX&lt;/strong&gt; - transforming the XSL-FO into DOCX using the &lt;a href=&quot;http://fo2wordml.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;fo2wordml.sourceforge.com stylesheet&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;RTF&lt;/strong&gt; - Using the &lt;a href=&quot;http://www.xmlmind.com/foconverter/downloadperso.shtml&quot; rel=&quot;nofollow&quot;&gt;XMLmind XSL Utility&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;plain text&lt;/strong&gt; - using the stylesheet from the &lt;a href=&quot;http://xmlresume.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;XML Resume project&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4922" LastEditorUserId="4922" LastEditorDisplayName="" LastEditDate="2011-02-21T02:17:39.807" LastActivityDate="2011-02-21T02:17:39.807" CommentCount="2" />
  <row Id="15444" PostTypeId="2" ParentId="9006" CreationDate="2010-10-28T20:58:42.387" Score="5" ViewCount="" Body="&lt;p&gt;The problem with functional programming isn't functional programming itself -- it's most of the people who do it and (worse) most of the people who design languages in which to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem stems from the fact that despite being very smart (sometimes downright brilliant) far too many of the people are just a little too fanatical about purity, perfection, and enforcing their own (often rather narrow) view of the world and programing onto the language and everybody who uses it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the results is a failure to compromise. This leads (among other things) to roughly 10,000 languages and dialects that are enough different to annoy but only rarely enough different for one to have a truly significant advantage over the others. Many also look at the real world, and decide that since it doesn't fit the functional model very well, it's basically just wrong and best ignored.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The inability to compromise has also led to quite a few languages that are absolutely beautiful for a specific type of problem (or a few specific types of problems) but really &lt;em&gt;suck&lt;/em&gt; for a lot of others. Some of that is probably caused by the functional model itself, but a lot more seems (at least to me) to be caused by the basic personality type that's attracted to this area to start with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That leads to a number of problems. First of all, learning &quot;functional programming&quot; is mostly of philosophical value. With most other types of languages, knowing one language of a particular genre is of significant help in learning another. If my project uses language X I can usually hire somebody who knows language Y (but not X) fairly safely. With functional languages, that's much less true. You might know Erlang quite well, but still find Haskell monads completely foreign and incomprehensible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Couple the number of languages with the limited portability of talent between them, and you get an ugly situation: it's almost impossible for one language or dialect to form the &quot;critical mass&quot; necessary to make it into reasonably general use. That's slowly changing, but it's still a lot like Linux becoming the dominant desktop OS -- every year, people come up with convincing arguments that &lt;em&gt;finally&lt;/em&gt; this is going to be &lt;em&gt;the&lt;/em&gt; year -- and just like the people who've been predicting that every year for decades now, they'll be wrong yet again. That's not to say that it (either one) can't ever happen -- just that the people who look at the predictions and think &quot;nope, not this year&quot; have been the ones who were right so far.&lt;/p&gt;&#xA;" OwnerUserId="902" LastEditorUserId="902" LastEditorDisplayName="" LastEditDate="2010-11-07T19:13:47.390" LastActivityDate="2010-11-07T19:13:47.390" CommentCount="1" />
  <row Id="15446" PostTypeId="2" ParentId="15422" CreationDate="2010-10-28T21:03:55.177" Score="2" ViewCount="" Body="&lt;p&gt;Listen to this podcast: &lt;a href=&quot;http://www.manager-tools.com/2005/10/your-resume-stinks&quot; rel=&quot;nofollow&quot;&gt;http://www.manager-tools.com/2005/10/your-resume-stinks&lt;/a&gt; (lots of other great podcasts but start with this one). It will sound like heresy. But think long and hard on it. It makes sense. Still assemble your entire list of positions, technologies, etc. Don't have a &quot;Technology&quot; section, nor a &quot;Summary&quot; at the top. And don't have a &quot;first page&quot; - only have one page. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;FORMAT: Your contact info at the top and then your professional experience listed below, reverse chronological. Company, job title, dates of employment on one line. Next line / paragraph is a BRIEF summary of the job responsibilities (NOT YOUR ACCOMPLISHMENTS - ONLY RESPONSIBILITIES). Then a bulleted list of accomplishments (preferably measurable) and THERE you would make reference to the technology used to make it happen. Just before the bottom of the page put your education, one line per. That's it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make your case in your cover letter but the resume should be one page, and customized to the position you are applying for.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-10-28T21:03:55.177" CommentCount="1" />
  <row Id="15447" PostTypeId="2" ParentId="15397" CreationDate="2010-10-28T21:11:59.980" Score="4" ViewCount="" Body="&lt;p&gt;I don't think Python is going to be a very good fit for embedded microcontrollers which might have only 32K of flash and 4K of RAM, but need to handle 25,000 interrupts per second.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(p.s. I have nothing against Python, in fact I recently purchased &lt;a href=&quot;http://www.jetbrains.com/pycharm/&quot; rel=&quot;nofollow&quot;&gt;Pycharm 1.0&lt;/a&gt; from JetBrains.  I just don't see it as general-purpose as C, for example.  Can you write all of Python in itself?)&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-10-28T21:17:53.890" LastActivityDate="2010-10-28T21:17:53.890" CommentCount="1" />
  <row Id="15448" PostTypeId="2" ParentId="13757" CreationDate="2010-10-28T21:14:39.267" Score="2" ViewCount="" Body="&lt;p&gt;&lt;pre&gt;#&lt;/pre&gt; This can also be called the number sign or octothorpe for another couple of answers.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&amp;lt;,&amp;gt;&lt;/pre&gt; &#xA;&#xA;&lt;p&gt;These are &quot;angle brackets&quot; usually now though growing up I knew them as less than and greater than respectively.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-28T21:14:39.267" CommunityOwnedDate="2011-01-09T02:54:49.947" />
  <row Id="15449" PostTypeId="1" CreationDate="2010-10-28T21:16:07.807" Score="6" ViewCount="260" Body="&lt;p&gt;I'm a regular user here, but linking my screen name to my real identity is dirt simple, and the question I'm about to ask would lead to a very unpleasant conversation with my current employer were they to see it.  So, my apologies for this sock-puppet account; I promise Socky and I won't be voting on each other's stuff, and Socky won't be doing much of anything other than voting on answers to his own questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I may have an opportunity to work with somebody I've worked with in the past.  Short, extremely understated summary:  It went well.  This time he's looking to bring me on as a partner to a fledgling web venture.  My job title isn't defined, but I'd basically be &quot;the guy&quot; in terms of the tech side of the company.  One of the first things I'd be doing is fleshing out the current and future requirements of the site and determining the best way to meet them -- overhaul the existing site?  Scrap the existing site entirely and replace it with something like Drupal?  I'd also be tasked with making sure that the site is not only a pleasant user experience, but that it looks and feels like a modern, professional website.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One problem:  I'm not qualified.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least, not yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wasn't really qualified for the last time we worked together, but I taught myself what I needed to know and ... like I said.  It Went Well.  However, I was a lower-level code wrangler that time around, and a lot of key decisions had already been made.  I had more room for error and time to learn as I was going.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This outing, not so much.  It's been a long damn time since I was completely up-to-date on web programming; my current gig has a healthy dash of web stuff, but the web interface isn't the main business and it's built on old technology.  (Technology it honestly doesn't use particularly well.)  I just don't spend a lot of time playing with new tech when I'm not at work; I generally spend that time on hobbies and passions I don't get paid to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I want this to happen.  And I want to do it right.  So my question is:  what resources would you recommend I use to both get myself up-to-date and stay up-to-date on professional-caliber web programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know I need to beef-up my jQuery-fu; I've been exposed to it a little, and holy crap does it make hard jobs easy.  I also know I need to acquaint myself with Drupal and other content management systems so that I can accurately gauge whether using one as the foundation for the site would be a good idea or a waste of time.  But I'm certain there are other technologies out there that would help me do that job that I don't yet know anything about.  What are some good resources for helping me figure out what I don't know?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Websites, magazines, podcasts, whatever.  I need to figure out how to get back into the game properly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is scary as hell, but it also feels like it could be a huge step forward in my career.  (Assuming it's not a step into a pool filled with laser sharks.)  My thanks in advance for any assistance anybody can offer in curing my ignorance.&lt;/p&gt;&#xA;" OwnerUserId="6663" LastActivityDate="2010-10-29T16:34:03.020" Title="How do I get up-to-date on web development technologies?" Tags="&lt;web-development&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="15450" PostTypeId="2" ParentId="15395" CreationDate="2010-10-28T21:19:16.573" Score="0" ViewCount="" Body="&lt;p&gt;If you're willing to pay, the content from &lt;a href=&quot;http://www.pluralsight-training.net/microsoft/olt/courses.aspx&quot; rel=&quot;nofollow&quot;&gt;Pluralsight&lt;/a&gt; is very good. They cover intro to .NET sort of things (mostly C# but some VB.NET, and of course the framework concepts are not language specific) and then go into specific technologies you might want to use.&#xA; For $99 you get &quot;all you can eat&quot; for a month in a very extensive library.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disclaimer: I wrote one of the Windows 7 development courses and both Extending Visual Studio courses. I'm not recommending either of those to you in this answer.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-28T21:19:16.573" />
  <row Id="15451" PostTypeId="2" ParentId="15419" CreationDate="2010-10-28T21:21:55.383" Score="0" ViewCount="" Body="&lt;p&gt;Just think of something to build and built it. It should be a problem domain you understand well so that your time will be spent on architecture, interface design, programming and whatever other skills you want to practice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are a few things I build to do this because this is how I move to a new language, and/or framework:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;A bug tracking tool. All developers should be familiar with these and what they need to do. These have the advantage of being a well known domain but can be simple to complex because you can include things like work flow, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A hobby inventory application. This&#xA;is a good application to build if&#xA;you want to get more familiar with&#xA;CRUD functionality. For example,&#xA;build an application to track the&#xA;baseball cards you own, the antiques&#xA;you have, etc. It really doesn't&#xA;matter what you are tracking, you&#xA;just want to keep the item you are&#xA;tracking simple so that you can&#xA;concentrate on learning about&#xA;implemented CRUD functionality.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It really doesn't matter what you build, the idea is to keep the problem domain simple so that figuring out the functionality is a piece of cake.&lt;/p&gt;&#xA;" OwnerUserId="1236" LastActivityDate="2010-10-28T21:21:55.383" />
  <row Id="15452" PostTypeId="1" CreationDate="2010-10-28T21:27:59.687" Score="2" ViewCount="114" Body="&lt;p&gt;I'm currently working on a project where we want to interface with TWAIN scanners on both the PC (Windows) and the Macintosh. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On Windows, we basically have everything squared away and the code works successfully with the vast majority of scanners.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On Mac OS X, we also basically have everything working and with the main scanner we used to develop the application with works perfectly, but we're not having a ton of luck with other scanners. As a byproduct of development on this project, we have a fair number of scanners from various manufacturers on-hand to test with. The results vary wildly:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The scanner we used to develop with works perfectly on Mac OS X as it does in Windows. Ironically this scanner is the cheapest and crappiest scanner (speed-wise) we've ever encountered but it's been a dream to work with.&lt;/li&gt;&#xA;&lt;li&gt;Another scanner works great - until the second or third scan, at which point the application crashes with no clear indication of what happened (we get an EXEC_BAD_ACCESS from the debugger)&lt;/li&gt;&#xA;&lt;li&gt;Another scanner apparently has no TWAIN support on Mac OS X (no data sources in the &quot;Image Capture/TWAIN Data Sources&quot; folder), although it does have TWAIN support in Windows.&lt;/li&gt;&#xA;&lt;li&gt;Another scanner has a generic data source that I'm thinking is supposed to cover all the possible scanners from this manufacturer but when we try to initiate a native scan (which is a requirement for all TWAIN data sources) we get no results. Also, trying to install a second scanner from this manufacturer gums everything up and requires a manual uninstall for everything from this company.&lt;/li&gt;&#xA;&lt;li&gt;Another scanner has a TWAIN data source that appears to be specific to the manufacturer, but it also fails to initiate a native scan (but a scan using the native GUI - which is incompatible with our project - works)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So I'm not sure where to go with this. I'm still digging into the code to figure out what, if anything, we're doing wrong but in checking against the TWAIN standard it really does look like we're doing everything right, but we're getting very hit-or-miss results on most of the scanners we're testing against.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, as part of the new Cocoa/Carbon Events model there's this additional consideration of a &quot;callback&quot; function that Mac OS X TWAIN data sources are supposed to implement and I'm not seeing it called from most of these data source/drivers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So all of this leads me to wonder - is it that we're just doing something wrong or is TWAIN just not supported properly by and large on the Macintosh? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm really not seeing a lot of information on TWAIN on the Macintosh online - the occasional sporadic inquiry on twainforum.org tends to go unanswered. Windows also has a thing called WIA - Windows Image Acquisition - and on the Windows side we also include this as an option. Is there something else on the Mac we should be exploring instead of or in addition to TWAIN?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; I've posted this same question on &lt;a href=&quot;http://stackoverflow.com/questions/4044622/what-is-the-state-of-twain-on-the-macintosh-today&quot;&gt;StackOverflow&lt;/a&gt; but got no responses and after consulting meta, I've decided to re-post it here (since it's more discussion than specific). If this is a big no-no feel free to delete this thing.&lt;/p&gt;&#xA;" OwnerUserId="3080" LastActivityDate="2010-10-28T22:18:43.300" Title="What is the state of TWAIN on the Macintosh today?" Tags="&lt;mac&gt;" AnswerCount="1" />
  <row Id="15453" PostTypeId="2" ParentId="15391" CreationDate="2010-10-28T21:46:14.757" Score="0" ViewCount="" Body="&lt;p&gt;I think the lenght doesn't really matter. I often watch Google Tech Talks, which last around 45 min - 1 hour. While I often can't sit through the whole hour, every 10 or 15 min I do a little break, grab some coffee or check e-mails, then continue.&#xA;Actually, what I hate more is having to switch between videos around the same topic every 5-10 minutes.&lt;/p&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2010-10-28T21:46:14.757" />
  <row Id="15454" PostTypeId="2" ParentId="5920" CreationDate="2010-10-28T21:53:51.457" Score="5" ViewCount="" Body="&lt;p&gt;I use my profile on &lt;a href=&quot;http://www.linkedin.com/&quot; rel=&quot;nofollow&quot;&gt;LinkedIn&lt;/a&gt; as my public CV. Makes it easy to keep up to date.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-10-28T21:53:51.457" />
  <row Id="15455" PostTypeId="2" ParentId="15422" CreationDate="2010-10-28T21:57:08.880" Score="1" ViewCount="" Body="&lt;p&gt;A friend of mine (who does only consulting) puts his at the top of the first page. It covers about half the first page. The following part lists companies and where those skills were put to use - and how they were used. His resume is tailored to come to the top of the pile when recruiters do a search. He does not have a chronological section because he's 55 and a chronological section makes it to easy to decide he's too old to interview. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-10-28T21:57:08.880" CommentCount="1" />
  <row Id="15456" PostTypeId="1" CreationDate="2010-10-28T21:57:53.713" Score="4" ViewCount="448" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/7861/when-deciding-on-whether-or-not-to-work-for-a-new-company-what-are-your-dealbrea&quot;&gt;When deciding on whether or not to work for a new company, what are your dealbreakers?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;When looking for a job as a programmer, what should set off alarms that a particular employer might be a really bad fit?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are a few I've run into...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Having an interviewer say, &quot;I could get somebody to do this job a lot cheaper in India.&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Being told a company's attire is &quot;business formal&quot;, and wearing a suit to the interview, only to find you're only person in the building who even has a necktie on.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Asking what it's like to work at the company, and having the interviewer cringe.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-10-28T22:16:17.130" ClosedDate="2010-10-28T22:33:16.827" Title="Programming Employer &quot;Smells&quot;" Tags="&lt;jobs&gt;&lt;work-environment&gt;&lt;interview&gt;&lt;employment&gt;&lt;job-market&gt;" AnswerCount="2" CommentCount="5" FavoriteCount="1" />
  <row Id="15457" PostTypeId="1" CreationDate="2010-10-28T22:02:12.153" Score="0" ViewCount="270" Body="&lt;p&gt;Can anyone recommend hosts other than github ( 100% git ), codesion and beanstalk which support both svn and git? ( I want to compare every host under the sun, I don't have beef with github/codesion/beanstalk )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Preferably looking for something that has unlimited repositories and looking for plans with 100-200 gb of size per plan. I'll probably have two accounts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My current CVS repository is around 80 gigs, which I'll convert to either svn or git in the coming weeks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: I'm not looking for free hosting. I'm looking for premium, $xxx/month hosting.&lt;/p&gt;&#xA;" OwnerUserId="6665" LastEditorUserId="6665" LastEditorDisplayName="" LastEditDate="2010-10-29T01:11:15.427" LastActivityDate="2011-05-26T10:52:37.123" Title="Code repository hosts that support both svn and git?" Tags="&lt;version-control&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="1" />
  <row Id="15458" PostTypeId="2" ParentId="9006" CreationDate="2010-10-28T22:04:20.140" Score="0" ViewCount="" Body="&lt;p&gt;first of all i don't accept any of the arguments regarding state-ful programming and fp. look into the State monad in haskell and you will find a number of interesting new ways to assess the impact of state on your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if i was to make a meaningful argument against fp, it would be that learning a serious functional language like haskell is like learning to drive a formula one car....exhilarating and educational, but sadly useless for everyday industrial coding because, on average, your coworkers are driving camrys and are quite happy to do so. it is still extremely difficult to find work in an fp-friendly environment, and i don't see this changing unless one is willing to strike out on their own or seek out some of the well-known practitioners of fp.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i suppose my answer shows me up as a fp fanboy. i suggest giving a real fp language like haskell a serious spin before worrying about finding reasons why you shouldn't.&lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-10-28T22:04:20.140" CommentCount="2" />
  <row Id="15459" PostTypeId="2" ParentId="15456" CreationDate="2010-10-28T22:11:05.937" Score="3" ViewCount="" Body="&lt;p&gt;A score of three or less on &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;The Joel Test&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5493" LastActivityDate="2010-10-28T22:11:05.937" CommentCount="1" />
  <row Id="15460" PostTypeId="2" ParentId="15292" CreationDate="2010-10-28T22:12:47.790" Score="0" ViewCount="" Body="&lt;p&gt;well first of all there are a number of languages that are very hard to avoid for most programmers: javascript, sql, c, etc. so you might as well get acquianted with them, they aren't going away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;it is also a good idea to know a duck-typed scripting language...e.g. one of perl, python, ruby, lua etc. these are incredibly useful for a huge array of problems including automating much of your own daily drudgery&lt;/p&gt;&#xA;&#xA;&lt;p&gt;for better or for worse you will also likely run into c# and/or java at some point too, they're quite pervasive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;in any case, don't limit yourself artificially. those coders i know who explicitly avoid picking up interesting tools seem to have cloistered worldviews and limited impact.&lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-10-28T22:12:47.790" />
  <row Id="15461" PostTypeId="2" ParentId="15456" CreationDate="2010-10-28T22:16:17.130" Score="5" ViewCount="" Body="&lt;p&gt;If the shop calls their methodology &quot;Agile&quot;, but are vague about exactly how they implement it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a huge red flag that they're probably a hack shop with no real methodology or process in place at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*Source: The School Of Hard Knocks.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-28T22:16:17.130" />
  <row Id="15462" PostTypeId="2" ParentId="15452" CreationDate="2010-10-28T22:18:43.300" Score="1" ViewCount="" Body="&lt;p&gt;Very interesting, given that TWAIN evolved from work by the Macintosh Scanner Roundtable in the early 90s.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did a little TWAIN client project about five years ago on OS X, and the few scanners I threw at it worked fine. Maybe things have changed since then and manufacturers have dropped support or done a half-baked job; I just don't know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I were you, I'd try Thorsten Lemke's GraphicConverter with your scanners. It's got pretty good basic TWAIN support, and the results will give you an indication of whether the problems you're seeing are on the manufacturer's (scanner, driver) side, or in your own code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It looks like there's a new standard called &lt;a href=&quot;http://www.sane-project.org/&quot; rel=&quot;nofollow&quot;&gt;SANE&lt;/a&gt; that appears to have started on Linux and migrated to the Mac. A lot of Mac folks are using it with scanners that have poor TWAIN support, and there's also a SANE-to-TWAIN bridge.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-10-28T22:18:43.300" CommentCount="1" />
  <row Id="15463" PostTypeId="2" ParentId="9006" CreationDate="2010-10-28T22:22:14.283" Score="3" ViewCount="" Body="&lt;p&gt;With all due respect, I think your question is ill posed.  Functional programming is a tool, or rather a set of tools that are useful for solving certain kinds of problems.  Having an opinion about it only makes sense in the context of a specific problem or application.  Having an opinion against it in general, is like having an opinion against pliers or wrenches.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-28T22:22:14.283" CommentCount="1" />
  <row Id="15464" PostTypeId="2" ParentId="15449" CreationDate="2010-10-28T22:23:24.157" Score="4" ViewCount="" Body="&lt;p&gt;Start reading and using. Using is the best way to get up to speed.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-10-28T22:23:24.157" CommentCount="4" />
  <row Id="15465" PostTypeId="2" ParentId="15292" CreationDate="2010-10-28T22:25:29.770" Score="0" ViewCount="" Body="&lt;p&gt;This could become another specialist vs generalist debate in a sense.  Some people may spend a long time knowing one language to great depths which works fine for them.  Other people may like to know a little about a bunch of different languages which works fine for them.  Most people are between these two extremes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want suggestions of languages to explore here are a few ideas:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Functional programming - Haskell or Lisp would be examples here and the paradigm shift can be a bit of a head turner to some extent.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Database specific - PL/SQL or T-SQL come to mind as something that may be useful if you want to do more back-end work with systems that require a database for some of its functionality.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;UI web languages - ActionScript or Javascript would be examples here of languages used in Rich Internet Applications, though AIR can make some desktop applications use web calls in some cases like Twhirl using the Twitter API.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;These are just ideas and depending on where you want to be these may be useful or useless to you.  Good luck with whatever choices you make.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-10-28T22:25:29.770" />
  <row Id="15466" PostTypeId="1" CreationDate="2010-10-28T22:25:43.970" Score="7" ViewCount="241" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/q/4047243/119477&quot;&gt;This StackOverflow question&lt;/a&gt; asks &quot;where can I get Microsoft.Data.Objects&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It turns out the answer was probably that its in the CTP4 (code first) release of Entity Framework 4&#xA;However there where a lot of guesses.  Including &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;System.Data&lt;/li&gt;&#xA;&lt;li&gt;Entity Framework&lt;/li&gt;&#xA;&lt;li&gt;Microsoft.ApplicationBlocks.Data &lt;/li&gt;&#xA;&lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Data&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;10 years ago if someone asked a similar question for they might have gotten DAO, RDO, ADO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this just the nature of the beast or is it MS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does this pattern happen with other vendors? Where the base data access strategy is either wrapped or changed?&lt;/p&gt;&#xA;" OwnerUserId="162" LastEditorUserId="162" LastEditorDisplayName="" LastEditDate="2011-02-18T17:14:42.010" LastActivityDate="2011-02-18T17:14:42.010" Title="Why is it that MS Data Access story is so fractured ? Is it the nature of Data Access or is just MS?" Tags="&lt;data-structures&gt;&lt;microsoft-access&gt;" AnswerCount="4" />
  <row Id="15468" PostTypeId="1" CreationDate="2010-10-28T22:29:40.903" Score="20" ViewCount="1027" Body="&lt;p&gt;Python seems all the rage these days, and not undeservingly - for it is truly a language with which one almsot enjoys being given a new problem to solve. But, as &lt;em&gt;wise man&lt;/em&gt; once said (calling him a &lt;em&gt;wise man&lt;/em&gt; only because I've no idea as to who actually said it; not sure whether he was that wise at all), to really know a language one does not only know its syntax, design, etc., advantages but also its drawbacks. No language is perfect, some are just better than others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what would be in your opinion, objective drawbacks of Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Note: I'm not asking for a language comparison here (i.e. C# is better than Python because ... yadda yadda yadda) - more of an objective (to some level) opinion which language features are badly designed, whether, what are maybe some you're missing in it and so on. If must use another language as a comparison, but only to illustrate a point which would be hard to elaborate on otherwise (i.e. for ease of understanding)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-12-26T08:39:14.723" LastActivityDate="2010-12-26T13:05:49.860" Title="What are the drawbacks of Python?" Tags="&lt;programming-languages&gt;&lt;python&gt;" AnswerCount="10" CommentCount="11" FavoriteCount="4" />
  <row Id="15469" PostTypeId="2" ParentId="11007" CreationDate="2010-10-28T22:31:28.127" Score="1" ViewCount="" Body="&lt;p&gt;I've never had anyone ask to even see proof that I have a degree, let alone actually look at my academic transcript and results (4 jobs so far, almost a decade in the industry).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll generally find that, for most programming jobs, it's &lt;em&gt;what you can do&lt;/em&gt; that counts. In my experience, getting through technical questioning/tests in the interview and hiring process  and showing first hand that you know your stuff takes you 90% of the way there. This is one thing I really like about programming. Unlike some other white collar fields, the &lt;em&gt;Who You Know&lt;/em&gt; and &lt;em&gt;Book Learnin' Grades&lt;/em&gt; factors are relatively low and it's reasonably pragmatic-meritocratic (far from 100% of course, but &lt;em&gt;relatively&lt;/em&gt; speaking).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All that said, many big companies who have very formal hiring processes for graduates/juniors probably &lt;strong&gt;WILL&lt;/strong&gt; check your grades. So it's good to have the best grades possible to keep as many options open as possible. But I wouldn't lose much sleep over not being top of the class.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-10-28T22:31:28.127" />
  <row Id="15470" PostTypeId="2" ParentId="15468" CreationDate="2010-10-28T22:33:08.287" Score="6" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Arguably&lt;/em&gt;, the lack of static typing, which can introduce certain classes of &lt;em&gt;runtime&lt;/em&gt; errors, is not worth the added flexibility that duck typing provides.&lt;/p&gt;&#xA;" OwnerUserId="1777" LastActivityDate="2010-10-28T22:33:08.287" CommentCount="7" />
  <row Id="15471" PostTypeId="2" ParentId="15468" CreationDate="2010-10-28T22:35:52.810" Score="7" ViewCount="" Body="&lt;p&gt;Python's scoping is badly broken, which makes object-oriented programming in Python very awkward.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-28T22:35:52.810" CommentCount="8" />
  <row Id="15472" PostTypeId="2" ParentId="15468" CreationDate="2010-10-28T22:39:13.450" Score="18" ViewCount="" Body="&lt;p&gt;I use Python somewhat regularly, and overall I consider it to be a very good language.  Nonetheless, no language is perfect.  Here are the drawbacks in order of importance to me personally:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;It's slow.  I mean really, really slow.  A lot of times this doesn't matter, but it definitely means you'll need another language for those performance-critical bits.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Nested functions kind of suck in that you can't modify variables in the outer scope.  &lt;em&gt;Edit:&lt;/em&gt;  I still use Python 2 due to library support, and this design flaw irritates the heck out of me, but apparently it's fixed in Python 3 due to the &lt;a href=&quot;http://docs.python.org/py3k/reference/simple_stmts.html#the-nonlocal-statement&quot; rel=&quot;nofollow&quot;&gt;nonlocal&lt;/a&gt; statement.  Can't wait for the libs I use to be ported so this flaw can be sent to the ash heap of history for good.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It's missing a few features that can be useful to library/generic code and IMHO are simplicity taken to unhealthy extremes.  The most important ones I can think of are user-defined value types (I'm guessing these can be created with metaclass magic, but I've never tried), and ref function parameter.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It's far from the metal.  Need to write threading primitives or kernel code or something?  Good luck.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;While I don't mind the lack of ability to catch &lt;em&gt;semantic&lt;/em&gt; errors upfront as a tradeoff for the dynamism that Python offers, I wish there were a way to catch syntactic errors and silly things like mistyping variable names without having to actually run the code.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The documentation isn't as good as languages like PHP and Java that have strong corporate backings.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1468" LastEditorUserId="1468" LastEditorDisplayName="" LastEditDate="2010-10-29T01:02:45.400" LastActivityDate="2010-10-29T01:02:45.400" CommentCount="9" />
  <row Id="15473" PostTypeId="2" ParentId="15457" CreationDate="2010-10-28T22:46:11.397" Score="1" ViewCount="" Body="&lt;p&gt;I think your best bet would be to buy a dedicated server and set it up yourself.  It would probably work out cheaper too.&lt;/p&gt;&#xA;" OwnerUserId="5010" LastActivityDate="2010-10-28T22:46:11.397" />
  <row Id="15474" PostTypeId="2" ParentId="15449" CreationDate="2010-10-28T22:51:37.113" Score="3" ViewCount="" Body="&lt;p&gt;Don't lie about who you are and what you can do but consider that if your business partner knows the first thing about you and technology, then he has an idea of how much web development you have done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing about our industry is that it changes very frequently and lots of things are new. This why, every other questions about 'what language should I learn next' invariably ends up being answered as 'whichever is different enough from what you know now' - so that you gain knowledge and not just mechanical skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what do you do? Here's what I do:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Independent research: look up the docs, wrap your head around it&lt;/li&gt;&#xA;&lt;li&gt;Refer to authorities: look at my P.SE/SO history, I've been asking questions about WCF Silverlight and EF recently. I didn't have much experience with them but I've researched them, formed opinions and think I have some answers. Now I'm cross referencing what I think I know against what my peers/superiors know.&lt;/li&gt;&#xA;&lt;li&gt;Practice: Use the technology to implement something you already know how to make using the technologies you already know. You're not trying to &lt;em&gt;create&lt;/em&gt; anything, you're trying to figure out the intricacies of a technology: don't compound it with domain knowledge problems.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I want to drill this point home: If your business partner wanted a 10 year vet, he could go find one. He wanted you, and you are a technology specialist not a [language] user. Leverage that knowledge to attain the skills you need to complete the job. &lt;em&gt;If you can't&lt;/em&gt; then be honest with your partner and yourself and turn it down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;btw: you can.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-28T22:51:37.113" CommentCount="1" />
  <row Id="15475" PostTypeId="2" ParentId="15466" CreationDate="2010-10-28T22:52:38.503" Score="5" ViewCount="" Body="&lt;p&gt;To be fair all of the ones you mention are built on top of ADO.NET. Before that ADO was the favored route for a while but DAO just sort of hang around because it was native for Microsoft Access Databases. RDO was dead on arrival from what I can tell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With all the different frameworks you mention I think the problem is that they are trying to give a solution for everybody and to compete with every other platform. If you want a simple way to just use SQL in your code then go for System.Data. If you want an ORM using Entity Framework. For something in between then use Enterprise Library Data. Everyone wants something different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is also the issue that MS is a very big company with different teams with different agendas. For example why do they also have 3 word processors (that I know of).&lt;/p&gt;&#xA;" OwnerUserId="4335" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-28T23:15:12.220" LastActivityDate="2010-10-28T23:15:12.220" CommentCount="1" />
  <row Id="15477" PostTypeId="2" ParentId="15405" CreationDate="2010-10-28T23:19:03.590" Score="2" ViewCount="" Body="&lt;p&gt;You have good answers already. I will just add something about the issue of being afraid that something crashes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, in the ideal situation the software is modular, is architected correctly and there is good separation of concerns. In this case, the changes you make are highly unlikely to break anything as you will be in control of all the related code and there is no hidden surprises.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, the ideal situation is fictional. Regardless of the extent to which the coupling is loose, there will be coupling and hence the possibility of breaking something else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The solution to this is two-fold:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Make the code as well structured as possible.&lt;/li&gt;&#xA;&lt;li&gt;When the code is isolated enough that you know that nothing else will break, fix it.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Making the code well structured is &lt;em&gt;not&lt;/em&gt; done by rewriting the whole code to a new architectural design. Rather, &lt;strong&gt;refactoring&lt;/strong&gt; guided by tests is your friend here. In this step, you do not change the functionality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second step is that you fix the bug.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few points are relevant:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Version Control&lt;/strong&gt; is absolutely needed for this process.&lt;/li&gt;&#xA;&lt;li&gt;The refactoring step and the bug fixing step are better committed to version control as separate commits, so each has a well defined historical functionality.&lt;/li&gt;&#xA;&lt;li&gt;Don't fixate on the possibility of making another bug, you won't get anything done. Rather, think of making your code better. In other words, unless you know that you are increasing the bugs rather than decreasing them then you should do it.&lt;/li&gt;&#xA;&lt;li&gt;Related to the last point: don't try to predict the future. Humans are biased to think that they are very good at prediction. In reality our prediction powers are short term. So don't worry about a vague undefined future bug. This is also the principle behind &lt;a href=&quot;http://en.wikipedia.org/wiki/You_ain%27t_gonna_need_it6.&quot; rel=&quot;nofollow&quot;&gt;YAGNI&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;The corresponding tool to version control in the bug world is the &lt;strong&gt;bug tracker&lt;/strong&gt;. You will need that as well.&lt;/li&gt;&#xA;&lt;li&gt;You need to fix bugs for two reasons: in order to satisfy the customer; and in order to be able to progress in your development. To use example 3 (the physics one): if the program satisfies the customer with such a broken equation, then there are many other parts of the software that are wrongly developed to mitigate this bug (for example the airbag deployment). If a version 2 (or 1.1) is required for this software, then you will find it more and more difficult to develop correct code based on this faulty one. You are then either heading for the big rewrite, or for the grand failure. Both of which you should avoid.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;These are already more than a few points, so I guess I will stop here.&lt;/p&gt;&#xA;" OwnerUserId="6184" LastActivityDate="2010-10-28T23:19:03.590" />
  <row Id="15478" PostTypeId="2" ParentId="15457" CreationDate="2010-10-28T23:24:09.883" Score="2" ViewCount="" Body="&lt;p&gt;Github is not 100% git and it supports SVN running over the Git repositories. It basically fakes a SVN server.&lt;/p&gt;&#xA;" OwnerUserId="227" LastActivityDate="2010-10-28T23:24:09.883" />
  <row Id="15480" PostTypeId="2" ParentId="15468" CreationDate="2010-10-28T23:40:46.027" Score="6" ViewCount="" Body="&lt;p&gt;My main complaint is threading, which is not well supported. However there is a multiprocess interface that is very easy to use, just that its going to be heavier on memory usage for the same number of processes vs. threads, or difficult if you have a lot of shared data. The benefit however, is that once you have a program working on with multiple processes, it can scale across multiple machines, something a threaded program can't do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really disagree on the critique of the documentation, I think it is excellent and better than most if not all major languages out there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also you can catch many of the runtime bugs running pylint.&lt;/p&gt;&#xA;" OwnerUserId="3122" LastActivityDate="2010-10-28T23:40:46.027" CommentCount="3" />
  <row Id="15481" PostTypeId="2" ParentId="15457" CreationDate="2010-10-28T23:41:24.837" Score="1" ViewCount="" Body="&lt;p&gt;ProjectLocker fits the bill. I have been using them for years, and their service is really excellent.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-10-28T23:41:24.837" CommentCount="1" />
  <row Id="15482" PostTypeId="2" ParentId="12807" CreationDate="2010-10-29T00:14:54.760" Score="0" ViewCount="" Body="&lt;p&gt;One issue in C is that there's a tradition of using values other than 0 and 1 for booleans.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;typedef enum { WHATEVER = 1 &amp;lt;&amp;lt; 4 } MyFlags;&#xA;if (flags &amp;amp; WHATEVER) {&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or even relying on -1 being true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is say you're writing an API:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;struct foo { &#xA;  unsigned int bar : 1;&#xA;};&#xA;&#xA;void myapi_foo_set_bar(struct foo *foo, int bar) {&#xA;   foo-&amp;gt;bar = bar;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Here if bar isn't canonicalized to 0 or 1 it won't fit in the bitfield and it breaks:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;myapi_foo_set_bar(foo, flags &amp;amp; WHATEVER); /* broken */&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You can find other ways non-canonical bools break as well, such as comparing them to TRUE or FALSE as in the question!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway what I'm coming around to is that it often makes sense to canonicalize a bool:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;foo-&amp;gt;bar = bar != FALSE;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This is a C-specific weirdness, of course.&lt;/p&gt;&#xA;" OwnerUserId="6669" LastActivityDate="2010-10-29T00:14:54.760" CommunityOwnedDate="2010-10-29T00:14:54.760" />
  <row Id="15483" PostTypeId="2" ParentId="15405" CreationDate="2010-10-29T00:23:05.067" Score="1" ViewCount="" Body="&lt;p&gt;Fix them if they are crash/data loss bugs. Shipping a program with a known data-loss bug is downright malicious and inexcusable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the bug is cosmetical or non-critical (can be avoided) then it should be documented and a workaround should be provided. Ideally it should be fixed, but sometimes it's too expensive to fix it for the current release.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Notice how every bigger software project has a 'Known Issues' section in the ReadMe which usually lists exactly that: Bugs that are known.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowing Bugs and NOT communicating them is IMHO only acceptable for really minor/cosmetical bugs.&lt;/p&gt;&#xA;" OwnerUserId="6342" LastActivityDate="2010-10-29T00:23:05.067" />
  <row Id="15484" PostTypeId="2" ParentId="15457" CreationDate="2010-10-29T00:34:35.953" Score="0" ViewCount="" Body="&lt;p&gt;I'm assuming you want free code hosting, with unlimited private repositories and unlimited disk space.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only one I know that offers all these features is &lt;a href=&quot;http://bitbucket.org/&quot; rel=&quot;nofollow&quot;&gt;bitbucket&lt;/a&gt; (after they were acquired by atlassian), but they use mercurial instead of git/svn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO, this is not a big deal since you have a lot of features and just one disadvantage (mercurial), that I don't even consider it a disadvantage at all (In fact, I'm just considering a disadvantage because you asked specifically for git/svn).&lt;/p&gt;&#xA;" OwnerUserId="970" LastActivityDate="2010-10-29T00:34:35.953" CommentCount="2" />
  <row Id="15485" PostTypeId="2" ParentId="7861" CreationDate="2010-10-29T00:43:33.117" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Dealbreaker:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they describe themselves as a &quot;young company&quot; and when you look around you don't see anyone over 35 in any kind of technical position.  There's clearly no long term technical career track, and probably nobody experienced enough to learn from.  Plus they're probably underpaying and expecting you to work 60+ hour weeks.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-10-29T00:43:33.117" CommunityOwnedDate="2010-10-29T00:43:33.117" CommentCount="1" />
  <row Id="15486" PostTypeId="2" ParentId="14326" CreationDate="2010-10-29T00:45:28.720" Score="2" ViewCount="" Body="&lt;p&gt;Assuming that by &quot;languages like&quot; you mean open-source languages, the answer in general is that they are funded by the people that contribute their own time to it, and by the organisations that contribute their members' time to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using Python as an example, Google uses Python extensively, and regularly contributes back to the project (not just Guido's work, but many other employees as well).  I believe they're also happy for employees to spend some time contributing in non-coding ways (e.g. taking part in python-dev discussion).  There are many other companies for which this is also true, to a greater or lesser extent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Python also has the &lt;a href=&quot;http://www.python.org/psf/&quot; rel=&quot;nofollow&quot;&gt;Python Software Foundation (PSF)&lt;/a&gt;, which is funded for the most part by sponsors (typically large companies like ActiveState, Google and O'Reilly - the web page has a current list).  Although the PSF isn't responsible for the day-to-day work on Python, it does advance the language in various ways, particularly related to funding - for example funding conferences (where often a lot of development is done), occasionally funding work on a specific project, working with &quot;Summer of Code&quot; students, and so forth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Throughout much of the life of Python, one or more core developers have been employed to specifically work on development of Python itself (either part time or full).  For example, Guido developed Python while at CWI, CNRI, BeOpen.com, and most recently at Google.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other implementations of Python (work on which feeds back into the core Python and CPython) are funded in similar ways.  For example, until very recently Microsoft funded (completely) the development of IronPython, and the European Union funded (partially but significantly) the development of PyPy.&lt;/p&gt;&#xA;" OwnerUserId="6673" LastActivityDate="2010-10-29T00:45:28.720" />
  <row Id="15487" PostTypeId="2" ParentId="13207" CreationDate="2010-10-29T00:54:34.057" Score="2" ViewCount="" Body="&lt;p&gt;Seems like the best way to get correctness is to keep programmers from doing &quot;string hacking&quot; ... it just isn't OK to write your own word wrap, hyphenation, word count, justification, cursor movement, etc. routines. All the modern UI frameworks will do this stuff for you these days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, the abstraction you'd usually work with is more of a &quot;paragraph display object,&quot; such as for GTK:&#xA;&lt;a href=&quot;http://library.gnome.org/devel/pango/stable/pango-Layout-Objects.html&quot; rel=&quot;nofollow&quot;&gt;http://library.gnome.org/devel/pango/stable/pango-Layout-Objects.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;rather than a grapheme string, such as:&#xA;&lt;a href=&quot;http://library.gnome.org/devel/pango/stable/pango-Glyph-Storage.html&quot; rel=&quot;nofollow&quot;&gt;http://library.gnome.org/devel/pango/stable/pango-Glyph-Storage.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To get to a string of glyphs you need info that's only available at the &quot;view&quot; level, so most uses of strings might not have this info. For example, you have to know the font, because fonts can have different ligatures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aside from that kind of practical matter, glyphs probably aren't what you want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In many contexts, you want to use the proper Unicode attributes, shown in this API for example:&#xA;&lt;a href=&quot;http://library.gnome.org/devel/pango/stable/pango-Text-Processing.html#PangoLogAttr&quot; rel=&quot;nofollow&quot;&gt;http://library.gnome.org/devel/pango/stable/pango-Text-Processing.html#PangoLogAttr&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you can see from that struct (which reflects the Unicode algorithms) doing various things at glyph boundaries is not any more correct than doing them at character boundaries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These two specs describe the algorithms to find different kinds of boundaries:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.unicode.org/reports/tr14/&quot; rel=&quot;nofollow&quot;&gt;http://www.unicode.org/reports/tr14/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.unicode.org/reports/tr29/&quot; rel=&quot;nofollow&quot;&gt;http://www.unicode.org/reports/tr29/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Doing text processing involves finding those boundaries with the algorithms and then working with the boundaries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you start digging in on just how hard it is to handle all languages correctly, you'll very quickly realize you need a library that looks at whole paragraphs and handles them properly. Windows, Mac, Linux (Qt and GTK), and Java all come with facilities for this, plus there's &lt;a href=&quot;http://site.icu-project.org/&quot; rel=&quot;nofollow&quot;&gt;http://site.icu-project.org/&lt;/a&gt; for example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When writing web apps, unfortunately you pretty much have to let the browser (probably helped by the OS) do this stuff, as far as I know. All you can do in JavaScript or on the server side is mess it up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe I'd sum up the answer as: most string manipulation on natural language text is broken, so not much point worrying about the string class, other than maybe to have one with no methods on it ;-)&lt;/p&gt;&#xA;" OwnerUserId="6669" LastActivityDate="2010-10-29T00:54:34.057" />
  <row Id="15488" PostTypeId="2" ParentId="812" CreationDate="2010-10-29T00:57:35.133" Score="5" ViewCount="" Body="&lt;p&gt;The notion you are looking for is called &lt;strong&gt;expressiveness&lt;/strong&gt; and Matthias Felleisen has a mathematically rigorous definition:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;&lt;strong&gt;&lt;a href=&quot;http://dx.doi.org/10.1016/0167-6423%2891%2990036-W&quot; rel=&quot;nofollow&quot;&gt;On the Expressive Power of Programming Languages&lt;/a&gt;&lt;/strong&gt;&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;www.ccs.neu.edu/scheme/pubs/scp91-felleisen.ps.gz (Postscript version)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The intuition behind the idea is that if you have two equivalent programs in two different languages-- say, program A in language X and program B in language Y-- and if you make a local change to A that requires a global change to B, then X is more expressive than Y.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One example Felleisen provides is assignment: In the Scheme programming languages you can remove the assignment operator and still have a Turing complete language. However, in such a restricted language, adding in a feature that would be localized if assignment was allowed would require a global change to the program without assignment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My discussion has simplified some details, and you should read the paper itself for the full account.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer your other question: You can say that Java is more expressive than assembly because you can add a new class to your Java program, and then gain the benefits of polymorphism by having other parts of your program call its methods without global modification. Exception handling is another example where Java is more expressive than assembly: You simply need to write a single &lt;code&gt;throw&lt;/code&gt; statement to transfer control up the stack. On a more elementary level, you can also add a new &lt;code&gt;case&lt;/code&gt; statement near the beginning of a &lt;code&gt;switch&lt;/code&gt; and you won't have to worry about recalculating any jump offsets by hand.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-10-29T00:57:35.133" CommentCount="1" />
  <row Id="15489" PostTypeId="2" ParentId="15466" CreationDate="2010-10-29T01:00:03.730" Score="2" ViewCount="" Body="&lt;p&gt;Personally I think it is more of a result of the influence of marketing within Microsoft. By all rights, most of these technologies could easily be just released as version upgrades of the older versions, but there seems to be a big need to put on this image of continually reinventing even something as basic as a data access layer.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-29T01:00:03.730" CommentCount="1" />
  <row Id="15490" PostTypeId="1" CreationDate="2010-10-29T01:14:18.467" Score="2" ViewCount="161" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/8311/are-programmers-good-at-learning-spoken-languages&quot;&gt;Are programmers good at learning &amp;ldquo;spoken&amp;rdquo; languages ?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Usually as a programmer, I am curious, how many of you learn any foreign languages(Finnish, Jap?..etc) besides your programming languages?&#xA;Do you find it more useful in your work and better in job opportunities?&lt;/p&gt;&#xA;" OwnerUserId="6450" LastActivityDate="2010-10-29T03:25:40.790" ClosedDate="2010-10-29T05:36:10.053" Title="Learning programming language + additional language?" Tags="&lt;programming-languages&gt;&lt;spoken-languages&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="15491" PostTypeId="2" ParentId="13757" CreationDate="2010-10-29T02:33:30.810" Score="2" ViewCount="" Body="&lt;p&gt;GUI: gee-you-eye vs. &quot;gooey&quot;. I always assumed it was the former, but I've heard several people (with far more professional credentials than mine, that being &quot;barely amateur&quot;) refer to it the other way.&lt;/p&gt;&#xA;" OwnerUserId="6483" LastActivityDate="2010-10-29T02:33:30.810" CommunityOwnedDate="2011-01-09T02:54:49.947" CommentCount="4" />
  <row Id="15492" PostTypeId="2" ParentId="15490" CreationDate="2010-10-29T02:42:59.483" Score="0" ViewCount="" Body="&lt;p&gt;I can speak passable German. I don't think it's helped in programming at all, or my career. I think that my interest in spoken languages and linguistics encouraged my interest in learning programming languages and programming language theory, though.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-10-29T02:42:59.483" CommentCount="2" />
  <row Id="15493" PostTypeId="2" ParentId="15468" CreationDate="2010-10-29T02:47:01.023" Score="2" ViewCount="" Body="&lt;p&gt;I think the object-oriented parts of Python feel kind of &quot;bolted on&quot;. The whole need to explicitly pass &quot;self&quot; to every method is a symptom that it's OOP component wasn't expressly &lt;em&gt;planned&lt;/em&gt;, you could say; it also shows Python's sometimes warty scoping rules that were criticized in another answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I say Python's object-oriented parts feel &quot;bolted on&quot;, I mean that at times, the OOP side feels rather inconsistent. Take Ruby, for example: In Ruby, &lt;em&gt;everything&lt;/em&gt; is an object, and you call a method using the familiar &lt;code&gt;obj.method&lt;/code&gt; syntax (with the exception of overloaded operators, of course); in Python, everything is an object, too, but some methods you call as a function; i.e., you overload &lt;code&gt;__len__&lt;/code&gt; to return a length, but call it using &lt;code&gt;len(obj)&lt;/code&gt; instead of the more familiar (and consistent) &lt;code&gt;obj.length&lt;/code&gt; common in other languages. I know there are reasons behind this design decision, but I don't like them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus, Python's OOP model lacks any sort of data protection, i.e., there aren't private, protected, and public members; you can mimic them using &lt;code&gt;_&lt;/code&gt; and &lt;code&gt;__&lt;/code&gt; in front of methods, but it's kind of ugly. Similarly, Python doesn't &lt;em&gt;quite&lt;/em&gt; get the message-passing aspect of OOP right, either.&lt;/p&gt;&#xA;" OwnerUserId="679" LastEditorUserId="679" LastEditorDisplayName="" LastEditDate="2010-10-29T14:14:06.863" LastActivityDate="2010-10-29T14:14:06.863" CommentCount="8" />
  <row Id="15494" PostTypeId="2" ParentId="15490" CreationDate="2010-10-29T02:49:55.870" Score="0" ViewCount="" Body="&lt;p&gt;I've been learning Greek, but I don't think it helps my programming any beyond the fact that learning anything helps you train your mind to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also can muddle my way through German and Spanish, but don't for a second think I could speak any of these languages well enough to get a job that required them.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-29T02:49:55.870" />
  <row Id="15495" PostTypeId="2" ParentId="15405" CreationDate="2010-10-29T03:02:08.883" Score="3" ViewCount="" Body="&lt;p&gt;All of the examples you gave seem to to have a common thread. You seem want to fix a bug that you don't fully understand. I say that because you note the possibility of unintended consequences on each one.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say its probably a huge mistake and as &lt;a href=&quot;http://www.links.org/?p=327&quot; rel=&quot;nofollow&quot;&gt;Ben Laurie writes&lt;/a&gt; &lt;strong&gt;don't fix a bug you don't understand&lt;/strong&gt;. In this famous example the Debian team broke the encryption for OpenSSL for Debian and derivatives like Ubuntu when the followed the results of analysis tool.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you believe there is a defect by looking at code make sure you can reproduce the defect in a way that the customer can see. If you can't why not spend your resources fixing something else. &lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-10-29T03:02:08.883" />
  <row Id="15496" PostTypeId="2" ParentId="39" CreationDate="2010-10-29T03:11:21.253" Score="0" ViewCount="" Body="&lt;blockquote&gt; Programmers don't quit, they just go offline. :)&lt;/blockquote&gt;&#xA;" OwnerUserId="6450" LastEditorUserId="6450" LastEditorDisplayName="" LastEditDate="2010-10-29T03:16:43.620" LastActivityDate="2010-10-29T03:16:43.620" CommunityOwnedDate="2010-10-29T03:11:21.253" />
  <row Id="15497" PostTypeId="2" ParentId="15490" CreationDate="2010-10-29T03:25:40.790" Score="0" ViewCount="" Body="&lt;p&gt;I started learning BASIC and English around the same time... :) It is a royal pain to learn a programming language when you do not know what many of the keywords actually mean.  For instance, I knew that &quot;void&quot; meant a function which returns no value before I knew that it really meant &quot;emptiness&quot; or &quot;invalid&quot;.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-29T03:25:40.790" />
  <row Id="15498" PostTypeId="2" ParentId="11007" CreationDate="2010-10-29T03:50:55.187" Score="0" ViewCount="" Body="&lt;p&gt;our field has embraced specialization of labor. your grades need to be good enough to get you the interview...after that, technical mastery is probably all that matters. in the days when most coders were generalists, academic achievement over a broad area of subject matter was important. these days, its about deep knowledge of narrow skills. &lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-10-29T03:50:55.187" />
  <row Id="15499" PostTypeId="2" ParentId="14856" CreationDate="2010-10-29T03:58:23.423" Score="17" ViewCount="" Body="&lt;p&gt;MVC - i often find that shoehorning many web design problems into the MVC approach is more about making a framework (rails etc) happy than about simplicity or structure. MVC is a favorite of &quot;architecture astronauts&quot; who seem to value excessive scaffolding over simplicity. ymmv. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;class-based OO - in my opinion encourages complex structures of mutable state. the only compelling cases i have found for class-based OO over the years are the corny &quot;shape-&gt;rectangle-&gt;square&quot; examples that form chapter 1 of any OO book&lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-10-29T03:58:23.423" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="12" />
  <row Id="15500" PostTypeId="1" AcceptedAnswerId="15508" CreationDate="2010-10-29T04:42:01.600" Score="2" ViewCount="279" Body="&lt;p&gt;Hi what would be the ideal time for a webpage to load. In my application, I get times varying from 5 ms to 63 ms.&lt;/p&gt;&#xA;" OwnerUserId="5701" LastActivityDate="2010-10-29T22:05:48.427" ClosedDate="2010-11-25T09:08:08.857" Title="What is the ideal time for a web page to load?" Tags="&lt;web-development&gt;&lt;web-applications&gt;" AnswerCount="6" CommentCount="5" />
  <row Id="15501" PostTypeId="2" ParentId="15500" CreationDate="2010-10-29T04:43:21.627" Score="5" ViewCount="" Body="&lt;p&gt;1/2 second will seem seamless to the user. Some webs sites can dump to screen in 0.3 seconds, and that, for the user, might as well be 0.0s&lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-10-29T04:43:21.627" CommentCount="3" />
  <row Id="15502" PostTypeId="1" AcceptedAnswerId="15503" CreationDate="2010-10-29T05:35:01.037" Score="7" ViewCount="165" Body="&lt;p&gt;Hello...When do you start writing your Exception Handling Code? When do you start writing Logging Statements. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the purpose of elaborating this question, let us assume that we are on .NET platform with log4net logging but feel free to answer in a generic way. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Solution: A Windows Forms Project. &#xA;Projects: UI, BusinessRules, DataHandlers&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, do you go about writing your DataHandlers which does your Data Manipulations such as Create, Read, Update, Delete first. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then follow it up with your Business Rules&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then your UI or any other permutation of the above.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Test your Application for Functionality. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And &lt;em&gt;then&lt;/em&gt; start writing your Exception Handling Code and &lt;em&gt;finally&lt;/em&gt; your Logging code?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When is a right time to start writing your Exception Handling code?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: In the book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0132350882&quot; rel=&quot;nofollow&quot;&gt;Clean Code&lt;/a&gt;, they say Write your &lt;strong&gt;try-catch-finally&lt;/strong&gt; block first. That, prompted me to ask this question.&lt;/p&gt;&#xA;" OwnerUserId="5070" LastActivityDate="2010-10-29T15:00:45.250" Title="When to start writing Exception Handling, Logging" Tags="&lt;programming-practices&gt;&lt;exceptions&gt;&lt;logging&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="15503" PostTypeId="2" ParentId="15502" CreationDate="2010-10-29T05:55:18.077" Score="8" ViewCount="" Body="&lt;p&gt;You write your exception handling code when you're writing the thing that calls something that might cause exceptions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, when you're writing something that sends data to a network, you should also be writing the code that handles connection timeouts. The exception's directly relevant to what you're doing, and the work is fresh in your mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if you're writing a parser that raises exceptions when it encounters a malformed protocol data unit, then you can't write exception-handling code &lt;em&gt;for the exceptions that parser produces&lt;/em&gt;. (But of &lt;em&gt;course&lt;/em&gt; you're writing tests to show how and when and why the parser raises exceptions!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason behind the suggestion to write your &lt;strong&gt;try-catch-finally&lt;/strong&gt; first is two-fold: &lt;strong&gt;finally&lt;/strong&gt; is for cleaning up the resources the function creates/consumes, and writing the &lt;strong&gt;catch&lt;/strong&gt; is a nice reminder that the functions you're calling may fail, and you need to handle (if necessary) those failures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to add logging after the fact. I'm not sure if that's wise, but it's just what has worked for me. As I start running acceptance tests and the like, and start hitting issues, then I add logging so I can track errors. (And then I leave the logging in.)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-29T05:55:18.077" CommentCount="2" />
  <row Id="15504" PostTypeId="2" ParentId="15500" CreationDate="2010-10-29T06:01:07.897" Score="0" ViewCount="" Body="&lt;p&gt;I don't remember the URL but of course I read it somewhere. Under Web standards,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Web page should load under 3 seconds. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since that fine day, I am targeting to display page in 3 seconds. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Trust me it is very difficult to display &lt;strong&gt;Sharepoint page&lt;/strong&gt; in 3 seconds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, &lt;strong&gt;I believe&lt;/strong&gt;, it depends upon the various factors,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like you can't expect terabyte data to display on the screen within 3 seconds with dial up.&lt;/p&gt;&#xA;" OwnerUserId="1474" LastActivityDate="2010-10-29T06:01:07.897" />
  <row Id="15505" PostTypeId="2" ParentId="39" CreationDate="2010-10-29T07:14:46.193" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;OOP to me means only messaging, local &#xA;  retention and protection and hiding of&#xA;  state-process, and extreme&#xA;  late-binding of all things. It can be&#xA;  done in Smalltalk and in LISP. There&#xA;  are possibly other systems in which&#xA;  this is possible, but I’m not aware of&#xA;  them.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- Alan Kay&lt;/p&gt;&#xA;" LastActivityDate="2010-10-29T07:14:46.193" CommunityOwnedDate="2010-10-29T07:14:46.193" />
  <row Id="15506" PostTypeId="2" ParentId="39" CreationDate="2010-10-29T07:20:14.847" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Only wimps use tape backup: real men&#xA;  just upload their important stuff on&#xA;  ftp, and let the rest of the world&#xA;  mirror it ;)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- Linus Torvalds&lt;/p&gt;&#xA;" LastActivityDate="2010-10-29T07:20:14.847" CommunityOwnedDate="2010-10-29T07:20:14.847" />
  <row Id="15507" PostTypeId="2" ParentId="15468" CreationDate="2010-10-29T07:20:33.147" Score="3" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Using indentation for code blocks instead of {} / begin-end, whatever.&lt;/li&gt;&#xA;&lt;li&gt;Every newer modern language has proper lexical scoping, but not Python (see below).&lt;/li&gt;&#xA;&lt;li&gt;Chaotic docs (compare with Perl5 documentation, which is superb).&lt;/li&gt;&#xA;&lt;li&gt;Strait-jacket (there's only one way to do it).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Example for broken scoping; transcript from interpreter session:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; x=0&#xA;&amp;gt;&amp;gt;&amp;gt; def f():&#xA;...     x+=3&#xA;...     print x&#xA;... &#xA;&amp;gt;&amp;gt;&amp;gt; f()&#xA;Traceback (most recent call last):&#xA;  File &quot;&quot;, line 1, in ?&#xA;  File &quot;&quot;, line 2, in f&#xA;UnboundLocalError: local variable 'x' referenced before assignment&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;global&lt;/code&gt; and &lt;code&gt;nonlocal&lt;/code&gt; keywords have been introduced to patch this design stupidity.&lt;/p&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-10-29T07:20:33.147" CommentCount="5" />
  <row Id="15508" PostTypeId="2" ParentId="15500" CreationDate="2010-10-29T07:44:25.990" Score="2" ViewCount="" Body="&lt;p&gt;Also - perception is important. It might take you 10 seconds to finish loading all your bits and bobs - but if you code nicely, you can get the layout and text down immediately, and then asynchronously load everything else in after. The perception is still that the page loads fast, even though tracking the page using page speed monitors will report it slower (though you can see why in the page breakdown).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apparently, Google uses page speed in some capacitiy in their PageRank process. I'm not sure of that though - I try and stay away from SEO ;)&lt;/p&gt;&#xA;" OwnerUserId="550" LastActivityDate="2010-10-29T07:44:25.990" />
  <row Id="15509" PostTypeId="2" ParentId="39" CreationDate="2010-10-29T08:16:48.570" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;You can't trust code that you did not totally create yourself.  (Especially code from companies that employ people like me.)&#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; Ken Thompson, &lt;a href=&quot;http://cm.bell-labs.com/who/ken/trust.html&quot; rel=&quot;nofollow&quot;&gt;&quot;Reflections on Trusting Trust&quot;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6495" LastActivityDate="2010-10-29T08:27:12.257" CommunityOwnedDate="2010-10-29T08:16:48.570" />
  <row Id="15510" PostTypeId="2" ParentId="15500" CreationDate="2010-10-29T08:32:08.397" Score="2" ViewCount="" Body="&lt;p&gt;0 seconds aka as fast as possible, what else? (we are talking about &quot;ideal&quot;)&lt;/p&gt;&#xA;" OwnerUserId="3530" LastActivityDate="2010-10-29T08:32:08.397" />
  <row Id="15511" PostTypeId="2" ParentId="39" CreationDate="2010-10-29T08:35:58.307" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A language that doesn't have everything is actually easier to program in than some that do.&#xA;  &lt;br&gt;&amp;emsp; &amp;mdash; Dennis M. Ritchie&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-10-29T08:51:51.700" CommunityOwnedDate="2010-10-29T08:35:58.307" CommentCount="1" />
  <row Id="15512" PostTypeId="2" ParentId="14856" CreationDate="2010-10-29T08:49:19.263" Score="1" ViewCount="" Body="&lt;p&gt;I tend to ignore almost all best practices when doing a relatively small, one-off project, like writing a parser required to migrate files. When all I need is the result, once, I don't care about readablitiy, scalability, maintainability, etc.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-10-29T08:49:19.263" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="12" />
  <row Id="15513" PostTypeId="2" ParentId="39" CreationDate="2010-10-29T08:51:49.230" Score="1" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;double value; /* or your money back! */&#xA;short changed; /* so triple your money back! */&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;cons.c on perl source tree&lt;/p&gt;&#xA;" OwnerUserId="5384" LastActivityDate="2010-10-29T08:51:49.230" CommunityOwnedDate="2010-10-29T08:51:49.230" />
  <row Id="15514" PostTypeId="2" ParentId="15405" CreationDate="2010-10-29T09:00:18.287" Score="1" ViewCount="" Body="&lt;p&gt;Fix it, and have it tested. If you decide to keep known bugs just because you are afraid to find more bugs, your program becomes a minefield of ticking time bombs so fast that it's going to become unrepairable sooner than you think.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you are the master and the code is the subordinate, you may not be afraid to change it when you see it's wrong. Fear of the code (&quot;it might retaliate by breaking somewhere else&quot;) is simply unacceptable.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-10-29T09:00:18.287" />
  <row Id="15515" PostTypeId="1" AcceptedAnswerId="15518" CreationDate="2010-10-29T09:01:25.547" Score="7" ViewCount="182" Body="&lt;p&gt;Often when I write a functions I want to make sure the inputs to it are valid in order to detect such errors as early as possible (I believe these are called preconditions). When a precondition fails, I've always thrown an exception. But I'm beginning to doubt whether this is the best practice and if not assertions would be more appropriate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So when should I do which: when is it appropriate to use an assertion and when is it appropriate to throw an exception?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-29T10:06:21.160" Title="Using assertions versus throwing exceptions?" Tags="&lt;exceptions&gt;&lt;assertions&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="4" />
  <row Id="15516" PostTypeId="2" ParentId="15515" CreationDate="2010-10-29T09:04:22.680" Score="7" ViewCount="" Body="&lt;p&gt;Assertions are used to find programming errors. Your programs must work just as well when all assertions are removed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Exceptions, on the other hand, are for situations that can happen even when the program is perfect; they are caused by external influences, like hardware, network, users etc.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-10-29T09:04:22.680" />
  <row Id="15517" PostTypeId="2" ParentId="15500" CreationDate="2010-10-29T09:09:36.697" Score="1" ViewCount="" Body="&lt;p&gt;The ideal time for page load would be slightly quicker than the user expects.  After all there are some things which the user expects 'instantly' (e.g. loading static content) and others they expect to take awhile (e.g. credit card transactions).  Understanding your user base and their needs is key to optimizing their UI experience (including page load time).&lt;/p&gt;&#xA;" OwnerUserId="5319" LastActivityDate="2010-10-29T09:09:36.697" />
  <row Id="15518" PostTypeId="2" ParentId="15515" CreationDate="2010-10-29T09:18:56.537" Score="12" ViewCount="" Body="&lt;p&gt;Assertions should only be used to verify conditions that should be logically &lt;strong&gt;impossible&lt;/strong&gt; to be false (read: sanity checks). These conditions should only be based on inputs generated by your own code. Any checks based on external inputs should use exceptions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A simple rule that I tend to follow is verifying private functions' arguments with asserts, and using exceptions for public/protected functions' arguments.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-10-29T09:18:56.537" CommentCount="2" />
  <row Id="15519" PostTypeId="1" AcceptedAnswerId="15826" CreationDate="2010-10-29T10:01:09.707" Score="2" ViewCount="233" Body="&lt;p&gt;Myself and a fellow PHP dev are starting to research a new web app that we think (hope) will have a global reach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The trouble is that, whilst we both consider ourselves capable, we are concerned with the sheer size of the potential traffic (neither of us has done anything with a reach beyond a few thousand. This site will hopefully serve millions) and wonder what we can do along the way to ensure we have tested things for scale.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The site will be dependant on mass simultaneous log ins, uploads of relatively large files (3-10mb audio, &gt;4mb images) and also streaming of audio.&lt;/p&gt;&#xA;" OwnerUserId="4499" LastActivityDate="2011-02-12T16:35:05.950" Title="Taking scalability to the next level. What methods can help me make sure I do the right thing?" Tags="&lt;scalability&gt;" AnswerCount="11" CommentCount="3" FavoriteCount="0" />
  <row Id="15520" PostTypeId="2" ParentId="11007" CreationDate="2010-10-29T10:02:34.393" Score="1" ViewCount="" Body="&lt;p&gt;I can only tell about local area - for me it's Latvia - the companies prefer peoples with working experience, based on my interview experience I was never asked about my university grades (my grades was just slight above average) same situation for my friends and colleague who is working in IT/Software Development area. &#xA;Of course that could be because of technical graduated student's shortage here - mostly students are going for management and economic education...&lt;/p&gt;&#xA;" OwnerUserId="4164" LastActivityDate="2010-10-29T10:02:34.393" />
  <row Id="15521" PostTypeId="2" ParentId="11007" CreationDate="2010-10-29T10:03:18.460" Score="2" ViewCount="" Body="&lt;p&gt;I hope not, I did a degree in Music&lt;/p&gt;&#xA;" OwnerUserId="4499" LastActivityDate="2010-10-29T10:03:18.460" CommentCount="1" />
  <row Id="15522" PostTypeId="2" ParentId="15515" CreationDate="2010-10-29T10:03:20.190" Score="0" ViewCount="" Body="&lt;p&gt;One problem with asserts for me is that they are disabled by default in Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We use a fail-first strategy where the program - which may have been running unattended for years - needs to crash as early as possible to avoid data corruption in case of bad data (on an unexpected form).  This is what we use the checking for, and by using asserts we basically risk them not being active.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-29T10:03:20.190" />
  <row Id="15523" PostTypeId="2" ParentId="15515" CreationDate="2010-10-29T10:06:21.160" Score="1" ViewCount="" Body="&lt;p&gt;Typical programming practice is to compile out assertions from production/release builds. Assertions will help only during internal testing to catch failure of assumptions. You should not assume the behavior of external agencies, so you should not assert on events from the network or user. Also it is a good practice to write handling code for production builds in case an assertion fails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example in C,&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int printf(const char *fmt, ...)&#xA;{&#xA;  assert(fmt);  // may fail in debug build but not in production build&#xA;  if (!fmt) return -1; // handle gracefully in production build&#xA;  ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Exceptions are meant to be built into production builds. The alternative for exception is returning error and not assertions.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-29T10:06:21.160" />
  <row Id="15524" PostTypeId="2" ParentId="12807" CreationDate="2010-10-29T10:21:03.037" Score="0" ViewCount="" Body="&lt;p&gt;Consider yourself lucky, my half-monkey colleague writes&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (true)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I found it many times in his code. And that's not the worst thing I found. I found GOTOs. And we use C#. Now calm down and hold back your homicidal instincts.&lt;/p&gt;&#xA;" OwnerUserId="3426" LastActivityDate="2010-10-29T10:21:03.037" CommunityOwnedDate="2010-10-29T10:21:03.037" />
  <row Id="15526" PostTypeId="2" ParentId="11007" CreationDate="2010-10-29T10:31:03.367" Score="0" ViewCount="" Body="&lt;p&gt;Grades are not the only factor to consider when hiring someone, but obviously they are pretty important, especialy if you lack experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, I am concerned that you might seriously consider &lt;em&gt;not&lt;/em&gt; aiming for good grades because you think that some employers might not care. If there is a remote chance that an employer might care (and many will), then why not aim for the best grades you can? In fact, forget about employers, and forget about grades, why are you not simply aiming to do the best you can and get the most out of your education? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you aim to get the most out of your time studying then good grades will follow anyway. Sure, there may be compromises e.g. you might take a harder module because you enjoy it more and maybe you may get a lower grade than if you took an easier option, but if you care about what you are doing and put the effort in you'll get good grades.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Put it this way, if you don't get good grades and feel you could have, you'll regret it sooner or later.&lt;/p&gt;&#xA;" OwnerUserId="6695" LastActivityDate="2010-10-29T10:31:03.367" CommentCount="1" />
  <row Id="15527" PostTypeId="1" CreationDate="2010-10-29T10:51:46.370" Score="9" ViewCount="243" Body="&lt;p&gt;How often do you or have you seen meta-programming be used in projects? In uni I've never seen this be applied, but I've seen this on my previous job (when I saw it I was blown away of how effective it was).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But how common is it? Is it used all the time, or just occasionally?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-10-29T20:31:08.947" Title="How common is meta-programming?" Tags="&lt;programming&gt;&lt;meta-programming&gt;" AnswerCount="5" FavoriteCount="2" />
  <row Id="15528" PostTypeId="1" AcceptedAnswerId="15542" CreationDate="2010-10-29T11:11:18.420" Score="10" ViewCount="207" Body="&lt;p&gt;I have a fully configured mantis bug tracker for tracking issues in apps that I create.  When an user is disciplined and goes straight to mantis to write a issue report, he/she will have fastest response and everything regarding the issue will be very easy to track.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, not everyone is keen to do so.  They report their problems via phone, e-mail, don't report them at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would be the best way to nudge them towards the using a bugtracker system?  Clearly, they HAVE to see some immediate benefits so they can return and look for more benefits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am talking about support for the products that I sell as an ISV.&lt;/p&gt;&#xA;" OwnerUserId="1058" LastEditorUserId="1058" LastEditorDisplayName="" LastEditDate="2010-10-29T11:46:00.530" LastActivityDate="2010-10-29T13:27:54.537" Title="Herding your users to your bugtracker" Tags="&lt;bug-tracking&gt;" AnswerCount="7" FavoriteCount="1" />
  <row Id="15534" PostTypeId="2" ParentId="15528" CreationDate="2010-10-29T11:36:56.740" Score="6" ViewCount="" Body="&lt;p&gt;A user who complains is better than one that doesn't, gives up, and calls your competitor. For this reason, I would make it as easy as possible to send a complaint. I would let them continue to call and/or send emails and not ask them to file bugs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look at it from their point of view -- If you had to not just take the time to call/write an email but also be forced to learn someone's wonky bug tracking system-- odds are you're just not going to complain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If need be, hire a customer service person so developers don't get interrupted. They can take the complaints from the customers and make bugs for the dev team.&lt;/p&gt;&#xA;" OwnerUserId="980" LastActivityDate="2010-10-29T11:36:56.740" CommentCount="3" />
  <row Id="15535" PostTypeId="2" ParentId="15528" CreationDate="2010-10-29T11:37:37.013" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Please report this on the bug tracker at &lt;a href=&quot;http://your/url/&quot; rel=&quot;nofollow&quot;&gt;http://your/url/&lt;/a&gt;. I cannot keep track of bugs if you don't report them there.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps it's possible for you to write a plugin for your mail client to turn an email into a bug report, or to use a dedicated mailbox - bugs@foo - for taking bug reports. (But the latter of course requires training your users...)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-29T11:37:37.013" CommentCount="2" />
  <row Id="15536" PostTypeId="1" AcceptedAnswerId="15552" CreationDate="2010-10-29T11:38:11.117" Score="24" ViewCount="1170" Body="&lt;p&gt;Many questions here about learning new things. But what about &lt;code&gt;unlearning&lt;/code&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When we used to develop software 10 or 20 years ago very differently, we counted RAM in bytes, libraries were very rare, IDE was an unknown word and Merise was king.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What should we unlearn today? What bad habits we should get rid of?&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: &lt;strong&gt;unlearn&lt;/strong&gt; doesn't mean &lt;strong&gt;forget&lt;/strong&gt;. Rather to use old techniques that was useful in the past, use the new technologies (such as GC for memory management). But your past knowledge will always be useful today.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="5493" LastEditorDisplayName="" LastEditDate="2010-10-29T20:32:32.877" LastActivityDate="2010-11-27T22:22:01.803" Title="What technologies or techniques senior developers of today should *unlearn*" Tags="&lt;learning&gt;&lt;technologies&gt;&lt;unlearning&gt;" AnswerCount="19" CommentCount="1" FavoriteCount="4" />
  <row Id="15537" PostTypeId="2" ParentId="15527" CreationDate="2010-10-29T11:41:19.133" Score="3" ViewCount="" Body="&lt;p&gt;I think it depends strongly on what language you use. Common Lisp people probably make a fair use of it - the Meta-Object Protocol allows for neat things transparent/orthogonal persistence, for instance - and Smalltalkers use it frequently.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-29T11:41:19.133" />
  <row Id="15538" PostTypeId="2" ParentId="15528" CreationDate="2010-10-29T11:49:17.640" Score="5" ViewCount="" Body="&lt;p&gt;I don't know Mantis specifically, but can it be configured to monitor an e-mail address and automatically generate reports from them? I know other systems (like JIRA for example can).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem then becomes it getting them to use the right e-mail address!&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-29T11:49:17.640" CommentCount="2" />
  <row Id="15539" PostTypeId="2" ParentId="15536" CreationDate="2010-10-29T12:04:20.850" Score="25" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;None&lt;/strong&gt; - Now I know this is going to be a controversial statement, but old technologies and techniques should not be unlearned because you never know when someone might find some old code that you have to dust off and understand and if you don't remember the technologies and techniques that were in place, that code is going to be a mystery. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Likewise, getting rid of bad habits should not be associated with unlearning and old way of doing things. In a lot of cases, I would argue that the old way of doing things might not be relevant, but they were generally done that way because they worked. Remember why it worked and use it to provide suggestions that might be useful to new technologies and techniques - just be sure to try and not force the old way of doing things on new technologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - With an update to to the question, and update to my answer. In terms of unlearning old technologies and techniques, I think that my original &lt;strong&gt;none&lt;/strong&gt; assessment still applies as in a lot of cases, the old solutions work just as good as the ones based upon new technology and techniques. At the end of the day I think that it all comes down to &lt;em&gt;the right tool for the right job.&lt;/em&gt; The age of that tool shouldn't make any difference.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastEditorUserId="2471" LastEditorDisplayName="" LastEditDate="2010-10-29T14:11:29.780" LastActivityDate="2010-10-29T14:11:29.780" CommentCount="10" />
  <row Id="15540" PostTypeId="2" ParentId="15528" CreationDate="2010-10-29T12:08:09.853" Score="0" ViewCount="" Body="&lt;p&gt;Internally we have a site template for web applications that includes a feedback link in the corner. This feedback link is provides the user with a jQuery UI dialog that prompts them for a description of the bug, new feature, or other that they encountered and also captures some details about the page and time they are reporting from. All this is pushed directly into JIRA behind the scenes and the user can get updates with the status of the issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In sort the best way of doing things is usually by making it as simple as possible for the users, if there is a feedback link in a menu that handles sending the information where it needs to go, they are much more likely to use it.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-10-29T12:08:09.853" />
  <row Id="15541" PostTypeId="2" ParentId="15527" CreationDate="2010-10-29T12:09:08.793" Score="2" ViewCount="" Body="&lt;p&gt;If you are using C++ wit liboost there is a high chance you are already using metaprogramming, even if you don know it.&lt;/p&gt;&#xA;" OwnerUserId="4738" LastActivityDate="2010-10-29T12:09:08.793" />
  <row Id="15542" PostTypeId="2" ParentId="15528" CreationDate="2010-10-29T12:09:17.757" Score="11" ViewCount="" Body="&lt;p&gt;Your bug tracker is for &lt;em&gt;your&lt;/em&gt; convenience, not your customers'. If you can't be bothered to take their phone or email issue and enter it yourself, how do you think they feel?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to be able to enter issues and assign them manually to a client. Then when they call in with an issue you can say, &quot;Thanks for reporting that! I'm going to enter it into our issue management system, and you'll start getting email (or whatever) as we deal with it. In the future, if it's easy for you, you can enter that sort of thing right there. Or feel free to just call me, that's fine too.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the best such systems I've worked with as a customer is the one at the hosting provider I resell. Email to support@ gets parsed for a domain name in the subject line, assigned to a client account based on the from address, and auto-entered into their ticket system. Pretty slick.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-10-29T12:09:17.757" CommentCount="5" />
  <row Id="15546" PostTypeId="2" ParentId="15519" CreationDate="2010-10-29T12:46:20.703" Score="0" ViewCount="" Body="&lt;p&gt;Programming Axiom number one: &quot;Premature optimization is the root of (nearly) all evil.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is premature optimization. You haven't even &lt;em&gt;written&lt;/em&gt; the site yet, and you're already worried about how your code is going to scale? I hate to be this guy, but you're probably not going to have millions of users. You're probably not even going to have a single million. Not because I don't believe that you've got the talent, or the idea, it's just that the percentages aren't with you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you do get to millions of users, worry about crossing that river when you get to it. Running a site that big is usually a full time job, which means that you'll have eight hours per day (or more) to work on it when you get to it. &lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-10-29T12:46:20.703" CommentCount="3" />
  <row Id="15548" PostTypeId="2" ParentId="39" CreationDate="2010-10-29T13:00:20.273" Score="1" ViewCount="" Body="&lt;p&gt;I wish I could make Lust and Gluttony helpful but Sloth, Pride and Envy are certainly great for programmers.&quot; ~ &lt;a href=&quot;http://www.ee.ryerson.ca/~kclowes/&quot; rel=&quot;nofollow&quot;&gt;Kenneth Clowes&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1345" LastActivityDate="2010-10-29T13:00:20.273" CommunityOwnedDate="2010-10-29T13:00:20.273" />
  <row Id="15549" PostTypeId="2" ParentId="15519" CreationDate="2010-10-29T13:01:56.363" Score="5" ViewCount="" Body="&lt;p&gt;Read this article on &lt;a href=&quot;http://teddziuba.com/2008/04/im-going-to-scale-my-foot-up-y.html&quot; rel=&quot;nofollow&quot;&gt;scalability by Ted Dzibua&lt;/a&gt; or just skip to the tl;dr: &quot;&lt;em&gt;Shut up about scalability, no one is using your app anyway.&lt;/em&gt;&quot;&lt;/p&gt;&#xA;" OwnerUserId="3209" LastEditorUserId="3209" LastEditorDisplayName="" LastEditDate="2010-10-29T13:34:14.827" LastActivityDate="2010-10-29T13:34:14.827" CommentCount="2" />
  <row Id="15550" PostTypeId="2" ParentId="15449" CreationDate="2010-10-29T13:06:16.907" Score="2" ViewCount="" Body="&lt;p&gt;There is so much going on in web technology nowadays &lt;em&gt;you can not possibly be up to speed with everything&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is literally not possible for a single individual to know everything at the cutting edge of web development: HTML5, CSS3, the latest jQuery, pubsubhubbub, Node.js, Google APIs, Yahoo YUI stuff,whichever MVC framework you like, whichever javascript framework you like... are all in a constant state of rapid flux. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Repeat after me: You can not know it all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, breath a sigh of relief, and learn the stuff you need to for the new project. You have done it before and you will do it again. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The secret is not in the &lt;em&gt;knowing&lt;/em&gt; but the &lt;em&gt;learning&lt;/em&gt;. To do that, read the web, listen to relevant podcasts, and start building prototypes. There is no better way to learn than starting the doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aside: I personally don't generally bother with books. Web technology moves so fast now that by the time anything gets to print it will probably be, to some extent, out of date.&lt;/p&gt;&#xA;" OwnerUserId="4757" LastActivityDate="2010-10-29T13:06:16.907" CommentCount="1" />
  <row Id="15551" PostTypeId="2" ParentId="10998" CreationDate="2010-10-29T13:06:40.837" Score="4" ViewCount="" Body="&lt;p&gt;In addition to &lt;a href=&quot;http://programmers.stackexchange.com/questions/10998/what-does-the-jwz-regex-quote-mean/10999#10999&quot;&gt;ChrisF's answer&lt;/a&gt; - that regular expressions &quot;are difficult to code, understand and maintain&quot;, there's worse: they're just powerful enough to trick people into trying to use them to parse things they can't, like HTML. See the numerous questions on SO on &quot;how do I parse HTML?&quot; For instance, the &lt;a href=&quot;http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454&quot;&gt;single most epic answer&lt;/a&gt; in all of SO!&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-10-29T16:26:33.317" LastActivityDate="2010-10-29T16:26:33.317" />
  <row Id="15552" PostTypeId="2" ParentId="15536" CreationDate="2010-10-29T13:12:29.313" Score="5" ViewCount="" Body="&lt;h1&gt;Everything&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Following the vain of the previous answer, I believe all habits are bad and boxing. Falling into any sort of habit can be construed as a lack of creativity which will stifle your perception of new technology or options. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Learn patterns&lt;/strong&gt;, don't make them a habit. Identify ones that work well and then apply them to new requirements. Don't put yourself in the mindset that every application &lt;em&gt;must&lt;/em&gt; use MySQL, PHP with Zend, Apache 1.3, and Cent 5.4. What about CakePHP? CodeIgniter? How about using a different storage engine? &lt;em&gt;Different language even&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The beautiful thing is most of the technology or paradigms in use are interchangeable. I can use ROR with MongoDB and Ubuntu for a basic CMS. I can set this up on an EC2 instance or an Ubuntu dedicated machine. I can serve content with a CDN and write backing scripts in Python. Add Redis for in memory session management with a ant script to deploy.  These modular components allow you to have a diverse skill set that is necessary to be ahead of the curve. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-29T13:12:29.313" CommentCount="11" />
  <row Id="15553" PostTypeId="2" ParentId="11007" CreationDate="2010-10-29T13:12:57.160" Score="1" ViewCount="" Body="&lt;p&gt;It depends a lot on the type of company where you are applying. A large organization is more likely to have a screening process that uses objective metrics and is done before the hiring manager sees the resumes. Smaller organizations may value different things. Grades demonstrate that you are good at the university game. That doesn't necessarily correlate with the professional game.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It matters most for your first job if you have no experience. But what matters more is if you can demonstrate that you've accomplished something relevant. This could be an internship that gave you real development tasks, meaningful contributions to open source projects, released software (shareware, mobile apps, etc.).&lt;/p&gt;&#xA;" OwnerUserId="6702" LastActivityDate="2010-10-29T13:12:57.160" CommentCount="1" />
  <row Id="15554" PostTypeId="2" ParentId="15536" CreationDate="2010-10-29T13:15:49.530" Score="0" ViewCount="" Body="&lt;p&gt;The expected rate at which technology changes.&lt;/p&gt;&#xA;" OwnerUserId="5400" LastActivityDate="2010-10-29T13:15:49.530" CommentCount="2" />
  <row Id="15555" PostTypeId="2" ParentId="15528" CreationDate="2010-10-29T13:18:55.767" Score="1" ViewCount="" Body="&lt;p&gt;Well, if you want to use a global exception handler, then you've got lots of options.  For Delphi we use MadExcept, but also have used Eureka Log, both of which will (with the user's go ahead) email, or upload via HTTP, a bug report to you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could have a button in your app that just throws an exception and launches this bug tracking stuff.  MadExcept is pretty cool because it takes a screenshot of the app and uploads it along with the bug, that way even if the user can't properly explain what they were doing, you can have a pretty good hankering.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something else to think about is coding to make it obvious where bugs are coming from.  If you've got beta users, maybe include debug info with their app so you can get extra data from them when crashes happen. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;None of this helps for implementation bugs (i.e. the button is in the wrong spot) though so hopefully you don't have any of those.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-10-29T13:18:55.767" CommentCount="2" />
  <row Id="15556" PostTypeId="1" CreationDate="2010-10-29T13:23:45.357" Score="2" ViewCount="117" Body="&lt;p&gt;I'm kind of horrified that people actually suggest using UTF-8 inside a &lt;code&gt;std::string&lt;/code&gt; and are OK with UTF-16 &lt;code&gt;std::wstring&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you actually do this? Do you think that it is OK?&lt;/p&gt;&#xA;" OwnerUserId="4387" LastActivityDate="2011-01-28T05:59:54.310" Title="Do you think that storing a variable length encoding in std::string or std::wstring is OK and do you do it?" Tags="&lt;c++&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="1" />
  <row Id="15557" PostTypeId="1" AcceptedAnswerId="15565" CreationDate="2010-10-29T13:24:58.410" Score="0" ViewCount="148" Body="&lt;p&gt;hello i am just shifted from .NET and JAVA to flex and i am just become a fan of it as it is really a great approach to a framework logic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i find the flex model superior then others that every thing a asynchronous here just events and time line concept no multi-threading just calls &lt;/p&gt;&#xA;&#xA;&lt;p&gt;what will be the future flex or java .net ?????????????????&lt;/p&gt;&#xA;" OwnerUserId="6703" LastActivityDate="2010-10-29T14:26:03.680" ClosedDate="2010-10-29T18:00:55.057" Title="flex frame work vs .NET , JAVA ,PHP etc. ?" Tags="&lt;java&gt;&lt;.net&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="15558" PostTypeId="2" ParentId="15528" CreationDate="2010-10-29T13:27:54.537" Score="1" ViewCount="" Body="&lt;p&gt;We got the biggest increase in uptake by configuring a service to pick up email from an address and automatically log it as an issue. The nice side effect of this system is that you can also easily add conversations to an issue by including a special syntax in the subject (eg. TeamITNo:12345). Also, if you send all your email communication via this system, and they hit reply then you'll get the reply right back into the bug tracker, with the issue updated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This had the biggest positive effect, as it uses technology users are comfortable with, and also means you get all your issues in one place.&lt;/p&gt;&#xA;" OwnerUserId="550" LastActivityDate="2010-10-29T13:27:54.537" />
  <row Id="15559" PostTypeId="2" ParentId="15536" CreationDate="2010-10-29T13:28:22.977" Score="10" ViewCount="" Body="&lt;p&gt;Unlearn the concept that &lt;strong&gt;well-written code is also well-commented&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't have a problem with any technology or technique in use today enough to say that we should all unlearn it.  But this habit of writing comments to document and explain our code is so deeply (and unjustifiably) embedded in our profession.  My annual performance review questionnaire has a question: &quot;Writes well-commented code&quot; - &quot;strongly agree&quot;, &quot;agree&quot;, &quot;neutral&quot;, etc.  I have convinced my manager that the correct answer to this question is &quot;N/A&quot;, but how many others have come to the same agreement?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just opened a random file in one of the two IDEs that were open on my screen at the time of reading this question and it took me a less than a minute to find this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;        /// &amp;lt;summary&amp;gt;&#xA;    /// This method creates a foo depending on the bar name.&#xA;    /// &amp;lt;/summary&amp;gt;&#xA;    public static Foo GetFoo( string barName ) {&#xA;                ...&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Let's unlearn this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Some reply is in order after 9 votes, 6 comments, and 18 votes seconding those comments.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am protesting against the comment-favouring bias that we programmers have.  I'm very concerned where, in the words of &lt;strong&gt;Robert Harvey&lt;/strong&gt;, &quot;erring on the side of more comments&quot; may lead us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's start with &lt;strong&gt;Greg&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Why did Greg's employer hire non-programmers to do a programming job?&lt;/li&gt;&#xA;&lt;li&gt;If the job was to write a program in Perl, why give it to people &quot;with only passing familiarity with Pascal?&quot;&lt;/li&gt;&#xA;&lt;li&gt;If the intent was to hire people with a skill gap and train them (by taking Perl classes, lunch-and-learns, pairing with experienced Perl developers, frequent code reviews, etc.) so that they didn't have to write unconventional Perl code and write comment explaining the intent to senior Perl developers -- none of this training apparently took place.&lt;/li&gt;&#xA;&lt;li&gt;And I am not making Greg's company solely responsible for the training; if these people signed up for the job, they made a commitment to learning a new skill, programming in Perl.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;There are at least three or four root causes of the situation, probably more, but Greg didn't say he'd kill to solve any of them.  Before saying that, before probing root causes, we, programmers, are much more inclined to say, &quot;if only this code had more/better comments...&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To &lt;strong&gt;Adam&lt;/strong&gt; and @&lt;strong&gt;bigtang&lt;/strong&gt;: I love good comments, too.  The problem is, the vast majority of comments aren't good.  There is lots of waste for every non-trivial piece of code with a good comment explaining the non-triviality.  Adam, what if your business analyst needs to state those &quot;unstated assumptions&quot; and discuss them with a customer?  Have your QA people talked to you about them?  If you write a code comment about it and check it in and you are the only one of the four people (developer, QA, BA, customer) who has access to the source code, the chance is almost 100% the conversations will never happen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We tend to see comments as assets, harmless in the worst case, and never as liabilities.  &lt;a href=&quot;http://programmers.stackexchange.com/questions/5916/does-anyone-actually-use-the-comment-blocks&quot;&gt;Let's take a look at this thread&lt;/a&gt;.  The original poster: &quot;&lt;strong&gt;They're bulky and I'm always forgetting to update them&lt;/strong&gt;.  Do you [still] recommend using them?&quot;  And this opinion - &quot;Use them as much as possible&quot;, it's so cool that they show up in IntelliSense - is a runaway favourite.&lt;/p&gt;&#xA;" OwnerUserId="464" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-10-29T18:36:39.667" LastActivityDate="2010-10-29T18:36:39.667" CommentCount="9" />
  <row Id="15560" PostTypeId="1" AcceptedAnswerId="17397" CreationDate="2010-10-29T13:36:17.053" Score="0" ViewCount="209" Body="&lt;p&gt;Hello, I'm searching a java library for performing &quot;Principal component analysis&quot;; till now I found on the web some routines but they are too old and may not work with latest JRE...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance,&#xA;Marco&lt;/p&gt;&#xA;" OwnerUserId="6027" LastActivityDate="2010-11-07T01:34:50.397" Title="Principal Component Analysis in Java" Tags="&lt;java&gt;&lt;math&gt;" AnswerCount="2" />
  <row Id="15561" PostTypeId="2" ParentId="15536" CreationDate="2010-10-29T14:01:42.517" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C++ as a better C&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It used to be that C++ was mostly a better C, but the language has evolved much past that.  Fortunately, the people I'm working with also have, but not everybody has.  The correct way to write programs in C++ is much different from in C.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-29T14:01:42.517" CommentCount="4" />
  <row Id="15563" PostTypeId="2" ParentId="15536" CreationDate="2010-10-29T14:13:06.477" Score="4" ViewCount="" Body="&lt;p&gt;A few years ago I remember someone claiming that developers could now forget all about optimizations like common subexpression elimination in loops, because &quot;compilers are so much better now&quot;.  It seemed reasonable at the time, but in todays world of interpreters and DSLs, a lot of those techniques are life- (or at least job-)savers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not really ready to give up on any of my &quot;archaic&quot; knowledge.  It lets me take advantage of those old wheels that get re-invented every five years or so.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-10-29T14:13:06.477" CommentCount="3" />
  <row Id="15564" PostTypeId="1" AcceptedAnswerId="15575" CreationDate="2010-10-29T14:22:07.660" Score="2" ViewCount="87" Body="&lt;p&gt;Hi there,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was wondering, when I am coding something that requires user-input, I usually make a couple of checks. Up untill now I have been making the checks like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;string name = tbName.text.ToString();&#xA;&#xA;if (name != &quot;&quot;)&#xA;{&#xA;    if (name.count &amp;gt;= 0 &amp;amp;&amp;amp; name.count &amp;lt;= 12)&#xA;    {&#xA;        Some regex function to prevent the use of special characters.&#xA;        if (regex(name) == true)&#xA;        {&#xA;            //Do something&#xA;        }&#xA;        else&#xA;        {&#xA;            MessageBox.Show(&quot;Please fill in an appropriate name.&quot;);&#xA;        }&#xA;    }&#xA;    else&#xA;    {&#xA;        MessageBox.Show(&quot;Your name does not fit the qualifications for a name.&quot;); // You get the idea..&#xA;    }&#xA;}&#xA;else&#xA;{&#xA;    MessageBox.Show(&quot;Please fill in your name.&quot;);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Even though it's not necessarily wrong, is there a better or faster way to do this, or something to make it look more clear?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: So my main problem is the else functions after each if function, it seems so large for something so simple.&lt;/p&gt;&#xA;" OwnerUserId="6709" LastEditorUserId="6709" LastEditorDisplayName="" LastEditDate="2010-10-29T14:39:27.163" LastActivityDate="2010-10-29T14:53:01.697" ClosedDate="2010-10-29T19:32:19.933" Title="Nesting checks in code" Tags="&lt;c#&gt;&lt;functions&gt;" AnswerCount="2" CommentCount="5" FavoriteCount="1" />
  <row Id="15565" PostTypeId="2" ParentId="15557" CreationDate="2010-10-29T14:26:03.680" Score="1" ViewCount="" Body="&lt;p&gt;they target different stuff. php is web-based, java and .net are more enterprise powerful, flex has some web power and a little enterprise power.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;they all have a future and it's separate from each other. sure, their markets intersect at some point, but each has a different power. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;.net is more for windows servers, while java can be found on linux servers, too. both also are used in the mobile market. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;flash and flex are not that enterprise powerful&lt;/p&gt;&#xA;&#xA;&lt;p&gt;also, take my remarks light, as i don't know clearly where the territory of each has it's border&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-29T14:26:03.680" />
  <row Id="15566" PostTypeId="1" AcceptedAnswerId="15577" CreationDate="2010-10-29T14:26:23.980" Score="4" ViewCount="139" Body="&lt;p&gt;Our group is currently has a solaris server with eclipse installed on it. However, we need to run this from out desks using an xterm window. There is a delay with every action due to the weight of eclipse. Are there any other decent unix IDE's out there that are more forgiving on Xterm? The IDE is mostly used with our php projects (Though we do perl,ksh,python as well).&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-10-29T16:38:01.133" Title="What is a good lightweight IDE that performs well in an Xterm window?" Tags="&lt;ide&gt;" AnswerCount="5" />
  <row Id="15567" PostTypeId="1" CreationDate="2010-10-29T14:26:31.403" Score="8" ViewCount="504" Body="&lt;p&gt;My company is getting PC refreshes with a choice of to have a desktop or laptop.  Each one seems to have its pros and cons. Would you want the flexibility and freedom of the laptop but take the risk of working extra hours at home? Or a desktop limited to one place, but not having to worry about taking work home and disrupting home time?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not asking what would be better for coding, but more for convenience and productivity.  I currently have a desktop and work about 8 to 9 hours a day, with only coming in on the weekends for when we get behind on major deadlines. I love developing but I also have quite a busy life after work. I feel that having a work laptop will only haze the line of work and home.&lt;/p&gt;&#xA;" OwnerUserId="3581" LastActivityDate="2010-11-02T02:01:28.057" Title="Company PC refresh, laptop or desktop?" Tags="&lt;productivity&gt;" AnswerCount="14" CommentCount="2" />
  <row Id="15568" PostTypeId="2" ParentId="15536" CreationDate="2010-10-29T14:26:34.240" Score="7" ViewCount="" Body="&lt;p&gt;I would like many engineers to break themselves of the habit of using XML for anything and everything. Perhaps it is just the clients for whom I have worked recently, but I consistently see poor old XML bent, twisted and perverted towards uses that do not suit it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifically, I detest the notion that making a system configurable means loading and interpreting vast quantities of data from XML files at start-up. Rather than achieving the intended affect of adding flexibility and adaptability to a system, it tends to shift too much complexity there and make configuring the system an exercise in spell-casting and black magic.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-10-29T14:26:34.240" CommentCount="8" />
  <row Id="15569" PostTypeId="2" ParentId="15536" CreationDate="2010-10-29T14:30:43.093" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Unlearn your Bias&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't tell you how many times personal bias gets in the way of the correct solution.  Sometimes, inadvertently, I am biased and make sub-optimal recommendations.  Sometimes others are biased towards the existing paradigm no progress can be made.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All that said, you need to also know when to stand your ground on your approach (of course in a cool, collected way).&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-10-29T14:30:43.093" CommentCount="1" />
  <row Id="15570" PostTypeId="1" AcceptedAnswerId="15580" CreationDate="2010-10-29T14:33:36.110" Score="11" ViewCount="187" Body="&lt;p&gt;I know it is expensive but (IMO) I believe it is a very good practice. I'm talking about rules like say, you can't save an Invoice if you are not a sales person... so in that case throwing an exception saying 'your are not authorized' or such...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another approach it would be having objects with a status or something like that &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any other approach? how do you feel about it?&lt;/p&gt;&#xA;" OwnerUserId="1061" LastEditorUserId="8073" LastEditorDisplayName="" LastEditDate="2011-01-01T15:46:02.660" LastActivityDate="2011-01-01T15:46:02.660" Title="Representing business rules with exceptions" Tags="&lt;idioms&gt;&lt;business-logic&gt;&lt;business-rules&gt;&lt;rules-and-constraints&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="15571" PostTypeId="2" ParentId="15567" CreationDate="2010-10-29T14:35:05.000" Score="12" ViewCount="" Body="&lt;p&gt;Definitely a desktop PC, with (and this is very important) a &lt;strong&gt;very large monitor&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want productivity, large screen is your best option. I don't think that's something a laptop can match..&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-10-29T14:35:05.000" CommentCount="5" />
  <row Id="15572" PostTypeId="2" ParentId="15567" CreationDate="2010-10-29T14:35:06.557" Score="2" ViewCount="" Body="&lt;p&gt;I have always preferred a desktop, but not for any of the reasons you mention.  I preferred a desktop because it used to be nearly impossible (or very cost-prohibitive) to match the performance of a desktop with a laptop.  However, with solid state drives and the ability to get RAM amounts up to 8GB+ in laptops the lines have blurred.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At each place I have worked in the last few years, I have had the ability to remote in to my desktop.  This negates what you describe as being &quot;more tied to work&quot; simply because of having a laptop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, another positive of a laptop would be having the option to easily code elsewhere without the need to remote into the desktop - like from a conference room, the couch, etc.&lt;/p&gt;&#xA;" OwnerUserId="6423" LastActivityDate="2010-10-29T14:35:06.557" />
  <row Id="15573" PostTypeId="2" ParentId="15536" CreationDate="2010-10-29T14:36:09.320" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Design by Database&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're producing a business application of significant complexity, and the first thing that you do is produce a big chunky database schema -- instead of focusing on business logic, domain design, or service level interactions -- then please take that finished schema, wad it up, and eat it.  Because that is about as much worth as you will be able to extract from that document, once you realize that an application logic should not be dictated by database structure.  In fact, the database structure, should only be dictated by application logic, and only when you have a clear idea of the domain (the problems your application needs to solve, and how to solve them).  I would go so far to say, that I would rather see a working mock of the user interface before I see a database schema, or at least a UML diagram of the major components and classes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disclaimer:  Of course this is a generalization that does not apply for ALL applications.&lt;/p&gt;&#xA;" OwnerUserId="4662" LastEditorUserId="4662" LastEditorDisplayName="" LastEditDate="2010-10-29T18:04:30.580" LastActivityDate="2010-10-29T18:04:30.580" CommentCount="16" />
  <row Id="15574" PostTypeId="2" ParentId="15567" CreationDate="2010-10-29T14:36:46.807" Score="14" ViewCount="" Body="&lt;p&gt;Despite my habit of using my desktop as a leg rest, both at home and at work, I'd have to go with laptop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get one that comes with a base station you can plug it into to connect 1+ monitors to it, and you've got a lot of screen space, possibly more than you could get with a desktop, since it has a monitor built-in already. You can also connect a keyboard &amp;amp; mouse to it, so it's indistinguishable from a desktop when being used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you're not planning to take it home, just having the portability in case you need to bring it to a meeting, go on site and have it with you, or anything else, can be a blessing.&lt;/p&gt;&#xA;" OwnerUserId="2416" LastActivityDate="2010-10-29T14:36:46.807" CommentCount="3" />
  <row Id="15575" PostTypeId="2" ParentId="15564" CreationDate="2010-10-29T14:42:50.917" Score="1" ViewCount="" Body="&lt;p&gt;I believe there is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For starters, you don't need &lt;code&gt;name != &quot;&quot;&lt;/code&gt; if you're checking for length anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that's a function/method, I'd do it like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;string name = tbName.text.ToString(); // is ToString() really necessary?&#xA;&#xA;if (name.count == 0)&#xA;{&#xA;    MessageBox.Show(&quot;Please fill in your name.&quot;);&#xA;    return false;&#xA;}&#xA;&#xA;if (name.count &amp;gt; 12)&#xA;{&#xA;    MessageBox.Show(&quot;Your name does not fit the qualifications for a name.&quot;);&#xA;    return false;&#xA;}&#xA;&#xA;if (regex(name) != true)&#xA;{&#xA;    MessageBox.Show(&quot;Please fill in an appropriate name.&quot;);&#xA;    return false;&#xA;}&#xA;&#xA;//Do something&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;My short article about this topic:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://lecterror.com/articles/view/code-formatting-and-readability&quot; rel=&quot;nofollow&quot;&gt;http://lecterror.com/articles/view/code-formatting-and-readability&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2815" LastEditorUserId="2815" LastEditorDisplayName="" LastEditDate="2010-10-29T14:51:13.560" LastActivityDate="2010-10-29T14:51:13.560" CommentCount="2" />
  <row Id="15576" PostTypeId="2" ParentId="15567" CreationDate="2010-10-29T14:44:47.153" Score="6" ViewCount="" Body="&lt;p&gt;I like to use a &lt;strong&gt;laptop that is docked to a large monitor with a real keyboard and mouse&lt;/strong&gt;. My first year in graduate school I used a laptop without a monitor and ended up seriously hurting my neck, shoulders, and back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The bottom line is that a &lt;strong&gt;laptop alone cannot be used for any extended period&lt;/strong&gt; without causing major problems with your posture. Either your neck is bent, or your arms are in an awkward position. When I was young (high school and college), I could get away with only using a laptop. But things quickly caught up with me when I got older.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you go with a laptop with a docking solution, then that's probably the best of both worlds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, be aware of your company's policies. You may have to install some draconian, no-name software company's encryption or anti-virus software that might render your machine useless for anything but Office.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-10-29T14:44:47.153" />
  <row Id="15577" PostTypeId="2" ParentId="15566" CreationDate="2010-10-29T14:46:48.667" Score="1" ViewCount="" Body="&lt;p&gt;So you run Eclipse on a central server using a X11 server on your local computer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This can run well, if there is sufficient power and bandwith.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Could you elaborate on how you get the xterm connection to your server?  Please list all steps.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-29T14:46:48.667" CommentCount="5" />
  <row Id="15578" PostTypeId="2" ParentId="15566" CreationDate="2010-10-29T14:47:14.937" Score="2" ViewCount="" Body="&lt;p&gt;You can just use emacs or vim.  If you are willing to climb the steep learning curve, then you will be able to do pretty much everything that you can do with eclipse.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-29T14:47:14.937" />
  <row Id="15579" PostTypeId="2" ParentId="15564" CreationDate="2010-10-29T14:53:01.697" Score="2" ViewCount="" Body="&lt;p&gt;This is best handled at business logic level with a validation framework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tools like FluentValidation can make your life easy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll try to translate your example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;RuleFor(user =&amp;gt; user.Name)&#xA;.Cascade(CascadeMode.StopOnFirstFailure)&#xA;.NotNull().WithMessage(&quot;Please enter your name&quot;)&#xA;.NotEmpty().WithMessage(&quot;Please enter your name&quot;)&#xA;.Length(1,12).WithMessage(&quot;Name must be between 1 and 12 characters in length&quot;)&#xA;.Matches(@&quot;yourRegexHere&quot;).WithMessage(&quot;The name format is invalid&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Then you just instantiate the validator and call the validate or validateandthrow method. As of today, I can't find anything better than this library to handle validation.&lt;/p&gt;&#xA;" OwnerUserId="3426" LastActivityDate="2010-10-29T14:53:01.697" />
  <row Id="15580" PostTypeId="2" ParentId="15570" CreationDate="2010-10-29T14:53:09.063" Score="8" ViewCount="" Body="&lt;p&gt;If you mean representing individual business rule checks with exceptions, then I don't think it's a very good idea. Many times you have to report more than one failed condition, and not stop on the first one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I do believe that checking for &lt;strong&gt;all&lt;/strong&gt; rules and &lt;strong&gt;then&lt;/strong&gt; throwing an exception with the summary is a good practice.&lt;/p&gt;&#xA;" OwnerUserId="6594" LastActivityDate="2010-10-29T14:53:09.063" CommentCount="4" />
  <row Id="15581" PostTypeId="2" ParentId="13384" CreationDate="2010-10-29T14:54:49.917" Score="2" ViewCount="" Body="&lt;p&gt;I'm a &lt;strong&gt;Scrum&lt;/strong&gt; Practitionner so I'll will suggest you to use it.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Define the duration of your iteration. I like two weeks iteration in startups, and one month in large enterprise projects&lt;/li&gt;&#xA;&lt;li&gt;At the beginning of an iteration, select from the features you will develop from the product backlog. Nobody has the right to change the iteration plan, not even the product manager.&lt;/li&gt;&#xA;&lt;li&gt;Changes occur in the product backlog, not in the iteration plan. Therefore, you are never affected in your work.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;More details about &lt;a href=&quot;http://www.scrum.org/scrumguideenglish/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Scrum&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-29T15:26:00.863" LastActivityDate="2010-10-29T15:26:00.863" />
  <row Id="15582" PostTypeId="2" ParentId="15527" CreationDate="2010-10-29T14:55:57.553" Score="1" ViewCount="" Body="&lt;p&gt;For the past two years the first bit of programming on a new task has almost always been writing code to write code.  There's a ton of boilerplate associated with interactions with a database that can be simplified down to automatic script generation.  Think of things where you need to query 3 tables to form an object or some such.  Why write it yourself if there's 10 of these things that might change in the future?&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-29T14:55:57.553" />
  <row Id="15583" PostTypeId="2" ParentId="15567" CreationDate="2010-10-29T14:56:17.890" Score="6" ViewCount="" Body="&lt;p&gt;A &lt;strong&gt;desktop PC with dual monitors&lt;/strong&gt; is the best work configuration IMHO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need to work from a distance, the possibility of connecting remotely (via a VPN) can be very useful and obviate the need for a laptop.&lt;/p&gt;&#xA;" OwnerUserId="6594" LastActivityDate="2010-10-29T14:56:17.890" CommentCount="1" />
  <row Id="15584" PostTypeId="2" ParentId="13396" CreationDate="2010-10-29T14:58:46.750" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.atlassian.com/software/jira/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;JIRA&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;$10 bucks for a standard license for 10 users (with proceeds going to charity).   Worth every penny -- I use it to track features, bugs, releases, etc -- for multiple projects.  It's extremely easy to use and setup.  And Atlassian has a lot of other tools that integrate well with it (and the standard license for those are just as cheap!) -- GreenHopper, Bamboo, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Based on your criteria:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;I think I am starting to look in more of a Agile/Scrum direction for solving this problem.&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;See &lt;a href=&quot;http://www.atlassian.com/software/greenhopper/&quot; rel=&quot;nofollow&quot;&gt;GreenHopper&lt;/a&gt; integration&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Users to just drag/drop an email to submit a request for maintenance or enhancement.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://confluence.atlassian.com/display/JIRA/Creating+Issues+and+Comments+from+Email&quot; rel=&quot;nofollow&quot;&gt;Creating Issues from Emails&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Developers to just see their queue and the weighted priority of each task/project.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/9vBQz.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;A team of developers to see what everyone is working on in real-time.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See above.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Management to keep a a log of time spent on each task.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://confluence.atlassian.com/display/JIRA/Logging+Work+on+an+Issue&quot; rel=&quot;nofollow&quot;&gt;Logging work on an issue&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4662" LastEditorUserId="4662" LastEditorDisplayName="" LastEditDate="2010-10-29T15:07:14.570" LastActivityDate="2010-10-29T15:07:14.570" CommentCount="2" />
  <row Id="15585" PostTypeId="1" AcceptedAnswerId="15658" CreationDate="2010-10-29T14:59:41.930" Score="11" ViewCount="565" Body="&lt;p&gt;A &lt;a href=&quot;http://en.wikipedia.org/wiki/Quine_%28computing%29&quot; rel=&quot;nofollow&quot;&gt;Quine&lt;/a&gt; is a program that, when run, prints out its own source code. Or, in more general terms, prints out, or evaluates to, some &lt;em&gt;representation&lt;/em&gt; of the program itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any Turing-complete language has its own Quine (and even some languages that aren't Turing complete). One popular contest is to construct the shortest Quine for any given language. But I'm interested in solutions of all kinds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What kind of Quines have you seen or written that you think are really cool or interesting?&lt;/strong&gt; Also, please feel free to reply with variations of the Quine problem itself, that display similar properties, but perhaps generalize the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: There can be many interesting variations here. E.g., Quines that output more than just the source, but other information too. Or different representations, such as a Java program outputting its bytecode. Or things that belong in the family of Quines, such as a C program that prints a Fortran program that prints the C program. The only thing I'd want to exclude would be, say, a program that reads in the source file and prints it out-- that's too easy and against the spirit.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-10-29T18:11:31.667" LastActivityDate="2010-12-07T02:49:34.777" Title="What's your favorite Quine/Self-reproducing program?" Tags="&lt;programming-languages&gt;&lt;computer-science&gt;" AnswerCount="11" CommentCount="6" FavoriteCount="6" />
  <row Id="15586" PostTypeId="2" ParentId="15570" CreationDate="2010-10-29T14:59:51.200" Score="1" ViewCount="" Body="&lt;p&gt;That depends entirely on what's being done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, what is the actual behavior you want?  If somebody is entering their own information, then a rejection and a dialog box saying, essentially, &quot;You can't do that&quot; is probably correct.  If this is a data entry person, working from a pile of forms, a dialog box is probably also good, and the data entry person can put the invalid forms in a special pile.  If you're doing batch processing, you don't want to bring things to a halt, but flag it and move to the next.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have the behavior, you need to decide how you're going to implement it.  Having a business rules checker that throws an exception is probably a good idea.  Returning an return code and having it passed along is something else that can go wrong, and you certainly don't want the erroneous entries getting further.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't worry about performance expense.  In the case of an individual entering data, it's trivial compared to the other times involved.  Typically, the human will take the most time in that system.  In the case of a batch job, if exceptions are a performance problem, you're entering far too many bad records, and in reality handling and re-entering all of those is going to be more of a problem than the exceptions.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-10-29T14:59:51.200" />
  <row Id="15587" PostTypeId="2" ParentId="39" CreationDate="2010-10-29T15:00:17.563" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;If you fail to plan, you plan to fail&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-My c# Teacher (not sure where he heard it from!)&lt;/p&gt;&#xA;" OwnerUserId="1834" LastActivityDate="2010-10-29T15:00:17.563" CommunityOwnedDate="2010-10-29T15:00:17.563" CommentCount="2" />
  <row Id="15588" PostTypeId="2" ParentId="15502" CreationDate="2010-10-29T15:00:45.250" Score="0" ViewCount="" Body="&lt;p&gt;Depends on what you are doing&lt;/p&gt;&#xA;&#xA;&lt;p&gt;for exceptions:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are writing something that is likely to have errors or something where there are good top level points to let exceptions bubble up to write them as you go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are writing something that needs performance and has a low possibility of errors an lacks a meaningful place to put error handlers write the error handlers where testing proves you need them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In either case, if you don't have anything useful to do with the error consider letting it bubble up (no handler)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;for logging:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need an audit trail you should write the logging first.  If you are letting errors bubble all the way to the top you need to provide some logging there as well so the log can be captured.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aside from those cases I generally only add logging in the places where testing/use proves it is necessary and I usually make an option to configure it off once I am done with it.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-10-29T15:00:45.250" CommentCount="2" />
  <row Id="15589" PostTypeId="2" ParentId="39" CreationDate="2010-10-29T15:01:09.780" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Profanity is the one language all&#xA;  programmers know best.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- Anonymous&lt;/p&gt;&#xA;" OwnerUserId="6391" LastEditorUserId="6391" LastEditorDisplayName="" LastEditDate="2010-10-29T17:22:07.340" LastActivityDate="2010-10-29T17:22:07.340" CommunityOwnedDate="2010-10-29T15:01:09.780" />
  <row Id="15590" PostTypeId="2" ParentId="15566" CreationDate="2010-10-29T15:01:17.447" Score="2" ViewCount="" Body="&lt;h1&gt;VIM&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Never had any issues with it in xterm.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-29T15:01:17.447" CommentCount="1" />
  <row Id="15591" PostTypeId="2" ParentId="15570" CreationDate="2010-10-29T15:02:07.767" Score="3" ViewCount="" Body="&lt;p&gt;I don't see what value throwing an Exception has in creating good business logic. There are dozens of approaches to handling business logic that do not involve using a system that is meant for addressing unexpected conditions in the operation of a system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is &lt;em&gt;expected&lt;/em&gt; that in business logic, conditions will not be met; that's the reason for having it in the first place, and you don't want to piggyback on the same mechanism that handles unexpected I/O failures, out of memory errors and null references. Those are failures of the system, but detecting unmet business conditions is the successful operation of the system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, it is a system that is ripe for unintended consequences. Because an exception has to be caught at some point, you run the risk of having a new business rule exception ened up being caught somewhere that it's not intended or you chance having the code that looks for business rules catching exceptions that aren't actually meant for it. Yes, these conditions can be accounted for with good coding practices, but in any non-trivial system on which more than one developer is working, mistakes will happen, and you just have to hope that they won't be costly mistakes.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-10-29T15:02:07.767" CommentCount="1" />
  <row Id="15592" PostTypeId="2" ParentId="15566" CreationDate="2010-10-29T15:02:47.507" Score="1" ViewCount="" Body="&lt;p&gt;I've used a similar setup using JEdit over an Xterm window, but I wouldn't recommend it for general IDE usage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I would guess that whatever you're trying to do can be done better in a more traditional fashion. I struggle to imagine a usage case where everyone needs to use a remote version of Eclipse that doesn't start with &quot;Well, the person making decisions is an idiot...&quot;.&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-10-29T15:02:47.507" CommentCount="1" />
  <row Id="15593" PostTypeId="2" ParentId="15570" CreationDate="2010-10-29T15:03:52.167" Score="6" ViewCount="" Body="&lt;p&gt;In the example you've given us I think that raising an exception is a bad idea.  If you know that the user is not authorized before they start working and you still allow them to do some function and then smack them with an message AFTER they've already completed the task, that's just a bad design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using exceptions to enforce business rules is not a good design.  &lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-10-29T15:03:52.167" CommentCount="5" />
  <row Id="15594" PostTypeId="2" ParentId="15585" CreationDate="2010-10-29T15:10:51.540" Score="5" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://en.wikipedia.org/wiki/Brainfuck&quot; rel=&quot;nofollow&quot;&gt;Brainfuck&lt;/a&gt; quines always seemed the most interesting to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;gt;&amp;gt;+++++++&amp;gt;&amp;gt;++&amp;gt;&amp;gt;++++&amp;gt;&amp;gt;+++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++++&amp;gt;&amp;gt;++&amp;gt;&amp;gt;++++&amp;gt;&amp;gt;+++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+++++&amp;gt;&amp;gt;++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++&amp;gt;&amp;gt;+++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++&amp;gt;&amp;gt;+++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+++++&amp;gt;&amp;gt;++++++++++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++&amp;gt;&amp;gt;+++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+++++&amp;gt;&amp;gt;++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++&amp;gt;&amp;gt;+++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+++++&amp;gt;&amp;gt;+++++++++++++++++++++++++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++&amp;gt;&amp;gt;+++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+++++&amp;gt;&amp;gt;++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++++&amp;gt;&amp;gt;++&amp;gt;&amp;gt;++++&amp;gt;&amp;gt;+++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+++++&amp;gt;&amp;gt;+++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+++++&amp;gt;&amp;gt;+++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++&amp;gt;&amp;gt;+++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+++++&amp;gt;&amp;gt;+++++++++++++++++++&amp;gt;&amp;gt;++&amp;gt;&amp;gt;++&amp;gt;&amp;gt;+++&amp;gt;&amp;gt;++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++&amp;gt;&amp;gt;++++&amp;gt;&amp;gt;+++++++&amp;gt;&amp;gt;++&amp;gt;&amp;gt;+++++&amp;gt;&amp;gt;++++++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++&amp;gt;&amp;gt;++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++++&amp;gt;&amp;gt;++++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+&amp;gt;&amp;gt;+++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++++&amp;gt;&amp;gt;++&amp;gt;&amp;gt;+++++&amp;gt;&amp;gt;+++++++&amp;gt;&amp;gt;++&amp;gt;&amp;gt;++++&amp;gt;&amp;gt;+&amp;gt;&amp;gt;++++++[&amp;lt;&amp;lt;]&amp;gt;&amp;gt;[&amp;gt;++++++[-&amp;lt;&amp;lt;++++++++++&amp;gt;&amp;gt;]&amp;lt;&amp;lt;++..-------------------&amp;gt;[-&amp;lt;.&amp;gt;&amp;gt;+&amp;lt;]&amp;gt;[-&amp;lt;+&amp;gt;]&amp;gt;]&amp;lt;&amp;lt;[-[-[-[-[-[-[&amp;gt;++&amp;gt;]&amp;lt;+++++++++++++++++++++++++++++&amp;gt;]&amp;lt;++&amp;gt;]&amp;lt;++++++++++++++&amp;gt;]&amp;lt;+&amp;gt;]&amp;lt;++&amp;gt;]&amp;lt;&amp;lt;[-&amp;gt;.&amp;lt;]&amp;lt;&amp;lt;]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You can see a few &lt;a href=&quot;http://www.nyx.net/~gthompso/self_brainf.txt&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6594" LastActivityDate="2010-10-29T15:10:51.540" />
  <row Id="15595" PostTypeId="2" ParentId="15585" CreationDate="2010-10-29T15:13:40.223" Score="8" ViewCount="" Body="&lt;p&gt;My favourite Quine is in a language called Quine (that I have just invented).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has a single instruction, &quot;Quine&quot;. The purpose of this instruction is to print one word, &quot;Quine&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;~~~&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wait! I have a new favourite:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is the only Quine to work in all languages and on all platforms - even ones that don't yet exist - and ones that never will.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Strangely, it doesn't actually need to run on anything to work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, its output was produced before it was even thought of, and will continue to be produced even if the entire Universe ceases to exist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, it is the the Null Quine. It consists of an empty statement that prints nothing when executed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;~~~&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Twice twice.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastEditorUserId="1928" LastEditorDisplayName="" LastEditDate="2010-11-26T04:19:06.587" LastActivityDate="2010-11-26T04:19:06.587" CommentCount="11" />
  <row Id="15596" PostTypeId="2" ParentId="15567" CreationDate="2010-10-29T15:14:12.623" Score="0" ViewCount="" Body="&lt;p&gt;I recently underwent a refresh and opted to use a laptop, but only because I could have a docking station with an external mouse/keyboard and 2 monitors.  The main benefit is that home working is simplified as I could only access my desktop from home by RDP, and we all know how dis-orientating developing over RDP can be...especially over a dog-slow connection!&lt;/p&gt;&#xA;" OwnerUserId="6711" LastActivityDate="2010-10-29T15:14:12.623" />
  <row Id="15598" PostTypeId="2" ParentId="15567" CreationDate="2010-10-29T15:18:27.647" Score="0" ViewCount="" Body="&lt;p&gt;If there's a docking station that you can attach monitor(s) to, then either would work. Working at a laptop for any sufficiently long period of time will wrench the heck out of your neck.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-29T15:18:27.647" />
  <row Id="15599" PostTypeId="2" ParentId="15567" CreationDate="2010-10-29T15:27:42.533" Score="4" ViewCount="" Body="&lt;p&gt;If you have a busy home/social life, don't get a laptop.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-10-29T15:27:42.533" />
  <row Id="15600" PostTypeId="2" ParentId="15536" CreationDate="2010-10-29T15:29:27.867" Score="18" ViewCount="" Body="&lt;p&gt;How to overengineer everything for future-proofness.  I get the impression that heavy OO engineering for every conceivable change was the paradigm of the late '90s.  Nowadays we realize that you can't plan for every conceviable change and every bit of futureproofing against changes you anticipate makes changes you don't anticipate that much harder.  It only makes sense to future-proof your code against a few specific changes that are especially likely to actually happen.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastEditorUserId="1468" LastEditorDisplayName="" LastEditDate="2010-10-29T15:42:19.197" LastActivityDate="2010-10-29T15:42:19.197" CommentCount="4" />
  <row Id="15601" PostTypeId="2" ParentId="15138" CreationDate="2010-10-29T15:32:16.723" Score="0" ViewCount="" Body="&lt;p&gt;I think/hope so... I'm starting a project with EF 4 and the new Model-First approach...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For what I've seen EF 4 is much robust and feature complete that the first version... I would say go for it, I know I'm going :)&lt;/p&gt;&#xA;" OwnerUserId="1061" LastActivityDate="2010-10-29T15:32:16.723" />
  <row Id="15602" PostTypeId="2" ParentId="15536" CreationDate="2010-10-29T15:36:50.443" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Programming isn't always about how quick you can get an application out of the door&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I often hear people claim the old chestnut of how much quicker apps were developed and released to customers 10-15 years ago, but unfortunately these people don't appreciate the kind of obligations we as programmers are now under, an app that was banged out of the door quickly was most likely fraught with bugs, security holes, lack of scalability and extremely difficult to maintain by anyone other than the person who wrote it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would be great if we could just switch off to the potential 10's or 100's of people who might try and hack our product or not bother to protect all of the personal information in it, or not give 2 hoots whether our colleagues would be able to maintain and extend it, but unfortunately the world doesn't operate this way anymore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like the see the seniors appreciate how much more effort and thought is required these days in order to construct applications and websites.&lt;/p&gt;&#xA;" OwnerUserId="6711" LastActivityDate="2010-10-29T15:36:50.443" CommentCount="3" />
  <row Id="15603" PostTypeId="2" ParentId="15536" CreationDate="2010-10-29T15:41:01.330" Score="16" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Declaring all variables at the top of files&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This may have been good practice in the days of primitive compilers, but is not required in modern programming environments. Nevertheless, a lot of programmers who have been around for a while seem to do this without thinking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My preference is to see variables declared as close as possible to their first use.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-10-29T15:41:01.330" CommentCount="8" />
  <row Id="15604" PostTypeId="2" ParentId="2490" CreationDate="2010-10-29T15:47:53.223" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://developer.yahoo.com/yui/theater/&quot; rel=&quot;nofollow&quot;&gt;YUI Theater&lt;/a&gt; has some interesting lengthy presentations.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.youtube.com/user/nettutsplus#g/u&quot; rel=&quot;nofollow&quot;&gt;Nettuts+&lt;/a&gt; have short screencasts about everything.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="193" LastActivityDate="2010-10-29T15:47:53.223" />
  <row Id="15605" PostTypeId="1" AcceptedAnswerId="15607" CreationDate="2010-10-29T15:50:18.093" Score="18" ViewCount="311" Body="&lt;p&gt;When pre-screening candidates for a position prior to the first face-to-face interview, how useful are technical tests in filtering out poor candidates and possibly predicting their ability to succeed in the position? While some of the personality based ones might not say much, is there benefit to sending a technical test (e.g. on Java or C#) prior to a face-to-face interview or even a phone screen? Also, do these tests ever falsely identify a strong candidate as one that is likely a poor fit for the position?&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-11-23T23:02:38.027" Title="How useful are employment tests when interviewing candidates and predicting success?" Tags="&lt;interviewing&gt;&lt;technical-exam&gt;" AnswerCount="8" CommentCount="1" />
  <row Id="15606" PostTypeId="2" ParentId="15605" CreationDate="2010-10-29T15:54:41.810" Score="3" ViewCount="" Body="&lt;p&gt;Well, if nothing else (and a consensus on this has still to be reached) it will show which candidates at least know &lt;em&gt;where to look&lt;/em&gt; to find answers.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-10-29T16:27:07.060" LastActivityDate="2010-10-29T16:27:07.060" />
  <row Id="15607" PostTypeId="2" ParentId="15605" CreationDate="2010-10-29T16:01:50.930" Score="6" ViewCount="" Body="&lt;p&gt;I don't think that there is much value to technical tests that aren't delivered face-to-face during the in-person interview. You can send me a technical test on virtually any subject, and me and my pal Goog are going to deliver reasonable answers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, you can tell a lot about a potential candidate when they sit across a table from you, sweating and squirming over FizzBuzz.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-10-29T16:01:50.930" CommentCount="3" />
  <row Id="15608" PostTypeId="2" ParentId="15605" CreationDate="2010-10-29T16:05:14.903" Score="3" ViewCount="" Body="&lt;p&gt;Even a simple exercise can show you something about a candidate.  I've had timed tests, interesting problems with unlimited time, and even simpler &quot;Fizz Buzz&quot; type tests.  As long as they can demonstrate that they can write code prior to coming, you'll find that there's a lot less people going your way.  For me, I would (and have) question(ed) every job offer that comes my way without writing a single line of code.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-29T16:05:14.903" />
  <row Id="15609" PostTypeId="2" ParentId="15585" CreationDate="2010-10-29T16:13:17.617" Score="1" ViewCount="" Body="&lt;p&gt;Lots of that stuff can be found here: &lt;a href=&quot;http://forums.thedailywtf.com/forums/t/5232.aspx&quot; rel=&quot;nofollow&quot;&gt;http://forums.thedailywtf.com/forums/t/5232.aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-10-29T16:13:17.617" />
  <row Id="15610" PostTypeId="1" AcceptedAnswerId="15620" CreationDate="2010-10-29T16:14:32.677" Score="6" ViewCount="155" Body="&lt;p&gt;In the Java world, we often talk about the JVM, and when Java was new it had the supposedly killer feature of &quot;Write Once, Run Anywhere.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the way people talk and write, this seems different from the way that Python, for example, works.  Yet I've not been aware of any way that Python code that I've written would work differently on another machine.  (Though I haven't written that much Python.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what am I missing?  How is the JVM different from a Python interpreter?  Is there a way that Python lacks Java's platform independence?  Or is this just a cultural difference?&lt;/p&gt;&#xA;" OwnerUserId="2329" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-10-29T18:35:42.787" LastActivityDate="2010-10-29T20:52:48.163" Title="How is the JVM and Java's WORA different from other high level languages?" Tags="&lt;java&gt;&lt;python&gt;&lt;cross-platform&gt;&lt;jvm&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="15611" PostTypeId="2" ParentId="15605" CreationDate="2010-10-29T16:25:16.237" Score="2" ViewCount="" Body="&lt;p&gt;Technical tests for the sake of learning whether a person knows a particular bit of information are of low usefullness.  You need to ask enough to see whether the person has actually worked with the technology you &lt;em&gt;require&lt;/em&gt; experience in, but small details are not valuable test questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead, you want to know how the person thinks.  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Can the interviewee find an answer to a question he doesn't know?  &lt;/li&gt;&#xA;&lt;li&gt;How do they find these answers?&lt;/li&gt;&#xA;&lt;li&gt;Once they learn the answer, do they retail it fairly well?&lt;/li&gt;&#xA;&lt;li&gt;When a solution is very difficult to find, do they communicate this to the appropriate people and ask for enough time, help, or another way to &quot;resolve&quot; the problem?&lt;/li&gt;&#xA;&lt;li&gt;Does the interviewee routinely learn new programming concepts or details in an effort to stay current?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;After discovering answers to these questions, you're far mor likely to choose the correct person.  Judging primarily by a score on a technical test, you can end up with someone who knew the answers, but does very poorly in unfamiliar territory.  A person who does well in unfamiliar territory will do well with pretty much whatever you hand them.&lt;/p&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-10-29T16:25:16.237" />
  <row Id="15612" PostTypeId="2" ParentId="15605" CreationDate="2010-10-29T16:27:50.877" Score="3" ViewCount="" Body="&lt;p&gt;As said by the previous commenters: written technical questions a mostly useless, especially if delivered way before the interview. What you want to know is how the candidate thinks, and how fast he can narrow down on an issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pick something really simple at the beginning of your pre-interview phone screen: atoi, reversing an array in place, reversing a linked list, something really basic. Asking those questions over the phone let you test two things: first the ability of the person to code and how they think, second the communication skills this person has and how well can he share this knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience a &lt;em&gt;lot&lt;/em&gt; of candidates struggle with these questions, even with copious help and you don't even need to bring them over for a sit down.&lt;/p&gt;&#xA;" OwnerUserId="1597" LastActivityDate="2010-10-29T16:27:50.877" />
  <row Id="15613" PostTypeId="2" ParentId="15449" CreationDate="2010-10-29T16:34:03.020" Score="0" ViewCount="" Body="&lt;p&gt;I recently got into Chrome extension development and not only making them is very interesting by itself, I feel that it improved my knowledge of the latest bells and whistles of web development (client side) quite a bit. It's basically 99% regular javascript+html+css and 1% chrome specific javascript api (you can also make C++ plugins if you want).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why it is great:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You don't need to worry about hosting, and often design&lt;/li&gt;&#xA;&lt;li&gt;All latest HTML5 toys and technologies are at your disposal&lt;/li&gt;&#xA;&lt;li&gt;No need to worry about cross-browser compatibility (it's like heaven)&lt;/li&gt;&#xA;&lt;li&gt;There are no cross domain limitations for javascript, you can read any remote webpage or a file and then process it in javascript, so basically javascript can do almost anything your server side script can in this sence (you can read and parse binary files if you want)&lt;/li&gt;&#xA;&lt;li&gt;You can use jquery or any framework you like&lt;/li&gt;&#xA;&lt;li&gt;Making something that other people find useful is satisfying. You also get instant feedback - rating, comments.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you go to &lt;a href=&quot;http://code.google.com/chrome/extensions/dev/api_other.html&quot; rel=&quot;nofollow&quot;&gt;this page&lt;/a&gt;, they have a nice list of all current hot technologies that Chrome supports, so you can just go through the list and play with them.&lt;/p&gt;&#xA;" OwnerUserId="193" LastActivityDate="2010-10-29T16:34:03.020" />
  <row Id="15614" PostTypeId="2" ParentId="15610" CreationDate="2010-10-29T16:35:43.097" Score="2" ViewCount="" Body="&lt;p&gt;Topically and just from a language runtime, there is little difference.  The JVM in particular is designed not just as an interpreter but also a runtime compiler, code inference, an instrumental virtualization layer that can have dynamic hooks applied, various GC semantics and the ability to describe virtualization ergonomics, to name a few.  Python can run in a JVM?  Can Java run in a Python interpreter?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most interpreters are runtime language/token interpreters, JVMs (and others) as you know interpret/compile/run intermediate code.  IBM for instance has been doing this for decades outside of Java, it is nothing new.  Even VB ran in intermediate code for some time I believe?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The WORA is mostly passé now as many interpreted languages run just about anywhere unchanged.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-10-29T16:35:43.097" />
  <row Id="15615" PostTypeId="2" ParentId="15605" CreationDate="2010-10-29T16:36:05.690" Score="5" ViewCount="" Body="&lt;p&gt;One of the best interview screen questions that I've heard is to invent a fictitious technology buzzword maybe something like &quot;pineapple endpoints&quot;.  Then casually ask in the phone interview how much they know about it.  If they say anything other than &quot;nothing&quot;, you should be very concerned.&lt;/p&gt;&#xA;" OwnerUserId="6526" LastActivityDate="2010-10-29T16:36:05.690" CommentCount="3" />
  <row Id="15616" PostTypeId="2" ParentId="15567" CreationDate="2010-10-29T16:36:30.370" Score="1" ViewCount="" Body="&lt;p&gt;If you work as a programmer (or do you have any other computing-intensive task) the only option is a powerful desktop (or let call it a &lt;strong&gt;workstation&lt;/strong&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A laptop, even if powerful, is usually limited in the number of HDD it can mount, it will be slower, less ergonomic, will overheat... They are improving and reducing the gap to a good desktop, but for any serious work they aren't enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have mobility needs, the laptop should be an addition to the desktop, and not an alternative.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-10-29T16:36:30.370" />
  <row Id="15617" PostTypeId="2" ParentId="15610" CreationDate="2010-10-29T16:36:56.623" Score="2" ViewCount="" Body="&lt;p&gt;When Java was new, WORA was something to boast about - specifically, that you could &lt;em&gt;compile&lt;/em&gt; on one platform and run that (compiled bytecode) on other platforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, interpreted languages run pretty much similarly regardless on what platform the interpreter runs on (as long as the interpreter is available for that platform). However, file systems, permission issues, encodings, line endings and countless other small but irritating issues can cause headaches. Some platform-dependent things aren't easy to abstract away.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-29T16:36:56.623" />
  <row Id="15618" PostTypeId="2" ParentId="15566" CreationDate="2010-10-29T16:38:01.133" Score="2" ViewCount="" Body="&lt;p&gt;First suggestion would be not to use a graphical IDE. At all. Emacs or Vim, pick your favorite.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second suggestion would be to switch from X as the network transport to VNC. VNC is far less network intensive and your windows don't close when you are disconnected. Assign one VNC port to each user, and you're done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Third solution is to export via NFS or SAMBA your project directories and mount them on your workstations. You can then install eclipse on our desktop and use it from there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best solution is to get rid of the central server alltogether and let everyone work disconnected. Going from a fresh out of the box Mac to having all my code checked out and running takes me less than an hour, and most of this time is used to download and install XCode... From then on I have a laptop with all my code I can work on from everywhere in the world.&lt;/p&gt;&#xA;" OwnerUserId="1597" LastActivityDate="2010-10-29T16:38:01.133" CommentCount="1" />
  <row Id="15619" PostTypeId="2" ParentId="15536" CreationDate="2010-10-29T16:39:48.993" Score="3" ViewCount="" Body="&lt;p&gt;Cobol&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had suffered from people using Cobol mentality in other paradigms. I had to write it once in my life somewhere and this question helped a lot. I am talking about writing Cobol in other environments. In the country of origin there was a word for it: &quot;Cololeiros&quot; which initially I thought was a form of dance...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a nice story in &quot;Code Complete&quot; about the same in Fortran.&lt;/p&gt;&#xA;" OwnerUserId="6059" LastActivityDate="2010-10-29T16:39:48.993" />
  <row Id="15620" PostTypeId="2" ParentId="15610" CreationDate="2010-10-29T16:40:44.000" Score="8" ViewCount="" Body="&lt;p&gt;Java does a very good job on isolating you from the underlying OS and gives you the same exact tools on most platforms it works on to talk to things in the underlying OS.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Python on the other hand does not do as good of a job in isolating you from the underlying OS, It does not have a standard way of handling between process communications (look at the differences in the sys module and os module between a windows and *nix implementation of Python for example.)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have written code in python that would only work on a *NIX box or Windows box using just Python available API calls, where in Java it would be very difficult to write code that was just Java API that would not work the same on both a Windows box or *NIX box&lt;/p&gt;&#xA;" OwnerUserId="4435" LastEditorUserId="4435" LastEditorDisplayName="" LastEditDate="2010-10-29T18:59:06.080" LastActivityDate="2010-10-29T18:59:06.080" />
  <row Id="15621" PostTypeId="2" ParentId="15556" CreationDate="2010-10-29T16:42:43.233" Score="1" ViewCount="" Body="&lt;p&gt;Well, let's say that many programmers still don't know that UTF-16 is a multibyte encoding (they still think that 16-bit wide char is enough to represent all the Unicode characters, but actually they are stuck with the old &lt;a href=&quot;http://en.wikipedia.org/wiki/UTF-16/UCS-2&quot; rel=&quot;nofollow&quot;&gt;UCS-2&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there's no real drawback in using a &lt;code&gt;wstring&lt;/code&gt; for storing UCS-16 text, but you should know that its &lt;code&gt;length&lt;/code&gt; doesn't necessarily represent the number of text symbols that will be printed.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-10-29T16:42:43.233" CommentCount="1" />
  <row Id="15622" PostTypeId="2" ParentId="15527" CreationDate="2010-10-29T16:49:30.733" Score="4" ViewCount="" Body="&lt;p&gt;If you consider reflection a kind of meta-programming, it is relatively common. For some people even generic programming (templates and generics) is a form of meta-programming, so that's even more common.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion, however, meta-programming is something more complex, that involves actual code generation, and therefore quite uncommon, even in scripting languages.&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-10-29T20:31:08.947" LastActivityDate="2010-10-29T20:31:08.947" />
  <row Id="15623" PostTypeId="1" CreationDate="2010-10-29T16:53:50.107" Score="28" ViewCount="1435" Body="&lt;p&gt;When it comes to &quot;interview test&quot; questions, the subject of FizzBuzz often comes up. There is also a &lt;a href=&quot;http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html&quot; rel=&quot;nofollow&quot;&gt;Coding Horror&lt;/a&gt; post about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, if you bother reading sites such as this, you are probably less likely to be in the demographic of programmers who would find FizzBuzz anything but trivial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But is it really true that 99% of programmers will struggle with it? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Really? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the evidence to back this up?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any interesting stories in the wild about it?&lt;/p&gt;&#xA;" OwnerUserId="4757" LastActivityDate="2010-11-13T09:02:41.483" Title="FizzBuzz - really?" Tags="&lt;interview-questions&gt;" AnswerCount="15" CommentCount="7" FavoriteCount="5" />
  <row Id="15624" PostTypeId="1" CreationDate="2010-10-29T16:54:47.830" Score="3" ViewCount="48" Body="&lt;p&gt;I'm looking at the machine.config in our production environment and I'm seeing some non-default settings. Since my client will not want me to post their information on the internet, I'll ask a few general questions:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) What are the important sections of the machine.config to review and understand?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) What customisations are common?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) What should someone not change with the config?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm interested in responses regarding .NET 2.0 and newer... &lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-10-29T16:54:47.830" ClosedDate="2010-11-02T22:16:40.950" Title="What are the important sections of Machine.config? What customisations are common, recommended, or not recommended?" Tags="&lt;asp.net&gt;&lt;deployment&gt;&lt;iis7&gt;" CommentCount="1" />
  <row Id="15625" PostTypeId="2" ParentId="15605" CreationDate="2010-10-29T16:56:36.540" Score="6" ViewCount="" Body="&lt;p&gt;I sent a test to candidates for a position we're hiring. The task was to debug a simple web signup form. I put in half a dozen errors and inefficiencies, but nothing that would prevent the page from loading. It just didn't always work the way it was supposed to. Then I filled out a couple of user tickets for the form, describing the problems they way they might appear to an end user.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only one candidate was able to fix both errors reported in the tickets and make note of other potential problems with the form. If nothing else, this simple test helped screen out candidates who might struggle with the actual job.&lt;/p&gt;&#xA;" OwnerUserId="3869" LastEditorUserId="3869" LastEditorDisplayName="" LastEditDate="2010-11-23T23:00:02.067" LastActivityDate="2010-11-23T23:00:02.067" CommentCount="1" />
  <row Id="15626" PostTypeId="2" ParentId="15536" CreationDate="2010-10-29T17:00:19.093" Score="3" ViewCount="" Body="&lt;p&gt;I have a couple...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Unlearn Database first design&lt;/strong&gt;.  As mentioned above.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Unlearn BDUF&lt;/strong&gt; - big design up front.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Unlearn functional &amp;amp; design specs&lt;/strong&gt;.  Functional specs should go away.  They're always outdated by the time something is relaesed and what is produced is almost ALWAYS wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Unlearn well-written code is well-commented&lt;/strong&gt;.  This is wrong, as many are finding out.  Comments don't mean anything if they're not well written, and often they're not useful anyway.  Especially with a changing code base.  If anything write tests, do TDD, and forget the in code comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Unlearn XML for everything&lt;/strong&gt;.  It just adds too much overhead to most things.  XML is great for certain things, but as JSON and other technologies have proven, it isn't for everything.&lt;/p&gt;&#xA;" OwnerUserId="6719" LastActivityDate="2010-10-29T17:00:19.093" CommentCount="3" />
  <row Id="15627" PostTypeId="2" ParentId="2715" CreationDate="2010-10-29T17:09:19.437" Score="0" ViewCount="" Body="&lt;p&gt;My personal preference is for the first method, probably because that's the way I first learned PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For single-line &lt;code&gt;if&lt;/code&gt; statements, I'll use&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;if (you.hasAnswer()) you.postAnswer();&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's not &lt;code&gt;you.postAnswer();&lt;/code&gt; but something a lot longer, such as &lt;code&gt;you.postAnswer(this.AnswerId, this.AnswerText, this.AnswerType);&lt;/code&gt; I'll probably revert to the first type:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (you.hasAnswer) {&#xA;    you.postAnswer(this.AnswerId, this.AnswerText, this.AnswerType);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I will never use a line-break, and I'll never use this method if there's also an &lt;code&gt;else&lt;/code&gt; statement.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (you.hasAnswer()) you.postAnswer();&#xA;else you.doSomething()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;is a theoretical possibility, but not one I'd ever use. This would have to be turned into&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (you.hasAnswer()) {&#xA;    you.postAnswer();&#xA;} else {&#xA;    you.doSomething();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2406" LastActivityDate="2010-10-29T17:09:19.437" CommunityOwnedDate="2010-11-02T20:52:36.780" />
  <row Id="15628" PostTypeId="1" AcceptedAnswerId="15633" CreationDate="2010-10-29T17:12:17.030" Score="4" ViewCount="199" Body="&lt;p&gt;How can I maintain proficiency (if not expertise) in multiple languages?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any large organization it seems necessary to know more than one language.  For example, this week I've looked at if not written code in the following languages.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;VBA&lt;/li&gt;&#xA;&lt;li&gt;C&lt;/li&gt;&#xA;&lt;li&gt;C#&lt;/li&gt;&#xA;&lt;li&gt;Java&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;sub&gt;Thankfully they're all imperative languages, or I would have lost my mind.&lt;/sub&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I struggled for a day or so with the C as it's been a while (read: years) since I've used it seriously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What tips, habits, and training is there for keeping up your knowledge in so many languages?&lt;/p&gt;&#xA;" OwnerUserId="4422" LastActivityDate="2010-10-29T18:02:25.803" Title="How can I maintain proficiency in multiple languages?" Tags="&lt;programming-languages&gt;&lt;learning&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="15629" PostTypeId="2" ParentId="15623" CreationDate="2010-10-29T17:14:52.913" Score="14" ViewCount="" Body="&lt;p&gt;I think that 99% of programmers who apply for a job (and don't get it) may struggle over it.  But not 99% of programmers that are productively holding a job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's the nature of our modern job-seeking process.  Many people who apply are not qualified.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That Coding Horror post also speaks to the way we teach Computer Science nowadays.  In the past (particularly at MIT), you were required to learn things like Lisp, which pretty much requires you to grasp concepts like recursion.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nowadays people are taught Java because it is widely used in industry, and the focus has shifted to syntax rather than deep programming thinking.  I don't dislike Java; in fact, I think it's an ideal first programming language.  But I have not seen my instructors teach deep programming principles with it.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-29T18:13:10.973" LastActivityDate="2010-10-29T18:13:10.973" CommentCount="7" />
  <row Id="15630" PostTypeId="2" ParentId="15623" CreationDate="2010-10-29T17:15:48.257" Score="1" ViewCount="" Body="&lt;p&gt;I think part of why it is such a popular question is because there is more then one way of answering it, and depending on which way the candidate chooses to go can give you an insight about how they code. Some examples can be seen &lt;a href=&quot;http://stackoverflow.com/questions/437/what-is-your-solution-to-the-fizzbuzz-problem&quot;&gt;here&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to the 99% statistic, check where that number comes from. It is probably biased. If it is based off entry-level programmers interviewing for their first job, then yes I can see that being possible, especially if the majority of their candidates are coming straight out of college. I can actually think of someone who probably would write out a 100 condition if statement as a solution to that problem.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-10-29T17:15:48.257" CommentCount="2" />
  <row Id="15631" PostTypeId="2" ParentId="15536" CreationDate="2010-10-29T17:20:55.077" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Single-Threading&lt;/strong&gt;. Get used to the fact that your program is no longer a &quot;main&quot; function that calls other functions; more likely, your code will be compiled to some classes that live in some framework, which might create some objects, and call some methods, in parallel threads whenever you expect it least. A global static variable is no longer  just &quot;ugly&quot; and &quot;hard to maintain&quot;, but rather, it probably makes the program crash because of race conditions.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-10-29T17:20:55.077" CommentCount="2" />
  <row Id="15632" PostTypeId="2" ParentId="15623" CreationDate="2010-10-29T17:22:06.480" Score="4" ViewCount="" Body="&lt;p&gt;I've read the Coding Horror article you mention, and my opinion is that Jeff is right... but when is the last time he got interviewed?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you are interviewed, you are usually in high stress, and you often have to answer to theoretical questions (no intellisence, no google, no resharper, ... only your memory troubled by stress). That's the same in tests. Stress doesn't help you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've noticed that the only way to know if someone is suitable for a position is to work with him for a while... Just take the last 10 persons you hired out of 100 (maybe more), how much was a really good hire??? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;An employer should hire a problem solver, not a code monkey that know about modulos.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can't test &quot;for a while all applicants&quot;, so interviewing them is required. That's why I focus my questions on that (problem solving) and do past reference check.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My opinion is that the FizzBuzz is dangerous for the company that is looking for developers to substain its growth.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-29T17:43:26.427" LastActivityDate="2010-10-29T17:43:26.427" CommentCount="32" />
  <row Id="15633" PostTypeId="2" ParentId="15628" CreationDate="2010-10-29T17:22:59.633" Score="6" ViewCount="" Body="&lt;p&gt;Well, use them regulary. For example, I'm not doing much in C now, but whenever I need a little one-off program that reformats text files or whatever, I do it in C just to keep in touch with that language, even if the same program in Java would be more beautiful/shorter/easier to understand.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-10-29T17:22:59.633" CommentCount="1" />
  <row Id="15634" PostTypeId="2" ParentId="15628" CreationDate="2010-10-29T17:23:20.430" Score="0" ViewCount="" Body="&lt;p&gt;In our large organisation we have C#+T-SQL or Java+PL/SQL or Java/C++ according to the team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm quite surprised you have to use so many in one place &lt;em&gt;professionally&lt;/em&gt;. Some of the c# guys I know tinker with, say, IronPython in their own time for interests sake, but this is hobbyism.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry to say, but &quot;Jack of all trades, master of none&quot; would be my sentiment,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can imagine in a small shop you're exposed to much more, but a large shop would have dedicated teams.&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-10-29T17:23:20.430" CommentCount="5" />
  <row Id="15635" PostTypeId="1" AcceptedAnswerId="15646" CreationDate="2010-10-29T17:30:01.910" Score="21" ViewCount="419" Body="&lt;p&gt;So I've had a series of really bad experiences and am wondering what I'm doing wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started out as a part time programmer at a major university.  I developed a problem with my wrist and asked (nicely) for some help with my ergonomic accomodations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My boss started screaming at me, then later claimed I screamed at her.  When questioned about it, she just started sobbing.  Luckily, there were others around who heard the screaming and knew I was telling the truth.  She was eventually let go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My contract went up and I switched jobs, this time to a startup.  Well, we went several months without my getting a development machine.  When the economy tanked, they started asking for insane amounts of overtime.  I complied because I was afraid of having to look for work.  The final straw was they contacted me right before my father's funeral to fix a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was laid off, didn't receive my final check on time and the company screwed my COBRA up to the point where I couldn't get prescriptions for months.  They recently were fined by the State of X for what they did.  Now, even though I worked my heart out for them and they were willing before being fined, they are refusing to provide a reference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I took a new job quickly, mainly because I really needed my health insurance set up.  They wanted me to do several months of work in a couple of weeks.  They had no project plan.  Their customers were seriously not doing well, as whole sections of the application would stop working if someone ran a spell check.  Even though they had completely unreasaonble expectations about my work, they were happy to say it would take several months to repair the spell check bug.  There was virtually no training.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They had me interviewing candidates and I selected one.  Apparently, that person was my replacement because I was let go after a few months.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently, my former boss called my current employer and made up allegations that I am discouraging people from applying to open positions at his firm, which is insane because I didn't even know they were hiring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel like I have a T-shirt that says, &quot;If you're insane or would like someone to kick around and treat badly, hire me!&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then again, when I look at some programmers' resumes, I do see horror stories, too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So are there things I can do differently to avoid these problems?  Is it part of our profession that people do not have standards?  Perhaps it is a personality issue, that resides purely with me?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone else had a series of bad experiences and turned things around?&lt;/p&gt;&#xA;" OwnerUserId="5057" LastEditorUserId="5057" LastEditorDisplayName="" LastEditDate="2011-01-19T22:27:28.437" LastActivityDate="2011-01-19T22:27:28.437" Title="What do you do if you've had a series of bad employers?" Tags="&lt;career&gt;&lt;self-improvement&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="7" />
  <row Id="15636" PostTypeId="1" AcceptedAnswerId="15657" CreationDate="2010-10-29T17:31:36.327" Score="28" ViewCount="683" Body="&lt;p&gt;What should be in a good (read:useful) coding standard?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Things the code should have.&lt;/li&gt;&#xA;&lt;li&gt;Things the code shouldn't have.&lt;/li&gt;&#xA;&lt;li&gt;Should the coding standard include definitions of things the language, compiler, or code formatter enforces?&lt;/li&gt;&#xA;&lt;li&gt;What about metrics like cyclomatic complexity, lines per file, etc?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4422" LastActivityDate="2011-05-04T06:11:38.630" CommunityOwnedDate="2011-05-04T06:06:33.080" Title="What should be in a coding standard?" Tags="&lt;coding-standards&gt;" AnswerCount="20" CommentCount="1" FavoriteCount="11" />
  <row Id="15637" PostTypeId="2" ParentId="15635" CreationDate="2010-10-29T17:35:19.783" Score="14" ViewCount="" Body="&lt;p&gt;You sound like a reasonable guy.  I think you may have just had monumentally bad luck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are good companies out there to work for; you just have to find them.  Start wearing suits to your interviews.  Be a professional.  Talk to people who have a job with a good work environment, so that you know what that looks like, and know how people at that kind of company behave.  Then, pick a job that has that environment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember, at an interview, you are interviewing the company as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look for these things:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ideal job&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Has enjoyable and meaningful work&lt;/li&gt;&#xA;&lt;li&gt;Pays fairly&lt;/li&gt;&#xA;&lt;li&gt;Has a pleasant, mentally positive, productive work environment&lt;/li&gt;&#xA;&lt;li&gt;Is challenging, but not excessively stressful&lt;/li&gt;&#xA;&lt;li&gt;Allows you to do your job well&lt;/li&gt;&#xA;&lt;li&gt;Has learning opportunities&lt;/li&gt;&#xA;&lt;li&gt;Has advancement opportunities&lt;/li&gt;&#xA;&lt;li&gt;Has sensible leadership&lt;/li&gt;&#xA;&lt;li&gt;Has minimal office politics&lt;/li&gt;&#xA;&lt;li&gt;Has a reasonable commute&lt;/li&gt;&#xA;&lt;li&gt;Provides the opportunity to work with motivated, like-minded peers who respect each other&lt;/li&gt;&#xA;&lt;li&gt;Has adequate work-life balance&lt;/li&gt;&#xA;&lt;li&gt;Provides an opportunity to work towards long-term goals such as retirement.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I should point out that my current job has most of these things, but it did, in fact, take most of my adult life to find it.  I've been in some pretty screwy work situations as well.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing that seemed to make a major difference for me: I went back to school and got my degrees.  I began to be treated differently after that, like I was somebody.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-29T17:41:04.020" LastActivityDate="2010-10-29T17:41:04.020" CommentCount="6" />
  <row Id="15638" PostTypeId="2" ParentId="15636" CreationDate="2010-10-29T17:36:13.663" Score="7" ViewCount="" Body="&lt;p&gt;Some standards I like (I know there is a lot of them, but that's those I prefer):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;80% unit tests coverage&lt;/li&gt;&#xA;&lt;li&gt;Collective ownership of the code (write code to be read by your team mates, not the compiler)&lt;/li&gt;&#xA;&lt;li&gt;Write comments. Write what you would say to a newcomer.&lt;/li&gt;&#xA;&lt;li&gt;Keep it simple&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-29T17:36:13.663" CommunityOwnedDate="2011-05-04T06:06:33.080" CommentCount="8" />
  <row Id="15639" PostTypeId="2" ParentId="15623" CreationDate="2010-10-29T17:36:31.003" Score="4" ViewCount="" Body="&lt;p&gt;All you need to do is search on FizzBuzz. There was a huge wave of blog posts on it. Generally speaking the blogger said &quot;I told people to write it in [some language] and here are the kinds of mistakes they made:&quot; and then listed some pitfalls. The fun starts in the comments where people say &quot;ha! that's trivial in [some other language], all you have to write is this:&quot; followed by code. The next comment invariably finds bugs in that first one. Seems like some very good devs don't get it right the first time, in any language. Some of the errors:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I asked for 1 to 100 and you did 1 to 99 or 0 to 99&lt;/li&gt;&#xA;&lt;li&gt;messing up on whether to print the number along with fizz and/or buzz&lt;/li&gt;&#xA;&lt;li&gt;disagreements on &quot;fizzbuzz&quot; vs &quot;fizz-buzz&quot;&lt;/li&gt;&#xA;&lt;li&gt;missed optimizations, like comparing twice when once would do&lt;/li&gt;&#xA;&lt;li&gt;lots more&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;When I'm hiring, I ask people to code at the whiteboard for me, nothing anywhere near that complicated (I know, you don't think it's complicated) and many candidates fail utterly. I mean like writing vb-style If, Then, End If but putting braces as well (just to be on the safe side I guess) or writing C# (and asking first, C#?) but having not one semi colon anywhere. Don't start me on logic errors!&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-10-29T17:36:31.003" CommentCount="9" />
  <row Id="15640" PostTypeId="2" ParentId="15623" CreationDate="2010-10-29T17:36:48.543" Score="5" ViewCount="" Body="&lt;p&gt;In my last round of hiring I had 3 construction workers with 0, I repeat zero, programming education or experience apply for a software developer position.&lt;sup&gt;*&lt;/sup&gt;&#xA;So that's the bottom of the barrel. If you assume a normal distribution of skill, then you can see how the average skill level will be quite low and even 'above average' (amongst applicants) will still be relatively bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, if you're fizzbuzzing only the applicants that had what appeared to be some programming ability, you'll find that you now have 1) liars 2) buzzword enthusiasts (I read an article about .NET once) 3) bad actual programmers 4) people who used a technology to complete a project, but didn't learn about it (see fizzbuzz questions about idisposable to identify these)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, some 'fizzbuzz' questions that I've seen are domain specific. You can progressively develop with a language/framework x for a number of years (hence z years experience with x) and not have come across certain parts of it (library developers not knowing much about UI component development for eg.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Likewise, lots of developers do maintenance development these days, so their architecture/design skills may be weak in some areas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I'm not sure if 99% is accurate, but IME it's still pretty high. At least in the 80% range.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;* No, we didn't call or even give a second look at these applications.&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-29T21:28:14.490" LastActivityDate="2010-10-29T21:28:14.490" CommentCount="1" />
  <row Id="15641" PostTypeId="2" ParentId="15635" CreationDate="2010-10-29T17:38:12.390" Score="3" ViewCount="" Body="&lt;p&gt;I think you need to think about leaving before they force you to.  You'll look better to other employers, and it conveys confidence (&quot;I don't have to take your crap.&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also research the job before you even go for the interview.  Avoiding start-ups might also be helpful, as those are very hit or miss.&lt;/p&gt;&#xA;" OwnerUserId="4422" LastActivityDate="2010-10-29T17:38:12.390" />
  <row Id="15642" PostTypeId="2" ParentId="15636" CreationDate="2010-10-29T17:38:33.477" Score="17" ViewCount="" Body="&lt;p&gt;Tabs vs Spaces!&#xA;I get crazy updates when one of my colleagues accidentally commits a lot of tabs to spaces shift into the repository&lt;/p&gt;&#xA;" OwnerUserId="4879" LastEditorUserId="4879" LastEditorDisplayName="" LastEditDate="2010-10-30T01:55:30.197" LastActivityDate="2010-10-30T01:55:30.197" CommunityOwnedDate="2011-05-04T06:06:33.080" CommentCount="5" />
  <row Id="15643" PostTypeId="2" ParentId="15635" CreationDate="2010-10-29T17:41:49.640" Score="3" ViewCount="" Body="&lt;p&gt;as a rule of thumb one thing i make sure to ask is how the turnover is on the tech team. If you ask around on your interview with the team members and the longest anyone has been their is a year or two then watch out. personally, i pass on these jobs and only look to be hired by teams that have people with Grey hair... if everyone looks like they are under 30 then that's another red flag.&lt;/p&gt;&#xA;" OwnerUserId="6507" LastActivityDate="2010-10-29T17:41:49.640" CommentCount="2" />
  <row Id="15644" PostTypeId="2" ParentId="15636" CreationDate="2010-10-29T17:42:07.003" Score="16" ViewCount="" Body="&lt;p&gt;Naming Conventions&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; By this I mean naming Guidelines, not naming Rules.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, a Guideline would be &lt;code&gt;All boolean values should begin with Is/Can/Has/etc when possible&lt;/code&gt;. A rule would be &lt;code&gt;All boolean values must start with Is&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="1130" LastEditorUserId="1130" LastEditorDisplayName="" LastEditDate="2010-12-10T16:28:22.640" LastActivityDate="2010-12-10T16:28:22.640" CommunityOwnedDate="2011-05-04T06:06:33.080" CommentCount="8" />
  <row Id="15645" PostTypeId="2" ParentId="15635" CreationDate="2010-10-29T17:42:16.160" Score="4" ViewCount="" Body="&lt;p&gt;I don't believe in series. Maybe you should start to ask your former coleagues how they perceived you, what you could improve. Call your old bosses also, this might help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why do that? Because you may find out that the problem was you!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's the case, you can improve things, but only if you know there is a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if the problem is not you, you will stop asking yourself (and us).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now there is another solution I like:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are only 28 year old, you are at the beginning of your life, you may have done some mistake in the past, but who cares? You have the life ahead of you. Don't fill your mind with such unhelpful thoughts. You imagination is probably creating them. It's normal, all you have to do is ignoring them.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-29T17:42:16.160" CommentCount="3" />
  <row Id="15646" PostTypeId="2" ParentId="15635" CreationDate="2010-10-29T17:43:49.157" Score="5" ViewCount="" Body="&lt;p&gt;I think you need need to start doing more research on the company before taking a job and ask more pointed questions about the company in the interview. Since Health insurance is important to you, I would stay away from start-ups altogether as they can crash very suddenly leaving you in a simliar situation (they usually aren't great at bureaucratic stuff like COBRA either).  Don't take the first job offered because you are paniced about being employed. How did your old boss even know where you are employed now to call them up? You are under no obligation to tell them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Decide what working conditions you need before starting to interview. Then ask questions to ensure you get those conditions. Don't accept a job that doesn't meet your minimum. I once had a horrible job where my shortest working day was 11 hours and every week I worked over 18 hours 1-2 days a week. YOu can bet I used that expereince to ask about their normal overtime policies and to make it clear that while I would work overtime in a crunch, I was not interested in a job where overtime was a way of life. Screen out the compnies that don't do things the way you need them to. You'll be happier and so will they.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-29T17:43:49.157" CommentCount="4" />
  <row Id="15647" PostTypeId="2" ParentId="11512" CreationDate="2010-10-29T17:50:29.233" Score="7" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Cowboy_coding&quot; rel=&quot;nofollow&quot;&gt;Cowboy Coding&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Pure unstructured, unmanaged, freeform development. It can be useful for small hobby projects that lack a deadline or even a clear goal, but likely won't work in a corporate setting.&lt;/p&gt;&#xA;" OwnerUserId="3869" LastEditorUserId="3869" LastEditorDisplayName="" LastEditDate="2010-11-05T05:09:12.633" LastActivityDate="2010-11-05T05:09:12.633" CommentCount="3" />
  <row Id="15648" PostTypeId="2" ParentId="15635" CreationDate="2010-10-29T17:54:36.683" Score="3" ViewCount="" Body="&lt;p&gt;The bad bosses/companies really make you appreciate the good ones.  It's good that you had the experience when you are young, so when you find a good place (which is a combination of examination and luck) you'll know what you found.  The last job I had was pure misery, but now I have the best job I've ever had, &lt;strong&gt;and I know it&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-10-29T17:54:36.683" />
  <row Id="15649" PostTypeId="2" ParentId="14856" CreationDate="2010-10-29T17:58:16.370" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;GoTo Considered Harmful&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are implementing a state machine a GOTO statement can make more sense (readability and efficient code) than a &quot;structured programming&quot; approach. It really worried some co-workers when the first piece of code I wrote in a new job included not just one but several goto statements. Fortunately they were intelligent enough to realize that it was actually the best solution in this particular case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any &quot;best practice&quot; that doesn't allow for sensible and documented exceptions to its rules is just plain scary.&lt;/p&gt;&#xA;" OwnerUserId="5401" LastActivityDate="2010-10-29T17:58:16.370" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="14" />
  <row Id="15651" PostTypeId="2" ParentId="15628" CreationDate="2010-10-29T18:02:25.803" Score="2" ViewCount="" Body="&lt;p&gt;I like to play strategy games.  Seriously.  My experience has been that it's less about retaining proficiency or expertise in particular skills and more about maintaining the focus and mentality it takes to learn (or relearn) things quickly.  One week I'll be developing in C#, able to experiment with WPF and new techniques in unit testing, whereas the next I may be waist-deep in a hack job on a legacy VB6 code base.  Or I might be asked to learn Python while on a flight overseas to help optimize a system I've never even seen before.  A month later, I can be deeply entrenched in a ladder logic program, where you still have to think about how you want to arrange your bits in the few thousand words of memory you're given, taking care not to exceed the 10,000 instruction limit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's no way that I could find time to keep up on all of the different systems I might need to maintain, so if you're in this kind of highly mutable environment (as it sounds you are), the best advice I can give is to use your personal time to unwind so that you can approach your professional challenges with the full energy and focus required to navigate the maelstrom.  It also helps a lot if you enjoy the variety and the challenge.  If you'd much rather dig deep into a particular domain, try expressing your concerns to your boss; a good manager will want to get the best results they can from their team and allocating the right kind of work to people is a big part of that.&lt;/p&gt;&#xA;" OwnerUserId="6724" LastActivityDate="2010-10-29T18:02:25.803" />
  <row Id="15652" PostTypeId="2" ParentId="15636" CreationDate="2010-10-29T18:09:22.547" Score="3" ViewCount="" Body="&lt;p&gt;A procedure for code reviews to enforce the standard.  Oh, and to find bugs too.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-29T18:09:22.547" CommunityOwnedDate="2011-05-04T06:06:33.080" />
  <row Id="15653" PostTypeId="2" ParentId="15623" CreationDate="2010-10-29T18:25:57.573" Score="19" ViewCount="" Body="&lt;p&gt;99%? No. A significant percentage? Yes. From my own direct experience of interviewing people I can testify to this one. It might seem insignificant to you but there are a lot of people in the programming field who have more or less faked their way through for years and apply on non-entry level positions and fail this one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you CAN easily solve it, but you give me huge static about being asked to do such a menial task will count against you. Being on a team means having to sometimes do things you might not enjoy but are necessary. If right off the bat, before we've even started to work together you think it would be best to try and assert your special status of being above doing something I've asked you to do then it will act as a mark against you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't care necessarily how elegant your solution is (although that would be nice) but seeing you take a stab at it on a whiteboard and talking your way through it shows me that you're at least willing to take a stab at it. If you get indignant and say something along the lines of &quot;I'm a problem solver, not a code monkey!&quot; then you will be knocked down a peg.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have had interviewees just flat out refuse to even begin to attempt it. Just simply refuse. No. Uh uh. Won't do it. I ask one or two more polite questions, thank them for their time and close the interview off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I say this as a manager and as a developer.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-10-29T18:25:57.573" CommentCount="3" />
  <row Id="15654" PostTypeId="2" ParentId="15585" CreationDate="2010-10-29T18:31:12.447" Score="1" ViewCount="" Body="&lt;p&gt;To add to the fun, here's my favorite Java Quine, by Josh Donnoe:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Q{public static void main(String[]a){if(System.out.printf((a=new String[]&#xA;{&quot;class Q{public static void main(String[]a){if(System.out.printf((a=new String[]{%c%s%1$c})[0],34,a[0])!=null){}}}&quot;})[0],34,a[0])!=null){}}}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;What makes it special is that it &lt;strong&gt;doesn't use a single semicolon!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(You'll need to compile it as a single line.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's one of the many &lt;a href=&quot;http://www.cs.utsa.edu/~mshonle/JavaQuine.html&quot; rel=&quot;nofollow&quot;&gt;Java Quines&lt;/a&gt; I've collected on my page, all of which don't use semicolons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as I know, in order to be the &quot;shortest&quot; Quine you can't use newlines, but as a personal preference I like seeing how the challenge of adding newlines is addressed in Quines. Effectively you have to worry about quoting problems. The other quoting problem is shown in the solution above; many get around the problem of quoting a quote by using the ASCII value &lt;code&gt;34&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-11-26T04:45:35.540" LastActivityDate="2010-11-26T04:45:35.540" />
  <row Id="15655" PostTypeId="2" ParentId="15536" CreationDate="2010-10-29T18:31:21.660" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Hungarian Notation&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's nothing wrong with &quot;m_&quot; for member variables but &quot;m_sztrfgpCompanyName&quot; outside of C or arguably in C programming it's overkill.  That's what IDE's and modern compilers are for.  (And yes, I know of all the dangers of &lt;code&gt;void*&lt;/code&gt;, see &quot;arguably&quot;)&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-10-29T18:31:21.660" CommentCount="2" />
  <row Id="15656" PostTypeId="2" ParentId="15636" CreationDate="2010-10-29T18:53:10.733" Score="2" ViewCount="" Body="&lt;p&gt;Some good old common sense wouldn’t go amiss; there are far too many coding standard documents that labour on irrelevant points (items such as font type and size being one of the more extreme ones I’ve seen). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best thing to do if you’re in a group of developers is to talk to each other and look at your code, form a consensus on what is acceptable and if you need to write down the main points as guidelines, but keep them as just that guidelines. If you can’t justify any divergence from the guidelines you really should consider why you’re doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day clear and understandable code is more important than any rigid rule on layout or typography. &lt;/p&gt;&#xA;" OwnerUserId="4960" LastActivityDate="2010-10-29T18:53:10.733" CommunityOwnedDate="2011-05-04T06:06:33.080" CommentCount="2" />
  <row Id="15657" PostTypeId="2" ParentId="15636" CreationDate="2010-10-29T18:56:50.280" Score="30" ViewCount="" Body="&lt;p&gt;A reasons for every requirement.  This way, following the standard doesn't become some sort of cargo cult and people know that it's ok to change the standard if the reason for it no longer applies, or to violate the standard in specific cases where the reason clearly doesn't apply.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-29T18:56:50.280" CommunityOwnedDate="2011-05-04T06:06:33.080" CommentCount="4" />
  <row Id="15658" PostTypeId="2" ParentId="15585" CreationDate="2010-10-29T19:08:41.790" Score="5" ViewCount="" Body="&lt;p&gt;My favorite is Russ Cox' zip and gzip quines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://research.swtch.com/2010/03/zip-files-all-way-down.html&quot; rel=&quot;nofollow&quot;&gt;http://research.swtch.com/2010/03/zip-files-all-way-down.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and his favorite&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;#!/bin/cat&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="867" LastActivityDate="2010-10-29T19:08:41.790" CommentCount="2" />
  <row Id="15659" PostTypeId="2" ParentId="15610" CreationDate="2010-10-29T19:08:52.247" Score="0" ViewCount="" Body="&lt;p&gt;Does Python have a platform independent GUI?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, the WORA feature was - again - to lure C programmers over, as C tended to model the underlying platform closely, and as platforms were different (size of word?  endianess?) creating fully portable C programs required great care and attention.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Java promise was that all this tediousness did not have to be done, as the platform is very well defined and you KNOW that a char is 16 bit etc.   Also the GUI is written in Java and also 100% portable, which means that your program can run on a computer you've never heard of and even run correctly.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-29T19:08:52.247" CommentCount="1" />
  <row Id="15660" PostTypeId="2" ParentId="15635" CreationDate="2010-10-29T19:20:49.507" Score="0" ViewCount="" Body="&lt;p&gt;You should really read my last couple of posts about the job I'm about to quit. You can find them at &lt;a href=&quot;http://matteomosca.com&quot; rel=&quot;nofollow&quot;&gt;http://matteomosca.com&lt;/a&gt; and I assure you, as crazy as it sounds, it's all real.&lt;/p&gt;&#xA;" OwnerUserId="3426" LastActivityDate="2010-10-29T19:20:49.507" />
  <row Id="15661" PostTypeId="2" ParentId="15623" CreationDate="2010-10-29T19:28:48.727" Score="4" ViewCount="" Body="&lt;p&gt;Unfortunately, many people with impressively looking resumes do seem to lack basic programming skills.  I have seen many cases when people who list C and C++ on their resumes could not answer basic questions about pointers.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastEditorUserId="4365" LastEditorDisplayName="" LastEditDate="2010-11-12T16:44:11.673" LastActivityDate="2010-11-12T16:44:11.673" />
  <row Id="15662" PostTypeId="2" ParentId="15636" CreationDate="2010-10-29T19:48:33.757" Score="4" ViewCount="" Body="&lt;p&gt;Coding Standards help a little when you are writing the code the first time, they help a &lt;em&gt;lot&lt;/em&gt;  when you, or your replacement, has to update the code 2 years later.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ideal standard leads to code where you can jump to any arbitrary page in the code, and understand excactly what it is doing on the first read-through, because &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the names clearly describe what data is being manipulated,&lt;/li&gt;&#xA;&lt;li&gt;the braces make the flow of control clear, &lt;/li&gt;&#xA;&lt;li&gt;the comments explain any non-obvious algorithm, etc. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;On the other hand, too many arbitrary standards can disrupt the flow of writing code. So I believe that every item in a proposed coding convention should be evaluated against these 2 criteria: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Does this rule help ensure that the code is &lt;strong&gt;Correct&lt;/strong&gt;? &lt;/li&gt;&#xA;&lt;li&gt;Does this rule help ensure that the code is &lt;strong&gt;Clear&lt;/strong&gt;? &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If neither is true, the item is just arbitrary, and probably unnecessary &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I would include the following things in a standard I write: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Clarity:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;File Organization:   Specifying a fixed order for the items in a file lets the team easily navigate others files.   You shouldn't have to hunt to find #defines, or structure definitions.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Naming conventions:  Consistent naming aids readability.  But avoid over-specifying too many rules, that harms writeability.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Code Structure.  Curly Brace placement, indentation levels, spaces vs tabs, etc.   Yes, this can be a strong personal preference, but the goal is clear code.  Find the best option for the team, and stick with it. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For Correctness:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Best Practices specific to your problem type:   Rules about memory allocation, or concurrency, or portability.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&quot;Const Correctnesss&quot;, proper use of &lt;code&gt;static&lt;/code&gt; and &lt;code&gt;volatile&lt;/code&gt;, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Rules about preprocessor macros, and other easily abused features of the language.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-10-29T19:48:33.757" CommunityOwnedDate="2011-05-04T06:06:33.080" />
  <row Id="15663" PostTypeId="2" ParentId="15527" CreationDate="2010-10-29T19:57:25.197" Score="2" ViewCount="" Body="&lt;p&gt;It tends to show up commonly and consistently in Common Lisp projects. Check out &lt;a href=&quot;http://www.paulgraham.com/onlisp.html&quot; rel=&quot;nofollow&quot;&gt;OnLisp&lt;/a&gt; and &lt;a href=&quot;http://letoverlambda.com/&quot; rel=&quot;nofollow&quot;&gt;Let Over Lambda&lt;/a&gt; for some explanation/insight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're just after examples (and know CL), check out the &lt;a href=&quot;http://github.com/hoytech/antiweb&quot; rel=&quot;nofollow&quot;&gt;Antiweb&lt;/a&gt; repository; there's a good deal of meta-programming going on under the covers.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-10-29T19:57:25.197" />
  <row Id="15664" PostTypeId="2" ParentId="15636" CreationDate="2010-10-29T19:59:21.933" Score="5" ViewCount="" Body="&lt;p&gt;Inspiring, pragmatic ideas that make people think, rather than negative restrictions which stop people thinking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, you get code monkeys who are afraid to go after the &lt;a href=&quot;http://creativestudios.com/monkey-spray/&quot; rel=&quot;nofollow&quot;&gt;bananas&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="912" LastActivityDate="2010-10-29T19:59:21.933" CommunityOwnedDate="2011-05-04T06:06:33.080" />
  <row Id="15665" PostTypeId="2" ParentId="3789" CreationDate="2010-10-29T20:05:24.097" Score="5" ViewCount="" Body="&lt;p&gt;My personal opinion is that it does not matter very much which language you learn first.  The most important thing is to be exposed to different programming paradigms early on, so that your brain does not freeze into a single way of thinking.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good way to do that, IMHO, is to learn a &quot;pure&quot; language in each paradigm, e. g. a purely imperative language, like BASIC, Pascal, Fortran, or C, a purely functional language like Scheme, a purely object-oriented language, like Smalltalk, or a purely logical language like Prolog.  This way you would be forced to actually use the corresponding paradigm.  This is as opposed to using a hybrid language in which you can get away with just using the paradigm you already know.  An example would be coding in C++ using only the imperative paradigm, as though it were C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is probably also good to learn several languages in the same paradigm, just to see that once you understand a paradigm, learning another language that supports that paradigm is largely a matter of learning the syntax and the idioms.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-10-29T20:05:24.097" />
  <row Id="15666" PostTypeId="2" ParentId="15636" CreationDate="2010-10-29T20:10:44.950" Score="10" ViewCount="" Body="&lt;p&gt;A coding standard for a group should include the &lt;strong&gt;compiler options for warnings and errors&lt;/strong&gt; that must be addressed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers should be free to &lt;em&gt;increase&lt;/em&gt; warnings for their own code, but there must be a baseline so that reading and working with someone else's code doesn't clutter up the output you get from the compiler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Such a standard would also have to address how programmers can disable such warnings case-by-case, should there be an exceptional piece of code that won't otherwise conform.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-10-29T20:10:44.950" CommunityOwnedDate="2011-05-04T06:06:33.080" CommentCount="4" />
  <row Id="15667" PostTypeId="2" ParentId="15636" CreationDate="2010-10-29T20:16:03.970" Score="1" ViewCount="" Body="&lt;p&gt;Self documenting code (comments, variable names, function names, etc.)&lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-10-29T20:16:03.970" CommunityOwnedDate="2011-05-04T06:06:33.080" />
  <row Id="15668" PostTypeId="2" ParentId="9922" CreationDate="2010-10-29T20:19:13.857" Score="1" ViewCount="" Body="&lt;p&gt;Am I the only person who thinks of a hacker as a cat throwing up a hairball?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously though, I never use the term because it has such negative connotations now.  &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-10-29T20:19:13.857" />
  <row Id="15669" PostTypeId="2" ParentId="3789" CreationDate="2010-10-29T20:33:17.190" Score="-1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;awk&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ is &lt;em&gt;way&lt;/em&gt; too complicated!&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-10-29T20:33:17.190" />
  <row Id="15670" PostTypeId="1" CreationDate="2010-10-29T20:35:05.957" Score="14" ViewCount="582" Body="&lt;p&gt;Now that we know what is in store for c#5, there is apparently still an opening for us to influence the choice of the two new keywords for '&lt;a href=&quot;http://msdn.com/vstudio/async&quot; rel=&quot;nofollow&quot;&gt;Asynchrony&lt;/a&gt;' that were announced by Anders Heijsberg yesterday at &lt;a href=&quot;http://player.microsoftpdc.com/session&quot; rel=&quot;nofollow&quot;&gt;PDC10&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;async void ArchiveDocuments(List&amp;lt;Url&amp;gt; urls) {&#xA;    Task archive = null;&#xA;    for(int i = 0; i &amp;lt; urls.Count; ++i) {&#xA;        var document = await FetchAsync(urls[i]);&#xA;        if (archive != null)&#xA;            await archive;&#xA;        archive = ArchiveAsync(document);&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2010/10/29/asynchronous-programming-in-c-5-0-part-two-whence-await.aspx&quot; rel=&quot;nofollow&quot;&gt;Eric Lippert&lt;/a&gt; has an explanation of the choice of the current two keywords, and the way in which they have been misunderstood in usability studies. The comments have several other propositions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Please - one suggestion per answer, duplicates will be nuked.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="4285" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-10-30T01:28:50.670" LastActivityDate="2010-11-07T02:28:01.480" Title="async &amp; await - poll for alternatives" Tags="&lt;c#&gt;&lt;naming&gt;" AnswerCount="12" CommentCount="3" FavoriteCount="2" />
  <row Id="15671" PostTypeId="2" ParentId="15636" CreationDate="2010-10-29T20:40:38.423" Score="1" ViewCount="" Body="&lt;p&gt;I like the format in the &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321545613&quot; rel=&quot;nofollow&quot;&gt;Framework Design Guidelines&lt;/a&gt; it includes a general section and  rationals for the guidelines. The most useful bit are the details which start with Do, Do Not, Avoid and Consider. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's an example in the section &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms229034.aspx&quot; rel=&quot;nofollow&quot;&gt;Implementing Interface Members Explicitly&lt;/a&gt; it has the following items (note I dropped the rationals for bervity's sake)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Avoid&lt;/strong&gt; implementing interface members&#xA;  explicitly without having a strong&#xA;  reason to do so&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Consider&lt;/strong&gt; implementing interface members explicitly if the members are intended to be called only through the interface.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Do not&lt;/strong&gt; use explicit members as a security boundary.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Do&lt;/strong&gt; provide a protected virtual member that offers the same functionality as the &gt; explicitly implemented member if the functionality is meant to be specialized by derived classes.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This creates a good general tone. By using Avoid and Consider you can allow for developers to use their judgement. Also because they're guidelines and not rules developers are likely to  find them more palatable and in turn more likely to follow them.&lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-10-29T20:40:38.423" CommunityOwnedDate="2011-05-04T06:06:33.080" />
  <row Id="15672" PostTypeId="2" ParentId="15670" CreationDate="2010-10-29T20:41:08.393" Score="6" ViewCount="" Body="&lt;p&gt;Given that I'm not clear about the meaning/necessity of &lt;code&gt;async&lt;/code&gt;, I can't really argue with it, but my best suggestion for replacing &lt;code&gt;await&lt;/code&gt; is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;yield while&lt;/code&gt; &lt;em&gt;(look! no new keywords)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; having thought about this a bit more, I wonder whether re-using &lt;code&gt;while&lt;/code&gt; in this way is a good idea - the natural tendency would be to expect a boolean afterwards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(Thinks: finding good keywords is like finding good domain names :)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="4285" LastEditorUserId="4285" LastEditorDisplayName="" LastEditDate="2010-10-30T15:42:47.477" LastActivityDate="2010-10-30T15:42:47.477" CommentCount="6" />
  <row Id="15673" PostTypeId="1" AcceptedAnswerId="15677" CreationDate="2010-10-29T20:45:43.017" Score="3" ViewCount="221" Body="&lt;p&gt;What's so unique about it? Heard great things about it, used it, found that beside the Google Apps Integration there's nothing really special about it. Maybe I just don't get it? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what's your reason to use basecamp?&lt;/p&gt;&#xA;" OwnerUserId="2572" LastActivityDate="2010-10-29T22:33:47.733" Title="Is 37Signals Basecamp a hype?" Tags="&lt;project-management&gt;&lt;basecamp&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="15675" PostTypeId="2" ParentId="15673" CreationDate="2010-10-29T20:50:28.440" Score="3" ViewCount="" Body="&lt;p&gt;It's a great way to centralize information on projects and to have a solid record of communication between users. It's also great if you are working with a distributed team.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-29T20:50:28.440" />
  <row Id="15676" PostTypeId="2" ParentId="15610" CreationDate="2010-10-29T20:52:48.163" Score="0" ViewCount="" Body="&lt;p&gt;Except that Java is emphatically &lt;em&gt;not&lt;/em&gt; WORA. I've seen Java software that broke after Java has been upgraded to a higher version on the &lt;em&gt;minor&lt;/em&gt; version number. IMHO, WORA is just a marketing gimmick.&lt;/p&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-10-29T20:52:48.163" CommentCount="1" />
  <row Id="15677" PostTypeId="2" ParentId="15673" CreationDate="2010-10-29T20:53:21.437" Score="4" ViewCount="" Body="&lt;p&gt;To me, the biggest draw has been the simplicity, which leads to flexibility. The concepts that Basecamp helps to manage are easily understandable, and there's very little configuration to worry about. (Have you ever tried to use a tool like JIRA? Even its configuration has configuration.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The simplicity starts to pay dividends when you are composing project teams of varying technical experience. The basic nature of to-do list items and milestones are easily understandable by most anybody.&lt;/p&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-10-29T20:53:21.437" />
  <row Id="15678" PostTypeId="2" ParentId="14831" CreationDate="2010-10-29T21:01:02.370" Score="1" ViewCount="" Body="&lt;p&gt;Read also &lt;a href=&quot;http://blogs.msdn.com/b/oldnewthing/archive/2005/01/14/352949.aspx&quot; rel=&quot;nofollow&quot;&gt;this post&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-10-29T21:01:02.370" CommentCount="2" />
  <row Id="15679" PostTypeId="2" ParentId="15670" CreationDate="2010-10-29T21:04:45.750" Score="4" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;hearken unto AsyncFetch(…)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(if you don't get it, read Eric's &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2010/10/29/asynchronous-programming-in-c-5-0-part-two-whence-await.aspx?PageIndex=3#comments&quot; rel=&quot;nofollow&quot;&gt;blog entry&lt;/a&gt;. At least it's better than &lt;code&gt;for sooth Romeo wherefore art thou AsyncFetch(…)&lt;/code&gt;)&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-10-29T21:04:45.750" CommentCount="1" />
  <row Id="15680" PostTypeId="2" ParentId="14831" CreationDate="2010-10-29T21:09:47.480" Score="6" ViewCount="" Body="&lt;p&gt;Like most things, exceptions and exception handling will likely seem like a solution in search of a problem to new programmers until you show why the seemingly simpler solution (C-style return codes and errno) works so poorly.  I would start out by motivating the problem and putting it in context.  Show how error handling could be done using return codes or global/static variables.  Then give examples of why it doesn't work well.  Then and only then, introduce exceptions and explain that they're a form of out-of-band signaling and that &lt;em&gt;the whole point&lt;/em&gt; is that the default behavior if you ignore an exception is to pass the buck up the call stack to someone who can handle it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line:  Showing how error handling was done in C will make the students understand what exceptions are really for and why catching exceptions that you can't really handle is basically simulating the way things were done in the Dark Ages.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-10-29T21:09:47.480" CommentCount="5" />
  <row Id="15681" PostTypeId="1" CreationDate="2010-10-29T21:15:03.567" Score="2" ViewCount="98" Body="&lt;p&gt;What tools are necessary when developing efficiently with Silverlight 4? VS 2010 is a gimme, but what version? Is Pro enough? Premium? What about Expression Blend/Web/Both? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When considering VS 2010, premium comes with an MSDN subscription but it's at the high end of the budget. It makes sense if Expression comes with it though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's for a one man development show, making an LOB app that will integrate video/audo and mic/webcam equipment.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-30T13:24:16.200" Title=".NET silverlight development tools" Tags="&lt;tools&gt;&lt;web-tools&gt;&lt;silverlight&gt;" AnswerCount="3" CommentCount="3" />
  <row Id="15682" PostTypeId="2" ParentId="15670" CreationDate="2010-10-29T21:16:28.390" Score="4" ViewCount="" Body="&lt;p&gt;I think &lt;code&gt;async&lt;/code&gt; is fine, but maybe that's because I associate it with ASP.NET async pages - same idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the &lt;code&gt;await&lt;/code&gt; keyword I prefer &lt;code&gt;continue after&lt;/code&gt; or &lt;code&gt;resume after&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I &lt;strong&gt;don't&lt;/strong&gt; like &lt;code&gt;yield&lt;/code&gt; or any of its variants, because the semantics are such that the method may never actually yield execution; it depends on the state of the task.&lt;/p&gt;&#xA;" OwnerUserId="3249" LastActivityDate="2010-10-29T21:16:28.390" CommentCount="2" />
  <row Id="15683" PostTypeId="2" ParentId="15567" CreationDate="2010-10-29T21:16:50.890" Score="1" ViewCount="" Body="&lt;p&gt;If you can connect remotely, you probably don't need a laptop. I worked at a company where only company issued computers could connect to the VPN, so I went with a laptop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A laptop is useful when commuting on public transportation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Someone mentioned meetings. I'm amazed how often we revert to the paper-age when it comes to meetings. But having to print out the agenda is much better than a powerpoint presentation.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-10-29T21:16:50.890" CommentCount="2" />
  <row Id="15684" PostTypeId="2" ParentId="14226" CreationDate="2010-10-29T21:32:17.397" Score="0" ViewCount="" Body="&lt;p&gt;I need to get things done (architecture / integration projects) and that means I need a telephone. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's nothing worse than firing off an email, waiting a few hours (or days?) for a reply, having to fire off a clarifying question just to wait another few hours, etc etc... when I could just pick up the phone and get the problems solved NOW.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I'm in the zone, I'll put the phone on do-not-disturb and nobody will bug me. Simple.&lt;/p&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-10-29T21:32:17.397" CommunityOwnedDate="2011-01-07T02:23:03.807" />
  <row Id="15685" PostTypeId="2" ParentId="15673" CreationDate="2010-10-29T21:38:03.747" Score="2" ViewCount="" Body="&lt;p&gt;I've used it a few times to organise groups for various aims and I would do so again. It's easy to use, easy to understand and it does stuff you need but not stuff you don't need. I just found it really easy to get along with.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-29T21:38:03.747" />
  <row Id="15686" PostTypeId="2" ParentId="14226" CreationDate="2010-10-29T21:39:45.710" Score="0" ViewCount="" Body="&lt;p&gt;I had one, and it was &lt;em&gt;misplaced&lt;/em&gt; when the company moved buildings. I hated it. Now I have a SIP phone on my machine and I just turn it off when I'm &quot;testing something&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-10-29T21:39:45.710" CommunityOwnedDate="2011-01-07T02:23:03.807" />
  <row Id="15687" PostTypeId="2" ParentId="15536" CreationDate="2010-10-29T21:41:14.317" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Inventing the wheel&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back in the day, there were no easily reusable objects or online services we could just plug into, so we had to write our own before we could start tackling the real problem at hand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's hard always remembering to check whether someone else has solved a problem before setting out to do so, epecially when some part of your brain actually enjoys it.&lt;/p&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-10-29T21:41:14.317" CommentCount="3" />
  <row Id="15688" PostTypeId="2" ParentId="15567" CreationDate="2010-10-29T21:44:51.537" Score="0" ViewCount="" Body="&lt;p&gt;Desktop at work, desktop at home, &lt;a href=&quot;http://www.dropbox.com&quot; rel=&quot;nofollow&quot;&gt;Dropbox&lt;/a&gt; and/or &lt;a href=&quot;http://www.gotomypc.com&quot; rel=&quot;nofollow&quot;&gt;GotoMyPC&lt;/a&gt; if you need to work remotely or share files. And perhaps a Netbook if you need to travel to meetings where you give presentations or take notes.&lt;/p&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-10-29T21:44:51.537" />
  <row Id="15689" PostTypeId="2" ParentId="15567" CreationDate="2010-10-29T21:55:00.887" Score="0" ViewCount="" Body="&lt;p&gt;To answer the direct question of convenience and productivity, plus the hidden question of extra work at home, I would go with the desktop.  You find yourself looking at work email, continuing work problems and generally bleeding over into your personal life with a laptop.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally prefer the flexibility to catch up or take a work from home day, but it does interfere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for productivity the desktop for the same price will have more power and memory than the laptop and you still really need the same monitors which is assumed to be equal here, but if not could be a factor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My old company had a policy of 1 19&quot; monitor with your 14&quot; laptop or two 19&quot; monitors with a desktop.  Pretty stingy on the monitors to be sure, but they did have separate rules.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-10-29T21:55:00.887" />
  <row Id="15690" PostTypeId="2" ParentId="14315" CreationDate="2010-10-29T22:01:50.383" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;I solved the problem by increasing the request timeout to 1 hour&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-10-29T22:01:50.383" CommunityOwnedDate="2010-10-29T22:01:50.383" CommentCount="2" />
  <row Id="15691" PostTypeId="2" ParentId="15623" CreationDate="2010-10-29T22:03:47.567" Score="0" ViewCount="" Body="&lt;p&gt;There are two types of people I would hope that FizzBuzz would help me avoid.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Chancers with no knowledge of programming or no relevant knowledge of programming. Usually you can recognise these from the CV but not always and giving them a simple programming task is a good way of making it clear that they are not a programmer.&lt;/li&gt;&#xA;&lt;li&gt;Java school grads, who have completed a programming course or degree but don't actually know how to program. These people can be harder to filter out because they can talk about theory but they just have no practical skill. Putting a simple problem in front of them and asking for a solution and an explanation of the solution is a pretty good way of seeing the difference between a Petra Java and a Paula Bean.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In either case, I don't really care about a perfect implementation. The test that you need to make with people applying for developer jobs is &lt;em&gt;that they can program at all.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I would probably not bother with that particular test for several reasons now. Firstly it's very well known and either of the above groups would be quick to try it. Secondly I would prefer to use &lt;a href=&quot;http://sites.google.com/site/steveyegge2/five-essential-phone-screen-questions&quot; rel=&quot;nofollow&quot;&gt;Steve Yegge's phone screen questions&lt;/a&gt; to screen out non-programmers before we got as far as bringing them in. If someone recognised those questions it would imply they had read Steve Yegge's blog which would suggest to me they were in the top 1% of developers who take their profession seriously and certainly warrant an interview. Likewise if someone had some good rep here or on SO I would be inclined to interview them.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-29T22:03:47.567" CommentCount="1" />
  <row Id="15692" PostTypeId="2" ParentId="15623" CreationDate="2010-10-29T22:05:32.797" Score="4" ViewCount="" Body="&lt;p&gt;This test very nicely covers several things I want to know about a programmer I might hire:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Can you even program at all?&lt;/li&gt;&#xA;&lt;li&gt;Can you write a program from scratch (because not everyone can!!!)&lt;/li&gt;&#xA;&lt;li&gt;Can you solve a problem without &lt;em&gt;over&lt;/em&gt;-thinking it.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;To elaborate on the last point, there are countless solutions to fizz-buzz. Do you go for readability? Speed? Brevity? Do you try to finish writing the program quickly? How a programmer attacks this simple problem is very telling. If a programmer can't pick a solution and see it through to the end, what does that tell you about how this person will perform on a real task?&lt;/p&gt;&#xA;" LastActivityDate="2010-10-29T22:05:32.797" />
  <row Id="15693" PostTypeId="2" ParentId="15500" CreationDate="2010-10-29T22:05:48.427" Score="0" ViewCount="" Body="&lt;p&gt;1 second. According to the &lt;a href=&quot;http://www.useit.com/papers/responsetime.html&quot; rel=&quot;nofollow&quot;&gt;3 basic limits&lt;/a&gt; which haven't changed in over 30 years:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;0.1&lt;/strong&gt; second is about the limit for having the user feel that the system is reacting instantaneously, meaning that no special feedback is necessary except to display the result.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;1.0&lt;/strong&gt; second is about the limit for the user's flow of thought to stay uninterrupted, even though the user will notice the delay. Normally, no special feedback is necessary during delays of more than 0.1 but less than 1.0 second, but the user does lose the feeling of operating directly on the data.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;10 seconds&lt;/strong&gt; is about the limit for keeping the user's attention focused on the dialogue. For longer delays, users will want to perform other tasks while waiting for the computer to finish, so they should be given feedback indicating when the computer expects to be done. Feedback during the delay is especially important if the response time is likely to be highly variable, since users will then not know what to expect.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Anything over 1 second personally feel sluggish for me, and as such is my target when creating websites.&lt;/p&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-10-29T22:05:48.427" />
  <row Id="15694" PostTypeId="1" CreationDate="2010-10-29T22:11:55.170" Score="1" ViewCount="87" Body="&lt;p&gt;I am a programmer by education as well as training, and I want to jump into bioinformatics.&#xA;If this is not the right forum, then where should I post this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. I am based in the New England region of USA.&lt;/p&gt;&#xA;" OwnerUserId="934" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-10-30T06:23:43.493" LastActivityDate="2010-10-30T11:18:51.003" ClosedDate="2010-10-30T16:59:02.390" Title="Please suggest a good US website which has openings specifically in the field of Bioinformatics." Tags="&lt;career&gt;&lt;websites&gt;&lt;job-market&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="15695" PostTypeId="2" ParentId="15536" CreationDate="2010-10-29T22:19:00.867" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Coding standards designed to format printed code&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apparently, some of us used to print our code. You know, to paper. Really. I have no regrets about being &quot;born too late&quot; for this one. So if your coding standards (personal or corporate) require formatting lines to fit on a printed page, please just think of the trees.&lt;/p&gt;&#xA;" LastActivityDate="2010-10-29T22:19:00.867" />
  <row Id="15696" PostTypeId="2" ParentId="15673" CreationDate="2010-10-29T22:33:47.733" Score="1" ViewCount="" Body="&lt;p&gt;I don't think there is anything wrong with it, but there are a lot of other ways to address the same issues.  I also do not understand the love/loyalty it seems to generate with some users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, it has never fit what I was working on very well, so I have never had a place to use it long-term.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-10-29T22:33:47.733" />
  <row Id="15697" PostTypeId="2" ParentId="7188" CreationDate="2010-10-29T22:38:26.680" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://hop.perl.plover.com/&quot; rel=&quot;nofollow&quot;&gt;Higher Order Perl&lt;/a&gt; is the one you will need to read several times to fully understand and appreciate.&lt;/p&gt;&#xA;" OwnerUserId="215" LastActivityDate="2010-10-29T22:38:26.680" CommunityOwnedDate="2011-02-10T17:23:39.897" />
  <row Id="15698" PostTypeId="2" ParentId="15636" CreationDate="2010-10-29T22:46:19.630" Score="1" ViewCount="" Body="&lt;p&gt;What should be in a coding standard?   As little as possible.  Less rather more.  And with justification, please.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not because I'm some cowboy coder who wants no process, but because I've seen heavy coding specs with no logic behind it beyond (presumably) &quot;I found this on the 'Net somewhere back in '95&quot; that just end up becoming a bureaucratic nightmare to work with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people honestly seem to believe that by cranking up the standards they will see a corresponding increase in code &quot;quality&quot; and perhaps by that measure they will.  In the meantime they'll ignore architecture, performance, common sense and a bunch other things that end up mattering more than the number of lines in a file.&lt;/p&gt;&#xA;" OwnerUserId="1791" LastActivityDate="2010-10-29T22:46:19.630" CommunityOwnedDate="2011-05-04T06:06:33.080" />
  <row Id="15699" PostTypeId="2" ParentId="12773" CreationDate="2010-10-29T22:46:21.267" Score="2" ViewCount="" Body="&lt;p&gt;It depends heavily on your scope. If you are more of an enterprise Java/C# or hardcode C++ type then yes, go get a GoF and probably some other books on the topic too (see other answers). However, if you can imagine working in a dynamic language with higher order functions and more advanced concepts, you mostly won't need any of those patterns. Even worse: you'll get less productive since you'll be looking for patterns to implement instead of thinking in language terms and (ab)using its power. Looking at Python, Ruby, (modern) Perl, Erlang, Scala, Clojure, Lisp, you name it, in every one of those languages no patterns from GoF are needed, since frankly, the patterns are a good way to solve some problems inherent to languages without higher-order constructs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, learn the patterns anyway either way, but be critical of them and learn to use them properly and sparingly. They are not the silver bullet and never going to be.&lt;/p&gt;&#xA;" OwnerUserId="215" LastActivityDate="2010-10-29T22:46:21.267" CommentCount="4" />
  <row Id="15700" PostTypeId="2" ParentId="15670" CreationDate="2010-10-29T23:50:30.490" Score="1" ViewCount="" Body="&lt;p&gt;It's worth noting that F# also uses the &lt;code&gt;async&lt;/code&gt; keyword in its async workflows, which is pretty much the exact same thing as the new async functionality in C#5.  Therefore, I'd keep that one the same&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the &lt;code&gt;await&lt;/code&gt; keyword in F#, they just use &lt;code&gt;let!&lt;/code&gt; instead of &lt;code&gt;let&lt;/code&gt;.  C# doesn't have the same assignment syntax, so they need something on the right side of the &lt;code&gt;=&lt;/code&gt; sign.  As Benjol said, it functions the same as &lt;code&gt;yield&lt;/code&gt; so it should almost be a variant of that.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-10-29T23:50:30.490" CommentCount="2" />
  <row Id="15701" PostTypeId="2" ParentId="15670" CreationDate="2010-10-29T23:50:42.987" Score="0" ViewCount="" Body="&lt;p&gt;How about &lt;code&gt;complete&lt;/code&gt;, as in &quot;I want the task completed&quot;?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Task&amp;lt;byte[]&amp;gt; downloadTask = DownloadFileAsync(url);&#xA;byte[] data = complete downloadTask;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="135" LastActivityDate="2010-10-29T23:50:42.987" CommentCount="1" />
  <row Id="15702" PostTypeId="2" ParentId="15670" CreationDate="2010-10-30T00:00:34.727" Score="2" ViewCount="" Body="&lt;p&gt;I added to comments on Eric's blog too, I don't see any issues with using the same keyword &lt;code&gt;async&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var data = async DownloadFileAsync(url);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I'm just expressing that I want to download the file asynchronously. There's a bit of redundency here, &quot;async&quot; appears twice, because it's in the method name too. The compiler could be extra clever and detect the convention that methods ending in &quot;Async&quot; are infact async methods, and add that for us in the compiled code. So instead you might just wanna call&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var data = async DownloadFile(url);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;as opposed to calling the synchronous one&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var data = DownloadFile(url);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Heck, we should also be able to define them the same way, since the async keyword is there in our declaration, why must we manually add &quot;Async&quot; to each method name - the compiler can do it for us. &lt;/p&gt;&#xA;" OwnerUserId="356" LastActivityDate="2010-10-30T00:00:34.727" CommentCount="4" />
  <row Id="15703" PostTypeId="2" ParentId="15623" CreationDate="2010-10-30T00:10:11.950" Score="4" ViewCount="" Body="&lt;p&gt;I hate to say this but &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main reason I've seen programming questions fail to get answered is the fault of the asker rather than the answerer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can clearly remember one interview where I was being asked how to create a particular collection search algorithm that would run in &lt;em&gt;constant&lt;/em&gt; time (Same number of look ups regardless of how many items in the collection). I fumbled and bumbled on it for 20 minutes before giving up. It was then that this genius doing the interviewing proceeded to demonstrate the answer as being something that operated in &lt;em&gt;nearly&lt;/em&gt; constant, but still not constant time. A bit like saying &quot;Give me an answer of zero&quot; and then accepting 0.1. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Short of it is that I've seen too many cases where someone interviewing is asking a question that fails to meet the following criteria:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;They know all the possible correct answers.&lt;/li&gt;&#xA;&lt;li&gt;They know &lt;em&gt;why&lt;/em&gt; the correct answers are correct.&lt;/li&gt;&#xA;&lt;li&gt;They know how to actually provide enough information without giving the answer away.&lt;/li&gt;&#xA;&lt;li&gt;&quot;Problem solving&quot; questions do not rely on knowledge of an undisclosed fact (this is the biggest issue I've seen).&lt;/li&gt;&#xA;&lt;li&gt;It would take less than 1 minute to write the answer if you didn't have to figure it out. If it would take 5 minutes just to type the code, it really requires more problem solving than can be fit into the verbal portion of the interview.&lt;/li&gt;&#xA;&lt;li&gt;Questions are based on more than just &quot;A problem I ran into once or I was given in school and so you should know how to solve it &lt;em&gt;right now&lt;/em&gt;&quot;. I'm going to bet you had more than 2 minutes to answer it, why aren't you giving the candidate the same courtesy.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Seriously (1), I think asking people to write code in the verbal portion of an interview is stupid. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously (2), I think interviewing people without asking them to write code is also stupid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously (3), You should either give them &quot;homework&quot;, ask them to bring in code samples, or give them a laptop and couple of questions and quiet office to work on them. Then leave them alone while they work on them. I usually go with the latter approach as it limits their ability to get outside help (cheat) and I can time box it.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-10-30T00:10:11.950" CommentCount="2" />
  <row Id="15704" PostTypeId="2" ParentId="15670" CreationDate="2010-10-30T00:23:46.393" Score="2" ViewCount="" Body="&lt;p&gt;I like &lt;code&gt;yield until&lt;/code&gt;.  &lt;code&gt;yield while&lt;/code&gt;, already suggested, is great and doesn't introduce any new keywords, but I think &quot;until&quot; captures the behavior a little better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think &lt;code&gt;yield &amp;lt;something&amp;gt;&lt;/code&gt; is a great idea, because yield already captures the idea of making the rest of the method a continuation so well. Maybe someone can think of a better word than &quot;until.&quot;&lt;/p&gt;&#xA;" OwnerUserId="3044" LastActivityDate="2010-10-30T00:23:46.393" />
  <row Id="15705" PostTypeId="2" ParentId="966" CreationDate="2010-10-30T00:24:45.913" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.cryptonomicon.com/&quot; rel=&quot;nofollow&quot;&gt;Cryptonomicon&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Qh2De.jpg&quot; alt=&quot;Cryptonomicon Cover Art&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recommended for the morale boost.  :)&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-10-30T00:24:45.913" CommunityOwnedDate="2011-01-06T15:42:27.030" />
  <row Id="15706" PostTypeId="2" ParentId="9922" CreationDate="2010-10-30T00:25:10.063" Score="7" ViewCount="" Body="&lt;p&gt;A Hacker is a programmer who sees what he does as an art and a craft. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A developer is someone who codes for food. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hackers create things and share them. They find fascination &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developer follow a spec written by a &quot;Product Manager&quot; and deliver it to their boss, after if passes &quot;Quality Assurance&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1747" LastActivityDate="2010-10-30T00:25:10.063" />
  <row Id="15707" PostTypeId="2" ParentId="15694" CreationDate="2010-10-30T00:34:29.003" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.bioinformatics.org/&quot; rel=&quot;nofollow&quot;&gt;bioinformatics.org&lt;/a&gt; maintains a &lt;a href=&quot;http://www.bioinformatics.org/jobs/&quot; rel=&quot;nofollow&quot;&gt;job registry&lt;/a&gt;. &#xA;&lt;a href=&quot;http://biostar.stackexchange.com/&quot; rel=&quot;nofollow&quot;&gt;biostar.stackexchange.com&lt;/a&gt; is a Stack Exchange site for bioinformatics issues.&lt;/p&gt;&#xA;" OwnerUserId="4828" LastEditorUserId="4828" LastEditorDisplayName="" LastEditDate="2010-10-30T00:42:19.693" LastActivityDate="2010-10-30T00:42:19.693" />
  <row Id="15708" PostTypeId="2" ParentId="14315" CreationDate="2010-10-30T00:45:56.903" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Yeah, it's fixed. I added a scheduled task to reboot the server every night at 2 am.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... or any other &quot;fix&quot; that just masks the problem instead of actually solving it.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-10-30T00:45:56.903" CommunityOwnedDate="2010-10-30T00:45:56.903" />
  <row Id="15709" PostTypeId="2" ParentId="14315" CreationDate="2010-10-30T00:45:57.803" Score="0" ViewCount="" Body="&lt;p&gt;The bug occurred because [some value] wasn't high enough, so I increased the value.&lt;/p&gt;&#xA;" OwnerUserId="3473" LastActivityDate="2010-10-30T00:45:57.803" CommunityOwnedDate="2010-10-30T00:45:57.803" />
  <row Id="15710" PostTypeId="2" ParentId="2715" CreationDate="2010-10-30T00:54:38.790" Score="4" ViewCount="" Body="&lt;p&gt;I prefer the first because it is harder for me to see the mistake in this example.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (value &amp;gt; maximum);&#xA;{&#xA;    dosomething();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;than it is in this example&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (value &amp;gt; maximum); {&#xA;    dosomething();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The &lt;code&gt;; {&lt;/code&gt; just looks more wrong to me than a line ending with &lt;code&gt;;&lt;/code&gt; so I'm more likely to notice it.&lt;/p&gt;&#xA;" OwnerUserId="3473" LastActivityDate="2010-10-30T00:54:38.790" CommunityOwnedDate="2010-11-02T20:52:36.780" CommentCount="3" />
  <row Id="15711" PostTypeId="2" ParentId="14315" CreationDate="2010-10-30T01:24:36.023" Score="5" ViewCount="" Body="&lt;p&gt;My favorite 'Don't walk away. &lt;strong&gt;RUN&lt;/strong&gt;' red flag comment:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I don't see a problem with a 700 line method.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(usually an event handler where every possible event that can be raised on a window is funneled into a single event handler where the first thing it does is to do a switch on the control that the event originated on. Why have separate event handlers? Those would just clutter up the code!)&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-10-30T01:24:36.023" CommunityOwnedDate="2010-10-30T01:24:36.023" CommentCount="1" />
  <row Id="15712" PostTypeId="1" AcceptedAnswerId="15718" CreationDate="2010-10-30T01:25:26.603" Score="5" ViewCount="130" Body="&lt;p&gt;For those of you who work in big-design-up-front/waterfall groups: how much critical thinking and design is skipped in your design phase and left to your implementation phase? How complete and detailed are your functional and technical specifications delivered at the end of the design phase?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems to me that there's a lot of room for interpretation in the level of detail that needs to be provided at the end of the Design phase, and it irks me when the design phase is rushed and then managers get angry that the build phase doesn't progress like we're churning out widgets on an assembly line. On the other hand, a design phase that's complete enough to make the build phase operate like an assembly line practically includes the implementation phase with it - all that would be left in &quot;build&quot; is to type stuff into the editor. Of course, it also means your design phase is gigantic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I realize that this is a shortcoming of the waterfall model&lt;/strong&gt;, but if there's anyone out there that can provide some constructive advice: Where does one draw the line? What should the expectations for the design and build phases be, and what kinds of design shortcomings or mistakes should/shouldn't be tolerated in the build phase?&lt;/p&gt;&#xA;" OwnerUserId="3044" LastActivityDate="2010-10-30T04:07:31.723" Title="How much design happens in your implementation phase?" Tags="&lt;design&gt;&lt;development-methodologies&gt;&lt;waterfall&gt;" AnswerCount="2" FavoriteCount="4" />
  <row Id="15713" PostTypeId="2" ParentId="2715" CreationDate="2010-10-30T02:47:17.027" Score="7" ViewCount="" Body="&lt;p&gt;Use Python and sidestep the argument completely.&lt;/p&gt;&#xA;" OwnerUserId="1997" LastActivityDate="2010-10-30T02:47:17.027" CommunityOwnedDate="2010-10-30T02:47:17.027" CommentCount="1" />
  <row Id="15714" PostTypeId="2" ParentId="9922" CreationDate="2010-10-30T02:50:46.117" Score="0" ViewCount="" Body="&lt;p&gt;It's best to avoid the term completely since it doesn't have a consistent definition - everybody who sees it will come up with their own set of connotations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either way it's better than &quot;code monkey&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1997" LastActivityDate="2010-10-30T02:50:46.117" />
  <row Id="15715" PostTypeId="2" ParentId="14315" CreationDate="2010-10-30T03:51:53.717" Score="1" ViewCount="" Body="&lt;blockquote&gt;&quot;I'll just try this&quot;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Usually indicating hasn't a clue but will go and fiddle about and see what happens.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a valid technique for learning, in some cases. As a means of fixing reported defects it indicates a lack of willingness to think.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&quot;I don't like the source control system so I am not going to use it.&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Oh dear.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-10-30T03:51:53.717" CommunityOwnedDate="2010-10-30T03:51:53.717" CommentCount="2" />
  <row Id="15716" PostTypeId="2" ParentId="15712" CreationDate="2010-10-30T04:02:56.123" Score="3" ViewCount="" Body="&lt;p&gt;There is always something missed in the design phase. People are imperfect, and even with a perfect management that permits lots of design phase time without the pressure to move on to implementation, there will be things you missed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Likewise, in design, you enter a point of diminishing returns. For example, if designing a user interface and writing that in a spec, you can rapidly reach the point where the spec contains the layout, formatting, and all of the logic of a form. In which case its pretty much identical to the implementation, with perhaps only the messy bits of code glue being different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You do need to query the value of pushing the design too far: when design turns into writing the code because thats the clearest way to convey your intent, its time to ask if enough is enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Implementation, then, will start to uncover things forgotten or missed, as well as other implementation details that might have seemed easy but turn out not to be. (Perhaps the services you thought you might get from some library, or your OS, turn out to be not quite as expected... and you need to do some digging or write a whole lot of new code as a work-around, shim or patch.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Waterfall is a lovely simple model, great for explaining to management. It is also pretty far removed from the iterative and mixed high level /low level thinking that happens in reality.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;A bit more interesting commentary about this can be found in an older book: &quot;Decline and fall of the American Programmer&quot; by Ed Yourdon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know this is not a perfect answer, but then, programming &amp;amp; design methodologies are not perfect either. The best approach to them is to treat them as a Helpful System For Getting Things Done. The rules are there to HELP you, and to be broken when they get in the way. The breaking of the rules should be done intelligently, not simply because somebody felt like cutting code from day 1.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-10-30T04:02:56.123" />
  <row Id="15717" PostTypeId="2" ParentId="15567" CreationDate="2010-10-30T04:06:30.713" Score="1" ViewCount="" Body="&lt;p&gt;I've just upgraded at work too, and went down the desktop route. I was (and still am to a degree) interested in getting a laptop, mostly so I can go somewhere quiet and do some coding, but decided on a desktop for the following reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Speed of processors and number of cores - gives me the ability to stand up a couple of virtuals with no problems&lt;/li&gt;&#xA;&lt;li&gt;RAM - you can get a load of ram in a laptop, but as above, if you're running virtuals the more the merrier&lt;/li&gt;&#xA;&lt;li&gt;Multi monitor support - I've currently got 2 monitors, and don't think I could go to 1 monitor + laptop monitor - one of my colleagues has this, but it doesn't really cut it imo. Also, I'm hoping to get 3 monitors, which isn't really available on laptop (except if you've got a usb powered monitor)&lt;/li&gt;&#xA;&lt;li&gt;Working from home - seems to be one of the great things about laptops, but if I had one I think I'd end up working from home too often, getting too immersed in work and feeling like I need to keep the habit up - it's nice to have home for hanging out with the family &amp;amp; friends, as well as getting to bed at a normal time. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4458" LastActivityDate="2010-10-30T04:06:30.713" />
  <row Id="15718" PostTypeId="2" ParentId="15712" CreationDate="2010-10-30T04:07:31.723" Score="4" ViewCount="" Body="&lt;p&gt;i'm a huge fan of rapid prototyping, rapid incrementation, and rapid iteration. evolution rather than &quot;intelligent design&quot;. you're writing software to solve problems for people and people tend to change their minds and needs over time, even short periods of time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;it's nice to get requirements, a birds-eye view, and &quot;sign off&quot; as squared-away as possible before coding, but there is little point being dogmatic, its all fluid. be prepared to edit, amend, and throw away code as you go. the funny thing is you never arrive at a completion point anyway...most code seems to change while people care about it, and then once no one cares, it just gets deleted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;now to be certain this won't apply to must-work-the-first-time bits of software like aircraft control systems, nuclear reactor controls etc, but my guess is that isn't your case.&lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-10-30T04:07:31.723" CommentCount="1" />
  <row Id="15720" PostTypeId="2" ParentId="7188" CreationDate="2010-10-30T04:28:05.137" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/G%C3%B6del,_Escher,_Bach&quot; rel=&quot;nofollow&quot;&gt;Gödel, Escher, Bach&lt;/a&gt; by Douglas Hofstadter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He basically explains some of the hard Computer Science stuff while interweaving it with Bach's music and Escher's images.  (The Gödel theorem basically says there are things in Computer Science which cannot be proven to say &quot;this is true&quot; or &quot;this is false&quot;, because you can construct a mathematical version of &quot;This is a lie&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not an easy book, hence the rereadings, but very rewarding.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2011-02-10T15:50:05.683" LastActivityDate="2011-02-10T15:50:05.683" CommunityOwnedDate="2011-02-10T17:23:39.897" CommentCount="2" />
  <row Id="15721" PostTypeId="2" ParentId="14715" CreationDate="2010-10-30T04:44:06.383" Score="0" ViewCount="" Body="&lt;p&gt;Yes, FindBugs is useful and you should run it to understand the lists of the kinds of problems it identifies. It is particularly useful for programmers new to Java, who may make a lot of elementary mistakes that are hard to see. For example, if you overload &lt;code&gt;equals&lt;/code&gt; instead of overriding it, FindBugs can let you know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only downside is its &quot;false positive&quot; rate. That means you'll need to look at what it suggests and then determine if it really is a problem or not. &lt;strong&gt;But going through a list of potential false positives can be much better than wasting several hours on a bug that it could have found.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every (Java) code base should be run through something like FindBugs at least once every significant cycle.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;For some further context: &lt;strong&gt;FindBugs is a static tool&lt;/strong&gt;, meaning that it deduces problems from the source code only, and not what data you used on a live run. A nice complement to FindBugs is &lt;a href=&quot;http://www.cs.cmu.edu/~NatProg/whyline-java.html&quot; rel=&quot;nofollow&quot;&gt;Whyline&lt;/a&gt;. &lt;strong&gt;Whyline is a dynamic tool&lt;/strong&gt;. You execute your program instrumented with Whyline, and you can track the causes for why something was printed or drawn, and even why something was &lt;em&gt;not&lt;/em&gt; printed or drawn. Being able to link program output backward to the code the executed to display it is very valuable.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-10-30T17:53:17.447" LastActivityDate="2010-10-30T17:53:17.447" />
  <row Id="15722" PostTypeId="2" ParentId="15670" CreationDate="2010-10-30T05:09:38.030" Score="2" ViewCount="" Body="&lt;p&gt;I just want to register my vote for Aaron G's suggestion of &lt;code&gt;comefrom&lt;/code&gt; -- the first appropriate use I've seen of INTERCAL's &lt;a href=&quot;http://en.wikipedia.org/wiki/COMEFROM&quot; rel=&quot;nofollow&quot;&gt;COMEFROM&lt;/a&gt; statement. The idea is that it's sort of the opposite of GOTO (jumping away &lt;em&gt;from&lt;/em&gt; the GOTO statement) in that it makes some place in your code jump &lt;em&gt;to&lt;/em&gt; the COMEFROM statement.&lt;/p&gt;&#xA;" OwnerUserId="6744" LastActivityDate="2010-10-30T05:09:38.030" />
  <row Id="15723" PostTypeId="2" ParentId="2715" CreationDate="2010-10-30T05:22:44.773" Score="-2" ViewCount="" Body="&lt;p&gt;I've always gone for a middle ground:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if ( i&amp;lt;= 10){&#xA;    printf(&quot;hello&quot;);&#xA;    i++;&#xA;}&#xA;else&#xA;    printf(&quot;goodbye&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I find it the easiest  way to recognize code blocks at a glance while not taking up too much space or making the {} stick out.&lt;/p&gt;&#xA;" OwnerUserId="1011" LastActivityDate="2010-10-30T05:22:44.773" CommunityOwnedDate="2010-11-02T20:52:36.780" CommentCount="2" />
  <row Id="15724" PostTypeId="2" ParentId="14315" CreationDate="2010-10-30T05:46:31.947" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I know Dreamweaver.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Or:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I'm an expert at Microsoft FrontPage.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Usually listed as top selling points by a web developer who really knows their stuff.&lt;/p&gt;&#xA;" OwnerUserId="73" LastActivityDate="2010-10-30T05:46:31.947" CommunityOwnedDate="2010-10-30T05:46:31.947" CommentCount="1" />
  <row Id="15725" PostTypeId="2" ParentId="2715" CreationDate="2010-10-30T05:54:42.333" Score="1" ViewCount="" Body="&lt;p&gt;They should not; first method for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I look at the second one, because of the unused lines (those only having braces on it, other than the very last closing brace), it feels like it breaks the continuity of the code. I can't read it as fast because I need to take special attention to empty lines which usually mean a separation in code purpose or something like this, but in no case &quot;this line belongs to a curly brace&quot; (which only repeats the meaning of indentation).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, just like when you write text... adding an indentation at the beginning of a paragraph is superfluous if there is a blank line before it (double sign of paragraph change), there is no need to waste lines for braces when we are properly indenting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus, as already stated, it allows to fit more code in the screen, which otherwise is a little bit counterproductive.&lt;/p&gt;&#xA;" OwnerUserId="6742" LastActivityDate="2010-10-30T05:54:42.333" CommunityOwnedDate="2010-11-02T20:52:36.780" />
  <row Id="15726" PostTypeId="2" ParentId="10998" CreationDate="2010-10-30T06:44:03.300" Score="0" ViewCount="" Body="&lt;p&gt;jwz is simply off his rocker with that quote. regular expressions are no different than any language feature - easy to screw up, hard to use elegantly, powerful at times, inappropriate at times, often well documented, often useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the same could be said for floating point arithmetic, closures, object-orientation, asynchronous I/O, or anything else you can name. if you don't know what you are doing, programming languages can make you sad. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;if you think regexes are hard to read, try reading the equivalent parser implementation for consuming the pattern in question. often regexes win because they are more compact than full parsers...and in most languages, they are faster as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;don't be put off of using regular expressions (or any other language feature) because a self-promoting blogger makes unqualified statements. try things out for yourself and see what works for you.&lt;/p&gt;&#xA;" OwnerUserId="6664" LastEditorUserId="6664" LastEditorDisplayName="" LastEditDate="2010-10-30T06:55:56.673" LastActivityDate="2010-10-30T06:55:56.673" />
  <row Id="15728" PostTypeId="2" ParentId="7636" CreationDate="2010-10-30T07:13:51.107" Score="1" ViewCount="" Body="&lt;p&gt;I work in a company with lots of projects, so I always put the project name in, for people just looking at the overall list of checkins, or changing something in a base project for my sub project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it is a bug I'll put in the reference, and always put a short description of the bug, as I hate looking at a file's history, and see &quot;fixed bug #223&quot; and have to go look up bug #223 to find out what it was supposed to be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then lastly, I'll put anything that is counter intuitive or important to know. As someone else said, this sort of info should be in documentation somewhere as well, and a reference to that documentation should be included as well. But then how often does documentation get read? If the pertinent info is on a checkin comment, you are more likely to find the info looking back through the change list to see why something doesn't work anymore than go look at the documentation to see if anyone bothered to update it when they made the change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my comments look something like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Project xyz:&lt;/strong&gt; Fixed bug #839, the doozywhatsit doesn't change colour when the user selects a new colour from the wheel. Derived classes now have to call UpdateColour when changing the colour, theWikiThatNoOneReads/colourChangeInDoozyWhatsIt.&lt;/p&gt;&#xA;" OwnerUserId="5682" LastActivityDate="2010-10-30T07:13:51.107" CommunityOwnedDate="2011-02-28T14:46:06.263" />
  <row Id="15729" PostTypeId="2" ParentId="15381" CreationDate="2010-10-30T07:33:22.940" Score="2" ViewCount="" Body="&lt;p&gt;ThinkGeek  &lt;a href=&quot;http://www.thinkgeek.com/gadgets/electronic/8c52/?cpg=froogle&quot; rel=&quot;nofollow&quot;&gt;annoy-a-tron&lt;/a&gt; in any piece of equipment is a pretty good one.&lt;/p&gt;&#xA;" OwnerUserId="5292" LastActivityDate="2010-10-30T07:33:22.940" />
  <row Id="15730" PostTypeId="1" AcceptedAnswerId="15745" CreationDate="2010-10-30T07:38:49.557" Score="5" ViewCount="233" Body="&lt;p&gt;The general rule is to keep check-ins small and check-in often. But sometimes the task requires large changes to the underlying framework. Then checking in before compeleting the task will break the project until you check in the finished work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what strategies do people use to reduce the risk of losing work, or deciding something you are doing is the wrong approach, then changing your mind after removing the code and trying another approach?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I can, I'll check-in half done work commented out, or if it compiles and nothing is using new files I'll check them in. The larger the change the more likely I am to branch the project and then merge back when I have everything working again. Another option if the source control system allows is shelf sets, which are basically small branches. So when I finish for the day or come to a decision point, I'll shelve my changes, and then if something catastrophic happens, or I want to come back to that point, I can.&lt;/p&gt;&#xA;" OwnerUserId="5682" LastEditorUserId="5682" LastEditorDisplayName="" LastEditDate="2010-10-30T08:12:43.420" LastActivityDate="2010-11-02T16:35:23.243" Title="What are good source control check-in strategies for large tasks?" Tags="&lt;version-control&gt;" AnswerCount="4" CommentCount="4" FavoriteCount="1" />
  <row Id="15731" PostTypeId="2" ParentId="10998" CreationDate="2010-10-30T08:10:04.697" Score="1" ViewCount="" Body="&lt;p&gt;Regular expressions are more suitable for tokenisation than for full-scale parsing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, a surprisingly large set of things that programmers need to parse are parseable by a regular language (or, worse, almost parseable by a regular language and if you only write a little more code...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if one is habituated to &quot;aha, I need to pick text apart, I'll use a regular expression&quot;, it's easy to go down that route, when you need something that's closer to a push-down automaton, a CFG parser or even more powerful grammars. That usually ends in tears.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I think the quote isn't so much slamming regexps, they have their use (and well-used, they're very useful indeed), but the over-reliance on regexps (or, specifically, the uncritical choice of them).&lt;/p&gt;&#xA;" OwnerUserId="5084" LastActivityDate="2010-10-30T08:10:04.697" />
  <row Id="15732" PostTypeId="2" ParentId="15381" CreationDate="2010-10-30T08:29:49.243" Score="0" ViewCount="" Body="&lt;p&gt;I've had great success with &lt;code&gt;wall&lt;/code&gt;ing something like this to the victim's terminal while their boss was at their desk.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;                        8888  8888888&#xA;                  888888888888888888888888&#xA;               8888:::8888888888888888888888888&#xA;             8888::::::8888888888888888888888888888&#xA;            88::::::::888:::8888888888888888888888888&#xA;          88888888::::8:::::::::::88888888888888888888&#xA;        888 8::888888::::::::::::::::::88888888888   888&#xA;           88::::88888888::::m::::::::::88888888888    8&#xA;         888888888888888888:M:::::::::::8888888888888&#xA;        88888888888888888888::::::::::::M88888888888888&#xA;        8888888888888888888888:::::::::M8888888888888888&#xA;         8888888888888888888888:::::::M888888888888888888&#xA;        8888888888888888::88888::::::M88888888888888888888&#xA;      88888888888888888:::88888:::::M888888888888888   8888&#xA;     88888888888888888:::88888::::M::;o*M*o;888888888    88&#xA;    88888888888888888:::8888:::::M:::::::::::88888888    8&#xA;   88888888888888888::::88::::::M:;:::::::::::888888888     &#xA;  8888888888888888888:::8::::::M::aAa::::::::M8888888888       8&#xA;  88   8888888888::88::::8::::M:::::::::::::888888888888888 8888&#xA; 88  88888888888:::8:::::::::M::::::::::;::88:88888888888888888&#xA; 8  8888888888888:::::::::::M::&quot;@@@@@@@&quot;::::8w8888888888888888&#xA;  88888888888:888::::::::::M:::::&quot;@a@&quot;:::::M8i888888888888888&#xA; 8888888888::::88:::::::::M88:::::::::::::M88z88888888888888888 &#xA;8888888888:::::8:::::::::M88888:::::::::MM888!888888888888888888&#xA;888888888:::::8:::::::::M8888888MAmmmAMVMM888*88888888   88888888&#xA;888888 M:::::::::::::::M888888888:::::::MM88888888888888   8888888&#xA;8888   M::::::::::::::M88888888888::::::MM888888888888888    88888&#xA; 888   M:::::::::::::M8888888888888M:::::mM888888888888888    8888&#xA;  888  M::::::::::::M8888:888888888888::::m::Mm88888 888888   8888&#xA;   88  M::::::::::::8888:88888888888888888::::::Mm8   88888   888&#xA;   88  M::::::::::8888M::88888::888888888888:::::::Mm88888    88&#xA;   8   MM::::::::8888M:::8888:::::888888888888::::::::Mm8     4&#xA;       8M:::::::8888M:::::888:::::::88:::8888888::::::::Mm    2&#xA;      88MM:::::8888M:::::::88::::::::8:::::888888:::M:::::M&#xA;     8888M:::::888MM::::::::8:::::::::::M::::8888::::M::::M&#xA;    88888M:::::88:M::::::::::8:::::::::::M:::8888::::::M::M&#xA;   88 888MM:::888:M:::::::::::::::::::::::M:8888:::::::::M:&#xA;   8 88888M:::88::M:::::::::::::::::::::::MM:88::::::::::::M&#xA;     88888M:::88::M::::::::::*88*::::::::::M:88::::::::::::::M             &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4192" LastActivityDate="2010-10-30T08:29:49.243" CommentCount="1" />
  <row Id="15733" PostTypeId="2" ParentId="15730" CreationDate="2010-10-30T09:03:31.073" Score="2" ViewCount="" Body="&lt;p&gt;I think the answer is going to vary based on what sort of version control system you're using: centralised (e.g. subversion) or distributed (e.g. git). I don't have any real world experience with using a distributed source control system so my answer is based around what we do with subversion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there's a large change in progress which will break our trunk build over a period of time, or that will really disrupt the rest of the team in some other way, then we'll create a branch. I would say though that you should do as much as you can to avoid having to do that - most changes can sit side-by-side with the rest of the code with little effort. For example, you could trigger code paths into the new code (with simple if statements or you could inject the new versions based on config settings if you're using a DI framework). Then when you've finished you just change the the config to the new version, test everything, delete the unused code, test again and finally delete the config setting. You can't always do that but because of the overhead of maintaining a branch I think you should always check if that is possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do branch I think the mistake that I often see people make is not keeping their branch up-to-date with the trunk. You should be constantly merging changes from trunk into your branch while it exists so that when you've finished the reverse merge of everything back again is fairly trivial.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-30T09:03:31.073" />
  <row Id="15734" PostTypeId="2" ParentId="15015" CreationDate="2010-10-30T09:23:46.797" Score="0" ViewCount="" Body="&lt;p&gt;Take a look at the following demand charts (for the UK), if you're reading this in a few months/years then the charts will have changed so I've also described them:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.itjobswatch.co.uk/jobs/uk/java.do&quot; rel=&quot;nofollow&quot;&gt;Java&lt;/a&gt;: demand bottomed out in Jan 2009, but has been steadily rising since. 18065 jobs in the 3 months to end of October 2010, 9673 jobs in same period in 2009, 17959 in 2008.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.itjobswatch.co.uk/jobs/uk/csharp.do&quot; rel=&quot;nofollow&quot;&gt;C#&lt;/a&gt;: interestingly demand (% of adverts from total) has been steadily rising. 18745 jobs in the 3 months to end of October 2010, 11804 jobs in same period in 2009, 23257 in 2008.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.itjobswatch.co.uk/jobs/uk/banking.do&quot; rel=&quot;nofollow&quot;&gt;Banking&lt;/a&gt;: picked as an example of an industry which was hit hard. 13445 jobs in the 3 months to end of October 2010, 5948 jobs in same period in 2009, 12155 in 2008.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Across the board I think the numbers bear out that the job market is recovering although in general not back to where they were in 2008. Interestingly the maximum salaries (often an indication of how hard it is to find good staff) peaked in early 2010 but have been dropping since - although the average salaries have not changed a great deal. I think this points to the situation being more complex than a simple recovery...particularly as in the UK it looks like the economy is going to dip again...&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-30T09:23:46.797" />
  <row Id="15735" PostTypeId="2" ParentId="2815" CreationDate="2010-10-30T09:32:32.803" Score="2" ViewCount="" Body="&lt;p&gt;Sometimes I miss &lt;a href=&quot;http://www.parashift.com/c%2B%2B-faq-lite/friends.html&quot; rel=&quot;nofollow&quot;&gt;friend class and functions&lt;/a&gt;. They are quite powerful in some scenarios.&lt;br&gt;&#xA;Apart from that they can also help in unit testing private methods of a class.&lt;/p&gt;&#xA;" OwnerUserId="3414" LastActivityDate="2010-10-30T09:32:32.803" CommunityOwnedDate="2010-10-30T09:32:32.803" CommentCount="1" />
  <row Id="15736" PostTypeId="1" CreationDate="2010-10-30T09:47:30.380" Score="14" ViewCount="640" Body="&lt;p&gt;A lot of people in the coding community talk about continuous improvement, deliberate practice and so-on - but when they talk about their current practices it's almost like they 'sprang fully formed from the loins of Zeus' because you don't hear about how their opinions changed over time or what they learnt recently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every now and then though I go to a talk, or read a book, or talk to someone and they open up a bit more and I find that I learn a lot from these insights.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, if you had to pick &lt;strong&gt;one&lt;/strong&gt; thing from the last 12 months that you learnt what would it be?&lt;/p&gt;&#xA;" OwnerUserId="1362" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:08:24.327" LastActivityDate="2010-11-16T15:08:24.327" Title="What's the most important, useful or enlightening thing you learnt in the last 12 months?" Tags="&lt;learning&gt;&lt;self-improvement&gt;" AnswerCount="17" CommentCount="1" FavoriteCount="6" />
  <row Id="15737" PostTypeId="2" ParentId="15736" CreationDate="2010-10-30T09:56:15.990" Score="3" ViewCount="" Body="&lt;p&gt;Here's my answer to my own question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About a year ago it clicked that automated acceptance tests needed to be not automated versions of the tests that our testers would have done manually. Focussing on tests against single specifications rather than trying to hit as much as possible in a single pass made the tests much simpler, easier to read and also helps to encourage incremental delivery.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-30T09:56:15.990" />
  <row Id="15738" PostTypeId="2" ParentId="15736" CreationDate="2010-10-30T10:21:18.073" Score="11" ViewCount="" Body="&lt;p&gt;After learning some &lt;a href=&quot;http://clojure.org/&quot; rel=&quot;nofollow&quot;&gt;Clojure&lt;/a&gt;, I started to realize the usefulness of &lt;strong&gt;functional programming&lt;/strong&gt;, and my Java coding style has been heavily affected by that. Contrary to popular belief, a functional programming &lt;em&gt;language&lt;/em&gt; is not an absolute prerequisite for doing some functional programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's possible to incorporate quite a few elements of functional programming into an imperative language such as Java, and even if it's not always idiomatic, it can be highly beneficial in some problems. For example, anonymous classes are roughly equal to closures, as described in &lt;a href=&quot;http://en.wikipedia.org/wiki/Closure_(computer_science)#Java&quot; rel=&quot;nofollow&quot;&gt;wikipedia&lt;/a&gt;. Lazy evaluation should be a norm rather than something unusual. Immutability can hardly be overused. Just get over the (almost) obsolete idea that constructing new objects instead of mutating existing ones is expensive because of GC and heap consumption - in 99.9 % of cases it's simply not relevant. In fact, parallel processing can flip even the efficiency argument other way round: creating new immutable objects can be &lt;em&gt;cheaper&lt;/em&gt; than mutating existing ones, because you get rid of locking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More info on doing FP in pure Java &lt;a href=&quot;http://www.ibm.com/developerworks/java/library/j-fp.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;, &lt;a href=&quot;http://www.drdobbs.com/184406320&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;, &lt;a href=&quot;http://functionaljava.org/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://code.google.com/p/lambdaj/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-10-30T13:02:31.060" LastActivityDate="2010-10-30T13:02:31.060" CommentCount="6" />
  <row Id="15739" PostTypeId="2" ParentId="15736" CreationDate="2010-10-30T10:24:39.823" Score="10" ViewCount="" Body="&lt;p&gt;Even if you have a superb team, and competent management for that team, your job is still not safe. Upper management can still do foolish things, like disband your entire Directorate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short: politics matters, and sometimes the politics that affect you, you cannot control.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-30T10:24:39.823" CommentCount="2" />
  <row Id="15740" PostTypeId="2" ParentId="15381" CreationDate="2010-10-30T10:32:13.590" Score="5" ViewCount="" Body="&lt;p&gt;On a Unix-box aliasing &lt;code&gt;ls&lt;/code&gt; to &lt;code&gt;logout&lt;/code&gt; is rather sweet.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-10-30T11:25:36.660" LastActivityDate="2010-10-30T11:25:36.660" CommentCount="2" />
  <row Id="15741" PostTypeId="2" ParentId="15736" CreationDate="2010-10-30T10:34:02.777" Score="7" ViewCount="" Body="&lt;p&gt;Doing test driven development from the start on a customer delivery to see how it would affect the code quality, and only running from within the JUnit launcher in Eclipse.  It resulted in a better product.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-30T10:34:02.777" CommentCount="1" />
  <row Id="15742" PostTypeId="1" AcceptedAnswerId="15769" CreationDate="2010-10-30T10:36:53.447" Score="7" ViewCount="247" Body="&lt;p&gt;From my experience in the current working environment, one's professional development is definitely in the hands of the individual. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I see it there are several routes to the same objective based on cost, time and availability &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;External Offsite training Online&lt;/li&gt;&#xA;&lt;li&gt;Training providers (itunes U,Pluralsight etc) &lt;/li&gt;&#xA;&lt;li&gt;Books &lt;/li&gt;&#xA;&lt;li&gt;Specialist /user groups  &lt;/li&gt;&#xA;&lt;li&gt;Specialist web sites (Channel9, stackoverflow,dnrtv,codeplex etc)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;What would you consider to be the best approach (blend) to continued learning and maintaining a professional standard of work?&lt;/p&gt;&#xA;" OwnerUserId="4960" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-10-30T10:55:29.707" LastActivityDate="2010-10-30T19:18:58.020" Title="Continuous Professional development – the best approach" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="1" />
  <row Id="15743" PostTypeId="2" ParentId="15623" CreationDate="2010-10-30T10:38:47.823" Score="3" ViewCount="" Body="&lt;p&gt;Yes really. Probably not 99% but still pretty high. I used to interview computer science students for internships and full time hires. I'd interview about 25 students at a college. &#xA;We were told not to ask the same questions, because the students talked. I quickly learned that it didn't matter, because I would only get 3 or 4 students out of the 25 who could answer my first question. &quot;Write strcmp&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I asked them to write a function to compare two strings. Maybe to use the function to sort words for a dictionary. You would be amazed at the number of students who didn't understand how to compare two words, let alone know how to write the function. And some of these students claimed they got all A's in CSc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing is programming is VERY DIFFICULT. A lot of people like to think they know how to program, but they don't. &lt;/p&gt;&#xA;" OwnerUserId="6749" LastActivityDate="2010-10-30T10:38:47.823" CommentCount="1" />
  <row Id="15744" PostTypeId="2" ParentId="15736" CreationDate="2010-10-30T10:39:54.517" Score="14" ViewCount="" Body="&lt;p&gt;I learned that it takes only one rotten manager to spoil the whole project, but it takes lots of good programmers to clean up the mess afterwards.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-10-30T11:22:51.547" LastActivityDate="2010-10-30T11:22:51.547" CommentCount="4" />
  <row Id="15745" PostTypeId="2" ParentId="15730" CreationDate="2010-10-30T10:41:02.020" Score="8" ViewCount="" Body="&lt;p&gt;I use git, so my answer is &quot;branch&quot;. Branch, and commit piece-meal as you complete the various bits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Push your commits upstream as you're happy, so your colleagues can review the changes without disrupting trunk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When everyone's happy with the code, merge and you're done!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(What I tend to do for relatively long-running branches is periodically merge trunk (master, in git terminology) into my branch, so the two branches don't diverge too radically.)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-10-30T10:41:02.020" CommentCount="3" />
  <row Id="15746" PostTypeId="2" ParentId="15730" CreationDate="2010-10-30T10:44:42.107" Score="0" ViewCount="" Body="&lt;p&gt;Just like the usual comment from SQL server people &quot;it depends&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can, i would suggest you create a branch on the code so you can continue to apply small checkins of your work. Once completed, perform a merge backinto the main trunk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes there is some chance of reowrk duplication of effort doing this. but at least you will maintian a trail of work you can rollback it it proves to be a dead end.&lt;/p&gt;&#xA;" OwnerUserId="4960" LastActivityDate="2010-10-30T10:44:42.107" />
  <row Id="15747" PostTypeId="2" ParentId="15742" CreationDate="2010-10-30T10:52:17.547" Score="3" ViewCount="" Body="&lt;p&gt;If you are on a team, I'd say the best way for learning is to work together with your peers and learn from each other.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-10-30T10:52:17.547" CommentCount="1" />
  <row Id="15748" PostTypeId="2" ParentId="13109" CreationDate="2010-10-30T11:09:31.677" Score="1" ViewCount="" Body="&lt;p&gt;One book i found useful when it came out was &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1590595645&quot; rel=&quot;nofollow&quot;&gt;Practical .NET for Financial Markets&lt;/a&gt; by Yogesh Shetty and Samir Jayaswal. &lt;/p&gt;&#xA;" OwnerUserId="4960" LastEditorUserId="7454" LastEditorDisplayName="" LastEditDate="2011-04-08T13:56:35.427" LastActivityDate="2011-04-08T13:56:35.427" />
  <row Id="15749" PostTypeId="2" ParentId="15736" CreationDate="2010-10-30T11:09:52.040" Score="3" ViewCount="" Body="&lt;p&gt;I learned how a mathematical concept like Semirings applies to algorithms. With this you can show how some algorithms are the same except for using a different semiring. This shouldn't be that strange for me as a programmer, but my head was blown.&lt;/p&gt;&#xA;" OwnerUserId="1797" LastActivityDate="2010-10-30T11:09:52.040" CommentCount="2" />
  <row Id="15750" PostTypeId="2" ParentId="15742" CreationDate="2010-10-30T11:13:13.113" Score="2" ViewCount="" Body="&lt;p&gt;The best approach would be to get books and update you knowledge on tools you wish to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specialist websites should help you to answer some of your main questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course we have to consider that you should have, something like:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Willingness to experiment&lt;/strong&gt;: try different commands until he got the software to do what you want. Try a few fixes on your own software before asking for help! &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ability to learn independently&lt;/strong&gt;: never wait for an explanation, go for it! Hard-earned knowledge never fades and provides motivation when the next challenge appears!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Great sense of curiosity&lt;/strong&gt;: ask your self how does this work? what does this code do? what about if you try a particular sequence of commands? Master your programs. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-30T11:13:13.113" />
  <row Id="15751" PostTypeId="2" ParentId="15742" CreationDate="2010-10-30T11:14:09.417" Score="4" ViewCount="" Body="&lt;p&gt;In addition to what Martin wrote, I will add the following:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most effective way to learn is &lt;strong&gt;practice&lt;/strong&gt;. Unless you are Raymond Babbitt of course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So try to ask for tasks that you don't master completely. It will forces you to &lt;strong&gt;learn&lt;/strong&gt; the appropriate technologies to complete it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Example&lt;/em&gt;&lt;/strong&gt;: You don't know anything about &lt;code&gt;WCF&lt;/code&gt;? Take that task that state &quot;&lt;code&gt;build a WCF service for the customer object&lt;/code&gt;&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Just noticed that I already answer the same question &lt;a href=&quot;http://programmers.stackexchange.com/questions/8721/how-do-i-develop-my-coding-skills&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I hear, I know. I see, I remember. I do, I understand. [Confucius]&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-30T11:22:50.027" LastActivityDate="2010-10-30T11:22:50.027" />
  <row Id="15752" PostTypeId="2" ParentId="15694" CreationDate="2010-10-30T11:18:51.003" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.newscientistjobs.com/jobs/browse/biology_bioinformatics.htm&quot; rel=&quot;nofollow&quot;&gt;Here is a mix of some openinings&lt;/a&gt;, perhaps you may find something in your region.&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-30T11:18:51.003" />
  <row Id="15753" PostTypeId="2" ParentId="13109" CreationDate="2010-10-30T11:21:24.463" Score="1" ViewCount="" Body="&lt;p&gt;Here is a book on C# programming language for financial markets&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0470870613&quot; rel=&quot;nofollow&quot;&gt;Applied C# in Financial Markets&lt;/a&gt; (The Wiley Finance Series) &lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-30T11:21:24.463" CommentCount="1" />
  <row Id="15754" PostTypeId="2" ParentId="13384" CreationDate="2010-10-30T11:21:43.887" Score="2" ViewCount="" Body="&lt;p&gt;Planning to often tends to make the bigger picture get lost in all the details, and you just end up spinning your wheels. That is a huge risk. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer using XP (or Scrum) which says that you should plan once at the beginning of each iteration, which I find most effective when they are 1-2 weeks in length. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, there are some very cool things in &lt;a href=&quot;http://www.crisp.se/kanban&quot; rel=&quot;nofollow&quot;&gt;Kanban&lt;/a&gt; which encourages planning to happen when needed, though I personally think Kanban is better suited for maintenance and support situations rather than when starting development from scratch.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-10-31T21:19:26.913" LastActivityDate="2010-10-31T21:19:26.913" />
  <row Id="15755" PostTypeId="2" ParentId="15736" CreationDate="2010-10-30T11:25:25.273" Score="0" ViewCount="" Body="&lt;p&gt;I would say using Microsoft unit testing within Visual Studio 2010. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found it really easy to debug a specific test method. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I could run anytime my test project in order to see if business layer application is working fine. The testing process guarantees that my team should have no problems when deploying the complete solution for our website visitors.&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-30T11:25:25.273" />
  <row Id="15756" PostTypeId="2" ParentId="15736" CreationDate="2010-10-30T11:26:11.993" Score="3" ViewCount="" Body="&lt;p&gt;Besides politics &lt;a href=&quot;http://programmers.stackexchange.com/questions/15736/whats-the-most-important-useful-or-enlightening-thing-you-learnt-in-the-last-12/15739#15739&quot;&gt;Frank Shearar mentioned&lt;/a&gt;, I've recently discovered &lt;a href=&quot;http://docs.jquery.com/Qunit&quot; rel=&quot;nofollow&quot;&gt;QUnit&lt;/a&gt; and &lt;a href=&quot;http://siliconforks.com/jscoverage/&quot; rel=&quot;nofollow&quot;&gt;JSCoverage&lt;/a&gt; which made my day. And month. Never thought it would be possible to unit test JavaScript &lt;strong&gt;with&lt;/strong&gt; code coverage, but there it is... :-)&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-10-30T11:26:11.993" CommentCount="1" />
  <row Id="15758" PostTypeId="2" ParentId="15681" CreationDate="2010-10-30T11:35:14.017" Score="2" ViewCount="" Body="&lt;p&gt;I would go for Microsoft Expression Blend. I remember that earlier version had a buggy source code editor, but I hope this one is fixed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/expression/products/blend_overview.aspx&quot; rel=&quot;nofollow&quot;&gt;http://www.microsoft.com/expression/products/blend_overview.aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-30T11:35:14.017" />
  <row Id="15759" PostTypeId="1" CreationDate="2010-10-30T11:45:50.393" Score="6" ViewCount="527" Body="&lt;p&gt;Pretty much every CPU has some internal code name before it is released to the public (and even after it hangs on). But what about software projects? Are those usually code named? Do you code name your projects?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-11-16T14:09:00.597" Title="Do you use code names for your projects?" Tags="&lt;project&gt;" AnswerCount="16" CommentCount="2" FavoriteCount="2" />
  <row Id="15760" PostTypeId="2" ParentId="15759" CreationDate="2010-10-30T12:07:24.720" Score="19" ViewCount="" Body="&lt;p&gt;Yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are not sure what we are going to call the project/app we are working on at the mimute so we came up with a quick code name so we didn't waste time thinking about a name when it isn't strictly relevant.&lt;/p&gt;&#xA;" OwnerUserId="6457" LastActivityDate="2010-10-30T12:07:24.720" CommentCount="1" />
  <row Id="15761" PostTypeId="2" ParentId="15681" CreationDate="2010-10-30T12:12:14.703" Score="2" ViewCount="" Body="&lt;p&gt;If you can afford it I would definitely recommend VS2010 Premium w/ MSDN, which therefore gives you access to Blend.  Using Silverlight from a developer perspective, I find that some things are easier to accomplish in VS2010, and some things are easier in Blend.  In fact some things are just impossible through the VS2010 designer that are trivial in Blend.  Knowing and using both definitely gives you an advantage.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-10-30T12:12:14.703" />
  <row Id="15762" PostTypeId="2" ParentId="14525" CreationDate="2010-10-30T12:14:03.723" Score="1" ViewCount="" Body="&lt;p&gt;Looking at the (edited) post, it's clear that this is a badly denormalized table.  What should you do?  As I see it, you've got a few options:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Scream at your coworker to learn how to do his/her/its job.  Unlikely to be productive but will probably convince other coworkers not to mess with you.  A reputation as a screaming maniac can be useful (don't ask me how I know).&lt;/li&gt;&#xA;&lt;li&gt;Scream at boss that coworker is an idiot.  Predict disaster, then actively work to sabotage project.  Blame everything on the database design produced by incompetent coworker.  May lead directly to...&lt;/li&gt;&#xA;&lt;li&gt;Quit.  Best if it's your idea, but #2 may lead to involuntary resignation.  Try not to scrape knees on asphalt/concrete/gravel if hurled from window by enraged boss and/or coworkers.  (Note that prior study is IMPORTANT here.  Your chances of survival decrease markedly if bosses office is above the ground floor and you find yourself being propelled bodily out the window.  &lt;strong&gt;Plan ahead!!&lt;/strong&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Drink heavily - or, move to California and light up (assuming prop. 19 (or whatever) passes).  Nothing like a few shots and a doobie to improve one's outlook on one's coworkers (or so I've heard).  (Public service announcement: KIDS!  These people are professionals!  DON'T try this at home!)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Share and enjoy.&lt;/p&gt;&#xA;" OwnerUserId="4848" LastActivityDate="2010-10-30T12:14:03.723" CommentCount="1" />
  <row Id="15763" PostTypeId="2" ParentId="15759" CreationDate="2010-10-30T12:29:50.643" Score="8" ViewCount="" Body="&lt;p&gt;Never.  All of our applications support some part of the company's business and by the time the project gets to us, the name is already established.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-10-30T22:33:48.180" LastActivityDate="2010-10-30T22:33:48.180" CommentCount="2" />
  <row Id="15764" PostTypeId="2" ParentId="15742" CreationDate="2010-10-30T12:31:27.910" Score="5" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Read! Mainly blogs in my case&lt;/li&gt;&#xA;&lt;li&gt;Chat! Make time to discuss and validate with your peers&lt;/li&gt;&#xA;&lt;li&gt;Seminars and workshops, instead of (rather dry and formulaic) classroom training&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-10-30T12:31:27.910" />
  <row Id="15765" PostTypeId="2" ParentId="2654" CreationDate="2010-10-30T12:38:17.753" Score="12" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;All Languages: Write readable code instead of comments&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A comment followed by a block of code can be replaced by a method which states the intent just as well as the comment, and makes the code more modular and reusable as&#xA;well. &lt;/li&gt;&#xA;&lt;li&gt;It makes refactoring happen more often. &lt;/li&gt;&#xA;&lt;li&gt;It helps us write simple, &lt;a href=&quot;http://blog.workingsoftware.se/2010/11/readable-code-instead-of-comments.html&quot; rel=&quot;nofollow&quot;&gt;readable&lt;/a&gt; &lt;a href=&quot;http://franksworld.com/blog/archive/2010/07/01/12035.aspx&quot; rel=&quot;nofollow&quot;&gt;clean code&lt;/a&gt;. Readable code is a joy to work with. &lt;/li&gt;&#xA;&lt;li&gt;It tends to make methods short and sweet. &lt;/li&gt;&#xA;&lt;li&gt;It avoids comments getting out of sync with the code &lt;/li&gt;&#xA;&lt;li&gt;It challenges you to rewrite commented code that is hard to understand.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Compare this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public void update() {&#xA;  // Fetch the data from somewhere&#xA;  lots of lines of;&#xA;     code;&#xA;     for;&#xA;       fetching;&#xA;     data;&#xA;  from somewhere;&#xA;  // Sort the data&#xA;  more lines of;&#xA;      code;&#xA;         which sorts;&#xA;         stuff;&#xA;      around;&#xA;  a bit and then;&#xA;  // Update the database&#xA;  lines of code;&#xA;      which uses;&#xA;         some lib;&#xA;         to update;&#xA;            using iteration;&#xA;            and logic; &#xA;      the database;&#xA;  done;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;With this version where comments are replaced with function calls:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public void update() {&#xA;    data = fetchData();&#xA;    sorted = sortResults(data);&#xA;    updateDatabase(sorted);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-12-04T22:11:19.210" LastActivityDate="2010-12-04T22:11:19.210" CommentCount="4" />
  <row Id="15766" PostTypeId="2" ParentId="15759" CreationDate="2010-10-30T12:38:24.743" Score="2" ViewCount="" Body="&lt;p&gt;No, but I did try to persuade my Boss that we should start such a practice based on woodland creatures.&#xA;Mainly due to wanting to have conversations with the Directors about project Badger and Squirrel... or if it was a project we didn't like... Woodlouse. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was honest about my reasons to the Boss but he didn't buy it... :(&lt;/p&gt;&#xA;" OwnerUserId="5148" LastActivityDate="2010-10-30T12:38:24.743" CommentCount="3" />
  <row Id="15767" PostTypeId="2" ParentId="15759" CreationDate="2010-10-30T12:48:12.510" Score="0" ViewCount="" Body="&lt;p&gt;We have internal names for our products but eventually our product managers decide on a cool sounding name.&lt;/p&gt;&#xA;" OwnerUserId="4930" LastActivityDate="2010-10-30T12:48:12.510" />
  <row Id="15768" PostTypeId="2" ParentId="15730" CreationDate="2010-10-30T12:55:49.923" Score="1" ViewCount="" Body="&lt;p&gt;In out team we use subversion, and we normally commit small changes directly to the trunk.  For larger tasks, the developer working on it typically creates a private branch, which is merged into the trunk once it is done.  Then the private branch is deleted.  Naturally, while the private branch exist its owner should check into it often.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We try to avoid having long-lived branches and trunk-to-branch merges, because that requires careful bookkeeping.  Instead we have relatively short-lived branches that are only merged back to the trunk once, and get deleted soon after.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And we have a rule that nothing can be committed or merged to the trunk until at least one other person looks through the changes and approves them.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastEditorUserId="4365" LastEditorDisplayName="" LastEditDate="2010-11-02T16:35:23.243" LastActivityDate="2010-11-02T16:35:23.243" />
  <row Id="15769" PostTypeId="2" ParentId="15742" CreationDate="2010-10-30T13:11:41.030" Score="7" ViewCount="" Body="&lt;p&gt;However you learn, you should always think about works for you. What works for me may not work for you, and vice versa. Here's what works for me:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Always learn from more than one source.&lt;/li&gt;&#xA;&lt;li&gt;Always put into practice what you're learning whilst you're learning (if that isn't possible then as soon as you can afterwards).&lt;/li&gt;&#xA;&lt;li&gt;Try not to learn about something in isolation. Sometimes you can't avoid it, but try to understand the context in which things are done and alternative approaches. In particular try to understand the consequences (good and bad) of doing something a certain way.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Here are the sources of information that I find valuable in order of usefulness to me.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Books&lt;/strong&gt;. For me these work really well, you're presented with a coherent (hopefully!) block of knowledge. They're easy to use, cross-reference and if you're not intending to read it cover to cover you can often pick up extra knowledge by page flicking (something I find missing from electronic resources where I find that sometimes I fall into the trap of going looking for the answer I'm expecting).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Colleagues&lt;/strong&gt;. Probably the best way to learn about something is to work with someone who knows the topic well and is willing to share that knowledge. It can also be useful to learn with someone else who also doesn't know much - but beware of jointly coming to the wrong conclusions and developing bad practices.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Online Resources&lt;/strong&gt;. Books can never keep up with the speed of development and discussion in the world of software development. If you want to keep up to date you &lt;em&gt;need&lt;/em&gt; to read blogs, mailing lists and so on. You'll also got detail on topics that either aren't mainstream enough or are too narrow to have had a book out yet.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Real-world Meetups&lt;/strong&gt;. These are things like conferences and user groups. I think these are often nice introductions to new topics and good for confirming what you already think/know about - but don't expect really in depth coverage unless the event is extremely focussed. Where the real value for me is that you often get a lot more honesty than you get from books and blogs, especially during the Q&amp;amp;A part.&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Formal Courses&lt;/strong&gt;. A lot of people sneer at formal courses - I suspect that's because they've not been to really good ones. Formal courses are really good when you need to get up to speed with something really new really quickly. Providing the person delivering the course knows their stuff you will also get a good feel for the thinking behind something not just the technical part. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Self-taught people (and all good programmers will be mostly self taught as soon as they're more than a couple of years out of the last course they did) tend to pick up bad habits without realising it because what they're doing has worked in the context that they're in. That knowledge tends to not hold up when put into a different context. Sometimes it doesn't matter, you just recalibrate what you've learnt, but sometimes it does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sadly good courses are rarely cheap and often aren't associated with any sort of certification - so picking a good course is both hard and (financially) dangerous so you could end up doing a rubbish course and having paid through the nose for it. Still, I recommend that people do a formal course every now and then to supplement self development.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-30T13:11:41.030" />
  <row Id="15770" PostTypeId="2" ParentId="15681" CreationDate="2010-10-30T13:24:16.200" Score="2" ViewCount="" Body="&lt;p&gt;You can actually develop Silverlight applications with the Web Express edition of Visual Studio so the Pro version would work to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also recommend getting Expression Blend - if only to get access to the options for copying and modifying style templates.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-30T13:24:16.200" />
  <row Id="15771" PostTypeId="2" ParentId="15736" CreationDate="2010-10-30T13:48:42.583" Score="1" ViewCount="" Body="&lt;p&gt;reading about the SOLID principles&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-10-30T13:48:42.583" />
  <row Id="15772" PostTypeId="2" ParentId="15759" CreationDate="2010-10-30T13:52:27.090" Score="0" ViewCount="" Body="&lt;p&gt;Our internal products like test tools, all have cool names.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our main products (the ones that are sold to customers) have an internal code name which is never exposed out. For customers, the product name fits a series like Product1000 Product5000 indicating relative capability.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-30T13:52:27.090" />
  <row Id="15773" PostTypeId="2" ParentId="15623" CreationDate="2010-10-30T14:12:29.993" Score="5" ViewCount="" Body="&lt;p&gt;Some thoughts:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;I wouldn't hold it against someone if their program had some bugs but they clearly had the right idea. Debugging is part of programming.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I think it is sad that so many people are applying for jobs they don't know they can't do. Seems to me like a problem with the economy.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It is really easy to ask people bad questions, where the only &quot;correct&quot; answer is the one the interviewer would give.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-10-30T14:12:29.993" CommentCount="2" />
  <row Id="15774" PostTypeId="2" ParentId="15736" CreationDate="2010-10-30T14:19:08.283" Score="2" ViewCount="" Body="&lt;p&gt;My top three thanks for the last programming year would go to the following (in descending order of importance and gratefulness):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;the functional programming paradigm&lt;/strong&gt; for opening my mind to other, often more elegant and terse ways of expressing ideas and algorithms in code. I feel that my overall programming skill has improved much in a very short time, thanks to functional programming ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(My personal thanks go to Tomáš Petříček for his excellent book &lt;a href=&quot;http://functional-programming.net/&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Real-world functional programming&lt;/em&gt;&lt;/a&gt;.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;both &lt;strong&gt;dependency injection&lt;/strong&gt; and &lt;strong&gt;unit testing&lt;/strong&gt; have taught me that object composition is arguably the best way for creating complex (object-oriented) systems (and that class inheritance isn't nearly as important as I used to think). Both have taught me and made me think about how to best compose systems and how to write components that are easy to use, yet still flexible enough for reuse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(If I had to mention a good teaching resource, I'd say Roy Osherove's &lt;a href=&quot;http://artofunittesting.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Art of Unit Testing&lt;/em&gt;&lt;/a&gt;.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;All of these taken together have resulted in me writing code that generally has fewer bugs than before, because I'm now writing code that's far easier to understand and get wrong than what I previously put out.&lt;/p&gt;&#xA;" OwnerUserId="4906" LastActivityDate="2010-10-30T14:19:08.283" />
  <row Id="15775" PostTypeId="2" ParentId="15391" CreationDate="2010-10-30T14:39:22.057" Score="0" ViewCount="" Body="&lt;p&gt;I think it's more important to focus on communicating a single topic than getting hung up on length (within reason). A lot of things can be done in 5-15 minutes - but don't shy away from something longer if the audience is prepared for it and it's required.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By about an hour the audience is going to be fatigued - so if you're going to be doing something that's maybe 45min+ then you should probably have a small change of pace in the middle - maybe an aside or something - to wake people up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More than an hour and people will be getting uncomfortable so try not to go over that.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-30T14:39:22.057" />
  <row Id="15776" PostTypeId="1" CreationDate="2010-10-30T14:50:10.893" Score="3" ViewCount="560" Body="&lt;p&gt;I personally use CodeRush in Visual Studio 2010 to do refactoring, write code faster with templates and generally navigate my code 10 times faster than stock VS.  Recently, I've been working on another Android app and got to thinking...&lt;strong&gt;What are the top productivity plugins for Eclipse?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Preferably free.) (I'm looking for plugins that help write in Java, not PHP or Rails or any of the other languages Eclipse supports.)&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-11-01T15:48:12.297" LastActivityDate="2010-11-01T15:48:12.297" Title="What are the Top Developer Productivity Tools/Plugins for Eclipse? [Java]" Tags="&lt;productivity&gt;&lt;tools&gt;&lt;code-quality&gt;&lt;plugins&gt;&lt;eclipse&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="1" />
  <row Id="15777" PostTypeId="2" ParentId="13109" CreationDate="2010-10-30T14:53:17.143" Score="1" ViewCount="" Body="&lt;p&gt;While not a programming book, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735201838&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;How The Stock Market Works&lt;/strong&gt;&lt;/a&gt; by John Dalton is worth getting. And I've heard good things about &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0470987847&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Financial Modelling in Python&lt;/strong&gt;&lt;/a&gt; published by Wiley&lt;/p&gt;&#xA;" OwnerUserId="4603" LastEditorUserId="7454" LastEditorDisplayName="" LastEditDate="2011-04-08T13:53:35.657" LastActivityDate="2011-04-08T13:53:35.657" />
  <row Id="15780" PostTypeId="2" ParentId="15381" CreationDate="2010-10-30T15:00:45.837" Score="1" ViewCount="" Body="&lt;p&gt;We have a co-worker who is generally negative, think C3-P0 crossed with Marvin the paranoid android. Another co-worker, who's a huge Star Trek fan changed his email signature to:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Negativious of Borg - Existance is Futile&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Took him 3 or 4 weeks until he noticed it. Not sure if the clients he interacted with notice and/or chuckled.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-10-30T15:00:45.837" CommentCount="1" />
  <row Id="15781" PostTypeId="1" CreationDate="2010-10-30T15:09:01.343" Score="8" ViewCount="350" Body="&lt;p&gt;For applications targeting multiple platforms, I see mainly two development approaches-&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Go for some JAVA-like development platform. Have one code solution and let the intermediate runtime handle different platforms. If something goes wrong in any platform, tweak the code a bit. But keep it same for all.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make modular code separating core logic and UI. Develop separate UIs for respective platforms which will be calling same core libraries. Build the application separately for each of the target platforms.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So, which one to follow? I know, the answer will start with &quot;&lt;strong&gt;It depends&lt;/strong&gt;&quot;. But I want to hear your opinions on these approaches and the factors to be considered to choose any of them.&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="963" LastEditorDisplayName="" LastEditDate="2010-10-31T09:51:40.170" LastActivityDate="2010-11-19T19:00:16.287" Title="Which approach to follow for developing applications targeting multiple platforms?" Tags="&lt;development-process&gt;&lt;cross-platform&gt;" AnswerCount="11" CommentCount="6" />
  <row Id="15784" PostTypeId="2" ParentId="15381" CreationDate="2010-10-30T15:18:20.337" Score="4" ViewCount="" Body="&lt;p&gt;Once wrote and installed a Win32 service on a co-workers computer that woke up at random times every 15-60 minutes that executed a tight for loop that did nothing at a real time priority. It effectively locked his computer for about 7 seconds. Long enough to notice and shout out words I won't repeat here, but not long enough to hit the reset button. It took him weeks to find it. I gave it a realistic looking filename and set the creation date to the same as every other legitimate file in his system32 directory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every time it went off, those around him would silently laugh in our cubes,&lt;/p&gt;&#xA;" OwnerUserId="905" LastActivityDate="2010-10-30T15:18:20.337" />
  <row Id="15785" PostTypeId="2" ParentId="2654" CreationDate="2010-10-30T15:29:59.330" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C# and Java:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Making sure logging of critical   sections is properly defined (log4*).&lt;/li&gt;&#xA;&lt;li&gt;Keep methods and classes small (Single Responsibility). &lt;/li&gt;&#xA;&lt;li&gt;TDD or&#xA;writing unit tests for important&#xA;sections of business logic (jUnit or&#xA;nUnit).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-10-30T15:29:59.330" />
  <row Id="15786" PostTypeId="2" ParentId="15736" CreationDate="2010-10-30T15:39:19.820" Score="0" ViewCount="" Body="&lt;p&gt;I had to start maintaining a Python web application -- so I decided it was a good time to learn &lt;strong&gt;Vim&lt;/strong&gt; as well.  Now I'm using IdeaVim plugin for Intellij for my Java and Flex development and I definately believe it's made my typing faster and more efficient.&lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-10-30T15:39:19.820" />
  <row Id="15789" PostTypeId="2" ParentId="15759" CreationDate="2010-10-30T16:22:56.040" Score="7" ViewCount="" Body="&lt;p&gt;Let's put it this way:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes, you have no idea what you're going to call your project in the end. So until then, what do you call it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other times, you know exactly what your project is going to be called. So, what else would you call it?&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-10-30T16:22:56.040" />
  <row Id="15790" PostTypeId="1" CreationDate="2010-10-30T16:25:29.343" Score="4" ViewCount="465" Body="&lt;p&gt;I'm looking for a Dilbert I saw probably 10-12 years ago, and I haven't been able to track it down again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the one that ends with the PHB leaving the developers saying something like &lt;strong&gt;&quot;You guys start coding, and I'm going to go upstairs and figure out what the product is supposed to do.&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure I've bastardized it horribly, but if you've seen the cartoon, you'll know which one I'm talking about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An online link / scan / etc. would be awesome.  A reference to a book/page would suffice in a pinch.&lt;/p&gt;&#xA;" OwnerUserId="6758" LastActivityDate="2010-10-30T16:50:59.087" ClosedDate="2010-10-30T18:27:02.110" Title="Looking for Dilbert: &quot;You guys start coding...&quot;" Tags="&lt;management&gt;&lt;humor&gt;&lt;requirements&gt;" AnswerCount="1" CommentCount="4" FavoriteCount="3" />
  <row Id="15792" PostTypeId="2" ParentId="15759" CreationDate="2010-10-30T16:47:29.707" Score="6" ViewCount="" Body="&lt;p&gt;Beware of code names.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They &lt;em&gt;will&lt;/em&gt; escape into the public domain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you already have a product/project name use that from day one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't have one think long and hard about the name before choosing one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For software projects that produce a product the early name can and will live on in the code base long after it's been replaced by the real name. The name affects so many things - executable name, namespaces, class names even methods and variables - so if you change the name it will have all sorts of knock on effects in the code base.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-30T16:47:29.707" CommentCount="2" />
  <row Id="15793" PostTypeId="2" ParentId="486" CreationDate="2010-10-30T16:49:26.057" Score="0" ViewCount="" Body="&lt;p&gt;So far, my favorite project was when I was assigned to research unit testing for my company. It was something that had been kicked around before, but never gotten going. I liked it because I got to research new technologies (JUnit, JMockit) and write NEW code, not modify existing or adding a method or something like that. &lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-10-30T16:49:26.057" />
  <row Id="15794" PostTypeId="2" ParentId="15790" CreationDate="2010-10-30T16:50:59.087" Score="9" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/JF1ef.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-10-30T16:50:59.087" CommentCount="2" />
  <row Id="15796" PostTypeId="2" ParentId="15670" CreationDate="2010-10-30T17:30:34.930" Score="3" ViewCount="" Body="&lt;p&gt;How about not having a keyword?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like the compiler to realise that, most of the time, when I call an asynchronous method, I want the result of it.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Document doc = DownloadDocumentAsync();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That's it. The reason people are having a hard time thinking up a keyword for this thing is because it's like having a keyword for &quot;do the thing you'd do if things were perfectly normal&quot;. That should be the default, not require a keyword.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I originally suggested the compiler should get clever with type inference to figure out what to do. Thinking further about this, I'd keep the existing implementation in the CTP as it is, but make a couple of trivial additions to it, so as to reduce the cases where you'd need to use the &lt;code&gt;await&lt;/code&gt; keyword explicitly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We invent an attribute: &lt;code&gt;[AutoAwait]&lt;/code&gt;. This can only be applied to methods. One way to get this applied to your method is to mark it &lt;code&gt;async&lt;/code&gt;. But you could also do it by hand, e.g.:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;[AutoAwait]&#xA;public Task&amp;lt;Document&amp;gt; DownloadDocumentAsync()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Then inside any &lt;code&gt;async&lt;/code&gt; method, the compiler will assume you want to await on a call to &lt;code&gt;DownloadDocumentAsync&lt;/code&gt;, so you don't need to specify it. Any call to that method will automatically await it.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Document doc = DownloadDocumentAsync();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now, if you want to &quot;get clever&quot; and obtain the &lt;code&gt;Task&amp;lt;Document&amp;gt;&lt;/code&gt;, you use an operator &lt;code&gt;start&lt;/code&gt;, which can only appear before a method call:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Task&amp;lt;Document&amp;gt; task = start DownloadDocumentAsync();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Neat, I think. Now a plain method call means what it usually means: wait for the method to complete. And &lt;code&gt;start&lt;/code&gt; indicates something different: don't wait.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For code that appears outside of an &lt;code&gt;async&lt;/code&gt; method, the only way you're allowed to call an &lt;code&gt;[AutoAwait]&lt;/code&gt; method is by prefixing it with &lt;code&gt;start&lt;/code&gt;. This forces you to write code that has the same meaning regardless of whether it appears in an &lt;code&gt;async&lt;/code&gt; method or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I start to get greedy! :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Firstly, I want &lt;code&gt;async&lt;/code&gt; to apply to interface methods:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;interface IThing&#xA;{&#xA;    async int GetCount();&#xA;} &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It basically means that the implementing method must return &lt;code&gt;Task&amp;lt;int&amp;gt;&lt;/code&gt; or something compatible with &lt;code&gt;await&lt;/code&gt;, and callers to the method will get &lt;code&gt;[AutoAwait]&lt;/code&gt; behaviour.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also when I implement the above method, I want to be able to write:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;async int GetCount()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So I don't have to mention &lt;code&gt;Task&amp;lt;int&amp;gt;&lt;/code&gt; as the return type.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I want &lt;code&gt;async&lt;/code&gt; to apply to delegate types (which, after all, are like interfaces with one method). So:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public async delegate TResult AsyncFunc&amp;lt;TResult&amp;gt;();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;An &lt;code&gt;async&lt;/code&gt; delegate has - you guessed it - &lt;code&gt;[AutoAwait]&lt;/code&gt; behaviour. From an &lt;code&gt;async&lt;/code&gt; method you can call it and it will automatically be &lt;code&gt;await&lt;/code&gt;ed (unless you choose to just &lt;code&gt;start&lt;/code&gt; it). And so if you say:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;AsyncFunc&amp;lt;Document&amp;gt; getDoc = DownloadDocumentAsync;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That just works. It's not a method call. No task has been started yet - an &lt;code&gt;async delegate&lt;/code&gt; is not a task. It's a factory for making tasks. You can say:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Document doc = getDoc();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And that will start a task and wait for it to finish and give you the result. Or you can say:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Task&amp;lt;Document&amp;gt; t = start getDoc();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So one place in this where the &quot;plumbing&quot; leaks out is that if you want to make a delegate to an &lt;code&gt;async&lt;/code&gt; method, you have to know to use an &lt;code&gt;async delegate&lt;/code&gt; type. So instead of &lt;code&gt;Func&lt;/code&gt; you must say &lt;code&gt;AsyncFunc&lt;/code&gt;, and so on. Though one day that kind of thing might be fixed by improved type inference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another question is what should happen if you say start on an ordinary (non-async) method. Obviously a compile error would be the safe option. But there are other possibilities.&lt;/p&gt;&#xA;" OwnerUserId="1490" LastEditorUserId="1490" LastEditorDisplayName="" LastEditDate="2010-11-01T18:43:23.517" LastActivityDate="2010-11-01T18:43:23.517" CommentCount="5" />
  <row Id="15797" PostTypeId="2" ParentId="15736" CreationDate="2010-10-30T17:33:15.360" Score="1" ViewCount="" Body="&lt;p&gt;I learned that getting sold to a new company can indeed improve your job.  My organization was purchased from our old company in May, and things appear to keep getting better.  The new company has spared little/no expense w/our new office, replaced our deprecated development machines with 21st century equipment, exhibited flexibility with managing our projects, and generally made us all feel more than welcome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It kinda feels a bit depressing getting sold (a little like a serf having a new feudal lord because he's tied to land which changed hands), but the final result has been much better than I expected.&lt;/p&gt;&#xA;" OwnerUserId="2294" LastActivityDate="2010-10-30T17:33:15.360" />
  <row Id="15798" PostTypeId="2" ParentId="15736" CreationDate="2010-10-30T17:33:55.570" Score="2" ViewCount="" Body="&lt;p&gt;What ever changes in the fast evolving software industry, &lt;strong&gt;the learning curve&lt;/strong&gt; is always here. &lt;strong&gt;&quot;If there was only a way to learn without taking time to learn.&quot;&lt;/strong&gt; &lt;/p&gt;&#xA;" OwnerUserId="6651" LastEditorUserId="6651" LastEditorDisplayName="" LastEditDate="2010-10-31T11:59:49.393" LastActivityDate="2010-10-31T11:59:49.393" CommentCount="1" />
  <row Id="15799" PostTypeId="2" ParentId="15759" CreationDate="2010-10-30T17:38:07.910" Score="3" ViewCount="" Body="&lt;p&gt;We used code names at Sun Microsystems, for both software and hardware projects. The justification was that you can go have lunch with coworkers and talk about different projects, and someone listening in wouldn't have an idea of what you were talking about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Code names are also nicer because they are shorter.&lt;/strong&gt; It's easier to say &quot;Hammerhead&quot; than &quot;the next generation unnamed Sun Enterprise E10000 server&quot; (not the real code name).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For ClusterTools, we used a shark name theme for each release, and at each release we'd have t-shirts or hats or beer labels with a picture of the shark. It was a nice way to do some &lt;strong&gt;team bonding&lt;/strong&gt;. Also, coming up with the list of names and themes is fun for the group too.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;As a researcher now, I probably should use code names for projects. Instead, I refer to each unit of research by the name of the target conference. But saying &quot;that ICSE paper&quot; isn't good if you need to submit to a different conference (upon rejection or if you think it's not yet ready), and then you have to rename your latex files and directories.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-10-30T17:38:07.910" />
  <row Id="15800" PostTypeId="2" ParentId="7347" CreationDate="2010-10-30T17:43:41.320" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Take advantage of short-circuiting:&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;if(someVar || SomeMethod())&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;takes just as long to code, and is just as readable as:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;if(someMethod() || someVar)&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;yet it's going to evaluate more quickly over time.&lt;/p&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-10-30T17:43:41.320" />
  <row Id="15801" PostTypeId="2" ParentId="15736" CreationDate="2010-10-30T17:44:22.017" Score="4" ViewCount="" Body="&lt;p&gt;I learned that &lt;strong&gt;the purpose of software testing is to find bugs&lt;/strong&gt;. It is &lt;em&gt;not&lt;/em&gt; to verify that the system is correct.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are important psychological factors at play: If your goal is to show that the program is &quot;correct,&quot; you will gravitate toward tests you know will pass. But if your goal is to find bugs, you will gravitate toward tests that will really push your system to the limits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is even an important change to the language you use. If a test finds a bug, you call it &lt;em&gt;successful&lt;/em&gt;. If the test doesn't [that is, the program passes], you call it &lt;em&gt;unsuccessful&lt;/em&gt;. I caught myself going along the lines of &quot;verification&quot; thinking, and it makes a big difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This psychological effect is discussed more in &lt;em&gt;The Art of Software Testing&lt;/em&gt;, a classic book that I highly recommend. The author, Myers, also recommends that whoever is testing a program shouldn't be the author, nor even in the same management chain. You can do this if you are coding on your own, so it takes discipline.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-10-30T17:55:12.457" LastActivityDate="2010-10-30T17:55:12.457" />
  <row Id="15802" PostTypeId="2" ParentId="486" CreationDate="2010-10-30T17:46:16.450" Score="0" ViewCount="" Body="&lt;p&gt;I am developing a framework for Google AppEngine applications in Python. I love it because I am doing it just for fun, but I'm also getting crazy-good at Python, and I am using it for my own applications.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-10-30T17:46:16.450" />
  <row Id="15803" PostTypeId="2" ParentId="2654" CreationDate="2010-10-30T17:59:52.617" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Any Language:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Adequate and consistent use of whitespace,&lt;/strong&gt; both vertical and horizontal, &lt;em&gt;vastly&lt;/em&gt; improves the ability of the code to be rapidly skimmed as well as read at a normal pace. I'm not going to argue about tabs versus spaces, as long as their usage is consistent, but proper indentation and judicious use of blank lines and spaces around operators are all absolutely necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Related: keeping line lengths to a reasonable limit such as 80 columns has demonstrable benefits: no weird wrapping on consoles, no need to scroll, and the ability to view multiple files side by side on a wide monitor, not to mention that it tends to help encourage refactoring of deeply-nested code and run-on expressions.&lt;/p&gt;&#xA;" OwnerUserId="2107" LastActivityDate="2010-10-30T17:59:52.617" />
  <row Id="15804" PostTypeId="1" AcceptedAnswerId="15812" CreationDate="2010-10-30T18:20:01.540" Score="5" ViewCount="124" Body="&lt;p&gt;I wrote a .NET Windows application using framework 3.5. At that time, 3.5 was very new and I had knowledge of framework 2.0 only. Due to deadline, I didn't use any new features of version 3.5 and delivered the application. There was no time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is now two years and the app. is running fine, but my clients have requested new features. There is a major scaling needed. The new code that I wrote so far uses many new features of .NET 3.5 and I am concentrating on reducing the new code size.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is that the new classes that I want to write are sometimes creating redundant methods for doing the same thing. I am not disturbing the old code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How to manage? If I replace old classes with new ones, it risks functionality and need thorough testing again. If I don't, the project size is increasing. &lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2010-10-30T19:26:22.980" Title="Adding new features to an old application" Tags="&lt;project-management&gt;&lt;development-process&gt;&lt;code-quality&gt;&lt;scalability&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="15805" PostTypeId="2" ParentId="15736" CreationDate="2010-10-30T18:23:50.950" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Learnt Basic Python (using it to write quick scripts sometimes)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Installed ArchLinux in VM (had Ubuntu in VM earlier, my PC is fast now!)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Started with MATLAB (especially for plotting graphs and quick numerical checks)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Switched to Mercurial (from SVN) (branching and merging!)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5540" LastActivityDate="2010-10-30T18:23:50.950" />
  <row Id="15806" PostTypeId="2" ParentId="15759" CreationDate="2010-10-30T18:23:53.550" Score="0" ViewCount="" Body="&lt;p&gt;Only one company I worked for did that.  And that was for internal apps.  Most of them out of one department had gemstones as code names:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Onyx&#xA;Emerald&#xA;Obsidian&#xA;etc...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;My project's code name was &lt;code&gt;Trampoline&lt;/code&gt;.  It got boring-a-fied by being renamed to &lt;code&gt;Disaster Recovery Return Download&lt;/code&gt;.  Woo.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-10-30T18:23:53.550" />
  <row Id="15809" PostTypeId="2" ParentId="15804" CreationDate="2010-10-30T18:49:59.407" Score="4" ViewCount="" Body="&lt;p&gt;If you're worried about extensive testing then it probably means that your testing isn't automated at the code level. No automated testing = lots of pain (and I can speak from experience there). Your first step then should be to put some basic sensing tests around the existing code that you're thinking of modifying using something like NUnit. Now make the changes you want to make replacing the old code with the new code and ensure that everything continues to work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't confuse these sensing tests with unit tests - they are there to verify that the code already in place is actually doing what you want it to do before you start and they don't need to follow the usual rules of testing. Hopefully as you change and update the code you will be introducing meaningful unit tests, at which point the sensing tests can (and should) be deleted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131177052&quot; rel=&quot;nofollow&quot;&gt;Working Effectively with Legacy Code&lt;/a&gt; goes into a lot of detail about the various techniques you can use in your situation. You could also consider getting a lot of quick code coverage by using one of the acceptance testing frameworks such as &lt;a href=&quot;http://github.com/richardlawrence/Cuke4Nuke/wiki&quot; rel=&quot;nofollow&quot;&gt;Cucumber&lt;/a&gt; or &lt;a href=&quot;http://code.google.com/p/robotframework/&quot; rel=&quot;nofollow&quot;&gt;Robot Framework&lt;/a&gt; - or even (if it's a web app) some quick and dirty record-playback &lt;a href=&quot;http://seleniumhq.org/download/&quot; rel=&quot;nofollow&quot;&gt;selenium&lt;/a&gt; tests (again, be prepared to delete these initial tests once you have meaningful test coverage with more maintainable acceptance tests).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally don't crucify yourself on reducing the code size - concentrate on solving problems one at a time and refactor bad stuff away as you need to.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastEditorUserId="1362" LastEditorDisplayName="" LastEditDate="2010-10-30T19:26:22.980" LastActivityDate="2010-10-30T19:26:22.980" />
  <row Id="15810" PostTypeId="1" CreationDate="2010-10-30T18:56:06.567" Score="2" ViewCount="275" Body="&lt;p&gt;At the moment in college I'm studying &lt;a href=&quot;http://en.wikipedia.org/wiki/Dynamic_programming&quot; rel=&quot;nofollow&quot;&gt;dynamic programming&lt;/a&gt; and I'm really interested in it. Also I wanna go deeper untill I fully understand the topic and write good dynamic code. So can anyone offer me a good book/tutorial/whatever about it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you in advance!&lt;/p&gt;&#xA;" OwnerUserId="5582" LastEditorUserId="5178" LastEditorDisplayName="" LastEditDate="2010-10-31T09:03:12.853" LastActivityDate="2011-05-19T04:20:47.423" Title="What is the best book/tutorial/website to learn the art of dynamic programming?" Tags="&lt;self-improvement&gt;&lt;programming-practices&gt;&lt;programming&gt;" AnswerCount="4" CommentCount="7" FavoriteCount="2" />
  <row Id="15811" PostTypeId="2" ParentId="15810" CreationDate="2010-10-30T19:07:49.483" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://20bits.com/articles/introduction-to-dynamic-programming/&quot; rel=&quot;nofollow&quot;&gt;http://20bits.com/articles/introduction-to-dynamic-programming/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-10-30T19:07:49.483" />
  <row Id="15812" PostTypeId="2" ParentId="15804" CreationDate="2010-10-30T19:11:47.170" Score="6" ViewCount="" Body="&lt;p&gt;We ship a number of windows applications. Some of the parts of each application use .NET2, some 3.5 and one application is still VB6. We have to make annual updates because the tax law changes every year (many of our users are accountants and actuaries). Refactoring code each year is a standard practice for us. When we added .NET 3.5, we were wanting WCF and Linq, and will be adding more stuff as time goes by (and we have time to learn what we want to add). &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;If I replace old classes with new ones, it risks functionality and need thorough testing again. If I don't, the project size is increasing.&lt;/em&gt;   &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I recommend adding unit testing to your solution. Many developers don't like to do testing, even automated testing. We have some who comment out tests that now fail due to their new code breaking some older edge case. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Three good books are:&lt;br&gt;&#xA;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1933988711&quot; rel=&quot;nofollow&quot;&gt;Brownfield Application Development in .Net&lt;/a&gt;  and&lt;br&gt;&#xA;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131177052&quot; rel=&quot;nofollow&quot;&gt;Working Effectively with Legacy Code&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321503627&quot; rel=&quot;nofollow&quot;&gt;Growing Object-Oriented Software, Guided by Tests&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you cannot afford the versions of Visual Studio that include unit testing, then I recommend another books on using external tools for testing:&lt;br&gt;&#xA;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1590594851&quot; rel=&quot;nofollow&quot;&gt;Expert .NET Delivery Using NAnt and CruiseControl.NET&lt;/a&gt;&lt;br&gt;&#xA;While this book was written for .NET 1.1, it still has some useful information.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One practice I recommend strongly is &quot;continuous integration.&quot; The purpose of this is for some process that runs every time code is checked in to compile and test the code. While it is fiddly and annoying to set up in the beginning, it makes things very easy and very repeatable later on. If you are keeping score, continuous integration lets you answer &quot;yes&quot; to questions 2  &amp;amp; 3 on the &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;Joel Test&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-10-30T19:11:47.170" CommentCount="1" />
  <row Id="15813" PostTypeId="1" CreationDate="2010-10-30T19:14:54.063" Score="21" ViewCount="672" Body="&lt;p&gt;I have a difficult time trying to learn how to program from straight text-books. Video training seems to work well for me in my past experiences with PHP. I am trying my hardest to stay focussed and push through. Specifically I am looking to start indie game development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over the last two weeks I have been trying to pick the &quot;right&quot; language and framework to develop with. I started going through Python, but I am not really enjoying the language so far. I am constantly looking through this website to compare this language to that, and keep getting distracted. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aside from all of this, is it possible to become a programmer when you have trouble focussing? Has anyone been through this that can recommend some advice? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;edit - you guys can check my new question out with detailed information thanks to all of the responses from this thread. &lt;a href=&quot;http://programmers.stackexchange.com/questions/15916/what-is-the-best-language-and-framework-for-my-situation&quot;&gt;http://programmers.stackexchange.com/questions/15916/what-is-the-best-language-and-framework-for-my-situation&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="6765" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-04-22T21:12:56.380" LastActivityDate="2011-04-22T21:12:56.380" Title="Any tips to learn how to program with severe ADHD?" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;best-practices&gt;&lt;self-improvement&gt;&lt;advice&gt;" AnswerCount="8" CommentCount="13" FavoriteCount="3" />
  <row Id="15815" PostTypeId="2" ParentId="15759" CreationDate="2010-10-30T19:41:24.000" Score="4" ViewCount="" Body="&lt;p&gt;Codenames are useful as a level of abstraction between the source code and the product.  Your code repository needs a name.  Classes or configurations will need a name.  Once set in code these are quite cumbersome to change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless your product is well established, its public marketing name is likely to change.  If your product is well established, then the public-facing product might split into multiple products which rely on the same source base.  Having a codename avoids confusion in all these cases because the codename refers to the source, not the product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I avoid codenames that are difficult to remember.  I prefer names which include some plain descriptive element that make it clear what part of the product they refer to.  Unless you're working on something so super secret that even the name is valuable IP (let's be honest, very few of us really are) then having an obscure name just puts up a wall between those who understand what it means and everybody else in the company.&lt;/p&gt;&#xA;" OwnerUserId="6768" LastActivityDate="2010-10-30T19:41:24.000" CommentCount="1" />
  <row Id="15816" PostTypeId="2" ParentId="15813" CreationDate="2010-10-30T19:43:05.010" Score="10" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Commit to a language and framework&lt;/em&gt;. Once you have made that commitment, forsake all others.  Be faithful to that one language and framework, at least for awhile.  Then...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pick &lt;em&gt;one thing&lt;/em&gt; to code, and work on that.  Focus on coding that only.  &lt;em&gt;Get it done, quickly.&lt;/em&gt;  Then work on the next thing.  If you find yourself getting bogged down in a task, break it down into smaller pieces and work on each one individually.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can control your focus, you will find that you have better productivity than your non-ADHD peers.  That is the great paradox of ADHD; once you are focused, you are hyper-focused.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do things quickly; stay in that zone.  But concentrate on one thing at a time.  That is the secret.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-30T19:55:08.163" LastActivityDate="2010-10-30T19:55:08.163" CommentCount="2" />
  <row Id="15817" PostTypeId="2" ParentId="15813" CreationDate="2010-10-30T19:55:48.040" Score="3" ViewCount="" Body="&lt;p&gt;I find the best way to learn to program is not through videos or books, but through trying to program. Pick a small task (that interests you) that you would want a program to do, and set about doing it. For example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I would like a program that read the contents of an xml file and displayed the items in a list on web page.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't try to write a huge piece of software, just do small exercises. I think you'll find that you learn quite a bit this way. Obviously, you'll want to use the internet as a resource for when you have questions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How do I open the file?&lt;/li&gt;&#xA;&lt;li&gt;How do I parse the file?&lt;/li&gt;&#xA;&lt;li&gt;How to I write it to the page?&lt;/li&gt;&#xA;&lt;li&gt;etc...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Not only will you avoid having to put on a video and flip through books, but it should keep you fairly engaged in the learning process to hopefully circumvent and ADHD problems. (of course maybe suggesting the internet as a resource isnt the best for that :))&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This approach is also language agnostic, but I would follow the advice in Robert's answer and pick a language. I'm a fan of C# myself.&lt;/p&gt;&#xA;" OwnerUserId="6414" LastActivityDate="2010-10-30T19:55:48.040" CommentCount="2" />
  <row Id="15818" PostTypeId="2" ParentId="9694" CreationDate="2010-10-30T20:08:04.770" Score="0" ViewCount="" Body="&lt;p&gt;A key to learning programming is being able to put the ideas into practice - so I'd recommend either something .net and/or something they can use in their day-to-day QA role.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For .net I'd suggest using the same language as whatever the usual source code is in - doesn't really matter too much if it's C# or VB.Net (given a choice between the 2 - go with C#). Being able to read and debug code is potentially useful for a QA in diagnosing issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a more pure QA focus you have a variety of languages that can be useful - Ruby and Python are the basis of several test frameworks (such as Cucumber and Robot Framework) or again any general purpose .net language.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-30T20:08:04.770" />
  <row Id="15819" PostTypeId="1" AcceptedAnswerId="15824" CreationDate="2010-10-30T20:13:14.593" Score="4" ViewCount="203" Body="&lt;p&gt;What is the best way to choose colors for LoB app, i need to style TreeView, dropdown's, textboxes and a pivot grid, so i need a bunch of colors, tried Kuler but it gives only 6 colors. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the question is how to do it without designer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS. It's a silverlight app.&lt;/p&gt;&#xA;" OwnerUserId="6771" LastEditorUserId="16729" LastEditorDisplayName="" LastEditDate="2011-05-02T03:22:13.220" LastActivityDate="2011-05-02T03:22:13.220" Title="Choosing colors for application" Tags="&lt;design&gt;&lt;gui&gt;&lt;silverlight&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="1" />
  <row Id="15820" PostTypeId="1" CreationDate="2010-10-30T20:26:56.447" Score="4" ViewCount="495" Body="&lt;p&gt;Often when I hear about the switch statement, its put off as a way to replace long if...else chains. But it seems that when I use the switch statement I'm writing more code that I would be just writing if...else. You also have other issues like &lt;a href=&quot;http://programmers.stackexchange.com/questions/501/what-syntax-element-do-you-hate-most-in-a-programming-language-you-use-frequently/504#504&quot;&gt;keeping all variables for all calls in the same scope&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's some code that represents the flow I normally write (&lt;a href=&quot;http://www.ensta.fr/~diam//java/online/notes-java/flow/switch/switch-general.html&quot; rel=&quot;nofollow&quot;&gt;thanks to diam&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;String comment;   // The generated insult.&#xA;int which = (int)(Math.random() * 3);  //  Result is 0, 1, or 2.&#xA;&#xA;if (which == 0) {&#xA;    comment = &quot;You look so much better than usual.&quot;;&#xA;} else if (which == 1) {&#xA;    comment = &quot;Your work is up to its usual standards.&quot;;&#xA;} else if (which == 2) {&#xA;    comment = &quot;You're quite competent for so little experience.&quot;;&#xA;} else {&#xA;    comment = &quot;Oops -- something is wrong with this code.&quot;;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Then they want me to replace that with this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;String comment;   // The generated insult.&#xA;int which = (int)(Math.random() * 3);  //  Result is 0, 1, or 2.&#xA;&#xA;switch (which) {&#xA;    case 0:  &#xA;             comment = &quot;You look so much better than usual.&quot;;&#xA;    break;&#xA;    case 1:  &#xA;             comment = &quot;Your work is up to its usual standards.&quot;;&#xA;    break;&#xA;    case 2:  &#xA;             comment = &quot;You're quite competent for so little experience.&quot;;&#xA;    break;&#xA;    default: &#xA;             comment = &quot;Oops -- something is wrong with this code.&quot;;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Seems like a lot more code in a much more awkward syntax. But is there really an advantage to using the switch statement?&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-11-02T16:18:07.520" Title="Should I use switch statements or long if...else chains?" Tags="&lt;coding-standards&gt;&lt;switch-statement&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="1" />
  <row Id="15821" PostTypeId="2" ParentId="15820" CreationDate="2010-10-30T20:32:49.147" Score="2" ViewCount="" Body="&lt;p&gt;In this case the switch statement more clearly matches the intent of the code: pick an action to take based on a single value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The if statements on the other hand are much harder to read - you have to look at all of them to be sure what's going on. To me it's less code (even if the character count &lt;em&gt;may&lt;/em&gt; be slightly higher) as there's less to mentally parse.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-30T20:32:49.147" />
  <row Id="15822" PostTypeId="2" ParentId="15736" CreationDate="2010-10-30T20:42:19.043" Score="1" ViewCount="" Body="&lt;p&gt;Learning the &lt;a href=&quot;http://en.wikipedia.org/wiki/Model_View_ViewModel&quot; rel=&quot;nofollow&quot;&gt;MVVM&lt;/a&gt; pattern helped me become much less of a hack. &lt;/p&gt;&#xA;" OwnerUserId="6775" LastActivityDate="2010-10-30T20:42:19.043" />
  <row Id="15823" PostTypeId="2" ParentId="15759" CreationDate="2010-10-30T20:44:18.310" Score="3" ViewCount="" Body="&lt;p&gt;Yes, all my projects do have some kind of codename.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For some reason I find it fairly easy and logical to come up with a completely dumb name for my projects. &lt;code&gt;Apeman&lt;/code&gt; and it's successor &lt;code&gt;HomoSapiens&lt;/code&gt; are my sanest examples for this...but I have to say that I might be overdoing it...somebody who's looking into my code base will find latin-named folders and rather strange project names.&lt;/p&gt;&#xA;" OwnerUserId="3766" LastActivityDate="2010-10-30T20:44:18.310" />
  <row Id="15824" PostTypeId="2" ParentId="15819" CreationDate="2010-10-30T20:47:26.310" Score="6" ViewCount="" Body="&lt;p&gt;Talking as an ex-graphic designer - ask yourself carefully if you really need more than 6 colours. Using too many colours is likely to make things look like a mess. There is a reason why tools like Kuler don't suggest large numbers of colours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you absolutely require (which IMHO is unlikely) more than 6 then use them as base colours and make lighter/darker variations (something like &lt;a href=&quot;http://colorschemedesigner.com/&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; or &lt;a href=&quot;http://websitetips.com/colortools/colorblender/&quot; rel=&quot;nofollow&quot;&gt;this online tool&lt;/a&gt; will do this - a google for colour scheme or colour wheel and you'll find plenty of tools like this out there).&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-30T20:47:26.310" CommentCount="3" />
  <row Id="15825" PostTypeId="2" ParentId="15820" CreationDate="2010-10-30T20:48:25.987" Score="13" ViewCount="" Body="&lt;p&gt;For this particular situation, it seems to me that both &lt;code&gt;if&lt;/code&gt; and &lt;code&gt;case&lt;/code&gt; are poor choices. I'd use a simple array:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;String comments[] = {&#xA;    &quot;You look so much better than usual.&quot;,&#xA;    &quot;Your work is up to its usual standards.&quot;,&#xA;    &quot;You're quite competent for so little experience.&quot;&#xA;};&#xA;&#xA;String comment = comments[(int)(Math.random() * 3)];&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;As a side note, you should generally compute the multiplier based on the size of the array rather than hard-coding the &lt;code&gt;3&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to when you &lt;em&gt;would&lt;/em&gt; use a case/switch, the difference from a cascade of &lt;code&gt;if&lt;/code&gt; statements (or at least one major difference) is that &lt;code&gt;switch&lt;/code&gt; can semi-automatically optimize based on the number and density of values, whereas a cascade of &lt;code&gt;if&lt;/code&gt; statements leaves the compiler with little choice but to generate code as you've written it, testing one value after another until it finds a match. With only three real cases, that's hardly a concern, but with a sufficient number it can/could be significant.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-10-30T20:48:25.987" CommentCount="6" />
  <row Id="15826" PostTypeId="2" ParentId="15519" CreationDate="2010-10-30T20:51:39.647" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Testing For Scalability&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Testing for scalability across multiple servers can be quite hard - load/stress testing can be quite simple though, and tools are available for that (I've heard a few good things about &lt;a href=&quot;http://jakarta.apache.org/jmeter/&quot; rel=&quot;nofollow&quot; title=&quot;JMeter&quot;&gt;JMeter&lt;/a&gt;). Once you have some figures on how your app performs on one server, that should give you some idea of what sort of infrastructure you might need.  However, having a certain performance on 1 server doesn't mean you'll get double performance with 2 servers, as you're accepting user uploads. User uploads means merging uploads across multiple servers.  So you'll need to test performance across at least 2 servers, then compare how much performance improves when adding a 3rd server.  If you're continously merging uploads across multiple servers you may end up getting diminishing returns with each new server added (so 10 times more servers won't mean 10 times better performance). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Designing for scalability&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a number of things you can do to improve the scalability of you app.  These include:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Use a Content Delivery Network.  If you're using JQuery for example, make sure you use google's CDN when you link the files.  You can put static images on a CDN as well.  Basically anything you can do to stop your servers getting hit is a good thing.&lt;/li&gt;&#xA;&lt;li&gt;Use proper headers like content-expires - and set the date a long time in the future so visiters use cached versions of files.&lt;/li&gt;&#xA;&lt;li&gt;Make use of AJAX for lazy-loading of your pages - speed is what people perceive it to be.  If your main content comes across quickly, people don't notice that other parts take longer to load.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Actually Scaling&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion, the &lt;em&gt;most&lt;/em&gt; important thing is how you can scale up quickly when needed. Adding a server &lt;em&gt;can&lt;/em&gt; take ages, and can be very expensive.  One option is Windows Azure.  I know you're working with PHP, but &lt;a href=&quot;http://phpazure.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;libraries are available&lt;/a&gt; to bridge the gap.  The idea is, if you need more capacity, you can log in to your Azure admin panel, and scale up to use additional servers straight away.  Then in quieter times you can scale back down to save yourself the cost.  It doesn't make sense (to me, and others from the other answers i've seen) to invest in a massive infrastructure at this stage.  So having an infrastructure (such as Azure) which you can take advantage of is something to consider. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I appreciate this might not answer your question completely in terms of how you test these sort of things, but maybe it'll give you some other things to think about.&lt;/p&gt;&#xA;" OwnerUserId="55" LastEditorUserId="55" LastEditorDisplayName="" LastEditDate="2010-10-30T21:17:47.407" LastActivityDate="2010-10-30T21:17:47.407" CommentCount="2" />
  <row Id="15827" PostTypeId="2" ParentId="15321" CreationDate="2010-10-30T21:05:38.433" Score="3" ViewCount="" Body="&lt;p&gt;You should work back and forth between the code itself and any design documents.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;You can start at code or design, and it doesn't really matter.  Read code until you're well and truly confused, then check out the design docs.  Or, read the design docs to get a high-level picture then look at the code to see what it looks like.  Repeat almost indefinitely as long as you're working with the code.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Be aware that design docs are almost always out of date, and incorrect in many ways.  However, as long as you keep these points in mind, out-of-date docs still help you understand the mind of the author at some point in the past.  Many of the high-level issues and concerns will still be valid, and you will very likely be able to more quickly understand how the code got to where it is, if you even a dated picture of where the author originally thought it was going to go.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;As you work through the code and design, create your own documents that describe your understanding of the code today.  Maybe these documents are a simple sketch or two, maybe they're writeups in a wiki, maybe they're something else.  Don't make them too complicated: no 30-page word docs.  Just get your ideas down, which will clarify your own thinking greatly.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6273" LastEditorUserId="6273" LastEditorDisplayName="" LastEditDate="2010-11-01T06:52:26.883" LastActivityDate="2010-11-01T06:52:26.883" CommunityOwnedDate="2011-04-08T10:09:01.537" />
  <row Id="15828" PostTypeId="1" CreationDate="2010-10-30T21:11:23.700" Score="3" ViewCount="111" Body="&lt;p&gt;&lt;strong&gt;Autocomplete driven development&lt;/strong&gt; is the issue. How do I feed autocomplete hints to IDEs, when I'm using scripting languages which provide magic methods?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not using an IDE usually. But it's obvious that many developers rely on them, and some percentage of them rely on autocomplete hints from the IDE. Now Eclipse and Netbeans both have support for PHP and Python. But they are of course unable to see class methods and attributes which are provided through &lt;code&gt;__get/__&lt;/code&gt; or something. Whereas magic methods sometimes provide a nicer and more flexible API (and/or save coding).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway it's obviously an issue if you want to make the API visible to autocomplete programmers. So how can it be done? Is there an XML format for this? I know Eclipse is pretty xml-happy, but couldn't google up anything useful about that. How about Netbeans or other IDEs, is there any standardized scheme to signal autocomplete infos to code editors? (Would be nice if you could hobble in class methods and attributes, but also signal type hints for commonly used variable/object names.)&lt;/p&gt;&#xA;" OwnerUserId="1245" LastActivityDate="2010-11-24T14:01:14.617" Title="Autocomplete seeding (with xml format?)" Tags="&lt;eclipse&gt;&lt;netbeans&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="15829" PostTypeId="1" AcceptedAnswerId="15902" CreationDate="2010-10-30T21:18:35.363" Score="15" ViewCount="314" Body="&lt;p&gt;For 4 years now, I've been the solo developer for a small company. We have a handful of well establish products in a niche industry. We will be hiring 1-2 developers soon, and that will drastically change the way things operate around here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lacking a real title, I will be &quot;in charge&quot; of this team. What I want to do is establish a very organized and productive programming department for my company. I got this solo job right out of college, so while I've become proficient as a programmer in this industry I lack a lot of team programming experience. I feel that starting out on the right foot will be key. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now it's just me, a few computers, and an SVN server. I'm looking for any general advice you may have for building a team from the ground up. Thanks!&lt;/p&gt;&#xA;" OwnerUserId="6775" LastEditorUserId="6775" LastEditorDisplayName="" LastEditDate="2010-10-30T21:25:11.130" LastActivityDate="2010-10-31T17:25:20.263" Title="Advice for solo programmer whose team will expand in 2011" Tags="&lt;team&gt;" AnswerCount="7" FavoriteCount="2" />
  <row Id="15830" PostTypeId="2" ParentId="15820" CreationDate="2010-10-30T21:21:56.167" Score="4" ViewCount="" Body="&lt;p&gt;I agree with Jerry that an array of strings is better for this particular case, but that in general it's better to use a switch/case statement than a chain of elseifs.  It's easier to read, and sometimes the compiler can do a better job of optimizing that way, but there's another benefit as well: it's a heck of a lot easier to debug.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you hit that switch, you only have to step one time to end up on the right branch, instead of carefully stepping over several if statements one at a time, and possibly hitting the key too quickly and stepping past it and missing something and having to start over.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-30T21:21:56.167" />
  <row Id="15831" PostTypeId="2" ParentId="15519" CreationDate="2010-10-30T21:28:25.660" Score="4" ViewCount="" Body="&lt;p&gt;I'm completely with what Eric and Bartek said.  The reality is its not a problem you'll have to face any time soon, and its best to focus attention on those problems you actually have.  Doing so will make it more likely you'll have the 'problem' of having to scale to millions of users.  Plus, its hard to plan for 'scaling' when you dont know what it is you have to actually scale yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A single, good server can handle far more than most people think.  Before throwing hardware at the problem, instead make sure you've squeaked out what you can from the app itself.  As your traffic starts ramping up, you'll want to start ensuring your database queries are efficient and tables are properly indexed (you should be doing that anyways, but a lot of sites simply dont), and the db is properly tuned.  You'll want to make sure the images you use are as small as possible (in file size) to help with bandwidth.  PHP caching, obviously.  Gzipping text content.  CSS and .js are broken into separate files so the content is retrieved with each page load.  All that can greatly increase a server's capacity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then, once you've done all that and whatever other optimizations you can think of, you'll know where the bottleneck is if things start getting slow.  Is it the db?  then its time for replication.  Is it bandwidth?  Then you need to increase the pipe - adding servers isnt going to help with that (and then you'll be greatful you didnt waste money buying them).&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-30T21:28:25.660" CommentCount="2" />
  <row Id="15833" PostTypeId="2" ParentId="15829" CreationDate="2010-10-30T21:38:16.720" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;hire someone a lot more competent than you&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;... and with experience in large enterprise software project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He will help you industrialize your processes and you will probably learn a lot from him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will teach him your niche market.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't find such guy, I suggest you to go to trainings related to team management. I suggest you a &lt;em&gt;Scrum Certification&lt;/em&gt; as a starter.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-30T21:47:58.707" LastActivityDate="2010-10-30T21:47:58.707" CommentCount="2" />
  <row Id="15834" PostTypeId="2" ParentId="15829" CreationDate="2010-10-30T21:43:36.730" Score="1" ViewCount="" Body="&lt;p&gt;As the senior developer you will need manager hat on and start looking at your company's hr policies. (especially items such as holiday entitlement, sick leave procedures and disciplinary process although I hope you will never need it)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now depending on the new hires skills and ability start delegating some aspects of your current work, you will need the time for managing priorities and scheduling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One good source of simple and basic management skills on what to do and how in a professional manner is &lt;a href=&quot;http://www.manager-tools.com&quot; rel=&quot;nofollow&quot;&gt;http://www.manager-tools.com&lt;/a&gt;. They do regular podcasts on management and career advice, not to mention a sizeable back catalog of material for you.&lt;/p&gt;&#xA;" OwnerUserId="4960" LastActivityDate="2010-10-30T21:43:36.730" />
  <row Id="15835" PostTypeId="2" ParentId="15776" CreationDate="2010-10-30T22:12:22.270" Score="-7" ViewCount="" Body="&lt;p&gt;Eclipse is itself an anti-productivity tool. I had to use it a couple of times and I hated it. Counterintuitive, buggy,  name any single defect possible, chances are it has them.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-10-30T22:12:22.270" CommentCount="6" />
  <row Id="15836" PostTypeId="2" ParentId="15776" CreationDate="2010-10-30T22:22:19.313" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.eclipse.org/mylyn/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Mylyn&lt;/strong&gt;&lt;/a&gt; is a very widely appreciated plugin for Eclipse, and is available on the main Eclipse site now. It can watch the pieces of code that you work on together (for example, when changing &quot;tax calculation&quot; code, you tend to use the same five files) and then emphasize them the next time you work on the same task. It's a great way to undo the &quot;information overload&quot; you get when working on a large project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://findbugs.sourceforge.net/manual/eclipse.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;FindBugs for Eclipse&lt;/strong&gt;&lt;/a&gt; will help you save time by analyzing your source code for potential Java bugs. It has a false positive rate, and you wouldn't want to run it each build, but it's a great process to go through.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Eclipse's own refactoring and navigation features&lt;/strong&gt; will save you time as well. My favorite feature of the JDT is the &quot;Quick Fix.&quot; When you have an error in your source code (you can use Control-Period to navigate to it), simply do a Control-1 for the Quick Fix operation. It will give you a list of ways to fix the error. For example, if you write &lt;code&gt;a = foo(s)&lt;/code&gt;, but &lt;code&gt;a&lt;/code&gt; is not declared, one of the Quick Fix options is to &quot;declare a&quot;. Eclipse will look at the return type from &lt;code&gt;foo&lt;/code&gt; and use that for &lt;code&gt;a&lt;/code&gt;, automatically adding any imports. With this style, &lt;strong&gt;you will find you write code with errors intentionally, because the Quick Fix route is faster!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My other favorite Eclipse shortcut is &quot;Expand Selection To-&gt;Enclosing Element&quot; (Alt+Shift+Up). This takes where your cursor is and then selects the element of the parse tree you are on. When you do it again, you move further up the parse tree. This is great, because you can select an entire expression easily, not having to worry about selecting the code before or after it. That makes it much easier for you to have a valid expression in order to perform the &quot;Extract Local&quot; refactoring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;JUnit&lt;/strong&gt; is indispensible if you are writing unit tests, and it's well integrated with the environment and process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do any work with GWT, then &lt;strong&gt;Google's GWT Eclipse plug-in&lt;/strong&gt; is nice. You can even use it for working with any Tomcat application, not just a GWT one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of these tools are available free.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-10-30T22:22:19.313" CommentCount="15" />
  <row Id="15837" PostTypeId="2" ParentId="15519" CreationDate="2010-10-30T22:43:18.430" Score="2" ViewCount="" Body="&lt;p&gt;First, worry about building a &lt;em&gt;good&lt;/em&gt; site that actually &lt;em&gt;has&lt;/em&gt; users. That is an incredibly tough task in and of itself. Follow decent design principles and use technologies that make sense for the problem you are solving and you'll scale fine for a long time with almost any reasonable architecture. &lt;em&gt;If&lt;/em&gt; you get to the point where performance is a problem because of your site's popularity, realize that this is a &lt;em&gt;good&lt;/em&gt; problem to have and deal with it then. Trying to optimize too much ahead of time - long before you know where your bottlenecks will actually be - just slows down your ability to ship quickly. And on the Internet, being slow to iterate &amp;amp; ship is far more likely to kill your site than being slow due to overwhelming load.&lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-10-30T22:43:18.430" />
  <row Id="15838" PostTypeId="2" ParentId="13109" CreationDate="2010-10-30T22:53:26.437" Score="1" ViewCount="" Body="&lt;p&gt;I had this book recommended to me the other day (I have &lt;em&gt;not&lt;/em&gt; yet read this)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://goo.gl/qziA&quot; rel=&quot;nofollow&quot;&gt;Starting Your Career as a Wall Street Quant&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course this assumes you'll be quantitatively programming.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="2274" LastEditorDisplayName="" LastEditDate="2010-10-31T02:52:56.243" LastActivityDate="2010-10-31T02:52:56.243" />
  <row Id="15839" PostTypeId="1" AcceptedAnswerId="15845" CreationDate="2010-10-30T23:00:49.513" Score="8" ViewCount="511" Body="&lt;p&gt;End-User Programming is where regular end users, i.e. non-programmers, are able to customize a program, or create a new one, with minimal training or instruction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://appinventor.googlelabs.com/about/&quot; rel=&quot;nofollow&quot;&gt;App Inventor for Android&lt;/a&gt; is one recent example, but perhaps the most popular example of end-user programming is the spreadsheet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What examples of end-user programming have you seen used, or believe to be useful? What's the philosophy of the system? What challenges remain?&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-09T19:20:25.160" Title="What are some good End-User Programming solutions you have seen?" Tags="&lt;end-users&gt;&lt;end-user-programming&gt;" AnswerCount="12" CommentCount="2" FavoriteCount="1" />
  <row Id="15840" PostTypeId="2" ParentId="15829" CreationDate="2010-10-30T23:06:12.033" Score="5" ViewCount="" Body="&lt;p&gt;It may be obvious, but make sure you think you'll actually like working with the new hires. Try to arrange for a couple of beers when they both start to try and get the team to feel like one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll also need to make them aware of any coding standards you follow and any common techinques you use, common as in repeated in your code base.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually you should all be able to feed back into the process and improve... assuming you follow other advise and hire someone with the skills to complement yours.&lt;/p&gt;&#xA;" OwnerUserId="5148" LastActivityDate="2010-10-30T23:06:12.033" />
  <row Id="15841" PostTypeId="2" ParentId="15519" CreationDate="2010-10-30T23:43:33.263" Score="1" ViewCount="" Body="&lt;p&gt;Have a look at &lt;a href=&quot;http://browsermob.com/performance-testing&quot; rel=&quot;nofollow&quot; title=&quot;Browser Mob&quot;&gt;http://browsermob.com/performance-testing&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-10-30T23:43:33.263" />
  <row Id="15842" PostTypeId="1" AcceptedAnswerId="15855" CreationDate="2010-10-30T23:47:25.583" Score="4" ViewCount="162" Body="&lt;p&gt;I am thinking about creating a silverlight application, and I lack the skills to create a good looking UI.&lt;br&gt;&#xA;Today's graphic designers usually know HTML and CSS and thus save me the trouble of doing something I am not very good with.&lt;br&gt;&#xA;Is this the same case with XAML?&lt;br&gt;&#xA;Do I have to hire two employees for this job?&lt;/p&gt;&#xA;" OwnerUserId="1271" LastActivityDate="2010-10-31T04:32:00.080" Title="Are XAML UI designers common today?" Tags="&lt;design&gt;&lt;gui&gt;" AnswerCount="1" />
  <row Id="15843" PostTypeId="2" ParentId="15820" CreationDate="2010-10-30T23:56:30.197" Score="2" ViewCount="" Body="&lt;p&gt;The problem with the &lt;code&gt;if...else if...&lt;/code&gt; chain is that when I come along to read it, I have to look at every single &lt;code&gt;if&lt;/code&gt; condition to understand what the program is doing. For example, you might have something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (a == 1) {&#xA;    // stuff&#xA;} else if (a == 2) {&#xA;    // stuff&#xA;} else if (a == 3) {&#xA;    // stuff&#xA;} else if (b == 1) {&#xA;    // stuff&#xA;} else if (b == 2) {&#xA;    // stuff&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(obviously, for a small number of statements like this, it's not so bad)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd have no way of knowing that you changed condition variable half-way through without reading every single statement. However, because a &lt;code&gt;switch&lt;/code&gt; limits you to a single condition variable only, I can see at a glance what's happening.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day, though, I'd prefer neither &lt;code&gt;switch&lt;/code&gt; or a chain of &lt;code&gt;if...else if&lt;/code&gt;. Often a better solution is some kind of jump table or dictionary for cases like in the original question, or polymorphism (if your language supports that). It's not always possible, of course, but I'd look for a solution that avoids &lt;code&gt;switch&lt;/code&gt; as a first step...&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-30T23:56:30.197" />
  <row Id="15844" PostTypeId="2" ParentId="15829" CreationDate="2010-10-31T00:47:15.737" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Lacking a real title, I will be &quot;in charge&quot; of this team.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Don't make the mistake of letting your desire / ambition to be &quot;in charge&quot; get in the way.  If your company hires developers with more experience than you, the new hires may be a lot more suited to the team leader role than you are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your real value to the team and the company is your intimate knowledge of the products as currently implemented.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-10-31T00:47:15.737" />
  <row Id="15845" PostTypeId="2" ParentId="15839" CreationDate="2010-10-31T01:32:34.737" Score="2" ViewCount="" Body="&lt;p&gt;There are a lot of, what many would call, &quot;domain specific&quot; languages:&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Mathematics:&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Matlab &amp;amp; Simulink  &lt;/li&gt;&#xA;&lt;li&gt;Maple&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;Control Systems:&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ladder Logic&lt;/li&gt;&#xA;&lt;li&gt;Function Block Diagram&lt;/li&gt;&#xA;&lt;li&gt;Sequential Function Chart&lt;/li&gt;&#xA;&lt;li&gt;I might even include the LEGO Mindstorms programming software here&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;Statistics:&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;SPSS&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;Databases:&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;SQL (the syntax is declarative enough that most non-programmers can write queries)&lt;/li&gt;&#xA;&lt;li&gt;SQL Server Integration Services (I'm thinking about the flow-chart like editor here)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5512" LastEditorUserId="5512" LastEditorDisplayName="" LastEditDate="2010-10-31T14:04:11.757" LastActivityDate="2010-10-31T14:04:11.757" CommentCount="3" />
  <row Id="15846" PostTypeId="2" ParentId="15839" CreationDate="2010-10-31T01:36:01.610" Score="3" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.tecplot.com/&quot; rel=&quot;nofollow&quot;&gt;Tecplot&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Has support for Python scripting (modifying input data, Fourier analysis, ...)&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;&lt;a href=&quot;http://usa.autodesk.com/adsk/servlet/pc/index?siteID=123112&amp;amp;id=13779270&quot; rel=&quot;nofollow&quot;&gt;Autocad&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;VBA and LISP scripting&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Would these count as end user programming?&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-10-31T01:36:01.610" CommentCount="3" />
  <row Id="15847" PostTypeId="2" ParentId="15839" CreationDate="2010-10-31T01:49:28.473" Score="6" ViewCount="" Body="&lt;p&gt;Any domain-specific language worth it's salt ought to be considered a viable example of end-user programming, since that is its primary objective...to be familiar enough to the user that they don't have to be a software engineer to use it.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-10-31T01:57:47.543" LastActivityDate="2010-10-31T01:57:47.543" CommentCount="1" />
  <row Id="15848" PostTypeId="2" ParentId="15519" CreationDate="2010-10-31T02:17:51.253" Score="0" ViewCount="" Body="&lt;p&gt;scalability in the end is about resource allocation. you want a system architecture that allows you to deliver on a resource allocation guarantee as the system grows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i find these real techniques are useful for scaling systems:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;statelessness. a system that minimizes complex shared states can be grown more easily than those that have substantial shared states&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;asynchronicity. get expensive work out of the way of the main flow of control as soon as possible&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;exploit locality. loosely speaking, this means caching&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-10-31T02:17:51.253" CommentCount="1" />
  <row Id="15849" PostTypeId="2" ParentId="15519" CreationDate="2010-10-31T03:00:49.240" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://research.google.com/people/jeff/index.html&quot; rel=&quot;nofollow&quot;&gt;Jeff Dean&lt;/a&gt; has a pretty famous quote which goes something like (&lt;a href=&quot;http://news.ycombinator.com/item?id=1473869&quot; rel=&quot;nofollow&quot;&gt;paraphrased&lt;/a&gt;):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;There's no need to burden yourself with making a system scale more than 10x further than it needs to, as long as you're confident that you'll be able to scale it as you grow...&#xA;  it's also nearly impossible to scale a system 100x: you simply have no idea what the traffic patterns and bottlenecks will be at 100x the volume.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Get thousands of users with this new application before you worry about getting millions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure that your design for thousands will still work if you have tens of thousands; but this design will not work for millions. Shooting for millions off the bat is foolish and bound to fail - you have no idea how these millions of hypothetical users will use your site, where the heavy access points will be, what the bottlenecks might be, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of wasting time speculating... &lt;strong&gt;build a product that people would want to use. Then scale it.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a beautifully scalable app that has crummy features and poor UX design, then guess what - no one will ever use it to start with! Users do not care how beautifully your app may potentially scale one day. They only care that the product is something they like to use.&lt;/p&gt;&#xA;" OwnerUserId="851" LastActivityDate="2010-10-31T03:00:49.240" CommentCount="1" />
  <row Id="15850" PostTypeId="2" ParentId="15820" CreationDate="2010-10-31T03:34:48.890" Score="4" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;switch (which) {&#xA;  case 0: comment = &quot;String 1&quot;; break;&#xA;  case 1: comment = &quot;String 2&quot;; break;&#xA;  case 2: comment = &quot;String 3&quot;; break;&#xA;  default: comment = &quot;Oops&quot;; break;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The above way of writing this type of switch case is fairly common. The reason why you felt the switch case if bulkier is because your body was only one line and with a switch case you also needed the break statement. So the switch case had twice the body size of if else. With more substantial code, the break statement will not add much to the body. For single line body, it is a common practice to write the code in the same line as the case statement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As others have already mentioned, a switch case makes the intent more clear, you want to make a decision based on the value of a single variable/expression. My comments are purely from a readability point of view and not performance based.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-31T03:34:48.890" />
  <row Id="15851" PostTypeId="2" ParentId="15321" CreationDate="2010-10-31T03:38:37.557" Score="2" ViewCount="" Body="&lt;p&gt;I start with the design documentation. In particular, the specification - that tells the intent of the thing being looked at.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If possible, I then look at design notes and documentation to get a general flavour of how it has been done, the thought process, the style and nature of the people concerned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If possible I then talk to the people who worked on it - what does it do? How? Why? Where are the bodies buried?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a tendency amongst developers to leap into code: &quot;Let me show you this code&quot;. This is fine for them but tends to hijack my needs - which is to understand the high level which gives context to the low level stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It uses vast amounts of brain power to look at little bits of code, out of complete context, and understand anything meaningful. So if possible, getting the developers to talk about the PRINCIPLE, structure, units, modules, whatever all leads to an appreciation of the task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only then is it worth trying to get into the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the big scheme of things, looking at the code is like looking at a page full of 0's and 1's. There is meaning but it takes a long time to figure it out. Getting a flavour of where to look and which parts are meaningful helps narrow the search space.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All that said - when there is no doco, no people, and only code - then there is nothing for it but to look at the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In that case, I normally don't try and understand it by a slow deep reading, I do a quick pass, skim reading over everything. Sometimes this is just open files and sit with pressing the page-down key. You can get an amazing appreciation of a big picture just by doing this. (And in some cases I even string-dump executable files and trawl those, looking for signatures and patterns. This has been amazingly fruitful over the last 20-odd years.)&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-10-31T03:38:37.557" CommunityOwnedDate="2011-04-08T10:09:01.537" />
  <row Id="15852" PostTypeId="2" ParentId="15321" CreationDate="2010-10-31T03:39:15.420" Score="2" ViewCount="" Body="&lt;p&gt;For a complex piece of software I would approach it roughly as if it were a new development project. Start with the big ideas- vision, context, scope, stakeholders. Read through some user documentation and get an idea of how it is used. Get some user training with the software if possible (or applicable). Then start looking into the requirements and design documentation to get an idea of how it works at a high level. Talk to the designers if they are still around. Look at the system architecture in different perspectives. From there, start digging into the core functionality and looking at some code, returning to requirements and design as needed. As you look at code, run the software to see it in action. All the while, compile some summary documentation for future reference- you own Cliffs Notes. Branch out until you have a pretty good idea of how it all works and fits together, but concentrate on the parts that you will be working with. By now you have a top-to-bottom understanding of the whole system, or at least the parts that are applicable to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, in the real world you may not have the time to go through all of this before you have to start getting your hands dirty, especially on the larger projects. But this is how I would do it if it were up to me.&lt;/p&gt;&#xA;" OwnerUserId="4766" LastActivityDate="2010-10-31T03:39:15.420" CommunityOwnedDate="2011-04-08T10:09:01.537" />
  <row Id="15853" PostTypeId="2" ParentId="15519" CreationDate="2010-10-31T03:56:24.573" Score="0" ViewCount="" Body="&lt;p&gt;You must use an architecture that &lt;em&gt;can&lt;/em&gt; grow horizontably, i.e. by adding more hardware.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This must be thought of from the beginning as it will be the way you handle growth. Having any &quot;there can be only one&quot; bottleneck in your application will bite you some day.  You do not have to actually implement e.g. advanced databases, but you need to know that you CAN replace your simple database with a large disstributed one if needed.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-31T03:56:24.573" CommentCount="1" />
  <row Id="15854" PostTypeId="2" ParentId="15813" CreationDate="2010-10-31T04:25:15.877" Score="2" ViewCount="" Body="&lt;p&gt;The best way to avoid wasting time, is to have an experienced person mentor you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this particular point, his most important task is to figure out what you need to do, and what technologies would suit you best, so you don't have to spend a lot of effort doing that yourself.  The research role is very time consuming - especially if you are easily distracted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't have a mentor IRL, and cannot locate one, then I would suggest putting up a question providing very detailled information about what you &lt;em&gt;want&lt;/em&gt; to do, what you &lt;em&gt;can&lt;/em&gt; do, and what resources you have available to you.  This would allow others to give you feedback on your situation and may save you quite a bit of time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you still dislike Python when you do that, then write WHY you dislike Python, and WHY you like PHP.  It is perfedtly fine to have personal preferences, and you may find that there is an approach that you have never heard of that suits you fine.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-31T04:25:15.877" CommentCount="2" />
  <row Id="15855" PostTypeId="2" ParentId="15842" CreationDate="2010-10-31T04:32:00.080" Score="3" ViewCount="" Body="&lt;p&gt;Silverlight is a pretty cool technology, but I'm seriously concerned about its &lt;a href=&quot;http://www.zdnet.com/blog/microsoft/microsoft-our-strategy-with-silverlight-has-shifted/7834&quot; rel=&quot;nofollow&quot;&gt;future&lt;/a&gt;. However, if you want a cool UI done in XAML... you have several options. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Hire a Silverlight/WPF dev and hope they also design / See #3&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Hire a UX designer with XAML skillz&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Hire a great graphic designer and then hire #1 OR you can use the built-in Ai/PSD to XAML tools in Expression Studio (design).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Tons of options, if you are a small company you may even qualify for Bizspark ( a free version of Expression Studio). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck.&lt;/p&gt;&#xA;" OwnerUserId="6783" LastActivityDate="2010-10-31T04:32:00.080" CommentCount="1" />
  <row Id="15856" PostTypeId="1" CreationDate="2010-10-31T04:49:46.237" Score="15" ViewCount="565" Body="&lt;p&gt;Are there certain activities that provide inspiration at unexpected times?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One that I've noticed is when I'm mowing the lawn or shoveling snow - living in Minnesota it seems I'm always doing one or the other. The physical activity gives my brain a chance to wander and ponder either the most pressing problem on my mind or some random thought of the day.&lt;/p&gt;&#xA;" OwnerUserId="1997" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-11-06T23:12:43.810" LastActivityDate="2010-11-06T23:12:43.810" ClosedDate="2010-11-02T22:37:14.507" Title="When do you get your best ideas?" Tags="&lt;time-management&gt;&lt;problem-solving&gt;&lt;inspiration&gt;" AnswerCount="14" CommentCount="3" />
  <row Id="15857" PostTypeId="1" CreationDate="2010-10-31T05:10:55.133" Score="15" ViewCount="1445" Body="&lt;p&gt;Microsoft &lt;a href=&quot;http://www.zdnet.com/blog/microsoft/microsoft-our-strategy-with-silverlight-has-shifted/7834&quot; rel=&quot;nofollow&quot;&gt;has pushed Silverlight aside&lt;/a&gt; in favor of HTML5 going forward.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been doing some investigating for related stories about the Silverlight shift, and it seems WPF is dead and Silverlight has been relegated to Windows Phone 7.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a future in using Silverlight?&lt;/p&gt;&#xA;" OwnerUserId="6783" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2011-05-11T07:18:54.463" LastActivityDate="2011-05-22T02:09:52.510" Title="Did Microsoft kill Silverlight?" Tags="&lt;career&gt;&lt;programming-languages&gt;&lt;learning&gt;&lt;silverlight&gt;" AnswerCount="15" CommentCount="9" FavoriteCount="6" />
  <row Id="15858" PostTypeId="2" ParentId="15857" CreationDate="2010-10-31T05:20:46.750" Score="17" ViewCount="" Body="&lt;p&gt;I think many people look at Microsoft and they see one gigantic entity. That's not really how it is, though. Microsoft is more like dozens of small teams and it's really only the name &quot;Microsoft&quot; that ties them together. So while the IE team is focusing on HTML 5 and pushing that as much as they can, you can bet the WPF/Sliverlight team is just as hard at work on WPF and Silverlight.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-31T05:20:46.750" CommentCount="5" />
  <row Id="15859" PostTypeId="2" ParentId="15829" CreationDate="2010-10-31T05:32:29.253" Score="3" ViewCount="" Body="&lt;p&gt;This is very similar to the situation I was in a few months ago.  The best advice I can give is drop the typical hubris of being a programmer and hire the best of the best your company can afford.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was &quot;in charge&quot; for a while, but a team member with more experience stepped up and I gladly relinquished my administrative duties so I could do what I'm best at, writing quality code.  I'm still a mentor to the team as you will be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do what's best for the company in this situation, you will be rewarded.&lt;/p&gt;&#xA;" OwnerUserId="6689" LastActivityDate="2010-10-31T05:32:29.253" />
  <row Id="15860" PostTypeId="2" ParentId="15856" CreationDate="2010-10-31T05:51:22.457" Score="3" ViewCount="" Body="&lt;p&gt;Often in the morning, when waking up, my brain is full of ideas. Keeping a notebook on the bedside table is a must. Just scribble down the ideas quickly before they vanish.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-10-31T05:51:22.457" CommentCount="3" />
  <row Id="15861" PostTypeId="2" ParentId="15856" CreationDate="2010-10-31T06:03:31.143" Score="3" ViewCount="" Body="&lt;p&gt;Just after I finish implementing an idea. I've found that implementation of ideas leads to many more ideas. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When exactly? Usually when I am away from the computer, and doing something totally unrelated.&lt;/p&gt;&#xA;" OwnerUserId="6610" LastActivityDate="2010-10-31T06:03:31.143" />
  <row Id="15862" PostTypeId="2" ParentId="15856" CreationDate="2010-10-31T06:10:39.843" Score="16" ViewCount="" Body="&lt;p&gt;I've always said I do my best programming in the shower. &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-10-31T06:10:39.843" CommentCount="4" />
  <row Id="15863" PostTypeId="2" ParentId="15321" CreationDate="2010-10-31T06:23:21.653" Score="1" ViewCount="" Body="&lt;p&gt;I start with the tests.  If the unit tests and integration tests are well written, they describe the use cases.  If they are not well written, or not written at all (sadly, this is largely the case), I start with entry points in the code and match those with the design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll then write tests for each use case, discovered by the tree you'll find after investigating entry points, to probe the code and use code coverage utilities to see what I'm missing.  These tests tell me exactly how the code works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always try to add value to something I look at; writing tests, cleaning up code, refactoring large (20+ lines) functions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that creating documentation alone does not add any real value to the code since it never interacts with the code.&lt;/p&gt;&#xA;" OwnerUserId="6689" LastActivityDate="2010-10-31T06:23:21.653" CommunityOwnedDate="2011-04-08T10:09:01.537" />
  <row Id="15864" PostTypeId="2" ParentId="15857" CreationDate="2010-10-31T06:24:27.633" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Then what should microsoft do?&lt;/strong&gt;&lt;br&gt;&#xA;In this situation, they have to give support for HTML5+js as the maker of the most used browser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you can still go with Silverlight. There will be releases and support for this well designed framework no doubt.&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-10-31T06:24:27.633" />
  <row Id="15865" PostTypeId="2" ParentId="15856" CreationDate="2010-10-31T06:30:04.653" Score="9" ViewCount="" Body="&lt;p&gt;When doing something requiring less attention of brain. Like walking in a known road, shower, sitting idle, even in the toilet.&lt;br&gt;&#xA;In contrast, ideas do not come while in front of PC or television. While talking with someone, reading a book, driving etc. Because these activities requires attention.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the attention requiring works help you to gather information. And this information helps a lot to make up an idea.&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="963" LastEditorDisplayName="" LastEditDate="2010-10-31T07:40:39.820" LastActivityDate="2010-10-31T07:40:39.820" CommentCount="3" />
  <row Id="15866" PostTypeId="2" ParentId="15856" CreationDate="2010-10-31T06:56:48.830" Score="22" ViewCount="" Body="&lt;p&gt;The best programming-related ideas that ever came to my mind where when I was trying to explain my idea to someone else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Always when you try to tell the story behind your software/idea, you have to structure it in a way that could be told and understood by someone else and that helps a lot!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I'm telling that story to someone I find myself beginning with what I already have in my mind, and ending with a completely new and awesome idea without letting my audience know that this idea just came to my mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To summarize that: find yourself someone who would like to listen to your draft ideas.&lt;/p&gt;&#xA;" OwnerUserId="2533" LastActivityDate="2010-10-31T06:56:48.830" CommentCount="3" />
  <row Id="15867" PostTypeId="2" ParentId="15857" CreationDate="2010-10-31T07:02:58.670" Score="3" ViewCount="" Body="&lt;p&gt;It does sound like that there has been a strategic shift inside Microsoft, and at this time Adobe Flex/Flash will continue to be the leading technology to work with for RIA applications. It looks like HTML5 will be broadly adopted and I personally would switch over to experimenting with it. &lt;/p&gt;&#xA;" OwnerUserId="4378" LastActivityDate="2010-10-31T07:02:58.670" />
  <row Id="15868" PostTypeId="2" ParentId="15813" CreationDate="2010-10-31T07:25:45.553" Score="1" ViewCount="" Body="&lt;p&gt;Have you been &lt;em&gt;diagnosed&lt;/em&gt; with ADHD by a qualified psychologist? If so, treatments are available. (It should not be a &quot;stigma&quot;; also some &lt;em&gt;healthy&lt;/em&gt; people use ADHD and other medicines to boost their concentration.)&lt;/p&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-10-31T07:25:45.553" CommentCount="6" />
  <row Id="15869" PostTypeId="2" ParentId="15857" CreationDate="2010-10-31T07:42:48.477" Score="0" ViewCount="" Body="&lt;p&gt;This is probably one of the outcomes from the recent meetings between Microsoft and Adobe. A joint effort to fight Apple's rejection of Flash.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-05-12T14:48:57.623" LastActivityDate="2011-05-12T14:48:57.623" />
  <row Id="15870" PostTypeId="2" ParentId="15776" CreationDate="2010-10-31T08:14:35.540" Score="2" ViewCount="" Body="&lt;p&gt;I personally turn to &lt;a href=&quot;http://checkstyle.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Checkstyle&lt;/a&gt; to keep my code on the straight and narrow.  It helps point out where my design is growing to bloated and I need to step back and refactor.  &lt;a href=&quot;http://eclipse-cs.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;eclipse-cs&lt;/a&gt; is one plugin for eclipse for use with Checkstyle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;JUnit, of course, would be the other defacto tool of choice for my development, but then I this is pretty much supported out of the box if you are using eclipse.&lt;/p&gt;&#xA;" OwnerUserId="5319" LastActivityDate="2010-10-31T08:14:35.540" />
  <row Id="15871" PostTypeId="2" ParentId="15857" CreationDate="2010-10-31T08:47:14.987" Score="1" ViewCount="" Body="&lt;p&gt;Not according to this artcile, they are streamlining it to make it easier to create cross platform code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.theregister.co.uk/2010/10/29/portable_library_project_silverlight_windows_phone/&quot; rel=&quot;nofollow&quot;&gt;http://www.theregister.co.uk/2010/10/29/portable_library_project_silverlight_windows_phone/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5148" LastActivityDate="2010-10-31T08:47:14.987" CommentCount="1" />
  <row Id="15872" PostTypeId="2" ParentId="15856" CreationDate="2010-10-31T08:58:42.167" Score="2" ViewCount="" Body="&lt;p&gt;Sometimes a few weeks after release: I look at my code and wonder &quot;what was I thinking?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And when I leave the keyboard: lunch, call of nature, coffee break etc&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-10-31T08:58:42.167" CommentCount="2" />
  <row Id="15873" PostTypeId="1" AcceptedAnswerId="16056" CreationDate="2010-10-31T09:15:04.200" Score="8" ViewCount="281" Body="&lt;p&gt;Are there any systematic differences between software developers (sw engineers, architect, whatever job title) with an electronics or other engineering background, compared to those who entered the profession through computer science?   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;By electronics background, I mean an EE degree, or a self-taught electronics tinkerer, other types of engineers and experimental physicists.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm wondering if coming into the software-making professions from a strong knowledge of flip flops, tristate buffers, clock edge rise times and so forth, usually leads to a distinct approach to problems, mindsets, or superior skills at certain specialties and lack of skills at others, when compared to the computer science types who are full of concepts like abstract data types, object orientation, database normalization, who speak of &quot;closures&quot; in programming languages - things that make little sense to the soldering iron crowd until they learn enough programming.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The real world, I'm sure, offers a wild range of individual exceptions, but for the most part, can you say there are overall differences?   Would these have hiring implications e.g. (to make up something) &quot;never hire an electron wrangler to do database design&quot;?   Could knowing about any differences help job seekers find something appropriate more effectively?   Or provide enlightenment or some practical advice for those who find themselves misfits in a particular job role?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Btw, I've never taken any computer science classes; my impression of exactly what they cover is fuzzy.   I'm an electronics/physics/art type, myself.)&lt;/p&gt;&#xA;" OwnerUserId="4280" LastActivityDate="2010-11-01T15:59:23.833" Title="EE vs Computer Science: Effect on Developers' Approaches, Styles?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;education&gt;" AnswerCount="5" />
  <row Id="15874" PostTypeId="1" AcceptedAnswerId="15877" CreationDate="2010-10-31T09:26:06.493" Score="16" ViewCount="417" Body="&lt;p&gt;How would you persuade your Boss that code reviews are worth the time (and hence cost)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Especially if, say, you worked in a hypothetical company that had several developers but they rarely worked together on projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What pros would you push to the Boss?&#xA;If you can think of potential cons from the Bosses point of view, how would you counter them?&lt;/p&gt;&#xA;" OwnerUserId="5148" LastActivityDate="2011-01-30T04:16:24.527" Title="Tips on persuading boss that code review is a good thing." Tags="&lt;best-practices&gt;&lt;programming-practices&gt;&lt;code-reviews&gt;&lt;tips&gt;" AnswerCount="8" FavoriteCount="7" />
  <row Id="15875" PostTypeId="2" ParentId="15856" CreationDate="2010-10-31T09:29:22.557" Score="2" ViewCount="" Body="&lt;p&gt;Driving, definitely the best ideas are coming while driving.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In theory running for me would be even better, but I don't have so much time to do it anymore. &lt;/p&gt;&#xA;" OwnerUserId="4359" LastActivityDate="2010-10-31T09:29:22.557" CommentCount="1" />
  <row Id="15876" PostTypeId="2" ParentId="15856" CreationDate="2010-10-31T09:33:58.107" Score="1" ViewCount="" Body="&lt;p&gt;When I'm doing something that doesn't require me to think.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got my best ideas when taking baths, on my riding mowner or driving my car.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? Maybe is as something to do with &lt;em&gt;mindfullness&lt;/em&gt;, a state you can obtain by focusing yourself of the present.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-31T09:33:58.107" />
  <row Id="15877" PostTypeId="2" ParentId="15874" CreationDate="2010-10-31T09:42:57.100" Score="17" ViewCount="" Body="&lt;p&gt;If you have to justify yourself for such basic stuff, you have a bigger problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are the expert, your team should decide what practices you use. Maybe you should start to convince your boss of that very important principle.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Your boss is supposed to decide &lt;strong&gt;WHAT&lt;/strong&gt; to do and more importantly &lt;strong&gt;WHY&lt;/strong&gt; doing it. You should take care of the &lt;strong&gt;HOW&lt;/strong&gt; build it&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(that doesn't means you can't suggest what and why do things in your company of course). A great boss should encourage his employees to participate in enterprise strategy)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However here is how I view peer code reviews:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because programming is a very intensive intellectual work, one person can't ensure everything is perfect. Therefore code review ensure that:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;vulnabilities or bugs are found before the app is shipped&lt;/li&gt;&#xA;&lt;li&gt;constant mutual education between developers (almost for free) is achieved&lt;/li&gt;&#xA;&lt;li&gt;code respect standard for easier app maintenance&lt;/li&gt;&#xA;&lt;li&gt;code match the requirements&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Everyone is taking direct benefits of it:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the developer that increases his/her knowledge and can pass his own to his/her team mates&lt;/li&gt;&#xA;&lt;li&gt;the customer/user that has less bugs and spend less in maintenance&lt;/li&gt;&#xA;&lt;li&gt;the boss that has more happy customers/users and spend less in trainings&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-10-31T13:18:32.733" LastActivityDate="2010-10-31T13:18:32.733" CommentCount="4" />
  <row Id="15878" PostTypeId="2" ParentId="15874" CreationDate="2010-10-31T09:45:08.730" Score="7" ViewCount="" Body="&lt;p&gt;Code review can get multiple developers familiar with same code. This is a good thing. What if the original author decides to quit or worse, something bad happens to him. If code reviews are done regularly, others can take over quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Peers maybe able to spot potential bugs or performance issues during code review. This reduces QA and development effort. This can compensate for the additional cost involved in code reviews.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code reviews promote knowledge sharing. Peers can tell of better ways or alternate ways of doing stuff. I myself have learnt a lot from my peers through code reviews.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code reviews help reinforce coding guidelines followed by the team. If the team doesn't have one, that needs to be rectified. Code is meant to be written once and read many times. Coding guidelines are a step towards readable code. Code is meant to be readable by peers. What better way than to have code reviews to ensure readability?&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-31T09:45:08.730" />
  <row Id="15879" PostTypeId="2" ParentId="6200" CreationDate="2010-10-31T09:48:42.460" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.paulgraham.com/wealth.html&quot; rel=&quot;nofollow&quot;&gt;Paul Graham&lt;/a&gt; and lots of &lt;a href=&quot;http://ycombinator.com&quot; rel=&quot;nofollow&quot;&gt;others&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1747" LastActivityDate="2010-10-31T09:48:42.460" CommunityOwnedDate="2011-02-02T16:52:00.060" />
  <row Id="15881" PostTypeId="2" ParentId="15857" CreationDate="2010-10-31T09:59:53.670" Score="0" ViewCount="" Body="&lt;p&gt;First, let me state that I'm not experienced with developing RIAs, but I'm just in the process of tentatively learning about the technologies involved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know what to make of the recent news that Microsoft apparently wants to concentrate more on HTML5 and move Silverlight off to Windows Phone 7. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From my &quot;outsider's point of view&quot;, something doesn't add up there. Somehow I can't see Microsoft suddenly adopting HTML 5 instead of holding on to Silverlight. Basically, that would mean that developers who are comfortable in the Microsoft world (.NET) and who want to create RIAs suddenly find themselves having to write JavaScript (ECMAScript) code!? After all, HTML 5 means that they would rely more directly on the browser's capabilities instead of pushing their own plugin, and the only programming language that (most) browsers understand is JavaScript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would developers do who prefer writing code in a .NET programming language (C#, VB.NET, even F#)? There's still ASP.NET of course, but to my eyes that starts to look a bit like a legacy thing compared to &quot;platforms&quot; like Silverlight, Flex, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm 99% sure that my assumptions and reasoning above must be very flawed, or that I'm lacking some crucial bits of knowledge, because if I were right, that could mean that Microsoft just made a big step towards abandoning .NET for internet applications.&lt;/p&gt;&#xA;" OwnerUserId="4906" LastActivityDate="2010-10-31T09:59:53.670" />
  <row Id="15882" PostTypeId="2" ParentId="15856" CreationDate="2010-10-31T10:07:00.887" Score="0" ViewCount="" Body="&lt;p&gt;Either when I'm in the shower or when I'm staring at the night sky (yes I do most of my programming at night).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me it's basically when you're doing any mundane and repetitive tasks that does not require much mental activity. That way your mind is free to wander to whatever it has been struggling on, which hopefully is your code. :) The key is that when you're showering (or doing other mundane tasks) you're not trying too hard and have no expectations, that's when the ideas start flowing in.&lt;/p&gt;&#xA;" OwnerUserId="2243" LastActivityDate="2010-10-31T10:07:00.887" />
  <row Id="15883" PostTypeId="2" ParentId="15857" CreationDate="2010-10-31T10:32:05.310" Score="9" ViewCount="" Body="&lt;p&gt;Silverlight for use on the web has never &lt;em&gt;really&lt;/em&gt; taken off - however, Microsoft is pushing hard on Windows Phone 7, which uses WPF/Silverlight for apps, so Silverlight itself is not being killed off, its just the focus of where it's deployed which is changing.&lt;/p&gt;&#xA;" OwnerUserId="55" LastActivityDate="2010-10-31T10:32:05.310" CommentCount="1" />
  <row Id="15884" PostTypeId="2" ParentId="15810" CreationDate="2010-10-31T10:38:29.433" Score="1" ViewCount="" Body="&lt;p&gt;If your after a book on dynamic programming for .NET 4, have a look at this one. I can't rate it as i only briefly thumbed through it in a book store.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/143022519X&quot; rel=&quot;nofollow&quot;&gt;Pro Dynamic .NET 4.0 Applications&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4960" LastActivityDate="2010-10-31T10:38:29.433" />
  <row Id="15887" PostTypeId="1" AcceptedAnswerId="15890" CreationDate="2010-10-31T11:49:27.043" Score="5" ViewCount="526" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/361/ive-graduated-with-a-computer-science-degree-but-i-dont-feel-like-im-even-clos&quot;&gt;I&amp;#39;ve graduated with a Computer Science degree but I don&amp;#39;t feel like I&amp;#39;m even close to being an expert programmer&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;So Im going to be graduating with my B.S. in CS (always fun saying that lol) but I feel like so much time was spent on concepts rather than actual programming. In turn I feel like Im not as good as I should be, especially not as good as some students that started programming in high school or such (my HS offered no programming classes).&#xA;So needless to say I feel a bit &quot;scared&quot;, i feel like im going to never be able to get a job, or get one and fail miserably.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can write code, and i've made it this far but I certainly don't understand the finer points although I do read alot of books and read alot on stackoverflow and such to try to expand my knowledge....But am I the only person that feels this way? Am I going to be tossed in a job expecting to program some new advanced library or something, or will they let me step up gradually?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Calm my worries please because this has been unnerving me for years.&#xA;Also 2 more questions:&#xA;Does GPA seem to really matter? My friends that have jobs never put their GPA on their resume (because it was subpar) but they ended up ok&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And would you consider Programming for the Computer Science Department (for a tracing research grant) as &quot;Programming Experience&quot; to be listed on a resume. I mean I do programming for it.....nothing advanced tho, but I do get paid.&lt;/p&gt;&#xA;" OwnerUserId="6791" LastActivityDate="2010-11-02T15:40:45.093" ClosedDate="2010-11-02T22:18:04.570" Title="I feel......less knowledgeable than I should be with a CS Degree..." Tags="&lt;programming-languages&gt;&lt;jobs&gt;&lt;programming-practices&gt;" AnswerCount="13" CommentCount="4" FavoriteCount="1" />
  <row Id="15888" PostTypeId="2" ParentId="15873" CreationDate="2010-10-31T11:54:58.343" Score="1" ViewCount="" Body="&lt;p&gt;I doubt you'd see much difference in the usual sort of business or web apps that most people end up working on, once both have a few years of experience under their belts. All the things you list as confusing to the &quot;soldering iron crowd&quot; are normal programming skills. In essence you're answering your own question - someone without a programming background can learn programming, but until they do they're not a programmer. Someone with a logical and analytical mind will find it much easier to learn to program well than someone who does not - that would be the only advantage I can think for a self-taught electronics tinkerer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Computer Science (as opposed to Computer Engineering) is predominently maths, as (at the higher levels) are the various other sciences such as physics - but it's a very different sort of maths. If you've done a different science then you will also have done maths and so should find it possible to get up to speed unlike someone who has no maths background. Of course, very few programmers ever really need to know about set theory, big-O, or whatever else - certainly not at a high level anyway.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-31T11:54:58.343" CommentCount="1" />
  <row Id="15889" PostTypeId="2" ParentId="15887" CreationDate="2010-10-31T12:03:36.603" Score="2" ViewCount="" Body="&lt;p&gt;Your feelings are pretty normal, in fact, there is only so much you can know and so much else that all the cool guys seem use.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-10-31T12:03:36.603" />
  <row Id="15890" PostTypeId="2" ParentId="15887" CreationDate="2010-10-31T12:04:55.310" Score="14" ViewCount="" Body="&lt;p&gt;It's generally accepted that it takes about 10 years of dedicated experience/practice and learning to become expert in any particular professional field. Don't feel bad that you haven't done 10 years yet - feel good that you have X years headstart on people who have not done a CS degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good people recognise that they still have a lot to learn and as a result do learn - bad people fail to recognise that they need to continue to learn and so reach a plateau that they never go beyond (this is true anywhere, but especially so in programming). The fact that you are thinking about this is a good sign! I have met programmers over the years who write crappy code, are stuck in crappy junior positions and wonder why that is the case because they think they're &quot;awesome&quot;. Some (but not all) of the people you think are rockstar programmers now are probably like that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any new job will be challenging and good employers will take that into account. Yes you will be asked to things you don't immediately understand or that you find difficult - if you're not then the job is likely to be very boring and damaging to your skills progression.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastEditorUserId="1362" LastEditorDisplayName="" LastEditDate="2010-10-31T12:17:46.280" LastActivityDate="2010-10-31T12:17:46.280" />
  <row Id="15891" PostTypeId="2" ParentId="15857" CreationDate="2010-10-31T12:07:21.473" Score="3" ViewCount="" Body="&lt;p&gt;It's just a guess, but with the rise of smartphones and tablets, especially those from Apple, Silverlight &lt;em&gt;as a web technology&lt;/em&gt; doesn't seem to make much sense anymore.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-10-31T12:07:21.473" />
  <row Id="15892" PostTypeId="2" ParentId="15887" CreationDate="2010-10-31T12:14:28.483" Score="5" ViewCount="" Body="&lt;p&gt;I wouldn't worry about it too much. In my experience a year of work in the field is much more valuable and insightful than 4 years of school. GPA may matter to employers simply because you have no prior experience, but I think that after 5-7 years your resume and job experience will speak louder than what school you attended and how great your grades were.&lt;/p&gt;&#xA;" OwnerUserId="6414" LastActivityDate="2010-10-31T12:14:28.483" CommentCount="2" />
  <row Id="15893" PostTypeId="2" ParentId="15874" CreationDate="2010-10-31T12:40:13.673" Score="1" ViewCount="" Body="&lt;p&gt;As well as the knowledge sharing mentioned by the others, find examples of bugs that would have been found during a code review and measure how long they took to fix - this includes the time spent researching the problem and releasing the patched version as well as the actual time fixing the bug.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take this cost, which will probably be a least a couple of days effort, and contrast it to the time you would have spent on a code review and acting on the results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This will show your boss that code reviews are worth the expense.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-10-31T12:40:13.673" />
  <row Id="15894" PostTypeId="2" ParentId="15857" CreationDate="2010-10-31T12:46:19.750" Score="0" ViewCount="" Body="&lt;p&gt;Microsoft team did a great job when offering new techonologies. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of them seems to be &quot;revolutionary&quot; when they add new features in products like Visual Studio but sometimes it just doesn't work because many people don't use stuff like EntityDataSource and LinqDataSource. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think Silverlight might stay but it will be streamlined, there might be new features in Silverlight like HTML5.&lt;/p&gt;&#xA;" OwnerUserId="5934" LastActivityDate="2010-10-31T12:46:19.750" />
  <row Id="15895" PostTypeId="1" AcceptedAnswerId="15982" CreationDate="2010-10-31T12:47:02.683" Score="17" ViewCount="850" Body="&lt;p&gt;My personal experience has always been with web applications and lots of &quot;back-end stuff&quot; but recently I've been poking around for some personal projects to widen my knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An obvious thing to look at as I'm in the .net world is WPF but now I read this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.riagenic.com/archives/404&quot; rel=&quot;nofollow&quot;&gt;WPF has no product manager&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And from the same &lt;a href=&quot;http://www.riagenic.com/archives/363&quot; rel=&quot;nofollow&quot;&gt;guy's blog&lt;/a&gt; (he is a former Silverlight Product Manager):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;WPF has no investment, it’s kept&#xA;  together by a skeleton crew and its&#xA;  evangelism / community efforts have&#xA;  little to no funding attached to it.&#xA;  It’s dead, the question now is how is&#xA;  the corpse going to be buried and no&#xA;  amount of cheer leading will change&#xA;  that outcome in the near future.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Although it won't change my short term plans - should this affect the amount of effort I put into learning WPF? What are my alternatives to look at if I want some up-to-date winapp gui knowledge?&lt;/p&gt;&#xA;" OwnerUserId="1362" LastEditorUserId="66" LastEditorDisplayName="" LastEditDate="2010-10-31T19:41:47.667" LastActivityDate="2010-11-01T15:33:59.487" Title="WPF - What are the implications of the current rumours" Tags="&lt;future&gt;&lt;gui&gt;&lt;wpf&gt;" AnswerCount="6" CommentCount="8" FavoriteCount="3" />
  <row Id="15896" PostTypeId="1" AcceptedAnswerId="15901" CreationDate="2010-10-31T12:56:17.747" Score="7" ViewCount="460" Body="&lt;p&gt;In what kind of situations, assembly language will be the only solution?&lt;/p&gt;&#xA;" OwnerUserId="1854" LastEditorUserId="1854" LastEditorDisplayName="" LastEditDate="2010-10-31T14:21:28.280" LastActivityDate="2010-11-01T02:48:04.053" Title="When do we need assembly language?" Tags="&lt;programming-languages&gt;" AnswerCount="5" FavoriteCount="2" />
  <row Id="15897" PostTypeId="1" AcceptedAnswerId="15904" CreationDate="2010-10-31T13:01:25.217" Score="0" ViewCount="80" Body="&lt;p&gt;Hi&#xA;We have a CMS application that lets people create websites under our domain.&#xA;The system was built a few years ago and it used a method that transfers parameters such as website id, folder code and more using the url. this method created a giant url for every item in the website   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&#xA;My domain is www.domain.com&lt;br&gt;&#xA;A users website on my domain is www.domain.com/user&lt;br&gt;&#xA;and every time that a user enters his website he gets a link like this&#xA;www.domain.com/page.aspx?code=blablasdsdsdsdsds&amp;amp;folder=blablablablablabla and more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are trying to reduce the string size in the url.&#xA;What are our options? can we show the user one url like a virtual one and still work the same with the old url?&#xA;We are trying to locate a solution that wont make us rewrite our entire application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the application is built in c# and the web server is iis 6.&#xA;Thanks&lt;/p&gt;&#xA;" OwnerUserId="6792" LastActivityDate="2010-11-18T15:08:29.227" Title="shortening url to cms" Tags="&lt;shortcuts&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="15898" PostTypeId="2" ParentId="15856" CreationDate="2010-10-31T13:13:48.433" Score="2" ViewCount="" Body="&lt;p&gt;Often when I can't sleep at night. Usually because I have a problem on my mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some quite elegant and esoteric (and effective) solutions have occurred to me in the middle of the night.&lt;/p&gt;&#xA;" OwnerUserId="4757" LastActivityDate="2010-10-31T13:13:48.433" CommentCount="1" />
  <row Id="15899" PostTypeId="2" ParentId="15857" CreationDate="2010-10-31T13:23:38.547" Score="3" ViewCount="" Body="&lt;p&gt;This is not very surprising.  With all due apologies to all the devs who picked it, Silverlight has been a real joke from the beginning.  No one's using it on their websites. The target market is saturated by Flash, and three and a half years of Microsoft pushing their alternative hasn't led to widespread adoption, and now that HTML 5 is coming out on all the major browsers, the market really won't bear &lt;em&gt;three&lt;/em&gt; competing, mutually incompatible solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now Microsoft is saying they're going to focus on it as the standard for Windows Phone 7 programming.  This is the final nail in the coffin, since by all signs, WP7 is looking to be a huge flop.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-10-31T13:23:38.547" CommentCount="2" />
  <row Id="15900" PostTypeId="2" ParentId="15736" CreationDate="2010-10-31T13:34:41.720" Score="3" ViewCount="" Body="&lt;p&gt;The true value of egoless programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At some level I always knew that ego and programming don't mix, but never quite reasoned out the consequences. The notion that you have to actively review and find fault in your own practices is something that I've only started realizing last year. I'm also learning to actively seek out criticism of my designs (in both UI and code).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be honest however, I'm still learning how to drop the ego, and I probably will be learning how to do that for the rest of my programming career.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-10-31T13:34:41.720" />
  <row Id="15901" PostTypeId="2" ParentId="15896" CreationDate="2010-10-31T13:51:32.860" Score="7" ViewCount="" Body="&lt;p&gt;When you want to write low-level stuff like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;an Operating System&lt;/li&gt;&#xA;&lt;li&gt;drivers and communication with custom hardware/electronics.&lt;/li&gt;&#xA;&lt;li&gt;an Compiler (assembler can be the output)&lt;/li&gt;&#xA;&lt;li&gt;optimizations&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-10-31T13:51:32.860" CommentCount="1" />
  <row Id="15902" PostTypeId="2" ParentId="15829" CreationDate="2010-10-31T13:54:27.280" Score="7" ViewCount="" Body="&lt;p&gt;Get your house in order and ensure that things are setup for a collaborative effort.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Version Control&lt;/strong&gt; - You mentioned that you already have an SVN server, which is great. Make sure that you have established the repo and organized the projects in a standardized way.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Automated Builds&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Issue/Bug tracking software&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Unit/Integration tests&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Continuous Integration server&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Having the following items setup and integrated into your development process makes it much easier to bring people on board, track what is being done, and keep things from getting &quot;messy&quot;.&lt;/p&gt;&#xA;" OwnerUserId="4922" LastActivityDate="2010-10-31T13:54:27.280" CommentCount="1" />
  <row Id="15903" PostTypeId="2" ParentId="15896" CreationDate="2010-10-31T13:59:48.133" Score="2" ViewCount="" Body="&lt;p&gt;Microcontrollers.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastEditorUserId="5512" LastEditorDisplayName="" LastEditDate="2010-10-31T18:59:33.533" LastActivityDate="2010-10-31T18:59:33.533" CommentCount="2" />
  <row Id="15904" PostTypeId="2" ParentId="15897" CreationDate="2010-10-31T14:05:14.020" Score="1" ViewCount="" Body="&lt;p&gt;You might want to consider URL Rewrite (or friendly URL) techniques. IIS6 could be a little tricky though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can find lots of resource just by google-ing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.google.com/search?q=url+rewrite+asp.net&quot; rel=&quot;nofollow&quot;&gt;http://www.google.com/search?q=url+rewrite+asp.net&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example can be found in this SO post:&lt;br&gt;&#xA;&lt;a href=&quot;http://stackoverflow.com/questions/2262/asp-net-url-rewriting&quot;&gt;http://stackoverflow.com/questions/2262/asp-net-url-rewriting&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2262" LastActivityDate="2010-10-31T14:05:14.020" />
  <row Id="15905" PostTypeId="2" ParentId="15887" CreationDate="2010-10-31T15:05:24.287" Score="7" ViewCount="" Body="&lt;p&gt;I hate to break it to you, but that feeling never completely goes away. I've been at this game since the early 1990's and still feel that I am running as fast as I can just to keep my skills relevant. In programming and computers in general things just move so fast. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In some respects that levels the playing field for people like you who are new to the field. At least you don't have to compete with someone who has a decade more experience on the technologies you are likely to use. We all have to reboot to the new thing every 2-3 years.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-31T15:05:24.287" />
  <row Id="15906" PostTypeId="2" ParentId="15896" CreationDate="2010-10-31T15:06:58.980" Score="2" ViewCount="" Body="&lt;p&gt;I compile C code to assembler to study how the compiler works. Try to play around with the output. Understand what happens under the hood when we choose some construct. Like if-else-if, switch case and array lookup. How does the compiler treat them? Which will be faster? Assembler helps a lot in understanding how higher constructs work.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-10-31T15:06:58.980" />
  <row Id="15908" PostTypeId="2" ParentId="15895" CreationDate="2010-10-31T15:13:05.643" Score="9" ViewCount="" Body="&lt;p&gt;What does &quot;dead&quot; mean in a world where VB6 is still &quot;supported&quot; on Windows 7?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;WPF will be around as an option for a &lt;em&gt;very&lt;/em&gt; long time (in programming years, anyway) and it's still being actively developed as far as I can tell.  However, being pragmatic, we should be doing the &quot;right&quot; thing anyway, which is to maintain a separation of concerns, and reduce and isolate dependencies.  Therefore, keep your dependencies on WPF isolated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you keep your ViewModels clean (regular objects that implement INotifyPropertyChanged) then when the next magical must-have UI framework comes along, you should only have to re-design the Views, and switch over your View-to-ViewModel mapping logic.  You'll only do that if there's a real incentive to change, too.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-10-31T15:13:05.643" CommentCount="7" />
  <row Id="15909" PostTypeId="2" ParentId="15873" CreationDate="2010-10-31T15:27:07.397" Score="6" ViewCount="" Body="&lt;p&gt;If I had to generalize, here's what my experience has been:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Engineers (or just EE's) tend to do better in the &quot;perfection of the small&quot;.  Given a small programming task, they think very long and hard about all the edge cases, and are more likely to end up building a piece of software that's very robust.  It's usually driven from a top-down design-it-all-up-front approach, because that's what they're used to in hardware.  It usually involves the use of state machines, because they're used to designing them for hardware, and it fits with the &quot;big design&quot; approach.  On the flip side, they aren't thinking as much about scalability or maintainability.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Your traditional developers are better at managing large complexity, mostly because the training pushes breaking down problems into smaller more manageable bits.  They're taught to avoid the big design, and just separate the concerns, write tests, and make the tests pass.  Typically there are lots of little missed edge cases, just due to complexity &amp;amp; time, but those eventually get covered off.  Developers tend to take advantage of the fact that it's just software and it should be (or is) easy to change.  When EE's work with hardware, they don't have this advantage, and I think it takes time to make the transition.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As I said, that's my generalized experience.  It's not true in every case.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-10-31T15:27:07.397" CommentCount="1" />
  <row Id="15910" PostTypeId="2" ParentId="15887" CreationDate="2010-10-31T15:41:42.783" Score="3" ViewCount="" Body="&lt;p&gt;This is something that I have been taught in a few different places, particularly as a horseman and a martial artist and then kind of gradually came to realise is something akin to a universal rule for doing stuff:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The most important 80% of a skill is good basics.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When it comes down to it, there are always going to be new languages to learn and new libraries to work with. You can't expect to go into a career where you change job from time to time without having to do that. But whatever you are using, you'll still need to write well formatted, well structured, maintainable code that works and is easy to read and understand. If you can do that, you've got the potential to be a great programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may learn to do a lot of complicated things in the interrim, but in the long run you are likely to find that it's the simple things you come back to. Like Bruce Lee talking about the martial art he created:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Before I studied the art, a punch to me was just like a punch, a kick just like a kick. After I learned the art, a punch was no longer a punch, a kick no longer a kick. Now that I've understood the art, a punch is just like a punch, a kick just like a kick. The height of cultivation is really nothing special. It is merely simplicity; the ability to express the utmost with the minimum. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-10-31T15:41:42.783" />
  <row Id="15911" PostTypeId="2" ParentId="15895" CreationDate="2010-10-31T15:55:45.257" Score="6" ViewCount="" Body="&lt;p&gt;An alternative view on the future, from a present employee is &lt;a href=&quot;http://10rem.net/blog/2010/10/28/the-present-and-future-of-wpf&quot; rel=&quot;nofollow&quot;&gt;the-present-and-future-of-wpf&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6797" LastActivityDate="2010-10-31T15:55:45.257" CommentCount="3" />
  <row Id="15912" PostTypeId="2" ParentId="15895" CreationDate="2010-10-31T15:55:59.027" Score="0" ViewCount="" Body="&lt;p&gt;Close your ear and just go with WPF. It that suits you. If Microsoft does absolutely nothing for WPF in terms of developing and advertising, they will at least support it in their future platforms for coming years no doubt. So, what else you need?&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-10-31T15:55:59.027" CommentCount="2" />
  <row Id="15913" PostTypeId="2" ParentId="15896" CreationDate="2010-10-31T16:18:58.917" Score="7" ViewCount="" Body="&lt;p&gt;When doing embedded programming for a small microcontroller, even if a C compiler is available for the CPU, you may need to resort to assembly language either to reduce the size of the code or to achieve maximum speed, or (usually) both.  Some microcontrollers have have only a few KB of program memory, and less than 1 KB of RAM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However compilers for microcontroller architectures are pretty good these days, and I seldom have to resort to assembler anymore.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-10-31T18:21:27.063" LastActivityDate="2010-10-31T18:21:27.063" />
  <row Id="15914" PostTypeId="2" ParentId="15887" CreationDate="2010-10-31T16:20:20.467" Score="2" ViewCount="" Body="&lt;p&gt;Reading a lot is nice, but you have to use what you've read in code to actually &lt;em&gt;learn&lt;/em&gt; it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, write lots of code doing real things with what you've learned.  Some you will find is nice but you don't like, and others you will use in every project from now on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you cannot immediately land a job, then join a public open source project and help them.  Do it on all levels - not only coding, but documenting and testing.  This shows future employees how you work which can give you the edge landing the job.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-31T16:20:20.467" />
  <row Id="15915" PostTypeId="2" ParentId="15857" CreationDate="2010-10-31T16:31:20.573" Score="8" ViewCount="" Body="&lt;p&gt;Maybe &quot;killing&quot; is a bit of a strong word. I think - and it has been reported widely (Mary-Jo Foley, etc.) that Microsoft is &lt;em&gt;shifting&lt;/em&gt; their focus from Silverlight to HTML 5. I think Silverlight will continue to be the the platform of choice for super-rich web experiences and maybe video-heavy stuff (for example, what they did with the NBC online coverage of the 2010 Winter Olympics). I also think that we'll see Silverlight increasingly in the enterprise &quot;space&quot; - instead of delivering &quot;fat&quot; clients in WPF or WinForms, I can definitely see Silverlight, esp. running out-of-browser, finding a home in enterprise software development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a strategic perspective, I read a &lt;a href=&quot;http://www.betanews.com/joewilcox/article/Why-is-Microsoft-suddenly-so-hot-for-HTML5/1288372263&quot; rel=&quot;nofollow&quot;&gt;post&lt;/a&gt; with a great take on why Microsoft is suddenly so interested in HTML 5. For a start, it gives them an &quot;in&quot; to the iOS market. Secondly, it shifts the game to an area where, relative to Apple, they have a huge advantage - the Cloud. Anybody who's used Apple's MobileMe service can attest to the fact that, while Apple does a lot of things well, currently the Cloud isn't one of them.&lt;/p&gt;&#xA;" OwnerUserId="5677" LastActivityDate="2010-10-31T16:31:20.573" CommentCount="3" />
  <row Id="15916" PostTypeId="1" CreationDate="2010-10-31T16:36:24.147" Score="6" ViewCount="298" Body="&lt;p&gt;Hello everyone, this cam be considered a continuation of my last question - &lt;a href=&quot;http://programmers.stackexchange.com/questions/15813/any-tips-to-learn-how-to-program-with-severe-adhd&quot;&gt;http://programmers.stackexchange.com/questions/15813/any-tips-to-learn-how-to-program-with-severe-adhd&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to create some fast paced side side/top scrollers, and eventually a turn based/action RPG. I have been learning Python over the last two weeks, but I am not sure that I like it. I am not fond of the indentation vs braces. I don't really get to apply my knowledge, it seems that I am going through theory over and over.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been currently looking into Flash and ActionScript. It appears that you can get visual results sooner than later, perhaps I am mistaken? I did want to create games for the iPhone as I am primarily an OS X user, but C#/XNA and Unity3D has been recommended as well. It may be safe to say that I am not really platform specific, I just want to break into indie game development as a side hobby for now. Sure developing for the iPhone would be great, but I just want to learn and have fun along the way. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is Flash and ActionScript a good starting point for a person like me? I own Creative Suit 3 and have access to Lynda video training and LiveLesson videos.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like Thorbjørn Ravn Andersen said in the link above, spending too much time on which language is better over another is killing me. I am going back and forth between thinking this language is better than that for what I want to do, but I do not even have the experience to make such an analyses. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can read programming texts, but with my ADHD it becomes difficult when I don't produce anything of interest. Video training seems to be optimal, but I mix them together for optimal understanding. I want to learn programming, but I also want to see results sooner than later. I know beggars can't be choosers, but I am sort of lost at the moment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To reiterate, I want to learn programming and create some fun scrollers for the time being. Eventually leading up to a more complicated action rpg. If you can refrain from advising Python as I feel that I have a bad taste with it, that would be great. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I left anything out, let me know, I will be happy to clarify things. But with all that said, what is the best language and tools for me to learn to get started? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry for the wall of text and I appreciate any advice given. Thank you in advance to anyone who replies.&lt;/p&gt;&#xA;" OwnerUserId="6765" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-04-26T15:03:34.260" LastActivityDate="2011-04-26T15:03:34.260" Title="What is the best language and framework for my situation?" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;best-practices&gt;&lt;self-improvement&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="1" />
  <row Id="15917" PostTypeId="2" ParentId="15916" CreationDate="2010-10-31T16:44:17.893" Score="1" ViewCount="" Body="&lt;p&gt;In your vast search, make sure to check out the 2D physics engine &lt;a href=&quot;http://sites.google.com/site/physics2d/&quot; rel=&quot;nofollow&quot;&gt;Physics2D.NET&lt;/a&gt; for the .NET platform.  You can check out the arena module in &lt;a href=&quot;http://soapboxcore.com/&quot; rel=&quot;nofollow&quot;&gt;SoapBox Core&lt;/a&gt; to see how to build a WPF presentation layer on top of it.  (Disclaimer: I'm the author of SoapBox Core).&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-10-31T16:44:17.893" CommentCount="2" />
  <row Id="15918" PostTypeId="2" ParentId="14124" CreationDate="2010-10-31T16:56:03.403" Score="1" ViewCount="" Body="&lt;p&gt;how did this person become a manager of programmers while demonstrating such a poor grasp of the fundamentals of project engineering? i don't see this ending well, i doubt anything you could recommend will make much of a difference. if your manager is responsive to suggestions, i would recommend an approach that conveys data in a minimally invasive way...for example, an email sent at the end of the day that provides a three-line summary of what you accomplished. i can't imagine any amount of work accomplished over an eight hour period that can't be summarized in thirty words or less&lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-10-31T16:56:03.403" CommentCount="1" />
  <row Id="15919" PostTypeId="2" ParentId="15857" CreationDate="2010-10-31T17:02:02.023" Score="1" ViewCount="" Body="&lt;p&gt;That is why we still doing good old-school WinAPI programming using Delphi. Better spend time for task solving than waste it on so called &quot;new technologies&quot;. All that &quot;new&quot; in .NET existed a long before it in Borland Delphi. Personally, I think that technology should stay around at least 10 years before one should try it and depend on it.&lt;/p&gt;&#xA;" OwnerUserId="3531" LastActivityDate="2010-10-31T17:02:02.023" CommentCount="1" />
  <row Id="15920" PostTypeId="2" ParentId="6200" CreationDate="2010-10-31T17:20:06.477" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I do not believe however that the&#xA;  rate of equal financial success is&#xA;  equal to that of--say--stock brokers&#xA;  (despite the last few years)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This belief may mean you have may have a problem with selection bias.  You probably aren't interacting with brokers, lawyers, and bankers much, so you only know about the ones that are in the news. Stock brokers, bankers, lawyers, and entrepreneurs don't get in the news when they are middle class, and are only in the news briefly when they go broke. Therefore you get the impression they are all rich, when in fact only a very small fraction get to be rich.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the United States at least, census data indicates that the median income of software engineers is higher then the income of 80% of the population. It is less then that of doctors and lawyers, but on a par or higher then most other engineering careers. See for example the &lt;a href=&quot;http://www.bls.gov/oes/current/oes_nat.htm#15-0000&quot; rel=&quot;nofollow&quot;&gt;May 2009 National Occupational Employment and Wage Estimates&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as other programmers actually becoming rich, it is rare (just as it is for other fields), but thousands of programmers at Microsoft and Google became millionaires during the last three decades. It's mostly likely to happen when a major shift in technology it taking place.&lt;/p&gt;&#xA;" OwnerUserId="4828" LastEditorUserId="4828" LastEditorDisplayName="" LastEditDate="2010-10-31T18:03:49.230" LastActivityDate="2010-10-31T18:03:49.230" CommunityOwnedDate="2011-02-02T16:52:00.060" CommentCount="2" />
  <row Id="15921" PostTypeId="2" ParentId="15829" CreationDate="2010-10-31T17:25:20.263" Score="1" ViewCount="" Body="&lt;p&gt;The book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1933988711&quot; rel=&quot;nofollow&quot;&gt;Brownfield Application Development in .Net&lt;/a&gt; has some ideas that I think should help. Part of the advice is how to set things up so that they're repeatable across team members, and across time. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-10-31T17:25:20.263" />
  <row Id="15922" PostTypeId="2" ParentId="15857" CreationDate="2010-10-31T17:27:27.533" Score="2" ViewCount="" Body="&lt;p&gt;I think it's all just conjecture at this stage. With the plan for an App Store built into Windows 8, the likely app technology would be Silverlight (given how it can be sandboxed in OOB, etc.). SL is likely to be around for years to come.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing to consider about HTML5 is that the shift mentioned may be away from current crummy non-standard IE programming, not away from SL.&lt;/p&gt;&#xA;" OwnerUserId="6258" LastActivityDate="2010-10-31T17:27:27.533" CommentCount="3" />
  <row Id="15923" PostTypeId="2" ParentId="9213" CreationDate="2010-10-31T17:30:40.163" Score="2" ViewCount="" Body="&lt;p&gt;See &lt;a href=&quot;http://en.wiktionary.org/wiki/yak_shaving&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;Yak shaving&lt;/code&gt;&lt;/a&gt;, aka &quot;Shaving the Yak&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A development environment has to be personalized to some extent, because we are all unique individuals who think differently. Some of us use vim, some use eclipse, the crazies use emacs :-), but we have to do some tweaking to get the plugins, the colors, and the shortcuts as we like them. I use vim, so I install my favored developer font (Dejavu Sans Mono) and my .vim, .vimrc and .gvimrc from my home machine, and I'm 90% done. The rest is setting up aliases or my command-line settings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's well known that we periodically need to take a mental break so if you can fit in tweaks in those 10-15 minute pauses nobody should complain. Plus I feel good when I get a tweak in and can immediately start working with it.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-10-31T17:30:40.163" />
  <row Id="15924" PostTypeId="2" ParentId="14570" CreationDate="2010-10-31T17:31:01.997" Score="1" ViewCount="" Body="&lt;p&gt;I've found this series helpful in the past - &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.knowing.net/index.php/2006/06/16/15-exercises-to-know-a-programming-language-part-1/&quot; rel=&quot;nofollow&quot;&gt;http://www.knowing.net/index.php/2006/06/16/15-exercises-to-know-a-programming-language-part-1/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.knowing.net/index.php/2006/06/16/15-exercises-to-know-a-programming-language-part-2-data-structures/&quot; rel=&quot;nofollow&quot;&gt;http://www.knowing.net/index.php/2006/06/16/15-exercises-to-know-a-programming-language-part-2-data-structures/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.knowing.net/index.php/2006/06/16/15-exercises-to-know-a-programming-language-part-3-libraries-frameworks-and-mashups/?doing_wp_cron&quot; rel=&quot;nofollow&quot;&gt;http://www.knowing.net/index.php/2006/06/16/15-exercises-to-know-a-programming-language-part-3-libraries-frameworks-and-mashups/?doing_wp_cron&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-10-31T17:31:01.997" />
  <row Id="15925" PostTypeId="1" AcceptedAnswerId="15934" CreationDate="2010-10-31T17:33:51.203" Score="10" ViewCount="339" Body="&lt;p&gt;Usually when talking about coding standards we refer to the code of the program itself, but what about the unit tests? Are there certain coding standards guidelines that are unique to unit tests? What are they? &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2011-03-07T22:51:51.680" Title="Unit test coding standards" Tags="&lt;coding-standards&gt;&lt;unit-tests&gt;" AnswerCount="6" CommentCount="0" FavoriteCount="5" />
  <row Id="15926" PostTypeId="1" AcceptedAnswerId="15988" CreationDate="2010-10-31T17:40:49.720" Score="4" ViewCount="48" Body="&lt;p&gt;I am a web developer and i want to take my web app to the cloud.Could anyone take me through the steps involved.Do they like have a lamp installation which they will assign to me or will i continue hosting my data and scripts?.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there fees associated with listing my app to the salesforce marketplace?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="6800" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-11-01T05:14:27.177" LastActivityDate="2010-11-01T05:14:27.177" Title="Are there fees associated with listing my app to the salesforce marketplace?" Tags="&lt;sales&gt;" AnswerCount="1" />
  <row Id="15927" PostTypeId="2" ParentId="15874" CreationDate="2010-10-31T18:13:28.077" Score="2" ViewCount="" Body="&lt;p&gt;Code Reviews Can:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Lead to the development of a code library that can be shared&lt;/li&gt;&#xA;&lt;li&gt;Provide a uniform naming convention for variables, constantants, database tables&lt;/li&gt;&#xA;&lt;li&gt;Help streamline processes&lt;/li&gt;&#xA;&lt;li&gt;Can also lead to a review of the discover process and requirements gathering&lt;/li&gt;&#xA;&lt;li&gt;Lead to the development of widgets we can sell as addons to applications. (&lt;strong&gt;Build it once get paid each time we implement it&lt;/strong&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Lead to new products&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Cons&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;We don't have time for that&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If that's true then how come we always seem to have time to do things two or three times for the same customer but we never have enough time to do it right the first time.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastEditorUserId="1093" LastEditorDisplayName="" LastEditDate="2010-11-03T19:04:58.607" LastActivityDate="2010-11-03T19:04:58.607" />
  <row Id="15928" PostTypeId="1" AcceptedAnswerId="15937" CreationDate="2010-10-31T18:15:04.303" Score="14" ViewCount="457" Body="&lt;p&gt;Can any one explain about the agile methodology in simple sentences?&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2011-01-22T15:30:22.203" Title="What is agile methodology?" Tags="&lt;development-process&gt;&lt;agile&gt;" AnswerCount="6" CommentCount="8" FavoriteCount="6" />
  <row Id="15929" PostTypeId="2" ParentId="4404" CreationDate="2010-10-31T18:18:24.160" Score="1" ViewCount="" Body="&lt;p&gt;I was exposed to counting in multiple bases in my third grade class back in the 60s. It was part of the &quot;new math&quot; curriculum. They were trying to teach the idea that one number can have multiple representations, but they all mean the same thing. I loved it, but apparently everybody else in the US hated it. &quot;New math&quot; is now widely reviled and blamed for the moral dissolution of America's youth in the sixties. After &quot;new math&quot; went away, I hated the rest of my grade school and high school math classes. Things got better when I got to college.&lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-10-31T18:18:24.160" CommentCount="1" />
  <row Id="15930" PostTypeId="1" AcceptedAnswerId="15951" CreationDate="2010-10-31T18:19:54.567" Score="4" ViewCount="204" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where I work there are a few experienced software developers with a software background, but the majority of developers are physicists or chemists with excellent domain knowledge but limited experience when it comes to developing high quality, maintainable software.  To address this we have started running regular talks and workshops.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What topics do you think we should discuss to help make these people more effective software developers?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In particular we are struggling to gain enthusiasm for these talks as many developers do not see software as an interesting subject.  &lt;strong&gt;How could we make these more interesting to people without a software background?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="6104" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-10-31T19:21:39.977" LastActivityDate="2010-11-02T01:45:17.517" Title="How can we make software development best practices more interesting to people without a software background?" Tags="&lt;best-practices&gt;&lt;design-patterns&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="1" />
  <row Id="15931" PostTypeId="2" ParentId="15873" CreationDate="2010-10-31T18:20:05.380" Score="1" ViewCount="" Body="&lt;p&gt;I started out with a BSEE, went to work designing logic circuits for a large telephone R&amp;amp;D lab, and (this was some 40 years ago) realized most of what I was building could eventually be done with a computer program. So I went back and got an MSCS degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have always been interested in computer architecture, and what happens at the hardware level.  Most of my career has been spent designing embedded microcontroller systems, where I try to find the best match between what is done in hardware and what is done in firmware.  However, I've done quite a bit of web programming, and some database design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without my background in CS, I think I would have a lot more trouble grasping more abstract concepts.   Besides many different assembler languages, I have used C, C++, C#, Pascal, Delphi, Perl, PHP, and some Lisp.  I am currently trying to learn Ruby and Python.  OO design I am pretty comfortable with.  Functional programming I am not (yet).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Same for databases.  I understand normalization.  I have trouble with some of the more esoteric JOINs and avoid them.  I'm not really comfortable with something unless I understand what is going on under the hood.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to be able too &quot;see&quot; how the computer would run the program in my head.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-11-01T15:56:32.597" LastActivityDate="2010-11-01T15:56:32.597" CommentCount="1" />
  <row Id="15932" PostTypeId="2" ParentId="15928" CreationDate="2010-10-31T18:27:02.480" Score="20" ViewCount="" Body="&lt;p&gt;I think nothing puts it better than the Agile Manifesto itself:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are uncovering better ways of developing&lt;br&gt;&#xA;software by doing it and helping others do it.&lt;br&gt;&#xA;Through this work we have come to value:  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Individuals and interactions&lt;/strong&gt; over processes and tools&lt;br&gt;&#xA;&lt;strong&gt;Working software&lt;/strong&gt; over comprehensive documentation&lt;br&gt;&#xA;&lt;strong&gt;Customer collaboration&lt;/strong&gt; over contract negotiation&lt;br&gt;&#xA;&lt;strong&gt;Responding to change&lt;/strong&gt; over following a plan&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, while there is value in the items on&lt;br&gt;&#xA;the right, we value the items on the left more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;from &lt;a href=&quot;http://agilemanifesto.org/&quot; rel=&quot;nofollow&quot;&gt;http://agilemanifesto.org/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6104" LastActivityDate="2010-10-31T18:27:02.480" CommentCount="3" />
  <row Id="15933" PostTypeId="2" ParentId="6200" CreationDate="2010-10-31T18:31:58.587" Score="0" ViewCount="" Body="&lt;p&gt;From this &lt;a href=&quot;http://news.bbc.co.uk/1/hi/8151355.stm&quot; rel=&quot;nofollow&quot;&gt;BBC article about salaries in the UK&lt;/a&gt; we can see that in the middle of 2009 earning £118027 will put you in the top 1% of UK earners (excluding self-employed, which the update to the question indicates should be excluded anyway). I think that would qualify as &quot;rich&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, looking at my favourite UK job stats site &lt;a href=&quot;http://www.itjobswatch.co.uk/default.aspx?page=1&amp;amp;sortby=3&amp;amp;orderby=1&amp;amp;q=&amp;amp;id=0&amp;amp;lid=2618&quot; rel=&quot;nofollow&quot;&gt;IT JobsWatch&lt;/a&gt; we can see that there were at least 50 permanent positions where the &lt;strong&gt;average&lt;/strong&gt; salary for that sort of position is that much. If we include jobs which weren't advertised through the sources where they gather their stats from, jobs with a significant bonus culture and contract positions then the number will be higher again. OK, so most of those are management - but take a look at the &lt;a href=&quot;http://www.itjobswatch.co.uk/jobs/uk/csharp.do&quot; rel=&quot;nofollow&quot;&gt;salary histogram for something like C#&lt;/a&gt; and again you'll see that there have been jobs offered in that very high salary range.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I think the answer is, yes, there are rich programmers - but as in most professions the number is a small percentage of the total.  &lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-31T18:31:58.587" CommunityOwnedDate="2011-02-02T16:52:00.060" CommentCount="1" />
  <row Id="15934" PostTypeId="2" ParentId="15925" CreationDate="2010-10-31T18:33:09.313" Score="4" ViewCount="" Body="&lt;p&gt;Off the top of my head, I can think of three differences in coding style for test code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In naming test methods, I follow the pattern of &lt;code&gt;shouldDoSomethingWhenSomeConditionHolds&lt;/code&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Inside the test, it is customary to follow the following spacing pattern:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;@Test&#xA;shouldReturnAccountBalenceWhenGetBalenceIsCalled() {&#xA;    // Some lines &#xA;    // of setup code&#xA;    // go here.&#xA;&#xA;    // The action being tested happens after a blank line.&#xA;&#xA;    // An assertion follows another blank line.&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Some insist on only one assertion per test, but this is far from universal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The DRY (Don't Repeat Yourself) is less of a consideration in test code than in production code.  While some repeated code should be placed in a setUp method or a testUtils class, striving for zero repetition in test code will lead to tightly coupled and inflexible tests, which discourages refactoring.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-10-31T18:33:09.313" CommentCount="2" />
  <row Id="15935" PostTypeId="2" ParentId="15928" CreationDate="2010-10-31T18:34:56.773" Score="3" ViewCount="" Body="&lt;p&gt;In one sentence this looks like this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Agile software development is a group of software development methodologies based on &lt;strong&gt;iterative&lt;/strong&gt; and &lt;strong&gt;incremental&lt;/strong&gt; development, where requirements and solutions evolve &lt;strong&gt;through collaboration&lt;/strong&gt; between &lt;strong&gt;self-organizing, cross-functional teams&lt;/strong&gt;. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is coming from the wikipedia definition, and I like it very much. I highlighted core principles.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-10-31T18:34:56.773" />
  <row Id="15936" PostTypeId="2" ParentId="15928" CreationDate="2010-10-31T18:43:58.840" Score="2" ViewCount="" Body="&lt;p&gt;Andy has already linked to the Agile Manifesto, which I think just about covers it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's useful to look at where the Agile Manifesto came from as well. There were a number of methodologies out there which had some common elements and a lot of similar motivations: Extreme Programming (XP), Scrum, DSDM, Adaptive Software Development, Crystal, Feature-Driven Development, Pragmatic Programming (list from &lt;a href=&quot;http://alistair.cockburn.us/Agile+software+development%3A+the+business+of+innovation&quot; rel=&quot;nofollow&quot;&gt;Alistair Cockburn&lt;/a&gt;). The people proposing those methodologies decided to come up with a marketing term to cover the things which they had in common so that the force of what they were saying would be enhanced.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interestingly (according to what someone told me) there were a number of names on the shortlist which could have been picked instead of &quot;Agile&quot; - one of which was &quot;Adaptive&quot;. I personally think that as a single word that sums up better what agile is really about better than &quot;agile&quot;!&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-31T18:43:58.840" />
  <row Id="15937" PostTypeId="2" ParentId="15928" CreationDate="2010-10-31T18:44:16.470" Score="7" ViewCount="" Body="&lt;p&gt;Agile is a lot of things and practices, but I think the core of it is just iterative development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Iterative:&lt;/strong&gt;&#xA;Think a bunch of very small waterfalls.  That is, the waterfall method (requirements-&gt;spec-&gt;code-&gt;test), but instead of doing it over the course of a year or so, you do it over the course of a few weeks for a manageable chunk of the overall project.  At the end of 'iteration/sprint/increment', you have a small but complete and tested set of additional functionality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This allows you to rapidly change the course of the project if it turns out that what you're doing isn't what the customer wants, or the business needs change, or whatever.  Hence the term &quot;agile.&quot;&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-10-31T18:44:16.470" />
  <row Id="15938" PostTypeId="2" ParentId="15925" CreationDate="2010-10-31T18:53:35.893" Score="6" ViewCount="" Body="&lt;p&gt;Roy Osherove recommends the following pattern for naming your tests:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;NameOfMethodUnderTest_StateUnderTest_ExpectedBehavior() &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;See &lt;a href=&quot;http://weblogs.asp.net/rosherove/archive/2005/04/03/TestNamingStandards.aspx&quot; rel=&quot;nofollow&quot;&gt;http://weblogs.asp.net/rosherove/archive/2005/04/03/TestNamingStandards.aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-10-31T18:53:35.893" CommentCount="1" />
  <row Id="15939" PostTypeId="2" ParentId="15925" CreationDate="2010-10-31T18:55:17.537" Score="3" ViewCount="" Body="&lt;p&gt;The main thing is to remember that unit tests are essentially mini-specifications. This means that the emphasis must always be on readability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Firstly, this means that names must clearly communicate what is under test and what is being asserted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly though, which is sometimes forgotten, is that as specifications they should be doing just that - specifying behaviour. That is, unit tests should not contain logic - or potentially they fall into the trap of repeating the program's functionality rather than testing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes the tests will involve objects which are complex to set up, you should strive to keep this set up logic separate from your tests using something like an &lt;a href=&quot;http://martinfowler.com/bliki/ObjectMother.html&quot; rel=&quot;nofollow&quot;&gt;object mother&lt;/a&gt; or a &lt;a href=&quot;http://geekswithblogs.net/Podwysocki/archive/2008/01/08/118362.aspx&quot; rel=&quot;nofollow&quot;&gt;test data builder&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll just round off with a few book recommendations:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131495054&quot; rel=&quot;nofollow&quot;&gt;xUnit Test Patterns: Refactoring Test Code:&lt;/a&gt; Excellent book, some say it's a bit dry but I don't think so. Goes into a lot of detail about lots of different ways of organising tests and how to keep them maintainable. Relevant if you're using something like NUnit etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1933988274&quot; rel=&quot;nofollow&quot;&gt;The Art of Unit Testing: With Examples in .Net&lt;/a&gt;: The best book on the nitty-gritty of writing and maintaining tests. Despite being really new I find the mocking sections a little dated already as AAA syntax is now pretty standard rather than just another way of doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321503627&quot; rel=&quot;nofollow&quot;&gt;Growing Object-Oriented Software, Guided by Tests&lt;/a&gt;: This book is just amazing! By far the best unit testing book and the only advanced one which puts unit testing as a first class citizen in the design process. Was reading this when it was a public beta and been recommending since. Excellent real-worldish worked example used throughout the book. Would recommend reading Roy's book first though.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastEditorUserId="1362" LastEditorDisplayName="" LastEditDate="2010-10-31T19:46:09.223" LastActivityDate="2010-10-31T19:46:09.223" CommentCount="2" />
  <row Id="15940" PostTypeId="2" ParentId="15916" CreationDate="2010-10-31T18:57:54.017" Score="2" ViewCount="" Body="&lt;p&gt;My recommendation would be to check out &lt;a href=&quot;http://unity3d.com/&quot; rel=&quot;nofollow&quot;&gt;Unity&lt;/a&gt;, as it is one of the simplest, yet deceptively powerful, engines I have run across. The engine is &lt;a href=&quot;http://unity3d.com/support/documentation/&quot; rel=&quot;nofollow&quot;&gt;well documented&lt;/a&gt;, &lt;a href=&quot;http://unity3d.com/support/community&quot; rel=&quot;nofollow&quot;&gt;the community&lt;/a&gt; is very active and friendly, and there are a number of &lt;a href=&quot;http://unity3d.com/support/resources/tutorials/&quot; rel=&quot;nofollow&quot;&gt;tutorials&lt;/a&gt; available to help you get up to speed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although Unity has a bit of a learning curve, I think it is best for your situation for a couple of reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Workflow&lt;/strong&gt; - Unity uses a workflow that is similar in many aspects to what is used in the game industry, meaning that your time spent learning is an investment toward your career, not just learning a tool.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Support&lt;/strong&gt; - Unity has a very active and friendly community, which is something a lot of smaller engines don't have.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Power&lt;/strong&gt; -  Unity comes with a lot of features and supports a number of platforms.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4777" LastActivityDate="2010-10-31T18:57:54.017" CommentCount="2" />
  <row Id="15941" PostTypeId="2" ParentId="15916" CreationDate="2010-10-31T19:08:13.520" Score="5" ViewCount="" Body="&lt;p&gt;To be frank I think you underestimate the amount of learning you will have to do to create a stunning game in &lt;em&gt;any&lt;/em&gt; language, and I would suggest that you reconsider what exactly it is you want to do as you should go for short, achievable goals.   If you want to learn to program, then great, plenty of that - think it over and ask again.  If you want to create a fun game, then I would strongly suggest you to use a pre-built game engine. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is plenty of challenges in making a visually interesting, and &lt;em&gt;fun&lt;/em&gt; game, without also having to do all boring engine details.  Just to get you an idea of how much that may amount to then have a look at the Wolfenstein or Doom source code, and imagine you would have to &lt;em&gt;invent&lt;/em&gt; that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not personally familiar with any game engines, but a very strong factor here is if you want to go e.g. webpage flash or Windows native or something else.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-10-31T20:12:45.887" LastActivityDate="2010-10-31T20:12:45.887" />
  <row Id="15942" PostTypeId="2" ParentId="15670" CreationDate="2010-10-31T19:11:52.267" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;code&gt;yield async FetchAsync(..)&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;This goes perfectly with the &lt;code&gt;async&lt;/code&gt; modifier you need to put on the method you're invoking. And also the semantic of the current &lt;code&gt;yield return&lt;/code&gt; that is, you return &lt;em&gt;and&lt;/em&gt; yields execution to the enumerating code while in this case you're yielding your execution to the asynchronous method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imagine if in the future there'll be other uses for &lt;code&gt;yield&lt;/code&gt;, we could add a &lt;code&gt;yield x&lt;/code&gt; where x is the shiny new feature instead of having all these different keywords for doing mostly the same thing, yield execution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Frankly, I don't quite understand the 'not yielding execution' argument. After all, isn't the point of calling another method is already to 'yield execution' to that method? Regardless of whether it is asynchronous or not? I'm I missing something here?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And good for you if the &lt;code&gt;async&lt;/code&gt; returns synchronously but having the keyword there should signify that there's a likely chance that the method would run asynchronously and that you'll be yielding execution to another method. Your method should account for that regardless of whether the method actually does asynchronous calls or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMO I think the various 'not yielding' cases are an implementation detail. I'd rather vouch for consistency in the language (i.e. reusing &lt;code&gt;yield&lt;/code&gt;).&lt;/p&gt;&#xA;" OwnerUserId="2485" LastEditorUserId="2485" LastEditorDisplayName="" LastEditDate="2010-10-31T19:17:13.430" LastActivityDate="2010-10-31T19:17:13.430" />
  <row Id="15943" PostTypeId="1" CreationDate="2010-10-31T19:12:07.627" Score="6" ViewCount="179" Body="&lt;p&gt;Whenever I do a check-in, I always check in from the &lt;strong&gt;root&lt;/strong&gt; of the project... i.e. check in &lt;strong&gt;all&lt;/strong&gt; the files in my working copy, so after the check-in the source control repo contains exactly the same set of files that I just finished testing in my local copy.  I also make sure my source control is set to flag local files that are &lt;strong&gt;not&lt;/strong&gt; under source control.  In general, there are &lt;strong&gt;none&lt;/strong&gt; of these files... if there are, I either add them to source control or mark them as &quot;ignored&quot;.  I also check in all my changes together in one check-in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of colleagues check in much differently.  They carefully select each file to check in, as if they are a master jeweler selecting only the very best gemstones to set into the royal crown, and they check in each one as a separate check-in.  They rely only on their memory to figure out which files need to be checked in, or especially &lt;strong&gt;added&lt;/strong&gt; to source control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The results are quite predictable... frequent broken builds because they forget to add their new files to source control or forget to check in a changed file (especially changed project files).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have mentioned this to them and they never seem to change.  When I mentioned it to the team lead he said, &quot;this is just a different way of working&quot;.  To which I may respond: What if I want to drive my car with my eyes closed?  Is that just &quot;a different way of driving&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I right in being bothered by this practice?&lt;/p&gt;&#xA;" OwnerUserId="4526" LastEditorUserId="4526" LastEditorDisplayName="" LastEditDate="2010-10-31T19:22:40.883" LastActivityDate="2010-11-01T06:59:47.623" Title="not checking in from the project root" Tags="&lt;best-practices&gt;&lt;version-control&gt;" AnswerCount="6" />
  <row Id="15944" PostTypeId="2" ParentId="15916" CreationDate="2010-10-31T19:18:10.323" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I think Actionscript3 is your best bet if you are not planning on 3d&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is really fast when using blitting via copyPixel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has wide support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a high level language and is easy to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has amazing integrated language documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is easier to monetize games by getting the game sponsored and submit it to flash portals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend &lt;a href=&quot;http://flashdevelop.org&quot; rel=&quot;nofollow&quot;&gt;FlashDevelop&lt;/a&gt; over the Flash IDE for any coding. It has much better hinting including hinting for your own variables or objects, support for snippets, macros, and is much faster when compiling large projects.&lt;/p&gt;&#xA;" OwnerUserId="2188" LastActivityDate="2010-10-31T19:18:10.323" />
  <row Id="15945" PostTypeId="2" ParentId="15050" CreationDate="2010-10-31T19:23:03.760" Score="0" ViewCount="" Body="&lt;p&gt;One definite Pro from your approach is that it takes into account users traveling to international locations. I have recently moved to an Arabic speaking country and can't tell you how frustrated I get everyday with the numerous web applications that provide me with the Arabic version of the site, because they use my IP to find my location and present the site in that locations language.&lt;/p&gt;&#xA;" OwnerUserId="4094" LastActivityDate="2010-10-31T19:23:03.760" />
  <row Id="15946" PostTypeId="2" ParentId="15943" CreationDate="2010-10-31T19:24:43.953" Score="3" ViewCount="" Body="&lt;p&gt;Yes, I think you are right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At best (if they're always doing it correctly) what they're doing is just a slower way of doing what you're doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The bigger problem is that it's exposing less than ideal working practices. Firstly it looks like they're working on more than one thing at a time - so rather than working in small commitable steps they're doing some big change that's uncommitable and then have to do some other task in the middle and commit that. Or maybe they're not cleaning up after themselves and their uncommitted local changes have all sorts of junk in them (big blocks of commented out code, redundant methods, broken stuff that was just a temporary experiment).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've worked with people who do this and it's always a nightmare - the worst situation is when they have uncommitted junk locally then when they update their local version gets borked, but some of the stuff they want to keep is in the same files as the junk. As a result they just get lost in sorting out stuff they want to keep from stuff they want to revert.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-31T19:24:43.953" />
  <row Id="15947" PostTypeId="2" ParentId="15925" CreationDate="2010-10-31T19:37:19.427" Score="2" ViewCount="" Body="&lt;p&gt;Don't put logic in your unit tests. For example, let's say you're testing an add method, you could have something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void MyTest_SaysHello()&#xA;{&#xA;   string name = &quot;Bob&quot;;&#xA;   string expected = string.Format(&quot;Hello, {0}&quot;, name);&#xA;   IMyObjectType myObject = new MyObjectType();&#xA;   string actual = myObject.SayHello(name);&#xA;   Assert.AreEqual(expected, actual);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In this particular case, you're likely repeating the same logic as what's in the test, so you're essentially testing &quot;1 + 1 == 1 + 1&quot;, rather than &quot;1 + 1 == 2&quot;, which is the &quot;real&quot; test. So what you would really want your test code to look like is:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void MyTest_SaysHello()&#xA;{&#xA;   string expected = string.Format(&quot;Hello, Bob&quot;);&#xA;   IMyObjectType myObject = new MyObjectType();&#xA;   string actual = myObject.SayHello(&quot;Bob&quot;);&#xA;   Assert.AreEqual(expected, actual);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="146" LastActivityDate="2010-10-31T19:37:19.427" CommentCount="1" />
  <row Id="15948" PostTypeId="2" ParentId="7188" CreationDate="2010-10-31T19:56:10.650" Score="0" ViewCount="" Body="&lt;p&gt;Currently I'm re-reading &lt;a href=&quot;http://www.growing-object-oriented-software.com/&quot; rel=&quot;nofollow&quot;&gt;Growing Object-Oriented Software, Guided by Tests&lt;/a&gt; by Steve Freeman and Nat Pryce. It's an interesting book about test-driven development. However, it's not an easy read - I'm re-reading it simply to understand it better. &lt;/p&gt;&#xA;" OwnerUserId="6805" LastActivityDate="2010-10-31T19:56:10.650" CommunityOwnedDate="2011-02-10T17:23:39.897" />
  <row Id="15949" PostTypeId="1" CreationDate="2010-10-31T19:56:42.633" Score="2" ViewCount="278" Body="&lt;p&gt;There are many software development methodologies - SCRUM, agile, XP, etc. - and they all have there advantages and disadvantages I suppose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But when do we really need to apply them? Surely they are not necessary for small 1-man projects, but for large 50+ teams you can most certainly not go about ad-hoc:ing the whole thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what's the line for when to use and when to not use such a methodology, if there indeed is one?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-11-02T02:05:49.857" Title="When do we need to apply a software development methodology?" Tags="&lt;development-methodologies&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="1" />
  <row Id="15950" PostTypeId="2" ParentId="15050" CreationDate="2010-10-31T19:59:24.143" Score="1" ViewCount="" Body="&lt;p&gt;Your approach looks pretty good. I'd add only one more thing: say that the browser language (from the accept language header) is X, but when you try to determine the user's actual location (via IP or geolocation API), you get some place that uses language Y. In that case, I'd probably default to the browser language X (just as you were initially planning) but find a place in the UI to &lt;em&gt;ask&lt;/em&gt; the user if they'd rather switch to language Y. If they say no, remember this (via cookie, session, or store with their account) and don't ask again. This same approach also works well if you add support for new languages that weren't supported before.&lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-10-31T19:59:24.143" />
  <row Id="15951" PostTypeId="2" ParentId="15930" CreationDate="2010-10-31T20:03:22.483" Score="1" ViewCount="" Body="&lt;p&gt;I think it's going to be hard, so be prepared for a struggle - but not impossible. At the end of the day programming (especially non-cowboy-hack'n'slash coding) is not going to be super-exciting to everyone. This is especially true for people already working in an area which is intellectually challenging and rewarding in its own right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of all make the talks and workshops fun in themselves - free food (make sure it's nice food!) and similar treats are a good place to start. Try to inject a bit of humour too and, at least initially, keep them fairly brief and as informal as you can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly make sure the talks and workshops are relevant. Try not to make them too abstract (even if the concepts being covered are abstract) and if you possibly can at all, ensure that they can try out what's been covered. Even better check on what they've done between sessions and provide positive feedback. If they're not relevant and they're not applying what you've discussed then they will (correctly) view them as a waste of time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally try to introduce some basic coding standards, preferably ones which are not too intrusive in how they currently operate. If you're in the .net world Resharper is a good one to begin with as it will warn about things like naming conventions. You can take that further with StyleCop (which can be integrated into Resharper) - but make sure you customise the ruleset first. If you're not in .net then I'm sure similar tools will exist elsewhere. It's not much, but it's a start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't expect instant results (except for maybe any automatically enforced coding standards) - I've heard 6, 9 and 12 months bandied around for the time to introduce best practices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've only flicked through it so far, but there seems to be a fair bit of good, relevant, advice for you in the forthcoming book &lt;a href=&quot;http://www.pragprog.com/titles/trevan/driving-technical-change&quot; rel=&quot;nofollow&quot;&gt;Driving Technical Change&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-31T20:03:22.483" CommentCount="1" />
  <row Id="15952" PostTypeId="2" ParentId="15930" CreationDate="2010-10-31T20:11:00.850" Score="3" ViewCount="" Body="&lt;p&gt;If these chemists and physicists are not primarily profesional developers, and are not intended to become so, I would suggest thinking differently at the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;real&quot; developers should provide easy environments for them to develop into.  You should provide mentoring and you should provide peer review of their code with strong incentives to make the code good enough for passing in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, do not treat them as equals, but provide all you can for them to excel on what they actually do that is their strength.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-10-31T20:11:00.850" />
  <row Id="15953" PostTypeId="2" ParentId="15930" CreationDate="2010-10-31T20:11:30.793" Score="1" ViewCount="" Body="&lt;p&gt;What role do they have in the company? If you need developers, then let them go if they aren't good developers and aren't interested in becoming good developers. If they are supposed to be physicists and chemists, you can run workshops, but don't expect them to maintain a high level of interest. If they're supposed to be both, raise expectations and make sure you're paying them enough to justify them taking on a software developer's role while maintaining complex domain knowledge and skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless part of someone's defined role is to be a developer, they will probably never be all that interested in developing high quality software. Just because someone is creating quick scripts and hacks doesn't necessarily mean they really want to be a software developer, it's just a means to an end, like an accountant figuring out complex Excel formulas. If you need high quality, maintainable software, then software developers should be creating it.&lt;/p&gt;&#xA;" OwnerUserId="3044" LastActivityDate="2010-10-31T20:11:30.793" />
  <row Id="15954" PostTypeId="2" ParentId="15943" CreationDate="2010-10-31T20:14:51.070" Score="10" ViewCount="" Body="&lt;p&gt;Don't be bothered by the practice of checking in individual files - if someone can do that and make it work, that's fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Do&lt;/em&gt; be bothered by people checking in broken builds. The primary concern is the result. Addressing the root cause is absolutely a good idea, but the best first step is to find the appropriate motivation to stop checking in broken code.&lt;/p&gt;&#xA;" OwnerUserId="3044" LastActivityDate="2010-10-31T20:14:51.070" CommentCount="1" />
  <row Id="15955" PostTypeId="2" ParentId="14635" CreationDate="2010-10-31T20:33:52.740" Score="1" ViewCount="" Body="&lt;p&gt;Yes (depending on your definition of service boundary) but in practice it's going to depend on the consumers of the services.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's within your own application then it won't be a problem (for example if a service is calling a couple of other services and returning a result based on those results). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's outside your application then you will want those services to be returning either simple values or more usually DTOs composed of simple values. If you don't do this then your consumers will typically break any time your domain changes (and DDD is best applied when you have a regularly changing domain).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In all this I'm assuming you're talking about domain services.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-10-31T20:33:52.740" />
  <row Id="15956" PostTypeId="1" AcceptedAnswerId="15964" CreationDate="2010-10-31T20:34:13.970" Score="13" ViewCount="412" Body="&lt;p&gt;I found that this was the case with Eclipse. &#xA;When I first started learning Java a lot of people told me to start with NetBeans because it's easier, comes with a lot of predefined functionality and most of the configuration is done by default. Indeed it seemed like an easy IDE but I just hated the way it looked. The UI to me was horrible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I downloaded Eclipse. I was pretty impressed with it. Everything looked shiny, fonts looked awesome and the UI in general was amazing compared to NetBeans'. So I stayed with Eclipse. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has something like this ever happen to you? Should the UI be of such a relevance to a programmer, is this bad ? The problem of the UI extends to everything for me, not only IDE's (e.g. even on linux I have to customize the WM the way I want before starting working with it). &lt;/p&gt;&#xA;" OwnerUserId="6806" LastActivityDate="2011-05-28T03:03:08.047" CommunityOwnedDate="2011-05-28T03:03:08.047" Title="Have you ever found yourself using a specific tool in favor of another just because it looks better?" Tags="&lt;gui&gt;" AnswerCount="16" CommentCount="4" />
  <row Id="15957" PostTypeId="2" ParentId="15956" CreationDate="2010-10-31T20:40:36.073" Score="2" ViewCount="" Body="&lt;p&gt;Personally, I don't really care about UI. Terminal programs work well, so do GUIs, and terminal ones take less memory. The UI isn't really an element for me &lt;em&gt;unless it enables more productivity&lt;/em&gt;, like say firefox over w3m (at least for me).&lt;/p&gt;&#xA;" OwnerUserId="227" LastActivityDate="2010-10-31T20:40:36.073" CommunityOwnedDate="2011-05-28T03:03:08.047" />
  <row Id="15958" PostTypeId="2" ParentId="15895" CreationDate="2010-10-31T20:49:27.060" Score="3" ViewCount="" Body="&lt;p&gt;Have a look here: &lt;a href=&quot;http://www.devcomponents.com/blog/?p=843&quot; rel=&quot;nofollow&quot;&gt;http://www.devcomponents.com/blog/?p=843&lt;/a&gt; AND here: &lt;a href=&quot;http://www.uxmagic.com/blog/post/2010/10/31/Dear-Bob-Muglia.aspx&quot; rel=&quot;nofollow&quot;&gt;http://www.uxmagic.com/blog/post/2010/10/31/Dear-Bob-Muglia.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't a laughing matter, MSFT better get out in front of this if they want to stop the bleeding. &lt;/p&gt;&#xA;" OwnerUserId="6783" LastActivityDate="2010-10-31T20:49:27.060" CommentCount="2" />
  <row Id="15959" PostTypeId="2" ParentId="15949" CreationDate="2010-10-31T21:14:47.917" Score="1" ViewCount="" Body="&lt;p&gt;The question really doesn't make sense. No matter what you do you are applying some form of SDLC approach. That approach might be cowboy coding or waterfall, but it is an approach. A better question is what projects and team sizes are better suited to what approaches.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-10-31T21:14:47.917" CommentCount="2" />
  <row Id="15960" PostTypeId="2" ParentId="15928" CreationDate="2010-10-31T21:23:55.970" Score="8" ViewCount="" Body="&lt;p&gt;To me the most important idea is this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Requirements changes are going to happen because we are forced to design software at the nadir of knowledge about what is needed (the start of the project) and requirements will only become clearer over the course of the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Traditional (Waterfall) approaches&lt;/strong&gt; try to mitigate this change by locking everyone into a contract at the start of the project by having them sign off on comprehensive specs. This may work as a CYA, but it doesn't make anyone happy to deliver something that doesn't meet the needs of the users especially if their objections are met with &quot;Well you signed off on it!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Agile Methods&lt;/strong&gt; are designed to embrace the inevitable changes instead of shielding the development team from them. It does this in a number of ways, chief among them are iterative development and continual involvement by stakeholders in the process. In my experience it leaves everyone involved happier in the end, although it can be more uncomfortable for some management types who are hardcore planners.&lt;/p&gt;&#xA;" OwnerUserId="287" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2011-01-22T15:30:22.203" LastActivityDate="2011-01-22T15:30:22.203" CommentCount="1" />
  <row Id="15961" PostTypeId="2" ParentId="15956" CreationDate="2010-10-31T21:25:20.680" Score="7" ViewCount="" Body="&lt;p&gt;Yes.  It may be a biased point of view, but I like working with pretty user interfaces, and if the developer has gone to the time and trouble to make his user interface pretty (&lt;em&gt;and&lt;/em&gt; intuitive), I assume that he has taken the same care with the rest of his program as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a developer writing programs for others, you should have the same concern about your own UI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, where UI doesn't matter (as in command line programs and libraries), UI doesn't matter.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-10-31T21:25:20.680" CommunityOwnedDate="2011-05-28T03:03:08.047" CommentCount="2" />
  <row Id="15964" PostTypeId="2" ParentId="15956" CreationDate="2010-10-31T21:35:35.737" Score="12" ViewCount="" Body="&lt;h1&gt;Yes&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I use VIM because it's beautiful. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aesthetics mean a lot. If the UI is cluttered and ugly it will impact how you use the tool. NetBeans might do everything, but it looks awful and runs slow. I don't see many people using it.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-10-31T21:35:35.737" CommunityOwnedDate="2011-05-28T03:03:08.047" CommentCount="2" />
  <row Id="15965" PostTypeId="2" ParentId="15956" CreationDate="2010-10-31T21:42:38.453" Score="4" ViewCount="" Body="&lt;p&gt;I think sometimes the mental toll that certain UIs take is very subtle. I will often find myself switching between different UI experiences based on what kind of task I need to perform. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I need to quickly get in-and-out of a lot of different config files, vim on the terminal is perfect. If I need to do a lot of typing, but don't need code-completion or  debugger, TextMate or MacVim fit the bill. If I'm working heavily on multiple classes at once, and need to run tests or debug, I'll boot up the IDE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I honestly believe that there is such a thing as &lt;em&gt;too much interface&lt;/em&gt;. In my IDE, I will often find myself staring blankly at the project-pane trying to find the next file I need to work in. For me, when my fingers leave the keyboard, I tend to start to lose focus. Anything you that forces you to make a choice that isn't relevant to the problem you're working on is going to steal focus and concentration. Often, IDE are simply too widget-heavy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We should know by now that in software, aesthetics and function are usually tied together.   &lt;/p&gt;&#xA;" OwnerUserId="1972" LastActivityDate="2010-10-31T21:42:38.453" CommunityOwnedDate="2011-05-28T03:03:08.047" />
  <row Id="15966" PostTypeId="2" ParentId="15321" CreationDate="2010-10-31T22:22:21.367" Score="5" ViewCount="" Body="&lt;p&gt;I start by setting up a developers system. I use the documented procedure. This lets the cat out of the bag about how much the documentation is in sync with reality. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also tells me what the dependencies are. This matters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now that I've got a developers setup, ( and I mark up the setup document with corrections as I go) I build a version. I end up asking questions all through this phase.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now it's been built, I do the introductory exercise from the user manual. This tells me roughly what the system really does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I have a partial clue about the system, I read the design documents, which I now believe in proportion to how wrong the documents have been so far.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once I get to the actual behavioral documentation I can start looking into the code and seeing what's really there. They never line up, but I now know how much to believe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I look at the IDE output for &quot;todo&quot; and &quot;fixme&quot; comments.&#xA;Things like  &quot;fix in version 2.0&quot;  are tip-off's too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So it's all about learning the veracity, and as people point out, separate design documents are rarely up to date or correct, but it does tell you what people were thinking at a point in time. And of course, those people are probably not around to interrogate.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-10-31T22:22:21.367" CommunityOwnedDate="2011-04-08T10:09:01.537" CommentCount="1" />
  <row Id="15967" PostTypeId="2" ParentId="15956" CreationDate="2010-10-31T22:25:24.500" Score="0" ViewCount="" Body="&lt;p&gt;It's quite silly to prefer form over function, in my opinion. That's not to say the two can't be combined, but since the question is whether we prefer a certain program &lt;em&gt;just&lt;/em&gt; because it looks better, the answer is &lt;strong&gt;no&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5233" LastActivityDate="2010-10-31T22:25:24.500" CommunityOwnedDate="2011-05-28T03:03:08.047" CommentCount="1" />
  <row Id="15969" PostTypeId="2" ParentId="15956" CreationDate="2010-10-31T22:42:44.343" Score="0" ViewCount="" Body="&lt;p&gt;yes&#xA;but i can't remember what programs exactly&#xA;although its only when the functionality isn't much different&#xA;cause if there is a better functionality in the crappy looking one I'll still take that one&lt;/p&gt;&#xA;&#xA;&lt;p&gt;thats why i prefer Firefox over Opera&#xA;i like the customization in Firefox&#xA;i love the looks in Opera&lt;/p&gt;&#xA;" LastActivityDate="2010-10-31T22:42:44.343" CommunityOwnedDate="2011-05-28T03:03:08.047" />
  <row Id="15970" PostTypeId="2" ParentId="15956" CreationDate="2010-10-31T22:49:13.170" Score="1" ViewCount="" Body="&lt;p&gt;I'm sure it's a innate human bias to believe the prettier tool works the best, and, in the absence of any real obstructions of use, to choose that tool. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realised a while ago that, the 'flatter' look a browser has, the more I believe it is a lighter and therefore faster browser. I use Chrome because it 'feels' lighter, although I have no real evidence it is a better browser to Firefox. Whilst I know this may be an illusion, I just like using it more.&lt;/p&gt;&#xA;" OwnerUserId="3946" LastActivityDate="2010-10-31T22:49:13.170" CommunityOwnedDate="2011-05-28T03:03:08.047" />
  <row Id="15971" PostTypeId="2" ParentId="15943" CreationDate="2010-10-31T22:53:10.577" Score="4" ViewCount="" Body="&lt;p&gt;If broken builds are a problem, I would suggest you evangelize automated builds for your team. If someone checks in a file that breaks the build, an automated build will tell you straight away, rather than waiting for the next guy to come along and find out, spending 15 minutes tracking down the person who's check-in broke the build (because it might not have been the last check-in!) and so on...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If people are checking in files one-at-a-time, you can delay the automated build by a few minutes after it detects a check-in, to allow people to check-in the rest of their files. This &lt;em&gt;is&lt;/em&gt; cause for concern as well (question: do they put proper comments in the commit message?), but it's not as big a problem as breaking the build is.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-10-31T22:53:10.577" CommentCount="3" />
  <row Id="15972" PostTypeId="1" CreationDate="2010-10-31T23:07:20.023" Score="5" ViewCount="427" Body="&lt;p&gt;Assuming that all mainstream browsers (including IE) will support it well enough, is it a viable alternative for rich web applications? What's missing from it compared to SL and Flash? What does it do better?&lt;/p&gt;&#xA;" OwnerUserId="3530" LastActivityDate="2010-11-01T16:57:53.323" ClosedDate="2010-11-02T22:36:58.593" Title="How HTML5 compares to Silverlight and Flash?" Tags="&lt;silverlight&gt;&lt;html5&gt;&lt;flash&gt;" AnswerCount="3" CommentCount="4" FavoriteCount="0" />
  <row Id="15973" PostTypeId="2" ParentId="15972" CreationDate="2010-10-31T23:14:38.283" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://joshuakehn.com/blog/static/sort.html&quot; rel=&quot;nofollow&quot;&gt;This sort page&lt;/a&gt; was done entirely with the following: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;JavaScript&lt;/li&gt;&#xA;&lt;li&gt;Canvas&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;Note this will run under IE 7/8 because it will switch to excanvas.&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interactive enough? &lt;a href=&quot;http://www.blackcj.com/blog/2010/09/22/canvas-flash-and-svg-mobile-comparison/&quot; rel=&quot;nofollow&quot;&gt;Some will argue&lt;/a&gt; (wrongfully IMO) that there is little place for HTML5 in the advance on dynamic interactive web applications because there are standardization problems (read: IE). Look at &lt;a href=&quot;http://scobleizer.com/2010/10/22/starbucks-cio-shows-why-next-version-of-windows-is-risky/&quot; rel=&quot;nofollow&quot;&gt;what other people are doing&lt;/a&gt; when you make a choice on the technology you use. &lt;a href=&quot;http://joshuakehn.com/blog/view/20/W3C-Holding-off-on-HTML5&quot; rel=&quot;nofollow&quot;&gt;Standards aren't an issue&lt;/a&gt;, by staying on the leading edge you gain a head start when it makes waves. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the application demands IE 6 compatibility you probably aren't well off with HTML5. Flash is probably a better choice. However, there are right and wrong places to use both technologies and directly comparing them isn't always cleanly done. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Benefits of HTML5:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Native&lt;/li&gt;&#xA;&lt;li&gt;Fast&lt;/li&gt;&#xA;&lt;li&gt;(Generally) simpler to use&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Benefits of Flash / Silverlight:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Highly customizable&lt;/li&gt;&#xA;&lt;li&gt;Strong user base&lt;/li&gt;&#xA;&lt;li&gt;Able to perform complex animations and graphics&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-11-01T13:32:08.573" LastActivityDate="2010-11-01T13:32:08.573" CommentCount="5" />
  <row Id="15974" PostTypeId="2" ParentId="15930" CreationDate="2010-11-01T00:39:57.267" Score="1" ViewCount="" Body="&lt;p&gt;I work with very smart networking engineers who are not developers and don't want to be. I can understand that because I don't want to be a networking engineer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What we've found that works well is for the engineer and I to do team-programming. We're at separate sites, so we get on the phone, open a screen sharing session usually with the &lt;code&gt;screen&lt;/code&gt; command, and bust out the code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We've done that many times and felt it worked really well. I'm understanding how they do their thing better, and the engineer is learning how we write maintainable and tested code.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-11-01T00:39:57.267" />
  <row Id="15975" PostTypeId="2" ParentId="15972" CreationDate="2010-11-01T00:54:53.097" Score="6" ViewCount="" Body="&lt;p&gt;&quot;Assuming that all mainstream browsers (including IE) will support it well enough&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a very big assumption. I think we are some time away (2-5 years) before HTML5 support in browsers is pervasive and consistent enough to where you could write a HTML5 application without applying a lot of restrictions on the user. Even now demos for HTML5 for Chrome or IE9 will operate significantly different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The advantage for Flash &amp;amp; Silverlight is that it is here now, HTML5 is in the future.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-01T00:54:53.097" CommentCount="7" />
  <row Id="15976" PostTypeId="2" ParentId="15896" CreationDate="2010-11-01T02:48:04.053" Score="1" ViewCount="" Body="&lt;p&gt;When you absolutely need to do the following (in &lt;a href=&quot;http://www.armory.com/~rstevew/Public/Tutor/Debug/index.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Debug&lt;/strong&gt;&lt;/a&gt;, that &lt;a href=&quot;http://mirror.href.com/thestarman/asm/debug/debug.htm&quot; rel=&quot;nofollow&quot;&gt;wonderful program&lt;/a&gt;):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;-F 200 L1000 0&#xA;-A CS:100&#xA;xxxx:0100 MOV AX,301&#xA;xxxx:0103 MOV BX,200&#xA;xxxx:0106 MOV CX,1&#xA;xxxx:0109 MOV DX,80&#xA;xxxx:010C INT 13&#xA;xxxx:010E INT 20&#xA;xxxx:0110&#xA;-G&#xA;Program terminated normally&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;NOTE - Run at your own risk as this is non-recoverable.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;See this page for more uses: &lt;a href=&quot;http://mirror.href.com/thestarman/asm/mbr/BootToolsRefs.htm&quot; rel=&quot;nofollow&quot;&gt;Tools and References for the&#xA;MBR and OS Boot Records&lt;/a&gt; (search for &quot;Debug&quot;)&lt;/p&gt;&#xA;" OwnerUserId="2515" LastActivityDate="2010-11-01T02:48:04.053" CommentCount="4" />
  <row Id="15977" PostTypeId="2" ParentId="15321" CreationDate="2010-11-01T02:48:26.253" Score="1" ViewCount="" Body="&lt;p&gt;well, what is &quot;the design&quot;? a README? a uml diagram? you can do a design document halfway (and most do), you can't code halfway&lt;/p&gt;&#xA;&#xA;&lt;p&gt;any design is simply going to be an &lt;em&gt;opinion&lt;/em&gt;, whereas the code is the &lt;em&gt;fact&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i'll only refer to secondary documents when i can't understand the reasoning of the code&lt;/p&gt;&#xA;&#xA;&lt;p&gt;reading code is an essential skill for a developer. you might as well learn it now, you won't get to see much useful documentation during your career anyway&lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-11-01T02:48:26.253" CommunityOwnedDate="2011-04-08T10:09:01.537" />
  <row Id="15978" PostTypeId="2" ParentId="15925" CreationDate="2010-11-01T02:58:32.543" Score="0" ViewCount="" Body="&lt;p&gt;Somewhat similar to what Farmboy has already mentioned, &#xA;My method name format&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; &amp;lt;MethodName&amp;gt;Should&amp;lt;actionPerformed&amp;gt;When&amp;lt;Condition&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;e.g&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; GetBalanceShouldReturnAccountBalance() {&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3755" LastActivityDate="2010-11-01T02:58:32.543" />
  <row Id="15979" PostTypeId="2" ParentId="9213" CreationDate="2010-11-01T03:07:57.553" Score="0" ViewCount="" Body="&lt;p&gt;software tools are incredibly important. having the &lt;em&gt;right&lt;/em&gt; tools available is crucial and well worth the time invested (not lost). consider the investment in learning and mastering a certain text editor or programming language...these skills will be with you long after you have left your current job,  which is why i keep using the term &lt;em&gt;investment&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;think of the very best coders you know...my guess is they have very strong opinions about tools. do you know any excellent coders who let the IT dept decide what text editor they will use? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;most coders are tinkerers. it is natural to tinker with your own tools. if your boss is a repsectable coder, chances are he or she is a tinkerer too&lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-11-01T03:07:57.553" />
  <row Id="15980" PostTypeId="2" ParentId="14645" CreationDate="2010-11-01T03:17:05.637" Score="0" ViewCount="" Body="&lt;p&gt;My favorite question to ask is &quot;What are you passionate about?&quot; or &quot;What do you do in your spare time?&quot;.  It doesn't have to be technology, programming, or software development.  To know they have or are capable of being passionate is something that I have seen time and again that separates the great developers from the rest.  The people who go to work to earn a pay check do not generally have much to fall back on here and can't fake it.  The people who generally have something they are passionate about are very excited to tell you all about it.&lt;/p&gt;&#xA;" OwnerUserId="6778" LastActivityDate="2010-11-01T03:17:05.637" />
  <row Id="15981" PostTypeId="2" ParentId="15943" CreationDate="2010-11-01T03:38:28.607" Score="1" ViewCount="" Body="&lt;p&gt;Leaving the orthogonal problem of how to not forget to add files aside, your approach can lead to another problem: accidentally checking in changes that were just for testing etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Handpicking the source files (or sub-directories) to commit is one possible approach which can be done responsibly and without regularly breaking builds (utilizing the status info of your VCS). The real problem here is spreading the changeset over many different check-ins, one for every file. This will inevitably to lead to difficulties when the version history is needed for anything.&lt;/p&gt;&#xA;" OwnerUserId="2598" LastEditorUserId="2598" LastEditorDisplayName="" LastEditDate="2010-11-01T03:43:36.667" LastActivityDate="2010-11-01T03:43:36.667" />
  <row Id="15982" PostTypeId="2" ParentId="15895" CreationDate="2010-11-01T04:32:46.933" Score="15" ViewCount="" Body="&lt;p&gt;Product Managers are developer marketing folks. They perform an important role, but the number of them assigned to a product is more indicative of marketing workload, not development workload. I worked with some of the Product Managers when putting together &lt;a href=&quot;http://10rem.net/blog/2010/10/28/the-present-and-future-of-wpf&quot; rel=&quot;nofollow&quot;&gt;the WPF futures post&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While we typically do not discuss numbers for any of the staff, WPF has plenty of &lt;strong&gt;Program&lt;/strong&gt; Managers and &lt;strong&gt;Developers&lt;/strong&gt; on the team responsible for delivering the bits you all rely on. I think that's more important. Look at my blog post on WPF Present and Future (mentioned in the thread here) and Rob Relyea's WPF talk from PDC10 to see just a small bit of what we're planning for the next version.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pete Brown&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developer Division Community Program Manager, Microsoft&lt;/p&gt;&#xA;" OwnerUserId="6809" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2010-11-01T15:33:36.943" LastActivityDate="2010-11-01T15:33:36.943" CommentCount="3" />
  <row Id="15983" PostTypeId="2" ParentId="15943" CreationDate="2010-11-01T04:36:52.363" Score="1" ViewCount="" Body="&lt;p&gt;It's possible to work a little sloppy if you have good tools to keep bad builds from happening. Generally this will keep the team happier than requiring constant vigilance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Setting up a continuous build is the first step. If broken builds are a problem, it will reveal it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you could write a submit script that, given a list of files, checks out the project head in a new directory, patches them in, runs tests, and checks in the files together if they pass. Then they can cherry-pick if they like, so long as they use the submit script.&lt;/p&gt;&#xA;" OwnerUserId="6810" LastActivityDate="2010-11-01T04:36:52.363" />
  <row Id="15984" PostTypeId="1" AcceptedAnswerId="16003" CreationDate="2010-11-01T04:38:18.580" Score="5" ViewCount="228" Body="&lt;p&gt;So we are building a web service(SOAP, .Net) which would be talking to (mostly) native clients (windows, C++) and we are wondering what is the best way to communicate errors to the client (e.g. SomethingBadHappened like login service not available or something like user not found) and haven't been able to decide between throwing exception to the client or using some kind of error code model to do the above  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:&#xA;Clarification: What you would prefer on the handling on the client side: receiving a error code or handling a ServerFault exception which contains the reason for the error.&lt;br&gt;&#xA;1) Why are we thinking exception: Coz it would make server side code a lot more uniform&lt;br&gt;&#xA;2) Why are we thinking error codes: Coz we &lt;em&gt;think&lt;/em&gt; it makes more sense from the client side perspective.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If 2) is really true we would probably want to go for error codes than exceptions. I just want to know if the community feels that's the case here&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit2:&#xA;Also would the answer change if we were talking to Managed clients instead of Native clients&lt;/p&gt;&#xA;" OwnerUserId="3755" LastEditorUserId="3755" LastEditorDisplayName="" LastEditDate="2010-11-01T06:56:37.707" LastActivityDate="2010-11-01T09:24:52.343" Title="Exceptions or Error codes" Tags="&lt;programming-practices&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="2" />
  <row Id="15985" PostTypeId="2" ParentId="15943" CreationDate="2010-11-01T04:48:52.670" Score="2" ViewCount="" Body="&lt;p&gt;Change lists are an awesome concept. Only a set of coherent changes (which solves one thing) should be part of a single change list which is checked in together. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To add to my answer: Ideally you should be able to build a change lists of your files, pass it over to a clean enlistment (which is totally synced with the repo) apply the change list and build it before checking in. If your team mates aren't bothered to do it make it as part of the code review process.&lt;/p&gt;&#xA;" OwnerUserId="3755" LastEditorUserId="3755" LastEditorDisplayName="" LastEditDate="2010-11-01T06:59:47.623" LastActivityDate="2010-11-01T06:59:47.623" />
  <row Id="15986" PostTypeId="2" ParentId="15984" CreationDate="2010-11-01T04:49:40.330" Score="0" ViewCount="" Body="&lt;p&gt;If it's a web service, you can't exactly cause the server to throw an exception that will be caught by the client.  At the interface, your server basically has to return some sort of error code, even if that's a string that says &lt;code&gt;An exception occurred. Type %s, message %s, stack trace %s&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the client side, you could have your response reading code check the response to see if it contains an error and raise an exception on the client side.  That's a very good way to do it, in languages with good exception handling at least.  C++, though, does not have good exception handing, and it's a good idea to stay as far away from C++ exceptions as possible.  If you can't use a better language, then just stick to error codes.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-11-01T04:49:40.330" CommentCount="2" />
  <row Id="15987" PostTypeId="2" ParentId="9213" CreationDate="2010-11-01T05:00:58.227" Score="1" ViewCount="" Body="&lt;p&gt;It's pretty inefficient to have each developer setting up his or her own environment. But the environment you work in does matter. Here are some ways to get the most out of it:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Do it when you've just joined a project, so any time you put in setting things up right will help you for your entire time on the project.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Fix something, not just for yourself, but the whole team. But before getting too eager about fixing things, make sure it's something your teammates will appreciate.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6810" LastActivityDate="2010-11-01T05:00:58.227" />
  <row Id="15988" PostTypeId="2" ParentId="15926" CreationDate="2010-11-01T05:06:35.123" Score="1" ViewCount="" Body="&lt;p&gt;You have to write the code specifically for SalesForce -- they use their own stack. If memory serves, their normal route for developers is to download a customized version of Eclipse (not sure if they've customized beyond providing a plug-in though), write code for their framework, and deploy to their servers. If memory serves, you can deploy one app for free, but after that you play.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-01T05:06:35.123" />
  <row Id="15989" PostTypeId="2" ParentId="15956" CreationDate="2010-11-01T05:29:43.660" Score="6" ViewCount="" Body="&lt;p&gt;A couple years ago I 'refreshed' a product's GUI - moving it from a bland Win95-ish look to something more modern.  The app still worked essentially the same as it did - same menus, same toolbar layout - it just had a slicker color scheme and more modern looking icons and controls.  A number of users commented on how the app was easier to use with the new GUI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thats just the nature of GUI's.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A cleaner GUI makes the available functionality more readily understood to the end user, and thus easier to figure out.  It also looks more modern and up to date, providing the end user with extra confidence in the quality of the app.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-01T05:29:43.660" CommunityOwnedDate="2011-05-28T03:03:08.047" />
  <row Id="15990" PostTypeId="2" ParentId="9213" CreationDate="2010-11-01T06:03:23.223" Score="0" ViewCount="" Body="&lt;p&gt;I do stock MS Windows. I don't even bother changing anything. I just add the few apps I need (firefox+firebug+webdeveloper, chrome, that sort of thing) and Putty. Then I shell into the debian servers and there is no GUI environment setup there. I code there. I don't store keys, I don't store passwords in the browser, and I certainly don't store anything I can't live without on the local machine. Then if it stops working (crashed HD, theft, whatever) I just take it to the local recycler and buy another $400 box at Fry's. Oh, and I never ever buy software. This has served me well in the last 15 years. &lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-11-01T06:03:23.223" />
  <row Id="15991" PostTypeId="2" ParentId="15321" CreationDate="2010-11-01T06:09:41.350" Score="1" ViewCount="" Body="&lt;p&gt;Then I look at the developer's README, TODO, and Changelog. If I don't understand why the software was written, how it was written, and where it's going... I don't use it. &lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-11-01T06:09:41.350" CommunityOwnedDate="2011-04-08T10:09:01.537" />
  <row Id="15992" PostTypeId="2" ParentId="15984" CreationDate="2010-11-01T06:18:34.957" Score="0" ViewCount="" Body="&lt;p&gt;I think this link will help-&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codeproject.com/KB/cpp/cppexceptionsproetcontra.aspx&quot; rel=&quot;nofollow&quot;&gt;http://www.codeproject.com/KB/cpp/cppexceptionsproetcontra.aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-11-01T06:18:34.957" CommentCount="1" />
  <row Id="15993" PostTypeId="2" ParentId="15956" CreationDate="2010-11-01T06:19:46.847" Score="1" ViewCount="" Body="&lt;p&gt;Definitely. For instance, my Eclipse vs. NetBeans decision went in favor of NetBeans. Recently I started using &lt;a href=&quot;http://www.sublimetext.com/&quot; rel=&quot;nofollow&quot;&gt;Sublime Text&lt;/a&gt; editor. It's a good editor, but what differentiates it from dozens of other good editors out there is exactly the UI.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-11-01T06:19:46.847" CommunityOwnedDate="2011-05-28T03:03:08.047" />
  <row Id="15994" PostTypeId="2" ParentId="15956" CreationDate="2010-11-01T06:37:05.500" Score="0" ViewCount="" Body="&lt;p&gt;Yes, &lt;strong&gt;Hudson&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hudson is a continouos build engine which slowly is migrating into a distributed script engine, which just happens to be &lt;em&gt;nice&lt;/em&gt;.   Nice in its approach to how things are done, nice in how errors are reported, and nice in how it looks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This common trait shows though very quickly when using Hudson and was the main factor that caused us to stay with Hudson.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, the graphics are not exceptional, but nice, and indicative of the Hudson program in general.  &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-01T06:37:05.500" CommunityOwnedDate="2011-05-28T03:03:08.047" />
  <row Id="15995" PostTypeId="2" ParentId="15984" CreationDate="2010-11-01T06:41:07.430" Score="3" ViewCount="" Body="&lt;p&gt;I recently did a web service with the Java 6 libraries, which can report an exception back to the caller (I haven't looked into how as it is done automatically).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ability to have the client provide a stack trace in the error report to the developer has been very useful (opposed to getting an approximate timestamp and then have to look it up in your logs, if you happen to log it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, seen from a developers point of view, use Exceptions.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-01T06:41:07.430" CommentCount="4" />
  <row Id="15996" PostTypeId="2" ParentId="2654" CreationDate="2010-11-01T06:45:30.233" Score="3" ViewCount="" Body="&lt;p&gt;In Java.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Invoke the Eclipse source code formatter automatically every time a file is saved.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This means that source code changes are registered at the first commit afterwards, instead of some later time when a reformat is done.  This is good when doing &quot;when was this changed&quot; investigations.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-01T06:45:30.233" />
  <row Id="15998" PostTypeId="2" ParentId="2654" CreationDate="2010-11-01T06:56:52.863" Score="0" ViewCount="" Body="&lt;p&gt;In Python, use only the standard library, and if you can't avoid using another library, explain why somewhere. Someday that lib may need to be replaced and it would be nice to know where to start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, keep it very very simple. &lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-11-01T06:56:52.863" />
  <row Id="15999" PostTypeId="2" ParentId="15776" CreationDate="2010-11-01T07:02:06.857" Score="2" ViewCount="" Body="&lt;p&gt;There are some really helpful plugins to increase productivity, my favourites are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;moreunit&lt;/li&gt;&#xA;&lt;li&gt;jautodoc&lt;/li&gt;&#xA;&lt;li&gt;www.etc.to/eclipse_bookmarks_plugin&lt;/li&gt;&#xA;&lt;li&gt;andrei.gmxhome.de/anyedit/index.html&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2010-11-01T07:02:06.857" CommentCount="1" />
  <row Id="16000" PostTypeId="2" ParentId="15949" CreationDate="2010-11-01T07:29:51.080" Score="6" ViewCount="" Body="&lt;p&gt;Even in a strictly 1-man project (you coding software for yourself with no schedule) you have to:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Figure out what you actually want/need.&lt;/li&gt;&#xA;&lt;li&gt;Figure out how it can be done (various approaches).&lt;/li&gt;&#xA;&lt;li&gt;Implement it.&lt;/li&gt;&#xA;&lt;li&gt;See what you got and go back to 1), refining the requirements.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;You could do it informally (cowboy), but given that the 1-man project is a special edge case (usually there's at least you and someone else you're working for), doing it with some well founded light formalism is virtually always preferable. Keep in mind that the core of the &lt;a href=&quot;http://agilemanifesto.org/&quot; rel=&quot;nofollow&quot;&gt;Agile Manifesto&lt;/a&gt; is really just a few principles. The formal methodologies (e.g. Scrum) aimed to reach those principles can and should be tailored according to the team size etc.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-11-01T18:07:25.223" LastActivityDate="2010-11-01T18:07:25.223" />
  <row Id="16001" PostTypeId="2" ParentId="15949" CreationDate="2010-11-01T08:52:11.057" Score="-1" ViewCount="" Body="&lt;p&gt;The approach to the development you take must maximise the ROI of the project. Depending on the project nature and the resources available the right direction to take may be different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are two obvious rules though, common to designing any functioning system&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the performance and delivarables must&#xA;be quantatively measurable, metrics&#xA;must be as simpe and as unambiguous&#xA;as possible. (reflecting Graham Lee's comment:) As it is not always possible to set up adequate metrics at the very beginning, metrics should evolve as project goes on to reflect the growing expertise of the manangement in the problem domain&lt;/li&gt;&#xA;&lt;li&gt;the risks assessement&#xA;procedures (partially based on above&#xA;metrics) must be set up before the&#xA;project starts, and dynamically&#xA;updated as project evolves. The&#xA;mitigation plan must exist for every&#xA;type of identified potential risk and&#xA;shoud be triggered accordingly&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The need in asource code version control, system backups, QA procedures, and many other essential bits is just another part of the project risk management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One more consideration -- the bigger the company is and the more the departments like yours are the more desired it is to have some converged practices used globally to ensure minimum overhead on relocating resources from project to project and also minimum overhead on senior management required to understand the details of projects in departments they run.&lt;/p&gt;&#xA;" OwnerUserId="4676" LastEditorUserId="4676" LastEditorDisplayName="" LastEditDate="2010-11-01T12:48:30.453" LastActivityDate="2010-11-01T12:48:30.453" CommentCount="19" />
  <row Id="16002" PostTypeId="2" ParentId="15776" CreationDate="2010-11-01T08:52:31.103" Score="2" ViewCount="" Body="&lt;p&gt;You may find &lt;strong&gt;subclipse&lt;/strong&gt; a very handy plugin; it makes it very intuitive whether there's changes to be committed or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another suggestion is don't look for more plugins, &lt;strong&gt;look into eclipse itself&lt;/strong&gt; because the features it provides, such as &lt;strong&gt;refatoring and source generating&lt;/strong&gt;, is really very enough for everyday java programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have switched from C++ to Java for around 1 year and really enjoyed the magics eclipse done to me. It's awesome!&lt;/p&gt;&#xA;" OwnerUserId="2347" LastActivityDate="2010-11-01T08:52:31.103" />
  <row Id="16003" PostTypeId="2" ParentId="15984" CreationDate="2010-11-01T09:24:52.343" Score="3" ViewCount="" Body="&lt;p&gt;SOAP has a concept of &lt;a href=&quot;http://www.w3schools.com/soap/soap_fault.asp&quot; rel=&quot;nofollow&quot;&gt;faults&lt;/a&gt;, you can convert an exception to a fault on the server side and on the client proxy the fault can again be converted back to an exception. This works remarkably well in WCF and Java metro stack, cannot comment on native C++ clients.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As regards to SOA best practice define one generic fault and few specific faults only if the client need to handle a certain type of error differently. Never send a exception stack trace to client in production deployment. This is because in theory the server trace has no meaning for the client and for security reasons as well. Log the full error and stacktrace on the server and send a unique reference to the log in the fault. In WCF I use the Microsoft Exception Handling block from Enterprise Library to generate a guid and also convert a exception to SOAP fault.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check the guidance at &lt;a href=&quot;http://msdn.microsoft.com/en-us/practices/bb969054.aspx#web_svrcs&quot; rel=&quot;nofollow&quot;&gt;Microsoft Patterns and Practices&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3414" LastActivityDate="2010-11-01T09:24:52.343" CommentCount="2" />
  <row Id="16004" PostTypeId="2" ParentId="7188" CreationDate="2010-11-01T09:29:50.117" Score="0" ViewCount="" Body="&lt;p&gt;A few years ago I re-read Objects Patterns and Practice by Matt Zandstra, these days I don't tend to re-read a book unless I don't grasp everything, obviously I do refer back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/NVwT0.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="6457" LastActivityDate="2010-11-01T09:29:50.117" CommunityOwnedDate="2011-02-10T17:23:39.897" />
  <row Id="16005" PostTypeId="2" ParentId="15856" CreationDate="2010-11-01T09:36:01.833" Score="0" ViewCount="" Body="&lt;p&gt;I dream a few of my ideas, sad to dream about programming but yes I admit I have. Happens sometimes after spending a few hours solving a problem and I'm not happy with the result. I tend to wake the next day and remember dreaming about coding a better solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My Mrs says I have even woke her at night to tell her a solution and then gone back to sleep.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe I am just nuts.&lt;/p&gt;&#xA;" OwnerUserId="6457" LastActivityDate="2010-11-01T09:36:01.833" CommentCount="1" />
  <row Id="16006" PostTypeId="2" ParentId="15856" CreationDate="2010-11-01T09:42:38.403" Score="1" ViewCount="" Body="&lt;p&gt;Usually on my way home, about 5 minutes after leaving the office.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-11-01T09:42:38.403" />
  <row Id="16007" PostTypeId="2" ParentId="13396" CreationDate="2010-11-01T10:20:17.607" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://trac.edgewall.org/&quot; rel=&quot;nofollow&quot;&gt;Trac&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Users can have accounts to submit tickets, view their status, and see any documentation you add as a support wiki. You can also give users a section of the wiki they can edit so they can document shared practices.&lt;/li&gt;&#xA;&lt;li&gt;Tickets can be assigned to particular components, so developers can quickly see tickets that affect their part of the code in addition to being able to see their &quot;queue&quot; of tickets assigned to them.&lt;/li&gt;&#xA;&lt;li&gt;Tickets can be assigned to releases or milestones, which is one way in which managers can see the overall &quot;health&quot; or &quot;pulse&quot; of the project. The custom reporting allows managers to view other metrics they may be interested in.&lt;/li&gt;&#xA;&lt;li&gt;Trac integrates well with subversion, but I'm not certain about other SCM systems.&lt;/li&gt;&#xA;&lt;li&gt;The price is right.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-11-01T10:20:17.607" />
  <row Id="16008" PostTypeId="2" ParentId="4404" CreationDate="2010-11-01T10:28:49.253" Score="0" ViewCount="" Body="&lt;p&gt;No, I didn't learn it as a subject at elementary school (or what we call 'primary' in the UK), but I did learn how to count binary on my fingers as a 'trick' from a friend.  Being able to count up to 10 on your hands?  No problem.  Up to 1023?  Awesome.  Insulting people by saying &quot;4&quot; to them?  Priceless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Helped a lot when we finally approached binary arithmetic in a computing class some eight or ten years later.&lt;/p&gt;&#xA;" OwnerUserId="3991" LastActivityDate="2010-11-01T10:28:49.253" />
  <row Id="16009" PostTypeId="2" ParentId="7347" CreationDate="2010-11-01T10:37:30.537" Score="2" ViewCount="" Body="&lt;p&gt;I have a very simple technique.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I make my code work.&lt;/li&gt;&#xA;&lt;li&gt;I test it for speed.&lt;/li&gt;&#xA;&lt;li&gt;If it's fast, I go back to step 1 for some other feature.  If it's slow, I profile it to find the bottleneck.&lt;/li&gt;&#xA;&lt;li&gt;I fix the bottleneck.  Go back to step 1.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;There are plenty of times where it saves time to circumvent this process, but in general you'll know if that's the case.  If there's doubt, I stick to this by default.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-01T10:37:30.537" />
  <row Id="16010" PostTypeId="1" AcceptedAnswerId="16063" CreationDate="2010-11-01T10:51:58.227" Score="21" ViewCount="818" Body="&lt;p&gt;I recently tried to implement a ranking algorithm, AllegSkill, to Python 3.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's what the maths looks like:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;img src=&quot;http://i.imgur.com/IZmtY.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;sub&gt;&lt;a href=&quot;http://goo.gl/1cw0&quot; rel=&quot;nofollow&quot;&gt;No, really.&lt;/a&gt;&lt;/sub&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is then what I wrote:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;t = (µw-µl)/c  # those are used in&#xA;e = ε/c        # multiple places.&#xA;σw_new = (σw**2 * (1 - (σw**2)/(c**2)*Wwin(t, e)) + γ**2)**.5&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I actually thought it is unfortunate of Python 3 to not accept &lt;code&gt;√&lt;/code&gt; or &lt;code&gt;²&lt;/code&gt; as variable names.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; √ = lambda x: x**.5&#xA;  File &quot;&amp;lt;stdin&amp;gt;&quot;, line 1&#xA;    √ = lambda x: x**.5&#xA;      ^&#xA;SyntaxError: invalid character in identifier&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Am I out of my mind?&lt;/strong&gt; Should I have resorted for a ASCII only version? Why? Wouldn't an ASCII only version of the above be harder to validate for equivalence with the formulas?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sub&gt;Mind you, I understand some Unicode glyphs look very much like each other and some like     ▄ (or is that ▗▖ ) or ╦  just can't make any sense in written code. However, this is hardly the case for Maths or arrow glyphs.&lt;/sub&gt;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Per request, the ASCII only version would be something along the lines of:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;winner_sigma_new = ( winner_sigma ** 2 *&#xA;                    ( 1 -&#xA;                     ( winner_sigma ** 2 -&#xA;                       general_uncertainty ** 2&#xA;                     ) * Wwin(t,e)&#xA;                    ) + dynamics ** 2&#xA;                   )**.5&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;...per each step of the algorithm.&lt;/p&gt;&#xA;" OwnerUserId="236" LastEditorUserId="782" LastEditorDisplayName="" LastEditDate="2010-11-01T14:45:55.663" LastActivityDate="2011-05-01T11:59:26.863" Title="Is it bad to use Unicode characters in variable names?" Tags="&lt;best-practices&gt;&lt;naming-conventions&gt;&lt;unicode&gt;" AnswerCount="15" CommentCount="12" FavoriteCount="4" />
  <row Id="16011" PostTypeId="2" ParentId="15956" CreationDate="2010-11-01T11:10:38.153" Score="0" ViewCount="" Body="&lt;p&gt;Sure. I'm moving a number of my projects to Visual Studio 2010 from older versions. Partly it's so I can use the same tool on all my projects, partly it's because of all the great extensions for 2010, and partly it's because 2010 looks nicer and has a nicer UI. Productivity is the name of the game for software developers and if you are more relaxed and happy using a tool, you're more productive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, &quot;looks better&quot; is in the eye of the beholder. I can't tell you how many times I've been told that Expression (Blend, Web etc) &quot;looks better&quot; than Visual Studio. I hate the black look, I hate that all the menus and toolbars behave differently depending on the thing you click first, I hate the tiny font and I hate that it's so cluttered and clicky oriented. I use it only when I have to. That proves I guess that I choose my tools based on looks when I can, but my point is one person's &quot;looks better&quot; is another &quot;I hates it&quot;.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-01T11:10:38.153" CommunityOwnedDate="2011-05-28T03:03:08.047" />
  <row Id="16012" PostTypeId="2" ParentId="16010" CreationDate="2010-11-01T11:19:03.480" Score="4" ViewCount="" Body="&lt;p&gt;Do you understand the code? Does everyone else who needs to read it? If so, there's no problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I'd be glad to see the back of ASCII-only source code.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-11-01T11:19:03.480" CommentCount="4" />
  <row Id="16013" PostTypeId="2" ParentId="14226" CreationDate="2010-11-01T11:20:46.727" Score="0" ViewCount="" Body="&lt;p&gt;I have one on my desk, but it hardly ever rings. Frequent calls are the surest way to make me spend more time on stackoverflow etc. instead of working on hard problems which require focus.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-01T11:20:46.727" CommunityOwnedDate="2011-01-07T02:23:03.807" />
  <row Id="16014" PostTypeId="2" ParentId="16010" CreationDate="2010-11-01T11:21:15.057" Score="14" ViewCount="" Body="&lt;p&gt;Personally, I would hate to see code where I have to bring up the character map to type it again. Even though the unicode closely matches what's in the algorithm, it's really hurting readbility and ability to edit. Some editors might not even have a font that supports that character. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What about an alternative and just have up top &lt;code&gt;//µ = u&lt;/code&gt; and write everything in ascii? &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-11-01T11:21:15.057" CommentCount="5" />
  <row Id="16015" PostTypeId="2" ParentId="16010" CreationDate="2010-11-01T11:34:58.407" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Pro: it looks nice&lt;/li&gt;&#xA;&lt;li&gt;Con: the unicode characters and so the whole meaning might get lost in the tool chain (editor, code formatter, version control, older compiler)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;How big is the risk for you? Does the gain outweigh the risk?&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-11-01T11:34:58.407" CommentCount="2" />
  <row Id="16016" PostTypeId="1" AcceptedAnswerId="16017" CreationDate="2010-11-01T11:51:03.173" Score="5" ViewCount="254" Body="&lt;p&gt;Hello everyone,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is a difference between Update and Upgrade when i talking about some Application, Software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Greetings and thanks for good answers.&lt;/p&gt;&#xA;" OwnerUserId="943" LastActivityDate="2010-11-02T15:48:06.403" Title="Update or Upgrade?" Tags="&lt;software&gt;&lt;software-updates&gt;" AnswerCount="5" />
  <row Id="16017" PostTypeId="2" ParentId="16016" CreationDate="2010-11-01T11:57:40.280" Score="18" ViewCount="" Body="&lt;p&gt;Depends entirely on the installation technology, company developing the software and the whim of the person using the terms.  Generally though, updates stay within a product version (for example, hotfixes), while if you want to move to a later version, you would &lt;em&gt;upgrade&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you might install an update (hotfix) for Office 2007, or you might upgrade to Office 2010.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This page gives the definition according to Windows Installer: &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa370579(v=VS.85).aspx&quot; rel=&quot;nofollow&quot;&gt;http://msdn.microsoft.com/en-us/library/aa370579(v=VS.85).aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-11-01T11:57:40.280" />
  <row Id="16018" PostTypeId="2" ParentId="16010" CreationDate="2010-11-01T12:02:50.360" Score="1" ViewCount="" Body="&lt;p&gt;Sometime in the not too distant future, we'll all be using text editors / IDEs / web browsers that make it easy to write edit text including Classical Greek characters, etc.  (Or maybe we'll all have learned to use this &quot;hidden&quot; functionality in the tools we currently use ...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But until that happens, non ASCII characters in program source code would be hard for many programmers to handle, and are therefore a bad idea if you are writing applications that might need to be maintained by someone else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Incidentally the reason you can have Greek characters but not square root signs in Python identifiers is simple.  The Greek characters are classified as Unicode Letters, but the square root sign is a non-letter; see &lt;a href=&quot;http://www.python.org/dev/peps/pep-3131/&quot; rel=&quot;nofollow&quot;&gt;http://www.python.org/dev/peps/pep-3131/&lt;/a&gt; )&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-11-01T12:02:50.360" CommentCount="4" />
  <row Id="16019" PostTypeId="2" ParentId="16010" CreationDate="2010-11-01T12:09:25.183" Score="4" ViewCount="" Body="&lt;p&gt;Reminds me of an article by P&lt;a href=&quot;http://en.wikipedia.org/wiki/Poul-Henning_Kamp&quot; rel=&quot;nofollow&quot;&gt;oul-Henning Kamp&lt;/a&gt; titled &lt;a href=&quot;http://queue.acm.org/detail.cfm?id=1871406&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;&quot;To move forward with programming languages we need to break free from the tyranny of ASCII.&quot;&lt;/strong&gt;&lt;/a&gt;, where he discusses ASCII vs. Unicode in programming languages.&lt;/p&gt;&#xA;" OwnerUserId="1020" LastActivityDate="2010-11-01T12:09:25.183" CommentCount="1" />
  <row Id="16020" PostTypeId="2" ParentId="4404" CreationDate="2010-11-01T12:15:35.493" Score="0" ViewCount="" Body="&lt;p&gt;I don't recall having binary arithmetics, specifically. But we did have &quot;base conversion&quot; and I would be surprised if we didn't have base-2 as an example (we certainly had base-16, base-60 and base-240, plus having to count with pre-decimalised British currency and this was in Sweden, so I suspect the pre-decimal British currency was chosen as a tricky base).&lt;/p&gt;&#xA;" OwnerUserId="5084" LastActivityDate="2010-11-01T12:15:35.493" />
  <row Id="16021" PostTypeId="2" ParentId="16010" CreationDate="2010-11-01T12:16:08.423" Score="7" ViewCount="" Body="&lt;p&gt;Yes, you are out of your mind. I would personally reference the paper and formula number in a comment, and write everything in straight ASCII.  Then, anyone interested would be able to correlate the code and the formula.&lt;/p&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-11-01T12:16:08.423" CommentCount="8" />
  <row Id="16022" PostTypeId="2" ParentId="15856" CreationDate="2010-11-01T12:19:37.337" Score="1" ViewCount="" Body="&lt;p&gt;I came up with the solution to a totally intractable database problem in a dream the other night.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I dream about programming pretty frequently. When I was intensively learning the iPhone SDK, I remember one dream featured a girl wearing a bathing suit made out of a UITableView. It was scrollable and everything.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-11-01T12:19:37.337" />
  <row Id="16023" PostTypeId="2" ParentId="16016" CreationDate="2010-11-01T13:02:52.217" Score="10" ViewCount="" Body="&lt;p&gt;For better understanding of something that is complicated, just make it more simplier.&#xA;In this example, just split the word into atoms, like these:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Update - UP_DATE - make it up to date;&lt;/li&gt;&#xA;&lt;li&gt;Upgrade - UP_GRADE - move it to the upper (or next) grade (or level).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-11-01T13:02:52.217" />
  <row Id="16024" PostTypeId="2" ParentId="16010" CreationDate="2010-11-01T13:18:35.360" Score="0" ViewCount="" Body="&lt;p&gt;What the hell is &lt;code&gt;σ&lt;/code&gt;, what is &lt;code&gt;W&lt;/code&gt;, what is &lt;code&gt;ε&lt;/code&gt;, &lt;code&gt;c&lt;/code&gt; and what is &lt;code&gt;γ&lt;/code&gt;?&lt;br&gt;&#xA;You are to name your variables in a way that explains what their purpose is.&lt;br&gt;&#xA;I'd personally beat up anyone who'd leave the Unicode or the ASCII-version for me to maintain, although the ASCII-version is better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is evil is calling variables &lt;code&gt;σ&lt;/code&gt; or &lt;code&gt;s&lt;/code&gt; or &lt;code&gt;sigma&lt;/code&gt; or &lt;code&gt;value&lt;/code&gt; or &lt;code&gt;var1&lt;/code&gt;, because this doesn't convey any information. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming you write your code in English (as I believe you should wherever you are from), ASCII should suffice to give your variables meaningful names, so there is no actual need for Unicode.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-11-01T13:18:35.360" CommentCount="8" />
  <row Id="16025" PostTypeId="1" AcceptedAnswerId="16036" CreationDate="2010-11-01T13:34:42.377" Score="35" ViewCount="1675" Body="&lt;p&gt;When I started using an object-oriented language (Java), I pretty much just went &quot;Cool&quot; and started coding. I've never really thought about it until only recently after having read lots of questions about OOP. The general impression I get is that people struggle with it. Since I haven't thought of it as hard, and I wouldn't say I'm any genius, I'm thinking that I must have missed something or misunderstood it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why is OOP difficult to understand? &lt;em&gt;Is&lt;/em&gt; it difficult to understand?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-11-02T18:26:30.087" Title="Why is OOP difficult?" Tags="&lt;object-oriented&gt;" AnswerCount="19" CommentCount="3" FavoriteCount="10" />
  <row Id="16026" PostTypeId="2" ParentId="16025" CreationDate="2010-11-01T13:40:54.663" Score="15" ViewCount="" Body="&lt;p&gt;OOP requires the ability to think abstractly; a gift/curse that few people, even professional programmers, really have.&lt;/p&gt;&#xA;" OwnerUserId="5547" LastActivityDate="2010-11-01T13:40:54.663" CommentCount="6" />
  <row Id="16027" PostTypeId="2" ParentId="16010" CreationDate="2010-11-01T13:49:53.993" Score="0" ViewCount="" Body="&lt;p&gt;While it will be a real fun day when we can all have our choice from the tens of thousands of unicode letters and symbols (and symbolic letters!) in our programs, that day will have to wait until we break the real tyranny of the 104-letter keyboard.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you write code to be read and modified by other people, and they all use English 104-key keyboards, then using unicode symbols is probably annoying.  There's no easy way to type that stuff unless you memorize the alt-#### codes, and those still aren't that easy to input.  And, alt-num-num-num-num often takes more time to type than s-i-g-m-a.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't imagine how annoying it must be for international teams.  Someone is going to have to write code in a foreign language, and it will probably be the non-English speakers doing it ASCII style.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also encountered some annoying portability problems with this because of Leksah, a Haskell text editor.  Haskell does allow any unicode symbol as an operator (thinking of it, you should try Haskell, it's EXCELLENT for math), and Leksah has an option to try and convert letter sequences into unicode, like -&gt; into → and ++ into ⨁ .  The byte-order confusion on the file apparently through the compiler off( and the jump from two characters to one threw all my indention off, but that's not a unicode issue per se).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(To point, I had to google search a unicode reference in order to copy and paste those symbols into this text area, and a typical Haskell or F# program might have dozens of →)&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-01T13:49:53.993" CommentCount="2" />
  <row Id="16028" PostTypeId="2" ParentId="16025" CreationDate="2010-11-01T13:52:44.097" Score="2" ViewCount="" Body="&lt;p&gt;I actually have a blog called &quot;Struggles in Object Oriented Programming,&quot; that was born out of some of my struggles with learning it.  I think it was particularly difficult for me to understand because I spent so much time using procedural programming, and I had a tough time getting my head around the idea that an object could be represented by a collection of attributes and behaviors (I was used to simply a collection of variables and methods).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, there's a lot of concepts that make a language object oriented - inheritance, interfaces, polymorphism, composition, etc.  There really is a lot to learn about the theory of it before you can actually write code effectively, and in an object-oriented way, whereas with procedural programming, it's simply a matter of understanding things like memory allocation for variables, and entry point calls to other methods.&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2010-11-01T13:52:44.097" CommentCount="1" />
  <row Id="16029" PostTypeId="2" ParentId="16010" CreationDate="2010-11-01T13:55:35.680" Score="3" ViewCount="" Body="&lt;p&gt;I would say using Unicode variable names is a bad idea for two reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;They're a PITA to type.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They often look almost the same as English letters.  This is the same reason why I hate seeing Greek letters in math notation.  Try telling rho apart from p.  It's not easy.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-01T13:55:35.680" CommentCount="1" />
  <row Id="16030" PostTypeId="2" ParentId="16025" CreationDate="2010-11-01T14:04:33.483" Score="1" ViewCount="" Body="&lt;p&gt;I don't think it is difficult to understand but it may be that a lot of the programmers querying are new to the concept, coming from procedural languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From what I have seen/read lots of people (in forums at least) look for a 'result' from OOP. If you are a procedural programmer who doesn't go back and modify extend their code it can probably be hard to understand the benefits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, there is a lot of bad OOP out there, if people are reading/seeing that then it is easy to see why they might find it difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMO you need to wait until it 'clicks' or be taught by someone with real knowledge, I don't think you can rush.&lt;/p&gt;&#xA;" OwnerUserId="6457" LastActivityDate="2010-11-01T14:04:33.483" CommentCount="1" />
  <row Id="16031" PostTypeId="2" ParentId="16025" CreationDate="2010-11-01T14:04:45.900" Score="9" ViewCount="" Body="&lt;p&gt;Any paradigm requires a certain push &quot;over the edge&quot; to grasp, for most people.  By definition, its a new mode of thought and so it requires a certain amount of letting go of old notions and a certain amount of fully grasping why the new notions are useful.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think a lot of the problem is that the methods used to teach computer programming are pretty poor in general.  OOP is so common now that it's not as noticeable, but you still see if often in functional programming: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;important concepts are hidden behind odd names (FP: What's a moand?  OOP: Why do they call them functions sometimes and methods other times?)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;odd concepts are explained in metaphor instead of in terms of what they actually do, or why you'd use them, or why anyone ever thought to use them (FP: A monad is a spacesuit, it wraps up some code.  OOP: An object is like a duck, it can make noise, walk and inherits from Animal)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;the good stuff varies from person to person, so its not quite clear what will be the tipping point for any student, and often the teacher can't even remember. (FP: Oh, monads let you hide something in the type itself and carry it on without having to explicitly write out what's happening each time.  OOP: Oh, objects let you keep the functions for a kind of data with that data.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The worst of it is that, as the question indicates, some people will immediately snap to understanding why the concept is good, and some won't.  It really depends on what the tipping point is.  For me, grasping that objects store data and methods for that data was the key, after that everything else just fit as a natural extension.  Then I had later jumps like realizing that a method call from an object is very similar to making a static call with that that object as the first parameter.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The little jumps later on help refine understanding, but its the initial one that takes a person from &quot;OOP doesn't make sense, why do people do this?&quot; to &quot;OOP is the best, why do people do anything else?&quot;&lt;/p&gt;&#xA;" OwnerUserId="5109" LastEditorUserId="5109" LastEditorDisplayName="" LastEditDate="2010-11-01T14:58:10.713" LastActivityDate="2010-11-01T14:58:10.713" CommentCount="2" />
  <row Id="16032" PostTypeId="2" ParentId="16025" CreationDate="2010-11-01T14:08:23.227" Score="1" ViewCount="" Body="&lt;p&gt;I think it depends on age (age as a proxy for experience) and, more importantly, interest. If you're &quot;young&quot; (i.e., green, perhaps) and you've never thought any other way, it seems quite straightforward. On the other hand, if you think it's the coolest thing you've ever seen -- happened to me at age 28 or something -- it's easy to grok. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if you think, as many of my Java students did, &quot;why are we learning this, it's just a fad,&quot; it's practically impossible to learn. This is true with most technologies.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastEditorUserId="4688" LastEditorDisplayName="" LastEditDate="2010-11-01T14:17:41.173" LastActivityDate="2010-11-01T14:17:41.173" CommentCount="4" />
  <row Id="16033" PostTypeId="2" ParentId="15776" CreationDate="2010-11-01T14:09:58.743" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.atlassian.com/software/clover/&quot; rel=&quot;nofollow&quot;&gt;Clover&lt;/a&gt; - A test coverage tool, but outputs the most lovely reports in the world (costs a pretty penny thou.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.crap4j.org/&quot; rel=&quot;nofollow&quot;&gt;Crap4J&lt;/a&gt; - Same general data as Clover (that is to say it is a code coverage tool) but simplified and less pretty (free).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://findbugs.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Findbugs&lt;/a&gt; - Reports on common coding errors (free).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All can be used as either an Eclipse plugin or a stand alone application.&lt;/p&gt;&#xA;" OwnerUserId="1896" LastActivityDate="2010-11-01T14:09:58.743" />
  <row Id="16034" PostTypeId="2" ParentId="14124" CreationDate="2010-11-01T14:10:22.867" Score="5" ViewCount="" Body="&lt;p&gt;First understand that &quot;I'm on it&quot; is the worst thing you can say. It indicates that you don't want to tell him what you have done and to his mind that means you haven't done anything. Often managers have good reason to feel this way as that is exactly the phrase that bad employees use when they are trying to avoid telling the boss they are stuck or don't know what to do or are in over their head. &quot;I'm on it&quot; means to a manager that the project is trouble and you might be quitting the day before the deadline to avoid facing the music. The more you say, &quot;I'm on it&quot; the more he is going to pester you as that doesn't give him any information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your boss have every right to know what you are doing and what progress you have made. This is not an interruption of your work, it is part of your work. Now how to handle it so he isn't so annoying about it? I'd give him what he wants, information. Do it at the beginning of the day or the end of the day on a schedule. Discuss it with him if he would like a meeting, or just an email with a progress report. Give him an action plan and then tell him when you are deviating from the plan. Once he has built up a trust that you wil give him the information he needs and that you won't hide problems until it's too late to deal with them, he will probably back off. But until you take actions to build that trust, he won't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is likely that he too has bosses who are pestering him daily for progress reports. If he can give them and sound knowledgeable to his management, that's what he really wants most of the time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there are some people who are just bullies and won't be satisfied no matter what you tell them, they indulge in magical thinking and think things can be done by when they want them just because that is when they want them. They think of how much better they will look to their managers if they bring things in early, not if it is even possible.  If the boss won't accept a simple daily meeting or email of progress, then he may be one of these people. If he is, then this is the kind of person you want to avoid and finding a differnt position in the company or outside the company may be your best bet in the long run. Life is too short to waste with dealing with toxic people.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-01T14:10:22.867" />
  <row Id="16035" PostTypeId="2" ParentId="16025" CreationDate="2010-11-01T14:12:21.490" Score="3" ViewCount="" Body="&lt;p&gt;You should read &lt;a href=&quot;http://cacm.acm.org/magazines/2010/9/98017-objects-never-well-hardly-ever/fulltext&quot; rel=&quot;nofollow&quot;&gt;Objects Never? Well, Hardly Ever.&lt;/a&gt; (ACM membership required) by Mordechai Ben-Ari who suggests that OOP is so difficult, because it's not a paradigm that's actually natural for modeling anything. (Though I have reservations about the article, because it's not clear what criteria he feels a program needs to satisfy to say that it's written on the OOP paradigm as opposed to a procedural paradigm using an OO language.)&lt;/p&gt;&#xA;" OwnerUserId="1961" LastActivityDate="2010-11-01T14:12:21.490" />
  <row Id="16036" PostTypeId="2" ParentId="16025" CreationDate="2010-11-01T14:15:26.920" Score="50" ViewCount="" Body="&lt;p&gt;I personally found the mechanics of OOP fairly easy to grasp.  The hard part for me was the &quot;why&quot; of it.  When I was first exposed to it, it seemed like a solution in search of a problem.  Here are a few reasons why I think most people find it hard:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;IMHO teaching OO from the beginning is a terrible idea.  Procedural coding is not a &quot;bad habit&quot; and is the right tool for some jobs.  Individual methods in an OO program tend to be pretty procedural looking anyhow.  Furthermore, before learning procedural programming well enough for its limitations to become visible, OO doesn't seem very useful to the student.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Before you can really grasp OO, you need to know the basics of data structures and late binding/higher order functions.  It's hard to grok polymorphism (which is basically passing around a pointer to data and a bunch of functions that operate on the data) if you don't even understand the concepts of structuring data instead of just using primitives and passing around higher order functions/pointers to functions.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Design patterns should be taught as something fundamental to OO, not something more advanced.  Design patterns help you to see the forest through the trees and give relatively concrete examples of where OO can simplify real problems, and you're going to want to learn them eventually anyhow.  Furthermore, once you really get OO, most design patterns become obvious in hindsight.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-01T14:15:26.920" CommentCount="6" />
  <row Id="16037" PostTypeId="2" ParentId="16010" CreationDate="2010-11-01T14:32:14.053" Score="1" ViewCount="" Body="&lt;p&gt;You didn't say what language/compiler you are using, but usually the rule for variable names is that they must start with an alphabetic character or underscore, and contain only alphanumerics and underscores.  A Unicode √ would not be considered alphanumeric, since it is a mathematical symbol instead of a letter.  However σ might be (since it is in the Greek alphabet) and á would probably be considered alphanumeric.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-11-01T15:28:33.430" LastActivityDate="2010-11-01T15:28:33.430" />
  <row Id="16038" PostTypeId="2" ParentId="14226" CreationDate="2010-11-01T14:43:44.677" Score="1" ViewCount="" Body="&lt;p&gt;Whether or not I have a phone is mainly dependent on where I work.  I never request one, but sometimes I get one and sometimes I don't.  Places that give me a phone tend to be places that have lots of conference calls.  I think those places are also more likely to have development teams divided geographically.  Usually I'd be fine with using my cell phone as needed, but when working at places that have lots of calls that take lots of time and with a cell phone plan that has a limited number of minutes, I prefer to use my desk phone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, how much I use the phone depends on who I work with.  Certain people just seem to prefer to talk on the phone rather than use messaging or email.  At one point I was a team lead for a sizable team, and I found that the project manager and development manager preferred to call me quite often in order to answer questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I find it's easier to talk on the phone or in person when I need to get an answer to something but don't really know exactly what it is that I need to ask.  This may require a lot of interaction with the other person in order to figure out what the answer is that I need.  I find this happens when I'm developing against a very unclear specification.  If I need less interaction, such as if I have a specific question, then messaging works fine.  If I need even less interaction, then an email might work.  Not that these are hard and fast rules.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, do I need a phone?  I don't think it's strictly necessary, but could be useful if I need to work with people that I can't meet face-to-face when necessary.&lt;/p&gt;&#xA;" OwnerUserId="5486" LastActivityDate="2010-11-01T14:43:44.677" CommunityOwnedDate="2011-01-07T02:23:03.807" CommentCount="2" />
  <row Id="16039" PostTypeId="2" ParentId="16010" CreationDate="2010-11-01T14:50:55.820" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;This argument assumes you have no problem with typing unicodes nor reading greek letters&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's the argument: would you like pi or circular_ratio? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this case, I'd prefer pi to circular_ratio because I've learned about pi since I was in grade school and I can expect the definition of pi is well ingrained to every programmers worth his salt. Therefore I wouldn't mind typing π to mean circular_ratio.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, what about &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;winner_sigma_new = ( winner_sigma ** 2 *&#xA;                    ( 1 -&#xA;                     ( winner_sigma ** 2 -&#xA;                       general_uncertainty ** 2&#xA;                     ) * Wwin(t,e)&#xA;                    ) + dynamics ** 2&#xA;                   )**.5&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;σw_new = (σw**2 * (1 - (σw**2)/(c**2)*Wwin(t, e)) + γ**2)**.5&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;To me, both versions are equally opaque, just like &lt;code&gt;pi&lt;/code&gt; or &lt;code&gt;π&lt;/code&gt; is, &lt;em&gt;except&lt;/em&gt; I didn't learn this formula in grade school. &lt;code&gt;winner_sigma&lt;/code&gt; and &lt;code&gt;Wwin&lt;/code&gt; means nothing to me, or to anyone else reading the code, and using neither &lt;code&gt;σw&lt;/code&gt; doesn't make it any better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, using descriptive names, e.g. &lt;code&gt;total_score&lt;/code&gt;, &lt;code&gt;winning_ratio&lt;/code&gt;, etc would increase readability much better than using &lt;em&gt;ascii names that merely pronounce greek letters&lt;/em&gt;. The problem isn't that I can't read greek letters, but I can't associate the characters (greek or not) with a &quot;meaning&quot; of the variable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You certainly understood the problem yourself when you commented: &lt;code&gt;You should have seen the paper. It's just eight pages...&lt;/code&gt;. The problem is if you base your variable naming on a paper, which chooses single-letter names for conciseness rather than readability (irrespective whether they're greek), then people would have to read the paper to be able to associate the letters with a &quot;meaning&quot;; this means you're putting an artificial barrier for people to be able to understand your code, and that's always a bad thing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even when you live in an ASCII-only world, both &lt;code&gt;a * b / 2&lt;/code&gt; and &lt;code&gt;alpha * beta / 2&lt;/code&gt; are an equally opaque rendering of &lt;code&gt;height * base / 2&lt;/code&gt;, the triangle area formula. The unreadability of using single-letter variables grows exponentially as the formula grows in complexity, and the AllegSkill formula is certainly not a trivial formula.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Single letters variable is only acceptable as a simple loop counter, whether they are greek single-letters or ascii single-letter, I don't care; no other variables should consist solely of a single letter. I don't care if you use greek letters for your names, but when you do use them, make sure I can associate those names with a &quot;meaning&quot; without needing to read an arbitrary paper somewhere else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When in grade school, I definitely wouldn't mind seeing mathematical expressions using symbols such as: +, -, ×, ÷, for basic arithmetics and √() would be a square-root function. After I graduated grade school, I wouldn't mind the addition of a shiny new symbols: ∫ for integration. Note the trend, these are all operators. Operators are much more heavily used than variable names, but they are less often reused for an entirely different meaning (in the case where mathematicians reuse operators, the new meaning often still holds some basic properties of the old meaning; this is not the case for when reusing variable names).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In conclusion, no, it's not bad to use Unicode characters for variable names; however, it's always bad to use single letter names for variable names, and being allowed to use Unicode names is not a license to use single letter variable names.&lt;/p&gt;&#xA;" OwnerUserId="3733" LastEditorUserId="3733" LastEditorDisplayName="" LastEditDate="2010-11-01T15:23:34.207" LastActivityDate="2010-11-01T15:23:34.207" CommentCount="4" />
  <row Id="16040" PostTypeId="1" AcceptedAnswerId="16042" CreationDate="2010-11-01T15:04:05.357" Score="1" ViewCount="167" Body="&lt;p&gt;Often in C code (and some other languages as well) I have seen a section in the top-level comments for mod lines. These include the date a modification to the file was made, the user who made the modification, and a brief description of what was changed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have not yet seen an equivalent of this in Java. I think this information is useful, especially when trying to track down bugs in code I did not write. Is this because Java code is often under version control, or are there other reasons? Are there any suggestions as to how to include the information in the code file?&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-01T15:29:16.413" Title="Mod lines in Java code" Tags="&lt;best-practices&gt;&lt;java&gt;&lt;version-control&gt;" AnswerCount="3" />
  <row Id="16041" PostTypeId="2" ParentId="16025" CreationDate="2010-11-01T15:08:56.293" Score="0" ViewCount="" Body="&lt;p&gt;Terminologies were my bump in the road when learning the principles of object oriented programming (POOP). It's when you get a grasp of the fundamentals that  pieces start to fall into place. Just like all things learning new concepts are a little hard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Agreed that design patterns should be tought at least parallel to OOP.&lt;/p&gt;&#xA;" OwnerUserId="6479" LastEditorUserId="6479" LastEditorDisplayName="" LastEditDate="2010-11-01T15:27:19.633" LastActivityDate="2010-11-01T15:27:19.633" />
  <row Id="16042" PostTypeId="2" ParentId="16040" CreationDate="2010-11-01T15:10:35.410" Score="10" ViewCount="" Body="&lt;p&gt;I see no reason to have those useless comments in any source file. Its just reinventing version control extremely poorly.&lt;/p&gt;&#xA;" OwnerUserId="227" LastActivityDate="2010-11-01T15:10:35.410" CommentCount="2" />
  <row Id="16043" PostTypeId="2" ParentId="16040" CreationDate="2010-11-01T15:11:18.043" Score="0" ViewCount="" Body="&lt;p&gt;Often in Java I see these types of lines, but it's not entered manually.  Most VCSs can tag any text file with that data, as long as a template is left in the file to insert that information into.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, in the VCS I use, if I include &lt;code&gt;$Id: ... $&lt;/code&gt; anywhere in the file, the &lt;code&gt;...&lt;/code&gt; will be replaced with the file name, version number, last editor, edit date, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people think they're useless in light of VCSs (which store all of that information), but I don't.  It's quick access to that information which you would have to mine for (or at least leave your file editor) by going through the VCS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: By the way, nobody's highlighted my main reason for disliking them (remember, I said they're not useless, not that I like them).  I hate that they add textual changes to the file at each checkin.  You either need a highly configurable diff client to ignore those changes, or you're faced with boilerplate changes at each revision which make it more cumbersome to see what actually changed.&lt;/p&gt;&#xA;" OwnerUserId="3921" LastEditorUserId="3921" LastEditorDisplayName="" LastEditDate="2010-11-01T15:29:16.413" LastActivityDate="2010-11-01T15:29:16.413" CommentCount="9" />
  <row Id="16044" PostTypeId="2" ParentId="16040" CreationDate="2010-11-01T15:12:53.580" Score="1" ViewCount="" Body="&lt;p&gt;I've often seen Java files with a header including the original date created and the author, but not &quot;mod lines&quot;. Version control would make that rather superfluous, as it tracks changes on a per-line basis by user.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for why they're used in C, perhaps it's an old custom from before the days of VC.&lt;/p&gt;&#xA;" OwnerUserId="4766" LastActivityDate="2010-11-01T15:12:53.580" />
  <row Id="16045" PostTypeId="2" ParentId="4404" CreationDate="2010-11-01T15:20:18.187" Score="0" ViewCount="" Body="&lt;p&gt;No, and neither did my children. However we taught them some simple things when they were younger, mostly party tricks like counting to 1000 on their fingers, along with easy ways to tell if numbers divide by 3 and the like. My youngest read Charles Petzold's CODE in Grade 7. He had a teacher who allowed only reading during free time - no writing, no drawing, no staring into space - and so took a very dense book that would last him a good long time. As a result he learned binary and much more. (He also freaked out his teachers, but I can't let that control our actions.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think learning other bases or number systems is particularly helpful to later programming, even if you're going to bit-twiddle - a grownup can learn base-2 concepts in less than a day. However Boolean logic is super helpful. My oldest couldn't understand why her critical thinking course in college was all surrounded with &quot;now this part is complicated, so hang on&quot; warnings whenever they got near logic problems. She had no problems with any of it.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-01T15:20:18.187" />
  <row Id="16046" PostTypeId="2" ParentId="14831" CreationDate="2010-11-01T15:22:49.027" Score="1" ViewCount="" Body="&lt;p&gt;IMO, you should think that exception handling and flow control statements are basically the same. You use them to control the flow of your programs based on what condition they are currently in. The difference is exception handling only will react when an error (or exception) occurs.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-01T15:22:49.027" CommentCount="1" />
  <row Id="16047" PostTypeId="2" ParentId="16025" CreationDate="2010-11-01T15:25:12.503" Score="3" ViewCount="" Body="&lt;p&gt;I think many programmers have difficulty with upfront design and planning to begin with. Even if someone does all the design for you, it is still possible to break away from OOP principles. If I take a bunch of spaghetti code and dump it into a class, is that really OOP? Someone who doesn't understand OOP can still program in Java. Also, don't confuse difficulty to understand with not willing to follow a certain methodolgy or disagreeing with it.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-01T15:25:12.503" />
  <row Id="16048" PostTypeId="2" ParentId="1890" CreationDate="2010-11-01T15:28:29.927" Score="1" ViewCount="" Body="&lt;p&gt;I wouldn't call it &quot;my&quot; anything!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I'd say&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;&#xA;class C&#xA;{&#xA;    int VariableName { get; set; }&#xA;}&#xA;&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;quite often this is nicer than having explicit variables.  If I had an explicit private variable i'd call it &lt;code&gt;int _variableName;&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="6828" LastActivityDate="2010-11-01T15:28:29.927" />
  <row Id="16049" PostTypeId="2" ParentId="15895" CreationDate="2010-11-01T15:33:59.487" Score="0" ViewCount="" Body="&lt;p&gt;From link provided above:&#xA;&quot;snip..All of those products were either built using XAML-based UI technology (WPF and Silverlight) or target XAML-based UI technology with their output....snip&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What more were you expecting to learn from WPF anyways? The learning you get will easily be applied to Silverlight if anything (XAML). &lt;/p&gt;&#xA;" OwnerUserId="6479" LastActivityDate="2010-11-01T15:33:59.487" />
  <row Id="16051" PostTypeId="1" AcceptedAnswerId="16198" CreationDate="2010-11-01T15:41:17.537" Score="-1" ViewCount="373" Body="&lt;p&gt;Does anyone know of an online tutorial that shows hot to use the query extender?  A free screencast would be great too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you&lt;/p&gt;&#xA;" OwnerUserId="6829" LastActivityDate="2010-11-02T06:49:11.800" ClosedDate="2010-11-02T22:13:49.533" Title="asp.net 4.0 Query Extender" Tags="&lt;asp.net&gt;" AnswerCount="2" CommentCount="3" />
  <row Id="16052" PostTypeId="2" ParentId="4404" CreationDate="2010-11-01T15:49:30.097" Score="0" ViewCount="" Body="&lt;p&gt;We didn't have binary arithmetic per se, but we were briefly introduced binary and hexadecimal way of counting stuff in 6th grade. I remember everyone was clueless or didn't seem to grasp the usefulness of this. I was the only one who knew it beforehand since I had built some websites in HTML where I used hex colors, but that was it. It was a small class and I was the only one answering questions. I was the class nerd and girls hated me for my grades. &lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-11-01T15:49:30.097" />
  <row Id="16053" PostTypeId="2" ParentId="15873" CreationDate="2010-11-01T15:49:34.517" Score="3" ViewCount="" Body="&lt;p&gt;In my experience - EE types seem to design linear programs and not to incorporate the abstraction layers CS types seem to be comfortable with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No comment about the quality differences or lack thereof.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-01T15:49:34.517" />
  <row Id="16054" PostTypeId="2" ParentId="16016" CreationDate="2010-11-01T15:54:51.323" Score="0" ViewCount="" Body="&lt;p&gt;Depending on your service contract, the cost.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-01T15:54:51.323" />
  <row Id="16055" PostTypeId="2" ParentId="16025" CreationDate="2010-11-01T15:57:04.770" Score="4" ViewCount="" Body="&lt;p&gt;Because the basic explanation of OOP has very, very little to do with how it's used in the field. Most programs for teaching it try to use a physical model, such as &quot;Think of a car as an object, and wheels as objects, and the doors, and the transmission ...&quot;, but outside of some obscure cases of simulation programming, objects are much more often used to represent non-physical concepts or to introduce indirection. The effect is that it makes people understand it intuitively in the wrong way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Teaching from design patterns is a much better way to describe OOP, as it shows programmers how some actual modeling problems can be effectively attacked with objects, rather than describing it in the abstract.&lt;/p&gt;&#xA;" OwnerUserId="1147" LastActivityDate="2010-11-01T15:57:04.770" />
  <row Id="16056" PostTypeId="2" ParentId="15873" CreationDate="2010-11-01T15:59:23.833" Score="2" ViewCount="" Body="&lt;p&gt;Having an EE minor and a CS major, I've worked with both groups academically. I've never held a job where I designed EE style products, but I've consumed a lot of them doing work for companies with things like PLC, and so having been able to understand (from an educational background) what as occurring was nice. So I can't say that I know 100% about workplace behavior and characteristics, but I can describe the &lt;code&gt;academic&lt;/code&gt; differences between the two to some extent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EE folks tend to focus on the details, and they tend to know the exact implementation. If it's not 100% mappable, they don't like it. EE folks will optimize down to remove unnecessary details if they can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SE folks tend to like layers and compartmentalization of logic. SE folks don't mind bloated projects. SE folks tend to be very math oriented. They tend to think in terms of equations and how to solve problems from a pattern concept. &lt;strong&gt;Joins&lt;/strong&gt; are more intuitive to this group, like database work. The further SE you go the more you tend to see people who are fluent with things like Functional Programming. That's just not &lt;em&gt;safe&lt;/em&gt; ground for an EE person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both folks know about stuff like Karnaugh maps so there's plenty of overlap in those areas. Logic reduction, that sort of thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ok, so that's my subjective answer. Hope it helps.&lt;/p&gt;&#xA;" OwnerUserId="2356" LastActivityDate="2010-11-01T15:59:23.833" CommentCount="4" />
  <row Id="16057" PostTypeId="2" ParentId="16025" CreationDate="2010-11-01T16:15:19.123" Score="13" ViewCount="" Body="&lt;p&gt;I think there are a few of factors that haven't been mentioned yet. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of all, at least in &quot;pure OOP&quot; (e.g., Smalltalk) where &lt;em&gt;everything&lt;/em&gt; is an object, you have to twist your mind into a rather unnatural configuration to think of a number (for only one example) as an intelligent object instead of just a value -- since in reality, &lt;code&gt;21&lt;/code&gt; (for example) really &lt;em&gt;is&lt;/em&gt; just a value. This becomes especially problematic when on one hand you're told that a big advantage of OOP is modeling reality more closely, but you start off by taking what looks an awful lot like an LSD-inspired view of even the most basic and obvious parts of reality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, inheritance in OOP doesn't follow most people's mental models very closely either. For most people, classifying things most specifically does &lt;em&gt;not&lt;/em&gt; have anywhere close to the absolute rules necessary to create a class hierarchy that works. In particular, creating a &lt;code&gt;class D&lt;/code&gt; that inherits from another &lt;code&gt;class B&lt;/code&gt; means that objects of &lt;code&gt;class D&lt;/code&gt; share absolutely, positively &lt;em&gt;all&lt;/em&gt; the characteristics of &lt;code&gt;class B&lt;/code&gt;. &lt;code&gt;class D&lt;/code&gt; can add new and different characteristics of its own, but &lt;em&gt;all&lt;/em&gt; the characteristics of &lt;code&gt;class B&lt;/code&gt; must remain intact.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By contrast, when people classify things mentally, they typically follow a much looser model. For one example, if a person makes some rules about what constitutes a class of objects, it's pretty typical that almost any one rule can be broken as long as enough other rules are followed. Even the few rules that can't really be broken can almost always be &quot;stretched&quot; a little bit anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just for example, consider &quot;car&quot; as a class. It's pretty easy to see that the &lt;em&gt;vast&lt;/em&gt; majority of what most people think of as &quot;cars&quot; have four wheels. Most people, however, have seen (at least a picture of) a car with only three wheels. A few of us of the right age also remember a race car or two from the early '80s (or so) that had six wheels -- and so on. This leaves us with basically three choices:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Don't assert anything about how many wheels a car has -- but this tends to lead to the implicit assumption that it'll always be 4, and code that's likely to break for another number.&lt;/li&gt;&#xA;&lt;li&gt;Assert that all cars have four wheels, and just classify those others as &quot;not cars&quot; even though we know they really are.&lt;/li&gt;&#xA;&lt;li&gt;Design the class to allow variation in the number of wheels, just in case, even though there's a good chance this capability will never be needed, used, or properly tested.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Teaching about OOP often focuses on building huge taxonomies -- e.g., bits and pieces of what would be a giant hierarchy of all known life on earth, or something on that order. This raises two problems: first and foremost, it tends to lead many people toward focusing on huge amounts of information that's utterly irrelevant to the question at hand. At one point I saw a rather lengthy discussion of how to model breeds of dogs, and whether (for example) &quot;miniature poodle&quot; should inherit from &quot;full sized poodle&quot;, or vice versa, or whether there should be an abstract base &quot;Poodle&quot; class, with &quot;full-size poodle&quot; and &quot;miniature poodle&quot; both inheriting from it. What they all seemed to ignore was that the application was supposed to deal with keeping track of licenses for dogs, and for the purpose at hand it was entirely adequate to have a single field named &quot;breed&quot; (or something on that order) with no modeling of the relationship between breeds at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, and almost importantly, it leads to focusing on the characteristics of the items, instead of focusing on the characteristics that are important for the task at hand. It leads toward modeling things as they are, where (most of the time) what's really needed is building the simplest model that will fill our needs, and using abstraction to fit the &lt;em&gt;necessary&lt;/em&gt; sub-classes to fit the abstraction we've built.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, I'll say once again: we're &lt;em&gt;slowly&lt;/em&gt; following the same path taken by databases over the years. Early databases followed the hierarchical model. Other than focusing exclusively on data, this is single inheritance. For a short time, a few databases followed the network model -- essentially identical to multiple inheritance (and viewed from this angle, multiple interfaces aren't enough different from multiple base classes to notice or care about).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Long ago, however, databases largely converged on the relational model (and even though they aren't SQL, at this level of abstraction the current &quot;NoSQL&quot; databases are relational too). The advantages of the relational model are sufficiently well known that I won't bother repeating them here. I'll just note that the closest analog of the relational model we have in programing is generic programming (and sorry, but despite the name, Java generics, for one example, don't really qualify, though they are a tiny step in the right direction).&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-01T16:15:19.123" CommentCount="2" />
  <row Id="16058" PostTypeId="1" CreationDate="2010-11-01T16:17:49.757" Score="3" ViewCount="224" Body="&lt;p&gt;I'm interested in a rough measure (percentage-wise) of how many use garbage collection, such as the &lt;a href=&quot;http://en.wikipedia.org/wiki/Boehm_garbage_collector&quot; rel=&quot;nofollow&quot;&gt;Boehm collector&lt;/a&gt;, with standard C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Under what circumstances would you use garbage collection, and when wouldn't you, with C++? Are there other alternatives?&lt;/p&gt;&#xA;" OwnerUserId="6830" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-11-25T05:08:35.490" LastActivityDate="2010-11-25T05:08:35.490" Title="Do you use automatic garbage collection with standard C++?" Tags="&lt;programming-practices&gt;&lt;c++&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="16059" PostTypeId="1" CreationDate="2010-11-01T16:22:25.443" Score="1" ViewCount="111" Body="&lt;p&gt;I'd like to know what people think of ASP.NET Dynamic Data.  I see the project type in visual studio and have found very little about it mention on blogs and in books.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I created a site using it and it is great the way it wires up the CRUD pages, but i don't understand how to modify the the pages without modifying the template that all the pages use. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you think it will be abandoned in future versions of visual studio?  I'm wondering if it's worth the effort of learning this type of application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;personally i think i'd like something simpler....create the CRUD for us, but make them on seperate pages, without the whole template system.&lt;/p&gt;&#xA;" OwnerUserId="6829" LastActivityDate="2010-11-01T16:33:30.343" Title="ASP.NET Dynamic Data" Tags="&lt;asp.net&gt;" AnswerCount="1" />
  <row Id="16060" PostTypeId="2" ParentId="16059" CreationDate="2010-11-01T16:33:30.343" Score="1" ViewCount="" Body="&lt;p&gt;I've always viewed Dynamic Data as an excellent way to create administrative pages...pages that can be thrown up quickly to edit metadata, but which a normal user will never see, so customization becomes less important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are using ASP.NET MVC, Dynamic Data takes on far less importance, as the View builders do much of the scaffolding work for you already.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-01T16:33:30.343" />
  <row Id="16061" PostTypeId="2" ParentId="16058" CreationDate="2010-11-01T16:33:42.123" Score="3" ViewCount="" Body="&lt;p&gt;I have, but at least for me it seemed to cause more problems than it solved. Using GC with C++ basically makes it much more like other languages that use GC -- in particular, you lose the deterministic destruction of objects that's (more or less) necessary for RAII to work correctly. This, in turn, means that when (for example) you want to destroy something deterministically, you need to do so &lt;em&gt;explicitly&lt;/em&gt; like you do in something like Java. IMO, that's somewhat clumsy in Java -- but much more so in C++, since it lacks a &lt;code&gt;finally&lt;/code&gt; clause for the purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Under normal circumstances, you can use a dtor and RAII to provide all the capabilities of a &lt;code&gt;finally&lt;/code&gt; clause, but the whole problem here is that with GC you no longer get that. That means almost any time you want to destroy something deterministically, you need to do so explicitly &lt;em&gt;and&lt;/em&gt; throw (pun noted by not intended) in extra &lt;code&gt;try&lt;/code&gt;/&lt;code&gt;catch&lt;/code&gt; clauses to ensure that it happens no matter how you exit the area where you needed the resource.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, it comes down to one thing: at least for me, GC accomplishes next to nothing, because intelligent use of container classes has basically eliminated memory management problems without it. RAII allows me to manage memory &lt;em&gt;and&lt;/em&gt; virtually all other resources cleanly. Using GC means 1) the memory isn't managed as well (memory footprint is generally considerably larger), and 2) I have to go back to managing other resources manually.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-01T16:33:42.123" CommentCount="1" />
  <row Id="16063" PostTypeId="2" ParentId="16010" CreationDate="2010-11-01T16:53:28.323" Score="11" ViewCount="" Body="&lt;p&gt;I feel strongly that just replacing &lt;code&gt;σ&lt;/code&gt; with &lt;code&gt;s&lt;/code&gt; or &lt;code&gt;sigma&lt;/code&gt; would be stupid, bordering on brain-dead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What’s the potential gain? Well, let’s see …&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Does it improve readability? Nope, not in the slightest. If that were so, the original formula would have undoubtedly used Latin letters also.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Does it improve writability? On the first glance, yes. But on the second, no. Because this formula is &lt;em&gt;never going to change&lt;/em&gt; (well, “never”). There will normally be no need to change the code, nor to extend it using these variables. So writability is – just this once – not an issue.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Personally, I think programming languages have one advantage over mathematical formulae: you can use meaningful, expressive identifiers. In mathematics, this isn’t normally the case, so we resort to one-letter variables, occasionally making them Greek.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But Greek isn’t the problem. The non-descriptive, one-letter identifiers are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So either keep the original notation … after all, if the programming language &lt;em&gt;does&lt;/em&gt; support Unicode in identifiers, so there’s no technical barrier. Or use meaningful identifiers. Don’t just replace Greek glyphs with Latin glyphs. Or Arabic ones, or Hindi ones.&lt;/p&gt;&#xA;" OwnerUserId="2366" LastActivityDate="2010-11-01T16:53:28.323" />
  <row Id="16064" PostTypeId="2" ParentId="16058" CreationDate="2010-11-01T16:54:08.447" Score="0" ViewCount="" Body="&lt;p&gt;I use garbage collection with smart pointers (Boost's shared_ptr). It's mostly used for large objects that are shared throughout the system. It encourages passing the pointer around and ensures the object is destroyed at some point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also use the shared pointers with a publish/subscribe type system. Mostly because I don't know how many handlers are going to have access to the same event pointer and I don't have a definite lifetime for that event.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will admit that using the shared pointers for the objects has caused more trouble than help at certain points. Mostly because these objects have a clear and definite time of destruction/creation and there's no need for them to be garbage collected. In fact, it keeps hiding errors where an object is holding onto a subsystem for too long and the subsystems are being destroyed in the incorrect order.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have never used a garbage collector similar to the one that's used for Java. Didn't know those existed.&lt;/p&gt;&#xA;" OwnerUserId="3102" LastActivityDate="2010-11-01T16:54:08.447" CommentCount="1" />
  <row Id="16065" PostTypeId="2" ParentId="15972" CreationDate="2010-11-01T16:57:53.323" Score="-1" ViewCount="" Body="&lt;p&gt;Here's a good overview of 10 things that can be done in Flash and not HTML5, yet anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://active.tutsplus.com/articles/roundups/10-flash-things-you-can%E2%80%99t-do-with-html5/&quot; rel=&quot;nofollow&quot;&gt;http://active.tutsplus.com/articles/roundups/10-flash-things-you-can%E2%80%99t-do-with-html5/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3242" LastActivityDate="2010-11-01T16:57:53.323" CommentCount="2" />
  <row Id="16066" PostTypeId="2" ParentId="16025" CreationDate="2010-11-01T17:00:05.370" Score="2" ViewCount="" Body="&lt;p&gt;I think the reason OOP is difficult for many is because the tools don't really facilitate it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Computer languages today are an abstraction of what is going on in the computer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;OOP is an abstracted way to represent abstractions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So we are using an abstraction to build abstractions with an abstraction. Add to this that what we are abstracting are usually very complex physical/social interactions and, well, no wonder.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-11-01T17:00:05.370" />
  <row Id="16067" PostTypeId="2" ParentId="3886" CreationDate="2010-11-01T17:09:10.433" Score="0" ViewCount="" Body="&lt;p&gt;Dim rooms are OK; sometimes I work in dim light if the sun has set since the time I sat in front of the computer and I'm too lazy to get up and turn the light on, but usually I keep the ligths on and immitate daylight using indirect flourescent lightning. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know some people hate flourescent light and prefer incndescent light bulbs, but I personally hate them with a passion. It's way too dark and does not come near the visual clarity and sharpness you get with daylight. Flaurescent does, and I tend to get headaches unless I use it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is that the light from a modern screen is a lot more like flourescent lightning than incandescent lightning, and under incandescent conditions the ambient lightning tends to be darker than the screen. Even if you turn the brightness down, something about that type of light just isn't absorbed in ambient incandescent lightning and the result is akin to staring directly at a bright light source. It may not be a particularly strong one, but a bright light source nonetheless. Flourescent light of the daylight veriety on the other hand absorbs it perfectly. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-11-01T17:09:10.433" />
  <row Id="16068" PostTypeId="2" ParentId="16051" CreationDate="2010-11-01T17:11:05.773" Score="0" ViewCount="" Body="&lt;p&gt;Here is a walkthrough on &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd537669.aspx&quot; rel=&quot;nofollow&quot;&gt;MSDN&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6423" LastActivityDate="2010-11-01T17:11:05.773" />
  <row Id="16069" PostTypeId="2" ParentId="15956" CreationDate="2010-11-01T17:11:21.213" Score="0" ViewCount="" Body="&lt;p&gt;Not really. I don't have any design taste - my GUIs tend to be  rather garish to other people! What matters to me in a UI is: How easily and quickly can I get to what I need to do? If the most common tasks I need are buried in submenus under hidden switches, and can't be customized out to main menus (or better yet, buttons and shortcut keys) than I hate it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a flip side to this too, though. If the common things are easy to do, but more complex stuff is hard to find, then the UI is equally bad. IMO the perfect example of this is Office 2007. All the basic operations are right up top; but if you need hanging indents, columns, or more advanced formatting options, they are harder to find. With the old menus, I could usually at least make an educated guess as to where the option was.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-01T17:11:21.213" CommunityOwnedDate="2011-05-28T03:03:08.047" CommentCount="1" />
  <row Id="16070" PostTypeId="1" CreationDate="2010-11-01T17:11:41.617" Score="19" ViewCount="1289" Body="&lt;p&gt;Is there a generally agreed upon definition for what a &lt;strong&gt;programming abstraction&lt;/strong&gt; is, as used by programmers? [Note, programming abstraction is not to be confused with dictionary definitions for the word &quot;abstraction.&quot;] Is there an unambiguous, or even mathematical definition? What are some clear examples of abstractions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Many thanks to everyone who has taken part in the discussion, I will probably add my own answer at some point.&lt;/p&gt;&#xA;" OwnerUserId="5933" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-11-12T22:26:22.983" LastActivityDate="2010-12-18T03:21:34.073" Title="What is abstraction?" Tags="&lt;abstractions&gt;" AnswerCount="27" CommentCount="13" FavoriteCount="6" />
  <row Id="16071" PostTypeId="2" ParentId="16025" CreationDate="2010-11-01T17:11:42.427" Score="6" ViewCount="" Body="&lt;p&gt;I think you can summarize the basic difficulty this way:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// The way most people think.&#xA;Operation - object - parameters&#xA;// Example:&#xA;Turn the car left.&#xA;&#xA;// The way OOP works conceptually&#xA;Object - operation - parameters&#xA;// Example:&#xA;Car.Turn(270);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Sure, people can get used to the mapping of &quot;left&quot; as 270, and yeah, saying &quot;Car.Turn&quot; instead of &quot;turn the car&quot; isn't such a huge leap.  BUT, to deal well with these objects and to create them, you have to invert the way you normally think.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of manipulating an object, we're telling the object to actually do things on its own.  It may not feel difficult any more, but telling a window to open itself sounds odd.  People unused to this way of thinking have to struggle with that oddness over and over until finally it somehow becomes natural.&lt;/p&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-11-01T17:11:42.427" CommentCount="4" />
  <row Id="16072" PostTypeId="2" ParentId="16070" CreationDate="2010-11-01T17:24:48.703" Score="3" ViewCount="" Body="&lt;p&gt;Would Wikipedia's answer be good enough? &lt;a href=&quot;http://en.wikipedia.org/wiki/Abstraction_%28programming%29&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Abstraction_%28programming%29&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In computer science, the mechanism and practice of abstraction reduces and factors out details so that one can focus on a few concepts at a time.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-11-01T17:24:48.703" CommentCount="3" />
  <row Id="16073" PostTypeId="2" ParentId="16070" CreationDate="2010-11-01T17:25:50.577" Score="5" ViewCount="" Body="&lt;p&gt;A programming abstraction is a &lt;em&gt;simplified model&lt;/em&gt; of a problem.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, a TCP/IP connection is an abstraction over sending data.  You merely include an ip address and a port number and send it off to the API.  You aren't concerned with all the details of the wires, signals, message formats, and failures.&lt;/p&gt;&#xA;" OwnerUserId="4422" LastActivityDate="2010-11-01T17:25:50.577" CommentCount="1" />
  <row Id="16075" PostTypeId="2" ParentId="1890" CreationDate="2010-11-01T17:33:12.613" Score="0" ViewCount="" Body="&lt;p&gt;I don't get how to reply to someone yet, sorry!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use the same as azheglov (m_someVariable) with the exception of I only use _someVariable within local scope to a method.&lt;/p&gt;&#xA;" OwnerUserId="6479" LastActivityDate="2010-11-01T17:33:12.613" />
  <row Id="16076" PostTypeId="2" ParentId="16070" CreationDate="2010-11-01T17:44:28.297" Score="4" ViewCount="" Body="&lt;p&gt;Well, mathematically, &quot;integer&quot; is an abstraction. And when you do formal proofs like that x+y = y+x for all integers, you're working with the abstraction &quot;integer&quot; rather than specific numbers like 3 or 4. That same thing happens in software development when you interact with the machine at a level above registers and memory locations. You can think more powerful thoughts at a more abstract level, in most cases.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-01T17:44:28.297" CommentCount="4" />
  <row Id="16077" PostTypeId="2" ParentId="15887" CreationDate="2010-11-01T17:46:47.797" Score="2" ViewCount="" Body="&lt;p&gt;You're right on par with 95% of graduates - in fact you're probably ahead of 95%... at least you know enough to know that you don't know it all. From my experience, most jobs will throw you right into the fire - even if you don't fully understand what you're doing. Don't be afraid, however. Embrace the opportunity to learn something new (on someone else's dime) - and believe me, when you finish your 'impossible' tasks you will most certainly remember how to do it next time, and feel extremely proud of what you've accomplished.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My first programming assignment was for a company that hired me as a salesman. I had VERY little programming experience (perhaps some basic HTML) but I was to develop a quotation application (it asks you a bunch of questions and spits out a parts list). It took me forever, but I finally got it done and if it hadn't been for this job, I never would have learned to program.&lt;/p&gt;&#xA;" OwnerUserId="4597" LastActivityDate="2010-11-01T17:46:47.797" />
  <row Id="16078" PostTypeId="2" ParentId="16025" CreationDate="2010-11-01T17:54:51.397" Score="2" ViewCount="" Body="&lt;p&gt;Object Oriented Programming in itself is not hard.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The hard part comes in doing it well.  Where to put the cut between code so you can easily move things to the common base object, and extend them later?  How to make your code usable by others (extend classes, wrap in proxies, override method) without jumping through hoops to do so.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is the hard part, and if done right can be very elegant, and if done badly can be &lt;em&gt;very&lt;/em&gt; clumsy.  My personal experience is that it requires a lot of practice to have been in all the situations where you would WISH that you did it differently, in order to do it well enough &lt;em&gt;this&lt;/em&gt; time.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-01T17:54:51.397" CommentCount="2" />
  <row Id="16079" PostTypeId="2" ParentId="16025" CreationDate="2010-11-01T17:56:43.123" Score="3" ViewCount="" Body="&lt;p&gt;I was just watching a video by Richard Feynman discussing how people may actually have completely different methodologies going on in their head when thinking--I mean completely different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I do high-level design I happen to visualize objects, I can see them, see their interfaces and see what pathways information needs to traverse.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also have trouble remembering details and found OO to be a great organizational aid--much easier to find functionality than scanning through a loosely-organized list of subroutines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me OO was a great benefit, but if you don't visualize the same way or don't do high-level architecture, it's probably pointless and annoying.&lt;/p&gt;&#xA;" OwnerUserId="1788" LastActivityDate="2010-11-01T17:56:43.123" CommentCount="6" />
  <row Id="16080" PostTypeId="2" ParentId="16070" CreationDate="2010-11-01T17:57:44.853" Score="11" ViewCount="" Body="&lt;p&gt;Abstraction is more focus on &lt;code&gt;What&lt;/code&gt; and less on &lt;code&gt;How&lt;/code&gt;. Or you can say, know only the things you need to, and just trust the provider for all other services. Even sometimes it hides the identity of the service provider.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, this site provides a system for asking questions and answering them. Almost everyone here knows what are the procedures for asking, answering, voting and other things of this site. But very few knows what are the underlying technologies. Like whether the site was developed with ASP.net mvc or Python, whether this runs on a Windows or a Linux server etc. Because that is none of our business. So, this site is keeping an abstraction layer over it's underlying mechanism to us providing the service.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some other examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;A car is hiding it's all mechanisms but providing ways to drive, refuel and maintain it to it's owner.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Any API is hiding all it's implementation details providing the service to other programmers.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A class in OOP hides it's private members and implementation of public members providing the service to call the public members.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;While using an object of type of an &lt;code&gt;Interface&lt;/code&gt; or an &lt;code&gt;abstract class&lt;/code&gt; in Java or C++, the real implementation is hidden. And not just hidden, the implementations of the methods declared in the &lt;code&gt;Interface&lt;/code&gt; are also likely to be different in various implemented/inherited classes. But as you are getting the same service, just don't bother &lt;code&gt;How&lt;/code&gt; it is implemented and exactly &lt;code&gt;Who&lt;/code&gt;/&lt;code&gt;What&lt;/code&gt; is providing the service.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Identity Hiding&lt;/strong&gt;: For the sentence &quot;I know Sam can write computer programs.&quot; the abstraction can be- &quot;Sam is a programmer. Programmers know how to write computer programs.&quot; In the second statement, the person is not important. But his ability to do programming is important.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="963" LastEditorUserId="963" LastEditorDisplayName="" LastEditDate="2010-11-09T15:19:46.310" LastActivityDate="2010-11-09T15:19:46.310" CommentCount="3" />
  <row Id="16081" PostTypeId="2" ParentId="16010" CreationDate="2010-11-01T17:58:24.987" Score="0" ViewCount="" Body="&lt;p&gt;In this one case, a complex maths formula, I'd say go for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can say in 20 years I've never had to code something this complex and greek letters keeps it close to the original maths. If you can't understand it, you shouldn't be maintaining it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Saying that, if I ever have to maintain µ and σ in bog standard code that you bequeathed me, I &lt;em&gt;will&lt;/em&gt; find out where you live...&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-11-01T17:58:24.987" />
  <row Id="16082" PostTypeId="2" ParentId="16010" CreationDate="2010-11-01T18:05:15.317" Score="0" ViewCount="" Body="&lt;p&gt;Is this code just for your personal project?  If so, go nuts, use whatever you want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this code meant for others to use?  i.e., and open source app of some sort?  If so, you're likely just asking for trouble because different programmers use different editors, and you cant be certain all editors will support unicode correctly.  Plus not all command shells will show it correctly when the source code file is type'd/cat'd, and you may run into issues if you need to display it within html.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-01T18:05:15.317" />
  <row Id="16083" PostTypeId="2" ParentId="15856" CreationDate="2010-11-01T18:18:30.763" Score="0" ViewCount="" Body="&lt;p&gt;To take a note from a couple of old notables. Both Edison and Tessla used a nap to solve problems. I find that when I look at a problem in depth and then go on to another task, leaving that problem in the back of my mind, that the problem solves itself. For particularly thorny problems, I sleep on them.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-11-01T18:18:30.763" />
  <row Id="16084" PostTypeId="2" ParentId="7749" CreationDate="2010-11-01T18:24:56.633" Score="0" ViewCount="" Body="&lt;p&gt;Practice, think, &quot;What can I do better?&quot;, practice, and ask someone else, &quot;Is there a better way?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do some flute in my spare time, and the statement that is most often found to be true in the best musicians is, &quot;Perfect practice makes perfect.&quot; The question then becomes, what is perfect practice? I believe that the answer is whatever works to get you better the quickest. For example, I learn best by hacking together code first, &lt;em&gt;then&lt;/em&gt; going through a structured turtorial. If I've cut my teeth on the problem myself, I have found that it's much easier to learn it right. The key for me is to know when to stop trying to do it on my own and get help. I know other people who learn best from a structured class/tutorial, and wean themselves out into the technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Remember:&lt;/strong&gt; &quot;Whatever works for you&quot; can only be discovered by &lt;em&gt;doing&lt;/em&gt; it over and over again in different ways until you discover how you learn best.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-01T18:24:56.633" CommunityOwnedDate="2011-02-13T16:19:27.957" />
  <row Id="16085" PostTypeId="2" ParentId="16070" CreationDate="2010-11-01T18:28:58.167" Score="2" ViewCount="" Body="&lt;p&gt;Ok, I think I figured out what you're asking: &quot;What is a mathematically rigorous definition of 'An Abstraction.'&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that's the case, I think you're out of luck- 'abstraction' is a software architecture/design term, and has no mathematical backing to it as far as I'm aware (maybe someone better versed in theoretical CS will correct me here), any more than &quot;coupling&quot; or &quot;information hiding&quot; have mathematical definitions.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-11-01T18:28:58.167" CommentCount="2" />
  <row Id="16086" PostTypeId="2" ParentId="16070" CreationDate="2010-11-01T18:29:28.047" Score="6" ViewCount="" Body="&lt;p&gt;An abstraction is just the programming version of a theorem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have a formal system, you propose a thought about that system.  You do a proof of it, and if it works out, then you have a theorem.  Knowing that your theorem holds, you can then use it in further proofs about the system.  Primitives provided by the system (like if statements and int value types) would typically be seen as axioms, although that isn't strictly true since anything that isn't CPU instructions written in machine code is a kind of abstraction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In functional programming, the idea of a program as a mathematical statement is very strong, and often the type system (in a strong, statically typed language like Haskell, F#, or OCAML) can be used for testing theoremhood through proofs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example: let us say that we have addition and equality checking as primitive operations, and integers and booleans as primitive data types.  These are our axioms.  So we can say that &lt;code&gt;1 + 3 == 2 + 2&lt;/code&gt; is a theorem, then use the rules of addition and integers and equality to see if that's a true statement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now let us suppose we want multiplication, and our primitives (for brevity's sake) include a looping construct and a means to assign symbolic references.  We could suggest that &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;ref x (*) y := loop y times {x +}) 0&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I'm going to pretend I proved that, demonstrating that multiplication holds.  Now I can use multiplication to do more stuff with my system (the programming language).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can also check my type system.  (*) has a type of int -&gt; int -&gt; int. It takes 2 ints and outputs an int.  Addition has a type of int -&gt; int -&gt; int so the 0 + (rest) holds as long as (rest) results in an int.  My loop could be doing all kinds of things, but I'm saying it outputs a chain of curried functions such that (x + (x + (x... + 0))) is the result.  The form of that addition chain is just (int -&gt; (int -&gt; (int ... -&gt; int))) so I know my final output will be an int.  So my type system held up the results of my other proof!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compound this sort of idea over many years, many programmers, and many lines of code, and you have modern programming languages: a hearty set of primitives and huge libraries of &quot;proven&quot; code abstractions.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-01T18:29:28.047" />
  <row Id="16087" PostTypeId="2" ParentId="16070" CreationDate="2010-11-01T18:31:42.663" Score="2" ViewCount="" Body="&lt;p&gt;You may want to check out some of Bob Martin's metrics&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Software_package_metrics&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Software_package_metrics&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I don't think his &quot;Abstractness&quot; is the same as yours. His is more a measure of &quot;lack of implementation on a class&quot; meaning use of interfaces/abstract classes. Instability and Distance from Main Sequence probably play more into what you're looking for.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-11-01T18:31:42.663" CommentCount="2" />
  <row Id="16088" PostTypeId="2" ParentId="16070" CreationDate="2010-11-01T18:31:52.250" Score="0" ViewCount="" Body="&lt;p&gt;You'll be frustrated thinking of abstraction too mathematically.  Take this: &lt;a href=&quot;http://cafe.elharo.com/programming/a-square-is-not-a-rectangle/&quot; rel=&quot;nofollow&quot;&gt;A square is not a rectangle&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5493" LastEditorUserId="5493" LastEditorDisplayName="" LastEditDate="2010-11-02T17:15:56.890" LastActivityDate="2010-11-02T17:15:56.890" CommentCount="5" />
  <row Id="16089" PostTypeId="1" CreationDate="2010-11-01T18:35:41.050" Score="5" ViewCount="344" Body="&lt;p&gt;I have coded like this many times, and I've never encountered an issue, but the compiler always warns when it expects a return and there is none.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, look at this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;-(NSString *)outputStringForInteger:(NSInteger)int&#xA;{&#xA;    if (int == 0)&#xA;    {&#xA;        return @&quot;Number is Zero&quot;;&#xA;    }&#xA;    else&#xA;    {&#xA;        return @&quot;Number is not Zero&quot;;&#xA;    }&#xA;    //no &quot;failsafe&quot; or other explicit return&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If the function will never get to the last line, ever, is it important to still have a failsafe option, or do you guys just deal with compiler warnings?&lt;/p&gt;&#xA;" OwnerUserId="6840" LastEditorUserId="2276" LastEditorDisplayName="" LastEditDate="2010-11-01T22:44:15.510" LastActivityDate="2010-11-02T15:52:40.533" Title="Not specifying a return in a function, good or bad?" Tags="&lt;best-practices&gt;&lt;programming-practices&gt;&lt;compilers&gt;" AnswerCount="7" CommentCount="7" FavoriteCount="1" />
  <row Id="16090" PostTypeId="2" ParentId="7749" CreationDate="2010-11-01T18:39:21.667" Score="1" ViewCount="" Body="&lt;p&gt;These points seemed to have been missed or hidden within other points:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Read other programmers' discussions on HOW TO program better.  Don't just look at the code.  (The most common source of this is blogs.)&lt;/li&gt;&#xA;&lt;li&gt;Think about the code you're going to write.  Make it the best that you can at that time, organizing it with the principles you've learned from the blogs and books about programming well.  Again, simply examining existing code won't help.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-11-01T18:39:21.667" CommunityOwnedDate="2011-02-13T16:19:27.957" />
  <row Id="16091" PostTypeId="2" ParentId="16089" CreationDate="2010-11-01T18:41:07.327" Score="20" ViewCount="" Body="&lt;p&gt;Get a better compiler.  The ones I use complain that you have code which will never execute if you put the &quot;failsafe&quot; return in there.  That's a much better warning that the false one you're apparently seeing.&lt;/p&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-11-01T18:41:07.327" CommentCount="3" />
  <row Id="16092" PostTypeId="2" ParentId="16070" CreationDate="2010-11-01T18:41:08.933" Score="17" ViewCount="" Body="&lt;p&gt;The answer to &quot;Can you define what a programming abstraction is more or less mathematically?&quot; is &quot;no.&quot; Abstraction is not a mathematical concept. It would be like asking someone to explain the color of a lemon mathematically.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want a good definition though: abstraction is the process of moving from a specific idea to a more general one. For example, take a look at your mouse. Is it wireless? What kind of sensor does it have? How many buttons? Is it ergonomic? How big is it? The answers to all of these questions can precisely describe your mouse, but regardless of what the answers are, it's still a mouse, because it's a pointing device with buttons. That's all it takes to be a mouse. &quot;Silver Logitech MX518&quot; is a concrete, specific item, and &quot;mouse&quot; is an abstraction of that. An important thing to think about is that there's no such concrete object as a &quot;mouse&quot;, it's just an idea. The mouse on your desk is always something more specific - it's an Apple Magic Mouse or a Dell Optical Mouse or a Microsoft IntelliMouse - &quot;mouse&quot; is just an abstract concept.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Abstraction can be layered and as fine- or coarse-grained as you like (an MX518 is a mouse, which is a pointing object, which is a computer peripheral, which is an object powered by electricity), can go as far as you want, and in virtually any direction you want (my mouse has a wire, meaning I could categorize it as an objects with a wire. It's also flat on the bottom, so I could categorize it as a kind of objects that won't roll when placed upright on an inclined plane).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Object oriented programming is built on the concept of abstractions and families or groups of them. Good OOP means choosing good abstractions at the appropriate level of detail that make sense in the domain of your program and don't &quot;leak&quot;. The former means that classifying a mouse as an object that won't roll on an inclined plane doesn't make sense for an application that inventories computer equipment, but it might make sense for a physics simulator. The latter means that you should try to avoid &quot;boxing yourself in&quot; to a hierarchy that doesn't make sense for some kind of objects. For example, in my hierarchy above, are we sure that &lt;em&gt;all&lt;/em&gt; computer peripherals are powered by electricity? What about a stylus? If we want to group a stylus into the &quot;peripheral&quot; category, we'd have a problem, because it doesn't use electricity, and we defined computer peripherals as objects that use electricity. The &lt;a href=&quot;http://en.wikipedia.org/wiki/Circle-ellipse_problem&quot; rel=&quot;nofollow&quot;&gt;circle-ellipse problem&lt;/a&gt; is the best known example of this conundrum.&lt;/p&gt;&#xA;" OwnerUserId="3044" LastActivityDate="2010-11-01T18:41:08.933" CommentCount="8" />
  <row Id="16093" PostTypeId="2" ParentId="7749" CreationDate="2010-11-01T18:43:07.360" Score="-1" ViewCount="" Body="&lt;p&gt;You need to practice.  This means &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Write a lot of code&lt;/li&gt;&#xA;&lt;li&gt;Have someone experienced critize it (peer review)&lt;/li&gt;&#xA;&lt;li&gt;Learn from critique.&lt;/li&gt;&#xA;&lt;li&gt;Maintain said code, making it do new stuff and curse while doing so.&lt;/li&gt;&#xA;&lt;li&gt;Learn from cursing.&lt;/li&gt;&#xA;&lt;li&gt;Have someone experienced critize it &lt;/li&gt;&#xA;&lt;li&gt;Learn....&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You will also need to learn stuff that neither you or your peers know.  The easiest way to get access to that knowledge is through books, but video presentations on the web is catching up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which books to read, depend strongly on what languages you use.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A starting place could be Eric Raymonds essay on How to become a Hacker - &lt;a href=&quot;http://www.catb.org/esr/faqs/hacker-howto.html&quot; rel=&quot;nofollow&quot;&gt;http://www.catb.org/esr/faqs/hacker-howto.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-01T18:43:07.360" CommunityOwnedDate="2011-02-13T16:19:27.957" />
  <row Id="16094" PostTypeId="2" ParentId="16089" CreationDate="2010-11-01T18:52:51.570" Score="7" ViewCount="" Body="&lt;p&gt;Not sure what language you're in so I'll use Java for my example. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;String outputStringForInteger(int i) {&#xA;   String returnString = &quot;Number is not Zero&quot;;&#xA;&#xA;   if (i == 0)&#xA;      returnString = &quot;Number is Zero&quot;;&#xA;&#xA;   return returnString;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This will provide a &quot;default&quot; return value, as well as being more readable(IMO).&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-01T18:52:51.570" CommentCount="4" />
  <row Id="16095" PostTypeId="2" ParentId="16070" CreationDate="2010-11-01T18:54:47.923" Score="1" ViewCount="" Body="&lt;p&gt;An abstraction is representing something (e.g. a concept, a data structure, a function) in terms of something else.  For example we use words to communicate.  A word is an abstract entity that can be represented in terms of sounds (speech) or in terms of graphical symbols (writing).  The key idea of an abstraction is that the entity in question is distinct from the underlying representation, just as a word is not the sounds that are used to utter it or the letters that are used to write it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thus, at least in theory, the underlying representation of an abstraction can be replaced by a different representation.  In practice, however, the abstraction is rarely entirely distinct from the underlying representation, and sometimes the representation &quot;&lt;a href=&quot;http://www.joelonsoftware.com/articles/LeakyAbstractions.html&quot; rel=&quot;nofollow&quot;&gt;leaks&lt;/a&gt;&quot; through.  For example, speech carries emotional undertones which are very difficult to convey in writing.  Because of this an audio recording and a transcript of the same words may have very different effect on the audience.  In other words the abstraction of words often leaks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Abstractions typically come in layers.  Words are abstractions that can be represented by letters, which in turn are themselves abstractions of sounds, which are in their turn abstractions of the pattern of motion of the particles of air that are created by one's vocal chords and that are detected by one's ear drums.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In computer science bits are typically the lowest level of representation.  Bytes, memory locations, assembly instructions, and CPU registers are the next level of abstraction.  Then we have primitive data types and instructions of a higher level language, that are implemented in terms of bytes, memory locations, and assembly instructions.  Then functions and classes (assuming an OO language) that are implemented in terms of primitive data types and built in language instructions.  Then more complex functions and classes are implemented in terms of the simpler ones.  Some of these functions and classes implement data structures, such as lists, stacks, queues, etc.  Those in turn are used to represent more specific entities such as a queue of processes, or a list of employees, or a hash table of book titles. In this scheme of things each level is an abstraction with respect to its predecessor.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastEditorUserId="4365" LastEditorDisplayName="" LastEditDate="2010-11-01T20:07:03.787" LastActivityDate="2010-11-01T20:07:03.787" CommentCount="11" />
  <row Id="16096" PostTypeId="2" ParentId="15887" CreationDate="2010-11-01T19:04:35.007" Score="1" ViewCount="" Body="&lt;p&gt;If your anxiety is getting the better of you, in other words you worry so much that it is causing sleep issues and other problems, then I'd suggest the possibility of seeing a counselor or therapist that may help with the problem.  While some anxiety is normal, for some people this can be an important issue to resolve.  A similar thing can be true of depression, for what it is worth.  I do have both conditions which can be a bit of a challenge though this is why I have support groups, therapists, and doctors to help me in various ways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My first job out of university involved using Visual Studio, which I had never used before, and more than a couple of other things I hadn't really used before like IIS and MS-SQL Server but I did get through it.  Thus, I have been where you are in a sense that hopefully helps you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for GPA, I'm pretty sure that doesn't matter much though if you have a good one, it may be worth putting on a resume.  Just don't expect that alone to get you a job.  If you got paid to write some code, it counts of programming experience to my mind.  It may not be the best experience in the world, but it is something.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-01T19:04:35.007" />
  <row Id="16097" PostTypeId="2" ParentId="16089" CreationDate="2010-11-01T19:09:31.670" Score="2" ViewCount="" Body="&lt;p&gt;I prefer not to have multiple returns in a function.&lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-11-01T19:09:31.670" CommentCount="7" />
  <row Id="16098" PostTypeId="2" ParentId="4404" CreationDate="2010-11-01T19:09:45.103" Score="0" ViewCount="" Body="&lt;p&gt;I remember doing arithmetic in other bases being a Computer Science topic taught in High School but not elementary school back in Ontario, Canada where I went to school.  While I do remember place values being a grade 3 Math topic, using other bases wasn't taught at that level at all.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-01T19:09:45.103" />
  <row Id="16099" PostTypeId="2" ParentId="16070" CreationDate="2010-11-01T19:26:46.493" Score="1" ViewCount="" Body="&lt;p&gt;Merriam-webster defines abstract as an adjective being: disassociated from any specific instance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An abstraction is a model of some system. They often list a group of assumptions that have to be met for a real system to be able to be modeled by the abstraction, and they are often used to allow us to conceptualize increasingly complicated systems. Going from a real system to an abstraction does not have any formal mathematical method for doing so. That's up to the judgment of whoever is defining the abstraction, and what the purpose of the abstraction is. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often times though, abstractions are defined in terms of mathematical constructs. That's probably because they are so often used in science and engineering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example is Newtonian mechanics. It assumes everything is infinitesimally small, and all energy is conserved. The interactions between objects are clearly defined by mathematical formulas. Now, as we know, the universe doesn't quite work that way, and in many situations the abstraction leaks through. But in a lot of situations, it works very well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another abstract model is typical linear circuit elements, resistors, capacitors, and inductors. Again the interactions are clearly defined by mathematical formulas. For low frequency circuits, or simple relay drivers, and other things, RLC analysis works well and provides very good results.  But other situations, like microwave radio circuits, the elements are too big, and the interactions are finer, and the simple RLC abstractions don't hold up. What to do at that point is up to the judgment of the engineer. Some engineers have created another abstraction on top of the others, some replacing ideal op-amps with new mathematical formulas for how they work, others replace ideal op amps with simulated real op-amps, which in turn are simulated with a complex network of smaller ideal elements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As others have said, it is a simplified model. It is a tool used to better understand complex systems.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-11-01T19:26:46.493" CommentCount="3" />
  <row Id="16100" PostTypeId="2" ParentId="15887" CreationDate="2010-11-01T19:30:53.757" Score="1" ViewCount="" Body="&lt;p&gt;Think of it like this:  The professional value of you degree is not the immediately-applicable knowledge it gave you.  The actual value of your education is that it will help you learn the stuff you &lt;b&gt;are&lt;/b&gt; getting paid to do and put it in context.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You've been taught what the forest looks like.  There's no shame in not being acquainted with all the trees; there are a hell of a lot of them, and you don't know which ones are important to you yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get a job that sounds fun.  Do.  Learn.  You might not yet know all the nuances of FooScript's syntax, but you know how to design modular code and spot what variables ought to be constants and validate your input params and build algorithms that aren't hopelessly insane clusterfscks and all that good stuff.  The other details will come.  Especially if you can put your ego aside and admit you have more to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your employer has any sense, they'll cut you some slack and give you time to learn from the people who've had more experience.  If your CS degree is worth the paper it's printed on, you'll pick it up faster than you think.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if the job turns out to be a rotten match for your interests and aptitudes, quit.  Move on.  IT is awesome in that you can take the same fundamental skillset to a delightfully wide variety of potential careers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for your GPA and in-school work experience:  If your GPA is good, mention it.  If it's mediocre, don't.  Somewhere in the middle, judgment call.  And if you've already been paid to wrangle code even part-time as a student, absolutely mention that.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-11-01T19:30:53.757" />
  <row Id="16101" PostTypeId="2" ParentId="16089" CreationDate="2010-11-01T19:38:48.677" Score="4" ViewCount="" Body="&lt;p&gt;In C:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;String outputStringForInteger(int i) {&#xA;   return (i == 0) ? &quot;Number is Zero&quot; : &quot;Number is not Zero&quot;;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If you insist that the ternary operator is an invention of the Devil, as some do:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;String outputStringForInteger(int i) {&#xA;   String returnString;&#xA;&#xA;   if (i == 0) {&#xA;      returnString = &quot;Number is Zero&quot;;&#xA;   } else {&#xA;      returnString = &quot;Number is not Zero&quot;;&#xA;   }&#xA;   return returnString;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-11-01T19:38:48.677" CommentCount="4" />
  <row Id="16102" PostTypeId="2" ParentId="15887" CreationDate="2010-11-01T19:43:03.640" Score="1" ViewCount="" Body="&lt;p&gt;I will suggest a great reading and share with you a big secret.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://jangosteve.com/post/380926251/no-one-knows-what-theyre-doing&quot; rel=&quot;nofollow&quot;&gt;No one knows what the frack they're doing. &lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The more you learn the more you realise that you don't know that much. The degree you got is a starting point, by absolutely no mean an end. Just go on and start with what you have.&lt;/p&gt;&#xA;" OwnerUserId="3250" LastActivityDate="2010-11-01T19:43:03.640" />
  <row Id="16103" PostTypeId="2" ParentId="14124" CreationDate="2010-11-01T19:50:56.177" Score="0" ViewCount="" Body="&lt;p&gt;Tell him you're working on it, &lt;strong&gt;with a smile and a chuckle&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-11-01T19:50:56.177" CommentCount="2" />
  <row Id="16104" PostTypeId="2" ParentId="2715" CreationDate="2010-11-01T19:57:21.483" Score="0" ViewCount="" Body="&lt;p&gt;The main reason to use the 2nd method is that it keeps the &lt;code&gt;if&lt;/code&gt; and the &lt;code&gt;else&lt;/code&gt; on the same tab, which greatly improves readability.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-11-01T19:57:21.483" CommunityOwnedDate="2010-11-02T20:52:36.780" />
  <row Id="16105" PostTypeId="1" AcceptedAnswerId="16106" CreationDate="2010-11-01T20:00:01.810" Score="3" ViewCount="281" Body="&lt;p&gt;Hello , I am myself a CS undergrad but I landed a programing job last year and I like it a lot. We are currently 3 programmer in the development section of the company and we have to work with pretty much anything were asked to do. We deal with many different languages and learn them as needed for some quick jobs etc etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We want to hire a 4th programmer and I'm asked suggest some students in my class, a year younger, since I failed a class. I don't really know any of these guys except my teammates which I wouldn't suggest. We don't really want to interview them all so I thought we could make a little challenge to help us choose who to interview. We're in need of someone who understand the business even though they're new to it, and likes to learn new stuff and code. Any idea on a programming challenge or a kind of letter saying why we should take them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TL;DR: We need a new undergrad programmer, we want the best to come to us without interviewing them all. Any challenge or test you could suggest?&lt;/p&gt;&#xA;" OwnerUserId="6850" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-11-02T03:09:39.550" LastActivityDate="2010-11-02T03:10:58.987" Title="Choosing the right programmer among a class of undergrads." Tags="&lt;interview&gt;&lt;great-programmer&gt;&lt;hiring&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="2" />
  <row Id="16106" PostTypeId="2" ParentId="16105" CreationDate="2010-11-01T20:05:11.950" Score="9" ViewCount="" Body="&lt;p&gt;Run them through the &lt;a href=&quot;http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm&quot; rel=&quot;nofollow&quot;&gt;Programmer Competency Matrix&lt;/a&gt; and see where they fall.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Identify problem solvers. People who get 100% on assignments are great, but might not be the most out of the box thinkers. Look for people who ask questions and work around problems without following traditional routes.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;We don't really want to interview them all so I thought we could make a little challenge to help us choose who to interview.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This line in particular worries me. You should sit down with every applicant for at least five minutes unless the interaction you have shows such a gross lack of knowledge it would be worthless. You might end up (as mentioned above) with people who are great at finishing specific tasks but lack an overall &quot;big picture&quot; view.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-11-02T03:10:58.987" LastActivityDate="2010-11-02T03:10:58.987" CommentCount="5" />
  <row Id="16107" PostTypeId="2" ParentId="16089" CreationDate="2010-11-01T20:08:35.370" Score="1" ViewCount="" Body="&lt;p&gt;In D, except in a few trivial cases where the compiler can statically prove that the end of the function is unreachable without a return statement being executed or an exception being thrown, you &lt;em&gt;must&lt;/em&gt; put either a return statement, a &lt;code&gt;throw&lt;/code&gt; statement or an &lt;code&gt;assert(0)&lt;/code&gt; at the end of the function.  In other languages I think this is usually good practice, though not necessarily in cases like your example, where a reader could trivially and statically tell that the end of the function is unreachable and a decent compiler should be able to prove this.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You shouldn't have a default return value that you believe is unreachable.  If it ever gets used your code is by definition in a state that you never intended for it to be in.  An &lt;code&gt;assert(0)&lt;/code&gt; conveys your intentions both to the reader and the compiler much better.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-01T20:08:35.370" />
  <row Id="16108" PostTypeId="2" ParentId="15887" CreationDate="2010-11-01T20:09:07.250" Score="1" ViewCount="" Body="&lt;p&gt;It's actually healthy to feel like you don't know as much as you should. There is so much knowledge out there that none of us will ever grasp more than a small part of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're prepared to continue to learn and grow in your career, you'll probably do very well. You'll learn far more -- and far faster -- on the job than you ever could in the classroom. You'll make some mistakes along the way, some of which have serious consequences, but you'll learn from them and do better the next time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then someday, several years down the road, you'll have the opportunity to give advice to a college senior who is a bit scared about the future.&lt;/p&gt;&#xA;" OwnerUserId="3869" LastActivityDate="2010-11-01T20:09:07.250" />
  <row Id="16109" PostTypeId="1" AcceptedAnswerId="16278" CreationDate="2010-11-01T20:16:22.730" Score="1" ViewCount="477" Body="&lt;p&gt;Would a recruiter prefer a B.A in Comp Science from a more prestigious university or a B.S in Inf Tech from just an average university? Would it matter for someone already established in the field with plenty of experience?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only difference in the B.A and B.S is essentially the mathematics.  The B.S is geared for those going on to master's programs, although one isn't excluded from going on to a masters program with a BA, many do require more mathematics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just for those curious, the information tech degree is typically geared more to real-world problems then the computer science and the quality of it will vary widely. Some inf tech programs are as in-depth as an ABET C.S degree, the information tech from Drexel looks extremely strong. The Management Information Systems is generally provided via the business school and is more of a traditional business degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure really how well versed the recruiters/g.p are in the actual differences in all of these programs. Some non ABET BS Comp Science may only require 1 or 2 Calculus versus the ABET certified programs.&lt;/p&gt;&#xA;" OwnerUserId="5882" LastActivityDate="2010-11-02T15:27:21.953" Title="B.A Computer Science Vs B.S Inf Tech?" Tags="&lt;education&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="1" />
  <row Id="16110" PostTypeId="2" ParentId="16105" CreationDate="2010-11-01T20:17:57.383" Score="0" ViewCount="" Body="&lt;p&gt;I'm not sure if you have a large enough candidate base for this, but you could try coming up with a set of problems similar to the puzzles from &lt;a href=&quot;http://www.facebook.com/careers/puzzles.php&quot; rel=&quot;nofollow&quot;&gt;Facebook&lt;/a&gt;, &lt;a href=&quot;http://www.itasoftware.com/careers/puzzle_archive.html&quot; rel=&quot;nofollow&quot;&gt;ITA&lt;/a&gt; and &lt;a href=&quot;http://www.google.com/puzzles/&quot; rel=&quot;nofollow&quot;&gt;Google&lt;/a&gt;. Each problem should have many different possible solutions. The idea is to look at the submissions and evaluate them based on:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fulfilling requirements&lt;/li&gt;&#xA;&lt;li&gt;Coding standards&lt;/li&gt;&#xA;&lt;li&gt;Design&lt;/li&gt;&#xA;&lt;li&gt;Performance&lt;/li&gt;&#xA;&lt;li&gt;Testing&lt;/li&gt;&#xA;&lt;li&gt;Documentation&lt;/li&gt;&#xA;&lt;li&gt;etc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Invite the best candidates in for interviews, discuss their solutions with them (to validate they actually wrote the code and to further see how they think/work) and then make your pick.&lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-11-01T20:17:57.383" CommentCount="5" />
  <row Id="16111" PostTypeId="2" ParentId="13396" CreationDate="2010-11-01T20:18:00.083" Score="0" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.microsoft.com/project/en/us/project-server-2010.aspx&quot; rel=&quot;nofollow&quot;&gt;Microsoft Project Server&lt;/a&gt; and &lt;a href=&quot;http://msdn.microsoft.com/en-us/vstudio/ff637362.aspx&quot; rel=&quot;nofollow&quot;&gt;Team Foundation Server&lt;/a&gt; 2010&lt;/h2&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-11-01T20:18:00.083" CommentCount="1" />
  <row Id="16112" PostTypeId="2" ParentId="16109" CreationDate="2010-11-01T20:27:39.877" Score="7" ViewCount="" Body="&lt;p&gt;Personally, I expect candidates to know C.S. fundamentals, but I don't pay much attention to their degree. I've hired lots of people with degrees in E.E. and other fields; I assess these skills myself.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-01T20:27:39.877" CommentCount="1" />
  <row Id="16113" PostTypeId="2" ParentId="7347" CreationDate="2010-11-01T20:33:54.720" Score="0" ViewCount="" Body="&lt;p&gt;If this is C++, you should get in the habit of &lt;code&gt;++i&lt;/code&gt; rather than &lt;code&gt;i++&lt;/code&gt;.  &lt;code&gt;++i&lt;/code&gt; will never be worse, it means exactly the same as a stand-alone statement, and in some cases it could be a performance improvement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not worth changing existing code on the off-chance that it will help, but it's a good habit to get into.  &lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-01T20:33:54.720" />
  <row Id="16114" PostTypeId="2" ParentId="16016" CreationDate="2010-11-01T20:40:32.153" Score="2" ViewCount="" Body="&lt;p&gt;When I think of &lt;em&gt;update&lt;/em&gt;, I think of something &lt;em&gt;free&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I think of &lt;em&gt;upgrade&lt;/em&gt;, I think of something that &lt;em&gt;costs&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But of course, it just really depends on the software. I've seen the terminology used interchangeably before.&lt;/p&gt;&#xA;" OwnerUserId="5042" LastActivityDate="2010-11-01T20:40:32.153" CommentCount="1" />
  <row Id="16115" PostTypeId="2" ParentId="16109" CreationDate="2010-11-01T20:49:15.770" Score="2" ViewCount="" Body="&lt;p&gt;The best programmer I hired does not have a degree.  I have seen degree qualified candidates, supposedly experienced in embedded programming, that could not test a bit in a register or understand an interrupt function.&lt;/p&gt;&#xA;" OwnerUserId="5877" LastActivityDate="2010-11-01T20:49:15.770" />
  <row Id="16116" PostTypeId="2" ParentId="2715" CreationDate="2010-11-01T20:50:00.753" Score="1" ViewCount="" Body="&lt;p&gt;I prefer &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (you.hasAnswer())&#xA;{&#xA;    you.postAnswer();&#xA;}&#xA;else&#xA;{&#xA;    you.doSomething();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;over&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (you.hasAnswer()) {&#xA;    you.postAnswer();&#xA;} else {&#xA;    you.doSomething();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;because the line &lt;code&gt;you.postAnswer();&lt;/code&gt; is much easier to read and find at first glance. In the second way, it gets blended in with the line above it (&lt;code&gt;you.hasAnswer()&lt;/code&gt;) making my eyes have to focus more to read it. &lt;/p&gt;&#xA;" OwnerUserId="1785" LastActivityDate="2010-11-01T20:50:00.753" CommunityOwnedDate="2010-11-02T20:52:36.780" />
  <row Id="16117" PostTypeId="1" CreationDate="2010-11-01T20:56:04.117" Score="13" ViewCount="230" Body="&lt;p&gt;One thing working in Haskell and F# has taught me is that someone in a university smarter than me has probably already found an abstraction for what I'm doing.  Likewise in C# and object-oriented programming, there's probably a library for &quot;it&quot;, whatever it is that I'm doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's such an emphasis on reusing abstractions in programming that I often feel a dilemma between: 1) just coding something short and dirty myself or 2) spending the same time to find someone else's more robust library/solution and just using that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like recently one of the coders here wrote up a (de)serializer for CSV files, and I couldn't help but think that something like that is probably very easy to find online, if it doesn't already come with the .NET standard APIs.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't blame him though, several times working in .NET I've patched together a solution based on what I know, only to realize that there was some method call or object or something  &lt;em&gt;,often in the same library,&lt;/em&gt; that did what I wanted and I just didn't know about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this just a sign of inexperience, or is there always an element of trade-off between writing new and reusing old?  What I hate the most is when I run across a solution that I already knew about and forgot.  I feel like one person just isn't capable of digesting the sheer quantities of code that comes prepackaged with most languages these days.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-01T21:46:03.103" Title="Does &quot;don't reinvent the wheel&quot; ignore the limits of human memory?" Tags="&lt;libraries&gt;&lt;code-reuse&gt;" AnswerCount="4" FavoriteCount="2" />
  <row Id="16118" PostTypeId="2" ParentId="8241" CreationDate="2010-11-01T21:01:59.383" Score="0" ViewCount="" Body="&lt;p&gt;I remember that Philippe Kahn used to pronounce Delphi as del-feye. Anders Hejlsberg like del-feye too &lt;a href=&quot;http://channel9.msdn.com/shows/Behind+The+Code/Life-and-Times-of-Anders-Hejlsberg/&quot; rel=&quot;nofollow&quot;&gt;http://channel9.msdn.com/shows/Behind+The+Code/Life-and-Times-of-Anders-Hejlsberg/&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-11-01T21:48:45.330" />
  <row Id="16119" PostTypeId="2" ParentId="16117" CreationDate="2010-11-01T21:08:42.723" Score="8" ViewCount="" Body="&lt;p&gt;First, you need to learn to identify &quot;components&quot; that are generic/reusable enough that a library or 3rd party solution is likely to already exist. Once you do that, realize that, even if you are a good developer, the collective experience of countless developers spending countless hours on the same problem is likely to have produced a solution better than you'll ever be able to do. That doesn't mean you should &lt;em&gt;never&lt;/em&gt; &quot;reinvent the wheel&quot;, but if you choose to do so, you better have a DAMN good justification for doing so.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;There's such an emphasis on reusing abstractions in programming that I often feel a dilemma between: 1) just coding something short and dirty myself or 2) spending the same time to find someone else's more robust library/solution and just using that.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's worth mentioning that even &lt;em&gt;if&lt;/em&gt; it takes you the same amount of time to find an existing library/solution as it does to write it yourself, remember that doing it yourself also means you'll have to maintain it &lt;em&gt;forever&lt;/em&gt;. You're not just re-inventing the wheel, but also the entire pit crew to keep it running. Of course, some libraries are buggy or poorly maintained, but these are things you should keep in mind when picking a 3rd party solution.&lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-11-01T21:08:42.723" CommentCount="3" />
  <row Id="16120" PostTypeId="2" ParentId="1060" CreationDate="2010-11-01T21:13:23.707" Score="3" ViewCount="" Body="&lt;p&gt;Two other options that I haven't seen explored yet:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Functional Programming with Monads and Arrows&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In FP you represent a cross-cutting concern like anything else: as something you pass in on a function call.  Since doing that explicitly gets tedious, you can use Monads (or maybe Arrows) to hide away the extra information being passed along.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most common AOP example is logging.  With Monads, you would create a &quot;Logger&quot; monad that keeps a list of messages.  Any functions you perform through the LoggerMonad have the ability to post a log message.  With Arrows, you would model the entire data flow of the application, and would work a logging routine into the model where appropriate.  I think.  Arrows are pretty complex.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Entity/Component-Based Programming&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something I've been researching and experimenting with for a game engine.  Instead of &quot;objects&quot; like in OOP, you decompose everything into packets of data (components) and services that operate over a type of component.  Components are grouped together by common IDs, like in a relational database, and groups of linked components are the Entities.  To add logging in such a system, you would add a new logging service the triggers based on which components are passed through it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both methods allows for one to easily work a cross-cutting change in very easily, but both are high-level architectural models.  So you would probably need to be using them from the beginning.  The Component model can, theoretically, be worked into an existing OOP system.  I guess monads could be too if your language is powerful enough.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-01T21:13:23.707" CommentCount="1" />
  <row Id="16121" PostTypeId="2" ParentId="16105" CreationDate="2010-11-01T21:13:48.243" Score="1" ViewCount="" Body="&lt;p&gt;Say that the barrier to interviewing is to solve X problems from Project Euler (http://projecteuler.net/) and at the interview ask to see their answers, and perhaps let them do the FizzBuzz program while you watch.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-01T21:13:48.243" />
  <row Id="16122" PostTypeId="2" ParentId="16117" CreationDate="2010-11-01T21:32:39.637" Score="4" ViewCount="" Body="&lt;p&gt;Welcome to the world of programming.  This issue will be the subject of many disagreements between you and your future colleagues.  You have two options:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Roll your own.&lt;/li&gt;&#xA;&lt;li&gt;Build something on top of someone else's solution.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I think there are times where both solutions are appropriate.  For instance, I would prefer to avoid rolling my own CSV parser of ORM if I can avoid it mostly because it's pretty tedious work.  On the other hand, libraries are often restricted.  I would say that for every project I've worked on, I've encountered libraries that would solve my problem perfectly &lt;em&gt;if not&lt;/em&gt; for this one shortcoming.  Or sometimes a library is exactly what you need when you first start out doing something, but is more harm than help once you need to make changes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general though, I'd advise against trying to find &quot;correct&quot; answers because they don't exist.  When in doubt, just go with your gut.  I once heard someone say that experience is defined by how many stupid mistakes you make.  So usually, you'll either learn something or make something that works.  Either way, it isn't all bad.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-01T21:32:39.637" />
  <row Id="16123" PostTypeId="2" ParentId="6442" CreationDate="2010-11-01T21:38:06.580" Score="2" ViewCount="" Body="&lt;p&gt;Data structures and algorithms.  No matter what language you're using, chances are good you will have a hash table, vector, etc.  And algorithms can be translated from language to language.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-01T21:38:06.580" />
  <row Id="16124" PostTypeId="2" ParentId="16117" CreationDate="2010-11-01T21:40:26.473" Score="4" ViewCount="" Body="&lt;p&gt;Sometimes this is a sign of inexperience, whether with the particular language or with programming in general.  Sometimes, though, if the fit isn't obvious it's just better to roll your own code that does &lt;em&gt;exactly&lt;/em&gt; what you want &lt;em&gt;and nothing more&lt;/em&gt;.  Generic libraries, while often useful, can be built for requirements that you simply don't have, and in some cases this level of genericity can make them more trouble than they're worth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example:&#xA;For my small one-man projects, I never use a &quot;real&quot; logging library.  I use &lt;code&gt;print&lt;/code&gt; statements plus a little ad-hoc configuration.  I don't want to be bothered with setting up and configuring a logging library that has way more features than I'll ever use, when &lt;code&gt;print&lt;/code&gt; statements works fine for my purposes.  I also don't want yet another dependency that might not be compatible with the version of the compiler/interpreter I want to use, would have to be distributed, etc.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastEditorUserId="1468" LastEditorDisplayName="" LastEditDate="2010-11-01T21:46:03.103" LastActivityDate="2010-11-01T21:46:03.103" CommentCount="2" />
  <row Id="16125" PostTypeId="2" ParentId="6157" CreationDate="2010-11-01T21:41:41.917" Score="1" ViewCount="" Body="&lt;p&gt;Makefiles.  Even if you have a fancy build system, every once in a while you'll come across a task that a simple makefile is the perfect solution to.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-01T21:41:41.917" CommunityOwnedDate="2010-11-01T21:41:41.917" CommentCount="1" />
  <row Id="16126" PostTypeId="2" ParentId="16117" CreationDate="2010-11-01T21:43:54.977" Score="2" ViewCount="" Body="&lt;p&gt;This (or a similar thing) has often happened to me in a previous job where the framework was suffering from severe Inner Platform Effect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, their code base evolved from early days Windows C/C++, then started to be compiled under MFC - and so the maintainers started mixing MFC and their old in-house data structures and windowing components. The inner platform wasn't very well documented, but it was supposedly &quot;The Way&quot; to do things on that product, due to some internal facilities that it provided. I often found it easier and quicker to write my own stuff from scratch (from MFC fundamentals), rather than work out how to do it with the company's internal framework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Okay, so this seems to be almost the opposite of your initial point - but the principle is the same, hehe! Yeah, sometimes it really is quicker to do your own thing than to spend time and effort to find an existing re-usable solution.)&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-01T21:43:54.977" />
  <row Id="16127" PostTypeId="2" ParentId="6157" CreationDate="2010-11-01T21:55:24.870" Score="3" ViewCount="" Body="&lt;p&gt;System performance monitoring tools.  Here are a couple of examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Top_%28software%29&quot; rel=&quot;nofollow&quot;&gt;Top&lt;/a&gt; - Unix environments&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Process_Explorer&quot; rel=&quot;nofollow&quot;&gt;Process Explorer&lt;/a&gt; - Windows environments&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Just in case someone has to kill a rogue process or wants to see how hammered is the system in a way.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-01T21:55:24.870" CommunityOwnedDate="2010-11-01T21:55:24.870" CommentCount="1" />
  <row Id="16128" PostTypeId="2" ParentId="2331" CreationDate="2010-11-01T21:56:34.930" Score="4" ViewCount="" Body="&lt;p&gt;Although some folks disagree with the man or various things he says, a lot of Douglas Crockford's &lt;em&gt;JavaScript: The Good Parts&lt;/em&gt; is basically this question applied to JS.  Amongst Crockford's complaints:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Global scope by default for everything (DC shows how to use function/objects as namespaces and scope delimiters to wrangle this in.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Statements like &lt;code&gt;with&lt;/code&gt;, whose failure behavior is to define things at the global namespace. (Gah! Its like the JS motto is if you fail, then &lt;em&gt;fail as hard as possible&lt;/em&gt;!)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Unexpected behavior with the &lt;code&gt;==&lt;/code&gt; operator, which basically requires you to always use the &lt;code&gt;===&lt;/code&gt; operator.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Semicolon insertion.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Really a whole lot of JS should be considered harmful, maybe even the whole language, but the good parts are just so darn good that it kind of makes up for it (at least for me.)&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-01T21:56:34.930" />
  <row Id="16129" PostTypeId="2" ParentId="16109" CreationDate="2010-11-01T22:22:15.767" Score="1" ViewCount="" Body="&lt;p&gt;When I look at an applicants education history on their resume I look at these things (in order of importance).  Keep in mind that all of these considerations essentially are out the window if the applicant has significant work experience, generally they only come into play for applicants coming out of college whose only work experience is one or two internships.  The place I work happens to do most of their recruiting through universities so the &quot;education background&quot; section of the resume isn't generally something I can just skip.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Is the degree relevant?&#xA;&lt;br/&gt;&lt;br/&gt;&#xA;Degrees that require a lot of coding are most relevant, but beyond that I would never consider one coding-intensive degree more relevant than another.  Computer Science, Computer Engineering, Computer Information Systems, and whatever other coding-intensive degrees are out there are all equally relevant IMO.  Slightly less relevant, but still good degrees are anything technical, ie engineering, math, physics.  If their degree is something non-technical that's a different story.  I haven't seen many applicants without degrees just because my company does most of their recruiting through universities.&#xA;&lt;br/&gt;&lt;br/&gt;&#xA;&lt;li&gt;Was it a good school?&#xA;&lt;br/&gt;&lt;br/&gt;&#xA;This measurement is even less precise, but there are three general categories.  Great, good, and not good.  If the school has an awesome reputation for engineering they get lumped in the great category (I'm in California so UC Berkeley, Cal-Tech, UCLA, Cal Poly SLO, etc are the &quot;great&quot; schools I've come in contact with).  And not to sound political, but generally for-profit schools get lumped into the &quot;not good category&quot; along with the associate degrees from community colleges, although being in the &quot;not good&quot; category definitely isn't a deal breaker.  Everyone else is in the good category.&#xA;&lt;br/&gt;&lt;br/&gt;&#xA;&lt;li&gt;What was their GPA?&#xA;&lt;br/&gt;&lt;br/&gt;&#xA;The least important of the education considerations but still something to keep in mind.  I'd definitely rather see a great school than a great GPA.&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Bachelors vs Master's degree doesn't mean a whole lot to me, although for bureaucratic reasons I'm supposed to favor the masters degree.  The Bachelors degree is plenty of education for our field in my opinion. The further education to get a masters degree just tells me the applicant is the academic type, which in my experience doesn't say much about how successful they will be as an employee.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't tell by now, considering a BA vs BS isn't even on the radar screen, and for good reason.  Not only is the difference generally minor, the difference between the BA and BS is completely dependent on the college.  Some colleges call their Computer Science degrees BAs for some reason, and others choose to call it a BS. Even among the schools that offer both options, the difference between the BA and the BS isn't always the same.  It's simply not worth my time and effort to research every degree program from every university to just find out if the applicant was required to take vector calculus or not.&lt;/p&gt;&#xA;" OwnerUserId="6757" LastActivityDate="2010-11-01T22:22:15.767" CommentCount="2" />
  <row Id="16130" PostTypeId="2" ParentId="16109" CreationDate="2010-11-01T22:35:59.280" Score="0" ViewCount="" Body="&lt;p&gt;If you have to explain what your degree does and how it is valid, perhaps it is a sign that you should steer away from it, &lt;em&gt;purely&lt;/em&gt; for marketing reasons.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-01T22:35:59.280" CommentCount="2" />
  <row Id="16131" PostTypeId="2" ParentId="15956" CreationDate="2010-11-01T22:37:41.873" Score="2" ViewCount="" Body="&lt;p&gt;I use stackexchange sites and not other forums, just because they read&amp;amp;feel better.&lt;/p&gt;&#xA;" OwnerUserId="4852" LastActivityDate="2010-11-01T22:37:41.873" CommunityOwnedDate="2011-05-28T03:03:08.047" />
  <row Id="16132" PostTypeId="2" ParentId="15956" CreationDate="2010-11-01T22:42:14.860" Score="0" ViewCount="" Body="&lt;p&gt;Absolutely. I prefer uncluttered UIs with a very low graphical complexity level. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My UX is very important to me - the app needs to not get in my way. The iPod is a wonderful device for this, in my experience&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FWIW, I find Eclipse-derived applications a complete pain to use. I use emacs for all editing.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-01T22:42:14.860" CommunityOwnedDate="2011-05-28T03:03:08.047" />
  <row Id="16133" PostTypeId="2" ParentId="16070" CreationDate="2010-11-01T22:48:19.703" Score="16" ViewCount="" Body="&lt;p&gt;I categorically disagree with most of the answers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is my answer:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Given two sets G and H, a Galois connection &lt;em&gt;(alpha, beta)&lt;/em&gt; can be defined between them, and one can be said to be a concretization of the other; reverse the connection, and one is an abstraction of the other. The functions are a concretization function and an abstraction function.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is from the theory of abstract interpretation of computer programs, which typically is a static analysis approach to date.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-01T22:48:19.703" CommentCount="9" />
  <row Id="16134" PostTypeId="2" ParentId="6157" CreationDate="2010-11-01T23:21:33.497" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;An Editor&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether it be Emacs,Vim,Eclipse, VisualStudio or whatever.&lt;br&gt;&#xA;I'd recommend you learn it until it becomes as natural as breathing.&lt;/p&gt;&#xA;" OwnerUserId="4364" LastActivityDate="2010-11-01T23:21:33.497" CommunityOwnedDate="2010-11-01T23:21:33.497" CommentCount="2" />
  <row Id="16135" PostTypeId="1" AcceptedAnswerId="16138" CreationDate="2010-11-01T23:34:34.963" Score="5" ViewCount="1001" Body="&lt;p&gt;Just a random observation, it seems that on StackOverflow.com, there are questions about if &quot;++i == i++&quot;. That question gets asked all the time though, I think I saw it asked about 6 or 7 times in the past 2 months.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just wonder why C developers are so interested in it? The same concept/question exists for C# and Java devs as well, but I think I saw only one C# related question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it because so many examples use ++i? Is it because there is some popular book or tutorial? Is it because C developers just love to cram as much as possible into a single line for 'efficiency'/'performance' and therefore encounter 'weird' constructs using the ++ operator more often?&lt;/p&gt;&#xA;" OwnerUserId="6342" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2011-05-27T15:54:09.167" LastActivityDate="2011-05-28T04:04:21.840" Title="What makes C developers so curious if &quot;i++ == ++i&quot;?" Tags="&lt;c&gt;&lt;stackoverflow&gt;" AnswerCount="9" CommentCount="7" />
  <row Id="16136" PostTypeId="2" ParentId="16135" CreationDate="2010-11-01T23:43:45.100" Score="4" ViewCount="" Body="&lt;p&gt;most likely because in C it really matters if you write i++ or ++i when you're doing pointer arithmetic. There increaseing the i before or after an operation could be crucial.&#xA;I'd give you an example but the last time i wrote C was 10 years ago...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In c# i've never come accross a situation that would require me to think about i++ or ++i because AFAIK for the for/while loops there it doesn't really matter.&lt;/p&gt;&#xA;" OwnerUserId="319" LastEditorUserId="319" LastEditorDisplayName="" LastEditDate="2010-11-02T00:27:31.163" LastActivityDate="2010-11-02T00:27:31.163" CommentCount="3" />
  <row Id="16137" PostTypeId="1" CreationDate="2010-11-01T23:46:43.483" Score="4" ViewCount="176" Body="&lt;p&gt;After writing a few (relatively obscure) OSS frameworks, I've learned the hard way that writing a good framework isn't enough--there has to be some time spent marketing your framework as much as the time you spend coding it. So here's my question: What are some effective ways for making your OSS project become well-known? Aside from blogging, how do I gain the most market attention for my code with the least amount of effort as humanly possible?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(EDIT: I'm a lazy programmer and I hate documentation, but I'm biting the bullet. I want to be famous)&lt;/p&gt;&#xA;" OwnerUserId="4385" LastActivityDate="2010-11-12T16:15:27.473" Title="Effective ways to make your OSS project popular?" Tags="&lt;open-source&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="1" />
  <row Id="16138" PostTypeId="2" ParentId="16135" CreationDate="2010-11-01T23:51:25.623" Score="17" ViewCount="" Body="&lt;p&gt;I suspect that at least part of it is a bit simpler: even now, we see a lot of questions like this starting around the beginning of the school year, and they gradually taper off throughout the year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As such, I think it's fair to guess that quite a few of them are simply a result of classes in which the teacher talks at least a little about it, but doesn't explain his point(s) very well (as often as not because he doesn't really understand them himself). Especially based on the people who seem to ask these questions, few are based on actual coding.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-01T23:51:25.623" CommentCount="2" />
  <row Id="16139" PostTypeId="2" ParentId="16070" CreationDate="2010-11-01T23:52:06.387" Score="1" ViewCount="" Body="&lt;p&gt;Abstraction= [Concrete1.Round() + Concrete2.Round() + ... + ConcreteN.Round()] / N&lt;/p&gt;&#xA;" OwnerUserId="6727" LastActivityDate="2010-11-01T23:52:06.387" />
  <row Id="16140" PostTypeId="2" ParentId="16135" CreationDate="2010-11-02T00:06:09.840" Score="7" ViewCount="" Body="&lt;p&gt;Because C programmers HAVE to understand order of operations.  C# developers don't necessarily use the bitwise operators (&amp;amp;, |, ~) or prefix operators since we're normally more worried about other stuff.  However, what we C# devs don't realize is that we should know what the operators we use on a daily basis do and how to use them properly.  Most of us just avoid the places where this may be a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Off the top of your head, what is the output of this snippet?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    double x = 5.5;&#xA;    Console.WriteLine(x++);&#xA;    x = 5.5;&#xA;    Console.WriteLine(++x);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I would say a good number of seasoned C# devs have no idea what the output to the Console is.&lt;/p&gt;&#xA;" OwnerUserId="6494" LastActivityDate="2010-11-02T00:06:09.840" CommentCount="6" />
  <row Id="16141" PostTypeId="1" CreationDate="2010-11-02T00:14:00.957" Score="4" ViewCount="266" Body="&lt;p&gt;There seems to be a conflict over whether its better to use whitespace or tokens like brackets to indicate scope. I've seen many praise python's solution to the inconsistent indentation problem, &lt;a href=&quot;http://programmers.stackexchange.com/questions/2846/which-programming-language-do-you-really-hate/3836#3836&quot;&gt;but many disagree:&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Any language that has whitespace as tokens needs to die.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;posted later on the same answer:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I was sortof anti-whitespace-as-tokens, until I actually tried it. It probably helped that my personal white-space layout pretty much matches what everyone in python-land uses. Perhaps it's that I am a bit minimalist, but if you're going to indent anyways, why bother with the {}s?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I can see some clear arguments for each side:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;using whitespace:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;helps reduce inconsistent indentation in code&lt;/li&gt;&#xA;&lt;li&gt;clears the screen by replace visible tokens with whitespace to serve the same purpose&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;using tokens:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;much easier to cut and paste code to different levels (you don't have to fix the &#xA;indentation)&lt;/li&gt;&#xA;&lt;li&gt;more consistent. Some text editors display whitespace differently.&lt;/li&gt;&#xA;&lt;li&gt;more popular currently.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Are there any points I missed? Which do you prefer? Any words of wisdom after having worked with one or the other for a long time?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;PS. I hate it when languages don't use the same token for each control structure. VB is really annoying with its &lt;code&gt;End If&lt;/code&gt; and &lt;code&gt;End While&lt;/code&gt; statements, most other languages just use {}'s for everything. But maybe that's a topic for a different question...&lt;/p&gt;&#xA;" OwnerUserId="1220" LastEditorUserId="2276" LastEditorDisplayName="" LastEditDate="2010-11-04T01:13:38.133" LastActivityDate="2010-11-04T05:14:23.833" Title="What are the pros and cons of a language using whitespace vs. {}'s to indicate scope?" Tags="&lt;programming-languages&gt;&lt;holy-war&gt;&lt;python&gt;&lt;scope-creep&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="3" />
  <row Id="16142" PostTypeId="1" CreationDate="2010-11-02T00:25:44.317" Score="2" ViewCount="295" Body="&lt;p&gt;Of course this has been asked, but the answer is valid only for a short time so..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's the hottest PHP IDE at the moment? I have been using netbeans 6.8, which had pretty much everything I wanted (6.9 is buggy, for some reason I can't use autocompletion, when the proposal pops up, I press enter, and nothing happens.. sometimes it even tilts the program), but a few days ago it started to get slower and slower (the project I'm working on kept growing.. It's not THAT big, but it's the only thing that changed), and now it is unusable. A few minutes after opening it, it keeps scanning files and slows down until I can't use it anymore (I read about other ppl having the same problem).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realized it was time to pick another IDE, so I searched again and discovered Aptana 3, PDT Eclipse, and some others.. But none of them have something that I can't live without anymore: getters and setters generator. I saw there was a third-party plugin for eclipse for this, but you can't choose between camelCase and under_score.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any suggestions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please don't suggest things like 'use public vars' or 'use magic methods'. Getters and setters are a must in OOP.&lt;/p&gt;&#xA;" OwnerUserId="6859" LastActivityDate="2010-11-02T09:14:49.643" ClosedDate="2010-11-03T13:05:34.883" Title="Hottest PHP IDE At The Moment?" Tags="&lt;ide&gt;&lt;php&gt;&lt;object-oriented&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="3" />
  <row Id="16143" PostTypeId="2" ParentId="6157" CreationDate="2010-11-02T00:50:59.070" Score="8" ViewCount="" Body="&lt;p&gt;The whiteboard.&lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-11-02T00:50:59.070" CommunityOwnedDate="2010-11-02T00:50:59.070" CommentCount="2" />
  <row Id="16144" PostTypeId="2" ParentId="16137" CreationDate="2010-11-02T01:32:00.590" Score="5" ViewCount="" Body="&lt;p&gt;Start making some friends with larger voices than yours. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Social networking is a great tool for this: influential people on Twitter, Facebook, Buzz, what-have-you love sharing new and interesting things their followers might enjoy. The novel link is like currency. So, think about people who are popular and have a large audience and would be interested in your work. Then, just let them know about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To facilitate this, you should be treating your project just like you would a startup: come up with an elevator pitch that succinctly describes what it is your project does, what problem it solves, and why someone should care. A blog or some sort of record of progress over time is also valuable, as people who are interested in following a project generally want to see how it evolves just as much, if not moreso, than the project itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;9 out of 10 times if you're not spammy about it, realize you're talking to a person who is just trying to find something cool, and your project is interesting in its own right, they're going to talk about it to others, or at least link to it.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-11-02T01:32:00.590" />
  <row Id="16145" PostTypeId="2" ParentId="16105" CreationDate="2010-11-02T01:34:32.427" Score="2" ViewCount="" Body="&lt;p&gt;three things matter when choosing teammates - or employees, for that matter:  &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;do they really, really want to be there?&lt;/li&gt;&#xA;&lt;li&gt;do you get along? can you work with them? under stress? and can they work with you?&lt;/li&gt;&#xA;&lt;li&gt;are they willing and able to learn whatever the job requires?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;don't skip the interview process. it's not as serious as getting married, but they are, to some degree, moving in with you&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-02T01:34:32.427" />
  <row Id="16146" PostTypeId="2" ParentId="7126" CreationDate="2010-11-02T01:42:04.760" Score="0" ViewCount="" Body="&lt;p&gt;OOP = data structures + message passing + inheritance, all of which are logical evolutions in programming models.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OOP can be understood (by programmers) in about 90 seconds (see my profile for a link). The concepts are very simple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How to apply it is another matter. Just because you know how to swing a hammer doesn't mean you know how to design and build a house. ;-)&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-02T01:42:04.760" />
  <row Id="16147" PostTypeId="2" ParentId="15949" CreationDate="2010-11-02T01:43:11.980" Score="1" ViewCount="" Body="&lt;h1&gt;Always&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;&quot;no methodology&quot; is still a methodology, just not a very good (repeatable, predictable, improvable) one&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-02T01:43:11.980" />
  <row Id="16148" PostTypeId="2" ParentId="15930" CreationDate="2010-11-02T01:45:17.517" Score="0" ViewCount="" Body="&lt;p&gt;show them the benefits &lt;em&gt;to them&lt;/em&gt;. otherwise, why should they care?&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-02T01:45:17.517" />
  <row Id="16149" PostTypeId="2" ParentId="16070" CreationDate="2010-11-02T01:46:02.553" Score="4" ViewCount="" Body="&lt;p&gt;You're getting good answers here. I would only caution - people think abstraction is somehow this wonderful thing that needs to be put on a pedestal, and that you can't get enough of. It is not. It is just common sense. It is just recognizing the similarities between things, so you can apply a problem solution to a range of problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Permit me a peeve...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;High on my list of annoyances is when people speak of &quot;layers of abstraction&quot; as if that's a good thing. They make &quot;wrappers&quot; around classes or routines they don't like, and call them &quot;more abstract&quot;, as if that will make them better. Remember the fable of the &quot;Princess and the Pea&quot;? The princess was so delicate that if there was a pea under her mattress she wouldn't be able to sleep, and adding more layers of mattresses would not help. The idea that adding more layers of &quot;abstraction&quot; will help is just like that - usually it doesn't. It just means that any change to the base entity has to be rippled through multiple layers of code.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-11-02T01:55:09.673" LastActivityDate="2010-11-02T01:55:09.673" CommentCount="7" />
  <row Id="16150" PostTypeId="2" ParentId="15887" CreationDate="2010-11-02T01:46:52.880" Score="1" ViewCount="" Body="&lt;h1&gt;Good&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;the real danger is CS graduates with no experience who think they know everything ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;stay humble, and you will learn fast!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-02T01:46:52.880" />
  <row Id="16151" PostTypeId="2" ParentId="15916" CreationDate="2010-11-02T01:53:52.637" Score="0" ViewCount="" Body="&lt;p&gt;software development - &lt;em&gt;any&lt;/em&gt; software development - requires a lot of self-discipline, concentration, attention to detail, and the ability to focus on &lt;strong&gt;one thing&lt;/strong&gt; for a long time&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not unsympathetic to your plight, but no programming language or platform will cure ADHD. Seek professional help. And good luck!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-02T01:53:52.637" />
  <row Id="16152" PostTypeId="2" ParentId="15567" CreationDate="2010-11-02T02:01:28.057" Score="1" ViewCount="" Body="&lt;h1&gt;Both&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Don't be cheap. If you have to work away from your desk, a laptop is required. If you have serious work to do at your desk, a desktop (with dual monitors, if not three) is far faster for less money.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-02T02:01:28.057" />
  <row Id="16153" PostTypeId="2" ParentId="16070" CreationDate="2010-11-02T02:02:22.643" Score="1" ViewCount="" Body="&lt;p&gt;One way I try to describe it to people, may not be the best way&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider a Program that adds   2 + 2 and outputs 4&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider a program that adds two numbers input by a user,  x + y = z&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which is more useful and general?&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-11-02T02:02:22.643" CommentCount="1" />
  <row Id="16154" PostTypeId="2" ParentId="15570" CreationDate="2010-11-02T02:02:30.460" Score="2" ViewCount="" Body="&lt;p&gt;expressing business rules is one thing, implementing them is another&lt;/p&gt;&#xA;&#xA;&lt;p&gt;think about the user experience; if the user is not a salesperson, why give them a button that says 'create invoice' &lt;em&gt;at all&lt;/em&gt;?&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-02T02:02:30.460" />
  <row Id="16155" PostTypeId="2" ParentId="15949" CreationDate="2010-11-02T02:05:49.857" Score="0" ViewCount="" Body="&lt;p&gt;Software methodologies are purely a means to reduce project risk. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's fairly well known that if you take a team of developers practising some methodology and tell them they don't have to follow it anymore and can work however they want, their productivity will increase, but the risk that they will build the wrong thing at the wrong price in the wrong amount of time will greatly increase.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thus in order to choose an appropriate methodology you first need to determine what the risks are if the project fails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the only thing to lose is a couple of weeks of your evenings then a few sketches in a note book and no measurement of progress or deliverables is fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the lives of seven astronauts and billions of dollars is the price of software failure then you better have world class planning, development process, project management and testing in place.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-11-02T02:05:49.857" />
  <row Id="16156" PostTypeId="1" AcceptedAnswerId="16166" CreationDate="2010-11-02T02:11:06.580" Score="0" ViewCount="143" Body="&lt;p&gt;Almost every thinks AJAX stands for Asynchronous JavaScript and XML when it reality I believe it stands for &lt;a href=&quot;http://shiflett.org/blog/2007/apr/ajax-is-not-an-acronym&quot; rel=&quot;nofollow&quot;&gt;nothing at all&lt;/a&gt;. Am I wrong or what?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, can't Ajax technology be used for synchronous communication when asynchronous cannot be used?&lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-11-02T02:55:43.627" Title="Is AJAX an acronym or not?" Tags="&lt;ajax&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="1" />
  <row Id="16157" PostTypeId="2" ParentId="16156" CreationDate="2010-11-02T02:13:13.520" Score="0" ViewCount="" Body="&lt;p&gt;I think it stands for exactly what you mentioned: Asynchronous JavaScript and XML. I'd argue that if you use the same technology for synchronous requests it isn't technically AJAX by the strictest definition.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-02T02:13:13.520" />
  <row Id="16158" PostTypeId="2" ParentId="16156" CreationDate="2010-11-02T02:18:57.757" Score="0" ViewCount="" Body="&lt;p&gt;AJAX by itself is an acronym. However, it is used to describe asynchronous requests in multiple forms of JS. Most of the time it doesn't return XML though.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-02T02:18:57.757" />
  <row Id="16159" PostTypeId="1" AcceptedAnswerId="16224" CreationDate="2010-11-02T02:22:05.550" Score="2" ViewCount="161" Body="&lt;p&gt;We're outsourcing some work to an external developer, so I'm busy writing up a contract about what constitutes a deliverable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So far I require that the code is shipped with automated tests. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, what is a reasonable way to specify the detail of tests up-front in the contract in a measurable way?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm loathe to say &quot;100% code coverage&quot; because it's been established pretty often that 100% is pretty meaningless, and the diminishing returns above about 70-80% would probably just be pushing up our costs unnecessarily, and possibly even pushing up the complexity of certain things that might otherwise be very simple. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Internally we pretty much leave it up to our developers to decide on the level of tests needed, based on their intuition and experience. With a contractor however there is a fixed price that has to be agreed to up front and we need some way to enforce a certain level of quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any suggestions or recommended reading matter would be appreciated!&lt;/p&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-11-02T12:26:13.860" Title="Reasonable test coverage requirements when dealing with a contractor?" Tags="&lt;contracting&gt;&lt;outsourcing&gt;&lt;test-coverage&gt;" AnswerCount="4" CommentCount="4" FavoriteCount="1" />
  <row Id="16160" PostTypeId="2" ParentId="16156" CreationDate="2010-11-02T02:23:24.527" Score="0" ViewCount="" Body="&lt;p&gt;Originally it stood for Asynchronous Javascript and XML -- but realistically few people get very picky; there are really only two important elements: 1) it's a web page, and 2) it does some sort of asynchronous communication with the server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OTOH, I think the linked definition is a bit loose. At least as I read it, his definition would include a static HTML page containing a form, which I can't quite imagine anybody calling &quot;AJAX&quot;.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-02T02:23:24.527" />
  <row Id="16161" PostTypeId="2" ParentId="16141" CreationDate="2010-11-02T02:24:15.293" Score="1" ViewCount="" Body="&lt;p&gt;Personally I find I need the blank line introduced by having a token on it's own line to make my mind realise that the code is in another scope.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hate it when in python people go:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if something&#xA;    do something&#xA;    do somethingelse&#xA;&#xA;    cleanup&#xA;else&#xA;    do the other thing&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;while in token land I hate when people copy and paste &lt;strong&gt;and don't clean up the indentation&lt;/strong&gt;,&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if something&#xA;{&#xA;I have been too lazy&#xA;      {&#xA;            to clean up&#xA;            }&#xA;what I pasted&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or &lt;strong&gt;don't use a separate line for the token&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if something {&#xA;    I find this confusing&#xA;}&#xA;else {&#xA;especially when combined with the previous &#xA;do something&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I can read all three, but they aren't as I expect and I have to expend effort to parse them and as &lt;a href=&quot;http://www.joelonsoftware.com/uibook/chapters/fog0000000057.html&quot; rel=&quot;nofollow&quot;&gt;Joel says&lt;/a&gt; when things don't work like you expect it makes you frustrated.&lt;/p&gt;&#xA;" OwnerUserId="5682" LastActivityDate="2010-11-02T02:24:15.293" />
  <row Id="16162" PostTypeId="2" ParentId="16070" CreationDate="2010-11-02T02:29:02.580" Score="1" ViewCount="" Body="&lt;p&gt;I would argue that an abstraction is something that hides unnecessary details.  One of the most basic units of abstraction is the procedure.  For instance, I don't want to worry about how I'm saving data to the database when I'm reading that data in from a file.  So I create a save_to_database function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Abstractions can also be joined together to form bigger abstractions.  For instance, functions may be put together in a class, classes can be put together to form a program, programs can be put together to form a distributed system, etc.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-02T02:29:02.580" CommentCount="1" />
  <row Id="16163" PostTypeId="2" ParentId="16137" CreationDate="2010-11-02T02:40:30.553" Score="0" ViewCount="" Body="&lt;p&gt;Write it and they will come. In the OSS 'market' it is generally quality that rises to the top. It is thankfully free of bluster and hot air.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-11-02T02:40:30.553" />
  <row Id="16164" PostTypeId="2" ParentId="16141" CreationDate="2010-11-02T02:41:04.313" Score="4" ViewCount="" Body="&lt;p&gt;I think a lot of us programmers (myself included) have a tendency to &quot;logicalize&quot; every decision.  That's fine, but not every question has a logical answer.  For instance, I doubt that chefs post questions on chefoverflow (if such a thing exists) asking for the pros and cons of apple pie vs cherry pie.  It's a question of which you like better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that in mind, I think the simplest answer is to say &quot;Some people like braces, some people like whitespace&quot; and leave it at that.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-02T02:41:04.313" CommentCount="6" />
  <row Id="16165" PostTypeId="1" AcceptedAnswerId="16168" CreationDate="2010-11-02T02:42:44.253" Score="6" ViewCount="561" Body="&lt;p&gt;&lt;strong&gt;EDIT: This question at first seems to be bashing Java, and I guess at this point it is a bit. However, the bigger point I am trying to make is why any one single language is chosen as the one end all be all solution to all problems. Java happens to be the one that's used so that's the one I had to beat on here, but I'm not intentionality ripping Java a new one :)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't like Java in most academic settings. I'm not saying the language itself is bad -- it has several extremely desirable aspects, most importantly the ability to run without recompilation on most any platform. Nothing wrong with using the language for Your Next App ^TM. (Not something I would personally do, but that's more because I have less experience with it, rather than it's design being poor)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it is a waste that high level CS courses are taught using Java as a language. Too many of my co-students cannot program worth a damn, because they don't know how to work in a non-garbage-collected world. They don't fundamentally understand the machines they are programming for. When someone can work outside of a garbage collected world, they can work inside of one, but not vice versa. GC is a tool, not a crutch. But the way it is used to teach computer science students is a as a crutch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Computer science should not teach an entire suite of courses tailored to a single language. Students leave with the idea that all good design is idiomatic Java design, and that Object Oriented Design is the ONE TRUE WAY THAT IS THE ONLY WAY THINGS CAN BE DONE. Other languages, at least one of them not being a garbage collected language, should be used in teaching, in order to give the graduate a better understanding of the machines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is an embarrassment that somebody with a PHD in CS from a respected institution cannot program their way out of a paper bag.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's worse, is that when I talk to those CS professors who actually do understand how things operate, they share feelings like this, that we're doing a disservice to our students by doing everything in Java. (Note that the above would be the same if I replaced it with any other language, generally using a single language is the problem, not Java itself)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In total, I feel I can no longer respect any kind of degree at all -- when I can't see those around me able to program their way out of fizzbuzz problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why/how did it get to be this way?&lt;/p&gt;&#xA;" OwnerUserId="886" LastEditorUserId="886" LastEditorDisplayName="" LastEditDate="2010-11-02T03:08:19.797" LastActivityDate="2010-11-02T13:44:52.030" Title="Why is Java used as the only language of computer science at so many institutions?" Tags="&lt;programming-languages&gt;&lt;education&gt;" AnswerCount="9" CommentCount="19" FavoriteCount="1" />
  <row Id="16166" PostTypeId="2" ParentId="16156" CreationDate="2010-11-02T02:46:14.180" Score="8" ViewCount="" Body="&lt;p&gt;Asynchronous JavaScript And XML - the abbreviation is AJAX.  And it is pronounceable.  Therefore, it is an acronym.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-11-02T02:46:14.180" />
  <row Id="16167" PostTypeId="2" ParentId="16156" CreationDate="2010-11-02T02:55:43.627" Score="0" ViewCount="" Body="&lt;p&gt;If it's not an acronym, I find it extremely convenient that from some weird coincidence, the first letters of the words &quot;Asynchronous Javascript And XML&quot; are &lt;code&gt;a&lt;/code&gt;, &lt;code&gt;j&lt;/code&gt;, &lt;code&gt;a&lt;/code&gt; and &lt;code&gt;x&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="90" LastActivityDate="2010-11-02T02:55:43.627" />
  <row Id="16168" PostTypeId="2" ParentId="16165" CreationDate="2010-11-02T02:57:19.207" Score="10" ViewCount="" Body="&lt;p&gt;This isn't a Java problem, it's a teaching problem. Not knowing how to program is not a languages fault, it's the students fault. Same goes for all your issues, GC, basic machine knowledge, how things work &quot;under the hood&quot; so to speak.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your major gripe about garbage collection throws me slightly. Unless you're doing C or C++ garbage collection is typically very good and not an issue. Would you rather they all learn assembly? Higher level languages that are strict are very useful for teaching. It gives you the flexibility of libraries, packages, and other niceties when you need it, without any of the confusing language &quot;sugar&quot; present in most other higher level languages (PHP, Ruby, Python, Perl).&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-02T02:57:19.207" CommentCount="10" />
  <row Id="16169" PostTypeId="2" ParentId="16165" CreationDate="2010-11-02T03:00:25.787" Score="3" ViewCount="" Body="&lt;p&gt;That's what the industry asked for. There was a shortage of Java developers so schools starting creating them. Companies got developers who can start work as soon as they walked through the door. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, the language doesn't matter. They could teach a non-GC language and still produce bad programmers. The language schools use is an implementation detail. Schools should teach concepts. If this isn't the case then it's the school that is the problem not the language they teach with. Just because someone doesn't know what a pointer is doesn't mean they can't be an effective programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;GC is the way of the future anyway.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-11-02T03:00:25.787" CommentCount="7" />
  <row Id="16170" PostTypeId="2" ParentId="16135" CreationDate="2010-11-02T03:13:57.760" Score="2" ViewCount="" Body="&lt;p&gt;A few years ago I read that these operators were considered dangerous so I tried to dig more info on it. If stackoverflow had been up at that time, I would have asked it there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now it is because some twisted people write loops such as&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;while( [something] )&#xA;{&#xA;  a[++j] = ++j;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Even now, I'm not too sure about what will/should happen, but it's pretty clear to me that multiple ++[var] on the same line is asking for trouble.&lt;/p&gt;&#xA;" OwnerUserId="3250" LastActivityDate="2010-11-02T03:13:57.760" CommentCount="2" />
  <row Id="16171" PostTypeId="2" ParentId="6157" CreationDate="2010-11-02T03:17:17.663" Score="2" ViewCount="" Body="&lt;p&gt;A console program&lt;/p&gt;&#xA;&#xA;&lt;p&gt;cmd.exe or powershell or bash or tcsh or...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just know one enough so that you will get basic scripting &lt;/p&gt;&#xA;" OwnerUserId="3250" LastActivityDate="2010-11-02T03:17:17.663" CommunityOwnedDate="2010-11-02T03:17:17.663" />
  <row Id="16172" PostTypeId="2" ParentId="16165" CreationDate="2010-11-02T03:18:06.243" Score="3" ViewCount="" Body="&lt;p&gt;I mostly agree but to a certain degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are to teach CS cource focused on data structures or algorithms. Getting most of the unnecessary stuff out of the way is a good thing. You don't wan't students to deal with low level stuf when learning high level concepts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand low level stuff should be also taught. Just so we get more all-around programmers.&lt;/p&gt;&#xA;" OwnerUserId="4852" LastActivityDate="2010-11-02T03:18:06.243" CommentCount="1" />
  <row Id="16173" PostTypeId="2" ParentId="16159" CreationDate="2010-11-02T03:22:32.640" Score="2" ViewCount="" Body="&lt;p&gt;You can come up with more specific measure. E. g. 100% coverage for methods with cyclomatic complexity &gt;= 5. Etc...&lt;/p&gt;&#xA;" OwnerUserId="4852" LastActivityDate="2010-11-02T03:22:32.640" />
  <row Id="16174" PostTypeId="2" ParentId="16165" CreationDate="2010-11-02T03:34:46.357" Score="4" ViewCount="" Body="&lt;p&gt;I'm really surprised this is the situation as many schools.  When I got my CS degree, I had a series of languages courses that between them included all the popular languages of the day (this was almost 40 years ago): assembler (Univac 1108 and MIX), FORTRAN IV, SNOBOL4, COBOL, Lisp, and Algol 68.  I can't imagine having just one language being taught.  Or how I could appreciate what compilers had to do without having written some assembler programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We did use Algol and FORTRAN for most of the data and algorithms courses.  I would have liked to have spent more time with Lisp -- instead we had just an introduction and now am trying to re-learn some of the concepts.  We used SNOBOL4 for writing parsers -- and its pattern matching with backtracking built a good foundation for later work the regex libraries included with many modern languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This introduction to half a dozen languages sparked an interest in me that has continued ever since. &lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-11-02T05:11:13.270" LastActivityDate="2010-11-02T05:11:13.270" CommentCount="1" />
  <row Id="16175" PostTypeId="1" CreationDate="2010-11-02T03:50:03.647" Score="0" ViewCount="100" Body="&lt;p&gt;Hello, currently, I have an &lt;a href=&quot;http://jstock.sourceforge.net&quot; rel=&quot;nofollow&quot;&gt;Open Source Project&lt;/a&gt; hosted in SourceForge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can usually gain interested from developers easily, once I post an Help Wanted message through SourceForge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I can hardly attract interested from graphics designers. Hence, I need to DIY the graphics part in the project (Splash screen, web site...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was wondering, is there any channels, where I can get graphics designers who are interested in contributing to open source project?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="1877" LastActivityDate="2010-11-02T06:45:52.303" ClosedDate="2010-11-02T09:44:19.720" Title="Where I can get Graphics Designer to contribute to open source project" Tags="&lt;open-source&gt;" AnswerCount="1" />
  <row Id="16176" PostTypeId="2" ParentId="16025" CreationDate="2010-11-02T03:52:13.910" Score="6" ViewCount="" Body="&lt;p&gt;I disagree with dsimcha's answer for the most part:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Teaching OO from the beginning is not really a bad idea within itself, neither is teaching procedural languages. What's important is that we teach people to write clear, concise, cohesive code, regardless of OO or procedural.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Individual methods in good OO programs DO NOT tend to be procedural looking at all.  This is becoming more and more true with evolution of OO languages (read C# because other than C++ that's the only other OO language I know) and their syntax that's getting more complex by the day (lambdas, LINQ to objects, etc.).  The only similarity between OO methods and procedures in procedural languages is the linear nature of each, which I doubt  would change anytime soon.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You can't master a procedural language without understanding data structures either.  The pointer concept is as important for procedural languages as for OO languages.  Passing parameters by reference, for example, which is quite common in procedural languages, requires you to understand pointers as much as it's required to learn any OO language.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I don't think that design patterns should be taught early in OO programming at all, because they are not fundamental to OO programming at all.  One can definitely be a good OO programmer without knowing anything about design patterns.  In fact a person can even be using well-known design patterns without even knowing that they are documented as such with proper names and that books are written about them.  What should be taught fundamentally is design principles such as Single Responsibility, Open Close, and Interface Segregation.  Unfortunately, many people who consider themselves OO programmers these days are either not familiar with this fundamental concept or just choose to ignore it and that's why we have so much garbage OO code out there.  Only after a thorough understanding of these and other principles should design patterns be introduced.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;To answer original poster's question, yes, OO is a harder concept to understand than procedural programming.  This is because we do not think in terms of properties and methods of real life objects.  For example, human brain does not readily think of &quot;TurnOn&quot; as a method of TV, but sees it as a function of human turning on the TV.  Similarly, polymorphism is a foreign concept to a human brain that generally sees each real life object by only one &quot;face&quot;.  Inheritance again is not natural to our brains.  Just because I am a developer does not mean that my son would be one.  Generally speaking, human brain needs to be trained to learn OO while procedural languages are more natural to it. &lt;/p&gt;&#xA;" OwnerUserId="6863" LastActivityDate="2010-11-02T03:52:13.910" CommentCount="1" />
  <row Id="16177" PostTypeId="2" ParentId="16025" CreationDate="2010-11-02T04:03:19.983" Score="4" ViewCount="" Body="&lt;p&gt;I'd done GW-Basic and Turbo Pascal programming a fair bit before being introduced to OO, so initially it &lt;strong&gt;DID&lt;/strong&gt; do my head in. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;No idea if this is what happens to others, but to me it was like this: my thought process about programming was purely procedural. As in: &quot;such and such happens, then such and such happens next&quot;, etc. I never considered the variables and data to be anything more than fleeting actors in the flow of the program. Programming was &quot;the flow of actions&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suppose what wasn't easy to grasp (as stupid as that looks to me now), was the idea that the data/variables actually &lt;em&gt;truly matter&lt;/em&gt;, in a deeper sense than just being fleeting actors in program &quot;flow&quot;. Or to put this another way: I kept trying to understand it via what &lt;em&gt;happens&lt;/em&gt;, rather than via what &lt;em&gt;is&lt;/em&gt;, which is the real key to grasping it.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastEditorUserId="5064" LastEditorDisplayName="" LastEditDate="2010-11-02T05:16:55.690" LastActivityDate="2010-11-02T05:16:55.690" CommentCount="1" />
  <row Id="16178" PostTypeId="2" ParentId="2331" CreationDate="2010-11-02T04:04:40.170" Score="-2" ViewCount="" Body="&lt;p&gt;going out a bit on a limb here - void functions. a function always does something, hence it should either return the result or some other bit of information regarding its success or failure. &lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-11-02T04:04:40.170" CommentCount="2" />
  <row Id="16179" PostTypeId="1" AcceptedAnswerId="16319" CreationDate="2010-11-02T05:10:20.290" Score="7" ViewCount="701" Body="&lt;p&gt;Do you think Object Oriented Programming is a solution to complexity. Why? This topic may be a bit controversial but my intentions to know the answer of Why from the experts here !&lt;/p&gt;&#xA;" OwnerUserId="6869" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-02T05:18:05.970" LastActivityDate="2011-01-22T17:01:08.697" Title="Is Object Oriented Programming a solution to complexity?" Tags="&lt;object-oriented&gt;&lt;complexity&gt;" AnswerCount="14" CommentCount="2" FavoriteCount="4" />
  <row Id="16180" PostTypeId="2" ParentId="16135" CreationDate="2010-11-02T05:11:55.110" Score="-2" ViewCount="" Body="&lt;p&gt;Guessing: is C a more boring language than C#? If so, it might explain why you get questions on &lt;code&gt;&quot;++i == i++&quot;&lt;/code&gt; in the former rather than the latter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, is comparing the LHS and the RHS like &lt;a href=&quot;http://en.wikipedia.org/wiki/User%3aSao123/A_plane_on_a_conveyor_belt&quot; rel=&quot;nofollow&quot;&gt;comparing a conveyor belt with an airplane&lt;/a&gt;?&lt;/p&gt;&#xA;" OwnerUserId="2114" LastActivityDate="2010-11-02T05:11:55.110" CommentCount="2" />
  <row Id="16181" PostTypeId="2" ParentId="16179" CreationDate="2010-11-02T05:23:07.190" Score="0" ViewCount="" Body="&lt;p&gt;To some degree...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? Because it facilitates very logical modularity. At least in comparison to procedural programming where it's all too tempting to just write huge piles of spaghetti code.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-02T05:23:07.190" />
  <row Id="16182" PostTypeId="2" ParentId="16179" CreationDate="2010-11-02T05:23:53.360" Score="11" ViewCount="" Body="&lt;p&gt;I expect you'll get some better answers shortly, but here's a simple one:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OOP helps* with complexity by modeling software in a way closer to the way we model everything else in the world.  It's just generally easier to image a ball object interacting with a wall object than it is to imagine a series of routines and data structures to do the same thing, since it's closer to how we interact with the real world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*Because nothing can 'solve' complexity&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-11-02T05:23:53.360" CommentCount="4" />
  <row Id="16183" PostTypeId="2" ParentId="16179" CreationDate="2010-11-02T05:24:09.767" Score="5" ViewCount="" Body="&lt;p&gt;Object-oriented programming has roots that can be traced to the 1960s. As hardware and software became increasingly complex, manageability often became a concern. Researchers studied ways to maintain software quality and developed object-oriented programming in part to address common problems by strongly emphasizing &lt;em&gt;discrete, reusable units of programming logic.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An object-oriented program may thus be viewed as a collection of interacting objects, as opposed to the conventional model, in which a program is seen as a list of tasks (subroutines) to perform. In OOP, each object is capable of receiving messages, processing data, and sending messages to other objects. Each object can be viewed as an independent 'machine' with a distinct role or responsibility. The actions (or &quot;methods&quot;) on these objects are &lt;em&gt;closely associated with the object itself.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Object-oriented_programming&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Object-oriented_programming&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This separation of concerns, along with other features of Object Orientation such as polymorphism, inheritance, message passing, decoupling and encapsulation, provide a logical and conceptual framework by which the complexity of large programs can be managed in a highly effective way.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-03T17:08:34.813" LastActivityDate="2010-11-03T17:08:34.813" />
  <row Id="16184" PostTypeId="2" ParentId="15781" CreationDate="2010-11-02T05:27:53.150" Score="0" ViewCount="" Body="&lt;p&gt;I've had pretty good luck with &lt;a href=&quot;http://www.mono-project.com/Main_Page&quot; rel=&quot;nofollow&quot;&gt;Mono.&lt;/a&gt;  I can write the same code for windows machines as I do for Linux machines, and for the most part, it works on both.  And I can use the skills I already know in C# and Winforms.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-02T05:27:53.150" CommentCount="3" />
  <row Id="16185" PostTypeId="2" ParentId="16179" CreationDate="2010-11-02T05:36:16.197" Score="2" ViewCount="" Body="&lt;p&gt;There are many kinds of complexity to software development.  At the programming level, OOP seeks to address complexity by using objects and classes to model the problem domain.  A well-known guru said problem solving is just representing the problem so that the solution is the representation itself. Hence, by abstraction using classes, encapsulation using access modifiers and methods, inheritance for specifying relationship and reuse, composition in establishing relationship and collaboration between classes, polymorphism as a means to simplify the determination of different behaviors in similar objects, complexity can be managed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are also other ways to manage software complexity, for example, Logic (Prolog) and Functional (Haskell) programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At a level higher than programming, we need Design Patterns and Principles to guide OOP. Hence OOP is managing complexity at a low (coding) level while these methodologies such as Design Patterns and Principles guide the design of the solution at a higher (system and application) level and make software development and handling complexities more manageable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer your question, yes, OOP is just a solution to handling complexity among many other solutions.  It is a solution at a low level.  We need Design Patterns and Principles to guide OOP in a higher level.  &lt;/p&gt;&#xA;" OwnerUserId="6864" LastActivityDate="2010-11-02T05:36:16.197" CommentCount="1" />
  <row Id="16186" PostTypeId="2" ParentId="16179" CreationDate="2010-11-02T05:47:28.487" Score="0" ViewCount="" Body="&lt;p&gt;The reason Object-oriented programming seems to help us handle complexity is because it forces us to write code in a specific fashion instead of a huge variety of ways.  Task-oriented programming is much more intuitive, which is why programming started that way.  Object-orientation takes training and practice to understand and use effectively, but by constraining programming into a certain path, it allows those trained to effectively maintain the code that was written.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's no more logical or real-world than any other method, it's just a way of focusing our problem solving through similar lenses.  A lot of technical specialties use the paradigm of a non-intuitive rigid methodology to handle the complexity of their tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A third method to handle complexity would be functional programming, and there will be probably be other new methods in the future also.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-11-02T05:47:28.487" CommentCount="1" />
  <row Id="16187" PostTypeId="2" ParentId="15781" CreationDate="2010-11-02T05:49:34.417" Score="2" ViewCount="" Body="&lt;p&gt;Go for HTML5. Any platform with a HTML5 browser can run your application.  Although HTML5 is not ready for big time yet, the Web application approach is.&lt;/p&gt;&#xA;" OwnerUserId="6864" LastActivityDate="2010-11-02T05:49:34.417" CommentCount="1" />
  <row Id="16188" PostTypeId="2" ParentId="16165" CreationDate="2010-11-02T05:52:44.827" Score="4" ViewCount="" Body="&lt;p&gt;Are universities &lt;em&gt;really&lt;/em&gt; doing this? Or is this just a perception people get when they get a bad job interview candidate? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got my CS degree 4 years ago and while Java was used in the intro classes, it was not particularly emphasized after that. Off the top of my head, the core required courses required you to learn Java, C, C++, SML (functional programming language), assembly, matlab and CAST (circuit description language). This doesn't take into account all the math and theoretical CS courses and of course, the half dozen elective CS courses that would have exposed you to a whole bunch more. From talking with friends at a number of different universities, it didn't sound like what they were doing was much different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there are universities solely teaching Java, then that is indeed a tragedy. Not because Java is bad, but because it is just one tool of many that should be available to a programmer. A developer who only knows Java is equivalent to a carpenter who only knows how to use a hammer. However, I have trouble believing that's really the case, at least for respected universities. I suspect that this is just the perception from seeing bad candidates and blaming the school for the candidates' incompetence rather than the candidate's own lack of drive/motivation/curiosity/professionalism/etc.&lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-11-02T05:52:44.827" CommentCount="2" />
  <row Id="16189" PostTypeId="1" AcceptedAnswerId="16196" CreationDate="2010-11-02T05:58:06.747" Score="4" ViewCount="409" Body="&lt;p&gt;What is that feature according to you that has made object oriented programming so much successful ?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Message Passing&lt;/li&gt;&#xA;&lt;li&gt;Inheritance&lt;/li&gt;&#xA;&lt;li&gt;Polymorphism&lt;/li&gt;&#xA;&lt;li&gt;Encapsulation&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Or some other feature that you may like to introduce.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also I would like to know that what is the connection between Abstract Data type and Object Oriented programming?&lt;/p&gt;&#xA;" OwnerUserId="6869" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-11-02T14:28:04.353" LastActivityDate="2010-11-02T21:20:40.013" Title="What made object oriented programming successful ?" Tags="&lt;object-oriented&gt;" AnswerCount="10" CommentCount="0" FavoriteCount="4" />
  <row Id="16190" PostTypeId="2" ParentId="16189" CreationDate="2010-11-02T06:06:55.410" Score="1" ViewCount="" Body="&lt;p&gt;My top three features. &#xA;Object Composition - allowing objects to collaborate.&#xA;Polymorphism - supports dynamic behaviors at runtime.&#xA;Inheritance - by reusing code and modifying behavior through methods overriding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ADT - you can have that even in non object-oriented languages like Pascal.  A stack or a queue are examples of ADT.&lt;/p&gt;&#xA;" OwnerUserId="6864" LastActivityDate="2010-11-02T06:06:55.410" />
  <row Id="16191" PostTypeId="2" ParentId="16189" CreationDate="2010-11-02T06:10:09.873" Score="5" ViewCount="" Body="&lt;p&gt;I think inheritance is the most important point of OOP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[from game development] You can create something like a Drawable class, with rendering methods and attributes, and create a Spaceship and Planet class, which inherits from Drawable. Take all objects from those [and other Sprite child], throw in a drawableObjArray and just call the draw method for every object. You just need to know that it's an Drawable.&lt;/p&gt;&#xA;" OwnerUserId="3445" LastActivityDate="2010-11-02T06:10:09.873" />
  <row Id="16192" PostTypeId="2" ParentId="16189" CreationDate="2010-11-02T06:10:53.693" Score="5" ViewCount="" Body="&lt;p&gt;The Data Hiding provided by Encapsulation.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-11-02T06:10:53.693" CommentCount="5" />
  <row Id="16193" PostTypeId="1" CreationDate="2010-11-02T06:24:27.167" Score="1" ViewCount="336" Body="&lt;p&gt;here is the error the flex builder shows:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Unknown error generating output application.xml files. Check the Eclipse error log for more details. /Day View/src/view Unknown AIR application.xml Problem DayView-app.xml&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and here is that xml file that is auto generated by flex builder but gives unknown erreor:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; standalone=&quot;no&quot;?&amp;gt;&#xA;&amp;lt;application xmlns=&quot;http://ns.adobe.com/air/application/1.5&quot;&amp;gt;&#xA;&#xA;&amp;lt;!-- Adobe AIR Application Descriptor File Template.&#xA;&#xA; Specifies parameters for identifying, installing, and launching AIR applications.&#xA;&#xA; xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/1.5&#xA;   The last segment of the namespace specifies the version &#xA;   of the AIR runtime required for this application to run.&#xA;&#xA; minimumPatchLevel - The minimum patch level of the AIR runtime required to run &#xA;   the application. Optional.&#xA;--&amp;gt;&#xA;&#xA; &amp;lt;!-- The application identifier string, unique to this application. Required. --&amp;gt;&#xA; &amp;lt;id&amp;gt;DayView&amp;lt;/id&amp;gt;&#xA;&#xA; &amp;lt;!-- Used as the filename for the application. Required. --&amp;gt;&#xA; &amp;lt;filename&amp;gt;DayView&amp;lt;/filename&amp;gt;&#xA;&#xA; &amp;lt;!-- The name that is displayed in the AIR application installer. &#xA;      May have multiple values for each language. See samples or xsd schema file. Optional. --&amp;gt;&#xA; &amp;lt;name&amp;gt;DayView&amp;lt;/name&amp;gt;&#xA;&#xA; &amp;lt;!-- An application version designator (such as &quot;v1&quot;, &quot;2.5&quot;, or &quot;Alpha 1&quot;). Required. --&amp;gt;&#xA; &amp;lt;version&amp;gt;v1&amp;lt;/version&amp;gt;&#xA;&#xA; &amp;lt;!-- Description, displayed in the AIR application installer.&#xA;      May have multiple values for each language. See samples or xsd schema file. Optional. --&amp;gt;&#xA; &amp;lt;!-- &amp;lt;description&amp;gt;&amp;lt;/description&amp;gt; --&amp;gt;&#xA;&#xA; &amp;lt;!-- Copyright information. Optional --&amp;gt;&#xA; &amp;lt;!-- &amp;lt;copyright&amp;gt;&amp;lt;/copyright&amp;gt; --&amp;gt;&#xA;&#xA; &amp;lt;!-- Settings for the application's initial window. Required. --&amp;gt;&#xA; &amp;lt;initialWindow&amp;gt;&#xA;  &amp;lt;!-- The main SWF or HTML file of the application. Required. --&amp;gt;&#xA;  &amp;lt;!-- Note: In Flex Builder, the SWF reference is set automatically. --&amp;gt;&#xA;  &amp;lt;content&amp;gt;[This value will be overwritten by Flash Builder in the output app.xml]&amp;lt;/content&amp;gt;&#xA;&#xA;  &amp;lt;!-- The title of the main window. Optional. --&amp;gt;&#xA;  &amp;lt;!-- &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt; --&amp;gt;&#xA;&#xA;  &amp;lt;!-- The type of system chrome to use (either &quot;standard&quot; or &quot;none&quot;). Optional. Default standard. --&amp;gt;&#xA;  &amp;lt;!-- &amp;lt;systemChrome&amp;gt;&amp;lt;/systemChrome&amp;gt; --&amp;gt;&#xA;&#xA;  &amp;lt;!-- Whether the window is transparent. Only applicable when systemChrome is none. Optional. Default false. --&amp;gt;&#xA;  &amp;lt;!-- &amp;lt;transparent&amp;gt;&amp;lt;/transparent&amp;gt; --&amp;gt;&#xA;&#xA;  &amp;lt;!-- Whether the window is initially visible. Optional. Default false. --&amp;gt;&#xA;  &amp;lt;!-- &amp;lt;visible&amp;gt;&amp;lt;/visible&amp;gt; --&amp;gt;&#xA;&#xA;  &amp;lt;!-- Whether the user can minimize the window. Optional. Default true. --&amp;gt;&#xA;  &amp;lt;!-- &amp;lt;minimizable&amp;gt;&amp;lt;/minimizable&amp;gt; --&amp;gt;&#xA;&#xA;  &amp;lt;!-- Whether the user can maximize the window. Optional. Default true. --&amp;gt;&#xA;  &amp;lt;!-- &amp;lt;maximizable&amp;gt;&amp;lt;/maximizable&amp;gt; --&amp;gt;&#xA;&#xA;  &amp;lt;!-- Whether the user can resize the window. Optional. Default true. --&amp;gt;&#xA;  &amp;lt;!-- &amp;lt;resizable&amp;gt;&amp;lt;/resizable&amp;gt; --&amp;gt;&#xA;&#xA;  &amp;lt;!-- The window's initial width. Optional. --&amp;gt;&#xA;  &amp;lt;!-- &amp;lt;width&amp;gt;&amp;lt;/width&amp;gt; --&amp;gt;&#xA;&#xA;  &amp;lt;!-- The window's initial height. Optional. --&amp;gt;&#xA;  &amp;lt;!-- &amp;lt;height&amp;gt;&amp;lt;/height&amp;gt; --&amp;gt;&#xA;&#xA;  &amp;lt;!-- The window's initial x position. Optional. --&amp;gt;&#xA;  &amp;lt;!-- &amp;lt;x&amp;gt;&amp;lt;/x&amp;gt; --&amp;gt;&#xA;&#xA;  &amp;lt;!-- The window's initial y position. Optional. --&amp;gt;&#xA;  &amp;lt;!-- &amp;lt;y&amp;gt;&amp;lt;/y&amp;gt; --&amp;gt;&#xA;&#xA;  &amp;lt;!-- The window's minimum size, specified as a width/height pair, such as &quot;400 200&quot;. Optional. --&amp;gt;&#xA;  &amp;lt;!-- &amp;lt;minSize&amp;gt;&amp;lt;/minSize&amp;gt; --&amp;gt;&#xA;&#xA;  &amp;lt;!-- The window's initial maximum size, specified as a width/height pair, such as &quot;1600 1200&quot;. Optional. --&amp;gt;&#xA;  &amp;lt;!-- &amp;lt;maxSize&amp;gt;&amp;lt;/maxSize&amp;gt; --&amp;gt;&#xA; &amp;lt;/initialWindow&amp;gt;&#xA;&#xA; &amp;lt;!-- The subpath of the standard default installation location to use. Optional. --&amp;gt;&#xA; &amp;lt;!-- &amp;lt;installFolder&amp;gt;&amp;lt;/installFolder&amp;gt; --&amp;gt;&#xA;&#xA; &amp;lt;!-- The subpath of the Programs menu to use. (Ignored on operating systems without a Programs menu.) Optional. --&amp;gt;&#xA; &amp;lt;!-- &amp;lt;programMenuFolder&amp;gt;&amp;lt;/programMenuFolder&amp;gt; --&amp;gt;&#xA;&#xA; &amp;lt;!-- The icon the system uses for the application. For at least one resolution,&#xA;   specify the path to a PNG file included in the AIR package. Optional. --&amp;gt;&#xA; &amp;lt;!-- &amp;lt;icon&amp;gt;&#xA;  &amp;lt;image16x16&amp;gt;&amp;lt;/image16x16&amp;gt;&#xA;  &amp;lt;image32x32&amp;gt;&amp;lt;/image32x32&amp;gt;&#xA;  &amp;lt;image48x48&amp;gt;&amp;lt;/image48x48&amp;gt;&#xA;  &amp;lt;image128x128&amp;gt;&amp;lt;/image128x128&amp;gt;&#xA; &amp;lt;/icon&amp;gt; --&amp;gt;&#xA;&#xA; &amp;lt;!-- Whether the application handles the update when a user double-clicks an update version&#xA; of the AIR file (true), or the default AIR application installer handles the update (false).&#xA; Optional. Default false. --&amp;gt;&#xA; &amp;lt;!-- &amp;lt;customUpdateUI&amp;gt;&amp;lt;/customUpdateUI&amp;gt; --&amp;gt;&#xA;&#xA; &amp;lt;!-- Whether the application can be launched when the user clicks a link in a web browser.&#xA; Optional. Default false. --&amp;gt;&#xA; &amp;lt;!-- &amp;lt;allowBrowserInvocation&amp;gt;&amp;lt;/allowBrowserInvocation&amp;gt; --&amp;gt;&#xA;&#xA; &amp;lt;!-- Listing of file types for which the application can register. Optional. --&amp;gt;&#xA; &amp;lt;!-- &amp;lt;fileTypes&amp;gt; --&amp;gt;&#xA;&#xA;  &amp;lt;!-- Defines one file type. Optional. --&amp;gt;&#xA;  &amp;lt;!-- &amp;lt;fileType&amp;gt; --&amp;gt;&#xA;&#xA;   &amp;lt;!-- The name that the system displays for the registered file type. Required. --&amp;gt;&#xA;   &amp;lt;!-- &amp;lt;name&amp;gt;&amp;lt;/name&amp;gt; --&amp;gt;&#xA;&#xA;   &amp;lt;!-- The extension to register. Required. --&amp;gt;&#xA;   &amp;lt;!-- &amp;lt;extension&amp;gt;&amp;lt;/extension&amp;gt; --&amp;gt;&#xA;&#xA;   &amp;lt;!-- The description of the file type. Optional. --&amp;gt;&#xA;   &amp;lt;!-- &amp;lt;description&amp;gt;&amp;lt;/description&amp;gt; --&amp;gt;&#xA;&#xA;   &amp;lt;!-- The MIME content type. --&amp;gt;&#xA;   &amp;lt;!-- &amp;lt;contentType&amp;gt;&amp;lt;/contentType&amp;gt; --&amp;gt;&#xA;&#xA;   &amp;lt;!-- The icon to display for the file type. Optional. --&amp;gt;&#xA;   &amp;lt;!-- &amp;lt;icon&amp;gt;&#xA;    &amp;lt;image16x16&amp;gt;&amp;lt;/image16x16&amp;gt;&#xA;    &amp;lt;image32x32&amp;gt;&amp;lt;/image32x32&amp;gt;&#xA;    &amp;lt;image48x48&amp;gt;&amp;lt;/image48x48&amp;gt;&#xA;    &amp;lt;image128x128&amp;gt;&amp;lt;/image128x128&amp;gt;&#xA;   &amp;lt;/icon&amp;gt; --&amp;gt;&#xA;&#xA;  &amp;lt;!-- &amp;lt;/fileType&amp;gt; --&amp;gt;&#xA; &amp;lt;!-- &amp;lt;/fileTypes&amp;gt; --&amp;gt;&#xA;&#xA;&amp;lt;/application&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6703" LastActivityDate="2010-11-02T06:24:27.167" ClosedDate="2010-11-02T22:18:56.283" Title="flex builder 4 unknown error in xml file?" Tags="&lt;xml&gt;" CommentCount="2" FavoriteCount="1" />
  <row Id="16194" PostTypeId="2" ParentId="16179" CreationDate="2010-11-02T06:25:44.993" Score="1" ViewCount="" Body="&lt;p&gt;Object oriented programming is a way of representing a problem, nothing more, nothing less. It is, in and of itself, not any less complex than any other programming paradigm. A well designed OOP system manages and reduces complexity, but it is also very easy to design a system that is much more complex than necessary and gets in the way of everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As oft said of C++, OOP gives you enough rope to hang yourself. &lt;/p&gt;&#xA;" OwnerUserId="5682" LastEditorUserId="5682" LastEditorDisplayName="" LastEditDate="2010-11-02T20:54:27.537" LastActivityDate="2010-11-02T20:54:27.537" CommentCount="2" />
  <row Id="16195" PostTypeId="2" ParentId="16189" CreationDate="2010-11-02T06:31:10.090" Score="0" ViewCount="" Body="&lt;p&gt;in simple words OOP is the key for re-usability and encapsulation that results in the production of large frameworks that makes the life easy for programmers in this era as the can just call the API's and do what day want most often.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;as ur question is about the 4 features of OOP so you can say  &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Inheritance and 4. Encapsulation are the most important features and other two are very much necessary to achieve the first two &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;so  1. Message Passing and  3. Polymorphism are actually supporting 2. Inheritance and 4. Encapsulation.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Inheritance and 4. Encapsulation are key to success for OOP&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6703" LastActivityDate="2010-11-02T06:31:10.090" />
  <row Id="16196" PostTypeId="2" ParentId="16189" CreationDate="2010-11-02T06:38:37.350" Score="23" ViewCount="" Body="&lt;p&gt;I'd suggest that the most important characteristic of object oriented programming is that of &lt;em&gt;complexity management&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The human brain can only hold so many concepts at one time - the oft quoted limit of remembering 7+/-2 independent items comes to mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I'm working on a 600kloc system at work, I can't hold the whole thing in my head at once. If I had to do that, I'd be limited to working on &lt;strong&gt;much&lt;/strong&gt; smaller systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fortunately, I don't have to. The various design patterns and other structures that we've used on that project mean that I don't have to deal with the entire system at once - I can pick up individual pieces and work on them, knowing that they fit into the wider application in well defined ways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of the important OO concepts provide ways to manage complexity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Encapsulation&lt;/em&gt; - let me deal with an external API that provides me with various services, without worrying how those services are implemented.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Abstraction&lt;/em&gt; - let me concentrate on the essential characteristics and ignore what's not relevant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Composition&lt;/em&gt; - let me reuse components that have already been built in new combinations&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Polymorphism&lt;/em&gt; - let me ask for a service without worrying about how different objects might provide it in different ways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Inheritance&lt;/em&gt; - let me reuse an interface or an implementation, providing only the pieces that are different from what has gone before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Single Responsibility Principle&lt;/em&gt; - lets keep the purpose for each object clear and concise, so it's easy to reason about&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Liskov Substitution Prinicple&lt;/em&gt; - let's not lay traps for each other by introducing odd dependencies&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Open/Closed Principle&lt;/em&gt; - let's allow extension and modification in ways that don't require us to risk breaking existing code&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Dependency Injection&lt;/em&gt; - let's take composition to the next level and assemble the components together much later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Interface oriented development&lt;/em&gt; - let's take abstraction to the next level and only depend on the abstraction, never on a concrete implementation.&lt;/p&gt;&#xA;" OwnerUserId="4099" LastActivityDate="2010-11-02T06:38:37.350" CommentCount="6" />
  <row Id="16197" PostTypeId="2" ParentId="16175" CreationDate="2010-11-02T06:45:52.303" Score="0" ViewCount="" Body="&lt;p&gt;You can find many on www.fiverr.com and Some graphic designers who develop free wordpress templates&lt;/p&gt;&#xA;" LastActivityDate="2010-11-02T06:45:52.303" />
  <row Id="16198" PostTypeId="2" ParentId="16051" CreationDate="2010-11-02T06:49:11.800" Score="0" ViewCount="" Body="&lt;p&gt;learn from 4guysfromrolla &lt;a href=&quot;http://www.4guysfromrolla.com/articles/081110-1.aspx&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-11-02T06:49:11.800" />
  <row Id="16199" PostTypeId="2" ParentId="16179" CreationDate="2010-11-02T06:50:29.620" Score="0" ViewCount="" Body="&lt;p&gt;i think it's more of a solution to maintainability, because, as a programmer, you are supposed to put methods where you have the data, thus creating an object model of your application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;yes, it's also a solution to complexity by providing a model for you to &quot;see&quot; your code in a natural way, as objects that have properties and possible actions&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-11-02T06:50:29.620" />
  <row Id="16201" PostTypeId="2" ParentId="14298" CreationDate="2010-11-02T06:58:48.073" Score="0" ViewCount="" Body="&lt;p&gt;I dug out my copy and flipped through the pages. I would say &quot;No&quot;, in view of the notation used and the development of methodologies since then.&lt;/p&gt;&#xA;" OwnerUserId="6864" LastActivityDate="2010-11-02T06:58:48.073" CommentCount="2" />
  <row Id="16202" PostTypeId="2" ParentId="16165" CreationDate="2010-11-02T07:02:25.563" Score="2" ViewCount="" Body="&lt;p&gt;Laziness and profit motive. Java gets most people 80% of the way, with 20% of the effort. However, this often produces &quot;monkey see monkey do&quot; voodoo coders who don't have deep understanding of what is happening, and are unable to dig deeper than high-level tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Teaching C/C++ properly is difficult. Even when done well, quite a few won't fully understand low-level concepts like pointers (there are studies on this). Moreover, it does not seem immediately relevant in the job market.&lt;/p&gt;&#xA;" OwnerUserId="2193" LastActivityDate="2010-11-02T07:02:25.563" CommentCount="1" />
  <row Id="16204" PostTypeId="2" ParentId="16109" CreationDate="2010-11-02T07:16:31.093" Score="1" ViewCount="" Body="&lt;p&gt;Here is my take as a non-professional programmer as I wonder how it would apply in this situation. I've had this question asked to me hundreds of times for my current career. FullDisclosure: I'm a full-time firefighter for a large metropolitan fire department. Skip to the bottom for the bottom line. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you may or may not know, competition to get hired as a FF is super fierce. My testing location was the main convention center of our city and we had three days of testing with over 4000 applicants. A cutoff score determines that approx. 1000 people are subject to a formal interview. If you make it through that, you have a physical ability test where approx. 400 ppl are run through a testing course. Then you have the final interview where 150 - 300 ppl are formally interviewed a second time. After that you are either selected or not for another 6 to 10 months of Fire Academy training.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you can imagine, this is a very stressful situation if you really want the job. Most advice to ppl that want to be a FF, is you need to &quot;go above and beyond&quot; to prove you want to be there. You must also speak to these things during the interview without sounding like a butthead. I hesitate to use the word passionate, but you need to do way more than the other person interviewing if you really want the job. Your attitude and ability to be a team player is judged from this. I.e. Volunteer, take a bunch of fire service related courses, better your community without prompting, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wonder if this is the same with interviewing for a programming job. Lets assume we all have the same basic skills and/or experience. In order to make yourself stand out do you need to go above and beyond? I.e. Volunteer to teach kids how to program. Be a member of this or that club/association and participate/Volunteer at said events. Take up a few languages and have a few pet projects for the interviewer to look at. Network like crazy and engage the community you want to be part of?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me its always been pretty simple; Don't worry about stuff you can't control. For items you can control do everything in your power to better those items with integrity, honor, drive and a great attitude. Good things will eventually come your way. &lt;/p&gt;&#xA;" OwnerUserId="6783" LastActivityDate="2010-11-02T07:16:31.093" />
  <row Id="16205" PostTypeId="2" ParentId="15397" CreationDate="2010-11-02T08:31:01.347" Score="5" ViewCount="" Body="&lt;p&gt;I don't necessarily know that there's anything wrong with this, but I wouldn't advise it for the sake of your career.  There are a couple of problems I can think of:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Python is hot now, but will it be in say 5-10 years?  I don't know about you, but I don't desire to become the future equivalent of a COBOL mainframe programmer.&lt;/li&gt;&#xA;&lt;li&gt;Python won't be fast enough for every task.  You can do a lot with it, but there &lt;em&gt;are&lt;/em&gt; tasks out there that Python by itself isn't fast enough for.  In these cases, you'll either need to know C (if there's one specific piece of the code that's going to run slow) or a JVM language (if you need the whole thing to be fast or are concerned with security).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I'm not OK with learning new programming languages if they don't teach me new concepts of programming and problem solving&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I personally didn't see many advantages to trying Greek food until I did.  Once I did try it, I was regretful that I put it off for so long.  Of course, foods aren't programming languages, but the analogy actually isn't that far off.  Oftentimes, the only way to see the advantages of learning a new language is to try it out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Paul Graham called it the &lt;a href=&quot;http://www.paulgraham.com/avg.html&quot; rel=&quot;nofollow&quot;&gt;&quot;Blub paradox&quot;&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Programmers get very attached to their favorite languages, and I don't want to hurt anyone's feelings, so to explain this point I'm going to use a hypothetical language called Blub. Blub falls right in the middle of the abstractness continuum. It is not the most powerful language, but it is more powerful than Cobol or machine language.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;And in fact, our hypothetical Blub programmer wouldn't use either of them. Of course he wouldn't program in machine language. That's what compilers are for. And as for Cobol, he doesn't know how anyone can get anything done with it. It doesn't even have x (Blub feature of your choice).&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;As long as our hypothetical Blub programmer is looking down the power continuum, he knows he's looking down. Languages less powerful than Blub are obviously less powerful, because they're missing some feature he's used to. But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn't realize he's looking up. What he sees are merely weird languages. He probably considers them about equivalent in power to Blub, but with all this other hairy stuff thrown in as well. Blub is good enough for him, because he thinks in Blub.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;When we switch to the point of view of a programmer using any of the languages higher up the power continuum, however, we find that he in turn looks down upon Blub. How can you get anything done in Blub? It doesn't even have y.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;By induction, the only programmers in a position to see all the differences in power between the various languages are those who understand the most powerful one. (This is probably what Eric Raymond meant about Lisp making you a better programmer.) You can't trust the opinions of the others, because of the Blub paradox: they're satisfied with whatever language they happen to use, because it dictates the way they think about programs.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you get the opportunity, I recommend reading the entire article.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And lastly, I can see your point in terms of wanting to specialize.  But I don't think that's what you're trying to do.  By definition, doing &quot;almost any programming task&quot; isn't what I would consider specialization.  It sounds like you're using Python to generalize.  If you're looking to specialize, I'd recommend going into a specific field of programming like Machine Learning or Data Warehousing or Integration.  But a programming language by itself isn't much of a specialization.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-02T08:31:01.347" />
  <row Id="16206" PostTypeId="2" ParentId="16142" CreationDate="2010-11-02T08:39:46.343" Score="2" ViewCount="" Body="&lt;p&gt;It really depends what you need in a IDE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my own experience, nothing comes close to the super light and feature-full Notepad++, even though it bills itself as a notepad replacement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need the project setup or plugins that Eclipse based editors offer (such as eGIT) than Aptana (v2) and &lt;a href=&quot;http://www.eclipse.org/pdt/&quot; rel=&quot;nofollow&quot;&gt;PDT&lt;/a&gt; are the best bets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Komodo has been steadily improving, and has the advantage of being available cross platform (as is Eclipse).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But almost every feature I've needed, and lots more that came as pleasant surprises, are available on, and only on, Notepad++.&lt;/p&gt;&#xA;" OwnerUserId="6879" LastActivityDate="2010-11-02T08:39:46.343" CommentCount="2" />
  <row Id="16207" PostTypeId="2" ParentId="16165" CreationDate="2010-11-02T08:42:03.920" Score="2" ViewCount="" Body="&lt;p&gt;As always it is a question of &lt;em&gt;what&lt;/em&gt; you want to teach and how much time you have to do it in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing things in Java means that you don't have to deal with stray pointers and free/malloc.  That means quite fewer hard-to-find bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This doesn't mean that  you shouldn't learn about the underlying machine - which you must to be good at the trade - but that perhaps you should choose the right tool for the job.  High-level algorithms are perhaps not the best topic for the assembler course.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-02T08:42:03.920" CommentCount="2" />
  <row Id="16208" PostTypeId="2" ParentId="16109" CreationDate="2010-11-02T08:46:45.267" Score="0" ViewCount="" Body="&lt;p&gt;Personally, I'd just choose the degree that interests you the most.  I don't have a degree and I consider myself to be a good programmer.  That's not to say that you shouldn't.  I'm a bit of an edge case:  school just isn't my thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My point is that I wouldn't worry about it too much.  In the grand scheme of things, your degree &lt;em&gt;might&lt;/em&gt; make a difference when you get your first job.  Beyond that, most people simply don't care.  The ultimate question they have to answer is &quot;Can this person get the job done?&quot; not &quot;Did this person get a good enough degree?&quot;.  Remember, you're going to be spending &lt;em&gt;at least&lt;/em&gt; 4 years of your life on this.  Your first priority should be to make sure that you can make it through those 4 years.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-02T08:46:45.267" />
  <row Id="16209" PostTypeId="2" ParentId="16179" CreationDate="2010-11-02T08:58:37.160" Score="5" ViewCount="" Body="&lt;p&gt;I think the current mainstream definition of OOP is not a good solution for managing complexity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you go back to its roots, I believe Alan Kay was influenced by &quot;lisp&quot; a great deal. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because Lisp hasn't been corrupted by mainstream adoption, it probably managed to conserve its core values. So I think looking at how lisp tackles this problem of complexity might gives us some insight, and we can use it as a basis to sort of judge how useful is OOP at dealing with complexity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you look at the end of the &quot;Lecture 3a: Henderson Escher Example&quot; of &lt;a href=&quot;http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/&quot; rel=&quot;nofollow&quot;&gt;SICP&lt;/a&gt;, Hal Abelson proposes that complexity is managed not by breaking the task into smaller subtasks, but by creating layers of abstraction. At the highest level, you express the solution to the complicated problem in terms of the the solution to the lower level of abstraction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think OOP was originally intended as a mechanism to create these layers of abstractions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately nowadays, OOP is (ab)used to write spaghetti code/structures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will make up an example: an FPS multi-player game.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the highest level, the game works by having a bunch of players running around a map and shooting at each other using weapons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the next lower level, we have to talk about maps and weapons and players. Perhaps we can talk about them as physical objects that interact within the world of the game.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the next lower level, we can talk about how objects interact physically (movement, collisions, etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And so on and so forth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What this means, (and I'm sort of quoting from SICP..), is that at each layer, we not only solve a particular specific problem, but a class of problems that sort of fall in the neighborhood of the problem we're trying to solve. So if there's a small change in the problem's description, it would likely require only a small change in the solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, the wise way to use OOP is to create layers of abstractions, at each level of abstraction, you solve the problem at hand using the &quot;objects&quot; from the level that's directly below.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's the bit I was quoting from the lecture: &lt;a href=&quot;http://www.youtube.com/watch?v=CYtrfncMqHQ&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=CYtrfncMqHQ&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1747" LastEditorUserId="1747" LastEditorDisplayName="" LastEditDate="2010-11-03T16:34:19.927" LastActivityDate="2010-11-03T16:34:19.927" CommentCount="2" />
  <row Id="16210" PostTypeId="2" ParentId="16142" CreationDate="2010-11-02T09:14:49.643" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.jetbrains.com/phpstorm/&quot; rel=&quot;nofollow&quot;&gt;http://www.jetbrains.com/phpstorm/&lt;/a&gt; I have been using webstorm, which is I assume very similar. It offers so much more than notepad++, I have never understood why people say its so great.  Anyway, webstorm offers intellitext, refactoring, code inspection for javascript and all the usual gubbins.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-11-02T09:14:49.643" CommentCount="1" />
  <row Id="16211" PostTypeId="1" AcceptedAnswerId="16253" CreationDate="2010-11-02T09:24:23.700" Score="3" ViewCount="437" Body="&lt;p&gt;I often struggle to see the advantages of pointers (except for low level programming).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why use of char* instead of a String or char[] or what advantages pointer arithmetic brings. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what are the pros and use cases of pointers?&lt;/p&gt;&#xA;" OwnerUserId="6885" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:13:00.347" LastActivityDate="2010-11-16T15:13:00.347" Title="What are use cases and advantages of pointers?" Tags="&lt;pointers&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="3" />
  <row Id="16212" PostTypeId="2" ParentId="16189" CreationDate="2010-11-02T09:25:20.763" Score="2" ViewCount="" Body="&lt;p&gt;A feature that hasn't been mentioned yet by any of the other answers: &lt;strong&gt;domain modeling&lt;/strong&gt;. Because people tend to think about doing things with or to objects, and about objects having intrinsic properties, it's very easy to model a problem or workflow using object-oriented software. Essentially, it allows us to use our existing ability to deal with nouns, verbs and adjectives in code.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-11-02T09:25:20.763" />
  <row Id="16213" PostTypeId="2" ParentId="16211" CreationDate="2010-11-02T09:30:57.797" Score="7" ViewCount="" Body="&lt;p&gt;Complex data structures. You can't build something like a linked list or a binary tree without pointers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are no &quot;pros&quot; and &quot;cons&quot; of pointers. They are just a tool, like a hammer. &lt;/p&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-11-02T09:30:57.797" CommentCount="9" />
  <row Id="16214" PostTypeId="1" CreationDate="2010-11-02T09:48:09.797" Score="0" ViewCount="55" Body="&lt;p&gt;Is is there some way to put a publish between clients in the network in Progress 4GL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An (ugly) way would be to &quot;publish&quot; (write) to the db and let all clients poll the db - but of course I would like to avoid that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am using in Progress OpenEdge Release 10.0B02. &lt;/p&gt;&#xA;" OwnerUserId="6884" LastActivityDate="2010-11-02T09:48:09.797" ClosedDate="2010-11-02T22:18:32.540" Title="Publish-subscribe over clients in Progress 4GL" Tags="&lt;communication&gt;" CommentCount="4" />
  <row Id="16215" PostTypeId="2" ParentId="16189" CreationDate="2010-11-02T09:56:52.090" Score="3" ViewCount="" Body="&lt;h2&gt;Abstraction&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Providing the necessary services hiding the unnecessary things. See my explanation here-&#xA;&lt;a href=&quot;http://programmers.stackexchange.com/questions/16070/just-what-is-abstraction/16080#16080&quot;&gt;http://programmers.stackexchange.com/questions/16070/just-what-is-abstraction/16080#16080&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="963" LastEditorDisplayName="" LastEditDate="2010-11-02T12:37:05.477" LastActivityDate="2010-11-02T12:37:05.477" CommentCount="2" />
  <row Id="16216" PostTypeId="2" ParentId="16159" CreationDate="2010-11-02T09:57:00.420" Score="1" ViewCount="" Body="&lt;p&gt;If you want a number, 80% is often used.  In fact, where I work presently our continuous integration server (Hudson) displays a yellow light for any project on which the test coverage is below 80%.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The challenge here is that ensuring that a certain percentage of the lines are covered by tests is very different from ensuring that the code is tested in a way that leads to better maintainability.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For one thing, a code-coverage tool can be fooled by a test that exercises the code and ends with &lt;code&gt;Assert.assertTrue(true)&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The less malicious concern is that a programmer that doesn't know how to write good tests will not write tests at the appropriate level of granularity, which can lead to a situation where future changes require major changes in the tests, and the tests become a burden to refactoring, rather than a help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if I wanted to give a number, I'd use 80%.  But this number is only useful when dealing with an honest developer that knows how to write good tests.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-11-02T09:57:00.420" CommentCount="3" />
  <row Id="16217" PostTypeId="2" ParentId="16211" CreationDate="2010-11-02T10:05:47.460" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;With pointers you can allocate and deallocate memory in runtime.&lt;/li&gt;&#xA;&lt;li&gt;And you can use large data-structures outside it's allowed scope without being copied.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;References in C++, Java and other same type of languages are just 'safe pointers'. And these references are used a lot in Java.&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-11-02T10:05:47.460" CommentCount="2" />
  <row Id="16218" PostTypeId="2" ParentId="16211" CreationDate="2010-11-02T10:13:01.037" Score="1" ViewCount="" Body="&lt;p&gt;Pretty much any computer program needs to inspect and change values in memory (known as peeking and pokeing, to those of us who are old enough). You need to control where in memory those values are, so that the outcome is predictable (and in certain cases, the order is important: loading executable code is one example). Therefore you need to have a data type that represents a location in memory. Even if your programming environment hides that under an abstraction, it's still there.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-11-02T10:13:01.037" CommentCount="1" />
  <row Id="16219" PostTypeId="2" ParentId="13396" CreationDate="2010-11-02T11:23:36.497" Score="0" ViewCount="" Body="&lt;p&gt;Used to use XPlanner, but it doesn't seem to be being maintained for several years. We now use a tool called &lt;a href=&quot;http://www.versionone.com/&quot; rel=&quot;nofollow&quot;&gt;&quot;VersionOne&quot;&lt;/a&gt;. Its OK. The things it does not do very well are: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;reporting - to get its limited statistics to work properly you seem to have to fill everything in at exactly the right time&lt;/li&gt;&#xA;&lt;li&gt;adding custom fields,  - it actually handles the fields quite nicely, but the process for adding them is convoluted&lt;/li&gt;&#xA;&lt;li&gt;UI niggles - its main UI is a web UI, its AJAX in places but there are 5 different ways of doing anything and none of them is quite what you intuitively wanted. &lt;/li&gt;&#xA;&lt;li&gt;Search - its search implementation is terrible. For instance, you can sometimes paste the exact title of a story into the search box and it doesn't find the story.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It does have a pretty good API accessible over HTTP though, so we have ended up creating a custom desktop app interface to display the stories/tasks/management-information in a more concise and useful way! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We couldn't find anything better for us at the time we decided to use it. It has a lot of features, but I leaves me feeling its UI could be much organised and implemented (and save a lot of frustration).&lt;/p&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-11-02T11:23:36.497" />
  <row Id="16220" PostTypeId="2" ParentId="15397" CreationDate="2010-11-02T11:32:23.427" Score="1" ViewCount="" Body="&lt;p&gt;By the time you've mastered Python, you will know if you can do everything in it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The answer will come to you naturally.&lt;/p&gt;&#xA;" OwnerUserId="1724" LastActivityDate="2010-11-02T11:32:23.427" />
  <row Id="16221" PostTypeId="2" ParentId="16165" CreationDate="2010-11-02T11:54:41.653" Score="2" ViewCount="" Body="&lt;p&gt;I think Joel said it best here - &lt;a href=&quot;http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1789" LastActivityDate="2010-11-02T11:54:41.653" CommentCount="1" />
  <row Id="16222" PostTypeId="1" CreationDate="2010-11-02T12:13:21.507" Score="20" ViewCount="741" Body="&lt;p&gt;Has anybody got a good strategy for remaining calm in any work situation. When the customer wants it all now and is threatening to cancel the project. When good software engineering and coding practices are being ignored. You get the idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you do to remain calm?&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-12T20:02:54.163" ClosedDate="2010-11-02T22:23:35.313" Title="How to remain calm in all situations?" Tags="&lt;career&gt;&lt;self-improvement&gt;" AnswerCount="14" CommentCount="10" FavoriteCount="4" />
  <row Id="16223" PostTypeId="2" ParentId="16222" CreationDate="2010-11-02T12:25:43.207" Score="5" ViewCount="" Body="&lt;p&gt;Yoga - keep your sense of humor.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-11-02T12:25:43.207" CommentCount="1" />
  <row Id="16224" PostTypeId="2" ParentId="16159" CreationDate="2010-11-02T12:26:01.653" Score="1" ViewCount="" Body="&lt;p&gt;When subcontracting out, it is up to you to ensure the code being written at least &lt;em&gt;works&lt;/em&gt; the way you need it to.  For that reason, your team will need to write some automated acceptance tests.  Provide those tests to your subcontractor, so they can make sure their code works with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anytime you require percentage coverage in your unit tests, it is up to you to provide the tool which will be measuring the code coverage.  I don't know the environment you are running (.Net, Java, Ruby, etc.), but there are usually more than one tool available to measure coverage, and they are not all equal.  You also need to specify, or at least agree to the parameters used (i.e. coverage exclusions, type of coverage, etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would be unfair and unproductive to require testing of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Generated classes/methods (some ORM tools generate classes, .Net UI components generate classes and methods, etc.)&lt;/li&gt;&#xA;&lt;li&gt;System level exception catching code.  The code may be required by the language, and good practice, but if testing it requires hacking the platform itself, it's not worth the investment.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Don't require more of your subcontractors than you would of your own team.  If you are going to require a certain percentage of unit tests as an acceptance criteria, provide a range like 70-80%.  If they beat it, great.  I would consider 50% coverage an absolute minimum, with 70% a decent requirement.  Anything above 70% may cost more, but you'll have better piece of mind about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just a note about metrics like test coverage.  They are just numbers, and anyone can play with numbers.  I think your intent is a good one, but anyone who wants to game the system can.  The coverage number is a rough indication of the &lt;em&gt;thoroughness&lt;/em&gt; of the testing, but not the &lt;em&gt;quality&lt;/em&gt; of the testing.  In my experience, many programmers who are not used to writing unit tests tend to write integration tests, and merely run the application through the test framework without any assertions whatsoever.  Essentially they are just providing themselves a launching point to step through with a debugger.  It takes time and training to get unit tests that are useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would require an early initial delivery simply to evaluate the effectiveness of their unit testing, and to help fine tune both your expectations and theirs.  That will help both of you to get on the same page, and make future deliveries better.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-11-02T12:26:01.653" />
  <row Id="16225" PostTypeId="2" ParentId="16159" CreationDate="2010-11-02T12:26:13.860" Score="0" ViewCount="" Body="&lt;p&gt;Testivus on Test Coverage -- From the Google Testing Blog:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Early one morning, a young programmer asked the great master:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“I am ready to write some unit tests. What code coverage should I aim for?”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The great master replied:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Don’t worry about coverage, just write some good tests.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The young programmer smiled, bowed, and left.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Later that day, a second programmer asked the same question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The great master pointed at a pot of boiling water and said:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“How many grains of rice should put in that pot?”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The programmer, looking puzzled, replied:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“How can I possibly tell you? It depends on how many people you need to feed, how hungry they are, what other food you are serving, how much rice you have available, and so on.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Exactly,” said the great master.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second programmer smiled, bowed, and left.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Toward the end of the day, a third programmer came and asked the same question about code coverage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Eighty percent and no less!” Replied the master in a stern voice, pounding his fist on the table.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The third programmer smiled, bowed, and left.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After this last reply, a young apprentice approached the great master:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Great master, today I overheard you answer the same question about code coverage with three different answers. Why?”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The great master stood up from his chair:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Come get some fresh tea with me and let’s talk about it.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After they filled their cups with smoking hot green tea, the great master began:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“The first programmer is new and just getting started with testing. Right now he has a lot of code and no tests. He has a long way to go; focusing on code coverage at this time would be depressing and quite useless. He’s better off just getting used to writing and running some tests. He can worry about coverage later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second programmer, on the other hand, is quite experience both at programming and testing. When I replied by asking her how many grains of rice I should put in a pot, I helped her realize that the amount of testing necessary depends on a number of factors, and she knows those factors better than I do – it’s her code after all. There is no single, simple, answer, and she’s smart enough to handle the truth and work with that.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“I see,” said the young apprentice, “but if there is no single simple answer, then why did you tell the third programmer ‘Eighty percent and no less’?”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The great master laughed so hard and loud that his belly, evidence that he drank more than just green tea, flopped up and down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“The third programmer wants only simple answers – even when there are no simple answers … and then does not follow them anyway.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The young apprentice and the grizzled great master finished drinking their tea in contemplative silence.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-11-02T12:26:13.860" />
  <row Id="16226" PostTypeId="1" CreationDate="2010-11-02T12:28:01.220" Score="5" ViewCount="138" Body="&lt;p&gt;I have a colleague who has basic* programming skills and who wants to get a working knowledge of object-oriented programming concepts, with particular emphasis on C# (to 3.0  at least). He's generally computer-literate and has a science background (Masters in Engineering, IIRC).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What book would be most appropriate for him?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or is there some other resource that would be better?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd expect that he'd need to get reasonable explanations of concepts such as encapsulation, inheritance/composition/interfaces, polymorphism/overriding/overloading and some idea of what makes a &quot;good&quot; (for some - hopefully objective - value of &quot;good&quot;) design. SOLID?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;* &lt;em&gt;(literally: he's fairly adept with Excel VBA macros)&lt;/em&gt; &lt;/p&gt;&#xA;" OwnerUserId="4911" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2011-04-26T15:04:21.137" LastActivityDate="2011-04-26T15:04:21.137" Title="Suggest an Introductory OO Text for a (smart) non-programmer?" Tags="&lt;learning&gt;&lt;books&gt;&lt;object-oriented&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="1" />
  <row Id="16227" PostTypeId="2" ParentId="16222" CreationDate="2010-11-02T12:29:02.353" Score="0" ViewCount="" Body="&lt;p&gt;I think - It depends on communication relationship you have with a customer, maybe if you could try to talk with him using different approach and thoughtfully explain that fast pace coding when good practice are being ignored - will increase bugs amount...&#xA;But if this customer is still being stubborn after all arguments and forcing you with whip (and project cancel is a big whip) so you could just force yourself to code it bad way(yes I know its awful... ) or just leave that project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. For me physical exercise bring the calm state to my mind (15 minutes of spinning powerball hard is great for calming myself)&lt;/p&gt;&#xA;" OwnerUserId="4164" LastActivityDate="2010-11-02T12:29:02.353" />
  <row Id="16228" PostTypeId="2" ParentId="16222" CreationDate="2010-11-02T12:31:11.290" Score="16" ViewCount="" Body="&lt;p&gt;Realise that ultimately, unless you are writing software that controls aeroplanes or nuclear reactors, that it doesn't matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as you've kept the customer informed on progress and slippages, most of the time they've invested too much time and money to cancel the project at a late stage. Even if they do, there'll be another project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately you can always walk away and find another position - it might be hard in some circumstances, but writing software is just a job. Don't let it take over your life.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-11-02T12:31:11.290" />
  <row Id="16229" PostTypeId="2" ParentId="16222" CreationDate="2010-11-02T12:31:16.737" Score="25" ViewCount="" Body="&lt;p&gt;My technique is simple. When I face someone rude, agressive or angry, I ask to myself:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Why this person is like that?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And sometimes I ask myself:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Did it happen to me in the past? (being rude, agressive or angry)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In most case, you answer &lt;strong&gt;yes&lt;/strong&gt; at the second question, and that makes you answer yourself the first question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most people just can't handle their emotions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to think:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Maybe this person lost his children recently&lt;/li&gt;&#xA;&lt;li&gt;Maybe she is abused by her husband&lt;/li&gt;&#xA;&lt;li&gt;Maybe he has cancer&lt;/li&gt;&#xA;&lt;li&gt;etc...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The truth is that you don't know! &lt;strong&gt;I can assure you that happy people without problems are never rude, agressive or angry&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Understanding that will makes you a lot more patient with others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you remain calm, the people on the phone will automatically calm down too!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Albert Ellis a cognitive therapist introduced the &lt;a href=&quot;http://hubpages.com/hub/The-Ellis-ABC-Model&quot; rel=&quot;nofollow&quot;&gt;ABC Model&lt;/a&gt; to understand how people handle their emotions. There is the &quot;activating&quot; event, the &quot;beliefs&quot; of the person, and the &quot;consequent&quot; emotion. Check this out.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-02T15:02:08.287" LastActivityDate="2010-11-02T15:02:08.287" CommentCount="4" />
  <row Id="16230" PostTypeId="2" ParentId="16222" CreationDate="2010-11-02T12:32:45.753" Score="1" ViewCount="" Body="&lt;p&gt;Hmm, this should be the exact reason why each company has layers of people effectively doing nothing, all being paid from the work of those developers down there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it only works one way, and doesn't act as a living firewall, then you should ditch the job.&lt;/p&gt;&#xA;" OwnerUserId="4387" LastActivityDate="2010-11-02T12:32:45.753" />
  <row Id="16231" PostTypeId="2" ParentId="16222" CreationDate="2010-11-02T12:33:01.070" Score="3" ViewCount="" Body="&lt;p&gt;I find it helps to have catchphrases with which you can remind yourself of your overall priorities. I can usually get my mood where it needs to be with things like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;some clients really need consultants&lt;/li&gt;&#xA;&lt;li&gt;sure, it's hard, that's why they've asked us to do it&lt;/li&gt;&#xA;&lt;li&gt;of course there are no samples yet, we're writing the samples&lt;/li&gt;&#xA;&lt;li&gt;it's not our fault, but it is our problem&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Your phrases will doubtless be different. But if you know what matters to you and can encapsulate it in a short sentence, it will help keep you focused and aligned. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first one is very important to me. I learned it from a Girl Scout leader - apparently they used to say &quot;some girls really need Scouting&quot; in reference to unpleasant badly behaved children. The first impulse was to throw them out of the program, but the sentence helped to remind them the purpose of the program and gain a little more patience. It's true for us too. If all our clients knew just what they wanted we would only be typists. They change their mind, ask for contradictory things, and misunderstand the basic facts of our business. That's why they need us. That's what we're here to help with.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-02T12:33:01.070" CommentCount="2" />
  <row Id="16232" PostTypeId="2" ParentId="16222" CreationDate="2010-11-02T12:34:20.420" Score="3" ViewCount="" Body="&lt;p&gt;You can become calm by changing the situation :-).  A key point here is to manage a customer's expectations and &lt;em&gt;communicate&lt;/em&gt;.  90% of angry customers I've dealt with have responded really to simply being told what's going on.  They don't care that the problem hasn't been solved yet anywhere near as much as they care about being kept in the dark.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad coding practices etc?  Sit everyone down for 1 hour in a non-work environment and say &quot;Hey for all of our sanity, we need to get back to basics&quot;.  Get a round table discussion on some minimum things your team is going to do to ensure some quality.  Bring up the old adage of a bug fixed now costs 10x less than a bug fix later.  Start with a small BDD/TDD driven piece of work that you can then show to the client (progress!!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make your managers/client/team aware that the process is failing but also suggest what you want to do to improve it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS:  Physical exercise or meditation is a great stress relief, remember it's probably not life or death project that you're working on.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-02T12:34:20.420" />
  <row Id="16233" PostTypeId="2" ParentId="16211" CreationDate="2010-11-02T12:39:39.770" Score="2" ViewCount="" Body="&lt;p&gt;&lt;code&gt;char*&lt;/code&gt; is a crummy example of pointers. You are probably better off using &lt;code&gt;std::string&lt;/code&gt; (or some better type that handles your unicode/ansi/multibyte specialness) than &lt;code&gt;char*&lt;/code&gt;. For almost any other example of pointers (&lt;code&gt;Employee*&lt;/code&gt;, &lt;code&gt;PurchaseOrder*&lt;/code&gt;, ...), however, there are many advantages:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;scope larger than a single function - allocate the object on the heap and pass the pointer around for a long time&lt;/li&gt;&#xA;&lt;li&gt;quicker function calls for large objects since you don't have the copy cost of pass-by-value&lt;/li&gt;&#xA;&lt;li&gt;one way to enable a function to change the parameters passed to it&lt;/li&gt;&#xA;&lt;li&gt;save space and time in collections copying only an address instead of an entire object&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In fact, pointers are so important that most languages that appear not to have them actually have only them. Reference types in C# and Java are essentially pointers disguised as solid objects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, pointer manipulation (&lt;code&gt;p++&lt;/code&gt; on a pointer, or &lt;code&gt;p += delta&lt;/code&gt;) is a whole 'nother story. Some people think it's dangerous, some people think it's great. But that's even further from your question.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-02T12:39:39.770" />
  <row Id="16234" PostTypeId="2" ParentId="16211" CreationDate="2010-11-02T12:42:44.993" Score="0" ViewCount="" Body="&lt;p&gt;The best answer is actually included in the question: pointers are for low-level programming. Granted, if you're using C, not using pointers is like programming with one hand tied behind your back, but the answer to that is to use a higher-level language instead.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-02T12:42:44.993" />
  <row Id="16235" PostTypeId="2" ParentId="2715" CreationDate="2010-11-02T12:43:25.587" Score="1" ViewCount="" Body="&lt;p&gt;The position of curly braces should be&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;meta data&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;configurable in the IDE by the programmer. That way, those pesky braces in all code, regardless of author, look the same.&lt;/p&gt;&#xA;" OwnerUserId="5376" LastActivityDate="2010-11-02T12:43:25.587" CommunityOwnedDate="2010-11-02T20:52:36.780" />
  <row Id="16236" PostTypeId="1" CreationDate="2010-11-02T12:54:05.447" Score="1" ViewCount="213" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/12794/can-design-patterns-be-applied-outside-the-realm-of-programming&quot;&gt;Can design patterns be applied outside the realm of programming?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Hello...Are there any Non-Computer Science Examples of Design Patterns that we can use to teach people who come from a Non-CS background into programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance let me take the &lt;strong&gt;SINGLETON&lt;/strong&gt; pattern, the &lt;a href=&quot;http://en.wikipedia.org/wiki/POTUS&quot; rel=&quot;nofollow&quot;&gt;POTUS&lt;/a&gt; class, there should be only one instance of it and any number of times you call the Constructor, it should refer to the same instance. Something along those lines. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: For the movie inclined (like me), you can call it as &lt;a href=&quot;http://en.wikipedia.org/wiki/Man_With_No_Name&quot; rel=&quot;nofollow&quot;&gt;Man With No Name&lt;/a&gt; class. &lt;/p&gt;&#xA;" OwnerUserId="5070" LastEditorUserId="5070" LastEditorDisplayName="" LastEditDate="2010-11-02T13:43:17.217" LastActivityDate="2010-11-02T13:45:52.553" ClosedDate="2010-11-02T22:20:50.183" Title="Non Computer Science Examples of Design Patterns" Tags="&lt;computer-science&gt;&lt;design-patterns&gt;&lt;teaching&gt;" AnswerCount="3" CommentCount="7" FavoriteCount="1" />
  <row Id="16237" PostTypeId="2" ParentId="16222" CreationDate="2010-11-02T12:56:40.093" Score="6" ViewCount="" Body="&lt;ol&gt;&lt;li&gt;Remember that it's not personal; people just want their stuff done.&lt;/li&gt;&#xA;&lt;li&gt;Do one thing at a time. Just get something done, then go to the next task.&lt;/li&gt;&#xA;&lt;li&gt;Take a break and clear your head, get something to eat, whatever. Having a better state of mind will allow you to address the problem more efficiently.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-02T12:56:40.093" />
  <row Id="16238" PostTypeId="2" ParentId="16222" CreationDate="2010-11-02T13:01:30.693" Score="4" ViewCount="" Body="&lt;p&gt;Sometimes it's better NOT to remain calm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you understand that, you can work to recognize the difference, and to remain calm in situations that aren't &quot;worth it&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This might sound like it's some sort of Vulcan mental judo (&quot;okay, so I'll get mad &lt;em&gt;now&lt;/em&gt; for maximal effect!&quot;) but it's really more a matter of perspective aiding you in not getting overwrought.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-11-02T13:01:30.693" />
  <row Id="16239" PostTypeId="1" AcceptedAnswerId="16245" CreationDate="2010-11-02T13:13:59.493" Score="3" ViewCount="79" Body="&lt;p&gt;The OneNote developer center is not useful and neither is Google.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That might mean that there is no such thing available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="685" LastActivityDate="2010-12-16T02:30:50.193" Title="Is there an online resource or book that teaches how to programme OneNote?" Tags="&lt;applications&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="16240" PostTypeId="2" ParentId="16236" CreationDate="2010-11-02T13:19:01.203" Score="8" ViewCount="" Body="&lt;p&gt;A (if not &quot;the&quot;) key part of design patterns is that everyone should know what you're talking about. Adding new names for the various patterns goes against this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you go to a random developer and refer to the POTUS pattern there's no chance they'll have a clue what you're talking about. If you go to someone introduced to the POTUS they won't know what you're talking about when you mention Singleton.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Better not to dumb down technical terms, even if it's just temporarily as a way to make the terminology less intimidating.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-02T13:19:01.203" />
  <row Id="16241" PostTypeId="2" ParentId="16236" CreationDate="2010-11-02T13:20:07.580" Score="2" ViewCount="" Body="&lt;p&gt;A &lt;a href=&quot;http://en.wikipedia.org/wiki/Truss&quot; rel=&quot;nofollow&quot;&gt;truss&lt;/a&gt; is a common design pattern because it supports a large amount of weight for it's weight.&lt;/p&gt;&#xA;" OwnerUserId="886" LastActivityDate="2010-11-02T13:20:07.580" CommunityOwnedDate="2010-11-02T13:20:07.580" />
  <row Id="16242" PostTypeId="2" ParentId="16222" CreationDate="2010-11-02T13:21:00.690" Score="1" ViewCount="" Body="&lt;p&gt;Almost all of these things come down to expectations. If the expectation is set at the accurate level from the beginning, many awkward situations can be avoided.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, when things already are going overboard, the best thing is to &lt;strong&gt;try being the other party and think like it&lt;/strong&gt;. Why does that party think this and threaten to do that? How can the situation be resolved in the best possible way, and how can the situation be avoided next time?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simply put: &lt;strong&gt;throw away your pride and try to resolve the situation.&lt;/strong&gt; You'll gain most from it in the long term.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, the earlier you think as the other party (often a client), the better it'll work for you both in a project.&lt;/p&gt;&#xA;" OwnerUserId="4643" LastActivityDate="2010-11-02T13:21:00.690" />
  <row Id="16243" PostTypeId="1" AcceptedAnswerId="16274" CreationDate="2010-11-02T13:30:02.550" Score="11" ViewCount="727" Body="&lt;p&gt;Anyone who has used R# or CodeRush knows how fast you can put together simple constructs (and refactor complex ones) with a simple keyboard shortcut.  However, &lt;strong&gt;do these productivity plugins cause a false evaluation of ability during interviews?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Part of being a productive code writer (and making a good first impression in an interview) is writing good code - fast.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I had two candidates:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Doesn't use plugins.  She thinks about the problem, sits down at a stock IDE at the interview PC that looks exactly like hers and types out the code in a minute or two, as usual.  Done.  Pass.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Uses plugins.  He thinks about the problem, sits down at a stock IDE at the interview PC and realizes &quot;fe + tab&quot; no longer writes a foreach loop automatically, and all the shortcuts are gone.  He then bumbles around the keyboard hitting his normal hotkeys and popping up strange windows and getting flustered.  It takes him 3 minutes to write what normally would take 30 seconds.  Done.  Looked like they didn't know their way around the IDE at times.  Must be new to this IDE and thus not had much experience with it or maybe the language.  Pass, but a 'meh' mark beside their name.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In your experience, how do you handle plugins during interviews as the interviewer or interviewee?  What are the best practices to getting what the candidate really knows?  There can be candidates who don't understand code, and use R# as a crutch.  There can also be candidates who know the code in and out and use R# because it's just plain faster than the built in VS or Eclipse templates.  Is it best to just not use an IDE at all?  Let them bring their own PC?  Others?&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-11-02T13:35:58.257" LastActivityDate="2011-02-22T11:26:39.303" Title="ReSharper's effect on coding interviews." Tags="&lt;productivity&gt;&lt;ide&gt;&lt;interview&gt;&lt;interview-questions&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="4" />
  <row Id="16244" PostTypeId="2" ParentId="16243" CreationDate="2010-11-02T13:39:05.883" Score="10" ViewCount="" Body="&lt;p&gt;Let them (&lt;em&gt;candidates, that is&lt;/em&gt;) use whatever they want. The old, &lt;em&gt;build a Wal-Mart with a Swiss army knife just to show you can&lt;/em&gt; approach is so old. They are going to use whatever it takes in their daily work (well, I certanly hope so) so let them use whatever they want in an interview. The final result is all that matters. And I'll much more gladly hire a candidate who knows what tools are available on the market, and how to use them efficiently, then the one who does it all manually. This is a killer industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;p.s. As an example, think of Vim (or Emacs) - would you like to use it without any customized settings, plugins, etc.?&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-02T13:39:05.883" CommentCount="4" />
  <row Id="16245" PostTypeId="2" ParentId="16239" CreationDate="2010-11-02T13:43:26.410" Score="2" ViewCount="" Body="&lt;p&gt;Try the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ff700506.aspx&quot; rel=&quot;nofollow&quot;&gt;OneNote documentation&lt;/a&gt; and &lt;a href=&quot;http://msdn.microsoft.com/en-us/office/ee722026.aspx&quot; rel=&quot;nofollow&quot;&gt;these videos/slides in the documentation&lt;/a&gt;.  That's everything you need to start, and use &lt;a href=&quot;http://www.stackoverflow.com&quot;&gt;StackOverflow&lt;/a&gt; when you get stuck.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-11-02T15:09:24.470" LastActivityDate="2010-11-02T15:09:24.470" CommentCount="3" />
  <row Id="16246" PostTypeId="2" ParentId="16165" CreationDate="2010-11-02T13:44:52.030" Score="2" ViewCount="" Body="&lt;p&gt;Is it too much to ask that they be taught something about how computers really &lt;em&gt;work?&lt;/em&gt; It makes no sense to me that any CS course outline would not include something of operating systems and computer archetecture. I'm not saying you should be able to design a computer on the back of an envelope, but a general overview puts all languages into perpective. I mean, Java runs in a &lt;em&gt;virtual machine!&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-02T13:44:52.030" CommentCount="2" />
  <row Id="16247" PostTypeId="2" ParentId="16236" CreationDate="2010-11-02T13:45:52.553" Score="3" ViewCount="" Body="&lt;p&gt;Surely the Singleton pattern can be better explained by analogy with the Highlander pattern?&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-11-02T13:45:52.553" />
  <row Id="16248" PostTypeId="2" ParentId="16137" CreationDate="2010-11-02T13:59:11.860" Score="1" ViewCount="" Body="&lt;p&gt;If you are referring to LinFu - the library has an incredible amount of promise! I was very excited when I first read up on it, in particular its AOP parts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tried to mess about with it, but I couldn't get the latest version to work. I couldnt find any documentation beyond the CodeProject tutorials - which were out of date. Then, being a lazy programmer myself - I gave up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every so often I do a search on Linfu to see if there have been any updates - and if there is any new documentation about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To attract the average programmer like myself, it needs to be easy to start using the library. This means it has to work and it has to be simple to start - either through documentation, or through simplicity of design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may want to consider setting up a homepage to act as a centralised place where the documentation, future plans, feature requests can go. This would help give me faith that the library is an active one this isn't going to go away and I can take seriously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Funky graphics do help here too! The main reason I use Ninject is because I like the ninjas they have on their site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Linfu has a lot of potential and could easily turn you into a .net God with just a bit of extra icing on top.&lt;/p&gt;&#xA;" OwnerUserId="1724" LastActivityDate="2010-11-02T13:59:11.860" />
  <row Id="16249" PostTypeId="1" AcceptedAnswerId="16252" CreationDate="2010-11-02T14:01:42.857" Score="2" ViewCount="243" Body="&lt;p&gt;hello&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i am found of AI info and working, i want to know is there any other technique that is more useful for AI and machine learning than neural networks?&lt;/p&gt;&#xA;" OwnerUserId="6703" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-02-18T08:47:51.767" LastActivityDate="2011-02-18T08:47:51.767" Title="Are neural networks the best approach to artificial intelligence and machine learning?" Tags="&lt;neural-networks&gt;&lt;ai&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="1" />
  <row Id="16250" PostTypeId="2" ParentId="16226" CreationDate="2010-11-02T14:09:44.873" Score="0" ViewCount="" Body="&lt;p&gt;it is a good &lt;a href=&quot;http://www.c-sharpcorner.com/uploadfile/anandnarayanswamy/cstutorial1an11282005015140am/cstutorial1an.aspx&quot; rel=&quot;nofollow&quot;&gt;tutorial&lt;/a&gt; for beginners &lt;/p&gt;&#xA;&#xA;&lt;p&gt;all of these are help full&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.startvbdotnet.com/oop/default.aspx&quot; rel=&quot;nofollow&quot;&gt;http://www.startvbdotnet.com/oop/default.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.sitepoint.com/article/c-asp-net-developers/&quot; rel=&quot;nofollow&quot;&gt;http://www.sitepoint.com/article/c-asp-net-developers/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codersource.net/csharp_tutorial_oops.html&quot; rel=&quot;nofollow&quot;&gt;http://www.codersource.net/csharp_tutorial_oops.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.iaps.com/Object-Oriented-Programming-with-CSharp.html&quot; rel=&quot;nofollow&quot;&gt;http://www.iaps.com/Object-Oriented-Programming-with-CSharp.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6703" LastEditorUserId="6703" LastEditorDisplayName="" LastEditDate="2010-11-03T12:53:21.173" LastActivityDate="2010-11-03T12:53:21.173" CommentCount="2" />
  <row Id="16251" PostTypeId="2" ParentId="16249" CreationDate="2010-11-02T14:13:33.340" Score="1" ViewCount="" Body="&lt;p&gt;Artificial intelignce and machine learning are unsolved problems in computer science and so there is no real &quot;best approach&quot; yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No matter what specific techniuqe you use, success in these fields will require a strong understanding of algorithms, statistics and probability. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think its a good idea to limit yourself to neural networks or any other machine learning methodology. Instead, focus on understanding the problem of machine learning as a whole, why its so difficult and the differents approaches various people have taken. Specifically, you might be interested in:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Inductive_logic_programming&quot; rel=&quot;nofollow&quot;&gt;Inductive logic programming&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Support_vector_machines&quot; rel=&quot;nofollow&quot;&gt;Support vector machines&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Cluster_analysis&quot; rel=&quot;nofollow&quot;&gt;Cluster Analysis&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Bayesian_network&quot; rel=&quot;nofollow&quot;&gt;Bayesian Networks&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Lastly, if you intend to take this field of study seriously and you hope to make a contribution to it, you should focus on understanding when and &lt;em&gt;why&lt;/em&gt; neural networks, like all other algorithms that exist today &lt;em&gt;fail&lt;/em&gt; to provide compelling artificial intelligence. Perhaps you can think of something better...&lt;/p&gt;&#xA;" OwnerUserId="1444" LastEditorUserId="1444" LastEditorDisplayName="" LastEditDate="2010-11-02T14:38:45.853" LastActivityDate="2010-11-02T14:38:45.853" />
  <row Id="16252" PostTypeId="2" ParentId="16249" CreationDate="2010-11-02T14:24:11.373" Score="12" ViewCount="" Body="&lt;p&gt;This is somewhat akin to asking if a hammer is the best tool for building houses.  It's just one of many, and not all problems are well suited to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other interesting techniques include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Evolutionary_algorithm&quot; rel=&quot;nofollow&quot;&gt;Evolutionary Algorithms&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Genetic_algorithm&quot; rel=&quot;nofollow&quot;&gt;Genetic Algorithms&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Hill_climbing&quot; rel=&quot;nofollow&quot;&gt;Hill-Climbing&lt;/a&gt; + &lt;a href=&quot;http://en.wikipedia.org/wiki/Simulated_annealing&quot; rel=&quot;nofollow&quot;&gt;Simulated Annealing&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Expert_system&quot; rel=&quot;nofollow&quot;&gt;Expert Systems&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Fuzzy_logic&quot; rel=&quot;nofollow&quot;&gt;Fuzzy Logic&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Neural Networks are definitely pretty cool, but they are not &quot;the best approach&quot; for all problems, any more than any other technique is.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-11-02T14:24:11.373" CommentCount="1" />
  <row Id="16253" PostTypeId="2" ParentId="16211" CreationDate="2010-11-02T14:26:54.973" Score="3" ViewCount="" Body="&lt;p&gt;Pointers are necessary for dynamic memory location, many data structures, and efficient handling of large amounts of data.  Without pointers, you'd have to allocate all the program data globally or in functions or the equivalent, and you've have no recourse if the amount of data grew beyond what you'd originally allowed for.  I hesitate to use absolutes here, but as far as I know all modern computer languages have pointers in some form or other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In most languages that use pointers, there are certain sorts of references that are pointers, and perhaps certain sorts of references that aren't, and there is no further notational difference.  A Lisp &lt;code&gt;cons&lt;/code&gt; cell is a pair of pointers, although a &lt;code&gt;fixnum&lt;/code&gt; is not a pointer.  In Java, the variable used for the instance of a class is a pointer, but an &lt;code&gt;int&lt;/code&gt; isn't.  The language syntax doesn't reflect that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C is unusual in that pointers are optional, explicit, and allow explicit pointer arithmetic.  It is perfectly possible to write &lt;code&gt;struct foo bar; struct foo * baz;&lt;/code&gt;, and once you've allocated memory for &lt;code&gt;baz&lt;/code&gt; you can use both &lt;code&gt;bar&lt;/code&gt; and &lt;code&gt;baz&lt;/code&gt; to represent &lt;code&gt;struct foo&lt;/code&gt;s.  Since pointers are optional, it is useful to have notational differences.  (It's essential in C++ for smart pointers, as given &lt;code&gt;boost::shared_ptr&amp;lt;foo&amp;gt; bar;&lt;/code&gt;, &lt;code&gt;bar.reset()&lt;/code&gt; has one meaning and &lt;code&gt;bar-&amp;gt;reset()&lt;/code&gt; is likely to have a much different one.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Actually, explicit pointers were often used in other languages when C was originally being developed, such as &lt;code&gt;^&lt;/code&gt; in Pascal.  C is an older language than most in common use today, and it shows.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of C's design goals was to write Unix in, and therefore it needed to handle memory locations in a detailed manner.  (C is actually one of a family of system implementation languages common when it was being designed, another example being Cybol for Control Data computers.  C is the one that became a big hit.)  Therefore, it is possible to manipulate C pointers directly, assigning memory addresses and calculating new ones.  This also led to some design decisions in C.  C arrays are based heavily on pointer arithmetic, and indeed an array decays into a pointer in very many situations.  Passing variables to C functions by reference is done by pointer.  There was no strong need for arrays and passing variables by reference in the form that other contemporary languages had, so C didn't get those.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, the answer is that, in most languages nowadays, you use pointers constantly without being reminded of the fact.  In C, and to a lesser extent C++, you use pointers either to do low-level things, or as accomplish higher-level things that there's no special notation for.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-02T14:26:54.973" CommentCount="2" />
  <row Id="16254" PostTypeId="2" ParentId="16222" CreationDate="2010-11-02T14:36:00.503" Score="1" ViewCount="" Body="&lt;p&gt;Boy, great answers here! I can only contribute a couple stories from Dale Carnegie, from WW2.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some guy was being transported in a submarine. The sub was being depth-charged. Any moment could be his last, as the awful explosions were going off all around. He resolved that, if he lived, he would never again worry about the small stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another guy, an administrator, was in the Philippines, when the Japanese invaded. The hotshot colonel had killed a number of people for no reason and told the administrator he was going to get it too. The administrator figured, what's the worst that can happen? I get killed. He accepted that, ignored it, and went on with his work, under the glare. He wasn't, of course.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-11-12T20:02:54.163" LastActivityDate="2010-11-12T20:02:54.163" />
  <row Id="16255" PostTypeId="2" ParentId="16189" CreationDate="2010-11-02T14:39:54.793" Score="0" ViewCount="" Body="&lt;p&gt;It is somewhat successful because it encourages the use of the human mind's organization of things into objects.  People are generally good at seeing relationships of things - things like differences, similarities and behavior.  OO encourages developing software to mimic human conceptualization of the world.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Making software development similar to how we view the world makes it easier for our minds to handle the complexity.&lt;/p&gt;&#xA;" OwnerUserId="3439" LastActivityDate="2010-11-02T14:39:54.793" />
  <row Id="16256" PostTypeId="2" ParentId="16189" CreationDate="2010-11-02T14:40:23.573" Score="1" ViewCount="" Body="&lt;p&gt;&quot;&lt;strong&gt;ADT vs objects&lt;/strong&gt;&quot; has been asked a number of times here. The one-line answer is &quot;ADTs and objects are the inverse of each other - what one abstracts neatly the other cannot; each allows flexibility in different ways.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a longer answer, see William Cook's &lt;a href=&quot;http://www.cs.utexas.edu/~wcook/Drafts/2009/essay.pdf&quot; rel=&quot;nofollow&quot;&gt;On Understanding Data Abstraction, Revisited&lt;/a&gt;. Briefly, objects allow you to easily use multiple implementations/representations of some datum (something that looks like a list could be an array, or a self-balancing tree, or...) but make it hard to add new operations (because you have to add that new operation to each of your representations), while ADTs make it easy to add new operations on your data type, but make it hard to have multiple implementations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: I'd said that message passing was what made OO successful. Based on Jonas' comment, that's not right, because most languages that people consider OO don't use message passing. Since it's not right, I culled it from my answer.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-11-02T21:01:54.813" LastActivityDate="2010-11-02T21:01:54.813" CommentCount="3" />
  <row Id="16257" PostTypeId="1" AcceptedAnswerId="16320" CreationDate="2010-11-02T14:40:24.980" Score="1" ViewCount="249" Body="&lt;p&gt;I am a student pursuing a bachelors degree in IT currently in my third year. I am an average programmer and Java is my base programming language. I wan't to pursue MS in Computer Science. I do not have a very catchy profile/resume. I want to improve it before I apply. I'll be giving my GRE soon. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will it help me if i give the various certification offered by oracle. They are listed &lt;a href=&quot;http://in.sun.com/training/certification/java/index.xml&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If yes, which all should I give and how do I prepare for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will repeat that I am an average programmer, in the sense, haven't worked on big projects, but can do small bits pf programming which is required by my courses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;regards&lt;/p&gt;&#xA;&#xA;&lt;p&gt;thanks in advance &lt;/p&gt;&#xA;" OwnerUserId="4197" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-11-02T17:23:44.133" LastActivityDate="2010-11-02T21:37:32.147" Title="Does Oracle Certification really help in getting a good College for MS in the US?" Tags="&lt;certification&gt;&lt;grad-school&gt;" AnswerCount="4" />
  <row Id="16258" PostTypeId="2" ParentId="6834" CreationDate="2010-11-02T14:40:33.530" Score="2" ViewCount="" Body="&lt;h2&gt;Whyline&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.cs.cmu.edu/~NatProg/whyline-java.html&quot; rel=&quot;nofollow&quot;&gt;Whyline for Java&lt;/a&gt; really impressed me when I saw it. It's a dynamic analysis tool that lets you ask questions about the program's output, and not just text, but graphics too. For example, you can ask &quot;why was that line red?&quot; or &quot;why didn't the paint method get called?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It works by instrumenting your program and recording a run. For example, suppose there's a bug you can reproduce. You instrument your program with Whyline, run your program in Whyline to reproduce the bug, and then when you quit the program, you can use Whyline to inspect the execution history.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This recording and playback isn't new, but how Whyline implements it is pretty slick. You can view the history according to specific events (e.g. focusing on only mouse drag events, or only keydown events). It also associates output with what part of the program printed it, so you can navigate from the output to the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To work, it uses program slicing, so that you can focus on the parts of the code that are actually relevant. CMU now has a patent on it, and I don't know what their plans are, but I hope we can see more of it in production. It's a memory hog, but that's likely because it's a prototype and it can improve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should see the demo online, but you should also try it out for yourself to get the full experience. If anything, the online demos undersell the idea.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-02T14:40:33.530" />
  <row Id="16259" PostTypeId="2" ParentId="16249" CreationDate="2010-11-02T14:45:04.987" Score="1" ViewCount="" Body="&lt;p&gt;No, they're not, for the following reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Lots of algorithms are capable of attaining the Bayes error rate in the limit.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;ANNs are very computationally intensive.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;In small sample learning the most important attribute a classifier can have is making correct assumptions about the structure of your data.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;ANNs are hard to interpret compared to, for example, Naive Bayes or a decision tree.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-02T14:45:04.987" CommentCount="1" />
  <row Id="16260" PostTypeId="1" CreationDate="2010-11-02T14:47:22.517" Score="0" ViewCount="265" Body="&lt;p&gt;Why did Microsoft not provide generic implementation of OrderedDictionary?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a few custom implementations I've seen, including: &lt;a href=&quot;http://www.codeproject.com/KB/recipes/GenericOrderedDictionary.aspx&quot; rel=&quot;nofollow&quot;&gt;http://www.codeproject.com/KB/recipes/GenericOrderedDictionary.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But why did Microsoft not include it in the base .net library? Surely they had a reason for not building a generic.... but what is it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prior to posting this message, I did see: &#xA;&lt;a href=&quot;http://stackoverflow.com/questions/2629027/no-generic-implementation-of-ordereddictionary&quot;&gt;http://stackoverflow.com/questions/2629027/no-generic-implementation-of-ordereddictionary&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But that just confirms that it does not exist. Not &lt;strong&gt;why&lt;/strong&gt; it does not exist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="6899" LastEditorUserId="6899" LastEditorDisplayName="" LastEditDate="2010-11-02T15:17:47.940" LastActivityDate="2010-11-02T15:47:11.727" Title="Why is there no generic implementation of OrderedDictionary in .net?" Tags="&lt;c#&gt;&lt;.net&gt;" AnswerCount="1" CommentCount="5" />
  <row Id="16261" PostTypeId="1" CreationDate="2010-11-02T14:53:47.533" Score="2" ViewCount="815" Body="&lt;p&gt;Hey guys,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been working on a 15&quot; machine for years, but recently I was tempted by the 13&quot; MacBook Pro. Because I'm often on the road, I was looking mostly for a lightweight machine, considering I've external screens almost in every place where I work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there anybody who's working on a 13&quot; MacBook Pro that would give me a tip? Is it your best friend or you're gonna throw it out the window?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Outside my world made of code and IDEs, I really don't care about apple rumors: should I wait because a new version of the MacBook Pro is gonna be released?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your help is appreciated, thanks.&lt;/p&gt;&#xA;" OwnerUserId="6903" LastActivityDate="2010-11-02T23:48:18.323" Title="How is coding on a 13&quot; MacBook Pro?" Tags="&lt;hardware&gt;&lt;mac&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="1" />
  <row Id="16262" PostTypeId="2" ParentId="2497" CreationDate="2010-11-02T14:54:29.483" Score="4" ViewCount="" Body="&lt;p&gt;Computer languages are designed for humans not machines. And humans are more used to infix operators than pre or postfixes.&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-11-02T14:54:29.483" />
  <row Id="16263" PostTypeId="2" ParentId="16261" CreationDate="2010-11-02T14:57:54.627" Score="1" ViewCount="" Body="&lt;p&gt;I am using it.. It rocks with external screen. :-)&#xA;In case u dont have external screen its good, but not everytime.&lt;/p&gt;&#xA;" OwnerUserId="4315" LastActivityDate="2010-11-02T14:57:54.627" CommentCount="1" />
  <row Id="16264" PostTypeId="2" ParentId="16261" CreationDate="2010-11-02T14:58:28.847" Score="4" ViewCount="" Body="&lt;p&gt;I've been working on a 13&quot; MacBook Pro, in one form or another, for a year and a half. I love it -- best laptop I've ever owned. I have one with a 500GB hard drive and 8GB of RAM. It's a dream. Screen's a bit small, but I don't mind, and I'm used to it; you can always use an external monitor if you want, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;MacRumors.com expects a new MBP to be released &lt;a href=&quot;http://buyersguide.macrumors.com/#MacBook_Pro&quot; rel=&quot;nofollow&quot;&gt;soon&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-11-02T14:58:28.847" CommentCount="1" />
  <row Id="16265" PostTypeId="2" ParentId="16243" CreationDate="2010-11-02T14:58:30.673" Score="6" ViewCount="" Body="&lt;p&gt;I'd argue that tools like ReSharper actually make you a better candidate over all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For one, something like ReSharper is going to teach you about language constructs you might not have known about, as well as better ways to organize your code toward thinking about a problem or structuring it for readability.  ReSharper, in a sense, keeps you sharp with the best practices for slinging code, rather than letting you fall back to bad or obsolete habits, or worse the bad kind of laziness.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good coder needs to understand basic constructs, but not manually type them in. The good kind of lazy lets the tools do the borning grunt work, and the extra time saved is instead spent thinking about the problem.  This makes one a better developer overall.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd complete the line of reasoning by stating that if the interview process is favoring sticks and stone knives, it's fundamentally broken.&lt;/p&gt;&#xA;" OwnerUserId="6901" LastActivityDate="2010-11-02T14:58:30.673" />
  <row Id="16266" PostTypeId="2" ParentId="16226" CreationDate="2010-11-02T14:59:12.293" Score="2" ViewCount="" Body="&lt;p&gt;I know not many (especially the big guyz) do not like them, but I personally feel that the head first books are actually good if you want to start somewhere and especially if you aren't a great programmer or are new to the field.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To start with the basics of OO like encapsulation and  polymorphism are given really well (for the beginners only) in &lt;a href=&quot;http://www.headfirstlabs.com/books/hfjava/&quot; rel=&quot;nofollow&quot;&gt;Head First Java&lt;/a&gt;. Do not purchase this book as your friend is familiar with programming, so just get it for a day or two from some library and brush up the concerned chapters (which cover encapsulation and polymorphism).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next I would suggest to buy this book called &lt;a href=&quot;http://headfirstlabs.com/books/hfooad/&quot; rel=&quot;nofollow&quot;&gt;Head First OOAD&lt;/a&gt;. A book which will teach you basics of OO design and you'll be able to finish it pretty soon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then comes &lt;a href=&quot;http://www.headfirstlabs.com/books/hfdp/&quot; rel=&quot;nofollow&quot;&gt;Head First Design Patterns&lt;/a&gt;. I loved this book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. I have recommended these books as you said you friend was a non programmer. So they will really help him understand stuff quickly. Anyway, for programmers there are many brilliant books out there. But these should serve your friend's purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;regards&lt;/p&gt;&#xA;&#xA;&lt;p&gt;shahensha&lt;/p&gt;&#xA;" OwnerUserId="4197" LastEditorUserId="4197" LastEditorDisplayName="" LastEditDate="2010-11-03T14:20:38.563" LastActivityDate="2010-11-03T14:20:38.563" CommentCount="3" />
  <row Id="16267" PostTypeId="2" ParentId="16249" CreationDate="2010-11-02T15:02:48.810" Score="0" ViewCount="" Body="&lt;p&gt;When i was represented with Neural networks , it was said that neural networks are logical gates that are learning the needed map. Meaning you will get logical gates out of the network. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you could do it yourself with a set of logical gates, then you could do it with neural network. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The limits of neural network is discusses and got to a mathematical definitions, about continues functions and such.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;saying that statistical and probability are the tools for understanding AI is just as good as saying that a hammer is the tool to build a house.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the biggest problems with people who don't know mathematics is saying &quot;hey! this is a strong mathematical tool lets try it out&quot; instead of making the tool they need. this is how AI approaches looks today, when it hit statistics and probability. &lt;/p&gt;&#xA;" OwnerUserId="5260" LastActivityDate="2010-11-02T15:02:48.810" />
  <row Id="16268" PostTypeId="2" ParentId="16261" CreationDate="2010-11-02T15:04:06.660" Score="0" ViewCount="" Body="&lt;p&gt;There is &lt;em&gt;no&lt;/em&gt; substition for an external screen, but the experience is quite acceptable.&lt;/p&gt;&#xA;" OwnerUserId="6901" LastActivityDate="2010-11-02T15:04:06.660" />
  <row Id="16269" PostTypeId="2" ParentId="16261" CreationDate="2010-11-02T15:05:28.170" Score="3" ViewCount="" Body="&lt;p&gt;I'd never leave my two screen set up, in fact I pine for a third. If you are going to get one, make sure you get a damn big second screen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although, I personally like my screens to be balanced, two 13&quot;ers would be about as useful as an ashtray on a motorbike.&lt;/p&gt;&#xA;" OwnerUserId="4499" LastActivityDate="2010-11-02T15:05:28.170" />
  <row Id="16270" PostTypeId="2" ParentId="16226" CreationDate="2010-11-02T15:05:56.330" Score="-3" ViewCount="" Body="&lt;p&gt;Dijkstra said:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot; It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikiquote.org/wiki/Edsger_Dijkstra&quot; rel=&quot;nofollow&quot;&gt;http://en.wikiquote.org/wiki/Edsger_Dijkstra&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5260" LastActivityDate="2010-11-02T15:05:56.330" CommentCount="2" />
  <row Id="16271" PostTypeId="1" AcceptedAnswerId="16403" CreationDate="2010-11-02T15:10:07.923" Score="3" ViewCount="244" Body="&lt;p&gt;I wanted to know about this since a long time. Other vendors are coming out with intuitive IDEs with even more flexibility to developers and DBAs, whereas we rely on Toad and other third-party IDEs to work with Oracle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why they are sticking to command-line black dump screen?&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2010-11-03T04:20:10.807" Title="Why Oracle still loves command-line black dump screen?" Tags="&lt;gui&gt;&lt;oracle&gt;" AnswerCount="5" />
  <row Id="16272" PostTypeId="2" ParentId="16271" CreationDate="2010-11-02T15:14:25.980" Score="2" ViewCount="" Body="&lt;h1&gt;It's Standard&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Same reason every piece of SQL documentation lists tables as if you were working on the command line. You also can't cater to one particular IDE. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-02T15:14:25.980" CommentCount="9" />
  <row Id="16273" PostTypeId="2" ParentId="16271" CreationDate="2010-11-02T15:15:12.873" Score="0" ViewCount="" Body="&lt;p&gt;The Command Line is the most powerful tool there is and is portable to all systems supported by Oracle.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-02T15:15:12.873" CommentCount="3" />
  <row Id="16274" PostTypeId="2" ParentId="16243" CreationDate="2010-11-02T15:18:53.337" Score="25" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I was a candidate 2 in an interview very recently&lt;/strong&gt;. I was given a vanilla install of the IDE on a PC with a non-standard keyboard and unfamiliar testing framework, and I was asked to write a simple Fizz-Buzz app with unit tests. I fluffed it. I must have looked like a complete noob, stumbling around in the dark trying to hack out code. Needless to say, I wasn't offered the position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I learned is that I rely very heavily on my plugins. They don't just get code typed faster - they actually &lt;strong&gt;shape the way I think&lt;/strong&gt; about code and the way I go about coding. For example, I used to think very carefully about variable names because they could be a pain to change after the fact. Now, in contrast, I just make a half-baked guess about how I'll use the variable, hack out some code, let the variable tell me what it is for, and then hit Refactor-&gt;Rename to call it something more appropriate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Does this make me the less capable candidate?&lt;/strong&gt; In some ways, &lt;strong&gt;I think it does&lt;/strong&gt;. Someone who can write code in Notepad and have it compile and run correctly has certain advantages over someone like me who needs all the IDE goodness he can get. From that point of view, I perfectly understand why any company would choose not to hire a toolhead like me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;On the other hand&lt;/strong&gt;, I'm still a talented and capable Senior Developer. I've learned what works for me, and I practice the sort of laziness that makes me productive, given my own weaknesses and limitations. In short, &lt;strong&gt;I'm the kind of programmer that could really benefit a company like the one who turned me away&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interestly, I had another interview a couple of weeks ago. Following my previous experience I made a point of asking about additional tools or budget for buying them. Discovering that there were neither gave me one more reason for turning down to the (rather generous) offer that &lt;em&gt;they&lt;/em&gt; made to &lt;em&gt;me&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, to paraphrase Groucho, &quot;&lt;strong&gt;I would not join any company that would have someone like me for an employee.&lt;/strong&gt;&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not unless they let me use ReSharper, anyway.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-25T19:30:21.980" LastActivityDate="2010-11-25T19:30:21.980" CommentCount="6" />
  <row Id="16275" PostTypeId="2" ParentId="16222" CreationDate="2010-11-02T15:20:37.113" Score="5" ViewCount="" Body="&lt;p&gt;Remember that anger and rage are essentially irrational emotional expressions, which are biologically designed to intimidate you into a desired course of action with the threat of physical activity.  Remember that they are obsolete in the modern age; no matter how late the project is, no judge/jury/policeman will consider that justification for violence.  Realize that if you remain calm, you force the other side to either back down, walk away, or resort to violence.  Understand that all three of those are a 'win';  the only way to lose now is to get angry yourself.&lt;/p&gt;&#xA;" OwnerUserId="4265" LastActivityDate="2010-11-02T15:20:37.113" CommentCount="1" />
  <row Id="16276" PostTypeId="2" ParentId="16211" CreationDate="2010-11-02T15:21:04.070" Score="0" ViewCount="" Body="&lt;p&gt;Pointers can be faster and can incur less overhead, both in data structures and in keeping the program execution footprint down.  (Please note the word 'can'.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general the rule is, if you allocated a resource, either by performing your own allocation or having something do it on your behalf, then it's your job to release it when done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The burden of doing the above is placing the responsiblity back on to the developer, rather than having the runtime do it.  This has some more advantages in that things can be longer lived, or cross boundaries, or be disposed of at more opportune times, or not need to carry the weight of a garbage collector around.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In exotic cases, usually involving exceptions and scope, there are some edge cases that require one to be a little more careful if the code the does cleanup gets avoided.  Realistically, these cases can be designed around.  We lived without managed code for many decades.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often what makes pointers &quot;hard&quot; is merely not understanding what's going on at the hardware level.  It's nothing more than indirection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pointers give you much more raw access, and this can be very helpful, clever, or necessary.  You can point to anywhere and treat it pretty much as anything.  If you use your God-like powers for good, it's very, very good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The con side is usually waste by forgetting to release something, or by releasing it more than once, or referencing something after it's released, or refencing something when you're not pointing anywhere.  These things often result in spectacular crashes, and to be honest are usually indicative that you've got a logic problem, rather than pointers are fragile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're a solid developer, using pointers shouldn't be any more problematic than any other data structure.  Again, it's not rocket science, and people did it for decades without even blinking an eye.  It's just taught less throughly these days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All that said, unless you have need for pointers, the conveinence and exoitic cases that a good garbage collection provides makes working in a managed environment that much nicer.  It's great to be able to grab some memory, use it, and abandon it, knowing that at some time later, it might be discarderd, if it makes sense to do so.  That's a bit less code on the coder's part, in exchange for a runtime that does some extra lifting.&lt;/p&gt;&#xA;" OwnerUserId="6901" LastActivityDate="2010-11-02T15:21:04.070" />
  <row Id="16277" PostTypeId="2" ParentId="16257" CreationDate="2010-11-02T15:26:37.717" Score="1" ViewCount="" Body="&lt;p&gt;I have a very hard time believing that any college admissions board is going to have the slightest regard for an Oracle certification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead, work on becoming an above-average programmer. If you can't work up enough passion about software engineering to work on big projects and to do much, much more than the 'small bits of programming' for your classes, you will probably not enjoy it as a career, nevermind spending even more time in academia.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Should I get an Oracle certification?&quot; is the wrong question. &quot;Why am I bothering to do this if I don't want to be great at it?&quot; might be the right one.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-11-02T15:26:37.717" />
  <row Id="16278" PostTypeId="2" ParentId="16109" CreationDate="2010-11-02T15:27:21.953" Score="0" ViewCount="" Body="&lt;p&gt;I graduated with what was considered a Computer Information Systems B.A. with an emphasis on Web Development, had a two-year Associates in Computer Engineering as an A.S.. What did Web Development entail? Two Java courses, two C++ courses, a SQL class, database diagramming and design, two COBOL courses, and a bunch of redundant coursework that I've never actually used in the real world. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The real work I did was during my senior year when internships were hard to find. I was able to land a job creating a website for an employment agency and use that as a credit toward an independent study course. What did I learn out of that? The .NET framework and C#/VB.net along with a few other server side technologies. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point... degrees aren't everything. Sure, they do show a commitment to your education, and they do certainly set a precedence for some sort of work ethic that an employer can use to gauge how you MAY or MAY NOT do in a real world job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can actually prove to an employer that you have the skills, and you, yourself, are confident in the skills that you currently have to do a good job, you should have no problems finding work... regardless of the degree. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Just for those curious, the&#xA;  information tech degree is typically&#xA;  geared more to real-world problems&#xA;  then the computer science and the&#xA;  quality of it will vary widely. Some&#xA;  inf tech programs are as in-depth as&#xA;  an ABET C.S degree, the information&#xA;  tech from Drexel looks extremely&#xA;  strong. The Management Information&#xA;  Systems is generally provided via the&#xA;  business school and is more of a&#xA;  traditional business degree.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Honestly, I'm not sure there is a huge difference here. If the information tech degree is more geared to real world applications than the C.S. degree, it probably isn't by much. My entire collegiate programming load was based on real world examples from e-Commerce sites to eBay clones, and I was basically in a degree that was within Information Technology, but on the Web Development path. It was the best of both worlds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd get more details on some of the specifics of these degrees. Management Information Systems degree could be more of a project planning type of degree versus actually developing the guts of a system. If that's what you'd want to do, okay, but if not... specifics would be nice to get laid out so you don't enter something that you find out later isn't something you want.&lt;/p&gt;&#xA;" OwnerUserId="5520" LastActivityDate="2010-11-02T15:27:21.953" />
  <row Id="16279" PostTypeId="2" ParentId="16135" CreationDate="2010-11-02T15:30:55.963" Score="2" ViewCount="" Body="&lt;p&gt;Two reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The correct implementation of ++i is to increment i and then return it.&#xA;The correct implementation of i++ is to save the current value, increment i, and return the saved value.  Knowing these are not implemented as synonymns is important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question then becomes &lt;em&gt;when&lt;/em&gt; does the compiler apply them while evaluating an expression, such as equality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the equality test is done first, then the pre- and post- increment operators, you're going to have to write different logic than if the left hand side (lhs) and the right hand side (rhs) are evaluated first, then the equality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's all about order of operations, and that in turn affects the code one writes.  And, not too surprisingly, not all languages are in agreement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basic tests list this allow developers to test to see if their assumptions are correct, as well as if the actual implementation matches the language specification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This can have all kinds of impact when working with pointers, loops, or returning values.&lt;/p&gt;&#xA;" OwnerUserId="6901" LastActivityDate="2010-11-02T15:30:55.963" CommentCount="1" />
  <row Id="16280" PostTypeId="2" ParentId="16243" CreationDate="2010-11-02T15:32:55.697" Score="2" ViewCount="" Body="&lt;p&gt;That's one of the reasons I ask people to code at the whiteboard, not in the IDE. It levels the playing field. And people do say &quot;oh dear, resharper handles this for me usually&quot;. Heck, the built in snippets handle for loops and such, which the whiteboard can't give you. In that case saying something like &quot;I hope the punctuation is right there; I'm a R# guy&quot; is probably all you need to keep me from holding some syntax issues against you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I need some ability to write understandable code on the whiteboard so we can have a meeting in which we work out how we're going to do things. And of course, I want to see if you have ever actually written code in your life or not. Your interviews may vary.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-02T15:32:55.697" CommentCount="2" />
  <row Id="16281" PostTypeId="2" ParentId="16257" CreationDate="2010-11-02T15:34:15.317" Score="1" ViewCount="" Body="&lt;p&gt;American university admission committees don't care about industry certifications in general. I don't know of many tech certs that are worth much in the US. Possibly CISSP, but you need 5 years of industry experience to get it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get a 3.5+ GPA and have some research experience.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-02T15:34:15.317" />
  <row Id="16282" PostTypeId="2" ParentId="16089" CreationDate="2010-11-02T15:34:48.160" Score="1" ViewCount="" Body="&lt;p&gt;As long as &lt;em&gt;you&lt;/em&gt; have covered all the possible code paths, you're fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your compiler is complaining, there's two possibilities:&lt;br&gt;&#xA;1) You think you covered everything and didn't.&lt;br&gt;&#xA;2) Your compiler is brain dead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, there's most likely a way that you can restructure the code to placate the compiler and still cover the code paths.  (e.g., drop the else in your example)&lt;/p&gt;&#xA;" OwnerUserId="6901" LastActivityDate="2010-11-02T15:34:48.160" />
  <row Id="16283" PostTypeId="2" ParentId="15887" CreationDate="2010-11-02T15:40:45.093" Score="1" ViewCount="" Body="&lt;p&gt;This is very typical, and reminds me of a time in college when sophomore students were required to take an interviewing course for Information Technology. We'd all pack into a classroom, speak with groups of interns who had just worked for Fortune 500 companies. Inevitably, someone would raise their hand and talk about how they feel overwhelmed and don't seem to have any real knowledge of the technical aspects of their future jobs. They'd ask if it gets any better, but almost noone on the panel had a good answer. But the answer is yes, it does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's definitely scary, but I can say very firmly that I was in the same boat. Interestingly enough, I think college is a scary place for the analytical thinkers like programmers because we are more drawn to the technical nature of our obsession whereas much of the world prepares you for life after college with more abstract training and thinking before the actual hands-on work begins. I've always hated that method, mainly because I'm a hands-on learner... and I think that was a huge obstacle. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interestingly enough, it's never been suppressed. I didn't learn a whole lot during my sophomore and junior years in college, and I actually learned almost everything I know today by tinkering with languages in my dorm room during breaks in classes and mid-week when I had nothing to do. I actually got a few jobs developing some websites for local business owners, learned VB/C# and the .NET framework on my own, and did that all by hands-on experimentation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You've been given the foundation, now you can build the house. Building the house takes some research, time, and dedication, but the foundation that you've learned will help you see the big picture, along with helping you find the solutions to your problems along the way. &lt;/p&gt;&#xA;" OwnerUserId="5520" LastActivityDate="2010-11-02T15:40:45.093" />
  <row Id="16284" PostTypeId="1" AcceptedAnswerId="16291" CreationDate="2010-11-02T15:45:26.847" Score="2" ViewCount="87" Body="&lt;p&gt;I'm learning about the open source web based project management tool Trac and I'm a bit confused about its role in the area of reporting defects vs bug tracking. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those unfamiliar with Trac itself, it has a Ticket system which is the tool used to report issues, and you can choose between reporting a task, an enhancement, or a defect. It's that last option that I'm confused about. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I get the impression that Trac is not meant to be a bug tracking tool, but if that's the case then what is the defect field for? I looked at the way the Trac team uses their own system, and it does &lt;em&gt;look&lt;/em&gt; like they post some things that appear to be bugs, but for the most part it's other kinds of issues, and that actually blurries the distinction for me even further. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can someone explain to me how the &quot;defect&quot; option is to be used? Is defect==bug? Should tickets be opened for bugs? &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2010-11-02T15:56:53.697" LastActivityDate="2010-11-02T15:56:53.697" Title="A little confused about Trac" Tags="&lt;trac&gt;" AnswerCount="2" />
  <row Id="16285" PostTypeId="2" ParentId="16211" CreationDate="2010-11-02T15:45:38.280" Score="0" ViewCount="" Body="&lt;p&gt;Pointers provide a visibility into the machine that is required for most interesting programming. Most modern languages simply hide the gritty bits from you.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-02T15:45:38.280" />
  <row Id="16286" PostTypeId="2" ParentId="16260" CreationDate="2010-11-02T15:47:11.727" Score="2" ViewCount="" Body="&lt;p&gt;If you really want to know why MS skipped this, I may have an answer (more a guess).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Maybe it's because they value it differently that you, and decided to put priority on some other classes ?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe you should propose yourself as a team member, they are probably still &lt;a href=&quot;http://blogs.msdn.com/b/brada/archive/2008/04/30/job-openings-working-on-the-net-framework-product-team.aspx&quot; rel=&quot;nofollow&quot;&gt;hiring&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or contact them directly to have THE answer?&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-02T15:47:11.727" CommentCount="4" />
  <row Id="16287" PostTypeId="2" ParentId="16016" CreationDate="2010-11-02T15:48:06.403" Score="0" ViewCount="" Body="&lt;p&gt;Consider thinking about it this way:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An update is taking something you have and tweaking it a bit, usually to fix something that someone found broken.  Quite often the vendor feels obligated to give this for free, since it's what you should have gotten, how it was advertised, or secures something better.  Occasionally little improvements and optimizations are delivered as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An upgrade is getting the next best thing, which usually is new behavior, features, or compatability.  The new software will have noticable functional improvements or additions.&lt;/p&gt;&#xA;" OwnerUserId="6901" LastActivityDate="2010-11-02T15:48:06.403" />
  <row Id="16288" PostTypeId="2" ParentId="16284" CreationDate="2010-11-02T15:50:59.193" Score="2" ViewCount="" Body="&lt;p&gt;I use it to track features and tasks in addition of defects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use the &lt;strong&gt;Defect&lt;/strong&gt; option when the item I'm adding is a defect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I'm using Task option when it's a task, and Enhancement when it's a feature)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-02T15:50:59.193" CommentCount="2" />
  <row Id="16289" PostTypeId="1" AcceptedAnswerId="16302" CreationDate="2010-11-02T15:51:35.293" Score="14" ViewCount="408" Body="&lt;p&gt;For the last 3 years, I've been working as the lone .NET software developer in a large non-tech, manufacturing company. The work conditions and the pay are great, and it is a very stable position, particularly considering that this is my first full-fledged development job. In my group, there's the IT Manager, an IT-Network Engineer, Help Desk staff, and myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem I'm facing is that, since most of my work is fast application development projects (simple CRUD apps, web charts and database interfaces) I feel like my tech skills are stagnating, as I don't really get to do anything overtly complex. Many times, it's just the rehashing of something I've already done. It is very frustrating to read and research about frameworks and methodologies that, while great for larger projects, would amount to overkill for the stuff that is needed here. And with a family to return to every day after a 80 min commute, putting this to use in personal side projects is very complicated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure what path to follow: if I stay, I have great job stability, but will probably move on to something I don't really want (I've been informally anointed, against my wishes, as the next IT Manager, but that's not going to happen for at least 5 more years), and if I leave, I get uncertainty and significant pay cut, as I don't have the skill set needed for dedicated dev teams / projects. I feel like I'm trapped in a big company environment, yearning for the action and dynamics of smaller shops.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone else in the same position? How did you manage to overcome the gaps between your skills and those required by the market? Did you stay at Big Corp, or moved to a smaller company?&lt;/p&gt;&#xA;" OwnerUserId="6897" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-11T03:36:33.577" LastActivityDate="2010-12-11T03:36:33.577" Title="Career stability or tech skill growth?" Tags="&lt;career&gt;&lt;work-environment&gt;&lt;career-advice&gt;&lt;lifestyle&gt;" AnswerCount="8" CommentCount="5" FavoriteCount="0" />
  <row Id="16290" PostTypeId="2" ParentId="16089" CreationDate="2010-11-02T15:52:40.533" Score="1" ViewCount="" Body="&lt;p&gt;How about this (Java - I don't know the OP's language)?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;String outputStringForInteger(int i)&#xA;{&#xA;&#xA;   if (i == 0)&#xA;      return &quot;Number is Zero&quot;;&#xA;&#xA;   return &quot;Number is not Zero&quot;;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-11-02T15:52:40.533" />
  <row Id="16291" PostTypeId="2" ParentId="16284" CreationDate="2010-11-02T15:53:39.970" Score="1" ViewCount="" Body="&lt;p&gt;Trac is a tool to keep track of things, assign them to people, and report on progress through state and comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software development shops often have QA keep track of all the problems they've encountered (defects) and assign them to developers to fix.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Enhancments and other incidentals can also be kept track of as well, but they are not necessarily defects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Classifying what you're doing in this manner allows the people doing metrics to sort out what's broken, what's new, and where the additional time went when work was being done that didn't fall into either category.&lt;/p&gt;&#xA;" OwnerUserId="6901" LastActivityDate="2010-11-02T15:53:39.970" />
  <row Id="16292" PostTypeId="2" ParentId="16289" CreationDate="2010-11-02T15:57:19.030" Score="1" ViewCount="" Body="&lt;p&gt;You're suffering from &quot;the grass is always greener.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See if you can go to a conference like &quot;No Fluff, Just Stuff&quot; (it's cheap enough for you to pay your own way if your company won't).  That'll excite you about new things and new ways of thinking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start working on your own projects (on your own time, of course) to pick up some additional skills and experience -- you'll then have something of value to put on the table while job hunting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider job hunting anyhow with no intention of leaving where you are.  If something better comes along, great.  If not, then you'll know you're in the best place for you at this moment in time.&lt;/p&gt;&#xA;" OwnerUserId="6901" LastActivityDate="2010-11-02T15:57:19.030" CommentCount="1" />
  <row Id="16293" PostTypeId="2" ParentId="14831" CreationDate="2010-11-02T15:58:28.903" Score="1" ViewCount="" Body="&lt;p&gt;Give an Application to the newbie which has very good Exception handling in it. Throw some exception somewhere and let them debug it with the help of Logs. By tracking the propogation of Exception they should be able to debug it. Do this exercise 3 or 4 times. Now just remove all the Exception handling from the code and let them try to track the same exception. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe the appreciation for the Exception Handling code will be instantly appreciated.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-02T15:58:28.903" CommentCount="1" />
  <row Id="16294" PostTypeId="2" ParentId="15820" CreationDate="2010-11-02T16:00:41.243" Score="0" ViewCount="" Body="&lt;p&gt;Pick something that is efficient, terse, and then &lt;em&gt;document&lt;/em&gt; not just what you've done, but why.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code can be revisited, and not always by its original author.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are times when you might deliberately choose one implementation over another &lt;em&gt;because&lt;/em&gt; you're forward-thinking about code that doesn't exist.&lt;/p&gt;&#xA;" OwnerUserId="6901" LastActivityDate="2010-11-02T16:00:41.243" />
  <row Id="16295" PostTypeId="2" ParentId="16289" CreationDate="2010-11-02T16:04:28.927" Score="1" ViewCount="" Body="&lt;p&gt;That is a highly personal question that you should face asking inside what is you really want. That's the only valid answer, that you are really happy with your career, being searching stability, being searching riskier adventures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it helps, I was in a somehow similar position a few years ago: I was working on a big company, with a reasonable salary (nothing fancy) and great coworkers. My work was mainly programming on C (a little C++ and very little Java) But, after a while, I decided that was not the way I wanted to work. I wanted to learn new things and the way of doing things on that company wasn't great. &#xA;So I moved to a very little consultancy company (just the boss, me and another coworker) to do something completely different. And I have make another couple of moves until now, working on a startup in a different country.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm no necessarily recommend my path, I've made a couple of mistakes and there are people that needs more an stability (I had few in these years), but I think I've grown greatly professionally. When I talk with my old coworkers, I always think they are the same, thinking on the same things, using the same technologies, complaining about the same old issues, while all that looks really old-fashion to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, as I said, you have to think about it very very carefully about what do you want, and what is the price you are willing to pay for it. And then go for it!&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-11-02T16:04:28.927" CommentCount="1" />
  <row Id="16296" PostTypeId="1" AcceptedAnswerId="16408" CreationDate="2010-11-02T16:09:07.377" Score="11" ViewCount="665" Body="&lt;p&gt;I have always wondered about this and perhaps experienced folks here can comment on this. I always read that big established software companies such as Google, Microsoft, etc are always wary of hiring software engineers/(or other related professionals) who don't exactly meet the job requirements, and would rather turn down a close &quot;Yes/Maybe&quot; decision. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also the general perception that start-ups are generally more willing to hire such &quot;less-than-perfect&quot; employees. But to me this sounds counter-intuitive: start-ups are generally much smaller and resource constrained so they would actually need a &quot;10/10&quot; hire while established companies with bigger teams and more resources would be willing to take a (small) risk on a hire.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone have any comments on this from first-hand experience?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&lt;/p&gt;&#xA;" OwnerUserId="4378" LastActivityDate="2011-01-24T16:49:55.823" Title="Hiring at start-ups vs established companies" Tags="&lt;career&gt;&lt;startups&gt;" AnswerCount="9" CommentCount="3" FavoriteCount="2" />
  <row Id="16297" PostTypeId="2" ParentId="15820" CreationDate="2010-11-02T16:11:52.537" Score="0" ViewCount="" Body="&lt;p&gt;I prefer switch in those kind of cases, it matches much better the point of the code, execute a different statement for each different input value. The &lt;code&gt;if..else&lt;/code&gt; acts more like a &quot;trick&quot; to achieve the same effect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;switch&lt;/code&gt; statements are also cleaner, it's easy to have a typo hidden in all those &lt;code&gt;==&lt;/code&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, for big blocks in C, switch is faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;else..if&lt;/code&gt; can be more appropriate when you have something like ranges (between 1 and 100, do this, between 100 and 200 do that), or in C, when you try to make  switch with elements like strings (that is possible in other languages). Which is a same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to use a lot of switches when I program in C.&lt;/p&gt;&#xA;" OwnerUserId="1571" LastActivityDate="2010-11-02T16:11:52.537" />
  <row Id="16298" PostTypeId="2" ParentId="16296" CreationDate="2010-11-02T16:12:56.287" Score="7" ViewCount="" Body="&lt;p&gt;My experience is that smaller startups are much more willing to hire someone who can do the job but may not have the credentials, so to speak.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;what this means, is the smaller startup companies don't have much of an HR filter for you to get through.  They usually are more willing to to hire those without formal training/degrees and more likely to take a chance on someone then the larger companies. They either don't have an HR staff or, at least, have a smaller one. In many cases, the engineering staff (vp/ceo/etc.) can directly interview pretty much anyone because they have the time and resources to do so.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The larger corps simply don't.  Can you see The Gates interviewing every single developer who sends him a resume and is even remotely able to do the job?  I don't see THAT happening.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-11-02T16:12:56.287" />
  <row Id="16299" PostTypeId="2" ParentId="16296" CreationDate="2010-11-02T16:13:33.930" Score="5" ViewCount="" Body="&lt;p&gt;Smaller startups need good hires as much as corporations.  There may be a higher percentage of &quot;risk&quot; hires in startups because potentially there are less people to perform interviews and thus fewer diversified opions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, when you are hiring someone, there's no such thing as a &quot;maybe&quot;.  If the candidate isn't a fully qualified YES, then they're a NO.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-11-02T16:13:33.930" CommentCount="4" />
  <row Id="16300" PostTypeId="2" ParentId="15820" CreationDate="2010-11-02T16:18:07.520" Score="0" ViewCount="" Body="&lt;p&gt;In python, there is no switch statement, because if/elif/else is nice:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;a = 5&#xA;&#xA;if a==1:&#xA;    print &quot;do this&quot;&#xA;elif a == 2:&#xA;    print &quot;do that&quot;&#xA;elif a == 3:&#xA;    print &quot;do the other&quot;&#xA;elif 3 &amp;lt; a &amp;lt; 9:&#xA;    print &quot;do more&quot;&#xA;elif 9 &amp;lt;= a &amp;lt; 15:&#xA;    print &quot;do nothing&quot;&#xA;else:&#xA;    print &quot;say sorry&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Simple right?&lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-11-02T16:18:07.520" />
  <row Id="16301" PostTypeId="1" CreationDate="2010-11-02T16:23:01.620" Score="32" ViewCount="2020" Body="&lt;p&gt;What are some tips for helping to design and construct applications faster?&lt;/p&gt;&#xA;" OwnerUserId="165" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:06:33.453" LastActivityDate="2011-01-23T11:24:44.273" CommunityOwnedDate="2011-01-23T10:19:44.323" Title="Tips for working fast" Tags="&lt;productivity&gt;&lt;development-process&gt;&lt;tips&gt;&lt;construction&gt;" AnswerCount="30" CommentCount="8" FavoriteCount="21" />
  <row Id="16302" PostTypeId="2" ParentId="16289" CreationDate="2010-11-02T16:24:12.047" Score="17" ViewCount="" Body="&lt;p&gt;When you wake up in the morning are you happy that you are going to work or dreading it?  If you like your job, pay, environment &amp;amp; coworkers but are lacking in technical growth, then that's a very solvable problem.  If you're not happy with the others then it's time to go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you stay, it will be your responsibility to grow.  Tell your boss what you've told us.  Ask to take some classes, or go to conferences/workshops.  Join a user group, mingle with other programmers, pick their brains.  Look for ways to make your same-old solution resuable, cleaner, leaner.  There are tons of things that you can do to make the projects that do come your way more exciting and more of a learning experience.  &lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-02T22:39:07.500" LastActivityDate="2010-11-02T22:39:07.500" CommentCount="2" />
  <row Id="16303" PostTypeId="2" ParentId="16301" CreationDate="2010-11-02T16:26:55.073" Score="25" ViewCount="" Body="&lt;p&gt;pencil and paper. Thinking it through in the head before typing. &lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-11-02T16:26:55.073" CommunityOwnedDate="2011-01-23T10:19:44.323" CommentCount="7" />
  <row Id="16304" PostTypeId="2" ParentId="16301" CreationDate="2010-11-02T16:26:59.633" Score="26" ViewCount="" Body="&lt;p&gt;My three prefered techniques:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Decide when you interrupt.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Avoid external interuptions&lt;/strong&gt; such as emails, phone, coleagues etc.: Have &quot;opening hours&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Take regular pauses&lt;/strong&gt; (10 minutes for every 45 minutes of work&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Tune your engine&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I use a combination of &lt;a href=&quot;http://fr.wikipedia.org/wiki/Getting_Things_Done&quot; rel=&quot;nofollow&quot;&gt;GTD&lt;/a&gt; and some concepts of the &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Seven_Habits_of_Highly_Effective_People&quot; rel=&quot;nofollow&quot;&gt;7 Habits&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Use community power&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Don't reinvent the wheel&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't hesitate to &lt;strong&gt;ask the community&lt;/strong&gt; for solutions&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-02T16:26:59.633" CommunityOwnedDate="2011-01-23T10:19:44.323" CommentCount="2" />
  <row Id="16305" PostTypeId="2" ParentId="16301" CreationDate="2010-11-02T16:32:21.500" Score="84" ViewCount="" Body="&lt;p&gt;Understand that doing it right the first time, no matter how long it takes, is almost always going to be faster and cheaper than having to go back and fix it, or do it all over again.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-11-02T16:32:21.500" CommunityOwnedDate="2011-01-23T10:19:44.323" CommentCount="25" />
  <row Id="16306" PostTypeId="2" ParentId="16296" CreationDate="2010-11-02T16:33:28.860" Score="3" ViewCount="" Body="&lt;p&gt;Startups do tend to hire people who may not be fully qualified for the job because:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Expertise: start-ups generally do not have the expertise to hire more qualified people.  The CEO's generally hire less than perfect IT managers because usually they don't know any better. These IT managers tend to hire other IT professionals who may be less than perfect for their jobs because managers are not fully qualified to perform good interviews themselves.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Financial Constraints: start-ups are tied for funding so they look for folks who are willing to work long hours and put in extra effort to get the product/service out the door for lesser money, no matter if the code base internally truly sucks and is a real maintenance nightmare .  They generally offer promises for promotions, bonus, equity, etc. which mid-level folks do not mind working extra hard for.  It's common human psychology -- why should I work 10+ years to become a VP when I can work 1 year and if successful I can have the same title.  Or why should I work 20+ years to save $250k when I might be able to get that in a couple of years if the start-up is successful.  Big corporations generally pay a fair market salary to their employees, may or may not offer bonus/equity, and generally have clear career paths.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6863" LastActivityDate="2010-11-02T16:33:28.860" CommentCount="3" />
  <row Id="16307" PostTypeId="2" ParentId="6941" CreationDate="2010-11-02T16:35:12.493" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Input&lt;/strong&gt; : &lt;blockquote&gt;Regardless, they called and the women was impressed with my enthusiasm and willing to learn the required knowledge they called me again to give me an in person interview&lt;/blockquote&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Parsed output:&lt;/strong&gt; &lt;em&gt;It's so hard to find someone to work for FREE. So let's really entertain this one possible lead we had in months! Also he's quite young and naive so let's flatter and make him feel more important than he really is. Once we make first cycle of sales we can buy him out or dump him or whatever in favor of  a team of experienced developers, thereby eliminating profit sharing while gaining a significant boost in company growth.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clearly, you can see I'm recommending the option no. 2. IMHO, equity options maybe worth the risk, but they only guarantee a profit worth taking the risk in say, 10-15% cases. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, you're calling the shots, so if you go with job 1, make sure that you have a very clear contract on each others duties and obligations. Also you might want to do some background check on the people involved (these days and with Internet it should be a bit easier).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-02T16:35:12.493" />
  <row Id="16308" PostTypeId="1" AcceptedAnswerId="16314" CreationDate="2010-11-02T16:35:13.100" Score="22" ViewCount="522" Body="&lt;p&gt;I always start the day thinking &quot;I'll easily get this done by the end of the day&quot; and set what looks like a realistic target.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So why do I never hit it? The task always ends up taking 3x longer due to unforeseen bugs, last minute changes etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it just me?  I don't seem to be getting any better predicting what can be done in a day.&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-12-14T21:06:26.137" Title="Why is it you never get as much done as you'd planned?" Tags="&lt;productivity&gt;&lt;self-improvement&gt;" AnswerCount="11" CommentCount="7" FavoriteCount="9" />
  <row Id="16309" PostTypeId="2" ParentId="16308" CreationDate="2010-11-02T16:41:00.973" Score="2" ViewCount="" Body="&lt;p&gt;You may want to expand you timeframe of predictability. Can you determine what you can get done in a week? If every task is taking three times longer than you thought, it sounds like you're consistent enough to be predictable. You just need to adjust by 3x ;)&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-02T16:41:00.973" CommentCount="1" />
  <row Id="16310" PostTypeId="2" ParentId="16308" CreationDate="2010-11-02T16:44:40.020" Score="2" ViewCount="" Body="&lt;p&gt;cuz you simply ignored the fact that unforeseen bugs may occur.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do some statistics on the average time you spent on the bugs, and take those time into account when you make your plan. &lt;/p&gt;&#xA;" OwnerUserId="4873" LastActivityDate="2010-11-02T16:44:40.020" />
  <row Id="16312" PostTypeId="2" ParentId="16301" CreationDate="2010-11-02T16:47:53.480" Score="48" ViewCount="" Body="&lt;p&gt;One thing came up to me some 5-6 years ago is that you THINK much, much faster than you can write code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the sake of example, let's assume that the order of magnitude, when you are fully focused on thinking about the problem is probably a 50:1, if not more . &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore it's easy to see that spending an extra MINUTE to think about a possible alternative in your class design/algorithm/function saves 50 minutes of implementation work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And not only that. Since you've spent as much time as feasible into the design phase, consequently exploring all the venues in problem solving, once you start coding it's going to be VERY STRAIGHTFORWARD, since you will not be wasting additional time exploring solution alternatives while coding - you already have them sorted out in your head!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since I've been thinking about it this way, I've found I'm much more productive. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a more humorous note, some years later I finally got my self to read &quot;Code Complete&quot;, which clearly cites a research that the cost of fixing software bugs rises in the post-design stages (the waterfall methodology). Since this is effectively the same thing I thought about, I guess the second piece of advice would be to always check what other people might have to say, so as to not reinvent the wheel :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT : I'd also like to add that for the two points above to fit nicely together, you really need to have true mastery of your programming language (and any no. of frameworks that are commonly used alongside of it).&#xA;Knowing it inside out will have the effect of your brain automatically finding correct language idioms/framework classes/etc that suit your problem domain best.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastEditorUserId="5185" LastEditorDisplayName="" LastEditDate="2010-11-02T18:16:55.197" LastActivityDate="2010-11-02T18:16:55.197" CommunityOwnedDate="2011-01-23T10:19:44.323" CommentCount="4" />
  <row Id="16313" PostTypeId="2" ParentId="16308" CreationDate="2010-11-02T16:50:37.770" Score="7" ViewCount="" Body="&lt;p&gt;Don't forget about meetings, people interrupting you, etc.  Unforseen bugs are difficult to predict, but over time you should be able to get an idea of how many bugs you uncover within a certain time frame.  When estimating how long something will take, you have to consider the context.  I.e. &quot;Assuming I don't get interrupted or uncover bugs I should be able to do something in X amount of time&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a little exercise for yourself, consider doing the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;At the beginning of the day, write down what your goal is and the time estimate for it.&lt;/li&gt;&#xA;&lt;li&gt;At every interruption (meeting, coworker talking, etc.), jot down the approximate length of time&lt;/li&gt;&#xA;&lt;li&gt;Every time you find a new bug, jot it down as an unplanned task along with approximately how long it took to develop it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You'll find some patterns start to emerge, and can plan accordingly for those.  Any time you tell your manager an estimated time of completion, just caveat it with the assumption in the first paragraph.  You might be surprised how accurate your estimate was when you remove the time spent on interruptions and bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you are working to a bug list or feature list, you are probably already doing the first and third bullet point.  That little exercise will tell you where all your time is going, and you might be surprised at the answer.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-11-02T16:50:37.770" CommentCount="1" />
  <row Id="16314" PostTypeId="2" ParentId="16308" CreationDate="2010-11-02T16:53:10.520" Score="13" ViewCount="" Body="&lt;p&gt;Because you were never &lt;em&gt;taught&lt;/em&gt; how to plan.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Planning is a skill&lt;/strong&gt;, just like coding or writing. But somehow it is left out of nearly every curriculum. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It needs to be learned and practiced, and your estimates of your own capabilities need to be continuously updated. This is why work practices like Agile emphasize measuring your past actual work and comparing it to your estimates, so that you can improve your planning abilities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As others have said, you need to account not only for the task, but for all its predecessors, attendant tasks (e.g., learning how to do X), and you need to be cognizant of your own internal mental biases that will prevent you from correctly accounting for the way you actually do work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Train on it, and who knows, you might get better.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-11-02T16:53:10.520" CommentCount="10" />
  <row Id="16315" PostTypeId="2" ParentId="16301" CreationDate="2010-11-02T16:53:24.520" Score="4" ViewCount="" Body="&lt;p&gt;Remove as many impediments as you can between what you're thinking and what you're producing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although trivial, one important place to start is learning the keyboard shortcuts for whatever IDE or editor that you're using. You'll be suprised at how much faster you can go - not just because you'll be typing faster but more importantly you'll not be losing focus whilst you shift from keyboard to mouse and back again.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-02T16:53:24.520" CommunityOwnedDate="2011-01-23T10:19:44.323" CommentCount="3" />
  <row Id="16316" PostTypeId="2" ParentId="16308" CreationDate="2010-11-02T16:54:39.350" Score="1" ViewCount="" Body="&lt;p&gt;Because you aren't planning correctly. &lt;em&gt;Ouch&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I bet if you keep a running total of how much you slip by (on paper even), then adjust your estimates up by that %, you'll be able to plan correctly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FWIW, software is notoriously hard to estimate. McConnell (of Code Complete fame) has a book out on it even. &lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-02T16:54:39.350" />
  <row Id="16317" PostTypeId="2" ParentId="16301" CreationDate="2010-11-02T16:59:51.590" Score="17" ViewCount="" Body="&lt;p&gt;One of the biggest time sinks is tracking down bugs.  I find that this can be greatly reduced by using asserts liberally throughout the codebase.  This makes sure that, if your code has a bug, it fails fast, with a good diagnostic error message, and close to the root of the problem.  Asserts are not a substitute for unit tests, but IMHO if you're going to focus your energy on one or the other, asserts are more important because:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Some things are inherently hard to come up with a good test case for.&lt;/li&gt;&#xA;&lt;li&gt;Unless your unit tests are ridiculously fine grained, asserts often narrow down the root cause of a bug more than failing unit tests do.&lt;/li&gt;&#xA;&lt;li&gt;Unit tests only test the specific test cases that you thought of.  Asserts are more general sanity checks that will see real-world inputs.&lt;/li&gt;&#xA;&lt;li&gt;You can write asserts as you go.  Unit tests need to to be written as a separate step.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-02T16:59:51.590" CommunityOwnedDate="2011-01-23T10:19:44.323" CommentCount="4" />
  <row Id="16318" PostTypeId="2" ParentId="16308" CreationDate="2010-11-02T17:11:35.413" Score="1" ViewCount="" Body="&lt;p&gt;Something I often find myself doing is getting distracted by random stuff that is unrelated to what I'm doing. A todo list can help with that; when you think of something, write it down and do it after you finish what's in front of you.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2010-12-14T18:15:31.487" LastActivityDate="2010-12-14T18:15:31.487" />
  <row Id="16319" PostTypeId="2" ParentId="16179" CreationDate="2010-11-02T17:21:14.887" Score="8" ViewCount="" Body="&lt;p&gt;There is no solution to complexity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In &quot;The Mythical Man-Month&quot;, Fred Brooks discusses the difference between accidental and essential complexity in programming.  Accidental complexity is caused by our tools and methods, such as having to write and test additional code in a language because we can't express our ideas directly, and things like that.  New methods and techniques can reduce accidental complexity.  I can write programs faster and better than I could twenty-five years ago, because I have better languages and tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essential complexity comes from the fact that what we try to do with programming is inherently complicated, and that there is an irreducible complexity.  &quot;Essential&quot;, in this context, means &quot;relating to the essence of the thing&quot; rather than &quot;very necessary&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, he claimed that there would be no silver bullet, that writing software would continue to be difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I strongly recommend that you read his book:  specifically, I recommend the Silver Anniversary edition, with an additional essay &quot;No Silver Bullet&quot;.  In that, he reviews the proposed solutions to complexity and considers their impact.  (What he finds the most effective is shrink-wrap software - write something complex once, and sell thousands or millions of copies.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, object-oriented programming helps, when done right, by creating abstractions and hiding away complexity.  An object of a class has a certain defined behavior that we can reason from, without caring about the complexity of the implementation.  Properly written classes have low coupling with each other, and divide-and-conquer is an excellent way to deal with complexity if you can get away with it.  They also have high cohesion, in that they're a set of functions and data that relate very closely to each other.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastEditorUserId="2344" LastEditorDisplayName="" LastEditDate="2010-11-02T17:54:11.037" LastActivityDate="2010-11-02T17:54:11.037" CommentCount="2" />
  <row Id="16320" PostTypeId="2" ParentId="16257" CreationDate="2010-11-02T17:22:51.670" Score="4" ViewCount="" Body="&lt;p&gt;Since you mentioned &lt;strong&gt;GRE&lt;/strong&gt;, you're probably asking about your chances of &lt;strong&gt;graduate school admission&lt;/strong&gt; and how they may be impacted by your Oracle certification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that is the case, then the answer is simple: it won't have any impact.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I met quite a few students at my alma mater (I have MS in &lt;a href=&quot;http://www.cs.rpi.edu/&quot; rel=&quot;nofollow&quot;&gt;Computer Science from RPI&lt;/a&gt;) who had spent some time in the industry after getting their BS.  So, I guess our admissions committee gave some weight to their experience.  But, they would certainly not care for any kind of certificate from Oracle or Microsoft or whatever.  Also, there were many students at the same time who went to graduate school right after finishing their bachelor's degree.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your time and money would be much better spent on:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;studying for your GRE to improve your scores&lt;/li&gt;&#xA;&lt;li&gt;taking GRE Subject test (if your desired university requires it)&lt;/li&gt;&#xA;&lt;li&gt;current coursework (and possibly increasing GPA)&lt;/li&gt;&#xA;&lt;li&gt;researching universities, their CS departments and professors so that you can find the right places to do the research you're interested in.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-02T17:22:51.670" CommentCount="2" />
  <row Id="16321" PostTypeId="2" ParentId="2339" CreationDate="2010-11-02T17:34:24.003" Score="1" ViewCount="" Body="&lt;p&gt;I once competed quite successfully in Google Code Jam using Java (was 2nd in the world in one round in 2004). However I don't think this was much to do with Java - rather it was the speed advantage that you get from using a language that you know extremely well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My tips for this kind of competition are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Know your language and standard libraries inside out. You don't have time to look things up.&lt;/li&gt;&#xA;&lt;li&gt;Do as many practice rounds as you can.&lt;/li&gt;&#xA;&lt;li&gt;Practise writing lots of standard algorithms / patterns so that you can whip out a variant very quickly (e.g. breadth-first-searches).&lt;/li&gt;&#xA;&lt;li&gt;Don't start coding until you've found a good solution to the problem. Sketch it on paper if you need to.&lt;/li&gt;&#xA;&lt;li&gt;Test your solution before you submit!!!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Nowadays I'd pick Clojure if given the choice for the following concrete reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Dynamic language (so no need to bother about typing everything)&lt;/li&gt;&#xA;&lt;li&gt;Functional programming is very well suited for algorithms&lt;/li&gt;&#xA;&lt;li&gt;LISPs can be extremely concise &lt;/li&gt;&#xA;&lt;li&gt;Runs pretty fast when JIT-compiled on the JVM&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Of course, you need a few weeks of extreme parenthesis conditioning.....&lt;/p&gt;&#xA;" OwnerUserId="6909" LastActivityDate="2010-11-02T17:34:24.003" />
  <row Id="16322" PostTypeId="2" ParentId="16025" CreationDate="2010-11-02T17:47:24.850" Score="2" ViewCount="" Body="&lt;p&gt;Motivation.  It's harder to learn something when you don't see why, and also when you can't look at what you did and figure whether you did it right or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's needed is small projects that use OO to do useful things.  I'd suggest looking through a book on design patterns and come up with one that is obviously useful and works well with OO.  (I used Strategy the one time I tried it.  Something like Flyweight or Singleton would be bad choices, since they're ways of using objects in general, not using objects to accomplish something.)&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-02T17:47:24.850" CommentCount="1" />
  <row Id="16323" PostTypeId="1" AcceptedAnswerId="16559" CreationDate="2010-11-02T18:04:49.437" Score="2" ViewCount="563" Body="&lt;p&gt;After reading this post about &lt;a href=&quot;http://programmers.stackexchange.com/questions/10675/ideal-programming-language-learning-sequence&quot;&gt;ideal programming language learning sequence&lt;/a&gt;, I am wondering what would have been the answers if the question was performance -instead of learning- oriented ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since there are many programming languages I chose to ask the question for OOL to be the least subjective. But any thought or comparison about no-OOL are appreciated :D&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If we omit the programming effort, time and costs. What is your ranking of the most powerful object oriented languages ?&lt;/p&gt;&#xA;" OwnerUserId="6912" LastActivityDate="2010-11-03T16:34:30.040" Title="Object Oriented Programming Language performance ranking" Tags="&lt;programming-languages&gt;&lt;performance&gt;" AnswerCount="7" FavoriteCount="1" />
  <row Id="16324" PostTypeId="2" ParentId="16296" CreationDate="2010-11-02T18:09:04.283" Score="3" ViewCount="" Body="&lt;p&gt;When running my startup Tribily.com I took a risk on some people, which didn't always work out very well. The trick is that I start with every person on a freelance basis. If it works out, we can go look at a contract, although right now all 5 of my engineers are contracted freelancers. I just find it works a lot better for my situation.&#xA;That said, we are completely self-funded. I could see this be a lot less of an issue if there's actual funds to hire people :)&lt;/p&gt;&#xA;" OwnerUserId="6917" LastActivityDate="2010-11-02T18:09:04.283" CommentCount="2" />
  <row Id="16325" PostTypeId="1" AcceptedAnswerId="16334" CreationDate="2010-11-02T18:12:34.763" Score="7" ViewCount="546" Body="&lt;p&gt;Hi fellow programmers,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In thinking of making a good introductory resource guide for new Computer Science students...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What is a good list of expected knowledge and ability for a computer science BS grad?&lt;/strong&gt;  And if you graduated a while ago, how does this compare to the standards for graduates at that time?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, are there any things you would want college grads to know that most entering the field don't?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many thanks!&lt;/p&gt;&#xA;" OwnerUserId="5904" LastActivityDate="2010-11-03T03:25:27.023" Title="What should a CS grad know?" Tags="&lt;education&gt;&lt;computer-science&gt;&lt;university&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="4" />
  <row Id="16326" PostTypeId="1" AcceptedAnswerId="16328" CreationDate="2010-11-02T18:21:05.920" Score="17" ViewCount="426" Body="&lt;p&gt;I suck at estimates. When someone asks me how long something will take, I don't even dare to make a guess since I will be completely off the mark. Usually I'm way too optimistic, and should probably multiply my guess with some large X factor...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can I learn to make better estimates? It's not taught at my uni, and even though we have deadlines for all laborations I never think about how long something will actually take. Which I should. For everyone's sake (especially mine).&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-12-02T05:08:34.197" Title="How to learn to make better estimates?" Tags="&lt;estimation&gt;&lt;how-to&gt;" AnswerCount="14" CommentCount="1" FavoriteCount="7" />
  <row Id="16327" PostTypeId="2" ParentId="16323" CreationDate="2010-11-02T18:21:59.180" Score="0" ViewCount="" Body="&lt;p&gt;I would say Java for rapid application development, and C++ for raw power.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java has numorous libraries thta make development much simpler - example being the Swing API which make GUI development almost ridiculously easy, especially with an IDE like Netbeans. Also file I/O is much easier (IMO) in Java than C/C++. Java also has the advantage of being easily ported to other platform since it runs in a virtual machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ has long been used in the graphics community. In my understanding, it is used because it works closely with the hardware (being loosely typed and compiled, not interpreted in any way) but still uses object-oriented principles for structure and organization. The compilable aspect is important for GPU programming. Also, I don't think you can drop ASM instruction in a Java program. The combination of speed and flexibility makes C++ ideal for graphics processing and other real-time applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, in short, whichever language fits best for your application. These are just the two object-oriented languages that I am most familiar with; there may be others as well that are better than these in certain applications.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2010-11-02T19:19:38.527" LastActivityDate="2010-11-02T19:19:38.527" CommentCount="6" />
  <row Id="16328" PostTypeId="2" ParentId="16326" CreationDate="2010-11-02T18:25:41.287" Score="10" ViewCount="" Body="&lt;p&gt;I'm still not great at it, but I have found that tracking how long you estimate for tasks and how long you actually take can be a big help.  That way you can get a solid idea of how far off you usually are.  Issue management software with time tracking (Jira in my case) or a spread sheet can be a big help with this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think more than anything it's an experience thing.&lt;/p&gt;&#xA;" OwnerUserId="5323" LastActivityDate="2010-11-02T18:25:41.287" CommentCount="1" />
  <row Id="16329" PostTypeId="2" ParentId="16325" CreationDate="2010-11-02T18:25:59.837" Score="12" ViewCount="" Body="&lt;p&gt;I'd say the #1 most important thing for any recent grad to know is &lt;strong&gt;How to Teach Themselves&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I see students that sometimes think that once they're done their degree they'll know everything they need to know for a job in the IT field but that just isn't the case. I think understanding that you need to keep learning, and being able to teach yourself new things is a very important skill for anyone starting out in this field. &lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-11-02T18:25:59.837" />
  <row Id="16330" PostTypeId="2" ParentId="16326" CreationDate="2010-11-02T18:26:25.850" Score="5" ViewCount="" Body="&lt;p&gt;You can learn by doing them &lt;strong&gt;collectively&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use &lt;strong&gt;Planning Poker&lt;/strong&gt;. It a &lt;a href=&quot;http://en.wikipedia.org/wiki/Planning_poker&quot; rel=&quot;nofollow&quot;&gt;consensus-based&lt;/a&gt; technique for estimating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your estimation must be tracked and compared to what you have effectively done. You will get the &lt;strong&gt;&lt;a href=&quot;http://www.scrumalliance.org/articles/39-glossary-of-scrum-terms#1110&quot; rel=&quot;nofollow&quot;&gt;Velocity&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each time you estimate something, multiplicate by your recent velocity to get &lt;strong&gt;accurate estimation&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-02T18:40:48.407" LastActivityDate="2010-11-02T18:40:48.407" CommentCount="4" />
  <row Id="16331" PostTypeId="2" ParentId="16025" CreationDate="2010-11-02T18:26:30.087" Score="0" ViewCount="" Body="&lt;p&gt;The main jump for me was just understanding the abstract concept of OOP. Now I'm very new to programming in general I've been programming for a year to a year and a half now so my introduction into OOP was with Actionscript and Processing. When I first learned Actionscript coding, it wasn't in OOP. I learned to code directly into the Actions panel and that is how I learned the basic fundamentals of programming (variables, functions, loops etc). So I learned it as doing something directly to the stage in Flash or Processing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When OOP came into things, realizing that I could create methods and properties within an object to be able to use and reuse was a little difficult for me to grasp at first. Everything was very abstract and difficult to process but the programming languages themselves a lot better but it kind of took a leap of faith to make those connections at first.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-02T18:26:30.087" CommentCount="1" />
  <row Id="16332" PostTypeId="2" ParentId="16296" CreationDate="2010-11-02T18:26:58.533" Score="6" ViewCount="" Body="&lt;p&gt;Well, I do have some experience with this situation.  A point you may be overlooking is how those established companies have a reputation that may well allow them to be picky.  For any position, if there are hundreds of applications they can weed out whomever they want in a sense.  Start-ups do not get the same deluge of resumes which can mean that if filling the position becomes crucial to the success of the company, they will take the best they can get which will often be less than perfect.  Your counter-intuitive point does make business sense but there are plenty of times where when theory meets practice, practice brutally teaches the world a lesson, in my experience.  If you want to see this in action, just go to the University of Waterloo and each semester look at the jobs posted by big established companies like Microsoft and notice how many applications go into those boxes compared to others that may be with a much smaller company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example of that would be the idea of releasing software with bugs.  In theory, if there are bugs in the software, this should be fixed before one ships the software.  However, if one really holds that view, the software will likely never ship.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have had a couple of interviews for positions at Microsoft.  The first one I bombed rather horribly and couldn't believe I had the issues that I did.  The second time I got up to the hiring manager being on the fence and I declined to try to fight for why I should get hired as there were 2 areas where I seemed to be so-so and thus wasn't a solid, &quot;Yes, we should get him,&quot; situation.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-02T18:26:58.533" />
  <row Id="16333" PostTypeId="2" ParentId="16326" CreationDate="2010-11-02T18:29:12.883" Score="2" ViewCount="" Body="&lt;p&gt;Whenever you encounter an estimation problem, try to split them in to smaller pieces. Then see if you have already done stuff similar to the pieces. If you have, you should already have a fair idea of how long each piece takes. If you don't, you should start to actively keep track of time taken for various kinds of tasks. This will help you in future estimations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Total time needed will be more than the sum of the individual pieces, since you need some time for integration and testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you haven't done something similar, you can probably rely on other peoples experience and get an estimate from them. Don't take this at face value though. Nothing teaches you like experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its kind of like shooting a target. Previous shots at estimation should tell you how off the mark you are, so that you can correct it.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-11-02T18:29:12.883" />
  <row Id="16334" PostTypeId="2" ParentId="16325" CreationDate="2010-11-02T18:33:28.697" Score="15" ViewCount="" Body="&lt;p&gt;I'm not a CS grad, but I am a coder and I've hired other coders.  Here are some of the things I wish more of them knew:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Enough about language design to know which language is the best tool for a given job.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;How to use an issue tracker.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;How to use revision control.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;How to pick up new skills on the fly (technology is always evolving!) without being spoon fed.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;How to effectively document their code.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;How to effectively manage their time.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;How to communicate well with their boss and coworkers.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Lastly and most importantly, at least in open source shops like mine: &lt;strong&gt;They should grok open source, including how to use community resources, and generally be a good hacker-citizen.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-02T18:33:28.697" CommentCount="11" />
  <row Id="16335" PostTypeId="2" ParentId="16326" CreationDate="2010-11-02T18:33:35.217" Score="1" ViewCount="" Body="&lt;p&gt;You could try to build a track record of what was the estimate and what was the actual for various tasks to build up enough of a record to then know what multiplier to have for specific things that get repeated in your list.  Granted this is a trial and error exercise but it has seemed to work fine for me.  There is also something to be said for many trials before the pattern emerges probably.  This is likely similar to a lot of other answers that would say that one could boil down to, &quot;Just do it!&quot; as that is really how most of us developed the skill.  Is it a major pain to see how wrong one can be when making estimates?  Yes, but if the estimates get better then everyone can be happy eventually.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-02T18:33:35.217" />
  <row Id="16336" PostTypeId="2" ParentId="16325" CreationDate="2010-11-02T18:39:11.823" Score="1" ViewCount="" Body="&lt;p&gt;Here's a recap of what my CS courses covered back in the mid 90s as I graduated in 1997:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;1st year - basic write a program using Pascal and know some basic tests to do. Learning of various types and things like arrays and linked lists.&lt;/li&gt;&#xA;&lt;li&gt;2nd year - Types of testing, white box, black box and permutation.  Basics of the Software Development Life Cycle.  Introduction to parsing and some basics of how a compiler works.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There were 6 3rd year courses where I went to university that covered the following topics:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Data Structures &amp;amp; Algorithms&lt;/li&gt;&#xA;&lt;li&gt;Concurrent Programming&lt;/li&gt;&#xA;&lt;li&gt;Digital Design and Architecture&lt;/li&gt;&#xA;&lt;li&gt;Operating Systems&lt;/li&gt;&#xA;&lt;li&gt;Theory of finite automata&lt;/li&gt;&#xA;&lt;li&gt;Numerical Analysis&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Part of the Operating Systems course covered TCP/UDP and some other network elements like sending packets and OSI layers.  The Web had only really started to take off in my later years when Netscape Navigator and Yahoo! were big internet names if you remember those years.  I never had a formal course on e-mail, but after my first year I did have an e-mail account and was on the UNIX network as that is what we used after the first year Macs to do our work.  There was even an electronic submit that automatically sent assignments to the proper place to be graded.  This was also back when there were newsgroups for all sorts of things, including various classes I took.  While there was a 4th year Distributed Systems course I opted for the more theoretical mix of Algorithm Design &amp;amp; Analysis, Computational Complexity Theory, Introduction to Artificial Intelligence, and Symbolic Computation, which was a nice contrast to Numerical Analysis in many ways.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastEditorUserId="4327" LastEditorDisplayName="" LastEditDate="2010-11-02T21:28:35.060" LastActivityDate="2010-11-02T21:28:35.060" CommentCount="1" />
  <row Id="16337" PostTypeId="2" ParentId="16289" CreationDate="2010-11-02T18:40:09.547" Score="6" ViewCount="" Body="&lt;p&gt;As others have said, it's a very personal question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, the 1.5-2 hour commute, not seeing my son enough, etc. wasn't worth the money.  I started a small consulting firm so that I could work 90% from home, and do the things I wanted to do with and for my family.  I make less money than I could at a big firm, but I'm also less stressed and generally happier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start looking at what other opportunities are out there.  Deciding whether to change or not is hard to do without some idea what you would be changing &lt;em&gt;to&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-02T18:40:09.547" CommentCount="2" />
  <row Id="16338" PostTypeId="2" ParentId="16325" CreationDate="2010-11-02T18:41:54.863" Score="4" ViewCount="" Body="&lt;p&gt;How to teach themselves is the most important, but a Computer Science BS grad should be expected to know:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Difference between primitive and&#xA;reference value types.&lt;/li&gt;&#xA;&lt;li&gt;Conditional statements and loop constructs.&lt;/li&gt;&#xA;&lt;li&gt;Functions and recursion.&lt;/li&gt;&#xA;&lt;li&gt;Data structures such as array, linked list, queue, dictionary, and tree.&lt;/li&gt;&#xA;&lt;li&gt;Objects, polymorphism, and inheritance.&lt;/li&gt;&#xA;&lt;li&gt;How to query a relational database.&lt;/li&gt;&#xA;&lt;li&gt;Basic theory behind concurrency constructs and techniques.&lt;/li&gt;&#xA;&lt;li&gt;Basic theory behind compilers, tcp/ip, and web servers.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What they should know:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Power user level knowledge of at least one OS.&lt;/li&gt;&#xA;&lt;li&gt;Source control&lt;/li&gt;&#xA;&lt;li&gt;Build tools&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6920" LastActivityDate="2010-11-02T18:41:54.863" />
  <row Id="16339" PostTypeId="2" ParentId="16301" CreationDate="2010-11-02T18:49:22.807" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Learn your Keyboard Shortcuts&lt;/strong&gt;. I can't tell you how much time that has saved me by being able to hit a key combination instead of using my mouse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Macros&lt;/strong&gt; are also a huge help if they're available in your IDE&lt;/p&gt;&#xA;" OwnerUserId="1130" LastEditorUserId="1130" LastEditorDisplayName="" LastEditDate="2010-11-02T19:45:37.690" LastActivityDate="2010-11-02T19:45:37.690" CommunityOwnedDate="2011-01-23T10:19:44.323" CommentCount="6" />
  <row Id="16340" PostTypeId="2" ParentId="16325" CreationDate="2010-11-02T18:59:55.147" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Willing to learn&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;And, The power of Internet&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-11-02T18:59:55.147" CommentCount="0" />
  <row Id="16341" PostTypeId="2" ParentId="16326" CreationDate="2010-11-02T19:00:07.757" Score="1" ViewCount="" Body="&lt;p&gt;If you can decompose the project into smaller tasks and do estimates for those you will be more accurate over-all. Any task bigger than a couple days should be broken down further. If you can't break it down further than you probably have a requirements gap. If you have to do a back-of-the-napkin estimate for a one-line requirement well...nothing can really help you much. Sadly a lot of shops work this way much of the time.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-02T19:00:07.757" />
  <row Id="16342" PostTypeId="2" ParentId="16179" CreationDate="2010-11-02T19:03:33.280" Score="2" ViewCount="" Body="&lt;p&gt;Object oriented programming &lt;em&gt;manages&lt;/em&gt; essential and optional complexity, but does not reduce either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer the definition provided by Eric Steven Raymond in &lt;strong&gt;The Art of Unix Programming&lt;/strong&gt;, because it delineates between essential, optional, and accidental complexity.&#xA;&lt;a href=&quot;http://www.faqs.org/docs/artu/ch13s01.html#id2964646&quot; rel=&quot;nofollow&quot;&gt;http://www.faqs.org/docs/artu/ch13s01.html#id2964646&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OOP does nothing for essential or optional complexity, they are a function of the program's requirements.  It can have an effect on accidental complexity, in that you can create a more elegant design sometimes with OOP.  Sometimes however, the design is worse when using OOP.&lt;/p&gt;&#xA;" OwnerUserId="6920" LastActivityDate="2010-11-02T19:03:33.280" />
  <row Id="16343" PostTypeId="2" ParentId="16326" CreationDate="2010-11-02T19:08:47.587" Score="0" ViewCount="" Body="&lt;p&gt;Learn your own bias. If your last estimate has been too low by factor two, next time, double your initial estimate. (Of course, Hofstadter's law makes it hard to do that right...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also always a good idea to remember how much work was needed after the initial release of the previous work, and add that to the next estimate. E.g. your last task took 2 months to complete, but after going live, support, hotfixes and additional changes have cost you another month, so, next time estimate 3 months for a similar task.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-02T19:08:47.587" />
  <row Id="16346" PostTypeId="2" ParentId="16323" CreationDate="2010-11-02T19:14:35.513" Score="1" ViewCount="" Body="&lt;p&gt;Omitting development effort, time, and cost you are going to get the most performance from a languages that are statically typed and compiled.  Dynamic interpreted (or Just in time compiled a.k.a. JIT) languages on the other hand generally are expected to reduce development effort, time, and cost.  Additionally however they are expected to reduce deployment effort, time, and cost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ is going one of the obvious winners here and is used extensively in the game development community for that reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scalable solutions however seem to benefit from the reduced deployment costs of dynamic and interpreted languages.  So while one box may run slower than equivalent C++ code, a cloud of interpreters or virtual machines may have the advantage assuming equal deployment budgets.  Java is one example, but clouds of Ruby or particularly Scala may be more indicative of this trend.&lt;/p&gt;&#xA;" OwnerUserId="6920" LastActivityDate="2010-11-02T19:14:35.513" />
  <row Id="16347" PostTypeId="2" ParentId="16308" CreationDate="2010-11-02T19:14:53.487" Score="20" ViewCount="" Body="&lt;p&gt;Hard to believe that nobody has mentioned &lt;a href=&quot;http://en.wikipedia.org/wiki/Hofstadter%27s_law&quot; rel=&quot;nofollow&quot;&gt;Hofstadter's law&lt;/a&gt; yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the real answer is that your planning always assumes a best-case scenario, as if everything worked immediately an no interruption ever occured. In real life, you start coding, then the telefone rings, you are distracted for 5 minutest, spend another 15 minutes on stackoverflow or programmers.stackexchange to calm down and refocus, do some coding, run into an unexpected behaviour of some API, do some googling, spend 2 hourse to test the possible solutions etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other word: &quot;best-case&quot; only happens in your dreams.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="6617" LastEditorDisplayName="" LastEditDate="2010-11-03T08:04:32.233" LastActivityDate="2010-11-03T08:04:32.233" CommentCount="3" />
  <row Id="16348" PostTypeId="2" ParentId="16323" CreationDate="2010-11-02T19:19:20.277" Score="2" ViewCount="" Body="&lt;p&gt;Any time you care deeply about performance, you generally want to get as close to the metal as you can.  In most languages, you can write out performance critical segments in C code.  C programmers can drop down to assembly language for the really critical stuff.  So if I'm writing some C# code, but I really need a tight performance on an inner loop, I can write some C or C++ code and use interop to call that code.  If I need even more performance, I can write assembly in my C library.  Going lower than assembly is possible, but who wants to write machine code these days?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, and this is the big consideration, dropping close to the metal is only high-performance for small, tight goals.  If I was writing a 3D renderer, I might do the floating point math and rendering in C, (using a library to execute it on the video card.)  But performance problems are also architectural, and performance issues from large-scale problems are often better solved in a high level language.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look at Erlang: Ericsson needed a language to do massive parallel work easily, because doing parallel processing was going to get them way more performance than any tightly optimized C routines running on one CPU core.  Likewise, having the fastest code running in your loop is only performance enhancing if you can't remove the loop entirely by doing something better at the high level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can do huge system, high level programming in C, but sometimes the greater expressiveness of a more powerful language will show opportunities for architectural optimizations that wouldn't be obvious otherwise.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-02T19:19:20.277" CommentCount="7" />
  <row Id="16349" PostTypeId="2" ParentId="16326" CreationDate="2010-11-02T19:32:38.200" Score="3" ViewCount="" Body="&lt;p&gt;Murphy's Law of Time Management:  To figure out how long something &lt;em&gt;will&lt;/em&gt; take, figure out how long it &lt;em&gt;should&lt;/em&gt; take and double it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, move up to the next higher unit of time.  Thus, we allocate two weeks for a one-day project.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-02T19:32:38.200" CommentCount="2" />
  <row Id="16350" PostTypeId="2" ParentId="6941" CreationDate="2010-11-02T19:38:22.167" Score="2" ViewCount="" Body="&lt;p&gt;Take job 2. When they pay, they will make sure you do something useful, so you probably get a more valueable real-life experience even if you don't expect it now. Unpaid work has a tendency to allow you &lt;em&gt;watching&lt;/em&gt; real-life work.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-02T19:38:22.167" />
  <row Id="16351" PostTypeId="1" CreationDate="2010-11-02T19:39:35.333" Score="4" ViewCount="272" Body="&lt;p&gt;A few years ago when IE was by far the most used browser, Microsoft didn't seem interested in making it better nor competing with browsers that were slowly gaining more users like Firefox and Chrome. Now, with Windows 7 coming without IE in some parts of the world and IE users dropping significantly they are suddenly promoting IE 9 intensively. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are they seeing some big opportunity that they've missed in the past? Why do you think they care and want to make IE better all of a sudden ? &lt;/p&gt;&#xA;" OwnerUserId="6806" LastActivityDate="2010-11-02T22:08:22.877" ClosedDate="2010-11-02T22:16:04.523" Title="Why Microsoft suddenly became interested in competing with the other browser companies ?" Tags="&lt;microsoft&gt;&lt;browser&gt;" AnswerCount="10" CommentCount="4" FavoriteCount="1" />
  <row Id="16352" PostTypeId="2" ParentId="16351" CreationDate="2010-11-02T19:42:25.193" Score="2" ViewCount="" Body="&lt;p&gt;For several years, their market share had been so high (&gt;90%) that some years ago, they simply saw no need to improve IE(6). Now that firefox and chrome have closed up, and in some parts, took the lead, they are struggling to get back what they've lost.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="6617" LastEditorDisplayName="" LastEditDate="2010-11-02T21:09:07.763" LastActivityDate="2010-11-02T21:09:07.763" />
  <row Id="16353" PostTypeId="2" ParentId="16351" CreationDate="2010-11-02T19:43:51.387" Score="4" ViewCount="" Body="&lt;p&gt;Why promote something that is already used by the majority of web users?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the recent security issues, and with Chrome coming out and FF improving, I think they are realizing they actually need to TRY and keep their users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I love Chrome :)&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-11-02T19:43:51.387" CommentCount="1" />
  <row Id="16354" PostTypeId="1" AcceptedAnswerId="16357" CreationDate="2010-11-02T19:44:31.743" Score="7" ViewCount="297" Body="&lt;p&gt;Planning is very difficult. We are not naturally good at estimating our own future, and many cognitive biases exacerbate the problem. Group planning is even harder. Incomplete information, inconsistent views of a situation, and communication problems compound the difficulty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Agile methods provide one framework for organizing group planning--making planning visible to everyone (user stories), breaking it into smaller chunks (sprints), and providing retrospective analysis so you get better at planning. But finding good tools to support these practices is proving tricky.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What software tools do you use to achieve these goals? Why are you using that tool? What successes have &lt;strong&gt;you&lt;/strong&gt; had with a particular tool?&lt;/p&gt;&#xA;" OwnerUserId="2983" LastEditorUserId="2983" LastEditorDisplayName="" LastEditDate="2010-11-02T20:00:32.487" LastActivityDate="2010-12-28T03:53:40.813" Title="What software do you use to help plan your team work, and why?" Tags="&lt;tools&gt;&lt;programming-practices&gt;&lt;planning&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="16356" PostTypeId="2" ParentId="16351" CreationDate="2010-11-02T19:46:04.457" Score="9" ViewCount="" Body="&lt;p&gt;Browsers make money through the default search engine. There is money to be made if you have a lot of users using the search in your browser, especially for Microsoft if Bing is primary, like it is in IE.&lt;/p&gt;&#xA;" OwnerUserId="5025" LastActivityDate="2010-11-02T19:46:04.457" CommentCount="3" />
  <row Id="16357" PostTypeId="2" ParentId="16354" CreationDate="2010-11-02T19:54:54.663" Score="3" ViewCount="" Body="&lt;h3&gt;&lt;a href=&quot;http://www.omnigroup.com/products/omniplan/&quot; rel=&quot;nofollow&quot;&gt;OmniPlan&lt;/a&gt;&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Mac OS X planning tool.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;&lt;a href=&quot;http://www.pivotaltracker.com/&quot; rel=&quot;nofollow&quot;&gt;Pivotal Tracker&lt;/a&gt;&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Useful even if you aren't doing &quot;agile&quot; development.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;&lt;a href=&quot;http://www.fogcreek.com/FogBugz/&quot; rel=&quot;nofollow&quot;&gt;FogBugz&lt;/a&gt;&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Incredibly useful and featured issue tracking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use these in conjunction. OmniPlan is great to lay out all the tasks that need to be completed and divide them among your team. You can setup critical paths (things that &lt;strong&gt;must&lt;/strong&gt; happen for completion) and breakdown overall effort. Also great visually for management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pivotal is excellent for keeping up your development pace. If you fully subscribe to agile methodology it's excellent, but still very useful to track features, dependent components, and currently active status.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FogBugz provides an easy to use interface for non-programmers to submit bugs or feature requests and monitor progress. Issues that come in are evaluated and logged in Pivotal. Then they get moved into OmniPlan if it becomes a larger task with multiple components. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-11-02T20:08:20.370" LastActivityDate="2010-11-02T20:08:20.370" CommentCount="2" />
  <row Id="16358" PostTypeId="2" ParentId="16351" CreationDate="2010-11-02T19:55:37.523" Score="1" ViewCount="" Body="&lt;p&gt;Its probably because I.E. 8 and down don't support HTML 5. If they want to be able to push their tool support for HTML 5, developers have to believe that it will be supported.&lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-11-02T19:55:37.523" />
  <row Id="16359" PostTypeId="2" ParentId="16351" CreationDate="2010-11-02T19:59:09.290" Score="8" ViewCount="" Body="&lt;p&gt;Microsoft is primarily a platform company and will try to strangle anything that threatens to compete with the Windows platform.  For a while back in the Netscape days, the browser-as-a-platform was all the rage.  Microsoft got scared and made sure Netscape was sent to the ash heap of history.  Then, for awhile, Microsoft was the &lt;em&gt;de facto&lt;/em&gt; standard for Web browsers and arguably had the best browser available.  Windows was out of danger for the time being, so Microsoft mostly stopped caring about browsers.  Now, cloud computing is becoming the latest buzzword and Microsoft has lost market share to cross-platform browsers, putting its Windows franchise in danger again.  Therefore, Microsoft needs to take browsers seriously again to prevent the cross-platform browser as a platform from reducing the relevance of Windows.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-02T19:59:09.290" CommentCount="5" />
  <row Id="16360" PostTypeId="2" ParentId="16351" CreationDate="2010-11-02T19:59:37.793" Score="2" ViewCount="" Body="&lt;p&gt;They realized they need to use every attack vector against Google.  &lt;/p&gt;&#xA;" OwnerUserId="2527" LastActivityDate="2010-11-02T19:59:37.793" />
  <row Id="16361" PostTypeId="2" ParentId="16326" CreationDate="2010-11-02T20:05:48.470" Score="0" ViewCount="" Body="&lt;p&gt;For openers, read &quot;Software Engineering Economics&quot;, by Barry Boehm, and &quot;Controlling Software Projects&quot;, by Tom DeMarco.  After you have read and digested those two, read &quot;Software Cost Estimation With COCOMO 2&quot;, by Barry Boehm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For what I have to say next, it will help you a LOT to have taken a probability and statistics class, even a basic cookbook one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No estimate is perfect.  There is some probability of coming in early, and some probability of coming in late.  Boehm's original detailed COCOMO model gave predictions that turned out to be within 30% of the actual result, better than 60% of the time.  That was a lot better than what was common when he wrote and published the book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you take your best guess (and that's all an estimate is), you are including those probabilities.  If you pull the estimate in, you are increasing the probability that you will come in late.  If you increase the estimate, you are increasing the probability that you will come in early or finish on time.  How much you pull it in or let it out controls how the probability changes, and must necessarily depend on the penalties for being early or late.  (Insert horror stories here - and there've been a LOT of them over the years!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;DeMarco addresses this to some extent.  He also points out that there is an &quot;impossibility region&quot;: some schedules are just too tight to be made, no matter what kind of heroics are attempted.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-11-02T20:05:48.470" />
  <row Id="16362" PostTypeId="2" ParentId="16351" CreationDate="2010-11-02T20:13:03.303" Score="2" ViewCount="" Body="&lt;p&gt;Two aspects:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The application market is become a web application market, and there's basically nothing microsoft can do about it except for following that market.&lt;/li&gt;&#xA;&lt;li&gt;Microsoft has realized that the server platform can be locked in tight even if you don't control the client platform, as long as nobody else controls the client platform either. It's all about the data and the API's. Exchange dominates the corporate mail sphere despite the abundance of open mail clients.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Their goal with IE9 is to ensure that windows remains the go-to platform for running web applications on top of.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-11-02T20:13:03.303" />
  <row Id="16363" PostTypeId="2" ParentId="16222" CreationDate="2010-11-02T20:28:36.307" Score="1" ViewCount="" Body="&lt;p&gt;Some things I've picked up:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Never make it a yelling contest.&lt;/li&gt;&#xA;&lt;li&gt;It's better to say &quot;give me a few minutes and I'll get back to you on that&quot;.&lt;/li&gt;&#xA;&lt;li&gt;When replying and email, don't send immediately.  Write it, walk away and wait half an hour, come back and read it.  If you are OK with what you wrote then send it.&lt;/li&gt;&#xA;&lt;li&gt;green tea three time a day.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3228" LastActivityDate="2010-11-02T20:28:36.307" />
  <row Id="16364" PostTypeId="2" ParentId="16222" CreationDate="2010-11-02T20:32:04.223" Score="0" ViewCount="" Body="&lt;p&gt;Write an email yelling at the customer and say everything you need to say, but instead send it to yourself.  Then ask yourself the question, what needs to happen so that both I and the customer can meet our objectives?&lt;/p&gt;&#xA;" OwnerUserId="2527" LastActivityDate="2010-11-02T20:32:04.223" />
  <row Id="16365" PostTypeId="1" AcceptedAnswerId="16370" CreationDate="2010-11-02T20:39:17.417" Score="13" ViewCount="497" Body="&lt;p&gt;Apart from the obvious questions relating to specific project work someone is working on are there any questions I should be asking a fellow dev who is leaving the company?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So far I am thinking about;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Locations of things on the server he uses that not maybe everyone does.&lt;/li&gt;&#xA;&lt;li&gt;Credentials he has set up that we wouldn't have needed. &lt;/li&gt;&#xA;&lt;li&gt;Client details he has not yet saved into our CRM system.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5010" LastActivityDate="2010-11-04T00:34:06.083" Title="Questions to ask before someone leaves." Tags="&lt;software-developer&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="2" />
  <row Id="16366" PostTypeId="2" ParentId="16365" CreationDate="2010-11-02T20:41:09.037" Score="15" ViewCount="" Body="&lt;p&gt;Whatever you ask him, &lt;em&gt;record&lt;/em&gt; it.  You will eventually need every little detail and you cannot remember it all even when writing it down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Video conference, screen capture, you name it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then tell him to show you it all....&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-02T20:41:09.037" CommentCount="3" />
  <row Id="16367" PostTypeId="2" ParentId="16354" CreationDate="2010-11-02T20:43:14.683" Score="5" ViewCount="" Body="&lt;p&gt;We use Redmine -&gt; &lt;a href=&quot;http://www.redmine.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.redmine.org/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We log all our dev in there along with support calls so we can see how much time we have free to allocate to a sprint on our latest bit of development.  It is useful because it ties in nicely with our email system and our Version Control System (Git in our case, but it works with others).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Easy to get going out of the box (written in Ruby, will run on most small servers) and with some fairly powerful addons which are easy to install and use.&lt;/p&gt;&#xA;" OwnerUserId="5010" LastActivityDate="2010-11-02T20:43:14.683" />
  <row Id="16368" PostTypeId="2" ParentId="16351" CreationDate="2010-11-02T20:44:07.627" Score="1" ViewCount="" Body="&lt;p&gt;The reason is quite simple:  &quot;What makes us the most money?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having a dominance on the browser means you don't have to spend any more money on it.  It was only after Mozilla rising from the ashes of Netscape that that changed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now Google has Chrome.  It is so good and moves so quickly that my guess is it will win over IE in max 5 years.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-02T20:44:07.627" />
  <row Id="16369" PostTypeId="2" ParentId="16301" CreationDate="2010-11-02T20:49:34.060" Score="0" ViewCount="" Body="&lt;p&gt;interesting question and responses. I try to implement GTD, but struggle to use it with my list of coding tasks (build interface, build model, build view etc), do they all go in the Next Actions list. &#xA;I'm also using the Pomodoro Technique (http://www.pomodorotechnique.com/) well trying.&lt;/p&gt;&#xA;" OwnerUserId="3242" LastActivityDate="2010-11-02T20:49:34.060" CommunityOwnedDate="2011-01-23T10:19:44.323" />
  <row Id="16370" PostTypeId="2" ParentId="16365" CreationDate="2010-11-02T20:52:17.553" Score="22" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A phone number and/or e-mail address.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No matter what you ask him before he leaves, you will remember 10 more things to ask him as you see his car pulling out of the parking lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: you are much more likely to get good information if he is leaving on good terms - try to make the transition as pleasant as possible (no matter why he is leaving).&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-11-02T20:52:17.553" CommentCount="3" />
  <row Id="16371" PostTypeId="2" ParentId="2715" CreationDate="2010-11-02T20:52:36.780" Score="0" ViewCount="" Body="&lt;p&gt;I use;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if ($test) {&#xA;    //something&#xA;} else {&#xA;    //something else&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Because this is the way the phpcs (PHP Codesniffer) likes you to do things when running under it's default setting (which is the Zend standard).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only other thing to note is the space between 'if' and '('&lt;/p&gt;&#xA;" OwnerUserId="5010" LastActivityDate="2010-11-02T20:52:36.780" CommunityOwnedDate="2010-11-02T20:52:36.780" CommentCount="1" />
  <row Id="16372" PostTypeId="2" ParentId="4127" CreationDate="2010-11-02T20:56:59.233" Score="0" ViewCount="" Body="&lt;p&gt;Objective C as used in an Apple environment (you can also use it on Linux) is really a different beast. Just as an example, if you're using &quot;*&quot; for anything except multiplication or specifying a type, you're probably doing something wrong. Unfortunately, you'll be tempted to do just that if you learn C first, so don't.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-02T20:56:59.233" CommentCount="2" />
  <row Id="16373" PostTypeId="1" CreationDate="2010-11-02T21:06:13.680" Score="3" ViewCount="78" Body="&lt;p&gt;i know developers hate taking on the blurry gray world of the business but as i often find myself doing i must undertake Business Process Optimization in order to successfully complete my development tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;as part of this i have seen the bad and the ugly. for example when i worked at an online art portal i was tasked with developing a new banner system for the site. aside from the requirements that it needs to be a scalable system because they get millions of visitors to the site i needed to figure out how banners get added to the system, who edits them and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;to make a long story short i was not able to find a single sole who understood the convoluted homegrown banner system or how to use it. after weeks documenting the current system i found to the surprise of the company there were over 30 steps involved in posting a banner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;now the development was the simple part but the deep dive into the wacky world of this online company was anything but.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;has anyone else had similar horror? i would like to know how best to handle this sticky situation ( after all you cant tell a paying client their systems are crap for a number of reasons... but as we all know - there are many systems like this out there lurking !)&lt;/p&gt;&#xA;" OwnerUserId="6507" LastActivityDate="2010-11-06T21:45:27.847" Title="Business Process Optimization?" Tags="&lt;career&gt;&lt;web-development&gt;" AnswerCount="3" FavoriteCount="0" />
  <row Id="16374" PostTypeId="2" ParentId="16325" CreationDate="2010-11-02T21:08:50.257" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Data-structures&lt;/li&gt;&#xA;&lt;li&gt;Software Engineering (includes team collabaration stuff, use case diagram etc.)&lt;/li&gt;&#xA;&lt;li&gt;Basic understanding of common algorithms &lt;/li&gt;&#xA;&lt;li&gt;Basic understanding of programming languages &lt;/li&gt;&#xA;&lt;li&gt;Basic understanding of compilers (might not be a requirement)&lt;/li&gt;&#xA;&lt;li&gt;Networking&lt;/li&gt;&#xA;&lt;li&gt;Some background in basic AI &lt;/li&gt;&#xA;&lt;li&gt;Basic graphics&lt;/li&gt;&#xA;&lt;li&gt;a couple of programming languages ... &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;that's about it ...&lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-11-02T21:08:50.257" />
  <row Id="16375" PostTypeId="2" ParentId="16323" CreationDate="2010-11-02T21:14:34.970" Score="0" ViewCount="" Body="&lt;p&gt;Other than startup cost I don't know there is a theoretical reason why a JIT platform would not perform as well as a native code platform. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are other language features, like garbage collection, that mean that Java will use more resources and probably be slower but it is very easy to overstate this advantage. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In practice however, there are different programming cultures around C++ than Java. This results in Java designs often being more abstracted, relying more on reflection and various runtime linking patterns that make it hard or even impossible to optimize quite as well. Yes you could do all these same things in C++ and make it slower but in my humble opinion, there is less cultural acceptance of that in the C++ community. I think this is partly due to C++'s reputation for &quot;being fast&quot; - so its self-fulfilling!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For things like device drivers and some embedded applications you have no choice but to use C/C++ but most developers will not encounter these scenarios.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-02T21:14:34.970" />
  <row Id="16376" PostTypeId="2" ParentId="16301" CreationDate="2010-11-02T21:17:54.363" Score="1" ViewCount="" Body="&lt;p&gt;Understand that trying to &quot;do it right the first time&quot; is almost always a futile waste of time, at least if you use the terms the way most people do (e.g., the first thing you deliver to the end customer is a &quot;finished product&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Understand that there &lt;em&gt;will&lt;/em&gt; be bugs -- and no matter how carefully you think about the design, how carefully you write up the requirements, how carefully you test the code, there will &lt;em&gt;still&lt;/em&gt; be bugs (and major ones) on your first attempt. The larger the system and the more different people you're trying to satisfy, the worse those bugs will be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To deliver a system that has &lt;em&gt;any&lt;/em&gt; hope of working, you need to start small, typically delivering a minuscule prototype that &lt;em&gt;nobody&lt;/em&gt; (especially you) thinks is really even close to a finished product. Let the users see and play with it anyway -- and chances are that in a half hour or less, they'll let you know about at least one (and typically more) assumptions you've been making that are &lt;em&gt;completely&lt;/em&gt; wrong, so any more time spent on &quot;getting it right the first time&quot; would have been &lt;em&gt;completely&lt;/em&gt; wasted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong: feedback from users won't guarantee that you get everything right -- but lack of feedback nearly guarantees that you'll get close enough to everything wrong to produce an &quot;instant legacy&quot; system -- something badly enough mucked up that during the introductory training, essentially every user is going to be thinking &quot;how soon can we get rid of this junk?&quot;, and things are going to go downhill from there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Especially when it comes to UI design, you need to deliver early and deliver often. Don't even dream that your first attempt has any hope of being &quot;right&quot;. In fact, a user saying any of your first five attempts is really right &lt;em&gt;usually&lt;/em&gt; means he's gotten bored with trying to explain how badly you've screwed up everything in sight, and you've missed the point so completely that in the next round you return with something dramatically worse.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-02T21:17:54.363" CommunityOwnedDate="2011-01-23T10:19:44.323" CommentCount="2" />
  <row Id="16377" PostTypeId="2" ParentId="16301" CreationDate="2010-11-02T21:18:50.557" Score="12" ViewCount="" Body="&lt;p&gt;Slow down.  I find that rushing things might work in the short term, but in the long term it's detrimental to your productivity (and potentially others' productivity as well).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, remember that there is such thing as &quot;negative work&quot;.  A lot of programmers assume that you can get more done just by working more.  Anymore, I'm beginning to think that 40 hour workweeks might even be too much.  I'd say that I have difficulty putting in more than 30 hours of real, honest-to-god work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thirdly, realize that no programmer has ever died from not meeting their deadlines.  I'm not saying to ignore them.  I'm just saying it helps to have some perspective on things.  Once you realize that, the above two things make a lot more sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, do everything in your power to convince your boss, your coworkers not in programming, and programmers you don't know or trust very well that you feel the above is complete and utter nonsense.  Even if they agree with you, you make yourself too easy a target when people start playing the blame game.  Getting involved in that is a good way to lose your job, never mind your productivity.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-02T21:18:50.557" CommunityOwnedDate="2011-01-23T10:19:44.323" CommentCount="5" />
  <row Id="16378" PostTypeId="2" ParentId="16189" CreationDate="2010-11-02T21:20:40.013" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Graphical user interfaces.&lt;/strong&gt; In the late eighties, early nineties, when Macs, Amigas, Atari STs, Windows and GEM began to replace character based user interfaces, it became obvious that languages like C are not well-suited to write GUI programs. While traditional data processing is considered as a &quot;input data -&gt; processing -&gt; output data&quot; schema, which could be done in a procedural language just as well, OOs features just came handy to handle the inherent complexity of a GUI.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-02T21:20:40.013" />
  <row Id="16379" PostTypeId="2" ParentId="16261" CreationDate="2010-11-02T21:22:23.993" Score="1" ViewCount="" Body="&lt;p&gt;I've been using a 13&quot; Aluminum MacBook for almost 2 years now. I'm a web developer and I've been using it as my primary computer since I purchased it in 2008. The best thing about having such a portable notebook is that I've always got my &quot;environment&quot; with me. Whether it be my development environment or my &quot;recreational&quot; environment. I use VirtualBox on it to virtualize my environments if OS X isn't quite right. In addition, one thing Apple does right is multiple monitor support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prior to purchasing the MacBook I was using Ubuntu in a dual monitor (dual head) setup. I updated the Kernel and it killed my dual head capable driver, and my audio. I was in the middle of a project which I was billing time on and needed to be up and running fast. I went to the Apple store immediately and bought the MacBook and haven't regretted it once.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One complaint about the 13&quot; is that the pixel density is so high that sitting more than 2 feet from the screen will cause it to become difficult to read. So get a gigantic &quot;primary&quot; monitor which you can plug into it when you're not mobile. Those Apple LED displays are nice - but certainly not necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My home setup consists of a 19&quot; monitor with a lower pixel density making it ideal for &quot;leaning back&quot; in my chair while programming. I'll be getting a bigger one eventually. I also employ a USB hub with a wired Apple keyboard and a Microsoft laser mouse connected. That way I plug in three cables and I'm working. I've considered getting an additional power supply to leave plugged in at my desk so I don't have to wrap and unwrap my cables as much; but I'd rather put the ~$90 into a bigger monitor.&lt;/p&gt;&#xA;" OwnerUserId="927" LastActivityDate="2010-11-02T21:22:23.993" />
  <row Id="16380" PostTypeId="2" ParentId="16325" CreationDate="2010-11-02T21:25:08.250" Score="0" ViewCount="" Body="&lt;p&gt;A CS grad should have a pretty good idea of what they &lt;strong&gt;don't&lt;/strong&gt; know. In terms of breadth vs. depth, while a CS grad should have pretty good depth in the basic areas, they should have also walked around the entire field with a spray-bottle making sure that they at least understand what kind of tools and concepts exist. This way, when faced with a problem, they at least have a vague idea if there are possible solutions out there instead of always unknowingly reinventing the wheel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Much of the detailed knowledge I learned in college is long gone, but the shadow of it is there - I don't remember exactly how exactly A* search works or how it's implemented, but I know that it exists and I understand the class of problems it's designed to help solve.&lt;/p&gt;&#xA;" OwnerUserId="3044" LastActivityDate="2010-11-02T21:25:08.250" />
  <row Id="16381" PostTypeId="2" ParentId="16323" CreationDate="2010-11-02T21:35:02.997" Score="1" ViewCount="" Body="&lt;p&gt;It depends.  I'd argue that for long-running processes, Java is about as good a choice as C or C++ is.  Compiled languages get up and running a lot more quickly.  However, in a JITed runtime, the optimizer has better information because it happens at runtime.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, don't forget about OCaml.  It's a compiled object-oriented language that can run at near-C speeds.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-02T21:35:02.997" CommentCount="1" />
  <row Id="16382" PostTypeId="2" ParentId="16257" CreationDate="2010-11-02T21:37:32.147" Score="1" ViewCount="" Body="&lt;p&gt;Admissions won't care at all about how well you can program, or what certifications you have.  They are looking at your grades, GRE scores, and recommendations.  Working on interesting research projects as an undergrad or as an intern will help.  Major contributions to an open-source project &lt;em&gt;may&lt;/em&gt; help.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One place where being an above-average programmer will help is after you get in, when trying to get a Research Assistantship. Professors are looking for students they don't have to train in the fundamentals of programming, so they (the student and the professor) can concentrate on the research question.  Even here, certifications won't help much.  Getting an A in the course they are teaching will.&lt;/p&gt;&#xA;" OwnerUserId="1427" LastActivityDate="2010-11-02T21:37:32.147" CommentCount="1" />
  <row Id="16383" PostTypeId="2" ParentId="16365" CreationDate="2010-11-02T21:38:54.650" Score="10" ViewCount="" Body="&lt;p&gt;Has he checked in everything to source control! Very annoying to find out after his old machine has been reformatted that the last three months of work he did wasn't checked in and no one else has it.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-02T21:38:54.650" CommentCount="10" />
  <row Id="16384" PostTypeId="1" AcceptedAnswerId="16409" CreationDate="2010-11-02T21:39:01.490" Score="3" ViewCount="180" Body="&lt;p&gt;Here is my situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My boss wants to know everthing I am doing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are using Scrum so we do 15 minutes daily meeting and I attend everyday..&#xA;I am perfectly fine with this and actually interested in this agile that my company started to practice..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My concern is my boss also want to be reported almost every issue I am handling for production and QA. &#xA;If some production issue escalated to me and my boss is not included in the e-mail trail,&#xA;she would storm me and escalate it to the director.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I fix one bug and deploy QA, she would like to know,,, in written.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I stand up to the team once saying I attend daily scrum meeting and explain my status as detail as possbile, why I should send out e-mail again?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel being micro managed. I feel there is no ownership for any task for programmers even we are practicing Agile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But would it be just my emotion? Maybe all she wanted is visibility of the task I am doing..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you fellow programmers think the difference between visibility of the task and micro-management.&lt;/p&gt;&#xA;" OwnerUserId="6924" LastActivityDate="2010-11-02T23:26:36.780" Title="Difference between visibility of the project and micro-manage" Tags="&lt;work-environment&gt;" AnswerCount="3" />
  <row Id="16385" PostTypeId="2" ParentId="16301" CreationDate="2010-11-02T21:45:31.040" Score="0" ViewCount="" Body="&lt;p&gt;Spend upfront time on design. You can fix it faster and better in design than later in the process when there are a gazillion things depending on what you wrote wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And collaboration is most important in design, I think, I've saved many many hours of going down the wrong path by brainstoring with others in design. This is one place where meetings actually help. And boy it sure is nice to know that the guys over heer doing piece x are going to need piece Y from you even though it isn't in the spec. Talking early on and trading ideas can eliminate a whole lot of puzzle pieces that don't fit together.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-02T21:45:31.040" CommunityOwnedDate="2011-01-23T10:19:44.323" />
  <row Id="16386" PostTypeId="2" ParentId="16365" CreationDate="2010-11-02T21:48:53.070" Score="11" ViewCount="" Body="&lt;p&gt;If he quit by himself (i.e. wasn't laid off/fired), then ask &lt;em&gt;why&lt;/em&gt; he quit. That may help keeping others in the future, especially if several people end up quitting for the same reasons.&lt;/p&gt;&#xA;" OwnerUserId="6928" LastActivityDate="2010-11-02T21:48:53.070" CommentCount="3" />
  <row Id="16387" PostTypeId="2" ParentId="16384" CreationDate="2010-11-02T21:59:49.140" Score="2" ViewCount="" Body="&lt;p&gt;This is why I love the Product Formerly Known as Team Systems. Without any extra work for developers, managers can see the status of every work item. They can see every check in. You can see when the manager raises the pri of the bug. The way I usually explain it (as a manager) is:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I don't have to interrupt your progress to ask you for a progress report&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;There are other tools that offer this ability. You need one. If you don't give your boss what she needs, you won't succeed. But if it's killing you to give her what she needs, you won't succeed. A transparent tool (in Team Systems you just check one box to Associate your checkin with a Work Item and it's marked resolved, assigned to the person who created it, and email alerts go out) will let you live your regular life while surfacing a fountain of information to all who want to consume it.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-02T21:59:49.140" CommentCount="1" />
  <row Id="16388" PostTypeId="2" ParentId="16351" CreationDate="2010-11-02T22:02:16.403" Score="1" ViewCount="" Body="&lt;p&gt;From my recollection microsoft stopped doing any real work on IE when Netscape imploded and there was no other real competition. It was only due to the resurgence of firefox and to some extent safari that forced them to start work on it again to keep up with the new web standards&lt;/p&gt;&#xA;" OwnerUserId="4960" LastActivityDate="2010-11-02T22:02:16.403" />
  <row Id="16389" PostTypeId="2" ParentId="16326" CreationDate="2010-11-02T22:03:18.090" Score="3" ViewCount="" Body="&lt;p&gt;I find it easiest to do the process of division to the minimal tasks as mentioned above work out each one and then double that estimate. Then I add them together and add fifty percent. That gives me an approximate project time in ideal conditions. If the work is practically going to be happening in parallel with others it's going to need longer. If you are going to have to wait for other people, expect them to take twice as long as you think it will. Waiting for content or feedback or other information often takes far longer than seems possible. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where I work we work out a best case/expected case/worst case estimate for each step of the process, which is useful as a guide and also for evaluating how your estimates have worked out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The technique is not ever so important except that you need to be able to combat the programmer's temptation to underestimate tasks, but what is important is being conservative about when you can deliver something. If it takes you seven weeks to build something and you promised eight weeks, you can come in a little early and look good for it or do some extra testing and be assured of reliability. If you promised six weeks you can look bad even if it's absolutely not your fault. If in doubt, guess conservatively.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-02T22:03:18.090" />
  <row Id="16390" PostTypeId="1" CreationDate="2010-11-02T22:03:20.680" Score="5" ViewCount="421" Body="&lt;p&gt;Many tend to write &quot;C/C++&quot;, as if they were the same thing. Although they share many similarities, they are clearly not the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But what are really the fundamental differences between C and C++? Is C++ an enhanced version of C, or are there features in C which do not exist in C++?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-11-04T00:31:01.360" Title="What are the fundamental differences between C and C++?" Tags="&lt;c++&gt;&lt;c&gt;" AnswerCount="7" FavoriteCount="1" />
  <row Id="16391" PostTypeId="2" ParentId="16373" CreationDate="2010-11-02T22:04:10.400" Score="1" ViewCount="" Body="&lt;p&gt;Well when I was a management analyst, I did business process analysis for a living. The most effective way to show them the problem is to flow chart the current system (yes you can flow chart non-software systems, look up the ASME flow chart symbol set) and then flow chart the system as it should be done by the software and show them how much easier it will be and how many fewer steps it will take.  AS long as you proose something better in your product, there is no need to feel bad about presenting a client with a better process, computerizing an existing process is supposed to streamline it.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-02T22:04:10.400" />
  <row Id="16392" PostTypeId="2" ParentId="16390" CreationDate="2010-11-02T22:07:00.667" Score="7" ViewCount="" Body="&lt;p&gt;In general, everything that exists in C is supported in C++. Obviously the opposite is absolutely false.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simply speaking, C++ is object oriented (so, for examples, you have classes), C is not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ has a boolean type C89 doesn't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are different languages. They just share most of the syntax.&lt;/p&gt;&#xA;" OwnerUserId="87" LastEditorUserId="87" LastEditorDisplayName="" LastEditDate="2010-11-03T19:05:11.227" LastActivityDate="2010-11-03T19:05:11.227" CommentCount="8" />
  <row Id="16393" PostTypeId="2" ParentId="16351" CreationDate="2010-11-02T22:08:22.877" Score="1" ViewCount="" Body="&lt;p&gt;Microsoft makes their big bucks through Enterprise and Volume licensing schemes, whereby they 'sell' 1000's of licenses of Windows and Office to big corporates and governments. This generates an amount of vendor lock-in as IT departments need to work with technologies like Active Directory to roll out, lock down and audit these systems. Indeed, many spend a considerable amount of resource producing a 'gold image' of a PC with a standard build of Windows + Office + IE + WMP, etc, to ensure all PCs in the company are the 'same'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Several events/issues have started to rock this (comfortable) situation:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Microsoft Office is their 'cash cow', but sales are declining - either nobody needs all the new features (possible), nobody's got any money (highly likely) or people have moved to alternative Office suites or platforms. The next version of office is likely a rival to Google Docs/Sheets, so controlling the Browser will let Microsoft guarantee an excellent user experience of 'Online Office'. For evidence of this, just compare the user experience of Outlook Web Access (a web front-end to Microsoft Exchange), which is full-featured on IE6+, but real 'last century' for Chrome, Safari or Firefox.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Big companies like Google have been infiltrated and lost confidential data, using IE6 as an attack vector. This has lost a lot of faith in IE. Even updating to IE7 or IE8 would not regain this ground. Microsoft has to have more reason for people to stay with IE.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Corporates that already invested in the platform have failed to keep the platform up to date  - XP + Office 2000 + IE6 is sufficient for their needs, and/or they don't want to spend more $$$'s in the current economy because Microsoft makes them: IE9 doesn't work on XP. Since making this decision, Microsoft must make IE9 as appealing as possible to corporates, because it comes with a Windows 7 price tag.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Some enterprising third parties are now offering alternative browsers that work well in an Active Directory environment - see Front Motion's Firefox package. So people have less need for IE.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-11-02T22:08:22.877" />
  <row Id="16394" PostTypeId="2" ParentId="16384" CreationDate="2010-11-02T22:08:24.140" Score="1" ViewCount="" Body="&lt;p&gt;She is using Scrum as a control system. That's bad. This may be seen as her willing to micro manage. Some of her employees may try to seek for answers in online communities!!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, what is her role in your company? Is she product owner?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If not she can attend to daily scrum without asking questions. She should discuss with the product owner about the product backlog. She should let the team self manage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should use an information radiator that you update daily. She should ask the information radiator not you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Scrum Master should take care of this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Who is the Scrum Master in your team?&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-02T22:08:24.140" CommentCount="6" />
  <row Id="16395" PostTypeId="1" AcceptedAnswerId="16398" CreationDate="2010-11-02T22:10:13.490" Score="13" ViewCount="968" Body="&lt;p&gt;Hi all,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work on two internal, mission critical applications.  Let's keep it simple and call them &quot;Foo&quot; and &quot;Bar&quot;.  Nobody outside of the company has ever heard of them - like I said, they're internal apps.  Until now my jobtitle has just been &quot;Software Developer&quot;.  I've recently discovered that my jobtitle is being changed to &quot;Foo and Bar Developer&quot;.  I'm a little worried that, should I leave the company, I'll have trouble finding a new job because of my weird job title.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is this:  How important is my job title compared to everything else on my CV (or resume, if you're American)?  Am I likely to be rejected by box-ticking HR people who don't realise that &quot;Foo and Bar Developer&quot; is the same as &quot;Software Developer&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance.&lt;/p&gt;&#xA;" OwnerUserId="6624" LastActivityDate="2011-01-03T09:01:28.150" Title="How important is my job title?" Tags="&lt;resume&gt;&lt;cv&gt;&lt;job-title&gt;" AnswerCount="10" CommentCount="5" FavoriteCount="2" />
  <row Id="16396" PostTypeId="2" ParentId="16326" CreationDate="2010-11-02T22:13:16.007" Score="4" ViewCount="" Body="&lt;p&gt;2 link by the blog of Joel Splosky:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000245.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/fog0000000245.html&lt;/a&gt; (older)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.joelonsoftware.com/items/2007/10/26.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/items/2007/10/26.html&lt;/a&gt;  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6330" LastActivityDate="2010-11-02T22:13:16.007" />
  <row Id="16397" PostTypeId="2" ParentId="16395" CreationDate="2010-11-02T22:17:53.100" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Date to Date : Foo and Bar Developer, Company&lt;br&gt;&#xA;                 Promoted from Software developer.  Blah blah....`&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Above is one way to handle it.  It's hard to predict how HR people (who generally know nothing or next-to-nothing about tech anyway) will interpret any job title.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is &quot;junior developer&quot; more or less desirable than &quot;software developer&quot;?  Is &quot;application developer&quot; better or worse than &quot;software developer&quot;?  What about &quot;computer programmer&quot; or &quot;$language programmer&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the job calls for a US-style resume (date, title, company, and at most one sentence regarding the position), a lot is up to luck.  If you are asked for a CV you have a chance to outline exactly what the job entailed and what you accomplished there, and the title is less important.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-02T22:17:53.100" CommentCount="4" />
  <row Id="16398" PostTypeId="2" ParentId="16395" CreationDate="2010-11-02T22:18:41.183" Score="41" ViewCount="" Body="&lt;p&gt;On your resume put &lt;em&gt;Software Developer&lt;/em&gt; instead of &lt;em&gt;Foo and Bar Developer&lt;/em&gt;. Problem solved!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can even put anything you want as soon as it is the truth.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-02T22:18:41.183" CommentCount="10" />
  <row Id="16399" PostTypeId="2" ParentId="16390" CreationDate="2010-11-02T22:20:02.430" Score="11" ViewCount="" Body="&lt;p&gt;C++ was invented to manage complexity that C could not handle.&#xA;For example, a common problem with C was that you could &quot;run out of names for variables&quot; (not to be taken literally of course) because there was no encapsulation, namespaces etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, C does not have exceptions, therefore error handling is very error prone, since it depends on the library user to always check return values of funcs, whereas with exceptions, the library developer simply throws an exception that guarantees program flow will be halted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ helps by having the constructor init objects which is automatically called by compiler. Unlike C structs which need to be initialized by the programmer (hence another error-prone area).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, there is a lot of other advantages touted by OOP , such as object reuse as well the generic programming based concepts, such as templates and generics which allow you to reuse source code,etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And a lot of other things that would take too much of my time to list here.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-02T22:20:02.430" CommentCount="4" />
  <row Id="16400" PostTypeId="2" ParentId="16390" CreationDate="2010-11-02T22:23:21.547" Score="1" ViewCount="" Body="&lt;p&gt;C99 has a few features that don't exist (at least in exactly the same form) in C++ (e.g., flexible array members, variable length arrays, etc.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C99 also added a lot in the library that's not present in the &lt;em&gt;current&lt;/em&gt; C++ standard; most of this has been added to C++0x though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of basic orientation, C basically supports procedural programming. C++ supports that as well as object oriented programming, generic programming, and metaprogramming (carrying out arbitrary computation at compile time). With C++0x, it adds a few bits and pieces that could at least be mistaken for functional programming support as well.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-02T22:23:21.547" />
  <row Id="16402" PostTypeId="2" ParentId="16395" CreationDate="2010-11-02T22:30:16.000" Score="6" ViewCount="" Body="&lt;p&gt;While I think they may be of low importance, I would caution on the potential collision that may occur if the application names happen to match what another company uses internally.  If another company calls their app &quot;Foo,&quot; then they may believe you possess expertise that you don't necessarily have.  It can be a bit of a double-edged sword though in some places the job title may matter for things like work visas as I recall having a title of &quot;Software Design Engineer&quot; because it was in NAFTA as a job that could be filled by someone with a TN-1 which having my degree was sufficient.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember that there are likely to be many other points in the resume that are a bigger deal, like the achievements had with each position.  Did you save the company millions of dollars?  Did &quot;Foo&quot; scale into a bigger system under your watch?  Those are likely to be more important but that is just my opinion.  I have had various job titles like Software Design Engineer, Web Developer, and Senior Application Developer so I have had different titles for pretty much the same work of building web applications to perform various functions.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-02T22:30:16.000" CommentCount="2" />
  <row Id="16403" PostTypeId="2" ParentId="16271" CreationDate="2010-11-02T22:34:15.337" Score="1" ViewCount="" Body="&lt;p&gt;I believe the biggest reason is to do with Oracle's past and range of supported platforms.  The command line was the lowest common denominator. So with all of systems setup, configuration and administration being available as SQL statements has made it a very flexible solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using GUI tools such as toad or enterprise manager, do make administration easier, but as you can see from the show SQL buttons you do get to see exactly what will be executed on the DBMS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do appreciate knowing a lot of these commands does take time and effort but they are worth it. As they have on occasion been the only way recover a database instance after parts of the environment have failed and prevent them from being run&lt;/p&gt;&#xA;" OwnerUserId="4960" LastActivityDate="2010-11-02T22:34:15.337" CommentCount="1" />
  <row Id="16404" PostTypeId="2" ParentId="14831" CreationDate="2010-11-02T22:43:40.023" Score="2" ViewCount="" Body="&lt;p&gt;Lets do a role play. (this is not a joke post)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should do a workshop where you act out the call chain.&#xA;Each person is an object. You'll need some newbies and some people who understand the &quot;game&quot; helps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use a really simple issue like file IO.&#xA;gui-&gt;model-&gt;file_io&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The person being the file reader needs to tell the next one up....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First do it with return codes. ( use post-it notes ?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if the interactions are just &quot;what the code says&quot; pretty soon you can get people to realize that exceptions are exceptional.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;for return codes, pass a post-it note.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;for exceptions, throw your hands in the air and say what the problem is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;then get them to do &quot;catch x, throw x&quot; and see ho much worse the diagnosis is what the GUI just gets &quot;the model had an exception&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this will work to train the people you have because people understand interactions with other people pretty well.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-11-02T22:43:40.023" CommentCount="1" />
  <row Id="16405" PostTypeId="2" ParentId="16395" CreationDate="2010-11-02T22:46:52.953" Score="6" ViewCount="" Body="&lt;p&gt;The impact of that new title on landing a new job is exactly ZERO. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whatever the title, your future employers will be much more interested in &lt;strong&gt;what you can do,&lt;/strong&gt; rather than what title you had, or if you had casual Fridays, or if your former employer provided free snacks, or if your car could get 0-100 kph in 6 secs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You get the picture - It's the skills and your attitude that count.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-02T22:46:52.953" CommentCount="3" />
  <row Id="16406" PostTypeId="2" ParentId="14124" CreationDate="2010-11-02T22:50:18.533" Score="2" ViewCount="" Body="&lt;p&gt;Put a kanban chart outside your cube.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;your manager can look at it, and you will update it after every step you have taken.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.crisp.se/henrik.kniberg/kanban-vs-scrum.pdf&quot; rel=&quot;nofollow&quot;&gt;http://www.crisp.se/henrik.kniberg/kanban-vs-scrum.pdf&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And you'll all live happily ever after.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-11-02T22:50:18.533" />
  <row Id="16407" PostTypeId="2" ParentId="2715" CreationDate="2010-11-02T22:56:13.337" Score="0" ViewCount="" Body="&lt;p&gt;I use the first style usually just to get more code into one screen view.  I never use the last it is just to easy to forget to add the {} if you add a second line of code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also these have a 'common' names the first one with the {} on the same line is K&amp;amp;R style and the second one with the {} on  the next line is Allman or BDS style.  (&lt;a href=&quot;http://en.wikipedia.org/wiki/Indent_style&quot; rel=&quot;nofollow&quot;&gt;wikipedia indent style&lt;/a&gt;)&lt;/p&gt;&#xA;" LastActivityDate="2010-11-02T22:56:13.337" CommunityOwnedDate="2010-11-02T22:56:13.337" />
  <row Id="16408" PostTypeId="2" ParentId="16296" CreationDate="2010-11-02T23:21:09.667" Score="16" ViewCount="" Body="&lt;p&gt;Having worked (and recruited for) a few start-ups I have to say my personal experience is that any start-up with their salt should be &lt;em&gt;more&lt;/em&gt; fussy about programmers than a large corporate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Paul Graham backs me up nicely in his great &lt;a href=&quot;http://www.paulgraham.com/wealth.html&quot; rel=&quot;nofollow&quot;&gt;How to Make Wealth Essay&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Steve Jobs once said that the success or failure of a startup depends on the first ten employees. I agree. If anything, it's more like the first five. Being small is not, in itself, what makes startups kick butt, but rather that small groups can be select. You don't want small in the sense of a village, but small in the sense of an all-star team.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It is naturally a lot harder for start-ups to find suitable candidates. Pay is lower, risk is higher. But there are a surprising number of people who are attracted to the lack of corporate BS and being able to make a visible difference (early stock options help too.)&lt;/p&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-11-02T23:21:09.667" CommentCount="2" />
  <row Id="16409" PostTypeId="2" ParentId="16384" CreationDate="2010-11-02T23:26:36.780" Score="5" ViewCount="" Body="&lt;p&gt;As a manager myself, I can tell you that there are three main causes of this type of behavior:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) &lt;strong&gt;Control Freak&lt;/strong&gt; - This is most common in newly promoted managers that are (or consider themselves) really good at the task you are performing. It is a difficult transition to be suddenly responsible for the success/failures of work that you didn't do yourself, especially when you think that you are better at it than the more junior person who is now doing it. Eventually most good managers come to realize that people work differently, and need to be allowed to fail once in a while to learn from those failures and improve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) &lt;strong&gt;The Bored Manager&lt;/strong&gt; - Also more common, although less so, in newer managers who don't yet really understand their role. They feel unproductive if they aren't directly contributing to the task and haven't figured out that organizing work and removing obstacles ARE valuable contributions. They often feel that despite working hard all day, they didn't accomplish anything and try to horn in on what you are doing so they can participate in your eureka moments, or at least add some value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) &lt;strong&gt;Trust Issues&lt;/strong&gt; - When micromanagement comes on suddenly, a normally hands-off manager changes into a micro-manager, or they micromanage you, but not other employees you may only need to look in the mirror to find the source of the problem. In my experience the most common reason for micromanagement is a trust issue. It may seem like a lot of work to satisfy a micro-manager, but it is also a lot of work to micromanage you. Recognizing that, there is a good reason he/she is doing it. If it isn't 1 or 2, start thinking about what you could do to earn that trust. Think carefully about recent discussions with that manager, some managers aren't very good at or comfortable with talking directly to you about issues they have with your work. You may need to be direct with them to get to the root of the problem.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-02T23:26:36.780" CommentCount="5" />
  <row Id="16410" PostTypeId="2" ParentId="16301" CreationDate="2010-11-02T23:32:48.327" Score="4" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ask questions.&lt;/strong&gt; The more angles you understand the problem from, the better you're equipped to solve it. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Propose alternatives&lt;/strong&gt;. If a large portion of the complexity is coming from some minor feature, the customer may be happy to cut it out or change it, if it saves them time or cost. It's inconceivable that the customer could've already considered every solution.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Involve your whole team&lt;/strong&gt;. It's easy to become too close to a project to see the same fresh perspective as an outsider. Many brains is better than one, after all. Sometimes the best answers might come from the most unlikely, non-technical sources, if you can explain the problem in layman's terms.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Draw pictures.&lt;/strong&gt; Break down the problem into boxes-and-lines on a whiteboard, then see which boxes and lines you don't actually need.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Go for simplicity.&lt;/strong&gt; You can always improve on it later.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-11-02T23:32:48.327" CommunityOwnedDate="2011-01-23T10:19:44.323" CommentCount="1" />
  <row Id="16412" PostTypeId="2" ParentId="16261" CreationDate="2010-11-02T23:48:18.323" Score="1" ViewCount="" Body="&lt;p&gt;I use a 13&quot; MacBook Pro with a relatively small SSD and a boatload of RAM for my day to day development work, and I love it.  I've got a Windows virtual machine for stuff like Remote Desktop or WinMerge, and I've got most of my home folder (including my working directories) mirrored between the host and guest OSs so I can quickly switch back and forth between the two environments.  It works great.  I keep both OSs pretty lean, so the whole thing runs VERY fast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as screen space goes, I guess it really depends on what tools you use.  I spend 90% of my time in gvim (or MacVim), which scales very well to both tiny and huge screens, so while I like having more space available, I don't feel cramped on a single 13&quot; either.  When I don't have an external, I pretty much run all my apps maximized and just command-tab between them.  If you're using Visual Studio 2010 with all the toolboxes and junk, that might be a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As someone who DOES keep up with all the Apple rumors, I see no reason why one should hold off on buying a 13&quot; MacBook Pro.  I'm not aware of anything interesting coming down pipe.  Sure, spec bumps will be here sooner or later, but the 2.66 GHz Core 2 Duo is already lightning fast for development work.&lt;/p&gt;&#xA;" OwnerUserId="109" LastActivityDate="2010-11-02T23:48:18.323" />
  <row Id="16413" PostTypeId="2" ParentId="16301" CreationDate="2010-11-02T23:58:07.147" Score="6" ViewCount="" Body="&lt;p&gt;My biggest thing has been accepting that it's OK to do the right thing and not rush it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that when I look at a problem, I see an easy &quot;Hacky&quot; way and then in the back of my mind there is the concept that &quot;There is a better way&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never saved time with the hacky way and these days I don't even go down that road.  Doing it fast is just going to cost you or someone else extra work down the line, &lt;em&gt;almost always before your first release&lt;/em&gt;, this means that it doesn't even save you time in the short run!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes the &quot;Right thing&quot; might just be refactoring to split a class that seems to be addressing multiple concerns, and sometimes it might be something massive like moving a bunch of data out of your code and into arrays or config files.&lt;/p&gt;&#xA;" OwnerUserId="1788" LastActivityDate="2010-11-02T23:58:07.147" CommunityOwnedDate="2011-01-23T10:19:44.323" CommentCount="1" />
  <row Id="16417" PostTypeId="2" ParentId="16301" CreationDate="2010-11-03T01:39:45.223" Score="1" ViewCount="" Body="&lt;p&gt;Have someone in authority manage requests. The easiest features are the ones you don't add. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There also needs to be a technical referee. At some point you have to stop all the debates and make an informed decision. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Teams developing consistent code allows a more flexible approach when having to go back and fix someone else's code. It is important to take personal pride and ownership in your own work, but your code ultimately belongs to your benefactor.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-03T01:39:45.223" CommunityOwnedDate="2011-01-23T10:19:44.323" />
  <row Id="16418" PostTypeId="2" ParentId="14409" CreationDate="2010-11-03T02:03:56.563" Score="1" ViewCount="" Body="&lt;p&gt;I can only speak for the Microsoft world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Official Microsoft exams are well recognized:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/cert-overview.aspx&quot; rel=&quot;nofollow&quot;&gt;http://www.microsoft.com/learning/en/us/certification/cert-overview.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do take them into account when evaluating potential employees, although I would always combine them with my own questions. (i.e. just having the certification doesn't prove to me that you know ASP.NET)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also bear in mind that experience almost always trump certifications. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="6939" LastActivityDate="2010-11-03T02:03:56.563" />
  <row Id="16419" PostTypeId="2" ParentId="16301" CreationDate="2010-11-03T02:09:47.167" Score="7" ViewCount="" Body="&lt;p&gt;Say NO! This is vital to keeping crap from interrupting you or throwing you off what you should really be doing.&lt;/p&gt;&#xA;" OwnerUserId="6518" LastActivityDate="2010-11-03T02:09:47.167" CommunityOwnedDate="2011-01-23T10:19:44.323" CommentCount="4" />
  <row Id="16420" PostTypeId="2" ParentId="16325" CreationDate="2010-11-03T02:13:25.630" Score="5" ViewCount="" Body="&lt;p&gt;Something to remember is that college/university leads to many paths, industry is one of them, academia is another. The number one takeway I've gotten from my education is that &lt;strong&gt;university teaches you how to learn&lt;/strong&gt;. It provides you with the resources to learn and people who are passionate and helpful in areas that interest you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Through my computer science undergraduate education (still ongoing) &lt;strong&gt;I've learned pretty much everything my future job shouldn't have to teach me&lt;/strong&gt;. How to approach problems, how to break them down, classify them, how to analyze proposed solutions, what tool to use for a given situation, how to make trade offs etcs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people will say that you should know your algorithms and data structures (I agree) or how to use version control, build systems etc (I agree too). Ultimately you have to acknowledge that &lt;strong&gt;you will always be a student&lt;/strong&gt;, the sooner you embrace that there will always be new things to learn and and people to learn from, the better off you will be.&lt;/p&gt;&#xA;" OwnerUserId="6926" LastActivityDate="2010-11-03T02:13:25.630" CommentCount="2" />
  <row Id="16421" PostTypeId="2" ParentId="16301" CreationDate="2010-11-03T02:52:04.090" Score="0" ViewCount="" Body="&lt;p&gt;Use design patterns, develop your own, don't reinvent yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sketch wireframes for &quot;testing&quot; user interface and interaction BEFORE writing any code, review them with your users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Manage change and requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Refactor and reuse as much code as possible, buy ready made components, develop your own &quot;high level&quot; libraries to write even less code.&lt;/p&gt;&#xA;" OwnerUserId="5332" LastActivityDate="2010-11-03T02:52:04.090" CommunityOwnedDate="2011-01-23T10:19:44.323" />
  <row Id="16422" PostTypeId="2" ParentId="16325" CreationDate="2010-11-03T03:20:23.173" Score="2" ViewCount="" Body="&lt;p&gt;You should be able to take a set of written or verbal instructions and translate them into a working program.  Really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If someone tells you: &lt;em&gt;create a program that takes text as input, counts the number of characters in the text, and displays the number of characters in the text&lt;/em&gt; -- you should be able to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not only should you be able to write the program, but you should be able to:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Write an explanation of how to use your program, and how to identify and troubleshoot common problems that might arise while using the program.&lt;/li&gt;&#xA;&lt;li&gt;Be able to send your program's source code and project file [if any] to someone, allowing them to, with a minimal amount of effort, load your program and work on it as you have been working on it.&lt;/li&gt;&#xA;&lt;li&gt;Isolate and send the executable/run-time portions of the project to someone in a form in which they will be able to execute and use it without too much trouble.  This means also sending them (or describing to them) any dependencies that your program might have, as well as describing the basic system requirements for running the program (e.g. OS version.)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Of course the above isn't the only thing you need to know.  But in my opinion, it something you really should be able to do.  Besides the obvious core knowledge, I also advise:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Be inquisitive.  Be ready to learn every day.  Be flexible.  Be self reliant.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Learn how to use search engines well.  And use them.&lt;/strong&gt;  If I can find the documentation, white paper, or technical article, you should be able to find it too.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6677" LastEditorUserId="6677" LastEditorDisplayName="" LastEditDate="2010-11-03T03:25:27.023" LastActivityDate="2010-11-03T03:25:27.023" />
  <row Id="16423" PostTypeId="2" ParentId="16301" CreationDate="2010-11-03T03:31:11.117" Score="1" ViewCount="" Body="&lt;p&gt;I often think about how to optimize how I work.  I have tried a lot of things and here are things that I have found to work:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Multiple screens so that I can see more things at once.  Note that this does not include things like email or IM.  This is so that I can have more code up and see more test machines at once.  I try to keep it to that are needed at the same time.  Also I have found that having a log up in one window and code in another is better than switch between the two.  It seems to stress my memory less.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Having a better/more complete understanding of the system that I am working with.  This allows me to make better decisions and make them faster.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Test Driven Design(TDD).  This has allowed me to more fully and more easily test my code so that I know how it will perform in most if not all scenarios.  My methodology here is to test the system closer to the code that has been changed.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A working debugger.  I don't have this now but in the past it has greatly improved development speed.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Excellent logging facility.  This takes the place of a debugger most days.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Visualization tools.  This allows me to get the picture of how a lot of things work together all at one time.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Minimal distractions.  I know this is hard because of the constant interruptions but really this is more about limiting things like the internet and email access. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6944" LastActivityDate="2010-11-03T03:31:11.117" CommunityOwnedDate="2011-01-23T10:19:44.323" CommentCount="2" />
  <row Id="16424" PostTypeId="2" ParentId="16326" CreationDate="2010-11-03T03:44:15.247" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;First and most important, you have to define a process and stick by it.&lt;/strong&gt; Include revising the plan at the end of each phase of the process. You can also revise the process, but in an orderly way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Second, do some kind of design.&lt;/strong&gt; Design is the first step to planning, you don't build a house without drawings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Third, track time (effort).&lt;/strong&gt; You should at least differentiate:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Analysis&lt;/li&gt;&#xA;&lt;li&gt;Design&lt;/li&gt;&#xA;&lt;li&gt;Code&lt;/li&gt;&#xA;&lt;li&gt;Unit testing (include fixing defects)&lt;/li&gt;&#xA;&lt;li&gt;Integration testing (include fixing defects)&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Acceptance testing, with the user (include fixing defects)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would be great if you measured the defects fixing effort for each testing type, but it adds complexity, so you can do it later on.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Fourth, identify key base items for estimating.&lt;/strong&gt; For example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Number of processes to be automated (Analysis)&lt;/li&gt;&#xA;&lt;li&gt;Number of domain model entities (Design)&lt;/li&gt;&#xA;&lt;li&gt;Number of forms and reports (Code)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Fifth, correlate base items and effort.&lt;/strong&gt; For example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Analysis effort = X man-hours / process to be automated&lt;/li&gt;&#xA;&lt;li&gt;Design effort = Y man-hours / domain model entity&lt;/li&gt;&#xA;&lt;li&gt;Code effort = Z man-hours / form (or report); number of forms = A * domain model entities&lt;/li&gt;&#xA;&lt;li&gt;Unit testing effort = M% * Code effort&lt;/li&gt;&#xA;&lt;li&gt;Integration testing effort = N% * Code effort&lt;/li&gt;&#xA;&lt;li&gt;Acceptance testing effort = P% * Code effort&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Sixth, keep track of performance and deviation from estimates for each project.&lt;/strong&gt; So you can fine tune your correlation factors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Seventh, repeat and improve.&lt;/strong&gt; You will gain a lot of insight just at the end of the first project, by the third you will feel at ease planning and estimating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have a look at &lt;a href=&quot;http://en.wikipedia.org/wiki/Personal_Software_Process&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Personal_Software_Process&lt;/a&gt;, it really works.&lt;/p&gt;&#xA;" OwnerUserId="5332" LastActivityDate="2010-11-03T03:44:15.247" />
  <row Id="16425" PostTypeId="2" ParentId="16395" CreationDate="2010-11-03T03:46:40.897" Score="0" ViewCount="" Body="&lt;p&gt;I just recently got hired by a company. (my previous position is different in my current position which means different roles but still in IT industries.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My recent experience, agency will categorize your industries follow by your position.&#xA;Lets says you are Foo and Bar Developer,&#xA;They will still categorised you under developer. From there, they will assess what skills do you have in your resume/CV to fit in the client's profile. This is very important as they need to know apart from as being a XXX developer what other skills you may have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Last 2 months, there are agencies desperately looking for developer with k2 blackpearl skills.&#xA;They even call me up to check if I have those skills, even though I did not put up as K2 Blackpearl Developer. Those people who put up in the title might have better chances, I guess.&lt;/p&gt;&#xA;" OwnerUserId="6450" LastActivityDate="2010-11-03T03:46:40.897" />
  <row Id="16426" PostTypeId="2" ParentId="6941" CreationDate="2010-11-03T04:00:27.763" Score="1" ViewCount="" Body="&lt;p&gt;Seriously I feel more comfortable on Job 2. Risk : you get the money and the minimal experience. Job 1 looks a bit dubious where you only hear the good stuff. Risk : you might get nothing.&lt;/p&gt;&#xA;" OwnerUserId="6450" LastActivityDate="2010-11-03T04:00:27.763" />
  <row Id="16427" PostTypeId="2" ParentId="16301" CreationDate="2010-11-03T04:01:27.367" Score="0" ViewCount="" Body="&lt;p&gt;stop reading this site and start coding. :)&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-11-03T04:01:27.367" CommunityOwnedDate="2011-01-23T10:19:44.323" />
  <row Id="16428" PostTypeId="2" ParentId="16179" CreationDate="2010-11-03T04:05:21.257" Score="1" ViewCount="" Body="&lt;p&gt;I think &lt;strong&gt;YES&lt;/strong&gt;, just because it allows you to slice complexity into small self-containing &quot;building blocks&quot; that hide details, and then use them to create the functionality you need, step by step, layer by layer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Divide and conquer.&lt;/p&gt;&#xA;" OwnerUserId="5332" LastActivityDate="2010-11-03T04:05:21.257" />
  <row Id="16429" PostTypeId="2" ParentId="16395" CreationDate="2010-11-03T04:05:30.967" Score="2" ViewCount="" Body="&lt;p&gt;In many cases your job title matters, obviously.  There's a big difference between &quot;Lead Technical Architect&quot; and &quot;Software Engineer.&quot;  But the difference between &quot;Software Engineer&quot; and &quot;Foo [Software] Engineer&quot;?  I wouldn't stress it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it is really bothering you a lot, you might consider talking to your boss and letting her know your concerns.  If your boss isn't a total dummy, she'll get the big picture: she knows people think about their careers down the line.  She probably does it herself.  You could ask if it's OK to introduce yourself (casually) to customers and partners as a &quot;Software Engineer for Foo and Bar.&quot;  Approval to do this is tacit approval to use such language on your resume.&lt;/p&gt;&#xA;" OwnerUserId="6677" LastEditorUserId="6677" LastEditorDisplayName="" LastEditDate="2010-11-03T04:52:39.707" LastActivityDate="2010-11-03T04:52:39.707" />
  <row Id="16430" PostTypeId="2" ParentId="16271" CreationDate="2010-11-03T04:06:13.460" Score="0" ViewCount="" Body="&lt;p&gt;Oracle &lt;a href=&quot;http://www.oracle.com/technetwork/developer-tools/sql-developer/overview/index.html&quot; rel=&quot;nofollow&quot; title=&quot;SQL Developer&quot;&gt;SQL Developer&lt;/a&gt; has been available for about 5 years now but it sucks and almost nobody uses it.&lt;/p&gt;&#xA;" OwnerUserId="3393" LastActivityDate="2010-11-03T04:06:13.460" CommentCount="2" />
  <row Id="16431" PostTypeId="2" ParentId="15321" CreationDate="2010-11-03T04:06:44.607" Score="0" ViewCount="" Body="&lt;p&gt;I will go with design first then code concurrently. It is very important because every projects are different. You need to come out with a plan and high level of process workflow from A to Z before you can start working on the codes concurrently. Every decision made are to be documented so other teams (or yourself) who are/is developing the codes will know the latest update and what has been confirmed.&lt;/p&gt;&#xA;" OwnerUserId="6450" LastActivityDate="2010-11-03T04:06:44.607" CommunityOwnedDate="2011-04-08T10:09:01.537" />
  <row Id="16432" PostTypeId="2" ParentId="16326" CreationDate="2010-11-03T04:18:37.610" Score="0" ViewCount="" Body="&lt;p&gt;Rather than write a book on it, I'll just offer a little advice on how to use the &quot;break down&quot; method of estimation:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Break your assignment down into smaller component tasks.  Estimate each task as best as possible.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Add a task for planning and design (which includes what you're doing now.)  Estimate it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you don't already have one, add a task for &quot;bringing the tasks together.&quot;  This task may not seem useful at first.  However, when you use this &quot;break down&quot; method of estimation, there are always time consuming things to do that &quot;fall between tasks&quot; and that &quot;pull the tasks together.&quot;  This one can be tricky to estimate.  Try your best.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Add a task for testing and documentation.  Your assignment may not require a lot of testing and documentation, but you should at least spend a little time thinking about it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Add up the task estimates to get an overall estimate.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Go ahead and multiply that total estimate by two††.  This will give you padding time to:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Finish things that you overlooked in your original task list&lt;/li&gt;&#xA;&lt;li&gt;Finish things that you couldn't have known about until getting under way&lt;/li&gt;&#xA;&lt;li&gt;Incorporate feedback from other people, and make changes&lt;/li&gt;&#xA;&lt;li&gt;Get interrupted by other things going on around you, like meetings&lt;/li&gt;&#xA;&lt;li&gt;Finish ahead of estimate more often than behind it&lt;/li&gt;&#xA;&lt;/ol&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And last, but not least, don't be afraid to sketch out estimates for yourself that are probably totally wrong.  Sometimes just sketching everything out, no matter how potentially wildly inaccurate, can help you start on the path to getting a better sense for what's involved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;††As you get more and more experience, this &quot;fudge factor&quot; can be tuned to suit your personal style, and your work environment.&lt;/p&gt;&#xA;" OwnerUserId="6677" LastEditorUserId="6677" LastEditorDisplayName="" LastEditDate="2010-11-03T04:32:29.387" LastActivityDate="2010-11-03T04:32:29.387" />
  <row Id="16433" PostTypeId="2" ParentId="2715" CreationDate="2010-11-03T04:19:50.417" Score="0" ViewCount="" Body="&lt;p&gt;I would prefer 2nd and 3rd method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1st Method are usually from veteran programmers who learn the old stuff and get used to it. I find it very hard to read the codes last time. Luckily VS2010, make it more easily to read but what happen if you open up other editors? There will be problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2nd Method are more clearly define and its more easy on your eyes. You will not have much difficulties looking for the ending braces compared to the first one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3rd Method will save more space and its clearly define its only reading one line of statement. I disagree with people about programmer taking over and making mistake. It was a careless mistake if they overlooked on this.&lt;/p&gt;&#xA;" OwnerUserId="6450" LastActivityDate="2010-11-03T04:19:50.417" CommunityOwnedDate="2010-11-03T04:19:50.417" />
  <row Id="16434" PostTypeId="2" ParentId="16271" CreationDate="2010-11-03T04:20:10.807" Score="0" ViewCount="" Body="&lt;p&gt;They've had management GUIs going back at least to v8 that I know of. They have universally been horrid. They have also been subject to dramatic change version to version last time I bothered to keep up. Simple fact is that while their customers are willing to keep buying tools such as Toad, Oracle has little incentive to put much money into building their own. No one makes a decision to use Oracle because of their tooling. They use Oracle RDBMS because of the engine.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-11-03T04:20:10.807" CommentCount="1" />
  <row Id="16435" PostTypeId="2" ParentId="16395" CreationDate="2010-11-03T04:28:36.070" Score="6" ViewCount="" Body="&lt;p&gt;I've done a lot of screening of candidates(can't tell you how many resumes I've pre-screened, but I've conducted 100s of interviews to give you an idea). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It really doesn't matter to me as long as I know you are a software developer, I know how long you have been at it, and the scope of your responsibilities. Only one of those things will I get from your job title. I've seen people who have had the title &quot;Developer&quot; who could design/code/support circles around me. I've seen people who have had the title &quot;senior architect&quot; that couldn't begin to tell me what decoupling meant. It mostly depends on the organization they are coming from. Most good HR screeners will know this as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because all it really matters for is search engines and the shoddy HR screeners, I include &quot;desired job title&quot; in my own Resume in short intro block that says basically &quot;I am a blah blah blah looking for a yada yada yada project&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-11-03T04:28:36.070" />
  <row Id="16436" PostTypeId="1" AcceptedAnswerId="16440" CreationDate="2010-11-03T04:38:55.277" Score="30" ViewCount="1761" Body="&lt;p&gt;You know the prospective company fairly well but are asked &quot;Do you have any questions for us?&quot;.  To show interest, what are some of your favorite questions to reply?&lt;/p&gt;&#xA;" OwnerUserId="6527" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2011-01-27T11:58:28.883" LastActivityDate="2011-01-28T14:45:25.650" CommunityOwnedDate="2011-01-28T12:13:01.007" Title="&quot;Do you have any questions for us?&quot; In an interview" Tags="&lt;jobs&gt;&lt;interview&gt;" AnswerCount="26" CommentCount="3" FavoriteCount="18" />
  <row Id="16437" PostTypeId="2" ParentId="16436" CreationDate="2010-11-03T04:43:41.917" Score="3" ViewCount="" Body="&lt;p&gt;There's softball stuff I like to ask, eg  &quot;Can you tell me about your day to day work&quot;, since that's what matters to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, questions that indicate and understanding of the business, its current issues, or issues the interviewer cares about work very well.&lt;/p&gt;&#xA;" OwnerUserId="6946" LastActivityDate="2010-11-03T04:43:41.917" CommunityOwnedDate="2011-01-28T12:13:01.007" CommentCount="1" />
  <row Id="16438" PostTypeId="2" ParentId="16436" CreationDate="2010-11-03T04:44:13.843" Score="30" ViewCount="" Body="&lt;p&gt;My standbys:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What languages/frameworks to you usually work with?&lt;/li&gt;&#xA;&lt;li&gt;What development tools- IDEs, Bug Trackers, Version Control, etc do you use?&lt;/li&gt;&#xA;&lt;li&gt;What's your development methodology like (Agile, Waterfall, Scrum, Crystal, etc)?&lt;/li&gt;&#xA;&lt;li&gt;Do you have dedicated QA personel?  Even if so, do developers do some amount of their own unit testing?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also a good list to consider is the &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Joel_Test&quot; rel=&quot;nofollow&quot;&gt;Joel Test&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you use source control?&lt;/li&gt;&#xA;&lt;li&gt;Can you make a build in one step?&lt;/li&gt;&#xA;&lt;li&gt;Do you make daily builds?&lt;/li&gt;&#xA;&lt;li&gt;Do you have a bug database?&lt;/li&gt;&#xA;&lt;li&gt;Do you fix bugs before writing new code?&lt;/li&gt;&#xA;&lt;li&gt;Do you have an up-to-date schedule?&lt;/li&gt;&#xA;&lt;li&gt;Do you have a spec?&lt;/li&gt;&#xA;&lt;li&gt;Do programmers have quiet working conditions?&lt;/li&gt;&#xA;&lt;li&gt;Do you use the best tools money can buy?&lt;/li&gt;&#xA;&lt;li&gt;Do you have testers?&lt;/li&gt;&#xA;&lt;li&gt;Do new candidates write code during their interview?&lt;/li&gt;&#xA;&lt;li&gt;Do you do hallway usability testing?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-11-03T04:44:13.843" CommunityOwnedDate="2011-01-28T12:13:01.007" CommentCount="5" />
  <row Id="16439" PostTypeId="2" ParentId="16326" CreationDate="2010-11-03T04:45:16.283" Score="0" ViewCount="" Body="&lt;p&gt;Software Estimation by Steve McConnell (MS Press) is a good read. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main thing with software estimate is summarized by the following&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Without historical information, your&#xA;  estimates are useless.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is one reason I think why iterative projects have much more success that large phased waterfall projects. They aren't trying to build out a plan for a year at a time with little information other than some black box voodoo of what they think it should be. Every iteration, they are reestimating/replanning and have the last several iterations to base their estimates on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few other points to keep in mind:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It will only get &lt;em&gt;slower&lt;/em&gt;. Applying the 80/20 rule means that the harder work will come later unless your project management is &lt;em&gt;very&lt;/em&gt; disciplined.&lt;/li&gt;&#xA;&lt;li&gt;Estimation != Planning. Estimation is the process of figuring out the effort required to get something done. Planning is the process of fitting it into a schedule. &lt;/li&gt;&#xA;&lt;li&gt;60% efficiency is about all you can hope for. 70% is utopia. If you're estimating in days, build this in. If you're estimating in hours, don't forget to apply it later.&lt;/li&gt;&#xA;&lt;li&gt;Remember the &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Long_Tail&quot; rel=&quot;nofollow&quot;&gt;long tail&lt;/a&gt;. Estimates are a rough guess of how long it &quot;probably&quot; will take adjusted for some level of risk and unknowns. The long tail comes into play because the actual amount of work required will never be less than 0. OTOH, the maximum amount of time it will take is only limited by how long you're willing to spend on it before giving up. As  a former boss of mine said &quot;all estimates are +/- x% and it's never minus&quot;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-11-03T04:45:16.283" />
  <row Id="16440" PostTypeId="2" ParentId="16436" CreationDate="2010-11-03T04:50:03.220" Score="31" ViewCount="" Body="&lt;p&gt;I like to ask one or two fairly casual questions about current &quot;&lt;em&gt;stuff&lt;/em&gt;&quot; in the company.  This might be a question about their newest product.  Or it might be a question about an emerging market I know they're exploring.  Or I might ask if they have a major release of product X coming up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I mostly learned this from interviewees asking these types of questions to me.)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think one reason this works well is because people love to talk about what they're currently working on, or what's new and interesting in their company.  It gives them a chance to feel knowledgeable and end the interview on a high note.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another reason I think it works well is it shows interest on your part in what the company's up to.  And, depending on what all went on in the interview, it may give a sense that you did some research into the company beforehand (you did, didn't you?), and have a sort of unique interest in what the company does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps more than the above, I think it's good to not drop any &quot;heavy&quot; questions at this stage.  My best interviews (giving and taking) have always wrapped up on a relatively light, conversational, friendly note.&lt;/p&gt;&#xA;" OwnerUserId="6677" LastEditorUserId="6677" LastEditorDisplayName="" LastEditDate="2010-11-05T07:44:42.067" LastActivityDate="2010-11-05T07:44:42.067" CommunityOwnedDate="2011-01-28T12:13:01.007" CommentCount="1" />
  <row Id="16441" PostTypeId="2" ParentId="16436" CreationDate="2010-11-03T05:01:25.967" Score="4" ViewCount="" Body="&lt;p&gt;In any interview, you should also be interviewing the company.  To do that well, you should already know something about the company, having researched them before the interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I would ask questions that tie your knowledge of their company to something you would like to know more about.  Something like:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I understand that your company is very involved with community activities, such as [random charity]. Can you tell me a little more about that?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Is it true that you have a policy of [allocating time for individual research]?  How has that worked out?&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-03T05:01:25.967" CommunityOwnedDate="2011-01-28T12:13:01.007" />
  <row Id="16442" PostTypeId="2" ParentId="16436" CreationDate="2010-11-03T05:04:25.143" Score="5" ViewCount="" Body="&lt;p&gt;I ask them what they (the interviewer(s)) find interesting and challenging in their work for that company. &lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-11-03T05:04:25.143" CommunityOwnedDate="2011-01-28T12:13:01.007" CommentCount="1" />
  <row Id="16443" PostTypeId="2" ParentId="15321" CreationDate="2010-11-03T05:15:44.357" Score="0" ViewCount="" Body="&lt;p&gt;If there is a good high level design document, I'll use it.  It has to be concise and up to date.  If it's too verbose or out of date, I'll head for the code.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, it depends on the project, doesn't it?  An extremely complex or many-faceted project is perhaps better approached through documentation (if the documentation is solid enough.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A single simple module or simple application is, in my opinion, almost always best approached at the code level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no right answer for every situation!&lt;/p&gt;&#xA;" OwnerUserId="6677" LastActivityDate="2010-11-03T05:15:44.357" CommunityOwnedDate="2011-04-08T10:09:01.537" />
  <row Id="16444" PostTypeId="2" ParentId="16365" CreationDate="2010-11-03T05:24:40.080" Score="3" ViewCount="" Body="&lt;p&gt;&quot;Can we have the office key back before you leave.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have a large open plan office, and a key system that uses expensive keys.  It is a major drama if someone leaves without handing back their key.  Building management hates getting new keys cut for new staff members.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So we had one guy leave without handing in his key.  We bugged him about it, and he eventually put it in an envelope and posted it to us ... or so he says.  What we actually got was an envelope which just contained a PostIt note with a cryptic message.  (&quot;It wasn't me, it was a one armed man&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally we figured out what must have happened.  The envelope had been through the Post Office's automatic sorting machines and the key had come out.  So we ring up the Post Office, faxed them a photocopy of a similar key, and got them to look through their pile of &quot;keys that have fallen out of envelopes&quot;.  (Apparently they have LOTS of keys ...)  After two weeks, the answer comes back..  They cannot find it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So now we may need to get the office lock changed ... and 15+ expensive new keys cut ... sigh.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The upside is that one of our younger staff members now understands the &quot;one armed man&quot; reference.&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-11-03T15:16:18.067" LastActivityDate="2010-11-03T15:16:18.067" />
  <row Id="16445" PostTypeId="1" CreationDate="2010-11-03T05:24:49.633" Score="2" ViewCount="383" Body="&lt;p&gt;The place where I work has employees that use a third-party desktop program for their clients. This program saves data to a flat file. My colleague wants to write a Java program that uploads that flat file to a remote server, opens the desktop program when the flat file is downloaded from a Web site, and checks if the desktop program is running or not by looking at the Windows processes. He keeps calling this helper/utility program a &quot;wrapper.&quot; But it doesn't wrap anything! I tried to clear it up with him, but he said, &quot;Well, I call it a wrapper.&quot; He now has everyone in the company calling it a &quot;wrapper.&quot; What would you call it? I say that it's a helper program or utility program.&lt;/p&gt;&#xA;" OwnerUserId="6950" LastActivityDate="2010-11-04T00:53:54.030" Title="What is a &quot;wrapper&quot; program?" Tags="&lt;java&gt;&lt;programming&gt;&lt;design-patterns&gt;&lt;terminology&gt;" AnswerCount="7" CommentCount="1" />
  <row Id="16446" PostTypeId="2" ParentId="16179" CreationDate="2010-11-03T05:32:14.663" Score="0" ViewCount="" Body="&lt;p&gt;OO can help deal with complexity, it cannot solve it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe that the most valuable thing that C++ adds to C is the virtual function table.&lt;/p&gt;&#xA;" OwnerUserId="6677" LastActivityDate="2010-11-03T05:32:14.663" />
  <row Id="16447" PostTypeId="2" ParentId="16445" CreationDate="2010-11-03T05:36:03.537" Score="3" ViewCount="" Body="&lt;p&gt;I don't think there's an official definition!  In my mind, a wrapper program is a program that, in general, starts before the wrapped program starts, and exits after the wrapped program exits.  A wrapper program would probably also ideally manage the lifetime of the wrapped program (start it for you, stop it for you.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recommend against arguing too much over the names of things, though.  The important thing is to design software that works well.  Sometimes belaboring terminology can aid in this goal; sometimes it is a hobgoblin.&lt;/p&gt;&#xA;" OwnerUserId="6677" LastEditorUserId="6677" LastEditorDisplayName="" LastEditDate="2010-11-04T00:53:54.030" LastActivityDate="2010-11-04T00:53:54.030" />
  <row Id="16448" PostTypeId="2" ParentId="16436" CreationDate="2010-11-03T05:47:51.990" Score="3" ViewCount="" Body="&lt;p&gt;The bulk of the interview should have given you an idea what the company does and where they think you fit.  If nothing else from the questions they are asking you they should be fishing for a go/no-go as to you fitting in the position they need.  If the interview was too generic and doesnt explain what the company does from a technical perspective.  Ask.  Interview them as they have just interviewed you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, work is not all about the technical topics, the day to day work environment, can I take personal calls (from spouse, kids, friends, etc).  Dress code.  do I get a computer a cube, an office.  Can I install my favorite text editor or other programming software, or am I extremely limited only to what the company provides.  You spend about half of each work day in that chair or stool or whatever they provide you.  Better to know now that you have to have a shaved head and wear a three piece suit every day with no air conditioning and/or heat, get 37 minutes for lunch and are limited to what is available from the snack machine, than to figure this all out after you have committed to the job.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The specific questions to ask in both categories are very specific to you and you wont really figure out what is important (to you) until after you have experienced it.  For each job or each office experience you form a list of what you can tolerate and what you cannot.  Work from that list.&lt;/p&gt;&#xA;" OwnerUserId="6951" LastActivityDate="2010-11-03T05:47:51.990" CommunityOwnedDate="2011-01-28T12:13:01.007" />
  <row Id="16449" PostTypeId="2" ParentId="14831" CreationDate="2010-11-03T05:58:52.493" Score="0" ViewCount="" Body="&lt;p&gt;Why use exceptions?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Exceptions allow you to easily re-use a single block of error-handling code for multiple error conditions.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Exceptions allow you to reclaim the use of return values for output, instead of using return values exclusively for status code (success/failure) reporting.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Exceptions allow your code to more easily propagate errors to the code which is best suited to make decisions about how to react to the error.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Exceptions can easily bundle a descriptive error message in addition to the traditional status code.  Non-exception approaches either don't provide for a message, or make the message awkward to retrieve.  In fact, if you are using your own exception classes, you can store pretty much anything you want in the exception, making it easy to transmit as much information as you need to get the job done.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Exceptions bring the expressive power of class taxonomy to error handling.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6677" LastEditorUserId="6677" LastEditorDisplayName="" LastEditDate="2010-11-06T22:27:45.940" LastActivityDate="2010-11-06T22:27:45.940" CommentCount="2" />
  <row Id="16450" PostTypeId="2" ParentId="16445" CreationDate="2010-11-03T06:03:40.653" Score="1" ViewCount="" Body="&lt;p&gt;Terminology is not that important unless it is used incorrectly and creates confusion. In this case, should another program which is an wrapper program be introduced to the users, they will become confused because they will see two programs described the same way, but with different functionality. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example - A &quot;classic&quot; of this I've seen over and over again in development teams is where someone starts writing stub or fake classes for testing purposes. But calls them &quot;mocks&quot;, even using the word &quot;mock&quot; in the class names. I.e. MockOfExternalThing. There is nothing wrong with this except that when someone else comes along and needs to use an actual mocking framework such as EasyMock or Mockito. Now the programmers cannot tell what they are dealing with. Worse yet, developers who have not used any mocking frameworks before get completely confused about the term mock and what it means. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So in your case I'd not worry too much about the other guy using the term wrapper, if and only if you think it's unlikely that the users will be presented with something else that works differently, yet uses the same term.&lt;/p&gt;&#xA;" OwnerUserId="6947" LastActivityDate="2010-11-03T06:03:40.653" />
  <row Id="16451" PostTypeId="2" ParentId="16395" CreationDate="2010-11-03T06:16:28.177" Score="2" ViewCount="" Body="&lt;p&gt;your cv/resume should say what you did at the company in your words, not necessarily what that company called it.  If you are/were a software developer there call it like you see it.  The only time a title causes a problem for me with an interview candidate is when they are being overly boastful.  &quot;I was The Supreme Being of Software Development&quot; would put your resume in my trash can pretty fast.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;HR is going to scan the cv/resume for buzz words, so yes software developer needs to be there if that is what you are and want to do at the new job.  If foo and bar are unknown to the world, choose to include it as part of the description &quot;I worked on an internal project code named foo&quot; if you like but try to explain what it was in familiar terms.  So to get through HR's filter it needs to use more common stuff like &quot;programmed in C for Linux and Windows&quot;.  And just flat out list a bunch of languages or terms, &quot;knowledge and experience in C, C++, Perl, Python ....&quot;.  That will get you through the HR filter into the interviewers hands.  At the same time though, if you list all the languages you learned in college, but really didnt use them beyond college, I am going to figure that out in the interview and you will probably lose my vote at the post interview meeting.  That falls into that being too boastful category for me.  You dont have to be an expert but if you give me the &quot;I took a class in it, but that was 3 years ago and I dont remember it now&quot;.  Interview is over.  If you are rusty on the topic but did know it I will figure that out and that is good for you.  If you are fresh out of college and dont have much of a resume other than flipping burgers at McDonalds then list I took classes in ... instead of Knowledge and experience in ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Notice how none of this has anything to do with the job title at some former job?  If you are happy with your job, do not quit over this.  The fact that you are asking this question and threatening to quit sounds like you have one foot already out the door at this place.  Problem is your title will have changed by the time you actually get those interviews and you will then have to realize this fear.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They can call you whatever they want so long as they spell your name right on the paycheck.  Even if the business cards they give you have a blank line for your name after the title &quot;Generic Employee&quot;.  &lt;/p&gt;&#xA;" OwnerUserId="6951" LastActivityDate="2010-11-03T06:16:28.177" CommentCount="2" />
  <row Id="16452" PostTypeId="2" ParentId="16436" CreationDate="2010-11-03T06:38:25.050" Score="12" ViewCount="" Body="&lt;p&gt;As a developer I like to ask &quot;What are some ways an individual on your team can distinguish themselves?&quot;  This tells a lot about the culture of the team.  I don't want to be the stereotypical code monkey, I want to be able to actively add value to the business.&lt;/p&gt;&#xA;" OwnerUserId="4260" LastActivityDate="2010-11-03T06:38:25.050" CommunityOwnedDate="2011-01-28T12:13:01.007" CommentCount="3" />
  <row Id="16453" PostTypeId="2" ParentId="16445" CreationDate="2010-11-03T06:46:32.037" Score="0" ViewCount="" Body="&lt;p&gt;if its explain in layman term which non-techie person can understand there won't be any problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From my understanding, a wrapper program is wrapped around a standard program to handle the sophisticated or restrictive steps for the end users as in a customised program that maybe adhere to company policies.&lt;/p&gt;&#xA;" OwnerUserId="6450" LastActivityDate="2010-11-03T06:46:32.037" />
  <row Id="16454" PostTypeId="1" CreationDate="2010-11-03T07:02:44.163" Score="0" ViewCount="110" Body="&lt;p&gt;Hi I am currently learning rails, day to day i get more attached. I would like to use Rails to build a  Web app with similar functionality like &lt;a href=&quot;http://www.scribd.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.scribd.com/&lt;/a&gt; or docstoc . What components/gems/plugins/libraries  in Rails  or Ruby could be used to create a web app with similar functionallity.  The web app should be have the &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Epub coversion to image(jpeg) as well as pdf&#xA;*PDF conversion to image (jpeg) as well as epub&#xA;**PDF to Epub&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I would just like suggestion on the libraries or plugins etc to use to obtain the above functions using Rails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looking forward to your answers soon&#xA;Thanks&lt;/p&gt;&#xA;" OwnerUserId="6953" LastActivityDate="2011-01-23T14:47:03.327" Title="Rails Document Conversion Suggestion ?" Tags="&lt;ruby&gt;&lt;ruby-on-rails&gt;&lt;libraries&gt;&lt;plugins&gt;&lt;third-party-libraries&gt;" AnswerCount="1" />
  <row Id="16456" PostTypeId="2" ParentId="16436" CreationDate="2010-11-03T07:29:34.170" Score="4" ViewCount="" Body="&lt;p&gt;The worst possible is &quot;currently I have no such questions&quot;.. just ask any thing that demonstrates your interest in the company or the Job. Ask 2 or 3 such questions so that people feel that you are genuinely interested in joining the company.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-03T07:29:34.170" CommunityOwnedDate="2011-01-28T12:13:01.007" />
  <row Id="16457" PostTypeId="1" CreationDate="2010-11-03T07:51:33.573" Score="0" ViewCount="67" Body="&lt;p&gt;I'm having a HICON that is in device dependent format. Now I'm trying to serialize this Icon, using GetIconInfo() I get the AND and XOR bitmaps and then save them. The resultant .ico file seems to be corrupted like I see some purple tones around the edge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any other processing that needs to be done while saving the file ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any help appreciated !&lt;/p&gt;&#xA;" OwnerUserId="6956" LastActivityDate="2010-11-03T07:51:33.573" ClosedDate="2010-11-03T08:59:51.070" Title="Saving HICON into a “.ico” file" Tags="&lt;windows&gt;" CommentCount="1" />
  <row Id="16458" PostTypeId="2" ParentId="16390" CreationDate="2010-11-03T08:04:38.117" Score="0" ViewCount="" Body="&lt;p&gt;Personally, I think that templates are the most significant feature that C++ adds to C. &lt;/p&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-11-03T08:04:38.117" CommentCount="2" />
  <row Id="16459" PostTypeId="1" CreationDate="2010-11-03T08:18:36.807" Score="4" ViewCount="331" Body="&lt;p&gt;Occasionally, I'll want to write a toy interpreter for fun.  But there's so many languages out there and so many parsing libraries to learn.  What are your favorite tools for this task?&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-04T21:12:13.580" Title="What is your favorite language to write interpreters/compilers in?" Tags="&lt;programming-languages&gt;&lt;interpreters&gt;&lt;parsers&gt;" AnswerCount="9" FavoriteCount="2" />
  <row Id="16460" PostTypeId="2" ParentId="16459" CreationDate="2010-11-03T08:45:18.597" Score="5" ViewCount="" Body="&lt;p&gt;If you don't mind the steeper learning curve, the Haskell/Parsec team can be quite nice. Also you can write embedded DSLs within Haskell nicely.&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-11-04T20:22:23.267" LastActivityDate="2010-11-04T20:22:23.267" />
  <row Id="16461" PostTypeId="2" ParentId="16390" CreationDate="2010-11-03T08:49:00.047" Score="1" ViewCount="" Body="&lt;p&gt;This Wikepedia article describes the issue-&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-11-03T08:49:00.047" />
  <row Id="16462" PostTypeId="2" ParentId="16436" CreationDate="2010-11-03T09:08:22.140" Score="9" ViewCount="" Body="&lt;p&gt;If it's only about showing your (fake) interest, ask questions about their business, what matters to &lt;strong&gt;them&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you think it's an opportunity for you to interview them back, ask questions about things that matters to &lt;strong&gt;you&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-03T09:08:22.140" CommunityOwnedDate="2011-01-28T12:13:01.007" CommentCount="1" />
  <row Id="16463" PostTypeId="1" AcceptedAnswerId="16519" CreationDate="2010-11-03T09:24:58.920" Score="1" ViewCount="162" Body="&lt;p&gt;I generally use switch statements to simplify a block of multiple if statements - for example - returning a feedback string to a user based on a multiple choice input. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also tend to construct classes so that there is one &quot;management&quot; method, to avoid sequential steps or chained method invocation within other methods of the class. I've found this helps to keep methods flexible and focussed - i.e.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class MyClass{&#xA;&#xA;    // this method does nothing more than invoke the relevant method&#xA;    // depending on the status following the previous. It's entire purpose&#xA;    // is to control application flow&#xA;    public function manageFlow($input){&#xA;        $status = $this-&amp;gt;stepOne($input);&#xA;        if($status == false){&#xA;            //exit routine&#xA;        }&#xA;&#xA;        $status = $this-&amp;gt;stepTwo($input);&#xA;        if($status == false){&#xA;            //exit routine&#xA;       }&#xA;    }&#xA;&#xA;    // this method has several sequential steps implemented direcly within it, &#xA;    // for example to a user logging in&#xA;    // it makes it impossible to re-use any of the intermediary steps&#xA;    public function tangledFlow($input){&#xA;         if($input == 'something){&#xA;         //100 lines of code&#xA;         }&#xA;         //then handing on to the next bit&#xA;         if($this-&amp;gt;User-&amp;gt;Authenticated){&#xA;         //another 100 lines...&#xA;         }&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Then it occurred to me that I could use a switch statement to control this kind of sequential execution - so my question is: has anyone used a switch statement for this kind of flow control?&lt;/p&gt;&#xA;" OwnerUserId="3712" LastEditorUserId="3712" LastEditorDisplayName="" LastEditDate="2010-11-03T11:12:17.743" LastActivityDate="2010-11-03T13:46:31.637" Title="Use switch statements for application flow?" Tags="&lt;php&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="16464" PostTypeId="2" ParentId="9055" CreationDate="2010-11-03T09:30:49.273" Score="9" ViewCount="" Body="&lt;h3&gt;Joe Armstrong&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Inventor of Erlang&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-11-03T09:30:49.273" CommunityOwnedDate="2010-11-03T09:30:49.273" />
  <row Id="16466" PostTypeId="2" ParentId="10675" CreationDate="2010-11-03T09:39:51.060" Score="1" ViewCount="" Body="&lt;p&gt;OK, this is the last day for bounty. And I am adding my answer. My suggested sequence-&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;C, C++, JAVA/C#, Python/Ruby, Any other language(Assembly/Lisp/Prolog etc)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I don't think the first language has to be the easiest one. Rather I think it should give the overall idea of how computer works keeping some abstraction.&lt;/li&gt;&#xA;&lt;li&gt;Transition from C to C++ will be easier. There will be OOP, the most used paradigm these days.&lt;/li&gt;&#xA;&lt;li&gt;Transition from C++ to C#/Java will be easier. I prefer C# because it incorporates many paradigms like functional programming.&lt;/li&gt;&#xA;&lt;li&gt;When someone now come to dynamic languages like Python or Ruby, there will be a &quot;&lt;strong&gt;WoW&lt;/strong&gt;&quot;. It will be easier to feel the beauty of dynamic typing. But learning dynamic languages first and static ones later will cause, &quot;&lt;strong&gt;Oh! Why I have to add all these?&lt;/strong&gt;&quot;&lt;/li&gt;&#xA;&lt;li&gt;Now, the most used paradigms and languages are almost done. So, explore whatever you want. From Assembly to Lisp, Prolog or Haskell. And discover newer contexts ans features of various programming languages.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="963" LastEditorUserId="963" LastEditorDisplayName="" LastEditDate="2010-11-03T09:46:46.193" LastActivityDate="2010-11-03T09:46:46.193" CommunityOwnedDate="2011-01-31T13:41:33.057" CommentCount="2" />
  <row Id="16467" PostTypeId="2" ParentId="2715" CreationDate="2010-11-03T09:47:30.937" Score="0" ViewCount="" Body="&lt;p&gt;The first method for 3 simple reasons.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It is the correct way in C, UNIX was written in that style, and I use C.&lt;/li&gt;&#xA;&lt;li&gt;It is more readable. } else { is a very recognizable shape and it nicely ties the related blocks together.&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I have to look after code which looks a lot like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if ( a &amp;lt; b )&#xA;{&#xA;   a *= 2;&#xA;}&#xA;//else if ( ( b + 100) &amp;lt; a)     rev 10103&#xA;else&#xA;/* This adds b to a and stores the result in a */&#xA;{&#xA;   a -= b; // rev 10129&#xA;}&#xA;#if 0&#xA;else&#xA;#endif&#xA;{&#xA;    a--;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2582" LastActivityDate="2010-11-03T09:47:30.937" CommunityOwnedDate="2010-11-03T09:47:30.937" CommentCount="1" />
  <row Id="16468" PostTypeId="1" AcceptedAnswerId="16486" CreationDate="2010-11-03T09:54:10.273" Score="11" ViewCount="256" Body="&lt;p&gt;Currently got a good job, spending 70% of my day doing what I love, the downside of this is of course that I am working for someone else and not my self.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally would love to get something of my own going, a night project etc which could trickle in some funds. The downside of this of course if that it would be a conflict of interest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I could of course just go ahead an start up my own little thing but if it got discovered I could risk my job. I could quit my job, but then I would miss the income (family + mortgage) and my ideas might not pan out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thinking about it tonight, I will discuss it with my boss tomorrow - he's a good guy but I just hope he doesn't burry it or just offer over time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone in this boat? Do what you love during the day (for someone else) and can't peruse it during the night....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: Just to clarify, that what I want to do at night is very similar to what I do during the day. It's not a 'I love programming' in general, but I like doing data mining - and thats what I do at work. Very closely related.&lt;/p&gt;&#xA;" OwnerUserId="6959" LastEditorUserId="6959" LastEditorDisplayName="" LastEditDate="2010-11-03T17:58:02.723" LastActivityDate="2010-11-03T17:58:02.723" Title="Conflicts of interest... doing what you love..." Tags="&lt;career&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="1" />
  <row Id="16469" PostTypeId="2" ParentId="16301" CreationDate="2010-11-03T09:55:50.753" Score="0" ViewCount="" Body="&lt;p&gt;Read joelonsoftware.com ot generally anything about how to get into the &quot;zone&quot; and stay there.&lt;/p&gt;&#xA;" OwnerUserId="6059" LastActivityDate="2010-11-03T09:55:50.753" CommunityOwnedDate="2011-01-23T10:19:44.323" />
  <row Id="16470" PostTypeId="2" ParentId="16436" CreationDate="2010-11-03T10:11:37.660" Score="1" ViewCount="" Body="&lt;p&gt;To find some good answers here, you might ask yourself &lt;code&gt;why do they ask that question&lt;/code&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usualy a Human Resource person is asking that question to see wether you are prepared for the interview or not. So in this scenario you should ask something about &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the company in general&lt;/li&gt;&#xA;&lt;li&gt;empoyment conditions&lt;/li&gt;&#xA;&lt;li&gt;education plans etc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For technical persons there are two options: maybe they ask just because they run out of questions by there own or they really want to found out something about our expertice. As a regular interviewer myself I can tell you that it's not the answers that tell you someting about the know-how of a person but the questions do...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for technical questions you should try to ask something that is related to the job you are after.&lt;/p&gt;&#xA;" OwnerUserId="6961" LastActivityDate="2010-11-03T10:11:37.660" CommunityOwnedDate="2011-01-28T12:13:01.007" />
  <row Id="16471" PostTypeId="1" AcceptedAnswerId="16477" CreationDate="2010-11-03T10:13:01.117" Score="12" ViewCount="817" Body="&lt;p&gt;I work for a web development firm and currently have 9 projects in the programming phase waiting for me to do them, and deadlines are flying past quickly without the projects getting done in time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have two designers who are underworked and just me as a developer. My boss keeps piling on the work and I don't know what to do, and they aren't happy I'm missing deadlines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any ideas that don't involve me working a lot of unpaid overtime?&lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-11-04T01:34:04.153" Title="4x as much work as I can actually do, what now?" Tags="&lt;career-advice&gt;" AnswerCount="15" CommentCount="3" FavoriteCount="4" />
  <row Id="16474" PostTypeId="2" ParentId="515" CreationDate="2010-11-03T10:16:01.960" Score="6" ViewCount="" Body="&lt;p&gt;Let me reiterate on the Perl 6 comment by Gaurav. The Perl 6 designers did reinvent regular expressions, and put a lot of thought into them. Some of the more important changes include&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;an easy way to reuse regexes by giving them names, and calling by name (just like subroutines and methods)&lt;/li&gt;&#xA;&lt;li&gt;an easy way to group named regexes in grammars&lt;/li&gt;&#xA;&lt;li&gt;grammar inheritance&lt;/li&gt;&#xA;&lt;li&gt;cleaner syntax: removal of the &lt;code&gt;(?$char..)&lt;/code&gt; constructs&lt;/li&gt;&#xA;&lt;li&gt;make whitespace insignificant by default, just as in normal code&lt;/li&gt;&#xA;&lt;li&gt;simplified rules for determining whether a character or character sequence is matched literal or not&lt;/li&gt;&#xA;&lt;li&gt;quotes for literal strings (PCRE has only escapes for single characters, no proper quoting mechanism)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;See the specification at &lt;a href=&quot;http://perlcabal.org/syn/S05.html&quot; rel=&quot;nofollow&quot;&gt;http://perlcabal.org/syn/S05.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6960" LastActivityDate="2010-11-03T10:16:01.960" CommunityOwnedDate="2010-11-03T10:16:01.960" />
  <row Id="16475" PostTypeId="2" ParentId="16468" CreationDate="2010-11-03T10:16:02.973" Score="1" ViewCount="" Body="&lt;p&gt;I was in the same situation but from the opposite side, I was doing what I love in the evening and then by coincidence ended up getting a contract that became a little too related for comfort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Turned out that upon projecting where both projects would go in the long term (goals and markets) they weren't actually that related, they just appeared to be very similar at first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I am saying is, is there a chance that if you started doing what you love in the evening it wouldn't stay on the same path and you would progress in different areas, if it is just a mirror of what you do during the day I think you need to be concerned.&lt;/p&gt;&#xA;" OwnerUserId="6457" LastActivityDate="2010-11-03T10:16:02.973" />
  <row Id="16476" PostTypeId="2" ParentId="10675" CreationDate="2010-11-03T10:16:17.557" Score="10" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;The one you need now&lt;/li&gt;&#xA;&lt;li&gt;The one you need next&lt;/li&gt;&#xA;&lt;li&gt;The one you need after that&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Seriously, I may have learnt BASIC, COBOL, Fortran, Forth, Pascal and Prolog in my time, but I've never particularly needed to use them and I can't really see any way in which they've influenced my use of other languages, except perhaps misapplying paradigms from one in another. It took me ages to unlearn BASIC enough to actually write structured Pascal, a couple of years to stop writing Pascal code in C, and another couple of years to actually grok OOP when I started using Objective-C and Java. On the other hand, since I've been working (almost) exclusively in OO languages I've been able to concentrate on improving my use of OO languages, without trying to make them look like Scheme or PostScript.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-11-03T10:16:17.557" CommunityOwnedDate="2011-01-31T13:41:33.057" CommentCount="1" />
  <row Id="16477" PostTypeId="2" ParentId="16471" CreationDate="2010-11-03T10:18:57.587" Score="18" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Replace one designer by a developer.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Since you can't do it, you must adopt a strategy where your boss will figure it out himself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since I don't know him/her here is a simple strategy you must adapt to your case.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;I would suggest to do only 1 overtime hour for the next two weeks. Do your best, show you really want that company to succeed.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;After that period, tell you can't do it anymore (it must be true), you are exhausted. If he/she insists, tell him/her you will think about it (continue overtime).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Come back in three days, announce you quit. You can't kill your health for work.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;You will create a tsunami there, since apparantly YOU are the key employee in the company. This will lead to discussion. Just mention the fact he must provide more work to the designers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He/she will figure it out him/herself: replace one designer by a developer or hire 2 more developers.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-03T10:18:57.587" CommentCount="1" />
  <row Id="16478" PostTypeId="2" ParentId="16471" CreationDate="2010-11-03T10:19:31.663" Score="14" ViewCount="" Body="&lt;p&gt;Rather than try and meet all the deadlines and fail I'd concentrate on trying to finish a single project, the alternative is nothing gets finished.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Talk to your boss and tell him you can't do it all alone but make a point of saying what you can do, hopefully they will see the light and get some help in.&lt;/p&gt;&#xA;" OwnerUserId="6457" LastActivityDate="2010-11-03T10:19:31.663" />
  <row Id="16479" PostTypeId="2" ParentId="16471" CreationDate="2010-11-03T10:20:36.497" Score="28" ViewCount="" Body="&lt;p&gt;Learn to say &quot;No&quot;.&lt;/p&gt;&#xA;" OwnerUserId="6961" LastActivityDate="2010-11-03T10:20:36.497" CommentCount="6" />
  <row Id="16480" PostTypeId="2" ParentId="16471" CreationDate="2010-11-03T10:22:03.817" Score="1" ViewCount="" Body="&lt;p&gt;There's not that many options I'm afraid - in these situations I've always found that the best thing to do is be frank with them.  The cheapest short-term solution may be to see if the designers can be retrained and take on some of the more menial development tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Long term, think about hiring two more developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only other option I can think of (that doesn't involve you basically living there or leaving the company) is to give the boss the choice - repeated missed deadlines or start dropping / turning down projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He may ignore you the first time or even the second, but when your predictions of missed deadlines turn into fact, they should start to listen.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastEditorUserId="5375" LastEditorDisplayName="" LastEditDate="2010-11-03T11:56:06.277" LastActivityDate="2010-11-03T11:56:06.277" />
  <row Id="16481" PostTypeId="2" ParentId="16390" CreationDate="2010-11-03T10:25:12.680" Score="11" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;(user-defined) static type system&lt;/strong&gt; : allow static checks about your data and their usage - points a lot of easily done errors in C.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;multi-&quot;paradigm&quot;&lt;/strong&gt; : allow working like in C, with object-oriented paradigms, with generic paradigms etc.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Constructor/Destructor&lt;/strong&gt; : the only way to say once what to do when creating or destroying something and be sure the user will not have to find the right function and use it like in C&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;RAII (badly named)&lt;/strong&gt; : you don't have to always manage memory. Just keep things in scope and use smart pointers describing your objects lifetime. Still can use raw pointers.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Templates&lt;/strong&gt; : better than macro, a real language to manipulate and generate types before the final compilation. Only lacks a type system (see Concepts in future C++ standards).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Operator overloads&lt;/strong&gt; : allow to describe operations in a simple syntactic manner and even to define embedded domain-specific languages inside your C++ code.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Scoped names&lt;/strong&gt; : namespaces, classes/struct, functions, etc. have simple rules to make sure names don't clash. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Exception system&lt;/strong&gt; : a way to propagate errors that is often better than return code. In fact, return code are good for domain-specific logical errors, because the application have to manage it. Exception are used for &quot;hard&quot; errors, things that make the following code just incorrect. It allows for catching errors higher in the call stack if possible, react to such exception (by logging or by fixing the state) and with RAII, if well used, it don't make the whole program wrong - if done well, again.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;The Standard Library&lt;/strong&gt; : C have his own, but it's all &quot;dynamic&quot;. The C++ standard library is almost (not IO streams) made of templates (containers and algorithms) that allow generating code only for what you use. Better : as the compiler have to generate code, it will know a lot about the context and will hapily apply a lot of optimizations without having to require the coder to obfuscate it's code - thanks to templates and other things.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;const-correctness&lt;/strong&gt; : The best way to make sure you don't change variables you shouldnt. Allow to specify read-only access to varaibles. And is only checked at compile time so there is no runtime cost.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1921" LastEditorUserId="1921" LastEditorDisplayName="" LastEditDate="2010-11-03T13:22:13.573" LastActivityDate="2010-11-03T13:22:13.573" />
  <row Id="16482" PostTypeId="2" ParentId="9965" CreationDate="2010-11-03T10:26:19.607" Score="0" ViewCount="" Body="&lt;p&gt;In addition to the excellent answers given so far, I'd like to point out that case sensitivity gives you also additional &quot;namespaces&quot;. For example Perl has some special blocks like &lt;code&gt;BEGIN&lt;/code&gt; and &lt;code&gt;END&lt;/code&gt; that run at different times than normal code (BEGIN at compile time, END after the normal program has terminated), and having those as all-caps makes them stand out, and means that the lower case variants aren't reserved words.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One can go even further and reserve all-uppercase names for future use by the language, and don't do any harm to normal programmers, who usually DON'T SHOUT IN THEIR CODE.&lt;/p&gt;&#xA;" OwnerUserId="6960" LastActivityDate="2010-11-03T10:26:19.607" />
  <row Id="16483" PostTypeId="1" AcceptedAnswerId="34337" CreationDate="2010-11-03T10:28:13.647" Score="3" ViewCount="332" Body="&lt;p&gt;Well, this is silly - I've had to post a question about programming on a site other than stackoverflow... Worst thing they have ever done..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have the following list of languages:&lt;br /&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;C++&#xA;C#&#xA;VB.Net&#xA;D&#xA;Delphi&#xA;Euphoria&#xA;GLUT&#xA;Java&#xA;Power Basic&#xA;Python&#xA;REALbasic&#xA;Visual Basic&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I would like to know what people think is the:&lt;br /&gt;&lt;br /&gt;&#xA;*a) Best (&lt;em&gt;most efficient&lt;/em&gt;) language to work with OpenGL*&lt;br /&gt;&#xA;&lt;strong&gt;and&lt;/strong&gt;&lt;br /&gt;&#xA;&lt;em&gt;b) What is the easiest language to work with OpenGL&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance guys n gals!&lt;/p&gt;&#xA;" OwnerUserId="1891" LastEditorUserId="1891" LastEditorDisplayName="" LastEditDate="2010-11-03T16:58:32.343" LastActivityDate="2011-01-06T17:43:46.690" Title="Which language is best for OpenGL?" Tags="&lt;programming-languages&gt;" AnswerCount="5" CommentCount="3" />
  <row Id="16484" PostTypeId="2" ParentId="16471" CreationDate="2010-11-03T10:31:46.700" Score="3" ViewCount="" Body="&lt;p&gt;Communicate these issues with your manager. Unfortunately, just saying &quot;I'm overworked and I need a coworker&quot; is unlikely to cut it, you will have to make them believe that hiring or training another developer was their idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maintain a to-do list in a spreadsheet, complete with time estimates and deadlines. Whenever the limited number of days in a week makes it physically impossible to meet a set of deadlines, ask your manager to prioritize your to-do entries. As another poster said, better to put a couple of second-tier customers on the back burner than to seemingly achieve nothing but burning yourself out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your manager still doesn't get the message after a couple of weeks, bring out the clue stick (&quot;Boss, we need to talk. There's simply too much work for just one man here.&quot;). If that fails too, I'm afraid the next escalation step is to look for another job. Don't let them burn you out, it's simply not worth the money.&lt;/p&gt;&#xA;" OwnerUserId="604" LastActivityDate="2010-11-03T10:31:46.700" />
  <row Id="16485" PostTypeId="2" ParentId="16483" CreationDate="2010-11-03T10:33:49.133" Score="7" ViewCount="" Body="&lt;p&gt;C++ has always been a very good language to use with OpenGL.  There are a lot of resources out there to help/support you on your development journey.&lt;/p&gt;&#xA;" OwnerUserId="1893" LastActivityDate="2010-11-03T10:33:49.133" CommentCount="1" />
  <row Id="16486" PostTypeId="2" ParentId="16468" CreationDate="2010-11-03T10:34:37.673" Score="4" ViewCount="" Body="&lt;p&gt;You need to tread carefully.  First, go read the employment contract you signed, and look in the employee handbook, if there is one, specifically for information about &quot;moonlighting&quot;.  If your employer forbids it, the first step is to get the contract changed, if it means that much to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're allowed to moonlight, there's still an expectation that it a) won't interfere with your work and b) isn't competing with what they do.  Err on the side of full disclosure.  It's better to discuss your plans first, before you do anything the company could think is encroaching on their &quot;turf&quot;.  Plus, they'll respect you for being open about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A note about evening projects... I work on some open source projects, and I've had both recent employers sign an agreement like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Open Source Software Disclaimer&#xA;&#xA;&amp;lt;Company Name&amp;gt; hereby disclaims all copyright interest in the &#xA;open source program &quot;&amp;lt;Program Name&amp;gt;&quot; &#xA;(&amp;lt;which makes passes at compilers&amp;gt;) written by &amp;lt;your name&amp;gt;.&#xA;&#xA;x_____________________, Date: _________________&#xA;&#xA;Printed: ____________________________, &amp;lt;Company Name&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(I got it from the &lt;a href=&quot;http://www.gnu.org/licenses/gpl-howto.html&quot; rel=&quot;nofollow&quot;&gt;bottom of this page&lt;/a&gt;.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This protects both you and the open source project itself, should the company decide to do an about-face in the future.  This is your evidence that you notified the employer and that they were onboard with it.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-11-03T10:34:37.673" />
  <row Id="16487" PostTypeId="2" ParentId="9965" CreationDate="2010-11-03T10:42:07.753" Score="1" ViewCount="" Body="&lt;p&gt;I'm surprised by this rant.  Now that nobody wants you to use an underscore or an &lt;code&gt;m_&lt;/code&gt; in a field name in C#, I've just been using camel case, and if the field name is the same as a public property name, just that the public property name is Pascal case and the backing field is camel case, I figure, &quot;so be it&quot; - that's what the programming community at large seems to want.  It hasn't caused any problems so far.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-11-03T10:42:07.753" />
  <row Id="16488" PostTypeId="2" ParentId="16483" CreationDate="2010-11-03T10:43:08.470" Score="0" ViewCount="" Body="&lt;p&gt;C++ if you want efficient code but a long dev cycle, maybe python, java if you want the reverse of that or c# for somewhere in the middle :)&lt;/p&gt;&#xA;" LastActivityDate="2010-11-03T10:43:08.470" />
  <row Id="16489" PostTypeId="2" ParentId="16483" CreationDate="2010-11-03T10:45:35.477" Score="0" ViewCount="" Body="&lt;p&gt;OpenGL is kind of designed to work with C++ so that would be your starting point. Even if you're working with a language like Java you are likely to spend a lot of time making native calls or using a library like LWJGL that makes lots of native calls on your behalf.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That doesn't mean it's a bad idea to use a language that insulates you a little from the trickier aspects of life with C++. If it were me I would use Java, just because I know the language pretty well, although with Oracle thundering around the place like a bull in a chinashop I don't know how well it will last.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would avoid the .net languages as they are more closely designed to tie in to Direct3D, or learn to use Direct3D - there isn't much to call but if you want to be cross platform you probably don't want to be using D3D.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of that said, there is a slight question of what you want to do with OpenGL. Often people are interested in games development and if you are then I &lt;em&gt;strongly&lt;/em&gt; recommend that rather than involving yourself in the base level of engine development you use an existing engine ( of which there are hundreds in pretty much every language you can think of  ) rather than reinventing the wheel- you can always enhance things about an open source engine as you need to, if you need to - you start with a solid foundation that allows you to create something interesting more quickly. &lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-03T10:45:35.477" />
  <row Id="16490" PostTypeId="2" ParentId="16471" CreationDate="2010-11-03T10:50:25.103" Score="2" ViewCount="" Body="&lt;p&gt;There is nothing wrong with having more work on than you can do as long as you are taking enough money for the work that you can hire in some freelancers to cover most of the projects. There are good people around pretty much wherever you are ( and with the web it doesn't really matter where they are anyway ) who will happily work well on a project by project basis, saving your time for the projects that really matter to you. I used to do freelance work myself and I know a few people who do. If you can find some reliable freelancers ( and most people who have been doing that work for a few years will be fairly reliable if they are still in work ) and keep them in your phone book you can have a really useful flexible resource for the times when the weight of projects is too great.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't afford to do that, you're undercharging. If charging the right amount brings in less work, it shouldn't matter as each job brings in more cash.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-03T10:50:25.103" CommentCount="1" />
  <row Id="16492" PostTypeId="2" ParentId="16468" CreationDate="2010-11-03T11:07:19.087" Score="1" ViewCount="" Body="&lt;p&gt;The approach I've taken in the past is to maintain a strict divide between your company projects and your private ones.  Don't develop your private projects using company resources or equipment, or even on company premises.  Browsing the internet for a solution to a problem on your private projects while you're at work may be OK depending on the attitudes of your managers, but to be safe don't do that either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't about being secretive, and there's nothing wrong with telling your boss about it, it's about not giving the company a chance to claim it as their property.  In fact, you can tell them about it, and if they have any moonlighting objections you can debate them at that point.  Depending on certain factors (whether you do any of the development in the company office, on company time or on company equipment being a principle one), you can sometimes claim it as a hobby, which is none of the company's business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm personally limited in how I do this right now since I live in a 1-bedroom flat and the main PC is in the living room.  There's just too many distractions, and my girlfriend often wants to use the computer anyway.  Next time I move, an important feature of the property would be a room I can turn into a study where I can set up a PC to quietly work on my pet projects in the evening and on weekends.  In the meantime I might buy a laptop to take to the library (right now, I have a netbook which isn't really powerful enough to run Visual Studio, and doesn't really have a big enough screen to do proper programming).&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-11-03T11:07:19.087" />
  <row Id="16493" PostTypeId="1" CreationDate="2010-11-03T11:08:06.653" Score="6" ViewCount="278" Body="&lt;p&gt;A team member start listing fairly aggressive deadlines (for the project everybody is working on) -- something that is to be done well can take 4 to 5 days, and he lists it as 2 to 3 days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The program manager and the CEO are both happy, because that means people will work overtime and salary is lower as a result, and faster goal reached, etc.  People do get burned out and it is not so long term sustainable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there good ways to handle it?  I can talk to the management but sure it is a conflict of interest, because they want people working overtime and people don't want to always work overtime. (unless you tell them sprint for 2 months and we will give you 2 weeks extra holiday).  If enough coworkers say this is not good, we can tell the management, but some coworkers don't care about quality as much (if shorter time just sacrifice quality), and some coworkers also like to please the management, and the remaining may not want to make noise to suggest that they don't want to work hard.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some good ways to handle this?&lt;/p&gt;&#xA;" OwnerUserId="6968" LastEditorUserId="6968" LastEditorDisplayName="" LastEditDate="2010-11-03T13:06:43.960" LastActivityDate="2010-11-03T13:06:43.960" Title="What if a team member start listing aggressive deadlines and management is happy and programmers know they will work overtime?" Tags="&lt;burnout&gt;" AnswerCount="2" CommentCount="4" FavoriteCount="4" />
  <row Id="16494" PostTypeId="2" ParentId="16468" CreationDate="2010-11-03T11:10:41.863" Score="0" ViewCount="" Body="&lt;p&gt;Good question.  I enjoy programming myself, though that's just the problem.  It's not for myself, it's for my company.  Part of me wishes I were working for Google because they allow their programmers to work on their own projects since genius unfortunately cannot be forced.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd love to start some side project on SourceForge but I can't quite find the right project.  My advice to you would be to feel it out as you go along and not make any unnecessary risks.  &lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-03T11:10:41.863" />
  <row Id="16495" PostTypeId="2" ParentId="9965" CreationDate="2010-11-03T11:16:03.880" Score="0" ViewCount="" Body="&lt;p&gt;Especially some programmer come from the early days of BASIC, where a variable name can only be 2 characters long.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And so, when it can be any number of characters, they become very happy.  And along with case sensitivity -- because they don't want to also care about &lt;code&gt;SomeName&lt;/code&gt; being accidentally equal to &lt;code&gt;SOMENAME&lt;/code&gt; and cause a bug due to things like this.&lt;/p&gt;&#xA;" OwnerUserId="6968" LastActivityDate="2010-11-03T11:16:03.880" />
  <row Id="16496" PostTypeId="2" ParentId="16493" CreationDate="2010-11-03T11:16:42.183" Score="13" ViewCount="" Body="&lt;p&gt;If you get assigned to a task with an estimate you did not yourself, and you feel the estimate is not accurate, send the following email:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your boss is named Harry, and the guy that estimated the task is called Snoopy.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Subject: Regarding task #XXX&#xA;  estimations&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Dear Harry,&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I've been assigned to work on the task #XXX. I noticed that the&#xA;  estimations was made by Snoopy.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I feel unconfortable with that estimation and I can't commit I will&#xA;  be able to do it in that amount of&#xA;  time.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I suggest that Snoopy do the task instead as he seems to be&#xA;  able to do it in less time than me.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I have a suggestion to avoid such situations. Why not using Planning&#xA;  Poker to do estimates? Planning Poker&#xA;  is a consensus-based technique for&#xA;  estimating.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;It is a technique that minimizes anchoring by asking each team member&#xA;  to play their estimate card such that&#xA;  it cannot be seen by the other&#xA;  players.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The meeting proceeds as follows:&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Planning Poker is a serious issue, not&#xA;  a game. But when you introduce&#xA;  Planning Poker Cards at your next&#xA;  release planning meeting, team&#xA;  interest level (and participation)&#xA;  will shoot straight up and, even&#xA;  better, you'll walk away with what is&#xA;  most likely the most accurate project&#xA;  time estimate you've ever had. Here's&#xA;  how it works...&lt;/p&gt;&#xA;  &#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;&lt;p&gt;You create your required feature list as usual. Your Scrum Backlog for&#xA;  example. &lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;The most experienced developer (or the Scrum Master) for each feature&#xA;  provides an overview of the&#xA;  functionality for that feature. Team&#xA;  members can ask questions and&#xA;  participate in discussions until the&#xA;  feature has been fully discussed. No&#xA;  one is allowed to mention time&#xA;  estimates during the discussion. The&#xA;  Product Owner makes a note of the&#xA;  final consensus. &lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Each team member selects a Planning Poker Card representing their estimate&#xA;  of the amount of time (usually Story&#xA;  Points or Ideal Days) required to&#xA;  produce that feature and lays it on&#xA;  the table face down. Again, time&#xA;  estimates are not permitted to be&#xA;  mentioned out loud. &lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Everyone turns their cards over at the same time. &lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Team members with high and low estimates are given the opportunity to&#xA;  make their case for supporting the&#xA;  amount of time they have estimated. &lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;The process is repeated until the team reaches a consensus. Preference&#xA;  may be given to the estimate of the&#xA;  developer who will be responsible for&#xA;  implementing the feature in question,&#xA;  but the Product Owner, acting as&#xA;  moderator, should help in the&#xA;  negotiation.  &lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;A timer is used to ensure that each discussion phase does not drag on. The&#xA;  moderator or Project Manager controls&#xA;  the timer. Once the allotted&#xA;  discussion time has passed, another&#xA;  round of Planning Poker ensues. &lt;/p&gt;&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;  &#xA;  &lt;p&gt;The entire process forces each team&#xA;  member to fully think out their&#xA;  position and to be able to present&#xA;  their justifications to the team. No&#xA;  one has more authority than anyone&#xA;  else, and the project time line is&#xA;  developed without pressure or bias.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;a href=&quot;http://www.agilehardware.com/pages/Planning-Poker.html&quot; rel=&quot;nofollow&quot;&gt;Check this out&lt;/a&gt;. (disclaimer: I'm the owner of that website)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Companies like &lt;strong&gt;Microsoft&lt;/strong&gt;, &lt;strong&gt;Google&lt;/strong&gt;, &lt;strong&gt;Ebay&lt;/strong&gt;, &lt;strong&gt;Nokia&lt;/strong&gt; are using that methodology. Why not you?&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-03T11:50:20.877" LastActivityDate="2010-11-03T11:50:20.877" CommentCount="6" />
  <row Id="16497" PostTypeId="2" ParentId="16493" CreationDate="2010-11-03T11:18:06.720" Score="2" ViewCount="" Body="&lt;p&gt;Ouch.  It really depends on what type of person your program manager is, though if he's reasonable, try to rationalize with him.  Sit him down and explain that while results are exceptional now, at this rate the chance of bugs are tripled.  Even if it isn't evident now, if in 6 months time a major bug gets discovered which costs three times as much effort to resolve, in the end it was a net loss, not a net gain.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just be careful how you say it.  You don't want it to come across as some sort of a threat.  If your program manager is a PHB (pointy-haired boss), I'd try to convey the same message in a meeting with him and his boss (and if you can convince some of your coworkers to join in, do so since it affects them too, right?).  Be prepared to offer an alternative estimate, such as 4 days, which is not 5 days, but it's not 2 either.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can totally understand where you're coming from.  It's not in your best interest nor in the best interests of the company in the long term.  &lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-03T11:18:06.720" />
  <row Id="16498" PostTypeId="2" ParentId="16445" CreationDate="2010-11-03T11:27:56.317" Score="2" ViewCount="" Body="&lt;p&gt;Sounds to me like a service, not a wrapper.  Services are these vigil little creatures that watch from afar for specific conditions to leap into the fray and handle some odd job.  I think service is technically a keyword reserved by Microsoft Windows, though so was the term 'thread' until it was used in a broader context.  So feel free to adapt that word.  At least it's more accurate than wrapper.&lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-03T11:27:56.317" />
  <row Id="16499" PostTypeId="2" ParentId="16471" CreationDate="2010-11-03T11:42:06.770" Score="2" ViewCount="" Body="&lt;p&gt;Unfortunately you see this time and time again.  The effort of programmers is measured in man-months, which is to say, if it takes one man one month to perform one task, then logically it'll take two men a half a month to perform that same task.  It has been proven extensively that this model is extremely inaccurate when you apply it to software development.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The project managers are only encouraged by their efforts to decrease the deadlines since you work harder to achieve the goal, however they're shooting themselves in the foot.  A) Their exhausting their only resource and B) their only increasing the possibility for error.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just work hard and make it perfectly clear to everyone involved that this estimate is impossible to meet.  Don't sabotage the project but don't work at night either.  Let the results show themselves.  Rather than the blame being placed on you, it will be on the one who you clearly announced had made an error in estimates.  Be aware that it might create some tension, but if your project manager isn't stupid, he'll eventually get the idea that deadlines are unrealistic.  If in addition to saying that the current estimate is wrong, you also provide your own estimate, people will learn to listen to your estimate, even if your project manager doesn't catch on.&lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-03T11:42:06.770" />
  <row Id="16500" PostTypeId="1" CreationDate="2010-11-03T12:32:58.160" Score="6" ViewCount="397" Body="&lt;p&gt;I come from growing up on dos/windows and the more I got into programming and development the more I invested time/effort into linux distributions.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had a choice between an IBM and a Macbook.  I went with the Macbook to get some experience but I am not really sure where to start?  I find myself wanting to install virtualbox and boot up linux.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any advice for a new Mac user who wants to get back up to speed with programming efficiently?  &lt;/p&gt;&#xA;" OwnerUserId="136" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-11-03T13:46:23.720" LastActivityDate="2011-03-08T04:50:56.090" Title="Employer purchased a Macbook for me, as a programmer what do I need to do to get my environment setup?" Tags="&lt;apple&gt;&lt;mac&gt;&lt;macbook&gt;&lt;new-technology&gt;" AnswerCount="5" CommentCount="12" FavoriteCount="2" />
  <row Id="16501" PostTypeId="2" ParentId="16500" CreationDate="2010-11-03T12:40:36.913" Score="14" ViewCount="" Body="&lt;p&gt;Well Mac OS 10.6.x has a POSIX compatible core, so look for the terminal icon and fire up your UNIX certified terminal!  You'll quickly find yourself at home there.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-03T12:40:36.913" CommentCount="1" />
  <row Id="16502" PostTypeId="2" ParentId="515" CreationDate="2010-11-03T12:44:32.280" Score="0" ViewCount="" Body="&lt;p&gt;I'd probably make them look a bit more verbose, almost like a scripting language. That would do a lot to both popularize it's use as well as ease up debugging/understanding.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-03T12:44:32.280" CommunityOwnedDate="2010-11-03T12:44:32.280" />
  <row Id="16503" PostTypeId="2" ParentId="16471" CreationDate="2010-11-03T12:50:11.933" Score="2" ViewCount="" Body="&lt;p&gt;Change the job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why should some undereducated m0ron with some BS (that's not B.Sc.) degree in &#xA;business pick up fruits of your work and look good to the upper mgmt., all while you're busting your chops and hurting private life?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It ain't worth it!&lt;/p&gt;&#xA;" OwnerUserId="5185" LastEditorUserId="5185" LastEditorDisplayName="" LastEditDate="2010-11-03T14:02:29.343" LastActivityDate="2010-11-03T14:02:29.343" CommentCount="6" />
  <row Id="16504" PostTypeId="2" ParentId="16500" CreationDate="2010-11-03T12:52:04.077" Score="3" ViewCount="" Body="&lt;p&gt;Go into it with an open mind. Remember the first time you booted a Linux box, and how it wasn't anything like Windows/DOS? You're in the same boat, now. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There will be some things which you really like and some things which you really hate -- that's completely normal. Over time, it will become more familiar, and just like I'm sure you're equally comfortable working in a Windows world now as you are a Linux one, you'll soon be equally comfortable working in a Mac world as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Enjoy the process. You only get to learn a new operating system once.&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-11-03T12:52:04.077" />
  <row Id="16505" PostTypeId="2" ParentId="16500" CreationDate="2010-11-03T12:53:57.520" Score="5" ViewCount="" Body="&lt;p&gt;First, I would thank the employer for getting me such nice gear. Courtesy is sadly lacking in today's workplace. Next, I would look at what it is that I need to do for the employer, and if it REQUIRED Linux (i.e., direct dependence on a particular set of binaries in a distribution) I would set up a virtual environment to host it (I am partial to VMWare - to each their own). If the need was NOT for a specific Linux distro I would get my terminal program in Mac set up how I wanted it and start working. All the basic commands you expect are there, with some changes to the allowed switches. Anything you don't have can be installed and/or you can fall back on a VM with whatever distro floats your boat. I would not mess around with dual booting or such. Other than that, no particular advice for a new Mac user.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-11-03T12:53:57.520" CommentCount="2" />
  <row Id="16506" PostTypeId="2" ParentId="16471" CreationDate="2010-11-03T12:58:24.490" Score="9" ViewCount="" Body="&lt;p&gt;STOP working unpaid overtime immediately!!! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless the company requires you to work overtime and is willing to invest in the project you are only hurting yourself. I guarentee if you continue to let yourself be used like this you will end up burning out. You will not be useful to anyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the meantime I bet you are developing a strong resentment for the programming industry. I suggest you confront your boss and state your concerns. If your boss brushes you off it is time to start looking for another job. You sound like a hard worker with a lot of talent. I am sure another company would be glad to have you. If your boss does not care. I would continue to work the minimum hours (no overtime) and look for another job. Find a company that recognizes its employees as people not just drones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some strong warning signs can be found on many &lt;a href=&quot;http://www.helpguide.org/mental/burnout_signs_symptoms.htm&quot; rel=&quot;nofollow&quot;&gt;Mental Health or Self Help Sites&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you notice any of these symptoms its important that you start seeking another job ASAP.&lt;/p&gt;&#xA;" OwnerUserId="1328" LastActivityDate="2010-11-03T12:58:24.490" CommentCount="3" />
  <row Id="16507" PostTypeId="2" ParentId="16500" CreationDate="2010-11-03T12:58:57.980" Score="1" ViewCount="" Body="&lt;p&gt;My advice is to slowly appreciate the powerfulness of a Macbook, and at the same time, get ready to install VirtualBox and install Windows and Linux on it.  There might be some tools that is readily available on Windows that you are used to using, but at the moment can't be found on the Mac, or a similar tool exists also on Mac, but you are not used to using it yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And now you have the best of 3 worlds.&lt;/p&gt;&#xA;" OwnerUserId="6968" LastActivityDate="2010-11-03T12:58:57.980" />
  <row Id="16508" PostTypeId="2" ParentId="16463" CreationDate="2010-11-03T13:00:19.447" Score="0" ViewCount="" Body="&lt;p&gt;In this case, it looks like you're using PHP, so using a switch statement won't have a huge impact on the performance of the code to use a switch vs. if statements in this situation, and there aren't major syntax issues you'd need to worry about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, that said, I would say do what you think is going to be more maintainable. If your team favors switch statements over trains of ifs, then use that. If the opposite is true, use that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should absolutely be using &lt;code&gt;manageFlow&lt;/code&gt; over &lt;code&gt;tangledFlow&lt;/code&gt; for your method design, however. &lt;code&gt;tangledFlow&lt;/code&gt; tries to do too many things, and as such reduces maintainability (and readability!).&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-11-03T13:00:19.447" CommentCount="1" />
  <row Id="16509" PostTypeId="2" ParentId="16445" CreationDate="2010-11-03T13:00:43.513" Score="0" ViewCount="" Body="&lt;p&gt;I've always viewed wrappers as generally small programs that do pre and post processing for some other program or procedure. So typically the wrapper will be the one making the call to the program it is wrapping. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples for why you might do this: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;It allows you to programmatically set up the environment conditions for the program being called so that they will always be in a form that makes the wrapped program happy.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It effectively allows you to mask the calling of the wrapped program, should you desire to, from the user's eyes.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-11-03T13:00:43.513" />
  <row Id="16510" PostTypeId="2" ParentId="16289" CreationDate="2010-11-03T13:13:04.350" Score="0" ViewCount="" Body="&lt;p&gt;What is your non-compete and non-disclosure clause like? If they are generally lax, then why not see if there is some additional work you are able to do for some one else from home? Or better yet, spend some of your free time working on personal projects that may end up turning into your own product! There are always ways to find projects to work on that advance your technical skills that are not handed to you from work.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastEditorUserId="1073" LastEditorDisplayName="" LastEditDate="2010-11-03T13:38:07.463" LastActivityDate="2010-11-03T13:38:07.463" />
  <row Id="16511" PostTypeId="2" ParentId="15321" CreationDate="2010-11-03T13:13:06.733" Score="1" ViewCount="" Body="&lt;p&gt;The code doesn't lie.  Certainly good idea to get an overview of the project first to understand &lt;em&gt;what&lt;/em&gt; it does.  However, if your task is to get a detailed understanding of how the project works, looking at code, at least for me, is like looking at a jigsaw puzzle piece by piece except that with each class you look at, you're adding another piece of the jigsaw puzzle.  If the code is well-structured, you can see a pattern forming from the names of the classes without even investigating what the class does.  In many cases, you can get hints and clues from the code which will assist you further. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, you get what is irrequivocable idea of what the program does, a completed jigsaw puzzle.  Documentation may be incomplete or inaccurate, but the code never lies.  All of this you can do without figuring out what each individual method does.  Not everyone can learn about a project this way, but if you do it often, it comes easier to you, not to mention that you can get the gist of a medium-sized application in a couple hours of studying.  Though I suppose it all comes down to preference.  &lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-03T13:13:06.733" CommunityOwnedDate="2011-04-08T10:09:01.537" />
  <row Id="16512" PostTypeId="2" ParentId="16445" CreationDate="2010-11-03T13:18:22.843" Score="0" ViewCount="" Body="&lt;p&gt;A wrapper is a layer, code portion, stuff which encapsulate the inside logic of the final task or processus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We can say there's two main types of wrappers :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;abstraction wrappers&lt;/strong&gt; : the principle is to hide/abstract the final task to be as least bound to it as possible (ie. the wrapper caller don't need to know the final task logic).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;engine/controller wrappers&lt;/strong&gt; : they are used to add a specific or context logic which cannot -or is not supposed to- be done by the final task.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Note that a wrapper can achieve this two goals as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can be used in many cases but about a program, a wrapper program is a &quot;program launcher&quot;. Its main goal is to launch the child program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may pass some context parameters to the child program, handle pre-launch and after-launch steps, restart/shutdown it etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can launch the child program as a new process or as an inner process but the wrapper program execution is directly linked to the child program execution : if the wrapper stops, the child program stops.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To compare to a third-party client, a third-party client don't care about the child program process. It is there to maintain the child program files/configuration/stuff but is not responsible of its execution even if it may launch it.&lt;/p&gt;&#xA;" OwnerUserId="6912" LastActivityDate="2010-11-03T13:18:22.843" />
  <row Id="16513" PostTypeId="2" ParentId="16289" CreationDate="2010-11-03T13:18:42.923" Score="1" ViewCount="" Body="&lt;p&gt;I'm in the same boat as you, sorta.  I've got a small team that I work with using the same tech stack that has been used for the past 5 years and there's no forseeable alteration in the future.  Unfortunately it's COM/ATL which is no longer even supported by Microsoft.  I've made the decision to join programming groups and work on learning things on my own time.  Soon, though, I plan on joining another company.  The lack of learning is the deciding factor.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're going to have to chose how you grow.  If you're ok with doing side projects to keep that itch scratched then stick it out.  If you're not, then don't.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-11-03T13:18:42.923" CommentCount="1" />
  <row Id="16514" PostTypeId="2" ParentId="16445" CreationDate="2010-11-03T13:20:55.213" Score="0" ViewCount="" Body="&lt;p&gt;A &quot;wrapper&quot; is whatever sales, management, or marketing wants to call it.  Have you seen the new commercials touting Windows as &quot;the cloud?&quot;  That's right, you get your own &quot;little cloud&quot; right there on the desktop...&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-11-03T13:20:55.213" />
  <row Id="16515" PostTypeId="2" ParentId="16468" CreationDate="2010-11-03T13:21:30.233" Score="0" ViewCount="" Body="&lt;p&gt;Unless you're working on a project which is a direct competitor to your company's product, this doesn't sound like a conflict of interest, it just sounds like moonlighting. Have a chat with your boss, tell him/her &quot;I'd like to work on some personal projects, completely off work time, in order to expand my horizons. Is there a problem with that?&quot; and in nearly every circumstance, the answer is going to be &quot;No&quot;, especially if the company is interested in your growth as an employee.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you do want to produce something which is a competitor to a product of your company's, you definitely want to tread lightly. That &lt;em&gt;is&lt;/em&gt; a conflict of interest, and it's something you need to be careful with.&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-11-03T13:21:30.233" />
  <row Id="16516" PostTypeId="2" ParentId="16289" CreationDate="2010-11-03T13:26:08.193" Score="0" ViewCount="" Body="&lt;p&gt;how about trying out some open source projects on the side? I know this will take time away from your personal time (with family) ... but if you have some time on the side you should try contributing to open source projects (to add to your skills and possible market-bility)&lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-11-03T13:26:08.193" CommentCount="2" />
  <row Id="16517" PostTypeId="2" ParentId="10675" CreationDate="2010-11-03T13:37:47.403" Score="0" ViewCount="" Body="&lt;h2&gt;I'd go with Python first, then D.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Both are multiparadigm languages, so you'll be able to get a feel for procedural, object-oriented, functional and generic/meta/reflection-using programming. More importantly, you'll see how the paradigms fit together and how their strengths complement each other. IMHO this is preferable to learning a paradigm in isolation, and then being dropped into a completely different paradigm, being forced to re-learn how to do simple things from scratch and still never seeing how they fit together. Both languages also place a premium on making simple things simple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recommend Python first. It's a simpler and more mature language than D, is interpreted, and has less ways to shoot yourself in the foot. It's dynamically typed, so you won't need to worry about the complexities that satisfying a static type checker bring. It also has a huge standard library so you can actually make stuff work relatively early on. At the same time, it makes enough complicated things possible that you won't outgrow it fast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Within Python, I'd say you should learn procedural programming first, because it's the most straightforward way to accomplish simple tasks. Functional and OO are overkill until you get to larger projects. You won't see the value in them until you've already written some procedural spaghetti code. After you're comfortable with procedural programming and have written some spaghetti code, you should learn OO and functional simultaneously, and focus on understanding the value of late binding/higher order functions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you're comfortable with Python, there are bound to be cases where you need more performance, static type checking or the ability to do close to the metal work. D is the only language I'm aware of that enables this, but is truly multiparadigm and allows you to write higher-level code effectively within the same language as close-to-the-metal code. D has a mostly complete C-like subset (the only major exception being lack of a preprocessor) and its garbage collector is written entirely in D. You can get down and dirty with pointers and inline assembly language and manage memory manually via &lt;code&gt;malloc()&lt;/code&gt; and &lt;code&gt;free()&lt;/code&gt; when you need to. At the same time, D supports truly amazing compile-time reflection and metaprogramming, &lt;a href=&quot;http://digitalmars.com/d/2.0/phobos/std_range.html&quot; rel=&quot;nofollow&quot;&gt;enabling you to do a lot of things you'd do using runtime reflection and duck typing in Python.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1468" LastEditorUserId="1468" LastEditorDisplayName="" LastEditDate="2010-11-03T15:32:12.487" LastActivityDate="2010-11-03T15:32:12.487" CommunityOwnedDate="2011-01-31T13:41:33.057" CommentCount="2" />
  <row Id="16518" PostTypeId="1" AcceptedAnswerId="17714" CreationDate="2010-11-03T13:41:12.143" Score="10" ViewCount="528" Body="&lt;p&gt;Hai Friends,&#xA;           I love Cryptography very much, My Area of Intrest is Cryptography too, so I am collecting the interview questions and answers in the area of cryptography(in order to get an idea what will be asked if i attend the interview for the post of cryptanalyst), so please guide me what are all very important questions(that's the expected questions in  for the post of cryptanalyst). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&#xA;Tilsan &lt;/p&gt;&#xA;" OwnerUserId="3993" LastEditorUserId="3993" LastEditorDisplayName="" LastEditDate="2010-11-10T17:24:19.003" LastActivityDate="2010-11-14T13:11:13.623" Title="Need Help in Collecting Interview Questions as well as notable questions on Cryptography ?" Tags="&lt;career&gt;&lt;cryptography&gt;" AnswerCount="7" CommentCount="6" FavoriteCount="2" />
  <row Id="16519" PostTypeId="2" ParentId="16463" CreationDate="2010-11-03T13:46:31.637" Score="1" ViewCount="" Body="&lt;p&gt;What you're describing is a state machine, and yes, many people do use &lt;code&gt;switch&lt;/code&gt; statements to implement those.  They're usually cleaner, but it can be more difficult to follow the logic flow.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-03T13:46:31.637" CommentCount="2" />
  <row Id="16520" PostTypeId="2" ParentId="16500" CreationDate="2010-11-03T13:48:07.237" Score="2" ViewCount="" Body="&lt;p&gt;Here's a survival kit for the first months. Start with installing &lt;a href=&quot;http://www.macports.org/&quot; rel=&quot;nofollow&quot;&gt;MacPorts&lt;/a&gt; and the latest version of &lt;a href=&quot;http://xquartz.macosforge.org/trac/wiki&quot; rel=&quot;nofollow&quot;&gt;XQuartz&lt;/a&gt;. Download and install the software that you are used to: Firefox / Thunderbird, &lt;a href=&quot;http://porting.openoffice.org/mac/download/aqua.html&quot; rel=&quot;nofollow&quot;&gt;OpenOffice&lt;/a&gt;, &lt;a href=&quot;http://gimp.lisanet.de/Website/News/News.html&quot; rel=&quot;nofollow&quot;&gt;Gimp&lt;/a&gt;, &lt;a href=&quot;http://wiki.inkscape.org/wiki/index.php/MacOSX&quot; rel=&quot;nofollow&quot;&gt;Inkscape&lt;/a&gt;, Emacs if that's your bag (I personally recommend &lt;a href=&quot;http://homepage.mac.com/zenitani/emacs-e.html&quot; rel=&quot;nofollow&quot;&gt;Carbon Emacs&lt;/a&gt;) etc. This will allow you to get up to speed as fast as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Later, you can try out the &quot;native&quot; software, please take advice from the other posters. I converted not so long ago, and the only thing I can recommend for now is &lt;a href=&quot;http://en.wikipedia.org/wiki/TextMate&quot; rel=&quot;nofollow&quot;&gt;TextMate&lt;/a&gt;, although I still cling to Emacs for day to day use.&lt;/p&gt;&#xA;" OwnerUserId="604" LastActivityDate="2010-11-03T13:48:07.237" />
  <row Id="16521" PostTypeId="2" ParentId="16459" CreationDate="2010-11-03T13:49:19.463" Score="4" ViewCount="" Body="&lt;p&gt;I still use lex/yacc with C, but that's because it's what I leaned on.  If I was starting now, I'd probably use ANTLR with Java.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-03T13:49:19.463" CommentCount="1" />
  <row Id="16522" PostTypeId="2" ParentId="16518" CreationDate="2010-11-03T13:55:57.507" Score="2" ViewCount="" Body="&lt;p&gt;A few things that I can think of...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask them to &lt;em&gt;explain the differences&lt;/em&gt; between ECB and CBC mode, as well as name at least one benefit and one drawback of each. (ECB is good if you need to be sure that bit errors don't propagate outside of the data block in which they occur, for example.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask them to give examples of when a 256-bit key is more secure than a 512-bit key, given perfect implementations in both cases (hint: symmetric versus asymmetric algorithms, such as AES vs RSA).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask them what is the most important piece of a thoroughly tested cryptography implementation to get right (the design and implementation of the PRNG is pretty central; just look at the recent SSH key debacle).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Really, this depends a lot on what kind of cryptography-related position you are interviewing for, but if it's for someone to implement cryptography code, the above should be a good start.&lt;/p&gt;&#xA;" OwnerUserId="6384" LastActivityDate="2010-11-03T13:55:57.507" CommentCount="2" />
  <row Id="16523" PostTypeId="2" ParentId="16518" CreationDate="2010-11-03T14:05:27.487" Score="4" ViewCount="" Body="&lt;p&gt;The very first question should actually be &quot;Do you think MD5 is an appropriate and secure encryption algorithm?&quot;. If they answer yes then you should kindly thank them for applying and tell em that it was not the right answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Apparently it is not very clear what I meant to achieve with this question. What one achieves with this question is to find out if the candidate knows at least anything about cryptography.&lt;/p&gt;&#xA;" OwnerUserId="1258" LastEditorUserId="1258" LastEditorDisplayName="" LastEditDate="2010-11-03T14:24:25.603" LastActivityDate="2010-11-03T14:24:25.603" CommentCount="17" />
  <row Id="16524" PostTypeId="2" ParentId="16471" CreationDate="2010-11-03T14:06:51.990" Score="4" ViewCount="" Body="&lt;p&gt;Since it's web development, are the designers also creating the html and css? If not, you could ask them to do it.&lt;/p&gt;&#xA;" OwnerUserId="3528" LastActivityDate="2010-11-03T14:06:51.990" CommentCount="1" />
  <row Id="16525" PostTypeId="2" ParentId="16459" CreationDate="2010-11-03T14:26:04.083" Score="4" ViewCount="" Body="&lt;p&gt;Scala using Parser Combinators: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://sites.google.com/site/compulsiontocode/files/lambdalounge/ImplementingExternalDSLsUsingScalaParserCombinators.ppt&quot; rel=&quot;nofollow&quot;&gt;http://sites.google.com/site/compulsiontocode/files/lambdalounge/ImplementingExternalDSLsUsingScalaParserCombinators.ppt&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/daltontf/scala-logo&quot; rel=&quot;nofollow&quot;&gt;https://github.com/daltontf/scala-logo&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3463" LastActivityDate="2010-11-03T14:26:04.083" />
  <row Id="16526" PostTypeId="2" ParentId="5972" CreationDate="2010-11-03T14:26:35.377" Score="0" ViewCount="" Body="&lt;p&gt;Not exactly freeware, but I'd use whats necessary.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;C/C++ Win&lt;/strong&gt; &amp;mdash; Visual Studio 2010&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;C/C++/Fortran Linux&lt;/strong&gt; &amp;mdash;Netbeans&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;HTML/CSS&lt;/strong&gt; &amp;mdash; Dreamweaver&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Perl&lt;/strong&gt; &amp;mdash; Activestate Komodo&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;PHP&lt;/strong&gt; &amp;mdash; Activestate Komodo&lt;/li&gt; &#xA;&lt;li&gt;&lt;strong&gt;Python&lt;/strong&gt; &amp;mdash; Activestate Komodo&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;TCL&lt;/strong&gt; &amp;mdash; Activestate Komodo&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6755" LastActivityDate="2010-11-03T14:26:35.377" CommunityOwnedDate="2011-04-30T19:57:04.087" />
  <row Id="16527" PostTypeId="1" CreationDate="2010-11-03T14:30:16.230" Score="0" ViewCount="203" Body="&lt;p&gt;I have just started learning struts 2. I have purchased the book named Struts 2 in action. But I want to use an IDE for developing Struts 2 applications. I basically use netbeans. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please tell me how can i develop applications using netbeans. Also, it would be great if somebody can point out a few tutorials on the same. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;regards&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. I haven't used eclipse. Is it advisable to switch to it for struts 2, (if it is better than netbeans in this case)?&lt;/p&gt;&#xA;" OwnerUserId="4197" LastActivityDate="2010-12-22T12:51:17.310" Title="Netbeans support for struts 2?" Tags="&lt;eclipse&gt;&lt;netbeans&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="16528" PostTypeId="1" AcceptedAnswerId="16530" CreationDate="2010-11-03T14:43:35.627" Score="11" ViewCount="945" Body="&lt;p&gt;Which is better/more generally accepted?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(condition)&#xA;{&#xA;  statement;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Or:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(condition)&#xA;  statement;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I tend to prefer the first one, because I think it makes it easier to tell what actually belongs in the if block, it saves others from adding the braces later (or creating a bug by forgetting to), and it makes all your if statements uniform instead of some with braces and some without.  The second one, however, is still syntactically correct and definitely more compact.  I'm curious to see which is more generally preferred by others though.&lt;/p&gt;&#xA;" OwnerUserId="5279" LastEditorUserId="5279" LastEditorDisplayName="" LastEditDate="2010-11-03T14:50:43.560" LastActivityDate="2010-11-05T19:06:10.580" Title="Single statement if block - braces or no?" Tags="&lt;best-practices&gt;&lt;holy-war&gt;" AnswerCount="16" CommentCount="1" />
  <row Id="16529" PostTypeId="2" ParentId="16528" CreationDate="2010-11-03T14:48:59.117" Score="0" ViewCount="" Body="&lt;p&gt;Personally I go with brackets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well if anyone comes along and needs to add code into the if statement it's 100% clear where the scope is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It keeps the format of &lt;code&gt;if&lt;/code&gt; statements consistent no matter how many statements there are in the block.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if the project style is to go without, stick to that.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-11-03T14:48:59.117" />
  <row Id="16530" PostTypeId="2" ParentId="16528" CreationDate="2010-11-03T14:49:16.613" Score="50" ViewCount="" Body="&lt;p&gt;The first is better because the second is error-prone.  For example, let's say you are temporarily commenting out code to debug something:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(condition) &#xA;//      statement;&#xA;otherStatement;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Or adding code in a hurry:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(condition) &#xA;    statement;&#xA;    otherStatement;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This is obviously bad.  On the other hand, the first one does feel too verbose at times.  Therefore, I prefer to just put everything on one line if it's sufficiently short and simple:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(condition) statement;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This cuts down on syntactic noise while making the construct look like it does what it actually does, making it less error-prone.  Provided that this syntax is only used for very simple, short conditions and statements, I find it perfectly readable.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-03T14:49:16.613" CommentCount="17" />
  <row Id="16531" PostTypeId="2" ParentId="16528" CreationDate="2010-11-03T14:49:33.477" Score="16" ViewCount="" Body="&lt;p&gt;I always use brackets just to be safe. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's fine when you write it, but you know somebody will come along in the future and insert another statement without putting brackets around it.&lt;/p&gt;&#xA;" OwnerUserId="2990" LastActivityDate="2010-11-03T14:49:33.477" CommentCount="6" />
  <row Id="16532" PostTypeId="2" ParentId="16528" CreationDate="2010-11-03T14:52:13.270" Score="4" ViewCount="" Body="&lt;p&gt;We have had this argument more than once here, and the overall consensus is to always use braces.  The main reasons are about readability/maintainability.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need to add code to the if block, you don't need to remember/search for braces.  When future programmers read the code, the braces are always unambiguous.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the plus side, resharper will automatically add the braces for lazy programmers in visual studio, and I assume there are addons for other IDEs that will do so as well.&lt;/p&gt;&#xA;" OwnerUserId="832" LastActivityDate="2010-11-03T14:52:13.270" CommentCount="7" />
  <row Id="16533" PostTypeId="2" ParentId="16323" CreationDate="2010-11-03T14:53:20.970" Score="3" ViewCount="" Body="&lt;h1&gt;C++&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;&#xA;Basically all contemporary numerical simulation packages are written in either real C++ or use some C++ features on top of a large C body.&#xA;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Traditionally, many packages were written in Fortran, especially in Physics, here &amp;mdash; &lt;br/&gt;&#xA;in the list &lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_quantum_chemistry_and_solid_state_physics_software&quot; rel=&quot;nofollow&quot;&gt;QC and Solid State Sim Packages&lt;/a&gt; you may see a &quot;language column&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is something similar for Physical Chemistry/ Molecular Modelling &amp;mdash;&lt;br/&gt;&#xA;&lt;a href=&quot;http://mrflip.com/resources/MDPackages.html&quot; rel=&quot;nofollow&quot;&gt;Molecular Dynamics Packages&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regards&lt;/p&gt;&#xA;&#xA;&lt;p&gt;rbo&lt;/p&gt;&#xA;" OwnerUserId="6755" LastActivityDate="2010-11-03T14:53:20.970" CommentCount="2" />
  <row Id="16534" PostTypeId="2" ParentId="16528" CreationDate="2010-11-03T14:54:16.590" Score="7" ViewCount="" Body="&lt;p&gt;I go with the second. It's more succinct and less verbose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I try not to write to the lowest common denominator, so I expect that other developers know how to write one of the single most common control flow structures in programming today.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-03T14:54:16.590" CommentCount="6" />
  <row Id="16535" PostTypeId="2" ParentId="16459" CreationDate="2010-11-03T14:55:25.707" Score="5" ViewCount="" Body="&lt;p&gt;F# can also work quite well - &lt;a href=&quot;http://www.quanttec.com/fparsec/&quot; rel=&quot;nofollow&quot;&gt;http://www.quanttec.com/fparsec/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The advantage here is that you can mix the functional style with more traditional logic and the .NET framework.  Scary-powerful, but very cool with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also written parsers before in C#, just using the step / look ahead model.  It worked though the language definition and parsing logic were kind of twisted into each other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem I always found with YACC / CoCo / ANTLR and other similar tools is the difficulty in tracking down errors, and the fact that there's always this step of tweaking the generated code to work with your hand-written code.  I never found this process desirable and when writing the parsers I mentioned above I just went into raw C#.  F# works nicely because it can be built as an assembly and called directly from your C# code.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-11-03T14:55:25.707" CommentCount="3" />
  <row Id="16536" PostTypeId="2" ParentId="16436" CreationDate="2010-11-03T14:59:01.510" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;do you have trainings ?&lt;/li&gt;&#xA;&lt;li&gt;do you have team buildings ?&lt;/li&gt;&#xA;&lt;li&gt;how is the workload ?&lt;/li&gt;&#xA;&lt;li&gt;do you send the developers abroad, to the client ?&lt;/li&gt;&#xA;&lt;li&gt;do you encourage certifications ? &lt;/li&gt;&#xA;&lt;li&gt;do you send developers to conferences ?&lt;/li&gt;&#xA;&lt;li&gt;do you have a budget for books ?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-11-03T14:59:01.510" CommunityOwnedDate="2011-01-28T12:13:01.007" />
  <row Id="16537" PostTypeId="2" ParentId="16365" CreationDate="2010-11-03T15:00:06.320" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Commit early, commit often.&lt;/strong&gt;&lt;br&gt;&#xA;When someone is planning to leave is &lt;em&gt;not&lt;/em&gt; the time to make sure their work has been checked into source control, their contacts put in your CRM system, their documentation written... these things should be followed up on every day for every employee, regardless of how long you expect to have them.  Some people get hit by buses, you know (literally or figuratively), and even if there is time to prepare for someone's exit from your organization, during that time period their focus is not likely to be 100% on you, no matter how much they intend it to be.  A constant cycle of documentation is the answer to all of these woes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;When exit time nears...&lt;/strong&gt;&lt;br&gt;&#xA;I'm absolutely sold on the suggestions to make sure to have contact information for your former employee, and arrange a consulting fee for those &quot;oh, shoot, we need to find out how $thing works&quot; moments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition to that, I'd ask for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;A to-do list for the next couple of days, so you can farm out whatever he would be doing until your workflow has adjusted to him not being there.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A list of what he thinks you should look for in his replacement.  Asking &quot;what went wrong?&quot; is less probative in my opinion: If he's unhappy with the company, you are more likely to get an emotional answer than a logical one.  If he's happy with the company, you are likely to get a non-answer because he won't want to burn bridges.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Asking about his potential future replacement, on the other hand, is more likely to reveal useful information, because he's not being asked to focus on you or him or your relationship.  The future replacement doesn't exist yet, so no one thinks about offending him/her.  It's easier to say, &quot;look for someone who is at least moderately interested in managing others, rather than a straight coder&quot; than &quot;you gave me too much management responsibiliy; I'm a coder, not a manager&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When you find out that someone is, indeed, leaving, ask &quot;what can we do to make the transition easier, for us &lt;em&gt;and&lt;/em&gt; for you?&quot;.  This goes a long way to show the departing employee that you care about him not just in terms of what you can get out of him, and more importantly shows your &lt;em&gt;other&lt;/em&gt; employees that you feel that way about them.  There are often little things you can do (&quot;let me work this Saturday so I can take off Monday for the closing on our new house&quot;) that cost you little to nothing, but give the departing employee real incentive to put effort and attention into making the transition work for you.  That motivation can make a huge difference in how he approaches handing things off and documenting what needs documenting, because it eliminates (or at least reduces) the feeling of &quot;this relationship is already over, we're just going through the motions for two weeks&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Hope that helps,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;--Susan&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-03T15:00:06.320" />
  <row Id="16538" PostTypeId="2" ParentId="16528" CreationDate="2010-11-03T15:02:10.123" Score="0" ViewCount="" Body="&lt;p&gt;I usually use braces, but there are some cases where I don't.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;object GetObject() {&#xA;    // calculate obj1&#xA;    if(obj1 != null)&#xA;        return obj1;&#xA;&#xA;    // calculate obj2&#xA;    if(obj2 != null)&#xA;        return obj2;&#xA;&#xA;    // calculate obj3&#xA;    if(obj3 != null)&#xA;        return obj3;&#xA;&#xA;    return defaultObj;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;To me, it would just be silly to add them there. If someone adds a statement after the &lt;code&gt;return&lt;/code&gt;, we have bigger problems than scoping issues.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastEditorUserId="2276" LastEditorDisplayName="" LastEditDate="2010-11-03T15:36:33.090" LastActivityDate="2010-11-03T15:36:33.090" CommentCount="4" />
  <row Id="16539" PostTypeId="2" ParentId="16528" CreationDate="2010-11-03T15:02:23.550" Score="1" ViewCount="" Body="&lt;p&gt;I almost always use the brackets just to be on the safe side. However, sometimes if the contents of the block are really short I'll do leave them off and make it a one-liner like so:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (x==5) Console.WriteLine(&quot;It's a five!&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-03T15:02:23.550" CommentCount="5" />
  <row Id="16540" PostTypeId="2" ParentId="16528" CreationDate="2010-11-03T15:02:28.237" Score="0" ViewCount="" Body="&lt;p&gt;I would go with always using them, just to be on the safe side (as stated in other posts). However, I do use the&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (cond)&#xA;   statement;&#xA;else&#xA;   statement;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;for if...else constructs. I think that it's very readable, and if you indent it's obvious what's happening.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't like to put the entire condition on one line. Personally I tend to think that the whole thing is a condition, and consequently have trouble reading the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO readability improve by a factor of 3 or more simply by using proper indentation and blank lines - kind of like paragraphs in books.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-03T15:02:28.237" CommentCount="1" />
  <row Id="16541" PostTypeId="2" ParentId="5972" CreationDate="2010-11-03T15:08:32.390" Score="3" ViewCount="" Body="&lt;p&gt;For both &lt;strong&gt;Perl&lt;/strong&gt; and &lt;strong&gt;Python&lt;/strong&gt;: &lt;em&gt;Emacs&lt;/em&gt; and &lt;em&gt;Vim&lt;/em&gt;. Beats Eclipse in terms of popularity.&lt;/p&gt;&#xA;" OwnerUserId="215" LastActivityDate="2010-11-03T15:08:32.390" CommunityOwnedDate="2011-04-30T19:57:04.087" />
  <row Id="16542" PostTypeId="2" ParentId="16528" CreationDate="2010-11-03T15:13:22.013" Score="8" ViewCount="" Body="&lt;p&gt;I'd use the following (consensus here):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(condition) {&#xA;   any_number_of_statements;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Also possible:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(condition) single_compact_statement;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Not so good, especially in C/C++-like languages&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(condition) &#xA;   single_compact_statement;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(no choice here in Python ;-)&lt;/p&gt;&#xA;&#xA;&lt;hr/&gt;&#xA;&#xA;&lt;p&gt;In Perl, you'd use:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$C = $A**3 if $A != $B ;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$C = $A**3 unless $A == $B ;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(this is &lt;strong&gt;not&lt;/strong&gt; pseudocode ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regards&lt;/p&gt;&#xA;&#xA;&lt;p&gt;rbo&lt;/p&gt;&#xA;" OwnerUserId="6755" LastEditorUserId="6755" LastEditorDisplayName="" LastEditDate="2010-11-03T15:18:26.533" LastActivityDate="2010-11-03T15:18:26.533" CommentCount="3" />
  <row Id="16543" PostTypeId="2" ParentId="16459" CreationDate="2010-11-03T15:23:54.297" Score="2" ViewCount="" Body="&lt;p&gt;Lua + LPEG.  it's like cheating&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-11-03T15:23:54.297" />
  <row Id="16544" PostTypeId="1" CreationDate="2010-11-03T15:26:04.930" Score="2" ViewCount="309" Body="&lt;p&gt;What build or deployment tools are available for a 1 person development effort, in the .NET space, that are capable of producing project outputs?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not looking &lt;em&gt;necessarily&lt;/em&gt; looking for a CI server (though I can't think of anything else that does what I'm looking for) but I am looking for it to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;produce and publish documentation from xml comments&lt;/li&gt;&#xA;&lt;li&gt;produce and publish the project (web and/or clickonce app)&lt;/li&gt;&#xA;&lt;li&gt;handle basic versioning (automatic build number incrementing)&lt;/li&gt;&#xA;&lt;li&gt;work from a sln file&lt;/li&gt;&#xA;&lt;li&gt;be easy to setup (&amp;lt; 8-16 hrs for someone who knows little to nothing about the tool(s))&lt;/li&gt;&#xA;&lt;li&gt;do this at the push of a button (after configuration obviously)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Things I don't need:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;source control integration : I can point it to a sln if need be. Not a huge deal.&lt;/li&gt;&#xA;&lt;li&gt;unit testing : I run test suite before commits&lt;/li&gt;&#xA;&lt;li&gt;static analysis : again, I also run these before commits&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I know that msbuild is capable of most or all of this, and I do have my msbuild book(s) with me, but I'm still very new to it and I don't have the time at the moment to learn it well enough to do what I want.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-03T17:11:53.483" Title="Build/deployment tools for a small (1) development effort" Tags="&lt;tools&gt;&lt;.net&gt;&lt;builds&gt;&lt;deployment&gt;" AnswerCount="6" />
  <row Id="16545" PostTypeId="2" ParentId="9055" CreationDate="2010-11-03T15:28:36.610" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Jamie_Zawinski&quot; rel=&quot;nofollow&quot;&gt;Jamie Zawinski&lt;/a&gt;, one of the big names behind Netscape (and later Mozilla).&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-03T15:28:36.610" CommunityOwnedDate="2010-11-03T15:28:36.610" />
  <row Id="16546" PostTypeId="2" ParentId="16544" CreationDate="2010-11-03T15:38:47.450" Score="5" ViewCount="" Body="&lt;p&gt;I don't have a comprehensive answer to all of your points, but I can point you to a software that I found extremely useful. It's called CruiseControl.Net&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Google it and check it out :D&lt;/p&gt;&#xA;" OwnerUserId="3426" LastActivityDate="2010-11-03T15:38:47.450" CommentCount="4" />
  <row Id="16547" PostTypeId="2" ParentId="16544" CreationDate="2010-11-03T15:43:38.077" Score="1" ViewCount="" Body="&lt;p&gt;Check out Sandcastle and Sandcastle Help File Builder for compiling your XML docs. It works pretty well, but the documentation isn't so hot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://sandcastle.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;http://sandcastle.codeplex.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://shfb.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;http://shfb.codeplex.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-03T15:43:38.077" CommentCount="2" />
  <row Id="16548" PostTypeId="2" ParentId="16544" CreationDate="2010-11-03T15:47:01.697" Score="2" ViewCount="" Body="&lt;p&gt;A 1-dev project could do all this within Visual Studio, since it has builtin tools to do all of this.  If you want script it though, then the tools you want to look at are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;produce and publish documentation from xml comments produce and publish&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Sandcastle: &lt;a href=&quot;http://broadcast.oreilly.com/2010/09/build-html-documentation-for-y.html&quot; rel=&quot;nofollow&quot;&gt;http://broadcast.oreilly.com/2010/09/build-html-documentation-for-y.html&lt;/a&gt;, &lt;a href=&quot;http://sandcastle.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;http://sandcastle.codeplex.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the project (web and/or clickonce app) &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://codingcockerel.co.uk/2008/05/18/how-to-publish-a-web-site-with-msbuild/&quot; rel=&quot;nofollow&quot;&gt;http://codingcockerel.co.uk/2008/05/18/how-to-publish-a-web-site-with-msbuild/&lt;/a&gt;, or calling the Publish target on the solution&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;handle basic versioning (automatic build number incrementing)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;AssemblyInfo task from &lt;a href=&quot;http://msbuildtasks.tigris.org&quot; rel=&quot;nofollow&quot;&gt;http://msbuildtasks.tigris.org&lt;/a&gt;.  This won't automatically increment the version because that would mean tracking the version number each time.  You can have something like CruiseControl.NET pass one in, or you can generate one based on the date and time using the Time task (as an example).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;work from a sln file &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;MSBuild will use a .sln as a project file.  If you want to wrap your .sln with another MSBuild script, you can use the MSBuild task&lt;/p&gt;&#xA;" OwnerUserId="5375" LastEditorUserId="5375" LastEditorDisplayName="" LastEditDate="2010-11-03T15:54:23.023" LastActivityDate="2010-11-03T15:54:23.023" CommentCount="2" />
  <row Id="16549" PostTypeId="1" AcceptedAnswerId="16552" CreationDate="2010-11-03T16:01:18.550" Score="5" ViewCount="319" Body="&lt;p&gt;Two days ago I got a suggestion to pass test of HTML 5 (I am looking for a job). I was shocked because modern web browsers don't support some features or support its partially. Other side of situation: I worked for a some company that still using SQL Server 2000 (now is available 2005, 2008) on her production. So my question is: how do you feel about those companies that try to use newest technologies? The newest is evil of good?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;SUMMARY&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We continue using old technology because of it predictability (this applies to critical systems in particular). A lack of productivity, low expansiveness, difficulties of deployment, implementation, testing of old technology are picking us to choice a new one. Even if we know that a new technology can be unsupported and now it is untested, raw and has low documentation, simple human curiosity is pushing us to use it. Any way we should be oriented on our target audience, people which are using our IT solutions. Other important things should be taken into account:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;time to implement &lt;/li&gt;&#xA;&lt;li&gt;time and cost to learn&lt;/li&gt;&#xA;&lt;li&gt;ease of deployment, implementation, testing&lt;/li&gt;&#xA;&lt;li&gt;faster and easier to use&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1483" LastEditorUserId="1483" LastEditorDisplayName="" LastEditDate="2010-11-04T09:36:43.563" LastActivityDate="2010-11-06T21:07:39.660" Title="How do you feel about those companies that try to use the newest technologies?" Tags="&lt;new-technology&gt;" AnswerCount="9" CommentCount="4" />
  <row Id="16550" PostTypeId="2" ParentId="16528" CreationDate="2010-11-03T16:06:33.927" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I prefer the version without braces&lt;/strong&gt; where possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The following explanation is longish. Please bear with me. I will give a compelling reason for me to prefer this style. I will also explain why I think that the usual counter-argument doesn’t hold.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;(Near-) empty lines are a waste&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The reason for this is that the closing brace requires an extra line of code – and so does the opening brace, depending on style.&lt;sup&gt;1&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this a big deal? Superficially, no. After all, most people also put empty lines in their code to separate logically slightly independent blocks, which vastly improves readability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I detest wasting vertical space. Modern monitors actually have ample horizontal space. But &lt;em&gt;vertical&lt;/em&gt; space is still very, very limited (unless you use a monitor turned upright, which isn’t that uncommon). This limited vertical space &lt;em&gt;is&lt;/em&gt; a problem: it’s widely acknowledged that individual methods should be as short as possible, and that corresponding braces (or other block delimiters) should be no more than a screen height in difference so that you may see the entire block without scrolling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a &lt;em&gt;fundamental&lt;/em&gt; problem: once you can’t see the entire block on your screen any longer, it gets complicated to grasp.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a consequence, I detest redundant empty lines. Where single empty lines are crucial to delimit independent blocks (just look at the visual appearance of this text), &lt;em&gt;consecutive&lt;/em&gt; empty lines are a &lt;em&gt;very&lt;/em&gt; bad style in my book (and in my experience they are usually a sign of novice programmers).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Likewise, lines which simply hold a brace, and which could be economised, should be. A single-statement block which is delimited by braces wastes one to two lines. With only 50-ish lines per screen height, this is noticeable.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Omitting braces maybe does no harm&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;There is just &lt;em&gt;one&lt;/em&gt; argument against omitting braces: that someone will later add another statement to the block in question and will forget to add the braces, thus inadvertently changing the semantics of the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This would indeed be a big deal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in my experience, it isn’t. I’m a sloppy programmer; and yet, in my decade of programming experience, I can honestly say that I have &lt;em&gt;not once&lt;/em&gt; forgotten to add the braces when adding an extra statement to a singleton block.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I even find it implausible that this should be a common mistake: blocks are a fundamental part of programming. Block level resolution and scoping is an automatic, ingrained mental process for programmers. The brain just does it (otherwise, reasoning about programming would be much harder). There is no additional mental effort required to remember putting the braces: the programmer also remembers to &lt;em&gt;indent&lt;/em&gt; the newly added statement correctly, after all; so the programmer has already mentally processed that a block is involved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, &lt;strong&gt;I am &lt;em&gt;not&lt;/em&gt; saying that omitting braces doesn’t cause mistakes.&lt;/strong&gt; What I’m saying is that &lt;strong&gt;we have no evidence one way or the other.&lt;/strong&gt; We simply &lt;em&gt;don’t know&lt;/em&gt; whether it causes harm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So until someone can show me hard data, collected from scientific experiments, demonstrating that this is indeed an issue in practice, this theory remains a “&lt;a href=&quot;http://en.wikipedia.org/wiki/Just-so_story&quot; rel=&quot;nofollow&quot;&gt;just-so story&lt;/a&gt;”: a very compelling hypothesis that has never been put to the test, and that must &lt;em&gt;not&lt;/em&gt; be used as an argument.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt; This problem is sometimes solved by putting everything – including the braces – on the same line:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (condition)&#xA;{ do_something(); }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;However, I believe it’s safe to say that most people despise this. Furthermore, it would have the same problems as the variant without braces so it’s the worst of both worlds.&lt;/p&gt;&#xA;" OwnerUserId="2366" LastEditorUserId="2366" LastEditorDisplayName="" LastEditDate="2010-11-05T12:13:38.160" LastActivityDate="2010-11-05T12:13:38.160" CommentCount="10" />
  <row Id="16551" PostTypeId="2" ParentId="9406" CreationDate="2010-11-03T16:07:36.380" Score="13" ViewCount="" Body="&lt;p&gt;To be honest (*), I really think Perl as a language is (a) much more more powerful compared to Python and (b) is more in demand now and possibly also in 10 years (who knows).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;raquo; &lt;a href=&quot;http://www.indeed.com/jobtrends?q=sql+or+oracle+or+mysql%2Cc+or+c%2B%2B%2Cjava+or+j2ee%2Chtml+or+css%2Cjavascript+or+jquery+or+ajax%2Cc%23+or+linq+or+wpf%2Cperl+or+mason+or+catalyst%2Cphp+or+drupal%2Cpython+or+zope%2Cruby+or+rails&quot; rel=&quot;nofollow&quot;&gt;Indeed Trends&lt;/a&gt; (see image, 2010-11-03)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Jd42z.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;drawback&quot; of Perl is the much higher commitment you have to show (time for learning and practise). Who really has the time left to learn Perl thoroughly ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;rather inconclusive: &lt;a href=&quot;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&quot; rel=&quot;nofollow&quot;&gt;Tiobe Index&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regards&lt;/p&gt;&#xA;&#xA;&lt;p&gt;rbo&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(*) - I actually worked with both and found Python to be very easy to learn, but it gets in the way much too often ...&lt;/p&gt;&#xA;" OwnerUserId="6755" LastEditorUserId="6755" LastEditorDisplayName="" LastEditDate="2010-11-04T12:24:51.587" LastActivityDate="2010-11-04T12:24:51.587" />
  <row Id="16552" PostTypeId="2" ParentId="16549" CreationDate="2010-11-03T16:13:18.770" Score="7" ViewCount="" Body="&lt;p&gt;About a month ago the W3C released a statement saying the community at large should &lt;a href=&quot;http://joshuakehn.com/blog/view/20/W3C-Holding-off-on-HTML5&quot; rel=&quot;nofollow&quot;&gt;hold off on HTML5&lt;/a&gt;. The reasons they gave boil down to the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Browser compatibility.&lt;/li&gt;&#xA;&lt;li&gt;Non-standard formats (video especially).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Identifying your target audience and coding &lt;em&gt;to them&lt;/em&gt; is more important then if you're using the &lt;em&gt;&quot;latest and greatest&quot;&lt;/em&gt; piece of technology. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're working on some bleeding edge reporting engine for real time statistics, you can probably afford to use WebSockets (or &lt;a href=&quot;http://joshuakehn.com/blog/view/2/WebSocket-Tutorial-with-Node-js&quot; rel=&quot;nofollow&quot;&gt;FlashSockets&lt;/a&gt;) and remove IE 6/7, FF &amp;lt;3, Safari &amp;lt; 5, and Opera from your &quot;supported browser&quot; list. Banks and other large commercial entities used to require IE for site use. I remember firing up IE 5.5 (Mac) for certain websites. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your target market is broad you may have to dig up support for FF 2 and IE 6. &lt;em&gt;It all depends on what you're doing&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-11-03T17:02:09.220" LastActivityDate="2010-11-03T17:02:09.220" CommentCount="11" />
  <row Id="16553" PostTypeId="2" ParentId="16471" CreationDate="2010-11-03T16:14:20.197" Score="2" ViewCount="" Body="&lt;p&gt;Read the other answers, there is a lot of good advice there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next, decide what you are going to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then invite your boss to lunch and talk about it over lunch. You'd be surprised how much easier it is to discuss anything over a meal.&lt;/p&gt;&#xA;" OwnerUserId="3569" LastActivityDate="2010-11-03T16:14:20.197" />
  <row Id="16554" PostTypeId="2" ParentId="279" CreationDate="2010-11-03T16:18:36.977" Score="10" ViewCount="" Body="&lt;p&gt;Integration of code contracts into the C# language.  In particular, either Spec#-style non-nullable reference types or use of the non-nullable &quot;!&quot; operator as a hint to create the associated contracts.&lt;/p&gt;&#xA;" OwnerUserId="6724" LastActivityDate="2010-11-03T16:18:36.977" CommunityOwnedDate="2011-05-10T09:21:11.253" CommentCount="1" />
  <row Id="16555" PostTypeId="2" ParentId="16544" CreationDate="2010-11-03T16:23:52.767" Score="1" ViewCount="" Body="&lt;p&gt;While waiting for answers, I got looking around and stumbled upon &lt;a href=&quot;http://www.msbuildexplorer.com/&quot; rel=&quot;nofollow&quot;&gt;MSBuild Explorer&lt;/a&gt; and think that, in combination with the &lt;a href=&quot;http://msbuildextensionpack.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;MSBuild Extension Pack&lt;/a&gt;, the 'favorites' feature might be what I'm looking for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not going to mark this as the answer yet, because I have to try it out to see if it can do what I'm looking for. Feedback is appreciated if anyone else has used this before.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-03T16:23:52.767" />
  <row Id="16556" PostTypeId="2" ParentId="16544" CreationDate="2010-11-03T16:29:10.943" Score="4" ViewCount="" Body="&lt;p&gt;If you're looking for something simple, you might consider &lt;a href=&quot;http://hudson-ci.org/&quot; rel=&quot;nofollow&quot;&gt;hudson&lt;/a&gt;.  I haven't used it with .Net, but it's pretty useful if you just want to have a series of build jobs that only need to run a set of shell commands.  It can be a bit simplistic if you get to the point where you have multiple packages with complex dependencies, but it sounds like it might be useful for the size of project you're doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;:  It turns out that there's an &lt;a href=&quot;http://wiki.hudson-ci.org/display/HUDSON/MSBuild+Plugin&quot; rel=&quot;nofollow&quot;&gt;MSBuild plugin&lt;/a&gt; as well&lt;/p&gt;&#xA;" OwnerUserId="1626" LastEditorUserId="1626" LastEditorDisplayName="" LastEditDate="2010-11-03T16:47:24.387" LastActivityDate="2010-11-03T16:47:24.387" CommentCount="1" />
  <row Id="16557" PostTypeId="2" ParentId="15321" CreationDate="2010-11-03T16:29:45.580" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;The functional purpose of application&lt;/li&gt;&#xA;&lt;li&gt;The functional scope and flow of the application an his linking with other system of the customer.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;After I see the code of the most critical module/point of application: seeing the code, I can &#xA;to verify the goodness of the design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to work in the application management of a web-app about financial reporting.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I ask and read the documentation about of the purpose: what data have to be reported? Who use this application? &lt;/li&gt;&#xA;&lt;li&gt;What are the linked systems? There's any deadline for receive or sending data to anybody? If this system is down what other application are damages or stopped, what other department are damaged? &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;After I read the code about the message, the start and end application (for probable lock in db), the master process of creation of data what have to be reported etc etc (for example, in storage of gas the master process is about the computation of gas stock in storage area of the customers with supply and injection; the secondary process is the billing aabout this data previous calculated)&lt;/p&gt;&#xA;" OwnerUserId="6330" LastActivityDate="2010-11-03T16:29:45.580" CommunityOwnedDate="2011-04-08T10:09:01.537" />
  <row Id="16558" PostTypeId="2" ParentId="16549" CreationDate="2010-11-03T16:30:42.613" Score="3" ViewCount="" Body="&lt;p&gt;Always picking new technologies is an attempt to offset the old technologies used.  Sometimes it works to their advantage while other times it backfires, because it ends up not being supported and basically being a dead end technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rather than picking a technology because it's new, that should simply be one of &lt;em&gt;many&lt;/em&gt; factors in choosing it.  Among other factors include time to learn, time to implement it, and ease of deployment.  &lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-03T16:30:42.613" CommentCount="1" />
  <row Id="16559" PostTypeId="2" ParentId="16323" CreationDate="2010-11-03T16:34:30.040" Score="3" ViewCount="" Body="&lt;p&gt;There's an interesting slide in this &lt;a href=&quot;http://www.infoq.com/presentations/Scale-at-Facebook&quot; rel=&quot;nofollow&quot;&gt;Scale at Facebook&lt;/a&gt; presentation that shows relative performance of a few languages compared to C++.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;C++ (1)&lt;/li&gt;&#xA;&lt;li&gt;Java (2)&lt;/li&gt;&#xA;&lt;li&gt;C# (3)&lt;/li&gt;&#xA;&lt;li&gt;Erlang (6)&lt;/li&gt;&#xA;&lt;li&gt;Python (21)&lt;/li&gt;&#xA;&lt;li&gt;Perl (38)&lt;/li&gt;&#xA;&lt;li&gt;PHP (+-40)&lt;/li&gt;&#xA;&lt;li&gt;Ruby (+-70)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-11-03T16:34:30.040" CommentCount="3" />
  <row Id="16560" PostTypeId="2" ParentId="16549" CreationDate="2010-11-03T16:48:08.943" Score="2" ViewCount="" Body="&lt;p&gt;Learning it could still be valuable and may show employers that you are interested in your own field. It doesn't mean you'll use it in the next project you have.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-03T16:48:08.943" CommentCount="2" />
  <row Id="16561" PostTypeId="2" ParentId="16549" CreationDate="2010-11-03T16:52:19.887" Score="2" ViewCount="" Body="&lt;p&gt;This depends largely on what the technology is being used for. For example, I try to use all of the latest commercial GUI control packages I can, because they are sleek and the user immediately sees them and says &quot;Cool!&quot;. On the other hand, I am not about to write a huge business application in the Google Go language, because it is largely untested and I don't want my users to be the testers. Not to mention, I have no idea if it will really take off and be supported for the 5 years that my app needs to run. &lt;br&gt;&lt;br&gt;I would just say that having a robust knowledge base online is probably the largest factor for me. I am currently considering Windows WF 4 for a large app, and although it does everything I need it to, the online knowledge base is practically nonexistent, which could make for some scary bugs down the road which no one has found a fix for yet.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-11-03T16:52:19.887" />
  <row Id="16562" PostTypeId="2" ParentId="9406" CreationDate="2010-11-03T16:52:53.360" Score="3" ViewCount="" Body="&lt;p&gt;Here is my litmus test:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Write a piece of uncommented,&#xA;non-trivial code in each language.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Save said code for 6 monhts.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;After the six months review the code, and see if you can understand any of it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Pick the language where reading the code doesn't cause a headache.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;(My personal &quot;scripting and various stuff&quot;-language is Ruby. I dropped Perl like a hot potato after I re-read some of my own code a good while after writing it.)&lt;/p&gt;&#xA;" OwnerUserId="305" LastActivityDate="2010-11-03T16:52:53.360" CommentCount="1" />
  <row Id="16563" PostTypeId="2" ParentId="16549" CreationDate="2010-11-03T16:55:21.493" Score="2" ViewCount="" Body="&lt;p&gt;I've worked for people who want to use the newest technologies simply because they were the newest and the environment tends to be a disaster. After a few years, the infrastructure becomes a mishmash of unsupported technologies that faded from active use and development. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software needs to be supported. I once counted five Java MVC frameworks in use at one company with 15 developers. Shudder. How could that be supported?&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-11-03T16:55:21.493" CommentCount="1" />
  <row Id="16564" PostTypeId="2" ParentId="16549" CreationDate="2010-11-03T17:08:51.747" Score="3" ViewCount="" Body="&lt;p&gt;Whether to accept a new technology should be a business question, not a coolness factor question. Some questions I would ask:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Does it improve productivity(on the programming side, I'm thinking of databases and IDEs)?&lt;/li&gt;&#xA;&lt;li&gt;Will it make our product easier to use or faster?&lt;/li&gt;&#xA;&lt;li&gt;Will training for it cost less the the savings will be for using it?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You'll probably notice that questions often won't have definate answers for a couple of years. For some companies, most notably web-based or sometimes game developers, can afford to take a risk on a new technology. Others, especially those with privacy obligations, can't. They would need to wait and see if the tech comes out to be reliable and useful.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-03T17:08:51.747" CommentCount="1" />
  <row Id="16565" PostTypeId="2" ParentId="16549" CreationDate="2010-11-03T17:11:51.363" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;So my question is: how do you feel about those companies that try to use newest technologies?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;How do I feel? Depends. Usually, and especially in the case of HTML5, I think they are fools. Downright, outright fools. The only thing for sure in a technology that's not even finalized yet is it &lt;strong&gt;WILL&lt;/strong&gt; change. Possibly breaking everything done in the process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now it's a different story if it's done for personal use. You wanna redo your own site 5 times because the rules have changed, that's your prerogative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said all that, I certainly wouldn't think any less of you for looking into it... Regardless of how I feel about it, it is most definitely a buzz-word technology. Might even help you get past the HR firewall.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's my two cents on the topic. Take it how you will.&lt;/p&gt;&#xA;" OwnerUserId="5169" LastActivityDate="2010-11-03T17:11:51.363" />
  <row Id="16566" PostTypeId="2" ParentId="16544" CreationDate="2010-11-03T17:11:53.483" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.jetbrains.com/teamcity/&quot; rel=&quot;nofollow&quot;&gt;TeamCity&lt;/a&gt; is a CI server that does what you need (and a few other things too). Automatic assembly versioning requires some tricks (I can go into more details here if needed), but it will version build artifacts that it produces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Setting it up is very easy and there is a free version that supports up to 20 build configurations, which should be sufficient for a single developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: come to think of it, I'm not sure about setting up XML doc generation with TeamCity. But if it's something that can run as part of an MSBuild project, TeamCity will run it, I'm pretty sure.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-11-03T17:11:53.483" CommentCount="4" />
  <row Id="16567" PostTypeId="2" ParentId="16549" CreationDate="2010-11-03T17:21:20.690" Score="1" ViewCount="" Body="&lt;p&gt;Depends how they're doing it, and largely what type of project they are working on.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they're developing for internal projects with a fairly low  quality bar, and they can contribute back to the technology to help keep it alive (either with testing, development or cold hard cash), and they can back out if it all goes Pete Tong, then great, why shouldn't they use the latest and greatest?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if it's a critical system for a client who will eat them alive for every single error, or the project has a chance of dying and leaving them with a lot of work to switch to an alternative, then they are fools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The latest bleeding-edge techs which always have more issues, they always have a chance of falling flat, and there can always be something else even cooler just round the corner.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-11-03T17:21:20.690" CommentCount="1" />
  <row Id="16568" PostTypeId="2" ParentId="9406" CreationDate="2010-11-03T17:32:12.237" Score="5" ViewCount="" Body="&lt;p&gt;I think &quot;python, perl&quot; in Google Trends says it all:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Y0W5a.png&quot; alt=&quot;python vs. perl&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="5895" LastActivityDate="2010-11-03T17:32:12.237" CommentCount="6" />
  <row Id="16569" PostTypeId="1" CreationDate="2010-11-03T17:40:21.173" Score="1" ViewCount="177" Body="&lt;p&gt;Hey guys, I am a recent college graduate, out with a degree in computer science. Unfortunately, however, I feel that, while I came out of college knowing a decent amount about CS, I just don't know that much to be applicable for any good jobs. I feel I didn't keep record well of what I did, and simply got grades for grades in a lot of my classes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I recently had an interview for an entry level C++ programmer, and have been studying C++ (which I was previously unfamiliar with), through the book Thinking in C++, and enjoying doing so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;THUS, what I wanted to ask SO was; for a new college grad, with strong abilities to program when I learn the language, what would be the best languages, IT modules, tasks, etc. I should study to get a good IT job? What exactly should I be learning and doing. For BG info I mainly learned java and cobol in college, but have worked with SQL a decent amount and am learning C++ now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm simply trying to make my brain useful and get on my feet in an IT job. Thanks guys.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;edit: I live in Chicago. I guess what I'm asking is what tool sets and programming language knowledge would be best to be know by a recent college grad, in a major US city, looking for a programming job?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;I just keep going on Dice, and such sites, and all the &quot;entry level&quot; jobs (which are very few) seem to be asking for things I know nothing about, such as .NET development, Javascript, PHP, etc. I went to school for 4 years and feel like I am incredibly unprepared to ever get a CS job. I am intelligent, and good at IT work, but just so lost right now I don't know what to do. Someone, please help.&lt;/em&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-11-03T18:06:58.830" ClosedDate="2010-11-03T18:36:14.223" Title="New College Grad…What IT to learn to get a job? Please help me!" Tags="&lt;learning&gt;&lt;career&gt;" AnswerCount="2" CommentCount="4" FavoriteCount="1" />
  <row Id="16570" PostTypeId="2" ParentId="16569" CreationDate="2010-11-03T17:48:26.443" Score="1" ViewCount="" Body="&lt;p&gt;Study whichever technology or language that interests you most. You will wind up being more proficient at something you enjoy than something you have to grit your teeth when you work on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Within reason, you'll probably be able to find a job no matter what you pick.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-03T17:48:26.443" />
  <row Id="16571" PostTypeId="1" AcceptedAnswerId="16581" CreationDate="2010-11-03T17:50:23.397" Score="16" ViewCount="632" Body="&lt;p&gt;It seems like every .net book talks about value types vs reference types and makes it a point to (often incorrectly) state where each type is stored - the heap or the stack.  Usually it's in the first few chapters and presented as some all-important fact.  I think it's even covered on &lt;a href=&quot;http://www.microsoft.com/learning/en/us/exam.aspx?id=70-536#tab2&quot; rel=&quot;nofollow&quot;&gt;certification exams&lt;/a&gt;. Why does stack vs heap even matter to (beginner) .Net developers?  You allocate stuff and it just works, right?&lt;/p&gt;&#xA;" OwnerUserId="6980" LastActivityDate="2010-11-16T13:16:12.877" Title="Why do .Net books talk about stack vs heap memory allocation?" Tags="&lt;.net&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="1" />
  <row Id="16572" PostTypeId="2" ParentId="502" CreationDate="2010-11-03T17:51:10.997" Score="0" ViewCount="" Body="&lt;p&gt;I like to do some I/O exercises(both file system and console), then a text adventure game, because it helps me understand the way data structures are used in that language (it really helped when I was working on Lisp). They're also fun to make.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-03T17:51:10.997" CommunityOwnedDate="2010-11-03T17:51:10.997" />
  <row Id="16573" PostTypeId="2" ParentId="16289" CreationDate="2010-11-03T17:51:57.203" Score="2" ViewCount="" Body="&lt;p&gt;I was in this exact same position about two years ago.  Great pay, some benefits, but no satisfaction.  Just rewriting old Excel and Access files.  This was an improvement to the other job I was doing just before, same company but even more out of my field.  I wanted to be a developer, even it it meant starting low.  Fortunately, I have only a (beautiful, understanding) wife and two dogs, so there's not much responsibility on my shoulders right now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I eventually did was, the wife and I made a strong, detailed budget.  We even sold our house and bought another, smaller house closer to the city and cut our mortgage in half.  We figured out how much we needed to survive and stuck to it, paying off debt and creating a solid six-month &quot;Rainy Day&quot; fund.  I got a job as CIO/&quot;IT guy&quot; with a small telecom expense management company, which allows me the flexibility to finish my Master's and moonlight at my convenience (not as convenient as I'd like, but I'll be graduating in December).  Heck, even medical insurance was cheaper, since I wasn't on a group plan anymore.  I miss the fat paycheck but it's been a year now and I'm doing okay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TLDR: Cut your expenses, save money, hold your breath and jump.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-03T17:51:57.203" CommentCount="1" />
  <row Id="16575" PostTypeId="2" ParentId="16528" CreationDate="2010-11-03T17:52:41.757" Score="4" ViewCount="" Body="&lt;p&gt;I personally prefer the second. The first one looks ugly, awkward, and wastes horizontal space. The main problems with the second one are macros and people modifying your code at a later point getting it wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To this, I say &quot;don't use macros&quot;. I also say, &quot;indent your damn code correctly&quot;. Considering how every text editor/IDE used for programming does indentation automatically, this shouldn't be that hard to do. When writing code in Emacs, I would use the auto-indent to identify if I wrote something wrong on a previous line. Anytime Emacs starts screwing up indentation, I usually know I've done something wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In practice, I end up following whatever coding convention has been set before me. But these ones annoy me (and makes me much happier when I code in Python and this entire bracket disaster is gone):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (condition) {&#xA;    statement;&#xA;} // stupid extra brace looks ugly&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Then&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (condition) // the brackets have now just become noise&#xA;{ statement; } // also can't see the indentation, harder to read&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Although honestly, two statements in an if statement annoy me far more than a single statement. Mostly because then brackets are required and it still looks funny with only two statements in the if statement.&lt;/p&gt;&#xA;" OwnerUserId="3102" LastActivityDate="2010-11-03T17:52:41.757" CommentCount="1" />
  <row Id="16576" PostTypeId="2" ParentId="16571" CreationDate="2010-11-03T17:53:21.773" Score="2" ViewCount="" Body="&lt;p&gt;You have to understand how memory allocation works to use it efficiently even if you don't have to manage it explicitly. This applies to pretty much every abstraction in computer science.&lt;/p&gt;&#xA;" OwnerUserId="6926" LastActivityDate="2010-11-03T17:53:21.773" CommentCount="6" />
  <row Id="16577" PostTypeId="2" ParentId="502" CreationDate="2010-11-03T17:55:47.173" Score="0" ViewCount="" Body="&lt;p&gt;I Google for a tutorial on the language and follow that, usually.  If there isn't one somewhere on the language's website then that's not a great sign.  More often than not, I've looked up some examples before even downloading the language toolkit in order to get a feel for what to expect (there's so many languages popping up that you can't hope to try them all, so best to stick to languages with features you find interesting).&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-11-03T17:55:47.173" CommunityOwnedDate="2010-11-03T17:55:47.173" />
  <row Id="16578" PostTypeId="2" ParentId="16569" CreationDate="2010-11-03T17:56:06.737" Score="1" ViewCount="" Body="&lt;p&gt;If you've got a good enough CS background, you should be able to pick up just about any technology you need to as it relates to software development. The problem is, employers largely aren't going to care whether or not you've got a cursory understanding of various technologies. Instead, they're going to want to see demonstrated, on-the-job experience. Either that, or they're going to expect nothing at all and hire you straight out of college in order to train you on their specific platform, in which case the CS fundamentals you hopefully learned are more important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you go about this process by learning specific languages and technologies, you're going to find yourself up a creek without a paddle in a couple years. Technology changes, but the fundamentals of computing largely don't. If you want to be a developer, focus on the basics.&lt;/p&gt;&#xA;" OwnerUserId="6984" LastActivityDate="2010-11-03T17:56:06.737" />
  <row Id="16579" PostTypeId="2" ParentId="16571" CreationDate="2010-11-03T18:02:38.287" Score="5" ViewCount="" Body="&lt;p&gt;As to WHY do they cover the topic, I agree with @Kirk that it's an important concept, that you have to understand. The better you know the mechanisms, the better you can do to make great applications that performs smoothly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2010/09/30/the-truth-about-value-types.aspx&quot; rel=&quot;nofollow&quot;&gt;Eric Lippert&lt;/a&gt; seems to agree with you that the topic is not correctly covered by most authors. I recommend you read his blog to achieve a great understanding of what's under the hood.&lt;/p&gt;&#xA;" OwnerUserId="4879" LastActivityDate="2010-11-03T18:02:38.287" CommentCount="1" />
  <row Id="16580" PostTypeId="2" ParentId="16571" CreationDate="2010-11-03T18:02:52.437" Score="3" ViewCount="" Body="&lt;p&gt;Well, I thought that's the whole point of managed environments. I'd even go as far as calling this an implementation detail of the underlying runtime that you should NOT make any assumptions about, because it could change at any time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know much about .NET, but as far as I know, its JITted before execution. The JIT for example could perform &lt;a href=&quot;http://en.wikipedia.org/wiki/Escape_analysis#Optimizations&quot; rel=&quot;nofollow&quot;&gt;escape analysis&lt;/a&gt; and what not and all of a sudden you'd be having objects lying on the stack or merely in some registers. You cannot know this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suppose some books cover it simply because the authors attribute great importance to it, or because they assume their audience does (e.g. if you wrote a &quot;C# for C++ programmers&quot; you probably should cover the topic).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nonetheless, I think there is not much more to say than &quot;memory is managed&quot;. Otherwise people might draw wrong conclusions.&lt;/p&gt;&#xA;" OwnerUserId="667" LastEditorUserId="147" LastEditorDisplayName="" LastEditDate="2010-11-04T05:35:13.270" LastActivityDate="2010-11-04T05:35:13.270" />
  <row Id="16581" PostTypeId="2" ParentId="16571" CreationDate="2010-11-03T18:09:36.360" Score="20" ViewCount="" Body="&lt;p&gt;I'm becoming convinced that the primary reason this bit of information is considered important is &lt;em&gt;tradition.&lt;/em&gt;  In unmanaged environments, the disctinction between stack and heap is important and we have to manually allocate and delete the memory we use.  Now, garbage collection takes care of the management, so they ignore that bit.  I don't think the message has really gotten through that we don't have to care which type of memory is used either.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Fede pointed out, Eric Lippert has some very interesting things to say about this: &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2010/09/30/the-truth-about-value-types.aspx&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com/b/ericlippert/archive/2010/09/30/the-truth-about-value-types.aspx&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In light of that information, you could adjust my first paragraph to basically read: &quot;The reason people include this information and assume it is important is because of incorrect or incomplete information combined with needing this knowledge in the past.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those who think it is still important for performance reasons:  What actions would you take to move something from the heap to the stack if you did measure things and find out that it mattered?  More likely, you'd find a completely different way of improving performance for the problem area.&lt;/p&gt;&#xA;" OwnerUserId="6639" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-09T17:52:24.203" LastActivityDate="2010-11-09T17:52:24.203" CommentCount="2" />
  <row Id="16582" PostTypeId="2" ParentId="9406" CreationDate="2010-11-03T18:11:32.427" Score="5" ViewCount="" Body="&lt;p&gt;there is no answer here. most of the languages you see out there today are going to survive. none of perl, python, ruby, haskell, lua, java, scala etc are likely to go away because all of them have the critical mass of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;existing working code that matters and is nontrivial to rewrite&lt;/li&gt;&#xA;&lt;li&gt;existing community that advocates for its use&lt;/li&gt;&#xA;&lt;li&gt;existing body of tools support (editor modes etc)&lt;/li&gt;&#xA;&lt;li&gt;ease of installation and use&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;perl coders tend to like languages that are quirky. they don't want to use an &quot;executable pseudocode&quot; like python exactly because most of the lack of quirks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;by the same token, python coders tend to like the language's readability and simplicity. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;both camps will survive and thrive...both are still in high demand by employers and both are still being chosen for new startups.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;replace &quot;perl&quot; and &quot;python&quot; with any other two established languages and the arguments are the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i haven't bothered to mention languages like c, sql and javascript since they have no real competition and in a certain sense &lt;em&gt;can't&lt;/em&gt; go away (yet).&lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-11-03T18:11:32.427" />
  <row Id="16583" PostTypeId="2" ParentId="16518" CreationDate="2010-11-03T18:26:30.747" Score="5" ViewCount="" Body="&lt;p&gt;Explain how public-key cryptography works, and how it is used both for encryption and digital signatures.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-11-03T18:26:30.747" CommentCount="1" />
  <row Id="16584" PostTypeId="1" AcceptedAnswerId="56432" CreationDate="2010-11-03T18:29:57.403" Score="17" ViewCount="1293" Body="&lt;p&gt;I'm thinking about buying a new laptop, and while I bought my original one oblivious to the fact that there could be different quality screens out there, after seeing the screen on my sister's netbook I realized that I might have to be cautious with my next purchase. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Granted, I did not confirm that the reason my sister's screen looks the way it does is due to the screen itself and not color scheme/graphics card, but I know very little about the different screen technologies and how they differ in image quality and therefore can't really tell if wondering about it even makes sense or not. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what I'm asking is: should I be worried about screen quality? And if so, what technologies should I be looking for? How do they differ and which are the best ones? What are the different elements that determine the quality of a screen and which stats should I go for in each element? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the record, I'm not interested in opinions about screen size, but picture quality for lots of reading/coding. &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2011-03-05T20:22:30.360" LastActivityDate="2011-03-11T18:59:08.410" CommunityOwnedDate="2011-03-09T19:17:41.313" Title="What kind of screen has the best image quality for reading/programming?" Tags="&lt;work-environment&gt;&lt;screen&gt;" AnswerCount="19" CommentCount="6" FavoriteCount="6" />
  <row Id="16585" PostTypeId="2" ParentId="16528" CreationDate="2010-11-03T18:34:08.297" Score="2" ViewCount="" Body="&lt;p&gt;I use the two-line version without braces (the 2nd form), but not to save space.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use that form because I find it more readable, more visually appealing, and easier to type.  I only use that form if those conditions are met; i.e. the &lt;code&gt;if&lt;/code&gt; condition has to fit nicely on a single line, and the corresponding statement has to fit nicely on the following line.  If that is not the case, then I will use braces to improve readability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I use this form, I make sure that there is an empty line (or a line containing only a brace) before and after the &lt;code&gt;if&lt;/code&gt; statement (or above the comment, if present).  While this is not a rule that I consciously follow, I notice it now after reading this question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Conserving screen space is not a priority for me.  If I needed more space I would use a larger monitor.  My screen is already large enough for me to read anything that I might need to focus my attention on.  It's unlikely that I would need to focus on so many lines of code at one time that they take up my entire screen.  If there is so much nesting going on with a chunk of code that I can't understand it without viewing more of it at one time, then I would have to consider whether the logic could be better represented by refactoring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Below are some examples that demonstrate how I use this form of the &lt;code&gt;if&lt;/code&gt; statement.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    string GuardConditions(Plan planForWorldDomination)&#xA;    {&#xA;        if (planForWorldDomination == null)&#xA;            throw new ArgumentNullException(&quot;planForWorldDomination&quot;);&#xA;&#xA;        if (!planForWorldDomination.IsComplete())&#xA;            return &quot;Doh!&quot;;&#xA;&#xA;        planForWorldDomination.Execute();&#xA;    }&#xA;&#xA;    void ProcessingLogic()&#xA;    {&#xA;        OneBlankLineAbove();&#xA;&#xA;        if (simpleCondition)&#xA;            simpleStatement();&#xA;&#xA;        OneBlankLineBelow();&#xA;        OneBlankLineAbove();&#xA;&#xA;        // optional comment on the line above an if statement&#xA;        if (simpleCondition)&#xA;            simpleStatement();&#xA;&#xA;        OneBlankLineBelow();&#xA;    }&#xA;&#xA;    void Assignment(string drive)&#xA;    {&#xA;        OneBlankLineAbove();&#xA;&#xA;        string prompt;&#xA;        if (simpleCondition)&#xA;            prompt = &quot;simple assignment&quot;;&#xA;        else&#xA;            prompt = null;&#xA;&#xA;        OneBlankLineBelow();&#xA;    }&#xA;&#xA;    string Return()&#xA;    {&#xA;        OneBlankLineAbove();&#xA;&#xA;        if (simpleCondition)&#xA;            return &quot;simple return&quot;;&#xA;        else&#xA;            return null;&#xA;&#xA;        OneBlankLineBelow();&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5486" LastActivityDate="2010-11-03T18:34:08.297" CommentCount="1" />
  <row Id="16586" PostTypeId="2" ParentId="16471" CreationDate="2010-11-03T18:35:53.577" Score="1" ViewCount="" Body="&lt;p&gt;Perhaps a more subtle way to remind people how important you are is to wear a suit and go on a hush-hush two hour lunch one day. Bonus points for coming back with a beaming grin looking like you got the job at the fake interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyhow, I've been stuck in these sorts of roles from time to time. It can suck, but it can make you a very, very good developer if you look at it as a positive challenge. Some things to do:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Be very good at managing expectations and working with the bosses on triagiging/staging things so everything gets out on time enough.&lt;/li&gt;&#xA;&lt;li&gt;Develop a good stack of tools. Bug trackers are key here -- they really are the only way to keep your head on straight.&lt;/li&gt;&#xA;&lt;li&gt;Think in terms of triage -- what do I need to get this stood up that isn't going to mess me up 2 weeks from now when I have to revisit it?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;On the code level   &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Get very good at presaging and precluding bugs -- stuff like checking for null up front on a tactical level. Find invalid states and fail hard, fast and loud.   &lt;/li&gt;&#xA;&lt;li&gt;Look at the projects -- how much of the codebase is common and can be built to cut both ways?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3762" LastActivityDate="2010-11-03T18:35:53.577" />
  <row Id="16587" PostTypeId="2" ParentId="16301" CreationDate="2010-11-03T18:37:20.970" Score="3" ViewCount="" Body="&lt;p&gt;Get a working version as soon as possible! &lt;em&gt;(Prototyping)&lt;/em&gt;&lt;br&gt;&#xA;Then make it better. &lt;em&gt;(Refactoring)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="6985" LastEditorUserId="6985" LastEditorDisplayName="" LastEditDate="2010-11-15T13:32:48.540" LastActivityDate="2010-11-15T13:32:48.540" CommunityOwnedDate="2011-01-23T10:19:44.323" />
  <row Id="16588" PostTypeId="2" ParentId="16584" CreationDate="2010-11-03T18:38:13.153" Score="2" ViewCount="" Body="&lt;p&gt;I don't think there is a single best one. Like there isn't a single best car. Outside of some absolute measures such as resolution and dot pitch, it really comes down to factors like &quot;do I like glossy or matte? do I like very bright or dim and subtle?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best thing to do is go to one of them big box stores in your area where there are lots of machines and find the one that looks best to your eyes. Do remember to play around with the brigthness a bit &lt;/p&gt;&#xA;" OwnerUserId="3762" LastActivityDate="2010-11-03T18:38:13.153" CommunityOwnedDate="2011-03-09T19:17:41.313" CommentCount="2" />
  <row Id="16589" PostTypeId="2" ParentId="502" CreationDate="2010-11-03T18:40:10.330" Score="2" ViewCount="" Body="&lt;p&gt;Whatever I needed to write in the new language in the first place.&lt;/p&gt;&#xA;" OwnerUserId="3762" LastActivityDate="2010-11-03T18:40:10.330" CommunityOwnedDate="2010-11-03T18:40:10.330" />
  <row Id="16590" PostTypeId="2" ParentId="279" CreationDate="2010-11-03T18:40:24.480" Score="3" ViewCount="" Body="&lt;p&gt;Probably just a pipe dream, but it'd be neat to see some advanced changes to the type system that would make something like &quot;Haskell#&quot; possible. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;F# shows that the type system is pretty darn great already, but support for higher-kinded types and type-classes would give the CLR the most powerful and comprehensive type system ever.  Maybe mix-in support, though extension methods cover that need pretty well already.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know beyond that really.  Macros and &quot;template C#&quot; I guess?  Just some sugaring on Reflection.  The CLR's already got so much going on, not sure how many new things I can incorporate.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-03T18:40:24.480" CommunityOwnedDate="2011-05-10T09:21:11.253" />
  <row Id="16591" PostTypeId="2" ParentId="16483" CreationDate="2010-11-03T18:45:15.443" Score="1" ViewCount="" Body="&lt;p&gt;I work a lot with OpenGL in Delphi.  Its not that much different from working with it in C++.  Often you can almost copy/paste examples between the two.  But, as most examples you'd find online and in books are in C++, it would still help greatly no matter what language you are using to be fairly familiar with C++.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-03T18:45:15.443" />
  <row Id="16593" PostTypeId="2" ParentId="16584" CreationDate="2010-11-03T18:58:03.950" Score="11" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.dell.com/us/en/dfo/peripherals/monitor-dell-u2410/pd.aspx?refid=monitor-dell-u2410&amp;amp;s=dfo&quot; rel=&quot;nofollow&quot;&gt;Dell U2410&lt;/a&gt; Love love LOVE these! I think 24&quot; is the perfect size for programming, and the portrait rotation I really love. Its great when you're looking at silly junior prog god class files (should your company be silly enough to even allow those to slip through the cracks) or just procedural programming files like scripts. They can be changed to having a 60hz refresh rate should you need (which is pretty good for an IPS monitor). Otherwise, pretty cheap for an IPS monitor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;edit&lt;/strong&gt; This is assuming of course you're willing to plug your laptop into an external monitor. If you are not then in order to get a good laptop screen quality you will be looking at high end laptops. Almost all laptops that are less than $1000 and smaller than 17 inches only have a screen with a 1366x768 res monitor. Its only until you start going to more expensive laptops like the macbook pro/airs or lenovo thinkpads that you start to see the 1400x1050 matte screens.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-03T20:14:25.767" LastActivityDate="2010-11-03T20:14:25.767" CommunityOwnedDate="2011-03-09T19:17:41.313" CommentCount="5" />
  <row Id="16594" PostTypeId="2" ParentId="16584" CreationDate="2010-11-03T18:58:24.507" Score="0" ViewCount="" Body="&lt;p&gt;You say you are looking at buying a new laptop.  If you are 100% sold on a laptop, I would highly recommend hooking it up to multiple large external monitors (and keyboard/mouse) for the times you are not on-the-go with the laptop.  Those external monitors are the ones to be concerned at for image quality as you'll be in front of them the vast majority of the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not saying disregard image quality on the laptop display, but take into account how much you will be using that screen versus a better/larger external display.&lt;/p&gt;&#xA;" OwnerUserId="6423" LastActivityDate="2010-11-03T18:58:24.507" CommunityOwnedDate="2011-03-09T19:17:41.313" CommentCount="1" />
  <row Id="16595" PostTypeId="1" AcceptedAnswerId="16598" CreationDate="2010-11-03T19:02:59.503" Score="21" ViewCount="708" Body="&lt;p&gt;I keep hearing that it is actually beneficial to take frequent breaks (5 min every half hour or 10min every hour) and I was just wondering how true you found this to be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I gave it a try, but quite often I find something interesting during those 5min and it takes me away from what I was currently working on for longer than I planned. Either that, or I keep thinking of it over the next half hour and feel I don't focus on my work very well. Also, I always feel mildly guilty browsing the web every half hour or so. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is that the same for you? Or does taking frequent breaks actually increase your productivity? Why?&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-11-04T17:13:54.383" Title="Is taking frequent breaks really that beneficial when programming?" Tags="&lt;work-environment&gt;" AnswerCount="13" CommentCount="1" />
  <row Id="16596" PostTypeId="1" CreationDate="2010-11-03T19:06:11.593" Score="2" ViewCount="150" Body="&lt;p&gt;In his &lt;a href=&quot;http://stephen.wolfram.usesthis.com/&quot; rel=&quot;nofollow&quot;&gt;interview&lt;/a&gt; Stephen Wolfram says that he has&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;...archiving and searching system, which includes 25 years of email (and 20 years of keystroke data)&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that such a system might be very helpful because I constantly find myself searching for a piece of code I once wrote or an URL or some other important text. So I googled for such an aplication, but the only links I found were to applications for spying, password stealing etc. These are no good for such a job. Does anyone know/use such keylogging application?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe that for this kind of software to be usable it should collect not only the keystokes themselves, but also the context they were typed in. Dates, windows names, maybe even screenshots occasionally. It should keep track of clipboard to convert Ctrl-V to clipboard content. And of course it sould have good search features. Probably fuzzy search capabilities.&lt;/p&gt;&#xA;" OwnerUserId="5430" LastEditorUserId="5430" LastEditorDisplayName="" LastEditDate="2010-11-03T21:01:43.283" LastActivityDate="2010-11-04T16:16:28.730" Title="Software to collect keystroke data" Tags="&lt;productivity&gt;&lt;software&gt;&lt;information&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="16597" PostTypeId="2" ParentId="16595" CreationDate="2010-11-03T19:06:22.950" Score="10" ViewCount="" Body="&lt;p&gt;Personally, I don't find a 5 minute break at my desk of any real value.  I'll get up and walk around instead and then come back and attack again with renewed vigor.  I'm also not real strict about the timing... if I'm on a roll, I definitely don't stop.  If I'm stuck, I stop before I get too frustrated.&lt;/p&gt;&#xA;" OwnerUserId="6988" LastActivityDate="2010-11-03T19:06:22.950" CommentCount="1" />
  <row Id="16598" PostTypeId="2" ParentId="16595" CreationDate="2010-11-03T19:06:33.613" Score="27" ViewCount="" Body="&lt;p&gt;I do take frequent breaks but they normally have a purpose (bathroom, food/coffee, etc). I tend to find that while I am &lt;strong&gt;away from my desk&lt;/strong&gt; that I am still thinking of the problem at hand. However, this thinking is not distracted by the code in front of me and allows me to think more about the problem as a whole rather than nitpicking through details in front of me. Frequently when I return to my desk I have a new idea at how to approach the issue I am working on.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-11-03T19:06:33.613" CommentCount="4" />
  <row Id="16599" PostTypeId="2" ParentId="16595" CreationDate="2010-11-03T19:12:54.083" Score="26" ViewCount="" Body="&lt;p&gt;It is completely dependent on your current state. If I'm stuck hard on something I'll flip over to Programmers.SE or SO and check some questions. I'll get up and go for a walk. Maybe get a soda or a slice of pizza. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I'm in a groove I'm not going to be stopping. Breaks are beneficial when left up to the programmers judgement. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-03T19:12:54.083" CommentCount="5" />
  <row Id="16600" PostTypeId="2" ParentId="15004" CreationDate="2010-11-03T19:22:23.333" Score="0" ViewCount="" Body="&lt;p&gt;On my job applications I use two sections for technologies as I'd expect most do; first there is the general skills section and then the listing of specific experience in specific projects. Of course, while applying I list in both sections mostly those items that are relevant to the job in question.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Goals:&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I feel that listing a technology in the general area is a strong statement and for a technology to reside in there I need to &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;be able to communicate with it&lt;/li&gt;&#xA;&lt;li&gt;manage to work reasonably&#xA;productively with it&lt;/li&gt;&#xA;&lt;li&gt;have some knowledge of the possible&#xA;boobytraps that lay within it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h3&gt;Criteria&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;My very vague criteria for listing technologies in the general skills goes along these lines:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The proficiency of an average programmer who has used the technology to write programs consisting of about 10K SLOC.&lt;/li&gt;&#xA;&lt;li&gt;The ability of an average programmer who has had to maintain the complexity of a program the size of approximately 30 objects.&lt;/li&gt;&#xA;&lt;li&gt;The theoretical knowledge equivalent of an average book.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Basically that's at least some &lt;b&gt;breadth&lt;/b&gt; in the area, handling of reasonable &lt;b&gt;complexity&lt;/b&gt;, and some &lt;b&gt;knowledge&lt;/b&gt; about the horrors that await.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Examples:&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Proficient, PHP:&lt;/strong&gt; Writing web applications with PHP has been my day job for several years, with the maintenance of several projects, many books and a big portion of the manual behind me. This would go in both sections, were it relevant for the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Beginner, Scala:&lt;/strong&gt; I'm in the middle of reading a Scala book with about 200 pages behind me and a few hundred lines of code written. I'd probably use it as a side note somewhere if I saw it in the job ad, like this: &quot;The job you're offering also mentioned Scala which I'm studying right now and I'm more than willing to learn more about it.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Border case, Python:&lt;/strong&gt; I've written a small shoot'em up game and several scripts in Python with the experience of a couple of thousand lines, reading a dozen of articles and tutorials on the web, and some parts of the manual. If the ad mentioned Python (and I'd be well qualified otherwise) I'd write about it in my resume in the experience section, perhaps  something akin to this: &quot;I have created a shoot'em up game in Python with Pygame using object-oriented programming with bitmap graphics&quot;.&#xA;&lt;hr&gt;&#xA;Naturally, a fine way of showing your real skill level is providing links for screenshots, diagrams, plans, data schemas, project history, blog postings and code in the application for the job.&lt;/p&gt;&#xA;" OwnerUserId="6550" LastEditorUserId="6550" LastEditorDisplayName="" LastEditDate="2010-11-03T20:04:03.797" LastActivityDate="2010-11-03T20:04:03.797" />
  <row Id="16601" PostTypeId="2" ParentId="16595" CreationDate="2010-11-03T19:22:55.723" Score="6" ViewCount="" Body="&lt;p&gt;I do &lt;strong&gt;10&lt;/strong&gt; minutes breaks every &lt;strong&gt;45&lt;/strong&gt; minutes of &lt;code&gt;computer work&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;During the 10 minutes, I walk, prepare a coffee and such trivial stuff. Sometimes, I take the time to clean my desk. But it has to be trivial things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use &lt;a href=&quot;http://workrave.org&quot; rel=&quot;nofollow&quot;&gt;workrave&lt;/a&gt; to remind me when to stop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you do is actually task-switching. Your brain can't rest and start on something else when unfocused from the previous thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm currently trying what is called &lt;a href=&quot;http://en.wikipedia.org/wiki/Mindfulness_%28Buddhism%29&quot; rel=&quot;nofollow&quot;&gt;mindfulness&lt;/a&gt;. It works so well it is scary!&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-03T19:22:55.723" CommentCount="5" />
  <row Id="16602" PostTypeId="2" ParentId="331" CreationDate="2010-11-03T19:25:46.093" Score="0" ViewCount="" Body="&lt;p&gt;My personal favorite is Dina, found at: &lt;a href=&quot;http://www.donationcoder.com/Software/Jibz/Dina/&quot; rel=&quot;nofollow&quot;&gt;http://www.donationcoder.com/Software/Jibz/Dina/&lt;/a&gt; and (some other url I can't post at my current rep search for &quot;dina ttf&quot;) (ttf conversion of the Dina font). But I sometimes fall back on Consolas in situations where Dina doesn't render well.&lt;/p&gt;&#xA;" OwnerUserId="6973" LastActivityDate="2010-11-03T19:25:46.093" CommunityOwnedDate="2010-11-03T19:25:46.093" />
  <row Id="16603" PostTypeId="2" ParentId="15874" CreationDate="2010-11-03T19:30:05.543" Score="2" ViewCount="" Body="&lt;p&gt;Lots of great answers here. Some things I would add:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you have to explain code to someone else, often in the course of the explanation the developer may suddenly realize he has a bug. I've seen it happen again and again that the dev stops dead in his tracks and says &quot;oh wait that's wrong&quot; before the reviewer has understood the thing well enough to see the bug.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowing your code will be inspected by someone else gives you more incentive to use coding standards (making maintenance easier) or use less &quot;cowboy&quot; methods that no one except yourself (and somtimes not even yourself) will ever understand. You don't want to be embarrassed when you show your code to someone else, so you do a better job on it in the first place. Because of the embarassment factor, it leaves less of the code commented with:&#xA;&quot;I don't know why this works but don't mess with it.&quot; in the code base.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developers who have the need for more extensive supervision or training are easily identified. So are the outright incompetent. The sooner you can find and address performance problems, the better off the team as a whole and the higher the quality of the application will be. It's good to find out this information before you take the new guy who needs training and assign him to the hardest, most critical part of your application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes it is just a matter of correcting a misperception that will save making the same mistake in a bunch of other places. For instance we were recently reviewing some SQL for complex reports and found that several of our new devs had the same misundersatnding about where to find a specific piece of information in the database (admittedly the place they picked seemed logical which is a database design issue we also need to fix) that would be critical to correcly writing all the reports. By finding the problem and correcting it in the first reports they wrote, it saved the same error from happening in the rest of the reports. And something the older (in time working here not age) devs were so used to that they didn't think it needed explaining came out. It also made us realize there were some other things we probably neede to make sure the newer devs were up-to-speed on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Juniors can learn from the more sophisticated code written by seniors (who tend to better understand error trapping and edge cases for instance) and seniors can learn from the new techniques used by juniors that they haven't been exposed to yet. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes people working on different but related parts of the application realize that they are going in two different and mutually exclusive directions. Ooops, easier to fix now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not so easy to sneak in hard-coded values that will change over time just to get the thing to work now. This prevents a lot of future bugs such as things whih change at the beginning of each fiscal year. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've sometimes been stuck on how to do something and learned a new technique that was just what I wanted from code reviewing someone else's stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are familar with how the other members of your team think (which code review will help give you that understanding), then it will be easier to troubleshoot problems later because you will start with an understanding of how Joe would have approached that kind of problem.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-03T19:30:05.543" />
  <row Id="16604" PostTypeId="2" ParentId="16595" CreationDate="2010-11-03T19:30:16.230" Score="5" ViewCount="" Body="&lt;p&gt;I find the &lt;em&gt;option&lt;/em&gt; of frequent breaks very helpful.  If I'm neck-deep in a task rolling along, I might go hours without a break.  I would certainly find a forced break very disruptive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I'm working on code that just isn't behaving, walking around for a few minutes lets my brain wander &quot;around&quot; the problem enough to give an insight to the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I often joke that my best thinking for the job goes in in the company's bathroom, but it's only half-kidding.&lt;/p&gt;&#xA;" OwnerUserId="6989" LastActivityDate="2010-11-03T19:30:16.230" />
  <row Id="16605" PostTypeId="2" ParentId="15874" CreationDate="2010-11-03T19:36:04.320" Score="0" ViewCount="" Body="&lt;p&gt;If you need to reference a document then I'd look no further than the esteemed &quot;Code Complete.&quot;  In it, the book describes how many errors are caught with unit tests vs peer review.  It's astounding.  Unit tests, if memory serves me right, catch only ~30% of all bugs while formal peer reviews catch ~70%.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take that information, show him in the book and appeal to his financial side.  It takes far longer and is much more expensive to allow bugs through than it is to catch them early.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-11-03T19:36:04.320" />
  <row Id="16606" PostTypeId="2" ParentId="11077" CreationDate="2010-11-03T19:41:24.233" Score="0" ViewCount="" Body="&lt;p&gt;I call them &quot;keys&quot; in spanish ( llaves ). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&quot;Llave que abre&quot;&lt;/em&gt; ( Opening key ), &lt;em&gt;&quot;Llave que cierra&quot;&lt;/em&gt; ( closing key). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't have a clue where this word came from.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In english: braces. &lt;/p&gt;&#xA;" OwnerUserId="82" LastActivityDate="2010-11-03T19:41:24.233" />
  <row Id="16607" PostTypeId="2" ParentId="16595" CreationDate="2010-11-03T19:42:51.760" Score="0" ViewCount="" Body="&lt;p&gt;How productive will you be if you go blind from staring at the monitor for too long or have a mental breakdown from working nonstop?  Personally, I'd worry more about actually going blind or having a breakdown, but it sounds like you're more worried about the productivity standpoint.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now to be fair, a 5 minute break every 30 minutes sounds a bit on the excessive side.  But I don't recommend skipping out on breaks because it makes you less productive in the short term.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-03T19:42:51.760" />
  <row Id="16608" PostTypeId="1" CreationDate="2010-11-03T19:48:16.590" Score="4" ViewCount="166" Body="&lt;p&gt;I'm working as a developer in a small software company whose main job is interfacing between separate applications, like between a telephony system and an environment control system, between IP TVs and hospitality systems, etc...And it seems like I am the candidate for a new job title in the company, as the person who does the proof of concept of a new interfacing project and does some R&amp;amp;D for prototyping. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think the pros and cons of such a job would be, considering mainly the individual progress/regress of a person as a software engineer? And what aspects would you consider essential in a person to put him/her in such a job position?&lt;/p&gt;&#xA;" OwnerUserId="3049" LastActivityDate="2010-11-04T00:55:50.237" Title="What would you think of a job based on mostly doing the proof of concept?" Tags="&lt;work&gt;&lt;prototyping&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="16609" PostTypeId="2" ParentId="331" CreationDate="2010-11-03T19:49:43.937" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.fsd.it/fonts/pragma.htm&quot; rel=&quot;nofollow&quot;&gt;Pragmata&lt;/a&gt;. Yes I bought it, I use it, I love it.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-11-03T19:49:43.937" CommunityOwnedDate="2010-11-03T19:49:43.937" />
  <row Id="16610" PostTypeId="2" ParentId="16528" CreationDate="2010-11-03T19:51:21.797" Score="1" ViewCount="" Body="&lt;p&gt;If IDE has code formatting available I do not use braces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, where code may be edited in other editors which does not support auto formatting it is dangerous not to put braces as mentioned in other posts. But even so I prefer not to use braces, and it has not been problem for me.&lt;/p&gt;&#xA;" OwnerUserId="1517" LastActivityDate="2010-11-03T19:51:21.797" />
  <row Id="16611" PostTypeId="2" ParentId="16595" CreationDate="2010-11-03T19:53:09.987" Score="3" ViewCount="" Body="&lt;p&gt;Absolutely. I'm an advocate of the &lt;a href=&quot;http://www.pomodorotechnique.com/&quot; rel=&quot;nofollow&quot;&gt;Pomodoro technique&lt;/a&gt;, the most general implementation of which is 25 minutes on, 5 minutes off. A pomodoro is atomic, so you can't do half of one. This forces you to sit and think through a problem without wandering off to gmail or SO. Conversely, you're also forced to get up every twenty five minutes and walk around or do something non-job related (I occasionally violate this if I'm deep in a problem). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been doing this for about half a year and find that the &quot;head down coding for hours&quot; myth is largely that, a myth. I'm more productive, and generally spend less time dealing with stupid problems (E.g. today I typed [] instead of () when trying to invoke a javascript function) when I force myself to stop every 25 minutes. &lt;/p&gt;&#xA;" OwnerUserId="6894" LastActivityDate="2010-11-03T19:53:09.987" />
  <row Id="16612" PostTypeId="2" ParentId="10675" CreationDate="2010-11-03T19:54:49.130" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;C&lt;/strong&gt;&lt;/li&gt; Procedural is the basic building block of software development, as all of the other paradigms get compiled down to it. &#xA;&lt;li&gt;&lt;strong&gt;Java or C#&lt;/strong&gt;&lt;/li&gt;Both languages allow procedural programming in an object-oriented context, and will encourage you to start thinking about type systems.&#xA;&lt;li&gt;&lt;strong&gt;Python or Ruby&lt;/strong&gt;&lt;/li&gt;More object-oriented programming, but introduces dynamic typing.&#xA;&lt;li&gt;&lt;strong&gt;Haskell&lt;/strong&gt;&lt;/li&gt;You can do functional programming in any language with sufficient effort, but Haskell dumps you into the deep end of the paradigm from the start.&#xA;&lt;li&gt;&lt;strong&gt;Lisp&lt;/strong&gt;&lt;/li&gt;You can do procedural, object-oriented and functional programming in Lisp, but you also get multiple dispatch, advanced error handling with conditions, and macros. The best part is that at this point in your development, you'll know how to best use all of them.&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-03T19:54:49.130" CommunityOwnedDate="2011-01-31T13:41:33.057" />
  <row Id="16613" PostTypeId="2" ParentId="2715" CreationDate="2010-11-03T19:56:32.560" Score="-1" ViewCount="" Body="&lt;p&gt;It depends on the platform/language/conventions&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Java: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void someMethod() { &#xA;     if (you.hasAnswer()) {&#xA;         you.postAnswer();&#xA;     } else {&#xA;       you.doSomething();&#xA;     }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In C#&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void someMethod() &#xA;{ &#xA;     if (you.hasAnswer()) &#xA;     {&#xA;         you.postAnswer();&#xA;     } &#xA;     else &#xA;     {&#xA;       you.doSomething();&#xA;     }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In C:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void someMethod() &#xA;{ &#xA;     if (you_hasAnswer()) {&#xA;         you.postAnswer();&#xA;     } else {&#xA;       you_doSomething();&#xA;     }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I hate when Java guys use their style in C# code and vice versa.&lt;/p&gt;&#xA;" OwnerUserId="82" LastEditorUserId="82" LastEditorDisplayName="" LastEditDate="2010-11-06T16:04:40.180" LastActivityDate="2010-11-06T16:04:40.180" CommunityOwnedDate="2010-11-03T19:56:32.560" CommentCount="1" />
  <row Id="16614" PostTypeId="2" ParentId="16595" CreationDate="2010-11-03T19:57:47.720" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I think it really depends&lt;/strong&gt; on the task you are working on.  Sometimes I find a 5-10 minute break to clear my thoughts and stretch/walk about can really be beneficial.  Other times I will leave my desk and come back and my code will look almost alien to me as my train of thought has jumped.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally speaking I say good thing, but I would disagree with using an app like @Pierre suggested, I tried something similar before and found it frustrating.&lt;/p&gt;&#xA;" OwnerUserId="5010" LastActivityDate="2010-11-03T19:57:47.720" />
  <row Id="16615" PostTypeId="2" ParentId="16608" CreationDate="2010-11-03T20:00:16.670" Score="1" ViewCount="" Body="&lt;p&gt;First I would ask myself this question: Does this company put out enough new products that there will be a steady stream of projects that require a proof of concept? If the answer is no then I would be worried about the stability of the position. If the answer is yes the I would suppose that the number one quality required for the job would be a person who is extremely fast at picking up new languages/technologies.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-11-03T20:00:16.670" CommentCount="3" />
  <row Id="16616" PostTypeId="2" ParentId="16608" CreationDate="2010-11-03T20:02:35.717" Score="7" ViewCount="" Body="&lt;p&gt;Personally I would worry about hiring someone who spent their time doing proof of concept stuff because it sounds like they are trained to get stuff working in a very beta/high level way but maybe couldn't deal with the real fiddly bits of actual implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said if the work was there it would be a wicked awesome job.&lt;/p&gt;&#xA;" OwnerUserId="5010" LastActivityDate="2010-11-03T20:02:35.717" CommentCount="3" />
  <row Id="16617" PostTypeId="1" AcceptedAnswerId="16636" CreationDate="2010-11-03T20:03:38.820" Score="6" ViewCount="170" Body="&lt;p&gt;Having a high spec machine to develop on is a real plus for productivity, but what software tools, techniques or strategies do you use to constrain your environment to test what happens in low memory, processor cycles or even network bandwidth?&lt;/p&gt;&#xA;" OwnerUserId="4960" LastActivityDate="2011-03-11T16:16:52.630" Title="Stress testing software" Tags="&lt;performance-tools&gt;&lt;stress-testing&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="2" />
  <row Id="16618" PostTypeId="1" CreationDate="2010-11-03T20:03:50.240" Score="19" ViewCount="2078" Body="&lt;p&gt;Seriously. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We all remember (or have heard of) the GOTO debate. The practice was pretty normal for a long time, but the times have somehow changed in a way that now it is near-prohibited and a sign of bad taste.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will we see some other common techniques go that way?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;In other words, if in near future there emerges a game-changing paper like &quot;GOTO considered harmful&quot; and  rocks the programming world what exactly could it &quot;consider harmful&quot;?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Possible technologies / approaches coming to mind:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;not testable code (&quot;Gosh, where's your getter(), dude?&quot;)&lt;/li&gt;&#xA;&lt;li&gt;direct constructor calls outside factories (my favorite, see &lt;a href=&quot;http://gbracha.blogspot.com/2007/06/constructors-considered-harmful.html&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&quot;bare&quot; (via spin-locks, etc as opposed to actors/you name it approaches) thread programming&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;[suggested in the answers]&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;global state manipulation (incl. singletons) as breaking modularity and testablity&lt;/li&gt;&#xA;&lt;li&gt;religiously sticking to a single paradigm no matter what the problem set is&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;P.S. Crazy / dreadful predictions are welcome too (when supported with at least some arguments).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;[NOTE: this is not a question of personal hatred but of &lt;em&gt;possible&lt;/em&gt; common practice change.]&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5933" LastEditorUserId="5933" LastEditorDisplayName="" LastEditDate="2010-11-04T19:38:23.460" LastActivityDate="2011-04-14T16:13:04.920" CommunityOwnedDate="2011-04-14T16:13:04.920" ClosedDate="2011-04-14T17:21:13.987" Title="What will be considered harmful next?" Tags="&lt;best-practices&gt;" AnswerCount="29" CommentCount="29" FavoriteCount="6" />
  <row Id="16619" PostTypeId="2" ParentId="331" CreationDate="2010-11-03T20:08:28.163" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.proggyfonts.com/index.php?menu=download&quot; rel=&quot;nofollow&quot;&gt;Proggy Fonts&lt;/a&gt; has a collection of small, programmer-centric fonts, including things like slash zero &amp;amp; bolded punctuation.  Having just &lt;code&gt;[ ( { ' &quot;&lt;/code&gt; bolded in small fonts GREATLY increases the readability, in my experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use Proggy Clean Slash Zero Bold Punc, myself.&#xA;&lt;img src=&quot;http://i.imgur.com/HJVZN.gif&quot; alt=&quot;font example&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="6989" LastActivityDate="2010-11-03T20:08:28.163" CommunityOwnedDate="2010-11-03T20:08:28.163" CommentCount="1" />
  <row Id="16620" PostTypeId="2" ParentId="15874" CreationDate="2010-11-03T20:10:46.747" Score="0" ViewCount="" Body="&lt;p&gt;How about running a demo (a one week &quot;mickey mouse&quot; type project) executed in parallel by two teams, one using code review, the other one not . &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the week, assess the each team's quality of work, I am quite sure that the code reviewers will come off as better.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-03T20:10:46.747" />
  <row Id="16621" PostTypeId="2" ParentId="16618" CreationDate="2010-11-03T20:11:07.987" Score="-2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Relational Databases considered harmful&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Relational databases are to easy to abuse screw up, not be maintained and drag your software into the grave.  Programmers who interface with databases should eschew any notion that having a relational database packaged with or connecting to their software will somehow make it seem more modular.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A bucket of snakes is portable, a handful of snakes is not portable - a handful of snakes may kill.  A handful of snakes in the wrong hands in a 10 story building will kill all the occupants of that 10 story building. A relational database is a handful of snakes, waiting. Watching and waiting. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, I just figured I'd go out a limb with that answer as a crazy/dreadful prediction. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may not find this to be applicable to your situation, but it's clearly the truth regardless.  If you have a 'relational' database but, keep a plethora of multivariable attributes and every field in your tables is indexed and/or a primary key. Then you're only using the database as a stand-in for a big honky text file. Like a handful of snakes, this will wiggle out of your hands and bite you, not a bad analogy if I do say so myself. A RDBMS, like a GOTO is always one step away from being terribly abused. Simpler methods of storing and sorting data just plain old can't be abused - or at the very least mistaken for what they are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I never advocated NoSQL, I don't even really know what that means.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://ox.no/posts/object-relational-mappings-considered-harmful&quot; rel=&quot;nofollow&quot;&gt;This may be of interest&lt;/a&gt;, as a better, snakeless argument against RDBMS for things they're not meant to be used for. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2010-11-04T21:20:26.580" LastActivityDate="2010-11-04T21:20:26.580" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="35" />
  <row Id="16622" PostTypeId="2" ParentId="16618" CreationDate="2010-11-03T20:14:21.867" Score="18" ViewCount="" Body="&lt;p&gt;I think we are past the point where we can again have such a simple and yet meaningful insight as &quot;goto considered harmful&quot;. &lt;/p&gt;&#xA;" OwnerUserId="6420" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-11-03T20:19:21.553" LastActivityDate="2010-11-03T20:19:21.553" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="6" />
  <row Id="16623" PostTypeId="2" ParentId="16617" CreationDate="2010-11-03T20:19:49.510" Score="1" ViewCount="" Body="&lt;p&gt;I think all you can simple simulate:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;For Low Memory write some application who allocate all memory.&lt;/li&gt;&#xA;&lt;li&gt;For Processor, you can run some game.&lt;/li&gt;&#xA;&lt;li&gt;For Network you can run some torrent downloading.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I don't know about this software exists.&lt;/p&gt;&#xA;" OwnerUserId="943" LastActivityDate="2010-11-03T20:19:49.510" CommentCount="2" />
  <row Id="16624" PostTypeId="2" ParentId="16596" CreationDate="2010-11-03T20:22:31.690" Score="0" ViewCount="" Body="&lt;p&gt;I don't see any usability of this, because you must searching in this, then you must know what exactly date and time you writed some i think is very hard, for urls you have in each browser history with handy searching function depends on page body too. Information in your history will be heuristic because keystrokes don't have any start and end.&lt;/p&gt;&#xA;" OwnerUserId="943" LastActivityDate="2010-11-03T20:22:31.690" CommentCount="1" />
  <row Id="16625" PostTypeId="2" ParentId="16608" CreationDate="2010-11-03T20:25:26.760" Score="5" ViewCount="" Body="&lt;p&gt;Since I've worked with someone who has done this and seen the impacts on the quality of the work of his that gets passed around I'd worry more about the perceptions of those who inherit my work.  Things that are prototyped often do not need to worry about corner cases or are done in a manner which is more concerned with schedule at all costs than maintainability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'd have to guard against three things:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;A gradual degradation of your own default code quality.&lt;/li&gt;&#xA;&lt;li&gt;The &quot;if-I-can-say-it-it-can-be-done&quot; work which might get thrown at you.  The schedule could be awfully filled with hope.  They'd be looking at you going &quot;it doesn't have to be perfect, just get it done&quot; when in fact, just getting it to a prototype level requires a LOT of work.&lt;/li&gt;&#xA;&lt;li&gt;The converse, &quot;I-can-do-it-for-just-this-case-but-it-can't-be-generalized.&quot;  This one is more subtle as people often don't think past very specific pieces of code or datasets.  I've been handed way too many things which can't scale and the prototype never even needed to address the issue.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-11-03T20:25:26.760" />
  <row Id="16626" PostTypeId="2" ParentId="16596" CreationDate="2010-11-03T20:31:22.970" Score="0" ViewCount="" Body="&lt;p&gt;A colleague of mine just programmed a keystroke logger and we use it to track our productivity.  It only took him about an hour to code using Windows hooks in Delphi.  So long as your not interested in the names of your function keys it shouldn't be to tough to code yourself. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-11-03T20:31:22.970" CommentCount="2" />
  <row Id="16627" PostTypeId="2" ParentId="16617" CreationDate="2010-11-03T20:36:32.600" Score="3" ViewCount="" Body="&lt;p&gt;I would set up really low spec virtual machines for testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also stress test things like MySQL and individual parts of your stack, but you would need to list what specific things you want to stress.&lt;/p&gt;&#xA;" OwnerUserId="5010" LastActivityDate="2010-11-03T20:36:32.600" />
  <row Id="16628" PostTypeId="2" ParentId="16608" CreationDate="2010-11-03T20:38:09.343" Score="3" ViewCount="" Body="&lt;p&gt;I think the most important question, is how important is this position to your company's core business? If this work is a fundamental part of taking on new business then that is pretty attractive. If the value connection is a little vague then I'd steer clear of it myself.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-03T20:38:09.343" CommentCount="1" />
  <row Id="16629" PostTypeId="2" ParentId="10675" CreationDate="2010-11-03T20:57:03.373" Score="0" ViewCount="" Body="&lt;p&gt;There is no one ideal. A couple of obvious reasons are differences in learning styles, and differences in goals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just for one example, some people tend or prefer to think in very concrete terms, and almost need to start from the very &quot;bottom&quot; and work their way up to work comfortably with higher levels of abstraction. Such a person might do very well starting with assembly language, then progressing to C, possibly C++, and only after those work with, say, Lisp, Haskell or Scheme. Somewhere along the way (say, between C and C++) they might easily even &quot;backtrack&quot; a bit and study a hardware description language like Verilog or VHDL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other people tend or prefer to think in more abstract terms, and almost need to start from the &quot;top&quot; and work their way down to be comfortable. Somebody like this is likely to learn best by &lt;em&gt;roughly&lt;/em&gt; reversing the order above.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A different set of goals might drive different choices at roughly the same levels of abstraction. Just for example, somebody who's interested primarily in engineering might easily find Matlab a comfortable first language, and then switch to something like Fortran or C++, but only if/when needed for performance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Somebody who's more interested in financial calculations might start with Excel macros instead, and then learn (perhaps) VB as kind of a &quot;super macro&quot; language that retains a fairly familiar syntax and &quot;feel&quot;, but allows controlling more than one application at a time, as well as being able to write completely standalone programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of people who are really primarily system administrators start with something like shell scripts, learn some Perl, and (somewhere along the line) at least a bit of SQL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Somebody else might start with HTML, then learn some Javascript as their first &quot;real&quot; programming language, then pick up SQL along with some Java, Ruby, PHP, etc., for back-end work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can argue (quite rightly) that some of these are unlikely to ever lead to the person becoming a really &quot;great&quot; programmer. In a lot of cases you'd even be right. My reply would generally be that for a lot of the people involved, becoming a great programmer was never a goal in the first place -- and if somebody else who really &lt;em&gt;was&lt;/em&gt; interested in becoming a great programmer followed they same route, it would not inhibit them from whatever level of &quot;greatness&quot; they might have achieved by following a different route.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In summary, I'll go on record as saying that Dijkstra was wrong. If somebody really had the ability to become a great programmer to start with, learning a &quot;poor&quot; language (however you define that) first won't remove or even significantly harm that ability. Conversely, if somebody lacks the aptitude to become a great programming, the first (second, etc) language you teach them won't change that either.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-03T20:57:03.373" CommunityOwnedDate="2011-01-31T13:41:33.057" />
  <row Id="16630" PostTypeId="2" ParentId="16571" CreationDate="2010-11-03T21:08:20.990" Score="2" ViewCount="" Body="&lt;p&gt;There can be some edge cases where it that can make a difference. The default stack space is 1meg while the heap is several gig. So if you're solution holds a large number of object you can run out of stack space while having plenty of heap space.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, for the most part it is pretty academic. &lt;/p&gt;&#xA;" OwnerUserId="4960" LastEditorUserId="4960" LastEditorDisplayName="" LastEditDate="2010-11-03T21:37:54.353" LastActivityDate="2010-11-03T21:37:54.353" CommentCount="1" />
  <row Id="16632" PostTypeId="2" ParentId="16528" CreationDate="2010-11-03T21:18:38.667" Score="1" ViewCount="" Body="&lt;p&gt;Braces. Always. I'm kind of the fan of them because it gives code some consistency. And also as @dsimcha wrote - less chance for errors on adding additional lines of code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Ugliness&quot; of braces around single line of code are less harm then additional work which is probable in those cases with debugging and/or adding code.&lt;/p&gt;&#xA;" OwnerUserId="5072" LastActivityDate="2010-11-03T21:18:38.667" CommentCount="2" />
  <row Id="16633" PostTypeId="2" ParentId="11425" CreationDate="2010-11-03T21:22:32.390" Score="2" ViewCount="" Body="&lt;p&gt;You know, you have amassed very important skills which could be applied to an area that would be both new, challenging and exciting while at the same time leveraging your experience: product manager.  I'm not talking about any role where you manage people, I'm talking about the kinds of people that go and think of new ways to either sell the same product, use it in a different way, or find out what features clients might want.  You get to interface with software people (that's one of your selling points) but you also get to be creative in a way you never got to be before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, you'd still have to deal with the whole &quot;office space&quot; corporate bs which happens.  However, that's unavoidable no matter where you go.  Good luck.  It's only an idea.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-11-03T21:22:32.390" CommentCount="2" />
  <row Id="16634" PostTypeId="1" CreationDate="2010-11-03T21:23:17.053" Score="1" ViewCount="179" Body="&lt;p&gt;There are many ways how to exit program in C. Some of them are returning zero or error code, using exit function with EXIT_SUCCESS, EXIT_FAILURE, exit(0), exit(1) or some other error code, abort and probably few more I can't think of now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is which option is the best and why. I'm asking here because every time I asked more experienced programmers this question, it ended up as a holy war.&lt;/p&gt;&#xA;" OwnerUserId="98" LastActivityDate="2010-11-03T22:20:22.713" Title="What's the proper way to exit program in C?" Tags="&lt;programming-practices&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="1" />
  <row Id="16635" PostTypeId="2" ParentId="16634" CreationDate="2010-11-03T21:27:07.067" Score="4" ViewCount="" Body="&lt;p&gt;I think the best thing is return EXIT_SUCCESS or return a non-zero number for which you have documented an error code, or EXIT_FAILURE if you can't define error codes for all the conditions that could cause you to fail. This would let a program using your program (in a pipe or batch function) actually use your error code to determine what to do next if applicable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I am not married to macros that always, on every single implementation on earth equal 0 but hey that sort of comment can get you downvoted.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-03T21:27:07.067" CommentCount="3" />
  <row Id="16636" PostTypeId="2" ParentId="16617" CreationDate="2010-11-03T21:27:25.490" Score="3" ViewCount="" Body="&lt;p&gt;For stress testing web apps you can simulate load with load testing tools like &lt;a href=&quot;http://jakarta.apache.org/jmeter/&quot; rel=&quot;nofollow&quot;&gt;JMeter&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5323" LastActivityDate="2010-11-03T21:27:25.490" CommentCount="1" />
  <row Id="16637" PostTypeId="1" CreationDate="2010-11-03T21:50:45.433" Score="4" ViewCount="191" Body="&lt;p&gt;Microsoft created this ASP.NET documentation map that aggregates a ton of great links into a single PDF.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/b/jmeier/archive/2010/10/26/asp-net-developer-guidance-map.aspx?CommentPosted=true&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com/b/jmeier/archive/2010/10/26/asp-net-developer-guidance-map.aspx?CommentPosted=true&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm interested in hearing what others have to say about this doc, and if they think other resources should be added.  Perhaps MSFT will read this thread and incorporate your tips in this all-encompassing ASP.NET learning guide as well.&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-11-03T21:55:50.490" LastActivityDate="2010-11-04T10:02:15.583" Title="MSFT released &quot;ASP.NET Developer Guidance&quot; PDF... What's missing in your opinion?" Tags="&lt;learning&gt;&lt;web-development&gt;&lt;asp.net&gt;&lt;training&gt;&lt;mvc&gt;" AnswerCount="1" FavoriteCount="3" />
  <row Id="16638" PostTypeId="1" CreationDate="2010-11-03T22:10:12.050" Score="6" ViewCount="253" Body="&lt;p&gt;I am trying to learn more about the various ways that the problem of a Distributed Queue may be solved. So I would like know what products, services, implementations and research papers that are already out there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An implementation will face many challenges and will be forced to make tradeoffs:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Does it have strong or loose ordering?&lt;/li&gt;&#xA;&lt;li&gt;Does it have idempotent put?&lt;/li&gt;&#xA;&lt;li&gt;Can we have more queues than what can fit on a single machine?&lt;/li&gt;&#xA;&lt;li&gt;Can we have more data in a queue than what can fit on a single machine?&lt;/li&gt;&#xA;&lt;li&gt;How many machines can crash before we potentially lose data?&lt;/li&gt;&#xA;&lt;li&gt;Can it tolerate net-splits?&lt;/li&gt;&#xA;&lt;li&gt;Can it automatically reconcile data when a net-split is fixed?&lt;/li&gt;&#xA;&lt;li&gt;Can it guarantee delivery when clients can crash?&lt;/li&gt;&#xA;&lt;li&gt;Can it guarantee that the same message is not delivered more than once?&lt;/li&gt;&#xA;&lt;li&gt;Can a node crash at any given point, come back up, and not send out junk?&lt;/li&gt;&#xA;&lt;li&gt;Can you add nodes to, or remove nodes from, a running cluster without down time?&lt;/li&gt;&#xA;&lt;li&gt;Can you upgrade nodes in a running cluster without down time?&lt;/li&gt;&#xA;&lt;li&gt;Can it run without problems on heterogeneous servers?&lt;/li&gt;&#xA;&lt;li&gt;Can you “stick” queues to a group of servers? (example: “these queues are only allowed in the european datacenter”)&lt;/li&gt;&#xA;&lt;li&gt;Can it make sure to put data replicas in at least two datacenters, if so available?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I have no illusion that any implementation will be able to say “yes” to all of that. I am merely interested in hearing about the various implementations; how they work, what tradeoffs they have made and perhaps why they decided on their particular set of tradeoffs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also if there are any challenges that I may have missed in the above list.&lt;/p&gt;&#xA;" OwnerUserId="6998" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-11-07T15:38:01.167" LastActivityDate="2010-11-07T15:38:01.167" Title="What are the solutions to the Distributed Queue problem?" Tags="&lt;distributed-computing&gt;&lt;message-queue&gt;" AnswerCount="1" />
  <row Id="16639" PostTypeId="2" ParentId="11425" CreationDate="2010-11-03T22:13:40.643" Score="5" ViewCount="" Body="&lt;p&gt;Well, this is how I ended up being a programmer.  Prior to programming, I was a professional photographer.  I love taking photos, but after awhile the business side of it all sucked my enthusiasm and creativity away.  I started to realize that I was getting burnt out on taking pictures.  A great opportunity came up to start afresh and I did, getting into programming, which, 7 years on I love dearly.  I now look forward to coming to work each day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And my photography is more fun as well because its on my terms.  If I want to play around, that's fine.  If I want to be serious with it that's fine too.  If I don't want to take photos then I don't.  Point being, its become my creative outlet for when I need and want it rather than something I have to do every day with all the trappings of a daily job.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck with your search for the answers :)&lt;/p&gt;&#xA;" OwnerUserId="5319" LastActivityDate="2010-11-03T22:13:40.643" CommentCount="1" />
  <row Id="16640" PostTypeId="2" ParentId="16634" CreationDate="2010-11-03T22:20:22.713" Score="1" ViewCount="" Body="&lt;p&gt;There is no one &quot;best&quot;. If you want to maximize portability, you can only use three values: EXIT_SUCCESS, EXIT_FALURE, and 0 (and 0 and EXIT_SUCCESS mean the same thing). If you don't mind losing some portability, it's often useful to return various other values to indicate why something failed, or (in some cases) return a non-zero value even in case of success to indicate things like how many of X it found, or carry the result of a calculation, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As such, you have a choice between portability (but mostly to systems you probably don't care about, chiefly VMS) and functionality on a slightly reduced set of systems. You have to decide which is more important to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: No, EXIT_SUCCESS does &lt;em&gt;not&lt;/em&gt; always equal zero -- but (at least as far as the standard cares) the two mean the same thing. There was at least one compiler on VMS, however, that defined EXIT_SUCCESS to a non-zero value (VMS normally interpreted even numbers as failure and odd numbers as success, so EXIT_SUCCESS was defined to the proper odd number, and 0 was treated specially, so the system got an odd number when/if you returned it).&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-03T22:20:22.713" />
  <row Id="16641" PostTypeId="2" ParentId="14580" CreationDate="2010-11-03T22:24:49.647" Score="0" ViewCount="" Body="&lt;p&gt;I have decided to go ahead with the book by Marmanis. Will update with my impressions of it later this week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="4378" LastActivityDate="2010-11-03T22:24:49.647" />
  <row Id="16642" PostTypeId="2" ParentId="16617" CreationDate="2010-11-03T22:38:00.347" Score="1" ViewCount="" Body="&lt;p&gt;Besides simulating the environment, I would also stress the application by supplying loads of input, like artificial events, huge erroneous data or ultra stupid user actions :) Because these affects can also make the system resume more and more cpu, and may show you unexpected behaviour like unreleased resources, simultaneous instances (if the requirement is keeping just one running instance), etc...&lt;/p&gt;&#xA;" OwnerUserId="3049" LastEditorUserId="3049" LastEditorDisplayName="" LastEditDate="2010-11-04T08:14:51.527" LastActivityDate="2010-11-04T08:14:51.527" />
  <row Id="16643" PostTypeId="2" ParentId="16617" CreationDate="2010-11-03T22:57:11.357" Score="0" ViewCount="" Body="&lt;p&gt;Have you considered using &lt;a href=&quot;https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&amp;amp;cp=1-11-126-17%5E8_4000_100__&quot; rel=&quot;nofollow&quot;&gt;LoadRunner&lt;/a&gt;? When I worked on Government projects, we used &lt;a href=&quot;https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&amp;amp;cp=1-11-126-17%5E8_4000_100__&quot; rel=&quot;nofollow&quot;&gt;LoadRunner&lt;/a&gt; to baseline builds and determine their performance. It works really well.&lt;/p&gt;&#xA;" OwnerUserId="4459" LastEditorUserId="4459" LastEditorDisplayName="" LastEditDate="2011-03-11T16:16:52.630" LastActivityDate="2011-03-11T16:16:52.630" />
  <row Id="16645" PostTypeId="2" ParentId="10675" CreationDate="2010-11-03T23:46:32.150" Score="1" ViewCount="" Body="&lt;h1&gt;Scheme, C, C++&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I will be biased and use the model my university currently uses for its core Computer Science curriculum. I was against it during my first year but in my later years I am grateful for it. The model is based on not requiring any programming experience but requiring the ability to learn.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scheme&lt;/strong&gt;&lt;br&gt;&#xA;We are you are first learning programming, the less magic, the better. The teaching language of Scheme presents a clear and reasonable definition of a language, a really small set of axioms (the &quot;magic&quot;) that you can build and expand on. Anyone who can understand functions in math can trace and reason Scheme programs. Starting with Scheme provides a clean yet powerful way to think about computation without worrying about the language specific details.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;C&lt;/strong&gt;&lt;br&gt;&#xA;Moving from Scheme to C is a drastic one but allows you learn about the very important mapping of high level languages to low level languages. Learning the memory model (pointers, heap, stack etc.) and how programs are compiled and run, how pointers, stack and the heap work are essential skills. Through this low level understanding you can begin to analyze programs on a higher level (Big O). You can begin rolling your own abstract data types, playing with different implementations (say a simple hash table vs. a binary tree for a set).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;C++&lt;/strong&gt;&lt;br&gt;&#xA;Through learning C and Scheme we begin to see different paradigms of programming languages and how they can apply to different problems. Now you can approach the scariest aspects of programming: choice and trade offs. Programming language choice can affect performance, readability, maintainability, robustness etc. For solving problems bigger than things you can hold in your head, this choice is great but also dangerous. C++ tries to make as few choices for the programmer as possible. Through learning C++ you will learn how to make these trade offs and choices yourself to solve your problems.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;You might not use any of these languages in industry or ever touch them again, but the process of learning them helps you understand other languages you will use. Another aspect is you learn the tools around a specific language. Running gcc through the command line, learning Vim, stepping through a program using GDB, creating Make files, checking in code using SVN, writing shell scripts to automate testing etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mind you the core curriculum also has other courses (computer architecture, data structures and algorithms, compilers,  operating systems etc.). So just merely learning these languages isn't enough to be proficient at programming.&lt;/p&gt;&#xA;" OwnerUserId="6926" LastActivityDate="2010-11-03T23:46:32.150" CommunityOwnedDate="2011-01-31T13:41:33.057" />
  <row Id="16646" PostTypeId="1" CreationDate="2010-11-03T23:52:47.617" Score="3" ViewCount="187" Body="&lt;p&gt;I've always been of the mindset that properties (ie, their set/get operations) should be fast/immediate and failure-free. You should never have to try/catch around getting or setting a property.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I'm looking at some ways to apply role-based security on the properties of some objects. For instance an Employee.Salary property. Some of the solutions I've run across that others have tried (one in particular is the AOP example &lt;a href=&quot;http://www.sharpcrafters.com/solutions/security#secure-fields&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;) involve throwing an exception if the accessor doesn't have the right permissions - but this goes against a personal rule that I've had for a long time now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I ask: am I wrong? Have things changed? Has it been accepted that properties should be able to throw exceptions?&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-04T13:04:33.127" Title="Is throwing an exception from a property bad form?" Tags="&lt;best-practices&gt;&lt;.net&gt;&lt;exceptions&gt;" AnswerCount="6" />
  <row Id="16647" PostTypeId="1" AcceptedAnswerId="16685" CreationDate="2010-11-03T23:52:50.400" Score="5" ViewCount="216" Body="&lt;p&gt;A couple of friends at work an me are going to set up a little startup / create our own software, probably moonlighting at first, since we cant yet afford to quit our day jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Neither of us has have this experience, we've all worked for other companies before, where a set of guidelines are set, and I think this is the time to establish good practices to follow (like avoiding meeting-itis).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For people that have gone this way, what piece(s) of advice would you give us?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking more for the technical side of things, things such as:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Is it worth to have some kind of&#xA;build server or is that going to far&#xA;ahead? &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Would you do extensive TDD or do you&#xA;think it would be too much overhead&#xA;for a small team that is not too&#xA;experienced with it?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But wouldn't mind to listen to the management side of things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks:&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;The project is a web application done in ASP.NET MVC, I'm thinking of using Mercurial and BitBucket or Kiln + FogBugz or some other online project tracking tool, since we are going to be working remotely.&lt;/p&gt;&#xA;" OwnerUserId="693" LastEditorUserId="3382" LastEditorDisplayName="" LastEditDate="2010-11-04T01:05:48.703" LastActivityDate="2010-11-04T01:05:48.703" Title="Good practices every startup should follow" Tags="&lt;experience&gt;&lt;tools&gt;&lt;advice&gt;&lt;startups&gt;&lt;good-practices&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="3" />
  <row Id="16648" PostTypeId="2" ParentId="16528" CreationDate="2010-11-04T00:01:20.697" Score="2" ViewCount="" Body="&lt;p&gt;I use the first syntax, almost without exception. Because &lt;em&gt;it cannot be misinterpreted&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Don't make me think&quot; doesn't just apply to user-interfaces, y'all ;-)&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-04T00:01:20.697" CommentCount="2" />
  <row Id="16649" PostTypeId="2" ParentId="16459" CreationDate="2010-11-04T00:03:21.130" Score="1" ViewCount="" Body="&lt;p&gt;assembly language and/or C&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-04T00:03:21.130" />
  <row Id="16650" PostTypeId="2" ParentId="16471" CreationDate="2010-11-04T00:05:27.063" Score="2" ViewCount="" Body="&lt;p&gt;&lt;code&gt;deadlines are flying past quickly without the projects getting done in time.&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think a big issue is who exactly is setting these unrealistic deadlines? Is it your boss, is it an analyst, project managers, yourself? If it is you, give yourself much looser time restraints. If it is not, ask the offender what exactly they are pulling these dates from - how are they calculating tasks getting done? Do they realize that you are one and not nine people?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I strongly discourage unpaid overtime of more than one or two hours a week. It just encourages your boss to mistreat you, poor planning, and can lead to burnout (not that paid overtime doesn't). If there is too much work for one person, they should hire a second developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a tactful manner, you need to flex your muscle back toward your boss some. You are the only developer, which should carry some weight. If you get sick because of stress or other reasons, then all of the deadlines will be missed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, if you don't see the situation improving, start looking for a new job - the sooner the better.&lt;/p&gt;&#xA;" OwnerUserId="6527" LastActivityDate="2010-11-04T00:05:27.063" CommentCount="4" />
  <row Id="16651" PostTypeId="1" AcceptedAnswerId="16658" CreationDate="2010-11-04T00:07:23.293" Score="14" ViewCount="716" Body="&lt;p&gt;This is something I gave a whole lot of thought lately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am about to switch jobs. I resigned, and will be starting my new job in a couple of weeks. I won't go in the details of what made me change, but I noticed, during all the interviews I had, that there is something that troubles me. A lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had an interview in July. They were looking for a programmer to employ in an insurance company, to mantain their software and create ad-hoc solutions on demand. You can find lots of jobs like this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;During the interview, I asked some questions. Turned out that they were stuck using .Net 2.0 and there was no intention on upgrading. Besides the arguable reasons behind this decision, like the &quot;fear of bugs in new versions&quot;, as if you could trust more the code you write inside an insurance company than a programming framework used by millions of people.. but I digress. It's what the interviewer told me that is troublesome. To quote him:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;You know, it's not really about using the latest technology or writing good code. What's really interesting here is that you can learn a bunch of stuff about the &quot;insurance world&quot;, that's the added value you get here.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Someone else told me something similar during one of the interviews. &quot;Here you get to learn about warehouse management, document storage and such, we write software to do that, but getting to the result is the only important thing&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got similar statements in other interviews. After all of this, I came to a simple conclusion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I don't give a f###ing s##t about insurances, about warehouses, documents or whatever else. I care about programming. That's not just a job to me. That's WHO I AM. And I don't care about customers happiness because of them. They can go screw themselves. I do care about customer happiness because a happy customer is a part, and just a small part, of being a professional, and it tells me that one aspect of my job was done right.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now what I want to ask to you, fellow programmers, am I just crazy, or maybe I would be more successful working not for crybabies customers, but maybe doing some R&amp;amp;D or working on opensource projects... I don't really know. I love this profession so much I can't stand having it treated just like a tool to realize something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are artists. Our profession is a form of art. What do you think about it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;. Maybe something could be misinterpreted so I'll clarify. When I program something, I take interest in the matter at hand. If I'm programming a WMS, I dig into the warehouse management stuff, etc. And the knowledge I get will be useful if one day I'll be doing something similar. But what I mean is, I don't have any real personal interest in warehouses. Knowing about them doesn't make me a better programmer. Learning a new language, or architectural patterns, that's what makes me better. This was just to clarify.&lt;/p&gt;&#xA;" OwnerUserId="3426" LastEditorUserId="3426" LastEditorDisplayName="" LastEditDate="2010-11-05T23:37:18.407" LastActivityDate="2011-05-04T17:35:11.673" Title="Programming, for the sake of programming. Is there something wrong?" Tags="&lt;programming&gt;" AnswerCount="14" CommentCount="5" FavoriteCount="7" />
  <row Id="16652" PostTypeId="2" ParentId="16471" CreationDate="2010-11-04T00:09:02.637" Score="2" ViewCount="" Body="&lt;p&gt;take your list of 9 projects, break down the work into task-sized bites, estimate how long each bite will take, and add them up. Then present this to your boss &lt;em&gt;as a question of priorities and request for help&lt;/em&gt; [no whining]. For example,&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;Hey boss, I was trying to figure out how to get all of my assignments done on time and the math just isn't working out. Can you help me? Which of these projects is the top priority? How much flexibility is there in these deadlines? If I focus only on project X I might can get it done by the deadline, but not the other 8. I'm already working N hours of overtime, what can we do here?&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's not just your problem, it's his/her problem, too. Which makes it a company problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Caveat: the boss's response will tell you everything you need to know about how serious the deadlines are, and how much they value/respect you. Be prepared.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-04T00:09:02.637" CommentCount="1" />
  <row Id="16653" PostTypeId="2" ParentId="16651" CreationDate="2010-11-04T00:12:18.627" Score="6" ViewCount="" Body="&lt;p&gt;You can write code for art's sake, but I write code to satisfy a business need.  The more detailed knowledge I have about the business in question, the better solution I'll be able to design/code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're way off base on this one, IMHO. (I fully expect to get flamed for this one...)&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-11-04T00:12:18.627" CommentCount="1" />
  <row Id="16654" PostTypeId="1" CreationDate="2010-11-04T00:12:46.017" Score="1" ViewCount="230" Body="&lt;p&gt;Have you ever let your coding standards slip to meet deadlines or save time?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll start with a trivial example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We came up with a coding standard at work around which brackets/formatting to use and so on. I ignore it and use the auto-format tool in netbeans.&lt;/p&gt;&#xA;" OwnerUserId="5678" LastActivityDate="2010-11-06T21:01:24.573" Title="What corners have have you cut at work?" Tags="&lt;productivity&gt;&lt;code-quality&gt;" AnswerCount="5" CommentCount="2" />
  <row Id="16655" PostTypeId="2" ParentId="16651" CreationDate="2010-11-04T00:14:59.447" Score="6" ViewCount="" Body="&lt;p&gt;For most people, software development is a means to an end - not a form of art, as you put it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason for this: the software itself is usually a means to an end as well, unlike most art forms that we know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should remember why people build software.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day, a piece of software that does all these wonderful things is only as good as how it helps its users in one way or another.&lt;/p&gt;&#xA;" OwnerUserId="6659" LastActivityDate="2010-11-04T00:14:59.447" CommentCount="1" />
  <row Id="16656" PostTypeId="2" ParentId="16651" CreationDate="2010-11-04T00:17:42.747" Score="5" ViewCount="" Body="&lt;p&gt;Well I guess you just haven't found a product or market that really compels you. I think that in the end, the technical side of programming is very fun, but what's the point in doing something if nobody uses it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to find a problem that you care, and then code something that fixes it, there has to be some sort of resolution or mission of what you want to do if you really want to fill satisfaction from your job, other wise its just technical demos and perhaps the little tiny satisfaction/gratification of fixing a bug, but not something truly filling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an example take Jeff and Joel, founders of this network of pages we love. They decided to do it because they wanted to make the internet a better place :). At first just for programmers, but then for more and more people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In conclusion, while I think the technical side of programming is quite fun and yes, its an art of its own, it will not be satisfying unless you are proud of it and what it does, and part of being proud of it is knowing that it actually HELPS other people, directly or indirectly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess you could translate this to the art metaphor as being an artist that will never show any of its pieces to anybody, just paints and stores them forever...I don't think he could A) make a living, or B) feel really proud and satisfied about them&lt;/p&gt;&#xA;" OwnerUserId="693" LastActivityDate="2010-11-04T00:17:42.747" CommentCount="3" />
  <row Id="16657" PostTypeId="2" ParentId="11425" CreationDate="2010-11-04T00:19:14.637" Score="1" ViewCount="" Body="&lt;p&gt;Isn't &quot;love the idea, but hate the reality&quot; more commonly known as &quot;want the benefits, without the hard work&quot;?  I think that this sentiment bubbles up in many aspects of life: not just in our work lives, and not just in programming, but in everything we do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not saying this a case of &quot;suck it up and get it done.&quot;  Maybe you would be much happier somewhere else.  Maybe a job with more physical activity and more human contact will make a huge difference for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think a little bit about what you want from life.  Think of yourself as an old man, sitting out on your back porch, reminiscing about what you did with the 2010-2020 decade.  Will your future self understand and respect and appreciate the decisions you made, or will you have some regrets?&lt;/p&gt;&#xA;" OwnerUserId="6677" LastActivityDate="2010-11-04T00:19:14.637" CommentCount="1" />
  <row Id="16658" PostTypeId="2" ParentId="16651" CreationDate="2010-11-04T00:22:16.270" Score="11" ViewCount="" Body="&lt;p&gt;There's a fine line, as far as I'm concerned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There does need to be a focus on code quality, because the attitude of &quot;We don't care about standards, just get it done yesterday&quot; is a slippery slope that (ironically) ends up costing you lots of time in the long run. I've seen some pretty painful evidence of that; the codebase goes stale quickly, and it starts taking a very long time to add even minor features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The trouble is that the reverse can also be destructive. If you take the attitude of &quot;I don't give a flicking flick about the customer, I just want beautiful code&quot;, well, there are a few problems there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, that's the attitude that leads to perpetually polishing code until it shines (and probably, until your competition has long passed you). &lt;a href=&quot;http://www.joelonsoftware.com/items/2009/09/23.html&quot; rel=&quot;nofollow&quot;&gt;Shipping is a feature&lt;/a&gt;, as many wise men have already said.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, if you're concerned with the technical purity of the project rather than its usefulness, you tend to make user-facing concessions for the sake of architecture. It's not in and of itself a bad thing sometimes, but I've rarely seen a team stop at just one. Frequently the conversation of &quot;Well, we'd like to add that thing you want, but it doesn't fit our software design&quot; ends either with a dissatisfied client, or your team deciding that they should take the hard-line stance more often (which then leads to dissatisfied clients).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Third, the logical conclusion of that line of reasoning is that you should spend all your coding time hacking Elisp (or joining the Eclipse team, or what have you) to make your editor better. It's a good thing to spend SOME time on, but that probably shouldn't (and can't) be your whole job. Not least because if you don't spend time using the tools for anything other than improving them, you lose perspective on how they're actually used and therefore what constitutes &quot;an improvement&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best approach would probably be to find a problem you have in a non-programming domain, and try to solve that with a piece of software. Whether professionally, or in your spare time. It's the path I'm taking, and it's keeping me sane so far. YMMV.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-11-04T01:14:01.400" LastActivityDate="2010-11-04T01:14:01.400" CommentCount="1" />
  <row Id="16659" PostTypeId="2" ParentId="16646" CreationDate="2010-11-04T00:24:08.177" Score="2" ViewCount="" Body="&lt;p&gt;I consider it to mostly be bad form but even Microsoft recommends using exceptions sometimes.&#xA;A good example is the abstract property &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.io.stream.length.aspx&quot; rel=&quot;nofollow&quot;&gt;Stream.Length&lt;/a&gt;. As guidelines go I would be more concerned with avoiding side effects on getters and limiting side effects on setters.&lt;/p&gt;&#xA;" OwnerUserId="712" LastEditorUserId="712" LastEditorDisplayName="" LastEditDate="2010-11-04T12:44:33.050" LastActivityDate="2010-11-04T12:44:33.050" />
  <row Id="16660" PostTypeId="2" ParentId="10675" CreationDate="2010-11-04T00:25:50.760" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Start with C or C++.&lt;/strong&gt;  Strongly typed, and able to give you experience in both procedural and OO programming, these will give you a strong foundation.  After that, &lt;strong&gt;pile on as many languages as you can, in whatever order amuses you&lt;/strong&gt;, going for the greatest variety possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Far more valuable than skill in any particular list of programming languages is a feel for language design.&lt;/em&gt;  The only way I've found to learn this is to learn many different languages, taking the time to understand the differences between each and how it effects their use and behavior, and spending lots of time talking to more experienced coders willing to bounce ideas around with you.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastEditorUserId="5516" LastEditorDisplayName="" LastEditDate="2011-02-01T05:27:52.490" LastActivityDate="2011-02-01T05:27:52.490" CommunityOwnedDate="2011-01-31T13:41:33.057" CommentCount="3" />
  <row Id="16661" PostTypeId="2" ParentId="10675" CreationDate="2010-11-04T00:27:13.440" Score="1" ViewCount="" Body="&lt;h1&gt;Assembly Language, C, SQL, C#&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I know, boring and old-skool. And the entire question ignores the really hard part of programming, which is problem-solving, domain modeling, and algorithm construction. But here's why:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;you can't fake your way through assembly language; you either get it or you don't. the compiler won't save you, there's no framework or library overhead, and you can't hide from the machine architecture; it is pure programming (at the beginner add-two-numbers level)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;after you've written a few assembly-language programs of more than a few hundred lines, pointers and memory management are no longer mysterious, and you should have started to notice patterns in the code (if, switch, array, loops, etc.). C brings those patterns out into the sunlight and lets them shine. The standard library is useful without being immense, but don't bother with macros/templates/etc. at this stage.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;now jump into databases with SQL. Don't go overboard with stored procedures, just get the basics of tables and queries.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;after you've written a few C programs of more than a few hundred lines, pointers, structures, and memory management are second nature, and procedural constructs are old friends. You will begin to notice higher-order patterns: these functions always go with this data structure, this part of the code is just like that part of the code except for methods X, Y, and Z, and so on. Add to this your grasp of relational data and now you're ready for an object-oriented language. With a massive framework and generally obtuse documentation. Welcome to the real world! Explore GUIs, write desktop apps, write web sites, write web services, write whatever you like. Go get a job if you're so inclined.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Are you now a programming Jedi? A code ninja? &lt;em&gt;No&lt;/em&gt;, now you're merely competent. But you have a solid foundation to stand on to explore the shiny new fun stuff.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-04T00:27:13.440" CommunityOwnedDate="2011-01-31T13:41:33.057" />
  <row Id="16662" PostTypeId="2" ParentId="16436" CreationDate="2010-11-04T00:28:31.880" Score="1" ViewCount="" Body="&lt;h1&gt;When can I start?&lt;/h1&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-04T00:28:31.880" CommunityOwnedDate="2011-01-28T12:13:01.007" CommentCount="4" />
  <row Id="16663" PostTypeId="2" ParentId="16301" CreationDate="2010-11-04T00:31:00.113" Score="1" ViewCount="" Body="&lt;p&gt;Write a lot of code in your spare time.  Just throwaway projects, if you like.  Little apps.  Pay attention to what works, and what holds you back.  Look for better ways of doing the things that hold you back the most.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write the code rapidly for one project and without too much consideration for design.  Notice what works about this, and what doesn't.  Start another project, and use more up-front planning, design patterns and abstractions.  Code as slowly and elegantly.  As you can notice what works about this approach, and what doesn't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Repeat all this dozens and hundreds of times.  At the end, you will have learned a bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh yeah and read the source code to (good) open source projects. :-)&lt;/p&gt;&#xA;" OwnerUserId="6677" LastActivityDate="2010-11-04T00:31:00.113" CommunityOwnedDate="2011-01-23T10:19:44.323" />
  <row Id="16664" PostTypeId="2" ParentId="16390" CreationDate="2010-11-04T00:31:01.360" Score="0" ViewCount="" Body="&lt;p&gt;C++ grafted object-oriented programming onto C [insert Frankenstein's Monster joke here]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C is a subset of C++&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-04T00:31:01.360" CommentCount="2" />
  <row Id="16665" PostTypeId="2" ParentId="16373" CreationDate="2010-11-04T00:33:15.163" Score="0" ViewCount="" Body="&lt;p&gt;Mere programmers hate the blurry gray world of business. &lt;em&gt;Developers&lt;/em&gt; improve it. ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Automating a mess just creates an automated mess; if you're not going to optimize the process, why bother writing the software?&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-04T00:33:15.163" />
  <row Id="16666" PostTypeId="2" ParentId="13470" CreationDate="2010-11-04T00:33:23.250" Score="2" ViewCount="" Body="&lt;p&gt;Write an e-mail to your boss telling him how their revolving door environment sucks, how unrealistic deadlines make him look foolish, and then get fired for insubordination.&lt;/p&gt;&#xA;" OwnerUserId="6980" LastEditorUserId="6980" LastEditorDisplayName="" LastEditDate="2010-11-04T07:48:40.193" LastActivityDate="2010-11-04T07:48:40.193" CommentCount="2" />
  <row Id="16667" PostTypeId="2" ParentId="16365" CreationDate="2010-11-04T00:34:06.083" Score="2" ViewCount="" Body="&lt;p&gt;&quot;Can I have your Aeron chair?&quot;&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-04T00:34:06.083" CommentCount="5" />
  <row Id="16668" PostTypeId="2" ParentId="16651" CreationDate="2010-11-04T00:34:33.557" Score="13" ViewCount="" Body="&lt;p&gt;Many years ago, when interviewing for a job doing CNC machine tool software - I remember my future boss pointing out to me repeatedly in the interview: &lt;em&gt;&quot;We grind tools. The job of the software is to grind tools.&quot;&lt;/em&gt; etc, etc etc. I didn't think much of it at the time - after all, I was interviewing to be a PROGRAMMER there - but then it hit me after two years of that job what he meant: the programming itself is not the point. The point of the programming in that company was simply the value it adds to the business of manufacturing machine tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I left that job after two years because there wasn't much more cool new programming to be done - only very specialized tool grinding automation work. I realised there and then what my boss was trying to do in the interview: he was trying to check for people who are interested in the mechanical engineering aspects of tool grinding, and filter out more purist Programmers (like me) who'd rather just write software for its own sake, and would move on when they realised the scope of that was limited.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Four jobs and a decade later: I've come to realise that this is what 99% of programming is about - adding value to a business. And this is why the business domain is important. Businesses need programmers to know their processes and to code for them. The main focus is on adding value - not on doing cool stuff for the sake of doing cool stuff to make programmers happy. Of course, often investing in cool new technology will help the business in the long term, and it's up to us to show them this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, I think this is something that'll be in issue an almost any commercial programming work. Some shops may be better than others, but ultimately, the focus is always on value added - and not on doing software which is cool and fun for the programmers to work on.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-04T00:34:33.557" CommentCount="6" />
  <row Id="16670" PostTypeId="2" ParentId="16646" CreationDate="2010-11-04T00:35:30.717" Score="0" ViewCount="" Body="&lt;p&gt;AFAIK, this guidance primarily comes from the thought process that properties may end up used at &lt;em&gt;design&lt;/em&gt; time. (E.g. the Text property on a TextBox) If the property tosses an exception when a designer's trying to access it, VS isn't going to have a good day. You will get a bunch of errors just trying to use the designer and for the UI designers, they won't render. It also applies to debug time as well, although what you'll see in an exception scenario is just &quot;xxx Exception&quot; and it won't clobber VS IIRC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For POCOs, it won't really do any harm, but I still shy away from doing it myself. I figure people will want to access properties more frequently, so they should normally be low cost. Properties shouldn't do the work of methods, they should just get/set some info and be done with it as a general rule.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-11-04T00:35:30.717" />
  <row Id="16671" PostTypeId="2" ParentId="16654" CreationDate="2010-11-04T00:36:04.937" Score="2" ViewCount="" Body="&lt;p&gt;There are many times that I let comments slip, and then when I get more time put them in.  It's actually a benefit since in refiguring out what I did, it gives me a better perspective on it, and sometimes I come up with better ways to do the job.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-11-04T00:36:04.937" CommentCount="2" />
  <row Id="16672" PostTypeId="2" ParentId="16436" CreationDate="2010-11-04T00:37:57.883" Score="2" ViewCount="" Body="&lt;p&gt;If it is the very end of the interview, a classic question is &quot;what are our next steps?&quot; You want to know whether to expect another interview or if they're going straight to a decision, and also roughly when. This is the note on which the conversation ends, so save it for last. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before that, don't worry too much about questions that &quot;show you care&quot; and &quot;are eager&quot;. As an interviewer, I make note of many things, but what I was asked is rarely specifically important. Ask what you want to know. If you really have no questions, say &quot;I had a number of things I wanted to find out about, but you've covered all of them, thank you!&quot; and then ask what the next steps are if you feel the interview is wrapping up. (Don't ask it if 10 minutes into a one hour interview you are asked &quot;but before I go into detail on that, is there anything you wanted to ask?&quot;)&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-04T00:37:57.883" CommunityOwnedDate="2011-01-28T12:13:01.007" />
  <row Id="16673" PostTypeId="2" ParentId="16654" CreationDate="2010-11-04T00:40:09.163" Score="2" ViewCount="" Body="&lt;p&gt;I know this is generally a big no-no in books on effective programming, but I often flip the bozo bit on some people. Didn't have negative effects so far.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-04T00:40:09.163" CommentCount="4" />
  <row Id="16674" PostTypeId="2" ParentId="16646" CreationDate="2010-11-04T00:41:23.217" Score="1" ViewCount="" Body="&lt;p&gt;The point of a property is the &lt;a href=&quot;http://en.wikipedia.org/wiki/Uniform_access_principle&quot; rel=&quot;nofollow&quot;&gt;Uniform Access Principle&lt;/a&gt;, i.e. that a value should be accessible through the same interface whether implemented by storage or computation.  If your property is throwing an exception that represents an error condition beyond the programmer's control, the kind that is supposed to be caught and handled, you are forcing your client to know that the value is obtained via computation.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I don't see any problem with using asserts or assertion-like exceptions that are meant to signal incorrect use of the API to the programmer rather than being caught and handled.  In these cases the correct answer from the API user's perspective isn't to handle the exception (thus implicitly caring about whether the value is obtained via computation or storage).  It's to fix his/her code so the object doesn't end up in an invalid state or make you fix your code so the assertion doesn't fire.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastEditorUserId="1468" LastEditorDisplayName="" LastEditDate="2010-11-04T00:54:46.590" LastActivityDate="2010-11-04T00:54:46.590" CommentCount="2" />
  <row Id="16675" PostTypeId="2" ParentId="16646" CreationDate="2010-11-04T00:42:49.910" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I know your question is specific to .NET&lt;/strong&gt;, but since C# shares some history with Java, I thought you might be interested.  I am &lt;strong&gt;not&lt;/strong&gt; in any way implying that because something is done in Java, it should be done in C#.  I know the two are very different, especially in how C# has much-improved language-level support for properties. &lt;em&gt;I am just giving some context and perspective.&lt;/em&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the &lt;a href=&quot;http://www.oracle.com/technetwork/java/javase/documentation/spec-136004.html&quot; rel=&quot;nofollow&quot;&gt;JavaBeans specification&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Constrained properties&lt;/strong&gt; Sometimes when a property change occurs some&#xA;  other bean may wish to validate the&#xA;  change and reject it if it is&#xA;  inappropriate. We refer to properties&#xA;  that undergo this kind of checking as&#xA;  constrained properties. In Java Beans,&#xA;  constrained property setter methods&#xA;  are required to support the&#xA;  PropertyVetoException. This documents&#xA;  to the users of the constrained&#xA;  property that attempted updates may be&#xA;  vetoed. So a simple constrained&#xA;  property might look like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;PropertyType getFoo();&#xA;void setFoo(PropertyType value) throws PropertyVetoException;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Take all this with a grain of salt, please.  The JavaBeans specification is old, and C# Properties are (IMO) a huge improvement over the &quot;naming convention&quot; based properties that Java has.  I'm just trying to give a little context, is all!&lt;/p&gt;&#xA;" OwnerUserId="6677" LastActivityDate="2010-11-04T00:42:49.910" CommentCount="1" />
  <row Id="16676" PostTypeId="2" ParentId="16651" CreationDate="2010-11-04T00:43:57.340" Score="3" ViewCount="" Body="&lt;p&gt;Actually, all knowledge across different domains will help you become a better programmer, because in acquiring that knowledge, you'll learn problem-solving methodologies that will help hone your skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, I wouldn't take the job with the primary reason of learning that industry, but it could be a great secondary reasoning.  This is all especially true with broad topics like warehousing or banking, where the knowledge will open up lots of opportunities.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-11-04T00:43:57.340" />
  <row Id="16677" PostTypeId="2" ParentId="16651" CreationDate="2010-11-04T00:44:40.720" Score="20" ViewCount="" Body="&lt;p&gt;&quot;We are artists. Our profession is a form of art. What do you think about it?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that's admirable, noble, and hilarious.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With all due respect, &lt;strong&gt;get over yourself&lt;/strong&gt;. Your job as a programmer is to help the business &lt;em&gt;get things done&lt;/em&gt;. I'm not saying that programming isn't an art, because it most certainly is. It is an art, a craft, an engineering discipline, and a branch of science all wrapped up in a fascinating array of shiny toys and nifty gadgets. The point of which is to &lt;em&gt;get things done&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Love the customer/user&lt;/strong&gt;. Use your superpowers to do good, to bring happiness to the masses, not just entertain yourself and impress slackers. Get excited about learning about the different industries (ok, maybe not insurance, that really is boring) because the different business-domain perspectives will make you a better programmer. Faced with ridiculous deadlines and utter tedious complexity automating some arcane banking procedures? Pull out the work-flow automation solution design you used for that manufacturing company, and suddenly all the annoying little islands of rules that crippled the bank's current system are elegant cells in a dynamically-configured production line. Only now you're making house loans instead of producing widgets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or go work in academia, where results don't matter so much ;-)&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-04T00:44:40.720" CommentCount="16" />
  <row Id="16678" PostTypeId="2" ParentId="16651" CreationDate="2010-11-04T00:47:13.147" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Knowing about them doesn't make me a&#xA;  better programmer. Learning a new&#xA;  language, or architectural patterns,&#xA;  that's what makes me better.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'm going to disagree with you here.  In becoming a better programmer, knowing the core business, and working to understand the business needs is critical.  Often what distinguishes a good or mediocre programmer from an outstanding programmer is not how clever their code is, but how much value their coding brings to the problems the organization faces. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you start out with the viewpoint that you don't care what the code is for, you just care about the code, then you are starting out with a distinct disadvantage.  Taking that approach will only lead to &lt;em&gt;disappointment and burnout&lt;/em&gt;.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't get behind the industry you will be working for then do yourself and your employer a favor, find another industry. &lt;/p&gt;&#xA;" OwnerUserId="1642" LastActivityDate="2010-11-04T00:47:13.147" CommentCount="1" />
  <row Id="16679" PostTypeId="2" ParentId="16651" CreationDate="2010-11-04T00:48:30.590" Score="7" ViewCount="" Body="&lt;p&gt;Frank Lloyd Wright was an artist. Many of his buildings are widely recognized as amazing works of art. You would not buy one because you wanted a comfortable, sturdy, easily maintained building, you would buy it because it is a work of art. If the roof leaked Wright would tell you that was the price of living in a work of art. The market for works of art is &lt;em&gt;very&lt;/em&gt; small. You can be an artist/programmer if you want to, but then you'll have to come to grips with the fact that no one will be inclined to pay you for your artistic creations. Like artists everywhere you'll have to take a day job or find a patron. If your art starts to conflict with your day job, they will likely have to fire you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most successful programmers will have some sort of domain expertise. Programming and CS counts as a domain, but if you choose to specialize in that domain, you are probably going to have get a job with one of the large firms dedicated to software or hardware. That may not be practical now, but it is something you can start working towards. Rome wasn't built in a day. Remember though, even if you get a job as a researcher with Google there are going to come decisions where you will say &quot;We must do X for reasons of artistic integrity&quot; and your employer is going to say, &quot;Thank's for the advice, but we're going to do Y for reasons of commercial viability&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the mean time, do your best to learn the problem domain your customer/employer needs you to understand, and &lt;em&gt;please&lt;/em&gt; don't be an arrogant git who acts like anything not directly related to programming is trivial.&lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-11-04T00:48:30.590" CommentCount="2" />
  <row Id="16680" PostTypeId="2" ParentId="16647" CreationDate="2010-11-04T00:50:26.923" Score="4" ViewCount="" Body="&lt;p&gt;if the team is more than just you, standards matter. They don't have to be complicated (&quot;use meaningful variable names, CamelCase, and don't break the build&quot;). TDD rocks because it works, use it. The tests you come up with also make a great foundation for demos at the drop of a hat. A build server may be overboard, it may not; start without one and see how it goes. Tracking tools likewise; can add later as needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming this product is to be sold, do some market research &lt;em&gt;now&lt;/em&gt;, to make sure you're building something that people actually want. Outline a business plan to go from zero to market, divide responsibilities and equity, and hold each other accountable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-04T00:50:26.923" CommentCount="3" />
  <row Id="16681" PostTypeId="2" ParentId="16646" CreationDate="2010-11-04T00:52:27.420" Score="3" ViewCount="" Body="&lt;p&gt;when you set the value of a property, throwing an exception on an invalid value is fine&lt;/p&gt;&#xA;&#xA;&lt;p&gt;getting the value of a property should (almost) never throw an exception&lt;/p&gt;&#xA;&#xA;&lt;p&gt;for role-based access, use different/dumber interfaces or facades; don't let people see things they can't have!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-04T00:52:27.420" />
  <row Id="16682" PostTypeId="2" ParentId="16618" CreationDate="2010-11-04T00:53:10.757" Score="21" ViewCount="" Body="&lt;h2&gt;Single Paradigm Languages&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The '90s and 2000s will be seen in hindsight as an unenlightened search for &quot;the&quot; programming paradigm.  What is becoming clearer every day is that no one paradigm is right for every problem.  More importantly, &lt;em&gt;no one paradigm is even right for every subproblem within a small project&lt;/em&gt;.  To create code that is at the same time DRY, terse and readable, you need to be able to mix and match paradigms at a fine-grained level and pick the right paradigm for the subproblem.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-04T00:53:10.757" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="5" />
  <row Id="16683" PostTypeId="2" ParentId="16608" CreationDate="2010-11-04T00:55:50.237" Score="1" ViewCount="" Body="&lt;p&gt;sounds like fun! you get to work with the new shiny stuff, figure it out, prove that it can work, then go on to the next new shiny thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;progress/regress is totally up to you. qualifications: no fear, inventiveness, ability to mentor&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-04T00:55:50.237" />
  <row Id="16684" PostTypeId="2" ParentId="16651" CreationDate="2010-11-04T00:59:25.630" Score="5" ViewCount="" Body="&lt;blockquote&gt;Now what I want to ask to you, fellow programmers, am I just crazy&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Since you asked, yes. No, I'm just kidding, you're just a bit frustrated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But why do you blame your warehouse/insurance/etc managers for your frustration?&#xA;Take a look at the world from their perspective. They are the people who LOVE doing insurance (for example). From their POV they couldn't give less SH.. about all these techno buzzwords we use daily. For your manager, it's not about innovation in software industry, it's about doing their core business SUCCESSFULLY, and if that means using old and proven codebase, then that's how it's going to be. If you don't like it, then get out of that job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software, for software sake? There is no such thing, because software is written to solve problems. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To take this further, let's say Richard Branson gives you a no-refuse super cool offer to write control software for his  SpaceShipTwo.1. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now this guy is interested in making money on commercial space flights, keeping customers happy, ship operating flawlessly, etc. Are you going to tell him to go F### himself, his customers and his spaceships as well, because &quot;YOU ARE NOT INTERESTED IN HOW SPACESHIPS DOCK ON SPACE STATIONS, YOU ONLY WANT TO WRITE SOFTWARE WITH LATEST FRAMEWORKS&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about it.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-04T00:59:25.630" CommentCount="5" />
  <row Id="16685" PostTypeId="2" ParentId="16647" CreationDate="2010-11-04T01:03:56.907" Score="7" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Release as fast as possible&lt;/strong&gt;. Chances are 90% of the code you start with will not make it past the first 6 months. So there's no point in engineering it like crazy. Code as quickly as possible to get to market, then let your users decide how to develop it further. If TDD is how you code quickest, use TDD. Otherwise, just hack it. Early-adopter users are pretty forgiving of a few bugs when your product is in beta. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Don't waste your time being sys admins.&lt;/strong&gt; You've got the right idea with hosted platforms for bug-tracking (e.g. FogBugz) and source control. Use an online document repository such as &lt;a href=&quot;http://docs.google.com&quot; rel=&quot;nofollow&quot;&gt;Google Docs&lt;/a&gt;. If you do store anything locally, use an online cloud backup service such as &lt;a href=&quot;http://www.carbonitepro.com&quot; rel=&quot;nofollow&quot;&gt;Carbonite&lt;/a&gt;. On your live environment, rent a fully managed hosting solution if you can afford it. Try to tend away from having to maintain your own servers.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Concentrate on what makes you unique&lt;/strong&gt;. If you find yourself writing code that seems like it must've been done before, use what's already there. Become experts at solving your business problem and don't get distracted by problems outside your domain.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-11-04T01:03:56.907" />
  <row Id="16686" PostTypeId="2" ParentId="13470" CreationDate="2010-11-04T01:11:30.787" Score="4" ViewCount="" Body="&lt;p&gt;Based on past experience, resignation letters should be 3 and only 3 sentences.   &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I will be resigning my position at $company.&lt;/li&gt;&#xA;&lt;li&gt;My last date of work will be $date.  &lt;/li&gt;&#xA;&lt;li&gt;My address is $address.&lt;br&gt;&#xA;3.14 Sign and date the letter. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Before you hand this letter in, have all your personal belongings out of the company, as many companies will escort you to the door and disable your access (physical and computer) immediately. Not all do, but I came close to losing several shelves of books at one place notorious for letting you know you're laid off by disabling your keycard so you can't get in to recover your stuff (it was regulated as a bank, but they took no deposits). You do not want to be at the mercy of someone who decides they want your books (or feel that they are the company's books), or red stapler or other possessions as you will no longer have any sort of recourse to recover them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reason for sentence 1: it is a resignation letter, there needs to be zero misunderstanding about what is going on. It needs to be in writing as I've worked for bosses who deny that the person quitting was quitting so as to screw with them starting elsewhere. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reason for sentence 2: I've worked for places that have backdated resignation letters and claimed you quit today - not in 2 weeks. Consequently, you may be expecting a paycheck that you'll never recieve. This is also why you date it with &quot;today's&quot; date when you sign it.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reason for sentence 3: Many people move, and if you need COBRA benefits, or 401k paperwork, there have been places I've worked at where they would deliberately and maliciously send your paperwork to an old address so that you cannot reply in the mandated 30 day period (because either it was still tied up in the post office's change of address system, or if that expired, returned to sender).    &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never &lt;em&gt;ever&lt;/em&gt; add stuff about why you are leaving. It is none of their business. If they ask, answer verbally, but never in any sort of writing.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even more importantly, never write a scathing lump of bile and anger. I've worked for one boss who made it a point to make sure that companies calling for references got a copy of those bile soaked missives. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I handed in my resignation at my current employer today and this was the extent of the resignation letter. No, I didn't have all my loot out of the office, because I didn't get notified by the recruiter before end of business yesterday. Several of the guys laughed at how short it was, but understood when I explained (in more details) several of the points why it was so short. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastEditorUserId="6591" LastEditorDisplayName="" LastEditDate="2010-12-09T03:17:13.960" LastActivityDate="2010-12-09T03:17:13.960" CommentCount="4" />
  <row Id="16687" PostTypeId="1" AcceptedAnswerId="16723" CreationDate="2010-11-04T01:16:32.717" Score="0" ViewCount="98" Body="&lt;p&gt;Situation is I have a number of in-house clients who continue to have trouble grasping the concept of defining clear requirements for a project and committing to them. Unfortunately my job situation is that I can't decline such projects, and I am often forced into situations that I can tell are doomed to scope creep (or worse) from the very start. Telling them that detailed requirements are vital and why we need them (using examples of past troubled projects due to this) have not helped. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am looking for techniques, tips, words, etc that you might use to motivate or illuminate clients in such situations to the necessity of requirements,setting milestones, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am only a developer, and not a manager.&lt;/p&gt;&#xA;" OwnerUserId="6518" LastActivityDate="2010-11-20T14:39:15.297" Title="How do you get a client to understand the importance of a project lifecycle?" Tags="&lt;management&gt;&lt;project&gt;&lt;requirements&gt;" AnswerCount="3" />
  <row Id="16688" PostTypeId="2" ParentId="16436" CreationDate="2010-11-04T01:16:53.903" Score="0" ViewCount="" Body="&lt;p&gt;I haven't interviewed lately, but a couple of questions I am sure I would now ask are:&#xA;    Do you practice test driven development?&#xA;If not: &#xA;    Do your developers write automated tests for your code?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I would probably get more details such as the types of automated testing they do and the tools they use.&lt;/p&gt;&#xA;" OwnerUserId="4949" LastActivityDate="2010-11-04T01:16:53.903" CommunityOwnedDate="2011-01-28T12:13:01.007" />
  <row Id="16689" PostTypeId="1" AcceptedAnswerId="16703" CreationDate="2010-11-04T01:17:24.790" Score="15" ViewCount="742" Body="&lt;p&gt;Today, my manager &lt;strong&gt;&lt;em&gt;told&lt;/em&gt;&lt;/strong&gt; me that I must work over time to make up for a lack of planning and project management. Instead of incentivizing this unpaid mandatory overtime, my manager has made it clear I have no choice in the matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't a single project. We currently have a dozen projects all on the go at one time, and I simply can't get them all done. Therefore, I must work overtime so we don't have to push deadlines.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is this a sign of an ignorant or disrespectful manager, or simply an inexperienced one?&lt;/li&gt;&#xA;&lt;li&gt;I'm in this position because of a lack of planning and project management (I think). How might I avoid this in the future? I'm no Project Manager, it isn't my strength.&lt;/li&gt;&#xA;&lt;li&gt;What are good ways to get an employee to work overtime if you can't directly pay them? Good incentives, etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;From what I hear, gaining your employee's respect is the single best way to get your employees to work over time, although you should never make a habit of it.&lt;/p&gt;&#xA;" OwnerUserId="3382" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-12-13T23:18:41.830" LastActivityDate="2010-12-14T04:33:48.733" Title="What causes overtime and how can it be avoided?" Tags="&lt;career-advice&gt;" AnswerCount="16" CommentCount="11" FavoriteCount="4" />
  <row Id="16690" PostTypeId="2" ParentId="16595" CreationDate="2010-11-04T01:17:27.757" Score="0" ViewCount="" Body="&lt;p&gt;I take a break by moving to the kitchen, then opening the refrigerator, then close it, then go back to computer. It happens when I'm mind-stuck&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-11-04T01:17:27.757" />
  <row Id="16692" PostTypeId="2" ParentId="16595" CreationDate="2010-11-04T01:24:36.197" Score="1" ViewCount="" Body="&lt;p&gt;If you're really stuck, sometimes instead of &lt;em&gt;taking a break&lt;/em&gt;, you can release your rage and &lt;em&gt;break a take&lt;/em&gt;, like the teeth of the annoying co-worker who is distracting you by babbling loudly on the phone to all of his living relatives back in the hole he crawled out from and into the urban areas.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-04T01:24:36.197" />
  <row Id="16693" PostTypeId="2" ParentId="16689" CreationDate="2010-11-04T01:25:20.263" Score="13" ViewCount="" Body="&lt;p&gt;You do have a choice in the matter - you can leave if it's not worth it !&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer the question: If you had promised a certain project by a certain date, and it is running late even though there were no forces outside your control why it may be late - then perhaps said manager may have a point. That is about the only reason I can think of that overtime could be 'expected' since its just about making good on a promise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any other reason and it sounds like the manager is on a power trip. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;As a side question, what are good ways to get an employee to work overtime if you can't directly pay them?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Gain respect, and people will do things for you and actually enjoy it.&lt;/p&gt;&#xA;" OwnerUserId="691" LastEditorUserId="691" LastEditorDisplayName="" LastEditDate="2010-11-04T01:34:28.243" LastActivityDate="2010-11-04T01:34:28.243" CommentCount="1" />
  <row Id="16694" PostTypeId="2" ParentId="16141" CreationDate="2010-11-04T01:27:21.960" Score="2" ViewCount="" Body="&lt;p&gt;Pro: There are no indentation/curly-brace-placement holy wars in the Python world as far as I know. Making this decision on behalf of developers has probably saved some pain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Con: Anonymous functions are limited to one line. Sounds ok, but I frequently find myself writing up multi-line &lt;code&gt;lambda&lt;/code&gt;s in Scheme (mostly to feed to &lt;code&gt;map&lt;/code&gt; or &lt;code&gt;apply&lt;/code&gt; in exactly one place, so it wouldn't make sense to declare separately).&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-04T01:27:21.960" CommentCount="4" />
  <row Id="16695" PostTypeId="2" ParentId="16689" CreationDate="2010-11-04T01:29:32.393" Score="2" ViewCount="" Body="&lt;blockquote&gt;Is this a sign of an ignorant manager or just a disrespectful one?&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's a sign of an ignorant, disrespectful asshole who is pushing your limits (and probably other developers too) to see how far he can abuse you for his own interest (promotion in the company, salary bonus..). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either say no, or leave the company. Oh, and make sure you leave a letter for the upper mgmt. (the guys above your mgr.) explaining why exactly you left.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-04T01:29:32.393" CommentCount="5" />
  <row Id="16696" PostTypeId="2" ParentId="16471" CreationDate="2010-11-04T01:34:04.153" Score="2" ViewCount="" Body="&lt;p&gt;I'd encourage you to take a step back and take an impartial look at the situation. You seem very frustrated and that'll hinder your ability to see the best way forwards until you can manage to put it aside.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's very common for bosses to push more work than can be done in a work week onto 1 person. I recommend you establish a clear boundary along the lines of &quot;Hey boss, my weekly workload is currently much higher than can be achieved in a work week. If we continue as we are now, a good chunk of this isn't going to get done. Which work items would you like me to prioriritize, and which ones are being shelved?'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have the time estimates you've provided to back your case up. Just list out all of your projects, put the total time estimate next to each one, then put the deadline next to that. Block it out into work-weeks, and see which projects you could meet by their deadlines, and which ones are beyond saving.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EMAIL this to your boss. Remain impartial. Don't threaten. Draw everything to the 'what's best for the business and clients' perspective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As others have said, a few hours of overtime in a work week is reasonable if you're after a promotion or the company is in a crunch period. This goes hand-in-hand with being allowed to head home a bit early if you're in a quiet period. Tit-for-tat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Determine how much overtime you would actually be willing to work if you were being paid for it (maybe 5 hours a week? Maybe 10?). If the subject of overtime is discussed, you can give this as a concession to your boss, while still retaining a limit that you're comfortable with. You should absolutely be paid for this, but in return it's something you absolutely have to agree ahead of time with your manager. In writing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If all of this genuinely does fall on deaf ears and everything stays screwed after a few weeks, then you have your correspondance in email with a clear trail showing that you tried to resolve the situation and that your boss didn't respond. If you reach this point you can leave your position without looking immature or unprofessional. If you leave before going through the steps above, it would look like an inability on your part to properly handle the situation, than a reflection on your boss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;tl;dr take a step back and deal with the whole thing impartially.&lt;/p&gt;&#xA;" OwnerUserId="7004" LastActivityDate="2010-11-04T01:34:04.153" CommentCount="1" />
  <row Id="16697" PostTypeId="1" CreationDate="2010-11-04T01:35:30.530" Score="1" ViewCount="317" Body="&lt;p&gt;Hi guys, I have my blog hosted at www.alphaot.com and I guess it's good enough. But problems arise when the lines of code get longer than 30 characters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your experience what's a great Wordpress theme for a developers blog to post code to?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I'm using Windows Live Writer, any extensions for code publishing you would recommend?&lt;/p&gt;&#xA;" LastActivityDate="2010-11-08T12:26:09.150" ClosedDate="2010-11-08T16:37:23.637" Title="What Wordpress theme is good for posting code?" Tags="&lt;code&gt;&lt;theme&gt;&lt;blog&gt;&lt;wordpress&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="16698" PostTypeId="2" ParentId="16618" CreationDate="2010-11-04T01:35:35.193" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Shared ownership&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it is bad because you loose information that is pertinent to get it, that's it, the owner of the object. Here is a try to an example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Say you have a class with some members, say a list&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class MyClass&#xA;{&#xA;   list&amp;lt;SomeObject&amp;gt; list;&#xA;};&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;now you pass the pointer of one of those object to another class, say something about GUI that is updated to the user. Now, if you have to delete the list, say to recreate the object because they are polymorphic or something, there will be a reference to an object that is no longer valid in the GUI, but, since you have shared ownership, that object will still look valid to the GUI object and be shown to the user, which will probably not detect that the change did not take place correctly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now if we look at the other extreme, normal pointer, you don't have that problem since when the list get deleted, the program will crash when trying to show the thing to the user, which is bad if in production, but, in my view, better than having incorrect data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, sometime you might not care, say in the example of a function that do calculation on the reference and return the result: you might care only about the result after the calculation and if someone delete the pointer while doing the calculation it will crash while the shared ownership strategy will work since you wanted the calculation on the old data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The solution, I think, is to have way to differentiate the usage (encode it in the type if you will) depending on the situation. So, in the case of the GUI, you would maybe want the pointer in the GUI to be updated automatically with the new reference. In the case of the calculation one you would want a sort of copy on delete (well, keep on delete, that's it, shared ownership). Now you could also have both situation with the same SomeObject reference and that would complicate things a little but I think it can be done.&lt;/p&gt;&#xA;" OwnerUserId="3063" LastActivityDate="2010-11-04T01:35:35.193" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="3" />
  <row Id="16699" PostTypeId="2" ParentId="16687" CreationDate="2010-11-04T01:37:27.643" Score="1" ViewCount="" Body="&lt;p&gt;Here's a tip that usually works - if in the middle of the implementation they come up with &quot;yet another feature&quot;, you should put on a straight face and require that contract, delivery date, payment be updated to reflect the new feature &quot;cost of implementation&quot;. After a few of these, you should be noticing a sharp decline in a number of feature creeps.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-04T01:37:27.643" CommentCount="2" />
  <row Id="16700" PostTypeId="2" ParentId="16651" CreationDate="2010-11-04T01:37:54.540" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;You know, it's not really about using&#xA;  the latest technology or writing good&#xA;  code. What's really interesting here&#xA;  is that you can learn a bunch of stuff&#xA;  about the &quot;insurance world&quot;, that's&#xA;  the added value you get here.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That honestly that sounds a bit like &lt;a href=&quot;http://en.wikipedia.org/wiki/Cognitive_dissonance1.2.&quot; rel=&quot;nofollow&quot;&gt;Cognitive dissonance&lt;/a&gt;. My guess is he's not growing very much anymore (being stuck in old versions of tools can do that), and he is learning about insurance stuff so &lt;em&gt;boink&lt;/em&gt;* that must be why he loves his job. Its not because his skillset is diminishing and he's not getting better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me there's nothing wrong and if indeed its really good that you're always trying to get better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as getting better includes at least&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Being able to do things you couldn't before&lt;/li&gt;&#xA;&lt;li&gt;Being able to resolve issues faster&lt;/li&gt;&#xA;&lt;li&gt;Getting better at not breaking stuff that worked.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;sub&gt;*&lt;em&gt;boink&lt;/em&gt; is the sound of congnitive disonance kicking in&lt;/sub&gt;&lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-11-04T01:37:54.540" />
  <row Id="16701" PostTypeId="1" AcceptedAnswerId="16707" CreationDate="2010-11-04T01:39:34.007" Score="0" ViewCount="103" Body="&lt;p&gt;I work in the web development industry and we implement a time tracking system to log our time (Project/time/comment). In the beginning of a project, we create a contract, and decide upon a price based on our hourly rate &lt;em&gt;x&lt;/em&gt; estimated hours. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We log out times to see if we go &quot;over budget&quot;. Is time tracking in this industry the norm? Is it required? What are the pros and cons?&lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2011-01-31T03:07:30.197" Title="Is time tracking required for web based/service industries?" Tags="&lt;jobs&gt;&lt;web-development&gt;&lt;time-management&gt;&lt;time-tracking&gt;" AnswerCount="4" />
  <row Id="16702" PostTypeId="1" CreationDate="2010-11-04T01:48:03.190" Score="4" ViewCount="230" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I´m relatively new to Grails, and I´ve used some plugins that have helped me a lot. I knew them from Java, but I´m wondering which are the best / must have / most productive grails Plugins.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, it starts with Liquibase, for database SCM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which one is your favorite?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(one answer per post please)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance.&lt;/p&gt;&#xA;" OwnerUserId="3288" LastActivityDate="2010-11-29T01:00:09.303" Title="Best Grails plugins ?" Tags="&lt;productivity&gt;&lt;plugins&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="16703" PostTypeId="2" ParentId="16689" CreationDate="2010-11-04T01:49:32.300" Score="15" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;My manager told me that I must work over time to make up for a lack of planning and project management. Instead of incentivizing this unpaid mandatory overtime, my manager has made it clear I have no choice in the matter.&lt;/em&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is a clear sign of a death march. I strongly recommend the book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/013143635X&quot; rel=&quot;nofollow&quot;&gt;Death March&lt;/a&gt;. It will give you ideas of how to deal and cope with death marches as well as helping you decide if and when it is time to quit. Sadly, death marches are the norm in software development, and not quite the flaming emergency they are made out to be. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://archives.igda.org/articles/erobinson_crunch.php&quot; rel=&quot;nofollow&quot;&gt;An article written some years ago&lt;/a&gt; pointed out why other industries got rid of &quot;crunch mode&quot; (or &quot;death marches&quot;) - they were the worst way to get work done.  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;As a side question, what are good ways to get an employee to work overtime if you can't directly pay them?&lt;/em&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Again, I refer you to the book Death March. Some organizations (notably big-4/3/2/1 accounting and consulting firms) use a &quot;Marine Corps&quot; mentality: &lt;em&gt;&quot;Sleep is for sissies! There will be time to sleep when we are dead!&quot;&lt;/em&gt; The movie &lt;a href=&quot;http://www.imdb.com/title/tt0416449/&quot; rel=&quot;nofollow&quot;&gt;300&lt;/a&gt; has some entertaining examples of this sort of mentality. There are other methods for motivating (or trying to) workers in death marches. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this is a one-time screw up by your mismanager, then probably the only thing to do is suck it up and get to work. If this happens all the time, then it is his/her/its incompetence at work and things need to change. A useful quote to remember comes from the movie Goldfinger:  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Once is happenstance. Twice is coincidence. The third time it's enemy action.&lt;/em&gt; &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-04T01:49:32.300" CommentCount="1" />
  <row Id="16704" PostTypeId="2" ParentId="331" CreationDate="2010-11-04T01:50:04.140" Score="1" ViewCount="" Body="&lt;p&gt;The default in the programs I typically use for development (Eclipse and Terminal) is Monaco, which has worked well for me.&lt;/p&gt;&#xA;" OwnerUserId="1294" LastActivityDate="2010-11-04T01:50:04.140" CommunityOwnedDate="2010-11-04T01:50:04.140" CommentCount="0" />
  <row Id="16705" PostTypeId="2" ParentId="16618" CreationDate="2010-11-04T01:52:16.880" Score="25" ViewCount="" Body="&lt;p&gt;Hmm the next great evil?  Here is something I see abused all the time:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Singletons considered harmful&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This will particularly bear out as concurrent programming becomes more prevalent.  I have seen abuses of the singleton pattern so bad the author should have just written the application in C.  The truth is, there are very few circumstances where a singleton is truly the correct solution.  I think I can count on one finger the number of times that it might have been the correct answer--oh wait, I was wrong....&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-11-04T01:52:16.880" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="23" />
  <row Id="16707" PostTypeId="2" ParentId="16701" CreationDate="2010-11-04T02:22:51.477" Score="5" ViewCount="" Body="&lt;p&gt;Time tracking is a wonderful tool for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;making your estimates more accurate&lt;/li&gt;&#xA;&lt;li&gt;managing the size of your team&lt;/li&gt;&#xA;&lt;li&gt;justifying invoices when a client takes issue with what they are being billed&lt;/li&gt;&#xA;&lt;li&gt;providing more data for performance bonuses (temporal efficiency is important, but only if it comes with quality)&lt;/li&gt;&#xA;&lt;li&gt;finding the drag in your workflow so that you can become more efficient over time&lt;/li&gt;&#xA;&lt;li&gt;choosing the types of work at which you can be more cost-effective/efficient than your competition&lt;/li&gt;&#xA;&lt;li&gt;scheduling projects more effectively&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The problem is that when done wrong (which is easier than doing it right) time tracking itself can be the drag on your workflow.  I have a colleague who, in a very unscientific study of me sharing an office with him for two days during which I was curious enough to time him, spent 15% of his time documenting how he spends the other 85%!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To my mind (though I admit I'm a better technician than business strategist) that is &lt;em&gt;way&lt;/em&gt; too much overhead for time tracking.  In a small company, doing it this badly is, in my opinion, worse than not doing it at all.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-04T02:22:51.477" />
  <row Id="16708" PostTypeId="1" AcceptedAnswerId="16722" CreationDate="2010-11-04T02:26:09.997" Score="29" ViewCount="1118" Body="&lt;p&gt;I started seriously programming as a hobbiest, student and then intern about 4 years ago and I've always done small projects on the side as a learning exercise.  Schools over now though, and I spend my days at work as a software developer. I would still love to do projects on the side to learn about areas in computer science that I'm not exposed to at work, but I've noticed that after 8 hours of starring at an IDE it's far to tempting to veg out.  Any time I do get up the gumption to work on something for a few hours lately it's gotten left by the wayside.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone have any advice for sticking with side projects when you spend most of your day coding?&lt;/p&gt;&#xA;" OwnerUserId="5323" LastActivityDate="2011-02-04T23:14:42.487" CommunityOwnedDate="2011-02-04T23:07:08.093" Title="How do you stay motivated for hobby projects?" Tags="&lt;self-improvement&gt;&lt;work&gt;&lt;motivation&gt;" AnswerCount="20" CommentCount="3" FavoriteCount="12" />
  <row Id="16709" PostTypeId="2" ParentId="16701" CreationDate="2010-11-04T02:26:16.230" Score="1" ViewCount="" Body="&lt;p&gt;Yes, it's very common practice when operating a business or company that sells &quot;Professional Services&quot; or &quot;Coders for Hire on a per-Project Basis.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is less common for other types of business model, such as retail software development.  In these spaces, if you are doing time tracking, it is usually for internal auditing of planning accuracy, estimation accuracy, and employee performance.  Not for billing.&lt;/p&gt;&#xA;" OwnerUserId="6677" LastActivityDate="2010-11-04T02:26:16.230" />
  <row Id="16710" PostTypeId="2" ParentId="16436" CreationDate="2010-11-04T02:32:11.293" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Is this a new position, or are you filling a pre-existing one?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If the position is pre-existing then you can ask (but don't expect an answer most of the time):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Why did the last employee leave?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2471" LastEditorUserId="2471" LastEditorDisplayName="" LastEditDate="2010-11-04T12:57:18.183" LastActivityDate="2010-11-04T12:57:18.183" CommunityOwnedDate="2011-01-28T12:13:01.007" CommentCount="1" />
  <row Id="16711" PostTypeId="2" ParentId="10172" CreationDate="2010-11-04T02:38:21.267" Score="3" ViewCount="" Body="&lt;p&gt;I interned at a smallish company in school and ended up staying for two years.  One of the things that kept me there, I think, was when I started they had a small (about a month long) project for me to work through that let me learn about the company and let my manager learn my strengths.  I was then able to take on a couple of more substantial project that were more rewarding and interesting to me, and more helpful to the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall, I think the most important thing with interns is to have one off projects lined up that would be helpful.  If you don't really feel like you made a difference with your time, there are plenty of better ways to spend it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll always get some amount of turnover with interns however.  There's a pretty big incentive to see what different companies are like so you can have an idea of what to look for when you graduate.&lt;/p&gt;&#xA;" OwnerUserId="5323" LastActivityDate="2010-11-04T02:38:21.267" />
  <row Id="16712" PostTypeId="2" ParentId="16708" CreationDate="2010-11-04T02:43:22.107" Score="7" ViewCount="" Body="&lt;p&gt;Yep.  I burn out on coding too.  I love coding and making software, but after a long day (or week, or year) of programming at work ... firing up the ol' IDE at home gets harder and harder.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lately there have been only two types of side-project that I can stay active with:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Contributions to a few open source projects where there is lots of interaction with other developers and users.  It can be hard to find a project that you're interested in, that has developers that you get along with, that needs developers, and that you're skilled enough to contribute to ... but once you've found a comfortable fit, it can be rewarding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Getting permission to work on a few pet projects at work.  For many people this is a non-starter, but if you can swing an arrangement (even one-time only, or occassional), it can be satisfying.  It's a lot easier to get coding when the alternative is the usual grindstone chores at work.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example on #2: for many years my company used a version control system that, while decent in most regards, was absolutely horrible about showing you your unversioned subfolders on disk.  Everyone had their own little ways of dealing with this nuissance.  I got fed up with it, and asked for time to write a little utility to make dealing with this problem much less painful.  It wasn't the most entertaining code I'd ever written (although there were a few challenging/interesting bits), but the real reward was seeing my coworkers using and enjoying the software, and being thanked for it.&lt;/p&gt;&#xA;" OwnerUserId="6677" LastActivityDate="2010-11-04T02:43:22.107" CommunityOwnedDate="2011-02-04T23:07:08.093" />
  <row Id="16713" PostTypeId="2" ParentId="16708" CreationDate="2010-11-04T02:53:58.670" Score="10" ViewCount="" Body="&lt;p&gt;The best advice I can give is don't feel guilty when your hobby projects don't receive attention for a considerable amount of time. It is supposed to be fun, and working on something when you don't feel like working on it is hardly entertaining. I have a few such projects and a couple of them have quite a few users. People are used to me making a new release once a year and being receptive to bug reports / patches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I actually get more of a kick out of seeing other people work on my code than I do working on it myself, in most cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing I recommend is use ample discretion when coming back to something you have not seen in a while, just as you would in your day job. The urge to re-build, re-design, re-factor and such can get overwhelming. That is fine, as long as you understand that you'll keep ending up with basically the same thing each time. I find it much more rewarding to work on new features, especially as a hobby project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, anything is much more fun and motivating when you have some partners to play with. Get your project out on sites like freshmeat, surely someone else will think what you came up with is useful and help you to improve it. That's where you really start having some fun :)&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-04T02:53:58.670" CommunityOwnedDate="2011-02-04T23:07:08.093" />
  <row Id="16714" PostTypeId="2" ParentId="16708" CreationDate="2010-11-04T02:54:43.400" Score="23" ViewCount="" Body="&lt;p&gt;The only way to stay motivated is to have goals. If you have no goal you will get nowhere. Personally I find merely academic projects not very motivating but if I have a goal of creating a product, ie shareware, it is much easier to keep the motivation up.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-04T02:54:43.400" CommunityOwnedDate="2011-02-04T23:07:08.093" CommentCount="1" />
  <row Id="16715" PostTypeId="2" ParentId="16708" CreationDate="2010-11-04T02:56:50.233" Score="14" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Pick a project that you're genuinely interested in.&lt;/li&gt;&#xA;&lt;li&gt;Spend a little time up front defining your goals for the project.&lt;/li&gt;&#xA;&lt;li&gt;Break the project up into small phases so that it doesn't take hours and hours of work to feel a sense of accomplishment.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4260" LastActivityDate="2010-11-04T02:56:50.233" CommunityOwnedDate="2011-02-04T23:07:08.093" CommentCount="1" />
  <row Id="16716" PostTypeId="2" ParentId="16708" CreationDate="2010-11-04T03:06:56.250" Score="1" ViewCount="" Body="&lt;p&gt;I don't always stay motivated, but I find that when I tell other folks what I'm working on, I frequently end up spending so much energy discussing (aka arguing why I'm doing it X-way and not Y-way like the arguer thinks it should be done) that I lose interest in working on the project. So my &quot;secret&quot; is to not talk about stuff until after I've done enough to call it done. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My goals are frequently of the scale of &quot;learn how to use M&quot; or &quot;how can you do N?&quot; so the done-ness of the goal is usually distinct from the done-ness of the project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My current employer takes the position (in the employment agreement) that I can't work on open source stuff, nor am I supposed to work on the side without written permission from above. Consequently, I don't work towards complete projects. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-04T03:06:56.250" CommunityOwnedDate="2011-02-04T23:07:08.093" />
  <row Id="16717" PostTypeId="2" ParentId="16436" CreationDate="2010-11-04T03:11:36.623" Score="4" ViewCount="" Body="&lt;p&gt;I always ask what the company policies around training and personal development are.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;do the have a budget for software or software related seminars? (e.g. Spring Core Training)&lt;/li&gt;&#xA;&lt;li&gt;if a new technology or framework is being implemented, will you offer a group seminar?&lt;/li&gt;&#xA;&lt;li&gt;do you reimburse staff for job related books, or have a company library?&lt;/li&gt;&#xA;&lt;li&gt;do you allow employees to dedicate any percentage of their time other projects? (e.g. investigating and prototyping with new technologies)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;How the answer, or react, to these questions gives you a decent indication of how interested they are in your growth as a developer. &lt;/p&gt;&#xA;" OwnerUserId="6894" LastActivityDate="2010-11-04T03:11:36.623" CommunityOwnedDate="2011-01-28T12:13:01.007" CommentCount="2" />
  <row Id="16718" PostTypeId="2" ParentId="16301" CreationDate="2010-11-04T03:23:49.653" Score="3" ViewCount="" Body="&lt;p&gt;When a business analyst, QA person, other interested party comes over to your desk and says, &quot;Hey, I had a question about...&quot; or &quot;Could we discuss blah...&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be sure to respond with, &quot;I'm just wrapping something up, could I come see you in an hour?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be polite, and follow up with them when you said you would. You wouldn't believe how establishing boundaries and keeping people from waltzing into your office and yammering about whatever they feel like improves your productivity.&lt;/p&gt;&#xA;" OwnerUserId="6894" LastActivityDate="2010-11-04T03:23:49.653" CommunityOwnedDate="2011-01-23T10:19:44.323" CommentCount="3" />
  <row Id="16719" PostTypeId="2" ParentId="16595" CreationDate="2010-11-04T03:36:12.553" Score="2" ViewCount="" Body="&lt;p&gt;Not only is it beneficial to your productivity to take frequent breaks it is also beneficial to your health.  10 years ago I had a Pulmonary Embolism (blood clots in my lungs) from working too long without breaks.  I fortunately recovered from that and thought I was doing really good. Last April I got into a coding sprint for a couple of days.  The kind where time flies by and before you know it you've been sitting way too long.  I found myself extremely short of breath and when I went to the hospital I had a new batch of blood clots.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm back to setting alarms and walking around every hour.&lt;/p&gt;&#xA;" OwnerUserId="7006" LastActivityDate="2010-11-04T03:36:12.553" CommentCount="1" />
  <row Id="16720" PostTypeId="2" ParentId="16708" CreationDate="2010-11-04T03:40:34.687" Score="5" ViewCount="" Body="&lt;p&gt;For me, people make the difference.  I have a ridiculous amount of side projects begging for my attention.  The ones that get my &quot;spare&quot; time (an extremely finite resource) are the ones in which I work with people who teach me new things, spark new ideas, or inspire me in some way.  I find it hard to stay motivated on the others.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-04T03:40:34.687" CommunityOwnedDate="2011-02-04T23:07:08.093" />
  <row Id="16721" PostTypeId="2" ParentId="16689" CreationDate="2010-11-04T03:42:33.583" Score="12" ViewCount="" Body="&lt;p&gt;Its totally disrespectful.  They clearly view you as a means to their personal ends, and couldnt care less about you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, I wouldnt characterize it as 'forced' overtime, as its still &lt;strong&gt;your&lt;/strong&gt; choice.  Tell them no, you have plans that night, so you cant stay.  What are they going to do?  Fire you?  And then how far behind are their projects going to be?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers &amp;amp; IT folks have this tendency to let themselves be abused.  Why, I dont know.  But programmers can do things that most other people cant even be trained to do.  Good ones, at least.  Your boss wants you to workovertime?  Let him finish the code.  See who needs who.  Or let them outsource it and see how well that works out for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, the modern world runs on software.  Programmers have more bargaining power than they think.  They just need to wield it.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-04T03:42:33.583" CommentCount="4" />
  <row Id="16722" PostTypeId="2" ParentId="16708" CreationDate="2010-11-04T03:46:56.640" Score="33" ViewCount="" Body="&lt;p&gt;One tip - make sure your hobby project has nothing to do whatsoever with your day job.  If you use C++ at work, use something else in your hobby projects.  This will help you avoid some of the burnout because you're at least switching to a different IDE and/or skill set.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, a hobby is a hobby...so dont fret it.  Its supposed to be relaxing, not stressful.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-04T03:46:56.640" CommunityOwnedDate="2011-02-04T23:07:08.093" CommentCount="2" />
  <row Id="16723" PostTypeId="2" ParentId="16687" CreationDate="2010-11-04T03:54:59.020" Score="4" ViewCount="" Body="&lt;p&gt;Draw the &lt;em&gt;Time-Quality-Cost triangle&lt;/em&gt; on their whiteboard:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/RMmPo.jpg&quot; alt=&quot;Time-Quality-Cost Triangle&quot;&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Explain the trade-off: It's physically impossible to satisfy all 3 properties. They want good quality in a short time? It's going to cost them dearly. No time, no money? Then they're going to see it in the shoddy quality. High quality, low cost? That'll be ready whenever it's ready!! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This doesn't exactly address requirements and milestones, but it may plant some kind of seed that says, &quot;Hey, if I leave stuff too late I'm going to end up paying more or get worse quality.&quot;&lt;/p&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-11-04T03:54:59.020" CommentCount="1" />
  <row Id="16724" PostTypeId="2" ParentId="16595" CreationDate="2010-11-04T04:15:45.580" Score="0" ViewCount="" Body="&lt;p&gt;Taking frequent breaks is VERY important for your health. I read that people who sit down or lay down watching TV even just for a couple of hours have increased risk of mortality even if you exercise. You just HAVE to keep moving around. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;A new study from American Cancer Society researchers finds it's not just how much physical activity you get, but how much time you spend sitting that can affect your risk of death. Researchers say time spent sitting was independently associated with total mortality, regardless of physical activity level.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.sciencedaily.com/releases/2010/07/100722102039.htm&quot; rel=&quot;nofollow&quot;&gt;http://www.sciencedaily.com/releases/2010/07/100722102039.htm&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Couch potatoes beware: every hour of television watched per day may increase the risk of dying earlier from cardiovascular disease, according to research reported in Circulation: Journal of the American Heart Association.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.sciencedaily.com/releases/2010/01/100111161927.htm&quot; rel=&quot;nofollow&quot;&gt;http://www.sciencedaily.com/releases/2010/01/100111161927.htm&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7009" LastActivityDate="2010-11-04T04:15:45.580" />
  <row Id="16725" PostTypeId="1" AcceptedAnswerId="16865" CreationDate="2010-11-04T05:12:42.743" Score="1" ViewCount="215" Body="&lt;p&gt;For a Final Year College Project what is the best LIFE CYCLE MODEL is recommended.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Project Duration: 6-8 months&#xA;Team: 1-3 students&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And also suggest some topics on Data-structure and/or Algorithms for final year college project. &lt;/p&gt;&#xA;" OwnerUserId="6869" LastActivityDate="2010-11-04T17:31:02.947" Title="Final Year College Project" Tags="&lt;learning&gt;&lt;recommendations&gt;&lt;software-engineering&gt;&lt;algorithms&gt;" AnswerCount="3" CommentCount="5" />
  <row Id="16726" PostTypeId="2" ParentId="16141" CreationDate="2010-11-04T05:14:23.833" Score="2" ViewCount="" Body="&lt;p&gt;At the risk of sounding like an utter fanboy, I think everyone who claims that whitespace “helps reduce inconsistent indentation in code” has never used Visual Studio. With a single command (I think the default shortcut is Ctrl+K,D), all the indentation is instantaneously consistent¹. Furthermore, when pasting code the indentation is instantaneously corrected without having to do anything at all, and the same is true when writing new code or when wrapping something in an &lt;code&gt;if&lt;/code&gt; or some other block (reformat happens as the &lt;code&gt;}&lt;/code&gt; is typed). Furthermore, pressing Enter after a completed statement always places the cursor at the correct indentation level for the next statement, even if the previous statement was indented further because of an &lt;code&gt;if&lt;/code&gt; or similar, making it very difficult to accidentally think that a statement is still under an &lt;code&gt;if&lt;/code&gt; when it isn’t.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The point I’m trying to make is &lt;em&gt;not&lt;/em&gt; that Visual Studio is great.&lt;/strong&gt; The point I’m trying to make is that the IDE can automate indentation-fixing (and other formatting issues), but &lt;em&gt;only if the meaning of the program does not depend on its formatting.&lt;/em&gt; This gives the programmer a greater opportunity to focus on the actual programming task. A syntax like Python’s is counterproductive: it is not possible to write an IDE that can “fix” the indentation of Python code because the indentation itself specifies some of the semantics.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;¹ &lt;sub&gt;&lt;em&gt;(I know there is a special case which VS refuses to reformat, namely array literals that span multiple lines, but that’s beside the point.)&lt;/em&gt;&lt;/sub&gt;&lt;/p&gt;&#xA;" OwnerUserId="147" LastActivityDate="2010-11-04T05:14:23.833" CommentCount="7" />
  <row Id="16727" PostTypeId="2" ParentId="16725" CreationDate="2010-11-04T05:30:23.523" Score="0" ViewCount="" Body="&lt;p&gt;It really depends on the project and the deliverable.  If you want to deliver a product on a regular basis which works but with a new feature added, that's probably going to lean more towards a spiral life cycle model.  If your customer can guarantee the requirements will never change though, I'd say that waterfall might actually be applicable.  Rapid prototyping can be good if your going to have a lot of user interfaces to deal with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just curious, is your final year project a research oriented project? If so, I'm not sure what life cycle models exist for that kind of project.  The only reason I ask this is because my university has the senior projects be on larger teams working on projects commissioned by sponsor companies. I need a few more details to know what style of project it is before I can make a solid recommendation.&lt;/p&gt;&#xA;" OwnerUserId="5179" LastActivityDate="2010-11-04T05:30:23.523" CommentCount="2" />
  <row Id="16728" PostTypeId="2" ParentId="16725" CreationDate="2010-11-04T05:57:55.073" Score="1" ViewCount="" Body="&lt;p&gt;If you're talking about how to manage your group of programmers and how to attack your project, I would recommend using Test Driven Development with peer review and small Agile-type iterations.  Make sure you clearly define your requirements and what your project should accomplish.&lt;/p&gt;&#xA;" OwnerUserId="6689" LastActivityDate="2010-11-04T05:57:55.073" />
  <row Id="16729" PostTypeId="2" ParentId="1403" CreationDate="2010-11-04T06:21:03.050" Score="-1" ViewCount="" Body="&lt;p&gt;I steer clear of jobs where the work can be done remotely....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? - Because it's only a matter of time before the employer realises that a guy in India or the Philippines could do the same job remotely for 1/10th of my salary.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-04T06:21:03.050" CommentCount="2" />
  <row Id="16730" PostTypeId="2" ParentId="16301" CreationDate="2010-11-04T06:37:21.000" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Automate.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take manual processes and automate them as much as possible.  The time you take to automate will help you better understand the task at hand and help avoid human errors.&lt;/p&gt;&#xA;" OwnerUserId="2492" LastActivityDate="2010-11-04T06:37:21.000" CommunityOwnedDate="2011-01-23T10:19:44.323" />
  <row Id="16731" PostTypeId="2" ParentId="16708" CreationDate="2010-11-04T06:44:59.660" Score="2" ViewCount="" Body="&lt;p&gt;Given that you already have an idea for your hobby project, I would suggest &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Write good documentations&lt;/li&gt;&#xA;&lt;li&gt;Schedule your hobby project in some sense&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;First of all, it's a hobby project. You may only spend 1-2 hours a day at most, or even only 1-2 hours a week, on your hobby project. It's difficult to remember all the details in such working style, and good documentations help you quickly jump start from the previous pause. A good documentation should keep track on what to be done, what has been done, and why things are done in such way. The documentation can be more important than the actual programming phase of the hobby project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, scheduling some time for the project in advance makes yourself mentally prepared for it. By doing so you're telling yourself it's not the night for gaming/movie/hang-out/dating/whatever, but for your hobby project. It will be easier for you to make up your mind and sit in front of the computer even after a tiresome working day. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you haven't decided what to do for the hobby project, I will add the followings:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Pick a project that has relatively low entry barrier for you.&lt;/li&gt;&#xA;&lt;li&gt;Pick a project that really interests you, or &lt;/li&gt;&#xA;&lt;li&gt;Pick a project that may assist your daily work.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Having some challenges is good, but you may lose your interest and patience quickly if the challenges are just too big. Unless you have some strong incentives (e.g., having strong desire to start a new career path), selecting a project that you already roughly know how to complete may help keep your momentum. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Strong incentives may come from other aspects. An interesting project and a project that facilitates your daily work are some examples. There are lots of fun stuff other than your hobby project, and you need to find a good reason for yourself to continuously work on the hobby project. In regards to the project that facilitates the daily work, it doesn't have to be directly related. A program to automate the editing of your presentation slides; a program to visualize the data. As long as it provides good incentives, it should be a good project that makes you happy to work on.&lt;/p&gt;&#xA;" OwnerUserId="4873" LastActivityDate="2010-11-04T06:44:59.660" CommunityOwnedDate="2011-02-04T23:07:08.093" CommentCount="2" />
  <row Id="16732" PostTypeId="1" CreationDate="2010-11-04T06:48:45.937" Score="5" ViewCount="172" Body="&lt;p&gt;To what extent do you unit test internal/private components of a class/module/package/etc? Do you test them at all or do you just test the interface to the outside world? An example of these internal is private methods.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an example, imagine a &lt;a href=&quot;http://en.wikipedia.org/wiki/Recursive_descent_parser&quot; rel=&quot;nofollow&quot;&gt;recursive descent parser&lt;/a&gt;, which has several internal procedures (functions/methods) called from one central procedure. The only interface to the outside world is the central procedure, which takes a string and returns the parsed information. The other procedures parse different parts of the string, and they are called either from the central procedure or other procedures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Naturally, you should test the external interface by calling it with sample strings and comparing it with hand-parsed output. But what about the other procedures? Would you test them individually to check that they parse their substrings correctly?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can think of a few arguments:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;More testing is always better, and this can help increase code coverage&lt;/li&gt;&#xA;&lt;li&gt;Some internal components might be hard to give specific inputs (edge cases for example) by giving input to the external interface&lt;/li&gt;&#xA;&lt;li&gt;Clearer testing. If an internal component has a (fixed) bug, a test case for that component makes it clear that the bug was in that specific component&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Refactoring becomes too painful and time-consuming. To change anything, you need to rewrite the unit tests, even if the users of the external interface are not affected&lt;/li&gt;&#xA;&lt;li&gt;Some languages and testing frameworks don't allow it&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;What are your opinions?&lt;/p&gt;&#xA;" OwnerUserId="1303" LastActivityDate="2010-11-05T10:14:17.143" Title="Unit testing internal components" Tags="&lt;testing&gt;&lt;unit-testing&gt;&lt;test-coverage&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="16733" PostTypeId="2" ParentId="16708" CreationDate="2010-11-04T06:54:55.147" Score="3" ViewCount="" Body="&lt;p&gt;The only way I ever stay motivated on anything is by having a &lt;em&gt;genuine interest&lt;/em&gt; in it (And yes, this can be a problem in commercial work where you're forced to work on stuff which you &lt;em&gt;don't&lt;/em&gt; find internally satisfying, but I digress...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used to do contrived hobby projects for the sake of learning a new language or framework. Often straight out of random, dry examples from books or websites. This never worked out. I'd always lose motivation and stop after a few sessions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the trick for me is to come up with some idea that would actually be useful (either to me or someone I know), and then set myself the task of implementing it in that language/platform. When it's a real world exercise of sorts, and it's a genuinely useful product, I tend to stay much more motivated. When it's a contrived learning project, it's easy to lose the plot.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-04T06:54:55.147" CommunityOwnedDate="2011-02-04T23:07:08.093" />
  <row Id="16734" PostTypeId="1" AcceptedAnswerId="16738" CreationDate="2010-11-04T07:04:43.123" Score="4" ViewCount="279" Body="&lt;p&gt;Some programming languages have constructs that because of their frequent use are often mistaken for language features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, many people think that &lt;code&gt;self&lt;/code&gt; is a keyword in Python, but it's just the conventional name for the first argument to a method (you can use any variable name you want):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Complex:&#xA;    def __init__(self, realpart, imagpart):&#xA;        self.r = realpart&#xA;        self.i = imagpart&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Another example: when I was learning R, I thought the syntax for filtering a vector was kind of weird:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;d[d %% 2 == 0] # even elements only&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;At first I thought &lt;code&gt;d %% 2 == 0&lt;/code&gt; was some sort of lambda that gets magically applied to every element of &lt;code&gt;d&lt;/code&gt;, until I realized that this is a straightforward application of R's vectorized operations: &lt;code&gt;d %% 2 == 0&lt;/code&gt; returns a vector like &lt;code&gt;[TRUE, FALSE, FALSE, ...]&lt;/code&gt;, and then &lt;code&gt;d&lt;/code&gt; just uses that list to filter values that are at positions marked as &lt;code&gt;TRUE&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some other constructs that may first appear to be specially designed language features, but are just straightforward applications of the language's core syntax &amp;amp; semantics?&lt;/p&gt;&#xA;" OwnerUserId="7010" LastActivityDate="2010-11-06T18:25:33.187" Title="What are some conventions that are often mistaken for language features?" Tags="&lt;programming-languages&gt;&lt;python&gt;" AnswerCount="5" FavoriteCount="3" />
  <row Id="16735" PostTypeId="1" AcceptedAnswerId="16740" CreationDate="2010-11-04T07:30:28.240" Score="1" ViewCount="91" Body="&lt;p&gt;I have no clue where to put the following class and I've noticed I just keep putting them in a helpers folder which isn't much helpfull towards reusability in future projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; &#xA;I want to have the ability to use the &lt;code&gt;DisplayNameAttribute&lt;/code&gt; together with resource files. In order for this to work I made a &lt;code&gt;LocalizedDisplayNameAttribute&lt;/code&gt; which inherits the ´DisplayNameAttribute´ and adds the following properties &lt;code&gt;DisplayNameResourceName&lt;/code&gt; and &lt;code&gt;DisplayNameResourceType&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In which namespace/location would you place such a class which is likely to be reused in future projects?&lt;/p&gt;&#xA;" OwnerUserId="4014" LastActivityDate="2010-11-04T08:38:33.923" Title="Best place to put classes that extend the .net framework?" Tags="&lt;best-practices&gt;&lt;naming-conventions&gt;&lt;naming&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="1" />
  <row Id="16736" PostTypeId="2" ParentId="16436" CreationDate="2010-11-04T08:03:57.510" Score="0" ViewCount="" Body="&lt;p&gt;I usually ask more about the problem domain, who are the current clients/buyers of the product, financial situation of the company (esp. important if it's small), plans for future development of the product, etc. Also important factors are whether there's cantina, whether I get to work from home occasionally, working hours (flexible or fixed), release schedules, overtime, etc. Everything that can affect the &lt;em&gt;overall quality&lt;/em&gt; of my life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been in this business for over 10 years now, in different roles, and I've found out that the people you work with are AT LEAST, if not more, as important as the project/technologies you work on. So ask also whom you will be working with and who will be your leader. When it comes to judging people who have interviewed you, trust your intuition. Did you feel that they were hiding something during the interview, were they evasive, or were they open about things?&lt;/p&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-11-04T08:03:57.510" CommunityOwnedDate="2011-01-28T12:13:01.007" />
  <row Id="16737" PostTypeId="2" ParentId="16732" CreationDate="2010-11-04T08:04:35.480" Score="1" ViewCount="" Body="&lt;p&gt;Split it into multiple parts with a functional meaning, eg &lt;code&gt;ParseQuotedString()&lt;/code&gt;, &lt;code&gt;ParseExpression()&lt;/code&gt;, &lt;code&gt;ParseStatement()&lt;/code&gt;, &lt;code&gt;ParseFile()&lt;/code&gt; and make them all public. How likely is it that that your syntax changes so much that these become irrelevant?&lt;/p&gt;&#xA;" OwnerUserId="604" LastActivityDate="2010-11-04T08:04:35.480" />
  <row Id="16738" PostTypeId="2" ParentId="16734" CreationDate="2010-11-04T08:07:46.303" Score="9" ViewCount="" Body="&lt;h1&gt;else if&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;for instance in C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you learned BASIC (including Visual Basic) first, you'd be likely to think &lt;code&gt;else if&lt;/code&gt; functions like a special keyword, because &lt;code&gt;ElseIf&lt;/code&gt; is a keyword in BASIC.  In BASIC the rule is that all multi-line &lt;code&gt;If&lt;/code&gt; statements must end in &lt;code&gt;End If&lt;/code&gt;, so we would have to nest &lt;code&gt;If&lt;/code&gt; statements in the &lt;code&gt;Else&lt;/code&gt; clause like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;If foo = bar Then&#xA;    foo = foo + 1&#xA;    bar = bar + 1&#xA;Else &#xA;    If foo &amp;gt; bar Then&#xA;        foo = foo - 1&#xA;        bar = bar + 1&#xA;    Else&#xA;        If foo &amp;lt; bar Then&#xA;            foo = foo + 1&#xA;            bar = bar - 1&#xA;        End If&#xA;    End If&#xA;End If&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;but by using the &lt;code&gt;ElseIf&lt;/code&gt; keyword, we can eliminate the extra &lt;code&gt;End If&lt;/code&gt;s, like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;If foo = bar Then&#xA;    foo = foo + 1&#xA;    bar = bar + 1&#xA;ElseIf foo &amp;gt; bar Then&#xA;    foo = foo - 1&#xA;    bar = bar + 1&#xA;ElseIf foo &amp;lt; bar Then&#xA;    foo = foo + 1&#xA;    bar = bar - 1&#xA;End If&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now compare to C-style languages like C#.  There, the curly braces &lt;code&gt;{&lt;/code&gt; and &lt;code&gt;}&lt;/code&gt; serve a similar role to BASIC's &lt;code&gt;Then&lt;/code&gt; and &lt;code&gt;End If&lt;/code&gt;.  However, the rule for when braces are required differs from the rule for when &lt;code&gt;End If&lt;/code&gt; is required.  C# doesn't care if you have line-breaks in your &lt;code&gt;else&lt;/code&gt; clause, it just cares if it can be considered a single statement.  So you can write:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (foo == bar)&#xA;{&#xA;    foo = foo + 1;&#xA;    bar = bar + 1;&#xA;}&#xA;else if (foo &amp;gt; bar)&#xA;{&#xA;    foo = foo - 1;&#xA;    bar = bar + 1;&#xA;}&#xA;else if (foo &amp;lt; bar)&#xA;{&#xA;    foo = foo + 1;&#xA;    bar = bar - 1;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;without any extra braces, because the &lt;code&gt;else&lt;/code&gt; of your second &lt;code&gt;if&lt;/code&gt; is already a single statement, equivalent (up to meaningless line breaks) to:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (foo &amp;lt; bar) { foo = foo + 1; bar = bar - 1; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and likewise the &lt;code&gt;else&lt;/code&gt; of your first &lt;code&gt;if&lt;/code&gt; is a single statement, equivalent to:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (foo &amp;gt; bar) { foo = foo - 1; bar = bar + 1; } else if (foo &amp;lt; bar) { foo = foo + 1; bar = bar - 1; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In other words, &lt;code&gt;else if&lt;/code&gt; isn't some special keyword (like it was in BASIC), it's just an &lt;code&gt;else&lt;/code&gt; followed by an &lt;code&gt;if&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="151" LastActivityDate="2010-11-04T08:07:46.303" CommentCount="2" />
  <row Id="16739" PostTypeId="2" ParentId="16618" CreationDate="2010-11-04T08:18:58.417" Score="17" ViewCount="" Body="&lt;p&gt;Test-driven development. It is a crutch for half-baked developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why TDD: I think it's a hype. It kinda works for toy examples where you have functional relationship between inputs and outputs. But when it comes to &lt;em&gt;temporal dependencies&lt;/em&gt;, such as event-driven systems, it's useless because the functioning of the program is determined by 1) the events that arrive, and 2) &lt;em&gt;the order they arrive in&lt;/em&gt;. You can test that each event handler does the thing it's supposed to, but when there's shared global state (unavoidable in any program that makes money for their creators), you CANNOT test that any ordering of events will produce a correct result.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what to do: use assertions to ensure that the program state is always consistent and valid. I use this methodology even for algorithmic code, and I spend &lt;em&gt;very&lt;/em&gt; little time in the debugger -- most of the bugs are discovered by failed asserts. Assertions force you to &lt;em&gt;think&lt;/em&gt; about the state of the program AND about assumptions required for the code you write to work.  If you assume something, then assert that it is true!  This reduces the number of bugs tremendously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why is it a crutch for half-baked developers: Heavily-used and &lt;em&gt;complex&lt;/em&gt; systems have been written without TDD, and they have very few bugs. Examples: PostgreSQL database, Solaris or NetBSD kernel and base system (one of the best structured and clean code bases I have seen in my life), TeX typesetting system (I'd dare say, bug-free).&lt;/p&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-11-04T08:18:58.417" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="26" />
  <row Id="16740" PostTypeId="2" ParentId="16735" CreationDate="2010-11-04T08:38:33.923" Score="1" ViewCount="" Body="&lt;p&gt;I think the best way to do this is putting all helper classes and methods in a separate project, and then reference this project in each solution you create. Much easier than copying folders from place x to place y.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This project with all kinds of extensions, helpers etc, can be called something like &quot;Company.Core&quot;, or similar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example (your attributes):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;using Company.Core.Attributes;&#xA;&#xA;// ....&#xA;&#xA;[LocalizedDisplayNameAttribute.DisplayNameResourceName(&quot;ResourceName&quot;),&#xA;...]&#xA;public string Example { get; set; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4643" LastActivityDate="2010-11-04T08:38:33.923" CommentCount="1" />
  <row Id="16741" PostTypeId="2" ParentId="16732" CreationDate="2010-11-04T08:39:02.223" Score="1" ViewCount="" Body="&lt;p&gt;The approach to FSM-based code is a bit different from that used traditionally. It is very similar to what's described &lt;a href=&quot;http://en.wikipedia.org/wiki/Automatic_test_pattern_generation&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; for hardware testing (which is typically also an FSM).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, you create a test input sequence (or a set of test input sequences) which should not only produce a certain output, but also when producing a particular &quot;bad&quot; output lets identifying the failed component by the nature of failure.&#xA;The approach is quite scalable, the more time you spend on the test design the better the test will be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This kind of testing is closer to what is called &quot;functional tests&quot; but it eliminates the need to change tests every time you slightly touch an implementation.&lt;/p&gt;&#xA;" OwnerUserId="4676" LastEditorUserId="4676" LastEditorDisplayName="" LastEditDate="2010-11-04T08:45:09.020" LastActivityDate="2010-11-04T08:45:09.020" />
  <row Id="16742" PostTypeId="2" ParentId="16708" CreationDate="2010-11-04T08:44:17.150" Score="0" ViewCount="" Body="&lt;p&gt;Things that keep me motivated:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Pick a hobby project that you are really really interested in, and that you have no chance of ever doing anything like that at work. Start a game, a compiler, or anything else interests you. Don't pick something only because you think you should do this to help your career. Pick something you just want to try, and may have no value to your career.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Try to get some other people involved too at an early stage. This can be starting an open source project and inviting other programmers. But this can be as simple as telling your friends to try out the new piece of software you are writing. As soon as you start getting feedback, you will feel the need to keep making it better.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-11-04T08:44:17.150" CommunityOwnedDate="2011-02-04T23:07:08.093" />
  <row Id="16743" PostTypeId="2" ParentId="16708" CreationDate="2010-11-04T08:56:11.970" Score="0" ViewCount="" Body="&lt;p&gt;To stay motivated of something that doesn't bring you money you must have at least one of the element below:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;you are proud of what you do (others can see it)&lt;/li&gt;&#xA;&lt;li&gt;you are deeply interested of passionated by it. The simple fact that you achieve things give you high satisfaction&lt;/li&gt;&#xA;&lt;li&gt;doing it allows you interesting social interactions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What I've put above is the three reasons why people begin to work as a volounteer in an organisation. Those are the real reasons, not the reason the person think.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most effective but the most difficult to get is the first one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are doing a software, release it!&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-04T08:56:11.970" CommunityOwnedDate="2011-02-04T23:07:08.093" />
  <row Id="16744" PostTypeId="2" ParentId="16689" CreationDate="2010-11-04T09:03:38.887" Score="0" ViewCount="" Body="&lt;p&gt;Your manager is either ignorant (he simply repeats what he learnt, and honestly thinks it is the way to go) or he does that on purpose and knows it's bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In both case it's a bad manager. But like everyone, he can change! Will you help him figure it out by leaving?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding your last question, I think that the perfect employee must sometimes do sacrifices for his company, if the company do sacrifices sometimes too. An exemple? Because lack of cash I decided to cut my own salary for a full year in order to be able to pay everyone. No one knew that, but I'm sure that if they did, they would have helped me a bit when we had to finish that userstory before monday.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-04T09:03:38.887" CommentCount="1" />
  <row Id="16745" PostTypeId="2" ParentId="16689" CreationDate="2010-11-04T09:11:19.900" Score="4" ViewCount="" Body="&lt;p&gt;If you're forced into working extra time, you should be able to take some time off later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Work hard - rest hard&lt;/strong&gt;. That's just the way it works, or at least should work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I work overtime and don't seem to get anything out of it, I think:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Am I learning?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the answer to that question is yes, then the extra effort you put in at work is also an &lt;strong&gt;investment in yourself and your skills&lt;/strong&gt;. That's worth a lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, you should get some kind of compensation for being forced into working extra time. If you don't get anything, it's a huge blow to the company you work for, because you probably won't stay for that much longer. And it's hard to find other developers who are willing to work extra for basically nothing.&lt;/p&gt;&#xA;" OwnerUserId="4643" LastActivityDate="2010-11-04T09:11:19.900" />
  <row Id="16746" PostTypeId="2" ParentId="16689" CreationDate="2010-11-04T09:19:36.963" Score="1" ViewCount="" Body="&lt;p&gt;Looks like a bad manager but one thing is for sure sometimes we all have to give more than we get paid for. May be your Project is suffering and as a team you need to ensure that you, your Manager and the company succeed(this kind of team spirit is very rare most of the times Managers just USE thier employees).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second thing you mentioned is.. Is it your company culture ? If this is the case you have no choice but to abide by it as long as you stay otherwise you will be singled out and than thrown out. It is not uncommon to see some companies over paying than the market standards and than asking thier employees for such thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thirdly sometimes it is plain good to work more than your peers. It removes your peer competition and than you can stand up and ask for a raise/ more recognition/more responsibilities or a promotion.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-04T09:19:36.963" CommentCount="2" />
  <row Id="16747" PostTypeId="2" ParentId="16708" CreationDate="2010-11-04T09:20:06.977" Score="5" ViewCount="" Body="&lt;p&gt;The only hobby projects I've ever 'completed' are things that I actually &lt;em&gt;need&lt;/em&gt;, or make my life easier. The downside is that once it's 'good enough', you lose the incentive to keep improving it (or cleaning up the code, etc.)&lt;/p&gt;&#xA;" OwnerUserId="4285" LastActivityDate="2010-11-04T09:20:06.977" CommunityOwnedDate="2011-02-04T23:07:08.093" CommentCount="1" />
  <row Id="16748" PostTypeId="2" ParentId="16732" CreationDate="2010-11-04T09:36:34.950" Score="0" ViewCount="" Body="&lt;p&gt;Well - it depends :-).  If you're following a BDD (Behaviour Driven Development) or a ATDD (Acceptance Test Driven Development) approach then testing the public interface is fine (as long as you test it exhaustively with varying inputs.  The underlying implementation e.g. private methods isn't actually important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However say you want part of that algorithm to execute within a certain time frame or along a certain bigO curve (e.g. nlogn) then yes testing the individual parts matter.  Some would call this more of a traditional TDD/Unit Test approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As with everything, YMMV&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-04T09:36:34.950" />
  <row Id="16749" PostTypeId="2" ParentId="16436" CreationDate="2010-11-04T09:49:05.007" Score="1" ViewCount="" Body="&lt;p&gt;I like to ask, &quot;What is the biggest challenge you are currently facing?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This question serves multiple purposes.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Does the interviewer know what's going on in the company?&lt;/li&gt;&#xA;&lt;li&gt;Can they admit that they don't have all the answers?&lt;/li&gt;&#xA;&lt;li&gt;Does it sound like something I can help with?&lt;/li&gt;&#xA;&lt;li&gt;Do they have a direction, or just chaos?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6181" LastActivityDate="2010-11-04T09:49:05.007" CommunityOwnedDate="2011-01-28T12:13:01.007" CommentCount="2" />
  <row Id="16750" PostTypeId="2" ParentId="16637" CreationDate="2010-11-04T10:02:15.583" Score="1" ViewCount="" Body="&lt;p&gt;It's all very well, but I think since they are all links to information on the internet - MSFT should perhaps make it available as Wiki or at least distribute it as a HTML document instead of a PDF. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also they could refer to non Microsoft links at least for the stuff that is clearly not their own IP like the &lt;a href=&quot;http://docs.jquery.com/Tutorials&quot; rel=&quot;nofollow&quot;&gt;JQuery Tutorials&lt;/a&gt; Website or the &lt;a href=&quot;http://dev.w3.org/html5/spec/Overview.html&quot; rel=&quot;nofollow&quot;&gt;HTML5&lt;/a&gt; standards website on W3C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are also lots of great documentation and code available on &lt;a href=&quot;http://www.codeplex.com/site/search?TagName=ASP.NET&amp;amp;query=%22ASP.NET%22&quot; rel=&quot;nofollow&quot;&gt;Codeplex for ASP.NET&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="107" LastActivityDate="2010-11-04T10:02:15.583" />
  <row Id="16751" PostTypeId="2" ParentId="16618" CreationDate="2010-11-04T10:04:08.777" Score="1" ViewCount="" Body="&lt;p&gt;Not (fully) specifying exact code semantics / contract via&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;code itself implicitly (i.e. naming conventions with precisely documented meaning)&lt;/li&gt;&#xA;&lt;li&gt;formal enough comments&lt;/li&gt;&#xA;&lt;li&gt;(stand-alone) documentation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(and nobody speaks of useless / excessively lengthy documentation here, of course)&lt;/p&gt;&#xA;" OwnerUserId="5933" LastEditorUserId="5933" LastEditorDisplayName="" LastEditDate="2010-11-11T00:53:36.867" LastActivityDate="2010-11-11T00:53:36.867" CommunityOwnedDate="2011-04-14T16:13:04.920" />
  <row Id="16752" PostTypeId="2" ParentId="16618" CreationDate="2010-11-04T10:12:03.683" Score="36" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Patterns&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of thinking on how to solve a problem in the most cost-efficient (or most elegant) way, more and more people are working hard on figuring out what pattern to apply in each particular case (I've heard several times already that &quot;programming is all about patterns&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not only causing suboptimal decisions but is also significantly decreasing the level of &quot;creative entropy&quot; (similar to what Google's suggest is doing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;considered harmful&quot; is also a pattern :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Added 2010-11-12:&#xA;Cumulative reply to patterns advocates: I am not against patterns as a reflection of a natural human brain's way of learing by generalizing. Patterns are also good when used to compress the human language (programmers' professional jargon, as one my friend noted). I am against &lt;a href=&quot;http://dropsafe.crypticide.com/article/1928&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4676" LastEditorUserId="4676" LastEditorDisplayName="" LastEditDate="2010-11-12T07:52:34.103" LastActivityDate="2010-11-12T07:52:34.103" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="14" />
  <row Id="16753" PostTypeId="2" ParentId="16689" CreationDate="2010-11-04T10:24:34.597" Score="3" ViewCount="" Body="&lt;p&gt;Even though you're feeling raw for being &quot;forced to work overtime&quot;, starting a fight isn't the answer right now - not until you've a better job lined up anyhow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Indeed, it is an unfortunate situation, but there's a couple of things to check first:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;a) Is there anything in your contract that states your working hours or something similar, such that your employer would actually be in breach of your contract to force you to work?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;b) Is it legal in your country/state/region for your boss to make you work beyond, e.g. 48 hours per week?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either of these items, when presented to your (project) manager, would give a clear reason why you can't do overtime - it breaks the contract/law.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If not, there's no benefit in pointing the finger of blame right now - the project needs to be completed on schedule, so I would advise to try to identify some possible solutions that your (project) manager could use to meet the deadlines. Yes, this is doing their job, but clearly (as you have stated) they are struggling to be effective at it by themselves already. Your software engineering input may give them a good insight into what they underestimated or failed to research properly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some workable solutions could be:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Offer to work with the PM to identify the work items on the critical path and prioritise resources accordingly to meet this. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Escalate the issue up the management chain to see if there's any resources available in other departments.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Get some contract resource - expensive, yes, but potentially highly skilled and willing to work extra if paid by the hour.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Come to some (temporary) formal arrangement with you - for example, double time-off-in-lieu, doubled hourly-rate, a new car, your PM's soul, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Work with the business managers to negotiate a phased release of the software so that the schedule can be met. Rather than &quot;100% features by deadline&quot;, pitch for &quot;100% of critical features by deadline, rest of features shortly after&quot; or something similar.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-11-04T10:24:34.597" />
  <row Id="16754" PostTypeId="2" ParentId="16708" CreationDate="2010-11-04T10:25:50.487" Score="1" ViewCount="" Body="&lt;p&gt;Nice question, particularly since I'm planning on starting a hobby project myself (not the first hobby project, but projects in the past have tended to fall flat on their face when I get bored of them, which is dissatisfying to say the least).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My tips, though:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Develop something you care about.  Pretty obvious really, and been mentioned a few times, but does really deserve to be said again.  If you're developing just for the sake of it, you'll eventually get bored.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Come up with a small feature set, develop for that and then build on it.  If you're writing a word processor, don't try to include every feature in Word.  If you're working on an image manipulation package, don't try to beat PhotoShop.  If you're cooking up an IDE or some dev tools, don't... well, you get the idea.  Once you've got that simple version done, that's your first milestone - an accomplishment, something you can feel proud of.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Pick something you can develop, test, etc.  Don't go for some server app that requires you to spend £3000 on testing hardware (or lots of money on hosting).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Write it in a language you want to learn, and one that has features that will help you, but something that will provide an interesting (!important word!) challenge.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Pick a gap in the market, so to speak, and look at what your prospective competition are doing.  What aren't they doing?  Could you do it better, maybe learn from their mistakes?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-11-04T10:25:50.487" CommunityOwnedDate="2011-02-04T23:07:08.093" CommentCount="1" />
  <row Id="16755" PostTypeId="1" CreationDate="2010-11-04T10:27:51.597" Score="3" ViewCount="160" Body="&lt;p&gt;Our software dev team is currently using kanban for our development lifecycles, and, from the reasonably short experience of a few months, I think it's going quite well (certainly compared to a few months ago when we didn't really have a methodology).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our team, however, is directed to do work defined by project managers (not software project managers, just general business), and they're using the PMBOK methodology. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Question is, how does a traditional methodology like PMBOK, Prince2 etc fit with a lean software development methodology like kanban or scrum? Is it just wasting everyone's time as all the requirements are effectively drawn up to start with (although inevitably changed along the way)?&lt;/p&gt;&#xA;" OwnerUserId="4458" LastActivityDate="2010-11-05T08:32:40.697" Title="Project Management Techniques (high level)" Tags="&lt;project-management&gt;&lt;agile&gt;" AnswerCount="2" FavoriteCount="2" />
  <row Id="16756" PostTypeId="2" ParentId="16689" CreationDate="2010-11-04T10:30:38.570" Score="5" ViewCount="" Body="&lt;p&gt;I look at this in simple terms of contract. I have a contract with my employer that states I will work X hours per week on average, get Y days of paid leave per year, may have to travel as part of my work and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's fine, I signed it and my employer signed it. &lt;em&gt;That is the deal between us.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they start to expect me to work X+5 hours per week then either we need to re-evaluate that contract or I have every right to just refuse. If my employer were to fire me for sticking to the letter of my contract I would have enough legal recourse to make life very difficult and expensive with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That doesn't mean I won't put in extra time if it's needed - I'm very happy to - but if the need was relentless, I would want to see some recompense for that or to substitute leave for it. And I would reserve the right to refuse because I have other things that are more important to me than my day job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are paid for a 10 hour day and you work a 12 hour day, what you are telling your employer is that your work is worth 20% less than your contracted rate. You are essentially accepting a pay cut and your employers are treating you as a free resource to exploit as hard as they can.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-04T10:30:38.570" CommentCount="2" />
  <row Id="16757" PostTypeId="2" ParentId="16708" CreationDate="2010-11-04T10:41:05.227" Score="0" ViewCount="" Body="&lt;p&gt;It'll be good to have a group for a project... find some fellow programmers with same interest as yours... It feels tempting when your fella has done some advancement in that project and you haven't. This is surely motivating.&lt;/p&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-11-04T10:41:05.227" CommunityOwnedDate="2011-02-04T23:07:08.093" />
  <row Id="16758" PostTypeId="2" ParentId="16755" CreationDate="2010-11-04T10:51:20.890" Score="2" ViewCount="" Body="&lt;p&gt;I'm not a massive expert in this area. But I think that you can try two things here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1 Use a Kanban board to visualise the PMBOK/Prince2 process that's being used.  Simply show the Project Managers this 'visualisation aid', for me that's what Kanban is for - showing you where you have bottlenecks and blockers. Assuming you get the usual waterfall style problems, you'll be able to show this on your Kanban board as the workflow gets slowed or blocked at various points.  You can then use this as a starting point to get them to come around to agreeing to letting you run the project in a more agile manner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And/Or&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2 Take the requirements and split it into a Kanban style project anyhow, but do some analysis/preparation up front on how you can report progress back to the Project Managers in a Prince2/PMBOK manner (that will be comfortable to them).  You might find that the PM's don't care how you run the project, as long as the reporting meets their needs.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-04T10:51:20.890" />
  <row Id="16759" PostTypeId="2" ParentId="16596" CreationDate="2010-11-04T10:58:28.653" Score="0" ViewCount="" Body="&lt;p&gt;It's pretty easy to create an application using SetWindowsHookEx() API to create a keyboard hook which write all keypresses into a text file that your favourite desktop search programme can look through.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See &lt;a href=&quot;http://stackoverflow.com/questions/1746071/setwindowshookex-wh-keyboard-ll-not-getting-events&quot;&gt;this question on SO&lt;/a&gt; for code.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-11-04T10:58:28.653" />
  <row Id="16760" PostTypeId="1" AcceptedAnswerId="17064" CreationDate="2010-11-04T11:16:09.823" Score="17" ViewCount="1429" Body="&lt;p&gt;I must do a quick assessment of dozens of fresh students very quickly. I have 30 minutes meeting with each of them (in two or three days). I want to use most of the time to discuss non technical aspects. So I plan to use 10 minutes for technical questions. The same questions for all of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are all &lt;em&gt;hired&lt;/em&gt; already (they are students), what I need to know is the average level in order to prepare a training.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally, the difficulty &lt;code&gt;must be progressive&lt;/code&gt; in order to set a level for each. Level I will average, and I'll do an average on each question too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;If you had only 10 minutes and 10 questions to ask to a candidate, what would be your top 10 ?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-22T15:27:18.557" Title="The 10 minutes technical interview" Tags="&lt;interview-questions&gt;" AnswerCount="19" CommentCount="13" FavoriteCount="14" />
  <row Id="16761" PostTypeId="2" ParentId="16618" CreationDate="2010-11-04T11:19:09.120" Score="10" ViewCount="" Body="&lt;p&gt;Inheritance (at least when used heavily).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;see &lt;a href=&quot;http://msmvps.com/blogs/jon_skeet/archive/2006/03/04/inheritancetax.aspx&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://www.javaworld.com/javaworld/jw-08-2003/jw-0801-toolbox.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; for both C# and Java-based rationale.&lt;/p&gt;&#xA;" OwnerUserId="5933" LastActivityDate="2010-11-04T11:19:09.120" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="1" />
  <row Id="16762" PostTypeId="2" ParentId="16708" CreationDate="2010-11-04T11:22:25.060" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Make sure no-one implemented what you're trying to do at home.&lt;/li&gt;&#xA;&lt;li&gt;Make sure you're interested in what would be the result of your work at home.&lt;/li&gt;&#xA;&lt;li&gt;Make sure other people than you think they would be interested to see the result of your work at home.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;is to make your initial motivation boost enough to make you start the project. &lt;/li&gt;&#xA;&lt;li&gt;is to make you plan and organize in a way that will make you avoid stoping the project each time you're blocked. &lt;/li&gt;&#xA;&lt;li&gt;is to give your regular motivation boost on the long run. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-11-04T11:22:25.060" CommunityOwnedDate="2011-02-04T23:07:08.093" />
  <row Id="16763" PostTypeId="2" ParentId="16760" CreationDate="2010-11-04T11:29:40.920" Score="4" ViewCount="" Body="&lt;p&gt;Without an answer to my comment above, these are things that come to mind generally speaking but I am not sure I would consider these technical. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What type of version control have you used?  &lt;/li&gt;&#xA;&lt;li&gt;Are you familiar with software development methodologies such as agile, waterfall, tdd? &lt;/li&gt;&#xA;&lt;li&gt;What is the purpose of documentation in software? &lt;/li&gt;&#xA;&lt;li&gt;Difference between statically and dynamically typed languages? &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-11-04T11:29:40.920" CommentCount="4" />
  <row Id="16765" PostTypeId="2" ParentId="16734" CreationDate="2010-11-04T11:34:46.240" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;NULL in C or C++&lt;/strong&gt; is often mistaken for something magical, but its' a preprocessor defined as &lt;code&gt;0&lt;/code&gt; or &lt;code&gt;(void *)0&lt;/code&gt;. When learning C or C++, you test pointers against NULL. Later on, you learn that you can just do &lt;code&gt;if (ptr)&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other languages such as Objective-C or C#, nil/null is part of the language, even if it does essentially the same thing.&lt;/p&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-11-05T23:08:14.557" LastActivityDate="2010-11-05T23:08:14.557" CommentCount="4" />
  <row Id="16766" PostTypeId="2" ParentId="16436" CreationDate="2010-11-04T11:38:24.097" Score="4" ViewCount="" Body="&lt;p&gt;An interview is a two-way process - you need to want to work for them as well as them wanting to hire you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before you apply to a company (or an agency applies on your behalf), you'd do some research on the company to find out more about them - who they are, what their products are, what market(s) they operate in (including major competitors).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;During the interview process (telephone, physical, etc), you'll also be able to assimilate information about their procedures/workflow/methodologies, the tool chains used, working environment plus any other useful info that wasn't on their website.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If, by the end of the interview, there's some important-to-you items they haven't answered in other discussions, this is the time to ask.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't end the interview with unfinished questions - some of them may be deal breakers to you - e.g. working hours &gt; 50/week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a checklist, in no particular order:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Programming Language(s), Environments/Platforms&lt;/li&gt;&#xA;&lt;li&gt;Tools used - IDEs, Compilers, Build System, Version Control&lt;/li&gt;&#xA;&lt;li&gt;Testing strategy - unit, automated, human&lt;/li&gt;&#xA;&lt;li&gt;Deployment strategy&lt;/li&gt;&#xA;&lt;li&gt;Work ethic - hours, rewards system&lt;/li&gt;&#xA;&lt;li&gt;Working environment - noise, daylight, air quality, space&lt;/li&gt;&#xA;&lt;li&gt;Physical location - transportation, parking, lunchtime options&lt;/li&gt;&#xA;&lt;li&gt;Non-salary package items - hours-per-week, dental, healthcare, gym, drinks, other perks.&lt;/li&gt;&#xA;&lt;li&gt;Career opportunities within the company&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-11-04T11:57:31.327" LastActivityDate="2010-11-04T11:57:31.327" CommunityOwnedDate="2011-01-28T12:13:01.007" />
  <row Id="16767" PostTypeId="2" ParentId="16734" CreationDate="2010-11-04T11:56:28.957" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The standard C library.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After programming C for 10 years or so reading the sourcecode of &lt;a href=&quot;http://cr.yp.to/djbdns.html&quot; rel=&quot;nofollow&quot;&gt;software by Dan Bernstein&lt;/a&gt; made me realize that you can use C without using &lt;code&gt;printf&lt;/code&gt;, &lt;code&gt;malloc&lt;/code&gt; and all the other stuff we take for granted.&lt;/p&gt;&#xA;" OwnerUserId="6307" LastActivityDate="2010-11-04T11:56:28.957" CommentCount="2" />
  <row Id="16768" PostTypeId="2" ParentId="3789" CreationDate="2010-11-04T11:59:55.420" Score="-1" ViewCount="" Body="&lt;p&gt;I would recommend Perl. With it you can . . .&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(1) teach procedural programming.&#xA;(2) teach object-oriented programming&#xA;(3) teach testing. It is easy to do with Perl scripts (c.f. &lt;a href=&quot;http://petdance.com/perl/automated-testing/&quot; rel=&quot;nofollow&quot;&gt;Automated Testing with Perl&lt;/a&gt;). Thus teaching Test-Driven Development from the start is not difficult. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I have noticed that even projects that primarily use other languages, Perl is often still used for some of the essential parts. It reminds me of a quote I read recently: &lt;a href=&quot;http://dobbse.net/thinair/2006/06/play-nice.html&quot; rel=&quot;nofollow&quot;&gt;&quot;Perl began with the assumption that it would not be the only tool in your toolbox: it set out from the beginning to play well with others.&quot;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3569" LastActivityDate="2010-11-04T11:59:55.420" CommentCount="1" />
  <row Id="16769" PostTypeId="1" AcceptedAnswerId="16799" CreationDate="2010-11-04T12:15:01.547" Score="1" ViewCount="466" Body="&lt;p&gt;As I get it, &lt;strong&gt;having an error (even a typo like or missing &quot;;&quot;) in your whiteboard code will often cost you some interview points&lt;/strong&gt;. Avoiding that will inevitably make one proof-reading code again and again (losing time and possibly neural energy / concentration) or even using a simpler (and thus less effective) algoritm -- and both these ways are &quot;costy&quot; again!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, &lt;strong&gt;why not just fast write code&lt;/strong&gt; as elegant and effective as you would having a (unit) testing framework at your disposal &lt;strong&gt;and then just normally test it it (just on the whiteboard)&lt;/strong&gt; ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone tried / seen this approach? Is the whole idea worthy?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;[this also applies to the pen-and-paper case of course]&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5933" LastActivityDate="2010-11-04T17:56:00.573" Title="Whiteboard &quot;testing&quot; during an interview: legitimate way to back up your (whiteboard) code?" Tags="&lt;interview&gt;&lt;coding&gt;&lt;pen-and-paper&gt;" AnswerCount="6" CommentCount="5" FavoriteCount="1" />
  <row Id="16770" PostTypeId="1" CreationDate="2010-11-04T12:22:06.237" Score="10" ViewCount="641" Body="&lt;ul&gt;&#xA;&lt;li&gt;Working all day in the same place&lt;/li&gt;&#xA;&lt;li&gt;With the same people&lt;/li&gt;&#xA;&lt;li&gt;Doing the same tasks&lt;/li&gt;&#xA;&lt;li&gt;With no tangible output&lt;/li&gt;&#xA;&lt;li&gt;And no physical activity&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Does this bother you at all?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm nearly through a year-long software engineering internship at an oil services company and I'm thinking about dropping software and doing my masters in Petroleum Engineering with a view to moving on to a job as a Field Engineer, travelling regularly and servicing oil wells. Working here has given me an insight into the industry but perhaps the most imporant lesson learned has been that work is not just about getting money: its about your lifestyle and so many other things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like programming but I don't think I could be happy with the 9-5 lifestyle forever, and especially not while I'm still young - &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I want a job that allows me to travel, &lt;/li&gt;&#xA;&lt;li&gt;to meet people, to do something physical &lt;/li&gt;&#xA;&lt;li&gt;and with an actual tangible output - &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;all the things that a software job just doesn't seem to give.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have so much energy and I feel like working in an office all day just sucks it all away, like I'm wasted in this environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So has anyone been through this? Are you happy with your job or do you miss certain things?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Considering the bullet points, do you think the software industry is inherently low in job satisfaction?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="3543" LastEditorUserId="3543" LastEditorDisplayName="" LastEditDate="2010-11-05T10:09:55.583" LastActivityDate="2010-11-05T10:09:55.583" Title="Is the software industry inherently low in job satisfaction?" Tags="&lt;jobs&gt;&lt;career&gt;&lt;career-advice&gt;&lt;satisfaction&gt;" AnswerCount="10" CommentCount="6" FavoriteCount="1" />
  <row Id="16771" PostTypeId="2" ParentId="16618" CreationDate="2010-11-04T12:23:44.177" Score="6" ViewCount="" Body="&lt;p&gt;OK, I know this is going to be controversial, but:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Developers considered harmful&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously. Many advances over the last fifty years or so have involved reducing scope for human error at the part where the requirements get turned into executable code:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;compilers stop us having to translate down to the basest hardware level&lt;/li&gt;&#xA;&lt;li&gt;modeling tools and GUI builders automatically generate code for common scenarios&lt;/li&gt;&#xA;&lt;li&gt;structured and OO paradigms both let us re-use existing software instead of writing our own&lt;/li&gt;&#xA;&lt;li&gt;automated testing provides a form of the requirements/spec that can be automatically checked&lt;/li&gt;&#xA;&lt;li&gt;BDD is starting to bridge the gap between the high-level requirements and the low level at which automated testing is usually applied&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So within a couple of decades, software will probably be largely written by tools that comprehend the business analyst's requirements, rather than by squishy error-prone coders. Well, they did say that computers would make some people redundant...&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-11-04T12:23:44.177" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="18" />
  <row Id="16772" PostTypeId="2" ParentId="16770" CreationDate="2010-11-04T12:25:49.173" Score="10" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Working all day in the same place&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If the place is nice, why not?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;With the same people&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If the people are nice, why not?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Doing the same tasks&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If it's clearning sugar factory silos (containing beet chunks, not candies), that may be disturbing, but if you are passionated with software development, why not?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;With no tangible output&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The tangible output is what your company does. You contributed to that. It's your output.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;And no physical activity&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's why it's necessary to take regular pauses and do at least 3h of sports per week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's more the way you view your situation that makes it painful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Change the way you look at your current situation, or change something.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-04T12:55:15.067" LastActivityDate="2010-11-04T12:55:15.067" CommentCount="2" />
  <row Id="16773" PostTypeId="2" ParentId="16770" CreationDate="2010-11-04T12:28:11.043" Score="6" ViewCount="" Body="&lt;p&gt;I'm not sure you could ever make a flat statement like &quot;software development is inherently unsatisfying&quot;, mainly because different people find satisfaction in different things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love puzzles, always have. I find software engineering a great exercise in puzzle solving. The mental engagement of it is enormously stimulating to me. The fact that I do it sitting in the same place mostly on my own doesn't particularly bother me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From what you've said, I think you're dead on to ask yourself whether a career as a developer is right for you. There are people who are perfectly suited for more physical, more outdoor, more sociable positions. What's going to be best for them is to find such a position.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-11-04T12:28:11.043" />
  <row Id="16774" PostTypeId="2" ParentId="16770" CreationDate="2010-11-04T12:28:53.120" Score="17" ViewCount="" Body="&lt;p&gt;I think your bullet points could describe almost any office job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I think job satisfaction has a great deal to do with the company you work for, what you do in the IT field, and who you are. For example, I like the company I work for, the people I work with, the work I do is different almost daily, the lack of physical activity doesn't bother me, and I actually do see some output of the items I work on (sometimes not daily, but fairly frequently).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming isn't for everyone, so if you think you would be happier elsewhere, I'd say go for it. But understand that your experience with one company does not represent the whole industry.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-11-04T12:28:53.120" CommentCount="2" />
  <row Id="16775" PostTypeId="2" ParentId="16732" CreationDate="2010-11-04T12:40:25.457" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Case:&lt;/strong&gt; a &quot;module&quot; (in a broad sence, i.e. something having a public interface and possibly also some private inner parts) has some complicated / involved logic inside it. Testing just the module interface will be sort of an integration testing with relation to the module's inner structure, and thus in case a error is found such testing will not localize the exact inner part / component that is responsible for the failure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; turn the complicated inner parts into modules themselves, unit-test them (and repeat these steps for them if they are too complicated themselves) and import into your original module. Now you have just a set of modules simple enough to uniit-test (both check that behavior is correct and fix errors) easily, and that's all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;there will be no need to change anything in tests of the module's (former) &quot;sub-modules&quot; when changing the module's contract, unless the &quot;sub-module&quot;'s no more offer services sufficient to fulfil the new/changed contract.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;nothing will be needlessly made &lt;em&gt;public&lt;/em&gt; i.e. the module's contract will be kept and the encapsulation maintained.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;[Update]&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To test some smart internal logic in cases when it is difficult to put object's inner parts (I mean members not the privately imported modules / packages) into appropriate state with just feeding it inputs via the object's public interface:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;just have some testing code with friend (in C++ terms) or package (Java) access to the innards actually setting the state from inside and testing the behavior as you'd like. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;this will not break the encapsulation again while providing easy direct access to the internals for testing purposes -- just run the tests as a &quot;black box&quot; and compile them out in release builds.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5933" LastEditorUserId="5933" LastEditorDisplayName="" LastEditDate="2010-11-05T10:14:17.143" LastActivityDate="2010-11-05T10:14:17.143" CommentCount="3" />
  <row Id="16776" PostTypeId="2" ParentId="16770" CreationDate="2010-11-04T12:43:48.230" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;I want a job that allows me to travel,&lt;/li&gt;&#xA;  &lt;li&gt;to meet people, to do something physical&lt;/li&gt;&#xA;  &lt;li&gt;and with an actual tangible output -&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Well being a contractor/freelance software developer would allow you to travel and meet people - not all software development jobs are the same and you only stay in the same office if you work for the same company (and perhaps not even then). Also taking a more customer facing role (support engineer, project work rather than product work) would allow you to meet more people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately for you software development is not a physical activity and the output is only tangible if you look at what your software &lt;em&gt;does&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if these are the requirements you &lt;strong&gt;must&lt;/strong&gt; have from any job then software development is not for you.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-11-04T12:43:48.230" />
  <row Id="16777" PostTypeId="2" ParentId="16760" CreationDate="2010-11-04T12:49:15.057" Score="20" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;What is a class?&lt;/li&gt;&#xA;&lt;li&gt;What is a static method?&lt;/li&gt;&#xA;&lt;li&gt;What is inheritance?&lt;/li&gt;&#xA;&lt;li&gt;What is polymorphism?&lt;/li&gt;&#xA;&lt;li&gt;What is a primary key?&lt;/li&gt;&#xA;&lt;li&gt;What is a foreign key?&lt;/li&gt;&#xA;&lt;li&gt;What is the difference between HTTP GET and HTTP POST?&lt;/li&gt;&#xA;&lt;li&gt;What is a web service?&lt;/li&gt;&#xA;&lt;li&gt;Name some data structures.&lt;/li&gt;&#xA;&lt;li&gt;What is the purpose of an Object/Relational Mapper?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Feel free to suggest replacements, this list has much room for improvement.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-11-04T19:31:16.053" LastActivityDate="2010-11-04T19:31:16.053" CommentCount="10" />
  <row Id="16778" PostTypeId="2" ParentId="16654" CreationDate="2010-11-04T12:52:10.373" Score="1" ViewCount="" Body="&lt;p&gt;I don't usually change general coding practices but I may let the code slip from the design. Usually this happens when I find the design needs to be re-factored a bit but instead of doing that I just staple some code in place that will make it work with an inadequate design. I usually make some TODO comments about this so we can fix it later.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-04T12:52:10.373" />
  <row Id="16779" PostTypeId="1" AcceptedAnswerId="16804" CreationDate="2010-11-04T12:56:49.557" Score="7" ViewCount="508" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a software developer, I've worked on projects ranging from tiny home-made apps to medium-size enterprise applications. &lt;strong&gt;In nearly every project I used a database&lt;/strong&gt; or regretted choosing not to use it from the beginning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I am wondering a few things about the databases and their usage in general applications:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Why Windows itself doesn't use any &quot;central&quot; SQL database? For example:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Errors Reporting data is stored in a bunch of files,&lt;/li&gt;&#xA;&lt;li&gt;Windows Update stores everything in flat files,&lt;/li&gt;&#xA;&lt;li&gt;Icons cache is stored in a very strange single file which doesn't seem to be accessed through SQL, etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Why so many large applications avoid using databases? For example, wouldn't Microsoft Outlook gain by using a real database instead of reinventing the wheel by having its own format for .pst files and storing some data in registry?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If database adds an additional layer of an overall complexity and a tiny performance loss, it is a price of a huge advantage of making the code simpler in most circumstances, especially when it comes to the storage of small organized chunks of data instead of large binary streams. So why so few products are actually using databases? Probably the only application I know which actually uses Sqlite database is Firefox, and maybe Microsoft Exchange (but the last one is not a desktop application)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, wouldn't &lt;em&gt;a set&lt;/em&gt; of applications, like Microsoft Office or Microsoft Expression, benefit from having an &lt;em&gt;unified SQL database&lt;/em&gt;, making it easier to deploy the applications, to update/upgrade the data, to share data between those applications, to make backups, etc.?&lt;/p&gt;&#xA;" OwnerUserId="6605" LastActivityDate="2011-05-23T17:03:29.510" Title="Why SQL is not so widespread in large desktop applications?" Tags="&lt;sql&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="1" />
  <row Id="16780" PostTypeId="2" ParentId="16769" CreationDate="2010-11-04T12:59:39.057" Score="9" ViewCount="" Body="&lt;p&gt;I think you've made an incorrect assumption here.  There's no way I'd expect a candidate writing up code on a whiteboard to be able to get every ';' perfectly in place.  If you're interviewing at a place which does penalise you for that then I suggest they're not an organisation you want to work for :-).&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2010-11-04T13:19:09.233" LastActivityDate="2010-11-04T13:19:09.233" />
  <row Id="16781" PostTypeId="2" ParentId="16770" CreationDate="2010-11-04T13:02:02.757" Score="2" ViewCount="" Body="&lt;p&gt;&quot;Do what you love, and you'll never work a day in your life.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;--Attributed to Confucius, Gandhi, and any number of other people&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Extremely corny, very simplified, primarily true...&lt;/p&gt;&#xA;" OwnerUserId="5030" LastEditorUserId="5030" LastEditorDisplayName="" LastEditDate="2010-11-04T15:26:33.843" LastActivityDate="2010-11-04T15:26:33.843" />
  <row Id="16782" PostTypeId="2" ParentId="16701" CreationDate="2010-11-04T13:02:11.873" Score="0" ViewCount="" Body="&lt;p&gt;If what you are selling is your services you have to have a cost basis to use to set your prices. Human resources hours are by far the largest component of cost so yes you must have some way of knowing what those costs actually are. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You also need to know this to know how healthy your project is. If you've used 75% of the planned hours but only developed 50% of the product then you already know you are behind and don't have to wait till you blow the deadline before you start managing that problem. Yes you could do this with the calendar too but that isn't so precise and doesn't really help you recalibrate your estimates like you need to do.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-04T13:02:11.873" />
  <row Id="16783" PostTypeId="2" ParentId="16769" CreationDate="2010-11-04T13:04:23.650" Score="1" ViewCount="" Body="&lt;p&gt;When a restaurant wants to hire a chef, the owner doesn't ask him to cook a &quot;pot au feu&quot; with a toothpick and a cap.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't ask a developer to code on a whiteboard in an interview.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-04T17:56:00.573" LastActivityDate="2010-11-04T17:56:00.573" CommentCount="2" />
  <row Id="16784" PostTypeId="2" ParentId="16646" CreationDate="2010-11-04T13:04:33.127" Score="0" ViewCount="" Body="&lt;p&gt;Although a lot will depend on the context I'd &lt;em&gt;generally&lt;/em&gt; avoid putting any sort of breakable logic (including exceptions) into properties. Just as one example, there's a lot of things which you (or some library that you're using) could do which use reflection to iterate over properties resulting in errors you didn't anticipate at design-time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I say generally though as there may be some times when you absolutely, definitely, want to block something without worrying too much about the consequences. Security I guess would be the classic case there.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-04T13:04:33.127" />
  <row Id="16785" PostTypeId="2" ParentId="16779" CreationDate="2010-11-04T13:06:40.573" Score="6" ViewCount="" Body="&lt;p&gt;Relational databases are not the most efficient data structure for every domain. Lots of desktop applications do use embedded databases, you just can't readily tell they are doing it if all you see are a couple of data files.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-04T13:06:40.573" CommentCount="3" />
  <row Id="16786" PostTypeId="2" ParentId="16769" CreationDate="2010-11-04T13:13:46.707" Score="3" ViewCount="" Body="&lt;p&gt;Paper or whiteboard tests are extremely ineffective. I remember once I had an interview where I had to look for errors in some code on paper. One of them was that the class inherited from an interface but was missing the implementation of a member. I knew this was likely to be one of the errors, I was looking for it and for whatever reason on the spot I just couldn't see it (although I did mention that I was looking for that as one of the issues).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As it happens, I still got that job, but it did make me think about what had happened. In a realistic scenario for that sort of thing I'm going to get squiggly lines the moment something's wrong (this is C# in Visual Studio) and the thing isn't going to compile. I never check for this in real life because it &lt;strong&gt;never&lt;/strong&gt; happens (it is impossible) and hence I'm de-tuned from seeing this sort of thing. Missing semi-colons are an even more extreme example of this - totally unrealistic in the real world unless you're writing in notepad and e-mailing your code to someone else to compile!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If someone asks to use a whiteboard during an interview to support something they want to say then great, but I'd never do it the other way around.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-04T13:13:46.707" CommentCount="4" />
  <row Id="16787" PostTypeId="2" ParentId="16760" CreationDate="2010-11-04T13:13:54.163" Score="15" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Explain pointers!&lt;/li&gt;&#xA;&lt;li&gt;What are closures?&lt;/li&gt;&#xA;&lt;li&gt;Which languages do you use in your spare time and why?&lt;/li&gt;&#xA;&lt;li&gt;Talk a little about transactions!&lt;/li&gt;&#xA;&lt;li&gt;What's the difference between an interpreter and a JIT?&lt;/li&gt;&#xA;&lt;li&gt;Explain the basics of a compiler.&lt;/li&gt;&#xA;&lt;li&gt;What happens on memory level when you do recursion (and what's different when you have TCO)&lt;/li&gt;&#xA;&lt;li&gt;What are the important concepts of OO Programming (and why are they important)?&lt;/li&gt;&#xA;&lt;li&gt;What new stuff are you looking into at home and why is it interesting?&lt;/li&gt;&#xA;&lt;li&gt;Explain the difference between a process and a thread.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2743" LastEditorUserId="2276" LastEditorDisplayName="" LastEditDate="2010-11-04T13:39:20.523" LastActivityDate="2010-11-04T13:39:20.523" CommentCount="9" />
  <row Id="16788" PostTypeId="1" AcceptedAnswerId="16813" CreationDate="2010-11-04T13:13:58.377" Score="6" ViewCount="823" Body="&lt;p&gt;I know there's another question on here already about pronunciation &lt;a href=&quot;http://programmers.stackexchange.com/questions/13757/pronunciation-in-programming&quot;&gt;here&lt;/a&gt;, but it's got a whole list of programming terms.  I'm just interested in finding out how everybody pronounces just one thing - &quot;char&quot;.  I personally like &quot;care&quot; as in the first syllable of &quot;character&quot;, since that's what it represents, but in past experience I've found there are far more people who say &quot;char&quot; as in &quot;char-broiled&quot;, and some who say &quot;car&quot;.  Sorry to start a holy war, but I'm curious.&lt;/p&gt;&#xA;" OwnerUserId="5279" LastActivityDate="2011-02-11T14:41:16.500" Title="Pronunciation of &quot;char&quot;" Tags="&lt;holy-war&gt;&lt;pronunciation&gt;" AnswerCount="14" CommentCount="3" />
  <row Id="16790" PostTypeId="2" ParentId="16769" CreationDate="2010-11-04T13:16:25.270" Score="2" ViewCount="" Body="&lt;p&gt;I use this approach when taking tests for school. I first write the function, then off to the side I write a little table of inputs, outputs, and vars. I've caught a few stupid errors this way. Testing, even on-paper/whiteboard testing, is always better than not testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I disagree with freaking out over semicolons in a professional setting, though.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-11-04T13:16:25.270" />
  <row Id="16791" PostTypeId="2" ParentId="16654" CreationDate="2010-11-04T13:18:36.797" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Writing methods to do one thing instead of all permutations and exceptions of it.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I have to cut corners by coding a method to be very specific to what I'm currently releasing.  A very basic example would be if you have a requirement to write a method to take an order and ship it to somewhere from a warehouse.  Sometimes I write the code so that it is with the assumption that everything comes from that single warehouse.  But what about when they get a new warehouse?  Or 5?  We're growing, so it may be soon, but to do multiples it would require methods to translate inventory and closeness of a warehouse to which warehouse would actually ship the goods. What if one is out of the product?  Do you wait since it's the closest?  Do you just ship from the other if they have it?  What about shipping costs?  Is it worth it?  That's way too much extra coding on a deadline.  Sometimes I have to cross that bridge when I come to it.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-11-04T13:18:36.797" CommentCount="1" />
  <row Id="16792" PostTypeId="2" ParentId="16788" CreationDate="2010-11-04T13:19:33.507" Score="0" ViewCount="" Body="&lt;p&gt;Always disliked the char-broiled variant, and preferred the &quot;Car&quot; option. Never came across the &quot;care&quot; variant.&lt;/p&gt;&#xA;" OwnerUserId="1307" LastActivityDate="2010-11-04T13:19:33.507" CommentCount="1" />
  <row Id="16793" PostTypeId="2" ParentId="13341" CreationDate="2010-11-04T13:19:36.453" Score="0" ViewCount="" Body="&lt;p&gt;It was mentioned in a comment by @Alex Feinman, but I think it deserves its own answer - I just discovered &lt;a href=&quot;http://www.workrave.org/&quot; rel=&quot;nofollow&quot;&gt;Workrave&lt;/a&gt; for keeping time and find it to be really useful.  It also fits in very nicely with the &lt;a href=&quot;http://www.pomodorotechnique.com/&quot; rel=&quot;nofollow&quot;&gt;Pomodoro&lt;/a&gt; technique that was mentioned in another answer here.&lt;/p&gt;&#xA;" OwnerUserId="5279" LastActivityDate="2010-11-04T13:19:36.453" />
  <row Id="16794" PostTypeId="2" ParentId="16788" CreationDate="2010-11-04T13:21:00.010" Score="4" ViewCount="" Body="&lt;p&gt;&quot;Char&quot; is short for &quot;Character&quot;, so if you're trying to keep it as close to the real word as possible, then...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&quot;Char&quot; as in &quot;Care-bears&quot;.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Note: Even though I think &quot;Care&quot; would be more correct, I pronounce it a different, possibly grammatically incorrect way: &quot;Char&quot; as in &quot;Charlie&quot;&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-11-04T14:12:17.187" LastActivityDate="2010-11-04T14:12:17.187" CommentCount="7" />
  <row Id="16795" PostTypeId="2" ParentId="13109" CreationDate="2010-11-04T13:25:18.553" Score="3" ViewCount="" Body="&lt;p&gt;This is a very finance specific book but its one that every developer I work with has read or is currently reading:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0136015891&quot; rel=&quot;nofollow&quot;&gt;Hull, John - Options, Futures and other Derivertives&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="154" LastActivityDate="2010-11-04T13:25:18.553" CommentCount="1" />
  <row Id="16796" PostTypeId="2" ParentId="16788" CreationDate="2010-11-04T13:25:53.510" Score="36" ViewCount="" Body="&lt;p&gt;I've never heard 'car', always 'char' as in charbroiled. Made sense to me, like pronouncing GUI 'gooey'. I think that programmers tend to pronounce things phonetically, as a general rule.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-11-04T14:47:19.060" LastActivityDate="2010-11-04T14:47:19.060" CommentCount="7" />
  <row Id="16797" PostTypeId="2" ParentId="16770" CreationDate="2010-11-04T13:37:04.577" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I'm still young -&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;I want a job that allows me to travel&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;As long as you can &lt;em&gt;choose&lt;/em&gt; when and where your travel, all well and good. But the day you have partner and family, having to jet away to the other side of the world for weeks at a time won't seem so sexy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That doesn't mean don't go through with your plan, just bear in mind that you won't always be young, free and single :).&lt;/p&gt;&#xA;" OwnerUserId="4285" LastActivityDate="2010-11-04T13:37:04.577" />
  <row Id="16798" PostTypeId="1" AcceptedAnswerId="16800" CreationDate="2010-11-04T13:43:14.997" Score="0" ViewCount="47" Body="&lt;p&gt;Ok so this is another in the series of my naive questions :-(&#xA;In my web application, I give the user the option to import all his contacts from his email account and then send out invites to all these accounts or map the user to the existing accounts based on emails. Now the question is once all these contacts are imported , would it be right to save these contacts back for repeated reminders etc. I am quite confused here , because that is the way all the sites operate, but would that not be violation of data privacy etc etc. Could someone help me with a small algorithm here to handle this please.&lt;/p&gt;&#xA;" OwnerUserId="5701" LastActivityDate="2010-11-04T13:47:30.617" Title="Handling contacts imported from users email account" Tags="&lt;web-development&gt;" AnswerCount="1" />
  <row Id="16799" PostTypeId="2" ParentId="16769" CreationDate="2010-11-04T13:45:38.723" Score="15" ViewCount="" Body="&lt;p&gt;I absolutely want you to test the whiteboard code I ask you to write. I want you to talk out loud while you write it, look it over, spot most of the syntax mistakes you made, and point out how it could be more efficient. In fact, that's kind of the point of doing it at the whiteboard. It's &lt;strong&gt;not&lt;/strong&gt; a one-shot, write-it-all-out, uh-huh-you-get-70/100 kind of thing. It's a conversation, mediated by code and held at the whiteboard instead of across my desk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some great ways to fail the &quot;Whiteboard coding&quot; test:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;refuse it&lt;/li&gt;&#xA;&lt;li&gt;don't ask a single clarifying question (language, platform, something about the requirements) AND don't tell me your assumptions about any of it AND make assumptions that are way off what I would have answered&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(eg: write it in Fortran, interpret &quot;display&quot; or &quot;print&quot; as &quot;write to the event log&quot;, that sort of thing. I might allow it if you told me in advance those were your assumptions)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ask me what language I want it in, receive an answer that is in the job description, and then write it in a different language because you're not comfortable in the language I asked for.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(We're consultants here. I am testing for consultant behaviour as much as coding. Asking the client is only correct if the client actually has a choice. Controlling conversations with people who will pay you is hard. This is lesson 1. It's a mark against you on any topic, but for the specific &quot;you're hiring an X programmer but I don't want to write in X for you&quot; you now have two big black marks.)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;show me what an architecture astronaut you are by filling two whiteboards with interfaces, factory patterns, abstractions, injections, and tests when I wanted you to &quot;print the numbers from one to 5&quot;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(you think I'm exaggerating but I had a guy who generalized my problem dramatically - sticking to the example above let's say instead of 1 to 5 his solution would do any arbitrary sequence of integers (got from where? I wondered) and was 5 times as long as anyone else's - and he forgot to actually call the function that did the work. Repeated prompting and suggesting that he walk through it as though he was the debugger did not lead to his noticing that the function was never called.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always say &quot;do you like that?&quot; &quot;can you improve that?&quot; &quot;walk me through that&quot; and the like. Typically the missing semi colon gets spotted, or the off-by-one, in that conversation. If not, I usually mark it up to nerves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other things you may not think matter at the whiteboard that matter to me:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;when you're done, can I still read it? Have you smudged, scribbled over, switched colours, drawn arrows, crossed out and generally left a mess that can't now be used? Or are you aware that whiteboards are erasable, pointed to lines of code in the air instead of circling/arrowing them, and left me something I could take a picture of and keep in the design file?&lt;/li&gt;&#xA;&lt;li&gt;how much did you ask me as you did it? Do you like to be left alone and not discuss your code, or do you see code as a collaborative thing? How did you respond when I asked you things while you were still writing it?&lt;/li&gt;&#xA;&lt;li&gt;did you sneer at the &quot;easy&quot; task or faint at the &quot;hard&quot; one? Were you rude about being asked to show you can code? Are you easily intimidated by a technical problem, or arrogant about your ability to come up with a good algorithm?&lt;/li&gt;&#xA;&lt;li&gt;are you working it out in your head, or remembering a solution you read somewhere? I can usually tell for the hard problems.&lt;/li&gt;&#xA;&lt;li&gt;did you plan ahead about where you started writing? Folks who run out of whiteboard usually start too low or write too big - I can tell they didn't know this was going to be 20 lines of code and so only left room for 5 - believe it or not this tiny detail is mirrored in bigger estimating tasks as well.&lt;/li&gt;&#xA;&lt;li&gt;did you look it over before you said you were done? Did I see you pointing or tapping your way through it and testing it yourself before I asked you to? When I prompted you, or asked you specific questions about it, did you look at it again, or just go from memory? Are you willing to consider that your first draft might not be complete?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I strongly recommend practicing coding at the whiteboard. I always warn interviewees that they will be asked to do it. If you have access to an actual whiteboard then set yourself some simple problems and practice doing them there. It will help your performance and your confidence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry I know I'm in TL;DR territory but here's the thing - &lt;em&gt;coding at the whiteboard is about more than coding&lt;/em&gt;. It's a test of more than your grasp of syntax. There are a lot of behaviours of good programmers that are demonstrated in your response to this task. If you think it's only about coding you are missing the point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other conversations about whiteboard testing, people tell me I may reject a good candidate with it. Honestly, that's a risk I'm willing to take. Every hiring round contains several people I could hire. Some people with great resumes, who are doing ok in the question-and-answer part of the interview, fall apart at the whiteboard and clearly cannot (with any amount of prompting) write simple code in the language they claim to know. I might have hired some of these. Any tool that prevents that is a tool I will continue to use. I have never ended up in a no-one to hire boat because all my candidates messed up at the whiteboard and I don't expect I ever will.&lt;/p&gt;&#xA;" OwnerUserId="285" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2010-11-04T16:42:55.607" LastActivityDate="2010-11-04T16:42:55.607" CommentCount="4" />
  <row Id="16800" PostTypeId="2" ParentId="16798" CreationDate="2010-11-04T13:47:30.617" Score="2" ViewCount="" Body="&lt;p&gt;I think it would only be valid to store those contacts for repeated reminders people if they &lt;em&gt;explicitly&lt;/em&gt; opt in to do so.  Also very importantly, that reminder should not be sent unless the original user clicks on the magic button (s/he annoying their friends that's better than you annoying them).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Contacts for a user change all of the time anyhow, so inviting them to go through the process from scratch is probably better idea anyhow.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-04T13:47:30.617" />
  <row Id="16801" PostTypeId="2" ParentId="16760" CreationDate="2010-11-04T13:49:55.843" Score="12" ViewCount="" Body="&lt;p&gt;My experience of students I'd pretty much start from scratch - I've found what people learn at University and what is useful are two pretty separate sets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But as you have the chance to speak to them it would be silly not to take it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My assumption is that there is little commonality in their background so I'm avoiding language specific questions.  The one exception I've made to this is an assumption that they've done something on the web but this question could be subbed for something equivalent if they're embedded specialists or whatever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You've asked for them to be progressive which I've sort of tried to do but if my assumption about no commonality is correct right / wrong questions are relatively tricky and a lot of their competence will come from how good their answers to more general questions are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) What languages and technologies have you been exposed to?  How many of these (and which ones) have you spent more than 50 hours actually programming (that is not including lectures, lab time and so on but including projects and assignments where you were coding solo).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Describe the most complex program you've ever written.  What made it complex?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) What were you taught at university (relating to programming) that you really don't think you understand properly?  If you think that you understood everything (check their grades at this point) then talk about an application or an element of an application that you've seen that you wouldn't know how to code and how you might start thinking about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) What are the basic tenets of Object Oriented Programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) Tell me as much about relational databases as you can in 1 minute&lt;/p&gt;&#xA;&#xA;&lt;p&gt;6) For a web application describe a method for maintaining information about the user between pages.  What advantages and disadvantages exist for the mechanism you've described.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;7) Pick an piece of commonly used functionality within computing and explain to be very briefly how it works at a programmatic level (e.g. encryption, compression).  Also explain how you had to use that functionality you'd implement it (here I'd be looking for the fact that although you may know how something works, it's probably better to grab a library for it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:  Restructured and added a couple of extra questions to make it more progressive as originally asked.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-05T09:40:17.227" LastActivityDate="2010-11-05T09:40:17.227" CommentCount="2" />
  <row Id="16802" PostTypeId="1" CreationDate="2010-11-04T13:51:49.180" Score="7" ViewCount="2233" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm planning to take 70-515 exam and I can't find any training kit for it from MS press at the moment. Therefore, I'm reading the book for 70-562 which covers framework 3.5. I would like to know if someone has taken 70-515 exam and knows if 70-562 training kit can be helpful for the exam 70-515. Are there any resources someone might like to suggest which can help me pass this exam? I would really appreciate any help.&lt;/p&gt;&#xA;" OwnerUserId="7027" LastActivityDate="2011-05-31T12:35:11.087" Title="Anyone who has taken 70-515 TS: Web Applications Development with Microsoft .NET Framework 4 exam?" Tags="&lt;web-development&gt;&lt;.net&gt;&lt;asp.net&gt;&lt;microsoft&gt;&lt;certification&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="16803" PostTypeId="2" ParentId="16760" CreationDate="2010-11-04T13:53:31.183" Score="2" ViewCount="" Body="&lt;p&gt;I realize you are trying to build the training based on what they don't know, and that you plan to have several &quot;buckets&quot; of training for different groups of students. Since you have only ten minutes alloted, why not make a list of things you are thinking of including in the training, and ask those specific questions. So you plan to teach them C#. Ask if they know it well. Ask if they've used any more recent features (LINQ, nullable types, generics, ...). If there's database content in your training, ask some questions about that. In the end you may see that one of the topics you had planned is unnecessary, because they all know it, and some other topics are needed by everyone, and so on. That's more practical than trying to come up with questions that are not related to either what you're able to train them on (context switch time on linux?) or not related to the work you intend to have them do after they're trained.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-04T13:53:31.183" />
  <row Id="16804" PostTypeId="2" ParentId="16779" CreationDate="2010-11-04T14:00:59.713" Score="6" ViewCount="" Body="&lt;p&gt;1) Generally speaking the overhead of running a full RDBMS is too great and it would be adding needless load to the system and complexity.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having one installed makes your life easier as a developer but makes the life of the owner of the machine worse as their machine is likely to run slower and with more issues.  In developer vs. user confrontations the user should almost always win.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Many data stores have specific needs which are not met by something like SQL Server Express.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, error logs should be written to the simplest possible thing to maximise the chance that the write will happen and the data will be available.  SQL Server is never going to be that simple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For more complex applications the argument tends to be more around optimising for very specific user cases - flat files can be lightning fast.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-04T14:06:14.927" LastActivityDate="2010-11-04T14:06:14.927" />
  <row Id="16805" PostTypeId="2" ParentId="16760" CreationDate="2010-11-04T14:02:03.297" Score="1" ViewCount="" Body="&lt;p&gt;I'm not sure that it'd be possible to do this in 10 questions in 10 minutes. Maybe give them 5 minutes to tell you what they know about .net. Then have a prepared list of maybe 20 topics and pick 2 or 3 from things that they've mentioned and 2 or 3 from things that they haven't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example you could begin:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Tell me briefly (you have 5 minutes)&#xA;  how you would produce a simple C#&#xA;  project in Visual Studio from creating&#xA;  it to running it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Then after that:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;OK, tell me a little more on the&#xA;  following. It's going to be&#xA;  quick-fire, 1 minute per answer, so&#xA;  don't try to be too detailed I just&#xA;  want a feel for what you're familiar&#xA;  with.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Then ask 5 questions for so from the followin:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Explain what a class is. &lt;/li&gt;&#xA;&lt;li&gt;What's the difference between an abstract class&#xA;and an interface? &lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Briefly explain how&#xA;garbage collection works in .Net &lt;/p&gt;&#xA;&#xA;&lt;p&gt;....&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;How do you debug something if you&#xA;have a problem? &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;Yadda-yadda - I'm sure you'll be able to pick a long list to pick from the other answers&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-04T14:02:03.297" />
  <row Id="16806" PostTypeId="2" ParentId="16760" CreationDate="2010-11-04T14:06:43.693" Score="6" ViewCount="" Body="&lt;p&gt;If these are students and you are looking to be able gauge where they are in their studies then there really shouldn't be any trick questions or questions that will make them think to hard. My advice would be to just focus on the basics - there is no much point in asking them to explain how reflection works if they still aren't fully up to speed on objects and inheritance. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some sample questions that could be used and you could maybe start with something from the core knowledge category and then move around on the basis of how they answer the questions, kind of like how &lt;a href=&quot;http://en.wikipedia.org/wiki/Computerized_adaptive_testing&quot; rel=&quot;nofollow&quot;&gt;adaptive testing&lt;/a&gt; works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Fundamentals&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What are some basic program flow control commands?&lt;/li&gt;&#xA;&lt;li&gt;What are some basic logical operations?&lt;/li&gt;&#xA;&lt;li&gt;What is the difference between while and for loops?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Core&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Briefly explain object oriented programming.&lt;/li&gt;&#xA;&lt;li&gt;Briefly explain the concept of inheritance.&lt;/li&gt;&#xA;&lt;li&gt;Briefly explain how databases operate.&lt;/li&gt;&#xA;&lt;li&gt;What is the &lt;code&gt;enum&lt;/code&gt; keyword used for and when would you use it?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Advanced&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What can you tell me about C# generics or C++ templates?&lt;/li&gt;&#xA;&lt;li&gt;What can you tell me about operator overloading?&lt;/li&gt;&#xA;&lt;li&gt;What's the difference between a class and a struct?&lt;/li&gt;&#xA;&lt;li&gt;What can you tell me about reflection in .NET?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-11-04T14:06:43.693" />
  <row Id="16807" PostTypeId="1" CreationDate="2010-11-04T14:08:11.200" Score="25" ViewCount="1153" Body="&lt;p&gt;I thought about it and could not come up with an example. Why would somebody want to catch an exception and do nothing about it? Can you give an example? Maybe it is just something that should never be done.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-11-20T01:43:40.513" Title="Is it ever ok to have an empty catch statement?" Tags="&lt;exceptions&gt;" AnswerCount="19" CommentCount="3" FavoriteCount="0" />
  <row Id="16808" PostTypeId="2" ParentId="16779" CreationDate="2010-11-04T14:10:29.497" Score="9" ViewCount="" Body="&lt;p&gt;Many applications embed &lt;a href=&quot;http://www.sqlite.org/&quot; rel=&quot;nofollow&quot;&gt;SQLite&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7029" LastActivityDate="2010-11-04T14:10:29.497" />
  <row Id="16809" PostTypeId="2" ParentId="16807" CreationDate="2010-11-04T14:10:31.853" Score="1" ViewCount="" Body="&lt;p&gt;I use them for testing if Im using a capable enough IDE that allows me to view exceptions easily. Of course when I move towards production they are taken out or handled better but its a nice starting point to see what types of exceptions may occur that I have not thought of.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-11-04T14:10:31.853" />
  <row Id="16810" PostTypeId="2" ParentId="16618" CreationDate="2010-11-04T14:11:22.180" Score="9" ViewCount="" Body="&lt;p&gt;I'm going to way out on a limb here and say that too much abstraction will be considered harmful. We'vee been moving to more and more abstraction and I think this will cycle back to less abstraction when it reaches the poitn that nobody bothers to understand anything and really horrible stuff is produced. Note I am not saying all abstraction is bad (I'm not interested in doing database work in machine code!), just that I think the trend is going to a dangerous place where lack of understanding will cause major development problems. Thus we will cycle away from abstraction sort of how in American politics we cycle between political parties.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-04T14:11:22.180" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="4" />
  <row Id="16811" PostTypeId="2" ParentId="3789" CreationDate="2010-11-04T14:16:21.140" Score="3" ViewCount="" Body="&lt;p&gt;Having learned Python recently I'd recommend that people gave that some consideration.  It's clean and tidy, relatively simple, gives you results quickly (which students like) and works for a range of platforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes there are lots of things it doesn't have but I think the simplicity and quick results outweigh those limitations.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-05T12:27:14.670" LastActivityDate="2010-11-05T12:27:14.670" />
  <row Id="16812" PostTypeId="2" ParentId="16788" CreationDate="2010-11-04T14:17:19.913" Score="6" ViewCount="" Body="&lt;p&gt;Since I'm a C++ programmer, I'll defer to what &lt;a href=&quot;http://www2.research.att.com/~bs/bs_faq2.html#char&quot; rel=&quot;nofollow&quot;&gt;Bjarne Stroustrup&lt;/a&gt; says is correct.  It's &quot;tchar&quot;, not &quot;care&quot; or &quot;car&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1111" LastActivityDate="2010-11-04T14:17:19.913" CommentCount="1" />
  <row Id="16813" PostTypeId="2" ParentId="16788" CreationDate="2010-11-04T14:18:45.247" Score="10" ViewCount="" Body="&lt;p&gt;I don't pronounce it 'car', 'care', or 'char' (as in charbroiled). I pronounce it like the first syllable in 'Character' with the 'ar' sounding like it does in 'arrow' or 'arid'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This, to me, seems the most correct as it is an abbreviation for character. The same would apply to 'varchar'. &lt;/p&gt;&#xA;" OwnerUserId="6414" LastActivityDate="2010-11-04T14:18:45.247" CommentCount="5" />
  <row Id="16814" PostTypeId="2" ParentId="16779" CreationDate="2010-11-04T14:22:11.003" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Why Windows itself doesn't use any &quot;central&quot; SQL database? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Actually, this idea has been in development at Microsoft for some time. It is called &lt;a href=&quot;http://en.wikipedia.org/wiki/WinFS&quot; rel=&quot;nofollow&quot;&gt;WinFS&lt;/a&gt;. It is an intriguing technology, and it is available to MSDN subscribers. Some days soon, I'm going to install it on a VM and play around with it.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-11-04T14:22:11.003" />
  <row Id="16815" PostTypeId="2" ParentId="16807" CreationDate="2010-11-04T14:24:05.760" Score="45" ViewCount="" Body="&lt;p&gt;I do it all the time with things like conversion errors in D:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;import std.conv, std.stdio, std.exception;&#xA;&#xA;void main(string[] args) {  &#xA;    enforce(args.length &amp;gt; 1, &quot;Usage:  foo.exe filename&quot;);&#xA;&#xA;    double[] nums;&#xA;&#xA;    // Process a text file with one number per line into an array of doubles,&#xA;    // ignoring any malformed lines.&#xA;    foreach(line; File(args[1]).byLine()) {&#xA;        try {&#xA;            nums ~= to!double(line);&#xA;        } catch(ConvError) {&#xA;            // Ignore malformed lines.&#xA;        }&#xA;    }&#xA;&#xA;    // Do stuff with nums.&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That said, I think that all catch blocks should have &lt;em&gt;something&lt;/em&gt; in them, even if that something is just a comment explaining &lt;em&gt;why&lt;/em&gt; you are ignoring the exception.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:  I also want to emphasize that, if you're going to do something like this, you should be careful to only catch the specific exception you want to ignore.  Doing a plain old &lt;code&gt;catch {}&lt;/code&gt; is almost always a bad thing.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastEditorUserId="1468" LastEditorDisplayName="" LastEditDate="2010-11-04T15:24:27.163" LastActivityDate="2010-11-04T15:24:27.163" CommentCount="9" />
  <row Id="16816" PostTypeId="2" ParentId="16807" CreationDate="2010-11-04T14:32:21.940" Score="2" ViewCount="" Body="&lt;p&gt;I always at least put a printStackTrace() call in mine in Java, for the exceptions that I'm NOT expecting. If it does get hit, I want there to be a record of how it was thrown so I can look again and see if more handling was necessary.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-04T14:32:21.940" CommentCount="1" />
  <row Id="16817" PostTypeId="2" ParentId="35" CreationDate="2010-11-04T14:33:51.523" Score="2" ViewCount="" Body="&lt;p&gt;Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems - IUnknown&lt;/p&gt;&#xA;" OwnerUserId="3419" LastActivityDate="2010-11-04T14:33:51.523" CommunityOwnedDate="2010-11-04T14:33:51.523" CommentCount="1" />
  <row Id="16818" PostTypeId="2" ParentId="16807" CreationDate="2010-11-04T14:35:07.820" Score="4" ViewCount="" Body="&lt;p&gt;As a general rule, no. You either want to throw the exception up the stack, or log what happened. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I often do this when I'm parsing strings and converting to numbers  (especially in mapping projects that are of the use-once and throw away variety).&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;boolean isNonZeroNumber = false;&#xA;&#xA;try {&#xA;   if(StringUtils.isNotBlank(s) &amp;amp;&amp;amp; new BigDecimal(s).compareTo(BigDecimal.ZERO) != 0) {&#xA;     b = true;&#xA;   }&#xA;} catch(NumberFormatException e) {&#xA;//swallow this exception; b stays false.&#xA;}&#xA;&#xA;return b;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6894" LastEditorUserId="6894" LastEditorDisplayName="" LastEditDate="2010-11-04T14:41:04.330" LastActivityDate="2010-11-04T14:41:04.330" />
  <row Id="16819" PostTypeId="2" ParentId="16807" CreationDate="2010-11-04T14:35:08.790" Score="2" ViewCount="" Body="&lt;p&gt;In my humble experience, rarely is this good thing. You mileage may vary though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nearly every time I've seen this in our code base, it's been because I've tracked down a bug that the eaten exception has hidden. To put another way, by not providing any code, the application has no way of indicating an error, or performing another action.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes, at API layers for example, you might not want or be able to let exceptions past, so in that case, I tend to try and catch the most generic, then log those. Once again, to at least give a debug/diagnosis session a chance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Typically, if it &lt;em&gt;must&lt;/em&gt; be empty, the least I do is put an assertion of some kind, so at least something happens during a debug session. That said, if I can't handle it, I tend to omit them completely.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastEditorUserId="4752" LastEditorDisplayName="" LastEditDate="2010-11-04T14:42:29.067" LastActivityDate="2010-11-04T14:42:29.067" />
  <row Id="16820" PostTypeId="1" AcceptedAnswerId="16829" CreationDate="2010-11-04T14:54:09.497" Score="8" ViewCount="539" Body="&lt;p&gt;&#xA;Hey, this is specific to my particular scenario more so than a general inquiry.&#xA;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&#xA;So yeah I've been working full time as a programmer for about 2 years without a degree (self taught and started with web dev and moved into commercial app dev ). I have about 30 credit hours college credit at the moment but, at the current rate I take courses I can only take 2 courses a semester without being overwhelmed with personal life priorities. I don't think anything short of a BS in CS, CE or EE would be worth it but, at the current rate in which I am going it would take a pretty long time at 4 to 6 classes a year (including summer semester maybe 6). I do like what I do but eventually I would want to have the option potentially reach for some of the more specialized areas (In particular the areas of Security, Game Dev, R&amp;D, Embedded Devices).&#xA;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is that something I can do without a degree and just maybe work on related open source projects in my area of interest now or am I better off working on a BS degree for the next 6 years or so....&lt;/p&gt;&#xA;" OwnerUserId="707" LastActivityDate="2010-11-22T19:43:25.330" Title="Should I go to college or focus on open source projects" Tags="&lt;career-advice&gt;&lt;school&gt;&lt;advancements&gt;" AnswerCount="14" CommentCount="11" FavoriteCount="3" />
  <row Id="16821" PostTypeId="2" ParentId="16770" CreationDate="2010-11-04T14:55:35.650" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The task that you are hired to do is only one of many factors that lend to job satisfaction.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used to be a system and security type programmer; I switched to web development because I like the lifestyle better.  I don't love PHP, but I love work again, so I'll suck it up on the programming language.  One of my former cow-orkers accused me of going soft: I asked him to describe his cubicle, then pointed out that I was poolside watching my kid play and working from my laptop.  Maybe I have gone soft, but &lt;em&gt;I'm happy&lt;/em&gt;. :P&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Figure out what talents you have to make you valuable to a company.  Then figure out what kind of company you want to work for, and find a position where the two intersect.  Some things to think about:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What kind of work/life balance are you looking for?&lt;/li&gt;&#xA;&lt;li&gt;Where and how much do you wish to travel?&lt;/li&gt;&#xA;&lt;li&gt;What kind of corporate culture do you thrive in?&lt;br&gt;&#xA;&lt;em&gt;Are you all business, or do you do better in a more casual atmosphere?  Competitive, cooperative, or some point midway between the two?  Do you prefer a geek-oriented workplace, or can you thrive with business school grads dominating the scene?  Do you work better in small, closely knit teams, or in bigger departments? etc.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Do you prefer to be always learning, or do you want a job where you are asked to adapt less?&lt;/li&gt;&#xA;&lt;li&gt;Do you want the responsibility (and are you obsessive enough) for founding a start-up and making it successful, or are you more comfortable working your way up the ladder at a larger more established company?  Or are you willing to trade stability for variety and work as a consultant?&lt;/li&gt;&#xA;&lt;li&gt;Are you okay with most of your family and friends having absolutely no idea what you do for a living?  (This used to really bother me, it doesn't any more, but not everyone gets over it so easily.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-04T14:55:35.650" />
  <row Id="16822" PostTypeId="2" ParentId="16807" CreationDate="2010-11-04T14:55:55.590" Score="29" ViewCount="" Body="&lt;p&gt;One example where I think is OK to just swallow exception without doing anything, even logging the exception, is inside logging code itself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you tried to log something and got exception there is not much you can do about it: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;you can not log it of course;&lt;/li&gt;&#xA;&lt;li&gt;you might be able to fall back to a reserve logging mechanism, but most applications are not that sophisticated, and for those that are sophisticated enough the same design problem will arise with the reserve logging mechanism;&lt;/li&gt;&#xA;&lt;li&gt;fast fail - will be too radical a solution for most applications; &lt;/li&gt;&#xA;&lt;li&gt;throwing exception up will do little good as it will end up in a catch statement up the stack that will almost certain try to log it...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That leaves you with the &quot;least of the evil&quot; option of quietly swallowing it, allowing the application to keep performing its main job, but compromising the ability to troubleshoot it.&lt;/p&gt;&#xA;" OwnerUserId="7026" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2010-11-04T19:03:02.053" LastActivityDate="2010-11-04T19:03:02.053" CommentCount="3" />
  <row Id="16823" PostTypeId="2" ParentId="16820" CreationDate="2010-11-04T15:02:04.100" Score="11" ViewCount="" Body="&lt;p&gt;A degree will you give a better chance of getting a job since it's a tick in the box that many prospective employers look for.  Going the open source route means they would have to download and evaluate those projects, and separate your contributions from those of other people on the same project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, open source will give you a better idea of what actual development is like, and is a better overall test of your abilities.  In addition, a question many employers will ask is &quot;what have you worked on?&quot; and you will have a ready-made answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which is more important depends on how you like to work.  For myself I dived straight into actual work rather than going to uni (lack of money played a part, as did the overly academic nature).  If you find you work well with fairly arbitrary tasks and enjoy a lot of theory, or want the most traditional way into work, go the academic route.  If you find you get frustrated not being able to get stuck into the practical side, start looking at open source.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-11-04T15:02:04.100" CommentCount="4" />
  <row Id="16824" PostTypeId="2" ParentId="10989" CreationDate="2010-11-04T15:02:59.373" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If you're want to write portable code, you have to write portable code.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do I mean by that?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The design must reflect the purpose. If the language is C, for instance, design it so that the minimum number of lines of code need to change in order for it to work. This would often mean separating the display from the computation, which is a good design philosophy anyway (MVC). Most C code can be compiled anywhere, provided you have access to a good compiler. Leverage that and write as much as you can to be generic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, this answer will only apply for applications. OS and embedded are another animal entirely.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-04T15:02:59.373" />
  <row Id="16825" PostTypeId="2" ParentId="16779" CreationDate="2010-11-04T15:03:33.073" Score="3" ViewCount="" Body="&lt;p&gt;Databases offer flexibility and like every feature there is almost certainly a cost. If a flat-file will work, then you can assume no one is going to need to query the data in unanticipated ways like in an ad hoc report.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Databases also do a good job of handling multiple connections/inputs. Again, if this isn't a requirement for your desktop app, why add the additional complexity? Other than through the user interface/the actual installation of Outlook itself, how many other applications or users are trying to write to the Outlook file on your computer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would be easier if all data were in a relational database from a &quot;I want to be able to query all data any way I see fit with a single language like SQL&quot; perspective, but this is rarely a priority with many applications. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most programmers will look at it from: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;I know what the app is suppose to do,&#xA;this is all it is suppose to do&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;my app is the only entitiy that will&#xA;ever access and/or manipulate these&#xA;data&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;a simple file structure of my own&#xA;design will work&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;for at least one application I'd like&#xA;to avoid relying on other people's&#xA;code and have complete control.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-04T15:03:33.073" CommentCount="1" />
  <row Id="16826" PostTypeId="2" ParentId="16779" CreationDate="2010-11-04T15:08:32.230" Score="2" ViewCount="" Body="&lt;p&gt;MainMa, I have noticed this too.  I use to work for a company that has their applications running on DBISAM (it is a database for Delphi programs).  I always pushed to move to SQL Server Express Edition for our clients – something free and quite easy to setup and always got nowhere.  All I could surmise was that no one wanted to learn/support another database and spend time/money changing the products.&lt;br&gt;&#xA;This always frustrated me cause 90% of the support calls came from data issues.  Performance, volume of data, folder and file sharing issues all were attributed to the application having to many users doing things at the same time.  A real database server is design to handle this.  You see these same issues sharing an Access Database or excel spreadsheets over a network, etc.&#xA;Those using embedded database with 1 user or just a few it is okay – but if your application is holding information important to your clients organization and will need to be shared by many (like financial, customer, inventory, etc ) put their data in a real database – it will save you many headaches down the road.&lt;/p&gt;&#xA;" OwnerUserId="1789" LastActivityDate="2010-11-04T15:08:32.230" />
  <row Id="16827" PostTypeId="2" ParentId="16820" CreationDate="2010-11-04T15:09:24.010" Score="1" ViewCount="" Body="&lt;p&gt;I'd recommend doing a BSc (however long that might take). You'll gain from it personally and professionally. You sound like a keen programmer - so you'll probably find it fun as well!&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-04T15:09:24.010" CommentCount="1" />
  <row Id="16828" PostTypeId="2" ParentId="16760" CreationDate="2010-11-04T15:15:39.690" Score="3" ViewCount="" Body="&lt;p&gt;Ask them the &lt;a href=&quot;http://stackoverflow.com/questions/437/what-is-your-solution-to-the-fizzbuzz-problem&quot;&gt;FizzBuzz&lt;/a&gt; question&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Did they know how to code it? What language did they use? Why did they code it the way they did? Did they use Recursion? Loops? Other Methods/Functions? Pointers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could also use the question as a base for other questions (i.e. Why did/didn't you use Recursion? How would you write this using pointers?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It doesn't encompass everything, but it might give you an idea of their coding skills&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-11-04T15:15:39.690" CommentCount="3" />
  <row Id="16829" PostTypeId="2" ParentId="16820" CreationDate="2010-11-04T15:15:46.077" Score="18" ViewCount="" Body="&lt;p&gt;Long term? Do both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A university degree is basically the equivalent of a high school degree 25 years ago -- it's the minimum required to even get you looked at in most situations. However, OSS projects are very helpful, and they provide good real world experience, as well as a type of portfolio future employers can look at.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To put it differently; I've never known anyone to not get an interview because they &lt;em&gt;had&lt;/em&gt; a degree, but I know lots who've missed out because they &lt;em&gt;haven't&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-11-04T15:15:46.077" />
  <row Id="16830" PostTypeId="2" ParentId="16807" CreationDate="2010-11-04T15:16:56.320" Score="6" ViewCount="" Body="&lt;p&gt;If an exception is thrown by an operation that was optional anyway, there might be nothing to do.  It might not be useful to log it.  In that case, you may just want to catch it and do nothing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're doing this, include a comment.  Always comment anything that looks like a bug (fallthrough in a &lt;code&gt;switch&lt;/code&gt; statement, empty &lt;code&gt;catch&lt;/code&gt; block, assignment in a condition).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might argue that this isn't a proper use of exceptions, but that's for another question.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-04T15:16:56.320" />
  <row Id="16831" PostTypeId="2" ParentId="16807" CreationDate="2010-11-04T15:20:23.217" Score="0" ViewCount="" Body="&lt;p&gt;The only time I've really needed to do something like this was with a logging class for a console app.  There was a top-level global catch handler which emitted the error to STDOUT, logged the error to a file, then closed the app with a &gt;0 error code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem here was that sometimes, the logging to the file failed.  Directory permissions stopped you from writing the file, the file was exclusively locked, whatever.  If that happened, I couldn't handle the exception in the same way I had elsewhere (catch, &lt;strong&gt;log the relevant details&lt;/strong&gt;, wrap in a better exception type, etc) because logging the exception details caused the logger to go through the same actions (trying to write to a file) which had already failed.  When they failed again...  You see where I'm going.  It gets into an infinite loop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you drop some of the try {} blocks, you can end up with the exception appearing in a message box (not what you want for a silent config app).  So in that method which writes to the log file, I have an empty catch handler.  This doesn't bury the error since you still get the &gt;0 error code, it just stops the infinite loop and allows the app to exit gracefully.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a comment of course, explaining why it's empty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I was going to post this earlier, I was just afraid of getting flamed into oblivion.  Since I'm not the only one, though...)&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-11-04T15:20:23.217" />
  <row Id="16832" PostTypeId="2" ParentId="16820" CreationDate="2010-11-04T15:21:49.530" Score="3" ViewCount="" Body="&lt;p&gt;As others have said, there is nothing from stopping you from doing open source work while attending college.  Go get your degree and find out a) if you really can understand higher level problems b) if you really enjoy doing it full time and c) who else out there shares a passion for this stuff.  Besides, college is fun.  You get to meet a ton of people and more importantly girls.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-11-04T15:21:49.530" />
  <row Id="16833" PostTypeId="2" ParentId="1403" CreationDate="2010-11-04T15:21:54.430" Score="0" ViewCount="" Body="&lt;p&gt;What a timely question!  I'm thinking of joining a start-up and so spent last night thinking about working remotely (I currently work from home full time), when it's a requirement for me, when it's optional, when it won't do...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether working remotely makes sense or not depends a lot on both the employee and the company.  It's most successful when everyone involved is tech-savvy enough to make communication smooth, when the worker is great at managing his/her own time, when the company respects that working from home does not mean that every minute of every day and night is work time, and when it doesn't result in tons of back-and-forth to use equipment at the office or go to meetings in person every day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my particular case (web developer, extremely self-motivated and organized, accustomed to working at home, considering working with a new start-up), this is what I came up with:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Barring a major event (servers are melting, investor needs to see me, etc.), I expect to work remotely:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When my kid is home sick from school&lt;/li&gt;&#xA;&lt;li&gt;During our four annual trips to my parents' farm for school breaks (some of which are as short as a weekend).  I work normal hours remotely while my son plays with his grandparents, then spend my off time on family things.&lt;/li&gt;&#xA;&lt;li&gt;When I'm sick enough to not be in the office, but not sick enough to call off.  (It's amazing what you can work through when you have a comfy recliner and your own restroom!)&lt;/li&gt;&#xA;&lt;li&gt;At the end of the day, when my son comes home from school and works with me (he does his homework, I do my work, we bounce ideas off each other like coworkers) if he is not welcome to some little corner of our office.&lt;/li&gt;&#xA;&lt;li&gt;When I'm putting in hours in the late evening or at night.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I do want regular face-time in the office.  Some of my partners will likely be there most of the time, and I don't want to be the outsider.  Too many important discussions happen over lunch, or when a board member pops in to see what we're up to, etc. for me to not want to be there when those things happen.  However, as a single mother likely to put in 80+ hours/week building a start-up, I have to make that extreme schedule work for my family, which makes me saner and keeps me focused at work, not to mention that I'd like to spend more time working and less time driving around.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-04T15:21:54.430" />
  <row Id="16834" PostTypeId="2" ParentId="16807" CreationDate="2010-11-04T15:24:54.427" Score="0" ViewCount="" Body="&lt;p&gt;I do it in JavaScript occasionally when dealing with child windows. If I try to programmatically close or write to a child and it fails (either because the user already closed it or because it failed to open due to a popup blocker), there's really nothing more I can do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's probably a better way to handle this, but it works for me.&lt;/p&gt;&#xA;" OwnerUserId="2387" LastActivityDate="2010-11-04T15:24:54.427" />
  <row Id="16835" PostTypeId="2" ParentId="16820" CreationDate="2010-11-04T15:27:09.323" Score="1" ViewCount="" Body="&lt;p&gt;Get the degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, you will find that it's essential to get interviewed at a lot of places.  Any place that requires going through the HR department to get an interview will be virtually impossible to work at.  Even if you get to the hiring manager, if there's more than a few resumes it will be tempting to find a quick way to make the stack smaller, and tossing every resume without a degree will be tempting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(You also don't want to be spending precious interview time explaining why you don't have a college degree.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of the fields you want to potentially get into will likely be impossible without a degree, such as R&amp;amp;D.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, assuming you're going to a decent school, you'll learn things you otherwise wouldn't, and this will almost certainly be very useful in the long run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only reason I'd advise not going for the degree is if you were planning something time-critical, like a startup.  If you get involved in one of those, you need to focus on it.  If it pays off, you'll be able to get your degree without other distractions.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-04T15:27:09.323" />
  <row Id="16836" PostTypeId="1" CreationDate="2010-11-04T15:30:24.360" Score="7" ViewCount="395" Body="&lt;p&gt;I think the world now programs in English-based programming languages not only because of historical/economic circumstances, but because the English morphology in particular has some properties that suit algorithmic thinking best. But anyway it would be interesting to hear your opinions on this, especially if you are multilingual yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen some mentioning of German-based languages (see Plankalkul for example, in fact the first ever programming language we know very little about, thanks to WW2), also a Russian-based flavor of Algol which existed back in the 80's at least on paper, not sure if it ever existed in binary or not. Both looked a bit sluggish because there were more shortened words and weird abbreviations than full words like in the EN-based languages. So if you know of any other national language-based PL's, even completely archaic and irrelevant today, purely theoretical or whatever, would be interesting to take a look at them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And back to the main question: so what, if any, makes the Shakespeare's language so good for programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(There is actually a list of &lt;a href=&quot;http://en.wikipedia.org/wiki/Non-English-based_programming_languages&quot; rel=&quot;nofollow&quot;&gt;Non-English-based programming languages&lt;/a&gt; on Wikipedia (of course, where else?), but it would be interesting to hear opinions of native speakers of those languages on how a given &quot;national&quot; programming languages really feels like.)&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-04T18:54:09.927" Title="How do programming languages benefit from being based on English?" Tags="&lt;programming-languages&gt;" AnswerCount="7" CommentCount="10" FavoriteCount="2" />
  <row Id="16837" PostTypeId="2" ParentId="16807" CreationDate="2010-11-04T15:36:39.543" Score="4" ViewCount="" Body="&lt;p&gt;Empty &lt;code&gt;catch&lt;/code&gt; blocks are a code smell in most languages.  The main idea is to use exceptions for exceptional situations and not to use them for logical control.  All exceptions must be handled somewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a consequence of taking this approach, when you program one particular application layer, you have several choices:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;do nothing about the exception.  It will be caught and handled by a different layer&lt;/li&gt;&#xA;&lt;li&gt;catch it and perform the corrective action.&lt;/li&gt;&#xA;&lt;li&gt;catch it, do something, but re-throw it for another layer to handle&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This doesn't really leave any room for do-nothing, empty &lt;code&gt;catch&lt;/code&gt; blocks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDITED TO ADD&lt;/strong&gt;: suppose you are programming in a language where throwing exceptions is the normal way of controlling the program logic (one of alternatives to &lt;code&gt;goto&lt;/code&gt;).  Then an empty &lt;code&gt;catch&lt;/code&gt; block in a program written in this language is very much like an empty &lt;code&gt;else&lt;/code&gt; block in a traditional language (or no &lt;code&gt;else&lt;/code&gt; block at all).  However, I believe this is not the programming style recommended by C#, Java or C++ development communities.&lt;/p&gt;&#xA;" OwnerUserId="464" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-11-04T15:52:43.317" LastActivityDate="2010-11-04T15:52:43.317" CommentCount="4" />
  <row Id="16838" PostTypeId="2" ParentId="16689" CreationDate="2010-11-04T15:43:27.670" Score="1" ViewCount="" Body="&lt;p&gt;In answer to your side question, people are more willing to put extra effort out for a manager who they trust. Someone who only asks if it is a real emergency, someone who has tried to protect his employees from corporate BS, someone who rewards actual accomplishment and who says thank you and gets rid of the deadweight and someone who removes roadblocks for them. A good manager is worth his or her weight in gold (they are so rare!) and employees will often leap tall buildings to keep working for one. It's too late to ask how can I make this better at the time you need to ask for extra effort. My current boss is one of these people and I would do anything she needed that was within my power to give.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the company will allow it, the good manager at least tries to offer offical or unoffical comp time if he can't pay for the effort. He takes the people who give that effort and makes sure they are rewarded at review time. And if the whole team is working overtime, he doesn't leave at 5 pm.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastEditorUserId="1093" LastEditorDisplayName="" LastEditDate="2010-12-13T20:56:25.200" LastActivityDate="2010-12-13T20:56:25.200" />
  <row Id="16839" PostTypeId="2" ParentId="16788" CreationDate="2010-11-04T15:44:38.257" Score="3" ViewCount="" Body="&lt;p&gt;In my experience, I've only heard people pronounce &lt;code&gt;char&lt;/code&gt; as in &quot;charcoal&quot; (that's how I usually say it) or close to &quot;care&quot;.  I still believe those are the two most common pronunciations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there is evidence on this site that some people do pronounce it as &quot;car&quot;&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-04T15:44:38.257" />
  <row Id="16840" PostTypeId="2" ParentId="16836" CreationDate="2010-11-04T15:46:34.900" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2009/03/the-ugly-american-programmer.html&quot; rel=&quot;nofollow&quot;&gt;English is the &lt;em&gt;lingua franca&lt;/em&gt; language of programming.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the same article:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;It's nothing more than great hackers collectively realizing that sticking to English for technical discussion makes it easier to get stuff done.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1845" LastActivityDate="2010-11-04T15:46:34.900" CommentCount="2" />
  <row Id="16841" PostTypeId="2" ParentId="16770" CreationDate="2010-11-04T15:48:10.460" Score="1" ViewCount="" Body="&lt;p&gt;I don't think the job satisfaction is low in this industry. I repeatedly cuss at my computer on a daily basis, but in between these valleys lie many peaks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I want to meet new people, I go to a bar. Unlike this fantasy job you describe, the requirement of meeting new people means you have to deal with people you don't like. You don't like a customer? Tough, they're paying your salary. Yes, you will get to go and enjoy the great outdoors, but not on your terms. You're going to get old and tired and have to stand out in the middle of nowhere (Which has never been on the Travel Channel.) freezing you tail off. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;No job is perfect; stop expecting it to be. Get a life. Get a hobby(s). Take a vacation. Call your parents if you can. Find someone to share your life, but don't expect to find 100% of this in a job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some days you don't get to get up when you want, do whatever you want, with whoever you want, eating peanut butter and jelly sandwiches and drinking Cognac. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-04T15:48:10.460" />
  <row Id="16842" PostTypeId="2" ParentId="16836" CreationDate="2010-11-04T15:55:52.220" Score="0" ViewCount="" Body="&lt;p&gt;In my opinion, English simply has a richer technical and mathematical vocabulary than many (but not all) other languages.  The languages that lack such vocabulary use English loan words to get the job done.  This alone is a compelling reason to orient programming languages toward English.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding the languages that do have a sufficiently rich vocabulary to describe everything we need to describe without resorting constantly to English loan words, the tradition of English as the lingua franca (common tongue) for the sciences is in itself compelling, but our alphabet gives us another little leg up:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;English can be represented in a smaller character set than, for example, Chinese, Japanese, Cyrillic, or even Romance languages that use accented Latin characters.&lt;/li&gt;&#xA;&lt;li&gt;The English alphabet, largely due to its complete lack of accented characters, is very visually clear.  We have enough bugs due to mismatched brackets or missing semicolons, it would be foolish to add problems discerning between 'ē', 'ĕ', and 'ě'.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-04T15:55:52.220" CommentCount="9" />
  <row Id="16843" PostTypeId="2" ParentId="16820" CreationDate="2010-11-04T15:56:54.227" Score="1" ViewCount="" Body="&lt;p&gt;Continue pursuing a degree. If it takes 5 years, it's still going to be 5 years from now and the only difference will be you may actually have a degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get the real life experience from your job, open source projects and other areas of self-study. &quot;Don't let school get in the way of your education.&quot; - Mark Twain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If along the way, you're able to land the job you want without a degree, you can quit school. Your only intention (from what you've said) of going to school was to get the line on your resume anyway to make you more employable. However, if you feel like some second-class citizen without a degree than keep going.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a few degrees and certifications in areas I no longer work. They were not a waste in my opinion. Sometimes plan B becomes plan A.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-04T15:56:54.227" />
  <row Id="16844" PostTypeId="2" ParentId="16836" CreationDate="2010-11-04T16:04:44.370" Score="4" ViewCount="" Body="&lt;p&gt;The English language is favorable because:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Better fits the restrictions of current peripherals.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Ease of type. You can use a standard keyboard. I know this sounds like &quot;llama dung&quot;, but have you tried typing in Chinese? There are 1000s of characters and since Chinese doesn't have an adequate &quot;character&quot; building technique to fit the concept of a keyboard, it wouldn't be easy to learn for a global audience.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Can be morphed into non-words that are equally recognizable. English favors abbreviations due to the lack of accent symbols.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Shortened English words are recognizable symbols. One doesn't have to learn the entire English language to code, thus people external to the language can learn fast.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;And consider that common programming languages feature more mathematical symbols and less words.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Assembly used small words that had no sentence structure. Then came languages, like COBOL and FORTRAN, which attempted to accommodate the English sentence structure as much as possible. Newer languages implemented more reliance on universal algebraic symbols, because they had better predictability. (In COBOL Add X To Y, Subtract Y From X, Compute Y = X + A; Compute makes the previous statements unnecessary and reduces language parsing complexity). It wouldn't take much more for me to consider languages like C++ to be more symbolic than language based. There's a little bit of a return to word based programming with C#, but that's mostly to have baked in support for popular programming patterns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Conclusion:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately, the peripherals limit to a character based language (like English). Also, western languages have better support for mathematical concepts (like the concept of 0, among others; China borrows numerals in lieu of their own representation of numeric values, to better convey numbers, because it's shorter to write (on average)). Other than numerical values, I would see symbol based languages (Chinese) as better suited to programming language morphology than English, as most of the modern languages already use symbols, and it would be universally equivalent to learn. However, we'd have to impose C++ like structure, having blocks of symbols would not be easy to read for most people in the world.&lt;/p&gt;&#xA;" OwnerUserId="7041" LastActivityDate="2010-11-04T16:04:44.370" CommentCount="4" />
  <row Id="16845" PostTypeId="2" ParentId="8560" CreationDate="2010-11-04T16:09:26.337" Score="1" ViewCount="" Body="&lt;p&gt;Pen &amp;amp; paper / whiteboard, and you can also use Visio or something similar (Visio comes with UI templates for common controls).  Sometimes I take shots of existing (similar) UI that we have and cut and paste the new UI onto it using a paint program like Paint.NET.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-11-04T16:09:26.337" />
  <row Id="16846" PostTypeId="2" ParentId="16836" CreationDate="2010-11-04T16:09:47.790" Score="0" ViewCount="" Body="&lt;p&gt;I'm not so sure that programming languages themselves benefit from being based on English.  In explanation:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The name of a methods, variables, objects, etc. don't matter to the computer&lt;/li&gt;&#xA;&lt;li&gt;The content of a comment doesn't matter to a computer&lt;/li&gt;&#xA;&lt;li&gt;The logic of programming is expressible in most (and I assume ALL) spoken languages.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So, if English is of benefit to programming languages, it would be in helping to cause more people to use the programming language.  In that regard, here are a few thoughts:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Many people in foreign countries learn English whether or not they want to program&lt;/li&gt;&#xA;&lt;li&gt;People designing a computer language and wanting many people to use it will generally pick the most well-known spoken language to describe it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Summarizing these thoughts, I don't think English really helps programming languages in any significant way that most other languages could offer - other than that many people speak it.&lt;/p&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-11-04T16:09:47.790" />
  <row Id="16847" PostTypeId="2" ParentId="16807" CreationDate="2010-11-04T16:14:14.307" Score="0" ViewCount="" Body="&lt;p&gt;I don't believe in not having some level of alert when an exception occurs - shouldn't one of the goals of programming be to improve code?  If an exception occurs 10% of the time, and you never know about it, then the exception will always be that bad, or worse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I do see the other side, that if the exception does no real harm in the processing of code, then why expose the user to it.  The solution I typically implement is having it logged by my logger class (that is in every single class I ever write at work).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's a benign exception, then I make a call to my Logger's .Debug() method; otherwise, Logger.Error() (and (maybe) throw).&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;try&#xA;{&#xA;   doWork();&#xA;}&#xA;catch(BenignException x)&#xA;{&#xA;  _log.Debug(&quot;Error doing work: &quot; + x.Message);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;By the way, in my implementation of my logger, making a call to the .Debug() method will only log it if I my App.Config file specifies that program execution log level is in Debug mode.&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2010-11-04T16:14:14.307" CommentCount="2" />
  <row Id="16848" PostTypeId="2" ParentId="16596" CreationDate="2010-11-04T16:16:28.730" Score="1" ViewCount="" Body="&lt;p&gt;Track tasks and actions, not operations--stay away from keystroke logging unless you're really interested in things like inter-key frequency. And even then you'd need a screen recorder and an eye tracker to find out most of what you want to know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having tried to analyze keystroke data, let me just say that it is not what it is cracked up to be--it is barely useful at all. You're on a better track with 'tagged' data--browser history, logs, anything to avoid parsing data that ends up looking like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Jav^H^H^HHavim^Hng tr&amp;lt;C-TAB&amp;gt;&amp;lt;C-A&amp;gt;&amp;lt;BS&amp;gt;stacko&amp;lt;DOWN-ARROW&amp;gt;&amp;lt;ENTER&amp;gt;&amp;lt;C-TAB&amp;gt;ied to aa&amp;lt;LEFT-ARROW&amp;gt;n&amp;lt;RIGHT-ARROW&amp;gt;alyze...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And playing it back is nearly impossible, even in a trivial example like this one (which was bounded in a single browser window).&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-11-04T16:16:28.730" />
  <row Id="16849" PostTypeId="2" ParentId="16836" CreationDate="2010-11-04T16:17:39.653" Score="4" ViewCount="" Body="&lt;p&gt;Disclaimer: I read the first post, on SO. I'm usually not here, but I can't let this question pass by.&#xA;My native language is German.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think there is any reason English &lt;em&gt;as a language&lt;/em&gt; to take keywords from would be &lt;em&gt;better&lt;/em&gt; than any other natural language. I do think it's the one all-important language in programming, but not because of linguistic properties, but because most tech people speak it to some degree, it's the native tounge of quite a few important people in the field, most tech-related terms are already English, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But since we talk about programming languages, not about documentation/API/names/etc, I have to object: Programming languages are not based on English - or on any other natural language, for that matter. Programming languages are formal languages. They do use, to varying degree, some words words from English. Some even try to mimic its grammar... but they utterly fail to read like English. And they only associate one single (in rare cases a handful of) meaning(s) with a word - often not even the one it has in spoken language (e.g. &lt;code&gt;class&lt;/code&gt;).&lt;/p&gt;&#xA;" OwnerUserId="7043" LastActivityDate="2010-11-04T16:17:39.653" CommentCount="1" />
  <row Id="16850" PostTypeId="2" ParentId="16836" CreationDate="2010-11-04T16:23:58.243" Score="4" ViewCount="" Body="&lt;p&gt;Here are some noteworthy things that programs that just assume the English - Latin alphabet make it eaiser&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Its a small character set (unlike say Kanji)&lt;/li&gt;&#xA;&lt;li&gt;Doesn't usually use diacritical marks (unlike French, Spanish, German, etc.) &lt;/li&gt;&#xA;&lt;li&gt;Every Upper case has a lower case (unlike the German Eszett) &lt;/li&gt;&#xA;&lt;li&gt;Its collation is straight forward &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;All of these things are problems that still haven't properly been solved on all devices. For example Song titles with diacritical marks don't show up correctly on a number music players&lt;/p&gt;&#xA;" OwnerUserId="162" LastEditorUserId="162" LastEditorDisplayName="" LastEditDate="2010-11-04T18:40:02.387" LastActivityDate="2010-11-04T18:40:02.387" CommentCount="7" />
  <row Id="16851" PostTypeId="1" AcceptedAnswerId="16857" CreationDate="2010-11-04T16:24:31.143" Score="0" ViewCount="86" Body="&lt;p&gt;hi!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I think this might be &lt;strong&gt;me&lt;/strong&gt; soon!&lt;br&gt;&#xA;Excuse my ignorance in this post, I am not formally educated and young! =S&lt;br&gt;&#xA;(Taken from  &lt;a href=&quot;http://theoatmeal.com/comics/design_hell&quot; rel=&quot;nofollow&quot;&gt;http://theoatmeal.com/comics/design_hell&lt;/a&gt;)&#xA;&lt;img src=&quot;http://i.imgur.com/r3lVG.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Im building an inhouse application for a bank and it might not be big but its the largest project I've worked on.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Issues I can't do much about&lt;/h2&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;There is tons of beaurocracy in doing anything, it took 4 months to get&#xA;them to sign a contract with me.&lt;/li&gt;&#xA;&lt;li&gt;I have to work with Finance managers, who have never worked with someone making software for them.&lt;/li&gt;&#xA;&lt;li&gt;I am not usually taken seriously because I am young.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;h2&gt;My Problems&lt;/h2&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;The managers don't give a crap about the Bank and they never bother to read my emails most of the time, or give me any input on mockups or demos. I spent 20 hours over 2 days on the last mockup and they would rather crap on the phone than attend the meeting!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;New features keep coming and going like hot cakes and they just cannot decide which ones are important. Or they don't care to discuss it!&#xA;And the top dogs keeps reminding me of the dealines!?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;h2&gt;My question&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;So Im going straight to the top dogs to politely try to change things. These guys however are older and won't give me much time, &lt;strong&gt;I need a very convincing, quick, succinct way to explain to them how important it is that their &quot;managers&quot; communicate with me and tell me what the heck they want and what they don't&lt;/strong&gt;&lt;br&gt;&#xA;Any funny presentations or pictures like oatmeal would be really awesome to show the top dogs.  &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Other Solutions I was thinking of&lt;/h2&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Signing up for teambox.com (as opposed to email!)&lt;/li&gt;&#xA;&lt;li&gt;If in 3 days I dont get a response on a feature it is NO MORE!&lt;/li&gt;&#xA;&lt;li&gt;I display features on a board and they get 5 secs to tell me if its important or not.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Any more policies I should adopt?  Any other ideas?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks so much,&#xA;Gideon&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;In response to the first comment: The departmental heads (top dogs) are the people really looking forward to shiny software that will solve all their problems. They are more or less the stakeholders but I don't interact with them much, I only interact with their subordinates(the managers).&lt;/p&gt;&#xA;" OwnerUserId="6697" LastEditorUserId="6697" LastEditorDisplayName="" LastEditDate="2010-11-04T20:24:12.327" LastActivityDate="2010-11-04T20:24:12.327" Title="how to get clients and domain experts on board and interested" Tags="&lt;customer-relations&gt;" AnswerCount="4" CommentCount="4" />
  <row Id="16852" PostTypeId="2" ParentId="8560" CreationDate="2010-11-04T16:37:49.750" Score="1" ViewCount="" Body="&lt;p&gt;It sounds like you're using good methods, but you're running into resistance having people accept the utility of rapid prototyping. Everybody loves to code, but if a half hour in, they're still fighting with JScrollBars and you've generated 12 mockups, they might understand that the strength of these tools is in &lt;em&gt;rapid iteration&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, the various low-fi approaches have different strengths:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Whiteboard prototyping&lt;/strong&gt; is useful because anyone can participate and it helps ground ideas, but it's only a discussion tool. You want something one step further if you're going to iterate on a design, if only because it gets hard to erase old marker. ;)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Paper prototyping&lt;/strong&gt; is useful because people understand it is impermanent and open to change, and you can iterate quickly, and you still can get very good results. Do a usability test with some users on a paper prototype and you can get great feedback on a design very rapidly, at quite low cost. People get really engaged when they can see and feel the interface on paper.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Balsamiq&lt;/strong&gt; is a shortcut for rapidly making paper prototypes that are reusable. I print out screenshots and use them as paper prototypes. I also use it &lt;em&gt;during&lt;/em&gt; meetings to help mock up ideas as we have them--similar to whiteboard prototyping. I've also used Visio and OmniGraffle for this.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cut and paste prototypes&lt;/strong&gt; are good for iterating on an existing design--take a screen shot, chop it up in an image editor, and mix and match with new controls (from Balsamiq or elsewhere). Once again your goal is rapid iteration of the prototype, not something that looks good.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I never do prototyping with users. I do it with the design team, based on the user data we have. &lt;strong&gt;Users are not designers&lt;/strong&gt;; if you treat them as designers, you end up with watery tomato sauce, bitter coffee (thanks Malcolm Gladwell), and The Homer car. Gather user input to your design and use it to refine the design with the design team.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-11-04T16:37:49.750" />
  <row Id="16853" PostTypeId="2" ParentId="16820" CreationDate="2010-11-04T16:39:22.837" Score="2" ViewCount="" Body="&lt;p&gt;The answer depends a lot on which of the above areas you want to specialize in (you can't do all of them at an expert level), and what kind of career path you envision for yourself.  I did not finish my degree due to health issues, and instead made my career based on my experience in open source.  Here are some of the things I've learned along the way:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Large organizations care a lot about degrees.  Small organizations care less, some not at all.  Frankly, unless someone went to MIT (in which case I circular-file their resume), I don't care about their educational background.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;University CS departments generally don't teach the most important skills for a programmer.  I already discussed some of them in my answer to &lt;a href=&quot;http://programmers.stackexchange.com/questions/16325/what-should-a-cs-grad-know/16334#16334&quot;&gt;&quot;what should a CS grad know?&lt;/a&gt;, so even with a degree, open source experience makes you much more hire-able.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Blazing a career path without a degree generally requires at least some years of consulting or the extreme (and rewarding) effort of founding one or more start-ups in order to advance.  There are other options of course, but they are all equally taxing, unpredictable, and interesting. :)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you are degree-less, a significant number of degreed individuals will assume you are stupid, even though you wrote the software they are trying to learn to use.  It helps not to care what they think.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Early in your career, as a non-degreed person you will earn significantly less than a degreed person.  Whether this is true later in your career depends entirely on your abilities and ambition.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You already have real-world development experience.  This hampers university study (I can't tell you how often I heard &quot;I know you can't write production code like this, but this is school, not production code.&quot;) but helps in launching a non-degreed career (the hardest part of which is getting the first paid experience onto your resume).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A university degree is expensive.  If you don't have 90k in student loan debt, you can make less than a degreed person and still live better.  Half of what you will learn in even a good CS department will be useless in the real world from day one (I have &lt;em&gt;no idea&lt;/em&gt; why mine spent so much time on COBOL in 2001), and 90% of the rest will be useless in ten years.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Statistically, degreed people make a great deal more from their salaries over the course of their lives.  However: non-degreed people don't start out with extreme amounts of debt (somewhere between the luxury car you don't have and the nice house you don't have), and thus have an advantage at building wealth.  Additionally, statistics are based on the aggregate.  It is &lt;em&gt;easier&lt;/em&gt; to get a good salary if you have a degree, even if you are a mediocre hire.  If you are talented and driven to succeed even when doing so is &lt;em&gt;hard&lt;/em&gt;, you can be just as if not more successful than a degreed person.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;As an employer, I care that the coder I hire:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Has experience coding (anything) and some basic foundation skills that lend him/her well to the kind of coding I'm hiring for&lt;/li&gt;&#xA;&lt;li&gt;Knows how to communicate effectively&lt;/li&gt;&#xA;&lt;li&gt;Will fit in well to our team&lt;/li&gt;&#xA;&lt;li&gt;Knows how to learn new things on the fly&lt;/li&gt;&#xA;&lt;li&gt;Knows how to use an issue tracker and distributed source control (preferably git) with a reasonable amount of proficiency&lt;/li&gt;&#xA;&lt;li&gt;Is good at managing his/her time&lt;/li&gt;&#xA;&lt;li&gt;Has his/her ego under control (asks questions when needed, helps others on the team graciously, takes correction or suggestions well, cares more about using the best ideas than who came up with them)&lt;/li&gt;&#xA;&lt;li&gt;If at all possible, knows enough about algorithms and language design to select the best approach for a given problem, and the best tool to solve it with (this is hard to find, and completely knocks me out - fit this criterion and most of the rest become flexible)&lt;/li&gt;&#xA;&lt;li&gt;Knows how to interface with the open source community and be a good hacker-citizen&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In the end, you have to choose the path that best suits you.  A degree gives you some stability, but it's a lot of debt to go into for a depreciating asset.  There &lt;em&gt;are&lt;/em&gt; great opportunities out there for non-degreed coders, but it takes a certain force of personality to find and exploit them; without it, you'll languish on the lower rungs of the profession forever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;P.S. -- This isn't actually probative, but some of the coders I most respect don't have degrees.  Eric S. Raymond comes to mind.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-04T16:39:22.837" CommentCount="5" />
  <row Id="16854" PostTypeId="2" ParentId="1403" CreationDate="2010-11-04T16:41:15.003" Score="1" ViewCount="" Body="&lt;p&gt;I had a job where I worked from home and I didn't really like it.  This was around the turn of the century, so IM wasn't as common as it is today, and trying to have technical discussions via e-mail was tedious, and trying to walk through things over the phone wasn't much better.  I did like the quiet, and didn't miss the commute, but I did wind up having issues with working too much (since it was easy to &quot;just go try something quick&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also found out the hard way that &quot;if they don't see you, they won't miss you&quot;: I was RIFfed after less than six months in that position.  I'm sure the fact that I was the newest member of the team had far more influence over their decision than my working conditions, but I'll always wonder...&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-04T16:41:15.003" />
  <row Id="16855" PostTypeId="2" ParentId="16820" CreationDate="2010-11-04T16:49:13.607" Score="4" ViewCount="" Body="&lt;p&gt;Get the piece of paper.  I've worked with guys who decided to do some contracting work on the side while they were in college, found they were making good money, and dropped school to work full time.  A few years down the road they met The Girl, got Married, bought The House, had The Kids, etc - life is good!  Wanted to go back to school but hey, they're busy, can't get full credit for the classes they took - nuts, who needs all this?  Life is good!  Now, a few &lt;em&gt;more&lt;/em&gt; years down the road their job dries up on them, they're let go, and guess what?  They're just another guy with a high-school diploma and a few semesters of college 15 years back.  When these guys go in for a job interview it's &quot;We really liked talking with you, but we've got other More Qualified Candidates (i.e. guys who finished their degrees), so...See Ya!&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look - school's a grind.  School's a drag.  School is an expense, not an income.  School, in simple terms, is a freaking pain!  But that degree is a separator - it separates the &quot;not worth my time&quot; folks from the &quot;stuck to it 'til they were done&quot; types.  Hey, I absolutely &lt;em&gt;hated&lt;/em&gt; college - but I kept at it until I got the piece of paper.  Didn't like getting it but I've never regretted it.  Those guys who bailed for the money?  All I hear is &quot;I can't move up - gotta have a degree to get ahead.  Woe is me!&quot;.  It sucks to be them, so don't be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Share and enjoy.&lt;/p&gt;&#xA;" OwnerUserId="4848" LastActivityDate="2010-11-04T16:49:13.607" />
  <row Id="16856" PostTypeId="2" ParentId="16769" CreationDate="2010-11-04T16:50:48.780" Score="2" ViewCount="" Body="&lt;p&gt;I've done that. At an interview I was asked to implement run-length encoding on the whiteboard, and while I short-cut some of the code (explaining what I was abbreviating) to fit the whiteboard I still came up with a collection of tests for this unit, and ran through one of them to validate my solution and show how the testing would help. I was offered that position so I assume the testing was helpful, or at worst not annoying.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-11-04T16:50:48.780" />
  <row Id="16857" PostTypeId="2" ParentId="16851" CreationDate="2010-11-04T16:59:39.143" Score="2" ViewCount="" Body="&lt;p&gt;Generally speaking, you don't want to try and play power politics here, especially as an outsider.  But you do have to be firm!  I'd suggest the following:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1 Send a message to the Finance Managers and the top dogs that you're &lt;em&gt;really&lt;/em&gt; concerned this project is going to fail.  Set up a meeting request as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2 Follow that up with phone calls to each of them to &lt;em&gt;make sure&lt;/em&gt; they come along to the meeting.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;At the meeting explain that you understand that they are very busy and it can be difficult to spend the time on reviewing your designs etc.  But make it crystal clear that they've hired you as the expert and in your expert opinion this project &lt;em&gt;will&lt;/em&gt; fail without their valued input. Ask them if there is a different way that they'd like to communicate with you in terms of the design reviews etc. A humorous comic can help here, but the message has to be deadly serious. Again back this up with real examples of projects failing in the past - remember they hired you as the expert in this.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you're into one of the many Agile techniques, you can bring up some of those principles as well and give examples of projects having a higher success rate because of small faster feedback cycles.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-04T16:59:39.143" CommentCount="3" />
  <row Id="16858" PostTypeId="2" ParentId="16708" CreationDate="2010-11-04T17:00:01.390" Score="0" ViewCount="" Body="&lt;p&gt;I agree with a lot of the other comments, like picking topics you love, and working with technologies not used at work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than those, the biggest things that keeps me going are leaving a broken test when I leave, so I have an easy starting point the next time, and looking at some aspect of the project everyday, even if only for a few seconds, just so the project stays fresh in my mind.&lt;/p&gt;&#xA;" OwnerUserId="7035" LastActivityDate="2010-11-04T17:00:01.390" CommunityOwnedDate="2011-02-04T23:07:08.093" />
  <row Id="16859" PostTypeId="2" ParentId="16851" CreationDate="2010-11-04T17:00:29.317" Score="1" ViewCount="" Body="&lt;p&gt;I had a teacher once who went into this stuff, about working with clients... Thought I'd never need to know or use this stuff. Paid attention anyway. Glad I did, too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First and foremost: Get everything in writing! Everything! You make a design that they like? Get them to sign off on it. Make a feature list of everything they want in the program? Signature, please! When all is said and done, the contract is usually put together and signed with all these documents, and that is that. Usually, after that contract is signed, what is in the contract is exactly what you work on. No more, no less.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what I would say is, first things first, check your contract. See if you have room to do this, since it is already a signed thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If so, signature, signature, signature. If the feature they want to add, you can tell them, &quot;Sorry, but this contract I have here says that's not going to be in the program.&quot; Alternatively, &quot;Sorry, but this contract I have here says that's not going to be in the program, BUT... if you want to add it, it'll cost this much more and take this much longer. Sign here please!&quot;&lt;/p&gt;&#xA;" OwnerUserId="5169" LastActivityDate="2010-11-04T17:00:29.317" CommentCount="4" />
  <row Id="16860" PostTypeId="2" ParentId="16820" CreationDate="2010-11-04T17:06:19.673" Score="8" ViewCount="" Body="&lt;p&gt;As someone with over 15 years experience programming, and an Associates in Music Recording, I think I can shed a little light on the long term effects of not having a degree.  Aside from the academic and &quot;enrichment&quot; arguments for having a degree, there are only a couple of occasions where not having a degree has hurt me.  However, those occasions are serious enough that you should consider getting yours before life becomes even crazier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Based on the job markets, when the economy is doing great, you can always get a job with nothing but experience.  In times of abnormal financial speculation in the technology arena you can get a technical job just for being able to spell 'computer'.  That's what happened in the .com bubble around 1999-2001.  The experience built up during this time, and my work with open source projects has really bolstered my resume.  Not having a resume was never an issue during these times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, when the economy is doing poorly, a lot of people are laid off.  You are now in competition with a glut of potentially highly skilled workers, many of whom have degrees.  This has happened twice in my carreer.  The first time was when the .com bubble burst (around 9/11/2001).  All of the sudden, frivolous web sites weren't that important any more and the abuses several companies had with investor money were coming to light.  A ton of companies went out of business, along with several workers of varying ability.  The second time was the recent economic downturn, where every company has been feeling the belts tighten.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first time I had a real problem with finding a new job was just after the 9/11 attacks.  The company I was working for went into a downward spiral of death, and I actively searched for a job for over 8 months while I was still employed there.  Then the company let me go (and folded shortly after), and I was stuck looking for any interim job for the next couple of months.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually, I built up enough experience where I can still get a job in economic downturns, but I know I'm not the first candidate considered.  I also get lower pay than other people with the same amount of experience in the same job.  However, trying to go back to school juggling the care of older kids (and they take more time than little kids), keeping my relationship fresh with my wife, and other cares just isn't in the cards for me.  Maybe when they both graduate from college...  But I also suffer motivation problems because the curriculum for a BS degree isn't going to challenge me with learning new things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you are still pretty new in your career, getting that degree will help you in the long run.  I understand the time crunch--beleive me.  There are reasons why companies require degrees:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;They can charge their clients more (government agencies have a sliding scale based on degrees of what you can charge)&lt;/li&gt;&#xA;&lt;li&gt;It lowers liability (the medical industry has to be able to say that the software/firmware used in there systems were created by qualified people--and to juries this means you have a degree)&lt;/li&gt;&#xA;&lt;li&gt;It's an easy weeder requirement (which resume's do I want to look at in depth)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In the end the choice is yours.  My road is not the easiest, but if you don't do college, you do have to teach yourself new--and useful--skills.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-11-04T17:06:19.673" />
  <row Id="16861" PostTypeId="2" ParentId="35" CreationDate="2010-11-04T17:09:12.800" Score="4" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://catb.org/~esr/intercal/&quot; rel=&quot;nofollow&quot;&gt;INTERCAL&lt;/a&gt;&lt;/h1&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-04T17:09:12.800" CommunityOwnedDate="2010-11-04T17:09:12.800" CommentCount="1" />
  <row Id="16862" PostTypeId="2" ParentId="16851" CreationDate="2010-11-04T17:09:14.797" Score="0" ViewCount="" Body="&lt;p&gt;I think &lt;code&gt;teambox&lt;/code&gt; is a good solution, i use it but only for manage my work without it my software plans will drifting about a target solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can talk about it with your managers, you can contact with her in general only via &lt;code&gt;teambox&lt;/code&gt;, he will be creating and assigning tasks for you or think about something other usable of this or other project managment software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In second way, you are not dramatic young;-) I think you are not enough serious for this team, you should have &lt;strong&gt;Project Owner&lt;/strong&gt; for communicating with persons to get informations about product how you must develop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Product Owner&lt;/strong&gt; deciding about queue of features and this person deciding on what will be next and what not. You will be decide about when this will be and when you will be have time for  next feature, what you want for do it and other things will be doing with &lt;strong&gt;Product Owner&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="943" LastActivityDate="2010-11-04T17:09:14.797" />
  <row Id="16863" PostTypeId="2" ParentId="16595" CreationDate="2010-11-04T17:13:54.383" Score="1" ViewCount="" Body="&lt;p&gt;Yes, best ideas always are income when you have a &lt;strong&gt;BREAK&lt;/strong&gt; like smoking cigarettes or driving a car.&lt;/p&gt;&#xA;" OwnerUserId="943" LastActivityDate="2010-11-04T17:13:54.383" CommentCount="1" />
  <row Id="16864" PostTypeId="2" ParentId="8560" CreationDate="2010-11-04T17:24:13.310" Score="1" ViewCount="" Body="&lt;p&gt;My first mock-ups are always pencil &amp;amp; paper or whiteboard, but once the basics are nailed down I usually move to HTML.  I have a bunch of placeholder images that simply say &quot;Header&quot;, &quot;Banner&quot;, &quot;Image&quot;, &quot;Chart&quot; and the like.  Some simple CSS for laying things out somewhat sanely and I'm done.  A little JS tacked on to a control can give you some semblance of functionality, and people just seem to &quot;get it&quot; better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only problem with this is that I'm probably the world's worst living UI designer, and sometimes have to remind people that I'm just gathering requirements, not showing them what the completed thing will look like.  I often set the background to pink or something, so whenever anyone asks &quot;Does it have to be pink?&quot; I can counter with &quot;This is just a mock-up, the real thing will look different&quot; (or &quot;You'll have to discuss that with the designer&quot;).&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-04T17:24:13.310" />
  <row Id="16865" PostTypeId="2" ParentId="16725" CreationDate="2010-11-04T17:31:02.947" Score="1" ViewCount="" Body="&lt;p&gt;The problem with last year/semester projects is that the timeline is way too short to cover a full typical project lifecycle. Plus, technically, the maintenance phase will not be possible until an initial release. On top of that, the full lifecycle should include multiple maintenance cycles to give you an opportunity to show how you learn from the previous cycles and improve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, pick something amazingly small in scope. A weekend project. It's always easy to add complexity, if you think your project is too small/simple - but it's very difficult to cut complexity out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pick something you like: being passionate about what you do helps a lot - it will help tremendously in making you work on this project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my days in college, I worked on a project to make a web-based PSP system (never got past design phase: waaaay too large), a Checkers AI (that one fit nicely) and a tool to import data from Excel spreadsheet into a database and run a few stats (the data was timesheet-related: how long have I worked on which project?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nowadays.. heck, the technology has changed. How about a simple game (even tick tac toe) that runs on Android? You may find that the experience you'll gain in actually pushing a simple app to an app store will be very valuable right out of college.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For more ideas, you can take a look at the HN group for the November Launch Pad initiative: &lt;a href=&quot;http://www.facebook.com/home.php?sk=group_141079939271952&amp;amp;ap=1&quot; rel=&quot;nofollow&quot;&gt;http://www.facebook.com/home.php?sk=group_141079939271952&amp;amp;ap=1&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HTH&lt;/p&gt;&#xA;" OwnerUserId="4237" LastActivityDate="2010-11-04T17:31:02.947" />
  <row Id="16866" PostTypeId="2" ParentId="16820" CreationDate="2010-11-04T17:36:25.183" Score="1" ViewCount="" Body="&lt;p&gt;Success stories from non-degreed people seem to come from web dev these days. Web dev is &lt;em&gt;bloody easy&lt;/em&gt; until you're doing high level stuff dealing with caching and scalability (and notice how the top companies like graduate degrees).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get the degree. It'll open up new worlds of possiblity for you.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-04T17:36:25.183" CommentCount="4" />
  <row Id="16867" PostTypeId="1" AcceptedAnswerId="16870" CreationDate="2010-11-04T17:39:35.217" Score="5" ViewCount="653" Body="&lt;p&gt;I'm in the throes of getting myself enrolled in school to get a CS degree. The school I am looking at actually offers both Java- and C++-based for the introductory software development courses (object-oriented programming, design patterns, that sort of thing). It is student's choice which track to follow, but there is only time to follow one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Knowing what you know now, if you had the choice, would you lay down your CS curriculum foundation in Java or C++?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My current debate currently looks like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good friend (who has a PhD in AI) is touting Java as the better choice regardless of what I do, if only to open up more job opportunities later, though he might be biased since all of his work has been in Java (he loves it). I live in the Boston, MA, USA area and I see an equal amount of Java and C work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the flip side, although I haven't entirely yet settled on what I want to do with the degree when I'm done, my preference would be to develop for the Mac, which I am doing now albeit in a limited capacity. To that end, I'm getting some limited exposure to C++ already, but I've had none with Java, and looking at my projects at my day job I don't see a need to use it anytime soon, &quot;soon&quot; measured by at least two years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I probably should note that I'm an adult going back to school after 20 years (I currently have &lt;em&gt;no&lt;/em&gt; degree of any kind) so I'm looking to maximize the opportunity and time spent as best I can. I'm kind of leaning towards C++ but I'm still ambivalent, and some outside, objective advice would help here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or I could just be thinking too hard about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="6419" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-11-11T15:24:06.437" LastActivityDate="2010-11-28T13:39:33.110" Title="Java or C++ for university CS courses?" Tags="&lt;career&gt;&lt;java&gt;&lt;education&gt;&lt;school&gt;&lt;intro-to-programming&gt;" AnswerCount="10" CommentCount="4" />
  <row Id="16868" PostTypeId="2" ParentId="16820" CreationDate="2010-11-04T17:40:49.063" Score="2" ViewCount="" Body="&lt;p&gt;Get the degree, and check your ego.  You are older than many of the other students, and have more world experience, a lot of the professors will be so disconnected and spouting such stuff that isn't true about the real employment world that it might be hard to pay attention.  The 18 or even 22 year old who only knows college will just eat it up like candy and have to learn the hard way.  You will know reality.  Also there is the danger to think that you know it all, particularly if you are good.  However you will have to learn the Professor's terms for things if you want to pass the exam.  I know way better programmers than me who failed out of intro to programming classes because they didn't want to be bothered with the professor's terms for things.....  So definitely check your ego at the door.  In any case, if you really pay attention...even in an intro programming class you may get a few nuggets of information that might be better than your current way of doing things....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will learn some stuff, but probably not programming wise.  Projects in school tend to be very simple from a programming perspective.  Also most CS degrees teach you the basics of a programming language (if statements, while statements, etc...) but they don't necessarily teach how to write maintainable modular code.  They basically teach you to solve problems with code and leave the figuring out how to program properly up to the student/first job....  But in any case if the professor wants to call an if statement a snarfblat, or wants you to only use while loops and never do loops, then you better do it for a grade.  If the professor wants you to use a certain brace style and you have your own, you better follow his for a grade.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason for an undergraduate degree is really two fold:&#xA;1) Employers put it on a little check list and will often just toss any resumes without a degree without even looking at them...&lt;br&gt;&#xA;2) the undergrad computer science education is 1/2 or less than 1/2 of the degree.  The rest is all general requirements which give you a wider perspective on things and teach you to learn a variety of different subjects.  Getting used to learning different things will help on the job where you have to learn the business processes, etc... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case while for many &quot;normal&quot; jobs high school algebra and knowledge of the high level language of the day are enough, there is some stuff that is fun to know:&lt;br&gt;&#xA;1.  Algorithms...at least know big O notation and the difference between the faster/slower sorting/searching algorithms.  It's true most of the time linear search is fine, but in the few occasions when it isn't, a quick sort and then binary search can give a huge speedup.&lt;br&gt;&#xA;2.  Operating Systems....good to know when windows is running slow you can think things like is it thrashing, is the cpu pegged?  Also generally these classes discuss critical sections and multi-threading which is good to know....&lt;br&gt;&#xA;3.  Networking...really you mentioned you like open source software, so a lot of it is network ready....also you may get ideas about new applications as well.&lt;br&gt;&#xA;4.  Distributed Systems....the particular technologies are not important, but a lot of the concepts regarding synchronizing time, basic networking, Remote Procedure Calls, etc. are the basis for things like Enterprise Java Beans, Corba, Java RMI, Sun RPC, Web Services, etc...  The technologies are changing all the time, but many of the underlying concepts apply to your job (you may know a lot already but you will probably pick stuff up)&lt;br&gt;&#xA;5.  Computer Architecture/Organization...it is good to know what is going down at the bottom level, particularly about caching since using the cache vs the main memory or even main memory vs disk has a huge penalty.  Operating systems will probably cover main memory versus hard disk.  This should give you insight into some of the caches and the instruction fetch/execute process....  Although this applies more if you are working with massive datasets since squeezing every bit of performance matters....&lt;br&gt;&#xA;6.  Databases...if you are not an expert, take this course.  Most employers require SQL and databases and too many developers suck at it and have no business writing SQL code because they clearly do not understand the relational model at all....  Maybe next to algorithms this is the most important thing to learn for most corporate jobs.&lt;br&gt;&#xA;7.  Numerical Methods....probably the ones studied in class won't be used, but it is good to have an introduction, a lot of equations in business/engineering are done via numerical methods.  And some of them may even be used like Newton's method, etc...&lt;br&gt;&#xA;8.  Compilers...I am kicking myself so hard for not taking this course as an undergrad, because my grad school no longer offers it as compilers are not considered a &quot;hot&quot; research topic....You probably know already a lot of apps boil down to implementing a ton of business logic.  Creating a simple mini language for that logic often really simplifies things...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case if you know all that stuff then sure you are going for the paper and wider perspective on things.  I can almost guarantee you will learn stuff in the other classes, in literature, composition, history, some social science, some physical science, etc...  At the very least some random facts that you can pull out while watching a game show.....  If you don't know all that stuff, you should consider what is valuable.  For any corporate software developer I would say Databases and distributed systems would add some value.  And I think distributed systems would also give you ideas for open source projects.  Even if your professor sucks, read the book for that class....&lt;/p&gt;&#xA;" OwnerUserId="3786" LastActivityDate="2010-11-04T17:40:49.063" />
  <row Id="16869" PostTypeId="1" CreationDate="2010-11-04T17:45:25.973" Score="16" ViewCount="465" Body="&lt;p&gt;When interviewing for a job, is there a delicate yet accurate way to find out if they have insane policies, like &quot;no open source&quot;, or &quot;no installing software without permission&quot;, &quot;not upgrading software until it's about to lose support&quot;, or &quot;no visiting blogs&quot;?&lt;/p&gt;&#xA;" OwnerUserId="4526" LastEditorUserId="4526" LastEditorDisplayName="" LastEditDate="2010-11-04T19:13:33.817" LastActivityDate="2010-11-08T10:22:08.823" Title="How to find out if a company has insane policies" Tags="&lt;job-interview&gt;" AnswerCount="9" CommentCount="2" FavoriteCount="4" />
  <row Id="16870" PostTypeId="2" ParentId="16867" CreationDate="2010-11-04T17:45:59.483" Score="25" ViewCount="" Body="&lt;p&gt;I'd personally go with C++ as it will give you insights into how parts of Java work under the hood (Pointers for example).  Moving to Java from C++ is fairly trivial, whereas moving the other way around is arguably more difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The truly difficult thing about the Java eco-system is it's vast number of frameworks, libraries etc - they're unlikely to cover all of that at University anyhow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day it's not going to matter &lt;em&gt;that&lt;/em&gt; much what language you choose, as long as you learn the principles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My JUG is going to kill me for endorsing C++ ;-)&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-04T17:45:59.483" CommentCount="3" />
  <row Id="16871" PostTypeId="2" ParentId="16869" CreationDate="2010-11-04T17:53:13.027" Score="25" ViewCount="" Body="&lt;p&gt;I don't think you can be too subtle., you can perhaps ask:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;The last place I worked at utilised some open source libraries - I found that useful as I was able to delve in and fix problems directly instead of waiting for a Vendor to get back to me.  I can also understand that there can be legal concerns on using such libraries, do you have a  policy here?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I assume that our machines are looked after by some sort of tech support?  What's the process I'd have to go through if I had to install (for example) a trusted free text editor that supports Hex encoding?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I'm really passionate about my craft and I keep up to date with the luminaries in my field - what's the policy on visiting work related websites such as Oracle tech blogs etc?&quot;&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-04T17:53:13.027" CommentCount="1" />
  <row Id="16872" PostTypeId="2" ParentId="16869" CreationDate="2010-11-04T17:57:36.150" Score="12" ViewCount="" Body="&lt;p&gt;Those are questions you can bring up at the end of the interview when the interviewer normally asks &quot;Do you have any questions for me&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just try and phrase them in such a way so the question links to the job you are applying for. For example, I might phrase these questions such as:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Does the company have an opinion about using Open Source software?&lt;/li&gt;&#xA;&lt;li&gt;What is the company policy about installing custom software? For example, I use XXX which helps me speed up development.&lt;/li&gt;&#xA;&lt;li&gt;Do you use a web content filter? I ask because the last place I worked for had one that severely limited my research capabilities.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-11-04T17:57:36.150" CommentCount="1" />
  <row Id="16873" PostTypeId="2" ParentId="16869" CreationDate="2010-11-04T17:57:58.290" Score="3" ViewCount="" Body="&lt;p&gt;I'd ask if the internet was considered a resource, i.e. things like Stack Overflow, or if there was a limited internet usage policy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd visit &lt;a href=&quot;https://www.glassdoor.com&quot; rel=&quot;nofollow&quot;&gt;https://www.glassdoor.com&lt;/a&gt; to find out all I could about a company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd ask engineers about their normal day.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-11-04T17:57:58.290" />
  <row Id="16874" PostTypeId="2" ParentId="13100" CreationDate="2010-11-04T17:59:15.670" Score="0" ViewCount="" Body="&lt;p&gt;I prefer to look up standard C# and/or .NET syntax/features/tutorials etc online at MSDN and spend money on books on specialized topics which aggregate content from disparate sources into one coherent place. Some examples of such books are Steve Sander's Pro ASP.NET MVC 2 and Arking's Professional Enterprise .NET, amongst others.&lt;/p&gt;&#xA;" OwnerUserId="4378" LastActivityDate="2010-11-04T17:59:15.670" />
  <row Id="16875" PostTypeId="2" ParentId="16869" CreationDate="2010-11-04T18:01:19.270" Score="3" ViewCount="" Body="&lt;p&gt;Get a chance to meet their existing developers.  What the HR person or manager thinks the policy is, and how it actually works on the ground, are often different.  These are all questions I'd ask someone with a similar job description to my own, &lt;em&gt;not&lt;/em&gt; the boss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bosses and HR types, on the other hand, generally understand that corporate culture is important, and that allowing a prospective hire a few hours contact with their team to make sure it feels like the right fit reduces risk for you and for them.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-04T18:01:19.270" />
  <row Id="16876" PostTypeId="2" ParentId="16869" CreationDate="2010-11-04T18:04:03.500" Score="4" ViewCount="" Body="&lt;p&gt;Some companies have generally awful cultures and that often extends to having awful environments for software development. I think there are three issues here&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What is the companies culture?&lt;/li&gt;&#xA;&lt;li&gt;How does that culture extend to software development in that company?&lt;/li&gt;&#xA;&lt;li&gt;Assuming you are interviewing for a particular team, how similar or different is their culture?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;For the first part, I'd ask &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Does the IT department manage the Developer machines the same way they administer all the other machine?&lt;/li&gt;&#xA;&lt;li&gt;What are the policies for adopting new technologies or new software? &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;For the second part:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;How standardized is the development environment? &lt;/li&gt;&#xA;&lt;li&gt;Can developers try out new tools and new technologies to introduce to the rest of the team?&lt;/li&gt;&#xA;&lt;li&gt;What restrictions are there?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;For the last part, ask other developers &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What blogs do you read?&lt;/li&gt;&#xA;&lt;li&gt;What blogs and web sites do you recommend? &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In each case, the questions are on the edges and the answer will likely more honest.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-11-04T18:04:03.500" />
  <row Id="16877" PostTypeId="2" ParentId="16807" CreationDate="2010-11-04T18:04:27.503" Score="1" ViewCount="" Body="&lt;p&gt;IMO there is one place where empty catch statements are OK. In test cases where you expect an exception:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;try&#xA;{&#xA;   DoSomething(); //This should throw exception if everything works well&#xA;   Assert.Fail('Expected exception was not thrown');&#xA;}&#xA;catch(&amp;lt;whatever exception&amp;gt;)&#xA;{&#xA;    //Expected to get here&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-11-04T18:04:27.503" CommentCount="5" />
  <row Id="16878" PostTypeId="2" ParentId="16869" CreationDate="2010-11-04T18:14:27.167" Score="0" ViewCount="" Body="&lt;p&gt;GlassDoor has already &lt;a href=&quot;http://www.jobitorial.com/index.php&quot; rel=&quot;nofollow&quot;&gt;Jobitorial&lt;/a&gt; is another similar site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another strategy might be to go to local user groups and seek out people that work for the company and engage them in conversation. Tell them you are considering applying there and ask them questions.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-04T18:14:27.167" />
  <row Id="16879" PostTypeId="2" ParentId="779" CreationDate="2010-11-04T18:15:04.593" Score="8" ViewCount="" Body="&lt;p&gt;I see from your resume you've spent some time in Israel... would you have a problem working with Palestinian co-workers?&lt;/p&gt;&#xA;" OwnerUserId="4526" LastActivityDate="2010-11-04T18:15:04.593" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="3" />
  <row Id="16881" PostTypeId="2" ParentId="13100" CreationDate="2010-11-04T18:15:50.453" Score="0" ViewCount="" Body="&lt;p&gt;Since no has mentioned it yet, I'll say that &lt;a href=&quot;http://www.manning.com/petricek/&quot; rel=&quot;nofollow&quot;&gt;Real World Functional Programming&lt;/a&gt; is a pretty great book.  As the subtitle suggests, it has a lot of code in C# and in F#, and is an excellent book for learning F#, for bridging the two languages, or for just learning to use functional paradigms in C#.  &lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-04T18:15:50.453" />
  <row Id="16882" PostTypeId="2" ParentId="16867" CreationDate="2010-11-04T18:21:15.803" Score="1" ViewCount="" Body="&lt;p&gt;I think the bigger question to ask yourself is do you want to be a good programmer or focus on computer science. If CS is your goal and you want to be on a PHD route then perhaps Java is the way to go. Java provides the Java collections classes, which have lots of premade data structures and algorithms. The advantage of this is twofold: First is that you get to play around with the data structures and algorithms to see what they do before worrying how they were constructed. Second, this provides the professors more opportunity to teach CS principles that use data structures without having to worry about the nitty gritty. Later on they can go back and have their students create the structures from scratch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ on the other hand is a lower level language. It forces you to consider pointers and garbage collection. The learning curve is a little steeper but in the end when you find yourself down the road programming with external frameworks you will feel less like you are just relying on hidden magic. Furthermore, many larger companies are still using C++. It is more difficult to go from Java to C++ than C++ to Java.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-11-04T18:21:15.803" CommentCount="1" />
  <row Id="16883" PostTypeId="2" ParentId="13100" CreationDate="2010-11-04T18:24:53.860" Score="0" ViewCount="" Body="&lt;p&gt;Personally, I found Addison-Wesley's .net Development Series very good. If you want to know more about the concepts that shaped .Net Framework, I would recommend &quot;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321545613&quot; rel=&quot;nofollow&quot;&gt;Framework design guidelines&lt;/a&gt;&quot; by &lt;a href=&quot;http://en.wikipedia.org/wiki/Krzysztof_Cwalina&quot; rel=&quot;nofollow&quot;&gt;Krzysztof Cwalina&lt;/a&gt; and Brad Abrams.&lt;/p&gt;&#xA;" OwnerUserId="2554" LastActivityDate="2010-11-04T18:24:53.860" />
  <row Id="16884" PostTypeId="2" ParentId="16770" CreationDate="2010-11-04T18:27:32.710" Score="2" ViewCount="" Body="&lt;p&gt;I don't know about software development being inherently especially low in job satisfaction, but dare I say it mostly does have the same issues as any other office &quot;knowledge work&quot; job. ie Pretty much what your bullet points describe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this comes from evolution. I read an interesting take on this on a forum a while back: humans evolved for millions of years living in small, tribal groups as hunter gatherers. We are evolved for hunting, gathering, and directly working outdoors for our &lt;em&gt;immediate food and shelter&lt;/em&gt;. And for living closely and intimately with family groups and friends. The office environment (and &quot;work&quot; and &quot;money&quot; in general even) abstracts this away and alienates us. We are no longer directly hunting and gathering and socialising for our food and shelter, but doing arbitrary things for pieces of paper, which we then exchange other things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The issue is: the modern living environment, paid work, and money itself - are actually quite a poor model for how we evolved. It's extremely alienating. Few people actually truly thrive in your typical factory environment or cubicle farm. The only saving grace is if you truly love what you do, and/or love the people you work with. But this is where the angst over &quot;work&quot; comes from - it is simply an unnatural way to be - to do arbitrary tasks for some symbolic value tokens for some faceless entity. It goes against the very fibre of our being, of how humans evolved. - I think this is why a lot of us are attracted to the idea of doing something &quot;hands-on&quot;, and &quot;out in the world&quot;, rather than being cooped up in offices or factories doing relatively more arbitrary, non-directly-hands-on, tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All that philosophy aside - it really comes down to the old cliche of finding something you love to do. Though I think &quot;love&quot; is a strong term. Even just &quot;finding something you can &lt;em&gt;tolerate&lt;/em&gt;&quot; can be sufficient.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I'm quite burned out at the moment with it all too (see: &lt;a href=&quot;http://programmers.stackexchange.com/questions/11425/burned-out-on-programming-and-given-up&quot;&gt;this&lt;/a&gt;). So I'm quitting next month and taking some time off to decompress, travel, and possibly even work some casual labouring jobs to get my perspective back. I gotta agree with Joel Spolsky on this one: sabbaticals are a great idea. After 3-4 years of sitting in the same cubicle, working on relatively the same thing, I start to feel &quot;funny&quot;, no matter how good the job is. Taking 6-12 months completely away from that environment will do wonders to reset my brain. I'm sure of that. :)&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-04T18:27:32.710" CommentCount="1" />
  <row Id="16885" PostTypeId="2" ParentId="16770" CreationDate="2010-11-04T18:31:35.723" Score="1" ViewCount="" Body="&lt;p&gt;Not at all. I've been working in the field of warehouse management systems for many years, and this job included many travels, different people, different countries etc. &quot;Doing the same task&quot; is, to some extend, true for every job in the world. If you want tangible output, learn Mandarin and move to china. Because that's the place where tangible output is made in these times.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-04T18:31:35.723" />
  <row Id="16886" PostTypeId="2" ParentId="14831" CreationDate="2010-11-04T18:32:20.497" Score="1" ViewCount="" Body="&lt;p&gt;It probably wouldn't help a new programmer, but I found that I understood the concept of exceptions a lot better once I started using monads in functional programming.  A monad forces you to consider every &quot;channel&quot; through which data can travel into or out of a program, since all it does it provide a convenient abstraction to &quot;hide&quot; some of that data flow.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea that a function can have different types of output, and an exception is like a higher-priority type of return from the function is pretty neat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mind you, I understand that isn't how exceptions work in most language (implementation details), but in an abstract sense, that's what is happening.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-04T18:32:20.497" CommentCount="1" />
  <row Id="16887" PostTypeId="2" ParentId="16851" CreationDate="2010-11-04T18:32:28.373" Score="0" ViewCount="" Body="&lt;p&gt;Aeo mentioned getting things in writing.  You can write up a Word document containing the features that are agreed upon, and update it when things change.  A simple Word document may be easier for the bank employees to understand than having to learn how to use  a specialized website, and can be passed around easily.  Make sure that you give it a version number, so that when changes happen, you can mention &quot;did you see the new features in Requirements_1.1.doc?&quot;&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-11-04T18:32:28.373" />
  <row Id="16888" PostTypeId="2" ParentId="35" CreationDate="2010-11-04T18:34:32.640" Score="5" ViewCount="" Body="&lt;p&gt;I first encountered this joke in Booch's &quot;Object-Oriented Analysis and Design with Applications&quot;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A physician, a civil engineer, and a&#xA;  computer scientist were arguing about&#xA;  what was the oldest profession in the&#xA;  world. The physician remarked, &quot;Well,&#xA;  in the Bible, it says that God created&#xA;  Eve from a rib taken out of Adam. This&#xA;  clearly required surgery, and so I can&#xA;  rightly claim that mine is the oldest&#xA;  profession in the world.&quot; The civil&#xA;  engineer interrupted, and said, &quot;But&#xA;  even earlier in the book of Genesis,&#xA;  it states that God created the order&#xA;  of the heavens and the earth from out&#xA;  of the chaos. This was the first and&#xA;  certainly the most spectacular&#xA;  application of civil engineering.&#xA;  Therefore, fair doctor, you are wrong:&#xA;  mine is the oldest profession in the&#xA;  world.&quot; The computer scientist leaned&#xA;  back in her chair, smiled, and then&#xA;  said confidently, &quot;Ah, but who do you&#xA;  think created the chaos?&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6181" LastActivityDate="2010-11-04T18:34:32.640" CommunityOwnedDate="2010-11-04T18:34:32.640" />
  <row Id="16889" PostTypeId="2" ParentId="16867" CreationDate="2010-11-04T18:38:10.083" Score="6" ViewCount="" Body="&lt;p&gt;I have to disagree with most people advocating Java here. Learning C++, even if you haven't studied computer and microprocessor architecture, gives you so many invaluable insights in the way computer programs work and operate. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nota bene, I'm &lt;strong&gt;NOT advocating&lt;/strong&gt;  you shouldn't learn Java (better yet, C#) because these are modern , rapid application development langs and huge frameworks have been built around them giving you access to a lot of &quot;free&quot; functionality, like abstracted file access and similar, however a true software engineer should know at least some C++, C or at least assembler, because that's what separates you from the script-kiddie types.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you are reasonably proficient with C++, confident with memory management and STL, picking up Java/C# should be a breeze.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-04T18:38:10.083" CommentCount="4" />
  <row Id="16890" PostTypeId="2" ParentId="16802" CreationDate="2010-11-04T18:39:26.197" Score="0" ViewCount="" Body="&lt;p&gt;You can get the (real) questions and answers (explained) on this website:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.testking.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.testking.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This will change your view of the value of those certifications forever.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-04T18:39:26.197" CommentCount="7" />
  <row Id="16891" PostTypeId="2" ParentId="16807" CreationDate="2010-11-04T18:43:45.130" Score="2" ViewCount="" Body="&lt;p&gt;I believe there are certain cases where it is justified to have an empty catch clause - these are cases when you want the code to just keep going if a particular operation fails.  However, I do think that this pattern can be easily overused, so each use should be closely examined to make sure there's not a better way to handle it.  In particular, this should never be done if it leaves the program in an inconsistent state or if it could lead to some other part of the code failing later on.&lt;/p&gt;&#xA;" OwnerUserId="5415" LastActivityDate="2010-11-04T18:43:45.130" />
  <row Id="16892" PostTypeId="2" ParentId="16820" CreationDate="2010-11-04T18:44:47.033" Score="1" ViewCount="" Body="&lt;p&gt;If you think you would at some point like a degree, do it now.  When you get older, you'll have far more responsibilities and less available time for getting that degree.  Its much easier to do when you are younger.  You might also look around at other colleges (physical or online) and see if they'd accept credit transfers if you think some other college would be a better fit (better location, better courses, etc).  Some schools really go aftter the part time student and will understand your needs better.  So keep your options open.  They may not be the big-name schools, but a degree is a degree.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-04T18:44:47.033" />
  <row Id="16893" PostTypeId="2" ParentId="16788" CreationDate="2010-11-04T18:47:32.270" Score="0" ViewCount="" Body="&lt;p&gt;I think either &quot;char&quot; (as in charbroiled) or &quot;car&quot; are acceptable.  &quot;Care&quot; should not be used.  (If you're tempted by the &quot;care&quot; option, think about how you would pronounce &quot;varchar&quot; - &quot;varcare&quot; is clearly just wrong.)&lt;/p&gt;&#xA;" OwnerUserId="5415" LastActivityDate="2010-11-04T18:47:32.270" />
  <row Id="16894" PostTypeId="2" ParentId="16836" CreationDate="2010-11-04T18:54:09.927" Score="1" ViewCount="" Body="&lt;p&gt;The only reason that english is widely used in computing is that it happens to be a wide spread language right now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If computers were invented 2000 years ago, they would have used Greek. If they were invented 200 years ago they would have used French. If they would have been invented in 200 years they would probably use Chinese...&lt;/p&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-11-04T18:54:09.927" />
  <row Id="16895" PostTypeId="2" ParentId="16867" CreationDate="2010-11-04T18:55:37.430" Score="1" ViewCount="" Body="&lt;p&gt;I'd recommend C++. I had some classes in Java, and some in C++ in college, and the language specific skills I learned from C++ have helped me more when learning additional languages later. Additionally, although I see a lot more Java than C++ job openings, most are looking for a full Java stack, like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;EJB 1.x/2.0, JNDI, JMS, JTA/JTS, RMI, JDBC, Servlets, JSP, SAX/DOM, Web Services, SOAP, WSDL, UDDI, JAXB, JavaMail, WAP, WML, HTML&lt;/li&gt;&#xA;&lt;li&gt;Tomcat, Apache Xalan, Apache Xerces, Jserv, JRun, JBuilder, TogetherJ, Web Logic 5.x/6.x, Websphere 3.5/4&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And chances are a Java based curriculum won't prepare you much better than a C++ based one would against a list like that.&lt;/p&gt;&#xA;" OwnerUserId="7035" LastActivityDate="2010-11-04T18:55:37.430" CommentCount="1" />
  <row Id="16896" PostTypeId="2" ParentId="8560" CreationDate="2010-11-04T19:03:48.810" Score="1" ViewCount="" Body="&lt;p&gt;I've done rapid prototyping in Delphi several times. It makes it easy to very quickly throw together a screen layout, much quicker than in powerpoint or visio. The resulting exe can be attached to e-mails without requiring any dependencies. Since I use it to prototype web apps, there's no danger of people confusing the prototype with a halfway finished version.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've tried to do the same with Sencha Ext Designer, but the layout system of Ext JS is harder to use, and it felt like more of a burden than a convenience to rapidly iterate ideas.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-11-04T19:03:48.810" />
  <row Id="16897" PostTypeId="2" ParentId="10989" CreationDate="2010-11-04T19:06:49.273" Score="4" ViewCount="" Body="&lt;p&gt;Although some people view/treat portability, following standards, etc., as morally superior, or something on that order, what it really boils down to is economics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing portable code has a cost in terms of effort to make the code portable, and (often) foregoing some features that aren't available on all targets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Non-portable code has a cost in terms of effort to port the code when/if you care about a new architecture, and (often) foregoing some features that aren't (or weren't) available on the original target.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The big qualifier there is &quot;when/if you care about a new architecture&quot;. Writing portable code requires effort up-front in the &lt;em&gt;hope&lt;/em&gt; of an eventual payoff of being able to use that code on new/different architectures with little or no effort. Non-portable code lets you delay that investment in porting until you're (at least reasonably) sure you really need to port to some particular target.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're sure up-front that you're going to port to a lot of targets, it's usually worthwhile to invest up-front in minimizing long-term porting costs. If you're less certain about how much (or even if) you'll need to port the code, writing non-portable code lets minimize the up-front cost, delaying or possibly even completely avoiding the cost of making the code portable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's also worth noting that I've spoken of &quot;portable&quot; and &quot;non-portable&quot; as if there was a clear-cut division between the two. In reality, that's not true -- portability is a continuum, running from thoroughly non-portable (e.g., assembly code) to extremely portable (e.g., Info-zip), and everywhere in between.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-04T19:06:49.273" />
  <row Id="16898" PostTypeId="2" ParentId="8560" CreationDate="2010-11-04T19:17:10.680" Score="3" ViewCount="" Body="&lt;p&gt;I use a combination of MS Paint and Visual Studio. I use VS to drag/drop all the controls I want onto a form, then screenshot it into MS paint to rearrange them until I like the way it looks.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-11-04T19:17:10.680" />
  <row Id="16899" PostTypeId="2" ParentId="16788" CreationDate="2010-11-04T19:18:29.207" Score="2" ViewCount="" Body="&lt;p&gt;I've given up trying to pronounce 'char'. Now I just say &quot;character&quot;. Two extra syllables, but care, car, and char(broiled) feel awkward and wrong when they leave my lips. &lt;/p&gt;&#xA;" OwnerUserId="4222" LastActivityDate="2010-11-04T19:18:29.207" />
  <row Id="16900" PostTypeId="2" ParentId="16869" CreationDate="2010-11-04T19:27:39.913" Score="0" ViewCount="" Body="&lt;p&gt;First thing's first - ask all you are worried about, don't leave anything to assumptions. I cannot stress this enough - I once assumed something and later regretted it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, and this is (IMHO) quite important too  : Ask them if you can walk around company offices. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Observe the people working there. If there is something wrong, you'll &quot;just know it&quot;. Part of this comes from stressed people releasing all sorts of pheromones, and the other part comes from the eery, inexplainable silence, one of the sort of the wood being chopped in the forrest in which there is no one to hear the sound of it falling.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-04T19:27:39.913" />
  <row Id="16901" PostTypeId="1" CreationDate="2010-11-04T19:35:19.720" Score="0" ViewCount="153" Body="&lt;pre&gt;&lt;code&gt;import java.awt.*;&#xA;import javax.swing.*;&#xA;import javax.swing.event.ListSelectionEvent;&#xA;import javax.swing.event.ListSelectionListener;&#xA;public class StockMarket extends JApplet implements ListSelectionListener&#xA;{&#xA; JButton buy, sell;&#xA; JLabel l_stock, l_qty, l_price, l_title, l_total;&#xA; JTextField tf_stock, tf_qty, tf_price;&#xA; JList owned;&#xA; DefaultListModel ownedModel;&#xA; JPanel center;&#xA; double totalValue = 0;&#xA;&#xA;&#xA; public void init( )&#xA;&#xA; {  &#xA;  setLayout( new BorderLayout( ) );&#xA;  doTitle( );&#xA;  setupCenter( );&#xA;  setSize(500,300);&#xA;  String goog = &quot;100&quot;;&#xA;  int aInt = Integer.parseInt(goog);&#xA;&#xA;  owned.addListSelectionListener(this);&#xA; }&#xA;&#xA;&#xA; public void doTitle( )&#xA; {&#xA;  l_title = new JLabel( &quot;Liz's Stock Market&quot;, JLabel.CENTER );&#xA;  l_title.setFont( new Font( &quot;Serif&quot;, Font.BOLD, 26 ) );&#xA;  add( l_title, BorderLayout.NORTH );&#xA; }&#xA; public void setupCenter( )&#xA; {&#xA;  center = new JPanel( new BorderLayout( ) );&#xA;  setupTrading( );&#xA;  setupInventory( );&#xA;  add( center, BorderLayout.CENTER );&#xA; }&#xA; public void setupInventory( )&#xA; {&#xA;  ownedModel = new DefaultListModel( );&#xA;  owned = new JList( ownedModel );&#xA;  ownedModel.add(0,&quot;Buy:GOOG(100)&quot;);&#xA;  ownedModel.add(1,&quot;Buy:ATI(40)&quot;);&#xA;  ownedModel.add(2,&quot;Sell:C(5)&quot;);&#xA;  ownedModel.add(3,&quot;Sell:TX(20)&quot;);&#xA;  JScrollPane ownedScroll = new JScrollPane( owned );&#xA;  l_total = new JLabel( &quot;0.0&quot; );&#xA;  JPanel inventory = new JPanel( new FlowLayout( ) );&#xA;  inventory.add( ownedScroll );&#xA;  inventory.add( l_total );&#xA;  center.add( inventory, BorderLayout.CENTER );&#xA; }&#xA; public void setupTrading( )&#xA; {&#xA;  JPanel trades = new JPanel( new GridLayout( 1, 8 ) );&#xA;  l_stock = new JLabel( &quot;Stock: &quot;, JLabel.RIGHT );&#xA;  l_qty = new JLabel( &quot;Quantity: &quot;, JLabel.RIGHT );&#xA;  l_price = new JLabel( &quot;Price: &quot;, JLabel.RIGHT );&#xA;  tf_stock = new JTextField( 10 );&#xA;  tf_qty = new JTextField( 10 );&#xA;  tf_price = new JTextField( 10 );&#xA;  trades.add( l_stock );&#xA;  trades.add( tf_stock );&#xA;  trades.add( l_qty );&#xA;  trades.add( tf_qty );&#xA;  trades.add( l_price );&#xA;  trades.add( tf_price );&#xA;  // setup buttons to buy or sell&#xA;  buy = new JButton( &quot;Buy&quot; );&#xA;  sell = new JButton( &quot;Sell&quot; );&#xA;  trades.add( buy );&#xA;  trades.add( sell );&#xA;  // add to north part of center panel&#xA;  center.add( trades, BorderLayout.NORTH );&#xA; }&#xA; public void valueChanged(ListSelectionEvent le) &#xA;&#xA; {&#xA;  int index = owned.getSelectedIndex();&#xA;  if (index == 0);&#xA;   l_total.setText(&quot;1000&quot;);&#xA;  if (index == 1)&#xA;   l_total.setText(&quot;400&quot;);&#xA;  else if ( index == 2 )&#xA;   l_total.setText(&quot;200&quot;);&#xA;&#xA; }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Okay so I can select an item from the Jlist and it will give an output ^^ I just need help figuring out a way to do select an item from Jlist converting it to string and then multiplying 2 numbers together to give me the answer. This is a stocks program so itll look like:  &lt;strong&gt;_&lt;/strong&gt;&lt;em&gt;stock &lt;strong&gt;&lt;/em&gt;_&lt;/strong&gt;&lt;em&gt;quantity   &lt;strong&gt;&lt;/em&gt;&lt;/strong&gt;_price BUY / SELL jbuttons&lt;/p&gt;&#xA;" LastEditorUserId="902" LastEditorDisplayName="" LastEditDate="2010-11-04T19:51:53.227" LastActivityDate="2010-11-04T19:51:53.227" ClosedDate="2010-11-04T20:24:27.693" Title="Java Convert if else string to int &gt; and then do mathmatics" Tags="&lt;java&gt;&lt;programming&gt;" CommentCount="2" />
  <row Id="16902" PostTypeId="2" ParentId="16867" CreationDate="2010-11-04T19:41:45.260" Score="0" ViewCount="" Body="&lt;p&gt;I think a lot depends on your personality. At least from my perspective, Java and C++ have radically different orientations that appeal to substantially different kinds of people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you get down to it, Java is really mostly a big class library, with enough of a language to be able to instantiate objects and invoke methods from that library. &quot;Learning Java&quot; consists, in large part of memorizing (or at least becoming aware of) what's in the library and how it's organized, so you can find the things you want when you want them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ places much less emphasis on providing pre-written code. While it does include a library (STL&lt;sup&gt;1&lt;/sup&gt;), that library is less about the code that's included than it is about a style and set of principles. It's entirely possible to write code that's clearly and easily recognizable as &quot;STL&quot; code, even though it uses little or even none of the pre-written code at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also a fairly substantial difference in how the languages are used. Java has placed a heavy emphasis on keeping the language simple. This makes it easy to build tools that manipulate Java code in various ways (e.g., for refactoring). It also means that you tend to &lt;em&gt;need&lt;/em&gt; tools that can do so, because refactoring often involves quite substantial changes to large amounts of code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ is a &lt;em&gt;much&lt;/em&gt; more complex language, which means (among other things) that building tools to manipulate C++ source code is &lt;em&gt;tremendously&lt;/em&gt; more difficult than for Java. The balance to that is that it's much less necessary -- a refactoring job that might involve hundreds of changes to dozens of files in Java might be accomplished by (for example) changing a single template parameter in C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java places a great deal more emphasis on being easy to learn. C++ places much more emphasis on being easy to use -- but (unfortunately) only if you really know what you're doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not going to advocate for one or the other. My opinion of the languages is a lot less relevant than your having some idea of what to expect from each, and taking an honest look at yourself to figure out which is likely to suit you better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt;Yes, I know that's not really accurate, but I'm trying to keep this from turning into a book...&lt;/p&gt;&#xA;" OwnerUserId="902" LastEditorUserId="902" LastEditorDisplayName="" LastEditDate="2010-11-04T19:49:40.827" LastActivityDate="2010-11-04T19:49:40.827" />
  <row Id="16903" PostTypeId="2" ParentId="16867" CreationDate="2010-11-04T19:52:31.200" Score="0" ViewCount="" Body="&lt;p&gt;Having taught both C++ and Java at the college level, I would strongly recommend &lt;strong&gt;Java&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java assists in the learning process, and encourages good programming behavior. The built-in libraries for Java are useful and easily available in every install. Being able to create a GUI app in one sentence, using the built-in libraries available in every Java install and that match all the tutorials the students find in a Google search, is crucial to helping students get beyond the language and start understand programming &lt;em&gt;concepts&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The IDEs for Java provide support for both beginning and continuing students. Bringing powerful refactoring tools into the conversation early (while discussing OOP, for example) will help students learn to write maintainable code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While C++ is a useful language to know, the additional concepts learned in C++ are not really worth the extra effort of the language as a whole. There are a large extra set of &quot;gotchas&quot; that must be taught around that can be introduced at a later time (memory management problems and buffer overflows to name a couple). Requiring students to understand these before moving on to concepts like algorithmic complexity and inheritance slows you down, the way requiring a driver to understand tire pressure before driving would slow down Driver's Ed. Sure, you need to know it. But you only need to know it as something that you'll get &lt;em&gt;wrong&lt;/em&gt; some day, not as a building block of a larger concept.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-11-04T19:52:31.200" CommentCount="2" />
  <row Id="16904" PostTypeId="2" ParentId="16618" CreationDate="2010-11-04T19:56:28.660" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Underscore naming, despite that it is the most readable naming convention in programming according to Bjarne Stroustrup. I'll miss it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Tricks like &lt;code&gt;connect() or die()&lt;/code&gt; allowed in many dynamic languages, will be considered bad tone&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Assignment as expression &lt;code&gt;while (a = get())&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I wish this thing is considered harmful one day: &lt;code&gt;if (0 == i)&lt;/code&gt;, it's so anti-human and plain stupid despite all justifications (which are as stupid)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-04T19:56:28.660" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="5" />
  <row Id="16905" PostTypeId="1" AcceptedAnswerId="16943" CreationDate="2010-11-04T19:58:03.287" Score="4" ViewCount="171" Body="&lt;p&gt;In work we have just started using the Scrum methodology, it is working well but I have a question on the daily sprint meetings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We set aside 15 minutes for the meeting (between the three devs and the scrum master if we think he is needed) but I have found that we have normally finished by 5 minutes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This might be because we have said all that needs to be said but I was wondering what people tend to talk about in them, in case we are missing something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the record we normally update each other on current objective, troublesome previous objectives and plans for the rest of the day (including if we will not be available on that project).&lt;/p&gt;&#xA;" OwnerUserId="5010" LastEditorUserId="5185" LastEditorDisplayName="" LastEditDate="2010-11-04T20:02:52.013" LastActivityDate="2010-11-04T22:19:49.003" Title="Sprint Meetings - What to talk about." Tags="&lt;agile&gt;&lt;scrum&gt;&lt;sprint&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="16906" PostTypeId="2" ParentId="15158" CreationDate="2010-11-04T20:03:52.183" Score="1" ViewCount="" Body="&lt;p&gt;I've read the Haskell spec, which is useful not just for the language definition but also because it contains source code for the Haskell Prelude. Reading the Prelude code gave me a good grasp of common Haskell idioms.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-04T20:03:52.183" />
  <row Id="16907" PostTypeId="2" ParentId="15158" CreationDate="2010-11-04T20:09:47.043" Score="0" ViewCount="" Body="&lt;p&gt;Once I had insomnia for a few days so I read the whole ECMA published C++/CLI spec. What a great read.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-04T20:09:47.043" />
  <row Id="16908" PostTypeId="1" AcceptedAnswerId="16997" CreationDate="2010-11-04T20:12:11.783" Score="13" ViewCount="555" Body="&lt;p&gt;This is one of the things that I hate most when I see it in someone else's code. I know what it means and why some people do it this way (&quot;what if I accidentally put '=' instead?&quot;). For me it's very much like when a child goes down the stairs counting the steps out loud.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, here are my arguments against it:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It disrupts the natural flow of reading the program code. We, humans, say &quot;if value is zero&quot; and not &quot;if zero is value&quot;.&lt;/li&gt;&#xA;&lt;li&gt;Modern compilers warn you when you have an assignment in your condition, or actually if your condition consists of just that assignment, which, yes, looks suspicious anyway&lt;/li&gt;&#xA;&lt;li&gt;You shouldn't forget to put double '=' when you are comparing values if you are a programmer. You may as well forget to put &quot;!&quot; when testing non-equality.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-05T05:54:55.547" ClosedDate="2010-11-05T06:17:33.203" Title="Doesn't &quot;if (0 == value) ...&quot; do more harm than good?" Tags="&lt;coding-style&gt;" AnswerCount="10" CommentCount="16" FavoriteCount="1" />
  <row Id="16909" PostTypeId="2" ParentId="16908" CreationDate="2010-11-04T20:16:59.417" Score="10" ViewCount="" Body="&lt;p&gt;I wouldn't call it harm, but it is obnoxious. So no I wouldn't say it does.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-11-04T20:16:59.417" />
  <row Id="16910" PostTypeId="2" ParentId="16908" CreationDate="2010-11-04T20:21:32.360" Score="6" ViewCount="" Body="&lt;p&gt;I've never felt that the whole 'what if I forget a =?' ever really held much weight. Yes, you may make a typo, but we all make typos, it seems silly to change your entire coding style because you're afraid of making a mistake. Why not make all of your variables &amp;amp; functions all lowercase with no puncuation, because you might forget to capitalize something or forget an underscore one day?&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-11-04T20:21:32.360" CommentCount="4" />
  <row Id="16911" PostTypeId="2" ParentId="16908" CreationDate="2010-11-04T20:22:24.283" Score="5" ViewCount="" Body="&lt;p&gt;This is basically flaimbait.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No, it doesn't do more harm than good. Simple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More words?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compiler argument? Erm, ish, maybe - don't put too much faith in the complier to save you from yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;You shouldn't forget&quot; - well &lt;em&gt;duh&lt;/em&gt; - no of course you shouldn't meanwhile I'm tired, I've been coding all day I've had to use two different languages and sometimes, just sometimes, being human I make a mistake. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point of this sort of behaviour is that its defensive, its not there because you expect to make mistakes any more than you have insurance because you expect to crash... but if you do its nice to be covered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hard to read? You're complaining that a decent programmer should have == hardwired (which makes all kind of poor assumptions) but that the self same decent programmer can't read 0 == value ??&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does no harm, has potential benefits, silly question, let others do it if they want and move on.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-11-04T20:22:24.283" CommentCount="7" />
  <row Id="16912" PostTypeId="2" ParentId="16908" CreationDate="2010-11-04T20:22:31.350" Score="24" ViewCount="" Body="&lt;p&gt;Harmful?  No.  It works either way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad Practice?  Debatable, at best.  It's simple defensive programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Worth losing sleep over?  Nah.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-11-04T20:22:31.350" CommentCount="1" />
  <row Id="16913" PostTypeId="1" AcceptedAnswerId="16925" CreationDate="2010-11-04T20:27:14.503" Score="3" ViewCount="149" Body="&lt;p&gt;Before my current job, I was always involved in the technical aspects of a project like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;architecture&lt;/li&gt;&#xA;&lt;li&gt;design&lt;/li&gt;&#xA;&lt;li&gt;performance&lt;/li&gt;&#xA;&lt;li&gt;security&lt;/li&gt;&#xA;&lt;li&gt;etc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Now I'm team lead of a project that's a game on a web site (not mine) and somehow got involved in the business side of the project:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;what users expect&lt;/li&gt;&#xA;&lt;li&gt;ads showing in which pages of the site&lt;/li&gt;&#xA;&lt;li&gt;mechanics of the game&lt;/li&gt;&#xA;&lt;li&gt;etc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But I quite don't agree with business people's (customer or product owner if you like) decisions of the directions of the site. Of course I raise my concerns, some of them are taken into account, most of them aren't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I continue my work as usual as I like working here but I feel like the product would be better than what it is now. I think that's because my goal is to make an interesting and challenging game, and theirs is to attract as many people and earn money as possible (it's a paid game). Have you guys ever happened to be in this kind of situation? What are your experiences?&lt;/p&gt;&#xA;" OwnerUserId="4701" LastActivityDate="2010-11-05T21:24:08.997" Title="Should I be involved in my project's business side?" Tags="&lt;advice&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="16914" PostTypeId="2" ParentId="16908" CreationDate="2010-11-04T20:27:16.257" Score="1" ViewCount="" Body="&lt;p&gt;And yet the errors occur. And sometimes you want an assignment in a loop operator where you might otherwise check equality, or at least it is standard practice to use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hold with it somewhat.The advice that I have followed ( possibly from Code Complete ) is to keep what should be the lower value on the left in comparisons. I was discussing this with a colleague earlier and he thought it was kind of crazy but I've got very used to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I would say:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if ( 0 &amp;lt;= value )&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But I would also say:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if ( value &amp;lt;= 100 )&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Equality I will tend to check with the variable on the left though, it's just more readable. &lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-04T20:27:16.257" CommentCount="2" />
  <row Id="16915" PostTypeId="2" ParentId="14287" CreationDate="2010-11-04T20:30:03.943" Score="1" ViewCount="" Body="&lt;p&gt;As the other answers said, it depends on what you want to do. However, the need for portability also depends on what you want to do. If you're planning to do most of your development at home on the Mac, and you want to do desktop applications and maybe graphics, why not take a look at Objective C? &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-04T20:30:03.943" />
  <row Id="16916" PostTypeId="2" ParentId="16459" CreationDate="2010-11-04T20:30:11.963" Score="5" ViewCount="" Body="&lt;p&gt;If you want to &lt;strong&gt;learn&lt;/strong&gt; how interpreters work, skip all the toolkits and write a recusive descent parser manually in the language of your choice.  Though you'll find most example code online and in books is in C or C++, you can use any language.  &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-04T20:30:11.963" />
  <row Id="16917" PostTypeId="2" ParentId="16689" CreationDate="2010-11-04T20:35:15.733" Score="5" ViewCount="" Body="&lt;p&gt;I can't tell from your question whether you have just messed up on one particular project and are being told you have to make it right, or whether your manager makes everyone meet deadlines even when the deadlines are ridiculous and inhuman effort is required to meet them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's the latter, take a look at &lt;a href=&quot;http://www.planningforfailure.com/post/1461931855/the-problem-with-working-overtime&quot; rel=&quot;nofollow&quot;&gt;http://www.planningforfailure.com/post/1461931855/the-problem-with-working-overtime&lt;/a&gt; which makes all the points I would make here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if it's the former, you need to know whether this is a one-time wipe-the-slate-clean incident or not. He gave you a task, you blew it, you make it right by working real hard one week, and going forward it's as though you did it perfectly and on time? That might be ok. But he's going to keep on giving you tasks you can't quite do, isn't going to step in when you head in the wrong direction, hasn't provided any support for you, and figures it's all ok as long as you work 100 hours in any week that featured mistakes? You don't want to be there. Or you didn't do anything wrong, he just made up dates that required 2-3 times the pace you all know you can code at, meaning you had to work overtime to make him look ok. You don't want to be there either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So when you get this done, you ask your boss: what just happened? Why did I have to work all that overtime? Was this my mess-up? Could we have seen it coming? How can I make sure it doesn't happen again? &lt;em&gt;Is this normal?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if the answers are a pat on the head, a thats-how-things-are-in-the-big-leagues-kid, even an I-know-it-wasn't-your-fault-but-projects-always-end-like-this, then you need to look to options that involve a different boss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to how not to be that guy, you're halfway to knowing already and you'll probably know the other half by the time you're management. &lt;/p&gt;&#xA;" OwnerUserId="285" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2010-12-13T22:42:50.017" LastActivityDate="2010-12-13T22:42:50.017" />
  <row Id="16918" PostTypeId="1" CreationDate="2010-11-04T20:39:43.307" Score="3" ViewCount="140" Body="&lt;p&gt;There is a lot of hate for DRM and software patents on internet message boards (in general), yet corporations on the whole support these things. Given that many of us on internet message boards are employed by corporations, I would imagine that many of us have at times felt uneasy about our ethical stance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would you turn down a job offer because of the employers involvement with DRM, software patents, invasion of privacy or other (legal) practices you do not like? Would you justify breaking your moral code for the sake of a job? Do you simply align yourself with your employers stance on DRM and software patents?&lt;/p&gt;&#xA;" OwnerUserId="7060" LastActivityDate="2010-11-04T22:00:16.333" Title="DRM, software patents, employment, and ethics" Tags="&lt;career&gt;&lt;ethics&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="16919" PostTypeId="2" ParentId="16807" CreationDate="2010-11-04T20:43:57.873" Score="0" ViewCount="" Body="&lt;p&gt;We have a few functions that log their error &lt;em&gt;and&lt;/em&gt; throw an exception.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, if I call these in a cleanup function/destructor/finalizer and they fail, I just swallow the exception and note in the code that any error is logged. &lt;/p&gt;&#xA;" OwnerUserId="3917" LastActivityDate="2010-11-04T20:43:57.873" />
  <row Id="16920" PostTypeId="2" ParentId="492" CreationDate="2010-11-04T20:47:00.553" Score="1" ViewCount="" Body="&lt;p&gt;If you can't type as fast as you think, you're in for a long career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, if you have to stop and think for a second about where the keys are or whatever, then you're spending too many brain cycles on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn to type, it's easy.&lt;/p&gt;&#xA;" OwnerUserId="6430" LastActivityDate="2010-11-04T20:47:00.553" CommunityOwnedDate="2011-03-20T20:58:56.467" CommentCount="1" />
  <row Id="16921" PostTypeId="2" ParentId="16913" CreationDate="2010-11-04T20:51:13.217" Score="2" ViewCount="" Body="&lt;p&gt;Yes I have, in many companies I worked for. And I always lost to the business people; they have a higher rank in software companies anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Curiously, making your product more interesting and more enjoyable for your users is the whole point of business: the more enjoyable, the more money, as a rule. On the other hand making money by &lt;em&gt;not&lt;/em&gt; making your product better, more often than not means unethical business, which works in the short term and certainly fails in the long run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, you may be wrong and they may be right on some, or most, or all of the issues you disagree on, but anyway: start your own startup and end this frustration.&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-04T20:51:13.217" CommentCount="2" />
  <row Id="16922" PostTypeId="2" ParentId="16459" CreationDate="2010-11-04T20:51:57.347" Score="1" ViewCount="" Body="&lt;p&gt;I typically go for C++, but the implementation language should be whatever most naturally represents your new language. If your language is imperative, use an imperative language. If it's functional and uses lazy evaluation all over the place, use a functional language. You get all of the features of the host language for free, so why do any wheel-reinvention?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Incidentally, the folks who hang out on &lt;a href=&quot;http://esoteric.voxelperfect.net/wiki/Main_Page&quot; rel=&quot;nofollow&quot;&gt;Esolang&lt;/a&gt;, who (ostensibly) implement languages all the time, tend to go for Perl, Python, or, for a challenge, another esolang&amp;mdash;all assuming the rare case that the language progresses beyond a partial spec.&lt;/p&gt;&#xA;" OwnerUserId="2107" LastActivityDate="2010-11-04T20:51:57.347" />
  <row Id="16923" PostTypeId="2" ParentId="16908" CreationDate="2010-11-04T20:52:53.730" Score="2" ViewCount="" Body="&lt;p&gt;To me, it's simple conditioning.  As someone who learned (in the 90's) C and C++, I grew accustomed to it and still use it, even though the reasons are lessoned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you are &quot;conditioned&quot; to look at the left side for the &quot;constant&quot;, it becomes second nature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also only use it for equivalence (or negated equivalence), not for greater/less than. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I completely agree w/ @Wonko's answer.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-11-04T20:52:53.730" />
  <row Id="16924" PostTypeId="2" ParentId="16867" CreationDate="2010-11-04T20:53:04.960" Score="1" ViewCount="" Body="&lt;p&gt;It's difficult because Java is undeniably easier to learn. You will be doing more sooner with Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ is a much more difficult language to work with. Pointers and memory management are conceptually and practically tricky to work with. C++ doesn't offer you any safety nets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the long term it would be useful to understand all the things that C++ teaches you. Also the transition from C++ to Java is far easier than the other direction. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I do wonder whether when starting out and during a lot of degree projects the extra overhead and debugging you have to do in order to get something working in C++ would actually make your projects harder, your deadlines tougher to meet and your life far more frustrating. To achieve the same thing in C++ and Java I would say that in almost every case you would get the job done faster in Java and run into fewer annoying problems. That could be a really big deal when you are at the end of a semester and have five courses needing their end of course project on the same day. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other side of that is that if those trials don't cause you to throw in the towel altogether, they will make you a better programmer if you have mastered C++. And if your career is with C# or Java or python and you never have to touch another pointer in your life, you will appreciate it a whole lot more...&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-04T20:53:04.960" />
  <row Id="16925" PostTypeId="2" ParentId="16913" CreationDate="2010-11-04T20:55:17.127" Score="4" ViewCount="" Body="&lt;p&gt;In many projects getting involved in the business side of things is not only inevitable, but good.  If you understand the owner's reasons for wanting things you can better react to/suggest/repair/anticipate features you need to work on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifically to your final question: I have, and most of the time you loose more of these than you win until you start to get some positive history on being right with your suggestions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing that sometimes has helped me is to make a demo with things my way and show it to the users as an alternative or conversely make a demo of enough of their way to point out the problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In most enterprise situations it is your job to bring the things up, but ultimately their decision if they think that their crazy is better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When they choose the crazy the best thing you can do is make certain you have a clear exit strategy back to sane worked out when they realize their error.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the crazy starts to get the better of you consider a different employer...&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-04T20:55:17.127" CommentCount="1" />
  <row Id="16926" PostTypeId="2" ParentId="16869" CreationDate="2010-11-04T20:56:44.700" Score="1" ViewCount="" Body="&lt;p&gt;Consider a set of more direct questions &lt;strong&gt;after&lt;/strong&gt; you've been made an offer. No need to be rude, but if you have any concerns...&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-04T20:56:44.700" />
  <row Id="16927" PostTypeId="2" ParentId="492" CreationDate="2010-11-04T21:03:11.783" Score="0" ViewCount="" Body="&lt;p&gt;I consider it very useful, and I'm glad I had to learn it at school, even though I hated it back then. BTW, my school was focused on IT and business organisation.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-04T21:03:11.783" CommunityOwnedDate="2011-03-20T20:58:56.467" />
  <row Id="16928" PostTypeId="2" ParentId="16908" CreationDate="2010-11-04T21:04:30.000" Score="2" ViewCount="" Body="&lt;p&gt;The one case where I find it helpful is where the variable part of the if is quite long and seeing the values makes the code easier to read.  The dotted namespace languages have the best examples of this.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example something I worked on with single sign-on had a situation where you could have two concurrent sessions if a certain type of error happened and was recovered a certain way so I have to add a handler for it that was inside an if that looked something like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;if (2 &amp;lt;= application.httpcontext.current.session[&quot;thenameofmysessiontoken&quot;].items.count())&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Admittedly in this example there are other ways to do this, but this would be a case where the number-first version is potentially more readable.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-04T21:04:30.000" CommentCount="2" />
  <row Id="16929" PostTypeId="2" ParentId="16918" CreationDate="2010-11-04T21:06:00.343" Score="3" ViewCount="" Body="&lt;p&gt;I absolutely will not work for a company that employs DRM or software patents.  Why would I invest myself in things I'm actively trying to get rid of, and that are on their way out with or without my help?  Ethics aside, I have no intention of planning my own obsolescence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Invasion of privacy&quot; is a pretty broad and often misapplied term.  I would not work for a company doing something nefarious, but I expect that different people will have different views on what is nefarious.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-04T21:06:00.343" />
  <row Id="16930" PostTypeId="2" ParentId="16459" CreationDate="2010-11-04T21:12:13.580" Score="2" ViewCount="" Body="&lt;p&gt;At one time, I would have said Lisp, mainly because you can skip the whole parsing step.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But for real, I use C-ish, and write recursive-descent parsers. Typically, rather than interpret the resulting code, I generate code in a reasonable compiler language, then compile and run it on the fly. That way, it performs much better and gets to leverage all the features of the language I generate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But sometimes it isn't necessary to do either of those. I will be hated for this, but often I can build the language I need on top of C or C++ just by writing some macros. &lt;a href=&quot;http://stackoverflow.com/questions/371898/how-does-differential-execution-work&quot;&gt;Here's an example.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-11-04T21:12:13.580" CommentCount="2" />
  <row Id="16931" PostTypeId="2" ParentId="16918" CreationDate="2010-11-04T21:12:19.340" Score="5" ViewCount="" Body="&lt;p&gt;I would turn down a job if they're doing stuff that's not right.  If you're a competent programmer another job isn't too hard to come by, even in this economy.  As for &quot;justifying breaking your moral code for the sake of a job,&quot; you ought to take a long, hard look at yourself if you find yourself even asking that question.  Seems to me that if you're willing to break your moral code for money, the pretty much by definition you don't really have one.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-11-04T21:12:19.340" />
  <row Id="16933" PostTypeId="2" ParentId="16807" CreationDate="2010-11-04T21:12:28.167" Score="2" ViewCount="" Body="&lt;p&gt;In some cases, Java requires you to handle an exception that can, under absolutely no circumstances, ever happen. Consider this code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;try {&#xA;   bytes[] hw = &quot;Hello World&quot;.getBytes(&quot;UTF-8&quot;);&#xA;}&#xA;catch(UnsupportedCodingException e) {&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Every implementation of the Java&#xA;  platform is required to support the&#xA;  following standard charsets.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;...&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;UTF-8&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Without breaking your Java platform, there is simply no way to ever cause this exception. So why bother handling it? But you cannot simply ommit the try-catch-clause.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-04T21:12:28.167" />
  <row Id="16934" PostTypeId="2" ParentId="8560" CreationDate="2010-11-04T21:18:31.793" Score="1" ViewCount="" Body="&lt;p&gt;I don't always use the same approach.  Some of the techniques I use are (in rough order of frequency):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Whiteboard (for prototyping interactively/discussing.  Take a photo afterward!)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;RAD-style GUI designer (Visual Studio, NetBeans, Delphi)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Get good at this, and it can actually become one of the fastest ways to create prototypes of a &quot;windows, widgets, and forms&quot; application.  Bonus: the prototypes can end up looking really pretty professional, depending on how quickly you throw it together.  They can sometimes even serve as a launching point for creating the real thing, once a prototype is approved.&lt;br&gt;&lt;br&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Paper and pen/pencil (usually for brainstorming to myself)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Static HTML/CSS/JS files on disk&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I'd imagine a WYSIWYG design application wouldn't hurt here, but I usually just hack on the raw HTML.  I don't do a lot of these, anyway.&lt;br&gt;&lt;br&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Vector drawing tools - Illustrator / Inkscape / Visio / PowerPoint / Impress&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Raster graphics tools - Photoshop / Gimp&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;ASCII art ;-)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6677" LastEditorUserId="6677" LastEditorDisplayName="" LastEditDate="2010-11-05T15:42:11.027" LastActivityDate="2010-11-05T15:42:11.027" />
  <row Id="16935" PostTypeId="2" ParentId="16905" CreationDate="2010-11-04T21:31:42.883" Score="2" ViewCount="" Body="&lt;p&gt;The Scrum Master ensure that the process (Scrum) is properly implemented. He is mandatory in daily stand ups (it's how they are called).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;15 minutes is OK for a team of 5 (3 minutes per team member). If you don't speak more than 1 minutes, it looks like a smell to me. Could you check you respect &lt;a href=&quot;http://www.mountaingoatsoftware.com/scrum/daily-scrum&quot; rel=&quot;nofollow&quot;&gt;these rules&lt;/a&gt;?&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-04T21:31:42.883" />
  <row Id="16936" PostTypeId="1" CreationDate="2010-11-04T21:31:51.807" Score="9" ViewCount="623" Body="&lt;p&gt;And why do most programmers quit coding and become managers so early compared to other areas? You can work as a construction worker, a lawyer, researcher, writer, architect, movie director for decades if not your whole life, without quitting the favorite thing you are doing. And yet most programmers think being a manager, or better, a non-coding manager is a cool thing and the ultimate goal of the software career. It's so rare to see an ordinary coder in his 40s or 50s (or 60s!) in a typical software company. Why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(And I am for being a coder for as long as you love doing it.)&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-05T17:17:16.303" Title="Do non-manager coders in their forties or older out there sometimes regret about not being managers?" Tags="&lt;management&gt;&lt;coding&gt;" AnswerCount="22" CommentCount="3" FavoriteCount="1" />
  <row Id="16937" PostTypeId="2" ParentId="16689" CreationDate="2010-11-04T21:35:09.870" Score="1" ViewCount="" Body="&lt;p&gt;Just to add another set of answers:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;Is this a sign of an ignorant or disrespectful manager, or simply an&#xA;  inexperienced one?&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Possibly all of the above.  The question is whether this is the person's normal MO or is this an anomaly because someone is coming down hard on them.  How much experience does whoever is running the project have and how well was it planned out originally?  These are other things to consider here.  It may be that what was thought of as a &quot;simple feature&quot; is really anything but and this late discovery has caused some chaos to the project time line.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;I'm in this position because of a lack of planning and project&#xA;  management (I think). How might I&#xA;  avoid this in the future? I'm no&#xA;  Project Manager, it isn't my strength.&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;My suggestion would be to consider ways to &lt;a href=&quot;http://en.wikipedia.org/wiki/How_to_Win_Friends_and_Influence_People&quot; rel=&quot;nofollow&quot;&gt;influence people&lt;/a&gt; so that you can hopefully take a so-so boss and make them good in a way.  While being a Project Manager may not be your strength, there is the question of what is the process for how some things go and who is calling the shots.  In some Agile places the team can have a fair degree of autonomy in deciding what gets put into a sprint which can be a piece of what a PM handles.  To some extent the question here is how does one handle stress as this can be an almost natural thing in some development environments, often not good but there may be that rare exception where the stress is a good thing for some people somewhere.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;What are good ways to get an employee to work overtime if you can't&#xA;  directly pay them? Good incentives,&#xA;  etc.&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In some places I've worked there were annual bonuses of which a part was based on your performance and so working extra hours may help count towards that would be my thinking.  In a way this is an indirect payment for those extra hours as who knows how many extra hours some may work to get that bonus.  Other places would allow one to have some &quot;Comp time&quot; which is basically time that could be taken off later as a kind of swap so that at some point you don't have to work so much in theory.  Hopefully this doesn't sound too creepy but I'd think if my boss befriended me that would be a way to get the situation into a, &quot;Hey, could you give me a favor?&quot; where I'd be asked to work X extra hours that is done out of kindness or as part of building the friendship.  If anyone is wondering about the creepiness that can be seen when someone is just trying to manipulate the situation and seems fake for trying to make a friend in bad times and then disrespect one in good times as that friend isn't needed any longer.  Another way to get some to do overtime is the bribing of food or beverages that can help ease the pains one can have in working extra time and possibly forgetting to get food or get some fluids as a reward, possibly alcoholic in some cases.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-04T21:35:09.870" />
  <row Id="16938" PostTypeId="2" ParentId="16936" CreationDate="2010-11-04T21:35:38.693" Score="0" ViewCount="" Body="&lt;p&gt;Programmers can fed up with all of the politics and think they can fix it all if they become managers (And maybe they're right?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, a lot of programmers &quot;settle&quot; in their 40s or 50s and work at some smaller company where they don't work as much over time because they have family.&lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-11-04T21:35:38.693" />
  <row Id="16939" PostTypeId="2" ParentId="16936" CreationDate="2010-11-04T21:39:06.447" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;It's so rare to see an ordinary coder&#xA;  in his 40s or 50s (or 60s!) in a&#xA;  typical software company. Why?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I think this has more to do with our profession being relatively young than anything else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mean, for sure, there are people around who have been coding in COBOL or Fortran since the 1960s, but our field (and the Computer Science education population) only really started growing exponentially in the 1990s. So most people in the field are relatively young.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-04T21:39:06.447" CommentCount="1" />
  <row Id="16940" PostTypeId="2" ParentId="16936" CreationDate="2010-11-04T21:39:25.870" Score="9" ViewCount="" Body="&lt;p&gt;I'm just shy of your threshold, but several of my colleagues above your threshold hated management duties.  Some did the management thing for a while, and then went back to coding.  Management is a completely different skill set, and what makes a good programmer makes a bad manager (and vice versa).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, the pull for management is due to the way most companies are structured.  Once you hit the ceiling as a coder, there is no further up you can go--which is also reflected in your paycheck vs. your manager's paycheck.  I have yet to see a company actually try what was written in &quot;The Mythical Man Month&quot;.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-11-04T21:39:25.870" CommentCount="1" />
  <row Id="16941" PostTypeId="2" ParentId="16936" CreationDate="2010-11-04T21:41:05.447" Score="1" ViewCount="" Body="&lt;p&gt;These may be obvious, but I'll just state a couple of thoughts:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some may become managers due to the company growing and having been at the company for X years they are now promoted to being a manager, kind of a reward for surviving so long in the company.  There can be a power trip that comes with being a manager I'd imagine as I've never been a manager or want to be a manager.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-04T21:41:05.447" />
  <row Id="16942" PostTypeId="2" ParentId="16936" CreationDate="2010-11-04T21:41:56.880" Score="20" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;And yet most programmers think being a manager, or better, a non-coding manager is a cool thing and the ultimate goal of the software career.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;They do? I have yet to meet one of those types that was coding because they loved it. Most that think this way are programming because they think they are going to make a lot of money doing it and think moving to management they will make more money. They may be right. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am 42 and I love coding. I am currently in a team lead position that has management overtones and I hate that aspect of it. I love being in charge, but management duties suck ass. Honestly, I don't want to work on motivating my team, performance reviews, code reviews, etc. I see this as baby-sitting stuff. I expect them to be as motivated as I am, and when they are not it is frustrating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong, I like being a mentor and would actually love skipping middle management and go right to upper management. That appeals to me. I like thinking long term and making strategic decisions for the business. But middle managers are simply baby sitters who must watch and motivate their charges. I see this as a waste of my skills, to be honest. &lt;/p&gt;&#xA;" OwnerUserId="5485" LastActivityDate="2010-11-04T21:41:56.880" CommentCount="6" />
  <row Id="16943" PostTypeId="2" ParentId="16905" CreationDate="2010-11-04T21:46:22.670" Score="5" ViewCount="" Body="&lt;p&gt;The &lt;em&gt;intent&lt;/em&gt; of the stand-up meeting is to keep all of the team members informed of recent progress and any impediments that may hinder progress. If it only takes your team 5 minutes to accomplish that goal, then 5 minutes is the proper time and you shouldn't worry too much about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to stick pretty much to the classic:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What I have accomplished since the last stand-up&lt;/li&gt;&#xA;&lt;li&gt;What I'll be doing until the next stand-up&lt;/li&gt;&#xA;&lt;li&gt;Any issues that I think might keep me from getting my tasks done&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;but if I need to I'll add&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Anything new I've learned (about the system / environment) that I think the team needs to know&lt;/li&gt;&#xA;&lt;li&gt;Quick thank-you acknowledgements for team-members who have helped me out in a significant way&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The important thing is to share important and timely information quickly and concisely. If that's being accomplished, then the exact time-frame is secondary.&lt;/p&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-11-04T21:46:22.670" />
  <row Id="16944" PostTypeId="2" ParentId="16689" CreationDate="2010-11-04T21:47:09.823" Score="0" ViewCount="" Body="&lt;p&gt;Just point your manager to &lt;a href=&quot;http://ea-spouse.livejournal.com/274.html&quot; rel=&quot;nofollow&quot;&gt;this classic and famous blog post&lt;/a&gt; by &lt;a href=&quot;http://en.wikipedia.org/wiki/EA_Spouse&quot; rel=&quot;nofollow&quot;&gt;Erin Hoffman&lt;/a&gt;. EA later had to pay $14.9 million for unpaid overtime.&lt;br&gt;&#xA;Can the company you work for afford this? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(That blog posting was featured in one of Joel's books.)&lt;/p&gt;&#xA;" OwnerUserId="1512" LastActivityDate="2010-11-04T21:47:09.823" />
  <row Id="16945" PostTypeId="1" AcceptedAnswerId="16951" CreationDate="2010-11-04T21:52:05.807" Score="2" ViewCount="175" Body="&lt;p&gt;From my understanding, Ruby is a language that can be used to creat desktop applications. How does this get converted into a 'Web App' - and is a 'Web App' really any different than a Web Site with interactivity? &lt;/p&gt;&#xA;" OwnerUserId="5313" LastActivityDate="2010-11-04T22:15:58.633" Title="Is a Ruby 'Web App' designed differently than a PHP 'Web Site' ?" Tags="&lt;php&gt;&lt;ruby&gt;&lt;web-applications&gt;" AnswerCount="2" />
  <row Id="16946" PostTypeId="2" ParentId="16936" CreationDate="2010-11-04T21:55:20.357" Score="1" ViewCount="" Body="&lt;p&gt;I think it would be cool to a project manager, that is to say, someone who does maybe does code but definitely does design.  I like the coding but I love the design work.  So I guess that counts.  I'd leave coding if it meant I could do design work full time, but no place I know of actually has non-coding PMs.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(And of course I'd still program as a hobby.  My hobby coding and my work coding share some aspects but are largely independent things to me.)&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-04T21:55:20.357" />
  <row Id="16947" PostTypeId="2" ParentId="16918" CreationDate="2010-11-04T22:00:16.333" Score="-1" ViewCount="" Body="&lt;p&gt;How much you get paid can go a long way towards rationalizing away whatever moral conflicts you have with whatever work you are doing. &lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-11-04T22:00:16.333" CommentCount="2" />
  <row Id="16948" PostTypeId="2" ParentId="16905" CreationDate="2010-11-04T22:04:55.183" Score="1" ViewCount="" Body="&lt;p&gt;(these meetings are usually called daily &lt;strong&gt;scrums&lt;/strong&gt; or &quot;daily standup meetings&quot;.  The word &quot;sprint&quot; refers to the iteration, which is typically between 1 and 4 weeks long.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;If you're done in 5 minutes, that's great!&lt;/strong&gt; (of course, I assume that you covered the required three questions in those five minutes.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the things new scrum teams struggle with is that these meetings run much longer than 15 minutes and people deviate from the agenda to discuss requirements, design, prioritization, etc.  But it looks like you've mastered this element of scrum already.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-04T22:04:55.183" />
  <row Id="16949" PostTypeId="2" ParentId="16945" CreationDate="2010-11-04T22:11:15.937" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.ruby-lang.org/en/&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;Ruby&lt;/code&gt;&lt;/a&gt; is a programming language, and most 'Ruby web apps' (as you have heard the term) are composed using a web application framework, most commonly &lt;a href=&quot;http://rubyonrails.org/&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;Ruby on Rails&lt;/code&gt;&lt;/a&gt;. There are some very good screencasts at &lt;a href=&quot;http://rubyonrails.org/screencasts&quot; rel=&quot;nofollow&quot;&gt;http://rubyonrails.org/screencasts&lt;/a&gt; if you want to see how it's done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, other programming/scripting languages (&lt;a href=&quot;http://www.php.net/&quot; rel=&quot;nofollow&quot;&gt;PHP&lt;/a&gt;, &lt;a href=&quot;http://www.python.org/&quot; rel=&quot;nofollow&quot;&gt;Python&lt;/a&gt;, &lt;a href=&quot;http://msdn.microsoft.com/en-us/vcsharp/default.aspx&quot; rel=&quot;nofollow&quot;&gt;C#&lt;/a&gt;, &lt;a href=&quot;http://www.oracle.com/technetwork/java/index.html&quot; rel=&quot;nofollow&quot;&gt;Java&lt;/a&gt;, etc.) use other techniques, tools, and &lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_web_application_frameworks&quot; rel=&quot;nofollow&quot;&gt;frameworks&lt;/a&gt; to build similarly interactive web applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the most fundamental level, they all end up at the same destination: an interactive web site. The main difference is in how you get there.&lt;/p&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-11-04T22:11:15.937" />
  <row Id="16950" PostTypeId="1" AcceptedAnswerId="17001" CreationDate="2010-11-04T22:14:42.680" Score="8" ViewCount="548" Body="&lt;p&gt;Working in a big company is it really that important to participate in all corporate parties, chat with co-workers about politics, cars and weather, drink beer with the boss and do other social (and sometimes populistic) stuff, or it's just enough to be a high-productive specialist (far more productive that those who're living a social relaxed life at work) to have not only professional, but also career growth?&lt;/p&gt;&#xA;" OwnerUserId="5843" LastEditorUserId="2026" LastEditorDisplayName="" LastEditDate="2010-11-04T23:54:15.983" LastActivityDate="2010-11-05T02:02:15.667" Title="Is socializing at work really important?" Tags="&lt;career&gt;&lt;team&gt;&lt;social&gt;&lt;professionalism&gt;" AnswerCount="10" CommentCount="5" FavoriteCount="2" />
  <row Id="16951" PostTypeId="2" ParentId="16945" CreationDate="2010-11-04T22:15:58.633" Score="2" ViewCount="" Body="&lt;p&gt;This may be completely offsides, since I primarily do ASP.NET in C#, but I think I have still have some insights to the difference between a &quot;web application&quot; and an interactive web site.  It is largely an issue of whether you view the website as the product or the interface to the product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With an interactive site, you're primarily selling the site itself.  I'd say this is becoming an unpopular model really but things like a particular company's website might still fall into this model.  There can be a database providing content, but generally each page carries a lot of it's content with it, and may require some custom code to achieve the pages goals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A web application, on the other hand, is really about the service.  The web site is a just a form factor for it.  Blogs, twitter, stack overflow, CMS, Facebook, and so on are all web applications.  Typically there are less pages, more templates.  Very little content is actually on a given page, because its all being pumped up from the database.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The tools used and how they are used can also make a big difference.  With Ruby or ASP.NET, you can almost pretend like the website isn't even there.  You're just processing and pumping data like any application, but the end result is pushed out to a website instead of a form or something.  Very often, web applications have APIs and other access points that further distance them from the web.  RSS feeds were early examples, but these days you can write a client app that connects directly to Twitter through their API so that the web site itself is never actually involved.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;An Application can be further distinguished by its generality.  A blog engine is a general purpose web application, that can be applied with different designs and content to create many unique blog sites.  A lot of Python or Ruby web apps are like this, and are further distinct from web frameworks.  I'm somewhat familiar with Pylons in Python, which is a framework for building apps, which are themselves the frameworks for hosted sites.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I might use Pylons to write the front-end for a general purpose warehouse management system, then sell that application to clients of my own.  Their designers might further customize my web application to have some static reporting pages, or some general info pages, and now that's a web site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the application really is distinct from the site and the web (and the framework, and the language).  It's not a straight division, lots of sites include a mix of static content and dynamic content.  And if its a web application then it needs a web site front end to support it (but it can support other front-ends as well, this is the key.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;SHORT VERSION&lt;/strong&gt;&#xA;A web application has a web site (which is a front end for the application's functionality) but a web site need not have a full application stack to back it.  Its more a matter of intent than actual composition.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-04T22:15:58.633" />
  <row Id="16952" PostTypeId="2" ParentId="16950" CreationDate="2010-11-04T22:19:21.437" Score="1" ViewCount="" Body="&lt;p&gt;It depends on the company culture.  I'd imagine some big companies may do a lot of gossiping which could hurt one's career at that company as this may prevent some promotions potentially.  At the same time, I'd imagine other big companies wouldn't care at all if you went or didn't.  Another point here is what are we calling big.  Where I currently work there are over 1500 employees worldwide which may make it somewhat small but where I was before had less than a dozen employees so there is quite a difference in scale between these two.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd be more tempted to suggest attending events by local user groups or other professional organizations that may be ways to make connections, learn about new technologies and other skills that may advance one's career rather than deal with office politics.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-04T22:19:21.437" CommentCount="3" />
  <row Id="16953" PostTypeId="2" ParentId="16905" CreationDate="2010-11-04T22:19:49.003" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Betwen 3 devs and the scrum master if we think he is needed.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Maybe you have a small number of people attending the meeting.&#xA;Or does anyone give 'No update'?? kidding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am using scrum as well. we have approximately 13~15 people attending on the daily stand up meeting. What I usually report are&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Any QA delivery(yesterday and today..) with user story&lt;/li&gt;&#xA;&lt;li&gt;If all the user story delivered to QA, I make sure to say &quot;All the user stories are delivered to QA&quot;&lt;/li&gt;&#xA;&lt;li&gt;If I am fixing the bug, I report how many bugs were fixed yesterday and how many remains..&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So, we have 2 weeks sprint. For the first week, I usually talk about user story delivery and the second week is all about bug fix~~&lt;/p&gt;&#xA;" OwnerUserId="6924" LastActivityDate="2010-11-04T22:19:49.003" CommentCount="1" />
  <row Id="16954" PostTypeId="1" CreationDate="2010-11-04T22:20:22.477" Score="3" ViewCount="342" Body="&lt;p&gt;I am a fresher just out of collge .Till now i have worked on java,Python,javascript,groovy,django,JS, JQuery and web application develop has been my only intrest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been working for an IT company for past three months and it involves working with an erp package SAP and i am working on ABAP. Coming from a world of ORM and languages like python ,SAP and database tables doen't excite me much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With all the development being happening around HTML 5 and android etc i feel quite left out and bored in SAP . can you guys suggest me a proper way forward ?&lt;/p&gt;&#xA;" OwnerUserId="7064" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-11-04T22:54:57.590" LastActivityDate="2011-02-26T01:41:07.877" Title="SAP vs Other Technologies" Tags="&lt;career&gt;&lt;web-development&gt;&lt;erp&gt;&lt;sap&gt;&lt;abap&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="16955" PostTypeId="2" ParentId="16936" CreationDate="2010-11-04T22:27:50.553" Score="3" ViewCount="" Body="&lt;p&gt;Although I'm not quite in my 40s yet I don't have long to wait...so I'll have a go at answering this one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a manager who also codes. I would hate to ever have a management position where I do no (or little coding). First of all I love coding (or more accurately problem solving and learning) but also if you're directly managing coders I feel you really do need to understand what's going on in order to support the team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand I enjoy the managerial parts of my job - getting processes implemented, coaching and so forth. To be honest I don't think that most coders are interested in that side of things - when I go to 'soft skills' community events there's always way fewer people attending than go the coding or tech events. So, I don't know that most coders aspire to become managers (or if they do the ones that go to the tech events either aren't interested in the skills in the same way or they value them less).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the reason you don't get many 40+ coders is that 20 years ago there was a fraction of the number there are today - give it another 10-20 years and you'll see that age distribution even out a lot.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastEditorUserId="1362" LastEditorDisplayName="" LastEditDate="2010-11-04T23:43:25.433" LastActivityDate="2010-11-04T23:43:25.433" />
  <row Id="16956" PostTypeId="2" ParentId="16936" CreationDate="2010-11-04T22:28:41.237" Score="0" ViewCount="" Body="&lt;p&gt;In any highly technical field, you have to keep learning just keep up. Of course, not everyone can do this or really wants to try. Management is a perfect escape since the higher you climb, the less technical knowledge you're expected to have. I'm seriously generalizing here and not trying to diminish natural managers but a typical VP isn't supposed to design device drivers (or whatever).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's difficult is not knowing if this reasonable transition is the right thing to do. I was fortunate enough to have gotten my answer when I was rather young. I had a minor, non-technical management position that taught me that I would NEVER want to be a real manager. For me, the pay difference just isn't worth the hassle and the technical stuff is just too much fun.&lt;/p&gt;&#xA;" OwnerUserId="4536" LastActivityDate="2010-11-04T22:28:41.237" CommentCount="1" />
  <row Id="16957" PostTypeId="2" ParentId="16936" CreationDate="2010-11-04T22:32:52.980" Score="6" ViewCount="" Body="&lt;p&gt;I've always wondered if all those students that hated programming in university, but still graduated, will end up being our bosses?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know a few colleagues that graduated with me that were more into politics than programming. I wonder if a corporation was big enough they would end up being managers? They knew enough about coding but had a natural aptitude for people management. With a software background they would have the skills to delegate and interact with other programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It always seemed an irony to me that those that were really good at programming were one day going to be working for their peers that struggled through the same computer course.&lt;/p&gt;&#xA;" OwnerUserId="1328" LastActivityDate="2010-11-04T22:32:52.980" CommentCount="1" />
  <row Id="16958" PostTypeId="1" AcceptedAnswerId="17039" CreationDate="2010-11-04T22:33:54.820" Score="5" ViewCount="178" Body="&lt;p&gt;Suppose you work on a product that is currently planning version 12, and you're looking ahead to the next main release.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would you use Version 13?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sybase didn't - they skipped from 'v &amp;lt; 13' to 'v == 15'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you think of any software products that were released at version 13?&lt;/p&gt;&#xA;" OwnerUserId="3611" LastActivityDate="2010-11-05T07:42:48.003" ClosedDate="2011-05-16T19:46:27.627" Title="Can you think of any software products released with version 13?" Tags="&lt;versioning&gt;&lt;product-names&gt;" AnswerCount="7" CommentCount="2" />
  <row Id="16959" PostTypeId="2" ParentId="16936" CreationDate="2010-11-04T22:34:30.543" Score="4" ViewCount="" Body="&lt;p&gt;At many companies, there is a technical ceiling, in terms of compensation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you want more money, it's management or consulting.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-11-04T22:34:30.543" CommentCount="2" />
  <row Id="16960" PostTypeId="2" ParentId="16958" CreationDate="2010-11-04T22:37:27.613" Score="4" ViewCount="" Body="&lt;h2&gt;Autodesk Autocad R13 (R for release).&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Yes, I would use it (in fact, I did). I'm not superstitions (well, not that much :-)&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;StruCAD v13&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Probably could think of many more. It is in general not a rule, more of a popularity trend that in recent years versions are usually replaced with years. Although, internally version numbers are kept.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-11-04T23:01:14.673" LastActivityDate="2010-11-04T23:01:14.673" CommentCount="1" />
  <row Id="16961" PostTypeId="2" ParentId="16958" CreationDate="2010-11-04T22:38:27.960" Score="-2" ViewCount="" Body="&lt;p&gt;No, they've all faded into obscurity now.&lt;/p&gt;&#xA;" OwnerUserId="7067" LastActivityDate="2010-11-04T22:38:27.960" CommentCount="1" />
  <row Id="16962" PostTypeId="2" ParentId="8560" CreationDate="2010-11-04T22:38:54.927" Score="1" ViewCount="" Body="&lt;p&gt;Balsamiq mockups are usually the first port of call, almost as quick as using a pen and paper and reusable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus you can add some degree of interactivity if you wish, linking pages together for example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://balsamiq.com/&quot; rel=&quot;nofollow&quot;&gt;http://balsamiq.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5010" LastActivityDate="2010-11-04T22:38:54.927" />
  <row Id="16963" PostTypeId="2" ParentId="16702" CreationDate="2010-11-04T22:39:44.160" Score="0" ViewCount="" Body="&lt;p&gt;I used the Netbeans and eclipse one .Love the one in Netbeans except for a few bugs here and there at that time .&lt;/p&gt;&#xA;" OwnerUserId="7064" LastActivityDate="2010-11-04T22:39:44.160" />
  <row Id="16964" PostTypeId="2" ParentId="16950" CreationDate="2010-11-04T22:43:40.267" Score="13" ViewCount="" Body="&lt;p&gt;Being very social probably will make you more popular, noticed and very likely lead to benefits. Of course, this will only work if you genuinely enjoy casual conversation or are very good at faking it. If not, putting more energy into doing a good job would probably be a better bet. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, taking this to either extreme would probably be very bad. It's always good to be someone the others are comfortable with. Being a great problem solver isn't very useful if the others barely know you.&lt;/p&gt;&#xA;" OwnerUserId="4536" LastActivityDate="2010-11-04T22:43:40.267" CommentCount="2" />
  <row Id="16965" PostTypeId="2" ParentId="16936" CreationDate="2010-11-04T22:43:42.767" Score="1" ViewCount="" Body="&lt;p&gt;Some obvious reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Money (managers are paid better)&lt;/li&gt;&#xA;&lt;li&gt;Laziness (as a developer you have to learn all the time to keep your knowledge up-to-date)&lt;/li&gt;&#xA;&lt;li&gt;Desire for change (the most of the people after 40 are just tired of coding)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5843" LastActivityDate="2010-11-04T22:43:42.767" CommentCount="1" />
  <row Id="16966" PostTypeId="2" ParentId="16954" CreationDate="2010-11-04T22:47:35.933" Score="3" ViewCount="" Body="&lt;p&gt;ABAP will indeed bore you to death, but will also pay you back in spades in your career if you can master it.  There are few ABAPers outside of SAP and their skills are highly regarded and highly sought-after.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not a fan of ABAP, but I have seen amazing things done with it by experts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The chances of you working on ABAP for the rest of your life are slim, so EMBRACE an esoteric but very successful language.  You will be able to pick up the latest language flavor of the month anytime, but you will likely only have limited exposure to ABAP and an SAP landscape in which to work, so take advantage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowing what I know now, if I was at your stage I'd master ABAP as well as SAP Basis and make a very successful career out of it.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-11-04T22:47:35.933" />
  <row Id="16967" PostTypeId="2" ParentId="16936" CreationDate="2010-11-04T22:50:14.827" Score="3" ViewCount="" Body="&lt;p&gt;I can give a short answer to that: I've gotten promoted to &quot;management&quot; positions twice. Each promotion was followed fairly quickly by a resignation (admittedly, in one case I was getting pretty burnt out there anyway, but being made a manager was one of the last straws).&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-04T22:50:14.827" />
  <row Id="16968" PostTypeId="2" ParentId="15158" CreationDate="2010-11-04T22:51:31.157" Score="1" ViewCount="" Body="&lt;p&gt;I've read an annotated version of the C# Spec (for version 3 I think). I can't say that I learnt anything mindblowingly new (I'm sure I learnt a bit but nothing stands out in my mind) but I did get a a deeper understanding of why things are the way they are. I found the annotations really valuable where they explored compromises that had been made in one or another. For me at least, this background knowledge makes things stick in my mind much better and I think I'm a much better developer as a result.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-04T22:51:31.157" />
  <row Id="16969" PostTypeId="1" AcceptedAnswerId="16981" CreationDate="2010-11-04T23:10:58.110" Score="1" ViewCount="324" Body="&lt;p&gt;Besides the most obvious and logical reason - performance growth - what other good execuses to ask for a better salary can you think of? &lt;/p&gt;&#xA;" OwnerUserId="5843" LastActivityDate="2010-11-05T08:26:56.147" ClosedDate="2010-11-05T03:59:22.243" Title="Good excuse to get a pay rise" Tags="&lt;career&gt;&lt;jobs&gt;&lt;motivation&gt;&lt;salary&gt;" AnswerCount="8" CommentCount="6" FavoriteCount="1" />
  <row Id="16970" PostTypeId="2" ParentId="16969" CreationDate="2010-11-04T23:11:59.610" Score="5" ViewCount="" Body="&lt;p&gt;&quot;I'm right about to get married&quot;&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-11-04T23:11:59.610" CommentCount="4" />
  <row Id="16971" PostTypeId="2" ParentId="15158" CreationDate="2010-11-04T23:15:56.217" Score="0" ViewCount="" Body="&lt;p&gt;Knowing the C++ spec (being able to look things up, or quote it on StackOverflow) is relatively important for C++ because the language has lots of undefined behavior that compiler implementers can do whatever is convenient with those undefined areas. Just because your compiler accepts the code and just because it runs correctly doesn't mean it's portable. You may be relying on features of your architecture, features of your operating system's ABI/API, or features of your compiler (or of a particular version of your compiler). &lt;strong&gt;So to know what's portable C++, and what guarantees you can rely on, you need to refer to the spec. Your compiler won't know.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most other languages leave a lot less program behavior explicitly undefined, so you refer to the spec to the extent that you find it useful as an API reference.&lt;/p&gt;&#xA;" OwnerUserId="1961" LastActivityDate="2010-11-04T23:15:56.217" />
  <row Id="16972" PostTypeId="2" ParentId="16958" CreationDate="2010-11-04T23:16:55.940" Score="1" ViewCount="" Body="&lt;p&gt;Heh, did version 13 just this year. (2.0.13)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was a dog of a release.  But really, they always are.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-11-04T23:22:51.480" LastActivityDate="2010-11-04T23:22:51.480" />
  <row Id="16973" PostTypeId="2" ParentId="16969" CreationDate="2010-11-04T23:17:05.193" Score="5" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;Children&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... works every 9 months or so ;-)&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-04T23:17:05.193" CommentCount="2" />
  <row Id="16974" PostTypeId="2" ParentId="16936" CreationDate="2010-11-04T23:21:29.080" Score="12" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Do non-manager coders in their forties or older out there sometimes regret about not being managers?&lt;/em&gt;   &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Not me.  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Why do most programmers quit coding and become managers so early compared to other areas?&lt;/em&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;There are a couple of reasons. One has to do with age discrimination, it gets much much harder to land new programming positions after 40. Another was described to me by one programmer-turned-manager: &quot;the problems I now like to solve are ones I can't solve by being a single programmer, they are too big and need more than 1 programmer to do them.&quot; &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;It's so rare to see an ordinary coder in his 40s or 50s (or 60s!) in a typical software company. Why?&lt;/em&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Age discrimination along with &quot;I'm tired of putting up with this stupid crap!&quot; [1]  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm 50. I know 2 other programmers who are 55. One had to move to be near Washington DC to get away from the age discrimination around here. The other is stuck in VB6-land (we do mostly .NET now, but one cash cow product is still in vb6), and he was a project manager at one previous job. The combination of ageism and offshoring [2] and the much harder difficulties of folks just a few years older than me is a strong message that I need to be considering some &lt;em&gt;Plan B&lt;/em&gt; alternative career. My guess is that I have 15-20 years left in the workforce before I can afford to retire. I don't know what the future holds, but from my view, it doesn't look very appealing. Programming has been a great ride, I don't see it lasting forever. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Notes:&lt;br&gt;&#xA;1 - A single, or at least childfree/childless developer can devote far more time to work than someone who says &quot;I can't stay late tonight, I have to pick the kid up from daycare.&quot; Too much requesting/demanding of overtime leads developers to seek positions where they can spend time with family instead of with code.&lt;br&gt;&#xA;2 - I don't see offshoring killing &lt;em&gt;my&lt;/em&gt; job in particular, just strangling the flow of new, entry-level developers into the industry. Consequently, the mid and senior level programmers are fading away with few junior devs behind them. As the folks in other countries get the development skills, many of them will move up into mid and senior level dev positions further reducing an already hard (for me at my age) market. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-04T23:21:29.080" CommentCount="2" />
  <row Id="16975" PostTypeId="1" AcceptedAnswerId="17026" CreationDate="2010-11-04T23:22:54.163" Score="6" ViewCount="244" Body="&lt;p&gt;I've worked in a number of small teams over the last 9 years. Each had the obvious good practices, such as short meetings, revision control, continuous integration software, issue tracking and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In these 9 years, I've never heard much about development methodologies; for example, there's never been a &quot;we're doing scrum&quot;, or &quot;lets do agile&quot;, or anything more than a passing reference. All of the teams seemed to function fine, without following much process, we were just freeflowing and just naturally worked well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone else progressed for long periods of time without encountering scrum/agile/etc?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only exposure I've had to these is through sites like this one. I read questions like &lt;a href=&quot;http://programmers.stackexchange.com/questions/16905/sprint-meetings-what-to-talk-about&quot;&gt;http://programmers.stackexchange.com/questions/16905/sprint-meetings-what-to-talk-about&lt;/a&gt; ... and all the talk seems to describe almost robotic like people who follow a methodology finite state machine. Is it really (though exaggerated) like that? I wonder if the  people posting on the internet just loud supporters of &quot;best practice&quot;, with similar textbook views, not really reflecting how people work... Or that I've encountered some teams making their processes up naturally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore (I am in the UK, which may be relevant)... I think if a methodology were introduced to any of the teams I'd work on, they'd just reject it as being silly and unnecessary... then carry on. I'd tend to agree, following processes seems a bit unnatural. Is this typical or common?&lt;/p&gt;&#xA;" LastActivityDate="2011-01-28T12:34:21.210" Title="Does your team function well without following a work methodology (such as scrum)?" Tags="&lt;development-process&gt;&lt;agile&gt;&lt;scrum&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="1" />
  <row Id="16976" PostTypeId="2" ParentId="16969" CreationDate="2010-11-04T23:24:02.480" Score="1" ViewCount="" Body="&lt;p&gt;You crashed your car and you forgot to pay the insurance in time&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-04T23:24:02.480" />
  <row Id="16977" PostTypeId="2" ParentId="16958" CreationDate="2010-11-04T23:24:45.820" Score="2" ViewCount="" Body="&lt;p&gt;Sure why not...  If v13 is good enough for Fedora and Visual SlickEdit, it's good enough for me.&lt;/p&gt;&#xA;" OwnerUserId="7068" LastActivityDate="2010-11-04T23:24:45.820" />
  <row Id="16978" PostTypeId="2" ParentId="16950" CreationDate="2010-11-04T23:26:24.400" Score="3" ViewCount="" Body="&lt;p&gt;Note that you will never need to participate in &lt;strong&gt;all&lt;/strong&gt; corporate parties, etc. But you will likely find it difficult to get noticed if you're not particularly sociable. That might be fine for you, but in general the person who gets the promotion is the person who gets noticed, not necessarily the person with the most technical skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many higher-level positions (particularly positions which require you to lead a team of others) require good inter-personal skills as well. If you do not like being in social situations, then you're going to find it difficult to lead other people.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-11-04T23:26:24.400" />
  <row Id="16979" PostTypeId="2" ParentId="16969" CreationDate="2010-11-04T23:26:42.170" Score="9" ViewCount="" Body="&lt;p&gt;The photos you just delivered with &quot;I still have the negatives&quot; attached on a post-it note.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-04T23:26:42.170" CommentCount="1" />
  <row Id="16980" PostTypeId="1" CreationDate="2010-11-04T23:27:28.107" Score="7" ViewCount="414" Body="&lt;p&gt;I'm a freelance coder and I have this client which is always troublesome when it comes to paying my invoices. Right now he owes me almost 3 months worth of work. I really don't want to be constantly nagging him, I want to focus on coding but with this client I'm always wondering if I'm actually working for free so I can't focus on getting things done, it's quite a motivation killer. Even worse, there's no formal contract (I'm overseas so it would be quite complex) so I can't &quot;enforce&quot; payments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have other clients, and although they don't pay as much per hour, they do pay always on time. I'm financially stable so it's not like I absolutely need the money to survive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm still kind of inexperienced with freelance work so I ask you: is this situation normal? Should I just terminate this client? Or am I being too whiny? Anyone with in a similar situation could share how they handled it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="7070" LastActivityDate="2010-11-05T12:35:42.833" ClosedDate="2010-11-06T23:43:19.743" Title="Chronically late-paying client" Tags="&lt;freelancing&gt;&lt;freelance&gt;&lt;client&gt;&lt;invoices&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="1" />
  <row Id="16981" PostTypeId="2" ParentId="16969" CreationDate="2010-11-04T23:27:54.893" Score="2" ViewCount="" Body="&lt;p&gt;&quot;I'm happy here and wasn't looking elsewhere, but got a job offer out of the blue through a friend. This offer is better than what I get here, so I'm feeling like I deserve X more here. I really don't want to leave, but it's very demotivating to think that the market wants to pay me more elsewhere.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a kind way of playing the counter offer game without REALLY playing the counter offer game. You just have to make sure not to make it sound like a nasty ultimatum. ;)&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-04T23:27:54.893" CommentCount="4" />
  <row Id="16982" PostTypeId="2" ParentId="16975" CreationDate="2010-11-04T23:29:02.717" Score="3" ViewCount="" Body="&lt;p&gt;If you have no problem to solve, lucky you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen many teams (especially in very small companies) working well without any defined methodology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Implementing a methodology (or technique) because it's fun or because you read that blog post on the internet is very dangerous.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are fine, don't change anything. Just try some optimizations when you can.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-04T23:29:02.717" />
  <row Id="16983" PostTypeId="2" ParentId="16958" CreationDate="2010-11-04T23:30:51.497" Score="2" ViewCount="" Body="&lt;p&gt;Microsoft skipped Office 13 (Office 2010 == Office 14)&lt;/p&gt;&#xA;" OwnerUserId="3755" LastActivityDate="2010-11-04T23:30:51.497" />
  <row Id="16984" PostTypeId="2" ParentId="16980" CreationDate="2010-11-04T23:31:04.307" Score="6" ViewCount="" Body="&lt;p&gt;Such delays are not acceptable. Some companies will require net30 and that's the maximum you should accept.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sadly, that situation is quite common. I suggest you to stop working until you get paid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why not protecting yourself by using platforms like rentacoder.com or odesk.com? &lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-04T23:31:04.307" CommentCount="5" />
  <row Id="16985" PostTypeId="2" ParentId="16980" CreationDate="2010-11-04T23:31:43.717" Score="11" ViewCount="" Body="&lt;p&gt;that is the main reason I dislike freelancing.  I hate dealing with billing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start charging interest on overdue accounts, that usually gets people paying quicker.&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-11-04T23:31:43.717" CommentCount="4" />
  <row Id="16986" PostTypeId="2" ParentId="16975" CreationDate="2010-11-04T23:35:53.490" Score="3" ViewCount="" Body="&lt;p&gt;If everything is fine and it's always fine then there's no problem - so introducing a new (your teams will have been following some sort of methodology - formal or otherwise) methodology would indeed be a waste of time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where methodologies really help though is when the team encounters problems or has problems put on them from external sources - a methodology doesn't just introduce good practices it helps you &lt;em&gt;protect&lt;/em&gt; them. It is much easier to maintain good practices under stress when you're consciously doing them otherwise they can rapidly get squeezed out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think you necessarily need a formal methodology - but every team needs some sort of pattern (not necessarily repeating, it could be event driven) to their work to be effective IMHO.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-04T23:35:53.490" CommentCount="1" />
  <row Id="16987" PostTypeId="2" ParentId="16950" CreationDate="2010-11-04T23:40:36.730" Score="2" ViewCount="" Body="&lt;p&gt;If you are too focused on your work, you may miss many opportunities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is very good to talk with as many people as you can and participate in many social events.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All my best opportunities, I got them by meeting the right person at the right time. Certainly not by browsing the internet or by coding.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-04T23:40:36.730" />
  <row Id="16988" PostTypeId="2" ParentId="15158" CreationDate="2010-11-04T23:45:25.307" Score="0" ViewCount="" Body="&lt;p&gt;I used to be the unofficial &quot;language lawyer&quot; for C where I used to work.  I had the official ANSI X3J11 spec, and got to answer all the weird &quot;is it supposed to do that?&quot;-type questions.  You definitely don't need it to do 95%+ of the coding most shops do, but it can be handy in those cases where you run into some odd corner case that the compiler manual doesn't even try to explain.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-04T23:45:25.307" />
  <row Id="16989" PostTypeId="2" ParentId="16802" CreationDate="2010-11-05T00:05:30.273" Score="3" ViewCount="" Body="&lt;p&gt;My understanding is that the &quot;training kits&quot; won't be ready for several months more. For the .NET 4 items I've seen Dec 2010 and Mar 2011 dates. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've passed both 562 and 515. Even if you know everything in the 562 training materials, for 515, you'll need to know LINQ, WCF and entity frameworks quite well. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-05T00:05:30.273" CommentCount="2" />
  <row Id="16990" PostTypeId="2" ParentId="16807" CreationDate="2010-11-05T00:09:16.800" Score="0" ViewCount="" Body="&lt;p&gt;It is ok in situation when some sequence must be executed no matter what with most critical piece placed at the end. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example. In motion control communication of host to controller. In emergency situations there is a number of preparation steps to abort movement, stop trajectory generation, decelerate motors, enable breaks, disable amplifier and after this you must kill bus power. All must happen sequentially and if one of steps fails rest of steps must be executed anyway even with accepted risk of damaging hardware. Say even if all above fails, the kill bus power must happen anyway.&lt;/p&gt;&#xA;" OwnerUserId="7071" LastActivityDate="2010-11-05T00:09:16.800" />
  <row Id="16991" PostTypeId="2" ParentId="16950" CreationDate="2010-11-05T00:13:05.677" Score="9" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Value:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Humans &gt; Technology&lt;/h2&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-05T00:13:05.677" />
  <row Id="16992" PostTypeId="2" ParentId="16950" CreationDate="2010-11-05T00:13:38.347" Score="2" ViewCount="" Body="&lt;p&gt;Just &lt;em&gt;know&lt;/em&gt; the people you work with and &lt;em&gt;like&lt;/em&gt; them, especially your boss. (That means &lt;em&gt;like&lt;/em&gt; them, not just act like it.) That doesn't mean boozing and shmoozing. It means caring about how they feel. How's their family? How's their kids? You may have disagreements with them at work, but that doesn't make them bad people. Hitler was a bad person. Pol Pot was a bad person. They're good people. Let them know you care about them. It's easy.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-11-05T00:21:49.723" LastActivityDate="2010-11-05T00:21:49.723" />
  <row Id="16993" PostTypeId="2" ParentId="16975" CreationDate="2010-11-05T00:18:19.557" Score="5" ViewCount="" Body="&lt;p&gt;Honestly, if your small team has been working without major incidents well for all these years without thinking of process, you were probably doing some form of agile.  All an agile process means is that it complies with the &quot;Agile Manifesto&quot; &lt;a href=&quot;http://agilemanifesto.org/&quot; rel=&quot;nofollow&quot;&gt;http://agilemanifesto.org/&lt;/a&gt; which has surprising little to say about iterative, story boards, etc.  The very first tenant of agile is that you prefer &quot;Individuals and interactions over processes and tools&quot;.  Any team that works well together doesn't really need to think hard about process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The different brands of agile (like Scrum, etc.) are very useful if you have a brand new team that isn't used to working with each other.  They kind of set the framework for how to build a cohesive team, which in turn will build a cohesive product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If what you are doing is working, keep doing it.  If you are constantly late with deliverables, having to routinely pull overtime, or having to fix major bugs after you deployed something--then something is wrong.  That's when you make a series of small changes to fix the problems.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-11-05T00:18:19.557" />
  <row Id="16994" PostTypeId="2" ParentId="16950" CreationDate="2010-11-05T00:20:03.747" Score="3" ViewCount="" Body="&lt;p&gt;A few disjointed thoughts...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Work shouldn't be boring. If you spend eight hours a day working &lt;em&gt;without&lt;/em&gt; socialising, that's probably not healthy. It's certainly less fun. Random chats are a good thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Socialising helps people understand each other, at least at some level, and means working together will be easier. Being friendly/social with people helps them understand you're human too, and it's easier to convince them you're not ignoring or holding up their requests deliberately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think everyone should attend &lt;em&gt;at least one&lt;/em&gt; official social event (Summer/Christmas party, or whatever) at a company. Similar to above - seeing people when they're relaxed (even if you don't directly socialise with them) can help reveal their character more, and provide insights into otherwise annoying behaviours they might have, so you end up with a better working relationship.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and even within a department, a simple act of having a regular but unofficial &quot;team lunch&quot; (or after-work beer, or whatever) can help form a more cohesive team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're awkward/uncomfortable in social situations... well, you don't tend to get better at things by not doing them, so force yourself to socialise anyway!&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-11-05T00:20:03.747" />
  <row Id="16995" PostTypeId="2" ParentId="15158" CreationDate="2010-11-05T00:23:24.290" Score="0" ViewCount="" Body="&lt;p&gt;Depends how big the Spec is. The C# Spec is big and has a lot of complicated language, so I've never read it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did learn C# through the usual ways of Experimenting and Googling and only after I got a good understanding I read small parts in the spec, mainly about Bitwise operators because I needed it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At some point I decided that I want to write a compiler for .net, so I did read large parts of the CIL/CLR spec (and forgot about most of it again).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I did read the Lua spec prior to using it, mainly because it was cheap ($17 as a printed book) and very small, with only ~100 pages that are also written in 'easier' english.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But then again, Lua is much much simpler than C#.&lt;/p&gt;&#xA;" OwnerUserId="6342" LastActivityDate="2010-11-05T00:23:24.290" />
  <row Id="16996" PostTypeId="2" ParentId="492" CreationDate="2010-11-05T00:28:55.580" Score="0" ViewCount="" Body="&lt;p&gt;Worrying about it doesn't help. Way back when, I read some book on it, and it told me where my fingers should be when &quot;at rest&quot;, namely ASDF and JKL:. Then it's just a matter of moving the closest finger to the letter you need. I still don't have the top row down pat. Then, don't worry about it. The speed just comes, all by itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There was a program, &quot;Mavis Beacon Teaches Typing&quot;. You're driving a car, and the faster you type, the faster the car goes, and when you make a mistake, a bug splats on your windsheild. That was a lot of fun and helped a lot.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-11-05T00:28:55.580" CommunityOwnedDate="2011-03-20T20:58:56.467" />
  <row Id="16997" PostTypeId="2" ParentId="16908" CreationDate="2010-11-05T00:39:55.010" Score="13" ViewCount="" Body="&lt;p&gt;Ah, yes, &quot;Yoda conditionals&quot;  (&quot;If zero the value is, execute this code you must!&quot;).  I always point anyone who claims they're &quot;better&quot; at tools like lint(1).  This particular problem has been solved since the late 70s.  Most modern languages won't even compile this, as they refuse to coerce the result of the assignment to a boolean.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As others have said, it certainly isn't a problem, but it does provoke a bit of cognitive dissonance.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-05T00:39:55.010" CommentCount="1" />
  <row Id="16998" PostTypeId="2" ParentId="16980" CreationDate="2010-11-05T00:47:28.247" Score="9" ViewCount="" Body="&lt;p&gt;Since you already did the work, you're in kind of a bind... 3 months is a long time. You're not being whiny... time == money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would throw together or dig up a production version (there's got to be at least one stable build in the past three months), and without delivering it to the client, show them that it's finished. Maybe send a screencast or something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that, give them an ultimatum -- start paying on time, or find someone else to work for you. They'll probably choose #2, but it's probably for the best anyway. I'd want to work with someone a little more professional.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-11-05T00:47:28.247" />
  <row Id="17000" PostTypeId="2" ParentId="16584" CreationDate="2010-11-05T00:55:02.237" Score="2" ViewCount="" Body="&lt;p&gt;One thing that makes a difference to me is the dot pitch.  I have an old 19&quot; CRT that I just love because it has a 0.25mm (diagonal) dot pitch.  This makes everything very crisp and well-defined.  Look for a screen that has a high resolution (a 15&quot; screen should be capable of at least 1440x900) as well as a good backlight.  Glossy or matte I think is just personal preference.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-05T00:55:02.237" CommunityOwnedDate="2011-03-09T19:17:41.313" />
  <row Id="17001" PostTypeId="2" ParentId="16950" CreationDate="2010-11-05T01:11:06.200" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;People matter no matter what you do.&lt;/strong&gt; They will always matter even you try to isolate yourself to focus on a very specific thing, eventually you will have to interact with people to get stuff done. Should you socialize or be really productive? These aren't mutually exclusive and if you view it that way, you will fail at both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Professionally, I feel like your career is based &lt;strong&gt;just as much on what you do as who you do it with&lt;/strong&gt;. I've been at places where the actual work was fun but I just didn't mesh socially with my co-workers and vice versa. To me, honestly, I would rather be around people I enjoy being around, because you will have to deal with them everyday. It makes work fun, makes interacting with people less stressful and just overall puts me at ease and &lt;strong&gt;allows me to do my job better.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my advice, &lt;strong&gt;is socialize with people&lt;/strong&gt;. Ask them about their last project or their dog or that last movie they watched, you will build a certain level of comfort (ideally) that can set the tone for a friendlier workplace. You don't have to be friends with everyone or go to every event, but you should be able to feel comfortable with the people you work with.&lt;/p&gt;&#xA;" OwnerUserId="6926" LastActivityDate="2010-11-05T01:11:06.200" />
  <row Id="17002" PostTypeId="2" ParentId="16980" CreationDate="2010-11-05T01:15:49.813" Score="1" ViewCount="" Body="&lt;p&gt;Do you have a contract with the client?  When I freelance photographically, I always write in a payment clause that adds a percentage of the total invoice for every set period of non-payment.  This helps smooth things over as far as promptness, but if a client is constantly misplacing your invoices, maybe its time to go your separate ways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to continue a relationship with this client, ask yourself if the extra time and aggravation of chasing down your pay is worth it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even reputable clients can take a while to pay, especially if they are corporate and you don't have any paperwork set up.  For example, Sports Illustrated can take up to 16-20 weeks to pay for a photo if you are a first timer, but future payments come through much faster.&lt;/p&gt;&#xA;" OwnerUserId="7073" LastActivityDate="2010-11-05T01:15:49.813" />
  <row Id="17003" PostTypeId="2" ParentId="16950" CreationDate="2010-11-05T01:23:34.613" Score="2" ViewCount="" Body="&lt;p&gt;I can't help but weight-in with a simple statement.  Not to knock-down any of the other more involved answers. However, it comes down to this simple notion:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Business is ultimately a social endeavor and humans are social animals.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, yes you must spend &lt;em&gt;some&lt;/em&gt; time interacting with your co-workers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How much depends on various factors: your position, your company's culture, your personality, etc...&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-11-05T01:23:34.613" />
  <row Id="17004" PostTypeId="2" ParentId="16980" CreationDate="2010-11-05T01:28:17.097" Score="1" ViewCount="" Body="&lt;p&gt;What about asking them for payment periodically as you check in your code, like at 25%, 50%, 75% milestones? If they don't pay, you don't finish the project?&lt;/p&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-11-05T01:28:17.097" />
  <row Id="17005" PostTypeId="1" AcceptedAnswerId="17016" CreationDate="2010-11-05T01:36:30.457" Score="11" ViewCount="245" Body="&lt;p&gt;Many times I have witnessed a sad tragedy.  Here's what happens:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;A team design review for a new project.&lt;/li&gt;&#xA;&lt;li&gt;I see a simple design that has quite a few holes.&lt;/li&gt;&#xA;&lt;li&gt;I casually mention the holes and ways to avoid them.&lt;/li&gt;&#xA;&lt;li&gt;The warnings are ignored with comments like &quot;that 'never' happen in real life&quot;&lt;/li&gt;&#xA;&lt;li&gt;Eventually the things that &quot;will 'never' happen&quot; happen&lt;/li&gt;&#xA;&lt;li&gt;An emergency team design review for a broken project.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So what do I do?  Copping the &quot;I told you so&quot; attitude is not going to win friends and influence people.  Sometimes years go by and the comments from step 3 are forgotten anyway.  I definitely don't want to be the annoying pest reminding the world of the gotchas.  I often sit back and watch the Titanic sail off to Europe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's frustrating to see bad designs move forward.  It's also frustrating that I can't seem to convince others of the pending peril of the current path.  I do worst on team meetings where everyone has different ways of understanding different terms.  Also, egos tend to win of reason and thought.  I'm looking for good tactics to convince groups people to use some new and complicated ideas.&lt;/p&gt;&#xA;" OwnerUserId="6526" LastActivityDate="2011-01-29T04:24:29.867" Title="How effectively &quot;sell&quot; a good design in large meetings" Tags="&lt;design&gt;&lt;team&gt;" AnswerCount="10" FavoriteCount="3" />
  <row Id="17006" PostTypeId="2" ParentId="13470" CreationDate="2010-11-05T01:43:26.063" Score="1" ViewCount="" Body="&lt;p&gt;I've resigned from several jobs.  To answer your questions from my experience:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Should I write a resignation letter?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You can if you want to, but you &lt;strong&gt;generally don't need to unless they request one&lt;/strong&gt;.  You can just go to your boss, ask for a few minutes of his time, and say something like &quot;I'm planning to resign.  Do you need written notice, or is this sufficient?  How much notice do you need?&quot;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How much notice should I give?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The courteous thing to do is ask your boss how much he thinks he needs.  &lt;strong&gt;In the US, two weeks&lt;/strong&gt; is standard for any job short of the highest levels of management (and at that level, you most likely &lt;em&gt;would&lt;/em&gt; have a contract specifying a notice period).&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Should I give a reason for leaving?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No.  &lt;strong&gt;Companies are the way they are because they want to be that way.&lt;/strong&gt;  Companies that want to change will make efforts to do so.  If they haven't made that effort, they won't suddenly do it just because you call attention to their shortcomings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best thing is to say you've enjoyed working there (if you can say it with a straight face), but it's time for a change, or &quot;new challenge&quot;, or some such.  You always want to keep doors open, and pointing out flaws is never a way to appeal to anyone.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Should I go to my boss who is the main reason I'm leaving or go to his boss?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;While you don't have to care what your boss thinks of you, again, this is a matter of keeping good relations, which is a good thing to do in &lt;em&gt;every&lt;/em&gt; circumstance.  &lt;strong&gt;Go to your boss, tell him you're leaving, and don't give any negative reasons.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you swear you'll never work there again, you never know what the future holds.  Perhaps someday you'll be interviewing with another company and someone from the old company will be there now and remember you.  Will they say, &quot;He's a good programmer; it's a shame he left&quot;?  Or will they say, &quot;He seemed like a good programmer, but he quit saying the job sucked and his boss was an idiot, and I don't ever want to work with someone like that again&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;In addition to all that...&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Leave for your successor exactly what you'd want to have left for you.  Write notes, documents, whatever that person will need.  Make a list of network or database permissions he/she will need.  Create a document describing each existing project and its current status, recent changes, etc.  Create a document on the new projects and some tips on whom to talk to about them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No matter how resentful you may be toward the place (and believe me, I understand and have worked in similar places), it's never wrong to be professional and courteous even to people who don't deserve it.  In the city I live in, I've met many people who've worked in places I've worked in and know the same people I do.  For better or worse, your reputation will probably follow you, so as you plan your graceful exit, think carefully about what you want that reputation to be.&lt;/p&gt;&#xA;" OwnerUserId="3963" LastActivityDate="2010-11-05T01:43:26.063" CommentCount="1" />
  <row Id="17008" PostTypeId="1" CreationDate="2010-11-05T01:54:30.870" Score="0" ViewCount="91" Body="&lt;p&gt;I take a file as an input argument and I need to determine whether or not the data is binary or not (well, ascii or binary I guess). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure how to do this, as when I'm reading data I'm doing it as such:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;fread(&amp;amp;rndByte, sizeof(unsigned int), 1, fp);&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(reading one unsigned int at a time from file fp).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was thinking of testing if the value is &amp;lt; 128 numerous times, but no idea how to test this when reading an entire int at a time. I've though of looping over 1 byte at a time and checking that way, but the system I'm on doesn't like the shifts I'm doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any ideas, suggestions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you!&lt;/p&gt;&#xA;" LastActivityDate="2010-11-05T01:54:30.870" ClosedDate="2010-11-05T02:52:36.253" Title="How to determine whether a file is binary data or not in C." Tags="&lt;c&gt;&lt;file-structure&gt;&lt;data-types&gt;&lt;binary&gt;" CommentCount="3" />
  <row Id="17009" PostTypeId="1" AcceptedAnswerId="17015" CreationDate="2010-11-05T02:01:50.410" Score="22" ViewCount="1135" Body="&lt;p&gt;I'm burned out with my job (and need a break from the cubicle world in general) and am going on a personal sabbatical next year. This got me thinking about something that I've experienced with several jobs in the past, and what really came to a head this time: is &quot;needing a change of scenery&quot; only human, or is it seen as a sign of lack of professional commitment? Furthermore, how does it sound to a hiring manager if this is given as the main reason for quitting a previous job?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let me explain what I mean by &quot;needing a change of scenery&quot;: I don't mean needing a new &lt;em&gt;professional&lt;/em&gt; challenge. I'm talking purely about the sheer sameness of physical/organisational scenery. I find that, no matter how good a company and a job is, after about 2-3 years of the same office building, same organisational quirks, same cubicle, same desk, same &lt;em&gt;general&lt;/em&gt; work, etc - things just start to feel stale and obnoxious. If the company is good, the people are good, and the work is interesting and varied, and there is interesting new technology to grow into and learn, this can stretch it out to MAYBE 4-5 years. But beyond that I start bouncing off the walls &lt;em&gt;no matter how good and promising the work and environment is&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm surrounded by people who are real stability junkies. The type that would stay in the same cubicle till the day they die if they could. - This is making me feel like maybe there is something wrong with me. Like, if the work really is good, this &quot;sameness of scenery&quot; shouldn't get to me, but it does. And whenever I try to discuss it with people, some of them virtually accuse me of being uncommitted and unprofessional. To them, there needs to be something really &quot;wrong with the job&quot; - on a professional level - before one has a &quot;good excuse to move on&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can anyone relate to this? Or do I really have some kind of professional commitment deficit issue?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(BTW: I've recently become a big fan of Joel Spolsky's &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000076.html&quot; rel=&quot;nofollow&quot;&gt;sabbatical formula&lt;/a&gt;: &quot;working for four years, and then taking one year off.&quot;. This really feels like it's what I should be aiming for, to stay at optimal mental health and motivation.)&lt;/p&gt;&#xA;" OwnerUserId="5064" LastEditorUserId="5064" LastEditorDisplayName="" LastEditDate="2010-11-14T07:55:28.937" LastActivityDate="2010-11-27T00:20:51.820" Title="Is &quot;needing a change&quot; an acceptable reason to move on from a job?" Tags="&lt;jobs&gt;&lt;career&gt;&lt;burnout&gt;" AnswerCount="13" CommentCount="4" FavoriteCount="4" />
  <row Id="17010" PostTypeId="2" ParentId="16950" CreationDate="2010-11-05T02:02:15.667" Score="2" ViewCount="" Body="&lt;p&gt;Of course socializing is important.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;You'll get cooler projects to work on. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You'll have better luck selling your ideas and designs. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You'll have a better chance of being promoted&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-11-05T02:02:15.667" />
  <row Id="17011" PostTypeId="2" ParentId="17005" CreationDate="2010-11-05T02:07:03.200" Score="9" ViewCount="" Body="&lt;p&gt;Try to build a reputation as being the person who can identify what will work and not just what you think will have a problem in some rare use case. When you see these potential problems, just consider them a footnote that may need to be addressed later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People get crazy in congregations. Mention your concerns to a key person outside of the meeting. They will see this as less threatening and may take the time to hear your argument instead of thinking about their defending the design. They may also take more time to explain to you the circumstances why you may have a valid point, but it is not feasible to address in v1.0.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Key! Go into the meeting with a complete understanding of what your direct supervisor's agenda is. Maybe they see this as a minor project and the last thing they need at the meeting is a naysayer taking time away from more important issues. Ask them to help you help them.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-05T02:07:03.200" CommentCount="1" />
  <row Id="17012" PostTypeId="2" ParentId="492" CreationDate="2010-11-05T02:22:48.153" Score="1" ViewCount="" Body="&lt;p&gt;Being able to touch type is fairly important.  Like others have said you should be able to get the code (text, other language constructs) onto the computer without spending a lot of time thinking about which finger needs to hit what key.  This isn't so important when dealing with bug/maintenance fixes since those don't typically involve a lot of code changing in one local spot, however when cranking out new code it does play a part in your productivity (daily SLOC for the metrics geeks).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be honest something that isn't really on topic for the question but that comes up a lot is knowing your keyboard shortcuts.  The last couple of product demo's with my clients that I have had they are continually impressed by how quickly I maneuver around in PowerPoint/Excel/etc (and the keyboard short cuts in the app I'm developing for them).  It got to the point where one meeting we spent about 10 mins off topic just talking about it.&lt;/p&gt;&#xA;" OwnerUserId="4819" LastActivityDate="2010-11-05T02:22:48.153" CommunityOwnedDate="2011-03-20T20:58:56.467" />
  <row Id="17013" PostTypeId="2" ParentId="17009" CreationDate="2010-11-05T02:28:54.760" Score="4" ViewCount="" Body="&lt;p&gt;I have some of the same problems/issues myself.  I'm approaching the 3 year mark now myself and starting testing the waters to see what's available in my area.  A week or so ago I was talking to a corporate recruiter and she wanted to know why I was interested in a different position, I told her I was bored and tired of doing the same things.  (On a side note I didn't hear from the hiring manager on that one, the bored thing may have scared them but it might have been that is was a distributed computing development project and I didn't have an experience in that area.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My take on the people that are really happy where they are don't tend to push the boundaries.  Generally they don't seem interested in learning new techniques/technologies just for the sake of learning.  (Actually they don't usually seem that excited about learning them to begin with.)  They just seem to want to get through the day and collect a pay check at the end of the period.&lt;/p&gt;&#xA;" OwnerUserId="4819" LastActivityDate="2010-11-05T02:28:54.760" CommentCount="1" />
  <row Id="17014" PostTypeId="2" ParentId="17005" CreationDate="2010-11-05T02:38:20.617" Score="1" ViewCount="" Body="&lt;p&gt;I don't see how this situation is much different from a lone developer with a clueless boss. Unfortunately, I've lost count of the number of times that I was 'convinced' to build a project a certain way and ship it, despite my warnings of impending doom. That leaves you not only building, but sailing the proverbial Titanic right into an iceberg all by yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just as you described, when the bits hit the proverbial bucket, my warnings had long since been forgotten. Sometimes (luckily for me) things went bad months or more after I was no longer involved in the project. Unfortunately, this left my successor thinking that I must be crazy, as you can bet that the boss denied any hand in it :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, a group of 'convinced' programmers can be just as clueless as a pointy haired boss, sometimes even more because they are confidently clueless, as &lt;a href=&quot;http://programmers.stackexchange.com/questions/17005/how-effectively-sell-a-good-design-in-large-meetings/17011#17011&quot;&gt;Jeff O mentions&lt;/a&gt;. When this happens, you have ample time to fix things. Don't try to make a single voice of reason be heard over a collective brain fart. If you can do that effectively, your place is in congress, not behind a desk writing software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As actions speak louder than words, you can:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Show (with test scenarios) why the design will fail under normal circumstances. This will probably result in a smaller meeting where you are the one presenting, and is probably all you need to be heard.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Show a competing product that adequately addresses what the group thought were only 'corner cases'. You would be &lt;em&gt;amazed&lt;/em&gt; at what lengths Google goes to anticipate mistakes in its spreadsheet program, for instance.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Reiterate the last project that required a ground up re-write a week before it was supposed to ship.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In other words the first step, no matter what you do is to deal with individuals or a (much) smaller group. If your concerns really are valid, I'm sure that they'll be better received a week or two into development. Just, as you noted, avoid the 'I told you so' stance.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-05T02:38:20.617" />
  <row Id="17015" PostTypeId="2" ParentId="17009" CreationDate="2010-11-05T02:51:02.323" Score="28" ViewCount="" Body="&lt;p&gt;I don't see anything wrong with it. I did the 'extreme' version of what you are discussing, with these steps (a short explanation under each)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Quit my job. I flat out quit. I could not take another day. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Work was not a place for me to learn any more, in fact it was getting in the way of learning. Instead of being programmers, we were basically slowly reduced to project managers that managed off shore programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea looked good on a spread sheet, but left most of us miserable. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Can't beat em? Join em.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I sold everything I had, stashed my bonus in savings, cashed in some investments and moved to a country where that would last me a few years without having to worry about income. I basically turned the tables, I became the off shore programmer, but most of my time was unpaid. The research that I did, alone, is worth more to me now than four years at a university. I got up in the morning and worked on what I wanted to do, which was study virtualization technology and other emerging concepts.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pay yourself first, not always in money.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;To keep up my resume, I devoted a significant amount of time to working on various open source projects, most of them coincided with my work at the time. The mentors I found are worth their weight in gold. Smart people, first and foremost want to teach. I'm taking a bit of latitude in that statement, but I've found it to be true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is just now, after approximately five years that I'm returning to the conventional work force, I now have a job that pays me to do what I've been doing all along. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You go to work for two reasons, personal esteem and financial compensation. It is easier to work around a lack of the second, however if either are seriously lacking then you need to do something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I don't recommend that people go as extreme as I did, I find nothing wrong with taking whatever time you need to bring things back up to par, without making a knee jerk lateral move that results in the same problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want some time and can afford it, take some time. The more strategic you can make 're entry', the happier you'll be.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-05T09:09:13.317" LastActivityDate="2010-11-05T09:09:13.317" CommentCount="4" />
  <row Id="17016" PostTypeId="2" ParentId="17005" CreationDate="2010-11-05T02:54:48.613" Score="3" ViewCount="" Body="&lt;p&gt;If possible suggest modifications that will not add significant time to a project. Try and stress that if it's not done now, then re-work later will be much more painful. It will be harder if you're trying to convince your team that a complete new direction is better, cause that will probably delay the project, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't put people in defence mode in a meeting, they'll just fight you to be the winner. You won't get them to agree that the earth is round. This is normal politics (e.g. anyone on FoxNews)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It really helps to have the respect of other developers. If you're the new guy on the team, I think you are SOL. So just build up some team rep and really try to get to a level were you won't be dismissed right off the bat. Of course, if you are always pessimistic amount stuff, then you will just be labelled as the &quot;negative&quot; guy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For simple stuff (i.e. does not impact schedules ), be sure to do your work the best way. If you put the effort into your immediate output (e.g. building test cases, or getting a some simple (but cool) features) eventually other people will notice that your code works reliably and withstands the test of time. When you start showing them some neat tricks with the code, they'll think twice shooting you down in front of everyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, I agree you don't want to do the &quot;I told you so&quot; routine, but be sure to try and drop hints to your boss/tech-lead when it turns you actually were right. Maybe resend an old e-mail with your old comments. Ask them if this would help solve the &quot;new&quot; problem. If you don't do this, they won't even remember that you were the one who brought it up the first time. Eventually they'll get the hint that you're not just trying to be a showoff in the meetings. Next time they'll think twice about blowing you off, especially if it gets around that your &quot;old&quot; design is now replacing the current broken one.&lt;/p&gt;&#xA;" OwnerUserId="3122" LastEditorUserId="3122" LastEditorDisplayName="" LastEditDate="2010-11-05T03:00:06.640" LastActivityDate="2010-11-05T03:00:06.640" CommentCount="1" />
  <row Id="17017" PostTypeId="2" ParentId="17009" CreationDate="2010-11-05T02:55:46.657" Score="8" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Is &quot;needing a change&quot; an acceptable reason to move on from a job?&lt;/em&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes. To bend an analogy, some people can stay married for life, others can't stay with one person for more than a short time. If you are the sort of person who must move every few years, then you should know that about yourself and after about 2 years start looking for the next job (translation: pace yourself). One of my friends has been a consultant for the past 20+ years and only 1 job has lasted more than 1 year. Each year he tends to get 10-20 W2 and 1099 forms for his taxes. He knows he gets itchy feet after a few months. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Furthermore, how does it sound to a hiring manager if this is given as the main reason for quitting a previous job?&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Generally, &quot;it was time to move on&quot; is a generic non-answer. It could mean anything at all and therefore means nothing. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-05T02:55:46.657" CommentCount="7" />
  <row Id="17018" PostTypeId="2" ParentId="16969" CreationDate="2010-11-05T03:11:50.230" Score="5" ViewCount="" Body="&lt;p&gt;You don't get a raise just because you want more money.  You get a raise because you're not being paid enough for the work you're doing.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-11-05T03:11:50.230" />
  <row Id="17019" PostTypeId="2" ParentId="16969" CreationDate="2010-11-05T03:18:40.520" Score="1" ViewCount="" Body="&lt;p&gt;You can always ask for a cost of living increase. It should not be too difficult to document the fact that your salary stretched much farther twelve or more months ago, depending on where you live.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, it is not uncommon to see a small raise every time a VAT increases (in countries that use a value added tax).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also, depending on circumstances ask the company to help you pay for certain things that are necessary in order for you to come to work and make them money. Child care is one of those things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It never hurts to ask, when you feel you have a genuine case for doing so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Raises are based on merit, however. Are you more of an asset to your company than you were when you were hired, or after your last raise? If so, document it and be prepared to articulate it in an &lt;a href=&quot;http://en.wikipedia.org/wiki/Elevator_pitch&quot; rel=&quot;nofollow&quot;&gt;elevator pitch&lt;/a&gt;. If you can do that, and finances permit, you should get your raise.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-05T08:26:56.147" LastActivityDate="2010-11-05T08:26:56.147" />
  <row Id="17020" PostTypeId="2" ParentId="13757" CreationDate="2010-11-05T03:20:16.850" Score="1" ViewCount="" Body="&lt;p&gt;char = 'chaar' as in 'the charred remains of the pointy-haired boss were found in the server room'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;! = 'bang' if i'm talking to a linux/unix geek, 'exclamation mark' if i'm talking to a normal person&lt;/p&gt;&#xA;&#xA;&lt;p&gt;# = 'pound' if i'm talking to a programmer, 'number sign' for everyone else&lt;/p&gt;&#xA;&#xA;&lt;p&gt;#! = hash-bang if i'm talking to a Perlie, no need to say this to anyone else&lt;/p&gt;&#xA;&#xA;&lt;p&gt;* = asterisk, occasionally star&lt;/p&gt;&#xA;&#xA;&lt;p&gt;regex = regg as in reggae, ex as in ex-employee&lt;/p&gt;&#xA;&#xA;&lt;p&gt;sql = &lt;em&gt;SQUEAL&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;| = 'pipe' when talking to systems programmers, 'vertical bar' for normal people&lt;/p&gt;&#xA;&#xA;&lt;p&gt;bin = 'bin' as in 'bin thar, dun that'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;lib = 'lib' as in liberation&lt;/p&gt;&#xA;&#xA;&lt;p&gt;etc = et cetera&lt;/p&gt;&#xA;&#xA;&lt;p&gt;/ = forward slash, so there's no ambiguity&lt;/p&gt;&#xA;&#xA;&lt;p&gt;LaTeX = lahy tehx, since I'm Southern&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-05T03:20:16.850" CommunityOwnedDate="2011-01-09T02:54:49.947" CommentCount="1" />
  <row Id="17021" PostTypeId="2" ParentId="16908" CreationDate="2010-11-05T03:25:53.567" Score="1" ViewCount="" Body="&lt;p&gt;Some people use it to make it clear exactly what a conditional is doing. For instance:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Way 1:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;FILE *fp;&#xA;&#xA;fp = fopen(&quot;foo.txt&quot;, &quot;w+&quot;);&#xA;if (fp == NULL) {&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Way 2:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;FILE *fp;&#xA;&#xA;if (NULL == (fp = fopen(&quot;foo.txt&quot;, &quot;w+&quot;))) {&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Some people feel that the second example is more concise, or reversing arguments illustrates the point of a test (conditional) prior to the test itself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In all actuality, I don't really mind either way. I have my pet peeves about style and the biggest one is inconsistency. So, do it the same way, consistently and I won't mind reading your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mix it up to the point where it looks like six different people with their own distinctive style worked on it at once, I get a little annoyed.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-05T03:25:53.567" CommentCount="1" />
  <row Id="17022" PostTypeId="2" ParentId="8078" CreationDate="2010-11-05T03:30:54.853" Score="0" ViewCount="" Body="&lt;p&gt;from your skillset, i think your best bet would be some form of technical support position&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;But&lt;/em&gt; if you can present yourself as enthusiastic, educated, and a fast, willing learner, you might talk your way into an entry-level coding job somewhere; the person if more important than the resume if you're excited about the job and willing/able to learn quickly on your own&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or you can do both - apply for tech support (desktop support, for example) and enthuse about how eager you are to learn &lt;em&gt;everything&lt;/em&gt; related to computers, networks, operating systems, and programming. Then concentrate on gaining programming experience by volunteering for (and/or inventing) small projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;good luck!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-05T03:30:54.853" />
  <row Id="17023" PostTypeId="2" ParentId="16969" CreationDate="2010-11-05T03:30:56.493" Score="1" ViewCount="" Body="&lt;p&gt;'The cost of living has gone up and it's harder to make ends meet on the salary I'm earning. The industry in general is keeping up with those increases, and I'm here to suggest that we do the same.'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This way, you're not threatening to leave, but you're making it known that you're aware of what other people are paying.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-05T03:30:56.493" />
  <row Id="17024" PostTypeId="2" ParentId="17009" CreationDate="2010-11-05T03:40:40.473" Score="5" ViewCount="" Body="&lt;p&gt;This isn't uncommon. I've heard of some large companies even expect/accept it and endorse moving around to different teams/buildings within the same company (Microsoft, and some banks are ones where I have direct knowledge of, but have heard stories about many others). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a friend who worked for Intel and he went to his manager and said &quot;I want to move&quot; because he was bored with where he lived. A few months later, he was with another division of the company, in a different country. They even paid a fair bit of moving expenses for him and his wife.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-05T03:40:40.473" CommentCount="2" />
  <row Id="17025" PostTypeId="2" ParentId="16618" CreationDate="2010-11-05T04:07:30.643" Score="4" ViewCount="" Body="&lt;p&gt;The subject of &lt;a href=&quot;http://www.google.com.ph/search?q=preprocessor+abuse&quot; rel=&quot;nofollow&quot;&gt;preprocessor abuse&lt;/a&gt; is quite hot. It never really cooled down, but various development methodologies such as TDD have spawned some new and interesting 'tools' that continue to kick off an age old argument.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, I've seen the argument creeping up even more in the development of other languages, such as PHP that are written in C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually, a mile long cryptic macro is rejected as being overly clever, ambiguous, or other terms. When something like a test framework meets that criteria, but is intended to proliferate an entire code base, it could be referred to as harmful.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-05T04:07:30.643" CommunityOwnedDate="2011-04-14T16:13:04.920" />
  <row Id="17026" PostTypeId="2" ParentId="16975" CreationDate="2010-11-05T04:15:45.813" Score="7" ViewCount="" Body="&lt;p&gt;Over 20 years of development experience here, and I've never used a formal methodology.  Never needed them, and I dont plan on using one in the future.  Methodologies might be fine for some people, but they are no substitute for skilled programmers who write good, tested code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I think it would behoove a lot of people to care less about following the day's hottest new methodology, and focus more on code quality.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-05T04:15:45.813" />
  <row Id="17027" PostTypeId="2" ParentId="16936" CreationDate="2010-11-05T04:18:41.973" Score="17" ViewCount="" Body="&lt;p&gt;I'm 63 and I love to code.  I have no intention of retiring.  (Well, maybe cutting back to 40 hours a week someday.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fellow programmer that shares an office with me is in his 50's.  We have a manager that is just under 50, and he spends at least half of his time coding also.  The company also has one web programmer/database guy.  He's the youngest technical guy and is 40-something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Around 25 years ago, when I was trying to expand my consulting business, I hired four employees.  I never had time to code and spent all my time managing them and getting new projects to keep everyone busy.  &lt;em&gt;I hated it.&lt;/em&gt;  Went back to working solo and &lt;strong&gt;have never regretted it&lt;/strong&gt;, to answer your question.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-11-05T04:18:41.973" />
  <row Id="17028" PostTypeId="2" ParentId="492" CreationDate="2010-11-05T04:32:00.777" Score="0" ViewCount="" Body="&lt;p&gt;I've never learned to touch type correctly (bringing my hands back to the home row etc.) but I do type with multiple fingers of each hand and can type 45 wpm without errors.  So yes, I can see that it useful to be able to type efficiently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it worth it for me unlearn the way I do it and add maybe 20 wpm to my typing speed?  I don't know.  For typing something like this, sure.  Typing code in, not sure.  I spend so much time going back and forth to my mouse when I am coding (because I tend to do a lot of stepwise refinement) that I seldom type very long phrases in at a time anyway.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-11-05T04:32:00.777" CommunityOwnedDate="2011-03-20T20:58:56.467" />
  <row Id="17030" PostTypeId="1" CreationDate="2010-11-05T05:19:19.930" Score="2" ViewCount="414" Body="&lt;p&gt;The question came in my mind from the this answer-&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/16618/what-will-be-considered-harmful-next/16705#16705&quot;&gt;http://programmers.stackexchange.com/questions/16618/what-will-be-considered-harmful-next/16705#16705&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what are the pros and cons of this 'Singleton' pattern?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please consider making &lt;strong&gt;bulleted list with BOLD headers&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-11-05T20:48:50.167" Title="What are the pros and cons of the singletons pattern?" Tags="&lt;singleton&gt;&lt;pros-and-cons&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="17031" PostTypeId="1" CreationDate="2010-11-05T05:21:00.903" Score="4" ViewCount="275" Body="&lt;p&gt;I've posted this question on StackOverflow and it was closed. Somebody told me this site was a better candidate for it, so here it goes.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm posting this question to externalize my utmost recent dismay with programming, but it is still a question nevertheless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Today I can't picture myself doing things without thinking about readability, orthogonality, encapsulation, abstractions, code intrusiveness, not repeating knowledge and not letting things blow during runtime when they can be foreseen during the compilation phase and gotten the programmers warned about them (that's one of the reasons I like strong typing; I've learned to take it as an advantage to warn me about problems sooner).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, this is good code, and that's what I seek to do. And I felt like I could push these values to extremes to make code I could be proud of for much longer (I generally start hating my code after a week without touching it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... until I found myself having to deal with interdependent low-level C and pseudo-OOP API's such as WinAPI, DirectX and OpenGL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd guess it's common sense that you should not disclose more information than you have to disclose to accomplish any given task. Generally this is achieved through well-designed abstraction, encapsulation and by respecting the Single Responsability Principle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a class &quot;Crap&quot; that exposes three distinct functionalities (disregards SRP) with all the guts exposed (disregards encapsulation), revealing more than what it does, but also how it does (disregards abstraction), and you have a function that needs one of these functionalities to work, you can't pass it a reference to such a class and expect it to really only use the one functionality it requires.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;You can't fine-tune what can be done in which circumstances, since passing the full class instance exposes all three functionalities.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You can't guarantee integrity of state since clients can do whatever they want and, even if they want to keep object integrity, they'll incorporate a lot of contextual information regarding the class. When the class changes, you will have to remember to update its clients. Generally you won't remember everything, and your objects' states will start to intermittently appear inconsistent. Your code compiles (when you're out of luck), but your runtime is doomed.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You tie the classes' clients to the class implementation, and objects providing the same functionality these clients need will be useless to them.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The function writer could always think doing just that special something-else wouldn't hurt anyone. And the function client might expect the function not to ever do that. In a world full of expectations, many of them are to be broken, and when they are, they have to be tracked down -- and the hard way. In the context these expectations get broken, where no design principles were respected, they are bound to affect a plethora of unrelated parts of the system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And while all the time I try to follow best practices when coding, I feel my crystal-clean design threatened by bad third-party libraries. And from what I saw, they are all really badly designed. All of them. Some of them follow some good practices, but they always think it doesn't hurt to punch some exceptions to these practices in their design and end up screwing all the rest. And they don't even notice it (I won't say what libraries come to my mind since I don't want to hurt anyone's feelings and I'm unsure as to whether I'm right or wrong there).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One could point out that if I'm so enraged by such libraries but am still stuck with them I should write wrapper libraries. Fantastic. I've set out to wrap WinAPI windowing and Direct3D rendering in two subsystems. But then I noticed I'd have to pass the raw HWND (window handle) from the windowing to the rendering subsystem and pray for it to only use this HWND in the way it's supposed to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember the &quot;Class Crap&quot; example? Well, when I give away a HWND to a function, I should be expecting it to do ANYTHING IT WANTS with that handle, simply because it can. Direct3D should only have the right to render something on the window surface. Better still if I could give it a handle that even restricted in which portion(s) of the window it could render.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But nope.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In practice it can even close the window. Toggle to fullscreen. Change the caption. Use the caption for something I didn't expect it to. You name it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;WGL (OpenGL) performs a little better and expects a display device context. Since it expects only that, I can trust it will only render stuff in a portion of a display device, right? Nope! You can always grab a handle to the window it's attached to if you want and do all the crap I mentioned before. True, it takes more guts for a function writer to do that, but it can still happen, and I feel I should be ready.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OGG/Vorbis decoder expects a non-const, null-terminated C-string to open a file. If I'm wrapping this API, should I tell my clients I'm taking a constant C-string as argument and cast away its constness to pass it to the underlying API, praying for it to keep my promise not to modify its contents?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I be polite and copy the buffer before sending it to the underlying API?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I take a non-const C-string too, and pull the responsability of this silly decision further away from the source of the problem, knowing that more and more const-incorrectness will spread into project code?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question, then, is: how, just how can I free my code from the evil of these APIs? They totally scare the hell out of me. I don't wanna know how they are dealt with in real world, since I'm pretty sure these problems are most certainly ignored in real world projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a well-defined problem here: you have to wrap two interdependent APIs (one of them depends on the other; not necessarily the other way around) into two orthogonal APIs. The design must accomodate new orthogonal APIs which wrap more interdependent APIs in a safe manner. How to proceed?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To serve as an example, the problem which originated this question is available at &lt;a href=&quot;http://stackoverflow.com/questions/4075931/how-to-best-encapsulate-window-handles&quot;&gt;http://stackoverflow.com/questions/4075931/how-to-best-encapsulate-window-handles&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The original question was posted at &lt;a href=&quot;http://stackoverflow.com/questions/4103401/when-c-handles-pop-in-your-c-code-and-break-your-pretty-oo-design&quot;&gt;http://stackoverflow.com/questions/4103401/when-c-handles-pop-in-your-c-code-and-break-your-pretty-oo-design&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7079" LastActivityDate="2010-11-05T16:36:07.903" Title="When C handles pop in your C++ code and break your pretty OO-design" Tags="&lt;c++&gt;&lt;object-oriented&gt;&lt;c&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="1" />
  <row Id="17032" PostTypeId="2" ParentId="17030" CreationDate="2010-11-05T05:34:36.393" Score="3" ViewCount="" Body="&lt;p&gt;Sometimes it's important to have only one instance for a class. For instance, there should be only one window manager (or only a file system or only a print spooler) in a system. Usually singletons are used for centralized management of internal or external resources and they provide a global point of access to themselves. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Multithreading&lt;/strong&gt; - A special care should be taken when singleton has to be used in a multithreading application. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Serialization&lt;/strong&gt; - When Singletons are implementing Serializable interface they have to implement readResolve method in order to avoid having 2 different objects. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Classloaders&lt;/strong&gt; - If the Singleton class is loaded by 2 different class loaders we'll have 2 different classes, one for each class loader. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Global Access Point represented by the class name&lt;/strong&gt; - The singleton instance is obtained using the class name. At the first view this is an easy way to access it, but it is not very flexible. If we need to replace the Singleton class, all the references in the code should be changed accordingly. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Drawbacks :&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;First of all, if the constructor is&#xA;protected, it means that the class&#xA;can be instantiated by calling the&#xA;constructor from another class in the&#xA;same package. A possible solution to&#xA;avoid it is to create a separate&#xA;package for the singleton.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Second of all, in order to use the&#xA;derived class all the getInstance&#xA;calls should be changed in the&#xA;existing code from&#xA;Singleton.getInstance() to&#xA;NewSingleton.getInstance().&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In C++, for example, singletons are often used when globals in different modules must be instantiated in a particular order; otherwise, you are at the mercy of the linker.&lt;/p&gt;&#xA;" OwnerUserId="6869" LastActivityDate="2010-11-05T05:34:36.393" />
  <row Id="17033" PostTypeId="2" ParentId="16908" CreationDate="2010-11-05T05:54:55.547" Score="11" ViewCount="" Body="&lt;p&gt;It is obnoxious because it imposes a small, but noticeable mental tax. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;People read left to right in virtually all programming languages (and most natural languages).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I see &lt;code&gt;123 == x&lt;/code&gt;, the way I mentally parse it is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;123&lt;/code&gt; - so what? incomplete info.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;==&lt;/code&gt; - well, 123 is 123, why test it...&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;x&lt;/code&gt; - ok, so that's what we're concerned about. Only now do I have the context.&lt;/li&gt;&#xA;&lt;li&gt;Go back to reconsider &lt;code&gt;123&lt;/code&gt; and why x is compared to it. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;When I see &lt;code&gt;x == 123&lt;/code&gt; mental parsing is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;x&lt;/code&gt; - Provides context, I know what the condition is about. I may choose to ignore the rest. Based on previous flow I have a good idea why and what's to come (and be surprised if it's different).&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;==&lt;/code&gt; - I thought so.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;123&lt;/code&gt; - Yup.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The disruption is small (in a simple example), but I &lt;em&gt;always&lt;/em&gt; notice it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Putting the value first may be a good idea if you &lt;em&gt;want&lt;/em&gt; to draw attention to it, e.g. &lt;code&gt;if (LAUNCH_NUKES == cmd)&lt;/code&gt;. Normally this is not the intention. &lt;/p&gt;&#xA;" OwnerUserId="2193" LastActivityDate="2010-11-05T05:54:55.547" CommentCount="2" />
  <row Id="17034" PostTypeId="2" ParentId="11512" CreationDate="2010-11-05T06:17:42.860" Score="1" ViewCount="" Body="&lt;p&gt;This Waterfall argument has been around for awhile and used by the agile thought leaders early on. They too encountered the &quot;reality&quot; of waterfall as a &quot;red alert.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you start working on a software development project you will quickly discover that the development methodology used will have a major part to play in the speed and quality of the code developed.Since Agile methodology is so widely used it is important that you understand the advantages and disadvantages of agile so you are able to determine whether it is the best fit for your project deliverables. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Agile software development is a conceptual framework for undertaking software engineering projects.Most agile methods attempt to minimize risk by developing software in short timeboxes, called iterations, which typically last one to four weeks. Each iteration is like a miniature software project of its own, and includes all of the tasks necessary to release the mini-increment of new functionality: planning, requirements analysis, design, coding, testing, and documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a good process for the company because it include the customer in the development process and make it responsible for the product delivery. In the other side customers are happy because they find theirs self participating in the development of the product. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Demerits for Agile:&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Agile is too programmer-centric&#xA;leaving it unclear how to balance&#xA;work across an organization.&lt;/li&gt;&#xA;&lt;li&gt;If You Don't Know Where You're Going,&#xA;Agile Won't Get You There!&lt;/li&gt;&#xA;&lt;li&gt;Creation of frameworks without clear&#xA;needs.&lt;/li&gt;&#xA;&lt;li&gt;Overuse of language features&#xA;(inappropriately).&lt;/li&gt;&#xA;&lt;li&gt;No test-first mentality.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Well for an interesting methodology which might work as an alternative for AGILE may be best viewed under these 3 links :&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.infoq.com/news/2008/10/kanban_agile&quot; rel=&quot;nofollow&quot;&gt;Kanban as Alternative Agile Implementation&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.drdobbs.com/architecture-and-design/225702051;jsessionid=OUXYA1A10EIDXQE1GHPCKH4ATMY32JVN&quot; rel=&quot;nofollow&quot;&gt;Kanban software development&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.sfgate.com/cgi-bin/article.cgi?f=/g/a/2010/10/29/prwebprweb4714374.DTL&quot; rel=&quot;nofollow&quot;&gt;Lean software development on the cloud&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6869" LastActivityDate="2010-11-05T06:17:42.860" CommentCount="1" />
  <row Id="17036" PostTypeId="1" AcceptedAnswerId="17089" CreationDate="2010-11-05T06:42:03.627" Score="0" ViewCount="166" Body="&lt;p&gt;i need books or tutorials on how to write a speech to text application&lt;/p&gt;&#xA;" OwnerUserId="6703" LastEditorUserId="1362" LastEditorDisplayName="" LastEditDate="2010-11-05T08:51:58.763" LastActivityDate="2010-11-05T12:23:49.617" Title="books or tutorials for speech to text conversion?" Tags="&lt;books&gt;&lt;tutorial&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="1" />
  <row Id="17037" PostTypeId="2" ParentId="2715" CreationDate="2010-11-05T06:44:13.930" Score="1" ViewCount="" Body="&lt;p&gt;Holy war indeed :) There is no single answer, i would say depends on the situation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When i was a student i used to put curly braces on the same line, so that no of lines are less, and gets printed in less no of pages.Seeing only a single bracket printed in a line on the paper annoys , think of your carbon footprint :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But when coding large applications, wasting some lines with only braces in them are affordable, considering the 'grouping' feeling it gives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whichever style you choose, be &lt;strong&gt;consistent&lt;/strong&gt; so that it does not become an overhead for your brain to process multiple styles in &lt;strong&gt;related pieces of code&lt;/strong&gt;. Different places/situations (like i said above) it's ok to use different styles, it's not that much of an effort to 'switch context' in a high level.&lt;/p&gt;&#xA;" OwnerUserId="4338" LastActivityDate="2010-11-05T06:44:13.930" CommunityOwnedDate="2010-11-05T06:44:13.930" />
  <row Id="17038" PostTypeId="1" CreationDate="2010-11-05T06:54:26.447" Score="1" ViewCount="53" Body="&lt;p&gt;Please suggest any &lt;strong&gt;good&lt;/strong&gt; java EE learning resources that you have came across , and think is &lt;strong&gt;worth mentioning&lt;/strong&gt; which are &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;simple enough for a grad student to follow with knowledge in c and familiar with OOP concepts (beginner-intermediate level)&lt;/li&gt;&#xA;&lt;li&gt;takes minimum time to cover the basics, and helps the student get started with a small project as soon as possible.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Thanks,&lt;br&gt;&#xA;Abhi&lt;/p&gt;&#xA;" OwnerUserId="4338" LastActivityDate="2010-11-05T10:45:47.667" Title="suggestions for resources for learning java ee - for a guy familiar with c and intermediate in oop concepts." Tags="&lt;learning&gt;&lt;java&gt;&lt;resources&gt;" AnswerCount="2" />
  <row Id="17039" PostTypeId="2" ParentId="16958" CreationDate="2010-11-05T07:07:08.540" Score="1" ViewCount="" Body="&lt;p&gt;Oddly enough, this &quot;skipping the 13th version&quot; rule doesn't seem to be an issue for &quot;.13&quot; versions:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I am currently using &lt;a href=&quot;http://svn.haxx.se/dev/archive-2010-10/0023.shtml&quot; rel=&quot;nofollow&quot;&gt;Subversion 1.6.&lt;strong&gt;13&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;all java updates never skipped the &lt;a href=&quot;http://forum.thewindowsclub.com/downloads-windows/27364-sun-java-jre-1-6-0_13-b03-released.html&quot; rel=&quot;nofollow&quot;&gt;13th update&lt;/a&gt; (jdk1.6u13)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Smaller utilities doesn't follow that rules either:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://h30434.www3.hp.com/t5/Printer-All-in-One-Install-and/Upgrading-version-13-x-software-to-version-14-1/td-p/255069&quot; rel=&quot;nofollow&quot;&gt;HP printer setup&lt;/a&gt; has a 13th version.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.novadevelopment.com/software/photoimpact-pro-129013&quot; rel=&quot;nofollow&quot;&gt;Photo Impact Pro&lt;/a&gt; is currently in its 13th release&lt;/li&gt;&#xA;&lt;li&gt;Ganntrader 3.1 v13 has a &quot;13&quot; in its latest release&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It is more of a marketing decision, which can be the occasion for &lt;a href=&quot;http://www.mapleprimes.com/maplesoftblog/33074-Lucky-13&quot; rel=&quot;nofollow&quot;&gt;some odd release statement&lt;/a&gt;, like for &lt;strong&gt;&lt;a href=&quot;http://www.maplesoft.com/&quot; rel=&quot;nofollow&quot;&gt;Mapple&lt;/a&gt;&lt;/strong&gt; 13&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Here at Maplesoft we deferred the decision of using 13, in the initial stages of development, by using an internal code name. This gives a product a working title to use until an official one is decided.&lt;br&gt;&#xA;  [...]&lt;br&gt;&#xA;  In 1994 Maple V release 3 was dubbed &quot;antelope.&quot; This preceded a series of sleek, powerful, and sometimes mythical animals including &quot;bobcat&quot;, &quot;cheetah&quot;, &quot;dragon&quot;, &quot;eagle&quot;, &quot;falcon&quot;, &quot;gryphon&quot;, &quot;hydra&quot;, &quot;iguana&quot;, &quot;jackalope&quot;, and &quot;kestrel&quot;.  The most recent version was a slight deviation with &quot;llama&quot;.&lt;br&gt;&#xA;  With such a cute and fuzzy mascot, &lt;strong&gt;we had absolutely no fear in proceeding with the label &quot;13&quot;. That, and the fact that the group of mathematicians and engineers in charge just wouldn't give any weight to being superstitious about a number&lt;/strong&gt;.&lt;br&gt;&#xA;  Ultimately, “13” was not able to cast a shadow over the product or the development process.  We have every anticipation that this will be lucky-13 for Maple. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3915" LastActivityDate="2010-11-05T07:07:08.540" />
  <row Id="17040" PostTypeId="2" ParentId="17038" CreationDate="2010-11-05T07:15:20.497" Score="2" ViewCount="" Body="&lt;p&gt;Please note that full Java EE is a pretty large beast, and to get started I would suggest use the corner that is JSP-pages in a web container (which is most similar to PHP).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The easiest way to get up and running is using Netbeans in a version with an integrated server (GlassFish is nice) instead of having to set up things manually, and then have a look at this tutorial which shows you how to make a simple JSP page interacting with Java code: &lt;a href=&quot;http://netbeans.org/kb/docs/web/quickstart-webapps.html&quot; rel=&quot;nofollow&quot;&gt;http://netbeans.org/kb/docs/web/quickstart-webapps.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-05T07:15:20.497" CommentCount="1" />
  <row Id="17041" PostTypeId="2" ParentId="16936" CreationDate="2010-11-05T07:17:20.463" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Not me - and I'm 52!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I went down that road for about ten years, struggled the whole time, and finally woke up to the fact that I hate managing other people and really suck at it. So in 2002, I went back to just programming. Now, I make way more money and really enjoy what I do, and I have zero regrets about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are usually only a few standard career tracks for technical people, no matter what the field. Unfortunately, in most organizations, the purely technical track has a salary ceiling, and has limited influence on the organization. A lot of programmers who jump to the management track don't do it because they really want to stop coding, but because they want to keep progressing in income and authority.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been successful with a very different approach: become proficient in technologies I think are cool, and take jobs or contracts to work with them. Those positions then expose me to more cool technologies which I become proficient at, and the cycle continues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is certainly some age discrimination against older programmers - but there are ways to combat this, too. The first time somebody sees how fast my reflexes are from my ongoing practice of martial arts, they stop paying attention to my white beard.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-11-05T07:17:20.463" CommentCount="1" />
  <row Id="17042" PostTypeId="2" ParentId="16936" CreationDate="2010-11-05T07:31:51.543" Score="1" ViewCount="" Body="&lt;p&gt;I'm 40 now, I've been manager for two loooooooooong years, and I'm very glad to be back to coding again.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-05T07:31:51.543" />
  <row Id="17043" PostTypeId="2" ParentId="16958" CreationDate="2010-11-05T07:36:05.147" Score="1" ViewCount="" Body="&lt;p&gt;I've worked on a lot of elevator control systems, and here is some irony for you:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Almost every vendor (that I have encountered) has a version 13 of firmware or later (for some part), or even the system as a whole.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Almost every building skips the 13'th floor.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Almost so anecdotal that I I didn't answer, but you did manage to ask a question that tickled a very bored part of my brain at an opportune moment :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some elevators have been in service for the better part of 50+ years, so version numbers tend to get into triple digits, especially for custom installations. &lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-05T07:42:48.003" LastActivityDate="2010-11-05T07:42:48.003" CommentCount="2" />
  <row Id="17044" PostTypeId="2" ParentId="16936" CreationDate="2010-11-05T07:45:00.033" Score="0" ViewCount="" Body="&lt;p&gt;I did one year of managing nearly two decades ago, and didn't like it.  I've been a programmer, or architect, or anything but a manager and still doing coding since then, with no cause for regret.  And the &lt;a href=&quot;http://www.aarp.org/&quot; rel=&quot;nofollow&quot;&gt;AARP&lt;/a&gt; just sent me an invitation to join based on my next birthday - I must be getting old!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm lucky - I work for a big company that has career tracks for senior technical staff who want to remain technical staff.&lt;/p&gt;&#xA;" OwnerUserId="3611" LastActivityDate="2010-11-05T07:45:00.033" />
  <row Id="17045" PostTypeId="2" ParentId="35" CreationDate="2010-11-05T07:47:02.080" Score="4" ViewCount="" Body="&lt;p&gt;Programmer - An organism that turns coffee into software.&lt;/p&gt;&#xA;" OwnerUserId="6869" LastActivityDate="2010-11-05T07:47:02.080" CommunityOwnedDate="2010-11-05T07:47:02.080" CommentCount="1" />
  <row Id="17046" PostTypeId="2" ParentId="4325" CreationDate="2010-11-05T07:59:23.280" Score="0" ViewCount="" Body="&lt;p&gt;In France, telecommuting is far from common. Here is why:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The boss cannot show the progress of your work and thus cannot give you more work when you're done with one activity.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The unions cannot be in contact with you and thus are afraid that you could be manipulated by the boss.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This all ends up with gazoline being wasted in climate change and productivity misses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seth Godin has a blog post about this subject: &lt;a href=&quot;http://sethgodin.typepad.com/seths_blog/2010/06/goodbye-to-the-office.html&quot; rel=&quot;nofollow&quot;&gt;Goodbye to the office&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-11-05T07:59:23.280" />
  <row Id="17047" PostTypeId="2" ParentId="16936" CreationDate="2010-11-05T08:05:04.970" Score="2" ViewCount="" Body="&lt;p&gt;I'm a little premature for this, at 35 I am a CTO that still manages to write some code when I'm not distracted by Q&amp;amp;A sites, interviews, budget sheets, pending litigation, that black hole called the US Patent office and other things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I first learned the 'business' end of programming when I got sick of working for other people. I was familiar with some aspects of administration, such as software licenses and contracts in general so it was a natural move for me. Quite frankly, I hate it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently, I'm well versed enough to continue to not only keep pushing neat products out the door, but also ensuring that we keep and maintain people who can push neat products out the door. I also try my best to steer us away from legal pitfalls. I refuse to stop writing code, so it is indeed like working two full time jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My goal? Make enough money so I can just go back to pushing neat stuff out the door, without having to worry about anything else. That probably won't happen for another 15 years, which, remarkably, puts me at the same age that you raised in your question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You also have to consider that most (good) companies take a different look at management. I would not, for instance, interfere with a project that I knew nothing about even though my title 'entitles' me to do so unless there was some compelling reason to do so. If you are going to go through all of the hassle of establishing a 'senior' level and then short circuit it, what's the point?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where I work, if you are able to come up with an idea, draft a spec, a plan and a budget, you own it, it's your baby and you are free to spend money and run with it with minimal oversight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think most sensible companies are realizing that they make more money when they (within reason) put people at what they want to do. Manager today, grunt tomorrow, consultant the following week. As long as the compensation reflects your responsibilities, I don't see how a title makes any difference :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Footnote: I hate software patents and am a member of the LPF (league for programming freedom)&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-05T08:05:04.970" />
  <row Id="17048" PostTypeId="2" ParentId="17009" CreationDate="2010-11-05T08:15:27.733" Score="3" ViewCount="" Body="&lt;p&gt;For what its worth...you are not alone in this regard! In the past I worked for a big multinational and there I solved the issue by changing jobs/countries inside the company. Eventually that didn't do it and lately I also find myself getting itchy every 2-3 years. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm also starting to worry on how this will look on my CV so I'm currently thinking of going into consulting/contracting, hopefully that will look more acceptable on my CV.&lt;/p&gt;&#xA;" OwnerUserId="5696" LastActivityDate="2010-11-05T08:15:27.733" CommentCount="1" />
  <row Id="17049" PostTypeId="2" ParentId="17009" CreationDate="2010-11-05T08:18:24.537" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is &quot;needing a change&quot; an acceptable&#xA;  reason to move on from a job?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I think it is. In fact, in lots of interviews it's a common response to the &quot;why&quot; question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can feel myself kind of lucky in this matter. I work for an IT services company, in Spain, where the customers use to like having their IT providers working at customers office. So, I usually change my dayly scenery (building, coworkers, etc) every time I move from a project to other, without needing to change the company, and avoiding the monotony. I have rarely worked more than one year in the same project. And, believe me, the way the labour market goes in my country currently (more than 20% of the labor force is unemployed), this job statbility is kind of a bless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a conclusion, it depends a lot on the kind of work, the &quot;environment&quot; circumstances, your own spectactions and personality, etc., and it's a very personal decision, so, whatever your reasons to change job is, don't consider it as &quot;uncommitment&quot;, and go ahead. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And about this kind of questions at the interviews, IMO it's much better being sincere than trying to hide your real reasons for fear to be considered &quot;unprofessional&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="5717" LastActivityDate="2010-11-05T08:18:24.537" />
  <row Id="17050" PostTypeId="2" ParentId="13616" CreationDate="2010-11-05T08:21:30.777" Score="1" ViewCount="" Body="&lt;p&gt;some things that i have observed:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;engineering graduates hate getting allocated to testing units (of large software vendor firms) , since they consider it a a non-technical work environment, they are given excel sheets with instructions like 'click all the links in the webpage and verify', are forced to work with graduates from non-technical streams(science, arts) which they consider as a humiliation and feels like their tech skills are not utilized.  But these allocations are purely based on organization's requirements. so if you are a job seeker aiming at such a big software company, beware, your career at such a firm is decided almost single sided by the firm. You cannot do much, practically, except getting out of the company at the right time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;unless there is opportunities to learn automated testing etc, the career is stagnant to an extent in testing. But i have heard from more experienced folk that good profiles in specialization in testing gets high compensation, and personally i know the opportunities for onsite assignments (simply put, in the offshore model, it fetches more money for you as compensation) are more for testing unit in my organization than any other unit. They work with all industry verticals as a filler or glue, and testing is inevitable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;so if you are sure you can drive your career the way you want, testing is nothing low-profile. But the general public, its a pain to convince them. and why do you have to?&lt;/p&gt;&#xA;" OwnerUserId="4338" LastEditorUserId="4338" LastEditorDisplayName="" LastEditDate="2010-11-05T12:03:51.607" LastActivityDate="2010-11-05T12:03:51.607" />
  <row Id="17051" PostTypeId="2" ParentId="16755" CreationDate="2010-11-05T08:32:40.697" Score="0" ViewCount="" Body="&lt;p&gt;Don't have enough points to vote up karianna but I agree with him. I moved from developer -&gt; software PM -&gt; Project manager which is now expected to do PMP/Prince2 reporting on software projects.&#xA;It is fairly simple to map any agile/kanban method to fit within the Prince2/PMP structure. In the end the only reason people want/need this is to see the progress! So if you can visually show the progress/bottle necks and risks then I can't see any PM insisting on anything else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as requrements go, I would also tend to let the business requrements not get too detailed so that the developers themselves decide how best to break it down into smaller detailed tasks. It is possible, you just have to sit down with the PM and discuss his/her (reporting) requirements and then see how you can provide him/her with it.&lt;/p&gt;&#xA;" OwnerUserId="5696" LastActivityDate="2010-11-05T08:32:40.697" />
  <row Id="17052" PostTypeId="1" CreationDate="2010-11-05T08:39:37.647" Score="2" ViewCount="166" Body="&lt;p&gt;Hi All,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am planning to build a mobile application (a text editor based app) to primarily use with my symbian device. I have plans to make it commercial too, once its complete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now the manufacturer (NOKIA) website lists some choices for mobile app development - java, native platform for symbian (using c) and  QT.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am aware about the aspects of scaling and extending the app for other platforms. Android is increasing in it's market share like anything, symbian is losing too. &#xA;Also if i need to get the platform specific functionalities (say reading the contact list or sending an sms) i should be compromising the portability. I was not able to find  any comparisons between these portability and platform specific features aspects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If i chose java, i think i could easily port my application for android/iphone and make it commercial. I have no idea how portable the QT platform can be. I do not want to go by Nokia's suggestions since i doubt they are biased to their products(even if they provide excellent developer support) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have to start learning from the beginning, irrespective of whichever platform i chose (except languages)&#xA;Please advice me if i have assumed something wrong, and your opinion about portability versus platform features. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&lt;br&gt;&#xA;Abhi&lt;/p&gt;&#xA;" OwnerUserId="4338" LastActivityDate="2010-11-05T14:05:48.967" Title="Mobile application development- suggestions for chosing the platform" Tags="&lt;mobile&gt;&lt;java-me&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="17053" PostTypeId="1" CreationDate="2010-11-05T08:45:38.317" Score="13" ViewCount="1062" Body="&lt;p&gt;Java is fifteen years old. It started life as an alternative to C++ with a comprehensive standard library. Riding on the coattails of the Internet boom, it was popular for writing web applets. Its supposed portability was touted as a way to write desktop apps that would run on any platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now it's 2010. Applets are long gone. Desktop apps are giving way to web and mobile apps. Scripting languages are very popular, as is Flash, especially among web-centric developers. People have been chanting &quot;Java's death is near&quot; for several years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yet a quick job search shows that Java is still a desired skill among programmers. So what is Java used for these days? What kinds of apps are you writing in Java? This should give us an idea of the &quot;state of Java&quot; today. Has the Java tide shifted from Swing desktop apps to Android mobile apps?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you write programs in a JVM language (such as Scala or Groovy), mention it.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2011-03-02T22:10:09.757" CommunityOwnedDate="2011-02-04T17:13:07.977" Title="What is Java used for these days?" Tags="&lt;java&gt;&lt;trends&gt;&lt;industry&gt;" AnswerCount="19" CommentCount="6" FavoriteCount="2" />
  <row Id="17054" PostTypeId="2" ParentId="16954" CreationDate="2010-11-05T09:02:42.873" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;ABAP will indeed bore you to death&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I'd master ABAP as well as SAP Basis and make a very successful career out of it&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- Xepoch&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So basically, sacrifice any enjoyment or pleasure you might get out of your profession for a possibly larger paycheck? Xepoch obviously has a vastly different definition of a &quot;successful career&quot; than me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was in the ABAP/SAP world for a while, just long enough to realize what I needed to do, and I did it: &lt;strong&gt;run away as if your life depends on it&lt;/strong&gt; (it does).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT @Bunny: I was being pushed to work part time with ABAP/SAP after working on other technologies for around five year. I worked on legacy stuff that is so similar to ABAP you'd swear it was related somehow (it isn't), but it, unlike ABAP, was a pleasure to use, from day one. I was also did some fairly large C# projects, using the latest tech available (latest framework and libraries). So knowing how a good legacy technology looks like and how a good modern technology looks like, I was excited to learn a new technology. It didn't take long for me to realize that it wasn't what I expected it to be, but I was sure I just didn't understand it well enough. After six months I was simply horrified with ABAP/SAP (more at the SAP environment than the ABAP language, to be honest), and I just couldn't take it anymore.&lt;/p&gt;&#xA;" OwnerUserId="135" LastEditorUserId="135" LastEditorDisplayName="" LastEditDate="2010-11-05T09:24:03.243" LastActivityDate="2010-11-05T09:24:03.243" CommentCount="7" />
  <row Id="17055" PostTypeId="2" ParentId="13616" CreationDate="2010-11-05T09:10:30.963" Score="0" ViewCount="" Body="&lt;p&gt;I know companies where the QA team is responsible for releases. This means that they have the power to block a release due to lack of quality. If an issue is reported in the field, they are the first in the line of fire (well right after the field engineer).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Typically they have higher domain knowledge. They tend to know the overall functionality of the product better while developers concentrate on their module/features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also I know of QA orgs where they have to write their own test tools. Not to mention automating the whole stuff. I am a developer, and have always valued QA guys who test my features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least in my organization, QA are treated equally with developers. I think it is because of the domain (telecom) where protocol and network architecture knowledge is equally valued with programming skills.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-11-05T09:10:30.963" />
  <row Id="17056" PostTypeId="2" ParentId="17053" CreationDate="2010-11-05T09:13:35.857" Score="0" ViewCount="" Body="&lt;p&gt;Most of the Java jobs I've found are looking for people to work with the J2EE side of things rather than standard SWING app development.  And as has been my experience so far, most of those jobs are in the finance sector.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-05T09:13:35.857" CommunityOwnedDate="2011-02-04T17:13:07.977" />
  <row Id="17057" PostTypeId="2" ParentId="17053" CreationDate="2010-11-05T09:22:32.807" Score="0" ViewCount="" Body="&lt;p&gt;Sincerely, I think that today it's rarely used for desktop applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my environment it's almost always used for enterprise applications (most with a JSPs-Servlets based web user interface, sometimes combined with some AJAX controls), and some SOA architectures. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Indeed, the vast majority of the applications are few more of a CRUD with some validation and integration logic. I mean that it's rarely used for complicated software, with complex algoritms, or this kind of things that we dream working on when at College.&lt;/p&gt;&#xA;" OwnerUserId="5717" LastActivityDate="2010-11-05T09:22:32.807" CommunityOwnedDate="2011-02-04T17:13:07.977" CommentCount="3" />
  <row Id="17058" PostTypeId="2" ParentId="17053" CreationDate="2010-11-05T09:24:41.647" Score="4" ViewCount="" Body="&lt;p&gt;J2SE is widely used in enterprise, particularly for high throughput/low latency messaging systems implementations. Those are not quite traditional usages of Java (aimed at eliminating dynamic memory allocation).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;J2EE is used for integrated Servlet-based web applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The last UI I've seen being written with Swing/Java is ~10 years old :)&lt;/p&gt;&#xA;" OwnerUserId="4676" LastEditorUserId="4676" LastEditorDisplayName="" LastEditDate="2010-11-05T10:05:29.770" LastActivityDate="2010-11-05T10:05:29.770" CommunityOwnedDate="2011-02-04T17:13:07.977" CommentCount="1" />
  <row Id="17059" PostTypeId="1" CreationDate="2010-11-05T09:36:16.213" Score="2" ViewCount="230" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While reading this wikipedia &lt;a href=&quot;http://en.wikipedia.org/wiki/No_Silver_Bullet&quot; rel=&quot;nofollow&quot;&gt;article&lt;/a&gt;, Brookes has told that there is a difference between &quot;good&quot; designers and &quot;great&quot; designers.  what is the difference between them? How to decide which one is good and which is great.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="7087" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2010-11-05T13:08:02.733" LastActivityDate="2010-11-06T20:22:53.047" Title="difference between &quot;good&quot; designers and &quot;great&quot; designers." Tags="&lt;design&gt;&lt;software-engineering&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="1" />
  <row Id="17060" PostTypeId="2" ParentId="17059" CreationDate="2010-11-05T09:39:43.797" Score="6" ViewCount="" Body="&lt;p&gt;A great designer catches the intent of what I want to accomplish and improves on it to my delight. A good designer follows a specification to the letter, but creativity shows in how they did that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A bad designer is, well, none of the above. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think 'exceptional' is always in the eye of the client, and the people they hope to reach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other things come into play in the 'great' category, such as someone who can articulate why my 'vision' of something might be skewed. I guess it boils down, mostly to how much ownership someone takes in any given project, given a group of people with similar skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Great, is also, entirely subjective.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-05T09:39:43.797" />
  <row Id="17061" PostTypeId="2" ParentId="17053" CreationDate="2010-11-05T09:41:07.067" Score="2" ViewCount="" Body="&lt;p&gt;I'm currently working on &lt;a href=&quot;http://www.opengda.org/&quot; rel=&quot;nofollow&quot;&gt;OpenGDA&lt;/a&gt;, a Java-based tool for data acquisition at synchrotron facilities. You'll find that Java is commonly used in the scientific community by people who have finally moved on from FORTRAN (though Python is currently hot and exciting among scientists, too).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually my first Java experience was with Java WebObjects, though that has now all but died.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-11-05T09:41:07.067" CommunityOwnedDate="2011-02-04T17:13:07.977" CommentCount="3" />
  <row Id="17062" PostTypeId="2" ParentId="17053" CreationDate="2010-11-05T09:42:15.613" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.oracle.com/technetwork/java/javame/overview/index.html&quot; rel=&quot;nofollow&quot;&gt;Java ME (Micro Edition)&lt;/a&gt; is still widely used in mobile development, such as &lt;a href=&quot;http://www.forum.nokia.com/Develop/Java/&quot; rel=&quot;nofollow&quot;&gt;Nokia&lt;/a&gt;. A recent example is &lt;a href=&quot;http://developer.android.com/guide/basics/what-is-android.html&quot; rel=&quot;nofollow&quot;&gt;Google's Android platform&lt;/a&gt; whose SDK is Java based.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-11-05T09:42:15.613" CommunityOwnedDate="2011-02-04T17:13:07.977" />
  <row Id="17063" PostTypeId="2" ParentId="17059" CreationDate="2010-11-05T09:42:53.407" Score="1" ViewCount="" Body="&lt;p&gt;A good designer creates something that does the job well. A great designer also makes the user say &quot;wow!!!&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good designer knows the established standards, and applies them well. A great designer goes beyond that and creates new solutions that become new standards.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-05T09:42:53.407" />
  <row Id="17064" PostTypeId="2" ParentId="16760" CreationDate="2010-11-05T09:52:39.900" Score="22" ViewCount="" Body="&lt;p&gt;Three questions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I actually found this on SO, but I can't find the reference (perhaps it was deleted?) I'm a 10K+ user, but search-foo is failing me at the moment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Question 1:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;On a scale of 1 - 10, where do you&#xA;  rate yourself in (name the skill&#xA;  here)? They answer [n], a number&#xA;  between 1 and 10.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Question 2:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What could you learn from someone at&#xA;  level [n+1] ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Question 3:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What could someone at level [n-1]&#xA;  learn from you?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The most important factor in your decision is to determine where a student (realistically) places &lt;em&gt;themselves&lt;/em&gt;, and those three questions will help you to determine that quickly. It also helps identify people that might be compromised by the &lt;a href=&quot;http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect&quot; rel=&quot;nofollow&quot;&gt;Dunning-Kruger effect&lt;/a&gt; (on either end), but that is another topic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If anyone can find the reference to this method on SO and edit this post to include a link, I would really appreciate it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, that should fall well under ten minutes.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-05T09:52:39.900" CommentCount="1" />
  <row Id="17065" PostTypeId="2" ParentId="17009" CreationDate="2010-11-05T10:07:39.933" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;YES IT IS!!!&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="4499" LastActivityDate="2010-11-05T10:07:39.933" />
  <row Id="17066" PostTypeId="2" ParentId="17053" CreationDate="2010-11-05T10:25:36.950" Score="2" ViewCount="" Body="&lt;p&gt;While most of my work with Java is server-side J2EE, I do think that the &lt;a href=&quot;http://www.eclipse.org&quot; rel=&quot;nofollow&quot; title=&quot;eclipse.org&quot;&gt;eclipse&lt;/a&gt; project is worth a mention. This is Java on the desktop! Not only is it the development tool of choice for most Java developers, it is a very interesting platform for Rich Client applications. For example, newer versions of the Lotus Notes client are based on the eclipse RCP. The SWT GUI library is also a handy alternative to Swing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check it out!&lt;/p&gt;&#xA;" OwnerUserId="598" LastActivityDate="2010-11-05T10:25:36.950" CommunityOwnedDate="2011-02-04T17:13:07.977" CommentCount="3" />
  <row Id="17067" PostTypeId="2" ParentId="17036" CreationDate="2010-11-05T10:31:26.587" Score="0" ViewCount="" Body="&lt;p&gt;I don't have any direct recommendations for voice recognition tutorials or books, but if I were you I would start by choosing an API to use for the actual recognition part of your application - there seems to be at least one for most languages and platforms so you should be able to find something that matches your needs. Having chosen one you will probably find that narrows down your options for accompanying literature, making the decision a lot easier.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-05T10:31:26.587" />
  <row Id="17068" PostTypeId="1" AcceptedAnswerId="17083" CreationDate="2010-11-05T10:31:47.727" Score="13" ViewCount="658" Body="&lt;p&gt;Imagine the following scenario:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are put on a project that has languished for 48 months. When given the initial specification, it looks relatively simple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You then find out that you have approximately ~3 months to complete the project, as it was sold as advertised a month ago. It was advertised as the developers who left promised it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You realize all of the moving pieces, you conceptualize them working together, you have a relatively solid design and zero margin for error. You won't be penalized for going over the deadline, you don't care about a bonus, you just want to meet what you feel is an awesome challenge and deliver something that can be shipped with confidence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You fully understand that you have zero margin for error. For instance, if you are developing an API, there is little room to change things. If you are coupling that with kernel device drivers, there is no room to change things. You have to get it right, the first time. You have to be able to build stuff next month that depends on what you built this month, without needing a face-palm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm in a situation such as that, and I keep thinking about the film &quot;&lt;a href=&quot;http://www.imdb.com/title/tt0258000/&quot; rel=&quot;nofollow&quot;&gt;Panic Room&lt;/a&gt;&quot;, moreover a place where you can seal yourself off and shut out the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Sales people asking &quot;Is it done yet, Joe Client wants beta access NOW! Can I seal this deal??&quot;&lt;/li&gt;&#xA;&lt;li&gt;Managers wondering why you've taken a keen interest in development methodology&lt;/li&gt;&#xA;&lt;li&gt;Co-workers realizing that you've been quiet for a while and calling to ask if you offended them&lt;/li&gt;&#xA;&lt;li&gt;Even more responsibility tacked on to what you're dealing with&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Is it appropriate to shut yourself off in order to gain time to &lt;em&gt;really&lt;/em&gt; study the problems at hand and avoid mistakes, or (in your experience) does doing so invite evils such as premature optimisation ? I can make choices only once, and I have to be confident that I can live with them next month, no margin for error.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the analogy that I gave, I envisioned a quiet space with monitors for me to view the noise. My inclination is to not come out of my shell until distractions have given up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Add to that, you are a lone programmer. This task was given solely to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would you do?&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-11-05T13:04:06.490" LastActivityDate="2010-11-05T16:38:31.347" Title="Do you have a panic room?" Tags="&lt;career&gt;&lt;software-endgame&gt;" AnswerCount="7" CommentCount="4" FavoriteCount="5" />
  <row Id="17069" PostTypeId="2" ParentId="16936" CreationDate="2010-11-05T10:32:49.300" Score="0" ViewCount="" Body="&lt;p&gt;In my class it's sort of the other way around.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have mixed-classes, programmers and managers. Alot of the managers switched to programming in the 2th year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm actually chocked to hear (assuming it's true) that most of the programmers want to switch to management.&lt;/p&gt;&#xA;" OwnerUserId="6709" LastActivityDate="2010-11-05T10:32:49.300" />
  <row Id="17070" PostTypeId="2" ParentId="17059" CreationDate="2010-11-05T10:34:46.697" Score="3" ViewCount="" Body="&lt;p&gt;I'm going to assume you're talking about Software Design as opposed to the narrower Ux design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll quote a semi-famous passage from Alan Perlis:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Fools ignore complexity. Pragmatists suffer it. Some can avoid it. Geniuses remove it.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One aspect of a Great designer is that they reduce complexity.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-05T10:34:46.697" />
  <row Id="17071" PostTypeId="2" ParentId="17053" CreationDate="2010-11-05T10:38:50.167" Score="14" ViewCount="" Body="&lt;p&gt;I am a JEE developer. I work mainly on HTML / Flex based apps, and a few purely backend solutions. I still do Swing every now and then.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java is still the language of choice for large enterprise applications (JEE). There isnt that many alternatives for it. You could say that .Net / C# is the natural competition, but in my industry (private banking) it will still take years before me move to this &quot;new&quot; platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java's strength is that its model is very well understood, the application servers are mature and the there is enough competition that you are not afraid to being locked to a vendor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The JVM itself is an interesting platform, on which we start to see more and more development (Scala, JRuby, Jython, ...). The JVM being extremely mature, it is a good plateform on which to build new solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java is not as sexy as some new languages / frameworks, but is still is the right solution for a vast range of enterprise problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People have been chanting &quot;Cobol is dead&quot; for even longer. And sadly, Cobol is still alive ... Java has still quite a few years ahead !&lt;/p&gt;&#xA;" OwnerUserId="2248" LastActivityDate="2010-11-05T10:38:50.167" CommunityOwnedDate="2011-02-04T17:13:07.977" CommentCount="3" />
  <row Id="17072" PostTypeId="2" ParentId="17053" CreationDate="2010-11-05T10:42:25.013" Score="18" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Serverside&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Java (J2SE/J2EE/JEE) has been the mainstay of Server Side development for enterprises and will probably continue to do so for some time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1.)  Enterprises like stability. Java's been given a lot of stick recently for lacking certain language features and not breaking with the past.  To be blunt, my Investment Bank client &lt;em&gt;Loves&lt;/em&gt; that stability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2.)  The JVM is an incredibly powerful and flexible runtime platform and niche languages (ducks for cover) such as Groovy, Scala and Clojure can solve difficult problems (functional mathematics anyone?) while being completely interoperable with Java and its vast numbers of libraries.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Desktop&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Java on the desktop?  Hmm, not so much and I think JavaFX has come to late too the party - time will tell&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mobile&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Java in the mobile space?  J2ME runs on a surprising number of devices, but the reality is that shiny smartphones are the way of the future, so that means at this stage Android.  Unfortunately this is under a lawsuit cloud so we'll have to wait and see about Java's future here.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-05T10:42:25.013" CommunityOwnedDate="2011-02-04T17:13:07.977" CommentCount="2" />
  <row Id="17073" PostTypeId="2" ParentId="17059" CreationDate="2010-11-05T10:43:38.480" Score="0" ViewCount="" Body="&lt;p&gt;Depends on what kind of design. For web page designers a good designer can make something that looks good but a great designer can make something that looks good and works well (ie intuitive and easy to use).&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-05T10:43:38.480" />
  <row Id="17074" PostTypeId="2" ParentId="17052" CreationDate="2010-11-05T10:44:34.267" Score="1" ViewCount="" Body="&lt;p&gt;Given the uncertainty around several languages/platforms in the mobile space right now you probably want to look at something like:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://mashable.com/2010/08/11/cross-platform-mobile-development-tools/&quot; rel=&quot;nofollow&quot;&gt;http://mashable.com/2010/08/11/cross-platform-mobile-development-tools/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-05T10:44:34.267" CommentCount="1" />
  <row Id="17075" PostTypeId="2" ParentId="17038" CreationDate="2010-11-05T10:45:47.667" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://download.oracle.com/javaee/5/tutorial/doc/&quot; rel=&quot;nofollow&quot;&gt;http://download.oracle.com/javaee/5/tutorial/doc/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-05T10:45:47.667" />
  <row Id="17076" PostTypeId="2" ParentId="14124" CreationDate="2010-11-05T10:55:06.313" Score="2" ViewCount="" Body="&lt;p&gt;send a daily status update mail, even before he asks about it. indicate the small things you have done,blocking issues if any, the percentage completion, and the estimated time needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;after it's become a habit, it gives the boss a feeling of 'things are going well and in control'. this works well, i have tried and succeeded doing the same.&lt;/p&gt;&#xA;" OwnerUserId="4338" LastActivityDate="2010-11-05T10:55:06.313" />
  <row Id="17077" PostTypeId="2" ParentId="16980" CreationDate="2010-11-05T11:01:42.040" Score="1" ViewCount="" Body="&lt;p&gt;Even if you don't write a formal contract there is a lot of value in a written agreement that states what exactly will be done and by when, including milestones on your part and payment on theirs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it ever does find its way to court, this is usually enough to prove your case and even if it doesn't you have a piece of paper that both parties have signed up to indicating what is going to happen that you can call them on or they can call you on if they don't feel you are working correctly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although working internationally is harder, it should be possible to find some route to enforcement no payment, but it's much harder to do if you don't have some kind of on-paper agreement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whatever you do, keep chasing for payment on the work you have already done.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-05T11:01:42.040" />
  <row Id="17078" PostTypeId="2" ParentId="17053" CreationDate="2010-11-05T11:12:51.047" Score="0" ViewCount="" Body="&lt;p&gt;In the major software vendor firms, young engineers joining in are getting trained in a 40:40:20 ratio in .Net, Java EE , and remaining technologies taken as a whole.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Means from an enterprise application point of view java EE is still used widely, and it will continue to be so, in the near future. Many e-commerce websites of large retail groups, banking firms etc uses java EE. the job search profiles you mentioned shows the same, at least for maintainance tasks java developers are still needed , in large numbers. &lt;/p&gt;&#xA;" OwnerUserId="4338" LastEditorUserId="4338" LastEditorDisplayName="" LastEditDate="2010-11-05T11:18:25.027" LastActivityDate="2010-11-05T11:18:25.027" CommunityOwnedDate="2011-02-04T17:13:07.977" />
  <row Id="17079" PostTypeId="1" AcceptedAnswerId="17147" CreationDate="2010-11-05T11:35:11.420" Score="5" ViewCount="128" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Lately we had a project, in which client was busy touring. As usual scrum team was formed, management decided to appoint our analyst as Product owner since Client won’t be able to participate actively. Analyst was the one who worked closely with client for requirement analysis and specification drafting.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Client doesn’t have the time to review first two releases. Everything went smoothly until, client saw third release; he wasn’t satisfied with some functionalities, and those was introduced by make shift Product Owner (our analyst).  &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;We were told to wait till design team finished mock-up of all pages and client checked each one and approved to continue working. Scrum team is there, but no sprints – we finished work almost like classic waterfall method.  &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;em&gt;Is it a good idea to appoint scrum team member or master as product owner? Do we need to follow scrum in the absence of client/product owner participation?&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="493" LastActivityDate="2010-11-06T21:57:52.377" Title="Is it a good idea to appoint one of the scrum team member or scrum master as Product Owner?" Tags="&lt;recommendations&gt;&lt;agile&gt;&lt;scrum&gt;&lt;waterfall&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="17080" PostTypeId="2" ParentId="17068" CreationDate="2010-11-05T11:38:25.843" Score="10" ViewCount="" Body="&lt;p&gt;I am not a lone programmer - I work in an open office with a number of others.  I have had times where I have been given a chunk of work that requires lots of deep thought and careful design that was being continually disturbed by sales calls, others' annoying phone ringtones...  My solution was to go and sit in my car with a pencil and notebook.  This worked surprisingly well and helped make a point to the boss!&lt;/p&gt;&#xA;" OwnerUserId="5877" LastActivityDate="2010-11-05T11:38:25.843" CommentCount="4" />
  <row Id="17081" PostTypeId="1" AcceptedAnswerId="17094" CreationDate="2010-11-05T11:41:54.390" Score="4" ViewCount="359" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;As a ASP.NET developer with 5+ year experience. I like to measure my competency level in ASP.NET &amp;amp; SQL Server. Basically my goal is to raise my competency level and skill-set in ASP.NET; before that I need to know what is my level considering current ASP.NET and related technologies...&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Please provide some pointers...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is there are any skill-set measuring Quiz or exam, which account experience and technology ?  &lt;/li&gt;&#xA;&lt;li&gt;How do you measure your or your junior developers skills or competency?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Note: This question was originally asked in &lt;a href=&quot;http://stackoverflow.com/questions/3493118/how-can-i-measure-my-competency-level-or-skill-set-in-asp-net&quot;&gt;SO&lt;/a&gt;, I am reposting here to get more input.&lt;/p&gt;&#xA;" OwnerUserId="493" LastActivityDate="2010-11-05T12:43:32.150" Title="How can I measure my competency level or skill-set in ASP.NET?" Tags="&lt;self-improvement&gt;&lt;skills&gt;&lt;competence&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="17082" PostTypeId="2" ParentId="17068" CreationDate="2010-11-05T11:54:58.953" Score="3" ViewCount="" Body="&lt;p&gt;Explain your problem to your manager, and see if he / she can think of a way to fend off the unwanted distractions.  I assume the he / she &lt;em&gt;wants&lt;/em&gt; you to be able to meet the deadline.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plan B - bring your pet alligator into the office.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-11-05T11:54:58.953" CommentCount="2" />
  <row Id="17083" PostTypeId="2" ParentId="17068" CreationDate="2010-11-05T11:55:48.967" Score="30" ViewCount="" Body="&lt;p&gt;Shutting these things out is the wrong approach.  These are all things that need to be managed rather than hiding from them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First thing to understand is that you're not the only person with pressures being placed upon you - the Sales people, your managers and so on all have things they need to get done and people putting pressure on them.  Your job is not just to cut code, it's to work as part of a team and support others where they need it in the way you want / need support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start by talking to your manager and explaining your approach and saying what you're doing and why.  Once you agree the two of you can speak to the sales people and explain what's going to happen and given them a chance to comment.  Let everyone state their needs up front and agree and approach that does it's best to give everyone what they need.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As part of this you may work from home, a coffee shop, wherever, but agree it, don't just go radio silent.  People will only work harder to interrupt you because they won't know why you're not responding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This whole thing need only take a few hours to do - much less than the time it's going to save you.  Look at it as an investment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As part of this agree regular progress updates to everyone who is interested - just bullet point e-mails at the end of the day so they know what's happening and don't have to pester you.  Make sure you stick to this schedule so they don't have a reason to bug you.  If they do anyway you speak to your manager and politely ask him to have people respect the original plan (or agree a new one).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the rest of the team just send out a mail saying &quot;Hey guys, working on a project with a really tight deadline at the moment so sorry if I'm being silent.  If there's anything critical you know where to find me, if not then if you can hold off for a couple of weeks I'd appreciate it.&quot;  A two minute mail which will stop &lt;em&gt;*&lt;/em&gt;* loads of interruptions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond that redirecting your phone to voicemail and closing e-mail is perfectly fine - just check them a few times a day (first thing, lunch time and last thing works).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the short version is communicate with people.  You don't exist in a vacuum and trying to create one won't work because you're giving no-one any reason to respect it.  You'll be a more productive developer if you work to remove the issues around you rather than trying to hide from them.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-05T11:55:48.967" CommentCount="4" />
  <row Id="17084" PostTypeId="2" ParentId="17081" CreationDate="2010-11-05T12:01:56.490" Score="4" ViewCount="" Body="&lt;p&gt;One step I went through in my years was asking myself if I truly understand what I am doing. I mean, do you know how the web works? Do you know about the http protocol, GETs and POSTs mechanics, or you just know that &quot;that stuff gets executed when the button is pressed&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you know html, its meaning and the semantics? Do you know how a page must be structured to be well formed and make sense? Do you know how ajax works? Do you know theory and practical use of css?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These and many other things. That's because Asp.NET (with webforms engine) tends to hide away everything. That's what we call an &quot;abstraction&quot;, but in this case it's a leaky abstraction, and a very poor one in my advice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing you can do to improve and see if you really are good, keep working in Asp.Net but switch to MVC framework. Get things done with it. It embraces the web, where webforms hides it. If you can work successfully with MVC and produce quality stuff, you're on the right track.&lt;/p&gt;&#xA;" OwnerUserId="3426" LastActivityDate="2010-11-05T12:01:56.490" />
  <row Id="17085" PostTypeId="2" ParentId="17079" CreationDate="2010-11-05T12:04:51.857" Score="1" ViewCount="" Body="&lt;p&gt;Your process seems fine to me. You did not describe it in details, but a least, roles are respected (this is important).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, with the few details I have, I can see some problem at the product owner level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He/she should ensure that the customer is properly notified of the progress. Looks like he is doing &quot;waterfall&quot; externally with the customer and &quot;scrum&quot; internally with you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Result&lt;/em&gt;: waterfall wins since customer is king. Even if in this case, the customer has his responsability...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your current team (including Scrum Master), should focus on delivering the sprint backlog. However the product owner (analyst) should ensure that what is in his/her backlog reflects what the customer want. She/he should also ensure that the communication is good and that the customer participate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Possible solution&lt;/strong&gt;: send your product owner (analyst) to a &lt;a href=&quot;http://www.scrumalliance.org/pages/certified_scrum_product_owner&quot; rel=&quot;nofollow&quot;&gt;Scrum Product Owner course&lt;/a&gt;, or make him/her read (and understand) this book: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321605780&quot; rel=&quot;nofollow&quot;&gt;Agile Product Management with Scrum&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-05T12:42:57.017" LastActivityDate="2010-11-05T12:42:57.017" CommentCount="3" />
  <row Id="17086" PostTypeId="2" ParentId="17081" CreationDate="2010-11-05T12:11:22.950" Score="1" ViewCount="" Body="&lt;p&gt;i attempted a free paper from expertrating.com once, and found it really challenging(rather eye-opening:) ), with my level of knowledge in asp.net at that time. i recommend if they are still offering free tests, but take your own decision if you need to pay for it.&lt;/p&gt;&#xA;" OwnerUserId="4338" LastActivityDate="2010-11-05T12:11:22.950" />
  <row Id="17087" PostTypeId="2" ParentId="17079" CreationDate="2010-11-05T12:19:03.187" Score="0" ViewCount="" Body="&lt;p&gt;Scrum works best with a real client in place.  There are a couple real challenges in dealing with clients who aren't used to iterative product design.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The blank sheet syndrome&lt;/li&gt;&#xA;&lt;li&gt;Scared client syndrome&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Design stages with a blank sheet tend to go pie in the sky really quickly, and typically go into great depth on a couple side issues and not enough depth on the core functionality needed.  You really need a straw man for the client to pick apart for the design meetings to go successfully.  By focusing on just one aspect at a time, you are helping your client learn iterative design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scared clients (like you had with your experience) don't realize that agile projects anticipate a certain (controlled) amount of rework as part of the process.  What they have a hard time grasping is that as the product development moves forward, there will be fewer &quot;Oh my god&quot; moments.  More importantly, the part most clients have a hard time with is that the &quot;Oh my god&quot; moments don't require butt-loads of money to fix because of the short time between review/planning cycles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Managing client expectations is very difficult.  Its a fine balance of customer education, placating, and even learning to say &quot;no&quot;.  The client can't always come weekly or biweekly.  Sometimes they can only come once a month.  That's OK.  As long as you show them what you did to address their concerns the previous month, then focus on this month's work, it will go a long way to making the project go more smoothly.  Bottom line is, in the customer's absence you do have someone who can make reasonable recommendations for some questions.  It does need to be someone familiar with the goals the client is trying to achieve.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-11-05T12:19:03.187" />
  <row Id="17088" PostTypeId="2" ParentId="17081" CreationDate="2010-11-05T12:19:27.320" Score="1" ViewCount="" Body="&lt;p&gt;Go to StackOverflow.com and start answering and asking ASP.NET questions. And it's not just the points, but the feedback is very valuable. Unfortunately, there isn't anything built in where you can get a pecentage of questions you can answer or their level of complexity.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-05T12:19:27.320" />
  <row Id="17089" PostTypeId="2" ParentId="17036" CreationDate="2010-11-05T12:23:49.617" Score="2" ViewCount="" Body="&lt;p&gt;Sphinx is a voice recognition program written in Java that I have used with some success. It includes the source code, so it would be ideal for an example application if you like having code to look at. I can't recommend any books or tutorials, though; I've had a difficult time finding them myself!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://cmusphinx.sourceforge.net/sphinx4/&quot; rel=&quot;nofollow&quot;&gt;http://cmusphinx.sourceforge.net/sphinx4/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-05T12:23:49.617" />
  <row Id="17090" PostTypeId="2" ParentId="16980" CreationDate="2010-11-05T12:35:42.833" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Even worse, &lt;strong&gt;there's no formal&#xA;  contract&lt;/strong&gt; (I'm overseas so it would&#xA;  be quite complex) so I can't &quot;enforce&quot;&#xA;  payments.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's a serious error. Without a contract you are defenseless against some unethic practises as unpayment. I think you should rethinking the importance of the contract, and go through it: the complexity worth three months of your job.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I'm still kind of inexperienced with&#xA;  freelance work so I ask you: is this&#xA;  situation normal? Should I just&#xA;  terminate this client? Or am I being&#xA;  too whiny?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No, it's not normal. For our bad, it's becoming very usual, but it shouldn't be. And, if you can afford it, and you have some coertion power (as in if you leave, they would have problems to finish your work), you should tell them an ultimatum.&lt;/p&gt;&#xA;" OwnerUserId="5717" LastActivityDate="2010-11-05T12:35:42.833" />
  <row Id="17091" PostTypeId="2" ParentId="17068" CreationDate="2010-11-05T12:37:09.567" Score="2" ViewCount="" Body="&lt;p&gt;Jon Hopkins got it right in that you have to try to control it instead of avoid it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm lucky. My manager has to deal with all this stuff and reluctantly interupts me. I can go an entire day without speaking to him and we work in the same office. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A do work in a noisy area and that's why I've invested in the best set of headphones I could afford and subscribe to Rhapsody. I'll go out of my way to interact with others to avoid the isolation. This happens during my coffee breaks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I reserve a conference room for myself when given larger problems. I use the dry erase board and take pictures of it using Evernote on my cellphone. The large table allows me to spread documents, diagrams and notes out so &quot;I can get the big picture&quot;. You have to use that business slang when asked why you need the room. If that doesn't work, try synergy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I failed to get our company to adopt the communicator add-on to exchange server for IM. This would give me more control over email where everyone thinks you should respond immediately since we have pop ups. I needed a way to say I'm busy on the chat indicator. I also planned on working more from home, so everyone would know I was available without having to check on me or call me on the phone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next week I start training classes and have to get ready for large project. We'll see if I can maintain.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-05T12:37:09.567" CommentCount="1" />
  <row Id="17092" PostTypeId="2" ParentId="17030" CreationDate="2010-11-05T12:39:09.527" Score="1" ViewCount="" Body="&lt;p&gt;Singletons provide a convenient solution for obtaining globally accessible data that is expensive to initialize.  When initialization is not expensive, it's probably better to do it eagerly to prevent some of the threading issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the downsides of a Singleton go away if, after initialization, the object contains no mutable state.  While it is technically a global variable, it doesn't create any threading issues beyond the issue of initialization thread safety.  It also doesn't allow for implicit sharing of mutable state between seemingly unrelated parts of a program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The multithreaded initialization problem can be solved efficiently via the following pattern, which uses thread local storage and has apparently been independently invented several times, including by myself.  Here's an example in D, where static variables are by default thread local unless tagged with &lt;code&gt;shared&lt;/code&gt; or &lt;code&gt;__gshared&lt;/code&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Singleton {&#xA;    private __gshared Singleton mySingleton;  // Not thread local&#xA;    private static bool initialized;  // Thread local.&#xA;&#xA;    Singleton getInstance() {&#xA;        if(initialized) return mySingleton;&#xA;&#xA;        synchronized(Singleton.classinfo) {&#xA;            if(!mySingleton) mySingleton = new Singleton;&#xA;            initialized = true;&#xA;            return mySingleton;&#xA;        }  &#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Basically, what you're doing here is caching the initialization state in thread local storage, so that you only have to synchronize once for each thread in the program.  Thread local storage is cheap to access, much cheaper than taking even an uncontested lock.  Thus, you get thread safety and efficiency simultaneously.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-05T12:39:09.527" />
  <row Id="17093" PostTypeId="2" ParentId="17079" CreationDate="2010-11-05T12:41:55.727" Score="0" ViewCount="" Body="&lt;p&gt;Ideally the product owner has some level of authority and knowledge about the project. This same thing could have happened if the client assigned a lower-level employee who was then over-ruled at a later phase requiring you to nearly start over.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-05T12:41:55.727" />
  <row Id="17094" PostTypeId="2" ParentId="17081" CreationDate="2010-11-05T12:43:32.150" Score="6" ViewCount="" Body="&lt;p&gt;You could take a practice exam for the &lt;a href=&quot;http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-515&amp;amp;locale=en-us&quot; rel=&quot;nofollow&quot;&gt;Microsoft Certification&lt;/a&gt;.  That would give you a good idea of what you know and what areas of the technology need impovement.  There are several places you can take practices exams and they're free.  Here's &lt;a href=&quot;http://www.measureup.com/catalog/exam.aspx?vid=5&amp;amp;cid=All%20MS%20Practice%20Tests&amp;amp;tid=94&quot; rel=&quot;nofollow&quot;&gt;one&lt;/a&gt; of many.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-11-05T12:43:32.150" CommentCount="2" />
  <row Id="17095" PostTypeId="2" ParentId="16936" CreationDate="2010-11-05T12:48:52.743" Score="1" ViewCount="" Body="&lt;p&gt;I'll have a try at answering the question from the other side. As a junior developer, I would like a manager/team leader who has been around awhile and can help me interface to the business side of things. In many companies IT is a support role, so I wouldn't expect for upper management to really care for what we need to work well. He should have a good bit more credibility than me!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I would still want a &lt;em&gt;programmer&lt;/em&gt; for a manager. If he came up through the coding ranks he also can help me with my programming problems. What's the point of having a manager that you can't take problems to?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Incidentally, the highest I am really excited about getting to is a team leader.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2010-11-05T17:17:16.303" LastActivityDate="2010-11-05T17:17:16.303" />
  <row Id="17096" PostTypeId="2" ParentId="17005" CreationDate="2010-11-05T12:54:33.177" Score="3" ViewCount="" Body="&lt;p&gt;If you want to influence them, talk to them about it outside of the design meeting. Otherwise they are just going to think you are trying to &quot;score points&quot; off them. A lot of people don't ever want to have real discussions in a meeting with an &quot;audience&quot;.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-05T12:54:33.177" />
  <row Id="17097" PostTypeId="2" ParentId="17030" CreationDate="2010-11-05T13:03:21.140" Score="1" ViewCount="" Body="&lt;p&gt;A properly designed object can always be turned into singleton (or context singleton, or be instantiated as many times as you like), while the object designed for being singleton can unlikely be easily turned in anything else. And the overhead on designing the object properly is usually minimal so why have singletons?&lt;/p&gt;&#xA;" OwnerUserId="4676" LastActivityDate="2010-11-05T13:03:21.140" />
  <row Id="17098" PostTypeId="2" ParentId="17053" CreationDate="2010-11-05T13:28:25.600" Score="6" ViewCount="" Body="&lt;p&gt;Java is definitely heavily entrenched in the back office.  All the Java work I've done over the last decade was server-side, with a web-based front end (JSP/Struts/JSF) if needed.  The projects I worked on were business integration-type things, EDI replacement or similar document-processing stuff.  Lots of message queues, RDBMS, and XML.  These are the kinds of things businesses tend to set up around their business model and then simply tweak and maintain until their business model changes (if it ever does).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen very few Swing-based desktop apps, most of them were based on either Eclipse RCP or NetBeans.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-05T13:28:25.600" CommunityOwnedDate="2011-02-04T17:13:07.977" CommentCount="1" />
  <row Id="17099" PostTypeId="1" CreationDate="2010-11-05T13:30:17.213" Score="3" ViewCount="126" Body="&lt;p&gt;After viewing this &lt;a href=&quot;http://www.infoq.com/presentations/Functional-Design-Patterns&quot; rel=&quot;nofollow&quot;&gt;video on InfoQ about functional design patterns&lt;/a&gt; I was wondering what resources are out there on design patterns for non-object orientated paradigms. There are plenty out there for the OO world (GOF, etc, etc) and for architecture (EoEAA, etc, etc) but I'm not aware of what's out there for functional, logic, or other programming paradigms. Is there anything? A comment during the video suggests possibly not - does anyone know better?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(By the way, by design patterns I don't mean language features or data structures but higher level approaches to designing an application - as discussed in the linked video)&lt;/p&gt;&#xA;" OwnerUserId="1362" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:10:44.433" LastActivityDate="2010-11-16T15:10:44.433" Title="Design Pattern Books, Papers or Resources for Non-Object Orientated Paradigms?" Tags="&lt;design-patterns&gt;&lt;functional-programming&gt;" AnswerCount="1" FavoriteCount="4" />
  <row Id="17100" PostTypeId="1" AcceptedAnswerId="17170" CreationDate="2010-11-05T13:34:36.990" Score="18" ViewCount="438" Body="&lt;p&gt;The Single Responsibility Principle states that a class should do one and only one thing.  Some cases are pretty clear cut.  Others, though, are difficult because what looks like &quot;one thing&quot; when viewed at a given level of abstraction may be multiple things when viewed at a lower level.  I also fear that if the Single Responsibility Principle is honored at the lower levels, excessively decoupled, verbose ravioli code, where more lines are spent creating tiny classes for everything and plumbing information around than actually solving the problem at hand, can result.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How would you describe what &quot;one thing&quot; means?  What are some concrete signs that a class really does more than &quot;one thing&quot;?  &lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-12-30T01:51:16.550" Title="Clarify the Single Responsibility Principle." Tags="&lt;design&gt;&lt;object-oriented&gt;" AnswerCount="8" CommentCount="1" FavoriteCount="3" />
  <row Id="17101" PostTypeId="2" ParentId="16954" CreationDate="2010-11-05T13:36:29.960" Score="1" ViewCount="" Body="&lt;p&gt;If you stay there too long, you won't be able to get good paying work doing something else. You can't always work on the cutting edge but if you stay in mainstream programming your job will change over the years. You can make a lot of money in SAP but I don't know that it will last forever and it doesn't sound like you'd want to do it that long anyway.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-05T13:36:29.960" />
  <row Id="17102" PostTypeId="2" ParentId="17100" CreationDate="2010-11-05T13:39:34.900" Score="3" ViewCount="" Body="&lt;p&gt;I don't know if there is an objective scale to it but what would give this away would be the methods - not so much the number of them but the variety of their function. I agree you can take decomposition too far but I wouldn't follow any hard and fast rules about it.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-05T13:39:34.900" />
  <row Id="17103" PostTypeId="2" ParentId="17053" CreationDate="2010-11-05T13:39:39.200" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://code.google.com/webtoolkit/&quot; rel=&quot;nofollow&quot;&gt;GWT&lt;/a&gt; - write, debug and run code in Java and receive nice obfuscated javascript code. AJAX application, fast development, nice hosted mode and other sexy features included&lt;/p&gt;&#xA;" OwnerUserId="4164" LastActivityDate="2010-11-05T13:39:39.200" CommunityOwnedDate="2011-02-04T17:13:07.977" />
  <row Id="17104" PostTypeId="2" ParentId="17053" CreationDate="2010-11-05T13:48:42.137" Score="1" ViewCount="" Body="&lt;p&gt;It's still being used in the Academia quite a bit ... &lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2010-11-05T13:48:42.137" CommunityOwnedDate="2011-02-04T17:13:07.977" CommentCount="1" />
  <row Id="17105" PostTypeId="1" AcceptedAnswerId="17133" CreationDate="2010-11-05T13:49:13.250" Score="8" ViewCount="316" Body="&lt;p&gt;Lets say you are somewhere where coding and getting online isn't possible (On a busy flight, for example)what do you do to stay productive?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things I would do are read whatever tech book I am currently slogging through and maybe doodle some UI stuff or workflows.  What else could I be doing?&lt;/p&gt;&#xA;" OwnerUserId="5010" LastActivityDate="2010-11-06T13:06:38.490" Title="Being productive during downtime." Tags="&lt;productivity&gt;&lt;downtime&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="3" />
  <row Id="17106" PostTypeId="2" ParentId="17005" CreationDate="2010-11-05T13:49:19.537" Score="0" ViewCount="" Body="&lt;p&gt;When met with the &quot;that will never happen&quot; scenario, remind them of all the times in the past when they had to fix those &quot;that will never happen&quot; items. But you have to be careful not to come across as &quot;I told you so.&quot; I find it most effective to bring up past problems (and how expensive and painful they were to fix) in discussing why you think that we should do something now for this project as examples of why you think this important before they bring of the &quot;that will never happen&quot; quote.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think perhaps your problem is you say you casually mention a way to avoid a problem, Perhaps you should come armed with more information and show them in more detail why this is a risk to the system. Sometimes that means bring up the subject in a second meeting after you have had time to do a little research. Build a business case for how cheap it is to do now vice how expensive it is to do later. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-05T13:49:19.537" CommentCount="1" />
  <row Id="17108" PostTypeId="2" ParentId="17105" CreationDate="2010-11-05T13:54:32.573" Score="21" ViewCount="" Body="&lt;p&gt;Why not use that slack to &lt;strong&gt;relax&lt;/strong&gt; and &lt;a href=&quot;http://zenmindfulness.org/&quot; rel=&quot;nofollow&quot;&gt;free your mind&lt;/a&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are 100% of your time busy, thinking, working, inventing, etc, &lt;strong&gt;THAT&lt;/strong&gt; will makes you less productive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;EDIT: Even in World Of Warcraft you &lt;strong&gt;have to&lt;/strong&gt; rest ;)&lt;/em&gt; (no I don't play wow, but I feel it's a good example)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-06T11:16:49.913" LastActivityDate="2010-11-06T11:16:49.913" CommentCount="3" />
  <row Id="17109" PostTypeId="2" ParentId="17105" CreationDate="2010-11-05T14:00:03.673" Score="1" ViewCount="" Body="&lt;p&gt;If I'm not relaxing then I personally:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Write some more of my technical book (&quot;Hi Editor!&quot;)&lt;/li&gt;&#xA;&lt;li&gt;Read tech books/articles etc that I save up for such journeys&lt;/li&gt;&#xA;&lt;li&gt;Read stuff that's completely outside of my field (broaden that mind)&lt;/li&gt;&#xA;&lt;li&gt;Update my personal Kanban board&lt;/li&gt;&#xA;&lt;li&gt;Write up a bunch of lightning talks, presentations &amp;amp; blog posts that I want to give in the future&lt;/li&gt;&#xA;&lt;li&gt;Talk to my wife about user experience design&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-05T14:00:03.673" />
  <row Id="17110" PostTypeId="2" ParentId="17105" CreationDate="2010-11-05T14:02:49.567" Score="9" ViewCount="" Body="&lt;p&gt;There's a chinese saying, &quot;resting is for the purpose of travelling a further distance&quot;.&lt;/p&gt;&#xA;" OwnerUserId="2262" LastActivityDate="2010-11-05T14:02:49.567" CommentCount="2" />
  <row Id="17111" PostTypeId="1" CreationDate="2010-11-05T14:04:10.537" Score="3" ViewCount="51" Body="&lt;p&gt;We are starting the process of internationalizing our software. To do this we will be writing a series of filters to convert all of our different resource files (resx, text, java resource, etc) into a common format. We will then be outputting xliff files for translation. After translation the process will run in reverse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We would like to keep the central store updated with any changes that developers make to the resource files ideally using ant during the build process, maintaining knowledge of which branch or version of the software is using which resources. We'd also like to keep track of which version of software the resources were taken from which are sent for translation, the dates when the files were sent and received back and also who translated them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea then being we apply the translations to the correct branch, we can take diffs of the central store in future to send partial resources for translations and we can report on quantity of translation at a point in time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are considering storing all of this data within the svn repository as a tree of xliffs, perhaps branched in a mirror of the main code repository. Is this sufficient or would we be better off just using a database to maintain this information?&lt;/p&gt;&#xA;" OwnerUserId="7092" LastActivityDate="2010-11-05T14:11:47.553" Title="What is the best way of storing centralised data for (and from) translation?" Tags="&lt;internationalization&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="17112" PostTypeId="2" ParentId="17052" CreationDate="2010-11-05T14:05:48.967" Score="1" ViewCount="" Body="&lt;p&gt;If you are writing it for yourself first and you already have a Nokia Symbian device - go with what you have and know.  Too many times we get caught up with what &quot;could have been&quot; and never get anything developed.  Build your app to your needs and once you have what you want, then worry about marketing/selling it.  A good app is a good app and if you find it useful, chances are other people will to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, iPhone development has a steep upfront cost - you will have to own a Mac and you can build a Windows PC for 1/2 as much for Nokia/Android/Java dev.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want the most cross-platform capability - go with Java ME platform.  &lt;a href=&quot;http://www.oracle.com/technetwork/java/javame/overview/index.html&quot; rel=&quot;nofollow&quot;&gt;http://www.oracle.com/technetwork/java/javame/overview/index.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is more devices support JavaME than any other.  I also like Karianna's link - cross platform tools may be the future of mobile dev... but I still think the vendors want to maintain control like Apple does with iPhone and Google does with Android.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless, build your app for what you want and then worry about porting/saleing, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck, &#xA;Mike&lt;/p&gt;&#xA;" OwnerUserId="1789" LastActivityDate="2010-11-05T14:05:48.967" />
  <row Id="17113" PostTypeId="2" ParentId="17100" CreationDate="2010-11-05T14:07:12.780" Score="1" ViewCount="" Body="&lt;p&gt;I always view it on two levels:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I make sure my methods only do one thing and do it well&lt;/li&gt;&#xA;&lt;li&gt;I see a class as a logical (OO) grouping of those methods that represents one thing well&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So something like a domain object called Dog:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Dog&lt;/code&gt; is my class but Dogs can do many things! I might have methods such as &lt;code&gt;walk()&lt;/code&gt;, &lt;code&gt;run()&lt;/code&gt; and &lt;code&gt;bite(DotNetDeveloper spawnOfBill)&lt;/code&gt; (sorry couldn't resist ;p).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If &lt;code&gt;Dog&lt;/code&gt; becomes to unwieldy then I'd think about how groups of those methods can be modeled together in another class, such as a &lt;code&gt;Movement&lt;/code&gt; class, which could contain my &lt;code&gt;walk()&lt;/code&gt; and &lt;code&gt;run()&lt;/code&gt; methods.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's no hard and fast rule, your OO design will evolve over time.  I try to go for a clear cut interface/public API as well as simple methods that do one thing and one thing well.&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2010-11-05T15:07:46.470" LastActivityDate="2010-11-05T15:07:46.470" CommentCount="2" />
  <row Id="17114" PostTypeId="1" AcceptedAnswerId="17117" CreationDate="2010-11-05T14:09:10.860" Score="3" ViewCount="189" Body="&lt;p&gt;My work said that they would pay for some continuing education classes and I was pretty much just wondering what's out there and your experiences with them (if any).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only one I really know of is the &lt;a href=&quot;http://www.oreillyschool.com/&quot; rel=&quot;nofollow&quot;&gt;O'Reilly School of Technology&lt;/a&gt; which seems pretty nice.  Also, you get your certificates from &lt;a href=&quot;http://illinois.edu/&quot; rel=&quot;nofollow&quot;&gt;UIUC&lt;/a&gt; which is a nice bonus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what other continuing education programs are out there?&lt;/p&gt;&#xA;" OwnerUserId="2044" LastActivityDate="2010-11-05T19:26:50.090" Title="What are some continuing education programs for programmers?" Tags="&lt;self-improvement&gt;&lt;programming&gt;&lt;education&gt;" AnswerCount="3" />
  <row Id="17115" PostTypeId="2" ParentId="17111" CreationDate="2010-11-05T14:11:47.553" Score="1" ViewCount="" Body="&lt;p&gt;I've found SVN (or other good source control system with branching and diff tools) to be really good for this (oh and don't forget the power of patch files).  For example, we use it to compare and contrast Jboss Application server configuration files across the various versions they release as well as our modifications.  Using branches and diff we can pretty quickly figure out that X, Y and Z changed in this point release and we can patch on our regular A &amp;amp; B patches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But &lt;em&gt;do&lt;/em&gt; take the time up front to design your branches and your workflow.  Test it out with small examples first, we had to go through a few iterations before we found a logical way of working.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-05T14:11:47.553" CommentCount="2" />
  <row Id="17116" PostTypeId="2" ParentId="10547" CreationDate="2010-11-05T14:12:41.353" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Solving a maze puzzle with multiple leads&lt;/li&gt;&#xA;&lt;li&gt;Building with LEGO pieces&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Following the plan&lt;/li&gt;&#xA;&lt;li&gt;Not following the plan&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Bottom-up approach&lt;/li&gt;&#xA;&lt;li&gt;Inside-out approach&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Cake making, or bakery, cooking etc. &lt;em&gt;(Disclaimer: I've never done any of this)&lt;/em&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you see someone else making something similar, you can probably make something similar, too. It may look different and taste different, though.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-11-05T14:12:41.353" CommunityOwnedDate="2011-01-11T17:58:46.763" />
  <row Id="17117" PostTypeId="2" ParentId="17114" CreationDate="2010-11-05T14:13:34.793" Score="2" ViewCount="" Body="&lt;p&gt;I've used SkillsMatter in London, UK before.  They tend to have hands on courses taught by either the technology inventor(s) or an internationally recognized expert.  I avoid most other training course, especially product/corporate ones where the trainers haven't actually done anything with that technology in the last X years.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-05T14:13:34.793" CommentCount="1" />
  <row Id="17118" PostTypeId="2" ParentId="17099" CreationDate="2010-11-05T14:15:48.230" Score="2" ViewCount="" Body="&lt;p&gt;The best books I have come across that where not about OOP, but about programming in general is the &lt;strong&gt;&lt;em&gt;Art of Computer Programming&lt;/em&gt;&lt;/strong&gt; books (3 books when I bought them - now a 4th released) by Donald Knuth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/The_Art_of_Computer_Programming&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/The_Art_of_Computer_Programming&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few years back I used one of his well taught data processing algorithms to speed up an import/merge of 100,000+ records from about a 20 minutes process down to about 30 secs.... I was just not doing it the right way!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And remember, before they were called Desigh Patterns, we called them Algorithms!&lt;/p&gt;&#xA;" OwnerUserId="1789" LastActivityDate="2010-11-05T14:15:48.230" CommentCount="2" />
  <row Id="17119" PostTypeId="2" ParentId="17105" CreationDate="2010-11-05T14:24:23.297" Score="2" ViewCount="" Body="&lt;p&gt;I'd sleep so that I'm more rested and productive when I get to a more productivity enhancing environment.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-05T14:24:23.297" />
  <row Id="17120" PostTypeId="1" AcceptedAnswerId="17144" CreationDate="2010-11-05T14:31:49.173" Score="2" ViewCount="59" Body="&lt;p&gt;In Java, C and C++ I see people using intensively debugging strategies (because mostly they don't know about TDD). On the other hand, debugging too can help to understand software abstractions. So, when and how do you use debugging in Rails applications?&lt;/p&gt;&#xA;" OwnerUserId="4723" LastEditorUserId="4723" LastEditorDisplayName="" LastEditDate="2010-11-05T14:46:47.710" LastActivityDate="2010-11-05T16:11:28.010" Title="Do you use debugging in rails application? Why, when and how?" Tags="&lt;ruby-on-rails&gt;&lt;debugging&gt;" AnswerCount="1" />
  <row Id="17121" PostTypeId="1" AcceptedAnswerId="17131" CreationDate="2010-11-05T14:38:53.740" Score="5" ViewCount="373" Body="&lt;p&gt;Two examples spring to mind:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;One of the reasons that .Net programmers are encouraged to use .config files instead of the Windows Registry is that .config files are XML and therefore human-readable.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Similarly, JSON is sometimes considered human-readable compared with a proprietary format.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Are human-readable formats actually readable by humans? In the example of configuration data:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The format doesn't change the underlying meaning of the information - in both cases, the data represents the same thing.&lt;/li&gt;&#xA;&lt;li&gt;Both registry and .config file are stored internally as a series 0s and 1s. To that extent, the underlying representaion is equally unreadable by humans.&lt;/li&gt;&#xA;&lt;li&gt;Both registry and .config file require a tool to read, format and display those 0s and 1s and convert them into a format that humans can read. In the case of configuration stored in the Windows Registry, this is a Registry Editor. In the case of XML it could be a text editor or XML reader. Either way, the tool makes the data readable, not the data format.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So, what is the difference between human-readable data formats and non-human-readable formats?&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-11-05T17:44:17.423" Title="What does &quot;Human Readable&quot; mean? Is it a misnomer?" Tags="&lt;terminology&gt;" AnswerCount="10" CommentCount="1" />
  <row Id="17122" PostTypeId="2" ParentId="17121" CreationDate="2010-11-05T14:44:19.413" Score="2" ViewCount="" Body="&lt;p&gt;.config files are much easier to edit (for most people) than the Registry. It's easier to open a dedicated config file, find the relevant data, and make changes without opening the possibility of editing something that will affect other programs.&lt;/p&gt;&#xA;" OwnerUserId="3869" LastActivityDate="2010-11-05T14:44:19.413" />
  <row Id="17123" PostTypeId="2" ParentId="17121" CreationDate="2010-11-05T14:45:19.440" Score="19" ViewCount="" Body="&lt;p&gt;Human Readable means I can open the thing in Notepad if I want to, and change &quot;password=foo&quot; to &quot;password=bar&quot; if I so desire. I don't have to use a proprietary tool to look at or edit the content.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Contrast to a PDF which you cannot edit with a simple text editor - you need a specific tool that knows the format. Or a binary .dat file that came with some application from 25 years ago that you can't read, edit, or understand.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-05T14:45:19.440" CommentCount="5" />
  <row Id="17124" PostTypeId="2" ParentId="17121" CreationDate="2010-11-05T14:46:52.423" Score="1" ViewCount="" Body="&lt;p&gt;I think you may be asking whether &quot;human-readable&quot; as a term is sometimes incorrectly applied, and no-doubt it is.  In the example of registry entries vs .config files, I think it helps that you can arrange the XML in different ways depending on the data, intersperse comments and so on.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Collections in .config files are generally handled as multiple elements, while it's more difficult in the registry, often as as a MULTI_SZ.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also see more of the configuration data for an application at once - with regedit, to see something that is in a different key you need to navigate to that key, which means you can no longer see the entries you were previously looking at.  With .config files, you can see the entire file at once, even though that file may contain hierarchical data.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-11-05T14:46:52.423" CommentCount="2" />
  <row Id="17125" PostTypeId="2" ParentId="16954" CreationDate="2010-11-05T14:50:40.373" Score="1" ViewCount="" Body="&lt;p&gt;If your interests lie in technology, software development, and writing code, then SAP/ABAP is probably not a good career choice. &lt;strong&gt;However,&lt;/strong&gt; SAP development &lt;em&gt;is&lt;/em&gt; an excellent area for people who like coding but want to learn more about the business side of things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do ABAP development at a large manufacturing company.  At many companies like mine, more and more of the pure technology jobs (coders, system admins, etc) are being outsourced.  This means fewer techy jobs, but also creates a demand for coordinators who know both the techy side and the business side.  ABAP development is an excellent position for cultivating these skills.&lt;/p&gt;&#xA;" OwnerUserId="4260" LastActivityDate="2010-11-05T14:50:40.373" />
  <row Id="17126" PostTypeId="2" ParentId="17005" CreationDate="2010-11-05T14:52:31.550" Score="0" ViewCount="" Body="&lt;p&gt;Sounds like your best bet is to work to get yourself to a Team Lead Position. Use these opportunities to point out to the powers that be that you saw this coming and it could have been avoided. You shouldn't need to sell your current team short in doing so.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-11-05T14:52:31.550" />
  <row Id="17127" PostTypeId="2" ParentId="17121" CreationDate="2010-11-05T14:53:11.210" Score="2" ViewCount="" Body="&lt;p&gt;The easiest checks I can think of that qualify as &quot;human readable&quot; is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;in a location/file that can be easily accessed by external editors (this would make the registry not &quot;human readable&quot;)&lt;/li&gt;&#xA;&lt;li&gt;doesn't use non-displayable characters in the data structure.  If I make an Office 2000 Word doc with the text &quot;test&quot; inside, I might be able to open that in notepad and find the 4 characters &quot;test&quot; somewhere inside, but there will be a whole lot of other stuff around it.&lt;/li&gt;&#xA;&lt;li&gt;While not required, formats that contain descriptive metadata are a plus.  A file that contains &lt;code&gt;JohnSmith|34|T|F&lt;/code&gt; is less friendly than &lt;code&gt;&amp;lt;User&amp;gt;&amp;lt;Name&amp;gt;JohnSmith&amp;lt;/Name&amp;gt;&amp;lt;id&amp;gt;34&amp;lt;/id&amp;gt;&amp;lt;isActive&amp;gt;T&amp;lt;/isActive&amp;gt;&amp;lt;isAdmin&amp;gt;F&amp;lt;/isAdmin&amp;gt;&amp;lt;/User&amp;gt;&lt;/code&gt;, as know what the fields are (at least generally) in the 2nd.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6989" LastActivityDate="2010-11-05T14:53:11.210" />
  <row Id="17128" PostTypeId="2" ParentId="17053" CreationDate="2010-11-05T14:54:03.640" Score="1" ViewCount="" Body="&lt;p&gt;I don't use the Java language much although I do use the JVM heavily. I use Grails for basic crud apps. The main reason I chose it over Rails or PHP is because it allows me to leverage Java code written by other people at the company I work for. This allows me to avoid having to spend an inordinate amount of time working around a few edge cases which are very specific to the apps I work on since someone in the company has already solved the issue in a jar file I can drop in and call.&lt;/p&gt;&#xA;" OwnerUserId="7094" LastActivityDate="2010-11-05T14:54:03.640" CommunityOwnedDate="2011-02-04T17:13:07.977" />
  <row Id="17129" PostTypeId="2" ParentId="17105" CreationDate="2010-11-05T15:07:06.413" Score="2" ViewCount="" Body="&lt;p&gt;I'd break up the available time:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;1/4 Rest&lt;/li&gt;&#xA;&lt;li&gt;1/4 do something fun&lt;/li&gt;&#xA;&lt;li&gt;1/4 do something creative&lt;/li&gt;&#xA;&lt;li&gt;1/4 read something technical.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-05T15:07:06.413" />
  <row Id="17130" PostTypeId="2" ParentId="17059" CreationDate="2010-11-05T15:07:18.800" Score="5" ViewCount="" Body="&lt;p&gt;A good designer can design for simplicity &lt;strong&gt;or&lt;/strong&gt; flexibility &lt;strong&gt;or&lt;/strong&gt; efficiency &lt;strong&gt;or&lt;/strong&gt; robustness.  A great designer has a deep understanding of the tradeoffs involved and can effectively balance all of these and come up with a solution that satisfies all of them reasonably well.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-05T15:07:18.800" CommentCount="1" />
  <row Id="17131" PostTypeId="2" ParentId="17121" CreationDate="2010-11-05T15:09:37.577" Score="12" ViewCount="" Body="&lt;p&gt;Human readable basically means that if the content is displayed by a program that lacks direct, specific awareness of that file's format, that there's at least a reasonable chance that a person can read and understand at least some of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your basic point about the lack of a clear line of delineation is absolutely correct though --at one time I knew a guy who could diagnose problems with programs (mostly written in Fortran) often in five minutes or less -- going only from an octal core dump, without looking at the source code at all. For most people, that format would hardly qualify as &quot;human readable&quot;, but obviously he was an exception...&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-05T15:09:37.577" CommentCount="1" />
  <row Id="17132" PostTypeId="2" ParentId="17105" CreationDate="2010-11-05T15:20:34.100" Score="0" ViewCount="" Body="&lt;p&gt;You could take out your notepad and review your apps design and architecture. Sometimes looking at it after a while helps you see additional venues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're developing in one of the &quot;framework intensive&quot; langs, like C# or Java, you could explore some pieces of the framework, or just read about langugage syntactic sugar that you didn't have time to check out before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having gained additional mastery of your development platform will make you more productive once you're back in work environment.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-05T15:20:34.100" />
  <row Id="17133" PostTypeId="2" ParentId="17105" CreationDate="2010-11-05T15:21:58.670" Score="6" ViewCount="" Body="&lt;p&gt;I keep technical videos on my laptop for these times. On a short flight, my preference is just to sleep. I am more likely to watch the videos during all the interminable waiting that surrounds a flight, when you can't safely fall asleep, or on a long flight if I wake up and get bored, or if I am staying awake waiting for a meal. Today I'll be giving  &lt;a href=&quot;http://blogs.msdn.com/b/mark/archive/2010/11/03/pdc10-downloader.aspx&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com/b/mark/archive/2010/11/03/pdc10-downloader.aspx&lt;/a&gt; some exercise stocking up on just-released PDC videos before my transatlantic flight tomorrow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For years I spent time every week at events for my kids where there was no wifi but I didn't have any real duties - I bring the child, I can watch if I want, but there's nothing I need to do. I developed the habit of saving certain of my todo's for that time. Revewing a document someone else wrote, or typing in a stack of paper notes I took during a meeting, or making a good copy in Visio of a diagram from a whiteboard that I photographed, that sort of thing. These are also highly interruptable should my child suddenly do something interesting that I want to pay attention to. If you have this kind of downtime regularly, pay attention as you go through your regular workload and ask yourself &quot;could I save this for Tuesday night?&quot;.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-05T15:21:58.670" />
  <row Id="17134" PostTypeId="2" ParentId="17121" CreationDate="2010-11-05T15:22:26.317" Score="5" ViewCount="" Body="&lt;p&gt;In response to your question &quot;Are human-readable formats actually readable by humans&quot;, by definition yes they are, that's what human readable means.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There isn't a technical definition of human readable, it's subjective and there might be questions about what level of knowledge the human might need to have to qualify (for instance do they need to understand the very basic principals of XML such as tags and hierarchies, should they understand the business domain the data exists in - personally I'd say yes to both) but your basic test should be if I showed it to someone with basic technical skills who understood the basics of what the data was meant to represent it, can they read it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a practical level this will generally mean the following:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) The data is stored as ASCII text or some other similarly common and easily recognisable format&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) That there is a reasonable structure that is self evident from a basic examination.  For instance you don't have to know that the first X characters related to Y, then the next X relate to Z&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) That both the data and the meta data generally are in English (or whatever your local language is) and require only limited knowledge of the problem domain to understand - so an invoice number would be in an &quot;invoiceNumber&quot; tag, rather than &quot;uDef_Inbr&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) For non-text data sensible, predictable conventions have been used (for instance TRUE, FALSE, Y, N, 1, 0 rather than something more open to interpretation)&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-05T15:28:13.340" LastActivityDate="2010-11-05T15:28:13.340" />
  <row Id="17135" PostTypeId="2" ParentId="17100" CreationDate="2010-11-05T15:24:16.780" Score="0" ViewCount="" Body="&lt;p&gt;It's about having one unique &lt;strong&gt;rôle&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each class should be resumed by a role name.&#xA;A role is in fact a (set of) verb(s) associated with a context.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example : &lt;/p&gt;&#xA;&#xA;&lt;p&gt;File provide a file's access.&#xA;FileManager manage File objects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Resource hold data for one resource from a File.&#xA;ResourceManager hold and provide all Resources.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here you can see that some verbs like &quot;manage&quot; imply a set of other verbs. Verbs alone are better thought as functions than classes, most of the time. If the verb imply too much actions that have their own common context, then it should be a class in itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, the idea is only to let you have a simple idea of what does the class by defining a unique role, that might be the agregate of several sub-role (performed by member objects or other objects).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I often build Manager classes that have several different other classes in it. Like a Factory, a Registry, etc.&#xA;See a Manager class like some kind of group chief, a orchestra chief that guide other peoples to work together to achieve a high level idea. He have one role, but imply working with other unique roles inside.&#xA;You can also see it like how a company is organized : a CEO isn't a productive one on the pure productivity level, but if he is not there, then nothing can work correctly together. That's his role.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you design, identify unique roles. And for each role, again see if it can't be cut in several other roles. That way, if you need to simlpy change the way your Manager build objects, simply change the Factory and go with peace in mind.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-11-05T15:24:16.780" />
  <row Id="17136" PostTypeId="1" AcceptedAnswerId="17149" CreationDate="2010-11-05T15:29:06.620" Score="7" ViewCount="392" Body="&lt;p&gt;...in percentage. For example 60/40 or 90/10 or 100/0.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My hypothesis is that the bigger the proportion of time you spend thinking the smaller your code can be as a result (and the less time will be needed to write it down). Think more, write less, in other words. Do you think it is true?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a side note, I think in typical software companies thinking is not part of the culture anyway: you are usually supposed to be sitting there at your computer &lt;em&gt;typing&lt;/em&gt; something. You will almost definitely be noticed by your managers if you wander about with a blank look thinking over your next steps with your code. Too bad.&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2011-05-20T18:49:55.640" Title="How is your working time distributed between coding and thinking?" Tags="&lt;coding&gt;" AnswerCount="12" CommentCount="6" />
  <row Id="17137" PostTypeId="2" ParentId="17121" CreationDate="2010-11-05T15:31:51.820" Score="2" ViewCount="" Body="&lt;p&gt;It's all about ease of understanding (and likely changing).  So &quot;Is X human readable?&quot; shouldn't be answered with a &quot;yes&quot; or a &quot;no&quot;.  Rather, the answer should be along some sort of sliding scale.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Potential examples: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;90% of programmers could read and change the file with any common text editor.&lt;/li&gt;&#xA;&lt;li&gt;60% of English speakers could read the file with any common text editor.&lt;/li&gt;&#xA;&lt;li&gt;80% of XYZ developers could read and change the file, but only using tool ZYX.&lt;/li&gt;&#xA;&lt;li&gt;10% of YZX developers could read and change this file with a common text editor.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Outside of a context that explains what &quot;human readable&quot; really means, the phrase doesn't help all that much.  (Some human somewhere can probably read any of the formats, if you don't count trying to look at the magnetic polarity of the hardware bits themselves...)&lt;/p&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-11-05T15:31:51.820" />
  <row Id="17138" PostTypeId="2" ParentId="17136" CreationDate="2010-11-05T15:40:53.140" Score="10" ViewCount="" Body="&lt;p&gt;As with anything else, it depends&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the beginning of something, the majority of time is spent thinking and planning how to code it. Once you have the plan in place, most of the time is spent coding.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-11-05T15:40:53.140" CommentCount="1" />
  <row Id="17139" PostTypeId="2" ParentId="17136" CreationDate="2010-11-05T15:42:19.757" Score="1" ViewCount="" Body="&lt;p&gt;When I plan out a problem in detail before starting to code it, I find that I make way fewer revisions. I think it takes a lot of discipline to not go straight into the code, but is worthwhile. Unfortunately, as you have noted, most non programmers do not understand that time away from a computer to plan and think first might actually speed up and improve a task.&lt;/p&gt;&#xA;" OwnerUserId="6527" LastActivityDate="2010-11-05T15:42:19.757" CommentCount="1" />
  <row Id="17140" PostTypeId="2" ParentId="16936" CreationDate="2010-11-05T15:44:35.997" Score="0" ViewCount="" Body="&lt;p&gt;I think that the programmers who turn into mangager are simply those who are not that good at programming anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are stuck with writing code without any intellectual level, programming quickly becomes boring, you end up doing repetitive tasks. Such programmers usually are more productive when they use tools that generates the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good programmers usually advance from that point sooner or later, but bad programmers will always see coding as adding more lines to a source file. Like building a brickwall. Sooner or later they want to become managers so they can manage other &quot;programmers&quot; to do the boring work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are a good programmer, you never get bored with programming. &lt;/p&gt;&#xA;" OwnerUserId="7098" LastActivityDate="2010-11-05T15:44:35.997" CommentCount="1" />
  <row Id="17141" PostTypeId="2" ParentId="17136" CreationDate="2010-11-05T15:47:36.777" Score="2" ViewCount="" Body="&lt;p&gt;Shorter code is generally better but not always.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why punish a developer who has increased fluency through experience and knows exactly what they are doing? Every line of code doesn't have to be your first rodeo. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't assume because I'm typing that I'm not thinking. Typing doesn't take that much mental effort. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Planning is very important, but not to be confused with thinking about your code.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-05T15:47:36.777" CommentCount="1" />
  <row Id="17142" PostTypeId="2" ParentId="17136" CreationDate="2010-11-05T15:47:49.007" Score="1" ViewCount="" Body="&lt;p&gt;I'm pretty sure I understand your distinction between thinking and coding.  But, why stop thinking when you start coding?   Hopefully, typing doesn't take so much effort that you can't think at the same time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that it works well to think for a while about the direction I should head, then start coding while I think about more of the less significant details.&lt;/p&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-11-05T15:47:49.007" />
  <row Id="17143" PostTypeId="2" ParentId="16936" CreationDate="2010-11-05T15:56:16.467" Score="1" ViewCount="" Body="&lt;p&gt;This may answer your question - the Deep Dark Secret of Silicon Valley:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://techcrunch.com/2010/08/28/silicon-valley%E2%80%99s-dark-secret-it%E2%80%99s-all-about-age/&quot; rel=&quot;nofollow&quot;&gt;http://techcrunch.com/2010/08/28/silicon-valley%E2%80%99s-dark-secret-it%E2%80%99s-all-about-age/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4378" LastActivityDate="2010-11-05T15:56:16.467" />
  <row Id="17144" PostTypeId="2" ParentId="17120" CreationDate="2010-11-05T16:11:28.010" Score="1" ViewCount="" Body="&lt;p&gt;Its the same as everything else, you need a debugger when you don't really know where the problem is. This may be more rare if you are using TDD, but if your application is fairly complex you will never have 100% test coverage. I do find with Rails that I don't really need an integrated debugger, the console is enough.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-05T16:11:28.010" />
  <row Id="17145" PostTypeId="2" ParentId="17114" CreationDate="2010-11-05T16:11:52.230" Score="-3" ViewCount="" Body="&lt;p&gt;There's also this &lt;a href=&quot;http://tinyurl.com/63tmyk&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;&lt;em&gt;great website&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; for on-going peer support in learning : &lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-05T16:11:52.230" CommentCount="3" />
  <row Id="17146" PostTypeId="2" ParentId="17053" CreationDate="2010-11-05T16:12:35.060" Score="1" ViewCount="" Body="&lt;p&gt;If you write for the Google Application Engine you can choose between Python and Java.  No .NET.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-05T16:12:35.060" CommunityOwnedDate="2011-02-04T17:13:07.977" />
  <row Id="17147" PostTypeId="2" ParentId="17079" CreationDate="2010-11-05T16:14:22.700" Score="3" ViewCount="" Body="&lt;p&gt;It was only a few weeks ago that &lt;a href=&quot;http://blog.mountaingoatsoftware.com/avast-combining-the-scrummaster-and-product-owner-matey&quot; rel=&quot;nofollow&quot;&gt;Mike Cohn wrote about combining scrum master and product owner roles on his blog.&lt;/a&gt;  I don't think I can put it any better than he did, but my short summary of his post is this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it's a bad idea&lt;/li&gt;&#xA;&lt;li&gt;SM and PO perform very different kinds of tasks (&quot;star tasks&quot; and &quot;guardian tasks&quot; in Cohn's words)&lt;/li&gt;&#xA;&lt;li&gt;the person combining the two roles is unlikely to be a good fit for all tasks involved in both roles&lt;/li&gt;&#xA;&lt;li&gt;the team may be hurt by the combined SM/PO neglecting the tasks they are not the best at.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think there is nothing wrong per se with taking any member of a scrum team and moving him/her to Product Owner.  But you have to realize that it's like a promotion or an internal transfer; it creates a hole in the team and the hole needs to be filled.  Maybe the team can &quot;self-reorganize&quot; to fill the hole; maybe it needs to hire a new employee to fill the vacant position.&lt;/p&gt;&#xA;" OwnerUserId="464" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-11-06T21:57:52.377" LastActivityDate="2010-11-06T21:57:52.377" />
  <row Id="17148" PostTypeId="2" ParentId="17068" CreationDate="2010-11-05T16:18:03.493" Score="0" ViewCount="" Body="&lt;p&gt;When I am trying to crunch, I simply deprioritize the interruptions with an explanation that boils down to this: &quot;Sorry, I have releasing coming up. I can only spend time on critical things right now&quot;.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-05T16:18:03.493" />
  <row Id="17149" PostTypeId="2" ParentId="17136" CreationDate="2010-11-05T16:18:09.997" Score="8" ViewCount="" Body="&lt;p&gt;I code in last resort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Say 50% thinking, 50% coding including 10% implementation and 40% debugging.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-11-05T16:18:09.997" CommentCount="5" />
  <row Id="17150" PostTypeId="2" ParentId="17136" CreationDate="2010-11-05T16:20:16.747" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;How is your working time distributed between coding and thinking?&lt;/em&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It depends. At this time of the year, I'm mostly doing bug fixes, so thinking is the majority of my work effort. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;As a side note, I think in typical software companies thinking is not part of the culture anyway: you are usually supposed to be sitting there at your computer typing something. You will almost definitely be noticed by your managers if you wander about with a blank look thinking over your next steps with your code.&lt;/em&gt; &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You will find that this attitude is not limited to software companies. It is a widespread phenomenon in American corporate culture. My experience is that managers who spent significant time in the military (or when younger in military styled schooling) pick up a habit of &lt;em&gt;always be working&lt;/em&gt;. If your Seargant catches you not working (and since thinking is not visible to an external viewer, thinking == goofing off), he'll order you to scrub the sidewalks with a toothbrush (or other stupid make-work) just to keep you from goofing off. The all-time worst manager I worked for would intentionally create a crisis in order to make work for you if he catches you doing nothing - and since he was also the owner, he didn't believe that you needed to think about anything, just get it done.&lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-05T16:20:16.747" />
  <row Id="17151" PostTypeId="1" CreationDate="2010-11-05T16:32:38.263" Score="4" ViewCount="200" Body="&lt;p&gt;The best way to get data on computer language popularity that I know is the TIOBE index.  But &lt;em&gt;everyone knows&lt;/em&gt; that TIOBE is hopelessly flawed.  (If someone provides a link to support this, I'll add it here.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So is there any data on programming language popularity that is generally considered meaningful?  The only other option I know is to look at the trends at indeed.com, which is inherently flawed, being based on job postings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It isn't like I would make a future language decision solely based on an index, but it might provide a useful balance to the skewed perspective one obtains by talking to ones friends and colleagues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To illustrate that bias, I'll point out that based on the experience of those I personally know, the only languages used professionally today (in order of popularity) are Java, C#, Groovy, JavaScript, Ruby, Objective C, and Perl.  (Though it is evident that C, C++ and PHP were used in the past.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is, everyone bashes TIOBE, but is there anything else?  If so, can anyone explain how we know the alternative has better methodology?  Thanks.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-11-05T20:03:26.087" Title="What is the best objective way to measure language popularity trends? (What's better than TIOBE?)" Tags="&lt;programming-languages&gt;" AnswerCount="7" />
  <row Id="17152" PostTypeId="2" ParentId="17068" CreationDate="2010-11-05T16:33:49.463" Score="3" ViewCount="" Body="&lt;p&gt;I'm actually doing this right now. There's a project that's time sensitive and requires deep thought/planning - so I moved out of the office for 4 weeks to work from home (where there is no phone to ring or door to be knocked on). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, Jon Hopkins had it right. In my case, I've scheduled a time every friday to meet with certain people to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Update them concerning what I did that week&lt;/li&gt;&#xA;&lt;li&gt;Ask questions that arose in my work&lt;/li&gt;&#xA;&lt;li&gt;Get asked questions that they had over the past week&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Think about it: would your salespeople take a call from you while they're in a sales appointment? Would your boss take a call when he's meeting with stakeholders/the CEO? Does your office secretary take a call when they're dealing with a customer? For everyone, there's a time and a place when &lt;em&gt;things gotta get done&lt;/em&gt;. It just so happens that for some types of jobs, those times are longer than others.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-05T16:33:49.463" CommentCount="1" />
  <row Id="17153" PostTypeId="2" ParentId="17031" CreationDate="2010-11-05T16:36:07.903" Score="3" ViewCount="" Body="&lt;p&gt;The libraries you mentioned should be self contained and do what they are required to do.  The truth of the matter is that due to C++ undefined symbol table, making a C++ binding to these libraries is pointless because different compilers mangle the class method names differently.  That is why API writers have all their APIs exposed as &lt;code&gt;extern &quot;C&quot;&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C is not statically typed, a problem that C++ was designed to solve.  However, it is quite common for a C++ application to have to use C APIs.  In some cases, you really do need to just trust that the API writers are doing the right thing.  When it comes to the Win32, DirectX, OpenGL, libc libraries, chances are that the implementers care about API correctness even more than you do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C has its own rules for modularity and correctness.  Many C programs and APIs use structs for the data and the functions do what they need to depending on what is in that struct.  Your HWND* is a pointer to a struct that describes a window.  It is not the Window object itself.  At some point you are going to have to trust other APIs.  Do your testing to give yourself warm fuzzies, but the bottom line is that C provides the only cross compiler/linker compatibility for your shared libraries and its a fact you'll have to live with.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-11-05T16:36:07.903" CommentCount="5" />
  <row Id="17154" PostTypeId="2" ParentId="1013" CreationDate="2010-11-05T16:36:53.563" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Visual Age for Java&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The predecessor to Eclipse, in the same way that Windows ME was a predecessor to Windows 7.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I never learned to like it...&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-05T16:36:53.563" CommunityOwnedDate="2011-02-01T07:56:02.387" />
  <row Id="17155" PostTypeId="2" ParentId="17068" CreationDate="2010-11-05T16:38:31.347" Score="3" ViewCount="" Body="&lt;p&gt;In such a situation, your manager just &lt;em&gt;has&lt;/em&gt; to shield you from any distractions. Unfortunately, not many managers understand that. To them, 3 interruptions of 2 hours each just delay the product by 6 hours, which can easily be made up for by working overtime.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-05T16:38:31.347" />
  <row Id="17157" PostTypeId="2" ParentId="17151" CreationDate="2010-11-05T16:42:07.167" Score="0" ViewCount="" Body="&lt;p&gt;Google trends is another one you can use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's no 100% correct answer or source of data in this space.  The best you can do is aggregate data from various sources and come up an accurate as possible conclusion from that.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-05T16:42:07.167" />
  <row Id="17158" PostTypeId="2" ParentId="17121" CreationDate="2010-11-05T16:43:26.207" Score="1" ViewCount="" Body="&lt;p&gt;Contrast &quot;human readable&quot; with binary. For example, you can't generally open an executable or a database index in an vanilla text editor and understand what the content is. The bytes below decimal 32 don't even have globally standard representations as visible characters. &lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-11-05T16:43:26.207" />
  <row Id="17159" PostTypeId="2" ParentId="17151" CreationDate="2010-11-05T16:46:20.383" Score="1" ViewCount="" Body="&lt;p&gt;Pretty much for the same reason you have the troubles described here: &lt;a href=&quot;http://blog.timbunce.org/2008/04/12/tiobe-or-not-tiobe-lies-damned-lies-and-statistics/&quot; rel=&quot;nofollow&quot;&gt;http://blog.timbunce.org/2008/04/12/tiobe-or-not-tiobe-lies-damned-lies-and-statistics/&lt;/a&gt; you are going to have similar issues with any other &quot;pretend to say what is popular across many populations&quot; ranking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Units shipped cant be compared with units downloaded&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Taking in-use figures from websites or commercial software shorts languages used in research or math as that stuff is not exposed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing anything with trends or keyword analysis is likely to be trendy or be a buzzword count.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you have a target area in mind it would be difficult to suggest what would be better.  I would guess based on the languages you mentioned you might be interested more on the trendy side, but as a general answer this is not good as there are probably an equal amount of people interested in the lo9ng-term side.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-05T16:46:20.383" />
  <row Id="17161" PostTypeId="2" ParentId="17151" CreationDate="2010-11-05T16:51:02.083" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Want Ads&lt;/strong&gt; - While they may not be the best for the international community, they tend to be a very good measure of the local area where you are working. If you suddenly start seeing a of ads looking for developers who know language &lt;em&gt;x&lt;/em&gt; when there used to be ads looking for developers who know language &lt;em&gt;y&lt;/em&gt; and these trends persist for several months, it can indicate a shift in popularity in your area.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-11-05T16:51:02.083" CommentCount="4" />
  <row Id="17162" PostTypeId="2" ParentId="5597" CreationDate="2010-11-05T16:51:12.117" Score="-1" ViewCount="" Body="&lt;p&gt;If degrees were not worth it, the Universities wouldn't be offering them.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-05T16:51:12.117" CommunityOwnedDate="2011-01-26T20:35:39.517" CommentCount="2" />
  <row Id="17166" PostTypeId="2" ParentId="17121" CreationDate="2010-11-05T16:58:17.950" Score="0" ViewCount="" Body="&lt;p&gt;Short answer: It means the information is entered as text, rather than binary or hex, etc.  Something that equates with a readable &quot;language&quot; rather than a computer &quot;machine language&quot;.  Beyond that, the definition gets murky.&lt;/p&gt;&#xA;" OwnerUserId="7102" LastActivityDate="2010-11-05T16:58:17.950" />
  <row Id="17168" PostTypeId="2" ParentId="5597" CreationDate="2010-11-05T17:09:55.397" Score="0" ViewCount="" Body="&lt;p&gt;I'm in a very similar position as you. Yes, a university education is worth it, and here is my &quot;testimony&quot; as to why: I've done some crazy programming stuff in the past five years and I'm now starting an iPhone app for my company, all self-taught, with the same background as yourself. Recently, I contacted a couple of highly recommended headhunters to see about making the switch from my technical job to being a full-time programmer. In both instances, the conversation with them abruptly stopped—and I mean &lt;em&gt;no&lt;/em&gt; contact—when I had to say &quot;No&quot; to the question &quot;Do you have a college degree?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need this more than you know, and a couple years' more hassle is going to pay dividends long after you've gotten past this.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Keep calm and carry on.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2010-11-05T17:09:55.397" CommunityOwnedDate="2011-01-26T20:35:39.517" />
  <row Id="17169" PostTypeId="2" ParentId="17151" CreationDate="2010-11-05T17:17:38.227" Score="3" ViewCount="" Body="&lt;p&gt;As I've &lt;a href=&quot;http://programmers.stackexchange.com/questions/3726/what-languages-have-their-popularity-inaccurately-represented-in-tiobe&quot;&gt;commented before&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;&quot;but there is no better source to measure language popularity&quot;&lt;/em&gt; --&#xA;  that's because there's no need for&#xA;  one. Nobody with any sense cares about&#xA;  rankings - so long as your language is&#xA;  alive and doing what you need it to,&#xA;  there's no need to worry about a silly&#xA;  arbitrary ranking.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-11-05T17:17:38.227" CommentCount="5" />
  <row Id="17170" PostTypeId="2" ParentId="17100" CreationDate="2010-11-05T17:27:50.520" Score="21" ViewCount="" Body="&lt;p&gt;I really like the way Robert C. Martin (Uncle Bob) &lt;a href=&quot;http://www.objectmentor.com/resources/articles/srp.pdf&quot; rel=&quot;nofollow&quot;&gt;restates the Single Responsibility Principle (linked to PDF)&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;There should never be more than one reason for a class to change&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's subtly different from the traditional &quot;should do only one thing&quot; definition, and I like this because it forces you to change the way you think about your class. Instead of thinking about &quot;is this doing one thing?&quot;, you instead think about what can change and how those changes affect your class. So for example, if the database changes does your class need to change? What about if the output device changes (for example a screen, or a mobile device, or a printer)? If your class needs to change because of changes from many other directions, then that's a sign that your class has too many responsibilities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the linked article, Uncle Bob concludes:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The SRP is one of the simplest of the principles, and one of the hardest to get right. Conjoining responsibilities is something that we do naturally. Finding and separating those&#xA;  responsibilities from one another is much of what software design is really about.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-11-05T17:27:50.520" CommentCount="4" />
  <row Id="17171" PostTypeId="2" ParentId="2715" CreationDate="2010-11-05T17:38:16.013" Score="0" ViewCount="" Body="&lt;p&gt;I find the first option more readable. Never do the third as it can lead to bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As with arguments over &lt;code&gt;underscored_variable_names&lt;/code&gt; and &lt;code&gt;camelCase&lt;/code&gt; though, &lt;strong&gt;the actual choice does not matter much&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Whatever the team or programming language convention is, go along with the stream and follow that convention&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you vary from the convention it will make reading your code slightly harder, as your brain notices the difference instead of skimming along easily.&lt;/p&gt;&#xA;" OwnerUserId="6527" LastEditorUserId="6527" LastEditorDisplayName="" LastEditDate="2011-01-17T07:29:17.530" LastActivityDate="2011-01-17T07:29:17.530" CommunityOwnedDate="2010-11-05T17:38:16.013" />
  <row Id="17172" PostTypeId="2" ParentId="17121" CreationDate="2010-11-05T17:44:17.423" Score="3" ViewCount="" Body="&lt;p&gt;One big difference between human-readable formats and non-human-readable formats is robustness.  In a Linux system, all sorts of information will be scattered around in various text files.  You do need to learn where they are, but you can always find the information and read and change it with a text editor.  If a file disappears, you can generally replace it.  If a file becomes corrupt, you can often figure out what it should be and fix it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a MS Windows system, most of this will be in the Registry, which is, from the users' point of view, one big opaque system, accessible in part through various tools (much like some config files in Linux systems), and overall with a registry editor.  As long as everything goes well, this is okay.  If it breaks, there's nothing that can be done without specialist knowledge.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-05T17:44:17.423" />
  <row Id="17173" PostTypeId="1" AcceptedAnswerId="17191" CreationDate="2010-11-05T17:56:17.567" Score="3" ViewCount="111" Body="&lt;p&gt;I have a common scenario where I have an object (a) that logically affects another object (b), like a makes a note on b, or a marks b as disabled (usually a is a user object of the system and b is some kind of business object like a customer or an appointment).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the past, the method was on the affected object like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;customer.Disable(user); // user is marking the customer as disabled&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;... but it doesn't read well (it appears backwards). The opposite:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;user.Disable(customer);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;... reads better, but there's something about it that I can't put my finger on that just doesn't seem right. The only other option is to have a static intermediary:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;ThirdPartyClass.DisableCustomer(customer, user);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;... but the domain objects end up becoming more like DTOs and I prefer the domain model approach because it makes more sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the question is: which makes the most sense? Is there an option I haven't considered? Who actually owns an operation like this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the second option, the actionable objects in the system (users usually) end up becoming huge because the users of the system are the ones that pretty much do and affect everything.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-11-05T18:01:47.827" LastActivityDate="2010-11-06T20:43:54.363" Title="Most logically consistent way to create methods of the form a affects b?" Tags="&lt;best-practices&gt;&lt;coding-style&gt;&lt;domain-model&gt;" AnswerCount="4" CommentCount="3" />
  <row Id="17174" PostTypeId="2" ParentId="17100" CreationDate="2010-11-05T17:57:52.243" Score="1" ViewCount="" Body="&lt;p&gt;I look at it more along the lines of a class should only &lt;strong&gt;represent&lt;/strong&gt; one thing.  To appropriate @Karianna's example, I have my &lt;code&gt;Dog&lt;/code&gt; class, which has methods for &lt;code&gt;walk()&lt;/code&gt;, &lt;code&gt;run()&lt;/code&gt; and &lt;code&gt;bark()&lt;/code&gt;.  I'm not going to add methods for &lt;code&gt;meaow()&lt;/code&gt;, &lt;code&gt;squeak()&lt;/code&gt;, &lt;code&gt;slither()&lt;/code&gt; or &lt;code&gt;fly()&lt;/code&gt; because those aren't things that dogs do.  They are things that other animals do, and those other animals would have their own classes to represent them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(BTW, if your dog &lt;em&gt;does&lt;/em&gt; fly, then you should probably stop throwing him out of the window).&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-11-05T17:57:52.243" CommentCount="1" />
  <row Id="17175" PostTypeId="2" ParentId="17151" CreationDate="2010-11-05T17:59:29.953" Score="5" ViewCount="" Body="&lt;p&gt;One alternative would be to look at the number of questions for each programming language tag on StackOverflow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I set up a Quick Query to do that: &lt;a href=&quot;http://odata.stackexchange.com/stackoverflow/q/13765/post-count-by-tag&quot; rel=&quot;nofollow&quot;&gt;Post Counts By Tag&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unurprisingly, given the nature of that community,  C# has a considerable lead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course this also is biased against languages that because of ease of use might have fewer people asking questions.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-05T17:59:29.953" CommentCount="4" />
  <row Id="17176" PostTypeId="2" ParentId="17173" CreationDate="2010-11-05T18:04:01.077" Score="3" ViewCount="" Body="&lt;p&gt;&lt;code&gt;user.Disable(customer)&lt;/code&gt; almost seems like it's saying that &lt;code&gt;user&lt;/code&gt; is being disabled, since   &lt;code&gt;user.Disable()&lt;/code&gt; would read like it's acting on the user, not the customer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;user.DisableCustomer(customer)&lt;/code&gt; reads a little better, I think, as it makes it clear that the customer is being disabled.  It also means you don't need an extra class just for the sake of it.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-11-05T18:04:01.077" />
  <row Id="17177" PostTypeId="1" CreationDate="2010-11-05T18:12:36.470" Score="4" ViewCount="317" Body="&lt;p&gt;Just out of curiosity what's the difference between a small, medium and large size project? Is it measured by lines of code or complexity or what?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Im building a bartering system and so far have about 1000 lines of code for login/registration. Even though there's lots of LOC i wouldnt consider it a big project because its not that complex though this is my first project so im not sure. How is it measured?&lt;/p&gt;&#xA;" OwnerUserId="6208" LastEditorUserId="6208" LastEditorDisplayName="" LastEditDate="2010-11-05T18:19:07.820" LastActivityDate="2011-02-19T23:29:47.083" Title="What makes a project big?" Tags="&lt;project&gt;" AnswerCount="10" CommentCount="4" FavoriteCount="1" />
  <row Id="17178" PostTypeId="2" ParentId="17177" CreationDate="2010-11-05T18:16:15.153" Score="5" ViewCount="" Body="&lt;p&gt;A project's size is measured by the degree of unmaintainability.&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-05T18:16:15.153" CommentCount="1" />
  <row Id="17179" PostTypeId="2" ParentId="17177" CreationDate="2010-11-05T18:17:20.880" Score="8" ViewCount="" Body="&lt;p&gt;Complexity. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The more complexity, the harder it is to learn everything in the project.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-05T18:17:20.880" CommentCount="4" />
  <row Id="17180" PostTypeId="2" ParentId="17177" CreationDate="2010-11-05T18:20:05.287" Score="6" ViewCount="" Body="&lt;p&gt;A project size is probably best measured by the number of requirements the system has, where the requirements can't be reduced down further.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, more requirements &lt;em&gt;mostly&lt;/em&gt; means more complexity, but it's not always the case.&lt;/p&gt;&#xA;" OwnerUserId="55" LastActivityDate="2010-11-05T18:20:05.287" CommentCount="8" />
  <row Id="17181" PostTypeId="2" ParentId="15670" CreationDate="2010-11-05T18:22:02.167" Score="2" ViewCount="" Body="&lt;p&gt;Since we are dealing with &lt;code&gt;Task&amp;lt;T&amp;gt;&lt;/code&gt;s, how about using &lt;code&gt;start&lt;/code&gt; as a keyword preceding the statement, as in:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;start var document = FetchAsync(urls[i]);&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="7104" LastActivityDate="2010-11-05T18:22:02.167" CommentCount="1" />
  <row Id="17182" PostTypeId="2" ParentId="16913" CreationDate="2010-11-05T18:33:31.547" Score="2" ViewCount="" Body="&lt;p&gt;In my experience, having a tech person on the business side of things can really be helpful to a company &lt;strong&gt;IF&lt;/strong&gt;, and this is an important &quot;if&quot;, the tech person takes the time to speak the business people's language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, technical awesomeness sometimes has to compromise with UX.  If you want users' money, you have to give them something &lt;em&gt;they&lt;/em&gt; value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It must sometimes compromise with business factors.  Uber-database-awesomeness may make the DB better or performance a bit better, but if licensing it costs more than the company has it can't be implemented.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if the technical awesomeness ever compromises (as it so often does) to the nontechnical leadership's lack of understanding, THEN you have a problem.  Either the business leadership isn't listening (in which case, find a new job), or you aren't doing your job -- part of which is learning to put your expertise into words that they can understand.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-05T18:33:31.547" CommentCount="2" />
  <row Id="17183" PostTypeId="1" CreationDate="2010-11-05T18:34:25.833" Score="4" ViewCount="249" Body="&lt;p&gt;It seems like there are a plethora of methods for dialing in and checking out what's going on on a client's PC.  But they seem to boil down to just 2. Dialing in and checking it out with VNC and Remote Desktop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;VNC seems abysmal with more graphics laden OS's and it sometimes is too much to ask to get a access to a terminal server (especially when the client doesn't have one).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What other methods are out there for connecting with clients to diagnose and fix bugs they they can reproduce, but may not necessarily be able to adequately describe over the phone. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alternatives to VNC and Remote Desktop are appreciated, but really looking for a better way to do it than just to dial in and check it out - or the most effective way to use VNc and Remote Desktop.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2010-11-05T19:38:48.483" LastActivityDate="2011-04-27T10:26:52.247" Title="How do you check bugs on your client's PC's?" Tags="&lt;debugging&gt;&lt;support&gt;&lt;remote-desktop&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="1" />
  <row Id="17184" PostTypeId="2" ParentId="17177" CreationDate="2010-11-05T18:39:59.420" Score="2" ViewCount="" Body="&lt;p&gt;I'd measure a project's size by how difficult it is to see the whole project as a single big picture.  For example, I have an exploratory/prototyping codebase for a machine learning problem I'm working on.  It's only 5k lines of code, but it feels like a huge project.  There are tons of configuration options that interact in unpredictable ways.  You can find just about every design pattern known to man somewhere in the codebase to manage all that complexity.  The design is often suboptimal because the thing grew a lot by evolution and isn't refactored as often as it should be.  I'm the only one that works on this codebase, yet I'm often surprised by how things interact.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, one of my hobby projects has about 3-4x as much code, and yet it feels a lot smaller because it's basically a library of mathematical functions that are mostly orthogonal to each other.  Things don't interact in complex ways, and it's pretty to understand each function in isolation.  It's easy to see the big picture to the extent that there is one, because there's not much of one to see.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-05T18:39:59.420" />
  <row Id="17185" PostTypeId="2" ParentId="2715" CreationDate="2010-11-05T18:49:00.037" Score="0" ViewCount="" Body="&lt;p&gt;Simple answer: what is easier to debug ?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// Case 1:&#xA;void dummyFunction() {&#xA;  for (i = 0; i != 10; ++i) {&#xA;    if (i &amp;lt;= 10)&#xA;      std::cout &amp;lt;&amp;lt; &quot;i is: &quot; &amp;lt;&amp;lt; i &amp;lt;&amp;lt; &quot;\n&quot;;&#xA;      std::cout &amp;lt;&amp;lt; 10 - i &amp;lt;&amp;lt; &quot; steps remaining\n&quot;;&#xA;&#xA;      // Some hard work here&#xA;      // which is really hard&#xA;      // and does take some screen estate&#xA;    }&#xA;    else&#xA;      std::cout &amp;lt;&amp;lt; &quot;We'll never get there&quot;;&#xA;  }&#xA;} // COMPILER ERROR HERE&#xA;&#xA;&#xA;// Case 2:&#xA;void dummyFunction()&#xA;{&#xA;  for (i = 0; i != 10; ++i)&#xA;&#xA;    if (i &amp;lt;= 10)&#xA;    {&#xA;      std::cout &amp;lt;&amp;lt; &quot;i is: &quot; &amp;lt;&amp;lt; i &amp;lt;&amp;lt; &quot;\n&quot;;&#xA;      std::cout &amp;lt;&amp;lt; 10 - i &amp;lt;&amp;lt; &quot; steps remaining\n&quot;;&#xA;&#xA;      // Some hard work here&#xA;      // which is really hard&#xA;      // and does take some screen estate&#xA;    }&#xA;    else&#xA;      std::cout &amp;lt;&amp;lt; &quot;We'll never get there\n&quot;;&#xA;  }&#xA;} // COMPILER ERROR HERE&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In which case did you diagnose the issue first ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't care much for personal preferences (there are many other styles, including whitesmith and al.) and I don't care much... as long as it doesn't hamper my ability to read the code and &lt;strong&gt;debug&lt;/strong&gt; it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to the &quot;waste space&quot; argument, I don't buy it: I tend to add blank lines between logical groups anyway to make the program clearer...&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2010-11-05T18:49:00.037" CommunityOwnedDate="2010-11-05T18:49:00.037" CommentCount="2" />
  <row Id="17187" PostTypeId="1" AcceptedAnswerId="17198" CreationDate="2010-11-05T18:57:14.773" Score="10" ViewCount="462" Body="&lt;p&gt;At work I am currently using the &lt;a href=&quot;http://www.steelcase.com/en/products/category/seating/task/leap/pages/overview.aspx&quot; rel=&quot;nofollow&quot;&gt;Steelcase Leep&lt;/a&gt;. At home I am using a plastic kitchen table chair. That needs to change. My biggest issue with the leap is that the back of the chair is too wide and forces my elbows out to the side instead of a more natural, at my side type of position. Because of this I am considering two chairs:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.hermanmiller.com/Products/Embody-Chairs&quot; rel=&quot;nofollow&quot;&gt;The Herman Miller Embody Chair&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.hermanmiller.com/Products/SAYL-Chairs&quot; rel=&quot;nofollow&quot;&gt;The Herman Miller SAYL Chair&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The Embody has gotten rave reviews but costs over $1000.&lt;br&gt;&#xA;The SAYL is a very new addition to their lineup and I cannot find a review of one anywhere. It costs about half as much as the Embody.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are no stores nearby me where I can sit in one and try them out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone have either of these or had the chance to sit in them? Are there any other recommendations? What should I get?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just to clarify my issue with the backs of the chairs: I windsurf and a while back strained my right elbow. Because of this I need to make sure that I have a chair with good adjustable armrests so that I can guarantee my elbow is never suspended midair for any extended period of time. The &lt;a href=&quot;http://www.steelcase.com/en/products/category/seating/task/leap/pages/overview.aspx&quot; rel=&quot;nofollow&quot;&gt;Steelcase Leep&lt;/a&gt; makes this difficult for me unless I slouch, and that leads to other back issues in the long run (I'm working on getting my job replace this chair with an Embody).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So while I will be able to solve my chair woes at work, I desperately need to get a replacement for home. Naturally I'm looking for the best price:value ratio.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-11-05T22:17:03.327" ClosedDate="2010-11-08T22:37:34.563" Title="Which chair do I buy?" Tags="&lt;productivity&gt;&lt;recommendations&gt;&lt;ergonomics&gt;" AnswerCount="3" CommentCount="8" FavoriteCount="4" />
  <row Id="17188" PostTypeId="2" ParentId="16528" CreationDate="2010-11-05T19:06:10.580" Score="3" ViewCount="" Body="&lt;p&gt;No braces.  If some other programmer adds a second statement to my code it's no more my fault then if I let someone drive my car and they went over a cliff.&lt;/p&gt;&#xA;" OwnerUserId="5736" LastActivityDate="2010-11-05T19:06:10.580" CommentCount="1" />
  <row Id="17189" PostTypeId="2" ParentId="17183" CreationDate="2010-11-05T19:09:59.863" Score="2" ViewCount="" Body="&lt;p&gt;I've been in a situation when there is nobody to even describe you what happened: ATM's (cash machines) running Windows. The best way of diagnosing problems for us was very, very detailed logging. One way is shipping two versions of the binary, one of which is with logging enabled. You switch the binaries when needed. For environments like C# and Java I believe there are tools that can provide non-intrusive function call journalling (i.e. you don't need to modify the code).&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-05T19:09:59.863" CommentCount="5" />
  <row Id="17190" PostTypeId="2" ParentId="17173" CreationDate="2010-11-05T19:10:42.497" Score="0" ViewCount="" Body="&lt;p&gt;If your user objects are taking on so many responsibilities that it feels like they have too many &quot;user.DoFooOnBar(bar)&quot; methods, then you may be looking at a god object.  You might feel better by either using interfaces to break up the roles of user into domain-specific pieces, or using composition to do the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Interfaces&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'd have an ICustomerController interface that User implements, then when you need the users to disable customers, you cast the customer into an ICustomerControl and can use ICC.DisableCustomer(customer).  That provides a move natural reading because the customer is being manipulated, not by a user, but by &quot;something which manipulates customers.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also leaves you more flexible to let things that aren't users update customers, if you needed to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Composition&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just an extension from the last idea: instead of users being ICustomerControllers (IS-A) they would own an ICustomerController (HAS-A).  So now the call reads as user.CustomerController.Disable(customer).  Again, this makes it clear that users are acting in a certain capacity (to affect customers) and only against that one domain of objects (customers).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You hadn't mentioned that problem, but a method like user.Disable() could seem to affect anything, even the user itself.  Either of the above corrects that.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-05T19:10:42.497" />
  <row Id="17191" PostTypeId="2" ParentId="17173" CreationDate="2010-11-05T19:24:36.667" Score="6" ViewCount="" Body="&lt;p&gt;How about&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;customer.SetDisabledBy(user);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or if using C# 4.0 or a different language with similar capabilities:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;customer.SetDisabled(by: user);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or if you're using C# 3.5 or newer, you can write the following:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;user.DisableCustomer(customer);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;while having the DisableCustomer method be an extension method sitting in a class called &lt;code&gt;CustomerActions&lt;/code&gt; which sits together with the &lt;code&gt;Customer&lt;/code&gt; class. That way, when you're &lt;code&gt;using&lt;/code&gt; the &lt;code&gt;Customer&lt;/code&gt; namespace, &lt;code&gt;User&lt;/code&gt; will have that extension method. When you're not &lt;code&gt;using&lt;/code&gt; it, it's gone. &lt;code&gt;User&lt;/code&gt; is no longer a god object but the intermediary class is nowhere to be found in the code. You might also have an &lt;code&gt;OrderActions&lt;/code&gt; class which will provide &lt;code&gt;user.CancelOrder(order)&lt;/code&gt;, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good question, made me think!&lt;/p&gt;&#xA;" OwnerUserId="135" LastEditorUserId="135" LastEditorDisplayName="" LastEditDate="2010-11-05T19:33:52.167" LastActivityDate="2010-11-05T19:33:52.167" CommentCount="1" />
  <row Id="17193" PostTypeId="2" ParentId="17114" CreationDate="2010-11-05T19:26:50.090" Score="3" ViewCount="" Body="&lt;p&gt;YMMV, but I have never found a class that taught me as much as attending a tech conference.  Most of what's available in a formal curriculum is also available in books and webcasts and at least a few other formats.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A class must be tailored for a group, and thus isn't efficient at delivering what any one individual in that group needs.  On the other hand, running into the man who wrote the programming language I use in the hall after lunch, and ditching my next session to spend 40 minutes talking with him about the future of the language, can beat out what I learn in a semester-long class hands down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a class, I lose a couple of evenings per week for a semester, and gain knowledge of the list of things on the class curriculum.  The curriculum, by the way, probably had at least a 2-year lag between being the latest tech and being codified in textbooks and formed into a class.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At a tech conference, I lose a week or a long weekend, and get to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;run into Rasmus Lerdorf and talk about PHP for a while.&lt;/li&gt;&#xA;&lt;li&gt;hang out in the evening with a scalability expert and learn about noSQL dbs from a master, hands-on and one-on-one.&lt;/li&gt;&#xA;&lt;li&gt;grab lunch with an accessibility expert, and see up close how the blind use web sites.&lt;/li&gt;&#xA;&lt;li&gt;teach a session for new core contributors, and meet some great new minds (read: potential future hires).&lt;/li&gt;&#xA;&lt;li&gt;have dinner with leaders of top companies in my market: whether one wants to learn from what others are doing, evaluate alternate employment, or brainstorm on what the market is doing, this is a can't miss.&lt;/li&gt;&#xA;&lt;li&gt;attend a session dedicated solely to that one API that has been messing up your life for the past two months.&lt;/li&gt;&#xA;&lt;li&gt;debate technology and politics with industry leaders.&lt;/li&gt;&#xA;&lt;li&gt;talk with others who run shops similar to mine about their workflows, tools, and other aspects of development, and trade ideas.&lt;/li&gt;&#xA;&lt;li&gt;meet with companies considering the move to our CMS and discuss their needs, possibly picking up another consulting client or two.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The conference seems to me like a better value&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-05T19:26:50.090" CommentCount="1" />
  <row Id="17194" PostTypeId="2" ParentId="17187" CreationDate="2010-11-05T19:31:15.470" Score="0" ViewCount="" Body="&lt;p&gt;So when I got my newest chair I looked on craigslist and my university forums and found a $200 Ikea chair that I managed to snag for $50 since the guy was moving/flying the next day.  Whichever you choose, I would recommend checking some local sources (craigslist and stuff) first, this being a nontrivial amount of cash for a chair.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, the yellow one rocks my world and I would get that if I had to choose between the two.  The mechanism on the bottom is similar to that of ones in some conference rooms I have been in and they are &lt;em&gt;comfy&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5904" LastActivityDate="2010-11-05T19:31:15.470" />
  <row Id="17195" PostTypeId="2" ParentId="5597" CreationDate="2010-11-05T19:33:31.397" Score="2" ViewCount="" Body="&lt;p&gt;Allow me to relate my story in condensed form.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started programming at an early age.  Seemed to have a natural aptitude for it, certainly enjoyed it.  Learned by struggling through stuff all through middle &amp;amp; high school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Got out of high school and did .. um .. other things.  Manual labor, living a young person's life, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few years later I decided to re-focus.  Worked on my 2 year degree in spare time, aced that (literally).  Got employed back in the field, making a decent wage - nothing great in any sense, but considerably better than manual labor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Decided to go to our state's major university, good technical program.  Enrolled for Computer Engineering, so as to indulge my electronics fascination more and avoid too much repetitive programming stuff I already knew.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well ... let me just say ... holy tedious.  Now, some of this could simply be ascribed to me and how I handled it, but the year I spent in that college was a &lt;strong&gt;huge&lt;/strong&gt; waste of time &lt;em&gt;and money&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I spent the year doing learning nothing and spending my time &quot;completing&quot; homework that was so far below my skill level it was absurd.  I spoke to several professors and college guidance counselors and across the board the word was, in effect, &quot;toe the line, go through the motions, sorry that's just the way it works&quot; or &quot;maybe you don't know as much as you think you do and should pay more attention.&quot; (though if I do say so myself the latter point was totally invalid).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the year, I reviewed my progress towards my degree.  Having already completed an A.A. degree, with an abundance of credits, and now having completed a full year in the university, I was still - realistically, due to how I had to schedule classes, prerequisites, etc. - 3 full years away from my B.S. in Comp Eng. Not to mention $10,000 in debt (for year 1, it was only going to get worse each additional year [less grants vs loans]).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I quit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I don't look back.  And I won't go back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've remained employed in my field throughout and since then.  Never has my lack of a degree been a barrier to finding employment, and I feel the jobs I've been able to get are for quality shops with above average wages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So .. long story short again, sounds like school might not be the thing for you, like it wasn't for me.&lt;/p&gt;&#xA;" OwnerUserId="6735" LastActivityDate="2010-11-05T19:33:31.397" CommunityOwnedDate="2011-01-26T20:35:39.517" />
  <row Id="17196" PostTypeId="2" ParentId="17177" CreationDate="2010-11-05T19:34:37.047" Score="1" ViewCount="" Body="&lt;p&gt;LOC &lt;em&gt;is&lt;/em&gt; notoriously inaccurate for a lot of measurements, but I think you're trying to measure something that there really isn't an accurate way to measure.  Perhaps an alternative might be &lt;a href=&quot;http://en.wikipedia.org/wiki/Cyclomatic_complexity&quot; rel=&quot;nofollow&quot;&gt;cyclomatic complexity&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately though, I think &quot;bigness&quot; of a project is difficult to quantify.  It's almost like asking how you determine if a dog is big or not.  Not only are there multiple ways to measure it (mass, volume, etc), but I personally don't find it very useful.  Reality is that my criteria is probably going to be something like &quot;How likely am I to run from this dog if I see it in a dark alley?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And for the record, I generally wouldn't consider 1k lines of code to be a lot.  It would be a sizable chunk of code, but it wouldn't be &lt;em&gt;that&lt;/em&gt; much in the grand scheme of things.  Of course, I suppose it does depend on the language.  For instance, 1k lines of code is &lt;em&gt;much&lt;/em&gt; less code in a language like C than it is in a language like Pyhon.  &lt;/p&gt;&#xA;" OwnerUserId="1626" LastEditorUserId="1626" LastEditorDisplayName="" LastEditDate="2010-11-05T19:41:32.273" LastActivityDate="2010-11-05T19:41:32.273" />
  <row Id="17197" PostTypeId="2" ParentId="17136" CreationDate="2010-11-05T19:34:56.233" Score="0" ViewCount="" Body="&lt;p&gt;How is your working time distributed between coding and thinking?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;THEY ARE THE SAME&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;END TRANSMISSION&lt;/p&gt;&#xA;" OwnerUserId="5904" LastActivityDate="2010-11-05T19:34:56.233" CommentCount="1" />
  <row Id="17198" PostTypeId="2" ParentId="17187" CreationDate="2010-11-05T19:37:45.503" Score="2" ViewCount="" Body="&lt;p&gt;The Embody chair hands-down... It is geared more towards what you are looking for.  It's a great chair and will last almost forever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are cheaper options, but if you are looking to make the investment, that's what I'd go for.&lt;/p&gt;&#xA;" OwnerUserId="2044" LastActivityDate="2010-11-05T19:37:45.503" CommentCount="2" />
  <row Id="17199" PostTypeId="2" ParentId="17151" CreationDate="2010-11-05T19:38:01.073" Score="2" ViewCount="" Body="&lt;p&gt;The only way I can see is general survey of the population.  Something like a phone survey used by political pollsters.  You'd probably have to call 100,000 random people to reach enough people who report themselves as programmers to make the result valid.  Then ask them what they use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason you need to do this is that &lt;strong&gt;every&lt;/strong&gt; online indicator is self-selecting and thus incorrect.  Tiobe, google searches, SO posts, whatever.  Nor can you look at coference attendence or magazine subscriptions.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want actual usage statistics, you need to survey the general population.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-05T19:38:01.073" />
  <row Id="17200" PostTypeId="1" AcceptedAnswerId="17208" CreationDate="2010-11-05T19:43:03.367" Score="5" ViewCount="287" Body="&lt;p&gt;As C++ devs, what tools outside your IDE do you use to optimize and detect potential problems with your code? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, what are their main strengths, i.e. why did you choose them over other tools ?&lt;/p&gt;&#xA;" OwnerUserId="5185" LastEditorUserId="5185" LastEditorDisplayName="" LastEditDate="2010-11-05T20:16:26.590" LastActivityDate="2010-11-08T21:07:52.570" Title="Favorite C++ tools for profiling, detecting mem leaks etc." Tags="&lt;tools&gt;&lt;c++&gt;&lt;profiling&gt;" AnswerCount="8" FavoriteCount="3" />
  <row Id="17201" PostTypeId="2" ParentId="17030" CreationDate="2010-11-05T19:50:29.373" Score="1" ViewCount="" Body="&lt;p&gt;The commonly listed reasons behind singletons are that somethings you only need one of, and that sometimes you need to share data across domains.  The common problems with them often boil down to multithreading either creating more than one &quot;singleton,&quot; leaving it in an unknown state, or just general dislike of global variables.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But really, the problem is that singletons are applied where they aren't needed, and they are probably almost never needed.  If your code is modeling on a thing where only one physical copy exists (maybe like a Serial Device), it is not necessarily true that he code should model that limitation.  Probably it shouldn't.  If you're code isn't modeled on some very limited resource, why are you trying to simulate one?  In most business applications there's only one database, but we don't create a single &quot;TheDatabase&quot; object that handles everything to do with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Does everything in my application really need access to this device?  Why am I exposing it so broadly?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Does everything with access to it need full read and write ability on its state, or are some things just going to need services provided by the device, and only a few things will need to actually manage the state of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) If several objects all needed to modify the state at once, what is the proper way to handle that?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A singleton answers none of those questions.  It just provides a big muddy ball of state, methods, and unsupervised access.  A much better design in general would be to break up the singleton into two conceptual pieces: a data-only class which holds the mutable state, and a static gatekeeper object that holds the state and provides 3 kinds of methods: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&quot;Pass-through&quot; services that just do processing, no state change.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Readonly queries that report on what the state is.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Writeonly actions that queue and properly lock access to the state for modification. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The core problem with a singleton is specifically that it's global.  As soon as you hide the singleton state away, all the multi-threading problems become easier.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-05T19:50:29.373" />
  <row Id="17202" PostTypeId="2" ParentId="17177" CreationDate="2010-11-05T19:59:08.083" Score="1" ViewCount="" Body="&lt;p&gt;Its strange, reading a lot of these answers I find I view the size of a project very differently. Perhaps it is my working in a large corporation but I tend to view the size of a project as more of a scale of its visibility/desirability to its clients (depending on your area of work these can be coworkers or actual paying customers).&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-11-05T19:59:08.083" />
  <row Id="17203" PostTypeId="2" ParentId="17200" CreationDate="2010-11-05T20:01:42.013" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.automatedqa.com/products/aqtime/&quot; rel=&quot;nofollow&quot;&gt;AQTime&lt;/a&gt; to find bottlenecks, memory problems and lots of other things.&#xA;Also I worked for a company where we used &lt;a href=&quot;http://www.gimpel.com/html/pcl.htm&quot; rel=&quot;nofollow&quot;&gt;PC-Lint&lt;/a&gt; for static analysis.&lt;/p&gt;&#xA;" OwnerUserId="5430" LastActivityDate="2010-11-05T20:01:42.013" />
  <row Id="17204" PostTypeId="2" ParentId="17183" CreationDate="2010-11-05T20:02:43.120" Score="2" ViewCount="" Body="&lt;p&gt;Team Viewer is nice for the informal, occasional support call without having to poke firewall holes etc.  &lt;a href=&quot;http://www.teamviewer.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.teamviewer.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A mechanism which can send you the latest logs in case of problems (either automatically when an exception happens, or manually when the user press a button) is &lt;em&gt;really&lt;/em&gt; nice.  This can be done as email, over Instant Messenger (like jabber or msn) or an upload site e.g. at Google Application Engine.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do Java, and the single most important thing to get is the Exception stack trace from the point of failure, and the second most important to get the arguments passed on the way down in the stack trace (but that requires careful programming with try-catch around all methods).&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-05T20:02:43.120" CommentCount="1" />
  <row Id="17205" PostTypeId="2" ParentId="17151" CreationDate="2010-11-05T20:03:26.087" Score="0" ViewCount="" Body="&lt;p&gt;It'd be interesting to survey a bunch of major open source code repositories and measure how many lines of new code in each language are committed each week.  Not sure the actual numbers would tell you anything, but the trend over time could be very revealing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like this as a measure as it's more to do with &lt;em&gt;how much actual real work is getting done in the language&lt;/em&gt; rather than how confused people are by shiny-new-thing (which is what google/SO search/question rates are heavily influenced by I think).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course there are all sorts of problems with my proposed metric too; FOSS-world is a subset of real world, some languages gravitate towards particular repositories (which you might miss), some languages are more efficient, and all the other problems associated with LOC metrics.  Maybe just &quot;number of commits&quot; in each language would be more useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone know if such statistics are available anywhere today ?  Seems like something Ohloh/Koders/Krugle should be able to do.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-11-05T20:03:26.087" />
  <row Id="17206" PostTypeId="1" AcceptedAnswerId="17210" CreationDate="2010-11-05T20:03:36.960" Score="8" ViewCount="1224" Body="&lt;p&gt;In your career as a professional programmer/developer, what is the most difficult problem or situation you've had to deal with and what made it so difficult? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How did you manage to solve/work with the problem or situation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you think you'd be able to deal with the problem better the next time it occurred?&lt;/p&gt;&#xA;" OwnerUserId="2044" LastEditorUserId="3382" LastEditorDisplayName="" LastEditDate="2010-11-06T17:39:59.600" LastActivityDate="2011-04-12T16:45:37.130" ClosedDate="2010-11-06T22:49:46.810" Title="What's the most difficult problem you have ever faced as a programmer?" Tags="&lt;career&gt;" AnswerCount="11" CommentCount="8" FavoriteCount="1" />
  <row Id="17207" PostTypeId="2" ParentId="17206" CreationDate="2010-11-05T20:10:47.367" Score="1" ViewCount="" Body="&lt;p&gt;This one:  &lt;a href=&quot;http://stackoverflow.com/questions/1288087/a-methology-that-allows-for-a-single-java-code-base-covering-many-different-versi&quot;&gt;http://stackoverflow.com/questions/1288087/a-methology-that-allows-for-a-single-java-code-base-covering-many-different-versi&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I ended up solving it with JSR-330 dependency injection and very carefully configured modules.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;EDIT:  The problem was how to have a single core version of a Java program, and then being able to add extra functionality (in form of extra jars) without changing a single bits in the core version.  &lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-11-06T21:04:20.413" LastActivityDate="2010-11-06T21:04:20.413" CommentCount="1" />
  <row Id="17208" PostTypeId="2" ParentId="17200" CreationDate="2010-11-05T20:11:43.630" Score="7" ViewCount="" Body="&lt;p&gt;On any *nix system, use &lt;a href=&quot;http://valgrind.org/&quot; rel=&quot;nofollow&quot;&gt;valgrind&lt;/a&gt;. On Windows, use &lt;a href=&quot;http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;sqi=2&amp;amp;ved=0CBkQFjAA&amp;amp;url=http%3A%2F%2Ftechnet.microsoft.com%2Fen-us%2Flibrary%2Fbb457063.aspx&amp;amp;ei=RGXUTNC-DYyisAO48PmMCw&amp;amp;usg=AFQjCNHXkg6ziw6rVaJy9ic_8pRXe4-RdQ&quot; rel=&quot;nofollow&quot;&gt;AppVerif&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6916" LastEditorUserId="6916" LastEditorDisplayName="" LastEditDate="2010-11-08T15:45:13.957" LastActivityDate="2010-11-08T15:45:13.957" CommentCount="4" />
  <row Id="17209" PostTypeId="2" ParentId="17206" CreationDate="2010-11-05T20:13:26.720" Score="4" ViewCount="" Body="&lt;p&gt;Explaining a multi-threaded problem to a guy with an advanced education in CS who couldn't understand why an &quot;if&quot; statement did not solve a synchronization on a shared variable problem.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-11-05T20:13:26.720" />
  <row Id="17210" PostTypeId="2" ParentId="17206" CreationDate="2010-11-05T20:18:24.093" Score="12" ViewCount="" Body="&lt;p&gt;This single most common and intractable problem that I have had to deal with is trying to get non-developer management to understand the truth of &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Mythical_Man-Month&quot; rel=&quot;nofollow&quot;&gt;The Mythical Man-Month&lt;/a&gt;. Adding resources to a project that is late will only make it later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fred Brooks was absolutely correct, and my 20 years of experience have shown me that over and over again. However, a lot of managers who don't have any (or any substantial) experience as developers tend to look at us like we are donkeys. They know that if they get another donkey, the field will get plowed twice as fast, and why shouldn't it be the same way with software engineering.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-11-05T20:18:24.093" CommentCount="2" />
  <row Id="17211" PostTypeId="2" ParentId="17206" CreationDate="2010-11-05T20:26:05.570" Score="0" ViewCount="" Body="&lt;p&gt;Debugging ActiveX controls for our first generation web application when:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the site was in legacy ASP&lt;/li&gt;&#xA;&lt;li&gt;the controls where written in C++&lt;/li&gt;&#xA;&lt;li&gt;dev's didn't a have access to the web boxes&lt;/li&gt;&#xA;&lt;li&gt;&quot;it absolutely had to be fixed right now&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Back then, our team very much got on the job training as we were all new to web development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Leaned a lot about file and registry permissions, control activation and registration, etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Saw the sun come up while still at work more than once &quot;back in the day&quot;.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-11-05T20:26:05.570" />
  <row Id="17212" PostTypeId="2" ParentId="17177" CreationDate="2010-11-05T20:26:28.457" Score="4" ViewCount="" Body="&lt;p&gt;Complexity which may be estimated in a few ways:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Budget.  A project with a budget of $10,000,000+ is probably quite different from one that is under $10,000 for example.  This can include labor, software, hardware, and other costs incurred in doing a project.&lt;/li&gt;&#xA;&lt;li&gt;Person hours of work to complete the project.  Will it take a million hours or something else?  This could also be seen as a time line factor where some projects may take years that I'd say were big compared to others that may take less than a week.  Note that the person hours can be misleading as someone may think by doubling the staff so there are twice as many working on the project then the schedule can be sliced in half which rarely would work to my mind.&lt;/li&gt;&#xA;&lt;li&gt;Amount of hardware, other systems and people using what the project is building.  If something is tying into 101 systems then it is likely to be more complicated that if it stands alone and doesn't tie into anything else.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;While requirements can sound like a nice way to measure this, there are often more requirements that will be found as a project is done assuming a non-Waterfall methodology I believe.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-05T20:26:28.457" />
  <row Id="17213" PostTypeId="2" ParentId="17200" CreationDate="2010-11-05T20:26:29.563" Score="2" ViewCount="" Body="&lt;p&gt;I've used IBM/Rational &lt;a href=&quot;http://www-01.ibm.com/software/awdtools/purify/&quot; rel=&quot;nofollow&quot;&gt;Purify&lt;/a&gt; (for memory leaks) and Quantify, which is now called &lt;a href=&quot;http://www-01.ibm.com/software/awdtools/purifyplus/&quot; rel=&quot;nofollow&quot;&gt;PurifyPlus&lt;/a&gt;.  (This was several years ago, before I made a switch from C++ to .NET.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used them on Windows as well as on Solaris and was happy with the performance improvements that resulted from the use of these products.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-05T20:26:29.563" />
  <row Id="17214" PostTypeId="1" AcceptedAnswerId="17217" CreationDate="2010-11-05T20:27:19.187" Score="17" ViewCount="1152" Body="&lt;p&gt;There are lots of books about programming out there, and it seems Code Complete is pretty much at the top of most people's list of &quot;must-read programming books&quot;, but what about &lt;em&gt;The Art of Computer Programming&lt;/em&gt; by Donald Knuth?  I'm a busy person, between work and a young family I don't have a ton of free time, so I have to be picky about how I use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm wondering - has anybody here read 'TAOCP'?  If so, is it worth making time to read or would some other book or more on-the-side programming like pet projects or contributing to open source be a better use of my time in terms of professional development?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;DISCLAIMER - For those of you who sport &quot;Knuth is my homeboy&quot; t-shirts, don't get me wrong - I want to read it, but I'm just wondering if it should be right at the top of my priority list or if something else should come first.&lt;/p&gt;&#xA;" OwnerUserId="5279" LastActivityDate="2011-02-26T12:03:48.203" CommunityOwnedDate="2011-02-26T01:53:06.803" Title="The Art of Computer Programming - To read or not to read?" Tags="&lt;books&gt;" AnswerCount="16" CommentCount="2" FavoriteCount="6" />
  <row Id="17215" PostTypeId="2" ParentId="16913" CreationDate="2010-11-05T20:27:50.523" Score="0" ViewCount="" Body="&lt;p&gt;I think you only need to (and arguably only &lt;em&gt;should&lt;/em&gt;) be familiar enough with the business side to be able to get into the business user's head.  What you're experiencing isn't necessarily any fundamental difference between code and product.  It's a matter of varying objectives.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Business people generally have the objective of building a product that people want.  Technies have the objective of building maintainable, non-buggy code that can scale with the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, business types will scoff at technical requirements because that's their job.  They don't get paid to make sure good code gets written.  They get paid to build a cool product.  You, on the other hand, aren't paid to create a cool product.  You're paid to ensure good code gets written.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice is to take a note from the business people.  You need to focus on doing your job correctly.  If you cut corners and put out a buggy product to suit them, &lt;em&gt;you're&lt;/em&gt; going to get the blame.  In fact, I'd argue that you &lt;em&gt;deserve&lt;/em&gt; the blame.  It's &lt;em&gt;your&lt;/em&gt; job to stick up for technical requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, it's tempting to blame the business people for not listening to you.  They &lt;em&gt;are&lt;/em&gt; treating you unfairly, but that's not really the point.  The point is how you react to that situation.  Let me share a secret of working for software companies with you:  the code &lt;em&gt;is&lt;/em&gt; the product.  That might sound obvious, but we forget it so many times.  Thus, the key is to realize that you're helping business people to make a better product.  Once you realize that, it becomes easy to phrase things in their terms:  &quot;We can do that, but it will make a buggy product that no one will buy,&quot; or &quot;We can do that, but it will jeopardize our ability to put products out faster in the future&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not suggesting that bad work environments where you can never get the business people to listen to you don't exist.  I'm suggesting that the way to handle this situation is to stick to your guns while realizing that the other side has differing goals from you.   The correct way to handle it is to find a solution that benefits both sides.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-05T20:27:50.523" />
  <row Id="17216" PostTypeId="2" ParentId="17183" CreationDate="2010-11-05T20:31:05.300" Score="8" ViewCount="" Body="&lt;p&gt;We have had good success teaching end users to respond to unhandled exceptions (which are thankfully rare, but which plagued one installation because of networking issues) with these steps (Windows only)&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;press Shift+PrntScrn&lt;/li&gt;&#xA;&lt;li&gt;Open Word&lt;/li&gt;&#xA;&lt;li&gt;press Ctrl+V&lt;/li&gt;&#xA;&lt;li&gt;Return to the application and click the More Info button&lt;/li&gt;&#xA;&lt;li&gt;Click in all the words that don't make any sense, and press Ctrl+A Ctrl+C&lt;/li&gt;&#xA;&lt;li&gt;Return to Word&lt;/li&gt;&#xA;&lt;li&gt;Click below the picture and press Ctrl+V&lt;/li&gt;&#xA;&lt;li&gt;Save the file and email it to me.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;This lets you see the exception, what they were doing in the background, what data they were looking at (employee id or store id or whatever) and other useful information. I have debugged a lot of things after the fact armed with these screenshots and the stack trace.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The big difference between this and GoToMeeting, WebEx etc (which we use with these clients for demos and training) is that they don't need to repro the bug on demand. When they are working away and the bad thing happens, they follow these steps and we make it all better. (Sometimes by calling their IT rather than changing our code, but honestly the end users don't care.) The impact on them is minimal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I needed to, I might also teach them Problem Steps Recorder on Windows 7 which is way cool if you've never used it. But the screenshot and stack track approach carries a LOT of information.&lt;/p&gt;&#xA;" OwnerUserId="285" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2011-03-21T15:13:07.273" LastActivityDate="2011-03-21T15:13:07.273" CommentCount="1" />
  <row Id="17217" PostTypeId="2" ParentId="17214" CreationDate="2010-11-05T20:31:13.147" Score="23" ViewCount="" Body="&lt;p&gt;TAOCP is an utterly invaluable reference for understanding how the data structures and algorithms that we use every day work and why the work, but undertaking to read it cover-to-cover would be an extraordinary investment of your time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As one family man to another, spend the time with your kids.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-11-05T20:31:13.147" CommunityOwnedDate="2011-02-26T01:53:06.803" CommentCount="5" />
  <row Id="17218" PostTypeId="2" ParentId="17214" CreationDate="2010-11-05T20:33:21.210" Score="1" ViewCount="" Body="&lt;p&gt;It's probably more important that you do that problems in the book than you just read it.  That will require a lot of time.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;He's up to like 4 volumes and 5 fascicles (whatever those are) so &lt;em&gt;completing&lt;/em&gt; the books would be probably better than a university course in the fundamentals of computer science and make you nearly the best programmer ever. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you've got a young family, like me, you gave me a pretty swell idea. I'd buy the books one at a time and teach through'em to your kids.  &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-11-05T20:33:21.210" CommunityOwnedDate="2011-02-26T01:53:06.803" CommentCount="2" />
  <row Id="17219" PostTypeId="2" ParentId="17214" CreationDate="2010-11-05T20:34:32.737" Score="0" ViewCount="" Body="&lt;p&gt;If you are curious, then do it, but it takes quite some time to digest so you need to take your time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have a commute where you can read - that would be perfect.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;EDIT:  You might find this preview of a small part of Volume 4 interesting:  &lt;a href=&quot;http://www-cs-faculty.stanford.edu/~uno/fasc1a.ps.gz&quot; rel=&quot;nofollow&quot;&gt;http://www-cs-faculty.stanford.edu/~uno/fasc1a.ps.gz&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(note:  compressed postscript)&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-11-05T20:54:47.937" LastActivityDate="2010-11-05T20:54:47.937" CommunityOwnedDate="2011-02-26T01:53:06.803" CommentCount="1" />
  <row Id="17220" PostTypeId="2" ParentId="17214" CreationDate="2010-11-05T20:37:24.693" Score="2" ViewCount="" Body="&lt;p&gt;Having recently undertaken this very task, I can say that the way he writes is very enjoyable and the problems are labeled (according to difficulty) very aptly.  Get the first volume and read chapters 1 and 2 and see how you like it.&lt;/p&gt;&#xA;" OwnerUserId="5904" LastActivityDate="2010-11-05T20:37:24.693" CommunityOwnedDate="2011-02-26T01:53:06.803" />
  <row Id="17221" PostTypeId="2" ParentId="17214" CreationDate="2010-11-05T20:40:48.203" Score="1" ViewCount="" Body="&lt;p&gt;+10 on the family/children comment.  I try and do most reading whilst enduring on red-eye flights to customers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But...yes, very much worth the read.  No reason to read linearly, instead skim and choose a few topics of interest.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-11-05T20:40:48.203" CommunityOwnedDate="2011-02-26T01:53:06.803" />
  <row Id="17222" PostTypeId="2" ParentId="17214" CreationDate="2010-11-05T20:41:02.680" Score="9" ViewCount="" Body="&lt;p&gt;Substitute &quot;the encyclopedia&quot; in your question for every reference to TAOCP, and I think the answer should be obvious.  Because in a lot of respects, that's what TAOCP is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a (possibly apocryphal) story about Steve Jobs meeting Knuth.  The first thing Jobs said to him was &quot;It's a pleasure to meet you Dr. Knuth.  I've read all your works!&quot;. Knuth's response was &quot;You're full of shit&quot;:  &lt;a href=&quot;http://www.folklore.org/StoryView.py?project=Macintosh&amp;amp;story=Close_Encounters_of_the_Steve_Kind.txt&quot; rel=&quot;nofollow&quot;&gt;http://www.folklore.org/StoryView.py?project=Macintosh&amp;amp;story=Close_Encounters_of_the_Steve_Kind.txt&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-05T20:41:02.680" CommunityOwnedDate="2011-02-26T01:53:06.803" CommentCount="4" />
  <row Id="17223" PostTypeId="2" ParentId="17030" CreationDate="2010-11-05T20:48:50.167" Score="0" ViewCount="" Body="&lt;p&gt;Cons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The implementation is easy to understand, but the reasons for using it as a pattern aren't always clear, so a lot of junior developers will just use it where they see an opportunity to, thinking it makes their code more professional and &quot;pattern-oriented.&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It can make testing components that rely on it more challenging.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3044" LastActivityDate="2010-11-05T20:48:50.167" />
  <row Id="17224" PostTypeId="2" ParentId="17206" CreationDate="2010-11-05T20:51:15.447" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Budget and Time&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am frugal and expense adverse and I have never had a program/project where there was enough budget to get it to where I wanted:  the customer &lt;em&gt;reasonably&lt;/em&gt; saying &quot;I want nothing more.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Features, architecture, integrations have always been deferred/cancelled due to budget.  In times of design, implementation, or operations crises, there is never enough budget.  New frameworks supporting additional business activity never has enough budget.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's what we have Project Managers for, but I have never had enough budget and time.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-11-05T20:51:15.447" />
  <row Id="17225" PostTypeId="2" ParentId="12248" CreationDate="2010-11-05T20:56:02.280" Score="2" ViewCount="" Body="&lt;p&gt;These aren't programming books per se, but I'd recommend &quot;The Mythical Man Month&quot; and &quot;Peopleware&quot;.  When you get out in the real world, chances are good you won't know how a software project should be run, and there are plenty of bosses out there that will take advantage of that fact.  Reading these books won't give you your manager's experience, but they'll give you a better idea of when they're doing something dumb or trying to put something past you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And believe me when I say that learning to &quot;manage up&quot; is a programming skill.  A bad manager is the single biggest threat to your programming skill there is.  Even if you don't learn to get your way with them, you'll at least know when you're in a bad situation.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-05T20:56:02.280" CommentCount="1" />
  <row Id="17226" PostTypeId="1" AcceptedAnswerId="17230" CreationDate="2010-11-05T20:57:53.143" Score="7" ViewCount="385" Body="&lt;p&gt;... and coded the functionality &quot;manually&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a rather metaphorical example, you'd hardly need a library for solving quadratic equations, although such libraries do exist and someone takes them seriously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a more questionable case, depending on the circumstances I may ditch jQuery (for example when I don't need to support some stone age browsers): it does simplify some things but it adds another layer of complexity and unreliability to DOM. And overusing jQuery leads to absurd problems, such as one seen recently on SO: how do I assign an empty href to an &lt;code&gt;a&lt;/code&gt; tag with jQuery? Turned out it was a HTML question, not even JavaScript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another absurd case and yet non-obvious for many is using some templating engine/language built on top of another templating system: PHP. Third level of templating anyone?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And another one: &lt;em&gt;sometimes&lt;/em&gt; just spitting out XML with (figurally) &lt;code&gt;printf&lt;/code&gt; is far easier than doing it with some monstrous XML engine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any other cases from your experience?&lt;/p&gt;&#xA;" OwnerUserId="5635" LastEditorUserId="5635" LastEditorDisplayName="" LastEditDate="2010-11-05T21:24:09.180" LastActivityDate="2010-11-09T02:48:23.597" Title="Which library/framework did you ditch as being too complex for the problem it is solving?" Tags="&lt;frameworks&gt;&lt;libraries&gt;" AnswerCount="14" CommentCount="2" />
  <row Id="17227" PostTypeId="2" ParentId="8560" CreationDate="2010-11-05T21:01:53.790" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://pencil.evolus.vn/en-US/Home.aspx&quot; rel=&quot;nofollow&quot;&gt;The Pencil Project&lt;/a&gt; is a Firefox addin that does nice and simple mockups.&lt;/p&gt;&#xA;" OwnerUserId="1108" LastActivityDate="2010-11-05T21:01:53.790" />
  <row Id="17228" PostTypeId="2" ParentId="17226" CreationDate="2010-11-05T21:05:15.647" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Log4Net&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The library is good, but the documentation is horrendous.  It was overkill for what I wanted to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.diagnostics.trace.aspx&quot; rel=&quot;nofollow&quot;&gt;Trace&lt;/a&gt; instead.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-05T21:05:15.647" CommentCount="4" />
  <row Id="17229" PostTypeId="2" ParentId="5597" CreationDate="2010-11-05T21:14:13.860" Score="1" ViewCount="" Body="&lt;p&gt;As was stated in other questions, this is a personal decision, and as to if a University degree is worth it for you depends on what you want to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal story, just turned 50, I make a good living programming, and I've yet to get a degree.  So the truth is you don't &quot;need&quot; a degree to make a living programming.  That being said, I'm still pursuing a degree, even though I have kids older than many of the students in the class.  Let me rephrase that, I'm pursuing &quot;education&quot;, whether I get the degree or not has little importance at this point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I want to do is learn.  You can always learn on your own, but the limits to being able to do this increase as the complexity of the subject increases.  Taking classes allows me to push myself further than I would do on my own.  As I go along I find I'm just not as interested in learning yet another language, rather I want to learn deeper concepts.  One goal I have is to be able to answer questions in &lt;a href=&quot;http://cstheory.stackexchange.com/&quot;&gt;http://cstheory.stackexchange.com/&lt;/a&gt; Heck, I'd be happy to just be able to understand most of them.  This area may not interest many programmers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One important factor to consider when weighing over your choices is how much harder it gets to follow through with going back to school as you get older.  Life starts getting in the way, relationships, kids, mortgages, etc. hamper your ability to make these kind of choices.  &lt;/p&gt;&#xA;" OwnerUserId="1642" LastActivityDate="2010-11-05T21:14:13.860" CommunityOwnedDate="2011-01-26T20:35:39.517" />
  <row Id="17230" PostTypeId="2" ParentId="17226" CreationDate="2010-11-05T21:16:27.613" Score="9" ViewCount="" Body="&lt;p&gt;Much of MS enterprise library and most 3rd party controls for .net have left me with this feeling after a bit of use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your mileage may vary&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-05T21:16:27.613" CommentCount="2" />
  <row Id="17231" PostTypeId="2" ParentId="17214" CreationDate="2010-11-05T21:17:14.850" Score="6" ViewCount="" Body="&lt;p&gt;No, it should not be at the top of your priority list. I've got a full set and I have NOT read the whole thing. I've used it (so far) as a good reference on certain problems (it was invaluable in my understanding of randomness and the testing of random generators, for instance). Whenever a CS topic comes up that I don't have a REALLY good handle on, I tend to grab the relevant bit of TAOCP as a good step in my understanding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do decide to read it, more power to you, and I definitely recommend taking it in small chunks. Don't be afraid to skip around and look at whatever is most interesting first. &lt;/p&gt;&#xA;" OwnerUserId="6294" LastActivityDate="2010-11-05T21:17:14.850" CommunityOwnedDate="2011-02-26T01:53:06.803" CommentCount="1" />
  <row Id="17232" PostTypeId="1" CreationDate="2010-11-05T21:19:38.730" Score="0" ViewCount="75" Body="&lt;p&gt;Hello programmers.stackexchange.com&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a question. I don't think it's particularly controversial or unusual, but it's been closed on &lt;a href=&quot;http://stackoverflow.com/questions/4106491/best-document-book-for-mac-hardware-closed&quot;&gt;StackOverflow&lt;/a&gt; (but recommended for Superuser), then closed on &lt;a href=&quot;http://superuser.com/questions/207476/best-document-book-for-mac-hardware-closed&quot;&gt;SuperUser&lt;/a&gt;. Perhaps someone here can answer? I really want to know the answer! If there's something intrinsically wrong with the question, can you say in a comment?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm reading 'Mac OS X Internals' but it was published in 2007. It has an extensive section on Mac hardware (&lt;a href=&quot;http://www.osxbook.com/book/toc/toc.html&quot; rel=&quot;nofollow&quot;&gt;table of contents for Chapter 3&lt;/a&gt;) and I want to read it all ... except it's for PowerPC not Intel architecture and I would probably be wasting my time.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How much of the chapter is still relevant?&lt;/li&gt;&#xA;&lt;li&gt;What's the best place to gain the equivalent knowledge about the Intel architecture? &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I don't want to actually do any hardware tinkering, I just want a solid understanding of the hardware in the same way I would have got about PowerPC had I read that chapter.&lt;/p&gt;&#xA;" OwnerUserId="7111" LastEditorUserId="87" LastEditorDisplayName="" LastEditDate="2010-11-05T23:52:17.907" LastActivityDate="2010-11-05T23:52:17.907" ClosedDate="2010-11-06T22:48:14.500" Title="Best document / book for Mac hardware?" Tags="&lt;books&gt;&lt;hardware&gt;&lt;architecture&gt;&lt;mac&gt;&lt;intel&gt;" CommentCount="6" />
  <row Id="17233" PostTypeId="2" ParentId="16913" CreationDate="2010-11-05T21:20:10.407" Score="0" ViewCount="" Body="&lt;p&gt;If you aren't involved in the business side, you're doing only what other people tell you to.  If you are, then you have at least some slight influence on the project requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You really should have some idea of how what you do fits into your business (and your client's business, if you're doing software for a client), if you want to make intelligent suggestions.  If you are perceived as making impractical suggestions, you'll just have more trouble getting any practical ones accepted.  Some people have the social skills to deal with that situation, but the typical techie, the one most likely to have this problem, almost certainly doesn't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also depends on what you want to do with your career.  If you want to develop software for the rest of your life, that's cool.  It's what I like.  If you ever want to move into management, including software management, you will have to understand the business.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-05T21:20:10.407" />
  <row Id="17234" PostTypeId="2" ParentId="17226" CreationDate="2010-11-05T21:20:12.197" Score="1" ViewCount="" Body="&lt;p&gt;Recently I've been working on a scripting language compiler that I can use within my applications.  I've used others, but none do exactly what I need them to do.  So I figured why not try to write my own?  It may be a year or two before its really suitable for general use, but thats ok.  Plus, its a great learning experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another 'roll my own' solution is the pieces used to translate my applications.  There's existing libraries, but I didnt like any of them.  So I made my own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And Delphi's database components.  I hate'em.  Always have.  So I made my own database interface that works the way I want one to work (and exactly as the one I made for PHP works, making coding across languages easier).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, when given an option, I typically end up making my own library.&lt;/p&gt;&#xA;" OwnerUserId="897" LastEditorUserId="897" LastEditorDisplayName="" LastEditDate="2010-11-05T21:30:22.153" LastActivityDate="2010-11-05T21:30:22.153" CommentCount="1" />
  <row Id="17235" PostTypeId="2" ParentId="17183" CreationDate="2010-11-05T21:20:32.163" Score="1" ViewCount="" Body="&lt;p&gt;The later versions of vnc have some options to correct many of the conflicts with excessive fancy render features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I have not had to do that in a long time as I have been doing web development, so some good logging and an htmlfilter that can intercept the html sent to the client is usually all I need.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-05T21:20:32.163" />
  <row Id="17236" PostTypeId="2" ParentId="17226" CreationDate="2010-11-05T21:21:30.150" Score="1" ViewCount="" Body="&lt;p&gt;Spitting out HTML on a debug port on an app. I needed some simple way to get some current data (with automatic refreshing). Pulling in a library to format it would have been good, but it was easier to just printf it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also rejected on library for another: We use a large, complex XML library in most of our stuff. After spending 4 hours one day trying to get it working in a new app, I just said 'bag it', and pulled in TinyXML. It's no where near as powerful, but it takes a LOT less effort to make it do simple stuff.&lt;/p&gt;&#xA;" OwnerUserId="6294" LastActivityDate="2010-11-05T21:21:30.150" />
  <row Id="17237" PostTypeId="2" ParentId="16913" CreationDate="2010-11-05T21:24:08.997" Score="0" ViewCount="" Body="&lt;p&gt;In the distant past I worked at a game company.  They had all the clever technology to develop something with the mass market appeal of Quake (and ahead of that product being released) but due to a lack of any marketing input/control chose to develop the kind of game the developers wanted to play; a geektastic extravaganza with a convoluted literary plot and where almost every key (ok, exaggeration) on the keyboard did something.  The game was well received critically and is now generally regarded as a classic; the creating team can certainly be applauded for remaining true to their vision... but they never managed to create the blockbuster game the company actually really needed to indulge this sort of &quot;artistic integrity&quot; project (they're not around any more).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've worked for other &quot;better mousetrap&quot; companies too (hint: the world doesn't need a better mousetrap) which thought they could prevail in the market by superior technology and development skills alone.  None of them have succeeded with what they were trying to do (not with their original idea, anyway).  Believe me: listen to and respect your marketing people (the good, experienced ones at least), and they'll listen to and respect you.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-11-05T21:24:08.997" />
  <row Id="17238" PostTypeId="2" ParentId="17206" CreationDate="2010-11-05T21:29:12.550" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://projecteuler.net/index.php?section=problems&amp;amp;id=160&quot; rel=&quot;nofollow&quot;&gt;Project Euler problem number 160&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've done the previous 159; crashed into 160 like it was a brick wall.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2011-04-12T16:45:37.130" LastActivityDate="2011-04-12T16:45:37.130" CommentCount="5" />
  <row Id="17239" PostTypeId="2" ParentId="17226" CreationDate="2010-11-05T21:33:34.030" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;ASP.NET WebForms&lt;/strong&gt; - Although as .NET web developer it's been my bread and butter for a long time, since I started using the MVC framework (and coming from a PHP / Smarty Template environment) -- you realize that sometimes there are just better ways to do web development and the abstraction that it uses is overkill and &lt;a href=&quot;http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction&quot; rel=&quot;nofollow&quot;&gt;leaky&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="4662" LastEditorUserId="4662" LastEditorDisplayName="" LastEditDate="2010-11-08T00:21:43.513" LastActivityDate="2010-11-08T00:21:43.513" CommentCount="2" />
  <row Id="17240" PostTypeId="2" ParentId="17226" CreationDate="2010-11-05T21:34:03.570" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;System.Text.RegularExpressions&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regex is so complex and so slow.  I'll very rarely use Regex and usually write my own text parsing and matching.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Occasionally I'll find Regex useful for really complex matching. &lt;/p&gt;&#xA;" OwnerUserId="4805" LastActivityDate="2010-11-05T21:34:03.570" CommentCount="3" />
  <row Id="17241" PostTypeId="2" ParentId="17183" CreationDate="2010-11-05T21:34:31.507" Score="1" ViewCount="" Body="&lt;p&gt;We use &lt;a href=&quot;http://www.webex.com/&quot; rel=&quot;nofollow&quot;&gt;webex&lt;/a&gt; for this purpse; we start the meeting, make them presenter and then they can share the desktop.  Haven't had any problems with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There was another program that a customer insisted on using one time that had lots of problems with &quot;special&quot; characters being typed - like slash.  I want to say gotomeeting, but don't quote me on it.&lt;/p&gt;&#xA;" OwnerUserId="6989" LastActivityDate="2010-11-05T21:34:31.507" CommentCount="1" />
  <row Id="17242" PostTypeId="2" ParentId="17214" CreationDate="2010-11-05T21:37:11.067" Score="5" ViewCount="" Body="&lt;p&gt;TOACP is an essential read -- at some point.  Depending on what you do daily, it may not be your most urgent one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's one of those books (well, collections of books) that is good to read early in your career because it really gives you good insights you normally wouldn't get to until later, but it's not essential to survival until you graduate to that part of your career where you don't just code, you choose the toolbox.  This is the point where you really want to study algorithms, hopefully already understand language design a bit, and have a very broad understanding of what tools, languages, and systems are out there, and how each one fits into the ecosystem of things you can draw on for a particular project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words: it's big-picture learning, so if you are obsessive like me read it now, if you aren't, it's okay to put it off until you start yearning to move up the ladder and become a big picture guy.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-05T21:37:11.067" CommunityOwnedDate="2011-02-26T01:53:06.803" />
  <row Id="17243" PostTypeId="2" ParentId="17226" CreationDate="2010-11-05T21:37:43.813" Score="2" ViewCount="" Body="&lt;p&gt;Not that Delphi4PHP needs any bad press, but I tried it (version 2.0) and it was extremely hard to bend it to my will.  I wanted to use it to make a youtube style web app for clients to view training videos, but it was too cumbersome and when I tried it to combine PHP frameworks (VCL4PHP, Zend, Smarty and Recess) I ran into the inevitable, gotta rename everything because there's no namespaces in PHP 5 problem. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, I didn't roll my own in the end.  I used just learned from my mistakes and decided to keep it very simple and use CodeIgniter and FlowPlayer (with JQuery).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've got a hankering that whatever frameworks make it out of PHP 5 alive, PHP 6 is going to have some awesome frameworks which might actually play nice together.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-11-05T21:37:43.813" />
  <row Id="17244" PostTypeId="2" ParentId="17005" CreationDate="2010-11-05T21:55:03.683" Score="0" ViewCount="" Body="&lt;p&gt;The &quot;casual&quot; in &quot;casually mention the holes&quot; seems to be a problem.&#xA;Try to use (or bring in if it doesn't exist) some written-down process for analysing project risks.&#xA;Typically the output of a risks analysis meeting is a simple two column table: the risk, and what the agreed strategy for mitigating the risk is (&quot;we think that never happens&quot; is an acceptable mitigation; the important thing is to record the current thinking on the issue at the time).  Make sure your issues are recorded as risks.  Risks should be regularly reviewed; chances are quite a few people will have come round to your point of view long before the crisis actually happens and a risks review will act as an &quot;OMG &lt;em&gt;that does happen&lt;/em&gt;; we'd be insane to carry on like this&quot; catalyst.  Longer term, a paper trail is useful evidence for saying &quot;look, we seem to have an institutional problem here&quot; and getting attitudes to design or whatever changed.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-11-05T21:55:03.683" />
  <row Id="17245" PostTypeId="2" ParentId="17214" CreationDate="2010-11-05T22:02:53.847" Score="3" ViewCount="" Body="&lt;p&gt;TAOCP is a great work, but reading it would be a terrible time investment for a practicing software developer.&#xA;If you do it you will be sacrificing couple of years (thats how long will it takes) of your professional self-improvement budget to learn too much about too little.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend to work through one or several less &quot;ultimate&quot; books about algorithms, my favorite in this area is &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1848000693&quot; rel=&quot;nofollow&quot;&gt;The Algorithm Design Manual by Steven S. Skiena&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then if you feel that you need/want more move up to the Knuth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the same time you can buy one or several volumes of TAOCP, look it through to understand what areas does Knuth covers in it, and keep it in your library in case you will actually need some information from it in your day-to-day work. &#xA;My educated guess is that you wouldn't and that is another reason why I do not advise trying to read. But if you will find yourself referencing it often enough, then you will know that it is well worth your time to read it cover to cover. &lt;/p&gt;&#xA;" OwnerUserId="7026" LastActivityDate="2010-11-05T22:02:53.847" CommunityOwnedDate="2011-02-26T01:53:06.803" />
  <row Id="17246" PostTypeId="2" ParentId="17009" CreationDate="2010-11-05T22:03:33.173" Score="2" ViewCount="" Body="&lt;p&gt;Some people are &quot;farmers&quot; and some are &quot;buccaneers&quot;, as Wilson Harrell explains in &quot;For Entrepreneurs Only&quot; (a good read even for those with no interest in starting a business.)   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I see a spectrum of restlessness - some itch for a major change of scenery after only a month, some in a year, some after five, etc.  But we who like to keep active in new things, explore, are misfits in a mostly &quot;farmer&quot; world.   Thom Hartmann has written about this - saying &quot;hunter&quot; not &quot;buccaneer&quot;, and focused on ADD and stuff instead of desires for changes in general.  But wanting a change of scenery after a few years maybe is a slow-motion type of ADD?     Wikipedia: &lt;a href=&quot;http://en.wikipedia.org/wiki/Hunter_vs._farmer_theory&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Hunter_vs._farmer_theory&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4280" LastActivityDate="2010-11-05T22:03:33.173" CommentCount="0" />
  <row Id="17247" PostTypeId="2" ParentId="17009" CreationDate="2010-11-05T22:08:36.260" Score="3" ViewCount="" Body="&lt;p&gt;One tip: when you do take a year out and a sabbatical, do advertise the fact on your CV (resume) when you head back into the job market.&#xA;Someone with the guts and confidence to take a year out to pursue some crazy dream or whatever is pretty interesting (to me, as an occasional recruiter), and it's much better than someone who just leaves a weird one year gap in their employment record (yes people do actually do this; I just don't get it... do they really think I won't notice ?  It just makes me think they were in prison or a coma or something).&lt;/p&gt;&#xA;" OwnerUserId="4966" LastEditorUserId="4966" LastEditorDisplayName="" LastEditDate="2010-11-05T22:29:42.170" LastActivityDate="2010-11-05T22:29:42.170" CommentCount="4" />
  <row Id="17248" PostTypeId="2" ParentId="17187" CreationDate="2010-11-05T22:17:03.327" Score="0" ViewCount="" Body="&lt;p&gt;I had very bad back pain for years.  I then got my boss to buy me the &lt;a href=&quot;http://www.amazon.com/HumanScale-Freedom-Chair-Headrest-Fabric/dp/B00062X3II&quot; rel=&quot;nofollow&quot;&gt;Human Scale Freedom Chair&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This thing changed my life for the good. Less pain, fewer pain medications etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I really love about this chair is the armrests can be lowered to the level of the seat. &lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-11-05T22:17:03.327" />
  <row Id="17249" PostTypeId="2" ParentId="17226" CreationDate="2010-11-05T22:42:05.453" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/netframework/aa663324.aspx&quot; rel=&quot;nofollow&quot;&gt;&lt;h2&gt;Windows Communication Foundation&lt;/h2&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact that it's got a picture of a Swiss Army knife on the homepage kind of sums it all up for me. Imagine the XML configuration is about four times as long as the actual code that you write, and it's &lt;em&gt;still&lt;/em&gt; very difficult to write SOAP services that are interoperable between C#, Java, PHP, Python and all those other languages that it was &quot;supposed to&quot; be interoperable with...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In all future projects, I'm just going to stick with REST.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-11-05T22:42:05.453" CommentCount="3" />
  <row Id="17250" PostTypeId="2" ParentId="154" CreationDate="2010-11-05T22:49:35.340" Score="1" ViewCount="" Body="&lt;p&gt;Reminded of this cartoon by &lt;a href=&quot;http://programmers.stackexchange.com/questions/35/whats-your-favorite-programming-joke/17045#17045&quot;&gt;Tuhin's answer&lt;/a&gt; to the &quot;Favorite Pr. Joke&quot; question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is Wally's take:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://dilbert.com/strips/comic/2006-03-18/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://i.imgur.com/TsLVT.gif&quot; alt=&quot;Wally Explains His Purpose in Life&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2515" LastActivityDate="2010-11-05T22:49:35.340" />
  <row Id="17251" PostTypeId="2" ParentId="16070" CreationDate="2010-11-05T22:49:48.433" Score="1" ViewCount="" Body="&lt;p&gt;Here, an unmathematical answer:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Abtracting away&lt;/em&gt; in programming is pretending you don't care about the details now, whereas in fact you do and you should care about them all the time. It's basically pretending.&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-05T22:49:48.433" CommentCount="2" />
  <row Id="17252" PostTypeId="2" ParentId="17009" CreationDate="2010-11-05T22:52:13.750" Score="1" ViewCount="" Body="&lt;p&gt;I can relate as someone that after working on the same stuff for a few years can start to see more of the problems than the beauty of a system.  After spending a couple of years to get it up, there are likely several minor bugs that while a perfectionist finds them annoying they aren't likely to be on the radar of someone that controls the budget and will spend $X,000 of dollars to fix these.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I did stay at one company for a little over 6 years, there were numerous technology changes within the company over that time that made it a bit easier to swallow.  For example, taking the website from a proprietary mark-up into classic ASP and then into ASP.Net was a sort of &quot;rebirth&quot; and thus the old problems got washed away in a sense.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-05T22:52:13.750" />
  <row Id="17253" PostTypeId="2" ParentId="17226" CreationDate="2010-11-05T23:01:04.593" Score="2" ViewCount="" Body="&lt;h2&gt;Weka&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I do a lot of machine learning work, and if I ever just need something simple like Naive Bayes or logistic regression, I love ditching Weka.  It has good implementations of some fairly complicated machine learning algorithms, but the API is a crufty overengineered excessively object-oriented old-school (pre-generics) Java API.  Things that annoy me about it:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;It rolls its own resizeable array that nothing else uses, guaranteeing busywork converting back and forth.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Lots of sequential coupling where methods have to be called in a specific order and unless you really RTFM carefully, you won't realize it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Every instance has to be an Instance object, and I have to declare explicitly with an Attribute object whether it's nominal or numeric.  This leads to lots of busywork converting data to the form Weka wants.  This is especially annoying since the Weka API throws so many exceptions that code compiling does not mean it's likely to work anyhow.  If I were designing the API, I'd be liberal in what I accepted (maybe just take an array of Object) and just introspect the data to figure out what I got and what the right thing to do with it is.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-05T23:01:04.593" />
  <row Id="17254" PostTypeId="1" AcceptedAnswerId="17257" CreationDate="2010-11-05T23:38:54.427" Score="14" ViewCount="515" Body="&lt;p&gt;I'm reading &lt;em&gt;Coders at Work&lt;/em&gt; by Peter Seibel, and many a time it has been mentioned that programmers who can't write generally make poor programmers - it's been claimed by Douglas Crockford, Joshua Bloch, Joe Armstrong, Dijkstra (and I've only read half the book).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's your view of this? Is an inability to express yourself in writing in a natural language such as English a hindrance of writing good code?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-11-06T15:48:53.950" Title="Do poor writers make poor programmers?" Tags="&lt;programming&gt;&lt;writing&gt;" AnswerCount="12" CommentCount="3" FavoriteCount="4" />
  <row Id="17255" PostTypeId="2" ParentId="17183" CreationDate="2010-11-05T23:43:20.547" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Remote Control&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have &lt;strong&gt;thousands&lt;/strong&gt; of computers connected to &lt;a href=&quot;http://www.logmein.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.logmein.com/&lt;/a&gt;. It is absolutely free, but the paid-for upgrades, like a management dashboard to be able to roll out updates to all your machines, are excellent and pay for themselves over time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We've found the performance to be excellent - very little hit on the remote machine until you connect to it and even then, the draw is fairly low. We have used it to remotely view full-screen MPEG movies playing in large digital out-of-home displays and to troubleshoot touch-screen apps in supermarkets and shopping malls.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It runs on Windows and Mac and can be controlled from Window, Mac or a smart phone. It is a background service, so does not get in the way of the user but can be configured to ask their permission, etc&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I highly recommend it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to just walk one customer through an issue, consider &lt;strong&gt;Adobe Acrobat Connect&lt;/strong&gt; which uses Adobe Flash on both your and their computers to do full-screen remote viewing. You can do up to three-way viewing with the free version.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Other Techniques&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a list of some of the other items we use in conjunction with Remote Control to work out what has been going wrong:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;All the software we put onto the remote machines logs activity to C:\Logs or similar, rotating the logs every 28 days. Make sure the logs are named by date and have time stamps for output. When guiding the customer through a problem, note the time (and timezone!).&lt;/li&gt;&#xA;&lt;li&gt;An agent service on the remote machines checks that the main application processes are running, not leaking, not hung and not crashed. It restarts bad-behaving processes after sending notification (see below).&lt;/li&gt;&#xA;&lt;li&gt;We have agent scripts that can grep these logs for nasty-looking errors and SMTP them to the development team. Obviously, we get Inbox-full pain when we ship buggy code, but its' useful. &lt;/li&gt;&#xA;&lt;li&gt;Not all customer environments are happy with automated outgoing SMTP (looks like spamware) so we use a HTTP web service to upload the things we need.&lt;/li&gt;&#xA;&lt;li&gt;If bandwidth is good, upload a ZIP of the days logs overnight every night until the machine is healthy.&lt;/li&gt;&#xA;&lt;li&gt;If bandwidth is not so good, cherry-pick what you upload, or upload a grep of logs.&lt;/li&gt;&#xA;&lt;li&gt;Keep crash dumps (upload if possible) for diagnosis. You need to have excellent release discipline to ensure you have the exact binary for the particular crash.&lt;/li&gt;&#xA;&lt;li&gt;If you only have outgoing connections and you need to talk to the remote computers some times, consider using the Hamachi VPN service - it's slow, but free and works.&lt;/li&gt;&#xA;&lt;li&gt;Microsoft has a tool named 'collector' which will enumerate all the installed software on a machine, a bit like 'Add/Remove Programs' window. This is invaluable for finding differences between client machines.&lt;/li&gt;&#xA;&lt;li&gt;On Windows, you can automate the Windows Installer engine to interrogate what is installed in terms of products, patches, service packs, etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-11-05T23:52:43.097" LastActivityDate="2010-11-05T23:52:43.097" CommentCount="1" />
  <row Id="17256" PostTypeId="2" ParentId="17254" CreationDate="2010-11-05T23:57:20.497" Score="0" ViewCount="" Body="&lt;p&gt;Does someone unable to express precisely a system organisation or an idea be able by writing it would be able to write code - that are precise instructions - correctly interpreted by (very) dumb computer?&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-11-05T23:57:20.497" CommentCount="2" />
  <row Id="17257" PostTypeId="2" ParentId="17254" CreationDate="2010-11-06T00:01:02.090" Score="26" ViewCount="" Body="&lt;p&gt;There's much more to programming than 'writing code'. A big part of being a successful programmer involves communication; Being able to connect with customers, understand their needs, translate them into the technical realm, express them in code, and then explain the result back to the customers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers who have a hard time expressing themselves clearly in writing may not be able to communicate well in general, whereas those who have a good grasp of language and writing can generally translate those skills to the code they write. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think being unable to write well, and thus communicate well, will keep one from being a very good programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Jason Fried and David Heinemeier Hansson (of 37signals) say in their book Rework:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If you're trying to decide among a few people to fill a position, hire the best writer. &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Being a good writer is about more than writing. Clear writing is a sign of clear thinking. Great writers know how to communicate. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-11-06T00:01:02.090" CommentCount="3" />
  <row Id="17258" PostTypeId="2" ParentId="17214" CreationDate="2010-11-06T00:01:49.033" Score="0" ViewCount="" Body="&lt;p&gt;I haven't read a single programming book. Everything I know is based soley from reading online, and I think I have an intermediate to advanced understanding of many programming concepts&lt;/p&gt;&#xA;" LastActivityDate="2010-11-06T00:01:49.033" CommunityOwnedDate="2011-02-26T01:53:06.803" CommentCount="1" />
  <row Id="17259" PostTypeId="2" ParentId="17254" CreationDate="2010-11-06T00:04:12.727" Score="1" ViewCount="" Body="&lt;p&gt;I don't think it's a major hindrance for a code monkey (I am assuming a certain basic level/ability to express one's self in their native language).  However I do think it can quickly become a major hindrance as you (the developer) has to begin to better articulate designs/arch/plans to a non-technical audience.  In my experience getting something across to someone else who is roughly on the same technical level as myself is my easier and takes considerably less (natural) language skills then it does to articulate something to a client and/or manager.  At the same token even when it's a technical audience as the subject matter becomes less concrete the person who is writing about it (or talking for that matter) has to be fairly articulate.&lt;/p&gt;&#xA;" OwnerUserId="4819" LastActivityDate="2010-11-06T00:04:12.727" />
  <row Id="17261" PostTypeId="2" ParentId="17254" CreationDate="2010-11-06T00:08:32.827" Score="10" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;If you can't explain something well enough you probably don't understand it well enough&lt;/strong&gt;&#xA;Being a smart person means you will work with other smart people and you will have to communicate with them effectively. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Any great idea you have is useless if exists only in your head&lt;/strong&gt;&lt;br&gt;&#xA;Being able to communicate your ideas effectively is a sign of great understanding. This applies to more than just the field of programming.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6926" LastEditorUserId="6926" LastEditorDisplayName="" LastEditDate="2010-11-06T01:08:39.693" LastActivityDate="2010-11-06T01:08:39.693" />
  <row Id="17262" PostTypeId="2" ParentId="17206" CreationDate="2010-11-06T00:15:54.717" Score="2" ViewCount="" Body="&lt;p&gt;Having to make 1 Flash game a month, each game manipulating money, having to be secure AND multiplayer AND persistent (Java on Server) AND require not a lot of updates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without any test procedure, QA or time to test.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;A system manipulating (any kind of) money is not something you can allow to have errors. It requires heavy testing to be secure.&lt;/li&gt;&#xA;&lt;li&gt;A client/server multiplayer persistent game is not something you can make enjoyable and secure on the first release. It requires more than just a few updates and have to be worked on the long term. Whatever the &quot;size&quot; of the game, the persistence nature makes it deep complex.&lt;/li&gt;&#xA;&lt;li&gt;Speed of dev. is valid for classic stand alone flash games based on simple mechanics. Add persistence and multiplayer and you have to think a lot more to make something that works AND is fun...&lt;/li&gt;&#xA;&lt;li&gt;Testing a persistent app with local network computers is not what I call &quot;testing&quot;.&lt;/li&gt;&#xA;&lt;li&gt;The server arcchitecture/framework totally changed 3 times, making me refactor each game each time.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-11-06T00:15:54.717" CommentCount="2" />
  <row Id="17263" PostTypeId="2" ParentId="154" CreationDate="2010-11-06T00:23:45.457" Score="2" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/cQmkZ.png&quot; alt=&quot;alt text&quot;&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://xkcd.com/208/&quot; rel=&quot;nofollow&quot;&gt;XKCD 208&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-11-06T00:23:45.457" />
  <row Id="17264" PostTypeId="2" ParentId="154" CreationDate="2010-11-06T00:24:51.120" Score="3" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/NYWn5.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://xkcd.com/538/&quot; rel=&quot;nofollow&quot;&gt;XKCD 538&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-11-06T00:24:51.120" CommentCount="1" />
  <row Id="17265" PostTypeId="2" ParentId="5597" CreationDate="2010-11-06T00:29:05.390" Score="0" ViewCount="" Body="&lt;p&gt;If you were to listen to Bill Gates you might find this advice:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interviewer: Is studying computer science the best way to prepare to be a programmer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Gates: No, the best way to prepare is to write programs, and to study great programs that other people have written. In my case, I went to the garbage cans at the Computer Science Center and I fished out listings of their operating system. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those people I suggest you enter a University/College which can prepare you for a career in programming, but also a career in something else, should you find passion for something other than staring into a phosphor screen 9 to 5. If you've already done that, then go see your family, career councilor, therapist, whatever. You're grown up, you can figure out what kind of a job you want, can't you? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The combination of the two i.e., self-teaching and CS course in college/university is something that always seems to keep you ahead.&#xA;Best of luck!&lt;/p&gt;&#xA;" OwnerUserId="6869" LastActivityDate="2010-11-06T00:29:05.390" CommunityOwnedDate="2011-01-26T20:35:39.517" />
  <row Id="17266" PostTypeId="2" ParentId="17177" CreationDate="2010-11-06T00:32:08.263" Score="1" ViewCount="" Body="&lt;p&gt;Complexity is the right answer, but how to estimate it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Factors are :&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Extension points count&lt;/li&gt;&#xA;&lt;li&gt;Modules layers count (functions, classes, class systems, libraries, shared libraries, applications, network applications, etc.)&lt;/li&gt;&#xA;&lt;li&gt;Dependencies count (platforms included)&lt;/li&gt;&#xA;&lt;li&gt;Features interdependance count.&lt;/li&gt;&#xA;&lt;li&gt;Necessary non-code resources (including graphics/arts, driving scripts - like level design scripts - and other resources required to complete a version of the application).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The more you have of those, the more complex is the project.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-11-06T00:32:08.263" />
  <row Id="17267" PostTypeId="2" ParentId="17254" CreationDate="2010-11-06T00:39:39.077" Score="1" ViewCount="" Body="&lt;p&gt;The thing is, coding is also a communication skill. Jack Ganssle in his Embedded Muse e-newsletter recently quoted Doug Abbott:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;When you write a program, what you’re&#xA;  really doing is communicating to&#xA;  another human what it is you want the&#xA;  computer to do. Programming is about&#xA;  communication, just like any other&#xA;  form of writing. So yes, computer&#xA;  science students should be exposed to&#xA;  good writing. But since there’s so&#xA;  precious little of it in computer&#xA;  science, maybe they just need some&#xA;  basic creative writing classes.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Programmers who don’t know how to write prose probably don’t know how to write code, either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More on this interesting article:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blog.jtimothyking.com/2006/12/15/does-bad-writing-reflect-poor-programming-skills&quot; rel=&quot;nofollow&quot;&gt;Does Bad Writing Reflect Poor Programming Skills?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6869" LastActivityDate="2010-11-06T00:39:39.077" />
  <row Id="17268" PostTypeId="2" ParentId="17206" CreationDate="2010-11-06T00:45:44.083" Score="1" ViewCount="" Body="&lt;p&gt;One tool I used to make learning the hard stuff easier was to learn the art of proof. In maths, you can use something as simple as statistical analysis to intuit the theory, and in CS you can use simulators. Some of my greatest leaps in CS and maths were in discoveries resulting from simulating the problem space.&lt;/p&gt;&#xA;" OwnerUserId="6869" LastActivityDate="2010-11-06T00:45:44.083" CommentCount="1" />
  <row Id="17270" PostTypeId="2" ParentId="17206" CreationDate="2010-11-06T01:12:26.743" Score="4" ViewCount="" Body="&lt;p&gt;The toughest thing I face is the battle between actually working and randomly browsing SE questions....&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-11-06T01:12:26.743" CommentCount="5" />
  <row Id="17271" PostTypeId="2" ParentId="17206" CreationDate="2010-11-06T01:14:29.350" Score="4" ViewCount="" Body="&lt;h2&gt;Multithreading + Manual Memory Management&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Each one of these is tricky enough on its own, but try combining them.  When you're trying to write heavily parallel code, memory management tricks can be necessary to get around the memory allocation/garbage collection bottleneck that would severely limit parallelization if you managed memory naively, especially if you don't have a GC available that's heavily tuned to such a situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Probably the worst bug I've ever had to debug was a situation where I was allocating a data structure on the stack as an optimization.  From a design simplicity perspective, it definitely should have been heap allocated, but from a performance perspective, using the stack was a necessary evil.  I kept getting non-deterministic, erratic behavior.  It turns out that a race condition was causing the stack frame that my data structure was allocated on to be destroyed a fraction of a second too early sometimes, depending on how the threads were scheduled.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-06T01:14:29.350" />
  <row Id="17272" PostTypeId="2" ParentId="5597" CreationDate="2010-11-06T01:42:28.500" Score="0" ViewCount="" Body="&lt;p&gt;It's like in that song - &quot;We don't need no education&quot;... That's all big talk worth little credit. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I went through the process of studying for a Master's degree and I achieved it with first class honours. Am I a better programmer than others? Well, the degree in itself doesn't guarantee it; and I wouldn't be as cheeky as to claim it does. I know lots of people who, I believe, are much more technically skilled and professionally experienced than I, and who have not got a Master's degree (or in fact, any degree in a &lt;em&gt;computing&lt;/em&gt;-related area). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, I am &lt;em&gt;strongly convinced&lt;/em&gt; that a degree is benefitial and I wish ALL developers DID have at least a BSc in computing/software engineering as I believe that people who have done a degree have a &quot;richer&quot; mind model - see a bigger picture - since they all had to, in many cases against their own will, get their hands on a much wider variety of technologies and prodded into more subject areas than those self-proclaimed gurus. (awfully long sentence, sorry if i make little sense, it's quarter to 2am... going to bed now, nighty night)&lt;/p&gt;&#xA;" OwnerUserId="7117" LastActivityDate="2010-11-06T01:42:28.500" CommunityOwnedDate="2011-01-26T20:35:39.517" />
  <row Id="17273" PostTypeId="2" ParentId="17254" CreationDate="2010-11-06T01:55:33.480" Score="3" ViewCount="" Body="&lt;p&gt;This is altogether anecdotal, but:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the best &quot;rock star&quot; programmers I've ever worked with was a very poor writer. And when I say &quot;very poor&quot;, I mean the type that came across like he was either extremely drunk, or barely literate - when you saw his emails. Typos, lack of punctuation, difficulty in expressing ideas clearly, and common spelling mistakes (&quot;their/they're&quot; and such) all abounded - almost excruciatingly at times. Reading some of his emails - I would have been worried about him emailing clients directly (we didn't need to do that in that company) - because it would make the company look bad!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, he was a super star programmer. An order of magnitude more productive and switched on than average.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure what to make of it. I've seen this several times with different people. Some just don't seem to have a knack for sitting down and writing things out. And often it doesn't seem to affect their talents in other areas (even relatively seemingly similar, &quot;knowledge work&quot; talents, such as programming). You'd think it would be connected, but I've seen several living examples like this where it wasn't. Though I guess it's quite possible that they are &quot;&lt;em&gt;exceptions who prove the rule&lt;/em&gt;&quot; - I probably just never thought to notice the bad writers who aren't programmers, and the good writers who &lt;em&gt;are&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-06T01:55:33.480" CommentCount="3" />
  <row Id="17274" PostTypeId="2" ParentId="5597" CreationDate="2010-11-06T02:10:02.283" Score="2" ViewCount="" Body="&lt;p&gt;One of the more frustrating things about self-taught programmers is that they often learn a technique without learning the proper terminology. I worked with a self-taught programmer who was a former US Marine. The guy was sharp and learned things quickly but often used odd terms for things. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;He called pointers &lt;em&gt;stars&lt;/em&gt;. DFAs were called &lt;em&gt;flowcharted&lt;/em&gt; arrays were &lt;em&gt;numbered lists&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If he had taken a few courses at the university level, he might have used the proper terms.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-11-06T02:10:02.283" CommunityOwnedDate="2011-01-26T20:35:39.517" CommentCount="2" />
  <row Id="17275" PostTypeId="1" AcceptedAnswerId="17280" CreationDate="2010-11-06T02:10:06.183" Score="1" ViewCount="274" Body="&lt;p&gt;Ok, so I'm teaching myself Python and I like to jump from 2.6 to 3.1 occasionally to pick up differences. Can someone tell what I'm missing in the 3.1 version:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;2.6 version:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#!/usr/bin/python&#xA;&#xA;# import modules used here -- sys is a very standard one&#xA;import sys&#xA;&#xA;# Gather our code in a main() function&#xA;def main():&#xA;  print 'Hello there', sys.argv[1]&#xA;  # Command line args are in sys.argv[1], sys.argv[2] ..&#xA;  # sys.argv[0] is the script name itself and can be ignored&#xA;&#xA;# Standard boilerplate to call the main() function to begin&#xA;# the program.&#xA;if __name__ == '__main__':&#xA;  main()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Output after running &lt;code&gt;./hello.py James&lt;/code&gt;: &lt;code&gt;Hello there James&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;3.1 version:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#!/usr/bin/python3.1&#xA;&#xA;# import modules used here -- sys is a very standard one&#xA;import sys&#xA;&#xA;# Gather our code in a main() function&#xA;def main():&#xA;  print ('Hello there'), sys.argv[1]&#xA;  # Command line args are in sys.argv[1], sys.argv[2] ..&#xA;  # sys.argv[0] is the script name itself and can be ignored&#xA;&#xA;# Standard boilerplate to call the main() function to begin&#xA;# the program.&#xA;if __name__ == '__main__':&#xA;  main()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Output after running &lt;code&gt;./hello.py James&lt;/code&gt;: &lt;code&gt;Hello there&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="7121" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-11-06T02:28:13.023" LastActivityDate="2010-11-06T02:54:27.683" ClosedDate="2010-11-08T22:36:32.460" Title="Python 2.6 to 3.1 difference" Tags="&lt;python&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="17276" PostTypeId="2" ParentId="17254" CreationDate="2010-11-06T02:22:19.887" Score="0" ViewCount="" Body="&lt;p&gt;I think it is very important for a programmer to be able to communicate well, both with spoken and written language. The ability to translate an idea into words is a prerequisite to writing code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether we are communicating with a computer or a person we have to put words into an order that makes sense following rules of grammar. We have to either pronounce the words correctly or spell them correctly in order for the other side of the conversation to understand them. Computers will throw syntax errors, coworkers will either say &quot;WHAT?&quot; or discount what is being said as inane babbling or worse, an irritating distraction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have strongly discouraged hiring candidates because they couldn't complete a thought or stay on a subject. One person was hired by our boss anyway, and turned out to be unable to deliver a simple assignment on time because he was distracted by whatever bright and shiny new technology or toy caught his eye.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, yes, it is important that programmers be able to communicate well. If they can't effectively communicate with a human they can't do it with a computer.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-11-06T02:22:19.887" />
  <row Id="17277" PostTypeId="2" ParentId="17009" CreationDate="2010-11-06T02:32:22.833" Score="1" ViewCount="" Body="&lt;p&gt;I can related to this - to a point. I've got fed up with a few places, it just takes me about 7 to 10 years :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However to answer this question:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;Furthermore, how does it sound to a hiring manager if this is given as the main reason for quitting a previous job?&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I can tell you point blank that it does not look good. Those doing the hiring have a pretty clear idea about three things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;hiring a new person is an investment by the company doing the hiring - getting Mr Newbie up to speed takes generally 3-6 months during which the new hire learns the business, the people, the tools, the methods, the code base, etc. During that time productivity is lower than after.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;having made an investment in a person, do you want to get 18 months of productive output (before doing it all again because they move on), or more? All other things being equal, if faced with a butterfly who flits from flower to flower, or a stayer, there needs to be a really compelling reason to hire the butterfly.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It &lt;em&gt;seems&lt;/em&gt; to be fairly common for the 2 year butterflies to come in, do stuff, and go before having to live with and fix the problems they create. I've worked with a few butterflies over the years - coming in behind them and fixing their mess while they've gone on to bigger and better things.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The above points all lead those doing the hiring to treat (not always, but often) the people with the endless CV of 2-year stints with some suspicion. Remember the description of the of the Seagull Manager: Comes in, makes a big flap, squawks a lot, eats the food, shits everywhere and then pisses off. Well, sadly, software developers can be like that too, and you don't want to get yourself a reputation like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So there is a difficult balancing act - but saying you needed a change is a pretty lame non-reason. Its better to come up with something more convincing. For example, if you are going stale doing the same old same old, and see no prospect for variety, growth, learning, improvement - then say so. That was after all your real reason for making a change. Likewise if you ended up working for a terrible manager, you are better off saying so - and saying what the problem was. This avoids mistakes and misundertandings later (imagine if the place you are applying to has the same management style - best finding that out early!)&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-11-06T02:32:22.833" CommentCount="1" />
  <row Id="17278" PostTypeId="2" ParentId="17275" CreationDate="2010-11-06T02:32:27.843" Score="3" ViewCount="" Body="&lt;p&gt;There are a lot of differences between the two. Too many to list here, certanly. If you are interested in both, may I suggest &lt;a href=&quot;http://oreilly.com/pub/pr/2423&quot; rel=&quot;nofollow&quot;&gt;O'Reilly's Learning Python&lt;/a&gt; - it is a learning Python (well, duh) book, with a focus on Python 3.x, but with coverage of Python 2.x as well, in a way that the author always gives the &quot;how it works in one and how it works in the other&quot; answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/eYHtF.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;p.s. Just dawned on me ... just in case I misunderstood your question, and you're only interested in the differences in regards to your example; why not install both and try it out? They play nicely installed together on the same machine.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-06T02:32:27.843" CommentCount="3" />
  <row Id="17279" PostTypeId="2" ParentId="17105" CreationDate="2010-11-06T02:41:01.330" Score="4" ViewCount="" Body="&lt;p&gt;If you must do something - eg on a flight - it does not have to directly work / project related.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd suggest some of these:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;read a novel - a bit of escapist down time never hurt anybody&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;read the FINANCIAL section of the newspaper - every programmer and other professional should learn more about business, money, investing and how the world goes round. It won't be an easy start but as yoda might put it: &quot;Learn it you must&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;read a bit about project management, or 6 sigma, or any of the other fads and jargon-laden things that are washing around. Do so with an open and critical mind, not taking anybodies word as gospel truth.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This is ultimately all a broadening of you and your education which you will never get any other way. Over a long term (10 years or do) you know more than your peers - you become more rounded, more knowledgeably, more employable, and more respected.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastEditorUserId="6279" LastEditorDisplayName="" LastEditDate="2010-11-06T03:34:05.340" LastActivityDate="2010-11-06T03:34:05.340" />
  <row Id="17280" PostTypeId="2" ParentId="17275" CreationDate="2010-11-06T02:54:27.683" Score="2" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;print ('Hello there'), sys.argv[1]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;should be&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;print ('Hello there', sys.argv[1])&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The original code is creating a tuple, while the corrected code concatenates the strings correctly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a side note, this question is best suited for StackOverflow.&lt;/p&gt;&#xA;" OwnerUserId="1875" LastActivityDate="2010-11-06T02:54:27.683" CommentCount="1" />
  <row Id="17281" PostTypeId="2" ParentId="3892" CreationDate="2010-11-06T03:04:06.910" Score="10" ViewCount="" Body="&lt;p&gt;I read the comments here and have a bit of a laugh.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've asked these questions in interviews, and other questions like them (I won't show my hand and say what they are but you can probably guess).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These questions CAN and ARE a decider of who gets hired.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In one case a few of us were in an interview, things were going well, and the guy got asked the &quot;curly question with no right answer&quot; at the end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When asked, he got very agitated, stared at us all, and said something like: &quot;thats a dumb question, I can't see the relevance of it, and I think we should move on&quot;. At the same time he was leaning across the table, aggressive, and seemed ready to hit whoever was closest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you can imagine, the question gave multiple answers:&#xA;- can't work well under pressure&#xA;- aggressive AND arrogant&#xA;- does not WANT TO TRY and think on his feet&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry - but professional work in IT / software / engineering requires all of the above attributes. If you can be shown to have those behaviour patterns in an interview then the question did its job: No Hire.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also been in the same kind of interview with somebody who realised immediately what was going on, asked more questions to tease out the ope-ended nature of the original question. Refined, made notes, did it all on a white-board in front of us, realised the parts that were spurious or irrelevant, and came up with an answer. The actual answer didn't matter. The process of getting there did. Got hired.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These questions are asked for a very good reason: They show a bit more about your PERSONALITY and also ANALYTICAL ability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any workplace of more than 1 person, a new hire needs to be technically able as well as have a personality that will fit with the group (to varying degrees). Frequently you can teach to extend ability, but there is nothing you can do about personality conflicts. Finding them early is a great thing.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-11-06T03:04:06.910" CommentCount="3" />
  <row Id="17282" PostTypeId="2" ParentId="17105" CreationDate="2010-11-06T03:13:17.530" Score="1" ViewCount="" Body="&lt;p&gt;I like to listen to podcasts and/or audiobooks. There are &lt;a href=&quot;http://blog.devadept.com/p/podcasts.html&quot; rel=&quot;nofollow&quot;&gt;a ton of great podcasts&lt;/a&gt; out there (technical and non-technical), and if you're not into buying all your books, the local library likely has digital downloads or audiobooks on CD you can rip to your mp3 player.&lt;/p&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-11-06T03:13:17.530" />
  <row Id="17283" PostTypeId="2" ParentId="10567" CreationDate="2010-11-06T03:20:02.870" Score="4" ViewCount="" Body="&lt;p&gt;You will need to do a few things, here are some off the top of my head (having been around this a few years ago):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;You need lots of memory to run Windows Embedded 7. Check the data - you might be surprised at how much RAM you need.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make sure you understand how the write filter works, if you are using CF or similar as your &quot;hard drive&quot;. If you have a real spinning HD then its not such a big deal.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do a course on using the tools. ESSENTIAL. I spent a couple of months on the previous generation tools and it was a pretty terrible time learning them. A 1 day course teaches what you will take 1-2 weeks to learn yourself. MS even offer some of these courses for free.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Figure out how you want to lock down the platform. To do this you need to do things like disable web browsers, javascript, turn off file sharing and workstation services (about 70% of all the windows services CAN be disabled and probably should be - this will depend on your application though)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Some aspects can only be locked down using manual steps on a master &quot;golden&quot; platform where you build the image, as manual steps hand entered, after the image build. WRITE DOWN A PROCEDURE to allow this to be replicated.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do everything (all your target building) in a VM, and check the VM into source control after. It will be between 8 and 10 GB - make sure that your VM splits the virtual disk into 2 GB chunks to make your source control systems life easier. This sounds over the top but it will save your life 2 years later.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Check out and understand how the patch / update system works. We had to write our own, the standard one was not good enough. Things have moved on since but you still must understand this.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Line up a consultant who has done this MANY times before, and get them in for a day or a week if you need to. Make them document everything they do, and WHY. You may need help, and a few days of an experienced consultant will save you a month. A classic turning of $ into time. MAKE sure they are experienced. There are lot of BS people selling Windows Embedded out there - doing the easy 90% is (surprise) easy. The other 10% is damn hard.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Understand the requirements for branding - removing the MS logos and names and putting your own in. Its relatively easy but you must do it. You may need a graphic designer to make splash / start screens.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Go through the license agreement 10 times. It is a LOT of fine print. Your legal department will need to look at it. You MUST understand it and the implications it imposes on your AND YOUR SUPPLY CHAIN. The agreement IS onerous.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It is probably not a good idea to have windows updates enabled. You don't want your product doing various automatic unknown updates. (which leads to:)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make sure you know how to use and setup the windows firewall so that all ports are blocked except those used only by your application. This reduces the hack-attack surface.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you get through all this, by all means use it. It is a very powerful platform.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-11-06T03:20:02.870" />
  <row Id="17284" PostTypeId="2" ParentId="16734" CreationDate="2010-11-06T03:38:08.573" Score="1" ViewCount="" Body="&lt;p&gt;in &lt;strong&gt;Delphi&lt;/strong&gt;, classes almost always start with T.  TObject, TStringList, TButton, etc.  Its a carry-over from Turbo Pascal days.  Pointers to objects start with P.  PObject, etc.  Its not required, but its so commonly adhered to that it wouldnt suprise me if some Delphi developers think its a language requirement.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-06T03:38:08.573" />
  <row Id="17285" PostTypeId="2" ParentId="17105" CreationDate="2010-11-06T03:42:19.550" Score="3" ViewCount="" Body="&lt;p&gt;My suggestion, which no one has mentioned yet, is &lt;strong&gt;to spend time with other people.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems so much of a programmer's life is spent interacting with (virtual) objects that any additional interaction with people (in a positive and constructive way) would benefit them as a person! (And others, as well. I didn't mean to make it sound so self-centered. Rather the opposite, one needs to care for others, too!)&lt;/p&gt;&#xA;" OwnerUserId="2515" LastEditorUserId="2515" LastEditorDisplayName="" LastEditDate="2010-11-06T13:06:38.490" LastActivityDate="2010-11-06T13:06:38.490" />
  <row Id="17286" PostTypeId="1" CreationDate="2010-11-06T04:13:02.680" Score="5" ViewCount="229" Body="&lt;p&gt;I read through &lt;a href=&quot;http://www.manning.com/herrington/&quot; rel=&quot;nofollow&quot;&gt;Code Generation in Action&lt;/a&gt; but never bothered to make anything of it because Ruby just doesn't fit with my lifestyle at this juncture.  The book came out more on the cusp of the C# revolution, and it said that C# &quot;was a language designed to be generated&quot;, apparently using Ruby as the generator language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your experience, what is the ideal combination of languages to generate the most useful code?  &lt;/p&gt;&#xA;" OwnerUserId="1973" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2010-11-07T01:36:13.950" LastActivityDate="2010-11-07T17:18:26.360" Title="What's the best language combo for code generation?" Tags="&lt;code-generation&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="17287" PostTypeId="1" AcceptedAnswerId="17289" CreationDate="2010-11-06T04:28:17.390" Score="5" ViewCount="349" Body="&lt;p&gt;My take:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The size of the company doesn't matter, but one project - one developer; only nominal reporting to the management&lt;/li&gt;&#xA;&lt;li&gt;Flexible working hours, should total to 40 hours weekly though&lt;/li&gt;&#xA;&lt;li&gt;Rare meetings, only for brainstorming architectural issues&lt;/li&gt;&#xA;&lt;li&gt;Guaranteed yearly salary increase of 10%; as well as stocks/options granted every year&lt;/li&gt;&#xA;&lt;li&gt;15% of time is allowed for hobby projects, another 15% for reading news, articles&lt;/li&gt;&#xA;&lt;li&gt;Free and never-ending flow of coffee and chocolate (and food?)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-06T18:16:44.677" ClosedDate="2010-11-06T22:40:00.510" Title="Describe a software company you'd work at for at least 10 years" Tags="&lt;jobs&gt;&lt;ideal-company&gt;" AnswerCount="7" CommentCount="13" FavoriteCount="3" />
  <row Id="17288" PostTypeId="2" ParentId="17287" CreationDate="2010-11-06T04:59:12.787" Score="3" ViewCount="" Body="&lt;p&gt;The only way I could stay in the same company for 10+ years would be if I got to move around between departments and roles and branches in separate cities/states/countries - and didn't &lt;a href=&quot;http://programmers.stackexchange.com/questions/17009/is-needing-a-change-an-acceptable-reason-to-move-on-from-a-job&quot;&gt;get stuck in any one set of surroundings for too long&lt;/a&gt;. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than this, I'm actually very tolerant in the short term. There is almost nothing that I couldn't put up with for say, a 6-12 month contract stint.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-06T04:59:12.787" CommentCount="2" />
  <row Id="17289" PostTypeId="2" ParentId="17287" CreationDate="2010-11-06T05:23:51.593" Score="11" ViewCount="" Body="&lt;p&gt;In order to keep me for ten years, a company must manage to not do something so terminally annoying that it changes the entire work landscape. Ten years is a long time, I'm not so sure if that's possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, this is what a company needs to offer for me to remain interested on a year to year basis:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It must promote learning, through conventional and non conventional means.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I would like to be compensated, at least in part, for any classes that I take, seminars that I attend and similar. They need to make sure time is available for me to do this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, I need to be able to 'bury' myself in self study of something new and they need to pay me to do that.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It must offer ideal working conditions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I need to be able to manage my interruptions, that is a no-brainer. I need to work with computers that are modern enough to handle what I need them to do. I need administrative processes to be as simple and efficient as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bonus points would be awarded if the company went out of its way to make things convenient for telecommuters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I need to be, for the most part, autonomous and self directed.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I should not have to ask for raises&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I need a company that actually notices when employees do exceptional work and rewards them in a timely manner. This isn't just for my benefit, I need to make sure that the people around me are also properly motivated.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Access to what I need, when I need it&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I might need a book. I might need an IP KVM switch if my development machines are located off site. I might need some hardware upgrades. I might need to call in a consultant to help me get over a steep learning curve for something that I've never been exposed to before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not saying every word out of me is &lt;em&gt;I need, I need, I need!&lt;/em&gt;, but (no pun intended) I need to be able to get the tools that help me do my job.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A solid, existing infrastructure&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I have had more than my fill of joining start up companies and bringing best practices with me, then suffering through the process of getting the company to actually implement them. I don't agree that every single item on the Joel test is a deal breaker, but I want to work somewhere where everyone knows how to manage / test / debug / track / document code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want bug trackers, multiple wiki sites that are maintained faithfully, and all of the other things that say &quot;these people know how to collaborate&quot;. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I should never ask &quot;Then why did you hire me??&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Barring legal implications of using / distributing certain libraries or tools, I need to be able to use what I want. Nothing irks me more than re-inventing a wheel that I am not interested in re-inventing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, I'm willing to defend a design or engineering decision just like I would defend a thesis, it's just part of the job. Yet, I can't stand being micro managed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In conclusion, all of the free coffee and muffins in the world won't help if you can't stand your job because something is fundamentally wrong. I bring a thermos to work anyway, it helps cut down on exercise.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-06T05:23:51.593" CommentCount="7" />
  <row Id="17290" PostTypeId="1" CreationDate="2010-11-06T05:57:25.160" Score="13" ViewCount="423" Body="&lt;p&gt;I have about 6 years of full time experience developing web applications and tools. I know perl, python, PHP, ruby, and a good deal of SQL and relational theory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have never had to choose a self-employed path as I have always had full time work or a bank account (credit cards) to support a big project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm planning to move out of the country to an area that will not offer local employment, and need some advice on what to focus on. I want to move in no more than six months, I have enough savings to live for an additional six months, but I would like to conserve it as much as possible.  I enjoy taking risks, so I'm not looking for discussion of whether this is a good idea or not.  I want advice on the most reliable solution given my skill set.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some paths I'm considering:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learn objective-c and build quality Apple software.&lt;/li&gt;&#xA;&lt;li&gt;Develop subscription based web tools for SEO, or other Marketing applications&lt;/li&gt;&#xA;&lt;li&gt;Attempt to acquire freelance projects by developing a reputation within open source projects, freelancer.com, and other online communities&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The last time I left my job, I was building a startup (that went under), and missed out living in a beautiful place due to the amount of time I worked. I would like to work 30-40 hours per week max.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can dedicate 10-15 hours per week while at my current job to prepare and learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A preemptive thanks for the advice...&lt;/p&gt;&#xA;" OwnerUserId="7128" LastActivityDate="2010-12-27T18:36:54.697" Title="Dropping the full-time high-pay gig - I need help choosing a smart path that I can rely on to produce enough to survive comfortably ($2,500 per month)" Tags="&lt;career&gt;&lt;web-development&gt;&lt;apple&gt;&lt;lifestyle&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="11" />
  <row Id="17291" PostTypeId="2" ParentId="3892" CreationDate="2010-11-06T06:56:13.663" Score="3" ViewCount="" Body="&lt;p&gt;I'd answer it, but I'd make sure they knew that I knew they are very common questions found on blogs and in industry books.  I'd probably nod my head and say 'Of course this is a very populuar one, but here's a few ways to solve it...',  or maybe 'thats a new take on the old question about...', or even &quot;I see we read the same blogs&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, it'd be a serious strike against any company that did that.  It'd tell me they're a conventional bunch, who parrot what they read in IT magazines as 'best practices'.  &lt;strong&gt;Especially&lt;/strong&gt; if they gave me one of the well known questions without changing it up.  Such companies would probably &lt;em&gt;not&lt;/em&gt; want me working for them.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-06T06:56:13.663" CommentCount="1" />
  <row Id="17292" PostTypeId="2" ParentId="17286" CreationDate="2010-11-06T07:04:35.323" Score="3" ViewCount="" Body="&lt;p&gt;Rather than generating code... can you instead focus on building a better, reusable framework to avoid the repetition?  So if you are constantly creating, say, classes for users &amp;amp; security models, a good, reusable framework might be better than a code generator.  Same with gui's... dont generate the code for the gui, rather, create an application framework that can read a file and generate the interface.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-06T07:04:35.323" CommentCount="2" />
  <row Id="17293" PostTypeId="2" ParentId="17005" CreationDate="2010-11-06T07:14:58.257" Score="1" ViewCount="" Body="&lt;p&gt;If possible, review the design before (or even after) the meeting, and talk to the designers in private. Shoot people down in a meeting in front of all their colleages will tend to make them instantly defensive and closed-minded about your suggestions, and can lead to a reputation as a &quot;trouble maker&quot; even though you think you're being helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good (but often difficult) way to present &quot;criticisms&quot; is to ask leading questions - let the other person try to answer your question and realise the flaw for themselves. Then it seems much more like their own idea and they will be more likely to take it forward. Again, this works best in private discussions, but can be a more diplomatic and effective way forward in a meeting situation (Note: Try to avoid getting into an argument or long discussion to convince people in the meeting. Just get the idea across and try not to labour the point. It may be better to let go of it and then have a chat with the designers after the meeting to &quot;clear up something I didn't quite understand&quot; than to be &quot;the guy who made a simple 30 minute meeting waste my whole morning&quot;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another approach is to email your suggestions (diplomatically) to the lead designer (or a relevant but small distribution list). It may help get your ideas considered, and also gives you a &quot;paper trail&quot; to support any &quot;I told you so&quot; situation in the future (if things go pear-shaped, you at least have proof that you tried to help but were ignored. But if things get that bad, you probably aren't working in the right company)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, bear in mind that sometimes you may be &quot;wrong&quot;. The people you're talking to may have a clearer or more complete understanding of their design than you do, and have good reasons for their approach (for example, I was recently accused by a team member of creating an &quot;inefficient&quot; design, but it was a deliberate design as I knew performance would still be acceptable, but it would halve the development cost - it was a business decision rather than a code quality decision). Just try to be open minded about others' ideas - sometimes what appears to be a bad idea to you may be a good idea for reasons you haven't considered.&lt;/p&gt;&#xA;" OwnerUserId="1335" LastActivityDate="2010-11-06T07:14:58.257" />
  <row Id="17295" PostTypeId="2" ParentId="2715" CreationDate="2010-11-06T07:48:43.357" Score="0" ViewCount="" Body="&lt;p&gt;Not that anyone will notice, but this is why braces belong on the &lt;strong&gt;same line&lt;/strong&gt; as the conditional (except for very long conditionals, but that's an edge case):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In C, this is a valid construct:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;while(true);&#xA;{&#xA;    char c;&#xA;    getchar(); //Wait for input&#xA;}&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Quick! What does this code do? If you answered &quot;infinite loop asking for input&quot;, you are wrong! It doesn't even get to the input. It gets caught at &lt;code&gt;while(true)&lt;/code&gt;. Notice that semicolon at the end. This pattern is actually more common that it seems like it should be; C requires you to declare your variables at the beginning of a block, which is why a new one was started.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A line of code is a thought. Braces are a part of the thought containing the conditional or loop. Therefore, they belong on the &lt;strong&gt;same line.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="12774" LastActivityDate="2010-11-06T07:48:43.357" CommunityOwnedDate="2010-11-06T07:48:43.357" />
  <row Id="17296" PostTypeId="2" ParentId="17254" CreationDate="2010-11-06T07:51:33.943" Score="0" ViewCount="" Body="&lt;p&gt;Poor writers make poor writers, and nothing else. Poor writing skill does not mean they can't communicate at all, but they just can't write or express very well. Of course anyone can say communication skill is important and crucial in company and so on and so forth, but that doesn't mean a programmer with poor communication skill can't get the job done nicely. The programming and writing are art, but of completely different kind. Writing is about how to make some other human understand what you are saying and/or act accordingly, but programming is not making computer understand your requirement, because no computer will understand any user requirement (at least within 100 years from now IMO). The programming is about how to translate the requirement to the programming language, and that's why writing skill is not so related. &lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-11-06T07:51:33.943" CommentCount="1" />
  <row Id="17297" PostTypeId="2" ParentId="17286" CreationDate="2010-11-06T08:38:07.183" Score="1" ViewCount="" Body="&lt;p&gt;You need to be able to proficiently debug code to be able to utilize this when users start reporting problems.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If, for instance, you write some code in the hypothetical code generator language Foo, which a code generator converts to C# or VB.NET or Javascript, it is crucial if you can debug inside the Foo language (including stack traces sent from customers) or if you need use the debugger available in C#/VB.NET/Javascript.  If it is the latter, then I would recommend against it.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-06T08:38:07.183" CommentCount="3" />
  <row Id="17298" PostTypeId="2" ParentId="17290" CreationDate="2010-11-06T11:02:54.513" Score="5" ViewCount="" Body="&lt;p&gt;I know people that live like kings Thailand with $700 a month they get from social help in their home country (In belgium when you are unemployed, you get approximatively $1100 the first year as soon as you can &quot;check in&quot; twice a month and prove you are looking for a job).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thailand is not the only country you can pick like that. I know another guy that is in China and live ridiculously well with similar amounts. If you browse the web, you will get many more exemples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So with only $1500 a month, you can live VERY well in the most beautiful countries in the world (if you remove Europe &amp;amp; North America).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now if you decide to go freelance and sell a &lt;strong&gt;product&lt;/strong&gt; (not a service), you can do &lt;strong&gt;lot&lt;/strong&gt; more than $1500 a month very quickly. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So in the paths you have considered, I would only invest in the first two.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Why it's so easy?&lt;/code&gt; Because &lt;em&gt;too many&lt;/em&gt; programmers like you are just too scared to take the decision or to move on. And from the rest of them, the ones that decide to go for it, most of them abandon their project when they face the very first difficulties...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;So who wins ? The ones that can fight their fears.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-06T11:02:54.513" CommentCount="5" />
  <row Id="17299" PostTypeId="2" ParentId="17254" CreationDate="2010-11-06T11:10:01.190" Score="1" ViewCount="" Body="&lt;p&gt;If they can't write well, how can they &lt;em&gt;convince&lt;/em&gt; you that they are good programmers?&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-06T11:10:01.190" />
  <row Id="17300" PostTypeId="2" ParentId="17287" CreationDate="2010-11-06T11:11:48.450" Score="6" ViewCount="" Body="&lt;p&gt;10+ and even 100+ if I could:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;R&amp;amp;D&lt;/strong&gt; Software Company&lt;/li&gt;&#xA;&lt;li&gt;I bring &lt;strong&gt;my ideas&lt;/strong&gt;, I'm paid to develop some of them (one at a time), I get financial support, and &lt;strong&gt;I get a negociated %&lt;/strong&gt; of the returns and/or the company that may be created based on the idea&lt;/li&gt;&#xA;&lt;li&gt;I work from &lt;strong&gt;anywhere&lt;/strong&gt; in the world&lt;/li&gt;&#xA;&lt;li&gt;I work &lt;strong&gt;when&lt;/strong&gt; I want to work&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;My dream&lt;/strong&gt; is to create a such company to help &lt;code&gt;creative&lt;/code&gt; developers live &lt;strong&gt;their dream&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Today I do it on my own, but with my limited resources.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-06T14:09:41.370" LastActivityDate="2010-11-06T14:09:41.370" CommentCount="4" />
  <row Id="17301" PostTypeId="2" ParentId="17183" CreationDate="2010-11-06T11:57:52.437" Score="0" ViewCount="" Body="&lt;p&gt;I have developed my own diagnostic logic and form:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Press CTRL-ALT-F12&lt;/strong&gt;. This will open a diagnostic window containing the screenshot of the screen you were in, detailed log files, application state, computer info.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;If you have access to the internet, click on the &quot;Send&quot; button.&lt;/strong&gt; The content of what you see will be sent to us directly&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;If you don't have access to the internet, click save as and send us the file by email&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If the above doesn't work, I use either &lt;a href=&quot;http://www.teamviewer.com&quot; rel=&quot;nofollow&quot;&gt;TeamViewer&lt;/a&gt; (nothing to install and pass trought firewalls) or &lt;a href=&quot;http://www.logmein.com&quot; rel=&quot;nofollow&quot;&gt;LogMeIn&lt;/a&gt; (must be installed, but works fine in controlled environment)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-06T11:57:52.437" />
  <row Id="17302" PostTypeId="2" ParentId="17105" CreationDate="2010-11-06T12:49:40.810" Score="1" ViewCount="" Body="&lt;p&gt;offline != down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I keep a full deployment on my own machine, so that I do not need to be online to develop.  This allowed me to do a fair amount of development work while commuting via train before the trains in this area started supporting wifi.&lt;/p&gt;&#xA;" OwnerUserId="1353" LastActivityDate="2010-11-06T12:49:40.810" CommentCount="1" />
  <row Id="17303" PostTypeId="2" ParentId="17254" CreationDate="2010-11-06T13:21:45.967" Score="2" ViewCount="" Body="&lt;p&gt;I think if we examine the question, we obtain the answer directly:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is an inability to express yourself in&#xA;  writing in a natural language such as&#xA;  English a hindrance of writing good&#xA;  code?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;What does it actually mean to write good code?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Programs must be written for people to&#xA;  read, and only incidentally for&#xA;  machines to execute.&lt;br&gt;&#xA;  - Abelson &amp;amp; Sussman, Structure and Interpretation of Computer Programs&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It means to express yourself clearly, concisely, correctly and elegantly writing in a programming language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only difference between expressing yourself skillfully in English or a programming language is that English is far more forgiving.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-11-06T13:21:45.967" />
  <row Id="17304" PostTypeId="2" ParentId="17254" CreationDate="2010-11-06T13:40:03.143" Score="1" ViewCount="" Body="&lt;p&gt;That depends on what you mean by &quot;good code&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you mean code that just works, there is hardly any relation between being able to communicate with humans and being able to communicate with computers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you mean code that works, is maintainable, and clearly expresses the intention of the code, there is absolutely a relation between writing good code and writing in a language solely intended for humans.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although you wouldn't need all the different skills required to be a good writer for writing understandable code, there are still some of the elements that have to be there, as both will be read by humans. In some ways it's even harder to write good code, as it should describe the intention with the code, while not using constructs that would perform badly while executed by the computer.&lt;/p&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-11-06T13:40:03.143" />
  <row Id="17305" PostTypeId="1" CreationDate="2010-11-06T13:50:25.117" Score="24" ViewCount="7661" Body="&lt;p&gt;There has been a few remarks about white space already in discussion about curly braces placements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I myself tend to sprinkle my code with blank lines in an attempt to segregate things that go together in &quot;logical&quot; groups and hopefully make it easier for the next person to come by to read the code I just produced.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, I would say I structure my code like I write: I make paragraphs, no longer than a few lines (definitely shorter than 10), and try to make each paragraph self-contained.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;in a class, I will group methods that go together, while separating them by a blank line from the next group.&lt;/li&gt;&#xA;&lt;li&gt;if I need to write a comment I'll usually put a blank line before the comment&lt;/li&gt;&#xA;&lt;li&gt;in a method, I make one paragraph per step of the process&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;All in all, I rarely have more than 4/5 lines clustered together, meaning a very sparse code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't consider all this white space a waste because I actually use it to structure the code (as I use the indentation in fact), and therefore I feel it worth the screen estate it takes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for (int i = 0; i &amp;lt; 10; ++i)&#xA;{&#xA;    if (i % 3 == 0) continue;&#xA;&#xA;    array[i] += 2;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I consider than the two statements have clear distinct purposes and thus deserve to be separated to make it obvious.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, how do you actually use (or not) blank lines in code ?&lt;/p&gt;&#xA;" OwnerUserId="4853" LastEditorUserId="4853" LastEditorDisplayName="" LastEditDate="2010-12-13T20:00:11.883" LastActivityDate="2011-02-05T06:38:51.843" CommunityOwnedDate="2011-02-05T06:38:51.843" Title="How do you use blank lines in your code ?" Tags="&lt;holy-war&gt;&lt;code-formatting&gt;" AnswerCount="28" CommentCount="9" FavoriteCount="2" />
  <row Id="17306" PostTypeId="2" ParentId="17305" CreationDate="2010-11-06T14:06:00.643" Score="79" ViewCount="" Body="&lt;h1&gt;Always&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Whitespace is crucial to clean readable code. A blank line (or two) help visually separate out logical blocks of code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, from &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735619670&quot; rel=&quot;nofollow&quot;&gt;Steve McConnell's Code Complete, Second Edition&lt;/a&gt; chapter on Layout and Style:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Subjects scored 20 to 30 percent higher on a test of comprehension when programs had a two-to-four-spaces indentation scheme than they did when programs had no indentation at all.&lt;/strong&gt; The same study found that it was important to neither under-emphasize nor over emphasize a program’s logical structure. The lowest comprehension scores were achieved on programs that were not indented at all. The second lowest were achieved on programs that used six-space indentation. The study concluded that two-to-four-space indentation was optimal. Interestingly, many subjects in the experiment felt that the six-space indentation was easier to use than the smaller indentations, even though their scores were lower. That’s probably because six space indentation looks pleasing. But regardless of how pretty it looks, six-space indentation turns out to be less readable. This is an example of a collision be tween aesthetic appeal and readability.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="37" LastEditorDisplayName="" LastEditDate="2011-02-05T04:55:45.790" LastActivityDate="2011-02-05T04:55:45.790" CommunityOwnedDate="2011-02-05T06:38:51.843" CommentCount="5" />
  <row Id="17307" PostTypeId="2" ParentId="17305" CreationDate="2010-11-06T14:06:21.110" Score="19" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes for clarity.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just like I did in this answer.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-06T14:06:21.110" CommunityOwnedDate="2011-02-05T06:38:51.843" />
  <row Id="17308" PostTypeId="2" ParentId="17287" CreationDate="2010-11-06T14:15:15.610" Score="2" ViewCount="" Body="&lt;p&gt;A different approach. In 10 years, I want to become either a branch or department director. I want the ability to move up be involved in critical management and move my way up as fast as I can. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;During the 10 years, I want to be able on personal projects related to work. I love to get out of the normal spectrum and develop solutions for small problems.&lt;/p&gt;&#xA;" OwnerUserId="6511" LastActivityDate="2010-11-06T14:15:15.610" />
  <row Id="17309" PostTypeId="2" ParentId="17305" CreationDate="2010-11-06T14:18:35.420" Score="4" ViewCount="" Body="&lt;p&gt;I get criticized a lot for writing my code this way. I don't understand why anyone would not do it this way. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Readability it so important when you come back to a project after an extended period of time and I've heard a saying &quot;Always write code if the next guy who is reading it is a Psychopath who knows your location&quot;.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-11-06T14:18:35.420" CommunityOwnedDate="2011-02-05T06:38:51.843" CommentCount="3" />
  <row Id="17310" PostTypeId="1" CreationDate="2010-11-06T14:19:03.067" Score="5" ViewCount="197" Body="&lt;p&gt;Hello&lt;/p&gt;&#xA;&#xA;&lt;p&gt;sometimes a programmer comes up with a brilliant idea to protect his/her webservice created with Windows Communication Foundation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to hear from you guys, which techniques do you use to protect your WCF service and avoid unauthorized users to consume it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, you would:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;avoid Impersonate, use it only if necessary &lt;/li&gt;&#xA;&lt;li&gt;publish metadata information to prevent tampering&lt;/li&gt;&#xA;&lt;li&gt;avoid memory consuption enforcing a maximum size quota &lt;/li&gt;&#xA;&lt;li&gt;create a security context token to control number of sessions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5934" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-07T13:02:23.787" LastActivityDate="2010-11-07T20:02:01.790" Title="How do you protect your WCF service?" Tags="&lt;security&gt;&lt;services&gt;&lt;wcf&gt;" AnswerCount="1" FavoriteCount="0" />
  <row Id="17312" PostTypeId="2" ParentId="17305" CreationDate="2010-11-06T14:24:12.443" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes, but I don't abuse it.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen code where every line of code inside a method is separated by a blank line, and two blank lines are used where a logical separation occurs. That just makes it even less readable in my opinion. I've also seen whitespace used to make crazy alignments, such as this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//Prot.   Return type                    Name                 Arg1        Arg2&#xA;//=====   ============================== ==================== =========== ========&#xA;&#xA;private   int                            AMethodWithALongName(string s,   object o)&#xA;{&#xA;    ...&#xA;}&#xA;&#xA;private   IDictionary&amp;lt;MyLongObject, int&amp;gt; SomethingCrazy      (string s)&#xA;{&#xA;    ...&#xA;}&#xA;&#xA;protected void                           Foo                 (string str, object o)&#xA;{&#xA;    ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The same misuse of horizontal whitespace can be applied to vertical whitespace. Like any tool, use it wisely.&lt;/p&gt;&#xA;" OwnerUserId="135" LastActivityDate="2010-11-06T14:24:12.443" CommunityOwnedDate="2011-02-05T06:38:51.843" CommentCount="9" />
  <row Id="17313" PostTypeId="1" AcceptedAnswerId="17316" CreationDate="2010-11-06T14:38:45.283" Score="3" ViewCount="298" Body="&lt;p&gt;I have been a programmer for two years, and i am getting hard to level up my skill especially working at legacy code maintenance right now. I think working hard is not enough to elevate my skill, because there are ton of opensource around us, the preoject i have been involved are all mixture of opensources --- from front end to back end from presentation tier to business logic tier. My work is just gluing all these together or something fewer complex which is to collect data from UI to logic module then retrieve the data processed and put it to UI. Sometime there is a need to add some simple logic(like assembling the data to a form that fit business logic interface) while transport data. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Could you please give me any suggestion what should i do on the side to improve my skill? Thanks!&lt;/p&gt;&#xA;" OwnerUserId="7136" LastActivityDate="2010-11-07T01:09:30.230" Title="How to morph from a programmer noob to a guru?" Tags="&lt;self-improvement&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="17314" PostTypeId="2" ParentId="17313" CreationDate="2010-11-06T14:47:34.180" Score="7" ViewCount="" Body="&lt;p&gt;Some good reading:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/1785/what-should-every-programmer-know-about-programming&quot;&gt;What should every programmer know about programming&lt;/a&gt;?&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/3851/when-would-someone-be-considered-a-bad-programmer&quot;&gt;When would someone be considered a bad programmer&lt;/a&gt;?&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/3089/what-is-the-single-most-effective-thing-you-did-to-improve-your-programming-skill&quot;&gt;What is the single most effective thing you did to improve your programming skill&lt;/a&gt;?&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/9903/what-are-the-vital-qualities-need-for-a-junior-level-programmer-to-become-a-good&quot;&gt;What are the vital qualities needed for a junior level programmer to become a good senior level programmer&lt;/a&gt;?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-06T14:47:34.180" />
  <row Id="17315" PostTypeId="1" AcceptedAnswerId="17318" CreationDate="2010-11-06T15:00:33.463" Score="7" ViewCount="452" Body="&lt;p&gt;As stated by the title, what is the difference in years of experience in given language in terms of developers? For example, if one developer has had five years working with language A and the other developer has had two years working with language B followed by three years working with language A, would there be perceivable difference between them?&lt;/p&gt;&#xA;" OwnerUserId="2471" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:12:16.243" LastActivityDate="2011-02-18T18:58:49.147" Title="What is the difference in a developer's years of experience with a language?" Tags="&lt;career&gt;" AnswerCount="11" FavoriteCount="2" />
  <row Id="17316" PostTypeId="2" ParentId="17313" CreationDate="2010-11-06T15:08:49.993" Score="5" ViewCount="" Body="&lt;p&gt;The most valuable skill I think you can nurture is the ability to interface with non-technical people. If you can explain to a non-technical business user (this also applies to decision makers) in simple terms what is going on with a very complicated system then you are worth your weight in gold.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;For Example:&lt;/strong&gt; Descibe what a database is to a non-technical person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; A database is simply a tool that lets you to put your &lt;strong&gt;stuff&lt;/strong&gt; into &lt;strong&gt;cubbie-holes&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This builds your reputation as makes you very approachable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another area I would focus on is &lt;strong&gt;requirements gathering&lt;/strong&gt;. Every one likes to solve, &lt;strong&gt;&lt;em&gt;solvable problems&lt;/em&gt;&lt;/strong&gt;. If your users are trying to solve a problem and they are frustrated, if you can listen to what they &lt;strong&gt;need&lt;/strong&gt; not what they &lt;strong&gt;want&lt;/strong&gt; and provide a solution then you are worth your weight in gold. Especially if you describe the solution in simple to understand terms like the above example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do not focus on solving problems from a programming language point of view. If you use VBScript and think in terms of a VBScript solution you are limiting yourself. Learn to solve problems or develop algorithms that are language independent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn to listen, I mean really listen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never play the I've got a secret game. If you learn something share it with others. Teach people how to fish rather than give them a fish.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can always rely on places like this and Stack Overflow when you have a technical issue to solve. Being a geek with people skills is farm more valueable to an organization.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T15:08:49.993" CommentCount="2" />
  <row Id="17317" PostTypeId="2" ParentId="17315" CreationDate="2010-11-06T15:17:12.723" Score="0" ViewCount="" Body="&lt;p&gt;Yes, Programmer 1 has no &lt;strong&gt;syntax&lt;/strong&gt; knowledge of language B.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming concepts are programming concepts. The language is merely syntax.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastEditorUserId="6801" LastEditorDisplayName="" LastEditDate="2010-11-06T15:28:54.757" LastActivityDate="2010-11-06T15:28:54.757" CommentCount="2" />
  <row Id="17318" PostTypeId="2" ParentId="17315" CreationDate="2010-11-06T15:26:32.370" Score="21" ViewCount="" Body="&lt;p&gt;&quot;it depends&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Experience &amp;lt;&gt; knowledge or understanding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmer 1 could be very good, a guru even, or they could be someone fumbling around with the language for the last 5 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmer 2 could be someone who understands concepts independently of language they're using. Or someone who found language B too difficult and hopes A is easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coding Horror's &lt;a href=&quot;http://www.codinghorror.com/blog/2008/02/the-years-of-experience-myth.html&quot; rel=&quot;nofollow&quot;&gt;&quot;The Years of Experience Myth&quot;&lt;/a&gt; is worth reading&lt;/p&gt;&#xA;" OwnerUserId="5905" LastEditorUserId="5905" LastEditorDisplayName="" LastEditDate="2010-11-06T15:31:54.570" LastActivityDate="2010-11-06T15:31:54.570" CommentCount="3" />
  <row Id="17319" PostTypeId="2" ParentId="17315" CreationDate="2010-11-06T15:27:58.933" Score="2" ViewCount="" Body="&lt;p&gt;Of course, the developer who has more years of experience in one language will have a better understanding of the core libraries and idiosyncrasies of that language. If the languages embrace the same paradigm (imperative vs functional) then they should not have any more trouble picking up that language other than learning that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My greatest difficulty picking up a new language came from trying to switch from C# to Erlang, because it represented not only a new syntax but a new way of thinking about programming as well.&lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-11-06T15:27:58.933" CommentCount="3" />
  <row Id="17320" PostTypeId="2" ParentId="17305" CreationDate="2010-11-06T15:28:22.230" Score="0" ViewCount="" Body="&lt;h3&gt;White space is extremely valuable.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Here's the deal... nerds that write complicated code like &lt;strong&gt;E=MC&lt;sup&gt;2&lt;/sup&gt;&lt;/strong&gt; are great at showing off thier programming skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now let's jump ahead six months, and it's 2:00 AM in the morning and the system that hasn't been looked at in six months has broken on the very line of &lt;strong&gt;E=MC&lt;sup&gt;2&lt;/sup&gt;&lt;/strong&gt;. This is nearly impossible to debug... everyone is freaking out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suppose the code looked more like this...&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;See Dick&#xA;See Jane&#xA;See Dick and Jan&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If it's 2:00 AM and the code is broken. A quick glance will show you that line three should have been&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;See Dick and Jane&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Problem solved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom Line... use whitespace.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastEditorUserId="6801" LastEditorDisplayName="" LastEditDate="2010-11-06T18:57:08.280" LastActivityDate="2010-11-06T18:57:08.280" CommunityOwnedDate="2011-02-05T06:38:51.843" CommentCount="2" />
  <row Id="17321" PostTypeId="2" ParentId="17286" CreationDate="2010-11-06T15:32:43.930" Score="1" ViewCount="" Body="&lt;h3&gt;D&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I'm assuming you want a statically compiled, efficient target language given that you use Delphi and say Ruby doesn't fit your lifestyle.  You could try D.  All the stuff you need to generate D code is built into the D compiler.  The template metaprogramming system is much more advanced than it is in C++, meaning that you won't need fully generative programming as often as you think.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you do need fully generative programming, you can use D's &lt;a href=&quot;http://digitalmars.com/d/2.0/function.html&quot; rel=&quot;nofollow&quot;&gt;compile time function evaluation (CTFE)&lt;/a&gt; to generate the code.  You can then insert it into any scope with &lt;a href=&quot;http://www.digitalmars.com/d/2.0/mixin.html&quot; rel=&quot;nofollow&quot;&gt;string mixins&lt;/a&gt;.  Best of all, you can write templates that let all this code generation happen implicitly and look like normal function calls, etc. from the caller's side.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-06T15:32:43.930" />
  <row Id="17322" PostTypeId="2" ParentId="17254" CreationDate="2010-11-06T15:48:53.950" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Absolutely NOT!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good writer is nothing more than a good writer. Ask a good writer to describe the concept of a database to a non-technical person. What do you think you will get...?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good writer, writes. A good programer writes good code. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Code that others can read six months after it's been developed. &lt;/li&gt;&#xA;&lt;li&gt;Code that makes sense at 2:00 AM in the morning when the system has failed and debuging is going on. &lt;/li&gt;&#xA;&lt;li&gt;Code that everyone else likes to borrow because they understand it and can modify it easily&lt;/li&gt;&#xA;&lt;li&gt;Code that works 24/7 365&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I was going to go on and on but I'd rather spend my time answering other posts. I pretty much think you guys know where I stand on this issue.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T15:48:53.950" CommentCount="1" />
  <row Id="17323" PostTypeId="2" ParentId="17290" CreationDate="2010-11-06T16:08:46.983" Score="1" ViewCount="" Body="&lt;p&gt;You could make user controls which make life easier for developers...&#xA;For eg: There are products like SlickUpload,Excelreader libraries etc which corporates use and are willing to pay good money too....If ur lacking funds u can approach angel investors for sponsors once u have a product ready...&lt;/p&gt;&#xA;" OwnerUserId="7139" LastActivityDate="2010-11-06T16:08:46.983" CommentCount="1" />
  <row Id="17324" PostTypeId="2" ParentId="17206" CreationDate="2010-11-06T16:11:42.757" Score="2" ViewCount="" Body="&lt;p&gt;I inherrited this main-frame application. One day, out of the clear blue it stopped working. That's it... poof it just stopped.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My job was to get it working as fast as possible. The source code had not been modified for two years, but all of the sudden it just stopped. I tried to compile the code and it broke on line XX. I looked at line XX and I could not tell what would make line XX break. I asked for the detailed specs for this application and there were none. Line XX was not the culprit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I printed out the code and started reviewing it from the top down. I started to create a flowchart of what was going on. The code was so convoluted I could hardly even make sense of it. I gave up trying to flowchart it. I was afraid to make changes without knowing how that change would effect the rest of the process, especially since I had no details of what&#xA;the application did.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I decided to start at the top of the source code and add whitespce and line brakes to make the code more readable. I noticed, in some cases, there were if conditions that combined ANDs and ORs and it wasn't clearly distinguishable between what data was being ANDed and what data was being ORed. So i started putting parenthesis arounf the AND and OR conditions to make them more readable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I slowly moved down cleaning it up, I would periodically save my work. At one point I tried compiling the code and a strange thing happend. The error had jumped passed the original line of code and was now further down. So I continued, speperating the AND and OR conditions with parens. When I got done cleaning it up it worked. Go Figure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I then decided to visit the operations shop and ask them if they had recently installed any new components on the main-frame. They said yes, we recently upgraded the compiler. Hmmmm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It turns out that the old compiler evaluated expression from left to right regardless. The new version of the compiler also evaluated expressions from left to right but ambiguous code meaning unclear combination of ANDs and ORs could not be resolved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lesson I learned from this... ALWAYS, ALWAYS, ALWAYS use parens to separated AND conditions and OR conditions when they are used in conjuction with each other.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastEditorUserId="6801" LastEditorDisplayName="" LastEditDate="2010-11-06T16:19:12.760" LastActivityDate="2010-11-06T16:19:12.760" CommentCount="4" />
  <row Id="17325" PostTypeId="2" ParentId="17305" CreationDate="2010-11-06T16:29:54.557" Score="2" ViewCount="" Body="&lt;h2&gt;&lt;strong&gt;Often&lt;/strong&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Use it for logical blocks of code that are processed similarly.  Once you add a comment to show that you're doing a different step - it's time to Extract Method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Good Whitespace&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;{&#xA;    int x = computeX();&#xA;    x += ADJUSTMENT_FACTOR_X;&#xA;&#xA;    int y = computeY();&#xA;    y += ADJUSTMENT_FACTORY_Y;&#xA;&#xA;    setPosition(x, y);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Bad Whitespace&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;{&#xA;    //Open a connection&#xA;    String serverAddress = lookupAddress();&#xA;    Connection connection = openConnection(serverAddress);&#xA;    connection.login(user, password);&#xA;&#xA;&#xA;    //Go get stuff from the server&#xA;    item1 = connection.get(1);&#xA;    item2 = connection.get(2);&#xA;&#xA;    //Close connection&#xA;    connection.close();&#xA;&#xA;    //log data&#xA;    log(item1);&#xA;    log(item2);&#xA;&#xA;    //Update client&#xA;    gui.updateView(item1, item2);        &#xA;}    &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;vs&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;{&#xA;    Connection connection = openConnection();&#xA;    updateData(connection);&#xA;    closeConnection(connection);&#xA;    logUpdate();&#xA;    updateGui();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;vs&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;{&#xA;     updateDataFromServer();&#xA;     logUpdate();&#xA;     updateGui();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3764" LastActivityDate="2010-11-06T16:29:54.557" CommunityOwnedDate="2011-02-05T06:38:51.843" CommentCount="4" />
  <row Id="17326" PostTypeId="1" AcceptedAnswerId="17360" CreationDate="2010-11-06T16:30:43.723" Score="13" ViewCount="514" Body="&lt;p&gt;As an example, one of the JavaPosse (popular Java podcast) hosts, Tor Norbey, has recently moved from Oracle to Google, and I'm more that sure that he has been lured (he definitely has not been sending his CV to Google).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The rumor has it that 'high-level' developers are never hired through the job-sites.&#xA;So, (given that you're a good developer) when you what to hold an appealing position in the company that interests you, and invest a lot of time into increasing your online-presence and self-branding blogging, twitting, contributing to opensource, actively participating in community sites (e.g., Stackoverflow), should you send your CVs here and there or just wait for proposals? &lt;/p&gt;&#xA;" OwnerUserId="5843" LastActivityDate="2011-03-01T04:03:12.957" Title="Do the best developers look for a better job, or a better job finds them?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;best-practices&gt;&lt;top-companies&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="4" />
  <row Id="17327" PostTypeId="2" ParentId="17315" CreationDate="2010-11-06T16:34:25.333" Score="3" ViewCount="" Body="&lt;p&gt;It depends. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a friend who tends to stick to one language, so if you considered him &quot;programmer A&quot; he's got 1 year of experience with that language, five times. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Different languages let you do different things. One essay I particularly like is called &quot;&lt;a href=&quot;http://www.paulgraham.com/avg.html&quot; rel=&quot;nofollow&quot;&gt;Beating the Averages&lt;/a&gt;&quot; by Paul Graham. In it he is trying to convince people to learn lisp, but he also makes some very useful points: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Programmers get very attached to their favorite languages, and I don't want to hurt anyone's feelings, so to explain this point I'm going to use a hypothetical language called Blub. Blub falls right in the middle of the abstractness continuum. It is not the most powerful language, but it is more powerful than Cobol or machine language.&lt;/em&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;em&gt;And in fact, our hypothetical Blub programmer wouldn't use either of them. Of course he wouldn't program in machine language. That's what compilers are for. And as for Cobol, he doesn't know how anyone can get anything done with it. It doesn't even have x (Blub feature of your choice).&lt;/em&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;em&gt;As long as our hypothetical Blub programmer is looking down the power continuum, he knows he's looking down. Languages less powerful than Blub are obviously less powerful, because they're missing some feature he's used to. But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn't realize he's looking up. What he sees are merely weird languages. He probably considers them about equivalent in power to Blub, but with all this other hairy stuff thrown in as well. Blub is good enough for him, because he thinks in Blub.&lt;/em&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;em&gt;When we switch to the point of view of a programmer using any of the languages higher up the power continuum, however, we find that he in turn looks down upon Blub. How can you get anything done in Blub? It doesn't even have y.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Generally, my advice is to learn more than one language, and to learn what languages' strengths and weaknesses are. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-06T16:34:25.333" CommentCount="1" />
  <row Id="17328" PostTypeId="2" ParentId="14831" CreationDate="2010-11-06T16:34:51.983" Score="1" ViewCount="" Body="&lt;h3&gt;Pretend a monkey is using the keyboard&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I used to tell my guys when they are writing code to pretend that a monkey will be sitting at the keyborad and using this application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This taught them how to anticipate all kinds of things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Missing data&lt;/li&gt;&#xA;&lt;li&gt;Missing files&lt;/li&gt;&#xA;&lt;li&gt;Alpha characters when you expect numbers&lt;/li&gt;&#xA;&lt;li&gt;Division by zero&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think it was the word picture of having a monkey just banging keys and doing whatever it wanted instead of following along nicely that did the trick. It worked for me.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T16:34:51.983" CommentCount="2" />
  <row Id="17329" PostTypeId="2" ParentId="39" CreationDate="2010-11-06T16:51:05.560" Score="2" ViewCount="" Body="&lt;p&gt;What you are asking me to do is like trying to put the toothpaste back in the tube. It doesn't work.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T16:51:05.560" CommunityOwnedDate="2010-11-06T16:51:05.560" />
  <row Id="17330" PostTypeId="2" ParentId="17326" CreationDate="2010-11-06T16:51:17.927" Score="7" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Yes, sometimes some top users get hired by reaching top karma on community sites, but it is rare, and just think about how much effort will be wasted in case karma doesn't get you a job. So better ditch it if you are going to fly higher in your career. You will probably come back to it later when some community will eagerly want you to say a few words on something. That's being a superstar, not the other way around. As an employer I absolutely don't care about the top users at SO, for example. I'd even stay away from them, and you know why.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The best self-branding is a &lt;em&gt;product&lt;/em&gt; not a blog. Again, you will waste tremendous effort to promote your blog, which is about what exactly? Tips and tricks on better PHP coding? Come on. Those who built awesome products don't need any additional self-promotion.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you are popular on Twitter, you are just a Twitter superstar and nothing else.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Contributing to open-source: this is tough one. The most famous people in the OSS community are mostly founders of the top 10-20 most popular OSS projects. Somehow second-level people go unnoticed. So I'd say do contribute to open-source no matter what, but again don't expect a superstar job delivered to your door.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-06T16:51:17.927" CommentCount="4" />
  <row Id="17331" PostTypeId="2" ParentId="2846" CreationDate="2010-11-06T16:53:24.860" Score="3" ViewCount="" Body="&lt;h3&gt;Perl&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I can never wrap my head around it.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T16:53:24.860" CommunityOwnedDate="2010-11-06T16:53:24.860" CommentCount="1" />
  <row Id="17332" PostTypeId="2" ParentId="17287" CreationDate="2010-11-06T17:00:32.157" Score="3" ViewCount="" Body="&lt;p&gt;I think that there are 3 main things that I look for.&lt;br&gt;&#xA; -  enjoy the work that I do. &#xA; -  enjoy the people I work with. &#xA; -  be compensated well&lt;/p&gt;&#xA;" OwnerUserId="6944" LastActivityDate="2010-11-06T17:00:32.157" />
  <row Id="17333" PostTypeId="2" ParentId="14315" CreationDate="2010-11-06T17:16:32.927" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I think we need to use XML...&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't hear this one so much now.  But there was a period some years ago when every developer seemed to want to do something, &lt;em&gt;anything&lt;/em&gt; with XML (probably just to tick it on their resume).  Result was a bunch of systems with hideously verbose, overcomplicated configuration files, ghastly persistence systems, insane communication protocols and incomprehensible excuses for DSLs, despite the most obvious rational design invariably being a simple flat text file.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-11-06T17:16:32.927" CommunityOwnedDate="2010-11-06T17:16:32.927" />
  <row Id="17334" PostTypeId="2" ParentId="17305" CreationDate="2010-11-06T17:16:55.083" Score="14" ViewCount="" Body="&lt;p&gt;I do but I make sure I document it by putting &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;(This line intentionally left blank.)&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;on the line&lt;/p&gt;&#xA;" OwnerUserId="1977" LastActivityDate="2010-11-06T17:16:55.083" CommunityOwnedDate="2011-02-05T06:38:51.843" CommentCount="4" />
  <row Id="17335" PostTypeId="1" CreationDate="2010-11-06T17:39:00.073" Score="1" ViewCount="100" Body="&lt;p&gt;Has anyone here used both Apache CXF and Ruby on Rails 3 to develop RESTful web services before? I'm interested to hear your thoughts on the pros and cons of both. Personally, I'm pretty familiar with Rails and really love Ruby, but I'm trying to not let that bias get in the way of evaluating Java + CXF as a possible alternative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a side note, I would be using JRuby with RoR since I have to integrate with some Java APIs produced internally in my organization. However in my experience, I haven't really seen any differences in working with Rails between Ruby and JRuby.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd really appreciate any anecdotes anyone can provide.&lt;/p&gt;&#xA;" OwnerUserId="723" LastActivityDate="2010-12-17T07:08:43.147" Title="Comparing Rails 3 to Apache CXF" Tags="&lt;recommendations&gt;&lt;technology&gt;&lt;comparison&gt;" AnswerCount="1" />
  <row Id="17336" PostTypeId="2" ParentId="17287" CreationDate="2010-11-06T17:49:47.983" Score="1" ViewCount="" Body="&lt;p&gt;Cash is Kimg, time is money.  With that in mind:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Bonuses or cash for successful customer goals, commission based.&lt;/li&gt;&#xA;&lt;li&gt;At least two programmers working on any given task.  Keeps people from falling asleep at every level.&lt;/li&gt;&#xA;&lt;li&gt;Realistic expectations, not selling vapor-ware, educated sales force.&lt;/li&gt;&#xA;&lt;li&gt;I can see requiring 40 hours of useful labor a week, a time sheet like list of achievements so that progress is recognized uniformly between developers.&lt;/li&gt;&#xA;&lt;li&gt;Post the employee names, salaries, and bonuses for all to see.  Honestly!&lt;/li&gt;&#xA;&lt;li&gt;Extra pay for additional hours beyond 40 a week.&lt;/li&gt;&#xA;&lt;li&gt;Pursue Agile and Domain Driven Design methodologies.&lt;/li&gt;&#xA;&lt;li&gt;Educated workforce, pay for education, recognize that time spent figuring something out is worse than money spent sitting in a classroom, I would go as far as implementing newer technologies requires qualifying employees to work on those technologies.  A big example is &quot;Use Microsoft JQuery templating&quot; without spending time to learn it first, then adding a person to help that knows less about it than you.&lt;/li&gt;&#xA;&lt;li&gt;Quiet working conditions or appropriate to the needs of the developer.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7148" LastActivityDate="2010-11-06T17:49:47.983" />
  <row Id="17337" PostTypeId="2" ParentId="17177" CreationDate="2010-11-06T17:55:37.967" Score="1" ViewCount="" Body="&lt;h3&gt;Compexity &amp; Scope&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Complexity and Scope I believe are what determines how big a project really is. However, there are several intangibles that can effect the size of a project as well.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Requirements&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;The biggest downfall I faced was lack of requirements. In my particular situation the sales manager was determining requirements. His focus was on the sale... gotta get the sale. In his mind what the customer was asking for didn't seem all that complicated because we had built something similar. Vague requirements lead to underpriced jobs and over committed expectations.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Lack of a CCMU&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;CCMU is what I call a &quot;&lt;strong&gt;Coo Ca Moo&lt;/strong&gt;&quot; (Clear Complete Mutual Understanding). You need to have a CCMU with your customer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a small project with a poor CCMU then you can wind up doing the project 2,3,4 or more times. Thus a simple 20 hour job turns into a 60 hour project with a stressed out staff and a very dissatisfied customer.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Scope Creep&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;This happens more often than you think. The customer decides that since you are already doing A, B &amp;amp; C it shouldn't be that difficult to add D or even F. If this behavior is not checked it can also turn a small project into a medium size project. And depending on how the sales manager sold the job these scope creep expectations may seem &lt;strong&gt;&lt;em&gt;&quot;FREE&quot;&lt;/em&gt;&lt;/strong&gt; to the customer.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T17:55:37.967" />
  <row Id="17338" PostTypeId="2" ParentId="17326" CreationDate="2010-11-06T17:57:24.177" Score="8" ViewCount="" Body="&lt;p&gt;Often good people are hired because someone at the new company worked with them before, or heard about them through a contact and recommended them to their manager.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-11-06T17:57:24.177" CommentCount="1" />
  <row Id="17339" PostTypeId="2" ParentId="14315" CreationDate="2010-11-06T18:04:57.063" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Because Linus Said .... [ statement ]&#xA;  .....&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;While yes, Linus is a great programmer, I can't stand people who don't think for themselves. If you &lt;em&gt;know&lt;/em&gt; it is broken and can't be convinced otherwise, you should endeavour to fix it. Then, and only then will you know if it is really broken :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other one is:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;That's too much of a corner case to&#xA;  even consider&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Then you sit back and watch as someone uses your app as a trampoline for privilege escalation and stand in the very same corner while patching.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-06T18:04:57.063" CommunityOwnedDate="2010-11-06T18:04:57.063" />
  <row Id="17341" PostTypeId="1" AcceptedAnswerId="17413" CreationDate="2010-11-06T18:10:08.227" Score="5" ViewCount="297" Body="&lt;p&gt;Many compilers have warning messages to warn the programmers about potential runtime, logic and performance errors, most times, you quickly fix them, but what about unfixable warnings?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you deal with unfixable warnings? Do you re-write a portion of the code, or rewrite it in the &quot;long, hackless way&quot; or disable warnings all together? What should be the best practice?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What if you are editing someone else's code and his code has warnings?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&#xA;Here is a good question I came up:&#xA;jQuery has a lots of JavaScript warnings as a Mozilla-class browser detected, why the jQ developers don't fix them? If you contribute to jQuery, are you going to fix them?&lt;/p&gt;&#xA;" OwnerUserId="1325" LastEditorUserId="1325" LastEditorDisplayName="" LastEditDate="2010-11-12T02:36:50.320" LastActivityDate="2010-11-12T02:36:50.320" Title="Compiler Warnings" Tags="&lt;compilers&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="1" />
  <row Id="17342" PostTypeId="2" ParentId="16734" CreationDate="2010-11-06T18:10:38.937" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.ece.cmu.edu/~eno/coding/CCodingStandard.html#mnames&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Defining constants as all upper case&lt;/strong&gt;, e.g. in C&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#define SECONDS_IN_DAY   86400&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The same convention (with different syntax) is used in many other languages (e.g. const in C++, define in PHP), but whether the identifier is uppercase is not enforced by either the preprocessor or compiler.  &lt;a href=&quot;http://stackoverflow.com/questions/242534/c-naming-convention-for-constants&quot;&gt;CamelCase is commonly used for consts in C#&lt;/a&gt; -- again it is a convention, not something enforced by the compiler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ruby does assume a identifier beginning with an upper-case is a constant, and will issue a warning if it's value is changed.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-11-06T18:25:33.187" LastActivityDate="2010-11-06T18:25:33.187" />
  <row Id="17343" PostTypeId="2" ParentId="17305" CreationDate="2010-11-06T18:11:45.443" Score="5" ViewCount="" Body="&lt;p&gt;I don't always write software, but when I do, I use blank lines for clarity.&lt;/p&gt;&#xA;" OwnerUserId="6843" LastActivityDate="2010-11-06T18:11:45.443" CommunityOwnedDate="2011-02-05T06:38:51.843" CommentCount="7" />
  <row Id="17344" PostTypeId="2" ParentId="2846" CreationDate="2010-11-06T18:11:57.820" Score="3" ViewCount="" Body="&lt;p&gt;RPG - Report Program Generator... an IBM abomination that was/is mostly used on IBM minicomputers... I always associate it mainly with the S/36, S/38, AS/400 and iSeries boxes, but I think it was available on some other machines as well.  At any rate, it was hideous to work with. Column oriented (yeah, certain characters had to appear in very specific columns), and with a dreadful tool (SEU) for entering code, this stuff would make your eyeballs bleed.&lt;/p&gt;&#xA;" OwnerUserId="7160" LastActivityDate="2010-11-06T18:11:57.820" CommunityOwnedDate="2010-11-06T18:11:57.820" CommentCount="1" />
  <row Id="17345" PostTypeId="2" ParentId="2846" CreationDate="2010-11-06T18:12:39.610" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;SCHEME / CLOJURE&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just kidding. Just pointing out that no-one suggested either of these... which is because they're a joy to program in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(and yes, I realize (not (eq? 'scheme 'clojure)))&lt;/p&gt;&#xA;" LastActivityDate="2010-11-06T18:12:39.610" CommunityOwnedDate="2010-11-06T18:12:39.610" CommentCount="2" />
  <row Id="17346" PostTypeId="2" ParentId="17287" CreationDate="2010-11-06T18:16:44.677" Score="2" ViewCount="" Body="&lt;p&gt;To stay somewhere for 10+ years, I'd want a company that:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;has a corporate culture that is deeply rooted in &quot;best idea first&quot; (i.e. we use the best ideas, regardless of social politicking or who the idea came from), in generally treating our customers and our employees fairly, and excellent work/life balance.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;will pay me a reasonable wage for what I do and the skill with which I do it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;has a 10 -- or better 15 -- percent rule (i.e. 10-15% of work time is spent directly contributing to the open source tools we use, so that we devs stay at the top of our game, and our company is visible and attractive to great potential hires).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;is reasonably flexible with work schedule, remote work, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;has a convenient spot for me to heat water for my tea during the day&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;allows me to customize my tools and workspace&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;involves the tech staff in business decisions, especially sales, so we aren't continuously trying to meet impossible terms set by people who don't understand what is involved with actually making the stuff (whatever our &quot;stuff&quot; is) work.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;sends me to a bare minimum of one well-chosen tech conference per year.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;gets out of the way and lets the tech team establish work patterns that help us get the job done.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-06T18:16:44.677" CommentCount="1" />
  <row Id="17347" PostTypeId="2" ParentId="17214" CreationDate="2010-11-06T18:25:30.687" Score="1" ViewCount="" Body="&lt;p&gt;It's not something most people will want to sit down and read cover-to-cover, no.  It is an incredibly invaluable reference, and it's certainly good to pick it up, pick an interesting section, read over it, and do some exercises.  But the encyclopedia comparisons made above are pretty apt... it's big, extensive, and detailed.  And some of the &quot;exercises&quot; are research problems that might take years to solve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you just want a better knowledge of low-level algorithms, it might be better to start with the Robert Sedgewick books (eg, &quot;Algorithms in C,&quot; &quot;Algorithms in Java,&quot; etc.).&lt;/p&gt;&#xA;" OwnerUserId="7160" LastActivityDate="2010-11-06T18:25:30.687" CommunityOwnedDate="2011-02-26T01:53:06.803" />
  <row Id="17348" PostTypeId="2" ParentId="17005" CreationDate="2010-11-06T18:26:55.683" Score="0" ViewCount="" Body="&lt;h3&gt;How to get your idea(s) implemented&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;First in meetings refer to problems as challenges. You fix problems, you overcome challenges. Challenges are good things, problems are not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start slow and use this technique on one single challenge at a time. Next time you want your boss to adopt one of your ideas do the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Develop three similar but different approaches&lt;/li&gt;&#xA;&lt;li&gt;Tell your boss you need his help with something&lt;/li&gt;&#xA;&lt;li&gt;Explain that you are not sure which of the three methods is the best course of action for solving the problem&lt;/li&gt;&#xA;&lt;li&gt;Ask Him/Her to help you choose one of the three&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; This is extremely powerful. What you are doing is providing choices not an ultimatum. Ultimatums more often then not get shot down because it's not their idea and there is only one option.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Your use of words is very key here. &quot;&lt;em&gt;I need your help&lt;/em&gt;&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Let the boss choose &quot;A&quot;, &quot;B&quot;, or &quot;C&quot;. In fact let the boss create option &quot;D&quot; by pulling out sections from &quot;A&quot;, &quot;B&quot; and &quot;C&quot;. What you are doing is letting your boss make a choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this point you could care less what option he chooses, because they are all your ideas. He will think he's actually solving the problem because you let the decision becomes his.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T18:26:55.683" />
  <row Id="17349" PostTypeId="2" ParentId="2846" CreationDate="2010-11-06T18:39:42.050" Score="3" ViewCount="" Body="&lt;p&gt;I am pleased, and disappointed that nobody has mentioned &lt;a href=&quot;http://en.wikipedia.org/wiki/INTERCAL&quot; rel=&quot;nofollow&quot;&gt;Intercal&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Posted, of course in the language of the spirit. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-06T18:39:42.050" CommunityOwnedDate="2010-11-06T18:39:42.050" />
  <row Id="17350" PostTypeId="2" ParentId="17214" CreationDate="2010-11-06T18:39:53.150" Score="2" ViewCount="" Body="&lt;p&gt;I'm firmly in the camp of folks that feel that every developer should make the investment in getting the books at some point (and it's getting easier now that it looks like they are being &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201853922&quot; rel=&quot;nofollow&quot;&gt;reprinted in paperback&lt;/a&gt;) but on the same token, I would also be hard pressed to believe that someone would sit down and read them all from cover to cover.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best approach to them - if you don't have a commute to work where you have free time to sit and read - is to read enough of them to know where to find things in them and then to read a full chapter when ever you find yourself using them as reference books for a given problem. With Google and Stack Overflow it's not as common to be reaching for reference books, but in some cases you may find that the books provide some insight that you would have to send some extra time looking for on the internet.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-11-06T18:39:53.150" CommunityOwnedDate="2011-02-26T01:53:06.803" CommentCount="1" />
  <row Id="17351" PostTypeId="2" ParentId="17341" CreationDate="2010-11-06T18:43:31.583" Score="17" ViewCount="" Body="&lt;p&gt;My opinion is that you should be strict with yourself. The compiler has been written by total experts in the language. If they are reporting that something is a bit wiffy (think code smell) then the code should be reviewed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is entirely possible to write code that compiles without errors and without warnings.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-06T18:43:31.583" CommentCount="3" />
  <row Id="17352" PostTypeId="2" ParentId="2260" CreationDate="2010-11-06T18:44:18.730" Score="8" ViewCount="" Body="&lt;p&gt;I switched to &lt;strong&gt;Programmer Dvorak&lt;/strong&gt; in late June 2010. Right now I can write in English at the same speed or faster that with Qwerty lately, with less fingers movements. The programming special characters are VERY convenient, very useful (usual, square and curly brackets, colons and semicolons, etc.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Earlier I tried to switch to Dvorak to no success. What I did differently this time was:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;started writing blindly. My advice: don't write new letters on the keys: it will make you look instead of remember the motions, and will provoke 2-fingers writing. Try printing the layout and hanging it near the monitor instead.&lt;/li&gt;&#xA;&lt;li&gt;started writing with all 10 fingers right away. (If you try typing with 2-4 fingers, &lt;em&gt;they&lt;/em&gt; won't remember the layout, and it will be &lt;em&gt;extremely&lt;/em&gt; frustrating. That's why I had abandoned it earlier).&lt;/li&gt;&#xA;&lt;li&gt;did 4-10 hours of exercises (essays, translations) before I tried to do my job in Dvorak (I'm a programmer). At that moment I had a slow but acceptable speed.&lt;/li&gt;&#xA;&lt;li&gt;for the exercising periods, I removed qwerty from the system. (When it is present, it's too tempting to switch.) After about 20 hours of writing I decided to switch finally and never added qwerty again.&lt;/li&gt;&#xA;&lt;li&gt;learned to press SHIFT button with the &lt;em&gt;opposite&lt;/em&gt; hand, unlike I did with qwerty. This is very important.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The first day I did exercising it felt like I got the flu, not kidding: my brain felt strange, because each character was written with a lot of effort and very unusually, my ring and little fingers felt really tired. The second day of exercising this didn't repeat, and things proceeded better and better. In a month I wrote with a reasonable speed, in 3 months I wrote almost as with qwerty, and &lt;em&gt;fingers&lt;/em&gt; remembered all the keys.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The keystrokes are inconvenient, though, in some cases, especially if combined with mouse usage: most of them are on the right now. Another hard thing are numbers in the top row. I've got used to them only recently. But writing became easier, and will be a lot faster soon for me.&lt;/p&gt;&#xA;" OwnerUserId="5545" LastEditorUserId="5545" LastEditorDisplayName="" LastEditDate="2010-11-07T08:19:15.897" LastActivityDate="2010-11-07T08:19:15.897" />
  <row Id="17353" PostTypeId="2" ParentId="17305" CreationDate="2010-11-06T18:46:28.993" Score="1" ViewCount="" Body="&lt;p&gt;My rules of thumb are these: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;If I have trouble reading the code I wrote yesterday, I probably need to extract a method or three.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If my class definition is too long to read easily, I probably need to extract a module/interface/object. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Method definitions: add a line&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Module/Class definitions: add two lines&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6883" LastActivityDate="2010-11-06T18:46:28.993" CommunityOwnedDate="2011-02-05T06:38:51.843" />
  <row Id="17354" PostTypeId="2" ParentId="13091" CreationDate="2010-11-06T18:55:27.860" Score="6" ViewCount="" Body="&lt;p&gt;Don't waste time trying to trap for every &lt;strong&gt;non this&lt;/strong&gt; condition. If you can disqualify the data or condition then do so as soon as possible.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (byteArrayVariable == null) Exit;&#xA;if (byteArrayVariable.Length == 0) Exit;&#xA;// do something&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This lets you adapt your code much easier for new conditions&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (byteArrayVariable == null) Exit;&#xA;if (byteArrayVariable.Length == 0) Exit;&#xA;if (NewCondition == false) Exit;&#xA;if (NewerCondition == true) Exit;&#xA;// do something&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T18:55:27.860" CommentCount="1" />
  <row Id="17355" PostTypeId="1" CreationDate="2010-11-06T18:57:48.360" Score="17" ViewCount="1726" Body="&lt;p&gt;Hello. I'm experimenting with a new platform and I'm trying to write a program that deals with strings that are no longer than 60 characters and I'd like to populate the data store with some famous or well-known small chunks of code and equations, since programming and math goes along with the theme of my software. The code can be in any language and the equations from any discipline of mathematics, just so long as they're less than a total of 60 characters in length. I suspect people are gonna break out some &lt;a href=&quot;http://en.wikipedia.org/wiki/Brainfuck&quot; rel=&quot;nofollow&quot;&gt;brainfuck&lt;/a&gt; for this one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#include&amp;lt;stdio.h&amp;gt;&#xA;int main(){printf (&quot;Hi World\n&quot;);return 0;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;60 characters exactly!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks so much for your wisdom!&lt;/p&gt;&#xA;" OwnerUserId="7158" LastEditorUserId="7158" LastEditorDisplayName="" LastEditDate="2010-11-11T14:52:54.397" LastActivityDate="2010-12-05T10:04:45.600" CommunityOwnedDate="2010-12-03T10:46:42.217" Title="What are some famous one-liner or two-liner programs and equations?" Tags="&lt;algorithms&gt;&lt;code&gt;" AnswerCount="35" CommentCount="10" FavoriteCount="9" />
  <row Id="17356" PostTypeId="2" ParentId="17341" CreationDate="2010-11-06T19:02:14.277" Score="4" ViewCount="" Body="&lt;p&gt;When I was writing in C and C++ I'd enable the strictest settings I could because I wanted to know when something wasn't making sense to the compiler. When I was done casting and checking return values I'd be happy because the code was as correct as I could make it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd occasionally get code from someone else that would spew warnings. Checking the source showed they were ignoring things that were good programming practice in C, making their code fragile. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I think there are good reasons to enable strictness and take the time to fix things. Doing otherwise is sloppy. If I had a co-worker who turned off warnings I'd spend some time with them AND the manager explaining why that is a really bad thing.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-11-06T19:02:14.277" />
  <row Id="17357" PostTypeId="2" ParentId="17355" CreationDate="2010-11-06T19:04:11.620" Score="6" ViewCount="" Body="&lt;p&gt;Not quite 2 lines but I would say this is quite famous:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void swap(float* x, float* y)&#xA;{&#xA;    float t;&#xA;    t = *x;&#xA;    *x = *y;&#xA;    *y = t;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Actually some languages can describe it in one line. Lua comes to mind but there are more.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;x, y = y, x&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-11-06T19:04:11.620" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="12" />
  <row Id="17358" PostTypeId="2" ParentId="2260" CreationDate="2010-11-06T19:05:14.677" Score="1" ViewCount="" Body="&lt;p&gt;I've used the Dvorak layout in the past. It was hard to get used to at first, but it did seem faster and my fingers moved around less. However, it caused issues at work whenever I needed to use a different computer or when someone needed to use my computer for some reason. I think the layout is better suited for people who work alone, and always at the same machine or group of machines.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-06T19:05:14.677" />
  <row Id="17359" PostTypeId="2" ParentId="17355" CreationDate="2010-11-06T19:05:32.573" Score="8" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;print &quot;hello world\n&quot;;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and its derivations seems to be popular. :-)&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-11-06T19:05:32.573" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="1" />
  <row Id="17360" PostTypeId="2" ParentId="17326" CreationDate="2010-11-06T19:05:37.567" Score="8" ViewCount="" Body="&lt;p&gt;I think it is fair to say that if you excel at something that a lot of people need then you'll be in demand. The trick is to make the people that need your skills aware of your excellence. Twitter, blogs, LinkedIn, StackOverflow and a million other sites all contribute to increasing the amount of people that are dimly aware of your presence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But... when the time comes to actually recruit someone, then the usual process a business follows is&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Asking around the department - anyone know a really good IDE developer? Yeah, that Java Posse guy, er, Tor somethin' or other - he worked on NetBeans, ya know.&lt;/li&gt;&#xA;&lt;li&gt;Putting a job advert out to the agencies (there is a hierarchy of agencies depending on the nature of the job so CEOs are not recruited the same way as programmers) &lt;/li&gt;&#xA;&lt;li&gt;Putting a job advert out directly to online sites (a bit desperate)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In all cases, when the CVs come in and interviews are being arranged a good interviewer will conduct some background research. This will include Facebook profiling, and reading blogs etc. They will want to be sure that you know your stuff and are generally respected by your peers. If you're a superstar (say &lt;a href=&quot;http://stackoverflow.com/users/22656/jon-skeet&quot;&gt;Jon Skeet&lt;/a&gt;) then it's clear you're going to be top of the list (and the interviewer will be fighting off other developers wanting to offer &quot;technical assistance&quot; on the day). If you've only ever asked a single bone-headed question on SO and never bothered to accept an answer then, well, it's not looking so good, is it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, to answer your question: yes, promote yourself on various networks, but do so in a human manner by adding value to whatever you are using to advertise. This means being polite, answering questions well and demonstrate that you are listening to feedback. &lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-06T19:05:37.567" CommentCount="2" />
  <row Id="17361" PostTypeId="2" ParentId="17355" CreationDate="2010-11-06T19:13:13.440" Score="2" ViewCount="" Body="&lt;p&gt;Anything to do with Hello World comes to mind. You could go with different variations if you plan on storing multiple languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For something more non-trivial, there's &lt;a href=&quot;http://en.wikipedia.org/wiki/Recursion_(computer_science)#Fibonacci&quot; rel=&quot;nofollow&quot;&gt;Fibbonacci&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="7116" LastActivityDate="2010-11-06T19:13:13.440" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="3" />
  <row Id="17362" PostTypeId="2" ParentId="17355" CreationDate="2010-11-06T19:14:49.643" Score="2" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Conditional operator&lt;/strong&gt; : &lt;/p&gt;&#xA;&#xA;&lt;p&gt;minVal = (a &amp;lt; b) ? a : b;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Switch case&lt;/strong&gt; &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://download.oracle.com/javase/1.5.0/docs/guide/language/foreach.html&quot; rel=&quot;nofollow&quot;&gt;for-each loop&lt;/a&gt; [Java]&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1373" LastEditorUserId="1373" LastEditorDisplayName="" LastEditDate="2010-11-06T22:21:45.900" LastActivityDate="2010-11-06T22:21:45.900" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="11" />
  <row Id="17364" PostTypeId="2" ParentId="17355" CreationDate="2010-11-06T19:20:14.587" Score="20" ViewCount="" Body="&lt;p&gt;I see Conway's Game of Life in APL floating around a lot:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://upload.wikimedia.org/wikipedia/en/f/ff/LifeInApl.gif&quot; alt=&quot;&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An extra bonus is that this will make sure you're handling unicode correctly.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-11-06T19:20:14.587" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="7" />
  <row Id="17366" PostTypeId="2" ParentId="17305" CreationDate="2010-11-06T19:24:03.880" Score="0" ViewCount="" Body="&lt;p&gt;As many others have stated, blank lines make for easier reading of code. However, there are some languages that enforce this standard. One that I can think of off the top of my head (not so much about blank lines but proper indentation) is Python.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-06T19:24:03.880" CommunityOwnedDate="2011-02-05T06:38:51.843" />
  <row Id="17367" PostTypeId="2" ParentId="17355" CreationDate="2010-11-06T19:24:09.910" Score="30" ViewCount="" Body="&lt;p&gt;The classic C string copy routine is known by fewer and fewer people theses days:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;while (*d++ = *s++);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-06T19:24:09.910" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="13" />
  <row Id="17368" PostTypeId="2" ParentId="17290" CreationDate="2010-11-06T19:24:24.577" Score="4" ViewCount="" Body="&lt;p&gt;As you doubtless know the mobile market is exploding. It's never been easier to write applications to reach a wide range of people for very little outlay. iPhone and Android marketplaces offer seamless money-taking operations and all a developer has to do is spend a bit of time writing an interesting app, then promoting the hell out of it online. So here's what I recommend:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;While still in the day job&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Learn some Java (not a lot, just enough to write applications for Android) the &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1934356174&quot; rel=&quot;nofollow&quot;&gt;Hello, Android book&lt;/a&gt; will help here. Android is quicker and easier to write for and publish than iPhone in my experience.&lt;/li&gt;&#xA;&lt;li&gt;Publish an application to prove to yourself that you can (it doesn't have to be great, but it should have a price)&lt;/li&gt;&#xA;&lt;li&gt;Start saving (perhaps read the &lt;a href=&quot;http://www.wisebread.com/&quot; rel=&quot;nofollow&quot;&gt;Wise Bread blog&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Once you've got your confidence&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this point you're feeling ready to make the leap. (You've mentioned that you've already got living expenses for about 6 months or more)&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Quit your job (now the pressure is REALLY on)&lt;/li&gt;&#xA;&lt;li&gt;Write a few mobile applications that solve a problem that you have right now - target Android for fastest results&lt;/li&gt;&#xA;&lt;li&gt;Review your outgoings and keep them going down&lt;/li&gt;&#xA;&lt;li&gt;Rinse and repeat from step 2. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may want to consider moving out of the country, but this can be fraught with hazard due to not knowing the local customs and potentially different laws that you could fall foul of. I'd recommend finding a lovely place by the sea in the USA until you're confident that you are self-supporting in a location independent manner.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-06T19:24:24.577" CommentCount="1" />
  <row Id="17369" PostTypeId="2" ParentId="14831" CreationDate="2010-11-06T19:24:29.973" Score="0" ViewCount="" Body="&lt;p&gt;Try : &lt;a href=&quot;http://books.google.co.in/books?id=5VTBuvfZDyoC&amp;amp;pg=PA315&amp;amp;lpg=PA315&amp;amp;dq=head+first+java+exception+handling&amp;amp;source=bl&amp;amp;ots=aoqGAK6OsO&amp;amp;sig=SYRv0rwE1TAzxS1H-c-CNN3PZjc&amp;amp;hl=en&amp;amp;ei=manVTL22EYTKvQPVk72rCQ&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=2&amp;amp;ved=0CB4Q6AEwAQ#v=onepage&amp;amp;q=head%20first%20java%20exception%20handling&amp;amp;f=false&quot; rel=&quot;nofollow&quot;&gt;Head First Java&lt;/a&gt; [chapter 11]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I learned exception handling from this book [chapter 11] and it's the best way of teaching someone exception handling. I would strongly recommend this to everyone who want to learn exception handling. Just go through this chapter, it won't take more than 20 minutes to finish and you won't regret after reading that. Trust me.&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-11-06T19:24:29.973" CommentCount="1" />
  <row Id="17370" PostTypeId="2" ParentId="17355" CreationDate="2010-11-06T19:27:41.440" Score="10" ViewCount="" Body="&lt;p&gt;Because you mention equations, this one belongs on your list:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;e^{i\pi}+1=0&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(Wolfram Alpha rendering: &lt;img src=&quot;http://i.imgur.com/lJEB3.gif&quot; alt=&quot;e i pi + 1 = 0&quot;&gt;)&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-11-06T19:57:26.050" LastActivityDate="2010-11-06T19:57:26.050" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="3" />
  <row Id="17371" PostTypeId="2" ParentId="17355" CreationDate="2010-11-06T19:29:58.180" Score="6" ViewCount="" Body="&lt;p&gt;My favorite lambda calculus example is the Y combinator:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Y = λf.(λx.f (x x)) (λx.f (x x))&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-06T19:29:58.180" CommunityOwnedDate="2010-12-03T10:46:42.217" />
  <row Id="17372" PostTypeId="2" ParentId="17341" CreationDate="2010-11-06T19:33:47.933" Score="0" ViewCount="" Body="&lt;p&gt;In my case warnings come from the PyLint tool and I can disable a warning on a particular line by adding special text in the comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In most cases, I don't do that. In most cases I change the code to follow what PyLint suggests because PyLint is usually correct. However, in dislikes constructs which are generally a bad idea, but which make sense in a particular context. For example, it complains if I catch all possible exceptions. Usually, its correct, that would be a bad idea. However, in some cases I do want to catch all exceptions such as to send myself an error report with the details.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So: In almost all cases, get rid of the hacks. When the hack is really justified, add a comment telling PyLint its okay.&lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-11-06T19:33:47.933" CommentCount="0" />
  <row Id="17373" PostTypeId="2" ParentId="17355" CreationDate="2010-11-06T19:35:44.673" Score="11" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;The &lt;a href=&quot;http://en.wikipedia.org/wiki/Ackermann_function&quot; rel=&quot;nofollow&quot;&gt;Ackerman function&lt;/a&gt;. The implementation of the Ackermann-Péter version should fit into 60 chars :)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;This lovely hexadecimal constant: 0x5f3759df. It is the heart of the most WTFing code I've ever seen: the &lt;a href=&quot;http://www.codemaestro.com/reviews/9&quot; rel=&quot;nofollow&quot;&gt;fast inverse square root&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The famous &lt;a href=&quot;http://en.wikipedia.org/wiki/XOR_swap_algorithm&quot; rel=&quot;nofollow&quot;&gt;XOR swap&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;code&gt;question = /(bb|[^b]{2})/&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="667" LastEditorUserId="667" LastEditorDisplayName="" LastEditDate="2010-11-08T12:24:33.423" LastActivityDate="2010-11-08T12:24:33.423" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="2" />
  <row Id="17374" PostTypeId="2" ParentId="17355" CreationDate="2010-11-06T19:45:53.253" Score="16" ViewCount="" Body="&lt;p&gt;A modified version of a famous Perl one-liner:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/^.?$|^(..+?)\1+$/&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This regular expression matches strings whose length is prime.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The original version is:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/^1?$|^(11+?)\1+$/&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;which matches strings consisting of a prime number of 1s.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2010-11-06T19:45:53.253" CommunityOwnedDate="2010-12-03T10:46:42.217" />
  <row Id="17375" PostTypeId="2" ParentId="2260" CreationDate="2010-11-06T19:49:59.303" Score="1" ViewCount="" Body="&lt;p&gt;I've been using &lt;a href=&quot;http://colemak.com&quot; rel=&quot;nofollow&quot;&gt;Colemak&lt;/a&gt; for over a year now. It doesn't actually move any symbols, but it makes the English portion of coding much more efficient.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are however people on the &lt;a href=&quot;http://forum.colemak.com&quot; rel=&quot;nofollow&quot;&gt;forum&lt;/a&gt; who have tried to come up with &lt;a href=&quot;http://forum.colemak.com/viewtopic.php?id=911&quot; rel=&quot;nofollow&quot;&gt;modifications&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="912" LastActivityDate="2010-11-06T19:49:59.303" CommentCount="1" />
  <row Id="17376" PostTypeId="2" ParentId="17355" CreationDate="2010-11-06T19:56:58.797" Score="5" ViewCount="" Body="&lt;p&gt;From an exercise in &lt;em&gt;K&amp;amp;R,&lt;/em&gt; here is a function that will return how many bits are set in the number given. At 58 characters:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int bits(int n){int b=0;while(n){n=n&amp;amp;(n-1);b++;}return b;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It takes time proportional to the number of bits set. The &quot;ah ha&quot; part here is that&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;n = n &amp;amp; (n - 1)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Removes the rightmost set bit from &lt;code&gt;n&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-06T19:56:58.797" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="1" />
  <row Id="17377" PostTypeId="2" ParentId="17355" CreationDate="2010-11-06T20:02:23.907" Score="13" ViewCount="" Body="&lt;p&gt;Quicksort:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;qsort []     = []&#xA;qsort (x:xs) = qsort (filter (&amp;lt; x) xs) ++ [x] ++ qsort (filter (&amp;gt;= x) xs)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If the list is empty, the sorted result is the empty list.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the list starts with the element x, and the rest of the list is xs, then the sorted result is list consisting of the sorted list consisting of all elements in xs less than x concatenated with the element x concatenated with the sorted list of all elements in xs larger than x.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(or in other words - divide in two piles, all less than x and all larger than x, sort them both and create a list with the less-than pile, the element x, and the larger-than pile).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beats the understandability of the C version quite easily.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-11-07T08:14:25.750" LastActivityDate="2010-11-07T08:14:25.750" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="6" />
  <row Id="17378" PostTypeId="2" ParentId="16638" CreationDate="2010-11-06T20:06:35.150" Score="1" ViewCount="" Body="&lt;p&gt;Writing a basic queuing system is fairly simple, but as you noted above with all of the challenges, doing it right is another matter.  I've used home grown systems for which I wrote the source code, 3rd party systems, and various JMS providers.  JMS (Java Messaging Service) by far is the most complete solution I've encountered thus far.  Much of what you ask is available in JMS.  My favorite JMS provider is ActiveMQ.  Free, performant, easy to install, and more importantly easy to embed in my app with Spring.  JMS providers don't provide everything you asked for out of the box, but they provide a set of tools to handle much of what you asked about should your application need it.  I haven't found lots of applications need everything you listed.  Ordering might not be important (it's best if it isn't), durable topics might not be important, guaranteed delivery, etc.  You just have to stick to the problem and use what it demands.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://activemq.apache.org/what-open-source-integration-solution-works-best-with-activemq-.html&quot; rel=&quot;nofollow&quot;&gt;http://activemq.apache.org/what-open-source-integration-solution-works-best-with-activemq-.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Does it have strong or lose ordering?&lt;/strong&gt; Yes.  It has both depending on your programs needs.  Here are the details: &lt;a href=&quot;http://activemq.apache.org/total-ordering.html&quot; rel=&quot;nofollow&quot;&gt;http://activemq.apache.org/total-ordering.html&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Does it have idempotent put?&lt;/strong&gt; No, but this is trivial to implement in your application layer should you need that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Can we have more queues than what can fit on a single machine?&lt;/strong&gt; Yes.  You can have clustered servers, and if you wanted to setup multiple machines with different queues you could, and pull from either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Can we have more data in a queue than what can fit on a single machine?&lt;/strong&gt; Yes most JMS providers have to use some sort of DB/persistent storage to ensure messages aren't dropped or lost if the JMS provider goes down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How many machines can crash before we potentially lose data?&lt;/strong&gt;  This is a little harder to answer because it's timing related.  However, you can crash a JMS provider and provided the disk isn't corrupt it will come back up and start where it received the last commit.  This means messages could be delivered twice, but if you code your app to handle this it's not a problem.  As long as you have at least one of each type (producers, consumers, or JMS servers) it will complete. You can also have load/balance/failover for redundancy should a disk go out on you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Can it tollerate net-splits?&lt;/strong&gt; I think I understand what you mean by &quot;net-split&quot;, but I'm not entirely sure.  I guess you mean if the JMS servers are clustered, and we loose connection with one of the servers will it jump to another server and pickup where it left off.  Yes, but again these types of situations can lead to duplicate messages depending on at what point the client lost connection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Can it automatically reconcile data when a net-split is fixed?&lt;/strong&gt; If you are using transacted sessions it will only redeliver any message that has had a commit called on it to existing clients that are up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Can it guarantee delivery when clients can crash?&lt;/strong&gt; Yes this is one of the main goals of JMS.  Guaranteed delivery means that if a message is queued it's guaranteed to be handled by a client.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Can it guarantee that the same message is not delivered more than once?&lt;/strong&gt; Yes if the transacted sessions are being used.  That means a client has accepted the message and called commit/rollback.  Once the commit is called it won't redeliver the message.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Can a node crash at any given point, come back up, and not send out junk?&lt;/strong&gt; In the case where you have durable clustered queues.  Yes it won't spew &quot;junk&quot; if the other node in the cluster has delivered the message.  It can still redeliver anything that hasn't been acknowledged.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Can you add nodes to, or remove nodes from, a running cluster without down time?&lt;/strong&gt;  Yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Can you upgrade nodes in a running cluster without down time?&lt;/strong&gt; This is a little trickier for me to answer, but I believe that yes you can do this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Can it run without problems on heterogeneous servers?&lt;/strong&gt; What does this mean exactly?  I've found most JMS providers are very easy to run in environments using different hardware, OS, etc.  Although, if you mean performance, that's a whole another thing.  Any distributed processing system can be negatively impacted by a slow node.  I had 2 8 Core Intel servers running the queue and the consumers.  That's 16 cores together, and I got better performance from using only those two boxes, than when I added a single core machine as a consumer.  That single core machine was so much slower it slowed down the entire grid by a factor of 2x.  This had nothing to do with JMS per se.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Can you “stick” queues to a group of servers?&lt;/strong&gt; Short answer yes.  I can think of a way where you can run a cluster that's only in the european data center, and configure the queue there.  Then in your spring config setup your consumers to consume that queue as well as other queues on other clusters.  You might want to consult the docs:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://activemq.apache.org/clustering.html&quot; rel=&quot;nofollow&quot;&gt;http://activemq.apache.org/clustering.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Can it make sure to put data replicas in at least two datacenters, if so available?&lt;/strong&gt; Again I believe so, but it's best to consult the clustering docs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again JMS has lots of options you can tweak as your need dictates.  Using transacted sessions and durable queues comes with a performance cost.  I've seen turning on all the bells and whistles impact performance as much as 10x.  When I used JBossMQ if we turned off some of these features we could get around 10,000 messages/s, but turning them on brought us down to 1000 messages/s.  Big drop.&lt;/p&gt;&#xA;" OwnerUserId="5592" LastActivityDate="2010-11-06T20:06:35.150" CommentCount="3" />
  <row Id="17379" PostTypeId="2" ParentId="17305" CreationDate="2010-11-06T20:08:12.597" Score="0" ViewCount="" Body="&lt;p&gt;I agree, I use whitespace the same way. However, if I find myself using whitespace to break a method into too many parts, it's a sign I might need to refactor that code into multiple methods. Too many logical sections in a method might signal that the method will be harder to test.&lt;/p&gt;&#xA;" OwnerUserId="7187" LastActivityDate="2010-11-06T20:08:12.597" CommunityOwnedDate="2011-02-05T06:38:51.843" />
  <row Id="17380" PostTypeId="2" ParentId="17305" CreationDate="2010-11-06T20:13:30.617" Score="0" ViewCount="" Body="&lt;p&gt;I use them to seperate code into logical units. I've seen very few code samples that did not use blank lines, of course obfuscation is excepted.&lt;/p&gt;&#xA;" OwnerUserId="7038" LastActivityDate="2010-11-06T20:13:30.617" CommunityOwnedDate="2011-02-05T06:38:51.843" />
  <row Id="17382" PostTypeId="2" ParentId="17059" CreationDate="2010-11-06T20:22:53.047" Score="0" ViewCount="" Body="&lt;p&gt;A good designer writes code that works.&lt;br&gt;&#xA;A great designer writes code that good designers borrow.&lt;br&gt;&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T20:22:53.047" />
  <row Id="17383" PostTypeId="2" ParentId="16436" CreationDate="2010-11-06T20:26:17.247" Score="1" ViewCount="" Body="&lt;p&gt;Where do you plan to be five years from now?&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T20:26:17.247" CommunityOwnedDate="2011-01-28T12:13:01.007" CommentCount="3" />
  <row Id="17384" PostTypeId="2" ParentId="17305" CreationDate="2010-11-06T20:26:41.987" Score="0" ViewCount="" Body="&lt;p&gt;The Psychopath answer is the best, but I would replace that with assuming that the next person is an idiot, and that they will assume that you are, and you will want to prove them wrong. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just as important to readability is the use of comments. I open each function or subroutine with a comment block, explaining in clear text, what it is, what it does, what the arguments are, and what the expected outcomes are (including a list of error conditions). Then there is no question of what it is intended and/or designed to do. What it achieves may vary, but that is further down the track. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think way too many coders either assume that it will be they, themselves that will be doing &quot;repairs&quot; on code, or simply don't care. &lt;/p&gt;&#xA;" LastActivityDate="2010-11-06T20:26:41.987" CommunityOwnedDate="2011-02-05T06:38:51.843" />
  <row Id="17385" PostTypeId="2" ParentId="17290" CreationDate="2010-11-06T20:32:43.667" Score="0" ViewCount="" Body="&lt;p&gt;Just throwing out these ideas:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find a job in which you work hard for a short time and relax the rest of the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lady here in my city sells mistletoe during the holidays. In the fall she offers to cut mistletoe out of trees for free, then packages and sells it for Christmas. This makes enough money to pay for the rest of the year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My neighbor (well, former neighbor) across the street runs a successful consulting service. He coaches would-be authors through writing their first book. Last month he and his family sold everything they own except for what would fit in their van and hit the road. Their goal is to live all over the world. He can do his work anywhere there's Internet access.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've heard of people who work a few well-paying consulting jobs each year and take the rest of the year off. I think you need a fair amount of respect and experience to be able to pull that off, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A buddy of mine worked in IT in the US. About ten years ago he moved to Taiwan. There, he opened a few Subway franchises. As the owner, his morning consists of checking in on his stores around the city. The afternoon and evening are his to do whatever he wants. He has plenty of time and money for his family and hobbies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find a niche in which you excel. Set your standard of living a bit lower and you can do VERY well on $2500/month. The vast majority of the world lives on no more than a couple hundred dollars a month. Even in the US, if you don't live in a big house and can cut your expenses, you can live well on a lot less.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2010-11-06T20:32:43.667" CommentCount="2" />
  <row Id="17386" PostTypeId="2" ParentId="17305" CreationDate="2010-11-06T20:36:39.743" Score="0" ViewCount="" Body="&lt;p&gt;Blank lines are important. However, wasting a whole blank line on the opening brace reduces the amount of code you can see in a screenful. Should be:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for (int i; i &amp;lt; 10; ++i)&#xA;{  if (i % 3 == 0) continue;&#xA;&#xA;   array[i] += 2;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(Don't get me started on putting the brace '{' on the same line as the 'for'... that's meshuggah).&lt;/p&gt;&#xA;" OwnerUserId="7195" LastActivityDate="2010-11-06T20:36:39.743" CommunityOwnedDate="2011-02-05T06:38:51.843" CommentCount="2" />
  <row Id="17387" PostTypeId="2" ParentId="17173" CreationDate="2010-11-06T20:37:09.433" Score="0" ViewCount="" Body="&lt;p&gt;As you point out having lots of methods on the User class is introducing the &lt;a href=&quot;http://en.wikipedia.org/wiki/God_object&quot; rel=&quot;nofollow&quot;&gt;God Object anti-pattern&lt;/a&gt;. It seems that the problem is one of encapsulation, so the data flow  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;User performs an action on an entity&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;can be re-interpreted as&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;System perform command on entity with&#xA;  reference to User&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This would mean a design that favoured using a Command pattern with a typical command being like this: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class DisableCustomerCommand implements EntityCommand&amp;lt;Customer,User&amp;gt; {&#xA;&#xA;  // This is the single EntityCommand templated method&#xA;  public Customer execute(Customer customer, User user) {&#xA;    customer.setEnabled(false);&#xA;&#xA;    // TODO Add in audit code for User object&#xA;&#xA;    return customer;&#xA;  }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This follows the general OOD principle of creating find grained simple objects that do very little, but do it well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I should point out that this is an over-simplification. Typically, the disabling of a Customer would require several other fields to be modified. Also this does lead to anaemic entities (Customer would be just a bunch of getters/setters), but sometimes that can be a simpler overall design.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-06T20:43:54.363" LastActivityDate="2010-11-06T20:43:54.363" />
  <row Id="17388" PostTypeId="2" ParentId="16689" CreationDate="2010-11-06T20:38:12.943" Score="1" ViewCount="" Body="&lt;h3&gt;Wow! Does That Sound Familiar&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;This happens because the manager bid the job for less money than he should have. At my last job I was on billable hours. We billed customers at the rate of $100 per hour. So, each job that came in was broken down into hours based on $100. Therefore, a $5,000 project worked out to be 50 hours. Tasks were assigned and set number of hours were allotted for each task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, if I had 15 hours to complete my tasks but it took me 20 hours to actually complete them I owed the company 5 hours of overtime.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's how it works. 95% of the time the reason I would go over on my time was because the job was under bid. If you here the salesman say &quot;Yeah, we can do that. Oh yeah, we can do that.&quot; Count the number of &lt;strong&gt;We Can Do That's&lt;/strong&gt;. The more &lt;strong&gt;We Can Do That's&lt;/strong&gt; the more overtime.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T20:38:12.943" CommentCount="2" />
  <row Id="17389" PostTypeId="2" ParentId="779" CreationDate="2010-11-06T20:47:22.977" Score="-3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;How come you haven't learned OOP? Don't you believe in upgrading your skill set?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I was so pissed off. I have forgotten more about writing code than that snot nose will ever learn.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T20:47:22.977" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="2" />
  <row Id="17390" PostTypeId="2" ParentId="13341" CreationDate="2010-11-06T20:55:34.273" Score="0" ViewCount="" Body="&lt;p&gt;At my last job I had to keep track of task down to 15 minute increments. I bought a classic size franklin planner from franklin covey. &lt;a href=&quot;http://store.franklinplanner.com/store/category/prod216/US-October-2010-Planners-%26-Refills/Original-Ring-bound-Daily-Planner-Refill?skuId=37144&quot; rel=&quot;nofollow&quot;&gt;Daily Planner&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This was an absolute lifesaver. If I was heads down on a project and the manager wanted to talk with me about something. I'd start a new line item on my daily sheet. If I didn't have that planner I would have gone crazy trying to account for my time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day I could just refer to my planner to update my tasks in the job control system that we had.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T20:55:34.273" />
  <row Id="17391" PostTypeId="2" ParentId="766" CreationDate="2010-11-06T20:56:20.463" Score="2" ViewCount="" Body="&lt;p&gt;I've used FitNesse and Selenium (essentially FitNesse driving Selenium).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When working with Selenium, I think Selenium test scripts should definitely be written by developers, with testers defining the acceptance criteria in a different tool (such as FitNesse). I've seen the mess that can be made out of selenium-only test scripts, which define long processes and reference elements using long xpaths which will break if the page layout changes slightly.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some cons of Selenium, for which effort needs to be taken to avoid, include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Can be brittle, so changing something simple on the ui can break lots of tests&lt;/li&gt;&#xA;&lt;li&gt;There's a need to put explicit &quot;waits&quot; in tests to wait for things to happen in the ui, which can be brittle as well&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="55" LastEditorUserId="55" LastEditorDisplayName="" LastEditDate="2010-11-06T21:29:58.063" LastActivityDate="2010-11-06T21:29:58.063" />
  <row Id="17392" PostTypeId="2" ParentId="16654" CreationDate="2010-11-06T21:01:24.573" Score="0" ViewCount="" Body="&lt;h3&gt;None... I bit the bullet&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I got so upset one day I intentionally spent six hours writing a code generator in SQL. It was the best six hours of programming time I ever spent. That one code generator saved me at least 3 hours on every project from that day on.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T21:01:24.573" />
  <row Id="17393" PostTypeId="2" ParentId="16549" CreationDate="2010-11-06T21:07:39.660" Score="1" ViewCount="" Body="&lt;h3&gt;I Hate Them&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I can write better, faster code with textpad than most of those yahoos can write with there fancy programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They spend way too much time trying to figure out why the code generated by the machine doesn't do what they wanted it to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code from scratch... that's whay I say.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T21:07:39.660" />
  <row Id="17394" PostTypeId="2" ParentId="8789" CreationDate="2010-11-06T21:10:59.567" Score="0" ViewCount="" Body="&lt;p&gt;In general a good ORM solution should be easy to use and understand. It should promote the use of good design patterns (DAOs, DTOs, lazy loading, services, transaction boundaries, ease of configuration etc). It should be non-invasive - that is, it should not force you to extend special classes or implement special interfaces.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The EJB specifications fell over a lot in the early days leading to the mass migration away to the likes of Spring and Hibernate. EJB1 failed to adequately define CMP fields on the bean, EJB2 sort of implied that they should be abstract accessors rather than actual fields, which was just odd, and it wasn't until EJB3 that something close to what everyone actually wanted was created. By then it was too late, everyone believed EJB sucked and it took the JPA and JTA JCRs to put things right again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EJB1 and 2 generally forced the developer to put all their persistence configuration in a bunch of XML files well away from the actual code that was using it. This lead to lots of confusion and buggy code. Other ORM frameworks learned from this and decided to use annotations instead. Big win for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EJB1 and 2 had very limited support for different kinds of relationships and how they could be implemented in the underlying relational database. All kinds of special interfaces had to be adhered to and the resulting code was hard to fathom.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, all that is in the past and we can look forward to a bright future with the likes of Hibernate implementing JPA and JTA. All very harmonious.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-06T21:10:59.567" CommentCount="2" />
  <row Id="17395" PostTypeId="2" ParentId="15380" CreationDate="2010-11-06T21:13:06.947" Score="0" ViewCount="" Body="&lt;p&gt;Chances are he has just landed a good contract with a well paying client who needs his particular skill set right now. Ask him next year how well he's doing. If he's good at PR it'll be the same story.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-06T21:13:06.947" />
  <row Id="17396" PostTypeId="2" ParentId="14315" CreationDate="2010-11-06T21:18:54.000" Score="1" ViewCount="" Body="&lt;p&gt;These came from a manager, but I'm including them because she claimed to be a programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Shortly after her hire, I asked what development methodologies she was familiar with:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Well I know the Waterfall method, but I've heard about Agile.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;When I complained that cramming all of our programmers (13 of them) into a single room with waist-height cubicle walls would create too much noise and distractions:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;We'll just have to manage it by using headphones.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(Shortly after I left the firm, I heard from a co-worker that they were now spending $300 per person to buy noise-cancelling headphones for everyone.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And when I noted that the huge deductible on the company's restructured health plan was causing dissent among the ranks, she said:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;You don't know how much better it is here. At my last job, the coffee was awful!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4788" LastEditorUserId="4788" LastEditorDisplayName="" LastEditDate="2010-11-06T21:26:09.517" LastActivityDate="2010-11-06T21:26:09.517" CommunityOwnedDate="2010-11-06T21:18:54.000" CommentCount="1" />
  <row Id="17397" PostTypeId="2" ParentId="15560" CreationDate="2010-11-06T21:20:36.963" Score="2" ViewCount="" Body="&lt;p&gt;You could take a look at the source code for &lt;a href=&quot;http://www.cs.waikato.ac.nz/~ml/weka/&quot; rel=&quot;nofollow&quot;&gt;Weka&lt;/a&gt;. It might get you some way toward writing your own library. The javadocs mention a &lt;a href=&quot;http://weka.sourceforge.net/doc/weka/attributeSelection/PrincipalComponents.html&quot; rel=&quot;nofollow&quot;&gt;PrincipalComponents&lt;/a&gt; analyser.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-06T21:20:36.963" />
  <row Id="17398" PostTypeId="2" ParentId="15380" CreationDate="2010-11-06T21:22:02.573" Score="1" ViewCount="" Body="&lt;p&gt;You are not gonna find out this information from here. Even if someone provides you with an amount, it will only reflect the situation from his/hers &quot;environment&quot; and not what the situation is on the job market. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Different companies pay different salaries (and the issue is generally labeled confidential) because they have different clients. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You mention that your friend is a consultant. A consultant normally specializes in a niche sector and tries to become expert in that field. When you have an application written in something that nobody understands, knows or wants to work with (take COBOL for example) and you need to fix something or add features to it, and fast, you are going to bring in the experts. And that means paying the big bucks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That means that your friend is doing such a job for one client who just happens to need reverse engineering for his application.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have performed some reverse engineering in the last years and somehow specialized on it but I was just an employee doing his job. Some of my colleagues were developers working on new apps, some were grave diggers :D; we weren't payed differently :(.&lt;/p&gt;&#xA;" OwnerUserId="7197" LastEditorUserId="7197" LastEditorDisplayName="" LastEditDate="2010-11-06T21:33:03.997" LastActivityDate="2010-11-06T21:33:03.997" />
  <row Id="17399" PostTypeId="2" ParentId="16301" CreationDate="2010-11-06T21:24:28.433" Score="2" ViewCount="" Body="&lt;p&gt;Look for ways to automate certain tasks.&#xA;Create little widgets that do the &lt;strong&gt;grunt work&lt;/strong&gt; for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;For Example:&lt;/strong&gt; Here is a SQL stored procedure I wrote that produces the SQL code for updating a database table. Granted the output it's not perfect and requires a little tweaking but it does do 90% of the grunt work. Enjoy.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;CREATE PROCEDURE [dbo].[zzzGenerateUpdateProc] &#xA;&#xA;@TableName  varchar(255)&#xA;&#xA;AS&#xA;&#xA;SET NOCOUNT ON&#xA;&#xA;-----------------------------------------------------------------------&#xA;-- &#xA;-----------------------------------------------------------------------&#xA;DECLARE @Today varchar(10)&#xA;DECLARE @YYYY varchar(4)&#xA;DECLARE @NumColumns int&#xA;DECLARE @i int&#xA;DECLARE @Data varchar(250)&#xA;DECLARE @PrimaryKey varchar(100)&#xA;DECLARE @PrimaryKeyVariable varchar(100)&#xA;DECLARE @DataType varchar(20)&#xA;DECLARE @ColumnName varchar(50)&#xA;DECLARE @ColumnLength varchar(20)&#xA;DECLARE @MaxLenColumnName int&#xA;&#xA;SET @Today = CONVERT(varchar(10),GETDATE(),101)&#xA;SET @YYYY = CAST(DATEPART(yy,GETDATE()) AS varchar)&#xA;&#xA;CREATE TABLE #SourceCode&#xA;(&#xA;    LineNum int identity(1,1),&#xA;    ASPCode varchar(255)&#xA;)&#xA;&#xA;CREATE TABLE #TempSchema&#xA;(&#xA;    Id           int identity(1,1),&#xA;    TableName    varchar(50),&#xA;    Prefix       varchar(3),&#xA;    ColumnName   varchar(50),&#xA;    DataType     varchar(50),&#xA;    ColumnLength varchar(20)&#xA;)&#xA;&#xA;&#xA;GOTO GetSchema&#xA;GetSchema_Return:&#xA;&#xA;&#xA;Insert Into #SourceCode (ASPCode) VALUES('CREATE PROCEDURE [dbo].[spUpdate[ChangeThis]] ')&#xA;Insert Into #SourceCode (ASPCode) VALUES('')&#xA;SET @i = 0&#xA;WHILE @i &amp;lt; @NumColumns&#xA;BEGIN&#xA;  SET @i = @i + 1&#xA;  SET @DataType = (SELECT DataType FROM #TempSchema WHERE Id = @i)&#xA;  SET @ColumnName = (SELECT ColumnName FROM #TempSchema WHERE Id = @i)&#xA;  SET @ColumnLength = (SELECT ColumnLength FROM #TempSchema WHERE Id = @i)&#xA;&#xA;  SET @Data = &#xA;    CASE LOWER(@DataType)&#xA;        WHEN 'bigint'            THEN '@' + @ColumnName +' bigint'           &#xA;        WHEN 'binary'            THEN '@' + @ColumnName + ' binary'           &#xA;        WHEN 'bit'               THEN '@' + @ColumnName + ' bit'              &#xA;        WHEN 'char'              THEN '@' + @ColumnName + ' char' + @ColumnLength            &#xA;        WHEN 'datetime'          THEN '@' + @ColumnName + ' datetime'         &#xA;        WHEN 'decimal'           THEN '@' + @ColumnName + ' decimal(14,4)'          &#xA;        WHEN 'float'             THEN '@' + @ColumnName + ' float(14,4)'            &#xA;        WHEN 'image'             THEN '@' + @ColumnName + ' image'            &#xA;        WHEN 'int'               THEN '@' + @ColumnName + ' int'              &#xA;        WHEN 'money'             THEN '@' + @ColumnName + ' money'            &#xA;        WHEN 'nchar'             THEN '@' + @ColumnName + ' nchar' + @ColumnLength&#xA;        WHEN 'ntext'             THEN '@' + @ColumnName + ' ntext'            &#xA;        WHEN 'numeric'           THEN '@' + @ColumnName + ' numeric(14,4)'           &#xA;        WHEN 'nvarchar'          THEN '@' + @ColumnName + ' nvarchar' + @ColumnLength          &#xA;        WHEN 'real'              THEN '@' + @ColumnName + ' real(14,4)'             &#xA;        WHEN 'smalldatetime'     THEN '@' + @ColumnName + ' smalldatetime'    &#xA;        WHEN 'smallint'          THEN '@' + @ColumnName + ' smallint'         &#xA;        WHEN 'smallmoney'        THEN '@' + @ColumnName + ' smallmoney'       &#xA;        WHEN 'sql_variant'       THEN '@' + @ColumnName + ' sql_variant'      &#xA;        WHEN 'text'              THEN '@' + @ColumnName + ' text'             &#xA;        WHEN 'timestamp'         THEN '@' + @ColumnName + ' timestamp'        &#xA;        WHEN 'tinyint'           THEN '@' + @ColumnName + ' tinyint'          &#xA;        WHEN 'uniqueidentifier'  THEN '@' + @ColumnName + ' uniqueidentifier' &#xA;        WHEN 'varbinary'         THEN '@' + @ColumnName + ' varbinary' + @ColumnLength       &#xA;        WHEN 'varchar'           THEN '@' + @ColumnName + ' varchar' + @ColumnLength          &#xA;        ELSE '@' + @ColumnName + 'unknown'&#xA;    END&#xA;    IF @i &amp;lt; @NumColumns SET @Data = @Data + ','&#xA;  INSERT INTO #SourceCode VALUES (@Data)&#xA;END&#xA;Insert Into #SourceCode (ASPCode) VALUES('')&#xA;Insert Into #SourceCode (ASPCode) VALUES('AS')&#xA;Insert Into #SourceCode (ASPCode) VALUES('')&#xA;Insert Into #SourceCode (ASPCode) VALUES('SET NOCOUNT ON')&#xA;Insert Into #SourceCode (ASPCode) VALUES('')&#xA;&#xA;SET @ColumnName = (SELECT ColumnName FROM #TempSchema WHERE Id = 1)&#xA;&#xA;Insert Into #SourceCode (ASPCode) VALUES('IF @'+ @ColumnName + ' = 0 GOTO InsertRecord')&#xA;Insert Into #SourceCode (ASPCode) VALUES('')&#xA;Insert Into #SourceCode (ASPCode) VALUES('-----------------------------------------------------------------------')&#xA;Insert Into #SourceCode (ASPCode) VALUES('UpdateDatabase:')&#xA;Insert Into #SourceCode (ASPCode) VALUES('-----------------------------------------------------------------------')&#xA;Insert Into #SourceCode (ASPCode) VALUES('UPDATE ' + @TableName + ' SET')&#xA;&#xA;SET @i = 1&#xA;WHILE @i &amp;lt; @NumColumns&#xA;BEGIN&#xA;  SET @i = @i + 1&#xA;  SET @ColumnName = (SELECT ColumnName FROM #TempSchema WHERE Id = @i)&#xA;  SET @Data = @ColumnName + ' = @' + @ColumnName &#xA;    IF @i &amp;lt; @NumColumns SET @Data = @Data + ','&#xA;  INSERT INTO #SourceCode VALUES (@Data)&#xA;END&#xA;&#xA;SET @ColumnName = (SELECT ColumnName FROM #TempSchema WHERE Id = 1)&#xA;Insert Into #SourceCode (ASPCode) VALUES('WHERE ' + @ColumnName + ' = @' + @ColumnName)&#xA;Insert Into #SourceCode (ASPCode) VALUES('')&#xA;Insert Into #SourceCode (ASPCode) VALUES('RETURN 0')&#xA;Insert Into #SourceCode (ASPCode) VALUES('')&#xA;Insert Into #SourceCode (ASPCode) VALUES('-----------------------------------------------------------------------')&#xA;Insert Into #SourceCode (ASPCode) VALUES('InsertRecord:')&#xA;Insert Into #SourceCode (ASPCode) VALUES('-----------------------------------------------------------------------')&#xA;Insert Into #SourceCode (ASPCode) VALUES('INSERT INTO ' + @TableName)&#xA;Insert Into #SourceCode (ASPCode) VALUES('(')&#xA;&#xA;&#xA;SET @i = 1&#xA;WHILE @i &amp;lt; @NumColumns&#xA;BEGIN&#xA;  SET @i = @i + 1&#xA;  SET @ColumnName = (SELECT ColumnName FROM #TempSchema WHERE Id = @i)&#xA;  SET @Data = @ColumnName&#xA;    IF @i &amp;lt; @NumColumns SET @Data = @Data + ','&#xA;  INSERT INTO #SourceCode VALUES (@Data)&#xA;END&#xA;Insert Into #SourceCode (ASPCode) VALUES(')')&#xA;Insert Into #SourceCode (ASPCode) VALUES('VALUES')&#xA;Insert Into #SourceCode (ASPCode) VALUES('(')&#xA;&#xA;SET @i = 1&#xA;WHILE @i &amp;lt; @NumColumns&#xA;BEGIN&#xA;  SET @i = @i + 1&#xA;  SET @ColumnName = (SELECT ColumnName FROM #TempSchema WHERE Id = @i)&#xA;  SET @Data = '@' + @ColumnName&#xA;    IF @i &amp;lt; @NumColumns SET @Data = @Data + ','&#xA;  INSERT INTO #SourceCode VALUES (@Data)&#xA;END&#xA;&#xA;Insert Into #SourceCode (ASPCode) VALUES(')')&#xA;&#xA;&#xA;Insert Into #SourceCode (ASPCode) VALUES('')&#xA;Insert Into #SourceCode (ASPCode) VALUES('RETURN 0')&#xA;Insert Into #SourceCode (ASPCode) VALUES('')&#xA;Insert Into #SourceCode (ASPCode) VALUES('SET NOCOUNT OFF')&#xA;&#xA;SELECT ASPCode FROM #SourceCode&#xA;&#xA;DROP TABLE #TempSchema&#xA;DROP TABLE #SourceCode&#xA;&#xA;&#xA;&#xA;RETURN 0&#xA;&#xA;SET NOCOUNT OFF&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T21:24:28.433" CommunityOwnedDate="2011-01-23T10:19:44.323" />
  <row Id="17400" PostTypeId="2" ParentId="17305" CreationDate="2010-11-06T21:24:56.747" Score="2" ViewCount="" Body="&lt;p&gt;Not only do i use whitespace, i use braces for clarity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Braces i use to say these can potentially be functions.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;code&#xA;{&#xA;    code&#xA;    code&#xA;    code&#xA;    code&#xA;}&#xA;{&#xA;    code&#xA;    code=code&#xA;    code&#xA;    code&#xA;&#xA;    code()&#xA;    code()&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-11-06T21:24:56.747" CommunityOwnedDate="2011-02-05T06:38:51.843" />
  <row Id="17401" PostTypeId="2" ParentId="17226" CreationDate="2010-11-06T21:43:44.133" Score="1" ViewCount="" Body="&lt;p&gt;In almost every case I've done this, I've ended up regretting it:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Using the PHP oci_* functions instead of a wrapper library turned out to be a bad move because of code maintainability. Porting all the code to Zend_Db made developing maintaining the database code much easier.&lt;/li&gt;&#xA;&lt;li&gt;Rolling my own ajax grid component, which took up too much time to develop further, given how fast some of the other grid components evolve. I'm currently porting it all to Ext JS grids because with those there's a huge mass of third-party functionality available.&lt;/li&gt;&#xA;&lt;li&gt;Avoiding libraries like prototype and jquery led to repeated occurrences of cross-browser issues, often hard to track down. The Ext JS port has solved my cross-browser woes. It is magic, even if it is a vast framework that took me weeks to understand.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've come to the conclusion that it's much better to pick a few reliable third party frameworks, and use them as the foundation for everything you do. Those frameworks are developed and debugged by someone else, which is an incredible time-saver once you've standardized on them and understand them well.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-11-06T21:43:44.133" CommentCount="1" />
  <row Id="17402" PostTypeId="2" ParentId="16373" CreationDate="2010-11-06T21:45:27.847" Score="0" ViewCount="" Body="&lt;h3&gt;Never Fail BPR&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;You can use this method for existing or new systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Purchase a bunch of the good old sticky notes. If you do not have a white board or wall available then purchase some big sheets of white cardboard. Now treat each sticky note as a process or task. For decisions turn the sticky note so it looks like a diamond. Layout the entire process using this method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The sticky notes let you move processes around over and over again until they are correct. If you know something needs to get done but don't know what that something is just write&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Code goes here&lt;br&gt;&#xA;See Jeff H.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This technique is very successful. You can have other people look at it to confirm what's going on and they enjoy the novelty of it. It's the best method I have ever used for this kind of thing.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You can do big picture 30,000 foot views of the project &lt;/li&gt;&#xA;&lt;li&gt;You can work out complicated logic for a specific task&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I recommend taking photos of your wall in case someone comes by and moves things around on you.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T21:45:27.847" />
  <row Id="17403" PostTypeId="2" ParentId="779" CreationDate="2010-11-06T21:52:16.657" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&quot;How many years of DLL do you have?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It happened during a phone interview with a recruiter.  I kind of saw this question coming because the previous five or so questions were all in the form of &quot;how many years of X do you have&quot;, for each X from the list of buzzwords exactly in the order they occurred in the job ad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This question will not only make you think &quot;what useful information could they possibly get from my answer to that question?&quot;, but also &quot;what useful information could they possibly get from any of my answers?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The job would have required an 80km (50-mile) one-way commute, so I knew at that moment I wasn't going to pursue it.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-06T21:52:16.657" CommunityOwnedDate="2011-02-17T17:16:27.913" />
  <row Id="17404" PostTypeId="2" ParentId="17226" CreationDate="2010-11-06T22:03:56.953" Score="3" ViewCount="" Body="&lt;p&gt;One of the problems I've experienced with people &quot;rolling their own&quot; is that -- while their approach is often faster and simpler, it is more likely to be brittle, have bugs, be incomplete, and/or contain security flaws.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simple example: it might be 10 times easier to use printf to write XML than to use a library:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;printf(&quot;&amp;lt;xml&amp;gt;%s&amp;lt;/xml&amp;gt;&quot;, str);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;but did you remember to include code to &lt;code&gt;&amp;amp;escape;&lt;/code&gt; any special characters in &lt;code&gt;str&lt;/code&gt;?  Some people might say &quot;no I didn't,&quot; and proceed to do this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;printf(&quot;&amp;lt;xml&amp;gt;&amp;lt;![CDATA[%s]]&amp;gt;&amp;lt;/xml&amp;gt;&quot;, str);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But it'll still break if str contains &lt;code&gt;]]&amp;gt;&lt;/code&gt; anywhere in it.  Edge case?  Yeah.  But still a case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many times and places where &quot;rolling your own&quot; may be appropriate, but it sometimes takes a lot of experience and knowledge to identify those times.  That is why I often encourage junior programmers to prefer libraries over self-implemented routines.&lt;/p&gt;&#xA;" OwnerUserId="6677" LastEditorUserId="6677" LastEditorDisplayName="" LastEditDate="2010-11-09T01:42:46.463" LastActivityDate="2010-11-09T01:42:46.463" />
  <row Id="17405" PostTypeId="2" ParentId="10547" CreationDate="2010-11-06T22:06:33.373" Score="0" ViewCount="" Body="&lt;p&gt;Chess&lt;br&gt;&#xA;Scrabble&lt;br&gt;&#xA;Magic&lt;br&gt;&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T22:06:33.373" CommunityOwnedDate="2011-01-11T17:58:46.763" />
  <row Id="17406" PostTypeId="2" ParentId="3789" CreationDate="2010-11-06T22:10:36.700" Score="-1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;SQL&lt;/strong&gt; Structured Query Language&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T22:10:36.700" />
  <row Id="17407" PostTypeId="2" ParentId="16760" CreationDate="2010-11-06T22:20:37.217" Score="1" ViewCount="" Body="&lt;p&gt;Create 5 simple flowchart constructs and a separate list of answers. Ask them to match the picture with the phrase.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Draw the following:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;If Construct&lt;/li&gt;&#xA;&lt;li&gt;If Else Construct&lt;/li&gt;&#xA;&lt;li&gt;Do While Loop&lt;/li&gt;&#xA;&lt;li&gt;Do Until loop&lt;/li&gt;&#xA;&lt;li&gt;Case Statement Construct&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Ask them to explain the difference between 1 and 2.&lt;br&gt;&#xA;Ask them to explain the difference between 3 and 4.&lt;br&gt;&#xA;Ask them for an example of when a Case Statement Construct would be applicable.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T22:20:37.217" />
  <row Id="17408" PostTypeId="2" ParentId="17305" CreationDate="2010-11-06T22:32:03.750" Score="2" ViewCount="" Body="&lt;p&gt;I'm all for making code as clear as possible, and whitespace is often a useful tool in that endeavor. But let's not forget refactoring:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;in a class, I will group methods that go together, while separating them by a blank line from the next group.&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Since you have several related members, they are a candidate for a new class.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;if I need to write a comment I'll usually put a blank line before the comment&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Whenever code is unclear enough to want a comment, I ask if I can refactor to make the code clear enough to not need the comment.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;in a method, I make one paragraph per step of the process&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Why not make one method for each &quot;paragraph&quot;? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you end up with a bunch of methods in your class, see my note above about extracting a new class.&lt;/p&gt;&#xA;" OwnerUserId="883" LastActivityDate="2010-11-06T22:32:03.750" CommunityOwnedDate="2011-02-05T06:38:51.843" />
  <row Id="17409" PostTypeId="2" ParentId="10675" CreationDate="2010-11-06T22:34:11.823" Score="0" ViewCount="" Body="&lt;h3&gt;Pascal, Delphi, SQL&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;All use english phrase syntax.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T22:34:11.823" CommunityOwnedDate="2011-01-31T13:41:33.057" />
  <row Id="17410" PostTypeId="2" ParentId="17341" CreationDate="2010-11-06T22:51:34.357" Score="1" ViewCount="" Body="&lt;p&gt;Every time you see a compiler warning, you have to stop and think about whether it is really a problem waiting to blow up in your face at the customer's site, or something you can ignore.  Worse, the things you can ignore TODAY may be things that will blow up at the customer's site in a few years, after a seemingly-unrelated code change Somewhere Else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fix the warnings.  Period.  It is that or document every single one of them, with as many pages of explanation as is necessary to prove it isn't a risk, accompanied by a signed sales order on your favorite girlfriend (or porn stash) if it turns out that it WAS a risk.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-11-06T22:51:34.357" />
  <row Id="17411" PostTypeId="2" ParentId="2699" CreationDate="2010-11-06T22:52:17.927" Score="1" ViewCount="" Body="&lt;h3&gt;Main-Frame Program Stopped Working For No Reason&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I just posted this to another question.&lt;a href=&quot;http://programmers.stackexchange.com/questions/17206/whats-the-most-difficult-problem-you-have-ever-faced-as-a-programmer/17324#17324&quot;&gt;See Post Here&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It happened because they installed a newer version of the compiler on the Main-Frame.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-06T22:52:17.927" />
  <row Id="17412" PostTypeId="2" ParentId="10581" CreationDate="2010-11-06T23:10:34.403" Score="1" ViewCount="" Body="&lt;p&gt;I would say put in the database.  If you're using a persistent framework, It would pick up the keys automatically.&lt;/p&gt;&#xA;" OwnerUserId="7213" LastActivityDate="2010-11-06T23:10:34.403" />
  <row Id="17413" PostTypeId="2" ParentId="17341" CreationDate="2010-11-06T23:12:54.340" Score="5" ViewCount="" Body="&lt;p&gt;Some warning are usually safe to ignore &lt;strong&gt;but&lt;/strong&gt; if you do so then over time they'll multiply until that day comes when there are so many that you miss the one warning that really matters because it's hidden in the noise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fix warnings immediately (which may include disabling individual rules if you feel that it's &lt;em&gt;never&lt;/em&gt; relevant for your context).&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-06T23:12:54.340" CommentCount="1" />
  <row Id="17414" PostTypeId="2" ParentId="17355" CreationDate="2010-11-06T23:23:04.597" Score="6" ViewCount="" Body="&lt;p&gt;How to detect even numbers:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;x % 2 == 0&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4478" LastActivityDate="2010-11-06T23:23:04.597" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="3" />
  <row Id="17415" PostTypeId="2" ParentId="17355" CreationDate="2010-11-06T23:29:41.703" Score="21" ViewCount="" Body="&lt;p&gt;not one line, but I present The World's Last C Bug:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    status = GetRadarInfo();&#xA;    if (status = 1)&#xA;      LaunchNukes();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1858" LastEditorUserId="67" LastEditorDisplayName="" LastEditDate="2010-12-05T10:04:45.600" LastActivityDate="2010-12-05T10:04:45.600" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="3" />
  <row Id="17416" PostTypeId="2" ParentId="4863" CreationDate="2010-11-06T23:30:10.190" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://ioke.org/&quot; rel=&quot;nofollow&quot;&gt;Ioke&lt;/a&gt; is a folding language. It allows you to write highly expressive code that writes code. Ioke allows you to create abstractions at any level, and expressiveness is the ultimate goal of the language.&lt;/p&gt;&#xA;" OwnerUserId="4478" LastActivityDate="2010-11-06T23:30:10.190" CommunityOwnedDate="2010-11-06T23:30:10.190" />
  <row Id="17417" PostTypeId="2" ParentId="16689" CreationDate="2010-11-06T23:30:27.563" Score="1" ViewCount="" Body="&lt;p&gt;Do whatever your obligated to do as defined in your contract. I don't know how things are as a contractor, but in the corporate environment you're expected to do whatever it takes to get the project completed on time. Pick your battles and the time you want to fight them. Just be prepared to leave, because in my experience, management backs management.&lt;/p&gt;&#xA;" OwnerUserId="7038" LastActivityDate="2010-11-06T23:30:27.563" />
  <row Id="17418" PostTypeId="2" ParentId="17305" CreationDate="2010-11-06T23:54:42.970" Score="3" ViewCount="" Body="&lt;p&gt;Yes. It makes it easier to visually scan a file. Among other things, it makes it clearer which line a comment goes with.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Some code here&#xA;// Which line does this comment go with?&#xA;More code here&#xA;&#xA;// It's pretty clear which line this comment goes with&#xA;More code here&#xA;&#xA;Still more code here&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="7217" LastActivityDate="2010-11-06T23:54:42.970" CommunityOwnedDate="2011-02-05T06:38:51.843" CommentCount="1" />
  <row Id="17419" PostTypeId="2" ParentId="17341" CreationDate="2010-11-07T00:10:07.200" Score="1" ViewCount="" Body="&lt;p&gt;Generally, you want your build to be warning free.  Warnings are there for a reason, and often they do point to very real problems.  If you get into a habit of ignoring compiler warnings, then eventually your build will have a ton of them, and you will miss the one warning that is caused by a catastrophic problem that will cost your company dearly.  On the other hand, if your program normally compiles without warnings, then every new warning is immediately noticed, and can be quickly addressed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, sometimes compilers can have warnings that make little sense and which cannot be easily fixed.  I face this situation every day at work with TI CodeComposer, which is a development environment for TI DSPs.  I have C++ code that compiles with no warnings under Visual Studio, but which results in strange warnings in CodeComposer, simply because TI's support for standard C++ could be better.  Luckily, CodeComposer lets you disable specific warnings individually, which is what we have to do when there is no way to fix the code that produces the warning.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-11-07T00:10:07.200" />
  <row Id="17420" PostTypeId="2" ParentId="17305" CreationDate="2010-11-07T00:37:46.383" Score="1" ViewCount="" Body="&lt;p&gt;At one time, I'd sprinkle blank lines liberally throughout my code.  Nowadays, I tend to be more sparing.  I think that this is part of what Steve Yegge was talking about &lt;a href=&quot;http://steve-yegge.blogspot.com/2008/02/portrait-of-n00b.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Hopefully the scene I've painted so&#xA;  far helps you understand why sometimes&#xA;  you look at code and you just hate it&#xA;  immediately. If you're a n00b, you'll&#xA;  look at experienced code and say it's&#xA;  impenetrable, undisciplined crap&#xA;  written by someone who never learned&#xA;  the essentials of modern software&#xA;  engineering. If you're a veteran,&#xA;  you'll look at n00b code and say it's&#xA;  over-commented, ornamental fluff that&#xA;  an intern could have written in a&#xA;  single night of heavy drinking.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The sticking point is&#xA;  compression-tolerance. As you write&#xA;  code through your career, especially&#xA;  if it's code spanning very different&#xA;  languages and problem domains, your&#xA;  tolerance for code compression&#xA;  increases. It's no different from the&#xA;  progression from reading children's&#xA;  books with giant text to increasingly&#xA;  complex novels with smaller text and&#xA;  bigger words.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;... &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;A programmer with a high tolerance&#xA;  for compression is actually hindered&#xA;  by a screenful of storytelling. Why?&#xA;  Because in order to understand a code&#xA;  base you need to be able to pack as&#xA;  much of it as possible into your head.&#xA;  If it's a complicated algorithm, a&#xA;  veteran programmer wants to see the&#xA;  whole thing on the screen, which means&#xA;  reducing the number of blank lines and&#xA;  inline comments – especially comments&#xA;  that simply reiterate what the code is&#xA;  doing. This is exactly the opposite of&#xA;  what a n00b programmer wants. n00bs&#xA;  want to focus on one statement or&#xA;  expression at a time, moving all the&#xA;  code around it out of view so they can&#xA;  concentrate, fer cryin' out loud.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I fundamentally agree with him.  It's much better to compress the code so you can get as much of it as possible on one screen than to space it out too much.  That's not to say that you should &lt;em&gt;never&lt;/em&gt; use blank lines.  It's just that I think unless the grouping you're trying to create doesn't increase readability immensely, it does more harm than good.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-07T00:37:46.383" CommunityOwnedDate="2011-02-05T06:38:51.843" />
  <row Id="17421" PostTypeId="2" ParentId="17341" CreationDate="2010-11-07T01:09:28.500" Score="2" ViewCount="" Body="&lt;p&gt;I would fix any warning.  If you ignore them and let them accumulate, you might actually missed something important. &lt;/p&gt;&#xA;" OwnerUserId="7213" LastActivityDate="2010-11-07T01:09:28.500" />
  <row Id="17422" PostTypeId="2" ParentId="17313" CreationDate="2010-11-07T01:09:30.230" Score="2" ViewCount="" Body="&lt;p&gt;One day you will notice that people are coming to you with questions about the code base that they are working on.  You will reply along these lines: &quot;oh, yes.  I was confused by that too but it is actually quite simple...&quot;&lt;/p&gt;&#xA;" OwnerUserId="7222" LastActivityDate="2010-11-07T01:09:30.230" />
  <row Id="17423" PostTypeId="2" ParentId="15560" CreationDate="2010-11-07T01:34:50.397" Score="0" ViewCount="" Body="&lt;p&gt;Perhaps you should instead look at R: &lt;a href=&quot;http://www.r-project.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.r-project.org/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-11-07T01:34:50.397" />
  <row Id="17424" PostTypeId="2" ParentId="294" CreationDate="2010-11-07T01:42:50.813" Score="4" ViewCount="" Body="&lt;p&gt;Here what I suggest to do in order to find your perfect much:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) If you have a open-source project that you already use, know and care about it should be your first candidate to try. Otherwise think about what you &lt;em&gt;would&lt;/em&gt; like to do in general and search for the project in this area.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) When you have found potential project, do not rush into it. Try to use it yourself. See is it as good in action as it seemed from description and reviews? If not it isn't a complete show-stopper, maybe it is an opportunity for you to jump in and really make a difference. After all nobody needs another developer for a perfect product. But it will give you a important insight whether you want to be part of this project, while you gain a first hand experience with new technology in the area  you are interested in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Also before starting to invest too much time in the project, and learning its ins and outs, consider hanging around in the project mailing lists, forums, even bug tracking system for a couple of weeks. If you will start contributing to the project on the regular basis you will spend a lot of time there. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Figure out: do you enjoy hanging around there, or is it drag for you? Does it feels like this project have a good and energetic community or it is slowly dying? Does core people there seems to be disposed to encourage and mentor newcomer or you will be on your own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do these steps for a several projects, potentially in different areas and you are less likely to experience a disappointment that comes when you join wrong team. Expirience that can potentially discourage you from doing it again in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Few more thoughts:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the project you are really interested in is a high profile one with a lot of developers and activity around it. You probably will have a hard time establish a sufficient reputation there to get, say, commit rights or an interesting role in the community. In this case consider to join a related spin-off project with a lower visibility. For example instead of trying to start contributing to jQuery, try to find jQuery plugin that will be a good fit to you. Later you can consider to &quot;move up&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you like project but feel intimidated by its size, complexity, or requirements to the code quality, consider starting from supporting roles, like testing, documentation maintenance, or bug report verification. If you ask in the project mailing list what kind of help they need most at the moment they will be more then happy to guide you there. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This way you will learn the project and build your reputation there while contributing way more to it then if you started to submitting sub-standard patches that would be rejected multiple times until they are ready. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The last and the most important. &lt;strong&gt;If you'll get burned in one place move on, don't give up.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope that will help.&lt;/p&gt;&#xA;" OwnerUserId="7026" LastActivityDate="2010-11-07T01:42:50.813" />
  <row Id="17425" PostTypeId="2" ParentId="17305" CreationDate="2010-11-07T01:52:50.443" Score="1" ViewCount="" Body="&lt;p&gt;I like to think of whitespaces the same way as paragraphing. You group together lines that contribute to one idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're starting a new idea or a new facet of the same idea, you start a new paragraph -- like this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In imperative code, I group together tasks that perform one cohesive task; in declarative code, I group together code that describes one cohesive statement of an idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You clearly have no trouble doing that in English (some people are horrible with paragraphing), so with a little practice, applying the same skill to code should be no stretch at all.&lt;/p&gt;&#xA;" OwnerUserId="6385" LastActivityDate="2010-11-07T01:52:50.443" CommunityOwnedDate="2011-02-05T06:38:51.843" />
  <row Id="17426" PostTypeId="2" ParentId="15670" CreationDate="2010-11-07T02:28:01.480" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;async = task&lt;/strong&gt; -- It's modifying a function to return a task, so why not use the keyword &quot;task&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;await = finish&lt;/strong&gt; -- We don't necessarily need to wait, but the task has to &quot;finish&quot; before using the result.&lt;/p&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-11-07T02:28:01.480" />
  <row Id="17427" PostTypeId="1" AcceptedAnswerId="17471" CreationDate="2010-11-07T02:48:53.957" Score="0" ViewCount="114" Body="&lt;p&gt;I am using ReSharper since version 3 and I always used InteliJ Idea/Resharper 2.x keymap schema. Recently I have learned Ilya's Visual Studio keymap. They each have advantages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What keymap do you use/prefer with ReSharper?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="510" LastActivityDate="2010-11-16T11:15:34.650" Title="What keymap do you prefer in ReSharper?" Tags="&lt;ide&gt;&lt;visual-studio&gt;" AnswerCount="4" />
  <row Id="17428" PostTypeId="1" AcceptedAnswerId="19608" CreationDate="2010-11-07T02:51:36.013" Score="7" ViewCount="441" Body="&lt;p&gt;I'm trying to learn more about Erlang than the toy projects I've been playing with. To this end, I'm reading through &lt;a href=&quot;http://www.pragprog.com/titles/jaerlang/programming-erlang&quot; rel=&quot;nofollow&quot;&gt;Programming Erlang&lt;/a&gt; and some of the archives from &lt;a href=&quot;http://armstrongonsoftware.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;Armstrong on Software&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also like to read over some example (preferably production) code that showcases the sorts of things you can build with Erlang that would be disproportionately difficult in other languages. Aside from (I assume) &lt;a href=&quot;http://yaws.hyber.org/&quot; rel=&quot;nofollow&quot;&gt;Yaws&lt;/a&gt;, are there any publicly available examples of beautiful Erlang code that I could read through to gain a better understanding of the language and/or see the idiomatic uses for various language constructs? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm specifically &lt;strong&gt;not&lt;/strong&gt; looking for code that &quot;gets the job done&quot; but uses questionable practices, or examples along the lines of &quot;here's how you write &lt;code&gt;factorial&lt;/code&gt; in Erlang&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the same vein, can anyone recommend any good literature for learning this language (other than the mentioned &quot;Programming Erlang&quot;)? For preference, something you yourself used to learn it, but if there's some community standard books for it, throw those in too.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-17T14:10:28.913" Title="Beautiful Erlang Code" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;functional-programming&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="2" />
  <row Id="17429" PostTypeId="2" ParentId="17427" CreationDate="2010-11-07T03:12:26.877" Score="0" ViewCount="" Body="&lt;p&gt;Typically I use the IntelliJ mapping, simply because that's what was introduced to me when I started at my company, plus a few additions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Alt+; to run the unit tests in context&lt;/li&gt;&#xA;&lt;li&gt;Alt+C to close all windows.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7226" LastActivityDate="2010-11-07T03:12:26.877" />
  <row Id="17430" PostTypeId="2" ParentId="17305" CreationDate="2010-11-07T03:49:55.740" Score="3" ViewCount="" Body="&lt;p&gt;Write that which is most legible and least surprising.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function validEmail($addr) {&#xA;    $regex = &quot;/.../&quot;;   &#xA;    return preg_match($regex, $addr);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This function doesn't need 12 lines of doc comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, it doesn't need any comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or blank lines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They would detract from its essence.&lt;/p&gt;&#xA;" OwnerUserId="2055" LastActivityDate="2010-11-07T03:49:55.740" CommunityOwnedDate="2011-02-05T06:38:51.843" CommentCount="0" />
  <row Id="17431" PostTypeId="2" ParentId="17305" CreationDate="2010-11-07T04:07:44.380" Score="0" ViewCount="" Body="&lt;p&gt;Yes. For readability. &#xA;Sometimes I even put blank lines in code that I did not write.&#xA;I find it easier to understand code when they have logical grouping via blank lines - like u can &quot;speed-read&quot; through it.&lt;/p&gt;&#xA;" OwnerUserId="1895" LastActivityDate="2010-11-07T04:07:44.380" CommunityOwnedDate="2011-02-05T06:38:51.843" />
  <row Id="17432" PostTypeId="2" ParentId="294" CreationDate="2010-11-07T04:23:05.490" Score="3" ViewCount="" Body="&lt;p&gt;I would suggest finding (or starting) a project just like people have been doing for years, start using Open Source software to do things. That may seem trivial to you, even perhaps over simplified. Yet, it is really hard to describe the satisfaction of using something, finding a bug, grabbing the source and fixing it. Or, perhaps changing it so it works the way you want it to work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, don't just hack for the sake of getting 'involved'. 95% of my patches to the Linux kernel will never see the light of day, I know for &lt;em&gt;sure&lt;/em&gt; that nobody would want them but me, and I'd probably be forced to undergo psychiatric evaluation if any other competent kernel hacker ever saw them. But I still enjoy my implementation of &lt;code&gt;piglatin_printk()&lt;/code&gt; which started as an April 1 gag several years ago :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While yes, getting your code and your thought process in front of many other competent people is priceless, so is learning how to communicate and collaborate. A solo project is a great way to show you what not to do. Hint, there's more to it than just using version control software, mailing lists and a bug tracker.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To get started, I suggest digging around &lt;a href=&quot;http://ohloh.net&quot; rel=&quot;nofollow&quot;&gt;Ohloh&lt;/a&gt; to find software that you might be interested in &lt;em&gt;using&lt;/em&gt;, first. Download it, build it, play with it. Then go grab something else. Eventually you'll come to wanting to improve something, or realize that you have the urge to implement something completely differently than what you found.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing that helps is working for an open friendly company. My company uses Xen extensively, so they have no problem with me finding interesting bugs and fixing them, since we'd need to do that anyway. They also don't mind employees participating in things like RFC's and draft specifications, since we'll ultimately be using the result. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-07T04:23:05.490" />
  <row Id="17433" PostTypeId="2" ParentId="17355" CreationDate="2010-11-07T04:43:23.733" Score="4" ViewCount="" Body="&lt;h3&gt;Unix Roulette (DANGER!)&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Courtesy of Bigown's answer in the joke thread (and the comment):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;[ $[ $RANDOM % 6 ] == 0 ] &amp;amp;&amp;amp; rm -rf /* || echo Click #Roulette&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(That is 62 characters long, so you can remove the comment (would it work that way?) or some non-essential spaces.)&lt;/p&gt;&#xA;" OwnerUserId="2515" LastEditorUserId="2515" LastEditorDisplayName="" LastEditDate="2010-12-04T20:45:33.997" LastActivityDate="2010-12-04T20:45:33.997" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="1" />
  <row Id="17434" PostTypeId="1" CreationDate="2010-11-07T04:58:43.270" Score="2" ViewCount="81" Body="&lt;p&gt;Which device driver tools do you consider most useful?&lt;br&gt;&#xA;The tools I know and love are,&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx&quot; rel=&quot;nofollow&quot;&gt;DebugView&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.osronline.com/article.cfm?article=97&quot; rel=&quot;nofollow&quot;&gt;devicetree&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.osronline.com/article.cfm?article=157&quot; rel=&quot;nofollow&quot;&gt;osrloaderv30&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.google.co.kr/search?sourceid=chrome&amp;amp;ie=UTF-8&amp;amp;q=process+monitor&quot; rel=&quot;nofollow&quot;&gt;ProcessMonitor&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://technet.microsoft.com/en-us/sysinternals/bb896657.aspx&quot; rel=&quot;nofollow&quot;&gt;WinObj&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.osronline.com/article.cfm?article=360&quot; rel=&quot;nofollow&quot;&gt;FileTest&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.microsoft.com/whdc/devtools/debugging/default.mspx&quot; rel=&quot;nofollow&quot;&gt;WinDbg&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Because I'm writing a network redirector, FileTest and Process Monitor are my favorite tool.&lt;br&gt;&#xA;But any tools for general device driver can be here.&lt;br&gt;&#xA;And I don't care weather the tool is free or not.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, please let us know the remarkable tools you know with a hyperlink.&lt;/p&gt;&#xA;" OwnerUserId="532" LastEditorUserId="532" LastEditorDisplayName="" LastEditDate="2010-11-07T05:08:42.620" LastActivityDate="2010-11-07T05:43:06.327" Title="The useful tools for Windows device driver developers." Tags="&lt;productivity&gt;&lt;tools&gt;&lt;software&gt;&lt;windows&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="17435" PostTypeId="2" ParentId="17355" CreationDate="2010-11-07T05:24:29.813" Score="6" ViewCount="" Body="&lt;h3&gt;Recursive Pascal's Triangle in One Line (Haskell)&lt;/h3&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  r n=take(n+1)$iterate(\a-&amp;gt;zipWith(+)(0:a)$a++[0])[1]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Fifty-two characters, add spaces to taste. Courtesy of &quot;Ephemient&quot; in the comment &lt;a href=&quot;http://stackoverflow.com/questions/1242073/code-golf-generate-pascals-triangle/1242174#1242174&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I thought this was a better example than the cryptic but brief solutions in &lt;strong&gt;J&lt;/strong&gt; and &lt;strong&gt;K&lt;/strong&gt; (though I'm no Haskell user, yet).&lt;/p&gt;&#xA;" OwnerUserId="2515" LastActivityDate="2010-11-07T05:24:29.813" CommunityOwnedDate="2010-12-03T10:46:42.217" />
  <row Id="17436" PostTypeId="2" ParentId="17434" CreationDate="2010-11-07T05:43:06.327" Score="1" ViewCount="" Body="&lt;p&gt;You already have a good list. When I wrote windows drivers, I relied mostly on a debugger and &lt;a href=&quot;http://www.microsoft.com/whdc/DevTools/tools/DrvVerifier.mspx&quot; rel=&quot;nofollow&quot;&gt;driver verifier&lt;/a&gt; (the one tool I would add to your list).&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-11-07T05:43:06.327" />
  <row Id="17438" PostTypeId="1" AcceptedAnswerId="17567" CreationDate="2010-11-07T08:04:38.343" Score="2" ViewCount="287" Body="&lt;p&gt;I'm developing a website which includes a section for reviews. I want to include Google's microformat for review information so that details of the review show up in Google's snippet thingy, like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Q8RIa.png&quot; alt=&quot;Review snippet&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, &lt;a href=&quot;http://www.google.com/support/webmasters/bin/answer.py?hl=en&amp;amp;answer=146645#Individual_reviews&quot; rel=&quot;nofollow&quot;&gt;according this page&lt;/a&gt;, Google supports three different formats for the review data, &quot;microformat&quot;, &quot;microdata&quot; and RDFa. They all seem to do exactly the same thing, though, and I have no idea which one to choose...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;RDFa looks nice - in that the data is fairly separate from the actual content (which makes my life a bit easier). Except it's based on XML namespaces, which isn't going to play well with HTML5 (the site isn't HTML5 yet, but I imagine it will be ported eventually). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;hReview microformat&quot; seems to use special CSS classes to denote the various sections of the review, which seems like a bad mix of concerns to me...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I'm kind of leaning towards the &quot;microdata&quot; format, which looks like it's closer to the HTML5 way of doing things (i.e. no special namespaces). An example of that would be (from the page I linked above):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;div&amp;gt;&#xA;  &amp;lt;div itemscope itemtype=&quot;http://data-vocabulary.org/Review&quot;&amp;gt;&#xA;    &amp;lt;span itemprop=&quot;itemreviewed&quot;&amp;gt;L’Amourita Pizza&amp;lt;/span&amp;gt;&#xA;    Reviewed by &amp;lt;span itemprop=&quot;reviewer&quot;&amp;gt;Ulysses Grant&amp;lt;/span&amp;gt; on&#xA;    &amp;lt;time itemprop=&quot;dtreviewed&quot; datetime=&quot;2009-01-06&quot;&amp;gt;Jan 6&amp;lt;/time&amp;gt;.&#xA;    &amp;lt;span itemprop=&quot;summary&quot;&amp;gt;Delicious, tasty pizza in Eastlake!&amp;lt;/span&amp;gt;&#xA;    &amp;lt;span itemprop=&quot;description&quot;&amp;gt;L'Amourita serves up traditional&#xA;      wood-fired Neapolitan-style pizza, brought to your table promptly&#xA;      and without fuss. An ideal neighborhood pizza joint.&amp;lt;/span&amp;gt;&#xA;    Rating: &amp;lt;span itemprop=&quot;rating&quot;&amp;gt;4.5&amp;lt;/span&amp;gt;&#xA;  &amp;lt;/div&amp;gt;&#xA;&amp;lt;/div&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But as I said, all the formats are basically the same, just slightly different... which one should I choose?&lt;/p&gt;&#xA;" OwnerUserId="2359" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-07T13:05:28.140" LastActivityDate="2010-12-03T03:36:52.137" Title="Google review microformats, microdata, RDFa, oh my!" Tags="&lt;google&gt;&lt;seo&gt;&lt;microformat&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="2" />
  <row Id="17439" PostTypeId="2" ParentId="294" CreationDate="2010-11-07T08:21:53.230" Score="2" ViewCount="" Body="&lt;p&gt;I would strongly recommend that you find an open source project that has your sincere &lt;em&gt;interest&lt;/em&gt; and that you actively &lt;em&gt;use&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason is simple:  It makes the difference between a chore and a hobby.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have a look at your computer.  What software have you put on it that is Open Source?  A guess would be Chrome or Firefox, or perhaps Open Office or an Instant Messenger client.  Are they perfect or is there just some tiny thing that you would like to change if you could?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there is, then now is the time to do something about it.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-07T08:21:53.230" />
  <row Id="17441" PostTypeId="2" ParentId="17341" CreationDate="2010-11-07T09:21:21.567" Score="2" ViewCount="" Body="&lt;p&gt;Generally you should strive towards making the compiler silent, so that new warnings show out more.   These warnings may indicate subtle bugs and should be handled accordingly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding fixing other peoples code, it strongly depends on both your workplace culture and the current state of the code.  You cannot just alter code if it triggers a complete retesting cycle, like it would for code late in the test phase or in production.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask your boss, and act accordingly.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-07T09:21:21.567" />
  <row Id="17442" PostTypeId="1" CreationDate="2010-11-07T09:36:06.457" Score="7" ViewCount="495" Body="&lt;p&gt;Clang is able to be used instead of gcc? What your experience on that? What disadvantages there are yet?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Performance of compilation is very better than gcc but about performance of code generated when executing it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there good tools as front-end (IDE) to run on Linux or Windows?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: I mean C compiler. C++ it's not so good yet.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-11-16T09:57:51.710" LastActivityDate="2011-01-20T00:13:50.560" Title="Is Clang/LLVM ready for prime time?" Tags="&lt;performance&gt;&lt;c&gt;&lt;compilers&gt;&lt;clang&gt;&lt;llvm&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="17443" PostTypeId="1" CreationDate="2010-11-07T09:54:56.530" Score="20" ViewCount="1078" Body="&lt;p&gt;In &lt;a href=&quot;http://programmers.stackexchange.com/q/17254/2210&quot;&gt;this&lt;/a&gt; question I asked whether being a bad writer hinders you from writing good code. Many of the answers started of with &quot;it depends on what you mean by good code&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It appears that the term &quot;good code&quot; and &quot;bad code&quot; are very subjective. Since I have one view, it may be very different from others' view of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what does it mean to write &quot;good code&quot;? What is &quot;good code&quot;?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2011-02-20T09:19:48.700" ClosedDate="2010-12-28T19:16:38.877" Title="What does it mean to write &quot;good code&quot;?" Tags="&lt;code-quality&gt;" AnswerCount="14" CommentCount="1" FavoriteCount="5" />
  <row Id="17444" PostTypeId="1" CreationDate="2010-11-07T10:19:35.143" Score="6" ViewCount="226" Body="&lt;p&gt;In &lt;a href=&quot;http://programmers.stackexchange.com/questions/9539/what-trends-do-you-see-for-your-profession-in-30-years/9786#9786&quot;&gt;an answer that I posted&lt;/a&gt; to another question, I noted that there is likely to become more and more specialization in software development: there being experts or specialists for given type of programming. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm wondering, what specialties are known to exist in reasonable quantities in the industry now (not academia), that are not technology specific (eg. for this discussion winforms isn't a specialty)? I'm also interested in the industry that such a specialist would have to work in if necessary.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-08T19:02:59.247" Title="What are some known/common development specialties?" Tags="&lt;career&gt;&lt;programming&gt;&lt;specialization&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="17445" PostTypeId="2" ParentId="17443" CreationDate="2010-11-07T10:19:55.267" Score="31" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/eTZvW.jpg&quot; alt=&quot;WTF's per minute&quot;&gt;(&lt;a href=&quot;http://www.osnews.com/images/comics/wtfm.jpg&quot; rel=&quot;nofollow&quot;&gt;original&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2011-02-20T09:19:48.700" LastActivityDate="2011-02-20T09:19:48.700" CommentCount="10" />
  <row Id="17446" PostTypeId="2" ParentId="17443" CreationDate="2010-11-07T10:34:30.350" Score="4" ViewCount="" Body="&lt;p&gt;There is really no good criteria other than how fast you can understand the code. You make your code look good by finding the perfect compromise between &lt;a href=&quot;http://www.paulgraham.com/power.html&quot; rel=&quot;nofollow&quot;&gt;succinctness&lt;/a&gt; and readability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;WTF's per minute&quot; (above) is true but it's just a corollary of the more general rule. The more WTFs the slower the understanding.&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-07T10:34:30.350" CommentCount="13" />
  <row Id="17447" PostTypeId="1" AcceptedAnswerId="17450" CreationDate="2010-11-07T10:38:18.740" Score="15" ViewCount="805" Body="&lt;p&gt;According to &lt;a href=&quot;http://www.theregister.co.uk/2010/11/06/oracle_dueling_jvms/&quot; rel=&quot;nofollow&quot;&gt;http://www.theregister.co.uk/2010/11/06/oracle_dueling_jvms/&lt;/a&gt; there is a possibility that Oracle really will &lt;strike&gt;kill Java&lt;/strike&gt; split Java into &lt;em&gt;Free&lt;/em&gt; and &lt;em&gt;Premium&lt;/em&gt; JVMs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;My Questions&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Do you think this will happen?&lt;/li&gt;&#xA;&lt;li&gt;Will this kill Java at the end?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If you answer both questions with &lt;em&gt;Yes&lt;/em&gt;, what are you doing about it? Which language would you choose, and which platform will you use? &lt;strong&gt;.NET/Mono&lt;/strong&gt;? Plain compiled languages like &lt;strong&gt;Golang&lt;/strong&gt;? &lt;strong&gt;Ruby&lt;/strong&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if you answer &lt;em&gt;No&lt;/em&gt;, why do you think Oracle will not harm Java and the community?&lt;/p&gt;&#xA;" OwnerUserId="3801" LastActivityDate="2011-03-02T22:12:06.807" Title="Will Java be dead if the split into free/premium JVM happens?" Tags="&lt;java&gt;&lt;oracle&gt;" AnswerCount="10" CommentCount="1" />
  <row Id="17448" PostTypeId="2" ParentId="17200" CreationDate="2010-11-07T10:46:36.567" Score="1" ViewCount="" Body="&lt;p&gt;In Windows &lt;code&gt;umdh&lt;/code&gt;(user-mode dump heap) from &lt;a href=&quot;http://www.microsoft.com/whdc/devtools/debugging/default.mspx&quot; rel=&quot;nofollow&quot;&gt;Debugging Tools for Windows&lt;/a&gt; is free and helps to find memory leaks.&lt;/p&gt;&#xA;" OwnerUserId="7238" LastActivityDate="2010-11-07T10:46:36.567" />
  <row Id="17449" PostTypeId="2" ParentId="17447" CreationDate="2010-11-07T10:56:30.550" Score="1" ViewCount="" Body="&lt;p&gt;don't worry. gnu will create there own version of java.&lt;/p&gt;&#xA;" OwnerUserId="5260" LastActivityDate="2010-11-07T10:56:30.550" CommentCount="3" />
  <row Id="17450" PostTypeId="2" ParentId="17447" CreationDate="2010-11-07T10:56:40.247" Score="7" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Yes.  Oracle need to make money and if they can do this without 2 happening then it's in their interests to do so.  It's not about Oracle &quot;harming the community&quot; or otherwise, it's whatever makes them more money.  Sun gave it away because the more people that knew it, the more that would buy their products; the first hits always come free, it's how they get you...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Probably not.  There's too many people who know Java as a language and people tend to be &quot;sticky&quot;.  I think it will push some people professionally away from it but if it begins to kill it then Oracle would surely back away from trying to directly monetise it.  It will probably help C# as those sticky people will find it the easiest to move to.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6320" LastActivityDate="2010-11-07T10:56:40.247" CommentCount="1" />
  <row Id="17451" PostTypeId="2" ParentId="17447" CreationDate="2010-11-07T10:58:11.267" Score="5" ViewCount="" Body="&lt;p&gt;Java as a language will not be killed.  Just look at Java for Android.  As specific as that example are, Google has its own implementation for Java for Android.  However, it will make it hard for Oracle to be the choosen way to go - especially for beginners if they see Oracle not giving them the best free tools.&lt;/p&gt;&#xA;" OwnerUserId="7237" LastActivityDate="2010-11-07T10:58:11.267" />
  <row Id="17452" PostTypeId="2" ParentId="14162" CreationDate="2010-11-07T11:00:06.857" Score="0" ViewCount="" Body="&lt;p&gt;If you use ReSharper, it has a &lt;code&gt;TODO tracker&lt;/code&gt;, which shows you a list of all &lt;code&gt;TODO&lt;/code&gt;s, &lt;code&gt;NOTE&lt;/code&gt;s and &lt;code&gt;BUG&lt;/code&gt;s in your solution. It also highlights them in your code in any colour you choose. I find this really useful on my own projects.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-11-07T11:00:06.857" />
  <row Id="17453" PostTypeId="2" ParentId="17447" CreationDate="2010-11-07T11:02:35.170" Score="13" ViewCount="" Body="&lt;p&gt;Java won't die just yet. Not for a long time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason being that so many companies have invested heavily in it. Just look at job postings: a huge proportion are requiring Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might however, reduce the number of new projects using Java.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-11-07T11:02:35.170" CommentCount="4" />
  <row Id="17454" PostTypeId="2" ParentId="17305" CreationDate="2010-11-07T11:08:37.560" Score="0" ViewCount="" Body="&lt;p&gt;We should use blank lines between codeblocks as we do when we are writting a letter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, between functions, or inside a function when we finish a loop...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People will thank you a clean code if they have to do maintenance on it ;)&lt;/p&gt;&#xA;" OwnerUserId="7242" LastActivityDate="2010-11-07T11:08:37.560" CommunityOwnedDate="2011-02-05T06:38:51.843" />
  <row Id="17455" PostTypeId="2" ParentId="17443" CreationDate="2010-11-07T11:20:51.837" Score="3" ViewCount="" Body="&lt;p&gt;A code which is &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;bug free&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;reusable &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;independent &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;less complex&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;well documented &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;easy to chage &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;is called good code.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A good program works flawlessly and&#xA;  has no bugs. But what internal&#xA;  qualities produce such perfection?.&#xA;  It's no mystery, we just need some&#xA;  occasional reminding. Whether you code&#xA;  in C/C++, C#, Java, Basic, Perl,&#xA;  COBOL, or ASM, all good programming&#xA;  exhibits the same time-honored&#xA;  qualities: simplicity, readability,&#xA;  modularity, layering, design,&#xA;  efficiency, elegance, and clarityefficiency, elegance, and clarity&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Source : &lt;a href=&quot;http://msdn.microsoft.com/en-us/magazine/cc163962.aspx&quot; rel=&quot;nofollow&quot;&gt;MSDN&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-11-07T11:20:51.837" CommentCount="2" />
  <row Id="17456" PostTypeId="2" ParentId="17444" CreationDate="2010-11-07T11:27:05.943" Score="4" ViewCount="" Body="&lt;p&gt;Embedded systems programming (which I have been engaged in for some 30+ years) requires a quite different mindset than most any other type of software development.  The range of computing power varies widely, from 8-bit microcontrollers that cost 30 cents in quantity to 32-bit microprocessors running Linux or some other common OS.  I am currently doing projects at both ends of this scale.  Code memory on the smallest micros may only be a few KB, with only a few hundred bytes of RAM.  A mid-range 16-bit micro costing $3 in quantity might have 256KB of program storage and 16KB of RAM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides the limited memory resources, one of the aspects of embedded programming that is unlike other areas of software development is that the programmer is often dealing directly with the hardware at the register level -- either on the micro itself, or in a peripheral attached to the micro via serial busses like UART, SPI or I2C.  For this reason, low-end embedded micros are usually programmed in C or assembly language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Embedded systems are often dealing with real-time events, so an embedded firmware program usually has many interrupt routines and possible a small RTOS (real-time OS).  Debugging such systems often requires hardware assistance using a couple of dedicated lines into the micro so breakpoints can be set remotely from a PC.  Logic analyzers, bus analyzers and oscilloscopes are additional tools used for debugging these systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because of the hardware aspects of embedded development, developers often have some electronics background.  (I have degrees in both EE and CS).&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-11-07T11:27:05.943" />
  <row Id="17457" PostTypeId="2" ParentId="17444" CreationDate="2010-11-07T11:39:59.940" Score="13" ViewCount="" Body="&lt;p&gt;The way I see it there's two categories of specialisation: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;specialisation in a particular programming field;&lt;/li&gt;&#xA;&lt;li&gt;or specialisation in a problem domain.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Examples of a programming topic would be:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Embedded&lt;/li&gt;&#xA;&lt;li&gt;GUI&lt;/li&gt;&#xA;&lt;li&gt;Visualisation&lt;/li&gt;&#xA;&lt;li&gt;Testing&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Then there's specialisation in a particular problem domain such as&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Financial&lt;/li&gt;&#xA;&lt;li&gt;Scientific&lt;/li&gt;&#xA;&lt;li&gt;Medical&lt;/li&gt;&#xA;&lt;li&gt;Almost any major industry can be considered a problem domain&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think it's an important distinction.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-11-07T11:39:59.940" />
  <row Id="17458" PostTypeId="2" ParentId="17443" CreationDate="2010-11-07T11:53:39.263" Score="1" ViewCount="" Body="&lt;p&gt;apart from natural code quality criteria (minimum copy/paste, no spaghetti, etc.) a good industrial code should always look a bit naive, a bit too verbose, like&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int key = i;&#xA;const bool do_not_create = false;&#xA;Record r = cache.get(key, do_not_create);&#xA;++i;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;as opposed to&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Record r = cache.get(i++, false);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4676" LastActivityDate="2010-11-07T11:53:39.263" CommentCount="1" />
  <row Id="17459" PostTypeId="2" ParentId="17305" CreationDate="2010-11-07T11:59:44.927" Score="0" ViewCount="" Body="&lt;p&gt;Blank lines are a must in my opinion. I use them to separate different logical blocks of code. Makes the code readable. Readable code is good code ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My ideal code piece would be each logical block being separated by a blank line and a comment on top of each block that has a major logic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, if people over do it by adding multiple blank lines everywhere, I find it very irritating :(&lt;/p&gt;&#xA;" LastActivityDate="2010-11-07T11:59:44.927" CommunityOwnedDate="2011-02-05T06:38:51.843" />
  <row Id="17460" PostTypeId="2" ParentId="17443" CreationDate="2010-11-07T12:00:23.723" Score="2" ViewCount="" Body="&lt;p&gt;You know you write good code when...&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The customer is happy&lt;/li&gt;&#xA;&lt;li&gt;Fellow coworkers borrow your code as a starting point&lt;/li&gt;&#xA;&lt;li&gt;The brand new guy/gal was just told to make modifications to a system you built 6 months ago and he/she never once asked you a question&lt;/li&gt;&#xA;&lt;li&gt;Your boss asks you to develop new widgets for the team to use&lt;/li&gt;&#xA;&lt;li&gt;You look at the code you write today and say to yourself &quot;I wish I had written code like this two years ago&quot;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;How do you measure whether the code is good...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What is the response time?&lt;/li&gt;&#xA;&lt;li&gt;How many round trips to the server does it make?&lt;/li&gt;&#xA;&lt;li&gt;Would you personally use the application or do you thinks it's clunky?&lt;/li&gt;&#xA;&lt;li&gt;Would you build it the same way next time?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Good code works when it's supposed to. Good code can easily be modified when it needs to. Good code can be reused to make a profit.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-07T12:00:23.723" CommentCount="3" />
  <row Id="17461" PostTypeId="2" ParentId="17443" CreationDate="2010-11-07T12:30:56.447" Score="2" ViewCount="" Body="&lt;p&gt;Does this seem familiar?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Philips gave me the opportunity to watch the design of a new product. As&#xA;  it developed, I became increasingly uneasy and started to confide my concerns&#xA;  to my supervisor. I repeatedly told him that the designs were not&#xA;  “clean” and that they should be “beautiful” in the way that Dijkstra’s&#xA;  designs were beautiful. He did not find this to be a useful comment. He&#xA;  reminded me that we were engineers, not artists. In his mind I was simply&#xA;  expressing my taste and he wanted to know what criterion I was using in&#xA;  making my judgement. I was unable to tell him! Because I could not&#xA;  explain what principles were being violated, my comments were simply&#xA;  ignored and the work went on. Sensing that there must be a way to explain&#xA;  and provide motivation for my “taste”, I began to try to find a principle&#xA;  that would distinguish good designs from bad ones. Engineers are very&#xA;  pragmatic; they may admire beauty, but they seek utility. I tried to find an&#xA;  explanation of why “beauty” was useful.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Please see the rest &lt;a href=&quot;http://www-sst.informatik.tu-cottbus.de/~db/doc/People/Broy/Software-Pioneers/Parnas_new.pdf&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5933" LastActivityDate="2010-11-07T12:30:56.447" CommentCount="1" />
  <row Id="17462" PostTypeId="2" ParentId="17136" CreationDate="2010-11-07T13:02:37.907" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;60% Thinking / 40% Coding&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not just thinking at work. I'm thinking everywhere I go. I tend to not begin coding until I have thought through all the possibilities. I'm not talking about writing code in my head, I'm talking about doing the stepwise refinement in my head.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-07T13:02:37.907" />
  <row Id="17463" PostTypeId="2" ParentId="17200" CreationDate="2010-11-07T13:03:42.713" Score="2" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.codeproject.com/KB/applications/visualleakdetector.aspx&quot; rel=&quot;nofollow&quot;&gt;VLD&lt;/a&gt; on Visual C++. It's simple and free.&lt;/p&gt;&#xA;" OwnerUserId="681" LastActivityDate="2010-11-07T13:03:42.713" />
  <row Id="17464" PostTypeId="2" ParentId="17443" CreationDate="2010-11-07T13:10:28.963" Score="1" ViewCount="" Body="&lt;p&gt;Perhaps an answer by illustrating the opposite would help (plus it's an excuse to get &lt;a href=&quot;http://xkcd.com/&quot; rel=&quot;nofollow&quot;&gt;XKCD&lt;/a&gt; in here).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/hqIXH.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good code is &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;simple to understand,  &lt;/li&gt;&#xA;&lt;li&gt;easy to maintain,  &lt;/li&gt;&#xA;&lt;li&gt;doesn't try to solve all problems only the one at hand &lt;/li&gt;&#xA;&lt;li&gt;lives on for a long time without making developers look for alternatives&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Examples include&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Apache Commons&lt;/li&gt;&#xA;&lt;li&gt;Spring framework&lt;/li&gt;&#xA;&lt;li&gt;Hibernate framework&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-07T13:10:28.963" />
  <row Id="17465" PostTypeId="2" ParentId="17447" CreationDate="2010-11-07T13:30:17.363" Score="3" ViewCount="" Body="&lt;p&gt;Given that there are billions of dollars invested in Java based enterprise solutions and the multitude of languages that execute on the Java JVM (&lt;a href=&quot;http://jruby.org/&quot; rel=&quot;nofollow&quot;&gt;JRuby&lt;/a&gt;, &lt;a href=&quot;http://groovy.codehaus.org/&quot; rel=&quot;nofollow&quot;&gt;Groovy&lt;/a&gt;, &lt;a href=&quot;http://www.jython.org/&quot; rel=&quot;nofollow&quot;&gt;Jython&lt;/a&gt; and so on), &lt;em&gt;the JVM is definitely not going away any time soon&lt;/em&gt;. Java the language is well established, and Google have leveraged that knowledge for their &lt;a href=&quot;http://developer.android.com/index.html&quot; rel=&quot;nofollow&quot;&gt;Android platform&lt;/a&gt; (which does not use a JVM).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What will almost certainly happen is that Oracle will seek to license Java in such a way that any applications that use it will have to pay them a fee (&lt;a href=&quot;http://www.theregister.co.uk/2010/10/08/oracle_jacking_up_mysql_prices/&quot; rel=&quot;nofollow&quot;&gt;see MySQL for an example&lt;/a&gt;). OpenJDK (if I understand the licensing terms correctly) should be exempt from this and anyone wishing to avoid paying fees to Oracle will probably invest serious support for this project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, &quot;Oracle Java&quot; will probably be packaged within other Oracle offerings and various fees charged. They are a business after all. It's doubtful that Oracle will actually go forward with charging directly for JDK downloads because that would seriously harm Java in the long term. Note that &lt;a href=&quot;http://news.cnet.com/8301-31021_3-20020338-260.html&quot; rel=&quot;nofollow&quot;&gt;Apple has moved away from supporting Java themselves&lt;/a&gt; (they have labelled it deprecated) which is probably a move to avoid paying Oracle fees rather than a lack of faith in the language. OpenJDK should step in to fill this gap for Mac based Java developers.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-07T13:30:17.363" CommentCount="2" />
  <row Id="17466" PostTypeId="2" ParentId="14705" CreationDate="2010-11-07T14:00:06.193" Score="1" ViewCount="" Body="&lt;h3&gt;3M Sticky Notes &amp; A White Board&lt;/h3&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You can move the sticky notes around until the flow is correct&lt;/li&gt;&#xA;&lt;li&gt;You can turn them so the look like diamonds for decisions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Best &quot;Mind Mapping&quot; tool I've ever used.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-07T14:00:06.193" CommentCount="2" />
  <row Id="17467" PostTypeId="2" ParentId="14162" CreationDate="2010-11-07T14:08:19.687" Score="1" ViewCount="" Body="&lt;p&gt;For personal projects, TODO-comments and a text file with TODOs and bugs etc. is usually enough for me.&lt;/p&gt;&#xA;" OwnerUserId="4884" LastActivityDate="2010-11-07T14:08:19.687" />
  <row Id="17468" PostTypeId="2" ParentId="14618" CreationDate="2010-11-07T14:26:16.340" Score="2" ViewCount="" Body="&lt;h3&gt;Pretend You Are Sitting Across The Table From Yourself&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;To create an honest self evaluation, pretend you are sitting in a chair on the other side of the table. Create a list of things &lt;strong&gt;he&lt;/strong&gt; (you sitting in that chair) has done. Refer to yourself as he.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;He saved company xyz $15,000 by building widget xxx&lt;/li&gt;&#xA;&lt;li&gt;He streamlined the entire account opening process which reduced the time it takes to open an account by 50%&lt;/li&gt;&#xA;&lt;li&gt;Yada Yada Yada &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;By projecting yourself as he you will be far more objective and create a much truer picture of what you did. When you are done change all the &lt;strong&gt;He's&lt;/strong&gt; to &lt;strong&gt;I's&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't leave anything out. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, start keeping a log of all the significant tasks you accomplish. This will help jog your memory when it comes time for your annual review and you are asked to list this year's accomplishments.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-07T14:26:16.340" />
  <row Id="17469" PostTypeId="2" ParentId="4587" CreationDate="2010-11-07T14:34:32.340" Score="8" ViewCount="" Body="&lt;p&gt;At the company where I'm currently working I've been asked to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Write spyware that covertly captures all shell commands, builds, environment info, etc. of our developers.&lt;/li&gt;&#xA;&lt;li&gt;Go to a customer site, and when they are not looking, copy a proprietary specification to my USB stick.&lt;/li&gt;&#xA;&lt;li&gt;Use several copyrighted pieces of software without licenses.&lt;/li&gt;&#xA;&lt;li&gt;Sign up for &quot;trial&quot; versions of software multiple times to avoid paying for a license, even though we know the tool is useful and we plan to use it commercially.&lt;/li&gt;&#xA;&lt;li&gt;Convince our customer into paying for tools that we use exclusively for internal company development by telling them that we need the tool to develop their software.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I have refused to participate in any of these unethical behaviors and on several occasions asked to speak to company counsel to ask for legal/ethical guidance.  I have on each occasion been refused access.  In each case I refused to accommodate these unethical and/or illegal requests.&lt;/p&gt;&#xA;" OwnerUserId="7251" LastActivityDate="2010-11-07T14:34:32.340" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="1" />
  <row Id="17470" PostTypeId="2" ParentId="14543" CreationDate="2010-11-07T14:36:17.357" Score="1" ViewCount="" Body="&lt;h3&gt;Never Undermine Your Boss&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;There is a much bigger picture that you are not, and in my opinion should not be, privvy to. You are trying to rationalize what you see, from your perspective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I totally get the fact that you are bored and are chomping at the bit to work on something. Why can't you simply tell your boss you want to be more productive, and ask him what you should be spending your time doing?&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-07T14:36:17.357" CommentCount="2" />
  <row Id="17471" PostTypeId="2" ParentId="17427" CreationDate="2010-11-07T14:36:41.073" Score="1" ViewCount="" Body="&lt;p&gt;I think it's mostly going to depend on what background you're from. Personally I found going from Visual Studio to Visual Studio + Resharper very easy using the Visual Studio key map (not suprisingly). Someone coming from an IntelliJ background is going to find the IntelliJ mapping easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're new to both Visual Studio and IntelliJ I would suggest going with the Visual Studio mappings in case you find yourself in the horrible, horrible situation of having to use VS without R#er in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most people will supplement the default bindings with a few of their too - so if you're really missing something from one the just add it to the other.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-07T14:36:41.073" />
  <row Id="17472" PostTypeId="2" ParentId="17305" CreationDate="2010-11-07T15:02:07.680" Score="0" ViewCount="" Body="&lt;p&gt;We use the whitespacing recommended by Microsoft StyleCop. Aside from readability and consistency I've found that (together with small class sizes) properly laid out code makes it much easier to manage merges when various people in a team happen to be working on the same areas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure if it's just my imagination but diffing tools seem to do a better job of recognising where equivalent code starts and finishes when merging when it's laid out neatly. Nicely laid out code is a joy to merge. Ok, that was a lie - but at least the pain is kept to manageable levels.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-07T15:02:07.680" CommunityOwnedDate="2011-02-05T06:38:51.843" />
  <row Id="17473" PostTypeId="2" ParentId="766" CreationDate="2010-11-07T15:28:22.743" Score="3" ViewCount="" Body="&lt;p&gt;We use Robot Framework extensively and Fitnesse a little.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Fitnesse&lt;/strong&gt; I think has an edge if you like the wiki interface that it exposes to people writing the tests - it's particularly good if your data consists of tables of primitives with expected inputs and outputs. Once you get beyond the basics though it gets clunkier and clunkier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Robot Framework&lt;/strong&gt; is extremely good if you're testing workflows either directly or indirectly (e.g. if you're testing through the GUI and need to reach a particular position in a system with no test hooks).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It works around the idea of keywords which can be composed from other keywords - which allows you to organise your tests into layers of abstraction, but in a way which people from a non-programming can grasp and leverage. There are a number of libraries out there (for example a wrapper around Selenium for web testing and others for Java and Windows apps, telnet, etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found that we could get testers with no previous test automation experience editing and maintaining tests with no or little developer support with a couple days (aside from initial setup) and within a week or so they were creating new tests in a maintainable manner by themselves. I don't think any of the other frameworks I've seen really allow that without a lot of developer support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't have direct experience of the other acceptance testing frameworks out there - but from what I've seen from brief dabbles plus experience reports at conferences I think if it's primarily developers (or testers/analysts with moderate to good coding skills) who will be creating and maintaining the tests then probably one of the other frameworks could be a good choice. Cucumber (or its variations) is talked about a lot for example. I really liked the look of something I saw at CITCON London 2010 by YouDevise which has apparently just been released as open source - I think &lt;a href=&quot;https://github.com/youdevise/narrative&quot; rel=&quot;nofollow&quot;&gt;this is it&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think there's a one-size-fits-all solution - different tools are good for different contexts and mixes of users.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-07T15:28:22.743" />
  <row Id="17474" PostTypeId="1" CreationDate="2010-11-07T15:45:48.740" Score="5" ViewCount="103" Body="&lt;p&gt;For example, code ownership/authorship rights, non-compete terms, vacation/holidays, working hours, termination notices from any of the sides, etc.&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-07T19:45:13.703" Title="If you had more freedom and flexibility, what would you change in your employment contract?" Tags="&lt;employment&gt;&lt;contract&gt;" AnswerCount="3" />
  <row Id="17475" PostTypeId="2" ParentId="14543" CreationDate="2010-11-07T16:05:04.237" Score="0" ViewCount="" Body="&lt;p&gt;Ask your boss what he wants you to do, and then do that...&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-07T16:05:04.237" />
  <row Id="17476" PostTypeId="2" ParentId="17474" CreationDate="2010-11-07T16:06:51.633" Score="1" ViewCount="" Body="&lt;p&gt;A few that top my list:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Less &quot;dealing with the customer&quot;, more design/coding.&lt;/li&gt;&#xA;&lt;li&gt;More flexible start time, not just 9-5.&lt;/li&gt;&#xA;&lt;li&gt;Better infrastructure/resources - specifically a faster computer, and better internal documentation.&lt;/li&gt;&#xA;&lt;li&gt;More team collaboration (although this has been getting significantly better as of late).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7116" LastActivityDate="2010-11-07T16:06:51.633" CommentCount="2" />
  <row Id="17477" PostTypeId="2" ParentId="14618" CreationDate="2010-11-07T16:12:07.930" Score="0" ViewCount="" Body="&lt;p&gt;Don't take an interview without believing you can do the job. Get into the habit of being confident and not arrogant. It's not up to you to decide if you are &quot;worth&quot; it because you don't know how much money this company will make off of this position. Just say, &quot;What I know about the position, I believe I can handle it.&quot; And if you can handle it, they should pay you. Just because I don't think it is worth it to pay someone to remove spyware from my computer doesn't mean there isn't a market for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Future advice, don't give out the first number on the salary question. Ask for the pay range and what determines where someone fits in that scale. It may purely come down to experience. Your current/most recent salary will be a factor but you can take some of the emphasis off of that. Unless the new job is exactly like your old one, it is very difficult to compare salaries when you don't know what is required along with benefits, ect. And besides, you're much better now than when you first started, right? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can be flexible in generalizing your skills. They may require a skill-set you don't have. You don't 'know' you can learn it, but you can say you have a history of quickly picking up on similar technologies. You may not have worked on the latest version, but you've kept yourself up-to-date in self study. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you feel you're being low-balled on salary, ask for a one month review. Understand that they may be taking a risk in highering someone with less experience and you are willing to prove yourself. Get it in writing because they'll forget.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Curious, did they ask you to demonstrate any code writing ability?&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-07T16:12:07.930" />
  <row Id="17478" PostTypeId="2" ParentId="14543" CreationDate="2010-11-07T16:19:06.107" Score="1" ViewCount="" Body="&lt;p&gt;If you did that to me, I would have a very difficult time placing you in a position where you could do something like that again. In other words, you wouldn't like the result.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I set limitations, I have a good reason for doing so. You might not realize those reasons because as your boss, it is my job to shield you from all of the administrative headaches that comes with being a boss. If you are frustrated due to a lack of response, imagine how I must feel knowing that I've got people idle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are times when I have to 'find stuff' for someone to do in order to keep them on. Sometimes, I have to get a little creative about where I put your time when you are doing that. If you went around me, when all I'm doing is trying to keep everyone happy, I would be extremely annoyed. You would have effectively short circuited my ability to help you, as well as others on the team, and possibly as well as others in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you had strong evidence that I was doing something illegal or improper, by all means, you should bring it to the attention of my supervisors. Keeping you busy while trying not to annoy a client or vendor does not fall under that criteria.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am the CTO of my company. I am often asked &quot;Is it o.k. to put [sam] and [jane] on [foo] while we wait for [bar] to start?&quot; and I usually say &quot;Yeah, but I don't want to see time or costs logged on [foo], BTW our support with [foo] doesn't officially start till next month, but their sales droid agreed not to bill me this month .. so don't tell them we've actually started working with it yet&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd just be thankful you don't have to deal with that, and enjoy a little self directed time as others have suggested.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-07T16:19:06.107" />
  <row Id="17479" PostTypeId="2" ParentId="14650" CreationDate="2010-11-07T16:20:00.150" Score="3" ViewCount="" Body="&lt;p&gt;I should re-read this article once every six months &lt;a href=&quot;http://upload.it/ita/upload_00003d.htm&quot; rel=&quot;nofollow&quot;&gt;If No Shareware Professionals Are 100 Times Smarter Than You, Then Why Do Some Get 100 Times the Results? - by Steve Pavlina&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-07T16:20:00.150" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="17480" PostTypeId="2" ParentId="17443" CreationDate="2010-11-07T16:30:32.427" Score="0" ViewCount="" Body="&lt;p&gt;good code is code that is not bad.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-11-07T16:30:32.427" CommentCount="1" />
  <row Id="17481" PostTypeId="2" ParentId="14158" CreationDate="2010-11-07T16:30:59.043" Score="0" ViewCount="" Body="&lt;h3&gt;Yes&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Database programming is extremely important.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-07T16:30:59.043" />
  <row Id="17482" PostTypeId="2" ParentId="12278" CreationDate="2010-11-07T16:34:39.380" Score="15" ViewCount="" Body="&lt;p&gt;What it means is that they are really given unlimited vacation. But they are also given something more important: &lt;a href=&quot;http://www.codinghorror.com/blog/2010/06/the-vast-and-endless-sea.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;A purpose&lt;/strong&gt;&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You see, software developers are people who need a lot of motivation and focus. It is extremely unefficient trying to force a developer to work if he can't, because for example he has personal things to attend to. This works with coal miners. Not with programmers. For programmers, it's the best way to provoke burnouts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some companies understand that. They hire talented, ambitious and motivated people and they give them a job where they can evolve, excell and gain fullfillment. Giving people freedom and treating them with respect is one of the best way to keep that level of motivation and often leads to the point where they don't want or need holidays, because they actually enjoy their job, they are eager to get it done and to make it great. They don't need to get away from work to have some happyness in their life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unlimited vacation would never work in a company where people don't like their job, because people would be away all the time. However for companies that understand the value of a good morale, giving employees this freedom is a very valuable, yet extremely simple and often very cheap tool (if you give people 20 days of vacancies, they will use them or want them to be paid out) to maintain that good morale.&lt;/p&gt;&#xA;" OwnerUserId="667" LastEditorUserId="667" LastEditorDisplayName="" LastEditDate="2010-11-08T11:43:01.087" LastActivityDate="2010-11-08T11:43:01.087" CommentCount="7" />
  <row Id="17483" PostTypeId="2" ParentId="17474" CreationDate="2010-11-07T16:37:09.877" Score="5" ViewCount="" Body="&lt;p&gt;Simple rule: Everybody seems to have a say in how I do my work (especially the guys from marketing) so I want to have a say in how they do theirs as well. I would love that. I would even love more if I got the money we would not throw out the window if I had a say :D&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-11-07T16:37:09.877" CommentCount="3" />
  <row Id="17485" PostTypeId="2" ParentId="14098" CreationDate="2010-11-07T16:48:35.523" Score="1" ViewCount="" Body="&lt;h3&gt;I ask myself these three questions in order&lt;/h3&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What is the output?&lt;/li&gt;&#xA;&lt;li&gt;What are the inputs?&lt;/li&gt;&#xA;&lt;li&gt;Is there enough input to create the output?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;For very simple stuff I do this in my head.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the more complicated stuff I'll get mockups of &lt;strong&gt;Step 1&lt;/strong&gt; from the customer or if the customer doesn't know what they want then I'll take a stab at creating something. This usually leads to a discussion of what the customer really wants. Discovery can be a lot of fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once the customer knows what they want then it's a matter of getting the inputs.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Data&lt;/li&gt;&#xA;&lt;li&gt;Formulas&lt;/li&gt;&#xA;&lt;li&gt;Busines rules&lt;/li&gt;&#xA;&lt;li&gt;Actions (What happens when I click here type stuff)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Then I'll evaluate whether I have enought information to actually produce the expected output. If not, I go back and get those answers.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-07T16:48:35.523" />
  <row Id="17486" PostTypeId="2" ParentId="12278" CreationDate="2010-11-07T17:00:16.277" Score="1" ViewCount="" Body="&lt;p&gt;I get 11 days: 10 vacation and my birthday. But more important to me is an understanding manager who doesn't get bent out of shape when daycare calls and I have to pick up my daughter and work from home the rest of the day. If my allergies are acting up, call in and stay home. My ex-manager was not this kind of manager and we butted heads quite a bit. To the point where I was considering leaving the company. Yeah, keep the vacation and give me a good, understanding manager!&lt;/p&gt;&#xA;" OwnerUserId="7038" LastActivityDate="2010-11-07T17:00:16.277" />
  <row Id="17487" PostTypeId="2" ParentId="13540" CreationDate="2010-11-07T17:05:13.773" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Troy University&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am in the midst of my first term at Troy.  I had a list similar to yours, and Troy fit the bill.  In the end, it came down to Troy's program or UMUC.  Troy was half the cost for what appeared to be the same level of education, so I chose it.  It is regionally accredited; however, it is NOT recognized by ABET.  That is to say Troy University as a whole, not just their online program, is not recognized by ABET.  Troy makes no distinction between their online or on-campus programs.  The coursework is the same for both.  It operates on a term system.  They have five terms a year.  Your first term you may only take two classes, but after that, you can appeal to take more classes per term.  So far, the institution's staff has been very knowledgeable, helpful, and prompt to respond to my questions.  I enjoy the experience but YMMV.  I'm not sure what you're situation is, but I'm 30 with a family and have already completed a B.A. and a M.A. the traditional way.  I want to make a career change, and this was the best possible scenario for me to make it happen.  Also, I don't know how much schoolin' you're looking to get, but while there are only a handful of accredited B.S. Comp sci programs available online, there are several M.S. Comp sci programs online from most of the major schools.  That is the route that I am probably going to take.  Hope this helps.  &lt;/p&gt;&#xA;" OwnerUserId="6537" LastActivityDate="2010-11-07T17:05:13.773" />
  <row Id="17488" PostTypeId="2" ParentId="17286" CreationDate="2010-11-07T17:18:26.360" Score="2" ViewCount="" Body="&lt;p&gt;I did not read that book. As far as I understand the question, are you looking for language-combos for compiling from one language (which might be your own definition) to another via &#xA;a third one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is probably the easiest to generate LISP from LISP via LISP. If you want to parse languages that do not consist only of brackets and lists, you might want to write the parser in a strict+static typed functional language like Haskell (or OCaml?). Dependent on the source language being a) imperative or b) functional, the target language might be a) any other imperative language or b) Haskell. Skripting languages (both, a and b) with dynamic instead of static types can allways be easily converted to LISP; i.e. like Javascript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are always two things which have to be considered in compiling from one language to another: Proper-Tail-Calls and the Type-System. As long as the languages are compatible with respect to these two properties, it will be easy to develop a simple compiler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an example, see the &lt;a href=&quot;http://en.wikipedia.org/wiki/Quark_Framework&quot; rel=&quot;nofollow&quot;&gt;Quark Framework / CAL Language&lt;/a&gt;, which is designed to directly compile to readable and reusable Java source code.&lt;/p&gt;&#xA;" OwnerUserId="7258" LastActivityDate="2010-11-07T17:18:26.360" CommentCount="1" />
  <row Id="17489" PostTypeId="2" ParentId="17305" CreationDate="2010-11-07T17:19:29.323" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A Professor Emeritus Gave Two Great Pieces of Advice&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Whitespace is Free&lt;/li&gt;&#xA;&lt;li&gt;Don't use the staples that poke back up through the front of the paper, or I'll fail you.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-11-07T17:19:29.323" CommunityOwnedDate="2011-02-05T06:38:51.843" CommentCount="1" />
  <row Id="17490" PostTypeId="1" AcceptedAnswerId="17493" CreationDate="2010-11-07T17:56:38.217" Score="6" ViewCount="592" Body="&lt;p&gt;For C++ (Win) devs, what is your case for preferring Qt vs. MFC (or vice versa) for UI development on Windows? &lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-07T21:52:29.813" Title="Comparing Qt vs. MFC" Tags="&lt;c++&gt;&lt;windows&gt;&lt;mfc&gt;&lt;qt&gt;&lt;ui&gt;" AnswerCount="4" CommentCount="8" FavoriteCount="2" />
  <row Id="17491" PostTypeId="2" ParentId="17428" CreationDate="2010-11-07T17:56:56.313" Score="-3" ViewCount="" Body="&lt;p&gt;Since you added the tag functional-programming, how about writing an Erlang compiler or interpreter in Haskell? Erlang is not quite state-of-the-art anymore, like at all.&#xA;I recommend to learn Erlang in one or two days, like some other languages (LISP, Prolog), and then to forget about them; they are just a step to unlearn imperative OOP-languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For smaller tasks than implementing a compiler, see &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[EDIT]&#xA;To answer the comment:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a technical view: Erlang was good in the old days, when there weren't multicore-processors. But now –given the existing compilers/interpreters I am arare of– it just does not scale anymore like it should. An interpreter written in Haskell would scale, compiled to Haskell would make it faster but would remove the on-the-fly code-replacing feature. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the Programmers' view: Haskell is not for all applicable tasks the best choice, but atm, the probably more advanced languages are very experimental, and those not applicable tasks have usually sth to do with either embedded systems (like microcontrollers and GPUs) or numbercrunching, where C and Assembler are still the best choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What exactly is something that you could do with Erlang better than in other languages?&lt;/p&gt;&#xA;" OwnerUserId="7258" LastEditorUserId="7258" LastEditorDisplayName="" LastEditDate="2010-11-08T20:44:46.043" LastActivityDate="2010-11-08T20:44:46.043" CommentCount="15" />
  <row Id="17492" PostTypeId="2" ParentId="15839" CreationDate="2010-11-07T18:11:04.003" Score="3" ViewCount="" Body="&lt;p&gt;Microsoft SharePoint allows users to do quite a bit graphically without any code. It includes data entry with formating and verification, security, work-flow. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-07T18:11:04.003" />
  <row Id="17493" PostTypeId="2" ParentId="17490" CreationDate="2010-11-07T18:13:43.380" Score="12" ViewCount="" Body="&lt;p&gt;Simple: Qt is a fantastic comprensive and elegant framework for coding GUI apps (on any platform).  MFC is a hideous and obsolete pile of junk which no-one developing new code should contemplate using at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Qt's &lt;a href=&quot;http://en.wikipedia.org/wiki/Qt_%28framework%29#Licensing&quot; rel=&quot;nofollow&quot;&gt;LGPL&lt;/a&gt; might be an obstacle for some commercial users, but they can always pay for a full commercial license.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastEditorUserId="4966" LastEditorDisplayName="" LastEditDate="2010-11-07T21:21:55.153" LastActivityDate="2010-11-07T21:21:55.153" CommentCount="5" />
  <row Id="17494" PostTypeId="2" ParentId="17315" CreationDate="2010-11-07T18:20:55.083" Score="2" ViewCount="" Body="&lt;p&gt;Here is what I would expect/hope:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Fluency - they should be able to write more code off the top of their head and less time looking up syntax.&lt;/li&gt;&#xA;&lt;li&gt;Know the difference between previous and current versions and how to migrate code from one to another.&lt;/li&gt;&#xA;&lt;li&gt;Have a fuller understanding of compiling, distributing, testing, and creating upgrades and patches.&lt;/li&gt;&#xA;&lt;li&gt;Create/Include Add-Ons to the IDE and gain efficiency from them.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-07T18:20:55.083" />
  <row Id="17495" PostTypeId="2" ParentId="17444" CreationDate="2010-11-07T18:28:55.367" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Developer DBA&quot; role/team exists but isn't common enough or appreciated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Talking about larger shops, a Production DBA team may have a few 1000 SQL Server instances to manage and monitor, provide disaster recovery, liaise with SAN, network and OS teams etc&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Who is there for the development teams? Tuning? Indexes? Design? Coding standards?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Saying that, as a Developer DBA myself, I've met plenty of client developers who know more about databases than I do... :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, knowledge of the business is useful too. if you're hired to improve some code that prices complex derivatives in investment banking, then some subject matter expertise is almost as important as whizzy coding skills.&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-11-07T18:28:55.367" />
  <row Id="17496" PostTypeId="2" ParentId="17447" CreationDate="2010-11-07T18:38:57.307" Score="1" ViewCount="" Body="&lt;p&gt;I think &quot;no.&quot;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is my opinion that this is going to be an attempt by Oracle to extract a lot of money from IBM. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is also my opinion that Oracle (as a corporation) does not &quot;understand&quot; open source, and the MySQL and JVM situations will reflect that. They're going to try to figure out some way of recovering the money spent/wasted in take-overs and those gyrations will unnecessarily piss off too many FOSS users and developers. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-07T18:38:57.307" />
  <row Id="17497" PostTypeId="2" ParentId="4587" CreationDate="2010-11-07T18:41:21.297" Score="2" ViewCount="" Body="&lt;p&gt;In any profession (not just programming) you will face the ethical dilemma of doing what's best for your company's bottom line versus doing what's best for the paying customer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take the recent judgement against Verizon Wireless over its Internet usage fees. Verizon designed the user interface of its phones so that the web browser or widget store could be accessed from the main screen by simply pressing the directional controller -- accidentally or not. Affected customers allege that doing so caused a $1.99 charge to be incurred on their bill if they did not sign up for pre-paid wireless Internet access. Even exiting the browser right away wasn't enough to prevent the charge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was estimated that this &lt;a href=&quot;http://www.nytimes.com/2009/11/12/technology/personaltech/12pogue-email.html&quot; rel=&quot;nofollow&quot;&gt;brought Verizon $300 million per month&lt;/a&gt; due to approximately 87 million customers making this &quot;mistake.&quot; There's no doubt that the Verizon UI designers and programmers were aware of the consequences of making it easy to bring up the web browser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an employee of a company, you should program what your boss tell you to program. But enough Verizon employees were disgusted with this practice to blow the whistle on it.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastEditorUserId="3790" LastEditorDisplayName="" LastEditDate="2011-01-07T00:19:13.367" LastActivityDate="2011-01-07T00:19:13.367" CommunityOwnedDate="2011-01-07T00:56:11.870" />
  <row Id="17498" PostTypeId="1" AcceptedAnswerId="17585" CreationDate="2010-11-07T18:47:58.257" Score="3" ViewCount="193" Body="&lt;p&gt;When I worked at Sun, we used a DVC system called &lt;a href=&quot;http://en.wikipedia.org/wiki/Sun_WorkShop_TeamWare&quot; rel=&quot;nofollow&quot;&gt;Forte SCCS/Teamware&lt;/a&gt;, which used the old SCCS file format, but was a true distributed source code revision control system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One nice feature is that it had strong GUI support:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;You could bringover and putback changes by simply clicking and dragging.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It would draw trees/graphs showing how workspaces relate to each other.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You also could have a graph view to display a single file's complete history, which might have had several branches and merges. Allowing you to compare any two points.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It also had a strong visual merge tool, to let you accept changes from one of two conflicting files.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Naturally, many of the current DVCSs have command line support for these operations, but I'm looking for GUI support in order to use this in a &lt;strong&gt;lower-level undergraduate course&lt;/strong&gt; I'll be teaching.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not saying the Forte Teamware solution was perfect, but it did seem to be ahead of the curve. Unfortunately, it's not a viable option to use for my class.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Question:&lt;/strong&gt; What support do the current DVCSs have with regards to GUIs? Do any of them work on Windows, and not just Linux? Are they &quot;ready for prime-time&quot; or still works in progress? Are these standalone or built as plug-ins, e.g., for Eclipse?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; To help keep this discussion focused I'm &lt;em&gt;only&lt;/em&gt; interested in GUI tools. And not a meta-discussion if GUI tools should be used in teaching.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2011-03-18T15:58:33.987" Title="What GUI tools are available for which DVCS?" Tags="&lt;tools&gt;&lt;gui&gt;&lt;dvcs&gt;" AnswerCount="3" />
  <row Id="17499" PostTypeId="2" ParentId="17443" CreationDate="2010-11-07T19:05:07.200" Score="2" ViewCount="" Body="&lt;p&gt;I'll simply go with &quot;maintainable&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All code has to be maintained: no need to have that task made more difficult than necessary&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If any reader doesn't understand this simple requirement or needs it spelled out, then  that reader should not be writing code...&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-11-07T19:05:07.200" />
  <row Id="17500" PostTypeId="2" ParentId="17315" CreationDate="2010-11-07T19:11:41.993" Score="0" ViewCount="" Body="&lt;p&gt;There wouldn't be a difference in language skills. They would learn the language in the first year and be pretty much equal. Style would probably be the biggest difference. One may embrace patterns while the other never tried them. Stuff like that.&lt;/p&gt;&#xA;" OwnerUserId="7038" LastActivityDate="2010-11-07T19:11:41.993" />
  <row Id="17501" PostTypeId="2" ParentId="17443" CreationDate="2010-11-07T19:17:25.310" Score="1" ViewCount="" Body="&lt;p&gt;Good code is going to be different for each person and the language that they are working with also has an impact upon what might considered to be good code. Generally when I approach a project I look for the following things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;How is the project organized?&lt;/strong&gt; Are source files organized in a clean manner and can I find code with out too much effort?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;How is the code organized?&lt;/strong&gt; Is is clearly documented what the code in the file does, such as through the use of a file header, or through the use of each class residing in its own file? Are there function in the file that are no longer being used in the application?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;How are the functions organized?&lt;/strong&gt; Is there a clear pattern to where variables are declared, or is it a fairly random pattern? Does the code have a logical flow to it and avoid unnecessary control structures? Is everything clearly documented with code being self documenting where need be and comments clearly expression the why and/or how of what the code is doing?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Beyond all of this, does the design of the application make sense as a whole? The code residing in the application can be the best in the world, but it might still be a pain to work with if the overall design of the application makes no sense.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-11-07T19:17:25.310" />
  <row Id="17502" PostTypeId="2" ParentId="14618" CreationDate="2010-11-07T19:27:18.353" Score="1" ViewCount="" Body="&lt;p&gt;Sounds like you have a lack of confidence, but more importantly, you don't have enough professional experience to know that there are many, many developers that don't know much, but make alot of money. Don't ever undervalue yourself like that again! Let your code do the talking and see what happens.&lt;/p&gt;&#xA;" OwnerUserId="7038" LastActivityDate="2010-11-07T19:27:18.353" />
  <row Id="17503" PostTypeId="2" ParentId="17443" CreationDate="2010-11-07T19:30:34.027" Score="20" ViewCount="" Body="&lt;p&gt;A good coder is like a good pool player.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you see a professional pool player, you at first might not be impressed: &quot;Sure, they got all of the balls in, but they had only easy shots!&quot; This is because, when a pool player is making her shot, she doesn't think about what ball will go into which pocket, she's also thinking about &lt;em&gt;where the cue ball will end up&lt;/em&gt;. Setting up for the next shot takes tremendous skill and practice, but it also means that it looks easy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, bringing this metaphor to code, &lt;strong&gt;a good coder writes code that looks like it was easy and straightforward to do&lt;/strong&gt;. Many of the examples by Brian Kernighan in his books follow this pattern. Part of the &quot;trick&quot; is coming up with a &lt;strong&gt;proper conceptualization of the problem and its solution&lt;/strong&gt;. When we don't understand a problem well enough, we're more likely to over-complicate our solutions, and we will fail to see unifying ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With a proper conceptualization of the problem, you get everything else: readability, maintainability, efficiency, and correctness. Because the solution seems so straightforward, there will likely be fewer comments, because extra explanation is unnecessary. A good coder can also see the long term vision of the product, and form their conceptualizations accordingly.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-07T19:30:34.027" CommentCount="4" />
  <row Id="17504" PostTypeId="2" ParentId="17498" CreationDate="2010-11-07T19:32:42.653" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://tortoisehg.bitbucket.org/&quot; rel=&quot;nofollow&quot;&gt;TortoiseHg&lt;/a&gt; for Mercurial and &lt;a href=&quot;http://code.google.com/p/tortoisegit/&quot; rel=&quot;nofollow&quot;&gt;TortoiseGit&lt;/a&gt; for Git are quite ready for serious use, in my experience. Don't know about Eclipse, but NetBeans supports Mercurial straight out of the box, and &lt;a href=&quot;http://nbgit.org/&quot; rel=&quot;nofollow&quot;&gt;NbGit&lt;/a&gt; plugin gives Git support.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-11-07T19:32:42.653" CommentCount="4" />
  <row Id="17505" PostTypeId="2" ParentId="17490" CreationDate="2010-11-07T19:38:26.973" Score="-2" ViewCount="" Body="&lt;p&gt;You should be comparing .NET instead of MFC. I have not used Qt but .NET is pretty simple to use compared to MFC and you get the native look and feel.&lt;/p&gt;&#xA;" OwnerUserId="7271" LastActivityDate="2010-11-07T19:38:26.973" CommentCount="3" />
  <row Id="17506" PostTypeId="2" ParentId="14543" CreationDate="2010-11-07T19:41:38.850" Score="0" ViewCount="" Body="&lt;p&gt;Don't ever go around your boss. Ask his direction or enjoy the downtime. I have plenty of personal projects I could work on during downtime! Honestly, don't put yourself on the &quot;don't have anything to do list.&quot; Unless you're new to the team and want to shine a little, then definately make it known that you need something to fill the gaps. Just chill and let it ride...&lt;/p&gt;&#xA;" OwnerUserId="7038" LastActivityDate="2010-11-07T19:41:38.850" />
  <row Id="17507" PostTypeId="1" AcceptedAnswerId="17510" CreationDate="2010-11-07T19:42:24.747" Score="4" ViewCount="128" Body="&lt;p&gt;Hi, i have a problem&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i was working for a company as a php developer since last two years and worked on many websites&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and now the company is closed along with all of its websites and so i have to look for another company to hire me. But since the websites are down i can't write them on my resume. Actually i have tried that out telling them i worked on these sites but since the company is closed the websites are closed too and they did thought that i am lying and did not hire me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i am really stuck i will have to apply as a beginner and hence won't get much salary and will very hardly get a job (if at all) since some experienced programmers will be competing me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone got a solution?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;actually you guys are right, i shouldn't work for a company who doesn't trust me. And i like the Josh K's solutions the most, thanks guys :)&lt;/p&gt;&#xA;" OwnerUserId="7269" LastEditorUserId="7269" LastEditorDisplayName="" LastEditDate="2010-11-07T20:33:42.713" LastActivityDate="2010-11-07T20:33:42.713" Title="problem in building my portfolio" Tags="&lt;portfolio&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="1" />
  <row Id="17508" PostTypeId="2" ParentId="17474" CreationDate="2010-11-07T19:45:13.703" Score="2" ViewCount="" Body="&lt;p&gt;Not having these things spelled out in your employment contract at all is best.  The best contract is a standard contract.  If you develop a relationship based on trust and respect with your employer they will be more receptive to what sorts of perks you think you should enjoy than if you develop an adversarial relationship.&lt;/p&gt;&#xA;" OwnerUserId="6847" LastActivityDate="2010-11-07T19:45:13.703" />
  <row Id="17509" PostTypeId="2" ParentId="17507" CreationDate="2010-11-07T19:49:13.237" Score="0" ViewCount="" Body="&lt;p&gt;You may try to see if the &lt;a href=&quot;http://www.archive.org/web/web.php&quot; rel=&quot;nofollow&quot;&gt;Internet Archive / Wayback Machine&lt;/a&gt; has anything cached for the sites you'd like to show. If so, grab what you can and create a portfolio out of that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the future, you should at least grab some screenshots of your work, as long as it won't violate your employment agreement, for the purposes of building a portfolio.&lt;/p&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-11-07T19:49:13.237" CommentCount="6" />
  <row Id="17510" PostTypeId="2" ParentId="17507" CreationDate="2010-11-07T19:53:33.517" Score="4" ViewCount="" Body="&lt;h2&gt;It shouldn't matter&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Unless you're a web designer having a physical site up means nothing. They can't see any of the code. You're a programmer, hired to write good code. If they can't see it how do they know it's good?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often the applications I build are only available through some sort of login. Are you going to give prospective employers access to previous work? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they are denying you because you can't point to a website where your work is in use you probably don't want to work there. If they call you a liar for that, you &lt;em&gt;definitely&lt;/em&gt; don't want to work there.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h3&gt;Portfolio of Companies&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I found that the best way to present myself is not through a portfolio of sites (which may not exist or be accessible) or portfolio of code (which is frequently covered under a NDA), but through a &lt;a href=&quot;http://www.itzikdesign.com/portfolio.php&quot; rel=&quot;nofollow&quot;&gt;portfolio of companies&lt;/a&gt; &lt;sup&gt;business link&lt;/sup&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On personal site (if you have one) or business site (if you have one) simply list company names. These are discussion points if you are looking for freelance / contract / consult work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On your resumè (if looking for full time) list companies and a little more detail about your specific job. Notable projects or applications you completed or had a hand in. &lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Resume Preparing&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Aside from what's mentioned above, push your personal traits that make you a good programmer. Chess grand master? List it. If anything it's another excellent discussion topic. List languages you are competent in. Be prepared to explain your knowledge of the language, reading about ROR doesn't make you competent in it!&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-11-07T20:25:09.467" LastActivityDate="2010-11-07T20:25:09.467" CommentCount="4" />
  <row Id="17511" PostTypeId="2" ParentId="17443" CreationDate="2010-11-07T20:01:54.863" Score="0" ViewCount="" Body="&lt;p&gt;Let me kindly disagree on the readibility. No, not completely: Good code should be readable, and that can be easily achieved with enough comments. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I consider two kinds of WTF: those where you wonder if the programmer got further than programming 101, and those where you absolutely don't grasp the geniality of the code. Some code can look very strange at first, but is actually a very inventive solution to a hard problem. The second one shouldn't count in the WTF-meter, and can be avoided by comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Very readible code can be very, very slow. A less readible solution can give a manyfold improvement in speed. R is a great example of a language where that often is true. One likes to avoid for-loops there as much as possible. In general, I'd consider the fastest code the better code even though it's less readible. That is, if the improvement is substantial off course, and enough comments are inserted to explain what the code does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even more, memory management can be crucial in many scientific applications. Code that is very readible, tend to be kind of sloppy in memory usage: there are just more objects created. In quite some cases smart use of memory makes the code again less readible. But if you juggle around gigabytes of DNA sequences for example, memory is a crucial factor. Again, I consider the less memory-intensive code the better code, regardless of readibility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So yes, readibility is important for good code. I know the adagium of Uwe Liggis : Thinking hurts and computers are cheap. But in my field (statistical genomics), computational times of a week and memory usage of over 40 Gb is not considered abnormal. So an improvement of twice the speed and half the memory is worth a lot more than that extra bit of readibility.&lt;/p&gt;&#xA;" OwnerUserId="7268" LastEditorUserId="7268" LastEditorDisplayName="" LastEditDate="2010-11-07T20:07:16.150" LastActivityDate="2010-11-07T20:07:16.150" />
  <row Id="17512" PostTypeId="2" ParentId="17310" CreationDate="2010-11-07T20:02:01.790" Score="2" ViewCount="" Body="&lt;p&gt;Yesterday, I found an &lt;a href=&quot;http://blogs.msdn.com/b/rjacobs/archive/2010/06/14/how-to-do-api-key-verification-for-rest-services-in-net-4.aspx&quot; rel=&quot;nofollow&quot; title=&quot;also has links to code and templates&quot;&gt;article&lt;/a&gt;, a &lt;a href=&quot;http://channel9.msdn.com/shows/Endpoint/endpointtv-How-to-do-API-Key-Verification-with-a-WCF-WebHttp-REST-service&quot; rel=&quot;nofollow&quot; title=&quot;also has links to code and templates&quot;&gt;video&lt;/a&gt; and code about using API keys with WCF. I've got to lock down a publicly exposed web service as part of what we need to do in order to comply with &lt;a href=&quot;https://www.pcisecuritystandards.org/security_standards/index.php&quot; rel=&quot;nofollow&quot;&gt;PCI-DSS&lt;/a&gt;, and this looks like the right way to move forward. In the past, this app and webservice were used only by a VB4/5/6 (now .NET) desktop application, but the boss wants it opened up as a for-pay service to others. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One financial client used a scheme with a security information element in the SOAP header. This element had 4 attributes, one was the name of the application, the timestamp and guid elements were used to prevent replay attacks and the 4th attribute was a hash based on the name of the app, the timestamp and guid, along with a &quot;secret&quot; (think of a password) stored in the registry (for windows servers, or a special locked down file for unix-based servers, with different &quot;passwords&quot; for different application names). The &quot;secret&quot; (or password) was intended to prevent situations where a trojan in the datacenter would be able to make inappropriate calls, or respond to them. This was obviously not WCF as it had to support unix, windows and other operating systems in the data centers, but the technique was fascinating and could be used elsewhere. Because they used url-rewriting, the security information element would not show up in WSDLs, you had to know about it from documentation that only authorised folks received; if you added &lt;code&gt;?WSDL&lt;/code&gt; to the end of a webservice endpoint, you got a lie.  &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-07T20:02:01.790" />
  <row Id="17513" PostTypeId="2" ParentId="370" CreationDate="2010-11-07T20:04:29.477" Score="14" ViewCount="" Body="&lt;p&gt;I'm 52, and Technology Director of a company I co-founded 15 years ago, and this is a question close to my heart. I spend about 40% of my time coding, mainly developing existing and new products and I truly hope to be doing the same thing in 10 years time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm intrigued by the notion that older programmers are uniquely hampered by irrelevant skillsets. I find that this is the problem with younger developers - if I want an Flash Programmer, or a Flex Programmer, that's easy. If I want one with proven enterprise database or network skills, or with a track record of commercial product development, that's much more difficult to find. Older programmers can talk more articulately about design choices and software lifecycle issues simply because they've had a lifetime of experience of successes - and failures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem for older programmers is not that they are losing their intellectual capacity, but that they've been seduced by the notion that they should become 'managers'. In my opinion a good programmer with decades of experience can earn more developing software than by climbing some ill-defined management ladder,  provided they find (or start) an organisation which rewards innovation and ability. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a world where millions of developers with the same skillsets are available via the internet, the idea that youth alone has value is simply dumb.&lt;/p&gt;&#xA;" OwnerUserId="7272" LastActivityDate="2010-11-07T20:04:29.477" />
  <row Id="17514" PostTypeId="2" ParentId="17507" CreationDate="2010-11-07T20:20:10.863" Score="0" ViewCount="" Body="&lt;p&gt;If you want, you can try using the &lt;a href=&quot;http://www.archive.org/web/web.php&quot; rel=&quot;nofollow&quot;&gt;wayback machine&lt;/a&gt; to get some screenshots of the sites for your portfolio. With the site/technology/work done description note the dates (and maybe, if you want, the reasons) that the sites went offline.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Likewise, try getting references from people that were on the same team with you to endorse you and the work you put in on the site(s). If possible, even ask the clients that you wrote the sites for to write letters of recommendation and ask them to mention that you worked on a particular site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've &lt;strong&gt;never&lt;/strong&gt; written software for an employer or client that I could legally show to anyone else. This is a &lt;em&gt;very&lt;/em&gt; common occurrence. If an employer doesn't understand that, then they don't know what they're doing &lt;em&gt;at all&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-07T20:20:10.863" />
  <row Id="17518" PostTypeId="2" ParentId="17447" CreationDate="2010-11-07T20:34:13.157" Score="1" ViewCount="" Body="&lt;p&gt;I guess Java will become like .net, i.e. controlled by one big company. Other big companies like IBM will probably pull back, because Oracle is not the nicest possible partner to work with. So in the long run, Java won't be dead, but also not as universally used as it is today.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-07T20:34:13.157" CommentCount="1" />
  <row Id="17519" PostTypeId="1" AcceptedAnswerId="62427" CreationDate="2010-11-07T20:34:39.373" Score="11" ViewCount="4063" Body="&lt;p&gt;I considered posting on StackOverflow, but the question strikes me as being far too subjective since I can't think of a reasonable technical explanation for Microsoft's choice in this matter. But this question has bugged me for so long and the issue keeps coming up in one of my projects, and I have never actually seen an attempt at explaining this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OpenGL uses a right-handed coordinate system, where the +Z part of the world coordinate system extends toward the viewer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;DirectX uses a left-handed system where the +Z part of the world coordinate extends &lt;em&gt;into&lt;/em&gt; the screen, away from the viewer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I never used Glide, so I don't know how it worked, but from what I can gather, it uses a left-handed system as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a technical reason for this? And if not, is there some conceptual advantage to a particular handedness of a coordinate system? Why would one choose one over the other?&lt;/p&gt;&#xA;" OwnerUserId="83" LastEditorUserId="83" LastEditorDisplayName="" LastEditDate="2010-11-08T00:29:06.090" LastActivityDate="2011-03-27T14:29:39.980" Title="Why does DirectX use a left-handed coordinate system?" Tags="&lt;math&gt;&lt;directx&gt;&lt;opengl&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="2" />
  <row Id="17520" PostTypeId="2" ParentId="14650" CreationDate="2010-11-07T20:37:53.727" Score="2" ViewCount="" Body="&lt;p&gt;As &lt;a href=&quot;http://folklore.org/StoryView.py?project=Macintosh&amp;amp;story=Creative_Think.txt&quot; rel=&quot;nofollow&quot;&gt;Alan Kay said almost 30 years ago&lt;/a&gt;, point of view is worth 80 IQ points. Books that changed my point of view:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&quot;Philosophical Investigations&quot; by Ludwig Wittgenstein&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes we think we know, when in fact, we don't know. W. shows how to take a closer look.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&quot;Fact, Fiction, and Forecast&quot; by Nelson Goodman&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here I've learned what the word &lt;em&gt;analytic&lt;/em&gt; really means. Also, what the word &lt;em&gt;pragmatic&lt;/em&gt; really means.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&quot;Zen and the Art of Motorcycle Maintanance&quot; by Robert M. Pirsig&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can there be things that are better than other things? Why isn't everything the same, quality-wise? IOW, what is it that good movies, good cars, good food and good software have in common, that makes them good?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7243" LastActivityDate="2010-11-07T20:37:53.727" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="17521" PostTypeId="2" ParentId="17447" CreationDate="2010-11-07T20:39:00.813" Score="0" ViewCount="" Body="&lt;p&gt;From what I have read, the idea is if you want the tools to give you high performance, you pay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, the visualvm tool in the Sun Java 6 JDK would have been a good candidate for software to go in the &quot;you pay&quot;-version.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-07T20:39:00.813" />
  <row Id="17522" PostTypeId="1" CreationDate="2010-11-07T21:07:11.803" Score="1" ViewCount="107" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/15928/what-is-agile-methodology&quot;&gt;What is agile methodology?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;i just don't understand it is like going to a different alien planet to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;please someone explain this to me.&lt;/p&gt;&#xA;" OwnerUserId="7269" LastActivityDate="2010-11-07T23:03:46.520" ClosedDate="2010-11-07T23:05:20.613" Title="what is agile development?" Tags="&lt;programming&gt;&lt;agile&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="1" />
  <row Id="17523" PostTypeId="1" AcceptedAnswerId="17529" CreationDate="2010-11-07T21:10:48.860" Score="4" ViewCount="303" Body="&lt;p&gt;I'm curious if there are any .NET developers who aren't interested in linux at all. Most of the windows developers I heard or seen on the web have worked a intensively with linux and are pretty advanced linux users as well. &lt;/p&gt;&#xA;" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-07T23:06:40.013" LastActivityDate="2010-11-08T08:03:16.503" ClosedDate="2010-11-08T10:10:59.333" Title="Are there C# and windows developers out there who aren't interested in linux at all ?" Tags="&lt;c#&gt;&lt;windows&gt;&lt;linux&gt;" AnswerCount="6" />
  <row Id="17524" PostTypeId="2" ParentId="17523" CreationDate="2010-11-07T21:14:06.723" Score="0" ViewCount="" Body="&lt;p&gt;.Net developer here. I have only used Linux in a desktop capacity, but minimally. However, I can't say I'm fully away from Unix, I'm tying this on a Mac running Windows right now, and I'm a direct split between Mac and Windows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HTH.&lt;/p&gt;&#xA;" OwnerUserId="7276" LastActivityDate="2010-11-07T21:14:06.723" />
  <row Id="17525" PostTypeId="1" CreationDate="2010-11-07T21:16:30.263" Score="4" ViewCount="309" Body="&lt;p&gt;Hi everyone,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[This question was originally asked on Stack Overflow, but recommended to move the question here.]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't find anything quite like the question I'm about to ask, so please forgive me if there's something just like it already, please feel free to point me in the right direction. It'll take a bit of background explaining too, please forgive me for that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[backstory]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, I graduated from University about 18 months ago with a degree in Business Information Systems and Japanese. The Japanese took up half of the degree so the BIS was only joint. I only learned PHP in terms of languages and basically no computing theory - everything was vocational (Networking, programming basics, CMS development, Office and VBA and then loads of Business theory courses).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since this, I decided to teach myself C# and ASP.Net and try to get a position as a programmer. I created an online shop style website and a small CRM application in Windows Forms to both teach myself and build a portfolio, and luckily I managed to snag a developer position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad side? I'm the only developer at my company. Now don't get me wrong, in the last year I've learned loads and loads, I did some devpt. before Uni so knew the basics anyway, but it was very much a &quot;learning from books&quot; job - every night.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now then... I am now at a point where I'm building software on a regular basis, making good judgements for time scales, and have even been told my code and methodology are good by other professionals that have been in the game longer than me, and they have offered me jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[/backstory]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What this whole thing boils down to, is that I now want to study up on the topics I'll have missed by not doing CS. More importantly, could you recommend books / free online courses? I want to learn about Computer Science theory, not just better coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you!&lt;/p&gt;&#xA;" OwnerUserId="7276" LastActivityDate="2010-11-08T17:06:36.497" Title="What should I study to 'learn' Comp Sci?" Tags="&lt;career&gt;&lt;computer-science&gt;" AnswerCount="6" />
  <row Id="17526" PostTypeId="2" ParentId="17522" CreationDate="2010-11-07T21:17:58.953" Score="0" ViewCount="" Body="&lt;p&gt;In theory: it's a software development methodology which focuses on dynamic change and communication rather than carved-in-stone plans, documentation and specifications. A big part of it is pair programming and constant code review. You want the programmers to know the code base well and work on it together (often directly with clients), so that anyone can pick up anyone else's slack - and generally be aware of all the changes that are happening together. Documentation and specs are not really done because the emphasis is on change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In reality: many shops say they are &quot;agile&quot; when in fact they are &lt;a href=&quot;http://en.wikipedia.org/wiki/Cowboy_coding&quot; rel=&quot;nofollow&quot;&gt;cowboy shops&lt;/a&gt; with no real process in place at all.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-07T21:17:58.953" />
  <row Id="17527" PostTypeId="2" ParentId="12278" CreationDate="2010-11-07T21:25:14.883" Score="6" ViewCount="" Body="&lt;p&gt;UK based here too. Where I work everyone gets 24 days holiday plus bank holidays (8 days) plus sick days (unlimited, but if I remember correctly after 5ish days you officially get 'statutory sick pay' which is virtually nothing - although they've not applied that limit to people that have been in hospital AFAIK).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;10-12 days off a year - no thanks!&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-07T21:25:14.883" />
  <row Id="17528" PostTypeId="2" ParentId="17519" CreationDate="2010-11-07T21:28:40.127" Score="6" ViewCount="" Body="&lt;p&gt;They are both essentially equivalent, as one can be easily &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/bb204853%28VS.85%29.aspx&quot; rel=&quot;nofollow&quot;&gt;transformed&lt;/a&gt; into the other.  The only advantage I can find for the left-handed system is: as objects are farther away from the observer, in any direction (x, y, or z), the distance is a higher value. But I have no idea if this is why Microsoft chose one over the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.povray.org/documentation/view/3.6.0/15/&quot; rel=&quot;nofollow&quot;&gt;POV-Ray&lt;/a&gt; also uses a left-handed corridnate system.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-11-07T21:28:40.127" CommentCount="3" />
  <row Id="17529" PostTypeId="2" ParentId="17523" CreationDate="2010-11-07T21:34:17.617" Score="2" ViewCount="" Body="&lt;p&gt;.net here too. I have an Ubuntu virtual machine set up but rarely use it. I'm interested in what happens outside the .net world but have never had any sort of pressing need to use linux to do this. In my experience this is typical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There probably are .net people that use linux a lot, but I've not met them. I know quite a few people that use OSX/Windows side-by-side but no-one (off the top of my head) that I personally know that works predominantly with .net also uses linux significantly.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-07T21:34:17.617" />
  <row Id="17530" PostTypeId="2" ParentId="17523" CreationDate="2010-11-07T21:38:18.897" Score="8" ViewCount="" Body="&lt;p&gt;Although I have a passing interest in the Linux world it has probably been 10 years since I installed a Linux distro and can't see any reason to soon. &lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-07T21:38:18.897" CommentCount="2" />
  <row Id="17531" PostTypeId="2" ParentId="17490" CreationDate="2010-11-07T21:40:35.700" Score="2" ViewCount="" Body="&lt;p&gt;MFC is old and creaky and is in maintenance mode for some years. There are some small updates but mostly to keep the wolves from the door. I think for new development there are a lot better options. &lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-07T21:40:35.700" />
  <row Id="17532" PostTypeId="2" ParentId="17523" CreationDate="2010-11-07T21:43:51.767" Score="0" ViewCount="" Body="&lt;p&gt;I've always worked on Windows (MFC, .NET) in all my commercial programming jobs. Granted, I've also done a lot of Java, so that's kinda platform-agnostic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;During my uni study though, Unix/Linux was the platform of instruction, so I had Linux installed at home and was quite proficient at it at the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess you could say I'm platform-agnostic. I wouldn't mind working on Linux again, just haven't had a chance to do so - and haven't bothered to go out of my way to look for Linux work. Maybe it's all the Java I've done lately. :)&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-07T21:43:51.767" />
  <row Id="17533" PostTypeId="2" ParentId="17523" CreationDate="2010-11-07T21:44:02.677" Score="1" ViewCount="" Body="&lt;p&gt;I do my best to make sure my code works (and consequently, unit tests) under Mono as well as the Microsoft CLR.  Now, to be honest, I do that on Windows, but I feel it will be Linux-friendly as well if I satisfy those conditions.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-11-07T21:44:02.677" />
  <row Id="17534" PostTypeId="2" ParentId="17490" CreationDate="2010-11-07T21:52:29.813" Score="2" ViewCount="" Body="&lt;p&gt;Qt is better than MFC for a number of reasons including:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It is open source&lt;/li&gt;&#xA;&lt;li&gt;It is cross platform. It works on Linux, some mobile devices and Mac OSX. This makes it easier to port programs to other platforms.&lt;/li&gt;&#xA;&lt;li&gt;Qt is much easier to use and learn that MFC.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://doc.qt.nokia.com/&quot; rel=&quot;nofollow&quot;&gt;Qt is well documented&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5536" LastActivityDate="2010-11-07T21:52:29.813" />
  <row Id="17535" PostTypeId="2" ParentId="12278" CreationDate="2010-11-07T21:53:03.557" Score="1" ViewCount="" Body="&lt;p&gt;In Bosnia the legal minimum for highly skilled workers is 18 days (you can arrange more in your contract), and you get (theoretically) unlimited sick days (you do need doctor's notice like in the rest of Europe). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also some other days off guaranteed by law (e.g. in total 7 days off for marriage), however employers can sometimes bend these rules because the state is not doing a very good job enforcing the work regulation (or any other regulation in this country for that matter). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I once knew a guy who was very diligently going to work &lt;strong&gt;&lt;em&gt;with a sprained ankle&lt;/em&gt;&lt;/strong&gt; (!) for fear of losing his job and the company manager did not send him home, which was a very, very heavy violation of work regulations here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Speaking for myself, I always make sure that my employer understands very clear that I intend to use my guaranteed rights, no matter what the &quot;company culture&quot; is.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-07T21:53:03.557" CommentCount="2" />
  <row Id="17536" PostTypeId="2" ParentId="17525" CreationDate="2010-11-07T22:01:15.757" Score="4" ViewCount="" Body="&lt;p&gt;Math.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to be really good at math.  Not quite as much because you are likely to encounter the need to solve differential equations in order to write your code, but because you need the same skills it takes to solve math problems to be really good at software engineering.  I recommend taking a few upper lever math classes at your local community college.  Perhaps a numerical methods or discrete math class first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I took a class in software engineering for my degree in computer science a few years ago that the professor used some of the material from &lt;a href=&quot;http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/&quot; rel=&quot;nofollow&quot;&gt;MIT's open course-ware&lt;/a&gt;.  He used course 6.170.  I recommend going through that class and a good course on object oriented programming and especially design patterns.  If you still have time and want to learn more, move on to artificial intelligence and theory of computation studies.  If I had to to pick a single course that was most helpful in my career as a developer, it would be the studies on design patterns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because I have a low reputation, I can't post more links.  Do a Google search for &quot;gang of four design patterns&quot; for the book that is classically used to teach that subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="4541" LastActivityDate="2010-11-07T22:01:15.757" CommentCount="13" />
  <row Id="17537" PostTypeId="2" ParentId="12278" CreationDate="2010-11-07T22:40:00.480" Score="2" ViewCount="" Body="&lt;p&gt;Netflix is often held up as the &lt;a href=&quot;http://www.telegraph.co.uk/finance/newsbysector/mediatechnologyandtelecoms/7945719/Netflix-lets-its-staff-take-as-much-holiday-as-they-want-whenever-they-want-and-it-works.html&quot; rel=&quot;nofollow&quot;&gt;poster child&lt;/a&gt; for this sort of vacation policy.  I am &lt;em&gt;so&lt;/em&gt; not convinced... Google &quot;&lt;a href=&quot;http://www.google.co.uk/search?source=ig&amp;amp;hl=en&amp;amp;rlz=&amp;amp;=&amp;amp;q=netflix+turnover&amp;amp;btnG=Google+Search&amp;amp;aq=f&amp;amp;oq=&quot; rel=&quot;nofollow&quot;&gt;netflix turnover&lt;/a&gt;&quot; and you may get the impression anyone who isn't a star performing workaholic doesn't last long there.  I suspect not keeping track of vacations could be a way of hiding an ugly secret: that vacation taken is way below industry norms, although I'd be interested to see evidence otherwise.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, believe it or not, in socialist Europe one of the jobs of HR departments is to keep tabs on employees and make sure they take a statutory &lt;em&gt;minimum&lt;/em&gt; amount of holiday!  (So these &quot;we don't keep track of vacations&quot; policies probably wouldn't be legal here).&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-11-07T22:40:00.480" CommentCount="3" />
  <row Id="17538" PostTypeId="1" AcceptedAnswerId="17540" CreationDate="2010-11-07T22:45:46.730" Score="4" ViewCount="269" Body="&lt;p&gt;I am going to be making a website like &lt;a href=&quot;http://instructables.com&quot; rel=&quot;nofollow&quot;&gt;http://instructables.com&lt;/a&gt; and I was curious what programming language I should use.  I have learned some PHP, though from what I have heard PHP is better for smaller projects and for my project there will be many users (like twitter, facebook, except not as large scale (for now)).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="7280" LastActivityDate="2010-11-08T00:14:20.173" ClosedDate="2010-12-28T15:02:22.047" Title="Which programming language should I use?" Tags="&lt;programming-languages&gt;&lt;programming&gt;" AnswerCount="4" CommentCount="6" FavoriteCount="1" />
  <row Id="17539" PostTypeId="2" ParentId="17447" CreationDate="2010-11-07T22:53:51.077" Score="0" ViewCount="" Body="&lt;p&gt;I really don't think it will happen, as said above there are too many businesses reliant on it that it wouldn't be a wise move to charge money for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This bit of news will probably scare many people because they spent months learning Java, though there is really nothing to worry about because it is such an important language these days.&lt;/p&gt;&#xA;" OwnerUserId="7280" LastActivityDate="2010-11-07T22:53:51.077" />
  <row Id="17540" PostTypeId="2" ParentId="17538" CreationDate="2010-11-07T22:54:57.000" Score="1" ViewCount="" Body="&lt;p&gt;That depends on your real goal :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If the point is to learn a language, take one that seem interesting : Ruby (on Rails) is popular those times, maybe Java if you didn't taste it before - C++ (with CPPCMS or Wt) if you want to see if it's interesting to work with in this context, maybe Python ? Any language that have paradigms you didn't experience before will help you learn about programming in general, maybe about web programming too.&lt;/li&gt;&#xA;&lt;li&gt;If the point is to make a specific website, then you just want a good tool to work fast with. So take the language you're used to (PhP?) and simply concentrate on the features to implement. If you feel that you might need to use a better tool, then look for frameworks (Rails-ones for example, I'm not a specialist) and try to use libraries to assemble things fast.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-11-07T22:54:57.000" CommentCount="2" />
  <row Id="17541" PostTypeId="2" ParentId="17522" CreationDate="2010-11-07T22:56:16.407" Score="0" ViewCount="" Body="&lt;p&gt;Agile is a group of light weight software methodologies that accept that changing needs are a fact of life so try to provide methods that cope with/ enable change. They also try to maximise the customers return on investment by reducing the number of non software outputs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Their aims are outlined in the agile manifesto.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Individuals and interactions over processes and tools &lt;/li&gt;&#xA;&lt;li&gt;Working software over comprehensive documentation&lt;/li&gt;&#xA;&lt;li&gt;Customer collaboration over contract negotiation &lt;/li&gt;&#xA;&lt;li&gt;Responding to change over following a plan&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That is, while there is value in the items on the right, we value the items on the left more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the Agile methods are the result of studies into what makes certain software teams successful and while their processes may differ the key principals are generally the same.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Frequent delivery.&lt;/li&gt;&#xA;&lt;li&gt;Reflective improvement&lt;/li&gt;&#xA;&lt;li&gt;Close communication&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;See also Extreme Programming, Scrum, Crystal Clear.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastEditorUserId="5505" LastEditorDisplayName="" LastEditDate="2010-11-07T23:03:46.520" LastActivityDate="2010-11-07T23:03:46.520" />
  <row Id="17542" PostTypeId="2" ParentId="17538" CreationDate="2010-11-07T23:01:57.963" Score="1" ViewCount="" Body="&lt;p&gt;Each language (and framework) has its own strengths and weaknesses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you need to roll it out right now, and can't be too fussy about the server you use? Maybe use PHP, because it's so widely supported.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you just need simple CRUD, use &lt;a href=&quot;http://www.rubyonrails.org&quot; rel=&quot;nofollow&quot;&gt;Ruby on Rails&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to build a highly interactive web application, use Smalltalk's &lt;a href=&quot;http://www.seaside.st/&quot; rel=&quot;nofollow&quot;&gt;Seaside&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft's ASP.Net MVC 2 framework allows you to quickly build a RESTful site, if you need to deploy to a Windows server.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-11-07T23:01:57.963" CommentCount="1" />
  <row Id="17543" PostTypeId="2" ParentId="17538" CreationDate="2010-11-07T23:03:06.387" Score="3" ViewCount="" Body="&lt;p&gt;I suggest you try a couple of tutorials of different languages. It shouldn't take one or two days. Java, PHP, Python, Ruby, C#, etc. See which one you like.&#xA;If you're trying to make something like the website you mentioned, I suggest you also research some frameworks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm inclined to say Python + Django, since it's the one I'm using and finding pretty good. Whenever I run into problems I find answers online since their documentation is very good and they have a large community supporting it. (check www.djangoproject.org)&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-11-07T23:03:06.387" CommentCount="3" />
  <row Id="17544" PostTypeId="2" ParentId="17525" CreationDate="2010-11-07T23:03:28.530" Score="3" ViewCount="" Body="&lt;p&gt;If you can afford it, get an unlimited subscription to &lt;a href=&quot;http://my.safaribooksonline.com/&quot; rel=&quot;nofollow&quot;&gt;Safari Books Online&lt;/a&gt;.  You will have access to thousands of computer-related (and other technical) books.  Pick a topic: algorithms is a good place to start.  Then something on data structures and program design.  Object oriented programming.  Pick a new language, different from what you already know -- such as Ruby or Python.  Browse some books on each subject, and those you like, read in depth.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From there, pick some topics which interest you, such as operating systems, compilers, cryptography, image processing, etc.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-11-07T23:03:28.530" CommentCount="1" />
  <row Id="17545" PostTypeId="2" ParentId="17538" CreationDate="2010-11-07T23:08:15.210" Score="4" ViewCount="" Body="&lt;h1&gt;Language Doesn't Matter&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Really it doesn't. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't pick a language because it has features. Don't pick a language because it's fast. Don't pick languages because other people tell you it's great.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Pick a language that &lt;em&gt;you&lt;/em&gt; are comfortable in.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;If you aren't comfortable the code will suck. If the code sucks it makes building the project that much harder. &lt;em&gt;Be the language independent programmer.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-07T23:08:15.210" CommentCount="5" />
  <row Id="17546" PostTypeId="2" ParentId="17443" CreationDate="2010-11-07T23:25:17.697" Score="0" ViewCount="" Body="&lt;p&gt;As far as it goes for me...&#xA;I know I'm writing good code when a coworker that does work on another project comes along and is able to jump in and understand what I'm doing without me going over each block of code and showing what it is doing.&lt;br&gt;&#xA;Instead of him saying, &quot;Wait a minute, what?!&quot; &#xA;He's saying, &quot;Oh, ok, I see what you did there.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good code also doesn't have a lot of sneaky workarounds or 'hacks.' Lines when, while you're writing it, you're also saying to yourself, &quot;I know this is not a good way to do it, but I'm just gonna have to do it this way for now. I'll remind myself to improve it later...&quot;&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-11-07T23:25:17.697" />
  <row Id="17547" PostTypeId="2" ParentId="370" CreationDate="2010-11-07T23:27:48.883" Score="0" ViewCount="" Body="&lt;p&gt;Speaking as a mid-20s dev who does the coder hiring at her company when it needs doing...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are different gotchas I look out for with prospects of different ages, but I don't care the age of my hire if I see a good mind at work.  Experience can be an asset, if it doesn't come with the idea that there's no need to keep learning.  (Just as inexperience can be a detriment, but there are many factors that could compensate for it.)&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-07T23:27:48.883" />
  <row Id="17549" PostTypeId="2" ParentId="17525" CreationDate="2010-11-08T01:11:18.193" Score="2" ViewCount="" Body="&lt;p&gt;Here is a blog post I just learned about today. It's very interesting. &lt;a href=&quot;http://writing.bryanwoods4e.com/1-poor-poor-child&quot; rel=&quot;nofollow&quot;&gt;The letter I wish I could write to my former self, and have beamed at light-speed through some kind of vacuum tube and delivered at the precise moment when I finally decided to learn to program.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First off, congradulations on gaining such high marks from seasoned professionals at such a young age.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the very thing you are truely looking for can be found by answering this question?&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Where do you want to be five years from now?&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Answer that question and then chart a path that leads you there.&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Mr. Miagi would say &quot;&lt;em&gt;Focus Danielsan&lt;/em&gt;&quot;.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-08T01:11:18.193" CommentCount="1" />
  <row Id="17550" PostTypeId="2" ParentId="370" CreationDate="2010-11-08T01:37:43.540" Score="2" ViewCount="" Body="&lt;p&gt;I'm working in Korea. In this country, over 40s are too old as a programmer. So the board want them to be a manager. But only few of them can be a manager. Rest of them should be retired.  So they find a new job like a own business. It is why most korean programmers want to go abroad.&lt;/p&gt;&#xA;" OwnerUserId="5346" LastActivityDate="2010-11-08T01:37:43.540" CommentCount="1" />
  <row Id="17551" PostTypeId="2" ParentId="4951" CreationDate="2010-11-08T01:58:07.473" Score="-1" ViewCount="" Body="&lt;p&gt;Programmers just get the $#)*% job done.  Software engineers get it done plus add lots of annoying buzzwords.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-08T01:58:07.473" />
  <row Id="17552" PostTypeId="2" ParentId="1009" CreationDate="2010-11-08T01:59:06.570" Score="1" ViewCount="" Body="&lt;p&gt;I've been using Share-it since 2002. &lt;a href=&quot;http://www.shareit.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.shareit.com/&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It works out to about 12%. They handle all of the product delivery and credit card transactions. &lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-08T01:59:06.570" />
  <row Id="17553" PostTypeId="2" ParentId="1040" CreationDate="2010-11-08T02:04:05.620" Score="1" ViewCount="" Body="&lt;p&gt;You need to be listed in the CCR registry &lt;a href=&quot;https://www.bpn.gov/ccr&quot; rel=&quot;nofollow&quot;&gt;https://www.bpn.gov/ccr&lt;/a&gt;&lt;br&gt;&#xA;You need to have a DUNS number&lt;br&gt;&#xA;You need to be able to take credit cards&lt;br&gt;&#xA;You need to sign a vendor agreement&lt;br&gt;&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-08T02:04:05.620" />
  <row Id="17555" PostTypeId="2" ParentId="4951" CreationDate="2010-11-08T02:27:57.350" Score="1" ViewCount="" Body="&lt;p&gt;Software engineer adds to &quot;programming&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Requirement analysis, configuration management, change control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Change scope analysis, requirements traceability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Measurement of product (quality, size, defect density).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Management of the development process. (Visibility, feedback, risk management)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Heck, having a documented development process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Process development and deployment. Using practices (engineering, programming) that have empirically proven results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing documentation. It won't kill you, just only write the documents required. Don't specify documents as &quot;deliverables&quot;; The customer needs a manual, so we write one. Mechanical engineers don't write hundreds of pointless documents so why be crazy. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this sounds a bit like &quot;Systems Engineering&quot;, The engineering company I work for often described Systems Engineering as like Software Engineering for people who can't program. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Systems engineering on it's own is quite a valuable discipline. There are lots of technology-heavy projects with little to no custom software component.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmer: write software.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-11-08T02:27:57.350" />
  <row Id="17557" PostTypeId="1" AcceptedAnswerId="17579" CreationDate="2010-11-08T02:39:38.687" Score="3" ViewCount="304" Body="&lt;p&gt;We constantly learn, evolve and grow as programmers. Think back to when you first started programming. If you could go back and do just one thing differently, what would it be and why?&lt;/p&gt;&#xA;" OwnerUserId="6801" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-11-08T03:32:41.120" LastActivityDate="2010-11-08T15:05:22.460" Title="Knowing what you know now, what one thing would you have done differently?" Tags="&lt;best-practices&gt;&lt;programming-practices&gt;&lt;advice&gt;" AnswerCount="16" CommentCount="1" />
  <row Id="17558" PostTypeId="2" ParentId="17557" CreationDate="2010-11-08T02:56:25.750" Score="4" ViewCount="" Body="&lt;p&gt;Be more realistic in estimates. If a job is too large for me, or I'm already doing too much, say so and decline. My largest failures in programming have been from excessive overoptimism. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-08T02:56:25.750" CommentCount="1" />
  <row Id="17559" PostTypeId="2" ParentId="17326" CreationDate="2010-11-08T03:05:00.567" Score="2" ViewCount="" Body="&lt;p&gt;I'm fortunate enough to know some of the top developers in desktop, web, and mobile industries and there's one thing that's very consistent between them all right now...they don't work for other people.  It's odd now that I think about it, and it's a fairly recent change for a few of them, but they're all entrepreneurs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, if you're a top (or the best) developer and there's something you want, then go get it.  Never wait for it to come to you.  If by some rare chance you're asking this question because you plan to be, or feel you already are a top developer, then I suggest taking the route of sending out your CVs here and there.&lt;/p&gt;&#xA;" OwnerUserId="7158" LastEditorUserId="7158" LastEditorDisplayName="" LastEditDate="2010-11-08T03:15:28.807" LastActivityDate="2010-11-08T03:15:28.807" />
  <row Id="17560" PostTypeId="2" ParentId="1015" CreationDate="2010-11-08T03:11:57.073" Score="1" ViewCount="" Body="&lt;p&gt;I keep then in the &lt;strong&gt;&lt;em&gt;Notes&lt;/em&gt;&lt;/strong&gt; section of Outlook.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-08T03:11:57.073" CommentCount="1" />
  <row Id="17561" PostTypeId="2" ParentId="17557" CreationDate="2010-11-08T03:17:29.103" Score="0" ViewCount="" Body="&lt;p&gt;Skipped the two years I spent programming in ASP/VBScript.  ;)&lt;/p&gt;&#xA;" OwnerUserId="7285" LastActivityDate="2010-11-08T03:17:29.103" />
  <row Id="17562" PostTypeId="2" ParentId="1040" CreationDate="2010-11-08T03:24:18.947" Score="1" ViewCount="" Body="&lt;p&gt;I'm currently working (in the side) on a website conversion for a government agency. Converting a ColFusion app to .NET. One of the issues was an incompetent friend blew most of the budget before he got fired. He finally recognized he was over his head and suckered me in to help. The budget is long gone and the sword the feds can hold over your head is that they'll blacklist the contracting company (and their principles) from doing business with the federal governmet again. This website connects to another project that a different contractor was hired to do. That project was more than 1 year late and more than $1,000,000 overbudget. The contracting company had to eat the loss. I must say it is weird to work on a clumsy little website (it had to duplicate what the 10 year old CF app did) that brings in $1/4 B per year in tax revenue. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At my day job, we've had other issues trying to get approval of the parent corporation for bidding on government contracts. Namely that the legal department didn't think we could do the job and forbade us from bidding. In retrospect, while it would have brought in about $150 Million (over 10 years) for our branch, our mismanagers would have screwed it up and it was a good call by legal. This government project had been on hold (by the government) due to a budgetary impass when Congress could not get off their butts and pass a budget. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-08T03:24:18.947" />
  <row Id="17563" PostTypeId="2" ParentId="17557" CreationDate="2010-11-08T03:24:26.043" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Nothing&lt;/strong&gt;. I've learned and benefited from every step of my programming life, good and bad.&lt;/p&gt;&#xA;" OwnerUserId="4260" LastActivityDate="2010-11-08T03:24:26.043" CommentCount="1" />
  <row Id="17564" PostTypeId="2" ParentId="17557" CreationDate="2010-11-08T03:27:46.017" Score="0" ViewCount="" Body="&lt;p&gt;Be more willing to take on challenges. It's easy to become complacent doing comfortable tasks. And, there's risk involved whenever you are stretching to the limits of your current abilities. But as the old saying goes: no pain, no gain.&lt;/p&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-11-08T03:27:46.017" />
  <row Id="17565" PostTypeId="2" ParentId="15839" CreationDate="2010-11-08T03:28:24.863" Score="2" ViewCount="" Body="&lt;p&gt;I've heard good things about Kodu, from Microsoft. It was developed to allow kids to build their own games without already knowing how to program.&#xA;&lt;a href=&quot;http://fuse.microsoft.com/project/kodu.aspx&quot; rel=&quot;nofollow&quot;&gt;http://fuse.microsoft.com/project/kodu.aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7285" LastActivityDate="2010-11-08T03:28:24.863" />
  <row Id="17566" PostTypeId="1" AcceptedAnswerId="17574" CreationDate="2010-11-08T03:31:04.990" Score="5" ViewCount="327" Body="&lt;p&gt;At my previous job I was the lead programmer and I worked with this guy who was a self-admitted hacker. We respected each other and had a great relationship. The company was much better off because we blended our talents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would tend to look for an elegant, graceful solution that we could add to our code library. He would tend to find, tweak, and fit some strange piece of code into a solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the most valuable lessons I learned from him was you don't always have to build the solution from scratch, there's a ton of code out there you can borrow from.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What kind of things have you learned from a hacker?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit - Added My Definition of Hacker&lt;/strong&gt;&lt;br&gt;&#xA;By hacker I mean someone who for the most part, cannot create something from scratch. However they are very good at morphing code that others have written.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastEditorUserId="6801" LastEditorDisplayName="" LastEditDate="2010-11-08T15:01:22.773" LastActivityDate="2010-11-08T17:18:18.637" Title="What kind of things can you learn from a guy who only hacks existing code?" Tags="&lt;productivity&gt;&lt;learning&gt;&lt;hacking&gt;&lt;hacks&gt;" AnswerCount="4" CommentCount="11" FavoriteCount="3" />
  <row Id="17567" PostTypeId="2" ParentId="17438" CreationDate="2010-11-08T03:47:31.137" Score="1" ViewCount="" Body="&lt;p&gt;microdata is part of the HTML5 spec.  That for me means a lot more future that the others. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd only consider RDFa if you already use some RDF infrastructure. In that case, RDFa is just another serialization of semantic data.&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-11-08T03:47:31.137" CommentCount="1" />
  <row Id="17568" PostTypeId="1" AcceptedAnswerId="17608" CreationDate="2010-11-08T03:51:52.093" Score="24" ViewCount="1500" Body="&lt;p&gt;Timesheets are something that I've never been fond of, but none the less something that is a requirement within my company. They don't bother me so much, but they seem to really grind some other people's gears. I suppose I have a few questions, and feedback would be great.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Are you required to do timesheets, assuming you aren't a contractor? (That is understandable to me).&lt;/li&gt;&#xA;&lt;li&gt;What is the granularity of timesheets that you would be comfortable with or that you use? (ex: all entries must be under two hours).&lt;/li&gt;&#xA;&lt;li&gt;Would timesheets ever factor into your reasons for not accepting a job or leaving a current one?&lt;/li&gt;&#xA;&lt;li&gt;How has management within your organization justified timesheets if you aren't billing to a client?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7226" LastEditorUserId="1095" LastEditorDisplayName="" LastEditDate="2011-04-11T10:28:14.067" LastActivityDate="2011-04-11T10:28:14.067" CommunityOwnedDate="2011-01-28T18:20:56.797" Title="As a programmer, are you required to do timesheets?" Tags="&lt;management&gt;" AnswerCount="26" CommentCount="1" FavoriteCount="7" />
  <row Id="17569" PostTypeId="2" ParentId="17566" CreationDate="2010-11-08T03:58:28.933" Score="0" ViewCount="" Body="&lt;p&gt;I've learned plenty of things, namely from an aspect of security, and how unfortunate it is that it is often an after thought from an application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally he really pushed me to learn and understand the open source community, and how valuable it is. I suppose that goes along the same lines of not always needing to build an application from scratch. Sometimes lipstick on a pig is all that is really needed.&lt;/p&gt;&#xA;" OwnerUserId="7226" LastActivityDate="2010-11-08T03:58:28.933" />
  <row Id="17570" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T04:01:07.447" Score="5" ViewCount="" Body="&lt;p&gt;At my previous job I had to account for each 15 minute block of time. It was a web development company and we were each assingned tasked. Each task had a specific number of hours alloted to it. We divided the total price we charged the customer by $100/per hour to get the total hours available for the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I was given 10 hours to accomplish my tasks and it took me 15 hours, then I owed the company 5 hours overtime. I used a daily planner from Franklin Covey to keep track of time.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-08T04:01:07.447" CommunityOwnedDate="2011-01-28T18:20:56.797" CommentCount="12" />
  <row Id="17571" PostTypeId="2" ParentId="17557" CreationDate="2010-11-08T04:02:27.713" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Start Earlier&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I picked up HTML in sixth grade, but I just played with variations on basic every few weekends through middle school and high school.  Programming was always kinda fun, but it wasn't until late high school that I was able to start producing useful and interesting things.  Now I have a ton of side projects I want to work on, but not enough time.  I wish I'd pushed harder in middle school and high school, and learned enough to be productive early on.  Thinking back to all the free time I had then that I pretty much wasted- that's the one thing I would change.&lt;/p&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-11-08T04:02:27.713" CommentCount="2" />
  <row Id="17572" PostTypeId="2" ParentId="1040" CreationDate="2010-11-08T04:04:47.803" Score="2" ViewCount="" Body="&lt;p&gt;In addition to what everyone else said, I'd recommend trying to get your product on the GSA Schedule. GSA is essentially an intermediate party that holds a contract with you, and many agencies buy software that is only on a GSA schedule. They essentially will lock you down to a certain price, and will often demand lower than retail prices. It's a HUGE pain, and often it's worth investing in a consultant to guide you through the lengthy, complex process.&lt;/p&gt;&#xA;" OwnerUserId="7226" LastActivityDate="2010-11-08T04:04:47.803" />
  <row Id="17573" PostTypeId="2" ParentId="17557" CreationDate="2010-11-08T04:08:40.170" Score="1" ViewCount="" Body="&lt;p&gt;Keep an open mind. Locking myself into one platform and development community is something I wouldn't do. Even if I plan on working within that one platform (.NET in this case) there is a ton to learn from other languages, platforms, paradigms, etc. Over the past few years I've been trying to diversify myself to other things. It's had an impact on the way I think and overall made me better at my job.&lt;/p&gt;&#xA;" OwnerUserId="7226" LastActivityDate="2010-11-08T04:08:40.170" />
  <row Id="17574" PostTypeId="2" ParentId="17566" CreationDate="2010-11-08T04:09:21.257" Score="15" ViewCount="" Body="&lt;h2&gt;Do what works - improve if necessary&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Based on the way you worked your question, here's what I'm assuming you mean by &quot;hacker&quot;: the pragmatic type who &lt;strong&gt;doesn't spend too much effort too soon&lt;/strong&gt; but knows what tradeoffs are being made and &lt;strong&gt;can make something more elegant if necessary.&lt;/strong&gt; (As opposed to someone who's blindly copying and pasting and doesn't know why the code sucks.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That approach is really the foundation of agile development. And I've seen a great example of that, which has helped me tremendously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I watched my good friend, who is an excellent developer, create a product in a brand new niche which he guessed was about to explode in popularity. He built his product quick and dirty to grab market share. His mantra was &quot;do the simplest thing that works,&quot; and initially, it didn't work that great. But it was better than nothing, which was his competition at the time, and hour by hour he was &lt;strong&gt;improving it, based not on his guesses but on actual user feedback.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would have been paralyzed about launching his initial version because it wasn't awesome. But he wisely chose what was &quot;good enough for now&quot; and went with it. If the project had utterly failed to attract users, he wouldn't have wasted much effort. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As it turned out, it was very popular. He has invested hundreds of hours of effort, and has refactored several times in order to allow new features and make the code more maintainable. He has a solid architecture, and more important, a great product with TONS of users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;This is agile development&lt;/strong&gt;, and it's what I learned from watching a &quot;hacker&quot; succeed. In a sense, it's the old lesson: &lt;strong&gt;&quot;don't optimize prematurely.&quot;&lt;/strong&gt; Whether for speed or for clean architecture, the time to optimize is when 1) you can see that you need to and 2) you've got real-world data to know what to fix. Until then, you're just guessing.&lt;/p&gt;&#xA;" OwnerUserId="7217" LastActivityDate="2010-11-08T04:09:21.257" CommentCount="3" />
  <row Id="17575" PostTypeId="2" ParentId="4433" CreationDate="2010-11-08T04:24:57.377" Score="3" ViewCount="" Body="&lt;p&gt;His keyboard only has two keys: 1, and 0.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He's discovered that he doesn't need the 0.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He is the most interesting programmer in the world.&lt;/p&gt;&#xA;" OwnerUserId="7217" LastActivityDate="2010-11-08T04:24:57.377" />
  <row Id="17576" PostTypeId="2" ParentId="2214" CreationDate="2010-11-08T04:29:15.647" Score="0" ViewCount="" Body="&lt;p&gt;If I just finished a task I didn't like, I might reward myself by doing one I've been wanting to do.&lt;/p&gt;&#xA;" OwnerUserId="7217" LastActivityDate="2010-11-08T04:29:15.647" CommunityOwnedDate="2011-03-31T09:31:23.023" />
  <row Id="17577" PostTypeId="2" ParentId="2214" CreationDate="2010-11-08T04:31:50.063" Score="0" ViewCount="" Body="&lt;p&gt;Happy hour, casual day the next day.&lt;/p&gt;&#xA;" OwnerUserId="7226" LastActivityDate="2010-11-08T04:31:50.063" CommunityOwnedDate="2011-03-31T09:31:23.023" />
  <row Id="17578" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T04:33:12.277" Score="7" ViewCount="" Body="&lt;p&gt;My company tried, but I ignored it or wrote down nonsense times for a few weeks while still getting the job done and they forgot about it.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-08T04:33:12.277" CommunityOwnedDate="2011-01-28T18:20:56.797" CommentCount="4" />
  <row Id="17579" PostTypeId="2" ParentId="17557" CreationDate="2010-11-08T04:41:38.757" Score="3" ViewCount="" Body="&lt;p&gt;I would have learned about business and marketing early, and started making and selling my own products from the start. Programming is great fun, but as an income stream it has severe upper limits: rate per hour, and the number of hours in a day.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-08T04:41:38.757" CommentCount="2" />
  <row Id="17580" PostTypeId="2" ParentId="17557" CreationDate="2010-11-08T04:49:14.253" Score="5" ViewCount="" Body="&lt;p&gt;I would have learned C much earlier. I started out with scripting languages and once you know C, lots of things make more sense. You can see the roots of how things are implemented and also get a much better understanding of the OS even from an admin perspective.&lt;/p&gt;&#xA;" OwnerUserId="7287" LastActivityDate="2010-11-08T04:49:14.253" CommentCount="2" />
  <row Id="17581" PostTypeId="2" ParentId="17355" CreationDate="2010-11-08T04:53:21.157" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Reverse of a string recursively&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; if ( str.length() &amp;lt;= 1)  { return str; // stopping case } &#xA; else { return reverse(str.substring(1)) + str.charAt(0); // recursion   } &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-11-08T04:53:21.157" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="3" />
  <row Id="17582" PostTypeId="1" CreationDate="2010-11-08T05:01:48.433" Score="4" ViewCount="339" Body="&lt;p&gt;What do you consider a good client web framework to use on interface business application? jQuery? YUI!? Another? Some plugins useful?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The application will be use mostly internally replacing a desktop application for data entry and lots of queries/views.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-11-17T21:13:51.910" Title="What's the web framework to use on a front-end web application?" Tags="&lt;web-development&gt;&lt;recommendations&gt;&lt;web-applications&gt;&lt;jquery&gt;&lt;web-framework&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="2" />
  <row Id="17583" PostTypeId="2" ParentId="17582" CreationDate="2010-11-08T05:24:54.787" Score="3" ViewCount="" Body="&lt;p&gt;Depends on your budget and the the licensing details, but I've always been a big fan of jQuery + ExtJS. jQuery is a fantastic tool for working with the DOM and a simple AJAX Framework, and throwing ExtJS on top of jQuery beings it all together. ExtJS is the best JavaScript UI kit that I've ever worked with. It's fast, never ran into a bug (but it has its quirks), and commercial support is available - if you need it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ExtJS has a lot of features that a LOB application would benefit from, such as the &lt;a href=&quot;http://dev.sencha.com/deploy/dev/examples/desktop/desktop.html&quot; rel=&quot;nofollow&quot;&gt;desktop&lt;/a&gt; and &lt;a href=&quot;http://dev.sencha.com/deploy/dev/examples/chart/charts.html&quot; rel=&quot;nofollow&quot;&gt;charting&lt;/a&gt;. The charts are flash based but its part of the same package.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact it is commercial irks some people, but overall it's a well rounded framework that fills a lot of gaps.&lt;/p&gt;&#xA;" OwnerUserId="7226" LastActivityDate="2010-11-08T05:24:54.787" />
  <row Id="17584" PostTypeId="2" ParentId="17582" CreationDate="2010-11-08T05:26:25.690" Score="8" ViewCount="" Body="&lt;p&gt;For my money, you cant beat jQuery.  It makes working with javascript just that much easier.  The out-of-the-box GUI side of things is limited, but there's lots of 3rd party extensions for grids and such that may be of help for your views.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-08T05:26:25.690" />
  <row Id="17585" PostTypeId="2" ParentId="17498" CreationDate="2010-11-08T05:27:37.280" Score="3" ViewCount="" Body="&lt;p&gt;The standard distribution of Git for *nix systems includes &lt;code&gt;gitk&lt;/code&gt;, which is a simple but featureful GUI for Git. If the Tk UI is not to your liking, &lt;a href=&quot;http://digilander.libero.it/mcostalba/&quot; rel=&quot;nofollow&quot;&gt;Qgit&lt;/a&gt; is also fairly nice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.github.com&quot; rel=&quot;nofollow&quot;&gt;Github&lt;/a&gt; has a very good interface for browsing the repository, including a very nice tool for following forks and branches to other users' repositories.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have never personally needed nor, really, used GUI tools for Git other than that provided by Github, so I can't speak to your needs. But there are several very good tools out there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also can't speak to Windows software. I'm only familiar with the Tortoise family in passing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: I've been using Git-MinGW and TortoiseGit on Windows recently, and I have to say I'm rather impressed by TortoiseGit. It's not the most powerful UI I've seen (by far), but it helps me get the most common tasks done rather easily. I still rely heavily on the command-line, because very little of git-svn is exposed in the context menu.&lt;/p&gt;&#xA;" OwnerUserId="83" LastEditorUserId="83" LastEditorDisplayName="" LastEditDate="2011-03-18T15:58:33.987" LastActivityDate="2011-03-18T15:58:33.987" />
  <row Id="17587" PostTypeId="2" ParentId="17355" CreationDate="2010-11-08T05:36:43.817" Score="3" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;DO 10 I=1.3&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This is one of the most expensive bugs in history.  This Fortran statement assigns the float value of 1.3 to the variable named &lt;code&gt;DO10I&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The correct code - the header of the loop repeating statements until the statement labeled 10 and the loop variable &lt;code&gt;I&lt;/code&gt; accepting values 1, 2, 3:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;DO 10 I=1,3&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-08T05:36:43.817" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="2" />
  <row Id="17588" PostTypeId="2" ParentId="17557" CreationDate="2010-11-08T05:39:15.657" Score="0" ViewCount="" Body="&lt;p&gt;I would have asked about the difference between Computer Science and Software Enginnering before going to University... and taken the latter instead.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-08T05:39:15.657" CommentCount="3" />
  <row Id="17589" PostTypeId="2" ParentId="15839" CreationDate="2010-11-08T05:39:28.107" Score="2" ViewCount="" Body="&lt;p&gt;VBA&#xA;when used with Excel or Access&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It deserves its own answer, and is probably the most widely used example of a end-user programming environment on the planet.&lt;/p&gt;&#xA;" OwnerUserId="3689" LastActivityDate="2010-11-08T05:39:28.107" />
  <row Id="17590" PostTypeId="1" AcceptedAnswerId="20939" CreationDate="2010-11-08T06:02:14.637" Score="3" ViewCount="251" Body="&lt;p&gt;I have searched for many websites for a definition of &quot;task pool&quot;, but most descriptions are very vague. Anywhere I can find a precise definition of it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More details.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Are dependencies allowed in task pool?&lt;/li&gt;&#xA;&lt;li&gt;Can a running task exchange data with other running tasks? &#xA;&lt;ul&gt;&#xA;&lt;li&gt;To phrase conversely, are tasks permitted to accept data &lt;em&gt;only&lt;/em&gt; prior to start and permitted to publish results &lt;em&gt;only&lt;/em&gt; after the task has finished?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;What keeps track of the temporary resources (memory, CPU etc) that are used by tasks?&lt;/li&gt;&#xA;&lt;li&gt;How to define weights that will encourage efficient task assignment?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;For example, if one task needs to pass a lot of data to the next task, it may make sense to run the next task immediately following the first task, and as close to the first thread / CPU / machine / cluster (locality) as possible&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;What about tasks that are not known (do not exist) in the beginning, but were &quot;created&quot; later?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="620" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-11-09T05:44:54.850" LastActivityDate="2010-11-23T18:59:33.927" Title="What is a &quot;task pool&quot;?" Tags="&lt;terminology&gt;&lt;parallelism&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="17591" PostTypeId="2" ParentId="17590" CreationDate="2010-11-08T06:16:21.013" Score="3" ViewCount="" Body="&lt;p&gt;I'm pretty sure you won't find &lt;em&gt;one&lt;/em&gt; authorative answer, because it's a term that could mean different things in different contexts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of C# 4.0 and the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd460717.aspx&quot; rel=&quot;nofollow&quot;&gt;Task Parallel Library&lt;/a&gt;, a &lt;em&gt;task pool&lt;/em&gt; is a collection of pending work items that need to be run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To grossly simplify the situation(*), tasks are taken from the pool and run by various worker threads in parallel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(*) In the actual implementation, Tasks aren't taken from the pool one by one as that introduces too much overhead. Instead, they're taken in batches - and not necessarily in the order they were added to the pool.&lt;/p&gt;&#xA;" OwnerUserId="4099" LastActivityDate="2010-11-08T06:16:21.013" />
  <row Id="17592" PostTypeId="2" ParentId="15839" CreationDate="2010-11-08T06:59:16.360" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.ni.com/labview/&quot; rel=&quot;nofollow&quot;&gt;LabVIEW&lt;/a&gt;, the graphical programming language, used by many scientists and engineers (especially in biometrics).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Arguably, it showed the money path of the graphical programming for a much bigger software company.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-11-08T06:59:16.360" CommentCount="2" />
  <row Id="17593" PostTypeId="2" ParentId="4433" CreationDate="2010-11-08T07:08:16.597" Score="0" ViewCount="" Body="&lt;p&gt;He wrote the operating system DOS EqUIS (Disk Operating System - Equipment User Interface Service) a rural village in his home country.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;His operating system is so reliable that once the system is started, the disk is not necessary - the computer will continue to run for decades, monitoring the rural area's water supply, weather forecasting for the farmers, trade orders for farm produce and such.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the day the local government decommissioned the last running instance of his operating system, a small earthquake happened.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-11-08T07:08:16.597" />
  <row Id="17594" PostTypeId="2" ParentId="17566" CreationDate="2010-11-08T07:19:24.837" Score="4" ViewCount="" Body="&lt;h2&gt;Understand the meaning of every line of existing code&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;If the code was written (and had evolved) in a certain way and had been in a production system for years, one must hold some respect for the code. Questions can be asked; the logic can be challenged; but don't assume the code is wrong just because it seems so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you do plan to rewrite the code, seek advice from the senior hackers first.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-11-08T07:19:24.837" CommentCount="1" />
  <row Id="17595" PostTypeId="2" ParentId="15839" CreationDate="2010-11-08T07:46:55.487" Score="1" ViewCount="" Body="&lt;h2&gt;&lt;strong&gt;Interface Builder&lt;/strong&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Actually we had a designer working on the design of an iphone app and he could easily work on Interface Builder with very short learning curve!&lt;/p&gt;&#xA;" OwnerUserId="4843" LastActivityDate="2010-11-08T07:46:55.487" />
  <row Id="17596" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T07:49:12.847" Score="2" ViewCount="" Body="&lt;p&gt;I work as a web developer / project manager at a small company (10 people in total) and everyone, including the CEO, has to log what they do. Everything that takes more than 5 minutes has to be logged.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A typical timesheet would look like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;07:46 - 08:01 : Client A - Project B - Programming - Optional remark&lt;br&gt;&#xA;08:01 - 08:38 : Client B - Project C - Fixing - Optional remark&lt;br&gt;&#xA;08:38 - 08:46 : Client B - Project D - Project Management - Optional remark&lt;br&gt;&#xA;08:46 - 09:00 : Client A - Project B - Customer Support - Optional remark&lt;br&gt;&#xA;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since I'm used to working like this, it wouldn't be a reason to refuse a job. The CEO motivates the use of these kind of detailed timesheets as the perfect way to compare estimates to the actual time spent on a project.&lt;/p&gt;&#xA;" OwnerUserId="7289" LastActivityDate="2010-11-08T07:49:12.847" CommunityOwnedDate="2011-01-28T18:20:56.797" />
  <row Id="17597" PostTypeId="2" ParentId="17523" CreationDate="2010-11-08T08:03:16.503" Score="0" ViewCount="" Body="&lt;p&gt;If 95% of my potential users uses only windows - I don't need to write code for another platform. The exception is a server-side code, but I can write cross-platform code using cross-platform libraries and don't write any *nix-specific code.&lt;/p&gt;&#xA;" OwnerUserId="7270" LastActivityDate="2010-11-08T08:03:16.503" />
  <row Id="17598" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T08:23:45.013" Score="13" ViewCount="" Body="&lt;p&gt;We don't make programmers fill out time sheets. We do have a task management system that people don't seem to mind using, which gives us pretty much all the data we need as far as accounting goes. It isn't hard to figure out when something ran way over the expected amount of time verses someone just forgetting to mark an item complete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also becomes obvious if someone is just not producing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few queries in the bug tracker also helps to show where things might be getting clogged.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We'd rather keep programmers away from administrative tasks whenever possible and trust that people are doing their job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only time I'd find granular time keeping reasonable is if the client was being billed by the hour for something. But then, the ultimate reason for doing it becomes obvious and a little more comfortable, time has to be accurately tracked because that is how much the client will be paying. That's a little different than feeling micromanaged for the sake of administration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm all for treating adults like adults. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-08T08:23:45.013" CommunityOwnedDate="2011-01-28T18:20:56.797" CommentCount="3" />
  <row Id="17599" PostTypeId="2" ParentId="17519" CreationDate="2010-11-08T08:46:51.523" Score="5" ViewCount="" Body="&lt;p&gt;The thing to understand is that a HUGE amount of programmer time has been wasted converting between left-handed and right-handed coordinate systems, and even more programmer time has been wasted remembering which system was needed at any particular instant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of that went away when right-handed coordinate systems became the industry standard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are enough coordinate systems in common use already, without doubling the number by introducing a handedness question.  See &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0962161802&quot; rel=&quot;nofollow&quot;&gt;Minkler &amp;amp; Minkler, &quot;Aerospace Coordinate Systems and Transformations&quot;&lt;/a&gt;.  If you are in the aerospace coordinate business, doing e.g. flight simulation, you &lt;strong&gt;NEED&lt;/strong&gt; that book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My guess is that Microsoft didn't have ANYONE on the DirectX project who knew anything about the industry standards, didn't realize that there WAS an industry standard, and figured it didn't matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other possibility, that they knew right-handed systems were the industry standard, and they deliberately made DirectX left-handed, so as to make it HARD for people to convert code that used DirectX to use OpenGL instead, does not bear consideration.  Were I to discover that this was indeed the case, I would find it necessary to embark on a new and presumably short-lived career as an axe-murderer in Redmond.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastEditorUserId="3852" LastEditorDisplayName="" LastEditDate="2010-11-09T13:14:23.263" LastActivityDate="2010-11-09T13:14:23.263" CommentCount="7" />
  <row Id="17600" PostTypeId="1" AcceptedAnswerId="17603" CreationDate="2010-11-08T08:55:18.023" Score="4" ViewCount="284" Body="&lt;p&gt;What software do you use to track time spent on a project?&lt;/p&gt;&#xA;" OwnerUserId="1318" LastActivityDate="2010-11-08T19:12:48.373" Title="What software do you use to track time spent on a project?" Tags="&lt;productivity&gt;&lt;time-management&gt;" AnswerCount="7" FavoriteCount="2" />
  <row Id="17601" PostTypeId="2" ParentId="6847" CreationDate="2010-11-08T09:14:55.263" Score="1" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://boo.codehaus.org/&quot; rel=&quot;nofollow&quot;&gt;Boo&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://boo.codehaus.org/Syntactic+Macros&quot; rel=&quot;nofollow&quot;&gt;Macros&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://boo.codehaus.org/Type+Inference&quot; rel=&quot;nofollow&quot;&gt;Type inference&lt;/a&gt; (more powerful than C#)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://boo.codehaus.org/Duck+Typing&quot; rel=&quot;nofollow&quot;&gt;Optional duck typing&lt;/a&gt; (when turned off it's fully statically typed)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://boo.codehaus.org/Interactive+Interpreter&quot; rel=&quot;nofollow&quot;&gt;REPL&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://boo.codehaus.org/String+Interpolation&quot; rel=&quot;nofollow&quot;&gt;String interpolation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://boo.codehaus.org/Slicing&quot; rel=&quot;nofollow&quot;&gt;Pythonic slicing&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://boo.codehaus.org/Generator+Expressions&quot; rel=&quot;nofollow&quot;&gt;List comprehensions&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Extensible, configurable compiler&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2528" LastEditorUserId="4882" LastEditorDisplayName="" LastEditDate="2010-11-17T03:02:59.537" LastActivityDate="2010-11-17T03:02:59.537" CommunityOwnedDate="2010-11-08T09:14:55.263" />
  <row Id="17602" PostTypeId="2" ParentId="17600" CreationDate="2010-11-08T09:16:29.850" Score="1" ViewCount="" Body="&lt;p&gt;When I was freelancing, I used Freshbooks, an accounting web app that has a handy pop out timer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The trick is, remembering to start and stop the timer appropriately. I was longing for something that integrated directly with KDE/Multiple desktop (think one project open per desktop, automatically tracking time spent on each one), but never found anything that managed it.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-08T09:16:29.850" CommentCount="2" />
  <row Id="17603" PostTypeId="2" ParentId="17600" CreationDate="2010-11-08T09:23:19.503" Score="5" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;https://www.toggl.com/public/tour&quot; rel=&quot;nofollow&quot;&gt;Toggl&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I use this all the time and I like it.  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;web based so it will stay synced between multiple computers&lt;/li&gt;&#xA;&lt;li&gt;decent interface&lt;/li&gt;&#xA;&lt;li&gt;nice api &lt;/li&gt;&#xA;&lt;li&gt;integrates with GMail, iGoogle or anything you can put an iframe into. &lt;/li&gt;&#xA;&lt;li&gt;integrates into Basecamp and FreshBooks&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1013" LastEditorUserId="1013" LastEditorDisplayName="" LastEditDate="2010-11-08T09:38:16.410" LastActivityDate="2010-11-08T09:38:16.410" CommentCount="4" />
  <row Id="17604" PostTypeId="2" ParentId="2214" CreationDate="2010-11-08T09:29:07.357" Score="0" ViewCount="" Body="&lt;p&gt;Tell everybody I know and absorb congratulations and pats on the backs to feed my ego.&lt;/p&gt;&#xA;" OwnerUserId="354" LastActivityDate="2010-11-08T09:29:07.357" CommunityOwnedDate="2011-03-31T09:31:23.023" />
  <row Id="17605" PostTypeId="2" ParentId="17600" CreationDate="2010-11-08T09:32:51.930" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.redmine.org/&quot; rel=&quot;nofollow&quot;&gt;Redmine&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-11-08T09:32:51.930" />
  <row Id="17606" PostTypeId="1" AcceptedAnswerId="17612" CreationDate="2010-11-08T09:39:50.073" Score="8" ViewCount="509" Body="&lt;p&gt;There are online services such as &lt;a href=&quot;http://www.ikmnet.com/&quot; rel=&quot;nofollow&quot;&gt;IKM&lt;/a&gt; that offer skills tests in many areas, including programming.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Would you use these kind of tests when hiring for a senior developer position?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;What about just for objectively benchmarking candidates before calling them for an interview? Would you use it as a step after short-listing candidates after interviews?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this approach more suitable in some situations compared to others? Have you personally used this kind of service or know someone who has?&lt;/p&gt;&#xA;" OwnerUserId="3414" LastEditorUserId="1996" LastEditorDisplayName="" LastEditDate="2011-04-01T07:44:51.593" LastActivityDate="2011-04-01T07:44:51.593" Title="Will You Use an Online Technical Skills Test to Hire a Senior Developer?" Tags="&lt;hiring&gt;&lt;job-interview&gt;" AnswerCount="6" CommentCount="3" />
  <row Id="17607" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T09:50:23.150" Score="1" ViewCount="" Body="&lt;p&gt;Yes. But at a fairly coarse level for management reports weekly. This gets reported by the PMO all the way up from senior management to director level at an appropriate granularity. For individual projects it is at project task level for tracking progress but that doesn't feed into the timesheet but more for project management.&lt;/p&gt;&#xA;" OwnerUserId="3414" LastActivityDate="2010-11-08T09:50:23.150" CommunityOwnedDate="2011-01-28T18:20:56.797" />
  <row Id="17608" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T09:55:34.713" Score="51" ViewCount="" Body="&lt;p&gt;As a manager yes I get the team to do timesheets.  Here's why and a few notes on how they're implemented to, hopefully, minimise disruption:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) As a business much of our work is done on a time and materials basis.  Without timesheets that obviously doesn't work.  We have 10 clients and a range of different projects and products but we're not a big enough to devote people to clients or projects full time which means that we have to have some way of working out how long things took.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if this weren't true to manage a team you still need to understand what takes time and how much. Think that old app the mailroom guys use is taking more time to support than it's worth? What about when someone asks how much work went into feature X on the new website which doubled sales? Or when your developers say you should recruit someone else and you get asked to breakdown what they do to help justify it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Categories exist for all reasonable &quot;non-work&quot; including mentoring, general technical discussions, support, meetings and so on.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Bug fixing - we record time against a whole project rather than bug by bug.  This tends to make things a lot easier - spend the day fixing bugs, 7.5 hours bug fixing goes against the project and you're done.  No need to try and work out how it was divided between the 13 bugs you fixed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) When we implemented them I promised that no-one would be penalised / rewarded for what was on their timesheet so long as it was accurate.  So there is no input into reviews based on profitability or utilisation or anything else.  This means that there is no incentive to distort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) By accurate I mean roughly.  People really shouldn't have to spend too much time worrying about what happens when they make a coffee or go to the toilet.  Basically if you make a note on a pad of each thing you worked on during the day, then at the end of the day roughly break it down across the hours you worked and that's it.  If shouldn't take more than 5 minutes max.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;6) If I don't like what I see - for instance someone has spent too long on task X - the investigation is into what we can do to make X faster, rather than anything to do with the timesheet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;7) Knowing how long you spent doing something is a great way of improving estimates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The anti-timesheet feeling among many programmers seems to come from two things - (1) badly implemented timesheets which take too long to complete, demand more information than is really needed and encourage lying and distortion so the information is worthless anyway, and (2) a feeling that every single thing that slightly inconveniences a developer should be done away with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first one is fair but you should blame the implementation and the rules someone has attached, not the whole idea of timesheets which &lt;em&gt;can&lt;/em&gt; be done in ways that don't have these issues.  The second one is just unrealistic - there are many parties involved in projects, both inside and outside the company, each of whom have many demands on them.  Yes we want to do everything we can to make programmers productive, but it has to be balanced with the needs of other parties.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-10T21:52:40.507" LastActivityDate="2010-11-10T21:52:40.507" CommunityOwnedDate="2011-01-28T18:20:56.797" CommentCount="6" />
  <row Id="17609" PostTypeId="2" ParentId="2214" CreationDate="2010-11-08T09:57:09.940" Score="1" ViewCount="" Body="&lt;p&gt;I make sure family time usurps work time for a little while, as it is usually the other way around during a major project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also try to get some time alone with a good lager and some of my hobby projects that have been collecting dust.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also make it a point  to &lt;strong&gt;&lt;em&gt;eat regularly&lt;/em&gt;&lt;/strong&gt;, as I usually don't when working like crazy (ramen for breakfast, anyone?)&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-08T09:57:09.940" CommunityOwnedDate="2011-03-31T09:31:23.023" />
  <row Id="17611" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T10:00:29.177" Score="1" ViewCount="" Body="&lt;p&gt;The only time I didn't resent having to fill in timesheets was when I worked in a team using XP. I suppose that was because &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;those cards were filled in as part of the stand-up meeting every morning (which was the first time I could actually see meetings having a high result/time ration)&lt;/li&gt;&#xA;&lt;li&gt;I could actually see the results of the effort being used (for calculating the time needed to implement future tasks)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;OTOH, I have been using a home-made Excel sheet to track my overtime state (and what I've done each day) for more than ten years. So currently I usually fill in the timesheet on Friday before I leave the company, copying from my Excel sheet. &lt;/p&gt;&#xA;" OwnerUserId="1512" LastActivityDate="2010-11-08T10:00:29.177" CommunityOwnedDate="2011-01-28T18:20:56.797" />
  <row Id="17612" PostTypeId="2" ParentId="17606" CreationDate="2010-11-08T10:00:32.967" Score="15" ViewCount="" Body="&lt;p&gt;To be blunt:  No, No, No, No and No!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get the candidate in to do some coding with you, it's the only way you'll know how they think their way through problems and how they might fit into your team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an aside I'd try to avoid recruiting via the CV lottery technique :-), instead find good people through word of mouth, conferences, technical community meetups etc.  Avoids the sharky recruitment agents as well.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-08T10:00:32.967" CommentCount="3" />
  <row Id="17613" PostTypeId="2" ParentId="17600" CreationDate="2010-11-08T10:03:25.197" Score="3" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.atlassian.com/software/jira/&quot; rel=&quot;nofollow&quot;&gt;JIRA&lt;/a&gt; and its associated Agile Greenhopper tool&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find it's brilliant as an electronic Kanban task/planning board and it's various burn down charts etc seem more than adequate for time keeping/reporting.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-08T10:03:25.197" />
  <row Id="17614" PostTypeId="2" ParentId="4274" CreationDate="2010-11-08T10:15:57.557" Score="0" ViewCount="" Body="&lt;p&gt;It can be interesting to do as a hobby and you can gain some good insights. You might even decide that you like the &quot;new way&quot; of doing things better than the old way. However, from personal experience I would caution against taking a job change to work on a new language. Not to say that it won't work for everyone, but it certainly didn't for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been working in Objective-C on NeXT/Mac/iOS for countless aeons, and aside from a little dabbling - in numerous languages but mainly Python and Java - that's been my bread and butter. I decided it would be worth diving into Java more fully to see how it differed and maybe gain some knowledge I could use in ObjC, and got a job as a Java engineer. Fast-forward two months and I had already quit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing is, it can be hard to find time (or I find it hard, anyway) to work on programming projects outside work, because that's supposed to be unwinding time. If you are self-employed or can agree it with your manager, setting aside some research time &lt;em&gt;during your working hours&lt;/em&gt; can be the best way to go.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-11-08T10:15:57.557" />
  <row Id="17615" PostTypeId="2" ParentId="16869" CreationDate="2010-11-08T10:22:08.823" Score="0" ViewCount="" Body="&lt;p&gt;From my experience in working at in house IT at large companies  (banks, insurance etc.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;no open source&quot;, - this is not in anyway insane policy. Depending on the OSS license this kind be quite valid. Saving money (up to a reasonable limit) is not usually a big problem as every project has a budget and as long as you can fit in it is OK. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;no installing software without permission&quot; - this is very valid from infrastructure support, security and legal perspective. e.g. Installing wireshark can lead to dismissal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;not upgrading software until it's about to lose support&quot; - depends on which software. If it still using VS 2003/2005 for development team yes. If you are talking about upgrading 10000 desktops from XP to windows 7 and office 2010 then not. Those needs business justification.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;no visiting blogs&quot;? - yes this is a bad policy.&lt;/p&gt;&#xA;" OwnerUserId="3414" LastActivityDate="2010-11-08T10:22:08.823" CommentCount="3" />
  <row Id="17616" PostTypeId="2" ParentId="17600" CreationDate="2010-11-08T10:25:23.883" Score="1" ViewCount="" Body="&lt;p&gt;Fortunately, Excel or OpenOffice Calc is all I need. That's because I'm not working on many projects in parallel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my previous job, we were using a in-house developed tool, sort of like Jira, to keep track of every single minute spent on one of several projects I had to work on concurrently. It's hard to say what was more annoying, the micromanagement that came with the tool (5 minutes spent on stackexchange?!?) or the fact that I couldn't focus on one project for at least a few days without getting interrupted by urgent tasks for other projects.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-08T10:25:23.883" />
  <row Id="17617" PostTypeId="1" CreationDate="2010-11-08T10:25:43.613" Score="6" ViewCount="577" Body="&lt;p&gt;For the last 6 months I happily have a job as part time programmer. I usually code at home on the sofa. My partner complains about that I have started swearing while programming. Usual causes are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Deadline approaching and I am not going to meet it.&lt;/li&gt;&#xA;&lt;li&gt;Very simple bug is not going away after the sixth attempt to squash it.&#xA;So what are your personal experiences? How bad is the problem in companies where programmers share the same room? What, if any, measures were taken by you or the management to address it?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7293" LastEditorUserId="679" LastEditorDisplayName="" LastEditDate="2010-11-08T16:25:47.850" LastActivityDate="2010-11-08T16:25:47.850" ClosedDate="2010-11-08T16:42:52.320" Title="Are programmers swearing out loud more? Is there a remedy?" Tags="&lt;behavior&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="1" />
  <row Id="17618" PostTypeId="2" ParentId="17582" CreationDate="2010-11-08T10:29:24.083" Score="3" ViewCount="" Body="&lt;p&gt;Here are some useful libraries:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jquery.com&quot; rel=&quot;nofollow&quot;&gt;jQuery&lt;/a&gt; and plugins&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jqueryui.com/&quot; rel=&quot;nofollow&quot;&gt;jQuery UI&lt;/a&gt;, a lot of things you may thought of implementing yourself&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://documentcloud.github.com/underscore/&quot; rel=&quot;nofollow&quot;&gt;Underscore.js&lt;/a&gt;, implements the language core that's missing in JS 1.5&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://requirejs.org/&quot; rel=&quot;nofollow&quot;&gt;RequireJs&lt;/a&gt;, a library management system for JS&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There's also &lt;a href=&quot;http://en.wikipedia.org/wiki/Dojo_Toolkit&quot; rel=&quot;nofollow&quot;&gt;Dojo&lt;/a&gt; framework there, which basically makes you program in JS like it's a desktop GUI application, but I can't say much about it. Watch video presentations on it.&lt;/p&gt;&#xA;" OwnerUserId="5545" LastActivityDate="2010-11-08T10:29:24.083" CommentCount="1" />
  <row Id="17620" PostTypeId="2" ParentId="17557" CreationDate="2010-11-08T10:42:28.407" Score="5" ViewCount="" Body="&lt;p&gt;Think more. Type less.&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-08T10:42:28.407" CommentCount="2" />
  <row Id="17621" PostTypeId="2" ParentId="17617" CreationDate="2010-11-08T10:55:01.260" Score="15" ViewCount="" Body="&lt;p&gt;First, watch your speech when you discuss programming with co-workers. If you notice yourself speaking like &quot;take this crap and stuff it there, and you'll get this shit&quot;, &lt;em&gt;your speech is not clear even to yourself&lt;/em&gt;. Don't speak like this. Try avoiding even words like &quot;stuff&quot; or &quot;thing&quot;. Say &quot;returns&quot; when you mean returns, not &quot;outputs&quot; or &quot;gives&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know about your cultural environment, but in mine, swearing in each second word is a sign that you're from underclasses, like when dogs sniff each other's asses. :) Swearing is meant for strong anger, so if you swear from time to time without feeling a strong anger, others won't appreciate that, rather they'll think of you as a bad-mannered person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, there's a psychological issue: if you feel anger from minor inconveniencies, like unfixable bugs, you'd better think what you do wrong in work and how to approach work emotionally. I don't think that the anger you get from a bug should be &quot;let out&quot;, like screaming or smashing things. :) It's addictive, don't try that, but neither try to suppress (or store) the anger.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About 10 years ago I also felt a lot of anger because of bugs. Looking back, the real reason was that I couldn't locate them and wasted time fiddling with wrong parts of the applications, and, of course, feeling anger.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as groups of programmers are concerned, once I convinced management to set a rule that if you're late, you put about $2-5 in a box. For those money we bought sweets and tea. I told this to my friends, and they decided to use this for swearing in the workplace. Of cource, there had to be a bold person to propose and enforce the rule. The first month, they got enough money for a paintball match. :) If this doesn't work, at least you can demand the others to not swear to you when they speak of working matters. It's about how you strong your personal boundary is: &quot;don't swear to me&quot;, &quot;maaaan, I can't&quot;/&quot;are you a girl?&quot; - &quot;just don't swear, say that again in clear _ _ _ _ _ _ _ language.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. the deadlines and working tension also contribute to this, but I don't think it's the major factor: once I've seen a team of overstressed programmers who didn't swear and their relaxed management who swore like teenage chavs.&lt;/p&gt;&#xA;" OwnerUserId="5545" LastEditorUserId="5545" LastEditorDisplayName="" LastEditDate="2010-11-08T11:21:42.287" LastActivityDate="2010-11-08T11:21:42.287" CommentCount="3" />
  <row Id="17622" PostTypeId="2" ParentId="17557" CreationDate="2010-11-08T11:02:22.377" Score="2" ViewCount="" Body="&lt;p&gt;I would sit straight. &#xA;&lt;img src=&quot;http://i.imgur.com/n8yJu.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2010-11-08T11:40:13.790" LastActivityDate="2010-11-08T11:40:13.790" CommentCount="1" />
  <row Id="17623" PostTypeId="2" ParentId="17617" CreationDate="2010-11-08T11:26:07.063" Score="3" ViewCount="" Body="&lt;p&gt;If you're working on anything significant and not the SOS, there are may peaks and valleys. My valleys are filled with outbursts containing profanity and occasional desk pounding. The peaks may contain profanity, &quot;it's about $%^&amp;amp;*!, time&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I recall the days helping my dad in the garage (he use to fix things), this is nothing new.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-08T11:26:07.063" />
  <row Id="17624" PostTypeId="1" CreationDate="2010-11-08T11:29:12.997" Score="0" ViewCount="81" Body="&lt;p&gt;I was thinking about implementing a chronologically ordered time line for one of the projects I'm developing. It has more or less like that of the one implemented in plurk.com.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe I should be implementing these kind of functionality using JavaScript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I'm right in that regards should I be using any libraries or do usual plain JavaScript? &#xA;If I were to use any libraries I need to learn it from ground zero. So in that regards all a re same to me. And in my little research jQuery and Sencha are looking good to me. What are your advices on this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[Edit: Also good documentation and books are a plus. I feel ExtJS (Sencha) lacks somewhere in this regards)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My application is primarily written in Django.&lt;/p&gt;&#xA;" OwnerUserId="6693" LastEditorUserId="6693" LastEditorDisplayName="" LastEditDate="2010-11-08T11:56:49.157" LastActivityDate="2010-11-08T11:56:49.157" ClosedDate="2010-11-08T22:35:14.287" Title="What is the best JavaScript library for chronologically arranged timelines?" Tags="&lt;libraries&gt;&lt;javascript&gt;" CommentCount="5" />
  <row Id="17625" PostTypeId="2" ParentId="17617" CreationDate="2010-11-08T11:42:09.793" Score="3" ViewCount="" Body="&lt;p&gt;From my experience, programmers are no more prone to swearing than anyone else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They might be a bit more prone to stress or annoyance, which in turn causes them to curse, but that's not a direct link with being a programmer. (It's more a bad work environment/culture thing.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;When I'm programming on personal stuff, I rarely swear because there's no stress and I simply don't get those annoying to squish bugs, since the code is done properly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I'm programming at work, I frequently swear, because I see a lot of &lt;em&gt;really&lt;/em&gt; stupid things, and often get tripped up by overly tangled badly coupled crap code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it's almost always in my head or under my breath - which is simple social awareness; people naturally act differently in different groups. There are a couple of people with less self-control who swear more, but that's their character not an aspect of them being programmers.&lt;br&gt;&#xA;(And there are also non-programmers here that swear out-loud, and some you can tell would like to.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;With regards to remedy... well, I can only suggest paying more attention to what you're saying, and making an extra effort not to swear around your partner. I can't suggest anything in particular which might help with that though - not unless there's a port into your brain so I can re-program you? ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other solution is to remove the cause. If you're constantly failing to squish simple bugs, maybe you should invest some time in training/tutoring to improve your skills, so that you succeed in squashing the bugs. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The type of training that might help will depend on the type of bugs and reason for failure - can't really suggest anything without more information there, other than maybe investigating [better] debugging tools for your language.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-11-08T11:42:09.793" CommentCount="3" />
  <row Id="17626" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T11:50:09.503" Score="2" ViewCount="" Body="&lt;p&gt;I don't do a time sheet. There are specific projects where I track estimates against actual time (I don't use any kind of timer.). This isn't required, but I feel a need to work on my estimation ability. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-08T11:50:09.503" CommunityOwnedDate="2011-01-28T18:20:56.797" />
  <row Id="17628" PostTypeId="2" ParentId="17617" CreationDate="2010-11-08T11:55:21.777" Score="2" ViewCount="" Body="&lt;p&gt;We keep out mouths shut till after 5:30pm. Then it is considered &quot;after hours&quot; and we can turn some music on and free our lips. Relaxing the environment is better then relaxing a deadline.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-08T11:55:21.777" CommentCount="2" />
  <row Id="17629" PostTypeId="2" ParentId="17557" CreationDate="2010-11-08T12:00:13.740" Score="0" ViewCount="" Body="&lt;p&gt;I would have started to read (programming) books much earlier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's so helpful to gather knowledge, ideas, different points of views and theoric experience.&#xA;When you do practice after reading, once you hit a subject that was in an interesting programming book, you understand it faster than having to analyse the problem/subject from scratch.&#xA;It's valid for non-programming books because all experiences - even fictive- participate to enlarge your p...err no, to enlarge your point of view of the world and help to think more out of the box.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-11-08T12:00:13.740" />
  <row Id="17630" PostTypeId="2" ParentId="17557" CreationDate="2010-11-08T12:05:19.643" Score="2" ViewCount="" Body="&lt;p&gt;Wouldn't have been so desperate to land my first job that I forgot my love for Java and joined a PHP job. For a last 2 years I'm trying for a career change but isn't able to do it yet. I would have waited a bit longer.&lt;/p&gt;&#xA;" OwnerUserId="6693" LastActivityDate="2010-11-08T12:05:19.643" CommentCount="1" />
  <row Id="17631" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T12:06:04.547" Score="7" ViewCount="" Body="&lt;p&gt;Unless you are charging clients by the hour, or unless you are a contractor paid by the hour, I wouldn't expect to be filling in timesheets. In my experience, they are counter-productive - yes, you need to generally keep track of the amount of resource going into projects, but that can be approximated monthly (&quot;10 days on Project X and 9 days on Project Y etc&quot;). The benefits of anything more granular are often outweighed by the cost of recording them, and if they can be used as a stick to beat the staff with, the staff will simply record what is acceptable rather than what is accurate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other unanticipated downside to businesses is that if you start monitoring staff, you might find that you start recording just how much extra the staff are doing! If you are paid for 40 hrs and are tracked for 40hrs, come 40hrs there is an incredible incentive to just go home. Staff will often stop doing that little bit extra that can so often make the difference.&lt;/p&gt;&#xA;" OwnerUserId="3545" LastEditorUserId="3545" LastEditorDisplayName="" LastEditDate="2010-11-08T14:30:16.123" LastActivityDate="2010-11-08T14:30:16.123" CommunityOwnedDate="2011-01-28T18:20:56.797" CommentCount="1" />
  <row Id="17632" PostTypeId="1" AcceptedAnswerId="17633" CreationDate="2010-11-08T12:12:06.373" Score="6" ViewCount="518" Body="&lt;p&gt;I'm wondering if the term Hacker means different things to different people.  When most people hear the word hacker what are the first things that come to mind?&lt;/p&gt;&#xA;" OwnerUserId="6801" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-01-22T16:58:34.613" LastActivityDate="2011-01-22T19:49:39.513" Title="What is the common definition of a Hacker?" Tags="&lt;terminology&gt;&lt;hacking&gt;&lt;hacks&gt;" AnswerCount="15" CommentCount="6" FavoriteCount="1" />
  <row Id="17633" PostTypeId="2" ParentId="17632" CreationDate="2010-11-08T12:17:31.947" Score="14" ViewCount="" Body="&lt;p&gt;Someone who has the ability to change the functionality of a program, device, or methodology to perform a task or function that is different than it's original design in the effort to improve the program, device, or methodology, or to solve a problem with what is available.&lt;/p&gt;&#xA;" OwnerUserId="4056" LastActivityDate="2010-11-08T12:17:31.947" CommentCount="6" />
  <row Id="17634" PostTypeId="2" ParentId="17632" CreationDate="2010-11-08T12:17:38.490" Score="2" ViewCount="" Body="&lt;p&gt;For me it's the attitude.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The yearning to learn more. The openness to help others. And being passionate about what they love.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He/She doesn't need to be a guru yet. But we are sure with the above attitude soon they would be attaining that status.&lt;/p&gt;&#xA;" OwnerUserId="6693" LastActivityDate="2010-11-08T12:17:38.490" CommentCount="2" />
  <row Id="17635" PostTypeId="2" ParentId="1015" CreationDate="2010-11-08T12:22:49.680" Score="1" ViewCount="" Body="&lt;p&gt;I use the Windows version of Keepass, with a reasonable password and key file. I store the file in a 'secure' FTP location that is accessible from anywhere, and I have a obfuscated and encrypted copy of the key file elsewhere on the web, in case I need to access it from a new location. I also have it on USB stick (minus the key file).&lt;/p&gt;&#xA;" OwnerUserId="3545" LastActivityDate="2010-11-08T12:22:49.680" />
  <row Id="17636" PostTypeId="2" ParentId="16697" CreationDate="2010-11-08T12:26:09.150" Score="3" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://wordpress.org/extend/plugins/syntaxhighlighter/&quot; rel=&quot;nofollow&quot;&gt;SyntaxHighlighter Evolved&lt;/a&gt; on my blog, and I'm happy with it. I don; think the template will be so much of a problem.&lt;/p&gt;&#xA;" OwnerUserId="6693" LastActivityDate="2010-11-08T12:26:09.150" CommentCount="1" />
  <row Id="17637" PostTypeId="2" ParentId="17632" CreationDate="2010-11-08T12:36:33.427" Score="2" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://en.wikipedia.org/wiki/Hacker_Emblem&quot; rel=&quot;nofollow&quot;&gt;glider&lt;/a&gt; and &lt;a href=&quot;http://thereifixedit.failblog.org/page/156/&quot; rel=&quot;nofollow&quot;&gt;thereifixedit&lt;/a&gt;. It's people who're playing the actual game of life in any possible way except by the book :)&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-11-08T12:36:33.427" CommentCount="3" />
  <row Id="17638" PostTypeId="2" ParentId="17443" CreationDate="2010-11-08T12:37:01.493" Score="1" ViewCount="" Body="&lt;p&gt;There are lots of features of 'good' code, but the most important, IMHO, are readability and maintainability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your code &lt;em&gt;will&lt;/em&gt; contain bugs, will &lt;em&gt;probably&lt;/em&gt; be extended and re-used, and &lt;em&gt;ought&lt;/em&gt; to be re-factored at some point - even if it is you re-visiting it, the chances are that you won't have a clue what the hell you did in the first place, to do yourself a favour and don't put any barriers in the way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, use that complex-yet-uber-efficient algorithm,  but make sure you spend a little extra time documenting it, but otherwise make your code clear and consistent.&lt;/p&gt;&#xA;" OwnerUserId="3545" LastEditorUserId="3545" LastEditorDisplayName="" LastEditDate="2010-11-08T14:29:36.747" LastActivityDate="2010-11-08T14:29:36.747" />
  <row Id="17639" PostTypeId="1" CreationDate="2010-11-08T12:44:18.850" Score="7" ViewCount="234" Body="&lt;p&gt;Theres talk about what syntax and feature you like in a programming language; i'll now ask what core principles or feature would you like in a library in your favorite (or any) language? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example is having adding list += anotherList valid as oppose to only allowing list += listElement (although some may see this as a bad idea)&lt;/p&gt;&#xA;" OwnerUserId="2528" LastEditorUserId="1468" LastEditorDisplayName="" LastEditDate="2010-11-08T19:37:35.680" LastActivityDate="2010-11-09T08:13:45.027" Title="What core principles would you want in a library?" Tags="&lt;design&gt;&lt;libraries&gt;&lt;api&gt;&lt;interface&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="3" />
  <row Id="17640" PostTypeId="2" ParentId="17639" CreationDate="2010-11-08T13:01:13.453" Score="4" ViewCount="" Body="&lt;p&gt;I'm more concerned about the soft features of an API.  That is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Simplicity&lt;/li&gt;&#xA;&lt;li&gt;Consistency&lt;/li&gt;&#xA;&lt;li&gt;Elegance&lt;/li&gt;&#xA;&lt;li&gt;Intuitive&lt;/li&gt;&#xA;&lt;li&gt;It just works&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I could right a book on how those apply or would get implemented, but suffice to say unless a user of the API can wrap their head around how to use it effectively, it's of limited use.  Simplicity does not mean simplisticness, just as elegance does not mean onate.  It simply means that it is just perfect for the job.  The less someone has to think about &lt;em&gt;how&lt;/em&gt; to use the API, the more they can just use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How these look depend on the lnaguage, purpose and target audience of the API.  The very last criteria boils down to the principle of least surprise.  No errors where you didn't expect them.  Any reasonable interpretation of the API will get you the results you want.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-11-08T13:01:13.453" CommentCount="3" />
  <row Id="17641" PostTypeId="2" ParentId="17632" CreationDate="2010-11-08T13:05:51.050" Score="10" ViewCount="" Body="&lt;p&gt;Someone who is considered hacker by other hackers.&lt;/p&gt;&#xA;" OwnerUserId="2051" LastActivityDate="2010-11-08T13:05:51.050" CommentCount="12" />
  <row Id="17642" PostTypeId="2" ParentId="17632" CreationDate="2010-11-08T13:10:22.823" Score="5" ViewCount="" Body="&lt;p&gt;In the programming sense, someone who is willing to go deep into the complexity of the system that they use to gain a greater understanding. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the life sense, someone who approaches life from an unexpected and usually creative angle to achieve their objectives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the spiritual sense, someone who is taking a practical approach to enlightenment.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-08T13:10:22.823" CommentCount="2" />
  <row Id="17643" PostTypeId="2" ParentId="17557" CreationDate="2010-11-08T13:12:35.677" Score="3" ViewCount="" Body="&lt;p&gt;I would have started using &lt;strong&gt;version control&lt;/strong&gt; a lot earlier. So many wasted hours...&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-08T13:12:35.677" />
  <row Id="17644" PostTypeId="2" ParentId="17639" CreationDate="2010-11-08T13:15:56.327" Score="6" ViewCount="" Body="&lt;p&gt;I would follow the best practices you can find in &lt;a href=&quot;http://www.infoq.com/presentations/effective-api-design&quot; rel=&quot;nofollow&quot;&gt;How to design a good API and why it matters by Joshua Blosh (Google)&lt;/a&gt;. The PDF version can be found &lt;a href=&quot;http://lcsd05.cs.tamu.edu/slides/keynote.pdf&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;According to him, characteristics of a good API are :&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Easy to learn&lt;br&gt;&#xA;  Easy to use, even without documentation&lt;br&gt;&#xA;  Hard to misuse&lt;br&gt;&#xA;  Easy to read and maintain code that uses it&lt;br&gt;&#xA;  Sufficiently powerful to satisfy requirements&lt;br&gt;&#xA;  Easy to extend&lt;br&gt;&#xA;  Appropriate to audience&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2365" LastEditorUserId="2365" LastEditorDisplayName="" LastEditDate="2010-11-09T08:13:45.027" LastActivityDate="2010-11-09T08:13:45.027" CommentCount="2" />
  <row Id="17645" PostTypeId="1" AcceptedAnswerId="17647" CreationDate="2010-11-08T13:25:39.480" Score="0" ViewCount="84" Body="&lt;p&gt;I was trying to parse a java properties file to avoid some Properties loading pitfalls (non ordering, loss of comments).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Property are of the form 'key = value' where the value can span on multiple lines using the \ special char)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have tried to get the right regexp to parse the properties but after I gave up after fighting for more than one hour. (a version for groovy found &lt;a href=&quot;http://ndpar.blogspot.com/2009/10/parsing-files-using-groovy-regex.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;:&lt;br&gt;&#xA; &lt;code&gt;~ /^([^#=].*?)=(.+)$/)&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I manage to write the same thing using a single loop and very trivial code in 5 minutes...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm an average programmer when dealing with regexp: I have to re-read the doc each time I want to use them and advanced feature are still obscure for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often when dealing with regexp I have the feeling that some very skilled developers can produce/decipher very elaborated regexp in seconds, but others have trouble to handle them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Question: should I take time to deeply learn regexp and produce cryptic and powerful parser, or should I keep using some ugly easy to debug/understand parsing algo ?&lt;/p&gt;&#xA;" OwnerUserId="4989" LastActivityDate="2010-11-08T13:50:19.387" Title="Regexp or custom parsing algo ?" Tags="&lt;best-practices&gt;&lt;regular-expressions&gt;&lt;regex&gt;" AnswerCount="2" />
  <row Id="17646" PostTypeId="2" ParentId="17315" CreationDate="2010-11-08T13:25:44.787" Score="2" ViewCount="" Body="&lt;p&gt;Languages aren't the issue. You can learn an entire language in a couple of days. What takes longer to absorb are the conventions, APIs and various third-party frameworks. When people ask for five years of X, they don't care about the language, they want someone that has a lot of experience solving problems in and with that language so that they don't have to pay for any of the learning curve.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-08T13:25:44.787" CommentCount="1" />
  <row Id="17647" PostTypeId="2" ParentId="17645" CreationDate="2010-11-08T13:28:25.457" Score="1" ViewCount="" Body="&lt;p&gt;For this specific task (parsing java properties file), first look for an existing solution (sounds like someone would have solved this same problem already), and if you can't find one, it's not necessarily bad to create a non-regex parser to do it with - you use the tools you know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do go the regex route, do not be compelled to use a single regex, when two (or more) will often give a much simpler and faster result.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;should I take time to deeply learn regexp&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;YES!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a lot of times when knowing regular expressions can greatly speed up your programming - I probably use more regex in the tasks of creating &amp;amp; maintaining code than in actuall code itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But perhaps the main reasons for learning regex deeply is so that you can quickly say &quot;this is a job for regex&quot; &lt;em&gt;or&lt;/em&gt; &quot;regex is the wrong tool here&quot; - otherwise you can waste a lot of time trying to get regex to do a task it &lt;a href=&quot;http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags&quot;&gt;just isn't suited for&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it's important to also state that &lt;a href=&quot;http://programmers.stackexchange.com/questions/10998/what-does-the-jwz-regex-quote-mean/11001#11001&quot;&gt;Regex does not need to be crypic&lt;/a&gt; - you can write complex regex and format it nicely so that it is just as understandable as any other code.&lt;/p&gt;&#xA;" OwnerUserId="89" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-08T13:36:24.187" LastActivityDate="2010-11-08T13:36:24.187" CommentCount="1" />
  <row Id="17648" PostTypeId="2" ParentId="17645" CreationDate="2010-11-08T13:30:01.830" Score="1" ViewCount="" Body="&lt;p&gt;I'm like you, I use regexps so rarely that I have to look in a reference for all but the most trivial examples. I've worked with a couple of developers who were pretty fluent with them though and they could pretty surprising things very quickly. I think it is something that once you know more about it, you will see more and more ways to use it and the investment will pay off. Also it looks like a good way to stretch your mind.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-08T13:30:01.830" />
  <row Id="17649" PostTypeId="2" ParentId="17557" CreationDate="2010-11-08T13:30:22.327" Score="0" ViewCount="" Body="&lt;p&gt;I would have taken a few CS classes as an undergrad.  My degree is in Biomedical Engineering and my programming knowledge is mostly self-taught.  I feel like I've learned how to writing code pretty well, but I don't know so much about the theoretical underpinnings of it.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-08T13:30:22.327" />
  <row Id="17650" PostTypeId="1" CreationDate="2010-11-08T13:32:27.390" Score="4" ViewCount="642" Body="&lt;p&gt;I was at work last week and one of our &quot;lead developers&quot; (who said he has programmed C++ before, but I don't believe him) was talking about C++ and how our team of developers who only know PHP would not have a hard time at all learning C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My first reaction was pure shock and then I laughed at his comment. He gave me a bad look and i asked if he was serious. Me personally I program a lot of C and C++ for mostly school projects and coding competitions. I don't think it's at all like PHP. I asked him why they were the same and he could not give me an answer (he doesn't know C++ at all I was thinking). Then I said &quot;OK, yeah they both use curly braces and have conditional statements. But C++ you have to worry about memory management and all the easy to use built in functions in PHP, for example the array functions, are non-existent in C++. You actually have to know the algorithms behind them.&quot;. There are some great C++ libraries (STL, Boost) that will make your life easier but C++ is like PHP, come on!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you already know one language it will make it a little easier to learn another because you will already be good at boolean login (if this then that) or looping but there is just so much more to C++ than PHP. Like you have to compile the language and actually have to define what type of variable you are using and returning from functions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Actually what he said was &quot;C++ is not much different than PHP&quot;&lt;/p&gt;&#xA;" OwnerUserId="2822" LastEditorUserId="2822" LastEditorDisplayName="" LastEditDate="2010-11-08T16:14:01.347" LastActivityDate="2010-11-28T21:55:44.063" Title="C++ is easy once you know PHP" Tags="&lt;programming-languages&gt;&lt;php&gt;&lt;c++&gt;" AnswerCount="6" CommentCount="13" FavoriteCount="1" />
  <row Id="17651" PostTypeId="2" ParentId="17650" CreationDate="2010-11-08T13:44:51.547" Score="14" ViewCount="" Body="&lt;p&gt;As someone who went from PHP to C++ (though only limited C++) when I started writing C++, I often thought &quot;Wow, this is a lot like PHP&quot;. When you consider that PHP itself is written in C, and whenever the developers faced a design decision they couldn't resolve internally, the final answer almost always ended up being &quot;Do it like C++&quot; it's really not that absurd a statement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your response about Memory Management and Array Sorting/whatever is a non-starter. That's not a PHP/C++ answer, that's a C++ with zero libraries versus just about every other popular language in existence answer. It feels to me like you're asking this question so that you can get people to agree with you -- that people who write C++ are &lt;em&gt;so much better&lt;/em&gt; than people who write PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I think that's a foolish point of view which will lead to nothing but poor decisions on your part.&lt;/p&gt;&#xA;" OwnerUserId="3239" LastEditorUserId="3239" LastEditorDisplayName="" LastEditDate="2010-11-11T13:42:54.097" LastActivityDate="2010-11-11T13:42:54.097" CommentCount="2" />
  <row Id="17652" PostTypeId="2" ParentId="17650" CreationDate="2010-11-08T13:45:07.853" Score="4" ViewCount="" Body="&lt;p&gt;There is programming as a skill independent of any language, and then there is knowledge of a specific language's constructs, libraries, and conventions.  You can be great at the former and suck at the latter (for a specific language) or vice versa.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without knowing anything about your team, we can't say whether they'd be good at C++.  And there are various ways to write C++ too, as some people get themselves stuck 20 years ago without the stdlib, boost, other libraries, or even without compiler features everyone else takes for granted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there are a lot of problems with C++, and as someone that both loves and hates it, yet still has it for the highest count on SO, I'll be the first to admit it really sucks at times.  Then again, the more you know about a language, the more you find out how it sucks.  If there's any tool where you consider yourself an expert, yet you can't name at least 10 ways it's broken, inadequate, or you just hate it... :)&lt;/p&gt;&#xA;" LastActivityDate="2010-11-08T13:45:07.853" />
  <row Id="17653" PostTypeId="2" ParentId="17650" CreationDate="2010-11-08T13:45:17.977" Score="3" ViewCount="" Body="&lt;p&gt;Sounds like you called out a bluffer (I refer to the fact that he couldn't back up his statement) :). This is no bad thing as long as it's done politely, respectfully and with technical merit.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-08T13:45:17.977" CommentCount="1" />
  <row Id="17654" PostTypeId="2" ParentId="17650" CreationDate="2010-11-08T13:45:34.557" Score="3" ViewCount="" Body="&lt;p&gt;I think your &quot;lead developer&quot; should consider another line of work. Seriously, though, this usenet post I saw a year ago about C++ says it all:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;I don't know about you, but there's something really scary to me about a&#xA;language where copying state from one object to another is this&#xA;complicated.  By now, I suspect at least a dozen or two programmers have&#xA;contributed something new to this discussion. If it takes this many&#xA;programmers to write a simple assignment operator, think how complicated&#xA;writing code that actually does something meaningful must be!&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-08T13:45:34.557" CommentCount="14" />
  <row Id="17657" PostTypeId="2" ParentId="17617" CreationDate="2010-11-08T14:04:15.830" Score="1" ViewCount="" Body="&lt;p&gt;Swearing in a different language which nobody understands really helps. I work in a foreign company where nobody understand my native language. That is very handy in terms of swearing out load. I caught myself enjoying the freedom of swearing in front of my managers and coworkers to vent my programming frustrations and without insulting anybody. All I had to do is to convince them that sometimes I talk to myself when I code, and they should not pay attention to it. :-)&#xA;The only thing is that it becomes a habit really quick, and after that you might screw up big time if you start working with somebody who understands your language. So you were officially warned: use it at your own risk! :-)&lt;/p&gt;&#xA;" OwnerUserId="5633" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-11-08T15:12:05.687" LastActivityDate="2010-11-08T15:12:05.687" CommentCount="2" />
  <row Id="17658" PostTypeId="2" ParentId="5057" CreationDate="2010-11-08T14:12:13.837" Score="3" ViewCount="" Body="&lt;p&gt;A language should be small enough to be able to remember all the keywords and most of the major library functions, and it should be easy to look up any of the other standard library features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C is a good example of the former. The availabilty of javadoc online (you can download it too) scores strong points for Java in the latter.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-08T14:12:13.837" />
  <row Id="17659" PostTypeId="2" ParentId="17650" CreationDate="2010-11-08T14:20:50.343" Score="9" ViewCount="" Body="&lt;p&gt;Sounds like one &quot;team lead&quot; guy (also a PHP dev like yours) who told me that C++ &quot;sucks, take templates for example&quot;. Much as I try not to, lines like those always flip the infamous bozo bit with me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your friend has a HUGE problem here, namely he is so overconfident that &lt;strong&gt;&lt;em&gt;he does&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;&lt;strong&gt;not know how much he does not know&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Saying that learning C++ is easy once you know PHP is like saying that once you can drive a &lt;em&gt;Segway&lt;/em&gt;, it would be quite easy to learn operating an Airbus A-380, because, 'you know, they both have some wheels to stand on and are controlled by advanced embedded circuit boards.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-08T14:20:50.343" />
  <row Id="17660" PostTypeId="2" ParentId="17525" CreationDate="2010-11-08T14:21:31.263" Score="2" ViewCount="" Body="&lt;p&gt;The key here is to try to absorb the concepts, rather than the specifics. For example, rather than learning Java, learn about the Virtual Machine that it brings to the table and how that differs from, e.g. the C# CLR.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The kind of topics you want to cover are (in no particular order):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Algorithms&lt;/strong&gt;. How does Bubble Sort compare with QuickSort (QS not always fastest), what is a binary search, etc.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Compilers&lt;/strong&gt;. All modern programming languages have some concept of being compiled from source to bytecode or machine code. It helps to understand how to write efficient code if you know the pain the compiler goes through. Some processor architecture theory may help your understanding - see the Andrew Tanenbaum book.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Scale&lt;/strong&gt;. There are some differences between programming for e.g. a supercomputer versus a phone, even though they may both run the same OS. Find out the differences and challenges, for example, why/behaviour when malloc() fails.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Concurrency&lt;/strong&gt;. With multiple cores, desktop PCs can now actually be running different pieces of code simultaneously. This causes all sorts of issues - locking, race conditions, starvation, etc. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Debugging&lt;/strong&gt;. Get good with tools or instrumenting code to work out how best to fix stuff when it goes wrong, particularly when it's live and you can't reboot/restart&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Databases&lt;/strong&gt;. It doesn't matter which database, but an understanding of database organisation and how they work helps. The introductory chapters to most Database books give a good overview - pages, rows, locking, optimism, indices, execution plans, etc.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;SDLC&lt;/strong&gt;. Learn the Requirements &gt; Specifications &gt; Design &gt; Code &gt; Build &gt; Test &gt; Commit &gt; QA &gt; Deploy &gt; Maintain lifecycle, regardless of actual project methodology. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Methodologies&lt;/strong&gt;. Look at traditional BUFD, Waterfall, Agile, Scrum, XP, etc.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tools&lt;/strong&gt;. Other than an editor and compiler, there are lots of tools used in SE practices, from code generators to static analysis.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Functional vs Procedural&lt;/strong&gt;. More and more functional programming constructs are making their way into procedural languages lately - with good reason. Go find out why Lisp/Prolog/Haskell are still in use and how things like F# are taking the concepts forward.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There are a ton of resources out there - MSDN's Channel 9, Yahoo!/Google videos, YouTube, VideoJug, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to actually keep up with a Comp Sci person, then take a look at any university's course prospectus, to get an idea for what topics they cover in their CS course. Personally, I'd pay more attention to the Software Engineering courses than Computer Science as you have a history of programming but perhaps don't need to learn micro electronics to understand them (in the UK, CS = programming + hardware, SE = programming + theory).&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-11-08T14:21:31.263" CommentCount="1" />
  <row Id="17661" PostTypeId="2" ParentId="17600" CreationDate="2010-11-08T14:23:39.237" Score="0" ViewCount="" Body="&lt;p&gt;ActiTIME (http://www.actitime.com/).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheap (free for up to 10 users, then increments up to $200 for unlimited users - prices to buy it and host it yourself), clear and powerful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some management and accounting modules too (a few hundred dollars each) but I've not tried them.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-08T14:23:39.237" />
  <row Id="17662" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T14:23:51.510" Score="21" ViewCount="" Body="&lt;p&gt;I don't get the anti-timesheet thing at all. Timesheets are what cause you to get paid. No timesheet, no money. I like getting paid, therefore I like my timesheets. I've never had a timesheet that took more that five minutes a day to fill out. Honestly, there are plenty of much more annoying things in my day than a five-minute timesheet. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-08T14:23:51.510" CommunityOwnedDate="2011-01-28T18:20:56.797" CommentCount="7" />
  <row Id="17663" PostTypeId="2" ParentId="17632" CreationDate="2010-11-08T14:35:23.263" Score="3" ViewCount="" Body="&lt;p&gt;To programmers, it means &quot;writes ninja code to get the thing to work&quot;, a positive connotation to someone whose code is awe-inspiring if a little scary. The project may be some open-source community project or just hobby code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To the media, it means &quot;subverts security mechanisms to infiltrate large organisations and steals money/data/Google source code&quot;, as can be seen from any web search, or even an article in today's online news: &lt;a href=&quot;http://www.theregister.co.uk/2010/11/08/royal_navy_website_hack/&quot; rel=&quot;nofollow&quot;&gt;http://www.theregister.co.uk/2010/11/08/royal_navy_website_hack/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Hacker_%28disambiguation%29&quot; rel=&quot;nofollow&quot;&gt;Here's what Wikipedia thinks.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-11-08T18:32:56.750" LastActivityDate="2010-11-08T18:32:56.750" CommentCount="1" />
  <row Id="17664" PostTypeId="2" ParentId="370" CreationDate="2010-11-08T14:36:09.413" Score="2" ViewCount="" Body="&lt;p&gt;I tend not to hire anyone who no longer has control over their bodily functions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you strip away stereotypes about lacking energy and dynamism and so on (which are generally as worthless as any other stereotype), the only genuine factor I can think of is how close is the person to retirement and how long before they leave you.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given that it's not uncommon for a programmer of any age to move on after 2 - 3 years, this is basically a non-issue so long as the person is smart, knowledgeable and hard working I wouldn't consider it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and in the UK at least as an employer I should probably mention that considering someone's age as a reason for hiring or not is illegal - though obviously very hard to prove that that was the reason.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-08T14:36:09.413" />
  <row Id="17665" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T14:37:55.117" Score="1" ViewCount="" Body="&lt;p&gt;Timesheets aren't a dealbreaker for me. My last job had them at first for providing transparency for a client, then dropped them. My current job has them and they're kept in case of an audit, since we apply for government research grants.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The software used for timesheets utterly sucks, but it still takes about 5 minutes for me to fill in a timesheet because they're at a very high level: 8 hours a day, mark down vacation/sick days and put in some notes on what was worked on during the week. I take notes every day, so it doesn't take me long to come up with a few lines to type into the timesheet.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-11-08T14:37:55.117" CommunityOwnedDate="2011-01-28T18:20:56.797" />
  <row Id="17666" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T14:53:54.180" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Yes, employees are required to do time sheets and this isn't an unusual thing for me to see.&lt;/li&gt;&#xA;&lt;li&gt;Usually they are broken up into various categories,e.g. support or some big feature like search on a site, with a minimum of 15 minutes per entry, which is .25 of an hour.&lt;/li&gt;&#xA;&lt;li&gt;No, timesheets are just an administrative feature I've come to accept as part of my job in a way.  It can be interesting to break down my work into various buckets like administrative, support and development work.&lt;/li&gt;&#xA;&lt;li&gt;There are a couple of different justifications that I know for having developers do timesheets:&#xA;&lt;ol&gt;&#xA;&lt;li&gt;There are various accounting rules about how some expenses can be capitalized and amortized so that it looks better on the books, or at least that is what I remember from hearing it a couple of times.&lt;/li&gt;&#xA;&lt;li&gt;Quantifying our time allocation allows management to see how much time is spent in various areas which can be used for strategic planning in a sense.  If there are a group of developers spending a large time on support then it may make sense to create a new support team to take that over possibly to give an example here.  Another thought is that even though we are internal employees, there is still the question of from which budget do our salaries come.  If we are doing mostly project work, then it is out of the project's budget which isn't the same as a support budget possibly.&lt;/li&gt;&#xA;&lt;/ol&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-08T14:53:54.180" CommunityOwnedDate="2011-01-28T18:20:56.797" CommentCount="1" />
  <row Id="17667" PostTypeId="2" ParentId="17557" CreationDate="2010-11-08T15:05:22.460" Score="0" ViewCount="" Body="&lt;p&gt;I'd probably change my first CS course in university.  While I had taken a couple Computer Science classes in high school and spent a few years programming in Commodore 64 BASIC, I wasn't familiar with variable types going into university and thus I didn't skip the most basic course which did count for credit but would have changed a few things as this would have accelerated how quickly I got into my upper year courses by a semester.  I still took plenty of 4th year courses to meet the degree requirements anyway.  This may be a little off from the intended question but it is one thing I would do differently.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-08T15:05:22.460" />
  <row Id="17668" PostTypeId="2" ParentId="17566" CreationDate="2010-11-08T15:07:57.920" Score="3" ViewCount="" Body="&lt;p&gt;I'd be very surprised if someone who was genuinely good at maintaining and changing existing code couldn't code something from scratch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As often as not it's harder and more work to understand someone else's code than it is to start over from scratch which is why developers reinvent the wheel so often.  The issue with writing the really nice routine for the library is that the next guy probably won't bother working out what you've done (and spent all that time on) any more than you spent time understanding the last guy's code and the investment will be wasted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two things you can learn:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) There are often very good reasons why code is the way it is.  You may view it as bad or strange but there are normally reasons why it's been done that way - they may be bad reasons (that the project was on tight timescales and it was hacked) or good (that it's dealing with an edge case you're not aware of and didn't consider when you rewrote it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) The more you change the more you can break.  Particularly in large projects you often find routines that use another piece of code that become dependent on it's errors or odd behaviour.  Particularly in older systems where no automated tests exist change things you don't understand 100% at your peril.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-08T17:18:18.637" LastActivityDate="2010-11-08T17:18:18.637" />
  <row Id="17669" PostTypeId="1" CreationDate="2010-11-08T15:09:44.113" Score="4" ViewCount="253" Body="&lt;p&gt;There are a lot of ways to seek answers to programming questions; for example web search, online documentation, stackoverflow and asking colleagues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your experience how do you search for and find answers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What works well?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What could be improved?&lt;/p&gt;&#xA;" LastActivityDate="2010-11-08T16:15:48.817" Title="How do you find answers to coding questions? What could be improved?" Tags="&lt;learning&gt;&lt;research&gt;&lt;stackoverflow&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="2" />
  <row Id="17670" PostTypeId="2" ParentId="17639" CreationDate="2010-11-08T15:10:37.100" Score="1" ViewCount="" Body="&lt;p&gt;Good documentation with example code.&lt;/p&gt;&#xA;" OwnerUserId="25" LastActivityDate="2010-11-08T15:10:37.100" />
  <row Id="17671" PostTypeId="2" ParentId="17669" CreationDate="2010-11-08T15:17:39.810" Score="14" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.stackoverflow.com&quot;&gt;StackOverflow&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The best part about SO is that it's highly SEO optimized and generally shows up first in Google search results if your question is even remotely close.  Google is generally my first go-to for  when I need to look up documentation or a how-to.  However, if I'm stuck on a problem that I need another set of eyes (just a clean perspective), then SO is where I go first.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-11-08T15:17:39.810" CommentCount="2" />
  <row Id="17672" PostTypeId="2" ParentId="7993" CreationDate="2010-11-08T15:17:49.483" Score="1" ViewCount="" Body="&lt;p&gt;Daily seems like a lot for a product owner. Regardless of how often they are required, they need to know there are consequences for their lack or delayed input. If they want the project sooner/on-time, they may sacrifice and make the time commitment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are 100% sold on an agile approach and your client is at 0%, you have a deadlock. Someone who is in charge needs to face the fact that business will run out the door requardless if you're agile, not agile, Windows only, Linux only, web only, embedded only, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm trying to implement at way to get a commitment from project owners at our firm. There was a time when every single project I was working on, was waiting on a review, test, approval, etc. from someone else. Thank goodness for SO/SE.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-08T15:17:49.483" CommentCount="3" />
  <row Id="17673" PostTypeId="2" ParentId="17669" CreationDate="2010-11-08T15:21:24.563" Score="5" ViewCount="" Body="&lt;p&gt;In order:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) &lt;a href=&quot;http://www.google.com/&quot; rel=&quot;nofollow&quot;&gt;Google&lt;/a&gt; (which usually catches SO removing the need for a specific search)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Mail the team (as we're working similar problems on the same code in the same problem domain there is a greater than average chance that someone on the team has already seen the issue)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Post on &lt;a href=&quot;http://www.stackoverflow.com/&quot;&gt;StackOverflow&lt;/a&gt; (I may do a specific search there at this point but I tend to assume Google will have returned it) or in some cases other technology specific forums (for instance the RIM boards for BlackBerry stuff)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) Vendor sites (&lt;a href=&quot;http://msdn.microsoft.com/&quot; rel=&quot;nofollow&quot;&gt;MSDN&lt;/a&gt; and the like)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) Just code around the problem the way I used to in the days before the internet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depressing how little use vendor sites tend to be and that's what could be improved.  Too many vendors seem to have basically left this sort of thing to &quot;the community&quot; and third party commercial interests and do nothing beyond a few white papers and a PHPBB site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where there is good stuff (as in the case of some of the larger companies) it's badly ordered and hard to find.  Plus in the case of many of the large companies they then set up their own publishers to sell you the sort of material that they should frankly be providing.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-08T16:08:54.670" LastActivityDate="2010-11-08T16:08:54.670" CommentCount="1" />
  <row Id="17674" PostTypeId="2" ParentId="17669" CreationDate="2010-11-08T15:21:26.500" Score="1" ViewCount="" Body="&lt;p&gt;Rare chance I have a book on the subject, search Google, SO search, SO question. Probably should go straight to SO (A pet peave of mine on SO is when answers to a question are in the form of 'search Google first'.). &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-08T15:21:26.500" />
  <row Id="17675" PostTypeId="1" CreationDate="2010-11-08T15:21:38.340" Score="15" ViewCount="388" Body="&lt;p&gt;I was asked today if I had experience with &quot;Service Oriented Architecture&quot; and although I think I do. The concept, to me, seems so muddled I don't know how you could honestly answer that question anymore. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I resorted to Googling the term in an effort to get a concise definition of the concept and how it differs from other architectures. After reading a number of articles on it, the only common thread I seem to be able to find is a system with multiple components that talk to each other over some kind of interface, with perhaps a slight preference for XML/SOAP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems like almost any application could be defined as SOA, especially a web application. Has this term fallen into the &quot;Web 2.0&quot; trap and become a term meaning whatever you want it to mean? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I way off base here? When you guys hear the term does it mean anything specific to you? If so I'd love a concise definition that clearly demonstrates what is and what specifically is NOT SOA.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2011-05-13T11:15:14.650" Title="Has the term &quot;Service Oriented Architecture&quot; become meaningless jargon?" Tags="&lt;terminology&gt;&lt;soa&gt;" AnswerCount="8" CommentCount="5" FavoriteCount="2" />
  <row Id="17676" PostTypeId="2" ParentId="17669" CreationDate="2010-11-08T15:21:47.977" Score="9" ViewCount="" Body="&lt;h1&gt;Google&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;My first action is always to Google the issue.  I find that around 70% of the time, this is going to lead me to a solution within a few clicks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that, StackOverflow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What could be improved?  It could be easier to search for issues with specific versions of software / languages.  I.e. when dealing with XNA or WF issues, a lot of results will be for older versions.&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-11-08T15:21:47.977" CommentCount="1" />
  <row Id="17677" PostTypeId="2" ParentId="17226" CreationDate="2010-11-08T15:22:01.457" Score="0" ViewCount="" Body="&lt;p&gt;On a particular project I ditched EJB3. It gave me dependency injection and container managed transaction handling. But it introduces huge dependencies (e.g. JBoss) and made the system difficult to write automated tests for. Now I've stripped it down to JPA + constructor dependency injection.&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-08T15:22:01.457" />
  <row Id="17678" PostTypeId="2" ParentId="17617" CreationDate="2010-11-08T15:22:29.460" Score="1" ViewCount="" Body="&lt;p&gt;This is a problem, not a programming problem though - although it could be solved through less bugs in the code.  I'm on the phone a lot and we've got an open floor plan.  The dude sitting to my right is giving his code the 3rd degree and frankly it's a little embarrassing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I don't swear at all.  I never have and I don't intend to start.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try substituting the word &quot;Fruit&quot; every time you want to drop an F-Bomb and you'll be halfway there. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-11-08T15:22:29.460" />
  <row Id="17679" PostTypeId="2" ParentId="17226" CreationDate="2010-11-08T15:25:04.123" Score="2" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.microsoft.com/sharepoint&quot; rel=&quot;nofollow&quot;&gt;SharePoint&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong, SharePoint is awesome if you need most of the things it comes with (and it comes with a lot!), but if you don't know what you're doing or only need it for one or two things, it is MASSIVELY not worth the effort and configuration.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-11-08T15:25:04.123" />
  <row Id="17680" PostTypeId="2" ParentId="17632" CreationDate="2010-11-08T15:25:39.563" Score="2" ViewCount="" Body="&lt;p&gt;A professional computer programmer who can bend the code to his fiery will.  As a child a hacker found a way to put the square block in the round hole.  Although at times he is proud of a great hack, he is never satisfied with his code. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-11-08T15:25:39.563" />
  <row Id="17681" PostTypeId="2" ParentId="3974" CreationDate="2010-11-08T15:30:12.933" Score="0" ViewCount="" Body="&lt;p&gt;It's hard to generalize. In one organization I had  5 female coworkers. Two of them were very smart and able to pick up new skills with minimum training.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One was generally very diligent at her work, but not very able to pick up advanced and abstract concepts, still a very good side-kick on any project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fourth and the fifth one were not very smart at all (I can still remember one of them asking me &quot;What are those two dashes&quot;, referring to a predecrement operator in my code) .&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, in the same org, I worked with about 25 male coworkers. Two were really smart and did the job because they loved doing it.&#xA;Three other were quite, well, STUPID (and I'm really not exaggerating here).&#xA;Another 10 were in the - just-a-bit-above-the-mediocre range.&#xA;The rest were a lazy, unskilled and unmotivated bunch, interested more in the office politics rather than the science and art of programming ( the two girls mentioned above included ).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, simply statistically speaking, you 'could' say that females are better as programmers, however, maybe this is due to different sample numbers, as Tom Sawyer once said, there is three kinds of lies : A lie, a damn lie and statistics.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-08T15:30:12.933" CommunityOwnedDate="2010-11-08T15:30:12.933" />
  <row Id="17682" PostTypeId="2" ParentId="17675" CreationDate="2010-11-08T15:32:22.020" Score="-2" ViewCount="" Body="&lt;p&gt;Some people love SOA. It's great - it really improves the quality of your system. Tests failing? - just add more SOA.&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-08T15:32:22.020" CommentCount="2" />
  <row Id="17683" PostTypeId="2" ParentId="17675" CreationDate="2010-11-08T15:32:58.657" Score="2" ViewCount="" Body="&lt;p&gt;I think it might make sense a bit: one thing is when you have &quot;slave&quot; modules called when needed, and another thing is when you have service/daemon processes running independently and responding to your requests, possibly talking to each other, living their own life in other words. With this approach you can have a huge, scalable, physically distributed system. I've seen some in the area of mobile telephony, for example. But this is just a guess.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Now let's see what Wikipedia says about &lt;a href=&quot;http://en.wikipedia.org/wiki/Service-oriented_architecture&quot; rel=&quot;nofollow&quot;&gt;SOA&lt;/a&gt;... Whoa.)&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-08T15:32:58.657" CommentCount="2" />
  <row Id="17684" PostTypeId="2" ParentId="17525" CreationDate="2010-11-08T15:54:47.973" Score="1" ViewCount="" Body="&lt;h2&gt;Read The Structure and Interpretation of Computer Programs, aka SICP&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;For building up your fundamental knowledge of CS topics, there is probably no better book than SICP.  The acronym alone is almost always recognized by top CS graduates, as a classic they either learned from, or know they need to read. :)  Big names in CS and programming know and recommend the book, e.g. &lt;a href=&quot;http://www.amazon.com/review/R403HR4VL71K8/&quot; rel=&quot;nofollow&quot;&gt;Peter Norvig's&lt;/a&gt; praising SICP as the greatest introduction to computer science ever written.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;SICP covers the fundamentals of computation in a satisfyingly deep way, raising many perspectives and questions about the nature of computation — quite a few of which remain open issues — while leading the reader to see beyond the superficial aspects of telling the machine what to do, or how to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html#%_toc_start&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://ecx.images-amazon.com/images/I/41CPGEDXMDL._SL500_AA300_.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Click the image to get to the free text online.  You can also readily find the &lt;a href=&quot;http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/&quot; rel=&quot;nofollow&quot;&gt;video lectures by the authors&lt;/a&gt;, complete with '80s style color and clothing no less.&lt;/p&gt;&#xA;" OwnerUserId="2026" LastActivityDate="2010-11-08T15:54:47.973" />
  <row Id="17685" PostTypeId="2" ParentId="17675" CreationDate="2010-11-08T15:56:41.197" Score="2" ViewCount="" Body="&lt;p&gt;The strict definitions of SOA are far past the cost/benefit line as to be theoretical in many cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless your product is the services themselves you often need a different point of view.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A USABLE definition of SOA means that your overall architecture is service friendly.  A system built completely from atomic services is usually not the right plan, and some services are going to organized functionally while others are going to be single responsibility.  I may have black boxes, I may have offline processes, but if there are a discoverable collection of services through which I can get a meaningful amount of work done that is my minimum definition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aside from the debate on what it actually means, the concept (whatever it means) has suffered in many circles by being applied to places it simply does not fit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, If I am building something that is meant to be a black box process and scales through parallelism not segmentation and distribution I may have a service to expose/talk to the black box, but some people keep trying to put the services inside the box.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a strict technical definition it has always been undefined, but the idea is not without merit where it fits.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-08T15:56:41.197" />
  <row Id="17686" PostTypeId="2" ParentId="17669" CreationDate="2010-11-08T16:00:19.647" Score="4" ViewCount="" Body="&lt;p&gt;The problem with the Internet is that you need to be able to say what it is you are looking for using the correct phrases.  This means that you need to be familiar with the problem domain and know the terms used, to get useful answers from search engines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the search engines doesn't help, then next step these days (oh, thanks^inf) is to write a question on the appropriate stackexchange engine.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-08T16:00:19.647" CommentCount="1" />
  <row Id="17687" PostTypeId="2" ParentId="17639" CreationDate="2010-11-08T16:06:28.560" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Reasonable, healthy minimalism&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That's all. Compare, as an example, the mechanism of pipes on Windows and UNIX. One offers a bunch of specialized API functions with a bunch of obscure, unnecessary or rarely used arguments, each of which can have one of the many macro/constant values. UNIX basically re-uses the existing open/read/write/close interface, plus a few very simple methods for some specific cases, such as socketpair() or pipe(). There is really almost, nearly nothing new you should learn in order to use pipes on UNIX. Now compare to &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa365781%28v=VS.85%29.aspx&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(To be fair, Microsoft originally only &quot;borrowed&quot; that interface from IBM's OS/2.)&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-08T16:06:28.560" />
  <row Id="17688" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T16:09:02.093" Score="2" ViewCount="" Body="&lt;p&gt;I have to fill out multiple timesheets.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;First there's the timesheet that goes to HR.  That timesheet simply shows worked/not worked, and is used to track PTO and sick days.  So it always is filled out in multiples of 8 (out all day or working all day).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then there's the timesheet that goes to the business.  I work software development in a large corporation; most (99%) of our projects are for internal users.  These projects are charged to the users on a by-the-hour basis;  so a project for, say, the Legal department will be charged to the Legal department's budget.  This timesheet is the most politicized;  there is pressure from the IT management to charge as much of your time as possible to the projects, and pressure from the project owners to charge as much time as possible to IT (i.e., staff meetings, informal training, etc.).  Further, before any work is done on any project, it is 'estimated' and a certain 'budget' of hours is allotted. So in order to stretch the hours, there is pressure from all parties to get creative with the timesheet; marking 8 hours in a given day to the same project sets off a red flag that triggers 3+ managers hitting up your cube.  Overtime is NEVER marked, as it serves no purpose (my pay is the same, and it decreases the available hours faster).  Accuracy in this timesheet can be detrimental to your career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, there's the project timesheet.  This is the one that goes to the project owners;  its not broken down by date, but by hour.  So this is the sheet that says &quot;I spent 9 hours on your project this week;  tasks A and B were accomplished, and bugs X and Y were corrected.&quot;.  This timesheet is a work of complete fiction; given that it gets its hours number from the previous timesheet, the tasks-to-time ratio is completely inaccurate.  However, this timesheet is really only used to determine whether or not we've reached milestone X by a given hour usage Y, so its more a general gauge of progress than anything else.&lt;/p&gt;&#xA;" OwnerUserId="4265" LastActivityDate="2010-11-08T16:09:02.093" CommunityOwnedDate="2011-01-28T18:20:56.797" CommentCount="2" />
  <row Id="17689" PostTypeId="2" ParentId="17669" CreationDate="2010-11-08T16:15:48.817" Score="1" ViewCount="" Body="&lt;p&gt;Google or Stack Overflow, with Google often leading me to Stack Overflow or one of those ugly wrappers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What could be improved ?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;As stated by &lt;a href=&quot;http://programmers.stackexchange.com/questions/17669/how-do-you-find-answers-to-coding-questions-what-could-be-improved/17676#17676&quot;&gt;Fosco&lt;/a&gt;, filtering by SDK version or others&lt;/li&gt;&#xA;&lt;li&gt;Filtering by code quality : sometimes there's a lot of different (or duplicate) answers. I don't want to find the most popular, I want to find the one with the best quality of code.&lt;/li&gt;&#xA;&lt;li&gt;Filtering duplicate answers : that would allow me to only find one occurrence of a bad practice, instead of seeing it copied and pasted from on site/blog/Q&amp;amp;A site to another&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I thought SO would be a solution to some of those problems, but it has become too popular I think. And too many answers that encourage software bad practices are upvoted and repeated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note : I don't pretend to know all good practices nor to be a good programmer, that's actually why I would like to always find great answers on the web.&lt;/p&gt;&#xA;" OwnerUserId="2365" LastActivityDate="2010-11-08T16:15:48.817" />
  <row Id="17690" PostTypeId="2" ParentId="17632" CreationDate="2010-11-08T16:17:18.103" Score="0" ViewCount="" Body="&lt;p&gt;Hacker is a person ( yes ! ) who has knowledge about the code more than creator itself. &lt;/p&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-11-08T16:17:18.103" CommentCount="1" />
  <row Id="17691" PostTypeId="2" ParentId="17617" CreationDate="2010-11-08T16:20:59.387" Score="1" ViewCount="" Body="&lt;p&gt;I personally never swear, but it's fairly common among my colleagues. I'm talking about F-bombs, C-bombs etc, only their Croatian equivalents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do like to use Jack Hackett's &quot;Feck! Arse!&quot; or &quot;&lt;a href=&quot;http://www.youtube.com/watch?v=tNY376o2XMY&quot; rel=&quot;nofollow&quot;&gt;Feck Off&lt;/a&gt;!&quot;, but I don't consider those &quot;swear words&quot; (&lt;a href=&quot;http://en.wikipedia.org/wiki/Feck&quot; rel=&quot;nofollow&quot;&gt;they are not&lt;/a&gt;!;)). I usually vent by listening to some Cannibal Corpse, Houwitser, Manu Le Malin, The Speed Freak..you get the idea. I am now fairly good headbanger-touch-typist. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I see no point in sharing my stress and anger with my coworkers. It's distracting, annoying and counter-productive.&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-11-08T16:20:59.387" CommentCount="2" />
  <row Id="17692" PostTypeId="2" ParentId="17639" CreationDate="2010-11-08T16:39:15.740" Score="1" ViewCount="" Body="&lt;p&gt;I want the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;A clearly defined name space. Since C is my primary language, I also want macros to match this. Resolving conflicts in that area sucks.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you allocate something, give me some obvious clue that it has to be freed. This goes to my next point, which is documentation.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Document the library. Tools like &lt;a href=&quot;http://www.stack.nl/~dimitri/doxygen/&quot; rel=&quot;nofollow&quot;&gt;Doxygen&lt;/a&gt; are simple and portable, there is no excuse for not giving me something I can generate and browse.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Document opaque types in public headers. I'm going to find them anyway, tell me why you don't want me messing with them and what could happen if I do. If you actually want patches, I need to know what you were thinking.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't drop and run. I really appreciate comments like &lt;em&gt;&quot;Please, don't contact me about this. I have no intention of maintaining it. This solved my immediate problem, maybe it will solve your problem. I don't care, I'm not going to update this and you can feel free to fork it.&quot;&lt;/em&gt; I can't tell you how much time that saves me.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It should add no memory leaks or errors to existing code. If you don't test prior to pushing stuff to your own code, why are you tempting me to push it to mine?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If it is indeed a library, use a permissive license and be consistent. Don't decide three months from now that you should be making more money from it. That is beyond annoying the night before you ship something and realize that you have to re-write a bunch of library code because the license changed. That is exactly the kind of thing that makes me irritated enough to re-implement your stuff under the MIT license.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Be consistent in coding style, other people have to read your code in order to figure out what it is actually doing when things don't work as expected.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't use more than 110 columns, your code may have to be edited in place, and I might only have an 80x25 display. If you rely on tabs to make things look more 'elegant', you have other issues to solve.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Try to at least consider ports, if not dealing with an interpreted language. Even then, try to at least consider ports.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Give me tests. I hope you have them, I might suggest them otherwise and I may actually help write them based on a call graph. If I go through all of that trouble, kindly, &lt;strong&gt;&lt;em&gt;use them&lt;/em&gt;&lt;/strong&gt;. Otherwise, you get patches that &quot;work for me!!!&quot; :)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't break the API, period. I know you may realize that you've gone about it all wrong, but make sure stuff that links to you won't break on a simple update. That may mean some cruft and kludges, welcome to the world of libraries.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Give me a roadmap so I don't duplicate your work, or the work of others. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'll likely edit this post to add more.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-08T16:46:24.960" LastActivityDate="2010-11-08T16:46:24.960" />
  <row Id="17693" PostTypeId="2" ParentId="17525" CreationDate="2010-11-08T17:06:36.497" Score="0" ViewCount="" Body="&lt;p&gt;The best thing you will receive out of learning Computer Science topics is problem solving skills and &quot;attention to detail&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These things are certainly the backbone of an excellent programmer, but just be warned you wont learn very much in terms of technically skills and hands-on coding skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A great deal of math and theory will be thrown your way and if you think that you should improve on the two areas I listed at the top, I certainly think you will not be wasting your time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to best answer your question, you should study Math topics specifically Linear Algebra, Discrete Math and Computational Theory. These will all improve you significantly.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-11-08T17:06:36.497" />
  <row Id="17694" PostTypeId="2" ParentId="17200" CreationDate="2010-11-08T17:19:40.433" Score="0" ViewCount="" Body="&lt;p&gt;I didn't tried it yet but with Visual Studio, Visual Leak Detector seems to be popular: &lt;a href=&quot;http://sites.google.com/site/dmoulding/vld&quot; rel=&quot;nofollow&quot;&gt;http://sites.google.com/site/dmoulding/vld&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-11-08T17:19:40.433" />
  <row Id="17695" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T17:32:07.690" Score="2" ViewCount="" Body="&lt;p&gt;Two jobs ago I filled out timesheets.  They were done in order to record pay (we were paid overtime) and to bill the customer (a lot of work was T&amp;amp;M) and to check assumptions vs. actuals on fixed price projects.  I also found them useful for logging some of my own info, rather than keeping a personal log vs. a timesheet log.  It worked great.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One job ago, I tried to use timesheets the same way (the conditions were very similar), but in that case the company would question every little thing on the timesheet.  I'd have phone conversations arguing about what I put on my timesheet that lasted longer than the amount of time in question.  I stopped putting down accurate time, because it was absurd.  Other people seemed to be lying on their timesheet too, when questioned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this job, my time isn't directly billable to a customer, just to internal projects mostly, but I still do timesheets.  They're easy to do, and helpful, not just to myself, but to the company for accounting, etc.  Never been questioned about what I put on a timesheet here, so I keep them quite accurate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say they're great, until they start penalizing you for what you put on them.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-11-08T17:32:07.690" CommunityOwnedDate="2011-01-28T18:20:56.797" />
  <row Id="17696" PostTypeId="1" AcceptedAnswerId="17778" CreationDate="2010-11-08T17:51:00.410" Score="6" ViewCount="502" Body="&lt;p&gt;I have a few questions about writing a specification and they are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;When we write a software specification, under the topic &quot;User requirements definition&quot; we have to specify the &quot;Functions&quot; and &quot;Constraints&quot; only ?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Does &quot;User Interface&quot; fall into &quot;functions&quot; or &quot;constraints&quot; ?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;What are the major key areas (requirements) a software can be broken into (e.g. UI ) ?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7333" LastEditorUserId="7333" LastEditorDisplayName="" LastEditDate="2010-11-08T18:26:47.797" LastActivityDate="2010-11-09T02:59:15.947" Title="Writing a Software Requirement Specification" Tags="&lt;software-engineering&gt;&lt;computer-science&gt;&lt;specifications&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="2" />
  <row Id="17697" PostTypeId="2" ParentId="17696" CreationDate="2010-11-08T17:57:54.383" Score="1" ViewCount="" Body="&lt;p&gt;I recommend reading Joel on software.  I'm not sure if it answers your specific questions, but he has an excellent overview of what it means to write functional specifications. &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000036.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/fog0000000036.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4541" LastEditorUserId="4541" LastEditorDisplayName="" LastEditDate="2010-11-08T18:31:55.883" LastActivityDate="2010-11-08T18:31:55.883" />
  <row Id="17698" PostTypeId="2" ParentId="16527" CreationDate="2010-11-08T18:02:47.793" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Further edited in light of revised information&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would seem that your professor is keen to have you continue the work of the previous developers. I'm not sure I agree with him on the ease of learning Struts2 vs SpringMVC, but I can see his point. He is clearly keen to stick with a chosen framework that is well understood within the faculty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is some backwards compatibility between Struts1.3 and Struts2 but it is limited and you may find that you are better served by just rewriting the original work in Struts2. Of course, this assumes that you are working within the web application, not just consuming it's output. If you are consuming it's output, then you don't care what it is using to manage views and page transitions internally, just so long as you can get the content. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, it appears that you're stuck with Struts so just make the best application you can with it.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edited in light of comment&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given that you are a student, and the team leader of this project, then you must balance your lack of experience with the technology with the responsibilities that come with leading the team. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the one hand, Struts2 is capable of solving your problem. It's a reasonable framework and will certainly introduce you to web application programming in Java in a manner that will be useful in the future. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I (&lt;a href=&quot;http://stackoverflow.com/questions/353359/struts-or-spring-mvc-or-struts-spring&quot;&gt;and many other developers&lt;/a&gt;) favour SpringMVC because it makes it absolutely clear how the Model, View and Controller are interacting. It also introduces the overall Spring framework approach to your web application which promotes good coding practices throughout (dependency injection, externalisation of configuration etc). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an aside, here is a brief overview of the key concepts in SpringMVC. Your application context contains the URI mappings to determine the entry points to your application (the Controllers) and the exit points (the Views). The Controllers call in to the services and business domain to get stuff done. The result of the work done by the services is turned into a ModelAndView object which is then used as the basis for the response. This response could be decorated by a JSP (in which case the contents of the ModelAndView is visible to the JSP) or could be directly marshalled as XML, or perhaps treated as a PDF or Image. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In answer to your question, I would go with informing your professor of your reservations with Struts2, but make sure you have an example of the same code written in SpringMVC to hand. Extol the virtues offered by Spring and do your best to win your case, both for yourself and the rest of the team who will be affected by your professors final choice. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your professor is reasonable and you put your case well then you will learn how to deal with management for your future career - valuable experience indeed.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;After chatting to numerous developers with experience with Struts2 I would counsel you away from it. There are better, more intuitive frameworks out there that just make the whole page navigation and security issues straightforward. I'm thinking SpringMVC and RESTEasy here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, you want to know about Struts2, so &lt;a href=&quot;http://beans.seartipy.com/2008/07/30/hello-world-web-application-using-struts-2-in-netbeans-ide-61/&quot; rel=&quot;nofollow&quot;&gt;here is a handy tutorial&lt;/a&gt; that should work fine in NetBeans. There is a detailed &lt;a href=&quot;http://static.springsource.org/docs/Spring-MVC-step-by-step/&quot; rel=&quot;nofollow&quot;&gt;alternative for SpringMVC&lt;/a&gt; which targets Eclipse should you want to go that way. Although Eclipse is a fabulous IDE, if you have more experience with NetBeans then stick with that until you're confident enough with your coding to make the move. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure you understand what the Struts2 framework is doing for you over and above the underlying servlet API, and take time to understand HTTP and it's limitations.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-22T12:51:17.310" LastActivityDate="2010-12-22T12:51:17.310" CommentCount="3" />
  <row Id="17699" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T18:06:11.487" Score="1" ViewCount="" Body="&lt;p&gt;No, and I'd refuse job/contract offers that would make me fill out time sheets. I will never understand the ignorance of managers who think that the infamous time sheet is some sort of a great tool for keeping programmers disciplined as well as for measuring performance. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For all that he/she knows, I might have just copy/pasted a chunk of code from a blog that solves a hard problem in the first ten minutes and spent rest of my recorded time reading interesting discussions on P.SE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We're not cotton plantation workers, and should not be treated as such.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-08T18:06:11.487" CommunityOwnedDate="2011-01-28T18:20:56.797" CommentCount="2" />
  <row Id="17700" PostTypeId="1" AcceptedAnswerId="17718" CreationDate="2010-11-08T18:21:29.193" Score="19" ViewCount="1461" Body="&lt;p&gt;Off the top of my head, I can think of a handful of large sites which utilize the Microsoft stack&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Microsoft.com&lt;/li&gt;&#xA;&lt;li&gt;Dell&lt;/li&gt;&#xA;&lt;li&gt;MySpace&lt;/li&gt;&#xA;&lt;li&gt;PlentyOfFish&lt;/li&gt;&#xA;&lt;li&gt;StackOverflow &lt;/li&gt;&#xA;&lt;li&gt;Hotmail, Bing, WindowsLive&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;However, based on observation, nearly all of the &lt;a href=&quot;http://www.quantcast.com/top-sites-1&quot; rel=&quot;nofollow&quot;&gt;top 500 sites&lt;/a&gt; seem to be running other platforms.What are the main reasons there's so little market penetration?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cost? &lt;/li&gt;&#xA;&lt;li&gt;Technology Limitations?&lt;/li&gt;&#xA;&lt;li&gt;Does Microsoft cater to corporate / intranet environments more then public websites?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm not looking for market share, but rather large scale adoption of the MS stack.&lt;/p&gt;&#xA;" OwnerUserId="691" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-11-08T19:06:51.427" LastActivityDate="2011-03-07T07:49:49.673" Title="Why do so few large websites run a Microsoft stack?" Tags="&lt;microsoft&gt;&lt;case-studies&gt;" AnswerCount="10" CommentCount="12" FavoriteCount="2" />
  <row Id="17701" PostTypeId="2" ParentId="17700" CreationDate="2010-11-08T18:29:03.867" Score="13" ViewCount="" Body="&lt;p&gt;So &lt;em&gt;few&lt;/em&gt;? I don't think &lt;strong&gt;34%&lt;/strong&gt; market share is &lt;strong&gt;few&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://w3techs.com/technologies/overview/operating_system/all&quot; rel=&quot;nofollow&quot;&gt;http://w3techs.com/technologies/overview/operating_system/all&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the study with the lowest result for Windows I've found.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are others studies that grant Windows revenue based market share weight more than &lt;strong&gt;60%&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Few&lt;/em&gt; is definitely not the good word to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;More studies&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reuters: &lt;a href=&quot;http://www.reuters.com/article/idUSN2748543820080228&quot; rel=&quot;nofollow&quot;&gt;http://www.reuters.com/article/idUSN2748543820080228&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Netcraft: &lt;a href=&quot;https://ssl.netcraft.com/ssl-sample-report//CMatch/osdv_all&quot; rel=&quot;nofollow&quot;&gt;https://ssl.netcraft.com/ssl-sample-report//CMatch/osdv_all&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wikipedia: &lt;a href=&quot;http://en.wikipedia.org/wiki/Usage_share_of_operating_systems#Servers&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Usage_share_of_operating_systems#Servers&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Does Microsoft technologies based websites can actually scale?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;www.live.com (5th Alexa), www.msn.com (11th Alexa), www.microsoft.com (21th Alexa) or www.bing.com (25th Alexa) webmasters ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;MySpace is also windows based.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-08T19:15:23.297" LastActivityDate="2010-11-08T19:15:23.297" CommentCount="18" />
  <row Id="17702" PostTypeId="2" ParentId="17700" CreationDate="2010-11-08T18:45:30.143" Score="9" ViewCount="" Body="&lt;h1&gt;Cost&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;That's what I'm placing my money on. Facebook has &lt;a href=&quot;http://www.datacenterknowledge.com/archives/2010/06/28/facebook-server-count-60000-or-more/&quot; rel=&quot;nofollow&quot;&gt;60k servers&lt;/a&gt;, what's the license cost on that vs. Linux? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look at the &quot;open stack&quot; as we can call it:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Apache – &lt;strong&gt;Free&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;PHP - &lt;strong&gt;Free&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;MySQL - &lt;strong&gt;Free&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Linux - &lt;strong&gt;Free&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Contrast to the MS stack:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;IIS - &lt;strong&gt;$$$&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Visual Studio - &lt;strong&gt;$$$&lt;/strong&gt; (but it's great)&lt;/li&gt;&#xA;&lt;li&gt;OS - &lt;strong&gt;$$$&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;SQL Server - &lt;strong&gt;$$$&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-11-09T03:09:15.123" LastActivityDate="2010-11-09T03:09:15.123" CommentCount="25" />
  <row Id="17704" PostTypeId="2" ParentId="17639" CreationDate="2010-11-08T18:56:13.237" Score="1" ViewCount="" Body="&lt;h3&gt;Make Simple Things Simple and Complicated Things Possible&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;This pretty much sums up every other design philosophy.  If your library only makes complicated things possible, people looking to solve the easiest 80% of use cases will be tempted to reinvent the wheel rather than deal with your overengineered monstrosity that requires you to use 6 different classes to do your library's equivalent of &quot;Hello World&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your library only makes simple things simple, people will become annoyed very quickly when they find out that they need to rewrite their code just because they had a requirement that was a little bit off the beaten path.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best ways to accomplish this are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Be liberal in what you accept.  If you're programming in a dynamic language, use duck typing to full effect.  If you're programming in C++ or D, use templates wherever possible.  Accept anything that satisfies some reasonably universal structural interface.  Don't force your users to do a lot of busy work converting data from one format to another.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Build high-level convenience functionality into your library, but build it in a transparent way on top of lower level functionality, and make sure the lower level functionality is there for people who need it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Follow the principle of least surprise by default, even when doing so may limit flexibility or efficiency.  If necessary, add a second function with a more verbose name that emphasizes its surprisingness to allow for optimizations or increased flexibility.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Encapsulation is useful, but don't be anal about it.  People with unusual, unanticipated requirements occasionally might need to get underneath one of your abstractions to get the job done.  On the other hand, it should be hard to shoot oneself in the foot &lt;em&gt;by accident, when using seemingly innocent constructs&lt;/em&gt;.  Keep this in mind when deciding how tightly you want to lock stuff down.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Use examples heavily in your documentation.  This serves both to illustrate common use cases to your user and to force you to think about whether the most common cases are sufficiently streamlined.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Have reasonable defaults for everything you can, but make sure those defaults are &lt;em&gt;just&lt;/em&gt; defaults and that it's clear how to override them.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1468" LastEditorUserId="1468" LastEditorDisplayName="" LastEditDate="2010-11-08T20:06:20.213" LastActivityDate="2010-11-08T20:06:20.213" />
  <row Id="17705" PostTypeId="2" ParentId="17696" CreationDate="2010-11-08T18:56:37.807" Score="5" ViewCount="" Body="&lt;p&gt;While I am not a big fan of gathering &lt;em&gt;all&lt;/em&gt; requirements in detail up front (as they are subject to so much change over the course of a non trivial project), if you are writing requirements documents, the Volere requirements specification template is an excellent guide. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;While it may be overkill for some projects, it provides a great checklist of things to think about, even if it's just to mentally check off the list that you don't need that item for this requirement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a link to more information about the template:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.volere.co.uk/template.htm&quot; rel=&quot;nofollow&quot;&gt;http://www.volere.co.uk/template.htm&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The template itself (and the book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321419499&quot; rel=&quot;nofollow&quot;&gt;Mastering the Requirements Process&lt;/a&gt; - which is actually slightly less expensive than the template and contains the full template text) contains a lot of information, examples and advice within the various sections as to what should go in each section.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a summary of the sections in it (quoted from the above link):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;&lt;p&gt;The Purpose of the Project&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;The Stakeholders&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Mandated Constraints&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Naming Conventions and Definitions&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Relevant Facts and Assumptions&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;The Scope of the Work&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Business Data Model and Data Dictionary&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;The Scope of the Product&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Functional and Data Requirements&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Look and Feel Requirements&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Usability and Humanity Requirements&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Performance Requirements&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Operational and Environmental Requirements&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Maintainability and Support Requirements&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Security Requirements&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Cultural and Political Requirements&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Legal Requirements&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Open Issues&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Off-the-Shelf Solutions&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;New Problems&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Tasks&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Migration to the New Product&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Risks&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Costs&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;User Documentation and Training&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Waiting Room&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Ideas for Solutions&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="38" LastActivityDate="2010-11-08T18:56:37.807" />
  <row Id="17706" PostTypeId="2" ParentId="17444" CreationDate="2010-11-08T19:02:59.247" Score="0" ViewCount="" Body="&lt;p&gt;There is also the distinction of knowing a particular kind of software solution such as any of the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Enterprise Resource Planning&lt;/li&gt;&#xA;&lt;li&gt;Customer Relationship Management&lt;/li&gt;&#xA;&lt;li&gt;Content Management System&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There are likely others but these are another form of specialty where one could work for almost any type of company doing a customization of the above potentially.  In my case, I have worked on a Content Management System for a couple of years now that I would say is a specialty in a sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something like Web Development may not be specific enough as there can be many specialties within this area, or would it count for what you want?&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-08T19:02:59.247" CommentCount="1" />
  <row Id="17707" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T19:06:45.423" Score="2" ViewCount="" Body="&lt;p&gt;I'm amazed at how much time is wasted on time sheets and how little the organization is getting out of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For most groups here, the manager sends out the number of hours budgeted for the time period; per project, per employee in order to match the project plan. All programmers then enter that time for each project they work on; regardless of what time they actually spent per project. Or how useful that work was.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For them, time sheets are totally useless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I get the build record from Hudson and commit log from VCS. From that I get a good sense on what my team actually worked on without having to ask them to file out more form.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its more accurate as it tracks what developers have done and not what people said they spent time doing.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastEditorUserId="4603" LastEditorDisplayName="" LastEditDate="2010-11-09T03:58:20.997" LastActivityDate="2010-11-09T03:58:20.997" CommunityOwnedDate="2011-01-28T18:20:56.797" CommentCount="1" />
  <row Id="17708" PostTypeId="2" ParentId="17600" CreationDate="2010-11-08T19:12:48.373" Score="0" ViewCount="" Body="&lt;p&gt;I check the build log from our Build System and the commit log from version control and compare that to the project plans our PHBs send out. For my team, we use Excel to augment the build and commit logs. For everything on the Excel list, I expect to see at least one commit mentioning it and one successful build after that commit. This only works is you really need to track tasks that are very course grained. Daily or weekly and not hour-by-hour.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-11-08T19:12:48.373" />
  <row Id="17709" PostTypeId="2" ParentId="17606" CreationDate="2010-11-08T19:18:07.593" Score="1" ViewCount="" Body="&lt;p&gt;Are you hiring him to take tests or write code?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're having that much of an issue with the introductory screen, your recruiters and placement partners are doing a bad job and you should replace them.  If someone send me nothing but a stream of really bad candidates that can't pass a simple in person test, we change recruiters. &lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-11-08T19:18:07.593" />
  <row Id="17710" PostTypeId="1" AcceptedAnswerId="17713" CreationDate="2010-11-08T19:19:17.083" Score="11" ViewCount="380" Body="&lt;p&gt;A &lt;a href=&quot;http://programmers.stackexchange.com/questions/17444/what-are-some-known-common-development-specialties&quot;&gt;question on software specialties&lt;/a&gt; inspired this question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How valuable is a software generalist compared to a specialist? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I say generalist, I mean someone who can take a project from requirements to deployment, and is competent with all phases of the software development lifecycle. Someone who can put all the specialties together into a cohesive whole. An expert generalist knows his or her weaknesses and fills them by relying on specialists - example: Oracle specialists or UX specialists.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you see as the ultimate career path of the software generalist?&lt;/p&gt;&#xA;" OwnerUserId="5832" LastActivityDate="2010-11-08T20:43:30.147" Title="What is the career path for a software generalist?" Tags="&lt;career&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="3" />
  <row Id="17711" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T19:22:56.040" Score="2" ViewCount="" Body="&lt;p&gt;Unfortunately, yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But not only one timesheet. We have to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Check in and check out on arrival/departure&lt;/li&gt;&#xA;&lt;li&gt;Fill in the timesheet for our parent company at the end of the month&lt;/li&gt;&#xA;&lt;li&gt;Our idiotic government (&lt;a href=&quot;http://www.hr/english&quot; rel=&quot;nofollow&quot;&gt;Croatia&lt;/a&gt;) recently added another nuisance: filling in another &lt;em&gt;daily&lt;/em&gt; timesheet. Why? So they can send an &quot;inspection&quot; to steal your money if every employee doesn't have it completely filled in.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-11-08T19:22:56.040" CommunityOwnedDate="2011-01-28T18:20:56.797" CommentCount="3" />
  <row Id="17712" PostTypeId="2" ParentId="17710" CreationDate="2010-11-08T19:24:33.383" Score="3" ViewCount="" Body="&lt;p&gt;Software/System/Enterprise Architect - Too many x Architect titles out there these days, but you get the idea :).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as you remain a relatively hands-on architect (and not a white paper writing ivory tower architect) then that's a fairly good career path for a generalist.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-08T19:24:33.383" />
  <row Id="17713" PostTypeId="2" ParentId="17710" CreationDate="2010-11-08T19:26:54.303" Score="3" ViewCount="" Body="&lt;p&gt;The ultimate career path of the software generalist is to become the one person IT army, able to take on any problem involving code of any kind as a self-employed mercenary.  I'd imagine such people would be extremely rare, but they may exist somewhere. ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The generalist may have the challenge of maintaining their skill set as I'd imagine most people in this role would end up specializing a bit in terms of what they experience as it isn't often that a company would give the same guy the opportunity to know every kind of system,e.g. CRM, ERP and CMS to name a few by acronym.  There are various points between the generalist and specialist though as something like web development could be seen as being rather general or rather specialized depending on one's view.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-08T19:26:54.303" CommentCount="3" />
  <row Id="17714" PostTypeId="2" ParentId="16518" CreationDate="2010-11-08T19:28:39.603" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Question:&lt;/strong&gt; What's the most innovative cryptographic algorithm you've ever written?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Correct Answer:&lt;/strong&gt; None. I use verified cryptographic libraries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rolling your own crypto is bad juju.&lt;/p&gt;&#xA;" OwnerUserId="5832" LastActivityDate="2010-11-08T19:28:39.603" CommentCount="3" />
  <row Id="17715" PostTypeId="1" CreationDate="2010-11-08T19:38:46.817" Score="7" ViewCount="271" Body="&lt;p&gt;I'm a software developer with nearly 6 full years of experience.  I've worked for 4 companies.  The first two for roughly 2.5 years a piece.  The next for only 2 months as I was part of an unexpected down-sizing that cleared out around 50% of that company.  This now brings us to May of this year when I joined a startup of 2 co-founders and a fulltime QA guy (a founder's brother).  It was very exciting to join these guys as the prior companies I worked for weren't very developer-centric.  These guys embraced agile, tdd, continuous integration, and were better at developing software than me.  This was a huge selling point since (trying to stay humble) in my previous roles I outgrew the other devs because I cared about continuous improvement and software craftsmanship but was never in an environment that embraced those things.  I believe my biggest misstep joining the startup was agreeing to a salary that was 10-15k under market (~5K less than I was making at the 2-month company).  This was shored up on their-end by the potential for quarterly bonuses that were 20% of base salary which in the 18 month history of the company had always been paid out.  I additionally justified this discrepancy as a sort of tuition for finally clawing my way up to getting to work with the latest technologies, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of June, the quarterly bonus was paid out to the 3 guys, but I was still in the 3 month probationary period that was part of the offer.  During all this time things were great, I worked hard every day (40-50 hour weeks) and learned so much.  I loved working with the guys and everything was exciting as I could see all the possibilities.  I was very happy to have found such an amazing job and felt very lucky.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, At the end of July, our main client (~85% of our income) abruptly had us stop work on their product due to internal issues of their own.  The guys hit the pavement trying to follow up on other business leads they never followed up on due to time constraints etc.  The rest of the summer I spent my time on the bench, learning technologies that were on my stack.  This was nice to do, but scary as week after week went by with 2 of us on the bench draining the companies resources.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One friday, early in September, the guys sat down with me and told me that if nothing came through soon, they would have to let me go at the end of the month.  I wasn't totally shocked as I knew I hadn't been billable for nearly 2 months.  Just in the nick of time however; I interviewed with a client to be brought on site.  I landed the position and am currently consulting with the client and still an employee of the startup.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been with the client for a month and really like it here as well.  They have an amazing agile process and have devs here that are better than me.  The manager here has expressed an interest in me coming on full time at the end of the contract.  One of the biggest selling points is that one of the devs here lives an hour and half away and they let him work from home 3 days/week.  Coincidentally, my girlfriend and I plan on moving back to our hometown which is that far way.  The wheels in my head are spinning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of last week, I met with the guys from my company for drinks after work (I hadn't been in our office for a month).  They now have a lot of new projects they're getting close to closing on and asked me (in addition to the 40 hrs/week I'm with the client) to come in and work evenings and/or weekends to help get things moving again now that we're profitable once more.  I had a sense this would come up in the meeting and asked them if they viewed me just as an employee.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't necessarily want an ownership role in the company as they've put in way more sweat equity than I have.  Just the same, they're asking me to work as though I have an ownership stake in our company when I don't.  At the end of the day, I'm just an employee they're trying to get as much out of as they can.  They seem to want to work with me some (to what extent I'm not sure) to make it more equitable.  What sort of advice does anyone have given my particular situation?  In addition to asking to eventually work from home 3+ days/week when we move and a better salary, what could I ask for?  How can I best utilize an expected offer from the client I'm currently with to better my situation?  Do I sound reasonable for not wanting to work what could be endless weeks of overtime without being better compensated?  How should I decide whether to stay or go if I do get an offer from the client?&lt;/p&gt;&#xA;" OwnerUserId="1756" LastActivityDate="2011-05-06T21:12:15.607" Title="Career advice needed. Startups, clients, making moves, the whole ball of wax." Tags="&lt;career&gt;&lt;career-advice&gt;&lt;startups&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="17716" PostTypeId="2" ParentId="17606" CreationDate="2010-11-08T19:39:37.460" Score="3" ViewCount="" Body="&lt;p&gt;In theory, the idea of an online test to screen out completely unqualified applicants isn't too bad of one. Unfortunately, it's pretty close to worthless in reality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of all, none of the online testing sites I've looked at had a test that was really worthwhile. Second, it's all too easy for a completely unqualified person to get a friend (or whomever) to help in out for the duration of a test, and pass with flying colors without knowing anything about the subject matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you could work around the second problem (e.g., have them take the test on a computer at your offices, with nobody else present, no chat programs, etc.) I doubt that there's such a thing as a useful online test anyway. Tests generally deal in facts, not ideas -- but programming is mostly about ideas and (particularly) exercising good judgement. While a programmer certainly needs to know &lt;em&gt;some&lt;/em&gt; facts about the language(s) they use, a test of that sort of knowledge won't tell you much.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-08T19:39:37.460" />
  <row Id="17717" PostTypeId="2" ParentId="17710" CreationDate="2010-11-08T19:46:38.913" Score="0" ViewCount="" Body="&lt;p&gt;A project manager that techies can respect, and who appreciates their art?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, it could be a fine line before being a management toady knowing just enough to be dangerous about a lot of things...&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-11-08T19:46:38.913" CommentCount="2" />
  <row Id="17718" PostTypeId="2" ParentId="17700" CreationDate="2010-11-08T19:54:57.670" Score="21" ViewCount="" Body="&lt;p&gt;I'll posit that it's because most of the &quot;big websites&quot; started out small.  Google, youtube, facebook, et al. were all at one time single-server sites that someone built as a hobby.  They used LAMP-like stacks because: 1) they're cheap and the devs were poor and often 2) because they were at a university and university environments tend to favor OSS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After the sites started growing, the developers just stuck to what they knew.  In the early years, there wouldn't be enough time or money to do a big system rewrite.  When, and if, that ever became an option, why switch to an entirely different base?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I'm saying it's because that's just what they knew and had when they started.  SO isn't any different if I recall that story correctly.  The SO Founders knew MS stack, and had access to the tools/liscenses/etc to start using it, and so that's what they used!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I've also heard that they also wanted to prove that MS stack was just as good as LAMP for big sites, but that may be apocryphal.)&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-08T19:54:57.670" CommentCount="4" />
  <row Id="17719" PostTypeId="2" ParentId="17675" CreationDate="2010-11-08T19:59:11.290" Score="4" ViewCount="" Body="&lt;p&gt;SOA: Severely Overused Acronym&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't misunderstand me: the concept is good, nothing wrong with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But some things we write are literally one offs, bespoke, single use, specialised etc etc and won't be re-used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SOA? Perhaps YAGNI...&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-11-08T19:59:11.290" CommentCount="1" />
  <row Id="17720" PostTypeId="2" ParentId="17200" CreationDate="2010-11-08T20:03:45.037" Score="4" ViewCount="" Body="&lt;p&gt;For detecting leaks, I'll defer to others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For finding performance problems,&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;for outside the IDE, for Linux, I'm impressed by &lt;a href=&quot;http://www.rotateright.com/&quot; rel=&quot;nofollow&quot;&gt;Zoom&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;for outside &lt;em&gt;any&lt;/em&gt; IDE - well, IMHO, there is no technique outside the IDE as effective, nor as ugly, as the one &lt;em&gt;inside&lt;/em&gt; the IDE, namely &lt;a href=&quot;http://stackoverflow.com/questions/375913/what-can-i-use-to-profile-c-code-in-linux/378024#378024&quot;&gt;random pausing&lt;/a&gt;. For a &lt;a href=&quot;http://stackoverflow.com/questions/1777556/alternatives-to-gprof/1779343#1779343&quot;&gt;lot of reasons&lt;/a&gt;.&#xA;Here's an example of using it to get a &lt;a href=&quot;http://stackoverflow.com/questions/926266/performance-optimization-strategies-of-last-resort/927773#927773&quot;&gt;43x speedup&lt;/a&gt;.&#xA;If you want something attractive, look elsewhere. If you want results, it just works.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-11-08T20:09:05.920" LastActivityDate="2010-11-08T20:09:05.920" CommentCount="2" />
  <row Id="17721" PostTypeId="2" ParentId="17710" CreationDate="2010-11-08T20:14:10.687" Score="3" ViewCount="" Body="&lt;h2&gt;Consultant&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I did this for a while, and being a generalist is the #1 skill that will make you a success.  When people have a problem, they typically have been solving that problem one way for a long time, and need consultants to get a fresh perspective.  As a consultant you need to know about ALL KINDS of products, open source, closed source, Oracle, Microsoft, Red Hat.  You need to know what's good, what's bad, and what's best for the client.  Do be able to do that you need to be a generalist and know how to be an expert FAST.  To be an expert fast (without already being one), you need to know the core principles and practices of software development, without only knowing ONE implementation of them.  You need to be able to pick up things without having seen them before and within a short time be able to be proficient in it.  As a self-proclaimed generalist myself, consulting was the best career move, and the most fun I've had doing software development.  New experiences, new and diverse range of projects and technologies, good pay, and generalist traits help you succeed.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-11-08T20:14:10.687" CommentCount="1" />
  <row Id="17722" PostTypeId="1" CreationDate="2010-11-08T20:17:23.070" Score="2" ViewCount="238" Body="&lt;p&gt;I think I once saw a survey of prominent computer scientists (or something like that), and what computers they use. But I can't find it! Is there such a survey out there? I'm interested to see what the experts use; I think I recall the most widely used computer being the MacBook Pro, but I'm interested to see it again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sub&gt;Also if someone wants to tag this more correctly, that would be great...&lt;/sub&gt;&lt;/p&gt;&#xA;" OwnerUserId="1225" LastEditorUserId="4711" LastEditorDisplayName="" LastEditDate="2010-11-08T22:34:33.790" LastActivityDate="2010-11-08T23:10:08.860" Title="What computers are used by key figures in the Computer Science community?" Tags="&lt;computer-science&gt;&lt;hardware&gt;" AnswerCount="2" CommentCount="0" FavoriteCount="1" />
  <row Id="17723" PostTypeId="2" ParentId="17722" CreationDate="2010-11-08T20:27:32.653" Score="1" ViewCount="" Body="&lt;p&gt;The best (and only?) resource that answers just that question: &lt;a href=&quot;http://usesthis.com/&quot; rel=&quot;nofollow&quot;&gt;usesthis.com&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5635" LastEditorUserId="5635" LastEditorDisplayName="" LastEditDate="2010-11-08T23:10:08.860" LastActivityDate="2010-11-08T23:10:08.860" CommentCount="13" />
  <row Id="17724" PostTypeId="2" ParentId="17722" CreationDate="2010-11-08T20:31:58.740" Score="0" ViewCount="" Body="&lt;p&gt;Academia. Bound to use Apple stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Meanwhile, in IRL... :-)&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-11-08T20:31:58.740" />
  <row Id="17725" PostTypeId="2" ParentId="17715" CreationDate="2010-11-08T20:32:49.490" Score="8" ViewCount="" Body="&lt;p&gt;What a great position you've found yourself in... 2 good companies, who want you in their stable.... Nice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if I were in your position this is what I would do.  If I enjoyed working for both companies equally and it came down to perks, I would do the honorable thing and tell your bosses that the consulting gig has made you an offer that you are considering.  Tell them about the things that are important to you, working from home, more money/profit sharing, etc.  Let them tell you they want you or not.  Communicating with your boss can't be a bad thing, and if it is... its time for a new boss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be nice about it, don't make it into an aultimatum (even if it may be).  They've been good to you, you've enjoyed working there, don't burn the bridge before you even leave.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-08T20:38:00.613" LastActivityDate="2010-11-08T20:38:00.613" CommentCount="2" />
  <row Id="17726" PostTypeId="2" ParentId="17710" CreationDate="2010-11-08T20:43:30.147" Score="0" ViewCount="" Body="&lt;p&gt;I think working for a smaller company, if you can find a good one, is the way to go. I once I had a job where my duties entailed being the web developer, sysadmin, content writer, online marketer/&quot;SEO&quot;, and general office tech support. Daunting at times, but it was a lot of fun and a good learning experience   &lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-11-08T20:43:30.147" />
  <row Id="17727" PostTypeId="2" ParentId="17582" CreationDate="2010-11-08T21:01:06.280" Score="1" ViewCount="" Body="&lt;p&gt;Everyone has their own choices but my choice is Dojo.It is just too good and takes away a lot of your headaches. But yes if you are looking for all those third party extensions and stuff, then jQuery might be better for you, and yes jQuery definitely has a larger community than dojo , but believe me that wont hurt much. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dojo might be a lot confusing in the beginning but it is worth the time you spend on it.&lt;/p&gt;&#xA;" OwnerUserId="5701" LastActivityDate="2010-11-08T21:01:06.280" />
  <row Id="17728" PostTypeId="2" ParentId="17200" CreationDate="2010-11-08T21:07:52.570" Score="1" ViewCount="" Body="&lt;p&gt;&#xA;&lt;a href=&quot;http://developer.amd.com/cpu/CodeAnalyst/codeanalystwindows/Pages/default.aspx&quot; rel=&quot;nofollow&quot;&gt;AMD CodeAnalyst&lt;/a&gt; for performance analysis. It's free, integrates to Visual Studio (but works standalone as well). Despite its producer, it works fine also on Intel processors.&#xA;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&#xA;&lt;a href=&quot;http://www.softwareverify.com/cpp/memory/index.html&quot; rel=&quot;nofollow&quot;&gt;MemoryValidator&lt;/a&gt; from SoftwareVerify is a great tool for memory bug tracking. It's quite costly but definitely worth the money - easy to use, no need to recompile/relink your code and has a plenty of features.&#xA;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&#xA;On my Linux machine I use Valgrind for all the memory bug tracking - it's great and there's no real competition for it.&#xA;&lt;/p&gt;&#xA;" OwnerUserId="1309" LastActivityDate="2010-11-08T21:07:52.570" CommentCount="0" />
  <row Id="17729" PostTypeId="1" CreationDate="2010-11-08T21:11:13.800" Score="13" ViewCount="956" Body="&lt;p&gt;I am programmer who just started working on a startup idea. At the moment I want to bring onboard at least one programmer. This programmer should be a ninja - a 10x engineer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since early days are probably the most risky for a startup, I want to make sure I approach this problem the best I can. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do I find these people? and How do I convince them to come onboard?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would love to hear from people who started their own companies and what their thoughts are about hiring&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: I would like to get the ninja as a co-founder so besides being a ninja (ie. great programmer with computer science background) he/she has to have a healthy appetite for risk (for great programmers this is not a big deal because they can be hired anytime into mainstream jobs if the startup doesn't work)&lt;/p&gt;&#xA;" OwnerUserId="6975" LastEditorUserId="6975" LastEditorDisplayName="" LastEditDate="2010-11-08T23:11:22.027" LastActivityDate="2010-11-09T14:05:23.130" Title="how do early stage startups hire ninja programmers" Tags="&lt;hiring&gt;&lt;startups&gt;" AnswerCount="12" CommentCount="12" FavoriteCount="7" />
  <row Id="17730" PostTypeId="2" ParentId="17729" CreationDate="2010-11-08T21:23:25.337" Score="34" ViewCount="" Body="&lt;p&gt;Pay lots of money. If they can't do that they offer stock options and nice perks like free food, drink, nice working environment with latest equipment and good benefits. Basically you have to give them something worthwhile, no one is interested in making you rich for their toil.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-08T21:23:25.337" CommentCount="13" />
  <row Id="17732" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T21:31:43.210" Score="1" ViewCount="" Body="&lt;p&gt;I used to have to fill out time sheets at all previous companies, but not in my current gig.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mostly it seemed like a pointless exercise except in one case: a company I worked for where we were directly billing clients for our developers' time. This was understandable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with timesheets in typical software work is that the work is too dynamic to fit into nice little bundles. For example, in my current gig: in a typical hour I might spend 17 minutes responding to emails from Marketing, 11 minutes answering questions from Helpdesk regarding some client issue, 12 minutes helping out a newbie colleague with something, and 20 minutes actually working on an official CR issue that can be clearly timesheeted. Mix these intervals up randomly, and there you have a typical senior developer's hour.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not every hour of every day is like this of course, but it's like this often enough to make timesheets pretty well pointless around here. Unless you're trying to measure how much time is being spent on a particular billable task (which is never the case here), they're basically a waste of time (both developer time and payroll time).&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-08T21:31:43.210" CommunityOwnedDate="2011-01-28T18:20:56.797" />
  <row Id="17733" PostTypeId="2" ParentId="17729" CreationDate="2010-11-08T21:49:48.437" Score="6" ViewCount="" Body="&lt;p&gt;Get a booth at a developer conference. Demonstrate a proof-of-concept and let people know you're hiring.&lt;/p&gt;&#xA;" OwnerUserId="73" LastActivityDate="2010-11-08T21:49:48.437" />
  <row Id="17734" PostTypeId="2" ParentId="17729" CreationDate="2010-11-08T21:53:00.190" Score="6" ViewCount="" Body="&lt;p&gt;I think your main challenge will be identifying the superstar programmers. You'll get all kinds of applicants if you just say &quot;I'll give you a truckload of money.&quot; The choice of programming language will help. Your applicants will be mostly commodity programmers if you use C# or Java. By commodity programmers I mean those who are only doing programming for the money and don't care about learning anything beyond what is necessary to complete whatever task happens to be in front of them. EDIT: I'm not claiming that all C#/Java programmers have this attitude. I personally know some who are very competent and dedicated. But finding them can be difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you use Haskell or Common Lisp, commodity programmers won't be interested because there aren't large numbers of Haskell and Common Lisp jobs posted on search sites [EDIT: not to mention the standard criticisms of Haskell (looks like line noise, slow) and Common Lisp (archaic, too many parentheses, macros are dangerous)]. You'll get people who are very dedicated to learning and able to pick up powerful concepts that the average developer would have trouble with. Examples of these concepts would be monads in Haskell or Lisp macros. If you want the best, these are the people you want.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastEditorUserId="5621" LastEditorDisplayName="" LastEditDate="2010-11-09T14:05:23.130" LastActivityDate="2010-11-09T14:05:23.130" CommentCount="12" />
  <row Id="17735" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T22:01:22.437" Score="1" ViewCount="" Body="&lt;p&gt;Several jobs ago, in a different country to the one I now live in, we didn't do time sheets. We got paid a salary. If the work was getting done, then that was the end of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I moved to Australia, time sheets everywhere. Paid what was called a &quot;salary&quot;, but with time sheets, and hours recorded. Not quite my commonwealth understanding of a salaried position vs a waged one.  &lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-11-08T22:01:22.437" CommunityOwnedDate="2011-01-28T18:20:56.797" />
  <row Id="17737" PostTypeId="2" ParentId="17729" CreationDate="2010-11-08T22:02:19.140" Score="11" ViewCount="" Body="&lt;p&gt;Networking is required not only for job hunters, but for employers as well.  Go to meetups and conferences and try to find good programmers who are on the market.  I'm the last person in the world who should be giving you advice on how to do that (I &lt;em&gt;hate&lt;/em&gt; networking), but it's worth mentioning.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-08T22:02:19.140" CommentCount="1" />
  <row Id="17738" PostTypeId="1" AcceptedAnswerId="17742" CreationDate="2010-11-08T22:02:59.207" Score="8" ViewCount="228" Body="&lt;p&gt;If you are doing code reviews&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How much time do you spend on code reviews, compared to implementation?&lt;/li&gt;&#xA;&lt;li&gt;How much of the changes undergo code review?&lt;/li&gt;&#xA;&lt;li&gt;you think it's to much / should be more?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Are there any studies about effectiveness?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[edit] thank you all for the answers, it's hard to pick a &quot;winner&quot; for such a question, there is lots of valuable info in the other replies, too.&lt;/p&gt;&#xA;" OwnerUserId="7313" LastEditorUserId="7313" LastEditorDisplayName="" LastEditDate="2010-11-22T11:16:08.197" LastActivityDate="2010-11-22T11:16:08.197" Title="Time allocated to code reviews" Tags="&lt;time-management&gt;&lt;code-reviews&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="4" />
  <row Id="17739" PostTypeId="2" ParentId="17729" CreationDate="2010-11-08T22:06:36.347" Score="4" ViewCount="" Body="&lt;p&gt;I think that in most situations they use the &lt;a href=&quot;http://en.wikipedia.org/wiki/Texas_sharpshooter_fallacy&quot; rel=&quot;nofollow&quot;&gt;Texas Sharpshooter recruiting approach&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, they hire the best they can find, then call them &quot;Ninjas&quot;, &quot;Rock stars&quot;, or whatever it takes to convince the VC guys that their Web 2.0 App will be da-bomb and no one else could possibly compete with them.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-08T22:06:36.347" CommentCount="1" />
  <row Id="17740" PostTypeId="2" ParentId="370" CreationDate="2010-11-08T22:21:13.997" Score="3" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Personally&lt;/em&gt;, I wouldn't want a job that I had to get by hiding how old I was (Full disclosure:  I'm 27, so that isn't an issue for me).  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Or that I should focus more on management jobs (which I've successfully done in the past) because… well, they couldn't really explain this one, except the implication was that over a certain age you're a loser if you're still writing code. But I like writing code.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I think you have 2 things working against you:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Older programmers have more experience and cost more money.&lt;/li&gt;&#xA;&lt;li&gt;I think that software shops in Silicon Valley (if you'd consider that Northern California) have adapted an &quot;up or out&quot; mentality.  If you've reached a certain age and you haven't started your own company or at least taken on a leadership role in one, then you must either really not be passionate about the software business or you must not be that good at it.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I'm not saying these lines of reasoning are correct or that I agree with them.  I'm just saying that's the way it is.  These two issues are going to be a big deal if you want a startup job, but they will probably be less of an issue if you are finding a job for a more established company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, have you considered applying for a Tech Lead or Architect job?  They're &quot;more advanced&quot; positions that aren't necessarily management gigs.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-08T22:21:13.997" />
  <row Id="17741" PostTypeId="2" ParentId="17729" CreationDate="2010-11-08T22:21:39.357" Score="16" ViewCount="" Body="&lt;p&gt;According to &quot;Rapid Development&quot;, the following factors are the top 10 motivators for programmers.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Achievement&lt;/li&gt;&#xA;&lt;li&gt;Possibility for growth&lt;/li&gt;&#xA;&lt;li&gt;Work itself&lt;/li&gt;&#xA;&lt;li&gt;Personal life&lt;/li&gt;&#xA;&lt;li&gt;Technical-supervision opportunity&lt;/li&gt;&#xA;&lt;li&gt;Advancement&lt;/li&gt;&#xA;&lt;li&gt;Interpersonal relations, peers&lt;/li&gt;&#xA;&lt;li&gt;Recognition&lt;/li&gt;&#xA;&lt;li&gt;Salary&lt;/li&gt;&#xA;&lt;li&gt;Responsibility&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If you want to hire a top-tier developer, you need to consider what's most important to software developers and offer your prospective developer what he wants: a challenging, satisfying project that won't take over his life.&lt;/p&gt;&#xA;" OwnerUserId="4711" LastActivityDate="2010-11-08T22:21:39.357" CommentCount="3" />
  <row Id="17742" PostTypeId="2" ParentId="17738" CreationDate="2010-11-08T22:35:51.307" Score="4" ViewCount="" Body="&lt;p&gt;At my work we have the following &lt;a href=&quot;http://programmers.stackexchange.com/questions/1224/whats-the-most-effective-way-to-perform-code-reviews/14954#14954&quot;&gt;procedure&lt;/a&gt; for code reviews.  It has worked well for us so far, and we found it to be very time-efficient, especially in terms of man-hours.  We do not really have any specific time allocated to the reviews.  Every commit or merge to the trunk must be reviewed, and it takes as long as it takes for the reviewer to ok it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:&#xA;The time it takes, of course, depends on the magnitude of the change.  Small features and bug fixes take minutes.  Large new features, refactorings, or changes that affect many parts of the system can take half a day to review and another day to address all the issues that come up as a result.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To make this system work it is crucial to commit to the trunk often, so that the changes are of manageable size.  You do not want to have the situation when you have to review a year's worth of somebody's code.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastEditorUserId="4365" LastEditorDisplayName="" LastEditDate="2010-11-09T12:00:05.893" LastActivityDate="2010-11-09T12:00:05.893" CommentCount="1" />
  <row Id="17744" PostTypeId="2" ParentId="17568" CreationDate="2010-11-08T22:36:27.713" Score="1" ViewCount="" Body="&lt;p&gt;I'll fill out timesheets if necessary (like we have billable hours that a client needs to know about), but in general I dislike the whole idea for a few reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I forget them.  Nine times out of ten, I end up forgetting for a couple of days and then go back and fill it in with mostly inaccurate info.&lt;/li&gt;&#xA;&lt;li&gt;I'm an adult who is very capable of allocating my own time.  If I'm spending too much time on something, I'll let my manager know.  I don't need &lt;em&gt;them&lt;/em&gt; to tell me when I'm spending too much time on something.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-08T22:36:27.713" CommunityOwnedDate="2011-01-28T18:20:56.797" />
  <row Id="17745" PostTypeId="2" ParentId="17729" CreationDate="2010-11-08T22:49:34.733" Score="2" ViewCount="" Body="&lt;p&gt;Start-ups are risky business. if I'm an expert in what you need, I'm going to want a piece of the profits (large piece) and a look at the business plan to make sure it looks as if this thing has a reasonable chance of success and a lot of perks and a top drawer salary (I doubt what you want to do is so interesting that these people will accept a pay cut.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In all honestly can you offer this? &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-08T22:49:34.733" CommentCount="3" />
  <row Id="17746" PostTypeId="2" ParentId="17729" CreationDate="2010-11-08T23:12:24.527" Score="4" ViewCount="" Body="&lt;p&gt;The start-ups that get the best programmers do tend to be the ones started by really great programmers. So, I guess, Mission A is to become a really great programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing I will say- when I worked freelance there were a lot of people who &quot;had this really great idea&quot; but they wouldn't say what it was unless I was ready to sign a 200 page nda and really commit to definitely working on that idea. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's been said before and it will be said again but &lt;a href=&quot;http://www.codinghorror.com/blog/2010/01/cultivate-teams-not-ideas.html&quot; rel=&quot;nofollow&quot;&gt;success is rarely determined by the quality of your ideas.&lt;/a&gt; Really programmers don't care about your ideas they're more about execution.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-08T23:12:24.527" CommentCount="1" />
  <row Id="17747" PostTypeId="2" ParentId="370" CreationDate="2010-11-08T23:13:48.520" Score="0" ViewCount="" Body="&lt;p&gt;There is no such thing as too old, though being located near Silicon Valley will prove to be a struggle when it comes time to find a job because there will be many new advanced programmers right out of college who are ready to do anything because they are excited about having a job and are willing to work long and hard for low pay.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, I believe that you should move towards the managerial jobs because of the higher pay and because you are older it will be easier to find a job.  Plus if you have programming experience it will be another key point that will make someone want to hire you. My Dad works as a chief officer at a technology company and he has some programming knowledge (not much) and they often make him take care of some of the issues which he has to fix by hand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You overly qualified for the job and nobody wants to pay more for a programmer when they can hire a just out of college student for next to nothing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really want to be a programmer I would find some other sort of job, preferably management related (good pay), and on the side you can work on your own projects which will both keep you up-to-date with coding and may eventually provide you with a second income source (or many primary if it gets big).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wish you the best of luck in your search for a new career.&lt;/p&gt;&#xA;" OwnerUserId="7280" LastActivityDate="2010-11-08T23:13:48.520" />
  <row Id="17748" PostTypeId="2" ParentId="17355" CreationDate="2010-11-08T23:21:49.940" Score="1" ViewCount="" Body="&lt;p&gt;This &lt;a href=&quot;http://en.wikipedia.org/wiki/Quine_(computing)&quot; rel=&quot;nofollow&quot;&gt;Quine&lt;/a&gt; from the &lt;a href=&quot;http://www.catb.org/~esr/jargon/html/Q/quine.html&quot; rel=&quot;nofollow&quot;&gt;Jargon File&lt;/a&gt; in C:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;char*f=&quot;char*f=%c%s%c;main(){printf(f,34,f,34,10);}%c&quot;;main(){printf(f,34,f,34,10);}&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;There is also a LISP version there, too, but you can find &lt;em&gt;many&lt;/em&gt; others floating around, in pretty much any language you could imaging...&lt;/p&gt;&#xA;" OwnerUserId="7314" LastActivityDate="2010-11-08T23:21:49.940" CommunityOwnedDate="2010-12-03T10:46:42.217" />
  <row Id="17749" PostTypeId="2" ParentId="17355" CreationDate="2010-11-08T23:34:55.593" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Infinite Fibonacci Sequence (Haskell)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;fibs = 0 : 1 : zipWith (+) fibs (tail fibs)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="255" LastActivityDate="2010-11-08T23:34:55.593" CommunityOwnedDate="2010-12-03T10:46:42.217" />
  <row Id="17750" PostTypeId="2" ParentId="11312" CreationDate="2010-11-08T23:35:43.883" Score="1" ViewCount="" Body="&lt;p&gt;In decreasing order of importance.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Dual monitor or a very large monitor (e.g 27-30 inches)&lt;/li&gt;&#xA;&lt;li&gt;Whiteboard for doodling&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.amazon.com/QuietComfort%C2%AE-Acoustic-Noise-Cancelling%C2%AE-Headphones/dp/B000GFDC7C&quot; rel=&quot;nofollow&quot;&gt;Bose noise cancellation headphones&lt;/a&gt; for e&lt;/li&gt;&#xA;&lt;li&gt;A Reference library (physical or virtual like &lt;a href=&quot;http://my.safaribooksonline.com/-&quot; rel=&quot;nofollow&quot;&gt;O'reilly safari&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Access to m&amp;amp;m and beverages &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6975" LastActivityDate="2010-11-08T23:35:43.883" CommunityOwnedDate="2010-11-08T23:35:43.883" />
  <row Id="17751" PostTypeId="2" ParentId="10989" CreationDate="2010-11-08T23:39:51.633" Score="1" ViewCount="" Body="&lt;p&gt;my interpretation: linus is a troll. a clever meme generator&lt;/p&gt;&#xA;" OwnerUserId="6975" LastActivityDate="2010-11-08T23:39:51.633" CommentCount="2" />
  <row Id="17752" PostTypeId="2" ParentId="17355" CreationDate="2010-11-08T23:47:54.990" Score="0" ViewCount="" Body="&lt;p&gt;euler's identity which links the most beautiful numbers in math universe: 1, 0, e, i and π : &lt;strong&gt;e^i(π) + 1 = 0&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="6975" LastActivityDate="2010-11-08T23:47:54.990" CommunityOwnedDate="2010-12-03T10:46:42.217" />
  <row Id="17753" PostTypeId="2" ParentId="9922" CreationDate="2010-11-08T23:54:53.590" Score="0" ViewCount="" Body="&lt;p&gt;you should read this &lt;a href=&quot;http://stallman.org/articles/on-hacking.html&quot; rel=&quot;nofollow&quot;&gt;article&lt;/a&gt; by richard stallman, Mr. OH (original hacker), for the history of the term&lt;/p&gt;&#xA;" OwnerUserId="6975" LastActivityDate="2010-11-08T23:54:53.590" />
  <row Id="17754" PostTypeId="2" ParentId="17738" CreationDate="2010-11-08T23:58:31.567" Score="2" ViewCount="" Body="&lt;p&gt;In our project, every significant change to the system is reviewed by the team leader or together with another developer who's gonna be the main &quot;consumer&quot; of the new module. We talk on skype and either use Rudel in Emacs (a plugin for collaborative editing, basically it allows several users to edit the same file live), or TypeWith.me (Piratepad), or one of us shares his screen in skype.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's hard to quantify this, because mundane changes, like new views, pages, etc. are not reviewed. We do review new modules, major updates and refactorings. As for big changes, code review can take from 10% to 30% of time, but it's worth that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can say pair programming, when 2 programmers do edit the same file at the same time, not just sit at the same computer, is a lot better than the usual office practice of sitting behind one's shoulder.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For simple things like naming conventions and scope errors we use our own or open source automatic tools (jslint, pylint, pyflakes, pep8). And we don't limit commits and pushes: we use Mercurial which has very easy branching and merging (I have to say, easier than in Git). Bugs are not a code review matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We do team meetings where the changes and new things are announced, but there, not everyone really pays attention. Probably we should do a bit more code reviews.&lt;/p&gt;&#xA;" OwnerUserId="5545" LastActivityDate="2010-11-08T23:58:31.567" />
  <row Id="17757" PostTypeId="1" CreationDate="2010-11-09T00:27:21.343" Score="7" ViewCount="436" Body="&lt;p&gt;I'm asking the question that I hoped the original &lt;a href=&quot;http://programmers.stackexchange.com/questions/16999/wanted-a-cowboy-coding-language-closed&quot;&gt;&quot;WANTED: A cowboy coding language&quot;&lt;/a&gt; was asking when I clicked on it:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a &quot;Software Engineer&quot; I don't consider myself a cowboy, but there are times when I need a quick-and-dirty solution to a problem.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I need to reformat data into a form that can be imported by an existing program&lt;/li&gt;&#xA;&lt;li&gt;I need to reduce data collected during a test run.&lt;/li&gt;&#xA;&lt;li&gt;I need a proof-of-concept, an answer to &quot;will this algorithm work at all?&quot;&lt;/li&gt;&#xA;&lt;li&gt;I need a mock-up of the program on the other end of the interface document I'm coding to.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What is the best &quot;Cowboy Coding&quot; language - the one that lets you get results the fastest, with the least overhead; the one where you spend less time worrying about the rules of the language and more time focusing on the details of the problem?&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-11-09T02:22:47.910" ClosedDate="2010-11-09T02:52:31.613" Title="WANTED: A _real_ cowboy coding language" Tags="&lt;programming-languages&gt;&lt;language-features&gt;&lt;cowboy-coding&gt;&lt;language-choice&gt;" AnswerCount="5" CommentCount="8" FavoriteCount="1" />
  <row Id="17758" PostTypeId="2" ParentId="17757" CreationDate="2010-11-09T00:42:53.687" Score="7" ViewCount="" Body="&lt;p&gt;In my humble opinion, &lt;strong&gt;Perl&lt;/strong&gt; and &lt;strong&gt;Python&lt;/strong&gt; should fit your requirements like glove to a hand.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-09T00:42:53.687" CommentCount="6" />
  <row Id="17759" PostTypeId="2" ParentId="17757" CreationDate="2010-11-09T00:44:45.303" Score="6" ViewCount="" Body="&lt;p&gt;It depends. My default tool for most tasks is Common Lisp (or perhaps a Scheme, depending on what I need specifically) because I can get a prototype up and running quickly, but I also know I can easily refactor if it turns out that the &quot;prototype&quot; is going to have to serve some time in production.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For quick and dirty one-offs, the specific task can matter a great deal. For reformatting/reducing data, I swear by Ruby/Perl (depending on specifically what kind of data). For testing a concept or algorithm, I'd reach for CL (but I get the feeling many would rightly reach for Haskell for the same purpose). If you need a website right goddamn now, php (or RoR, if you're into that sort of thing) is about as quick and dirty as you can get.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The situation you're in, and the libraries it calls for are really what will answer this question for you more than the languages those libraries happen to be associated with.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-09T00:44:45.303" CommentCount="1" />
  <row Id="17760" PostTypeId="2" ParentId="17696" CreationDate="2010-11-09T00:47:52.107" Score="1" ViewCount="" Body="&lt;p&gt;The main requirement for a requirement is that it is testable.  If you can't figure out how to test a requirement, the odds are that it won't be implemented the way the writer intended.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never seen a requirements document limited to Functions and Constraints only, but I can see some value in having a structure like this - it forces the writer to categorize the requirements into &quot;things the software needs to do&quot;, and &quot;rules the software needs to follow.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think a user interface has requirements in both categories&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Constraints:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;the startup screen shall display two buttons: &quot;Start&quot;, and &quot;Stop&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;The display font shall be no smaller than 10 point.&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Functions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;When the &lt;code&gt;Start&lt;/code&gt; key is pressed, the software shall establish a TCP/IP connection to &lt;a href=&quot;http://en.wikipedia.org/wiki/WOPR&quot; rel=&quot;nofollow&quot;&gt;WOPR&lt;/a&gt;&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-11-09T00:47:52.107" />
  <row Id="17761" PostTypeId="1" AcceptedAnswerId="17925" CreationDate="2010-11-09T01:15:36.297" Score="2" ViewCount="168" Body="&lt;p&gt;I am a recent Software Technologist (3year) community college graduate. I graduated with honors. I invest a lot of personal time studying computer science topics. I have been recently hired at an Engineering Firm. I am extremely interested in the companies area of work. It deals with a lot of level elements and I find it very rewarding. However, this is where the problem comes in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am the only Software Technologist and I work directly with several Engineers that develop software. The company is very hierarchal and Engineers get big private desks and Technologists work in a separate smaller room and work very closely. I am the only Software Technologist in the group. I find it a bit strange that I am sitting beside technologist/technicians in various other trades (other than software) but I am happy with my work and the Engineers stop by often to provide work or provide some background on the next big project. I am comfortable with this and I understand and respect the companies structure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the company has done some reorganizing within the building and many people have been shifting around. People have been working where ever there is room. I have been temporarily moved into a room with the other Software developer (all engineers). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Today an Engineer (non software) popped in our office and pronounced that the companies boss had gone around and asked everyone where they were sitting. As the story goes the boss of the company asked one member where he was sitting and then laughed at him. The engineer proceeded to say &quot;he [the member that was laughed at] says he has more experience, but were engineers, not common folk&quot;. (Quoted as accurately as possible) He continued to boast a bit more. This was said in front of me and my peers. I vividly recall one Engineer laughing, I am not sure about the others. My boss was also in the room. I felt very degraded and I regret not saying anything. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How would you take this situation? I really enjoy my work. As a software technologist I feel extremely lucky to be working in an engineering environment. I feel betrayed by my software peers and my boss. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let me say first and foremost I understand that I am a junior employee and I will given a support role which includes jobs that senior developers do not want or have time for. I am very comfortable with this and I look at it as a great learning experience. However, I worry that if I stay with this company long enough they will eventually hire another engineer who will automatically trump me. If the engineers really feel that I am a &quot;common folk&quot; I do not want to work there. I recognize that they are P Engs. and they have put a lot of significant time into their degree and I have a lot of respect for that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have several questions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What should I do about the overall disrespect and how should I handle it?&lt;/li&gt;&#xA;&lt;li&gt;How do you feel knowing that your experience will mean very little to a company with respect to a newly minted engineer? (This is not an immediate concern but a long term concern. I am very interested in pursuing additional courses and education but I doubt I will be able to take time to upgrade to a degree.)&lt;/li&gt;&#xA;&lt;li&gt;What should my long term goals be? (I really enjoy low level programming and working in instrumentation and electronics.)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Clarification:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;An Engineer has a Professional Engineering degree from a certified University. (I am not sure about other Countries but in Canada you must be from a certified University to get a Engineering Degree. An Engineering degree ranges from Civil, Mechanical, Electrical-Software, etc... (BEng - Bachelor of Engineering oppose to BA - Bachelor of Arts, or BSci, BEdu etc...)&lt;/li&gt;&#xA;&lt;li&gt;A Technologist is from a Community College which is a (3year diploma).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1328" LastEditorUserId="1328" LastEditorDisplayName="" LastEditDate="2010-11-09T03:55:19.247" LastActivityDate="2010-11-09T17:04:26.620" Title="Software Technologist in An Engineering Based Firm" Tags="&lt;jobs&gt;&lt;software-engineering&gt;&lt;colleagues&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="1" />
  <row Id="17762" PostTypeId="2" ParentId="17757" CreationDate="2010-11-09T01:16:22.463" Score="2" ViewCount="" Body="&lt;p&gt;I'm know I'm going to get positively &lt;em&gt;filleted&lt;/em&gt; for this, but I oftentimes use &lt;strong&gt;Real Studio (REALbasic)&lt;/strong&gt; for a lot of proof-of-concept work, particularly getting data from one format to another, or mocking up a proof-of-concept interface (though it is capable of doing so much more).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dead simple language to master, no-brainer library management (no manual importing; everything is available), full OOP, but sadly constrained to a not-free, proprietary IDE, though it is about as RAD as it gets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not ideal but I work in a strange, niche programming environment, anyway.&lt;/p&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2010-11-09T01:16:22.463" />
  <row Id="17763" PostTypeId="2" ParentId="17761" CreationDate="2010-11-09T01:27:56.443" Score="2" ViewCount="" Body="&lt;p&gt;You never really explained what the difference between an &quot;engineer&quot; and a &quot;software technologist&quot; are.  Is it a difference in experience or a difference in fundamental duties?  If the engineers have it better, try to find out what it will take for you to become an engineer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that isn't feasible--for example if it would require a different degree--and you don't see your position improving much in the future, check out one other thing.  Take a look around and see how good the opportunities for learning are.  If you're fresh out of college, there's a lot you don't know yet, and working at a company that produces commercial products can teach you a lot of stuff about development that you'll never learn in school.  If there's learning and self-improvement to be found, stick around long enough to absorb that much at least.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if it doesn't look like there's much there that you'll be able to pick up, then I'd start quietly looking around for a better work environment.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-11-09T01:27:56.443" CommentCount="1" />
  <row Id="17764" PostTypeId="2" ParentId="9922" CreationDate="2010-11-09T01:33:11.623" Score="2" ViewCount="" Body="&lt;p&gt;There's a &lt;a href=&quot;http://www.catb.org/jargon/html/H/hacker.html&quot; rel=&quot;nofollow&quot;&gt;hacker definition&lt;/a&gt;, you should read it:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://www.catb.org/jargon/html/index.html&quot; rel=&quot;nofollow&quot;&gt;Jargon File&lt;/a&gt;, having a &lt;a href=&quot;http://www.catb.org/jargon/html/revision-history.html&quot; rel=&quot;nofollow&quot;&gt;long history&lt;/a&gt; as the accepted lexicon of hacker vocabulary and culture, is the most authoritative source on the subject.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In case the definition from hackers themselves isn't &quot;official&quot; enough for you, there's always the definition from &lt;a href=&quot;http://tools.ietf.org/html/rfc1392&quot; rel=&quot;nofollow&quot;&gt;RFC 1392&lt;/a&gt;, an international standard published by the &lt;a href=&quot;http://www.ietf.org/&quot; rel=&quot;nofollow&quot;&gt;IETF (Internet Engineering Task Force)&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A person who delights in having an intimate understanding of the internal workings of a system, computers and computer networks in particular.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Both definitions mention that pejorative uses of &quot;hacker&quot; to describe someone engaged in subverting technology for nefarious purposes is &lt;em&gt;incorrect&lt;/em&gt;.  The correct term for such a person is &quot;cracker&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I am &lt;em&gt;proud&lt;/em&gt; to be a hacker.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;I have never been satisfied to accept technology as it exists.  I've had a hand in improving dozens of open source software projects.  When I have a problem, not only do I solve it, but I try to spread the solution to others.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I'm addicted to problems.  I don't wait to be taught how to do something, if I need to understand a new technology, I do my own research then dive into the source code.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&quot;Good enough&quot; is not good enough.  I approach everything I do with an eye to making it better, whether it's tweaking that new pork chop recipe, improving my son's school, or writing a patch to make ticgit branches version-aware.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I want the best code, the best answers, the best tech, no matter from whom they come.  It's about an endless cycle of improving our craft, not about egos.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;That&lt;/em&gt; is why I am a hacker.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Misuse of the term &quot;hacker&quot; by those who just don't grok it, and perpetuation of the idea that such misuse has depleted the value in identifying as a hacker, are dangerous trends in the computer world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://esr.ibiblio.org/?p=2520&quot; rel=&quot;nofollow&quot;&gt;Hacker humor&lt;/a&gt;, and hacker culture in general play a &lt;a href=&quot;http://binaryredneck.net/node/170&quot; rel=&quot;nofollow&quot;&gt;vital role&lt;/a&gt; in making technology -- especially vital technologies rooted in open source -- work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before you blow it off, please do your research.  There are nontrivial sociological and technological consequences to blowing off hackerdom in the way many answers here have.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-09T01:33:11.623" CommentCount="1" />
  <row Id="17765" PostTypeId="2" ParentId="17757" CreationDate="2010-11-09T01:33:39.827" Score="4" ViewCount="" Body="&lt;p&gt;that would be either bash or python or c++ or haskell or lisp, dependent on the task.&#xA;fast prototyping will be in haskell and lisp and probably python. haskell and lisp, because they are functional languages. python has a few features from functional languages but is still imperative, so if you know how to program functional, you will probably prefer ancient lisp over python for some tasks. c++ is mostly the right choice for &quot;most&quot; algorithms (let us call them &quot;bit-shifting&quot; and &quot;memory-juggling&quot; algorithms like crypography, sorting and graph algorithms). but if you do need more type safety to make it really bug-hostile, there will be no way around haskell or similar languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;haskell will take some time to learn, and you will never have learned enough (so tell my 7 years), but it will be worth the effort. i'd suggest investing time into some other languages, one or two days each, before starting with haskell, because the start will be hard – probably impossible if you only know how to think in java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;my choices are c++ and haskell and bash. bash, because i did never practice to program in python, and the only few tasks to program, that i would do in python instead of haskell/c++, can easily be written in bash, too. but because of the huge delay of the steep and seemingly endless learning curve in haskell, i'd suggest learning python first, just because it is easy. learning lisp, erlang and prolog will you make a better programmer in other languages, too, and might prepare you for haskell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;whenever you learn a language, be prepared to love it just because you invested effort in it. flamewars are hobbys of soldiers who only know to think in their own language. so, to circumvent &lt;a href=&quot;http://paulgraham.com/avg.html&quot; rel=&quot;nofollow&quot;&gt;paul graham's blub paradox&lt;/a&gt;, you learn with the question &quot;what can i do easily with this&quot; and not &quot;how do i do things, which were easy in the other language&quot;.&lt;/p&gt;&#xA;" OwnerUserId="7258" LastActivityDate="2010-11-09T01:33:39.827" />
  <row Id="17766" PostTypeId="1" AcceptedAnswerId="17769" CreationDate="2010-11-09T01:56:13.787" Score="5" ViewCount="384" Body="&lt;p&gt;I saw &lt;a href=&quot;http://chat.stackoverflow.com/transcript/message/90605#90605&quot;&gt;this asked in the SO Tavern&lt;/a&gt;, so I'm posting the question here. I thought it an interesting question. (Of course it doesn't belong on SO, but I think it's OK here.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you add periods (or, as the OP wrote, &quot;full stops&quot;) in your code comments?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To keep it relevant, &lt;em&gt;why&lt;/em&gt;?&lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-11-09T15:45:14.423" Title="What are your thoughts on Periods/Full Stops in code comments?" Tags="&lt;code&gt;&lt;comments&gt;&lt;coding-style&gt;&lt;grammar&gt;" AnswerCount="9" CommentCount="1" />
  <row Id="17767" PostTypeId="2" ParentId="17766" CreationDate="2010-11-09T02:07:42.783" Score="1" ViewCount="" Body="&lt;p&gt;It depends. If I write up a big, proper paragraph explaining what a block of code does, then I punctuate it properly, like any other piece of proper writing. OTOH, when I just comment a single line of code, then I don't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? - Similar to why I write emails using proper writing, while I might use shorthand sentences in SMS messages. In one case I'm sitting down to write a proper block of text, so I just automatically &quot;do it properly&quot;, while in the other it's just a brief note to get a point across.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Real examples from my code:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quick note comment:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// check for vk_enter&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&quot;Proper&quot; method documentation:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// This method sets up a workspace tab with the given name. Each MDI window has a parent&#xA;// workspace specified when it's saved. The code which loads each MDI window then point it to&#xA;// the correct workspace.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-09T02:07:42.783" CommentCount="4" />
  <row Id="17768" PostTypeId="2" ParentId="17766" CreationDate="2010-11-09T02:08:20.217" Score="4" ViewCount="" Body="&lt;p&gt;If I write a full sentence (or more), then yes. If I don't, then sometimes no, but usually still yes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also sometimes go crazy and use exclamation points, question marks, etc. ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for why, it's partly because I'm just particular like that and partly because I find that appropriate punctuation can add a lot of clarity.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-11-09T02:08:20.217" CommentCount="4" />
  <row Id="17769" PostTypeId="2" ParentId="17766" CreationDate="2010-11-09T02:09:56.570" Score="18" ViewCount="" Body="&lt;p&gt;Full stop is for separating sentences. If a comment consists of just one sentence surrounded by code, then full stop is not necessary. Sometimes I even don't capitalize the first letter. A detailed multiline comment, on the other hand, does need full punctuation.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// This function returns an average of two integers. Note that it may&#xA;// return an irrelevant result if the sum of a and b exceeds the int&#xA;// boundaries.&#xA;&#xA;int avg(int a, int b)   // make it static maybe?&#xA;{&#xA;    // A better algorithm is needed that never overflows&#xA;    return (a + b) / 2; &#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5635" LastEditorUserId="5635" LastEditorDisplayName="" LastEditDate="2010-11-09T08:17:12.430" LastActivityDate="2010-11-09T08:17:12.430" CommentCount="8" />
  <row Id="17770" PostTypeId="2" ParentId="17757" CreationDate="2010-11-09T02:22:47.910" Score="4" ViewCount="" Body="&lt;p&gt;Ruby or Python. I like Ruby. Other people like Python. As far as fast prototyping and quick coding, I've had great luck with both. I'm not a professional coder, I'm an academic, so all I do is quick and dirty coding, algorithm testing, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I prefer Ruby over Python for a couple of reasons. First, Ruby has looser syntax than Python. Second, I find Ruby to be more consistent: for some reason it annoys the heck out of me that an array length in Python is len(Array) instead of Array.length. Ruby doesn't have any extra bits: everything is in the same idiom. On the other hand, Python has list comprehensions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But for every reason that I prefer Ruby over Python, there's a reason that someone else likes Python more than Ruby.  &lt;/p&gt;&#xA;" OwnerUserId="6883" LastActivityDate="2010-11-09T02:22:47.910" />
  <row Id="17771" PostTypeId="2" ParentId="17766" CreationDate="2010-11-09T02:27:52.820" Score="12" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;Do you add periods (or, as the OP wrote, &quot;full stops&quot;) in your code comments?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;To keep it relevant, why?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the same reason I add them when writing &quot;normal&quot; text - they are a part of the language in writing, and there shouldn't be anything special about them. I use them equally when writing one sentence (one line) comments as well as whole paragraphs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Source code is not normal text, and therefore we use different rules for it. Simple ;-)&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-09T02:27:52.820" CommentCount="5" />
  <row Id="17772" PostTypeId="2" ParentId="17766" CreationDate="2010-11-09T02:33:28.243" Score="9" ViewCount="" Body="&lt;p&gt;Yes, Because comments are in English, and proper English uses punctuation.&lt;/p&gt;&#xA;" OwnerUserId="5682" LastActivityDate="2010-11-09T02:33:28.243" CommentCount="5" />
  <row Id="17774" PostTypeId="2" ParentId="7993" CreationDate="2010-11-09T02:42:57.950" Score="1" ViewCount="" Body="&lt;p&gt;If the product owner is too busy be available to the team, that means that they aren't convinced that such time isn't productive towards the success of the project, or that the product owner doesn't care about the success of the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Presuming the former, it's your job to show the product owner how responsive an agile team can be to suggestions made by the product owner.  If you can demo changes in the software that were in response to his comments and suggestions, he may come to understand why his involvement is in his best interest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Above all, don't try to tell the product owner that this is what &lt;em&gt;you&lt;/em&gt; need.  Agile development is about solving his problems, don't let him think for a minute agile means that he has to solve your problems.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-11-09T02:42:57.950" />
  <row Id="17775" PostTypeId="2" ParentId="17226" CreationDate="2010-11-09T02:48:23.597" Score="0" ViewCount="" Body="&lt;p&gt;Ohhh, so many. I've worked on quite a few agile projects using open source apis. Great when they work, but often we have suffered developers with a fetish for bringing in all sorts of 3rd party apis, some obscure, some not, just because they want to use one or two classes in them. The end result being a mish-mash of code and hacked together systems. They hand it over claiming it's the best code ever, leave and the poor slobs who pick it up find an unintelligible, undocumented mess full of dependency issues and hacks.&lt;/p&gt;&#xA;" OwnerUserId="6947" LastActivityDate="2010-11-09T02:48:23.597" />
  <row Id="17776" PostTypeId="2" ParentId="6045" CreationDate="2010-11-09T02:53:00.260" Score="0" ViewCount="" Body="&lt;p&gt;Fixed price / fixed deadline / fixed scope can be done at least as well agile as it can be in waterfall.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In waterfall, time estimations are inaccurate, and details end up being implemented differently than the original specifications.  In other words, the deadline/scope can't be known exactly in advance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In agile, you can do sprint zero to generate a backlog of user stories, and make some estimations.  Then agree to meet the value stories for a fixed price, by a fixed deadline.  The scope is fixed in terms of the value stories that you intend to fulfill, and no promises are made about user stories.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, you promise to deliver what matters, and avoid making promises about specific design decisions that are unrelated to the revenue/savings/etc. that the project is supposed to deliver.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-11-09T02:53:00.260" />
  <row Id="17777" PostTypeId="2" ParentId="17568" CreationDate="2010-11-09T02:54:04.530" Score="1" ViewCount="" Body="&lt;p&gt;Our timesheet application is also used to track vacation and expense reports. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Entering time is done to a granularity of 1/2 hour. This is done for reporting purposes to senior managers. Some of the developers refuse to do it and thus end up getting tasked about quarterly to stop working and get their time up to date. I try to remind the guys if they spend 12 hour days, and they write 8 hours, the idiots up top will get the idea we don't need any new developers at all - we can handle the load. We had a death march that involved 7-day workweeks for many months over last winter. Half the devs wrote 40hr/week in the reporting app, while several of us reported actual numbers. By federal law, programmers are &quot;exempt&quot; (which means exempt from overtime in the absence of a union contract to the contrary), so reporting overtime won't get us paid overtime, but the numbers will still show up in reports.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Time spent working on bugs and new code is tracked (sort of) in Team Foundation Server and we only track it with a granularity of 1 whole day. This we're trying to do in order to get better at estimating how much time it will take to do things, as our estimation process is off by -25% to +1000%. At the moment, throwing darts at a calendar across the room is about as accurate as our estimating processes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The previous place used timesheets to bill clients, so if you spent 45 minutes working on a client's bug, then the client got billed for 45min.&lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-09T02:54:04.530" CommunityOwnedDate="2011-01-28T18:20:56.797" />
  <row Id="17778" PostTypeId="2" ParentId="17696" CreationDate="2010-11-09T02:59:15.947" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;When we write a software&#xA;  specification, under the topic &quot;User&#xA;  requirements definition&quot; we have to&#xA;  specify the &quot;Functions&quot; and&#xA;  &quot;Constraints&quot; only ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;A requirement is a combination of two things...&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What the thing does. Functional requirement.&lt;/li&gt;&#xA;&lt;li&gt;How well it does it. Non Functional requirement or &quot;Constraint&quot;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Does &quot;User Interface&quot; fall into&#xA;  &quot;functions&quot; or &quot;constraints&quot; ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I would say &quot;User Interface&quot; would be category of requirements as you have identified in your last question.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What are the major key areas&#xA;  (requirements) a software can be&#xA;  broken into (e.g. UI ) ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It depends on the software. You can group requirements based on parts of the system or you can group them based on use case or the business requirement that the functions are fulfilling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course all of this is secondary to your actual goal which is to determine a clear, unambiguous and testable description of the software system.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-11-09T02:59:15.947" />
  <row Id="17779" PostTypeId="1" AcceptedAnswerId="17782" CreationDate="2010-11-09T03:00:20.903" Score="10" ViewCount="1113" Body="&lt;p&gt;Which term correctly identifies those who enjoy and are involved with programming and technology, geek or nerd?&lt;/p&gt;&#xA;" OwnerUserId="67" LastEditorUserId="67" LastEditorDisplayName="" LastEditDate="2010-11-09T20:10:24.253" LastActivityDate="2011-02-16T21:06:40.150" ClosedDate="2011-02-18T11:53:02.570" Title="Is a programmer a Geek or Nerd?" Tags="&lt;terminology&gt;&lt;identity&gt;" AnswerCount="13" CommentCount="5" FavoriteCount="5" />
  <row Id="17780" PostTypeId="2" ParentId="17779" CreationDate="2010-11-09T03:03:11.730" Score="29" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Bw14u.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/nlhb1.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-09T03:03:11.730" CommentCount="3" />
  <row Id="17781" PostTypeId="2" ParentId="17779" CreationDate="2010-11-09T03:04:03.603" Score="5" ViewCount="" Body="&lt;p&gt;The majority of programmers are geeks.  Those that truly excel at it are nerds.  But nobody &lt;em&gt;likes&lt;/em&gt; them.&lt;/p&gt;&#xA;" OwnerUserId="6847" LastActivityDate="2010-11-09T03:04:03.603" CommentCount="1" />
  <row Id="17782" PostTypeId="2" ParentId="17779" CreationDate="2010-11-09T03:04:46.923" Score="37" ViewCount="" Body="&lt;p&gt;Geek is the correct term.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nerd implies something about social skills, status, and ability to relate to other people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Geeks can be nerdy, but they do not have to be.&lt;/p&gt;&#xA;" OwnerUserId="7322" LastActivityDate="2010-11-09T03:04:46.923" CommentCount="2" />
  <row Id="17783" PostTypeId="2" ParentId="17779" CreationDate="2010-11-09T03:06:10.437" Score="2" ViewCount="" Body="&lt;p&gt;Can I be a Nerdy Geek?&lt;/p&gt;&#xA;" OwnerUserId="7320" LastActivityDate="2010-11-09T03:06:10.437" CommentCount="4" />
  <row Id="17784" PostTypeId="2" ParentId="17675" CreationDate="2010-11-09T03:06:50.670" Score="1" ViewCount="" Body="&lt;p&gt;I've had the miss-fortune to work on a couple of corporate systems where management has been sold on SOA. As a developer I look at the systems and I see a bunch of software behind a web service that does stuff. It could have been written in a variety of languages and architectures, non of which would matter or be relevant to the clients calling the services and non of which actually have the acronym &quot;SOA&quot; anywhere in their documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But management want &quot;SOA&quot;!!! So they've bought really expensive servers from a certain large company that have &quot;SOA&quot; stickers applied on top of the previous &quot;Web Service&quot; stickers which have been applied on top of the previous &quot;JEE&quot; stickers which have been applied on top of .... you get the idea. And as a result, we as developers sit around dragging and dropping itty-bitty icons around a screen to create &quot;SOA&quot; &quot;COMPONENTS&quot; which work half as well as if we had done it with something simple such as EBJ3 beans, spring components etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my advice is if you get asked about SOA, say &quot;Yes I've done SOA, I've written many systems that make use of a Service Orientated Architecture to do things. Which SOA technology are you asking about?&quot;. And if they start talking with glowing eyes and wistful looks about a SOA COMPONENTS, DRAG AND DROP, and how it makes developing easier. Back away slowly and avoid making eye contact!&lt;/p&gt;&#xA;" OwnerUserId="6947" LastActivityDate="2010-11-09T03:06:50.670" />
  <row Id="17785" PostTypeId="2" ParentId="17729" CreationDate="2010-11-09T03:13:06.193" Score="1" ViewCount="" Body="&lt;p&gt;It's a market. Since a really perfect programmer will be worth millions of dollars, just offer to pay him a million a year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, you don't have a million. So, you have to settle for a less than perfect programmer. This is where you have to figure out what you really need, and trade if off for qualities that you don't really need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, the person might not have good company political skills, thus isn't doing well with a typical company. Or, he might have poor social skills, be older and thus a burden on the health care premiums for the company, etc. etec.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He might be a verbal klutz, meaning he comes off poorly in interviews.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will have to figure out what you really need, what you can offer, and what you can put up with, and find the best deal for your resources.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's like asking &quot;how do I marry a supermodel genius super people person girl&quot; Unless you're you're young, handsome, rich, brilliant, and charming, the odds are against you. But, do you really need all those qualities for a happy marriage? Probably not. &lt;/p&gt;&#xA;" OwnerUserId="7323" LastActivityDate="2010-11-09T03:13:06.193" />
  <row Id="17786" PostTypeId="2" ParentId="17568" CreationDate="2010-11-09T03:31:00.287" Score="1" ViewCount="" Body="&lt;p&gt;I have filled out time sheets, both as a full time employee as well as a contractor, for nearly a decade, in 4 different jobs, so find little friction in using then, however I don't believe in getting too caught up in the minutia of tasks. The most granular I will ever go is 1/4 hr, and that's rare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently, however, I have been using &lt;a href=&quot;http://www.epiforge.com/Grindstone2/&quot; rel=&quot;nofollow&quot;&gt;Grindstone&lt;/a&gt; to keep track of what I am doing (thankfully my current position allows me to submit my own timesheet, rather than being forced to fill in a home grown intranet based system).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend it to anyone finding their timesheet maintenance is either taking too long or is irritating&lt;/p&gt;&#xA;" OwnerUserId="3946" LastActivityDate="2010-11-09T03:31:00.287" CommunityOwnedDate="2011-01-28T18:20:56.797" CommentCount="1" />
  <row Id="17787" PostTypeId="2" ParentId="17761" CreationDate="2010-11-09T03:40:58.777" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If the engineers really feel that I am a &quot;common folk&quot; I do not want to work there.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might want to get a feel for how serious they are about that.  I worked at a similar company, and there was constant &lt;em&gt;friendly&lt;/em&gt; ribbing between the &quot;software guys&quot; and the resident P.Engs.  If they're taking their qualifications &lt;em&gt;too&lt;/em&gt; seriously it's a &lt;em&gt;very&lt;/em&gt; bad sign*.  What would happen if you had a comeback to being called a &quot;common folk&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really enjoyed working at that company, and all the low level programming, but I really didn't feel my skills were fully appreciated.  Eventually, I ended up taking a job at a consulting company as a result of that.  I'll admit I sometimes miss the &quot;cool&quot; factor of the old job, but the reward of having an employer and clients who appreciate my skills and take full advantage of them was definitely worth the trade-off.&lt;/p&gt;&#xA;" OwnerUserId="6847" LastActivityDate="2010-11-09T03:40:58.777" CommentCount="1" />
  <row Id="17788" PostTypeId="1" CreationDate="2010-11-09T03:42:00.917" Score="14" ViewCount="504" Body="&lt;p&gt;Generally speaking, what type of optimizations do you typically slant yourself towards when designing software?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you the type that prefers to optimize your design for&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Development time (i.e., quick to write and/or easier to maintain)?&lt;/li&gt;&#xA;&lt;li&gt;Processing time &lt;/li&gt;&#xA;&lt;li&gt;Storage (either RAM, DB, Disc, etc) space&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Of course this is highly subjective to the type of problems being solved, and the deadlines involved, so I'd like to hear about the reasons that would make you choose one form of optimization over another.&lt;/p&gt;&#xA;" OwnerUserId="7123" LastActivityDate="2010-11-09T21:42:45.697" Title="What do you optimize for?" Tags="&lt;design&gt;&lt;optimization&gt;" AnswerCount="17" FavoriteCount="2" />
  <row Id="17789" PostTypeId="2" ParentId="17788" CreationDate="2010-11-09T03:46:29.413" Score="21" ViewCount="" Body="&lt;h1&gt;Development Time&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Processing and storage is cheap. Your time is not. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Just to note:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This doesn't mean do a bad job of writing code just to finish it quickly. It means write the code in a fashion that facilitates quick development. It also depends entirely on your use cases. If this is a simple, two or three page web site with a contact form you probably don't need to use a PHP framework. A couple of includes and a mailer script will speed development. If the plan is instead to create a flexible platform on which to grow and add new features it's worth taking the time to lay it out properly and code accordingly because it will speed future development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the direct comparison to processing time and storage, I lean towards a faster development time. Is using the collectionutils subtract function the fastest and most memory efficient method of subtracting collections? No! But it's faster development time. If you run into performance or memory bottlenecks you can resolve those later. Optimizing before you know what needs to be optimized is a &lt;em&gt;waste of your time&lt;/em&gt; and that is what I'm advocating against. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-11-09T16:37:29.337" LastActivityDate="2010-11-09T16:37:29.337" CommentCount="15" />
  <row Id="17790" PostTypeId="1" AcceptedAnswerId="17796" CreationDate="2010-11-09T03:52:56.397" Score="7" ViewCount="137" Body="&lt;p&gt;I'm current the sole developer/architect of a fairly large web application (ASP.NET MVC stack, roughly 150K+ lines of code) and the end of development is on the horizon. As such, I'm starting to think about what needs to be done for the hand off of the project and I want to make sure I do the right thing for anyone that has to maintain the project in the future. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some things to be aware of when getting ready to hand a project off to another developer or team of developers of maintenance?&lt;/p&gt;&#xA;" OwnerUserId="2471" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2011-05-21T12:21:19.483" LastActivityDate="2011-05-21T12:21:19.483" Title="What are some things to be aware of when getting ready to hand a project off?" Tags="&lt;project-management&gt;&lt;development-process&gt;" AnswerCount="4" />
  <row Id="17791" PostTypeId="2" ParentId="17788" CreationDate="2010-11-09T03:58:08.063" Score="4" ViewCount="" Body="&lt;p&gt;I tend to slant towards limiting memory consumption and allocations.  I know it's old school, but:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Most of the non-throwaway code I write is heavily parallel.  This means that excessive memory allocation and garbage collection activity will serialize a lot of otherwise parallelizable code.  It also means there will be a lot of contention for a shared memory bus.&lt;/li&gt;&#xA;&lt;li&gt;My primary language is D, which doesn't have good 64-bit support yet (though this is being remedied).&lt;/li&gt;&#xA;&lt;li&gt;I work with fairly large datasets on a regular basis.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-09T03:58:08.063" CommentCount="2" />
  <row Id="17792" PostTypeId="1" CreationDate="2010-11-09T03:59:49.163" Score="6" ViewCount="300" Body="&lt;p&gt;I browse tech blogs and news sites, and see references to new software products.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do these people get recognized? I'm releasing an Android app soon, and I do not want to simply release the app and hope someone stumbles upon it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's the strategy?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Edit:&lt;/em&gt; The application has been released on the Android Market.&lt;/p&gt;&#xA;" OwnerUserId="7322" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2011-04-04T01:34:14.990" LastActivityDate="2011-04-04T01:34:14.990" ClosedDate="2010-11-10T09:05:14.207" Title="How does an indie programmer market his new product with limited budget?" Tags="&lt;marketing&gt;" AnswerCount="6" CommentCount="5" />
  <row Id="17793" PostTypeId="2" ParentId="17788" CreationDate="2010-11-09T04:03:16.660" Score="5" ViewCount="" Body="&lt;p&gt;&lt;H2&gt;Processing Time&lt;/H2&gt;&#xA;My user's time is not cheap.  What comes around goes around.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just upgraded an application I use this last year.  They had completely rewritten the app, and boy was it slow.  I finally had to buy a new computer to run it quickly.  I guarantee you that wasn't cheap, but my time is more valuable.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-11-09T04:03:16.660" CommentCount="4" />
  <row Id="17795" PostTypeId="2" ParentId="17788" CreationDate="2010-11-09T04:05:34.087" Score="28" ViewCount="" Body="&lt;p&gt;&lt;H2&gt;Maintenance&lt;/H2&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then profiling if necessary and optimize for speed.  Rarely have I ever had a need for storage - at least not in the past 10 years.  Prior to that I did.&lt;/p&gt;&#xA;" OwnerUserId="3439" LastEditorUserId="1842" LastEditorDisplayName="" LastEditDate="2010-11-09T21:21:00.343" LastActivityDate="2010-11-09T21:21:00.343" CommentCount="6" />
  <row Id="17796" PostTypeId="2" ParentId="17790" CreationDate="2010-11-09T04:08:35.323" Score="10" ViewCount="" Body="&lt;p&gt;IMHO, if you could only do one thing before handing off your project (either directly or indirectly), I would recommend that you double and tripple check that it compiles as-is from source control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No laughing, but I cannot tell you how many times I've gotten &quot;latest&quot; from a source control and it failed to compile, only to find out later that I wasn't &quot;on Fred's old box&quot; because apparently the code &quot;only compiles on Fred's old box&quot;. I even had a former employer promptly remove my desktop from my cube, and replace it with &quot;Fred's old box&quot; so I could work on the project I was suppose to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an extension of the above recommendation, because sometimes getting latest isn't all that is necessary to compile an application, I recommend that you create a README.txt and place it in the root directory of your application and put that in source control. This README document should contain a list of external dependencies that could not be checked into source control (if any exist), how to setup the database, and any other oddities about the compilation, execution or deployment cycles of the application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anything above and beyond the above two suggestions would just be gravy, but IMHO the above two are almost required on any project larger than &quot;Hello World&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the topic of documentation...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over the years I've both written and read my fair share of software documentation for the purpose of easing a developer's transition. I'd say that such documents are rarely worth the paper they are printed on. Developers (myself included) rarely think of the important parts of the application while writing such documents, we only tend to think about the most recent fires we've battled. Above and beyond the fact that these documents tend to not cover all the important aspects of the software, they also get outdated VERY quickly. Once the document is out of date a future developer is more than likely going to completely disregard it instead of bringing it back up to match reality (think changing requirements).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of documentation per se, I recommend unit tests. I know it probably sounds old at this point, but let the code do the documenting for you. Broken unit tests are hard to ignore (and easier to spot) than a Word document. Additionally, the English language is horribly imprecise for articulating the finner points of software design. There are simply too many ways to interpret the meaning of even the simplest of English sentences, and this just leads to confusion and/or bugs.&lt;/p&gt;&#xA;" OwnerUserId="7123" LastEditorUserId="7123" LastEditorDisplayName="" LastEditDate="2010-11-09T05:15:39.573" LastActivityDate="2010-11-09T05:15:39.573" CommentCount="8" />
  <row Id="17797" PostTypeId="2" ParentId="16618" CreationDate="2010-11-09T04:09:05.197" Score="17" ViewCount="" Body="&lt;p&gt;Personally, I think using four digit years are going to be considered bad practice. Just think about it. In less than 8,000 years we're going to face a major crisis due to our dependence on four digit years.&lt;/p&gt;&#xA;" OwnerUserId="7285" LastActivityDate="2010-11-09T04:09:05.197" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="3" />
  <row Id="17798" PostTypeId="2" ParentId="17792" CreationDate="2010-11-09T04:09:36.803" Score="7" ViewCount="" Body="&lt;p&gt;Check out the &lt;a href=&quot;http://discuss.joelonsoftware.com/?biz&quot; rel=&quot;nofollow&quot;&gt;Business of Software&lt;/a&gt; forum. Traffic has gone down over the last while, but there is still a number of people who make a living from selling their own software hanging around. Going through the archives there should give you some points to start from.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also &lt;a href=&quot;http://startups.com&quot; rel=&quot;nofollow&quot;&gt;http://startups.com&lt;/a&gt; and &lt;a href=&quot;http://answers.onstartups.com/&quot;&gt;http://answers.onstartups.com/&lt;/a&gt;, which are geared more towards startup companies (as you might expect :)), but you should be able to find some relevant information there, too.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-11-09T04:09:36.803" />
  <row Id="17799" PostTypeId="1" CreationDate="2010-11-09T04:15:17.143" Score="7" ViewCount="313" Body="&lt;p&gt;I'd like to know what motivated you to learn ASP.NET MVC, and what have you done with it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;... was it a particular feature?&lt;br&gt;&#xA;... do you have plenty of spare time? &lt;br&gt;&#xA;... did your job require you to learn it or evaluate it?&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... are you going to continue learning it?  &lt;br&gt;&#xA;... if you stopped implementing a MVC application mid-stream, what caused you to stop?&lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-11-09T04:25:19.100" LastActivityDate="2011-03-01T19:04:31.360" Title="What motivated you to learn ASP.NET MVC? What have you done with it so far?" Tags="&lt;learning&gt;&lt;web-development&gt;&lt;asp.net&gt;&lt;mvc&gt;" AnswerCount="7" CommentCount="2" />
  <row Id="17800" PostTypeId="2" ParentId="17792" CreationDate="2010-11-09T04:17:06.307" Score="3" ViewCount="" Body="&lt;p&gt;You can try a few things:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Send a promo code or copy of the app to app review sites. &lt;/li&gt;&#xA;&lt;li&gt;Shameless plugs on SE, but you might get flamed and/or downvoted. &lt;/li&gt;&#xA;&lt;li&gt;Word of mouth may help get the ball rolling.&lt;/li&gt;&#xA;&lt;li&gt;Email blasts (A.K.A. spam)&lt;/li&gt;&#xA;&lt;li&gt;A promo video on Youtube. Extra points if the video goes viral.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-11-09T04:17:06.307" CommentCount="6" />
  <row Id="17801" PostTypeId="2" ParentId="17799" CreationDate="2010-11-09T04:23:59.010" Score="2" ViewCount="" Body="&lt;p&gt;Listening to the old podcasts between &lt;a href=&quot;http://blog.stackoverflow.com/category/podcasts/&quot; rel=&quot;nofollow&quot;&gt;Joel Spolsky and Jeff Atwood&lt;/a&gt; when they started working on &lt;a href=&quot;http://stackoverflow.com/&quot;&gt;Stack Overflow&lt;/a&gt; is what really got me interested in learning it and then seeing the success of Stack Overflow as it moved though the private and public beta process is what managed to push me over the top to really developing the time needed to learn it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my case, I managed to get lucky and was able to use it develop a new internal &lt;a href=&quot;http://en.wikipedia.org/wiki/Laboratory_information_management_system&quot; rel=&quot;nofollow&quot;&gt;LIMS&lt;/a&gt; with it so the learning curve was built into the start of the project and I was able to do some studying at work while the initial requirements where still being ironed out. At this point I must say that I like the framework and the design pattern when it comes to web applications so odds are the next project I take on I would also want to be using it or the same design pattern on a different stack.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-11-09T04:23:59.010" />
  <row Id="17802" PostTypeId="2" ParentId="16618" CreationDate="2010-11-09T04:27:15.297" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Non-software transactional memory considered harmful.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently, implementations of threading and concurrency (using locks) feels like low-level assembly programming. &lt;a href=&quot;http://en.wikipedia.org/wiki/Software_transactional_memory&quot; rel=&quot;nofollow&quot;&gt;Software transactional memory&lt;/a&gt; is an alternative synchronization mechanism that leads to code that is much easier to write and understand. Several new languages have it (like Fortress and Clojure).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this also has a nice parallel to the origins of your question: clear blocks of code to add structure to low-level mechanisms that are too powerful. Saying &quot;&lt;strong&gt;Locks considered harmful&lt;/strong&gt;&quot; not quite a slam dunk case as &lt;code&gt;goto&lt;/code&gt; was, but it's the closest I've seen.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-09T04:27:15.297" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="1" />
  <row Id="17803" PostTypeId="2" ParentId="17799" CreationDate="2010-11-09T04:28:07.117" Score="8" ViewCount="" Body="&lt;p&gt;A number of things &lt;em&gt;failed&lt;/em&gt; to motivate me to learn ASP.NET MVC. I loved the idea of having decent HTML without grotesque id-mangling on &lt;code&gt;runat=server&lt;/code&gt; controls, but not enough to switch platforms. I wasn't particularly moved by testability. &quot;Clean separation of concerns&quot; always made me think &quot;meh, you can build a good or bad design on any platform.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But then &lt;a href=&quot;http://blog.wekeroad.com/blog/i-spose-ill-just-say-it-you-should-learn-mvc/&quot; rel=&quot;nofollow&quot;&gt;this blog post by Rob Conery&lt;/a&gt; finally got my attention.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;WebForms is a lie. It’s abstraction&#xA;  wrapped in deception covered in lie&#xA;  sauce presented on a plate full of&#xA;  diversion and sleight of hand .. The&#xA;  web is &lt;em&gt;not&lt;/em&gt; stateful and works with&#xA;  this stuff called HTML sent across&#xA;  wires using another thing called HTTP&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Now &lt;em&gt;that&lt;/em&gt; got my attention. I'd been working with ASP.NET WebForms for several years, there were things I liked and things I didn't, but &lt;em&gt;that&lt;/em&gt; reason to learn MVC really spoke to me, because WebForms statefulness &lt;em&gt;is&lt;/em&gt; a lie, and it &lt;em&gt;did&lt;/em&gt; trouble me. That was enough to send me to watching some Tekpub videos and reading some tutorials and books.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't had a chance to use MVC on a commercial project yet, but I'm pushing to do so on a small project soon at work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing that I've noticed recently, while sitting in on several interviews for developers, is how many applicants have MVC experience on their résumés - some of them having worked with it, some of them having evaluated it at their work, and some just from personal experimentation. I've been asking them &quot;what's the #1 thing which you find attractive about ASP.NET MVC?&quot; and for what it's worth, the answer that is winning so far is &quot;complete control over the HTML output. &quot;&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-11-09T04:28:07.117" CommentCount="1" />
  <row Id="17804" PostTypeId="2" ParentId="17729" CreationDate="2010-11-09T04:33:36.017" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Offer to pay well. If you can't afford it, offer other incentives.&lt;/li&gt;&#xA;&lt;li&gt;Network. You can't hire someone unless you know they exist. As mentioned, a developer conference may be worth attending.&lt;/li&gt;&#xA;&lt;li&gt;Be careful, Facebook was (allegedly) a stolen idea. Make sure you hire someone who is honest, or at least willing to sign the proper legal documents. Get yourself a lawyer if needed.&lt;/li&gt;&#xA;&lt;li&gt;Consider outsourcing outside of the US. It's cheap and you can get a product that's solid. (See &lt;a href=&quot;http://odesk.com&quot; rel=&quot;nofollow&quot;&gt;odesk.com&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Recognize your needs. (Larry &lt;a href=&quot;http://programmers.stackexchange.com/questions/17729/how-do-early-stage-startups-hire-ninja-programmers/17785#17785&quot;&gt;brings up some good points&lt;/a&gt;.)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;(Listed in no particular order and borrowed from other answers.)&lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-11-09T04:33:36.017" />
  <row Id="17805" PostTypeId="2" ParentId="17799" CreationDate="2010-11-09T04:34:15.423" Score="1" ViewCount="" Body="&lt;p&gt;I like that fact that the presentation layer (HTML, CSS, JS) can be created the way it was designed and not with WebForms fudges. I also like that it encourages separation of concerns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have used it for a number of projects including &lt;a href=&quot;http://www.baseestate.com&quot; rel=&quot;nofollow&quot;&gt;my web site&lt;/a&gt; and enterprise projects like &lt;a href=&quot;http://www.quantumit.com.au/in-place.htm&quot; rel=&quot;nofollow&quot;&gt;this software&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-09T04:34:15.423" />
  <row Id="17806" PostTypeId="2" ParentId="17790" CreationDate="2010-11-09T04:35:39.650" Score="1" ViewCount="" Body="&lt;p&gt;This is exactly why comments are not code smell. This is also why we should document our code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should make sure that you have solid documentation. There are programs that can generate documentation from comments depending on the format of the comments and the programming language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider what information you would want about a library or codebase when taking it over. Ask a friend who is a programmer to give a quick look and see if they spot any obvious questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2010-11-09T04:35:39.650" />
  <row Id="17807" PostTypeId="2" ParentId="12544" CreationDate="2010-11-09T04:46:22.310" Score="0" ViewCount="" Body="&lt;p&gt;Have you heard of their &lt;a href=&quot;http://code.google.com/p/google-caja/&quot; rel=&quot;nofollow&quot;&gt;caja project&lt;/a&gt;?&lt;/p&gt;&#xA;" OwnerUserId="4478" LastActivityDate="2010-11-09T04:46:22.310" />
  <row Id="17808" PostTypeId="2" ParentId="17799" CreationDate="2010-11-09T04:50:01.370" Score="2" ViewCount="" Body="&lt;p&gt;I started learning MVC because my company does a lot of work in CakePHP.  Some clients, however, prefer to have a more &quot;enterprise&quot; solution.  In the strictest sense, my job didn't require me to learn or evaluate it, but I had a small project which was a perfect fit for evaluating it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I enjoyed this project, because a lot of the design patterns from CakePHP helped pick up ASP.NET MVC quite quickly.  Using Fluent NHibernate autoconfig with the project also allowed me to rapidly create database schemas compatible with cake's &quot;convention over configuration&quot; pattern in case completing the project in MVC turned out to be untenable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coming from another MVC framework, ASP.NET MVC is very nice, and I hope to have more opportunities to use it.&lt;/p&gt;&#xA;" OwnerUserId="6847" LastActivityDate="2010-11-09T04:50:01.370" CommentCount="1" />
  <row Id="17809" PostTypeId="2" ParentId="17790" CreationDate="2010-11-09T04:51:55.083" Score="0" ViewCount="" Body="&lt;p&gt;My default handoff checklist:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Check out clean copy from VCS&lt;/li&gt;&#xA;&lt;li&gt;Test build, test deploy&lt;/li&gt;&#xA;&lt;li&gt;Rename the maven repo to repo-back-up&lt;/li&gt;&#xA;&lt;li&gt;Test build again&lt;/li&gt;&#xA;&lt;li&gt;Install fresh copy of app server from zip &lt;/li&gt;&#xA;&lt;li&gt;Verify server set up notes&lt;/li&gt;&#xA;&lt;li&gt;Test deploy again&lt;/li&gt;&#xA;&lt;li&gt;Verify that no unit tests are disabled&lt;/li&gt;&#xA;&lt;li&gt;Scan comments for four letter words, delete them&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If anything is broken, I'd fix it before hand over. Nothing gets someone off to a running start then getting the project checked-out, built and running the day you get the project.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-11-09T04:51:55.083" />
  <row Id="17810" PostTypeId="2" ParentId="370" CreationDate="2010-11-09T04:58:57.700" Score="3" ViewCount="" Body="&lt;p&gt;I'm 46.  I started programming back in the mid-1990's.  These days most employers value certifications more than resume content, which is sad, but that's what I see along the East coast at least.  Keep your skills current.  It's a pain. But that's what you have to do if you want to remain in the &quot;hands-on&quot; part of this industry.  Otherwise, like you said, pursue management positions.  Not as fun or interesting but these days a job is good to have.&lt;/p&gt;&#xA;" OwnerUserId="7102" LastActivityDate="2010-11-09T04:58:57.700" />
  <row Id="17811" PostTypeId="2" ParentId="17761" CreationDate="2010-11-09T05:00:43.297" Score="2" ViewCount="" Body="&lt;p&gt;It all boils down to a simple question : Do you have the same responsibilities?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you end up doing the exact same thing, then you are justified, they lacked the fundamental respect they owe you for working with them. If you do not have the same responsibilities then it's a little murkier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a software engineer from Canada (ETS). I've been working in a research lab as an internship. Engineers were the lower class citizens there, as multi-phd researchers where common folks. There were some assholes boasting about their studies, but there were nice people too which I learned much from. Just ignore the former and be friend with the later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for long term goals, it depends a lot on where you work. Many companies value degrees higher than skills, which is unfortunate. You should check on some jobs opening (if it is that kind of company) and check whether or not they have degrees requirements. If they do, ask around if it would be possible to get pass it or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next time people bully you like this just stand up for yourself. You don't have to really fight, just say something like &quot;Hey, there are some Technologists doing great job around here too!&quot;. Maybe the guy didn't know you weren't an engineer, who knows? &lt;/p&gt;&#xA;" OwnerUserId="3250" LastActivityDate="2010-11-09T05:00:43.297" />
  <row Id="17812" PostTypeId="2" ParentId="17788" CreationDate="2010-11-09T05:07:03.493" Score="-7" ViewCount="" Body="&lt;h1&gt;All of them&lt;/h1&gt;&#xA;&#xA;&lt;h2&gt;Processing time&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Today's computers are fast, but far from what's enough. There're many many situations where performance is critical - if you do streaming media servers.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Storage&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;You customer might have a big disk, let's say, 1Tb. Which can be taken up by 1000 HD movies, if you want to make it a service it's far from enough, isn't it?&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Development time&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Well I'm not sure if this count as “optimization&quot;, what I do is I use Java instead of C++, and the development get 10 times faster. I feel like I'm telling what I think directly to the computer, very straight forward and totally rocks!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;BTW I believe to speed up development your development process you should choose java, never try rubbishes like python... which claims they can shorten you DEV time.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2347" LastActivityDate="2010-11-09T05:07:03.493" CommentCount="3" />
  <row Id="17813" PostTypeId="2" ParentId="16070" CreationDate="2010-11-09T05:15:59.257" Score="3" ViewCount="" Body="&lt;p&gt;&lt;em&gt;I think you might find a &lt;a href=&quot;http://profshonle.blogspot.com/2010/03/beware-approximate-models.html&quot; rel=&quot;nofollow&quot;&gt;blog post of mine&lt;/a&gt; on leaky abstractions useful. Here is the relevant background:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Abstraction&lt;/strong&gt; is a mechanism to help take what is common among a set of related program fragments, remove their differences, and enable programmers to work directly with a construct representing that abstract concept. This new construct (virtually) always has &lt;strong&gt;parameterizations&lt;/strong&gt;: a means to customize the use of the construct to fit your specific needs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, a &lt;code&gt;List&lt;/code&gt; class can abstract away the details of a linked-list implementation-- where instead of thinking in terms of manipulating &lt;code&gt;next&lt;/code&gt; and &lt;code&gt;previous&lt;/code&gt; pointers, you can think on the level of adding or removing values to a sequence. &lt;strong&gt;Abstraction is an essential tool for creating useful, rich, and sometimes complex features out of a much smaller set of more primitive concepts.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Abstraction is related to encapsulation and modularity, and these concepts are often misunderstood.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the &lt;code&gt;List&lt;/code&gt; example, &lt;strong&gt;encapsulation&lt;/strong&gt; can be used to hide the implementation details of a linked-list; in an object-oriented language, for instance, you can make the &lt;code&gt;next&lt;/code&gt; and &lt;code&gt;previous&lt;/code&gt; pointers private, where only the List implementation is allowed access to these fields.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Encapsulation is not enough for abstraction, because it does not necessarily imply you have a new or different conception of the constructs. If all a &lt;code&gt;List&lt;/code&gt; class did was give you '&lt;code&gt;getNext&lt;/code&gt;'/'&lt;code&gt;setNext&lt;/code&gt;' style accessor methods, it would encapsulate from you from the implementation details (e.g., did you name the field '&lt;code&gt;prev&lt;/code&gt;' or '&lt;code&gt;previous&lt;/code&gt;'? what was its static type?), but it would have a very low degree of abstraction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Modularity&lt;/strong&gt; is concerned with &lt;strong&gt;information hiding&lt;/strong&gt;: Stable properties are specified in an interface, and a module implements that interface, keeping all implementation details within the module. Modularity helps programmers cope with change, because other modules depend only on the stable interface.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Information hiding is aided by encapsulation (so that your code does not depend on unstable implementation details), but encapsulation is not necessary for modularity. For example, you can implement a &lt;code&gt;List&lt;/code&gt; structure in C, exposing the '&lt;code&gt;next&lt;/code&gt;' and '&lt;code&gt;prev&lt;/code&gt;' pointers to the world, but also provide an interface, containing &lt;code&gt;initList()&lt;/code&gt;, &lt;code&gt;addToList()&lt;/code&gt;, and &lt;code&gt;removeFromList()&lt;/code&gt; functions. Provided that the rules of the interface are followed, you can make guarantees that certain properties will always hold, such as ensuring the data-structure is always in a valid state. [Parnas's classic paper on modularity, for example, was written with an example in assembly. The interface is a contract and a form of communication about the design, it does not necessarily have to be mechanically checked, although that's what we rely on today.]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although terms like abstract, modular, and encapsulated are used as positive design descriptions, it's important to realize that the presence of any of these qualities does not automatically give you good design:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;If an n^3 algorithm is &quot;nicely encapsulated&quot; it will still perform worse than an improved n log n algorithm.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If an interface commits to a specific operating system, none of the benefits of a modular design will be realized when, say, a video game needs to be ported from Windows to the iPad.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If the abstraction created exposes too many inessential details, it will fail to create a new construct with its own operations: It will simply be another name for the same thing.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-09T05:15:59.257" CommentCount="2" />
  <row Id="17814" PostTypeId="2" ParentId="17729" CreationDate="2010-11-09T05:43:00.513" Score="5" ViewCount="" Body="&lt;p&gt;Successful startups? &lt;strong&gt;It's about who you know.&lt;/strong&gt; In fact, it's a fairly bad sign for a start-up if they need to post ads looking for programmers. That means that the founders couldn't convince any of their hundreds of programming acquaintances to get on board with the idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unsuccessful startups? They tend to have too many &quot;original founders&quot; and managers, and not enough programmers willing to sacrifice major parts of their lives on a risky idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quite simply, think of the ninja programmers you already know, your friends, and ask them. If not one of them is interested, or wants to let their other ninja friends know about it, then you may want to reconsider your strategy, service, or product until they do. Think about all of the successful startup stories. It's always a group of friends or people who already knew and worked with each other.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-09T05:43:00.513" CommentCount="1" />
  <row Id="17815" PostTypeId="2" ParentId="17788" CreationDate="2010-11-09T05:57:38.177" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Design&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;low coupling, modular&lt;/li&gt;&#xA;&lt;li&gt;concise, well defined, functional areas&lt;/li&gt;&#xA;&lt;li&gt;well documented&lt;/li&gt;&#xA;&lt;li&gt;continuously refactor for cruft&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Maintenence&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;reproducible build and debug&lt;/li&gt;&#xA;&lt;li&gt;unit tests&lt;/li&gt;&#xA;&lt;li&gt;regression tests&lt;/li&gt;&#xA;&lt;li&gt;source control&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;... after that everything else&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... finally, optimise for performance ;-)&lt;/p&gt;&#xA;" OwnerUserId="3122" LastActivityDate="2010-11-09T05:57:38.177" CommentCount="1" />
  <row Id="17816" PostTypeId="2" ParentId="17788" CreationDate="2010-11-09T06:02:37.150" Score="0" ViewCount="" Body="&lt;p&gt;Development time, absolutely. I also optimize for bandwidth, but I don't go to binary.&lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-11-09T06:02:37.150" />
  <row Id="17817" PostTypeId="2" ParentId="16618" CreationDate="2010-11-09T06:02:48.147" Score="9" ViewCount="" Body="&lt;h2&gt;Computation considered harmful&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Computation generates a lot of heat. The heat that is generated is proportional to the amount of computation performed, and also to the amount of electricity used. In most parts of the world, electricity is generated from non-renewable sources. Removing the heat from the servers also requires significant energy. All of these will consume resources and emit pollution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Multinational corporations are building large computation facilities everywhere. A lot of investment is made into making computation as efficient as possible. Often, the most crucial factor is neglected: Why compute? Why do we need to answer a question when nobody is going to use the result? If a person asks a vague question, shouldn't the computer verify the person's intention before going any further? Why waste the person's energy by requiring s/he to browse through thousands of results and still not finding the answer s/he wants?&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-11-09T06:02:48.147" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="2" />
  <row Id="17818" PostTypeId="2" ParentId="17788" CreationDate="2010-11-09T06:29:22.103" Score="3" ViewCount="" Body="&lt;h3&gt;Whatever virtualization technology I'm using&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Remember the days when systems with more than 512 MB of RAM were considered bleeding edge? I spend my days writing code for the prior.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work mostly on low level programs that run on the privileged domain in a Xen environment. Our ceiling for the privileged domain is 512 MB, leaving the rest of the RAM free for our customers to use. It is also typical for us to limit the privileged domain to just one CPU core.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So here I am, writing code that will run on a brand new $6k server, and each program has to work (ideally) within a 100kb allocated ceiling, or eschew dynamic memory allocation completely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Concisely, I optimize for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Memory footprint&lt;/li&gt;&#xA;&lt;li&gt;Sorts (where most of my code spends most of its time)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I also have to be extremely diligent when it comes to time spent waiting for locks, waiting for I/O or just waiting in general. A substantial amount of my time goes into improving existing non blocking socket libraries and looking into more practical methods of lock free programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every day I find it a little ironic that I'm writing code just like I did 15 years ago, on systems that were bought last month, due to &lt;em&gt;advancements&lt;/em&gt; in technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is typical for anyone working on embedded platforms as well, though even many of those have at least 1GB at their disposal. As Jason points out, it is also typical when writing programs to be run on mobile devices. The list goes on, Kiosks, thin clients, picture frames, etc ..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm beginning to think that hardware restrictions really separate programmers from people who can make something work without caring what it actually consumes. I worry (down vote me if you must) what languages that completely abstract type and memory checking to the collective pool of common sense that (used to be) shared amongst programmers of various disciplines.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-09T13:05:05.257" LastActivityDate="2010-11-09T13:05:05.257" CommentCount="1" />
  <row Id="17819" PostTypeId="2" ParentId="17788" CreationDate="2010-11-09T06:29:24.927" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;User experience.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That means I optimize for different aspects in different pieces of functionality. Some parts of the code are filled with micro-optimizations to squeeze out every inch of performance. Others are kept intentionally close to a theoretical design, even if performance suffers from it, to ensure correct operation under all circumstances. Sometimes users are willing to wait, sometimes they are not. A similar thing applies to RAM usage. Some features have low concurrent use, so they can gobble up RAM. Others have heaps of concurrent users hitting the same web server, so they need to be light on their feet.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-11-09T06:29:24.927" />
  <row Id="17820" PostTypeId="2" ParentId="17355" CreationDate="2010-11-09T06:32:05.003" Score="9" ViewCount="" Body="&lt;p&gt;When I first figured out the bash forkbomb, I thought it was really sweet.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;:(){ :|:&amp;amp; };:&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="7330" LastActivityDate="2010-11-09T06:32:05.003" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="2" />
  <row Id="17821" PostTypeId="2" ParentId="17779" CreationDate="2010-11-09T06:33:08.233" Score="10" ViewCount="" Body="&lt;p&gt;A geek is a person who knows (really knows) technology, software, etc and can fix things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ie write software, fix your car (you can be a car geek), etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A Nerd is a PEJORATIVE term (meaning its a put down, or an insult) used to refer to people who have lower social skills. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Frequently, geeks can be nerdish.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it is very insulting to call somebody a nerd. It's not insulting to call them a geek. Geeks who know they are geeks are proud of it, and would be hurt to be called nerds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;True nerds (those who have no social skills) simply don't understand the difference, or what you might be talking about when arguing about geeks and nerds.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-11-09T06:33:08.233" />
  <row Id="17822" PostTypeId="2" ParentId="17766" CreationDate="2010-11-09T06:35:00.450" Score="4" ViewCount="" Body="&lt;p&gt;If you write comments one would hope they are written in English. That being case case, one should punctuate properly. Doing otherwise would be lazy.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-11-09T06:35:00.450" />
  <row Id="17823" PostTypeId="2" ParentId="17590" CreationDate="2010-11-09T06:40:05.693" Score="1" ViewCount="" Body="&lt;p&gt;A very generic answer is that a task pool is very similar to a priority queue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on the implementation:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You may have an infinite number of subscribers&lt;/li&gt;&#xA;&lt;li&gt;Dependencies can be resolved and sorted according to priority (for instance, a low priority task that depends on the same thing that a high priority task does might get processed before a medium priority task)&lt;/li&gt;&#xA;&lt;li&gt;Tasks can be fed from a static memory pool, or allocate their own, depending&lt;/li&gt;&#xA;&lt;li&gt;Tasks can be preempted if a higher priority task is added and can typically yield on a voluntary basis as well.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;A much simpler version of a task pool can be realized by taking 'priority' out of 'priority queue', where you more or less have a FIFO scheduler that keeps track of time and resources.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the term is a little too colloquial to define, clearly, outside the context of the platform, language and even task at hand - no pun intended.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-09T06:40:05.693" />
  <row Id="17824" PostTypeId="1" AcceptedAnswerId="18853" CreationDate="2010-11-09T06:48:06.560" Score="11" ViewCount="663" Body="&lt;p&gt;What &lt;strong&gt;specific&lt;/strong&gt; advantages and disadvantages of each way to working on a programming language grammar?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why/When should I roll my own? Why/When should I use a generator?&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-11-09T18:57:46.217" LastActivityDate="2010-12-23T02:01:29.263" Title="Should I use a parser generator or should I roll my own custom lexer and parser code?" Tags="&lt;language-design&gt;&lt;compilers&gt;&lt;parser&gt;" AnswerCount="14" FavoriteCount="11" />
  <row Id="17825" PostTypeId="2" ParentId="17779" CreationDate="2010-11-09T06:52:45.807" Score="5" ViewCount="" Body="&lt;p&gt;A geek is someone who &lt;a href=&quot;http://en.wikipedia.org/wiki/Geek&quot; rel=&quot;nofollow&quot;&gt;does very bizarre things at a circus&lt;/a&gt;, if you want to get really technical about it. I'm not sure how the word ever became synonymous with expertise. I suspect that it was first used as an insult that someone unwittingly championed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I never found the word nerd to be insulting, I lived with it for most of my scholastic career. I hate sports, I'd rather implement a C library from scratch than watch reality TV, I'm known to be overly pedantic and I can't stand inefficiency in any form.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess I'm a nerd. Whatever, I get paid :)&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-09T06:52:45.807" CommentCount="1" />
  <row Id="17826" PostTypeId="1" AcceptedAnswerId="17829" CreationDate="2010-11-09T06:53:33.107" Score="21" ViewCount="1763" Body="&lt;p&gt;I see that most of the good programmers have the habit of reading big books for learning about technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What does it really take to read technical books, apart from the real interest on the technology?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can I improve my ability to read these books?&lt;/p&gt;&#xA;" OwnerUserId="7331" LastEditorUserId="19554" LastEditorDisplayName="" LastEditDate="2011-05-03T06:25:17.330" LastActivityDate="2011-05-04T09:49:07.530" CommunityOwnedDate="2011-05-04T00:07:17.570" Title="How do people read big technical books?" Tags="&lt;learning&gt;&lt;best-practices&gt;&lt;books&gt;&lt;tips-and-tricks&gt;&lt;technical-manuals&gt;" AnswerCount="26" CommentCount="5" FavoriteCount="8" />
  <row Id="17827" PostTypeId="2" ParentId="17824" CreationDate="2010-11-09T06:58:58.007" Score="4" ViewCount="" Body="&lt;p&gt;That depends entirely on what you need to parse. Can you roll your own faster than you could hit the learning curve of a lexer? Is the stuff to be parsed static enough that you won't regret the decision later? Do you find existing implementations overly complex? If so, have fun rolling your own, but only if you aren't ducking a learning curve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lately, I've come to really like the &lt;a href=&quot;http://www.hwaci.com/sw/lemon/&quot; rel=&quot;nofollow&quot;&gt;lemon parser&lt;/a&gt;, which is arguably the simplest and easiest that I've ever used. For the sake of making things easy to maintain, I just use that for most needs. SQLite uses it as well as some other notable projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, I'm not at all interested in lexers, beyond them not getting in my way when I need to use one (hence, lemon). You might be, and if so, why not make one? I have a feeling you'll come back to using one that exists, but scratch the itch if you must :)&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-09T10:47:21.393" LastActivityDate="2010-11-09T10:47:21.393" CommentCount="2" />
  <row Id="17828" PostTypeId="2" ParentId="17826" CreationDate="2010-11-09T07:04:07.110" Score="14" ViewCount="" Body="&lt;p&gt;Good books aren't necessarily big.  The O'Reilly books and the Pragmatic Programmer books tend to be pretty slim, and they are quite good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest that you read some of the books recommended at &lt;a href=&quot;http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read&quot;&gt;http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But to answer your question:  It takes effort, in the same way as any other study subject does.  Careful reading, reflection, notes taking and &lt;em&gt;doing the excercises&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-09T07:04:07.110" CommunityOwnedDate="2011-05-04T00:07:17.570" CommentCount="8" />
  <row Id="17829" PostTypeId="2" ParentId="17826" CreationDate="2010-11-09T07:05:15.403" Score="25" ViewCount="" Body="&lt;p&gt;We have really BIG eyes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All kidding aside, I'm one of the people who finds reading to be very difficult. If I'm working my way through a very large book, I try to read early in the morning, when I first wake up, when my mind is free of distractions. I find that I'm able to get engrossed much easier at that time of day and I retain more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, there are books that are just so dry that they will be painful no matter the reading circumstances. I try to avoid them whenever possible, or find another book with the same information that is written in a different style. If reading a book is so painful that you can barely keep from putting it down, you are wasting your time because you probably won't retain much anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, I much prefer getting information in smaller doses. My 'big books' are mostly for reference and aren't intended to be read cover to cover, unless you have an amazing attention span.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, though sort of digressing, I really enjoy it when people take time to write book reviews on their blog or personal web site. That helps me to find books that are best suited to me. So, if you love or hate a book, consider publishing a review. It will turn up to people who might be interested in whatever book you are discussing. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-09T07:05:15.403" CommunityOwnedDate="2011-05-04T00:07:17.570" CommentCount="1" />
  <row Id="17830" PostTypeId="1" AcceptedAnswerId="17835" CreationDate="2010-11-09T07:06:30.163" Score="6" ViewCount="185" Body="&lt;p&gt;I have been involved in many development models, and have found XP to be the best for a new programmer from the aspect of learning, as the collaboration between the team members is very high and the opportunities to share knowledge are great.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the expert opinions on this?  &lt;/p&gt;&#xA;" OwnerUserId="6703" LastEditorUserId="1842" LastEditorDisplayName="" LastEditDate="2010-11-09T07:17:38.780" LastActivityDate="2010-11-09T19:04:47.127" Title="Is Extreme Programming (XP) the best way of learning from experts?" Tags="&lt;programming-practices&gt;&lt;xp&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="1" />
  <row Id="17831" PostTypeId="2" ParentId="17826" CreationDate="2010-11-09T07:08:08.790" Score="23" ViewCount="" Body="&lt;p&gt;Time, effort, and persistence. For example, it took me months (maybe 6 months, 30 minutes per day) to crawl through Code Complete initially. Be sure to &lt;strong&gt;highlight&lt;/strong&gt; important things and make personal notes so that you can revise the essential points later on. You won't learn much by merely staring at the text.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See how to &lt;a href=&quot;http://norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;Teach Yourself Programming in Ten Years&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-11-09T09:44:35.530" LastActivityDate="2010-11-09T09:44:35.530" CommunityOwnedDate="2011-05-04T00:07:17.570" CommentCount="10" />
  <row Id="17832" PostTypeId="2" ParentId="17830" CreationDate="2010-11-09T07:09:19.443" Score="0" ViewCount="" Body="&lt;p&gt;Yes it will helps a lot. Thanks to pair programming and highly self managing team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other systems like Scrum are also very well suited to work with XP.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-09T07:29:29.177" LastActivityDate="2010-11-09T07:29:29.177" />
  <row Id="17833" PostTypeId="2" ParentId="17826" CreationDate="2010-11-09T07:10:15.883" Score="38" ViewCount="" Body="&lt;p&gt;How to eat an elephant? One bite at a time.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-09T07:10:15.883" CommunityOwnedDate="2011-05-04T00:07:17.570" CommentCount="15" />
  <row Id="17834" PostTypeId="2" ParentId="17792" CreationDate="2010-11-09T07:13:39.377" Score="1" ViewCount="" Body="&lt;p&gt;I would start with free marketing:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Press releases&lt;/li&gt;&#xA;&lt;li&gt;Forum posts&lt;/li&gt;&#xA;&lt;li&gt;Direct marketing (send an email to potential customers directly)&lt;/li&gt;&#xA;&lt;li&gt;SEO (if you can handle it yourself)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;With that, you will generate sales. Keep the money and reinvest it in paid marketing:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Google AdWords&lt;/li&gt;&#xA;&lt;li&gt;Banner campaigns&lt;/li&gt;&#xA;&lt;li&gt;Magazine advertising&lt;/li&gt;&#xA;&lt;li&gt;etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;After a while, you will be able to measure how much marketing you need for a certain amount of revenue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will be in position to test things, to invest your marketing money wisely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case, buying one of two books on the subject will help you a lot.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-09T07:13:39.377" />
  <row Id="17835" PostTypeId="2" ParentId="17830" CreationDate="2010-11-09T07:15:25.847" Score="8" ViewCount="" Body="&lt;p&gt;I would say regardless of methodology, the group must have the right attitude when sharing their knowledge. Where participants don't worry about prestige, and dare to ask questions from each other.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-11-09T09:45:16.213" LastActivityDate="2010-11-09T09:45:16.213" CommentCount="3" />
  <row Id="17836" PostTypeId="2" ParentId="17826" CreationDate="2010-11-09T07:29:05.220" Score="2" ViewCount="" Body="&lt;p&gt;I often skim the book a couple times, reading sections that catch my eye. After that I have a good idea what's in the book and can grab it later when I need to learn more about something. Then, as time permits, I'll read through it more methodically.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been developing over 30 years, and taught myself the majority of what I know by reading and trying what I've read. I'm very much a hands-on learner and like to tinker and tweak as I try out sample code if I'm unsure about something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's essential to keep learning if you want to make a decent living in programming. What technologies you know now and think are hot will be stale and over crowded in five years so you have to keep learning. Developers don't have the luxury of learning one thing and then relaxing. That's partly good and partly bad because the burden is on us to keep learning, but I think most developers love the creative challenge so we accept that price.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-11-09T07:29:05.220" CommunityOwnedDate="2011-05-04T00:07:17.570" />
  <row Id="17837" PostTypeId="2" ParentId="17766" CreationDate="2010-11-09T07:38:39.437" Score="1" ViewCount="" Body="&lt;p&gt;Yes i think by this way you create a good coding convention and it also creates a neat readable code for a 3rd person reviewing your code.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-09T07:38:39.437" />
  <row Id="17838" PostTypeId="2" ParentId="17766" CreationDate="2010-11-09T08:27:24.133" Score="3" ViewCount="" Body="&lt;p&gt;The other answers and their popularity have made it clear that full stops are well appreciated in longer comments, and probably can be avoided in one-liners.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another point that might be relevant is to avoid exclamation marks, &lt;strong&gt;especially multiples&lt;/strong&gt;. Example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    // Though loop is labor-intensive, performance is fine with with 95K cases!!!&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    // This code really sucks!&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;On the other hand, question marks are quite useful sometimes:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    // TODO: What does Crojpler.bway() actually do?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-11-09T08:27:24.133" />
  <row Id="17839" PostTypeId="1" CreationDate="2010-11-09T08:46:16.027" Score="0" ViewCount="122" Body="&lt;p&gt;What would be the best way to create a dynamic menu structure with Django?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want a menu structure with a menu and a submenu, and depending on&#xA;what page is currently viewed, I want to highlight items in both menus. Are&#xA;there any modules or apps that provide this? If not, what would be the best way&#xA;to approach the problem?&lt;/p&gt;&#xA;" LastActivityDate="2010-11-09T08:46:16.027" ClosedDate="2010-11-09T15:02:58.907" Title="What would be the best way to create a dynamic menu structure with Django?" Tags="&lt;django&gt;" CommentCount="1" />
  <row Id="17840" PostTypeId="2" ParentId="17779" CreationDate="2010-11-09T08:59:14.590" Score="1" ViewCount="" Body="&lt;p&gt;Hmm the difference is also region dependent. &lt;code&gt;Beauty and the geek&lt;/code&gt; is called &lt;code&gt;Beauty ant the nerd&lt;/code&gt; in Europe :-)&lt;/p&gt;&#xA;" OwnerUserId="7335" LastActivityDate="2010-11-09T08:59:14.590" CommentCount="1" />
  <row Id="17841" PostTypeId="2" ParentId="17792" CreationDate="2010-11-09T09:26:11.913" Score="0" ViewCount="" Body="&lt;p&gt;Don't forget the alternative stores - companies like Archos build android devices without access to the android market, but run their own stores; offering the software (in addition to the android market) there means smaller audience, but also smaller competition.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-09T09:26:11.913" />
  <row Id="17842" PostTypeId="2" ParentId="16618" CreationDate="2010-11-09T09:34:45.433" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&quot;GOTO considered harmful&quot; is considered harmful.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="6691" LastActivityDate="2010-11-09T09:34:45.433" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="6" />
  <row Id="17843" PostTypeId="1" AcceptedAnswerId="17850" CreationDate="2010-11-09T09:40:58.770" Score="12" ViewCount="408" Body="&lt;p&gt;I read few articles on web to find out how Agile, XP, Scrum, pair programming are different from each other / related to each other and I derived the following line:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Scrum and XP are almost same. XP has shorter period of releases than Scrum&lt;/li&gt;&#xA;&lt;li&gt;Pair programming is employed in both Agile and XP methodologies&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;But I was unable to identify how Agile is different from XP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More than providing a URL, I would be happy to read your experience and thoughts on this.&lt;/p&gt;&#xA;" OwnerUserId="156" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-12-14T00:29:58.663" LastActivityDate="2010-12-14T02:53:26.603" Title="How is Agile different from XP?" Tags="&lt;project-management&gt;&lt;agile&gt;&lt;scrum&gt;&lt;pair-programming&gt;&lt;xp&gt;" AnswerCount="6" FavoriteCount="2" />
  <row Id="17844" PostTypeId="2" ParentId="17843" CreationDate="2010-11-09T09:42:49.357" Score="15" ViewCount="" Body="&lt;p&gt;Agile is the generic term for the methodology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Extreme_Programming&quot; rel=&quot;nofollow&quot;&gt;XP&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Scrum_%28development%29&quot; rel=&quot;nofollow&quot;&gt;Scrum&lt;/a&gt; are the specific names for different implementations of that methodology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Wikipedia pages are probably good starting points for further reading- check the &quot;References&quot; and &quot;Further Reading&quot; sections at the bottom of each page, but you should look into each and other implementations further before deciding on the one that works for you, or (as others have pointed out) the bits of each implementation that work for you.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-11-09T12:41:42.740" LastActivityDate="2010-11-09T12:41:42.740" CommentCount="5" />
  <row Id="17845" PostTypeId="2" ParentId="17788" CreationDate="2010-11-09T09:44:40.307" Score="3" ViewCount="" Body="&lt;p&gt;I would say I optimise toward efficiency, with efficiency being defined as a compromise between development time, future maintainability, user-experience and resources consumed. As a developer you need to juggle all of these to maintain some kind of balance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you achieve that balance? Well, first you need to establish a few constants, such as what the deadline is, what hardware your application will be running on and what type of person will be using it. Without knowing these you cannot establish the correct balance and prioritise where it is needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, if you are developing a server application on a powerful machine you might want to trade-off performance efficiency to ensure you hit an immoveable deadline. However, if your developer an application that needs to respond quickly to user input (think a video game) then you need to prioritise your input routine to ensure it is not laggy.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-11-09T09:44:40.307" />
  <row Id="17846" PostTypeId="2" ParentId="17824" CreationDate="2010-11-09T09:54:07.263" Score="2" ViewCount="" Body="&lt;p&gt;Have you considered &lt;a href=&quot;http://www.martinfowler.com/articles/languageWorkbench.html#HowLanguageWorkbenchesAlterTheTrade-offsForLanguageOrientedProgramming.&quot; rel=&quot;nofollow&quot;&gt;Martin Fowlers language workbench approach&lt;/a&gt;? Quoting from the article&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The most obvious change that a&#xA;  language workbench makes to the&#xA;  equation is the ease of creating&#xA;  external DSLs. You no longer have to&#xA;  write a parser. You do have to define&#xA;  abstract syntax - but that's actually&#xA;  a pretty straightforward data modeling&#xA;  step. In addition your DSL gets a&#xA;  powerful IDE - although you do have to&#xA;  spend some time defining that editor.&#xA;  The generator is still something you&#xA;  have to do, and my sense is that it&#xA;  isn't much easier than it ever was.&#xA;  But then building a generator for a&#xA;  good and simple DSL is one of the&#xA;  easiest parts of the exercise.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Reading that, I would say that &lt;strong&gt;the days of writing your own parser are over&lt;/strong&gt; and it's better to use one of the libraries that are available. Once you've mastered the library then all DSLs that you create in the future benefit from that knowledge. Also, others don't have to learn your approach to parsing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit to cover comment (and revised question)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Advantages of rolling your own&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You'll own the parser and gain all that lovely experience of thinking through a intricate series of problems&lt;/li&gt;&#xA;&lt;li&gt;You may come up with something special that no-one else has thought of (unlikely but you seem like a clever chap)&lt;/li&gt;&#xA;&lt;li&gt;It'll keep you occupied with an interesting problem&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So in short, you should roll your own when you want to really hack deep into the bowels of a seriously difficult problem that you feel strongly motivated to master.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Advantages of using someone else's library&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You'll avoid re-inventing the wheel (a common problem in programming you'll agree)&lt;/li&gt;&#xA;&lt;li&gt;You can focus on the end result (you shiny new language) and not worry too much about how it's parsed etc&lt;/li&gt;&#xA;&lt;li&gt;You'll see your language in action much faster (but your reward will be less 'cos it wasn't all you)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Therefore, if you want a quick end result use someone else's library.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall, this comes down to a choice of how much you want to own the problem, and thus the solution. If you want it all then roll your own.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-09T21:29:01.890" LastActivityDate="2010-11-09T21:29:01.890" CommentCount="2" />
  <row Id="17848" PostTypeId="2" ParentId="17779" CreationDate="2010-11-09T09:56:25.343" Score="37" ViewCount="" Body="&lt;p&gt;I think this diagram explains it quite well:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/KW5Zs.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.reddit.com/comments/6e1d8/girl_geeks_on_the_rise/c03lc65&quot; rel=&quot;nofollow&quot;&gt;Courtesy of Reddit.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="325" LastActivityDate="2010-11-09T09:56:25.343" CommentCount="2" />
  <row Id="17849" PostTypeId="2" ParentId="17843" CreationDate="2010-11-09T10:09:21.990" Score="0" ViewCount="" Body="&lt;p&gt;Practically many organisations do not follow a specific methodology 100% like XP or Scrum as they are laid down. Specially if they have just started to follow Agile principles. They may pick and choose certain aspects of any given methodology like Scrum that falls within the Agile bandwagon. Agile is more abstract and it is easier to say that rather than saying we do XP or Scrum.&lt;/p&gt;&#xA;" OwnerUserId="3414" LastActivityDate="2010-11-09T10:09:21.990" />
  <row Id="17850" PostTypeId="2" ParentId="17843" CreationDate="2010-11-09T10:14:19.173" Score="24" ViewCount="" Body="&lt;p&gt;You are confusing the issue. Being agile means that you are following a bunch of values and practices from the &lt;a href=&quot;http://agilemanifesto.org/&quot; rel=&quot;nofollow&quot;&gt;agile manifesto&lt;/a&gt;. Thats it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;XP and Scrum are development processes that follows those values. Both are &quot;just as agile&quot;. The big difference between Scrum and XP is that &lt;strong&gt;Scrum does not contain practices specifically for programming&lt;/strong&gt;, whereas XP has lots of them (TDD, continuous integration, pair programming). &lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-12-14T02:53:26.603" LastActivityDate="2010-12-14T02:53:26.603" CommentCount="3" />
  <row Id="17851" PostTypeId="2" ParentId="17738" CreationDate="2010-11-09T10:23:40.623" Score="0" ViewCount="" Body="&lt;p&gt;Every organisation and code base is different, so it is difficult to get an industry wide value.&lt;br&gt;&#xA;If you are really serious then you should start collecting metrics. I.e. Do the code review until is satisfactorily done including rework. Start collecting this in a database (LOC, code complexity, programming language, time etc.). Then also collect metrics on your defect rate during testing. As long as you can reduce this code review should pay by itself. If defect comes back from testing then collect metrics on how much time was spent on fixing defects. Build these data in your organisation, create baselines, and you can predict it quite accurately. The terms to search for further learning is Cost of Quality and Cost of Poor Quality.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only caveat is that this can start to become bureaucratic and depends on organisation culture.&lt;/p&gt;&#xA;" OwnerUserId="3414" LastActivityDate="2010-11-09T10:23:40.623" CommentCount="1" />
  <row Id="17852" PostTypeId="2" ParentId="17824" CreationDate="2010-11-09T10:29:44.537" Score="2" ViewCount="" Body="&lt;p&gt;&quot;Should I use this tried-and-tested 'wheel' or reinvent it?&quot; &lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-11-09T10:29:44.537" CommentCount="5" />
  <row Id="17853" PostTypeId="2" ParentId="17779" CreationDate="2010-11-09T10:32:01.070" Score="-3" ViewCount="" Body="&lt;p&gt;i'm a nerdy geek)&lt;/p&gt;&#xA;" OwnerUserId="6028" LastActivityDate="2010-11-09T10:32:01.070" />
  <row Id="17855" PostTypeId="2" ParentId="16618" CreationDate="2010-11-09T10:35:52.827" Score="14" ViewCount="" Body="&lt;p&gt;Pseudo-OO spaghetti with &quot;dumb&quot; getters / setters everywhere and severely duplicated code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rant: see &lt;a href=&quot;http://www.javaworld.com/cgi-bin/mailto/x_java.cgi?pagetosend=/export/home/httpd/javaworld/javaworld/jw-09-2003/jw-0905-toolbox.html&amp;amp;pagename=/javaworld/jw-09-2003/jw-0905-toolbox.html&amp;amp;pageurl=http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html&amp;amp;site=jw_core&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5933" LastActivityDate="2010-11-09T10:35:52.827" CommunityOwnedDate="2011-04-14T16:13:04.920" />
  <row Id="17856" PostTypeId="2" ParentId="17788" CreationDate="2010-11-09T10:45:04.980" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Quality/Testing&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Optimise towards quality, as in ensuring there is time in the development schedule for testing, both unit testing and testing after features/phases.&lt;/p&gt;&#xA;" OwnerUserId="6457" LastActivityDate="2010-11-09T10:45:04.980" />
  <row Id="17857" PostTypeId="2" ParentId="17779" CreationDate="2010-11-09T11:15:28.983" Score="-2" ViewCount="" Body="&lt;p&gt;depends entirely on which will have the desired impact on the sentence I am using, within its context.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Christ, I really am a nerd!!)&lt;/p&gt;&#xA;" OwnerUserId="4499" LastActivityDate="2010-11-09T11:15:28.983" CommentCount="3" />
  <row Id="17858" PostTypeId="2" ParentId="17824" CreationDate="2010-11-09T11:26:35.737" Score="1" ViewCount="" Body="&lt;p&gt;It would depend on what type of grammar you are wanting to parse. All the generators I've seen have taken their input in the form of a (E)BNF (or some derivative thereof). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not all languages have context-free grammar, like Perl for example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, in general, I'm all about the code generators. I like the idea that I can express a language in a (E)BNF and have code generated to that specification. If/when I decide to change something about my language I can simply modify my grammar and re-run my code gen tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For .NET, I've really grown to love the &lt;a href=&quot;http://www.ssw.uni-linz.ac.at/coco/&quot; rel=&quot;nofollow&quot;&gt;Coco/R&lt;/a&gt; compiler generator.&lt;/p&gt;&#xA;" OwnerUserId="7123" LastActivityDate="2010-11-09T11:26:35.737" />
  <row Id="17859" PostTypeId="1" AcceptedAnswerId="17861" CreationDate="2010-11-09T11:32:46.190" Score="4" ViewCount="191" Body="&lt;p&gt;I'm looking at the job market (as I imagine many are at the moment...) and I wanted to ask what the general consensus is on the skill levels required for &quot;intermediate&quot; or &quot;junior&quot; developers (PHP). For example, what tasks should an &quot;intermediate&quot; developer be able to handle - and what would you expect from a junior?&lt;/p&gt;&#xA;" OwnerUserId="3712" LastActivityDate="2010-11-09T11:43:06.283" Title="Define &quot;Intermediate&quot; (PHP) developer" Tags="&lt;job-definition&gt;" AnswerCount="1" />
  <row Id="17861" PostTypeId="2" ParentId="17859" CreationDate="2010-11-09T11:43:06.283" Score="14" ViewCount="" Body="&lt;p&gt;First thing: I hate this sort of title.  Only give someone the title junior if you want them to act in a junior manner.  I'm not disputing that people are at different levels, just don't put it in the title, it's demeaning.  Just go with developer and leave it at that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My take would be (for any language):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Junior&quot; - generally requires assistance and mentoring and trusted primarily with smaller or simpler changes and fixes.  Knowledge around areas outside core skills (version control, other languages, best practice) tends to be weak.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Intermediate&quot; - able to work independently on larger code modules and fixes, can do some mentoring of more junior staff members, has a reasonable knowledge of best practice and some other skills around their core competencies.  Likely 2 - 3 years plus commercial experience minimum.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Senior&quot; - seen as a &quot;go to&quot; point for their key skills.  Capable of leading good size projects and mentoring others.  Champions best practice, frequently and actively suggesting improvements.  Good wider knowledge or technology and the industry.  Has shown themselves to be pragmatic and versatile and is likely to have some understanding of the business they work in.  Likely 5 - 10 years plus commercial experience minimum.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-09T11:43:06.283" CommentCount="2" />
  <row Id="17862" PostTypeId="2" ParentId="17824" CreationDate="2010-11-09T11:44:47.513" Score="6" ViewCount="" Body="&lt;p&gt;Option 3: &lt;strong&gt;Neither&lt;/strong&gt; (Roll your own parser generator)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just because there's a reason not to use &lt;a href=&quot;http://www.antlr.org/&quot; rel=&quot;nofollow&quot;&gt;ANTLR&lt;/a&gt;, &lt;a href=&quot;http://www.gnu.org/software/bison/&quot; rel=&quot;nofollow&quot;&gt;bison&lt;/a&gt;, &lt;a href=&quot;http://ssw.jku.at/Coco/&quot; rel=&quot;nofollow&quot;&gt;Coco/R&lt;/a&gt;, &lt;a href=&quot;http://grammatica.percederberg.net/&quot; rel=&quot;nofollow&quot;&gt;Grammatica&lt;/a&gt;, &lt;a href=&quot;https://javacc.dev.java.net/&quot; rel=&quot;nofollow&quot;&gt;JavaCC&lt;/a&gt;, &lt;a href=&quot;http://www.hwaci.com/sw/lemon/&quot; rel=&quot;nofollow&quot;&gt;Lemon&lt;/a&gt;, &lt;a href=&quot;http://www.parboiled.org/&quot; rel=&quot;nofollow&quot;&gt;Parboiled&lt;/a&gt;, &lt;a href=&quot;http://www.sablecc.org/&quot; rel=&quot;nofollow&quot;&gt;SableCC&lt;/a&gt;, &lt;a href=&quot;http://quex.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Quex&lt;/a&gt;, &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Comparison_of_parser_generators&quot; rel=&quot;nofollow&quot;&gt;etc&lt;/a&gt;&lt;/strong&gt; - that doesn't mean you should instantly roll your own parser+lexer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Identify &lt;em&gt;why&lt;/em&gt; all these tools are not good enough - why don't they let you achieve your goal?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you're certain that the oddities in the grammar you're dealing with are unique, you shouldn't just create a single custom parser+lexer for it. Instead, create a tool that will create what you want, but can also be used to fulfil future needs, then release it as Free Software to prevent other people having the same problem as you.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-11-09T11:44:47.513" CommentCount="3" />
  <row Id="17864" PostTypeId="2" ParentId="17568" CreationDate="2010-11-09T12:02:39.527" Score="1" ViewCount="" Body="&lt;p&gt;There is also software that promises to automatically track employee time, then generate timesheets automatically for review by the employee before submitting them to their managers.  Clever Timesheets is an example.  (&lt;a href=&quot;http://www.clevertimesheets.com&quot; rel=&quot;nofollow&quot;&gt;http://www.clevertimesheets.com&lt;/a&gt;)&lt;/p&gt;&#xA;" LastActivityDate="2010-11-09T12:02:39.527" CommunityOwnedDate="2011-01-28T18:20:56.797" />
  <row Id="17865" PostTypeId="2" ParentId="17830" CreationDate="2010-11-09T12:06:29.233" Score="1" ViewCount="" Body="&lt;p&gt;I don't think you can beat an excellent teacher who knows his stuff. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The temptation of pair programming is. you just need a domain expert, teaching skills not required. In my experience, that works only for the very few students who wouldn't strictly need a teacher anyway.&lt;/p&gt;&#xA;" OwnerUserId="7313" LastActivityDate="2010-11-09T12:06:29.233" />
  <row Id="17866" PostTypeId="2" ParentId="17843" CreationDate="2010-11-09T12:07:54.180" Score="3" ViewCount="" Body="&lt;p&gt;How do you fry chicken? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is a serious question. How do you collect the intent of other people's work into something that works for you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I see so many questions not only here, but on SO that ask &lt;em&gt;&quot;Should I use x, y or Z?&quot;&lt;/em&gt; while little attention is actually given to how a drastic change might effect a team, or (worse) the effect of someone trying something without fully understanding how it works. When it comes to development methodology, you &lt;em&gt;don't&lt;/em&gt; understand it until you have &lt;em&gt;used&lt;/em&gt; it successfully, otherwise you are just following blind advice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every time I see &lt;em&gt;&quot;Would scrum work for me?&quot;&lt;/em&gt; I ask &lt;em&gt;&quot;I don't know, have you tried it?&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't read these things like they come from some sort of spiritual scripture. Take what works for you, try it and if it works implement the parts that worked. This is no different from taking the best of what &lt;em&gt;libfoo&lt;/em&gt; and &lt;em&gt;libbar&lt;/em&gt; do and making something that fills your need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At what point did someone say &quot;Follow, to the letter this method or be damned for life&quot; ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best method is your best adaptation of published and original wisdom that &lt;strong&gt;&lt;em&gt;works for you&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-09T12:07:54.180" />
  <row Id="17867" PostTypeId="2" ParentId="12133" CreationDate="2010-11-09T12:08:15.187" Score="0" ViewCount="" Body="&lt;p&gt;I think that model driven development is the real problem and certainly not UML graphical notation which is known and accepted by millions of users.&#xA;UML is not requirement but could be extended using profiles and therefore if you model and have a kind of model merge for each iteration between code and model, then it would be possible to model if requirements evolve !!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use Omondo because my project is developped in Java and must admit this tool is the only I found capable of merging code and model at any time. My requirements are sometimes changing every week, my project documentation is always up to date and my UML model accurate :-)&#xA;I can also trace requirements inside the UML metamodel and query the xmi which is also my model. Just amazing technology !!&lt;/p&gt;&#xA;" OwnerUserId="5283" LastActivityDate="2010-11-09T12:08:15.187" />
  <row Id="17868" PostTypeId="1" CreationDate="2010-11-09T12:12:21.657" Score="11" ViewCount="230" Body="&lt;p&gt;Over the last years of web programming, I've noticed how bad I am at designing things. I have substantial knowledge of HTML and CSS, I can make a website look like I want it to, I have some pretty intense knowledge about usability. My only problem is: I can't design a web-site or even an element of it to look good and solid. Either the colors are wrong or the spacing, I can't pinpoint it most of the time, but something is off every time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How could I get a better feeling for design matters like compositing or coloring? Could you recommend any books, articles or maybe trainings?&lt;/p&gt;&#xA;" OwnerUserId="215" LastActivityDate="2010-11-09T16:56:35.967" Title="How do I get a feeling for visual design as a programmer?" Tags="&lt;self-improvement&gt;&lt;design&gt;&lt;composition&gt;&lt;visual&gt;" AnswerCount="6" FavoriteCount="7" />
  <row Id="17869" PostTypeId="2" ParentId="17779" CreationDate="2010-11-09T12:14:43.040" Score="-2" ViewCount="" Body="&lt;p&gt;According to @RegDwight's diagram, I'm a Geek&lt;/p&gt;&#xA;" OwnerUserId="7343" LastActivityDate="2010-11-09T12:14:43.040" CommentCount="1" />
  <row Id="17870" PostTypeId="2" ParentId="5597" CreationDate="2010-11-09T12:16:06.397" Score="0" ViewCount="" Body="&lt;p&gt;If you are programming in the business world (as opposed to the teaching or for science or something very close to the hardware), the farther you get from your education (in time), the more important experience becomes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, experience and reputation will always trump education... because it shows your proven ability to produce.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a liberal arts degree in Biblical Studies - which is about as relevant in this business as a high school diploma.  A few years ago, when I was contemplating getting a graduate degree in CS, I found an article where they compared 2 job applications - one who had spent 1 1/2 years right out of college getting the graduate degree and the other who went right to work and had 1 1/2 years of experience (maybe he planned on getting the degree later?).  The hiring manager, who wrote the article, said that, all things being equal, he would always hire the one with the experience first.  The reasoning he gave is that the one with the experience could produce immediately, knew that he loved to program (wouldn't bail), and knew how to work. He also made the point that the student was studying things that were relevant to the industry 2 - 5 years ago (when the curriculum was designed)... the one with experience was learning (because we're always learning in this business) what is relevant in the industry &lt;em&gt;today&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the sound of your struggles (family, finance, frustration with the relevance of your schooling to your ability to produce) - I would suggest that you &quot;hit the market&quot; and begin building your experience.  It may be a bit of a struggle to get started, but once you leave that start in your rear view mirror and build your resume and experience, you will soon find yourself a strong competitor with  the opportunity to make the education of those around you irrelevant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, if the degree is really important to you down the road - you always have the option (when you have the time and the means) to finish it later.&lt;/p&gt;&#xA;" OwnerUserId="2671" LastEditorUserId="2671" LastEditorDisplayName="" LastEditDate="2010-11-09T12:29:44.713" LastActivityDate="2010-11-09T12:29:44.713" CommunityOwnedDate="2011-01-26T20:35:39.517" />
  <row Id="17871" PostTypeId="2" ParentId="17826" CreationDate="2010-11-09T12:19:47.407" Score="2" ViewCount="" Body="&lt;p&gt;This is a strange question.  If you are interested in something, isn't it natural to want to read about it?  If you find it difficult to read books about programming, you should ask yourself if you are really that interested.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the answer is still yes, then make sure you pick a good book that is related to what you are currently doing.  For instance, if you are using C++, start reading the books by Scott Meyers or Andrey Alexandrescu.  &lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-11-09T12:19:47.407" CommunityOwnedDate="2011-05-04T00:07:17.570" CommentCount="2" />
  <row Id="17872" PostTypeId="2" ParentId="17868" CreationDate="2010-11-09T12:24:28.650" Score="7" ViewCount="" Body="&lt;p&gt;If you are anything like me, you are a code monkey with the artistic skills of a 2 year old. Honestly, this is where I allow other people to use their strengths; or use a third party template. When artists need code, they come to me. When I need art, I go to the artists. It works well that way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I really need a nice design, I pay for the template and then massage it to what I want. However, if you really want to learn, I would encourage you to take a design course. It would be an almost necessary start.&lt;/p&gt;&#xA;" OwnerUserId="4056" LastActivityDate="2010-11-09T12:24:28.650" CommentCount="5" />
  <row Id="17873" PostTypeId="2" ParentId="17868" CreationDate="2010-11-09T12:26:17.323" Score="4" ViewCount="" Body="&lt;p&gt;You can look into &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1564968936&quot; rel=&quot;nofollow&quot;&gt;Making and Breaking the Grid&lt;/a&gt; and &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0471699020&quot; rel=&quot;nofollow&quot;&gt;History of Graphic Design&lt;/a&gt;. Maybe get a book on type too, and something on color psychology. Don't be overly concerned with the books though; they'll just give you the basics and principles. Probably the most important thing to do is to set up a drafting table and start practicing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I mean drafting table; a lot of the digital page layout/drawing/typesetting tools people use these days were built to ease the processes of putting a layout together. Seeing the original processes first hand will make it that much easier to apply them in the modern context. The switch out of a computer environment will also give you a more direct experience with what you're trying to achieve (which is incidentally the same in print and on the web; a readable, engaging layout). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, just &lt;strong&gt;read up on the theory, then practice. A lot.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's about as good a process as I can think of, sadly. In the same way that you can't really Learn C++ In 21 Days, you can't really Learn Design In 21 Days. You can get enough of the basics that people won't laugh at your layouts, but getting really good at it requires a lot of effort and focus.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-11-09T13:58:25.397" LastActivityDate="2010-11-09T13:58:25.397" CommentCount="5" />
  <row Id="17874" PostTypeId="2" ParentId="17826" CreationDate="2010-11-09T12:34:48.907" Score="7" ViewCount="" Body="&lt;p&gt;&lt;code&gt;How can I improve my ability to read these books?&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't ever, ever, ever have kids. The moment I did, all my free time to enjoy books disappeared. Now, the only time I have to read is after the kids are in bed, and by then it merely takes reading two or three pages (no kidding) before I'm out like the kids. A shame really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a more serious note, reading technology books is a great way to expand your knowledge. I stopped (for the most part) buying books that cover languages, toolkits, APIs, etc as those are a dime a dozen and most of their content can be easily Googled. There are a few exceptions, but by-and-large the vast majority of todays technical books are not worth the effort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there are still some good ones being published and there are countless classics already written. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;What does it really take to read technical books, apart from the real interest on the technology?&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A major credit card. :-) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just go to Amazon.com and purchase a used copy of the first edition of &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201100886&quot; rel=&quot;nofollow&quot;&gt;Compilers: Principals, Techniques, and Tools&lt;/a&gt; by Aho et al. This type of book is a great read, especially if you follow along and write your own compiler as you go through the book. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be prepared to read a chapter (or less even) and sit the book down and jump on your computer. As a general statement, I find technology books much, much, more enjoyable when I have a real life problem I am trying to apply their knowledge to. &lt;/p&gt;&#xA;" OwnerUserId="7123" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-09T14:52:20.963" LastActivityDate="2010-11-09T14:52:20.963" CommunityOwnedDate="2011-05-04T00:07:17.570" CommentCount="3" />
  <row Id="17875" PostTypeId="1" CreationDate="2010-11-09T12:35:31.137" Score="1" ViewCount="123" Body="&lt;p&gt;I had faced the problem. In my C++ hierarchy tree I have two branches for entities of difference nature, but same behavior - same interface.&#xA;I created such hierarchy trees (first in image below).&lt;br&gt;&#xA;And now I want to work with Item or Base classes independetly of their nature (first or second). Then I create one abstract branch for this use. My mind build (second in image below).&lt;br&gt;&#xA;But it not working. Working scheme seems (third in image below).&lt;br&gt;&#xA;It's bad logic, I think...&lt;br&gt;&#xA;Do anybody have some ideas about such hierarchy inheritance? How make it more logical? More simple for understanding?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://img440.imageshack.us/img440/8822/32828427.jpg&quot; rel=&quot;nofollow&quot;&gt;Image&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry for my english - russian internet didn't help:)&lt;/p&gt;&#xA;" OwnerUserId="1722" LastActivityDate="2010-11-09T15:23:28.883" ClosedDate="2010-11-09T15:24:14.143" Title="Hierarchy inheritance" Tags="&lt;c++&gt;&lt;object-oriented&gt;&lt;inheritance&gt;" AnswerCount="1" CommentCount="4" />
  <row Id="17876" PostTypeId="1" AcceptedAnswerId="17880" CreationDate="2010-11-09T13:05:44.000" Score="5" ViewCount="228" Body="&lt;ol&gt;&#xA;&lt;li&gt;What qualifies a good project manager?&lt;/li&gt;&#xA;&lt;li&gt;What skills do these stakeholders require from a good project manager?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Example of some stakeholders:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Project manager&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Project team members&lt;/li&gt;&#xA;&lt;li&gt;Upper management&lt;/li&gt;&#xA;&lt;li&gt;Project customer&lt;/li&gt;&#xA;&lt;li&gt;Resource Managers&lt;/li&gt;&#xA;&lt;li&gt;Line Managers&lt;/li&gt;&#xA;&lt;li&gt;Product user group&lt;/li&gt;&#xA;&lt;li&gt;Project testers&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-11-09T13:15:05.830" LastActivityDate="2010-11-09T15:38:00.393" ClosedDate="2010-12-15T17:40:01.920" Title="What qualifies a good project manager?" Tags="&lt;project-management&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="3" />
  <row Id="17877" PostTypeId="2" ParentId="17868" CreationDate="2010-11-09T13:05:58.460" Score="-1" ViewCount="" Body="&lt;p&gt;From a coder like you:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How I learned to have some sense of graphical design: firstly, I figured there was really no theory. If you want to create mediocre design, just copy it from someone else: the source for copying is vast and endless, that's Internet; if you want to have an innovative, genius design, then read the &quot;theory&quot; and do the opposite.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep studying how best designs are done, all by yourself. Take a web site that made you say &quot;wow&quot; at first glance, then start digging, decomposing and dissecting it, not necessarily literally of course, to see what exactly was that excited you so much. Or what is it about a given web site that you wouldn't have figured yourself (is it spacing, fonts, the color scheme?). Note everything and go on to the next design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After a while, and it may take months and even years, you will build up your internal sense of graphical beauty. Anyone can do it. It's just that it takes time and patience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Try doing artistic photography at your spare time, too: it's probably the easiest of all arts, but again, improves your tastes. Don't forget to study the best photographers' works.)&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-09T13:05:58.460" CommentCount="24" />
  <row Id="17878" PostTypeId="2" ParentId="17729" CreationDate="2010-11-09T13:14:53.973" Score="4" ViewCount="" Body="&lt;p&gt;Your update &quot;I would like to get the ninja as a co-founder...&quot; tells me loud and clear you WON'T be paying ninja money. You're hoping to bring in somebody to make your vision turn out without compensating them, and instead promising them heaps of riches at some future time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As somebody who's heard that tune before: &lt;em&gt;good luck with that&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-11-09T13:14:53.973" CommentCount="1" />
  <row Id="17879" PostTypeId="2" ParentId="17826" CreationDate="2010-11-09T13:17:42.970" Score="3" ViewCount="" Body="&lt;p&gt;What I do is kinda &quot;Breadth-first read&quot;: first the table of contents, then I try to read the chapters in order but not so in-depth, skipping big chunks of text and going straight to code, backtracking a little if necessary to understand it. Having a better idea of the book, I fully read the interesting chapters and left the rest of the book to be read &quot;on demand&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1969" LastActivityDate="2010-11-09T13:17:42.970" CommunityOwnedDate="2011-05-04T00:07:17.570" />
  <row Id="17880" PostTypeId="2" ParentId="17876" CreationDate="2010-11-09T13:18:24.993" Score="10" ViewCount="" Body="&lt;p&gt;A good project manager is someone who makes management invisible for everyone concerned. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They may track your time without bothering you to do it, they may even shuffle around costs to keep everyone employed when idle. They set up, initially some tools so that they can do their job and they make sure that you have what you need, when you need it. They don't have to ask &quot;when will [whatever] be [fixed][done]&quot;, they can query that from the bug tracker and gain a realistic expectation without putting pressure on you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do your job, they are your best friend, however they constantly listen to ensure that they aren't putting road blocks in the way. Still, their concern is the health of the team, and if someone is consistently failing to produce, they need to do what the rest of the team can't do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good PM indirectly gets to know you and can approach you if they know that something might be troubling you. They also make damn sure that they have the ability to fix arbitrary things prior to signing on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, a good PM is someone you rarely see. If they are really good at their job, the project 'just works' and everyone is happy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good one can make sure that you can do your job. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-09T13:18:24.993" CommentCount="4" />
  <row Id="17881" PostTypeId="2" ParentId="17824" CreationDate="2010-11-09T13:28:14.653" Score="5" ViewCount="" Body="&lt;p&gt;Rolling your own parser forces you to think directly about the complexity of your language.  If the language is hard to parse, it is probably going to be hard to understand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There was a lot of interest in parser generators in the early days, motivated by highly-complicated (some would say &quot;tortured&quot;) language syntax.  JOVIAL was a particularly-bad example: it required two symbol lookahead, at a time when everything else required at most one symbol.  This made generating the parser for a JOVIAL compiler more difficult than expected (as General Dynamics / Fort Worth Division learned the hard way when they procured JOVIAL compilers for the F-16 program).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Today, recursive descent is universally the preferred method, because it is easier for compiler writers.  Recursive descent compilers strongly reward simple, clean language design, in that it is a lot easier to write a recursive-descent parser for a simple, clean language than for a convoluted, messy one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally:  Have you considered embedding your language in LISP, and letting a LISP interpreter do the heavy lifting for you?  AutoCAD did that, and found it made their life a lot easier.  There are quite a few lightweight LISP interpreters out there, some embeddable.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-11-09T13:28:14.653" CommentCount="3" />
  <row Id="17883" PostTypeId="2" ParentId="17826" CreationDate="2010-11-09T13:48:50.103" Score="2" ViewCount="" Body="&lt;p&gt;Honestly, there are a few programming books that I read as avidly as one usually reads a novel. Just look for the &lt;a href=&quot;http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read&quot;&gt;most interesting&lt;/a&gt; ones, and reading them will not be a problem at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't just limit yourself to exclusively technical books; a lot of interesting books about programming are &lt;a href=&quot;http://amzn.com/B002RHN7RM&quot; rel=&quot;nofollow&quot;&gt;interviews&lt;/a&gt;, &lt;a href=&quot;http://amzn.com/B0026OR2NQ&quot; rel=&quot;nofollow&quot;&gt;essays&lt;/a&gt;, &lt;a href=&quot;http://amzn.com/0812972155&quot; rel=&quot;nofollow&quot;&gt;success stories&lt;/a&gt;, things like that. I find those extremely fascinating and still informative. They might be a good starting point for you.&lt;/p&gt;&#xA;" OwnerUserId="692" LastActivityDate="2010-11-09T13:48:50.103" CommunityOwnedDate="2011-05-04T00:07:17.570" />
  <row Id="17884" PostTypeId="2" ParentId="17715" CreationDate="2010-11-09T13:49:16.363" Score="1" ViewCount="" Body="&lt;p&gt;I agree that open and honest discussion with the guys at the startup is the way to go. Even if they can offer something comparable to what you expect from the other company, though, you should also consider their ability to make good on it aside from their good intentions. You aren't unreasonable for not wanting to work endless hours of uncompensated overtime, and personally that degree of uncertainty with the startup would push me towards the other offer as soon as it materializes.&lt;/p&gt;&#xA;" OwnerUserId="5747" LastActivityDate="2010-11-09T13:49:16.363" />
  <row Id="17885" PostTypeId="2" ParentId="17826" CreationDate="2010-11-09T13:50:55.317" Score="2" ViewCount="" Body="&lt;p&gt;What I've found important is to read the preface.  Often the author(s) will give you some suggestion on how to read the book.  Also, I try to read the introductory chapters straight through, even if I think I already have the necessary background.  I find that it often helps familiarize me with the book's vocabulary (e.g., &quot;When we say 'server', we mean the physical hardware; when we say 'Web server' we mean the application server instance.&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also have to fight the urge to skim.  Reading for comprehension is different from reading for reference.  Slow down, and take a break every couple of pages and review what you've just read.  Re-reading challenging sections often feels like a waste of time, but it pays off in the long run because it helps me comprehend later sections faster.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-09T13:50:55.317" CommunityOwnedDate="2011-05-04T00:07:17.570" />
  <row Id="17886" PostTypeId="2" ParentId="17792" CreationDate="2010-11-09T13:59:12.217" Score="0" ViewCount="" Body="&lt;p&gt;If you're looking to learn how to market, I would suggest starting with Seth Godin (http://sethgodin.typepad.com/). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be warned; just like learning to write code, it's not an easy process, and it won't happen over night. Accept that now, get started, and you'll find yourself on the path to where you want to be much sooner than if you just try to go it alone.&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-11-09T13:59:12.217" />
  <row Id="17887" PostTypeId="1" AcceptedAnswerId="17897" CreationDate="2010-11-09T14:18:44.033" Score="5" ViewCount="285" Body="&lt;p&gt;Is a Program Manager a person who manages mutiple projects (under a single program) which are in turn managed by Project Managers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or is a Program Manager a person as defined by Joel Spolsky &lt;a href=&quot;http://www.joelonsoftware.com/items/2009/03/09.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; I am not referring to &lt;a href=&quot;http://en.wikipedia.org/wiki/Program_Manager&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="5070" LastActivityDate="2010-11-09T22:12:31.320" Title="What is the difference between a Program Manager and a Project Manager?" Tags="&lt;project-management&gt;&lt;terminology&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="17888" PostTypeId="2" ParentId="10084" CreationDate="2010-11-09T14:30:27.200" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.lisperati.com/&quot; rel=&quot;nofollow&quot;&gt;Lisperati&lt;/a&gt; comes pretty close for Common Lisp, though Dr Barski doesn't have as good a sense of design as &lt;a href=&quot;http://learnyouahaskell.com/&quot; rel=&quot;nofollow&quot;&gt;Miran Lipovača&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as learning programming; no. Going from book to book won't do it. Probably the best approach is to pick a project, then implement it in a language you like. Repeat until you're out of languages, then repeat with your favorite language until you're out of projects. You don't have to start big; try implementing your website in something other than HTML (since you're into Ruby at the moment, you could do a lot worse than pick up Rails). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that, it really depends what you're into. If you like cooking, maybe implement a recipe tracker (if you're feeling adventurous, try implementing a recipe &lt;em&gt;generator&lt;/em&gt;). If you mix, look into &lt;a href=&quot;http://impromptu.moso.com.au/&quot; rel=&quot;nofollow&quot;&gt;(i)mpromptu&lt;/a&gt; or &lt;a href=&quot;http://www.pawfal.org/fluxus/&quot; rel=&quot;nofollow&quot;&gt;(fluxus)&lt;/a&gt; or other live-coding systems. If coding is the hobby you're trying to get into, try implementing your own bug tracker/source control/editor (it's worth noting that you probably shouldn't actually &lt;strong&gt;use&lt;/strong&gt; anything you build at this stage; Redmine, GIT and Emacs already exist, but trying to implement something similar will give you an idea about how they're structured).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you're practiced and have a better understanding of whatever languages you've decided you like, start reading others' code (you can try this earlier if you like, but you need to get the language before it'll start being very valuable to you). &lt;a href=&quot;https://github.com/&quot; rel=&quot;nofollow&quot;&gt;GitHub&lt;/a&gt; and similar sites are plentiful, no matter what your VCS choice happens to be. If you find a project you like and use, try contributing to it.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-11-09T14:54:26.240" LastActivityDate="2010-11-09T14:54:26.240" CommunityOwnedDate="2010-11-09T14:30:27.200" />
  <row Id="17889" PostTypeId="2" ParentId="17830" CreationDate="2010-11-09T14:34:04.860" Score="0" ViewCount="" Body="&lt;p&gt;It helps, but only when the more knowledgable programmer of a pair works to transmit that knowledge to the other. For instance, if he does all the programming while the newbie is watching, that won't help (much). However, if the new guy does some of the work with the more experienced programmer helping him, he will learn more and the more experienced programmer will be able to hone his teaching skills.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-09T14:34:04.860" />
  <row Id="17890" PostTypeId="2" ParentId="17868" CreationDate="2010-11-09T14:37:35.120" Score="4" ViewCount="" Body="&lt;p&gt;I was a full-time graphic designer before I became a programmer. A graphic design class will lay down a solid foundation here. It'll be business cards and menus, but it will give a good introduction to font styling and selection, basic layout principles, and the like, most of which will be applicable to the web (but not all). A couple of quick resources to help you get started on the web stuff:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321344758&quot; rel=&quot;nofollow&quot;&gt;Don't Make Me Think by Steve Krug&lt;/a&gt; is an excellent introduction to clean, efficient web design. You won't find the latest design trends, but you will find the ones that work.&lt;/li&gt;&#xA;&lt;li&gt;Khoi Vinh of the excellently designed Subtraction website is about to release a book: &lt;a href=&quot;http://www.subtraction.com/2010/11/05/i-wrote-a-book&quot; rel=&quot;nofollow&quot;&gt;Ordering Disorder: Grid Principles for Web Design&lt;/a&gt;, which is highly anticipated. He's really going to get into the details of what principles from print design theory applies and what doesn't.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2010-11-09T14:37:35.120" />
  <row Id="17891" PostTypeId="2" ParentId="17826" CreationDate="2010-11-09T14:41:41.820" Score="3" ViewCount="" Body="&lt;p&gt;If I get one of those big ol' reference type books, I read it as a reference. Meaning, I skim it looking for the key points, and trying to learn the book so that I know where to look something up when I need it. A good example is my C reference manual. I have read it through, but I couldn't quote the C specs to you. However, I know most of the important things, and I can look up anything I need to quickly because I'm familiar with the layout of the book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I'm reading a how-to or introductory book, I generally do it in front of the computer so I can try the stuff as I go. My favorite intro books have lots of code in them to try - and I'm telling you, &lt;strong&gt;Don't use the code samples on the CD!!!&lt;/strong&gt; You'll gain much more practical knowledge by typing it yourself.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-09T14:41:41.820" CommunityOwnedDate="2011-05-04T00:07:17.570" />
  <row Id="17892" PostTypeId="2" ParentId="16618" CreationDate="2010-11-09T14:46:21.893" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Direct SQL injection.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;SQL that doesn't go through something that sanitizes user-input, or works through something like ActiveRecord.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, this is already getting enough flack I think it's going to die.&lt;/p&gt;&#xA;" OwnerUserId="1525" LastActivityDate="2010-11-09T14:46:21.893" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="1" />
  <row Id="17893" PostTypeId="2" ParentId="17826" CreationDate="2010-11-09T14:47:39.687" Score="1" ViewCount="" Body="&lt;p&gt;I'd highly recommend &lt;a href=&quot;http://books.google.com/books?id=Z5PpkQadm5EC&amp;amp;lpg=PP1&amp;amp;ots=5a40Z0agF_&amp;amp;dq=how%20to%20read%20a%20book&amp;amp;pg=PP1#v=onepage&amp;amp;q&amp;amp;f=false&quot; rel=&quot;nofollow&quot;&gt;How to Read a Book&lt;/a&gt;. It gives general advice on how to get the most out of your reading by taking notes, asking questions, determining the authors goals, etc. It also gives advice on how to make the most of your time by determining what can be skimmed or skipped early on. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not aimed specifically at technical books, but the advice certainly applies. And it's a fairly easy read itself, though lengthy. But a number of the chapters on specific types of reading can be skipped.&lt;/p&gt;&#xA;" OwnerUserId="7350" LastActivityDate="2010-11-09T14:47:39.687" CommunityOwnedDate="2011-05-04T00:07:17.570" CommentCount="1" />
  <row Id="17894" PostTypeId="2" ParentId="17826" CreationDate="2010-11-09T14:49:21.797" Score="0" ViewCount="" Body="&lt;p&gt;I don't find much time to read books. &quot;Real World Haskell&quot; took me about a year to finish. I usually skip the passages which i can not apply in the short term. I read the interesting pages bit by bit. What helps is outlining the most important insights with a pencil so that i don't forget what i was reading when i finally pick it up again.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-11-09T14:49:21.797" CommunityOwnedDate="2011-05-04T00:07:17.570" />
  <row Id="17895" PostTypeId="2" ParentId="17824" CreationDate="2010-11-09T14:53:22.367" Score="4" ViewCount="" Body="&lt;p&gt;I've written a parser for commercial application once and I used &lt;strong&gt;yacc&lt;/strong&gt;.  There was a competing prototype where a developer wrote the whole thing by hand in C++ and it worked about five times slower.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the lexer for this parser, I wrote it entirely by hand.  It took -- sorry, it was almost 10 years ago, so I don't remember it precisely -- about 1000 lines in &lt;strong&gt;C&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason why I wrote the lexer by hand was the parser's input grammar. It was a requirement, something my parser implementation had to comply with, as opposed to something  I designed.  (Of course I would have designed it differently.  And better!)  The grammar was severely context-dependent and even lexing depended on semantics in some places.  For example a semicolon could be part of a token in one place, but a separator in a different place -- based on a semantical interpretation of some element that was parsed out before.  So, I &quot;buried&quot; such semantical dependencies in the hand-written lexer and that left me with a fairly straightforward &lt;em&gt;BNF&lt;/em&gt; that was easy to implement in yacc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;ADDED&lt;/strong&gt; in response to &lt;strong&gt;Macneil&lt;/strong&gt;: yacc provides a very powerful abstraction that lets the programmer think in terms of terminals, non-terminals, productions and stuff like that.  Also, when implementing &lt;code&gt;yylex()&lt;/code&gt; function, it helped me to focus on returning the current token and not worry about what was before or after it.  The C++ programmer worked on the character level, without the benefit of such abstraction and ended up creating a more complicated and less efficient algorithm.  We concluded that the slower speed had nothing to do with C++ itself or any libraries.  We measured pure parsing speed with files loaded in memory; if we had a file buffering problem, yacc wouldn't be our tool of choice to solve it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;ALSO WANT TO ADD&lt;/strong&gt;: this is not a recipe for writing parsers in general, just an example of how it worked in one particular situation.&lt;/p&gt;&#xA;" OwnerUserId="464" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-11-09T19:46:49.400" LastActivityDate="2010-11-09T19:46:49.400" CommentCount="4" />
  <row Id="17896" PostTypeId="2" ParentId="17788" CreationDate="2010-11-09T14:55:15.820" Score="2" ViewCount="" Body="&lt;h2&gt;Research Results&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;As an academic, I figured I should share what I optimize for. Note that this isn't quite the same as optimizing for a shorter development time. Often it means that the work might support some research question, but not be a deliverable, polished product. This might be viewed as an issue with quality, and it could explain why many say that (academic) computer scientists don't have any &quot;real world&quot; experience. (E.g., &lt;em&gt;&quot;Wouldn't they know how to develop a deliverable product otherwise?&quot;&lt;/em&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a fine line. In terms of impact, you want your work to be used and cited by others, and &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000356.html&quot; rel=&quot;nofollow&quot;&gt;Joel's Iceberg Effect&lt;/a&gt; comes into play: a little polish and shine can go a long way. But if you aren't making a foundation for other projects to be built on, you just might not be able to justify the time spent making a deliverable product.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-09T14:55:15.820" />
  <row Id="17897" PostTypeId="2" ParentId="17887" CreationDate="2010-11-09T15:01:37.757" Score="8" ViewCount="" Body="&lt;p&gt;I suppose the answer hinges on what the terms &quot;Program&quot; and &quot;Project&quot; mean.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;According to Project Management Institute (PMI), The Standard for Program Management, 2nd Ed., &quot;A Program is a group of related projects managed in a coordinated way to obtain benefits and control NOT available from managing them individually. Programs may include elements of related work outside of the scope of the discreet projects in the program... Some projects within a program can deliver useful incremental benefits to the organization before the program itself has completed.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-09T15:01:37.757" />
  <row Id="17898" PostTypeId="1" AcceptedAnswerId="17958" CreationDate="2010-11-09T15:12:08.523" Score="45" ViewCount="2175" Body="&lt;p&gt;In your own studies (on your own, or for a class) did you have an &quot;ah ha&quot; moment when you finally, really understood pointers? Do you have an explanation you use for beginner programmers that seems particularly effective?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, when beginners first encounter pointers in C, they might just add &lt;code&gt;&amp;amp;&lt;/code&gt;s and &lt;code&gt;*&lt;/code&gt;s until it compiles (as I myself once did). Maybe it was a picture, or a really well motivated example, that made pointers &quot;click&quot; for you or your student. What was it, and what did you try before that didn't seem to work? Were any topics prerequisites (e.g. structs, or arrays)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, what was necessary to understand the meaning of &lt;code&gt;&amp;amp;&lt;/code&gt;s and &lt;code&gt;*&lt;/code&gt;, when you could use them with confidence? Learning the syntax and terminology or the use cases isn't enough, at some point the idea needs to be internalized.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Update:&lt;/em&gt; I really like the answers so far; please keep them coming. There are a lot of great perspectives here, but I think many are good explanations/slogans for ourselves &lt;em&gt;after&lt;/em&gt; we've internalized the concept. I'm looking for the detailed contexts and circumstances when it dawned on you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;For example:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I only somewhat understood pointers&#xA;  syntactically in C. I heard two of my&#xA;  friends explaining pointers to another&#xA;  friend, who asked why a &lt;code&gt;struct&lt;/code&gt; was&#xA;  passed with a pointer. The first&#xA;  friend talked about how it needed to&#xA;  be referenced and modified, but it was&#xA;  just a short comment from the other&#xA;  friend where it hit me: &quot;It's also&#xA;  more efficient.&quot; Passing 4 bytes&#xA;  instead of 16 bytes was the final&#xA;  conceptual shift I needed.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-11-11T15:22:07.390" LastActivityDate="2011-04-21T20:11:37.340" CommunityOwnedDate="2010-12-02T00:15:36.130" Title="What's a nice explanation for pointers?" Tags="&lt;computer-science&gt;&lt;teaching&gt;&lt;pointers&gt;&lt;intro-to-programming&gt;" AnswerCount="36" CommentCount="11" FavoriteCount="16" />
  <row Id="17899" PostTypeId="2" ParentId="17898" CreationDate="2010-11-09T15:16:31.607" Score="63" ViewCount="" Body="&lt;p&gt;Someone much wiser than I once said:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The nun Wu Jincang asked the Sixth&#xA;  Patriach Huineng, &quot;I have studied the&#xA;  Mahaparinirvana sutra for many years,&#xA;  yet there are many areas i do not&#xA;  quite understand. Please enlighten&#xA;  me.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The patriach responded, &quot;I am&#xA;  illiterate. Please read out the&#xA;  characters to me and perhaps I will be&#xA;  able to explain the meaning.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Said the nun, &quot;You cannot even&#xA;  recognize the characters. How are you&#xA;  able then to understand the meaning?&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;Truth has nothing to do with words.&#xA;  Truth can be likened to the bright&#xA;  moon in the sky. Words, in this case,&#xA;  can be likened to a finger. The finger&#xA;  can point to the moon’s location.&#xA;  However, the finger is not the moon.&#xA;  To look at the moon, it is necessary&#xA;  to gaze beyond the finger, right?&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-11-09T15:16:31.607" CommunityOwnedDate="2010-12-02T00:15:36.130" CommentCount="11" />
  <row Id="17900" PostTypeId="2" ParentId="17898" CreationDate="2010-11-09T15:17:09.833" Score="2" ViewCount="" Body="&lt;p&gt;The trick is to explain that the location of a thing and the thing itself are not the same, just like a picture of a pipe &lt;a href=&quot;http://plaidnet.greenwichacademy.org/arthistoryslides/slideidgal/MODERNISM/MODERNISM-Images/modern31.jpg&quot; rel=&quot;nofollow&quot;&gt;is not a pipe&lt;/a&gt;. When you move a thing, its location changes. The location remains and some other thing can be put there.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastEditorUserId="4603" LastEditorDisplayName="" LastEditDate="2010-11-09T15:24:36.903" LastActivityDate="2010-11-09T15:24:36.903" CommunityOwnedDate="2010-12-02T00:15:36.130" />
  <row Id="17901" PostTypeId="2" ParentId="17830" CreationDate="2010-11-09T15:19:06.983" Score="0" ViewCount="" Body="&lt;p&gt;While I'm not an expert, there are different ways that people learn things which should be acknowledged.  Some people can handle being given all the abstract details and then go and implement it with little difficulty while others would struggle to get through the first example.  If the expert goes too fast, bullies the other developer, or uses language that the other developer doesn't understand this can cause problems for the non-expert and thus not be the best way to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have seen coding camp examples done where I learned a lot though this is from watching and absorbing what is being shown.  While having a consultant can be useful, it can also be overwhelming in some cases to try to absorb so much if they are only there for a short time.  Some of what was shown is still with me, but other parts are long gone.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-09T15:19:06.983" />
  <row Id="17902" PostTypeId="2" ParentId="17898" CreationDate="2010-11-09T15:20:04.693" Score="9" ViewCount="" Body="&lt;p&gt;8-10 years ago, I taught an intro &quot;C&quot; course at a community college. This was always a fun topic to explore. What seemed to work best, and this was after discussing w/ a co-worker a few times was to use a coffee cup and your hand. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used the analogy of a coffee cup (or row of them for arrays) to as a variable (it can hold something). I then used my hand, which could also hold something or, by extending my index finger to &quot;point to&quot; a coffee cup.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A close hand was null, a finger pointing at my head (like a mock gun) was a dangling pointer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then with a few demonstrations and trips through the debugger, it clicked with most.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-11-09T15:20:04.693" CommunityOwnedDate="2010-12-02T00:15:36.130" CommentCount="5" />
  <row Id="17903" PostTypeId="2" ParentId="17824" CreationDate="2010-11-09T15:20:26.293" Score="9" ViewCount="" Body="&lt;p&gt;The advantage of writing your own recursive descent parser is that you can generate &lt;strong&gt;high-quality error messages&lt;/strong&gt; on syntax errors. Using parser generators, you can make error productions and add custom error messages at certain points, but parser generators just don't match the power of having complete control over the parsing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another advantage of writing your own is that it is easier to parse to a simpler representation that doesn't have a one to one correspondence to your grammar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your grammar is fixed, and error messages are important, consider rolling your own, or at least using a parser generator that gives you the error messages you need. If your grammar is constantly changing, you should consider using parser generators instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bjarne Stroustrup talks about how he used YACC for the first implementation of C++ (see &lt;em&gt;The Design and Evolution of C++&lt;/em&gt;). In that first case, he wished he wrote his own recursive descent parser instead!&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-09T15:20:26.293" CommentCount="4" />
  <row Id="17904" PostTypeId="2" ParentId="17875" CreationDate="2010-11-09T15:23:28.883" Score="0" ViewCount="" Body="&lt;p&gt;I think what you have in your diagrams is very complicated. I believe your problem is much simpler than that.  If you have two different classes that have the same interface, then they should inherit from the same parent class.  You should have one &lt;code&gt;BaseItem&lt;/code&gt; class, from which you derive &lt;code&gt;FirstItem&lt;/code&gt; and &lt;code&gt;SecondItem&lt;/code&gt; classes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, this question definitely belongs on StackOverflow.  This site, on the other hand, is for general subjective questions about programming: development process, code reviewing, what books to read, what tools to use, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Напишите комментарий если непонятно.  Попробую объяснить по-русски.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-11-09T15:23:28.883" />
  <row Id="17905" PostTypeId="2" ParentId="17898" CreationDate="2010-11-09T15:25:19.650" Score="35" ViewCount="" Body="&lt;p&gt;I found that diagrams were very helpful. Example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/QMkhc.jpg&quot; alt=&quot;pointer diagram&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br&gt;This sort of diagram helped me see that pointers were their own variable, but contained a value that was the location of another object, i.e. array or string. Also, when done in pencil, I could use it to trace my program on paper, or on a chalkboard/whiteboard.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2010-11-09T20:02:23.613" LastActivityDate="2010-11-09T20:02:23.613" CommunityOwnedDate="2010-12-02T00:15:36.130" CommentCount="5" />
  <row Id="17906" PostTypeId="2" ParentId="17876" CreationDate="2010-11-09T15:32:01.757" Score="1" ViewCount="" Body="&lt;p&gt;A good project manager has the following qualities to my mind:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Communication skills&lt;/strong&gt; - Whether talking to technical folks, executives, customers, or vendors, they understand to whom they talk and what should be the result in terms of something tangible to move things forward.  This can also be about giving recognition or appreciation to the team when a major milestone is met on time for another example here.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Planning&lt;/strong&gt; - Working with others, an initial time line may be drawn to show how long a project will take, what resources it requires, etc.  I say initial because it may get revised down the road as requirements change for whatever reasons.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Change management&lt;/strong&gt; - Handling those that want to move things in a circular fashion is another part of what a PM has to handle.  For those wanting an example, imagine someone hanging a picture that is told, &quot;A little to the left,&quot; or &quot;A little to the right,&quot; repeatedly because it always look a little off.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Conflict resolution&lt;/strong&gt; - Going hand in hand with the communication is the ability to handle disputes that may arise between people involved in a project.  Developers and testers may disagree on an interpretation of a requirement and someone has to play referee.  There can also be cases where a stakeholder wants something that is far from realistic but doesn't &quot;get it&quot; like the idea that someone could duplicate all of Google's search engine code within a day with no problems at all.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In a sense the stakeholders require the project manager to &quot;get it done&quot; but there are various implications within that phrase that may or may not seem obvious at first glance.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-09T15:38:00.393" LastActivityDate="2010-11-09T15:38:00.393" CommentCount="1" />
  <row Id="17907" PostTypeId="2" ParentId="17868" CreationDate="2010-11-09T15:37:24.753" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1566091594&quot; rel=&quot;nofollow&quot;&gt;The Non Designer's Design Book&lt;/a&gt; is a good introduction to the general principles. I found that, combined with &lt;em&gt;Don't Make Me Think&lt;/em&gt; were a real help in giving me an overview of practical design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I want a good design I talk to a graphic designer, but if I have a good design I can implement it across a website and if I want a kind of &lt;em&gt;good-enough&lt;/em&gt; design for a prototype or a project where the design isn't so important, I can manage that myself.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-09T15:37:24.753" CommentCount="1" />
  <row Id="17908" PostTypeId="2" ParentId="17792" CreationDate="2010-11-09T15:39:29.967" Score="0" ViewCount="" Body="&lt;p&gt;A good overview of some of the practicalities of producing software as an ISV including marketing can be found over at the excellent &lt;a href=&quot;http://successfulsoftware.net/&quot; rel=&quot;nofollow&quot;&gt;Successful Software&lt;/a&gt; blog.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-09T15:39:29.967" />
  <row Id="17909" PostTypeId="1" AcceptedAnswerId="17939" CreationDate="2010-11-09T15:40:26.127" Score="8" ViewCount="100" Body="&lt;p&gt;It's happened to us all, we've signed up for training, we go to the class, and we're bored for 4 days before things finally get interesting on the last day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any sites where people have posted reviews of training classes offered by training companies?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tried the following search on google:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-site:*.TRAINING_SITE.* TRAINING_SITE CLASS_OFFERING training &quot;review&quot; -amazon&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That does indeed filter out the site owner, and pull back some results, but nothing really targeted about the class I'm looking for, be it a review site or blog.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone seen anything&lt;/p&gt;&#xA;" OwnerUserId="7353" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-09T15:46:47.417" LastActivityDate="2010-11-09T18:04:20.183" Title="Are there any sites where people have posted reviews of training classes?" Tags="&lt;learning&gt;&lt;training&gt;" AnswerCount="1" FavoriteCount="3" />
  <row Id="17910" PostTypeId="2" ParentId="17766" CreationDate="2010-11-09T15:45:14.423" Score="0" ViewCount="" Body="&lt;p&gt;I will &lt;strong&gt;always properly capitalize and punctuate&lt;/strong&gt; when creating &lt;strong&gt;XML comments&lt;/strong&gt; that I expect to be seen in &lt;strong&gt;IntelliSense&lt;/strong&gt; and in our &lt;strong&gt;generated documentation&lt;/strong&gt;.  These are much more formal constructs and should be treated as such.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Comments just seen in the body of a code block, however, should simply be as clear as possible.  It's up to the programmer how they achieve that.&lt;/p&gt;&#xA;" OwnerUserId="1071" LastActivityDate="2010-11-09T15:45:14.423" />
  <row Id="17911" PostTypeId="2" ParentId="17788" CreationDate="2010-11-09T15:47:57.697" Score="1" ViewCount="" Body="&lt;p&gt;It depends on the need of your program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of what I do is constrained heavily by processing capability and memory, but does not go through very many, if any, significant changes in the average year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have in the past worked on projects where the code is changed frequently so the maintainability becomes more important in those cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have also worked on systems in the past where the amount of the data is the most significant issue, even on disk for storage, but more commonly the size becomes an issue when you have to move the data a whole lot, or over a slow link.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-09T15:47:57.697" />
  <row Id="17912" PostTypeId="1" CreationDate="2010-11-09T15:57:26.007" Score="3" ViewCount="225" Body="&lt;p&gt;Although I like VS2010's multi monitor support, I seem to have too many accidental window drags, where I unsnap a window without intending to.  This behavior has made me still live in the mental model of vs200X's non-snappable windows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Do you have a particular layout that works for general purpose work?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) How have you optimised for specific scenarios (SQL, Debugging, Workflow, WPF)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Are you aware of any hotkey or utility that will jump to a particular window layout?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) Are you aware of any way I can reduce the times I accidentialy undock a window?&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-11-09T17:04:59.753" Title="How do you regularly take advantage of VS2010's multi monitor support?" Tags="&lt;visual-studio-2010&gt;&lt;multiple-monitors&gt;&lt;utilities&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="17913" PostTypeId="2" ParentId="16571" CreationDate="2010-11-09T16:03:07.443" Score="12" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;It seems like every .NET book talks about value types vs reference types and makes it a point to (often incorrectly) state where each type is stored - the heap or the stack. Usually it's in the first few chapters and presented as some all-important fact.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I agree completely; I see this all the time.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Why do .NET books talk about stack vs heap memory allocation?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;One part of the reason is because many people came to C# (or other .NET languages) from a C or C++ background. Since those languages do not enforce for you the rules about storage lifetime, you are required to know those rules and implement your program carefully to follow them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, knowing those rules and following them in C does not &lt;em&gt;require&lt;/em&gt; that you understand &quot;the heap&quot; and &quot;the stack&quot;. But if you do understand how the data structures work then it is often easier to understand and follow the rules.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When writing a beginner book it is natural for an author to explain the concepts in the same order that &lt;em&gt;they&lt;/em&gt; learned them. That's not necessarily the order that makes sense for the user. I was recently technical editor for Scott Dorman's C# 4 beginner book, and one of the things I liked about it was that Scott chose a pretty sensible ordering for the topics, rather than starting in on what really are quite advanced topics in memory management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another part of the reason is that some pages in the MSDN documentation strongly emphasize storage considerations. Particularly older MSDN documentation that is still hanging around from the early days. Much of that documentation has subtle errors that have never been excised, and you have to remember that it was written at particular time in history and for a particular audience. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Why does stack vs heap even matter to (beginner) .NET developers? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In my opinion, it doesn't. What is much more important to understand is stuff like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What is the difference in copy semantics between a reference type and a value type?&lt;/li&gt;&#xA;&lt;li&gt;How does a &quot;ref int x&quot; parameter behave?&lt;/li&gt;&#xA;&lt;li&gt;Why should value types be immutable?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And so on.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;You allocate stuff and it just works, right?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's the ideal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, there are situations in which it does matter. Garbage collection is awesome and relatively inexpensive, but it is not free. Copying small structures around is relatively inexpensive, but is not free. There are realistic performance scenarios in which you have to balance the cost of collection pressure against the cost of excessive copying. In those cases it is very helpful to have a strong understanding of the size, location, and actual lifetime of all relevant memory. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, there are realistic interop scenarios in which it is necessary to know what is on the stack and what is on the heap, and what the garbage collector could be moving around. That's why C# has features like &quot;fixed&quot;, &quot;stackalloc&quot; and so on. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But those are all advanced scenarios. Ideally a beginner programmer need worry about none of this stuff.&lt;/p&gt;&#xA;" OwnerUserId="6505" LastActivityDate="2010-11-09T16:03:07.443" CommentCount="1" />
  <row Id="17914" PostTypeId="2" ParentId="17912" CreationDate="2010-11-09T16:06:16.643" Score="4" ViewCount="" Body="&lt;p&gt;I have 2 screens but I don't use VS on both of them. I prefer to keep the other screen for the application being debugged because I want to see the effects of each instruction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I undock 2 windows code editor and put them side by side, on the same screen, for code comparison and similar operations.&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-11-09T16:06:16.643" />
  <row Id="17915" PostTypeId="2" ParentId="17898" CreationDate="2010-11-09T16:18:13.650" Score="4" ViewCount="" Body="&lt;p&gt;I shall assume someone going to learn pointers knows what the normal variables are and how they work in C. Now, let's try to define pointers with some of it's attributes-&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;They are also variables, but of different nature. Assume there are two layers in the variable space. The normal variables of different types resides in the upper layer and pointers in the lower layer. Like this figure-&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/dJPhs.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;As the name 'Pointer' suggests, pointers can POINT to something. Like our finger can point to some object. What are the things they point to? These are the normal variables. In short, &quot;Pointers point to normal variables&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;Like normal variables, pointers also are of same number of types like int,char or float. And a pointer of a specific type can point to only same type of variables.&lt;/li&gt;&#xA;&lt;li&gt;A pointer can point to one variable and later the same pointer can point to another variable. Just the type should be same. So, the a pointer's association with some variable is not permanent and can be changed.&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;So, how a pointer is declared? Almost like normal variables. You have to precede the name with an asterisk(&lt;code&gt;*&lt;/code&gt;). Like-   &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int *pointer;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Then, how a pointer is associated with a variable? Using the &lt;code&gt;&amp;amp;&lt;/code&gt; operator before the variable like this statement-   &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;pointer = &amp;amp;variable;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;How a pointer is used by pointing to a variable? This is also done by preceding the name with an asterisk(&lt;code&gt;*&lt;/code&gt;). Then it can be used in the place of the variable it's pointing now-&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;*pointer = var1 + var2;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;instead of&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;variable = var1 + var2;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Now, play with pointers with some code. Just get used to this characteristics of pointers now. Upto this point, we are talking about what pointers do. Once you are ok with it, then start studying how pointers are pointing to some variable and how they react if normal arithmetic operations are applied on them. Then go for the relation between pointers and arrays and pointers to pointers.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That is all I shall suggest about learning pointers.&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="963" LastEditorDisplayName="" LastEditDate="2010-11-10T05:30:37.373" LastActivityDate="2010-11-10T05:30:37.373" CommunityOwnedDate="2010-12-02T00:15:36.130" CommentCount="1" />
  <row Id="17916" PostTypeId="2" ParentId="17442" CreationDate="2010-11-09T16:25:57.973" Score="7" ViewCount="" Body="&lt;p&gt;Well following the &lt;a href=&quot;http://lists.cs.uiuc.edu/pipermail/cfe-dev/&quot; rel=&quot;nofollow&quot;&gt;clang dev mailing list&lt;/a&gt;, recently &lt;strong&gt;the trunk version&lt;/strong&gt; have been successfully building :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the linux kernel (a recent revision)&lt;/li&gt;&#xA;&lt;li&gt;Qt (with it's special build process too, apparently)&lt;/li&gt;&#xA;&lt;li&gt;Chromium (a recent revision)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So, I would say that the coming version (2.9) might be a good &quot;ready for prime time&quot; compiler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if your project have a a planning and budget, maybe it's not a good idea to try a compiler that isn't heavily tested yet. If you're allowed to experiment and provide feedbacks to the Clang developers community, then go for it, it's win-win for everybody.&#xA;If not, maybe you should use a mature-and-heavily-used compiler like gcc (in its recent versions) to have a &quot;stable ground&quot; to rely on while working on your project.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastEditorUserId="1921" LastEditorDisplayName="" LastEditDate="2010-11-22T10:10:51.997" LastActivityDate="2010-11-22T10:10:51.997" CommentCount="4" />
  <row Id="17917" PostTypeId="2" ParentId="17442" CreationDate="2010-11-09T16:26:21.437" Score="5" ViewCount="" Body="&lt;p&gt;Well, it's certainly ready for primetime on Mac OS X, as many Mac OS X apps are compiled using clang. But even on other platforms, C support is pretty solid, and the team has made great strides with C++ support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally speaking, clang &lt;em&gt;compiles&lt;/em&gt; code faster than gcc, but gcc generates better-optimized code. (There are edge cases where this isn't true, but in general, that's the current status.)&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-11-09T16:26:21.437" CommentCount="4" />
  <row Id="17918" PostTypeId="2" ParentId="17788" CreationDate="2010-11-09T16:35:30.417" Score="6" ViewCount="" Body="&lt;p&gt;There is only one thing to optimize for and it is:&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;What your customers want&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Do your customers need the fastest program possible? Optimize for speed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do your customers need absolute reliability? Optimize for that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do they need it delivered tomorrow or it will be useless? Optimize for speed of development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Running on an incredibly tiny resource-constrained device? Optimize for those resources.&lt;/p&gt;&#xA;" OwnerUserId="675" LastActivityDate="2010-11-09T16:35:30.417" CommentCount="3" />
  <row Id="17919" PostTypeId="2" ParentId="17898" CreationDate="2010-11-09T16:36:07.330" Score="19" ViewCount="" Body="&lt;p&gt;When I first &quot;learned&quot; about pointers, I was sort of thrust in to it. My university had made the decision a long time before I enrolled to center the curriculum around Java, so when my Data Structures professor gave one lecture on C and asked us to implement an XOR-List with pointers I felt like I was getting in to something &lt;strong&gt;way&lt;/strong&gt; over my head.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I understood the definition:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A pointer is a variable that contains&#xA;  an address of a variable&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;But I still didn't understand a large part of the concept. Looking back, I think it centered on three things:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;What exactly &lt;em&gt;is&lt;/em&gt; a memory location? (At the time I didn't take a Computer Organization class)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The awkward syntax (So um... why&#xA;exactly is it defined like &quot;int *ip&quot;&#xA;but then subsequently I refer to the&#xA;variable as &quot;ip&quot;?)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;How exactly is it beneficial to store the address of a variable rather than just use the variable?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It wasn't until I purchased the K&amp;amp;R book and completed every problem that I really got a grasp for pointers. Besides the fact that I had long completed the Computer Organization class (that I think should be required before learning C), part of it had to do with the fact that I realized that pointers can be used for functions, arrays, structs... to do useful things and not merely as storage for addresses of ordinary variables.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But my &quot;aha&quot; moment by far was the way that K&amp;amp;R explained the awkward syntax of defining a simple pointer. I took notes throughout the book (in which I rephrase points made by the book in to my own words in order to further my understanding), and this is the one relating to that:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A pointer is a variable that contains&#xA;  an address to a variable. A pointer is&#xA;  both defined and dereferenced&#xA;  (yielding the value stored at the&#xA;  memory location that it points to)&#xA;  with the '*' operator; the expression&#xA;  is mnemonic.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Ex.: &#xA;   int a;      /* Variable 'a' is an integer */&#xA;&#xA;   int *ip;   /* Variable ip is a pointer and dereferencing it gives an integer.&#xA;                 In other words, the expression *ip is an int, so ip is a pointer&#xA;                 to an int */&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I had always felt that I couldn't fully grasp the more advanced concepts of pointers until I had something so elementary ingrained in my head. It had bothered me endlessly after that assignment (which I didn't do too well on, by the way ;) ) why &quot;*ip&quot; did not exist right after I (thought I) defined &quot;*ip&quot;. Mastering this is essential for more advanced concepts involving pointers, like function pointers and more complicated definitions like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;char (*(x())[])()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;All in all, I think the concept of pointers requires:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;A basic understanding of how memory&#xA;is laid out in a computer (and what&#xA;memory is).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Knowledge of how powerful&#xA;    pointers can be (real world usage,&#xA;    not just another abstract concept&#xA;    that they learn for the sake of&#xA;    learning).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Deciphering the&#xA;    hieroglyphics colloquially known as&#xA;    &quot;a definition of a pointer&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So all in all, I think there should be at least 3 &quot;aha&quot; moments when learning about pointers. I'm still a student so I thought you'd appreciate the viewpoint of someone who's still (relatively) fresh off learning the concept.&lt;/p&gt;&#xA;" OwnerUserId="7356" LastEditorUserId="7356" LastEditorDisplayName="" LastEditDate="2010-11-10T00:01:32.870" LastActivityDate="2010-11-10T00:01:32.870" CommunityOwnedDate="2010-12-02T00:15:36.130" CommentCount="5" />
  <row Id="17920" PostTypeId="2" ParentId="17761" CreationDate="2010-11-09T16:37:46.013" Score="1" ViewCount="" Body="&lt;p&gt;I would suggest to keep on learning, and keep a closer eye on the snobbery. It's definitely a workplace smell. I would also suggest updating the resume and looking at the job market... just in case.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-09T16:37:46.013" />
  <row Id="17921" PostTypeId="2" ParentId="15839" CreationDate="2010-11-09T16:39:37.153" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;mIRC&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back in the day, &lt;a href=&quot;http://www.mirc.com/&quot; rel=&quot;nofollow&quot;&gt;mIRC&lt;/a&gt; scripting was a relatively harmless way of exposing end-users to simple variables and event handling.  It probably still is, really.&lt;/p&gt;&#xA;" OwnerUserId="6847" LastActivityDate="2010-11-09T16:39:37.153" />
  <row Id="17922" PostTypeId="2" ParentId="17898" CreationDate="2010-11-09T16:47:42.213" Score="1" ViewCount="" Body="&lt;p&gt;A pointer is a sticky note that tells you where something useful is. It contains the location of the thing and tells you how big the thing is (in C, anyway). So a double pointer is like a sticky note that says &quot;There's a six pack in the fridge&quot;. You have to actually go get the six pack to figure out if it's Coke or Budweiser.&lt;/p&gt;&#xA;" OwnerUserId="6883" LastActivityDate="2010-11-09T16:47:42.213" CommunityOwnedDate="2010-12-02T00:15:36.130" />
  <row Id="17924" PostTypeId="2" ParentId="17868" CreationDate="2010-11-09T16:56:35.967" Score="0" ViewCount="" Body="&lt;p&gt;David Lauer: Design Basics&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Paul Zelanski/Pat Fisher: Color&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those will give you a foundation in the IDEAS behind design and use of color. After that, nothing will help you like decomposing designs that you like, figuring out how the ideas that you've learned are being applied. Then try to accomplish similar things but using the design elements differently. &lt;/p&gt;&#xA;" OwnerUserId="6883" LastActivityDate="2010-11-09T16:56:35.967" />
  <row Id="17925" PostTypeId="2" ParentId="17761" CreationDate="2010-11-09T17:04:26.620" Score="2" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;This is where getting other opinions can be useful.  I know I'd feel bad if I was disrespected that much and hid in fear of retaliation.  This would likely lead to me getting my resume dusted off and getting in touch with recruiters though.  While there should be a way of going to your manager and explaining how upset this made you, consider if they asked you what you wanted how would you answer that?  Another way to see this, while they may say they are sorry, what actions would you want to see to show this?  Depending on the size of the company there may be an HR department that could be useful here in some way.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I'd likely be somewhat agitated and resentful.  This would also make me wonder how close am I to having a Bachelor's degree.  I'm not an engineer, but I do have a B. Math degree that shouldn't have a huge difference to my mind.  The other question I'd ask myself is what kind of career progression am I wanting.  If I wanted to get into management, then pursuing an MBA and getting into a company with less of an engineer feel may make a lot of sense.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Figure out what kind of dream job you have that is somewhat realistic: Do you want to run an empire and be a CIO or CTO?  Do you want to be the master Architect that draws up the plans for how a company will use various systems in their usual business processes?  Do you want to be the developer that gets to be a bit of a &quot;Mad Scientist&quot; and work in R &amp;amp; D?  Do you want to be a systems administrator that has all the power when it comes to controlling who can access what on the network?  Depending on what kind of role you want to have, this should determine which goals make sense for you.  I know I have no desire to get into management, but I may yet find a strategic role in IT that aligns with where my strengths are and I find fulfilling.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;There is a chance that support may lead to development opportunities as you may know the product pretty well if you handling support calls all day.  There is also the chance that at some point the jerks move on to other companies and things do change where you are now.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-09T17:04:26.620" CommentCount="1" />
  <row Id="17926" PostTypeId="2" ParentId="17912" CreationDate="2010-11-09T17:04:59.753" Score="1" ViewCount="" Body="&lt;p&gt;I undock nearly everything and have one monitor that is a full screen code window and all the other little windows in the other monitor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In earlier versions of studio I would push all the little windows to one side then stretch the container window across two monitors, but that required you to re-stretch every time the window was minimized.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-09T17:04:59.753" />
  <row Id="17927" PostTypeId="2" ParentId="15839" CreationDate="2010-11-09T17:05:55.700" Score="1" ViewCount="" Body="&lt;p&gt;There's a spectrum of end user customization; the trivial ones (like dragging/dropping the menu items in Office) require little effort, and provide little customization. Progressively more complex customizations require progressively more knowledge and programming skill. At that extreme is my personal favorite&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;&lt;a href=&quot;http://www.emacswiki.org/&quot; rel=&quot;nofollow&quot;&gt;Emacs&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Chunks are written in C, but much of it is written in Emacs Lisp, which is fully available to you as the end user. If you take the trouble to learn it, you can customize your editing experience to your hearts' content.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-09T17:05:55.700" />
  <row Id="17928" PostTypeId="2" ParentId="17824" CreationDate="2010-11-09T17:07:16.020" Score="2" ViewCount="" Body="&lt;p&gt;The big advantage to writing your own is that you'll know how to write your own. The big advantage to using a tool like yacc is that you'll know how to use the tool. I'm a fan of &lt;a href=&quot;http://treetop.rubyforge.org/&quot; rel=&quot;nofollow&quot;&gt;treetop&lt;/a&gt; for initial exploration.&lt;/p&gt;&#xA;" OwnerUserId="6883" LastActivityDate="2010-11-09T17:07:16.020" />
  <row Id="17929" PostTypeId="1" CreationDate="2010-11-09T17:22:00.980" Score="24" ViewCount="1246" Body="&lt;p&gt;As a longtime desktop developer looking at doing our first large-scale web application, what are the pros and cons of doing web development?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is developing a web application much worse than developing a desktop app?  E.g., is it more tedious or annoying?  Is the time to market much worse?  Is the web platform excessively limiting?  If the answer to any of these is yes, then why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(And how does developing a Flash or Silverlight app compare?)&lt;/p&gt;&#xA;" OwnerUserId="3223" LastEditorUserId="3223" LastEditorDisplayName="" LastEditDate="2010-11-10T13:13:46.400" LastActivityDate="2011-05-28T11:57:11.333" Title="Web versus desktop development - is web development worse?" Tags="&lt;web-development&gt;" AnswerCount="10" CommentCount="2" FavoriteCount="12" />
  <row Id="17930" PostTypeId="2" ParentId="17898" CreationDate="2010-11-09T17:28:33.367" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://video.google.com/videoplay?docid=3796146278554348828#&quot; rel=&quot;nofollow&quot;&gt;Binky Fun With Pointers&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7330" LastActivityDate="2010-11-09T17:28:33.367" CommunityOwnedDate="2010-12-02T00:15:36.130" CommentCount="1" />
  <row Id="17931" PostTypeId="2" ParentId="17898" CreationDate="2010-11-09T17:30:03.747" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Edited in support of the revised requirement of the question&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My path to &quot;post-pointer&quot; understanding (if I recall correctly) went like this. I had some simple experience of assembly programming from when I was still &lt;a href=&quot;http://en.wikipedia.org/wiki/BBC_Micro&quot; rel=&quot;nofollow&quot;&gt;mucking around with a BBC Micro&lt;/a&gt; so I had the concept of memory as a bunch of boxes (see below for this). This was reinforced by the use of arrays. However, I was going into the world of C and had to deal with strings and that meant pointers. In BASIC this was trivial, in assembler I never had to work with them, and now in classic C it's all pointers and stuff. Ah, but I can scuttle back to arrays with (null terminated) strings like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;char s[] = &quot;Hello, world!&quot;;&#xA;printf(&quot;%s&quot;,s);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;All well and good, that's just an array of chars (8 bits per character in my little world) with a zero character at the end to show where it ends. The printf just takes that array and runs over it printing it. But what if I want to pass this string into a function?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void print_str(char* p) {&#xA;  printf(&quot;%s&quot;,p);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Is what the manual says, but what's that * all about? Hmm, char* means &quot;pointer to a char&quot;. OK... lost me. Then it dawned on me that the char* makes p equivalent to s[0]. OK, I can use that, but I still haven't twigged what pointers are. I mean, how do I set some data with one of these things? Off to the manual again...&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;char* p = &quot;Hello World!&quot;;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;As I write the above I'm saying to myself &quot;declare a pointer to a char and set it equal to this array of characters&quot;. Somehow that pointer does away with the need for an array. Guess it's the compiler doing some stuff for me for a change. So how can I change the array with this pointer? I know that I could use the array version&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; s[2] = 'L'; &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;but what's the equivalent in &quot;pointer speak&quot;? Off to that manual again...  &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;*(p+2) = 'L';&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I suppose that * simply means &quot;the contents of the memory address&quot; and &lt;code&gt;(p+2)&lt;/code&gt; is &lt;code&gt;s[2]&lt;/code&gt;. Which meant that the pointer p was... just... an... address... bong!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That there is the sound of enlightenment. I suddenly twigged pointers (it was a long time ago, we old timers didn't &quot;grok&quot; until later). It was just indirection.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Original:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OK, my 2c worth:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imagine memory is a bunch of boxes. Each box has a number on the side (the address). Each box contains a number (the contents). You can work with these boxes in 2 ways: variables (I want the contents of box N), pointers (I want the contents of box &lt;strong&gt;whatever is in box N&lt;/strong&gt; ). Pointers are simply indirection. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And for the big answer that covers everything you will ever need to know - &lt;a href=&quot;http://boredzo.org/pointers/#definition&quot; rel=&quot;nofollow&quot;&gt;read this&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-02T00:04:46.983" LastActivityDate="2010-12-02T00:04:46.983" CommunityOwnedDate="2010-12-02T00:15:36.130" CommentCount="7" />
  <row Id="17932" PostTypeId="2" ParentId="17898" CreationDate="2010-11-09T17:31:09.317" Score="7" ViewCount="" Body="&lt;p&gt;I never had much of a problem with pointers in C, but that may be because I had to learn assembler first. It was actually a relief not to have to manage addresses myself any more. So maybe the answer (assuming this is something you're teaching) is to give students an emulated assembly language to work with. They &lt;em&gt;will&lt;/em&gt; figure it out in the process of writing anything more sophisticated than &quot;Hello, world.&quot;&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-09T17:31:09.317" CommunityOwnedDate="2010-12-02T00:15:36.130" CommentCount="3" />
  <row Id="17933" PostTypeId="2" ParentId="17824" CreationDate="2010-11-09T17:33:45.537" Score="8" ViewCount="" Body="&lt;p&gt;If you have never, ever written a parser I would recommend you do it.  It is fun, and you learn how things work, and you learn to appreciate the effort that parser and lexer generators save you from doing the &lt;em&gt;next&lt;/em&gt; time you need a parser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also suggest you try reading &lt;a href=&quot;http://compilers.iecc.com/crenshaw/&quot; rel=&quot;nofollow&quot;&gt;http://compilers.iecc.com/crenshaw/&lt;/a&gt; as it has a very down-to-earth attitude towards how to do it.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-09T17:33:45.537" CommentCount="2" />
  <row Id="17934" PostTypeId="2" ParentId="17929" CreationDate="2010-11-09T17:33:59.250" Score="24" ViewCount="" Body="&lt;h1&gt;No&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;It's painful if you don't know what you're doing or don't plan correctly, but that's true with any development. It is easier to bottle the application in a desktop application, but then you lose the accessibility that is provided by coding for a web application. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would make the choice between desktop and web based on the desired use. I see many applications written web based that shouldn't be because they don't know how to code desktop applications. I don't see many desktop applications that should be web based though, and I think that's something to consider. If you need the centralized storage, remote accessibility, and UI traits then &lt;em&gt;sure&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't comment of Flash or Silverlight because I use neither. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-11-09T19:59:44.843" LastActivityDate="2010-11-09T19:59:44.843" CommentCount="4" />
  <row Id="17935" PostTypeId="2" ParentId="17929" CreationDate="2010-11-09T17:36:05.690" Score="6" ViewCount="" Body="&lt;p&gt;Much of the tediousness comes from the work necessary to make everything work in all browsers.  Since you do most likely not need be on the bleeding edge you can leverage the work done by others, by choosing a suitable web framework instead of handrolling your own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which one to use, strongly depends on what language environment you are currently used to.  You may want to edit the question to provide that information.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2011-03-02T09:43:39.317" LastActivityDate="2011-03-02T09:43:39.317" CommentCount="2" />
  <row Id="17936" PostTypeId="2" ParentId="17788" CreationDate="2010-11-09T17:49:32.797" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Elegance&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your code is well designed, it will have several effects:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It will be easier to maintain (cutting costs for the customer)&lt;/li&gt;&#xA;&lt;li&gt;It will be easier to optimize (for JIT or full compilers)&lt;/li&gt;&#xA;&lt;li&gt;It will be easier to replace (when you think of a better solution)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4816" LastActivityDate="2010-11-09T17:49:32.797" />
  <row Id="17937" PostTypeId="2" ParentId="17929" CreationDate="2010-11-09T18:00:31.333" Score="2" ViewCount="" Body="&lt;p&gt;No, web applications have different trade-offs than desktop applications.  Each has their strengths to my mind.  While there are strengths like a single deployment, there is the trade-off of knowing which browsers do you support and what screen resolution are you expecting the customer to have?  While you do have control over the server hardware there is the question of how much traffic do you expect and how well will it scale?  For those that have done web development for years these can be sore spots much like I'd imagine you have some development tasks that you find to be a major pain, no?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A Flash app may or may not be a web application to my mind.  Something like AIR can make some Flash stuff run on the desktop now and some applications are built on that,e.g. Twhirl, so it isn't immediately that cut and dry.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-09T18:00:31.333" />
  <row Id="17938" PostTypeId="1" CreationDate="2010-11-09T18:03:16.997" Score="5" ViewCount="304" Body="&lt;p&gt;Is there a best type of lens for glasses used by programmers, or people who spend a lot of their time in front of the monitor?&lt;/p&gt;&#xA;" OwnerUserId="7358" LastActivityDate="2010-11-09T19:16:09.777" ClosedDate="2010-11-09T19:19:17.147" Title="Best lenses for multi-hour programming?" Tags="&lt;programming&gt;" AnswerCount="3" CommentCount="7" FavoriteCount="1" />
  <row Id="17939" PostTypeId="2" ParentId="17909" CreationDate="2010-11-09T18:04:20.183" Score="2" ViewCount="" Body="&lt;p&gt;Try:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://trainingreviews.com/&quot; rel=&quot;nofollow&quot;&gt;Training Reviews&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.reviewcentre.com/products1040.html&quot; rel=&quot;nofollow&quot;&gt;Review Centre&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-11-09T18:04:20.183" />
  <row Id="17940" PostTypeId="2" ParentId="17898" CreationDate="2010-11-09T18:05:43.660" Score="4" ViewCount="" Body="&lt;p&gt;To understand pointers, write programs that use pointers&lt;/p&gt;&#xA;" OwnerUserId="4526" LastActivityDate="2010-11-09T18:05:43.660" CommunityOwnedDate="2010-12-02T00:15:36.130" CommentCount="3" />
  <row Id="17941" PostTypeId="2" ParentId="17938" CreationDate="2010-11-09T18:11:46.697" Score="2" ViewCount="" Body="&lt;p&gt;I've worn glasses since the fourth grade, and all of my computing life has been through glasses (mostly) or contacts (not much).  So, I've gone through many lenses.  Some were cheap others had the cool coatings and stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can see through the lenses well, you will get used to them.  You wan to make sure the lenses don't cause you to turn your head all the time, but that isn't necessarily a direct relationship to lens size -- if the lenses are too big, the edges are fuzzy and you turn your head more to get better focus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get the coating(s) that prevent glare -- you will definitely be happy about that choice.  It reduces eye strain while staring at bright monitors.&lt;/p&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-11-09T18:11:46.697" />
  <row Id="17942" PostTypeId="2" ParentId="10084" CreationDate="2010-11-09T18:12:27.377" Score="2" ViewCount="" Body="&lt;p&gt;There is a erlang version of learn you a haskell&#xA;&lt;a href=&quot;http://learnyousomeerlang.com/&quot; rel=&quot;nofollow&quot;&gt;http://learnyousomeerlang.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4572" LastActivityDate="2010-11-09T18:12:27.377" CommunityOwnedDate="2010-11-09T18:12:27.377" />
  <row Id="17943" PostTypeId="2" ParentId="17826" CreationDate="2010-11-09T18:13:45.690" Score="2" ViewCount="" Body="&lt;p&gt;Start keeping the Sabbath... then for 24 hours each week you will not be allowed to use a computer and will have a lot more time for books&lt;/p&gt;&#xA;" OwnerUserId="4526" LastActivityDate="2010-11-09T18:13:45.690" CommunityOwnedDate="2011-05-04T00:07:17.570" />
  <row Id="17944" PostTypeId="2" ParentId="17929" CreationDate="2010-11-09T18:28:26.370" Score="18" ViewCount="" Body="&lt;p&gt;As mentioned by others, it's a matter of trade-offs and of having the right knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only pitfall you might want to consider is this: you mention in your question that you see the web as having &quot;cross-platform&quot; as an advantage. But does it really? Think of it this way: if you develop something for the desktop, you need to define the list of platforms and their requirements to support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make no mistake, it's the same for the web. And even though it's already tremendously simpler than it used to be, if you design a wide public app, you're going to have to deal with every possible version of every web browser out there. And if it's more of an enterprise app, then brace yourself and prepare to draft your supported browser platforms requirements very precisely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't think you'll avoid to have platform-specific hacks here and there if you build something significant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then the fun parts. What is best? Browsers that update themselves almost transparently very regularly like Chrome? Or the ones that roll-out security updates only monthly and major features every stone age (like IE)? The answer is not as obvious as you might think, because some of these frequent &quot;transparent&quot; updates might break your code, and you will need to follow this and react promptly. Or keep an eye on beta and dev pre-releases while developing and testing. For all of the browsers you foolishly said you wanted to support (good luck).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh and let's not forget UI considerations. You also face the joy of deciding whether you want a consistent UI &lt;strong&gt;ACROSS&lt;/strong&gt; all your target platforms, or a consistent UI &lt;strong&gt;WITH&lt;/strong&gt; each host's target platform. See all those little buttons you can view on web-pages? Do you want them to be exactly the same everywhere, or to integrate with the environment used by your user? Of course this problem isn't new and existed for other development models, but it seems to be more important here, and depends on the type of users you target and what they expect. Public end-user would tend to want you to integrate with their platform - but will still want you to &quot;wow!&quot; them with fancy stuff - while the enterprise user will want something that looks like a desktop app. And mobile platforms had a new dimension to all this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the last 2 paragraphs, a common idea is sometimes to package a pre-configured web-browser with your installer, which then connects to your web-app (locally hosted or on the web). It's great because you control the update frequency and you can &quot;freeze&quot; the state and you know exactly what to support and test on. Plus you can add cool stuff like dedicated user extensions. For instance, packaging a &quot;frozen&quot; Chromium with small Chrome Extensions you've developed to make the use of your web-app easier for different types of users can be extremely nice. On the other hand... you're now responsible if a security breach occurs because you froze the release cycle, and your app won't benefit of speed improvements (if any).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like many things, it's a double edged ax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; I have a strong bias &lt;strong&gt;against&lt;/strong&gt; the web for being basically a big pile of half-baked technologies (and I am polite here), down to the OSI layers, on which we keep adding layers of crap hiding the problems underneath without really solving or fixing them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, I am &lt;strong&gt;in favor&lt;/strong&gt; of the web for its ubiquitous nature as a platform. I think your company's move is (probably) the right one. It depends on your target market and the platforms you aim for, obviously. If you want to expose something as a service, then you're probably good to go (though it's not necessary either). If you don't, then maybe there's not so many reasons for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hmm, and expect some fun developments in the future now that more light-weight variants of existing operating systems keep spawning for mobile environments (netbooks, smartphones, PDAs, tablets, eBooks...), with more emphasis on using lightweight embedded browsers... but with all their new share of UI rendering glitches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding plugin-based technologies... I'd say steer away from them. They will enhance your app's power, but will limit its market penetration. In some cases you will see it as a plus in terms of cross-platform support, until a new platform suddenly refuses to support them. Web Standards are here for a reason (be careful not to get too excited about everything in HTMl5 either, or it might blow up in your face).&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;EDIT: other things to consider...&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Recruitment&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;It's &lt;strong&gt;extremely hard&lt;/strong&gt; to find knowledgeable web developers. You'd think there's a herd of them, but they're lost in a huge pool of, well, fairly incompetent people who think having managed to write 700 lines of JavaScript/ECMAScript to implement some validation in their forms is the end-all and be-all of what can be achieved in terms of high-level skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not kidding, lately my first question for all web-development interviews is how to declare a variable, and then whether there's a different between using &lt;code&gt;var&lt;/code&gt; or not (depending on how they answer). It's depressing. I find it a lot more difficult to find an average or advanced web developer than to find an average or advanced desktop developer.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Perception&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;No one will ever consider you seriously when you say &quot;I'm a web developer&quot;. It's for a sub-class of programmers, developers, isn't it? The ones you ignore and mock from afar, and don't join when they go get coffee. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is obviously untrue, but it comes down to the fact that you develop for an environment that is mostly managed for you. Browsers correct your screwed up markup, your screwed up styles, and will even correct your screwed scripting for some of them, and optimize it for you if you please. And if you're a web developer, people won't assume you have a clue about lower-level programming, so you must be a complete idiot, right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then they realize how crazily complex ECMAScript can be, but will refuse to review their opinion. Because it's web. We don't like it intrinsically, we just like what it enables us to do.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2011-05-28T11:57:11.333" LastActivityDate="2011-05-28T11:57:11.333" CommentCount="8" />
  <row Id="17945" PostTypeId="1" AcceptedAnswerId="17951" CreationDate="2010-11-09T18:29:29.153" Score="4" ViewCount="135" Body="&lt;p&gt;Hi,This is not purely a programming question. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work in a large company. We have lots of code written in C++ language:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Multiple simultaneous projects in progress and implementations that have to be supported.&lt;/li&gt;&#xA;&lt;li&gt;Multiple code paths due to first reason. Some are ~10 years old.&lt;/li&gt;&#xA;&lt;li&gt;Multiple target platforms. Most of the code has to be standard. Compiler specific code is frowned upon.(Which is a good thing I suppose)&lt;/li&gt;&#xA;&lt;li&gt;A large number of processes (&gt;30 easily) each having in excess of 10k lines even in the smaller processes.&lt;/li&gt;&#xA;&lt;li&gt;Multiple developers per process, multiple processes per developer, multiple owners for a process over time(Who may now be unavailable as some processes have had a fair number of owners). This means there is no definite authority on a process for some processes. &lt;/li&gt;&#xA;&lt;li&gt;Not all functionality of all the processes are used all the time. There may exist many bugs in your process you don't know about simply because you haven't come across a situation where a certain branch of code is executed at runtime. Eliminating all these are not so easy.&lt;/li&gt;&#xA;&lt;li&gt;Timeline constraints and allocation to multiple projects and multiple processes mean that developers are usually left with no choice rather than to make do with existing code and try and work around limitations rather than to radically change the coding of a process so that it can be much better.&lt;/li&gt;&#xA;&lt;li&gt;Most processes are performance critical. This is a huge incentive for people to adhere to C style coding and shy away from OOP.&lt;/li&gt;&#xA;&lt;li&gt;templates, STL and metaprogramming usage is near to non-existent.&lt;/li&gt;&#xA;&lt;li&gt;Use of third party libraries is next to impossible. i.e. No Boost! Oracle is an exception. &lt;/li&gt;&#xA;&lt;li&gt;Basic functionalities needed are implemented in libraries which expose C like interfaces which make you look like an idiot if you are trying to write something in OOP or using templates because every time you use them, you have to wrap them up to hide the C like interface or just forget about the whole thing and do C like coding yourself. Not to mention additional bugs you may introduce by trying to wrap. The libraries themselves have been heavily used and are quite reliable in most cases. So the natural inclination is to go with them in a time constrained project.&lt;/li&gt;&#xA;&lt;li&gt;People are not very receptive to new ideas. I do not have &lt;strong&gt;ANY&lt;/strong&gt; idea how to remedy this. I myself am curious and willing to try out new stuff. I find it hard to accept when other people don't. Especially when those people are not in managerial positions. Management decisions I can tolerate even if I don't agree. But what is there to do about decadence in developers?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Q1: What are the questions I should be asking myself? Please note that I love C++, and I have no intention whatsoever of quitting my job because the company is great. And it's the best in my country. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Q2: What are the ways I can, and help others improve?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Q3: I had this discussion with a dev lead about upgrading our compiler to the newer version  because it has a lot of nice features in c++0x and I thought the sooner we try to adjust to those, the better. His concern was the risk associated with it. Reasoning: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Do we really need those features?&lt;/li&gt;&#xA;&lt;li&gt;Our current main OS does not support for compiler version XXX. Of course we can always use XXX, but if something goes wrong the OS can say &quot;Hey, we don't support that!&quot;.&lt;/li&gt;&#xA;&lt;li&gt;It has to be a gradual process not an overnight one. (In my opinion this implies that we should always be a couple of years or more behind the current front)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I know this is not a &quot;yes no question&quot;, but what is the correct approach to this problem?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Q4: Are all or some of the above stupid questions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for any feedback. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;p.s. Writing this has also made me realize stuff that had not occurred to me before. So I guess it would not go to waste if someone were to close this even without a single answer (Which I hope will not happen). :)&lt;/p&gt;&#xA;" OwnerUserId="7357" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-09T19:45:01.180" LastActivityDate="2010-11-09T19:45:01.180" Title="About compilers, coding, large code bases, and some other stuff too" Tags="&lt;programming-languages&gt;&lt;programming-practices&gt;&lt;project&gt;" AnswerCount="1" CommentCount="4" FavoriteCount="3" />
  <row Id="17946" PostTypeId="2" ParentId="17938" CreationDate="2010-11-09T18:32:56.200" Score="1" ViewCount="" Body="&lt;p&gt;One thing that can make working on a computer more relaxing for your eyes is glasses with a different distance correction.  My optician recommended me a pair with all the same specifications except for distance correction.  Means looking at the monitor requires less work for your eye muscles.&lt;/p&gt;&#xA;" OwnerUserId="6513" LastActivityDate="2010-11-09T18:32:56.200" />
  <row Id="17947" PostTypeId="1" AcceptedAnswerId="17953" CreationDate="2010-11-09T18:35:31.390" Score="3" ViewCount="120" Body="&lt;p&gt;1) Up-time&lt;br&gt;2) Latency&lt;br&gt;3) Throughput&lt;br&gt;4) Server software such as SQL, etc.&lt;br&gt;5) $$$ -- transfer, overages, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What else?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And is there a web site rating hosts by this criteria that is actually reliable and not simply a dishonest advertising site... or do you guys have any recommendations?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(BTW, someone with 150+ rep should create &quot;hosting&quot; and &quot;web hosting&quot; tags.)&lt;/p&gt;&#xA;" OwnerUserId="7360" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-11-09T18:37:34.447" LastActivityDate="2010-11-09T19:08:39.197" Title="How do you rate Hosting?" Tags="&lt;project-hosting&gt;&lt;hosting&gt;&lt;web-hosting&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="1" />
  <row Id="17948" PostTypeId="2" ParentId="17898" CreationDate="2010-11-09T18:36:49.377" Score="4" ViewCount="" Body="&lt;p&gt;How I really learned about pointers? By writing a simple compiler freshmen year of college. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How to explain pointers in layman's terms? I like the (dated?) analogy of a library catalog stored on index cards. Each card (&quot;pointer&quot;) contains information about where some book (&quot;data&quot;) is located, but doesn't actually contain the book itself. If you modify the card (&quot;pointer arithmetic&quot;), all it does is change what book it points to and has no impact on the book itself - just be careful not to screw up the address or you might point to a non-existent book or even the wrong library. However, if you follow the &quot;address&quot; on the card and go to the proper part of the library (&quot;dereference the pointer&quot;), you can see/modify the book itself.  &lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-11-09T18:36:49.377" CommunityOwnedDate="2010-12-02T00:15:36.130" CommentCount="2" />
  <row Id="17949" PostTypeId="2" ParentId="17947" CreationDate="2010-11-09T18:39:47.767" Score="0" ViewCount="" Body="&lt;h1&gt;#1. Simplicity&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I want a simple interface and a root prompt. &lt;/p&gt;&#xA;&#xA;&lt;h1&gt;#2. Cost&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I don't want an arm and a leg for Plesk, CPanel, phpMyAdmin, and a million other tools I &lt;em&gt;won't use&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any reputable web host will have great uptime, latency, throughput. Server software is something you add on yourself. #2 (cost) is up to you. Do you need more bandwidth? Do you need things pre-installed or setup? That will cost you. Most overages and rates are standardized and aren't exorbitant. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-09T18:39:47.767" CommentCount="2" />
  <row Id="17950" PostTypeId="2" ParentId="17947" CreationDate="2010-11-09T18:44:07.730" Score="2" ViewCount="" Body="&lt;p&gt;Comparing hosting is like comparing dentists: there are plenty to choose from, everyone has a favorite and everyone recommends his/her own. And unfortunately just like with dentists, you need to find yours via trial and error rather than others' recommendations. You can probably start with various reviews and ratings available on the Internet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One non-obvious thing that I learned recently though was that these so called &quot;cloud-based&quot; services where you pay per resource usage can turn into a disaster. I saw how one poor guy received a ridiculous bill from his hosting company just because he was running poorly optimized code (actually a third-party Wordpress plugin). I'd say stay away from this kind of hosting unless you absolutely know what you are doing.&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-09T18:44:07.730" CommentCount="1" />
  <row Id="17951" PostTypeId="2" ParentId="17945" CreationDate="2010-11-09T18:44:51.817" Score="2" ViewCount="" Body="&lt;p&gt;&quot;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131177052&quot; rel=&quot;nofollow&quot;&gt;Working Effectively with Legacy Code&lt;/a&gt;&quot; would be a book choice I'd toss out there as you seem to have quite the legacy albatross to manage.  Legacy code can be its own big problem to handle, in other words.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd be tempted to suggest looking at how the overall process works and seeing if there are minor changes you could try to introduce.  Granted you may have already been down this road, but if not then this is something I would throw out there.  I wouldn't try to do a lot of changes at once, but rather just take one at a time and give a couple of months to see if it has taken root or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people may be comfortable where they are and have stayed put for so long that moving is rather difficult for them to do.  While this may seem like a poor rationalization, it is worth trying to look at this from the other person's perspective.  If the decadence is coming from new grads, then you likely have a different problem than what I'd likely see.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thought here is the question of how long have you been at this company.  If you are the new kid on the block then making some suggestions may make you appear to be the whiz-kid that has come to change everything and ruin the beauty that others have taken years to craft for themselves.  If you are rather new, I'd likely take at least 6 months of seeing how things work and ask questions to see why people do some of what they do.  While you may frustrate some, it may be good to stir up other's curiosity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the correct approach to this problem, there are likely to be various effective approaches and not just one, &quot;Behold, here is what will fix all your problems...&quot; kind of approach that you seem to want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to think the only stupid questions are the ones not asked.  I usually like answering questions and you never know what you'll find when someone gives you an answer to a question.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;In response to the first comment, I'd be tempted to want to go &quot;eek&quot; to some extent.  There is the possibility that the new grads are just following the herd in a sense, but the inertia you're facing is fierce I fear.  With the 1 2/3 years there, you do have enough time to likely have &quot;earned your stripes&quot; in a sense so there should be some potential to bring in new ideas.  I'd tempted to look at the process and try to tweak that with some improvements,e.g. how are tests done, automated builds, code reviews, etc.  &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Ah, the second comment does answer a few things.  There are 2 parts to doing continuous improvement to my mind, just to add here:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Understand where your environment is now.  In a way, interpretation is everything, which is why having an awareness of how things are now is important.  How easily can you answer the question, &quot;Where am I now?&quot; would be another way to state this point as while you may find something, your company may already be doing it and thus it isn't a great suggestion to make things better,e.g. automated builds which you state you have.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Find those elusive best practices and try them out.  In a way this is the big hunting game you have now in trying to find where to do things better which can require some research skills, creativity, patience, and tenacity, I'd imagine. Good luck in finding them, as I'd like some resources on this too.  &lt;a href=&quot;http://msdn.microsoft.com/en-us/practices/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Microsoft's Patterns and Practices&lt;/a&gt; may be a source though it may be hard to sift through it.  If you have local user groups, this may be another way to find others from which to get ideas for experiments.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4327" LastEditorUserId="4327" LastEditorDisplayName="" LastEditDate="2010-11-09T19:39:34.917" LastActivityDate="2010-11-09T19:39:34.917" CommentCount="2" />
  <row Id="17952" PostTypeId="2" ParentId="17947" CreationDate="2010-11-09T18:49:45.637" Score="2" ViewCount="" Body="&lt;p&gt;Second below up-time would be &lt;strong&gt;decent support&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find someone who has competent 24 hour technical support. If your production box has a hardware failure at 4am - which it will inevitably at some point - or you need to ask advice on an upgrade - you need to know that you're in good hands. &lt;/p&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-11-09T18:49:45.637" CommentCount="0" />
  <row Id="17953" PostTypeId="2" ParentId="17947" CreationDate="2010-11-09T18:53:56.360" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;all of the above, plus&lt;/li&gt;&#xA;&lt;li&gt;no additional charges for additional domains - you're already paying for bandwidth and compute-time, the number of web sites is not relevant&lt;/li&gt;&#xA;&lt;li&gt;24/7 immediate support from people who speak your language&lt;/li&gt;&#xA;&lt;li&gt;scalable service, in case you get slashdotted&lt;/li&gt;&#xA;&lt;li&gt;sane, automatic handling of subdomains&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-09T18:53:56.360" />
  <row Id="17954" PostTypeId="2" ParentId="17929" CreationDate="2010-11-09T18:57:21.910" Score="12" ViewCount="" Body="&lt;p&gt;the biggest re-think going from desktop to web is: the web app is inherently &lt;em&gt;stateless&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;figure that part out, and you're good.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-09T18:57:21.910" CommentCount="11" />
  <row Id="17955" PostTypeId="2" ParentId="17947" CreationDate="2010-11-09T19:00:29.297" Score="0" ViewCount="" Body="&lt;p&gt;It depends what I need it for...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I'm building an application, I want to have easy access to the hosted database and I look for the appropriate DBMS to be available.  As an example, I want to be able to connect using Management Studio for an MSSQL database.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I'm looking for domain name hosting, I want to be able to change the DNS info myself, or create an A record.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day, I ask: &lt;strong&gt;Does it give me the tools to do what I need?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="6659" LastActivityDate="2010-11-09T19:00:29.297" />
  <row Id="17956" PostTypeId="2" ParentId="17826" CreationDate="2010-11-09T19:03:10.530" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.amazon.com/Pilot-Frixion-Erasable-Highlighter-Asstd/dp/B0027EJ0OY/ref=pd_sbs_op_3&quot; rel=&quot;nofollow&quot;&gt;Pilot Frixion Erasable Highlighters&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7364" LastActivityDate="2010-11-09T19:03:10.530" CommunityOwnedDate="2011-05-04T00:07:17.570" />
  <row Id="17957" PostTypeId="2" ParentId="17843" CreationDate="2010-11-09T19:03:45.553" Score="1" ViewCount="" Body="&lt;p&gt;Agile is a &lt;em&gt;class&lt;/em&gt; of software-development methodology, or which XP is one &lt;em&gt;instance&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scrum is a &lt;strong&gt;project-management&lt;/strong&gt; methodology, &lt;em&gt;not a software-development methodology&lt;/em&gt;. While it is common to use an Agile development methodology with Scrum, it is not a requirement. They are not the same thing.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-09T19:03:45.553" />
  <row Id="17958" PostTypeId="2" ParentId="17898" CreationDate="2010-11-09T19:04:38.853" Score="8" ViewCount="" Body="&lt;h2&gt;Memory-as-a-Grid Diagram&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Usually what I do is represent memory as a &quot;grid&quot;, so that I can make up addresses, highlight different memory spaces and write in the cells values (or even further, their binary representations) and link the pointers in memory to the values they point at.&#xA;(And then still mention that it's a simplification).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually it's a &quot;ohhhh&quot; moment for most of my students.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry, cannot do a drawing now, unfortunately.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Symbol Juggling&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Then when it comes to have them stop forgetting how to use &amp;amp; and *, it's very simple: present it the same way they do math or physics calculations. If you divide a distance in km by a time in hour, you get a speed in km/h. What's in needs to be out. Simple.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;printf to the Rescue&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Doing just a few basic examples that visually represent what you explained with these will comfort them in what they think they understood, or give them the opportunity to say &quot;ah, I don't get this one&quot;.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Be Extensive&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Cover pointers for simple types and make sure they understand the difference between addressing and the size of a data type, then structs, then arrays, and multiple levels.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then start pointer arithmetic.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;Addendum: Recursion&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I usually explain recursion similarly, using a visual representation.&#xA;Have them print the alphabet using a pre-made function that writes a single char, and then ask them to print it in reverse order by just changing two lines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually there's a &quot;what the...?&quot; moment, and when you add just another parameter to your printf to print numeric values and indent the steps, it becomes a sigh of relief.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;Alternatives: The Play-Doh Model and the Water Cups&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I actually had some co-workers in a university who showed students a video explaining pointers and memory accesses using play-doh paste. It was incredibly clever and well done, though I never really used that technique myself, except for very young learners interested in grasping programming (but usually those I wouldn't lead them towards a language using pointers too early). Basically using tiny balls of play-doh which you can attach to other bigger balls of play-doh representing memory spaces, and that you can combine together to either link them (like in a linked data structure) or merge together (as in a contiguous memory space). Using different colors for the memory spaces pointed to and the pointers help as well. But I still think the Memory-as-a-Grid thing works better, as you can clearly show that the pointing is really a matter of &quot;addressing&quot;, as on a &quot;map/grid&quot;. Whereas the Play-doh mode still confuses them into thinking that things really &quot;touch&quot; each other in memory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Water Cup thing was used directly by a colleague as well, but I don't know if she came up with it. It was an interesting approach, but I noticed many students were left puzzled by the explanation. Something alike to &lt;a href=&quot;http://programmers.stackexchange.com/questions/17898/whats-a-nice-explanation-for-pointers/17902#17902&quot;&gt;DevSolo's Coffee Cup technique&lt;/a&gt;. But I think it's actually a misleading one as you make the students confuse containers, data structures, pointers and arrays. It might be an interesting approach to explain arrays at the beginning I assume, but I wouldn't stick to it very long.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2011-03-12T12:58:22.150" LastActivityDate="2011-03-12T12:58:22.150" CommunityOwnedDate="2010-12-02T00:15:36.130" CommentCount="2" />
  <row Id="17959" PostTypeId="2" ParentId="17830" CreationDate="2010-11-09T19:04:47.127" Score="0" ViewCount="" Body="&lt;p&gt;I would say that &lt;em&gt;listening and watching closely&lt;/em&gt; is the best way of learning from experts. You can do this without XP. You can even do it when they don't know you're doing it.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-09T19:04:47.127" />
  <row Id="17960" PostTypeId="2" ParentId="17826" CreationDate="2010-11-09T19:05:24.170" Score="0" ViewCount="" Body="&lt;p&gt;The following is how it usually happens in my case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;X tech sounds really cool where can I learn more&quot;&#xA;I then google said tech absorbing as much as possible, I try to if possible to produce a small scale effort at using the new hype.&#xA;If I am still interested I buy a good book on the subject, most recently for me it is a foray into WCF.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In order to read it I keep my book of choice (usually the most recent purchase I have made) handy for my private time in the bathroom away from kids and distractions. Takes me longer to read it this way but at least I get through them. &lt;/p&gt;&#xA;" OwnerUserId="6479" LastActivityDate="2010-11-09T19:05:24.170" CommunityOwnedDate="2011-05-04T00:07:17.570" />
  <row Id="17961" PostTypeId="2" ParentId="17887" CreationDate="2010-11-09T19:06:28.453" Score="3" ViewCount="" Body="&lt;p&gt;To add to @Robert's answer...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Different companies may use titles in different ways, so if you're asking because you want to know what a title means at a certain company, you may want to inquire on a case-by-case basis as not everyone will use the same reasoning.&lt;/p&gt;&#xA;" OwnerUserId="6659" LastActivityDate="2010-11-09T19:06:28.453" CommentCount="1" />
  <row Id="17962" PostTypeId="2" ParentId="17947" CreationDate="2010-11-09T19:08:39.197" Score="0" ViewCount="" Body="&lt;p&gt;Thanks for the input, guys.  There was a list of hosts &amp;amp; basic details about them on the webhostingtalk.com site, and it said hostgator is 100% green hosting, and seeing as how my web site will be about solar installation, that's a nice little tidbit that I can toss onto the site alongside my W3C validation tag.  I contacted their tech support about a few things -- guy spoke English great, etc.  It seems like hostgator is a great choice for me.&lt;/p&gt;&#xA;" OwnerUserId="7360" LastActivityDate="2010-11-09T19:08:39.197" CommentCount="1" />
  <row Id="17963" PostTypeId="2" ParentId="17799" CreationDate="2010-11-09T19:10:18.420" Score="1" ViewCount="" Body="&lt;p&gt;My short answer:   between ASP.NET and ASP.NET MVC, I felt like I could create a much more object oriented solution in ASP.NET MVC.&lt;/p&gt;&#xA;" OwnerUserId="6659" LastActivityDate="2010-11-09T19:10:18.420" />
  <row Id="17964" PostTypeId="2" ParentId="15839" CreationDate="2010-11-09T19:11:40.763" Score="3" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.microsoft.com/visualstudio/en-us/lightswitch&quot; rel=&quot;nofollow&quot;&gt;Microsoft's Lightswitch&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/DiV7v.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-11-09T19:11:40.763" />
  <row Id="17965" PostTypeId="2" ParentId="17938" CreationDate="2010-11-09T19:16:09.777" Score="0" ViewCount="" Body="&lt;p&gt;If you have eyestrain, check the refresh rate of your display and consider getting glasses with anti-glare coating. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a prior job, I got them to buy me a nicer monitor after I complained about headaches and eye strain. &lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-11-09T19:16:09.777" />
  <row Id="17966" PostTypeId="2" ParentId="15839" CreationDate="2010-11-09T19:20:25.160" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.rebol.com/&quot; rel=&quot;nofollow&quot;&gt;Rebol&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://appinventor.googlelabs.com/about/&quot; rel=&quot;nofollow&quot;&gt;Android AppInventor&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/QyDiM.png&quot; alt=&quot;Android AppInventor&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-11-09T19:20:25.160" CommentCount="1" />
  <row Id="17967" PostTypeId="2" ParentId="17898" CreationDate="2010-11-09T19:26:09.847" Score="6" ViewCount="" Body="&lt;p&gt;A pointer is a variable whose value is the memory address of another variable.&lt;/p&gt;&#xA;" OwnerUserId="7038" LastActivityDate="2010-11-09T19:26:09.847" CommunityOwnedDate="2010-12-02T00:15:36.130" CommentCount="2" />
  <row Id="17968" PostTypeId="2" ParentId="17826" CreationDate="2010-11-09T19:29:55.210" Score="0" ViewCount="" Body="&lt;p&gt;I've read about 300 books so far in my life (some with as many as 700 pages,) and I'd have to say that you have to (1) eliminate distractions, (2) find someone who is also interested in the topic so that you can tell them about what you recently learned from reading, and (3) ask yourself this question: &lt;em&gt;In 3 days, do I want to have accomplished something and learned a lot, or do I want to have learned nothing, having sat in front of the TV or played video games?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Few people in America actually read non-fiction books.  I've met probably 100 people in the past six months, and although almost every single one of those people knows that I am a semi-avid reader of non-fiction books, not one person ever spoke about reading a non-fiction book, nor did I ever see one of them read a non-fiction book.  Being willing and able to read non-fiction books instantly raises my respect for someone, even if I hate the books that they like.  So few people are willing to do anything other than drink, brag, etc. that it is really quite remarkable when someone sits down and reads a book.&lt;/p&gt;&#xA;" OwnerUserId="7360" LastActivityDate="2010-11-09T19:29:55.210" CommunityOwnedDate="2011-05-04T00:07:17.570" CommentCount="1" />
  <row Id="17969" PostTypeId="2" ParentId="17824" CreationDate="2010-11-09T19:34:12.550" Score="1" ViewCount="" Body="&lt;p&gt;It depends on what your goal is.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you trying to learn how parsers/compilers work?  Then write your own from scratch.  Thats the only way you'd really learn to appreciate all the ins and outs of what they are doing.  I've been writing one the past couple months, and its been an interesting and valuable experience, escpecially the 'ah, so thats why language X does this...' moments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you need to put something together quickly for an application on a deadline?  Then perhaps use a parser tool. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you need something that you'll want to expand upon over the next 10, 20, maybe even 30 years?  Write your own, and take your time.  It'll be well worth it.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-09T19:34:12.550" CommentCount="1" />
  <row Id="17970" PostTypeId="2" ParentId="17738" CreationDate="2010-11-09T19:46:41.307" Score="4" ViewCount="" Body="&lt;p&gt;In regards to studies, Smart Bear software will send you a small book, &lt;a href=&quot;http://smartbear.com/codecollab-code-review-book.php&quot; rel=&quot;nofollow&quot;&gt;Best Kept Secrets of Peer Code Review&lt;/a&gt;, for free.  It has a number of articles in it about various aspects of code review, including studies on how much time they should take and how effective they are.&lt;/p&gt;&#xA;" OwnerUserId="3047" LastActivityDate="2010-11-09T19:46:41.307" CommentCount="2" />
  <row Id="17971" PostTypeId="1" AcceptedAnswerId="17973" CreationDate="2010-11-09T19:51:26.793" Score="6" ViewCount="206" Body="&lt;p&gt;Personally, I break out in hives if I don't put ADO objects that implement IDisposable in using statements.  But at my current contract, I've found that their homegrown enterprise framework &quot;data access provider&quot; code does not 1) implement IDisposable and 2) call Dispose() on anything it uses, at any point, ever.  Users have been complaining a great deal about performance issues in the Winforms applications that heavily use this framework for data access, and though there are a LOT of other problems in the code that could be hitting performance, this one just screams at me and is more low-hanging-fruit than the others.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, beyond saying something like &quot;Dispose is there for a reason, use it,&quot; what can I tell these people to convince them that this is really, really bad?&lt;/p&gt;&#xA;" OwnerUserId="3266" LastActivityDate="2010-11-09T22:21:36.820" Title="Just how bad is it not to Dispose() SqlConnections?" Tags="&lt;.net&gt;&lt;advice&gt;&lt;performance&gt;&lt;consulting&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="17972" PostTypeId="2" ParentId="17971" CreationDate="2010-11-09T20:03:54.253" Score="6" ViewCount="" Body="&lt;p&gt;If you do not call the Dispose method on a SQL Connection, when you done using it, that connection does NOT get returned back to the connection pool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are having performance issues, my guess is that the maximum connections are opened on your database.  A DBA could easily confirm this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft's Best Practice calls for you to place your connection code inside of a Using statement, ensuring the connection is disposed of and that the connection is returned back to the pool.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-11-09T20:03:54.253" />
  <row Id="17973" PostTypeId="2" ParentId="17971" CreationDate="2010-11-09T20:04:58.327" Score="4" ViewCount="" Body="&lt;p&gt;I'd say the best thing you can do is point them to Microsoft's Patterns and Practices regarding &lt;code&gt;Dispose()&lt;/code&gt; &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ff647790.aspx&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.  Let them see the full consequences of not utilizing this tool that's right in front of them.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-11-09T20:04:58.327" CommentCount="4" />
  <row Id="17974" PostTypeId="2" ParentId="17971" CreationDate="2010-11-09T20:06:59.167" Score="3" ViewCount="" Body="&lt;p&gt;In any serious application I would say that it is pretty bad. Not only will leaving these objects float around kill performance, it is also simply unprofessional. The good news is that Microsoft implements Finalize in the object hierarchy. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;~Object()&#xA;{&#xA;    this.Dispose(false);    &#xA;}&#xA;&#xA;public void Dispose()&#xA;{&#xA;    this.Dispose(true);&#xA;    GC.SuppressFinalize(this);&#xA;}&#xA;&#xA;protected virtual void Dispose(bool disposing)&#xA;{&#xA;    // ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Take &lt;code&gt;System.Data.SqlClient.SqlConnection&lt;/code&gt; for example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;System.ComponentModel.Component &lt;strong&gt;&amp;lt;-- Implements the Finalize dispose pattern.&lt;/strong&gt;&#xA;    |&#xA;System.Data.Common.DbConnection&#xA;    |&#xA;System.Data.SqlClient.SqlConnection&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The objects will eventually be disposed but the non-deterministic nature reaks havoc on performance.&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-11-09T20:06:59.167" />
  <row Id="17975" PostTypeId="2" ParentId="10084" CreationDate="2010-11-09T20:07:17.703" Score="0" ViewCount="" Body="&lt;p&gt;Basically, to learn to program, you need a tutorial, a reference, the compiler/interpreter, time, and dedication. It also helps to have a guiding person. Decent college classes accelerate the process somewhat for the average person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pick something you want to learn and put your nose to the grindstone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To learn to code takes about 6 months. To be somewhat competent takes about 2 years. To know what you're doing takes 5-6 years. To be good takes 10 years. Time may vary slightly depending on how natural you are for sequential logic thinking. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Put another way: you will to write something on the order of 15,000 lines of code before you're an ok coder. (That's 3-5 small projects that aren't trivial). 100,000 LoC is sorta an experienced coder. Lines of code is a terrible metric, but all the other metrics are worse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recommend Haskell or Scheme if you have a mathematical bent, C if you like electronics, and one of Perl/Python/Ruby for the web. Javascript is a nightmare of a language (There's a reason Crocker wrote an article called &quot;The &lt;em&gt;Good&lt;/em&gt; Parts&quot;), and should be avoided for initial programming learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no substitute for experience, unless it's experience not repeating the same mistakes.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-09T20:07:17.703" CommunityOwnedDate="2010-11-09T20:07:17.703" />
  <row Id="17976" PostTypeId="1" AcceptedAnswerId="17994" CreationDate="2010-11-09T20:10:41.790" Score="9" ViewCount="799" Body="&lt;p&gt;Basically, I want to learn lots of programming languages to become a great programmer.  I know only a handful to depth and &lt;strong&gt;I was hoping someone could elaborate on how many &lt;em&gt;classes&lt;/em&gt; or &lt;em&gt;types&lt;/em&gt; of programming languages there are&lt;/strong&gt;.  Like how you would lump them together if you had to learn them in groups.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coming from a Java background, I'm familiar with static typing, but I know that in addition to dynamic typing there has to be such variety in available languages that I would love to see a categorical breakdown if possible.&lt;/p&gt;&#xA;" OwnerUserId="5904" LastActivityDate="2010-11-09T23:15:37.130" Title="How many types of programming languages are there?" Tags="&lt;programming-languages&gt;" AnswerCount="6" CommentCount="5" FavoriteCount="5" />
  <row Id="17977" PostTypeId="1" AcceptedAnswerId="17981" CreationDate="2010-11-09T20:14:18.623" Score="6" ViewCount="465" Body="&lt;p&gt;I am doing OK here, nothing too exciting. Making good money, not much stress, not learning a whole lot but fine. Now after five years my previous employer contacted me for what seems to be an interesting gig. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As The Clash would say... should I stay or should I go? What would make you go?&lt;/p&gt;&#xA;" OwnerUserId="7368" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-09T23:00:42.090" LastActivityDate="2010-11-09T23:00:42.090" ClosedDate="2010-11-10T05:42:00.653" Title="Previous employer wants me back. What to do?" Tags="&lt;jobs&gt;&lt;career-advice&gt;" AnswerCount="6" CommentCount="7" FavoriteCount="2" />
  <row Id="17978" PostTypeId="2" ParentId="17976" CreationDate="2010-11-09T20:14:53.747" Score="5" ViewCount="" Body="&lt;p&gt;For types of programming languages (Paradigms), look here:  &lt;br&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/Programming_paradigm&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Programming_paradigm&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For other characteristics of programming languages (e.g. Type Systems), look here:&#xA;&lt;a href=&quot;http://en.wikipedia.org/wiki/Programming_language&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Programming_language&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-09T20:14:53.747" CommentCount="1" />
  <row Id="17979" PostTypeId="1" CreationDate="2010-11-09T20:18:28.847" Score="2" ViewCount="66" Body="&lt;p&gt;What I am looking for is the most optimal solution for storing content revisions in an MSSQL database. We have an application that allows users to make changes to small HTML content blocks similar to a wiki, but we need to have tight audit control over the changes. At any point in time, the manager might want to look at previously submitted contents or revert the entire HTML block back to the previous state.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had it setup in the past where we had a primary table that stored the HTML information (along with various other meta tags) and then an audit table that kept a copy of the entire data row everytime a change was made. What I am wondering is if this is the best way to go, or should I just keep 1 table with all the current records and the changes in it and just have a flag that lets me know which one is the current one?&lt;/p&gt;&#xA;" OwnerUserId="7367" LastActivityDate="2010-11-10T12:06:21.820" Title="Best way to store revision information for quick access to view or revert changes" Tags="&lt;recommendations&gt;&lt;database-development&gt;&lt;sql&gt;" AnswerCount="2" />
  <row Id="17980" PostTypeId="2" ParentId="17977" CreationDate="2010-11-09T20:19:36.097" Score="0" ViewCount="" Body="&lt;p&gt;I would recommend you to look around if there is something else (other opportunities), If you have in your mind to leave your current job. It’s always better to start working at new companies than go back.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-11-09T20:28:14.653" LastActivityDate="2010-11-09T20:28:14.653" CommentCount="4" />
  <row Id="17981" PostTypeId="2" ParentId="17977" CreationDate="2010-11-09T20:21:50.073" Score="5" ViewCount="" Body="&lt;p&gt;It would depend on why I left my previous employer.  If the company had fallen on hard times for reasons beyond their control, and we had parted on good terms, I see no reason why I wouldn't pursue an exciting new opportunity with them if their business plan is sound, and they made an offer I couldn't refuse.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-09T20:21:50.073" CommentCount="3" />
  <row Id="17983" PostTypeId="2" ParentId="17843" CreationDate="2010-11-09T20:25:29.320" Score="0" ViewCount="" Body="&lt;p&gt;To answer the confusion between XP and Scrum (along with other Agile methodologies), I found the following article very helpful: &lt;a href=&quot;http://www.crisp.se/henrik.kniberg/Kanban-vs-Scrum.pdf&quot; rel=&quot;nofollow&quot;&gt;http://www.crisp.se/henrik.kniberg/Kanban-vs-Scrum.pdf&lt;/a&gt;. It does concentrate on Kanban (another agile methodology) but talks about the differences between Scrum, XP, and RUP as well. &lt;/p&gt;&#xA;" OwnerUserId="7305" LastActivityDate="2010-11-09T20:25:29.320" />
  <row Id="17984" PostTypeId="1" AcceptedAnswerId="17988" CreationDate="2010-11-09T20:27:22.673" Score="6" ViewCount="466" Body="&lt;p&gt;Even if it could be bad practices, I would say that there is time that it would fulfill its purpose.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-11-09T20:43:34.197" LastActivityDate="2010-11-09T22:38:40.407" Title="Why C# doesn’t support multiple inheritance?" Tags="&lt;.net&gt;&lt;c#&gt;&lt;object-oriented&gt;" AnswerCount="5" />
  <row Id="17985" PostTypeId="2" ParentId="17979" CreationDate="2010-11-09T20:27:27.743" Score="2" ViewCount="" Body="&lt;p&gt;I have had decent success with doing a bit of both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One table that has the current version of the record and one table with every version (and a timestamp and an edited by) in another table.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This gives you the advantage of having a complete copy of each version without the overhead of having to sort out the current version from all the others at runtime.  it also allows you to set much stricter permissions on the audit table and optionally implement the audit copy with triggers and completely hide the audit information from the rest of the app if you like that sort of thing.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-09T20:27:27.743" />
  <row Id="17986" PostTypeId="2" ParentId="17977" CreationDate="2010-11-09T20:27:42.293" Score="1" ViewCount="" Body="&lt;p&gt;Depends on why you left in the first place. I returned to a previous employer after about five years and stayed for another 2 years and it all went well. For contractors coming and going is not uncommon.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-09T20:27:42.293" />
  <row Id="17987" PostTypeId="2" ParentId="17977" CreationDate="2010-11-09T20:28:25.867" Score="2" ViewCount="" Body="&lt;p&gt;I almost agree with Robert Harvey, except I would question the &quot;hard times&quot; clause of his answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you have to honestly answer the questions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Why did I leave?&lt;/li&gt;&#xA;&lt;li&gt;Is the reason I left no longer an issue (i.e. I no longer care about that reason, or the problem was rectified, or...)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm tempted to add the question &quot;do I really want to leave this job?&quot; but if you are considering the offer, then you have already answered it.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-11-09T20:28:25.867" CommentCount="1" />
  <row Id="17988" PostTypeId="2" ParentId="17984" CreationDate="2010-11-09T20:34:52.920" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/995255/why-is-multiple-inheritance-not-allowed-in-java-or-c&quot;&gt;http://stackoverflow.com/questions/995255/why-is-multiple-inheritance-not-allowed-in-java-or-c&lt;/a&gt; covers this question nicely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My take on it is this: The designers probably wanted to make a language that promoted good design principles. Ok, so there are times that multiple inheritance is perfect. Those are the exception, rather than the rule, though, and can be abused very easily. So, the designers decided to make it impossible to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those cases where it would be good, you need to use interfaces. Those work, albeit clumsily; but, you won't need them for that that much.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-09T20:34:52.920" />
  <row Id="17989" PostTypeId="2" ParentId="17977" CreationDate="2010-11-09T20:37:50.117" Score="1" ViewCount="" Body="&lt;p&gt;How much upside is there if you go?  This is in terms of salary changes, quality of work, development opportunities, and all the other variables that come into play.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for what would make me go, I'd likely have a short list of knowing the work environment has some basic things so I'm not going back into cowboy coding land, a salary bump to offset the minor headaches of changing employers as there are forms to fill out and other stuff that has to get done that for me I would want to know I got a pay raise in making the shift in a sense, what kind of work would I be doing and how much better is it than my current situation.  To put it into a simple question, &quot;Is this a &lt;strong&gt;great&lt;/strong&gt; opportunity before me?&quot;  Great is subject to interpretation, but that's part of the fun in that question to my analytical mind... mwahahahahaha&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-09T20:37:50.117" CommentCount="1" />
  <row Id="17990" PostTypeId="2" ParentId="17976" CreationDate="2010-11-09T20:38:03.187" Score="7" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Assembly&lt;/strong&gt;   &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Procedural&lt;/strong&gt;&lt;br&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Basic  &lt;/li&gt;&#xA;&lt;li&gt;C  &lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Object-Oriented&lt;/strong&gt;&lt;br&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;C#  &lt;/li&gt;&#xA;&lt;li&gt;Java  &lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Declarative&lt;/strong&gt;&lt;br&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Prolog&lt;/li&gt;&#xA;&lt;li&gt;SQL    &lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Functional&lt;/strong&gt;&lt;br&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Lisp  &lt;/li&gt;&#xA;&lt;li&gt;Haskell  &lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These are the main ones, but there's a lot of other paradigms out there, and there's plenty of overlap between them.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastEditorUserId="1842" LastEditorDisplayName="" LastEditDate="2010-11-09T20:48:37.340" LastActivityDate="2010-11-09T20:48:37.340" CommentCount="3" />
  <row Id="17991" PostTypeId="2" ParentId="17984" CreationDate="2010-11-09T20:38:43.327" Score="3" ViewCount="" Body="&lt;p&gt;Just to illustrate why not, multiple inheritance is supported by C++, but is strongly discouraged as you can accomplish most of the stuff with composition that you would with M.I., however in a much cleaner fashion. Unlike C++, C# is not a &quot;hybrid&quot; type OOP language, i.e. it didn't evolve from a previous language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really need multiple inheritance, you can implement multiple interfaces.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-09T20:38:43.327" />
  <row Id="17993" PostTypeId="2" ParentId="17898" CreationDate="2010-11-09T20:43:02.480" Score="2" ViewCount="" Body="&lt;p&gt;I think the following videos are a great way to teach people about pointers: &lt;a href=&quot;http://cslibrary.stanford.edu/104/&quot; rel=&quot;nofollow&quot;&gt;Binky Pointer Fun Video&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4153" LastEditorUserId="4153" LastEditorDisplayName="" LastEditDate="2010-11-10T08:15:22.477" LastActivityDate="2010-11-10T08:15:22.477" CommunityOwnedDate="2010-12-02T00:15:36.130" CommentCount="2" />
  <row Id="17994" PostTypeId="2" ParentId="17976" CreationDate="2010-11-09T20:43:29.913" Score="15" ViewCount="" Body="&lt;p&gt;It depends on how you want to classify languages. Fundamentally, languages can be broken down into two types: &lt;strong&gt;imperative&lt;/strong&gt; languages in which you instruct the computer &lt;em&gt;how&lt;/em&gt; to do a task, and &lt;strong&gt;declarative&lt;/strong&gt; languages in which you tell the computer &lt;em&gt;what&lt;/em&gt; to do. Declarative languages can further be broken down into &lt;strong&gt;functional&lt;/strong&gt; languages, in which a program is constructed by composing functions, and &lt;strong&gt;logic&lt;/strong&gt; programming languages, in which a program is constructed through a set of logical connections. Imperative languages read more like a list of steps for solving a problem, kind of like a recipe. Imperative languages include C, C++, and Java; functional languages include Haskell; logic programming languages include Prolog.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imperative languages are sometimes broken into two subgroups: &lt;strong&gt;procedural&lt;/strong&gt; languages like C, and &lt;strong&gt;object-oriented languages&lt;/strong&gt;. Object-oriented languages are a bit orthogonal to the groupings, though, as there are object-oriented functional languages (OCaml and Scala being examples).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also group languages by typing: &lt;strong&gt;static&lt;/strong&gt; and &lt;strong&gt;dynamic&lt;/strong&gt;. Statically-typed languages are ones in which typing is checked (and usually enforced) prior to running the program (typically during a compile phase); dynamically-typed languages defer type checking to runtime. C, C++, and Java are statically-typed languages; Python, Ruby, JavaScript, and Objective-C are dynamically-typed languages. There are also &lt;strong&gt;untyped&lt;/strong&gt; languages, which include the Forth programming language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also group languages by their typing &lt;em&gt;discipline&lt;/em&gt;: &lt;strong&gt;weak&lt;/strong&gt; typing, which supports implicit type conversions, and &lt;strong&gt;strong&lt;/strong&gt; typing, which prohibits implicit type conversions. The lines between the two are a bit blurry: according to some definitions, C is a weakly-typed languages, while others consider it to be strongly-typed. Typing discipline isn't really a useful way to group languages, anyway.&lt;/p&gt;&#xA;" OwnerUserId="679" LastEditorUserId="679" LastEditorDisplayName="" LastEditDate="2010-11-09T23:15:37.130" LastActivityDate="2010-11-09T23:15:37.130" CommentCount="8" />
  <row Id="17995" PostTypeId="1" AcceptedAnswerId="17997" CreationDate="2010-11-09T20:44:21.567" Score="5" ViewCount="325" Body="&lt;p&gt;The specific example I have in mind involves the currently-alpha game Minecraft, but this is a general question that I think warrants some conversation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Minecraft is written in Java, and stack traces usually look like this (real example):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;java.lang.NullPointerException&#xA;    at d.a(SourceFile:247)&#xA;    at gi.b(SourceFile:92)&#xA;    at bd.a(SourceFile:33)&#xA;    at bn.a(SourceFile:69)&#xA;    at bn.e(SourceFile:115)&#xA;    at bn.d(SourceFile:103)&#xA;    at net.minecraft.client.Minecraft.i(SourceFile:1007)&#xA;    at net.minecraft.client.Minecraft.run(SourceFile:596)&#xA;    at java.lang.Thread.run(Unknown Source)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Obviously these are not the real package and method names that the developer uses when he writes.  Since he is in an alpha stage, it seems that the developer should like to be able to make sense of his stack traces, especially if someone is able to provide one for a bug report.  As this stands, it's mostly meaningless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What advantage could one possibly hope to gain by obfuscating his code like this that overcomes the drawbacks of more difficult bug identification?&lt;/p&gt;&#xA;" OwnerUserId="7371" LastActivityDate="2010-11-09T21:19:50.937" Title="What are the advantages of obfuscating release code?" Tags="&lt;obfuscation&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="17997" PostTypeId="2" ParentId="17995" CreationDate="2010-11-09T20:53:18.333" Score="13" ViewCount="" Body="&lt;p&gt;We obfuscate our Java code too....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The advantage is that it makes it harder to reverse-engineer (if you are worried about someone stealing your code base and using it as a base to create a similar competing product, for example, etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can get the original stack trace back: there are obfuscation tools out there which create special reference files which you can use to run the obfuscated stack traces through, and it comes out with the original source stack trace. These are generated by the obfuscation process itself, so you can't get the original stack trace back unless you have your hands on the reference file that you used to obfuscate the code in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This has no disadvantages really. :)&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-09T20:53:18.333" CommentCount="3" />
  <row Id="17998" PostTypeId="2" ParentId="17984" CreationDate="2010-11-09T21:03:48.227" Score="2" ViewCount="" Body="&lt;p&gt;Multiple inheritance, if you use it a lot, results in very complex situations. &lt;a href=&quot;http://stackoverflow.com/questions/995255/why-is-multiple-inheritance-not-allowed-in-java-or-c/995271#995271&quot;&gt;Too much complexity with little benefit is why it was ruled out for both Java and C#.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-11-09T21:03:48.227" />
  <row Id="17999" PostTypeId="2" ParentId="17977" CreationDate="2010-11-09T21:07:02.747" Score="2" ViewCount="" Body="&lt;p&gt;As someone working for a company which had a fair few &quot;returnees&quot; over the years, this is my take on it:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's fine. The main reason people left this company in the past was because the only work available was relatively dead end maintenance, support, and low-end development work on existing products. The entire code was MFC/C++, and people were wanting to get into others areas (.NET, Java) over the past decade, so many left due to the work being &quot;stale&quot;, and no new technology to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over the years, some new products and technologies got added to the mix, but the company culture was still pretty good, so some of these people returned. There was no particular hard feelings about this, it's just business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I should mention though: this is in Australia. I'm not sure how things are in other cultures. I hear that in some countries, particularly in Asia and continental Europe, company loyalty can still be a bit medieval, and people leaving is taken more personally. But here it's quite normal, obviously as long as the leaving wasn't done on bad, &quot;personally negative&quot; terms to begin with.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-09T21:07:02.747" />
  <row Id="18000" PostTypeId="2" ParentId="17976" CreationDate="2010-11-09T21:09:19.233" Score="1" ViewCount="" Body="&lt;p&gt;I think a short-cut to all these is to learn enough Lisp to do some semi-useful things. Most of these paradigms started out as ways of using Lisp, so it's a simple way to try things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a number of &quot;kinds&quot; of languages around, but new ones can always appear. Basically, the purpose of a language is to permit encoding of ideas, concepts, or requirements, as directly as possible. To that end, there can be situations where existing paradigms are wanting, and a new one might be needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One way to look at is in terms of surface structure. How directly does it allow you to encode ideas concisely, so that if you change your mind about what you want, the corresponding change to the code is also easy, with little chance to introduce bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another way to look at it is in terms of control structure. When the language is executed (if it is) what is the order in which things happen, to accomplish what you want? Examples are: simple straight-through execution, recursion, backtrack, parallelism. One I (modest cough) discovered was &lt;a href=&quot;http://stackoverflow.com/questions/371898/how-does-differential-execution-work&quot;&gt;differential execution&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another useful viewpoint is that any time a data structure is designed, a language is born. Data is &quot;executed&quot; by the application programs that comb through it and do things, just as a program is just a bunch of data (like byte codes) that are used by an interpreter to do things.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-11-09T21:26:47.387" LastActivityDate="2010-11-09T21:26:47.387" CommentCount="4" />
  <row Id="18001" PostTypeId="2" ParentId="17887" CreationDate="2010-11-09T21:11:10.543" Score="1" ViewCount="" Body="&lt;p&gt;It really appears to depend on the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At Sun, they had program managers who were essentially interfaces between the technical teams and the bureaucracy.  One program manager would be assigned to several such teams and would make sure that, say, the required information is passed to the various architecture boards, open-source licensing policies are maintained, and they would convene regular status meetings of &quot;program teams&quot; that included the technical teams plus associated marketing and other folks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This usage is perhaps vaguely related to some of the other explanations given here, but you can see that it really depends.&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-11-09T21:11:10.543" />
  <row Id="18002" PostTypeId="2" ParentId="17009" CreationDate="2010-11-09T21:15:45.880" Score="1" ViewCount="" Body="&lt;p&gt;Heh, I could have written this post myself as it's exactly how I feel :) Be a developer at the same place for almost 5 years, which is the longest I've worked anywhere. On paper everything is good but I'm just.. bored of the place. I currently looking for lateral moves into other companies, but I'm wondering if what I really want is to pack up and go exploring.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-09T21:15:45.880" CommentCount="1" />
  <row Id="18003" PostTypeId="1" AcceptedAnswerId="18016" CreationDate="2010-11-09T21:16:20.810" Score="3" ViewCount="478" Body="&lt;p&gt;Today &lt;a href=&quot;http://developers.slashdot.org/story/10/11/09/0510258/Gosu-Programming-Language-Released-To-Public&quot; rel=&quot;nofollow&quot;&gt;Slashdot&lt;/a&gt; had a story about the newly released &lt;a href=&quot;http://gosu-lang.org/&quot; rel=&quot;nofollow&quot;&gt;Gosu Programming Language&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Gosu&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;is object oriented&lt;/li&gt;&#xA;&lt;li&gt;is statically typed&lt;/li&gt;&#xA;&lt;li&gt;is imperative&lt;/li&gt;&#xA;&lt;li&gt;is 100% compatible with Java&lt;/li&gt;&#xA;&lt;li&gt;features type inference&lt;/li&gt;&#xA;&lt;li&gt;supports closures&lt;/li&gt;&#xA;&lt;li&gt;provides simplified generics&lt;/li&gt;&#xA;&lt;li&gt;is being used in production by multi-billion dollar companies around the globe&lt;/li&gt;&#xA;&lt;li&gt;is provided via the Apache License v2.0&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In the same manner as &lt;a href=&quot;http://stackoverflow.com/questions/1712172/whats-your-take-on-the-programming-language-go&quot;&gt;What's your take on the programming language Go?&lt;/a&gt; is asked about Go, I ask:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What are your thoughts about The Gosu Programming Language?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There has been much talk about Oracle and Java recently, may Gosu be a good replacement for Java? How about Gosu+Dalvik instead of Oracles Java+JVM?&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-09T23:11:33.857" LastActivityDate="2010-11-11T20:39:59.333" Title="What are your thoughts about Gosu?" Tags="&lt;programming-languages&gt;" AnswerCount="6" CommentCount="5" FavoriteCount="2" />
  <row Id="18004" PostTypeId="2" ParentId="17976" CreationDate="2010-11-09T21:18:00.760" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Procedural: Assembly, Java, C#, F#, Lisp, Fortran.   &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Set based: SQL.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Pattern based: Perl, Regex, Snobol.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Tree based: XSLT.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Array based: APL.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-09T21:18:00.760" CommentCount="1" />
  <row Id="18005" PostTypeId="2" ParentId="17995" CreationDate="2010-11-09T21:19:50.937" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;protecting you intellectual property&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Most obfuscator also &lt;strong&gt;optimize your code&lt;/strong&gt;, remove unuseful metadata or not used code, compression, dead code elimination or duplicate elimination.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-09T21:19:50.937" />
  <row Id="18006" PostTypeId="2" ParentId="3558" CreationDate="2010-11-09T21:25:03.723" Score="1" ViewCount="" Body="&lt;p&gt;I'd question why are you trying to avoid the computer.  If it is because you are so frustrated that you want to chuck it out the window, then you may want to seek some professional help with either anger issues or career counseling, as each is a different way to solve this problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another way to see this is the maturity you've developed for the field.  Where initially one could see a new language as a shiny new toy to enjoy, you could see the pain of trying to do it and that prevents you from going there, possibly.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-09T21:25:03.723" />
  <row Id="18007" PostTypeId="2" ParentId="17984" CreationDate="2010-11-09T21:25:55.463" Score="2" ViewCount="" Body="&lt;p&gt;Walter Bright is both the creator of D, which does not include MI, and the only person ever to write an entire C++ compiler by himself.  According to him, the reason D lacks MI is that it's too hard to create a system of MI that's simultaneously efficient, simple and useful.  I suspect Java and C# use similar reasoning.  Languages like Perl and Python don't have efficiency as a primary goal, so they have a system that's simple and useful, but hard to implement efficiently.  C++ doesn't seem to have simplicity as a goal, so it created a massively complicated system that almost noone understands.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think Walter is right on target.  If there exists any language that has an MI system that satisfies all three of these criteria reasonably well, please leave a comment.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-09T21:25:55.463" CommentCount="1" />
  <row Id="18008" PostTypeId="2" ParentId="17788" CreationDate="2010-11-09T21:27:36.413" Score="0" ViewCount="" Body="&lt;p&gt;Since I do installations on multiple types of systems, everything from IBM mainframe to PCs, I first optimize for compatibility, then size, then speed.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-11-09T21:27:36.413" />
  <row Id="18009" PostTypeId="2" ParentId="17976" CreationDate="2010-11-09T21:31:59.223" Score="1" ViewCount="" Body="&lt;p&gt;I have to add that there are programming languages for specific applications. The one that comes to mind is APT (Automatic Programmed Tool) a language used in manufacturing for machine tools.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-11-09T21:31:59.223" CommentCount="3" />
  <row Id="18010" PostTypeId="2" ParentId="17788" CreationDate="2010-11-09T21:42:45.697" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It Depends&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are working on a real-time embedded video processing system then you optimize for processing speed.  If you are working on a word processor you optimize for development time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, in all cases your code must work and it must be maintainable.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-11-09T21:42:45.697" />
  <row Id="18011" PostTypeId="1" AcceptedAnswerId="18088" CreationDate="2010-11-09T21:57:00.453" Score="4" ViewCount="132" Body="&lt;p&gt;Has anyone read all &lt;a href=&quot;http://www.amazon.com/Mary-Poppendieck/e/B001IGNU3O/&quot; rel=&quot;nofollow&quot;&gt;three of Mary Poppendieck's books on Lean Software Development?&lt;/a&gt;  She and her husband Tom wrote:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;in 2003: Lean Software Development&lt;/li&gt;&#xA;&lt;li&gt;in 2006: Implementing Lean Software Development&lt;/li&gt;&#xA;&lt;li&gt;in 2009: Leading Lean Software Development&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Mary and Tom Poppendieck are highly regarded &lt;em&gt;lean&lt;/em&gt; experts, so I should have probably read one of their books, but I haven't read any of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which one should I start with?&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-10T11:06:06.410" Title="Mary Poppendieck's Books on Lean Software Development: Which One Can You Recommend?" Tags="&lt;books&gt;&lt;lean&gt;" AnswerCount="3" />
  <row Id="18012" PostTypeId="2" ParentId="18011" CreationDate="2010-11-09T22:00:21.713" Score="2" ViewCount="" Body="&lt;p&gt;I read the first two, and I must say these are the most influencal book on the subject (agile) I've ever read. And I read almost everything that has been written on the subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Buy and read them!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start with the first one.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-09T22:00:21.713" />
  <row Id="18013" PostTypeId="2" ParentId="18011" CreationDate="2010-11-09T22:05:59.873" Score="2" ViewCount="" Body="&lt;p&gt;I have all three and I find them complimentary so it's hard to say which one. If I had to pick a single one though then I'd go for the most recent. It covers pretty much all of the material in the first two but goes into more detail in how to implement lean methodology in practice.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-09T22:05:59.873" />
  <row Id="18014" PostTypeId="2" ParentId="17887" CreationDate="2010-11-09T22:12:31.320" Score="0" ViewCount="" Body="&lt;p&gt;The way I've seen it done ( may be fairly common in aerospace.. might be just my experience)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Program manager manages the program&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A program has projects. (Often for specific customers)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the program manager has to take a longer term view, guide things to be more strategic.&#xA;&quot;We're going to need that later&quot;. &quot;Can't cut that corner&quot;. &quot;Have to ship today, project must dovetail with other project that hasn't been announced to rest of company yet&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The project manager worries about THIS project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen the Program manager as basically the Project manager's boss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It REALLY helps if they don't fight.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-11-09T22:12:31.320" />
  <row Id="18015" PostTypeId="2" ParentId="17898" CreationDate="2010-11-09T22:14:41.880" Score="4" ViewCount="" Body="&lt;p&gt;Get some little blocks of wood.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;add metal hooks to one end, and metal eyes to the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;you can now do a linked list in stuff you can play with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try explaining with this physical prop. I often wished I had this when teaching pointers to first year ( freshmen) students.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The little metal hook is the pointer, the block of wood the thing pointed to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I DEFY anyone to not get it after playing with the blocks.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastEditorUserId="4623" LastEditorDisplayName="" LastEditDate="2010-11-11T22:45:19.820" LastActivityDate="2010-11-11T22:45:19.820" CommunityOwnedDate="2010-12-02T00:15:36.130" />
  <row Id="18016" PostTypeId="2" ParentId="18003" CreationDate="2010-11-09T22:20:30.987" Score="8" ViewCount="" Body="&lt;p&gt;I may be getting cynical, but my first thought was &quot;Who needs another language?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Languages with bullet points of moderately interesting features proliferate, because so many people find designing programming languages fun.  In this case, I don't see anything all that new, and nothing whatsoever about parallel execution or anything else that could become a killer feature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's two reasons I'd learn a language.  One is to work with it, and that generally means already available languages like C++, Perl, Common Lisp, and Java.  Languages with some stability and some built-up libraries and tools.  Another is to learn new things, which is why I'm currently learning Haskell.  Languages that are different, with new concepts and new ways of thinking.  This looks like neither.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-09T22:20:30.987" CommentCount="2" />
  <row Id="18017" PostTypeId="2" ParentId="17971" CreationDate="2010-11-09T22:21:36.820" Score="4" ViewCount="" Body="&lt;p&gt;The database connection pool is limited in size, and if it fills up, new connections will wait for old connections to be released. If you don't dispose them as soon as you're finished with them, they'll &lt;em&gt;eventually&lt;/em&gt; get released when the finaliser runs, but that's an indeterminate amount of time in the future... So at best, you're going to see long delays when opening new connections.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At worst, they might've disabled the connection pool. Perhaps they discovered that after a while their app was returning &quot;timeout waiting for connection&quot; errors and disabling the connection pool &quot;solved&quot; that problem. However, this is &lt;strong&gt;much worse&lt;/strong&gt; because it means you're creating a &lt;em&gt;whole new&lt;/em&gt; connection every time - which is surprisingly resource intensive. If you've got hundreds of connections to the database open, it would be no wonder you're seeing performance problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The correct way to solve all of these problems is to dispose of your connection as soon as you're finished with it. The best idea is to hold the connection open for exactly as long as needed, and no longer.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-11-09T22:21:36.820" />
  <row Id="18018" PostTypeId="2" ParentId="17898" CreationDate="2010-11-09T22:24:50.660" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Given the code :&lt;/strong&gt;   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;int v=42;&lt;/code&gt; // declaring and initializing a simple variable&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;int *p = &amp;amp;v;&lt;/code&gt; // creating a point p to the variable v&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Following can be said about the above code:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;code&gt;int * p&lt;/code&gt;&lt;/strong&gt;   // &quot;int pointer p&quot;  ... this is how you declare a pointer to variable of type int   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;code&gt;*p&lt;/code&gt;&lt;/strong&gt;       //   &quot;pointed to by p&quot;  ... that is the data that p points to, its same as v. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;code&gt;&amp;amp;v&lt;/code&gt;&lt;/strong&gt;      //   &quot;address of  the variable v&quot; ... this represents the literal value for p&lt;/p&gt;&#xA;" OwnerUserId="6727" LastEditorUserId="6727" LastEditorDisplayName="" LastEditDate="2010-11-09T22:50:20.370" LastActivityDate="2010-11-09T22:50:20.370" CommunityOwnedDate="2010-12-02T00:15:36.130" />
  <row Id="18019" PostTypeId="2" ParentId="3558" CreationDate="2010-11-09T22:32:04.310" Score="0" ViewCount="" Body="&lt;p&gt;I would be concerned about that, especially at your age. I'm thankful that I still find programming fun, because it's about the only thing I know how to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some things I've found that help:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Find a way to use your skill for something outside work. I made a small app, based on C++ and MySQL, to help run charity auctions. Then I get to help run the auctions and sweat through a night of fund-raising, hoping I got rid of the bugs. Great fun!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Get a book or two on something interesting. For me, it was things like theorem proving, quantum computers, machine language, vision, and learning. Then try to write little programs to try them out. The smaller the better.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Learn some math. I had to go back and limber-up my skills with differential equations, calculus, linear algebra, and bayesian statistics. For everything, I write a little program to help me understand what I'm doing.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I hope you continue to find programming fun, but if it's not, I hope you find out what &lt;em&gt;is&lt;/em&gt; fun for you.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-11-09T22:32:04.310" />
  <row Id="18020" PostTypeId="2" ParentId="17984" CreationDate="2010-11-09T22:38:40.407" Score="0" ViewCount="" Body="&lt;p&gt;Because the language designers apparently wanted to produce a better C++, not a better language in general.  (How successful they were can be debated.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++-style multiple inheritance has some problems, and so people deriving from C++ generally omitted it (Java, C#, D).  Other languages, Eiffel and Common Lisp to name two, do it differently and don't seem to have the same problems.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-09T22:38:40.407" />
  <row Id="18021" PostTypeId="2" ParentId="18003" CreationDate="2010-11-09T22:57:11.603" Score="4" ViewCount="" Body="&lt;p&gt;Another language, what else ?&lt;/p&gt;&#xA;" OwnerUserId="6727" LastActivityDate="2010-11-09T22:57:11.603" CommentCount="1" />
  <row Id="18022" PostTypeId="2" ParentId="18003" CreationDate="2010-11-09T23:11:36.367" Score="1" ViewCount="" Body="&lt;p&gt;I don't have any particular experience with Java, but looking at their &lt;a href=&quot;http://gosu-lang.org/doc/wwhelp/wwhimpl/js/html/wwhelp.htm#href=Gosu%20Reference%20Guide/intro.03.17.html&quot; rel=&quot;nofollow&quot;&gt;Notable Differences Between Gosu and Java&lt;/a&gt; page, quite a lot of the differences seem to be features taken from C# - type inference, unary operators, &quot;&lt;code&gt;as&lt;/code&gt;&quot; type coercion, extension methods, native SOAP webservice support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One wonders why you wouldn't just use C# if you wanted these features, and at least be confident that you can hire people to work on your codebase, rather than needing to teach them your obscure language of choice.&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-11-09T23:11:36.367" CommentCount="4" />
  <row Id="18023" PostTypeId="2" ParentId="6014" CreationDate="2010-11-09T23:49:53.840" Score="0" ViewCount="" Body="&lt;p&gt;First, LINQ and JQuery are apples and oranges. I know people are using JQuery for trivial things, but if the library is already being used for other less trivial things then why not?&lt;br /&gt;&lt;br /&gt;&#xA;LINQ is a whole other story. People don't just use LINQ like they do with JQuery, especially lambda syntax. Expression syntax is much easier, but you still need to know what's going on and I haven't seen any &quot;incompetents&quot; using it.&lt;br /&gt;&lt;br /&gt;&#xA;I don't think there's a problem...&lt;/p&gt;&#xA;" OwnerUserId="7038" LastActivityDate="2010-11-09T23:49:53.840" CommentCount="2" />
  <row Id="18024" PostTypeId="2" ParentId="17929" CreationDate="2010-11-10T00:16:15.537" Score="8" ViewCount="" Body="&lt;p&gt;As someone who's dealt with both (more desktop than web though): by far my biggest gripe is the sense of &quot;general clunkiness&quot; in web development. Even with the very best tools and frameworks, the abstractions are still very leaky and you're constantly dealing with the fact that you're running over a stateless protocol.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another related annoyance is the mix of technologies that's used to implement web apps. There is no nice, monolithic, modular environment and language that everything can be done in. Even relatively simple web apps require you to code things in a handful of separate programming, scripting, and markup languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So as a general answer: &lt;strong&gt;YES&lt;/strong&gt;, it really is that bad. At least if you're coming from a traditional desktop background where you're used to coding things in a clean, seamless environment, using a technology and platform where everything is quite linear and well defined. The best way is to just not try to think of it as the same field. If you keep subconsciously expecting web development to be &quot;like desktop development&quot;, it'll always look very obnoxious and annoying.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastEditorUserId="5064" LastEditorDisplayName="" LastEditDate="2010-11-10T00:26:05.167" LastActivityDate="2010-11-10T00:26:05.167" CommentCount="2" />
  <row Id="18025" PostTypeId="1" CreationDate="2010-11-10T00:34:51.430" Score="8" ViewCount="475" Body="&lt;p&gt;&lt;em&gt;Disclaimer (if appropriate): I'm still new to the whole stackexchange/stackoverflow stuff, and asked first on stackoverflow but got redirected here so hopefully this time it'll be posted correct :)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started out with programming about two months ago I think now, and I'm fooling around in either C# or Clojure (I have serious decision-problems). Anyways; I'm from Norway, and we use a different kind of keyboard layout than the English-speaking countries. I don't know how for example Germany or Frances' keyboard-layouts are compared to ours, but it really is a pain to code in (&lt;a href=&quot;http://en.wikipedia.org/wiki/Keyboard_layout#Norwegian&quot; rel=&quot;nofollow&quot;&gt;Norwegian QWERTY-layout&lt;/a&gt; for those interested).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyways; reaching for the (), [] and {} really makes my fingers hurt because I have to stretch my fingers really. Also, although this is minor it still makes me quirk, the &amp;lt;&gt; is also painful to reach for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I was wondering if anyone have any tips on the layout to use? Is reaching for (), [] and {} much better on the English QWERTY-layout or is it nearly the same? And lastly; is DVORAK actually a good layout for programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance :)&lt;/p&gt;&#xA;" OwnerUserId="7382" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:08:50.053" LastActivityDate="2010-11-16T15:08:50.053" Title="Keyboard layouts for programming" Tags="&lt;keyboard&gt;&lt;keyboard-layout&gt;" AnswerCount="8" FavoriteCount="2" />
  <row Id="18026" PostTypeId="1" AcceptedAnswerId="18052" CreationDate="2010-11-10T00:52:09.423" Score="3" ViewCount="153" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm working with a web company that's approaching a point where it will likely need re-think the product as a V2 - due to outgrowing some of its V1 foundations and principles that have been built into virtually everything, from the data model to the user interfaces. For various reasons, this evolution might involve a migration from CakePHP (with which the V1 has been built) to Symfony or Zend.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to ask for some experienced views on how people might have managed a transition like this for a website that has significant traffic and generates revenue. I don't want to open up a discussion on the pro's &amp;amp; con's of different PHP frameworks, or why this migration might be needed. Rather, I would be very interested in hearing whether there are some practical alternatives to essentially building a V2 from scratch alongside the V1 for a couple of months - and locking up precious coding time for the duration of this intense period. An example of such an alternative might be migrating an app in parts over a longer period of time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd be grateful for any views from people who might have managed or been involved in such transitions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance.&lt;/p&gt;&#xA;" OwnerUserId="7384" LastActivityDate="2010-11-10T04:57:15.790" Title="Migrating from one PHP framework to another" Tags="&lt;php&gt;&lt;frameworks&gt;&lt;migration&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="18027" PostTypeId="2" ParentId="6633" CreationDate="2010-11-10T00:55:51.510" Score="2" ViewCount="" Body="&lt;p&gt;If you develop OSS with a strong copyleft licence (GPL or AGPL), you can then &lt;strong&gt;charge for exceptions&lt;/strong&gt; to that licence, allowing people to include your code in their proprietary products. If you use a more permissive license (X11, Apache, MPL), they can include your code in their product anyway, so you have nothing to sell them.&lt;/p&gt;&#xA;" OwnerUserId="2406" LastActivityDate="2010-11-10T00:55:51.510" CommentCount="5" />
  <row Id="18028" PostTypeId="2" ParentId="18025" CreationDate="2010-11-10T01:03:10.190" Score="2" ViewCount="" Body="&lt;p&gt;If you can handle it Dvorak rocks. The issue comes when using Qwerty based tools (like VIM) and when working on other machines. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I figure if I give myself a solid month of Dvorak I could make the switch pretty easily. I'm a touch typist already, but I fear the by moving it will (a) limit me in VIM without custom mappings and (b) limit how I interact outside of the little box I've created. It's great when I'm sitting at my workstation or on my personal computer, but move outside that and your typing skills will suffer. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-10T01:03:10.190" CommentCount="1" />
  <row Id="18029" PostTypeId="1" AcceptedAnswerId="18041" CreationDate="2010-11-10T01:43:49.390" Score="14" ViewCount="365" Body="&lt;p&gt;I have recently started a job that has me working on an existing system. It requires tweaks and updates as well as new code. I have done several maintainance/feature adding projects now, and several of them have ended up being significantly different from what was actually requested. So, I had to program the item several times to get it to where the requester wanted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I don't mind reprogramming the feature if that's what needs to be done. However, I would like to decrease turnaround time on my projects. The bottleneck seems to be in the requester's perception of what needs to be done. Do you have any ideas on what I could do to figure out what the requester needs more quickly?&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-10T15:52:36.887" Title="Working with clients who don't know what they want" Tags="&lt;productivity&gt;&lt;client&gt;" AnswerCount="6" CommentCount="6" FavoriteCount="5" />
  <row Id="18030" PostTypeId="2" ParentId="4587" CreationDate="2010-11-10T01:46:09.483" Score="1" ViewCount="" Body="&lt;p&gt;In my opinion there is one ethical issue relevant to any computer work that you could find.&#xA;&lt;br/&gt;&#xA;I would label it the ethics &lt;em&gt;of&lt;/em&gt; computing.&#xA;&lt;br/&gt;&#xA;In a world with so many problems, I believe that it has become incredibly important when programming, to ask yourself: &quot;will this program help someone?&quot; &quot;will this program solve an important problem?&quot; &quot;Is it worth the electricity, plastic, time and energy that will go into its creation and use?&quot;&lt;/p&gt;&#xA;" OwnerUserId="6523" LastActivityDate="2010-11-10T01:46:09.483" CommunityOwnedDate="2011-01-07T00:56:11.870" />
  <row Id="18031" PostTypeId="2" ParentId="18025" CreationDate="2010-11-10T01:51:17.743" Score="5" ViewCount="" Body="&lt;p&gt;You should never stretch for keys, move your hand!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Typing []{}()&amp;lt;&gt; is a bit of a pain. But you get used to it. The advantage of US Layout is that you have the modifier keys on both sides, so there is less temptation to try to use one hand to pull off a combo, though I still have to tell myself off for ctrl-c, ctrl-v every so often.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You probably don't need this, but use 2 hands, one on the modifier key one on the other keys. IE, for [ (Alt Gr, 8) either left hand or right hand on the Alt Gr, which ever you find easiest. Takes longer, but no pain.&lt;/p&gt;&#xA;" OwnerUserId="5682" LastActivityDate="2010-11-10T01:51:17.743" CommentCount="1" />
  <row Id="18032" PostTypeId="2" ParentId="18025" CreationDate="2010-11-10T02:02:42.750" Score="4" ViewCount="" Body="&lt;p&gt;As a heavy emacs user (or Eclipse with emacs bindings), I always remap the capslock key to be the control key on any new machine. This helps my pinky finger noticeably. It's a habit I picked up from Sun keyboards. The capslock key is in such a prime position, but that valuable real estate gets wasted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To remap keys on Windows I use SharpKeys. I used to swap capslock and control, but to make my computer more friendly to other users I got rid of capslock completely, having two different ways to access control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If these keys are a problem, you should consider remapping your keyboard. Also, be mindful that you should slow down as you type, to prevent injury to your hands. Just use whatever seems to work.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-10T02:02:42.750" CommentCount="2" />
  <row Id="18034" PostTypeId="1" CreationDate="2010-11-10T02:05:12.703" Score="0" ViewCount="788" Body="&lt;p&gt;They put the tabs to the right of the address bar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://cl.ly/39fdad05abd555a828fa/content&quot; /&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I saw this and was like, what the heck? This has to be a joke right? That's way too small of a space! I had to download a FF extension that actually adds 2 more tab rows so that I can see all my abs, and I refuse to use other browsers simply because of this. That, and I like the close tab button a consistent place (on the far right). So this... monster... it looks cute, but yikes. No way to give it its own row either AFAIK.&lt;/p&gt;&#xA;" OwnerUserId="7390" LastActivityDate="2010-11-10T13:45:05.343" ClosedDate="2010-11-10T04:32:11.877" Title="What's up with the tab bar in IE9?" Tags="&lt;internet-explorer&gt;" AnswerCount="3" CommentCount="5" />
  <row Id="18035" PostTypeId="2" ParentId="18029" CreationDate="2010-11-10T02:07:02.263" Score="3" ViewCount="" Body="&lt;p&gt;I feel your pain....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The bad news is: depending on exactly what kind of clients you're dealing with, this might be business as usual.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A common general problem is basically that &lt;strong&gt;clients don't know what they want&lt;/strong&gt;. They usually know what they want to be achieved, in terms of a business goal, but they often have no idea how it should look in terms of the software solution. So in many cases you'll find yourself in this iterative cycle where a project bounces back and forth for five times as long as the initial estimate was, because the client keeps changing their mind and wants the solution tweaked and re-tweaked. And yes, it's not unusual for the final result to be morphed into something entirely different to what the initial goal looked like.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had an epic example of this happen a couple of years ago - a project that initially took 10 weeks to code turned into a 15 month re-iteration grind. In that case, it was mainly because different managers and departments at the client company wanted different things, so they kept sending the work back, to be tweaked and re-tweaked (our software is subscription based and this was a major client, so this was no financial skin off our back - just a big technical annoyance really).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So basically my advice is this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this is the way your particular industry and these clients are (that's a big IF), then just get used to it. Think of it as being an Agile, maintenance-oriented job (this is how my current gig is, more or less). :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this &lt;strong&gt;isn't&lt;/strong&gt; the way things are meant to be done, and you are catching blame for the long turnarounds, then speak up to your bosses. Explain to them that there are communication problems and that the specifications that are coming through to you from the clients are not clear enough for you to implement the desired solution. You don't want to find yourself in the situation where you're catching blame for not giving the clients what they want, if you're not getting all the required information to give them what they want.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-10T02:07:02.263" CommentCount="1" />
  <row Id="18037" PostTypeId="2" ParentId="17929" CreationDate="2010-11-10T02:31:39.177" Score="-2" ViewCount="" Body="&lt;p&gt;The problem with desktop applications is that the toolset isn't stable, so apps keep getting rewritten to use the latest products and features (usually via Visual Studio, due to its market share).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can lay down your MySQL and PHP skills for several months - maybe a couple years - and when you come back to it you aren't compelled to buy a new workstation and upgrade the OS just to be able to start learning the current mainstream &quot;best practices&quot; (as determined by the vendors.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course you can still get into the same churn if you pay too much heed to Adobe/Oracle/Microsoft/IBM/Accenture. They've got their monthly numbers to meet.&lt;/p&gt;&#xA;" OwnerUserId="7395" LastActivityDate="2010-11-10T02:31:39.177" CommentCount="7" />
  <row Id="18038" PostTypeId="2" ParentId="17898" CreationDate="2010-11-10T02:31:39.223" Score="0" ViewCount="" Body="&lt;p&gt;A pointer is like a signpost. It tells you where something is.&lt;/p&gt;&#xA;" OwnerUserId="7394" LastActivityDate="2010-11-10T02:31:39.223" CommunityOwnedDate="2010-12-02T00:15:36.130" CommentCount="2" />
  <row Id="18039" PostTypeId="2" ParentId="18029" CreationDate="2010-11-10T02:37:28.393" Score="1" ViewCount="" Body="&lt;p&gt;Lots, and lots of similar stories can &lt;a href=&quot;http://clientsfromhell.net/&quot; rel=&quot;nofollow&quot;&gt;be found here&lt;/a&gt;. I have never, even working as a subcontractor for another development company, found a client that knew exactly what they wanted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm happy enough to work with someone who has a really good idea of what they DON'T want, or want to avoid. I can usually work from there to something that they are happy with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My experience is mostly in application / platform development, though. Thankfully, I rarely have to deal with issues of aesthetics like web designers do. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-10T02:37:28.393" />
  <row Id="18040" PostTypeId="2" ParentId="18034" CreationDate="2010-11-10T02:46:06.683" Score="0" ViewCount="" Body="&lt;p&gt;All I've got to say is that it beats the weirdness that was Safari 4 Beta's &quot;Tabs on the Top&quot; thing. &lt;img src=&quot;http://i.imgur.com/2cUsv.jpg&quot; alt=&quot;Safari 4&quot;&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't used it yet because I haven't booted up my Win7 VM in a few months.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tabbed environments (from MDI to SDI) are really relatively new (2000's) or at least reinvented GUI feature and with Chrome pushing minimalism like crazy and Safari bending the rules of where tabs should be this seems like a natural implosion of a methaphor.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2010-11-10T13:45:05.343" LastActivityDate="2010-11-10T13:45:05.343" CommentCount="6" />
  <row Id="18041" PostTypeId="2" ParentId="18029" CreationDate="2010-11-10T02:53:15.700" Score="15" ViewCount="" Body="&lt;p&gt;A few points of advice:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Listen to problems, Not Solutions&lt;/strong&gt;. A lot of clients like to tell you how to solve their problems. Don't listen to them. You're the programmer, and it is your job to find solutions to problems. Instead listen to what problems clients are having, and figure out the best way to solve it. as others have said, clients don't really know what they want, sometimes you have to show it to them first.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ask Questions&lt;/strong&gt;. When you are done asking questions, ask some more. Clients are rarely forthcoming with details, as they don't really think about it. The only way you are going to get the information you need is to pry it out of them.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Get Things in Writing&lt;/strong&gt; Depending on the situation with the client, this can be really important later when they start complaining about how what you delivered &quot;isn't what they asked for&quot;. and if nothing else, writing out detailed specifications can help you make sure you have all of the information you need, and help clear up ambiguities between you and the client. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Communication is key&lt;/strong&gt; . don't just talk to the client, get info, knock out some code and not talk to them until it's done. Always keep in touch with the client. Ask questions throughout the process. show them the progress you've made and get feedback. It'll make everyone's life easier in the long run.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-11-10T02:53:15.700" CommentCount="6" />
  <row Id="18042" PostTypeId="2" ParentId="1237" CreationDate="2010-11-10T02:56:25.137" Score="2" ViewCount="" Body="&lt;p&gt;The way you start your day usually sets the tone for the rest of the day. I don't like starting my day reading emails and such. just do &lt;strong&gt;Something&lt;/strong&gt; productive for the first 15-20 minutes of your day. write 1 function, even if it isn't great. fix a small bug. do a little bit of refactoring. Anything, just as long as you can accomplish some tiny milestone. after you've done that, it makes tackling the larger challenges of the day a lot easier.&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-11-10T02:56:25.137" />
  <row Id="18043" PostTypeId="2" ParentId="18026" CreationDate="2010-11-10T03:02:07.183" Score="4" ViewCount="" Body="&lt;p&gt;Learn the new framework very well first, and make sure it is going to meet your needs, and that you really grok the paradigms of the new framework.  You are going to have to throw out a lot of code, and that's ok. The important thing is that you are using the new framework the way it was meant to be used, taking full advantage of it's features, and not being tied into ways of thinking from your old framework. Don't try to use Zend &quot;the CakePHP way&quot;*&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, when I moved to using MVC framework from previous non-MVC ones, I didn't really get how models, views, and controllers were supposed to work, and I wrote some terrible looking code because I didn't understand the new way of doing things. You'd be better off sticking with an inferior old framework than having a poorly written app on a better framework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*I'm not familiar with either, so I don't know how similar/comparable they are.&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-11-10T03:02:07.183" CommentCount="4" />
  <row Id="18044" PostTypeId="2" ParentId="18025" CreationDate="2010-11-10T03:04:04.780" Score="1" ViewCount="" Body="&lt;p&gt;Not really a new keyboard layout, but one of the first things I do when getting a new box is to map the caps lock key to escape. makes emacs commands a lot easier, and caps lock is really unnecessary.&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-11-10T03:04:04.780" CommentCount="1" />
  <row Id="18046" PostTypeId="2" ParentId="18034" CreationDate="2010-11-10T03:43:09.210" Score="3" ViewCount="" Body="&lt;p&gt;The answer can be found by listening to a &lt;a href=&quot;http://www.dotnetrocks.com/default.aspx?showNum=601&quot; rel=&quot;nofollow&quot;&gt;recent episode of .NET Rocks!&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reasoning behind this is that &lt;strong&gt;80% (most) of the IE users typically have only one or two windows open.&lt;/strong&gt;  Now, most of us (programmers) have ridiculous amounts of windows open at once, but the vast majority of the overall IE user base only uses one or two tabs.  For this reason, the decision was made to put the tabs on the same line as the address bar, to save space for most users.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-11-10T03:51:18.283" LastActivityDate="2010-11-10T03:51:18.283" CommentCount="1" />
  <row Id="18047" PostTypeId="2" ParentId="18029" CreationDate="2010-11-10T03:46:10.040" Score="3" ViewCount="" Body="&lt;p&gt;Pretty much any self-help book you pick up on communication is going to give you some variation of this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Seek first to understand, then to be understood&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That comes from the 7 habits book, but they're all some variation of the &quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Active_listening&quot; rel=&quot;nofollow&quot;&gt;active listening&lt;/a&gt;&quot; method.  The goal is not just to understand, but to communicate back to them that you understood.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once I think I have a good idea of what they &lt;em&gt;need&lt;/em&gt; (stay away from what they &lt;em&gt;want&lt;/em&gt; particularly if they start describing implementation details - that's your job not theirs), I give them examples of stories of various people using the system, and see if that jives with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I implement that, fully expecting that once they see the feature, they'll actually realize that's not exactly what they want.  Keep everything flexible.  The only constant is change.  I usually get most of the rough edges worked out after the second quick update after the initial one, but I always find I'm asymptotically approaching some ideal that I can never reach.  Eventually you need to let the unimportant things go and move on to higher value targets.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-11-10T03:46:10.040" />
  <row Id="18048" PostTypeId="2" ParentId="18034" CreationDate="2010-11-10T03:54:38.593" Score="0" ViewCount="" Body="&lt;p&gt;Also with what Ryan said, they are looking to decrease the amount of vertical space the toolbar takes up. They could remove the title bar the way Chrome does but I think are reluctant to make the UI too non standard so went for this option.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-10T03:54:38.593" />
  <row Id="18049" PostTypeId="2" ParentId="18029" CreationDate="2010-11-10T04:05:22.933" Score="2" ViewCount="" Body="&lt;p&gt;First of all, you should accept the fact that clients don't really know what they're looking for until they see it. They might tell you right now that they need feature X. Show them feature X then they'll realize that what they really need is feature Y or another variation of feature X.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good way to figure out what the customer really wants more quickly is by embracing and following the &lt;a href=&quot;http://agilemanifesto.org/&quot; rel=&quot;nofollow&quot;&gt;Agile Manifesto&lt;/a&gt;, which focuses on communication and customer collaboration. Divide the development cycle into iterations and show the client a prototype of the feature every end of the iteration. That way, you'll get immediate feedback and change it, according to the feedback from the client, without having to invest too much resource on the feature. That way, both you and the client will be happy with the outcome of the product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm pretty sure the transition will be hard for your team or your company but it's one the best ways to cope with quickly changing requirements.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-11-10T04:05:22.933" CommentCount="1" />
  <row Id="18050" PostTypeId="2" ParentId="1237" CreationDate="2010-11-10T04:19:18.087" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000339.html&quot; rel=&quot;nofollow&quot;&gt;Joel&lt;/a&gt; has the same problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have to force myself to start. Opening the IDE and issue tracker is the only way I can get started in the morning.&lt;/p&gt;&#xA;" OwnerUserId="5682" LastActivityDate="2010-11-10T04:19:18.087" CommentCount="1" />
  <row Id="18051" PostTypeId="2" ParentId="18026" CreationDate="2010-11-10T04:49:57.673" Score="3" ViewCount="" Body="&lt;p&gt;The first thing to consider is that &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000069.html&quot; rel=&quot;nofollow&quot;&gt;rewriting a product from scratch is something you should never do&lt;/a&gt;. This is &lt;em&gt;particularly&lt;/em&gt; true when the current version is already making you money. Basically, you're going to spend 6 months of time, just to get back to where you were 6 months ago. Only now, you've got more bugs (or at least, &lt;em&gt;different&lt;/em&gt; bugs), re-introduced bugs that had already been fixed in the old code, and you're six months behind where you &lt;em&gt;could've&lt;/em&gt; been at, had you been adding features to the old codebase.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;CakePHP, Zend and Symphony are largely the same (i.e. they're all MVC-style frameworks on top of PHP), so I'm not sure what advantage you'd have moving from one to the other. There's certainly differences in feature set, but are they really worth setting yourself back all that time? For the amount of time you'd spend re-writing from scratch in Zend or whatever, could you spend the same amount of time adding the required features to Cake?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion, you'd be better off slowly refactoring your existing code over time, rather than starting completely from scratch with a new framework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, this is just my opinion. I know it's tempting to drop existing (ugly, old) code and start from scratch, but for established products that are already working, there is usually little to gain and a whole lot to lose.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-11-10T04:49:57.673" CommentCount="2" />
  <row Id="18052" PostTypeId="2" ParentId="18026" CreationDate="2010-11-10T04:57:15.790" Score="1" ViewCount="" Body="&lt;p&gt;If this is a commercial application that's your company's business, you may be better off going without a 3rd party framework entirely.  Then when time for v3 comes around, you wont be facing this same problem again.  And you'll never be in a situation where you have to keep adjusting your code in response to updates to the framework.  Frameworks are great for getting things up and running quickly, but if this is something a) core to your business and b) maintained over the long term, the value of the framework diminishes. &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-10T04:57:15.790" CommentCount="1" />
  <row Id="18054" PostTypeId="2" ParentId="17898" CreationDate="2010-11-10T05:23:38.213" Score="2" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Pointer can be thought of as a generalization of an index into an array.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Consider that a big array can be chopped off into a number of smaller, non-overlapping, variable-sized arrays. Now, these smaller arrays are what we usually think of as array. The bigger one is then the computer's entire memory space. The process of chopping off smaller arrays is called memory allocation.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;A set of structures which are linked together by some pointers can be thought of as a &lt;a href=&quot;http://en.wikipedia.org/wiki/Directed_graph&quot; rel=&quot;nofollow&quot;&gt;directed graph&lt;/a&gt;. &#xA;&lt;ul&gt;&#xA;&lt;li&gt;Each vertex is a variable which can hold some value. &lt;/li&gt;&#xA;&lt;li&gt;Some variables are pointers, and each pointer can have exactly one outgoing edge into something else.&lt;/li&gt;&#xA;&lt;li&gt;Variables which are not pointers will not have any outgoing edge. They could have any number of incoming edge.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-11-10T05:23:38.213" CommunityOwnedDate="2010-12-02T00:15:36.130" />
  <row Id="18055" PostTypeId="1" AcceptedAnswerId="18056" CreationDate="2010-11-10T05:25:10.370" Score="8" ViewCount="101" Body="&lt;p&gt;I feared programs that require installation a lot. They leave traces behind the registry even after un-installation, plus, some uninstallers are poorly-programmed (that means, some programs cannot be uninstalled).&#xA;That applies to Windows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The good side of installers, they create shortcuts and file associations. However, the Komodo on Linux uses a shell script to setup and can be safely uninstalled by deleting the folder.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you think installers should be all abolished? Do you think the effect of installations should be replaced by shell scripts?&#xA;Do you think all computer games should be portable?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should the &quot;scan the /Applications/${AppName}/Information folder and list app icons&quot; design should be used for future desktop environments?&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-11-10T08:14:01.367" Title="Installer or Portable" Tags="&lt;installer&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="18056" PostTypeId="2" ParentId="18055" CreationDate="2010-11-10T05:36:02.670" Score="8" ViewCount="" Body="&lt;p&gt;It depends on your target audience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a programmer or a power user, I like my software to be inside a compressed file for portability and to be able to just delete the software without having to worry about it leaving any traces in the registry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a regular person (mostly applies to regular Windows users), however, I just want to click setup.exe and have it install itself for me. I don't want to have to bother looking at a README file or following some other form of instruction just to install the software that I want. Don't make me click any more than I could handle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should consider who you're making the software for first before deciding whether to make an installer or not.&lt;/p&gt;&#xA;" OwnerUserId="500" LastEditorUserId="500" LastEditorDisplayName="" LastEditDate="2010-11-10T05:41:17.347" LastActivityDate="2010-11-10T05:41:17.347" CommentCount="3" />
  <row Id="18057" PostTypeId="2" ParentId="18025" CreationDate="2010-11-10T05:53:31.743" Score="2" ViewCount="" Body="&lt;p&gt;You could try the &lt;a href=&quot;http://en.wikipedia.org/wiki/Keyboard_layout#United_Kingdom&quot; rel=&quot;nofollow&quot;&gt;UK layout&lt;/a&gt;. The advantage being that all the basic keys (letters and numbers) are in the same place as your Norwegian layout, and the &lt;code&gt;{} [] @&lt;/code&gt; keys are much more accessible . Probably the hardest thing to get used to will be different place for &lt;code&gt;; :&lt;/code&gt; and also &lt;code&gt;- _ + ? '&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(For the record, I use French layout for typing French, but always  UK for programming)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="4285" LastActivityDate="2010-11-10T05:53:31.743" />
  <row Id="18058" PostTypeId="2" ParentId="18055" CreationDate="2010-11-10T05:58:52.517" Score="1" ViewCount="" Body="&lt;p&gt;I prefer applications that have both. I think at their best, a software installer is basically a slightly glorified self extracting zip, but that can do stuff like add start menu items and whatnot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I have admin access, I much prefer to mindlessly double click the installer and let it do the grunt work for me, unzipping it, making a program files folder, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, sometimes I don't have admin access or I want to run something from a remote machine because again I am too lazy to cop it to myself, then having it self contained saves me that labor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Distributing both the installer and a zip file of the files I think is the way to go.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-11-10T05:58:52.517" />
  <row Id="18059" PostTypeId="1" CreationDate="2010-11-10T06:03:21.857" Score="21" ViewCount="815" Body="&lt;p&gt;&lt;em&gt;(This question was inspired by the most-voted answer &lt;a href=&quot;http://programmers.stackexchange.com/questions/4587/what-ethical-problems-realistically-arise-in-programming/4676#4676&quot;&gt;here&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you go about explaining refactoring (and technical debt) to a non-technical person (typically a PHB or customer)? (&quot;What, it's going to cost me a month of your work with &lt;em&gt;no visible difference&lt;/em&gt;?!&quot;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt; Thanks for all the answers so far, I think this list will provide several useful analogies to which we can point the appropriate people (though editing out references to PHBs may be wise!)&lt;/p&gt;&#xA;" OwnerUserId="4285" LastEditorUserId="4285" LastEditorDisplayName="" LastEditDate="2010-11-11T06:02:45.260" LastActivityDate="2011-03-15T06:24:13.740" CommunityOwnedDate="2011-03-15T06:24:13.740" Title="How do you explain refactoring to a non-technical person?" Tags="&lt;communication&gt;&lt;refactoring&gt;" AnswerCount="18" FavoriteCount="3" />
  <row Id="18060" PostTypeId="2" ParentId="18059" CreationDate="2010-11-10T06:15:35.927" Score="27" ViewCount="" Body="&lt;p&gt;When you have a big home theater and you add things, slowly but surely a big rats nest forms in the back. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are often times replacing parts, sometimes its worth straightening all that stuff out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, if you do that, it was working before, and it's not going to work better than when you started, but when you have to mess with it again, things will be a lot easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case its probably best to make a similar comparison to some subject area the PHB or customer is already familiar with, ie car or construction or something...&lt;/p&gt;&#xA;" OwnerUserId="6644" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-11-11T02:20:02.977" LastActivityDate="2010-11-11T02:20:02.977" CommunityOwnedDate="2011-03-15T06:24:13.740" CommentCount="9" />
  <row Id="18061" PostTypeId="2" ParentId="17929" CreationDate="2010-11-10T06:34:36.067" Score="1" ViewCount="" Body="&lt;p&gt;No&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as you pick the right tools, web development is as clean and easy as desktop development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The web API's (html, CSS, Javascript and DOM) are the equivalent of the win32 api. Eventually everything talks down to that API level, but you're crazy if you program directly on top of it without a library to abstract the messiness, verbosity and inconsistency away from you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, be careful about your choice of frameworks. Some problems are self-inflicted by picking bad tools (e.g. browser compatibility issues).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is possible to have a clean and consistent web dev platform, with a single language. E.g. if you want it to be &quot;all java all the time&quot;, you can use GWT and write both your client-side code and server-side code in Java. Or, if you'd rather have it be all javascript, you can pick something like Ext JS for the client-side and node.js for the server-side.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-11-10T06:34:36.067" />
  <row Id="18062" PostTypeId="2" ParentId="18059" CreationDate="2010-11-10T06:42:15.863" Score="9" ViewCount="" Body="&lt;p&gt;I wouldn't explain the concept of technical debt, because it's not necessary. Instead, focus on refactoring: You are changing the design of your program, not necessarily so that it is &quot;better&quot; or &quot;improved,&quot;  you are changing it so that it can accept a change that you need to make.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A car analogy might fit: You need to add an air-conditioner to a car, but it wasn't originally designed for one. Not only do you have to make a weird L-shaped air-conditioner, but you also need to move some other things out of the way first and change the venting system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also think it's a better strategy to refactor when you are accommodating new features: otherwise you might be changing the design into something that only looks &quot;better,&quot; but might actually be poorly suited to the circumstances surrounding the addition of your next feature.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-10T06:42:15.863" CommunityOwnedDate="2011-03-15T06:24:13.740" CommentCount="2" />
  <row Id="18063" PostTypeId="2" ParentId="17929" CreationDate="2010-11-10T06:54:25.363" Score="0" ViewCount="" Body="&lt;p&gt;I've heard it described as &quot;...the bane of my existence&quot; and I would agree. I've been offered $$$ an hour to do HTML web development and I've turned it down. It's that much of a pain. I've spent a majority of time in HTML and recently started working with the &quot;Flash platform&quot;. It's one of the most sophisticated frameworks I've ever seen and no one even knows about it. When people bring up Flash they think of Flash as of 10 years ago. It's grown... a lot. I love writing software again. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It still has it's disadvantages. Bugs sometimes linger forever but it's gotten better (thanks Steve J.). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW There's a major shortage for Flex developers. I've been approached by so many companies it's sick. If you know your CS, then spend the next 6+ months learning Flex hardcore then call me. I'll pass on all the job offers I have to turn down. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update: Cross browser support is the main pain point. What works in one browser won't work in another or it will but not in a previous version. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The process goes something like this:&#xA;- get design of site&#xA;- attempt to recreate it in one target browser (this can be difficult)&#xA;- show client&#xA;- client changes design&#xA;- scrape all the layout work you originally did&#xA;- get it functional&#xA;- client approves&#xA;- get it to work in other browsers. &#xA;This is the most difficult part. There are obscure bugs all along the way. Then you'll encounter features that earlier browsers don't support such as rounded corners. You'll try to reuse your code and css but that quickly becomes fragmented. Simply it can become high maintenance very quickly. Add in animations and older browsers choke. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The client &lt;em&gt;will&lt;/em&gt; make changes. You'll end up spending all your time doing &quot;what should be simple things&quot; and hate your life. You'll become a guru and know things you don't want to know. I know it sounds dramatic but I'm not embellishing the issues you'll face. Frameworks will make it easier. If you are persistent in working in HTML then to prepare yourself recreate one of your favorite sites in HTML making sure to match the design and functionality in all browsers it supports. Get the issues you encounter out of the way before going into a job. Issues such as best design tools, best javascript frameworks, best debugging tools, best IDEs, etc.&lt;/p&gt;&#xA;" OwnerUserId="7404" LastEditorUserId="7404" LastEditorDisplayName="" LastEditDate="2010-11-10T21:32:53.857" LastActivityDate="2010-11-10T21:32:53.857" CommentCount="3" />
  <row Id="18064" PostTypeId="2" ParentId="18059" CreationDate="2010-11-10T07:16:51.873" Score="2" ViewCount="" Body="&lt;p&gt;I would say &lt;strong&gt;”code maintenance”&lt;/strong&gt;. It's important to use words that the non-technical person is familiar with and that make sense to a non-technical world view.&#xA;If non-technical person (customer) is familiar with application maintenance then it's easy to make parallel of code maintenance and application maintenance. Even if they are not the same, you can explain that the end customer here are developers or those how maintain the system.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-11-10T16:46:31.267" LastActivityDate="2010-11-10T16:46:31.267" CommunityOwnedDate="2011-03-15T06:24:13.740" CommentCount="6" />
  <row Id="18065" PostTypeId="2" ParentId="18059" CreationDate="2010-11-10T07:30:16.567" Score="18" ViewCount="" Body="&lt;p&gt;Re-factoring is just like the process of re-packing a suitcase until everything fits in neatly. Sometimes, in the process, you wonder why you were trying to get so much junk in there to begin with.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-10T07:30:16.567" CommunityOwnedDate="2011-03-15T06:24:13.740" CommentCount="1" />
  <row Id="18066" PostTypeId="2" ParentId="4587" CreationDate="2010-11-10T07:57:17.807" Score="4" ViewCount="" Body="&lt;p&gt;Conflicts of interest are what I try to avoid the most. Often (if you are a good natured person) you never see these coming until they are right on top of you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I worked briefly for a company as an all around technology 'go to' person. I ran the network, I made the web sites, I developed some custom software and handled the on-call tasks. The opportunity came at a really good time for me, I was between major projects as a freelancer and needed something to plug some financial holes. I made it clear that I was not an employee, just a very part time contractor and that did have other clients, just none in the same industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The CEO of the company also owned a charity, which was doing good things. He asked if I'd mind helping to re-do the web site in anticipation of a large fund raiser. I wasn't really busy, it seemed like a good enough cause and favours tend to come back to you in good ways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I did not know is, the charity site was going to take a LOT more time than I anticipated. I didn't realize quite what they wanted until I got too far into things to pull out. If I did, there would be no way that they'd be ready for the fund raiser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Meanwhile, stuff started really heating up at the company. I fell way behind on several things, a lot of people who were depending on commission were being let down and the CEO directed me to work exclusively on the charity stuff and asked that I not tell anyone what I was doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I never saw that coming. There I was, I had to explain to people why things were delayed, and here's the CEO asking me to be dishonest. There's no good way out of something like that. At this point I just realized what I walked into and I knew that no matter what I did, someone was going to get mad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consequently, I no longer take 'side projects', even unpaid, for whatever cause.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe that most productive people (who go through the bother of having a job, etc) are also generally good natured and want to follow rules. Some people, however (at least in my experience) aren't so good at realizing when they are effectively putting someone in a very compromising position. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You really do have to be careful, your work environment can go from fantastic to dreadful very quickly in these kinds of situations, and you almost never see them coming.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-10T07:57:17.807" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="1" />
  <row Id="18067" PostTypeId="2" ParentId="18025" CreationDate="2010-11-10T08:01:14.590" Score="1" ViewCount="" Body="&lt;p&gt;If you are a native French speaker, I can advise to use the &lt;a href=&quot;http://www.bepo.fr&quot; rel=&quot;nofollow&quot;&gt;BÉPO layout&lt;/a&gt;. It is also great for programming, but it might be useful to remap the &lt;code&gt;;&lt;/code&gt; and the &lt;code&gt;$&lt;/code&gt; to non-shifted keys when programming.&lt;/p&gt;&#xA;" OwnerUserId="3708" LastActivityDate="2010-11-10T08:01:14.590" />
  <row Id="18068" PostTypeId="2" ParentId="18055" CreationDate="2010-11-10T08:14:01.367" Score="3" ViewCount="" Body="&lt;p&gt;I'm pro-portable myself, because an application should never modify the system unless it is &lt;strong&gt;really&lt;/strong&gt; necessary, and most of the time it's not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If my machine was in state A when I installed something, I want it to go back to state A when that something is removed. Otherwise, you end up with tons of (now) useless crap on your system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this regard, Linux works better for me because the location of everything is much better &quot;standardized&quot; than on Windows, where, for example, you can find your settings almost anywhere: in Windows folder, in your home folder, in $App's install directory, in the registry etc..&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-11-10T08:14:01.367" />
  <row Id="18069" PostTypeId="2" ParentId="17898" CreationDate="2010-11-10T08:16:39.740" Score="2" ViewCount="" Body="&lt;p&gt;I cant quite remember the circumstances around my pointers-aha-moment, but I have retroactively refitted the memory around my understanding of a c-style array. (i.e. &lt;code&gt;arr[3]&lt;/code&gt; is the same as &lt;code&gt;*(arr+3)&lt;/code&gt; )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For some reason I find it immensely helpful to view pointers as arrays whenever I happen upon a pointer-situation.&lt;/p&gt;&#xA;" OwnerUserId="4012" LastActivityDate="2010-11-10T08:16:39.740" CommunityOwnedDate="2010-12-02T00:15:36.130" />
  <row Id="18070" PostTypeId="2" ParentId="18059" CreationDate="2010-11-10T08:20:45.553" Score="5" ViewCount="" Body="&lt;p&gt;&quot;Have you ever played &lt;a href=&quot;http://en.wikipedia.org/wiki/Mouse_Trap_%28board_game%29&quot; rel=&quot;nofollow&quot;&gt;Mouse Trap&lt;/a&gt;?  As we stick in new features, change interfaces, and fix bugs, code can start to look a lot like that.  There comes a point where we either have to expend a lot of capital (time and effort, which amount to money) making sure all the moving parts play nicely with each new change or addition, or we can instead set time aside to refactor the design, resulting in fewer moving parts we have to manage each time we make a change.  It may &lt;em&gt;seem&lt;/em&gt;, from an end-user's perspective, that the refactor doesn't have any benefits, but the benefit happens every time a new feature is added post-refactor.  The process is faster, introduces fewer bugs, and is less expensive thereafter, not to mention that the refactored code is often more efficient overall.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may wonder why we let it start to look like Mouse Trap in the first place:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Sometimes getting something done &lt;em&gt;right now&lt;/em&gt; means that we have to sacrifice elegance and efficiency to just &quot;make it work&quot;.&lt;/li&gt;&#xA;&lt;li&gt;The language features and other technologies available to us as programmers often change.  Sometimes new features let us replace a finnicky jumble of six moving parts with one.&lt;/li&gt;&#xA;&lt;li&gt;Oftentimes, when we add feature C to features A and B, we don't know that B will eventually be dropped and D added.  One way to accomplish C may work very well with B, but not very well with D.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In an effort to keep building a better mouse trap, we have to constantly go back and find places to reduce complexity and streamline what we have.  It's the difference between just having software with a lot of features, and having truly high-quality software.&quot;&lt;/p&gt;&#xA;" OwnerUserId="5516" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-10T10:50:18.233" LastActivityDate="2010-11-10T10:50:18.233" CommunityOwnedDate="2011-03-15T06:24:13.740" />
  <row Id="18071" PostTypeId="2" ParentId="18059" CreationDate="2010-11-10T08:27:43.743" Score="3" ViewCount="" Body="&lt;p&gt;Refactoring - is like organizing your clothes cabinet / Tool Drawer.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;You dont throw away your clothes /tools just because they are all over the place. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You could argue that they should never get disorganized. But they do. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Just like code does. Especially as it grows over time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if you dont clean it up, you will keep wondering what happened to that t-shirt you loved or that wrench that you always need but can never find! &lt;/p&gt;&#xA;" OwnerUserId="2226" LastActivityDate="2010-11-10T08:27:43.743" CommunityOwnedDate="2011-03-15T06:24:13.740" />
  <row Id="18072" PostTypeId="1" CreationDate="2010-11-10T08:46:05.007" Score="4" ViewCount="163" Body="&lt;p&gt;I am a software developer looking for a new set of challenges. I am therefore seriously considering undertaking study towards a Masters of Science in Bioinformatics (I have a bachelor degree in Comp Sci).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have done extensive reading on the field and find it fascinating. In a perfect world this would be the only consideration. However, I am a little concerned about the economics of such a move.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From talking with people associated with the degree, it looks like salaries in Bioinformatics are about half as much as one would make as an experienced software developer in industry. This would amount to a halving of my wage and all the lifestyle changes that entails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From my reading it appears that most bioinformatics is done in academia, or government / grant supported research labs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there much opportunity for bioinformaticists to work within industry (pharma, biotech)? Are industry wages higher? Are these opportunities growing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The people I have spoken to have quoted $50k - $60k for entry level (Masters) positions (in Australia). To go much higher seems to require a phd or post-doc. Does this sound accurate? What is the trend for wages in this field?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems that almost all the software used in bioinformatics is open source. I agree that this is excellent for research, but does this come at the exclusion of commercial software? Is there opportunity to build commercial software for bioinformatics?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, what opportunities exist for bioinformaticists to make a comparable income to software developers working in industry?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="7407" LastActivityDate="2010-11-15T05:47:06.747" Title="Economics of a career in bioinformatics" Tags="&lt;career-advice&gt;&lt;research&gt;&lt;industry&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="3" />
  <row Id="18073" PostTypeId="2" ParentId="18059" CreationDate="2010-11-10T08:58:28.067" Score="2" ViewCount="" Body="&lt;p&gt;The point of re-factoring is to simplify the design and remove inefficiencies. This makes it easier to fix bugs and add new features in the future.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you continue to add new features to code, re-factoring will quickly pay for itself. This will be visible in lower error rate, faster debugging and quicker fixes. &lt;/p&gt;&#xA;" OwnerUserId="3122" LastActivityDate="2010-11-10T08:58:28.067" CommunityOwnedDate="2011-03-15T06:24:13.740" />
  <row Id="18074" PostTypeId="1" AcceptedAnswerId="18080" CreationDate="2010-11-10T09:04:45.420" Score="6" ViewCount="362" Body="&lt;p&gt;How do open source projects maintain quality?&#xA;What keeps the projects from people with relatively little programming experience checking in poor quality codes?&lt;/p&gt;&#xA;" OwnerUserId="7408" LastActivityDate="2010-11-11T12:19:19.207" Title="How do open source projects maintain quality?" Tags="&lt;open-source&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="2" />
  <row Id="18075" PostTypeId="2" ParentId="18074" CreationDate="2010-11-10T09:12:05.113" Score="1" ViewCount="" Body="&lt;p&gt;Some don't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those that work have a single person (or if very large a group with well defined responsibilities) who vet everything and only let what meets their standards into the official codebase. (Private branches = private problems).&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-11-10T09:12:05.113" />
  <row Id="18076" PostTypeId="2" ParentId="18025" CreationDate="2010-11-10T09:16:49.530" Score="4" ViewCount="" Body="&lt;p&gt;US ASCII is nice for programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would strongly recommend against creating your own keyboard layout instead of using an easily available standard configuration.  You will either spend a lot of time installing it on every machine in your vicinity over the years, or get tired of spending a lot of time installing it on every machine in your vicinity.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;EDIT:  Just a historical note.  We were brought up on Sun machines with US keyboards which was very nice, but without our extra national characters (æøå) which was tedious and annoying when you did normal writing outside of programming.  Even with Windows allows for window specific keyboard layouts, I ended up concluding that what worked best for &lt;em&gt;me&lt;/em&gt; was to have a single keyboard layout, and that was to be the one for normal writing.  I then learn with awkward ways to get {} and [].  In an international setting where I did not have to write Danish all the time, I would be perfectly happy with a US keyboard.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-11-16T04:37:47.813" LastActivityDate="2010-11-16T04:37:47.813" CommentCount="1" />
  <row Id="18077" PostTypeId="2" ParentId="18074" CreationDate="2010-11-10T09:23:20.917" Score="0" ViewCount="" Body="&lt;p&gt;If you have an application with more than one (experience) developer, bad code won't go into the main branch, since you won't get write access if you don't prove you meet their standards. &lt;/p&gt;&#xA;" OwnerUserId="1402" LastActivityDate="2010-11-10T09:23:20.917" />
  <row Id="18078" PostTypeId="2" ParentId="18074" CreationDate="2010-11-10T09:25:22.357" Score="0" ViewCount="" Body="&lt;p&gt;Most projects have version control systems, where the code development goes in branches. New features are accepted to unstable branches, or even in a branch-per-feature or branch-per-fix manner. When a new branch is tested and it's clear that the code is of good quality, it can be &lt;em&gt;merged&lt;/em&gt; into the main branch, or into beta-testing branch, from where, after fixes if necessary, it goes into or becomes itself the production branch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read about Mercurial &lt;a href=&quot;http://hginit.com/&quot; rel=&quot;nofollow&quot;&gt;http://hginit.com/&lt;/a&gt; and Git &lt;a href=&quot;http://progit.org/book/&quot; rel=&quot;nofollow&quot;&gt;http://progit.org/book/&lt;/a&gt; version control systems.&lt;/p&gt;&#xA;" OwnerUserId="5545" LastActivityDate="2010-11-10T09:25:22.357" CommentCount="4" />
  <row Id="18079" PostTypeId="2" ParentId="18074" CreationDate="2010-11-10T09:30:04.030" Score="18" ViewCount="" Body="&lt;p&gt;How do closed source projects maintain quality? What keeps the projects from people with relatively little programming experience checking in poor quality codes?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same way:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;code review&lt;/li&gt;&#xA;&lt;li&gt;testing&lt;/li&gt;&#xA;&lt;li&gt;static typing&lt;/li&gt;&#xA;&lt;li&gt;static analysis&lt;/li&gt;&#xA;&lt;li&gt;metrics&lt;/li&gt;&#xA;&lt;li&gt;consistent coding styles&lt;/li&gt;&#xA;&lt;li&gt;consistent guidelines&lt;/li&gt;&#xA;&lt;li&gt;shame (because everybody in the world can see who wrote that crappy code)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But &lt;em&gt;really&lt;/em&gt; the answer is: most don't. In both cases, open and closed source. After all, programming is subject to the Pareto Principle and Sturgeon's Revelation (“Ninety percent of everything is crud”) just like everything else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Linux, for example, in almost 100% of all cases where a company releases a previously closed source driver as open source, that driver needs a &lt;em&gt;considerable&lt;/em&gt; amount of work before it can be merged into the kernel tree, simply because its quality is so bad. In some cases, it is &lt;em&gt;so&lt;/em&gt; bad that the code is basically unsalvageable and has to be rewritten from scratch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, in Linux, the way that quality gets maintained is that low quality contributions get rejected, but there is a mentoring process helping people to write better quality code.&lt;/p&gt;&#xA;" OwnerUserId="1352" LastEditorUserId="1352" LastEditorDisplayName="" LastEditDate="2010-11-10T10:37:30.297" LastActivityDate="2010-11-10T10:37:30.297" CommentCount="9" />
  <row Id="18080" PostTypeId="2" ParentId="18074" CreationDate="2010-11-10T09:37:20.887" Score="12" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What keeps the projects from people with relatively little programming experience checking in poor quality codes?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Usually, not everyone have the rights to change the source code. Most often there is only a small group of trusted developers that have rights to change the source code. If someone else wants to make changes, they can submit patches, but these are checked and added by the developers with &lt;em&gt;commit access&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some projects allow other developers to join the trusted group, if they submit several patches of sufficient quality.&lt;/p&gt;&#xA;" OwnerUserId="1020" LastActivityDate="2010-11-10T09:37:20.887" />
  <row Id="18081" PostTypeId="2" ParentId="16807" CreationDate="2010-11-10T09:43:27.683" Score="0" ViewCount="" Body="&lt;p&gt;In some cases, the exception is not at all exceptional; in fact, it is expected. Consider this example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    /* Check if the process is still alive; exitValue() throws an exception if it is */&#xA;    try {&#xA;        p.exitValue();&#xA;        processPool.remove(p);&#xA;    }&#xA;    catch (IllegalThreadStateException e) { /* expected behaviour */ }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Since there is no isAlive() method in java.lang.Process(), about the only way to check if it is still alive is to call exitValue(), which throws an IllegalThreadStateException if the process is still running.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-10T09:43:27.683" />
  <row Id="18082" PostTypeId="2" ParentId="18074" CreationDate="2010-11-10T09:46:06.310" Score="1" ViewCount="" Body="&lt;p&gt;Well run open source projects use the same tool sets and patterns of behaviour that good closed source projects do.  The difference is that in the open source model you can have many more eyes on the design and the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for the two open source projects I'm heavily involved with, we:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Have JIRA as a feature request and bug tracking system&#xA;** We roadmap the items listed in JIRA&lt;/li&gt;&#xA;&lt;li&gt;We hold collaborative design discussions on mailing lists and IRC&lt;/li&gt;&#xA;&lt;li&gt;We have code reviews&lt;/li&gt;&#xA;&lt;li&gt;For new joiners, we ask that they submit patches until we are comfortable with their level of code quality and familiarity with the code base&lt;/li&gt;&#xA;&lt;li&gt;We ensure that documentation is written as part of completing some code&lt;/li&gt;&#xA;&lt;li&gt;We use source control and have feature branches and maintenance branches&lt;/li&gt;&#xA;&lt;li&gt;We run a CI server&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;See &lt;a href=&quot;http://www.producingoss.com&quot; rel=&quot;nofollow&quot;&gt;http://www.producingoss.com&lt;/a&gt; for a guide on how to run a successful open source project&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-10T09:46:06.310" />
  <row Id="18083" PostTypeId="2" ParentId="1237" CreationDate="2010-11-10T10:12:49.030" Score="0" ViewCount="" Body="&lt;p&gt;Generally speaking, just do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing something else to &quot;get started&quot; is just more procrastination.  A jog before a work out is a warm up, it's valid, it's to do with the way muscles work but it's not necessary with programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might want to sketch out a plan or approach but that's actually doing stuff so I'm not sure it's really a warm up.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-10T10:12:49.030" />
  <row Id="18084" PostTypeId="2" ParentId="18074" CreationDate="2010-11-10T10:19:21.187" Score="2" ViewCount="" Body="&lt;p&gt;That really depends on the size of the developer base, and what back yard you happen to be playing in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How either of those are determined mostly depends on the skills of the founding developer(s).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, realize that writing code and pushing it into the wild for the whole world to critique and review takes a special kind of person. That person might not be very &lt;em&gt;confident&lt;/em&gt; in their abilities, but they are willing to publish their code anyway. Someone else might be extremely confident. Both people have the same goals:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Release something that seems useful&lt;/li&gt;&#xA;&lt;li&gt;Get help from other programmers &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There may be underlying financial reasons, but the above tends to be true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There may be other motivations in the mix. I know people who spend an enormous amount of time re-writing proprietary applications under an OSI approved license (usually the 3 clause BSD or GPL). I know other people who can't stand GPL2+ libraries and work to re-write them in order to release them under a less restrictive license. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any event, you have lots of people writing and publishing code for various reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, (really) bad code gets committed due to the following reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The original author found contributors that exceed their skill level. They don't know a bad patch from a good one.&lt;/li&gt;&#xA;&lt;li&gt;The original author wants to stick it to (insert whatever man here) and is happy to have some help and a fellow idealist to e-mail&lt;/li&gt;&#xA;&lt;li&gt;The original author trusted a part of the code to someone who made some bad decisions on what actually gets accepted, or didn't really look at what was being proposed.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Lets break these down a bit:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the first point, the original author probably hoped to learn something in the process of releasing their work. That's not in any way bad, but if you have a small development community it can become toxic. Think about it, you have a thick enough skin to release your stuff, you get a patch that blows your mind, is your skin now thick enough to admit that you have no idea what the patch actually does? That happens quite a bit. If you have more eyeballs watching things, it helps. So let's say the first root of toxic changes is &lt;strong&gt;&lt;em&gt;ego&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, you might just get tired of fighting an otherwise great contributor on a single point and just say 'screw it', even if you understand the patches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the second point, stuff that is written to fill an idealistic void (at least early on) is of lesser quality than something written to fill a technical void, at least in my experience. For the most part, the GNU project is an exception to this rule, they have been producing software that runs predictably and consistently on a variety of architectures for years. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You won't see a lot of &lt;code&gt;revengeware&lt;/code&gt; in the wild, it doesn't last very long. I have been part of projects that were started explicitly to &lt;code&gt;stick it to the man&lt;/code&gt;, and I've quickly left them. This brings us to the second source of toxic changes, &lt;strong&gt;&lt;em&gt;no real focus&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, you get to the point that a project has really taken off. The original author is not only skilled enough, but trusts their skills enough to ward off toxic patches. The project grows, the code base grows and more and more trusted lieutenants are brought on to help manage contributions. The original author has final say, if they want it, but trusts their inner circle to effectively look after the parts that they maintain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People do odd things. I can't count the number of nervous breakdowns that I've witnessed on public mailing lists on both hands. People get burned out, develop drinking problems, sometimes drug problems or all out vanish. Their spouses leave them, their homes burn down, feces occurs. However, by this time, you &lt;em&gt;should&lt;/em&gt; have enough critical eyes on stuff to catch that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This brings us to the third (at least in my experience) reason why toxic code gets put out into the wild - &lt;strong&gt;&lt;em&gt;a lack of community oversight&lt;/em&gt;&lt;/strong&gt;. This happens mostly in projects where users outnumber actual contributors by 100:1 or more. You have plenty of eye balls, but none of them know what they're looking at.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not listed, but finally, the original developer may have burned out years ago. When / if that happens, a project loses passion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond that, other things happen. Companies get bought (we're seeing the aftermath of that now with OpenOffice / OpenSolaris).&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-11T12:19:19.207" LastActivityDate="2010-11-11T12:19:19.207" CommentCount="1" />
  <row Id="18085" PostTypeId="1" CreationDate="2010-11-10T10:48:16.320" Score="0" ViewCount="97" Body="&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would be the best, simplest way to code this:&#xA;I have a php document that gets most of the page requests (set up in routes config, using code igniter framework) and depending on the uri i want to show the user different content. Example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;http: // domain.tld/2010/&lt;br&gt;&#xA;Should show one type of content&lt;/p&gt;&#xA;&#xA;&lt;p&gt;http: // domain.tld/2010-nov/&lt;br&gt;&#xA;should show another type of content&lt;/p&gt;&#xA;&#xA;&lt;p&gt;http: // domain.tld/2010-nov-10/&lt;br&gt;&#xA;should show yet another type of content&lt;/p&gt;&#xA;&#xA;&lt;p&gt;http: // domain.tld/2010-nov-10-blog-post-title/&lt;br&gt;&#xA;should show once again another type of content&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everything else should be treated as if is a product, example:&lt;br&gt;&#xA;http: // domain.tld/light-bulb/&lt;br&gt;&#xA;and if such a product doesnt exist, its a 404&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Below is the code I got at the moment, but I feel it is way too messy. Any suggestion how to make it simpler and more effective? (Tried to get it formatted correctly here but it seem a bit tricky to get code to align properly, a apologize)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regards,&#xA;Jason&lt;br&gt;&#xA;(had to add spaces in all my urls here because im new and not allowed to post that many urls)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;$val is the uri (/2010-nov.......)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function show_what($val){&#xA;$arr=array(&quot;jan&quot;=&amp;gt;01,&quot;feb&quot;=&amp;gt;02,&quot;mar&quot;=&amp;gt;03,&quot;apr&quot;=&amp;gt;04,&quot;may&quot;=&amp;gt;05,&quot;jun&quot;=&amp;gt;06,&quot;jul&quot;=&amp;gt;07,&quot;aug&quot;=&amp;gt;08,&quot;sep&quot;=&amp;gt;09,&quot;oct&quot;=&amp;gt;10,&quot;nov&quot;=&amp;gt;11,&quot;dec&quot;=&amp;gt;12);&#xA;// first check to see if the uri starts with a year (4 digits)&#xA;if(is_int((int)substr($val,0,4)) &amp;amp;&amp;amp; (int)substr($val,0,4)!=0){&#xA;    // Get all posts for specified YEAR&#xA;    if(strlen($val)==4){&#xA;        // Show all blog posts for specified year&#xA;        // example: http: // domain.tld/2010/&#xA;&#xA;    // Get all posts for specified YEAR and MONTH&#xA;    }elseif(strlen($val)==8 &amp;amp;&amp;amp; substr($val,4,1)==&quot;-&quot; &amp;amp;&amp;amp; array_key_exists(substr($val,5,3),$arr)){&#xA;        // show all blog posts for specified year and month&#xA;        // example: http: // domain.tld/2010-nov/&#xA;&#xA;    // Get all posts for specified YEAR, MONTH and DAY OR! get specified post&#xA;    }elseif(strlen($val)&amp;gt;=11 &amp;amp;&amp;amp; substr($val,4,1)==&quot;-&quot; &amp;amp;&amp;amp; array_key_exists(substr($val,5,3),$arr) &amp;amp;&amp;amp; substr($val,8,1)==&quot;-&quot; &amp;amp;&amp;amp; is_int((int)substr($val,9,2)) &amp;amp;&amp;amp; (int)substr($val,9,2)!=0){&#xA;&#xA;        // Get all posts for specified YEAR, MONTH and DAY&#xA;        if(strlen($val)==11){&#xA;            // show all blog posts for specified year, month and day&#xA;            // example: http: // domain.tld/2010-nov-10/&#xA;&#xA;        // Get specified post&#xA;        }elseif(substr($val,11,1)==&quot;-&quot;){&#xA;            // show specified post or 404&#xA;            // example: http: // domain.tld/2010-nov-10-blog-post-title/&#xA;        }else{&#xA;            // &quot;Not a valid article url&amp;lt;Br/&amp;gt;&quot;;&#xA;            // example: http: // domain.tld/2010-nov-10there-is-a-dash-missing-after-day/&#xA;        }&#xA;    }else{&#xA;        // 404, not a real date&#xA;    }&#xA;}else{&#xA;    // show product with current uri or if it doesnt exist, 404.&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;}&lt;/p&gt;&#xA;" LastActivityDate="2010-11-10T10:48:16.320" ClosedDate="2010-11-10T13:05:11.887" Title="Better way to code this" Tags="&lt;php&gt;" CommentCount="2" />
  <row Id="18086" PostTypeId="1" CreationDate="2010-11-10T10:49:01.833" Score="2" ViewCount="190" Body="&lt;p&gt;Hello..is it possible to calculate shadow areas of buildings or simulate shadows of buildings in a city, using the heights of these buildings and the sun angle and azimuth? the basic light tracing concept using trigonometry is known. But the Problem is how to find away to come up with simulated shadow of group of buildings in one place.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-10T19:14:51.737" Title="shadow simulation from buildings" Tags="&lt;learning&gt;&lt;programming&gt;&lt;algorithms&gt;&lt;problem-solving&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="18087" PostTypeId="2" ParentId="17898" CreationDate="2010-11-10T11:00:01.487" Score="7" ViewCount="" Body="&lt;p&gt;Pointer are a bit like the application shortcuts on your desktop. Delete the shortcut and the target still exists. Start up the shortcut and the target gets started.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always explain the working of this by simple creating a txt file on my desktop and two shortcuts to the file. After copying and deleting the shortcuts you can see people understand the idea behind 'references'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once the group understands the basic behind the shortcuts you can start explaining pointers anyway you want. They'll probably understand it pretty easily.&lt;/p&gt;&#xA;" OwnerUserId="7416" LastActivityDate="2010-11-10T11:00:01.487" CommunityOwnedDate="2010-12-02T00:15:36.130" CommentCount="2" />
  <row Id="18088" PostTypeId="2" ParentId="18011" CreationDate="2010-11-10T11:06:06.410" Score="1" ViewCount="" Body="&lt;p&gt;I've read the first two, and thought the second was better than the first, mostly just because the authors expanded on their ideas quite a bit. I thought the first book was interesting, but I actually really enjoyed reading the second and found it quite inspiring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, it's been a while since I read them, so I don't remember anything much more specific than that as to whether there's anything covered in the first that's not in the second. But I do remember my general impression being that the second expanded on the first without relying on it. (I read the second one before the first.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also unfortunately, I haven't yet made time to read the third, so I can't say anything about it.&lt;/p&gt;&#xA;" OwnerUserId="7415" LastActivityDate="2010-11-10T11:06:06.410" CommentCount="1" />
  <row Id="18089" PostTypeId="2" ParentId="18059" CreationDate="2010-11-10T11:11:28.653" Score="1" ViewCount="" Body="&lt;p&gt;Re-factoring is the same as cleaning up something and giving stuff a new place to 'stay'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Easy simple and something that can take a lot of times. Sometimes I even add that person X left a huge mess of things and I have to clean it up.&lt;/p&gt;&#xA;" OwnerUserId="7416" LastActivityDate="2010-11-10T11:11:28.653" CommunityOwnedDate="2011-03-15T06:24:13.740" />
  <row Id="18090" PostTypeId="2" ParentId="4587" CreationDate="2010-11-10T11:45:37.060" Score="2" ViewCount="" Body="&lt;p&gt;For me what the company itself does is likely to be the single biggest factor.  Even the worst behaved software house is likely to be morally better than a defence contractor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most significant end of things is industries that completely rely on IT but are morally ambiguous.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On-line gambling, porn and dodgy pharmaceutical sales all spring to mind.  These are distinct from, say McDonald's (which some people may see as just as bad) because in these areas there are whole companies that wouldn't or couldn't exist if it weren't for programmers (as opposed to McD's where they'd just find it harder but could ultimately still work around the limitation).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-10T11:45:37.060" CommunityOwnedDate="2011-01-07T00:56:11.870" />
  <row Id="18091" PostTypeId="2" ParentId="16518" CreationDate="2010-11-10T11:59:41.293" Score="1" ViewCount="" Body="&lt;p&gt;I'd want to include something that allowed me to see if they understood the trade offs (e.g. performance) and limitations (e.g. human engineering) of cryptography.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously it depends on what you'll be doing but for mobile computing processor power is not unlimited and therefore just throwing the kitchen sink at it (as in the strongest encryption / longest key length) wouldn't be appropriate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly I'd want to see that they understood that basic use of cryptography only excludes certain attack vectors and that they could come up with examples of and defences against other vulnerabilities.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-10T11:59:41.293" />
  <row Id="18092" PostTypeId="2" ParentId="17898" CreationDate="2010-11-10T12:04:33.713" Score="1" ViewCount="" Body="&lt;p&gt;Basically @Gary Rowe introduced the right model. Memory as a set of boxes with addresses (numbers) on them. Each box stores a value (number). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea of a pointer is to interpret the value in one box as the address of another box. This value is used to &lt;em&gt;refer&lt;/em&gt; to a specific box, which is why it is called a &lt;em&gt;reference&lt;/em&gt;. Thus &lt;em&gt;dereferencing&lt;/em&gt; is the process of opening the box that is refered to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if &lt;code&gt;v&lt;/code&gt; is a variable (box), then the statement&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;v&lt;/code&gt; means value of &lt;code&gt;v&lt;/code&gt;, i.e. give me what is in the box&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;*v&lt;/code&gt; means dereference the value of &lt;code&gt;v&lt;/code&gt;, i.e. give me what is in the box refered to by the value of &lt;code&gt;v&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;amp;v&lt;/code&gt; means reference &lt;code&gt;v&lt;/code&gt;, i.e. give me the address on box&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think it doesn't server the purpose of introducing pointers as something completely different. It was a concept hard to grasp for me when I was a kid. It always seemed like some dark magic I never truly understood, that needed a lot of special characters. The first time I did understand was when I wrote a small game using double indirection in a language that doesn't have pointer arithmetics. That enlightened me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pointers are a matter of interpretation. I think explaining that makes things a lot easier. And pointer arithmetics are extremely simple and intuitive operations if shown a simple example with a memory of 10 variables. &lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-11-10T12:04:33.713" CommunityOwnedDate="2010-12-02T00:15:36.130" />
  <row Id="18093" PostTypeId="2" ParentId="17979" CreationDate="2010-11-10T12:06:21.820" Score="0" ViewCount="" Body="&lt;p&gt;One table with flags would be preferable IMHO. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The alternative adds in overhead (adding old record to archive table), with little in the way of benefit. Such is the efficiency of most SQL engines, that there is usually negligible overhead in finding the &lt;em&gt;current&lt;/em&gt; version of a record compared to searching for the &lt;em&gt;only&lt;/em&gt; record in the table.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In certain, high-volume applications, there might possibly be a case for the alternative, but not for a wiki.&lt;/p&gt;&#xA;" OwnerUserId="3545" LastActivityDate="2010-11-10T12:06:21.820" />
  <row Id="18094" PostTypeId="2" ParentId="17898" CreationDate="2010-11-10T12:07:33.480" Score="0" ViewCount="" Body="&lt;p&gt;I remember a book &quot;C puzzles&quot; or similar, which I read purely because it was one of the few programming/computer related books available in the library, my understanding of C was rudimentary. It threw a C expresison at you, and asked to explion it, getting more and more complicated. &lt;/p&gt;&#xA;" OwnerUserId="7313" LastActivityDate="2010-11-10T12:07:33.480" CommunityOwnedDate="2010-12-02T00:15:36.130" />
  <row Id="18095" PostTypeId="2" ParentId="262" CreationDate="2010-11-10T12:21:23.397" Score="1" ViewCount="" Body="&lt;p&gt;Google writes a lot in Java and Google is the biggest company in the web. I think the web is the future - web application , cloud computing - and so I think Java is still relevant in the future. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And there is Android, which is the future of smart phones in my opinion. And some people say smart phones are the future of the computer - whats not my opinion :) - but whould also gave Java a big future. So go Java :D&lt;/p&gt;&#xA;" OwnerUserId="7418" LastActivityDate="2010-11-10T12:21:23.397" CommunityOwnedDate="2011-03-14T15:05:05.090" CommentCount="1" />
  <row Id="18096" PostTypeId="1" CreationDate="2010-11-10T12:39:58.237" Score="3" ViewCount="123" Body="&lt;p&gt;I am the first developer in a large scale web project, in the real estate sector.&#xA;I am not an expert in any field, I know the basic of all, programming, databases, something about design and a little bit about SEO, and website optimization / caching. And I have some knowledge about other technologies and stuff that could be required in the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I am a developer, my boss does some drawing on a paper to present me his ideas and then I start programming and I show him the result. Until now there was no problem, but now the web application is large enough, and it lacks a little bit of database optimization and intuitive user interface. Beside the website, the project also has an offline newspaper, and a desktop application that is a reduced version of the online one, both this things are not managed by me, but by other people or developers that are external to the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We do not use a collaboration tool for sharing knowledge between the people working on this project, just emails, and we do not use a development methodology, as for the team, we are:&#xA;the developer(me), a designer, a secretary and the boss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have the possibility to ask the boss hire the people I want so I can increase the team and have the right person dealing with the right part of the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is the story, the real question is, what should be my attitude towards the project and the company? Should I stay a developer and participate in taking decisions and organizing tasks from time to time to help the boss? Or should I get more serious about this and try to learn project management and implement everything I consider it's required to ensure the quality of the work and final results?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am the one who best knows what has been developed until now, should I try to organize all the work and the team? Or should I ask my boss to hire some expert to do that?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope someone before has been in my position before and can give me any good indications..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="7420" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-10T12:55:35.443" LastActivityDate="2010-11-10T14:29:36.180" Title="What should I be responsible for as the first developer in a large scale web project?" Tags="&lt;web-development&gt;&lt;project-management&gt;&lt;career-advice&gt;" AnswerCount="2" />
  <row Id="18097" PostTypeId="1" CreationDate="2010-11-10T12:54:46.240" Score="-1" ViewCount="167" Body="&lt;p&gt;Who are the most popular programmers in the world?&lt;/p&gt;&#xA;" OwnerUserId="5347" LastActivityDate="2010-11-10T13:11:36.027" ClosedDate="2010-11-10T13:46:37.423" Title="Most Popular Programmers in the World" Tags="&lt;popularity&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="18099" PostTypeId="2" ParentId="18097" CreationDate="2010-11-10T12:58:20.340" Score="2" ViewCount="" Body="&lt;p&gt;Bill Gates without a doubt&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-11-10T12:58:20.340" CommentCount="2" />
  <row Id="18100" PostTypeId="2" ParentId="2492" CreationDate="2010-11-10T12:58:21.150" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2008/11/we-are-typists-first-programmers-second.html&quot; rel=&quot;nofollow&quot;&gt;We Are Typists First, Programmers Second&lt;/a&gt;.  I still shudder when I see hunt-and-peck developers.  Good programmers build a stream of consciousness while they work, and not being able to type well is an obvious bottle-neck.&lt;/p&gt;&#xA;" OwnerUserId="3266" LastActivityDate="2010-11-10T12:58:21.150" CommentCount="7" />
  <row Id="18101" PostTypeId="2" ParentId="18097" CreationDate="2010-11-10T13:00:05.847" Score="1" ViewCount="" Body="&lt;p&gt;The world's most popular programmers? The ones that leave reasonable code behind for us to work with!&lt;/p&gt;&#xA;" OwnerUserId="700" LastActivityDate="2010-11-10T13:00:05.847" />
  <row Id="18102" PostTypeId="2" ParentId="18097" CreationDate="2010-11-10T13:01:03.820" Score="1" ViewCount="" Body="&lt;p&gt;The list is too long, and what do you mean by favourite?  Anyhow I'll take a stab from my Java world:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;James Gosling&lt;/li&gt;&#xA;&lt;li&gt;Kent Beck&lt;/li&gt;&#xA;&lt;li&gt;Martin Flower&lt;/li&gt;&#xA;&lt;li&gt;Uncle Bob&lt;/li&gt;&#xA;&lt;li&gt;The people behind the GoF&lt;/li&gt;&#xA;&lt;li&gt;Rod Johnson&lt;/li&gt;&#xA;&lt;li&gt;Bert Bates&lt;/li&gt;&#xA;&lt;li&gt;Kathy Sierra&lt;/li&gt;&#xA;&lt;li&gt;Knuth&lt;/li&gt;&#xA;&lt;li&gt;Anyone we've worked with that leaves behind maintainable and understandable code.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Meh, my list will go on for ages - I'll stop there.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-10T13:01:03.820" />
  <row Id="18103" PostTypeId="2" ParentId="16807" CreationDate="2010-11-10T13:04:38.150" Score="2" ViewCount="" Body="&lt;p&gt;There are a lot of cases, as illustrated by other answerers, where you would want to swallow/ignore the exception. In fact, this is so common that Scala provides a specialized control abstraction - &lt;code&gt;ignoring&lt;/code&gt; - for this purpose. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;import util.control.Exception.ignoring&#xA;&#xA;val numStrings = Array(&quot;a&quot;, &quot;2&quot;, &quot;5&quot;)&#xA;for(a &amp;lt;- numStrings) {&#xA;  ignoring(classOf[NumberFormatException]) {&#xA;    println(a.toInt)&#xA;  }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;prints:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;2&#xA;5&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1968" LastEditorUserId="1968" LastEditorDisplayName="" LastEditDate="2010-11-13T10:37:01.763" LastActivityDate="2010-11-13T10:37:01.763" />
  <row Id="18104" PostTypeId="2" ParentId="18097" CreationDate="2010-11-10T13:05:12.340" Score="1" ViewCount="" Body="&lt;p&gt;I am! but with limited scope :)&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-11-10T13:05:12.340" CommentCount="4" />
  <row Id="18105" PostTypeId="2" ParentId="262" CreationDate="2010-11-10T13:09:18.493" Score="0" ViewCount="" Body="&lt;p&gt;If it's bound to some industry (i.e. banking; mobile platforms; etc.) it's like asking &quot;Will Internet Explorer still be relevant in 5 years..&quot; 5 years ago. Today there are many companies that have IE-specific internal websites that can't be rewritten from scratch. So it's not &quot;relevant&quot; but &quot;unavoidable&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To come to your question-- no, it's not relevant as a &lt;em&gt;driving force&lt;/em&gt; for innovation; but yes, it's relevant because many industries will require java applications to be maintained for many years to come. &lt;/p&gt;&#xA;" OwnerUserId="1697" LastActivityDate="2010-11-10T13:09:18.493" CommunityOwnedDate="2011-03-14T15:05:05.090" />
  <row Id="18106" PostTypeId="2" ParentId="18097" CreationDate="2010-11-10T13:11:36.027" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Jamie Zawinski  &lt;/li&gt;&#xA;&lt;li&gt;Brad Fitzpatrick  &lt;/li&gt;&#xA;&lt;li&gt;Douglas Crockford  &lt;/li&gt;&#xA;&lt;li&gt;Brendan Eich  &lt;/li&gt;&#xA;&lt;li&gt;Joshua Bloch  &lt;/li&gt;&#xA;&lt;li&gt;Joe Armstrong  &lt;/li&gt;&#xA;&lt;li&gt;Simon Peyton Jones  &lt;/li&gt;&#xA;&lt;li&gt;Peter Norvig  &lt;/li&gt;&#xA;&lt;li&gt;Guy Steele  &lt;/li&gt;&#xA;&lt;li&gt;Dan Ingalls  &lt;/li&gt;&#xA;&lt;li&gt;L Peter Deutsch  &lt;/li&gt;&#xA;&lt;li&gt;Ken Thompson  &lt;/li&gt;&#xA;&lt;li&gt;Fran Allen  &lt;/li&gt;&#xA;&lt;li&gt;Bernie Cosell  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Wiki'ing these should keep you busy for a while ;-)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-10T13:11:36.027" CommentCount="2" />
  <row Id="18107" PostTypeId="1" AcceptedAnswerId="18112" CreationDate="2010-11-10T13:17:22.030" Score="4" ViewCount="214" Body="&lt;p&gt;I'm looking for something along the lines of &lt;a href=&quot;http://www.websequencediagrams.com/&quot; rel=&quot;nofollow&quot;&gt;WebSequenceDiagram&lt;/a&gt; for other kinds of UML diagram types -- use cases and class diagrams in particular.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, the service would accept plain text input such as:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;user = Actor();&#xA;admin = Actor();&#xA;register = UseCase(user);&#xA;post = UseCase(user, admin);&#xA;post_poll = UseCase(user, admin).extend(post);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;...and get the corresponding image output, without having me worry about laying out the result.&lt;/p&gt;&#xA;" OwnerUserId="236" LastActivityDate="2010-11-18T05:08:14.817" Title="Declarative UML" Tags="&lt;uml&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="2" />
  <row Id="18108" PostTypeId="2" ParentId="2492" CreationDate="2010-11-10T13:22:05.170" Score="1" ViewCount="" Body="&lt;p&gt;Purely for amusement value in light of StackOverflow it has to be &lt;a href=&quot;http://www.codinghorror.com/blog/2006/09/has-joel-spolsky-jumped-the-shark.html&quot; rel=&quot;nofollow&quot;&gt;Has Joel Spolsky Jumped the Shark&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-11T11:33:19.693" LastActivityDate="2010-11-11T11:33:19.693" />
  <row Id="18109" PostTypeId="2" ParentId="18086" CreationDate="2010-11-10T13:23:00.410" Score="1" ViewCount="" Body="&lt;p&gt;Yes, of course this is possible.  It is called ray tracing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being old and grey means I can remember when ray tracing was exclusively the province of large supercomputers.  It is now routinely assigned as an undergraduate computer graphics class programming assignment, and the results can be STUNNING.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take a look at &lt;a href=&quot;http://www.cs.utexas.edu/~bajaj/graphics10/cs354/gallery/Spring2010/project4/&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;, for some examples of what the kids are doing these days.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-11-10T13:23:00.410" CommentCount="2" />
  <row Id="18111" PostTypeId="2" ParentId="18059" CreationDate="2010-11-10T13:35:02.333" Score="1" ViewCount="" Body="&lt;p&gt;Hello&lt;br&gt;&#xA;I haven't really thought it out but it is similar to when you build a house in small steps. Add a room, add another floor and after some time bearing walls are deep inside the construction. The floor is not at the same height, etc.  The plumbing system is all over the house.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you need to consolidate the space and rebuild walls, make more efficient plumbing and so forth to make more convenient to use the spaces to different purposes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something along these lines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The advantages is that this metaphor works because most people have experiences of being inside a house.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps.&#xA;Görgen&lt;/p&gt;&#xA;" OwnerUserId="1041" LastActivityDate="2010-11-10T13:35:02.333" CommunityOwnedDate="2011-03-15T06:24:13.740" />
  <row Id="18112" PostTypeId="2" ParentId="18107" CreationDate="2010-11-10T13:35:22.067" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://plantuml.sourceforge.net/index.html&quot; rel=&quot;nofollow&quot;&gt;Plantuml&lt;/a&gt; ?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;PlantUML is a component that allows to&#xA;  quickly write :&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* sequence diagram,&#xA;* use case diagram,&#xA;* class diagram,&#xA;* activity diagram,&#xA;* component diagram,&#xA;* state diagram&#xA;* object diagram&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;  &#xA;  &lt;p&gt;Diagrams are defined using a simple&#xA;  and intuitive language.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;They can be generated in PNG or SVG&#xA;  format. It is also possible to&#xA;  generate ASCII art diagrams (only for&#xA;  sequence diagrams).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;@startuml img/usecase_img01.png&#xA;&#xA;User -&amp;gt; (Start)&#xA;User --&amp;gt; (Use the application) : A small label&#xA;&#xA;:Main Admin: ---&amp;gt; (Use the application) : This is\nyet another\nlabel&#xA;&#xA;@enduml&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://plantuml.sourceforge.net/img/usecase_img01.png&quot; alt=&quot;plantum imagel&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;@startuml img/classes04.png&#xA;&#xA;abstract class AbstractList&#xA;abstract AbstractCollection&#xA;interface List&#xA;interface Collection&#xA;&#xA;List &amp;lt;|-- AbstractList&#xA;Collection &amp;lt;|-- AbstractCollection&#xA;&#xA;Collection &amp;lt;|- List&#xA;AbstractCollection &amp;lt;|- AbstractList&#xA;AbstractList &amp;lt;|-- ArrayList&#xA;&#xA;ArrayList : Object[] elementData&#xA;ArrayList : size()&#xA;&#xA;enum TimeUnit&#xA;TimeUnit : DAYS&#xA;TimeUnit : HOURS&#xA;TimeUnit : MINUTES&#xA;&#xA;@enduml&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://plantuml.sourceforge.net/img/classes04.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="4989" LastEditorUserId="4989" LastEditorDisplayName="" LastEditDate="2010-11-10T13:56:33.613" LastActivityDate="2010-11-10T13:56:33.613" />
  <row Id="18113" PostTypeId="2" ParentId="262" CreationDate="2010-11-10T13:45:13.707" Score="4" ViewCount="" Body="&lt;p&gt;TIOBE rates language uses... &lt;a href=&quot;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&quot; rel=&quot;nofollow&quot;&gt;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Based off their stats Java leads the way and will probably do so for a long time to come - #1 since 2005.  I have used Java over my career and everywhere I have ever worked had Java applications/developers - even in places that considered themselves Microsoft Dev Shops.  Java is just such an easy language to pick up when you have to develop solutions on a Mac or Linux Server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, good ole C/C++ are still holding strong at #2 and #3 - while C# - the language everyone thinks it is the most popular (MS marketing at its best) - isn't even close!  I use C# now, but it will take years to equal the amount of code I've written in Java and Delphi.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So don't be afraid to learn or use Java - there is always jobs posted for them. So, yes Java will will be very relevant for a long time to come.&lt;/p&gt;&#xA;" OwnerUserId="1789" LastActivityDate="2010-11-10T13:45:13.707" CommunityOwnedDate="2011-03-14T15:05:05.090" />
  <row Id="18114" PostTypeId="2" ParentId="18096" CreationDate="2010-11-10T13:47:11.550" Score="0" ViewCount="" Body="&lt;p&gt;With your level of knowledge about the project as a whole I would keep your current role, but get some specialized assistance. You could find someone to optimize the database and another to improve the UI. Most of their expertise can be utilized right away and then hire as needed. Maybe you need to make a significant change to the database or it starts to slow down again. You may want a different look to the user interfaces and you can bring that person back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask you boss for the tools to help with coordinating the efforts with outside developers. You want to be involved with the selection and implementation of this application as much as possible.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-10T13:47:11.550" />
  <row Id="18115" PostTypeId="2" ParentId="18003" CreationDate="2010-11-10T13:49:58.157" Score="0" ViewCount="" Body="&lt;p&gt;Just like with spoken languages, the main use it to be able to speak to other speakers. Other than that, it's to be able to express certain ideas succinctly (what we normally call industry jargon, or in relation to software, paradigms). Right now, Gosu has neither, as far as I can see.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if this becomes popular, of course I'd have to reconsider.&lt;/p&gt;&#xA;" OwnerUserId="7425" LastActivityDate="2010-11-10T13:49:58.157" />
  <row Id="18116" PostTypeId="1" CreationDate="2010-11-10T13:52:10.107" Score="6" ViewCount="341" Body="&lt;p&gt;I've always been curious about trying out online freelance sites... it would be nice to work from home, feel independent, get to choose what I want to work on, get to work on different technologies, lose the PHB, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However I never really gave them a chance because I'm used to American rates and assumed that I would be competing with people from India, Russia, China, etc. that would severely undercut me, and it wouldn't be viable for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I correct in this assumption or should I give it a shot?  What kind of hourly rate would I be able to expect on short-term programming work?&lt;/p&gt;&#xA;" OwnerUserId="4526" LastActivityDate="2010-11-29T06:04:33.913" Title="Is online freelance work viable by American standards?" Tags="&lt;freelancing&gt;" AnswerCount="4" FavoriteCount="2" />
  <row Id="18117" PostTypeId="2" ParentId="18116" CreationDate="2010-11-10T14:01:17.723" Score="3" ViewCount="" Body="&lt;p&gt;You are absolutely correct. Most people who look for contractors on freelance sites seem to look for a top-notch quality at a low-most rate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's ridiculous. And yes you will be competing with individuals from a lot of countries who seem to have absurdly huge skills portfolios, sometimes it seems they include everything in range from FORTRAN to HTML5.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Re: pay rates - from ($5-$25)/hr.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you would like to try it out, go and try out just don't quit your day job yet.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastEditorUserId="5185" LastEditorDisplayName="" LastEditDate="2010-11-10T14:06:46.803" LastActivityDate="2010-11-10T14:06:46.803" CommentCount="1" />
  <row Id="18118" PostTypeId="2" ParentId="18096" CreationDate="2010-11-10T14:29:36.180" Score="1" ViewCount="" Body="&lt;p&gt;Well it really depends on you.  Now that you're in a position to hire people underneath you, you can take one of two central roles:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You can play the role of the project&#xA;manager.  You create the time&#xA;estimates and organize the&#xA;specifications for each thing your&#xA;boss wants you to do.  It&#xA;essentially distants you a little&#xA;from the technical aspect of the&#xA;job, and there's a lot of room for&#xA;growth (perhaps not in the immediate&#xA;future but down the road).  It also&#xA;means you're the one who gets fired&#xA;when your hirelings don't do the&#xA;work on time, so you have to provide&#xA;good estimates and reasonable&#xA;deadlines.&lt;/li&gt;&#xA;&lt;li&gt;Or you can play the role of the&#xA;technical advisor.  Whenever any&#xA;questions of a technical nature arise, you're the man to consult.  It also means you must be able to make educated decisions regarding the direction of technologies used.  As for organization, you leave it to your superiors.  You're only responsible for the time estimates that you claim.  The role of your hirelings is to assist you complete the work that needs to be done and explaining how to do it if they don't know how (which is a subtle difference from handing over the work and letting them make more independent decisions).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Hope that helps.  Do whatever sounds more appealing to you for a job.  Though I would encourage you not to follow the path to the dark side and stay true to your humble beginnings as a programmer.&lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-10T14:29:36.180" />
  <row Id="18119" PostTypeId="2" ParentId="18116" CreationDate="2010-11-10T14:30:21.967" Score="3" ViewCount="" Body="&lt;p&gt;I just started doing freelance work (in order to build a portfolio) and I have noticed that many of the tech freelance sites (Project4Hire, Elance, etc.) have rates that are sub-(American)standard because of the bids from places like India and Pakistan. The one site that I have noticed that offers decent wages and definitely local work is Craigslist. I always keep an eye on the &quot;Computer Gigs&quot; in my area and it seems that the majority of the time people are looking for local freelancers so that they can actually meet face to face. While it is more hit or miss (projects range from &quot;real&quot; projects to helping somebody with their homework) I have seen more local stuff that would allow you for better wages. &lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-11-10T14:30:21.967" CommentCount="3" />
  <row Id="18120" PostTypeId="1" AcceptedAnswerId="18126" CreationDate="2010-11-10T14:32:58.123" Score="108" ViewCount="6637" Body="&lt;p&gt;What is the good/bad decision you made in your mid 20's about your career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&#xA;I ask too many questions that's why I wanted to keep the question short.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is about technically, financially, healthwise, family &amp;amp; work-life balance and long running career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) &lt;strong&gt;Technically (learning technologies)&lt;/strong&gt;- I like C#, WPF and Silverlight. I've been working around 1.5 years in this. Also, I have very much interest in learning many technologies like python, ruby, perl, F#, PHP, etc., But, after starting to learn a new technology I'm getting a guilty feeling in my mind saying I'm not yet fully done with C# or WPF or Silverlight, why so hurry in stepping into all these things. Finally, stop all the learning plans and start into the technology I use at work (C#, WPF and Silverlight). My job is not a time bound one. I have to work even it takes 16 to 20 hours too.(But I really like my job it was well challenging). I've tried so much of work management ideas. The thing is, in companies like ours work keep on coming. That is so good, But, this affects my learning plans drastically. What I learn in my technology perspective is litrellay the things I work for my job. I know I'm not the one like this. There are many people doing multiple jobs. I wonder about people in SO sites how they are managing all these stuffs and excel.&lt;br/&gt;&lt;br/&gt;&#xA;2) &lt;strong&gt;Financially&lt;/strong&gt; - If you want to switch your job. Consider, if you are in this age what should be the best desicion to make. A well paid less challenging or less paid more challenging?&lt;br/&gt; &lt;br/&gt;&#xA;3) &lt;strong&gt;Health concerns&lt;/strong&gt; - I know health is more important thing. But, because of few health concerns switching to a less challenging job is a wise decision? I'm worried about a nightmare of sitting idle in office. Will I get big chance to prove my skills or would my number of experience counts?&lt;br/&gt;&lt;br/&gt;&#xA;4) &lt;strong&gt;Family life&lt;/strong&gt; - When is the best time to getting ourselves into marriage etc., Is early 20's good or late 20's? &lt;br/&gt; &lt;br/&gt;&#xA;5) &lt;strong&gt;long-Career&lt;/strong&gt; - Will long career affects if we have any break in-between our jobs? What are the keys things to look in a new job? (Considering mid 20's as your age)&lt;/p&gt;&#xA;" OwnerUserId="7429" LastEditorUserId="7429" LastEditorDisplayName="" LastEditDate="2010-11-10T17:08:47.587" LastActivityDate="2010-12-01T00:16:40.690" CommunityOwnedDate="2010-11-13T20:22:38.513" Title="What is the good/bad decision you made in your mid 20's about your career" Tags="&lt;career&gt;" AnswerCount="34" CommentCount="11" FavoriteCount="78" />
  <row Id="18121" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T14:42:18.400" Score="29" ViewCount="" Body="&lt;p&gt;Good decision... Willingness to experiment with multiple different languages. Opened me up to more opportunities. &lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-11-10T14:42:18.400" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="5" />
  <row Id="18122" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T14:44:37.440" Score="4" ViewCount="" Body="&lt;p&gt;Bad decision - Turning down a job offer to stay closer to home only to see that job lose funding.&lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-11-10T14:44:37.440" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="1" />
  <row Id="18123" PostTypeId="2" ParentId="2492" CreationDate="2010-11-10T14:44:48.907" Score="0" ViewCount="" Body="&lt;p&gt;Without a doubt: &lt;a href=&quot;http://www.codinghorror.com/blog/2009/07/code-its-trivial.html&quot; rel=&quot;nofollow&quot;&gt;Code: It's Trivial&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="6495" LastActivityDate="2010-11-10T14:44:48.907" />
  <row Id="18124" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T14:45:01.470" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Family&lt;/strong&gt;&#xA;The biggest decision I made that's affected my career was having kids. Obviously, that's a good decision, but it does create challenges when trying to stay ahead of the game with all the emerging technology. Looking back, I think I would have waited until I was 30-32, instead of 26. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Financially&lt;/strong&gt;&#xA;The other was to NOT go back and finish my BA degree. I was hired after getting an AA with only on semester of started on my BA. Looking back, that would have been just 2 more years of school to pay for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Health&lt;/strong&gt;&#xA;When my (ex)wife was pregnant, I took up running. If you're committing to a sedentary career, you owe it your heart and brain to do some exercise. Find an &lt;em&gt;outdoor&lt;/em&gt; hobby that gives you 30-60 minutes of exercise 4-5 days a week. For me, it was getting off the couch and training to run a 5K (3 miles). You'll thank yourself and will be amazed how many development things you'll solve while the heart is pumping.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastEditorUserId="4752" LastEditorDisplayName="" LastEditDate="2010-11-10T16:15:40.923" LastActivityDate="2010-11-10T16:15:40.923" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="7" />
  <row Id="18125" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T14:49:02.963" Score="23" ViewCount="" Body="&lt;p&gt;The only thing that I regret now is that in my mid 20's I was somehow sure that I'd spend my whole career working at companies. Someone else's, not mine. I thought at the time employment was safer. Then many years of frustration, disappointment and disillusionment followed until I arrived at understanding it was a waste of time. Every time you leave your company for the next one you realize you take nothing home (except your gained experience of course, but then you can gain experience everywhere regardless of your employment status and type.) The most frustrating thing was that at typical software companies nobody cares about your true productivity. You may be terrific or you may be bad, in the end it's the same salary and the same leaving notice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you choose the employment path, which is still fine, be very very very picky and careful about your potential employers.&lt;/p&gt;&#xA;" OwnerUserId="5635" LastEditorUserId="5635" LastEditorDisplayName="" LastEditDate="2010-11-12T00:11:06.217" LastActivityDate="2010-11-12T00:11:06.217" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="4" />
  <row Id="18126" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T14:49:04.070" Score="142" ViewCount="" Body="&lt;p&gt;Bad decision:  Always assuming that the grass was greener elsewhere and that moving is always the best answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Almost every company has it's downsides.  When you moan about the place you're working to your friend and he says &quot;hey, where I work is nothing like that&quot;, he's not lying, it's just what's wrong there is different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some companies improve over time and some get worse.  Generally when things are at their lowest they will get better because there is only one place for them to go - up.  Likewise there are plenty of cool places to work which will nose dive because it wasn't sustainable for one reason or another.  There's nothing worse than bailing on a job only to see things pick up there just as your new place turns out to be nothing like you thought it was.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not saying don't be critical of your work place or don't leave, just really really think about it and work out if it's really the best move.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of your specific questions, my quick thoughts: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Technologies - you can't know everything don't try and don't worry about it, in three years time it will be obsolete anyway.  Pick a small number of things and be good at them, be aware of the rest.  &lt;/li&gt;&#xA;&lt;li&gt;Health - nothing is more important.  &lt;/li&gt;&#xA;&lt;li&gt;Marriage - marry when you meet the person you want to marry, that's the only right time.  If it's the right person it's more important than your career.  If it's not then don't marry them.  &lt;/li&gt;&#xA;&lt;li&gt;Finance - generally in IT you'll be wealthy enough.  If you want more than that be prepared to compromise on the other things.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-10T16:03:44.670" LastActivityDate="2010-11-10T16:03:44.670" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="15" />
  <row Id="18127" PostTypeId="1" CreationDate="2010-11-10T14:56:37.313" Score="4" ViewCount="202" Body="&lt;p&gt;If you were writing a low level driver or OS components/kernels how would you do it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The osdev.org folks seem to think that the important bits are not meaningfully testable this way see &lt;a href=&quot;http://wiki.osdev.org/Unit_Testing&quot; rel=&quot;nofollow&quot;&gt;http://wiki.osdev.org/Unit_Testing&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have read some discussions where people thought differently, but I have failed to find any real life examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this something people actually do, or just something that people talk about in theory because there is not a good way to do it in practice?&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-11T10:22:09.267" Title="Does anyone actually do TDD on low level components? Are there real life examples?" Tags="&lt;unit-testing&gt;&lt;tdd&gt;&lt;development-methodologies&gt;&lt;operating-systems&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="1" />
  <row Id="18128" PostTypeId="2" ParentId="6014" CreationDate="2010-11-10T14:57:24.900" Score="0" ViewCount="" Body="&lt;p&gt;weren't you afraid that someone would ask, what wrong with getting the range out of a sorted array? :)&lt;/p&gt;&#xA;" OwnerUserId="5260" LastActivityDate="2010-11-10T14:57:24.900" />
  <row Id="18129" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T15:00:55.840" Score="15" ViewCount="" Body="&lt;p&gt;Deciding to make my job work for me instead of jumping ship when it seemed a dead-end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By working at it I managed to change my job's profile, both in the type of applications I get to build, and the type of technologies I get to work with.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-11-10T15:00:55.840" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="2" />
  <row Id="18130" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T15:07:16.663" Score="37" ViewCount="" Body="&lt;p&gt;One decision was key to my mid twenties and affected everything in my life afterwards. That was my choice of a life partner. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The bad from that was that he didn't want to move ever again (he was a Navy brat and then a Naval officer who retired shortly after we started living together) which did limit my career choices. The bad was way over powered by the good and I would do it again in a heartbeat even accounting for my grief 26 years later when he died. There are much more important things than your career in life. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The good - he encouraged me to do what made me happy, as result I didn't have to stay in jobs I hated just to pay the bills. He gave me the freedom to switch careers in midstream in my late 30's and without him I might never have moved to IT at all. He supported me entirely when I tried and failed at owning my own business. He gave me the space I needed to pursue the things that made me happy as I gave him the same space.  He celebrated my success and gave me support to get through the hard times. He loved me unconditionally and choosing him as my life partner was the best choice I ever made in my life. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-10T15:07:16.663" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="4" />
  <row Id="18131" PostTypeId="1" CreationDate="2010-11-10T15:14:44.437" Score="5" ViewCount="115" Body="&lt;p&gt;I know the general trend against comments explaining how something works, and how it's a good idea to use them only to explain why you're doing what you're doing, but what about using comments as a means of dividing up the code?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assume you have a script that does a preamble, searches through a bunch of records, prints the records, then closes everything:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// Preamble&#xA;... preamble code, say about 10-15 lines ...&#xA;&#xA;// Find records&#xA;... sql query ...&#xA;... put records into array ...&#xA;... some other stuff ...&#xA;&#xA;// Print records&#xA;... printing records, 20-30 lines a record ...&#xA;&#xA;// Close everything&#xA;...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;More of a way to visually divide the code, make it easier to find a certain section. Like if in a month you need to fix the printing code, rather than reading through a couple hundred lines to try and find the right spot, just look at the comments to see where it is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What actually happens in each section being fairly straightforward and easy to tell what's going on, &lt;strong&gt;would this approach to comments be considered good or bad&lt;/strong&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&#xA;I'm working mostly with PHP scripts, where you either can't put code into functions, or it's impractical to do so. However, the same sort of thing would apply to large class files, with several methods that do related things, like getters/setters, database updates, etc.&lt;/p&gt;&#xA;" OwnerUserId="2416" LastEditorUserId="2416" LastEditorDisplayName="" LastEditDate="2010-11-10T19:58:35.440" LastActivityDate="2010-11-10T19:58:35.440" Title="Divisional/Sectional comments, good or bad?" Tags="&lt;comments&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="2" />
  <row Id="18133" PostTypeId="2" ParentId="18131" CreationDate="2010-11-10T15:21:50.847" Score="0" ViewCount="" Body="&lt;p&gt;Personally it would be redundant. The reason being is if you were to create a function or class to handle the task then it should be straight foreword to go back and make changes in the future.&lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-11-10T15:21:50.847" />
  <row Id="18134" PostTypeId="2" ParentId="18131" CreationDate="2010-11-10T15:22:36.773" Score="1" ViewCount="" Body="&lt;p&gt;In a procedural scripting environment, where all code is contained in one file as subroutines, comments describing sections of code would be a must after a certain point, and there's nothing wrong with that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm currently staring at an Applescript that is almost 700 lines long that is about to double in size here pretty soon (other Applescripts I have top over 2000 lines) with dozens of subroutines. Moving code to external files is more trouble than it's worth right now, so section commenting is the better way of managing it all until I find time to improve the situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm basing my answer on the fact that you specifically used the word &quot;script&quot; in your question, which belies a procedural script as opposed to object-oriented code.&lt;/p&gt;&#xA;" OwnerUserId="6419" LastEditorUserId="6419" LastEditorDisplayName="" LastEditDate="2010-11-10T16:09:06.327" LastActivityDate="2010-11-10T16:09:06.327" />
  <row Id="18135" PostTypeId="2" ParentId="18131" CreationDate="2010-11-10T15:23:08.387" Score="6" ViewCount="" Body="&lt;p&gt;They're not out and out bad but I would ask if your routine is so long that it has sections that are significant in their own right and need a comment wouldn't you be better breaking it down into smaller routines?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'd then have a top level routine which was totally readable without comments:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thing.Initialise&lt;br&gt;&#xA;Thing.PopulateFromDatabase&lt;br&gt;&#xA;Thing.PrintResults&lt;br&gt;&#xA;Thing.ShutDown  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus it's all reusable now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also add that generally things like &quot;close everything down&quot; should be obvious from the code and the structure and therefore unnecessary.  If the code is This.Close(), That.CleanUp(), TheOther.Disconnect() then you really don't need a comment explaining. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where I think these sorts of comments are good is in roughing out your design and structure before you start.  I find it's good to write the thing out in pseudo code in comments and then remove them as I actually code it.  You can then add and amend the design quickly as you are coding without the risk of forgetting what it was you'd decided.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-10T15:23:08.387" CommentCount="3" />
  <row Id="18136" PostTypeId="2" ParentId="18131" CreationDate="2010-11-10T15:25:16.780" Score="1" ViewCount="" Body="&lt;p&gt;Personally, I'm against this type of commenting but only because most modern code editors allow you to collapse methods making it easier to read.  Adding comments therefore tends to at clutter since it no longer contributes to clarifying anything but simply declaring grouping.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;C# has a grouping using #region and #endregion which is useful.&#xA;Eclipse makes decent use of an outline.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there's no wrong way to comment code and generally speaking it's not 'worse' to have more comments (not going to pretend you can code faster without it).  &lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-10T15:25:16.780" CommentCount="2" />
  <row Id="18137" PostTypeId="1" CreationDate="2010-11-10T15:26:13.520" Score="0" ViewCount="79" Body="&lt;p&gt;Hi everybody. I am a web developer. Worked in many projects. Now I have changed my work place. It is big organisation. I and my group are thinking about new project. There is no difficulty to write project but our organisation is big and it's has little offices in many places (within the country). There is no any problem about internet in center. But there is problem with internet in remote areas sometimes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is: is there any solution to solve problem as it? If anybody has create project such this please tell little about what technologies you have used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="7436" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-11-10T15:52:42.187" LastActivityDate="2010-11-10T15:52:42.187" Title="Web development advice for a distributed development team" Tags="&lt;web-development&gt;" AnswerCount="2" CommentCount="4" FavoriteCount="1" />
  <row Id="18138" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T15:26:28.527" Score="25" ViewCount="" Body="&lt;p&gt;Bad decision: never having worked abroad for a year or so (doesn't really matter where).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I'd love to, but now I have a wife and three kids and everything is a lot more complicated: suddenly you have to find a 4+ bedroom house, a school and a kindergarden along with a job.&lt;/p&gt;&#xA;" OwnerUserId="2894" LastActivityDate="2010-11-10T15:26:28.527" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="3" />
  <row Id="18139" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T15:27:25.593" Score="27" ViewCount="" Body="&lt;p&gt;Learning from mistakes is important, dwelling on them is not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Bad decisions:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;em&gt;Not finishing my master's degree.&lt;/em&gt; Perhaps now that I have 10+ years of experience it doesn't make much difference on my résumé, but it would have made things easier for me and it would have given me a sense of accomplishment that I lacked early on.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;em&gt;I regret not spending more time looking for career options.&lt;/em&gt; I've changed jobs 5 times, between 3 different companies. Maybe I didn't work elsewhere because it was convenient for me to work somewhere familiar, and things would have worked out better in another company. Perhaps not.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Good decision(s):&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;Not finishing my master's degree, and taking a job instead.&lt;/em&gt; Working and implementing something that would be used was immensely gratifying, and I met wonderful people that I might not have met otherwise.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It's difficult to know how things could have turned out if I had done things differently - bad decisions may out to be good ones in disguise.&lt;/p&gt;&#xA;" OwnerUserId="1020" LastActivityDate="2010-11-10T15:27:25.593" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="9" />
  <row Id="18140" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T15:32:09.777" Score="4" ViewCount="" Body="&lt;p&gt;After I got my BSEE and starting work, about a year later I figured most of what I was designing in hardware could eventually be done by a computer program.  (This was in 1970, and microprocessors hadn't been invented yet, so I was basing this decision mostly on minicomputers of the day like the PDP-8, but it turned out to be right on.)  So I went back and got an MSCS going to night school, one course at a time (one semester I tried doing two and that was too much.)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I discovered going back to school after I was had starting working gave me a completely different outlook.  Time was more precious, since I was working full-time so I didn't have time to goof-off.  I got much better grades (my company only paid for my tuition if I got B's or better.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Took me six years, but it was worth it -- the combination of the two degrees opened up a lot of opportunities for me.  The second decision, was to wait and get married until after I completed my graduate degree.  We have now been married for 30+ years and have three grandsons, so things worked out well.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-11-10T15:43:03.213" LastActivityDate="2010-11-10T15:43:03.213" CommunityOwnedDate="2010-11-13T20:22:38.513" />
  <row Id="18141" PostTypeId="1" AcceptedAnswerId="18146" CreationDate="2010-11-10T15:35:43.007" Score="3" ViewCount="435" Body="&lt;p&gt;I know that it is possible to get into software development without a degree in Computer Science but is it possible (I should say common) to be able to get an embedded programming job without the Computer Science degree (or any engineering degree as well)?&lt;/p&gt;&#xA;" OwnerUserId="7427" LastEditorUserId="1306" LastEditorDisplayName="" LastEditDate="2010-11-10T16:35:57.907" LastActivityDate="2010-11-10T17:16:47.547" Title="Is A Degree Needed For Low Level(Embedded) Programming Jobs?" Tags="&lt;career&gt;&lt;education&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="1" />
  <row Id="18142" PostTypeId="2" ParentId="18137" CreationDate="2010-11-10T15:35:58.937" Score="0" ViewCount="" Body="&lt;p&gt;I would decide upon a 'central' site by which major decisions are made regarding the project (although that doesn't mean other offices can't make decisions).  At that site, host a SVN server and have all other offices commit code to that server in order to have a consist progression of development.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would help to find some sort of medium by which you can talk easily with other programmers such as yahoo or windows live.  Email is okay, but you tend to lack the response times you could get otherwise with chat programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope that's what you meant by internet troubles.  Otherwise you're going to have to be more clear with your question.&lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-10T15:35:58.937" CommentCount="2" />
  <row Id="18143" PostTypeId="2" ParentId="9576" CreationDate="2010-11-10T15:36:17.877" Score="0" ViewCount="" Body="&lt;p&gt;I don't know anyone who has burnt out in IT.  The stories you hear are largely from people who were, shall we say, obsessed and yes people like that burn out but it's not specific to IT and it's very rare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know a couple of people who've gone on to do different things but generally that was because it was more appealing to them rather than anything preventing them carrying on in IT.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been working in IT for nearly 20 years and have no plans to stop and see no reason why I should want or need to.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-10T15:36:17.877" />
  <row Id="18144" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T15:36:37.330" Score="21" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Good Decision:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Taking risks and trying new things before I had a wife and kids.  It’s much easier and less stressful to take risks when the only responsibility you have is yourself.  I would also say your chances of success are higher at that point because you don't have lots of responsibilities.  Another plus to this is you gain a lot of knowledge and experience as to what works and what doesn’t what’s risky and what’s not really that risky.  You get to apply all of that experience to decisions you will need to make after you find a partner and potentially start a family when your decisions will be affecting more people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;&#xA;There are lots of answers that say &quot;waiting to get married until...&quot; or &quot;waiting to have children until...&quot;  Thats great and all but if you are allways looking for that ideal time to get married, or have kids, you'll never find it.  There is no ideal time. If you constantly are saying &quot;no not yet lets just wait till this, or that&quot; you may find all of a sudden you missed your opportunity.&lt;/p&gt;&#xA;" OwnerUserId="1306" LastEditorUserId="1306" LastEditorDisplayName="" LastEditDate="2010-11-10T15:43:11.997" LastActivityDate="2010-11-10T15:43:11.997" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="4" />
  <row Id="18145" PostTypeId="2" ParentId="18131" CreationDate="2010-11-10T15:38:07.033" Score="1" ViewCount="" Body="&lt;p&gt;I think it would be fine IF you have a lot of code that is similiar, e.g. &lt;code&gt;this.setProperty(&quot;prop&quot;, &quot;val&quot;);&lt;/code&gt; over and over again. So, you could have an init() method that had a global properties section, local properties, and session initializers. However, I would still put these in separate methods unless there was absolutely NO chance that that code could possibly be reused.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-10T15:38:07.033" />
  <row Id="18146" PostTypeId="2" ParentId="18141" CreationDate="2010-11-10T15:43:49.970" Score="8" ViewCount="" Body="&lt;p&gt;Dijkstra once said &quot;computer science is no more about computers than astronomy is about telescopes.&quot;  You don't need a degree to program, though it helps to know how to use the instruments necessary for programming.  Assuming you can, I see no reason why you shouldn't be able to.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However you'd need to get your foot in the door, and if you can't do that with a degree, you're going to have to be able to demonstrate it instead.  My advice to you is create an impressive demo of some sort.&lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-10T15:43:49.970" CommentCount="5" />
  <row Id="18147" PostTypeId="1" AcceptedAnswerId="18209" CreationDate="2010-11-10T15:46:40.467" Score="0" ViewCount="97" Body="&lt;p&gt;as i try to program a solution to a request arise, i cant separate the difference between implementation problems , and design problems. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;how specific and how do you express the design to the problem?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i feel like in a magic loop.&lt;/p&gt;&#xA;" OwnerUserId="5260" LastActivityDate="2010-11-10T19:34:38.077" Title="how do you seperate from designing question to programming questions?" Tags="&lt;design&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="18148" PostTypeId="2" ParentId="18137" CreationDate="2010-11-10T15:46:59.843" Score="1" ViewCount="" Body="&lt;p&gt;Distributed working is doable but most of the tools that make it easy are going to be internet based so you're going to struggle a bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First thing is to look for tools that don't demand being on-line continually.  Look at distributed source control which can have mini-hubs in each office - something like Git.  This means that they can sync when their connection is active and it's not a problem when it's not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For communications, forums or something like 37signals Campfire, both of which keep a history of the discussions will be better than chat clients.  That way when someone's connection disappears they can go back in and review what people were saying once their connection is back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You also need to work on your processes.  Two things I'd look at:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Don't assume that people have seen changes or received e-mails.  Use read receipts and if you don't get a read receipt tell people they need to pick up the phone and make sure the person is aware.  Make it the responsibility of the person communicating the change to get acknowledgement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Divide work into chunks that programmers can work on for a few days at a time so day to day communication isn't so critical.  That way if the connection does go down they're not going to be doing nothing as they'll always have things on their task list.  If you can put whole chunks of the project out to different offices even better as they'll be their own little unit.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-10T15:46:59.843" CommentCount="2" />
  <row Id="18149" PostTypeId="2" ParentId="18116" CreationDate="2010-11-10T15:51:04.353" Score="6" ViewCount="" Body="&lt;p&gt;When I set out to try working freelance, the first thing I did was to make a list of 100 small design and web companies in my area. I put together an informal email introducing myself, saying what I did and explaining that I was local, linking my portfolio site and suggesting that I might be a good person to pick up any spare capacity on a freelance basis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before I had got a quarter of the way through my list I got enough work to fill in the gaps between other projects. People liked having someone who was competent and close enough that I could go and meet them in person to demonstrate stuff or talk through projects. You don't need a lot of hits, just a few that can consistently put some work your way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end I quit freelancing because I hated all the stuff that isn't about programming- all the invoicing, accountancy and other necessary administrative elements and I realised I'd be happier contracting or working full time, but if you're in an area where there are a fair number of businesses you can work with and you've got the skills ( and financial cushion ) to do the job, then it's quite feasible.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-10T15:51:04.353" CommentCount="1" />
  <row Id="18150" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T15:51:46.537" Score="43" ViewCount="" Body="&lt;p&gt;Good Decision:  Have other things in your life.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't make it all about programming and all about your job - if you do if and when something goes wrong in that area you've got too much at stake.  Always have something / someplace  / someone where you can take a break from it all and something else which is giving you enjoyment and satisfaction.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-10T15:51:46.537" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="4" />
  <row Id="18151" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T15:51:55.640" Score="6" ViewCount="" Body="&lt;p&gt;Good Decision:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Taking a risk and giving up the safety of my teaching job (I used to to teach English and Drama) to do a Masters in Computer Science. This single act has totally transformed my life and my outlook and led to untold riches (not really) and job satisfaction (some of the time).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad Decision:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not sticking with Java - I learnt to code in Java but after a few years switched to MS.Net technologies. Around about the time of .Net v1.1 being released. This seemed like good sense at the time (there were precious few Java jobs around Birmingham) but now doesn't seem too smart; all the tedious corporate work seems to be in ASP.Net and all the sexy stuff (banking, media, SMP) is in Java. Damn it.&lt;/p&gt;&#xA;" OwnerUserId="7439" LastActivityDate="2010-11-10T15:51:55.640" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="8" />
  <row Id="18152" PostTypeId="2" ParentId="18147" CreationDate="2010-11-10T15:51:58.680" Score="2" ViewCount="" Body="&lt;p&gt;Design problems are a subset of implementation problems since technically everything is an implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Design problems have the distinct bonus of requiring you to change large sections of code in order to make it work.  If you're having to rewire half your program due to this request, it's a design problem.  Pray it isn't.  &lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-10T15:51:58.680" CommentCount="4" />
  <row Id="18153" PostTypeId="2" ParentId="18029" CreationDate="2010-11-10T15:52:36.887" Score="1" ViewCount="" Body="&lt;p&gt;After many annoying rewrites, I now operate what I call full disclosure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So after discussing the customers requirements and desires, I will always write up what I perceive they want and how I will proceed to fulfil that requirement. I will then send them what I've written and wait until they reply in the affirmative before beginning work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If its a large project (more than say 5 days work) I'll prototype as well. This gives them a chance to change their mind without massive code changes at my end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It doesn't always work, but at least I am in a position where the client knows it is them changing their mind and not me implementing incorrectly.&lt;/p&gt;&#xA;" OwnerUserId="7092" LastActivityDate="2010-11-10T15:52:36.887" />
  <row Id="18154" PostTypeId="2" ParentId="18141" CreationDate="2010-11-10T15:52:37.553" Score="2" ViewCount="" Body="&lt;p&gt;As noted by &lt;a href=&quot;http://programmers.stackexchange.com/questions/18141/is-a-degree-needed-for-low-levelembedded-programming-jobs/18146#18146&quot;&gt;Neil&lt;/a&gt;, in a lot of cases, a Bachelors degree in computer science is going to be more about getting your foot in the door with an entry level job than anything else. Likewise, it is also one of the check boxes that HR departments are going to be looking at when they are filtering applications and at some companies, the degree is mandatory for the given job, but they usually aren't software companies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of getting your foot in the door without a degree, some sort of proof that you know what you are doing is going to be needed so it might be a good idea to look around to see if there is some sort of class that you can take on the subject. This would give you some formal training that you can list on your resume and would also give you a chance to interact with people that know the subject so they can point out some things that might take you longer to come across on your own. Also, you might want to look into user groups that are in your area and start attending meetings so. The networking opportunities that such meeting get your name out there if you get a chance to do a demo at one of the meetings.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-11-10T15:52:37.553" CommentCount="1" />
  <row Id="18155" PostTypeId="2" ParentId="18141" CreationDate="2010-11-10T15:57:47.290" Score="1" ViewCount="" Body="&lt;p&gt;A degree isn't needed for any programming job but it certainly helps get you through the door.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm guessing that there may be ways to work your way up within a company or ways to get a role based on stuff you've done in your spare time but I'd imagine that 95% of people in IT in all areas have degrees.  Maybe not Comp Sci degrees (I don't - mine is electronic engineering and I've worked with historians who were good coders), but degrees in something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if for one reason or another you don't want to or can't go to university there will be alternatives, you just need to work out what they are.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-10T15:57:47.290" CommentCount="2" />
  <row Id="18156" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T16:00:20.877" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Good decision 1&lt;/strong&gt;: leaving my last job whilst desperately trying to hold onto it because I felt my career would be negatively affected.  If I hadn't have left that job, I'd be a much worse programmer today.  As the other comments state, however, this can swing both ways in that a job change can negatively impact you.  I'd definitely say the people you work with are equally as important as the work.  You spend all day with these people.  Fortunately I work with great people so it heightens my job enjoyment really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Good decision 2&lt;/strong&gt;: Getting married young.  I have 24/7 support from someone now, and it allows me to value my time at the computer much more, so I'm usually much more productive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Good decision 3&lt;/strong&gt;: Starting my own part-time software development company with a friend gave me some incentive to move into an area of experience which I enjoy.  Everything I can't do in my main job, I now do in my part-time job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Good decision 4&lt;/strong&gt;: Starting a masters degree, it has really given me in-depth knowledge on &lt;em&gt;how&lt;/em&gt; to study certain material, and this applies to my home technical reading.  Now I tend not to read cover-to-cover, I tend to soak it in and apply what I've learned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Bad decision&lt;/strong&gt;: The way I dealt with leaving my last job, it was very immature simply because of the feelings I had towards my former boss.  I could've been much more graceful in my departure, although it wasn't &lt;em&gt;that&lt;/em&gt; severe, it's just I didn't feel great about it.  I'd definitely say to never burn bridges, that's the worst thing you can do as it can almost erase years of work at a company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I am only 24, therefore quite inexperienced compared to many of you.&lt;/p&gt;&#xA;" OwnerUserId="4042" LastActivityDate="2010-11-10T16:00:20.877" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="3" />
  <row Id="18157" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T16:12:22.960" Score="10" ViewCount="" Body="&lt;p&gt;Bad decision: Not learning about the Green Card process in the U.S. until it was too late for me to get one.  I thought I had to work for 5 years in the US first and then get the next stage going only to discover this was too late to get it done and thus I had to come back to Canada.  However, the past is the past and I am here due to my past choices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Technically (learning technologies) - When I was around 25, this would be 10 years ago and I was learning ASP and converting from a proprietary mark-up to this stuff that was new to me called VBScript.  There was also knowing how to run an MS-SQL Server, network configurations, and a few other things I did as I was one of the few technical people in the dot-com that understood how to stitch things together.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Financially - When it comes to switching jobs, know &lt;strong&gt;why&lt;/strong&gt; one job would be better than another.  Is it salary and type of work?  Is it methodology and process?  What are the better parts and what are the worse parts because making a change can be tough for some people.  Others love change and are likely to be job hoppers for a number of years and be good at contracting and just go from project to project this way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Health concerns - Switching to a less challenging job may backfire as this may cause some new health concerns if you end up getting worried about job security, doing your job well, and a few other things.  This is omitting other things like Anxiety and Depression that may occur that can wreak havoc on one's mental state.  Your number of experience counts but keeping your skills sharp is also important here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) Family life - The best time to getting ourselves into marriage etc., Is early 20's good or late 20's?  This is such a personal question to my mind.  I'm in my mid-30s and have never been officially married though I did live with someone for a couple of years once.  If you can know what you'd need, want and can offer someone else that is compatible with you than power to you as I'm still working through some of this stuff now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) Long-Career - No, I had a 6 month break in-between jobs as I neared 30 and it hasn't hurt me yet.  The key is what do you do in that break.  If it is useful for recharging, sorting out what you want, or something else that makes this something other than time wasted waiting to get older.  The keys to a new job are to recognize what falls into a few categories of work stuff:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Dealbreakers - What are the things you won't take in a new job?  For example, if someone wanted to have you work embedding wires into your neck to try to tie you directly to a computer, I'd think most of us would reject such a job offer as this could be really dangerous.  Yes this could be an attempt at creating a real-life version of &quot;The Matrix&quot; but imagine how many deaths one could have in figuring out what kinds of settings are needed to interface with the brain properly.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Dislikes - What are those things that alone aren't a dealbreaker but are things you don't like enough that if a place has a few of them then this would get rejected.  If your workstation is locked down so that you can't install software you want.  If you had to track your time to the minute all the time.  These aren't hard to write and for some people these would be dealbreakers and for others they may accept them if there is enough upside.  I'd accept a locked down machine if I was paid $10,000,000 a year.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Wants - What are those things you'd want in a new job?  Do you want to use a particular technology professionally?  Work with a certain kind of project,e.g. ad agencies may work quite differently from an IT department of a large tech company or a systems integrator to give another example here, or methodology?  These are things that if a job had it, you'd likely apply and see more.  How long of a commute would you like?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Needs - What is your minimum threshold for a salary in a new job?  What kind of flexibility in work hours do you need?  What's the longest commute you'd accept?  Would you feel the need to move to a different country and then look for a new job?  The key points here is that in a sense this is the opposite of the first category.  Where a job with anything in the first bucket is tossed out, anything that misses one of these points may have a similar fate.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Don't forget to consider what kind of personal development path you want to take.  Do you want to be a CIO, a product manager, a developer, an architect, a development director, or something else?  This is something to consider as well as finding what do you like about this or that job.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-10T16:12:22.960" CommunityOwnedDate="2010-11-13T20:22:38.513" />
  <row Id="18158" PostTypeId="2" ParentId="17355" CreationDate="2010-11-10T16:19:50.883" Score="5" ViewCount="" Body="&lt;p&gt;&lt;code&gt;import this&lt;/code&gt; in Python.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;EDIT as comments cannot contain line breaks:  For those without a Python interpreter handy, this is the output&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Beautiful is better than ugly.&#xA;Explicit is better than implicit.&#xA;Simple is better than complex.&#xA;Complex is better than complicated.&#xA;Flat is better than nested.&#xA;Sparse is better than dense.&#xA;Readability counts.&#xA;Special cases aren't special enough to break the rules.&#xA;Although practicality beats purity.&#xA;Errors should never pass silently.&#xA;Unless explicitly silenced.&#xA;In the face of ambiguity, refuse the temptation to guess.&#xA;There should be one-- and preferably only one --obvious way to do it.&#xA;Although that way may not be obvious at first unless you're Dutch.&#xA;Now is better than never.&#xA;Although never is often better than *right* now.&#xA;If the implementation is hard to explain, it's a bad idea.&#xA;If the implementation is easy to explain, it may be a good idea.&#xA;Namespaces are one honking great idea -- let's do more of those!&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1454" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-12-03T10:39:49.387" LastActivityDate="2010-12-03T10:39:49.387" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="4" />
  <row Id="18159" PostTypeId="2" ParentId="17355" CreationDate="2010-11-10T16:24:41.010" Score="1" ViewCount="" Body="&lt;p&gt;I had a good one and I wrote it down in the margin.&lt;/p&gt;&#xA;" OwnerUserId="3439" LastActivityDate="2010-11-10T16:24:41.010" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="2" />
  <row Id="18160" PostTypeId="2" ParentId="18141" CreationDate="2010-11-10T16:27:12.477" Score="7" ViewCount="" Body="&lt;p&gt;Some background in electronics (or at least a desire to get into it) is pretty much needed to be successful in embedded programming.  I've been doing this for 30+ years, and did the formal way (BSEE + MSCS), but I've run across a lot of good self-taught embedded programmers along the way.  They all had one thing in common though -- somewhere in their background they had some electronics education (formal or otherwise).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're going to be doing a lot of bit twiddling and working with lots of low-level I/O registers, with so-called datasheets that might run several hundred pages, like &lt;a href=&quot;http://ww1.microchip.com/downloads/en/DeviceDoc/39905d.pdf&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; one (so if that document doesn't look interesting, forget about embedded programming).  You'll be using lots of serial busses like UART, SPI, I2C, and USB.  Eight and 16-bit timers.   Lots of interrupts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't have to be able to design a circuit, but it's best if you learn to read a schematic since you will probably be probing a circuit board with an oscilloscope or logic analyzer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming you're working with medium-sized devices, that might have only 32K to 256K of program memory, and 4K-16K of RAM, you'll probably be doing most of your programming in C -- but C with proprietary extensions (different for each chip), because most of these processors are Harvard architecture and have separate address spaces for fast RAM, extended RAM, and code space and pointers can get &lt;em&gt;really&lt;/em&gt; complicated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I consider small micros to be ones with just a few K of program memory and a few hundred bytes of RAM.  Those are still mostly programmed in assembly.  Then there are larger microprocessors that can run Linux and have MB of flash and RAM, but that's not really where main-stream embedded programming is either.)&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-11-10T16:27:12.477" CommentCount="1" />
  <row Id="18161" PostTypeId="1" CreationDate="2010-11-10T16:28:43.363" Score="5" ViewCount="105" Body="&lt;p&gt;After taking a class about information systems, I want to find additional resources for learning the various patterns, concepts, and examples of their implementation. The course did focus on Martin Fowler's Principles of Enterprise Application Architecture and had a project that attempted to implement some of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, where can I learn more about Information System design and implementation?&lt;/p&gt;&#xA;" OwnerUserId="7305" LastActivityDate="2010-11-16T14:16:28.047" Title="What are good Information System design resources?" Tags="&lt;design&gt;&lt;web-applications&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="1" />
  <row Id="18162" PostTypeId="2" ParentId="16436" CreationDate="2010-11-10T16:31:06.997" Score="5" ViewCount="" Body="&lt;p&gt;I have been giving a great deal of interviews recently, and here are some of the questions I have received from potential candidates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(not such good ones)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How did I do?&lt;/li&gt;&#xA;&lt;li&gt;What do you think of my skills?&lt;/li&gt;&#xA;&lt;li&gt;So do you think you will hire me?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(&lt;em&gt;good ones&lt;/em&gt;)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What source control tool do you use?&lt;/li&gt;&#xA;&lt;li&gt;What development methodology do you&#xA;use? &lt;/li&gt;&#xA;&lt;li&gt;Do you use Agile? &lt;/li&gt;&#xA;&lt;li&gt;What is your day like?&lt;/li&gt;&#xA;&lt;li&gt;Do you like it here?&lt;/li&gt;&#xA;&lt;li&gt;What part of your job do you like the least?&lt;/li&gt;&#xA;&lt;li&gt;What is the best and worst part of your job.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Any questions that show the interviewer that you are seriously considering working and that you are interested/serious in/about your job are good. Have questions ready at your interview and even if they don't ask you, still say: &quot;Do you mind if I ask you some questions about this position/job&quot;&lt;/p&gt;&#xA;" OwnerUserId="7441" LastActivityDate="2010-11-10T16:31:06.997" CommunityOwnedDate="2011-01-28T12:13:01.007" />
  <row Id="18163" PostTypeId="2" ParentId="17355" CreationDate="2010-11-10T16:36:19.327" Score="1" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;int gcd(int a, int b)&#xA;{&#xA;   while(b&amp;gt;0)&#xA;   {&#xA;      int t = a%b;&#xA;      a=b;&#xA;      b=t;&#xA;   }&#xA;   return a;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Probably not famous, but one of my favorites. To most it's not immediately apparent why it works.&lt;/p&gt;&#xA;" OwnerUserId="4109" LastActivityDate="2010-11-10T16:36:19.327" CommunityOwnedDate="2010-12-03T10:46:42.217" />
  <row Id="18164" PostTypeId="2" ParentId="11874" CreationDate="2010-11-10T16:40:36.427" Score="1" ViewCount="" Body="&lt;p&gt;A few thoughts:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) You say it's seen as dead end and career limiting.  If this isn't true and people have gone on to other things (development, project management, running the team) then I'm sure you've got examples you can use.  If you don't have examples then you might have to accept that it is dead end and career limiting and need to address these issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2a) If support includes bug fixing then why are they separate?  If someone coded it badly to begin with then what are you teaching them by giving their mess to someone else to sort out.  Moreover if the support developers aren't seen as as good as the developers how on earth can you expect them to fix what the developers couldn't get right?  Seriously the rule should be you wrote it, you fix it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2b) If support doesn't include bug fixing then they're very different jobs and emphasise different skills.  You shouldn't be worrying about cross over here any more than you worry about cross over between development and cleaning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) You say it's lucrative for the company - then make it lucrative for the people involved.  This might be through better money, better training, better kit and giving them everything they need to do this stuff really really well.  If there is money available make it a great job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The issue from reading your post is that you don't seem to believe it's a good job.  If that's true then no wonder you can't sell it as one.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-10T16:40:36.427" />
  <row Id="18165" PostTypeId="2" ParentId="18131" CreationDate="2010-11-10T16:40:58.013" Score="3" ViewCount="" Body="&lt;p&gt;I like this type of commenting.  Not everything factors nicely into a separate class or function.  For example, if you'd have to pass almost the entire stack frame worth of state to such a function/class, you aren't really be decoupling/simplifying anything by factoring the code out.  Even if the code &lt;em&gt;can&lt;/em&gt; be factored out, that doesn't mean it &lt;em&gt;should&lt;/em&gt; be.  You have to weigh the reusability gains and the gains in readability of the individual steps against the fact that excessive indirection can make the overall flow of the code more opaque.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you do separate out the code into a class/function, comments might sometimes be useful to explain &lt;em&gt;at a high level&lt;/em&gt; what the code does.  Comments are not a substitute for readable code, but even readable code doesn't always summarize its high-level purpose, even if it's well-factored into small functions/classes.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-10T16:40:58.013" />
  <row Id="18166" PostTypeId="1" CreationDate="2010-11-10T16:44:40.780" Score="2" ViewCount="209" Body="&lt;p&gt;We are a team of two people who need a versioning system for their university project. Due to administration issues, the graders need us to register on a site that happens to only support SVN; however, we cannot commit to SVN from inside the university as the required protocols are filtered out by the proxy (including the HTML extensions that would make SVN checkins over HTTP possible). Sigh.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it possible to have a hg repo for ourselves that can then be converted to SVN for purposes of hosting on this site?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Please note that practically all students commute to university,&lt;/strong&gt; so the &quot;we can't commit from university so we can't do this&quot; is not as strong of an argument as you'd think.&lt;/p&gt;&#xA;" OwnerUserId="236" LastEditorUserId="236" LastEditorDisplayName="" LastEditDate="2010-11-10T17:55:38.663" LastActivityDate="2010-11-10T18:14:59.590" Title="We need a DVS. They need an SVN repo. What should we do?" Tags="&lt;version-control&gt;" AnswerCount="5" CommentCount="6" FavoriteCount="2" />
  <row Id="18167" PostTypeId="2" ParentId="18059" CreationDate="2010-11-10T17:04:28.713" Score="0" ViewCount="" Body="&lt;p&gt;All the analogies to things in the physical world -- like building a theater -- are, IMO, terrible. Refactoring is like... refactoring. Software is malleable in ways that other things are not. As things get more and more complex, refactoring is a way that we use to redo massive or small parts of a codebase so that we can continue to increase the complexity without going insane.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code that is never refactored costs more per minute to maintain and change.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-11-10T17:04:28.713" CommunityOwnedDate="2011-03-15T06:24:13.740" />
  <row Id="18168" PostTypeId="2" ParentId="18059" CreationDate="2010-11-10T17:07:22.050" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Spring cleaning.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You aren't doing any modifications to the house. You're just shifting stuff around and getting rid of some of the dust. Maybe throwing some things out that you don't use or need anymore. but you're not adding anything.&lt;/p&gt;&#xA;" OwnerUserId="3119" LastActivityDate="2010-11-10T17:07:22.050" CommunityOwnedDate="2011-03-15T06:24:13.740" CommentCount="1" />
  <row Id="18169" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T17:08:07.260" Score="3" ViewCount="" Body="&lt;p&gt;Bad decision: Leaving college to take a job before finishing my degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While this doesn't seem to have actively hurt my career, I would like to go back to school to get a Master's in CS, but I can't w/o a Bachelor's, and by the time I finish &lt;em&gt;that&lt;/em&gt; I probably won't have enough time left in my career to make the MS worthwhile.  Of course, the way the economy is going, I may be working until I'm 80, so never say never... ;)&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-10T17:08:07.260" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="1" />
  <row Id="18170" PostTypeId="2" ParentId="18166" CreationDate="2010-11-10T17:14:41.260" Score="12" ViewCount="" Body="&lt;p&gt;As someone who's been on the grader/ta end of the world, the appropriate action is to raise a stink with the professor and the grades. He needs to know. Also raise a stink with the IT department. Stink all around. This is unreasonable, and something needs to give, and it's not you - in &lt;em&gt;this&lt;/em&gt; case.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-10T17:14:41.260" />
  <row Id="18171" PostTypeId="2" ParentId="18141" CreationDate="2010-11-10T17:16:47.547" Score="2" ViewCount="" Body="&lt;p&gt;For low-level programming, you need to know some electronics and circuits, and some of the math behind it. Not a &lt;em&gt;ton&lt;/em&gt; per se, but enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A degree is always nice.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-10T17:16:47.547" />
  <row Id="18172" PostTypeId="2" ParentId="18127" CreationDate="2010-11-10T17:18:00.010" Score="2" ViewCount="" Body="&lt;p&gt;If you're interacting with or controlling hardware, then it's difficult to test without it.  You can try emulating the hardware, but that's often more difficult than writing the driver in the first place, so you wind up not knowing whether the bug's in your driver or your emulator.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-10T17:18:00.010" CommentCount="9" />
  <row Id="18173" PostTypeId="2" ParentId="18166" CreationDate="2010-11-10T17:18:17.653" Score="1" ViewCount="" Body="&lt;p&gt;I didn't try it but found this &lt;a href=&quot;http://mercurial.selenic.com/wiki/WorkingWithSubversion&quot; rel=&quot;nofollow&quot;&gt;http://mercurial.selenic.com/wiki/WorkingWithSubversion&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1541" LastActivityDate="2010-11-10T17:18:17.653" />
  <row Id="18174" PostTypeId="2" ParentId="18127" CreationDate="2010-11-10T17:24:55.960" Score="2" ViewCount="" Body="&lt;p&gt;I don't. In my Master's embedded code I just write the code and spend my time reasoning about what it does (and doesn't). I'm not sure it could be done in my case anyway, I'm getting disturbingly close to the physical limit of memory without injecting testing code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that for systems that are large enough (ie have MB of memory, not KB), it can be done for some components if you have enough time and effort. Testing pin-reading code by mocking the pins up is...er...not very meaningful. If you've separated your logic out enough, you can test the logic elsewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FWIW, I don't buy TDD in the general case - it works fine for system stacks that are large enough with enough resources with enough deterministic behavior, outside of that it doesn't seem reasonable practice.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-10T17:24:55.960" CommunityOwnedDate="2010-11-10T17:24:55.960" />
  <row Id="18175" PostTypeId="2" ParentId="18166" CreationDate="2010-11-10T17:32:57.650" Score="0" ViewCount="" Body="&lt;p&gt;Time to figure out how to tunnel through https...&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-10T17:32:57.650" />
  <row Id="18176" PostTypeId="1" AcceptedAnswerId="18185" CreationDate="2010-11-10T17:34:25.910" Score="2" ViewCount="84" Body="&lt;p&gt;Hello dear developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have this idea that I want to build. I want to start the idea as a web-app, then move into mobile-app and possible desktop application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The project should have databases (mostly strings). Also users would have accounts and access to these databases. So the project provides access to the user-resources through the Internet.&#xA;I want the database easily accessible through different platforms.&#xA;The project is also to sharpen my IT, so I don't want the easy road, but the better one.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What are my best options of frameworks/skills?&lt;/li&gt;&#xA;&lt;li&gt;Good tools to manage the project?&lt;/li&gt;&#xA;&lt;li&gt;Is starting as a web-app a good choice, or should I build it as a mobile-app first?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I have some knowledge (but not a lot of experience) in:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C, C++, Java, PHP, Javascript, MySQL, HTML/CSS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: I know that my question is too general, all I wanted is some ideas and guiding to have a good start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;@Nathan Taylor, regarding the web-app, I don't mind any option (should I learn Python, or stick with php in this regard)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll probably implement the project in Android, and possibly iPhone.&lt;/p&gt;&#xA;" OwnerUserId="7020" LastEditorUserId="7020" LastEditorDisplayName="" LastEditDate="2010-11-10T18:07:32.670" LastActivityDate="2010-11-10T18:07:32.670" Title="A startup as a web-application then later extended as mobile application. How to do it properly?" Tags="&lt;web-development&gt;&lt;project-management&gt;&lt;startups&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="18177" PostTypeId="2" ParentId="18166" CreationDate="2010-11-10T17:35:24.043" Score="6" ViewCount="" Body="&lt;p&gt;If the university is both requiring (via the graders) and forbidding (via IT) you to do something, then it's THEIR problem. First off, start with the graders making this request, inform them that you CAN NOT COMPLY and see what they can do. Also inform the professor (who presumably gives orders to the graders) and (if necessary) the department head. Somewhere along the line, they have to either give you a different target, or they have to let you do what they've assigned. There is no other option.&lt;/p&gt;&#xA;" OwnerUserId="6294" LastActivityDate="2010-11-10T17:35:24.043" />
  <row Id="18178" PostTypeId="2" ParentId="16518" CreationDate="2010-11-10T17:36:08.253" Score="1" ViewCount="" Body="&lt;p&gt;Hai Friends,&#xA;           I would like to ask the following to candidates(who are novoice programmers ie current passed out students)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;1.Affine Shift&#xA;2.ARCFOUR&#xA;3.Blowfish Cipher&#xA;4.Caesar Cipher&#xA;5.Data Encryption Standard&#xA;6.Modular Shift Algorithm (by EJC Cryptography)&#xA;7.Rijndael (American Encryption Standard)&#xA;8.Substitution Cipher&#xA;9. Key difference between Mono alphabetic cipher and Caesar Cipher.&#xA;10. Feistel Cipher&#xA;11. Symmteric Key Encryption vs Asymmteric Key Encryption&#xA;12. Block Cipher vs Stream Cipher&#xA;13. Write a Program which performs Encryption and Decryption&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3993" LastActivityDate="2010-11-10T17:36:08.253" CommentCount="1" />
  <row Id="18179" PostTypeId="2" ParentId="18003" CreationDate="2010-11-10T17:37:03.357" Score="1" ViewCount="" Body="&lt;p&gt;regarding this comment from carson63000&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I clicked on a bunch of their linked companies (not all of them, I will confess) and didn't find a single one that was using Gosu. All of them are using software solutions written by GuideWire, the company that developed Gosu. I doubt any of them care in the slightest about what language said software was written in. Seems like quite a deceptive claim to give the impression that many major companies have evaluated Gosu and decided to use it for software development.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can see how it might not be obvious, it's true that Guidewire products are complete products written in Gosu and Java and delivered to the end customer. However, typical Guidewire customers use Gosu to extend and configure the product.  The Gosu is not &quot;hidden&quot; from customers like a normal application written in C hides the C code from the end &quot;customer&quot; of the product. &lt;/p&gt;&#xA;" LastActivityDate="2010-11-11T19:32:16.750" CommentCount="2" />
  <row Id="18180" PostTypeId="1" CreationDate="2010-11-10T17:48:44.030" Score="6" ViewCount="136" Body="&lt;p&gt;I saw this in a job posting for an ASP.net developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;An understanding of basic software development practices such as ...and Dependency Analysis.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I read the wikipedia entry for Dependency Analysis and understand that it basically means one thing depends on the other so you can't reorder or parallelize them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What does this mean in practice?  Is there a tool that is used to do a Dependency Analysis?  What should I know about it for an interview and in practice if I get the job?&lt;/p&gt;&#xA;" OwnerUserId="6829" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-10T19:35:13.607" LastActivityDate="2010-11-10T19:35:13.607" Title="What is dependency Analysis and how is it done?" Tags="&lt;.net&gt;&lt;software-engineering&gt;&lt;dependency-analysis&gt;" AnswerCount="2" />
  <row Id="18181" PostTypeId="1" CreationDate="2010-11-10T17:50:14.700" Score="11" ViewCount="509" Body="&lt;p&gt;Hi guys, I am primarily a web developer and I have a couple of personal projects which I want to kick off. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing that is bugging me is database design. I have gone through in school db normalization and stuff like that but it has been a couple of years ago and I have never had experience with relational database design except for school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So how you do you approach database from a web app perspective? How do you begin and what do you look out for? What are flags for caution?&lt;/p&gt;&#xA;" OwnerUserId="2010" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-04-26T15:05:46.537" LastActivityDate="2011-04-26T15:30:28.933" Title="How do you approach database design?" Tags="&lt;learning&gt;&lt;database-design&gt;" AnswerCount="9" CommentCount="2" FavoriteCount="5" />
  <row Id="18182" PostTypeId="2" ParentId="18147" CreationDate="2010-11-10T17:52:40.520" Score="1" ViewCount="" Body="&lt;p&gt;You can say: design is a type of implementation problem. You get a request, and sometimes it is a straightforward implementation (add X to Y, modify A, B, and C), but sometimes it requires a broader change (refactoring!) to make it straightforward. The first is an implementation problem, and the second is a design problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can say: implementation is a type of design problem. You get a request, and you must design a solution. You meet some design goals (make X faster, or B more usable), and then you design the rest of it so that it works in a way that doesn't impede your design goals in the future. The second is an implementation, but the entire thing is a design problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can express your design in UML or sketches/cartoons, so you can say that a design problem is something you sketch out to solve, while an implementation problem is something you write code to solve. You will want your design to be specific enough that it tells you what elements meet your requirements and goals, but not so specific that it repeats the implementation. The exact balance is tricky, depends on your audience (as in all communication), and takes time to get right.&lt;/p&gt;&#xA;" OwnerUserId="6600" LastActivityDate="2010-11-10T17:52:40.520" CommentCount="1" />
  <row Id="18183" PostTypeId="2" ParentId="18086" CreationDate="2010-11-10T17:53:28.547" Score="2" ViewCount="" Body="&lt;p&gt;Yes, this is a matter of projecting the geometry of the buildings onto a shadow plane along the sun angle, and then computing the union of the resulting polygons. This gives a single polygon that you can then get the area of by simple triangle subdivision. All of these features are actually built into your graphics card these days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your buildings are non-polygonal and you need a &lt;em&gt;precise&lt;/em&gt; answer you're out of luck unless you can model them mathematically, but really that's a rare case these days--everything's built of polygons, and/or you can get away with an approximated answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a specific solution, I'd recommend asking this question on Stack Overflow.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-11-10T17:53:28.547" />
  <row Id="18184" PostTypeId="2" ParentId="18059" CreationDate="2010-11-10T17:55:56.470" Score="4" ViewCount="" Body="&lt;p&gt;I use the term Technical Debt and relate it directly to something they understand - Corporate Debt. Technical Debt is like taking out a loan. You pay interest on it. E.g., you can build a new factory and pay for it outright or you can get a loan for it. If you get a loan you will actually pay more for it in the long term, but it makes sense financially &lt;em&gt;if the terms are right&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you are paying 25% interest on such a loan you put yourself into a non-sustainable position. This is the same with technical debt. Sometimes it makes sense to take on some technical debt. However, there comes a point where the interest is too high and it needs to be paid off. Some techincal debt is like a home loan and some it is like credit card debt. In emergencies credit card debt is an important and valuable asset. However, it can also break the bank (or household if you choose) if used unwisely. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another example: you can pay $10,000 for a marketing mail drop to garner more leads for sales in the future. You are paying off &quot;sales debt&quot;. This is an expense with long term payoff. Equate this to why you would want to &quot;spend&quot; money now refactoring a piece of code. In both cases there is no immediate payoff, but you are setting yourself up for better performance in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to use the term &quot;xxxx debt&quot; as an analogy when talking to whomever the target audience is. E.g., Operational Debt - The printing press we have now works well, but by stopping production for one day (or one week) and upgrading to a new machine we can increase output by 25%. &lt;/p&gt;&#xA;" OwnerUserId="5485" LastActivityDate="2010-11-10T17:55:56.470" CommunityOwnedDate="2011-03-15T06:24:13.740" CommentCount="2" />
  <row Id="18185" PostTypeId="2" ParentId="18176" CreationDate="2010-11-10T18:06:02.630" Score="2" ViewCount="" Body="&lt;p&gt;The shared part of your code will be the server-side component. I assume you will be building a set of web services, e.g. SOAP services. The various front-ends will all communicate with this same services API. It's very important to think long and hard about what API will be able to cater to all the target platforms and devices. Think about the different user expectations between a desktop and a mobile app, and what this means for the underlying API.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't bother trying to use the same client-side code for the different target platforms (mobile, web, desktop). You'll never get a solid user experience that way. For the various front-ends, it's probably best to focus on a single technology stack that can stretch to all the platforms you want to aim for. Otherwise you're going to drown in the amount of things to learn. Picking the web stack is a safe choice, because you can adapt it to mobile devices and to desktop devices with various solutions (e.g. Adobe Air, Sencha Touch, ...). If you absolutely have to you can pick up objective c for writing native iphone apps later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it were me, I would use the following technology choices:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Server-side: PHP or node.js&lt;/li&gt;&#xA;&lt;li&gt;Client-side (web): Ext JS&lt;/li&gt;&#xA;&lt;li&gt;Client-side (mobile): Sencha Touch&lt;/li&gt;&#xA;&lt;li&gt;Client-side (desktop): Adobe Air&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm not saying those are the best choices for you. They would just be the best choices for me.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-11-10T18:06:02.630" />
  <row Id="18186" PostTypeId="2" ParentId="16518" CreationDate="2010-11-10T18:06:44.130" Score="1" ViewCount="" Body="&lt;p&gt;You have a large (say, 10Gb) text file which must be encrypted and compressed.  Which step would you do first and why?&lt;/p&gt;&#xA;" OwnerUserId="7222" LastActivityDate="2010-11-10T18:06:44.130" CommentCount="2" />
  <row Id="18187" PostTypeId="1" CreationDate="2010-11-10T18:08:03.003" Score="4" ViewCount="170" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/2260/which-keymap-for-programmers-dvorak&quot;&gt;Which keymap for programmers? Dvorak?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I switched to Dvorak several years ago, and I love it for writing (I'm currently working on my Masters, so there is quite a bit of writing right now). I also use it for programming, which works fine because most of the symbols are in the same place, but keyboard shortcuts are not. Since all the keys have been swapped around, combinations like ctrl+c and ctrl+v suddenly requires two hands, or the use of the right hand instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm certain a few others here are using Dvorak, and if you are, how do you cope with the keyboard shortcuts, which are pretty important while programming?&lt;/p&gt;&#xA;" OwnerUserId="7447" LastActivityDate="2010-11-10T18:46:22.847" ClosedDate="2010-11-10T20:01:22.913" Title="Does anyone else use Dvorak while programming?" Tags="&lt;keyboard-layout&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="18188" PostTypeId="2" ParentId="18166" CreationDate="2010-11-10T18:14:59.590" Score="2" ViewCount="" Body="&lt;p&gt;Well, if you only need to submit to the graders once then why do you need to use SVN at all until the final submission?  Just use a different repo and be done with it, then push to SVN when you are ready.  For day to day stuff use whatever you want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the inconsistent policies are not going to get fixed then I wouldn't worry too much about using the SVN repo they want or just commit off campus.  &lt;/p&gt;&#xA;" OwnerUserId="3439" LastActivityDate="2010-11-10T18:14:59.590" />
  <row Id="18189" PostTypeId="2" ParentId="18181" CreationDate="2010-11-10T18:16:51.040" Score="8" ViewCount="" Body="&lt;p&gt;I do both object oriented programming and (mostly transactional, but some OLAP) database design, and for my circumstances, there are a lot of recurring themes (at least with OLTP).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Practicing 3nf normalization helps me to practice some variant of the single responsibility principle.  A table should represent a concept in your system - and concepts should relate to one another such that they attempt to mimick reality; for instance, if I'm building a system where a Customer can have 0 or many Activities, then I create a Customer Table, and an Activity Table.  The activity table has a foreign key relationship to the Customer table.  When I'm building stored procedures, I would make sure to use an outer join to join Customer and activity because the business requirement that a Customer can have 0 activities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also watch out for opportunities for extensibility by using bridge (link) tables.  For instance, if I were trying to represent a business rule where a book could have an unlimited (variable) number of authors, I would create a Book Table, an Author table, and a bridge/link table that has foreign key references to both Book and Author.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I use surrogate keys on all tables (typically auto-incrementing identity columns, but perhaps Guids - the tradeoff with guids in code is that they take up more memory space than a simple integer), and I avoid relying on natural keys for my lookups (except with Bridge/Link Tables).  By default, I also create indexes on common foreign key columns, and review stored procedures/system queries from time-to-time to optimize indexing strategies.  Another indexing strategy I use is to look for places in my code where I build a collection based on a search column, and add appropriate indexes to search columns.&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2010-11-10T18:16:51.040" />
  <row Id="18190" PostTypeId="2" ParentId="11874" CreationDate="2010-11-10T18:21:47.947" Score="0" ViewCount="" Body="&lt;p&gt;How about some mixture of development and support (split roles)?   I think you'll still struggle to get buy-in for that because of reasons already mentioned (developers != product support people).  But if your product relies on a wide understanding of internal technology, maybe 80% development, 20% support would be a fair tradeoff.  Or some kind of mentoring/shadowing for new employees to ensure they get correct information about the product.&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2010-11-10T18:21:47.947" />
  <row Id="18191" PostTypeId="2" ParentId="18181" CreationDate="2010-11-10T18:23:50.300" Score="0" ViewCount="" Body="&lt;p&gt;I design objects first then I use an ORM (such as nHibernate) to create the schema. It gives me a lot more flexibility than doing the inverse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The next step is optimization of the generated schema.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has been a long time since I have seen a project where the database tables where designed first.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-10T18:23:50.300" />
  <row Id="18192" PostTypeId="1" AcceptedAnswerId="18224" CreationDate="2010-11-10T18:35:40.987" Score="0" ViewCount="196" Body="&lt;p&gt;Hii Friends,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i was on to many  development on Java,DotNet etc now in Iphone Development in my studies and work and i could make myself fliexible to any domain i work with,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But As i m fresher have joined as a iphone developer,i cant predict my future about my long term growth in the software industry?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does one's working technology determines long term growth?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any Suggestions PLz,&lt;/p&gt;&#xA;" OwnerUserId="7452" LastActivityDate="2010-11-10T20:47:28.017" Title="Does Working (Java,DotNet etc) Technology determines long term growth?" Tags="&lt;career&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="18193" PostTypeId="2" ParentId="18187" CreationDate="2010-11-10T18:42:34.227" Score="0" ViewCount="" Body="&lt;p&gt;I've used the Dvorak layout while programming in the past. Keyboard shortcuts weren't a major issue for me; I got used to those after a while. The problem was when I had to work at another machine or someone else was working at my machine; I'd have to either switch the layouts back and forth, or go back to QWERTY. If I was always working at one machine, and no one else ever used it, I'd probably still be using the Dvorak layout. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-10T18:42:34.227" />
  <row Id="18194" PostTypeId="2" ParentId="18147" CreationDate="2010-11-10T18:43:07.970" Score="1" ViewCount="" Body="&lt;p&gt;Usually there is design before implementation, if I recall my Waterfall methodology stuff.  What is the general idea being used to solve the problem is how I see design and possibly picking design patterns or other existing solutions to problems are at the design level.  The implementation has all the details of taking what was general and hypothetical and making it real.  This is kind of like Neil's answer.  Another way to see this is that the design is what an architect has when he is done while the implementation is what the developer does, at least in bigger projects I believe.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-10T18:43:07.970" />
  <row Id="18195" PostTypeId="2" ParentId="18187" CreationDate="2010-11-10T18:46:22.847" Score="1" ViewCount="" Body="&lt;p&gt;I've used Dvorak for years. The only shortcuts that I have found to be any more awkward with Dvorak are Ctrl+X, Ctrl+C, Ctrl+V since these are ones that you might do repetitively or for which you might want one hand on the mouse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it's really not a problem since I can shift from Dvorak to QWERTY and back by pushing Ctrl+Shift. Before doing any hardcore copy &amp;amp; pasting, I just push Ctrl+Shift to switch back to QWERTY, and then push it again when I'm done to get back to Dvorak.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also helps if you keep your QWERTY skills up because that way while you're in QWERTY mode you can make small modifications when necessary before switching back to Dvorak.&lt;/p&gt;&#xA;" OwnerUserId="4573" LastActivityDate="2010-11-10T18:46:22.847" />
  <row Id="18196" PostTypeId="2" ParentId="18192" CreationDate="2010-11-10T18:46:36.263" Score="1" ViewCount="" Body="&lt;p&gt;It does, but you have no way to predict for sure which way the industry is going to go.  Certainly, getting behind a heavy-hitter like Java or .NET will help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But since you don't have a crystal ball, you should do your best to learn enduring computing concepts well; things like language structure and software patterns, not ephemeral concepts such as syntax and library calls.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Study languages.  By studying languages, you learn everything that matters.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-10T18:46:36.263" />
  <row Id="18197" PostTypeId="2" ParentId="18192" CreationDate="2010-11-10T18:47:45.520" Score="4" ViewCount="" Body="&lt;p&gt;@Karthik, No ONE Technology guarantees long term GROWTH. I think your question is more about Job SECURITY rather than Career GROWTH. If the main criterion is GROWTH than you need to understand that Technology is only a tool so if you master one doesn't mean you are insured for the rest of your life. A Career is composed of several essential skills including your Soft Skills/Attitude/Ambition/Domain experience/Technology etc etc. You need to have a holistic view of things for Career Progression and not just technology itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Work on improving yourself as an Engineer and there will be enough Job security and Growth. Good Luck !!&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-10T18:47:45.520" CommentCount="5" />
  <row Id="18198" PostTypeId="2" ParentId="18181" CreationDate="2010-11-10T18:50:29.050" Score="5" ViewCount="" Body="&lt;p&gt;I design my database schema first, then use an ORM to create the objects from it.  I'm a bit old school that way; I don't trust ORM's to create an intelligent, efficient database schema.  That is the work of humans, and part of the craft of software design.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-10T18:50:29.050" CommentCount="1" />
  <row Id="18199" PostTypeId="1" CreationDate="2010-11-10T18:52:39.923" Score="2" ViewCount="246" Body="&lt;p&gt;Morning,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some of the things your company/boss does to help you improve?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Google has many things - presentations with 'gurus', coding on what you want on Fridays, etc etc&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any company initiatives that your company does (or you've heard of) that you think are good at improving yourself and making you a better coder?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: added help, as it was pointed out they can't directly improve you, but can provide tools and access to resources to help.&lt;/p&gt;&#xA;" OwnerUserId="6959" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-10T20:41:51.367" LastActivityDate="2010-11-10T21:01:54.157" Title="What things does your boss/company do to help you improve?" Tags="&lt;learning&gt;&lt;career&gt;&lt;self-improvement&gt;&lt;education&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="1" />
  <row Id="18200" PostTypeId="2" ParentId="18180" CreationDate="2010-11-10T18:52:51.887" Score="0" ViewCount="" Body="&lt;p&gt;In software, dependencies are things like external libraries, method calls, header files, inherited classes, and data interfaces.  They are things without which the software won't work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In high-end versions of Visual Studio, there are tools you can use to map out the dependencies.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-10T18:52:51.887" CommentCount="1" />
  <row Id="18201" PostTypeId="2" ParentId="18199" CreationDate="2010-11-10T19:03:06.803" Score="5" ViewCount="" Body="&lt;p&gt;My company forces my code to be reviewed and that helps me become Better :-)&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-10T19:03:06.803" />
  <row Id="18202" PostTypeId="1" AcceptedAnswerId="18203" CreationDate="2010-11-10T19:04:51.650" Score="4" ViewCount="195" Body="&lt;p&gt;The project, I have involved, has an architecture-oriented project's file/folder structure:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Root&#xA;|____ Node1&#xA;    |____ Event Handlers&#xA;    |         |___ &amp;lt;all event handlers of project&amp;gt;&#xA;    |____ Events&#xA;    |         |___ &amp;lt;all events of project&amp;gt;&#xA;    |____ Request Handlers  &#xA;    |         |___ &amp;lt;all request handlers of project&amp;gt;&#xA;    |____ Requests&#xA;    |         |___ &amp;lt;all requests of project&amp;gt;&#xA;    |____ ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It is a clear from the architectural point of view of system (has been proposed by development team).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a feature-oriented structure has been proposed by designer team:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Root&#xA;|____ Feature #1&#xA;    |____ Event Handlers&#xA;    |         |___ &amp;lt;all event handlers of Feature #1&amp;gt;&#xA;    |____ Events&#xA;    |         |___ &amp;lt;all events of Feature #1&amp;gt;&#xA;    |____ Request Handlers  &#xA;    |         |___ &amp;lt;all request handlers of Feature #1&amp;gt;&#xA;    |____ Requests&#xA;    |         |___ &amp;lt;all requests of Feature #1&amp;gt;&#xA;    |____ ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This variant is closer to designers and it describes clearly a feature to be implemented.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our teams have started a holy war: what is the best approach. Could somebody help us and explain cons and pros of the first and second ones. Maybe there is a third one that is more useful and beneficial for both of us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you.&lt;/p&gt;&#xA;" OwnerUserId="1483" LastActivityDate="2010-11-10T20:29:57.477" Title="Architecture(structure)-oriented vs. feature-oriented project structure" Tags="&lt;project-structure&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="1" />
  <row Id="18203" PostTypeId="2" ParentId="18202" CreationDate="2010-11-10T19:13:11.583" Score="4" ViewCount="" Body="&lt;p&gt;I would vote for the second one. In the first structure, event handlers for &lt;code&gt;FeatureA&lt;/code&gt; are completely unrelated to event handlers for &lt;code&gt;FeatureB&lt;/code&gt;. It seems that developers will be working on one feature at a time, and if you're working on a &lt;code&gt;FeatureX&lt;/code&gt; request, it's far more likely that you'll need to tweak a &lt;code&gt;FeatureX&lt;/code&gt; request handler than, say, a &lt;code&gt;FeatureZ&lt;/code&gt; request.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, I love how you asked this question from a neutral point of view.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-11-10T19:13:11.583" CommentCount="3" />
  <row Id="18204" PostTypeId="2" ParentId="18086" CreationDate="2010-11-10T19:14:51.737" Score="0" ViewCount="" Body="&lt;p&gt;Are you actually ray-tracing?  If so, you backtrace from the point being rendered to the light source.  If it intersects one of the buildings, its in a shadow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are using OpenGL/DirectX for real-time graphics, there are other solutions - look around online as thats a fairly big topic.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-10T19:14:51.737" />
  <row Id="18205" PostTypeId="2" ParentId="18202" CreationDate="2010-11-10T19:15:19.707" Score="2" ViewCount="" Body="&lt;p&gt;Why do the feature-inventors care about the implementation details?  If that is the separation between the sides of the argument, then I think the answer is clear.  People inventing ideas/features do not determine the file structure that is needed by the implementers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a particularly important issue when a feature's implementation spans multiple dlls, exes, databases, or other software pieces.&lt;/p&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-11-10T19:15:19.707" CommentCount="4" />
  <row Id="18206" PostTypeId="2" ParentId="18202" CreationDate="2010-11-10T19:15:31.453" Score="1" ViewCount="" Body="&lt;p&gt;I have always been more comfortable with the second approach, but I always have a &quot;feature&quot; called general or common for the truly shared/base classes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Approach two keeps truly separate things separate, but without the &quot;common&quot; area it sometimes separates things into areas that they don't fit well.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-10T19:15:31.453" CommentCount="1" />
  <row Id="18207" PostTypeId="2" ParentId="18202" CreationDate="2010-11-10T19:16:30.767" Score="1" ViewCount="" Body="&lt;p&gt;Have to agree with the second approach, given the two options.  The first one just looks like an amorphous blob.  At least the second one has some shape.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It really depends on how big the project is.  If the &quot;features&quot; are large, they each need their own distinct bucket.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-10T19:21:43.583" LastActivityDate="2010-11-10T19:21:43.583" />
  <row Id="18208" PostTypeId="2" ParentId="18180" CreationDate="2010-11-10T19:18:30.233" Score="2" ViewCount="" Body="&lt;p&gt;When you say &lt;em&gt;Dependency Analysis&lt;/em&gt;, the first tool that comes to mind is &lt;strong&gt;NDepend&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a &lt;a href=&quot;http://www.hanselman.com/blog/ExitingTheZoneOfPainStaticAnalysisWithNDepend.aspx&quot; rel=&quot;nofollow&quot;&gt;great blog post by Scott Hanselman explaining how you can use it to analyze dependencies in your code&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can use NDepend to create dependency graphs of your assemblies, use CQL (Code Query Language) to query for overly complicated classes and methods, and perform a number of other code analysis tasks.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-10T19:18:30.233" />
  <row Id="18209" PostTypeId="2" ParentId="18147" CreationDate="2010-11-10T19:34:38.077" Score="1" ViewCount="" Body="&lt;p&gt;Firstly: design looks at the system from a more high level view than implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every software question has both design and implementation aspects. In terms of design, you need to know how the request will fit with your current implementation. If you do not have a current implementation (its a new project) then you need to weigh all desired aspects of the project to determine how everything will fit together. You should do this before worrying about the implementation, since the implementation depends on this work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After you have an idea of how the system should look, then do it. Just start implementing your idea of the solution. Most likely you will realize during the implementation that you forgot to address an problem. When that happens, just slow down, answer the design decision, and then implement that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your customers are asking you straight programming requests, then you should never agree to a definitive answer without thinking it overnight. This will allow you to consider alternatives that they may not have realized. The customer may (not always, but potentially) have heard about a new technology and thought they MUST have it. You as the developer need to use technologies for a distinct reason, and &quot;because the customer said it was awesome&quot; is not a very good reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To a small extent, everything in software development is related. Using the waterfall methodology (which is still used as the basis for many methodologies today - a topic for another time perhaps) allows for small upstream adjustments as needed. That said, design looks at the system from a farther view point then implementation. Use that as a means to determine what level the question addresses.&lt;/p&gt;&#xA;" OwnerUserId="7305" LastActivityDate="2010-11-10T19:34:38.077" />
  <row Id="18210" PostTypeId="2" ParentId="4714" CreationDate="2010-11-10T19:37:16.997" Score="3" ViewCount="" Body="&lt;p&gt;It seems to me that there is no name yet for this kind of framework you are all talking about in this thread. I call them for the moment just &lt;em&gt;RAILS-like Frameworks&lt;/em&gt;: Frameworks that increment productivity by orchestrating other existing frameworks with the purpose of solving the basic needs of most web applications, but at the same time hiding all the complexities from the developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By basic needs I mean the implementation of a Persistence Provider, a Dependency Inyection Container, a Logging tool, an MVC platform, an HTML Template Engine, a Web Site Template Starter Kit with CSS presets, a Security Framework and some Javascript Library for AJAX features and other cool stuff. The RAILS-like Frameworks orchestrate all these frameworks and tools on the basis of the Domain model (the entities of your system with its attributes).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks to the Convention-over-Configuration principle, these frameworks avoid the need of defining lots of configuration files usually required by the frameworks they orchestrate (like Spring, Spring MVC, Hibernate, Log4J, etc.), assuming configurations by default based on naming, structure and metadata included in the same classes definitions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks to the dynamic languages that these frameworks make use (like Ruby, Groovy, Python, Clojure, etc.), with the exception of SpringRoo that implements dynamic behaviour in Java by using AspectJ, the functionality that belongs to the frameworks underneath are extended and are made available to the developer in such a uniform and elegant manner that he/she is just aware of the underlying technologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally thanks to the Scaffold technique, unit tests, integration tests, controllers and views are automatically generated for the main functions (CRUD) over each one of the domain objects defined by the developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the .NET world nothing has been developed yet, following all the previous definitions. But nothing prevents that from occurring soon. There are great frameworks, tools and libraries already available in the .NET world that can be orchestrated by a new RAILS-like framework made for the CLR. There are Unity, Spring.NET and Castle Windsor among others for the Dependency Inyection needs. Entity Framework 4, NHibernate and iBatis.NET are pretty good .NET Persistence Providers. ASP.NET MVC have strongly arrived with support for various Template Engines besides the traditional ASP.NET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if nobody achieves to use a DLR language to build this kind of framework, anyone with enough will can follow the SpringSource path and implement a RAILS-like framework with some static language like F#, C# or VB.NET, making use of an Aspect-Oriented Container (like AspectSharp or Gripper-LOOM.NET) to obtain dynamic behaviour.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would love to know about any group of people trying to develop such framework in .NET.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-10T19:37:16.997" />
  <row Id="18211" PostTypeId="2" ParentId="18059" CreationDate="2010-11-10T19:42:27.947" Score="0" ViewCount="" Body="&lt;p&gt;My biggest worry (hence biggest motivator for re-factoring) at my current company is our reliance on frameworks that are nearing (or have reached) the end of their current life-cycle. Management needs to understand that when a piece of the application is dependent on a framework like Hibernate2, documentation is harder to find, answers on message boards are harder to come by, and developers used to working with newer versions are going to run in circles figuring out how to accomplish tasks that were trivial in newer versions, but barely supported (if at all) in aging versions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You begin to pay a price for maintaining existing features or developing new ones because common tasks are generally simplified in updated version of framework (Spring, Hibernate, insert your choice here). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like most infrastructure, if it goes unmaintained, you won't notice trouble until things go horribly wrong (e.g the bridge or road collapses, the pipes burst, you short your electrical supply, etc...). In the case of outdated versions of frameworks, you start to see compatibility issues with application servers, you find it harder to attract development talent, and it takes longer to implement new features. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The costs of leaving a code base &quot;as-is&quot; and attempting to develop new features on top of that base are tangible, and shouldn't be brushed away under the rubric of &quot;so you'll do all this work and I won't see any difference.&quot; As an end-user of the application, perhaps not. As a business owner, hiring manager, or team-lead, very much so.&lt;/p&gt;&#xA;" OwnerUserId="6894" LastEditorUserId="6894" LastEditorDisplayName="" LastEditDate="2010-11-10T20:09:06.490" LastActivityDate="2010-11-10T20:09:06.490" CommunityOwnedDate="2011-03-15T06:24:13.740" />
  <row Id="18212" PostTypeId="1" AcceptedAnswerId="18223" CreationDate="2010-11-10T19:46:06.267" Score="2" ViewCount="99" Body="&lt;p&gt;I recently purchased the O'Reilly book: Programming Entity Framework by Julia Lerman.  Unfortunately it is the 1st edition.  I didn't realize that there was a newer edition.  Which in hind sight explains the lessor price for the book.  So my question...  Should I return it and get the 2nd edition or read the 1st edition?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The 1st edition spends a lot of time in the version 1 of the EF and the 2nd edition spends a lot of time in version 2 (which is where I want to be).  I think I want to return it, but I thought I would ask the question first...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thoughts?&lt;/p&gt;&#xA;" OwnerUserId="7456" LastEditorUserId="7456" LastEditorDisplayName="" LastEditDate="2010-11-10T20:42:30.867" LastActivityDate="2010-11-11T21:10:33.940" Title="Entity Framework book 1st Edition" Tags="&lt;books&gt;&lt;entity-framework&gt;" AnswerCount="3" CommentCount="7" />
  <row Id="18213" PostTypeId="1" CreationDate="2010-11-10T20:00:05.893" Score="2" ViewCount="252" Body="&lt;p&gt;The SaaS is for real estate companies, and they can pay a monthly fee that will offer them 1000 publications but they can also consume additional publications or other services that will appear on their bill as extras.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On registration the user can choose one of the 5 available plans that the only difference will be the quantity of publications their plan allows them to make. But they can pass that limit if they wish, and additional payment will be required on the next bill.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A publication means: Publishing a property during one day, for 1 whole month would be: 30 publications. And 5 properties during one day would be 5 publications.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;So basically the user can:&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Make publications (already paid in the monthly fee, extra payment only if it passes the limit)&lt;/li&gt;&#xA;&lt;li&gt;Highlight that publication (extra payment)&lt;/li&gt;&#xA;&lt;li&gt;Publish on other websites or printed catalogues (extra payment)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;Doubts:&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How to handle modifications in pricing plans? Let's say quantities change, or you want to offer some free stuff.&lt;/li&gt;&#xA;&lt;li&gt;How to handle unpaid invoices? I mean, freeze the service until the payment has been done and then resume it.&lt;/li&gt;&#xA;&lt;li&gt;When to make the invoices? The idea is to make one invoice for the monthly fee and a second invoice for the extra services that were consumed.&lt;/li&gt;&#xA;&lt;li&gt;What payment methods to use? The choosen now is by bank account, and mobile phone validation with a SMS. If user doesn't pay we call that phone and ask for payment.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Any examples on billing online services will be welcome!&#xA;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="7420" LastActivityDate="2011-04-02T05:39:15.430" Title="Any tips for designing the invoicing/payment system of a SaaS?" Tags="&lt;web-applications&gt;&lt;billing&gt;&lt;invoices&gt;" AnswerCount="5" CommentCount="6" />
  <row Id="18214" PostTypeId="1" CreationDate="2010-11-10T20:11:19.360" Score="8" ViewCount="243" Body="&lt;p&gt;Many of us likely see the Paypal 'Donate' or the 'Buy me a Beer' button weekly if not daily- have you ever donated, or seriously considered donating? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What as the project? What was your motivation?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;To answer my own question- &lt;/p&gt;&#xA;&#xA;&lt;p&gt;No I (currently) have not donated to any projects. However, at an increasing rate I am finding myself positing donations, which is why I ended up asking this question. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't care whether my donation was used to help develop the project, or just went to purchasing yeast excrement as a reward for the developer(s). When I find myself wanting to donate its because I want to reach out to the developer and say thank you, you are appreciated. &lt;/p&gt;&#xA;" OwnerUserId="3757" LastEditorUserId="3757" LastEditorDisplayName="" LastEditDate="2010-11-10T21:47:42.123" LastActivityDate="2010-11-11T09:05:52.990" ClosedDate="2010-12-18T14:04:26.273" Title="Have you donated or will you ever donate to free/FOS software?" Tags="&lt;software&gt;&lt;free-software&gt;&lt;economics&gt;&lt;freedom&gt;" AnswerCount="11" CommentCount="5" FavoriteCount="1" />
  <row Id="18215" PostTypeId="2" ParentId="18214" CreationDate="2010-11-10T20:18:45.633" Score="1" ViewCount="" Body="&lt;p&gt;I have once donated to Open-Classifieds because I used it on a website.&#xA;I have also tried to donate to MySociety for their project hassleme.co.uk but I've got the money back I don't know why.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't use to consider donating very much, this were my only two cases in my entire lifetime,  maybe it will change in the future, it depends on my interest in a free software.&lt;/p&gt;&#xA;" OwnerUserId="7420" LastActivityDate="2010-11-10T20:18:45.633" />
  <row Id="18216" PostTypeId="2" ParentId="18214" CreationDate="2010-11-10T20:26:04.183" Score="2" ViewCount="" Body="&lt;p&gt;This is an interesting question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I honestly can't say that I've ever paid for freeware. And this is coming from someone who does not illegally download music (I use a subscription service), and has paid for all the software on my computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The difference is that I don't feel &lt;em&gt;compelled&lt;/em&gt; to pay. If the developer is not willing to place a value on his/her time invested in the project, then why should I? If there was an app that I used frequently (on an every day basis) and was very entertaining or conducive to my productivity, I &lt;em&gt;may&lt;/em&gt; donate, but I can't see that amount exceeding $3. However, if the software was payware priced at $7, I would have no problem buying it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess it comes down to the fact that i'm unwilling to pay for something that I can legally (at the developer's discretion) get for free. &lt;/p&gt;&#xA;" OwnerUserId="7356" LastActivityDate="2010-11-10T20:26:04.183" CommentCount="1" />
  <row Id="18217" PostTypeId="2" ParentId="18214" CreationDate="2010-11-10T20:26:42.833" Score="2" ViewCount="" Body="&lt;p&gt;I had been making regular membership payments to Free Software Foundation for many years. The amount wasn't big, don't remember the exact figure now, but every year I was receiving their membership package which included a Linux (oh, sorry, that's GNU/Linux!) distribution on a 3&quot; CD, brochures, some other stuff. Honestly I always thought it was a waste of their money. Anyway, FSF is the only official &quot;attorney&quot; of all GNU software and GNU developers. Think about it: if someone violates the GNU license, or if someone sues a developer for GNU software, because it is mostly free as in beer, who's going to take the challenge in court? Basically FSF takes that role. We need to support it.&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-10T20:26:42.833" CommentCount="2" />
  <row Id="18218" PostTypeId="2" ParentId="18214" CreationDate="2010-11-10T20:26:45.810" Score="3" ViewCount="" Body="&lt;p&gt;I'll be honest - no.  Anyone joining me in admitting it?&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-10T20:26:45.810" CommentCount="2" />
  <row Id="18219" PostTypeId="2" ParentId="18214" CreationDate="2010-11-10T20:27:25.917" Score="1" ViewCount="" Body="&lt;p&gt;Yes. I donated to a lightweight blog package that ended up forming the basis for my website at one point and to a lightweight wiki that I've been using for the past several years for a private wiki. (I'm declining mentioning either by name here because both are clearly no longer in active development based on their websites.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I donated for two reasons. The first was that the packages ended being used for more and longer than I had anticipated, and they were—and still are—truly useful to me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second was because I've sold some shareware in the past, and I liked the feeling of satisfaction and motivation I got from someone willing to pay for my work. I had hoped that by donating I was passing on that satisfaction to someone else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, in all honesty, I don't use much FOSS or freeware, and if I do, it's rare that I donate to it, especially if its use is quick and temporary. The project, like the two I mentioned, really needs to embed itself in my processes for me to consider donating.&lt;/p&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2010-11-10T20:27:25.917" />
  <row Id="18220" PostTypeId="2" ParentId="18202" CreationDate="2010-11-10T20:29:57.477" Score="1" ViewCount="" Body="&lt;p&gt;I don't understand the terminology you're using, but will try to answer anyway, since both structures seem to be the wrong approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you've only got a handful of features, you need to group them into categories - and that doesn't appear to be catered for in either design (unless that's what Node1 is intended as, but the &quot;all X of project&quot; suggests otherwise, and makes me wonder WTF it is - is there a Node2?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I might consider something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Root&#xA;|____ Event Handlers&#xA;|   |____ Category A&#xA;|   |    |___ Feature #1 EHs&#xA;|   |    |___ Feature #2 EHs&#xA;|   |    |___ Feature #3 EHs&#xA;|   |&#xA;|   |____ Category B&#xA;|   |    |___ Feature #4 EHs&#xA;|   |    |___ Feature #5 EHs&#xA;|   |&#xA;|&#xA;|____ Events&#xA;|   |____ Category A&#xA;|   |    |___ Feature #1 Events&#xA;|   |    |___ Feature #2 Events&#xA;|   |    |___ Feature #3 Events&#xA;|   |&#xA;|   |____ Category B&#xA;|   |    |___ Feature #4 Events&#xA;|   |    |___ Feature #5 Events&#xA;|   |&#xA;|&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Or this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Root&#xA;|____ Category A&#xA;|   |____ Event Handlers&#xA;|   |    |___ Feature #1 EHs&#xA;|   |    |___ Feature #2 EHs&#xA;|   |    |___ Feature #3 EHs&#xA;|   |&#xA;|   |____ Events&#xA;|        |___ Feature #1 Events&#xA;|        |___ Feature #2 Events&#xA;|        |___ Feature #3 Events&#xA;|   &#xA;|____ Category B&#xA;|   |____ Event Handlers&#xA;|   |    |___ Feature #4 EHs&#xA;|   |    |___ Feature #5 EHs&#xA;|   |&#xA;|   |____ Events&#xA;|        |___ Feature #4 Events&#xA;|        |___ Feature #5 Events&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But they're both making assumptions which may be completely off - if you can update your question with more details I may change my mind. :)&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-11-10T20:29:57.477" CommentCount="0" />
  <row Id="18221" PostTypeId="2" ParentId="18199" CreationDate="2010-11-10T20:34:49.110" Score="2" ViewCount="" Body="&lt;p&gt;My company always pay when I want to go to conferences about programming. It is really helpfull.&lt;/p&gt;&#xA;" OwnerUserId="7298" LastActivityDate="2010-11-10T20:34:49.110" />
  <row Id="18222" PostTypeId="2" ParentId="18199" CreationDate="2010-11-10T20:36:18.700" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Lunch and learn&quot; opportunities are a very useful thing I've seen at my company where someone may come in and discuss how Business Analysts' roles are changing in these times, or go over the basics of SOX compliance that I may not otherwise know on my own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personal development plans would be another idea here but the challenge then becomes what to put in them as just creating it out of thin air doesn't really change me, now does it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using various tools,e.g. Resharper or Beyond Compare, can also help that a company may buy licenses to allow developers to use these to help with some tasks.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-10T20:36:18.700" />
  <row Id="18223" PostTypeId="2" ParentId="18212" CreationDate="2010-11-10T20:46:29.293" Score="2" ViewCount="" Body="&lt;p&gt;Both are good, but if possible then pay the extra for the second edition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EFv1 was something of a rough-cut, EFv4 (the second version, they skipped v2 and v3) addressed many EFv1 issues and contains many new features.  EFv4 is considered the first &quot;production-ready&quot; version by most developers.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Just noticed that you are considering different .NET version requirements.  You're correct that EFv4 requires .NET 4; if you can't use .NET 4 then EFv1 is available--however many developers would steer you towards a more mature .NET 3.5 compatible ORM such as nHibernate due to the aforementioned half-baked nature of EFv1&lt;/p&gt;&#xA;" OwnerUserId="5828" LastActivityDate="2010-11-10T20:46:29.293" CommentCount="3" />
  <row Id="18224" PostTypeId="2" ParentId="18192" CreationDate="2010-11-10T20:47:28.017" Score="0" ViewCount="" Body="&lt;p&gt;No, what technology you work with doesn't really determine anything.  When I started working for a dot-com back in 1998, I had never used classic ASP or knew other technology advancements that would change how I do my work.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What determines long-term growth is knowing what you want to do and can do well.  Do you want to build systems?  Do you want to build UI components or database components?  Wherever one's strengths lie, that is the key to unlocking one's potential.  After all, were there iPhone developers 5 years ago, outside of Apple?  Whatever is top dog one day may not be top dog down the road,e.g. look at the history of Yahoo!, Netscape or AOL if you want some former Internet titans that have lost a lot of their power from where they originally were positioned.  What mobile platforms will we have 5 years from now?  Will there be a company that can claim a majority of market share among smartphones,e.g. could Android become huge or will it be a fad?  Will SEO still be a big field 10 years from now or will something come along to replace it?  These are just general rhetorical questions to ponder.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I've only been working since 1998, there have been a lot of things that have changed, but there are also some things that haven't changed like I still use a version of Visual Studio, Internet Information Services and MS-SQL Server, though their guts have changed tremendously in the past decade.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-10T20:47:28.017" />
  <row Id="18225" PostTypeId="2" ParentId="4587" CreationDate="2010-11-10T20:48:51.187" Score="-1" ViewCount="" Body="&lt;p&gt;Computer games. Especially MMO games. Some people are enjoying the game, but some people become addicted! So when I am developin MMO project at my job I am adding good and evil things in this world. Sometimes this is really blow out my mind.&lt;/p&gt;&#xA;" OwnerUserId="7298" LastActivityDate="2010-11-10T20:48:51.187" CommunityOwnedDate="2011-01-07T00:56:11.870" CommentCount="1" />
  <row Id="18226" PostTypeId="2" ParentId="18214" CreationDate="2010-11-10T20:50:07.513" Score="2" ViewCount="" Body="&lt;p&gt;Yes, I donated to VIM before I switched to Emacs.  Also I am a member of the FSF.  This software plays an important role in my computer use, I am happy to contribute to it financially.&lt;/p&gt;&#xA;" OwnerUserId="6513" LastActivityDate="2010-11-10T20:50:07.513" />
  <row Id="18228" PostTypeId="2" ParentId="18199" CreationDate="2010-11-10T21:01:54.157" Score="1" ViewCount="" Body="&lt;p&gt;My current boss has/will pay for programming related books and training.&lt;/p&gt;&#xA;" OwnerUserId="3732" LastActivityDate="2010-11-10T21:01:54.157" />
  <row Id="18230" PostTypeId="2" ParentId="18214" CreationDate="2010-11-10T21:13:43.630" Score="2" ViewCount="" Body="&lt;p&gt;Absolutely. Poul-Henning Kamp had a nice open chunk in his calendar, and offered the FreeBSD community the 6 months or so he had available, if the community would sponsor him. He very easily made the money he needed to work full-time on the project.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-11-10T21:13:43.630" />
  <row Id="18233" PostTypeId="2" ParentId="18181" CreationDate="2010-11-10T21:19:25.870" Score="2" ViewCount="" Body="&lt;p&gt;In general terms, good database design is good database design - the bigger question for web use will be how you access the data and manage things that one might consider require state which basically the web doesn't have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thinking about it, my approach is based on really rather a lot of experience... but whether you start with schema or objects you're actually trying to do the same thing i.e. build a useable model of your data - for a substantial number of projects there is liable to be a fairly direct relationship between model and schema (not in all cases, and probably not for all tables/objects) so really its a matter of building a decent model starting wherever you're comfortable and working from there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of building a decent model - @Tim has it for down for databases and fundamentally building your object model is going to be broadly similar - what's unique, what's a hierarchy, where are there many to many relationships, etc. then, however you get to a database, make sure that you do all the good stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also make sure that you have scripts or ddl in code to allow you to create the schema from scratch and to update as you make changes (ddl in code is my preferred method - I have a system and it works).&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-11-10T21:19:25.870" />
  <row Id="18234" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T21:19:49.977" Score="32" ViewCount="" Body="&lt;p&gt;Good decision: Start saving for retirement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I opened an &lt;a href=&quot;http://en.wikipedia.org/wiki/Individual_Retirement_Account&quot; rel=&quot;nofollow&quot;&gt;IRA&lt;/a&gt; when I was 20, and have always contributed to my employer's &lt;a href=&quot;http://en.wikipedia.org/wiki/401%28k%29&quot; rel=&quot;nofollow&quot;&gt;401(k)&lt;/a&gt;. There is simply no way to make up for the lost opportunity if you wait until you're in your 40's or 50's to do this.&lt;/p&gt;&#xA;" LastEditorUserId="4922" LastEditorDisplayName="" LastEditDate="2010-11-14T22:05:36.770" LastActivityDate="2010-11-14T22:05:36.770" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="5" />
  <row Id="18235" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T21:19:53.720" Score="5" ViewCount="" Body="&lt;p&gt;Dude, when I was in my mid-20's it was the early 80's.  I was inputting data with punch cards for the USAF.  I did take a course in Fortran on a MPM system, never used it again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad decision/Good decision?? : As I was getting out of the Air Force, a chance to stay in and become trained as a programmer came up too late for me to accept.  Perhaps if I pushed harder I could have taken the fast road to burnout with obsolete technologies.  I guess I'll never know the joys of Cobol and Ada. &lt;/p&gt;&#xA;" OwnerUserId="1642" LastActivityDate="2010-11-10T21:19:53.720" CommunityOwnedDate="2010-11-13T20:22:38.513" />
  <row Id="18236" PostTypeId="2" ParentId="4587" CreationDate="2010-11-10T21:20:35.263" Score="1" ViewCount="" Body="&lt;p&gt;Programmers often end up able to give the ultimate hard no on any feature under development, as a consequence of being in the best position to say if a feature is unfeasible. Intentionally confusing &quot;No, that's impossible&quot; with &quot;No, I disagree with that feature&quot;, rather than making arguments in terms of user hostility or improving the product as a whole is a very easy way to win some arguments, but also mildly unethical.&lt;/p&gt;&#xA;" OwnerUserId="1147" LastActivityDate="2010-11-10T21:20:35.263" CommunityOwnedDate="2011-01-07T00:56:11.870" />
  <row Id="18237" PostTypeId="2" ParentId="18214" CreationDate="2010-11-10T21:22:39.490" Score="8" ViewCount="" Body="&lt;p&gt;I've never donated money, but I frequently donate &lt;em&gt;code&lt;/em&gt; to open-source libraries I use, in the form of bugfixes and new features.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-11-10T21:22:39.490" CommentCount="3" />
  <row Id="18239" PostTypeId="1" AcceptedAnswerId="18301" CreationDate="2010-11-10T21:23:19.990" Score="4" ViewCount="58" Body="&lt;p&gt;I sometimes wonder how CEOs or Founders of companies like Microsoft and Oracle manage the overall technology movement and product link-up. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take for example Oracle, it started with the database only and now, when you open their official site, the bibliography opens. Take for instance, Oracle database 11g. The core database is continuously improving and new features are being added. At the same time you need to keep a vigil on the current market trends, needs and competitors. Does Larry monitors each and every activity of technology advancement? What about new ideas and innovations? Who is responsible for these?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another example that puzzles me is .NET. With a new thing launching every second day, who is the .NET father and who suggests these guys to add classes for this and that. Who gives direction to the overall product movement and also integration with the other products? This is simply a beauty. This seamless integration or communication between the products and the technology as a whole is remarkable. (Not a biased view). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Few years back I read a book titled: &lt;em&gt;Microsoft Secrets&lt;/em&gt;. The author writes that at Microsoft, even the very senior person has to code because until and unless you are able to code, you can't better run a software company. I sometimes think Ballmer codes or not and what about Bill? Is he coding another OS at home?&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2010-11-11T07:22:18.123" Title="Who gives direction to the overall product offering and innovation?" Tags="&lt;microsoft&gt;&lt;oracle&gt;&lt;software-craftsmanship&gt;&lt;top-companies&gt;&lt;new-technology&gt;" AnswerCount="2" CommentCount="4" FavoriteCount="1" />
  <row Id="18240" PostTypeId="1" CreationDate="2010-11-10T21:24:13.950" Score="12" ViewCount="538" Body="&lt;p&gt;We recently revived the lunch in learns for the programming department in the company I work for. We were all asked if we had any ideas for a session, and if we would be interested in doing a presentation. I've had a few ideas ranging from various topics such as:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;How to think like a user when designing UI&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or &lt;em&gt;Differences in HTML5&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few coworkers I tossed these ideas around to seem to like them. However, I'd like some more ideas before I dig too far into creating a presentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What are some great lunch and learn topics?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5042" LastActivityDate="2010-11-14T02:48:27.463" Title="Great Lunch and Learn Topics" Tags="&lt;learning&gt;&lt;self-improvement&gt;&lt;education&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="7" />
  <row Id="18241" PostTypeId="2" ParentId="18214" CreationDate="2010-11-10T21:24:24.277" Score="3" ViewCount="" Body="&lt;p&gt;Throw in some tote bags and we'll talk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, I don't personally subscribe to this. I believe in pure self-interest-driven capitalism. Acting in my own self interest, I want to pay as little as possible. If you want to give away your product, I won't argue with the price.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have nothing against anyone who chooses to act differently. But you asked, so I'm answering.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-10T21:24:24.277" CommentCount="1" />
  <row Id="18243" PostTypeId="2" ParentId="18214" CreationDate="2010-11-10T21:26:34.970" Score="1" ViewCount="" Body="&lt;p&gt;Since I contribute a significant amount of coding and community work into several projects, I feel I have done my &quot;fair share&quot; and don't feel the immediate need to contribute financially.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There appear to be widely diverging final purposes for any donated money across projects.  Certainly, most of them are legitimate, but probably not all of them are actually useful.  I would go so far as to say, if you don't know what to do, don't donate money.  Consider donating time instead; that is often more useful.  This could perhaps be the topic of another question.&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-11-10T21:26:34.970" />
  <row Id="18247" PostTypeId="2" ParentId="18240" CreationDate="2010-11-10T21:34:45.547" Score="6" ViewCount="" Body="&lt;p&gt;Inversion of Control and Dependency Injection are powerful ideas that need to be much more widespread than they currently are.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-11-10T21:34:45.547" CommentCount="3" />
  <row Id="18248" PostTypeId="2" ParentId="9013" CreationDate="2010-11-10T21:36:36.060" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;we're implicitly making decisions about the architecture but not considering those decisions in terms of our known quality attribute requirements.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I think you can visualize this by creating a &quot;architectural review&quot; step in your workflow.  The step would be represented by a Kanbad board column with its own WIP limit.  The WIP limit will depend on how many architects/designers you have to participate in these reviews.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have recently been to a talk where the speakers showed how they did it for one of the clients.  I don't want to steal images from &lt;a href=&quot;http://www.torontoagilecommunity.org/sites/default/files/att10/KanbanPathToAgility.pdf&quot; rel=&quot;nofollow&quot;&gt;their presentation, but if you don't mind downloading it&lt;/a&gt;, scroll down to Slide 17 and it shows how they added the &quot;technical review&quot; step to their Kanban board.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The development team is responsible for the horizontal, left-to-right flow of user stories.  The architect(s) will, in most cases, touch the stories only when they are in the architectural/technical review column.  The intersection of the column with a horizontal swimlane visualizes the meeting of developer(s) and architect(s).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the teams where I work has a similar step where they do a database schema review with the chief data architect.  They don't use Kanban, but if they did, they would be very likely to have this column on their board.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The known quality attributes could then be represented as:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the definition of done for the architectural review step.&lt;/li&gt;&#xA;&lt;li&gt;acceptance tests around the already-done user stories representing non-functional requirements.  Then the definition of done for a new user story would include not breaking those tests.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDITED&lt;/strong&gt;: I removed a reference to the so-called &lt;em&gt;value-stream mapping&lt;/em&gt;  Apparently, the term has a lot of manufacturing baggage and it's best to avoid it when discussing Kanban in software development.&lt;/p&gt;&#xA;" OwnerUserId="464" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-11-29T01:40:05.023" LastActivityDate="2010-11-29T01:40:05.023" />
  <row Id="18249" PostTypeId="2" ParentId="18025" CreationDate="2010-11-10T21:36:51.987" Score="1" ViewCount="" Body="&lt;p&gt;Speaking from personal experience, configure your keyboard to US or UK layout and be done with it.  Set up the compose key so you can write Norwegian or other European languages on occasion.  If that turns out to be too cumbersome, you can install a layout switcher on your desktop, but I suggest that that will just confuse you.  In the long run, you might want to order a keyboard with the actual layout you are using printed on it, but to be honest I have been working with the wrong layout printed on it for years and it's not really been a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course other ideas such as moving control and caps lock also apply, but those are independent of the basic language layout.&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-11-10T21:36:51.987" />
  <row Id="18250" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T21:50:25.407" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Good decision&lt;/strong&gt;: Not getting married.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? - I'm 32 now and completely burned out. Taking a sabbatical and lateral career move next year. This would never be possible if I had a wife and/or kids to support. I'd end up having to stick to a job and routine which I'm burned out with (for the &quot;stability&quot;), which would probably result in my mental breakdown and death.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Bad decision&lt;/strong&gt;: Taking dead end jobs too seriously. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, at 32, I've finally had that Peter Gibbons moment where I realised that, unless you're working on something that's your own business (and that you REALLY have full ownership of and will get rich from if &quot;makes it big&quot;) - there really is no reason to feel indispensable and stressed at work. Let alone work heaps of unpaid overtime and let your mental health and personal life suffer.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastEditorUserId="5064" LastEditorDisplayName="" LastEditDate="2010-11-11T02:46:14.150" LastActivityDate="2010-11-11T02:46:14.150" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="11" />
  <row Id="18251" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T21:50:28.360" Score="8" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Technically (learning technologies)&#xA;  and Financially&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Good Decision&lt;/strong&gt; - &#xA; Started working part time and side projects other than working full time job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This greatly improves your skills and makes you hardworking. It also gives you a chance to work on new and different things at times along with some extra bucks and many other advantages too. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can be stressful but worth it as long as you don't overdo it. I give credit to my Boss for this...I hope continue doing this...&lt;/p&gt;&#xA;" OwnerUserId="2457" LastEditorUserId="2457" LastEditorDisplayName="" LastEditDate="2010-11-11T17:41:42.193" LastActivityDate="2010-11-11T17:41:42.193" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="1" />
  <row Id="18252" PostTypeId="2" ParentId="18240" CreationDate="2010-11-10T21:55:56.917" Score="10" ViewCount="" Body="&lt;p&gt;Some general ones:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Test Driven Development&lt;/li&gt;&#xA;&lt;li&gt;Debugging in [IDE of choice]  (you can throw in things like remote or virtualised debugging as well)&lt;/li&gt;&#xA;&lt;li&gt;What's new in the latest version of  (could be an IDE, an database system, whatever)&lt;/li&gt;&#xA;&lt;li&gt;Design patterns&lt;/li&gt;&#xA;&lt;li&gt;Security factors in [technology of choice]&lt;/li&gt;&#xA;&lt;li&gt;Performance factors in [technology of choice]&lt;/li&gt;&#xA;&lt;li&gt;Continuations &amp;amp; closures  (been reading Eric Lippert's fantastic series on this)&lt;/li&gt;&#xA;&lt;li&gt;Overview of [new language or technology of choice]&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But remember you don't have to pick general topics, you can do L&amp;amp;L topics on your own work as well.  Arguably, this is even more valuable because the audience can get a feel for what you do (rather than assuming it all happens by magic).  For example, your install guy could do a topic on how the install works, your QA lead could do a topic on preparing test environments, your build guy could do a topic on the build process, and if your project has an interesting architecture that maybe not everyone's aware of, then do a topic on that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also remember that your audience is not necessarily only composed of programmers.  You may have QA guys and project managers in there as well, so don't assume that &quot;Design patterns&quot; isn't a valid topic because everyone must know design patterns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously you can't go into too much detail on some of these (for example, don't engage in a deep analysis of the pros and cons of every single pattern).&lt;/p&gt;&#xA;" OwnerUserId="5375" LastEditorUserId="5375" LastEditorDisplayName="" LastEditDate="2010-11-10T23:00:47.467" LastActivityDate="2010-11-10T23:00:47.467" CommentCount="2" />
  <row Id="18253" PostTypeId="2" ParentId="18181" CreationDate="2010-11-10T22:45:08.320" Score="2" ViewCount="" Body="&lt;p&gt;I found Bill Karwin's book, &lt;a href=&quot;http://pragprog.com/titles/bksqla/sql-antipatterns&quot; rel=&quot;nofollow&quot;&gt;SQL Antipatterns&lt;/a&gt;, to be really useful for database planning. The point it makes most comprehensively is that the database offers many opportunities for protecting the integrity and meaningfulness of your data, and that it's a common mistake of designers to ignore these features for various tempting reasons. Considering these issues right from the start and letting them inform the entire design is worthwhile and beats trying to paper over cracks later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer to use a database that has comprehensive constraints to enforce business logic and integrity at the database level. Often I see the database as the application and anything that accesses it as a mere interface. This makes the addition of other &quot;interfaces&quot; a more pleasant and straightforward experience, and has positive benefits for security.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also think it's important to consider the structure of the database as a changing entity, rather than assuming you need to wrap it up and seal it before starting anything else. You should plan for change and accommodate the DB in your versioning system. There is a nice essay on this: &lt;a href=&quot;http://martinfowler.com/articles/evodb.html&quot; rel=&quot;nofollow&quot;&gt;Evolutionary Database Design by Martin Fowler &amp;amp; Pramod Sadalage&lt;/a&gt; (and also a whole book on the subject by Sadalage, though I haven't read this).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, peripheral issues of user accounts/roles, hardware/location/connection of host, etc. are important and sometimes overlooked. Keep these in mind too when planning.&lt;/p&gt;&#xA;" OwnerUserId="3898" LastEditorUserId="3898" LastEditorDisplayName="" LastEditDate="2010-11-10T22:58:00.620" LastActivityDate="2010-11-10T22:58:00.620" />
  <row Id="18254" PostTypeId="2" ParentId="18240" CreationDate="2010-11-10T22:47:49.467" Score="2" ViewCount="" Body="&lt;p&gt;I have never participated in an L&amp;amp;L but it seems like you're basically working with:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;something easily digested over the course of a lunch break&lt;/li&gt;&#xA;&lt;li&gt;something that will help inspire discussion and interactive feedback&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think something like posing a question as to &quot;how do you think we do X&quot; and eventually revealing the current implementation would be interesting and thought-provoking for your listeners.  You can abstract all the programming out of the equation so even non-coders could have a whack at it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could even abstract a complicated problem that your company faced as a riddle or puzzle.  Like if you had to work with a square peg and round hole and eventually just chiseled down the square peg into a circular shape -- changing stock software to suit your company's needs.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think any introduction that encourages technical thinking automatically opens up interesting conversation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;e.g. &lt;em&gt;Time/Process optimization&lt;/em&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you speed up your pie-serving waiter's operation?  He serves a piece of pie and waits for the person to finish.  He grabs their plate and takes it to the kitchen, then serves the next person.  How can you satisfy your hungry customers more quickly if you don't care about dishes piling up?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think simple metaphors to describe paradigms you use at work would be great food for thought while munching on a sandwich.&lt;/p&gt;&#xA;" OwnerUserId="5904" LastActivityDate="2010-11-10T22:47:49.467" />
  <row Id="18255" PostTypeId="1" CreationDate="2010-11-10T22:48:03.493" Score="3" ViewCount="272" Body="&lt;p&gt;I'm a 5 years Python programmer, but shortly I'll be also working with PHP. Could you recommend me some readings to getting in touch with this language having in mind my Python skills?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&lt;/p&gt;&#xA;" OwnerUserId="1346" LastActivityDate="2010-11-11T17:38:14.710" Title="PHP for Python programmers?" Tags="&lt;learning&gt;&lt;php&gt;&lt;python&gt;" AnswerCount="1" />
  <row Id="18256" PostTypeId="2" ParentId="17568" CreationDate="2010-11-10T23:16:16.297" Score="2" ViewCount="" Body="&lt;p&gt;I've never had to fill out a timesheet and don't think I'd join a company that would require me to. At all the companies where I have worked, I've always been judged based on &lt;strong&gt;what I got done&lt;/strong&gt; and not &lt;strong&gt;how long it took&lt;/strong&gt;. Results and performance are far more important than how long it took to get them. In fact, the former includes the latter: if I got as much done in a year as another developer in a similar position got done in a month, my evaluation probably wouldn't be very good. The other way around doesn't work as well: knowing that one person spent 60 hours at work this week and another spent 40 is not enough to make any meaningful judgement. Some of the most effective developers spend the &lt;em&gt;least&lt;/em&gt; time at work precisely because they are efficient. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Moreover, I've been a salaried employee at each job, so I didn't get paid any more or less because I put in more or less hours. So the info on a timesheet would &lt;em&gt;never&lt;/em&gt; be to my advantage. Finally, what business is it of yours what I spend my time doing to get a project done? If I produce the best software in the company but you discover that I surf the web 4 hours a day, would you fire me? How do you know that the web surfing isn't essential to my mental process? Moreover, even if I &lt;em&gt;did&lt;/em&gt; surf the web 4 hours a day, I probably wouldn't put it on my timesheet, which means the info is fairly useless anyway. I think I'd be tempted to fill it out with BS and hand it in with my TPS report at the end of the week...&lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-11-10T23:16:16.297" CommunityOwnedDate="2011-01-28T18:20:56.797" />
  <row Id="18257" PostTypeId="2" ParentId="18240" CreationDate="2010-11-10T23:18:55.670" Score="1" ViewCount="" Body="&lt;p&gt;I suggest &lt;strong&gt;agile&lt;/strong&gt; practices such as:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;continuous integration&lt;/li&gt;&#xA;&lt;li&gt;pair programming&lt;/li&gt;&#xA;&lt;li&gt;stand up meetings&lt;/li&gt;&#xA;&lt;li&gt;information radiator&lt;/li&gt;&#xA;&lt;li&gt;planning poker&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-10T23:18:55.670" />
  <row Id="18258" PostTypeId="2" ParentId="18239" CreationDate="2010-11-10T23:29:53.300" Score="1" ViewCount="" Body="&lt;p&gt;In theory, this is the job of program and/or product managers, but in many companies such as Google, even the simple developer can suggest innovations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Gmail is one product that emerged like that.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-10T23:29:53.300" />
  <row Id="18259" PostTypeId="2" ParentId="18120" CreationDate="2010-11-10T23:33:04.653" Score="9" ViewCount="" Body="&lt;p&gt;Bad Decision... Not productively using the 20 years of free time I had before my daughter was born. Now I cherish every spare minute I get.&lt;br /&gt;&lt;br /&gt;&#xA;Momma and the kids are coloring, I think I can sneak off to the bedroom and get some iPhone programming in!&lt;/p&gt;&#xA;" OwnerUserId="7038" LastActivityDate="2010-11-10T23:33:04.653" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="2" />
  <row Id="18261" PostTypeId="2" ParentId="16618" CreationDate="2010-11-10T23:35:37.577" Score="16" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Comments&lt;/strong&gt; considered Harmful&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I see signs of this one popping up in lots of discussions here.  People believe that comments are a code smell - that all comments can be replaced by better method and variable names.  I can imagine a world where they are considered as distasteful as GOTOs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I think this is an extreme position.  There are some potential problems with comments - If they get out of date, they do more harm than good.  And there are usless comments:  &lt;code&gt;i++;  // increment i&lt;/code&gt; helps no one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, used correctly, comments add context to the code, and capture stuff that you just can't do with naming and refactoring.  There are plenty of times I have been grateful for a comment that explained WHY something was done a certain way, instead of how it was done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I hope this prediction does not come to pass.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-11-10T23:35:37.577" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="3" />
  <row Id="18262" PostTypeId="2" ParentId="18181" CreationDate="2010-11-10T23:42:11.153" Score="6" ViewCount="" Body="&lt;p&gt;The best book I ever bought regarding database design was &lt;strong&gt;&lt;em&gt;Database Design for Mere Mortals&lt;/em&gt;&lt;/strong&gt; by Michael Hernandez ISBN: 0-201-69471-9. &lt;a href=&quot;http://www.amazon.com/gp/search/ref=nb_sb_noss?url=search-alias%3Dstripbooks&amp;amp;field-keywords=0-201-69471-9&amp;amp;rh=n%3A283155%2Ck%3A0-201-69471-9&amp;amp;enc=1&amp;amp;ajr=4&quot; rel=&quot;nofollow&quot;&gt;Amazon Listing&lt;/a&gt; I noticed he has a second edition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He walks you through the entire process of (from start to finish) of designing a database. I recommend you start with this book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to learn to look at things in groups or chunks. Database design has simple building blocks just like programming does. If you gain a thorough understanding of these simple building blocks you can tackle any database design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In programming you have:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If Constructs &lt;/li&gt;&#xA;&lt;li&gt;If Else Constructs &lt;/li&gt;&#xA;&lt;li&gt;Do While Loops &lt;/li&gt;&#xA;&lt;li&gt;Do Until Loops &lt;/li&gt;&#xA;&lt;li&gt;Case Constructs&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;With databases you have:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Data Tables&lt;/li&gt;&#xA;&lt;li&gt;Lookup Tables&lt;/li&gt;&#xA;&lt;li&gt;One to One relationships&lt;/li&gt;&#xA;&lt;li&gt;One to Many Relationships&lt;/li&gt;&#xA;&lt;li&gt;Many to Many relationships&lt;/li&gt;&#xA;&lt;li&gt;Primary keys&lt;/li&gt;&#xA;&lt;li&gt;Foreign keys&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The simpler you make things the better. A database is nothing more than a place where you put data into cubbie holes. Start by identifying what these cubbie holes are and what kind of stuff you want in them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are never going to create the perfect database design the first time you try. This is a fact. Your design will go through several refinements during the process. Sometimes things won't seem apparent until you start entering data, and then you have an &lt;strong&gt;ahh ha&lt;/strong&gt; moment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The web brings it's own sets of challenges. Bandwith issues. Statelessness. Erroneous data from processes that start but never get finished.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-10T23:42:11.153" />
  <row Id="18263" PostTypeId="2" ParentId="4714" CreationDate="2010-11-10T23:48:01.127" Score="0" ViewCount="" Body="&lt;p&gt;Because .NET web applications have a build cycle. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ruby/Python happen to be very agile/nimble and dynamic languages. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where I work, we have a huge .NET web application, and the compilation times are comparable to a typical medium-to-large C++ program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my spare I develop web apps in python, and the compilation time is 0. There's just no compilation step at all. The running interpreter just reloads .py files as you save them.&lt;/p&gt;&#xA;" OwnerUserId="1747" LastActivityDate="2010-11-10T23:48:01.127" CommentCount="1" />
  <row Id="18264" PostTypeId="2" ParentId="18240" CreationDate="2010-11-11T00:04:33.507" Score="1" ViewCount="" Body="&lt;p&gt;We mostly use our Lunch and Learns to cover new technologies that are coming out of the software stack we currently use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So currently we are on a .NET 3.5/4, C#, Visual Studio 2010, etc. stack so we're doing some lunch and learns on the following topics:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ASP.NET MVC 3&lt;/li&gt;&#xA;&lt;li&gt;Nu-Get (.NET Package Manager)&lt;/li&gt;&#xA;&lt;li&gt;etc., etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Obviously your company may be on a different stack, but you could take the same approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This has worked really well for us as far as keeping up with technology, especially since the ASP.NET MVC framework and associated software is growing at a rapid pace.&lt;/p&gt;&#xA;" OwnerUserId="4073" LastActivityDate="2010-11-11T00:04:33.507" />
  <row Id="18265" PostTypeId="1" AcceptedAnswerId="18266" CreationDate="2010-11-11T00:21:18.823" Score="3" ViewCount="490" Body="&lt;p&gt;If you wanted to create a new software product, where would you go to get your idea? Would you focus on the consumer market or the business market?&lt;/p&gt;&#xA;" OwnerUserId="6801" LastEditorUserId="6801" LastEditorDisplayName="" LastEditDate="2010-11-11T19:37:46.097" LastActivityDate="2010-11-12T04:57:22.583" ClosedDate="2010-11-12T13:38:58.233" Title="Where do you get programming ideas from?" Tags="&lt;applications&gt;&lt;inspiration&gt;&lt;product&gt;&lt;product-features&gt;" AnswerCount="6" CommentCount="9" FavoriteCount="2" />
  <row Id="18266" PostTypeId="2" ParentId="18265" CreationDate="2010-11-11T00:32:22.227" Score="11" ViewCount="" Body="&lt;p&gt;The two best sources of ideas for me are in my sleep and in the shower.  I also have a long commute, and if you're not fleshing out an idea during the drive, it's just wasted time.  In general for me, ideas go through 4 phases:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1.) Stupid or crazy idea - This is just some outlandish idea that pops in my head that there's no chance of ever actually happening.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2.) Refinement into just a dumb idea - At this point I take my stupid/crazy idea and throttle it back so that it's just outside the realm of possibility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3.) Find a marketplace - Figure out who could benefit from having the idea implemented.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4.) Planning the steps - Imagine if that slightly impossible idea were possible.  What are the steps to get between here and there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that you'll do better talking to a business person about how to take it to the next level.  At any point along the process an idea may be discarded.  Regardless of how far I get down the process I write it down in a notebook.  Sometimes ideas coalesce, sometimes they just die, but writing it down and then reading it later helps you think of more stupid or crazy ideas, the perpetuating the cycle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for targeting personal or business, let your idea tell you which way to go.  Both markets have benefits and drawbacks, but most idea either fit firmly in one realm, or cross the realms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: Ultimately for me, working on ideas is like doing your math homework.  You may never use the concepts you're studying, but working through the problems trains your mind in how to solve other problems.  Likewise, the more ideas you have and try to develop, the better you will get at getting them further down the chain.&lt;/p&gt;&#xA;" OwnerUserId="7470" LastEditorUserId="7470" LastEditorDisplayName="" LastEditDate="2010-11-11T22:04:14.017" LastActivityDate="2010-11-11T22:04:14.017" CommentCount="3" />
  <row Id="18268" PostTypeId="2" ParentId="18181" CreationDate="2010-11-11T00:38:29.907" Score="2" ViewCount="" Body="&lt;p&gt;I start with a big whiteboard and a bunch of different colors of pen.  Different colors mean different things.  And I just start drawing.  Usually I draw things that are definite in black, things that are likely in blue, and things that are unlikely in green.  Red is for important notes.  I erase and redraw copiously.  I think about what kinds of things I need to query and make sure the model supports it.  If it doesn't I'll tweak until it does.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually if the model gets too big I'll move it to Visio and work on pieces back on the whiteboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Last I think about extension points.  The biggest mistake I see most people make is design their database and then say &quot;I'm done with the database&quot; and move on.  You're never done with the database.  Every single change request you get is likely to go all the way down to that level.  So think about how to add on to it.  Think about what kinds of requests are likely and see if you're able to hook them in.  If you don't think at all about extensibility, you're going to go into major design debt when those change requests come up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for &quot;SQL then ORM&quot; or vice versa, that's up to you.  Just make sure that your model makes a good foundation first.&lt;/p&gt;&#xA;" OwnerUserId="7470" LastActivityDate="2010-11-11T00:38:29.907" CommentCount="3" />
  <row Id="18269" PostTypeId="2" ParentId="18059" CreationDate="2010-11-11T01:06:25.797" Score="0" ViewCount="" Body="&lt;p&gt;It's kinda like cleaning up the house after a wild and crazy party from the night before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's say the living room got totally trashed. The house is still a house, the living room is still a living room. It works but it's not the way it could be. After staring at the mess you realize that it needs to get cleaned up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, you start bagging the trash. It looks better already. So, you look around the room and decide to straighten out the furniture. You put one piece back, then the next and the next. Wow, the room looks really good. You are proud.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your sister walks in and says the room looks like trash, you should fix the bookshelf and vaccuum the carpet. She's right. The room looks really, really good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You look around and see that the window shades would look much better if they were all at the same height. Done. Wow, the room is amazing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Treat your code the same way.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-11T01:06:25.797" CommunityOwnedDate="2011-03-15T06:24:13.740" />
  <row Id="18270" PostTypeId="2" ParentId="16618" CreationDate="2010-11-11T01:08:20.040" Score="1" ViewCount="" Body="&lt;p&gt;Any current or past programming paradigm carried to the extreme.&lt;BR&gt;&#xA;I once worked on a program where the initial programmer refused to use GOTO, didn’t comment his code, didn’t limit his functions / subroutines to one functionality or anything close to one functionality and moreover he created new code by copying old code instead of creating a function to handle the logic. The result of this was 3 million lines of code that was almost impossible to maintain.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-11-11T01:08:20.040" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="3" />
  <row Id="18271" PostTypeId="2" ParentId="18120" CreationDate="2010-11-11T01:10:34.563" Score="6" ViewCount="" Body="&lt;p&gt;Quit Wal-Mart and finished the degree.  Thinking it was a good decision, but we'll see.&lt;/p&gt;&#xA;" OwnerUserId="4534" LastActivityDate="2010-11-11T01:10:34.563" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="3" />
  <row Id="18272" PostTypeId="2" ParentId="18120" CreationDate="2010-11-11T01:22:50.383" Score="84" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Good decision&lt;/strong&gt;: Deciding to always be &lt;strong&gt;dispensable&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my 20s I was doing a mix of sysadmin and programming work for financial traders. I &lt;em&gt;loved&lt;/em&gt; it. High stakes, high pressure, very rewarding. I got my fingers into a lot of pies and became seemingly indispensable. Which meant that taking vacations was hard and I was always kinda on call. I also couldn't escape the duties I had taken on to do new stuff. After a while, it wore me down and I grew to hate life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then a friend quoted Charles De Gaulle to me: &quot;The graveyards are full of indispensable men.&quot; His point was that nobody is really indispensable, and pretending otherwise is a great way to waste your life. So I quit and became a freelancer, where I learned the art of being dispensable. By learning to delegate, collaborate, document, and build to last, whenever I got tired of something I could always move on responsibly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now that I'm an employee again, I plan to use those skills even more. I have a great life that I want to keep, and as new challenges come along, I will be ready to seize them.&lt;/p&gt;&#xA;" OwnerUserId="1843" LastActivityDate="2010-11-11T01:22:50.383" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="8" />
  <row Id="18273" PostTypeId="1" AcceptedAnswerId="21349" CreationDate="2010-11-11T01:48:04.980" Score="3" ViewCount="450" Body="&lt;p&gt;I have posted my resume on a view sites recently and it seems to me that almost ALL hits are from technical recruiters. Out of that subset of recruiters almost ALL of them I consider to be WAY too pushy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's how it goes:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;3:01PM a phone call (I let it go to Voice mail)&lt;/li&gt;&#xA;&lt;li&gt;3:03PM same phone number (I decide this person really wants to talk to me so I'll pick up) Sure enough, its a tech recuiter. They ask the usual questions and tell me they are sending an email for confirmation of our discussion.&lt;/li&gt;&#xA;&lt;li&gt;3:08PM I get that email. I start replying...&lt;/li&gt;&#xA;&lt;li&gt;3:09PM They call me.. I don't pick up because at this point its getting rediculous&lt;/li&gt;&#xA;&lt;li&gt;3:10PM They call me AGAIN! OK.. I pick up and its &quot;Hello, have you received my email?&quot; &quot;Yes, I have... I'm replying as we speak.&quot; we hang up.&lt;/li&gt;&#xA;&lt;li&gt;3:15PM I've sent the email&lt;/li&gt;&#xA;&lt;li&gt;3:16PM I get a phone call... I pick up &quot;yes??&quot; &quot;I received your email.&quot; &quot;WTFBBQ?? WHY ARE YOU CALLING ME AGAIN!&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And with most of them, I can't understand anything they are saying. Email is obviously much easier to communicate so why all the phone calls?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is anyone else getting this as well?&lt;/p&gt;&#xA;" OwnerUserId="7473" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-25T11:07:15.607" LastActivityDate="2010-11-25T11:07:15.607" ClosedDate="2010-11-25T09:03:55.283" Title="Are tech recruiters too pushy/unprofessional?" Tags="&lt;professionalism&gt;&lt;recruiting&gt;" AnswerCount="7" CommentCount="12" />
  <row Id="18274" PostTypeId="2" ParentId="18273" CreationDate="2010-11-11T01:54:04.577" Score="5" ViewCount="" Body="&lt;p&gt;Well, recruiters (of any nationality) are basically sales people. Have you ever had to work in the proximity of an aggressive sales person?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Trust me, I don't think the people in their office are getting much done, either, due to the same phone calls that you're receiving.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-11T01:54:04.577" CommentCount="1" />
  <row Id="18275" PostTypeId="2" ParentId="18273" CreationDate="2010-11-11T02:15:05.113" Score="0" ViewCount="" Body="&lt;p&gt;No, I wouldn't say so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As in any profession, there are 90% &lt;em&gt;-censored-&lt;/em&gt;, and 10% of decent people who know how to do their job, and do it well. Unfortunatelly, as with all statistics, the smart ones are usually in the minority.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think this goes only for tech recruiters - it can easily be applied to several other professions as well. The problem with recruiters is that it is one of those professions where a dose of aggressive behaviour in many cases does pay off (in comparison, imagine a decent recruiter who left you one email and then just waited for you to answer ... In the meantime, this one already got all the information he needed and your undivided attention :-/&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-11T02:15:05.113" />
  <row Id="18276" PostTypeId="2" ParentId="18120" CreationDate="2010-11-11T02:20:51.887" Score="6" ViewCount="" Body="&lt;p&gt;In high school they wouldn't let anyone outside of the Calculus class near the teletype connected to our school district's computer. (Yes, computer as in the singular). I was ok with that because the calculus class bored me - I was auditing my physics class because it sounded fun instead. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, about five years later I bought my first computer (a Radio Shack TRS-80c) and taught myself BASIC and assembly-language. Within a year I was teaching debugging in assembly and that lead to me getting a job offer in data-processing. That change lead to me doing software development for the last 30+ years. &lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-11-11T02:20:51.887" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="3" />
  <row Id="18277" PostTypeId="2" ParentId="18273" CreationDate="2010-11-11T02:24:10.837" Score="1" ViewCount="" Body="&lt;p&gt;Pushy - that's understood, as others said already, it's salesmanship. Being unprofessional though is a different story. They are probably reasonably professional as salespeople, but when it comes to understanding whom they are hiring and for what specifically, their knowledge doesn't go beyond the basic technical terms and the ability to match the job spec against your CV at that level. That's all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And this is sad actually: technical recruiters not only have no idea about technologies, but they are not even interested. The established culture in the industry doesn't require that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line being: you should probably hire people yourself as an employer, or get in touch with companies directly whenever possible if you are an employee. (There are problems here too, but that's a different story.)&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-11T02:24:10.837" />
  <row Id="18278" PostTypeId="2" ParentId="18059" CreationDate="2010-11-11T02:36:49.393" Score="0" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;Easy!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take it with an example ... everyone has in their lives written a letter to a dear one. It has to be someone dear because in those letters we usually pay attention to composition as well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, you have your text, ... the meaning will go through either way, but you want the entire thing to sound &lt;em&gt;nice!&lt;/em&gt; Right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Refactoring, same thing ... same pieces of information, more or less, but the composition is better. And it will probably result in a better review by the reader.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another example - writing an article for  a magazine. Two writers, both know &quot;their stuff&quot;, the only difference is one knows &quot;how to write&quot; and the other writes like he learned to write from answers like these.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whose article will you remember?&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-11T02:36:49.393" CommunityOwnedDate="2011-03-15T06:24:13.740" />
  <row Id="18279" PostTypeId="2" ParentId="18273" CreationDate="2010-11-11T02:39:39.540" Score="2" ViewCount="" Body="&lt;p&gt;The best recruiters I've worked with were fun people to talk to. They realized there's a need for time to get things done so they'd call, we'd talk, we'd agree on what was needed next, then they'd let me get it done. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think working with a recruiter is a partnership, and if they can't understand that then I'll firmly tell them that is how it is. If they still can't get it then I'll weigh whether the job proposal is worth the hassle working with them. Sometimes it is, sometimes they're such a pain in the butt that I don't want to be associated with them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are several recruiters I worked with previously that I'd give serious attention to if they called with something, because they were very conscientious and good people.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-11-11T02:39:39.540" />
  <row Id="18280" PostTypeId="2" ParentId="16618" CreationDate="2010-11-11T02:50:54.833" Score="0" ViewCount="" Body="&lt;p&gt;I may sound Crazy but c variants lol. Back to BASIC everyone :)&lt;/p&gt;&#xA;" OwnerUserId="7475" LastActivityDate="2010-11-11T02:50:54.833" CommunityOwnedDate="2011-04-14T16:13:04.920" />
  <row Id="18281" PostTypeId="2" ParentId="18255" CreationDate="2010-11-11T02:51:31.897" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.php.net/docs.php&quot; rel=&quot;nofollow&quot;&gt;http://www.php.net/docs.php&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's all you will ever need. But you will quickly discover that all of the kinds of things that you know to be bad ideas or poor style are &lt;em&gt;idiomatic&lt;/em&gt; and common-place. The majority of the examples you will see are poorly-designed algorithms wrapped in poorly thought out code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just please don't use the &lt;code&gt;mysql_*&lt;/code&gt; functions and instead prefer the &lt;code&gt;mysqli_*&lt;/code&gt; functions, if you use MySQL. Regardless of the database you use, please use parametric queries.&lt;/p&gt;&#xA;" OwnerUserId="83" LastEditorUserId="83" LastEditorDisplayName="" LastEditDate="2010-11-11T17:38:14.710" LastActivityDate="2010-11-11T17:38:14.710" CommentCount="5" />
  <row Id="18282" PostTypeId="1" AcceptedAnswerId="18286" CreationDate="2010-11-11T02:52:25.923" Score="9" ViewCount="700" Body="&lt;p&gt;Why do people say that VB gives you bad programming habits? What do they mean by this?&lt;/p&gt;&#xA;" OwnerUserId="7475" LastEditorUserId="7475" LastEditorDisplayName="" LastEditDate="2010-11-16T00:46:44.947" LastActivityDate="2010-11-16T00:46:44.947" Title="Why do people say that VB gives you bad programming habits?" Tags="&lt;best-practices&gt;&lt;visual-studio-2010&gt;&lt;bad-habits&gt;&lt;basic&gt;" AnswerCount="8" CommentCount="1" FavoriteCount="0" />
  <row Id="18283" PostTypeId="2" ParentId="18282" CreationDate="2010-11-11T03:23:59.687" Score="18" ViewCount="" Body="&lt;p&gt;I think this is a case of &lt;a href=&quot;http://en.wikipedia.org/wiki/Confirmation_bias&quot; rel=&quot;nofollow&quot;&gt;confirmation bias&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since VBA was included with many versions of Office, many folks got started by writing macros and VBA code to get stuff done (in Excel, Access, or now InfoPath). This makes VB a first programming language for many self-taught programmers. In addition, since many programmers have no formal education, habits learned early on may be hard to unlearn.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many of the folks complaining either:   &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Met one bad VB programmer and therefore we/they are all bad programmers.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Had to fix some critical business application written in VBA by someone who didn't understand programming (this is the source of complaints about apps written in Excel or Access, and in the future, we'll be whining about InfoPath apps too). &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/OKqXv.png&quot; alt=&quot;alt text&quot;&gt;&lt;br&gt;&#xA;&lt;em&gt;It's PI plus C of course.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="6591" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-11T09:37:24.853" LastActivityDate="2010-11-11T09:37:24.853" CommentCount="3" />
  <row Id="18284" PostTypeId="2" ParentId="18282" CreationDate="2010-11-11T03:26:07.600" Score="4" ViewCount="" Body="&lt;p&gt;Because they &lt;em&gt;(well, those who do)&lt;/em&gt; agree without thinking to everything a certain guy says.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;*It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration*&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;-- Edsger W. Dijkstra&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fortunatelly, some reasonable contra arguments given in one of the older questions here &lt;em&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/7747/do-you-think-that-exposure-to-basic-can-mutilate-your-mind&quot;&gt;Do you think that exposure to BASIC can mutilate your mind?&lt;/a&gt;&lt;/em&gt; prove there is hope for humanity still.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-11T03:37:32.727" LastActivityDate="2010-11-11T03:37:32.727" CommentCount="6" />
  <row Id="18285" PostTypeId="2" ParentId="2846" CreationDate="2010-11-11T03:32:09.150" Score="3" ViewCount="" Body="&lt;h2&gt;AutoHotkey&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.autohotkey.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.autohotkey.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Very domain-specific. Even allows unquoted string literals in certain statements.&#xA;Here is a part of my AHK code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;PutUni(DataIn) { ; hack to type Unicode character&#xA;  SavedClip := ClipBoardAll&#xA;  ClipBoard = ; NOTE: assign to an empty string&#xA;  UTF8Code := DataIn&#xA;  Transform, ClipBoard, Unicode, %UTF8Code% ; Why not Transform(ClipBoard, Unicode, &quot;$UTF8Code&quot;)?&#xA;  Send ^v ; CTRL+V&#xA;  Sleep 100 ;Generous, less wait or none will often work.&#xA;  ClipBoard := SavedClip&#xA;  return ; why I need this?&#xA;}&#xA;&#xA;^!/::&#xA;MouseGetPos, MouseX, MouseY ; MouseGetPos(&amp;amp;MouseX, &amp;amp;MouseY)&#xA;PixelGetColor, color, %MouseX%, %MouseY% ; the %% syntax is irregular&#xA;MsgBox The color at the current cursor position is %color%. # no quotes in MsgBox&#xA;return&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The AHK features are killer, but the language isn't.&#xA;I would rather use a Ruby or Python library with all the AHK features.&lt;/p&gt;&#xA;" OwnerUserId="1325" LastEditorUserId="1325" LastEditorDisplayName="" LastEditDate="2010-11-18T01:14:52.087" LastActivityDate="2010-11-18T01:14:52.087" CommunityOwnedDate="2010-11-11T03:32:09.150" CommentCount="1" />
  <row Id="18286" PostTypeId="2" ParentId="18282" CreationDate="2010-11-11T03:32:14.217" Score="3" ViewCount="" Body="&lt;p&gt;In its old incarnations (VB6 and prior), Visual Basic was a melting pot of different calling conventions, bolted on features, and incomplete class structures and error handling.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the advent of VB.NET, most (if not all) of those objections are gone.  VB.NET is a pretty good language, and it will actually do a few things (e.g. XML Literals) that C# cannot (not without some bending, anyway).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consequently, I declare that old Dijkstra adage obsolete.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-11T18:16:37.720" LastActivityDate="2010-11-11T18:16:37.720" CommentCount="4" />
  <row Id="18287" PostTypeId="2" ParentId="18282" CreationDate="2010-11-11T03:32:37.310" Score="5" ViewCount="" Body="&lt;p&gt;One reason I can think of has to do with tutorials placing too much code directly in GUI event handlers; instead of calling a function/method in an application library.  E.g. you should created a method to save the file and call that method from the event handler for the appropriate menu entry/button.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think much of it has to do with problems like this.  That is, not learning how to do it the right way from the beginning.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-11-11T03:32:37.310" CommentCount="6" />
  <row Id="18288" PostTypeId="1" CreationDate="2010-11-11T04:19:07.833" Score="8" ViewCount="227" Body="&lt;p&gt;Both asserts and unit tests serve as documentation for a codebase, and a means of discovering bugs.  The main differences are that asserts function as sanity checks and see real inputs, whereas unit tests run on specific simulated inputs and are tests against a single well-defined &quot;right answer&quot;.  What are the relative merits of using asserts vs. unit tests as the main means of verifying correctness?  Which do you believe should be emphasized more heavily?&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-11T20:00:28.707" Title="Are asserts or unit tests more important?" Tags="&lt;testing&gt;&lt;unit-testing&gt;&lt;assertions&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="1" />
  <row Id="18289" PostTypeId="2" ParentId="18288" CreationDate="2010-11-11T04:45:38.917" Score="3" ViewCount="" Body="&lt;p&gt;When talking about assertions, keep in mind that they can be turned off at the flick of a switch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example of a very bad assertion:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;char *c = malloc(1024);&#xA;assert(c != NULL);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Why is this bad? Because no error checking is done if that assertion is skipped due to something like NDEBUG being defined.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A unit test would (likely) just segfault on the code above. Sure, it did its job by telling you that something went wrong, or did it? How likely is &lt;code&gt;malloc()&lt;/code&gt; to fail under the test?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assertions are for debugging purposes when a programmer needs to imply that no 'normal' event would cause the assertion to fire. &lt;code&gt;malloc()&lt;/code&gt; failing is, indeed a normal event, thus should never be asserted. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many other cases where assertions are used instead of adequately handling things that might go wrong. This is why assertions get a bad reputation, and why languages like Go don't include them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unit tests are designed to tell you when something you changed broke something else. They are designed to save you (in most cases) from going through every feature of the program (however, testers &lt;em&gt;are&lt;/em&gt; important for releases) every time you make a build.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There really isn't any distinct correlation between the two, other than both of them telling you that something went wrong. Think of an assert as a breakpoint in something you are working on, without having to use a debugger. Think of a unit test as something that tells you if you broke something that you &lt;em&gt;aren't&lt;/em&gt; working on.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-11T04:45:38.917" CommentCount="5" />
  <row Id="18290" PostTypeId="2" ParentId="18288" CreationDate="2010-11-11T04:51:18.657" Score="3" ViewCount="" Body="&lt;p&gt;They are both tools used to help improve the overall quality of the system you are building.  A lot depends on the language your using, they type of application you are building, and where your time is best spent.  Not to mention you have a few schools of thought about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To start, if you are using a language without an &quot;assert&quot; keyword, you can't use asserts (at least not in the way we are talking here).  For a long time, Java did not have an assert keyword, and a number of languages still don't.  Unit testing then becomes quite a bit more important.  In some languages the assertions are only run when a flag is set (again with Java here).  When the protections are not always there, it's not a very useful feature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a school of thought that says if you are &quot;asserting&quot; something, you might as well write an if/throw meaningful exception block.  This thought process comes from many asserts placed in the beginning of a method to ensure all values are in bounds.  Testing your preconditions is a very important part of having an expected postcondition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unit testing is extra code that has to be written and maintained.  To many this is a drawback.  However, with the current crop of unit test frameworks out there, you can generate a larger number of test conditions with comparatively little code.  Parameterized tests and &quot;theories&quot; will perform the same test with a large number of data samples which can uncover some hard to find bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally find I get more mileage with unit testing than sprinkling asserts, but that is because of the platforms I develop on most of the time (Java/C#).  Other languages have more robust assertion support, and even &quot;Design by Contract&quot; (see below) to provide even more guarantees.  If I were working with one of these languages, I might use the DBC more than the unit testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Design_by_contract#Languages_with_native_support&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Design_by_contract#Languages_with_native_support&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-11-11T04:51:18.657" />
  <row Id="18291" PostTypeId="2" ParentId="18288" CreationDate="2010-11-11T05:06:57.393" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Asserts&lt;/strong&gt; are useful for telling you about &lt;strong&gt;the internal state of the program&lt;/strong&gt;. For example, that your data structures have a valid state, e.g., that a &lt;code&gt;Time&lt;/code&gt; data structure won't hold the value of &lt;code&gt;25:61:61&lt;/code&gt;. The conditions checked by asserts are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Preconditions, which assure that the caller keeps its contract,&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Postconditions, which assure that the callee keeps its contract, and&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Invariants, which assure that the data structure always holds some property after the function returns. An invariant is a condition that is a precondition and a postcondition.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Unit tests&lt;/strong&gt; are useful for telling you about &lt;strong&gt;the external behavior of the module&lt;/strong&gt;. Your &lt;code&gt;Stack&lt;/code&gt; may have a consistent state after the &lt;code&gt;push()&lt;/code&gt; method is called, but if the size of the stack doesn't increase by three after it is called three times, then that is an error. (For example, the trivial case where the incorrect &lt;code&gt;push()&lt;/code&gt; implementation only checks the asserts and exits.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Strictly speaking, the major difference between asserts and unit tests is that &lt;strong&gt;unit tests have test data&lt;/strong&gt; (values to get the program to run), while asserts do not. That is, you can execute your unit tests automatically, while you cannot say the same for assertions. For the sake of this discussion I've assumed that you are talking about executing the program in the context of higher-order function tests (which execute the whole program, and do not drive modules like unit tests). If you are not talking about automated function tests as the means to &quot;see real inputs&quot;, then clearly the value lies in automation, and thus the unit tests would win. If you are talking about this in the context of (automated) function tests, then see below.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There can be some overlap in what is being tested. For example, a &lt;code&gt;Stack&lt;/code&gt;'s postcondition may actually assert that the stack size increases by one. But there are limits to what can be performed in that assert: Should it also check that the top element is what was just added?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For both, the goal is to increase quality. For unit testing, the goal is to find bugs. For assertions, the goal is to make debugging easier by observing invalid program states as soon as they occur.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that &lt;em&gt;neither&lt;/em&gt; technique verifies correctness. In fact, if you conduct unit testing with the goal to verify the program is correct, you will likely come up with uninteresting test that you know will work. It's a psychological effect: you'll do whatever it is to meet your goal. If your goal is to find bugs, your activities will reflect that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both are important, and have their own purposes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[As a final note about assertions: To get the most value, you need to use them at all critical points in your program, and not a few key functions. Otherwise, the original source of the problem might have been masked and hard to detect without hours of debugging.]&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-11-11T20:00:28.707" LastActivityDate="2010-11-11T20:00:28.707" />
  <row Id="18292" PostTypeId="2" ParentId="18265" CreationDate="2010-11-11T05:26:16.543" Score="3" ViewCount="" Body="&lt;p&gt;I don't go seeking ideas, I wait for opportunities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't think of a single month that has gone by, at least in the last decade that didn't yield an interesting problem to solve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for focus, I much prefer working on things that I can finish within my means and within a reasonable amount of time. I wouldn't conceptually restrict myself to just one market, but there are some that I might be inclined to avoid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would pick an end user application over something that had RT implications, such as software that would manage financial trades, for instance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For inspiration, I love nature. I love to watch insects, in fact I was just thinking about getting an ant farm for my desk. That doesn't give me new problems to solve, but might help my thinking when working on one.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-11T05:26:16.543" CommentCount="1" />
  <row Id="18293" PostTypeId="2" ParentId="18265" CreationDate="2010-11-11T05:37:18.323" Score="1" ViewCount="" Body="&lt;p&gt;Here's &lt;a href=&quot;http://youtu.be/NugRZGDbPFU&quot; rel=&quot;nofollow&quot;&gt;a nice overview&lt;/a&gt; on YouTube of the book &lt;em&gt;Where Good Ideas Come From&lt;/em&gt;, by Steven Johnson. The main idea is that it takes a long time, and is often the result of the intersection of two different half-ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my own work, I get most of my ideas when reading papers and books. For example, for programming language design, a good paper from the OOPSLA conference (and its Onward! track) can give you a half a page of notes when you're done reading it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got the idea for my dissertation when I asked my wife what &quot;deconstructive programming&quot; would be (her area is fine arts). I got many of the other ideas in my thesis from reading the book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0262024667&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Design Rules&lt;/em&gt;&lt;/a&gt;, by Baldwin and Clark.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-11T05:37:18.323" />
  <row Id="18294" PostTypeId="2" ParentId="18282" CreationDate="2010-11-11T05:43:41.570" Score="7" ViewCount="" Body="&lt;p&gt;Because they think they can assemble things together without any understanding about how anything actually works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a cultural thing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;BSD and Linux foster a culture where you &lt;em&gt;have&lt;/em&gt; to understand the system well. Thus programmers who are involved with a *nix system tend to be more competent than programmers who worked with systems and languages that are designed for people who don't want to understand how the system works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, there could be some great VB programmers, and sure there are many horrible linux programmers. But the point is, the system and the language cultivate a certain kind of mentality and this mentality can have a drastic effect on how well a programmer you become.&lt;/p&gt;&#xA;" OwnerUserId="1747" LastActivityDate="2010-11-11T05:43:41.570" CommentCount="2" />
  <row Id="18295" PostTypeId="1" AcceptedAnswerId="18300" CreationDate="2010-11-11T05:49:08.023" Score="3" ViewCount="211" Body="&lt;p&gt;Software domain prefers Engineers but we do have non-technical graduates developing better software. Though engineering degree helps you to get a job, how many of you are from non-technical background? What was your initial experience? How did you manage to get a software job?  Also, I would like to know anything else can be learnt apart from good coding practices to become a good developer? may be a technical diploma?&lt;/p&gt;&#xA;" OwnerUserId="7478" LastActivityDate="2010-12-04T06:25:34.760" Title="Non-technical background graduates/ under graduates? How many they are in industry? What made you to get in?" Tags="&lt;jobs&gt;&lt;career&gt;&lt;experience&gt;&lt;software-engineering&gt;" AnswerCount="6" />
  <row Id="18296" PostTypeId="2" ParentId="2846" CreationDate="2010-11-11T05:51:11.807" Score="1" ViewCount="" Body="&lt;h1&gt;C#&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;hasen j:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;It's in many ways like Java. Certainly&#xA;  a lot better, but still a statically&#xA;  typed language that's strictly OOP&#xA;  (everything must be a class) and not&#xA;  really designed with exploratory&#xA;  programming in mind.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Although in all fairness, it's&#xA;  probably among the best choices for&#xA;  writing desktop apps. Many of the good&#xA;  Ubuntu/Linux apps are written in C# on&#xA;  Mono (gnome-do, docky, banshee ..&#xA;  etc).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;calavera:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;C# sucks.  It's like that awesome&#xA;  local punk rock band that kept&#xA;  getting bigger and bigger until they&#xA;  were so full of crap that eventually&#xA;  only emo kids went to their concerts. &#xA;  Seriously, how many god damn keywords&#xA;  do we need??  There are now OVER ONE&#xA;  HUNDRED.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1747" LastEditorUserId="5739" LastEditorDisplayName="" LastEditDate="2010-12-11T09:05:52.587" LastActivityDate="2010-12-11T09:05:52.587" CommunityOwnedDate="2010-11-11T05:51:11.807" CommentCount="5" />
  <row Id="18297" PostTypeId="2" ParentId="18295" CreationDate="2010-11-11T05:55:00.837" Score="2" ViewCount="" Body="&lt;p&gt;Here I am!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ten years programming on my own, studying &quot;scientific&quot; and classical subjects in high school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes people with a technical diploma know less then me, because I had passion pushing me while they had to study because they 'had to'. And now some them even hate computers...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I don't think it counts, but I dropped out of university having followed only 3 courses in computer engineering).&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-11-11T05:55:00.837" />
  <row Id="18298" PostTypeId="2" ParentId="18059" CreationDate="2010-11-11T06:01:51.580" Score="1" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Y08ch.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;This is a slightly more graphical version of the home theatre analogy.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to add one more new appliance [aka, new functionality], at a pinch you can probably fit it in somewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to add yet another appliance, you can buy an extension lead, which will buy you some time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But at each addition, it becomes more difficult to find a solution. And you're exposing yourself to a &lt;em&gt;risk&lt;sup&gt;1&lt;/sup&gt;&lt;/em&gt; of fire [aka bugs], and you will have to pull out the big bucks to pay someone to put new sockets into the wall, which could quite possibly escalate all the way up to the main circuit board, or even further.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt; Another thing PHBs don't grok very well: &quot;Well if it only &lt;em&gt;might&lt;/em&gt; happen, what are you worrying about?&quot;&lt;/p&gt;&#xA;" OwnerUserId="4285" LastActivityDate="2010-11-11T06:01:51.580" CommunityOwnedDate="2011-03-15T06:24:13.740" />
  <row Id="18299" PostTypeId="2" ParentId="18295" CreationDate="2010-11-11T06:10:23.823" Score="1" ViewCount="" Body="&lt;p&gt;I don't have an engineering degree but I do have a B. Math where one of my majors was Computer Science which should be close enough in some ways.  Does that count as a technical degree?  I'm not a P. Eng though I'm not sure if that is sufficient or just necessary to meet your requirement here.  My university years being 1993-1997 was just as the dot-com boom happened so it was kind of easy graduating into that field in a sense and then I've just stayed in web development and tried to improve some things year after year.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-11T06:10:23.823" />
  <row Id="18300" PostTypeId="2" ParentId="18295" CreationDate="2010-11-11T06:42:35.693" Score="7" ViewCount="" Body="&lt;p&gt;I have a masters degree in music composition. After a stint as a bicycle messenger, I got a job doing tech support at a company that made music software (I was sort of an expert in midi and making windows 3.1 play nice with audio). On my first day, I found out that I was also going to be testing software. Later that day, I found out that I was going to be the network administrator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found that programming and music were quite similar. I learned VB (and related languages) and C. Eventually, I felt it was time to move on, and on a whim I applied for a job at Microsoft. I got the job, and nearly 16 years later, I'm edging up to partner level and have cross company influence in software testing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most important thing I've learned is that a passion for continuous learning is critical for success. If you are confident that you can learn anything, you will be able to take on any obstacle or challenge. I'm lucky that I'm a quick learner - it's a skill that continues to help me in my career.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-11-11T06:42:35.693" />
  <row Id="18301" PostTypeId="2" ParentId="18239" CreationDate="2010-11-11T07:22:18.123" Score="2" ViewCount="" Body="&lt;p&gt;The question you are asking is essentially: &quot;Where does innovation come from&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The answer depends on the company. Some companies have whole departments for that (which seems like a contradiction in terms), and don't actually innovate very well. They tend to be a little conservative, and you need to get ideas through a bunch of committees who never have ideas themselves, they just squash what comes to them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some companies have innovation as a guiding principle in everything they do - good and famous examples include Google and WL Gore &amp;amp; Associates. Such companies have to work very hard to preserve such a culture as they grow in size. In such companies - ideas for innovation can come from anyone - including the cleaner or the cook in the works canteen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There needs to be some supporting things to foster this - a means of genuinely logging ideas, a means of encouraging people to go off and work on them for a while (play time BEFORE it gets the corporate scrutiny). Such approaches are expensive (people going off playing) but can lead to very substantial rewards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many companies formalise all this with a Product Manager or Program Manager who is supposed to have the ideas, direct the general effort, and so on. My own view is that this relies too much on the wisdom of one person who will never HAVE all the good ideas, and who can too easily steer things according to their own agenda. Sometimes this can be customer driven - which can be good and bad. Customers in general don't have the same level of radical new out-there ideas, they tend to look at existing products and make wish-lists for incremental improvements. This can be very important, but its not the only approach that should be considered.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-11-11T07:22:18.123" />
  <row Id="18302" PostTypeId="2" ParentId="18295" CreationDate="2010-11-11T07:47:47.940" Score="1" ViewCount="" Body="&lt;p&gt;My educational background is Economics and Statistical Analysis.  Though the Econ degree is a BSci degree, so I wouldnt call it strictly 'non-technical'.  One of the reasons I went that route (in addition to being interested in economics) was that I was already a decent programmer by the time I got to college, and thought it would be good not to restrict myself to one subject.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got into professional development because my first employer after college, a research company where I was hired for my statistics background, noticed I picked up anything computer related obscenely quick.  So when they needed a program, they had me write it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Econ degree has, imo, been very valuable.  A couple of employers have mentioned it made my resume stand out because they liked the idea of a programmer who understood business and financial topics (even if that wasnt strictly what Econ is about, I went with it...).  But more importantly, its a very useful way of thinking, in understanding trade-offs, cost-benefits, efficiency, cause-effect, how different complex systems and processes affect each other... all useful skills in development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For recommendations... if you want to become an expert programmer, program.  Write software.  Learn from doing.  I'm not the only person here who will tell you there's little correlation between programming ability and the type of degree the programmer has, if they even have one.  Some people are just &lt;em&gt;meant&lt;/em&gt; to be programmers, so thats what they'll end up getting drawn to no matter what path they start out on.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-11T07:47:47.940" />
  <row Id="18303" PostTypeId="1" AcceptedAnswerId="18311" CreationDate="2010-11-11T07:49:59.323" Score="4" ViewCount="140" Body="&lt;p&gt;Hi ,&#xA;How important is the need to learn XML when JSON is able to do almost all that I need. Having said that I use JSON mainly for AJAX requests and obtaining data via the different APIs.&#xA;I am a total newbie to web development and the reason I am asking this is that I want to know whether I should go ahead and buy a book on XML or can I just give it a pass.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="5701" LastActivityDate="2010-11-11T10:56:28.717" Title="Importance of XML in the world of JSON" Tags="&lt;xml&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="18304" PostTypeId="1" AcceptedAnswerId="18323" CreationDate="2010-11-11T07:58:30.467" Score="7" ViewCount="484" Body="&lt;p&gt;I would like to know what kind of &lt;strong&gt;jobs/roles&lt;/strong&gt; one could expect on their career path if they start as a developer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also want to know &lt;strong&gt;how many years&lt;/strong&gt; you'll be expected to stay in the same role until you progress to the next level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The career path is of course, based on how good you do your job, the company etc. but assume a normal person who balances life and family with career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some examples of roles that I have in may head: developer, senior developer, architect, project manager etc.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-11-11T11:12:09.743" LastActivityDate="2010-11-11T11:12:09.743" Title="Starting as a developer what are the possible career steps?" Tags="&lt;career&gt;&lt;self-improvement&gt;&lt;career-advice&gt;" AnswerCount="6" FavoriteCount="5" />
  <row Id="18306" PostTypeId="2" ParentId="18240" CreationDate="2010-11-11T08:20:48.933" Score="1" ViewCount="" Body="&lt;p&gt;I enjoy talks that discuss the history of something that I work with, especially talks that go in depth just enough to give me additional insight into my many 'Why is this the way it is?' type of questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of people, for instance have no idea that &lt;a href=&quot;http://www.php.net/manual/en/history.php.php&quot; rel=&quot;nofollow&quot;&gt;PHP started as a simple set of Perl scripts&lt;/a&gt; for management of a (P)ersonal (H)ome (P)age.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your company uses a lot of free / open source software, there is a rich history to discuss. You'd be surprised how many people think that Linus Torvalds wrote bash (when in fact he only ported it very early on).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can research and dig up humorous, interesting and often informative anecdotes on almost any technology if you spend enough time doing so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This has the additional benefit of including people who might not otherwise participate.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-11T08:20:48.933" />
  <row Id="18307" PostTypeId="2" ParentId="18304" CreationDate="2010-11-11T08:23:31.530" Score="3" ViewCount="" Body="&lt;p&gt;Developer, Senior Developer, Architect, Project Manager (possibly also Principal Engineer, Program Manager, CTO, and God forbid, CEO). That's pretty much it, the only question is at which point you'd entirely switch from your editor/IDE to Microsoft Project/Word/Powerpoint.&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-11T08:23:31.530" CommentCount="2" />
  <row Id="18308" PostTypeId="2" ParentId="17898" CreationDate="2010-11-11T08:45:29.190" Score="9" ViewCount="" Body="&lt;p&gt;I really get quite worried when I hear the &quot;how did you get a grasp on pointers&quot; question. I always thought the concept was incredibly simple, and a logical evolution of languages providing great power to the programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing which worries me is that I never found it difficult to understand the concept of pointers. So when you here &quot;when did you finally get it&quot; over and over again, you start thinking:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Do I actually get it? Maybe I never did?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Maybe the reason why the concept seems to be a tricky one, is because we keep telling everyone who has yet to encounter them that pointers are so difficult, and here are a hundred ways in which you can learn?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just throwing that idea out there, of course personally I love a good diagram and &lt;a href=&quot;http://twit.tv/sn237&quot; rel=&quot;nofollow&quot;&gt;Steve Gibson always does a fantastic job of explaining anything&lt;/a&gt;!&lt;/p&gt;&#xA;" OwnerUserId="7485" LastActivityDate="2010-11-11T08:45:29.190" CommunityOwnedDate="2010-12-02T00:15:36.130" CommentCount="5" />
  <row Id="18309" PostTypeId="2" ParentId="18304" CreationDate="2010-11-11T09:01:13.187" Score="6" ViewCount="" Body="&lt;p&gt;What do you expect? Money? Underlings? Self-fulfillment? Freedom? Power? Whenever I hear someone wants to make a &lt;em&gt;career&lt;/em&gt;, I get a feeling that this someone has no clear &lt;em&gt;goals&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-11T09:01:13.187" CommentCount="2" />
  <row Id="18310" PostTypeId="2" ParentId="18265" CreationDate="2010-11-11T09:04:27.740" Score="0" ViewCount="" Body="&lt;p&gt;Wait for the great lightning of creativity to strike you. Until then, just look what the competition does, and do it better.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-11T09:04:27.740" />
  <row Id="18311" PostTypeId="2" ParentId="18303" CreationDate="2010-11-11T09:05:07.203" Score="4" ViewCount="" Body="&lt;p&gt;You'll need to learn XML to get anywhere in the web world. It's what drives of lot of B2B communications and there are many standard XML formats describing important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just restricting yourself to JSON is hugely self-limiting. Yeah, you'll be chucking AJAX calls around but what happens when you need to communicate with a GeoServer? It'll be adhering to GIS standards and will be spurting out XML in WCS (Web Capabilities Service), WMS (Web Map Service) and WFS (Web Feature Service) formats among others. If you don't know how to handle XML, you'll have some trouble with that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, any marshaller (domain object to text format) worth it's salt will be able to convert their objects to and from XML/JSON/YAML so you could make the argument that so long as you can hide behind the marshaller you only have to deal with the domain objects. Web services provide WSDL exactly for this purpose. But sooner or later you'll need to read and understand the contents of your requests and responses and that will certainly require an understanding of XML.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And let's not forget good ol' XHTML the new web standard for HTML pages. It's XML.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, in short, learn XML - and keep JSON wherever you can 'cos it's lovely.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-11T10:56:28.717" LastActivityDate="2010-11-11T10:56:28.717" CommentCount="6" />
  <row Id="18312" PostTypeId="2" ParentId="18214" CreationDate="2010-11-11T09:05:52.990" Score="1" ViewCount="" Body="&lt;p&gt;I've donated many times. Usually not out of appreciation, but rather to fund some activity which I considered useful:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;FSF and EFF (but no longer, as they seem to be well-funded now)&lt;/li&gt;&#xA;&lt;li&gt;&quot;Free Blender&quot; campaign&lt;/li&gt;&#xA;&lt;li&gt;Various smaller projects whose developers needed money to keep working on them&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It doesn't necessarily have to be about source code for me. I've bought a pinvoke icon set license to support its continued development, since it is given away under a CC license. I've also given money to various art projects (usually web comics) who put their content up for free and needed money to pay the bills.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-11-11T09:05:52.990" />
  <row Id="18313" PostTypeId="2" ParentId="18127" CreationDate="2010-11-11T09:08:34.533" Score="2" ViewCount="" Body="&lt;p&gt;I personally tend to believe one can get many of the benefits of TDD (without actually adhering to TDD), by:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Writing both the &lt;em&gt;caller&lt;/em&gt; and the &lt;em&gt;callee&lt;/em&gt; code at around the same time (definitely not more than 24 hours apart).&#xA;&lt;ul&gt;&#xA;&lt;li&gt;And use that to influence the design of the interface (objects, method calls and parameters).&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;For a component requiring a complicated algorithm/code, strongly consider implementing in a simpler but correct algorithm first, even if it is less efficient (or stupid, or only works in a narrower situation).&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A very simple testing method would be running both algorithms and comparing their results.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Once a bug was discovered (by any means) in one part of the code, that part of code deserves to be tested much more aggressively. This means doing more sophisticated tests than TDD would call for. (based on the reasoning that &lt;em&gt;bugs occur in clusters&lt;/em&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;TDD seems to require you to have a pretty clear understand of what function you &lt;em&gt;plan to&lt;/em&gt; implement, or what requirements you &lt;em&gt;plan to&lt;/em&gt; satisfy by implementing the code. In some situations, there is simply too little understanding of the problem. This would have called for a &lt;strong&gt;Spike&lt;/strong&gt; solution. Within the scope of this Spike solution, TDD can be applied because the problem has been narrowed down to a managable level. Once a few Spikes have been finished, each covering some aspects of the original problem, one can start working on the full solution, and applying TDD at that point might be feasible because of the improved understanding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edited:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After reading the page more carefully,&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;While it should be possible to test&#xA;  most kernel functions in a &quot;testbed&quot;&#xA;  test driver, the really &quot;juicy&quot; stuff&#xA;  like interrupt handling, process&#xA;  dispatching or memory management are&#xA;  probably not unit-testable.&#xA;  --- from &lt;a href=&quot;http://wiki.osdev.org/Unit_Testing&quot; rel=&quot;nofollow&quot;&gt;http://wiki.osdev.org/Unit_Testing&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;They are clearly saying that &lt;em&gt;most&lt;/em&gt; parts are testable, and that &lt;em&gt;some parts&lt;/em&gt; require a different kind of testing: &lt;strong&gt;Stress Testing&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="620" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-11-11T09:19:13.960" LastActivityDate="2010-11-11T09:19:13.960" CommentCount="1" />
  <row Id="18314" PostTypeId="1" AcceptedAnswerId="18329" CreationDate="2010-11-11T09:14:05.677" Score="2" ViewCount="80" Body="&lt;p&gt;As a backend coder my front end design is... pretty poor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really can't be bothered doing elance/freelance whatever website these days and do the whole bidding thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whats a good way to find a decent designer? &lt;/p&gt;&#xA;" OwnerUserId="6959" LastActivityDate="2010-11-11T10:38:56.510" Title="Where to find good designers?" Tags="&lt;design&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="18315" PostTypeId="1" CreationDate="2010-11-11T09:20:27.347" Score="0" ViewCount="297" Body="&lt;p&gt;I want to make library classes in Java and use them in my future programs. I want these library classes to find prime numbers upto a certain number or even the next prime number or you can say solve most of the &lt;strong&gt;basic&lt;/strong&gt; things related to prime numbers.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I have never made a Java Library Class. I aim to learn that doing this. Please help me without that by pointing out a tutorial or something. I am familiar with netbeans IDE. &lt;/li&gt;&#xA;&lt;li&gt;I found out a few algorithms like &lt;a href=&quot;http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes&quot; rel=&quot;nofollow&quot;&gt;Sieve of Eratosthenes&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Sieve_of_Atkin&quot; rel=&quot;nofollow&quot;&gt;Sieve of Atkin&lt;/a&gt;. It would be great if you can point out a few more such efficient algorithms. I don't want them to be the best but at least good enough. My aim is to learn few things by implementing them. Because I have little practical coding experience I want to do it to improve my skills. &lt;/li&gt;&#xA;&lt;li&gt;My friend suggested me to use Stream Classes and he was talking something about implementing it by giving the output of one file as an input to another to make my code clean. I didn't understand him very well. Please pardon me if i said anything wrong. What I want to ask in this point is, is that an efficient and OO way of doing what i want to do. If yes please tell me how to do that and if not please point out some other way to do it.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I have basic knowledge of the Java language. What I want to accomplish through this venture is gain coding experience because that is what everyone out here suggested, &lt;em&gt;&quot;to take up small things like these and learn on my own&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;thanks to all of you in advance&lt;/p&gt;&#xA;&#xA;&lt;p&gt;regards&lt;/p&gt;&#xA;&#xA;&lt;p&gt;shahensha&lt;/p&gt;&#xA;" OwnerUserId="4197" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-11-12T08:21:40.007" LastActivityDate="2010-11-12T08:21:40.007" ClosedDate="2010-11-11T16:14:45.917" Title="Which is the best way to implement prime number finding algorithms in Java? How do we make library classes and use then in Java?" Tags="&lt;java&gt;&lt;algorithms&gt;&lt;libraries&gt;" AnswerCount="5" CommentCount="2" />
  <row Id="18316" PostTypeId="1" AcceptedAnswerId="18334" CreationDate="2010-11-11T09:21:54.713" Score="3" ViewCount="222" Body="&lt;p&gt;We are part of a software company which was just acquired by a larger one. This company has a large development center in India; we are based in Europe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We don't yet know what will happen with our projects, maybe they will be outsourced, maybe not but I want to know if we can rival an indian programmer as what salary is concerned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know there are a lot of factors involved here, not just the salary issue, but I just want to get an ideea of the difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can someone mention salaries (in euros or dollars) and associated years of experience. I found some info on the web but it is not that recent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance!&lt;/p&gt;&#xA;" LastActivityDate="2010-11-11T16:55:31.503" Title="Comparison with an outsourced dev center" Tags="&lt;comparison&gt;&lt;salary&gt;&lt;outsourcing&gt;" AnswerCount="3" />
  <row Id="18317" PostTypeId="2" ParentId="18315" CreationDate="2010-11-11T09:25:03.743" Score="0" ViewCount="" Body="&lt;p&gt;One small hint : Most Algorithms for calculating Primes will overflow the long integer value especially if you are trying to find 1 million or 10 million Primes. Use BigInteger class for the same.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-11T09:25:03.743" />
  <row Id="18319" PostTypeId="2" ParentId="18282" CreationDate="2010-11-11T09:35:35.290" Score="11" ViewCount="" Body="&lt;p&gt;There are a whole load of reasons.  Off the top of my head:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) VB was always designed as a tool to allow people to get results quickly - both in terms of learning curve and development time.  While this is great in some ways the options it gave you to cut corners (which were in many cases the things which increased productivity) were too tempting for a lot of people even when they weren't appropriate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) It was massively popular, at it's peak the most popular language on the planet.  Given that a reasonable proportion of all programmers are bad (and especially as VB did many things which increased the chance that it would have a higher proportion than average), the largest language stands a pretty good chance of having the largest number of bad programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Some of the default settings encouraged bad practice.  For instance by default variable declaration wasn't required (it would automatically come into existence the minute you used it, no need for any Dim iThingy as integer, or even just Dim iThingy as you didn't need to say what variable type it was if you didn't want to).  Anyone decent turned it on (or just typed Option Explicit at the top of each module) but be default you didn't have to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) In the same way VB just had some unpleasant bits in the language and tools.  &quot;On Error Resume Next&quot; (basically ignore errors) was over used, the fact that you had to use Goto for error handling and that even done well it was still a bit of a mess, the fact that there were a few too many controls that made simple things even simpler when people might have been better served actually thinking about things a bit more and coding from scratch, the fact that it was very forgiving (so to set the text value of a text box you could just use Text1 = &quot;blah&quot; instead of Text1.Text = &quot;blah&quot;) which could lead to laziness and code that wasn't as readable as it could be.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) Many people came to VB through VBA in Office.  The chances are that if you learned to program throwing together macros in Word, then you never had to learn great programming practice and you might never have seen the need when you scaled up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;6) And as part of this when VB4 came along and added object orientation (not really proper object orientation but a bit of it) it did so in a fairly crappy way (no polymorphism, no inheritance, all the old non-OO stuff remained which meant it was very take it or leave it and mix and match).  This meant that if you were the sort of developer who did bad things, you could now also have bad OO habits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But none of these things made you write bad code.  I worked with VB for a decade and wrote, and saw other people write, plenty of good workable code that did well in production and was supportable and maintainable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The bottom line is that bad programmers write bad code, good programmers write good code.  The tools may make it a little easier or a little harder but it's the individual who writes the code and the individual who should take responsibility.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-11T10:00:36.857" LastActivityDate="2010-11-11T10:00:36.857" CommentCount="7" />
  <row Id="18320" PostTypeId="2" ParentId="18316" CreationDate="2010-11-11T09:35:42.543" Score="1" ViewCount="" Body="&lt;p&gt;This is very  subjective, it keeps on changing from the technology you work on the kind of work you want to get done in India etc etc. Plus some Developers are really expensive in India as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From what I know from peers in Europe a rule of thumb will be European Developers(5-6 years experience) will be at least three times as expensive than their Indian counterparts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also a lot of other things like Infrastructure/Electricity which companies consider will probably be cheaper in India.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-11T09:35:42.543" />
  <row Id="18321" PostTypeId="2" ParentId="18315" CreationDate="2010-11-11T09:36:40.907" Score="0" ViewCount="" Body="&lt;p&gt;Ive just been working on a similar experiment, and have been using test-driven development practices for this, which simplified the process substantially.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-11T09:36:40.907" />
  <row Id="18322" PostTypeId="1" CreationDate="2010-11-11T09:45:57.470" Score="3" ViewCount="80" Body="&lt;p&gt;I know it can be done in javascript for example, we have google maps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But where to start? Isn't there any library to do this? And what about actionscript?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I only need the zoom-in/out feature, and being able to move around by dragging with the mouse.&lt;/p&gt;&#xA;" OwnerUserId="6859" LastActivityDate="2010-12-04T20:34:24.783" ClosedDate="2010-12-05T19:01:27.120" Title="Which language can I use to build a web app with zoom-in and out?" Tags="&lt;javascript&gt;&lt;actionscript&gt;" AnswerCount="2" CommentCount="3" />
  <row Id="18323" PostTypeId="2" ParentId="18304" CreationDate="2010-11-11T09:48:56.307" Score="11" ViewCount="" Body="&lt;p&gt;Broadly speaking I've seen people take the following routes:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) &lt;strong&gt;Stay as a developer&lt;/strong&gt;.  There's no reason to actually move on at all, developing is just fine and there are a lot of people I know into their 30s and 40s who have no intention of moving from something they enjoy into something they won't just for the sake of &quot;progression&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) &lt;strong&gt;Technical Architect&lt;/strong&gt;.  Potentially still hands on to a degree but also involving higher level technical design and analysis, platform selection and so on.  Generally speaking a Technical Architect will have spent 5 - 10 years as a developer before moving into this sort of role.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) &lt;strong&gt;Project Management&lt;/strong&gt;.  The first of the hands-off options (a proper Project Manager won't code except maybe for the odd little tool to make their own life easier).  A Project Manager runs the project as a whole from start to finish, liaising with the business and the developers, ensuring the business case is valid, planning and managing the plan, monitoring risks and so on.  In terms of when you can move into Project Management, it can happen at any point, though the earlier you do it the smaller the projects you're given to manage are likely to be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) &lt;strong&gt;Business Analysis / General Consultancy&lt;/strong&gt;.  Writing specifications, discussing what's needed with users and clients, documenting it, working with the developers and testers to make sure it's understood.  Again, a move into this sort of role can happen at any time, though more experience as a developer will tend to afford you better opportunities as an analyst.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) &lt;strong&gt;Development Management&lt;/strong&gt;.  Distinct from Project Manager though in some instances (particularly in smaller organisations) they'll be rolled into one.  The simplest distinction is that a Project Manager is responsible for the project, the development manager is responsible for the team.  A Development Manager will almost always have a technical background, may still be hands on, and will have a good understanding of development process and the associated tools.  Most of their time will be spent keeping the team productive and keeping the development work moving forward.  Generally speaking someone will have worked for 5 - 10 years as a developer before moving into this sort of role.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to move beyond these into more senior management then Project Manager and Development Manager are the most likely routes out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which is best for you is entirely down to what you want to do and what your skills are and none of them should be seen as right or better than the others.  It's entirely possible to try them out and move back or move on again.  From my experience the only thing that stops that sort of move being possible is when you become senior enough that you won't take the salary drop which comes as part of moving into an area where you're less experienced.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-11T09:55:13.703" LastActivityDate="2010-11-11T09:55:13.703" CommentCount="5" />
  <row Id="18324" PostTypeId="2" ParentId="18304" CreationDate="2010-11-11T09:53:54.983" Score="0" ViewCount="" Body="&lt;p&gt;Hai Amir Rezaei,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to suggest you, that A programmer can start the career as Junior level Developer after finishing the couple of projects in a fine style and also got one year experienced[ie some reasonable experience], then the he/she may promoted to Senior Level developer if the firm feels that he/she has both technical skills and management skills such as leadership qualities etc., By the Similar way he/she can switch to the next levels such as&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Senior level Developer -&gt; Team Lead Team Lead -&gt; Architect Architect -&gt; Project Manager&lt;/p&gt;&#xA;" OwnerUserId="3993" LastActivityDate="2010-11-11T09:53:54.983" CommentCount="3" />
  <row Id="18325" PostTypeId="2" ParentId="18304" CreationDate="2010-11-11T09:53:55.577" Score="1" ViewCount="" Body="&lt;p&gt;The number of years at a role can be calculated only at a very junior level in the Organization. As you grow vertically this formula fails miserably. Some people become CEO's at 40 some become CEO's at 50 and some never reach to that level even though they want to.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-11T09:53:55.577" CommentCount="1" />
  <row Id="18326" PostTypeId="2" ParentId="18315" CreationDate="2010-11-11T09:55:10.537" Score="0" ViewCount="" Body="&lt;p&gt;For libraries, you want to look at how to create a jar file.  To demystify, it is just a zip-file with a bit extra.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-11T09:55:10.537" />
  <row Id="18327" PostTypeId="1" AcceptedAnswerId="18336" CreationDate="2010-11-11T09:56:22.843" Score="2" ViewCount="152" Body="&lt;p&gt;Well, I found a trend. If you are on work with &quot;stoneface&quot;, everything seems to be good. But &quot;stoneface&quot; is something I don't like. I'd more like to encourage people and be encouraged to. Well, about technologies, about language features, etc, etc. But the problem is. When I left off my stone mask, people attitude changes to worse. They become evil-ironic on me, and make discourage replies. I mean, maybe if &quot;stoneface&quot; isn't for me, I shouldn't be a programmer. I don't know. Maybe it's more country specific. And in other countries programmers are more cheerful and do not harrassing anyone they can.&lt;/p&gt;&#xA;" OwnerUserId="1449" LastActivityDate="2010-11-11T11:03:34.473" ClosedDate="2010-11-11T16:13:24.857" Title="about developer job how to not complain about your co-workers and managers behavior" Tags="&lt;jobs&gt;&lt;programming&gt;&lt;co-workers&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="18328" PostTypeId="2" ParentId="1006" CreationDate="2010-11-11T09:57:22.060" Score="1" ViewCount="" Body="&lt;p&gt;For me I have no idea why when I code halfway I will get very tired easily... (thats when I am doing my personal project) To motivate myself I usually will take a power nap or play some games before continuing back to my code. At least i have enough satisfaction for &quot;enjoying enough&quot;...&lt;/p&gt;&#xA;" OwnerUserId="6450" LastActivityDate="2010-11-11T09:57:22.060" />
  <row Id="18329" PostTypeId="2" ParentId="18314" CreationDate="2010-11-11T10:01:50.497" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://programmermeetdesigner.com/&quot; rel=&quot;nofollow&quot;&gt;http://programmermeetdesigner.com/&lt;/a&gt; has a lot of interesting projects being posted up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've bought designs from &lt;a href=&quot;http://themeforest.net/&quot; rel=&quot;nofollow&quot;&gt;Theme Forest&lt;/a&gt; before and that's a real quick way to get a quality design. I've also contacted the designers who sell on there and have paid for bespoke work - you can see if a designer is for hire in their Theme Forest profile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;90% of the time I use a Theme Forest (or similar) template to get the project up and running and then worry about getting a unique or stellar design later. &lt;/p&gt;&#xA;" OwnerUserId="7489" LastActivityDate="2010-11-11T10:01:50.497" CommentCount="2" />
  <row Id="18330" PostTypeId="2" ParentId="18322" CreationDate="2010-11-11T10:04:54.973" Score="3" ViewCount="" Body="&lt;p&gt;The jQuery library will make any javascript programming you do much, much easier. There's a bunch of jQuery zoom plugins ready to use too: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.tripwiremagazine.com/2010/02/15-jquery-plugins-to-create-stunning-image-zoom-effects.html&quot; rel=&quot;nofollow&quot;&gt;http://www.tripwiremagazine.com/2010/02/15-jquery-plugins-to-create-stunning-image-zoom-effects.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7489" LastActivityDate="2010-11-11T10:04:54.973" CommentCount="2" />
  <row Id="18332" PostTypeId="2" ParentId="18327" CreationDate="2010-11-11T10:26:41.123" Score="3" ViewCount="" Body="&lt;p&gt;Have you ever imagined that the problem could be how &lt;strong&gt;you&lt;/strong&gt; see others?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How you see others may also affect how you behave, influencing (a little) others too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In most case, you can &lt;strong&gt;decide&lt;/strong&gt; how things affect you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also read &lt;a href=&quot;http://sethgodin.typepad.com/seths_blog/2010/10/two-problems-with-whining.html&quot; rel=&quot;nofollow&quot;&gt;Two problems with whining&lt;/a&gt; from the Seth Godin's blog.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will be happy and live better.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-11T10:48:15.343" LastActivityDate="2010-11-11T10:48:15.343" />
  <row Id="18333" PostTypeId="2" ParentId="18304" CreationDate="2010-11-11T10:30:18.703" Score="1" ViewCount="" Body="&lt;p&gt;Well, I can't tell you for certain, but I can show you my &quot;career&quot; (outside uni studies) so far, and what I'd like to do (in brackets):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;web admin -&gt; volunteer research assistant -&gt; cinema worker -&gt; software tester -&gt; call center worker (selling wine) -&gt; developer in financial services -&gt; self employed developer (financial services) -&gt; developer in scientific instruments [-&gt; get a doctorate in something CS related -&gt; get a lecturing position -&gt; get tenure -&gt; retire]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess you're only interested in the steps where I'm a developer, the rest is there for completeness. The amount of money I earn in each step depends on who I'm working for more than my job title.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've not stayed in the same role for more than 2 years, so far. A doctorate would obviously take longer, and I hope to be in my current role for a while. Getting to be a lecturer and getting tenured, well that could take forever.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-11-11T10:30:18.703" />
  <row Id="18334" PostTypeId="2" ParentId="18316" CreationDate="2010-11-11T10:35:37.913" Score="0" ViewCount="" Body="&lt;p&gt;When well managed, an offshore team can be more efficient than a onsite team, and sometimes cost half the price.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A typical freelance C# developer can earn up to $100 per hour in western countries (sometimes lot more). The same guy (same experience) in india is 5 times cheaper (sometimes lot less).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A typical employed C# developer can earn up to $25 per hour in western countries (sometimes lot more). The same guy (same experience in india is 3 times cheaper (sometimes lot less).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also discovered recently that you can take developers on &lt;strong&gt;leasing&lt;/strong&gt; (or &lt;strong&gt;renting&lt;/strong&gt;), just like objects (cars, etc)!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You tell the leasing/renting company you need 4 C# developers with knowledge of nHibernate. They will find them, they will hire them, they will pay their salaries, they will buy computers, they will put them in an office, they will add phones, emails, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You pay a monthly flat fee for the service.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Want more ? Just tell the company they add more developers. Want less? No problem bob, they remove developers.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The world is changing... you have to do something.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I suggest you this great book:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.pragprog.com/titles/mjwti/my-job-went-to-india&quot; rel=&quot;nofollow&quot;&gt;My Job Went To India&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/BWku4.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will helps you improve yourself in order to avoid being replaced by a cheaper (and more competent) offshore developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To summarize: offshoring will eventually become legion. And &quot;&lt;em&gt;simple developers&lt;/em&gt;&quot; with &lt;strong&gt;no added value&lt;/strong&gt; will be replaced.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Invest in yourself&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-11T11:45:30.353" LastActivityDate="2010-11-11T11:45:30.353" CommentCount="12" />
  <row Id="18335" PostTypeId="2" ParentId="18314" CreationDate="2010-11-11T10:38:56.510" Score="2" ViewCount="" Body="&lt;p&gt;You will be able to find tons of them on platforms like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.rentacoder.com&quot; rel=&quot;nofollow&quot;&gt;RentACoder.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.odesk.com&quot; rel=&quot;nofollow&quot;&gt;Odesk.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.elance.com&quot; rel=&quot;nofollow&quot;&gt;Elance.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-11T10:38:56.510" />
  <row Id="18336" PostTypeId="2" ParentId="18327" CreationDate="2010-11-11T10:51:52.780" Score="1" ViewCount="" Body="&lt;p&gt;I think it depends strongly from job to job.  Where I work, we joke a lot, but we also get the work done.  Every now and again I'll get some encouragement, but usually in situations in which I do work with interface (such as web design).  For the most part, it's hard to gauge performance in a programmer, therefore I think it's difficult to know when a programmer is worthy of praise or otherwise.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally think that praise should come from yourself, though that doesn't mean you can't get it from your colleagues or your managers, though at that point I'd strongly recommend you switch to interface-focused activities so others can see the progress of your work.  You get a lot more feedback that way (whether you like it or not).&lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-11T10:51:52.780" />
  <row Id="18337" PostTypeId="1" CreationDate="2010-11-11T11:01:30.663" Score="5" ViewCount="668" Body="&lt;p&gt;I'm in the last year of my Master's program and i need to do a project for my final exam. The problem is that i'm a little bit stuck. I want to do something web related, maybe using the cloud(aws or azure) but that is where it finishes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any ideas what i could go for from there?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;programming language C#,asp.net. Thank you in advance.&lt;/p&gt;&#xA;" OwnerUserId="7490" LastActivityDate="2010-11-15T12:28:03.800" Title="CS Master's Degree final project ideas?" Tags="&lt;web-development&gt;&lt;c#&gt;&lt;project&gt;&lt;cloud&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="0" />
  <row Id="18338" PostTypeId="2" ParentId="18327" CreationDate="2010-11-11T11:03:34.473" Score="2" ViewCount="" Body="&lt;p&gt;You need to try and understand why they are acting the way they're acting, and accept that not everyone is the same and not everyone wants to be treated the same way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As with most issues involving people there is no right answer when it comes to how to behave.  It may be that they find the way they work most productively is by just focusing on their work and that discussions and encouragements are just interruptions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or it may be that what you see as encouragement they see differently.  For many people to really work encouragement has to be substantial and specific to them and what they've done - perhaps you're just being positive for the sake of being positive rather than really focusing in on what they're doing well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you need to work out why they're acting the way they're acting because I'm almost certain that it's not quite the way you see it.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-11T11:03:34.473" />
  <row Id="18339" PostTypeId="1" AcceptedAnswerId="18343" CreationDate="2010-11-11T11:04:08.343" Score="1" ViewCount="50" Body="&lt;p&gt;I am using the following structure to save the images that users are uploading for their items:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Images&#xA;&lt;ul&gt;&#xA;&lt;li&gt;User_dir1&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Item_dir1&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Picture_file1&lt;/li&gt;&#xA;&lt;li&gt;Picture_file2&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;User_dir2&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Item_dir2&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Picture_file3&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Item_dir3&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Picture_file4&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Can I go on with this if I am going to have thousants of users and hundrets of items per user? Talking about performance will the Linux dedicated server have trouble in the future?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="7420" LastActivityDate="2010-11-11T11:31:29.983" Title="How bad is to have many directories where to save uploaded data instead of one?" Tags="&lt;web-applications&gt;&lt;architecture&gt;&lt;performance&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="18340" PostTypeId="2" ParentId="18315" CreationDate="2010-11-11T11:06:17.457" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;If you're using eclipse, you can disregard for a moment the fact that you're making a library and focus on being able to create a simple program which searches for prime numbers.  Create all the classes and methods you'd need to do it, and inside the main, call these classes and methods to make a test run so you'd essentially have all the instruments you'd need in a library.  Good place to start is to write a pseudo-main to reflect how you'd imagine your library to be put to use.&lt;/li&gt;&#xA;&lt;li&gt;I think if you found a couple algorithms of this caliber, I'd be wasting your time to give you Sieve of Neil.  Check the pros and cons of both and pick one.&lt;/li&gt;&#xA;&lt;li&gt;Your friend is suggesting to use a file to contain the bulk of the storage for your program.  BigInteger goes a long way, but once you begin consuming memory, you need to save it to the disk in order to prevent an OutOfMemoryException.  However, he's probably assuming you're going to be searching for primes of enormous size.  If that's not true, just use BigInteger, otherwise you're going to have to save calculations to a file.  As for structure, have a public method accept a simple input like findNthPrime(int index) which calls a private method with all the parameters necessary for your algorithm to work.  In this way, it'd be easy to write another algorithm later and switch between them for performance comparisons.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Hope that answers your question.  &lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-11T11:06:17.457" CommentCount="5" />
  <row Id="18342" PostTypeId="2" ParentId="1701" CreationDate="2010-11-11T11:09:31.057" Score="1" ViewCount="" Body="&lt;p&gt;I wrote a small blog post &lt;a href=&quot;http://www.mistriotis.gr/?p=112&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;:&#xA;I would add:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The Adventures of Johny Bunko - The last career guide you will ever need,&lt;/li&gt;&#xA;&lt;li&gt;ReWork (does not fit 100% but gives you an insight to how things work in modern Software Development Environments)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6059" LastActivityDate="2010-11-11T11:09:31.057" />
  <row Id="18343" PostTypeId="2" ParentId="18339" CreationDate="2010-11-11T11:11:41.477" Score="1" ViewCount="" Body="&lt;p&gt;Well, how much time does it take to create a thousand folders over the course of say a month?  I would argue not a lot.  It would take a lot of time if you were regularly removing and creating folders, but it seems to me the only files that will be changed regularly will be the picture files themselves (or at worst, the folders themselves initially as they won't exist at first, but that will diminish over time), which is the same as if you had lumped everything in a single folder to begin with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously keep an eye on space and state of defragmentation of your disk, but with a little maintenance, I wouldn't expect a lot of difficulty in your idea.&lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-11T11:11:41.477" />
  <row Id="18344" PostTypeId="2" ParentId="18337" CreationDate="2010-11-11T11:20:15.210" Score="0" ViewCount="" Body="&lt;p&gt;You could attempt to implement a system by which you can play a simple game on a web page using 100% the resources of the server machine, which is essentially the fundamental idea behind cloud computing.  Obviously further implications could mean creating modern computer game graphics being played on a client computer without installing anything, but rather simply by buying a user account by which to access it.  Of course that's an idea solution for a company like EA games who would eliminate entirely the need to fork part of its profit in packaging and cd publishing.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This would be a nice addition to any resume, especially if you ever considered working for a gaming company.&lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-11T11:20:15.210" />
  <row Id="18345" PostTypeId="2" ParentId="18339" CreationDate="2010-11-11T11:23:14.513" Score="1" ViewCount="" Body="&lt;p&gt;Unless you'll need more than 65534 folders per directory you should be okay (apparently this is the maximum for NTFS)&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-11-11T11:23:14.513" CommentCount="2" />
  <row Id="18346" PostTypeId="2" ParentId="18337" CreationDate="2010-11-11T11:25:35.683" Score="0" ViewCount="" Body="&lt;p&gt;Your best bet by far is to try and include as many aspects of your course into the project.  Not only will this show your progress in each subject, but also show that you fully understand their place in technology and how to piece them together to produce something useful.&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-11-11T11:25:35.683" />
  <row Id="18347" PostTypeId="2" ParentId="18339" CreationDate="2010-11-11T11:31:29.983" Score="1" ViewCount="" Body="&lt;p&gt;It's most likely much better than putting all files into one large directory; some file systems do not really like having tens of thousands of files in on directory.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-11T11:31:29.983" />
  <row Id="18348" PostTypeId="2" ParentId="18265" CreationDate="2010-11-11T11:32:10.060" Score="9" ViewCount="" Body="&lt;p&gt;Fixing problems is usually a good place to find ideas. What problems do you encounter every day that you could fix? I also ask and listen to other people to find out their frustrations. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A really important thing when coming up with ideas for new projects is to remember &lt;strong&gt;that you don't have to come up with something entirely unique&lt;/strong&gt;. That's an impossible goal and it's much better/easier to build something that does something better/faster/easier than the competitors. If you wait to find something unique you will wait forever.&lt;/p&gt;&#xA;" OwnerUserId="7489" LastActivityDate="2010-11-11T11:32:10.060" CommentCount="2" />
  <row Id="18349" PostTypeId="1" AcceptedAnswerId="18352" CreationDate="2010-11-11T11:34:24.450" Score="6" ViewCount="252" Body="&lt;p&gt;Suppose you are a programmer in your mid-20's who has had several years industrial experience working for both big tech and a few internet startups but now you'd like to try contracting in the hope you'll be able to choose more interesting and varied work and be able to have a few months off between jobs to focus on things like open source, travelling and developing your own startup ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now this is possibly one of those 'grass is greener' daydreams.. Even if in the workplace you manage to have the enthusiasm and skill to work equally alongside much more experienced co-workers, how realistic do you think it would be for someone with too few years of experience to appear 'specialist' or 'experienced' to compete for contracts and afford to live this lifestyle?&lt;/p&gt;&#xA;" OwnerUserId="5129" LastActivityDate="2010-11-11T12:30:47.043" Title="The number of years experience needed to be a contract developer" Tags="&lt;experience&gt;&lt;contracting&gt;&lt;freelancing&gt;" AnswerCount="4" />
  <row Id="18350" PostTypeId="2" ParentId="18349" CreationDate="2010-11-11T11:39:13.220" Score="3" ViewCount="" Body="&lt;p&gt;You don't have to be specialist or experienced to get contracts as a freelance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I started my business as a freelance developer, I didn't have any professionnal experience in the field but small examples of websites I've built after work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All you have to do is &lt;strong&gt;go for it&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;NOW&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-11T11:39:13.220" />
  <row Id="18351" PostTypeId="1" AcceptedAnswerId="18353" CreationDate="2010-11-11T11:39:56.247" Score="2" ViewCount="178" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/3272/job-hopping-is-it-a-problem&quot;&gt;Job hopping, is it a problem?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Which is better? To get stuck in a company for long time? Or move on to another company with a good salary hike? Maybe bigger companies are better at salary hikes, mid-sized and smaller companies may not be so. Though company is good and fun to work at , what is the average number of years to stay in company? We also should consider promotions etc. &lt;/p&gt;&#xA;" OwnerUserId="7478" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-11T11:52:35.470" LastActivityDate="2010-11-11T12:17:40.673" ClosedDate="2010-11-11T16:17:22.203" Title="Moving to companies every year for better appraisal or stay in current company with or without appraisal" Tags="&lt;career&gt;&lt;jobs&gt;&lt;new-job&gt;" AnswerCount="3" CommentCount="6" />
  <row Id="18352" PostTypeId="2" ParentId="18349" CreationDate="2010-11-11T11:43:50.647" Score="8" ViewCount="" Body="&lt;p&gt;There are contract roles at all levels therefore for all levels and I've seen people contract with 12 months commercial experience (though that was in a good market).  That said you'll see more (and better paid) opportunities the more experience you have.  Ideally I'd suggest that you're either at or close to senior developer type experience (5 years +) but in most places it's really not impossible with less so long as the market is OK at the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of the lifestyle though, some words of warning.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know a lot of people who went into contracting with the intention of doing a bit of time on a bit of time off and it never worked out that way.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When things are going well the temptation is to keep working while the going is good because there might be a downturn on the way and you should make hay while the sun shines.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When things are going badly you're so nervous about being out of work that you're desperate to get back in a position.  Even if you don't need the money in a bad market contracting is a bit &quot;you're only as good as your last role&quot; so gaps on the CV aren't great.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can make it work but you're going to need to be disciplined and budget for plenty of time out of work to give you the assurance that you're not going to leave yourself in trouble when it comes time to go back and can't find something immediately.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That financial security is the thing that's going to make your goal possible so it's critical to understand what your average wage over time working and not working will be rather than get carried away with what you're earning when things are good.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-11T11:43:50.647" CommentCount="3" />
  <row Id="18353" PostTypeId="2" ParentId="18351" CreationDate="2010-11-11T11:44:48.787" Score="3" ViewCount="" Body="&lt;p&gt;My belief is simple - every 3 years consider your position and what it offers. The main things to consider relates to growth opportunities:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Does the company offer growth? (Related to salary)&lt;/li&gt;&#xA;&lt;li&gt;Are you learning new things?&lt;/li&gt;&#xA;&lt;li&gt;Are your skills stagnating?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The main thing is, you want to further yourself and not stagnate (or become too &quot;comfortable&quot;). While I am being offered the above, I am more than happy to stick with a company. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Changing job every year will end very badly for you as you will be spotted as a job hopper. Being a job hopper makes you more difficult to employ, and even when employed, people think they'll only have you for a year. Be careful of this approach.&lt;/p&gt;&#xA;" OwnerUserId="7494" LastActivityDate="2010-11-11T11:44:48.787" CommentCount="1" />
  <row Id="18354" PostTypeId="2" ParentId="18351" CreationDate="2010-11-11T12:01:16.910" Score="2" ViewCount="" Body="&lt;p&gt;Money is important to be able to pay your bills but you need to consider other aspects when it comes to evaluating your current position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you enjoy what you do?  Do you like the people you work with, the projects you work on?  Are you growing and learning?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While there can be advantages to swithcing companies, moving to a new job every year would be a red flag on your resume.  No company wants to invest time in bringing you along, just to have you leave after a year.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of this assumes you are talking about being a full time employee not a contractor.  If you really feel the itch to leave a job every year than perhaps you &lt;em&gt;should&lt;/em&gt; be a contractor, in which case all of this would not be an issue on your resume.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-11-11T12:01:16.910" />
  <row Id="18355" PostTypeId="2" ParentId="3272" CreationDate="2010-11-11T12:08:14.633" Score="1" ViewCount="" Body="&lt;p&gt;The problem with saying &quot;is two years OK&quot; is that if your CV reads (roughly) two years, two years, two years, that will be read that there is a pretty good chance that you will move on after two years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to look at both the average time (I'd say two years is the minimum, three to four is better) but also what the longest job on there is (ideally four or five years at least) as the employer has to think that if they treat you right you're going to stick around for a decent period.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-11T12:24:10.380" LastActivityDate="2010-11-11T12:24:10.380" />
  <row Id="18356" PostTypeId="2" ParentId="18351" CreationDate="2010-11-11T12:17:40.673" Score="0" ViewCount="" Body="&lt;p&gt;On the subjects of Appraisals - don't read too much into them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good places develop and progress staff regardless of the formal mechanisms and bad places don't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Appraisals are all too often a paperwork exercise which either just documents the good stuff which would happen anyway, or act as a cover for the fact nothing is happening.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-11T12:17:40.673" />
  <row Id="18357" PostTypeId="1" AcceptedAnswerId="18363" CreationDate="2010-11-11T12:22:10.170" Score="3" ViewCount="319" Body="&lt;p&gt;Hello...This is a specific question relating to C#. However, it can be extrapolated to other languages too. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;While one is preparing for an interview of a C# Developer (ASP.NET or WinForms or ), what would be the typical reference material that one should look at? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any good books/interview question collections that one should look at so that they can be better prepared?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is just to know the different scenarios. For example, I might be writing SQL Stored Procedures and Queries, but I might stumble when asked suddenly &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given an Employee Table with the following column(s). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;EmployeeId, EmployeeName, ManagerId&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write a SQL Query which will get me the Name of Employee and Manager Name?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;NOTE: I am not asking for a Question Bank so that I can learn by rote what the questions are and reproduce them (which, obviously will NOT work!)&lt;/p&gt;&#xA;" OwnerUserId="5070" LastActivityDate="2010-11-12T10:22:10.590" Title="C# Interview Preparation - References?" Tags="&lt;c#&gt;&lt;programming&gt;&lt;interview-questions&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="0" />
  <row Id="18358" PostTypeId="2" ParentId="18349" CreationDate="2010-11-11T12:25:41.217" Score="1" ViewCount="" Body="&lt;p&gt;A few years of industrial experience should do. But you also need some non-technical skills, e.g. self-marketing, (business-)networking, negotiating, self-management, accounting.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-11T12:25:41.217" />
  <row Id="18359" PostTypeId="2" ParentId="15468" CreationDate="2010-11-11T12:26:23.567" Score="0" ViewCount="" Body="&lt;p&gt;My gripes about Python:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Bolted-on OOP (See @mipadi's answer for elaboration on this)&lt;/li&gt;&#xA;&lt;li&gt;Broken implementation of lambdas&lt;/li&gt;&#xA;&lt;li&gt;Scope issues&lt;/li&gt;&#xA;&lt;li&gt;No persistent collections in the standard library&lt;/li&gt;&#xA;&lt;li&gt;Poor amenability to embedded DSLs&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-11-11T12:26:23.567" CommentCount="1" />
  <row Id="18360" PostTypeId="2" ParentId="18349" CreationDate="2010-11-11T12:30:47.043" Score="1" ViewCount="" Body="&lt;p&gt;Not sure how long of breaks you plan on taking, but you better look real good on paper and in the interview to explain why a quality programmer has been out of work. It happens especially in these economic times. Working on an open source project may be you best answer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes we worry about a contract not lasting long enough. In your case you may find they want to hire you longer than you wish. Putting your limits on the length of the contract may hinder your changes of getting hired. The offer may be for 6 months, but the client will prefer it to be open-ended in case they want you to continue working. This is the luxury of hiring contract labor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I say start looking for contract jobs. Then you'll know if you're qualified. You don't have to accept an offer if you don't like it.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-11T12:30:47.043" CommentCount="2" />
  <row Id="18361" PostTypeId="2" ParentId="18120" CreationDate="2010-11-11T12:50:05.313" Score="5" ViewCount="" Body="&lt;p&gt;Very bad decision: not finishing my studies because I've already had a realy good job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I stopped studing because I had (and still have) a good job where I learn a lot and make good money. Right now I realize that there are some things that you learn only studing. Specially learn to think things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my advice is: never mind how much they offer you to work more time and stop studing, if you don't NEED that extra money just keep studing to the end.&lt;/p&gt;&#xA;" OwnerUserId="7498" LastEditorUserId="7498" LastEditorDisplayName="" LastEditDate="2010-11-12T20:17:29.627" LastActivityDate="2010-11-12T20:17:29.627" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="3" />
  <row Id="18362" PostTypeId="2" ParentId="16618" CreationDate="2010-11-11T13:16:31.243" Score="4" ViewCount="" Body="&lt;p&gt;&lt;b&gt;Functional Programming&lt;/b&gt;&lt;br/&gt;&#xA;I predict a backlash against functional programming, mostly because its integration into mainstream languages like C# will allow for its abuse by programmers who don't really understand it.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-11T13:16:31.243" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="1" />
  <row Id="18363" PostTypeId="2" ParentId="18357" CreationDate="2010-11-11T13:24:29.547" Score="3" ViewCount="" Body="&lt;p&gt;Take a look at &lt;a href=&quot;http://www.hanselman.com/blog/WhatGreatNETDevelopersOughtToKnowMoreNETInterviewQuestions.aspx&quot; rel=&quot;nofollow&quot;&gt;Scott Hanselman's blog post on &quot;What Great .NET Developers Ought to Know&quot;&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From there you should be able to figure out how to search and study based on the concepts he mentions there.&lt;/p&gt;&#xA;" OwnerUserId="2288" LastActivityDate="2010-11-11T13:24:29.547" CommentCount="3" />
  <row Id="18364" PostTypeId="2" ParentId="18282" CreationDate="2010-11-11T13:26:15.700" Score="3" ViewCount="" Body="&lt;p&gt;I think there are several reasons.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;BASIC as a language has traditionally been reviled by professional programmers and academics. This was due to the fact that original incarnations of it were very primitive and encouraged using non-structured code.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Lots of people using VB (or any BASIC for that matter), tend to be beginners or non-tech people who just need to get a simple task done. This results in a lot of very low quality code being written, which is not really directly the fault of the language being used. But it does IMHO result in the community having a huge number by beginners or people who just write bad code (I know this is subjective and you have every right to disagree). A friend of mine cited this as his primary reason for switching to C#. He felt there was a lot more of good code and knowledgeable people to help him in C# than in VB.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;AFAIK VB6 was not exactly a true object oriented language in that it did not support proper inheritance and polymorphism.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;BASIC is seen to be very verbose by some programmers. But proponents argue this makes it easier to learn and more readable.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I think most of the above objections no longer apply. Criticisms of early BASIC dialects are out of date. Most modern BASICs, VB included, no longer need GOTOs and GOSUBs and support modern programming constructs and concepts very well. VB6 is being phased out and VB.NET is essentially a new language that fully supports OOP as well as anything else in C#.&lt;/p&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-11-11T13:26:15.700" CommentCount="1" />
  <row Id="18365" PostTypeId="2" ParentId="18337" CreationDate="2010-11-11T13:30:22.487" Score="0" ViewCount="" Body="&lt;p&gt;If you are interested in client side how about - HTML5 vs Silverlight vs Flash. For server side how about an investigation of how data will be secured in the cloud.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-11-11T13:30:22.487" />
  <row Id="18366" PostTypeId="2" ParentId="18120" CreationDate="2010-11-11T13:36:02.467" Score="18" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Bad Decision:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Burning Bridges.  Never ever assume because you got a better job elsewhere that you can &quot;stick it to the man&quot; at your old job.  Always be professional and courteous when changing jobs.  You never know if you have to go crawling and begging back to your old job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;lol, I'm only 26 and I regret that already!&lt;/p&gt;&#xA;" OwnerUserId="7499" LastActivityDate="2010-11-11T13:36:02.467" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="1" />
  <row Id="18368" PostTypeId="2" ParentId="15468" CreationDate="2010-11-11T13:38:01.163" Score="2" ViewCount="" Body="&lt;p&gt;Things I don't like about Python:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Threading (I know its been mentioned already, but worth mentioning in every post).&lt;/li&gt;&#xA;&lt;li&gt;No support for multi-line anonymous functions (&lt;code&gt;lambda&lt;/code&gt; can contain only one expression).&lt;/li&gt;&#xA;&lt;li&gt;Lack of a simple but powerful input reading function/class (like &lt;code&gt;cin&lt;/code&gt; or &lt;code&gt;scanf&lt;/code&gt; in C++ and C or &lt;code&gt;Scanner&lt;/code&gt; in Java).&lt;/li&gt;&#xA;&lt;li&gt;All strings are not unicode by default (but fixed in Python 3).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-11-11T13:38:01.163" CommentCount="1" />
  <row Id="18369" PostTypeId="2" ParentId="4693" CreationDate="2010-11-11T13:47:10.840" Score="0" ViewCount="" Body="&lt;p&gt;I'm not arrogant - that's what makes me better than all of you.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-11T13:47:10.840" CommunityOwnedDate="2010-11-11T13:47:10.840" />
  <row Id="18370" PostTypeId="2" ParentId="18315" CreationDate="2010-11-11T13:48:54.430" Score="1" ViewCount="" Body="&lt;p&gt;If you want to factor primes, then you probably want to &lt;a href=&quot;http://stackoverflow.com/questions/1801003&quot;&gt;read this SO question first.&lt;/a&gt; Quoting from it, the quick answer is:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;BigInteger.probablePrime(bitLength, random)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;When it comes to dependency management in Java &lt;a href=&quot;http://maven.apache.org/&quot; rel=&quot;nofollow&quot;&gt;Maven is a great choice&lt;/a&gt; because it covers all aspects of the build process. You could use &lt;a href=&quot;http://ant.apache.org/ivy/&quot; rel=&quot;nofollow&quot;&gt;Ivy&lt;/a&gt; which specifically targets dependency management. The two are &lt;a href=&quot;http://ant.apache.org/ivy/m2comparison.html&quot; rel=&quot;nofollow&quot;&gt;compared here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-11T13:48:54.430" />
  <row Id="18371" PostTypeId="1" AcceptedAnswerId="18372" CreationDate="2010-11-11T14:07:22.203" Score="36" ViewCount="1901" Body="&lt;p&gt;The company I'm working for is looking to hire a senior developer with more experience than me, and they expect me to do the technical part of the interview. I've only been programming a few years and am not sure I have the knowledge needed to evaluate the coding skills of someone who has greater understanding/experience than I do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can anyone recommend some technical interview questions to ask that are a good means for evaluating higher-level programming skills, but still be ones I can understand? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say I'm past the jr. programmer level, but nowhere near senior. Most of what I've done is built small apps (web and desktop), some of them fairly complicated, but all of them have been meant to be used by no more then a handful of users. I feel I have a decent understanding of most programming concepts and am capable of learning/teaching myself just about anything, however I lack experience. As my boss is fond of telling me, &quot;You don't know what you don't know&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In particular, things we'd like the person we hire to have experience with (that I don't have) is: Multi-tier development, multi-user environment, large-scale application development, two-way messaging, shared sessions, and Multi-threading/BackgroundWorkers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In response to Thor's comment below, we hired someone a few months ago and I think it has been working out great. I am learning a lot, not just about coding but also about things like design patterns, software architecture, documentation, and how other larger programming teams get stuff done. Its not always easy having someone come in and point out better ways to do things you have done, but if you can swallow your pride and be willing to try out new things you can learn a lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The interview process went better than I expected. I started asking questions about things I was familiar with, then asked some questions about some things I was struggling with. Whenever the interviewee said something I didn't understand, I'd ask them to explain it to me and then write it down so I could look it up later on. Overall, I felt I was able to get a pretty good idea of the applicant's skill level, intelligence, and what they'd be like to work with.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastEditorUserId="1130" LastEditorDisplayName="" LastEditDate="2011-05-01T18:42:07.697" LastActivityDate="2011-05-01T18:42:07.697" Title="How do you interview someone with more experience than you?" Tags="&lt;interview-questions&gt;&lt;interviewing&gt;" AnswerCount="12" CommentCount="7" FavoriteCount="2" />
  <row Id="18372" PostTypeId="2" ParentId="18371" CreationDate="2010-11-11T14:11:05.480" Score="38" ViewCount="" Body="&lt;p&gt;You can't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead, I would suggest you to come up in the interview with a list of &lt;strong&gt;problems you have today&lt;/strong&gt;, and ask him &lt;strong&gt;how he would solve them&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This a is very interesting method for the following two reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;It is &lt;strong&gt;free consultancy&lt;/strong&gt;. Even if you don't hire the guy, he may suggest &lt;strong&gt;nice solutions to your problems&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If he comes with interesting &lt;strong&gt;solutions&lt;/strong&gt;, he is a &lt;strong&gt;problem solver&lt;/strong&gt;. The kind of guy you want to hire.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-11T14:11:05.480" CommentCount="19" />
  <row Id="18373" PostTypeId="1" AcceptedAnswerId="18376" CreationDate="2010-11-11T14:12:58.800" Score="4" ViewCount="2365" Body="&lt;p&gt;About to start some iPhone dev, need a laptop. Leaving aside price, is the MacBook Air a suitable development environment? 13&quot; vs 11&quot;?&lt;/p&gt;&#xA;" LastActivityDate="2010-12-11T23:11:44.507" Title="MacBook Air -- suitable for iOS dev" Tags="&lt;iphone&gt;&lt;mac&gt;" AnswerCount="7" CommentCount="1" />
  <row Id="18376" PostTypeId="2" ParentId="18373" CreationDate="2010-11-11T14:20:07.183" Score="4" ViewCount="" Body="&lt;p&gt;It's obviously not going to be the fastest machine but it's perfectly suitable.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say the 13&quot; over the 11&quot; because reasonable screen size is a big deal for development, and it can go up to 4Gb RAM rather than 2Gb (absolutely go for the 4Gb RAM model on day one and if you can afford it the faster processor as I suspect upgrading later isn't something Apple will be pushing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes it's got limitations (basically the same as any laptop - essentially screen and power are limited next to a desktop) but I have the new one and it's entirely workable and I know others who use them (and used the old MacBook Air) day to day with no problems.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-11T14:20:07.183" CommentCount="12" />
  <row Id="18377" PostTypeId="2" ParentId="18373" CreationDate="2010-11-11T14:20:44.563" Score="6" ViewCount="" Body="&lt;p&gt;You don't note your Mac experience, but leaving aside price, I would recommend a MacBook Pro for any serious development work instead. A MacBook Pro is more easily upgradeable to suit needs than an Air (if it is even upgradeable at all). The Air seems more targeted to lighter-weight uses.&lt;/p&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2010-11-11T14:20:44.563" CommentCount="3" />
  <row Id="18378" PostTypeId="2" ParentId="18371" CreationDate="2010-11-11T14:24:06.247" Score="20" ViewCount="" Body="&lt;p&gt;Remember that just because they have more experience than you, they may not be be a better developer than you. The phrase &quot;One year of experience repeated &lt;em&gt;n&lt;/em&gt; times.&quot; comes up because you do see this happen in industry. Thus, your first task during the interview should be to establish that they do indeed have the relevant experience and can present themselves as someone one that knows what they are doing. Likewise, just because someone has had &lt;em&gt;n&lt;/em&gt; years of experience in industry, it doesn't mean they have a ton of experience in a given language, library, or framework so they might still come to you from time to time asking questions while they are learning something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next, remember that a good senior developer is someone that you should be able to approach and asking about something that you have having problems with. This is a good time to asking them some design questions that you have had problems and see how they response and what their reasoning is in their explanation. Have they seen something similar before somewhere else, are they making an educated guess based upon experience, did they read an article online or in a journal?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, another thing to look at is how they approach debugging code. In my own experience, I have found that regardless of the language, certain debugging techniques tend to be applied universality. Given the candidate an example of one of the more esoteric bugs you have encountered and have them walk you through how they would approach the bug. Do they have some insight into the problem that is not immediately obvious?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In summary, interviewing a candidate with an impressive interview can be intimidating, but there are something that you need to cover regardless of what level they will be (i.e. do they actually know what they are doing) and once that is complete you can start probing them to see how they are applying their experience. How the candidates are applying their previous work experience is going to be what is going to make one candidate standout more than another.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-11-11T14:24:06.247" CommentCount="2" />
  <row Id="18379" PostTypeId="1" AcceptedAnswerId="18384" CreationDate="2010-11-11T14:26:18.443" Score="10" ViewCount="178" Body="&lt;p&gt;Any tips for a group needing to start code reviews? We have no real software engineering processes currently. I have been working as software engineer for 7 years and have never seen any real processes implemented at the various places I have worked, though many books espouse all kinds of engineering methodologies. The management supports the idea of enabling new processes, though there is some resistance from the senior engineer who has over 20 years of software engineering experience. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are a set of two programmers, with no software engineering manager. We report direct to the managing director of the Company. But we work on numerous software projects. The real reason why we have to begin performing code reviews is because of PA-DSS requirements. Therefore, I am pushing for us to do code reviews all around - not just on the payment application software.&lt;/p&gt;&#xA;" OwnerUserId="4459" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-11T16:04:17.877" LastActivityDate="2010-11-11T16:04:17.877" Title="Starting Up Code Review Process Where there Previously Was None?" Tags="&lt;code-reviews&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="18380" PostTypeId="2" ParentId="18371" CreationDate="2010-11-11T14:29:54.830" Score="5" ViewCount="" Body="&lt;p&gt;The really significant thing is that you make sure he is the right &lt;em&gt;kind&lt;/em&gt; of experienced developer for what you need. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As people move on through their careers they tend to go in different directions in terms of what they do. You may be interviewing people who are experts in running large teams of programmers or working with convoluted legacy code and quite brilliant at what they do without them being the person who is right for your role. So try have an idea of what &lt;em&gt;exactly&lt;/em&gt; you are looking for in advance and think of questions that will differentiate exactly the kind of developer for your job from other people.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-11T14:29:54.830" />
  <row Id="18381" PostTypeId="1" AcceptedAnswerId="18477" CreationDate="2010-11-11T14:41:24.397" Score="2" ViewCount="309" Body="&lt;p&gt;Can anyone recommend a good book on JUnit 4?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've done some stuff in JUnit 3 before (mainly changing other people's tests) so I'm not completely new to the idea, but I've not done any testing with JUnit 4 and certainly nothing advanced with any xUnit framework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ordinarily I'd go straight to the pragmatic bookshelf, but it looks like Pragmatic Unit Testing with JUnit pre-dates JUnit 4 so I'm probably looking for a more recent guide.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any suggestions?&lt;/p&gt;&#xA;" OwnerUserId="1759" LastActivityDate="2010-11-14T01:55:30.030" Title="Which JUnit 4 book do you recommend?" Tags="&lt;java&gt;&lt;unit-testing&gt;" AnswerCount="4" />
  <row Id="18382" PostTypeId="2" ParentId="14650" CreationDate="2010-11-11T14:41:55.817" Score="2" ViewCount="" Body="&lt;p&gt;I found &lt;a href=&quot;http://www.catb.org/~esr/faqs/hacker-howto.html&quot; rel=&quot;nofollow&quot; title=&quot;How to Become a Hacker&quot;&gt;How to Become a Hacker&lt;/a&gt; very inspirational. It also gives a workable roadmap for developing as a programmer.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-11T14:41:55.817" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="18383" PostTypeId="2" ParentId="3199" CreationDate="2010-11-11T14:42:24.203" Score="7" ViewCount="" Body="&lt;p&gt;I try to use the &lt;a href=&quot;http://docs.rubygems.org/read/chapter/7&quot; rel=&quot;nofollow&quot;&gt;RubyGems Rational Versioning policy&lt;/a&gt; in which:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The Major version number is incremented when binary compatibility is broken&lt;/li&gt;&#xA;&lt;li&gt;The minor version number is incremented when new functionality is added&lt;/li&gt;&#xA;&lt;li&gt;The build number changes for bug fixes.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1961" LastActivityDate="2010-11-11T14:42:24.203" />
  <row Id="18384" PostTypeId="2" ParentId="18379" CreationDate="2010-11-11T14:44:35.793" Score="1" ViewCount="" Body="&lt;p&gt;Since there are only two of you, theoretically you do not really need a formal review process.  What should be happening is that when one of you finishes a piece of code he should simply say to the other: &quot;Here's what I did.  Please take a look.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This, of course, assumes that both of you are reasonable, sufficiently disciplined, and that you both have a sufficient grip on your own egos.  If these assumptions are false, then you do need a formal process enforced from the top.  The simplest thing to do is to make a rule that all commits or merges to the trunk must be looked at and approved by the other person, or at least one other person, in case your team grows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This does not apply to you yet, but in my experience formal code reviews by even a team of 4 people end up taking way too much time, and 90% of the comments from individual reviewers are the same.  That's why we switched to this one-reviewer system.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-11-11T14:44:35.793" CommentCount="1" />
  <row Id="18385" PostTypeId="2" ParentId="18381" CreationDate="2010-11-11T14:44:49.260" Score="0" ViewCount="" Body="&lt;p&gt;If you have experience with JUnit 3, you should be able to go straight to the documentation:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.junit.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.junit.org/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://junit.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;http://junit.sourceforge.net/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-11-11T14:44:49.260" CommentCount="1" />
  <row Id="18386" PostTypeId="2" ParentId="18379" CreationDate="2010-11-11T14:45:04.347" Score="2" ViewCount="" Body="&lt;p&gt;Easiest way to start code review:  just start doing it with one of open-source review tool. &lt;a href=&quot;http://ostatic.com/blog/open-source-code-review-tools&quot; rel=&quot;nofollow&quot;&gt;http://ostatic.com/blog/open-source-code-review-tools&lt;/a&gt;&#xA;You may start from simple process: every day one developer review code of second developer and vice versa. If review will help you improve your code, than you may think about &quot;real tech process&quot;&lt;/p&gt;&#xA;" OwnerUserId="7298" LastActivityDate="2010-11-11T14:45:04.347" CommentCount="2" />
  <row Id="18387" PostTypeId="1" CreationDate="2010-11-11T15:00:57.213" Score="3" ViewCount="215" Body="&lt;p&gt;I work in the enterprise web software industry. Currently I work with everything Microsoft.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the TOP 5 print publications I should be reading to deepen my understanding of enterprise development, gain technological, business, and industry insight. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally what are the TOP 5 digital publications/web sites you would recommend?&lt;/p&gt;&#xA;" OwnerUserId="7502" LastActivityDate="2011-01-03T05:26:52.623" ClosedDate="2011-01-03T14:15:17.160" Title="What are the TOP 5 print and digital industry publications I should be reading" Tags="&lt;learning&gt;&lt;.net&gt;&lt;magazines&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="2" />
  <row Id="18389" PostTypeId="2" ParentId="3199" CreationDate="2010-11-11T15:18:27.620" Score="0" ViewCount="" Body="&lt;p&gt;We use &lt;strong&gt;Major.Minor.Build#.YYMMDD&lt;/strong&gt;[suffix], as we usually only do one production build on any particular day (but use a b/c/d suffix if there's more than one) and the YYMMDD gives users/customers/management an indication of the age of the build, where 6.3.1389 does not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Major numbers increase with significant product features (paid-for).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Minor numbers increase with fixes/improvements (free update).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Build always increases; not all builds ship, so it's not a linear progression.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-11-11T15:18:27.620" />
  <row Id="18390" PostTypeId="2" ParentId="14650" CreationDate="2010-11-11T15:18:53.983" Score="0" ViewCount="" Body="&lt;p&gt;I found &lt;a href=&quot;http://www.cs.virginia.edu/~robins/YouAndYourResearch.html&quot; rel=&quot;nofollow&quot;&gt;You and Your Research&lt;/a&gt; to be very valuable advice. This was a lecture by Hamming to his colleagues at Bell Labs. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;What Bode was saying was this: &quot;Knowledge and productivity are like compound interest.&quot; Given two people of approximately the same ability and one person who works ten percent more than the other, the latter will more than twice outproduce the former. The more you know, the more you learn; the more you learn, the more you can do; the more you can do, the more the opportunity - it is very much like compound interest. I don't want to give you a rate, but it is a very high rate. Given two people with exactly the same ability, the one person who manages day in and day out to get in one more hour of thinking will be tremendously more productive over a lifetime. I took Bode's remark to heart; I spent a good deal more of my time for some years trying to work a bit harder and I found, in fact, I could get more work done. I don't like to say it in front of my wife, but I did sort of neglect her sometimes; I needed to study. You have to neglect things if you intend to get what you want done.&lt;/em&gt; &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-11T15:18:53.983" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="18391" PostTypeId="1" CreationDate="2010-11-11T15:22:19.120" Score="23" ViewCount="580" Body="&lt;p&gt;Recently, I had a job interview at a big Silicon Valley company for a senior software developer/R&amp;amp;D position. I had several technical phone screens, an all day on-site interview and more technical phone screens for another position later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The interviews went really well, I have a PhD and working experience in the area I was applying for yet no offer was made. So far, so good. It was an interesting experience, I am employed, absolutely no hard feelings about this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now for the problem:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of the interviewers asked really detailed questions to the point of being suspicious about new technologies I have been working on. These technologies are still in development and have not come to market yet. I know some major hardware/software companies are working on this too. I have had many interviews before and based on my former interviewing experience and the impression some of the interviewers left behind, I know now all this company wanted from me is to extract some ideas about what I did in this field. Remember, I am referring to a R&amp;amp;D position, not the standard software developer stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anybody encountered this situation so far? And how did you deal with it? I am not so much concerned about &quot;stealing&quot; ideas but more about being tricked into showing up for an interview when there is no intension to hire anyway. I am considering refusing technical interviews in the future and instead proposing a trial period in which the company can easily reconsider its hiring decision.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Btw, I was directed here from Stackoverflow where questions of this kind are not allowed, apparently.&lt;/p&gt;&#xA;" OwnerUserId="7504" LastActivityDate="2010-11-12T00:11:00.357" Title="Brain picking during job interview" Tags="&lt;software-engineering&gt;&lt;interview&gt;&lt;job-interview&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="1" />
  <row Id="18392" PostTypeId="1" CreationDate="2010-11-11T15:27:55.557" Score="12" ViewCount="416" Body="&lt;p&gt;Background: I'm a microsoft DBA/IT type person by day, an iOS and Mac developer by night. I have one app in the App Store and another one in the works. I try to spend as much time as possible working on my two apps, but with a new daughter and other (non computer) hobbies, I find it hard to spend more than a few hours every week programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm wondering how this compares to other developers. I see a lot of apps out there written by single developers who don't do iOS development as their main job. Are they spending 4 hours a night working on their projects, or do they just plug away for a year or two before releasing anything?&lt;/p&gt;&#xA;" OwnerUserId="3956" LastActivityDate="2010-12-06T08:32:36.607" Title="How much time a week do you spend on extracurricular programming?" Tags="&lt;time-management&gt;&lt;free-time&gt;&lt;personal-projects&gt;" AnswerCount="8" CommentCount="1" FavoriteCount="1" />
  <row Id="18393" PostTypeId="2" ParentId="18371" CreationDate="2010-11-11T15:28:50.947" Score="5" ViewCount="" Body="&lt;p&gt;I've had to do this several times.  I learned to do it in a step-wise process.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Start out with the same questions I give to the college grads.  I did this because the position I was doing the technical interview for was a programming position where we expected the developer to be hands on in the code, and I wanted to make sure the candidates could program.  With only one exception none of the candidates could - they were worse than any of the college grads.  All of them had been in managerial positions far too long.&lt;/li&gt;&#xA;&lt;li&gt;For the candidate who passed a basic coding competency test, I had some more general &quot;how would you handle X scenario&quot; kinds of questions.  If you are doing web services in your project, for example, think of an interesting web services question and ask the candidate how he would solve it.  I wouldn't recommend that this be something you are currently working on directly, mostly because of the issue of intellectual property and company proprietary data.  Don't give that stuff out!&lt;/li&gt;&#xA;&lt;li&gt;Spend time asking the candidate about stuff on his or her resume.  This is important.  You can find out about his or her best and worst team experiences, experiences as a supervisor, and so on.  Try to get a feel of the person's working style to see if he or she fits into your team.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;My biggest issue when interviewing senior candidates was that they often got very nervous to be interviewed by a junior person, especially those who couldn't handle my basic coding tests.  Try hard to seem non-threatening in any skills you show throughout the interview - focus it on them, even if they can't answer your questions well.  Try and skew the interview to questions they can answer if they fail on the basics.&lt;/p&gt;&#xA;" OwnerUserId="7506" LastActivityDate="2010-11-11T15:28:50.947" CommentCount="3" />
  <row Id="18394" PostTypeId="1" AcceptedAnswerId="18410" CreationDate="2010-11-11T15:32:31.010" Score="9" ViewCount="430" Body="&lt;p&gt;I have always found useful asking fellow coders about their independent algorithm education.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What is the one algorithm that you would write in the condensation of a post-shower bathroom mirror 5 years ago?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(other creative ways of avoiding self-meets-self paradox are encouraged!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your reason might be to become a better coder, or to understand a specific concept (recursion? graph traversal perhaps?)&lt;/p&gt;&#xA;" OwnerUserId="5904" LastActivityDate="2010-11-12T02:57:49.600" Title="What is the one algorithm you wish you knew 5 years ago?" Tags="&lt;learning&gt;&lt;algorithms&gt;" AnswerCount="10" FavoriteCount="4" />
  <row Id="18395" PostTypeId="2" ParentId="18394" CreationDate="2010-11-11T15:35:47.580" Score="0" ViewCount="" Body="&lt;p&gt;For myself, &lt;a href=&quot;http://en.wikipedia.org/wiki/XOR_swap_algorithm&quot; rel=&quot;nofollow&quot; title=&quot;XOR swap&quot;&gt;XOR Swap&lt;/a&gt; is something I only recently wrapped my mind around.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It requires bit-level knowledge of how computers work, as well as an understanding of bit-wise operators. So if I could tell myself to investigate it enough to understand it 5 years ago, I think my understanding of computation would have been far better in the in-between.&lt;/p&gt;&#xA;" OwnerUserId="5904" LastActivityDate="2010-11-11T15:35:47.580" CommentCount="1" />
  <row Id="18396" PostTypeId="2" ParentId="18392" CreationDate="2010-11-11T15:36:08.640" Score="8" ViewCount="" Body="&lt;p&gt;For me it really goes in streaks.  I have a lot of hobbies, one of which is extracurricular programming.  Like most hobbies, I get into it for a while, then lose interest for a while, then come back to it later when I'm sick of all my other hobbies.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I'm on a hardcore hacking streak, I'll go a few weeks where I spend 4-5 hours a night and a good portion of my weekends programming just for fun, in addition to the programming I do at work.  During these times, programming is constantly on my mind.  Then I temporarily burn out and give it a rest for a few months.  During this time, I spend some time on another hobby and for a while, and do almost no recreational programming.  I maybe spend an hour or two a week on bug fixes for my existing projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find it very hard to just consistently spend a few hours a week because to write really good hobby project code, I need to be thinking about it all the time.  On the other hand, such effort is unsustainable in the long run.  The result is this extreme bimodality.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-11T15:36:08.640" CommentCount="3" />
  <row Id="18397" PostTypeId="2" ParentId="18392" CreationDate="2010-11-11T15:43:11.203" Score="0" ViewCount="" Body="&lt;p&gt;Not nearly enough...&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Belatedly - its hard to quantify, it can't be a hard number because there are too many other variables but it should be sufficient to have a measurable achievement every week and I'm certainly not doing that.&lt;/p&gt;&#xA;" OwnerUserId="866" LastEditorUserId="866" LastEditorDisplayName="" LastEditDate="2010-12-06T08:32:36.607" LastActivityDate="2010-12-06T08:32:36.607" CommentCount="2" />
  <row Id="18398" PostTypeId="2" ParentId="17355" CreationDate="2010-11-11T15:45:01.573" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Duff%27s_device&quot; rel=&quot;nofollow&quot;&gt;Duff's Device&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void send(short *to, short *from, int count)&#xA;{&#xA;    int n = (count +7 ) / 8;&#xA;&#xA;    switch (count % 8) {&#xA;    case 0: do {    *to = *from++;&#xA;    case 7:         *to = *from++;&#xA;    case 6:         *to = *from++;&#xA;    case 5:         *to = *from++;&#xA;    case 4:         *to = *from++;&#xA;    case 3:         *to = *from++;&#xA;    case 2:         *to = *from++;&#xA;    case 1:         *to = *from++;&#xA;        } while(--n &amp;gt; 0);&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Tom Duff unrolled a memory-mapped port write into one of the most bizarre C constructs the world has seen.&lt;/p&gt;&#xA;" OwnerUserId="987" LastEditorUserId="987" LastEditorDisplayName="" LastEditDate="2010-11-11T16:04:58.390" LastActivityDate="2010-11-11T16:04:58.390" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="1" />
  <row Id="18399" PostTypeId="2" ParentId="3199" CreationDate="2010-11-11T15:45:09.033" Score="1" ViewCount="" Body="&lt;p&gt;&lt;code&gt;git describe&lt;/code&gt; provides a nice extension to whatever numbering convention you've chosen. It's easy enough to embed this in your build/packaging/deployment process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suppose you name your tagged release versions A.B.C (major.minor.maintenance). &lt;code&gt;git describe&lt;/code&gt; on a given commit will find the most recent tagged ancestor of the commit, then tack on the number of commits since then, and the abbreviated SHA1 of the commit:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;1.2.3-164-g6f10c&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If you're actually at one of the versions, of course, you'll just get the tag (1.2.3).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This has the nice benefit of letting you know &lt;em&gt;exactly&lt;/em&gt; what source you built from, while not having to number every single build yourself.&lt;/p&gt;&#xA;" OwnerUserId="5858" LastActivityDate="2010-11-11T15:45:09.033" />
  <row Id="18400" PostTypeId="2" ParentId="18392" CreationDate="2010-11-11T15:49:13.407" Score="1" ViewCount="" Body="&lt;p&gt;If I can squeak in 2-3 hours then that is a good week for me.  Unfortunately my aspirations require MUCH more time than I can give them currently, due to a number of factors.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally though, I'd be able to take 1-2 evenings a week and spend 4 hours + each time in large chunks.  If I know I only have an hour to work, it's hard to get into the 'zone' and get the really hard work done.&lt;/p&gt;&#xA;" OwnerUserId="2830" LastActivityDate="2010-11-11T15:49:13.407" CommentCount="1" />
  <row Id="18401" PostTypeId="2" ParentId="18394" CreationDate="2010-11-11T15:50:06.563" Score="7" ViewCount="" Body="&lt;p&gt;Not an algorithm, but I wish I'd been to exposed to IoC much earlier than last year.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-11-11T15:50:06.563" CommentCount="2" />
  <row Id="18402" PostTypeId="2" ParentId="3199" CreationDate="2010-11-11T15:54:52.563" Score="2" ViewCount="" Body="&lt;p&gt;For every major version you release, it's not uncommon to have a working version you call it internally.  For instance, at my last job, we referred to a major version with the following Ubuntu-inspired naming convention:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;[sickly condition] [alliterative animal name]&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which gave such names as &quot;&lt;strong&gt;Limp Lamprey&lt;/strong&gt;&quot;, &quot;&lt;strong&gt;Wounded Wombat&lt;/strong&gt;&quot; and &quot;&lt;strong&gt;Asthmatic Anteater&lt;/strong&gt;&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure unless it's a truly cool name that it doesn't leak to your customers.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-11-11T15:54:52.563" />
  <row Id="18403" PostTypeId="2" ParentId="18379" CreationDate="2010-11-11T15:55:24.203" Score="3" ViewCount="" Body="&lt;p&gt;You want code reviews to be a positive exercise!  Here are some tips:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Code review early by pair programming!  Even if this is only for 30 minutes a day.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Use static code analysis tools, style checkers and templates to get rid of the fluff.  You can then concentrate on the meatier issues (SRP, design patterns, exception handling, coding to interfaces etc etc) which is what code reviews should be really about (IMHO).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Get an agreed checklist between you on what's important and what's not&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Some sort of Test Driven approach (forces better upfront design) is recommended further down the track&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;There are some really good code review tools out there - I use Crucible personally&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make sure that an attitude of 'improve the code' as opposed to 'crticise the coder'.  This is vital in keeping everyone's egos happy.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do it regularly, don't skimp on it. Either after a group of commits or 1/day or whatever you agree on.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-11T15:55:24.203" />
  <row Id="18404" PostTypeId="2" ParentId="18392" CreationDate="2010-11-11T15:57:33.887" Score="6" ViewCount="" Body="&lt;p&gt;None&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a few side projects I'd love to do but honestly, I don't have the time. I'm lucky I have a job that keeps me learning new things regularly or I'd probably never keep up on new technology!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually I do have some time to myself, but I prefer to use it to do things other then coding.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-11-11T15:57:33.887" />
  <row Id="18405" PostTypeId="2" ParentId="15759" CreationDate="2010-11-11T16:02:59.127" Score="0" ViewCount="" Body="&lt;p&gt;At my last job (not the one mentioned in my other answer), we referred to a major version with the following Ubuntu-inspired naming convention:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;[sickly condition] [alliterative animal name]&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which gave such names as &quot;&lt;strong&gt;Limp Lamprey&lt;/strong&gt;&quot;, &quot;&lt;strong&gt;Wounded Wombat&lt;/strong&gt;&quot; and &quot;&lt;strong&gt;Asthmatic Anteater&lt;/strong&gt;&quot;.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-11-11T16:02:59.127" CommentCount="2" />
  <row Id="18406" PostTypeId="1" AcceptedAnswerId="18450" CreationDate="2010-11-11T16:05:03.413" Score="13" ViewCount="839" Body="&lt;p&gt;It has been six years since i have been coding. Coding into all kinds of things like actionscript javascript java php ajax xml html asp. I have used arrays in them i have used maps linkedlist sets etc and wherever i worked people like me. But whenever i am interviewed its very likely that people ask me question on HASH TREE STACKS QUEUES, Some questions on juggling some sorting algorithms. And i dont know if i should really know them or should i stop calling myself programmer. There is something in me which also tells me even if people who are asking all these questions select me. They will never be making me work of these things. Am i really required to know all this.&lt;/p&gt;&#xA;" OwnerUserId="7507" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-11-12T18:16:14.607" LastActivityDate="2010-12-15T00:12:29.547" Title="Do I need to understand algorithms and data structures to be called a programmer?" Tags="&lt;self-improvement&gt;&lt;programming&gt;&lt;interview&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="3" />
  <row Id="18407" PostTypeId="2" ParentId="18371" CreationDate="2010-11-11T16:07:50.343" Score="34" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Use your age as an advantage.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've interviewed a ton of people who are older than me.  I pick a technology that I &lt;strong&gt;do&lt;/strong&gt; know pretty well and tell them that I've heard of Technology X, but never used it.  I ask the candidate to give me an overview of the technology and how they've used it in a project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This works surprisingly well.  First of all, if the candidate is only using that Technology X as a buzzword on their resume, then their explanation will suck/not make sense.  Also, if they can't give you a good, concrete example of how they used a that technology in their past projects, you have a big red flag right there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I interviewed someone who had java Spring experience.  I had used Spring in my previous job, and one of the big features of spring is Dependency Injection.  I told the candidate I interviewed that I had heard about Spring and never used it.  He started blabbing on and on, but couldn't tell me where he had used Spring AOP and couldn't explain Dependency Injection to me, even after I &lt;strong&gt;explicitly&lt;/strong&gt; asked after seeing those things called out on his resume.  He just told me that they were really cool, and there's so much to learn out there, etc, etc.  It really turns out he didn't know jack...and I was the only to figure that out b/c I was a younger member of the dev team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So use your age as an advantage!  Go in, be confident, and ask some questions about technology you know well.&lt;/p&gt;&#xA;" OwnerUserId="7509" LastActivityDate="2010-11-11T16:07:50.343" CommentCount="4" />
  <row Id="18408" PostTypeId="2" ParentId="18406" CreationDate="2010-11-11T16:10:06.957" Score="5" ViewCount="" Body="&lt;p&gt;It depends what the jobs are for.  This sort of things are fairly standard interview questions but they're also fairly unimaginative and probably don't relate to the job at all - certainly not a job using the technologies you list.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me as interview questions go they're a good judge of whether you did a Computer Science degree (and can remember it) rather than any measure of general programming ability or knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd suggest that either you learn this stuff so you can get through the interview, or you just accept that anywhere asking these things isn't for you, but no, you don't need to know them to call yourself a programmer.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-11T16:10:06.957" CommentCount="3" />
  <row Id="18409" PostTypeId="2" ParentId="18371" CreationDate="2010-11-11T16:16:12.840" Score="0" ViewCount="" Body="&lt;p&gt;Take a bunch of the problems you have already solved.  Describe to him what was done to solve the problem (keep it third-person; you don't want to put your personal ego at stake here).  Ask him what he would have done &quot;differently&quot;.  You should be able to, based on what he is suggesting, figure out if that would have been better or worse, conceptually, than what you did.&lt;/p&gt;&#xA;" OwnerUserId="4265" LastActivityDate="2010-11-11T16:16:12.840" />
  <row Id="18410" PostTypeId="2" ParentId="18394" CreationDate="2010-11-11T16:26:08.707" Score="13" ViewCount="" Body="&lt;p&gt;3,000 Views = 300 Downloads = 1 Sale&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-11T16:26:08.707" />
  <row Id="18411" PostTypeId="2" ParentId="18406" CreationDate="2010-11-11T16:29:16.137" Score="7" ViewCount="" Body="&lt;p&gt;This might be an occasion where there can be a semantically-meaningful distinction between 'programmer' and 'software engineer.' In this context, specifically, we see that you have a knowledge of several programming languages and related technologies and that you can use them to produce desired results. This is a fine operational definition of 'computer programmer.'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I consider myself to be a software engineer. In most of the day-to-day aspects of my work, I probably do the same things that you do. I use computer language and related technologies to produce some desired result. However, I do have an understanding of data structures and algorithms, and I consider that knowledge to be a fundamental underpinning of my ability to do much more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often -- though not ever  day -- my job involves finding solution to complex problems for which there are no obvious solutions, nothing that is directly addressed by the features of the framework that I am using or the capabilities of the language that I am working with. In this, I need to analyze the problem and devise a solution and occasionally this process goes in the realm of large-scale architecture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While an excellent understanding of these deeper issues is necessary to doing that kind of work, it is not &lt;em&gt;sufficient&lt;/em&gt;. In other words, just knowing how a hash table works or why a heap sort usually has good performance characteristics isn't enough to be a systems architect or a senior engineer. It's the logical starting place, and from there you can start to dig deeper and travel more widely and gain the experience that is also necessary to tackle the larger issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suppose that in order to answer your question, you should ask yourself, &quot;What do I want to be? Where will I go with my career?&quot; If you are content to continue doing what you are doing, then you might just want to learn enough data structures and algorithms to get through the largely arbitrary interview questions that you are faced with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to grow in your career and you have the passion for it that is essential, you should embrace these subjects as tightly as you can. If you have some time to work on them, an open mind and true enthusiasm, you'll find some wonderful and exciting things. I'll never forget the day that I first understood quicksort. The feeling of excitement and discovery set the course for much of the rest of my life, and I couldn't be more grateful for that. Now, I can't imagine doing anything besides working as a software engineer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best of luck with whatever you choose.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-11-11T16:29:16.137" CommentCount="2" />
  <row Id="18412" PostTypeId="2" ParentId="18371" CreationDate="2010-11-11T16:33:33.667" Score="12" ViewCount="" Body="&lt;p&gt;I like the &lt;a href=&quot;http://programmers.stackexchange.com/questions/18371/how-do-you-interview-someone-with-more-experience-than-you/18407#18407&quot;&gt;Use your age as an advantage&lt;/a&gt; answer very much, and I would suggest something similar:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use your lower level of experience as an advantage&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This person is probably going to be your boss or mentor, so ask questions in a way that lets you find out if that person can actually mentor you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask complicated questions that could be made a lot easier, or that include over-complicated problems. If he / she is any good, he / she will not only solve try to answer the question / solve the problem, but actually get to the real problem, showing you the flaws in your question. If he / she manages to do that in a polite way without intimidating you he / she is a keeper.&lt;/p&gt;&#xA;" OwnerUserId="2894" LastActivityDate="2010-11-11T16:33:33.667" CommentCount="1" />
  <row Id="18413" PostTypeId="2" ParentId="18394" CreationDate="2010-11-11T16:33:55.340" Score="1" ViewCount="" Body="&lt;p&gt;I wish I would have known about map reduce/distributed processing earlier.  I deal with lots of data on embedded systems.  It has changed my approach to how I approach breaking down problems.&lt;/p&gt;&#xA;" OwnerUserId="3884" LastActivityDate="2010-11-11T16:33:55.340" CommentCount="2" />
  <row Id="18414" PostTypeId="2" ParentId="18406" CreationDate="2010-11-11T16:34:45.320" Score="15" ViewCount="" Body="&lt;p&gt;those who don't know history are condemned to reinvent it&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-11T16:34:45.320" CommentCount="3" />
  <row Id="18415" PostTypeId="2" ParentId="18371" CreationDate="2010-11-11T16:38:33.130" Score="1" ViewCount="" Body="&lt;p&gt;definitely pick his brain in the interview on real problems and technologies that you currently have or intend to use&lt;/p&gt;&#xA;&#xA;&lt;p&gt;assuming he/she is a competent and imaginitive senior developer, decide to hire or not based on if &lt;strong&gt;you think you can learn from him/her and work well with him/her&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;you're not interviewing your future boss, you're interviewing your future mentor. Don't pick someone who knows all the answers but can't teach&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-11-11T21:11:26.533" LastActivityDate="2010-11-11T21:11:26.533" CommentCount="1" />
  <row Id="18416" PostTypeId="2" ParentId="18406" CreationDate="2010-11-11T16:41:49.367" Score="3" ViewCount="" Body="&lt;p&gt;I'll add &quot;yes, of course you can still call yourself a programmer&quot;.  But what sort of a programmer do you want to be?  I think the very best programmers have at least some grounding in the theoretical basics. They know &lt;em&gt;why&lt;/em&gt; they chose a particular data structure/algorithm as well as the trade-offs that come with that. I expect any developer I interview to have at least a basic understanding, even if they don't use the same jargon (although not knowing the jargon means you'll find it more difficult to communicate with other developers).&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-11T16:41:49.367" />
  <row Id="18417" PostTypeId="2" ParentId="18392" CreationDate="2010-11-11T16:42:20.227" Score="0" ViewCount="" Body="&lt;p&gt;Not enough as I'd like to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used to basically spend most of my time doing just that uni. Then when I began to work I was spending most of my evenings and week-ends working on personal projects (some relating to my job to try to improve ways things were done at the office) and to learn new things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I switched to jobs not allowing too much personal development at the office if not relating to their core-products.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I met someone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I had a kid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Guess soon I'll have a garden and that will be the end of it :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think there's no &quot;appropriate&quot; number of hours for this, but needless to say that if you want to be and &lt;strong&gt;remain&lt;/strong&gt; an expert at the top of your game in your areas and even in emerging areas, then you need to spend an awful lot of time.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-11-11T16:42:20.227" />
  <row Id="18418" PostTypeId="2" ParentId="18120" CreationDate="2010-11-11T16:42:25.000" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Bad decision&lt;/strong&gt;: work on too many things trying to capture all opportunities I got. Nothing was made correctly, and I dispointed many people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Good decision&lt;/strong&gt;: left employee status very quickly to become freelance (I was 23 years old)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-11T16:42:25.000" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="2" />
  <row Id="18419" PostTypeId="2" ParentId="18406" CreationDate="2010-11-11T16:42:35.963" Score="1" ViewCount="" Body="&lt;p&gt;Hi,&#xA;It depends of the project: I'm a BEng in Computer Engineer and I work as analyst programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I spent a lot of time for to work in design (testing, doc, code design).&#xA;But, when I find a bug (or bad performance) or I have to coding a new data structure (because the requirement is very NEW for the application), I must to understand where's the problem in the algoritm and I must to correct him (I did this not very good, so :))&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The classical algorithms and data structures are a kind of &quot;dictionary pattern&quot; in the world of developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some excellent links:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000319.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/fog0000000319.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6330" LastActivityDate="2010-11-11T16:42:35.963" />
  <row Id="18420" PostTypeId="2" ParentId="18391" CreationDate="2010-11-11T16:43:09.647" Score="17" ViewCount="" Body="&lt;p&gt;first, vet the interviewer - are they in a competing field? why are they interested in you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;second, refuse to answer any question that goes beyond the general/common knowledge of the field, on non-disclosure-agreement grounds (politely)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;third, expect some level of giving them 'free advice'; but cut it off after (say) 3-5 minutes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;fourth, take control of the interview as soon as you can, to make sure that your questions get answered. Since you are interviewing from a position of strength it is important that you understand how you might fit in the company culture, what would be expected of you, where they are at currently with their R&amp;amp;D efforts, and so on. You're interviewing them as much if not more than they are interviewing you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;good luck!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-11T16:43:09.647" CommentCount="4" />
  <row Id="18421" PostTypeId="1" AcceptedAnswerId="18535" CreationDate="2010-11-11T16:44:04.143" Score="6" ViewCount="152" Body="&lt;p&gt;I've got substantial J2EE experience, have worked with Grails, and am comfortable with several languages (Perl, PHP, Smalltalk). I've decided to try a new project using Ruby on Rails. For those who've decided to migrate to a new technology stack, how do you make the transition? Do you learn the details of Ruby first (I've done a few tutorials, and feel like I've got a decent enough grasp of the language to start doing some basic work) or do you do a full Ruby on Rails tutorial, and expand your knowledge from there. I'm leaning towards the latter approach because I feel like I can delve into details of the language as I encounter them. For those who work in Ruby on Rails, how did you learn, and which resources do you recommend?&lt;/p&gt;&#xA;" OwnerUserId="6894" LastActivityDate="2011-02-15T16:05:21.557" Title="Learning a new language and framework, should I spike a project, or first ground myself in the language fundamentals?" Tags="&lt;programming-languages&gt;&lt;learning&gt;" AnswerCount="5" FavoriteCount="2" />
  <row Id="18422" PostTypeId="2" ParentId="18421" CreationDate="2010-11-11T16:48:24.260" Score="2" ViewCount="" Body="&lt;p&gt;I learned Rails by going through the Agile Web Development with Rails book and immediately applied everything that I learned to a real web project. I ended up with a rather substantial application (mykidslibrary.com) and a deep understanding of the framework.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-11-11T16:48:24.260" />
  <row Id="18423" PostTypeId="2" ParentId="18421" CreationDate="2010-11-11T16:49:56.577" Score="2" ViewCount="" Body="&lt;p&gt;There's that saying that if you spend 10,000 hours at a task you'll become an expert.  So I'd say &quot;get coding!&quot;  If you've done the tutorial then write some code to scratch an itch or join an open source ruby on rails project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your employer is brave/trusts you - perhaps you can build a small but useful real world project as well.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-11T16:49:56.577" />
  <row Id="18424" PostTypeId="1" AcceptedAnswerId="18429" CreationDate="2010-11-11T16:53:40.553" Score="13" ViewCount="629" Body="&lt;p&gt;Back in 2006, one Joel Spolsky &lt;a href=&quot;http://www.joelonsoftware.com/items/2006/06/16.html&quot; rel=&quot;nofollow&quot;&gt;made the following comment&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Watching non-programmers trying to run&#xA;  software companies is like watching&#xA;  someone who doesn't know how to surf&#xA;  trying to surf.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Overall the article is a great read (definitely take the time to read through it). Out of curiosity, &lt;strong&gt;I would like to hear the experiences of folks here&lt;/strong&gt; who have seen programmers adopt the mantle and do a great (or rubbish) job, and the same for non-programmers who find themselves herding programmers (worse than herding cats I've heard).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, what is the concensus of opinion on this matter?&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-11T17:28:58.713" LastActivityDate="2010-12-18T17:56:55.693" Title="Can a non-programmer successfully run a software company?" Tags="&lt;management&gt;&lt;non-programmers&gt;&lt;programmers&gt;" AnswerCount="12" CommentCount="1" FavoriteCount="0" />
  <row Id="18425" PostTypeId="2" ParentId="18316" CreationDate="2010-11-11T16:55:31.503" Score="1" ViewCount="" Body="&lt;p&gt;if you try to compete on price, you are doomed. the difference in cost of living alone guarantees this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;worst-case scenario: your projects are outsourced and you are let go&lt;/p&gt;&#xA;&#xA;&lt;p&gt;best-case scenario: you have some specialized knowledge/skills so your part of the project cannot be outsourced...but now you have a bulls-eye on your back&lt;/p&gt;&#xA;&#xA;&lt;p&gt;typical-case scenario: your knowledge and experience are just valuable enough to keep you around...to manage the outsourced developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;probable scenario: nothing will change right away, while the bean-counters run the numbers (based on bad assumptions and no input from those involved). then you'll be surprised at work one morning (see scenarios above)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;my advice: forget about salary comparisons; start looking for another job, just in case.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-11T16:55:31.503" />
  <row Id="18427" PostTypeId="1" CreationDate="2010-11-11T16:58:09.107" Score="2" ViewCount="41" Body="&lt;p&gt;I'm creating a CMS and have lots of legacy code from other applications. I'm wondering should I bother providing other syndication formats except rss 2? I'm inclined to say no but was wondering what other peoples opinions were.&lt;/p&gt;&#xA;" OwnerUserId="7512" LastActivityDate="2010-11-11T17:00:18.840" Title="Syndication feeds and show I bother with providing anything other than RSS 2" Tags="&lt;cms&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="18428" PostTypeId="2" ParentId="18427" CreationDate="2010-11-11T17:00:18.840" Score="3" ViewCount="" Body="&lt;p&gt;I would say either RSS2 or Atom, pick one. Any modern reader should be able to handle either.&lt;/p&gt;&#xA;" OwnerUserId="3411" LastActivityDate="2010-11-11T17:00:18.840" CommentCount="1" />
  <row Id="18429" PostTypeId="2" ParentId="18424" CreationDate="2010-11-11T17:04:52.567" Score="21" ViewCount="" Body="&lt;p&gt;You can run a software company without being a programmer if and only if you have the intelligence to know that the best decision is sometimes not yours to make but rather the programmer's/technical advisor's job.  You'd be surprised how many already fail that test.  Of course, you also must have a decent technician or else rather than follow your bad decisions regarding the technical sector, you're simply following the bad decisions your hirelings made.  Just my 10 cents though.  ;)&lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-11T17:04:52.567" CommentCount="4" />
  <row Id="18430" PostTypeId="2" ParentId="18424" CreationDate="2010-11-11T17:05:59.117" Score="2" ViewCount="" Body="&lt;p&gt;I think if you understand a particular business domain, and the process of software development, you can absolutely run a software company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work for a great consulting company that is well run by non-technical people at the top.  They may not understand how to solve FizzBuzz, but they know about delivering business value, which is far more important.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-11-11T17:05:59.117" />
  <row Id="18431" PostTypeId="2" ParentId="18424" CreationDate="2010-11-11T17:09:35.663" Score="4" ViewCount="" Body="&lt;p&gt;Possible?  Sure.  However, just like any other business, some understanding of the technical aspects of the business are necessary to truly run it well (from the programmer's perspective).  That said, it requires a special kind of programmer to run a business.  That is: the shy, quite types need not apply.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can think of one non-programmer I know who I believe could successfully run a software company.  He's a damned good project manager in the field.  His background is in psychology and he's not very technical.  However, he posses that very important skill: the ability to learn.  Also, as Neil mentions, he knows how to delegate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, yes.  It's certainly possible for a non-programmer to run a software business, but requires a certain type of person.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-11-11T17:09:35.663" />
  <row Id="18433" PostTypeId="2" ParentId="14650" CreationDate="2010-11-11T17:20:07.497" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.thelastlecture.com/&quot; rel=&quot;nofollow&quot;&gt;The Last Lecture&lt;/a&gt; a book written by Randy Pausch the man behind Alice. It goes along with his last lecture &quot;Really Achieving your Childhood Dreams&quot;. Always gotta remember to be a Tigger.&lt;/p&gt;&#xA;" OwnerUserId="5292" LastEditorUserId="5292" LastEditorDisplayName="" LastEditDate="2010-11-12T15:52:31.363" LastActivityDate="2010-11-12T15:52:31.363" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="18435" PostTypeId="2" ParentId="18424" CreationDate="2010-11-11T17:31:43.367" Score="3" ViewCount="" Body="&lt;p&gt;When a company.group gets too large, then different skillsets are needed to manage the group. Far too often, people get promoted past the point where they are competent; this is called the &lt;a href=&quot;http://en.wikipedia.org/wiki/Peter_Principle&quot; rel=&quot;nofollow&quot;&gt;Peter Principle&lt;/a&gt;. Ballmer may have been a good developer, but he's a bad CEO. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-11T17:31:43.367" CommentCount="2" />
  <row Id="18436" PostTypeId="2" ParentId="18424" CreationDate="2010-11-11T17:32:06.563" Score="13" ViewCount="" Body="&lt;p&gt;One of the best higher-ups I ever had was a guy who had no experience whatsoever with software.  What distinguished him was that he knew what he didn't know, he knew where he could get information, advice, and good judgment, and he trusted his people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That meant he wasn't going to sign us up for deadlines we couldn't meet, because we'd tell him what a realistic schedule was.  He wasn't going to mess with how we worked, because he didn't know how software people worked best.  He sat there and set priorities (in consultation with people who'd have to get the work done), ran interference for us against office politics, and generally supported us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks, Jim.  We needed you.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-11T17:32:06.563" CommentCount="1" />
  <row Id="18437" PostTypeId="2" ParentId="18424" CreationDate="2010-11-11T17:37:00.413" Score="1" ViewCount="" Body="&lt;p&gt;Steve Jobs can't program...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He's doing pretty well.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-11T17:37:00.413" CommentCount="8" />
  <row Id="18438" PostTypeId="2" ParentId="18424" CreationDate="2010-11-11T17:39:49.787" Score="4" ViewCount="" Body="&lt;p&gt;I work at a software company.  The CEO is not a programmer.  Our flagship product is the industry leader.  I'd call that pretty successful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The missing piece is, there's a lot more to the company than just building the software.  Marketing, product management, installation work (it's an enterprise-class product), tech support, QA, etc.  The CEO is a businessman who knows the business side really well, and does a good job managing his domain.  He got a programmer who really knows what he's doing to be the VP of engineering, (my boss,) and he directs software development at a very high level only, basically telling my boss what the general direction of the product should be and leaving it up to us to implement it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, if my boss didn't have any experience as a programmer and he was the one running the coding, that would be a big mess.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-11-11T17:39:49.787" CommentCount="2" />
  <row Id="18439" PostTypeId="1" CreationDate="2010-11-11T17:44:17.947" Score="2" ViewCount="242" Body="&lt;p&gt;I work with open source software a lot and keep coming across weird and funny names for executables, variables, constants and etc. Currently I am wondering why CATALINA_HOME environment variable was named that way? I did a quick search on google with but nothing relative came up. My only guess is that it is named after the island of the shore of south California.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the related note, very often I find amusing and clever names used in open source programs. One of my favorites are &lt;strong&gt;slapd&lt;/strong&gt; and &lt;strong&gt;slurpd&lt;/strong&gt; executables of OpenLDAP suite. What are your favorite/noteworthy variable/executable names that you have seen in your programming career? Do you think it is OK to name your variables/executables this way, or would you rather see boring but clear names?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS. This is not really a programming question but I think it somewhat fits in here, according to faq.&lt;/p&gt;&#xA;" OwnerUserId="7513" LastActivityDate="2010-11-11T20:09:31.440" Title="Why is CATALINA_HOME named that way and other interesting program names" Tags="&lt;open-source&gt;&lt;variables&gt;" AnswerCount="2" CommentCount="3" />
  <row Id="18440" PostTypeId="2" ParentId="18424" CreationDate="2010-11-11T17:49:06.983" Score="4" ViewCount="" Body="&lt;p&gt;There are many, many programmers who would never be able to run a software company.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that Joel may have purposely overstated the idea to make the case that unless someone understands software development they will have a hard time running the company.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used to work for Symantec - it was traditionally a software company with a tech-savvy CEO.  The investors were never fond of it.  Then, around 2000, enter John W. Thompson - an IBM sales guy.  He did wonders for the stock price, but pretty much decimated the development side.  Since then not much development has taken place - mostly M&amp;amp;A with other development companies.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;John Thompson may be a great business leader, but he does not know much about software or developers or how to lead them.  Symantec is probably a lot larger than what the OP had in mind, but I think it reflects Joel's idea.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would not go so far as to say one has to be or had to have been a developer, but it is important to understand the activities and process of a software company.  The best I know of way to assure that is to have a development background.  That is probably the point Joel was trying to make with his statement, but I could be wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Running a company involves so many OTHER things aside from software development activities.  Being a developer or ex-developer does not prepare someone for running a software company - but it is one small part of a set of experiences that helps one be successful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, for me, it boils down to:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Do you see the developer/development group(s) as just another overhead/cost, or are they viewed as essential to the business?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="3439" LastEditorUserId="3439" LastEditorDisplayName="" LastEditDate="2010-11-11T18:52:40.810" LastActivityDate="2010-11-11T18:52:40.810" CommentCount="2" />
  <row Id="18441" PostTypeId="2" ParentId="18371" CreationDate="2010-11-11T17:55:47.407" Score="2" ViewCount="" Body="&lt;p&gt;A thing I did not see explicitly pointed out, is &quot;You know technology X very well, and it sounds very interesting.  Could you please explain it to me in five minutes?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you will most likely be expected to be able to &lt;em&gt;maintain&lt;/em&gt; the code eventually coming out of the new person, it is crucial that he or she is capable of explaining it to other programmers efficiently and well.  Consider it to be communication skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A thorough understanding is necessary to be able to meet any other developer on their skill level and communicate thoughts and ideas on their level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the person cannot communicate verbally, he or she most likely only write the code for the compiler, not for the maintainer.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-11T17:55:47.407" />
  <row Id="18442" PostTypeId="2" ParentId="18439" CreationDate="2010-11-11T17:57:49.157" Score="2" ViewCount="" Body="&lt;p&gt;Catalina is the code name for the &lt;a href=&quot;http://tomcat.apache.org/&quot; rel=&quot;nofollow&quot;&gt;Tomcat&lt;/a&gt; servlet implementation.  Home customarily refers to the root directory of a distribution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hence CATALINA_HOME refers to the Tomcat root.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-11T18:24:43.510" LastActivityDate="2010-11-11T18:24:43.510" CommentCount="2" />
  <row Id="18443" PostTypeId="2" ParentId="18371" CreationDate="2010-11-11T18:01:13.557" Score="2" ViewCount="" Body="&lt;p&gt;I agree with Steven about mentoring part. In fact I would say that you can ask him/her questions about what are his/her views on mentorship and how does (s)he go about it in different scenarios. Then evaluate based on the answer (you can get feedback from your boss if you feel like it or discuss the actual answers in the debrief).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also ask questions you would ask a peer, as the candidate should probably be able to solve or at least understand your work.&lt;/p&gt;&#xA;" OwnerUserId="7514" LastActivityDate="2010-11-11T18:01:13.557" CommentCount="1" />
  <row Id="18444" PostTypeId="1" AcceptedAnswerId="18447" CreationDate="2010-11-11T18:12:44.110" Score="6" ViewCount="341" Body="&lt;p&gt;There have been many questions with good answers about the role of a Software Architect (SA) on &lt;a href=&quot;http://stackoverflow.com/search?q=architect&quot;&gt;StackOverflow&lt;/a&gt; and &lt;a href=&quot;http://programmers.stackexchange.com/search?q=architect&quot;&gt;Programmers SE&lt;/a&gt;. I am trying to ask a slightly more focused question than those. The very definition of a SA is broad so for the sake of this question let's define a SA as follows:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A Software Architect guides the&#xA;  overall design of a project, gets&#xA;  involved with coding efforts, conducts&#xA;  code reviews, and selects the&#xA;  technologies to be used.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In other words, I am not talking about managerial rest and vest at the crest (further rhyming words elided) types of SAs. If I were to pursue any type of SA position I don't want to be away from coding. I might sacrifice some time to interface with clients and Business Analysts etc., but I am still technically involved and I'm not just aware of what's going on through meetings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With these points in mind, what should a SA bring to the table? Should they come in with a mentality of &quot;laying down the law&quot; (so to speak) and enforcing the usage of certain tools to fit &quot;their way,&quot; i.e., coding guidelines, source control, patterns, UML documentation, etc.? Or should they specify initial direction and strategy then be laid back and jump in as needed to correct the ship's direction?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on the organization this might not work. An SA who relies on TFS to enforce everything may struggle to implement their plan at an employer that only uses StarTeam. Similarly, an SA needs to be flexible depending on the stage of the project. If it's a fresh project they have more choices, whereas they might have less for existing projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some SA stories I have experienced as a way of sharing some background in hopes that answers to my questions might also shed some light on these issues:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;I've worked with an SA who code reviewed literally every single line of code of the team. The SA would do this for not just our project but other projects in the organization (imagine the time spent on this). At first it was useful to enforce certain standards, but later it became crippling. FxCop was how the SA would find issues. Don't get me wrong, it was a good way to teach junior developers and force them to think of the consequences of their chosen approach, but for senior developers it was seen as somewhat draconian.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;One particular SA was against the use of a certain library, claiming it was slow. This forced us to write tons of code to achieve things differently while the other library would've saved us a lot of time. Fast forward to the last month of the project and the clients were complaining about performance. The only solution was to change certain functionality to use the originally ignored approach despite early warnings from the devs. By that point a lot of code was thrown out and not reusable, leading to overtime and stress. Sadly the estimates used for the project were based on the old approach which my project was forbidden from using so it wasn't an appropriate indicator for estimation. I would hear the PM say &quot;we've done this before,&quot; when in reality they had not since we were using a new library and the devs working on it were not the same devs used on the old project.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The SA who would enforce the usage of DTOs, DOs, BOs, Service layers and so on for all projects. New devs had to learn this architecture and the SA adamantly enforced usage guidelines. Exceptions to usage guidelines were made when it was absolutely difficult to follow the guidelines. The SA was grounded in their approach. Classes for DTOs and all CRUD operations were generated via CodeSmith and database schemas were another similar ball of wax. However, having used this setup everywhere, the SA was not open to new technologies such as LINQ to SQL or Entity Framework.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I am not using this post as a platform for venting. There were positive and negative aspects to my experiences with the SA stories mentioned above. My questions boil down to:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What should an SA bring to the table?&lt;/li&gt;&#xA;&lt;li&gt;How can they strike a balance in their decision making?&lt;/li&gt;&#xA;&lt;li&gt;Should one approach an SA job (as defined earlier) with the mentality that they must enforce certain ground rules?&lt;/li&gt;&#xA;&lt;li&gt;Anything else to consider?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Thanks! I'm sure these job tasks are easily extended to people who are senior devs or technical leads, so feel free to answer at that capacity as well.&lt;/p&gt;&#xA;" OwnerUserId="7510" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:09:52.407" LastActivityDate="2010-11-16T15:09:52.407" Title="What should you bring to the table as a Software Architect?" Tags="&lt;job-definition&gt;&lt;architect&gt;&lt;software-craftsmanship&gt;" AnswerCount="4" CommentCount="8" FavoriteCount="2" />
  <row Id="18445" PostTypeId="2" ParentId="14650" CreationDate="2010-11-11T18:16:55.143" Score="7" ViewCount="" Body="&lt;p&gt;I can't believe no one mentioned this yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.paulgraham.com/articles.html&quot; rel=&quot;nofollow&quot;&gt;Paul Graham's writings&lt;/a&gt;, particularly:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.paulgraham.com/hp.html&quot; rel=&quot;nofollow&quot;&gt;Hacker and Painters&lt;/a&gt;  &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.paulgraham.com/opensource.html&quot; rel=&quot;nofollow&quot;&gt;What businesses can learn from Open Source&lt;/a&gt;  &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.paulgraham.com/gh.html&quot; rel=&quot;nofollow&quot;&gt;Great Hackers&lt;/a&gt;  &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.paulgraham.com/wealth.html&quot; rel=&quot;nofollow&quot;&gt;How to make wealth&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1747" LastActivityDate="2010-11-11T18:16:55.143" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="18446" PostTypeId="2" ParentId="18406" CreationDate="2010-11-11T18:17:18.793" Score="11" ViewCount="" Body="&lt;p&gt;Well, working in a language like JavaScript makes this quite obsolote, since an Array is a mix between a vector, a hash and a tree and can be used as a stack or queue. It is very unlikely you will ever need to or be able to implement a data structure in JavaScript that outperforms the Array class. This is also the case in PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Java OTOH, there's a difference. I suppose Java's standard library provides you about any datastructure your need. However:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You need to know and distinguish those datastructures and understand how they perform in different situations so that you'll be able to chose the right one.&lt;/li&gt;&#xA;&lt;li&gt;In Java, it is not absolutely unlikely you will eventually want to write your own implementation for a hashmap to get better speed in some very specific case (for example if the keys you want to handle fullfill some special constraints that allow optimization).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;When it comes to sorting algorithms, there isn't much need to know or understand them, because there's no need to ever implement one on your own. However, if such an algorithm is given to you, you should be able to understand and implement it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two things are certain:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You &lt;em&gt;can&lt;/em&gt; make a career as a programmer without relying on knowledge like this.&lt;/li&gt;&#xA;&lt;li&gt;It &lt;em&gt;most definitely&lt;/em&gt; won't hurt you to know them.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Data structures and algorithms are simply a thing, that is good to understand. And it is something extremely clear and formalized and thus quite trivial compared to the intricacies of application or systems engineering. They are just one small piece in the puzzle, but they are easy to grasp - if you're willing to invest some time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So no, you don't need them, but it would only be for &lt;em&gt;your benefit&lt;/em&gt; to know them.&lt;/p&gt;&#xA;" OwnerUserId="667" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-11T18:41:54.273" LastActivityDate="2010-11-11T18:41:54.273" CommentCount="1" />
  <row Id="18447" PostTypeId="2" ParentId="18444" CreationDate="2010-11-11T18:29:41.477" Score="6" ViewCount="" Body="&lt;p&gt;A Systems Architect should:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Specify the high-level architecture&lt;/li&gt;&#xA;&lt;li&gt;Participate in code reviews&lt;/li&gt;&#xA;&lt;li&gt;Approve technologies used&lt;/li&gt;&#xA;&lt;li&gt;Assist the developers in their coding effort&lt;/li&gt;&#xA;&lt;li&gt;Maintain and monitor the development schedule&lt;/li&gt;&#xA;&lt;li&gt;Produce SA artifacts, such as UML diagrams, Gantt charts and the like.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;SA's must know how to code, and should participate in some of the coding work, get their hands wet, so to speak.  This keeps them in touch with the gestalt of the development effort. As Uncle Bob Martin &lt;a href=&quot;http://www.hanselminutes.com/default.aspx?showID=189&quot; rel=&quot;nofollow&quot;&gt;once said&lt;/a&gt;, the Architect should do some of the coding himself, so that he can see the pain he is inflicting on others with his designs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The SA should have the last word on all design, technology and coding style decisions.  But, like all managers, the job of the SA is to clear the path for his people so they can be productive.  That means, for the most part, that the developers get to decide, at their level, how problems are to be solved.  It means that the SA keeps the pointy-haired bosses out of the developers' cubicles.  And it means that the SA pitches in to help, as needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like all human beings, SA's can and do make mistakes.  The good ones learn from those mistakes, and become better SA's.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-14T23:10:04.080" LastActivityDate="2010-11-14T23:10:04.080" CommentCount="1" />
  <row Id="18448" PostTypeId="2" ParentId="18444" CreationDate="2010-11-11T18:32:41.710" Score="3" ViewCount="" Body="&lt;p&gt;1 What should an SA bring to the table?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A thick skin&lt;/li&gt;&#xA;&lt;li&gt;Good negotiation skills&lt;/li&gt;&#xA;&lt;li&gt;A good understanding of the various software tiers (from whizzy AJAX goodness to low level networking I/O).  You don't necessarily be a hands on expert, but you're going to have make important decisions about what software should be executed at which layer(s).&lt;/li&gt;&#xA;&lt;li&gt;Willingness to get their hands dirty in the code, white paper designs just don't cut it.&lt;/li&gt;&#xA;&lt;li&gt;Encouragement of software craftsmanship - be the cheerleader for doing things the right way whenever possible and the best way given the limitations in other cases.  So things like source control, TDD, build and CI, coding DOJOs, code reviews, a good issue tracking system etc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;2 How can they strike a balance in their decision making?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Much of it depends on your team(s) and how capable they are.&lt;/li&gt;&#xA;&lt;li&gt;Your environment (you might be forced to use a particular vendor's product for example)&lt;/li&gt;&#xA;&lt;li&gt;Overall it's best not to be an ivory tower architect, be hands on, be part of the team - people will understand your decisions that way.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;3 Should one approach an SA job (as defined earlier) with the mentality that they must enforce certain ground rules?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Yes, things like version control and a build system are pretty darn important and developers need to use these.  However it's aways best to make them part of the solution.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There's lots more, I think there are going to be some really good answers coming through for this one.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-11T18:32:41.710" CommentCount="1" />
  <row Id="18449" PostTypeId="2" ParentId="18424" CreationDate="2010-11-11T18:33:27.247" Score="1" ViewCount="" Body="&lt;p&gt;Maybe Joel was talking about very small software vendors like FogCreak?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In bigger companies, the CEO rely on its VPs and I guess the CTO has the appropriate background. CEO with technical background can be an asset. But a great CEO should have better social skills than technicals if I had to choose.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-11T18:33:27.247" CommentCount="1" />
  <row Id="18450" PostTypeId="2" ParentId="18406" CreationDate="2010-11-11T18:34:54.020" Score="31" ViewCount="" Body="&lt;p&gt;If all you know how to do is write glue code, you may call yourself a code monkey.  Lots of glue code needs to be written and you can make a decent living as a code monkey.  To call yourself a Real Programmer &lt;sup&gt;TM&lt;/sup&gt; and be trusted when code needs to be written from scratch, you have to know algorithms, data structures, memory management, pointers, assembly language, etc. and understand how to use this knowledge to evaluate tradeoffs.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-15T00:12:29.547" LastActivityDate="2010-12-15T00:12:29.547" CommentCount="5" />
  <row Id="18451" PostTypeId="2" ParentId="18406" CreationDate="2010-11-11T18:37:05.307" Score="0" ViewCount="" Body="&lt;p&gt;You mention hashes, trees, stacks, queues and sorting algorithms.  Well, the technologies you've mentioned are mostly webpage and web-scripting related.  You should definitely understand trees at the very least, so you can work with the DOM well.  But if scripting is all you need to do, then you're probably OK.  You won't need most of the tools of the trade for a real programmer.  But that's because there's a big difference between the string-juggling that makes up most of Web scripting and what most of us consider &quot;writing programs.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work with hashes and trees practically on a daily basis, and stacks and queues less often but frequently enough.  Sorting is basically a solved problem; just about any language has a quicksort built into the standard library, a Sort method on basic collection types, etc, but you should know under what circumstances quicksort's performance can degrade severely and the right strategies to delay sorting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I didn't know these principles and how they work, I could probably hack up coding solutions that work, but they wouldn't be very good quality solutions.  They'd run slowly, be hard to read, and hard to modify, reuse or extend.  So if you want to learn to be a good programmer, you should definitely read up on your algorithms and data structures.  They'll really improve the quality of your code.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-11-11T18:37:05.307" />
  <row Id="18452" PostTypeId="2" ParentId="18406" CreationDate="2010-11-11T18:44:34.490" Score="1" ViewCount="" Body="&lt;p&gt;You may well be a good programmer&#xA;   right now, but knowledge of Data&#xA;   Structure, Algorithms and knowledge&#xA;   of other topics in computer science&#xA;   would certainly help a lot in&#xA;   improving yourself in many ways:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;You may be able&#xA;to be more effective and faster at&#xA;doing things. Even folks who already&#xA;have a Computer Science degree and&#xA;know a lot of these topics would tend&#xA;to keep themselves abreast with&#xA;latest advances in order to improve&#xA;themselves.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;This knowledge will also be good for,&#xA;if upto a lesser extent, say if you&#xA;move from programmer to management&#xA;track later, because you would still&#xA;be able to understand the technical&#xA;aspects of projects better with this&#xA;knowledge.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Of course data structure and&#xA;algorithms are asked a lot in&#xA;interviews, so that is one more&#xA;reason why it might be useful to know&#xA;them.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7514" LastActivityDate="2010-11-11T18:44:34.490" />
  <row Id="18453" PostTypeId="2" ParentId="18424" CreationDate="2010-11-11T19:18:35.613" Score="1" ViewCount="" Body="&lt;p&gt;Yes, if the owner/CEO can delegate, and rely on his technical people to handle that end of things.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the owner/CEO is a micromanager, and insists on making technical decsions they are not equipped to make, no, they are bound to fail.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-11T19:18:35.613" />
  <row Id="18454" PostTypeId="1" AcceptedAnswerId="18459" CreationDate="2010-11-11T19:20:34.907" Score="25" ViewCount="1018" Body="&lt;p&gt;I've often written this sort of function in both formats, and I was wondering if one format is preferred over another, and why. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public void SomeFunction(bool someCondition)&#xA;{&#xA;    if (someCondition)&#xA;    {&#xA;        // Do Something&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public void SomeFunction(bool someCondition)&#xA;{&#xA;    if (!someCondition)&#xA;        return;&#xA;&#xA;    // Do Something&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I usually code with the first one since that is the way my brain works while coding, although I think I prefer the 2nd one since it takes care of any error handling right away and I find it easier to read&lt;/p&gt;&#xA;" OwnerUserId="1130" LastEditorUserId="2471" LastEditorDisplayName="" LastEditDate="2010-11-11T19:26:16.403" LastActivityDate="2011-02-18T13:50:48.883" CommunityOwnedDate="2011-02-18T13:21:55.827" Title="Code Style - Do you prefer to return from a function early or just use an IF statement?" Tags="&lt;holy-war&gt;&lt;style-guide&gt;" AnswerCount="19" CommentCount="6" FavoriteCount="5" />
  <row Id="18455" PostTypeId="2" ParentId="14650" CreationDate="2010-11-11T19:22:21.210" Score="1" ViewCount="" Body="&lt;p&gt;Marvin Minsky&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Computation: Finite and Infinite Machines&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Semantic Information Processing&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-11-11T19:22:21.210" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="18456" PostTypeId="2" ParentId="18454" CreationDate="2010-11-11T19:22:28.870" Score="1" ViewCount="" Body="&lt;p&gt;I would prefer to write:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(someCondition)&#xA;{&#xA;    SomeFunction();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-11T19:22:28.870" CommunityOwnedDate="2011-02-18T13:21:55.827" CommentCount="7" />
  <row Id="18457" PostTypeId="2" ParentId="18454" CreationDate="2010-11-11T19:26:39.947" Score="0" ViewCount="" Body="&lt;p&gt;Early returns for-the-win.  They can seem ugly, but much less ugly than big &lt;code&gt;if&lt;/code&gt; wrappers, especially if there's multiple conditions to check.&lt;/p&gt;&#xA;" OwnerUserId="5828" LastActivityDate="2010-11-11T19:26:39.947" CommunityOwnedDate="2011-02-18T13:21:55.827" />
  <row Id="18458" PostTypeId="2" ParentId="18454" CreationDate="2010-11-11T19:26:58.357" Score="4" ViewCount="" Body="&lt;p&gt;Personally, I prefer to do pass/fail condition checks at the beginning.  That allows me to group most of the most common failures at the top of the function with the rest of the logic to follow.&lt;/p&gt;&#xA;" OwnerUserId="7518" LastActivityDate="2010-11-11T19:26:58.357" CommunityOwnedDate="2011-02-18T13:21:55.827" />
  <row Id="18459" PostTypeId="2" ParentId="18454" CreationDate="2010-11-11T19:27:44.483" Score="68" ViewCount="" Body="&lt;p&gt;I prefer the second style.  Get invalid cases out of the way first, either simply exiting or raising exceptions as appropriate, put a blank line in there, then add the &quot;real&quot; body of the method.  I find it easier to read.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-11-11T19:27:44.483" CommunityOwnedDate="2011-02-18T13:21:55.827" CommentCount="13" />
  <row Id="18461" PostTypeId="2" ParentId="18454" CreationDate="2010-11-11T19:31:37.763" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It depends&lt;/strong&gt; - In general I am not going to go out of my way to try and move a bunch of code around to break out of the function early - the compiler will generally take care of that for me. That said though, if there are some basic parameters at the top that I need and can't continue otherwise, I will breakout early. Likewise, if a condition generates a giant &lt;code&gt;if&lt;/code&gt; block in function I will have it breakout early as a result of that as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said though, if a function requires some data when it is called, I'm usually going to be throwing an exception (see example) as opposed to just returning.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public int myFunction(string parameterOne, string parameterTwo) {&#xA;  // Can't work without a value&#xA;  if (string.IsNullOrEmpty(parameterOne)) {&#xA;    throw new ArgumentNullException(&quot;parameterOne&quot;);&#xA;  } &#xA;  if (string.IsNullOrEmpty(parameterTwo)) {&#xA;    throw new ArgumentNullException(&quot;parameterTwo&quot;);&#xA;  }&#xA;&#xA;  // ...      &#xA;  // Do some work&#xA;  // ...&#xA;&#xA;  return value;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-11-11T19:31:37.763" CommunityOwnedDate="2011-02-18T13:21:55.827" CommentCount="2" />
  <row Id="18462" PostTypeId="2" ParentId="18421" CreationDate="2010-11-11T19:33:19.510" Score="0" ViewCount="" Body="&lt;p&gt;A crucial part of any project is the purpose it is aimed to satisfy. If you are just reading about a language or copying some program, the purpose isn't there, and it's just like painting by numbers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Choose a project of your own initiative (though you can get ideas from others), not a big one, and tackle that. That way all parts of your brain will be engaged, you'll have fun, and everything you learn will be grounded in a purpose.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-11-11T19:33:19.510" />
  <row Id="18463" PostTypeId="2" ParentId="16867" CreationDate="2010-11-11T19:34:16.937" Score="0" ViewCount="" Body="&lt;p&gt;C++ is the more flexible and offers a deeper of understanding. Unquestionably, you will gain more from C++ than from Java. C++ is also harder, because it's more complex.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, C++ jobs are not nearly as common as Java jobs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java and its descendant, C#, are the standard solutions for the enterprise/corporate big-iron coding space. I strongly recommend learning one of the two in your second year and being very comfortable with that one by the time you finish your degree. It will let you get jobs &lt;em&gt;much&lt;/em&gt; easier. That does not mean I think those jobs have significant intellectual interest on average. I made a pass through craigslist software jobs in the Rocky Mountains recently and most of the jobs were C#/Java and related to what is termed &quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Create,_read,_update_and_delete&quot; rel=&quot;nofollow&quot;&gt;CRUD&lt;/a&gt;&quot; software; IMO that's very boring. &lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-11T19:34:16.937" />
  <row Id="18464" PostTypeId="2" ParentId="18444" CreationDate="2010-11-11T19:34:40.103" Score="2" ViewCount="" Body="&lt;p&gt;1.What should an SA bring to the table?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Should they come in with a mentality of 'laying down the law' ... Or should they specify initial direction and strategy then be laid back and jump in as needed to correct the ship's direction?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A combination of both I would say. When deciding on technologies and processes, being open to opinions and suggestions can give valuable feedback/input on decisions and cause you to learn from others. Your team is (hopefully) smart; take advantage of that. But once a decision (your decision) is made, the law has been laid. Identify those who will complain about whatever wasn't their choice, and those that will just choose anything and don't care - and then ignore them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as technologies: work with what you've got, if the company uses StarTeam then that's what you use. Marrying yourself to any particular product/technology/process isn't going to do anything for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2.How can they strike a balance in their decision making?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Listening to the team and knowing when they are right &lt;em&gt;and&lt;/em&gt; wrong is important, and having the cojones to tell them that they're wrong and stick to your decision. Not listening will bring a lack of respect, as will flopping around on your decisions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3.Should one approach an SA job (as defined earlier) with the mentality that they must enforce certain ground rules?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Always. If not, then the inmates will end up running the asylum, overtly or covertly. Deciding on those ground rules however, can be through talk with the team. Remember that any team may not always have the same members that it has now, so making concessions for a small group of them may hinder the team in the future once they're gone. That includes the SA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4.Anything else to consider?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In reference to your second example: It seems that the project team formed a tightly coupled dependence on an in-house subsystem. Loosely coupled facades aren't just for third party code. Creating an abstraction for that subsystem could have allowed an easier transition to using that library if the in-house solution failed. This is a logical solution for a software architect alone, but also being a form of Project Manager with the team expression concerns, it should have doubly so been an obvious solution.&lt;/li&gt;&#xA;&lt;li&gt;In reference to your third example: It's not a bad idea to have a known architecture or process for producing software (though, admittedly, you did say 'all projects'). This is sticking to what works. With that said, there needs to be opportunities where new techniques can be attempted to see if they bring additional value. In-house-only software, or smaller-scope projects where these technologies can be attempted are ideal places. Keep in mind though, that the onus is also on the developer(s) to provide researched and convincing demonstrations/arguments for adopting technologies. And SA can't be expected to know every competing ORM and its strengths and weaknesses compared to the others.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-11T19:34:40.103" />
  <row Id="18465" PostTypeId="2" ParentId="18454" CreationDate="2010-11-11T19:37:56.557" Score="0" ViewCount="" Body="&lt;p&gt;As others say, it depends. For little functions that return values, I may code early returns.&#xA;But for sizeable functions, I like to always have a place in the code where I know I can put something that will get executed before it returns.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-11-11T19:37:56.557" CommunityOwnedDate="2011-02-18T13:21:55.827" />
  <row Id="18466" PostTypeId="2" ParentId="18454" CreationDate="2010-11-11T19:38:08.990" Score="0" ViewCount="" Body="&lt;p&gt;I practice fail-fast at the function level. It keeps code consistent and clean (to me and those I've worked with). Because of that I always return early. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For some oft-checked conditions, you can implement aspects for those checks if you use AOP.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-11T19:38:08.990" CommunityOwnedDate="2011-02-18T13:21:55.827" />
  <row Id="18467" PostTypeId="2" ParentId="18454" CreationDate="2010-11-11T19:40:13.467" Score="1" ViewCount="" Body="&lt;p&gt;A classic reason for single-entry-single-exit is that otherwise the formal semantics become unspeakably ugly otherwise (same reason GOTO was considered harmful).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Put another way, it's easier to reason about when your software will exit the routine if you have only 1 return. Which is also an argument against exceptions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Typically I minimize the early-return approach.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-11T19:40:13.467" CommunityOwnedDate="2011-02-18T13:21:55.827" CommentCount="7" />
  <row Id="18468" PostTypeId="2" ParentId="16618" CreationDate="2010-11-11T19:40:44.633" Score="1" ViewCount="" Body="&lt;p&gt;I actually don't think of any, but it might be because none of the stuff listed in other answers or even previous papers really seem &quot;harmful&quot; to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A gun looks harmful. A MOMD looks pretty harmful. Their intent is to be. A development process, tool, technique or language do not look harmful. Because their intent has never been to be. They're only artifacts that morons use the wrong way or in wrong situations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't use goto in day-to-day programming and would indeed be breathing down the neck of any coder who would use some in a project I work on to force him to tell how in hell that thing could have been useful there (and in some case, it can), and I will encourage the use of static checkers and linters to oppose to the use of some constructs and patterns, but if a bypass is needed, I'll grant the exception with grace.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, when an idiot manages to kill himself driving a fast car because he cannot drive, it's not the car which is harmful. It's the moron, and the people who don't did not regulate and enforce the regulations on the conditions of use. Basically, if my company's projects get crippled by &quot;harmful&quot; constructs, it's not the constructs fault: it's mine. They still have their uses in some situations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Same with people who manage to burn themselves pouring coffee. I won't blame the kettle, the hot water, the coffee, the coffee maker, or mother nature. The only element of failure here I can see is pretty obvious, and we cannot remove him or her either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end I don't see any harmful constructs, tools, patterns, techniques, languages and processes. I see situations, and iterations of these items which tend to improve them.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Dicing stuff for being harmful and contriving your mind into thinking about things in terms of what can be damaging, that's the harmful thing. It's a lack of open-mind thingy.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-11-11T19:40:44.633" CommunityOwnedDate="2011-04-14T16:13:04.920" />
  <row Id="18469" PostTypeId="2" ParentId="4693" CreationDate="2010-11-11T19:46:24.423" Score="0" ViewCount="" Body="&lt;p&gt;There are good answers here.&#xA;My take on it is that every field has leaders, who are aped, often unconsciously, by generations of followers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I went through grad school at the MIT AI Lab.&#xA;It's not obvious when you're in it, but it's obvious from the outside, that in addition to the thrill of working with great people and great ideas, arrogance was in the very air we breathed.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-11-11T19:51:52.750" LastActivityDate="2010-11-11T19:51:52.750" CommunityOwnedDate="2010-11-11T19:46:24.423" />
  <row Id="18470" PostTypeId="2" ParentId="18439" CreationDate="2010-11-11T20:02:05.980" Score="3" ViewCount="" Body="&lt;p&gt;I believe it comes as a result of thinking about your applications home directory, which may in turn have been influenced by Unix home directories before that. Typical examples are&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;JAVA_HOME for the JDK installation directory&lt;/li&gt;&#xA;&lt;li&gt;MAVEN_HOME for the Maven installation directory&lt;/li&gt;&#xA;&lt;li&gt;ANT_HOME &lt;/li&gt;&#xA;&lt;li&gt;CATALINA_HOME because the &lt;a href=&quot;http://en.wikipedia.org/wiki/Apache_Tomcat#Catalina&quot; rel=&quot;nofollow&quot;&gt;project name for the servlet engine within the overall Tomcat project was called Catalina&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As a general convention for naming environment variables, the _HOME suffix has stood the test of time and so has become generally adopted for new projects that require them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of my personal favourite names, here's a short list&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;grep (global regular expression print) is synonymous with search among *nixers&lt;/li&gt;&#xA;&lt;li&gt;awk (&lt;a href=&quot;http://en.wikipedia.org/wiki/AWK&quot; rel=&quot;nofollow&quot;&gt;named after the programmers&lt;/a&gt;) is great for awkward text manipulation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For more Unix weirdness &lt;a href=&quot;http://www.csd.uwo.ca/staff/magi/personal/humour/Computer_Audience/Funny%20UNIX%20Shell%20Commands.html&quot; rel=&quot;nofollow&quot;&gt;have a look at this article&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-11T20:09:31.440" LastActivityDate="2010-11-11T20:09:31.440" />
  <row Id="18471" PostTypeId="2" ParentId="17355" CreationDate="2010-11-11T20:03:46.760" Score="1" ViewCount="" Body="&lt;p&gt;This is a bit over 60 characters but it really depends on variable naming (so I'm including it!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;let readLines (rdr : StreamReader) =&#xA;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#xA;          seq { while not rdr.EndOfStream do&#xA;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#xA;&amp;nbsp;yield rdr.ReadLine()}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nice little function to read a file into a sequence line by line in F#.&lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-11-11T20:03:46.760" CommunityOwnedDate="2010-12-03T10:46:42.217" />
  <row Id="18472" PostTypeId="2" ParentId="18454" CreationDate="2010-11-11T20:04:19.940" Score="0" ViewCount="" Body="&lt;p&gt;Like you, I usually write the first one, but prefer the last one.&#xA;If i have a lot of nested checks i usually refactor to the second method. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't like how the error handling is moved away from the check.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if not error A&#xA;  if not error B&#xA;    if not error C&#xA;      // do something&#xA;    else handle error C&#xA;  else handle error B&#xA;else handle error A&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I prefer this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if error A&#xA;  handle error A; return&#xA;if error B&#xA;  handle error B; return&#xA;if error C&#xA;  handle error C; return&#xA;&#xA;// do something&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="7522" LastActivityDate="2010-11-11T20:04:19.940" CommunityOwnedDate="2011-02-18T13:21:55.827" />
  <row Id="18473" PostTypeId="2" ParentId="18454" CreationDate="2010-11-11T20:11:19.853" Score="10" ViewCount="" Body="&lt;p&gt;Definitely the latter.  The former doesn't look bad right now, but when you get more complex code, I can't imagine anyone would think this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public int SomeFunction(bool cond1, string name, int value, AuthInfo perms)&#xA;{&#xA;    int retval=SUCCESS;&#xA;    if (someCondition)&#xA;    {&#xA;        if(name != null &amp;amp;&amp;amp; name != &quot;&quot;)&#xA;        {&#xA;            if(value != 0)&#xA;            {&#xA;                if(perms.allow(name)&#xA;                {&#xA;                    // Do Something&#xA;                }&#xA;                else&#xA;                {&#xA;                    reval=PERM_DENY;&#xA;                }&#xA;            }&#xA;            else&#xA;            {&#xA;                retval=BAD_VALUE;&#xA;            }&#xA;        }&#xA;        else&#xA;        {&#xA;            retval=BAD_NAME;&#xA;        }&#xA;    }&#xA;    else&#xA;    {&#xA;        retval=BAD_COND;&#xA;    }&#xA;}&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;is more readable than&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public int SomeFunction(bool cond1, string name, int value, AuthInfo perms)&#xA;{&#xA;    int retval=SUCCESS;&#xA;    if (!someCondition)&#xA;    {&#xA;        return BAD_COND;&#xA;    }&#xA;    if(name == null || name == &quot;&quot;)&#xA;    {&#xA;        return BAD_NAME;&#xA;    }&#xA;    if(value != 0)&#xA;    {&#xA;        return BAD_VALUE;&#xA;    }&#xA;    if( !perms.allow(name))&#xA;    {&#xA;        return PERM_DENY;&#xA;    }&#xA;    // do something&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I fully admit I never understood the advantage of single exit points.&lt;/p&gt;&#xA;" OwnerUserId="6989" LastEditorUserId="6180" LastEditorDisplayName="" LastEditDate="2011-02-18T13:50:48.883" LastActivityDate="2011-02-18T13:50:48.883" CommunityOwnedDate="2011-02-18T13:21:55.827" CommentCount="9" />
  <row Id="18474" PostTypeId="2" ParentId="16788" CreationDate="2010-11-11T20:14:20.973" Score="8" ViewCount="" Body="&lt;p&gt;The abbreviated form &lt;em&gt;char&lt;/em&gt;, short for &lt;em&gt;character&lt;/em&gt; can be pronounced in several different ways in American English: here's how you represent the various pronunciations in American English using the &lt;a href=&quot;http://en.wikipedia.org/wiki/Wikipedia%3aIPA_for_English&quot; rel=&quot;nofollow&quot;&gt;International Phonetic Alphabet&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;em&gt;char&lt;/em&gt; as in &lt;em&gt;&lt;b&gt;char&lt;/b&gt;-broiled:&lt;/em&gt; /tʃɑr/&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;char&lt;/em&gt; as in &lt;em&gt;&lt;b&gt;car&lt;/b&gt;:&lt;/em&gt; /kɑr/&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;char&lt;/em&gt; as in &lt;em&gt;&lt;b&gt;char&lt;/b&gt;acter:&lt;/em&gt; /kær/&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;char&lt;/em&gt; as in &lt;em&gt;&lt;b&gt;care&lt;/b&gt;:&lt;/em&gt; /kɛr/&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;For many speakers of American English (including myself), the /æ/ sound before /r/ is merged with the /ɛ/ sound. That is, the words &lt;em&gt;marry&lt;/em&gt; and &lt;em&gt;merry&lt;/em&gt; are pronounced the same. For these people, #3 and #4 are indistinguishably pronounced like #4. People with this merger are often confused if someone else tries to explain the distinction between #3 and #4.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have heard all these forms used and as a descriptivist, I would make no attempt to declare any as “correct”. Each has different arguments for and against, which I will enumerate below.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;This form has the advantage of being “obvious”—that is, it is pronounced the way a naïve pronunciation of an unknown English word would be pronounced. It is also how the unrelated but identically spelled verb &lt;em&gt;char&lt;/em&gt; is pronounced. On the downside, it preserves neither the initial /k/ sound nor the vowel of the word the abbreviation is derived from, &lt;em&gt;character&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;This form maintains the initial /k/ sound from &lt;em&gt;character&lt;/em&gt; but is otherwise pronounced as spelled. It does not preserve the vowel from &lt;em&gt;character&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;This form maintains both the initial /k/ sound and the vowel from &lt;em&gt;character&lt;/em&gt;. It is the most faithful to the source word. On the downside, /ær/ is not a phonotactically valid way for a word to end. The sequence /ær/ is only possible if there are additional vowels, as in &lt;em&gt;marry&lt;/em&gt; or &lt;em&gt;character&lt;/em&gt;. That is, if you say /kær/ as an independent word it is a violation of the normal phonotactic constraints of spoken English. Furthermore, it is a completely non-obvious pronunciation if you don’t already know that &lt;em&gt;char&lt;/em&gt; is short for &lt;em&gt;character&lt;/em&gt; and how &lt;em&gt;character&lt;/em&gt; is pronounced.&lt;/li&gt;&#xA;&lt;li&gt;This form is very similar to #3, being quite faithful to the underlying form, but with the advantage of not violating the phonotactic constraint against words ending in /ær/. For people with the &lt;i&gt;marry&lt;/i&gt;–&lt;i&gt;merry&lt;/i&gt; merger, it is not actually perceived to be different from #3 at all. On the downside, it is a completely non-obvious pronunciation if you don’t already know that &lt;em&gt;char&lt;/em&gt; is short for &lt;em&gt;character&lt;/em&gt; and how &lt;em&gt;character&lt;/em&gt; is pronounced. Also, if you do distinguish #3 and #4, then #4 does not actually have the same vowel as &lt;em&gt;character&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Each possible pronunciation has its own set of advantages and disadvantages, which is why there is a diversity of pronunciation in the field—there is no form that is clearly better than all the others. Furthermore, the different possibilities are bound up in a dialectical difference that most speakers of American English are unaware of, so when discussions of how to pronounce &lt;em&gt;char&lt;/em&gt; come up, often two people are talking about dialectical differences when what they think they are talking about is a lexical difference.&lt;/p&gt;&#xA;" OwnerUserId="983" LastEditorUserId="983" LastEditorDisplayName="" LastEditDate="2010-11-11T20:20:59.010" LastActivityDate="2010-11-11T20:20:59.010" CommentCount="1" />
  <row Id="18475" PostTypeId="2" ParentId="18454" CreationDate="2010-11-11T20:18:03.870" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Use an If&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Don Knuth's book about GOTO's I read him give a reason for always having the most likely condition come first in an if statement. Under the assumption that this is still a reasonable idea (and not one out of pure consideration for the speed of the era). I'd say early returns aren't good programming practice, especially considering the fact that they're more often than not used for error handling, unless your code is more likely to fail than not fail :-) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you follow the above advice, you'd need to put that return at the bottom of the function, and then you might as well not even call it a return there, just set the error code and return it two lines hence. Thereby achieving the 1 entry 1 exit ideal.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Delphi Specific...&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm of the mind that this is a good programming practice for Delphi programmers, although I don't have any proof.  Pre-D2009, we don't have an atomic way to return a value, we have &lt;code&gt;exit;&lt;/code&gt; and &lt;code&gt;result := foo;&lt;/code&gt; or we could just throw exceptions.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you had to substitute&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (true) {&#xA; return foo;&#xA;} &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;for &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if true then &#xA;begin&#xA;  result := foo; &#xA;  exit; &#xA;end;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;you might just get sick of seeing that at the top of every one of your functions and prefer&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if false then &#xA;begin&#xA;  result := bar;&#xA;&#xA;   ... &#xA;end&#xA;else&#xA;   result := foo;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and just avoid &lt;code&gt;exit&lt;/code&gt; altogether. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2010-11-11T22:14:38.030" LastActivityDate="2010-11-11T22:14:38.030" CommunityOwnedDate="2011-02-18T13:21:55.827" />
  <row Id="18476" PostTypeId="2" ParentId="18454" CreationDate="2010-11-11T20:22:27.887" Score="2" ViewCount="" Body="&lt;p&gt;It depends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Early return if there is some obvious dead end condition to check for right away that would make running the rest of the function pointless.*&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Set Retval + single return if the function is more complex and could have multiple exit points otherwise (readability issue).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*&lt;em&gt;This can often indicate a design problem. If you find that a lot of your methods need to check some external/paramater state or such before running the rest of the code, that's probably something that should be handled by the caller.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-11T20:22:27.887" CommunityOwnedDate="2011-02-18T13:21:55.827" CommentCount="3" />
  <row Id="18477" PostTypeId="2" ParentId="18381" CreationDate="2010-11-11T20:25:16.267" Score="1" ViewCount="" Body="&lt;p&gt;Edited in response to comment&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I first got into JUnit I purchased the JUnit in Action book which covered JUnit3 very well indeed. All of the important aspects of JUnit (at the time) were covered and a lot of the wider issues surrounding test driven development were also mentioned. Skip ahead a few years and JUnit4 is released, and along with it &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1935182021&quot; rel=&quot;nofollow&quot;&gt;a second edition of the JUnit in Action&lt;/a&gt; series.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't personally own a copy of this book (I went with the online documentation approach) but given that it has a 5 star review on Amazon.co.uk and it's an iteration of a previously excellent reference, I'm willing to recommend it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I have to agree with @FarmBoy here. If you have experience with JUnit3 then you can just hop straight on over to JUnit4 with hardly a look over your shoulder.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However. here is an article that &lt;a href=&quot;http://www.devx.com/Java/Article/31983/1763/page/2&quot; rel=&quot;nofollow&quot;&gt;illustrates the differences in the code&lt;/a&gt; you can expect to see. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you can see, it's all annotations in JUnit4 and no need to inherit from TestCase any more.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-12T19:35:24.170" LastActivityDate="2010-11-12T19:35:24.170" CommentCount="4" />
  <row Id="18478" PostTypeId="1" CreationDate="2010-11-11T20:27:08.290" Score="5" ViewCount="297" Body="&lt;p&gt;I hear it's another Europe vs. America dispute, just like with &quot;router&quot;. Some other time I hear tuh-ple is specific to Python (and possibly some other languages too) while in mathematics and CS it's &quot;toople&quot; on all continents. What do you know about this?&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-12T13:58:55.407" Title="Tuple: toople or tuh-ple?" Tags="&lt;terminology&gt;" AnswerCount="7" CommentCount="15" />
  <row Id="18479" PostTypeId="2" ParentId="487" CreationDate="2010-11-11T20:28:16.183" Score="2" ViewCount="" Body="&lt;p&gt;Before designing a programming language, I would find a good answer to the question: why do we need yet another programming language? &lt;a href=&quot;http://rosettacode.org/wiki/Main_Page&quot; rel=&quot;nofollow&quot; title=&quot;Rosetta Code&quot;&gt;Rosetta Code&lt;/a&gt; at the time of this writing lists 344 languages. If none of those met my needs, the specifics of why they didn't would determine the starting point (languages that come the closest) and what would be added to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I won the lottery and for some reason had nothing better to do, I would start with Liskell and make it a full-fledged language as opposed to a GHC front-end, then make FFI easier (and automated) so I could use any C/C++ library.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-11T20:28:16.183" />
  <row Id="18480" PostTypeId="1" CreationDate="2010-11-11T20:31:54.010" Score="2" ViewCount="281" Body="&lt;p&gt;What do you find more valued on a Resume?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;MCPD certification (Or any certification) or a Degree in Comp Sci?  And why?&lt;/p&gt;&#xA;" OwnerUserId="7523" LastActivityDate="2010-11-11T23:49:44.573" Title="MCPD Certification(or any certification) vs Degree" Tags="&lt;career&gt;" AnswerCount="6" />
  <row Id="18481" PostTypeId="2" ParentId="18478" CreationDate="2010-11-11T20:33:35.333" Score="2" ViewCount="" Body="&lt;p&gt;I usually pronounce it the same way you pronounce it when it's part of the larger words from which it was derived.  Remember that girl who had 8 babies at once, who was all over the news a while back?  Ever hear anyone call them oc-toop-lets?  Nope, me neither.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-11-11T20:33:35.333" CommentCount="1" />
  <row Id="18482" PostTypeId="2" ParentId="13731" CreationDate="2010-11-11T20:38:31.520" Score="0" ViewCount="" Body="&lt;p&gt;15&quot; laptop + 2 24&quot; screens boosted my productivity definitely.&lt;/p&gt;&#xA;" OwnerUserId="1150" LastActivityDate="2010-11-11T20:38:31.520" />
  <row Id="18483" PostTypeId="2" ParentId="18003" CreationDate="2010-11-11T20:39:59.333" Score="0" ViewCount="" Body="&lt;p&gt;I probably won't use it, so the thing I will probably remember it by is a category in its comparison to other java languages page (http://gosu-lang.org/comparison.shtml).&#xA;Not lisp.&lt;/p&gt;&#xA;" OwnerUserId="6433" LastActivityDate="2010-11-11T20:39:59.333" />
  <row Id="18484" PostTypeId="2" ParentId="18478" CreationDate="2010-11-11T20:40:50.940" Score="1" ViewCount="" Body="&lt;p&gt;I've only seen &quot;tuple&quot; in programming-related discussions.  It seemed right to pronounce it &quot;toople&quot;, and &quot;tuhple&quot; just sounds odd.&lt;/p&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-11-11T20:40:50.940" CommentCount="1" />
  <row Id="18485" PostTypeId="2" ParentId="18480" CreationDate="2010-11-11T20:41:35.997" Score="0" ViewCount="" Body="&lt;p&gt;Neither tells me anything useful about a potential candidate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I look at a resume, I want to see a breadth and depth of professional experience. I want to see that the candidate isn't a one-trick pony who can only work with one language or one framework or one type of application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like to see that he or she is working on open source projects on the side. Ideally, the open source work is being done with technologies that are different than those used professionally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I try to find something on the resume that says to me: this candidate is passionate about software and software engineering; that this candidate cares and is interested in this career for more than just a paycheck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everything is details and is to some degree negotiable. I'll let the right candidate take a month of my time to learn technologies that they need for the job if I think that he or she is a real ringer.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastEditorUserId="6393" LastEditorDisplayName="" LastEditDate="2010-11-11T20:49:15.117" LastActivityDate="2010-11-11T20:49:15.117" />
  <row Id="18486" PostTypeId="2" ParentId="18212" CreationDate="2010-11-11T20:43:02.590" Score="0" ViewCount="" Body="&lt;p&gt;It can certainly be a Pain, trying to keep up to date with the latest releases of books. To that end i would suggest you try something like Sarari online or books24x7.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are subscription based services so they do cost $$$, however, if you look at how many books you buy in the course of a year it might prove beneficial. Even better if you can get your company to purchase it on your behalf.&lt;/p&gt;&#xA;" OwnerUserId="4960" LastActivityDate="2010-11-11T20:43:02.590" />
  <row Id="18487" PostTypeId="2" ParentId="18454" CreationDate="2010-11-11T20:44:45.413" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I prefer the early return.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have one entry point and one exit point then you always have to track the entire code in your head all the way down to the exit point (you never know if some other piece of code bellow does something else to the result, so you have to track it up until the exist). You do that no mater which branch determines the final result. This is hard to follow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With one entry and multiple exists, you return when you have your result and don't bother tracking it all the way down to see that nobody does anything else to it (because there won't be anything else since you returned). It's like having the method body split into more steps, which each step with the possibility to return the result or let the next step try its luck.&lt;/p&gt;&#xA;" OwnerUserId="7197" LastEditorUserId="7197" LastEditorDisplayName="" LastEditDate="2010-11-11T20:50:29.477" LastActivityDate="2010-11-11T20:50:29.477" CommunityOwnedDate="2011-02-18T13:21:55.827" />
  <row Id="18488" PostTypeId="2" ParentId="18480" CreationDate="2010-11-11T20:47:51.340" Score="4" ViewCount="" Body="&lt;p&gt;I find &lt;strong&gt;experience&lt;/strong&gt; more valuable. I might lean more towards a CS degree (probably more so), or I may lean more towards a certificate holder with experience under their belt. For an entry-level position a degree is likely to be considered the minimum requirement to be considered at most places of employment. On the other hand I've seen people without a degree do fine for themselves in contracting/consulting type positions - &lt;em&gt;and&lt;/em&gt; they didn't hold any certificates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think certificates are a complete waste. I think they do allow you have a better grasp on what technical possibilities exist. The .NET framework is huge and chances are you won't be involved with its vast offerings. You may never have a use for System.Drawing or any of the cryptography stuff depending on your line of work. What is useful is that it exposes you to the different libraries and lets you know what's out there. When you ultimately face a challenge you might have a better idea of how to tackle it since you've come across it during your studies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line though, &lt;strong&gt;certs != experience&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some good reading:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.hanselman.com/blog/ScottHanselman11SuccessfulLargeProjects3OpenSourceApplications1CollossalFailure.aspx&quot; rel=&quot;nofollow&quot;&gt;Scott Hanselman, 11 Successful Large Projects, 3 Open Source Applications, 1 Collossal [sic] Failure&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Coding Horror: &lt;a href=&quot;http://www.codinghorror.com/blog/2006/05/fail-early-fail-often.html&quot; rel=&quot;nofollow&quot;&gt;Fail Early, Fail Often&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Coding Horror: &lt;a href=&quot;http://www.codinghorror.com/blog/2007/01/do-certifications-matter.html&quot; rel=&quot;nofollow&quot;&gt;Do Certifications Matter?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7510" LastEditorUserId="7510" LastEditorDisplayName="" LastEditDate="2010-11-11T20:58:11.567" LastActivityDate="2010-11-11T20:58:11.567" />
  <row Id="18489" PostTypeId="2" ParentId="16788" CreationDate="2010-11-11T20:52:23.640" Score="0" ViewCount="" Body="&lt;p&gt;Most of these rationalisation don't make sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Care doesn't make sense because the &lt;code&gt;are&lt;/code&gt; of care is pronounced like air (which only works if you're cockney, or apparently, American - see nohat).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Car doesn't make sense because you don't pronounce character car-acter (unless you're &lt;em&gt;very&lt;/em&gt; posh), you pronounce it ka-rik-ter. Sure the &lt;em&gt;official&lt;/em&gt; definition says kar-ik-ter, can't say I've ever heard anyone pronounce it like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Char as in as in Charbroiled / Charizard clearly bears no relation to the pronunciation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So there clearly can't be a winner since they're all &quot;wrong&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sticking with char.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-11-11T20:52:23.640" />
  <row Id="18490" PostTypeId="2" ParentId="14650" CreationDate="2010-11-11T20:53:50.633" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.cc2e.com/&quot; rel=&quot;nofollow&quot;&gt;Code Complete, Second Edition by Steve McConnell.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201633612&quot; rel=&quot;nofollow&quot;&gt;Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm entirely self-taught, and I was fortunate enough to stumble upon an article (I've long since forgotten where) early on in my work that pointed me to these two books. The transformation of my code after I read those two books was staggering. I owe a lot to those authors.&lt;/p&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2010-11-11T20:53:50.633" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="18491" PostTypeId="2" ParentId="18480" CreationDate="2010-11-11T20:55:29.160" Score="6" ViewCount="" Body="&lt;p&gt;A degree, period.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-11-11T20:55:29.160" />
  <row Id="18492" PostTypeId="2" ParentId="18478" CreationDate="2010-11-11T20:56:39.033" Score="4" ViewCount="" Body="&lt;p&gt;tuh-ple, no doubt.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-11-11T20:56:39.033" />
  <row Id="18493" PostTypeId="2" ParentId="18480" CreationDate="2010-11-11T20:58:43.390" Score="0" ViewCount="" Body="&lt;p&gt;I'd vote degree by a long shot. And probably not in comp-sci. No one will ever spend 4 years teaching you how to think and write, but there are many ways to pick up enough computer science to do many programming tasks. Some employers might even pay for.&lt;/p&gt;&#xA;" OwnerUserId="3762" LastActivityDate="2010-11-11T20:58:43.390" />
  <row Id="18494" PostTypeId="2" ParentId="18478" CreationDate="2010-11-11T20:59:24.497" Score="7" ViewCount="" Body="&lt;p&gt;I've heard both, and neither is ambiguous, so I tend to just use the same pronunciation as whoever I'm talking to. If I don't know how they pronounce it and it comes up, I go with &quot;toople&quot; but will switch if they correct me; I really don't care.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-11T20:59:24.497" CommentCount="1" />
  <row Id="18495" PostTypeId="1" AcceptedAnswerId="18497" CreationDate="2010-11-11T21:04:18.477" Score="7" ViewCount="325" Body="&lt;p&gt;After reading this question; &#xA;&lt;a href=&quot;http://programmers.stackexchange.com/questions/4693/why-are-so-many-programmers-arrogant&quot;&gt;Why are so many programmers arrogant&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It does bring a related question to my mind. Is it possible to have egoless programming or is it even desirable?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a profession we do seem to want to show off the latest gizmo, technique or say “look at this awesome piece of code I’ve written”. Yet we can get very defensive when asked to submit items of work for code reviews or get negative comments from other programmers (hearing the term WTF, has never been a good sign).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can we as a profession be able to sit down and analyse a piece of code, data or architecture for its merits or constraints and a calm and respetful manner, without causing offence or antagonising our colleagues, or are we just the archetypal Dilbert character, raging against the system?&lt;/p&gt;&#xA;" OwnerUserId="4960" LastEditorUserId="6393" LastEditorDisplayName="" LastEditDate="2010-11-11T21:12:42.613" LastActivityDate="2010-11-11T22:55:15.093" Title="Egoless programming, is it possible or even desirable" Tags="&lt;social-skills&gt;&lt;behavior&gt;" AnswerCount="8" />
  <row Id="18496" PostTypeId="2" ParentId="14650" CreationDate="2010-11-11T21:07:00.520" Score="4" ViewCount="" Body="&lt;p&gt;For inspiration, &lt;a href=&quot;http://steve-yegge.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;Yegge's&lt;/a&gt; &lt;a href=&quot;http://sites.google.com/site/steveyegge2/blog-rants&quot; rel=&quot;nofollow&quot;&gt;Blogs&lt;/a&gt;, &lt;a href=&quot;http://www.paulgraham.com/articles.html&quot; rel=&quot;nofollow&quot;&gt;Graham's Essays&lt;/a&gt; and the &lt;a href=&quot;http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/&quot; rel=&quot;nofollow&quot;&gt;SICP Video Lectures&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-11T21:07:00.520" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="18497" PostTypeId="2" ParentId="18495" CreationDate="2010-11-11T21:08:29.940" Score="2" ViewCount="" Body="&lt;p&gt;Yes, I think it is possible. And I think Jeff Atwood explains how to do this best in his blog entry &lt;a href=&quot;http://www.codinghorror.com/blog/2008/05/strong-opinions-weakly-held.html&quot; rel=&quot;nofollow&quot;&gt;Strong Opinions, Weakly Held&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="1236" LastActivityDate="2010-11-11T21:08:29.940" />
  <row Id="18498" PostTypeId="2" ParentId="18212" CreationDate="2010-11-11T21:10:33.940" Score="2" ViewCount="" Body="&lt;p&gt;Hi Jeff V,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are working in VS2010 and .NET 4, you definitely want the new edition. Many things are very different and I spent a year rewriting the book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The 2nd edition essentially starts from scratch with VS2010/.NET 4. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you able to exchange??&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Julie Lerman&lt;/p&gt;&#xA;" LastActivityDate="2010-11-11T21:10:33.940" CommentCount="1" />
  <row Id="18499" PostTypeId="2" ParentId="18495" CreationDate="2010-11-11T21:16:07.247" Score="10" ViewCount="" Body="&lt;p&gt;What you should bear in mind at all times is that for most of your professional life you &lt;strong&gt;don't own the code that you write&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are an employee the software is owned by the company. If you are a contractor the software is owned by the company. If you are a freelancer then the software is owned by the client. Only if you &lt;em&gt;are&lt;/em&gt; the company/client is the software owned by you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you realise this then there's less of the &quot;this is &lt;em&gt;my&lt;/em&gt; code&quot; thoughts and attitude. Yes, it still happens and it's only human nature to get upset if someone criticises what you've just produced, but by taking that step to try to remove the attachment it should be less of a blow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the other side when you are reviewing the code produced by someone else concentrate on what the code does and how it does it and &lt;strong&gt;be constructive&lt;/strong&gt; when suggesting improvements.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-11-11T21:16:07.247" CommentCount="4" />
  <row Id="18500" PostTypeId="2" ParentId="18495" CreationDate="2010-11-11T21:18:51.127" Score="9" ViewCount="" Body="&lt;p&gt;when your focus is on getting it done and getting it right, then it no longer matters whether the solution was your idea or not&lt;/p&gt;&#xA;&#xA;&lt;p&gt;at that point, your ego has left the building - and you are much more likely to learn something!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-11T21:18:51.127" CommentCount="2" />
  <row Id="18501" PostTypeId="2" ParentId="18454" CreationDate="2010-11-11T21:21:09.987" Score="0" ViewCount="" Body="&lt;p&gt;I use early returns almost exclusively these days, to an extreme. I write this&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;self = [super init];&#xA;&#xA;if (self != nil)&#xA;{&#xA;    // your code here&#xA;}&#xA;&#xA;return self;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;as&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;self = [super init];&#xA;if (!self)&#xA;    return;&#xA;&#xA;// your code here&#xA;&#xA;return self;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;but it really doesn't matter. If you have more than one or two levels of nesting in your functions, they need to be busted up. &lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-11-11T21:21:09.987" CommunityOwnedDate="2011-02-18T13:21:55.827" />
  <row Id="18502" PostTypeId="1" CreationDate="2010-11-11T21:22:24.270" Score="52" ViewCount="1411" Body="&lt;p&gt;I'm a bit older than most of my peers, having come into programming in my mid 30's.  The thing is, I love what I do.  Most of my project managers and bosses are my age or younger.  I'm really OK with that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I, however, have no desire to climb the company ladder. While I regularly take on the responsibility of making sure that projects get done and my peers often look to me for programming and architectural guidance, I just like writing code and want to keep doing it for as long as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, my only real goal is grow into being a crusty old tech lead until I retire.  IF I retire.  I would so much rather learn the latest and greatest new technology than PMP my resume. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there others out there who feel like this because I often feel rather alone in my pathology?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something I didn't make clear is that I really like helping and mentoring other developers.  It makes me feel good and useful and (to be brutaly honest) important.&lt;/p&gt;&#xA;" OwnerUserId="2312" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-26T14:54:45.347" LastActivityDate="2011-03-03T13:31:27.030" CommunityOwnedDate="2011-01-26T02:24:50.517" Title="Who wants to keep developing?" Tags="&lt;career&gt;" AnswerCount="23" CommentCount="10" FavoriteCount="16" />
  <row Id="18503" PostTypeId="2" ParentId="18502" CreationDate="2010-11-11T21:26:39.433" Score="0" ViewCount="" Body="&lt;p&gt;I definitely understand your point of view. I've asked myself this question before as well; and the answer is always &quot;I don't know&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think really, the question of whether to stay in a development role or move up into management would be incumbent on the nature of the position that I'd be filling, and the need for that positioned to be filled.&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-11-11T21:26:39.433" CommunityOwnedDate="2011-01-26T02:24:50.517" />
  <row Id="18504" PostTypeId="2" ParentId="18502" CreationDate="2010-11-11T21:39:15.297" Score="4" ViewCount="" Body="&lt;p&gt;I'm only 32, but I've also always been of this point of view. I guess it has a lot to do with my personality type (INTP) and the associated dislike of dealing with human flakiness. Of course, there is no way to 100% avoid that, but it's orders of magnitude lower in development work when compared with management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm yet to be in the position where I'm reporting to someone younger than me, but I don't think it would bother me. In many cases in the tech companies I've worked for, developers reported mostly to product managers - so it was often a case of it being a &quot;flat&quot; environment - in the sense that the developers do one job, the product team does another job, but neither are really a &quot;higher&quot; status as such. Dev team leaders were often little more than timesheet administrators in these cases, so being a senior developer was about as respected and &quot;high&quot; as you can get in the company.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-11T21:39:15.297" CommunityOwnedDate="2011-01-26T02:24:50.517" />
  <row Id="18505" PostTypeId="2" ParentId="18495" CreationDate="2010-11-11T21:41:25.773" Score="2" ViewCount="" Body="&lt;p&gt;Yes, egoless programming is quite possible. I've done &quot;maintenance&quot; programming for more than 1/2 my working career, and the second most important thing [1] is to make sure that the next guy can read my code. We have two programmers here at the office [2] who write in such a distinctive style that one can immediately tell who wrote them. We call the little bundles of code and joy that he leaves for us &quot;robstacles.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some developers feel that the code they write is the result of their sweat and blood, and they get very defensive when questioned (such as during code reviews). Try not to attack them during code reviews and it will become easier in the future to discuss code as the posturing and defensive behaviors will die out. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Notes:&lt;br&gt;&#xA;1. The most important thing is to fix the bug or write the feature correctly.&lt;br&gt;&#xA;2. Most of these applications have been shipping for more than  a decade, so it is quite likely that they will be around long after I am gone. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-11T21:41:25.773" />
  <row Id="18506" PostTypeId="2" ParentId="18502" CreationDate="2010-11-11T21:42:47.160" Score="2" ViewCount="" Body="&lt;p&gt;We have several people in their 50's here who are still programmers. And many of the 30-40 somethings who moved into management say they miss coding. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-11T21:42:47.160" CommunityOwnedDate="2011-01-26T02:24:50.517" />
  <row Id="18507" PostTypeId="2" ParentId="14650" CreationDate="2010-11-11T21:43:56.740" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0316491977&quot; rel=&quot;nofollow&quot;&gt;Soul of a new Machine&lt;/a&gt; (inspiration when I was in high school)&#xA;&lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book.html&quot; rel=&quot;nofollow&quot;&gt;SICP&lt;/a&gt; (probably one of the best books related to software development I have ever read)&lt;/p&gt;&#xA;" OwnerUserId="3439" LastActivityDate="2010-11-11T21:43:56.740" CommunityOwnedDate="2010-11-12T17:51:25.287" CommentCount="1" />
  <row Id="18508" PostTypeId="2" ParentId="18495" CreationDate="2010-11-11T21:44:03.400" Score="5" ViewCount="" Body="&lt;p&gt;There is a lot of grey area on the confidence - arrogance continuum. I'd rather have someone who takes ownership of their work and strives for excellence based on merit and not self-delusion.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Trust me, you'll write a lot of crap that will fail and you will be to blame, so you may as well take advantage when all goes well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I think something is wrong, I say so. Feel free to tell me I'm wrong and be prepared to back it up. It won't be the first or the last time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't want criticism (Obviously tact and restraint can be exercised.), then write code for your eyes only and run it on your own computer. Anyone who has ever excelled at anything has had to deal with critics.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-11T21:44:03.400" />
  <row Id="18509" PostTypeId="2" ParentId="14650" CreationDate="2010-11-11T21:55:03.327" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://sethgodin.typepad.com&quot; rel=&quot;nofollow&quot;&gt;Seth Godin&lt;/a&gt;, while not totally programming-related, has some inspiring posts for me as a programmer and hopeful business person (in addition to Joel on Software).&lt;/p&gt;&#xA;" OwnerUserId="59" LastActivityDate="2010-11-11T21:55:03.327" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="18510" PostTypeId="2" ParentId="18502" CreationDate="2010-11-11T22:00:16.363" Score="25" ViewCount="" Body="&lt;p&gt;It's interesting how programmers are pushed to this &quot;career choice&quot; thing, where they're supposed to become PMPs or similar before they are 40 or something. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Frankly, I don't get it. If doctors/judges/journalists/opera singers/ can make through to &#xA;retirement w/o being expected to become  managers, why is it somehow &quot;unsexy&quot; to see a 55-year old C++ dev on the team?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have every damn right to become a &quot;crusty old tech&quot; and may I add that there is nothing bad about it at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note : I only used &quot;C++ dev&quot; as an illustration. Don't take it too literally when commenting. It may well be any other programming language of the future.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastEditorUserId="5185" LastEditorDisplayName="" LastEditDate="2010-11-11T23:02:47.067" LastActivityDate="2010-11-11T23:02:47.067" CommunityOwnedDate="2011-01-26T02:24:50.517" CommentCount="4" />
  <row Id="18511" PostTypeId="2" ParentId="18502" CreationDate="2010-11-11T22:00:29.663" Score="9" ViewCount="" Body="&lt;p&gt;I'm 58, and have been developing for about 10 years, after a shift from system and network administration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I briefly tried management during the systems and networks period, didn't like it, and wasn't particularly good at it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, I have frequently reported to people younger than myself, and was for a while in a small company where I was about 20 years older than everyone else including the owners.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I tire of this, I'll probably go back to teaching, which I did briefly before all the other stuff, about 30 years ago.  But for now, I plan to continue as a developer.&lt;/p&gt;&#xA;" OwnerUserId="1353" LastActivityDate="2010-11-11T22:00:29.663" CommunityOwnedDate="2011-01-26T02:24:50.517" />
  <row Id="18512" PostTypeId="1" CreationDate="2010-11-11T22:03:01.863" Score="3" ViewCount="204" Body="&lt;p&gt;Given a &lt;a href=&quot;http://stackoverflow.com/questions/114342/what-are-code-smells-what-is-the-best-way-to-correct-them/114352#114352&quot;&gt;long method&lt;/a&gt; with &lt;a href=&quot;http://stackoverflow.com/questions/114342/what-are-code-smells-what-is-the-best-way-to-correct-them/116414#116414&quot;&gt;Pac-Man ifs&lt;/a&gt;, would it be wise to:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Break down code blocks into regions.&lt;/li&gt;&#xA;&lt;li&gt;Then refactor code blocks into methods.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Or would it be best to leave it alone?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would it be risky?&lt;br&gt;&#xA;Would it be a waste of time?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the absence of automated unit-tests, I'm trying to understand the risk-reward relationship associated with this manuever.&lt;/p&gt;&#xA;" OwnerUserId="1996" LastActivityDate="2010-11-11T22:58:15.217" Title="Refactoring code smells in ASP.NET Web Forms Code Behind Files: Is it risky? Is it wise? Is it a waste of time?" Tags="&lt;best-practices&gt;&lt;asp.net&gt;&lt;refactoring&gt;&lt;code-smell&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="18513" PostTypeId="2" ParentId="14650" CreationDate="2010-11-11T22:07:50.493" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://portal.acm.org/citation.cfm?id=5601&quot; rel=&quot;nofollow&quot;&gt;The Little LISPer&lt;/a&gt; blew my mind. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I took a High School pascal programming class. I already knew C64 basic pretty well and asked the teacher if all programming languages were like Basic and Pascal. He lent me his copy of the Little LISPer. After spending the weekend reading it, I didn't believe such an odd language could exist or would work. When I saw it running on dial up mini he has access to, I was floored. It did exist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After my second university level programming class; Algorithms and Data Structures, I switched majors to get access to the better CS Computer lab. They had Unix machines with lisp, scheme, prolog, SmallTalk80 and a ton of other tools.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-11-11T22:07:50.493" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="18514" PostTypeId="2" ParentId="18265" CreationDate="2010-11-11T22:10:51.483" Score="1" ViewCount="" Body="&lt;p&gt;Usually user groups, forum discussions, the like. Someone says &quot;X is a nice app but doesn't do &amp;lt;foo&amp;gt;&quot; and I start on Y, which does. Or if I wrote X in the first place, I fix it.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-11-12T04:57:22.583" LastActivityDate="2010-11-12T04:57:22.583" />
  <row Id="18515" PostTypeId="2" ParentId="18424" CreationDate="2010-11-11T22:14:28.157" Score="1" ViewCount="" Body="&lt;p&gt;Having worked with non-tech managers/company owners for a few times :&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I &lt;strong&gt;hated&lt;/strong&gt; how they were always questioning my time estimates &lt;/li&gt;&#xA;&lt;li&gt;They didn't &lt;strong&gt;understand&lt;/strong&gt; what's a proper developer working environment&lt;/li&gt;&#xA;&lt;li&gt;They would always think that adding more people to a project speeds it up. 20-something years after the &quot;Mythical Man-Month&quot;. Go figure.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Ergo, while good programmers might not necessarily be good managers, I infer that it is absolutely necessary for a good software company manager to be a programmer.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-11T22:14:28.157" />
  <row Id="18516" PostTypeId="2" ParentId="18495" CreationDate="2010-11-11T22:14:49.670" Score="0" ViewCount="" Body="&lt;p&gt;&lt;code&gt;[imo]&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this is a fundamentally difficult question, and perhaps sociology, or just using a computer as your main form of communication, has a lot to do with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The computer is a tool, and the consciousness that it bears is incredibly beautiful, but you should never try to say that a piece of code is an object of your own creation... every piece of code is a discovery, a pattern that the computer bonds with and can produce a result that you enjoy.  The fact that we can discover these patterns iteratively and feel like we are &lt;em&gt;creating&lt;/em&gt; is sheer blissful coincidence -- we're good at finding patterns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We really need to look at computers as windows to discovery, and respect the autonomy of these little brains, even if they are just incredibly small cut-outs from a biological brain.  All of math and all of algorithms correspond to an inviolable truth upon which our very cosmos resonates. To declare that part of this is &quot;mine!&quot; (think sea gulls in Finding Nemo) misses so many points on so many levels.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is hard to step away from this at times, when &quot;laboring&quot; to &quot;devise&quot; a new algorithm, but if you were to think that we are just humble maintainers of these elegantly precise windows into mathematical truth, the definition of the task changes no matter what your goals for your software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Treat your computer as an equal first, the rest (egoless-ism, peer coordination, goal-oriented behavior) will necessarily follow.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Much of my motivation for studying computer science and becoming a programmer was because of this affinity I felt, not toward physical hardware or the thrill of solving problems, but the very fact that I am peering into a brain, a brain I can communicate with directly in my favorite fashion: patterns!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take a step back and recall why you like the things you like to begin with.  Programming can be competitive and I think that fuels a lot of the ego in defending code and design choices, but&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;a) if someone is a better programmer,&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to talk to them and learn from them more about this complex relationship to the electric consciousness.  We can share discovery, and that is amazing!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;b) if my design choices or code could be changed to better suit the organization that I work for&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;then by all means change it!  I am an employee because I need money and I get money when the company gets money, and they get money when the code we use is awesome, not when I want to argue about whitespace or whatever. And as ChrisF points out, you essentially become just a really slow typist in a company setting as far as other laborers can tell.  You don't own the code, you don't own the implementation, you are just a medium of translation from idea/paper/specs to electric consciousness brainfood.  Translation to and from any pair of languages is an iterative process and you get better with it over time.  Criticism accelerates this process and should never be taken personally.  But anyway it seems like most agree that you should be egoless, just remember that coding for a company is a job, and you can learn and tinker and play with your code all you want, as long as you keep your bosses and your clients happy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[/imo]&lt;/p&gt;&#xA;" OwnerUserId="5904" LastActivityDate="2010-11-11T22:14:49.670" />
  <row Id="18517" PostTypeId="2" ParentId="18502" CreationDate="2010-11-11T22:17:27.517" Score="23" ViewCount="" Body="&lt;p&gt;I've found in my career that every manager I've had who was a developer had 2 qualities: They were the best managers, and they all missed programming.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm 34, and spent a lot of my time programming in finance.  I've been promoted twice (with significant raises), I've asked for demotions twice (with matching pay cuts).  I don't want to manage people.  I'm good at what I do as a programmer and I really enjoy doing it, so why would I want to stop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I really enjoy being a senior member of my team and spreading my knowledge.  I started out extremely introverted and have forced myself into the middle of the introvert/extrovert road.  There I've been able to take a mentorship role in a number of my coworkers careers.  I've had management notice and turned it into a regular activity.  In general I keep one junior developer and one just-out-of-school developer who I help guide and think about programming right.  So far I've had 10 trainees who have &quot;graduated&quot;, of them 8 have taken senior positions.  None were over 25.  One was 20.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So in the end, climbing the ladder doesn't have to mean moving into management.  The management track is certainly a way to earn more money, but if you don't like the job it shows and it won't come with more respect.  And how much money is your happiness worth?  You will spend almost 25% of your time at work.  Don't you want to look forward to it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make your own ladder.  Decide where you want to be.  Find a company that supports you and can offer you the experience you want.  And be the best at whatever you actually want to be.  &lt;/p&gt;&#xA;" OwnerUserId="7470" LastActivityDate="2010-11-11T22:17:27.517" CommunityOwnedDate="2011-01-26T02:24:50.517" CommentCount="6" />
  <row Id="18519" PostTypeId="2" ParentId="18512" CreationDate="2010-11-11T22:30:46.373" Score="1" ViewCount="" Body="&lt;p&gt;It's risky in the absence of automated tests. Of course you'll test as you go along, but that's tedious, and error-prone. Ideally you'd write unit tests capturing the current behaviour, but that's not always feasible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having been in this position before (with PHP), if the code really stinks, refactor it very slowly and very carefully.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think your plan's sound - take the long method, break it up with whitespace into paragraphs, and try Extract Method. Quite how you do that depends on how many variables are in play, and how they interact. Try trace the dependencies of a paragraph before you start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it worth it? If the code's really awful, and its awfulness is starting to spread, then it's time to get stuck in there. If it's been running fine for ages, then you risk introducing bugs into something that for now Just Works.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-11-11T22:30:46.373" />
  <row Id="18520" PostTypeId="2" ParentId="18512" CreationDate="2010-11-11T22:31:32.497" Score="1" ViewCount="" Body="&lt;p&gt;0 . Work out what the logic of the if statements is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quite often when I'm looking at a set of pac-man ifs I find that if I just draw out something like a truth table of all the conditions involved I can work out a much better route to resolving the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That way you can also assess whether there is a better method, how you might break it down further and ( and this is a big one with this kind of code ) whether there are any holes in the logic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having done that you can probably break it down into a couple of switch statements and a couple of methods and save the next poor mook who has to go through the code a whole lot of problems.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-11T22:31:32.497" />
  <row Id="18521" PostTypeId="2" ParentId="18502" CreationDate="2010-11-11T22:32:16.960" Score="6" ViewCount="" Body="&lt;p&gt;I'm 64. I came into programming from teaching (math) back in the 70's. I still program at work and at home for my own stuff and take classes to enhance my knowledge.&lt;br&gt;&#xA;First programming was DIBOL on a PDP-11 &amp;amp; BASIC+II for the polling company used by Pres. Reagan for his first election.&lt;br&gt;&#xA;Next was manufacturing installations using FORTRAN, C/C++, BASIC and APT.&lt;BR&gt;&#xA;Then it was Geo Data and mapping for a Quasi-Govt Agency using VB, ASP &amp;amp; FORTRAN.&lt;br&gt;&#xA;Now I am doing shopping cart web sites with ASP, &amp;amp; .NET.&lt;br&gt;&#xA;I don't see any stopping this any time soon.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-11-11T22:32:16.960" CommunityOwnedDate="2011-01-26T02:24:50.517" CommentCount="4" />
  <row Id="18522" PostTypeId="2" ParentId="18502" CreationDate="2010-11-11T22:35:09.767" Score="1" ViewCount="" Body="&lt;p&gt;I'm in my mid-30s and still a developer at the moment.  I've been a developer for 12 years and still enjoy the magic of it at times.  My current thinking in terms of career progression is that I'd like to get into a more strategic planning role but I'm not sure what the title would be as I see it being somewhere between a business analyst, who identify various business problems that may get solved by projects and collect the data so that informed decisions can be made, and a project manager, who have project plans to execute the plans that they may have had a hand in creating and executing.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-11T22:35:09.767" CommunityOwnedDate="2011-01-26T02:24:50.517" />
  <row Id="18523" PostTypeId="2" ParentId="14650" CreationDate="2010-11-11T22:37:11.763" Score="1" ViewCount="" Body="&lt;p&gt;The book of five rings by Myomoto Musasashi.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some highlights.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't have a a favorite tool. Learn to use every tool, learn when it is appropriate to use, learn its weaknesses and strengths.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Staff whose work is not perfect can be used in places where the quality of their workmanship is in public view. The pillars that support the floor under a  building do not have to have a perfect finish (they just have to work).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By doing one thing, do many things.&#xA;So if there is a choice between doing A and B, but B can be used to do many things next week, do B if you can afford it.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-11-11T22:37:11.763" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="18524" PostTypeId="2" ParentId="16867" CreationDate="2010-11-11T22:38:09.267" Score="2" ViewCount="" Body="&lt;p&gt;I can't believe people are advocating C++ as a first language! You will spend most of your time writing boiler plate and trying to get around the limitations and fish hooks in the language than actually learning how to program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java is a much simpler language and won't get in the way of your learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you must learn C++, learn the concepts with Java and then go to C++, or better still, OBJ-C if you want to write Mac software. Java and OBJ-C aren't too dissimilar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FYI I have spent 10 years as a commercial C++ developer.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-11-11T22:38:09.267" CommentCount="1" />
  <row Id="18525" PostTypeId="2" ParentId="18495" CreationDate="2010-11-11T22:42:24.050" Score="0" ViewCount="" Body="&lt;p&gt;I think this relates to how you view your code.  Good programmers are constantly in the tug of war between viewing the results as &quot;art&quot; and as a &quot;commodity&quot; (or whatever words you want to stick in there).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When we see the code as simply something we're paid to produce, it's pretty easy to avoid ego-related issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When viewing the code as &quot;art&quot; we've created, the ego really tries to get in there.  After all, what artist produces things they don't like?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, depending upon your view of your code, you may or may not have emotional attachment to your code.  Pay attention to the balancing act, and you'll do well.   We want to create code as if it's the highest quality art, but we want to release it as a cheap commodity.  Think from the appropriate angle at the proper times and you'll do well.&lt;/p&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-11-11T22:42:24.050" />
  <row Id="18526" PostTypeId="2" ParentId="15759" CreationDate="2010-11-11T22:43:38.803" Score="1" ViewCount="" Body="&lt;p&gt;Problem:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;We are forbidden from using code names. &lt;/li&gt;&#xA;&lt;li&gt;We are required to use TLAs or ETLAs for App names&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Solution:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Come up alternative TLAs to use as code names&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;FWC 1 becomes Fine Wine &amp;amp; Cheese&lt;/li&gt;&#xA;&lt;li&gt;FWC 1.1 becomes Fine Whiskey &amp;amp; a Chaser&lt;/li&gt;&#xA;&lt;li&gt;FWC 1.1.1 becomes Fine Whiskey Club&lt;/li&gt;&#xA;&lt;li&gt;FWC 2 becomes Foolish Worried &amp;amp; Concerned &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-11-11T22:43:38.803" />
  <row Id="18527" PostTypeId="2" ParentId="18495" CreationDate="2010-11-11T22:55:15.093" Score="0" ViewCount="" Body="&lt;p&gt;Ego is simply a sense of self-worth.  The effect of emotions related to ego can be both positive and negative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will often feel proud (&lt;em&gt;ego gets excited&lt;/em&gt;) when I accomplish something that was difficult, or find a clean simple solution to a complex problem, or learn to apply a new methodology to a problem.  Which I think is beneficial and gives me a self-sourced motivational kick.  The brain is wired to release feel-good chemicals when this happens.  You can become success addicted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are negative aspects of relying on your ego though, especially in team environments; that can have a counter-productive impact.  If you become to attached to some project, or solution, or technology, you will become defensive when it is threatened (by a new solution or technology, or person with ideas).  It's important to maintain objectivity, and not take an attack on your solution personally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found the best way to deal with an ego threat, is to humbly attach myself to any new or alternative ideas or solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's always something new to learn, especially if you consider yourself the expert.&lt;/p&gt;&#xA;" OwnerUserId="7533" LastActivityDate="2010-11-11T22:55:15.093" />
  <row Id="18528" PostTypeId="2" ParentId="18512" CreationDate="2010-11-11T22:58:15.217" Score="0" ViewCount="" Body="&lt;p&gt;Your plan, or clean up the logic on the ifs (in cases where the pacman structure is an inefficient order or view of the conditions) is usually the place to start IMHO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to if it is worth the effort:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;do you expect to be changing this page much?&lt;/li&gt;&#xA;&lt;li&gt;do you have trouble understanding what is going on in there to the point you are wary of modifying it?&lt;/li&gt;&#xA;&lt;li&gt;do you think it is causing a performance or stability problem?&lt;/li&gt;&#xA;&lt;li&gt;is there no real reason it was done this way in the first place?&lt;/li&gt;&#xA;&lt;li&gt;would it be trivial to manually validate the correctness of the re-factor?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;IMHO unless you have some strong &quot;yes&quot; answers to those questions re-factoring it is a questionable exercise when compared to the risk of botching it and the fact that you could be adding new value elsewhere with your time.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-11T22:58:15.217" />
  <row Id="18529" PostTypeId="2" ParentId="17898" CreationDate="2010-11-11T22:59:46.373" Score="3" ViewCount="" Body="&lt;p&gt;I made my life easier when I just removed all the fluff and started treating pointer as any other variable rather than some magical entity (long long ago in grade 11).. just know 3 things:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Pointer is a variable that store the address of another variable (or just any address).&lt;/li&gt;&#xA;&lt;li&gt;* is used to get the value at the memory location that is stored in the pointer variable.&lt;/li&gt;&#xA;&lt;li&gt;&amp;amp; operator gives the address of a memory location.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The rest is syntactic sugar and common sense.. Just write some simple C programs (like implementing a linked list library) using pointers to get a hang of it.&lt;/p&gt;&#xA;" OwnerUserId="7544" LastActivityDate="2010-11-11T22:59:46.373" CommunityOwnedDate="2010-12-02T00:15:36.130" />
  <row Id="18530" PostTypeId="2" ParentId="18502" CreationDate="2010-11-11T23:00:33.543" Score="68" ViewCount="" Body="&lt;p&gt;I just turned 64, I wrote my first computer program in FORTRAN in 1963 or so.  I programmed a UNIVAC 1005 for two years in the ARMY (1969-1971) and then I went to college and graduated with a BSCS in 1974.  I have been programming ever since.  I do not want to do anything else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have heard people say, particularly when I was in my 40s or so, that &quot;..he's not as far along in his career as he should be...&quot; which is bull.  I am now, and have been for quite some time, exactly where I want to be.&lt;/p&gt;&#xA;" OwnerUserId="7222" LastActivityDate="2010-11-11T23:00:33.543" CommunityOwnedDate="2011-01-26T02:24:50.517" CommentCount="6" />
  <row Id="18531" PostTypeId="2" ParentId="13503" CreationDate="2010-11-11T23:02:52.520" Score="1" ViewCount="" Body="&lt;p&gt;The best employers tend to be OK with you switching languages.  Ultimately they want good people, and it's worth it to have a bit of downtime while someone ramps up to speed as long as they know they're ultimately getting good value for their money.  So if I had to give specific tips:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Don't go for contract positions.  They aren't interested in growing you.&lt;/li&gt;&#xA;&lt;li&gt;It helps if you've been stable.  If you jump every year then you're risky.&lt;/li&gt;&#xA;&lt;li&gt;Apply for the jobs anyway.  Make it clear that you don't know the language but learn fast&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Companies &lt;strong&gt;&lt;em&gt;do&lt;/em&gt;&lt;/strong&gt; hire people that have never used their primarily language.  I was hired for .NET work with only ASP experience back in the day, and just recently I moved to a place that only uses Java/C++ and my only recent primary experience is in C#.&lt;/p&gt;&#xA;" OwnerUserId="7470" LastActivityDate="2010-11-11T23:02:52.520" />
  <row Id="18532" PostTypeId="2" ParentId="13503" CreationDate="2010-11-11T23:10:29.130" Score="0" ViewCount="" Body="&lt;p&gt;If you have 5-10 years of C++ hands-on experience, switching to most other languages widely used  in the industry should be a breeze.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-11T23:10:29.130" />
  <row Id="18533" PostTypeId="2" ParentId="17898" CreationDate="2010-11-11T23:20:21.570" Score="2" ViewCount="" Body="&lt;p&gt;The explanation that i really grocked was:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Consider a city grid with different houses built on pieces of land.&#xA;  In your hand you hold a piece of paper. On the paper you have written:&lt;/p&gt;&#xA;  &#xA;  &lt;hr&gt;&#xA;  &#xA;  &lt;p&gt;David's house,&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;112 So and so street.&lt;/p&gt;&#xA;  &#xA;  &lt;hr&gt;&#xA;  &#xA;  &lt;p&gt;The piece of paper (pointer variable) contains an address that &lt;strong&gt;points&lt;/strong&gt; to David's house. When you want to tell a friend to have a look at David's cool house it is much easier to use the pice of paper as a reference to the house than to send the actual two story building in the mail.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;As with real pointers you can get into some trouble when you follow the address on your piece of paper. David could have moved and when you get there you just find a big hole in the ground. In this case it would have been better to erase the address on the paper when David moved or at least change it to the new one. You could also find that you go to the address and enter what you think is your friend David's living room but this time you end up in a complete strangers swimming pool. Someone else has used the space at the address you had for something completely different.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="7545" LastActivityDate="2010-11-11T23:20:21.570" CommunityOwnedDate="2010-12-02T00:15:36.130" />
  <row Id="18534" PostTypeId="2" ParentId="18502" CreationDate="2010-11-11T23:26:24.667" Score="2" ViewCount="" Body="&lt;p&gt;You're not alone. I'm late thirties and feel the same way when it comes to managing projects and managing people. I've gotten accustomed to working for managers younger than myself in recent years, and I got no problem with that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, from the sounds of your post, I get the impression that you're not even particularly interested in offering guidance to other programmers? You'd rather get some peace and work on your own code, rather than be distracted by teaching other people how to do stuff? If that's the case, I can &lt;em&gt;understand&lt;/em&gt; it, but you'd really be better off if you were more willing to teach. A guy who can cut great code is really valuable, but a guy who helps everyone else cut better code too is really &lt;strong&gt;really&lt;/strong&gt; valuable.&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-11-11T23:26:24.667" CommunityOwnedDate="2011-01-26T02:24:50.517" CommentCount="1" />
  <row Id="18535" PostTypeId="2" ParentId="18421" CreationDate="2010-11-11T23:31:52.943" Score="2" ViewCount="" Body="&lt;p&gt;The best way to learn a new language is simply to use it (reading tutorials won't make it 'click') and one way that I've been assured is fantastic is through writing tests.  I'm yet to try this myself (and will do so this weekend) but give &lt;a href=&quot;http://rubykoans.com/&quot; rel=&quot;nofollow&quot;&gt;Ruby Koans&lt;/a&gt; a go and let me know how you get on :)&lt;/p&gt;&#xA;" OwnerUserId="7457" LastActivityDate="2010-11-11T23:31:52.943" CommentCount="1" />
  <row Id="18536" PostTypeId="2" ParentId="18454" CreationDate="2010-11-11T23:37:26.267" Score="1" ViewCount="" Body="&lt;p&gt;I agree with the following statement:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I'm personally a fan of guard clauses&#xA;  (the second example) as it reduces the&#xA;  indenting of the function. Some people&#xA;  don't like them because it results in&#xA;  multiple return points from the&#xA;  function, but I think it's clearer&#xA;  with them.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Taken from &lt;a href=&quot;http://stackoverflow.com/questions/640700/what-coding-style-for-error-checking-is-better-and-why&quot;&gt;this question in stackoverflow&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4287" LastActivityDate="2010-11-11T23:37:26.267" CommunityOwnedDate="2011-02-18T13:21:55.827" CommentCount="1" />
  <row Id="18537" PostTypeId="2" ParentId="18394" CreationDate="2010-11-11T23:38:35.527" Score="-1" ViewCount="" Body="&lt;p&gt;The solution to the &lt;a href=&quot;http://en.wikipedia.org/wiki/Travelling_salesman_problem&quot; rel=&quot;nofollow&quot;&gt;traveling salesman problem&lt;/a&gt; that is in P class of complexity.  It'd be worth a million dollars as it is a &lt;a href=&quot;http://www.claymath.org/millennium/P_vs_NP/&quot; rel=&quot;nofollow&quot;&gt;Millennium problem&lt;/a&gt;.  This does presume such a solution exists of course. ;-)&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-11T23:38:35.527" />
  <row Id="18538" PostTypeId="2" ParentId="18502" CreationDate="2010-11-11T23:41:35.730" Score="1" ViewCount="" Body="&lt;p&gt;At some point in your career you're going to see something you don't like.  It's going to bother you just enough that you're going to put your mind to fixing it.  This thing won't have anything to do with coding.  You're also going to start helping the younger developers grow.  At some point, before you even realize it, people are going to be looking at you for help and/or inspiration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It sounds like the later is happening before the first has happened.  Once the first happens you'll see that in order to prevent it, you're going to need to step up a level.  It won't be that much of a level nor will you need to don the managerial role but once it happens you'll be pushed towards a tech lead role.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-11-11T23:41:35.730" CommunityOwnedDate="2011-01-26T02:24:50.517" CommentCount="1" />
  <row Id="18539" PostTypeId="2" ParentId="18480" CreationDate="2010-11-11T23:42:53.460" Score="0" ViewCount="" Body="&lt;p&gt;One thing which I did not know until recently is that companies need to maintain a certain number of staff with Microsoft certifications in order to qualify for various levels of Microsoft partnerships. My employer has been hiring recently and any MCTS certifications on a candidate's CV were a particular plus for this reason. It wouldn't get you hired without good experience and a good interview, but it was a definite plus.&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-11-11T23:42:53.460" />
  <row Id="18540" PostTypeId="2" ParentId="18273" CreationDate="2010-11-11T23:49:17.447" Score="1" ViewCount="" Body="&lt;p&gt;A lot of them (not all) can be, but then I just stop dealing with those ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If, as others have said, they are salesmen, then I am not interested in a product/job/company fronted by such an approach or people - &quot;no thank you, goodbye and good luck&quot; (you'll need it).&lt;/p&gt;&#xA;" OwnerUserId="7457" LastActivityDate="2010-11-11T23:49:17.447" />
  <row Id="18541" PostTypeId="2" ParentId="18480" CreationDate="2010-11-11T23:49:44.573" Score="0" ViewCount="" Body="&lt;p&gt;In general, the degree is going to be more valued, especially if you don't have any prior work experience. However, I could see some situations where the &lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/mcpd.aspx&quot; rel=&quot;nofollow&quot;&gt;MCPD&lt;/a&gt; would be useful if you already have some prior work experience and even more so if you already have a degree in something else and don't want to go back for another Bachelors or to do all of the extra work that may be needed for a Masters in computer science.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general though, the degree is good for getting started and preventing your resume form being filtered out by HR later on in your career where as certificates are generally not that useful unless you are trying to demonstrate some sort of knowledge in something while trying to get a foot in the door somewhere.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-11-11T23:49:44.573" />
  <row Id="18542" PostTypeId="2" ParentId="18478" CreationDate="2010-11-11T23:50:44.510" Score="3" ViewCount="" Body="&lt;p&gt;I like to say Tupla (tuh-plah). Portuguese word for tuple.&lt;/p&gt;&#xA;" OwnerUserId="3082" LastActivityDate="2010-11-11T23:50:44.510" />
  <row Id="18543" PostTypeId="2" ParentId="18391" CreationDate="2010-11-12T00:11:00.357" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If you're technically adept and you put your career in play, you may run into slime, silliness, and/or shenanigans.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I haven't had a bogus interviewer try to pick my brain for proprietary information, here are some of my less savory experiences:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;A potential consulting client asked me to come do a sales pitch, so I flew on my own dime as a deductible marketing expense. When I arrived, the client's VP said he just wanted to interview me for a job, and the putative consulting was a ruse to avoid paying for my travel.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A client asked me for a proposal, which I submitted. A few days later, an Indian outsourcing firm submitted a word-for-word identical proposal, except for lower pricing. Did I mention the procurement manager had ties to that firm?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've done a lot of interviews, and I'd guess 90% are legit, 9% are silly-but-honest wastes of time, and only about 1% involve that kind of dishonesty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's silly-but-honest? In the late 80s, a bioinformatics firm halted an interview for a job to write software for a DNA sequencer when I remarked about having done my grad work in organic chemistry and knowing a lot about their field. They explicitly did not want their programmers to understand DNA sequencing. Aside from the stupidity of such a policy, somebody must have missed the large parts of my resume that referred to my education and prior career as a research chemist.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I am considering refusing technical interviews in the future and instead proposing a trial period in which the company can easily reconsider its hiring decision.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Almost no Silicon Valley company will accept this. In my experience, most of them would rather not get work done than permit telecommuting, and what you're suggesting is far more radical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead, I encourage you to be more philosophical, accept that some percentage of your interviews will be bogus, and laugh when they are. Oh, and go post about the dishonest interviews on anonymous-reporting site glassdoor.com.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-11-12T00:11:00.357" CommentCount="2" />
  <row Id="18544" PostTypeId="2" ParentId="39" CreationDate="2010-11-12T00:17:53.040" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;There is no object-oriented problem that cannot be solved by adding a layer of indirection, except, of course, too many layers of indirection.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- From &quot;The Art of Unit Testing&quot; Roy Osherove (attributed to an unnamed source)&lt;/p&gt;&#xA;" OwnerUserId="6232" LastEditorUserId="633" LastEditorDisplayName="" LastEditDate="2010-12-16T16:47:52.667" LastActivityDate="2010-12-16T16:47:52.667" CommunityOwnedDate="2010-11-12T00:17:53.040" CommentCount="1" />
  <row Id="18545" PostTypeId="2" ParentId="18394" CreationDate="2010-11-12T00:34:35.043" Score="0" ViewCount="" Body="&lt;p&gt;I wish I had understood Proof by Induction earlier.  Since then I've revisited the topic and learned it just in time for an interview for a kick-ass job (which I recently started).  I feel like if I had bothered to learn it earlier I'd have been years down my career track.&lt;/p&gt;&#xA;" OwnerUserId="7470" LastActivityDate="2010-11-12T00:34:35.043" />
  <row Id="18546" PostTypeId="2" ParentId="18394" CreationDate="2010-11-12T00:36:56.403" Score="4" ViewCount="" Body="&lt;p&gt;Back in the day I built a 3d rendering engine out of Javascript and a vector display library.  After 3 days of work and hundreds of lines of trig code I had a working, though slightly buggy, slow product.  You were able to click and drag to rotate the model.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another developer came in and replaced over 200 lines of trig with:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;OnTick()&#xA;{&#xA;  d = 0.001;&#xA;  x = x + y * d;&#xA;  y = y - x * d;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="7470" LastActivityDate="2010-11-12T00:36:56.403" CommentCount="7" />
  <row Id="18547" PostTypeId="2" ParentId="16618" CreationDate="2010-11-12T00:44:25.527" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Multiple Inheritance Considered Harmful&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't imagine a quicker way to get seriously convoluted than multiple inheritance.  I'm sure the comments will be along the lines of &quot;sometimes it's really useful&quot;, but those are the comments that come when you say &quot;GOTO Considered Harmful&quot; and they are no more compelling today.  :-)&lt;/p&gt;&#xA;" OwnerUserId="1435" LastActivityDate="2010-11-12T00:44:25.527" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="3" />
  <row Id="18548" PostTypeId="2" ParentId="18394" CreationDate="2010-11-12T00:49:50.653" Score="0" ViewCount="" Body="&lt;p&gt;I do this all the time (write on wall during bath). I bought some color pens that erases with water and my kids love it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One time I figure out a solution for a report export algorithm, where I needed to get all objects (rectangles of text, shapes and pictures) in a page and layout it in a HTML code using &quot;table/tr/td&quot; tags. Of course, after this I did learn that &quot;div&quot; tag was the right choice for layout, but was cool. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; I forgot to answer. I wish to figure out how to test prime numbers with simple binary rules. &lt;/p&gt;&#xA;" OwnerUserId="3082" LastEditorUserId="3082" LastEditorDisplayName="" LastEditDate="2010-11-12T01:03:20.183" LastActivityDate="2010-11-12T01:03:20.183" />
  <row Id="18549" PostTypeId="2" ParentId="18394" CreationDate="2010-11-12T00:55:04.463" Score="1" ViewCount="" Body="&lt;p&gt;Any of the loose coupling UI patterns (MVVM/MVC/MVP). It wasn't until 2-3 years ago that I started strictly separating UI from logic.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-12T00:55:04.463" />
  <row Id="18550" PostTypeId="2" ParentId="16618" CreationDate="2010-11-12T01:41:33.477" Score="3" ViewCount="" Body="&lt;h2&gt;Model-View-ViewModel Considered Harmful&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong, I love the separation of concerns I get from MVVM, but has anyone noticed the large amount of duplication you get at the ViewModel level?  Essentially any property on a domain object that you want to edit has to have at least one (probably more) corresponding properties on the ViewModel objects to allow for binding (with INotifyPropertyChanged and all that).&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-11-12T01:41:33.477" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="2" />
  <row Id="18551" PostTypeId="1" AcceptedAnswerId="18553" CreationDate="2010-11-12T01:45:46.367" Score="9" ViewCount="446" Body="&lt;p&gt;I'm an artist, mostly, though I describe myself as a artist/physicist.  While I can do math, deal with  words, and the &quot;logical&quot; stuff considered left-brain, it's an effort and I make mistakes, whereas I do well with and most of the time think in terms of those things associated with right-brain thinking - spatial relations, holistic big-picture context, etc.  Of course all that is fuzzy, as the right-left brain theory is oversimplified and no mental activity is so simple.   Yet I do sense that I fit in fine with artists, video directors, chefs, and other non-verbal thinking, creative types, while most people in &quot;IT&quot; or hardcore software engineers have minds that work differently, with attention to detail, holding many details in mind at one time, and strong rational and verbal capabilities.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So here I am in a job being paid to fix fussy and obscure bugs in a massive swarm of C++ software, very heavy on OO, and any one line of code makes no sense unless I hold in mind about twenty other class and method names, relations between them, the flow of execution (very spaghetti-like) and other detail.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides that,  I'm also rather strongly against much of contemporary C++ and OO styles.  Those who wrote this code really drank the deep OO and Modern C++ kool-ade.  I find it actually makes code much harder to follow, much harder to decide where to fix or change something.   I don't know if this is part of the left/right differnce (or whatever you want to call it) or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But work on the C++ I must - people depend on me for my income.  What are tips and techniques to deal with this situation, to be as effective as possible for my employer?&lt;/p&gt;&#xA;" OwnerUserId="4280" LastEditorUserId="4280" LastEditorDisplayName="" LastEditDate="2010-12-14T16:46:28.713" LastActivityDate="2010-12-14T16:46:28.713" Title="How can a Right-Brainer Deal with Massive Left-Brainer Code?" Tags="&lt;tips&gt;&lt;technique&gt;&lt;thinking&gt;&lt;right-brain&gt;" AnswerCount="4" CommentCount="10" FavoriteCount="2" />
  <row Id="18552" PostTypeId="2" ParentId="18551" CreationDate="2010-11-12T02:01:46.333" Score="3" ViewCount="" Body="&lt;p&gt;Trust your intuition. If you are a good professional, it means regardless of your &quot;brainness&quot; - left or right - things that left-brainers do consciously you can do intuitively. In the end it's the same thing. Unfortunately we don't control our subconsciousness, but it does the job faster than our consciousness, if it does it at all. These intuitive insights coming out of nowhere are exactly the results of subconscious calculations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and you may fail, it's too unreliable. But since you asked... ;)&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-12T02:01:46.333" />
  <row Id="18553" PostTypeId="2" ParentId="18551" CreationDate="2010-11-12T02:22:02.693" Score="1" ViewCount="" Body="&lt;p&gt;Try getting more into the design side of things where being comfortable with the fuzziness is a strength would be my suggestion in terms of career progression.  As someone that likes to be creative, working on maintenance may not be a great fit whereas working on new stuff may be better if that is possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While there is nothing wrong with wanting some pride in one's work, wanting to not get bogged down in the details may be something that you may have to find a new approach to improve.  Rather than look at it as getting down and dirty, there may be another perspective that could make it fun somehow.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Support and maintenance likely have their fans as some people would prefer to tweak existing systems than put in a new system.  I know I tend to work better with an existing system that I'm changing rather than trying to pull something out of the ether.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you may try to do is to note when people are wanting ideas for dealing with various trouble spots and brainstorm solutions as this is part of what you like.  It isn't about knowing which lines of code to change but rather if you can tell someone, &quot;Did you look in that object and see if it is doing more than it claims?&quot; kind of thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another point is knowing what you want to create: Graphics, applications, websites, processes or systems?  These are all slightly different things that in wanting to create, you could be asked for &quot;Create what?&quot;&lt;/p&gt;&#xA;" OwnerUserId="4327" LastEditorUserId="4327" LastEditorDisplayName="" LastEditDate="2010-11-12T14:52:58.520" LastActivityDate="2010-11-12T14:52:58.520" CommentCount="3" />
  <row Id="18554" PostTypeId="2" ParentId="18454" CreationDate="2010-11-12T02:34:08.840" Score="0" ViewCount="" Body="&lt;p&gt;The conditions on the top are called &quot;preconditions&quot;. By putting &lt;code&gt;if(!precond) return;&lt;/code&gt;, you are visually listing all preconditions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using the large &quot;if-else&quot; block may increase indent overhead (I forgot the quote about 3-level indents) and generate more bytecode.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, what language type is this question talking about? In Java and other strongly-typed languages, you cannot do early returns (but you can throw exceptions). In JavaScript, early returns may generate warnings.&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-11-12T02:34:08.840" CommunityOwnedDate="2011-02-18T13:21:55.827" />
  <row Id="18555" PostTypeId="2" ParentId="18394" CreationDate="2010-11-12T02:57:49.600" Score="0" ViewCount="" Body="&lt;p&gt;arctan2 AKA atan2 the trig function&lt;/p&gt;&#xA;" OwnerUserId="7071" LastActivityDate="2010-11-12T02:57:49.600" CommentCount="1" />
  <row Id="18556" PostTypeId="1" AcceptedAnswerId="18570" CreationDate="2010-11-12T03:23:38.517" Score="4" ViewCount="217" Body="&lt;p&gt;What software do you use to manage Projects, Time on project, Project documentation and snippets etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people suggest a mix of Microsoft OneNote and Outlook, others suggest a good source control system. What do you use and why?&lt;/p&gt;&#xA;" OwnerUserId="7320" LastActivityDate="2010-11-15T13:40:45.850" Title="What software do you use to manage Projects, Time on project, Project documentation and snippets etc." Tags="&lt;project-management&gt;&lt;management&gt;&lt;time&gt;" AnswerCount="7" CommentCount="1" />
  <row Id="18557" PostTypeId="2" ParentId="15759" CreationDate="2010-11-12T03:25:48.560" Score="0" ViewCount="" Body="&lt;p&gt;I didn't want to figure a name for my last project since I was new around and didn't want to impose anything on anyone. I named it &quot;ProjectX&quot; until someone figures a new name. Now it has been 4 - 5 months and it's still projectX.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next time I'll name it something offensive so people will try to figure a new name fast.&lt;/p&gt;&#xA;" OwnerUserId="3250" LastActivityDate="2010-11-12T03:25:48.560" />
  <row Id="18558" PostTypeId="2" ParentId="15759" CreationDate="2010-11-12T03:37:30.953" Score="0" ViewCount="" Body="&lt;p&gt;You are best to use Pokemon names. As every year a new 150 names will be in your name library for consumption.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_Pok%C3%A9mon&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/List_of_Pok%C3%A9mon&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This methodology also allows your project to evolve!&lt;/p&gt;&#xA;" OwnerUserId="7320" LastActivityDate="2010-11-12T03:37:30.953" CommentCount="1" />
  <row Id="18559" PostTypeId="2" ParentId="18556" CreationDate="2010-11-12T03:39:59.020" Score="0" ViewCount="" Body="&lt;p&gt;Resources (code/documentation): source control&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Time spent/work done: issue tracking software (fogbugz/ontime)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everything else: nothing, but I'm in a &lt;em&gt;small&lt;/em&gt; shop with few time-sensitive projects so there are no gantts or project management artefacts. The PM just keeps that in their head.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-12T03:39:59.020" />
  <row Id="18560" PostTypeId="2" ParentId="14650" CreationDate="2010-11-12T03:48:26.590" Score="1" ViewCount="" Body="&lt;p&gt;I started off from games programming. It all comes from NES days. Aspired to be game developer and I achieved it but changed to Application Software/Hardware Analyst for better career as my country for games industries is too niche.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;During my early days, I actually felt a bit regret of entering into this IT roles. But later was inspired and influenced by my ex-colleagues on his accomplishments and they were quite active in these new technical development areas. During my free time, I will mingle with software programming to work on personal projects with my ex-colleagues.&lt;/p&gt;&#xA;" OwnerUserId="6450" LastActivityDate="2010-11-12T03:48:26.590" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="18561" PostTypeId="2" ParentId="18120" CreationDate="2010-11-12T04:06:42.957" Score="10" ViewCount="" Body="&lt;p&gt;Bad decision: Take a job programming MS Access during an 'unemployed phase.'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good decision: Quickly quitting a job programming MS Access during an 'unemployed phase.'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But seriously, I want to tackle the health thing a bit. I worked for many companies that worked you to the bone. I started taking hour long lunch breaks to run/bike/gym during the day during my tenure at one of them. It caused a conflict with my company claiming that it should be done on my 'personal time.' Well, after a 12 hour day, eating dinner on the drive home, studying to further my education (on their request) there wasn't any time to do it on my 'personal time.' I added that in quotes because my personal time wasn't my personal time. So, I left and eventually found a job where I have flex hours, can exercise and have more free time. The mentality here is just to get your job done, after that, do what you want. It is a myth that you need to sacrifice money to find a flexible job and a company that cares about their employees. Seriously, if a company doesn't care about you, then why should you care about them? Cut your loses and find a new gig. &lt;/p&gt;&#xA;" OwnerUserId="7566" LastEditorUserId="7566" LastEditorDisplayName="" LastEditDate="2010-11-12T04:41:33.783" LastActivityDate="2010-11-12T04:41:33.783" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="2" />
  <row Id="18562" PostTypeId="2" ParentId="11175" CreationDate="2010-11-12T04:32:35.853" Score="2" ViewCount="" Body="&lt;p&gt;This tool sounds very similar to &lt;a href=&quot;http://www.cs.cmu.edu/~NatProg/whyline-java.html&quot; rel=&quot;nofollow&quot;&gt;Whyline for Java&lt;/a&gt;. Whyline is an academic project and you can use it for free. As long as your machine is powerful enough to handle the instrumentation, you will have a very nice experience. My guess is that, as a product, Chronon might have been made with scalability in mind, and so it might not require as hefty of a machine. But I haven't tried it to know for sure. (See also &lt;a href=&quot;http://programmers.stackexchange.com/questions/6834/what-are-the-most-impressive-tricks-an-ide-could-pull-off-with-the-code/16258#16258&quot;&gt;my other answer&lt;/a&gt; about Whyline.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ad for Chronon does not mention program slicing directly, but it is one of the features Whyline has. The (dynamic backward) slicing allows you to get to the part of the execution you need to see. For example, if you are stepping through and ask &quot;wait, why is that value 5?&quot;, Whyline can take you immediately to the line of code from the program's history that gave that variable that value (from which you can then step backward again and again).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other approaches to backward stepping debuggers work by making forks of the program and then running the program forward from those points in order to simulate the backward step. Both approaches require that it instruments system calls (in the later case, for example, so you don't mess with the file system). I think the recording of the program, with an analysis applied to the history is probably the way you want to go, so you know that the run you are looking at definitely had (or definitely did not have) the fault you are tracking down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short: No, &lt;strong&gt;I have not used the tool, but the concepts behind it are sound, and highly productive&lt;/strong&gt;. I believe things like this, recording and playing back program execution history, &lt;a href=&quot;http://programmers.stackexchange.com/questions/14779/how-can-current-ides-improve-the-development-experience-what-secondary-tools-sho&quot;&gt;should come with the IDE&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-12T04:32:35.853" CommentCount="1" />
  <row Id="18563" PostTypeId="2" ParentId="18551" CreationDate="2010-11-12T05:38:56.120" Score="11" ViewCount="" Body="&lt;p&gt;It doesn't &lt;em&gt;sound&lt;/em&gt; (at least to me) like your code is particularly object-oriented, or particularly similar to &quot;Modern C++&quot;. Rather the contrary, one of the &lt;em&gt;key&lt;/em&gt; elements of good object orientation is encapsulation, the primary intent of which is to &lt;em&gt;reduce&lt;/em&gt; the number of things you need to keep track of at any given time. Likewise, &quot;very spaghetti-like ... flow of execution&quot; sounds neither object oriented nor modern (anything).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I suppose if I looked at the code you're maintaining, I might see it differently, and/or you might see my code as being similar to what you're maintaining right now -- that's a bit hard to guess. It is true that if you tried to trace through every detail of how my code works, I suppose you could see it as a rather spaghetti-like flow of control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just for example, I'm a lot more fond (or at least tolerant) of quite a few implicit conversions than many programmers -- I use things like proxy classes quite a bit. This means there might easily be three or four temporary objects of different types created in the course of calling a single function (and note that I'm not talking about actually &lt;em&gt;executing&lt;/em&gt; the function, just &lt;em&gt;calling&lt;/em&gt; it). Of course, all of those temporary objects will be destroyed again at the end of the expression containing the function call. If you count it up, you might easily have half a dozen or more separate functions invoked in calling/returning from one function that's &quot;visibly&quot; called in the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point of doing things that way, however, is to make it easy to &lt;em&gt;ignore&lt;/em&gt; most of the trivia involved in (for example) dealing with details like &lt;em&gt;how&lt;/em&gt; a particular object is represented, and concentrate solely on what it really &lt;em&gt;is&lt;/em&gt; instead. You'd only ever need to deal with most of that code if you saw a bug in that particular part. I try to avoid much of that, however, by creating classes so small and simple, that do so little, that it takes barely more than a glance to realize that it's &lt;em&gt;obviously&lt;/em&gt; correct, so it's easy to ignore from then on.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-12T05:38:56.120" CommentCount="5" />
  <row Id="18564" PostTypeId="1" CreationDate="2010-11-12T06:03:05.960" Score="22" ViewCount="1419" Body="&lt;p&gt;Everyone knows of the old adage that the best programmers can be orders of magnitude better than the average. I've personally seen good code and programmers, but never something so absurd. So the questions is, what is the most impressive feat of programming you ever witnessed or heard of? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can define impressive by:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;The scope of the task at hand &lt;em&gt;e.g. John single handedly developed the framework for his company, a work comparable in scope to what the other 200 employed were doing combined.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Speed &lt;em&gt;e.g. Stu programmed an entire real time multi-tasking app OS on an weekened including  its own C compiler and shell command line tools&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Complexity &lt;em&gt;e.g. Jane rearchitected our entire 10 millon LOC app to work in a cluster of servers. And she did it in an afternoon.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Quality &lt;em&gt;e.g. Charles's code had a rate of defects per LOC 100 times lesser than the company average. Furthermore he code was clean and understandable by all.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Obviously, the more of these characteristics combined, and the more extreme each of them, the more impressive is the feat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, let me have it. What's the most absurd feat you can recount? Please provide as much detail as possible and try to avoid urban legends or exaggerations. Post only what you can actually vouch for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bonus questions: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Was the herculean task a one-of, or did the individual regularly amazed people?&lt;/li&gt;&#xA;&lt;li&gt;How do you explain such impressive performance?&lt;/li&gt;&#xA;&lt;li&gt;How was the programmer recognized for such awesome work?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4142" LastEditorUserId="4142" LastEditorDisplayName="" LastEditDate="2010-11-17T19:31:40.027" LastActivityDate="2010-11-17T19:31:40.027" Title="Whats the greatest most impressive programing feat you ever witnessed?" Tags="&lt;productivity&gt;&lt;great-programmer&gt;" AnswerCount="21" CommentCount="6" FavoriteCount="5" />
  <row Id="18565" PostTypeId="2" ParentId="18556" CreationDate="2010-11-12T06:08:17.703" Score="0" ViewCount="" Body="&lt;p&gt;When I've worked in a team of 2 people: &lt;A href=&quot;http://trac.edgewall.org/&quot; rel=&quot;nofollow&quot;&gt;Trac&lt;/A&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a wiki, source code repository and issue management system. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And because it was hosted by a third-party company, that setup time was negligible.&lt;/p&gt;&#xA;" OwnerUserId="7567" LastActivityDate="2010-11-12T06:08:17.703" />
  <row Id="18566" PostTypeId="2" ParentId="18556" CreationDate="2010-11-12T06:09:29.813" Score="0" ViewCount="" Body="&lt;p&gt;Paper, just like the mafia bookkeepers. &lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-11-12T06:09:29.813" CommentCount="2" />
  <row Id="18567" PostTypeId="1" AcceptedAnswerId="18588" CreationDate="2010-11-12T06:23:50.363" Score="4" ViewCount="234" Body="&lt;p&gt;I am new to the tablet market, but i am trying to learn more.  Are any current tablets capable of running programming software such as Visual Studio?  I understand they'd have to come up with some kind of streamlined version, but I can imagine the programmers out there excited about the possibility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anything like that already exist, or are there rumors of it being available in the near future?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&#xA;Seth&lt;/p&gt;&#xA;" OwnerUserId="7434" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-12T10:13:18.417" LastActivityDate="2010-11-12T14:44:21.947" Title="Tablets Running IDEs" Tags="&lt;software-developer&gt;&lt;mobile&gt;" AnswerCount="5" />
  <row Id="18568" PostTypeId="2" ParentId="4693" CreationDate="2010-11-12T06:31:33.017" Score="0" ViewCount="" Body="&lt;p&gt;I don't think we are arrogant.  It's just that our job is not seen in high esteem, and we compensate for it with arrogance.  :)&lt;/p&gt;&#xA;" OwnerUserId="6952" LastActivityDate="2010-11-12T06:31:33.017" CommunityOwnedDate="2010-11-12T06:31:33.017" />
  <row Id="18569" PostTypeId="2" ParentId="18567" CreationDate="2010-11-12T06:45:58.960" Score="1" ViewCount="" Body="&lt;p&gt;So long as they have enough RAM and disk space, any tablet running a regular desktop copy of Windows (ie, not Windows CE) will be able to run Visual Studio.  There's tons of them, and they've been around for years.  You'll want some sort of external keyboard of course, unless you get one of the more fancy 'convertable' laptops.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-12T06:45:58.960" />
  <row Id="18570" PostTypeId="2" ParentId="18556" CreationDate="2010-11-12T06:55:37.153" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.redmine.org/&quot; rel=&quot;nofollow&quot;&gt;Redmine&lt;/a&gt; manages issues and also has a wiki. Integrate that with a version control system (Git, Hg or Svn), and that's pretty much all what's needed.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-11-12T06:55:37.153" CommentCount="1" />
  <row Id="18571" PostTypeId="2" ParentId="18564" CreationDate="2010-11-12T07:01:09.487" Score="27" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Fast_inverse_square_root&quot; rel=&quot;nofollow&quot;&gt;Fast inverse square root&lt;/a&gt;. How someone can come up with something like that is completely beyond me.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-11-12T07:01:09.487" CommentCount="15" />
  <row Id="18572" PostTypeId="2" ParentId="18564" CreationDate="2010-11-12T07:02:49.033" Score="-1" ViewCount="" Body="&lt;p&gt;I'm not sure that this counts really...but the fellow that developed ruby.  I just can't get past the elegance of the language.  And I believe it was the first language to support dynamic typing, although I am not the guy that started with punchcards and writing assembly so I could be mistaken.&lt;/p&gt;&#xA;" OwnerUserId="4534" LastActivityDate="2010-11-12T07:02:49.033" CommentCount="1" />
  <row Id="18573" PostTypeId="2" ParentId="18564" CreationDate="2010-11-12T07:14:41.717" Score="4" ViewCount="" Body="&lt;p&gt;In my degree class my classmate created an OS (albeit very basic but it booted from a floppy and did the necessary routines) as a project requirement in under 30 days. The duration is inclusive of both the necessary reading/research and actual coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I remember os.com mailing lists guys discouraging him saying he wouldn't be doing it in that few days and I also have seen him walking through the dorm at 5 am in the morning in a semi conscious state talking gibberish. :-) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;He is an awesome programmer.&lt;/p&gt;&#xA;" OwnerUserId="6693" LastActivityDate="2010-11-12T07:14:41.717" />
  <row Id="18574" PostTypeId="2" ParentId="18502" CreationDate="2010-11-12T07:15:46.630" Score="1" ViewCount="" Body="&lt;p&gt;Yes, i am the one who wants to be a developer for next at least 5yrs. i think this is one of the good fields where you can improve your knowledge, i am so much enjoying my work and schedule.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks. &lt;/p&gt;&#xA;" OwnerUserId="7570" LastActivityDate="2010-11-12T07:15:46.630" CommunityOwnedDate="2011-01-26T02:24:50.517" />
  <row Id="18576" PostTypeId="2" ParentId="18120" CreationDate="2010-11-12T07:23:10.773" Score="1" ViewCount="" Body="&lt;p&gt;I had taken one of the very good decisions in my life was come to Ahmadabad and started my career in MCA. Before that i had never think about it and was very nervous, but that was the tremendous decision taken by me, actually it was not my decision but my parents's and brother's.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now i feel too much batter than that, now i can say yes &quot;I HAVE DONE IT&quot;..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for support me. :) &lt;/p&gt;&#xA;" OwnerUserId="7570" LastActivityDate="2010-11-12T07:23:10.773" CommunityOwnedDate="2010-11-13T20:22:38.513" CommentCount="2" />
  <row Id="18577" PostTypeId="2" ParentId="9498" CreationDate="2010-11-12T07:38:50.267" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://ormbattle.net/&quot; rel=&quot;nofollow&quot;&gt;ORM Comparison and Benchmarks on ORMBattle.NET&lt;/a&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/qb8bx.png&quot; alt=&quot;enter image description here&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2011-04-01T10:39:09.230" LastActivityDate="2011-04-01T10:39:09.230" CommentCount="1" />
  <row Id="18578" PostTypeId="1" CreationDate="2010-11-12T08:16:15.260" Score="5" ViewCount="218" Body="&lt;p&gt;Getting a &lt;a href=&quot;http://en.wikipedia.org/wiki/Project_Management_Professional&quot; rel=&quot;nofollow&quot;&gt;Project Management Professional (PMP)&lt;/a&gt; certification can be rigorous. Did you attempt it? How was your preparation process? Was there any hiccups filling out PMP project experience details? Currently, I am going thru PMbok guide.  Looks like full of theory to me!! And I have read it at least  twice !!&lt;/p&gt;&#xA;" OwnerUserId="7478" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-11-16T19:40:31.403" LastActivityDate="2010-11-16T19:40:31.403" Title="PMP certificate. How did you achieve it? How was the preparation?" Tags="&lt;career&gt;&lt;project-management&gt;&lt;career-advice&gt;&lt;certification&gt;" AnswerCount="2" />
  <row Id="18579" PostTypeId="1" AcceptedAnswerId="18583" CreationDate="2010-11-12T08:35:49.493" Score="11" ViewCount="582" Body="&lt;p&gt;Is there any reason to keep using Linq to SQL, or is it better to move to ORM techniques like EF, NHibernate etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are using Linq to SQL in a new large enterprise application that will exist for a long time. The motivation for this new enterprise application is that the application was ordinary written in Visual Basic and since Microsoft stopped the support we where forced to rewrite the application. It’s seems that we are already there but this time with our DAL (Data Access Layer).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have already read this &lt;a href=&quot;http://www.infoq.com/news/2008/11/DLINQ-Future&quot; rel=&quot;nofollow&quot;&gt;article&lt;/a&gt;, but it only compare to EF's weakness.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-11-12T09:15:00.490" LastActivityDate="2010-11-15T19:12:02.647" Title="Is LINQ to SQL dead?" Tags="&lt;best-practices&gt;&lt;database-development&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="4" />
  <row Id="18580" PostTypeId="2" ParentId="18556" CreationDate="2010-11-12T08:36:02.770" Score="0" ViewCount="" Body="&lt;p&gt;Jira + Confluence, or, generally, bug tracker and a collaboration web-framework.&lt;/p&gt;&#xA;" OwnerUserId="4676" LastActivityDate="2010-11-12T08:36:02.770" />
  <row Id="18581" PostTypeId="2" ParentId="18564" CreationDate="2010-11-12T08:54:56.537" Score="1" ViewCount="" Body="&lt;p&gt;Linus Trovalds writing Linux&lt;/p&gt;&#xA;" OwnerUserId="672" LastEditorUserId="672" LastEditorDisplayName="" LastEditDate="2010-11-12T10:45:45.757" LastActivityDate="2010-11-12T10:45:45.757" />
  <row Id="18582" PostTypeId="2" ParentId="18579" CreationDate="2010-11-12T08:56:30.053" Score="2" ViewCount="" Body="&lt;p&gt;It's not dead as it still works, but if it's not being developed further then it can make sense to move to something else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if it works for your application there's no point in changing for the sake of changing.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-11-12T08:56:30.053" />
  <row Id="18583" PostTypeId="2" ParentId="18579" CreationDate="2010-11-12T08:57:37.433" Score="7" ViewCount="" Body="&lt;p&gt;If you're already using it and not encountering any difficulties, I'd stick with it on existing projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Linq2SQL is quite a nice, but limited, ORM - if you want to map your objects in more complex ways than the basic ones provided by Linq2SQL then you're going to be stuck. Microsoft did fix a few bugs when they came out with .net 4 but have stated that they're not going to be devoting resources to extending it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say if you have a fairly simple project which possibly has a limited lifespan then Linq2SQL is a decent lightweight choice so long as you're careful not to leak dependencies to Linq2SQL all over the place. For anything more I'd go with something else (NHibernate or EF for example) as Linq2SQL is pretty much a dead end.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-12T08:57:37.433" CommentCount="2" />
  <row Id="18585" PostTypeId="1" AcceptedAnswerId="18668" CreationDate="2010-11-12T09:15:29.663" Score="31" ViewCount="1659" Body="&lt;p&gt;Often we as programmers see large organisations wasting huge sums of money on bloated and inefficient solutions to problems. This pains me greatly because I like organisations to benefit from best of breed solutions. However, my abilities as a programmer are limited when it comes to influencing the key decision makers and often my perspective on the matter is constrained to my own little technical world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, my question is this. After encountering an egregious waste of money on some software and/or hardware that really got your goat, &lt;strong&gt;what did you do about it to get it fixed&lt;/strong&gt; or were you doomed to bite the bullet and mutter forever under your breath? I'm interested in hearing your overall experiences &lt;strong&gt;and especially what lessons you learned about how to tackle this sort of thing in the future&lt;/strong&gt;. Let's not name names, the experience of how to tackle the problem is more important than the actual offending product.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-13T02:05:45.200" LastActivityDate="2010-11-30T11:49:55.010" Title="What is the most egregious waste of money you have seen, and what did you do about it?" Tags="&lt;experience&gt;&lt;management&gt;&lt;license&gt;&lt;changes&gt;&lt;cost&gt;" AnswerCount="24" CommentCount="6" FavoriteCount="8" />
  <row Id="18586" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T09:25:41.540" Score="21" ViewCount="" Body="&lt;p&gt;My two favorites:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hiring consultants&lt;/strong&gt; (freelance) &lt;em&gt;just to add more production capacity&lt;/em&gt;, while they should &lt;em&gt;invest in their own employees&lt;/em&gt; instead, by hiring consultants to bring new knowledge and coaching their existing people.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hiring project managers&lt;/strong&gt; that manage other project managers that manage other project managers that finally (think) they manage the development team. While they should let the team self manage and focus on business instead. I've seen software projects where they had more project managers than developers. Imagine the meetings.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-11-13T06:15:56.187" LastActivityDate="2010-11-13T06:15:56.187" CommentCount="10" />
  <row Id="18587" PostTypeId="2" ParentId="13623" CreationDate="2010-11-12T09:31:03.497" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;1) If I give a developer a slower machine, does that mean that the resulting code may be faster or more efficient?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No. Good Developers are spoiled. If they see they get bad tools at your company, they will go work somewhere else. (Good developers usually have the choice to go someplace else)&lt;/p&gt;&#xA;" OwnerUserId="2894" LastActivityDate="2010-11-12T09:31:03.497" CommunityOwnedDate="2010-11-12T09:31:03.497" />
  <row Id="18588" PostTypeId="2" ParentId="18567" CreationDate="2010-11-12T09:31:34.847" Score="7" ViewCount="" Body="&lt;p&gt;To be honest I think the tablet form factor would make for a very poor development environment.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Screens tend to be small, keyboards are virtual (and if you're carrying a physical keyboard too then why not just carry a laptop and be done), there's no mouse (yes there's a touch screen but think about precision and movement of your hand up to the screen continuously) and they're under powered by laptop / desktop standards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe that will change one day but for now I'd stick to a desktop / laptop for development and look at tablets for more casual use, media consumption and creative tasks they're more suited to.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-12T09:31:34.847" CommentCount="1" />
  <row Id="18589" PostTypeId="2" ParentId="18444" CreationDate="2010-11-12T09:35:39.200" Score="3" ViewCount="" Body="&lt;p&gt;I have never run into an Architect who was useful, or practical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me the biggest issues I've seen are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;blind adherence to process for the sake of process rather than efficiency&lt;/li&gt;&#xA;&lt;li&gt;blind bias to technology before knowing the problem&lt;/li&gt;&#xA;&lt;li&gt;creation and enforcement of rules without a good justification&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;rewrite from scratch&lt;/code&gt; mentality&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The best &quot;Architects&quot; I've worked with brought to the table:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Questions that drove to a better understanding of the problem.&lt;/li&gt;&#xA;&lt;li&gt;Design options/technologies and their trade-offs.&lt;/li&gt;&#xA;&lt;li&gt;Clear and rational explanations for both condemnations and endorsements.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The problem for me is the best &quot;Architects&quot; I've worked with didn't have &quot;Architect in their title.  They were most often Software Engineers who are grounded in the specific problem and projects.  They understood that in most businesses it isn't practical to rewrite a working codebase from scratch.  Instead they would map out how to iterate the codebase to a new architecture over time and still keep everything functional.  They give conservative recommendations instead of recommending whatever is &lt;em&gt;dejour&lt;/em&gt;. They would communicate a cohesive vision of how things should work and why, &lt;strong&gt;BUT&lt;/strong&gt; more importantly they would map out how to get there.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-11-12T09:35:39.200" />
  <row Id="18590" PostTypeId="2" ParentId="18478" CreationDate="2010-11-12T09:43:01.950" Score="2" ViewCount="" Body="&lt;p&gt;I'm happy to go with the Oxford English Dictionary pronounciation:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://oxforddictionaries.com/view/entry/m_en_gb0975007#m_en_gb0975007&quot; rel=&quot;nofollow&quot;&gt;http://oxforddictionaries.com/view/entry/m_en_gb0975007#m_en_gb0975007&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;which is toople (or more accurately /ˈtjuːp(ə)l/).&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-12T09:43:01.950" CommentCount="2" />
  <row Id="18591" PostTypeId="2" ParentId="18564" CreationDate="2010-11-12T09:47:57.937" Score="5" ViewCount="" Body="&lt;p&gt;I remember it very clearly; on highschool a classmate has coded a full-blown driving videogame in a couple of lessons with &lt;a href=&quot;http://en.wikipedia.org/wiki/Qb45&quot; rel=&quot;nofollow&quot;&gt;QB45&lt;/a&gt; (Quick Basic 4.5).&#xA;Vertical scrolling, stopwatch, lifes, levels; I was totally shocked. &lt;/p&gt;&#xA;" OwnerUserId="74" LastActivityDate="2010-11-12T09:47:57.937" CommentCount="1" />
  <row Id="18592" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T10:01:16.660" Score="34" ViewCount="" Body="&lt;p&gt;I've seen too many examples to name a favourite, but I've noticed a few general trends in my main field, web-development:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Vanity Websites&lt;/strong&gt;. These are websites that serve no useful purpose to anyone outside the small organisation that commissions them and are built around an obsessive compulsion with logos, photos of themselves and self-indulgent waffle. The worst part is these are usually public-sector funded and commissioned by people who have no clue about the web. (For instance, once had a NHS hospital trust who wanted to develop a mini-version of Facebook for their own staff intranet).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Paid for is Best&lt;/strong&gt;. The mindset that insists that&#xA;paid-for software must intrinsically&#xA;be better than open-source. After&#xA;all, it's paid for, right? I've seen&#xA;so many clients insist on making&#xA;stupid choices simply because they&#xA;work in a culture that automatically&#xA;discounts anything open-source as a&#xA;matter of policy.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Design by committee.&lt;/strong&gt; This is where a huge group of people have a &quot;brainstorm&quot; and then try to incorporate every crack-pot idea there is into the design, inevitably resulting in a ill-thought through mess that compromises on everything in favour of trying to please everyone (and by everyone they mean the committee making the decisions, not the people having to use the application).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consultants.&lt;/strong&gt; This is where you pay a middle-man (who knows neither business practices nor software development) to get in the way and cream-off money by protracting the development process with confusing techno-babble and business-speak.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-11-12T10:01:16.660" CommentCount="14" />
  <row Id="18593" PostTypeId="2" ParentId="18564" CreationDate="2010-11-12T10:02:19.623" Score="-2" ViewCount="" Body="&lt;p&gt;David Heinemeier Hansson creating Rails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first time I installed Rails and set up a test site against a database and it did all the framework and CRUD stuff automatically, set up the test site and it was like my eyes were open for the first time to what can be done before you start programming. That was really impressive and I've seen ideas from that appearing all over the place in other languages/platforms since then.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastEditorUserId="4027" LastEditorDisplayName="" LastEditDate="2010-11-16T12:11:58.797" LastActivityDate="2010-11-16T12:11:58.797" CommentCount="7" />
  <row Id="18594" PostTypeId="2" ParentId="18357" CreationDate="2010-11-12T10:22:10.590" Score="0" ViewCount="" Body="&lt;p&gt;There is one really important thing to notice (as metioned on DotNetRocks show 608)...usually you wanna hire a guy that knows concepts and algorithms over a language specialist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Know stuff like... IoC, Design patterns and stuff like that. It doesn't really matter if you know how to do really tricky 10 nested Linq queries if you don't know how to bring bread on the table in a flexible manner...I actually think that the main focus is know allot more about how to create good solutions over how the language can do this and that.&lt;/p&gt;&#xA;" OwnerUserId="564" LastActivityDate="2010-11-12T10:22:10.590" CommentCount="1" />
  <row Id="18595" PostTypeId="2" ParentId="18564" CreationDate="2010-11-12T10:29:54.557" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Git and/or Linux&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Linus Torvalds wrote an operating system kernel and a version control system from scratch. I don't know of anyone with a similar productivity.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-11-12T10:29:54.557" CommentCount="7" />
  <row Id="18596" PostTypeId="2" ParentId="18564" CreationDate="2010-11-12T10:30:14.933" Score="6" ViewCount="" Body="&lt;p&gt;In spite of its questionable purpose, I'm still in awe about a &lt;a href=&quot;http://userscripts.org/scripts/show/56989&quot; rel=&quot;nofollow&quot;&gt;captcha solver userscript for MegaUpload&lt;/a&gt;. It's a GreaseMonkey script written in JavaScript that has a bitmap decoder and a neural network that recognizes the letters in the captcha image, and I repeat, all of this is made using JavaScript. &lt;/p&gt;&#xA;" OwnerUserId="1281" LastActivityDate="2010-11-12T10:30:14.933" CommentCount="1" />
  <row Id="18597" PostTypeId="2" ParentId="18579" CreationDate="2010-11-12T10:33:22.747" Score="9" ViewCount="" Body="&lt;p&gt;It's not dead, but Microsoft is now focused on the Entity Framework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've used LINQ to SQL on small projects, and it's quite nice as a lightweight data-layer and i'd consider using it again on similar sized projects. The LINQ implementation itself is really good and until recently &lt;em&gt;much&lt;/em&gt; better than the NHibernate LINQ project. On the larger project I used L2S on, I found it hard to come up with a unit-of-work pattern that I was happy with, due to limitations with the L2S 'DataContext' class. Trying to implement something like 'Session per request' with L2S seems either very difficult or impossible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also wouldn't really consider L2S as a true ORM, as it really doesn't give you many mapping options. Your class design really needs to follow your database schema (table-per-class) otherwise it will fight with you every step of the way. Another thing I don't like about L2S is the need to use specific types (&lt;code&gt;EntitySet&lt;/code&gt; and &lt;code&gt;EntityRef&lt;/code&gt;) to handle collections, references and lazy-loading. This means it's not possible to keep your domain model ORM agnostic without adding another layer of abstraction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My other issue with L2S is the sole reliance on LINQ to generate queries. The LINQ provider is very well written and generally creates decent SQL for the majority of queries but I have my concerns that there are more complex queries that can't be expressed well with LINQ. Using L2S you basically have to revert to calling stored procedures in these cases, whereas (for example) NHibernate has several API's (LINQ provider, QueryOver, HQL etc) that can be used when you want more control over the generated SQL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In L2S's defence over NHibernate, there is &lt;em&gt;a lot&lt;/em&gt; less overhead in getting it up and running on a project.&lt;/p&gt;&#xA;" OwnerUserId="562" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-15T19:12:02.647" LastActivityDate="2010-11-15T19:12:02.647" />
  <row Id="18598" PostTypeId="1" CreationDate="2010-11-12T10:33:49.497" Score="4" ViewCount="163" Body="&lt;p&gt;What is the origin (reference, time, author) of the following quote? For instance, is it from a book?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Programmers combine like resistors in parallel.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It may be by &lt;a href=&quot;http://en.wikipedia.org/wiki/Gerald_Jay_Sussman&quot; rel=&quot;nofollow&quot;&gt;Gerry Jay Sussman&lt;/a&gt;, and I can not rule out the quote comes in several variations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Optionally, &lt;strong&gt;&lt;em&gt;secondary&lt;/em&gt;&lt;/strong&gt; question: what does this quote mean?&lt;/p&gt;&#xA;" OwnerUserId="591" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2010-11-12T10:49:14.617" LastActivityDate="2010-11-12T11:27:11.040" Title="Source for &quot;Programmers combine like resistors in parallel&quot;" Tags="&lt;quotes&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="18599" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T10:45:46.207" Score="6" ViewCount="" Body="&lt;p&gt;I've seen a couple of horrible outsourcing projects that succeeded in significantly increasing costs while either failing to increase or actually reducing efficiency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the worst case the new outsource team were put in place and up skilled but the existing on-shore team remained in place because the outsource team weren't trusted to actually do any of the critical work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this point the logical thing to do would obviously have been to accept failure and shut down the outsource team but because management weren't willing to publicly admit that it hadn't worked both teams were left in place (at a significant increase in cost with no increase in efficiency or usable capacity) until the whole thing could be buried.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In another instance development was outsourced and the original team laid off.  Two years later they realised that it hadn't worked and paid to bring the whole lot in-house again only to find that in addition to the very significant costs of another handover, the impact of lost knowledge, recruitment fees, contract terminations and so on, the outsource organisation had lost a significant chunk of the source code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Note: I'm not saying outsourcing can't work, just that too many times people are seduced by potential savings and don't consider the realities of their new world, the change to process and working practices and so on which leads to majorly screwed projects)&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-12T10:45:46.207" CommentCount="2" />
  <row Id="18601" PostTypeId="2" ParentId="18598" CreationDate="2010-11-12T11:05:58.973" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;(Massive edit to indicate ChrisF's alternate reading and highlight why that sort of thing makes metaphors a bit rubbish).&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No idea where it came from but in terms of what it could mean:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Resistors in series (that is one after the other) essentially combine together as the sum of their values.  So one 100 ohm resistor and one 200 ohm resistor in series are the same as one 300 ohm resistor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In parallel it's different - they share the burden and the total is actually less than any of the individual values.  So if you have 100 ohm and 200 ohm resistors in parallel, their equivalent value is 66.66 ohms (1/R = 1/R1 + 1/R2).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So as to what that means in terms of programmers, there are two ways to think of it:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Resistance is an indicator of resistance to work getting done (that is the lower the resistance the more work gets done):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have one good programmer and one bad programmer, even if the bad programmer only does a tiny bit of useful work, that's a bit of work the good programmer doesn't have to do, hence overall they are more effective together than he would be on his own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously there are all sorts of issues that can be raised with this - that bad programmers can actually be negatively effective, that if you follow this through to it's (il)logical conclusion means that throwing people at projects makes them faster and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Resistance is an metaphor for productivity (that is the higher the resistance the better):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you read it this way then every extra developer actually reduces the total productivity below that of the level of the weakest member, essentially saying that they're all slowed down by the required co-ordination and communication.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again, lots of issues (primarily that we've all seen teams work) but in it's own way potentially a fair point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the overall point would be that it's a bit of a rubbish metaphor as it isn't clear and has two possible readings, with completely opposite meanings.  Welcome to why metaphors, while useful, are often evil.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(And for the record that's the first time I've used my degree - Electronic Engineering - since graduating over 16 years ago.  This is year 1, term 1 stuff and I still needed Google to nudge my memory and have probably still got it wrong).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-12T11:27:11.040" LastActivityDate="2010-11-12T11:27:11.040" CommentCount="4" />
  <row Id="18602" PostTypeId="2" ParentId="18578" CreationDate="2010-11-12T11:16:10.240" Score="3" ViewCount="" Body="&lt;p&gt;The best piece of advice I can offer is to take a PMP exam prep course. If you can find a reputable organization with good instructors, it will put the entire PMBOK into context and make in much more approachable. You'll need to show proof of 35 &quot;contact hours&quot; of formal education anyway, and that's just enough for a good prep course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I actually found it more challenging to break down 3500 hours of work into each of the project phases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the exam - a couple of months after the prep course, I sat down, read the PMBOK through cover-to-cover, e-mailed my classmates from the prep course to see who had written it and if they had any advice (answer: memorize all the Earned Value formulae, and write out a cheat sheet during the exam tutorial, since it takes only a short time to go through the tutorial, but you are allocated about 15 minutes). They I plowed through the exam. I saved time by deciding not to revisit any questions - either I could answer it correctly when I saw it, or I had no idea of the answer; either way, there was no need to take a second pass through the questions, of which there are a huge number.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, I see you are not in the GTA, so I can't recommend the company from which I took the prep course. But ask around in your area.&lt;/p&gt;&#xA;" OwnerUserId="1852" LastEditorUserId="1852" LastEditorDisplayName="" LastEditDate="2010-11-12T13:02:50.640" LastActivityDate="2010-11-12T13:02:50.640" />
  <row Id="18604" PostTypeId="2" ParentId="7536" CreationDate="2010-11-12T11:28:50.227" Score="0" ViewCount="" Body="&lt;p&gt;Yes, at work, where they tell me I have to do so to follow their Standard :)&lt;/p&gt;&#xA;" OwnerUserId="3991" LastActivityDate="2010-11-12T11:28:50.227" />
  <row Id="18605" PostTypeId="2" ParentId="16137" CreationDate="2010-11-12T11:29:11.863" Score="2" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;build &lt;strong&gt;something interesting&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;show the world&lt;/strong&gt; what's interesting about it. Make screenshots, write tutorials and documentation (more than only the API reference)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;be friendly and open&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-11-12T11:29:11.863" />
  <row Id="18607" PostTypeId="2" ParentId="7588" CreationDate="2010-11-12T11:44:58.393" Score="0" ViewCount="" Body="&lt;p&gt;Hi Chris,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;good question. We are currently also trying to find out which tool fits best for us. So I will only be able to tell you a little experience.&#xA;But we would be very interested in, which CI system you chose now and for which reasons. So please keep us informed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm very impressed how high the level of your CI is. I have to admit that we have less requirements because we don't run UI tests yet and don't create database instances or similar, we just using mocks for our unit tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now to our experiences up to now:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Java projects we are using Bamboo which works fine using JUnit and Emma. And there is not so much effort to set up a new project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For .NET projects we are still searching for the best solution&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Cruise Control: We could not get it running yet due to problems with connection to our repository&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;TFS : &lt;/p&gt;&#xA;&#xA;&lt;p&gt;a) There are a few setup steps necessary to be able to execute the first build. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;b) There are some pitfalls where you have to get over regarding access rights. There are many roles you can define and you have to know exactly which rights has your build process and which has your personal login account. But if you have enough time to manage, you can define every particular granularity you need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;c) Regarding referenced libs there are also some things to manage if you want to share libs for many projects and don't want to handle them at every single project&lt;/p&gt;&#xA;&#xA;&lt;p&gt;d) Running NUnit test is not so easy as we thought. It's only easy if you are using test execution provided by Visual Studio, but this is not NUnit&lt;/p&gt;&#xA;&#xA;&lt;p&gt;e) We didn't try to run NCover yet (first things first :-))&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Hudson : Next tool we'll try. Seems to have a really good and easy plugin for .NET, I will let you know how it worked&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Bamboo : First prediction we got: &quot;Too Java specific&quot;. But maybe we'll try the .NET plugin nevertheless, I will let you know&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Hope, we can continue this discussion and exchange experiences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Andy&lt;/p&gt;&#xA;" LastActivityDate="2010-11-12T11:44:58.393" />
  <row Id="18609" PostTypeId="1" CreationDate="2010-11-12T12:13:52.583" Score="2" ViewCount="169" Body="&lt;p&gt;We have a situation where our users need to geocode a location (programmatically turn a description into latitude/longitude coordinates) from within an application unable to show a graphic image. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since the Yahoo Geocoding API and the Google Geocoding API both require that the result is used for showing maps (which is a graphic image) this means that we cannot use them immediately. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a Geocoding facility available - web service or locally installed (preferred if it does not require network access) - that can be used for such a scenario with a reasonable price model?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We can use either Windows applications, Java libraries or remote web services in this particular scenario.  Suggestions?&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-15T17:06:31.200" Title="Geocoding for an application unable to show maps?" Tags="&lt;java&gt;&lt;windows&gt;&lt;web-services&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="1" />
  <row Id="18610" PostTypeId="2" ParentId="18567" CreationDate="2010-11-12T12:14:02.307" Score="0" ViewCount="" Body="&lt;p&gt;Given that &lt;a href=&quot;http://www.squeak.org&quot; rel=&quot;nofollow&quot;&gt;Squeak Smalltalk&lt;/a&gt;(*) &lt;a href=&quot;http://code.google.com/p/squeak-android-vm/&quot; rel=&quot;nofollow&quot;&gt;runs&lt;/a&gt; on Android, and ViewSonic have their ViewPad 10 out, I think it's certainly doable, if you're a Squeaker or Pharo programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm more than willing to find out, if someone wants to donate the hardware!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, I forgot: Bert Freudenberg's already &lt;a href=&quot;http://croquetweak.blogspot.com/2010/06/squeak-etoys-on-ipad.html&quot; rel=&quot;nofollow&quot;&gt;demonstrated EToys on the iPad&lt;/a&gt;, so Squeak already runs on a tablet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(*) Squeak is its own IDE or, if you prefer, Squeak ships with an IDE.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-11-12T12:14:02.307" />
  <row Id="18611" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T12:24:26.737" Score="6" ViewCount="" Body="&lt;p&gt;There are two that I have experienced. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Cancelling a project that had a huge ROI for the business that was about 80% completed and then handing out 100 engraved and gold plated iPods to senior executives.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Laying-off several hundred people and then the following day announcing substantial pay raises and bonuses for the senior executives.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;These are not totally programming related, but most certainly wasted a lot of money, plus provided a slap to the face for all those involved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I didn't get laid off, but I also didn't get a raise or an iPod either...&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-13T02:39:20.110" LastActivityDate="2010-11-13T02:39:20.110" CommentCount="4" />
  <row Id="18612" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T12:37:52.000" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Technical Debt&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen is the chronic &quot;beating the dead horse&quot; of legacy code. Or more to the point, from the viewpoint of the trenches, countless hours spent in maintenance mode when the whole team knows we should be in replacement mode. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What we've done.... is still on going. Trying to invoke positive change from within&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Performance Testing&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simply, not doing it.  Again, still working on the positive change from within.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-11-12T12:37:52.000" CommentCount="6" />
  <row Id="18613" PostTypeId="2" ParentId="18282" CreationDate="2010-11-12T12:41:27.940" Score="3" ViewCount="" Body="&lt;p&gt;In days of old&lt;br&gt;&#xA;When DOS was bold&lt;br&gt;&#xA;And BASIC came preloaded&lt;br&gt;&#xA;The code we made&lt;br&gt;&#xA;Was well displayed&lt;br&gt;&#xA;Before the screen imploded&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In 1986 at Craven Community College, my Introduction to Computer Programming class used this book; &lt;strong&gt;&lt;em&gt;Structured BASIC for the IBM PC with Business Applications&lt;/em&gt;&lt;/strong&gt; (ISBN 0-87150-990-3) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can write very structured code with BASIC. Having said this, I'd guess that 20% of the code was structured. VB is an extension of BASIC. Learning to write VB code is not that difficult. In my younger days I would refer to VB as a &lt;strong&gt;&lt;em&gt;kiddie language&lt;/em&gt;&lt;/strong&gt;. That didn't win me very many friends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would have to say that because VB got it's roots from BASIC and BASIC could be learned fairly easily, those associated with VB were most likely considered less diciplined in the craft of programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back in the day you would see this on every Radio Shack computer:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;10 INPUT &quot;What is your name?&quot;;NAME&#xA;20 PRINT &quot;Hello &quot;;NAME&#xA;30 GOTO 20&#xA;40 END&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-12T12:41:27.940" CommentCount="1" />
  <row Id="18614" PostTypeId="1" CreationDate="2010-11-12T12:42:15.117" Score="10" ViewCount="439" Body="&lt;p&gt;I'm curious if I should take this road as I'm interested in learning an additional language. &#xA;At the moment I'm learning Java and I've been thinking of learning C++ as well. With Java I won't be doing any GUI stuff, but rather mostly web and mobile applications. The reason I want to learn C++ is because I'm interested in working with Qt and making mobile applications as well. My current knowledges are: HTML/CSS (thought I should mention) and PHP. I haven't worked with PHP a lot by the way(couple of months), I've built sites and worked with Code Igniter on a personal site and, of course little WordPress tweaks/themes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason I ask this is because I want to organize myself so I will learn as much as possible and put my time to good use. &#xA;What tips would the more knowledgeable programmers give ? Should I take this road ? Yes/No, Why? Why not?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks :-)&lt;/p&gt;&#xA;" LastEditorUserId="2471" LastEditorDisplayName="" LastEditDate="2010-11-12T13:45:43.450" LastActivityDate="2010-11-12T13:45:43.450" Title="Is it advisable to learn two programming languages at the same time?" Tags="&lt;learning&gt;&lt;java&gt;&lt;c++&gt;" AnswerCount="5" FavoriteCount="2" />
  <row Id="18615" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T12:47:22.280" Score="8" ViewCount="" Body="&lt;p&gt;There is a much bigger issue at play here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many companies have one goal - to increase shareholder wealth.&#xA;What they produce is irrelevant.&#xA;How they produce it is irrelevant.&#xA;How much waste they produce is irrelevant.&#xA;The cost to society and the planet is irrelevant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So - go work for or start a company that does something of benefit for society / the planet.&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-12T12:47:22.280" CommentCount="5" />
  <row Id="18616" PostTypeId="2" ParentId="18614" CreationDate="2010-11-12T12:47:37.600" Score="0" ViewCount="" Body="&lt;p&gt;What kind of level are you at with them?  If you're just starting to learn Java, then throwing C++ into the mix will confuse you and make the process more painful.  But if you're fluent in Java and are studying advanced topics, then there's no reason you can't learn basic C++ at the same time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I think you might find it easier to learn a non-C-like language while learning Java, since you can keep the two separate (there's not much chance of confusing Ruby or F# with Java since the syntax is quite different).  You might also find the second language more of a break for those times when you get fed up of Java and fancy something else.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-11-12T12:47:37.600" />
  <row Id="18617" PostTypeId="2" ParentId="18564" CreationDate="2010-11-12T12:47:39.970" Score="14" ViewCount="" Body="&lt;p&gt;There is this one programmer where I work who has done the following on more than one occassion.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most recent example was a project in our group that was assigned to 3 people.  It was a complex LOB app with a 6 month schedule (that was an extremely aggressive timeline).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The week coding was to begin, 1 of the 3 people quit (for personal reasons) and another left on a very sudden medical leave.  The lone remaining programmer went home to start programming and returned &lt;strong&gt;3 months&lt;/strong&gt; later with the completed application.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just to add some clarification.  The resulting code was nearly perfect, spot-on to the requirements and our QA group was only able to document 3 defects.  &lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-15T19:35:28.850" LastActivityDate="2010-11-15T19:35:28.850" CommentCount="12" />
  <row Id="18618" PostTypeId="2" ParentId="18564" CreationDate="2010-11-12T12:52:37.850" Score="13" ViewCount="" Body="&lt;p&gt;Early arcade games. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Completely restricted by memory, processing power, I/O ... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What those programmers achieved in this environment was amazing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;E.g. Pacman - Perfect. Still playable after all these years.&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-12T12:52:37.850" CommentCount="6" />
  <row Id="18619" PostTypeId="2" ParentId="18614" CreationDate="2010-11-12T12:56:35.297" Score="4" ViewCount="" Body="&lt;p&gt;It really does depend on you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java and C++ look very similar so you may find your self getting confused as to why you can't do something because you forgot the feature is only in the other language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They both share the same basic concepts of OOP, but go about it in subtly different ways. It would probably be better for you to learn one language to a good level before moving to another one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I couldn't say which is easier, but I am sure that the second one will be a lot simpler as you will just be learning how to use that language rather then how to program in general.&lt;/p&gt;&#xA;" OwnerUserId="7583" LastActivityDate="2010-11-12T12:56:35.297" CommentCount="1" />
  <row Id="18620" PostTypeId="2" ParentId="18614" CreationDate="2010-11-12T12:56:49.880" Score="9" ViewCount="" Body="&lt;p&gt;Take it easy - one step at a time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't try to learn everything all at once.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rather than trying to take the language approach - take the problem solving / requirements approach. e.g. create a simple mobile app in one language - learn from this. Then try and re-create in a different language/environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The language is an implementation detail.&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-12T12:56:49.880" />
  <row Id="18621" PostTypeId="2" ParentId="18614" CreationDate="2010-11-12T13:00:55.850" Score="1" ViewCount="" Body="&lt;p&gt;When the languages are similar enough like Java and C#, then the differences become much less of a learning problem.  When the languages are different enough like Java and Ruby, the distinctions between them are enough so you won't confuse them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you used PHP, HTML, and CSS, I would recommend learning the basics of OOP by learning Java, C#, or Ruby first.  Once you have a good grasp of the concepts of OOP, you can graduate to the more advanced topics of C++ and pointers, manual memory management, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(A little off topic) Based on the way Oracle is treating Java and it's community, you may want to learn something else.  I've been developing Java for something like 15 years, but I've got a real sour taste in my mouth with all the political crap going on.  C# on the other hand is very similar and has a lot less drama.  It's just tied to Microsoft.  My favorite language right now happens to be Ruby (also drama free and fairly cross platform).&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-11-12T13:00:55.850" />
  <row Id="18622" PostTypeId="1" CreationDate="2010-11-12T13:05:25.560" Score="8" ViewCount="342" Body="&lt;p&gt;A question for seasoned developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you still get a sinking feeling when you see a stack dump?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any feelings of agitation, alarm, cold feet, confusion, consternation, dismay, &#xA;dread, fear, trepidation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me it usually means that I'm not 100% sure about my design or I have not done enough testing of my code.&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-15T06:19:40.540" Title="Do you still panic when you see a stack dump? Why?" Tags="&lt;learning&gt;&lt;self-improvement&gt;" AnswerCount="11" FavoriteCount="2" />
  <row Id="18623" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T13:05:30.697" Score="8" ViewCount="" Body="&lt;p&gt;Bloated development teams and terrible productivity in software companies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a consequence of the common pattern in the business world: the importance of a manager is measured by the number of subordinates, therefore a manager's number one concern is not productivity but quite the opposite: poorer productivity is the best justification to hire more people.&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-12T13:05:30.697" CommentCount="3" />
  <row Id="18624" PostTypeId="2" ParentId="18614" CreationDate="2010-11-12T13:07:12.287" Score="0" ViewCount="" Body="&lt;p&gt;Coming from a VB 6.0 background, I'm currently learning C, Objective-C, C++, C#, and Java for my day job, side job as an iOs dev, and schoolwork.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;not fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My suggestion is to get a large piece of paper, and write down in different colored ink (or typed up, whatev) the differences between the languages in the following respects:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;method calls&lt;/li&gt;&#xA;&lt;li&gt;Class declaration (C++ has that trailing &lt;code&gt;;&lt;/code&gt; after the &lt;code&gt;class {}&lt;/code&gt; block.  always gets me.)&lt;/li&gt;&#xA;&lt;li&gt;Object creation, destruction, class/static and instance reference&lt;/li&gt;&#xA;&lt;li&gt;Rules of inheritance&lt;/li&gt;&#xA;&lt;li&gt;Polymorphism&lt;/li&gt;&#xA;&lt;li&gt;Pointers (or lack thereof)&lt;/li&gt;&#xA;&lt;li&gt;Array Calls (VB was 1 based)&lt;/li&gt;&#xA;&lt;li&gt;public/private rules&lt;/li&gt;&#xA;&lt;li&gt;this/self/super rules&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7499" LastActivityDate="2010-11-12T13:07:12.287" CommentCount="2" />
  <row Id="18626" PostTypeId="2" ParentId="18622" CreationDate="2010-11-12T13:09:04.470" Score="3" ViewCount="" Body="&lt;p&gt;No, it's something I've gotten over several years ago. And remember there is no need to panic, the alarming would be if you did not see it (and the user did, with program crashing and all).&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-12T13:09:04.470" CommentCount="1" />
  <row Id="18627" PostTypeId="2" ParentId="18622" CreationDate="2010-11-12T13:14:39.843" Score="6" ViewCount="" Body="&lt;p&gt;Stack trace is always like falling down the stairs. A core dump is like having crapped all over the place in addition to falling.&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-12T13:14:39.843" CommentCount="2" />
  <row Id="18628" PostTypeId="2" ParentId="18502" CreationDate="2010-11-12T13:22:26.747" Score="1" ViewCount="" Body="&lt;p&gt;You may want to consider moving in consulting as a future career move, or join a team of software consultants.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm 26 and I don't plan on moving much farther than Tech Lead.  I've been too close to a lot of PMs that I &lt;em&gt;really&lt;/em&gt; don't want the people they have to manage and the headaches they get.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On that end of things, though, make sure you can handle any tech project they throw at you.  Always make sure you take time to learn the latest languages (even if they are only fads - you never know what management will get stuck up their butts) and technologies so you stay ahead of the curve and a valuable asset to either the company, or yourself if you decide consulting is best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be happy.  Don't let anyone define happiness for you.  &lt;/p&gt;&#xA;" OwnerUserId="7499" LastActivityDate="2010-11-12T13:22:26.747" CommunityOwnedDate="2011-01-26T02:24:50.517" />
  <row Id="18629" PostTypeId="2" ParentId="18609" CreationDate="2010-11-12T13:23:49.387" Score="2" ViewCount="" Body="&lt;p&gt;I'd suggest looking into OpenStreetmap:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;About OpenStreetMap&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The OpenStreetMap (OSM) initiative creates and provides free geographic data such as street maps to anyone who wants them. The project was started because most maps you think of as free actually have legal or technical restrictions on their use, holding back people from using them in creative, productive, or unexpected ways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They have a plethora of web services, but most (all?) of their tools are open source and can &#xA;be installed locally together with the OSM data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Geocoding with OpenStreetMap: Nominatim&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OSM seems to have &lt;a href=&quot;http://wiki.openstreetmap.org/wiki/Nominatim&quot; rel=&quot;nofollow&quot;&gt;a Geocoding service called Nominatim&lt;/a&gt;. It is available to query online but you may also install it on your own machines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Others&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might be able to find other geocoding services that operate on OSM data through the OpenStreetMap.org site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps.&lt;/p&gt;&#xA;" OwnerUserId="7034" LastEditorUserId="7034" LastEditorDisplayName="" LastEditDate="2010-11-15T17:06:31.200" LastActivityDate="2010-11-15T17:06:31.200" />
  <row Id="18630" PostTypeId="2" ParentId="9498" CreationDate="2010-11-12T13:43:32.243" Score="1" ViewCount="" Body="&lt;p&gt;We've had good luck with Entity Framework.  Our situation is somewhat unusual, though -- we do data collection for the reporting team, so they actually design the database.  We get the DB and then just use EF to generate the data access classes from it.  Works great for us, but we just do bulk data loads, so I can't vouch for how well it does in a more transactional environment.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-12T13:43:32.243" CommentCount="1" />
  <row Id="18631" PostTypeId="2" ParentId="18622" CreationDate="2010-11-12T13:52:12.393" Score="4" ViewCount="" Body="&lt;p&gt;Stack traces and core dumps are awesome, at least you're being given some information!  Don't forget there are some languages (like prolog in the old days) that simply say &quot;No&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many people (and I include myself in them) find it non-trivial to debug a core dump, so I can understand the trepidation when you get one of those.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stack traces (at least in the Java world) can indicate that your exception handling isn't as up to scratch as it could be.  I personally welcome that subtle warning to improve my exception handling stack.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-12T13:52:12.393" />
  <row Id="18632" PostTypeId="2" ParentId="18622" CreationDate="2010-11-12T13:56:04.053" Score="9" ViewCount="" Body="&lt;p&gt;Stack traces are a thing of beauty that can be likened to watching wisps of dandylions dancing on a cool breeze on a summers day. The delicate nuances of the complex interplay within your code are brought forth and you are given a glimpse into the elegant world in which they reside. How can this inspire panic, fear, alarm, trepidation, terror, angst, fright or even, dare I say it, concern?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your bug has given you insight, your stack trace has given you a path.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-12T13:56:04.053" CommentCount="1" />
  <row Id="18633" PostTypeId="2" ParentId="18478" CreationDate="2010-11-12T13:58:55.407" Score="0" ViewCount="" Body="&lt;p&gt;I use the toople variant, but i'm from Europe, so that's why ;) &lt;/p&gt;&#xA;" OwnerUserId="7151" LastActivityDate="2010-11-12T13:58:55.407" />
  <row Id="18634" PostTypeId="2" ParentId="18564" CreationDate="2010-11-12T14:02:02.750" Score="29" ViewCount="" Body="&lt;p&gt;While I can't officially vouch for it, I have always been impressed with Chris Sawyer developing &lt;a href=&quot;http://en.wikipedia.org/wiki/RollerCoaster_Tycoon&quot; rel=&quot;nofollow&quot;&gt;Rollercoaster Tycoon&lt;/a&gt; almost entirely in assembly language.&lt;/p&gt;&#xA;" OwnerUserId="5837" LastActivityDate="2010-11-12T14:02:02.750" CommentCount="2" />
  <row Id="18635" PostTypeId="2" ParentId="18579" CreationDate="2010-11-12T14:10:33.830" Score="1" ViewCount="" Body="&lt;p&gt;It is weird but I have seen this phrasing a lot (“LINQ2SQL is dead”) and I’m not sure where it stems from*. It is just as dead Windows XP. Microsoft has discontinued support and has created something new (and in my eyes better) yet people are still free to use XP just as they are free to use Linq2SQL. Admittedly, I use Linq2SQL when creating custom DotNetNuke modules. However, with new features in EF4 such as code-first-development (&lt;a href=&quot;http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx&quot; rel=&quot;nofollow&quot;&gt;http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx&lt;/a&gt;) it is hard to find reasons to stick with Linq2SQL. I don’t see a reason to go through and update code but for new code I don’t know why you wouldn’t want to use EF4.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*In all honesty though, I’m very…obsessive over semantics! I apologize if it is annoying to others :)&lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-11-12T14:10:33.830" />
  <row Id="18636" PostTypeId="2" ParentId="18502" CreationDate="2010-11-12T14:13:06.987" Score="3" ViewCount="" Body="&lt;p&gt;There will always be a need for people in the trenches, actually doing the work.  A good long-term developer is like a good sergeant.  Experienced, cool under pressure, a mentor for those around him and someone counted on to get things done.  I'm 41 now, my developer career started when I was 19.  I have no desire to be a project manager or to 'be my boss'.  It doesn't mean that I couldn't, I just would rather be able to 'write code' than talk about it.&lt;/p&gt;&#xA;" OwnerUserId="7587" LastActivityDate="2010-11-12T14:13:06.987" CommunityOwnedDate="2011-01-26T02:24:50.517" />
  <row Id="18637" PostTypeId="1" CreationDate="2010-11-12T14:13:27.707" Score="-1" ViewCount="379" Body="&lt;p&gt;At our company we have A LOT of logic in MS SQL stored procedures.  When wrapped in a transaction (&lt;code&gt;begin transaction&lt;/code&gt;, &lt;code&gt;commit transaction&lt;/code&gt;) we can be sure data is either committed, or if a problem is detected we can &lt;code&gt;rollback transaction&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having everything on the server eliminates network problems occurring in the middle of a transaction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prior to working here, and every new guy that gets hired always questions this logic.  They state that all of this should be in the database access layer on the client, using the .net framework's &lt;code&gt;OleDb.OleDbTransaction.Commit&lt;/code&gt; and &lt;code&gt;OleDb.OleDbTransaction.Rollback&lt;/code&gt; or similar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our argument is that you simply &lt;strong&gt;cannot guarantee&lt;/strong&gt; the transcation has been commited unless the code is ran on the server itself (can you?).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a bit caught in the middle as to which is the best method.  I used to beleive the database access layer way was the best, but have been turned to thinking of lot of logic in stored procedures is ok.  I should say the stored procedure method has handled hundered of millions of £ each year, so it certainly seems okay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I understand this way means that changing databases is a hassle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what's then general consensus?&lt;/p&gt;&#xA;" OwnerUserId="4630" LastEditorUserId="5621" LastEditorDisplayName="" LastEditDate="2010-11-12T14:31:36.363" LastActivityDate="2010-11-12T14:48:23.097" ClosedDate="2010-11-12T16:19:15.853" Title="Business logic in stored procedures or in data layer" Tags="&lt;best-practices&gt;&lt;software-engineering&gt;&lt;holy-war&gt;&lt;database-development&gt;&lt;software-developer&gt;" AnswerCount="2" CommentCount="4" />
  <row Id="18638" PostTypeId="2" ParentId="18622" CreationDate="2010-11-12T14:13:30.637" Score="14" ViewCount="" Body="&lt;p&gt;In general I &lt;em&gt;love&lt;/em&gt; stacktraces. Most of them I cause by raising my own exception :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I &lt;em&gt;hate&lt;/em&gt; is, when my app ran into a state where it obviously stopped working, but I don't get a stacktrace.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I currently work on a game that is being tested as a closed beta with 2500 players. When it crashes, we get sent a stacktrace, a screenshot and a server protocol and we can usually fix the problem within hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course I generally try to provoke stacktraces in my tests. Now if you get plenty of crashes in a product that you &lt;em&gt;deliver&lt;/em&gt;, then that's definitely a problem, because your tests should have triggered them already. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you can hardly deliver a reliable product without hallway testing (except if you're into software verification and have a lot of money to spend). And if stacktraces show up before or during that phase, well that's excellent. If they show up after that, you did your job wrong.&lt;/p&gt;&#xA;" OwnerUserId="667" LastEditorUserId="667" LastEditorDisplayName="" LastEditDate="2010-11-12T15:42:07.333" LastActivityDate="2010-11-12T15:42:07.333" CommentCount="4" />
  <row Id="18639" PostTypeId="2" ParentId="18564" CreationDate="2010-11-12T14:14:14.083" Score="4" ViewCount="" Body="&lt;p&gt;I wasn't going to say anything, but someone piped up with &quot;Ruby is a feat&quot;, so&lt;/p&gt;&#xA;&#xA;&lt;p&gt;John McCarthy with the original &lt;a href=&quot;http://www-formal.stanford.edu/jmc/recursive.html&quot; rel=&quot;nofollow&quot;&gt;RECURSIVE FUNCTIONS OF SYMBOLIC EXPRESSIONS AND THEIR COMPUTATION BY MACHINE&lt;/a&gt;, ie the paper in which he defined Lisp back in 1960, when &lt;code&gt;if&lt;/code&gt; was a concept people were just beginning to think seriously about. Talk about being ahead of your time.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-12T14:14:14.083" CommentCount="4" />
  <row Id="18640" PostTypeId="2" ParentId="18567" CreationDate="2010-11-12T14:17:46.970" Score="0" ViewCount="" Body="&lt;p&gt;Given that a netbook will happily run Visual Studio (I used one a lot for about a year) I'd say yes many of the x86/WindowsXP (or above) based ones will be powerful enough. The keyboard would be an issue, but you could look a say a &lt;a href=&quot;http://www.psixpda.com/&quot; rel=&quot;nofollow&quot;&gt;PsiXPDA&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your other option could be Emacs, Mono and any stock Windows CE device. I've &lt;a href=&quot;http://img228.imageshack.us/img228/3996/screen05dp1.png&quot; rel=&quot;nofollow&quot;&gt;tried this with Java&lt;/a&gt; a few years back. Yes compiling hello world did take 50 minutes :)&lt;/p&gt;&#xA;" OwnerUserId="1896" LastActivityDate="2010-11-12T14:17:46.970" />
  <row Id="18641" PostTypeId="2" ParentId="18564" CreationDate="2010-11-12T14:21:35.997" Score="5" ViewCount="" Body="&lt;p&gt;My training supervisor at Gemplus (now Gemalto) wrote the first JavaCard interpreter and OS during his own 3 month undergraduate training period. He single-handedly produced code from the spec. To produce the v.2, Gemplus put up a 30+ men team, without the guy, which worked for more than a year. When done but unable to get decent performance, they called him for help, and in a few days he and a colleague of his pointed out dozens of bottlenecks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java Card is a subset of Java intended to run in very small devices. His implementation ran in smartcards, which have a few MHz clock and 2 or 3 KB RAM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just for fun: another personal everyday feat of his was diving into a work trance, answering none of the questions we trainees yelled in the room, and then, suddenly 2 hours later popping alive again when his work was done and answering the 5 or 10 questions in a row.&lt;/p&gt;&#xA;" OwnerUserId="7588" LastEditorUserId="7588" LastEditorDisplayName="" LastEditDate="2010-11-16T11:21:55.787" LastActivityDate="2010-11-16T11:21:55.787" CommentCount="3" />
  <row Id="18642" PostTypeId="2" ParentId="9498" CreationDate="2010-11-12T14:24:48.290" Score="1" ViewCount="" Body="&lt;p&gt;NHibernate (+ FluentNHibernate) would be the default option for me. It is very flexible, extensible and robust. It's got a huge amount of users and it's very actively maintained. The downside is the steep learning curve. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.mindscape.co.nz/products/LightSpeed/&quot; rel=&quot;nofollow&quot;&gt;MindScape's LightSpeed&lt;/a&gt; is simple and user friendly, but still fairly flexible and capable. It has a designer surface like L2S/EF and a UnitOfWork implementation. &lt;/p&gt;&#xA;" OwnerUserId="4278" LastActivityDate="2010-11-12T14:24:48.290" CommentCount="1" />
  <row Id="18643" PostTypeId="2" ParentId="18637" CreationDate="2010-11-12T14:31:20.200" Score="4" ViewCount="" Body="&lt;p&gt;There are good arguments on both sides of this question. &lt;br&gt;&#xA;&lt;br&gt;&lt;strong&gt;Logic in Middleware&lt;/strong&gt;&#xA;&lt;br&gt;Keeping business logic in middleware (not necessarily the data access layer) is currently the favored option. T-SQL is not as expressive as C#, for starters. You'll need business logic in middleware anyway, so it's better for maintainability if that's the only place you have it. The downside is possible performance issues due to increased round-trips to the database server. Don't worry about committing transactions; that should work either way if your code is correct.&lt;br&gt;&#xA;&lt;br&gt;&lt;strong&gt;Logic in Stored Procedures&lt;/strong&gt;&#xA;&lt;br&gt;The main reason for also having business logic in stored procedures is performance. Using a stored procedure for a complex business operation reduces the number of round-trips to the database server, and allows for more set-based operations. The downside is that the same logic will also be in your middleware and will need to be maintained in both places.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-12T14:31:20.200" />
  <row Id="18644" PostTypeId="2" ParentId="18637" CreationDate="2010-11-12T14:40:48.523" Score="0" ViewCount="" Body="&lt;p&gt;In terms of commit / rollback, OleDb.OleDbTransaction starts and manipulates database server transactions, not transactions on the application server.  If the connection is terminated it will be rolled back automatically and is as good as if you'd done it in a stored procedure because it's essentially the same mechanism.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me the question would likely come down to what exactly you were doing in terms of processing.  If you're doing a lot of data manipulation within the database, Stored Procedures are likely to be the way forward as SQL is simply a better language for it and are potentially going to be faster.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If on the other hand you're just doing a few updates / inserts, they don't offer you too much of a benefit as performance is unlikely to be an issue and you might be better off keeping everything in one place in the business layer for the sake of maintainability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other question you might want to ask yourself is what is the system doing?  Is that level of transactional integrity that important, is performance that important or are you making things overly complex for an edge case which could be relatively easily handled anyway?&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-12T14:48:23.097" LastActivityDate="2010-11-12T14:48:23.097" CommentCount="7" />
  <row Id="18645" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T14:40:56.087" Score="1" ViewCount="" Body="&lt;p&gt;One project I worked on with a large financial institution. There were huge amounts of conference calls daily, and I estimated that they burned about $100k per day just on conference calls. The project lasted about 2 years. They had tons of legacy systems and when the daylight savings changes were made a couple years ago, they paid Microsoft about half a million dollars to come up with a DST patch for NT 3.51. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-12T14:40:56.087" CommentCount="4" />
  <row Id="18646" PostTypeId="2" ParentId="18567" CreationDate="2010-11-12T14:44:21.947" Score="0" ViewCount="" Body="&lt;p&gt;I used a Lenovo X-series convertible tablet for a couple of years. I had a docking station for it with a large monitor attached. It had enough oomph to run Visual Studio and I used it as the one place where all of my notes, etc. were. With OneNote I kept all my project notes, scanned anything hand-written into a PDF and put it in there and linked notes to Outlook messages. Software development for me is not just banging keys. There's a lot of face-to-face time and having to gather lots of information, collate it, etc. as WELL as banging out code, etc. It was a good setup given how many things I was responsible for and my need to move around. I also appreciated the tablet factor as it made it easy for me to read on an airplane. For some reason the form factor never really took off (the convertible tablet) but they are still selling updated versions. If you meant an iPad then your best bet would be to get some remote desktop software for it and remote into your development machine. Get a bluetooth keyboard and you'll have an okay if not great setup. Learn as many Visual Studio keyboard shortcuts as you can and you can hide most of the UI surroundings.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-11-12T14:44:21.947" />
  <row Id="18647" PostTypeId="2" ParentId="18564" CreationDate="2010-11-12T14:46:28.650" Score="10" ViewCount="" Body="&lt;p&gt;John Carmack regularly impresses me with his feats of epic programming.  According to one story, he was bored in his hotel room, so he wrote the Doom 3 lighting engine on his laptop over a weekend.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-12T14:46:28.650" />
  <row Id="18648" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T14:46:59.007" Score="7" ViewCount="" Body="&lt;p&gt;Paying large software companies not only for their product, but for their &quot;support.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was working at a Government agency for a team that was deep in bed with Oracle. Over the course of many years, they had been paid bajillions of dollars for their software. Coming from a startup background this made no sense to me - &quot;why not use MySQL or Postgres?&quot; I was told that it was mainly because of the support that Oracle provides, if something goes wrong they help you find the solution quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The support was an absolute joke. There was a problem where one web app kept crashing the whole system. It appeared to be a result of a slow database query with a combination of horribly written code (which was written by a team of consultants, which should be a whole other answer). A &quot;task force&quot; (groan) was assembled to pinpoint the issue and fix it. Included on the task force was an Oracle support member. Every day at EOB there would be a conference call where the task force members would update the rest of the team with the findings. It was a long enough call that nobody wanted to be on b/c it started at 5, and the Oracle person just made it worse. Why? Well, saying &quot;person&quot; isn't even correct. It was a number of people. It seemed like every two or three conference calls, the Oracle rep would be somebody new, who explained their predecessor was now on another project or had gone on vacation. The new people were never briefed by anybody at Oracle, so every time somebody new came in we had to waste ten minutes of the conference call explaining the problem again. Their &lt;em&gt;contribution&lt;/em&gt; would then be asking for J2EE log files, which not only can any monkey read, but were also useless because the horribly written code was doing things like throwing IndexOutOfBounds exceptions when the programmer found errors in parsing XML. &lt;/p&gt;&#xA;" OwnerUserId="7590" LastActivityDate="2010-11-12T14:46:59.007" CommentCount="4" />
  <row Id="18649" PostTypeId="1" AcceptedAnswerId="18653" CreationDate="2010-11-12T14:55:41.917" Score="12" ViewCount="557" Body="&lt;p&gt;First off, not my phrase: &lt;a href=&quot;http://www.whattofix.com/blog/archives/2010/11/to-code-quickly.php&quot; rel=&quot;nofollow&quot;&gt;http://www.whattofix.com/blog/archives/2010/11/to-code-quickly.php&lt;/a&gt; Props to Mr. Markham.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BUT, it got me to thinking about a lot of questions I have seen about being able to get things done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The approach advocated (setting a timer for a set period, in this case 50 minutes, but I've seen people talk about breaking procrastination by setting times as short as five minutes on tasks that you just cannot bring yourself to do, and then taking a short break) seems to be common sense, but lots of people advocate getting into the &quot;zone&quot; and staying there as long as possible, maybe many hours, rather than break their groove.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I keep trying different approaches and find that each has its own strengths and weaknesses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What kind of technique do you use to be more EFFECTIVE (i.e., getting work done to the quality level demanded by your client / boss / etc. in the time frame allowed) in your software development and not just to spend more time at the keyboard?&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-11-15T14:33:01.040" Title="&quot;To code quickly, you must quit coding&quot;" Tags="&lt;productivity&gt;&lt;programming&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="11" />
  <row Id="18650" PostTypeId="2" ParentId="2804" CreationDate="2010-11-12T14:56:20.040" Score="3" ViewCount="" Body="&lt;p&gt;Everywhere I see conditional or looping constructs not enclosed in curly braces (or the VB or Delphi equivalents), I gotta put them in, as such:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (someCondition) continue;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;becomes&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (someCondition)&#xA;{&#xA;    continue;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Sure, I've burned approximately 11 more characters, but I feel I've saved some time/grief in the future when an enhancement calls for something to happen before the &lt;code&gt;continue;&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-11-12T14:56:20.040" CommunityOwnedDate="2011-03-15T08:09:28.653" CommentCount="2" />
  <row Id="18651" PostTypeId="2" ParentId="18371" CreationDate="2010-11-12T14:57:22.147" Score="2" ViewCount="" Body="&lt;p&gt;In terms of the actual interview process, fundamentally you treat them the same as any other person you're hiring. There should be a similar hiring process: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Selection, by CV or agency recommendation.&lt;/li&gt;&#xA;&lt;li&gt;Aptitude test (combining things like &lt;a href=&quot;http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html&quot; rel=&quot;nofollow&quot;&gt;FizzBuzz&lt;/a&gt;, strdup()/isAlpha(), OOD, etc)&lt;/li&gt;&#xA;&lt;li&gt;Telephone interview (for quick elimination if they don't communicate well)&lt;/li&gt;&#xA;&lt;li&gt;Face-to-face interview&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/14645/what-are-effective-interview-questions/14698#14698&quot;&gt;Written coding exercise&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Meet some of the team members. &lt;/li&gt;&#xA;&lt;li&gt;For an experienced person, which implies higher risk and higher costs, additional rounds of interviews are acceptable but you should clearly communicate to them where they are in the process (i.e. this is 1 of 3 interview rounds).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;There are many other posts on this site which cover general topics of discussion that you should cover in the interview process - &lt;a href=&quot;http://programmers.stackexchange.com/questions/16436/do-you-have-any-questions-for-us-in-an-interview/16766#16766&quot;&gt;here's my answer to one of them&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At all points in the interview process, an experienced person should demonstrate an excellent understanding of their advertised specialities. You can probe them, in a lot of depth, on any topic that you cover during the discussions. Take questions to the limits of your experience/comfort level and see if they can continue without worry. If you need to go off the deep-end with something you haven't got much experience with, do a web search for some sample questions (get a selection of them), &lt;em&gt;read and understand the answers before the interview&lt;/em&gt;, and then ask the candidate any of these questions. Don't expect them to know all the answers, so have a selection of questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are two types of experienced engineer you could hire:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1) Relevant Industry Experience&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is the person that you can take your list of current problems to and talk through how they might approach those problems. You should be gauging their level of understanding of each of the domain-specific topics in your industry. As you're in that industry, you can tell a 'dumb' answer from a 'good' answer and can probably spot an 'experienced' answer too. In contrast to other answers, I wouldn't expect them to actually solve your current problems - that will happen when you hire them - but you need them to convince you that they could once they got started.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2) No relevant Industry Experience&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So this candidate is possibly changing industry but has good experience in the foundation technologies/platforms/skills you need. Go deep on those items, but don't expect them to be able to come up with solutions for domain-specific problems, although you could just talk around them. For example, if your company is Facebook, and the person you're interviewing is hot with PHP and C++, it would be unrealistic to expect them to know all the pitfalls of massive server farms (unless they claim it on their CV).&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-11-12T14:57:22.147" />
  <row Id="18652" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T14:57:36.123" Score="10" ViewCount="" Body="&lt;p&gt;Several times I witnessed management bringing in consultants for the &lt;strong&gt;sole purpose of spending money&lt;/strong&gt;. Most of the time this happened at the end of the year when they were under-budget frantically trying to spend the money. Usually these consultants would be paid hundreds of dollars an hour and they would spend weeks on a PowerPoint presentation that would never be used.&lt;/p&gt;&#xA;" OwnerUserId="7592" LastActivityDate="2010-11-12T14:57:36.123" CommentCount="4" />
  <row Id="18653" PostTypeId="2" ParentId="18649" CreationDate="2010-11-12T15:00:38.357" Score="12" ViewCount="" Body="&lt;p&gt;I use that technique daily. My timer is &lt;strong&gt;45 minutes&lt;/strong&gt; of work for &lt;strong&gt;10 minutes&lt;/strong&gt; of rest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also maximize the time on the computer to &lt;strong&gt;4 hours per day&lt;/strong&gt;. &lt;em&gt;I understand this is not possible when your main task is coding.&lt;/em&gt; The rest of the time, I do any task that doesn't require a computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The tool I use is a &lt;a href=&quot;http://www.workrave.org&quot; rel=&quot;nofollow&quot;&gt;WorkRave&lt;/a&gt;. The author wrote it because he started to have physical problems due to its inability to stop coding for long hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm &lt;em&gt;less&lt;/em&gt; stressed and it affected &lt;em&gt;positively&lt;/em&gt; my productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since a few weeks, I also try some &lt;a href=&quot;http://en.wikipedia.org/wiki/Mindfulness_%28Buddhism%29&quot; rel=&quot;nofollow&quot;&gt;mindfulness&lt;/a&gt; techniques during the pause times. Delicious.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now regarding anti-procrastination techniques, I have one that beat everything I tried before:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I manage a single task list, prioritized by importance. I pick the first in the list.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I maintain the list (and calendar) with a combination of &lt;a href=&quot;http://fr.wikipedia.org/wiki/Getting_Things_Done&quot; rel=&quot;nofollow&quot;&gt;GTD&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Seven_Habits_of_Highly_Effective_People&quot; rel=&quot;nofollow&quot;&gt;7 Habits&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To enhance the list effectiveness, write your tasks as &lt;strong&gt;next actions&lt;/strong&gt; instead of &lt;strong&gt;descriptions&lt;/strong&gt; (see the chapter &lt;em&gt;Actions, Contexts &amp;amp; Projects&lt;/em&gt; in this &lt;a href=&quot;http://zenhabits.net/the-getting-things-done-gtd-faq/&quot; rel=&quot;nofollow&quot;&gt;Blog Post&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="3010" LastEditorDisplayName="" LastEditDate="2010-11-12T16:40:13.380" LastActivityDate="2010-11-12T16:40:13.380" CommentCount="3" />
  <row Id="18654" PostTypeId="2" ParentId="16137" CreationDate="2010-11-12T15:26:20.727" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Write something awesome.&lt;/li&gt;&#xA;&lt;li&gt;Package it for as many distros as possible.&lt;/li&gt;&#xA;&lt;li&gt;Document, document, document.&lt;/li&gt;&#xA;&lt;li&gt;Lower the barrier to entry for new contributors as much as possible.  (Make sure anonymous users can file bugs, make your source tree easy to find, etc.)&lt;/li&gt;&#xA;&lt;li&gt;Do a talk at a local user group (quick overview followed by a how-to seems most effective) or two.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In general, new open source toys spread like wildfire once a handful of people are convinced they are awesome.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Frameworks and libraries are a bit slower on the uptake, though, because once one chooses something as a dependency, one has something to lose if it becomes unmaintained or goes in an icky direction.  Forking costs time and attention that most devs would rather spend on their project than their project's dependencies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, the fastest way to build trust for a library, framework, or other things that have value primarily as dependencies rather than stand-alone projects is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Have great DX (dev experience).  We're a lazy bunch, and we take the easiest-to-use tool whenever possible.&lt;/li&gt;&#xA;&lt;li&gt;Create and use something that depends on the library/framework.  This shows that you are invested in keeping it healthy over time.&lt;/li&gt;&#xA;&lt;li&gt;Have more than one maintainer.  In the open source world, anyone can fork if you lose interest or get hit by a bus. However, if either no one is prepared to take the hand-off, or multiple forks appear while the rest of us are attending your funeral, there's chaos and upheaval that will be a giant PITA for anyone relying on your framework.  There should be more than one maintainer, and there should be a public note somewhere re: continuity, along the lines of &quot;if I appear to be dead, MIA, abducted by aliens, or otherwise permanently unavailable, Joe Schmoe (Schmoe@example.com) is to succeed me as the BDFL of Project Foo&quot;.&lt;/li&gt;&#xA;&lt;li&gt;Create a space dedicated to showcasing awesome things that have been done with your framework.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In other words: show potential users that your framework will still be around tomorrow.  This means demonstrating not just its usefulness, but that you and others are invested in continuing to develop and use it.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-12T15:26:20.727" />
  <row Id="18655" PostTypeId="2" ParentId="2804" CreationDate="2010-11-12T15:49:17.360" Score="0" ViewCount="" Body="&lt;p&gt;Despite having a monitor that has a 1680x1050 resolution (yay!) and a coding standard that states we must have line widths of less than 100 characters, I still code to 78 characters where I can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hey, 78 is less than 100, so technically it's allowed...&lt;/p&gt;&#xA;" OwnerUserId="3991" LastActivityDate="2010-11-12T15:49:17.360" CommunityOwnedDate="2011-03-15T08:09:28.653" CommentCount="2" />
  <row Id="18656" PostTypeId="2" ParentId="14287" CreationDate="2010-11-12T15:54:56.587" Score="1" ViewCount="" Body="&lt;p&gt;You could actually still focus on Java -- Apple is opening the source to their Java implementation and rolling it into the OpenJDK, according to a &lt;a href=&quot;http://blogs.oracle.com/henrik/2010/11/oracle_and_apple_announce_openjdk_project_for_osx.html&quot; rel=&quot;nofollow&quot;&gt;recent announcement&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-11-12T15:54:56.587" />
  <row Id="18657" PostTypeId="2" ParentId="15623" CreationDate="2010-11-12T16:03:25.767" Score="1" ViewCount="" Body="&lt;p&gt;I find the statement that 99% of the programmers are unable to program or to solve a simple coding test highly exaggerated. In the case of the FizzBuzz test, either you have encountered this problem before and can easily solve it with the modulo operator or you have not encountered it before and will struggle with it. It tells the interviewer nothing about your programming skills. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the problem with many programmers apparently leaving a bad impression at an interview lie in the nature of technical interviewing methods. Interviewers expect applicants to memorize and instantly reproduce language syntax, details and computational complexity of data structures, hardware architectures, design patterns, etc, etc. The area of computer science/software engineering is vast. It is impossible and insensible to try to memorize everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the real world, the key is to be able to understand the programming/design problem assigned to you and to know where to find information(your IDE, man pages, books, google, etc) how to solve your problem. This is something however that interviewers never test for.&lt;/p&gt;&#xA;" OwnerUserId="7504" LastActivityDate="2010-11-12T16:03:25.767" CommentCount="1" />
  <row Id="18658" PostTypeId="2" ParentId="16137" CreationDate="2010-11-12T16:06:40.077" Score="1" ViewCount="" Body="&lt;p&gt;It's less about where you post, more about what you post.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People fear that trying out an unknown framework will be a massive waste of their time.  Reassure them.  Use screenshots to show them that it will be easy.  Give a step by step guide that shows promise of being able to do your 'hello new-framework-world' within moments of downloading.  Show that any pain will be worthwhile by killer examples.  If you can run a space station with five lines of code using your framework, show them the code to do it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once people know it will be worthwhile they'll do the download.&lt;/p&gt;&#xA;" OwnerUserId="7315" LastActivityDate="2010-11-12T16:06:40.077" />
  <row Id="18659" PostTypeId="2" ParentId="2804" CreationDate="2010-11-12T16:08:28.330" Score="2" ViewCount="" Body="&lt;p&gt;I REALLY like parentheses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;{ :( }&#xA;( :) )&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-12T16:08:28.330" CommunityOwnedDate="2011-03-15T08:09:28.653" CommentCount="1" />
  <row Id="18660" PostTypeId="2" ParentId="18649" CreationDate="2010-11-12T16:12:34.187" Score="-2" ViewCount="" Body="&lt;p&gt;Since coding is the problem at hand, in addition to the techniques mentioned by Pierre, I would suggest coding in a dynamic language, if at all possible (Python is a delight to work with, for instance): such languages allow you to be extremely productive (measured coding times show an improvement factor of 2 to 10, compared to C).  They're so nice to work with that you might basically never &quot;just spend time at your keyboard&quot;.&lt;/p&gt;&#xA;" OwnerUserId="3807" LastEditorUserId="3807" LastEditorDisplayName="" LastEditDate="2010-11-15T14:33:01.040" LastActivityDate="2010-11-15T14:33:01.040" CommentCount="1" />
  <row Id="18661" PostTypeId="2" ParentId="14287" CreationDate="2010-11-12T16:14:22.100" Score="9" ViewCount="" Body="&lt;p&gt;You need not abandon Java as yet.   From an &lt;a href=&quot;http://www.apple.com/pr/library/2010/11/12openjdk.html&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;Apple press release&lt;/code&gt;&lt;/a&gt; dated November 12, 2010 titled &lt;strong&gt;Oracle and Apple Announce OpenJDK Project for Mac OS X&lt;/strong&gt;: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Apple also confirmed that Java SE 6&#xA;  will continue to be available from&#xA;  Apple for Mac OS X Snow Leopard® and&#xA;  the upcoming release of Mac OS X Lion.&#xA;  Java SE 7 and future versions of Java&#xA;  for Mac OS X will be available from&#xA;  Oracle.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1178" LastActivityDate="2010-11-12T16:14:22.100" />
  <row Id="18662" PostTypeId="2" ParentId="14287" CreationDate="2010-11-12T16:14:26.693" Score="1" ViewCount="" Body="&lt;p&gt;Moot point now :-)&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-12T16:14:26.693" />
  <row Id="18663" PostTypeId="2" ParentId="16137" CreationDate="2010-11-12T16:15:27.473" Score="0" ViewCount="" Body="&lt;p&gt;All of the above + read &lt;a href=&quot;http://www.producingoss.org&quot; rel=&quot;nofollow&quot;&gt;http://www.producingoss.org&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-12T16:15:27.473" />
  <row Id="18664" PostTypeId="2" ParentId="18649" CreationDate="2010-11-12T16:15:29.690" Score="2" ViewCount="" Body="&lt;p&gt;The key thing to remember here is that there is no &quot;one size fits all&quot; solution. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are lots of techniques for improving your ability to &quot;get things done&quot; and one of the reasons is that different things work for different people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people do very well with this sort of methodology (c.f. Pomodoro Technique) and some people will find it destroys their focus - I really don't like stopping in mid task and that's almost invariably what timer based systems do to me... conceptually good, implementation challenging (true of the majority of structured methodologies for time management and other things)&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-11-12T16:15:29.690" CommentCount="5" />
  <row Id="18665" PostTypeId="2" ParentId="18502" CreationDate="2010-11-12T16:19:46.697" Score="2" ViewCount="" Body="&lt;p&gt;already asked and well-answered on &lt;a href=&quot;http://stackoverflow.com/questions/972611/old-developers-any-future&quot;&gt;stackoverflow.com&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-12T16:19:46.697" CommunityOwnedDate="2011-01-26T02:24:50.517" CommentCount="1" />
  <row Id="18666" PostTypeId="1" AcceptedAnswerId="18678" CreationDate="2010-11-12T16:23:53.307" Score="3" ViewCount="111" Body="&lt;p&gt;Hey,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've got a bit of a challenge.  While I'm not &quot;in charge&quot; I'm certainly lead developer on a project and my team will be scattered to high heaven.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've got someone who works on Fridays only, and probably 2 people who will be 3-4 hours away in another state. (One of the lovely side effects of partnering with multiple universities).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, how can I get them all on the same &quot;team&quot;?? I've read a bunch of Joel Spolsky's stuff, but I can't create the same kind of environment that he uses.  This is also the first project I'll be lead on, so it's kindof make-or-break.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifically I'm looking for managing styles (personality), process models, project management  (scrum?), video conferencing tools, and the like.  I just don't have any resources for this kind of thing, and I'm afraid I'm going to be stuck doing too much work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&lt;/p&gt;&#xA;" OwnerUserId="7499" LastActivityDate="2010-11-12T19:49:53.793" Title="how do I form a team which is remote?" Tags="&lt;project-management&gt;&lt;development-process&gt;&lt;team&gt;" AnswerCount="2" />
  <row Id="18667" PostTypeId="1" CreationDate="2010-11-12T16:24:40.957" Score="4" ViewCount="698" Body="&lt;p&gt;What reasons do you usually give when you are looking for a change to your prospective employer/recruitment consultants?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;I need a change, which is basically this &lt;a href=&quot;http://programmers.stackexchange.com/questions/17009/is-needing-a-change-an-acceptable-reason-to-move-on-from-a-job&quot;&gt;question&lt;/a&gt; but here, I am asking it more specifically as a response to the recruitment consultants. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I am interested in working in .NET 4.0 but my current organization is still stuck on VB6.0&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I am working in the Telecom sector and I want to move to the Financial Sector.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The above are more or less responses that either some of my friends (including me) have given or we have heard. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would you classify as a &lt;strong&gt;definite NO NO&lt;/strong&gt; reason?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More importantly, what would you classify as an acceptable reason?&lt;/p&gt;&#xA;" OwnerUserId="5070" LastActivityDate="2010-11-12T20:42:58.953" Title="Reasons for looking to change a job - What do you give" Tags="&lt;interview&gt;&lt;job-interview&gt;&lt;new-job&gt;" AnswerCount="4" CommentCount="6" FavoriteCount="2" />
  <row Id="18668" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T16:29:20.833" Score="8" ViewCount="" Body="&lt;p&gt;Paying for big, bulky, buggy commercial products, in the range of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Application servers;&lt;/li&gt;&#xA;&lt;li&gt;Testing tools;&lt;/li&gt;&#xA;&lt;li&gt;Development environments.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;when the open-source or light-weight alternatives are obviously superior. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My steps usually are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;establish an alternative as a reference - e.g. &quot;I will experiment with the app server X instead of app server Y. I had good experience with it, because (...).&quot;;&lt;/li&gt;&#xA;&lt;li&gt;sell this proposition to my colleagues - &quot;I am now developing faster since server X restarts much faster and I don't wast all that time&quot;;&lt;/li&gt;&#xA;&lt;li&gt;sell this to the immediate manager - &quot;Our team now develops faster since we're using server X. It all began as a little experiment but everyone likes it.&quot;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="3937" LastEditorUserId="3937" LastEditorDisplayName="" LastEditDate="2010-11-12T20:09:09.533" LastActivityDate="2010-11-12T20:09:09.533" CommentCount="6" />
  <row Id="18669" PostTypeId="1" CreationDate="2010-11-12T16:29:36.777" Score="12" ViewCount="390" Body="&lt;p&gt;The two predominant software-development philosophies are waterfall and agile.  When discussing these two, there is often much focus on the particular practices that distinguish them (pair programming, TDD, etc. vs. functional spec, big up-front design, etc.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the real differences are far deeper, in that these practices come from a philosophy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Waterfall says:  &lt;em&gt;Change is costly, so it should be minimized.&lt;/em&gt;&lt;br&gt;&#xA;Agile says:  &lt;em&gt;Change is inevitable, so make change cheap.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is, regardless of what you think of TDD or functional specs, is the philosophy of waterfall really viable?  Does anyone really think that minimizing change in software is a viable option for those that desire to deliver valuable software?  Or is the question really about what sort of practices work best in our situations to manage the inevitable change?&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-12-20T22:45:45.550" Title="Is there a viable alternative to the agile philosophy?" Tags="&lt;agile&gt;&lt;development-methodologies&gt;&lt;waterfall&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="3" />
  <row Id="18670" PostTypeId="2" ParentId="18667" CreationDate="2010-11-12T16:31:31.283" Score="7" ViewCount="" Body="&lt;p&gt;Those are all valid reasons.  While I'm not a recruiter, those are the kinds of things that when I told them to a recruiter, got more positive responses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some bad reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I hate my boss&lt;/li&gt;&#xA;&lt;li&gt;I hate my coworkers&lt;/li&gt;&#xA;&lt;li&gt;I didn't like the project management tools we used&lt;/li&gt;&#xA;&lt;li&gt;I got fired (phrase this better... if you can)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Other good reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Prior position didn't allow me to improve my skillsets&lt;/li&gt;&#xA;&lt;li&gt;Looking to move up or across, but old job didn't have openings&lt;/li&gt;&#xA;&lt;li&gt;Some markets (like medicine and the FDA) do have serious hurtles, looking to move out of that kind of industry may make sense.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7499" LastActivityDate="2010-11-12T16:31:31.283" CommentCount="1" />
  <row Id="18671" PostTypeId="2" ParentId="18622" CreationDate="2010-11-12T16:34:34.230" Score="0" ViewCount="" Body="&lt;p&gt;I work on a straight C codebase, so we don't see stack traces without core dumps (or at best a sigabort). That said, when I first started writing C I was a bit afraid of seg faults. Now, I view it as a good way to clean up pointer confusion.&lt;/p&gt;&#xA;" OwnerUserId="1171" LastActivityDate="2010-11-12T16:34:34.230" />
  <row Id="18672" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T16:38:23.583" Score="1" ViewCount="" Body="&lt;p&gt;We were having a smallish amount of work and barely making bills and payroll in a small shop in which I worked.  The solution: hire an efficiency consultant and a personal secretary for the boss so he could go perform more &quot;meat and potatoes&quot; work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Solve a budget shortfall by increasing spending...fail.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the plus side - the efficiency expert supplied a dry erase board where we tracked our billable hours and paid hours...guess who had the least amount of billable hours.&lt;/p&gt;&#xA;" OwnerUserId="4534" LastActivityDate="2010-11-12T16:38:23.583" />
  <row Id="18673" PostTypeId="2" ParentId="18669" CreationDate="2010-11-12T16:41:58.493" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Of course waterfall is viable.&lt;/strong&gt; And it's a agile coach talking here!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you can clearly identify problems related to the way you manage your projects, there is no valid reason to change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an alternative of &lt;strong&gt;Agile&lt;/strong&gt; and &lt;strong&gt;Waterfall&lt;/strong&gt; methodologies, I will suggest &lt;strong&gt;YOUR methodology&lt;/strong&gt;. Adapted to your specific business, your specific team, your products, you way of working, your company culture...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wanting to implement a methodology because someone on a blog you like talked about it is as stupid as letting problems going without doing anything.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-12T16:41:58.493" CommentCount="4" />
  <row Id="18674" PostTypeId="2" ParentId="18669" CreationDate="2010-11-12T16:42:58.700" Score="3" ViewCount="" Body="&lt;p&gt;Yes, various software development techniques are all viable depending on your problem domain.  It's &quot;Horses for Courses&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, you're writing software to control a Nuclear power plant or to drive the NASA space shuttle.  This sort of problem domain is probably better suited to a waterfall (or even stricter) approach, you want to sort out all of the issues up front if possible (or BOOM!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Building the latest web 2.0/3.0/buzzy marketing term UI?  Agile is a much better way to go (yo need that quick feedback and change).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are what I would call software craftsmanship principles that can still be applied no matter waht the methodology is e.g:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Source control&lt;/li&gt;&#xA;&lt;li&gt;build and CI&lt;/li&gt;&#xA;&lt;li&gt;pair programming&lt;/li&gt;&#xA;&lt;li&gt;TDD&lt;/li&gt;&#xA;&lt;li&gt;I give a ^%$$&amp;amp;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whatever you do, don't listen to the zealots on either side of the equation, do what's right for you, your team and your problem domain.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-12T16:42:58.700" />
  <row Id="18675" PostTypeId="2" ParentId="18669" CreationDate="2010-11-12T16:45:57.193" Score="1" ViewCount="" Body="&lt;p&gt;The problem stems from the complexity of software.  Waterfall works great for things like bridge building and road paving because physics just never changes.  Sure, at some point we'll develop a new asphalt but it won't revolutionize the way roads are built.  The steel in a bridge's suspension is either the right size, or it isn't.  You can't kludge or stub a real construction project like you can with software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software changes.  Software changes rapidly.  Moore's law states that number of transistors on a chip doubles every 18-24 months.  In corollary, the number of lines of code in a program also doubles.  Complexity in between those lines of code therefore increases with a bigO of something like 2^(2t).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software changes rapidly, and complexity increases exponentially with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When controlling the cost of the software, you want to control &lt;em&gt;exponential&lt;/em&gt; factors, not just multiplicative or additive.  Changing code increases the complexity (and gets exponentially more complex itself as the project moves on) in an exponential manner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Change &lt;em&gt;is&lt;/em&gt; inevitable.  The very nature of programming extends the language with classes and custom methods, thus changing the language itself.  You can't do that in any other kind of engineering discipline (like building roads.  You don't invent new pavement just to pave a road in kansas over california).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The agile method also gives you a platform for handling future releases and bug fixes.  You alredy have the management tools, processes, trained employees, for developing versioned software.  With a waterfall method, you would need to retrain your team to handle even minor bug-fixes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;anyway, my 2 cents.&lt;/p&gt;&#xA;" OwnerUserId="7499" LastActivityDate="2010-11-12T16:45:57.193" CommentCount="8" />
  <row Id="18676" PostTypeId="2" ParentId="18667" CreationDate="2010-11-12T16:47:27.827" Score="5" ViewCount="" Body="&lt;p&gt;Some more random ones:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I want to be at the forefront of technology X or software development practice Y.&lt;/li&gt;&#xA;&lt;li&gt;I love the idea of the culture of a start up/vendor/consultancy etc, and I'd like to experience it.&lt;/li&gt;&#xA;&lt;li&gt;I want to work with the pioneers in my field&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-12T16:47:27.827" />
  <row Id="18677" PostTypeId="2" ParentId="18564" CreationDate="2010-11-12T16:50:30.183" Score="11" ViewCount="" Body="&lt;p&gt;Maybe I'm just showing my age, but I think some of the truly impressive feats of programming are being ignored.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Steve Wozniak, Apple Disk II/RWTS&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Steve designed the hardware and software together, using really cool tricks in the software to eliminate a lot of complexity (and cost) in the hardware. Normal floppy disk drives used an LED and photosensor near the hub of the disk to shine through a hole punched in the disk substrate. The output from the photosensor was connected to a processor interrupt so the processor would know when to start its timing routine to wait for the correct sector on a track to be under the read/write head (though a few used &quot;hard-sectored disks&quot; that had a hole to signal the start of each sector instead of just one for the start of the track).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Steve eliminated that hardware by designing the software to encode the data in a way that would let you start reading from an arbitrary spot on the disk, and not only decode the data itself, but figure out where (logically) in the track you were. The Disk II drive didn't have the LED/photsensor setup, and completely ignored the hole(s) in the floppy disk.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Gordon Letwin, HPFS&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Gordon Letwin was an architect (and coder) on the OS/2 team. At least as I've heard the story, at one point he went on vacation to get away from things, and spend three weeks (or so) sailing around on his yacht (yes, early MS employees could afford things like that...) ...but to keep from getting too bored, he decided to take along his laptop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When he returned, he had HPFS written, debugged, and working -- entirely in Intel 386 assembly language. The code he wrote was eventually sold as the &quot;HPFS386&quot; that was exclusive (at least at the time) to the LAN Manager Edition of OS/2. Another team then spent something like six months writing a version in C that became the &quot;normal&quot; HPFS included in the normal editions of OS/2 (and after IBM and MS broke up, IBM updated and re-compiled the C code to get &lt;em&gt;their&lt;/em&gt; &quot;HPFS386&quot;). Although it's been modified and update since, if you were being fair about things, NTFS would probably be called &quot;HPFS 2.0&quot; (or maybe 3.0) -- there's no question that Microsoft's best current file system is still &lt;em&gt;closely&lt;/em&gt; derived from what he designed.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Burroughs B220 tapes&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;These embodied (at least IMO) the real beginnings of object oriented programming. Where IBM tapes (for one example) had &quot;labels&quot; to tell about the format of data on the tape, Burroughs tapes developed a convention (I don't think anybody knows for sure who started it) of putting a small set of routines on the tape that would understand the data and how it was formatted, so you could manipulate the data correctly without knowing the details of how it was formatted. In other words, the first few &quot;blocks&quot; on the tape were basically a vtable in persisted form. You'd basically read the vtable into memory, then use the methods it defined to manipulate the data on the rest of the tape. All very neat and simple (if just slightly less than completely portable).&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-12T16:50:30.183" />
  <row Id="18678" PostTypeId="2" ParentId="18666" CreationDate="2010-11-12T16:53:11.917" Score="2" ViewCount="" Body="&lt;p&gt;This one is a tough one!  Have a google on &quot;distributed agile teams&quot; when you get the chance, but in short:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Communication is &lt;em&gt;vital&lt;/em&gt;.  Find out how each team member prefers to communicate and come up with a medium that everyone is happy with.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make sure all decisions/conversations are open (not private), e.g. Archivable mailing list, commit log, IRC chat is OK if you save off the logs&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You probably want to adopt some sort of agile methodology, at least in terms of getting small units of work delivered often, that way you can all help each other out, see what others are up to and not 'disappear for weeks on end'&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;See &lt;a href=&quot;http://www.producingoss.org&quot; rel=&quot;nofollow&quot;&gt;http://www.producingoss.org&lt;/a&gt; for some good tips (open source, but many of these can be applied).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Use canned hosting (issue tracking, mailing lists, source control, build tool, CI etc), make it as painless as possible for everyone to get each others work and get it ti interoperate.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Try to all meet at least once in person or over a video conference, we interact vastly differently with people we've met in the flesh.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-12T16:53:11.917" CommentCount="2" />
  <row Id="18679" PostTypeId="1" AcceptedAnswerId="18687" CreationDate="2010-11-12T16:55:54.443" Score="8" ViewCount="632" Body="&lt;p&gt;this is in continuation to my previous question where i asked is it necessary to learn algorithm and datastructures. I feel yes it is. Now when i work in a enviornment where i wont ever get the chance to learn it by experimenting or practically or in any assignment. What is the right approach like the right books, right kind of problems, right kind of resources that i can go through to give six months or a year or two to learn it. And also mould my mind in a way that it can relate problems to datastructures and algos.&lt;/p&gt;&#xA;" OwnerUserId="7507" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-11-12T21:44:33.630" LastActivityDate="2011-01-01T22:35:57.013" Title="How do I learn algorithms and data structures?" Tags="&lt;algorithms&gt;" AnswerCount="9" CommentCount="2" FavoriteCount="4" />
  <row Id="18680" PostTypeId="2" ParentId="18120" CreationDate="2010-11-12T16:58:29.923" Score="1" ViewCount="" Body="&lt;p&gt;Interestingly, I do not see &quot;&lt;em&gt;Being Visible&lt;/em&gt;&quot; as a question or even as an answer so far. I think becoming visible in whatever you do will help your career orthogonally to other choices. So....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good decision: participating in Open Source (not enough :-( ), starting a blog, grabbing opportunities to present at JavaOne and (not yet launched) InfoQ when they showed up. These both made me visible and improved my own presentation and communication skills. Even if project/job has bad points, there might be some technically interesting aspects of it that are worth blogging about. Others may find it interesting. I don't mean blog about music choice, etc. I mean writing about technical problems and solutions you deal with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad decision: Not realizing the value of stable point of discovery (brand?). I started a blog on blogger (annonymously too), then another one on wordpress.com. Now I have my own domain, but a lot of links go all over place. Another bad decision is to not finish mini-projects to the point of public presentation. I have a bunch of tiny projects (back from when I was 20+) that were 80% presentable and just needed last bit of polish. Publishing them back then would have probably be opened doors now much easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad decision: Not participating in Open Source more when I had free time. A lot of cool job places now look for you based on your contribution to Open Source. Even low level participation accumulates over time.&lt;/p&gt;&#xA;" OwnerUserId="2435" LastActivityDate="2010-11-12T16:58:29.923" CommunityOwnedDate="2010-11-13T20:22:38.513" />
  <row Id="18681" PostTypeId="2" ParentId="18679" CreationDate="2010-11-12T17:00:50.937" Score="2" ViewCount="" Body="&lt;p&gt;See if you can take an online course, or get tutored.  Failing that, &lt;a href=&quot;http://cgm.cs.mcgill.ca/~godfried/teaching/algorithms-web.html&quot; rel=&quot;nofollow&quot;&gt;this popped up in a quick google search.&lt;/a&gt;  I just took a class on it this past spring (first ever, I moved from EE to software) and it wasn't too hard to pick up &lt;em&gt;if you understand pointers&lt;/em&gt; well.&lt;/p&gt;&#xA;" OwnerUserId="7499" LastActivityDate="2010-11-12T17:00:50.937" />
  <row Id="18682" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T17:05:12.237" Score="15" ViewCount="" Body="&lt;p&gt;This answer is somewhat different than most: &lt;strong&gt;not firing an employee soon enough,&lt;/strong&gt; or stated differently, &lt;strong&gt;being overly tolerant of an employee's &lt;s&gt;mistakes&lt;/s&gt; habits&lt;/strong&gt;.  These were things I've observed and couldn't do much about as a consultant.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The dev that poorly drove the design decisions of a project that led to its eventual rewrite (it was a complete mess).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The dev that sent sensitive unencrypted data to Google Charts because they thought it would be cool to show a pie chart (was a pie chart a requirement? Nope!).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The dev that consulted with a company in the past and accepted a position with them directly. He did an about face and turned into a prima donna that sought the Technical Lead position and went as far as talking to the lead's manager stating they thought it would be good for him to take over as the lead. Talk about audacity! A lot of devs no longer like the guy and he burnt a lot of bridges within his first 2 weeks as an employee. To top it all off he's a very green dev that only graduated 2 years ago but thinks he's awesome.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;A few mistakes are understandable, but when there's a consensus between many devs about someone's attitude or skill level companies ought to get rid of them sooner rather than later.&lt;/p&gt;&#xA;" OwnerUserId="7510" LastActivityDate="2010-11-12T17:05:12.237" CommentCount="3" />
  <row Id="18683" PostTypeId="2" ParentId="18679" CreationDate="2010-11-12T17:07:41.577" Score="1" ViewCount="" Body="&lt;p&gt;Try to enroll in an undergraduate level course in data structures and algorithms, it's always good to learn these concepts along side others.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-12T17:07:41.577" CommentCount="2" />
  <row Id="18684" PostTypeId="2" ParentId="18679" CreationDate="2010-11-12T17:13:14.260" Score="1" ViewCount="" Body="&lt;p&gt;If you aren't able to take a course on this, I'd recommend The Algorithm Design Manual.  There's a free PDF &lt;a href=&quot;http://sist.sysu.edu.cn/~isslxm/DSA/textbook/Skiena.-.TheAlgorithmDesignManual.pdf&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;, but it's worth getting the actual book if you plan on programming professionally.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-12T17:13:14.260" />
  <row Id="18685" PostTypeId="2" ParentId="18667" CreationDate="2010-11-12T17:15:25.160" Score="3" ViewCount="" Body="&lt;p&gt;Good reasons to state:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;That you want something different from your previous employers.  The key here is that you are stating a preference rather than putting down where you work.  For example, you could work in an organization that uses Waterfall methods and you'd like experience with Agile methods.  Perhaps you want to work at a bigger/smaller company than where you currently are is another idea here.  Saying that you outgrew a place would be an example of something that may not go over well, just to give an example of going too far here.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you are applying directly for a job and not through a recruitment firm, you could look for various reputation points about the company and mention some of those.  For example, some places may have Social Responsibility policies that really resonate with you, or use a specific stack that appeals to you.  This of course isn't so great with a recruiter as they may just want to be categorizing you to some extent.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Bad reasons to state:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Putting down any of your former boss, co-workers, or employer.  This may make a potential employer wonder what you'd say about their flaws and thus be likely to not hire you.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Using any questionable language, which would include any form of hate speech such as racial slurs or profanity that may cause an eyebrow or two to rise.  If every second word in the reason is an F-bomb, then you may have problems getting hired in most places.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I'd be careful about how the reason is stated as this can also send various signals.  One could say they want something more Agile than where they are in a way that is overly emotional and containing too many overtones.  An example would be to say something conveying, &quot;There is this awesome thing called Agile, that will save my sanity as I'm about to lose it here.  Where I work now we use this worthless piece of crap known as Waterfall, which really does suck in a major way.&quot;  Trying to use a Ben Stein-like monotone voice that is flat wouldn't be a great idea either as there should be some change in tone over the course of stating the reason so that you don't seem overly boring.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-12T17:15:25.160" />
  <row Id="18686" PostTypeId="2" ParentId="4693" CreationDate="2010-11-12T17:15:27.070" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Reason why non-programmers, in general, think that programmers are arrogant:&lt;/strong&gt;&lt;br&gt;&#xA;I think a lot of it is due to outsiders's misunderstanding of the engineering/developer's field AND vice versa. For each different field, there are different abilities involved and people tend to value their own in a very biased way.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this kind of thinking starts early on, starting in high-school and intensifying during college. For example, when I was majoring in computer engineering at the university, we were the people with practically no free time, always working on hard projects while people from other majors were having fun. We had to pull all nighters at the lab programming just to get a decent enough grade, while other non-engineering majors were just reading and writing subjective essays and getting straight A's. The thought 'humanities is easy' undeniably comes to mind, also due to the many engineering/CS 'weedouts' switching to other majors. Sometimes in college a non-programmer asks you to show what you've been working on for hours on end and, obviously, since we are still beginners in college, our programs seem 'stupid' to them and we are labeled as having 'no life.' People also tend to discredit things that they don't understand. Of course that's not always the case, but it does happen very often and the media in general reinforces this idea. As a result, programmers tend to distance themselves and be involved with like minded people. This gap is what non-programmers perceive when dealing with programmers which is often thought of as arrogance.&lt;br&gt;&#xA;Another possible reason is that programmers often work on very esoteric technologies everyday and their projects become like their child, whom they saw grow from a fetus into a full fledged working entity. Overconfidence due to previous successes defeats acceptance to criticism and there we go...&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-11-12T17:15:27.070" CommunityOwnedDate="2010-11-12T17:15:27.070" />
  <row Id="18687" PostTypeId="2" ParentId="18679" CreationDate="2010-11-12T17:16:25.480" Score="12" ViewCount="" Body="&lt;p&gt;Read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No, really, read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read everything about algorithm and design you can possible find.  There are phenomenal books out there.  The Sedgewick algorithm books are good.  The Algorithm Design Manual by Skiena is good as well.  Together these books follow me on every bookshelf at every job I go to, along with The Mythical Man-Month.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then ask.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Talk to people you respect.  Ask them what decision points they had and why they made the decisions they did.  The good ones will always be able to tell you &quot;I chose to do X because it's better than A, B in these ways.  I could have gone with C, but I felt this was a better choice because of this&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next, do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Build stuff.  Build stuff that you'll never use.  Build stuff that you'll never need.  Go write a program that solves a Sudoku puzzle.  Now go do it again.  And again.  Build it 5 completely different ways.  Build a program that generates Sudoku puzzles and feed it into the solvers.  Find which solver is fastest.  And then...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find out why.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;what&quot; is almost never important.  I mean, yeah, it is critical to finishing the project at hand, but at the end if you know the &quot;what&quot; without knowing the &quot;why&quot;, then you might as well never done it in the first place.  You got a bullet point on your resume.  Go get a cookie and congratulate yourself.  The &quot;why&quot; is so much more important than the &quot;what&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And for the record Sudoku was an example.  I spent a lot of free time going through that exercise with a ton of the logic puzzles on Kongregate and learned a lot on the way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/020172684X&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Bundle-Algorithms-Parts-1-5-Fundamentals/dp/020172684X/&lt;/a&gt;&#xA;http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1848000693/&#xA;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201835959&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7470" LastActivityDate="2010-11-12T17:16:25.480" />
  <row Id="18688" PostTypeId="2" ParentId="18679" CreationDate="2010-11-12T17:16:36.797" Score="0" ViewCount="" Body="&lt;p&gt;You could always try something like this: &lt;a href=&quot;http://codekata.pragprog.com/&quot; rel=&quot;nofollow&quot;&gt;http://codekata.pragprog.com/&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always learned better by thinking it out as opposed to reading.  However, you should have documentation/reading material available to look for answers.&lt;/p&gt;&#xA;" OwnerUserId="4534" LastActivityDate="2010-11-12T17:16:36.797" />
  <row Id="18689" PostTypeId="2" ParentId="18622" CreationDate="2010-11-12T17:25:12.750" Score="1" ViewCount="" Body="&lt;p&gt;Stack traces are the bomb.  I love them so much, I've written error handlers to create them when coding in languages that don't give them to you easily (&lt;em&gt;e.g.&lt;/em&gt;, assembler, C).  And my favorite C# statement is &lt;code&gt;throw&lt;/code&gt; - I never write code that generates error messages any more, I throw an exception instead and let it percolate out and possibly become an error message.  Sorta reminds me of an MVS ESTAE exit :-)&lt;/p&gt;&#xA;" OwnerUserId="6390" LastActivityDate="2010-11-12T17:25:12.750" />
  <row Id="18690" PostTypeId="1" AcceptedAnswerId="18693" CreationDate="2010-11-12T17:28:21.567" Score="6" ViewCount="189" Body="&lt;p&gt;When I first started in this business everything was about the technology.  Learning new technology, working with cutting edge technology etc. was what drove me.  However I find now that I have been doing this for quite some time, 13+ years, I'm more driven by solving hard business problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't misunderstand me, I still love the technology, but I get more satisfaction from solving difficult business problems and providing real solutions to users that actually improve their efficiency or make their lives easier than I do from pure technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I alone in this?  Is this just a function of having worked in the industry for this amount of time?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Curious if others have experienced this transition. &lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-11-12T19:41:18.080" Title="What do you find more interesting or satisfying to solve: Hard technical problems or Hard business/Customer problems" Tags="&lt;career&gt;&lt;motivation&gt;" AnswerCount="7" CommentCount="5" FavoriteCount="2" />
  <row Id="18691" PostTypeId="2" ParentId="14650" CreationDate="2010-11-12T17:33:32.430" Score="1" ViewCount="" Body="&lt;p&gt;I know it's a hard read, but &lt;a href=&quot;http://en.wikipedia.org/wiki/Donald_Knuth&quot; rel=&quot;nofollow&quot;&gt;Knuth's&lt;/a&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Art_of_Computer_Programming&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;The Art of Computer Programming&lt;/em&gt;&lt;/a&gt; is a Really Big Deal in our field.  And &lt;a href=&quot;http://en.wikipedia.org/wiki/Douglas_Hofstadter&quot; rel=&quot;nofollow&quot;&gt;Douglas Hofstadter's&lt;/a&gt; &lt;em&gt;Gödel, Escher, Bach: An Eternal Golden Braid&lt;/em&gt; is inspirational for those of us with a mathematical or algorithmic bent.&lt;/p&gt;&#xA;" OwnerUserId="6390" LastActivityDate="2010-11-12T17:33:32.430" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="18692" PostTypeId="2" ParentId="18690" CreationDate="2010-11-12T17:35:23.577" Score="1" ViewCount="" Body="&lt;p&gt;No, you aren't alone in this.  There could be a disillusionment factor where after seeing a bunch of new technologies you realize that some problems still revolve around people and thus their the big bottleneck in a sense.  At least that is how I see things changing for myself as I've gone through more than a few changes in web development over the past dozen years that I've been in this field.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another side of it can be that getting the appreciation or recognition as times can make one more appealing than the other.  If you solve a hard technical problem, who is really going to say, &quot;Wow, you did this.  Thanks for solving it,&quot; while in the customer case this may either really happen or I can pretend it did which can be rather motivating.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-12T17:35:23.577" />
  <row Id="18693" PostTypeId="2" ParentId="18690" CreationDate="2010-11-12T17:35:31.007" Score="5" ViewCount="" Body="&lt;p&gt;I'm with you on this one.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;While it may be cool to be in the technology-for-technology-sake camp, at some point technology has to solve/serve some business need.  And our clients don't really care how we do it, they just want problem X solved/fixed/whatever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me its way more satisfying to WOW a customer then to get the cudos from peers.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-11-12T17:35:31.007" />
  <row Id="18694" PostTypeId="1" CreationDate="2010-11-12T17:35:35.370" Score="0" ViewCount="163" Body="&lt;p&gt;(sorry if this is the wrong place to ask this)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have an idea for a small website (2 or 3 pages) that I want to build in Java - more specifically using JSF and Hibernate with JBoss - but I don't have any experience in those specific technologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to find an online chat service (it could be payed) that have trainers that could help me along the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone know something like this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for your time.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-15T13:30:50.177" Title="Online training chat service" Tags="&lt;java&gt;&lt;training&gt;" AnswerCount="1" CommentCount="5" />
  <row Id="18695" PostTypeId="2" ParentId="18690" CreationDate="2010-11-12T17:37:15.790" Score="2" ViewCount="" Body="&lt;p&gt;Solving hard business problems represents the practical application of your skills and abilities to  real world problems that directly affect people, and in my opinion there is nothing more rewarding.  Being able to work on the latest and greatest is always cool, but there a solution searching for a problem is almost useless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't look at this as a statement against learning new technologies -- it can be rewarding for a multitude of reasons if not directly applicable to your current work -- expanding your knowledge and skills, showing you alternate ways to solve existing problems, inspiring new ideas. But the real rewards only come from the application of that newly acquired technology/knowledge to reality.&lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-11-12T17:37:15.790" />
  <row Id="18696" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T17:37:17.297" Score="2" ViewCount="" Body="&lt;p&gt;I've been working with a few &lt;strong&gt;state institutions&lt;/strong&gt; and they are amazing at wasting money on IT.  From buying bloated middleware to solve extremely simple problems to paying thousands and thousands of dollars to a vendor to have them create a CSV.  Without in-house people with sufficient experience it seems they either get fleeced on the upfront cost or on the maintenance.&lt;/p&gt;&#xA;" OwnerUserId="617" LastEditorUserId="617" LastEditorDisplayName="" LastEditDate="2010-11-12T17:52:00.777" LastActivityDate="2010-11-12T17:52:00.777" CommentCount="1" />
  <row Id="18697" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T17:39:45.873" Score="5" ViewCount="" Body="&lt;p&gt;In a company that sold software...giving salespeople full commission on all custom mods sold, so that selling something that already existed and we could just profit on was not nearly as profitable for them as selling one-offs.  This was combined with moving the sales staff halfway across the country from the technical staff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This also meant that we in Development couldn't possibly meet the sales deadlines, making customers unhappy, and had a great deal of difficulty in getting any core work done that would make the product better for everybody.  The increased pressure caused code quality to decrease and hurt morale, particularly when we heard stories about the sales office (which I never confirmed).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lots of us resented Sales, but in fact it wasn't their fault.  They were going out and selling as much as they could, doing what they were rewarded for in accordance with the limits that had been placed on them.  It was bad management that caused all these problems.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-12T17:39:45.873" CommentCount="12" />
  <row Id="18698" PostTypeId="2" ParentId="18690" CreationDate="2010-11-12T17:40:14.377" Score="1" ViewCount="" Body="&lt;p&gt;I'm with you about halfway - I love solving a business problem using technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My programming job now is supporting the company's business, not creating new software to sell. So I'm limited in the creativity I may be able to use. However, when I can build something that is exactly what is needed, I am very satisfied. I think though, that the thing that would bring me the most satisfaction is if no one notices my changes - they fitted so seamlessly into the system that no one could tell without looking hard that they were added, just that they work.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-12T17:40:14.377" CommentCount="1" />
  <row Id="18699" PostTypeId="2" ParentId="18690" CreationDate="2010-11-12T17:44:18.700" Score="3" ViewCount="" Body="&lt;p&gt;I've always loved creating solutions that solved a real problem. I like knowing that what I've created is actually useful and is helping someone. If, along the way, I encounter and solve some technical problems as well then that's cool too. But one of the reasons I started programming was to create software that would actually be used by someone to accomplish a goal. At first that someone was usually me, now it's mostly my clients. &lt;/p&gt;&#xA;" OwnerUserId="7606" LastActivityDate="2010-11-12T17:44:18.700" />
  <row Id="18700" PostTypeId="2" ParentId="2804" CreationDate="2010-11-12T17:47:25.430" Score="5" ViewCount="" Body="&lt;p&gt;I can't stand 'backwards' comparisons to constants:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&quot;blue&quot;.isEqual(colorName);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;versus&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;colorName.isEqual(&quot;blue&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I realize both are fine but the latter just feels right and the former makes me angry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also can't stand overly obvious commenting as well as worthless variable names.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//Set the flag&#xA;myFlag = true;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="617" LastActivityDate="2010-11-12T17:47:25.430" CommunityOwnedDate="2011-03-15T08:09:28.653" CommentCount="7" />
  <row Id="18701" PostTypeId="2" ParentId="14650" CreationDate="2010-11-12T17:51:25.287" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.theannotatedturing.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;The Annotated Turing&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just picturing someone designing such complex methods &amp;amp; algorithms almost a century ago gets me motivated.&lt;/p&gt;&#xA;" OwnerUserId="617" LastActivityDate="2010-11-12T17:51:25.287" CommunityOwnedDate="2010-11-12T17:51:25.287" />
  <row Id="18702" PostTypeId="2" ParentId="16618" CreationDate="2010-11-12T17:53:24.520" Score="8" ViewCount="" Body="&lt;p&gt;Aspect Oriented Programming&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Guy_L._Steele,_Jr.&quot; rel=&quot;nofollow&quot;&gt;Guy Steele&lt;/a&gt; famously &lt;a href=&quot;http://www.urbin.net/EWW/sigs/puter-sigs2.html&quot; rel=&quot;nofollow&quot;&gt;said&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;... the ability to define your own operator functions [in C++] means that a simple statement such as x = a + b; in an inner loop might involve the sending of e-mail to Afghanistan.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Aspect Oriented Programming takes this to extremes, such that in some languages it is nearly impossible to determine what code has been inserted where inside an otherwise-understandable block of code.&lt;/p&gt;&#xA;" OwnerUserId="6390" LastActivityDate="2010-11-12T17:53:24.520" CommunityOwnedDate="2011-04-14T16:13:04.920" CommentCount="1" />
  <row Id="18703" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T17:58:04.447" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Status meetings &amp;amp; weekly reports&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An organization I worked in was all about weekly status reports - rolled up at 3 different levels. The dev leads and test leads for each of the 4-6 projects in flight report their progress in a lengthy email, which then get rolled up by the next manager up, which in turn gets arbitrarily summarized by the next one. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The following business day, all project leads gather in a 1 hour meeting to go over the report. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Effectively one day each week is spent on reporting that week's progress. Keep in mind that this is all separate from the daily standups and weekly demo / retrospective meetings.&lt;/p&gt;&#xA;" OwnerUserId="4192" LastActivityDate="2010-11-12T17:58:04.447" CommentCount="1" />
  <row Id="18704" PostTypeId="1" AcceptedAnswerId="20320" CreationDate="2010-11-12T17:58:12.573" Score="17" ViewCount="748" Body="&lt;p&gt;I periodically teach an &lt;strong&gt;introduction to programming course using Java&lt;/strong&gt;. I want to give my students some exciting &lt;strong&gt;assignments that they can relate to or find interesting&lt;/strong&gt;. At the very least, I want assignments that make sense and have an internal cohesion (for example, some very bad programming exercises seem contrived just so that you have to use the most recent programming construct covered).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To give you an idea of scope, &lt;strong&gt;here's what's being covered&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The assignments must be in Java, using some external library can be done, but it would need to be a simple API and not a full framework&lt;/li&gt;&#xA;&lt;li&gt;Variables, Primitives and Strings&lt;/li&gt;&#xA;&lt;li&gt;Console input and output&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;if&lt;/code&gt;, &lt;code&gt;for&lt;/code&gt;, &lt;code&gt;while&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Arithmetic and logical operators&lt;/li&gt;&#xA;&lt;li&gt;Simple graphics with line and shape drawing&lt;/li&gt;&#xA;&lt;li&gt;Static methods&lt;/li&gt;&#xA;&lt;li&gt;One-dimensional arrays&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The students will not go into advanced topics (e.g., no recursion, no emphasis on inheritance). Thus, I'm &lt;em&gt;not&lt;/em&gt; looking for complex projects: &quot;Have them write a C compiler. I did it when I was 5 and it was the only way I learned!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;If you have ideas that are more advanced than the scope, please post them on the &quot;Challenging&quot; question linked below, and not this one.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead, what I'm looking for are interesting ideas that can be accomplished in a short program. For example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Students can write a console version of the &lt;a href=&quot;http://www.insectdissection.com/save-curtis/swname/&quot; rel=&quot;nofollow&quot;&gt;&quot;Star Wars Name&quot; Generator&lt;/a&gt;. This is effectively reading Strings and using &lt;code&gt;substring&lt;/code&gt;, but I think it's fun. A similar variation would be a &quot;&lt;a href=&quot;http://www.madlibs.com/&quot; rel=&quot;nofollow&quot;&gt;Mad Libs&lt;/a&gt;&quot; program. &lt;em&gt;I used this one five years ago, and perhaps it's already &quot;stale.&quot;&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Using some trig supplied to them, students can draw regular polygons, and create interesting spiral shapes.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It's also not out of the question to use some simple animation class with most of the code supplied to them. And if you know a Twitter or Facebook service that can be accessed with a simple API, I would be very interested to know.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Please note that this question is different from the &quot;&lt;a href=&quot;http://programmers.stackexchange.com/questions/14986/challenging-java-questions-for-beginners&quot;&gt;Challenging Java questions for beginners&lt;/a&gt;&quot; Question. I'm not looking for challenging per se, just interesting. I think if students work on something where they can easily answer &quot;why would anyone ever want to program that?&quot; then they will learn better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even simple problems like computing Miles per Gallon can be good. Although, if there's a way to update it to be more relevant, all the better. If you have an exercise from somewhere else (a book or a website), please cite the source.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To help you think about the typical freshman today, check out &lt;a href=&quot;http://www.beloit.edu/mindset/2014.php&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;the Beloit Mindset list&lt;/strong&gt;&lt;/a&gt;, for many examples that will surely make you feel old.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-11-12T21:56:03.973" LastActivityDate="2010-11-21T20:14:53.820" Title="What are some good assignments for an introductory course, to reach today's students?" Tags="&lt;java&gt;&lt;computer-science&gt;&lt;teaching&gt;&lt;intro-to-programming&gt;" AnswerCount="18" CommentCount="3" FavoriteCount="7" />
  <row Id="18705" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T18:00:10.970" Score="17" ViewCount="" Body="&lt;p&gt;I don't see that anyone has mentioned this one yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Building your own solution when you could buy it.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Variations of this pattern:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;not even considering the buy-vs.-build tradeoff&lt;/li&gt;&#xA;&lt;li&gt;significant scope creep of the in-house solution&lt;/li&gt;&#xA;&lt;li&gt;limited scope, but also limited utility of the in-house solution&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-12T18:00:10.970" CommentCount="7" />
  <row Id="18706" PostTypeId="2" ParentId="3199" CreationDate="2010-11-12T18:00:46.930" Score="0" ViewCount="" Body="&lt;pre&gt;&#xA;              1.0.0&#xA;                |&#xA;              1.0.1&#xA;                |&#xA;(public 1.0)  1.0.2-----&#xA;                |       \&#xA;              2.0.0    1.1.0&#xA;                |        |&#xA;              2.0.1    1.1.1 (public 1.1)&#xA;                |&#xA;(public 2.0)  2.0.2-----&#xA;                |       \&#xA;              3.0.0    2.1.0&#xA;                         |&#xA;                       2.1.1 (public 2.1)&#xA;                         |&#xA;                       2.2.0&#xA;                         |&#xA;                       2.2.1&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;X.Y.Z&lt;/code&gt; is our internal version number. &lt;code&gt;X.Y&lt;/code&gt; is the public version number, the one that has a meaning to our clients. When a &lt;code&gt;X.Y.Z&lt;/code&gt; version becomes public, there will never be a &lt;code&gt;X.Y.(Z+1)&lt;/code&gt; version : the public version is always the last of the serie.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;X&lt;/code&gt; is incremented when a major version is released.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Y&lt;/code&gt; is used for the maintenance branches of those major releases, only for bug fixes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Z&lt;/code&gt; is used internally, and has no fixed meaning. Until now, I create a new &lt;code&gt;Z&lt;/code&gt; version when I think that the application has a set of features that are interesting to show to non developers, and is relatively stable. This way, I can show a demo of the &quot;last known good version&quot; of the application when someone ask one. In a near future, I plan to use the &lt;code&gt;Z&lt;/code&gt; number versions for naming a &quot;target&quot; of features, in our bugtracker.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a side note, we use maven (with the &lt;code&gt;release&lt;/code&gt; command) to increment the version number. So, there are &lt;code&gt;X.Y.Z-SNAPSHOT&lt;/code&gt; versions, too (which indicates any version between &lt;code&gt;X.Y.(Z-1)&lt;/code&gt; and &lt;code&gt;X.Y.Z&lt;/code&gt;).&lt;/p&gt;&#xA;" OwnerUserId="3527" LastActivityDate="2010-11-12T18:00:46.930" />
  <row Id="18707" PostTypeId="2" ParentId="18454" CreationDate="2010-11-12T18:10:35.607" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I use both.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If &lt;code&gt;DoSomething&lt;/code&gt; is 3-5 lines of code then the code just look beautiful using the first formatting method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if it has many more lines than that, then I prefer the second format.  I don't like when the opening and closing brackets are not on the same screen.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-12T18:10:35.607" CommunityOwnedDate="2011-02-18T13:21:55.827" />
  <row Id="18708" PostTypeId="2" ParentId="18337" CreationDate="2010-11-12T18:12:43.030" Score="1" ViewCount="" Body="&lt;p&gt;Sorin,&#xA;  I have a Master's in computer information systems - and for my final project I designed, developed and deployed a website for a local non-profit.  I had to get hands on with the organization and by going through the entire SDLC process I showed I had &quot;mastered&quot; all aspects of the curriculum.  I also went further than my colleges and actually developed and deployed the program - not just document how it should be done with a project plan, use cases, db model, etc.  Also, by working with the guys at the non-profit I showed &quot;real-world&quot; skills.   Yes, I did a lot more than my colleagues - but the professor now shows my project as his example of a great project to up and coming grads! Plus, I really helped out a good group of guys.&lt;/p&gt;&#xA;" OwnerUserId="1789" LastActivityDate="2010-11-12T18:12:43.030" />
  <row Id="18709" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T18:15:03.950" Score="6" ViewCount="" Body="&lt;p&gt;Having programmers to 1st line phone support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having programmers do testing.&lt;/p&gt;&#xA;" OwnerUserId="7609" LastActivityDate="2010-11-12T18:15:03.950" CommentCount="5" />
  <row Id="18710" PostTypeId="2" ParentId="18704" CreationDate="2010-11-12T18:26:59.073" Score="8" ViewCount="" Body="&lt;p&gt;Sounds like a text adventure game could be a terrific assignment somewhere mid semester. I had a class that made us play Colossal Cave Adventure and then make our own game. It taught me a lot of the basic constructs early on, and it was so much fun to do everyone got into it.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastActivityDate="2010-11-12T18:26:59.073" CommentCount="1" />
  <row Id="18711" PostTypeId="2" ParentId="18704" CreationDate="2010-11-12T18:28:20.493" Score="3" ViewCount="" Body="&lt;p&gt;A calculator would be a good project for learning arithmetic operations. You can make it a simple menu-based console app, or a GUI. Four functions (+,-,*,/) to start, with extra points for more complex things like square root, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For string handling, I'd suggest some validation problems. Email addresses come to mind - leaving them unchecked can lead to SQL injection holes, or other things, and they're relatively straightforward to validate. For appending, maybe have a program that can take first, middle, and last names and string them together with spaces, and also take a full name and parse it into each component. The first is used more than the second in real life, but I haven't been able to think of another parsing scenario that would be simple enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To demonstrate static methods, you could assign an email-lookup problem. Have a file of names and emails, and the static constructor could put the names/emails into a list, with a static method to find the email for a given name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope these give you some ideas! Good luck with your class.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-12T18:28:20.493" CommentCount="2" />
  <row Id="18712" PostTypeId="2" ParentId="18704" CreationDate="2010-11-12T18:42:02.537" Score="6" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Implement a Monopoly game. Monopoly has an obvious sequence and lends itself to division into funcitons very easily. It also only requires a one dimensional array and a few basic classes. The logic is simple enough so that the students will think more about &quot;how&quot; than &quot;what&quot;, and it results in something that can be demonstrated to others. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Give them an encrypted file that was encrypted with some reversible rule and ask them to write a decoder (make it simple enough though). This gives an extra incentive to solve it because of the mystery about the message's content. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I don't know why you only cover one dimensional arrays and not matrices (they really aren't all that different), but if you are willing to include that into the sylabus Jon Conway's Game of Life is also relatively easy and results in something fun. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A game like chess requires some thought but is still within the confines of what a beginner can do with minimal inheritance (specific pieces inherit from a general class Piece, and the board holds objects of type Piece), and 2D arrays (you can choose to simplify it by not requiring to implement hard stuff like stelmate detection or inability to castle if an enemy pieces is threatening the castling path). &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-11-12T18:42:02.537" CommentCount="3" />
  <row Id="18713" PostTypeId="2" ParentId="18454" CreationDate="2010-11-12T18:49:28.920" Score="0" ViewCount="" Body="&lt;p&gt;I prefer to keep if statements small.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, choosing between:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if condition:&#xA;   line1&#xA;   line2&#xA;    ...&#xA;   line-n&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if not condition: return&#xA;&#xA;line1&#xA;line2&#xA; ...&#xA;line-n&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I'd choose what you described as &quot;early return&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mind you, I don't care about early returns or whatever, I just really like to simplify the code, shorten the bodies of if statements, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nested if's and for's and while's are &lt;em&gt;horrible&lt;/em&gt;, avoid them at all costs.&lt;/p&gt;&#xA;" OwnerUserId="1747" LastActivityDate="2010-11-12T18:49:28.920" CommunityOwnedDate="2011-02-18T13:21:55.827" />
  <row Id="18714" PostTypeId="2" ParentId="18690" CreationDate="2010-11-12T18:51:04.733" Score="0" ViewCount="" Body="&lt;p&gt;I got into this business from the user side. I needed to solve hard business problems and didn't have any one else available to solve them. I can't understand why anyone would even be interested in solving hard technical problems ulness they contribute to a solution on the business side. I mean what's the point? To show how smart you are? I know how smart I am and have no need to try to impress with worthless technical &quot;coolness&quot;. And frankly I'm more impressed with the programmer who managed to design a better payroll system than the one who can show he has created personal playtoys in 27 differnt new technologies.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-12T18:51:04.733" CommentCount="3" />
  <row Id="18715" PostTypeId="2" ParentId="18704" CreationDate="2010-11-12T18:56:44.867" Score="1" ViewCount="" Body="&lt;p&gt;I'm going to be the dissenter here. I think you should give them valid business type-problems to solve not playtoys. If they aren't serious enough to be interested and motivated with the kind of work they will be actually doing as a professional, I'd rather you flunked them out in the intro course. Real work isn't about making cool stuff, it's about meeting the client's needs. I've also seen a lot of people who can;t make the leap between what they learning in a game and using the same techiniques in business programming. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every senior developer and hiring manager I know is disgusted with the quality of recent graduates. Try focusing on what they need to learn to work in the real world and forget about making it fun.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-12T18:56:44.867" CommentCount="15" />
  <row Id="18716" PostTypeId="2" ParentId="9320" CreationDate="2010-11-12T18:57:37.297" Score="2" ViewCount="" Body="&lt;p&gt;Paul Graham sort of answers this question himself in &lt;a href=&quot;http://www.paulgraham.com/diff.html&quot; rel=&quot;nofollow&quot;&gt;What Made Lisp Different&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep in mind he used it for his startup during the mid 90's, so python and ruby weren't really mature at that point (or maybe not even born).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lisp basically has all the advantages of dynamic languages, and I think for most of today's web apps, python and ruby are pretty awesome, and they have the advantage of frameworks and documentation and vibrant communities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The killer feature is probably that the entire program is made of expressions. This means you can sort of pass around blocks of code to functions (or macros..), because a block of code is nothing more than an expression. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Python doesn't exactly have this feature; you'd have to define functions and pass them around. Ruby seems to have blocks, perhaps it's somewhat limited compared to what lisp can do (I'm not sure).&lt;/p&gt;&#xA;" OwnerUserId="1747" LastActivityDate="2010-11-12T18:57:37.297" CommunityOwnedDate="2011-02-15T18:45:43.453" />
  <row Id="18717" PostTypeId="2" ParentId="18704" CreationDate="2010-11-12T19:19:55.317" Score="3" ViewCount="" Body="&lt;p&gt;One very interesting and cool thing for an assignment is writing an implementation of Conway's &lt;a href=&quot;http://en.wikipedia.org/wiki/Conways_Game_of_Life&quot; rel=&quot;nofollow&quot;&gt;Game of Life&lt;/a&gt; in 2D. It maps very well to basic array data structures, it's fun and pretty easy to do, but still requires some thinking. It may open up some curiosity and experimentation as well (AI). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Advanced students can write a version in 3D for extra points.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-11-12T19:19:55.317" />
  <row Id="18718" PostTypeId="2" ParentId="9320" CreationDate="2010-11-12T19:25:22.093" Score="5" ViewCount="" Body="&lt;p&gt;The logical answers have all been covered, so I'll add my personal one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like lisp because it's an excellent medium for expressing my thoughts. The predicate for my favorite language is &quot;If I could pick anything to express ideas in, what would it be?&quot;. Currently it's Lisp* (Scheme to be specific), to the point that I find myself writing out programming notes in it. As in IRL, paper and pen notes. Even when I'm thinking about programs I need to implement in PHP or Ruby or Python. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't a trick I taught myself, or something I do for nerd cred (no one gets to see the inside my notebook anyway), it's just that Lisp is so much more natural &lt;strong&gt;for me&lt;/strong&gt; to think in than any of the alternatives, and any language that resonates with you that deeply is one you treasure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*Just as a footnote though, Haskell is closing the gap pretty quickly as I learn more of it.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-12T19:25:22.093" CommunityOwnedDate="2011-02-15T18:45:43.453" />
  <row Id="18719" PostTypeId="1" CreationDate="2010-11-12T19:28:32.663" Score="2" ViewCount="113" Body="&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I decided to learn XML from a professional book instead of reading tutorials online, after some research i decided to read &quot;Beginning XML, 4th Ed&quot; book and it was very interesting book and i recommend it to anyone want to learn XML, my question is: does reading &amp;amp; learning these chapters:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;XQuery, the XML Query Language&lt;/li&gt;&#xA;&lt;li&gt;XML and Databases&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;really required for someone who is doing mainly:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hibernate/JPA for object/relational persistence? or in other words does learning XQuery &amp;amp; XML databases really required by the current industry standards skills ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance&lt;/p&gt;&#xA;" LastActivityDate="2010-11-30T19:41:16.987" Title="XQuery &amp; XML databases" Tags="&lt;books&gt;&lt;xml&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="18720" PostTypeId="1" AcceptedAnswerId="18723" CreationDate="2010-11-12T19:31:41.293" Score="15" ViewCount="482" Body="&lt;p&gt;I've recently had a discussion with a coworker about versioning web applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think you need it at all, and if you just want a sanity check to confirm your latest release is live, I think a date (YYMMDD) is probably good enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I off base?  Am I missing the point?  Should I use web application version numbers&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-11-13T16:14:52.137" Title="Should you version web applications?" Tags="&lt;best-practices&gt;&lt;web-applications&gt;&lt;versioning&gt;" AnswerCount="13" FavoriteCount="2" />
  <row Id="18721" PostTypeId="2" ParentId="18690" CreationDate="2010-11-12T19:41:18.080" Score="0" ViewCount="" Body="&lt;p&gt;There's a bajillion ways to solve every business problem, and if I/we focused on just solving those problems, we'd all still be programming in COBOL. I say no; solving the business problem is one thing, but doing it in a way that is technically interesting and challenging is more important to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After all, if the consumer/user doesn't care HOW we solve it, or WHAT we use to solve it - may as well use tools and technologies that are interesting. If you actually &lt;em&gt;do&lt;/em&gt; love the technology, then you always have the best of both worlds.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-12T19:41:18.080" />
  <row Id="18722" PostTypeId="2" ParentId="18720" CreationDate="2010-11-12T19:42:31.863" Score="7" ViewCount="" Body="&lt;p&gt;If you can automate version number on your application's DLLs, it couldn't hurt.  It will help you keep track of versions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally, web apps are released only at one location where you are hosting it, so it's not as important as say a desktop application.  It can help with roll-backs, bug tracking (i.e. which version was this in) and keeping track of the difference between developer, staging, and production servers, if applicable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd look into automating it - it's the kind of thing you can setup once and use it if/when you need it.&lt;/p&gt;&#xA;" OwnerUserId="6659" LastActivityDate="2010-11-12T19:42:31.863" />
  <row Id="18723" PostTypeId="2" ParentId="18720" CreationDate="2010-11-12T19:44:42.427" Score="16" ViewCount="" Body="&lt;p&gt;If you resell the same web application to multiple customers, you absolutely should version it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's a website that's only ever installed in one location, then the need is less dire, but it still likely couldn't hurt. You'd be less susceptible to timezone problems and such, too. Diagnosing an issue in a library version 1.0.2.25 is a lot nicer than hunting down the library build on November 3, 2010 11:15 a.m.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-11-12T19:44:42.427" CommentCount="9" />
  <row Id="18724" PostTypeId="2" ParentId="18666" CreationDate="2010-11-12T19:49:53.793" Score="1" ViewCount="" Body="&lt;p&gt;There are many things that you need to consider.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To add to @karianna's first point:&#xA;&lt;strong&gt;make yourself available&lt;/strong&gt;.  Make sure that people see your presence and vice versa - through some sort of IM system for example.  The hardest thing is not knowing if/when you can get in touch with someone.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, have a weekly meeting that is mandatory for everyone - and hold the meeting regardless if it only takes 2 minutes to say &quot;nothing new, we're all good&quot;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are lots of tools for time-tracking, project management, etc... look at things like the suite of tools provided by 37signals, and things that integrate with these tools.&lt;/p&gt;&#xA;" OwnerUserId="6659" LastActivityDate="2010-11-12T19:49:53.793" />
  <row Id="18725" PostTypeId="2" ParentId="18720" CreationDate="2010-11-12T19:54:28.050" Score="2" ViewCount="" Body="&lt;p&gt;In addition to what the others have said, I'd add that versioning is also important from a marketing perspective.  A new version is something new that can be marketed to potential or existing customers.  It lets customers know something is 'new' and see that things are moving forward.  It provides nice groupings of new features.  And it looks more professional.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-12T19:54:28.050" />
  <row Id="18726" PostTypeId="2" ParentId="18720" CreationDate="2010-11-12T19:56:22.557" Score="6" ViewCount="" Body="&lt;p&gt;Your users doesn't care about version numbers as they always have the latest and greatest release anyway, but you owe it to yourself (and your team) to know exactly what version is running live. Eventually your development source gets out of sync with the live code and then you &lt;em&gt;definitely&lt;/em&gt; must know. So label your releases in your svn/git tree and mark the web app with that tag. &lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-11-12T19:56:22.557" CommentCount="1" />
  <row Id="18727" PostTypeId="2" ParentId="18564" CreationDate="2010-11-12T20:03:04.003" Score="8" ViewCount="" Body="&lt;p&gt;Miguel de Icaza - the Mono project.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(He's also incredibly funny, witty and entertaining - at least from the brief talk I saw him give and in listening to some podcast interviews)&lt;/p&gt;&#xA;" OwnerUserId="3439" LastEditorUserId="3439" LastEditorDisplayName="" LastEditDate="2010-11-12T20:37:27.947" LastActivityDate="2010-11-12T20:37:27.947" CommentCount="1" />
  <row Id="18728" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T20:06:18.493" Score="16" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Limiting Long-term Raises and Bonuses&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think its taught in Business 101 to &lt;strong&gt;not&lt;/strong&gt; give employees raises. A secondary case is to limit salaries of star performers because they need to fit inside of some certain salary range.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually employees will realise their pay-scale is not in-line with their industry (or output). The people that have the resume and skills will eventually leave, and take with them all their knowledge and probably a few of their friends. The people remaining (who are the bottom performers) will have to pick up the slack and then spend more time hiring a new person (at market rate). So the company just traded a star employee for JR level one, and just lost all the &quot;savings&quot; of keeping the salaries low.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As this continues, the development team will struggle to stay on par, and will probably get worse and worse until something drastic is done.&lt;/p&gt;&#xA;" OwnerUserId="3122" LastEditorUserId="3122" LastEditorDisplayName="" LastEditDate="2010-11-13T09:52:11.760" LastActivityDate="2010-11-13T09:52:11.760" CommentCount="3" />
  <row Id="18729" PostTypeId="2" ParentId="18585" CreationDate="2010-11-12T20:27:00.787" Score="1" ViewCount="" Body="&lt;p&gt;Let's see, we once spent well over half a million dollars doing the work to win a million dollar contract. So much for the profit on that one. Some of us on the project proposal development team tried to point this out but it had become a thing of pride for our little company to win over the Fortune 500 companies we were competing with. We did win and lost money hand over fist onteh contract for that and other reasons but we had bragging rights.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a government contractor once, I was forced to work unpaid overtime because the contract allowed it and the contractor got paid for my overtime. Not only that I was caught up on my work and spent 4 hours every Sunday surfing the Internet with no work to do. Needless to say I moved on very quickly after they started that nonsense. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Buying Clarity as our project management system, a commercial app that is so bad, 100% of the people who use it have begged to go back to our old home grown system (the one guy who liked and chose it has moved on to some other company), people even volunteered to work on their own time to add the reporting they wanted to our old system. But we have invested the money so we are stuck with it. In other words, refusing to ditch something that doesn't work just because it was expensive. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-12T20:27:00.787" CommentCount="1" />
  <row Id="18730" PostTypeId="2" ParentId="18720" CreationDate="2010-11-12T20:31:06.037" Score="7" ViewCount="" Body="&lt;p&gt;If you have a dev/test instances it is pretty important for project team members to able to see which build/revision they are testing.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-12T20:31:06.037" />
  <row Id="18731" PostTypeId="2" ParentId="18720" CreationDate="2010-11-12T20:38:13.150" Score="3" ViewCount="" Body="&lt;p&gt;You should version your web application with the build id from your build server and have that  id enclosed in all bug reports.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This will allow you to go  back in time in case you have to fix a bug reported on an older version not currently present in production.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-11-13T12:29:24.847" LastActivityDate="2010-11-13T12:29:24.847" />
  <row Id="18732" PostTypeId="2" ParentId="18667" CreationDate="2010-11-12T20:42:58.953" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Definite NO NO&lt;/strong&gt;: Anything &quot;directly negative&quot; about your current employer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example - try to frame your interest in new technologies as a positive, forward-looking reason for moving on, rather than as a negatively-framed &quot;my current employer sucks and is keeping me stuck on crappy old VB6&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In that sense, I think it's more about the delivery than the reasons themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, as other have said, &lt;em&gt;never&lt;/em&gt; have a go at your current employers on a personal level in the interview. The way I think of this one is: imagine if your old employer was present in the interview in spirit - would they see the way you're talking about them as venomous, as &quot;burning a bridge&quot;, or as a neutral/positive reasonable reason for why you'd be wanting to move on to something new.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-12T20:42:58.953" CommentCount="3" />
  <row Id="18733" PostTypeId="2" ParentId="18649" CreationDate="2010-11-12T20:44:18.273" Score="3" ViewCount="" Body="&lt;p&gt;I'm unimpressed with that essay; he spent what, one day trying out his new method?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, Pomodoro &amp;amp; similar techniques seem to have a persistent niche popularity. Typically I try to sort my days into &quot;focus days&quot; and &quot;misc days&quot;. Focus days I show up in slightly more relaxed clothing, maybe a bit earlier (or stay later). I don't have any meetings those days, so I can basically write my own schedule, which lets me focus better. On the other days, I have meetings, appointments, and so forth. I won't have the time to concentrate, so I try to schedule smaller and easier tasks to fill my time in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One good way to increase productivity in coding is code generation of any boilerplate bits; refactoring anything that gets duplicated, etc.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-12T20:44:18.273" />
  <row Id="18734" PostTypeId="2" ParentId="18720" CreationDate="2010-11-12T20:52:58.453" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Internal use only with limited install base?&lt;/li&gt;&#xA;&lt;li&gt;Or liable to have multiple versions in the wild?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;We only have the former so only use the version number for sanity checking post release. We don't have to track many versions in use at the same time.&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-11-12T20:52:58.453" />
  <row Id="18735" PostTypeId="2" ParentId="18704" CreationDate="2010-11-12T20:57:28.467" Score="6" ViewCount="" Body="&lt;p&gt;How about using a problem or two from &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;http://projecteuler.net/&lt;/a&gt;  Some of these are quite interesting and one could see the benefit of writing a program to solve them.  They are small enough that several can be done as assignments.  Another one that I've like to use is finding $1.00 words.  Each letter in the alaphabet is worth its position in pennies i.e. a = 1, b=2.  How many $1.00 dollar words can you find?  This could involve file i/o (reading in a dictionary), arrays, looping etc.&lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-11-12T20:57:28.467" CommentCount="3" />
  <row Id="18736" PostTypeId="2" ParentId="17355" CreationDate="2010-11-12T21:02:08.960" Score="1" ViewCount="" Body="&lt;p&gt;For cheap, fast, easy approximation of rotation around the &quot;x&quot; axis:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;d = 0.0001;&#xA;y = y + z * d;&#xA;z = z - Y * d;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It's an approximation, but not one that you'd ever notice the error on&lt;/p&gt;&#xA;" OwnerUserId="7470" LastActivityDate="2010-11-12T21:02:08.960" CommunityOwnedDate="2010-12-03T10:46:42.217" />
  <row Id="18737" PostTypeId="1" AcceptedAnswerId="34986" CreationDate="2010-11-12T21:03:49.507" Score="1" ViewCount="195" Body="&lt;p&gt;I've just finished my master and I'm starting to dig into the laboral world, i.e. learning how programming teams and technology companies work in the real world.&#xA;I'm starting to design the idea of my own service or product based on free software, and I will require a well coupled, enthusiast and fluid team to build and the idea. My problem is that I'm not sure which would be the best skills to ask for a programming team of 4-5 members.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have many friends and acquaintances, with whom I've worked during my studies. Must of those ones I have in mind are very capable and smart people, with a good logic and programming base, although some of them have some characteristics that I believe that could influtiate negatively in the group: lack of communication, fear to debate ideas, hard to give when debating, lack of structured programming (testing, good commenting, previous design and analysis).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of them have this negative characteristics, but must of them have a lot of enthusiasm, nice working skills (from an individual point of view), and ability to see the whole picture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question is: how to pick the best team for a large scale project, with a lot of programming? Which of these negative skills do you think are just too influential? Which can be softened with good leadership? Wich good skills are to be expected? And any other opinion about social and programming skills of a programming team.&lt;/p&gt;&#xA;" OwnerUserId="7618" LastActivityDate="2011-01-08T20:59:30.490" Title="How to pick a great working team?" Tags="&lt;career&gt;&lt;programming-practices&gt;&lt;great-programmer&gt;&lt;team&gt;" AnswerCount="4" />
  <row Id="18738" PostTypeId="2" ParentId="18737" CreationDate="2010-11-12T21:12:10.373" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Joel Spolsky said: &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html&quot; rel=&quot;nofollow&quot;&gt;In principle, it’s simple. You’re&#xA;  looking for people who are&lt;/a&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;Smart, and&lt;/li&gt;&#xA;  &lt;li&gt;Get things done.&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="7499" LastActivityDate="2010-11-12T21:12:10.373" />
  <row Id="18739" PostTypeId="2" ParentId="18737" CreationDate="2010-11-12T21:18:32.067" Score="2" ViewCount="" Body="&lt;p&gt;Steve Yegge liked that principle and expanded on it a bit with &lt;a href=&quot;http://steve-yegge.blogspot.com/2008/06/done-and-gets-things-smart.html&quot; rel=&quot;nofollow&quot; title=&quot;Done and Gets Things Smart&quot;&gt;Done and Gets Things Smart.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've managed teams for 5 years now, after 15 years of development.  My own principle is much like Spoelsky's only not as elegantly worded.  Programmers are problem solvers who use software to solve the problems.  In that sense, a good programmer will use whatever tool is the best for the job, although that often means one of the handful they know best (good luck finding a .Net developer who believes Lisp is the best tool for a job).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While all of my interviews do have some development specific questions, they tend to be generic and not toolset based.  I would rather have people who understand OO (our current app suite is OO), and show an ability to understand, learn, and embrace.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of that said, they do need to show they have the ability to write sound logic in some language.  I've come across way too many developers who can talk the talk but can't walk the walk.&lt;/p&gt;&#xA;" OwnerUserId="7620" LastActivityDate="2010-11-12T21:18:32.067" CommentCount="3" />
  <row Id="18740" PostTypeId="2" ParentId="18720" CreationDate="2010-11-12T21:20:36.690" Score="0" ViewCount="" Body="&lt;p&gt;If your web application consists of multiple modules, both in client and server, each module should be versioned. And each combination of module versions on both client and server should be given an unique id, an id that should be present in all logging and error messages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By using that convention, it will always be possible to recreate the state the web app was in at a given moment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion, since webapps these days are built using dynamic languages on both sides, server and client, there shouldn't be any reason for reloading an updated web app unless the user restarts the browser or manually reloads the page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only the updated parts or modules in the web app should be reloaded without affecting the overall state of the application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why you might ask? Well, by enforcing that, the web app will by its design be more roboust, correct and probably easier to maintain. If the web app always require simultaneous server/client update then it probably is not build the right way.&lt;/p&gt;&#xA;" OwnerUserId="7098" LastActivityDate="2010-11-12T21:20:36.690" />
  <row Id="18741" PostTypeId="2" ParentId="14650" CreationDate="2010-11-12T21:27:13.997" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://cc2e.com/&quot; rel=&quot;nofollow&quot;&gt;Code Complete&lt;/a&gt; . It covers most of the basic subjects you need to know as a programmer, and gives you directions to learn more about each of them. A very good first step in a learning path. Myself and lots of people I know, wish they read it earlier in their programmer life.&lt;/p&gt;&#xA;" OwnerUserId="7454" LastEditorUserId="7454" LastEditorDisplayName="" LastEditDate="2010-11-24T16:50:18.947" LastActivityDate="2010-11-24T16:50:18.947" CommunityOwnedDate="2010-11-12T21:27:13.997" />
  <row Id="18742" PostTypeId="2" ParentId="18719" CreationDate="2010-11-12T21:36:57.733" Score="1" ViewCount="" Body="&lt;p&gt;I don't know your book so I'm not sure the content of the XML and Databases. XQuery would be handy regardless of your persistence strategy. I have used it in integration and message-oriented projects where we are consuming XML and either mapping it to another message or controlling the routing. I wouldn't put a lot of effort at getting proficient with it until you really find you can use it, but it is handy to know of its capabilities. I do not use it often and consequently have to refresh myself when I do.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-12T21:36:57.733" />
  <row Id="18743" PostTypeId="2" ParentId="18679" CreationDate="2010-11-12T21:37:35.627" Score="0" ViewCount="" Body="&lt;p&gt;Start working on solving classical problems on for example &lt;a href=&quot;http://www.spoj.pl/&quot; rel=&quot;nofollow&quot;&gt;sphere online&lt;/a&gt;, the site might not look that fancy but boy, these are classical programming problems that require many of the important data structures and algorithms in use today.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Solutions can be submitted in a variety of programming languages from C/C++ to JavaScript, Lisp, Smalltalk, assembler + some 40 more. So you can focus entirely on solving the problem with whatever programming language you feel comfortable with.&lt;/p&gt;&#xA;" OwnerUserId="7098" LastActivityDate="2010-11-12T21:37:35.627" />
  <row Id="18744" PostTypeId="2" ParentId="237" CreationDate="2010-11-12T21:42:05.910" Score="1" ViewCount="" Body="&lt;p&gt;If you like darcs (and/or do a lot of Haskell development), &lt;a href=&quot;http://www.patch-tag.com/&quot; rel=&quot;nofollow&quot;&gt;Patch-Tag&lt;/a&gt; may be the only option available.  At least I'm not sure of any other darcs hosts.  Seems like a nice site, though it seems to still be in a beta state.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-12T21:42:05.910" />
  <row Id="18745" PostTypeId="2" ParentId="18704" CreationDate="2010-11-12T21:56:37.717" Score="0" ViewCount="" Body="&lt;p&gt;An assignment for building a silly widget on their mobile phones. Something that they could show their friends. I have a uber-cheap AT&amp;amp;T phone and it takes jar files of some sort .&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-12T21:56:37.717" />
  <row Id="18746" PostTypeId="2" ParentId="16179" CreationDate="2010-11-12T21:58:41.813" Score="1" ViewCount="" Body="&lt;p&gt;Complex problems cannot be rendered simpler through technology, they can only be &lt;em&gt;managed&lt;/em&gt; through technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OOP is a technology, a concept, and a way to approach a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OOP gives you the tools to enforce a &lt;strong&gt;design&lt;/strong&gt; that can make it easier to manage complexity, but you can just as easily have a bad design that increases your complexity.  In other words, if not used properly, you can have technology-induced complexity in your problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep in mind that there are many other aspects that will dictate how successful your project will be (i.e. project management style, problem definition, change management, etc...).  The technology you use is only relevant in how much will it help you &lt;em&gt;manage&lt;/em&gt; the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, &lt;strong&gt;object oriented programming cannot be a &lt;em&gt;solution&lt;/em&gt; to complexity; it's just a tool to manage it.&lt;/strong&gt; (if used properly)&lt;/p&gt;&#xA;" OwnerUserId="6659" LastActivityDate="2010-11-12T21:58:41.813" />
  <row Id="18750" PostTypeId="2" ParentId="18373" CreationDate="2010-11-12T22:36:42.563" Score="-1" ViewCount="" Body="&lt;p&gt;I agree with the previous answer that recommended a MacBook Pro; here's some further reasons why…&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's important to keep in mind that Mac OS X loves RAM—and that the MacBook Airs only come with 2GB of RAM, and only support a &lt;em&gt;maximum&lt;/em&gt; of &lt;a href=&quot;http://www.apple.com/macbookair/specs.html&quot; rel=&quot;nofollow&quot;&gt;4GB of RAM&lt;/a&gt;. As a comparison, the 13&quot; MacBook Pro supports up to 8GB.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also no optical drive and no FireWire.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The limitations make sense for someone who is carrying it around all the time, and whose #1 priority is weight. Otherwise, not so much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the time you add on all the things you need—both for development and in general—that the Air lacks (optical drive, external hard drive, etc.) the Air isn't particularly portable, inexpensive, or lightweight any more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apple has a great comparison of their notebooks &lt;a href=&quot;http://www.apple.com/why-mac/compare/notebooks.html&quot; rel=&quot;nofollow&quot;&gt;on this page&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-11-12T22:36:42.563" CommentCount="11" />
  <row Id="18751" PostTypeId="1" AcceptedAnswerId="20393" CreationDate="2010-11-12T22:37:47.610" Score="13" ViewCount="643" Body="&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm interested if there are any websites or software out there to aid in initial project design, and then management of the project's design over time as features are implmented, bugs are found, etc...  My design will include requirements (functional &amp;amp; non-functional), use cases, and basic database schema design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most sought-after feature:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Being able to define requirements and track their changes over time (i.e. how is version 1.5 different than 1.0?)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Nice-to-haves:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Being able to collaborate with other project managers and the team when putting together the specifications&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What I'm &lt;em&gt;not&lt;/em&gt; looking for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ticket trackers (JIRA, fogbugz, etc...)&lt;/li&gt;&#xA;&lt;li&gt;Software version control systems&lt;/li&gt;&#xA;&lt;li&gt;Wikis (unless they are built with requirements management in mind)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastEditorUserId="3907" LastEditorDisplayName="" LastEditDate="2010-11-15T21:31:19.830" LastActivityDate="2010-11-22T05:29:17.900" Title="Tools to produce &amp; manage specifications/requirements (not ticket trackers)" Tags="&lt;project-management&gt;&lt;collaboration&gt;&lt;requirements&gt;" AnswerCount="11" CommentCount="1" FavoriteCount="8" />
  <row Id="18752" PostTypeId="2" ParentId="18373" CreationDate="2010-11-12T22:41:33.897" Score="0" ViewCount="" Body="&lt;p&gt;I still do some development on an old Powerbook 12&quot;; though I do Rails development in TextMate I don't use XCode - that may be a little more greedy. Still, dev on an Air is totally do-able. It is a compromise for me, not the best dev machine I have but it can get the job done. An Air would be lighter and a lot cooler (temp wise!).&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-12T22:41:33.897" />
  <row Id="18753" PostTypeId="2" ParentId="18720" CreationDate="2010-11-12T22:46:33.950" Score="2" ViewCount="" Body="&lt;p&gt;I say that for anything but a trivial web application, you should version it.  There are two, slightly different, notions at work here:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;application as a whole&lt;/li&gt;&#xA;&lt;li&gt;individual files&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Regardless of the situation, I believe that files should have individual version (or revision) numbers.  Ideally, this would be handled automagicaly by your version control system.  As it has been stated by others, it's easier to refer to a file's version number than its date-and-time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have (or may have) more than one live installation of the application, it should be versioned as a whole.  This is also a good practice if you have separate dev and test environments (as you likely should).  Each application (or release) version number refers to a collection of individual files at specific version numbers.  While dealing with all of this is an extra burden, it is easier to check-out a specific release than individual files at specific revision numbers.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;This makes me think of a notion in linguistics.  It is said that if you can't express something in a language, you can't think about it (in that language).  I think of the German word 'Schadenfreude.'  It is much easier to think (and speak) of this notion of &quot;feeling joy due to someone else's misfortune&quot; by referring to that word, than its definition.  That is the reason the word has crept into use in the English language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, version numbers make it easier to speak (and think) of your application and its files at specific states.  If you're a one person team, working on one application, it doesn't likely make a huge difference.  However, as things get more complicated it is better for you to have these labels available for use.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-11-12T22:46:33.950" />
  <row Id="18754" PostTypeId="2" ParentId="18679" CreationDate="2010-11-12T22:55:08.730" Score="0" ViewCount="" Body="&lt;h3&gt;Algorithms&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I took magic lessons in a group setting when I was twelve years old. The magician's name was Joe Carota. He did a trick one time and I blurted out, &quot;How did you do that?&quot; He said something that day that has stuck with me ever since.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Joe's response, &quot;Michael, if you really want to know how that trick is done you must figure out how you would do it yourself.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well of course that's not what I wanted to hear but it did get my mind focused on problem solving. This was problem solving from my perspective. If my first attempt at solving the problem took seventeen steps and was really klunky, the good news was I solved the problem. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then by looking at the solution I had developed and looking for ways to refine that solution I would learn how to streamline the end result. Later on in my computer programming life I found out that this process was called &quot;Stepwise Refinement&quot;. I think today they call it refactoring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It worked then it still works now.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-12T22:55:08.730" />
  <row Id="18755" PostTypeId="1" AcceptedAnswerId="18763" CreationDate="2010-11-12T23:07:22.457" Score="7" ViewCount="255" Body="&lt;p&gt;The title is a bit vague so let me elaborate: I develop both hardware and software, and I'm in a position where I get a list of 'large' tasks/projects to do but not on a regular basis. Sometimes there's 10 new things to do in one month, other times months pass by without any real deadlines. This gets combined with 'small' tasks/projects/bugs that are extremely urgent. Basically no one but me is in a good position to decide how much time I spend on what, and when I do that: the basic philosophy is 'you do whatever you want, whenever you want, just make sure the things that are urgent or have a deadline are done in time'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Firstly I'd like to hear from others if they are working in a similar environment? The reason I'm asking is that I do not know many other programmers in person, and the ones I do talk to are more in a typical '9 to 5' job and their time is rather managed by, erm, managers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, for those that are in a such a situation, did you ever find yourself spending huge amounts of time on something that was not really necessary, hereby kind of abusing your freedom? I'll give some examples: about a year ago I spent at least a month on writing a build server application, only to abandon it last month in favour of Hudson. Which again took several days to setup. Sometimes I find myself losing huge amounts of time refactoring a core library for the xth time although it's not really needed. Once I spent weeks studying the ins and outs of digital filters, while the actual task was making a basic bandpass filter that anyone could probably do in a day or so. Then I changed my mind and went with an analog implementation after all. Please share similar stories.&lt;/p&gt;&#xA;" OwnerUserId="3660" LastEditorUserId="5635" LastEditorDisplayName="" LastEditDate="2010-11-12T23:22:51.470" LastActivityDate="2010-11-13T01:15:49.213" Title="Are you allowed to manage your own time and if so, do you sometimes abuse this?" Tags="&lt;time-management&gt;&lt;job-definition&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="18756" PostTypeId="2" ParentId="18751" CreationDate="2010-11-12T23:42:39.410" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Google Docs&lt;/strong&gt;&lt;br&gt;&#xA;Pros&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Free, you just need a Google account&lt;/li&gt;&#xA;&lt;li&gt;Online, no software to install&lt;/li&gt;&#xA;&lt;li&gt;Excellent collaboration tools, multiple people can edit in real time, it will resolve most conflicts&lt;/li&gt;&#xA;&lt;li&gt;Version history, easy to track changes&lt;/li&gt;&#xA;&lt;li&gt;Export to PDF&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Cons&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Not as fully featured compared to Microsoft Office&lt;/li&gt;&#xA;&lt;li&gt;Doesn't render other document formats created outside of Google Docs pixel perfect&lt;/li&gt;&#xA;&lt;li&gt;They don't have offline support (at least on the one I use)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For functional specification and requirements I try to go with the simplest tool, Google Docs is easy to use, easy to collaborate and easy to export.&lt;/p&gt;&#xA;" OwnerUserId="6926" LastActivityDate="2010-11-12T23:42:39.410" CommentCount="3" />
  <row Id="18757" PostTypeId="2" ParentId="18755" CreationDate="2010-11-12T23:51:39.613" Score="2" ViewCount="" Body="&lt;p&gt;For me, most of the time projects come in throughout the course of a year with deadlines and those get coded usually without delay and are out the door fairly quickly.  The remainder of the year is left for small requests, ad hoc projects, R&amp;amp;D, and personal pet projects.  Those get done on my own timeframe.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the most part people don't care what I do or when I do it, as long as the project is done ontime and error-free.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-11-12T23:51:39.613" />
  <row Id="18758" PostTypeId="2" ParentId="2654" CreationDate="2010-11-12T23:52:08.597" Score="0" ViewCount="" Body="&lt;h3&gt;SQL&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;We used a naming convention for our database elements.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;tblTableNames&lt;/li&gt;&#xA;&lt;li&gt;viewViewName&lt;/li&gt;&#xA;&lt;li&gt;spAdminProcedureName&lt;/li&gt;&#xA;&lt;li&gt;spProcedureName&lt;br&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Oftimes we would create a widget for a customer and 3 months later we would resell that widget to another customer. Eventually naminging conflicts arose and we had to recode a widget.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;br&gt;&#xA;&lt;strong&gt;Press Release Widget&lt;/strong&gt;&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;tblContent &lt;/li&gt;&#xA;&lt;li&gt;tblCategories &lt;/li&gt;&#xA;&lt;li&gt;tblImages&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Photo Gallery Widget&lt;/strong&gt;&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;tblPhotos&lt;/li&gt;&#xA;&lt;li&gt;tblCategories &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If Customer-A already had the press release widget and now wanted the Photo Gallery widget we had a naming conflict with tblCategories. We couldn't just script the Photo Gallery elements and run them against Company-A's database. Argh!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So we we started appending a &lt;em&gt;&quot;widget&quot;&lt;/em&gt; references to our SQL elements:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;tblPG_Photos&lt;/li&gt;&#xA;&lt;li&gt;tblPG_Categories &lt;/li&gt;&#xA;&lt;li&gt;tblPR_Content &lt;/li&gt;&#xA;&lt;li&gt;tblPR_Categories &lt;/li&gt;&#xA;&lt;li&gt;tblPR_Images&lt;/li&gt;&#xA;&lt;li&gt;spPG_Proc1&lt;/li&gt;&#xA;&lt;li&gt;spPG_Proc2&lt;/li&gt;&#xA;&lt;li&gt;spPG_Proc3&lt;/li&gt;&#xA;&lt;li&gt;spPR_Proc1&lt;/li&gt;&#xA;&lt;li&gt;spPR_Proc2&lt;/li&gt;&#xA;&lt;li&gt;spPR_Proc3&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This kept things nicely bundled and helped us be more profitable in the long run.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-12T23:52:08.597" />
  <row Id="18759" PostTypeId="2" ParentId="18755" CreationDate="2010-11-12T23:59:39.287" Score="0" ViewCount="" Body="&lt;p&gt;I have had similar circumstances though it has been years since I had that much undirected time - I usually find all kinds of ways to overcommit myself these days. In the past I used the time pretty well I suppose; learned a lot of things that I did later apply. I also did asinine things like spending an absurd amount of time implementing my own inter-process communication protocol complete with my own implementations of basic data structures like hash tables. This actually was at a 9-5 job but they just didn't have enough real work for me - my boss needed me to do a few key things and every now and then I'd get a rush project but it wasn't hard to keep him happy. &lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-12T23:59:39.287" />
  <row Id="18760" PostTypeId="2" ParentId="18755" CreationDate="2010-11-13T00:15:05.437" Score="2" ViewCount="" Body="&lt;p&gt;You may want to consider it from a positive angle.  The money you get paid to do unnecessary work that interests you is an investment the company is (unwittingly) making in you as a developer:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It keeps you from getting bored.  It sounds like you're easily getting your tasks done; if you got bored and left for more interesting positions, the company would take a hit. They're paying to avoid that.&lt;/li&gt;&#xA;&lt;li&gt;It improves your skills.  Maybe you didn't end up using a digital filter that one time, but if the need ever arises, you'll know what to do.  Maybe you didn't use your build server, but the experience of writing it makes you a better developer on the whole, which can be applied to other tasks. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6" LastActivityDate="2010-11-13T00:15:05.437" />
  <row Id="18761" PostTypeId="2" ParentId="18240" CreationDate="2010-11-13T00:43:47.160" Score="6" ViewCount="" Body="&lt;p&gt;You could play &quot;Spot the Defect&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go through your bug tracking logs and find some places where people wrote code that was plausible but horribly wrong in some subtle way.  Rewrite the code to disguise where it came from but preserve the bug, put it up on the whiteboard, and have people:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;see if they can find the bug&lt;/li&gt;&#xA;&lt;li&gt;figure out what the fix is&lt;/li&gt;&#xA;&lt;li&gt;describe how the bug could have been found during code review&lt;/li&gt;&#xA;&lt;li&gt;propose changes to the language or tool that would have prevented the bug&lt;/li&gt;&#xA;&lt;li&gt;and so on.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Neal Gafter and I put together a series of six &quot;spot the defect&quot; problems and presented them to the audience at the last Norwegian Developers Conference; it was a lot of fun, and I think people learned a lot.&lt;/p&gt;&#xA;" OwnerUserId="6505" LastActivityDate="2010-11-13T00:43:47.160" />
  <row Id="18762" PostTypeId="2" ParentId="18373" CreationDate="2010-11-13T00:45:39.577" Score="0" ViewCount="" Body="&lt;p&gt;It's more than enough for iPhone development. That said, the big selling point of the Air is the light weight. If you don't need something ultra light, I would encourage you to consider the MBP instead. I use the 13&quot; MBP and love it! With the 8gb memory limit, you don't have to worry about bogging down with a few VMs running, which I never thought I'd use! I run WinXP in a VM so I can jump in and do &quot;Windows&quot; things when I need to. Just give it some thought. I almost bought an iMac because I didn't think I &quot;needed&quot; a laptop. It's an expensive mistake so don't just get what you think you &quot;need&quot;. :)&lt;/p&gt;&#xA;" OwnerUserId="7038" LastActivityDate="2010-11-13T00:45:39.577" />
  <row Id="18763" PostTypeId="2" ParentId="18755" CreationDate="2010-11-13T00:59:19.367" Score="5" ViewCount="" Body="&lt;p&gt;I'm in a similar situation. About the only management interference I get is &quot;we pay you to work at least 40 hours a week, so work at least that much.&quot; I could work four days a week if I chose (although it would be wise to let my team know how to contact me if they needed information from me on that fifth day off).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have developmental tasks that have a priority and (sometimes) a timeframe on them. As long as the job gets done, people are happy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do agree with your sentiments a bit. Sometimes a developmental task will come in that I just &lt;em&gt;know&lt;/em&gt; is going to be horridly complex, or involves me understanding a part of the product that I don't understand, and sometimes I find myself writing a few extra tests or dealing with a few bugs raised by testers. But at the end of the day, as long as things are delivered on time... Well not even that. Things could be late. Shit happens, right? But sometimes things die down, and all I've got to work on are bugs. My team lead is partway around the world as well, and there won't be anything allocated to me in terms of development tasks (and there won't be until he wakes up). So I'll just pick up the most interesting unassigned thing. Or I'll take a liberal lunch break. Or I'll go home early. Or I'll work on a different project. I'd even code personal projects, although I've not done so. Or I'd go home early.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The freedom is good, but freedom of what you do doesn't really equate to freedom of responsibility. It's still a &lt;em&gt;job&lt;/em&gt;, right? If I've held up what I was employed to do. We've got some stuff lying around that's perfectly capable and really quite cool, but it doesn't really have any immediate use for our customers. Maybe one day it will. Maybe it won't at all. I had fun writing it though. If I hated what I did and couldn't do anything when I was bored and had nothing to do, I'd probably be jumping ship.&lt;/p&gt;&#xA;" OwnerUserId="1253" LastActivityDate="2010-11-13T00:59:19.367" />
  <row Id="18764" PostTypeId="2" ParentId="17824" CreationDate="2010-11-13T01:09:38.173" Score="1" ViewCount="" Body="&lt;p&gt;Why not fork an open-source parser generator and make it your own?&#xA;If you don't use parser generators, you code will be very hard to maintain, if you made big changes the syntax of your language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my parsers, I used regular expressions (I mean, Perl-style) to tokenize, and use some convenience functions to increase code readability. However, a parser-generated code can be faster by making state tables and long &lt;code&gt;switch&lt;/code&gt;-&lt;code&gt;case&lt;/code&gt;s, which may increase source code size unless you &lt;code&gt;.gitignore&lt;/code&gt; them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are two example of my custom-written parsers:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;https://github.com/SHiNKiROU/DesignScript&quot; rel=&quot;nofollow&quot;&gt;https://github.com/SHiNKiROU/DesignScript&lt;/a&gt; - a BASIC dialect, because I was too lazy to write lookaheads in array notation, I sacrificed error message quality&#xA;&lt;a href=&quot;https://github.com/SHiNKiROU/ExprParser&quot; rel=&quot;nofollow&quot;&gt;https://github.com/SHiNKiROU/ExprParser&lt;/a&gt; - A formula calculator. Notice the weird metaprogramming tricks&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-11-13T01:09:38.173" />
  <row Id="18765" PostTypeId="2" ParentId="2654" CreationDate="2010-11-13T01:11:58.970" Score="3" ViewCount="" Body="&lt;p&gt;Never use Hungarian Notation. In statically types languages it's unnecessary, and in dynamically typed languages it's almost always harmful. Also, &lt;a href=&quot;http://mindprod.com/jgloss/unmainnaming.html&quot; rel=&quot;nofollow&quot;&gt;Hungarian Notation is the tactical nuclear weapon of source code obfuscation techniques&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7243" LastActivityDate="2010-11-13T01:11:58.970" />
  <row Id="18766" PostTypeId="2" ParentId="18755" CreationDate="2010-11-13T01:15:49.213" Score="1" ViewCount="" Body="&lt;p&gt;I do that, and I usually chock it up to career and skills progression or investigative research. It's almost always a work-related task. I can't say I've ever done it on the orders of time you have (ie. weeks), but I'll spend an extra day or two making some code that was fun to write &lt;em&gt;really&lt;/em&gt; clean because I don't want to leave it yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or if I've got to implement something (let's say, some kind of persistence) I'll try it in both EF and NHibernate. Things like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only thing I don't really do is personal projects on company time. What I write on their dime, they own. It's in my employment agreement, but even if it weren't, my morals won't let me write personal things on their time.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-13T01:15:49.213" />
  <row Id="18767" PostTypeId="2" ParentId="2654" CreationDate="2010-11-13T01:18:56.437" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;CONSISTENCY&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not bothered by any particular naming or coding conventions (though, I obviously have preferences) as long as whatever codebase they're applied to uses those conventions consistently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been going through &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0132350882&quot; rel=&quot;nofollow&quot;&gt;Clean Code&lt;/a&gt; lately, and I find that it's helped me a fair bit (though I don't agree with/use all of it).&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-13T01:18:56.437" />
  <row Id="18768" PostTypeId="2" ParentId="18373" CreationDate="2010-11-13T01:32:35.620" Score="2" ViewCount="" Body="&lt;p&gt;Several people comment that MacBook Pro is more powerful, but &lt;a href=&quot;http://techcrunch.com/2010/10/26/13-inch-macbook-air-review/&quot; rel=&quot;nofollow&quot;&gt;this review&lt;/a&gt; says otherwise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The gist: the new Air is extremely fast due to the flash drive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm currently doing iOS dev on the bottom-of-the-line mac mini (only 2 GB of RAM) and it's been great, so I expected the new Air to work well, but I &lt;em&gt;only&lt;/em&gt; use it for iOS dev. I have a windows box for running other apps (like mail, browser, etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you'll be using it as a full machine, I may recommend 4GB of RAM on the Air (an extra $100)  and a larger display.&lt;/p&gt;&#xA;" OwnerUserId="7610" LastActivityDate="2010-11-13T01:32:35.620" />
  <row Id="18769" PostTypeId="2" ParentId="18720" CreationDate="2010-11-13T01:39:36.820" Score="0" ViewCount="" Body="&lt;p&gt;Yes, you should version it! And there should be a tag in your revision control system (like subversion, git, mercurial, etc.) that matches the version number.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The tag allows you to go back and make a branch. For example: the current production version has a bug, but you can't fix it because the code on your machine just isn't ready to roll out the door. If you have it tagged in your RCS though, you can branch at that tag and fix the bug in the exact version of the code that's running in production.&lt;/p&gt;&#xA;" OwnerUserId="7610" LastActivityDate="2010-11-13T01:39:36.820" />
  <row Id="18770" PostTypeId="2" ParentId="15623" CreationDate="2010-11-13T01:59:22.983" Score="1" ViewCount="" Body="&lt;p&gt;It's hard to believe that developers can't code FizzBuzz until you see the &quot;nine-to-fivers&quot; that copy and paste their work together and conciously try not to write code. I couldn't believe it when I heard one of our senior developers teaching a C# developer, with 3 years &quot;experience&quot;, how to use a Dictionary. Interfaces? Design patterns? stdout? YAGNI? My lead had never heard of YAGNI! It's amazing what these people don't know.&lt;br /&gt;&lt;br /&gt;&#xA;I believe it now. I also think there's too many developers just doing enough.&lt;/p&gt;&#xA;" OwnerUserId="7038" LastActivityDate="2010-11-13T01:59:22.983" />
  <row Id="18771" PostTypeId="1" AcceptedAnswerId="18775" CreationDate="2010-11-13T02:13:47.377" Score="12" ViewCount="493" Body="&lt;p&gt;I'm going through a rough time. I'm a CS student at UIUC, which I hear is one of the top schools for CS. I love computers and programming. I've been pretty much doing it my whole life. I'm a freshmen now (junior in actuality, but I was premed before I switched to CS-long story). I'm finding the cirriculum pretty hard and challenging, but of course this way you learn so much. Due to the challenging nature of this program, especially at this school, I dont always get the top scores, while others seem to have no problem. I get discouraged quickly, and say to myself something like &quot;whatever, I know even if I dont finish this program, I will find a way to make it on my own&quot;. Of course, I only say this to make myself feel better about my situation. But I really want to graduate from here and get this degree, but I find myself losing more and more motivation by the day. For those of you that graduated with a CS degree, any tips on how to get through this? Also, what are the benefits of a CS degree? I heard that I wont even use half the stuff I learn here. Why cant I just learn programming on my own by reading books. Most companies love experience. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What does it come down to at the end? Of course I would love having this degree, but getting through it is gonna be a challenge.&lt;/p&gt;&#xA;" OwnerUserId="7631" LastActivityDate="2010-11-14T14:08:58.863" Title="Education vs. Experience" Tags="&lt;jobs&gt;&lt;experience&gt;&lt;education&gt;&lt;computer-science&gt;" AnswerCount="14" CommentCount="3" FavoriteCount="2" />
  <row Id="18772" PostTypeId="2" ParentId="18771" CreationDate="2010-11-13T02:29:02.250" Score="5" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;Education&lt;/em&gt;&lt;/strong&gt; = learning not to fall in a hole.&lt;br&gt;&#xA;&lt;strong&gt;&lt;em&gt;Experience&lt;/em&gt;&lt;/strong&gt; = falling in a hole and learning not to fall in a hole again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The result is the same; if you can manage the first approach usually hurts less. But the second one definitely remains in the memory longer. If you survive, there is no replacement for experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If not, well, ... you'll probably ease up somebody elses fall.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, of course it's a challenge. Otherwise, there would be no point to it, if everyone would finish it. Don't worry ... just like you don't put much thought into problems that bothered you in high school (on which you did put a lot of thought back then), this also is gonna pass. Just be patient, don't give up, and learn what you can on your way through. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If nothing else, you will learn a specific way of thinking, and that is probably the most important thing.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-13T02:29:02.250" CommentCount="2" />
  <row Id="18773" PostTypeId="2" ParentId="10675" CreationDate="2010-11-13T02:43:30.090" Score="0" ViewCount="" Body="&lt;p&gt;C, Verilog, Perl, VHDL for EE (FPGA) types&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C is taught earlier, so it's easy to do first.  Verilog has a lot of similar syntax so that helps.  VHDL is much more wordy (it looks like Ada), so that is a turn off for many people.  Perl for munging data and quick programming.&lt;/p&gt;&#xA;" OwnerUserId="1654" LastActivityDate="2010-11-13T02:43:30.090" CommunityOwnedDate="2011-01-31T13:41:33.057" />
  <row Id="18774" PostTypeId="2" ParentId="18771" CreationDate="2010-11-13T02:46:17.963" Score="4" ViewCount="" Body="&lt;p&gt;I almost dropped out of college (but don't do that!) and one of my motivations was how much I was learning at my job vs. the amount I was learning at school. The &quot;real world&quot; is so much better than school: I get to learn (usually), have fun (when I'm learning), and get paid (always!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's what you love, do it on the side. You'll get better faster. Have fun: learn to write an Android app for your phone, or something that interests you. On your resume, that'll stand out more than some other guy's 3.9 GPA.&lt;/p&gt;&#xA;" OwnerUserId="7610" LastActivityDate="2010-11-13T02:46:17.963" />
  <row Id="18775" PostTypeId="2" ParentId="18771" CreationDate="2010-11-13T02:48:40.200" Score="20" ViewCount="" Body="&lt;p&gt;Finish your degree. If you don't, you might end up regretting it for the rest of your life. Some important things to remember:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Whether right or wrong, most companies won't even look at a resume if you haven't graduated. &lt;/li&gt;&#xA;&lt;li&gt;The &quot;real world&quot; is hard. Dropping out isn't an option. Learn to &lt;em&gt;finish&lt;/em&gt; what you started, even if it's hard.&lt;/li&gt;&#xA;&lt;li&gt;Programming is just one small part of what you should learn in computer science. &lt;/li&gt;&#xA;&lt;li&gt;Classwork is just one small part of what you should learn in college.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-11-13T02:48:40.200" CommentCount="3" />
  <row Id="18776" PostTypeId="2" ParentId="10462" CreationDate="2010-11-13T02:49:49.007" Score="0" ViewCount="" Body="&lt;p&gt;Because they don't sell products.  Features in the chips and features in the software sell chips.  Ease of use is better in Altera than Xilinx, however.  And ModelSim sells for its good simulator, not for the GUI.&lt;/p&gt;&#xA;" OwnerUserId="1654" LastActivityDate="2010-11-13T02:49:49.007" />
  <row Id="18777" PostTypeId="2" ParentId="18771" CreationDate="2010-11-13T02:53:05.493" Score="7" ViewCount="" Body="&lt;p&gt;The number one thing that a degree is going to get you is &lt;strong&gt;opportunity&lt;/strong&gt;. What I mean by that is that it is very hard to even be considered for an interview for a programmer position without a degree, especially with no real world experience. Once your degree affords you the &lt;strong&gt;opportunity&lt;/strong&gt; to land a real world position, then the sky is the limit on what you are able to do with that opportunity on your own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, while you may not get &quot;real world&quot; experience programming wise in a degree program, fighting through the hard times and doubt, and overcoming those obastacles that you are experiencing now absolutely will benefit you in your future in the &quot;real world&quot;. &lt;/p&gt;&#xA;" OwnerUserId="7633" LastEditorUserId="7633" LastEditorDisplayName="" LastEditDate="2010-11-13T02:59:54.253" LastActivityDate="2010-11-13T02:59:54.253" />
  <row Id="18778" PostTypeId="2" ParentId="18771" CreationDate="2010-11-13T03:39:48.183" Score="4" ViewCount="" Body="&lt;p&gt;You have heard right. The CS program at UIUC is easily one of the best in the country. Programs like that attract some of the best-prepared students in the world. You should not be ashamed of receiving sub-par grades. You have to understand that a lot of the people you're competing against were probably programming when they were 7 and prepared for years with the intention of studying computer science in college. If that doesn't sound like you, it's little wonder you find the ease with which they complete assignments mystifying. They're not just using raw intelligence to do it. They're using experience and knowledge you may be missing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It sounds to me like you're accustomed to getting the best scores in class. Maybe in high school you did. That may be unrealistic to expect over the next few semesters. You'll be catching up. If I were you, I'd try to get to know some professors and department staff. Talk to your adviser. That's what he/she is there for. Be frank with them about your situation, but impress them with your determination to become a more successful student. They may be able to help you find solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Making friends among the other students is also very important. If you hang out with your fellow CS students socially, you may get a clearer picture of how they get all their work and studying done. Do they work in groups? Are there study sessions that they attend but you don't?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being behind in coursework can be very very tough, especially when you're used to doing well. I know because I've been there. It's hard to get caught up, but it can be done.&lt;/p&gt;&#xA;" OwnerUserId="7634" LastActivityDate="2010-11-13T03:39:48.183" CommentCount="2" />
  <row Id="18779" PostTypeId="2" ParentId="18669" CreationDate="2010-11-13T03:45:30.520" Score="3" ViewCount="" Body="&lt;p&gt;First, I'm going to disagree with your statements:  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Waterfall says: Change is costly, so it should be minimized.&lt;/em&gt;&lt;br&gt;&#xA;  &lt;em&gt;Agile says: Change is inevitable, so make change cheap.&lt;/em&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;My interpretation is:  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Waterfall says: The customer knows what they want.&lt;br&gt;&#xA;Agile says: The customer doesn't know what they want so we're going to have to make a few different versions.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best implementation of &quot;waterfall&quot; that I've ever seen was a huge integration project with a very large financial customer and there were about 40+ sub-projects involved. The desktop and website package we supplied was just 1 of those 40+ sub-projects. While I thought they blew through other people's money rather excessively, they had their stuff together and kept 40+ different ships all moving together in formation. The project went live on the target date (the target moved &lt;em&gt;once&lt;/em&gt; during the project) and while I thought they could have done it more frugally and agily, it got done on time and on spec. The go-live night's schedule was about 100 pages long and about 40 of those pages were emergency panic contact details of all sorts of people involved. I was very impressed by this client.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, you could do what we do, which is run around and do what the most recent complaint/bug report is, and call &lt;em&gt;that&lt;/em&gt; agile. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-13T03:45:30.520" />
  <row Id="18780" PostTypeId="2" ParentId="18704" CreationDate="2010-11-13T04:19:34.960" Score="2" ViewCount="" Body="&lt;p&gt;I'm using the &lt;a href=&quot;http://jtf.acm.org/&quot; rel=&quot;nofollow&quot;&gt;ACM Library&lt;/a&gt; to help intro students do simple graphics and games. We've been able to do basic, two-player click-based games with nothing more than the skills you outlined. This week they are doing the &lt;a href=&quot;http://en.wikipedia.org/wiki/Fox_games#Fox_and_Hounds&quot; rel=&quot;nofollow&quot;&gt;Fox and Hounds&lt;/a&gt; game.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been trying to stay away from console I/O as long as possible. It's a foreign concept to many students these days, as they've all grown up with GUIs. So I focus on MVC, getting the model correct, and adding the GUI only after they've tested their model. Testing is done via automated unit testing and the Code Pad in &lt;a href=&quot;http://bluej.org&quot; rel=&quot;nofollow&quot;&gt;BlueJ&lt;/a&gt;. No &lt;code&gt;public static void main()&lt;/code&gt; is necessary, ever.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastEditorUserId="3790" LastEditorDisplayName="" LastEditDate="2010-11-14T06:07:10.267" LastActivityDate="2010-11-14T06:07:10.267" CommentCount="2" />
  <row Id="18781" PostTypeId="2" ParentId="15781" CreationDate="2010-11-13T04:50:18.440" Score="3" ViewCount="" Body="&lt;p&gt;Current Oracle/Apache/Google squabbles aside, it's still hard to beat the JVM for this purpose. It's really very high quality on most platforms, universal, and you have a good number of languages to choose from (Java, Clojure, Scala etc.). It lets you target a single machine architecture (the VM), and not worry too much about the specific end-user hardware.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, there are certain application types it may not be as suitable for: low-level networking comes to mind, as does heavy graphics/video processing. &lt;/p&gt;&#xA;" OwnerUserId="5902" LastActivityDate="2010-11-13T04:50:18.440" />
  <row Id="18782" PostTypeId="2" ParentId="18771" CreationDate="2010-11-13T04:57:19.113" Score="1" ViewCount="" Body="&lt;p&gt;There are many programming job for which a CS degree is overkill. There are also many jobs for which it is the most basic preparation. Which kind of job do you want? Do you think you'd be happier plugging away writing the monthly reports for Widgets-Are-Us, or would you like to be at Google trying to eek out another  milliseconds in the search response time? Of course given these tough economic times, even the Widgets-Are-Us job may require a CS degree just to thin the resume pile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you learn computer science without taking a degree? Some people can. David Cutler the architect of VMS and NT has no college degree and he knows a lot about computer science. Most of us aren't as talented or disciplined as David Cutler, in which case the degree program can be a big help. I suspect most programmers could get through the 1st year computer science classes on their own, but getting through the material in the upper division courses is a lot easier with a knowledgeable tutor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to do well in the classes but don't flip out because you didn't get an A+. Except for your first job, nobody is going to care about your grades, and they may not care even then. The vital thing is to get to know your professors, see if you can get involved in a research project, and do your best to get internships or summer work at interesting software companies.&lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-11-13T04:57:19.113" />
  <row Id="18783" PostTypeId="2" ParentId="18585" CreationDate="2010-11-13T04:57:32.447" Score="1" ViewCount="" Body="&lt;p&gt;Sheer waste. An IT spend that had to be cut by many millions. So the way to do this was to fly the IT people in from all over the world. Put them up in a flash hotel for a week. Then in the building where the meetings were held, lay a new floor. Marble of course. And overnight, between the meetings each day, the building was redecorated. Thats every evening for a week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Err... priorities anybody?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fantasyland.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-11-13T04:57:32.447" />
  <row Id="18784" PostTypeId="1" CreationDate="2010-11-13T06:48:00.820" Score="1" ViewCount="51" Body="&lt;p&gt;We do end up using lots of third party controls in our development. They help us to develop quicker, help us to generate good looking reports etc. But do they really help us to get a good job elsewhere? Should we explain about third party tools we have used in our resume? &lt;/p&gt;&#xA;" OwnerUserId="7478" LastActivityDate="2010-11-13T08:31:31.137" Title="Third party controls. Will expereience in using them play a role while hunting a job?" Tags="&lt;career&gt;&lt;productivity&gt;&lt;third-party-libraries&gt;" AnswerCount="2" />
  <row Id="18785" PostTypeId="2" ParentId="18585" CreationDate="2010-11-13T06:59:59.847" Score="2" ViewCount="" Body="&lt;p&gt;In non-software companies (banks, insurance) with in-house IT the money comes from various business groups. The business groups directly gets sales pitch from vendors and will push it on to the IT. They are paying for the software/hardware and your salary so your protests will go no where.   &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Paying for bloated applications and middleware that costs mid-high five figures and doesn't even fit within the existing system architecture&lt;/li&gt;&#xA;&lt;li&gt;Using expensive software like HP QualityCenter, BMC Remedy, HP LoadRunner etc where better and cheaper options are available&lt;/li&gt;&#xA;&lt;li&gt;With multi city teams a lot of travel costs, sometimes for only a few hours of meeting&lt;/li&gt;&#xA;&lt;li&gt;Paying for windows 7 license that somes with new machines and then paying again to downgrade to windows XP as the new SOE (designed in 2010) is still XP&lt;/li&gt;&#xA;&lt;li&gt;Over capacity in hardware&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2010-11-13T06:59:59.847" CommentCount="1" />
  <row Id="18786" PostTypeId="2" ParentId="18784" CreationDate="2010-11-13T07:40:30.977" Score="1" ViewCount="" Body="&lt;p&gt;It depends on the development environment. Delphi for example has a culture of using 3rd party tools and components and they are often mentioned as part of the job description. With .NET it seems to be less the case.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-13T07:40:30.977" />
  <row Id="18787" PostTypeId="2" ParentId="18784" CreationDate="2010-11-13T08:31:31.137" Score="2" ViewCount="" Body="&lt;p&gt;Why re-invent the wheel? If you can show that you can justify using a 3rd party component to fit your requirements both functionally and non-functionally, it says more of you than just a developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;An example, in the .NET world, I usually don't fancy developers who know nothing about 3rd party logging libraries (e.g. log4net). They write their own logger and claim that they can log to a file 1mb in size with minimal performance impact.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2262" LastActivityDate="2010-11-13T08:31:31.137" CommentCount="4" />
  <row Id="18788" PostTypeId="2" ParentId="18771" CreationDate="2010-11-13T08:38:06.767" Score="1" ViewCount="" Body="&lt;p&gt;While you aren't getting the top grades, are you at least doing reasonably well in terms of passing your courses or are you barely getting by in your courses?  I know where I went to university a 50% was a pass and there was a CS course where I did get 50% and my average in my majors had to be over 65% for me to stay in my program.  Sometimes it is when things don't work out as you plan that you learn and grow the most.  I remember starting in a co-op program but having to drop it when I didn't get a successful work term in my first 3 attempts.  It was a great opportunity to grow but at the time, it was like a huge failure for me as this was one of the few times where I wanted something and didn't come close to getting it.  I also had the rather humbling experience of going from near the top of the class to near the bottom which was an interesting way to experience the extremes of a class in a  sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The benefits of a CS degree is the exposure to various materials.  I doubt I'd know as much as about Numerical Analysis or Computational Complexity if not for my CS courses in the subject.  Another aspect is the honing of problem solving skills and developing this by taking various Math courses.  I also took some first year Science courses and language courses that rounded me out in some ways that has been quite useful.  Learning another human language made it interesting to see how translation can be a hard topic and learning a non-Latin alphabet was quite educational in letting me see how hard it can be to switch languages in some cases.  Lastly, your university experience may give you connections that get you far in the world as I know my first out of university job was through the career services department at my school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end it comes down to a bit of how bad do you want this, how good are you at passing courses and understanding how you best work is it through learning on your own, teaching something to someone else, learning with others around, or something else?  You have to know how you absorb information to make it as a programming and some formal material isn't necessarily a bad things as I do remember learning the Software Development Life Cycle, testing and a few other things in university that were rather useful in various jobs I've held.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-13T08:38:06.767" />
  <row Id="18790" PostTypeId="1" AcceptedAnswerId="18800" CreationDate="2010-11-13T08:43:53.467" Score="2" ViewCount="161" Body="&lt;p&gt;I am going to meet up with a couple of art directors and designers to talk about what the difficulties of working with a programmer are and want to hear your thoughts :)&lt;/p&gt;&#xA;" OwnerUserId="7639" LastActivityDate="2010-11-14T06:05:43.247" Title="What are the most difficult things when working with a designer?" Tags="&lt;collaboration&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="18792" PostTypeId="2" ParentId="18585" CreationDate="2010-11-13T08:49:04.163" Score="1" ViewCount="" Body="&lt;p&gt;Proprietary version control systems. Given the state of Git and Mercurial, I don't see why people would go for something with a gate keeper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not only do you have to pay for the VCS, you also have to pay per user. Additionally, your flexibility gets shot in the foot. You might as well wear a T shirt that says &quot;I (heart) Vendor Lock In!!!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel that it's just nuts these days to not use a free (D)VCS. If you want lots of add on perks to go with it, stuff like Kiln is available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think I'd go to work for someone that insisted on BitKeeper or similar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I almost said the same thing about emulators, but products like Simics continue to offer significant advantages over free alternatives. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-13T08:49:04.163" CommentCount="1" />
  <row Id="18793" PostTypeId="2" ParentId="15623" CreationDate="2010-11-13T09:02:41.483" Score="3" ViewCount="" Body="&lt;p&gt;I was recently tasked with interviewing over 50 programmers for a senior position where they would be working mostly with PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tossed the fizzbuzz problem on the screening exam, mostly to amuse myself and because I wanted ten good questions and had only nine. My intent, at the time was to show people that we can have fun too, even on interview questions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;80% Of the applicants solved the problem, but did not use the modulus operator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;15% of the applicants could not solve the problem. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;5% of the applicants solved the problem using the modulus operator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While my sampling is quite limited (50 applicants from one country), I can tell you that:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;95% of them had a BS or higher in a CS curriculum (universities here compete by trying to make CS sound more spectacular).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was truly amazed. Well, frightened .. but amazed. I did not think I'd come close to reproducing the results, since the problem has become so popular. This shows me that 5% of my applicants might not be super programmers, but at least they read programming related blogs.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-13T09:02:41.483" />
  <row Id="18794" PostTypeId="1" AcceptedAnswerId="21364" CreationDate="2010-11-13T09:45:27.113" Score="5" ViewCount="238" Body="&lt;p&gt;Could you guys suggest some books for Information Extraction/ Retrieval that focus not only on theory but also pragmatic development. I really liked these &lt;a href=&quot;http://videolectures.net/russir08_gubin_dsir/&quot; rel=&quot;nofollow&quot;&gt;lectures&lt;/a&gt; and would like to further explore along similar lines. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: apologies, I couldn't find a more appropriate tag, could someone just edit and tag it correctly.&lt;/p&gt;&#xA;" OwnerUserId="1880" LastEditorUserId="4960" LastEditorDisplayName="" LastEditDate="2010-11-13T10:03:48.590" LastActivityDate="2010-11-25T06:58:06.070" Title="what are some good Information Extraction books?" Tags="&lt;books&gt;&lt;etl&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="18795" PostTypeId="2" ParentId="4693" CreationDate="2010-11-13T09:56:05.637" Score="1" ViewCount="" Body="&lt;p&gt;Generally speaking, I find that more experienced programmers are more modest about their skills, and more accepting to introspection and the possibility they might not know everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have a look at the Dunning-Kruger effect, which explains this a lot better than I can:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect&quot; rel=&quot;nofollow&quot;&gt;&quot;The Dunning–Kruger effect is a cognitive bias in which an unskilled person makes poor decisions and reaches erroneous conclusions, but their incompetence denies them the metacognitive ability to realize their mistakes. The unskilled therefore suffer from illusory superiority, rating their own ability as above average, much higher than it actually is, while the highly skilled underrate their abilities, suffering from illusory inferiority.&quot;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, programmers tend to do a lot of their communication online - where there are clearly many people at different levels citing conflicting opinions. It's no doubt we often react to comments defensively.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But really, it's a generalisation (for a reason) - you'll come across some stellar programmers who are great conversationalists, and those that are not :)&lt;/p&gt;&#xA;" OwnerUserId="7641" LastActivityDate="2010-11-13T09:56:05.637" CommunityOwnedDate="2010-11-13T09:56:05.637" />
  <row Id="18796" PostTypeId="2" ParentId="15781" CreationDate="2010-11-13T10:05:56.127" Score="0" ViewCount="" Body="&lt;p&gt;Do a proof of concept first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's a reasonably complex application, nailing out a proof of concept is going to give you an idea of what language features you need and what areas you're going to need to leverage framework or third-party libraries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The language features and libraries you need are going to determine what language you'll end up choosing (and thus, how you'll go about approaching cross-platform support)&lt;/p&gt;&#xA;" OwnerUserId="7641" LastActivityDate="2010-11-13T10:05:56.127" />
  <row Id="18797" PostTypeId="2" ParentId="18771" CreationDate="2010-11-13T10:22:08.833" Score="2" ViewCount="" Body="&lt;p&gt;Sound's like your going through a rough patch at the moment, but I strongly suggest you hang in there and complete the course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, you can still get a job and progress in the profession without a degree. However, a good degree from a well known univeristy/college should help in getting your first position in a good company. Big well known company names on your CV can more of a door opener and faster career progression if you want it than a small local 10 man operation, irrespective of the knowledge you gain. A sad but often true fact of life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then as time goes on, the degree will matter less as your experience takes over. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, don't beat yourself up over not being a straight A student. life is more of a marathon than a sprint. you can still do great things, even if it might take you longer to get there.&lt;/p&gt;&#xA;" OwnerUserId="4960" LastActivityDate="2010-11-13T10:22:08.833" />
  <row Id="18798" PostTypeId="2" ParentId="18720" CreationDate="2010-11-13T10:32:19.527" Score="0" ViewCount="" Body="&lt;p&gt;Personally I think you should version anyway, but one big benefit of versioning web applications that is specific to websites is that it can make changes to static content much easier to manage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, let's say you have a mysite.css file which has a far future expiry date (which you generally want to do so that it's cached in the browser across each page). If you then change a style in that file no-one who has been to your site before is going to see it unless they do something to clear that file from their cache.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're versioning you site though you could change all the css references in your build to something like mysite.css?v=1234 which will let you keep the far future expiry date and not worry about future changes as in the next build it'll be mysite.css?v=1235.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-13T10:32:19.527" />
  <row Id="18799" PostTypeId="2" ParentId="18502" CreationDate="2010-11-13T10:52:44.120" Score="1" ViewCount="" Body="&lt;p&gt;I'm only 25, but I can say right now that I have no ambitions of reaching any management positions. I love coding more than I do managing people; I'm also much better at the former compared to the latter, and I learned this through a course at uni. We had to get into teams of about 12 people, select a project, and finish it in about a year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We had to follow the waterfall model, meaning having all the documentation done before coding. I volunteered as document responsible, so I had to get everyone to do their part on their document. With deadlines and difficulties understanding what the various documents where actually supposed to contain, I ended up writing most of the content myself. Either because the work wasn't getting done or I didn't like the quality of what was being done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Moving into the coding process, I and another were informally appointed chief system architects. Although the technical challenges were more difficult, I enjoyed this part much more because people did their parts. Granted they often had many questions, but that was fine; I enjoyed explaining how the system was suppose to work and getting to write code and debug whenever we hit the more difficult parts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I'm not saying I thought my team mates were bad people. They were not; it was I who failed to manage them and communicate, and I hadn't anticipated the amount of work that actually takes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, practice makes perfect, but I just don't enjoy managing people. So if I can, I will stay with code entrails up to my elbows until I'm too old to hit the keyboard. Upon which I hope they've developed a brain interface so I can continue still.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-11-13T10:52:44.120" CommunityOwnedDate="2011-01-26T02:24:50.517" CommentCount="1" />
  <row Id="18800" PostTypeId="2" ParentId="18790" CreationDate="2010-11-13T11:30:09.047" Score="4" ViewCount="" Body="&lt;p&gt;As a developer, I love working with designers, to learn new things from them and see good design and fresh ideas, but...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...the biggest problem is trying to get designers to understand what &quot;incremental&quot; means. As developers, we adapt to changing requirement, writing features that is needed &lt;em&gt;today&lt;/em&gt;. That applies to design work as well! Designers should be much more involved with the daily work and not just handing over a big design up front.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-11-13T11:30:09.047" />
  <row Id="18801" PostTypeId="2" ParentId="4693" CreationDate="2010-11-13T11:31:27.253" Score="0" ViewCount="" Body="&lt;p&gt;I'm not &lt;strong&gt;&lt;em&gt;arrogant&lt;/em&gt;&lt;/strong&gt;, I'm &lt;strong&gt;&lt;em&gt;convinced&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-13T11:31:27.253" CommunityOwnedDate="2010-11-13T11:31:27.253" />
  <row Id="18803" PostTypeId="1" CreationDate="2010-11-13T11:53:02.920" Score="25" ViewCount="1209" Body="&lt;p&gt;Hello...How many pages does your resume typically run into?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a programmer, over the years you would have worked in many many projects in various technologies. Are you going to be listing all of your technologies like the below? &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Software development technologies: .NET(1.1/2.0/3.5), ASP.NET, VS2005/2008, Visual Basic 6.0&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Languages : C#, Java, VB, XML, XSLT, jQuery  &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Databases : SQL Server 2000/2005, Oracle 8/9 &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Framework : NHibernate, Hibernate, iBatis &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Platform  : Win2000, Win2003, HP-Unix&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Are you going to be listing all of your projects classified as - &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Project:  &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Client : Assuming you were either a contractor or working for a&#xA;  software services company.  &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Period : &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Description:  &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Role   :  &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Solution Environment :  Responsibilities:&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And let it run to 6 pages. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The above are real world examples.  &lt;/p&gt;&#xA;" OwnerUserId="5070" LastEditorUserId="2471" LastEditorDisplayName="" LastEditDate="2010-11-13T21:29:13.057" LastActivityDate="2011-01-25T17:00:53.097" CommunityOwnedDate="2011-01-25T17:00:53.097" Title="How many pages is your resume?" Tags="&lt;resume&gt;&lt;job-interview&gt;&lt;corporate-culture&gt;" AnswerCount="16" CommentCount="7" FavoriteCount="15" />
  <row Id="18805" PostTypeId="2" ParentId="18803" CreationDate="2010-11-13T12:21:08.957" Score="9" ViewCount="" Body="&lt;p&gt;I do not list every project, just the most recent few. I list skills, and how long since I substantially used them. I keep my resume down to two pages; that is with twelve years and four different job descriptions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a hiring manager I get those six-page resumes and I don't read the whole thing - just scan for what interests me - even so at least in my case it doesn't bias me against the applicant, though I do appreciate when someone can be more concise for me.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-13T12:21:08.957" CommunityOwnedDate="2011-01-25T17:00:53.097" CommentCount="2" />
  <row Id="18807" PostTypeId="2" ParentId="18803" CreationDate="2010-11-13T12:35:36.897" Score="16" ViewCount="" Body="&lt;h1&gt;One page.&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Anything more than that will pretty much go unread.  If you can't make a case for yourself in one page then that job wasn't a good fit for you.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-11-14T12:03:01.747" LastActivityDate="2010-11-14T12:03:01.747" CommunityOwnedDate="2011-01-25T17:00:53.097" CommentCount="3" />
  <row Id="18808" PostTypeId="2" ParentId="18803" CreationDate="2010-11-13T12:38:40.870" Score="38" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;One page&lt;/strong&gt; + three or four supporting pages ... ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your CV is important because it will determines if the guy want to interview you or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You must understand that:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The interviewer will probably receive dozens of CV, on a daily basis. Most of them not appropriate for the job&lt;/li&gt;&#xA;&lt;li&gt;The interviewer doesn't want to spend his valuable time reading CVs.&lt;/li&gt;&#xA;&lt;li&gt;The interviewer most of the time is a different person that the one that wants to hire.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So he/she is going to filter those including yours. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;He/she will read the first page. If nothing is appealing he/she will trash it. It's like not being on the first page of Google for a particular search.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you must put on the first page is then very important.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Limit contact info. Your name, email, phone is enough.&lt;/li&gt;&#xA;&lt;li&gt;Start with a (short) list of your expertise&lt;/li&gt;&#xA;&lt;li&gt;Start with your last experience. It's better if you have the last three on the first page&lt;/li&gt;&#xA;&lt;li&gt;Put languages you speak at the very last page, if they need the info they will look there&lt;/li&gt;&#xA;&lt;li&gt;Instead of putting a list of technologies you know, highlight them in the project description in your last experience. This will allow interviewer to &lt;em&gt;scan&lt;/em&gt; the rest of the pages&lt;/li&gt;&#xA;&lt;li&gt;Don't put your picture. That's sad, but the average human WILL judge you on your face even if not conscious of that.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Your objective is &lt;strong&gt;getting that interview&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-14T11:28:30.513" LastActivityDate="2010-11-14T11:28:30.513" CommunityOwnedDate="2011-01-25T17:00:53.097" CommentCount="4" />
  <row Id="18813" PostTypeId="1" AcceptedAnswerId="18828" CreationDate="2010-11-13T13:46:24.587" Score="3" ViewCount="103" Body="&lt;p&gt;I am putting together a proposal for a local store with both a brick-n-mortar and web presence. It's an upscale shop that also happens to be one of my wife's favorites. I am considering offering the option of barter for part of the payment. I have two questions in this regard:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would be a reasonable &amp;ldquo;exchange rate&amp;rdquo; for such a transaction? That is, in lieu of $1000 cash money, I should ask for about how much in store credit?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;&lt;i&gt;In your own experience,&lt;/i&gt;&lt;/b&gt; has using barter introduced any complications into the client relationship? Are there particular pitfalls to be concerned about?&lt;/p&gt;&#xA;" OwnerUserId="7643" LastActivityDate="2010-11-15T05:14:02.780" Title="Barter vs. Cash for a Retailer's eCommerce Site" Tags="&lt;contracting&gt;" AnswerCount="4" />
  <row Id="18814" PostTypeId="2" ParentId="18771" CreationDate="2010-11-13T13:47:08.057" Score="3" ViewCount="" Body="&lt;h3&gt;Answer From a Non-Grad&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I spent 20 years in the military, went to college at night and stopped (long story). I have a few CS classes under my belt and I was formally trained by the military in COBOL and a couple other main-frame languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You &lt;strong&gt;will&lt;/strong&gt; definitely have many more opportunities with a degree, stay with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Education&lt;/b&gt; = Learning about building blocks&lt;br&gt;&#xA;&lt;b&gt;Experience&lt;/b&gt; = Creating or Fixing things that were built with those blocks&lt;br&gt;&#xA;&lt;b&gt;Wisdom&lt;/b&gt; = Knowing what blocks to use and why to use them&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get so hung up with grades. I once had a Marine that worked for me who could type 80wpm and had an IQ in the clouds but he couldn't explain beans. He always used the most complex solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask yourself these types of questions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Where do you want to be five years from now?&lt;/li&gt;&#xA;&lt;li&gt;What do you want to be when you grow up?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Having a 3.9 answer to these questions is much more important than grades.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-13T13:47:08.057" />
  <row Id="18816" PostTypeId="2" ParentId="18720" CreationDate="2010-11-13T14:05:00.927" Score="0" ViewCount="" Body="&lt;p&gt;Yes you should. For distribution reasons pointed here by other answers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I see, why you asking the question. Web apps approach is cost driven. Its opposite to legacy shrinkwrap approach, where costs include physical media, distribution, installation, hardcopy of documentation, training and technical support. Anything which can be excluded, should be excluded.&lt;/p&gt;&#xA;" OwnerUserId="7071" LastActivityDate="2010-11-13T14:05:00.927" />
  <row Id="18817" PostTypeId="1" AcceptedAnswerId="18818" CreationDate="2010-11-13T14:10:05.317" Score="5" ViewCount="460" Body="&lt;p&gt;I'm not interested in a brand recommendation for a laptop. I'm wondering about the actual specifications of a laptop to do the job and do it well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work primarily in the Microsoft stack and moments like now I have a few instances of Visual Studio open, Sql Management Studio, Twitter clients and on occasion many browser tabs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As such I've been obsessed with RAM - will 8GB of RAM really do that much more for me or is it less of a difference than processor performance. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if one were to ask for a list of priorities on laptop components, how would you list the following subsystems: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;CPU&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Memory&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disk&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other (Video?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've always prioritized in the following order:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Memory&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;CPU &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Disk&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Other&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Any insight specific to the life of a developer? &lt;/p&gt;&#xA;" OwnerUserId="3110" LastActivityDate="2010-11-13T17:27:55.523" Title="Laptop Rig, specs for programmers" Tags="&lt;productivity&gt;&lt;hardware&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="18818" PostTypeId="2" ParentId="18817" CreationDate="2010-11-13T14:22:07.283" Score="9" ViewCount="" Body="&lt;p&gt;Move &lt;strong&gt;3. Disk&lt;/strong&gt; higher on your list - it is the slowest component of notebooks. Go and get &lt;strong&gt;SSD drive&lt;/strong&gt; - your Visual Studio will open in ~1 sec. You can't get it even with 24GB of RAM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of a 'classic' SSD drive you might consider a &lt;strong&gt;hybrid SSD drive&lt;/strong&gt; - this is a drive with plates and a large NAND cache - it combines a storage space of a standard plate drive (0.5TB) with a near-SSD performance. It all boils down to your budget, speed requirements and if you're going to use your notebook on batteries a lot (then SSD will give you more time comparing to hybrid)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;CPU - i5, i7&lt;/p&gt;&#xA;&#xA;&lt;p&gt;RAM - 6GB should be more then enough - I have 2 VMs running with no problem&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HDD - SSD / Hybrid SSD&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Video - Get a full HD display (1920x1080 or 1920x1200) - you will need space for your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;WiFi n + gigabit LAN (in most notebook anyway)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Invest in large battery if you plan to code unplugged. There's little point in having a stunning machine without juice.&lt;/p&gt;&#xA;" OwnerUserId="5564" LastEditorUserId="5564" LastEditorDisplayName="" LastEditDate="2010-11-13T17:26:08.147" LastActivityDate="2010-11-13T17:26:08.147" CommentCount="4" />
  <row Id="18819" PostTypeId="2" ParentId="18771" CreationDate="2010-11-13T14:22:48.143" Score="1" ViewCount="" Body="&lt;p&gt;Minus the changing degrees in midstream I was you (more or less) about 6 years ago.  I enlisted in the military for a stint after high school and then worked for a few years after I got out.  When I started college I found the early programming classes to be fairly easy, although I was never an 'A' student but I understood the material.  There were many classes that I struggled just to get a 'C' in, typically the assignments that I struggled with (as compared to my peers) tended to be programming assignments that made use of techniques (and language features) I had never seen/heard of.  I can't speak for where you are but how to do things in the language of choice was rarely explained in detail, we were expected to figure it out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of that being said, my first job out of college was offered to me in part because I had spent quite a bit of time in college porting my windows code to work on Solaris (g++) because I never seemed to understand which header files where part of the standard set.  The language was ADA, one I had never seen or heard of.  Because of my grounding in language constructs (etc) it didn't take long for me to pick it up and produce project code (although it wasn't the best).  Within weeks I was mentoring my colleague in development concepts because she didn't have the background (shouldn't of had the job either, but that's a different story) to understand some of the things that were happening.  (For example she didn't understand why she couldn't use a global value to pass a value to a different process. [and oh where to start with that one....])&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this point I wouldn't be where I am if I didn't have that degree.  Currently I am one of the senior developer's out of my office, I spend a fair amount of my time working with other projects on developing their designs.  I am one of the few in my office who seems to investigate and apply new technologies, techniques, and other standard practices (yes, the company I work for does a lot of Gov. work).  Not all of this is directly related to having a CS degree, however it did give me the foundation to not only get my foot in the door but to develop the skills I've attained to this point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this is what you want to do, I would stick with it and gut it out.  I think that the potential rewards are worth it.&lt;/p&gt;&#xA;" OwnerUserId="4819" LastActivityDate="2010-11-13T14:22:48.143" />
  <row Id="18820" PostTypeId="2" ParentId="18817" CreationDate="2010-11-13T14:40:12.920" Score="1" ViewCount="" Body="&lt;p&gt;I would agree with @Jakub, the laptops we have at work are okish, but it slows to a stop fairly often because of disk IO (encrypted 5400 RPM HDs suck).  I don't think it's really an ordering question but what's the minimum acceptable for each category.  Picking to max the CPU but not upgrading the Disk wouldn't really help build a decent developer laptop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For specifics I think that something in the general vicinity of the following will work fairly well (obviously you can spend more to get more):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i5 (or equivalent)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;8 GB RAM&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SSD Drive and/or dual drives&lt;/p&gt;&#xA;&#xA;&lt;p&gt;17+ screen (unless you plan to hook it up to a second monitor fairly often), I typically get the better video card option since it's fairly cheap and laptop upgrades for this are more or less a nogo.  Not something I want to be a bottleneck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With a dual drive instead of SSD you should be able to find this in the ~$1200US range.  From the list above the first think I would considering bumping up would be the RAM (as always depends upon your budget), although you are probably at the point of diminishing returns once you get above 12 or 16 GB.&lt;/p&gt;&#xA;" OwnerUserId="4819" LastActivityDate="2010-11-13T14:40:12.920" />
  <row Id="18824" PostTypeId="2" ParentId="17898" CreationDate="2010-11-13T15:27:59.827" Score="2" ViewCount="" Body="&lt;p&gt;If you want to explain pointers you have to explain memory first. I usually do that using graph paper/squared paper with rows and columns. If the &quot;student&quot; understands memory she can understand what an address is. If you got address you got pointers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can play with this abstraction. E.g. write the address (number) of one square into another square. Now draw an arrow from the pointer square to the destination square. Now overwrite the pointer (e.g. increment it) and adjust the arrow. Write an address into another square and let the student draw the arrow...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next step: Give certain squares (like the pointer) a name. Now you can explain dereferencing.&#xA;That's it. &lt;/p&gt;&#xA;" OwnerUserId="6118" LastActivityDate="2010-11-13T15:27:59.827" CommunityOwnedDate="2010-12-02T00:15:36.130" CommentCount="1" />
  <row Id="18825" PostTypeId="2" ParentId="18817" CreationDate="2010-11-13T15:44:05.210" Score="5" ViewCount="" Body="&lt;p&gt;You want to make sure that the CPU that you gets supports hardware virtualization. It will improve your experience of using virtual machines, and if you aren't using them, you should.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-11-13T15:44:05.210" CommentCount="1" />
  <row Id="18826" PostTypeId="2" ParentId="18381" CreationDate="2010-11-13T15:49:13.240" Score="2" ViewCount="" Body="&lt;p&gt;While not a JUnit4 book, I'd recommend &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1932394850&quot; rel=&quot;nofollow&quot;&gt;Test Driven: TDD and Acceptance TDD for Java Developers&lt;/a&gt; to anyone with some experience with unit testing who would like better develop their understanding of the concepts and mechanics of unit testing Java apps with JUnit. Covers JUnit and most of the tools you might use with JUnit for mocking, db testing etc. &lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-11-13T15:49:13.240" CommentCount="1" />
  <row Id="18827" PostTypeId="2" ParentId="18803" CreationDate="2010-11-13T15:49:42.303" Score="2" ViewCount="" Body="&lt;p&gt;I think it depends if your are a full time employee or a consultant.  As a consultant my resume runs several pages.  However the last couple of years of projects are described in more detail than anything past that.  I list contact info and list of technologies first.  Then I list projects, most recent first, with a description and role and a list at the end showing the technologies used in the course of the project.  Each project has the same pattern.  I absolutely don't list a technology in the first section if it also doesn't show up under the technologies used portion of a project.  As a reviewer of resumes I always look to see if the technologies listed under their expertise are also highlighted in a project.&lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-11-13T15:49:42.303" CommunityOwnedDate="2011-01-25T17:00:53.097" />
  <row Id="18828" PostTypeId="2" ParentId="18813" CreationDate="2010-11-13T16:13:08.010" Score="3" ViewCount="" Body="&lt;p&gt;In my experience, it was worth it, but it depends on how you think about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did some light web work for a friend of a friend who owned an electronics store. Instead of paying me the ~$200 cash I'd have charged, he got me a monitor. Like I said, I feel we both came out ahead, but it depends on how you break it down; I know that I'd have paid well over $200 for what I got out of the deal. On the other hand, he's getting supplier pricing so he probably paid a lot less than $200 for the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's pretty much the only time I've gone in for a barter, and I don't regret it. I'm still using the monitor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not sure how the equation would have changed if he wanted to effectively pay me in gift cards. I certainly wouldn't have taken a 1:1 on dollars to store credit. Probably would have pushed into the 1:1.2 - 1:1.4 range. It still needs to be worth it for both parties.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-13T16:13:08.010" CommentCount="1" />
  <row Id="18829" PostTypeId="2" ParentId="18720" CreationDate="2010-11-13T16:14:52.137" Score="0" ViewCount="" Body="&lt;p&gt;Just to be clear, I'm assuming that you are talking about a user-visible version number of some sort, and not giving up on version control in development. (if you think you don't need version control in development, then you are wrong, you do need version control).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a single-hosted project it's not strictly necessary, because if any questions arise you can always look at the host and confirm what's really running. It's kind of nice, though, because it might come in handy once or twice. It's really up to you as to whether you think it will be useful or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a multi-hosted project, it's not really optional. Different hosts will eventually end up with different versions and you'll need to be able to tell them apart at the user end. &lt;/p&gt;&#xA;" OwnerUserId="6294" LastActivityDate="2010-11-13T16:14:52.137" />
  <row Id="18830" PostTypeId="2" ParentId="18817" CreationDate="2010-11-13T16:26:26.927" Score="1" ViewCount="" Body="&lt;p&gt;Move 4. Other (video) higher up (unless you need to run programs with high requirements for both memory, CPU and disk). You are probably going to spend a lot of time looking at code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you plan to use the laptop's monitor, you would want a monitor with high resolution (much higher than the &quot;standard&quot; resolution of 1366x768 which many laptops offer).&lt;/p&gt;&#xA;" OwnerUserId="7647" LastActivityDate="2010-11-13T16:26:26.927" />
  <row Id="18831" PostTypeId="2" ParentId="8968" CreationDate="2010-11-13T16:46:08.567" Score="2" ViewCount="" Body="&lt;p&gt;Initial experience is always fun.&#xA;Even if you tought your child how to make a program that spits out the product of two inputted numbers they would be happy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am 14 now, and started programming 2 and a bit years ago. I learnt by myself so i am sure they could learn with help from as young as 10.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something you might want to introduce them to is game development (fun, so many possibilities that can be PLAYED with as you go).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;try checking out Game Maker for something really simple yet effective. Other game development software includes : Scratch (simpler, but not as powerful as Game Maker), Adobe Flash (extremely popular) or if they are in they are really prepared to learn, C#'s XNA library.&lt;/p&gt;&#xA;" OwnerUserId="7648" LastActivityDate="2010-11-13T16:46:08.567" CommunityOwnedDate="2011-03-04T21:09:34.713" />
  <row Id="18832" PostTypeId="2" ParentId="18803" CreationDate="2010-11-13T16:52:50.633" Score="3" ViewCount="" Body="&lt;p&gt;Mine started at about one and a half pages and is now two.  If I were hiring, I'd expect a new graduate to have one to one and a half pages (the extra half is if you were in a co-op program), and someone with 5 to 10 years to have a full two pages.  I wouldn't be put off if a very experienced person had three pages, but no more than that.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-11-13T16:52:50.633" CommunityOwnedDate="2011-01-25T17:00:53.097" />
  <row Id="18833" PostTypeId="2" ParentId="18771" CreationDate="2010-11-13T16:52:54.770" Score="1" ViewCount="" Body="&lt;p&gt;As a simple response, i would say, do not let it discourage you! It means there may be a lot of learning ahead, but what you do currently know, can assist in your learning (and hopefully excelling) in your spare time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, when a change arrises,try to find the main differences ASAP so you can adjust to the new things quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="7648" LastActivityDate="2010-11-13T16:52:54.770" />
  <row Id="18834" PostTypeId="2" ParentId="10675" CreationDate="2010-11-13T16:56:08.243" Score="1" ViewCount="" Body="&lt;p&gt;You need fundamentals:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Machine code&lt;/li&gt;&#xA;&lt;li&gt;Assembly language&lt;/li&gt;&#xA;&lt;li&gt;C&lt;/li&gt;&#xA;&lt;li&gt;Lisp&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;After that it probably doesn't matter.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-11-13T16:56:08.243" CommunityOwnedDate="2011-01-31T13:41:33.057" />
  <row Id="18835" PostTypeId="2" ParentId="9506" CreationDate="2010-11-13T16:58:28.067" Score="1" ViewCount="" Body="&lt;p&gt;Yes. I've been doing a &quot;C rerun&quot; of sorts, brushing up on the language - and I found linked list exercises helpful in getting familiar with many pointer idioms. Here's the link if you're interested - &lt;a href=&quot;http://cslibrary.stanford.edu/&quot; rel=&quot;nofollow&quot;&gt;http://cslibrary.stanford.edu/&lt;/a&gt; . If you're doing the exercises in there, make sure you do them all, in sequence.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-11-13T16:58:28.067" CommentCount="1" />
  <row Id="18836" PostTypeId="2" ParentId="18817" CreationDate="2010-11-13T17:27:55.523" Score="2" ViewCount="" Body="&lt;p&gt;One thing not on your list, that I found very important when using notebooks for software development is &lt;strong&gt;COOLING&lt;/strong&gt;. Make sure to check with other users of your selected brand that there is no overheating problems. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Believe me, this is sometimes a more significant factor than anything else.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-13T17:27:55.523" />
  <row Id="18838" PostTypeId="1" AcceptedAnswerId="18846" CreationDate="2010-11-13T17:33:34.810" Score="7" ViewCount="922" Body="&lt;p&gt;I currently code with C, C++, and Python. I'm wanting to pick up a functional programming language, and right now I'm leaning toward Haskell. I do NOT want to start a &quot;Haskell vs Lisp&quot; war here; what I want to know is this: &lt;strong&gt;if I learn Haskell primarily for exposure to functional programming, what benefits, if any, will I gain from later learning Lisp?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Update: Thanks everyone for your answers. Now all I need to do is pick a dialect of Lisp, but &lt;em&gt;that's&lt;/em&gt; a question for another time.&lt;/p&gt;&#xA;" OwnerUserId="7629" LastEditorUserId="7629" LastEditorDisplayName="" LastEditDate="2010-11-16T22:37:15.797" LastActivityDate="2010-11-16T22:37:15.797" Title="Haskell AND Lisp vs. Haskell OR Lisp" Tags="&lt;learning&gt;&lt;functional-programming&gt;&lt;paradigms&gt;" AnswerCount="5" FavoriteCount="4" />
  <row Id="18839" PostTypeId="2" ParentId="18838" CreationDate="2010-11-13T17:49:29.643" Score="5" ViewCount="" Body="&lt;p&gt;The main benefit I see from learning Lisp is learning how to integrate FP into a real-world oriented multiparadigm language, rather than only learning it in the context of an academic language that emphasizes purity.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-13T17:49:29.643" CommentCount="3" />
  <row Id="18840" PostTypeId="2" ParentId="18838" CreationDate="2010-11-13T18:05:01.833" Score="10" ViewCount="" Body="&lt;p&gt;AND please.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haskell teaches you the purest of FP, as far as I'm aware at least, just like Smalltalk teaches the purest of OO. (I mention this not to suggest that OO and FP can't marry, but because both these languages are &quot;gem&quot; languages - a core idea taken to extremes.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lisp is really a family of languages, so I'll talk about Common Lisp because that's the particular member of the family I use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lisp will still have lots to teach you:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's multiparadigm, so as &lt;a href=&quot;http://programmers.stackexchange.com/questions/18838/haskell-and-lisp-vs-haskell-or-lisp/18839#18839&quot;&gt;dsimcha points out&lt;/a&gt; it'll show you how to integrate FP with other paradigms.&lt;/li&gt;&#xA;&lt;li&gt;Lisp will teach you that &quot;code-is-data, data-is-code&quot;, for example through its macros.&lt;/li&gt;&#xA;&lt;li&gt;CLOS is a very interesting brand of OO, with multiple inheritance that works, and generic functions.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-11-13T18:05:01.833" />
  <row Id="18841" PostTypeId="2" ParentId="18838" CreationDate="2010-11-13T18:42:50.830" Score="4" ViewCount="" Body="&lt;p&gt;Learning Lisp later will allow you to customize Emacs which arguably is the most advanced text editor available.   You can't do that in Haskell.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-13T18:42:50.830" CommentCount="8" />
  <row Id="18842" PostTypeId="2" ParentId="9506" CreationDate="2010-11-13T18:51:35.333" Score="0" ViewCount="" Body="&lt;p&gt;Implementing a linked list helped me learn pointers somewhat, but was slightly overshadowed by the initial confusion of declaring a pointer within a node using a type that was currently being defined.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;struct Node {&#xA;    int data;&#xA;    struct Node* next;  /* &amp;lt;= !!!  */&#xA;};&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="7629" LastActivityDate="2010-11-13T18:51:35.333" />
  <row Id="18843" PostTypeId="1" CreationDate="2010-11-13T18:52:59.153" Score="8" ViewCount="435" Body="&lt;p&gt;I am trying to understand the landscape of different approaches, and best practices, around the development of complex client-side JavaScript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure what to label this class of application, perhaps &lt;strong&gt;heavy AJAX&lt;/strong&gt; or &lt;strong&gt;RIA&lt;/strong&gt; (but not plugins like Flash/Silverlight).  I'm referring to web apps with these characteristics:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Emulate rich/native desktop UX in JavaScript&lt;/li&gt;&#xA;&lt;li&gt;Contain most/all behavior in client-side JS, using the server as a data-API (JSON/Html-Templates).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This is in contrast to using the web-server for the UI rendering, producing all HTML in a page-refresh model.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some examples are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Google Docs / Gmail&lt;/li&gt;&#xA;&lt;li&gt;Mindmeister&lt;/li&gt;&#xA;&lt;li&gt;Pivotal Tracker&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As we move forward into HTML5, I can see this style of RIA development, with heavy JavaScript, becoming ever more common and necessary to compete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;QUESTION: So what are the common approaches emerging around managing these kinds of heavy JS developments?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Client-side code, as an app grows in features, is fiendishly complicated.  There are problems scaling a development effort across multiple teams with raw JS (or so I hear, and can well believe it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Google has approached the problem by building GWT that compiles from a higher level language (Java) to JS, leaning on the existing development infrastructure that the higher level language has (Eclipse, strong-typing, refactoring tools), along with abstracting browser compatibility and other issues away from the developer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are other tools, like Script# for C# that do something similar.  All this puts JS more in the role of an IL (Intermediate Language). ie. &quot;You never really write in that 'low level language' anymore.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But this 'compile to JS' is not the only approach.  It's not apparent that GWT is the dominant approach...or indeed will become it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What are people doing with rich-client JavaScript?&lt;/strong&gt; Some orienting questions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Are most shops crafting JS manually (atop libs like jQuery et al)?&lt;/li&gt;&#xA;&lt;li&gt;Or are there many many different approaches, with no clear best-practice emerging?&lt;/li&gt;&#xA;&lt;li&gt;Are most shops avoiding RIA scale development in favor of the simpler to developer server-side/page-redraw model?  If so, will this last?&lt;/li&gt;&#xA;&lt;li&gt;Is compiling to JS perhaps an emerging future trend?  Or is this just wrong headed?&lt;/li&gt;&#xA;&lt;li&gt;How do they manage the complexity and refactoring of client JS?&lt;/li&gt;&#xA;&lt;li&gt;Modularization and distribution of work across teams?&lt;/li&gt;&#xA;&lt;li&gt;The application, enforcement, and testing of client-side patterns like MVC/MVP etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;So, what are the emerging trends in this heavy-JavaScript and HTML5 future of ours?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="7653" LastActivityDate="2011-02-28T18:22:43.673" Title="Dev approaches to complex JavaScript UI's" Tags="&lt;best-practices&gt;&lt;development-methodologies&gt;&lt;javascript&gt;&lt;html5&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="3" />
  <row Id="18845" PostTypeId="1" CreationDate="2010-11-13T19:31:07.610" Score="2" ViewCount="158" Body="&lt;p&gt;If you see the posts at &lt;a href=&quot;http://groups.google.com/group/comp.unix.programmer/topics?pli=1&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/comp.unix.programmer/topics?pli=1&lt;/a&gt;, most of them are spam.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are these com groups still good places to visit for programmers, if yes, how do you filter the spam? Why aren't they moderated anyways?&lt;/p&gt;&#xA;" OwnerUserId="192" LastEditorUserId="192" LastEditorDisplayName="" LastEditDate="2010-11-14T05:48:01.400" LastActivityDate="2010-11-14T05:48:01.400" Title="Are groups like comp.unix.programmer still alive?" Tags="&lt;learning&gt;&lt;user-group&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="18846" PostTypeId="2" ParentId="18838" CreationDate="2010-11-13T19:43:02.217" Score="14" ViewCount="" Body="&lt;p&gt;I suggest learning both, Haskell first, then Common Lisp. My experience with Haskell was that the static typing seemed to be a restricting annoyance at first, but once I got used to it, I noticed that most of my type errors had logic errors hiding behind them. When you get to this point, and the next milestone, which is learning to think in types and define your own types as a means of expressing your solution, you'll be ready for Common Lisp. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;With Common Lisp, you can add monads, currying, and everything you liked from Haskell, but you also get multiple inheritance like Frank Shearar mentioned, and generic functions with multiple dispatch, and an advanced exception handling system. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So why not just learn Common Lisp first? Coming from a procedural and OOP background, my experience has been that I didn't really understand functional programming until I had to use it exclusively. Once functional programming is comfortable, you can add the rest of the tools that Common Lisp makes available, and use whatever tool is best at the task at hand. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-13T19:43:02.217" CommentCount="2" />
  <row Id="18847" PostTypeId="2" ParentId="18669" CreationDate="2010-11-13T19:43:02.883" Score="1" ViewCount="" Body="&lt;p&gt;If I remember well, in &quot;Code Complete&quot; they reference a research which shows that projects developed under agile methodologies end up being more expensive in the end when compared to the waterfall. That probably answers your question.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-13T19:43:02.883" />
  <row Id="18848" PostTypeId="2" ParentId="18845" CreationDate="2010-11-13T19:48:08.223" Score="1" ViewCount="" Body="&lt;p&gt;I visit comp.lang.lisp daily. There's the occasional flamewar, but also informative discussion about the finer points of Lisp and program design. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The better news servers, &lt;a href=&quot;http://www.eternal-september.org/&quot; rel=&quot;nofollow&quot;&gt;Eternal September&lt;/a&gt; for example, filter out most of the spam. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-13T19:48:08.223" />
  <row Id="18849" PostTypeId="2" ParentId="18803" CreationDate="2010-11-13T19:49:13.940" Score="2" ViewCount="" Body="&lt;p&gt;at present, &lt;strong&gt;6 pages&lt;/strong&gt; and growing&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I list every position and project, state what i did, and &lt;em&gt;how it benefited the client&lt;/em&gt; (saved time, made money, accomplished the impossible, etc.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;your resume is a sales brochure; the product is &lt;em&gt;you&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-13T19:49:13.940" CommunityOwnedDate="2011-01-25T17:00:53.097" CommentCount="6" />
  <row Id="18850" PostTypeId="2" ParentId="18790" CreationDate="2010-11-13T19:50:32.957" Score="0" ViewCount="" Body="&lt;p&gt;lorem ipsum; designers love it; normal people, not so much!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-13T19:50:32.957" CommentCount="4" />
  <row Id="18851" PostTypeId="2" ParentId="9506" CreationDate="2010-11-13T19:50:52.580" Score="1" ViewCount="" Body="&lt;p&gt;I wish everyone learned assembly language before moving on to the high level language. My understanding of pointers when I started programming and now is the same. It's very easy when you think of what the C/C++ does for you what 8085 assembly language can't. If you felt you understood &quot;more&quot; then you don't know more yet. But if you instantly recognize how easy concept it is then you got it!&lt;/p&gt;&#xA;" OwnerUserId="7655" LastActivityDate="2010-11-13T19:50:52.580" />
  <row Id="18852" PostTypeId="1" CreationDate="2010-11-13T19:55:28.317" Score="6" ViewCount="368" Body="&lt;p&gt;I'm very good at programming in C++ but when it gets to linking and the other important stuffs I feel very ignorant. I want to learn allegro without wasting time. So please suggest a book or a resource to learn the concepts mentioned above. Thanks a lot in advance.&lt;/p&gt;&#xA;" OwnerUserId="7655" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-11-14T23:26:39.603" LastActivityDate="2010-12-27T14:40:38.110" Title="How do I learn linking compiling, makefile quickly? Any book recommendations?" Tags="&lt;c++&gt;&lt;linux&gt;&lt;compilers&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="2" />
  <row Id="18853" PostTypeId="2" ParentId="17824" CreationDate="2010-11-13T20:09:59.507" Score="10" ViewCount="" Body="&lt;p&gt;There are three options really, all three of them preferable in different situations.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Option 1: parser generators, or 'you need to parse some language and you just want to get it working, dammit'&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Say, you're asked to build a parser for some ancient data format NOW. Or you need your parser to be fast. Or you need your parser to be easily maintainable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In these cases, you're probably best off using a parser generator. You don't have to fiddle around with the details, you don't have to get lots of complicated code to work properly, you just write out the grammar the input will adhere to, write some handling code and presto: instant parser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The advantages are clear:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's (usually) quite easy to write a specification, in particular if the input format isn't too weird (option 2 would be better if it is).&lt;/li&gt;&#xA;&lt;li&gt;You end up with a very easily maintainable piece of work that is easily understood: a grammar definition usually flows a lot more natural than code.&lt;/li&gt;&#xA;&lt;li&gt;The parsers generated by good parser generators are usually a lot faster than hand-written code. Hand-written code &lt;em&gt;can&lt;/em&gt; be faster, but only if you know your stuff - this is why most widely used compilers use a hand-written recursive-descent parser.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There's one thing you have to be careful of with parser-generators: the can sometimes reject your grammars. For an overview of the different types of parsers and how they can bite you, you may want to start &lt;a href=&quot;http://cstheory.stackexchange.com/questions/2399/what-is-the-most-powerful-kind-of-parser/2401#2401&quot;&gt;here&lt;/a&gt;. &lt;a href=&quot;http://en.wikipedia.org/wiki/Comparison_of_parser_generators&quot; rel=&quot;nofollow&quot;&gt;Here&lt;/a&gt; you can find an overview of a lot of implementations and the types of grammars they accept.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Option 2: hand-written parsers, or 'you want to build your own parser, and you care about being user-friendly'&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Parser generators are nice, but they aren't very user (the end-user, not you) friendly. You typically can't give good error messages, nor can you provide error recovery. Perhaps your language is very weird and parsers reject your grammar or you need more control than the generator gives you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In these cases, using a hand-written recursive-descent parser is probably the best. While getting it right may be complicated, you have complete control over your parser so you can do all kinds of nice stuff you can't do with parser generators, like error messages and even error recovery (try removing all the semicolons from a C# file: the C# compiler will complain, but will detect most other errors anyway regardless of the presence of semicolons).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hand-written parsers also usually perform better than generated ones, assuming the quality of the parser is high enough. On the other hand, if you don't manage to write a good parser - usually due to (a combination of) lack of experience, knowledge or design - then performance is usually slower. For lexers the opposite is true though: generally generated lexers use table lookups, making them faster than (most) hand-written ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Education-wise, writing your own parser will teach you more than using a generator. You have to write more and more complicated code after all, plus you have to understand exactly how you parse a language. On the other hand, if you want to learn how to create your own language (so, get experience at language design), either option 1 or option 3 is preferable: if you're developing a language, it will probably change a lot, and option 1 and 3 give you an easier time with that.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Option 3: hand written parser generators, or 'you're trying to learn a lot from this project and you wouldn't mind ending up with a nifty piece of code you can re-use a lot'&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;This is the path I'm currently walking down: you write &lt;em&gt;your own&lt;/em&gt; parser generator. While highly nontrivial, doing this will probably teach you the most.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To give you an idea what doing a project like this involves I'll tell you about my own progress.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The lexer generator&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I created my own lexer generator first. I usually design software starting with how the code will be used, so I thought about how I wanted to be able to use my code and wrote this piece of code (it's in C#):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Lexer&amp;lt;CalculatorToken&amp;gt; calculatorLexer = new Lexer&amp;lt;CalculatorToken&amp;gt;(&#xA;    new List&amp;lt;StringTokenPair&amp;gt;()&#xA;    { // This is just like a lex specification:&#xA;      //                    regex   token&#xA;        new StringTokenPair(&quot;\\+&quot;,  CalculatorToken.Plus),&#xA;        new StringTokenPair(&quot;\\*&quot;,  CalculatorToken.Times),&#xA;        new StringTokenPair(&quot;(&quot;,    CalculatorToken.LeftParenthesis),&#xA;        new StringTokenPair(&quot;)&quot;,    CalculatorToken.RightParenthesis),&#xA;        new StringTokenPair(&quot;\\d+&quot;, CalculatorToken.Number),&#xA;    });&#xA;&#xA;foreach (CalculatorToken token in&#xA;             calculatorLexer.GetLexer(new StringReader(&quot;15+4*10&quot;)))&#xA;{ // This will iterate over all tokens in the string.&#xA;    Console.WriteLine(token.Value);&#xA;}&#xA;&#xA;// Prints:&#xA;// 15&#xA;// +&#xA;// 4&#xA;// *&#xA;// 10&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The input string-token pairs are converted into a corresponding recursive structure describing the regular expressions they represent using the ideas of an arithmetic stack. This is then converted into a NFA (nondeterministic finite automaton), which is in turn converted into a DFA (deterministic finite automaton). You can then match strings against the DFA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This way, you get a good idea how exactly lexers work. In addition, if you do it the right way the results from your lexer generator can be roughly as fast as professional implementations. You also don't lose any expressiveness compared to option 2, and not much expressiveness compared to option 1.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I implemented my lexer generator in just over 1600 lines of code. This code makes the above work, but it still generates the lexer on the fly every time you start the program: I'm going to add code to write it to disk at some point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to know how to write your own lexer, &lt;a href=&quot;http://stackoverflow.com/questions/1084069/building-a-regex-engine-online-resources&quot;&gt;this&lt;/a&gt; is a good place to start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The parser generator&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You then write your parser generator. I refer to &lt;a href=&quot;http://cstheory.stackexchange.com/questions/2399/what-is-the-most-powerful-kind-of-parser/2401#2401&quot;&gt;here&lt;/a&gt; again for an overview on the different kinds of parsers - as a rule of thumb, the more they can parse, the slower they are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Speed not being an issue for me, I chose to implement an Earley parser. Advanced implementations of an Earley parser &lt;a href=&quot;http://webhome.cs.uvic.ca/~nigelh/Publications/PracticalEarleyParsing.pdf&quot; rel=&quot;nofollow&quot;&gt;have been shown&lt;/a&gt; to be about twice as slow as other parser types.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In return for that speed hit, you get the ability to parse &lt;strong&gt;&lt;em&gt;any&lt;/em&gt;&lt;/strong&gt; kind of grammar, even ambiguous ones. This means you never need to worry about whether your parser has any left-recursion in it, or what a shift-reduce conflict is. You can also define grammars more easily using ambiguous grammars if it doesn't matter which parse tree is the result, such as that it doesn't matter whether you parse 1+2+3 as (1+2)+3 or as 1+(2+3).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is what a piece of code using my parser generator can look like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Lexer&amp;lt;CalculatorToken&amp;gt; calculatorLexer = new Lexer&amp;lt;CalculatorToken&amp;gt;(&#xA;    new List&amp;lt;StringTokenPair&amp;gt;()&#xA;    {&#xA;        new StringTokenPair(&quot;\\+&quot;,  CalculatorToken.Plus),&#xA;        new StringTokenPair(&quot;\\*&quot;,  CalculatorToken.Times),&#xA;        new StringTokenPair(&quot;(&quot;,    CalculatorToken.LeftParenthesis),&#xA;        new StringTokenPair(&quot;)&quot;,    CalculatorToken.RightParenthesis),&#xA;        new StringTokenPair(&quot;\\d+&quot;, CalculatorToken.Number),&#xA;    });&#xA;&#xA;Grammar&amp;lt;IntWrapper, CalculatorToken&amp;gt; calculator&#xA;    = new Grammar&amp;lt;IntWrapper, CalculatorToken&amp;gt;(calculatorLexer);&#xA;&#xA;// Declaring the nonterminals.&#xA;INonTerminal&amp;lt;IntWrapper&amp;gt; expr = calculator.AddNonTerminal&amp;lt;IntWrapper&amp;gt;();&#xA;INonTerminal&amp;lt;IntWrapper&amp;gt; term = calculator.AddNonTerminal&amp;lt;IntWrapper&amp;gt;();&#xA;INonTerminal&amp;lt;IntWrapper&amp;gt; factor = calculator.AddNonTerminal&amp;lt;IntWrapper&amp;gt;();&#xA;&#xA;// expr will be our head nonterminal.&#xA;calculator.SetAsMainNonTerminal(expr);&#xA;&#xA;// expr: term | expr Plus term;&#xA;calculator.AddProduction(expr, term.GetDefault());&#xA;calculator.AddProduction(expr,&#xA;                         expr.GetDefault(),&#xA;                         CalculatorToken.Plus.GetDefault(),&#xA;                         term.AddCode(&#xA;                         (x, r) =&amp;gt; { x.Result.Value += r.Value; return x; }&#xA;                         ));&#xA;&#xA;// term: factor | term Times factor;&#xA;calculator.AddProduction(term, factor.GetDefault());&#xA;calculator.AddProduction(term,&#xA;                         term.GetDefault(),&#xA;                         CalculatorToken.Times.GetDefault(),&#xA;                         factor.AddCode&#xA;                         (&#xA;                         (x, r) =&amp;gt; { x.Result.Value *= r.Value; return x; }&#xA;                         ));&#xA;&#xA;// factor: LeftParenthesis expr RightParenthesis&#xA;//         | Number;&#xA;calculator.AddProduction(factor,&#xA;                         CalculatorToken.LeftParenthesis.GetDefault(),&#xA;                         expr.GetDefault(),&#xA;                         CalculatorToken.RightParenthesis.GetDefault());&#xA;calculator.AddProduction(factor,&#xA;                         CalculatorToken.Number.AddCode&#xA;                         (&#xA;                         (x, s) =&amp;gt; { x.Result = new IntWrapper(int.Parse(s));&#xA;                                     return x; }&#xA;                         ));&#xA;&#xA;IntWrapper result = calculator.Parse(&quot;15+4*10&quot;);&#xA;// result == 55&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(Note that IntWrapper is simply an Int32, except that C# requires it to be a class, hence I had to introduce a wrapper class)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope you see that the code above is very powerful: any grammar you can come up with can be parsed. You can add arbitrary bits of code in the grammar capable of performing lots of tasks. If you manage to get this all working, you can re-use the resulting code to do a lot of tasks very easily: just imagine building a command-line interpreter using this piece of code.&lt;/p&gt;&#xA;" OwnerUserId="7649" LastEditorUserId="7649" LastEditorDisplayName="" LastEditDate="2010-11-13T20:29:10.810" LastActivityDate="2010-11-13T20:29:10.810" CommentCount="4" />
  <row Id="18854" PostTypeId="2" ParentId="18120" CreationDate="2010-11-13T20:22:38.513" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Good Decision: Ditching my &quot;career path&quot; to do what I loved&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always wanted to code, but my dad heavily pressured me &lt;strong&gt;not&lt;/strong&gt; to be a software developer. So I became a chemist. Meh. At 27, I finally left a doctoral program in organic chemistry to co-found a software company and be one of three programmers to bang out an award-winning early Mac program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Bad Decision: Ditching what I loved for a &quot;career path&quot; I hated&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At 30, I moved from programming into management, and a few years after that became an entrepreneur. Unfortunately, I'm absolutely terrible at managing people and loathe doing it - but I did it anyway because I thought it was a good move. Boy, was I wrong. I was miserable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Good Decision: Again ditching my &quot;career path&quot; to do what I loved&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At 43, in the wake of the dot-com crash, the company I ran also folded, so I went back to programming, and can't imagine doing anything else for a living. While I deeply respect and appreciate effective managers, I'm just not cut out to be one of them. As a freelance programmer, I make far more money than I ever did as an entrepreneur, and have a much easier and more pleasant life.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-11-13T20:22:38.513" CommunityOwnedDate="2010-11-13T20:22:38.513" />
  <row Id="18855" PostTypeId="2" ParentId="18852" CreationDate="2010-11-13T20:24:03.170" Score="1" ViewCount="" Body="&lt;p&gt;Linkers and Loaders by Levine was very good.  We use this textbook at OSU in our Assembler, Linker, Loader, Compiler Design course. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1558604960&quot; rel=&quot;nofollow&quot;&gt;link here to amazon&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-11-13T20:24:03.170" CommentCount="6" />
  <row Id="18856" PostTypeId="2" ParentId="9506" CreationDate="2010-11-13T21:26:52.377" Score="0" ViewCount="" Body="&lt;p&gt;I learned about dynamic memory from the old DOS days. I remember the video buffer address as B800:0000 through B800:7FFF. Before drawing any popup windows I would copy off the video memory that was going to be overwritten and when, the window closed I would swap that memory back in. I remember thinking back then that this was the neatest thing. Thank godness we don't have to do that today.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-13T21:26:52.377" />
  <row Id="18859" PostTypeId="2" ParentId="18803" CreationDate="2010-11-13T22:07:46.100" Score="25" ViewCount="" Body="&lt;p&gt;2 pages, well spaced, never more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A friend whose dad worked as a corporate head hunter once said to me &quot;I recruit CEOs and Chairmen who can make their case with two pages, what have you done that needs more&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These days as someone who recruits developers I also sit on the the other side of the fence and I understand what he meant a little better.  Here's why 2 pages is right:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Hiring managers simply don't have the time to read 4, 5, 6 or more pages (I've seen CVs running to 14+).  Even when I do have more time, I'd rather spend it doing more or longer first interviews which are a far better way of understanding what the person has done and what they've really understood than reading CVs which are, let's say, a dubious source of information at best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) I don't ask developers to do massive presentations or time consuming preparation for interviews because I respect their time and the amount it's reasonable to ask someone to spend on something that is, at this early stage, quite tentative.  I'd really appreciate it if you'd respect mine by not asking me to read page after page when I don't know if I'm that interested in you yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Ability to communicate in a concise manner is as vital a skill for a developer as for anyone else.  If you can't pare it down to a clear, brief message it's a skill you're lacking and should really work on.  Not sure what to cut?  Then think about:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) The chances are the role doesn't need every skill you've ever used.  Target it to show those the role requires, remove the rest - it's just watering down what's really of interest.  You're better with two pages of gold and nothing else than two pages of gold and four of brass.  Maybe you think you've got six pages of gold but I'm very very dubious that it's six pages of gold &lt;strong&gt;I care about for this role&lt;/strong&gt; and the stuff I don't care about is brass in this context.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) The purpose of a CV is not to get you a job, it's to get you an interview.  If your experience is good and you've tailored your CV to show why you're good for the role, 2 pages is plenty to get you an interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd actually go slightly further and say with 2 pages, make sure that your case is made on page 1 and page 2 is just backing it up.  Seriously, if you've read the role description, know what they do and what they want, know what you could really bring to the role, you can do it in less than a page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really want more then stick the extra on the web, nicely structured (rather than one massive document), and put a one liner on the paper CV I can follow if I want (though for the record I probably won't).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-13T22:23:12.460" LastActivityDate="2010-11-13T22:23:12.460" CommunityOwnedDate="2011-01-25T17:00:53.097" CommentCount="2" />
  <row Id="18861" PostTypeId="2" ParentId="18803" CreationDate="2010-11-13T22:15:28.103" Score="2" ViewCount="" Body="&lt;p&gt;I do two pages.  It actually grew to three once, but I started trimming off the jobs from &gt; 12 years ago.  But I also have available upon request descriptions of my projects which is a full page of prose.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-11-13T22:15:28.103" CommunityOwnedDate="2011-01-25T17:00:53.097" CommentCount="2" />
  <row Id="18862" PostTypeId="2" ParentId="4384" CreationDate="2010-11-13T22:45:40.400" Score="1" ViewCount="" Body="&lt;p&gt;In about two months time, without prior hands-on experience with either Win32 API or OpenGL, I  wrote a 6-degrees of freedom robot kinematics simulator in C using OpenGL and Win32 API. It was for my diploma thesis and was later used at my university as one of the tools in the robotics lab. &lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-13T22:45:40.400" />
  <row Id="18864" PostTypeId="2" ParentId="18852" CreationDate="2010-11-13T22:49:30.430" Score="0" ViewCount="" Body="&lt;p&gt;You might want to take a look at the famous &quot;Dragon Book&quot; for background on theory of compilers.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-13T22:49:30.430" CommentCount="2" />
  <row Id="18865" PostTypeId="1" AcceptedAnswerId="19722" CreationDate="2010-11-13T23:06:11.327" Score="4" ViewCount="150" Body="&lt;p&gt;Let's face it. When you want to learn something completely new, be it mathematics or foreign languages, it's easiest to learn when you get real world scenarios in front of you, with theory applied. For example, trigonometry can be extremely interesting when applied to creation of 2D platform games. Norwegian can be really interesting to learn if you live in Norway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I try to look at a new programming language, I always find these steps the hardest:&#xA;1. What tools do I need to compile and how do I do it&#xA;2. Introduction-step: Why is this programming language so cool? Where and how is it used? (The step I am looking for, real-world scenarios)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The rest, deep diving into the language, pure theory and such, is often much easier if you have completed step 1 and 2. Because now you know what it's all about, and can just read the specification when you need to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I ask is, do you have any recommendations for places I can find such material for programming languages? Be it websites or companies selling books in this style, I'm interested. Also, I am interested in all languages. (If I had found a &quot;real-world usage&quot; explained for even INTERCAL, I would be interested).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In some other thread here, I found a book called &quot;Seven Languages in Seven Weeks&quot;. This is kind of what I am looking for, but I believe there must be &quot;more like this&quot;.&lt;/p&gt;&#xA;" OwnerUserId="2058" LastActivityDate="2010-11-17T22:08:29.877" Title="Is there any place to find real-world usage-style tutorials for programming languages?" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;tutorial&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="1" />
  <row Id="18866" PostTypeId="2" ParentId="18845" CreationDate="2010-11-13T23:10:31.373" Score="3" ViewCount="" Body="&lt;p&gt;Quite alive!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I visit some several times a day, and they are very active. Notable examples include, &lt;em&gt;comp.lang.fortran&lt;/em&gt;, &lt;em&gt;comp.soft-sys.matlab&lt;/em&gt;, &lt;em&gt;comp.lang.python&lt;/em&gt; and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, if you are troubled by spam, and for many other reasons, please take my advice, and stop using Google Groups. They are one of the worst things that ever happened to Usenet in terms of spam. Get yourself a solid newsreader (Forte Agent for example; if not even Thunderbird will do) and follow newsgroups from a dedicated server. There are quite a lot of them that offer free access to non-binaries groups, and if you're a student or a member of the academia, your University is bound to have one as well.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-13T23:10:31.373" />
  <row Id="18867" PostTypeId="2" ParentId="18771" CreationDate="2010-11-13T23:18:19.430" Score="1" ViewCount="" Body="&lt;p&gt;I'm not going to argue for/against a degree. Obviously there are great programmers out here in both camps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Motivation may be your problem. You suggested some of the course content may not be relevant. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You claim you can pick up a book and learn programming, but unless you are having other personal/financial issues, now is the most opportune time to learn programming and you aren't cutting the grades. Wait until you go out into the real world and are expected to maintain systems in one language, learn another for the new products, and have a customer piss in your ear about a bug in a line of code you've never seen before. I doubt your boss will be as nice as your professors. And even if he/she is, their boss won't. Any job that is easier than your current program you won't enjoy any way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Work on an open source project. Pick up some contract work or try an internship. True confidence is built on a foundation of increasingly difficult accomplishments. So far, you haven't given any indication that you can make it. Keep your butt in school. Pick the most relevant class in your curriculum and challenge yourself to get the top grade.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-13T23:18:19.430" />
  <row Id="18868" PostTypeId="1" CreationDate="2010-11-13T23:41:56.890" Score="6" ViewCount="270" Body="&lt;p&gt;Since I'm learning Java in this period and I just finished with the tutorials I think I'm ready to start contributing to a project (since I know from experience this is the best way to really learn). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen GWT, looks interesting so I thought I should give it a try. I'm thinking however, since GWT deploys Java applications in JavaScript why should I learn GWT when I could learn the actual thing instead (this being JavaScript). &#xA;My question: is it worth it? Wouldn't someone be better of learning JavaScript if they want to build JS applications, instead of using Java and GWT? I realize that it might be easier to build certain things with GWT but in the end is it worth it? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks. &lt;/p&gt;&#xA;" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-14T13:30:07.867" LastActivityDate="2010-11-14T13:40:09.933" Title="What are you thoughts on GWT?" Tags="&lt;java&gt;&lt;javascript&gt;&lt;gwt&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="1" />
  <row Id="18869" PostTypeId="2" ParentId="18794" CreationDate="2010-11-13T23:58:55.267" Score="1" ViewCount="" Body="&lt;p&gt;I just watched the first few minutes of the course - seems quite academic but in terms of parsing and working with Text, Manning's new book &lt;a href=&quot;http://www.manning.com/ingersoll/&quot; rel=&quot;nofollow&quot;&gt;Taming Text&lt;/a&gt; has been handy for me in getting a more formal background on techniques to use for working with text.&lt;/p&gt;&#xA;" OwnerUserId="3110" LastActivityDate="2010-11-13T23:58:55.267" />
  <row Id="18870" PostTypeId="2" ParentId="11436" CreationDate="2010-11-14T00:04:56.530" Score="0" ViewCount="" Body="&lt;p&gt;I pick some detail and then try to trace execution, or the flow of data, or all classes/subroutines/modules connected to it.  Example: what happens when the user clicks the &quot;Render&quot; button on a 3D modeling app?  Or find where the main input files, or a configuration file, is read, where the data is stored, and who reads that.  Is other data generated from that? Where is that stored, and who reads that?  Follow as far as it can go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The important thing is to pick something and start making diagrams, tracing the logic, and not linger over wondering if you made a good choice of starting point.  Just pick something and go, then do another.  After a couple weeks (or years, it seems it's going to be for my current project) you'll have some useful notes, even more of useless notes, but recognition of the important entities and places in the code.&lt;/p&gt;&#xA;" OwnerUserId="4280" LastActivityDate="2010-11-14T00:04:56.530" />
  <row Id="18871" PostTypeId="2" ParentId="18838" CreationDate="2010-11-14T00:43:53.637" Score="3" ViewCount="" Body="&lt;p&gt;I also come from a C/C++/Python background and have tried out FP a couple of times in the last few years.  Initially I looked at Haskell and couldn't make head or tail of it, then tried Ocaml but didn't get much further with that.  Finally I started hearing good things about Scala, tried it, and found it suited me very well (I had also done a bit of Java in the past), to the point that after a year of so of dabbling in Scala (and dispatching 161 Project Euler problems with it), Haskell seems to make much more sense.  In fact I just ordered a couple of books on Haskell and want to give it another go, although this is largely motivated by the existence of Scalaz.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I found using a multi-paradigm language (ie Scala, but Lisp would probably fit the bill too) a good way into FP.  But if you're happy diving into Haskell (I wasn't), go for it.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-11-14T00:43:53.637" CommentCount="3" />
  <row Id="18872" PostTypeId="2" ParentId="18865" CreationDate="2010-11-14T01:49:33.343" Score="0" ViewCount="" Body="&lt;p&gt;I like the &quot;cookbook&quot; type books because they're working examples solving real problems. Browse through them at the library or bookstore and see how the language flows when you read it for the first time.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-11-14T01:49:33.343" />
  <row Id="18873" PostTypeId="2" ParentId="18381" CreationDate="2010-11-14T01:55:30.030" Score="0" ViewCount="" Body="&lt;p&gt;I agree with sal. A book pure on JUnit would just simply be a waste of money.Yes it has a lot of features, but good documentation is provided online if you need anything. Much more important than some standard examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Test driven will explain you how your tests can really make a difference, and how you can integrate them easily with the technologies you are using.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-14T01:55:30.030" />
  <row Id="18874" PostTypeId="2" ParentId="18852" CreationDate="2010-11-14T02:04:06.407" Score="1" ViewCount="" Body="&lt;p&gt;You don't &lt;em&gt;have to&lt;/em&gt; learn &lt;code&gt;autoconf&lt;/code&gt; and make files and all that stuff in order to get started under Linux. You can still use an IDE such as Eclipse, which will generate all the autoconf stuff for you automatically.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually, you probably &lt;em&gt;will&lt;/em&gt; want to learn it, but you don't have to if you're just starting out. Eclipse will be able to 90% of the stuff you need via it's GUI and wizards, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, &lt;a href=&quot;http://wiki.allegro.cc/index.php?title=Eclipse&quot; rel=&quot;nofollow&quot;&gt;this page&lt;/a&gt; explains how to get started with Allegro under Eclipse. That page does appear to make some assumptions about your knowledge of Linux, but I'm sure with a bit of googling you should be able to find some more thorough references (that was just the first page I found).&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-11-14T02:04:06.407" CommentCount="4" />
  <row Id="18875" PostTypeId="2" ParentId="18771" CreationDate="2010-11-14T02:22:33.580" Score="3" ViewCount="" Body="&lt;p&gt;Not to be trite, but making it without a degree is a lot harder than making it with one.  If you can't cut it in your degree program, you are definitely not likely to cut it in the real world with no credentials.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finish your degree, in CS or some other field.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-14T02:22:33.580" />
  <row Id="18876" PostTypeId="2" ParentId="18868" CreationDate="2010-11-14T02:34:47.390" Score="1" ViewCount="" Body="&lt;p&gt;The very reason GWT took Java as source language is because JS (Ecmascript) is inhumanely difficult to work with. GWT is just a nice way to bring programming to Web/browsers where it was not possible before. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before GWT there were futile attempts to program something in browsers (Ajax, dojo, plain javascript). But forces of nature are too violent there, so everything falls apart (browsers change, they are never same, people speak different languages, people think that 15 images should be actually 15 files etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So answer is: If I were to code for internet ocean boiler (which is not my job), then I'd choose GWT.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. Another thought. The JS is made by Netscape. The company is long dead but the language stays there unfinished and rotting &lt;/p&gt;&#xA;" OwnerUserId="7071" LastEditorUserId="7071" LastEditorDisplayName="" LastEditDate="2010-11-14T02:53:43.543" LastActivityDate="2010-11-14T02:53:43.543" CommentCount="5" />
  <row Id="18877" PostTypeId="2" ParentId="17898" CreationDate="2010-11-14T02:44:22.633" Score="1" ViewCount="" Body="&lt;p&gt;Perhaps it's just me, but I work well with analogies. So let's say you have a friend (function/class) &quot;Foo&quot;, who wants to have someone else (different function/class), &quot;Bar&quot;, contact you for some reason. &quot;Foo&quot; could take you to go see &quot;Bar&quot;, but that's not convenient, moving all those beings (instances) around. However, &quot;Foo&quot; could send &quot;Bar&quot; your phone number (pointer). That way, no matter where you are, &quot;Foo&quot; knows how to contact you without having to find you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, let's say &quot;Bar&quot; has an acquaintance, &quot;Baz&quot;, who also wants to get in touch with you. But you're protective of your phone number and you don't want everyone to have, &quot;Baz&quot; can call &quot;Bar&quot; (phone as pointer), who can then forward the call to you (another pointer). And so on and on down the chain of &quot;Baz&quot;'s friends and friends of friends.&lt;/p&gt;&#xA;" OwnerUserId="146" LastActivityDate="2010-11-14T02:44:22.633" CommunityOwnedDate="2010-12-02T00:15:36.130" />
  <row Id="18878" PostTypeId="2" ParentId="18240" CreationDate="2010-11-14T02:48:27.463" Score="0" ViewCount="" Body="&lt;p&gt;Depending on the audience, you could cover some basics and best practices, such as:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;OO&lt;/li&gt;&#xA;&lt;li&gt;Work through McConnell's &quot;Code Complete&quot;&lt;/li&gt;&#xA;&lt;li&gt;Writing secure code&lt;/li&gt;&#xA;&lt;li&gt;TDD&lt;/li&gt;&#xA;&lt;li&gt;Design Patterns&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="146" LastActivityDate="2010-11-14T02:48:27.463" />
  <row Id="18879" PostTypeId="2" ParentId="18865" CreationDate="2010-11-14T03:09:43.133" Score="1" ViewCount="" Body="&lt;p&gt;One problem with &quot;real-world&quot; examples is that the real world is complex. Even trivial solutions end up with several layers of abstraction. Thus explaining a concept and even a language becomes very confusing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I agree with the &quot;cookbook&quot; books, but would expand it to the Heads First series by O'Reily. Also every book in the pragmatic bookcase has been helpful (http://www.pragprog.com/titles). I especially liked the Agile Web Development with Rails and Pragmatic Thinking. The website also hosts example code that you can browse through and online forums about the books.&lt;/p&gt;&#xA;" OwnerUserId="7305" LastActivityDate="2010-11-14T03:09:43.133" />
  <row Id="18880" PostTypeId="2" ParentId="18865" CreationDate="2010-11-14T03:30:58.327" Score="2" ViewCount="" Body="&lt;p&gt;There are a series of books beginning with &quot;The visual quick start guide&quot; which can be just as helpful as they are harmful when it comes to helping people jump into a language and become proficient. There are many similar series with different hallmarks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as you realize that the books aren't designed to help you write production code quickly, they are a great learning tool. Each book has an associated web site that has a library of samples to download, free tools to work with the language and a place for readers working through the exercises to interact.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you get proficient with the mechanics of a language, I strongly recommend downloading and studying an established, well reviewed open source code base. In fact, download several. It takes a while to build up a defensive style with any language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Going to your spoken language example, I studied Spanish for several years in secondary school, then for another year in college. I thought that I was becoming rather fluent, at least conversationally. I was then put in a position where I had to speak Spanish with native speakers and found out just how far the mechanics of the language differed from its colloquial use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I'm learning another language, Tagalog (Filipino) by example. I'm watching local TV, I'm forcing myself to attempt to speak in Tagalog (first) conversationally whenever possible, and I'm getting quite good conversationally. The problem? In this language, I'm quite illiterate and fail to grasp its 'proper' constructs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, you need both. Learning &lt;em&gt;just&lt;/em&gt; by doing isn't sufficient, nor is learning without actually doing anything &lt;em&gt;&quot;real&quot;&lt;/em&gt;. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-14T03:30:58.327" />
  <row Id="18881" PostTypeId="2" ParentId="8968" CreationDate="2010-11-14T04:30:46.810" Score="2" ViewCount="" Body="&lt;p&gt;It depends on the kid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started coding when I was 6.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My son is 7, and has built his first web site, but no interest in code yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let the kid lead, and you can't go wrong. :)&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-14T04:30:46.810" CommunityOwnedDate="2011-03-04T21:09:34.713" />
  <row Id="18882" PostTypeId="2" ParentId="18790" CreationDate="2010-11-14T06:05:43.247" Score="4" ViewCount="" Body="&lt;p&gt;When it comes to web development, the most difficult thing about working with &lt;em&gt;some&lt;/em&gt; designers is getting them to remember that the page isn't necessarily going to look exactly the same as their design once content changes. Things like content in fixed-size boxes with non-repeating backgrounds: designers love the look of that, but if the content comes from a CMS, it's not going be exactly the same length as that beautifully laid out piece of lorem ipsum. Even if it never changes, it just needs a visitor with a different font size in their browser for the whole thing to come tumbling down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then there are designers that understand this. They understand that they have to consider every block of content being able to resize vertically as content gets longer and shorter. They understand that sometimes you have to point to a dropshadow or suchlike and say &quot;you know, that's going to add a lot of work for the HTML guy&quot;. They understand that you should put a label &lt;em&gt;next&lt;/em&gt; to the password entry box, not initialize it with the word &quot;Password&quot;, so the developer has to hack up some javascript to make it not display as &quot;&lt;code&gt;********&lt;/code&gt;&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your meeting leads to designers keeping things like that in mind, you've done well.&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-11-14T06:05:43.247" CommentCount="2" />
  <row Id="18883" PostTypeId="2" ParentId="3645" CreationDate="2010-11-14T06:40:55.183" Score="6" ViewCount="" Body="&lt;p&gt;Almost all of the other answers contain the basic premise that coding is the best thing to learn coding. If your goal is to pass the FizzBuzz test, this is true, and at some point you do have to start writing a lot of code to get good at writing code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, your question is not &quot;should I ever code&quot; but rather, &quot;I am learning and not focusing on coding: is that bad.&quot; But then you say in other comments that you do write some code doing exercises in books.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion, there's way too much emphasis on writing-code-to-learn-programming. I think it's just silly. Coding is the last thing you should be worried about. Studying software development is much more important than actually writing thousands of lines of code. You'll always end up writing a lot of code. While you're studying, you should not be focusing on what will best prepare you to code, but rather whatever part of your studies you actually like. If you like studying techniques and methodologies, study that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Jobs usually come out of your specific strengths. If you have none -- and you're just another person who wrote a lot of code, and can write good code -- then you won't have any competitive advantage. Play to your likes. You'll code enough in due time.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-11-14T06:40:55.183" CommentCount="4" />
  <row Id="18884" PostTypeId="2" ParentId="3645" CreationDate="2010-11-14T06:54:11.480" Score="0" ViewCount="" Body="&lt;p&gt;Yeah, I agree with huge amount of opinions that have been said here. In order to be a good developer, first off, you should &quot;Develop&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, if you are practicing Java, take a look at Android application development.&lt;/p&gt;&#xA;" OwnerUserId="7244" LastActivityDate="2010-11-14T06:54:11.480" />
  <row Id="18885" PostTypeId="1" CreationDate="2010-11-14T06:57:07.793" Score="2" ViewCount="187" Body="&lt;p&gt;Hi. I have a problem.. Or at least I think that this is the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm very curious guy in terms of computer programming. But the issue is that I'm not a professional in any field of computer &quot;science&quot; due to my curiosity in huge amount of spheres. For example, I was very interested in programming C, particularly in system programming (Windows). I learned information, coded some stuff and when this field was totally clear for me, my interest exhausted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I was involved in JavaScript and CSS, and again, when I've done some stuff, interest exhausted :( Later, I learned Python and Django, created few intermediate projects and again... exhausted.. Now I'm playing with mobile development, especially Java and Android. I still have a passion :) but I think it won't be for a long time :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe somebody has/had the same problem.. and can help me with a good advice :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you!&lt;/p&gt;&#xA;" OwnerUserId="7244" LastActivityDate="2010-11-15T06:38:16.263" ClosedDate="2010-11-14T10:02:59.470" Title="Don't know what to do" Tags="&lt;learning&gt;&lt;software&gt;&lt;research&gt;&lt;psychology&gt;&lt;development&gt;" AnswerCount="3" CommentCount="6" />
  <row Id="18886" PostTypeId="1" AcceptedAnswerId="18887" CreationDate="2010-11-14T06:59:27.103" Score="9" ViewCount="584" Body="&lt;p&gt;Is Computer Science science, applied mathematics, engineering, art, philosophy? &quot;Other&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To provide background, here is Steven Wartik's blog posting for Scientific American titled &quot;&lt;a href=&quot;http://www.scientificamerican.com/blog/post.cfm?id=im-not-a-real-scientist-and-thats-o-2010-11-12&quot; rel=&quot;nofollow&quot;&gt;I'm not a real scientist, and that's okay&lt;/a&gt;.&quot; The article covers some good topics for this question, but it leaves open more than it answers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;If you can think of the discipline, how would computer science fit into its definition?&lt;/strong&gt; Should the discipline for Computer Science be based on what &lt;em&gt;programmers&lt;/em&gt; do, or what &lt;em&gt;academics&lt;/em&gt; do? What kind of answers do you get from people who've seemed to think deeply about this? What reasons do they give?&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2011-02-19T20:03:21.377" Title="What discipline does Computer Science belong to?" Tags="&lt;computer-science&gt;&lt;philosophy&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="3" />
  <row Id="18887" PostTypeId="2" ParentId="18886" CreationDate="2010-11-14T07:36:05.017" Score="16" ViewCount="" Body="&lt;p&gt;There are two distinct IT disciplines:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Computer Science - is the discipline study of computers and computation using the scientific method.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Software Engineering - is the discipline of designing and implementing software following proper engineering principles.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The two overlap somewhat, but the distinction is really about desired outcomes of science versus engineering.  The desired outcome of a scientific discipline is knowledge.  The desired outcome of a engineering discipline is things that work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to answer your question:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is Computer Science science, applied mathematics, engineering, art, philosophy? &quot;Other&quot;?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Computer Science is Science ... when done properly.  However, like other disciplines CS has overlaps with Mathematics, Engineering, Physical Sciences, Social Sciences, Philosophy and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also add that what most programmers do is neither Computer Science or Software Engineering.  It is more like what a craftsman does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And sad to say, neither academic Computer Science or the Software Engineering profession are as rigorous as older science and engineering disciplines.  (There are fields of Computer Science that are traditionally rigorous; for example, the ones with a strong mathematical basis.  But for many fields, it is simply too hard / expensive to do proper scientific studies on the questions that really matter.)&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="1842" LastEditorDisplayName="" LastEditDate="2010-11-14T08:26:06.100" LastActivityDate="2010-11-14T08:26:06.100" CommentCount="3" />
  <row Id="18888" PostTypeId="2" ParentId="3645" CreationDate="2010-11-14T07:54:42.307" Score="1" ViewCount="" Body="&lt;p&gt;If your still a student, I would fret so much. Your course studies are for more important right now. However, once you leave the world of Academia, you might have a problem if you still have yet to find what your interested in within this field and don't code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm in a similar dilemma, I'm a senior finishing my B.S in Computer Science I don't code outside of my course work at the moment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It really frustrates me right now to be studying AP Statistics and Geological Sciences with respect to weather than work on my personal projects. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a Game project I so desperately want to work on but I got to graduate as well. (I know why Marc Zuckerburg and Bill Gates Dropped out now).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If these things are what prevent you from coding, don't worry. But if Coding doesn't motivate you, drive you, and the urge to create something really cool to you doesn't kick in by the time you graduate, I think you might have a problem.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-11-14T07:54:42.307" CommentCount="2" />
  <row Id="18889" PostTypeId="2" ParentId="18885" CreationDate="2010-11-14T08:00:14.380" Score="1" ViewCount="" Body="&lt;p&gt;That's normal for me. I have tons of unfinished projects laying around. I get interested in a subject, learn enough to satisfy my curiosity, then set it aside. I might come back to it later -- or not. I think it's a sign of perpetual curiosity. You'll get a lot of experience in a lot of different things, even if the knowledge isn't necessarily very deep. Do take some time to learn a few things well, but enjoy your tangental learning!&lt;/p&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2010-11-14T08:00:14.380" />
  <row Id="18890" PostTypeId="2" ParentId="18885" CreationDate="2010-11-14T08:04:55.890" Score="0" ViewCount="" Body="&lt;p&gt;@Adil : Your approach is very good. This way you keep to learn a lot of platforms. Keep doing this but just remember to be very skillful(so that you are of value to a employer) on any one platform and keep others learning as a hobby.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-14T08:04:55.890" />
  <row Id="18891" PostTypeId="1" CreationDate="2010-11-14T08:35:00.193" Score="4" ViewCount="244" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am looking for suggestion for a project in computer networks using C# as the development tool, as part of a university course I am taking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The project should last about a month, involving 2 people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll be happy to hear any intresting ideas you might have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doron&lt;/p&gt;&#xA;" OwnerUserId="7670" LastActivityDate="2010-11-25T15:24:41.397" Title="Project Suggestion for computer networks using C#" Tags="&lt;c#&gt;&lt;project&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="1" />
  <row Id="18893" PostTypeId="2" ParentId="18885" CreationDate="2010-11-14T09:43:56.437" Score="3" ViewCount="" Body="&lt;p&gt;I would suggest that you change your focus.  Design an application that will be useful to you or your loved ones - perhaps even make a difference - and do it and do it &lt;em&gt;well&lt;/em&gt;.  (The last bit is very important).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This will teach you much, much more than just &quot;How do I do X in Y?&quot;, and perhaps even allow you to earn a dollar or two if you choose a platform like iPhone or Android with high volume, low priced stores. &lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-11-15T06:38:16.263" LastActivityDate="2010-11-15T06:38:16.263" CommentCount="1" />
  <row Id="18894" PostTypeId="2" ParentId="11085" CreationDate="2010-11-14T09:53:24.853" Score="5" ViewCount="" Body="&lt;p&gt;We are physical beings which are not designed to sit all day on our butt and think, and doing so is actually pretty hard work which your body must be in shape to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you code more than 40 hours a week on a regular basis (and you seem to imply doing it on weekends too) you must spend a lot of time keeping in shape to give your body the strength to &lt;em&gt;do&lt;/em&gt; that.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you get fresh air?  Do you exercise?  All these annoying questions, but they are relevant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, your problems solving skills are frequently better if you take time away from the keyboard, as you have 1-2 hours of non-typing time where your mind can wander.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-14T09:53:24.853" />
  <row Id="18895" PostTypeId="1" AcceptedAnswerId="18908" CreationDate="2010-11-14T10:07:46.550" Score="4" ViewCount="307" Body="&lt;p&gt;I've been spending the last week or so learning selenium and building a series of web tests for a website we're about to launch. it's been great to learn, and I've picked up some xpath and css location techniques. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;the problem for me though, is seeing little changes break the tests - any change to a div, an id, or some autoid number that helps identify widgets breaks any number of tests - it just seems to be very brittle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;so have you written selenium (or other similar) tests, and how do you deal with the brittle nature of the tests (or how do you stop them being brittle), and what sort of tests do you use selenium for?&lt;/p&gt;&#xA;" OwnerUserId="4458" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-14T17:18:58.490" LastActivityDate="2011-02-20T18:54:03.343" Title="How can you write tests for Selenium (or similar) which don't fail because of minor or cosmetic changes?" Tags="&lt;testing&gt;&lt;selenium&gt;" AnswerCount="5" CommentCount="7" FavoriteCount="1" />
  <row Id="18896" PostTypeId="2" ParentId="11085" CreationDate="2010-11-14T10:29:22.103" Score="1" ViewCount="" Body="&lt;p&gt;I read books (not the Programming-guide for the next language in that, but fiction), I make a walk, I play on the Wii, DS or PC. If a good movie plays at the moment I go to cinema.&lt;/p&gt;&#xA;" OwnerUserId="7654" LastActivityDate="2010-11-14T10:29:22.103" />
  <row Id="18897" PostTypeId="2" ParentId="8968" CreationDate="2010-11-14T10:34:56.760" Score="2" ViewCount="" Body="&lt;p&gt;I was eleven or twelve (doesn't remember exactly) when I learned programming from radio (yes, there was a weekly feature about learning basic). My father send me then to some programming-circle outside school. That all worked well for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But here is the point: it worked well for me at that age. Every human is different, so are your childs. Try to interest them in programming with some cool demonstrations, and if they are interested start with some basics. If the interest stays, then teach more. If not, your child may be more interested in other things (maybe it want to learn piano). Don't force it to learn programming.&lt;/p&gt;&#xA;" OwnerUserId="7654" LastActivityDate="2010-11-14T10:34:56.760" CommunityOwnedDate="2011-03-04T21:09:34.713" />
  <row Id="18898" PostTypeId="2" ParentId="18895" CreationDate="2010-11-14T10:39:08.997" Score="1" ViewCount="" Body="&lt;p&gt;Testing ensures that code behaves as expected.  If your tests break on a regular basis, then the tests are either not testing the right thing or the developers do not care about the tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I think that if the presence of a &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; tag breaks a test then the test is needlessly strictly dependent on the surrounding tags, and a more lenient approach should be taken.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-14T10:39:08.997" />
  <row Id="18899" PostTypeId="1" AcceptedAnswerId="18909" CreationDate="2010-11-14T11:19:56.200" Score="10" ViewCount="233" Body="&lt;p&gt;I have many project ideas and unfortunately all required a team of at least 3-5 developers. I have too many times started a project by myself without reaching the end. The point is to involve people in the project with the hope of giving them a share if project succeed. I know that the last point however is the hardest and most complicated one. I’m hoping to get some answers that point me in the right direct.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Where do I find people that may be interested in the idea?&lt;/li&gt;&#xA;&lt;li&gt;How do I convince people in my network to put time in new ideas?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Regarding &quot;projects&quot; I'm referring to projects I have initiated during my career as developer. Of course it wouldn’t be serious of me to lunch several simulant projects and complain about not to be able to deliver them to the end.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-11-14T14:47:40.350" LastActivityDate="2010-11-14T15:05:44.800" Title="How to get people involved in your project?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;employment&gt;&lt;startups&gt;" AnswerCount="4" FavoriteCount="3" />
  <row Id="18900" PostTypeId="2" ParentId="18899" CreationDate="2010-11-14T11:28:11.857" Score="2" ViewCount="" Body="&lt;p&gt;It must be beneficial to themselves for anybody to be interested in your ideas at all. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't have anything immediately usable to those you want to assist you, the benefits are usually in form of money.  &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-14T11:28:11.857" CommentCount="2" />
  <row Id="18901" PostTypeId="2" ParentId="18895" CreationDate="2010-11-14T11:38:25.977" Score="4" ViewCount="" Body="&lt;p&gt;The most important thing when creating tests like this once you get past a trivial number is the idea of symmetric change - a small change in the code should result in a small change in the test suite.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, let's say you collect someone's name with two text boxes in 100 tests. If you write those tests niavely (or maybe are using record-playback) then you will have 100 tests to change. If instead you abstract out an 'enter name' step and use that in your tests instead of directly using selenium then you only have 1 place to make your change. It'll depend on your context how many layers of abstraction you use - but using abstraction will go a long way to making your tests maintainable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A second important thing is to make sure your selectors are based on the thing which is most important and least likely to change. Sometimes this will be an id or a class or it could be the text in or surrounding an element. Always prefer the simplest selector (e.g. an id) but sometimes to achieve this you will have to use something like xpath.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Gojko Adzic has lots of great advice on his blog when it comes to this sort of testing - check out his &lt;a href=&quot;http://gojko.net/2010/07/29/the-sine-of-death-by-ui-test-automation/&quot; rel=&quot;nofollow&quot;&gt;Sine of Death&lt;/a&gt; and &lt;a href=&quot;http://gojko.net/2010/04/13/how-to-implement-ui-testing-without-shooting-yourself-in-the-foot-2/&quot; rel=&quot;nofollow&quot;&gt;how to avoid it&lt;/a&gt; in particular.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastEditorUserId="1362" LastEditorDisplayName="" LastEditDate="2010-11-14T11:48:07.143" LastActivityDate="2010-11-14T11:48:07.143" CommentCount="2" />
  <row Id="18902" PostTypeId="2" ParentId="8968" CreationDate="2010-11-14T11:39:18.663" Score="1" ViewCount="" Body="&lt;p&gt;I begun programming at 10. My stepfather was responsible of maintaining the computers at the school, and he taught me and a couple other kids my age how to do simple programs in Basic. Basic is mind-numbing... but at least we got the basics of logic (if, loop, etc...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing simple programs is easy, and highly rewarding, somewhat similar to puzzle solving. I would suggest simply exposing the kid to programming, and see if it takes, or not. If he's not interested, well, maybe later :)&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2010-11-14T11:39:18.663" CommunityOwnedDate="2011-03-04T21:09:34.713" />
  <row Id="18903" PostTypeId="2" ParentId="18886" CreationDate="2010-11-14T12:39:06.057" Score="8" ViewCount="" Body="&lt;p&gt;Programmers rarely &quot;do computer science&quot;.  They mostly &lt;em&gt;use&lt;/em&gt; results of &quot;software engineering&quot;, which is an engineering discipline, obviously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that, Computer Science is Applied Mathematics.  If you compare CS with something indubitably belonging to applied maths, you'll notice a lot of resemblance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Computer scientists design and study ways of computation (algorithms), taking most of theory from Mathematics (logic, graph theory, combinatorics, etc)—and contributing to it at the same time.  Just like the rest of applied mathematics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They evaluate properties of these models and algorithms theoretically, and carry on modeling experiments (write test programs).  Like applied mathematicians simulate flow of liquid in tubes on clusters, computer scientists use computers to experiment with implementations of their algorithms.  The results of these experiments go directly into production: either to an oil refinery or to a software for stock analytics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the university I finished there isn't even a special department for computer science: among other, non-computer domains, computer science chair is a part of Department of Applied Maths.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-11-14T12:39:06.057" CommentCount="4" />
  <row Id="18904" PostTypeId="2" ParentId="18886" CreationDate="2010-11-14T12:53:40.847" Score="2" ViewCount="" Body="&lt;p&gt;Computer Science is a term which these days cover many, many things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The master craftsmen doing work for others based on their experiences with their tools (and having apprentices etc).&lt;/li&gt;&#xA;&lt;li&gt;The tool smiths inventing and creating new tools for the craftsmen &lt;/li&gt;&#xA;&lt;li&gt;The researchers developing new alloys and other materials - like plastic - for the tool smiths. &lt;/li&gt;&#xA;&lt;li&gt;The theoretical scientists figuring out how stuff works so the alloymakers know how &lt;em&gt;their&lt;/em&gt; tools work.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Note how all the above have distinct naming instead of just &quot;computer scientists&quot;.  The difference is just that Computer Science is too new for naming to settle.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-14T12:53:40.847" />
  <row Id="18905" PostTypeId="2" ParentId="18868" CreationDate="2010-11-14T12:57:38.097" Score="3" ViewCount="" Body="&lt;p&gt;GWT is essentially a compiler to native code, much like Visual Studio compiles source to byte codes or machine language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This allows the programmer to abstract the differences in underlying architecture away, much like Visual Studio users not needing to worry about the differences in word length, the number of registers and exact conventions for calling the operating system when they code for 32-bit or 64-bit.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a good thing, as it allows you to move some of the maintainance burden over to others.  As this is Google you know they have more development resources than you have, so you are essentially bringing in extra manpower for free.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-14T12:57:38.097" CommentCount="1" />
  <row Id="18907" PostTypeId="2" ParentId="18868" CreationDate="2010-11-14T13:40:09.933" Score="0" ViewCount="" Body="&lt;h1&gt;I dislike it&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Everything you can do with it you can do cleaner without it. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-14T13:40:09.933" CommentCount="4" />
  <row Id="18908" PostTypeId="2" ParentId="18895" CreationDate="2010-11-14T13:45:32.510" Score="4" ViewCount="" Body="&lt;p&gt;The purpose of Selenium is to create &lt;strong&gt;UI-driven integration tests&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Integration tests verify that all components of your system work correctly when deployed together.  Integration tests are not a sufficient test strategy and complement other test strategies having a different focus, for example &lt;em&gt;unit-testing&lt;/em&gt; and &lt;em&gt;acceptance testing&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;UI-driven tests are inherently brittle, although Selenium and Watir are a step up from the early days of &lt;em&gt;record-and-playback&lt;/em&gt; tools.  There are several ways to deal with this problem - here's is a compilation of advice from some world-class experts:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Don't try to get all your test coverage from this type of tests&lt;/strong&gt;.  Robert C. Martin  &lt;a href=&quot;http://regulargeek.com/2009/06/12/how-much-testing-is-enough/&quot; rel=&quot;nofollow&quot;&gt;argues that your code coverage by integration tests should be about 20%&lt;/a&gt;.  It is simply impractical to test all paths of execution when the input is several application layers away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Get most of the test coverage from unit- and acceptance tests&lt;/strong&gt;.  Look for links to Gojko Adzic's articles in &lt;strong&gt;FinnNk&lt;/strong&gt;'s answer.  Adzic argued repeatedly about testing business logic through acceptance tests and bypassing UI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;But some amount of UI-driven tests still needs to be written&lt;/strong&gt;.  This is where you need some practical advice in addition to &quot;don't test your business logic via UI.&quot;  I'd recommend &lt;a href=&quot;http://patrickwilsonwelsh.com/&quot; rel=&quot;nofollow&quot;&gt;Patrick Wilson-Welsh's blog&lt;/a&gt; as the starting point.&lt;/p&gt;&#xA;" OwnerUserId="464" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-11-15T00:12:59.217" LastActivityDate="2010-11-15T00:12:59.217" />
  <row Id="18909" PostTypeId="2" ParentId="18899" CreationDate="2010-11-14T13:52:23.807" Score="10" ViewCount="" Body="&lt;p&gt;Your influence is your last successful project, or the current one if successful. If you reverse your question, you'd be asking how to demonstrate that you are qualified to lead a successful project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The odd thing that you'll encounter when dealing with programmers is .. &lt;strong&gt;&lt;em&gt;the wisdom of the crowd is often accurate&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might try the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Publish a road map with small, attainable goals for your next release. Ensure that you leave some low hanging fruit that isn't boring. If it is a feature, let someone else completely take it over and implement it. It might be 'easy', but it needs to be a bit of work.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Finish &lt;strong&gt;&lt;em&gt;something&lt;/em&gt;&lt;/strong&gt;. If I'm going to contribute to a project, I need to see a clear end game and evidence that it can be influenced if I feel that you've gone mad. I can only base that decision on what you've done in the past.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't expect that you can establish the parameters of something 'awesome' and expect the world to make it happen. How often in the commit log of your repo did you actually implement something that you previously thought was difficult?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do proper facilities exist? Mailing lists, bug tracker, wiki .. even an ugly web site for the project? I can't count on all fingers and toes how many invitations I've received (mostly due to Ohloh) to contribute to the next 'great thing' that can't even be researched when I take the time to do it. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Regarding my prior statement, I can tell when you leave easy things undone. That screams to me that you don't feel like doing it and hope someone else will. That's fine for an established project, but you don't have one of those yet. Make sure the low hanging fruit isn't boring with the same vehemence that you'd offer a job as not being 'dead end'.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Have you documented anything? This is very important. I don't want to fail my way through using whatever it is that you wrote. Give me &lt;em&gt;something&lt;/em&gt; to start with.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't be a push over when it comes to patches. If you get bad patches, reject them as bad patches, gracefully. Tell people what you don't like about them as well as what you like, if anything. Don't jump just to get another brain. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've probably left out some points, but this answer is coming to licensing. Did you use an OSI approved license? Do I need to jump through hoops just to contribute? Are you alienating people that might otherwise contribute (hint, I hope you didn't try and write a license and didn't use something viral in a library). Give me a hint of idealism and I might wish you well. Give me a hint of practicality and I'll probably send you patches. I don't get paid to make speeches. If I wanted to be like RMS (who I really respect), I would have used a condom.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I find something cool and it looks like a level headed person is putting it together, I usually try to help out, if provided with facilities for me to do so. Otherwise, I usually just download it, say 'meh' and move on. That brings me to the last point:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;You need to be responsive, friendly, level headed and articulate&lt;/em&gt;&lt;/strong&gt;. I have met so many people that think they can mouth off like Linus and still garner a community. Rubbish.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Incidentally, did you use the tools that are available to draw interested people to your project?&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-14T15:05:44.800" LastActivityDate="2010-11-14T15:05:44.800" CommentCount="3" />
  <row Id="18910" PostTypeId="2" ParentId="18803" CreationDate="2010-11-14T14:05:08.973" Score="2" ViewCount="" Body="&lt;p&gt;I generally keep mine around 2 pages, anything more than that feels redundent.  I keep it short by dropping off the experience that's older than 8 or 9 years.&lt;/p&gt;&#xA;" OwnerUserId="7676" LastActivityDate="2010-11-14T14:05:08.973" CommunityOwnedDate="2011-01-25T17:00:53.097" />
  <row Id="18911" PostTypeId="2" ParentId="18771" CreationDate="2010-11-14T14:08:58.863" Score="2" ViewCount="" Body="&lt;p&gt;Things that are difficult to attain are very rewarding when you attain them.  Stick with it and find a way to drawn on the strength that attaining your degree will bring you.&lt;/p&gt;&#xA;" OwnerUserId="7676" LastActivityDate="2010-11-14T14:08:58.863" />
  <row Id="18912" PostTypeId="1" CreationDate="2010-11-14T14:20:55.170" Score="4" ViewCount="187" Body="&lt;p&gt;If one of your friend dropped of high-school and wanted to sharpen his programming &amp;amp; software engineering skills which book would you advise him to read &amp;amp; study to make up for the knowledge he could have gained from a top US Computer Sciences University.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All type of books are welcomed : Algorithms, Data Structures, Compiler Design, languages, design patterns, Machine Language, Maths (absolute minimum required for Sofware Engineers), Problem Solving, General Engineering book that can be of some help for SE ...&lt;/p&gt;&#xA;" OwnerUserId="7675" LastEditorUserId="6393" LastEditorDisplayName="" LastEditDate="2010-11-14T14:53:31.910" LastActivityDate="2010-11-14T15:04:04.410" Title="Book recommendations for a high school drop out" Tags="&lt;self-improvement&gt;&lt;books&gt;" AnswerCount="2" CommentCount="4" FavoriteCount="1" />
  <row Id="18913" PostTypeId="2" ParentId="18899" CreationDate="2010-11-14T14:38:19.653" Score="0" ViewCount="" Body="&lt;p&gt;You wrote that you have many projects, it would be personally difficult for me to invest my time with someone who try to launch multiple project at the same time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why not focus all your energy on what you think is the most viable project and that you've got a great deal of passion for, if you're passionate it will be easier for you to find business partner. Once you will have a successful project under your belt it's going to be easier to find new fresh recruits as you would have built credibility&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From day one make sure they know how much equity they will be getting when the business will take off... Many people won't invest their valuable time without a signed contract.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck with the project(s)&lt;/p&gt;&#xA;" OwnerUserId="7675" LastActivityDate="2010-11-14T14:38:19.653" CommentCount="1" />
  <row Id="18914" PostTypeId="2" ParentId="18912" CreationDate="2010-11-14T14:45:48.777" Score="1" ViewCount="" Body="&lt;p&gt;I did drop out of high school, well, sort of. In 10'th grade it was decided that the local community college would be a better place for me. All I did was raise some objections to how the business of schooling was being conducted, my parents who were amplified by irate public school administrators accomplished the rest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best advice that I can give someone in my circumstances (this was nearly 20 years ago) is, learn how to not take things personally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No matter your next endeavour, if you advance as is often demanded, you'll be greeted by people who are more experienced than you in social settings. They won't be sufficiently mature to avoid advancing themselves at the expense of a cast out (even at age 40), in many cases, and they know how to test confidence in odd ways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I had to do it all over again, I'd take a menial job, save my money and learn how to interact with people who were older than I am. It took the better part of ten years for me to learn how to do that, I could have done it in two if I had just let myself grow up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Opportunities depend on, and expand exponentially based on your level of tolerance and maturity. You don't &lt;strong&gt;&lt;em&gt;get&lt;/em&gt;&lt;/strong&gt; to introduce skill until you get past those things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What, exactly is the urgency? Live a little, study, then live better. Sorry for not recommending a book :)&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-14T14:56:27.553" LastActivityDate="2010-11-14T14:56:27.553" CommentCount="4" />
  <row Id="18915" PostTypeId="2" ParentId="18899" CreationDate="2010-11-14T14:47:24.710" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Have a start point to work from&lt;/strong&gt; : if you have ideas but no implementation, nobody will do anything for you. Build something that show the basics of what you want to do, publish it and then talk about it.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;If it's worth, people will care&lt;/strong&gt; : don't build something that only you will like. It's easy to know (using internet) if something will be useful to anybody else or simply will be interesting in a fun way.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Have deadlines / roadmap&lt;/strong&gt; : without a way to know what's the objectives of the developpement, people will fill your project is just a vaporeware.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Target your users and contributors&lt;/strong&gt; : the domain of your software tells you wich niche/audience will be interested in it. Start talking about it in communities that might be interested. Don't worry if nobody ever talk about it, they will if you&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Release early (1.) release often&lt;/strong&gt; : if you release often, you show that something interesting is being done. Interested people will care and comme join your boat if they know you're in the way to achieve something that interest them and that seems more possible each day. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-11-14T14:47:24.710" />
  <row Id="18916" PostTypeId="2" ParentId="18912" CreationDate="2010-11-14T15:04:04.410" Score="2" ViewCount="" Body="&lt;p&gt;First of all, please acknowledge that universities teach the hard stuff - i.e. math in disguise and strange things that may be as foreign to you as PHP would be if all you had ever done was to write SELECT statements  in SQL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally also acknowledge that it will be &lt;em&gt;harder&lt;/em&gt; for you since you don't have access to the mentors at the university.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said and done, you can learn quite a lot on your own, depending on what you think is fun, but you must remember that doing the exercises is very important to understanding and learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend you start with these resources:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/10816/godel-escher-bach-still-valid-today&quot;&gt;&quot;Gödel, Escher, Bach&quot; still valid today?&lt;/a&gt; - this book teaches you some of the very fundamentals of computer science in layman terms, while still being hard in places.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.paulgraham.com/avg.html&quot; rel=&quot;nofollow&quot;&gt;http://www.paulgraham.com/avg.html&lt;/a&gt; - a telling tale about how you beat the averages by using the best tools available.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.catb.org/~esr/faqs/hacker-howto.html&quot; rel=&quot;nofollow&quot;&gt;http://www.catb.org/~esr/faqs/hacker-howto.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;and MIT has their courses available online &lt;a href=&quot;http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/&quot; rel=&quot;nofollow&quot;&gt;http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Report back how it went.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-14T15:04:04.410" CommentCount="1" />
  <row Id="18919" PostTypeId="2" ParentId="3732" CreationDate="2010-11-14T15:26:13.433" Score="0" ViewCount="" Body="&lt;p&gt;Coding.  The everyday minute-by-minute actual work of writing and studying source code, dealing with syntax, looking up API details.   Where are the elves who are supposed to come in at midnight to do this for me?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course I do this anyway - it's the best means to the ends of creating images, doing cutting edge scientific research, etc.  But seem to be an odd person here, with others having a love of the actual coding work.   Many others in software development want to minimize design, planning, thinking about requirements, optimizing the system for the end users, testing and activities that aren't coding; I prefer those other activities since they help me avoid coding. (I think we all can agree that a lot of meetings are just useless, however.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps I'd make a good counterbalance or partner to the coders in some organization?&lt;/p&gt;&#xA;" OwnerUserId="4280" LastActivityDate="2010-11-14T15:26:13.433" CommunityOwnedDate="2010-11-14T15:26:13.433" CommentCount="1" />
  <row Id="18920" PostTypeId="1" AcceptedAnswerId="18942" CreationDate="2010-11-14T15:44:03.907" Score="11" ViewCount="336" Body="&lt;p&gt;As a programmer, how do you see your participation in communities like this one having a positive effect on your work?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a manager, why do you think it's a good thing to have developers from your team participating in online communities such as this one?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please also answer if you think it's &lt;strong&gt;not&lt;/strong&gt; a good thing.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="149" LastEditorDisplayName="" LastEditDate="2010-11-14T16:15:22.540" LastActivityDate="2010-11-14T18:44:33.580" Title="Why is having your developers participating in online communities like stackoverflow or this one an advantage for your company?" Tags="&lt;career&gt;&lt;learning&gt;&lt;knowledge&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="0" />
  <row Id="18921" PostTypeId="2" ParentId="3732" CreationDate="2010-11-14T16:06:04.460" Score="1" ViewCount="" Body="&lt;p&gt;You read all these books by experienced programmers, all telling you about the &quot;right&quot; way to program, and yet a lot of them disagree.  None of them cite any research... all their books read like a bible: &quot;Though shalt do this...&quot;, but the reason is always &quot;because I said so.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I actually appreciated Bob Martin's book &quot;Clean Code&quot; because he acknowledged that he was just handing over his techniques, but said there are other ways to do it, which could be equally correct.)&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-11-14T16:06:04.460" CommunityOwnedDate="2010-11-14T16:06:04.460" CommentCount="3" />
  <row Id="18922" PostTypeId="2" ParentId="18920" CreationDate="2010-11-14T16:07:41.470" Score="2" ViewCount="" Body="&lt;p&gt;It's a good forum to get new perspective to your questions and answers. What makes it unique is that inputs get reviewed and only relevant answers and questions get ranked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a company it may be a risk to have employs involved in such forum. There is always a risk that what an employ is asking is sensitive information from the company point of view.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is however many good aspects of having an employ active in a such a forum one is that you get an better employ as long as the overall quality and the content of the forum is useful for the company.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-11-14T16:46:32.810" LastActivityDate="2010-11-14T16:46:32.810" />
  <row Id="18923" PostTypeId="2" ParentId="18920" CreationDate="2010-11-14T16:08:33.803" Score="5" ViewCount="" Body="&lt;p&gt;I'm actually a team of one at the moment, and I rely on blogs, books, and sites like SO to get new ideas, and even bounce ideas off other programmers.  My boss seems to explicitly recognize the value in this.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-11-14T16:08:33.803" />
  <row Id="18924" PostTypeId="2" ParentId="18920" CreationDate="2010-11-14T16:13:27.627" Score="11" ViewCount="" Body="&lt;p&gt;On an individual level, it is about self-improvement.  Participating in sites like this, along with reading good blogs, articles, etc., on appropriate topics, is a part of a the continuous learning we all must do.  (Keep in mind that, for non-trivial activities, showing someone how to do something helps you improve your understanding.  I.e. if you want to really learn something, try teaching it to someone else.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Meanwhile, as a company, it can help your exposure if your employees are productive members of such communities.  There are plenty of risks involved with this, though.  The larger the company, the more likely it is that any one employee may make a poor contributor to the community.  There are plenty of other reasons that companies may be skittish about allowing employees to make their affiliation known.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not that I'm a manager, but this would be my manager's perspective if I were one:  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If my employees are constructive members of such communities, it shows their commitment to their craft and themselves.  I would also see it as a positive that they want to help others improve by answering their questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My concerns would be whether the time spent is constructive.  If they make their affiliation known, my concern would the possibility of bad publicity from their involvement.  Of course, there would also be the concern of information leaks.  (&quot;My company is working on such and such...&quot;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming they don't waste the entire day on sites such as this and they don't behave poorly, I would be all for it.  Though, I would likely prefer that they keep their company affiliation a secret.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-11-14T16:13:27.627" />
  <row Id="18925" PostTypeId="2" ParentId="9843" CreationDate="2010-11-14T16:21:16.033" Score="2" ViewCount="" Body="&lt;p&gt;I think you're specifically talking about the difference between the &lt;code&gt;ActiveRecord&lt;/code&gt; pattern and the &lt;code&gt;Repository&lt;/code&gt; pattern.  In the former, the entities know how to persist themselves, and in the latter, the repository knows about persistence.  I think the latter offers a better separation of concerns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a broader sense, if the entities act more like a data structure, then they shouldn't have behaviors, but if they have behaviors, then they shouldn't be used like a data structure.  Example:&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Data Structure:&lt;/h2&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class CustomerController&#xA;{&#xA;    public int MostRecentOrderLines(Customer customer)&#xA;    {&#xA;        var o = (from order in customer.Orders&#xA;                orderby order.OrderDate desc&#xA;                select order).First();&#xA;        return o.OrderLines.ToList().Count;&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;h2&gt;Non-Data Structure:&lt;/h2&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Customer&#xA;{&#xA;    public int MostRecentOrderLines()&#xA;    {&#xA;        // ... same ...&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In the first case, you can navigate the data structure tree of your model without a problem, from anywhere in your working code, and that's ok, because you're treating it like a data structure.  In the latter case, Customer is more like a service for a given customer, so you shouldn't call methods on the result.  All the things you want to know about the Customer should be available by calling a method on the Customer object.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So do you want your entities to be data structures or services?  For consistency, it seems better to stick with one.  In the former case, put your &quot;service&quot;-type logic somewhere else, not in the entity.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-11-14T16:21:16.033" />
  <row Id="18926" PostTypeId="2" ParentId="18920" CreationDate="2010-11-14T16:33:24.450" Score="1" ViewCount="" Body="&lt;p&gt;Well for one you get quality inputs and answers to your questions that can only help you improve yourself as a programmer as a whole and even develop new ideas from what you gathered from your own answers or other questions that were answered on the forums.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But there is always the risk that Amir Rezaei is talking about.&lt;/p&gt;&#xA;" OwnerUserId="7679" LastActivityDate="2010-11-14T16:33:24.450" />
  <row Id="18928" PostTypeId="2" ParentId="18920" CreationDate="2010-11-14T17:16:52.987" Score="1" ViewCount="" Body="&lt;p&gt;In addition to the things already mentioned, as a developer I've met new people through sites like this one, so it also turned into a bit of a networking opportunity.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-11-14T17:16:52.987" CommentCount="3" />
  <row Id="18930" PostTypeId="2" ParentId="18564" CreationDate="2010-11-14T17:53:00.863" Score="0" ViewCount="" Body="&lt;p&gt;8 bits video game programmer on computer from the 80's (ie: Commodore 64),&#xA;some pretty good game were in machine language, and their size were often smaller than a bitmap for a Windows icon ;-) Optimization at it's finest &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Geos (a WYSIWYG OS for Commdore 64) was very impressive for it's time&lt;/p&gt;&#xA;" OwnerUserId="7675" LastActivityDate="2010-11-14T17:53:00.863" />
  <row Id="18931" PostTypeId="1" CreationDate="2010-11-14T17:57:24.603" Score="2" ViewCount="123" Body="&lt;p&gt;is MCTS equivalent to BCS? and is there any certification equivalent to MCS&lt;/p&gt;&#xA;" OwnerUserId="7269" LastActivityDate="2011-03-08T07:41:11.607" Title="is there any certification equivalent to BCS?" Tags="&lt;career&gt;&lt;certification&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="18932" PostTypeId="2" ParentId="18891" CreationDate="2010-11-14T18:01:39.327" Score="0" ViewCount="" Body="&lt;p&gt;A few suggestions :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;An FTP/HTTP Scheduler were you could schedule upload and download of files from servers to a local machine&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A Twitter client&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;An IRC client&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7675" LastActivityDate="2010-11-14T18:01:39.327" />
  <row Id="18933" PostTypeId="2" ParentId="18920" CreationDate="2010-11-14T18:07:34.020" Score="1" ViewCount="" Body="&lt;p&gt;Being surrounded by a commmunity of smart people forces you to improve your skills on a daily basis, it's also motivating to exchange with people who are in this business not just for their monthly pay-check but because they love and had a passion for what they do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think such a momentum exists in many other profession, yes guys we're lucky :-)&lt;/p&gt;&#xA;" OwnerUserId="7675" LastActivityDate="2010-11-14T18:07:34.020" />
  <row Id="18934" PostTypeId="2" ParentId="18564" CreationDate="2010-11-14T18:09:18.370" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Anders Hejlsberg: the Turbo Pascal language and the compiler&lt;/strong&gt;. I still think after all these years TPC is a masterpiece of software engineering. It is the most compact and the fastest native-code (starting from certain versions also optimizing) compiler I've ever seen. In the Borland Pascal IDE there was no &quot;compilation&quot; essentially. You modified your code, hit F9 and watched your program running straight away, and that was on a 8MHz or 12MHz machine. TPC had later evolved into Delphi, then Hejlsberg joined Microsoft and co-authored C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd love to take a look at the sources of earlier TPC versions, but unfortunately despite numerous requests Borland never opened them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hejlsberg's compiler was inspired by this book: &lt;a href=&quot;http://en.wikipedia.org/wiki/Algorithms_%2B_Data_Structures_%3D_Programs&quot; rel=&quot;nofollow&quot;&gt;Niklaus Wirth, Algorithms + Data Structures = Programs&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5635" LastEditorUserId="5635" LastEditorDisplayName="" LastEditDate="2010-11-15T14:56:27.957" LastActivityDate="2010-11-15T14:56:27.957" CommentCount="1" />
  <row Id="18935" PostTypeId="2" ParentId="14650" CreationDate="2010-11-14T18:09:53.950" Score="1" ViewCount="" Body="&lt;p&gt;Ted Felix's Qbasic Tutorial encouraged me to learn to program with basic. From there I was so motivated that I went on to try to learn other languages. It is a very inspiring tutorial for beginning programming.&lt;/p&gt;&#xA;" OwnerUserId="7475" LastActivityDate="2010-11-14T18:09:53.950" CommunityOwnedDate="2010-11-14T18:09:53.950" />
  <row Id="18936" PostTypeId="2" ParentId="18564" CreationDate="2010-11-14T18:13:57.563" Score="3" ViewCount="" Body="&lt;p&gt;Walter Bright's Symantec/Zortec C++ compiler keeping up with compilers implemented by huge teams of programmers.  Later, his design and implementation of D.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-14T18:13:57.563" />
  <row Id="18937" PostTypeId="2" ParentId="18622" CreationDate="2010-11-14T18:19:02.887" Score="1" ViewCount="" Body="&lt;p&gt;A stack trace is probably the single most helpful thing you can get to help you identify what went wrong and where.  A nested stack trace like you can do in Java collecting local variables on the way up giving you context just makes it even more useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Much scaffolding is being done simply to ensure that the exception is brought through the jungle of networks, firewalls, email services to the desk of the responsible developer unscathered.  They are THAT important!&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-14T18:19:02.887" />
  <row Id="18938" PostTypeId="2" ParentId="18931" CreationDate="2010-11-14T18:19:15.710" Score="1" ViewCount="" Body="&lt;p&gt;Certifications and degrees are, by definition, different. Certifications are about technologies, degrees are about theory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the short answer is no.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-14T18:19:15.710" CommentCount="2" />
  <row Id="18939" PostTypeId="2" ParentId="18891" CreationDate="2010-11-14T18:22:57.873" Score="1" ViewCount="" Body="&lt;p&gt;A fun one I did in University was implementing time synchronization between computers. It's simple in scope, challenging, has some scholarly work to pull from (which was a necessity for my course) and is used in lots of different applications.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-14T18:22:57.873" CommentCount="1" />
  <row Id="18940" PostTypeId="2" ParentId="18622" CreationDate="2010-11-14T18:28:30.917" Score="0" ViewCount="" Body="&lt;p&gt;I love stacktraces (in Java! C#! Ruby!): they are clear and explain exactly &lt;strong&gt;where&lt;/strong&gt; the problem is. Where=what, give or take a few tries at poking around to figure out who the null object is :). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But now that I work in a real language -- Objective-C -- where nulls are okay yet most times the program crashes you just have NO idea where what happened happened [not a typo], even with the debugger (and stacktrace) to assist, I am, for the first time ever, kind of terrified. Terrified where there is no stacktrace, or it doesn't indicate a clear place in your code...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding stacktraces in languages where you ALWAYS get a stacktrace with an uncaught exception, there's nothing to be terrified of.  Over 10 years ago another dev told me, &quot;read the f**king stack trace!&quot; And since then, I have grown to love them, and started paying attention to them.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-11-14T18:28:30.917" />
  <row Id="18941" PostTypeId="2" ParentId="18920" CreationDate="2010-11-14T18:41:56.560" Score="4" ViewCount="" Body="&lt;p&gt;I think the biggest benefit that SO has given me as a student and a developer is exposure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Exposure to new languages I'd never heard of&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd never even heard of functional programming before I started visiting SO, and thus was totally unaware of Haskell and Lisp.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Exposure to new concepts I'd never considered&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again, functional programming. Test-driven development. Legal free programming books online that didn't suck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Exposure to good practices found in smart answers given by smart people&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing idiomatic code. Learning the strengths and weaknesses of languages. Learning what questions to ask before starting a project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of this exposure makes me a more effective and productive coder, which is good for the company I work for. Spending time on SO increases the number of mental tools in my toolbox, and that directly leads to faster and more maintainable code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only danger to this exposure is if it replaces coding practice. Spending time on SO is good if it leads me to write better code, but if I spend all my time on SO rather than coding, my knowledge is academic (and less valuable). I view my time on SO as similar to the time I spent reading programming-related books: it may not seem productive at the time, but without it I will only be aware of the fringes of the vast universe of software development, and I'll be writing hundreds of LOC where I really only need ten.&lt;/p&gt;&#xA;" OwnerUserId="7629" LastActivityDate="2010-11-14T18:41:56.560" />
  <row Id="18942" PostTypeId="2" ParentId="18920" CreationDate="2010-11-14T18:44:33.580" Score="6" ViewCount="" Body="&lt;p&gt;I have found StackOverflow to be a very valuable source for getting an expert answer to a difficult question, and can at any time point my boss to several questions where I can say &quot;Do you remember this and that very difficult problem - here, on the screen, is the correct solution to our problem&quot; and it allowed us to reach our goals in time and on budget.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means that StackOverflow in particular has value to us.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is therefore important to practice asking and answering to be able to ask in the best way possible when the time comes.  I am not sure if it is important to have a recognized name in terms of quality and speed of answers, but it might be.  It is nice, however, to be able to provide a full bounty on a hard problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally I find it personally satisfactory to be able to share my knowledge and opinions with peers in a public setting.  It is my guess that that is what makes the whole idea of Stackoverflow work.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-14T18:44:33.580" CommentCount="2" />
  <row Id="18943" PostTypeId="2" ParentId="14214" CreationDate="2010-11-14T18:54:58.550" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blogs.oracle.com/henrik/2010/11/oracle_and_apple_announce_openjdk_project_for_osx.html&quot; rel=&quot;nofollow&quot;&gt;Apple now donates their code to OpenJDK&lt;/a&gt;...&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-14T18:54:58.550" CommentCount="6" />
  <row Id="18944" PostTypeId="2" ParentId="18813" CreationDate="2010-11-14T19:10:40.963" Score="1" ViewCount="" Body="&lt;p&gt;I'd stay away from &quot;store credit&quot; or anything out of the store's inventory because you don't really know what the true value of it is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's say you do $1000 of work and accept $1000 of store credit. The goods you buy with that $1000 may have cost only $500 wholesale. Plus, you owe sales tax and income tax on that $1000 while the owner gets to write the whole thing off. You get the short end of the stick.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want tangible goods, get them to buy it at the same price you would pay or figure out what the actual wholesale price is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, trade like-for-like. If you do services for someone, have them to do a service for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually insist on cash. It keeps everyone honest.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2010-11-14T19:10:40.963" CommentCount="1" />
  <row Id="18945" PostTypeId="1" AcceptedAnswerId="18950" CreationDate="2010-11-14T19:19:28.293" Score="7" ViewCount="1002" Body="&lt;p&gt;Which is a better career Android vs iPhone app development. Android has the advantage of beingopen source while iPad/iPhone is one of the best product in the market and Apple is leading the mobile industry now. What would be pros and cons of each career and can iPhone developers move into Android easily?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please let me know if anyone has a experience in either of these areas&lt;/p&gt;&#xA;" OwnerUserId="7686" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2010-11-14T23:45:13.777" LastActivityDate="2010-12-23T14:03:17.327" Title="Android vs iPhone development" Tags="&lt;iphone&gt;&lt;mobile&gt;&lt;android&gt;" AnswerCount="6" FavoriteCount="3" />
  <row Id="18946" PostTypeId="1" CreationDate="2010-11-14T19:20:48.290" Score="5" ViewCount="146" Body="&lt;p&gt;Which technology / architecture would you recommend for a startup planning to write a social web app?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I see the following candidates, and would like your opinion, as I do think this is the right place to ask&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Google App Engine + GWT (free but no RDBMS yet)&lt;/li&gt;&#xA;&lt;li&gt;Jruby, Grails, ROR or other rapid convention over configuration frameworks &lt;/li&gt;&#xA;&lt;li&gt;PHP (what is good for Facebook is good for me?) + MYSQL &lt;/li&gt;&#xA;&lt;li&gt;Plain old Java (Spring/Seam + Hibernate / other JPA) + Jquery / Struts2 &lt;/li&gt;&#xA;&lt;li&gt;ASP.NET with its rapid turnaround and large 3rd party component market&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;My current choice is #1, but I was wondering if there is a community consensus on some of the items. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For client side I plan using when possible JQuery / Sancha(ExtJS) &#xA;Any recommendation on other client frameworks? &#xA;should I even consider Flex? Silverlight? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although this is not directly a programming question, I urge you to comment if you think this question should be revised, or moved to another location, or was answered recently.&lt;/p&gt;&#xA;" OwnerUserId="7685" LastActivityDate="2010-12-01T13:50:07.027" Title="Which technologies should be considered for a new social web application" Tags="&lt;best-practices&gt;&lt;recommendations&gt;&lt;design&gt;&lt;web-applications&gt;&lt;architecture&gt;" AnswerCount="3" CommentCount="7" FavoriteCount="2" />
  <row Id="18947" PostTypeId="2" ParentId="18852" CreationDate="2010-11-14T19:44:40.543" Score="3" ViewCount="" Body="&lt;p&gt;I wouldn't spend time on any book. There's really not much knowledge here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use Wikipedia, Google, and unix man to&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Understand what &lt;em&gt;make&lt;/em&gt; is (file stamp driven dependency aware synthesizer of whatever). Use GNU Make manual as a reference as you go. The important flags of GNU Make to be aware of are '-p', '-n', and '-d'&lt;/li&gt;&#xA;&lt;li&gt;Read about gcc/g++ flags for compiling/linking shared/static debug/optimized 32/64-bit modes. Read what LD_LIBRARY_PATH, LD_PRELOAD, position independent code, and rpath are.&lt;/li&gt;&#xA;&lt;li&gt;Learn what &lt;em&gt;nm&lt;/em&gt;, &lt;em&gt;c++filt&lt;/em&gt;, &lt;em&gt;strings&lt;/em&gt;, and &lt;em&gt;ldd&lt;/em&gt; are. You will need to use them to debug build problems.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;This is more or less it.&lt;/p&gt;&#xA;" OwnerUserId="4676" LastEditorUserId="4676" LastEditorDisplayName="" LastEditDate="2010-11-14T19:49:41.663" LastActivityDate="2010-11-14T19:49:41.663" />
  <row Id="18948" PostTypeId="2" ParentId="14650" CreationDate="2010-11-14T19:48:36.077" Score="1" ViewCount="" Body="&lt;p&gt;The book programmers at work : &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1556152116&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Programmers-Work-Interviews-Computer-Industry/dp/1556152116&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A great book which feature interviews of world class programmers of the 80's&lt;/p&gt;&#xA;" OwnerUserId="7675" LastActivityDate="2010-11-14T19:48:36.077" CommunityOwnedDate="2010-11-14T19:48:36.077" />
  <row Id="18949" PostTypeId="2" ParentId="18813" CreationDate="2010-11-14T20:05:50.967" Score="1" ViewCount="" Body="&lt;p&gt;Factors to consider:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Store mark ups are considerable - generally at least 50%, sometimes 100%.  Essentially paying in store credit could represent a discount of 50% for him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Store credit is only worth something to you if there are things in that store you would genuinely spend money on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) The deal has to be good for both of you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally I'd be looking for 3:2 IF the store sold things I wanted / needed. If it didn't then it would be cash only.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-14T20:05:50.967" />
  <row Id="18950" PostTypeId="2" ParentId="18945" CreationDate="2010-11-14T20:08:02.270" Score="6" ViewCount="" Body="&lt;p&gt;IMHO you don't have to choose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Invest in both.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A company will want to have his app on both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also please consider Windows Phone 7.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been following the developments of &lt;strong&gt;mono&lt;/strong&gt; that will help share code between the three plaforms.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-12T17:33:15.133" LastActivityDate="2010-12-12T17:33:15.133" CommentCount="6" />
  <row Id="18951" PostTypeId="2" ParentId="18946" CreationDate="2010-11-14T20:15:58.547" Score="9" ViewCount="" Body="&lt;p&gt;Use the one that you have experience with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's no point IMHO to waste time learning new set of technologies if you're already comfortable with one.&lt;/p&gt;&#xA;" OwnerUserId="5564" LastActivityDate="2010-11-14T20:15:58.547" CommentCount="6" />
  <row Id="18952" PostTypeId="1" AcceptedAnswerId="18960" CreationDate="2010-11-14T20:26:39.943" Score="2" ViewCount="109" Body="&lt;p&gt;Are there any arguments out there against using the keyword substitution (i.e. replacing &lt;code&gt;$Revision$&lt;/code&gt; with &lt;code&gt;$Revision: 5$&lt;/code&gt;) feature in many version control systems?  Are there any overall bad practices that using the feature encourages?  Are the any pervasive and hard-to-solve problems that it causes when you do use it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here an argument against using it:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://mercurial.selenic.com/wiki/KeywordPlan#Why_You_Don.27t_Need_It&quot; rel=&quot;nofollow&quot;&gt;Keyword Substition: Why You Don't Need It&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It's succinct, and I think the argument about the problems it causes for binary files is cogent, but I don't find it compelling.&lt;/p&gt;&#xA;" OwnerUserId="7684" LastActivityDate="2010-11-16T02:00:04.740" Title="What arguments exist against ever using the keyword substitution feature in many version control systems?" Tags="&lt;design&gt;&lt;version-control&gt;" AnswerCount="3" />
  <row Id="18953" PostTypeId="1" AcceptedAnswerId="18965" CreationDate="2010-11-14T20:27:58.430" Score="5" ViewCount="334" Body="&lt;p&gt;I am new to Mac. If I want to start a iPhone development, what is the basic hardware I require? Would Mac Mini be good enough?&lt;/p&gt;&#xA;" OwnerUserId="6750" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-11-14T20:28:47.353" LastActivityDate="2011-03-17T20:02:16.167" Title="Basic hardware for iPhone development" Tags="&lt;iphone&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="18954" PostTypeId="2" ParentId="9843" CreationDate="2010-11-14T20:29:02.377" Score="1" ViewCount="" Body="&lt;p&gt;The answer is really going to depend on what your architecture/design is - a DDD architecture with a domain model is going to be very different from a CRUD data-centric model when it comes to object design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general though, bear in mind that in object-orientated-design you are trying to encapsulate state and expose behaviour. This means that you will usually try to get the state associated with a behaviour as close as possible to that behaviour - when you fail to do this you are forced to expose state in one form or another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a domain model you want to separate out the business model from infrastructure concerns - so you absolutely want to avoid methods like '.Save'. I don't remember the last time I &quot;saved&quot; a customer in real life!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a CRUD application then the data is the first class citizen so a &quot;.Save&quot; is entirely appropriate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most sizable real-world applications will have a mixture of these paradigms - domain model where there are rapidly changing or complex business rules, DTOs for transferring data across boundaries, CRUD (or something between CRUD and a domain model, such as activerecord) elsewhere. There is no one-size fits all rule.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-14T20:29:02.377" />
  <row Id="18955" PostTypeId="2" ParentId="18120" CreationDate="2010-11-14T20:31:01.220" Score="2" ViewCount="" Body="&lt;p&gt;Bad decision: not following a dream&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the late 1980s, I was living in North Carolina.  The company I was working had just been bought and was being moved to Atlanta.  My wife and I decided to move to Seattle instead in hopes I could work for Microsoft.  We loaded up the truck and hit the road.  Unfortunately, on our way through Tennessee, we stopped to visit some friends I knew from my childhood and got talked into staying in Memphis.  So, instead of reaping the rewards of being part of the growth of Microsoft, I got to watch it from afar and, every once in a while, wonder what if.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good decision: sticking with what I enjoy doing&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have always enjoyed developing software, even doing it for fun, zoning out in the code and losing track of time.  This has made it both easy and enjoyable to learn new technologies and ways of working with code.  Combined with a good work ethic and a willingness to adapt, I have usually been able to keep working even if circumstances change.  Working on new technical challenges has been good for this, encouraging mental growth and the accompanying further learning and adapting.  This should be a continual process.&lt;/p&gt;&#xA;" OwnerUserId="6978" LastActivityDate="2010-11-14T20:31:01.220" CommunityOwnedDate="2010-11-14T20:31:01.220" />
  <row Id="18956" PostTypeId="2" ParentId="18952" CreationDate="2010-11-14T20:31:05.870" Score="2" ViewCount="" Body="&lt;p&gt;Any revision system that cannot tell text files from binary is completely broken.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think though that they are right that you don't really need it; you often need a way to get your revision # to show-up automatically and they provide an example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think most other usages of this feature are superfluous but not harmful. &lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-14T20:31:05.870" CommentCount="1" />
  <row Id="18958" PostTypeId="2" ParentId="18953" CreationDate="2010-11-14T20:32:35.370" Score="2" ViewCount="" Body="&lt;p&gt;You need a Mac.  Almost any Intel based Mac will do, if it has memory enough, where &quot;enough&quot; depends on how willing you are to wait.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least 2 Gb RAM and better if more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will need to download the appropriate iPhone SDK from Apple to write code.  For any non-trivial application you will need a physical device too, as the emulator is not 100% accurate.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-14T20:32:35.370" />
  <row Id="18959" PostTypeId="1" CreationDate="2010-11-14T20:41:46.570" Score="12" ViewCount="189" Body="&lt;p&gt;What proportion of programming is done for embedded systems? More generally, please share any interesting statistics on programmers by domain, e.g. real-time/business/UI/gaming/…&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How you define the domain boundaries (e.g. what is an embedded system) is up to you, but please give a few words to explain your definition.&lt;/p&gt;&#xA;" OwnerUserId="1458" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-14T23:15:22.437" LastActivityDate="2010-11-14T23:53:30.650" Title="What proportion of programming is done for embedded systems?" Tags="&lt;statistics&gt;&lt;specialization&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="3" />
  <row Id="18960" PostTypeId="2" ParentId="18952" CreationDate="2010-11-14T20:43:24.643" Score="5" ViewCount="" Body="&lt;p&gt;This is an artifact from the old days, where files were versioned on an individual basis (think RCS, SCCS, and CVS) where modern version control systems think in atomic commits and not individual files.  This means that in the old days it made sense to keep track on a file level basis and the best way to do this was in a way that could make its way to binary code.  Hence expandable keywords which could go in strings that could go in the object file.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These days, you have a single commit identifier which only need to be registered once for any binary and which can be explicitly scripted to go in a file instead of the versioning system expanding keywords.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is better, simply because it means that the sources only change when &lt;em&gt;YOU&lt;/em&gt; edit them.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-14T20:43:24.643" CommentCount="1" />
  <row Id="18961" PostTypeId="2" ParentId="18120" CreationDate="2010-11-14T20:55:44.940" Score="1" ViewCount="" Body="&lt;p&gt;Changing my occupation as merchandizer for a touring punk band to being a software developer at age 25. I miss the fun, though. I never woke up in a destroyed hotel room since, staring at the face of a police officer.&lt;/p&gt;&#xA;" OwnerUserId="7243" LastActivityDate="2010-11-14T20:55:44.940" CommunityOwnedDate="2010-11-14T20:55:44.940" />
  <row Id="18962" PostTypeId="2" ParentId="4384" CreationDate="2010-11-14T20:58:26.500" Score="2" ViewCount="" Body="&lt;p&gt;I don't like tootin' my own horn, but since this is specifically asked, I will answer.  There are a few highlights I look fondly on.  There are more, but these come most easily to mind.  Here they are in the order they occurred.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) developing mouse-clickable UI and grid controls in DOS Foxpro, complete with pushable buttons and scrollbars.  This was a combination of mouse and key event handling in the FoxPro C API, a FoxPro wrapper, and pre-processing the FoxPro code to replace array position names with numbers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) getting published in Dr. Dobb's Journal.  Just as the technology was becoming more widespread, I wrote an article on C++ template handling in 1992 that was published in March 1993.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) developing automated porting of binary/XDR socket messaging code from Linux C++ message class code to equivalent Windows C# message class code.  Originally, the messaging existed only on the Linux side.  But, more windows components and apps were being added for easier office desktop usage and control.  The first step was a port to a C++ windows DLL with XML translation to/from C#.  An XML translator was extended to include type and size data and put back in the Linux C++ code.  A sample of all messages and related enums is dumped to XML.  A C# generator parses the XML and generates the matching C# code.  Now, this process is automated.  The Linux build includes XML output, which is input to the C# build.  The generator is a dependent project and has a post-build step of generating the C# messaging code for that project, which is built as part of the same solution.  So, just by building both projects, binary/XDR socket messaging code is synchronized between Linux C++ and Windows C# code.&lt;/p&gt;&#xA;" OwnerUserId="6978" LastActivityDate="2010-11-14T20:58:26.500" />
  <row Id="18963" PostTypeId="2" ParentId="18895" CreationDate="2010-11-14T21:06:19.377" Score="2" ViewCount="" Body="&lt;p&gt;Patrick Wilson Welsh has written a bit about this.  I can't begin to re-create his work here, but check it out:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://patrickwilsonwelsh.com/?p=332&quot; rel=&quot;nofollow&quot;&gt;http://patrickwilsonwelsh.com/?p=332&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-11-14T21:06:19.377" />
  <row Id="18964" PostTypeId="2" ParentId="4384" CreationDate="2010-11-14T21:52:52.120" Score="1" ViewCount="" Body="&lt;p&gt;In 1997 I was working at a company in Gothenburg supplying VR equipment and services. In a storage room had we setup up a so called CAVE. A CAVE is made of a number of walls where 3D images are shown with back projection. In this setup we used 3 walls and the floor. The 3D images where draw in genlocked in 90 Hz which required the images being generated by very expensive hardware. In this case it was a Silicon Graphics system together 4 high-end Barco projectors. I think the system setup would have costed something like $1,500,000. The images are calculated in realtime for a single user who can walk around inside this cube. The user would wear 3D glasses, trackers on the glasses and the hands and also some pinch gloves. My colleagues would mostly walk around some 3D models, viewing them from different angles etc. But at the time I had made my mind up to quit my job there for different reasons. As a spare time project I experimented with a couple of project, and I helped out making the environment a bit more living by adding animations. I started my computer-curiousity-career in the early 1980'th and I'am still very fond of the early Z80 'cheap' home computers. So when I found an ZX-81 emulator I managed to convert it to a Jupiter ACE emulator. The Jupiter ACE was released in 1983 and costed $150 at the time. It was a bit of an outsider computer as it had Forth when all other home computers had BASIC build in. I really regret that I didn't bought one then. They did also go bankrupt a few years later. But, back to the CAVE in Gothenburg. I managed with not to much effort get the emulator of the Jupiter ACE running on the Silicon Graphics system. I also got the emulated screen image to be usable as a texture. Idea...put a 3D model of the Jupiter ACE in the CAVE, put the generated screen image as a texture on 3D model of a TV. As the trackers didn't have the necessary accuracy I ended up making the 3D model of the Jupiter ACE 5 times bigger to distinctively manage sensing key pressings on the model with the pinch gloves. So, when it all was working I could stand in the system setup of $1,500,000 rotating and manipulating a model of an ancient computer that costed $150. On a TV model I could see the working emulator output and on the Jupiter ACE model I could enter Forth commands. The emulator could also read digitized tapes and I had found a file with the game Frogger. So, just enter 'load frogger' and then 'run' on the Jupiter ACE model, and frogger from early 1980'th was running on the TV model. I can't explain enough how happy I felt and when I showed this to my colleagues and some shock their heads I knew it was true heroic deed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A later conversion to Windows is available &lt;a href=&quot;http://hem.passagen.se/tiletech/vace3d.zip&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS&lt;br&gt;&#xA;I'm not sure this could be my &lt;em&gt;most&lt;/em&gt; heroic programming task I've done.&lt;br&gt;&#xA;In the CAVE I also created a realtime cloth that the user could wave around. It was a really amazing experience doing that in the CAVE and really feel the immersion of the system. &#xA;I've also written a 3D modeler that run on Palm, you know that old 68k machine without floating point math.&lt;br&gt;&#xA;DS&lt;/p&gt;&#xA;" OwnerUserId="7644" LastEditorUserId="7644" LastEditorDisplayName="" LastEditDate="2010-11-14T22:04:04.127" LastActivityDate="2010-11-14T22:04:04.127" />
  <row Id="18965" PostTypeId="2" ParentId="18953" CreationDate="2010-11-14T22:13:45.720" Score="6" ViewCount="" Body="&lt;p&gt;A Mac mini &lt;a href=&quot;http://www.guardian.co.uk/technology/gamesblog/2009/feb/10/gameculture-apple&quot; rel=&quot;nofollow&quot;&gt;will serve you just fine&lt;/a&gt;. I taught a course last semester that did iPod touch programming (another college had iPod touches available for educational use, so I figured programming them would be educational). The only thing I needed was to buy four Mac minis to put in the lab. The Macs didn't need to be advanced, just new.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One note: Prepare for some major headaches getting your first &quot;Hello, World!&quot; app over the wire and onto your iPhone. Doing so requires the proper public/private keys and certificates. I used a university license program, but you will probably need to spend the $100 on the single developer kit. The development tools themselves are free, and you can work on the simulator right away.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-14T22:13:45.720" CommentCount="2" />
  <row Id="18966" PostTypeId="2" ParentId="18959" CreationDate="2010-11-14T23:53:30.650" Score="3" ViewCount="" Body="&lt;p&gt;Well, there are many orders of magnitude more embedded processors than general purpose computers.&#xA;About 250 million PC produced per year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many billions of embedded processors produced per year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Global embedded software market is worth about 3.4 billion dollars per year.&#xA;&lt;a href=&quot;http://www.slideshare.net/pboulet/socdesign&quot; rel=&quot;nofollow&quot;&gt;http://www.slideshare.net/pboulet/socdesign&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Embedded systems (with hardware added) worth 88 billion dollars per year in 2009.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Now, PC's are worth more than 350 each, so there's more money in PC hardware.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lots of embedded processors are doing &quot;the same thing&quot;, but embedded is hard, costly and cost constrained, so there is a lot of pressure in the &quot;consumer embedded&quot; space to reuse code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The mainstream software industry is worth about 300 billion per annum.&#xA;(from wikipedia.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The bottom line About 100 times less money in embedded than &quot;normal&quot; software.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But programmers for embedded are often Electronic engineers, getting paid less; or in Asia, where they are paid 5x less than in, the USA for example.&#xA;Electronic engineers in Australia often get paid 20% less then software engineers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;So probably about 1/30th as much programming work is embedded.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-11-14T23:53:30.650" CommentCount="4" />
  <row Id="18967" PostTypeId="2" ParentId="18945" CreationDate="2010-11-15T00:46:29.157" Score="0" ViewCount="" Body="&lt;p&gt;There are enough &lt;a href=&quot;http://en.wikipedia.org/wiki/Multiple_phone_web_based_application_framework&quot; rel=&quot;nofollow&quot;&gt;mobile development frameworks&lt;/a&gt; that can target Android, iPhone, &lt;em&gt;and several others&lt;/em&gt; with a single codebase, that you not only don't have to choose, you don't need to learn different languages either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, &lt;a href=&quot;http://www.phonegap.com/about&quot; rel=&quot;nofollow&quot;&gt;PhoneGap&lt;/a&gt; lets you write HTML+CSS+JS and still use the device's features (accelerometer/etc) - which is much simpler than having to learn Objective-C and Android's Java/XML dialects and whatever other languages the others use.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-11-15T00:46:29.157" CommentCount="1" />
  <row Id="18968" PostTypeId="2" ParentId="18945" CreationDate="2010-11-15T01:34:45.247" Score="0" ViewCount="" Body="&lt;p&gt;Advantages of Apple:  App sales are likely to be significantly better currently, no fussing over hardware differences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Advantages of Android:  No need for a Mac, Xcode, and Objective C, use your (likely) familiar Java.  It's quite possible that Android phones will eventually be more popular than iPhones.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-11-15T01:34:45.247" CommentCount="3" />
  <row Id="18972" PostTypeId="2" ParentId="18751" CreationDate="2010-11-15T01:53:20.407" Score="5" ViewCount="" Body="&lt;p&gt;Use a wiki with logins.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-11-15T01:53:20.407" CommentCount="14" />
  <row Id="18975" PostTypeId="1" CreationDate="2010-11-15T03:10:01.233" Score="3" ViewCount="85" Body="&lt;p&gt;Even with detailed specifications for exchanging data between computer programs, chances are that data generated by older versions of programs do not conform 100% to the specification, or that they use old obscure features which few people know how to implement them. As a result, companies have to keep a library of &quot;odd specimens&quot; for testing their software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In good software design, these quirks can be confined into a small layer of libraries called &quot;Abstraction Layer&quot;. However, most abstraction layers cut off too many functionalities (in order to prevent the higher level software from touching the unstable parts of the lower level software). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes it is not possible to completely hide away the unstable parts. What are the strategies for coping with such necessary workarounds?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;((Please pardon my poor language skills.)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-11-15T07:38:42.483" Title="How to deal with necessary workarounds in software?" Tags="&lt;workaround&gt;" AnswerCount="4" />
  <row Id="18977" PostTypeId="2" ParentId="18975" CreationDate="2010-11-15T03:21:21.207" Score="1" ViewCount="" Body="&lt;p&gt;Good documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code comments go a long way towards telling the next developer why the hack was placed there, and why it needs to stay.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hopefully the reason is sound. At some point, if enough technical debt is incurred, a refactoring should be considered.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-15T03:21:21.207" />
  <row Id="18979" PostTypeId="1" AcceptedAnswerId="18983" CreationDate="2010-11-15T03:44:09.927" Score="13" ViewCount="299" Body="&lt;p&gt;As a freelance programmer:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What is your process for gathering requirements from a client?&lt;/li&gt;&#xA;&lt;li&gt;How much time does the requirement gathering process take you? I know this is not fixed, and there are variables such as how prompt the client is in responding and such. In general, accounting for the delay in responses and such, how long does it take to get to the final requirement?&lt;/li&gt;&#xA;&lt;li&gt;Which communication channel (email, phone, instant messenger, other) do you use to gather these requirements?&lt;/li&gt;&#xA;&lt;li&gt;Do you charge for the time spent in requirements gathering?&lt;/li&gt;&#xA;&lt;li&gt;Are there any deliverables in your requirements gathering process? If so what are they?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6610" LastActivityDate="2011-01-28T15:53:09.220" Title="Freelancers: How Do You Go About Gathering Requirements?" Tags="&lt;productivity&gt;&lt;development-process&gt;&lt;business&gt;&lt;freelancing&gt;&lt;requirements&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="8" />
  <row Id="18982" PostTypeId="2" ParentId="18751" CreationDate="2010-11-15T04:13:09.697" Score="1" ViewCount="" Body="&lt;p&gt;This answer can get very complicated very quickly. In particular, it depends on what level of the design you are working on. If you are focused only on the requirements, then Google docs and other collaborative document tools will be the best choice (since it gives you transparency between your team members and potentially stakeholders - also Google docs has a version control system built into it). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However if you are looking at mid-level design and subsystem design, then actual diagramming tools will be better. I have not found anything like Google docs that works well with this (and Google's drawing tool falls short also). Personally I would use a wiki or Google docs to show the exported diagram image and use Dia (an opensource diagramming tool) with a version control system (mercurial maybe) to create my actual diagrams.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A wiki might be a good place to organize everything and provide links to the other tools and locations as needed. I experimented with this on a class project earlier this year. I personally thought it ended well, but I did not have complete buy in from my teammates, so it ended with me using the wiki primarily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One final note of caution: try not to let your tools dictate what you do, but rather decide what you (and the team) want to do and find tools that will enable you.&lt;/p&gt;&#xA;" OwnerUserId="7305" LastActivityDate="2010-11-15T04:13:09.697" />
  <row Id="18983" PostTypeId="2" ParentId="18979" CreationDate="2010-11-15T04:19:45.947" Score="14" ViewCount="" Body="&lt;p&gt;1.What is your process for gathering requirements from a client?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;interview, whiteboard, conference call, shop tour, worker observation, staff interviews, meetings, etc. - whatever is appropriate, whatever it takes to understand the &lt;em&gt;real&lt;/em&gt; problem, balanced with whatever they're amenable to and will make time for&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2.How much time does the requirement gathering process take you? I know this is not fixed, and there are variables such as how prompt the client is in responding and such. In general, accounting for the delay in responses and such, how long does it take to get to the final requirement?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;obviously this depends on the size of the project. it's not unusual to spend 20 hours in requirements and modeling for a very small project (&amp;lt; 100 hours), because you have to understand the business context well enough to peel back the layers of the problems the customer is presenting in order to get to the real problem that you'll have to solve to make them happy&lt;/p&gt;&#xA;&#xA;&lt;p&gt;whether that 20 hours is two calendar days or six weeks depends on customer responsiveness and availability, and how much thinking you have to do in between session (for hard problems)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3.Which communication channel (email, phone, instant messenger, other) do you use to gather these requirements?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;all of them&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4.Do you charge for the time spent in requirements gathering?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Hell, yes!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to understand the client's business, comprehend and document their problems, and propose solutions &lt;em&gt;which they could then take to someone else to implement&lt;/em&gt;. This is the consulting part of the process, and consultants don't work for free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5.Are there any deliverables in your requirements gathering process? If so what are they?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Typically, a draft list of features, user stories, test-case descriptions, an abbreviated work-breakdown structure (with project estimates), a highlighted list of unclear/unknown areas/items for further discussion/investigation, and a list of things (info, resources, tools, access, etc.) that you will require from the client with target dates. All of this is packaged as a proposal with some background info on the business, the methods used to identify the problems, constraints and caveats about the solution, notes about the expected timelines and ROI, and a request for follow-up by a specific date.&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2011-01-28T15:53:09.220" LastActivityDate="2011-01-28T15:53:09.220" CommentCount="3" />
  <row Id="18984" PostTypeId="1" CreationDate="2010-11-15T04:28:15.627" Score="5" ViewCount="382" Body="&lt;p&gt;Firstly, I think this is the right place for this question. If not, let me know where it's better suited and I'll get it moved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On to my question...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was recently reading &lt;a href=&quot;http://www.joelonsoftware.com/articles/CollegeAdvice.html&quot; rel=&quot;nofollow&quot;&gt;this article&lt;/a&gt; on Joel Spolsky's blog and one thing particularly stuck out to me:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;... the biggest mistake you can make is to take any kind of job--summer, part time, or otherwise--that is not a programming job.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;As a Software Engineering student in England (I'm also English), studying my first year, I am wondering about the best way to find jobs that are programming related on a part-time basis while I'm at uni.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would be the best way to pitch taking me on to work part-time to potential employers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are employers likely to take on part-time staff who are still at the beginners' stage of experience and ability?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of experience, I have been building websites as a serious hobby for about 3 years and have taught myself PHP, MySQL, HTML and CSS, I also have some knowledge of procedural C++. Non-programming related, I've had a seven-year career in sales since I left college at 17.&lt;/p&gt;&#xA;" OwnerUserId="7695" LastActivityDate="2010-11-15T13:24:52.843" Title="Best way to find part-time programming work while at uni" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;education&gt;&lt;job-market&gt;&lt;part-time&gt;" AnswerCount="9" CommentCount="3" />
  <row Id="18985" PostTypeId="2" ParentId="18975" CreationDate="2010-11-15T04:29:00.650" Score="0" ViewCount="" Body="&lt;p&gt;Unit/integration tests can be used to identify those 'features' (if they &lt;em&gt;can't&lt;/em&gt; be removed). Likewise, the same kinds of tests can test the code that consumes the libraries in question to ensure that they satisfy the contract of &lt;em&gt;mis&lt;/em&gt;-behaviour.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-15T04:29:00.650" />
  <row Id="18988" PostTypeId="2" ParentId="18622" CreationDate="2010-11-15T05:01:17.673" Score="0" ViewCount="" Body="&lt;p&gt;The only thing that scares me are programs that don't behave as expected with no apparent clue as to why.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is usually the result of accidentally counting on undefined behavior that happens to work consistently &lt;em&gt;most&lt;/em&gt; of the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stack traces, segfaults, FPE's .. all easily analyzed and corrected. Operating on a dangling pointer with 2 - 3 bytes &lt;em&gt;most&lt;/em&gt; of the time? Darn hard to find. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-15T05:01:17.673" />
  <row Id="18989" PostTypeId="2" ParentId="35" CreationDate="2010-11-15T05:03:45.947" Score="9" ViewCount="" Body="&lt;p&gt;A woman asks her husband to go shopping:&lt;br&gt;&#xA;&quot;Dear, please go to the grocery store and buy some bread. Also, if they have eggs, buy 6.&quot;&lt;br&gt;&#xA;&quot;Ok, hon.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Twenty minutes later, the husband comes back carrying 6 loaves of bread.&lt;br&gt;&#xA;His wife is flabbergasted.&lt;br&gt;&#xA;&quot;Dear, why on earth did you buy 6 loaves of bread?&quot;&lt;br&gt;&#xA;&quot;They had eggs.&quot;&lt;/p&gt;&#xA;" LastActivityDate="2010-11-15T05:03:45.947" CommunityOwnedDate="2010-11-15T05:03:45.947" CommentCount="1" />
  <row Id="18990" PostTypeId="2" ParentId="18813" CreationDate="2010-11-15T05:14:02.780" Score="1" ViewCount="" Body="&lt;p&gt;If I could get a Nikon D7000 and a fast prime lens for doing a relatively simple project in my spare time, I'd definitely go for it. I've done a lot of bartering in the past and I've always been pleased with the result.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you have to do is be very clear on what you will deliver for the agreed trade. In my example, they would be happy adding products to their store while I am out happily shooting around with my new camera. Support is something they would have to pay for in cash, because it involves an indeterminate amount of time on my end. Bug fixes would be prompt and free, of course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've bartered for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Hardware (memory, monitors, drives, etc ..) in exchange for a shopping cart&lt;/li&gt;&#xA;&lt;li&gt;Office space in exchange for a cabling job&lt;/li&gt;&#xA;&lt;li&gt;Graphics in exchange for writing a custom PHP extension&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Just be clear that you will be providing top notch goods and services in exchange for top notch goods and services. In the case of the office, I required that the lease be in writing, and offered the other party a written warranty on the cabling job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your wife gets something from the store, and it breaks under warranty, they should be receptive to replacing it for her, even if it means additional cost for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If what you receive is (to you) equal or grater in value than what you provide, why not?&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-15T05:14:02.780" />
  <row Id="18991" PostTypeId="2" ParentId="18984" CreationDate="2010-11-15T05:15:13.040" Score="3" ViewCount="" Body="&lt;p&gt;You should check with your uni. A few potential schools I am looking into in the U.S. are partnered with some local companies and help students get started in the industry with some low level, part time jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that turns no results, I would ask around, professors, peers, whatever, someone is bound to have a lead for you. Best of luck!&lt;/p&gt;&#xA;" OwnerUserId="7682" LastActivityDate="2010-11-15T05:15:13.040" />
  <row Id="18992" PostTypeId="2" ParentId="18984" CreationDate="2010-11-15T05:41:50.547" Score="2" ViewCount="" Body="&lt;p&gt;One possibility is to do some work online through odesk.com or rentacoder.com.  The pay and experience isn't as good as an in-person job, but doing some programming work through one of these sites can get some money in your pocket and some practical experience that you can use on a resume.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-11-15T05:41:50.547" />
  <row Id="18993" PostTypeId="2" ParentId="18072" CreationDate="2010-11-15T05:47:06.747" Score="2" ViewCount="" Body="&lt;p&gt;I'm writing from the perspective of the U.S. Yes, there are bioinformatics positions in industry, it has become an essential position/group for any pharmaceutical development effort. It's also important for molecular diagnostics and the oncoming wave of whole genome sequencing companies. I'm not sure how the supply and demand for these positions is working out right now, on the commercial side, inside pharma particularly, R&amp;amp;D budgets have been tight and getting tighter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to have a higher salary range, and in particular, you want to move up the management ladder in any scientific org, a PhD may be a must-have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To get an idea of salaries, one source is here:&#xA;&lt;a href=&quot;http://www.genomeweb.com/8th-annual-salary-survey&quot; rel=&quot;nofollow&quot;&gt;http://www.genomeweb.com/8th-annual-salary-survey&lt;/a&gt;&#xA;It is possible you might need to register on the site to get access. Unfortunately, they are grouping scientists and programmers together.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise I suggest searching the web for &quot;bioinformatics salaries&quot;. Glassdoor is an interesting site for getting data on salaries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Re open source and commercial, yes, there are commercial organizations doing bioinformatics software. Some of that is US-based, some offshore (India, Russia in particular). A lot of the commercial software development is in companies that are making products where software is part of the solution, e.g., gene expression chip makers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One last comment - try to dig in a little bit to understand what it is that you like best about the field. There is a lot of space, from algorithms around 'omics analysis, to bio/lab data management, to modeling and systems biology. Depending on which of these you are most interested in would direct you toward a grad program and where you might go after school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&#xA;-- Alex&lt;/p&gt;&#xA;" OwnerUserId="7698" LastActivityDate="2010-11-15T05:47:06.747" />
  <row Id="18994" PostTypeId="2" ParentId="18984" CreationDate="2010-11-15T05:49:00.207" Score="1" ViewCount="" Body="&lt;p&gt;I did work in the UK and France, and brick &amp;amp; mortar established employers would rarely&#xA;hire a part time employees (mainly if he's still a student)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even on Internship, it's pretty much full time during X months.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However here are some suggestions :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;You could work on project/contract basis from home (check www.odesk.com, www.rentacoder.com, ...)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Become a contributor on an open source project (ie: Rails framework)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;University is also the place where you can caught the entrepreneurs bug, and start your own company with your very own product/services ... (From Iphone apps to SAAS)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Since you seems UK based you can always check wwww.jobserve.com for jobs,&#xA;in case there are offering on a part time basis&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Good luck with the study &amp;amp; part time job ;-)&lt;/p&gt;&#xA;" OwnerUserId="7675" LastActivityDate="2010-11-15T05:49:00.207" />
  <row Id="18995" PostTypeId="2" ParentId="18975" CreationDate="2010-11-15T05:50:08.990" Score="1" ViewCount="" Body="&lt;p&gt;If data files, consider creating a translator module or separate program that will do the translation for you into the new format. Embed the knowledge of old -&gt; new formats in that module and keep your current code clean.&lt;/p&gt;&#xA;" OwnerUserId="7698" LastActivityDate="2010-11-15T05:50:08.990" CommentCount="1" />
  <row Id="18996" PostTypeId="2" ParentId="18556" CreationDate="2010-11-15T05:57:00.840" Score="0" ViewCount="" Body="&lt;p&gt;I use FobBugz for tracking features, estimates and bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For reporting you could find the spreadsheet above interesting, mainly if you're an Agile Scrum shop :&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://scrum.jeffsutherland.com/2010/01/excel-spreadsheet-for-hyperproductive.html&quot; rel=&quot;nofollow&quot;&gt;http://scrum.jeffsutherland.com/2010/01/excel-spreadsheet-for-hyperproductive.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7675" LastActivityDate="2010-11-15T05:57:00.840" />
  <row Id="18997" PostTypeId="2" ParentId="15781" CreationDate="2010-11-15T06:10:31.367" Score="0" ViewCount="" Body="&lt;p&gt;I built a system, starting with a desktop app, 15 years ago when Java was still in its infancy and not ready for use in building these kinds of apps. I knew I needed to have a core in C++ and designed it from the start to be cross platform, including using sized types (eg int32 instead of int or long), so it could run on Mac, Windows, and UNIX (pre-Linux days). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the time I tried to look for a good cross-platform UI environment, there were a few then including XVT. I went through the training for XVT and when I started to build a real app, I realized that I wasn't going to be able to create a clean, native look and feel on the platform (starting with the Mac). So I gave up that idea and built a native Mac (PowerPlant) UI on top of the portable core.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A couple of years later, we moved onto Windows (UI in MFC). It was faster building a UI the second time around, we maintained a Mac and Windows UI in parallel for a short time and then went all over to Windows. The core later moved onto various flavors of UNIX and Linux, to allow us to run server-based computations. The core did port well, with some adjustments when we made it 64-bit ready. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I am back to using a Mac and I wish we could come back to the Mac, but the size and complexity of the app makes this a hard choice. It still makes sense for much of this app to be a desktop app - it is like a CAD environment. But rather than building the UI again in a platform-specific C/C++ language (and continue to maintain an MFC-based UI), I am more inclined to rewrite the entire stack in Java so it can run on multiple platforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There may still be reasons to run a non-Java core, say C++ as we did. But I would be wanting to run early performance tests to see if that was really required. And I would be looking carefully at my UI to see if I could be building it as a web app, connected to the core via web services, so I could have a range of clients - desktop apps, mobile apps, web apps, etc. If I needed a piece in C or C++, could it be written under a layer of Java? Or as a web service?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another consideration - how long will your app be around? How complex will it grow to be? If you have any ideas about this, consider the possible longevity of any UI libraries you are using and your ability over time to have people help maintain them. This may be hard to consider now but worth a thought.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- Alex&lt;/p&gt;&#xA;" OwnerUserId="7698" LastActivityDate="2010-11-15T06:10:31.367" CommentCount="1" />
  <row Id="18998" PostTypeId="2" ParentId="18946" CreationDate="2010-11-15T06:12:31.387" Score="1" ViewCount="" Body="&lt;p&gt;Any environnement where you would feel highly productive,&#xA;let's say if you only know plain Java and don't master any framework that could boost you productivity, it might worth be looking at other alternatives, these days Ruby On Rails seems to be one of the the darling of SAAS apps ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apparently it's very easy to deploy often there (and that would be one of your requirement as a new startup),since you will be shipping code super often ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So basically even if you're productive in one given environnement for coding, and your tool set do not allow you to deploy you your code &amp;amp; database structure in a few minutes, it might be wise considering another option&lt;/p&gt;&#xA;" OwnerUserId="7675" LastActivityDate="2010-11-15T06:12:31.387" />
  <row Id="18999" PostTypeId="2" ParentId="18622" CreationDate="2010-11-15T06:19:40.540" Score="1" ViewCount="" Body="&lt;p&gt;I like seeing &lt;code&gt;Segmentation fault&lt;/code&gt; the first time I try to run a program after writing a bunch of code.  It confirms my assumption that it probably won't work perfectly the first time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When hundreds of lines of untested code do end up working perfectly, &lt;em&gt;that's&lt;/em&gt; scary.  Not because it confirms the existence of ghosts, but because it doesn't force me to look over my code again, make sure it's correct, and understand &lt;em&gt;why&lt;/em&gt; it's correct.  Believe it or not, it's possible, if not common, to write a program and not understand how it works.&lt;/p&gt;&#xA;" OwnerUserId="3650" LastActivityDate="2010-11-15T06:19:40.540" CommentCount="1" />
  <row Id="19000" PostTypeId="2" ParentId="5466" CreationDate="2010-11-15T06:20:46.503" Score="0" ViewCount="" Body="&lt;p&gt;I believe they do need some programming background. If not then they will always be pressuring the programmers t d their tasks quick and expect it to be done within a few hours when actually the task requires lots of thinking and dedication. These qualities are known and well versed with programmers so if the project manager has programming background then he/she will understand how long a specific task will take and there will no arguments within the department and thus in the end a good project will evolve.&lt;/p&gt;&#xA;" OwnerUserId="5987" LastActivityDate="2010-11-15T06:20:46.503" />
  <row Id="19001" PostTypeId="2" ParentId="18984" CreationDate="2010-11-15T06:24:04.127" Score="1" ViewCount="" Body="&lt;p&gt;In the US there is Meetup.com. If there are some programming related meetups near your area this is a great way to network, and it seems that a lot of others seeking programmer help gravitate to these groups as well. You may find a set of people you want to work on a project with or a freelance opportunity.&lt;/p&gt;&#xA;" OwnerUserId="6518" LastActivityDate="2010-11-15T06:24:04.127" />
  <row Id="19002" PostTypeId="2" ParentId="18984" CreationDate="2010-11-15T06:28:16.580" Score="2" ViewCount="" Body="&lt;p&gt;I suggest you try freelance work and you can put whatever projects you have done in your CV as an indication that you actually did some really programming work for someone at a point of time. You should try scriptlance.com as it has wide scale of projects from small college level to huge organization's level.&lt;/p&gt;&#xA;" OwnerUserId="5987" LastActivityDate="2010-11-15T06:28:16.580" />
  <row Id="19003" PostTypeId="1" AcceptedAnswerId="19025" CreationDate="2010-11-15T06:29:06.943" Score="1" ViewCount="161" Body="&lt;p&gt;Recently added a QA team to our development group with 2 testers to provide QA for medium sized web projects. These two have relatively little experience with any kind of QA. We have been tasked with coming up with a testing process and training for the two new members. What is a good way to introduce these two to the world of software testing?&lt;/p&gt;&#xA;" OwnerUserId="6518" LastActivityDate="2010-11-30T23:36:29.797" Title="What's the best way to train new QA testers with little experience" Tags="&lt;testing&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="19004" PostTypeId="1" AcceptedAnswerId="19011" CreationDate="2010-11-15T06:29:30.407" Score="2" ViewCount="180" Body="&lt;p&gt;I have horrible handwriting, and it only seems to have gotten much worse since I rarely use anything other than a keyboard these days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now it seems that I'm giving more whiteboarding sessions, and I'm embarrased by my handwritting.  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Would using a stylus instead of a&#xA;mouse improve my general handwriting&#xA;legibility?&lt;/li&gt;&#xA;&lt;li&gt;What about a Tablet&#xA;PC?&lt;/li&gt;&#xA;&lt;li&gt;Do you think it may help with&#xA;the cramping and pain I get from too&#xA;much windows-double clicking?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-11-15T21:48:07.597" Title="Will using a stylus instead of a mouse improve my handwriting on the whiteboard?" Tags="&lt;development-process&gt;&lt;keyboard&gt;&lt;lifestyle&gt;&lt;ergonomics&gt;&lt;mouse&gt;" AnswerCount="4" />
  <row Id="19005" PostTypeId="2" ParentId="17898" CreationDate="2010-11-15T06:43:12.453" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://cslibrary.stanford.edu/&quot; rel=&quot;nofollow&quot;&gt;http://cslibrary.stanford.edu/&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This site has great tutorials for learning pointers and memory management .&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest you to walk through pointers basics, pointers and memory given on the site.&#xA;You can also look at linked lists problems given on the link to further strengthen the pointer concepts.&lt;/p&gt;&#xA;" OwnerUserId="7700" LastActivityDate="2010-11-15T06:43:12.453" CommunityOwnedDate="2010-12-02T00:15:36.130" />
  <row Id="19006" PostTypeId="1" AcceptedAnswerId="19021" CreationDate="2010-11-15T06:47:08.800" Score="3" ViewCount="556" Body="&lt;p&gt;Hello...In your resume, what would you classify as a Programming Language? For instance, under Programming Languages (or a similarly titled section of your resume), do you list C#, Java, C and leave it at that or do you go and add XML (because, well it is eXtensible Markup Language) and XSLT and jQuery and all that too?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are not going to add jQuery under languages, where exactly would you put it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One resolution to this dilemma would be put in the technologies you have used under the project, but that way, you are forcing the recruiter to go through the projects that you have done rather than giving a highlight of the technologies and languages you are familiar in. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your thoughts?&lt;/p&gt;&#xA;" OwnerUserId="5070" LastActivityDate="2010-11-15T16:01:18.730" Title="In a resume, what all constitutes a Programming Language" Tags="&lt;programming-languages&gt;&lt;resume&gt;" AnswerCount="8" CommentCount="1" />
  <row Id="19007" PostTypeId="1" CreationDate="2010-11-15T06:55:53.847" Score="2" ViewCount="590" Body="&lt;p&gt;A question that I have been asking myself and really confused which path to take. &#xA;So I need your guys help as to the pros and cons of these 2 professions in today's world. I love web applications development as the Web is the best thing to happen in this age and nearly everyone gets by on the World Wide Web. And also tend to keep learning about new technologies and about web services.&lt;br&gt;&lt;br&gt; On the other hand I like software engineering also for the desktop applications as I have had experience with development small scale softwares in VB.Net, Java, C++, etc. &lt;br&gt;&lt;br&gt;&#xA;Which path has more scope and better future? Whats your view?&lt;/p&gt;&#xA;" OwnerUserId="5987" LastActivityDate="2010-12-29T14:07:41.220" Title="Web Developer or Software Engineer?" Tags="&lt;career&gt;&lt;web-development&gt;&lt;software-developer&gt;" AnswerCount="7" CommentCount="4" FavoriteCount="1" />
  <row Id="19008" PostTypeId="1" AcceptedAnswerId="19026" CreationDate="2010-11-15T06:59:15.543" Score="1" ViewCount="296" Body="&lt;p&gt;A lot of big companies use recruiters to find new hires, and there's obviously an associated cost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Existing staff are likely to know people looking for work through their professional networks.  The company could potentially save significant money if they found people this way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously there are conflict-of-interest concerns to consider, but in general, &lt;strong&gt;do you think it's appropriate for a company to offer a finders' fee for referring new hires?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="91" LastActivityDate="2010-11-15T09:02:38.867" Title="Is it appropriate to offer a &quot;finders' fee&quot; to existing staff when looking for new staff?" Tags="&lt;hiring&gt;&lt;employment&gt;&lt;recruiting&gt;&lt;incentives&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="19009" PostTypeId="2" ParentId="19006" CreationDate="2010-11-15T07:00:30.320" Score="3" ViewCount="" Body="&lt;p&gt;If you need a technologies section, list languages and then list frameworks separately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Better thing is to list your languages, frameworks, and other technologies inline with descriptions of your key project/work experiences. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;ie, &quot;Developed web application to do XYZ using PHP, Javascript (jQuery), and XSLT....&quot;&lt;/p&gt;&#xA;" OwnerUserId="6518" LastActivityDate="2010-11-15T07:00:30.320" />
  <row Id="19010" PostTypeId="2" ParentId="19008" CreationDate="2010-11-15T07:21:01.963" Score="7" ViewCount="" Body="&lt;p&gt;If your company is having difficulty recruiting and retaining the talent your company needs to survive, succeed, and thrive, there is ALWAYS a reason, and the most common reason is that you not offering to pay enough money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are attempting to pay significantly below the going rates, and your company is a &quot;me too&quot; outfit, doing the same thing everyone else is doing, you're going to have trouble.  If your company is an outstanding place to work, doing SERIOUSLY cool stuff, you MIGHT be able to pay a little lower - but you are going to have difficulty even then.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your company is paying going rates, but is known in your area and industry as a terrible place to work, you are going to have serious recruiting and retention problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And there's this.  If your company is a great place to work, doing seriously cool things, &lt;em&gt;AND&lt;/em&gt; is successful enough that you can and do pay ABOVE market rates, you will have your pick of applicants.  (Your competitors will hate your guts, however, and will do anything they can, legal and otherwise, to put you out of their misery.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, it can be appropriate to offer &quot;recruit-a-friend&quot; bounties, but it may say something not completely good about your company when you do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When your employee talks to his friends, what is he going to say when the friends ask about pay scale, raises, benefits, working conditions?  If your employee has to tell your friend that there haven't been any raises in three years, and they don't expect any raises at any time in the foreseeable future, if your employee has to tell your friend about high rates of mandatory free overtime, if you have a local reputation for boom-and-bust hire-and-fire cycles, offering bounties is probably not going to do you a lot of good.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-11-15T07:21:01.963" CommentCount="4" />
  <row Id="19011" PostTypeId="2" ParentId="19004" CreationDate="2010-11-15T07:25:00.367" Score="14" ViewCount="" Body="&lt;p&gt;Dude, the way you improve your handwriting on a whiteboard (or, in the OLD days, a blackboard) is to practice handwriting on a whiteboard (or blackboard).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The motions and muscles used for handwriting on a whiteboard are completely different from those used with a stylus, or handwriting on paper with a pen.  On a whiteboard (blackboard), you have to use your whole arm to write.  Your hand, wrist, and forearm are basically fixed: your elbow and shoulder flex, and your upper arm moves to move your forearm, to which your hand and wrist, and marker, are attached.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-11-15T07:25:00.367" CommentCount="4" />
  <row Id="19012" PostTypeId="2" ParentId="18975" CreationDate="2010-11-15T07:38:42.483" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Sometimes it is not possible to completely hide away the unstable parts. What are the strategies for coping with such necessary workarounds?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's important to realize that the software will keep evolving in the future. One layer of obscure workarounds is tolerable, but real problems will emerge if you start building &lt;strong&gt;workarounds on top of workarounds.&lt;/strong&gt; Therefore &lt;strong&gt;refactoring&lt;/strong&gt; is absolutely required before the layer of workarounds is going to exceed one. Of course it would be better to do it cleanly in the first place, but it simply doesn't go like that in the real world.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-11-15T07:38:42.483" />
  <row Id="19013" PostTypeId="2" ParentId="19008" CreationDate="2010-11-15T07:41:13.683" Score="1" ViewCount="" Body="&lt;p&gt;Lots of big companies offer referral bonuses to their staff for recruits that successfully retain their position after the probation period.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem occurs when the staff members involved with the recruitment process have a financial interest in the outcome (ie: they would receive a referral bonus), so it is common practice that anyone who nominates a candidate cannot be involved in the interview or selection process.&lt;/p&gt;&#xA;" OwnerUserId="7641" LastActivityDate="2010-11-15T07:41:13.683" />
  <row Id="19014" PostTypeId="2" ParentId="18843" CreationDate="2010-11-15T07:45:03.033" Score="5" ViewCount="" Body="&lt;p&gt;Most of the Web apps I see (and Web devs I've talked to) who are moving in this direction are using jQuery as their base.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The whole reasoning behind GWT (and similar multi-level languages) is that JavaScript is too flakey/too fragile/too changeable for &quot;real programmers&quot; to use. But if you have a framework handling the flakey/fragile/changeable bits for you, then there's no reason to add on that extra layer of complexity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just my opinion…&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-11-15T07:45:03.033" />
  <row Id="19015" PostTypeId="2" ParentId="19007" CreationDate="2010-11-15T07:51:41.753" Score="9" ViewCount="" Body="&lt;p&gt;Strictly speaking, software engineering is about designing software systems correctly - regardless of what platform (web, desktop, mobile, etc) they live on - how various subsystems of the solution interact with each other and external systems, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd suggest getting some experience with desktop and enterprise applications, like web applications - they can be done just as badly for the novice and just as well for the expert. Being able to tell a prospective employer that you've got more extensive experience than 90% of the 'popularist' web dev crowd always helps!&lt;/p&gt;&#xA;" OwnerUserId="7641" LastActivityDate="2010-11-15T07:51:41.753" CommentCount="4" />
  <row Id="19017" PostTypeId="2" ParentId="19008" CreationDate="2010-11-15T08:13:02.127" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All companies I've worked in have had this. While it's &lt;em&gt;not a substitute for good wages and benefits&lt;/em&gt;, it will make people think more than once about possible hires in their network or among their friends. If there's a shortage of job applications coming in, this can make a difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's no guarantee, of course. Employees may not &lt;em&gt;want&lt;/em&gt; to recommend people, but then your problem lies elsewhere.&lt;/p&gt;&#xA;" OwnerUserId="1020" LastActivityDate="2010-11-15T08:13:02.127" CommentCount="2" />
  <row Id="19019" PostTypeId="2" ParentId="9843" CreationDate="2010-11-15T08:16:25.743" Score="0" ViewCount="" Body="&lt;p&gt;I've been mulling over the same question for a while - I think the data component and the logic component must be seperate. I believe this because it gets you into the right frame of mind as regarding business logic as an interface to the data that provides meaning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also mod up Scott Whitlock's point from above (except I have no points being a new member), data or business logic classes shouldn't really have to worry about how the object is stored persistantly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, if you're dealing with an existing product, as long as you have clean, contractual interfaces - that's OK and maintainable too...&lt;/p&gt;&#xA;" OwnerUserId="7641" LastActivityDate="2010-11-15T08:16:25.743" />
  <row Id="19020" PostTypeId="2" ParentId="19008" CreationDate="2010-11-15T08:18:39.693" Score="3" ViewCount="" Body="&lt;p&gt;It's a nice incentive, but it doesn't replace good regular hiring practices. You can save a bit of money on the initial screening process if a current employee recommends someone, but you still need to interview the candidate, you still need to train them and you still need to put them on probation, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given what some recruiters will charge, though, you can still save quite a bit of money in skipping that step, and I see no reason why those saving should &lt;em&gt;not&lt;/em&gt; be passed on to the employee who recommended the candidate.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-11-15T08:18:39.693" CommentCount="1" />
  <row Id="19021" PostTypeId="2" ParentId="19006" CreationDate="2010-11-15T08:38:35.550" Score="9" ViewCount="" Body="&lt;p&gt;If you have to ask &quot;should I put this as a programming language?&quot; then don't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're not going to miss out on an interview because you filed XML and XSLT under &quot;Tools and Technologies&quot;. But you might if you file them under &quot;Programming languages&quot; and you hit a grumpy dev lead who takes an instant dislike to you because of it.&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-11-15T08:38:35.550" />
  <row Id="19022" PostTypeId="2" ParentId="19006" CreationDate="2010-11-15T08:48:38.097" Score="1" ViewCount="" Body="&lt;p&gt;Don't confuse languages with libraries. You can list JS and indicate that you are familiar with JQuery (and possibly other JS libs).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My background is mostly in C, which I list as well as my familiarity with several implementations of the standard C library. I don't elaborate on each individual library (in addition to standard C) that I've worked with, unless they are notable (MPI / etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you are extremely well versed in the specifics of any standard, it is a good idea to list that standard. Again, keep it brief and try to confine the list to things that may set you apart from others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I list my experience with XML and JSON, but only when elaborating on the &quot;API Design&quot; section of my experience.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-15T08:48:38.097" />
  <row Id="19024" PostTypeId="2" ParentId="19007" CreationDate="2010-11-15T08:59:53.387" Score="2" ViewCount="" Body="&lt;p&gt;I'm assuming you mean application developer and web developer. Why not do both? I, for instance, work both web side and app side for an iPad development company. I do things like synchronization, IAP, etc. At a large company you will pretty much be stuck in your position, but if you take a job at a small company, offer to learn PHP and help out with the site once in a while. See which you prefer! No one can answer that for you :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for scope and future, neither is going anywhere any time soon. Web development will continue to grow into a more fluid, state filled environment, al la HTML 5, and applications will continue to grow more robust and fill more niches. The question is where would you be happy?&lt;/p&gt;&#xA;" OwnerUserId="7566" LastActivityDate="2010-11-15T08:59:53.387" CommentCount="2" />
  <row Id="19025" PostTypeId="2" ParentId="19003" CreationDate="2010-11-15T09:02:27.297" Score="1" ViewCount="" Body="&lt;p&gt;I would try something like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The game of testing is to make the application break. Therefore, I would teach about cases of unit tests, where parameters are wrong. Second, unit tests where function calls are missing or not yet implemented. Take note of their new testcases such that they can be automated and be run in the continuous build&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once, unit tests give a first understanding of software workings, I would let them move up to integration tests. It is important to take them the role of a user and make the logic behind the software break. Also here, take notes and run their output automatically in continuous build.&lt;/p&gt;&#xA;" OwnerUserId="4723" LastActivityDate="2010-11-15T09:02:27.297" />
  <row Id="19026" PostTypeId="2" ParentId="19008" CreationDate="2010-11-15T09:02:38.867" Score="4" ViewCount="" Body="&lt;p&gt;We've done this before and it worked out well. Just make sure that the bounty is paid only after the new hire demonstrates that they'll be around for a while. A $1500 bounty is not out of the question. $300 when they get hired, $1200 after three months of employment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only glitch is (sometimes) hiring close friends of existing employees doesn't work out very well. You don't want islands forming in a team. If possible, try to make sure that the two don't work together very closely, at least for a while. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing to watch out for is that work can sometime strain relationships. Sometimes, for instance, you just need to take a &lt;strike&gt;sick&lt;/strike&gt; mental health day. Your friends are usually privy to this, when they work at the same company and depend on you .. well, it can get sticky. A policy against hiring immediate family members of other employees is usually wise. Good friends can (sometimes) almost qualify as immediate family, so watch out.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-15T09:02:38.867" />
  <row Id="19028" PostTypeId="1" AcceptedAnswerId="19049" CreationDate="2010-11-15T09:16:14.183" Score="2" ViewCount="149" Body="&lt;p&gt;So, I have a web application that I need to build. The application will be done in a LAMP environment. I'm being given the resources to bring in 2 other programmers to work on my team. I have team lead and architecture experience before, so taking charge isn't a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The roadblock that I am experience is that I am currently living in a developing country. They have plenty of Software Engineer programs at universities, but no training/classes on really anything relating to LAMP. It is all C++/Java. So, I have a set of resumes I've culled as experience programmers that seem intelligent sitting in front of me. They come from various backgrounds, which include a couple Java developers, an old-school C++/MFC type guy, some C# devs, and a whole bunch of young out of school C++/Java developers. I'm honestly already leaning one way on which skillset I think would mold the easiest to web dev, but as I am not an application developer (exposure in school, but that was a while ago), I though I might open it up and ask you guys: Which skillset of these do you think would lead into the easiest transition to web development? I'm especially curious to hear from anyone who moved from application side over to web development.&lt;/p&gt;&#xA;" OwnerUserId="7566" LastActivityDate="2010-11-15T13:51:50.750" Title="Developing a team of programmers" Tags="&lt;programming-languages&gt;&lt;web-development&gt;&lt;team&gt;" AnswerCount="1" CommentCount="5" FavoriteCount="1" />
  <row Id="19029" PostTypeId="1" AcceptedAnswerId="19156" CreationDate="2010-11-15T09:25:20.873" Score="3" ViewCount="776" Body="&lt;p&gt;I consider myself a decent java/web developer. In my career I have always used servlets and ejb's with a web front end, most recently incoporating jquery and ajax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can see the theoritical benefet of using &lt;a href=&quot;http://code.google.com/webtoolkit/overview.html&quot; rel=&quot;nofollow&quot;&gt;GWT&lt;/a&gt; or &lt;a href=&quot;http://vaadin.com/home&quot; rel=&quot;nofollow&quot;&gt;Vaadin&lt;/a&gt;: its my understading they convert java code to the required javascript/html. So the develoepr gets the benefit of cross browser compatibility and compile time error checking (of web gui elements).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is three fold, are there any other benefits I am missing that would be gained using Vaadin or GWT ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, I am actually quite confident and productive using html and javascript - so will I actually see any benefit ? Or will it just make my knowledge of these areas redundant (as they are handled by gwt/vaadin) ?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will the end result be that I can create enterprise scale data driven websites in a reasonably short time? I can however already do this, and I have not wasted any time learning GWT/Vaadin.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2011-03-14T02:33:31.987" Title="Is it worth learning either GWT or Vaadin ?" Tags="&lt;java&gt;&lt;gwt&gt;&lt;vaadin&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="19030" PostTypeId="1" CreationDate="2010-11-15T09:32:14.053" Score="22" ViewCount="1115" Body="&lt;p&gt;In a programming interview if I am asked a question I already know the answer for, such as giving an algorithm for a particular problem. Should I disclose that to the interviewer? This issue only makes sense when there's a novelty aspect to the question. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One example is &quot;How would you reverse each word in a string, but not their order?&quot;. There also seems to be a division between easier stuff, that you are &quot;supposed&quot; to know, such as my example and harder more contrived problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whats your policy and rationale for dealing with this issue?  If you are already familiar with the question/brainteaser, should you disclose this in addition to answering the question?  Is there any ethical dilemma involved with not disclosing your prior knowledge of the question?  &lt;/p&gt;&#xA;" OwnerUserId="7704" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-11-16T16:16:43.247" LastActivityDate="2010-11-16T16:16:43.247" Title="Should I tell the interviewer I already know the answer to the question being asked?" Tags="&lt;interview&gt;&lt;ethics&gt;" AnswerCount="9" CommentCount="9" FavoriteCount="4" />
  <row Id="19031" PostTypeId="1" AcceptedAnswerId="19047" CreationDate="2010-11-15T09:33:01.650" Score="7" ViewCount="247" Body="&lt;p&gt;We usually worry about coding standards, ethics, latest technology etc. But at times we tend to ignore our writing skills and communicating skills. &#xA;Do we need to pursue a communication skills courses? Which ones do you prefer? Any online courses available which you might have tried? &lt;/p&gt;&#xA;" OwnerUserId="7478" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-11-15T15:50:32.150" LastActivityDate="2010-11-15T19:03:44.320" Title="Written communication skills courses, how important are they for developers?" Tags="&lt;learning&gt;&lt;career&gt;&lt;best-practices&gt;" AnswerCount="3" CommentCount="0" FavoriteCount="2" />
  <row Id="19032" PostTypeId="2" ParentId="19006" CreationDate="2010-11-15T09:37:24.730" Score="0" ViewCount="" Body="&lt;p&gt;Personally, I have a Skills &amp;amp; Technologies sections, with different sub-sections:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Programming Languages (including markup, because think it's the same, and technical people who would hold a grudge wouldn't be people I want to work with if they cannot go past it after an interview)&lt;/li&gt;&#xA;&lt;li&gt;Operating Systems&lt;/li&gt;&#xA;&lt;li&gt;DataBases&lt;/li&gt;&#xA;&lt;li&gt;Frameworks &amp;amp; Technologies (where you dump all the stuff you want)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Depending on the job, I modify it to include other sections and be very extensive like this&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Operating Systems&lt;/li&gt;&#xA;&lt;li&gt;Frameworks / SDKs&lt;/li&gt;&#xA;&lt;li&gt;Programming Languages&lt;/li&gt;&#xA;&lt;li&gt;CLEs / VMs&lt;/li&gt;&#xA;&lt;li&gt;Databases&lt;/li&gt;&#xA;&lt;li&gt;App. Servers / Containers&lt;/li&gt;&#xA;&lt;li&gt;IDEs / Editors&lt;/li&gt;&#xA;&lt;li&gt;Office / Authoring Suites&lt;/li&gt;&#xA;&lt;li&gt;Virtualization&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Which I would admit is way overkill and laughable, but the job market being the way it is, and recruiters liking tick-boxes, I don't see why I wouldn't hold it against them. If it gets me through a keyword search, then I can send a cleaner and leaner version for the interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I'd agree with others: don't mix languages and libraries. That would be fine with recruiters, as they often - but not always - don't understand any of this in detail and won't see the line between the categories. But people you interview with will think that goes a bit too far. I'd still give you a call for a phone screening though, but I'd say it might leave a negative impression (for instance, I have to confess that my teeth cringe every time I see &quot;J2EE&quot; or &quot;JEE&quot; under the programming languages section).&lt;/p&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-11-15T09:37:24.730" />
  <row Id="19033" PostTypeId="2" ParentId="19030" CreationDate="2010-11-15T09:45:14.667" Score="7" ViewCount="" Body="&lt;p&gt;I'm in favour of open and honest communication, so I'd definitely say that I knew the question, and the trick involved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suppose for extra credit you could say &quot;OK, this is how everyone else does it, but let's see if there's a different way.&quot; Or you could deconstruct the question in other ways, and show why people like the question, what the question's supposedly trying to get you to see.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Edit: removed the reference to FizzBuzz, from other people's comments on this post.)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-11-15T13:22:19.160" LastActivityDate="2010-11-15T13:22:19.160" CommentCount="6" />
  <row Id="19035" PostTypeId="2" ParentId="19030" CreationDate="2010-11-15T09:54:07.233" Score="34" ViewCount="" Body="&lt;p&gt;I'd just answer it without much hesitation or screwing around. Knowing the answer to a question isn't something evil, it means you've encountered it before and know how to solve it. Fix it, move on to the next.&lt;/p&gt;&#xA;" OwnerUserId="7705" LastActivityDate="2010-11-15T09:54:07.233" CommentCount="1" />
  <row Id="19036" PostTypeId="1" AcceptedAnswerId="19045" CreationDate="2010-11-15T09:57:52.320" Score="6" ViewCount="950" Body="&lt;p&gt;We need a desktop application that will meet the following requirements:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Communicate with a web service for retrieveing the data&lt;/li&gt;&#xA;&lt;li&gt;Being able to store data locally and then sync with the server&lt;/li&gt;&#xA;&lt;li&gt;Posibility to be cross-platform with not much headache&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So what could be a recommended programming language to use for this project?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you!&lt;/p&gt;&#xA;" OwnerUserId="7420" LastEditorUserId="7420" LastEditorDisplayName="" LastEditDate="2010-11-22T12:04:37.683" LastActivityDate="2011-01-22T03:53:02.907" Title="Recommended programming language for desktop application" Tags="&lt;programming-languages&gt;&lt;applications&gt;&lt;cross-platform&gt;&lt;web-services&gt;" AnswerCount="11" CommentCount="4" FavoriteCount="3" />
  <row Id="19037" PostTypeId="2" ParentId="19006" CreationDate="2010-11-15T09:58:01.940" Score="1" ViewCount="" Body="&lt;p&gt;I disagree wtih Haylem on listing markup languages under programming languages - markup languages are used to structure data, not to actually generate it. You can't actually program anything with HTML, at least not in combination with Javascript - in which the markup language becomes the data storage medium, of a sorts. List those under frameworks / technologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, proving you actually know the difference between a programming / scripting language, markup / data structuring language and libraries / APIs will avoid you getting thrown off of the list after a quick glance at your resumé.&lt;/p&gt;&#xA;" OwnerUserId="7705" LastActivityDate="2010-11-15T09:58:01.940" />
  <row Id="19039" PostTypeId="2" ParentId="19036" CreationDate="2010-11-15T10:03:41.060" Score="10" ViewCount="" Body="&lt;p&gt;Python and Java come to the top of the mind.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-11-15T10:03:41.060" CommentCount="4" />
  <row Id="19040" PostTypeId="2" ParentId="19030" CreationDate="2010-11-15T10:08:11.963" Score="18" ViewCount="" Body="&lt;p&gt;I'd still answer the question. I interview programmers very frequently. I'm less interested in the fact that you &lt;em&gt;can&lt;/em&gt; solve the problem (unless you simply can't) and more interested in &lt;em&gt;how&lt;/em&gt; you solved the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I ask lots, and lots .. and lots of annoying little questions during an interview that are specifically designed (and refined over time) to give me a very good understanding of your actual strengths verses what you put on your CV. I will do my very best to lead you along a trail of subjective banter and then hit you with increasingly harder problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using &lt;a href=&quot;http://programmers.stackexchange.com/questions/19030/should-i-tell-the-interviewer-i-already-know-a-question/19033#19033&quot;&gt;Frank's example&lt;/a&gt;, FizzBuzz, the last thing I want to hear from you is &quot;Oh yes, I know how to use the modulus operator ...&quot; If I'm interviewing you, I &lt;em&gt;know&lt;/em&gt; that. I might want to see how quickly your brain switches gears, or I might want to test how well you'll carry out an assignment that seems mundane and stupid. The point is, I'm not &lt;em&gt;just&lt;/em&gt; testing your ability to solve problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can make a mouse trap with hundreds of moving parts. If a company is in the business of catching mice .. well ... :)&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-15T10:20:15.633" LastActivityDate="2010-11-15T10:20:15.633" CommentCount="5" />
  <row Id="19041" PostTypeId="2" ParentId="19004" CreationDate="2010-11-15T10:08:22.447" Score="3" ViewCount="" Body="&lt;p&gt;Since you seem to have problems with your handwriting in general, why not &lt;a href=&quot;http://www.paperpenalia.com/handwriting.html&quot; rel=&quot;nofollow&quot;&gt;take a look at this handwriting improvement tutorial&lt;/a&gt; and spend some time practicing it during your lunchtimes?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from that I'd say that @John R Strohm's answer is probably the right one for your situation.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-15T10:08:22.447" />
  <row Id="19042" PostTypeId="2" ParentId="19004" CreationDate="2010-11-15T10:32:34.063" Score="2" ViewCount="" Body="&lt;p&gt;I noticed the same decay. My penmanship was &lt;em&gt;never&lt;/em&gt; good, and over the past few years it has gotten decidedly &lt;em&gt;worse&lt;/em&gt;. I cringe now, when I have to fill out standard forms with a pen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I keep a journal at my desk and I write in it faithfully. I highly recommend a &lt;a href=&quot;http://www.moleskine.com/&quot; rel=&quot;nofollow&quot;&gt;Moleskine&lt;/a&gt; that suits your personal taste. I use them because the paper is very high quality, gel pens don't run and your average Bic won't suddenly refuse to write.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Log what you do, when you did it, how you felt about it, what you saw, memories from childhood that a certain smell provoked, or whatever suits your fancy. The point is, you need to remind your brain that forming words can be done with keystrokes or a pen. You can practice for a month on a white board and produce brilliant, legible scratch .. however easy come, easy go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to attain and keep any skill, you need to practice :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, the journal makes for interesting reading later.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-15T10:32:34.063" CommentCount="1" />
  <row Id="19043" PostTypeId="2" ParentId="19031" CreationDate="2010-11-15T10:36:15.470" Score="2" ViewCount="" Body="&lt;p&gt;The ability to write and communicate clearly is important, how you picked up that skill (course, self taught, mentored) isn't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Amazon is chock full of books about it and personally that's the way I'd go as I think it's useful to have something you can dip back into every now and then, rather than a course which can fade in the memory if you don't get to put it to use immediately.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-15T10:36:15.470" />
  <row Id="19044" PostTypeId="2" ParentId="19036" CreationDate="2010-11-15T10:37:20.907" Score="11" ViewCount="" Body="&lt;p&gt;If your application has no fancy UI, you may want to pick &lt;strong&gt;C#&lt;/strong&gt; and &lt;strong&gt;WindowsForms&lt;/strong&gt; and go on other platforms with the &lt;a href=&quot;http://www.mono-project.com/Main_Page&quot; rel=&quot;nofollow&quot;&gt;Mono Framework&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's what I'm going to do for one of my projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are not sure of the future of Java, neither Mono... But my instinct tells me to pick Mono.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-15T10:37:20.907" CommentCount="11" />
  <row Id="19045" PostTypeId="2" ParentId="19036" CreationDate="2010-11-15T10:47:01.447" Score="4" ViewCount="" Body="&lt;p&gt;You can use Adobe Air for developing Desktop applications.  It is a simple to use API.  It's not open source, though.&lt;/p&gt;&#xA;" OwnerUserId="6952" LastActivityDate="2010-11-15T10:47:01.447" CommentCount="5" />
  <row Id="19046" PostTypeId="2" ParentId="18984" CreationDate="2010-11-15T10:52:48.273" Score="5" ViewCount="" Body="&lt;p&gt;If you want to boost your CV and get some experience but you are not interested in money than you might want to take active part in one of the well-known &lt;strong&gt;Open Source&lt;/strong&gt; projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will give you an exposure to some good code and will definatelly look good on a CV.&lt;/p&gt;&#xA;" OwnerUserId="5564" LastActivityDate="2010-11-15T10:52:48.273" />
  <row Id="19047" PostTypeId="2" ParentId="19031" CreationDate="2010-11-15T11:10:38.440" Score="13" ViewCount="" Body="&lt;p&gt;Writing skills and communication skills are incredibly important.  There's a quote by Karl Fogel &lt;a href=&quot;http://www.producingoss.org&quot; rel=&quot;nofollow&quot;&gt;http://www.producingoss.org&lt;/a&gt; &quot;S/he who communicates the best, has the most influence in a project&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, you might be a nova-hot programmer, but if you can't communicate your ideas and changes to the rest of your team, your contributions won't make it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Jon stated you don't need to learn from a course, but I'd recommend at least learning from someone who is an expert in professional writing. They can help you shape your writing and once you get into a good habit you'll be fine for the rest of your career.  For example I'm currently writing a technical book and both my editor and an experienced author have helped me immensely in changing my written prose into something that readers can hopefully learn from.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't neglect the other types of communication, there are still many people who prefer phone calls, in person meetings, IRC or other forms (we all absorb information differently).  Always try to find out the preferred method of the people you are working with.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-15T11:10:38.440" CommentCount="2" />
  <row Id="19048" PostTypeId="2" ParentId="19036" CreationDate="2010-11-15T11:13:18.437" Score="2" ViewCount="" Body="&lt;p&gt;I suggest &lt;a href=&quot;http://haxe.org/&quot; rel=&quot;nofollow&quot;&gt;haXe&lt;/a&gt;. You can write the server and client in the same language. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can possibly even share code between a web and desktop app. For example &lt;a href=&quot;http://code.google.com/p/neash/&quot; rel=&quot;nofollow&quot;&gt;neash&lt;/a&gt; allows you to use the FlashPlayer 9 API (which you will find to be a very intuitive one) in a browser as well as native desktop or mobile apps, if you want that. You could also &lt;a href=&quot;http://lib.haxe.org/p/air&quot; rel=&quot;nofollow&quot;&gt;target AIR&lt;/a&gt; as suggested by @SidCool, or &lt;a href=&quot;http://code.google.com/p/hippohx/&quot; rel=&quot;nofollow&quot;&gt;HippoHX&lt;/a&gt;. Or maybe you will even find another way you prefer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can write your server and run it on PHP if you need easy deployment, on neko for speed or even &lt;a href=&quot;https://github.com/TheHippo/hxfcgi&quot; rel=&quot;nofollow&quot;&gt;C++ once it is stable&lt;/a&gt;. &lt;a href=&quot;http://haxe.org/doc/remoting/0_introduction&quot; rel=&quot;nofollow&quot;&gt;haXe remoting&lt;/a&gt; will render the transport layer of your application transparent while &lt;a href=&quot;http://haxe.org/doc/neko/spod&quot; rel=&quot;nofollow&quot;&gt;SPOD&lt;/a&gt; will help you a lot in writing your data backend.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So good luck ;)&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-11-15T11:13:18.437" />
  <row Id="19049" PostTypeId="2" ParentId="19028" CreationDate="2010-11-15T11:13:38.623" Score="6" ViewCount="" Body="&lt;p&gt;A great developer who is &quot;smart and gets things done&quot; (via Joel Spoelsky - credit to @EricBoersma) will likely be more productive than a poor one &lt;em&gt;no matter what language they work in&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you're on an extremely tight deadline (and you need the specific skill set) then simply hire people who are smart and work hard.  They'll pick up the web development tech quickly enough, just give them some time to bash out a prototype or two first.&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2010-11-15T13:51:50.750" LastActivityDate="2010-11-15T13:51:50.750" CommentCount="5" />
  <row Id="19050" PostTypeId="2" ParentId="18984" CreationDate="2010-11-15T11:38:15.677" Score="1" ViewCount="" Body="&lt;p&gt;Consider volunteering for the FSF or applying for internships there.  Volunteering for the FSF's projects will not pay in in terms of money though it will help publicise your work and achievements in a very visible manner.  Both the FSF and you will benefit from each other.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-11-15T11:38:15.677" />
  <row Id="19051" PostTypeId="2" ParentId="19030" CreationDate="2010-11-15T11:41:52.730" Score="4" ViewCount="" Body="&lt;p&gt;As an interviewer, I am not asking the question to see if you know the answer to a tricky chicken and egg question.  Instead I am looking to see how you work through a problem to arrive at an answer.  Therefore, it is often easy to tell the difference between knowing the answer and arriving at the answer (unless, of couse the interviewee acts out to arriving to the answer!)  &lt;/p&gt;&#xA;" OwnerUserId="7708" LastActivityDate="2010-11-15T11:41:52.730" />
  <row Id="19052" PostTypeId="2" ParentId="19029" CreationDate="2010-11-15T12:25:49.930" Score="0" ViewCount="" Body="&lt;p&gt;Can't tell anything about Vaadin, but here what I think about GWT:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;GWT compiler will not only compile java to javascript, but also JS and java code optimizer. About GWT compiler you can see nice presentation &lt;a href=&quot;http://www.google.com/events/io/2010/sessions/faster-apps-faster-gwt-compiler.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are confident with Jasascript and can easy create heavy AJAX based web applications using JS and Html, then I suppose you wouldn't see much difference in development speed, but for developers(with Java background) with not so good JS knowledge (like me for example) this could be a life savior when developing AJAX based web application. Working with GWT you will not write JS code very often. &#xA;So I suggest if you have some free time to spare to learn GWT you can do it, but if you already creating enterprise AJAX applications with javascript and html in reasonably short time then you would not see much difference between development using Js/Html or GWT.&lt;/p&gt;&#xA;" OwnerUserId="4164" LastActivityDate="2010-11-15T12:25:49.930" />
  <row Id="19053" PostTypeId="2" ParentId="18337" CreationDate="2010-11-15T12:28:03.800" Score="0" ViewCount="" Body="&lt;p&gt;I am currently undertaking a dissertation in Computer Science and like you wanted to build something on the web.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I took the path of building an application which I used at home, but hated. Because I loved the idea but loathed the current best implementation, I have the drive I need to keep working on the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However just building essentially a software system for a dissertation in itself wont get you marks. So personally I am concentrating on the &lt;strong&gt;software development skills&lt;/strong&gt;, &lt;strong&gt;interface design&lt;/strong&gt; (since I love that stuff) and looking to build on what the competition currently offer in the form of new &lt;strong&gt;process automation&lt;/strong&gt; techniques.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hearing what others had done was useful to me, however I think this is a very personal decision and it is important to pick what you will love to do and &lt;strong&gt;not&lt;/strong&gt; what you think will get you marks!&lt;/p&gt;&#xA;" OwnerUserId="7485" LastActivityDate="2010-11-15T12:28:03.800" />
  <row Id="19054" PostTypeId="2" ParentId="18694" CreationDate="2010-11-15T12:36:01.383" Score="1" ViewCount="" Body="&lt;p&gt;You could &lt;a href=&quot;http://www.objects.com.au/services/mentorpro.html&quot; rel=&quot;nofollow&quot;&gt;take a look at this offering&lt;/a&gt;. It may be just what you're after. Remember that online coaching is generally location independent.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-15T12:36:01.383" />
  <row Id="19055" PostTypeId="1" CreationDate="2010-11-15T12:45:03.777" Score="4" ViewCount="247" Body="&lt;p&gt;I am obsessed with good code practices, clean code and most of all secure. I often find myself searching for the best way to do something, constantly asking for code review and looking for ways to improve my code. In practice I can manage (been doing PHP for a couple of months) but the theoretical part is my weak spot. I know what most of the concepts mean, I understand them but if someone would ask me to explain something I often find it difficult. This means that if I were to look for a job and the interviewer would ask me questions, they would immediately think I don't know much about the subject.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this going to be a big disadvantage for me? Should I seriously start to learn the theoretical part more? &lt;/p&gt;&#xA;" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-15T15:27:51.797" LastActivityDate="2010-11-15T15:29:58.627" Title="Importance of theoretical knowledge alongside hands-on ability" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="2" />
  <row Id="19056" PostTypeId="2" ParentId="19030" CreationDate="2010-11-15T12:49:54.570" Score="2" ViewCount="" Body="&lt;p&gt;In my experience, for most technical interviews, the interviewee is really interested in you solution and how you came up with it and how you explain it, rather than whether you had heard the exact same thing before. Unless it was one of those &quot;puzzle&quot; questions that involves a &quot;trick&quot;, knowing about the problem beforehand does not really give you a decisive edge unless you are able to solve it by yourself anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a sufficiently non-trivial question, the problem posed might actually be a well known one, or can be reduced to one. If someone asks about the way to find the shortest route between two nodes in a graph, do you pretend to not know BFS/Dijkstra? IMHO, for some problems it might even be counter-productive to hide the fact that you know your stuff.&lt;/p&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-11-15T12:49:54.570" CommentCount="1" />
  <row Id="19057" PostTypeId="2" ParentId="19030" CreationDate="2010-11-15T12:53:01.570" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Knowing&quot; the answer is not the point. Communicating it in a way that the interviewer has a chance to understand the answer you are giving is. (Of course, the interviewer knows a bunch of answers, but as I said, that's not the point.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I'd try to communicate the answer framed into a reasonably didactic, or maybe humorous, frame, so the interviewer can see how I think and function, or don't. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, it might be fun for all of you (and informative for the interviewer) to take the question asked into a totally different context, showing that even though the problem at hand looks similar, the solution does not work in the new context. I think the art here is to find a somehow related context for the question in which the solution from the first answer does not work, and then propose spectacular solution ideas which the interviewer may chew on (or laugh about).&lt;/p&gt;&#xA;" OwnerUserId="7714" LastActivityDate="2010-11-15T12:53:01.570" />
  <row Id="19058" PostTypeId="2" ParentId="19036" CreationDate="2010-11-15T12:55:31.380" Score="1" ViewCount="" Body="&lt;p&gt;You could use &lt;a href=&quot;http://gears.google.com/&quot; rel=&quot;nofollow&quot;&gt;Google Gears&lt;/a&gt;, which is an extension to browsers to allow offline capabilities just like you describe. If your team is experienced as web developers this deserves a serious look as it means you don't have to learn as much new technology. Otherwise, go with what your team knows. &lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-15T12:55:31.380" CommentCount="2" />
  <row Id="19059" PostTypeId="2" ParentId="19055" CreationDate="2010-11-15T13:01:49.893" Score="0" ViewCount="" Body="&lt;p&gt;Hello, in my opinion, it's not really that you're doing it wrong. You're saying &quot;I am obsessed with good code practice&quot; but before writing some codes, it's better to understand the concept. Understanding the concept means you know about the subject and you can explain it to others. Sometimes when i'm in a situation like this, let's say for example i should explain that A=&gt;B=&gt;C=&gt;D, i'm explaining first about why C=&gt;D, then why B=&gt;C , A=&gt;B then i find the explanation for the A=&gt;B=&gt;C=&gt;D.&#xA;Sorry if my response did not answer you question&lt;/p&gt;&#xA;" OwnerUserId="7712" LastActivityDate="2010-11-15T13:01:49.893" />
  <row Id="19060" PostTypeId="2" ParentId="19055" CreationDate="2010-11-15T13:05:54.613" Score="1" ViewCount="" Body="&lt;p&gt;I will refer you to an excellent thread on this a few days ago &lt;a href=&quot;http://programmers.stackexchange.com/questions/18406/do-i-need-to-understand-algorithms-and-data-structures-to-be-called-a-programmer/18416#18416&quot;&gt;Do I need to understand algorithms and data structures to be called a programmer?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-15T13:05:54.613" CommentCount="1" />
  <row Id="19061" PostTypeId="2" ParentId="19055" CreationDate="2010-11-15T13:08:21.767" Score="7" ViewCount="" Body="&lt;p&gt;Just remember there is not &quot;right&quot; way to do something. There are many wrong ways, many ok ways, and a few good ways to solve most problems. I will get knocked for this but the ROI for perfect code is not worth it because it doesn't exist. Only good code and bad code. As a programmer you have to strive for the best code quality you can in the time given. How much it pains me to say it, we are in the business of shipping software. If we don't we don't make money. Before I kill your spirit, striving for perfection is something you should always do just don't let it get you down if you can not always get there. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will get off my little box now and actually answer you question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was much like you on theory. In college I was great in my practical classes but always had trouble with the theory classes. This was because during college, I did not see the importance of it. Now that I work in the real world, it has become clear as to why it is important. Knowing the theory behind a subject makes it easier to know if you are going down the right road when solving a problems. It allows you to work at a higher level than code (more general) when working through a design of a system. If you think only in code, it is possible to become short sighted with solutions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you doing it wrong? No. You have noticed an area you could be better in. You have done the hard part and that is seeing an area you could be better in. Keep it up. The development community needs more people who care enough to get better.&lt;/p&gt;&#xA;" OwnerUserId="3421" LastEditorUserId="3421" LastEditorDisplayName="" LastEditDate="2010-11-15T15:19:00.207" LastActivityDate="2010-11-15T15:19:00.207" CommentCount="3" />
  <row Id="19062" PostTypeId="2" ParentId="19055" CreationDate="2010-11-15T13:10:50.527" Score="0" ViewCount="" Body="&lt;p&gt;In being obsessed with good code practices you must understand why they are good in comparison to the alternatives. So by understanding what is bad, you are better placed to understand - and therefore explain to others - what is good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, you must learn the theory. In doing so you will learn different approaches to problems that cross-pollenate into other areas of your programming life. &lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-15T13:10:50.527" />
  <row Id="19063" PostTypeId="2" ParentId="18843" CreationDate="2010-11-15T13:17:03.980" Score="0" ViewCount="" Body="&lt;p&gt;I work on such an app, built on top of Ext JS. The app is organized modularly. Different modules are implemented as self-contained components that clean up after themselves when they are removed from the Ext component hierarchy. On-demand loaders load additional components right before they are needed (one js file = one component).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found that this approach is not that hard to scale. The only real limits I've run into are related to having too many DOM elements in the tree at the same time in IE. The solution there is to strategically unload hidden parts of the application. Because all DOM manipulation occurs via the Ext component hierarchy, the DOM is almost fully abstracted away, and development remains straightforward.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-11-15T13:17:03.980" CommentCount="1" />
  <row Id="19064" PostTypeId="2" ParentId="18984" CreationDate="2010-11-15T13:20:03.913" Score="0" ViewCount="" Body="&lt;p&gt;I worked on software projects for researchers in my department (which was Physics) during the vacations. I usually didn't get much or any money (though a couple of the projects counted as course credit), just accommodation expenses. But the experience was very useful, and I was able to refer to those projects when I went to my &quot;real world&quot; job interviews. In fact I also got good references from the supervisors. So I'd recommend that as a way to get programming experience - it'll definitely fit around your study timetable, because you're working for people who are interested in ensuring you commit to that timetable.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-11-15T13:20:03.913" />
  <row Id="19065" PostTypeId="2" ParentId="18984" CreationDate="2010-11-15T13:24:52.843" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://craigslist.org&quot; rel=&quot;nofollow&quot;&gt;Craigslist&lt;/a&gt; has been a great resource to find part time work.  The bonus is that its local.  Surprised no one mentioned this yet.  &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-11-15T13:24:52.843" CommentCount="1" />
  <row Id="19066" PostTypeId="2" ParentId="19006" CreationDate="2010-11-15T13:26:25.440" Score="0" ViewCount="" Body="&lt;p&gt;You should target your CV/resume to the context in which it's being applied. Are you applying for a job where they want experience of &quot;programming languages including Java, C++ and HTML&quot;? If you have the relevant experience, list it. Ask yourself whether your Rexx knowledge needs to be presented at all, and if so whether to lump it in with everything else or put it in a secondary section.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually have a &quot;relevant technologies&quot; section where I list the things that I have experience in and have been explicitly asked for in the person spec, and a &quot;technology experience&quot; section which is a bit more expansive. Remember that the target audience for your resume includes HR people who &lt;em&gt;aren't&lt;/em&gt; technology experts. They don't care whether you think HTML is a programming language, a markup language or a document format: they care whether they can readily discover if your experiences match those they've been asked to look for.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-11-15T13:26:25.440" />
  <row Id="19067" PostTypeId="2" ParentId="18556" CreationDate="2010-11-15T13:40:45.850" Score="0" ViewCount="" Body="&lt;p&gt;Vim + mercurial&lt;/p&gt;&#xA;" OwnerUserId="3666" LastActivityDate="2010-11-15T13:40:45.850" />
  <row Id="19068" PostTypeId="2" ParentId="19055" CreationDate="2010-11-15T13:41:33.057" Score="3" ViewCount="" Body="&lt;p&gt;Congratulations, you identified an area of need in your career. We all do it, what draws the line between good programmers and the only mediocre is what you do with that identification. The mediocre ignore it, saying &quot;I'll figure that out if I ever need to&quot;, and happily bungle their way through their career, not caring about how or where they could be getting better. Good programmers take time and work to patch the gap in their body of knowledge, to become better at what they do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what that you don't understand theory. Now's the best time to start learning! Do a quick search, or ask a question here about what books you should read -- you'll have a dozen awesome examples by lunch. The only person who can help you improve is you.&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-11-15T13:41:33.057" />
  <row Id="19069" PostTypeId="2" ParentId="16301" CreationDate="2010-11-15T13:42:50.800" Score="1" ViewCount="" Body="&lt;p&gt;Focus. That's the key to working fast. I use the &lt;a href=&quot;http://www.pomodorotechnique.com/&quot; rel=&quot;nofollow&quot;&gt;Pomodoro Technique&lt;/a&gt; to help me focus in short but intense intervals.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-15T13:42:50.800" CommunityOwnedDate="2011-01-23T10:19:44.323" />
  <row Id="19070" PostTypeId="2" ParentId="1338" CreationDate="2010-11-15T14:03:34.037" Score="4" ViewCount="" Body="&lt;p&gt;at my previous job, which I gladly quit 3 months ago:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;database:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Table names had to be uppercase.&lt;/li&gt;&#xA;&lt;li&gt;Table names had to be prefixed TBL_&lt;/li&gt;&#xA;&lt;li&gt;Fields had to be prefixed: DS_ (for&#xA;varchar, which made no sense) NU_ for&#xA;numbers CD_ for (&quot;bit fields&quot;) DT_&#xA;for dates&lt;/li&gt;&#xA;&lt;li&gt;database fields had also to be uppercase [CD_ENABLED]&lt;/li&gt;&#xA;&lt;li&gt;same with sp names [SP_INFINITY_USER_GROUPS_QRY] and database names [INFINITY]&lt;/li&gt;&#xA;&lt;li&gt;did I mention sp names were actually like that? SP_ prefix, then database name SP_INFINITY_ then table name, SP_INFINITY_USER_GROUPS then what the sp was actually expected to do (QRY,UPD,DEL,INS) jesus, don't even get me started on queries that weren't just CRUD queries.&lt;/li&gt;&#xA;&lt;li&gt;all text fields had to be varchar(MAX), unequivocally. &lt;/li&gt;&#xA;&lt;li&gt;numbers were either int or double, even when you could have used other type.&lt;/li&gt;&#xA;&lt;li&gt;&quot;boolean&quot; fields (bit) were int, no reason.&lt;/li&gt;&#xA;&lt;li&gt;stored procedures had to be prefixed sp_productname_&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;asp.net / c# / javascript&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;EVERY single function had to be wrapped in try{}catch{}, so the applications wouldn't &quot;explode&quot; (at least that was the official reason), even when this produced things not working and not having a clue why.&lt;/li&gt;&#xA;&lt;li&gt;parameters must be prefixed with p, e.g pCount, pPage&lt;/li&gt;&#xA;&lt;li&gt;scope variables had to be prefixed with w (as in &quot;working&quot;, what the hell does that even mean?)&lt;/li&gt;&#xA;&lt;li&gt;statics with g, etc.&lt;/li&gt;&#xA;&lt;li&gt;everything post framework 1.1 was offlimits, like you had any real uses for linq and generics anyways. (I made it a point to enforce them to let me use jquery though, I succeded at that, at least).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2046" LastActivityDate="2010-11-15T14:03:34.037" CommunityOwnedDate="2010-11-15T14:03:34.037" CommentCount="3" />
  <row Id="19071" PostTypeId="1" CreationDate="2010-11-15T14:21:47.080" Score="5" ViewCount="206" Body="&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am preparing a memoir about &quot;Why do (some) IT projects become too complex and how to avoid it ?&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have ever encountered projects having complex codes or were hard to maintain, how did you manage to go through it? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have to choose between several applications to use in your project, what would be your top priority in their functionality and why?&lt;/p&gt;&#xA;" OwnerUserId="7712" LastActivityDate="2010-11-15T16:06:39.907" Title="How to deal with complex codes in (huge) projects" Tags="&lt;project-management&gt;&lt;programming-practices&gt;&lt;development-process&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="19072" PostTypeId="2" ParentId="282" CreationDate="2010-11-15T14:30:28.220" Score="2" ViewCount="" Body="&lt;p&gt;I listen to this French podcast on .NET  &lt;a href=&quot;http://www.visualstudiotalkshow.com/Archives/127-25octobre2010-SylvieT.html&quot; rel=&quot;nofollow&quot;&gt;Visual Studio Talk Show&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7213" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-26T15:30:35.377" LastActivityDate="2011-02-26T15:30:35.377" CommunityOwnedDate="2010-12-21T06:02:41.540" />
  <row Id="19073" PostTypeId="1" CreationDate="2010-11-15T14:30:34.460" Score="6" ViewCount="208" Body="&lt;p&gt;Does your company donate financially to open source projects?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My company doesn't. We use open source operating systems, tools, libraries, IDEs, application servers, databases, websites (Wikipedia) etc. We produce a product from this which we sell. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yet we contribute nothing back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure this is the normal case in many companies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can this be justified?&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-16T06:09:31.167" Title="Does your company donate financially to open source projects? Why not?" Tags="&lt;work-environment&gt;&lt;open-source&gt;&lt;ethics&gt;" AnswerCount="6" CommentCount="1" />
  <row Id="19074" PostTypeId="2" ParentId="18564" CreationDate="2010-11-15T14:31:16.993" Score="3" ViewCount="" Body="&lt;p&gt;Terry Winograd's &lt;a href=&quot;http://hci.stanford.edu/~winograd/shrdlu/&quot; rel=&quot;nofollow&quot;&gt;SHRDLU&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doug Lenat's &lt;a href=&quot;http://en.wikipedia.org/wiki/Automated_Mathematician&quot; rel=&quot;nofollow&quot;&gt;Automated Mathematician&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-11-15T14:31:16.993" CommentCount="2" />
  <row Id="19075" PostTypeId="2" ParentId="19006" CreationDate="2010-11-15T14:34:28.747" Score="1" ViewCount="" Body="&lt;p&gt;I'm going to respond from the perspective of someone who's read resumes. This is how &lt;strong&gt;I&lt;/strong&gt; read them, so YMMV as always.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I see a resume with something like &lt;em&gt;&quot;Languages: jQuery, Django, Joomla&quot;&lt;/em&gt;, it's pretty much an instant round-file. I would be fine the equivalent &lt;em&gt;&quot;Languages: JavaScript, Python, PHP&quot;&lt;/em&gt;, with a call out that you have experience with jQuery/Django/Joomla, but the first statement makes it look like you don't actually know the difference between a framework/library and a language, and that's not really a good sign.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I accept CSS/HTML/XML/XSLT as &quot;languages&quot;. But I don't assume you've never heard of them if you fail to mention them specifically (though I will follow up to make sure, if you make it to the phone screen), and I don't raise an eyebrow at people who have a separate &quot;tools&quot; section where they list markups/VCS/servers they're familiar with.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-15T14:34:28.747" />
  <row Id="19076" PostTypeId="2" ParentId="2051" CreationDate="2010-11-15T14:38:48.233" Score="2" ViewCount="" Body="&lt;p&gt;In my case it would be a client requesting a Web App feature to &quot;block print screen&quot; while on the application, which makes absolutely no sense because in order to do that you have to either disable the clipboard, disable the key for the whole computer, but no, they wanted to disable the print screen key client-side (through javascript), which makes it even more senseless, on top of that no matter what you do as long as you are not affecting the whole computer functionality (which, you shouldn't), the user could work around it by just focusing another application and using print screen when the focus is on that other window.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ridiculous.&lt;/p&gt;&#xA;" OwnerUserId="2046" LastActivityDate="2010-11-15T14:38:48.233" CommunityOwnedDate="2010-11-15T14:38:48.233" />
  <row Id="19077" PostTypeId="2" ParentId="19036" CreationDate="2010-11-15T14:40:44.187" Score="2" ViewCount="" Body="&lt;p&gt;Depending on your interface requirements, you should take a look at Real Studio (REALbasic). It's not free, but it does support most common interface elements on Mac, Windows, and Linux with minimal platform-specific conditional statements. You would be able to write a lot of code within   he same code base for all platforms including interface interactions with minimal fuss.&lt;/p&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2010-11-15T14:40:44.187" />
  <row Id="19078" PostTypeId="2" ParentId="19071" CreationDate="2010-11-15T14:40:58.450" Score="4" ViewCount="" Body="&lt;p&gt;I don't think you can ever completely avoid complexity over time, but there are ways to mitigate it:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Keep the code as clean as possible at all times, within reason. (In the &quot;how Uncle Bob defines 'clean'&quot; sense.)&lt;/li&gt;&#xA;&lt;li&gt;Apply code reviews and/or pair programming to lower the odds of one developer over-engineering things needlessly.&lt;/li&gt;&#xA;&lt;li&gt;Maintain adequate unit tests and integration tests.&lt;/li&gt;&#xA;&lt;li&gt;Invest in a continuous integration server and build often. Release often too, if possible.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;All of this is somewhat dependent on what the project actually entails. Sometimes, for example, it'll be beneficial to accept complexity in exchange for performance. Not all complex code is necessarily a bad thing. In general, though, I think following these guidelines should help.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-11-15T14:40:58.450" />
  <row Id="19079" PostTypeId="2" ParentId="19073" CreationDate="2010-11-15T14:45:11.693" Score="5" ViewCount="" Body="&lt;p&gt;I encourage the following when asked what to do:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Contribute back all enhancements you made&lt;/strong&gt;, even if the license doesn't explicitely ask you to do so.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Contribute back to the community by &lt;strong&gt;releasing some of your pojects as open source&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Contribute financially&lt;/strong&gt; if you can't do any of the above or you feel it's not enought.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-15T14:45:11.693" />
  <row Id="19080" PostTypeId="2" ParentId="19071" CreationDate="2010-11-15T14:47:52.647" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Document, Document, Document!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work with some pretty complex MVC code, and am only now actually &lt;em&gt;understanding&lt;/em&gt; how it works, as opposed to accepting it on faith. Whenever I make a change that I have a hard time figuring out, I put a comment in the code at that section to help clarify what is happening. It might not have helped me since it wasn't there, but it'll help the next person around. I also like to ask other programmers around me to look at my changes to see if they are clear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My company has an internal wiki that we use for documenting a lot of the meta tasks we do, like virtual server problems, common queries, etc. Whenever I come across something I've not done before but will have to do often, I check to see if there's a wiki on it. If there isn't I'll make one. More people have gotten involved in it as well recently, so I hope it will grow faster. I think it really helps communication of the more mundane tasks we have.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-15T14:47:52.647" CommentCount="2" />
  <row Id="19081" PostTypeId="2" ParentId="282" CreationDate="2010-11-15T14:53:31.373" Score="0" ViewCount="" Body="&lt;h2&gt;Boagworld&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://boagworld.com/category/podcast/&quot; rel=&quot;nofollow&quot;&gt;http://boagworld.com/category/podcast/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's finished now, but the archive is well worth listening to.&lt;/p&gt;&#xA;" OwnerUserId="2180" LastActivityDate="2010-11-15T14:53:31.373" CommunityOwnedDate="2010-12-21T06:02:41.540" />
  <row Id="19082" PostTypeId="2" ParentId="19073" CreationDate="2010-11-15T14:59:22.947" Score="5" ViewCount="" Body="&lt;p&gt;The company has a duty to its shareholders to maximise the return on their investment. There are two options:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;don't contribute financially&lt;/li&gt;&#xA;&lt;li&gt;contribute financially&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The directors have to choose the option that improves shareholder return. Only one of the two options involves not spending money.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-11-15T14:59:22.947" CommentCount="3" />
  <row Id="19083" PostTypeId="2" ParentId="282" CreationDate="2010-11-15T15:27:09.067" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;Business / Marketing / Startups :&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://mixergy.com/&quot; rel=&quot;nofollow&quot;&gt;Mixergy&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://thisweekin.com/startups&quot; rel=&quot;nofollow&quot;&gt;This week in Startups&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Technical:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/user/GoogleTechTalks&quot; rel=&quot;nofollow&quot;&gt;Google Tech Talks&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.hanselminutes.com/archives.aspx&quot; rel=&quot;nofollow&quot;&gt;Scott Hanselam&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://polymorphicpodcast.com/&quot; rel=&quot;nofollow&quot;&gt;polymorphicpodcast&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://itunes.apple.com/us/podcast/ruby-on-rails-podcast/id74844961?ign-mpt=uo%3D4&quot; rel=&quot;nofollow&quot;&gt;Ruby on Rails Podcast&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://itunes.apple.com/us/podcast/deep-fried-bytes/id281776316?ign-mpt=uo%3D4&quot; rel=&quot;nofollow&quot;&gt;Deep fried Bytes&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://itunes.apple.com/us/podcast/herding-code/id284067914?ign-mpt=uo%3D4&quot; rel=&quot;nofollow&quot;&gt;Herding Code&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7675" LastEditorUserId="7675" LastEditorDisplayName="" LastEditDate="2010-11-15T15:39:22.567" LastActivityDate="2010-11-15T15:39:22.567" CommunityOwnedDate="2010-11-15T15:39:22.567" />
  <row Id="19084" PostTypeId="2" ParentId="19055" CreationDate="2010-11-15T15:29:58.627" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I know what most of the concepts mean,&#xA;  I understand them but if someone would&#xA;  ask me to explain something I often&#xA;  find it difficult. This means that if&#xA;  I were to look for a job and the&#xA;  interviewer would ask me questions,&#xA;  they would immediately think I don't&#xA;  know much about the subject.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Why couldn't you just articulate your interpretation of the meaning behind the concept?  I'm asking this because while I may sometimes &lt;em&gt;think&lt;/em&gt; I understand something the real test comes when I try to teach someone else the same concept.  Another idea would be to discuss some of the theoretical knowledge with someone that may help you when it comes to discussing it if just the articulation is your problem.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-15T15:29:58.627" />
  <row Id="19085" PostTypeId="1" CreationDate="2010-11-15T15:32:54.973" Score="17" ViewCount="587" Body="&lt;p&gt;I have heard lots of anecdotal evidence that using VSS is a horrible idea because sooner or later, it will just lose/corrupt/delete all of your work. (I am even guilty of using such evidence as one of the motivating factors to switch to SVN a while back). However, though I really prefer Update/Commit to Checkout/Checkin, it is horrible over SVN and there isn't good branching support, I have never actually had a catastrophic VSS experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has VSS ever ruined your project/job/sanity? Old version or new? Is there truth behind the stories?&lt;/p&gt;&#xA;" OwnerUserId="4403" LastActivityDate="2010-11-18T23:46:48.903" Title="Have you ever been really badly burned by VSS?" Tags="&lt;horror-stories&gt;" AnswerCount="10" CommentCount="4" FavoriteCount="4" />
  <row Id="19086" PostTypeId="2" ParentId="19085" CreationDate="2010-11-15T15:41:02.173" Score="4" ViewCount="" Body="&lt;p&gt;No.  But I have to say that it has been many, many years since I've used it (and I'm not looking to go back any time soon).  For all of the bad things that I don't like about it, it never did hose any of my code.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-11-15T15:41:02.173" />
  <row Id="19087" PostTypeId="2" ParentId="19085" CreationDate="2010-11-15T15:45:42.343" Score="0" ViewCount="" Body="&lt;p&gt;I've never had a problem with VSS but did hear and read about it's lack of reliability :&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A testimonial from the field :&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.highprogrammer.com/alan/windev/sourcesafe.html&quot; rel=&quot;nofollow&quot;&gt;http://www.highprogrammer.com/alan/windev/sourcesafe.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7675" LastActivityDate="2010-11-15T15:45:42.343" CommentCount="1" />
  <row Id="19088" PostTypeId="2" ParentId="19085" CreationDate="2010-11-15T15:48:04.233" Score="13" ViewCount="" Body="&lt;p&gt;Our company started using it around 1995. We began phasing it out about 4 years ago.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[Editing to include the team as it was a &quot;we were burned&quot;, not &quot;I&quot;]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, We've been burned several times.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Spent 2 or 3 weekends in the office baby sitting repairs on the repository.&lt;/li&gt;&#xA;&lt;li&gt;Spent 1 weekend about 5 years ago splitting the main repository into sub repositories because it finally got to brittle.&lt;/li&gt;&#xA;&lt;li&gt;Spent countless hours manually branching and re-basing code because VSS won't reliably allow this.&lt;/li&gt;&#xA;&lt;li&gt;Have lost some time due to corrupt files but that was years ago and I don't recall the details.&lt;/li&gt;&#xA;&lt;li&gt;Had to waste time and gas (there fore emitting CO2...) to drive into the office on nights weekends (during crunch time) to check-out files or view history because using VSS over a VPN is possible only if you wait 2-10 minutes per folder click.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As far as versions go, it was my understanding (correct me if I'm wrong) that 2005 was the last update and that was mainly on the client. The back-end (the critical end) is still a decade old.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I think of more, I'll edit the answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, I'm now a happy user of SVN.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastEditorUserId="4752" LastEditorDisplayName="" LastEditDate="2010-11-15T17:44:03.620" LastActivityDate="2010-11-15T17:44:03.620" CommentCount="1" />
  <row Id="19089" PostTypeId="2" ParentId="19085" CreationDate="2010-11-15T15:49:52.760" Score="8" ViewCount="" Body="&lt;p&gt;Yes, but only in multi-user environments and only in the previous version.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The VSS becoming corrupted is usually quite obvious and can be easily restored from backup (take lots of backups) but there are conditions where in team use it forgets the state of something and allows edits to locked files or accidental rollbacks with no warning.  This can go unnoticed for some time (especially if the tests get rolled back also) and is a lot uglier to clean up after time has passed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I lost 9 months worth of work incrementally over a three month period once.  That was my worst.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I switched to other source control before I had much opportunity to test, but the latest VSS was suppose to correct much of that.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-15T15:49:52.760" />
  <row Id="19090" PostTypeId="1" CreationDate="2010-11-15T15:52:01.807" Score="1" ViewCount="404" Body="&lt;p&gt;Please note that this is different than other similar questions. I'm interested in knowing if you personally or otherwise(a friend told you about someone, read somewhere) know of anyone that currently works as a programmer(or has his/her own company) without having an education (no high school diploma even), not if you can or not find a job without an education.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you know how that someone managed to find the job in a field where most have a degree. I'm interested in knowing what did the said person do before finding a job as a programmer, how he found the programming job(did he impress someone with his skills and work in OS projects, did he develop a great product or did he just got lucky). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best answer will get accepted. &lt;/p&gt;&#xA;" OwnerUserId="2849" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-12-23T13:57:40.713" LastActivityDate="2010-12-23T13:57:40.713" Title="Do you know of a person that found a job in this industry without an education ?" Tags="&lt;career&gt;&lt;great-programmer&gt;" AnswerCount="9" CommentCount="5" />
  <row Id="19091" PostTypeId="2" ParentId="19071" CreationDate="2010-11-15T15:54:32.040" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;technical debt&lt;/p&gt;&#xA;&#xA;&lt;p&gt;refactor to eliminate&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;business changes&lt;/p&gt;&#xA;&#xA;&lt;p&gt;adapt and expunge&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;tool changes&lt;/p&gt;&#xA;&#xA;&lt;p&gt;new tools, same old architecture = impedence mismatch &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-15T15:54:32.040" />
  <row Id="19092" PostTypeId="2" ParentId="19085" CreationDate="2010-11-15T15:58:25.437" Score="0" ViewCount="" Body="&lt;p&gt;Oh yes - the data files got corrupted several times. VSS is notoriously poor with maintaining binary files. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a nice blog post by &lt;a href=&quot;http://www.codinghorror.com/blog/2006/08/source-control-anything-but-sourcesafe.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Jeff Atwood&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5564" LastActivityDate="2010-11-15T15:58:25.437" />
  <row Id="19093" PostTypeId="1" CreationDate="2010-11-15T15:59:55.457" Score="8" ViewCount="198" Body="&lt;p&gt;I keep learning new keyboard shortcuts for Visual Studio and I find some of them increase my productivity a lot. I was wondering what keyboard shortcuts in VS you found useful and why. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know I could find a list of shortcuts online somewhere, but I don't think that would be as beneficial to me as asking here since there are so many shortcuts and I think my eyes would just glaze over trying to read that list.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some that are extremely useful to me:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;F12&lt;/strong&gt; - Goes to the definition of any class or method. It has saved me so much time searching code files once I found that one out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Ctrl+M, O|L&lt;/strong&gt; - Expands/Collapses regions in C# or tags in XAML files. I love this feature in XAML files since I can't use Regions in them to make my code easier to read&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Ctrl+R, E&lt;/strong&gt; - Builds a property's Get/Set methods for me. That, combined with a few macros, makes building accessor methods a lot less painful&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Ctrl+E, D&lt;/strong&gt; - Fixes the whitespaces in code files&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also created my own keyboard shortcut to CloseAllOpenFiles since VS2010 moved the Close button on open files and I can no longer keep my mouse in one place and spam-click to close all my open files. Why would they they think its a good idea to put the close button on each tabs and make the tabs various widths....&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-11-15T22:29:40.193" Title="What are some of the more useful Keyboard Shortcuts for Visual Studio?" Tags="&lt;self-improvement&gt;&lt;visual-studio-2010&gt;&lt;keyboard-shortcuts&gt;" AnswerCount="9" CommentCount="6" FavoriteCount="1" />
  <row Id="19094" PostTypeId="2" ParentId="19006" CreationDate="2010-11-15T16:01:18.730" Score="4" ViewCount="" Body="&lt;p&gt;My CV has a &quot;Languages and Frameworks&quot; section that looks something like this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ECMAScript/Javascript (JQuery, Qooxdoo, YUI)&lt;/li&gt;&#xA;&lt;li&gt;C++ (Qt, STL, ATL, MFC)&lt;/li&gt;&#xA;&lt;li&gt;Python (Wx)&lt;/li&gt;&#xA;&lt;li&gt;XML, XSLT, XSD&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This is for three reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Although no one would expect you to have experience using JQuery or YUI in C++, this does help disambiguate your hypothetical experience of Qt in C++ from your lack of experience in Wx in C++.  Simply placing Wx or Qt in a later bundle of frameworks doesn't do this.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It gives a concise headline for each category, so that a knowledgeable recruiter can scan it to find what they want, whilst still filling it with enough buzzword to get your CV to get past recruitment bots.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;By not calling this section &quot;programming languages&quot;, I also get to avoid being roundfiled by someone who disagrees with my assertion about whether or not XSLT is a programming language.  Not to mention those who maintain an arbitrary distinction between Programming and Scripting languages.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="628" LastActivityDate="2010-11-15T16:01:18.730" />
  <row Id="19095" PostTypeId="2" ParentId="19090" CreationDate="2010-11-15T16:02:25.710" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Jamie_Zawinski&quot; rel=&quot;nofollow&quot;&gt;Jamie Zawinski&lt;/a&gt;. He took his high school diploma and went directly to work as a professional software engineer. He does have a high school education, but considering the influence he has had and work that he has done...&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-11-15T16:02:25.710" />
  <row Id="19096" PostTypeId="2" ParentId="19093" CreationDate="2010-11-15T16:04:04.933" Score="2" ViewCount="" Body="&lt;p&gt;I find these shortcuts very useful during debugging sessions:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;CTRL + ALT + &quot;e&quot;&lt;/strong&gt;:  to open the &lt;strong&gt;Exceptions window&lt;/strong&gt;, where you can control how Visual Studio behaves when program exceptions are encountered (halt execution or ignore). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;F9&lt;/strong&gt; - sets a &lt;strong&gt;breakpoint&lt;/strong&gt; on the line of code your cursor is currently on.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="3262" LastEditorDisplayName="" LastEditDate="2010-11-15T16:09:39.437" LastActivityDate="2010-11-15T16:09:39.437" CommentCount="1" />
  <row Id="19097" PostTypeId="2" ParentId="18579" CreationDate="2010-11-15T16:06:28.377" Score="2" ViewCount="" Body="&lt;p&gt;more stable than dead imho:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.thinqlinq.com/default/LINQ-to-SQL-enhancements-for-2010.aspx&quot; rel=&quot;nofollow&quot;&gt;http://www.thinqlinq.com/default/LINQ-to-SQL-enhancements-for-2010.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://jonkruger.com/blog/2009/06/06/linq-to-sql-is-not-dead/&quot; rel=&quot;nofollow&quot;&gt;http://jonkruger.com/blog/2009/06/06/linq-to-sql-is-not-dead/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They have shifted their improvement effort over to Entity Framework where it is really needed if that product is to succeed.  Expect nothing new but compatibility and bug fix on linq2sql for a while.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This site is run with a whole lot of linq2sql if I am not mistaken.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-15T16:06:28.377" CommentCount="4" />
  <row Id="19098" PostTypeId="2" ParentId="19093" CreationDate="2010-11-15T16:06:33.400" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;CTRL-K, D&lt;/strong&gt; - format document&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;CTRL-.&lt;/strong&gt; - resolve (add using)&lt;/p&gt;&#xA;" OwnerUserId="4512" LastActivityDate="2010-11-15T16:06:33.400" CommentCount="2" />
  <row Id="19099" PostTypeId="2" ParentId="19071" CreationDate="2010-11-15T16:06:39.907" Score="2" ViewCount="" Body="&lt;p&gt;Also, resist the temptation to add quick hacks because the code is complex/bad/hacky already. In my experience you'll end up with exponential more complexity.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-11-15T16:06:39.907" CommentCount="1" />
  <row Id="19100" PostTypeId="1" AcceptedAnswerId="19114" CreationDate="2010-11-15T16:20:36.170" Score="1" ViewCount="161" Body="&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have to admit, until recently I did not know there was such a thing as a &quot;System DBA&quot; and &quot;Application DBA.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently, I am an Application/System Admin for a large CMS. I would like to pursue a track/training that would eventually lead to this role of &quot;Application DBA&quot;, the ultimate goal being understanding how to best use Apps and DBs together.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our Apps run on Oracle 10g. I do OK with basic SQL (selects, inserts, updates and can figure out a join or two, etc), but right now most of our DB support (e.g., generating and interpreting AWR reports, etc) is from the System DBA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I came across several posts that talked about becoming a DBA, but I would appreciate any advice and pointers towards an &quot;Application DBA&quot; role.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many Thanks!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;KM&lt;/p&gt;&#xA;" OwnerUserId="7723" LastActivityDate="2010-11-15T19:22:14.433" Title="Becoming an “Application DBA”?" Tags="&lt;career&gt;&lt;oracle&gt;&lt;cms&gt;" AnswerCount="3" CommentCount="0" />
  <row Id="19101" PostTypeId="2" ParentId="19093" CreationDate="2010-11-15T16:25:32.683" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;CTRL + K + C|U&lt;/strong&gt;: comment/uncomment selected lines of code&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-15T16:25:32.683" CommentCount="2" />
  <row Id="19102" PostTypeId="2" ParentId="19093" CreationDate="2010-11-15T16:26:37.470" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Alt+W W Home Shift+End Alt+C Esc&lt;/strong&gt; - closes all code windows :-)&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-15T16:26:37.470" CommentCount="1" />
  <row Id="19103" PostTypeId="2" ParentId="19090" CreationDate="2010-11-15T16:27:45.147" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Bill_Gates&quot; rel=&quot;nofollow&quot;&gt;Bill Gates&lt;/a&gt; - has high school, then dropped out of Harvard. He made most of his life without a degree, although he did &lt;a href=&quot;http://www.usatoday.com/tech/news/2007-03-22-gates-harvard-degree_N.htm&quot; rel=&quot;nofollow&quot;&gt;get a honorary one a few years back&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-15T16:27:45.147" CommentCount="1" />
  <row Id="19104" PostTypeId="1" AcceptedAnswerId="19109" CreationDate="2010-11-15T16:31:23.567" Score="17" ViewCount="943" Body="&lt;p&gt;How would you interview someone you know well or someone you may even be friends with? What if you already know their strengths and weaknesses. I would prefer to avoid this situation by delegating this task to somebody else, but what if this is not an option. I feel like there is just too much personal feelings involved and it is almost impossible to be unbiased. If you have been in an similar situations, how did you handle them? &lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-11-16T00:41:10.297" ClosedDate="2010-11-17T06:06:19.220" Title="How to interview someone you know well?" Tags="&lt;interview&gt;" AnswerCount="10" CommentCount="3" FavoriteCount="1" />
  <row Id="19105" PostTypeId="2" ParentId="19090" CreationDate="2010-11-15T16:33:57.927" Score="2" ViewCount="" Body="&lt;p&gt;I have worked with many individuals who do not have a CS degree, but most of them have at least a bachelors. My bachelors is in networking, but I have been working in CS for over 6 years. My last coworker had a aeronautics degree instead of CS. I once worked with someone who had a language bachelors only. I have also worked with programmers with only an associates degree. All the individuals involved started in a technical field and started working on usefull scripting projects in a place where there were no other developers available or willing. Usually once you get the reputation as someone who knows any scripting or coding, work comes to you.&lt;/p&gt;&#xA;" OwnerUserId="6908" LastActivityDate="2010-11-15T16:33:57.927" CommentCount="1" />
  <row Id="19106" PostTypeId="2" ParentId="19104" CreationDate="2010-11-15T16:35:44.123" Score="6" ViewCount="" Body="&lt;p&gt;Your behavior &lt;strong&gt;will&lt;/strong&gt; be affected. And your &lt;strong&gt;judgment&lt;/strong&gt; too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I highly suggest you to delegate the task to someone else and then discuss with him privately.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-15T16:35:44.123" />
  <row Id="19107" PostTypeId="2" ParentId="19104" CreationDate="2010-11-15T16:36:24.763" Score="25" ViewCount="" Body="&lt;p&gt;Precisely as you described - by delegating to someone else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you already know their strengths and weaknesses what are you hoping to learn from the interview?&lt;/p&gt;&#xA;" OwnerUserId="7725" LastActivityDate="2010-11-15T16:36:24.763" CommentCount="5" />
  <row Id="19108" PostTypeId="2" ParentId="19090" CreationDate="2010-11-15T16:43:53.650" Score="2" ViewCount="" Body="&lt;p&gt;I don't have a CS degree, and I have a co-worker with no degree at all.  He is a highly regarded consultant with 6 years experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, he's homeschooled, so he has no institutional degree at all.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-11-15T16:43:53.650" />
  <row Id="19109" PostTypeId="2" ParentId="19104" CreationDate="2010-11-15T16:47:19.747" Score="11" ViewCount="" Body="&lt;p&gt;If you can't delegate to someone else entirely, involve other people in the interview. Make it clear to the person you're interviewing that you will be listening to other interviewers very carefully to make sure you make the best decision.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it can still be beneficial for you to be present at the interview. Observing a person's performance and behaviour will still be helpful even though you already know their strengths and weaknesses. You might notice something (either good or bad) you didn't pay attention to before, when you weren't critically looking at them as an interviewer.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-11-15T16:47:19.747" />
  <row Id="19110" PostTypeId="2" ParentId="19104" CreationDate="2010-11-15T16:49:28.077" Score="0" ViewCount="" Body="&lt;p&gt;I was in similar situation sometime back. I let other team lead take the interview. It is a weird situation and may end up being awkward situation for both of you. You may select the candidate or not it will have a guaranteed effect on your future harmony. As far as possible try to avoid or else you may be leading to turmoil&lt;/p&gt;&#xA;" OwnerUserId="7478" LastActivityDate="2010-11-15T16:49:28.077" />
  <row Id="19111" PostTypeId="2" ParentId="19090" CreationDate="2010-11-15T16:49:36.987" Score="7" ViewCount="" Body="&lt;p&gt;I have no CS or other related degree.  I dropped out of high school and later got my GED, later still I got an Associate in Arts for general studies, but that is the extent of my education.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been employed as a programmer continuously for about a decade.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My experience has been that it is easy to show potential employers that I can program well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I (like many programmers) started at a very young age and taught myself as I went along by reading and modifying other's source, reading books and the web (once it came out), and simply experimenting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My first &quot;real&quot; job (can barely call it that) had a very low barrier to entry.  They were used to training people who could barely operate office productivity suites, so my modicum of skill was extremely well received there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;During that job I created many applications.  By the time I was ready to move on, I had plenty of project work I could claim as experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Between a few projects under my belt (and on my resume), and a fair (ok, maybe more than fair) command of .Net &amp;amp; C# and many other pieces related to developing line of business applications, I have achieved a career without an formal CS education.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this point, having a few new jobs under my belt, my fear of interviewing for programming jobs without a formal CS education is gone.  And perhaps most important, this confidence comes through when I interview.&lt;/p&gt;&#xA;" OwnerUserId="6735" LastEditorUserId="6735" LastEditorDisplayName="" LastEditDate="2010-11-15T19:24:48.163" LastActivityDate="2010-11-15T19:24:48.163" />
  <row Id="19113" PostTypeId="2" ParentId="19104" CreationDate="2010-11-15T17:01:52.480" Score="2" ViewCount="" Body="&lt;p&gt;If I had to interview someone I knew well and couldn't get out of it, I'd probably try to set up a formal interview with some formal questions that are standard things like &quot;why do you want this job&quot; or &quot;what do you like about this company&quot; kind of basics where the key here is to see if something changes with this person.  Some people may change when in an interview and this may be worth noting to some extent.  There is also something about in this situation whether or not my friend rises to the occasion.  For example, if answering the &quot;why you want to work here&quot; the answer given is, &quot;Well, because you work here!&quot; that wouldn't be very encouraging to my mind as I'd want to know how well do they see themselves in the job.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-15T17:01:52.480" />
  <row Id="19114" PostTypeId="2" ParentId="19100" CreationDate="2010-11-15T17:02:41.963" Score="4" ViewCount="" Body="&lt;p&gt;You'll want to learn about how different programming languages and frameworks interact with databases.  For example in the Java world, many developers use an ORM (Object Relational Mapping) framework called Hibernate, which itself is just an implementation of JPA (Java Persistence API).  You'll especially want to get a feel for the SQL that the framework generates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In particular you'll want to learn about their common performance pitfalls (for example Hibernate is terrible at deleting objects if you use its delete() naively).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll want to learn about transactions, in particular how distributed transactions work and how a transaction manager outside of the database can control transactions with in a database.  You'll also want to learn about locking mechanisms in languages and how they map to locking mechanisms in databases (e.g. How does a Java Enterprise Edition read optimistic lock on a list of objects translate into a row/table lock in your DB).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll want to learn about the difference between design databases for CRUD work and reporting/data warehouse work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Indexes, indexes, indexes!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a whole heap more, but hopefully that's a start :-)&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-15T17:02:41.963" CommentCount="2" />
  <row Id="19115" PostTypeId="2" ParentId="19030" CreationDate="2010-11-15T17:04:01.777" Score="6" ViewCount="" Body="&lt;p&gt;When in the interviewer seat, I've seen plenty of people say &quot;Oh, I've heard this one&quot;, then struggle to remember or rework a solution. So in many cases, foreknowledge doesn't give you that much of an advantage.  I'd recommend telling them you've heard it before, and proposing a solution.  If it was too easy for you, they'll give you another question and appreciate your honesty.&lt;/p&gt;&#xA;" OwnerUserId="7726" LastActivityDate="2010-11-15T17:04:01.777" />
  <row Id="19116" PostTypeId="2" ParentId="19093" CreationDate="2010-11-15T17:06:47.810" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=92CED922-D505-457A-8C9C-84036160639F&amp;amp;displaylang=en&quot; rel=&quot;nofollow&quot;&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=92CED922-D505-457A-8C9C-84036160639F&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7478" LastActivityDate="2010-11-15T17:06:47.810" CommentCount="1" />
  <row Id="19117" PostTypeId="2" ParentId="19104" CreationDate="2010-11-15T17:11:16.490" Score="6" ViewCount="" Body="&lt;p&gt;IMO this is not a big problem. Knowing the person very well IMO beats being unbiased. If the person fits the job well, hire him, otherwise politely explain that the job would not make him happy in the long run. Delegating that task to another person looks a bit like &quot;I know too much too hire him, so let somebody else make this mistake&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It could only pose a problem if that person is very desperate, and you might feel forced to hire him even if he doesn't fit. But even in that case, it's more honest to tell him &quot;sorry, I can't&quot; instead of delegating this task to someone else.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-15T17:11:16.490" CommentCount="1" />
  <row Id="19118" PostTypeId="2" ParentId="19093" CreationDate="2010-11-15T17:13:19.017" Score="0" ViewCount="" Body="&lt;p&gt;I like ALT-CTRL-B to build the application.  I tend to use that and then just refresh my website (and not the use the one below as that opens a new window). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another favorite is - CTRL-F5 to start without debugging.&lt;/p&gt;&#xA;" OwnerUserId="7213" LastEditorUserId="7213" LastEditorDisplayName="" LastEditDate="2010-11-15T17:28:24.520" LastActivityDate="2010-11-15T17:28:24.520" />
  <row Id="19119" PostTypeId="2" ParentId="19073" CreationDate="2010-11-15T17:15:32.297" Score="1" ViewCount="" Body="&lt;p&gt;As part of the corporate responsibility, A company can do several things other than a mere donation. In fact it can do better than donation. Donation is just a give away of money to a responsible organization. But there are many companies out there who contribute to society in many ways.  Such as company can utilize open source in the day to day productivity. It can publish open source application usages in blogs, web site twitter etc.  It can re-distribute open source by embedding them in their own applications. Company can let some of its own developers to contribute to open source projects. &lt;/p&gt;&#xA;" OwnerUserId="7478" LastEditorUserId="7478" LastEditorDisplayName="" LastEditDate="2010-11-16T06:09:31.167" LastActivityDate="2010-11-16T06:09:31.167" />
  <row Id="19120" PostTypeId="2" ParentId="19104" CreationDate="2010-11-15T17:17:04.333" Score="5" ViewCount="" Body="&lt;p&gt;Who is asking you to interview this person and why? Knowing that will tell you all you need to know. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, maybe this person is your neighbour, you have seen each other in the street and been at each other's house for dinner, but you don't know &quot;how many years of C++ experience do you have?&quot; or &quot;have you ever written a Disaster Recovery Plan?&quot;. That is probably a pretty easy interview to run. &quot;Look, we're friends, I already know you have integrity and you're smart, I just need to ask you some technical things.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A different example, this is your college buddy, you worked on assignments together, you know a great deal about the technical skills and personality traits that would be coming into the team, and you think this person is a definite hire. But management wants to cover their backsides and insists on an interview. Well in this case there is nothing you can ask that will change your opinion, so you should ask someone else to lead the interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you must go through the interview yourself, and you feel it's not going to help you learn anything, schedule this person LAST. By the time you have interviewed 5 or 6 other people, it may occur to you there are things you don't know about what it would be like to have your buddy (spouse? cousin? child?) join you on the team, and you actually have some good questions to ask and a decision to make.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-15T17:17:04.333" />
  <row Id="19121" PostTypeId="2" ParentId="19090" CreationDate="2010-11-15T17:20:39.553" Score="4" ViewCount="" Body="&lt;p&gt;My brother did. He's a very smart guy, exceptionally competent, always very computer literate but he never went to University and started working full time instead. He had worked in a few jobs and ended up running the IT infrastructure because he was the most technical person in a small company. When we were looking for someone to do a bit of sales and a bit of dev at the company I worked for I suggested him and he came to work for us. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best part of ten years later he's an excellent developer and doing pretty well with freelance and contract work. Not having gone to university meant that he was in the job market sooner and had more commercial experience by the time most people hit the age at which they graduate.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-15T17:20:39.553" CommentCount="1" />
  <row Id="19122" PostTypeId="2" ParentId="19030" CreationDate="2010-11-15T17:21:51.007" Score="2" ViewCount="" Body="&lt;p&gt;I think telling the interviewer only applies to those goofy &quot;gotcha&quot; questions, like the round manhole and other stuff like that. Questions where once you know the answer it's completely obvious. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reversing strings, etc, don't have an obvious &quot;gotcha&quot; solution that you can explain in 3 seconds if you know it.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-11-15T17:21:51.007" />
  <row Id="19123" PostTypeId="2" ParentId="19104" CreationDate="2010-11-15T17:32:10.443" Score="10" ViewCount="" Body="&lt;p&gt;Tell them someone else is doing the interview, but you're going to be sitting in. Then get someone else to come in and pretend to be the person in charge of the interview. You can give your fake interviewer a list of questions to ask, and still jump in yourself if you feel the need to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use whatever excuse you want to explain your presence, but make it clear that you will not be in charge of the interview and are not the person they need to impress to get the job. You could tell them its a training/learning exercise for you, or that you are there to access their technical skills since the interviewer isn't familiar with the language you're discussing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also gives you a convenient excuse if you decide to hire a different candidate.... just say you weren't the one in charge of making the final decision.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-11-15T17:32:10.443" />
  <row Id="19124" PostTypeId="2" ParentId="19003" CreationDate="2010-11-15T17:34:19.380" Score="0" ViewCount="" Body="&lt;p&gt;I will ask them to apply software practically on daily basis for sometime. And let them come out with good and bad stuff about the application. During the usage they must have come across lots of things which will become inputs for later versions. Also, testers need to be more intuitive to find bugs and bug finding skill comes to them during the course. &lt;/p&gt;&#xA;" OwnerUserId="7478" LastActivityDate="2010-11-15T17:34:19.380" />
  <row Id="19125" PostTypeId="2" ParentId="2214" CreationDate="2010-11-15T17:46:23.317" Score="0" ViewCount="" Body="&lt;p&gt;cash the check!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-15T17:46:23.317" CommunityOwnedDate="2011-03-31T09:31:23.023" />
  <row Id="19127" PostTypeId="2" ParentId="2214" CreationDate="2010-11-15T17:52:44.740" Score="0" ViewCount="" Body="&lt;p&gt;Opening a Whiskey and often with smoking Shisha.&lt;/p&gt;&#xA;" OwnerUserId="943" LastActivityDate="2010-11-15T17:52:44.740" CommunityOwnedDate="2011-03-31T09:31:23.023" />
  <row Id="19128" PostTypeId="2" ParentId="2051" CreationDate="2010-11-15T17:53:33.413" Score="6" ViewCount="" Body="&lt;p&gt;At the ISP I worked for back in the mid 1990s, the boss was friends with officers from our local police and sheriff stations. They were interested in catching securities fraud. So my boss hatches a plan:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write a program to scan websites for evidence of securities fraud. That is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Start with IP address 0.0.0.1&lt;/li&gt;&#xA;&lt;li&gt;End at 255.255.255.254&lt;/li&gt;&#xA;&lt;li&gt;Scan every web page you find at each IP&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This was back when pretty much every web server had a public-facing IP and virtual hosts didn't exist, so technically it was feasible. This was also back when a 1.5Mbps T-1 was really, really fast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem? Even if we could scan ten IPs per second, the entire job would take almost 5,000 days to complete. Yep, had we gone through with such a program, it would be just now finishing its first scan of the entire Internet.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2010-11-15T17:53:33.413" CommunityOwnedDate="2010-11-15T17:53:33.413" />
  <row Id="19129" PostTypeId="2" ParentId="2214" CreationDate="2010-11-15T17:57:23.743" Score="0" ViewCount="" Body="&lt;p&gt;I go home on time for once. It usually only lasts a week or so.&lt;/p&gt;&#xA;" OwnerUserId="749" LastActivityDate="2010-11-15T17:57:23.743" CommunityOwnedDate="2011-03-31T09:31:23.023" />
  <row Id="19130" PostTypeId="2" ParentId="19085" CreationDate="2010-11-15T18:01:18.147" Score="0" ViewCount="" Body="&lt;p&gt;My team got burned by it, but it was a long time ago (mid-late 2001, IIRC).  We ran out of space on the file server where the repo was stored.  VSS cheerfully allowed us to continue to check things in, never giving any indication there was a problem.  It started losing data around 10:00 and we didn't find out until sometime after 15:00.  We restored from the previous night's backup, but we still wound up losing a whole day's worth of work.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-15T18:01:18.147" />
  <row Id="19131" PostTypeId="2" ParentId="19100" CreationDate="2010-11-15T18:05:56.587" Score="0" ViewCount="" Body="&lt;p&gt;In larger companies this role tends to be split. In my company the platform DBAs have responsibility for dozens of databases and servers, and know very little about the applications running on them. Most application teams have at least one or two people who are database specialists, but they are part of the development team. So their work will involve database design and analysis. They will also usually manage change - they may not implement the change but they would manage revision control for the database, manage change to lookup tables and other functions. In some shops they would do most of the ETL programming as well - it depends on how much of that work exists. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because these job descriptions can vary so much, and because the job often has little to do with the job description it can be hard to lay out a career path and its going to differ between companies. Karianna's suggestions are all good things to learn.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-15T18:05:56.587" />
  <row Id="19132" PostTypeId="2" ParentId="19007" CreationDate="2010-11-15T18:18:17.920" Score="0" ViewCount="" Body="&lt;p&gt;I think a steady long-term career arc might be specializing in custom enterprise internal applications for the web in C# and Java. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not my preferred cup of coffee, but I think it'll be a great bill-paying job.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-15T18:18:17.920" CommentCount="2" />
  <row Id="19133" PostTypeId="2" ParentId="14744" CreationDate="2010-11-15T18:34:51.723" Score="18" ViewCount="" Body="&lt;p&gt;I don't think any of the answers here are really what the OP was looking for, so I'm going to throw in my own opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look, I'm an unapologetic C/C++ snob.  My attitude is that if you don't know C, then to some extent you don't &lt;em&gt;really&lt;/em&gt; know what you're doing as a programmer.  So, I think I'm the sort of &quot;biased&quot; person you're talking about here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, in practice, whether or not you &lt;em&gt;really&lt;/em&gt; know what you're doing as a programmer doesn't necessarily prevent you from developing really awesome, useful software using high-level tools.  I mean, the creator of Stack Overflow, Jeff Atwood, apparently doesn't even know C, and yet I would say Stack Overflow is a pretty damn good web application.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether or not you decide to learn C (or assembly) depends on what type of programmer you want to be.  If you just want to develop cool web apps or business apps, that's fine - no real need to learn C.  But if you want to really &lt;em&gt;excel&lt;/em&gt; at what you do - if you want to work on really &lt;em&gt;cool&lt;/em&gt; projects that push the state of the art, then you really need to take yourself seriously enough as a programmer to really &lt;em&gt;understand&lt;/em&gt; how computers work.  Since C is essentially the OS lingua franca, as well as the language that powers just about everything else (from the Linux kernel to most Java VMs, to just about every device driver), an intimate understanding of the language goes a long way.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, whether or not you should learn C really depends on what you want out of your career as a programmer.&lt;/p&gt;&#xA;" OwnerUserId="7733" LastEditorUserId="7733" LastEditorDisplayName="" LastEditDate="2010-11-15T19:34:18.337" LastActivityDate="2010-11-15T19:34:18.337" CommentCount="3" />
  <row Id="19134" PostTypeId="2" ParentId="14744" CreationDate="2010-11-15T18:49:16.177" Score="5" ViewCount="" Body="&lt;p&gt;What a great slug-fest!&#xA;(As they supposedly say: Is this a private fight, or can anybody join in?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was a professor, and what I found (after some trial-and-error) was that it was much easier to lead students through the intricate concepts of programming if they understood, at a base level, just what a computer was doing. Not in all the nitty details, but the basic principle, like what memory is, what instructions are, etc. What I like about C is it's close to the machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's not to say other teachers came to the same place. They started off in the high-level language (BASIC :-) and went forward from there, with no obvious ill effects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So bottom line, Stephen, you could be right. I wouldn't think so, but I've been wrong before.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-11-15T21:37:19.370" LastActivityDate="2010-11-15T21:37:19.370" />
  <row Id="19135" PostTypeId="1" CreationDate="2010-11-15T18:53:13.993" Score="2" ViewCount="157" Body="&lt;p&gt;I need a cheap server, all I want is to have full control of it, not having to send to and receive stupid mails from customer support, just to upgrade the php version and that sort of things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would also be nice to have a web crawler running all day long (which of course I can't do in a shared hosting, due to intensive processor usage limited to 1-2mins). I guess any virtual or dedicated can handle that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was looking into OVH offers but in their site it says their services are only for certain countries, mostly from europe.&#xA;Nodaddy's virtual host looks nice, but it doesn't specify the processor limitation, and they give me less diskpace than in the shared hosting =s&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any suggestions?&lt;/p&gt;&#xA;" OwnerUserId="6859" LastActivityDate="2010-11-15T21:20:48.743" ClosedDate="2010-11-15T21:49:16.000" Title="Which would be the cheapest virtual or dedicated server?" Tags="&lt;hosting&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="19136" PostTypeId="2" ParentId="19007" CreationDate="2010-11-15T18:56:49.600" Score="0" ViewCount="" Body="&lt;p&gt;I imagine you should scan the job ads for a few weeks and see what comes up regularly. I find here the biggest languages are C# and Java. My geographical area has a strong mobile development culture because of RIM, so that's a strong element I consider as well. Further, I don't particularly love doing graphics design, whereas I love CSS, JavaScript and the various libraries, PHP, and ASP. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't mention too much about your existing knowledge and background. Build a well-rounded foundation, find a project, and get coding. Having coding experience and general knowledge of programming regardless of language specifics is useful.&lt;/p&gt;&#xA;" OwnerUserId="7722" LastActivityDate="2010-11-15T18:56:49.600" CommentCount="2" />
  <row Id="19137" PostTypeId="2" ParentId="19135" CreationDate="2010-11-15T18:57:52.643" Score="1" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.slicehost.com/&quot; rel=&quot;nofollow&quot;&gt;SliceHost&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;$20 / month will give you a 256 MB server with just about any Linux distro you want. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also try Rackspace cloud servers which have a very low monthly cost (~$11) but doesn't include bandwidth.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-15T18:57:52.643" CommentCount="3" />
  <row Id="19138" PostTypeId="2" ParentId="19135" CreationDate="2010-11-15T18:57:56.620" Score="0" ViewCount="" Body="&lt;p&gt;The cheapest virtual servers will cost less than the cheapest dedicated because you can get a very small slice to start with, but for an equivalent amount of resources dedicated is cheaper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously different providers have different rates but in general the relative cost goes from cheapest to most expensive as:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Co-Located -&gt; Dedicated -&gt; VPS -&gt; Cloud&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good providers I have experience with for VPS include Dreamhost and VPS.NET. For dedicated I doubt you can beat fdcservers.net (if you'll use the bandwidth anyway).&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-15T18:57:56.620" />
  <row Id="19139" PostTypeId="2" ParentId="19135" CreationDate="2010-11-15T18:58:40.863" Score="0" ViewCount="" Body="&lt;p&gt;There's a pretty good summary here: &lt;a href=&quot;http://www.prchecker.info/vps-hosting.php&quot; rel=&quot;nofollow&quot;&gt;http://www.prchecker.info/vps-hosting.php&lt;/a&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was quite surprised to find out that you can get a Linux or Windows VPS with 1GB RAM, loads of storage space and bandwidth, for 30 bucks a month.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-15T18:58:40.863" />
  <row Id="19140" PostTypeId="2" ParentId="2214" CreationDate="2010-11-15T19:02:16.367" Score="0" ViewCount="" Body="&lt;p&gt;All good answers, but such times make me nervous, because it upsets the usual balance of stress etc. and people can lose their balance. Better if it's nice but no big deal.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-11-15T19:02:16.367" CommunityOwnedDate="2011-03-31T09:31:23.023" />
  <row Id="19141" PostTypeId="2" ParentId="19031" CreationDate="2010-11-15T19:03:44.320" Score="1" ViewCount="" Body="&lt;p&gt;I would focus more on communication in terms of often used documents whether in the general populus or specific to your company. Wireframing, prototyping, flowcharting, etc. can make a huge difference to the project. Many are leaning towards user experience design where you communicate user needs in various ways such as with personas, concept models, usability tests and reports, and so forth. And in terms of web development at least there's also content inventories, site maps, and screen designs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I imagine a lot of it depends on your role within the company. You might also consider slides, interactive demos, video tutorials, context sensitive help, or tutorials. Then there are a whole host of technical writing documents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find having a technical writing background helps my development in that I can help clarify communication between programmers, designers, users, and other members of the team such as business analysts and marketers. Being able to translate between technical documentation and everyday language with a newbie can really help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Business communication can be very important in a co-operative environment where team-building is desired. Even something as simple as critical thinking and debating can help draw out a project and get everyone contributing and on track.&lt;/p&gt;&#xA;" OwnerUserId="7722" LastActivityDate="2010-11-15T19:03:44.320" />
  <row Id="19142" PostTypeId="2" ParentId="19085" CreationDate="2010-11-15T19:09:11.807" Score="1" ViewCount="" Body="&lt;p&gt;Yes. I have had VSS repositories die on me. The last time was in 2002. There is some kind of a magic sweet spot between size of the code base, the number of projects and the number of developers that causes corruption. We wound up breaking things out into smaller and smaller separate projects to get stability, and did twice daily backups of all the files to protect ourselves.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-11-15T19:09:11.807" CommentCount="2" />
  <row Id="19143" PostTypeId="2" ParentId="19007" CreationDate="2010-11-15T19:11:00.340" Score="0" ViewCount="" Body="&lt;p&gt;My personal opinion is that the line between these will blur more over time if it hasn't already.  Consider &lt;a href=&quot;http://www.adobe.com/products/air/&quot; rel=&quot;nofollow&quot;&gt;Adobe's Integrated Run-time&lt;/a&gt; that allows internet applications to run outside of the browser as an example here where the web skills of some developers can now be used to make desktop applications.  This is ignoring a few other realms of development like mobile applications and embedded systems.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-15T19:11:00.340" CommentCount="1" />
  <row Id="19144" PostTypeId="2" ParentId="14744" CreationDate="2010-11-15T19:12:25.347" Score="2" ViewCount="" Body="&lt;p&gt;A practical rule of thumb is that you need to understand at least one level of abstraction below the one you usually work in. Consider that your PHP or JavaScript interpreter may actually be implemented in C or C++. Eventually you are going to hit a bug in the interpreter or even a C runtime error. If you don't understand C you are going to be limited to sending a bug report to the maintainer, hoping they can reproduce it and care about it, and then twiddling your thumbs. If you know C you can tell them exactly where the problem is and what it is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This also means that if you work in C/C++ you should at least be able to read assembly on your platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for learning C when you need it: my observation is that most programmers can learn Perl/Python/Javascript on demand, but assembler/C/Lisp seem to require a lot more time, so it's worth learning at least some basics before the need arises.&lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-11-15T19:12:25.347" />
  <row Id="19145" PostTypeId="2" ParentId="19100" CreationDate="2010-11-15T19:22:14.433" Score="0" ViewCount="" Body="&lt;p&gt;You could consider getting into Data Warehouses and business intelligence for another couple of ideas that I'd toss out there.  These are using large amounts of data for various purposes that may be within the realm you are asking.  Another way to think about your question is what would those Applications and DBs be used by organizations or individuals?  I'm not sure I've seen &quot;Application DBA&quot; as a term as there are generally a few different areas this could cover:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;DBA - These are the masters of knowing how to get the best out of a database and deal with production issues as DBs grow.  While they are the top dog in a sense, they also have the challenge of dealing with non-technical people that don't understand, &quot;Why doesn't this work faster?&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;DB Developers - There are some developers that are good at knowing how to hook things into a relational database and optimize stored procedures or how data is stored.  This is usually more about creating something new rather than tweaking an existing system though sometimes a developer may be called to make small changes to fix a problem some customer has.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Release engineers - There are also those that are responsible for moving code from an environment to environment.  These could be what you mean by a &quot;System DBA&quot; to some extent as they know how to run build scripts and make other changes that may be needed as changes are promoted.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In a small company, all of these roles can be done by the same person but in larger companies, roles tend to get specialized, or at least that is my experience.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-15T19:22:14.433" />
  <row Id="19147" PostTypeId="2" ParentId="19135" CreationDate="2010-11-15T19:28:49.360" Score="1" ViewCount="" Body="&lt;p&gt;If you want a really cheap virtual host to see how you go check out the offers on:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.lowendbox.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.lowendbox.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are usually about USD$6 or less per month.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've used a few from that site now and are happy with most, including HostLink, RAMHost, VPS Village (grokthis) and All Simple Internet Services. YMMV&lt;/p&gt;&#xA;" OwnerUserId="4330" LastActivityDate="2010-11-15T19:28:49.360" />
  <row Id="19148" PostTypeId="2" ParentId="19073" CreationDate="2010-11-15T19:31:57.483" Score="2" ViewCount="" Body="&lt;p&gt;I assume you're talking about OSI-certified open source licenses and the software under them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no obligation to contribute financially, and therefore no justification is necessary.  As a user, you're not costing the F/OSS project anything.  In a corporation, contributing valuable resources needs justification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This doesn't have to be negative for the company.  If you send in good bug reports, that's a contribution, and many projects also like feature requests.  If you send your own fixes or enhancements to the project, that's also a contribution, and if you can push them upstream that's likely to be better for everybody.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, there's no obligation on the part of the project, so if you want any sort of voice in the project you need to contribute in some form.  Many projects accept money, some accept contracts, and most will accept developer time and work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can be worthwhile supporting F/OSS projects if you can get some advertising or geek cred out of it.  O'Reilly, for example, at one time kept Larry Wall (the creator of Perl) on the payroll in the hope of selling more Perl books.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-15T19:31:57.483" />
  <row Id="19149" PostTypeId="1" CreationDate="2010-11-15T19:34:47.230" Score="9" ViewCount="355" Body="&lt;p&gt;It used to be that, if you wanted to develop an N-Tier app in .NET you built your UI with Winforms or WebForms, your BLL with standard C#/VB.NET/{.NET Language}, your DAL with ADO.NET and maybe throw in some remoting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now you've got, WPF, ASP.NET, ASP.NET MVC, Silverlight, WCF, WCF Data Services, WCF RIA Services, WF, EF, P&amp;amp;P App Blocks and more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's just &lt;em&gt;some&lt;/em&gt; of your options if you want to build an N-Tier Application using .NET, and - maybe I'm just not that smart but - few of these are easy to learn well. &lt;em&gt;And&lt;/em&gt; these are only products from Microsoft. Nevermind the other myriad tools &amp;amp; technologies (other ORMs, UI frameworks like PRISM, AOP frameworks etc. etc. ad nauseum).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it freedom of choice, is it information overload, or is it normal and I'm just slow/dumb?&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-16T01:14:13.800" Title="Is .NET experience information overload?" Tags="&lt;.net&gt;&lt;information-overload&gt;" AnswerCount="7" FavoriteCount="3" />
  <row Id="19150" PostTypeId="2" ParentId="19149" CreationDate="2010-11-15T19:41:45.117" Score="4" ViewCount="" Body="&lt;p&gt;Those exponetial technology curves are a bitch, huh?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. You are not dumb, it's a lot to get a handle on !&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT&#xA;OK - so people did not like my sense of humor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of these techs are just the next version. WCF is just the latest remoting technologies but MS is a marketing machine and they decided to go with another cool combination of letters. The same could be said with ADO -&gt; ADO.NET -&gt; Linq.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now in addition to just the latest version, some of this stuff is a different specialized tool for a different job. While it is a challenge to keep up especially since we don't or can't use all the tools in our day job, I like the fact that the tools are available. You may run into a situation in which having this custom tool will be really, really useful.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastEditorUserId="4759" LastEditorDisplayName="" LastEditDate="2010-11-15T19:53:09.287" LastActivityDate="2010-11-15T19:53:09.287" CommentCount="2" />
  <row Id="19151" PostTypeId="2" ParentId="19149" CreationDate="2010-11-15T19:44:28.697" Score="2" ViewCount="" Body="&lt;p&gt;It's normal, but whether you're slow or dumb is unrelated.  No one developer will be an expert in all of those.  Sure, you can reach competency in all of them, but that will take quite a while.  A true grasp of any of these technologies requires developing a real application with them, and working around the issues you discover during the process.&lt;/p&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-11-15T19:44:28.697" />
  <row Id="19152" PostTypeId="2" ParentId="2051" CreationDate="2010-11-15T19:45:23.270" Score="5" ViewCount="" Body="&lt;p&gt;My boss once insisted to me that Google's search results were all sorted by the highest bidder. He flatly refused to believe that Google tried to order its results by usefulness to the user. No amount of logic that this would result in the worse internet search engine imaginable would knock his beliefs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He argued so vehemently that I'm pretty sure he'd just promised the client he could get &quot;the number one spot on Google&quot; for &quot;the right money&quot;... but didn't want to have to call back and look like an idiot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*sigh*&lt;/p&gt;&#xA;" OwnerUserId="7500" LastEditorUserId="7500" LastEditorDisplayName="" LastEditDate="2010-11-18T11:17:41.573" LastActivityDate="2010-11-18T11:17:41.573" CommunityOwnedDate="2010-11-15T19:45:23.270" CommentCount="2" />
  <row Id="19153" PostTypeId="2" ParentId="19149" CreationDate="2010-11-15T19:45:59.467" Score="4" ViewCount="" Body="&lt;p&gt;Information overload and freedom of choice are the combination I'd likely take for an answer here.  Yes there are lots of different possibilities, but some may have been designed with specific purposes in mind that may make more sense in some cases.  For example, building a small business ERP in Silverlight likely doesn't make much sense but there can be uses for ASP.Net, C#, WCF services, and other tools to put it together that may make for a better experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason I'd say overload is that I'm not sure anyone on the planet knows all of what one could do with .Net except for &lt;a href=&quot;http://stackoverflow.com/users/22656/jon-skeet&quot;&gt;Jon Skeet&lt;/a&gt; of course.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-15T19:45:59.467" />
  <row Id="19154" PostTypeId="2" ParentId="19073" CreationDate="2010-11-15T19:47:25.653" Score="1" ViewCount="" Body="&lt;p&gt;Your company may be willing to open source some of its own non-business-critical software. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example: maybe you create a tool to help compile your projects and package them up. You realize it could be useful to others, and it won't hurt your company to open source it. Since it's not part of their business (meaning, they're not going to lose a competitive edge), they may be willing to do so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can claim the following as benefits:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it doesn't hurt them&lt;/li&gt;&#xA;&lt;li&gt;they may save money by not maintaining this project anymore&lt;/li&gt;&#xA;&lt;li&gt;they can claim they contribute to the open source movement (for example: at conferences, on their site, on promotional materials)&lt;/li&gt;&#xA;&lt;li&gt;they can add it to job postings, encouraging other open source coders to come work for them&lt;/li&gt;&#xA;&lt;li&gt;they can give back to the community they've taken from&lt;/li&gt;&#xA;&lt;li&gt;they keep you, as their valued employee, happy&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You can even offer to do it completely for free, on your personal time. The benefit for you is a brand new open source project you're in charge of, which you can add to your resume.&lt;/p&gt;&#xA;" OwnerUserId="7610" LastActivityDate="2010-11-15T19:47:25.653" />
  <row Id="19155" PostTypeId="2" ParentId="18564" CreationDate="2010-11-15T19:48:45.407" Score="3" ViewCount="" Body="&lt;p&gt;Richard M Stallman comes to the top of my mind.  This one man started giving life to GNU Emacs, GCC, GDB and many more notable programs.  He even went on to author the original GPL.  I have heard lore about him saying, he goes into a cave for 18 months and returns with over 150,000 lines of code that make the C compiler of GCC suite.  Those 150,000 LOC gave the bed rock for g++ later on.  In his own words, Emacs started as text editor, then it became a way of life, and now it is a religion for some of us.  Even today, Emacs' design principles are used in many successful programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Donald E Knuth's TeX system is another program that comes to the mind when thinking about programming marvels.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-11-15T19:48:45.407" CommentCount="1" />
  <row Id="19156" PostTypeId="2" ParentId="19029" CreationDate="2010-11-15T19:55:46.760" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;So the develoepr gets the benefit of&#xA;  cross browser compatibility and&#xA;  compile time error checking (of web&#xA;  gui elements).&#xA;  My question is three fold, are there&#xA;  any other benefits I am missing that&#xA;  would be gained using Vaadin or GWT ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You also get hosted mode debugging, so you can step in and out of server code from your client. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, you may find you insulate yourself from changes that will come about with evolution of browsers, HTML &amp;amp; Javascript. If your code is all GWT then you just rely on Google to keep up for you.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Secondly, I am actually quite&#xA;  confident and productive using html&#xA;  and javascript - so will I actually&#xA;  see any benefit ? Or will it just make&#xA;  my knowledge of these areas redundant&#xA;  (as they are handled by gwt/vaadin) ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I doubt you will be a lot more productive. It depends maybe on how good you are at writing Java UI code. I prefer Javascript frankly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowledge would not be totally redundant - its always better to know how things work under the hood.  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Will the end result be that I can&#xA;  create enterprise scale data driven&#xA;  websites in a reasonably short time? I&#xA;  can however already do this, and I&#xA;  have not wasted any time learning&#xA;  GWT/Vaadin.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Unless you just really want those letters on your resume I don't see why you would do this right now. I'd wait and see if the market really moves much in that direction.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-15T19:55:46.760" CommentCount="1" />
  <row Id="19157" PostTypeId="2" ParentId="19073" CreationDate="2010-11-15T19:57:34.550" Score="1" ViewCount="" Body="&lt;p&gt;Sometimes, monetary donations don't help as much as you might think. See, for instance, this Coding Horror article: &lt;a href=&quot;http://www.codinghorror.com/blog/2008/07/is-money-useless-to-open-source-projects.html&quot; rel=&quot;nofollow&quot;&gt;Is Money Useless to Open Source Projects?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for my employer... I work for a local government, so no, we don't contribute financially to the open source projects we use.&lt;/p&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-11-15T19:57:34.550" />
  <row Id="19158" PostTypeId="1" AcceptedAnswerId="19307" CreationDate="2010-11-15T20:00:09.483" Score="10" ViewCount="178" Body="&lt;p&gt;I recently read &lt;a href=&quot;http://www.onpreinit.com/2010/11/what-enterprise-can-learn-from.html&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; article on knowledge sharing and immediately recognized the same problem within my own organization. My main goal now is to 'kill peer-to-peer collaboration' as the default method of communication for non-private, system related discussions. Otherwise you end up with all of the historical knowledge living in the heads of individuals, or lost in a massive email system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question for the group is as follows:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What methods / software have you used to encourage more 'public' discussions among your developers?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some initial ideas I had.. any feedback would be great:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Internal news group&lt;/li&gt;&#xA;&lt;li&gt;'better' wiki software (using Sharepoint now)&lt;/li&gt;&#xA;&lt;li&gt;Message board&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(I would love to have an internal instance of StackExchange, but don't think that is an option!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; As stated above, we already have a wiki, but I dislike the wiki idea because things are usually only added to the wiki after the fact, &lt;em&gt;if at all&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="1215" LastActivityDate="2010-11-16T11:56:24.480" Title="Enterprise knowledge sharing?" Tags="&lt;knowledge&gt;" AnswerCount="6" CommentCount="6" FavoriteCount="5" />
  <row Id="19159" PostTypeId="2" ParentId="19158" CreationDate="2010-11-15T20:14:58.353" Score="3" ViewCount="" Body="&lt;p&gt;StackOverFlow for enterprise like explained in the article you mentionned?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO it's a &lt;strong&gt;terrible idea&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will reinforce &lt;strong&gt;competition&lt;/strong&gt; instead of &lt;strong&gt;collaboration&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need cross division/department collaboration, not increasing their competition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also imagine the extremely high negative impact of being downvoted by your coleague (in front of others) can have on your psychic health.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't mix everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, an idea box much more uservoice.com where employees can post ideas (anonymously) and other employees upvote them (also anynomously) will have a positive impact. I developed a such platform few years ago for a very large banking institution, and it helped executives to identify what to improve in priority.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-15T20:53:07.273" LastActivityDate="2010-11-15T20:53:07.273" CommentCount="6" />
  <row Id="19160" PostTypeId="2" ParentId="19158" CreationDate="2010-11-15T20:20:50.683" Score="2" ViewCount="" Body="&lt;p&gt;Pair Programming is a great way of disseminating tacit knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with tacit knowledge is that it can pretty much by definition not be written down or taught, only experienced. Pair programming (specifically Promiscuous Pairing) provides that.&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-11-15T20:20:50.683" />
  <row Id="19161" PostTypeId="2" ParentId="19158" CreationDate="2010-11-15T20:34:21.687" Score="0" ViewCount="" Body="&lt;p&gt;My company has some internal discussion boards. They are used very seldom. For the most part, the knowledge we have is either too general (general technology questions/topics that are just as well discussed in the internet) or too specific (applies only to our application and not to other application teams in the same company). It is good in that it does give a place for people to say how do I accomplish xyz here but its not much of a community feel.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-15T20:34:21.687" />
  <row Id="19162" PostTypeId="2" ParentId="19029" CreationDate="2010-11-15T20:39:25.907" Score="1" ViewCount="" Body="&lt;p&gt;Java is statically typed which in my experience make for more robust programs. So GWT get this benefit from Java plus All the Eclipse refactoring, as well as the runtime advantages of Javascript. That is in my opinion a very powerful combination. &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-15T20:39:25.907" />
  <row Id="19163" PostTypeId="2" ParentId="19158" CreationDate="2010-11-15T20:47:27.510" Score="1" ViewCount="" Body="&lt;p&gt;I really like the wiki idea as well, but you're right -it's hard to get people to contribute. And without contributions, no one will actually use it because it doesn't have enough information. There is a &quot;tipping point&quot; however in which if you could get people to post (perhaps thru a required business process) at some point the wiki would just take off as it would be this great repository of information.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-11-15T20:47:27.510" CommentCount="2" />
  <row Id="19164" PostTypeId="2" ParentId="19135" CreationDate="2010-11-15T20:47:45.063" Score="-1" ViewCount="" Body="&lt;p&gt;This is an idea most people dont realize:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a good connection (e.g. 200 MBit Fiber so up/down e.g. &lt;a href=&quot;http://www.xmsnet.nl/pakketten/internet&quot; rel=&quot;nofollow&quot;&gt;http://www.xmsnet.nl/pakketten/internet&lt;/a&gt;) you could put a server in your household. Make a simple network to shield the rest of your household network and you can compare the costs of paying a monthly fee versus the one time buying of a server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The advantage is full control the disadvantage is that you have to put some effort each month in maintenance (but for some people that is a hobby). Besides that you can use the server for other purposes.&lt;/p&gt;&#xA;" OwnerUserId="7738" LastActivityDate="2010-11-15T20:47:45.063" CommentCount="3" />
  <row Id="19165" PostTypeId="2" ParentId="19158" CreationDate="2010-11-15T20:52:27.363" Score="1" ViewCount="" Body="&lt;p&gt;The knowledge that is important to the enterprise should make it into the project itself, in the form of well-written code, high-level comments about the architecture, and exceptional documentation about the project's goals and how they are accomplished with technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I couldn't disagree more with the linked author's conclusions.  Encouraging the capture of knowledge by discouraging team collaboration?  Sorry, but that's not how it works.  It is the collaboration itself that produces the knowledge wealth, not sequestering engineers in cubicles.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-15T20:52:27.363" CommentCount="3" />
  <row Id="19166" PostTypeId="2" ParentId="19104" CreationDate="2010-11-15T21:13:05.677" Score="2" ViewCount="" Body="&lt;p&gt;If I know this person well, then I'll already know whether they would be a fit for my workplace.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sounds like you have a problem being honest with your friend.  If you don't think they are qualified then tell them.  Be sure to tell them exactly why.  This is the only way to be a true friend.  Give them pointers on how to be the type of person you need.  It might be as simple as &quot;we need X years of working with Y tech and it can't be learned on the job.&quot;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's more of a &quot;I think you're lazy&quot; type of thing then that's a whole other conversation, but one that you should still have if you are a true friend.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do think they are qualified then there shouldn't be an issue, just hire them.&lt;/p&gt;&#xA;" OwnerUserId="3377" LastActivityDate="2010-11-15T21:13:05.677" />
  <row Id="19167" PostTypeId="2" ParentId="19090" CreationDate="2010-11-15T21:15:13.803" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.buccaneerscholar.com/&quot; rel=&quot;nofollow&quot;&gt;James Marcus Bach a.k.a. the Buccaneer Scholar&lt;/a&gt; is a well-known software quality and testing guru, author and speaker.  According to his site, he's been on his own since 14 and left school at 16.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-15T21:15:13.803" CommentCount="2" />
  <row Id="19169" PostTypeId="2" ParentId="19149" CreationDate="2010-11-15T21:21:07.760" Score="2" ViewCount="" Body="&lt;p&gt;All in all I would say that while choice is essential to a healthy platform, it also requires you to make decisions without the full picture, because the full picture is almost impossible to obtain even for the most intelligent of us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Freedom of Choice&lt;/strong&gt;&#xA;It's a good thing that there's so much freedom of choice, because it keeps the .NET ecosystem alive and as the platform as versatile as possible. Most of the technologies you mentioned have some distinct properties that might just make them the best choice for a certain kind of project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Information Overload&lt;/strong&gt;&#xA;There are a lot of high-level resources that guide you in selecting the right technology even without fully knowing those technologies. (Almost) No one knows all of them inside out. Let others filter the information so &lt;em&gt;you&lt;/em&gt; may avoid information overload. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Am I slow/dumb?&lt;/strong&gt;&#xA;You don't have to know all those technologies to successfully build an application, however small or large the app may be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a small-scale project you may just go with what you know instead of learning technology X. OK, your solution may require a bit more code, have a clunkier design, incur a performance penalty or have a different feel, but it could very well be possible to get the job done without technology X.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a large-scale project you'll likely work in a team. You concentrate on one of the tiers and the associated technologies, while others take care of the rest. &lt;/p&gt;&#xA;" OwnerUserId="7034" LastEditorUserId="7034" LastEditorDisplayName="" LastEditDate="2010-11-15T22:23:17.387" LastActivityDate="2010-11-15T22:23:17.387" />
  <row Id="19170" PostTypeId="2" ParentId="19093" CreationDate="2010-11-15T21:24:20.630" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;CTRL + &quot;-&quot;&lt;/strong&gt;: It's like the back button in your browser. Use it after having jumped to a search result, or after you've used F12.&lt;/p&gt;&#xA;" OwnerUserId="7034" LastActivityDate="2010-11-15T21:24:20.630" CommentCount="1" />
  <row Id="19171" PostTypeId="2" ParentId="19093" CreationDate="2010-11-15T21:31:33.747" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Shift + F9&lt;/strong&gt;: quickwatch popup. quickly inspect a variable. used while debugging.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-11-15T21:31:33.747" />
  <row Id="19173" PostTypeId="2" ParentId="14744" CreationDate="2010-11-15T21:34:12.057" Score="3" ViewCount="" Body="&lt;p&gt;Much as I hate to post the obligatory Joel blog post, I agree with him &lt;a href=&quot;http://www.joelonsoftware.com/articles/CollegeAdvice.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.  C is the lingua franca of programming.  I can't think of any high-level language that can't interface with it somehow.  Because of that, C is still a popular choice for systems programming type stuff.  You simply can't interface with some OS-level things without C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides that, what do you plan to do when your high-level language isn't fast enough?  Knowing how to write C is especially important when you're using a high-level, dynamically typed language like Ruby, Python, or PHP.  But even Java and C# programmers need to drop down to C from time to time.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-15T21:34:12.057" CommentCount="3" />
  <row Id="19174" PostTypeId="1" AcceptedAnswerId="19183" CreationDate="2010-11-15T21:39:55.140" Score="1" ViewCount="133" Body="&lt;p&gt;Is Project Titan (Facebook email app) going to be a game changer from a programmers perspective?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although some details are still scarce, the internet is slowly learning more about this new software. From the perspective of a programmer, what if any functionality do you think this will bring to the mass communications sector of internet use? Will it in anyway be a &quot;game changer&quot; from the existing layer of highly successful web based email clients (such as hotmail, gmail, yahoo mail, etc)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm interested if anyone thinks email fundamentally needs to change other than to add more &quot;connectedness&quot; to other sources of data such as social media profiles.&lt;/p&gt;&#xA;" OwnerUserId="3689" LastActivityDate="2010-11-15T21:51:14.143" Title="Is Project Titan (Facebook email app) going to be a game changer from a programmers perspective?" Tags="&lt;social-networks&gt;&lt;email&gt;&lt;web-services&gt;&lt;software-endgame&gt;" AnswerCount="1" CommentCount="6" />
  <row Id="19175" PostTypeId="1" CreationDate="2010-11-15T21:41:31.520" Score="5" ViewCount="201" Body="&lt;p&gt;I currently work full time as a software developer. I make $60k annually. I hate my job. I know I can not only be making at least $10k more elsewhere, but also work with something that I enjoy more, such as C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was forced to schedule all my vacation days by the 15th of September, and I scheduled all of those the week after Thanksgiving. Here is why that's a problem. This makes going on interviews VERY tough. I have used up the remaining sick days and personal days that I had to go on some interviews, but at this point I have none left, and companies still want me to come in. Much better companies then where I am at right now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have 4 companies that are interested in me at the moment. 3 of them I have already interviewed with at least once and want to bring me back in to follow-up. The other has yet to interview me yet and we have one scheduled. Basically, I cannot stay here any longer. I cannot even focus at all during the day that I hate this job so much. To top it off, there are a couple of huge projects that I am supposed to be working on this week that even if I did do, the amount of knowledge transfer that would have to occur after I leave would be so unreasonable, and they do not know I plan on leaving.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am seriously contemplating just quitting (as we don't need to give 2 weeks), and using this free time to actually make all my interviews to get a job faster. The company has treated me so poorly that I wouldn't even feel bad. Like I said I have 3 companies that have practically made it clear that they want to hire me, they just want me to meet the rest of the team, and another company who sought me out through a recruiter and thought highly of me after a phone interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only downside to this would be that it would probably be at least 1.5 weeks until I had a job offer in hand. This would mean going about a month until a paycheck instead of getting one at the end of November. This isn't a huge deal though as I have money saved up primarily as a backup in case anything like this ever happened.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you guys think? If I don't do this, I'm really not sure if I can make like any of these interviews, and that would hurt my chances of landing anything else.&lt;/p&gt;&#xA;" OwnerUserId="3577" LastActivityDate="2010-11-15T23:49:23.063" ClosedDate="2010-11-16T00:04:13.453" Title="Job Searching Advice" Tags="&lt;career-advice&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="3" />
  <row Id="19176" PostTypeId="1" CreationDate="2010-11-15T21:41:45.187" Score="7" ViewCount="386" Body="&lt;p&gt;Is it a good thing or a bad thing when you hear one of the interviewers say they have not heard good things about a former employer? He did not say what exactly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FYI - my former employer was a small business around 5 people with some big name clients.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; After speaking with the recruiter I was working with, I did not get the job with this company.&lt;/p&gt;&#xA;" OwnerUserId="5808" LastEditorUserId="5808" LastEditorDisplayName="" LastEditDate="2010-11-18T01:56:46.463" LastActivityDate="2010-11-18T02:32:05.777" Title="Hearing things about former employers in an interview" Tags="&lt;interview&gt;&lt;employer&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="2" />
  <row Id="19177" PostTypeId="2" ParentId="19176" CreationDate="2010-11-15T21:44:10.047" Score="5" ViewCount="" Body="&lt;p&gt;It may be a sign that the interviewer likes you and is trying to say that their company is a better company to work for than the former one.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-11-15T21:44:10.047" />
  <row Id="19178" PostTypeId="2" ParentId="19004" CreationDate="2010-11-15T21:48:07.597" Score="0" ViewCount="" Body="&lt;p&gt;Great answers. I would only add if you get cramping pains from your mouse, try a bigger mouse. Once I got a little mouse thinking it would be cool. Turned my hand to cement.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-11-15T21:48:07.597" />
  <row Id="19179" PostTypeId="2" ParentId="19176" CreationDate="2010-11-15T21:49:44.597" Score="8" ViewCount="" Body="&lt;p&gt;It all depends on the interviewer.  For some it means they sympathize you for working there, and others it means that they condemn you.  I know some people consider past experience to be the be all end all of determining who is a good fit (I think these people shouldn't be determining who the people should work with).  Really, if someone is going to judge you solely on the place you used to work (especially if it is a negative reaction), then I would really not want to work there, unless I was really desperate.  A number of times, people land bad jobs, or someone's opinion of a place is colored for one reason or another.  It shouldn't be an absolute determiner as to whether or not the person is a good candidate or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I put this in the same category as where someone went to College.  If someone went to MIT, then they are probably pretty smart, but on the same side, if someone ended up going to a small rural college with low rankings, it doesn't mean that was the best that person could do.  It just is what it is.  Sometimes really smart people end up going to colleges that people for whatever reason frown upon. &lt;/p&gt;&#xA;" OwnerUserId="7747" LastEditorUserId="7747" LastEditorDisplayName="" LastEditDate="2010-11-15T21:55:58.147" LastActivityDate="2010-11-15T21:55:58.147" />
  <row Id="19180" PostTypeId="2" ParentId="19175" CreationDate="2010-11-15T21:50:10.197" Score="2" ViewCount="" Body="&lt;p&gt;1) Don't quit until you have a job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Knowing that you only have a a limited number of Off days you should have been more careful in selecting witch interviews to accept&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) You should always try to schedule interviews off hours, get up at 6am if you have to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) See if you can change you vacation days to one day per week for the rest of thr year.&lt;/p&gt;&#xA;" OwnerUserId="7748" LastActivityDate="2010-11-15T21:50:10.197" CommentCount="2" />
  <row Id="19181" PostTypeId="2" ParentId="19175" CreationDate="2010-11-15T21:50:21.293" Score="5" ViewCount="" Body="&lt;p&gt;What is the company's policy for being sick even though you are out of sick time? If it is &quot;only&quot; going without pay, then that would be a better option over the long-term than to be completely out of a job (and potentially burning a bridge at the same time) regardless of industry, this economy, and potential job offers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't give your notice until you have a signed job offer in your hand, and you should be polite and give some kind of notice.&lt;/p&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2010-11-15T21:50:21.293" CommentCount="5" />
  <row Id="19182" PostTypeId="2" ParentId="19175" CreationDate="2010-11-15T21:50:47.373" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Burnout&lt;/strong&gt; is ahead. Don't go there.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;quit now&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You &lt;strong&gt;will&lt;/strong&gt; find a new job very quickly. There is no risk, you are only 22!&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-15T21:50:47.373" CommentCount="14" />
  <row Id="19183" PostTypeId="2" ParentId="19174" CreationDate="2010-11-15T21:51:14.143" Score="3" ViewCount="" Body="&lt;p&gt;More integration inside of Facebook may make Facebook users stay inside the Facebook site more (and more page views means more advertising dollars in Facebook's pockets).  People who are e-mailed from Facebook but who don't already have an account may be encouraged to get one by their peers.  However, there are many many people who use email but do not use Facebook and are not interested in social networking.  I don't see there being much of a change.  Google Wave attempted to extend email but failed (it looked like a great concept but was confusing for users, and ultimately abandoned by Google); Microsoft Lync and Google Buzz attempt to integrate social networking and email, but I only see that as being useful for people who really want to use it for social networking.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-11-15T21:51:14.143" />
  <row Id="19184" PostTypeId="2" ParentId="19175" CreationDate="2010-11-15T21:52:43.537" Score="0" ViewCount="" Body="&lt;p&gt;Do you have any flexibility in setting which hours you work?  This would be a way to make it to interviews but still not give up your current job and may work as a solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My other thought would be to see if you could go on short-term disability which would free up some time.  This isn't necessarily a great idea and you do have to be careful of insurance policy notes along with having a doctor to claim that you aren't fit for work which may not be that much of an exaggeration here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only other option I could see would be to quit now, but this does carry some danger with it to my mind.  I would also make sure to give notice as this does prevent you from burning the bridge you have with your current employer.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-15T21:52:43.537" CommentCount="1" />
  <row Id="19185" PostTypeId="2" ParentId="19176" CreationDate="2010-11-15T21:55:56.703" Score="1" ViewCount="" Body="&lt;p&gt;I'd second the &quot;It depends&quot; answer as there are cases where someone may have had some office politics stuff that may lead one to speaking of a former employer in less than glowing terms.  There can also be cases where someone is just trying to paint the grass is greener here too though, so do be careful about that.  If I knew the person didn't have great diplomatic skills this may not be a big issue but if the person does diplomacy well, then I'd likely be a bit skeptical of what their point was.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-15T21:55:56.703" CommentCount="2" />
  <row Id="19187" PostTypeId="2" ParentId="19149" CreationDate="2010-11-15T21:58:48.203" Score="0" ViewCount="" Body="&lt;p&gt;The .NET stack has plenty of technologies, that's for sure.  It helps to read about each one to learn when the technology should be used; the pieces fit together pretty well (though it's frustrating that there are so many changes to the technologies, so often).&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-11-15T21:58:48.203" />
  <row Id="19188" PostTypeId="2" ParentId="18751" CreationDate="2010-11-15T22:09:07.613" Score="1" ViewCount="" Body="&lt;p&gt;This doesn't exactly meet your requirements, but if your team is dedicated to test driven development you might be interested in &lt;a href=&quot;http://www.concordion.org/&quot; rel=&quot;nofollow&quot;&gt;Concordion&lt;/a&gt;, where your specifications and automated tests are one and the same.&lt;/p&gt;&#xA;" OwnerUserId="5319" LastActivityDate="2010-11-15T22:09:07.613" CommentCount="1" />
  <row Id="19189" PostTypeId="2" ParentId="19176" CreationDate="2010-11-15T22:09:46.240" Score="0" ViewCount="" Body="&lt;p&gt;It definitly depends, but its also rather unprofesional.  Depending on who the interviewer was this might concern me.&lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-11-15T22:09:46.240" />
  <row Id="19190" PostTypeId="2" ParentId="19176" CreationDate="2010-11-15T22:15:44.330" Score="0" ViewCount="" Body="&lt;p&gt;I usually stay away from anyone who even remotely says something negative about a former employee. If that's what they do, what's to stop them from giving you a bad rep if you leave that company in the future?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe I'm being paranoid, but in this day n age, it wouldn't surprise me either.&lt;/p&gt;&#xA;" OwnerUserId="3486" LastActivityDate="2010-11-15T22:15:44.330" CommentCount="1" />
  <row Id="19191" PostTypeId="1" CreationDate="2010-11-15T22:16:15.847" Score="0" ViewCount="120" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a place where I can get documentations/references of all classes and methods of programming languages, namely Ruby, PHP and Python?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It doesn't have to be XML, as long as it is parse-able and consistent. I'm hoping to find all core classes, methods (with parameters and type of return value) and properties. And if available a description of the method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I need this for a project that I'm currently working on (a text editor with basic completion and type inference). I've already done this for for JavaScript (since the JS reference is relatively small, I created it myself.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Going to ruby-doc.org I get the documentation as html but the method names/parameters/return value are not consistent at all. Same with PHP from PHP.net&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&lt;/p&gt;&#xA;" OwnerUserId="7749" LastActivityDate="2010-12-24T07:52:35.663" Title="Documentations of languages (Ruby, PHP, Python) as XML" Tags="&lt;php&gt;&lt;python&gt;&lt;ruby&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="19192" PostTypeId="2" ParentId="19093" CreationDate="2010-11-15T22:29:40.193" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;CTRL+K,R&lt;/strong&gt; - Find all references&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;ALT+SHIFT+ENTER&lt;/strong&gt; - Full screen editing mode&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;CTRL+TAB&lt;/strong&gt; - switch between documents (and tool windows) (this is not unique to VS, but still useful)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;SHIFT+F10&lt;/strong&gt; - brings up context menu so you can use the keyboard for other things you might not know the shortcut to&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another useful one, maybe not a shortcut, is when navigating with the keyboard if you hold &lt;strong&gt;CTRL&lt;/strong&gt; it will scroll the window while leaving your cursor in the same position.  Also, nobody's yet mentioned good ol' &lt;strong&gt;F5&lt;/strong&gt; - debug.&lt;/p&gt;&#xA;" OwnerUserId="5279" LastActivityDate="2010-11-15T22:29:40.193" />
  <row Id="19194" PostTypeId="2" ParentId="19191" CreationDate="2010-11-15T22:40:02.810" Score="1" ViewCount="" Body="&lt;p&gt;For Ruby take a look at the documentation for Rdoc::Page. You can create a custom template to use as a generation target. So if you have a standard format you are wanting to map all these to you could use that custom template to generate it. So you can just run RDoc against Ruby.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-15T22:40:02.810" />
  <row Id="19195" PostTypeId="2" ParentId="19149" CreationDate="2010-11-15T22:43:57.460" Score="3" ViewCount="" Body="&lt;p&gt;I have taken a huge swig from the Microsoft Kool-aid. I have been working in .Net forever and I would agree with you that there are just way too many things to learn if you are trying to learn them all at once or if you are trying to code as you learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that the MS documentation can only add to the information overload that you are talking about.  (Every example has every possible gizmo all running magically)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have found for me it is better to find a generic approach to solve my problem, then find technologies that fit the bill and decide if this particular project and this particular code is the place to inject some learning while I am coding.  I only allow myself one new thing per project.  I have found it is just to difficult to get more than one variable changing while I am trying to develop real production code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is the process I follow as an example for your N-Tier question. Being a Martin Fowler Domain model advocate. This means a Data Access layer (with mappers), a Domain, and some sort of service or manager layer all fronted by some sort of UI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now that I have those general ideas, I can think about what are my particular requirements and see if there are any natural places to leverage new techniques.  AHA! we want this app to be a Windows client. Now, WinForms or WPF?  I think I will go with WPF because I can better test it with this new thing MV-VM.  that is the end of the thought on the rest of the project.  I will use tried and true already proven methods for the rest of the application.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As much as I really would like to try the Entity Framework v4, I just cannot risk the project trying to keep all of those plates spinning at one time. I have found that this approach works very well for me and allows me to grok one technology before I attempt another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope that helps a bit&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tal&lt;/p&gt;&#xA;" OwnerUserId="7750" LastActivityDate="2010-11-15T22:43:57.460" CommentCount="1" />
  <row Id="19196" PostTypeId="2" ParentId="19175" CreationDate="2010-11-15T22:52:12.927" Score="3" ViewCount="" Body="&lt;p&gt;Are there armed guards blocking your exit or something?  Just schedule the interviews and go to them.  Who cares what you have left for vacation time.  Get up and walk out of the office.  What are they going to do?  Fire you?  The alternative is you quitting anyways, right?  Tell them you have a dentist appt for a root canal or something that takes several visits.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just make sure you have all your personal stuff removed from the office before you do this...&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-15T22:52:12.927" />
  <row Id="19197" PostTypeId="2" ParentId="19036" CreationDate="2010-11-15T22:55:48.290" Score="0" ViewCount="" Body="&lt;p&gt;Something missing from this list is Windows WPF.  As a .Net framework you can use any of the .Net languages C# and VB.net being the most common. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have done a few desktop applications with it and am at the point where I would never build in traditional WinForms again.  You may think my reasoning is the beauty of the UI but it is really is not (I am colorblind and Ascii art is my limit).  I have found that using WPF I can employ a Model View-ViewModel pattern and achieve much better coverage with my unit testing.  I also have found that the 2-way data binding has eliminated a lot of tedious coding (i.e. &lt;em&gt;txtFirstName.text = myPerson.Firstname&lt;/em&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;just wanted to throw out another option.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tal&lt;/p&gt;&#xA;" OwnerUserId="7750" LastActivityDate="2010-11-15T22:55:48.290" CommentCount="2" />
  <row Id="19198" PostTypeId="2" ParentId="19175" CreationDate="2010-11-15T22:56:47.740" Score="2" ViewCount="" Body="&lt;p&gt;As Pierre 303 said - quit now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You sound like you've got some serious burnout ahead. I've been there, and trust me, it's not worth it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many people will say &quot;don't quit until you have another job (offer) officially in hand&quot;. I personally don't subscribe to this school of thought. I actually think it's a bit cowardly. If you really want to move on, move on, just quit outright*. There's more to life than work - and mental health &lt;em&gt;especially&lt;/em&gt; is more important than work. And job hunting while you're in fulltime employment can be too difficult and annoying. I've actually accepted a job before which turned out not to be so great because of the rush/distraction involved in scheduling interviewing around a fulltime job. My job search is far more thorough and focused when I have fulltime free time to do it in. Anyway, in your case it sounds triply safe to do this, as you seem to practically have offers lined up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*Obviously, there is a caveat in here that you have to be sensible - and not cut yourself loose if you've got a wife and a newborn who are dependent on your next paycheck or they'll end up starving on the street. But the advice stands for any life situation that's less tight than this. :)&lt;/p&gt;&#xA;" OwnerUserId="5064" LastEditorUserId="5064" LastEditorDisplayName="" LastEditDate="2010-11-15T23:49:23.063" LastActivityDate="2010-11-15T23:49:23.063" />
  <row Id="19199" PostTypeId="1" AcceptedAnswerId="19207" CreationDate="2010-11-15T23:06:14.310" Score="1" ViewCount="225" Body="&lt;p&gt;I'll use C# as an example, but it should apply globally. Say I have a string value that should be one of a few constants, but I also want the client to set which string value to use so:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private int foo;&#xA;private string bar;&#xA;&#xA;public int Foo {&#xA;    get { return foo; }&#xA;    set&#xA;    {&#xA;        foo = value;&#xA;        bar = getStringValueFromDatabase(value);&#xA;    }&#xA;}&#xA;&#xA;public string Bar { get { return bar; } }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I use this technique quite a lot and want to know if it's considered as any formal concept.&lt;/p&gt;&#xA;" OwnerUserId="7284" LastActivityDate="2010-11-15T23:39:25.427" Title="Is this technique a design pattern? If so, what's it called?" Tags="&lt;design-patterns&gt;" AnswerCount="4" CommentCount="4" />
  <row Id="19200" PostTypeId="2" ParentId="19036" CreationDate="2010-11-15T23:11:18.660" Score="1" ViewCount="" Body="&lt;p&gt;I would suggest using Titanium. Cross-platform (Windows, Linux, Mac, Android, iPhone), you can use programming languages such as Ruby, Python or even PHP plus the platform is open-source and works just like Adobe AIR.&lt;/p&gt;&#xA;" OwnerUserId="7679" LastActivityDate="2010-11-15T23:11:18.660" />
  <row Id="19202" PostTypeId="2" ParentId="19199" CreationDate="2010-11-15T23:16:52.367" Score="3" ViewCount="" Body="&lt;p&gt;Well, it is similar in a way to Lazy Loading, but it's not exactly that.  At first glance, it actually seems a tad dangerous, in that setting a property has side effects.  I believe that's generally frowned upon, but this is hardly an egregious violation.&lt;/p&gt;&#xA;" OwnerUserId="6735" LastActivityDate="2010-11-15T23:16:52.367" CommentCount="3" />
  <row Id="19203" PostTypeId="1" AcceptedAnswerId="19204" CreationDate="2010-11-15T23:26:26.457" Score="9" ViewCount="351" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm planning to do a talk on Dependency Injection and IoC Containers, and I'm looking for some good arguments for using it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the most important benefits of using this technique, and these tools?&lt;/p&gt;&#xA;" OwnerUserId="6104" LastActivityDate="2010-12-15T16:07:14.360" Title="What are the benefits of using Dependency Injection and IoC Containers?" Tags="&lt;design-patterns&gt;&lt;dependency-analysis&gt;" AnswerCount="6" CommentCount="7" FavoriteCount="5" />
  <row Id="19204" PostTypeId="2" ParentId="19203" CreationDate="2010-11-15T23:30:54.877" Score="10" ViewCount="" Body="&lt;p&gt;Most important, for me, is making it easy to follow the &lt;a href=&quot;http://en.wikipedia.org/wiki/Single_responsibility_principle&quot; rel=&quot;nofollow&quot;&gt;Single Responsibility Principle&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;DI/IoC makes it simple for me to manage dependencies between objects.  In turn, that makes it easier for me to break coherent functionality off into it's own contract (interface).  As a result, my code has been far more modularized since I learned of DI/IoC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another result of this is that I can much more easily see my way through to a design that supports the &lt;a href=&quot;http://en.wikipedia.org/wiki/Open/closed_principle&quot; rel=&quot;nofollow&quot;&gt;Open-Closed Principle&lt;/a&gt;. This is one of the most confidence inspiring techniques (second only to automated testing). I doubt I could espouse the virtues of Open-Closed Principle enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;DI/IoC is one of the few things in my programming career that has been a &quot;game changer.&quot;  There is a &lt;em&gt;huge&lt;/em&gt; gap in quality between code I wrote before &amp;amp; after learning DI/IoC.  Let me emphasize that some more.  &lt;strong&gt;HUGE&lt;/strong&gt; improvement in code quality.&lt;/p&gt;&#xA;" OwnerUserId="6735" LastActivityDate="2010-11-15T23:30:54.877" />
  <row Id="19205" PostTypeId="2" ParentId="19199" CreationDate="2010-11-15T23:31:41.987" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Say I have a string value that should be one of a few constants, but I also want the client to set which string value to use so:&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;A constant that is changed? Eh?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;What you're doing is changing a property which is backed by a data store. It's &lt;em&gt;not&lt;/em&gt; a constant. It might be a configuration variable. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The Patterns name might be Facade or Decorator or somesuch similar. If my code works, and is maintainable, I don't bother myself with the pattern names.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;My comment on your code is you should have another layer of indirection - a function that manages the data storage/restoration. That will abstract it away from the database call.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-15T23:31:41.987" CommentCount="1" />
  <row Id="19206" PostTypeId="2" ParentId="19203" CreationDate="2010-11-15T23:32:37.510" Score="6" ViewCount="" Body="&lt;p&gt;See &lt;a href=&quot;http://stackoverflow.com/questions/871405/why-do-i-need-an-ioc-container-as-opposed-to-straightforward-di-code&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://stackoverflow.com/questions/2394752/utility-of-ioc-and-dependency-injection&quot;&gt;here&lt;/a&gt; for StackOverflow answers and &lt;a href=&quot;http://ayende.com/Blog/archive/2007/10/20/Dependency-Injection-doesnt-cut-it-anymore.aspx&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; for a good full article on IoC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if you want arguments against it for comparison, head &lt;a href=&quot;http://stackoverflow.com/questions/2407540/what-are-the-downsides-to-using-dependency-injection&quot;&gt;here&lt;/a&gt; on SO.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-11-15T23:32:37.510" />
  <row Id="19207" PostTypeId="2" ParentId="19199" CreationDate="2010-11-15T23:34:20.257" Score="4" ViewCount="" Body="&lt;p&gt;It's perfectly valid OO technique, though I think it can be made a bit more efficient if the lazy-loading (which is what this effectively is) is deferred until the &lt;code&gt;Bar&lt;/code&gt; value is actually needed. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private int foo;&#xA;private string bar;&#xA;&#xA;public int Foo &#xA;{&#xA;    get { return foo; }&#xA;    set&#xA;    {&#xA;        foo = value;&#xA;        bar = null;&#xA;    }&#xA;}&#xA;&#xA;public string Bar&#xA;{ &#xA;    get &#xA;    { &#xA;        if(bar == null) &#xA;            bar = getStringValueFromDatabase(Foo);&#xA;        return bar; &#xA;    } &#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: I think that's an improvement on the original code though as others have observed, even better would be to abstract the data access into a separate layer.&lt;/p&gt;&#xA;" OwnerUserId="562" LastActivityDate="2010-11-15T23:34:20.257" />
  <row Id="19208" PostTypeId="2" ParentId="19199" CreationDate="2010-11-15T23:39:25.427" Score="0" ViewCount="" Body="&lt;p&gt;If possible, it's safer to pass foo in the constructor, and make it readonly/final.  Then you've created an object with dependencies.  when you call the Bar getter, then use the captured state to compute the value if you want to do it lazily.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-11-15T23:39:25.427" />
  <row Id="19209" PostTypeId="2" ParentId="19176" CreationDate="2010-11-15T23:44:22.450" Score="0" ViewCount="" Body="&lt;p&gt;Multiple answers possible, but why not this: Since your former employed only 5 people, the interviewer might consider you to be one fifth of the reason for the bad things they've been hearing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words: &lt;strong&gt;The interviewer might think you give an employer a bad reputation.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This would be different if your former employer was a larger company.&lt;/p&gt;&#xA;" OwnerUserId="7034" LastActivityDate="2010-11-15T23:44:22.450" />
  <row Id="19210" PostTypeId="1" CreationDate="2010-11-15T23:47:58.893" Score="8" ViewCount="873" Body="&lt;p&gt;I'm just curious, as I never really thought about this before? Is it illegal in any way, shape or form to leave a job with half coded work?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I'm thinking about quitting my job, however, I have been on a couple projects that I said I was going to work on and I didn't because I didn't plan on being there in the near future, and didn't really care if I got fired.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I just left and they had all this unfinished work with one one else on the SCRUM team knowing what I did and it would cause them to miss a bunch of customer deadlines, can I get in trouble for this?&lt;/p&gt;&#xA;" OwnerUserId="7753" LastActivityDate="2010-11-16T08:56:27.873" ClosedDate="2010-11-16T10:01:42.220" Title="Illegal to leave job?" Tags="&lt;jobs&gt;" AnswerCount="11" CommentCount="6" />
  <row Id="19211" PostTypeId="2" ParentId="19210" CreationDate="2010-11-15T23:52:05.697" Score="14" ViewCount="" Body="&lt;p&gt;This would depend on your local laws, but if you live in the US or Canada, I'm fairly certain that no, it is most definitely not illegal for you to quit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they have evidence that you have deliberately &lt;em&gt;sabotaged&lt;/em&gt; their project, then they can bring legal action against you. But if you're just quitting, no, they can't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I were you, I'd give them my two weeks notice and go line up another job. They can't stop you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, as always in legal matters, this is not legal advice and I am not an attorney. More importantly I'm not &lt;em&gt;your&lt;/em&gt; attorney, and that is the only person who can give you legal advice in this matter.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-11-15T23:52:05.697" CommentCount="1" />
  <row Id="19212" PostTypeId="2" ParentId="19090" CreationDate="2010-11-15T23:52:12.110" Score="1" ViewCount="" Body="&lt;p&gt;Well, if I was asked, I'd be iffy on hiring someone without a Bachelor's of some sort in any case. My hiring preference would be either truly mad leet skillz or a Bachelor's+ of Math/CS/EE. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My experience is that people without the BSCS &lt;em&gt;often&lt;/em&gt; have a lousy time handing the engineering aspects of coding and lack depth of insight into the computer stack. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a sense, I consider the BS to be a high-pass filter of ability. Either you're hot stuff and have demonstrated ability, or you have a BS, and have demonstrated the minimum probable competence. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I don't want uneducated colleagues if I can help it. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;I have never let my schooling interfere with my education&quot;&#xA;    -- Mark Twain&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-15T23:52:12.110" />
  <row Id="19213" PostTypeId="2" ParentId="19210" CreationDate="2010-11-15T23:52:51.243" Score="20" ViewCount="" Body="&lt;p&gt;I'm not a lawyer, and I don't know if you'll encounter legal trouble. But there's a good chance there'll be some trouble when trying to get a good reference from them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Leave on a high note&lt;/strong&gt;&#xA;If in any way possible, put some effort in to handing over these unfinished projects to colleagues. It might gain you some credits. Try to avoid burning bridges. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Leaving on a high note diminishes any litigious feelings.&lt;/p&gt;&#xA;" OwnerUserId="7034" LastEditorUserId="7034" LastEditorDisplayName="" LastEditDate="2010-11-16T00:00:12.600" LastActivityDate="2010-11-16T00:00:12.600" CommentCount="2" />
  <row Id="19214" PostTypeId="2" ParentId="19210" CreationDate="2010-11-15T23:52:53.107" Score="3" ViewCount="" Body="&lt;p&gt;IANAL, YMMV, etc.  But in most places (at least in the United States) where you're not under contract, employment is &lt;a href=&quot;http://en.wikipedia.org/wiki/At-will_employment&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;at will,&lt;/em&gt;&lt;/a&gt; meaning you can leave at any time for any reason, and your employer can terminate you at any time for any reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, it might be nice to give at least two weeks notice, and help your employer transition.  That's what I did at my last job.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-15T23:59:59.573" LastActivityDate="2010-11-15T23:59:59.573" CommentCount="2" />
  <row Id="19215" PostTypeId="2" ParentId="19210" CreationDate="2010-11-15T23:52:56.907" Score="5" ViewCount="" Body="&lt;p&gt;They are supposed to be able to interpret what you did, otherwise they would have fired you anyways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a popular saying that states something along the lines of&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;As a programmer your job is to put&#xA;  yourself out of business&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;meaning that you are supposed to code in a way that, when you leave the job for whatever reason, the person who follows up on the projects you left over should be able to continue without any major hiccups&lt;/p&gt;&#xA;" OwnerUserId="2046" LastActivityDate="2010-11-15T23:52:56.907" CommentCount="3" />
  <row Id="19216" PostTypeId="2" ParentId="19210" CreationDate="2010-11-15T23:53:19.917" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is it illegal in any way, shape or&#xA;  form to leave a job with half coded&#xA;  work?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I have been on a couple projects that&#xA;  I said I was going to work on and I&#xA;  didn't because I didn't plan on being&#xA;  there in the near future&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Illegal? No, probably not (IANAL).  Irresponsible, unethical, reprehensible?  Um, yeah.&lt;/p&gt;&#xA;" OwnerUserId="6735" LastEditorUserId="6735" LastEditorDisplayName="" LastEditDate="2010-11-16T00:02:27.737" LastActivityDate="2010-11-16T00:02:27.737" CommentCount="2" />
  <row Id="19217" PostTypeId="2" ParentId="19210" CreationDate="2010-11-16T00:07:06.360" Score="4" ViewCount="" Body="&lt;p&gt;Under normal circumstances, you will hardly ever be able to leave your job with &lt;em&gt;everything&lt;/em&gt; finished, well-documented and bug-free. That's especially true in the jobs where leaving is most necessary, because the work environment plainly sucks. But I would strongly recommend against leaving at the worst possible time, since this will surely hurt your reputation.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="6617" LastEditorDisplayName="" LastEditDate="2010-11-16T00:17:55.487" LastActivityDate="2010-11-16T00:17:55.487" />
  <row Id="19218" PostTypeId="1" CreationDate="2010-11-16T00:28:40.920" Score="2" ViewCount="161" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the company that I currently work at, Word documents are passed around which contain the features/requirements for the software we write, and those Word docs contain mock-ups (there aren't any use cases that I've seen).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm just curious what project managers use at other companies.  Do some skip making the requirements documents altogether and go straight for a ticket-tracker such as JIRA?  What seems to work the best?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&#xA;-Jon&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-11-17T13:53:49.183" Title="What format have project managers used for defining features/requirements?" Tags="&lt;project-management&gt;&lt;requirements&gt;&lt;specifications&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="19219" PostTypeId="1" AcceptedAnswerId="19234" CreationDate="2010-11-16T00:32:10.327" Score="3" ViewCount="150" Body="&lt;p&gt;Hi there,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking to make an ingame poker hud similar to PokerTracker/Holdem Manager as my first foray into a new language. I've got experience of a lot of web languages with flex/actionscript being my strong points at the moment but am looking for something that will really push me to improve my skills, hence the task I've chosen!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm really wondering what is going to be the best tool for the task; I know I will need to:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Store hand history data in an SQL database, so having easy-to-use libaries to do this would definitely be an advantage&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Overlay text (and maybe even some shiny graphics) onto the existing poker windows. I don't actually know how this is done other than someone at working vaguely mentioning that I'd probably need to hook into the windows API, but given a pointer or two I'm sure I can find that out for myself! :)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I'd love to start learning Ruby (it looks shiny!) but I doubt it would be usable for this task because of its web oriented nature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what would you recommend?&lt;/p&gt;&#xA;" OwnerUserId="7756" LastActivityDate="2010-11-16T02:51:42.923" Title="Best language for this task?" Tags="&lt;programming-languages&gt;&lt;self-improvement&gt;&lt;recommendations&gt;&lt;database-development&gt;" AnswerCount="1" CommentCount="8" />
  <row Id="19220" PostTypeId="2" ParentId="19104" CreationDate="2010-11-16T00:41:10.297" Score="0" ViewCount="" Body="&lt;p&gt;I was not hired by someone I know very well some years ago when I was pretty hard up for a job.  He simply explained that the final decision was not his.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It stings a little more than a rejection from someone who doesn't know you, but for all I know my outspoken friend's boss just didn't want him having &lt;em&gt;too&lt;/em&gt; many &lt;strong&gt;allies&lt;/strong&gt; working at the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's important, and it isn't.&lt;/p&gt;&#xA;" OwnerUserId="6847" LastActivityDate="2010-11-16T00:41:10.297" />
  <row Id="19221" PostTypeId="2" ParentId="19218" CreationDate="2010-11-16T00:55:52.350" Score="0" ViewCount="" Body="&lt;p&gt;It depends. When we are working on a large set of related requirements and are going back and forth with the customer we have a document that is &quot;customer friendly&quot;. When these are locked down (or as good as they are going to get) we put them in a tracker. If the requirement is a technical requirement and something that wouldn't be appropriate to talk about with the customer or if it is a minor change then it will be &quot;fast-tracked&quot; and go straight to the tracker.&lt;/p&gt;&#xA;" OwnerUserId="3697" LastActivityDate="2010-11-16T00:55:52.350" />
  <row Id="19223" PostTypeId="2" ParentId="19149" CreationDate="2010-11-16T01:14:13.800" Score="1" ViewCount="" Body="&lt;p&gt;I think that anyone who claims expert experience in every .NET technology is a liar. There's just too much for a single person. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At some point you have to either specialize or take a step back and just know the different building blocks at a more abstract, high level, and know where to go for more details if you ever need it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even then, does it really matter much? You'll probably still get the job done even without the latest gadgets. People managed to build some pretty awesome apps a few years ago after all. There's a good chance that a lot of this stuff will just be a fad that is obsolete by .NET 6.0 anyway.&lt;/p&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-11-16T01:14:13.800" />
  <row Id="19224" PostTypeId="2" ParentId="19210" CreationDate="2010-11-16T01:15:31.927" Score="1" ViewCount="" Body="&lt;p&gt;In the United States it's not illegal. So, if your in the USA then don't show up for work tomorrow or go in and give a 2 week notice. If you give notice, they may want you to leave immediately, which sounds exactly like what you want. Keep trying jobs 'til you find something you like.&lt;br /&gt;&lt;br /&gt;&#xA;Good luck.&lt;/p&gt;&#xA;" OwnerUserId="7038" LastActivityDate="2010-11-16T01:15:31.927" />
  <row Id="19225" PostTypeId="1" AcceptedAnswerId="19261" CreationDate="2010-11-16T01:42:40.797" Score="5" ViewCount="415" Body="&lt;p&gt;Java's checked exceptions have gotten some bad press over the years. A telling sign is that it's literally the only language in the world that has them (not even other JVM languages like Groovy and Scala). Prominent Java libraries like Spring and Hibernate also don't use them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally have found one use for them (&lt;a href=&quot;http://programmers.stackexchange.com/questions/15570/&quot;&gt;in business logic&lt;/a&gt; between layers), but otherwise I'm pretty anti-checked exceptions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any other uses that I don't realize?&lt;/p&gt;&#xA;" OwnerUserId="7610" LastActivityDate="2010-11-18T15:58:30.937" Title="In Java, what are checked exceptions good for?" Tags="&lt;java&gt;&lt;exceptions&gt;&lt;errors&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="2" />
  <row Id="19226" PostTypeId="2" ParentId="19225" CreationDate="2010-11-16T01:47:58.947" Score="5" ViewCount="" Body="&lt;p&gt;They're really good for annoying programmers and encouraging exception swallowing.  Half the point of exceptions is so that you have a sane default way of handling errors and don't have to think about explicitly propagating error conditions you can't handle.  (The sane default being that if you never handle the error anywhere in your code, you've effectively asserted that it can't happen, and are left with a sane exit and a stack trace if you're wrong.)  Checked exceptions defeat this.  They feel a lot like having to explicitly propagate errors in C.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-16T01:47:58.947" />
  <row Id="19227" PostTypeId="2" ParentId="18952" CreationDate="2010-11-16T02:00:04.740" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It can be misleading.&lt;/strong&gt;   If I copy a folder out of source control to a separate tree, then edit it, it will no longer have the correct revision.   You can not simply look at the expanded revision string to determine which version of a file you have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I still think they are valuable.  Having the expanded version string in a file you find outside the source control system allows you to know where to start your search through the history to determine it's validity.  I've found myself needing to do this at least twice in the last month. &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-11-16T02:00:04.740" />
  <row Id="19228" PostTypeId="2" ParentId="19210" CreationDate="2010-11-16T02:07:03.957" Score="12" ViewCount="" Body="&lt;p&gt;I checked your profile for your location, and Pennsylvania &lt;strong&gt;&lt;em&gt;is&lt;/em&gt;&lt;/strong&gt; an at-will employment state. This means, you or your employer can terminate your arrangement &lt;strong&gt;&lt;em&gt;at will&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are caveats to this, such as &lt;a href=&quot;http://en.wikipedia.org/wiki/At-will_employment#Implied_contract_exceptions&quot; rel=&quot;nofollow&quot;&gt;implied contract exceptions&lt;/a&gt;, however PA is one of the states that does not have those. Still, that exception is designed to protect an employee from unwarranted dismissal if the employee had a reasonable expectation that their employment would not be terminated (thus extending themselves financially with the expectation of a certain income).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not a lawyer, but dealing with HR is part of my job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can tell you that leaving a company in a major bind is decidedly not a good idea. You don't want to burn bridges that leave suspicious gaps in your CV. Additionally, you never know when you'll encounter someone else from that company. Your past actions have a way of catching up with you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for litigation? That would depend on if the company could prove some kind of implied contract with you, which in PA would be difficult. Still, check with an attorney if you really fear that it could end up in court.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd just try to grin, bear it, finish the project (or advance it to the point that someone else could), document everything and spend each day working so that if you 'got hit by a bus', the company would not be in a bind. You should be doing that anyway, to be honest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also tell your employer that you really aren't happy where you are and let them know that you want to leave ASAP. Ask them to hire a replacement for you to bring up to speed. If weeks go by and they have yet to hire someone, tell them that you'll be leaving in two weeks, there isn't much time to work with a replacement. If they still fail to hire someone, that's their problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Really, try to be as civil as you can possibly be, if only so it can't be said that you weren't. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-16T02:07:03.957" />
  <row Id="19229" PostTypeId="2" ParentId="19225" CreationDate="2010-11-16T02:07:17.693" Score="2" ViewCount="" Body="&lt;p&gt;I think it is fair to say that checked exceptions were a bit of a failed experiment. Where they went wrong is that they broke layering:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Module A might be built on top of Module B, where&lt;/li&gt;&#xA;&lt;li&gt;Module B might be built on top of Module C.&lt;/li&gt;&#xA;&lt;li&gt;Module C might know how to identify an error, and&lt;/li&gt;&#xA;&lt;li&gt;Module A might know how to handle the error.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The nice separation of concerned is broken, because now knowledge of errors that could have been limited to A and C now have to be scattered over B.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a &lt;a href=&quot;http://en.wikipedia.org/wiki/Exception_handling#Checked_exceptions&quot; rel=&quot;nofollow&quot;&gt;nice discussion&lt;/a&gt; of checked exceptions on Wikipedia.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And Bruce Eckel has a &lt;a href=&quot;http://www.mindview.net/Etc/Discussions/CheckedExceptions&quot; rel=&quot;nofollow&quot;&gt;nice article&lt;/a&gt; on it as well. Here's a quote:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;[T]he more random rules you pile onto&#xA;  the programmer, rules that have&#xA;  nothing to do with solving the problem&#xA;  at hand, the slower the programmer can&#xA;  produce. And this does not appear to&#xA;  be a linear factor, but an exponential&#xA;  one&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I believe for the case of C++, if all methods have the &lt;code&gt;throws&lt;/code&gt; specification clause, then you can have some nice optimizations. I don't believe Java could have those advantages anyway, though, because &lt;code&gt;RuntimeExceptions&lt;/code&gt; aren't checked. A modern JIT should be able to optimize the code just fine anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One nice feature of AspectJ is exception softening: You can turn checked exceptions into unchecked exceptions, specifically to enhance layering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps it's ironic that Java went through all of this trouble, when it could have checked for &lt;code&gt;null&lt;/code&gt; instead, which &lt;a href=&quot;http://lambda-the-ultimate.org/node/3186&quot; rel=&quot;nofollow&quot;&gt;might have been much more valuable&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-16T02:07:17.693" CommentCount="2" />
  <row Id="19230" PostTypeId="2" ParentId="19090" CreationDate="2010-11-16T02:25:41.900" Score="1" ViewCount="" Body="&lt;p&gt;I'm not sure if it answers your question, but I've witnessed a number of people who were just too intelligent to get in sync with traditional education. I was a college professor, and I saw a couple people who had made it to college, but then got so deep into coding projects that they hardly ever came to class.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This has its pros and cons. It was very good for them if they could manage to get under the wing of a really good mentor. It was not so good if it meant that really useful material in math and computer science (not to mention liberal arts) was outside their reach. So they had to be careful of having stunted intellectual growth.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-11-16T02:37:33.183" LastActivityDate="2010-11-16T02:37:33.183" />
  <row Id="19231" PostTypeId="2" ParentId="19225" CreationDate="2010-11-16T02:34:30.980" Score="2" ViewCount="" Body="&lt;p&gt;You've got two good answers which explain what checked exceptions have become in practice. (+1 to both.) But it would also be worthwhile to examine what they were intended for in theory, because the intention is actually worthwhile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Checked exceptions are actually intended to make the language more type safe. Consider a simple method like integer multiplication. You might think that the result type of this method would be an integer, but, strictly speaking, the result is either an integer or an overflow exception. Considering the integer result by itself as the return type of the method does not express the full range of the function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seen in this light, it's not strictly true to say that checked exceptions have not found their way into other languages. They have just not taken the form that Java used. In Haskell applications, it is common to use algebraic data types to distinguish between successful and unsuccessful completion of the function. Although this is not an exception, per se, the intention is very much the same as a checked exception; it is an API designed to force the API consumer to handle both the successful in the unsuccessful case, e.g.:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;data Foo a =&#xA;     Success a&#xA;   | DidNotWorkBecauseOfA&#xA;   | DidNotWorkBecauseOfB&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This tells the programmer that the function has two additional possible results besides success.&lt;/p&gt;&#xA;" OwnerUserId="3862" LastActivityDate="2010-11-16T02:34:30.980" />
  <row Id="19232" PostTypeId="2" ParentId="19210" CreationDate="2010-11-16T02:36:10.370" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is it illegal in any way, shape or form to leave a job with half coded work?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't think it would be illegal in any country in the Western world to leave a &quot;normal&quot; job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it may well be a breach of contract, and your employer may be able to sue you for breach of contract, and (depending on what your contract states, and on applicable employment laws) recover monetary damages from you.  (I don't think they can force you to turn up for work though.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are exceptions to this.  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;If you are a serving military officer, you cannot just walk out.  That is called desertion.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Some countries designate certain jobs / job classifications as critical, and have laws that make it illegal to go on strike, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Many &quot;guest&quot; workers are in a position where their residency / work permit is conditional on staying with their current employer&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Finally, slavery and bonded labour do still exist in certain countries, whether or not they are strictly legal.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-11-16T02:36:10.370" CommentCount="1" />
  <row Id="19233" PostTypeId="2" ParentId="19225" CreationDate="2010-11-16T02:46:00.423" Score="-1" ViewCount="" Body="&lt;p&gt;Checked exceptions are also in ADA. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;(Warning, this post contains strongly held beliefs that you might find confronting.)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers don't like them and complain, or write exception swallowing code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Checked exceptions exist because things can not only fail to work, you can do a failure mode/effects analysis and determine this in advance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;File reads can fail. RPC calls can fail. Network IO can fail. Data can be mis-formatted when parsed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;The &quot;happy path&quot; for code is easy.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I knew a guy at University who could write great &quot;happy path&quot; code. None of the edge cases ever worked. These days he does Python for an open source company. Nuff said.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;If you don't want to handle checked exceptions, what you're really saying is&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;While I'm writing this code, I don't want to consider obvious failure modes.&#xA;&#xA;The User will just have to like the program crashing or doing weird things.&#xA;&#xA;But that's okay with me because &#xA;&#xA;I'm so much more important than the people who will have to use the software&#xA;&#xA;in the real, messy, error-prone world.&#xA;&#xA;After all, I write the code once, you use it all day long.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So checked exceptions are not going to be liked by programmers, because it means more work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, other people might have wanted that work done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They might have wanted the right answer even if the file server failed/ USB stick dies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a strange belief in the programming community that you should be using a programming language that makes your life easier, that you enjoy, when your job is to write software. You job is solving someones problem, not letting you engage in programmatic Jazz improvisation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're an amateur programmer (not programming for money), feel free to program in C# or some other language with no checked exceptions. Heck, cut out the middle man and program in Logo. You can draw pretty patterns on the floor with the turtle.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-11-16T02:46:00.423" CommentCount="3" />
  <row Id="19234" PostTypeId="2" ParentId="19219" CreationDate="2010-11-16T02:51:42.923" Score="2" ViewCount="" Body="&lt;p&gt;If you want easy database access and GUI management on a Windows system, I'd say the best language for your task is easily Delphi.  DB and GUI work are two of its biggest strengths, and a third is that &lt;a href=&quot;http://tech.turbu-rpg.com/85/learning-delphi-a-true-story&quot; rel=&quot;nofollow&quot;&gt;it's very easy to learn.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-11-16T02:51:42.923" CommentCount="4" />
  <row Id="19235" PostTypeId="2" ParentId="19210" CreationDate="2010-11-16T03:00:21.067" Score="2" ViewCount="" Body="&lt;p&gt;If you don't have a contract, then it's not illegal to leave.  In fact, it's not illegal to walk off the job in the middle of the day if you so choose.  They're legally obligated to pay you up to the moment you left.  Most likely they're &lt;em&gt;not&lt;/em&gt; obligated to pay you things like unused vacation, though.  If you want that, you'll have to give the customary two weeks' notice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for reputation and references, in my experience, most companies don't give any references, positive or negative.  The most they'll give out is a terse &quot;he worked here from date x to date y&quot; from an HR person.  They fear legal repercussions for defamation, slander, whatever, so they usually prefer to give no references rather than risk it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which is as it should be.  Just because a person doesn't work out at Company A doesn't mean he won't work out at Company B, C, or D.  Different people flourish in different work environments.  It would be extraordinarily petty to try to keep someone from having a career just because he didn't do so hot at &lt;em&gt;your&lt;/em&gt; company.&lt;/p&gt;&#xA;" OwnerUserId="3963" LastActivityDate="2010-11-16T03:00:21.067" />
  <row Id="19236" PostTypeId="1" AcceptedAnswerId="19555" CreationDate="2010-11-16T03:07:43.817" Score="1" ViewCount="345" Body="&lt;p&gt;Whats the best mobile development platform for enterprise applications and why?&#xA;What criteria do you look at when evaluating mobile platforms to develop an application for your corporation/company, besides employee user base.&lt;/p&gt;&#xA;" OwnerUserId="6518" LastActivityDate="2010-11-17T09:14:48.517" Title="Whats the best mobile development platform for enterprise applications and why?" Tags="&lt;web-applications&gt;&lt;mobile&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="19237" PostTypeId="2" ParentId="19191" CreationDate="2010-11-16T03:10:53.053" Score="0" ViewCount="" Body="&lt;p&gt;PHP = PHPDocumentor&lt;/p&gt;&#xA;" OwnerUserId="6518" LastActivityDate="2010-11-16T03:10:53.053" />
  <row Id="19238" PostTypeId="1" AcceptedAnswerId="19310" CreationDate="2010-11-16T03:14:21.773" Score="5" ViewCount="178" Body="&lt;p&gt;I am going to give a javascript course to some developers in a local company, I know all the subjects I will teach and estimate duration, also note that the course will be for experience developers so it will contain a lot of advanced subjects.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know how to calculate my cost, anyone there have experience and can advice me?&lt;/p&gt;&#xA;" OwnerUserId="3867" LastActivityDate="2010-11-16T12:13:05.270" Title="How to calculate the cost of a course I will give?" Tags="&lt;javascript&gt;&lt;courses&gt;&lt;cost&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="19239" PostTypeId="2" ParentId="19238" CreationDate="2010-11-16T03:21:25.150" Score="2" ViewCount="" Body="&lt;p&gt;How much is your time worth? That's roughly it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also search online for similar courses and see what other people are charging to give yourself the idea of what you could charge. Ultimately, though, think about the value you're providing and the money you'd like to make out of it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This will also depend on where you are. Different countries or even different parts of the same country may have different price tolerances for tech courses.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-11-16T03:21:25.150" />
  <row Id="19240" PostTypeId="2" ParentId="19238" CreationDate="2010-11-16T03:22:54.227" Score="3" ViewCount="" Body="&lt;p&gt;Knowing how much to charge is always a balancing act.  Joel wrote &lt;a href=&quot;http://www.joelonsoftware.com/articles/CamelsandRubberDuckies.html&quot; rel=&quot;nofollow&quot;&gt;a great article about it&lt;/a&gt; a while back.  A lot of the stuff in there doesn't apply to your specific situation, but it's still worth reading.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you charging the company a lump sum at this event, or charging the developers a per-person admission fee?  Either way, you want to basically set the price about as high as you can without the prospective buyer deciding it's too high and turning you down, but that's a lot easier to estimate if there's only one prospective buyer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're charging per person, try looking in the mirror. This is for experienced developers, and you're an experienced developer.  What would you see as a fair price if you were deciding whether or not to attend a similar course?&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-11-16T03:22:54.227" />
  <row Id="19241" PostTypeId="1" AcceptedAnswerId="19243" CreationDate="2010-11-16T03:32:02.453" Score="4" ViewCount="188" Body="&lt;p&gt;As a high school student who's pretty serious about programming, I'm trying to expand my knowledge and hone my skills (recently foraying into Python). The problem is, I can't seem to find any interesting projects to work on that won't take up all my time. I'm tired of writing games (BlackJack, anyone?), but I'm not looking forward to writing the chat server and client my book recommends I do. Of course, if I can write the same project in several languages, as I am apt to do, even better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, any interesting projects I could work on? (Yes, I've already seen Project Euler, and after advancing quite a bit, I lost interest.) I don't have the time to work on something incredibly involved (as such, I probably don't have the time to work on a GUI, or graphical games, nor do I have the graphics skills - text-based projects are definitely in, though), but I still am interested in a challenge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can come up with something cool, I'd love to know about it. Thanks!&lt;/p&gt;&#xA;" OwnerUserId="7228" LastActivityDate="2010-11-18T22:32:36.973" Title="Interesting Projects for a High-Schooler" Tags="&lt;programming-languages&gt;&lt;programming&gt;&lt;school&gt;&lt;project&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="2" />
  <row Id="19242" PostTypeId="2" ParentId="19241" CreationDate="2010-11-16T03:34:41.937" Score="1" ViewCount="" Body="&lt;p&gt;Check out &lt;a href=&quot;http://programmers.stackexchange.com/questions/756/programming-puzzles&quot;&gt;this question&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7629" LastActivityDate="2010-11-16T03:34:41.937" CommentCount="1" />
  <row Id="19243" PostTypeId="2" ParentId="19241" CreationDate="2010-11-16T03:39:16.743" Score="2" ViewCount="" Body="&lt;p&gt;As you're learning Python, you might find the &lt;a href=&quot;http://www.pythonchallenge.com/&quot; rel=&quot;nofollow&quot;&gt;Python Challenge&lt;/a&gt; interesting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another option would be to contribute to an open source project. You'd be able to hone your skills by working with others without feeling burdened by the whole project. To find an open source project to work on, think about the software you use every day. Is any of it open source? If so, that might be a good fir. If not, you can look around on github or Google Code/Codeplex and see if anything strikes your fancy. &lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-11-16T03:39:16.743" CommentCount="1" />
  <row Id="19244" PostTypeId="1" CreationDate="2010-11-16T03:43:48.787" Score="4" ViewCount="236" Body="&lt;p&gt;I've come across the idea of Aspect Oriented Programming, and I have some concerns with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The basic idea seems to be that we want to take cross-cutting concerns which aren't well modularized using object and modularize them. That is all very fine and well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the implementation of AOP seems to be that of modifying code from outside of the module. So, for example, an aspect could be written that changes what happens when a particular object is passed as a parameter in a function. This seems to go directly against the idea of modules. I should not be able to modify a module's behavior from outside of that module, otherwise the whole point of modules are overturned. But aspects seem to be doing exactly that!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, aspects seems to be a form of code patching. It may useful for some quick hacks; but, as a general principle perhaps its not something you want to do. Aspect Oriented Programming seems to me taking a bad practice and raising to a general design principle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is AOP a good practice?  Are certain programming problems solved more elegantly with AOP?&lt;/p&gt;&#xA;" OwnerUserId="1343" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-16T16:10:51.723" LastActivityDate="2010-11-16T16:10:51.723" Title="Are certain problems solved more elegantly with AOP?" Tags="&lt;aspect-oriented&gt;" AnswerCount="4" CommentCount="6" FavoriteCount="2" />
  <row Id="19245" PostTypeId="2" ParentId="19203" CreationDate="2010-11-16T03:50:47.887" Score="0" ViewCount="" Body="&lt;p&gt;The first and foremost thing is that it allows the decoupling of view and the logic of your application. Your view needn't know how the business logic, data etc are handled. This allows you to do quick UI changes, according to user experience feedback. Also if something on the back-end is changed the UI doesn't even have to modified a little.&lt;br&gt;&#xA;MVC architecture uses this design pattern to separate the parts. It also allows for multiple persons to work together effectively in case of big enterprise applications.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-11-16T03:50:47.887" />
  <row Id="19246" PostTypeId="1" AcceptedAnswerId="19270" CreationDate="2010-11-16T04:00:22.107" Score="4" ViewCount="287" Body="&lt;p&gt;I've been itching for a while to learn a new language.  I cut my teeth on PHP, though I don't use it anymore.  I primarily program in D and Python now.  I feel that these languages complement each other well, because D is close to the metal, statically typed and bleeding edge, while Python is more dynamic, interpreted, more mature and has better library support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also know C pretty well (mostly learned from using the C-like subset of D), have some knowledge of C++, and have written a few very small one-off programs in Perl and Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key things I want in a langauge are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;A language that significantly expands my horizons.  I don't want to learn something that doesn't teach me anything conceptually interesting relative to D and Python.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A practically oriented language.  I absolutely, 110% refuse to spend any effort whatsoever learning a language that feels academic and emphasizes purity over practicality.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Something that is mature, modern and well supported enough to use for real work.  This doesn't necessarily mean large production projects, but at least serious prototypes and research code.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Good generics, templates, duck typing, type inference, or something similar to avoid the rigidity of plain old static typing is a must.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Terseness and readability count, though these are admittedly subjective.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-19T16:05:20.053" Title="Next language? Something practical but off the beaten path?" Tags="&lt;learning&gt;&lt;languages&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="3" />
  <row Id="19247" PostTypeId="2" ParentId="9521" CreationDate="2010-11-16T04:11:37.350" Score="3" ViewCount="" Body="&lt;p&gt;A language is dead when noone in their right mind would ever do a greenfield project in it.  Just like dead human languages aren't completely irrelevant (because we study history), dead programming languages aren't completely irrelevant (because we maintain all that crufty historical code). &lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-16T04:11:37.350" CommentCount="6" />
  <row Id="19248" PostTypeId="2" ParentId="19225" CreationDate="2010-11-16T04:12:59.707" Score="3" ViewCount="" Body="&lt;p&gt;Checked exceptions should have encouraged people to handle errors close to there source. The further away from the source, the more functions have terminated in the middle of running, and the more likely that the system has entered an inconsistent state. Additionally, it is more likely that you catch the wrong exception by accident.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sadly, people have tended to either ignore exceptions or  add ever increasing throw specifications. Both of these miss the point of what checked exceptions are suppose to encourage. They are like transforming procedural code to use many Getter and Setter functions supposedly making it OO. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially, checked exceptions are attempting to prove a certain degree of correctness in your code. Its pretty much the same idea as static typing, in that it attempts to prove that certain things are correct before the code even runs. The problem is that all of that extra proof takes effort and is the effort worthwhile?&lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-11-16T04:12:59.707" CommentCount="3" />
  <row Id="19249" PostTypeId="2" ParentId="19246" CreationDate="2010-11-16T04:14:01.470" Score="0" ViewCount="" Body="&lt;p&gt;It is not very mature, but &lt;a href=&quot;http://www.lechak.info/blue/index.php?page=docs.txt&quot; rel=&quot;nofollow&quot;&gt;Blue has most of what you want&lt;/a&gt; and would be relatively easy for you to hack given a C background.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It sounds to me like you are close to (or perhaps already) entertaining the idea of diving directly into developing a language, even if you don't yet realize it :) Blue would be a great entry point for that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only thing questionable is practicality, however Blue is easy to compile and ship, just like any other dependency or library.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-16T04:14:01.470" />
  <row Id="19250" PostTypeId="2" ParentId="19246" CreationDate="2010-11-16T04:16:07.457" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Smalltalk&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Download a Squeak bootable image and take it for a whirl. &lt;a href=&quot;http://squeak.org&quot; rel=&quot;nofollow&quot;&gt;http://squeak.org&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Smalltalk gets used for very serious work ( still quite popular in the financial sector)&#xA;You can change the image as it's running, and commercial smalltalk VM's will let you change a method and restart execution while, for example the traders are still trading.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Variables are typeless, so you'd probably call that duck typing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's wider in concept than Python. Blocks (lambda functions), continuations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And it's an image based system not a program that-you run system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will expand your mind.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-16T21:47:56.780" LastActivityDate="2010-11-16T21:47:56.780" CommentCount="4" />
  <row Id="19251" PostTypeId="2" ParentId="19203" CreationDate="2010-11-16T04:16:41.090" Score="1" ViewCount="" Body="&lt;p&gt;The examples that really opened my eyes were seeing how it made it possible to easily unit test the objects created in such a fashion. Prior to that, I had trouble attempting to isolate objects for a unit test. I would often write tests to interacted with a much larger system. This was really  hard because the system as a whole was much less predictable and much more prone to change then the individual components. &lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-11-16T04:16:41.090" />
  <row Id="19252" PostTypeId="2" ParentId="19244" CreationDate="2010-11-16T04:17:16.550" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;In other words, I think Aspect Oriented Programming is a terrible idea. Show me why its not.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Well, the fact that AOP is being used successfully by thousands of developers says that it has value to them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From that pragmatic perspective &lt;em&gt;at least&lt;/em&gt; AOP is &lt;strong&gt;not&lt;/strong&gt; a terrible idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now you are entitled to disagree, but ranting about it and throwing around perjorative phrases like &quot;monkey patching&quot; is not going to convince me that you have a sound basis for disagreeing.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-11-16T04:17:16.550" CommentCount="3" />
  <row Id="19253" PostTypeId="2" ParentId="19244" CreationDate="2010-11-16T04:20:03.070" Score="-2" ViewCount="" Body="&lt;p&gt;A bit like a criminal on the run, it is Alive and well and calling itself Dependency injection (DI)  and Inversion Of Control (IOC) containers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which most people seem to tolerate. And might even be considered a GOOD IDEA&lt;sup&gt;TM&lt;/sup&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-16T04:51:07.773" LastActivityDate="2010-11-16T04:51:07.773" CommentCount="3" />
  <row Id="19254" PostTypeId="1" AcceptedAnswerId="19332" CreationDate="2010-11-16T04:20:24.143" Score="1" ViewCount="143" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a full time software engineer/dba right now.  I have several years experience in the .NET stack.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm planning on going back to grad school in mathematics.  I've been looking around and haven't really found any good part time jobs.  In fact, there seems to be very few part time jobs listed on Dice or Craigslist in my area...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it unrealistic for me to think that I might be able to work my way through grad school by programming/doing dba work part-time?  It's both about keeping my skill set sharp and paying the bills...I wouldn't want a long break in practical experience...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anybody have any suggestions?  Would it be better to emphasize my DBA skillset or my programming skillset?  My hunch is that being a dba is more conducive to landing part time work than development...is that true?&lt;/p&gt;&#xA;" OwnerUserId="5057" LastActivityDate="2010-11-16T14:09:46.650" Title="How do you go about landing a part time software engineering/dba job?" Tags="&lt;career&gt;" AnswerCount="2" />
  <row Id="19256" PostTypeId="2" ParentId="19254" CreationDate="2010-11-16T04:32:58.507" Score="1" ViewCount="" Body="&lt;p&gt;I've probably got the terminology wrong but you probably want to look for professors that need graduate students for fellowships.  The other way to go would be to look for open part-time positions with the University.  Typically most (large anyway) universities have some jobs that are reserved for students.  From what I remember it was also fairly common for tech companies that were colocated with (tech incubator) or just near universities to post openings for part-time developers.  I do remember the competition for those positions was fairly strong though.&lt;/p&gt;&#xA;" OwnerUserId="4819" LastActivityDate="2010-11-16T04:32:58.507" />
  <row Id="19257" PostTypeId="2" ParentId="19225" CreationDate="2010-11-16T04:33:13.330" Score="4" ViewCount="" Body="&lt;p&gt;IMO, checked exceptions are a flawed implementation of what &lt;em&gt;might&lt;/em&gt; have been a pretty decent idea (under completely different circumstances -- but really isn't even a good idea under the current circumstance).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The good idea is that it would be nice to have the compiler verify that all exceptions that a program has a potential to throw will be caught. The flawed implementation is that to do that, Java forces you to catch the exception directly in whatever class invokes anything that's declared to throw a checked exception. One of the most basic ideas (and advantages) of exception handling is that in case of an error, it allows intermediate layers of code that have nothing to do with a particular error, to completely ignore its very existence. Checked exceptions (as implemented in Java) don't allow that, thus destroying a major (the primary?) advantage of exception handling to start with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In theory, they could have made checked exceptions useful by enforcing them only on a program-wide basis -- i.e., while &quot;building&quot; the program, build a tree of all the control paths in the program. Various nodes in the tree would be annotated with 1) exceptions they can generate, and 2) exceptions they can catch. To assure the program was correct, you'd then walk the tree, verifying that every exception that was thrown at any level in the tree was caught at some higher level in the tree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason they &lt;em&gt;didn't&lt;/em&gt; do that (I'd guess, anyway) is that doing so would be excruciatingly difficult -- in fact, I doubt anybody's written a build system that can do that for anything but &lt;em&gt;extremely&lt;/em&gt; simple (bordering on &quot;toy&quot;) languages/systems. For Java, things like dynamic class loading render it even more difficult than in many other cases. Worse, (unlike something like C) Java isn't (at least normally) statically compiled/linked to an executable. That means nothing in the system really has the global awareness to even &lt;em&gt;try&lt;/em&gt; to do this kind of enforcement until you actually start to load the program to run it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing enforcement at that point is impractical for a couple of reasons. First of all, even at best it would extend startup times, which are already one of the single biggest, most common complaints about Java. Second, to do much good, you really need to detect the problem early enough for a programmer to fix it. When the user is loading the program, it's too late to do much good -- your only choices at that point are to ignore the problem, or refuse to load/run the program at all, on the off chance that there &lt;em&gt;might&lt;/em&gt; be an exception that wasn't caught.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As they are, checked exceptions are worse than useless, but alternative designs for checked exceptions are even worse. While the basic idea for checked exceptions seems like a good one, it's really not very good, and happens to be a &lt;em&gt;particularly&lt;/em&gt; poor fit for Java. For something like C++, that's normally compiled/linked into a complete executable with nothing much like reflection/dynamic class loading, you'd stand a little more chance (though, quite frankly, even then enforcing them correctly without the same kind of mess they currently cause in Java would still probably be beyond the current state of the art).&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-16T04:33:13.330" />
  <row Id="19258" PostTypeId="2" ParentId="19218" CreationDate="2010-11-16T04:45:08.197" Score="1" ViewCount="" Body="&lt;p&gt;I've worked for a couple of contractors for various (US) government projects.  The short answer could be summed up by&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Dramatic pause for laughter)  Honestly I've seen everything from a (single) piece of paper scribbled on from a client (passed to me by the PM) to Excel/Word, to a System Spec in combination with a &lt;a href=&quot;http://en.wikipedia.org/wiki/Department_of_Defense_Architecture_Framework&quot; rel=&quot;nofollow&quot;&gt;DODAF&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lately I've been working a lot of small projects so I tend to capture these in a Enterprise Architect (UML tool) and then when I need a document I just generate it.  At least with the PM's I work with right now they don't define the software requirements, at most they (and/or the client) define the business requirements.  I (or the appropriate person) defines the software requirements that fulfill the business requirements.  They (client and/or PM) have to sign-off on the SW Requirements but that usually isn't a problem since the SW Requirements contain all kinds of things that the business requirements didn't.  Occasionally I have pushed back on a business requirement since it 'disagreed' with another requirement.  Usually that just meant the client/PM wasn't really sure what they wanted.&lt;/p&gt;&#xA;" OwnerUserId="4819" LastActivityDate="2010-11-16T04:45:08.197" />
  <row Id="19259" PostTypeId="2" ParentId="19244" CreationDate="2010-11-16T04:58:57.077" Score="1" ViewCount="" Body="&lt;p&gt;One situation in which AOP might be the only decent as well as practical solution is &lt;strong&gt;when you don't have access to the source code&lt;/strong&gt;. To use the tired old example of the Logging cross-cutting concern: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's say you want to log the flow of control in a third party library you consume. You have your own code fully instrumented with logging statements. However, for this library you don't have the source, making it impossible to add your logging statements. Since you &lt;em&gt;do&lt;/em&gt; have the bytecode, AOP allows you to instrument that third party library anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if you're creating a Logging aspect anyway, you might as well consider implementing Logging with AOP troughout your own code as well.&lt;/p&gt;&#xA;" OwnerUserId="7034" LastActivityDate="2010-11-16T04:58:57.077" CommentCount="4" />
  <row Id="19260" PostTypeId="2" ParentId="19244" CreationDate="2010-11-16T05:08:55.370" Score="6" ViewCount="" Body="&lt;p&gt;Aspect-Oriented Programming makes it possible to do certain types of programming that are difficult to do without unnecessarily scattering code throughout your application or library that is unrelated to the primary functions of your software (i.e. cross-cutting concerns).  Examples include:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Logging and Monitoring&lt;/li&gt;&#xA;&lt;li&gt;Performance analysis&lt;/li&gt;&#xA;&lt;li&gt;Debugging and Tracing&lt;/li&gt;&#xA;&lt;li&gt;Undo Functionality&lt;/li&gt;&#xA;&lt;li&gt;Validation of inputs and outputs&lt;/li&gt;&#xA;&lt;li&gt;Morphing the behavior of existing objects&lt;/li&gt;&#xA;&lt;li&gt;Object Filters&lt;/li&gt;&#xA;&lt;li&gt;Security Implementation&lt;/li&gt;&#xA;&lt;li&gt;Managing transactions&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;By confining such cross-cutting concerns to a single part of the application, and then referencing these features in the code via attributes, method call interception, or dynamic proxies, you allow the encapsulation of the cross-cutting behavior; this has all of the benefits (i.e. a single modification point) encapsulation would provide anywhere else in your application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key point here is that AOP encapsulates behaviour that is 1) common throughout the application, and 2) peripheral to the application's primary functionality.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-16T05:21:06.950" LastActivityDate="2010-11-16T05:21:06.950" />
  <row Id="19261" PostTypeId="2" ParentId="19225" CreationDate="2010-11-16T05:13:19.907" Score="7" ViewCount="" Body="&lt;p&gt;First of all, like any other programming paradigm you need to do it right for it to work well.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For &lt;em&gt;me&lt;/em&gt; the advantage of checked exceptions is that the authors of the Java runtime library ALREADY have decided for me what common problems I might reasonably be expected to be able to handle at the &lt;em&gt;calling&lt;/em&gt; point (as opposed to a top-level catch-print-die block) and consider as early as possible how to handle these problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like checked exceptions because they make my code more robust by forcing me to think about error recovery as early as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be more precise, to &lt;em&gt;me&lt;/em&gt; this makes my code more robust as it forces me to consider strange corner cases very early in the process as opposed to saying &quot;Oops, my code does not handle if the file doesn't exist yet&quot; based on an error in production, which you then have to rework your code to handle.  Adding error handling to existing code can be a non-trivial task - and hence expensive - when reaching maintenance as opposed to just doing it right from the start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might be that the missing file is a fatal thing and should cause the program to crash in flames, but then &lt;em&gt;you&lt;/em&gt; make that decision with&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;} catch (FileNotFoundException e) {&#xA;  throw new RuntimeException(&quot;Important file not present&quot;, e);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This also shows a very important side effect.  If you wrap an exception, you can add an explanation which &lt;em&gt;goes in the stack-trace&lt;/em&gt;!  This is so extremely powerful because you can add information about e.g. the name of the file that was missing, or the parameters passed to this method or other diagnostic information, and that information is present &lt;em&gt;right in the stack trace&lt;/em&gt; which frequently is the single thing you get when a program has crashed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People may say &quot;we can just run this in the debugger to reproduce&quot;, but I have found that very frequently production errors &lt;em&gt;cannot be reproduced&lt;/em&gt; later, and we cannot run debuggers in production except for very nasty cases where essentially your job is at stake.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The more information in your stack trace, the better.  Checked exceptions help me get that information in there, and early.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;EDIT:  This goes for library designers as well.  One library I use on a daily basis contains many, many checked exceptions which could have been designed much better making it less tedious to use.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-11-16T13:47:55.163" LastActivityDate="2010-11-16T13:47:55.163" CommentCount="3" />
  <row Id="19262" PostTypeId="1" CreationDate="2010-11-16T05:49:15.820" Score="0" ViewCount="169" Body="&lt;p&gt;I am doing a programming language course in university and i'd like to know in your own opinion which languages are easy or hard to learn and if there is a specific reason then why? Also do you feel the language constructors give you lots or power? (such as operator overloading and pointers?) Or requires some workaround some or much of the time (lack of pointer, no byval or byref params? etc). Also you should mention what you program for (web vs desktop app vs toolchain vs client or server are significantly different)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can keep your answer short then i'd be appreciative, no more then 4 paragraphs please. I prefer &amp;lt; 150 words if you can write that little.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-11-16T05:55:10.403" ClosedDate="2010-11-16T10:02:42.283" Title="Which languages are easy and hard to learn?" Tags="&lt;programming-languages&gt;" AnswerCount="1" />
  <row Id="19263" PostTypeId="2" ParentId="19262" CreationDate="2010-11-16T05:55:10.403" Score="2" ViewCount="" Body="&lt;p&gt;C/C++ are considered hard to learn because of the concept of pointers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Functional- and logic programming languages require you to abandon a lot of concepts from procedural programming and require a different mindset when solving a problem. This presents a learning curve.&lt;/p&gt;&#xA;" OwnerUserId="7034" LastActivityDate="2010-11-16T05:55:10.403" CommentCount="1" />
  <row Id="19264" PostTypeId="1" AcceptedAnswerId="19271" CreationDate="2010-11-16T06:08:11.933" Score="0" ViewCount="124" Body="&lt;p&gt;I'm working on a simple game.  It's very unpolished at the moment, but you can see it here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://chil.rice.edu/jzemla/googlewords/&quot; rel=&quot;nofollow&quot;&gt;http://chil.rice.edu/jzemla/googlewords/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea is to guess the word I'm thinking of.  Currently, it will spit out a value that tells you how similar your word or phrase is to mine, usually (but not always) between 0-1.  Lower is better, so a word of .2 is more similar than a word of .7.  (It ranks them low to high.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Considering the simplicity of the code, it does an &quot;OK&quot; job, but I imagine it would be &lt;em&gt;very very&lt;/em&gt; hard to guess the answer, particularly if the answer is complex.  In other words, the game isn't fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently, it uses an algorithm developed by Cilibrasi &amp;amp; Vitanyi, and subsequently modified by Evangelista &amp;amp; Kjos-Hanssen, that determines word similarity based on Google results.  It's simple to implement (currently 47 lines, but you could probably cut it down to around to about a fourth of that).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone have any idea suggestions for &lt;em&gt;simple&lt;/em&gt; ways in which I can improve the accuracy?  I'd love to do something like LSA, or use a machine learning algorithm, but those can be pretty difficult to implement.  I'm not looking for ground-breaking AI, just &quot;good enough&quot; to guess a word in, say, 100 guesses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Incidentally, the current answer is a simple noun, let me know if you manage to guess it...&lt;/p&gt;&#xA;" OwnerUserId="7761" LastActivityDate="2010-11-16T07:38:56.130" ClosedDate="2010-11-16T10:00:53.190" Title="Determining similarity between words" Tags="&lt;google&gt;" AnswerCount="3" CommentCount="3" />
  <row Id="19265" PostTypeId="2" ParentId="19246" CreationDate="2010-11-16T06:36:02.257" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.lua.org/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Lua&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;it has a very practical niche as a tiny core, easily embeddable and the fastest dynamic language available (with the most sophisticated JIT)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;at the same time, it's designed and maintained by academic luminaries, that doesn't add a feature until they feel that it can be done keeping the core small, and above all, consistent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;it has lots of language-design features that are missing or crippled on other languages, like lexical scoping, first-order functions, closures, continuations, immutability, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;some other popular features like OOP, generics, metaprogramming, aren't in the core but can be approximated (others say 'emulated') with a bit of code or simple conventions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;learning it does expand your mind, and at the same time is a valuable tool to add to your chest.  The biggest downside is that you can develop an aesthetic taste that would make other more practical languages downright ugly by comparison (that's how i feel about Python)&lt;/p&gt;&#xA;" OwnerUserId="6870" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-16T21:47:19.167" LastActivityDate="2010-11-16T21:47:19.167" />
  <row Id="19266" PostTypeId="2" ParentId="19264" CreationDate="2010-11-16T06:44:19.517" Score="2" ViewCount="" Body="&lt;p&gt;You might be able to use something like a &lt;a href=&quot;http://en.wikipedia.org/wiki/Soundex&quot; rel=&quot;nofollow&quot;&gt;Soundex&lt;/a&gt; algorithm.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-16T06:44:19.517" CommentCount="1" />
  <row Id="19267" PostTypeId="1" AcceptedAnswerId="19287" CreationDate="2010-11-16T06:44:53.103" Score="14" ViewCount="260" Body="&lt;p&gt;We all know what a software development manager does, but I'm afraid that we only know it &lt;em&gt;vaguely&lt;/em&gt;. We think we know what he is doing, but to exactly list down what is the job scope is a bit hard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your opinion, what are the roles of a software development manager?&lt;/p&gt;&#xA;" OwnerUserId="468" LastEditorUserId="8400" LastEditorDisplayName="" LastEditDate="2011-02-22T01:59:31.823" LastActivityDate="2011-02-22T01:59:31.823" Title="The Written Roles of Software Development Manager" Tags="&lt;management&gt;" AnswerCount="1" FavoriteCount="9" />
  <row Id="19268" PostTypeId="2" ParentId="19246" CreationDate="2010-11-16T06:56:17.457" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Ada:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I think it will teach you a lot about memory layout, data typing and structures.&lt;/li&gt;&#xA;&lt;li&gt;It is practical and in use by some major players in the software development world (e.g. &lt;a href=&quot;http://www.adaic.org/atwork/boeing.html&quot; rel=&quot;nofollow&quot;&gt;Boeing.&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Compiles with gcc. There are a few good IDEs for it too, including an Eclipse plugin.&lt;/li&gt;&#xA;&lt;li&gt;Lots of sources on the internet for learning Ada; it's been around for long enough to be considered mature by now (subjective) but it's certainly not dead.&lt;/li&gt;&#xA;&lt;li&gt;More recent standards have good generics/templates. Ada is known for its strong typing, but I've always been able to stay flexible through generics and abstract typing.&lt;/li&gt;&#xA;&lt;li&gt;I think it's terse :-)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7284" LastActivityDate="2010-11-16T06:56:17.457" CommentCount="2" />
  <row Id="19269" PostTypeId="2" ParentId="19264" CreationDate="2010-11-16T07:07:31.033" Score="3" ViewCount="" Body="&lt;p&gt;Have you looked into the &lt;a href=&quot;http://en.wikipedia.org/wiki/Levenshtein_distance&quot; rel=&quot;nofollow&quot;&gt;Levenshtein distance&lt;/a&gt;?&lt;/p&gt;&#xA;" OwnerUserId="7629" LastActivityDate="2010-11-16T07:07:31.033" CommentCount="1" />
  <row Id="19270" PostTypeId="2" ParentId="19246" CreationDate="2010-11-16T07:34:25.150" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://clojure.org/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Clojure&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;LISP (&quot;code is data is code&quot;), so it will definitely expand your horizons.&lt;/li&gt;&#xA;&lt;li&gt;Practical, works in the JVM / Java ecosystem so you're cross-platform out of the box and have zillions of libraries readily available. Also essential development tools like plugins for popular IDEs are available.&lt;/li&gt;&#xA;&lt;li&gt;Mature, it has been reportedly used for serious production work for a couple of years now.&lt;/li&gt;&#xA;&lt;li&gt;Type inference for flexibility, type hints for performance.&lt;/li&gt;&#xA;&lt;li&gt;Terseness and readability: LISP, so be prepared for parentheses and expanding your mind :-)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-16T21:47:37.420" LastActivityDate="2010-11-16T21:47:37.420" CommentCount="4" />
  <row Id="19271" PostTypeId="2" ParentId="19264" CreationDate="2010-11-16T07:38:56.130" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://wordnet.princeton.edu/&quot; rel=&quot;nofollow&quot;&gt;Wordnet&lt;/a&gt; is a linguistic app that can do stemming and help you find relationships between words. &lt;a href=&quot;http://en.wikipedia.org/wiki/WordNet&quot; rel=&quot;nofollow&quot;&gt;Wikipedia's article&lt;/a&gt; on Wordnet is also useful.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-11-16T07:38:56.130" CommentCount="3" />
  <row Id="19272" PostTypeId="2" ParentId="19210" CreationDate="2010-11-16T07:50:36.883" Score="0" ViewCount="" Body="&lt;p&gt;No they cant. If anything you can be sued for 'damages' such as if you sign a contract and by not fulfilling it causes them to lose X amount of money. But that is only if your doing contract work and they also must prove it and not be speculated. From the little i know you spend 10k to setup a stage for a 1 day concert and the band doesnt show up. You can prove you lost 10k but AFAIK you cant sue for missing out the 100k the show would of made even if you can prove it by counting tickets. (it isnt damage)&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-11-16T07:50:36.883" />
  <row Id="19273" PostTypeId="1" CreationDate="2010-11-16T08:02:58.620" Score="5" ViewCount="211" Body="&lt;p&gt;Reading Nikolaus Wirth, one can notice that despite some popularity of Pascal, he is not glad that Oberon (as a &quot;polished&quot; successor of Pascal and Modula) didn't get much popularity. I never did anything in Oberon, but reading the page Overon For Pascal Developers (http://statlab.uni-heidelberg.de/projects/oberon/ItO/www/ChPas.html) I really did not like many of the changes as a delphi/pascal developer, for example &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;forcing the reserved words to be always uppercase&lt;/li&gt;&#xA;&lt;li&gt;making the language case-sensitive&lt;/li&gt;&#xA;&lt;li&gt;getting rid of enumeration types &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What do you think about Oberon, is it really &quot;a better Pascal&quot; from your point of view? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Max&lt;/p&gt;&#xA;" OwnerUserId="4484" LastActivityDate="2010-11-17T21:11:10.990" Title="Is Oberon really &quot;a better Pascal&quot;?" Tags="&lt;programming-languages&gt;" AnswerCount="2" CommentCount="6" />
  <row Id="19274" PostTypeId="1" AcceptedAnswerId="19288" CreationDate="2010-11-16T08:50:44.953" Score="9" ViewCount="487" Body="&lt;p&gt;When you encounter in your work some boring, repetitive (possibly not-programming) task how do you deal with it? Do you try to automate it immediately? Do you postpone automation till you encounter the task twice? Do you try to delegate it? Do you try to find something interesting in it? What do you do to make the work more joyful? Learn deeper to make it more interesting? Learn deeper immediately or when you need it regularly? &lt;/p&gt;&#xA;" OwnerUserId="7763" LastEditorUserId="7763" LastEditorDisplayName="" LastEditDate="2010-11-16T18:04:04.710" LastActivityDate="2010-11-16T19:51:43.210" Title="How do you deal with boring repetitive tasks and activities?" Tags="&lt;automation&gt;" AnswerCount="7" CommentCount="3" />
  <row Id="19276" PostTypeId="2" ParentId="19274" CreationDate="2010-11-16T09:07:08.783" Score="5" ViewCount="" Body="&lt;p&gt;It depends what the job is. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some boring repetitive tasks (like going to weekly progress meetings) can't be automated. You just have to put up with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some (like not having an automated build system) you might put up with forever if you only do the build once a year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And some - you try to automate because it lets you do other more productive things, and also removes the possibility of human error.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-11-16T09:07:08.783" />
  <row Id="19277" PostTypeId="2" ParentId="19274" CreationDate="2010-11-16T09:10:39.127" Score="13" ViewCount="" Body="&lt;p&gt;If there is a point and value in automating it, I will absolutely do so - time considering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Daily System Statistic Collection that could take up to an hour manually - Automate&lt;/li&gt;&#xA;&lt;li&gt;A Data Collection Routine once in a blue moon taking +- 15mins - I just do it&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7494" LastActivityDate="2010-11-16T09:10:39.127" CommentCount="4" />
  <row Id="19278" PostTypeId="1" AcceptedAnswerId="19293" CreationDate="2010-11-16T09:11:47.820" Score="21" ViewCount="822" Body="&lt;p&gt;(Originally posted on Stack Overflow but closed there and more relevant for here)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So we first interviewed a guy for a technical role and he was pretty good. Before the second interview we googled him and found his MySpace page which could, to put it mildly, be regarded as inappropriate.  Just to be clear there was no doubt that it was his page (name, photos, matching biographical information and so on).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The content was entirely personal and in no way related to his professional abilities or attitude.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it fair to consider this when thinking about whether to offer them a job?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In most situations my response would be what goes on in someone's private life is their own doing. However for anyone technical who professes (implicitly or explicitly) to understand the Internet and the possibilities it offers, is posting things in a way which can so obviously be discovered a significant error of judgement?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Clarification - essentially it was a fairly graphic commentary on porn (but of, shall we say, a non-academic nature).  I'm actually more interested in the general concept than the specific incident as it's something we're likely to see more in the future as people put more and more of themselves on-line.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My concerns are not primarily about him and how he feels about such things (he's white, straight, male and about the last possible victim of discrimination on the planet in that sense), more how it reflects on the company that a very simple search (basically his name) returns these things and that clients may also do it.  We work in a relatively conservative industry.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-16T10:43:34.710" LastActivityDate="2011-02-13T20:53:03.763" Title="Is what someone publishes on the Internet fair game when considering them for employment as a programmer?" Tags="&lt;interview&gt;&lt;recruiting&gt;" AnswerCount="15" CommentCount="9" FavoriteCount="4" />
  <row Id="19279" PostTypeId="2" ParentId="19278" CreationDate="2010-11-16T09:28:46.347" Score="2" ViewCount="" Body="&lt;p&gt;It's not always clear which MySpace and Facebook content is public.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me the main questions are: what does it tell about him and how would this relate to his work at your company?&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-11-16T09:44:38.533" LastActivityDate="2010-11-16T09:44:38.533" />
  <row Id="19280" PostTypeId="2" ParentId="19278" CreationDate="2010-11-16T09:32:44.517" Score="3" ViewCount="" Body="&lt;p&gt;It depends on what that info is (is it more of an 'awkward stuff I wouldn't want public' or more serious), but it might show what that person would be like when interacting with the other employees, and that might have a big impact on the team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you hire him and somebody who wants to work with your company finds that info, how would that affect your company?&lt;/p&gt;&#xA;" OwnerUserId="3207" LastActivityDate="2010-11-16T09:32:44.517" />
  <row Id="19281" PostTypeId="2" ParentId="19278" CreationDate="2010-11-16T09:43:08.127" Score="4" ViewCount="" Body="&lt;p&gt;It is absolutely relevant.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is part of his background and gives you an extra autobiographical view into his personality.  You have a very limited ability fin an interview and from a CV to find out whether someone will fit in your company.  This is another resource that gives further insight into his attitudes and behaviour.  It would seem that often people are more open on facebook, maybe bragging about pulling a sickie or being too hung over to go to work.  If this is acceptable at your company then you can ignore these confessions.  If not then don't hire.&lt;/p&gt;&#xA;" OwnerUserId="5877" LastActivityDate="2010-11-16T09:43:08.127" />
  <row Id="19282" PostTypeId="2" ParentId="19278" CreationDate="2010-11-16T09:43:48.800" Score="3" ViewCount="" Body="&lt;p&gt;It will be totally fair if you talk with the person under question about what they have published on the Internet.  My employer did talk about my social networking profiles and what I have published there.  In the end, they were happy, and, I got recruited.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had published personal as well as professional information on those social networking pages.  I talked with the employer about everything they told they had seen and brought up for discussion.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-11-16T09:43:48.800" />
  <row Id="19283" PostTypeId="2" ParentId="19274" CreationDate="2010-11-16T09:45:01.200" Score="1" ViewCount="" Body="&lt;p&gt;I bring out the gimp. &lt;/p&gt;&#xA;" OwnerUserId="4499" LastActivityDate="2010-11-16T09:45:01.200" CommentCount="2" />
  <row Id="19284" PostTypeId="2" ParentId="19278" CreationDate="2010-11-16T09:47:03.523" Score="4" ViewCount="" Body="&lt;p&gt;When you hire somebody you are not just hiring technical ability. You are also hiring personality, and in fact its the personality part that makes working with others either easy or hard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personality (or &quot;character&quot;) is the bit thats hardest to judge during an interview process, and the part that causes the most problems in the workplace. The more you can find out about a person, who they are, how they think, what they think, how they act and react - the better able you are to make a judgement about whether you can or want to work with them. If they are foolish enough to put information in a public space which lets you form that judgement more easily, then so be it. Use it, for better or worse. Just do not ever explain the reason you used for the &quot;no hire&quot; decision.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Feeling uncomfortable with somebody (and hence no hire) is common enough during an interview - the attitude, demeanor, zip / zing / whatever all forms part of your opinion, and nobody says you can't use that. Public information about character is no different. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However - a caution - HR / personnel departments can frown in using this kind of public information on the grounds that private life is not work. However, I have to disagree with them.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-11-16T09:47:03.523" CommentCount="2" />
  <row Id="19285" PostTypeId="2" ParentId="19278" CreationDate="2010-11-16T09:47:12.930" Score="25" ViewCount="" Body="&lt;p&gt;Oh &lt;strong&gt;Sex&lt;/strong&gt;! You would be surprised of the diversity of the thing. Yesterday on TV, there was a documentary on fetishism. That was very instructive. I wasn't aware of all the things people could do... did you knew about &lt;a href=&quot;http://en.wikipedia.org/wiki/Zentai&quot; rel=&quot;nofollow&quot;&gt;zentai&lt;/a&gt;??? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My opinion is regardless their private practices (as soon as it doesn't hurt someone else), &lt;strong&gt;such difference should not be used to pick, or not pick someone&lt;/strong&gt;, just like his skin color, religion or political orientation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want also add that if he is happy in his sexuality, this will affect his work at your company positively.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On ther other hand, it's perfectly understandable that his behavior outside the company may affect the company. And therefore, some juridictions may approve firing someone that had bad behavior. And it's perfectly understandable that a company won't hire someone telling on his blog that his thing is animals, or that he likes to be nude in parks.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-16T10:57:19.450" LastActivityDate="2010-11-16T10:57:19.450" CommentCount="4" />
  <row Id="19286" PostTypeId="2" ParentId="19274" CreationDate="2010-11-16T10:02:27.603" Score="2" ViewCount="" Body="&lt;p&gt;If I have a boring task requiring minimal brain power, I save it either for those mornings when I am lucky not to have killed myself on the way to work or for long long Friday afternoons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless I can automate it of course!&lt;/p&gt;&#xA;" OwnerUserId="7092" LastActivityDate="2010-11-16T10:02:27.603" />
  <row Id="19287" PostTypeId="2" ParentId="19267" CreationDate="2010-11-16T10:05:19.093" Score="17" ViewCount="" Body="&lt;p&gt;Speaking as someone in the job (who has also been a developer), the key things I have to do are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keep the development team on track (and happy where possible)&lt;/strong&gt; - move things out of their way that are stopping them work where possible, explain why it's not possible where they can't be moved to try and reduce any resulting stress (people are more likely to accept things if they at least understand them).  Ultimately if there is a conflict between the project and the team that can't be resolved, normally the project will win.  That's doesn't necessarily make you popular with the team but you're paid to deliver projects/products, not as a union leader.  The obvious skill is in minimising how often this happens. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Make sure that the team are communicating with the customer the &lt;em&gt;right&lt;/em&gt; amount&lt;/strong&gt;.  This tends to be equal parts keeping the customer away from the team, and making sure the team are asking the customer about things they don't understand fully (rather than just making assumptions which may be incorrect).  Developers are very big on making sure that the customer doesn't disturb them and occasionally forget that the customer might have something useful to add.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Project planning and prioritisation&lt;/strong&gt; of resource conflicts, customer demands, support issues and the like.  I tend to be the person who says this customer takes priority over that one, or that this bug has to be fixed before it ships but that one can go out as a known issue.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Manage the commercial side of development&lt;/strong&gt; - that is making sure that things that should be charged for and being charged for and that we're not trying to charge for things which should be covered under support.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Be the voice of the team in the business and the business within the team&lt;/strong&gt; - help everyone understand the other's position and help resolve differences where they arise.  This largely tends to cover cultural conflicts between the teams needs/wants and the larger organisations, and budget matters.  This is actually pretty shitty as it means when there are disagreements you're everyone's enemy.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Work with the team to ensure sufficient processes and tools are in place to meet the requirements of the business and customers&lt;/strong&gt;.  Make sure that these processes are being followed and adjusted as needed.  Some of this is making sure the team define processes (for instance for technical things they understand better than I do), some is defining them myself (for things I understand better than they do - planning, estimating and so on).  The important word here is sufficient - you don't want process for process sake but there are things that have to happen and process is the best way to achieve that consistently.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ensure that every member of the team is working to at least a reasonable level&lt;/strong&gt;, and ideally beyond that.  Work with them to help resolve any issues that are preventing them reaching this level.  I'd love to say that my role is making them be the best they can be but while this is true to a degree other demands (project, budget, time) mean that this will almost always be compromised to a greater or lesser extent.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;Doing all the &lt;strong&gt;administration&lt;/strong&gt; and stuff the organisation (and the law) demand&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Overall it's part mentoring, part secretarial, part project management, part account management and part PR (for the team).  There's a lot of picking up things the developers don't need to think about or don't think about doing, and some making sure they do things they need to do but don't want to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What it's not about is being the best developer (generally you're too hands off to remain current for long so you need to accept that people will know more than you - the skill is in knowing where your longer but outdated experience is more relevant than their shorter but more recent experience) or being some sort of dictator.  In that respect the best way to think about it is not that you're more senior, just that you have different responsibilities.  Sometimes this will involve making the final call on something (which may go against the views of the team) but more often it should be about consensus or compromise.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-24T20:32:11.373" LastActivityDate="2010-11-24T20:32:11.373" CommentCount="1" />
  <row Id="19288" PostTypeId="2" ParentId="19274" CreationDate="2010-11-16T10:21:04.287" Score="4" ViewCount="" Body="&lt;p&gt;If automating it will take longer than getting the task done, then I'll postpone automating it until I have to do it a second time.  But if I can automate the task faster than I can do it, then it's automated without hesitation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No sense waisting time.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-11-16T10:21:04.287" />
  <row Id="19289" PostTypeId="2" ParentId="6625" CreationDate="2010-11-16T10:29:04.267" Score="3" ViewCount="" Body="&lt;p&gt;I tried that too - the &quot;collaborative design&quot; - when I started making games. The truth is, very few people want to work on design, even if you start with a blank page; they want you to give them explicit, clear and simple tasks they can do without getting too involved. Those who do like designing often have their own projects and just won't work on yours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice is: start working on code until you have something interesting, talk about your project, and be ready to do a lot of management.&lt;/p&gt;&#xA;" OwnerUserId="6579" LastActivityDate="2010-11-16T10:29:04.267" CommentCount="1" />
  <row Id="19290" PostTypeId="2" ParentId="17427" CreationDate="2010-11-16T10:31:35.683" Score="0" ViewCount="" Body="&lt;p&gt;The simple answer is 'it depends'; most developers I know (and I include myself in this) are creatures of habit. When developing, I tend to find that my 'muscle-memory' takes over when I'm performing tasks, whether that be using ReSharper keyboard mappings or the choice of CLI to use when doing simple command line tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both keymaps have their own advantages as you've stated, but the biggest advantage is how productive it makes you without getting in your way. Personally I use the Visual Studio keymap, because that's the one I know and for 90% of the tasks I need to perform with ReSharper I don't need to think about the steps involved in activating them (Ctrl+R Ctrl+V to introduce a variable for example).&lt;/p&gt;&#xA;" OwnerUserId="4162" LastActivityDate="2010-11-16T10:31:35.683" />
  <row Id="19291" PostTypeId="2" ParentId="19278" CreationDate="2010-11-16T10:37:17.900" Score="1" ViewCount="" Body="&lt;p&gt;I think the part that makes it relevant is that most people, if they were going to be posting this kind of content, would want to do so under some kind of pseudonym. By attaching it directly to your real world identity I guess you're either &lt;em&gt;really&lt;/em&gt; confident about these matters or a little bit ill-adjusted socially. Perhaps, depending on the content and context, something of both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would be very hard not to take that information into account when you are considering potential employees and I do think that not to have thought of that shows a potential lack of professionalism, certainly a lack of common-sense if you're going for interview. You would also have to think about the effect that posting this type of content would have on colleagues if they were to google on someone's name- would it make any of their co-workers feel awkward or ill at ease?&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-16T10:37:17.900" />
  <row Id="19292" PostTypeId="1" AcceptedAnswerId="19294" CreationDate="2010-11-16T10:42:19.830" Score="7" ViewCount="605" Body="&lt;p&gt;We all have tasks that come up from time to time that we think we'd be better off scripting or automating than doing manually.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously some tools or languages are better for this than others - no-one (in their right mind) is doing a one off job of cross referencing a bunch of text lists their PM has just given them in assembler for instance.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What one tool or language would you recommend for the sort of general quick and dirty jobs you get asked to do where time (rather than elegance) is of the essence?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Background: I'm a former programmer, now development manager PM, looking to learn a new language for fun.  If I'm going to learn something for fun I'd like it to be useful and this sort of use case is the most likely to come up.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-31T08:00:55.160" Title="Best language or tool for automating tedious manual tasks" Tags="&lt;programming-languages&gt;&lt;automation&gt;" AnswerCount="13" CommentCount="4" FavoriteCount="1" />
  <row Id="19293" PostTypeId="2" ParentId="19278" CreationDate="2010-11-16T10:49:48.697" Score="12" ViewCount="" Body="&lt;p&gt;You have to take things on a case by case basis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You cannot blanket statement say &quot;we will choose between candidates based on what they say online.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you find a web page where your candidate says, &quot;Here are the nine steps to fooling any interviewer into believing you are a good programmer.&quot; Clearly you need to consider this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if a page you find about them says &quot;I like big butts, and I cannot lie.&quot; Well I don't think it's fair to judge them on that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to make you decision based on what you know (obviously, you know that) but be aware of your prejudices, and put yourself in their shoes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your company's image is what you're worried about, there are two factors you need to consider: the likelihood that a customer will meet your candidate, and the likelihood that the customer will then go on to Google stalk your candidate. I imagine the second is so low as to make the first immaterial, and generally the first is quite low too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In response to the comment that you need to consider the impact of discovery.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Absolutely. I had forgotten about that. I think that would be the likelihood that discovery would cause a noticeable loss of income. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I still think this is offset by the likelihood of Google stalking. But then, I'm not a conservative type, so I don't know how they react to meeting new people, particularly people that don't hold a lot of clout in an organisation.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastEditorUserId="1069" LastEditorDisplayName="" LastEditDate="2010-11-16T14:45:24.917" LastActivityDate="2010-11-16T14:45:24.917" CommentCount="6" />
  <row Id="19294" PostTypeId="2" ParentId="19292" CreationDate="2010-11-16T10:51:13.220" Score="20" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The obvious answer (and with good reason) is Python. Its a solid language, available cross platform. As its dynamic you can run it interactively which is great for lashing stuff together and it has a fairly large selection of libraries so its a general purpose language so can be applied to most problems.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-11-16T10:51:13.220" CommentCount="9" />
  <row Id="19295" PostTypeId="2" ParentId="19292" CreationDate="2010-11-16T10:57:25.927" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Powershell&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is less generic than Python - but if you exist in a Windows environment then its probably that its going to be more useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its more shell/script like than Python (because that's what it is) but it can hook into the .NET framework which gives you a quite extraordinary depth of capability. It also has broad community support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft have been busy adding powershell to their server products (hence the &quot;more useful&quot;) and have introduced remoting to allow you to run scripts &lt;em&gt;there&lt;/em&gt; from your console &lt;em&gt;here&lt;/em&gt;. &lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-11-16T10:57:25.927" CommentCount="1" />
  <row Id="19296" PostTypeId="2" ParentId="19292" CreationDate="2010-11-16T11:09:54.450" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.autoitscript.com/autoit3/index.shtml&quot; rel=&quot;nofollow&quot;&gt;Autoit&lt;/a&gt;&lt;/strong&gt; is unbeatable. It's a tool with a language.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Easy to learn BASIC-like syntax&lt;/li&gt;&#xA;&lt;li&gt;Simulate keystrokes and mouse movements&lt;/li&gt;&#xA;&lt;li&gt;Manipulate windows and processes&lt;/li&gt;&#xA;&lt;li&gt;Interact with all standard windows controls&lt;/li&gt;&#xA;&lt;li&gt;Scripts can be compiled into standalone executables&lt;/li&gt;&#xA;&lt;li&gt;Create Graphical User Interfaces (GUIs)&lt;/li&gt;&#xA;&lt;li&gt;COM support&lt;/li&gt;&#xA;&lt;li&gt;Regular expressions&lt;/li&gt;&#xA;&lt;li&gt;Directly call external DLL and Windows API functions&lt;/li&gt;&#xA;&lt;li&gt;Scriptable RunAs functions&lt;/li&gt;&#xA;&lt;li&gt;Detailed helpfile and large community-based support forums&lt;/li&gt;&#xA;&lt;li&gt;Compatible with Windows 2000 / XP / 2003 / Vista / 2008 / Windows 7 / 2008 R2&lt;/li&gt;&#xA;&lt;li&gt;Unicode and x64 support&lt;/li&gt;&#xA;&lt;li&gt;Digitally signed for peace of mind&lt;/li&gt;&#xA;&lt;li&gt;Works with Windows Vista's User Account Control (UAC)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-11-16T11:09:54.450" />
  <row Id="19297" PostTypeId="2" ParentId="19292" CreationDate="2010-11-16T11:10:47.303" Score="2" ViewCount="" Body="&lt;p&gt;elisp, if you have seen the wealth of tasks it is used in order to accomplish through its underlying platform Emacs.  Emacs can eschew all the functionality of a full blown window manager, IDE, Office, browser, email client, chat client, shell, filesystem explorer, and more.  Most of it is accomplished through elisp programs.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-11-16T11:10:47.303" />
  <row Id="19298" PostTypeId="1" AcceptedAnswerId="19302" CreationDate="2010-11-16T11:11:06.173" Score="7" ViewCount="185" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/1006/how-do-you-motivate-yourself-to-program-when-youd-really-rather-be-doing-someth&quot;&gt;How do you motivate yourself to program (when you&amp;#39;d really rather be doing something else)?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I started a project that I knew was going to be tough and difficult, but I wanted a challenge and something to keep my mind at work.  I have now been on this project full time for about a month a bit and it seems that I have far underestimated the toughness of this project.  It is a native C++ project and I have definitely underestimated it in terms of difficulty.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So much so that I have lost my motivation to carry on, as I find it is going too slow and I lose interest. I am finding C++ to be a fascinating language, and I've learnt a lot, but I am finding it hard to keep going on only small amounts of progress.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you keep going when you find a project to be much harder then originally expected and you find yourself losing your motivation, as it just seems impossible to get right?&lt;/p&gt;&#xA;" OwnerUserId="4306" LastActivityDate="2010-12-06T16:01:22.903" ClosedDate="2010-12-10T13:44:06.860" Title="Keeping going, tough or not, finding things to keep motivated?" Tags="&lt;project&gt;&lt;motivation&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="2" />
  <row Id="19299" PostTypeId="2" ParentId="17427" CreationDate="2010-11-16T11:15:34.650" Score="0" ViewCount="" Body="&lt;p&gt;If you have a Visual Studio background go for that one. If you have a Java background go for IntelliJ.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Visual Studio one does have the advantage that other developers who want to use your pc for five minutes don't have to pull their hair out. but even then some hotkeys are different.&lt;/p&gt;&#xA;" OwnerUserId="4930" LastActivityDate="2010-11-16T11:15:34.650" />
  <row Id="19300" PostTypeId="2" ParentId="19298" CreationDate="2010-11-16T11:17:24.257" Score="3" ViewCount="" Body="&lt;p&gt;I think you need to make sure you're you're aiming for something reasonable in the first place. Can you do it on your own in reasonable time? Is the outcome of real use/interest to you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would then split the work into chunks of small deliverable tasks. Keep track of what you've had achieved already. Write down the next steps, be very specific.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Where am i?&quot; and &quot;where am i going?&quot; are the most important questions for keeping me motivated.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-11-16T11:17:24.257" />
  <row Id="19301" PostTypeId="2" ParentId="19298" CreationDate="2010-11-16T11:18:07.780" Score="1" ViewCount="" Body="&lt;p&gt;Since you say you are doing a programming project, I would recommend that you read about RMS or Linus Torvalds.  Both these men are known for staying with their programs for long times.  RMS has been said to have produced over 150,000 LOC to implement the gcc C compiler's first release.  If I were you, I would read about these men.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-11-16T11:18:07.780" CommentCount="2" />
  <row Id="19302" PostTypeId="2" ParentId="19298" CreationDate="2010-11-16T11:23:51.497" Score="16" ViewCount="" Body="&lt;p&gt;You are in &lt;strong&gt;the dip&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/H5jaB.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's very common. Today is hard, very hard, and you don't get the results you expected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To get the result you expect, it's simple... &lt;strong&gt;go through the dip&lt;/strong&gt;! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;More on the subject in the book &lt;a href=&quot;http://sethgodin.typepad.com/the_dip/&quot; rel=&quot;nofollow&quot;&gt;The Dip&lt;/a&gt; from &lt;strong&gt;Seth Godin&lt;/strong&gt;. My favorite book from the author.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will also give you an advice I use a lot: &lt;strong&gt;release early, release often&lt;/strong&gt;! Use iterative development. When you finish an iteration, &lt;strong&gt;ship it&lt;/strong&gt;!&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-06T16:01:22.903" LastActivityDate="2010-12-06T16:01:22.903" CommentCount="4" />
  <row Id="19303" PostTypeId="2" ParentId="19292" CreationDate="2010-11-16T11:24:40.913" Score="0" ViewCount="" Body="&lt;p&gt;For some tasks, &lt;a href=&quot;http://app.jbbres.com/actions/&quot; rel=&quot;nofollow&quot;&gt;Actions&lt;/a&gt; might be a good fit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has a sort-of flowcharting process, where you can add &lt;code&gt;actions&lt;/code&gt; to be run sequentially. New &lt;code&gt;actions&lt;/code&gt; can be written in java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disclaimer: I've yet to use it.&lt;/p&gt;&#xA;" OwnerUserId="912" LastActivityDate="2010-11-16T11:24:40.913" />
  <row Id="19304" PostTypeId="2" ParentId="19292" CreationDate="2010-11-16T11:25:59.123" Score="1" ViewCount="" Body="&lt;p&gt;For complex automation you may want to use &lt;a href=&quot;http://code.google.com/p/robotframework/&quot; rel=&quot;nofollow&quot;&gt;Robot Framework&lt;/a&gt;. The framework is mostly aimed at automated testing but can also be used for general automation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can easily write your own libraries in Python and there are a number of pre-existing ones (selenium, &lt;a href=&quot;http://code.google.com/p/robotframework-autoitlibrary/&quot; rel=&quot;nofollow&quot;&gt;AutoIt&lt;/a&gt;, telnet, ssh, swing, etc) which allow you to drive all sorts of things which is very powerful if you're in a mixed enviroment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is keyword driven so you can create new keywords and hence abstract away repetitive tasks and even has an IDE which is being actively developed that allows for some simple refactorings.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-16T11:25:59.123" />
  <row Id="19305" PostTypeId="1" CreationDate="2010-11-16T11:30:49.660" Score="2" ViewCount="212" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm 2 weeks into a six week notice period and one of the last jobs I've been given it to create about 70-80 HTML SEO pages.&#xA;This involves repeating the layout of the existing page, then cutting and pasting the text from a word document into the HTML page and repeat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not the worse thing in the world, but hard to stay interested when you know you're leaving. Thankfully Spotify is helping me survive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone else had a really terrible task while working their notice?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stephen&lt;/p&gt;&#xA;" OwnerUserId="3242" LastActivityDate="2010-11-16T13:34:48.440" Title="what is your worst job while working your notice" Tags="&lt;jobs&gt;&lt;work-environment&gt;" AnswerCount="3" CommentCount="8" />
  <row Id="19306" PostTypeId="2" ParentId="18843" CreationDate="2010-11-16T11:34:01.573" Score="0" ViewCount="" Body="&lt;p&gt;Related discussion on reddit &lt;a href=&quot;http://goo.gl/QCoUM&quot; rel=&quot;nofollow&quot;&gt;http://goo.gl/QCoUM&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I've been a little dismissive of GWT as a tool for creating complex front-end logic and interfaces mostly because I prefer writing JS code. But I am curious: where do other developers stand on JS vs GWT? Is anyone other than Google building major apps with it?&quot;&lt;/p&gt;&#xA;" OwnerUserId="1075" LastActivityDate="2010-11-16T11:34:01.573" CommentCount="1" />
  <row Id="19307" PostTypeId="2" ParentId="19158" CreationDate="2010-11-16T11:56:24.480" Score="1" ViewCount="" Body="&lt;p&gt;We have a large internal Sharepoint site and a customer-facing support site, that takes a lot of documents from the internal Sharepoint site. This is less about implementation detail and more about support admittedly, but as I work largely in a support capacity we need access to a lot of implementational information and so we end up being drivers for the engineering team to document what they are doing and why. A detailed bug tracking system is also valuable for following up how problems were solved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In our company, partly because we have development spread across a couple of locations, a lot of discussions about new features and support problems end up happening over email. Rather than trying to change this, the easiest approach is an email archiving system that makes the discussions searchable and trackable- effectively a newsgroup type approach. We are able to do this through Sharepoint, although one has to be aware of the limits on list size as although it will grow to millions of items you can't actually do much in terms of sorting very large lists or editing views on them without it crashing out dramatically.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-16T11:56:24.480" CommentCount="4" />
  <row Id="19308" PostTypeId="2" ParentId="19305" CreationDate="2010-11-16T12:02:21.943" Score="2" ViewCount="" Body="&lt;p&gt;I was once taken off the project I was managing and told to have nothing whatsoever to do with it but I wasn't allowed to leave the company and go to my new job early.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This meant that I basically sat around the office drinking coffee waiting to see if anyone had any questions they wanted to ask me about anything I'd worked on (there were a few but generally enough to keep me busy about half an hour a day on a busy day and nothing I couldn't have dealt with on the end of a phone).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But astonishingly they gave me nothing at all to do with the time &lt;strong&gt;for nearly three months&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No great hardship - I spent most of the time bitching about how bad the place was with the very attractive head of operations (who was also on the verge of leaving).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-16T12:11:12.980" LastActivityDate="2010-11-16T12:11:12.980" CommentCount="2" />
  <row Id="19309" PostTypeId="2" ParentId="18843" CreationDate="2010-11-16T12:07:31.637" Score="0" ViewCount="" Body="&lt;p&gt;Personally I think that frameworks such as jQuery are vital not just to deal with variations across different browsers but also to tuck those differences away so that they're not adding noise to the code. Tools like GWT, &lt;a href=&quot;http://www.intellifactory.com/&quot; rel=&quot;nofollow&quot;&gt;Websharper&lt;/a&gt; and others take that further and definitely have a place but I wonder if it's just an extra layer of indirection in most cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something that I'm suprised that no-one has mentioned is unit testing. It's now generally accepted that complex server side apps should have automated unit tests and I think that the time has already come where the JS in RIA apps is complex enough to need unit testing - together with the architecture/code that makes that possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, unlike with complex server side apps, my gut feeling based on what I see and hear is that the vast majority of complex client side apps have absolutely no unit testing (I'm not talking about selenium testing here, real unit testing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that the next emerging trend will be the introduction of unit testing (and code that is unit-testable).  Having just completed a project with a moderate amount of non-unit tested JavaScript I'm hoping it will be the last.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-11-16T12:07:31.637" />
  <row Id="19310" PostTypeId="2" ParentId="19238" CreationDate="2010-11-16T12:13:05.270" Score="5" ViewCount="" Body="&lt;p&gt;There are three separate costs here - compensation for developing the material, which can be spread over many instances of the course, compensation for the half day or day delivering the material, and the cost of the room and equipment to actually hold the course. I am going to presume you can handle that last one since it will either all be free (on their premises) or you will be paying rental fees for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Working out your daily rate is the first step. (As a quick ballpark, take your annual salary and divide by 1000 which is the typical billable hours per year, and multiply by 8 to get a daily rate.) Then knowing (or guessing) how much effort the development will be is quite difficult. (I've got decades of experience so I use 5-1 as my ratio - a 4 hour course will take 20 hours to put together. For you it might be 10-1.) And then how many courses can you divide that across? If you're a training firm, and it's a common topic like JavaScript without content specific to that client, then the answer is dozens. But for a one-off like this, possibly even customized to those developers, the answer may be only 1 or 2. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then when you get a number, sanity check it. If there is similar training available elsewhere, are you cheaper or more expensive (including travel expenses perhaps) and by how much? You may realize that what you need to charge is double or triple (per person) what the big firms charge, because they hang on until they have large class sizes, they amortize development across many more instances, and they can even negotiate cheaper room and equipment costs. At that point you will have to decide whether you want to charge your full daily rate or settle for somewhat less as a way to establish yourself in the training community or with this client or something.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-16T12:13:05.270" />
  <row Id="19311" PostTypeId="2" ParentId="19241" CreationDate="2010-11-16T12:16:40.087" Score="3" ViewCount="" Body="&lt;p&gt;Can I suggest phone development? Pick a platform that works well with languages and tools you already know, or if you own a phone, that works with the phone you own. This will have the advantage of being able to show people your work any time, any place. There are also substantial constraints working on phones, which I find are generally helpful to those just starting. Even a same-old, same-old game you wrote when you were 10 is more interesting if you adapt it to a constrained situation, or if you have to work out how to fit in touch or shake or accelerometer or location into the ui.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-16T12:16:40.087" CommentCount="1" />
  <row Id="19313" PostTypeId="2" ParentId="19274" CreationDate="2010-11-16T13:06:06.750" Score="2" ViewCount="" Body="&lt;p&gt;I would rather spend up to 1.5 times what it would take to do it manually, automating it instead. I attempt to justify this to myself beacuse I'm learning something whilst I automate and keeping my brain active.&lt;/p&gt;&#xA;" OwnerUserId="550" LastActivityDate="2010-11-16T13:06:06.750" CommentCount="1" />
  <row Id="19314" PostTypeId="2" ParentId="19305" CreationDate="2010-11-16T13:13:12.267" Score="1" ViewCount="" Body="&lt;p&gt;Not from experience (yet!) but I can imagine that it must be very frustrating when you want to leave a company on good terms, but have to hand over your work and coding to someone who isn't up to the job of taking it on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the person isn't any good (maybe they got hired they day you handed in your notice in a panic) then even with all the patience in the world, there are going to be limits to how much you can convey.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if the company is left without proper support, it'll be seen as your fault (as you won't be there), that you didn't had it over properly, which is just unfair.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't realy think there's much you can do, expect clearly (and in writing) convey that the person you're supposed to be handing over do doesn't have the nessecary skills to understand what you're telling them.&lt;/p&gt;&#xA;" OwnerUserId="550" LastActivityDate="2010-11-16T13:13:12.267" />
  <row Id="19315" PostTypeId="2" ParentId="16571" CreationDate="2010-11-16T13:16:12.877" Score="1" ViewCount="" Body="&lt;p&gt;You guys are all missing the point.  The reason why the stack / heap distinction is important is because of &lt;strong&gt;scope&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;struct S { ... }&#xA;&#xA;void f() {&#xA;    var x = new S();&#xA;    ...&#xA; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Once &lt;strong&gt;x&lt;/strong&gt; goes out of scope, the object that was created is categorically &lt;strong&gt;gone&lt;/strong&gt;.  That is only because it is allocated on the stack, not the heap.  There is nothing that could have gone in in the &quot;...&quot; part of the method that can change that fact.  In particular, any assignments or method calls could only have made &lt;strong&gt;copies&lt;/strong&gt; of the S struct, not created new references to it to enable it to keep living.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class C { ... }&#xA;&#xA;void f() {&#xA;     var x = new C();&#xA;     ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Totally different story!  Since x is now on the &lt;strong&gt;heap&lt;/strong&gt;, its object (that is, the &lt;strong&gt;object itself&lt;/strong&gt;, not a copy of it) could very well continue to live on after &lt;strong&gt;x&lt;/strong&gt; goes out of scope.  In fact, the only way it &lt;strong&gt;won't&lt;/strong&gt; continue to live is if &lt;strong&gt;x&lt;/strong&gt; is the only reference to it.  If assignments or method calls in the &quot;...&quot; part have created other references that are still &quot;live&quot; by the time &lt;strong&gt;x&lt;/strong&gt; goes out of scope, then that object will continue living.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is a very important concept, and the only way to truly understand &quot;what and why&quot; is to know the difference between stack and heap allocation.&lt;/p&gt;&#xA;" OwnerUserId="4526" LastActivityDate="2010-11-16T13:16:12.877" CommentCount="1" />
  <row Id="19316" PostTypeId="2" ParentId="19305" CreationDate="2010-11-16T13:34:48.440" Score="0" ViewCount="" Body="&lt;p&gt;Compared to others here, I've seen the exact opposite.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I was working at an advertising company, I watched one developer, working on a single person project with a short deadline,  work 12+ hours for weeks before putting his notice in. Once he gave his two week notice, not only was he working the 12+ hours on his project, the scope and features of the project increased. The poor guy worked two 20 hour days before actually being able to leave for good.  Even then he walked out the door at midnight on a Thursday.&lt;/p&gt;&#xA;" OwnerUserId="7428" LastActivityDate="2010-11-16T13:34:48.440" />
  <row Id="19317" PostTypeId="1" AcceptedAnswerId="19324" CreationDate="2010-11-16T13:37:47.300" Score="2" ViewCount="102" Body="&lt;p&gt;Hey,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I keep running into the same problems.  The problem is irrelevant, but the fact that I keep running into is completely frustrating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem only happens once every, 3-6 months or so as I stub out a new iteration of the project.  I keep a journal every time, but I spend at least a day or two each iteration trying to get the issue resolved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you guys keep from making the same mistakes over and over?&lt;br&gt;&#xA;I've tried a journal but it apparently doesn't work for me.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;[Edit]&lt;br&gt;&#xA;A few more details about the issue:  Each time I make a new project to hold the files, I import a particular library.  The library is a C++ library which imports &lt;code&gt;glew.h&lt;/code&gt; and &lt;code&gt;glx.h&lt;/code&gt; GLX redefines &lt;code&gt;BOOL&lt;/code&gt; and that's not kosher since &lt;code&gt;BOOL&lt;/code&gt; is a keyword for ObjC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had a fix the last time I went through this.  I &lt;code&gt;#ifndef&lt;/code&gt; the header in the library to exclude GLEW and GLX and everything worked hunky-dory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This time, however, I do the same thing, use the same &lt;code&gt;#ifndef&lt;/code&gt; block but now it throws a bunch of errors.  I go back to the old project, and it works.  New project no-worky.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems like it does this every time, and my solution to it is new each time for some reason.  I know &lt;code&gt;#defines&lt;/code&gt; and &lt;code&gt;#include&lt;/code&gt;s are one of the trickiest areas of C++ (and cross-language with Objective-C), but &lt;em&gt;I had this working&lt;/em&gt; and now it's not.&lt;/p&gt;&#xA;" OwnerUserId="7499" LastEditorUserId="7499" LastEditorDisplayName="" LastEditDate="2010-11-16T14:00:53.583" LastActivityDate="2010-11-16T14:04:54.093" Title="How do you keep from running into the same problems over and over?" Tags="&lt;productivity&gt;&lt;self-improvement&gt;&lt;mistakes&gt;&lt;bad-habits&gt;&lt;habits&gt;" AnswerCount="4" CommentCount="3" />
  <row Id="19318" PostTypeId="1" AcceptedAnswerId="19327" CreationDate="2010-11-16T13:48:42.750" Score="7" ViewCount="242" Body="&lt;p&gt;I worked for a year at a .com company where I got to learn alot about development and picked up some good habits. After a year I choose to leave the company. I had no hard feelings for the company, and I left on good terms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Three years later, the oppurtunity came up to contract with this same company again. Right now I know that a former co-worker would be my direct manager, and that several of the same team members are still there. The question is, should I attempt to interview with them again? Are there pros and cons of going back to a former place of employment?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks all.&lt;/p&gt;&#xA;" OwnerUserId="7428" LastActivityDate="2010-11-16T19:59:43.780" Title="Would you contract at a place you've worked at before?" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="9" />
  <row Id="19319" PostTypeId="2" ParentId="19278" CreationDate="2010-11-16T13:48:44.420" Score="0" ViewCount="" Body="&lt;p&gt;This is really a question for your HR department. My personal opinion is that publishing something on the Internet is equivalent to publishing something in a book. However, that won't help you if you get sued for employment discrimination.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-16T13:48:44.420" CommentCount="2" />
  <row Id="19320" PostTypeId="1" AcceptedAnswerId="19342" CreationDate="2010-11-16T13:49:28.983" Score="5" ViewCount="266" Body="&lt;p&gt;We are trying to make a decision about if we should create a program in WPF w/ a WCF server, and I was wondering what the current opinions are of WPF. I was looking around online but most of the arguments I saw for/against WPF were dated a year or two ago, and about WPF3.5. I was wondering if those opinions have changed in the past year or two with the release of WPF4.0.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some notes....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The program we are making is for use by a single-company in a controlled enviornment. With the exception of one or two Vista laptops, most users are on Terminal Servers or WindowsXP. It is not media-heavy and doesn't need a pretty UI (although it won't hurt). It needs to be extensible and allow for easy additions later on. Security and Performance are our key concerns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Primary concern about WPF is Support (MS and community), memory/cpu usage on terminal servers, and finding people to work on the project now and maintain it in the future. Some smaller things of concern are lack of library controls, development time, and learning curve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The primary alternative we were considering is ASP.Net/jQuery.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastEditorUserId="1130" LastEditorDisplayName="" LastEditDate="2010-11-16T15:29:39.123" LastActivityDate="2010-11-16T16:07:39.573" Title="What are some current opinions on WPF?" Tags="&lt;advice&gt;&lt;wpf&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="1" />
  <row Id="19321" PostTypeId="2" ParentId="19317" CreationDate="2010-11-16T13:49:50.300" Score="0" ViewCount="" Body="&lt;p&gt;A well adjusted person is one who makes the same mistake twice without getting nervous. - &lt;a href=&quot;http://www.brainyquote.com/quotes/quotes/a/alexanderh118986.html&quot; rel=&quot;nofollow&quot;&gt;Alexander Hamilton&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, though, if this has already happened a few times, that means that you will soon catch on. :) &lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-11-16T13:49:50.300" CommentCount="4" />
  <row Id="19322" PostTypeId="2" ParentId="19318" CreationDate="2010-11-16T13:53:19.597" Score="9" ViewCount="" Body="&lt;h1&gt;Sure&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;If you left on good terms I can't think of a reason not to. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-16T13:53:19.597" />
  <row Id="19323" PostTypeId="2" ParentId="19317" CreationDate="2010-11-16T13:53:43.160" Score="0" ViewCount="" Body="&lt;p&gt;Trust your instinct.&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-16T13:53:43.160" />
  <row Id="19324" PostTypeId="2" ParentId="19317" CreationDate="2010-11-16T13:53:43.643" Score="4" ViewCount="" Body="&lt;p&gt;I'd suggest determining what triggers the issue, and restructuring your development process to avoid that scenario. What 'restructuring' entails is highly dependent on the problem. It ranges from abstracting some behavior into a seperate class to changing the composition of your team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A journal detailing the context of the incident and resolution approaches can certainly help you converge on the root cause and/or a general solution. Once you've determined that there are a few obvious options:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;If the cause is avoidable: Try to avoid triggering the root cause next time.&lt;/li&gt;&#xA;&lt;li&gt;If the solution proves to be simple: Implement the general solution whenever the problem occurs.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Restructure your development process so that it naturally avoids the issue.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The options available depend on the information about the issue you have, and the amount of control you have over the development process.&lt;/p&gt;&#xA;" OwnerUserId="7034" LastActivityDate="2010-11-16T13:53:43.643" CommentCount="2" />
  <row Id="19325" PostTypeId="2" ParentId="19318" CreationDate="2010-11-16T13:53:58.783" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Pro:&lt;/strong&gt;&lt;br&gt;&#xA;You know the people you're working with.  Often a Devil you know is better than the Devil you don't.&lt;br&gt;&#xA;&lt;strong&gt;Con:&lt;/strong&gt;&lt;br&gt;&#xA;You know the people you're working with.  If there were any unresolved personality conflicts they will make your life miserable.&lt;/p&gt;&#xA;" OwnerUserId="7499" LastActivityDate="2010-11-16T13:53:58.783" />
  <row Id="19326" PostTypeId="1" AcceptedAnswerId="19341" CreationDate="2010-11-16T13:58:29.987" Score="2" ViewCount="65" Body="&lt;p&gt;I've had experience as a developer or team lead on several projects that have been outsourced and have seen less than stellar results in all cases. Most of these projects have employed a waterfall philosophy, with large kickoff meetings, months-long requirements gathering phases, plenty of conference calls, and innumerable emails. One thing that's always frustrated me is an absence of early access to the code. The contracts are setup in a way where the offshore team is responsible for meeting functional requirements, which is what the executives are concerned with. This means, however, that architecture decisions, implementation details, pattern usage, and things that concern other developers are so deeply settled by the time the product is delivered that we're unable to offer feedback or request any real changes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anybody here managed an offshore project that hasn't experienced these problems? Specifically, I'm wondering if there's any way to structure the contracts to compel offshore teams to work in shorter cycles and re-factor or re-design based on feedback from on-shore developers. I haven't had too much experience with agile methodologies (I agree with the general principles, but work in a conservative shop that has it's entrenched methodologies), but wonder whether these could somehow be adapted to help manage offshore development. Overall, I'm looking to minimize the surprises and maintenance nightmares that inevitably arise when a development team is left to work in isolation for months at a time. &lt;/p&gt;&#xA;" OwnerUserId="6894" LastActivityDate="2010-11-16T14:48:20.157" Title="Is it possible to adopt agile methodologies for outsourced projects?" Tags="&lt;development-process&gt;&lt;outsourcing&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="19327" PostTypeId="2" ParentId="19318" CreationDate="2010-11-16T13:59:02.893" Score="13" ViewCount="" Body="&lt;p&gt;There are advantages for both you and your former company.  For your company they know what type of programmer they are getting, as well as a programmer that already knows their business.  So for them you are a pretty safe bet that will come up to speed very quickly.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For you, you know your boss and your co-workers already and you know what the working environment will be like.  Its a pretty safe bet for you.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What will make a difference is how you will feel reporting to a former collegue and if there were any issues on the company's side when you left.  Did they feel like they were left high and dry?  From what you've told us, it was an amicable parting for both parties, so that shouldn't be an issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you like the work, like the people, will have oppotunity to grow and will be paid to you liking then it should be a fairly easy decision to make.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-16T15:14:56.210" LastActivityDate="2010-11-16T15:14:56.210" />
  <row Id="19328" PostTypeId="2" ParentId="19318" CreationDate="2010-11-16T13:59:19.500" Score="4" ViewCount="" Body="&lt;p&gt;If there are no other jobs then sure - go for it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But why play it safe? You probably will not learn anything new (you've been there before), and perhaps working for a former co-worker will drive you nuts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try a new experience instead. You never know what might happen!&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-16T13:59:19.500" CommentCount="2" />
  <row Id="19329" PostTypeId="2" ParentId="19317" CreationDate="2010-11-16T14:04:54.093" Score="1" ViewCount="" Body="&lt;p&gt;I use full-text search of my email like a knowledge base and have for a dozen years. When I have a new issue I resolve that I know I'll need to remember, if there is no relevant email chain I'll just send a mail to myself so that it will get pulled up the next time I have the problem and go casting about for the answer. Not really different from a journal; the key to this is that I always already search my email if I know I've seen a particular issue before.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-16T14:04:54.093" CommentCount="2" />
  <row Id="19330" PostTypeId="2" ParentId="109" CreationDate="2010-11-16T14:06:30.100" Score="1" ViewCount="" Body="&lt;p&gt;I always write &quot;pubic&quot; instead of &quot;public&quot; in Java method signatures. Not really a functionality changing mistake, but a funny one all the same&lt;/p&gt;&#xA;" OwnerUserId="154" LastActivityDate="2010-11-16T14:06:30.100" CommunityOwnedDate="2010-11-16T14:06:30.100" />
  <row Id="19331" PostTypeId="2" ParentId="15759" CreationDate="2010-11-16T14:09:00.597" Score="0" ViewCount="" Body="&lt;p&gt;We used a code name for a larger project, mostly because it was totally unclear what the name would be when we started it and you definitely need something to call what you're working on. We also used code names for release versions, although these never got out to the customer, unlike Android's and Apple's code names used to these days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My last company had a habit of naming projects with something more or less arbitrary. Maybe there was some meaning behind the code name choice, but if there were I hardly ever got it.&lt;/p&gt;&#xA;" OwnerUserId="7482" LastActivityDate="2010-11-16T14:09:00.597" />
  <row Id="19332" PostTypeId="2" ParentId="19254" CreationDate="2010-11-16T14:09:46.650" Score="1" ViewCount="" Body="&lt;p&gt;Are you going for a Ph.D.?  If so, please be aware that having a job on the side tends to prolong your time in grad school considerably.  If you have already thought long and hard, and you have already made up your mind about doing it, then the best way to proceed is to save up some money and be able to live off the teaching assistanship stipend.  Also try to look for a research assistanship on some project with funding, which is likely to lead to a thesis.  I expect these are hard to come by in mathematics, but this is not unheard of.  For instance, I did my Ph.D. in computer science, and I was on a joint project with the mathematics department for a while.  I worked together with a math grad student, who did in fact base his thesis on that project, and got payed an RA stipend.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should also consider looking for a job within the university, such as doing system administration or DBA for one of the departments.  But again, keep in mind, that doing anything that is not related to your graduate work prolongs your stay there.  I know people who took 9, 10, 13, or even 14 years to graduate.  A big contributing factor is usually having a family and having to support it with a side job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I thought I would mention that you should think long and hard about what you are planning to do after you graduate.  Tenure track faculty positions are scarce these days.  And going back to being a software engineer after spending years in grad school may not feel so good.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-11-16T14:09:46.650" CommentCount="4" />
  <row Id="19333" PostTypeId="2" ParentId="19298" CreationDate="2010-11-16T14:11:01.797" Score="1" ViewCount="" Body="&lt;p&gt;Sounds like you are learning a lot and your company is supporting you. That's good. You should stop for a short bit. Make sure every thing is under source control. Ideally you have some unit tests to validate what you've done. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then evaluate what you have achieved. Discuss this with a colleague. Maybe plan another iteration with some solid goals if things are positive. If things are negative (e.g. this is keeping you awake at night ) then leave it. You can always return to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also ask yourself - why is it difficult. Is this due to a poor design or requirements. Try and simplify these. You will then find the solution easier to implement.&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-16T14:11:01.797" />
  <row Id="19334" PostTypeId="2" ParentId="19292" CreationDate="2010-11-16T14:12:50.217" Score="5" ViewCount="" Body="&lt;p&gt;A modern unix shell. E.g. bash. &lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-16T14:12:50.217" CommentCount="1" />
  <row Id="19335" PostTypeId="2" ParentId="18161" CreationDate="2010-11-16T14:16:28.047" Score="1" ViewCount="" Body="&lt;p&gt;Well, if you are looking for examples from a Coders point of view - this book - &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131422464&quot; rel=&quot;nofollow&quot;&gt;Core J2EE Patterns&lt;/a&gt; helped me a lot when I was first starting out developing Enterprise applications in Java.  It's examples are specific to Java, but they can easily be applied to most OOP languages.  Of course, there is always the Gang of Four &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201633612&quot; rel=&quot;nofollow&quot;&gt;book&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you are looking for more high level concepts... go no further than Fowlers own &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321712943&quot; rel=&quot;nofollow&quot;&gt;Domain Specific Languages&lt;/a&gt; or something like &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0470684208&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;.  Also, it never hurts to read classics like Mythical Man-Month or CODE Complete to get overview of what it will take to design, develop and deliver enterprise solutions. (Even if those last two are not specific to enterprise development - but do apply).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, one last point - everyone should read this &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0932633439&quot; rel=&quot;nofollow&quot;&gt;Peopleware&lt;/a&gt;.  It really brings home how without the right people, not design will ever be successfully developed and delivered.&lt;/p&gt;&#xA;" OwnerUserId="1789" LastActivityDate="2010-11-16T14:16:28.047" />
  <row Id="19337" PostTypeId="2" ParentId="19318" CreationDate="2010-11-16T14:17:15.237" Score="0" ViewCount="" Body="&lt;p&gt;If you have no problem getting a job I would recommend going somewhere new to learn how other people work and gain new and different experiences.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-11-16T14:17:15.237" />
  <row Id="19338" PostTypeId="2" ParentId="19030" CreationDate="2010-11-16T14:20:30.857" Score="0" ViewCount="" Body="&lt;p&gt;So what's the alternative?  If you tell the interviewer that you know the answer to a question that is posed and expect them to give you only questions that you don't know the answer to, what happens?  Either&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;They will respect you because you will only attempt to answer questions you have never seen/heard before,&lt;/li&gt;&#xA;&lt;li&gt;They will be blown away by your brilliance - after all, you already know the answers to the questions they're posing - and will immediately offer you a job&lt;/li&gt;&#xA;&lt;li&gt;They will think you're a smart-ass because you already seem to know everything - just ask you!, or&lt;/li&gt;&#xA;&lt;li&gt;They will think you're a fool because you don't know when things are going well.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I suspect that options (1) and (2) aren't going to happen - call me Mr. Cynical.  So you're left with either being a fool or a smart-ass, neither of which is likely to land you a job.  Hey, good luck!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point of an interview, as others have pointed out, is to offer you a chance to demonstrate your technical proficiency by answering whatever questions are put to you.  This kind of means that it's in your favor to be asked questions you're already familiar with.  If you insist on sabotaging yourself, go ahead - nobody's going to stop you - but I suggest you don't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Share and enjoy.&lt;/p&gt;&#xA;" OwnerUserId="4848" LastActivityDate="2010-11-16T14:20:30.857" />
  <row Id="19339" PostTypeId="2" ParentId="19292" CreationDate="2010-11-16T14:27:50.283" Score="0" ViewCount="" Body="&lt;p&gt;Python is great for this and has a larger install base, and Ruby is not any better except it has &lt;a href=&quot;http://mislav.uniqpath.com/poignant-guide/book/chapter-3.html&quot; rel=&quot;nofollow&quot;&gt;Why's Poignant Guide to Ruby&lt;/a&gt;. Seriously, cartoon foxes.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-16T14:27:50.283" />
  <row Id="19340" PostTypeId="2" ParentId="19318" CreationDate="2010-11-16T14:28:34.190" Score="2" ViewCount="" Body="&lt;p&gt;Three years is quite a long time in software development and hopefully both you and the company have learnt new things in the time since you left.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They could have changed beyond all recognition so it would be like starting somewhere completely new - albeit with some people you already know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why not go for interview and see what it's like. You can always turn it down (assuming you have that luxury).&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-11-16T14:28:34.190" />
  <row Id="19341" PostTypeId="2" ParentId="19326" CreationDate="2010-11-16T14:35:09.530" Score="3" ViewCount="" Body="&lt;p&gt;I have done it and I prefer it. The contract will have to be on a time and materials basis, rather than a fixed bid. The fixed bid theoretically moves some risk to the vendor and may be more competitively priced but in reality it generates a need for so much more work like you describe, not to mention fights over change control definitions etc. So we just hire x number of bodies and work a lot more dynamically with them, assigning work on a task basis. They do not participate in Scrums though - there are onshore leads that will represent them. Essentially the onshore looks like he is doing the work of three people, but he is parceling out tasks to offshore. The onshore/offshore model does cost you some higher rates with the onshore person obviously.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-16T14:35:09.530" />
  <row Id="19342" PostTypeId="2" ParentId="19320" CreationDate="2010-11-16T14:37:54.127" Score="1" ViewCount="" Body="&lt;p&gt;I like it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMO it is good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;WPF is just presentation, so it won't affect security, unless there are some security issues I've not heard about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've not seen any metrics comparing WPF to WinForms performance-wise. I'm guessing they're comparable. This SO question is about the performance of WPF v WinForms: &lt;a href=&quot;http://stackoverflow.com/questions/368371/performance-comparison-of-winforms-and-wpf&quot;&gt;http://stackoverflow.com/questions/368371/performance-comparison-of-winforms-and-wpf&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like  WPF because XAML is declarative and makes saying how I want the UI to look and act easier than with WinForms. This is only true after I have learned the basics of MVVM.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-11-16T14:37:54.127" />
  <row Id="19343" PostTypeId="2" ParentId="19292" CreationDate="2010-11-16T14:42:37.387" Score="6" ViewCount="" Body="&lt;h3&gt;AutoHotKey&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;AutoHotkey is a free, open-source utility for Windows. With it, you can:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Automate almost anything by sending keystrokes and mouse clicks. &#xA;&lt;li&gt;You can write a mouse or keyboard macro by hand or use the macro recorder.&#xA;&lt;li&gt;Create hotkeys for keyboard, joystick, and mouse. Virtually any key, button, or combination can become a hotkey.&#xA;&lt;li&gt;Expand abbreviations as you type them. For example, typing &quot;btw&quot; can automatically produce &quot;by the way&quot;.&#xA;&lt;li&gt;Create custom data-entry forms, user interfaces, and menu bars. See GUI for details.&#xA;&lt;li&gt;Remap keys and buttons on your keyboard, joystick, and mouse.&#xA;&lt;li&gt;Respond to signals from hand-held remote controls via the WinLIRC client script.&#xA;&lt;li&gt;Run existing AutoIt v2 scripts and enhance them with new capabilities.&#xA;&lt;li&gt;Convert any script into an EXE file that can be run on computers that don't have AutoHotkey installed.&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.autohotkey.com&quot; rel=&quot;nofollow&quot;&gt;http://www.autohotkey.com&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've saved several companies a large sum of money by using this tool.&lt;/p&gt;&#xA;" OwnerUserId="189" LastActivityDate="2010-11-16T14:42:37.387" />
  <row Id="19344" PostTypeId="1" CreationDate="2010-11-16T14:43:35.390" Score="4" ViewCount="112" Body="&lt;p&gt;Lets suppose that I have a class which represent an image and has a number of methods.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Image&#xA;{&#xA;    circle(x,y,radius,color);&#xA;    square(x,y,w,h,color);&#xA;    floodfill(x,y,color)&#xA;    clear();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Furthermore, I want to have undo functionality. A simple way of implementing this is to keep a list of all the actions that have been performed. When I undo, I just rerun all of the actions. One solution would be to implement an aspect, something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;aspect ImageUndo&#xA;{&#xA;    on Image::circle, Image::square, Image::floodfill&#xA;    precall(object, args)&#xA;    {&#xA;         object.actions_list.add(args)&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Essentially, this aspect has now modified the behavior of Image. That gives me concern. In particular, another programming unfamiliar with the existence of ImageUndo aspect may run into the following problems:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;He adds a method, and it does not work with the undo functionality.&lt;/li&gt;&#xA;&lt;li&gt;Attempting to debug the undo mechanism, it is not clear where the actions_list get added to.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;On the other hand we could have&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Image&#xA;{&#xA;    @undoable_action&#xA;    circle(x,y,radius,color);&#xA;&#xA;    @undoable_action&#xA;    square(x,y,w,h,color);&#xA;&#xA;    @undoable_action&#xA;    floodfill(x,y,color)&#xA;&#xA;    @undoable_action&#xA;    clear();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Which does not bother me as much because it gives an idea of where to look for the undo code and makes is so that the new coder will probably notice it an automatically add it to a new method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To summarize: aspects (at least those like the one I showed) seems to bring &quot;implicit magic&quot; into what code does. It seems to me that the implicitness is dangerous and we should really make it explicit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there good reasons for the implicitness? Do people who actually use AOP write code that does this sort of modification? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: this is a reworking of &lt;a href=&quot;http://programmers.stackexchange.com/questions/19244/is-aspect-oriented-programming-a-good-idea/19252#19252&quot;&gt;Is Aspect-Oriented Programming a good idea?&lt;/a&gt; which was closed because my previous version came across, unintentionally, as ranting.&lt;/p&gt;&#xA;" OwnerUserId="1343" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T15:05:25.950" LastActivityDate="2010-11-16T16:58:38.687" Title="Aspect oriented programming and implicitness" Tags="&lt;aspect-oriented&gt;" AnswerCount="2" CommentCount="3" />
  <row Id="19345" PostTypeId="2" ParentId="19278" CreationDate="2010-11-16T14:44:29.147" Score="1" ViewCount="" Body="&lt;p&gt;For the most part, it is up to you. You would have some legal exposure if you considered factors that are protected such as marital status or religion after seeing information about those online. For the most part, you get to decide on personality. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Speaking for myself, I don't put anything on a blog or my Facebook page that I wouldn't want the entire world to know about me. I find people who make private details so public to be a little odd but wouldn't normally be biased against them from a hiring perspective. &lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-16T14:44:29.147" />
  <row Id="19346" PostTypeId="2" ParentId="19326" CreationDate="2010-11-16T14:48:20.157" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Agile&lt;/strong&gt; will bring lot of visibility on what is going on, and it's what's you need.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-16T14:48:20.157" />
  <row Id="19347" PostTypeId="2" ParentId="5718" CreationDate="2010-11-16T15:00:13.503" Score="0" ViewCount="" Body="&lt;p&gt;Being a hardcore coder I prefer to edit the XML comments myself. I do not like the feeling of not being totally in charge! I am not saying that it's better this way, I'm just saying that it's just the way I like it.&lt;/p&gt;&#xA;" OwnerUserId="3018" LastActivityDate="2010-11-16T15:00:13.503" />
  <row Id="19348" PostTypeId="1" AcceptedAnswerId="25031" CreationDate="2010-11-16T15:00:30.583" Score="0" ViewCount="355" Body="&lt;p&gt;What Java ORM library implementing JPA that match following criteria would you recommend and why ?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;free &amp;amp; open source   &lt;/li&gt;&#xA;&lt;li&gt;alive (at least bug fixes and a mailing list) &lt;/li&gt;&#xA;&lt;li&gt;with good documentation &lt;/li&gt;&#xA;&lt;li&gt;simple&lt;/li&gt;&#xA;&lt;li&gt;not hibernate (this one is well-known :-) )&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I need to select a simple ORM tool that can be set up in minutes without and easy to understand for setting simple CRUD daos. A query builder ill be an interesting plus.&#xA;Later I can have to move to Hibernate, that's why being JPA compliant is a must.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have found some candidates on the web, but not so much feedback, so I will gladly take your advices on the topic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;----- EDIT ---------&lt;br&gt;&#xA;I have been successfully testing &lt;a href=&quot;http://www.avaje.org/&quot; rel=&quot;nofollow&quot;&gt;ebean/avaje&lt;/a&gt; with a small test cases. Any one has a feedback on using this tool in production ?&lt;/p&gt;&#xA;" OwnerUserId="4989" LastEditorUserId="19728" LastEditorDisplayName="" LastEditDate="2011-03-10T04:42:20.533" LastActivityDate="2011-03-15T17:09:33.457" Title="Which simple Java JPA ORM tool to use ? " Tags="&lt;java&gt;&lt;orm&gt;&lt;dao&gt;&lt;jpa&gt;" AnswerCount="3" CommentCount="4" />
  <row Id="19349" PostTypeId="2" ParentId="19298" CreationDate="2010-11-16T15:08:01.690" Score="4" ViewCount="" Body="&lt;p&gt;You've hit the stage where it seems impossible and the project is going to hell. Good. Every project worth doing has those moments and they are a good sign that you are making progress. I've always found that those are the moments right before you make a real breakthrough. Cherish those moments. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Giving up is not an option. You have to work through those tough moments both in programming and in life. Will you give up on your children if the going gets tough (it will)? Will you give up on your parents when they get old and the going gets tough? Will you give up on your spouse becasue the going gets tough? Will you give up on yourself when you get a serious illness or disability? It is really important for your own character development not to give up just because it is hard. Life is hard. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-16T15:08:01.690" />
  <row Id="19350" PostTypeId="2" ParentId="19278" CreationDate="2010-11-16T15:09:53.743" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is it fair to consider this when&#xA;  thinking about whether to offer them a&#xA;  job?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes, though I would argue that seeking clarification may be a good idea.  Could what was posted be old enough that this would now be retracted?  How well would someone defend what they posted?  Shouldn't the candidate have a chance to defend themselves?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In most situations my response would&#xA;  be what goes on in someone's private&#xA;  life is their own doing. However for&#xA;  anyone technical who professes&#xA;  (implicitly or explicitly) to&#xA;  understand the Internet and the&#xA;  possibilities it offers, is posting&#xA;  things in a way which can so obviously&#xA;  be discovered a significant error of&#xA;  judgement?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Not necessarily.  Could the material be bait as some part of a sting operation?  Is the material dated enough that what you are seeing is years old that may or may not still be relevant,e.g. if someone posted a claim of Google being dead 2 years ago that it would happen within 6 months this would be a big blow to credibility to my mind?  As there are, however remote, rational justifications for doing what was done, I'd give the person a chance to explain themselves.  If they seem shocked that you found this, then there was a significant error of judgment.  Making assumptions can be very dangerous here is a caution I would point out.  Granted that I'm speculating of why it may not be a horrible idea but this is because your post suggests you already have that side of the argument and want some ammo for the other side as most things can be argued from either side, at least in my experience.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-16T15:09:53.743" />
  <row Id="19351" PostTypeId="1" AcceptedAnswerId="19354" CreationDate="2010-11-16T15:11:24.770" Score="11" ViewCount="370" Body="&lt;p&gt;We read technical/non-technical blogs almost daily. If not, at least regularly.  How many blogs are enough? I sometimes find no time to read blogs I follow due to other commitments only to worry myself having to follow so many blogs. I am seriously thinking to catch-up these blogs once in a week on weekend. Perhaps, then I will be able to read them in detail. Otherwise I end up going through them just for the sake of it.  May be you guys can read faster or maybe you grasp things quicker.&lt;/p&gt;&#xA;" OwnerUserId="7478" LastEditorUserId="149" LastEditorDisplayName="" LastEditDate="2010-11-16T15:21:52.807" LastActivityDate="2010-11-21T15:56:56.860" Title="how many blogs do you follow regularly? And how many are enough?" Tags="&lt;learning&gt;&lt;productivity&gt;&lt;career&gt;&lt;blogs&gt;" AnswerCount="10" CommentCount="5" FavoriteCount="1" />
  <row Id="19352" PostTypeId="2" ParentId="19351" CreationDate="2010-11-16T15:18:22.560" Score="3" ViewCount="" Body="&lt;h2&gt;44 Bloggers&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I'm a .NET programmer so I follow 24 bloggers from inside Microsoft alone.  Outside of Microsoft, another 20 or so.. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fortunately not everyone of them blogs everyday, otherwise it would probably get out of hand.  Thank goodness for RSS feeds!!&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-11-16T15:18:22.560" />
  <row Id="19353" PostTypeId="2" ParentId="7166" CreationDate="2010-11-16T15:19:03.623" Score="0" ViewCount="" Body="&lt;p&gt;There is no free lunch; something must be used for a delimiter. Since we use spacing anyway, using EOL,space and tab characters makes sense and reduces clutter. &lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-16T15:19:03.623" />
  <row Id="19354" PostTypeId="2" ParentId="19351" CreationDate="2010-11-16T15:19:45.000" Score="4" ViewCount="" Body="&lt;p&gt;My suggestion would be to only read what you have time for. Don't try to do everything - you'll burn yourself out that way! Look around, bookmark 6-8 that you think are interesting, and keep up with them as you have time. Eventually you'll probably find that some of them are not as helpful as you thought. Ignore them, and keep reading the ones you find helpful and interesting.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-16T15:19:45.000" CommentCount="1" />
  <row Id="19355" PostTypeId="2" ParentId="19351" CreationDate="2010-11-16T15:22:27.207" Score="0" ViewCount="" Body="&lt;p&gt;I have 53 in my reading list. Not all of them are technical blogs, and many of the feeds are outdated and no longer updated, or rarely updated. I would say &quot;enough&quot; is how many you can read in a week or month or whatever. I normally catch up on blogs on the subway; I use Reeder to download posts to an iPod Touch so I can read them offline.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-11-16T15:22:27.207" />
  <row Id="19356" PostTypeId="2" ParentId="7166" CreationDate="2010-11-16T15:22:40.500" Score="3" ViewCount="" Body="&lt;p&gt;I dislike a lot this kind of language requirement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think python is a great language but this is keeping me away of it !&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those complaining about not or bad formatted code, I will say: use a code formatter !&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that this restriction is more invasive than a rule about having parenthesis, using '.' or '-&gt;' for member access or using a ';' or a '.' to end a line.&lt;/p&gt;&#xA;" OwnerUserId="4989" LastActivityDate="2010-11-16T15:22:40.500" />
  <row Id="19357" PostTypeId="2" ParentId="4341" CreationDate="2010-11-16T15:22:52.423" Score="0" ViewCount="" Body="&lt;p&gt;I'm yet to meet a university graduate who was ready to write production code.  I'm sure there are some but in 16 years in the industry I haven't met them.  Where they do exist I suspect it was something that came from coding in their spare time rather than anything they were taught.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me the main thing that should happen to change this is that you should pick a single language at the end of your first year (having been exposed to several during that year), and from then on at least 80% of the code you write should be in that language.  Then, over the course of the next two years the expected standard of code would rise with students expected not only to solve the problems set but solve them in a way that showed increasingly mature use of the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, university is a great time to get a breadth of skills and exposure to a lot of stuff but all too often this results in incredibly shallow knowledge and little ability to utilise a language in anger.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me the best way to change that is to focus more time on problem solving coding, and less on the unproductive bit that comes at the beginning of a new language (but is ultimately very easy).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-16T15:22:52.423" />
  <row Id="19358" PostTypeId="2" ParentId="7166" CreationDate="2010-11-16T15:25:05.600" Score="0" ViewCount="" Body="&lt;p&gt;No. I rarely get bitten by indentation requirements (perhaps because I'm a stickler for detail). I'd indent my code anyway, so it's not a problem. (The only time it's been an issue is with some old Python code I'm working on; the previous developers wrote it with 2-space tabs (ick!), then newer developers created some files with 4-space tabs, and I have my editor set to 4-space tabs, so indentation is kind of a pain in the older files.) I've never had a problem with it in Haskell, either. It's a bit annoying in Makefiles, but I wouldn't say it's &quot;cumbersome&quot;.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-11-16T15:25:05.600" />
  <row Id="19359" PostTypeId="1" AcceptedAnswerId="19366" CreationDate="2010-11-16T15:26:18.593" Score="11" ViewCount="433" Body="&lt;p&gt;Hi. In every problem solving there's always people who think differently, who come with a 6th option when only 5 were suggested by others, who think &quot;out of the box&quot;. Please tell how one can achieve such ability? And what it takes to achieve it?&lt;/p&gt;&#xA;" OwnerUserId="7781" LastActivityDate="2010-11-16T18:42:13.587" Title="How to learn/become capable of thinking out of the box?" Tags="&lt;recommendations&gt;&lt;thinking&gt;" AnswerCount="11" CommentCount="5" FavoriteCount="5" />
  <row Id="19360" PostTypeId="2" ParentId="7166" CreationDate="2010-11-16T15:26:25.067" Score="1" ViewCount="" Body="&lt;p&gt;Old-fashioned FORTRAN and COBOL had indentation requirements based on punch-card layout, which I found annoying.  Indentation requirements don't seem to bother me provided I can use all columns, but having to be careful to start a line on column 7 because 6 is for line continuation is awkward.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-16T15:26:25.067" />
  <row Id="19361" PostTypeId="2" ParentId="19351" CreationDate="2010-11-16T15:27:02.433" Score="3" ViewCount="" Body="&lt;p&gt;What is enough for me may not be enough for you and vice versa. Quantity does not mean quality. Find authorities in your field and follow them. That should hopefully cover the basics. Also, you don't have to read every post in every blog that you follow. Filter information that you think may benefit you.&#xA;I follow about 5-6 blogs that are pretty technical with code samples and information that I can apply on a daily basis as a developer. I also follow 5-6 more blogs that are about general programming with a wide range of information. They help me to stay information with new developments and trends in the industry in general.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-11-16T15:27:02.433" />
  <row Id="19362" PostTypeId="2" ParentId="6395" CreationDate="2010-11-16T15:28:14.973" Score="2" ViewCount="" Body="&lt;p&gt;I once had a pretty fantastic software engineer tell me that the most expensive form of code analysis and maintenance was to walk through the code, line by line; of course, we're programmers, and that pretty much comes with the job.  The happy medium, I think, is to (in this order):&#xA;1.  Get a notebook to create notes for how you understand the code to work, and add to it as time goes on&#xA;2.  Refer to documentation about the code&#xA;3.  Talk to authors or others who have supported the code base.  Ask them for a &quot;brain dump&quot;&#xA;4.  If you're to the point where you understand some of the detail-level class relationships, do some step-through debugging of the code to do some synthesis between how you thought the code works and how the code actually works.&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2010-11-16T15:28:14.973" CommunityOwnedDate="2010-11-16T15:28:14.973" />
  <row Id="19363" PostTypeId="2" ParentId="6395" CreationDate="2010-11-16T15:29:53.087" Score="1" ViewCount="" Body="&lt;p&gt;First understand what it's meant to be doing - without that it's likely to be gibberish.  Speak to the users, read the manual, whatever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then hit run and start walking the code for what seem to be the key functions.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-16T15:29:53.087" CommunityOwnedDate="2010-11-16T15:29:53.087" />
  <row Id="19364" PostTypeId="2" ParentId="19359" CreationDate="2010-11-16T15:30:02.053" Score="2" ViewCount="" Body="&lt;p&gt;A lot of it either comes with practice, or is simply innate: some people are more creative than others. But I think a big part of outside-of-the-box thinking comes from having a breadth of knowledge, and knowing (or having the experience to know) when to apply that knowledge to different problems.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-11-16T15:30:02.053" CommentCount="1" />
  <row Id="19365" PostTypeId="2" ParentId="19359" CreationDate="2010-11-16T15:32:20.337" Score="2" ViewCount="" Body="&lt;p&gt;May I suggest &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1934356050&quot; rel=&quot;nofollow&quot;&gt;Pragmatic Thinking and Learning: Refactor Your Wetware (Pragmatic Programmers)&lt;/a&gt; by Andy Hunt.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-11-16T15:32:20.337" CommentCount="1" />
  <row Id="19366" PostTypeId="2" ParentId="19359" CreationDate="2010-11-16T15:34:31.240" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;There is no box!&lt;/strong&gt;&lt;br&gt;&#xA;There is a specific problem to solve, and a set of constraints which might apply. Work out what the problem is (think abstractly and in real terms), defining it in both specific topic-based terms, and in more general terms.&lt;br&gt;&#xA;Examine each of the constraints (don't make assumptions) to see if, when, and to what extent they might apply. Look at the problem from the perspective of who it affects (don't forget the goal) as well as from behind the scenes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Don't make assumptions.&lt;/strong&gt;&lt;br&gt;&#xA;If you assume certain things are true when they're not, you'll prevent yourself from examining different perspectives. Also challenge existing decisions/assumptions that others have made - there might be a good reason for it, or there might not, or there was one that no longer applies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Think abstractly.&lt;/strong&gt;&lt;br&gt;&#xA;Learn to see things as patterns and in abstract terms. When you spot a pattern, consider similar things and see if you can apply actions from it to the current thing. If your subject area has named patterns, learn them - but &lt;em&gt;don't&lt;/em&gt; treat them as cookie cutter solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Don't think abstractly.&lt;/strong&gt;&lt;br&gt;&#xA;Always try to see things as they are too - remember that &quot;users&quot; are people, and they're not always logical or rational. Practise empathising with the people using what you create.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Don't forget the goal.&lt;/strong&gt;&lt;br&gt;&#xA;Sometimes it's easy to get bogged down with a particular target/implementation (e.g. &quot;how do we fit these X controls into the UI?&quot;) instead of remembering the real goal (such as &quot;how do we allow the user to do Y?&quot;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Never stop learning.&lt;/strong&gt;&lt;br&gt;&#xA;General knowledge can be a great source of inspiration - a lot of problems have been solved by someone already - the more you know the more you might remember something applicable to the current situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Be a good programmer, not just a good at [programming language].&lt;/strong&gt;&lt;br&gt;&#xA;Don't be scared to learn multiple technologies and techniques - even multiple &quot;overlapping&quot; languages can help you to see things in different terms, but a good variety of different ones may help more. Of course pick a few areas to specialise/master, but also make sure you have a decent grounding in general concepts, which you can gain by learning multiple different languages,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Don't assume someone is too inexperienced to help.&lt;/strong&gt;&lt;br&gt;&#xA;Sometimes people that appear not very knowledgeable, or that have never programmed, can appear to be useless for a programming problem - but that doesn't mean you should ignore them. Everyone has different perspectives and skill-sets, and might provide a unique insight that spring-boards you to a solution.&lt;br&gt;&#xA;Young kids can especially be a good source of an &quot;untainted&quot; perspective that can be inspirational.&lt;/p&gt;&#xA;" OwnerUserId="89" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-16T16:28:22.167" LastActivityDate="2010-11-16T16:28:22.167" CommentCount="5" />
  <row Id="19367" PostTypeId="2" ParentId="19359" CreationDate="2010-11-16T15:37:23.610" Score="2" ViewCount="" Body="&lt;p&gt;There's no single answer to this. It helps if you mentally exercise thinking out of the box regularly, even in mundane day-to-day activities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Reversing Assumptions&lt;/strong&gt;&#xA;As one of the many possible approaches, you could try focusing on reversing inherent assumptions of a solution or problem:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You start with the problem. Think of an easy solution, a solution that anyone could think of. Then ask yourself: What are the assumptions underlying this solution? Or what are the assumptions on the problem? Now take one (or several) of those assumptions and ask yourself: what if dropped/reversed this assumption? Or what if instead of directly addressing some requirement, I could satisfy it as a side effect of another solution?&lt;/p&gt;&#xA;" OwnerUserId="7034" LastEditorUserId="7034" LastEditorDisplayName="" LastEditDate="2010-11-16T15:59:35.770" LastActivityDate="2010-11-16T15:59:35.770" />
  <row Id="19368" PostTypeId="2" ParentId="19359" CreationDate="2010-11-16T15:38:45.153" Score="2" ViewCount="" Body="&lt;p&gt;I'm not sure that everyone can achieve such an ability, but here are my suggestions for ways to possibly try to get there, assuming you don't already:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Cognitive Behavior Therapy - This can be similar to &quot;rewiring&quot; one's brain.  In my case, I've gotten much more used to see how balanced things can be, to see the other side rather than plow on with what I initially think of something.  The book, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0898621283&quot; rel=&quot;nofollow&quot;&gt;&quot;Mind Over Mood,&quot;&lt;/a&gt; has some exercises that can help with this if you want to go down this road.  This is used for treating anxiety and depression is how I ran across this topic.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Self-help books - For example, Dr. Phil's first book, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0786884592&quot; rel=&quot;nofollow&quot;&gt;&quot;Life Strategies,&quot;&lt;/a&gt; has exercises that can help to try to unlock how you think and possibly if you do the exercises sincerely and honestly, you may achieve a similar result to one.  There may be other books that work here but also quite a few that don't work for some people so it can be a bit of a trial and error to find the few that do work for someone.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Grand amounts of knowledge - For example, how many different sorting strategies do you know?  I remember a few taught in school like bubble, shell, quick, heap, and merge, so there is the chance that by absorbing ridiculous amounts of knowledge you could have the list of various heuristics to try to solve a problem.  Example of heuristics here would include being greedy, divide and conquer, dynamic programming, and use of specialized data structures.  In some cases, just knowing a ton of stuff that be enough to think in a box bigger than someone initially thought. ;-)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-16T15:38:45.153" />
  <row Id="19369" PostTypeId="2" ParentId="19359" CreationDate="2010-11-16T15:46:30.070" Score="4" ViewCount="" Body="&lt;p&gt;Have an open mind and go out of your way to explore as many options as you can about anything. Use this with life, not just programming. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you only stick with what you know, you'll never have anything to compare with. If you go out there and explore alternatives you'll start to see other ways of doing things. After time, you start realizing you can find links in unrelated objects. A video game you enjoy might have some feature that you would absolutely love to see in the business application you're working on even if it is totally unrelated. Your microwave might have a really cool configuration setting you'd like to implement.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-11-16T15:46:30.070" />
  <row Id="19370" PostTypeId="2" ParentId="19344" CreationDate="2010-11-16T15:55:47.103" Score="1" ViewCount="" Body="&lt;p&gt;Classes that implement cross-cutting concerns have &lt;em&gt;nothing to say&lt;/em&gt; about the core functionality of classes being AOP'd.  That's the core idea here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your example is one of an undo action.  Let's take it a step further: we will make a deep copy of your class and store it somewhere.  If we want to perform an undo, all we have to do is reverse the deep copy.  This will &quot;roll back&quot; the class to its original state.  You don't even need to annotate the class members to make it work (although you could annotate the class itself if you wanted the deep copy to operate automatically).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's my question: Does this deep copy process have &lt;em&gt;anything at all&lt;/em&gt; to do with the primary functionality of the class being deep copied?  Does the deep copy even care what the class does?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Serializing and deserializing objects are another example of this.  The serialization process has no knowlege of the behavior of the class, and the objects being serialized have no knowledge of the serialization process.  It's a powerful decoupling tool.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-16T16:17:11.267" LastActivityDate="2010-11-16T16:17:11.267" CommentCount="6" />
  <row Id="19371" PostTypeId="2" ParentId="19359" CreationDate="2010-11-16T15:59:32.993" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Learn to see the box&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look at the box and understand its constraints.  Consider which of those constraints are actually beneficial to solving the problem, and point out which are either in the way or not necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might think that the answers mentioning &lt;em&gt;assumptions&lt;/em&gt; are exactly the same thing, but I'm not sure that they are.  Knowing the &lt;em&gt;realm&lt;/em&gt; of the problem is important, too.  Once you've got a clear picture of the problem and already considered solutions, you can pick up one piece and and see if other potential solutions come to mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Expand &lt;em&gt;your&lt;/em&gt; box&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can never think outside of the box which is your own mind.  So, keep expanding on what you know and have heard about.  Things that may seem uninteresting to other people should hold interest for you.  There is almost always some detail that you actually could find unexpected and exciting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of these random, insteresting bits of information can come together in odd ways when you are analyzing a problem.  You just never know what will happen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Oddball answer:&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For fun and practice, listen to what people say in normal conversations and see how it would work out both literally and by using alternative meanings for the words they've chosen.  This can turn into puns or other entertaining misuses of the language, but it also is a rather frequent way to exercise &quot;thinking outside the box&quot;.&lt;/p&gt;&#xA;" OwnerUserId="6639" LastEditorUserId="6639" LastEditorDisplayName="" LastEditDate="2010-11-16T16:20:01.450" LastActivityDate="2010-11-16T16:20:01.450" CommentCount="4" />
  <row Id="19372" PostTypeId="1" CreationDate="2010-11-16T16:00:39.340" Score="3" ViewCount="333" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/370/how-old-is-too-old&quot;&gt;How old is &amp;ldquo;too old&amp;rdquo;?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;There is a general notion that programmers become less effective as they age. This is quite shocking for any programmer who loves his job. Would like to know what you guys think about this.&lt;/p&gt;&#xA;" OwnerUserId="7783" LastActivityDate="2010-11-16T16:41:37.937" ClosedDate="2010-11-16T20:07:51.333" Title="Age and Programming" Tags="&lt;productivity&gt;&lt;programming&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="2" />
  <row Id="19373" PostTypeId="2" ParentId="19372" CreationDate="2010-11-16T16:04:20.403" Score="3" ViewCount="" Body="&lt;p&gt;I would replace &quot;less effective&quot; with &quot;less cost effective&quot;, since ultimately this is how managers view programmers as they get older. Personally, I agree with &lt;a href=&quot;http://norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;this posting&lt;/a&gt; and I wouldn't even consider employing a developer under the age of 30. In fact, the solution for every developer up to the age of about 32 seems to be to open source every codebase...&lt;/p&gt;&#xA;" OwnerUserId="7782" LastActivityDate="2010-11-16T16:04:20.403" CommentCount="2" />
  <row Id="19374" PostTypeId="2" ParentId="19372" CreationDate="2010-11-16T16:04:27.783" Score="1" ViewCount="" Body="&lt;p&gt;I have never heard of such a notion&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-11-16T16:04:27.783" />
  <row Id="19375" PostTypeId="2" ParentId="7166" CreationDate="2010-11-16T16:05:24.133" Score="4" ViewCount="" Body="&lt;p&gt;In general, I'm against bondage and discipline features that are geared towards making it hard to write bad code.  However, I don't find that Python's forced indentation fits this mold.  The compiler/interpreter needs to know where blocks begin and end somehow, and about the only &lt;em&gt;human&lt;/em&gt;-readable way to denote this is with indentation.  Therefore, using indentation to denote it to the compiler/interpreter as well is a good example of DRY.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using curly braces for the compiler/interpreter plus indentation for humans is like writing otherwise inscrutable but excessively commented code.  Information is specified once for the compiler/interpreter, then again for humans.  It has to be kept in sync manually and becomes almost impossible to understand if it gets out of sync.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-16T16:05:24.133" CommentCount="1" />
  <row Id="19376" PostTypeId="2" ParentId="19320" CreationDate="2010-11-16T16:07:39.573" Score="0" ViewCount="" Body="&lt;p&gt;I too like WPF but I know I had some issues with Windows XP when I first started using it (albiet it may have been my fault). WPF was originally developed for use with Vista (and then Windows 7) so it originally didn't work on XP. There is a blog post about this on MSDN (&lt;a href=&quot;http://blogs.msdn.com/b/tims/archive/2007/01/05/comparing-wpf-on-windows-vista-v-windows-xp.aspx&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com/b/tims/archive/2007/01/05/comparing-wpf-on-windows-vista-v-windows-xp.aspx&lt;/a&gt;) and while it is old it outlines some of the issues that may exist when using XP. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For what you are doing, it may be fine but if you end up needing something media intensive I wouldn't use it as performance may take a hit per the blog above.  &lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-11-16T16:07:39.573" />
  <row Id="19377" PostTypeId="2" ParentId="19278" CreationDate="2010-11-16T16:08:24.283" Score="2" ViewCount="" Body="&lt;p&gt;In a perfect world, only if it relates to programming like SO posts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For non-programming behaviors, you have to decide if it will impact their job performance. Someone who likes to party is not necessarily a problem, but when they post &quot;I was so ripped I had to call off work for 3 days.&quot; you may want to see if they have changed. It is fair to ask a recent college graduate if they are going to be able to make the adjustment to the real world and get their priorities straight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm amazed at some of the responses that seem overly-concerned with others fitting in. If you can't work with other people who are not like you, you and/or your company have a problem. This is beyond the illegal (in some countries) practice of bias towards race/creed, gender, and religion. Don't hire a gun collector for fear they may bring one to the office if they become disgruntled. How silly would it be to not hire a tri-athlete because they may go for a run and show up to work sweaty and smelly in front of clients. You have to know whether or not the candidate can differentiate what is appropriate at work and what isn't. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being concerned with whether or not an employee can show some discretion is important. Many have mentioned the likely hood of getting caught. Asking someone to wear a disguise when they go to an adult club, is a little creepy.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-16T16:08:24.283" />
  <row Id="19378" PostTypeId="2" ParentId="19318" CreationDate="2010-11-16T16:10:39.603" Score="0" ViewCount="" Body="&lt;p&gt;Yes, but with the understanding that they are probably going to expect more  work out of you since you know the place compared to other contractors.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-16T16:10:39.603" />
  <row Id="19379" PostTypeId="2" ParentId="19372" CreationDate="2010-11-16T16:12:25.357" Score="8" ViewCount="" Body="&lt;p&gt;Having done this for 15 years (I'm 38), I still love the challenges of solving problems. But it's easy to get burned out. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having to maintain legacy systems (knowledge retention) and keep up with new technology, it becomes mentally tiring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A 25 year old entering the field doesn't have the cranial technical debt that a 40 year old does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A 25 year old with no kids has an easier time switching jobs and shrugging off technical debt at prior jobs. A 40 year old may not have that luxury.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A 25 year old has a less &quot;life concerns&quot; waiting for them after hours and can (even if it's sub conscience) process problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been the 25 year old and I'm becoming the 40 year old. I think if we could truly only have to work 40-50 hours a week, as Agile says we should, it would be more even.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Granted, I'm speaking from my experience only.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-11-16T16:12:25.357" CommentCount="6" />
  <row Id="19380" PostTypeId="2" ParentId="19359" CreationDate="2010-11-16T16:17:33.077" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Be Bold&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Are you prepared to suggest outlandish ideas in front of others?&lt;/li&gt;&#xA;&lt;li&gt;Are you prepared to be wrong?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Know the Box&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When you understand what constrains your current thinking you can move beyond it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Break your Mindset&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Change Perspective&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Think of someone who has a different perspective and guess what how they see the problem.&lt;/li&gt;&#xA;&lt;li&gt;Get up and walk around.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Change Language&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think of the problem as:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pipes with water flowing through them&lt;/li&gt;&#xA;&lt;li&gt;A series of gates with gatekeepers who demand payment&lt;/li&gt;&#xA;&lt;li&gt;A battle from StarTrek&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Change Representation&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Draw a picture&lt;/li&gt;&#xA;&lt;li&gt;Express the problem in a single sentence&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Start at the Other End&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Try working backwards from the goal.&lt;/li&gt;&#xA;&lt;li&gt;Are you solving the right problem?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Change Size&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What if you only had to solve the problem for one user?&lt;/li&gt;&#xA;&lt;li&gt;What if you had to make one 10 times as big?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Do Something. Anything&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Try switching if off and then on again.&lt;/li&gt;&#xA;&lt;li&gt;Make a cup of tea.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Ask Someone Else&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Have you tried Googling it?&lt;/li&gt;&#xA;&lt;li&gt;Ask a 6-year old.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-11-16T16:17:33.077" CommentCount="1" />
  <row Id="19381" PostTypeId="2" ParentId="19292" CreationDate="2010-11-16T16:21:04.417" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Perl&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perl is pretty much my definition of quick and dirty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perl is infinitely flexible which is a strength and weakness.  It doesn't force structure on you, but it's there if you want it.  It has libraries for everything.  It's been used extensively for 20 years; there's tons of code out there to work with.&lt;/p&gt;&#xA;" OwnerUserId="3764" LastActivityDate="2010-11-16T16:21:04.417" CommentCount="4" />
  <row Id="19382" PostTypeId="2" ParentId="19292" CreationDate="2010-11-16T16:37:38.270" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;The GUI guys in my organization like TestComplete for automation in Windows. &lt;/li&gt;&#xA;&lt;li&gt;For CLI scripting, about 90% Perl and 10% Bash&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've been working on rolling together some Common  Lisp routines to help with scripting, but it's not as easily native to that task as Perl.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-16T16:37:38.270" />
  <row Id="19383" PostTypeId="2" ParentId="19372" CreationDate="2010-11-16T16:41:37.937" Score="4" ViewCount="" Body="&lt;p&gt;I think it's rubbish in general, like most generalizations are. &lt;strong&gt;@DevSolo&lt;/strong&gt; already pointed out a few interesting points, and I'll add a few more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, programmers generally are less effective as they age. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Effective in what?&lt;br&gt;&#xA;&lt;em&gt;Typing speed?&lt;/em&gt; Probably.&lt;br&gt;&#xA;&lt;em&gt;Learning and accepting new technologies.&lt;/em&gt; That too, most likely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And that's probably it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now if we take the assumption that typing speed doesn't really matter (programmers are problem solvers, not dactilographs), and that hi tech companies are relatively rare, when viewed in comparison to the total number of companies whos business depends on computing technologies, in one way or another, we come to the conclusion (along with some other reasons not mentioned here) that &quot;the latest and the greatest&quot; is not always what is asked for. Quite the opposite in some examples.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Experience counts.&lt;/strong&gt; I've met and am still amazed by some, well, I wouldn't call them friends, more acquintances, who are approaching retirement, some are, some are not that thrilled about it. They're good at what they do, and they like what they do. They're old school, are not &quot;spoiled&quot; in terms of working conditions, ... give them a keyboard and a decent machine&amp;amp;monitor, and they're all set.&lt;br&gt;&#xA;Every now and then however, comes a &quot;bright new hope&quot; and starts a discussion that this something is wrong the way he's (the older guy) doing it, and that it should be done &quot;in the brightfuly hopeful new way&quot;. Then comes a discussion, the old guy says that will not work, either gives out some plain simple reason why, or in (as it was in the case I'm now remembering) some cases he can't quite explain it, but is against it. Then the new guy gets the job to implement it ... then after 3 months he gets into problems, and asks the old guy to help, and so on ... etc ... etc ... six months later it turns out the old guy was right. It was a bad approach, already tried actually, it's just he couldn't remember why it failed, and ... anyways you get the point. Experience counts for something. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thing is &lt;strong&gt;stability&lt;/strong&gt;. The world doesn't work on &quot;brand new stuff&quot; since everything has inertia. Things need time to change and a will to change, which is often lacking. Often there is not a reason to change at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And when you're developing systems, which are supposed to last, it is much better to develop it slowly, and to have crew which is doing it and for which is probably they will be here for another two or three decades, than to introduce new guys every month. &lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-16T16:41:37.937" CommentCount="3" />
  <row Id="19384" PostTypeId="1" CreationDate="2010-11-16T16:42:41.840" Score="7" ViewCount="409" Body="&lt;p&gt;Having a salary is great. Finishing a long project that the customer actually wants and uses is great.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However - on a day to day basis - what are the simple things that bring you joy and happiness in your job. These things can be realized on any project. What are the things that keep you in software development. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples: unit tests passing after a large code refactoring process; coffee; automating a previously boring, repetitive, error-prone task with a nifty shell script; removing the need to write any code at all by sorting out a design or requirements issue ...&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-17T04:19:12.587" ClosedDate="2010-11-17T06:05:42.293" Title="What simple things in your job give you joy and happiness?" Tags="&lt;productivity&gt;&lt;jobs&gt;" AnswerCount="17" CommentCount="4" FavoriteCount="1" />
  <row Id="19385" PostTypeId="1" AcceptedAnswerId="48356" CreationDate="2010-11-16T16:47:37.120" Score="1" ViewCount="322" Body="&lt;p&gt;I've been reading John Hull book (Options, Futures and Other Derivatives) mostly on curiosity. I've read other books about financial markets in the past (like Elder's Trading for Living and the novel Reminiscences of a Stock Operator). But I'm really hooked by the John Hull book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My background is mostly scientific computing: number crunching, visualization and image processing. Mostly in C++, with some C, Fortran, Python, Ruby here and there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been thinking on moving on to quantitative finance - I'd like to do that. What would be the best way to start? Any tips?&lt;/p&gt;&#xA;" OwnerUserId="6795" LastActivityDate="2011-02-16T01:36:24.693" Title="Starting a career in quantitative finance" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="2" CommentCount="4" FavoriteCount="3" />
  <row Id="19386" PostTypeId="2" ParentId="19384" CreationDate="2010-11-16T16:48:20.740" Score="4" ViewCount="" Body="&lt;p&gt;Compiling and running a program for the first time. There's something cool and exciting about seeing a program &quot;come to life&quot;.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-11-16T16:48:20.740" />
  <row Id="19387" PostTypeId="2" ParentId="19384" CreationDate="2010-11-16T16:49:43.343" Score="8" ViewCount="" Body="&lt;p&gt;Solving problems.  Each small solution is pleasant.  Finding a way to solve a difficult problem is even better.&lt;/p&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-11-16T16:49:43.343" />
  <row Id="19388" PostTypeId="2" ParentId="19384" CreationDate="2010-11-16T16:50:03.000" Score="6" ViewCount="" Body="&lt;p&gt;Getting issues closed off.  Completing code is one thing, completing it to someone else's satisfaction is better though as that's the point you've produced something which might actually be useful to someone else.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-16T16:50:03.000" />
  <row Id="19389" PostTypeId="1" AcceptedAnswerId="19417" CreationDate="2010-11-16T16:51:44.713" Score="0" ViewCount="229" Body="&lt;p&gt;I would like to take advantage of my company's willingness to pay for me to get my masters degree. Recently I've been thinking about putting in for a transfer to one of our London offices so that I could spend a couple years working abroad. So, why not kill two birds with one stone and also try to get my masters in London? Are there any programs or schools that are particularly recommended for me to look into when considering masters degrees in either Computer Science or Programming? I should also keep in mind that I will still have to work while trying to get my degree so I will need to be mindful of schedule flexibility and the availability of night classes.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-11-16T18:14:47.890" ClosedDate="2010-11-16T20:40:31.257" Title="What are some good Computer Science post graduate programs/schools in London?" Tags="&lt;career&gt;&lt;recommendations&gt;&lt;grad-school&gt;" AnswerCount="1" CommentCount="5" />
  <row Id="19390" PostTypeId="2" ParentId="19384" CreationDate="2010-11-16T16:53:27.863" Score="19" ViewCount="" Body="&lt;p&gt;Being appreciated when I solve some tough problem.  Getting that &quot;Thank you&quot; can be quite motivating at times.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-16T16:53:27.863" CommentCount="1" />
  <row Id="19391" PostTypeId="1" AcceptedAnswerId="19399" CreationDate="2010-11-16T16:57:19.140" Score="5" ViewCount="328" Body="&lt;p&gt;After reading &lt;a href=&quot;http://programmers.stackexchange.com/questions/14297/which-things-instantly-ring-alarm-bells-when-looking-at-code&quot;&gt;this question&lt;/a&gt; and it's answers, I've pretty much confirmed what I'd feared was true all along: I am a bad programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not by direct choice, though... The mish-mash of practices I do have are from the mish-mash of VB6 and VB.net that we were taught in school. Because we were unfortunate enough to be there in the middle of their transition, instead of learning one language fully, we learned two languages half-way. Along with it, we also learned a mish-mash or not-exactly-best practices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Combine that with my current job where if you even try to remotely follow best practices, you will be fired &lt;em&gt;('Test environment? What's that? Just upload it to the server and go!', 'You spend too much time and attention to detail. Just get the thing made ASAP so we can move on!')&lt;/em&gt;, and learning from experience on the job is just not an option. Heck, one time I just mentioned the word &quot;plan&quot; at a discussion on what to do to get started on the next project, and I was on their shitlist for months. Had to watch my back and make sure not to deviate from their idea of work, for when I did I was literally screamed at in the middle of the office. I was to be fired before a coworker calmed the boss down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of this culminates to one very important point. I am going to have to pick up best practices on my own in order to get out of this place. Only problem is, though I've seen many programmers complain that others don't follow them, I've not seen anyplace to go to learn best practices, either. So my question is this: &lt;strong&gt;How does one go about learning these things?!&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5169" LastActivityDate="2010-11-17T06:49:37.337" Title="Best Practices and Where to Learn Them" Tags="&lt;learning&gt;&lt;experience&gt;&lt;best-practices&gt;" AnswerCount="7" CommentCount="11" FavoriteCount="6" />
  <row Id="19392" PostTypeId="1" AcceptedAnswerId="19401" CreationDate="2010-11-16T16:57:30.873" Score="6" ViewCount="181" Body="&lt;p&gt;Okay, I'll cop to it: I'm a better coder than I am at databases, and I'm wondering where thoughts on &quot;best practices&quot; lie on the subject of doing &quot;simple&quot; calculations in the SQL query vs. in the code, such as this MySQL example (I didn't write it, I just have to maintain it!) -- This returns the username, and the users age as of the last event. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;SELECT u.username as user, &#xA;       IF ((DAY(max(e.date)) - DAY(u.DOB)) &amp;amp;lt; 0 ,   &#xA;       TRUNCATE(((((YEAR(max(e.date))*12)+MONTH(max(e.date)))&#xA;       -((YEAR(u.DOB)*12)+MONTH(u.DOB)))-1)/12, 0),  &#xA;       TRUNCATE((((YEAR(max(e.date))*12)+MONTH(max(e.date))) -            &#xA;       ((YEAR(u.DOB)*12)+MONTH(u.DOB)))/12, 0)) AS age   &#xA;FROM users as u&#xA;JOIN events as e ON u.id = e.uid&#xA;...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Compared to doing the &quot;heavy&quot; lifting in code:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Query: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;SELECT u.username, u.DOB as dob, e.event_date as edate&#xA;FROM users as u&#xA;JOIN events as e ON u.id = e.uid&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;code: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function ageAsOfDate($birth, $aod)&#xA;{    //expects dates in mysql Y-m-d format...&#xA;     list($by,$bm,$bd) = explode('-',$birth);&#xA;     list($ay,$am,$ad) = explode('-',$aod);&#xA;&#xA;     //Insert Calculations here &#xA;     ...&#xA;     return $Dy; //Difference in years&#xA;}&#xA;&#xA;echo &quot;Hey! &quot;. $row['user'] .&quot; was &quot;. ageAsOfDate($row['dob'], $row['edate']) . &quot; when we last saw him.&quot;; &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I'm pretty sure in a simple case like this it wouldn't make much difference (other than the creeping feeling of horror when I have to make changes to queries like the first one), but I think it makes it clearer what I'm looking for. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="7786" LastActivityDate="2010-12-28T19:09:28.007" Title="When is it better to offload work to the RDBMS rather than to do it in code?" Tags="&lt;best-practices&gt;&lt;php&gt;&lt;mysql&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="1" />
  <row Id="19393" PostTypeId="2" ParentId="19344" CreationDate="2010-11-16T16:58:38.687" Score="0" ViewCount="" Body="&lt;p&gt;One thing to point ou tis that the code isn't being modified via the aspects, it's being extended. It may be semantic, but the distinction is important, especially when considereing the &lt;a href=&quot;http://en.wikipedia.org/wiki/Open/closed_principle&quot; rel=&quot;nofollow&quot;&gt;open/closed principle&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, from what I can tell (looks like aspectj maybe?), your first example applies the aspect to the methods at the declaration of the aspect, wherease your second example applies the aspect via attributes on the methods. The problem you seem to have is one where anyone extending your code might not be able to figure out how to include undo into their additions using the first example.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Documentation is there for a reason. So write some for your consumers.&lt;/li&gt;&#xA;&lt;li&gt;Use a different design to implement the functionality for them.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I believe that something like the following will work: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public abstract class ImageOperation&#xA;{&#xA;    @undoable_action&#xA;    public abstract void Action(Image img);&#xA;}&#xA;&#xA;public class Flood_Fill : ImageOperation&#xA;{&#xA;    public void Action(Image img)&#xA;    {&#xA;        // flood-fill&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now, having abstracted away the image operations, you can supply ImageOperation in a different .dll than your program, and you can use it as the base for ImageOperation plugins, so that others don't need to see your code &lt;em&gt;at all&lt;/em&gt; to produce an operation, and you still implicitly provide undo for them.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-16T16:58:38.687" CommentCount="2" />
  <row Id="19394" PostTypeId="2" ParentId="19348" CreationDate="2010-11-16T17:02:38.743" Score="1" ViewCount="" Body="&lt;p&gt;I'm currently using JPA/hibernate/hsqldb(test), mysql(deployment). Not very difficult to do especially if you use maven to handle dependencies. Failing that (and you don't want to use hibernate) - you could try OpenJPA.&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-16T17:02:38.743" />
  <row Id="19395" PostTypeId="2" ParentId="19359" CreationDate="2010-11-16T17:05:16.327" Score="0" ViewCount="" Body="&lt;p&gt;I read somewhere that those who consider themselves creative are the ones who are generally more creative in their work or brainstorming.  In other words, it strongly suggests that a creative person is a person who's simply not afraid of thinking differently.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think a large part of &quot;thinking outside the box&quot; is getting a handle on the problem.  If you understand the problem well, you will see that sometimes the wording of the question is misleading or would lead people to think down a very specific path when in fact there remains an obvious solution standing in front of you.  The other day there was a question on stackoverflow.com in which a person was attempting to convert a input textbox into a textarea once it reached a certain number of characters (I think it was 10).  In his complicated solution, it would carry the 10 characters but nothing that exceeded it, which meant that typing quickly frustratingly removed anything beyond 10 characters.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;With his code posted, many people were trying to correct it and provide suggestions to retaining the value.  I suggested he retain textarea and forget the textbox altogether, modifying only the attribute rows.  I saw outside the box not because I'm such a clever guy but because I tried to understand his objective:  make an text input field that grows with increasing text.  When you put it that way, it seems silly to start with a textbox and then replace it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just my 10 cents.  ;)&lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-16T17:05:16.327" />
  <row Id="19396" PostTypeId="2" ParentId="19278" CreationDate="2010-11-16T17:08:32.127" Score="0" ViewCount="" Body="&lt;p&gt;Maybe flip it around: if you found out this person was (say) a former World Cup soccer champion, or had received the Congressional Medal of Honor, would you be &lt;em&gt;more&lt;/em&gt; likely to hire them?  Either way, I think it's totally valid to use this information when making your decision.  For example, if the candidate professed serious political/religious/racist beliefs, you should consider whether they would integrate well with the rest of the department.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-16T17:08:32.127" />
  <row Id="19397" PostTypeId="1" AcceptedAnswerId="19441" CreationDate="2010-11-16T17:12:16.367" Score="6" ViewCount="330" Body="&lt;p&gt;One day while trawling through the Java language documentation, as you do, I found this little beauty &lt;a href=&quot;http://download.oracle.com/javase/6/docs/api/java/lang/Double.html#toHexString%28double%29&quot; rel=&quot;nofollow&quot;&gt;lurking within Double&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;0.25 == 0x1.0p-2&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now, obviously (!) this means take the number hexadecimal 1 and right shift it decimal 2 times. The rule seems to be to use base 16 on the integer side and base 2 on the real side. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone out there &lt;strong&gt;actually used the right hand syntax&lt;/strong&gt; in a necessary context, not just as a way getting beers out of your fellow developers?&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-16T18:31:35.800" LastActivityDate="2010-11-16T20:15:44.383" Title="Why would anyone need this java syntax?" Tags="&lt;java&gt;&lt;language-features&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="1" />
  <row Id="19398" PostTypeId="2" ParentId="19391" CreationDate="2010-11-16T17:13:16.960" Score="1" ViewCount="" Body="&lt;p&gt;A few links that hopefully help give an idea of where one could start:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/practices/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Microsoft's Patterns &amp;amp; Practices&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://refactoring.com/&quot; rel=&quot;nofollow&quot;&gt;Refactoring&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;The Joel Test&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/magazine/cc337902.aspx&quot; rel=&quot;nofollow&quot;&gt;What is ALT .NET?&lt;/a&gt; and &lt;a href=&quot;http://altnetpedia.com/Default.aspx?&quot; rel=&quot;nofollow&quot;&gt;Altnetpedia&lt;/a&gt; &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Edit: Corrected bottom links on Alt.net which is a cool community as I recall.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastEditorUserId="4327" LastEditorDisplayName="" LastEditDate="2010-11-17T01:56:13.287" LastActivityDate="2010-11-17T01:56:13.287" CommentCount="1" />
  <row Id="19399" PostTypeId="2" ParentId="19391" CreationDate="2010-11-16T17:16:30.520" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2004/02/recommended-reading-for-developers.html&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/2004/02/recommended-reading-for-developers.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7478" LastActivityDate="2010-11-16T17:16:30.520" CommentCount="3" />
  <row Id="19400" PostTypeId="2" ParentId="19292" CreationDate="2010-11-16T17:17:17.740" Score="0" ViewCount="" Body="&lt;p&gt;For windows I highly recommend AutoIt (http://autoitscript.com). Make sure to install the Scite package from the downloads section.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://autoitscript.com/forum&quot; rel=&quot;nofollow&quot;&gt;http://autoitscript.com/forum&lt;/a&gt; is a great resource for getting help and finding UDF's function to include in scripts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;AutoIt is able to control application windows and controls allowing you automate just about anything. It also requires no dependencies after you compile you executable.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-16T17:17:17.740" />
  <row Id="19401" PostTypeId="2" ParentId="19392" CreationDate="2010-11-16T17:24:17.853" Score="7" ViewCount="" Body="&lt;p&gt;You want to do all set-based operations in the database for performance reasons. So aggregation functions, sorting functions, joins etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This age calculation, I'd do in code. The only reason I might ever do something like this in a database query is if it required lots of columns that I wouldn't otherwise select that could actually amount to enough data to meaningfully slow down my query. Selecting a few integer values will not make a meaningful performance difference. And even if it makes a moderate performance difference I will be biased towards keeping this logic in the application code.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-16T17:24:17.853" />
  <row Id="19402" PostTypeId="2" ParentId="19397" CreationDate="2010-11-16T17:24:45.450" Score="4" ViewCount="" Body="&lt;p&gt;Completely insane, right? Many, many moons ago I worked with a guy that would write stuff like that. He came from an assembly background and would argue that his code would run faster than what the compiler would produce. I think this argument went away decades ago (along with programmers with an assembly background !)&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-11-16T17:24:45.450" CommentCount="4" />
  <row Id="19403" PostTypeId="2" ParentId="19385" CreationDate="2010-11-16T17:27:18.477" Score="0" ViewCount="" Body="&lt;p&gt;A lot of this work is done in SAS so you might consider learning that. You might have to move to a transition job first, for example focusing on business intelligence technology to get close to a group doing this kind of work and then moving over as you learn their business and can demonstrate these skills.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-16T17:27:18.477" CommentCount="3" />
  <row Id="19404" PostTypeId="2" ParentId="19392" CreationDate="2010-11-16T17:27:59.393" Score="1" ViewCount="" Body="&lt;p&gt;You mentioned one: area of expertise. Maybe the structure of the database isn't too intensive, so you decide to offload some of the logic development to a team member that is more database centric. May not be ideal, but if you're crunched for time...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The database hardware has significantly more resources than other servers and you can't change this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are other applications that may need the logic outside of your code. Some report writing tools may not be able to utilize a web service or an API. You could duplicate the logic or if you feel the requirements may diverge.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-16T17:27:59.393" CommentCount="5" />
  <row Id="19405" PostTypeId="2" ParentId="19392" CreationDate="2010-11-16T17:43:45.700" Score="1" ViewCount="" Body="&lt;p&gt;Basically you should look at two things:  CPU usage and network traffic.  You should not generate enormeous responses, transfer them over the network and then summarize in the frontend, as the database can do this much better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For data &lt;em&gt;manipulation&lt;/em&gt; it is a trade-of.  If the database spends comparable amount of cpu cycles to your frontend code doing the same thing - given that the amount of data transferred is roughly equivalent), then it doesn't matter where.  Then do it where you have the largest amount of programming expertise.   Frequently, you can get a VERY long way with a careful select and that might be very useful.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-16T17:43:45.700" />
  <row Id="19406" PostTypeId="2" ParentId="1913" CreationDate="2010-11-16T17:49:11.203" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.eclipse.org/&quot; rel=&quot;nofollow&quot;&gt;Eclipse&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-11-16T17:49:11.203" CommunityOwnedDate="2010-11-16T17:49:11.203" />
  <row Id="19407" PostTypeId="2" ParentId="19392" CreationDate="2010-11-16T17:49:18.477" Score="0" ViewCount="" Body="&lt;p&gt;Each case is different&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is the logic...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;needed by other clients? DRY: in the database&lt;/li&gt;&#xA;&lt;li&gt;used for further processing? eg sort by age descending: in the database&lt;/li&gt;&#xA;&lt;li&gt;requires regional settings? dd/mm/yyyy or mm/dd/yyyy: in the client&lt;/li&gt;&#xA;&lt;li&gt;used often? Why calculate it again and again: use computed and persisted column in the database&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In &lt;em&gt;this&lt;/em&gt; case, I might use a computed and persisted column in the database&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It could be worse: you could have this in the database:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&quot;Hey! &quot;. u.username.&quot; was &quot;. &amp;lt;datecalc&amp;gt;. &quot; when we last saw him.&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-11-16T17:49:18.477" />
  <row Id="19408" PostTypeId="1" AcceptedAnswerId="19420" CreationDate="2010-11-16T17:51:57.720" Score="21" ViewCount="1198" Body="&lt;p&gt;Which are must have tools for &lt;em&gt;web development&lt;/em&gt; under windows?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can include tools such as design, coding etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Please post only &lt;strong&gt;one&lt;/strong&gt; and the &lt;strong&gt;best tool in your opinion&lt;/strong&gt; for each &lt;strong&gt;type&lt;/strong&gt; of tools. For instance post only the name of the best design tool and not a list of them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; By tools I don't necessary mean small softwares.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I didn't find this question, hope no one has already asked it.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-11-16T19:26:48.980" LastActivityDate="2011-02-05T20:54:22.923" CommunityOwnedDate="2010-12-15T13:45:54.590" Title="What are must have tools for web development?" Tags="&lt;web-development&gt;&lt;tools&gt;&lt;software&gt;&lt;windows&gt;" AnswerCount="38" CommentCount="6" FavoriteCount="24" />
  <row Id="19409" PostTypeId="2" ParentId="19351" CreationDate="2010-11-16T17:56:14.997" Score="1" ViewCount="" Body="&lt;p&gt;I have about 40 technical blogs mostly SQL Server. This exclude the obligatory El Reg, xkcd and Dilbert.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I add as I find new ones, cull as I see the quality drop...&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-11-16T17:56:14.997" />
  <row Id="19410" PostTypeId="2" ParentId="19359" CreationDate="2010-11-16T17:58:14.060" Score="0" ViewCount="" Body="&lt;p&gt;Since we are adding varying amounts of cents here, I will add some of mine.&lt;br/&gt;&#xA;As someone who has consistently been described as an out of the box thinker by many of my clients and peers, here are some tips.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;There is no algorithm&lt;/strong&gt;..but here are helpful some activities..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1. Puzzles&lt;/strong&gt;&lt;br/&gt;&#xA;One thing I have always enjoyed is having fun with my brain and doing puzzles. Lots and lots of puzzles, specifically the MENSA variety. Buy yourself a book or two of those MENSA puzzles that require lateral thinking. Don't get frustrated, if you get stuck, read the answer and learn how to solve it. Similar puzzles will have similar solutions, and once you learn how to solve it, you will learn the pattern.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2. Pet Programming Projects&lt;/strong&gt;&lt;br/&gt;&#xA;Learn as much as you can about the language that you work in. Make pet projects for yourself and work on them in your spare time. The more you know what's available in your particular language, the more avenues for solution you will have. Take other peoples' code and make it do different things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3. Question Everything, Don't be Shy&lt;/strong&gt;&lt;br/&gt;&#xA;If asking questions makes you feel like you are stupid, then be stupid, no shame in that. Learning comes from admitting you know nothing and wanting to grow. Make sure you know the basics, because the advanced stuff always grows off of that, and if your foundation is not solid, the knowledge you build on top of that will always be flawed in some way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;4. Unexpected&lt;/strong&gt;&lt;br/&gt;&#xA;Don't dismiss any fleeting idea you come up with until you know exactly what is wrong with it. The best solutions often come from the most unexpected ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck.&lt;/p&gt;&#xA;" OwnerUserId="7441" LastEditorUserId="7441" LastEditorDisplayName="" LastEditDate="2010-11-16T18:42:13.587" LastActivityDate="2010-11-16T18:42:13.587" />
  <row Id="19411" PostTypeId="2" ParentId="19351" CreationDate="2010-11-16T17:58:19.650" Score="0" ViewCount="" Body="&lt;p&gt;I have &lt;strong&gt;46 software blog subscriptions&lt;/strong&gt; in my Google reader.  Wow, &lt;strong&gt;40-50 seems to be a popular number!&lt;/strong&gt; (I see other responders posted 40, 44 and 53).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think my number is about enough.  I also follow enough many software professionals on Twitter so if there is a must-read blog post posted on some blog that I don't subscribe to, I'm unlikely to miss it.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-16T17:58:19.650" />
  <row Id="19412" PostTypeId="2" ParentId="19351" CreationDate="2010-11-16T18:01:02.673" Score="1" ViewCount="" Body="&lt;p&gt;I don't read a lot of specific blogs. I let others show me the best. I read from reddit's programming, hacker news, etc... This lets me see a broad collection of blogs, vetted by the community, and allows for discussion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll bookmark things (or use the &quot;read later&quot; tool) for reading stuff later, and work my way through that content.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used to read things like Coding Horror, but honestly Atwood's gotten really boring and irrelevant... relative to his older posts anyway. I have blog authors that I really enjoy, like Bruce Schneier, but I'll only visit that after having it pointed out to me on a discussion group that he talked about something interesting.&lt;/p&gt;&#xA;" OwnerUserId="1525" LastActivityDate="2010-11-16T18:01:02.673" />
  <row Id="19413" PostTypeId="1" AcceptedAnswerId="19428" CreationDate="2010-11-16T18:01:13.620" Score="4" ViewCount="115" Body="&lt;p&gt;Our intranet is running an in house developed ASP.NET application. In our team I am the only technical person so this means my role is everything from development to server administration to &quot;the printer isn't working&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a couple of months once a major rewrite is finished I am taking a couple of weeks holiday and we need to get someone in to cover for this period. I am at a loss of what skill set we should be looking for to cover over a short term. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being a major upgrade there will of course be bugs, though it will be up long enough to deal with any that are particularly worrisome and/or common. From this point of view I'm thinking that given the short timescales getting in a developer would be the wrong choice (small bugs can wait, big bad bugs that area left would likely be the sort that experience and time to learn the system would be needed to fix, I am of course insisting on a laptop and VPN to deal with this if it happens).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looking this way I'm thinking that someone with server administration skills would be the preferable route (able to keep the servers up if they go down, restart services if needed etc), though it still leaves a lot of leeway in the specifics to look for. Also despite the above opinion on getting a developer, being able to look through the code to pinpoint where a bug is interacting with the servers could of course be useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Half the problem is of course that there's lots to cover with nothing in particular standing out as the big area to focus on. Here's a breakdown of what we have, any advice or ideas would be greatly appreciated.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In house ASP MVC2 application, includes some custom JavaScript on the front end&lt;/li&gt;&#xA;&lt;li&gt;Legacy ASP Classic (some areas of the intranet that aren't yet upgraded, running in tandem with the MVC application)&lt;/li&gt;&#xA;&lt;li&gt;Mediawiki install running on Apache and MySql on Windows&lt;/li&gt;&#xA;&lt;li&gt;Servers are running Windows 2008 and SQL2008&lt;/li&gt;&#xA;&lt;li&gt;Powershell backup scripts&lt;/li&gt;&#xA;&lt;li&gt;Simple C# reverse proxy (the intranet uses Windows authentication, we allow an external organisation access to the intranet so this proxy acts as their gateway and authenticates as a known generic user)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6366" LastActivityDate="2010-11-16T19:07:17.610" Title="What to look for in someone to provide short-term cover for a lone developer?" Tags="&lt;web-development&gt;&lt;recommendations&gt;&lt;hiring&gt;&lt;skills&gt;&lt;recruiting&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="19414" PostTypeId="2" ParentId="19359" CreationDate="2010-11-16T18:06:20.143" Score="1" ViewCount="" Body="&lt;p&gt;By solving this puzzle. You must connect all the (equidistant) dots in exactly 4 straight lines:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;. . .&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;. . .&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;. . . &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;BTW This was &lt;a href=&quot;http://en.wikipedia.org/wiki/Thinking_outside_the_box&quot; rel=&quot;nofollow&quot;&gt;the original out of the box question&lt;/a&gt;, because...&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-16T18:28:28.970" LastActivityDate="2010-11-16T18:28:28.970" CommentCount="1" />
  <row Id="19415" PostTypeId="2" ParentId="18578" CreationDate="2010-11-16T18:13:05.503" Score="0" ViewCount="" Body="&lt;p&gt;Have you seen the Head First PMP book?  I am a programmer and just got it because it looked interesting.  It's been easy to follow so far, and may be a good place for you to get started.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Link to the book on Amazon:&#xA;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596801912&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Head-First-Pmp-Brain-Friendly-Professional/dp/0596801912/ref=sr_1_1?ie=UTF8&amp;amp;qid=1289931006&amp;amp;sr=8-1&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-11-16T18:13:05.503" />
  <row Id="19416" PostTypeId="1" AcceptedAnswerId="19421" CreationDate="2010-11-16T18:13:44.567" Score="2" ViewCount="123" Body="&lt;p&gt;Hopefully the topic is not too confusing, I am curious though as lately I have seen more and more use of the word parameter to denote a function's passed in values, whereas during my studies I feel as if argument was used almost exclusively.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is parameter more appropriate as argument is more specific to a programs arguments specific at runtime whereas when a function is called, the values passed to it are parameters to the function itself? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a curious programmer. &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-11-20T15:14:56.737" Title="Is argument or parameter considered more appropriate for a function/method argument/parameter?" Tags="&lt;semantics&gt;" AnswerCount="4" />
  <row Id="19417" PostTypeId="2" ParentId="19389" CreationDate="2010-11-16T18:14:47.890" Score="2" ViewCount="" Body="&lt;p&gt;You'll find that the educational system in the UK is quite a bit different from the US. (I assume you're in the US.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the US, a graduate student's timeline is, roughly:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Apply to several universities and hope that one accepts you.&lt;/li&gt;&#xA;&lt;li&gt;Take classes to fulfill coursework requirements.&lt;/li&gt;&#xA;&lt;li&gt;Find a research advisor.&lt;/li&gt;&#xA;&lt;li&gt;Do research.&lt;/li&gt;&#xA;&lt;li&gt;Write a dissertation/thesis.&lt;/li&gt;&#xA;&lt;li&gt;Emerge 2-3 years later (Master's), 5-7 years for PhD.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In my experience with the University of Kent (Canterbury, UK), the timeline is:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Find a research advisor and hammer out a research topic.&lt;/li&gt;&#xA;&lt;li&gt;Apply to the university where the advisor works. Be accepted.&lt;/li&gt;&#xA;&lt;li&gt;Do research.&lt;/li&gt;&#xA;&lt;li&gt;Write a dissertation/thesis.&lt;/li&gt;&#xA;&lt;li&gt;Emerge 1 year later (Master's), 3 years later for PhD.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The primary differences are a) there is no coursework, and b) you find a research advisor &lt;em&gt;before&lt;/em&gt; you apply. Filling out the application paperwork is just a formality -- if an advisor will take you on as a student, you're in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some universities have what is called a &quot;taught programme&quot; in which you get a Master's by taking courses. Or you'll get a choice: earn an MSci by taking courses or an MPhil by doing a dissertation. Either way it's a Master's.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At Kent, graduate students can begin their programme anytime. There is no application deadline. They'd prefer that you begin in September, but it's not required.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2010-11-16T18:14:47.890" CommentCount="1" />
  <row Id="19418" PostTypeId="2" ParentId="19416" CreationDate="2010-11-16T18:20:55.590" Score="0" ViewCount="" Body="&lt;p&gt;In college, I was taught that the correct term is &quot;argument&quot;.  I think either are appropriate and both definitions are obvious to most developers, but, from a technical standpoint, I generally stick with &quot;argument&quot;.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-11-16T18:20:55.590" />
  <row Id="19419" PostTypeId="1" AcceptedAnswerId="19431" CreationDate="2010-11-16T18:21:29.707" Score="15" ViewCount="465" Body="&lt;p&gt;&lt;em&gt;In web development, a mashup is a web page or application that uses and &lt;strong&gt;combines data&lt;/strong&gt;, presentation or functionality from two or more sources to create new services.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many sources for getting data (raw information). Governments are good examples.&lt;br&gt;&#xA;However many of those cost and have complicated licensing.&#xA;For instance SMHI in Sweden sells temperature data meanwhile our neighbor country Norway gives it away for free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One would say what kind of application are you building and what data do you need?  I would say give me some interesting data and I will do a good mashup of it. I could just plot it on Google maps for instance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the question is: &lt;strong&gt;Where can I get free data?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: I'm not interested in data mining using a webcrawler!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please share your sources with me.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-11-16T19:05:28.313" LastActivityDate="2010-12-18T05:33:19.903" Title="Where can I get free public raw data?" Tags="&lt;resources&gt;" AnswerCount="10" CommentCount="8" FavoriteCount="12" />
  <row Id="19420" PostTypeId="2" ParentId="19408" CreationDate="2010-11-16T18:23:59.233" Score="51" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://getfirebug.com/&quot; rel=&quot;nofollow&quot;&gt;Firebug&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Firebug integrates with Firefox to put&#xA;  a wealth of web development tools at&#xA;  your fingertips while you browse. You&#xA;  can edit, debug, and monitor CSS,&#xA;  HTML, and JavaScript live in any web&#xA;  page.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6735" LastActivityDate="2010-11-16T18:23:59.233" CommunityOwnedDate="2010-12-15T13:45:54.590" CommentCount="5" />
  <row Id="19421" PostTypeId="2" ParentId="19416" CreationDate="2010-11-16T18:24:43.730" Score="6" ViewCount="" Body="&lt;p&gt;See t&lt;a href=&quot;http://en.wikipedia.org/wiki/Parameter_%28computer_science%29#Parameters_and_arguments&quot; rel=&quot;nofollow&quot;&gt;his article&lt;/a&gt; in wikipedia with a good explanation.&#xA;The difference is that parameters appear in method/function definitions, while arguments are concrete values you pass to a method/function.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-11-16T18:24:43.730" CommentCount="1" />
  <row Id="19422" PostTypeId="2" ParentId="19408" CreationDate="2010-11-16T18:25:03.913" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://jsfiddle.net/&quot; rel=&quot;nofollow&quot;&gt;JsFiddle&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;JsFiddle is a playground for web&#xA;  developers, a tool which may be used&#xA;  in many ways. One can use it as an&#xA;  online editor for snippets build from&#xA;  HTML, CSS and JavaScript. The code can&#xA;  then be shared with others, embedded&#xA;  on a blog, etc. Using this approach,&#xA;  JavaScript developers can very easily&#xA;  isolate bugs. &lt;strong&gt;We aim to support all&#xA;  actively developed frameworks&lt;/strong&gt; - it&#xA;  helps with testing compatibility.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes, you read that right.  JsFiddle is a web based sandbox/editor for HTML, CSS, and JavaScript - and it supports jQuery, MooTools, and more (and multiple versions!).  It also integrates with GitHub for saving and sharing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is one of the awesomest tools I've been shown in a good while.&lt;/p&gt;&#xA;" OwnerUserId="6735" LastEditorUserId="6735" LastEditorDisplayName="" LastEditDate="2010-11-16T21:33:04.660" LastActivityDate="2010-11-16T21:33:04.660" CommunityOwnedDate="2010-12-15T13:45:54.590" CommentCount="3" />
  <row Id="19423" PostTypeId="2" ParentId="19408" CreationDate="2010-11-16T18:25:50.353" Score="18" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.fiddler2.com/fiddler2/&quot; rel=&quot;nofollow&quot;&gt;Fiddler2&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Fiddler is a Web Debugging Proxy which&#xA;  logs all HTTP(S) traffic between your&#xA;  computer and the Internet. Fiddler&#xA;  allows you to inspect all HTTP(S)&#xA;  traffic, set breakpoints, and &quot;fiddle&quot;&#xA;  with incoming or outgoing data.&#xA;  Fiddler includes a powerful&#xA;  event-based scripting subsystem, and&#xA;  can be extended using any .NET&#xA;  language.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6735" LastActivityDate="2010-11-16T18:25:50.353" CommunityOwnedDate="2010-12-15T13:45:54.590" CommentCount="1" />
  <row Id="19424" PostTypeId="2" ParentId="19416" CreationDate="2010-11-16T18:29:08.277" Score="4" ViewCount="" Body="&lt;p&gt;Given a function defined like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int f(int y) { /* ... */ }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and a call like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int a = 3;&#xA;f(a);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;y&lt;/code&gt; is the parameter (aka &quot;formal parameter&quot;), and &lt;code&gt;a&lt;/code&gt; is the argument.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-16T18:29:08.277" />
  <row Id="19425" PostTypeId="1" AcceptedAnswerId="19433" CreationDate="2010-11-16T18:32:35.823" Score="4" ViewCount="175" Body="&lt;p&gt;What are the pros and cons of having static object creation methods over constructors?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Foo {&#xA;  private Foo(object arg) { }&#xA;&#xA;  public static Foo Create(object arg) {&#xA;    if (!ValidateParam(arg)) { return null; }&#xA;    return new Foo(arg);&#xA;  }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Few that I can think of:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pros:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Return null instead of throwing an exception (name it &lt;code&gt;TryCreate&lt;/code&gt;). This can make code more terse and clean on the client side. Clients rarely expect a constructor to fail.&lt;/li&gt;&#xA;&lt;li&gt;Create different kinds of objects with clear semantics, e.g. &lt;code&gt;CreatFromName(String name)&lt;/code&gt; and &lt;code&gt;CreateFromCsvLine(String csvLine)&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Can return a cached object if necessary, or a derived implementation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Cons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Less discoverable, more difficult to skim code. &lt;/li&gt;&#xA;&lt;li&gt;Some patterns, like serialization or reflection are more difficult (e.g. &lt;code&gt;Activator&amp;lt;Foo&amp;gt;.CreateInstance()&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2193" LastActivityDate="2010-11-16T19:25:10.990" Title="Static Create method -- pros and cons compared with constructors" Tags="&lt;design-patterns&gt;" AnswerCount="2" CommentCount="3" />
  <row Id="19426" PostTypeId="2" ParentId="19413" CreationDate="2010-11-16T18:49:07.327" Score="1" ViewCount="" Body="&lt;p&gt;One thing would be proven ability to quickly pick things up. I'm sure everyone would say they're a quick learner, so in this case having the candidate describe a specific situation where they had very little time to learn a new system would be good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Combine that with looking for applicants who match most of your technical requirements and you should be able to narrow things down some.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-11-16T18:49:07.327" />
  <row Id="19427" PostTypeId="1" AcceptedAnswerId="20086" CreationDate="2010-11-16T18:56:41.737" Score="3" ViewCount="211" Body="&lt;p&gt;I've built a ASP.NET MVC 3 (RC at the moment) site that uses OpenID login system. I was still learning about OpenID while implementing this so I commented the code heavily. The result is a site that let's users login/register with OpenID, add other OpenIDs to their account and also remove them. This little project can be then used as a starting point for any new project that would use OpenID login system. It can also be used as a resource for people to learn OpenID with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I decided to release this project as open source. This will be my first open source project and I need to decided what license to use. I want people to be able to use this for any purpose they wish for. They can learn from it, use it for commercial or non-commercial projects and make their own forks of the code. It would also be nice for others to be able to contribute back to the project with stuff like bug fixes on sites like GitHub. But I'd like to be the copyright owner of the code that is under my control. For example the code that is in my GitHub repository (I'll call this the main code base). I've heard that for this I need to get every contributor, that adds code to this code base, to give me the copyright for their contribution. How exactly does this work?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also use other licensed (mostly open source) resources in my projects. Here's their list and their licenses:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;DotNetOpenAuth (Ms-PL)&lt;/li&gt;&#xA;&lt;li&gt;T4MVC (part of MvcContrib which is licesned using Apache License 2.0)&lt;/li&gt;&#xA;&lt;li&gt;ASP.NET MVC (Ms-PL)&lt;/li&gt;&#xA;&lt;li&gt;ADO.NET Entity Framework CTP4 (I couldn't find a license)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I of course want to use the main code base for any type of projects I want. Commercial, non-commercial, open source, ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I have some very important questions here:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Which license should I use? I think GPL or LGPL is not suitable here. I was looking at Apache 2, New BSD, MIT and Ms-PL. Ms-PL seems to be a good fit as, but I'm not sure.&lt;/li&gt;&#xA;&lt;li&gt;What restrictions and/or obligations do I have towards the resources I use in this project? I think I read somewhere that I have to add -LICENSE.txt for Ms-PL resources. Is that true? How does this work for Apache 2 and other licenses? What do I have to do if I modify any of these resources' code and then use that in my project?&lt;/li&gt;&#xA;&lt;li&gt;I'd also really like a &quot;as-is&quot; clause in the license, so people can't sue me if something goes wrong while they're using my code.&lt;/li&gt;&#xA;&lt;li&gt;Do I need to add anything to my files to make clear what the license is? If so, how do I format that?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Also one last thing. If I decide to make a Visual Studio template out of this samples how do I license that?&lt;/p&gt;&#xA;" OwnerUserId="7737" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-19T17:58:36.900" LastActivityDate="2010-11-19T17:58:36.900" Title="Which Open Source License to choose for an ASP.NET MVC 3 OpenId StarterKit?" Tags="&lt;open-source&gt;&lt;license&gt;" AnswerCount="2" CommentCount="5" FavoriteCount="0" />
  <row Id="19428" PostTypeId="2" ParentId="19413" CreationDate="2010-11-16T18:56:54.890" Score="4" ViewCount="" Body="&lt;p&gt;I think your instincts are correct - find someone to handle server admin and the occasional user-level tech support, and leave the programming changes until you get back.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-16T18:56:54.890" CommentCount="1" />
  <row Id="19429" PostTypeId="2" ParentId="19413" CreationDate="2010-11-16T19:07:17.610" Score="0" ViewCount="" Body="&lt;p&gt;Here are a few areas that I'd consider trying to nail down some details about:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;What kind of ramp-up time do you want for this position?  Is this someone showing up the day before you leave, the week, or the month?  While you do have a few technologies, there are likely to be some applicants where I'd almost want to give them a task that would happen while you are away,e.g. restarting a server or assisting with some support request possibly.  There is the side of how soon is your vacation, but also when would you want this person to start?  If someone was looking for a job now and you didn't want them to start for the next 6 weeks, this could be an issue.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;What kinds of administrative tasks would this person have?  For example, is there a daily backup of a database?  Are there server configuration changes to implement?  Is this temporary position just to cover cases where the server has to be restarted or could there be more complicated work to do like trying to optimize the performance of a server?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When you get back, what should this person's role be?  Is it as simple that they were brought in on a contract basis and only required for the short time of the contract or is there more that could be done here?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-16T19:07:17.610" />
  <row Id="19430" PostTypeId="2" ParentId="19391" CreationDate="2010-11-16T19:08:05.943" Score="1" ViewCount="" Body="&lt;p&gt;You learn best practices from your own experiences, and from the experiences of others. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As others have said this is often books, blog posts, forums like this one, etc. While i'm not sure we have, as an industry, reached a universally agreed upon set of 'best practices' for every problem, there are at least ways of doing things that have been more successful than not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One good way I could think of might be to study open-source projects that have been successful in both maintaining and scaling their offering. (This is conceptual, as I've never done it myself...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And seriously... keep yourself open for a new job. Economy and workplace aside, I feel like I have learned so much more by changing jobs and getting experience with the different ways of doing things.&lt;/p&gt;&#xA;" OwnerUserId="1215" LastActivityDate="2010-11-16T19:08:05.943" />
  <row Id="19431" PostTypeId="2" ParentId="19419" CreationDate="2010-11-16T19:10:52.947" Score="8" ViewCount="" Body="&lt;p&gt;For general information, a good place to start might be &lt;a href=&quot;http://en.wikipedia.org/wiki/Open_Data&quot; rel=&quot;nofollow&quot;&gt;Wikipedia's Open Data page&lt;/a&gt; - specifically the bottom parts of the page (&lt;a href=&quot;http://en.wikipedia.org/wiki/Open_Data#Organisations_promoting_open_data&quot; rel=&quot;nofollow&quot;&gt;Organisations promoting open data&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Open_Data#See_also&quot; rel=&quot;nofollow&quot;&gt;See also&lt;/a&gt;, and &lt;a href=&quot;http://en.wikipedia.org/wiki/Open_Data#External_links&quot; rel=&quot;nofollow&quot;&gt;External Links&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was going to turn the rest of this post into a list of data sources for country and regional based data ... but the &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Guardian&quot; rel=&quot;nofollow&quot;&gt;Guardian UK Newspaper&lt;/a&gt; has already gone and compiled a &lt;a href=&quot;http://www.guardian.co.uk/world-government-data&quot; rel=&quot;nofollow&quot;&gt;World Government Data Store&lt;/a&gt; so no point duplicating the effort, instead I'll just point to...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.guardian.co.uk/world-government-data&quot; rel=&quot;nofollow&quot;&gt;guardian.co.uk/world-government-data&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...for a catalog of a lot of different country and city level Open Data Initiatives.&lt;br&gt;&#xA;(It's not UK based, though it does seem to focus on English-speaking countries.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At time of edit, it contains data for UK, US, Australia, Canada, New Zealand, and Basque Spain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing not listed on there but worth mentioning is the &lt;a href=&quot;http://www.ordnancesurvey.co.uk/oswebsite/opendata/&quot; rel=&quot;nofollow&quot;&gt;Ordnance Survey UK mapping data&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="89" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-17T15:00:05.177" LastActivityDate="2010-11-17T15:00:05.177" CommentCount="1" />
  <row Id="19432" PostTypeId="2" ParentId="19391" CreationDate="2010-11-16T19:15:37.923" Score="0" ViewCount="" Body="&lt;p&gt;Most best practices will seem like solutions in search of problems and not sink in until you've seen firsthand what happens when they're violated and also understand what exceptions exist.  I'd recommend reading lots of programming blogs, but only after you feel that you've identified a problem with your code (like not being able to understand or modify something you wrote 6 months ago) and are open to solutions.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-16T19:15:37.923" />
  <row Id="19433" PostTypeId="2" ParentId="19425" CreationDate="2010-11-16T19:17:38.967" Score="3" ViewCount="" Body="&lt;p&gt;The biggest drawback with static 'creators' is probably limiting inheritance. If you or the user of your library derives a class from your Foo, then Foo::Create() becomes pretty much useless. All logic defined there will have to be rewritten again in the inherited Create().&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd suggest a compromise: define a constructor with trivial object initialization logic that never fails/throws, then define creator(s) with caching, alternate construction etc. You leave the possibility of deriving and you benefit from having creators for a given class.&lt;/p&gt;&#xA;" OwnerUserId="5635" LastEditorUserId="5635" LastEditorDisplayName="" LastEditDate="2010-11-16T19:25:10.990" LastActivityDate="2010-11-16T19:25:10.990" />
  <row Id="19434" PostTypeId="2" ParentId="19408" CreationDate="2010-11-16T19:24:12.177" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyId=04D26402-3199-48A3-AFA2-2DC0B40A73B6&amp;amp;displaylang=en&quot; rel=&quot;nofollow&quot;&gt;Virtual PC&lt;/a&gt; combined with &lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyId=21EABB90-958F-4B64-B5F1-73D0A413C8EF&amp;amp;displaylang=en&quot; rel=&quot;nofollow&quot;&gt;these VPC Hard Disk Images&lt;/a&gt; for testing your site with different versions of Internet Explorer in an isolated environment.&lt;/p&gt;&#xA;" OwnerUserId="45" LastActivityDate="2010-11-16T19:24:12.177" CommunityOwnedDate="2010-12-15T13:45:54.590" CommentCount="4" />
  <row Id="19435" PostTypeId="2" ParentId="19425" CreationDate="2010-11-16T19:25:04.960" Score="3" ViewCount="" Body="&lt;p&gt;Create is a Factory method.  When I feel a need for this, I implement the Factory pattern, and define an interface to represent the contract for creating the object as well as an implementing class, which then gets injected where needed.  This retains the advantages of moving the creation responsibility out of the class, but avoids (or at least makes more obvious) the limitations of performing object creation outside the class constructor.&lt;/p&gt;&#xA;" OwnerUserId="6735" LastActivityDate="2010-11-16T19:25:04.960" />
  <row Id="19436" PostTypeId="2" ParentId="19408" CreationDate="2010-11-16T19:25:59.313" Score="0" ViewCount="" Body="&lt;p&gt;A good editor. I use &lt;a href=&quot;http://www.kedit.com&quot; rel=&quot;nofollow&quot;&gt;KEDIT&lt;/a&gt;, an emulation of VM-CMS XEDIT, although any good editor will do.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-11-16T19:25:59.313" CommunityOwnedDate="2010-12-15T13:45:54.590" CommentCount="1" />
  <row Id="19437" PostTypeId="1" AcceptedAnswerId="19459" CreationDate="2010-11-16T19:26:08.853" Score="2" ViewCount="175" Body="&lt;p&gt;I've been looking at the Ms-PL license that ASP.NET MVC and DotNetOpenAuth are published under and 3A says this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;3 Conditions and Limitations&#xA;&#xA;(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Does this mean that I cannot name my project ASP.NET MVC DotNetOpenAuth Sample Project and publish it if I use these two technologies or does it just mean that I cannot use the author's name to promote this project?&lt;/p&gt;&#xA;" OwnerUserId="7737" LastEditorUserId="2471" LastEditorDisplayName="" LastEditDate="2010-11-16T20:49:47.553" LastActivityDate="2010-11-16T20:49:47.553" Title="What does Microsoft Public License (Ms-PL) clause 3 section (A) actually limit?" Tags="&lt;open-source&gt;&lt;license&gt;&lt;ms-pl&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="19438" PostTypeId="2" ParentId="19408" CreationDate="2010-11-16T19:27:05.847" Score="13" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://notepad-plus-plus.org/&quot; rel=&quot;nofollow&quot;&gt;Notepad++&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Notepad++ is a free (as in &quot;free speech&quot; and also as in &quot;free beer&quot;) source code editor and Notepad replacement that supports several languages. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6208" LastActivityDate="2010-11-16T19:27:05.847" CommunityOwnedDate="2010-12-15T13:45:54.590" CommentCount="10" />
  <row Id="19439" PostTypeId="2" ParentId="19391" CreationDate="2010-11-16T19:35:50.250" Score="1" ViewCount="" Body="&lt;p&gt;I'm in a similar boat -- but with a much better workplace.  See the answers I got &lt;a href=&quot;http://stackoverflow.com/questions/1751925/uncle-bob-style-oop-in-vb-net-how-to-learn&quot;&gt;over at this question&lt;/a&gt; for some ideas.&lt;/p&gt;&#xA;" OwnerUserId="7795" LastActivityDate="2010-11-16T19:35:50.250" />
  <row Id="19440" PostTypeId="2" ParentId="19351" CreationDate="2010-11-16T19:42:44.647" Score="0" ViewCount="" Body="&lt;p&gt;I have ~20 technical blogs, but a few of those are aggregations of entire sites e.g.: Geeks with Blogs, Los Techies, CodeBetter, MSDN/ASP blogs... even Reddit's /r/Programming feed, which can be a bit off-topic at times but I've seen some brilliant conversations on there as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using Google Reader, I skim the titles for something that sounds interesting, read what I can, and ignore the rest. There is only so much time in the day.&lt;/p&gt;&#xA;" OwnerUserId="1215" LastActivityDate="2010-11-16T19:42:44.647" />
  <row Id="19441" PostTypeId="2" ParentId="19397" CreationDate="2010-11-16T19:47:36.247" Score="6" ViewCount="" Body="&lt;p&gt;&lt;del&gt;Just a guess:  Some numbers that are rational in base10 are irrational in base2, and conversely some numbers that are rational in base2 are irrational in base10 (Please correct me if I'm wrong...I'm looking this up to confirm).&lt;/del&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: thanks to &quot;&lt;a href=&quot;http://programmers.stackexchange.com/users/2276/note-to-self-think-of-a-name&quot;&gt;Note to self - think of a name&lt;/a&gt;&quot; for correcting me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I supposed that if you had a need to specify an exact binary value as a floating point (such as some epsilon value in graphical programming), then it might be more convenient to use this syntax.  For example, 1/1024 is 0.0009765625 in base 10, but using this syntax it can be written as 0x1.0p-10&lt;/p&gt;&#xA;" OwnerUserId="5486" LastEditorUserId="5486" LastEditorDisplayName="" LastEditDate="2010-11-16T20:15:44.383" LastActivityDate="2010-11-16T20:15:44.383" CommentCount="7" />
  <row Id="19442" PostTypeId="2" ParentId="19274" CreationDate="2010-11-16T19:51:43.210" Score="1" ViewCount="" Body="&lt;p&gt;Like others have said: if it's common enough to be worth automating, I automate it. If not, I just slog through it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if it starts to feel like the whole job is just one big pile of boring, repetitive tasks, then I &lt;a href=&quot;http://programmers.stackexchange.com/questions/17009/is-needing-a-change-an-acceptable-reason-to-move-on-from-a-job&quot;&gt;burn out and move on&lt;/a&gt;. :)&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-16T19:51:43.210" />
  <row Id="19443" PostTypeId="1" CreationDate="2010-11-16T19:56:20.967" Score="1" ViewCount="134" Body="&lt;p&gt;Is there any tool that allow me to know what my employees are working by them posting their current progress on a taskKnow what employees working tool,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;it has been sugested to me to use &lt;a href=&quot;http://www.atlassian.com/&quot; rel=&quot;nofollow&quot;&gt;Attlasian Suite&lt;/a&gt;&#xA;What do you think??&lt;/p&gt;&#xA;" OwnerUserId="7798" LastActivityDate="2010-11-16T21:30:20.147" ClosedDate="2010-11-17T02:11:16.360" Title="Know what employees working tool" Tags="&lt;recommendations&gt;&lt;tools&gt;&lt;communication&gt;" AnswerCount="1" CommentCount="9" />
  <row Id="19444" PostTypeId="2" ParentId="19318" CreationDate="2010-11-16T19:56:36.210" Score="0" ViewCount="" Body="&lt;p&gt;Only if you left on good terms, but you have to realize you will be held to a higher standard once you interview as you have been there before an dshould know the ropes.  If it will be difficult for you to work under an old co-worker than there may be some strain but I dont see a reason why not to contract with them.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-16T19:56:36.210" />
  <row Id="19445" PostTypeId="2" ParentId="19437" CreationDate="2010-11-16T19:56:54.843" Score="2" ViewCount="" Body="&lt;p&gt;The author's name (assuming a real person) is most likely not trademarked, so I don't think the clause says anything about that; what it says that the license does not give you any rights to use trademarks like &quot;Microsoft&quot;, &quot;Windows&quot;, &quot;ASP.NET&quot; etc&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-16T19:56:54.843" CommentCount="4" />
  <row Id="19446" PostTypeId="2" ParentId="19318" CreationDate="2010-11-16T19:59:43.780" Score="0" ViewCount="" Body="&lt;p&gt;I've done that several times, no problems whatsoever. I think it's pretty normal to do that.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-16T19:59:43.780" />
  <row Id="19447" PostTypeId="1" AcceptedAnswerId="19494" CreationDate="2010-11-16T20:16:46.597" Score="1" ViewCount="109" Body="&lt;p&gt;I Googled to find a simple open-source Python application with Windows GUI. I came across many tutorials but can't find any. Is there any resource in your knowledge?&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2010-11-16T22:40:18.700" Title="Where to find Python Windows app. samples?" Tags="&lt;python&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="19448" PostTypeId="1" AcceptedAnswerId="19500" CreationDate="2010-11-16T20:20:06.843" Score="2" ViewCount="110" Body="&lt;p&gt;I have some usage queries for my web app's database, the results of which I want to display graphically.  Is there an easy-to-use api that exists for this purpose?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to show things like average query-time per user (a small user-base), average query time per day, and things like that.  I think it would be cool to show these on a two-axis graph.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am displaying this data on my site, so a jQuery/javascript/html solution for rendering information into graphs would be ideal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. I wasn't sure if I should ask this on SO, but I am looking more for which product to use, not how to program with it.&lt;/p&gt;&#xA;" OwnerUserId="5904" LastActivityDate="2010-11-16T23:46:30.950" Title="easy visualization of usage statistics (web app)" Tags="&lt;sql&gt;&lt;html&gt;&lt;jquery&gt;&lt;usage-statistics&gt;" AnswerCount="2" CommentCount="3" />
  <row Id="19449" PostTypeId="1" AcceptedAnswerId="19510" CreationDate="2010-11-16T20:26:24.753" Score="7" ViewCount="534" Body="&lt;p&gt;I have been developing Windows GUI applications since many years and jumped into .NET in early 2005. .NET is a undoubtedly a remarkable platform and I am still using it, but with a variety of technologies out there, I don't want to remain dedicated to this camp. I want to learn new languages with which I can develop GUI applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am learning Ruby and just installed Python. I read about WxRuby, a framework for developing Windows GUI app. in Ruby. I am searching for a similar framework for Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from that I want to know which language is more suitable for a production-level GUI app. I doubt that Ruby is more focused on Web platform with it's glamor, Ruby on Rails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that I may not get those rich .NET classes and that impressive Visual Studio IDE, but still I want to follow the road less traveled. I don't want to go with IronPython and IronRuby, however sometime later, I may dip hands to explore them.&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2011-05-14T14:09:42.633" Title="How to end my dependency on .NET?" Tags="&lt;python&gt;&lt;ruby&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="2" />
  <row Id="19450" PostTypeId="2" ParentId="19391" CreationDate="2010-11-16T20:27:09.540" Score="2" ViewCount="" Body="&lt;p&gt;Well at least you are in a position to learn what NOT to do!&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-16T20:27:09.540" CommentCount="1" />
  <row Id="19451" PostTypeId="1" AcceptedAnswerId="19583" CreationDate="2010-11-16T20:30:11.063" Score="3" ViewCount="276" Body="&lt;p&gt;I'm in charge of managing mobile application development at my company, and I am currently building a mobile device &quot;library&quot; for testing. Essentially, we want to have a representative device in-house for each of the OSes we are developing for, currently iOS (iPhone-only), Blackberry, and Android. Simulators only go so far, but I'm placing into the process a step to test software on the devices themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem we're finding is with Android. I don't think any of us here ever really understood just how fragmented the whole platform is until we started looking at devices to acquire. We are going to wait until v2.3 of Android is released, but which products to choose? Do we go by the most popular by market share? Do we get a small range of products by specs from least to most powerful overall? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We're trying to avoid having to manage a dozen different devices to test each app, if not because of cost if only for the repeated time sink.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you manage the testing of your Android software on physical devices?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;UPDATE: To bring some context to what I am asking, the applications being created are for educational purposes only, and there are no plans to use any of the hardware features of the devices themselves. We are simply displaying content in a variety of ways: eBooks, test questions, flash cards, etc. that may or may not be downloadable content. So, no cameras, GPS, user-driven content management, or anything like that; just as device-agnostic as we can possibly make it.&lt;/p&gt;&#xA;" OwnerUserId="6419" LastEditorUserId="6419" LastEditorDisplayName="" LastEditDate="2010-12-30T20:01:22.620" LastActivityDate="2011-04-05T21:53:41.343" Title="How do you manage the testing of your Android software on physical devices?" Tags="&lt;mobile&gt;&lt;resources&gt;&lt;android&gt;" AnswerCount="5" />
  <row Id="19452" PostTypeId="2" ParentId="19449" CreationDate="2010-11-16T20:32:57.263" Score="3" ViewCount="" Body="&lt;p&gt;Remember that the hard-core non-microsoft non-apple people are command-line driven, and GUI design is fairly useless there. They will, to some extent, compromise and make GUIs in HTML, to be consumed by browsers, but that's for their clients, not for themselves. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you with to stay in the GUI world, I suppose you might want to look at Apple or stay with .NET on Windows. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Makes sense?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HTH&lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-11-16T20:32:57.263" CommentCount="6" />
  <row Id="19453" PostTypeId="2" ParentId="19449" CreationDate="2010-11-16T20:33:02.247" Score="3" ViewCount="" Body="&lt;p&gt;Well, wxRuby is just a Ruby binding for &lt;a href=&quot;http://www.wxwidgets.org/&quot; rel=&quot;nofollow&quot;&gt;wxWidgets&lt;/a&gt;, an awesome cross-platform GUI toolkit.  There is a similar binding for Python called wxPython, as well as &lt;a href=&quot;http://wiki.wxwidgets.org/General_Information&quot; rel=&quot;nofollow&quot;&gt;bindings for many other languages.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-16T20:33:02.247" CommentCount="3" />
  <row Id="19454" PostTypeId="2" ParentId="17315" CreationDate="2010-11-16T20:33:19.930" Score="1" ViewCount="" Body="&lt;p&gt;And you're using them for language A, I assume?  (Clearly, there would be a difference in language B.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It partly depends on the differences between A and B (particularly if we shorten the second developer's experience with A).  If they're fairly similar, there will be essentially no difference in experience.  If A has considerably different concepts,  three years is still likely enough to learn them.  Given a very large library and complicated tools, there may be a difference between three and five years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, what matters most here is the individual.  A good developer can learn a new platform thoroughly in three years, and so this shouldn't be an issue.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-16T20:33:19.930" />
  <row Id="19455" PostTypeId="2" ParentId="11125" CreationDate="2010-11-16T20:35:46.447" Score="2" ViewCount="" Body="&lt;p&gt;Go with PHP, install wordpress, and do a plugin for your app-specific info. Note that you'll hit the &quot;hard limit&quot; fairly soon, but you'll be able to get up and running very very fast. &lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-11-16T20:35:46.447" />
  <row Id="19456" PostTypeId="2" ParentId="19408" CreationDate="2010-11-16T20:39:23.043" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.httpwatch.com/&quot; rel=&quot;nofollow&quot;&gt;HttpWatch&lt;/a&gt;.  I mostly use Fiddler, but whenever I've had to look into caching issues, HttpWatch helps a lot by showing what's been pulled out of the cache.  Full version will cost you, but the free version is still good.&lt;/p&gt;&#xA;" OwnerUserId="3450" LastActivityDate="2010-11-16T20:39:23.043" CommunityOwnedDate="2010-12-15T13:45:54.590" CommentCount="2" />
  <row Id="19457" PostTypeId="1" AcceptedAnswerId="19480" CreationDate="2010-11-16T20:40:50.127" Score="3" ViewCount="84" Body="&lt;p&gt;Today I was looking at some blogs on Ruby and Python. A Python loyalist wrote a few lines of code with a loop to show how Python is faster than Ruby, with a similar code. I also found a blog of a Ruby disciple who says that it is wrong and he too submitted a code sample and benchmarking results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am wondering whether background programs or background processes may sometime hinder the results and we may not get exact benchmarking scenario.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please correct me if I am wrong.&lt;/p&gt;&#xA;" OwnerUserId="6001" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2010-11-16T21:49:19.570" LastActivityDate="2010-11-16T21:49:19.570" Title="Do system background services affect languages benchmarking?" Tags="&lt;python&gt;&lt;ruby&gt;&lt;benchmarking&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="1" />
  <row Id="19458" PostTypeId="2" ParentId="19457" CreationDate="2010-11-16T20:44:00.880" Score="5" ViewCount="" Body="&lt;p&gt;It's possible.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if that's the case, running the benchmark again would almost certainly produce different results.  That's why benchmarks are always run multiple times, to make sure that there are no background processes that are skewing the results.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-16T20:44:00.880" CommentCount="1" />
  <row Id="19459" PostTypeId="2" ParentId="19437" CreationDate="2010-11-16T20:45:33.603" Score="4" ViewCount="" Body="&lt;p&gt;Trademarks are a business thing, so a personal name isn't a trademark unless that person uses it as such in a business or similar enterprise.  Such things as Microsoft Windows and ASP.NET are trademarks.  I could trademark &quot;David Thornley&quot; software if I were to write and distribute it (remember Peter Norton and the Norton Utilities?), but since I'm not actually in that business my name isn't a trademark.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, pay attention to the wording.  The license doesn't grant any rights to a trademark, but it doesn't restrict any ability you already have.  You can't call your project Microsoft software, but you can advertise that it runs on Microsoft Windows.  The guiding rule (at least in the US) is if you're trying to create any confusion about who produces the software, or if a reasonable person could be confused.  You'd probably be safe calling it &quot;Project Gligoran, using ASP.NET and running on Microsoft Windows&quot;, but if you're worried consult a trademark lawyer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, in the US, trademarks work on a &quot;protect it or lose it&quot; basis.  If you use a trademark improperly, and the owner of the trademark finds out about it, the owner is legally required to take some sort of action against you or risk losing the trademark.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-16T20:45:33.603" CommentCount="5" />
  <row Id="19461" PostTypeId="2" ParentId="11125" CreationDate="2010-11-16T20:54:52.383" Score="2" ViewCount="" Body="&lt;p&gt;If you have Java experience, I recommend Groovy/Grails.  It's extremely fast and intuitive like Ruby, and you can fall back on your Java experience when you don't know the Groovy way to do a thing.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-11-16T20:54:52.383" CommentCount="4" />
  <row Id="19462" PostTypeId="2" ParentId="19449" CreationDate="2010-11-16T20:54:53.367" Score="4" ViewCount="" Body="&lt;p&gt;I'm not sure if your question is limited to determining if Ruby or Python is better or if you're asking which other languages you might want to learn to develop Windows GUI apps in general. I'm assuming the latter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are also Java, Delphi, or native Win32 programming. Any of those are suitable for developing GUI apps on Windows. Native Win32 code can (must?) still be written through Visual Studio, but there's no .NET dependency.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-11-16T20:54:53.367" CommentCount="13" />
  <row Id="19463" PostTypeId="2" ParentId="17315" CreationDate="2010-11-16T20:59:58.900" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Years of experience in X language/platform&quot; is largely a recruitment pathology...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's open to interpretation and isn't anywhere near as useful as it looks at first glance. As has been said, the &lt;a href=&quot;http://www.codinghorror.com/blog/2008/02/the-years-of-experience-myth.html&quot; rel=&quot;nofollow&quot;&gt;Years of Experience Myth&lt;/a&gt; is a good read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, crucially, the measurement of &quot;years of experience&quot; itself can be very inaccurate. Here's an example from my current gig: my main task is developing and maintaining a Java web app. However, this runs off a back end which is MFC/C++/SQL Server. Consequently I'm dealing with C++ code on a virtually daily basis too. BUT - this C++ experience is relatively superficial and maintenance-oriented, and I don't really write entire big components or programs from scratch in MFC/C++ anymore (I used to in previous roles though).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can I still count these last 5 years as &quot;5 years of C++ experience&quot;? Maybe. Maybe not. Depending on how I want to sell it to secure a particular role, I can easily overplay it without outright lying, or I can admit that it wasn't really a 5 solid &quot;years of C++ experience&quot;. :) I'm sure plenty of cases out there are similarly open to this kind of &quot;inaccuracy of measurement&quot; problem. Depth of experience can grossly cloud the quality of experience. So an &quot;X amount of time spent with C++&quot; doesn't mean much in itself.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastEditorUserId="5064" LastEditorDisplayName="" LastEditDate="2010-11-17T00:09:00.840" LastActivityDate="2010-11-17T00:09:00.840" />
  <row Id="19464" PostTypeId="2" ParentId="19408" CreationDate="2010-11-16T21:01:56.597" Score="0" ViewCount="" Body="&lt;p&gt;My pick: &lt;a href=&quot;http://www.aptana.com&quot; rel=&quot;nofollow&quot;&gt;Aptana&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;blockquote&gt;&lt;p&gt;&#xA;Aptana Studio is the industry leading web development environment that combines powerful authoring tools for HTML, CSS, and JavaScript, along with thousands of additional plugins created by the community.&lt;/blockquote&gt;&lt;/p&gt;&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2010-11-16T21:01:56.597" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="19465" PostTypeId="1" AcceptedAnswerId="19492" CreationDate="2010-11-16T21:05:39.190" Score="30" ViewCount="1213" Body="&lt;p&gt;&lt;strong&gt;Update: Thanks for all the wonderful answers posted. It really helped me to put things in perspective.&#xA;I definitely feel better now and signed up for gym few days back. Also I leave my work laptop at office, to avoid working late at nights:-) Anyway I started sleeping for 8 hrs and it feels good. Working out regularly feels great :-)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let me put this straight. I am quite passionate about programming. I am single and have plenty of time outside work. I haven't slept for 5 full hours for at least a month, as I am involved in multiple projects at work (most of them volunteered) and some open-source projects as well. I know that I am not a gifted programmer and work at a slower phase, but I always get a high (like what runners get) when I see my code working and being used by people. This high is driving me work crazy of late, as other aspect of my life like dating, meeting up with friends, workout takes backseat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from a great reputation I enjoy at my work place, there is nothing to show substantial :-( I can barely sleep, as my mind keeps bouncing ideas even when sleeping. Also, I crave for people's attention at work these days to make up for my personal life and this makes me take up other's work as well. Everyday I start telling myself to work for fixed hours and focus on other beautiful aspects of life, but indeed fail miserably. I know all this sounds like a big rambling, but Iam sure there are people in this forum who would've went through a similar phase in life. How did you overcome it? I don't want to be nerd with no friends. I have been working for 6 years after school and 27 years old male.&lt;/p&gt;&#xA;" OwnerUserId="7805" LastEditorUserId="7805" LastEditorDisplayName="" LastEditDate="2010-11-19T04:40:17.463" LastActivityDate="2010-11-19T04:40:17.463" Title="Can passionate programmers with limited abilities have life outside work?" Tags="&lt;career&gt;&lt;work-environment&gt;&lt;health&gt;" AnswerCount="14" CommentCount="13" FavoriteCount="21" />
  <row Id="19466" PostTypeId="2" ParentId="18751" CreationDate="2010-11-16T21:11:46.333" Score="3" ViewCount="" Body="&lt;p&gt;Many big engineering organizations, including mine, use &lt;strong&gt;&lt;a href=&quot;http://www-01.ibm.com/software/awdtools/doors/&quot; rel=&quot;nofollow&quot;&gt;Doors&lt;/a&gt;&lt;/strong&gt;, &quot;A requirements management tool for systems and advanced IT applications&quot;.      It's designed for things like requirements flowdown and traceability.   It has a web interface client for allowing users to collaborate on requirements development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it's definitely geared more toward the big enterprise than small teams, and I suspect (although I do not know) that it's very pricey.  I don't use it personally, but I haven't been impressed by the interface when I observed others using it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I'm including this answer more for completeness than as an actual recommendation.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-11-16T21:11:46.333" CommentCount="1" />
  <row Id="19467" PostTypeId="2" ParentId="19451" CreationDate="2010-11-16T21:13:00.217" Score="2" ViewCount="" Body="&lt;p&gt;Presumably, you won't have to code exceptions for various devices (i.e. all of the Android devices &lt;em&gt;should&lt;/em&gt; behave the same).  Accordingly, you should only need one Android device; it should be a relatively popular one.  By the time v2.3 of Android is released, maybe the market will be less fragmented.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-16T21:13:00.217" CommentCount="1" />
  <row Id="19468" PostTypeId="2" ParentId="19465" CreationDate="2010-11-16T21:13:14.523" Score="17" ViewCount="" Body="&lt;p&gt;You overcome part of this by recognizing that your health, which has both physical and mental aspects to it, should be important.  This means things like eating, sleeping and exercise are required for your body to be at optimal efficiency and effectiveness.  The other question is beyond programming what other passions do you have?  Looking into pursuing those may be an idea but you may have to view this as a programming challenge: Can you figure out how to make sure you call this friend or talk to this relative, etc. be done on a consistent, regular basis?  There is an aspect here that is self-preservation though another side is what other goals do you have in life beyond getting recognized for having working code?  You do realize that most of your code may not last that long, right?  I know there are some rare exceptions where something is like an Energizer bunny, but a lot of the time it seems that most things eventually get rewritten which isn't a bad thing to my mind.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-16T21:13:14.523" CommentCount="1" />
  <row Id="19469" PostTypeId="2" ParentId="19465" CreationDate="2010-11-16T21:18:33.787" Score="0" ViewCount="" Body="&lt;p&gt;What drives you at this stage of your life is some hidden motivating force in your subconsciousness. As someone who'd been through this many years ago, I'd suggest that you let it flow for a while. Aside from many benefits such as gaining experience at an enormous rate, theoretically there is one danger: to become a workaholic for the rest of your life. But I don't believe in this. At certain age and at certain level of expertise in programming particularly you realize that you can achieve more by doing less. That's where it starts gradually calming down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be patient in other words, your mind knows something when it drives you to work like crazy. It is temporary anyway.&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-16T21:18:33.787" CommentCount="3" />
  <row Id="19470" PostTypeId="2" ParentId="19408" CreationDate="2010-11-16T21:25:55.283" Score="10" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/60/&quot; rel=&quot;nofollow&quot;&gt;Webdeveloper&lt;/a&gt; for firefox&lt;/p&gt;&#xA;" OwnerUserId="3098" LastActivityDate="2010-11-16T21:25:55.283" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="19471" PostTypeId="2" ParentId="17315" CreationDate="2010-11-16T21:29:20.953" Score="1" ViewCount="" Body="&lt;p&gt;I would agree that language is language and concepts are concepts.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My problem is that there are a large number of programmers these days that without a sophisticated IDE they could not program at all.  They are really not programmers but are really more like designers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know from personal experience that there are a lot of people that have been seduced by the draggy - droppy Microsoft development environment.  It is not Wrong that they drop a textbox onto the screen then set the properties with the wizard and drag the data from a picture of the database, but are they really coders in any language if all they do is set up basic equality tests?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those folks are never going to be able to take the Concepts they have learned and apply them to another language.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I Interview folks  I am more interested in how they did their development and what frameworks they used.  I like to ask questions like, &quot;How do you write an event handler?&quot;, &quot;How exactly do you put the data into the DB?&quot;, or even &quot;How do I turn this particular button purple when I click it?&quot;  this will quickly weed out the designers and leave the programmers.  I have found that 3 or 4 years actually programming with a year in my language of choice is sufficient for what I need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just another opinion,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tal&lt;/p&gt;&#xA;" OwnerUserId="7750" LastActivityDate="2010-11-16T21:29:20.953" />
  <row Id="19472" PostTypeId="2" ParentId="19443" CreationDate="2010-11-16T21:30:20.147" Score="2" ViewCount="" Body="&lt;p&gt;My manager(s) like weekly status reports.  Rather than wait 'till the end of the week and try and remember what I've been doing, I just have a personal page on the sitewide wiki (just a good old mediawiki install) and start a new dated section heading every week.  Typically update it couple of times a day I'd guess.  It's also come to function as a multipurpose todo list/blog/helpful reminder of progress for when appraisals come round. Other people I don't report to have commented they find it interesting too (the wiki makes it easy to cross-link/aggregate e.g significant stories/bugs/screenshots/reports etc), and people searching the wiki for info about something are likely to stumble across me if I've worked/commented on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that's what you're looking for, I'd suggest trying a wiki rather than &quot;some tool&quot;.  Atlassian is an enormous complicated project management suite.  If you don't have some project management stuff in place already, you have a much bigger problem than just &quot;knowing what employees are working&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another useful lightweight tracking technique is a &lt;a href=&quot;http://www.infoq.com/articles/agile-kanban-boards&quot; rel=&quot;nofollow&quot;&gt;Kanban board&lt;/a&gt;.  Want to know what someone's doing/done/about to do ?  Go and look at their team's/project's board to see what tickets have their name on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, unrelated to question, but can't help mentioning:  My managers still want me to cut and paste the report from the wiki into an HTML email every week!  Could be worse... it used to have to be submitted as an attached word doc!&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-11-16T21:30:20.147" CommentCount="1" />
  <row Id="19473" PostTypeId="2" ParentId="19465" CreationDate="2010-11-16T21:35:34.573" Score="3" ViewCount="" Body="&lt;p&gt;Set goals. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Have goals for each aspect of life: professional, health, personal, relationship, social, etc. &lt;/li&gt;&#xA;&lt;li&gt;The goals should be &lt;em&gt;concrete&lt;/em&gt; and &lt;em&gt;measurable&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;The goals should have a deadline. &lt;/li&gt;&#xA;&lt;li&gt;They should be difficult, but not unreasonable to achieve in the given time frame. &lt;/li&gt;&#xA;&lt;li&gt;Write the goals down. Check the list frequently and update it with your results. &lt;/li&gt;&#xA;&lt;li&gt;Share your goals with others. Peer pressure (the good kind) is a wonderful motivator.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Example goals:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Health: run a mile in W minutes, deadlift X lbs, bodyweight of Y lbs by date Z.&lt;/li&gt;&#xA;&lt;li&gt;Professional: finish project X and get a raise of at least Y dollars by date Z.&lt;/li&gt;&#xA;&lt;li&gt;Personal: X pages of writing (diary, blog, short stories) each month.&lt;/li&gt;&#xA;&lt;li&gt;Relationship: visit at least X new places with my girlfriend by the end of the year.&lt;/li&gt;&#xA;&lt;li&gt;Social: Try at least X new bars with friends this summer.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-11-16T21:35:34.573" />
  <row Id="19474" PostTypeId="2" ParentId="19465" CreationDate="2010-11-16T21:36:19.003" Score="7" ViewCount="" Body="&lt;p&gt;I have a few friends like you.  They are older though.  They use their work/volunteer obligations as an &lt;em&gt;excuse&lt;/em&gt; to avoid addressing their personal lives (or lack thereof).  &lt;em&gt;Dont become them&lt;/em&gt;.  Go on a dating site and meet a nice significant other.  Having someone else in your life will help balance out your personal &amp;amp; work lives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The sleeping thing... that there are some ways to address.  The problem is programming is very visual, and between staring at a bright monitor and thinking about algorithms, it keeps the mind active, hyperactive even, sometimes to the point of not being able to shut it off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To help avoid this, stop all computer use, and preferably TV viewing, at least an hour before you go to bed.  Read for an hour.  Something non-computer related.  Fiction, for example.  Or even listen to a book on CD.  That will set your mind into a different mode, and allow you to sleep.  Also, dont do anything other than sleep in bed (there's one other allowable exception, but it doesnt sound like thats an issue for you).  Read/work in another room.  Bed is for sleeping only.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-16T21:36:19.003" CommentCount="1" />
  <row Id="19475" PostTypeId="2" ParentId="17315" CreationDate="2010-11-16T21:39:10.267" Score="2" ViewCount="" Body="&lt;p&gt;Expertise and deliberate practice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't practice deliberately, you will not gain expertise.&#xA;(You must examine your errors and correct them, practice what you are weak at, and having an expert to tell you what you are doing wrong helps too.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't try to improve, you can be a newbie forever!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After ten thousand hours of deliberate practice, you'll achieve expertise.&#xA;(This finding from education/training is all over the net.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your programmer A hasn't been deliberately practicing, they never get better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your programmer B hasn't been deliberately practicing, they never get better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One other finding from the same research: that if I've got 15000 hours and you've got 10000, and I keep practicing and so do you, you will never be better than me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowing two languages will probably make B a better programmer (subject to practice rules).&lt;/p&gt;&#xA;" OwnerUserId="4623" LastEditorUserId="325" LastEditorDisplayName="" LastEditDate="2011-02-18T18:58:49.147" LastActivityDate="2011-02-18T18:58:49.147" />
  <row Id="19476" PostTypeId="2" ParentId="19246" CreationDate="2010-11-16T21:39:21.687" Score="1" ViewCount="" Body="&lt;p&gt;I think no one has mentioned it since it is just a year old.  Try &lt;a href=&quot;http://golang.org&quot; rel=&quot;nofollow&quot;&gt;Go&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-11-16T21:39:21.687" />
  <row Id="19477" PostTypeId="2" ParentId="19419" CreationDate="2010-11-16T21:39:29.813" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;USA&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://developer.nytimes.com/docs/times_newswire_api&quot; rel=&quot;nofollow&quot;&gt;New York Times API&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-11-16T21:39:29.813" />
  <row Id="19478" PostTypeId="2" ParentId="19465" CreationDate="2010-11-16T21:40:34.820" Score="6" ViewCount="" Body="&lt;p&gt;&quot;Everything in moderation.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Constantly remind yourself that burn-out is not fun and bad for your health.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Definitely consider taking a real vacation.  I.e. a resort someplace and leave the laptop at home&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Definitely consider seeing a doctor and/or psychotherapist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get your butt in a good yoga class, ASAP!  By good, I mean one that goes into the non-physical aspects, e.g. meditation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Just a few ideas off the top of my head, since I can't seem to pull it together into a better write-up right now and others are beating me resoundingly in that aspect.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To actually answer the question in the title:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, a passionate programmer that isn't necessarily a rock star programmer can indeed have a life outside of work.  If you can't, then maybe you should consider another role, e.g. technical project manager, and leave the programming for a hobby.  However, it doesn't sound to me like you're making up for your lack of ability.  Rather, you are overdoing it, like a rat pressing a lever in order to get that cocaine.  Don't be the rat.  They usually die. :)&lt;/p&gt;&#xA;" OwnerUserId="149" LastEditorUserId="149" LastEditorDisplayName="" LastEditDate="2010-11-16T21:54:31.787" LastActivityDate="2010-11-16T21:54:31.787" CommentCount="1" />
  <row Id="19479" PostTypeId="2" ParentId="19465" CreationDate="2010-11-16T21:43:40.373" Score="0" ViewCount="" Body="&lt;p&gt;I'm not sure why you're so worried. You have found something you love to do and you do it as much as you can. This should be completely normal and accepted. No one truly great is &quot;well rounded&quot;, everyone must focus in order to achieve greatness.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I say keep working hard, stack up money and expertise, and worry about your social life when you need to escape from computer programming, which is clearly your calling.&lt;/p&gt;&#xA;" OwnerUserId="7806" LastActivityDate="2010-11-16T21:43:40.373" CommentCount="6" />
  <row Id="19480" PostTypeId="2" ParentId="19457" CreationDate="2010-11-16T21:46:54.723" Score="3" ViewCount="" Body="&lt;p&gt;Yes they can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Normally just common sense in taking results from a couple of benchmarking runs, having some idea of what to expect, and being aware of what background services might fire up on your machine (beware indexing/search services in particular) and slow it down will generally avoid being seriously mislead by results.  I've found this to be more of a problem with automated performance testing where there is no human in the loop to go &quot;WTF... ?  Oh the stupid foo service just started an update&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For purely compute benchmarks, I've found running the benchmark process at a higher than normal priority can usefully give more consistent, stable results on &quot;busy&quot; machines.  This may not work if I/O is a factor though (depends whether your OS' notion of priority just affects CPU scheduling or I/O too).&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-11-16T21:46:54.723" CommentCount="1" />
  <row Id="19481" PostTypeId="2" ParentId="19449" CreationDate="2010-11-16T21:46:56.347" Score="-2" ViewCount="" Body="&lt;p&gt;Look into other programming languages that work with the .Net runtime, like IronRuby and IronPython. Next, check out the &lt;a href=&quot;http://www.monoproject.org&quot; rel=&quot;nofollow&quot;&gt;mono project&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These steps will get you out of your .Net comfort zone and developing on Linux. From there, it's a small leap to full-on UNIX-style development.&lt;/p&gt;&#xA;" OwnerUserId="7806" LastActivityDate="2010-11-16T21:46:56.347" CommentCount="1" />
  <row Id="19482" PostTypeId="1" CreationDate="2010-11-16T21:52:27.383" Score="9" ViewCount="261" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many great programming blogs around, but does anyone know of good blogs specifically about project management?  It's an interesting topic that I'd like to learn more about (practical advice would be helpful also).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am a programmer and don't plan on switching job roles, but I am interested in learning more about the PM side of software development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&#xA;-Jon&lt;/p&gt;&#xA;" OwnerUserId="3907" LastEditorUserId="3907" LastEditorDisplayName="" LastEditDate="2010-11-17T16:30:31.950" LastActivityDate="2010-11-17T16:30:31.950" ClosedDate="2010-12-14T21:51:27.240" Title="Any good software project management blogs?" Tags="&lt;project-management&gt;&lt;blogs&gt;" AnswerCount="4" CommentCount="7" FavoriteCount="4" />
  <row Id="19483" PostTypeId="2" ParentId="14512" CreationDate="2010-11-16T21:52:56.063" Score="2" ViewCount="" Body="&lt;p&gt;I'm late to the party, but I have a little bit to add.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been working from home with an infant/toddler for over a year.  No daycare, mom works part time.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The main difference is the social aspect.  The secondary one is you have to take your normal amount of telecommuting discipline and multiply it by 5.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;As everyone else has said (it's the best advice) you have to have a home office and very strong boundaries.  I was pretty horrible at this the first time around, if mom needed a nap or anything else I'd jump in and help out to be super dad.  Then I ended up sleeping 2-3 broken hours a night trying to get a full days work in while helping with nighttime feedings.  I got terribly sick six weeks after my son was born.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Along with that, I need a set time to spend time with my kids.  For 4 hours a night, that's family time and my cell is turned off.  I don't work in an industry where something can't wait 4 hours.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When my son was 3-8 months, I always tried to get work done during his morning naps.  You have to be able to divide your work into manageable chunks.  I'd try to let him scoot around my office while I answered email.  I have to track my hours, so I found Timesnapper (or equivalent) to be invaluable.  Before that I was always shortchanging my actual work done and putting in a ton of extra late night hours. I also enjoyed the reassurance that I was actually putting in a productive day.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you're an employee, be completely transparent with your coworkers and management.  If you're &quot;working&quot; with a baby in the background, you shouldn't hide that.  Not to mention the agony of a newborn nap interrupted 5 minutes in by an untimely phone call.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you choose to give up daycare or the equivalent, you're giving up sleep.  There's only so many hours in a day, and if you're expected to put in 8+ at work, and you want to put in 8+ with your family...it's got to come from somewhere.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;This applies to all aspects of parenting, but you have to be extremely flexible, and hopefully your employer is too.  Kids get sick, cars break down, life happens during 9-5 and you're there.  IF you would get a phone call about it at work, now it's going to be something you're dealing with in person.  Unfortunately, as a telecommuter there's this sense of guilt that you're getting away with something, as if you wouldn't leave work if your kid was heading to the hospital.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You have to learn how to tune out the house noises as well.  Kids are loud.  If you prefer a quiet workspace you'll need to work around that.  You also have to ignore your parental instincts to a large extent and trust the other parent/caregiver has the screaming and crashing handled.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;There will be lots of interruptions in a given week, regardless of the barriers you put up.  I had to modify my work habits to be more deliberate of what I was working on (I do hourly journals).  Try to schedule designated interruption times (lunch, coffee grab) and  embrace the good with the bad of working from home in a busy house.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3764" LastActivityDate="2010-11-16T21:52:56.063" CommentCount="5" />
  <row Id="19484" PostTypeId="2" ParentId="19482" CreationDate="2010-11-16T22:00:01.357" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://it.toolbox.com/blogs/strategic-project-management/&quot; rel=&quot;nofollow&quot;&gt;Ty Kiisel&lt;/a&gt; has a PM blog that I enjoy reading from time to time.  &lt;a href=&quot;http://projectmanagement.ittoolbox.com/blogs/&quot; rel=&quot;nofollow&quot;&gt;Project Management blogs from ITToolbox.com&lt;/a&gt; may have a few other ones that may be of interest.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-16T22:00:01.357" />
  <row Id="19485" PostTypeId="2" ParentId="19465" CreationDate="2010-11-16T22:05:24.863" Score="16" ViewCount="" Body="&lt;p&gt;No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can't have a life outside of work if you're sleeping 5 hours, working 9, and coding the other 10.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;side-rant: This is the apotheosis of the expectation of significant side-work for passionate programming, which is a &lt;em&gt;foolish&lt;/em&gt; way to approach a life, as you are becoming acutely aware.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend doing several things, in increasing order of severity - &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Cut your volunteering down to projects that &lt;em&gt;really&lt;/em&gt; matter. Most software has very little effect on things that really matter.  Like you said, nothing really substantial has been to show for it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Work out 3x a week, and sleep 7+ hours per night. Work out in a serious fashion so that you are tired when done. This will help you sleep. Add in some healthy eating.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Find  a new non-technological hobby. Cooking, carving, weaving, gardening, music, chess, skiing, hiking, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Burn down your vacation time and go to the mountains. Don't take any computational or connection device with you. Do take your preferred religious writings- on paper, not a Kindle. :) &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;See a mental counselor(quality of these can vary widely, you may have to shop around for a bit). A trusted family member is a reasonable choice as well, as is a trusted priest-type.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Find someone to date and learn their hobbies.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;FWIW, I struggle with the compulsion to code as well -  the best cure for me is spending time with friends or my fiance.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-16T22:05:24.863" CommentCount="1" />
  <row Id="19486" PostTypeId="2" ParentId="19384" CreationDate="2010-11-16T22:07:41.063" Score="2" ViewCount="" Body="&lt;p&gt;Having a full (6 hrs+) day of productivity. This removes the guilt associated with abusing the kind employer's time by doing personal stuff.&lt;/p&gt;&#xA;" OwnerUserId="4032" LastEditorUserId="4032" LastEditorDisplayName="" LastEditDate="2010-11-16T23:40:42.970" LastActivityDate="2010-11-16T23:40:42.970" />
  <row Id="19487" PostTypeId="2" ParentId="19419" CreationDate="2010-11-16T22:08:01.023" Score="2" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://www.odata.org/&quot; rel=&quot;nofollow&quot;&gt;Open Data Protocol&lt;/a&gt; site lists a number of &lt;a href=&quot;http://www.odata.org/producers&quot; rel=&quot;nofollow&quot;&gt;live oData services&lt;/a&gt; on its Producers page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit&gt; StackExchange has an oData service listed there.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-16T22:08:01.023" />
  <row Id="19489" PostTypeId="2" ParentId="19384" CreationDate="2010-11-16T22:16:13.527" Score="7" ViewCount="" Body="&lt;p&gt;Now that I work from home, the only interruption I get is my dog putting his head on my knee when he wants a scratch - and I find that I've always got that 10-20 seconds to scratch and hug him before he's satisfied.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And it doesn't break my concentration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That makes me happy.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-16T22:16:13.527" CommentCount="1" />
  <row Id="19490" PostTypeId="2" ParentId="19236" CreationDate="2010-11-16T22:17:07.550" Score="0" ViewCount="" Body="&lt;p&gt;I am not sure you can pick just 1 mobile development platform to base your mobile enterprise application strategy on. It would be great to standardize on 1 specific device running 1 OS but its not that simple. Employees are bringing their own devices into the workplace and are demanding that IT give them access to corporate data, regardless of what device they have in their hand. So if I could give you one piece of advice on mobile enterprise application development, make sure you support a wide array of mobile devices and operating systems. Hope that helps!  &lt;/p&gt;&#xA;" LastActivityDate="2010-11-16T22:17:07.550" />
  <row Id="19491" PostTypeId="2" ParentId="19465" CreationDate="2010-11-16T22:30:54.653" Score="12" ViewCount="" Body="&lt;p&gt;I suggest spending some time researching the effects of &lt;a href=&quot;http://en.wikipedia.org/wiki/Sleep_deprivation&quot; rel=&quot;nofollow&quot;&gt;sleep deprivation&lt;/a&gt;. Many people here understand what drives someone to go on a creative binge. Many of us have pulled consecutive caffeine driven all nighters. They aren't healthy, but a two day stint followed by a sufficient amount of time to recover isn't going to hurt you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you are doing is asking your body to do things that it wasn't designed to do. It will try to do what you want, it will send you warning signs and then it will begin to fail. If you keep going like this, the following is very likely to happen:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;You'll start getting very paranoid. The more you force yourself upon your peers for approval, the less approval you'll receive. This will lead to depression and may make you try even harder. That will start ranking you on the &lt;a href=&quot;http://en.wikipedia.org/wiki/Antisocial_personality_disorder&quot; rel=&quot;nofollow&quot;&gt;sociopathic&lt;/a&gt; scale, even if you aren't. As a programmer you must know, it is hard to distinguish benign behavior from malice in some cases. Is that guy off his rocker or just having a breakdown? I had a breakdown once, it was a very unpleasant experience.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You'll start hallucinating, eventually. If you are at all religious, or perhaps interested in metaphysics, watch out. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You'll start blacking out. Your brain is in charge, if it decides that it &lt;em&gt;has&lt;/em&gt; to sleep in order to protect itself, it &lt;em&gt;will&lt;/em&gt; release enough melatonin to knock you out despite your best wishes. This might happen while driving, riding the bus / train or any other very bad time. Watch out. Ever see a drunk pass out? Hint, that was because the drunk's brain was protecting itself.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You'll stop retaining most of what you read and almost everything that you hear. Work will become very interesting. People will point out that you are repeating yourself and not completing assignments.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Your body will eventually put an end to the nonsense by just refusing to cooperate with you. At that point, you can either decide to live a healthy life style, or use chemicals to help you continue with the one you have. It is very easy to become addicted to a very bad (but self serving) life style. I suggest treating 'urges' as a drunken monkey and dealing with them accordingly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to decide, right now, that you can't possibly be equally or more skilled than everyone around you overnight. It's not like you can invest a few months of really, really unhealthy living into acquiring super skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to get better at what you do, try the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Live healthy (sleep well, eat well, exercise well)&lt;/li&gt;&#xA;&lt;li&gt;Interact with humans, if only to deepen your appreciation for deterministic machines&lt;/li&gt;&#xA;&lt;li&gt;Get to that magical place they call &lt;strong&gt;&lt;em&gt;outside&lt;/em&gt;&lt;/strong&gt; each day. &lt;/li&gt;&#xA;&lt;li&gt;Don't ask your brain to retain much beyond 10 hours of using it&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There's nothing wrong with using &lt;strong&gt;&lt;em&gt;some&lt;/em&gt;&lt;/strong&gt; of your spare time to write code. Lots of us do that, because it's what we love to do. But we also do other things, too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd slam on the breaks hard, now and take a few days off to recover. As others have suggested, there is absolutely nothing wrong with seeking medical help to get yourself back on a sensible track.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-17T15:27:57.803" LastActivityDate="2010-11-17T15:27:57.803" CommentCount="1" />
  <row Id="19492" PostTypeId="2" ParentId="19465" CreationDate="2010-11-16T22:32:59.187" Score="30" ViewCount="" Body="&lt;p&gt;I spent about 2 full years in the exact same situation at the age of 25. I was behind the screen for at least 12 hours each day, in the end even more. In the beginning I still had other hobbies, mainly sports and a rather unhealthy partying habit. After a while I started to abandon those: they seemed like a complete waste of time while I could as well be programming (and at the smame time drinking espresso and smoking).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's simply called addiction. The sad thing is I was not in denial but fully aware of what was going on, and you are as well obviously or you wouldn't have asked this question. However I did not do anything to stop it except for thinking 'yeah yeah next week I'll do somthing else'. You have to take the chance and do something about it. Not next week, not tomorrow, but now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of those two years things started to get really ugly. I looked like a zombie, behaved like one as well, especially socially, and (in my mind) worst of all the quality of my code was degrading quickly as I could not think clear anymore because my brain was in overdrive every single moment it was awake. Everything I wrote still worked, but it was overly complicated and had way to much unneeded functionality. I would try to stuff all patterns I knew in the simplest program ;P &#xA;And yet, I just kept going. Until one day I crashed pretty hard. I'm not going to describe how, but it was an experience I would not even want my worst enemy to undergo.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer your actual question: I came over it by switching from one bad addiction to several other 'good' ones. From one day to the other I banned &lt;em&gt;all&lt;/em&gt; programming outside work hours. The vast amounts of free time that became available like that got filled up with music, sports, movies and seeing friends. People tend not to believe me when I call these addictions, but let me assure you one week without any of them, especially the first two, make me stressed out. I also made sure to eat decent food, drink max 2 coffees a day, heavily limit smoking, barely drink alcohol, take no other drugs at all and go to sleep/wake up at regular hours. Also half a year after switching to this lifestyle I met a girl and we're still happily together.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not know if this can work for you: for me it did, but only for two reasons: I could only do it from one day to the other because first I learned the hard way by crashing, and the method of replacing one addiction with ohers only works because I know from myself that I'm pretty keen on addictions. Btw now I sometimes allow myself to do some small projects that are not work-related, and it's so much more fun than it used to be. But I still have to take care not to get sucked into it to much.&lt;/p&gt;&#xA;" OwnerUserId="3660" LastActivityDate="2010-11-16T22:32:59.187" CommentCount="2" />
  <row Id="19493" PostTypeId="2" ParentId="19465" CreationDate="2010-11-16T22:38:25.060" Score="2" ViewCount="" Body="&lt;p&gt;I feel like I'm in a similar boat. I'm at my last year of college, and I just quit an addiction to adderall about a few months ago. I was so happy that I got so much done at first, and it made me feel like I could do anything. However, when I was off it, I would have a complete opposite reaction and I couldn't do anything. My desire to be productive overrode my thoughts for personal health, and when I realized how bad amphetamines were for you (and starting to look like a skeleton), I stopped taking them with my girlfriend's help. Even though I still can't accomplish as much in a day, I feel like I'm ultimately happier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're concerned about being able to complete things, what works for me is setting small goals for myself each day, and working to accomplish them. Those small projects are part of big projects, and one day, hopefully, they will come together and I'll have really made something cool.&lt;/p&gt;&#xA;" OwnerUserId="7810" LastActivityDate="2010-11-16T22:38:25.060" />
  <row Id="19494" PostTypeId="2" ParentId="19447" CreationDate="2010-11-16T22:40:18.700" Score="2" ViewCount="" Body="&lt;p&gt;I found several hundred searching sourceforge.org for wxPython and PyGTK, which are the two most popular libraries. &lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-16T22:40:18.700" CommentCount="2" />
  <row Id="19495" PostTypeId="2" ParentId="19408" CreationDate="2010-11-16T22:41:08.613" Score="4" ViewCount="" Body="&lt;p&gt;An FTP client like &lt;a href=&quot;http://filezilla-project.org/&quot; rel=&quot;nofollow&quot;&gt;FileZilla&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;FileZilla Client is a fast and&#xA;  reliable cross-platform FTP, FTPS and&#xA;  SFTP client with lots of useful&#xA;  features and an intuitive graphical&#xA;  user interface.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1182" LastEditorUserId="1182" LastEditorDisplayName="" LastEditDate="2010-11-16T22:47:01.587" LastActivityDate="2010-11-16T22:47:01.587" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="19496" PostTypeId="2" ParentId="15781" CreationDate="2010-11-16T22:41:20.360" Score="2" ViewCount="" Body="&lt;p&gt;In the Audacity sound editor we use wxWidgets as our cross platform library.  Since we need to link to C libraries, and we need speed and low level access a JVM approach would not work for us.  The GUI code is 95% the same on all platforms.  We use #ifdefs for the small variations.  However, we find it essential to have a developer working on each of the three platforms (Mac, Windows Linux), because even using the cross platform library it is too easy for a change on one machine to break things on another.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can get the performance you need, go for JVM.  If you can't, use QT or wxWidgets, and I would suggest QT over wxWidgets since it is less work to get it to look nice.&lt;/p&gt;&#xA;" OwnerUserId="7315" LastActivityDate="2010-11-16T22:41:20.360" CommentCount="1" />
  <row Id="19497" PostTypeId="2" ParentId="19419" CreationDate="2010-11-16T22:44:08.457" Score="3" ViewCount="" Body="&lt;p&gt;There is data all over the place of every type. Best approach is to figure out what type of data you need, find a website that has it, and see if the site offers an API. However, here are some general sources:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.freebase.com/&quot; rel=&quot;nofollow&quot;&gt;Freebase&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.mediawiki.org/wiki/API&quot; rel=&quot;nofollow&quot;&gt;MediaWiki API&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.data.gov/&quot; rel=&quot;nofollow&quot;&gt;data.gov&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-11-16T22:44:08.457" />
  <row Id="19498" PostTypeId="2" ParentId="19384" CreationDate="2010-11-16T22:44:53.557" Score="3" ViewCount="" Body="&lt;p&gt;Free soda from the vending machines&lt;/p&gt;&#xA;" OwnerUserId="7810" LastActivityDate="2010-11-16T22:44:53.557" CommentCount="1" />
  <row Id="19499" PostTypeId="2" ParentId="19451" CreationDate="2010-11-16T22:47:21.103" Score="1" ViewCount="" Body="&lt;p&gt;Pick a device with the oldest OS version your code supports.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pick a relatively slow device, so that you notice any performance problems.&lt;/p&gt;&#xA;" OwnerUserId="5526" LastActivityDate="2010-11-16T22:47:21.103" CommentCount="1" />
  <row Id="19500" PostTypeId="2" ParentId="19448" CreationDate="2010-11-16T22:53:28.297" Score="2" ViewCount="" Body="&lt;p&gt;I'm actually working on the exact same thing right now! I'm using dygraph. It's in javascript, but there's almost no coding required once you source the js file. &lt;/p&gt;&#xA;" OwnerUserId="7810" LastActivityDate="2010-11-16T22:53:28.297" CommentCount="3" />
  <row Id="19502" PostTypeId="2" ParentId="19408" CreationDate="2010-11-16T22:56:44.253" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.sprymedia.co.uk/article/Visual+Event&quot; rel=&quot;nofollow&quot;&gt;Visual Event&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Visual Event shows the elements on a page that have JavaScript events subscribed to them, what those events are and the function that the event would run when triggered.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-11-16T22:56:44.253" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="19503" PostTypeId="2" ParentId="19408" CreationDate="2010-11-16T22:57:35.770" Score="4" ViewCount="" Body="&lt;p&gt;No one has mentioned commercial tools but &lt;a href=&quot;http://www.microsoft.com/visualstudio/en-us&quot; rel=&quot;nofollow&quot;&gt;Visual Studio&lt;/a&gt; has excellent project level features. I also use &lt;a href=&quot;http://www.adobe.com/products/dreamweaver/&quot; rel=&quot;nofollow&quot;&gt;Adobe Dreamweaver&lt;/a&gt; when it suits the task at hand. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A comparable but not equal in features tool to Visual Studio is &lt;a href=&quot;http://www.microsoft.com/express/Web/&quot; rel=&quot;nofollow&quot;&gt;Visual Studio Express&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="3110" LastActivityDate="2010-11-16T22:57:35.770" CommunityOwnedDate="2010-12-15T13:45:54.590" CommentCount="1" />
  <row Id="19504" PostTypeId="2" ParentId="19408" CreationDate="2010-11-16T22:57:50.930" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/271/&quot; rel=&quot;nofollow&quot;&gt;ColorZilla&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Advanced Eyedropper, ColorPicker, Page Zoomer and other colorful goodies. With ColorZilla you can get a color reading from any point in your browser, quickly adjust this color and paste it into another program. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-11-16T22:57:50.930" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="19505" PostTypeId="2" ParentId="19408" CreationDate="2010-11-16T22:58:26.530" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/539/&quot; rel=&quot;nofollow&quot;&gt;MeasureIt&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Draw a ruler across any webpage to check the width, height, or alignment of page elements in pixels.&#xA;  Besides measuring, one can check to see if two(or more) things on the page are aligned properly.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="5939" LastEditorUserId="15843" LastEditorDisplayName="" LastEditDate="2011-02-05T20:54:22.923" LastActivityDate="2011-02-05T20:54:22.923" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="19506" PostTypeId="2" ParentId="19408" CreationDate="2010-11-16T22:59:22.240" Score="11" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://developer.yahoo.com/yslow/&quot; rel=&quot;nofollow&quot;&gt;YSlow&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;YSlow analyzes web pages and suggests ways to improve their performance based on a set of rules for high performance web pages.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-11-16T22:59:22.240" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="19507" PostTypeId="2" ParentId="19465" CreationDate="2010-11-16T23:05:18.573" Score="1" ViewCount="" Body="&lt;p&gt;Just like my middle school band teacher taught me - &quot;Nobody can 'find' time, you have to make the time&quot; to do whatever you &lt;em&gt;need&lt;/em&gt; to do. Here that would include doing otherthings to avoid the crash everyone else describes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If nothing else, go for a 30 minute walk or jog after work. You're permitted to think about programming if you like. At the very least, it will help you sleep longer.&lt;/p&gt;&#xA;" OwnerUserId="7812" LastActivityDate="2010-11-16T23:05:18.573" />
  <row Id="19508" PostTypeId="2" ParentId="19384" CreationDate="2010-11-16T23:06:25.857" Score="0" ViewCount="" Body="&lt;p&gt;Joy and happiness can not be achieved by the job alone.  First find satisfaction in your life in areas outside of work.  If you do not do that, then any joy you find in your job will be overshadowed by what is missing in your life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best joy and satisfaction I have had in my job is when I pay attention to all of my life.  This is a fact of life many don't appreciate when they try to find joy in their job, and find it lacking.  &lt;/p&gt;&#xA;" OwnerUserId="1642" LastActivityDate="2010-11-16T23:06:25.857" />
  <row Id="19509" PostTypeId="2" ParentId="19465" CreationDate="2010-11-16T23:06:52.827" Score="1" ViewCount="" Body="&lt;p&gt;There are some good answers already, but I'd like to suggest three simple things:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1) Get a health checkup.&lt;/strong&gt;&lt;br&gt;&#xA;It's not &lt;em&gt;necessarily&lt;/em&gt; bad to sleep in &amp;lt;5 hour chunks - but you're &lt;em&gt;very unlikely&lt;/em&gt; to get away with only 30-35 hours sleep a week without suffering negative effects.&lt;br&gt;&#xA;&lt;strong&gt;Talk to a doctor&lt;/strong&gt;, find out how your body is doing, and do whatever the medical professional tells you to get it performing effectively.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2) Find a social hobby.&lt;/strong&gt;&lt;br&gt;&#xA;Find something that will allow your brain to relax (or at least work in different ways), and preferably one that involves going outside at least some of the time. (sunlight, fresh air, exercise - all very good for you)&lt;br&gt;&#xA;You want something that has &lt;strong&gt;regular times every week&lt;/strong&gt; - maybe get some friends and/or work colleagues to join you - at the very least tell them all about it, so they can help make sure you go - and stick to that appointment as a #1 priority with &lt;em&gt;no excuses&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3) Change your programming habits.&lt;/strong&gt;&lt;br&gt;&#xA;See &lt;a href=&quot;http://programmers.stackexchange.com/questions/18649/to-code-quickly-you-must-quit-coding&quot;&gt;this question&lt;/a&gt; and look for others like it - the key thing is &lt;em&gt;taking a break&lt;/em&gt; every X minutes, in order to improve your focus and get &lt;em&gt;more&lt;/em&gt; work done. &lt;strong&gt;Work smarter, not harder.&lt;/strong&gt; In addition, spend less time programming, and &lt;a href=&quot;http://www.codinghorror.com/blog/2004/02/recommended-reading-for-developers.html&quot; rel=&quot;nofollow&quot;&gt;more time learning&lt;/a&gt; - you don't need to be gifted to be a good programmer: almost everyone has to learn, and it's not that bad, once you get going.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-11-16T23:06:52.827" />
  <row Id="19510" PostTypeId="2" ParentId="19449" CreationDate="2010-11-16T23:20:03.540" Score="8" ViewCount="" Body="&lt;p&gt;Check Qt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;it's arguably as rich as .NET, and the IDE (QtCreator) is simple yet pretty powerful.  Of course, it's better used on the native C++, but the Python binding is kept complete and up to date.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On top of it, it's really crossplatform, and that includes mobile platforms now too :-)&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-11-16T23:20:03.540" />
  <row Id="19511" PostTypeId="2" ParentId="19384" CreationDate="2010-11-16T23:22:38.423" Score="1" ViewCount="" Body="&lt;p&gt;When &quot;it just works.&quot;  Whatever that may be. So code I wrote, server deployment, new software, etc...&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-11-16T23:22:38.423" CommentCount="1" />
  <row Id="19512" PostTypeId="2" ParentId="19384" CreationDate="2010-11-16T23:23:16.573" Score="1" ViewCount="" Body="&lt;p&gt;For sure, its being able to code without distractions (e.g. meetings, supporting others' technical issues, analysis, etc.)&lt;/p&gt;&#xA;" OwnerUserId="5319" LastActivityDate="2010-11-16T23:23:16.573" />
  <row Id="19513" PostTypeId="1" CreationDate="2010-11-16T23:35:02.847" Score="1" ViewCount="189" Body="&lt;p&gt;I've created a distribution of my open source application framework in a working virtual appliance.  It includes everything to get started with the tutorial.  The distribution is Fedora 14 running Tomcat 5.5 and Oracle 10g Express Edition, plus my framework.  It is completely preconfigured and boots into a working running copy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would this be something you might try?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What assurances might you need to get you to try it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; The VM is just over a 2Gb download.  Alternatively it is also available via 23Mb download for the source and a PDF detailing how to configure the Tomcat and Oracle dependencies.&lt;/p&gt;&#xA;" OwnerUserId="2078" LastEditorUserId="2078" LastEditorDisplayName="" LastEditDate="2010-11-17T18:10:23.683" LastActivityDate="2010-12-01T18:17:53.507" Title="Opinions on distribution of software via virtual appliance." Tags="&lt;virtualization&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="2" />
  <row Id="19514" PostTypeId="2" ParentId="19384" CreationDate="2010-11-16T23:38:43.080" Score="6" ViewCount="" Body="&lt;p&gt;Having a client tell you that you have improved their life by creating something that has made their job 100 times easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I even got an invite to their Christmas do :3&lt;/p&gt;&#xA;" OwnerUserId="965" LastActivityDate="2010-11-16T23:38:43.080" CommentCount="1" />
  <row Id="19515" PostTypeId="2" ParentId="19513" CreationDate="2010-11-16T23:41:06.620" Score="0" ViewCount="" Body="&lt;p&gt;Microsoft has had success distributing demo software using appliances, and did this with the beta of Visual Studio 2010.  I think they use appliances pretty often for betas of operating systems also.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How big is the download?  Could you explain more about what the framework is?&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-11-16T23:41:06.620" CommentCount="3" />
  <row Id="19516" PostTypeId="2" ParentId="19419" CreationDate="2010-11-16T23:46:00.767" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://calgaryonlinestore.com/category.asp?cat_id=113&quot; rel=&quot;nofollow&quot;&gt;Calgary Public Data Catalogue&lt;/a&gt; has some stuff from the city of Calgary, Alberta, Canada that is freely available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://calgarydemocracy.ca/events/82&quot; rel=&quot;nofollow&quot;&gt;Open Data and Internet Democracy Tools workshop&lt;/a&gt; was an event held in Calgary last Saturday about using this data, just as something to disclose.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-16T23:46:00.767" />
  <row Id="19517" PostTypeId="2" ParentId="19384" CreationDate="2010-11-16T23:46:22.310" Score="2" ViewCount="" Body="&lt;p&gt;I use time boxing and personal rewards to help stay focused. I really get a kick when one of the following things happen:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;I started the day by making a list of things to accomplish, and actually accomplished them&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This might not seem so difficult, but you'd be amazed how long certain things can linger due to something out of your control blocking them. This is especially true when you work on a distributed team and everyone is in a different time zone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;I started using a new library and became productive with it quickly&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are so many choices when it comes to libraries to accomplish a broad variety of things. I really enjoy it when I try one and it just slides into place and works exactly as I hoped it would. That might seem trivial, but imagine trying one, after another, after another .. and then finally writing your own. Every time one 'just works', I feel like I won on a scratch off lottery ticket.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;None of these are Earth shatteringly awesome by themselves, but I really like it when either happens. I'm used to not getting a lot of applause when I solve / do something difficult, as not a lot of people where I work actually understand the complexity of what I'm doing. This leads me to personal rewards. I really enjoy treating myself to a beer, or maybe pizza that night, when things go well.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-16T23:46:22.310" />
  <row Id="19518" PostTypeId="2" ParentId="19448" CreationDate="2010-11-16T23:46:30.950" Score="2" ViewCount="" Body="&lt;p&gt;Google Charts (http://code.google.com/apis/chart/) may be worth a look.  The charts look impressive.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-11-16T23:46:30.950" />
  <row Id="19519" PostTypeId="2" ParentId="19384" CreationDate="2010-11-16T23:59:35.863" Score="1" ViewCount="" Body="&lt;p&gt;I'm kind of like a Vogon - my greatest joy is to check something off a list.  :)  That, and having several hours of uninterrupted time to actually get stuff on the list done.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-11-16T23:59:35.863" CommentCount="1" />
  <row Id="19520" PostTypeId="2" ParentId="19384" CreationDate="2010-11-17T00:24:40.423" Score="7" ViewCount="" Body="&lt;p&gt;The &quot;ah ha&quot; moment when something clicks for the first time, after you've been struggling for hours or days with it.  Something that seemed so hard a while back is now easy.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-11-17T00:24:40.423" CommentCount="3" />
  <row Id="19521" PostTypeId="2" ParentId="15781" CreationDate="2010-11-17T00:29:34.960" Score="2" ViewCount="" Body="&lt;p&gt;As a real-time developer, I've successfully used an option similar to 2 - separate platform-specific modules with a common API used by the core logic.  However, nothing I've done has had a UI  - networking, audio, data streaming - in this case it is the low-level hardware interface that is platform specific.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've done it this way for several reasons:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) To get the optimum performance on each platform&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) To take advantage of features only offered on 1 platform&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) (J)VMs did not exist for some of the platforms (embedded systems, game consoles...)&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-11-17T00:29:34.960" />
  <row Id="19522" PostTypeId="2" ParentId="19419" CreationDate="2010-11-17T00:53:22.360" Score="1" ViewCount="" Body="&lt;h1&gt;Water Data&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;You can use NOAA to retrieve &lt;a href=&quot;http://www.glerl.noaa.gov/data/&quot; rel=&quot;nofollow&quot;&gt;massive amounts of data&lt;/a&gt; to play with. I've used it several times and the API isn't half bad. If you don't care about what and simply &lt;em&gt;how much&lt;/em&gt; that's where I would go.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-17T00:53:22.360" />
  <row Id="19523" PostTypeId="1" CreationDate="2010-11-17T01:09:03.937" Score="2" ViewCount="260" Body="&lt;p&gt;I'm used to developing on Windows where in many editors the Tab key indents the selected block of code one level, and Shift+Tab un-indents the code. I am now using a Mac at work and I'm trying out TextMate as an editor. I would love it if I could set up the same keys for indenting/un-indenting code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that Alt+Tab and Alt+Shift+Tab, as well as Alt+[ and Alt+] is used for indenting/un-indenting code, but Alt+Shift+Tab is not working for me, and I don't want to use the other key combinations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore does anyone know of a nice way to configure TextMate (or the key bindings in ~/Library/KeyBindings/DefaultKeyBinding.dict) to make Tab and Shift+Tab indent/un-indent a selected block of code.&lt;/p&gt;&#xA;" OwnerUserId="3284" LastActivityDate="2010-11-17T01:09:03.937" ClosedDate="2010-11-17T02:08:57.190" Title="How to set tab to indent in TextMate" Tags="&lt;mac&gt;&lt;osx&gt;" CommentCount="4" />
  <row Id="19524" PostTypeId="2" ParentId="19465" CreationDate="2010-11-17T01:37:11.267" Score="4" ViewCount="" Body="&lt;p&gt;Do you have ups and downs? Do you have days (or weeks) when you feel incredibly productive, followed by days (or weeks) in which you feel like doing absolutely nothing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If so, you may have bipolar disorder, also called manic-depressive. You have bouts of mania, in which you get little sleep, get a lot accomplished, and get a high off doing work. Then you crash, sleep a lot, and maybe even feel suicidal. The cycle repeats.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this sounds like you, please see a doctor ASAP. Actually, just see a doctor whether or not this seems like you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've nearly lost two friends to bipolar disorder because when they were depressed, they wanted to kill themselves. One tried to jump off a bridge, the other wanted to shoot himself and his family.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2010-11-17T01:37:11.267" />
  <row Id="19525" PostTypeId="2" ParentId="19384" CreationDate="2010-11-17T01:49:15.930" Score="5" ViewCount="" Body="&lt;p&gt;Working with good human beings that you can trust.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-11-17T01:49:15.930" />
  <row Id="19526" PostTypeId="2" ParentId="19384" CreationDate="2010-11-17T01:52:00.767" Score="5" ViewCount="" Body="&lt;p&gt;Being able to go home at the end of the day.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-17T01:52:00.767" CommentCount="1" />
  <row Id="19527" PostTypeId="2" ParentId="1180" CreationDate="2010-11-17T02:18:39.323" Score="1" ViewCount="" Body="&lt;p&gt;I develop in Visual Basic .Net since 2001 and I love it and I hate it!!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The order of presentation of these points is just based on the order in which he came to my mind...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In vb.net with visual studio, there is a visual line break between each method, property. For many people, it's not a good reason to prefer vb.net over c# but I don't understand why the c# team at Microsoft don't have implemented it. There is a add-in that draw this line in c# but thanx again Microsoft to have a c# team and visual basic team that don't talk to each other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In vb.net, when you create a winform, you have two combobox in visual studio at the top of the editor and you can auto-generate event automatically when selecting an event on the right combobox. When you attach dozens of events each day, it can be very cumbersome to don't have this feature. With c#, you have a small button at the top of the property grid that can generate event but it's not fast as in vb.net. More, if you attach event of control in c# and delete the control on the form, the delegate created on the auto-generated code to handle event have to be deleted manually. Thank you again Microsoft.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In vb.net, when you try to modify a method that contain a linq query without modify the query itself, no problem but in c#, all the method code is locked. If you have a lots of linq queries or lambda expression, the edit and continue feature will rapidly be a good old thing. Ok, a little bit of exaggeration... but :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In vb.net, when you create a method name and tap enter, the 'end sub' will be automatically created. In c#, do it yourself. Ok, if you have resharper or devexpress installed, it will be better but why all these little but greats features were not be implemented in c#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In vb.net, when you have errors on your code, the errors are automatically displayed and when you correct it, these errors are removed of the stack in real time. In c#, you have to build your project to realize that you have successfully corrected or not the specified errors. Why c# team don't have put an option to verify in real time error like in vb.net. With big solution, no real time verification of error can be a very nice optimization of performance but I love to see a stack of error disapear while I correct it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like other person have mentionned, I think it's more easy to read vb.net condition if..end if, select case... end select but with devexpress painting bracket, forget what I said.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With vb.net, there are many many bugs in visual studio. Just to mention one in visual studio 2010, the intellisens don't filter correctly enumeration if you have the mode &quot;common&quot; activated instead of &quot;all&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With vb.net, you are perceived as a dummy guy because statically, more bad programmers use vb.net instead of c# because c# is harder to learn and promote better programming practice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like other said, c# programmer have better chance to have a good job with more money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the head of customer, vb.net = guy who program in his basement with a bol of spaghetti of code. c# = wow, you are very intelligent. The fact is that it's not because you program in c#, that you make a good program but statically, yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With all these points, I chose to convert all my vb code in c#. I program with all the best practices of object oriented, design pattern, clean code with standards and strict syntaxe and I can program like that for 50 years but from the eyes of community, I'm not a good programmer. I will convert my code in c# with no other best practices and I will be another person; a great guy who you must respect..... :( what a joke...!!! but it's the reality. &lt;/p&gt;&#xA;" LastActivityDate="2010-11-17T02:18:39.323" CommunityOwnedDate="2010-11-17T02:18:39.323" />
  <row Id="19528" PostTypeId="2" ParentId="19278" CreationDate="2010-11-17T02:45:26.047" Score="0" ViewCount="" Body="&lt;p&gt;It is hard to say without knowing the exact nature of his commentary. If he is giving a fairly graphic description of his weekend exploits then I doubt many people would have an issue with it. Most people say and think similar things but just don't post it publicly. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, when you hire you have to hire people with the character that will fit in with your company and that goes beyond just basic competence. Hiring someone who can't stop talking to work in a library is probably not a good idea, even if they can recite Shakespeare.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-17T02:45:26.047" />
  <row Id="19529" PostTypeId="2" ParentId="6847" CreationDate="2010-11-17T03:27:58.983" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It used to be C, Python and Go since Go's introduction.  Now I see myself slowly moving toward C, Go and then Python.  Go code is simply more readable.  But I simply love the small, potent and sharp C.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-11-17T03:27:58.983" CommunityOwnedDate="2010-11-17T03:27:58.983" />
  <row Id="19530" PostTypeId="2" ParentId="6847" CreationDate="2010-11-17T03:36:34.093" Score="5" ViewCount="" Body="&lt;h2&gt;Whatever has the best &lt;em&gt;debugger&lt;/em&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I think this criteria is different from &quot;The best language for the task&quot; enough that it warrants a mention.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My choice languages are whatever languages have a good debugger.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find myself spending a lot more time debugging rather than writing code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For that reason, I pick C# because of Visual Studio, and Python because of the ipython interpreter.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-11-17T03:36:34.093" CommunityOwnedDate="2010-11-17T03:36:34.093" CommentCount="1" />
  <row Id="19531" PostTypeId="1" CreationDate="2010-11-17T03:41:02.187" Score="6" ViewCount="189" Body="&lt;p&gt;I have a potential client who sells a VB3 app, for which he lost the source code.  It does not run on Windows 7 64-bit because the app is 16-bit. Only 32- and 64-bit programs will run on 64-bit Windows.  (Well the 16-bit app &lt;strong&gt;would&lt;/strong&gt; run in XP mode, but the end users will not accept that)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In order to accomplish this I would have to:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Find a copy of Visual 3.0 (full) (perhaps from &lt;a href=&quot;http://www.emsps.com/oldtools/msvb.htm#vb3&quot; rel=&quot;nofollow&quot;&gt;http://www.emsps.com/oldtools/msvb.htm#vb3&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Find a USB floppy drive so I can install it&lt;/li&gt;&#xA;&lt;li&gt;Use the so-called &lt;strong&gt;Visual Basic v3.0 Decompiler - from DoDi&lt;/strong&gt; from &lt;a href=&quot;http://www.woodmann.com/crackz/Tools.htm&quot; rel=&quot;nofollow&quot;&gt;http://www.woodmann.com/crackz/Tools.htm&lt;/a&gt; to decompile it, with no guarantee of success, with the result being code that would be very difficult to modify in any way&lt;/li&gt;&#xA;&lt;li&gt;Find a copy of Visual Basic 4.0 (full or upgrade) (perhaps from &lt;a href=&quot;http://www.emsps.com/oldtools/msvb.htm#vb4&quot; rel=&quot;nofollow&quot;&gt;http://www.emsps.com/oldtools/msvb.htm#vb4&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Upgrade the (mostly non-understandable) code&lt;/li&gt;&#xA;&lt;li&gt;Compile it in 32-bit mode&lt;/li&gt;&#xA;&lt;li&gt;Make an installer&lt;/li&gt;&#xA;&lt;li&gt;Profit!! :)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I see this as a project with significant risk of failure, with step 3 being especially high risk.  What do you think my chances of success? Should I turn it down or go for it?  If it's a go, what precautions should I take?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; GrandmasterB (below) brings up a huge &quot;monkey wrench&quot;.  Indeed the app uses several .VBX's.  Although this doesn't make the project &lt;strong&gt;impossible&lt;/strong&gt; per se... perhaps I would be able to track down 32-bit upgraded versions of these extensions (.OCX's?)... but this issue, combined with the fact that I would have to get it working with &lt;strong&gt;decompiled&lt;/strong&gt; source code just seems like too much of an uphill battle.&lt;/p&gt;&#xA;" OwnerUserId="4526" LastEditorUserId="4526" LastEditorDisplayName="" LastEditDate="2010-11-17T06:37:06.930" LastActivityDate="2010-11-17T09:26:34.070" Title="port vb3 app to 32 bit with no source code -- chances of success?" Tags="&lt;advice&gt;&lt;client&gt;&lt;visual-basic&gt;" AnswerCount="6" CommentCount="3" />
  <row Id="19532" PostTypeId="2" ParentId="19531" CreationDate="2010-11-17T03:48:47.730" Score="7" ViewCount="" Body="&lt;p&gt;I would only do it if the client is willing to task the risk. That is, I'd bill the client hourly for my attempts to get the app running while making it clear ahead of time that there is a high likelihood nothing will come of it. It is not your job to take on the risk of such a task.&lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-11-17T03:48:47.730" />
  <row Id="19533" PostTypeId="2" ParentId="19482" CreationDate="2010-11-17T03:50:19.587" Score="1" ViewCount="" Body="&lt;p&gt;I enjoyed &lt;a href=&quot;http://headrush.typepad.com/&quot; rel=&quot;nofollow&quot;&gt;Kathy Sierra's&lt;/a&gt; blog while it was active.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-11-17T03:50:19.587" />
  <row Id="19534" PostTypeId="2" ParentId="19531" CreationDate="2010-11-17T04:00:10.733" Score="0" ViewCount="" Body="&lt;p&gt;Sells a VB3 app? To whom ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;What about virtualization for running the application?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How did he manage to &quot;lose&quot; the source code? Can't he &quot;find&quot; it again?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;I see this project as a chance of a lifetime if you can swindle it the right way. Imagine, as Winston said; you're porting an app, with no guarantee of results. An hourly pay.&lt;br&gt;&#xA;If everything goes right, you'll rewrite the entire application, and get paid. If not, no sweat off your back.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-17T04:00:10.733" CommentCount="1" />
  <row Id="19536" PostTypeId="2" ParentId="19384" CreationDate="2010-11-17T04:19:12.587" Score="0" ViewCount="" Body="&lt;p&gt;There is this awesome girl/woman in my company - nice, smart, good looking. I call her a &quot;corporate angel&quot;. If she quits, I will not have a strong enough reason to work here anymore. She does not know that I like her because I do not show it, because she is married. I could actually ruin her marriage if I wanted to - women tend to like me. But, I will not communicate with her unless I need to due to work. Anyway, when I hear her talk, my soul lights up. I met plenty of women and so far they make me feel booooooooooored. Yes, I have had crashes in the past, but those were more of an imaginary &quot;I like her&quot; thing. As soon as they start talking, I usually want to fall asleep. This one is different, but I would not hurt her - I won't do anything. I do hope that the dude she is has got a half-decent sense of humor, because she is great when she laughs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will find another one like her ... somewhere, sometime. At least I have a proof that they exist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I almost forgot, this site is about programming. You know what I think about programming? Screw it! I kind of agree with this guy:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.halfsigma.com/2007/03/why_a_career_in.html&quot; rel=&quot;nofollow&quot;&gt;http://www.halfsigma.com/2007/03/why_a_career_in.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would be in love with what I do if not for the &quot;suits&quot;. Those guys are so smooth, that very often I feel a lasting pain in my rear after an encounter with them, but I have no proof of being screwed.&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-11-17T04:19:12.587" CommentCount="1" />
  <row Id="19537" PostTypeId="2" ParentId="19482" CreationDate="2010-11-17T04:19:49.203" Score="2" ViewCount="" Body="&lt;p&gt;I find these two good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.noop.nl/&quot; rel=&quot;nofollow&quot;&gt;Jurgen Appelo&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://jrothman.com/blog/mpd/&quot; rel=&quot;nofollow&quot;&gt;Johanna Rothman&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6693" LastActivityDate="2010-11-17T04:19:49.203" />
  <row Id="19539" PostTypeId="2" ParentId="19408" CreationDate="2010-11-17T04:38:06.377" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.spoon.net/Browsers/&quot; rel=&quot;nofollow&quot;&gt;Spoon.net Browser sandboxes&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Run various browsers in standalone sandboxes without having to install them. This used to be the best way to test IE9, IE8, IE7, and IE6 but as I just discovered today Microsoft has jumped in and requested that the IE browsers get pulled.  I certainly hope that Microsoft changes their mind on this as this was a spectacular option.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3199" LastActivityDate="2010-11-17T04:38:06.377" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="19540" PostTypeId="2" ParentId="19482" CreationDate="2010-11-17T04:46:29.337" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.estherderby.com/category/insights&quot; rel=&quot;nofollow&quot;&gt;Esther Derby's blog&lt;/a&gt;&lt;/strong&gt;, used to be named &lt;em&gt;Insights You Can Use&lt;/em&gt;.  Programmers who are tired of their pointy-haired managers and stupid performance reviews should check it out for far more progressive views on that kind of stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.basdebaar.com/&quot; rel=&quot;nofollow&quot;&gt;Project Shrink&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Johanna Rothman's blog and Jurgen Appelo's NOOP.NL (mentioned in another answer) are good choices, too.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-17T04:46:29.337" CommentCount="1" />
  <row Id="19541" PostTypeId="1" CreationDate="2010-11-17T05:00:51.570" Score="5" ViewCount="405" Body="&lt;p&gt;When building a parser to a programming language what I earn and what I lost choosing one or the other?&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-11-17T16:28:25.043" Title="What are the main advantages and disadvantages of LL and LR parsing?" Tags="&lt;comparison&gt;&lt;compilers&gt;&lt;parsers&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="19542" PostTypeId="2" ParentId="19513" CreationDate="2010-11-17T05:03:41.380" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Would this be something you might try?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No.  For a couple reasons. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Frankly, I wouldnt want to have to download a 2gig file just to try out an unknown, undocumented open-source project.  Not everybody has 100MB bandwidth.  Plus, you dont say what VM system this 'virtual appliance' uses, but 'virtual appliance' typically refers to VMWare.  That is not a no-impact install on a machine. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, imo, if this is the easiest way for you to distribute the project, I'm left with the impression then that the project must be such a pain to install that it needs a virtual appliance like this to realistically test.  Why would a user want to jump into that?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, your site has practically zero information about the project.  So now you are asking people to download a 2 gig appliance, and let VMWare do whatever its going to do to your system, without any assurances your project would actually do anything useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you'd be better suited to spend your time fleshing out the site so people can read a thorough description of the project's features, as well as streamlining the installation process to the point where an appliance isnt needed.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-17T05:03:41.380" CommentCount="6" />
  <row Id="19544" PostTypeId="2" ParentId="19531" CreationDate="2010-11-17T05:16:03.540" Score="8" ViewCount="" Body="&lt;p&gt;Wouldnt it make more sense to simply re-write the application?  If this is a VB3 app who's developer 'lost the source code', I'm going to go out on a limb here and speculate that its probably not a groundbreaking piece of software that cant be re-developed by a programmer of reasonable skill simply by using the existing feature set as a guide.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The de-compiling thing is no guarantee.  VB3 was 16bit... if this application is using third party 16bit .vbx's (the precursor to ActiveX's), source code or not, its not going to recompile.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-17T05:16:03.540" CommentCount="5" />
  <row Id="19545" PostTypeId="2" ParentId="19531" CreationDate="2010-11-17T05:38:37.543" Score="0" ViewCount="" Body="&lt;p&gt;Plenty of good stuff has already been said, but I would like to add that it really depends what kind of application it is. If it is GUI-heavy, then even if you &lt;em&gt;had&lt;/em&gt; the source code, you'd probably have to rewrite a lot of it anyway to update it to Winforms or WPF. In this case, I wouldn't sweat much over the lost source code, but I &lt;em&gt;would&lt;/em&gt; require very detailed specs (and a working version to play with).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if it had clever or complex algorithms that aren't documented anywhere else, you really do need to be able to decompile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case, you won't lost much from trying the steps you lay out in your question.&lt;/p&gt;&#xA;" OwnerUserId="4285" LastActivityDate="2010-11-17T05:38:37.543" CommentCount="2" />
  <row Id="19547" PostTypeId="2" ParentId="19391" CreationDate="2010-11-17T06:49:37.337" Score="1" ViewCount="" Body="&lt;p&gt;I learned from the school of hard knocks :(.  I would recommend you read books certain books instead of going to my alma mater.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Structure and Interpretation of Computer Programs&lt;/li&gt;&#xA;&lt;li&gt;How to Design Programs: An Introduction to Programming and Computing&lt;/li&gt;&#xA;&lt;li&gt;The Pragmatic Programmer: From Journeyman to Master&lt;/li&gt;&#xA;&lt;li&gt;Clean Code: A Handbook of Agile Software Craftsmanship (more recent, but very good)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-11-17T06:49:37.337" />
  <row Id="19548" PostTypeId="2" ParentId="19465" CreationDate="2010-11-17T07:13:53.987" Score="1" ViewCount="" Body="&lt;p&gt;To code is fun, but satisfaction of getting your work done and appreciated can be achieved by other means.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am quite sure you will identify with this new Programmers Anthem: &lt;a href=&quot;http://bit.ly/andsoyoucode&quot; rel=&quot;nofollow&quot;&gt;http://bit.ly/andsoyoucode&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-11-17T07:13:53.987" />
  <row Id="19549" PostTypeId="1" AcceptedAnswerId="19668" CreationDate="2010-11-17T07:18:32.233" Score="7" ViewCount="267" Body="&lt;p&gt;&lt;strong&gt;The focus of this question:&lt;/strong&gt; Some software performs &quot;extra work&quot; in order to increase the chance of a &quot;eventually successful/satisfactory&quot; outcome, despite one or more internal errors in the software, which requires a longer execution time when those errors happen. All these happen without the user's knowledge if the outcome was successful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Definition of complex software:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Contains code written by (contributed from) more than 10 developers over its lifetime, and not written in the same time frame&lt;/li&gt;&#xA;&lt;li&gt;Depends on more than 10 external libraries, each with caveats&lt;/li&gt;&#xA;&lt;li&gt;A typical software task (for generating a result wanted by the user) requires 10 or more input parameters, where most of them have default values but are configurable if the user needs control.&lt;/li&gt;&#xA;&lt;li&gt;Most importantly, software that has the appropriate complexity relative to the task being performed, i.e. &lt;em&gt;not unnecessarily complicated&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Edited:&lt;/em&gt; What is complex? Please see &lt;a href=&quot;http://programmers.stackexchange.com/questions/9554/how-do-people-manage-to-write-and-maintain-extremely-complex-and-hard-to-read-cod/9570#9570&quot;&gt;There is a big difference between Complex and Complicated&lt;/a&gt;. &lt;a href=&quot;http://codebetter.com/blogs/dru.sellers/archive/2009/09/25/complex-vs-complicated.aspx&quot; rel=&quot;nofollow&quot;&gt;(direct link)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Definition of Redundancy/Robustness&lt;/strong&gt; &lt;em&gt;within this question&lt;/em&gt;:&lt;br&gt;&lt;em&gt;(Added Robustness based on comments)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If a software task failed when the current set of parameters was used, try different parameters.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Obviously, there must be inside knowledge that those &quot;different&quot; parameters use a different code path, possibly resulting in a different (hopefully better) outcome.&lt;/li&gt;&#xA;&lt;li&gt;Sometimes these different code path are chosen based on observations of the external libraries.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;At the end, if the actual task performed is slightly different from the user's specification, the user will receive a report detailing the discrepancy.&lt;/li&gt;&#xA;&lt;li&gt;Finally, like the 10-plus configurable parameters, the redundancy and reporting are also configurable.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Example of such software:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Database Migration&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Business database&lt;/li&gt;&#xA;&lt;li&gt;Source control database, etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Batch converting between a Word document and an OpenOffice document, PowerPoint and OpenOffice Draw, etc.&lt;/li&gt;&#xA;&lt;li&gt;Automatic translation of an entire website&lt;/li&gt;&#xA;&lt;li&gt;Automatic analysis of software package, such as Doxygen, but where the analysis needs to be more dependable (i.e. not just a documentation tool)&lt;/li&gt;&#xA;&lt;li&gt;Network communication, where packets may be lost and a number of retries are expected&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;This question was originally inspired from &lt;a href=&quot;http://programmers.stackexchange.com/questions/7530/how-do-you-deal-with-intentionally-bad-code&quot;&gt;How do you deal with intentionally bad code?&lt;/a&gt;&lt;br&gt; but is now focused on just one of the causes of software bloat. This question does not address any other causes of software bloat, such as addition of new features.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Possibly related:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/19071/how-to-deal-with-complex-codes-in-huge-projects&quot;&gt;&lt;em&gt;How to deal with complex codes in (huge) projects&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/9554/how-do-people-manage-to-write-and-maintain-extremely-complex-and-hard-to-read-cod&quot;&gt;&lt;em&gt;How do people manage to write and maintain extremely complex and hard to read code?&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="620" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-11-19T16:46:40.827" LastActivityDate="2010-11-19T16:46:40.827" Title="How much redundancy/robustness should complex software implement?" Tags="&lt;performance&gt;&lt;exceptions&gt;&lt;code-smell&gt;&lt;complexity&gt;&lt;workaround&gt;" AnswerCount="5" CommentCount="7" />
  <row Id="19550" PostTypeId="2" ParentId="19531" CreationDate="2010-11-17T07:51:33.897" Score="1" ViewCount="" Body="&lt;p&gt;Tell the client that additional research is needed, and you suggest that doing the &quot;get VB and decompile&quot; step will be necessary to even consider whether this is possible at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you then find it to be feasible, then port it to VB.NET and incorporate all the changes that the client would have liked to happen if he had had the source code.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-17T07:51:33.897" />
  <row Id="19551" PostTypeId="2" ParentId="5705" CreationDate="2010-11-17T08:07:17.727" Score="0" ViewCount="" Body="&lt;p&gt;I guess this is not the &quot;lesser known&quot; feature, but I tend to use Emacs for any repetitive text editing. Keyboard-macros rule! &lt;a href=&quot;http://jamesthornton.com/emacs/node/emacs_487.html&quot; rel=&quot;nofollow&quot;&gt;http://jamesthornton.com/emacs/node/emacs_487.html&lt;/a&gt; &lt;/p&gt;&#xA;" LastActivityDate="2010-11-17T08:07:17.727" />
  <row Id="19552" PostTypeId="1" AcceptedAnswerId="19554" CreationDate="2010-11-17T08:10:00.100" Score="4" ViewCount="184" Body="&lt;p&gt;Aside from Visio, what tools would you recommend for making some visually appealing charts and diagrams?&lt;/p&gt;&#xA;" OwnerUserId="4385" LastActivityDate="2010-11-17T14:16:12.973" Title="What graphical tools do you recommend for creating visually appealing system diagrams and flowcharts?" Tags="&lt;design&gt;&lt;graphics&gt;&lt;diagrams&gt;" AnswerCount="7" FavoriteCount="1" />
  <row Id="19554" PostTypeId="2" ParentId="19552" CreationDate="2010-11-17T08:33:34.667" Score="6" ViewCount="" Body="&lt;p&gt;I have been using &lt;a href=&quot;http://www.omnigroup.com&quot; rel=&quot;nofollow&quot;&gt;OmniGraffle&lt;/a&gt;, but it is only available for Mac OS X and the iPad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is somewhat similar to Microsoft Visio, and the professional version of OmniGraffle can both import and export Visio files created using Visio's XML export function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Users can also create their own &lt;em&gt;stencils&lt;/em&gt; - groups of shapes - and &lt;a href=&quot;http://graffletopia.com/&quot; rel=&quot;nofollow&quot;&gt;share&lt;/a&gt; &lt;a href=&quot;http://konigi.com/tools/omnigraffle-wireframe-stencils&quot; rel=&quot;nofollow&quot;&gt;them&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4153" LastEditorUserId="1020" LastEditorDisplayName="" LastEditDate="2010-11-17T11:08:15.430" LastActivityDate="2010-11-17T11:08:15.430" CommentCount="2" />
  <row Id="19555" PostTypeId="2" ParentId="19236" CreationDate="2010-11-17T09:14:48.517" Score="4" ViewCount="" Body="&lt;p&gt;I work in the mobile space and it's actually a very difficult question right now.  You've got to think about four things: the devices available, development options, device support (things like remote device management, deployment, security, policy management), and trickiest at the moment where the platform is going.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looking at the contenders in no particular order:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) &lt;strong&gt;Windows Mobile 6.5&lt;/strong&gt; - still exist, likely to continue to exist and be supported going forward and has a lot of advantages when it comes to development (SQL Server CE, .NET CF) and deployment (products such as SOTI or MDM, though MDM is a dogs dinner).  People laugh at it but it's actually got a fairly good foothold in enterprise markets, particularly those where bespoke development is needed (think of all the couriers and delivery drivers who get you to sign for stuff - that'll be a Windows Mobile device).  In addition there are some good rugged devices which is useful for some user groups.  The downsides are that while it's still likely to exist, in the light of Windows Phone 7, it's not clear what it's future is exactly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) &lt;strong&gt;BlackBerry&lt;/strong&gt; - right now the most consistent contender in terms of devices (good range, battery life, functionality) and supportability (the BES is highly functional and supportable), plus while it's no longer fashionable compared to Android and iOS, the only way you're going to get the BB out of many users hands is when they're dead - I've met lawyers in particular who will not be parted from their BB for love nor money.  The keyboard makes it good for data entry (even if soft keyboards are as fast people don't seem to like them as much), the screens not so good for browsing type activity.  Development can be done in Java which is obviously good for a lot of people reusing skills and speed of development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) &lt;strong&gt;iOS&lt;/strong&gt; - a contender in the enterprise more and more. Upsides everyone knows about (all your staff will very happily carry one, great UI and so on), downsides are that the skills needed to develop for it are specific to it and the Mac (Objective-C) and that a lot of the remote management capabilities need improving (Apple's own stuff is OK and getting better, good.com have got some good stuff too but there are still holes).  Incidentally, don't believe the whole &quot;you have to go through the app store&quot; line which some people will trot out, that's not true for the enterprise, you can deploy your own apps direct if you've got the right support infrastructure and registrations set up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) &lt;strong&gt;Android&lt;/strong&gt; - basically very similar to iOS.  Probably better on development (Java being an easier skill to recruit / train for) but where it lacks is credibility as an enterprise platform - yes it's technically capable but it's not currently seen as an used in this sort of situation.  Again, remote management and policy control is a weakness but again, good.com are doing some good stuff here and it will improve in the next couple of years.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) &lt;strong&gt;Windows Phone 7&lt;/strong&gt; - I list it for completeness but right now it's nowhere for the enterprise.  Development is very different to Windows Mobile 6.5 (as in effectively NO portability between the two) and there's no remote management stuff.  On top of that there are questions about whether it has a long term future at all (personally I'd bet it will but I've been wrong before).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So there you go - no good answers...  It very much depends on what the enterprise is, what you're looking to develop, what the timescales are (certain platforms you might be wary about making a long term investment in) and what you think your return might be.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-17T09:14:48.517" />
  <row Id="19556" PostTypeId="2" ParentId="19552" CreationDate="2010-11-17T09:18:37.887" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.gliffy.com&quot; rel=&quot;nofollow&quot;&gt;Gliffy online&lt;/a&gt; - free version available (with ads, watermarks and so on), paid version ($5 per month, decent discounts for 5 users or more, for instance 25 people is $60 per month) offers more functionality, more storage better sharing, no ads, no gliffy logos on your diagrams and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plug-ins available for Confluence and Jira too.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-17T09:18:37.887" />
  <row Id="19557" PostTypeId="2" ParentId="19531" CreationDate="2010-11-17T09:26:34.070" Score="2" ViewCount="" Body="&lt;p&gt;I think your chances of success are minimal.  If you were an experienced VB3/VB4 developer who really knew this stuff I'd say maybe 25%.  If you're not, less than 10% and you could sink a lot of effort into failing.  To put it in context I spent 10 years working with VBs 3 through 6 and I'm not sure I'd bother.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given these chances I wouldn't agree to do it for the client on a payment on success basis (maybe unless you propose to charge him 10 times what your time would be worth to cover the probability you'll fail).  If it were me it would be strictly time and materials.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you agree to do it you need to explain this to the client (particularly that it's going to be unsupportable going forward).  I'd agree a timebox (say 3 days) during which you'll try but at the end of which if you've not made good progress you'll give up - this limits his cost / risks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I'd look at running it on a Windows XP VM and set about rewriting it, I think it's a better use of the time and money.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-17T09:26:34.070" CommentCount="2" />
  <row Id="19558" PostTypeId="1" CreationDate="2010-11-17T09:43:49.277" Score="4" ViewCount="242" Body="&lt;p&gt;As a university project i am planning on implementing the SMTP protocol.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wonder what is the best way to start with a project like this, and what are the steps i should do before writing any code&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks &lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:  What i meant by implementing the smtp protocol is: creating a basic server to handle smtp and a basic client program.&lt;/p&gt;&#xA;" OwnerUserId="7670" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-11-18T21:56:38.857" LastActivityDate="2010-11-18T21:56:38.857" Title="How to start project?" Tags="&lt;c#&gt;&lt;project&gt;" AnswerCount="3" />
  <row Id="19559" PostTypeId="2" ParentId="14512" CreationDate="2010-11-17T09:52:56.753" Score="6" ViewCount="" Body="&lt;p&gt;What most of the answers imply but don't out and out say which should be made absolutely clear is that if you're the one caring for the child (as opposed to just being in the house at the same time as the child and the other parent/nanny/carer) it's close to impossible in the long term.  Generally the workable situations people talk about assuming another carer in the house with the child at least part time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make no mistake, children are demanding.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the early months they sleep a lot but not in a nice predictable way and not in large chunks the way you'd like them to (a baby's sleep cycle is 40 minutes long and while they may sleep more than one cycle at a time you can't count on it).  In the early days they're also feeding every 4 hours - something that will take between 20 minutes and over an hour plus there's changing and so on.  Remember too that this goes on 24 hours a day - you're not getting a nice solid 8 hours a day to recover so don't assume any time the baby is asleep is time you can work, most of it you'll be recovering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As they get older they do sleep for longer and get more predictable but at that point they also start moving around (crawling starts somewhere between 6 and 12 months, walking between, say, 9 and 18 months) and demanding more attention.  At that point they are absolutely full time when they're awake and by this point sleep during the day is maybe 2 hours total (in either one or two blocks).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once they're in bed at night (if you're lucky from about 3 months you'll get 11 hours or so with just one scheduled break for a bottle - though there are likely to be unscheduled breaks in there where you need to go and comfort them) you need to get all the stuff done you didn't during the day - washing, ironing, you've got to eat something yourself and generally run the house.  And you've got to try and sleep because you'll be exhausted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: Incidentally, in the UK, where parents have the right to apply to work from home (and the employee has to grant it if it's reasonable), a separate working environment and childcare during working hours are an absolute prerequisite.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-17T11:23:39.340" LastActivityDate="2010-11-17T11:23:39.340" />
  <row Id="19560" PostTypeId="2" ParentId="19558" CreationDate="2010-11-17T09:54:16.837" Score="0" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Easy&lt;/em&gt;. Create a project on &lt;a href=&quot;http://www.sourceforge.com&quot; rel=&quot;nofollow&quot;&gt;sourceforge.com&lt;/a&gt; and &lt;strong&gt;start&lt;/strong&gt; writing code.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-17T11:31:03.547" LastActivityDate="2010-11-17T11:31:03.547" CommentCount="6" />
  <row Id="19561" PostTypeId="2" ParentId="19558" CreationDate="2010-11-17T10:01:19.037" Score="1" ViewCount="" Body="&lt;p&gt;I'd start by sketching out your thoughts on how you're going to implement it, the structure of the application and so on.  Either paper or electronically is fine.  I'm not talking about a full specification, just an hour or so's thought up front before you code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd personally then look at breaking it into chunks against which you can measure progress - basically Agile stories - and try and run it in that fashion.  Even if it's just you it will give you an idea of where you're going, what progress you're making and give you a sense of satisfaction at completing things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you've done that set up your version control, get your environment the way you want it, pick what you're working on first and get going.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-17T10:01:19.037" />
  <row Id="19562" PostTypeId="2" ParentId="19552" CreationDate="2010-11-17T10:20:40.707" Score="1" ViewCount="" Body="&lt;p&gt;For graphics that you &quot;program&quot;, there is also &lt;a href=&quot;http://matplotlib.sourceforge.net/gallery.html&quot; rel=&quot;nofollow&quot;&gt;Matplotlib&lt;/a&gt; (all platforms) and &lt;a href=&quot;http://nodebox.net/code/index.php/Download&quot; rel=&quot;nofollow&quot;&gt;NodeBox&lt;/a&gt; (Mac OS X).&lt;/p&gt;&#xA;" OwnerUserId="3807" LastActivityDate="2010-11-17T10:20:40.707" />
  <row Id="19563" PostTypeId="2" ParentId="19408" CreationDate="2010-11-17T10:20:44.830" Score="0" ViewCount="" Body="&lt;p&gt;I am a professional web developer, and I don't use any of the tools listed so far.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have recently taken to using &lt;a href=&quot;http://www.jetbrains.com/webstorm/&quot; rel=&quot;nofollow&quot;&gt;webstorm&lt;/a&gt; as it shows javascript errors in the editor. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I find Chromes dev toolbar to be better than firebug&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-11-17T10:20:44.830" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="19564" PostTypeId="2" ParentId="19218" CreationDate="2010-11-17T10:31:09.810" Score="0" ViewCount="" Body="&lt;p&gt;I do the same as confusedGeek and put everything directly in the &lt;a href=&quot;http://www.forum-omondo.com/usecase_advanced_menu.png&quot; rel=&quot;nofollow&quot;&gt;usecase diagram&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found that the usecase could really be full of interesting information if saved at model level. I then print a documentation and give it to the developer team.&lt;/p&gt;&#xA;" OwnerUserId="5283" LastActivityDate="2010-11-17T10:31:09.810" />
  <row Id="19565" PostTypeId="2" ParentId="19552" CreationDate="2010-11-17T10:50:53.013" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://projects.gnome.org/dia/&quot; rel=&quot;nofollow&quot;&gt;Dia&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also available for Windows and Mac OS X (As far as I know).&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-11-17T10:50:53.013" />
  <row Id="19566" PostTypeId="2" ParentId="19552" CreationDate="2010-11-17T11:00:18.660" Score="3" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.openoffice.org/&quot; rel=&quot;nofollow&quot;&gt;OpenOffice&lt;/a&gt;/&lt;a href=&quot;http://www.documentfoundation.org/download/&quot; rel=&quot;nofollow&quot;&gt;LibreOffice&lt;/a&gt; Draw because it's general/flexible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I've tried specialised apps but never got on with any of them.)&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-11-17T11:00:18.660" />
  <row Id="19567" PostTypeId="2" ParentId="19218" CreationDate="2010-11-17T11:09:22.823" Score="1" ViewCount="" Body="&lt;p&gt;I've seen everything from a one-word description (&quot;Auction&quot;, I guess you needed to know the context) to a hundred-page specifications document. Assuming I have a user available, I like to work with &lt;a href=&quot;http://www.agilemodeling.com/artifacts/userStory.htm&quot; rel=&quot;nofollow&quot;&gt;user stories&lt;/a&gt;. These are short descriptions of the expected behaviour of the product once the feature is added, long enough to act as an &lt;em&gt;aide memoire&lt;/em&gt; and conversation point but short enough to avoid analysis paralysis.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-11-17T11:09:22.823" />
  <row Id="19568" PostTypeId="2" ParentId="19408" CreationDate="2010-11-17T11:23:54.547" Score="1" ViewCount="" Body="&lt;p&gt;Lori - Firefox addon&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;'lori' can tell you how long it takes to load&#xA;  a page. Useful for web developers who are working on profiling, optimizing a web site.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4512" LastActivityDate="2010-11-17T11:23:54.547" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="19569" PostTypeId="1" AcceptedAnswerId="19571" CreationDate="2010-11-17T11:30:55.253" Score="3" ViewCount="362" Body="&lt;p&gt;OK, this could be construed as flame-bait, but that is not the intention. Nor is it about a holy war between one technology choice and another. Rather, what advice would you give to a new Java developer (or a greenfield project) about choosing a good combination of frameworks to learn and use that will provide them with:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;great community support&lt;/li&gt;&#xA;&lt;li&gt;a shallow learning curve due to good tutorials&lt;/li&gt;&#xA;&lt;li&gt;a best-of-breed solution appropriate to their application (it's not all web apps)&lt;/li&gt;&#xA;&lt;li&gt;the least effort to get to a working initial prototype&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Personally, I would consider a greenfield web application that mandated EJB1, Struts1 and/or JSF1 to be seriously flawed. On the other hand, Spring and Hibernate seem to remain popular and offer great solutions, even across older versions (Spring 2.5.6 still does the job). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What combinations do you think are appropriate for different application types? Which frameworks would you like to see officially marked as dead and, most importantly, why?&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-17T12:39:16.693" LastActivityDate="2010-11-17T21:39:39.807" Title="Which Java technologies do you consider to be dead?" Tags="&lt;java&gt;&lt;frameworks&gt;" AnswerCount="4" CommentCount="4" />
  <row Id="19570" PostTypeId="2" ParentId="19569" CreationDate="2010-11-17T11:33:08.343" Score="2" ViewCount="" Body="&lt;p&gt;Applets for sure.&#xA;More controversially Swing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The desktop is dead, long live the cloud!&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-11-17T11:33:08.343" CommentCount="11" />
  <row Id="19571" PostTypeId="2" ParentId="19569" CreationDate="2010-11-17T11:35:34.223" Score="6" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;AWT - fortunately (Swing is nice though)&lt;/li&gt;&#xA;&lt;li&gt;Java ME.&lt;/li&gt;&#xA;&lt;li&gt;JINI - unfortunately.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-17T11:35:34.223" CommentCount="11" />
  <row Id="19572" PostTypeId="2" ParentId="19558" CreationDate="2010-11-17T11:40:07.663" Score="5" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Get a comprehensive grasp of the requirements first.   &lt;/li&gt;&#xA;&lt;li&gt;Fully document the features required.&lt;/li&gt;&#xA;&lt;li&gt;Estimate the time span to complete&#xA;and ensure the project is viable.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Implementing the smtp protocol&lt;/em&gt;  is rather vague.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-11-17T13:48:56.023" LastActivityDate="2010-11-17T13:48:56.023" CommentCount="7" />
  <row Id="19573" PostTypeId="1" AcceptedAnswerId="19581" CreationDate="2010-11-17T11:47:04.160" Score="68" ViewCount="2695" Body="&lt;p&gt;What are the worst false economies (that is ways of saving money that ultimately cost more than they save) prevalent in the software industry and how do you combat them?&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="6969" LastEditorDisplayName="" LastEditDate="2010-11-18T16:08:12.083" LastActivityDate="2010-11-19T09:27:15.177" Title="What are the worst false economies in software development?" Tags="&lt;development&gt;&lt;cost&gt;&lt;economics&gt;&lt;efficiency&gt;&lt;inefficiency&gt;" AnswerCount="21" CommentCount="6" FavoriteCount="32" />
  <row Id="19574" PostTypeId="2" ParentId="19573" CreationDate="2010-11-17T11:48:06.843" Score="14" ViewCount="" Body="&lt;p&gt;Buying off the shelf software instead of developing it internally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have experience of entreprise scale management systems, focussed on both HR and Biological Laboratories. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;An off the shelf solution cost £50-100k and needed further development and customisation to meet the business requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The internally developed solution took (&amp;lt;6) months to develop, with other projects being worked on in parallel, and utilized an already employed developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I went from the public sector where we had an internally developed LIMS (lab information management system) up and running, to a large international pharmaceutical where the implemention of an off the shelf solution had taken over a year and was nowhere complete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(6 months of an already hired developer working on other projects in parallel. So ~10k. And that doesn't include the support costs associated with the off shelf solution). The major point is that the internally developed system was actually being used! So you then have the added cost benefit associated with that, which I cannot calculate.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd agree for basic websites etc, why bother developing your own. But for any large complex systems and if you already have in house skills, I'd &lt;em&gt;build it myself&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-11-17T12:22:52.137" LastActivityDate="2010-11-17T12:22:52.137" CommentCount="11" />
  <row Id="19575" PostTypeId="2" ParentId="8758" CreationDate="2010-11-17T11:50:54.860" Score="5" ViewCount="" Body="&lt;p&gt;I've seen major misuse of MSDN licenses in the past.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People using MSDN products for production use, or sharing server products (or in some cases desktop products) from one MSDN license between multiple developers, either because they genuinely didn't understand the license or, I suspect, wilfully not wanting to understand it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be fair to them Microsoft licensing has been, and remains, so damn opaque you can understand why people don't want to engage with it, wrong as it is to copy software.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-17T11:50:54.860" CommunityOwnedDate="2011-01-23T07:24:28.233" CommentCount="1" />
  <row Id="19576" PostTypeId="2" ParentId="19573" CreationDate="2010-11-17T11:57:30.333" Score="4" ViewCount="" Body="&lt;p&gt;All below can be bad when used or not used inappropriately&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;external vs inhouse software&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;ISO 9001 compliance (economy - a mitigation of a MSS loss risk if product quality drops)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;development/QA outsourcing &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;development/build/release/support procedures&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4676" LastEditorUserId="4676" LastEditorDisplayName="" LastEditDate="2010-11-17T12:53:23.060" LastActivityDate="2010-11-17T12:53:23.060" CommentCount="9" />
  <row Id="19577" PostTypeId="2" ParentId="19549" CreationDate="2010-11-17T11:57:48.023" Score="5" ViewCount="" Body="&lt;p&gt;Complex software typically &lt;em&gt;is&lt;/em&gt; redundant as you probably know, but obviously not because that's the best way to do it but because developers tend to &quot;tack on&quot; existing code rather than attempt to understand in great detail how the software works. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you asked me how much redundancy should be acceptable, I would say none whatsoever.  Redundancy is one of many side effects of complexity, the archnemesis of simplicity.  Arguably, simplicity should take a back seat if time is of greater importance, though I stress that those who argue that time is of the essence are rarely those who actually take care in developing software.  It's usually your project manager egging you to just get the job done as soon as possible so you can get back to more pressing issues, however it's your duty as a programmer to know when the job is done.  I think the job isn't done until you've successfully integrated it into the program as it was meant to be.  Perhaps the program is complicated, but at least your modification fits the pattern making it somewhat easy to understand by a programmer used to seeing similar code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However it should be said that in doing so, you may have to produce redundant code.  If the project is already highly redundant, it may actually be more simple to continue the pattern assuming of course your boss doesn't have a couple weeks to kill allowing you to restructure the entire project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:  In light of the rephrasing of the question, I'll add a bit about robustness.  In my opinion, parameter checking should be done only if A) you accept a very specific format such as a date value as a string or B) various parameters potentially might conflict with each other or are mutually exclusive.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;With A), the requirements that parameters match a specific format is usually critical to the necessity of the method (such as a conversion to a date from a string).  Technically it could still happen in your program without it being a necessity but I would strongly encourage you to eliminate these possibilities and accept only parameters that you know represent the type of data you're looking for (Accept a date rather than a string if the point isn't to convert for example.  If conversion must also be done, use a utility method to convert the string before passing it to the method).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for B), mutually exclusive parameters represent a bad structure.  There ought to be two classes, one which handles one case and another which handles it in another way.  All common operations can be done in a single base class to avoid redundancy.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In situations in which the number of parameters to a method get to be 10+, I begin to consider a property file which contains all these parameters which are most likely not going to change often.  If they do change, you can save the default in the property file and add a &quot;setPropertyName()&quot; method which lets you override the default at runtime. &lt;/p&gt;&#xA;" OwnerUserId="6967" LastEditorUserId="6967" LastEditorDisplayName="" LastEditDate="2010-11-18T11:12:05.677" LastActivityDate="2010-11-18T11:12:05.677" CommentCount="1" />
  <row Id="19578" PostTypeId="2" ParentId="19552" CreationDate="2010-11-17T12:00:03.630" Score="1" ViewCount="" Body="&lt;p&gt;Especially for software diagrams and UML my favorite is the Enterprise Architect from &lt;a href=&quot;http://www.sparxsystems.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.sparxsystems.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="625" LastActivityDate="2010-11-17T12:00:03.630" />
  <row Id="19579" PostTypeId="2" ParentId="19573" CreationDate="2010-11-17T12:00:35.170" Score="21" ViewCount="" Body="&lt;p&gt;Most prevalent I suspect is managers simply not providing developers with the tools they need to do their job efficiently. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, point 9 on the &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;Joel Test&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="562" LastActivityDate="2010-11-17T12:00:35.170" CommentCount="2" />
  <row Id="19580" PostTypeId="2" ParentId="19573" CreationDate="2010-11-17T12:01:05.277" Score="88" ViewCount="" Body="&lt;p&gt;Hiring &lt;strong&gt;2&lt;/strong&gt; cheap developers instead of &lt;strong&gt;1&lt;/strong&gt; really great. (for the same price)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-17T12:01:05.277" CommentCount="16" />
  <row Id="19581" PostTypeId="2" ParentId="19573" CreationDate="2010-11-17T12:03:06.060" Score="100" ViewCount="" Body="&lt;h2&gt;Technical Debt&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;ie &quot;Just do it quickly, we'll refactor later&quot;. Firstly because I have yet to see someone engaging in this behaviour actually refactor later. Secondly because doing things the quick way, instead of the good way makes it harder to add future features or resolve future bugs so you end up losing time in the long run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sadly, many still think it &lt;em&gt;saves&lt;/em&gt; developer cycles to have them do something fast. I guess it's possible, but I have yet to see it in practice.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-11-17T12:11:03.117" LastActivityDate="2010-11-17T12:11:03.117" CommentCount="11" />
  <row Id="19582" PostTypeId="2" ParentId="19573" CreationDate="2010-11-17T12:08:07.630" Score="49" ViewCount="" Body="&lt;p&gt;My example would be the complete opposite of &lt;a href=&quot;http://programmers.stackexchange.com/questions/19573/what-are-the-worst-false-economies-in-software-development/19574#19574&quot;&gt;NimChimpsky's example&lt;/a&gt;, namely:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Trying to develop in-house something that can be bought off-the-shelf.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Normally this comes about due to a failure to actually check the market-place to see if something already exists that will solve the problem. This can be compounded by developers who like to &quot;dive in&quot; coding before doing any research and by project managers who fail to factor in that time = money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the most common examples I've seen in my field, web development, are companies trying to develop and in-house CMS system. These invariably start off small, but soon get bloated and out-of-control as features are bolted on, whilst all the time there are plenty of free products and frameworks out-there that would be much better suited.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-11-17T12:08:07.630" CommentCount="8" />
  <row Id="19583" PostTypeId="2" ParentId="19451" CreationDate="2010-11-17T12:16:15.667" Score="1" ViewCount="" Body="&lt;p&gt;Well, the good thing about Android's code is that you can implement it in so many ways - from a Tablet to a wrist-watch, thus creating a testing group for it a bit complicated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way I see it, excluding the version differences for now, there are a few test groups: Tablets, High-End Handsets, Low-End handsets and finally, like the guy above me said - old handset.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I specifically made the distinction between low-end and old since while both might be considered nowadays to be around the same level, old devices would usually run an earlier version of Android which might cause the code to behave quite differently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are specialized online services, like Perfecto Mobile or DA that gives you RDA access to real devices (as opposed to emulators, which like you said - only goes so far) without having to physically own them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perfecto offers a free hour-long demo on their website (http://www.perfectomobile.com), and I think this might exactly suit your needs.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-17T12:16:15.667" />
  <row Id="19584" PostTypeId="1" AcceptedAnswerId="19593" CreationDate="2010-11-17T12:20:07.907" Score="2" ViewCount="93" Body="&lt;p&gt;In cluster computing, there seems to be two options: task redirection and task splitting. Task redirection seems easy enough, you just have the master dispatch the small calls to other nodes in the cluster for processing (eg webserver clusters (I think)). Task splitting however seems wildly more complex. Since I don't think you can have two threads of the same program run on different machines, meaning you have to split up the work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How though does one split up the work? I can see some stuff like rendering or video encoding just because you can tell each node to work on a different part of the video, but when you want to do things like &lt;a href=&quot;http://gizmodo.com/5606273/this-computer-just-calculated-pi-to-a-world-record-5-trillion-digits&quot; rel=&quot;nofollow&quot;&gt;calculate the 5 trillionth digit of pie&lt;/a&gt;, how would you split that up? Or even in science where you need to simulate weather or other resource intensive tasks?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, how do you split up tasks that aren't really designed for splitting up?&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-11-17T16:32:08.230" Title="How does one make a cluster capable program?" Tags="&lt;cloud&gt;&lt;cluster&gt;" AnswerCount="2" />
  <row Id="19585" PostTypeId="2" ParentId="4614" CreationDate="2010-11-17T12:25:43.833" Score="0" ViewCount="" Body="&lt;p&gt;Few things differentiate an exceptional with a typical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Exceptional:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Highly passionate about his work and strive to deliver a master-piece.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Performance and quality is the big picture in their mind even before coding starts.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They think of continuous improvement after each release.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They keep strict vigil on the alternatives and are early adopters.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Their theme in professional life is: &quot;Write less convey more&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They keep thinking about logical perspectives even when not coding.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Typical&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Sometimes somewhat passionate but strive to deliver because it is a job after all. If it is not a masterpiece, its OK. At least delivered on time.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Will think of the performance later, anyway PCs are fast enough these days.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Improve only when there is no option left to save a job.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;No time to dig into other technologies. Stick to what your job demands now. Will learn other things when the need arises.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Their theme is: &quot;Do what is asked and reach home in time&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2010-11-17T12:25:43.833" CommunityOwnedDate="2011-04-05T15:40:39.513" CommentCount="0" />
  <row Id="19586" PostTypeId="1" CreationDate="2010-11-17T12:48:32.587" Score="3" ViewCount="308" Body="&lt;p&gt;And what do you think about those benefits?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What &lt;em&gt;realistic&lt;/em&gt; benefits do you want&#xA;to have?&lt;/li&gt;&#xA;&lt;li&gt;What benefits are elsewhere, that sounds great?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Examples: 14 monthly salaries / year, 4 day work weeks, bonus systems, work from home, free lunch and dinner, etc.&lt;/p&gt;&#xA;" OwnerUserId="4643" LastActivityDate="2010-11-17T15:30:28.250" ClosedDate="2010-11-17T15:45:19.503" Title="What benefits do you have at your company?" Tags="&lt;work&gt;&lt;benefits&gt;" AnswerCount="5" CommentCount="5" FavoriteCount="3" />
  <row Id="19587" PostTypeId="2" ParentId="19586" CreationDate="2010-11-17T12:57:36.473" Score="1" ViewCount="" Body="&lt;p&gt;I want cash + tax optimizing pension fund as an option. No fitness, additional holidays and other monkey business. I can buy myself all I want for cash.&lt;/p&gt;&#xA;" OwnerUserId="4676" LastActivityDate="2010-11-17T12:57:36.473" CommentCount="3" />
  <row Id="19588" PostTypeId="2" ParentId="19573" CreationDate="2010-11-17T13:00:22.010" Score="38" ViewCount="" Body="&lt;p&gt;In many cases offshoring costs more money. In my company it's very hard to get new employee slots, we are pushed heavily to outsource. Its also hard to get on-site contractors; there is ratio of 3:1 offshore to onshore they are supposed to maintain. Consequently, many teams just hire a dozen offshore and barely use them at all, just so they can get 4 onsite contractors.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-11-18T09:40:32.947" LastActivityDate="2010-11-18T09:40:32.947" CommentCount="5" />
  <row Id="19589" PostTypeId="1" CreationDate="2010-11-17T13:02:44.800" Score="-1" ViewCount="135" Body="&lt;p&gt;Cobertura is a reporting tool for code-coverage of unit tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The license for Cobertura is complicated: Ant tasks are covered under Apache 1.1 (easy enough), but instrumented bytecode involves the GPL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Details are here: &lt;a href=&quot;http://cobertura.sourceforge.net/license.html&quot; rel=&quot;nofollow&quot;&gt;http://cobertura.sourceforge.net/license.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a classic &lt;a href=&quot;http://en.wikipedia.org/wiki/Cover_your_ass&quot; rel=&quot;nofollow&quot;&gt;CYA&lt;/a&gt;, the conclusion of the license states &quot;it depends on your interpretation of the license&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How have you interpreted the license? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you use Cobertura in developing commercial software for the enterprise? i.e. simply using it to report on your JUnit tests. I'm &lt;strong&gt;not&lt;/strong&gt; asking about bundling Cobertura with your product.&lt;/p&gt;&#xA;" OwnerUserId="6180" LastActivityDate="2010-12-08T01:59:52.707" Title="Do you use Cobertura in the enterprise?" Tags="&lt;license&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="19590" PostTypeId="2" ParentId="19586" CreationDate="2010-11-17T13:03:21.367" Score="9" ViewCount="" Body="&lt;p&gt;In order what I want:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) A fair salary (as basic, not bonus)&lt;br&gt;&#xA;2) Decent holiday allowance (25 days + public holidays - I'm in the UK)&lt;br&gt;&#xA;3) Flexible working hours&lt;br&gt;&#xA;4) Pension contributions&lt;br&gt;&#xA;5) Casual dress  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I get all of the above except number four at the moment (though at a basic level it's about to become law in the UK so that will change).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anything else wouldn't be turned down but generally if I could swap it for more money, more holiday or shorter hours I probably would.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-17T13:03:21.367" CommentCount="4" />
  <row Id="19591" PostTypeId="2" ParentId="19552" CreationDate="2010-11-17T13:04:58.060" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.yworks.com/en/products_yed_about.html&quot; rel=&quot;nofollow&quot;&gt;yEd&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A graph editor, with interesting auto-layout feature. I use it to document the architecture of my project.&lt;/p&gt;&#xA;" OwnerUserId="3527" LastActivityDate="2010-11-17T13:04:58.060" />
  <row Id="19592" PostTypeId="1" AcceptedAnswerId="19602" CreationDate="2010-11-17T13:06:13.327" Score="2" ViewCount="646" Body="&lt;p&gt;Im really not getting  the idea:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What is Detailed Design.&lt;/li&gt;&#xA;&lt;li&gt;Why use Detailed Design.&lt;/li&gt;&#xA;&lt;li&gt;Advantages/Disadvantage of using Detailed Design.&lt;/li&gt;&#xA;&lt;li&gt;Any alternative methods other than using Detailed Design.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Could some one please guide/explain me ?&lt;/p&gt;&#xA;" OwnerUserId="7333" LastActivityDate="2010-11-17T13:42:47.493" Title="What is detailed design? what are the advantage disadvantages using it ?" Tags="&lt;design&gt;&lt;software-engineering&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="2" />
  <row Id="19593" PostTypeId="2" ParentId="19584" CreationDate="2010-11-17T13:06:49.850" Score="3" ViewCount="" Body="&lt;p&gt;Not every task is suitable for parallel processing. Factoring is, but long division isn't. We use the term &lt;a href=&quot;http://en.wikipedia.org/wiki/Parallel_algorithm&quot; rel=&quot;nofollow&quot;&gt;Parallel algorithm&lt;/a&gt; to describe tasks which are designed to be executed in parallel (potentially on multiple computers, or using multiple cores of a single computer).&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-17T13:06:49.850" />
  <row Id="19594" PostTypeId="2" ParentId="19569" CreationDate="2010-11-17T13:12:20.393" Score="0" ViewCount="" Body="&lt;p&gt;WebObjects. Had iTunes not nailed it to the perch it would be pushing up the daisies.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-11-17T13:12:20.393" CommentCount="3" />
  <row Id="19595" PostTypeId="2" ParentId="19586" CreationDate="2010-11-17T13:17:41.137" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;What benefits do you have at your company?&lt;br&gt;&#xA; And what do you think about those benefits?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;pay is fine; we get 13 months pay&lt;/li&gt;&#xA;&lt;li&gt;free meals within the company's canteen (the cook makes good grub)&lt;/li&gt;&#xA;&lt;li&gt;if I do what is asked of me, no one cares where I do it from. I can come to work, I can stay home, I can sit in the canteen or on a terrace (not very attractive due to the weather at this time of year, but I can...)&lt;/li&gt;&#xA;&lt;li&gt;can dress what I want, except when I'm meeting with a client (I guess since it isn't regulated anywhere that even then I could theoretically come to work in my swimming shorts and flip-flaps, but ... yeah...)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Generally satisfied. I mean, it could always be better, but at this moment there is nothing I could think of that I'm missing. Got a good buncha people here, and the atmosphere is great (I gather that makes up for most other things).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I heard that there is a world crisis going on somewhere, so we shouldn't be too spoiled...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;What realistic benefits do you want to have?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, I wanted them to plant a tree or some sort of plant in front of my office window, but they strongly refused. We had quite an discussion about that.&#xA;They used some silly arguments &quot;you're on the 7th floor&quot; or something like that. Total nonsense. I'm still insisting on that plant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No, only kidding. Generally, I'm happy.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-11-17T14:23:50.000" LastActivityDate="2010-11-17T14:23:50.000" CommentCount="4" />
  <row Id="19596" PostTypeId="2" ParentId="6112" CreationDate="2010-11-17T13:18:43.557" Score="2" ViewCount="" Body="&lt;p&gt;Good interface design requires a lot of consideration before you even start coding, so if you plan to team up with a design guy, he should be on board very early. If the product is almost finished, he can add a bit of paint (fonts, colors etc.) but that is by far not enough to create a great user experience. For my current project, I literally spend days to draw and discard blueprints of the user interface layouts, and the customers are impressed. &lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-17T13:18:43.557" />
  <row Id="19597" PostTypeId="2" ParentId="19592" CreationDate="2010-11-17T13:24:29.070" Score="0" ViewCount="" Body="&lt;p&gt;Detailed design is more like an outline than anything else.  It's no more advantageous or disadvantageous than an outline of a thesis is advantageous or disadvantageous.  And like an outline of a thesis, it only summarizes the paper assuming your outline is either extremely clear or some context is assigned to it which makes sense of it.&lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-17T13:24:29.070" />
  <row Id="19598" PostTypeId="1" CreationDate="2010-11-17T13:29:48.777" Score="0" ViewCount="446" Body="&lt;p&gt;Assuming one wishes to work as a hired developer on various contracts, what are the highest paid areas of expertise?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find it difficult to get a grasp on this, because the market seems to continually change (well what else do markets do? :))&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen Sharepoint developers get huge amounts in the past, but lately it's evened out. (Surplus of supply?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Trading systems/financial markets specialists seem to get consistently good pay, but where I live (Sydney, Australia), a lot of these roles are advertised as permanent positions, while personally I prefer contracting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the highest-paying areas in your experience?&lt;/p&gt;&#xA;" OwnerUserId="5879" LastActivityDate="2010-11-17T13:40:01.273" ClosedDate="2010-11-17T14:00:34.567" Title="Which areas of programming are the highest-paid, for a contractor?" Tags="&lt;salary&gt;&lt;contracting&gt;&lt;specialization&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="19599" PostTypeId="2" ParentId="19592" CreationDate="2010-11-17T13:30:27.263" Score="1" ViewCount="" Body="&lt;p&gt;A detailed design allows you to evaluate design options prior to actually &lt;em&gt;implementing&lt;/em&gt; them. It can potentially save you a ton of needless work you would otherwise have spent on an implementation that was deeply flawed due to a high level design choice and had to be extensively rewritten. &lt;/p&gt;&#xA;" OwnerUserId="6825" LastActivityDate="2010-11-17T13:30:27.263" />
  <row Id="19600" PostTypeId="2" ParentId="19573" CreationDate="2010-11-17T13:39:21.710" Score="24" ViewCount="" Body="&lt;p&gt;Not my own anecdote, but I did once hear of a shop which stopped providing free coffee to its developers, telling them instead that any time they wanted to get coffee, they were free to walk to the nearest coffee shop (something like a ten minute trip each way) and purchase some.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pretty much the definition of false economy.&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-11-17T13:39:21.710" CommentCount="13" />
  <row Id="19601" PostTypeId="2" ParentId="19598" CreationDate="2010-11-17T13:40:01.273" Score="2" ViewCount="" Body="&lt;p&gt;The highest paid contractors are the ones that provide the most business value.  Don't be distracted by the particular technologies.  Work hard to understand the clients needs, and give him the right software.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-11-17T13:40:01.273" CommentCount="5" />
  <row Id="19602" PostTypeId="2" ParentId="19592" CreationDate="2010-11-17T13:42:47.493" Score="4" ViewCount="" Body="&lt;p&gt;1) When most people talk about detailed design, they are referring to a process known as top-down design.  In short, when you think about the problem you are trying to solve, you start at the highest level and then work yourself into the details.  This approach works very well when you have an overall structure you want your application to live within.  At the macro level you are considering how many machines will be needed to host your application, which existing services you will need to use, etc.  As you dive deeper, you are looking at use cases (or user stories if you prefer that terminology), and error handling (use cases have both normal and error condition paths to worry about).  As you go even further into the details, you are looking at your algorithm, state transitions, logical sequence, and how internal parts of the code work together.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) The classic top-down approach to detailed design is what is taught with the &quot;waterfall&quot; methodology, IEEE process guides, UML vendors, universities, and CMMI among others.  In many of these heavy processes they have you writing two design documents.  One is the overall architectural diagram (the top level design).  The other is the detailed design where you go further down the rabit hole.  In many cases it is the only approach to design many people know.  It is a very logical and methodical approach to breaking down a software problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) The main advantage is that you have identified what the critical sections are likely going to be.  If you will need to start working on how your software will be using another existing service, you have compiled your list of integration points.  You would be able to start talks with the owners of those services to plan your integration along with how to handle unexpected events.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main disadvantage is that many times people go too far down the rabit hole, and the design document takes a life of its own.  While it is advantageous to have an overall vision and architecture for how an application will work, you will invariably find your initial thoughts on the core details were flat wrong.  When that happens, either the design document is neglected or you have whole teams maintaining the paper and slowing progress on work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) I've already mentioned top-down design, so it follows there must be a &quot;bottom-up&quot; approach, right?  As it turns out, there is.  Essentially, the &quot;bottom-up&quot; approach is the core thought process behind Test Driven Development and Continuous Design methodologies.  Essentially, the details of working code start driving the design of how larger chunks of working code cooperate and interface with each other.  With TDD, you have unit tests to ensure that the details behave properly and keep validating your design.  Continous design teaches us that we will never truly know the details until the software is done.  Therefore, why try to fight the fact?  Instead of a big up-front design stage, the design is built in increments over several iterations of design/code and testing.  It is actually a very liberating concept that lets you concentrate on solving problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line, there is no perfect answer.  For me, I find a healthy balance between top-down and bottom-up design works well.  Essentially, I still take the time to think about the big picture.  I even map out a plan for the user interface idioms and my best ideas for it's design.  However, I don't go into great detail because I know the details will change.  Basically, you need to stop the top-down process when you are getting to areas you are not sure about.  Once you get to those areas, start with the bottom-up approach.  This lets you try different things, verify with the customer if it makes sense to them, and continue to improve over time.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-11-17T13:42:47.493" />
  <row Id="19603" PostTypeId="2" ParentId="8758" CreationDate="2010-11-17T13:44:42.220" Score="1" ViewCount="" Body="&lt;p&gt;One of the major benefits of doing Java development is that you can get very high quality tools for free.  You can then get very high quality POWER tools for money if you need them.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-17T13:44:42.220" CommunityOwnedDate="2011-01-23T07:24:28.233" CommentCount="2" />
  <row Id="19604" PostTypeId="2" ParentId="3726" CreationDate="2010-11-17T13:48:20.673" Score="1" ViewCount="" Body="&lt;p&gt;Delphi, Pascal, and Object Pascal are rated differently.  I'd like to know whether the programmers using these languages are actually using different languages.  I know there is a distinction that might be made I'm just just not sure what this particular distinction is.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They might be saying people writing PHP using RAD4PHP or whatever they call it are programming a different language than people writing their PHP using emacs or people writing their PHP using VI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They might be saying Object Pascal is Lazarus, but I thought that was Free Pascal. It's very confusing.  Anyway, I'd like to think there are more Delphi users out there than full time Javascript coders. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The might also index by pay and experience.  That would be much more interesting if they could show how lucrative a programming language is and how long a person can stand to program it and whether or not there is a glut or dearth of programmers in a given language.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-11-17T13:48:20.673" />
  <row Id="19605" PostTypeId="2" ParentId="19218" CreationDate="2010-11-17T13:53:49.183" Score="0" ViewCount="" Body="&lt;p&gt;We've taken a two pronged approach where the BA will create a functional overview that is meant for the business and our people as a primer.  After that are the functional details which are broken into definitions, business justification (as a developer you have to drink a bit of the kool-aid once in a while to get behind a project) and use cases.  I created these docs, but our Director still insists on the use cases being in outline form and not simple note cards.  I then churn those into technical use cases for us to work from while still using the functional details for business rules in the use cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short...don't do what we do.  Create a Word doc that has the business position for the solution as well as the definitions and terminology needed in the project.  Make the use cases simple, even if they add up to 100+.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once we have the use cases they are listed on a white board and assigned out...no formal system is used at that point but we have meetings (I wouldn't go so far as to say scrums) every other day.&lt;/p&gt;&#xA;" OwnerUserId="6574" LastActivityDate="2010-11-17T13:53:49.183" />
  <row Id="19606" PostTypeId="2" ParentId="8758" CreationDate="2010-11-17T13:58:30.393" Score="0" ViewCount="" Body="&lt;p&gt;The problems that I have is getting funding for the unsexy programs like Resharper and Red Gate's SQL Prompt.  I've had developers magically appear with Resharper on their machines and honestly I don't ask too much.  I have said in the past that if you obtain a license that at some point the company will reimburse so buy it and pray (of get your own copy and keep it when/if you leave).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess it's blind ignorance.&lt;/p&gt;&#xA;" OwnerUserId="6574" LastActivityDate="2010-11-17T13:58:30.393" CommunityOwnedDate="2011-01-23T07:24:28.233" CommentCount="2" />
  <row Id="19607" PostTypeId="2" ParentId="19573" CreationDate="2010-11-17T14:08:05.383" Score="7" ViewCount="" Body="&lt;p&gt;Bad project managers/team lead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since one incompetent person’s have the power to ruin the work of a group of people. In the end, the project would do much better without upper management(project/team lead) decisions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dose the &quot;Just do it quickly, we'll refactor later&quot; decides.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-11-18T07:04:54.873" LastActivityDate="2010-11-18T07:04:54.873" CommentCount="5" />
  <row Id="19608" PostTypeId="2" ParentId="17428" CreationDate="2010-11-17T14:10:28.913" Score="3" ViewCount="" Body="&lt;p&gt;Another good reference is Erlang and OTP in Action (http://www.manning.com/logan/).&#xA;About the code samples: is kind of hard to find best practices for Erlang, but I would suggest you try these websites:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Unfortunately I can't put more than one link - new user / spam protection, so I will enumerate&lt;/li&gt;&#xA;&lt;li&gt;trapexit org&lt;/li&gt;&#xA;&lt;li&gt;erlang org&lt;/li&gt;&#xA;&lt;li&gt;erlang factory&lt;/li&gt;&#xA;&lt;li&gt;planet erlang&lt;/li&gt;&#xA;&lt;li&gt;erlang solutions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Check the links from this article (open source software written in erlang) and you might find interesting code: &lt;a href=&quot;http://cacm.acm.org/magazines/2010/9/98014-erlang/fulltext&quot; rel=&quot;nofollow&quot;&gt;http://cacm.acm.org/magazines/2010/9/98014-erlang/fulltext&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7839" LastActivityDate="2010-11-17T14:10:28.913" />
  <row Id="19610" PostTypeId="2" ParentId="19573" CreationDate="2010-11-17T14:17:52.123" Score="51" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;No dedicated resources for project management&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've experienced several times when a few programmers were contracted, and someone who already has a demanding day-job should have managed the project, but in fact was too busy with other tasks so the project never really gained momentum. The programmers made &quot;prototypes&quot; and stuff, but without a lead, much of it was running in circles to look busy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Bad equipment for new programmers&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've once experienced a company where the policy was &quot;new programmers have to work on an really old PC with a small screen until they prove they are worthy&quot;. No surprise that such a policy caused a negative selection that drove off good people who always have the choice to work in a more sane environment.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-17T14:17:52.123" CommentCount="13" />
  <row Id="19611" PostTypeId="2" ParentId="19586" CreationDate="2010-11-17T14:18:22.180" Score="3" ViewCount="" Body="&lt;p&gt;In no particular order: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Competitive Salary&lt;/li&gt;&#xA;&lt;li&gt;Flexible work schedule &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tuition Assistance (I work for a university.)&lt;/strong&gt;&#xA;-- Most important &lt;/li&gt;&#xA;&lt;li&gt;Great medical benefits&lt;/li&gt;&#xA;&lt;li&gt;Retirement options &lt;/li&gt;&#xA;&lt;li&gt;Fitness/recreation Center &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Personally I find the education benefit to be the most important.  I can take any class, up to a maximum of 10 credit hours per quarter for free!  &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-11-17T14:18:22.180" CommentCount="2" />
  <row Id="19612" PostTypeId="2" ParentId="3726" CreationDate="2010-11-17T14:22:44.733" Score="-1" ViewCount="" Body="&lt;p&gt;I disagree with the premise that Tiobe is the best there is. In particular, it's not entirely clear exactly &lt;em&gt;what&lt;/em&gt; Tiobe tracks. They make some vague generalizations on their web site, but nothing that's anywhere close to specific enough that somebody could (for example) hope to reproduce what they publish.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://langpop.com/&quot; rel=&quot;nofollow&quot;&gt;langpop.com&lt;/a&gt;, by contrast, publishes their exact methodology and even provides tools on the site that let you directly reproduce what they publish as well as allowing somebody to manipulate the data, such as by giving different weights to the factors they track.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's little question that this still has a fairly high margin of error -- but IMO a more meaningful question would be about a better methodology, rather than people's opinions about what languages should be ranked where. This almost inevitably leads to thinly disguised versions of &quot;I like X, so it should have top ranking (or at least a higher ranking).&quot;&lt;/p&gt;&#xA;" OwnerUserId="902" LastEditorUserId="902" LastEditorDisplayName="" LastEditDate="2010-11-17T15:43:38.437" LastActivityDate="2010-11-17T15:43:38.437" />
  <row Id="19613" PostTypeId="2" ParentId="19573" CreationDate="2010-11-17T14:32:35.797" Score="35" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Researching / Reading / Writing code not related to the product development is a waste of resource.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some programmers and even managers believe in that. Normally, they just do programming based on the knowledge in their heads, and do research and look for answers when they face problems. They don't continuously improve their knowledge proactively. My opinion, we should always keep ourselves up to date, and the knowledge we gathered would be useful to us in solving existing and future problems. Of course, you must allocate your time wisely to do so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is also similar to &lt;a href=&quot;http://programmers.stackexchange.com/questions/19573/what-are-the-worst-false-economies-in-software-development/19582#19582&quot;&gt;Dan's answer&lt;/a&gt;. Some managers just want the developers to quickly dive in and develop the product according to requirements without researching on existing products in the market.&lt;/p&gt;&#xA;" OwnerUserId="6969" LastActivityDate="2010-11-17T14:32:35.797" CommentCount="2" />
  <row Id="19614" PostTypeId="2" ParentId="16708" CreationDate="2010-11-17T14:34:43.020" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://strongfortress.com&quot; rel=&quot;nofollow&quot;&gt;Earn money with it.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7499" LastActivityDate="2010-11-17T14:34:43.020" CommunityOwnedDate="2011-02-04T23:07:08.093" />
  <row Id="19616" PostTypeId="2" ParentId="19573" CreationDate="2010-11-17T14:45:25.523" Score="20" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Cheapest hardware&lt;/strong&gt; given to a &lt;strong&gt;consultant&lt;/strong&gt; when the consultant cost more than &lt;strong&gt;150$/hour&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Putting it in perspective a better hardware may at least make the job 30min more effective per day. That would give 30min * 20 days of work per month=600min/month =10hours/month &gt; more that 1 day job = 10 hours*150$/hour = 1500$&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now wouldn't a consultant work more efficient if he/she had a 1500$ computer?&#xA;Would it make the consultant less irritated?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now the problem seems to be that there two budgets, one for the consultant and one for the PC hardware.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-11-17T14:45:25.523" CommentCount="8" />
  <row Id="19617" PostTypeId="2" ParentId="19589" CreationDate="2010-11-17T15:01:16.627" Score="0" ViewCount="" Body="&lt;p&gt;I've never used it personally, but I heard it being used at many clients while I was at a previous consulting firm.  I would say it's definitely used, however those were all internally for their own systems, not used to build software to sell.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-11-17T15:01:16.627" />
  <row Id="19618" PostTypeId="2" ParentId="16708" CreationDate="2010-11-17T15:15:52.870" Score="0" ViewCount="" Body="&lt;p&gt;I don't.  If I'm not motivated to code on a particular day or week or month, I go and do something I am motivated to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's your free time, you shouldn't be forcing yourself to do things you don't want to do - that's what work is for...&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-17T15:15:52.870" CommunityOwnedDate="2011-02-04T23:07:08.093" />
  <row Id="19619" PostTypeId="2" ParentId="18107" CreationDate="2010-11-17T15:25:59.097" Score="0" ViewCount="" Body="&lt;p&gt;For completeness I'll mention &lt;a href=&quot;http://www.umlgraph.org/&quot; rel=&quot;nofollow&quot;&gt;UMLGraph&lt;/a&gt;, it allows you to create class diagrams and sequence diagrams based on a java-like input files. It does not support use case diagrams at the moment.&lt;/p&gt;&#xA;" OwnerUserId="7034" LastActivityDate="2010-11-17T15:25:59.097" />
  <row Id="19620" PostTypeId="2" ParentId="19573" CreationDate="2010-11-17T15:28:14.743" Score="35" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;We can save money by having the programmers double as testers/technical writers&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are paying programmer salaries for tester/technical writer work, then you are wasting money and likely getting lower quality work than someone who has dedicated their career to that task. Also, when a programmer is up against a tight deadline testing and documentation are very likely to get dropped or done half-ass to meet it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW: Developers are ALWAYS up against a tight deadline.&lt;/p&gt;&#xA;" OwnerUserId="287" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-11-17T16:48:17.543" LastActivityDate="2010-11-17T16:48:17.543" CommentCount="2" />
  <row Id="19621" PostTypeId="2" ParentId="19586" CreationDate="2010-11-17T15:30:28.250" Score="1" ViewCount="" Body="&lt;p&gt;Current benefits:&lt;br/&gt;&#xA;1) 12.5 monthly payments (0.5 is the christmas bonus)&lt;br/&gt;&#xA;2) 20 days of holiday&lt;br/&gt;&#xA;3) limited days that I can work from home&lt;br/&gt;&#xA;4) casual attire&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wish list:&lt;br/&gt;&#xA;1) ability to work when/where I want&lt;br/&gt;&#xA;2) company sponsored regular training and tech courses&lt;br/&gt;&#xA;3) separate offices - we work in an open office and even though it's relatively quiet sometimes you just want/need complete silence&lt;br/&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's all for now. I'm 24 now, but  regarding pensions I'd rather get the money upfront and deposit them in a savings account.&lt;/p&gt;&#xA;" OwnerUserId="6614" LastActivityDate="2010-11-17T15:30:28.250" />
  <row Id="19622" PostTypeId="1" AcceptedAnswerId="19623" CreationDate="2010-11-17T15:32:33.413" Score="10" ViewCount="286" Body="&lt;p&gt;I'm getting into the more advanced programming classes at my university, and feel like I am running into some obvious shortcomings with producing quality code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, my data structures class has us reading in a list of songs, creating Song objects, then using various structures to implement searches for artists, titles, lyric words and lyric phrases.  The professor gives us a list of test examples to prove the code produces the expected results, and the grades are based on functionality, completeness, and bug awareness.  Currently I am holding a 90 average in that class, but am not really satisfied that my code is of good quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what techniques did your college professors use to get you to write better code?&lt;/p&gt;&#xA;" OwnerUserId="7073" LastActivityDate="2010-11-18T14:29:24.070" Title="As a student, what techniques used by faculty helped you learn the most?" Tags="&lt;learning&gt;&lt;code-quality&gt;&lt;university&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="1" />
  <row Id="19623" PostTypeId="2" ParentId="19622" CreationDate="2010-11-17T15:35:14.313" Score="19" ViewCount="" Body="&lt;p&gt;Can I be honest and say they did nothing at all?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;University courses tend not to be in enough depth to get into that sort of thing.  They're more concerned with making sure you've learned how to do something and don't have the time to move on to doing it well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just to be clear, I'm not knocking university lecturers, or saying that they don't know what makes good code.  Just in 10 - 15 weeks of lectures, a few hours a week, with minimal one on one time it's unlikely to happen.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-17T15:50:58.887" LastActivityDate="2010-11-17T15:50:58.887" CommentCount="3" />
  <row Id="19624" PostTypeId="2" ParentId="19622" CreationDate="2010-11-17T15:44:20.247" Score="8" ViewCount="" Body="&lt;p&gt;In my core CS courses (data structures, oo, etc) I had the same professor. He would take off major points if your program didn't do what he assigned, and minor(very, like 1/2-1/4) points for not doing it in the best/most readable/most efficient way. He then would write the 'correct' way next to the area on the hardcopy printout of the program. After he completed grading an assignment, he would spend part of a class period going over some of the most common errors and not-best code, and also explain how to fix them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This professor also had a style syllabus he gave us all at the beginning of the sophmore year. Code for his class had to be formatted in his style. Minor infractions were worth minor points, as well. That taught me the importance of being consistent in my formatting. Also, several of my classmates have said that learning early to program to a standard helped them when they got jobs that had strict coding standards.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-17T15:44:20.247" CommentCount="3" />
  <row Id="19625" PostTypeId="2" ParentId="18704" CreationDate="2010-11-17T15:47:42.920" Score="1" ViewCount="" Body="&lt;p&gt;I had a teacher write a program that you wrote modules for. Basically, it was a game and you had to write an algo to solve it, everything was there to make it graphical and pretty and work nicely. Perhaps you should write your own game framework and give them basic tools that are dumbed-down versions of cool things they can do later outside of the box you've put them in.&lt;/p&gt;&#xA;" OwnerUserId="1525" LastActivityDate="2010-11-17T15:47:42.920" />
  <row Id="19626" PostTypeId="2" ParentId="19622" CreationDate="2010-11-17T15:48:34.297" Score="5" ViewCount="" Body="&lt;p&gt;Some good rules of thumb for producing good code.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Write documentation before code&lt;/li&gt;&#xA;&lt;li&gt;Write (or at least), formulate test cases prior to implementation of code.&lt;/li&gt;&#xA;&lt;li&gt;Professor told us: &quot;There is a large gap between industry and academia.  Learn to embrace this when you jump into your first career.&quot; &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These will take you very fair during your programming career.  We are not always perfect at it, but if you give some effort up front to these you will see a better resulting code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Documentation prior to code helps gather thoughts, in the same way defining specifications helps define the problem.  Testing prior to coding will also help you refine your functions/methods and give more direction to your code.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The 3rd piece of advice is the best, you need to realize you are when you graduate not a great programmer.  At this point you are a programmer who has had a taste of programming in all sorts of langauges/situations.  You are a programmer who knows how to learn how to program.  This is all you need, you take your career where you go from there. &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-11-17T15:48:34.297" CommentCount="2" />
  <row Id="19627" PostTypeId="1" CreationDate="2010-11-17T16:01:59.460" Score="8" ViewCount="275" Body="&lt;p&gt;As I have had it explained, the open/close principle states that once written code should not be modified (aside from bug fixes). But if my business rules change shouldn't I modify the code implementing those changes? I suspect I'm not understanding something about how the principle because it doesn't make sense to me.&lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-12-17T17:29:23.757" Title="Clarify the Open/Close Principle" Tags="&lt;object-oriented&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="19628" PostTypeId="2" ParentId="19419" CreationDate="2010-11-17T16:03:30.593" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;https://datamarket.azure.com/&quot; rel=&quot;nofollow&quot;&gt;Windows Azure Marketplace&lt;/a&gt; - although as of now, most data sources say 'coming soon'&lt;/p&gt;&#xA;" OwnerUserId="1237" LastActivityDate="2010-11-17T16:03:30.593" />
  <row Id="19629" PostTypeId="2" ParentId="19627" CreationDate="2010-11-17T16:07:11.950" Score="10" ViewCount="" Body="&lt;p&gt;Have you read the &lt;a href=&quot;http://www.objectmentor.com/resources/articles/ocp.pdf&quot; rel=&quot;nofollow&quot;&gt;article&lt;/a&gt; by Uncle Bob's pals at ObjectMentor? I think it's one of the better explanations out there.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-17T16:07:11.950" CommentCount="5" />
  <row Id="19631" PostTypeId="1" AcceptedAnswerId="19634" CreationDate="2010-11-17T16:20:07.650" Score="4" ViewCount="293" Body="&lt;p&gt;I think it's safe to assume that for most programmers, producing documentation is not as fun as actually coding. I think it's also safe to assume that most good programmers recognize the need for useful documentation, and the code that they write is not an exception by any stretch of the imagination.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I'd like to know: what's the best documentation you produce (and source code doesn't count). Answer can be anything from comments to unit tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The bigger question is &lt;em&gt;why&lt;/em&gt; is that the best documentation you produce?&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-11-18T05:28:11.680" Title="What's the best documentation you produce and why?" Tags="&lt;behavior&gt;&lt;documentation&gt;" AnswerCount="10" CommentCount="1" FavoriteCount="6" />
  <row Id="19634" PostTypeId="2" ParentId="19631" CreationDate="2010-11-17T16:23:08.433" Score="7" ViewCount="" Body="&lt;p&gt;Our Wiki.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because people actually use it and update it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the nature of a Wiki lends itself to the way developers want to work which is just get the facts down and move on.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's quick and easy, searching makes it simple to find what you're looking for which minimises the chance of duplication (and the subsequent &quot;so which is right&quot;) and you need minimal technical skill to read or change stuff (as opposed to, say, tests).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Versioning is automatic, formatting is basic but effective which means the content tends to be prioritised over prettiness, and there's no pressure to have cover pages, change tables, summaries and so on all of which add work for little benefit.  Because it doesn't have a specific structure, people just worry about putting down what's important, not what fits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's all my guess as to why it gets used but as a development manager the main thing I like is that it does get used and remains broadly up to date.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-17T16:45:14.363" LastActivityDate="2010-11-17T16:45:14.363" CommentCount="4" />
  <row Id="19635" PostTypeId="2" ParentId="19631" CreationDate="2010-11-17T16:25:03.510" Score="6" ViewCount="" Body="&lt;p&gt;Well written tests.  They describe what the code should do, and demonstrate that it works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since they are automatically run with every build, they are never out of date.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-11-17T18:52:02.183" LastActivityDate="2010-11-17T18:52:02.183" CommentCount="3" />
  <row Id="19636" PostTypeId="2" ParentId="18704" CreationDate="2010-11-17T16:27:03.983" Score="1" ViewCount="" Body="&lt;p&gt;In my intro course, three projects stuck out at me&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write a program to display a random &lt;a href=&quot;http://www.google.com/images?q=mondrian&amp;amp;um=1&amp;amp;ie=UTF-8&amp;amp;source=univ&amp;amp;ei=EAHkTIulGoWKlwffuYnkDA&amp;amp;sa=X&amp;amp;oi=image_result_group&amp;amp;ct=title&amp;amp;resnum=2&amp;amp;ved=0CDYQsAQwAQ&amp;amp;biw=1178&amp;amp;bih=712&quot; rel=&quot;nofollow&quot;&gt;Mondrian&lt;/a&gt; painting&lt;br/&gt;&#xA;Write the first part of a BrickBreaker game, get the ball bouncing around inside a set area&lt;br/&gt;&#xA;Write a text-based adventure game&lt;br/&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From my algorithms class&lt;br/&gt;&#xA;Implement a Serpinski triangle&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These four projects gave me a great understanding of string processing, randomization, graphics, recursion and animation.&lt;/p&gt;&#xA;" OwnerUserId="7073" LastActivityDate="2010-11-17T16:27:03.983" />
  <row Id="19637" PostTypeId="2" ParentId="19541" CreationDate="2010-11-17T16:28:25.043" Score="7" ViewCount="" Body="&lt;p&gt;I'll contrast LL and LR parsing for a number of criteria:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Complexity&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;LL wins here, hands down. You can easily hand-write an LL parser. In fact, this is commonly done: the Microsoft C# compiler is a hand-written recursive descent parser (source &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2010/02/04/how-many-passes.aspx&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;, look for a comment made by Patrick Kristiansen - the blog post is very interesting as well).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;LR parsing uses a rather counter-intuitive method to parse a text. It works, but it took me some time to wrap my head around how it works exactly. Writing such a parser by hand is therefore hard: you'd be more or less implementing an LR parser-generator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Generality&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;LR wins here: all LL languages are LR languages, but there are more LR languages than LL languages (a language is an LL language if it can be parsed with an LL parser, and a language is an LR language if it can be parsed with an LR parser).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;LL has quite a few nuisances that &lt;em&gt;will&lt;/em&gt; bother you when implementing just about any programming language. See &lt;a href=&quot;http://en.wikipedia.org/wiki/LL_parser#Conflicts&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; for an overview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are unambiguous languages that are not LR languages, but those are pretty rare. You almost never encounter such languages. However, LALR does have a few issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;LALR is more or less a hack for LR parsers to make the tables smaller. The tables for an LR parser can typically grow enormous. LALR parsers give up the ability to parse all LR languages in exchange for smaller tables. Most LR parsers actually use LALR (not secretively though, you can usually find exactly what it implements).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;LALR can complain about shift-reduce and reduce-reduce conflicts. This is caused by the table hack: it 'folds' similar entries together, which works because most entries are empty, but when they are not empty it generates a conflict. These kinds of errors are not natural, hard to understand and the fixes are usually fairly weird.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Compiler errors and error recovery&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;LL wins here. In an LL parse, it's usually pretty easy to emit useful compiler errors, in particular in hand-written parsers. You know what you're expecting next, so if it doesn't turn up, you usually know what went wrong and what the most sensible error would be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, in LL parsing, error recovery is a lot easier. If an input doesn't parse correctly, you can try to skip ahead a bit and figure out if the rest of the input does parse correctly. If for instance some programming statement is malformed, you can skip ahead and parse the next statement, so you can catch more than one error.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using an LR parser this is a lot more difficult. You can try to augment your grammar so that it accepts erroneous input and prints errors in the areas where things went wrong, but this is usually pretty hard to do. The chance you end up with a non-LR (or non-LALR) grammar also goes up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Speed&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Speed is not really an issue with the manner in which you parse your input (LL or LR), but rather the quality of the resulting code and the use of tables (you can use tables for both LL and LR). LL and LR are therefore comparable in this respect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.garshol.priv.no/download/text/bnf.html&quot; rel=&quot;nofollow&quot;&gt;Here&lt;/a&gt; is a link to a site also contrasting LL and LR. Look for the section near the bottom.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://compilers.iecc.com/comparch/article/92-05-059&quot; rel=&quot;nofollow&quot;&gt;Here&lt;/a&gt; you can find a conversation regarding the differences. It's not a bad idea to critically look at the opinions voiced there though, there is a bit of a &lt;a href=&quot;http://programmers.stackexchange.com/questions/tagged/holy-war&quot;&gt;holy war&lt;/a&gt; going on there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For more info, &lt;a href=&quot;http://programmers.stackexchange.com/questions/17824/should-i-use-a-parser-generator-or-should-i-roll-my-own-custom-lexer-and-parser-c/18853#18853&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://cstheory.stackexchange.com/questions/2399/what-is-the-most-powerful-kind-of-parser/2401#2401&quot;&gt;here&lt;/a&gt; are two of my own posts about parsers, though they are not strictly about the contrast between LL and LR.&lt;/p&gt;&#xA;" OwnerUserId="7649" LastActivityDate="2010-11-17T16:28:25.043" />
  <row Id="19639" PostTypeId="2" ParentId="19584" CreationDate="2010-11-17T16:32:08.230" Score="1" ViewCount="" Body="&lt;p&gt;Computer scientists had been dreaming of the moment in which parallel processing could be made a reality, and then it came as a surprise to find out that it's really not so advantageous or even possible to apply parallel processing to many problems.  Apart from the fact that some problems must be solved in a linear fashion, there's also the fact that there are diminishing returns, which is to say, the amount of work put into simply dividing up the work and distributing it and then making sense of work done by the cluster afterwards begins to actually become more trouble than its worth.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately this threshold depends mostly on the problem and therefore makes it difficult to know when using clusters would actually make calculations faster which leads into some very complicated algorithms.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back to your original question, it really depends on what you want to accomplish as to whether or not you can do it.  Though it should be said that if we programmers knew a way to build a program to analyze a problem, we'd all be out of a job.  &lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-17T16:32:08.230" />
  <row Id="19640" PostTypeId="2" ParentId="19631" CreationDate="2010-11-17T16:35:22.223" Score="4" ViewCount="" Body="&lt;p&gt;Does &lt;a href=&quot;http://en.wikipedia.org/wiki/Javadoc&quot; rel=&quot;nofollow&quot;&gt;Javadoc&lt;/a&gt; count? I think my API documentation is reasonably well made and maintained. Why? Because it's as integrated with the coding process as it can be, and its structure and notation is well enough standardized. No need to waste brain cells on thinking how to actually realize the documentation, or link it with the code, or version it, because all this just happens by itself.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-11-17T16:35:22.223" CommentCount="2" />
  <row Id="19641" PostTypeId="2" ParentId="19631" CreationDate="2010-11-17T16:35:57.823" Score="0" ViewCount="" Body="&lt;p&gt;In one of my previous jobs before I left, one of my tasks was to help with this document that contained various tidbits about the code base, which was a mix of VBScript, JScript, and C/C++ for the COM parts in addition to various mark-up languages as this was for a dot-com after all.  I believe it was nearly a dozen pages when I left and contained most of what I had learned in the ~9 or so months that I had been working there.  This is the best I've produced because of how it is the closest I've come to a good brain dump of all the things that were in my head in working with most of this code.  The leaving was more of a known issue when I started so in a sense it wasn't a shocking thing and it was kind of fun to try to spill the contents of my brain into a Word doc.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-17T16:35:57.823" />
  <row Id="19643" PostTypeId="2" ParentId="1719" CreationDate="2010-11-17T16:44:34.723" Score="1" ViewCount="" Body="&lt;p&gt;While I agree it is good to learn new languages (and even imperative through a long career), I think one a year is too much past the first five-ten years. What I would rather see is someone with this level of experience learning new things about the languages they already know. At some point you need depth as well as breadth of knowledge. So you can write an If construct in 12 languages, big whoop. I'd rather see someone who really digs in and become expert in at least one thing. And then the next few years become an expert at something else. Over a 30+year career, I want someone to have depth of knowledge not just the basics in a lot of things. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-17T16:44:34.723" CommunityOwnedDate="2010-11-17T16:44:34.723" />
  <row Id="19645" PostTypeId="2" ParentId="19631" CreationDate="2010-11-17T16:48:34.500" Score="0" ViewCount="" Body="&lt;p&gt;I use in code comments. I write them as I code, and comment each block explaining the process, not the specifics of how the code runs (no &lt;code&gt;//set x = y&lt;/code&gt; comments!). I also use javadoc when writing Java code so that anyone using the code in our IDE has an instant rough guide to how to use my code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For high level documentation (class structure, framework and installation instructions) I use our company wiki. That put all the information out in one place, rather than trying to distribute Word documents all over the place.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-17T16:48:34.500" />
  <row Id="19646" PostTypeId="1" CreationDate="2010-11-17T16:48:37.623" Score="2" ViewCount="449" Body="&lt;p&gt;HI,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been thinking about what next in my career, one idea I have is to work for myself as a indie developer using Windows (can't afford a Mac or want to do Objective C). But I want to build attractive desktop apps, that's why I was really interested in WPF, but now that seems to not to have a strong future (I could be wrong).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know Flex/Adobe AIR, but if Adobe decide to stop supporting either I'm stuffed. So what other options are there, C#, Java?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any thoughts, please.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stephen&lt;/p&gt;&#xA;" OwnerUserId="3242" LastActivityDate="2010-11-17T18:38:17.313" Title="with silverlight/WPF not having a healthy future what are the alternative for windows desktop development" Tags="&lt;career&gt;&lt;windows&gt;&lt;wpf&gt;" AnswerCount="5" CommentCount="5" />
  <row Id="19647" PostTypeId="2" ParentId="19573" CreationDate="2010-11-17T16:53:50.687" Score="8" ViewCount="" Body="&lt;h3&gt;Using &quot;simple&quot; languages without much expressiveness&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Yeah, it makes it easier to find programmers to maintain the code, but it makes it harder to find &lt;em&gt;good&lt;/em&gt; programmers who don't just learn the latest buzzword that will get them hired.  Yeah, it makes individual bits code easier to understand, but it also makes it about as rigid as a 2x4 and increases the volume of code that needs to be understood.  Yeah, it's backed by a huge corporation, but said huge corporation innovates slowly and bureaucratically.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-17T16:53:50.687" CommentCount="6" />
  <row Id="19648" PostTypeId="2" ParentId="19646" CreationDate="2010-11-17T16:57:58.023" Score="1" ViewCount="" Body="&lt;p&gt;I think Microsoft is strategically trying to tell you that you can build rich HTML5 apps (note their large hullabaloo about releasing a Beta of IE9 in San Fran recently) for 'the desktop' using IE9 as your platform.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-17T16:57:58.023" />
  <row Id="19649" PostTypeId="1" CreationDate="2010-11-17T17:00:40.377" Score="3" ViewCount="242" Body="&lt;p&gt;It's a common practice to place copyright notices, various legal disclaimers and sometimes even full license agreements in each source file of an open-source project. Is this really necessary for a (1) open-source project and (2) closed-source project? What are you trying to achieve or prevent by putting these notices in source files?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I understand it's a legal question and I doubt we can get a fully competent answer here at programmers.SO (it's for programmers, isn't it?) What would also be interesting to hear is, when you put legal stuff in your source files, is it because &quot;everyone does it&quot; or you got legal advice? What was the reasoning?&lt;/p&gt;&#xA;" OwnerUserId="5635" LastEditorUserId="5635" LastEditorDisplayName="" LastEditDate="2010-11-17T17:28:49.443" LastActivityDate="2011-01-06T10:33:35.610" Title="Copyright notices/disclaimers in source files" Tags="&lt;open-source&gt;&lt;copyright&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="19650" PostTypeId="2" ParentId="19627" CreationDate="2010-11-17T17:06:40.093" Score="8" ViewCount="" Body="&lt;p&gt;This is probably the hardest of the solid principles to explain. Let me try. Imagine you wrote an Invoice class that works perfectly and has no bugs. It makes a PDF of an invoice. Then someone says they want an HTML invoice with links in it. You don't change any code in Invoice to satisfy this request. Instead, you make another class, HTMLInvoice, that does what they now want. You leverage inheritance so that you don't have to write a lot of duplicate code in HTMLInvoice. Old code that was using the old Invoice isn't broken or really affected in any way. The new code can use HTMLInvoice. (If you also do Liskov Substitutability, the L of solid, you can give HTMLInvoice instances to existing code that's expecting Invoice instances.) Everyone lives happily ever after.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Invoice is closed to modification, open to extension. And you have to write Invoice properly in advance for this to work, btw.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-17T17:06:40.093" CommentCount="8" />
  <row Id="19651" PostTypeId="2" ParentId="19573" CreationDate="2010-11-17T17:08:27.253" Score="16" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Months of work save days of planning&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Not investing enough time into planning)&lt;/p&gt;&#xA;" OwnerUserId="193" LastActivityDate="2010-11-17T17:08:27.253" CommentCount="2" />
  <row Id="19652" PostTypeId="2" ParentId="19646" CreationDate="2010-11-17T17:09:42.743" Score="16" ViewCount="" Body="&lt;p&gt;I seriously doubt that WPF or Silverlight will be going away, and bet they will continue to have strong support by Microsoft.  HTML5 won't be the right technology for all desktop apps; people will need either WinForms or WPF to write hard-core desktop apps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Technologies do change eventually; you could go with WPF for now (I do Java at work but WPF has really great features &amp;amp; effects) and change to something else later if there is a better tool for the job.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-11-17T17:09:42.743" CommentCount="6" />
  <row Id="19653" PostTypeId="2" ParentId="19649" CreationDate="2010-11-17T17:14:54.910" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is this really necessary&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No. It's not legally required. &lt;em&gt;(IANAL, but I've seen this stated by one.)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;If you've got a project where individual files might be taken out of context, it may be sensible - but it only &lt;em&gt;requires&lt;/em&gt; a couple of lines, to say something like:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;This file is part of &amp;lt;project&gt; which is released under &amp;lt;license&gt;.&lt;br&gt;&#xA;  See file &amp;lt;filename&gt; or go to &amp;lt;url&gt; for full license details.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;For anything else, you can simply put a LICENSE text file in the project root, and any relevant details/credits/etc in the README file - it's still copyrighted (automatically), so it's just a question of being clear license-wise in the readme file.&lt;/p&gt;&#xA;" OwnerUserId="89" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-17T17:29:03.813" LastActivityDate="2010-11-17T17:29:03.813" />
  <row Id="19654" PostTypeId="2" ParentId="19646" CreationDate="2010-11-17T17:16:58.187" Score="4" ViewCount="" Body="&lt;p&gt;If you want to build desktop apps for Windows, Delphi is still the best choice.  It's not the most popular one, but that just means you'll have a competitive advantage. ;)&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-11-17T17:16:58.187" CommentCount="1" />
  <row Id="19656" PostTypeId="2" ParentId="10128" CreationDate="2010-11-17T17:26:28.010" Score="0" ViewCount="" Body="&lt;p&gt;It looks like a great idea.  I wish it was a plug-in to other IDE's though, since existing IDE's have a lot of features that may be missing from Code Bubbles.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-11-17T17:26:28.010" CommunityOwnedDate="2010-11-17T17:26:28.010" />
  <row Id="19658" PostTypeId="2" ParentId="19273" CreationDate="2010-11-17T17:33:52.047" Score="2" ViewCount="" Body="&lt;p&gt;Yes, I would call Oberon a better Pascal. With Oberon, Professor Wirth got to the core of object oriented programming with type extension and procedure variables. I find it elegant that Oberon is a smaller language than Pascal with much more power. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oberon 2 took the language a step further by binding methods to records.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do dislike the upper case reserved words. I find the syntax an improvement with the elimination of many begins and ends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oberon was used to write a very interesting operating system described in &lt;em&gt;Project Oberon: The Design of an Operating System and Compiler&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5842" LastActivityDate="2010-11-17T17:33:52.047" />
  <row Id="19659" PostTypeId="2" ParentId="19649" CreationDate="2010-11-17T17:36:07.397" Score="0" ViewCount="" Body="&lt;h3&gt;For any open-source project&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;You are defining the conditions under which the code is to be used and redistributed (or not, depending on those conditions).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the very least, a license can answer questions such as:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Appropriation:&lt;/strong&gt; Can someone take the code and evolve it into a different project? A good example of such a phenomenon is Google Chrome, which is based upon the open-source Chromium project.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do they need to give you credit, seek permission, etc...&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Commercial Use:&lt;/strong&gt; Can your code be used commercially, such as within Photoshop as a third-party DLL? If so do different conditions apply?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Redistribution:&lt;/strong&gt; Do any uses of your code have to be in software with a similar/identical license? Licenses such as the GPL which require this are called &lt;em&gt;viral&lt;/em&gt; licenses (and I don't know if that's a negative term, or just a statement of fact).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Etc. That's by no means a comprehensive list, it's just to give you an idea of the questions a license would state clearly.&lt;/p&gt;&#xA;" OwnerUserId="5570" LastActivityDate="2010-11-17T17:36:07.397" CommentCount="2" />
  <row Id="19661" PostTypeId="2" ParentId="19646" CreationDate="2010-11-17T17:43:07.280" Score="1" ViewCount="" Body="&lt;p&gt;WPF is definitely not going anywhere.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft does backwards compatibility well beyond what most other companies attempt.  If they dropped WPF, they would essentially be tossing away significant underpinnings of both Vista/Windows 7 and the .NET Framework.  Not likely to happen!&lt;/p&gt;&#xA;" OwnerUserId="6639" LastEditorUserId="6639" LastEditorDisplayName="" LastEditDate="2010-11-17T17:49:46.933" LastActivityDate="2010-11-17T17:49:46.933" CommentCount="6" />
  <row Id="19662" PostTypeId="1" AcceptedAnswerId="19681" CreationDate="2010-11-17T17:52:36.013" Score="6" ViewCount="397" Body="&lt;p&gt;I visited the site of Embarcadero and read about Delphi. Though the new version is named Delhi XE, but it is not Express Edition. I want to learn programming in Delphi. Is there any Express Edition or a trial version with no time limit?&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2011-02-04T22:22:50.823" Title="Is there any express edition like thing in Delphi?" Tags="&lt;delphi&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="19664" PostTypeId="2" ParentId="19622" CreationDate="2010-11-17T17:59:48.953" Score="2" ViewCount="" Body="&lt;p&gt;just another cherry on the cake - &lt;/p&gt;&#xA;&#xA;&lt;p&gt;University courses are intended to make you capable of understanding what you desire to. They actually make you a 'beginner' so that you can learn what you want as starting from scratch is very difficult..they kick start your learner's mind.  &lt;/p&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-11-17T17:59:48.953" />
  <row Id="19665" PostTypeId="2" ParentId="19549" CreationDate="2010-11-17T18:00:41.473" Score="2" ViewCount="" Body="&lt;p&gt;Some operations probably warrant a &quot;try-again&quot; approach, especially if they depend on external resources like a database.  For example, if a database cannot be connected to or a query fails, the operation may be retried a certain number of times before giving up and throwing an error to a higher level.  However, in some logic, trying the same thing multiple times is often a symptom of bad code and magical thinking that hides real problems.&lt;/p&gt;&#xA;" OwnerUserId="4949" LastActivityDate="2010-11-17T18:00:41.473" CommentCount="1" />
  <row Id="19667" PostTypeId="2" ParentId="18704" CreationDate="2010-11-17T18:07:56.307" Score="3" ViewCount="" Body="&lt;p&gt;I would iterate on a prime number generator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assignments&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Print primes from 1 to 100.&lt;/li&gt;&#xA;&lt;li&gt;Print primes from input1 to input2.&lt;/li&gt;&#xA;&lt;li&gt;Record and print performance data of&#xA;prime generation.&lt;/li&gt;&#xA;&lt;li&gt;Graph performance data of prime&#xA;generation.&lt;/li&gt;&#xA;&lt;li&gt;Iterate on algorithm optimization of&#xA;the prime number generator.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2078" LastActivityDate="2010-11-17T18:07:56.307" />
  <row Id="19668" PostTypeId="2" ParentId="19549" CreationDate="2010-11-17T18:13:24.400" Score="3" ViewCount="" Body="&lt;p&gt;This is a business question, not a technical one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I'm coding with researchers or on a prototype, so we'll build something with very low robustness. If it breaks, we fix it. There's no point in investing in extra magic if we're going to throw away the code soon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if the users of your system need it to be robust, you should build it that way. And you should make it robust specifically in the ways that you and they need to maximize long-term success, while ignoring the kinds of redundancy/robustness that they don't need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally, I start rough and then add robustness over time. I frequently make questions like this part of the normal planning process. I generally work in the Extreme Programming style, where we make a long list of desired features, and I put robustness features in there, too. E.g., &quot;System survives the failure of any single box,&quot; gets mixed in with things like &quot;User can join using Facebook credentials.&quot; Whichever one comes up first, I build first.&lt;/p&gt;&#xA;" OwnerUserId="1843" LastActivityDate="2010-11-17T18:13:24.400" />
  <row Id="19671" PostTypeId="2" ParentId="19622" CreationDate="2010-11-17T18:16:43.213" Score="1" ViewCount="" Body="&lt;p&gt;I learned the most being a teaching assistant and grading others code than I ever did in lecture.  The code I graded followed a classic bell curve, most was exactly the same, a very small portion was horrible, and a very small portion was incredible.  I learned the most from grading the horrible and incredible.  The incredible for obvious reasons.  The horrible because I had to try and find where they went wrong and give pointers without just coding it for them.&lt;/p&gt;&#xA;" OwnerUserId="2078" LastActivityDate="2010-11-17T18:16:43.213" />
  <row Id="19672" PostTypeId="2" ParentId="19631" CreationDate="2010-11-17T18:24:31.867" Score="5" ViewCount="" Body="&lt;p&gt;One of my pets peeves is the absent-or-afterthought nature of the documentation that goes along with virtually all open source software. While I think that it is great that other engineers release their code so that I can avoid reinventing the wheel, it is teeth-grindingly frustrating to find the code accompanied by nothing but a README file with little or no usage examples.  Yes, I can read the source code, but code examples and some thoughts about the code strengths and liabilities would make all the difference in the world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, when I ventured into making my own projects open-source, I didn't release the code until I had written thorough documentation including extensive code samples, a step-by-step implementation guide and a real API reference. I did it in &lt;a href=&quot;http://www.tiddlywiki.com/&quot; rel=&quot;nofollow&quot;&gt;TiddlyWiki&lt;/a&gt;, a self-contained Wiki in a single HTML file, and I even used tags and built an index.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was a lot of work, and it was not the kind of work that I really enjoy (coding), but it seemed irresponsible not to include truly useful documentation, and in the end, I did it because I was proud of the project. I wanted it to be of the greatest possible use to my peers.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-11-17T18:24:31.867" />
  <row Id="19673" PostTypeId="1" AcceptedAnswerId="19674" CreationDate="2010-11-17T18:26:00.073" Score="11" ViewCount="531" Body="&lt;p&gt;I'm a fairly new convert to Emacs and I really love it as an editor, primarily because I keep finding new and super-useful commands. Are there any other programmer 'must known' commands missing from my list?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;M-x replace-string     - Find and replace a given string.&#xA;M-x goto-line          - Goto a specific line&#xA;M-x column-number-mode - Show the current column number in text bar&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="786" LastActivityDate="2010-11-25T01:51:28.933" Title="What are the 'must know' Emacs commands?" Tags="&lt;emacs&gt;" AnswerCount="10" CommentCount="5" FavoriteCount="10" />
  <row Id="19674" PostTypeId="2" ParentId="19673" CreationDate="2010-11-17T18:34:25.530" Score="11" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;C-h b  -- runs describe-binding&lt;/li&gt;&#xA;&lt;li&gt;C-h k  -- runs describe-key&lt;/li&gt;&#xA;&lt;li&gt;C-h f  -- runs describe-function&lt;/li&gt;&#xA;&lt;li&gt;C-h v  -- runs describe-variable&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you know those, you can explore emacs and find things you still don't know. Learn how to learn, thats essential. Everything else can be found out later.&lt;/p&gt;&#xA;" OwnerUserId="1027" LastActivityDate="2010-11-17T18:34:25.530" CommentCount="2" />
  <row Id="19675" PostTypeId="2" ParentId="19513" CreationDate="2010-11-17T18:37:17.687" Score="1" ViewCount="" Body="&lt;p&gt;Well, I would have a couple barriers to entry:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Configuration would be significantly troublesome that I wouldn't want to do it on my own.&lt;/li&gt;&#xA;&lt;li&gt;I have a beefy enough system to run a VM. My work machine is beefy enough, only 1 of my home machines is.&lt;/li&gt;&#xA;&lt;li&gt;Configuration of the VM wouldn't fry my existing configurations.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It's an uncommon approach for open-source distribution, certainly.  Typically I would prefer to just ./configure &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the enterprise consumption front, it would probably go over better due to the existing VM infrastructure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HTH.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-17T18:37:17.687" CommentCount="5" />
  <row Id="19676" PostTypeId="2" ParentId="19646" CreationDate="2010-11-17T18:38:17.313" Score="1" ViewCount="" Body="&lt;p&gt;WPF is here to stay. Visual Studio 2k10 is written in WPF, and I am sure other products are/will be as well.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-11-17T18:38:17.313" />
  <row Id="19677" PostTypeId="2" ParentId="19673" CreationDate="2010-11-17T18:52:25.863" Score="11" ViewCount="" Body="&lt;p&gt;Well, First You need to know some of the basics of text editing:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;C-w : Cut &#xA;M-w : Copy&#xA;C-y : Paste&#xA;C-x s : save&#xA;C-x c : save all and close&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Then, it's handy to learn how to move around the file:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;M-b : back one word&#xA;M-f : foward one word&#xA;C-a : beginning of line&#xA;C-e : end of line&#xA;C-n : next line&#xA;C-p : previous line&#xA;M-&amp;lt; : beginning of buffer&#xA;M-&amp;gt; : end of buffer   &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Then, It's good to start learning how to navigate with multiple files/buffers and windows&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;C-x C-f : find file&#xA;C-x b : switch buffer&#xA;C-x k : kill buffer&#xA;C-x 2 : split-window-vertically&#xA;C-x 3 : split-window-horizontally&#xA;C-x o : switch window&#xA;C-x 0 : kill this window&#xA;C-x 1 : kill all other windows&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;After that, here are a few other misc. commands that can come in handy:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;C-s : search&#xA;C-r : search backward&#xA;M-/ : autocomplete word (based on previous words in the file)&#xA;M-x : align-regexp&#xA;M-( : start keyboard macro&#xA;M-) : end keyboard macro&#xA;C-x e: execute keyboard macro.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;For a complete reference: &lt;a href=&quot;http://www.cs.rutgers.edu/LCSR-Computing/some-docs/emacs-chart.html&quot; rel=&quot;nofollow&quot;&gt;link&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="190" LastEditorUserId="190" LastEditorDisplayName="" LastEditDate="2010-11-18T19:37:16.713" LastActivityDate="2010-11-18T19:37:16.713" CommentCount="5" />
  <row Id="19678" PostTypeId="2" ParentId="18704" CreationDate="2010-11-17T18:53:39.960" Score="4" ViewCount="" Body="&lt;p&gt;We created quite a few projects with just i/o, functions and conditional operators in school. All done before we learned about object oriented programming. These projects advanced slowly to be more and more difficult. Suffice to say, the 4 hours we had each week weren't nearly sufficient towards the end of the year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All these projects were done with just functions &amp;amp; i/o:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;A game that learns.&lt;/strong&gt; You take a number of sticks, the pc takes a number of sticks. Repeat. The last one who holds a stick looses. We had to create a simple self learning program that got better after each game. Good example to learn 2D arrays.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;A code breaker.&lt;/strong&gt; You know the Caesar encryption, pick a letter and add the value of the letter to each letter of your word. E.g. key = 'a' and the word = &quot;secret&quot;. This would become &quot;tfdsfq&quot;. Can be done by reading in the file and then creating a frequency table for each letter. You also read in an English bible. Then you can simply see that the most used letter in the English alphabet is an 'e' and solve it. Added challenge: use a key like 'ab' which was our assignment. Good exercise to understand i/o.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;A barcode maker.&lt;/strong&gt; This program was an exercise to call an external library. You got a code and had to generate an image with the bar code. An external library was used to generate the image.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;A genetic algorithm to solve the traveling salesmen problem.&lt;/strong&gt; This was a more advanced project for 2 or 3 persons. You start with a random route and this route improves all the time until you have a &quot;good route&quot;. Bonus: create a map with the route.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;A working lzw compression program&lt;/strong&gt;. This was the final, 4 people project. The parameters were quite simple. &quot;Zip file.txt file.zip&quot; or something similar. Fun project but understanding the lzw algorithm took a while.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4930" LastActivityDate="2010-11-17T18:53:39.960" CommentCount="2" />
  <row Id="19679" PostTypeId="2" ParentId="19622" CreationDate="2010-11-17T18:59:02.653" Score="0" ViewCount="" Body="&lt;p&gt;Well, in our C++ class the professor would sometimes come and stand behind us and point at a &quot;new&quot; statement. We then had to show him the &quot;delete&quot; statement. You'll learn it in no time...&lt;/p&gt;&#xA;" OwnerUserId="4930" LastActivityDate="2010-11-17T18:59:02.653" />
  <row Id="19680" PostTypeId="2" ParentId="19673" CreationDate="2010-11-17T19:00:14.680" Score="2" ViewCount="" Body="&lt;p&gt;&lt;code&gt;M-x apropos&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;M-x describe-key&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;M-x describe-bindings&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;C-x C-f ~/.emacs&lt;/code&gt; (it helps if you know Elisp before running this one)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pretty much everything else is personal preference. People sometimes talk about Emacs as though it's an editor. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's not true. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Emacs is a language designed to succinctly express editors (which is to say, Elisp is its best 'feature'). How much mileage you get out of it depends directly and entirely on how well you understand this principle.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-17T19:00:14.680" CommentCount="1" />
  <row Id="19681" PostTypeId="2" ParentId="19662" CreationDate="2010-11-17T19:03:28.760" Score="13" ViewCount="" Body="&lt;p&gt;No, there isnt.  Its one of the ways Embarcadero (and Borland and CodeGear before them) keeps shooting themselves in the foot, and why Delphi has become essentially an afterthought in Windows development, despite being the best tool for Windows application development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They dont even have an inexpensive edition (ie, in the range of $99-$199).  Foolish.  And your question shows exactly why.  People want to try it out after hearing us Delphi users tell everyone how great it is... but they arent going to do so if it costs $800 to get started.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is the open source Delphi-like IDE called Lazarus.  Its not as polished as Delphi, but is similar in concept (and cross platform).  The language is almost identical, and the framework closely compatible.  I use it sometimes to compile apps on other platforms.  Its functional, but like I said, not nearly as polished as Delphi.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; As of 1/31/2011, there is now a low cost ($149) edition of Delphi.  I just wanted to make sure I updated this should people happen upon this answer moving forward.&lt;/p&gt;&#xA;" OwnerUserId="897" LastEditorUserId="897" LastEditorDisplayName="" LastEditDate="2011-01-31T22:55:07.743" LastActivityDate="2011-01-31T22:55:07.743" CommentCount="5" />
  <row Id="19682" PostTypeId="2" ParentId="19573" CreationDate="2010-11-17T19:04:50.050" Score="10" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Death_march_%28software_development%29&quot; rel=&quot;nofollow&quot;&gt;&quot;Throw (enough) bodies at the problem&quot;&lt;/a&gt; may still be used in some places, unfortunately.  &lt;a href=&quot;http://en.wikipedia.org/wiki/Brooks%27s_law&quot; rel=&quot;nofollow&quot;&gt;Brook's Law&lt;/a&gt; does counter this from &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Mythical_Man-Month&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;The Mythical Man-Month&lt;/em&gt;&lt;/a&gt;, though some require experience to learn this lesson.  Generally this isn't something within my power to stop as management may believe the false statement about adding people and not having to pay a price for it.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-17T19:04:50.050" CommentCount="2" />
  <row Id="19683" PostTypeId="2" ParentId="19673" CreationDate="2010-11-17T19:07:25.320" Score="2" ViewCount="" Body="&lt;p&gt;Incredibly handy while coding:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;M-; : comment-dwim&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;comment-dwim will toggle commenting on the current region; commenting if it's not commented, and vice versa.  Your current language mode lets emacs know how to do the commenting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By default, if there's no active region and there's text on the line, it will insert a comment at the end of the line.  Personally, I prefer to have it comment the entire current line, which this accomplishes:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;      ;; Original idea from&#xA;      ;; http://www.opensubscriber.com/message/emacs-devel@gnu.org/10971693.html&#xA;      (defun comment-dwim-line (&amp;amp;optional arg)&#xA;        &quot;Replacement for the comment-dwim command.&#xA;        If no region is selected and current line is not blank and we are not at the end of the line,&#xA;        then comment current line.&#xA;        Replaces default behaviour of comment-dwim, when it inserts comment at the end of the line.&quot;&#xA;          (interactive &quot;*P&quot;)&#xA;          (comment-normalize-vars)&#xA;          (if (and (not (region-active-p)) (not (looking-at &quot;[ \t]*$&quot;)))&#xA;              (comment-or-uncomment-region (line-beginning-position) (line-end-position))&#xA;            (comment-dwim arg)))&#xA;      (global-set-key &quot;\M-;&quot; 'comment-dwim-line)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Stole it myself from &lt;a href=&quot;http://www.emacswiki.org/emacs/CommentingCode&quot; rel=&quot;nofollow&quot;&gt;http://www.emacswiki.org/emacs/CommentingCode&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6989" LastEditorUserId="6989" LastEditorDisplayName="" LastEditDate="2010-11-17T19:17:53.657" LastActivityDate="2010-11-17T19:17:53.657" CommentCount="2" />
  <row Id="19684" PostTypeId="2" ParentId="18704" CreationDate="2010-11-17T19:10:18.460" Score="1" ViewCount="" Body="&lt;p&gt;Are all of the students in the class CS majors? My guess would be not. I would come up with assignments that are tailored to the majors in the class.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Art students could write a program that takes the dimensions of a piece of canvas and a frame to calculate the amount of the canvas would be unavailable for painting (due to wrapping and stapling the canvas around the frame).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Econ students could calculate compound interest on an item.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Math students could choose problems from Project Euler.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-11-17T19:10:18.460" CommentCount="3" />
  <row Id="19685" PostTypeId="2" ParentId="19408" CreationDate="2010-11-17T19:22:54.403" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd565622%28VS.85%29.aspx&quot; rel=&quot;nofollow&quot;&gt;IE Developer Tools(IE 8+)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=95e06cbe-4940-4218-b75d-b8856fced535&quot; rel=&quot;nofollow&quot;&gt;IE Developer Toolbar(IE 6,7)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Surprised no one has mentioned this yet but if you're doing web development you HAVE to spend time nurturing your code for IE, and these are the best tools available for debugging/troubleshooting IE specific issues. IE8 integrated toolset is MUCH better, but the toolbar for older versions is the best you can get for IE specific stuff.&lt;/p&gt;&#xA;" OwnerUserId="7633" LastActivityDate="2010-11-17T19:22:54.403" CommunityOwnedDate="2010-12-15T13:45:54.590" CommentCount="3" />
  <row Id="19686" PostTypeId="1" CreationDate="2010-11-17T19:28:08.843" Score="2" ViewCount="475" Body="&lt;p&gt;I know that&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;MyObject.myMethod();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;is refered to as dot notation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But what is&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;MyObject-&amp;gt;myMethod();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;called? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also are their others?&lt;/p&gt;&#xA;" OwnerUserId="1785" LastActivityDate="2010-11-18T03:43:19.923" Title="What kind of notation is -&gt;" Tags="&lt;terminology&gt;" AnswerCount="11" CommentCount="9" FavoriteCount="1" />
  <row Id="19687" PostTypeId="2" ParentId="19686" CreationDate="2010-11-17T19:33:29.697" Score="8" ViewCount="" Body="&lt;p&gt;It's typically referred to as &quot;pointer notation&quot;, at least in C/C++ circles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[Adding]&#xA;Used when the variable is a pointer and points to an address. That address is typically another variable, but can be a pointer to a function.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-11-17T19:33:29.697" CommentCount="1" />
  <row Id="19688" PostTypeId="2" ParentId="19686" CreationDate="2010-11-17T19:35:40.710" Score="0" ViewCount="" Body="&lt;p&gt;If you're using PHP that's the same.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Person &#xA;{&#xA;    $name = &quot;John&quot;;&#xA;}&#xA;$p = new Person();&#xA;echo $p-&amp;gt;name; // John&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Otherwise, pointer notation as mentioned.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-11-17T20:06:11.163" LastActivityDate="2010-11-17T20:06:11.163" CommentCount="1" />
  <row Id="19689" PostTypeId="2" ParentId="19673" CreationDate="2010-11-17T19:37:38.930" Score="3" ViewCount="" Body="&lt;p&gt;Try doing the tutorial (C-h t).  It teaches you a lot of the fundamental keybindings, and THEN you can start looking for even more fun ones.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-17T19:37:38.930" CommentCount="1" />
  <row Id="19690" PostTypeId="2" ParentId="19573" CreationDate="2010-11-17T19:37:41.677" Score="24" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Long feedback loops!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It happens to everybody: you build something that you think is awesome, and it turns out you were wrong. That isn't the problem. The problem is &lt;em&gt;how long&lt;/em&gt; you spend building before finding out that you should stop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the high level, you see this problem with long release cycles. If you build for a year without feedback, you're gambling the whole year. The more often you release, the smaller your gambles, and the better you get at gambling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it also happens at the lowest levels. As a developer, I really like frequent code reviews (or, better, pair programming) because it limits the amount of time I can continue doing something dumb before somebody says, &quot;Hey, there's a simpler way!&quot; For the same reason, I like my unit tests to run quickly and frequently, so I can catch and kill bugs before they grow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you start noticing the importance of short feedback loops, you'll see it everywhere. E.g., the military notion of the &lt;a href=&quot;http://en.wikipedia.org/wiki/OODA_loop&quot; rel=&quot;nofollow&quot;&gt;OODA loop&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1843" LastActivityDate="2010-11-17T19:37:41.677" CommentCount="1" />
  <row Id="19691" PostTypeId="2" ParentId="19686" CreationDate="2010-11-17T19:40:07.647" Score="5" ViewCount="" Body="&lt;p&gt;It is often called pointer notation or arrow notation. Personally I prefer arrow because that is what it looks so others will know what you are talking about even if they have not heard the term before.&lt;/p&gt;&#xA;" OwnerUserId="7863" LastActivityDate="2010-11-17T19:40:07.647" />
  <row Id="19692" PostTypeId="2" ParentId="8758" CreationDate="2010-11-17T19:44:18.977" Score="1" ViewCount="" Body="&lt;p&gt;It only takes one pissed of developer or IT staffer to bring a world of pain on your company if you do this. Nevertheless, I've worked in shops that pirated Microsoft Office because they didn't want to pay the added MSDN costs.&lt;/p&gt;&#xA;" OwnerUserId="6894" LastActivityDate="2010-11-17T19:44:18.977" CommunityOwnedDate="2011-01-23T07:24:28.233" />
  <row Id="19693" PostTypeId="2" ParentId="19408" CreationDate="2010-11-17T19:56:03.017" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Visual Studio&lt;/strong&gt; (substitute the Express edition for web development, if you'd like)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've used it for so long and know it so well (shortcuts, etc.) that I feel handicapped if I have to use something else.&lt;/p&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-11-17T19:56:03.017" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="19694" PostTypeId="2" ParentId="19631" CreationDate="2010-11-17T20:01:57.140" Score="1" ViewCount="" Body="&lt;p&gt;The documentation I write when I know someone else is going to have to take over my code. After an initial draft, I sit down with them and the document and go over the code. The document gets updated based on this review. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the new person does the same for the third developer, it's probably pretty thorough. Then again, most 3rd versions are.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-17T20:01:57.140" />
  <row Id="19695" PostTypeId="2" ParentId="19686" CreationDate="2010-11-17T20:05:57.423" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Also are their others?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes of course. There's &lt;a href=&quot;http://en.wikipedia.org/wiki/Objective-c#Messages&quot; rel=&quot;nofollow&quot;&gt;this notation&lt;/a&gt; in Objective-C:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;[MyObject myMethod]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I like to call it the WTF-notation, but I suppose that's incorrect :D&lt;br&gt;&#xA;Like Objective-C is inspired from Smalltalk, the WTF-notation is inspired from the &lt;a href=&quot;http://en.wikipedia.org/wiki/Smalltalk#Messages&quot; rel=&quot;nofollow&quot;&gt;OMGWTF-notation&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;MyObject myMethod&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This actually looks pleasant at first, but nested calls of methods with multiple arguments will just really give you the aforementioned feeling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In accordance with those language's semantics you could maybe call them &quot;message (passing) notation&quot; or &quot;(method) selector notation&quot;.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-11-17T20:05:57.423" CommentCount="1" />
  <row Id="19696" PostTypeId="2" ParentId="19686" CreationDate="2010-11-17T20:13:57.290" Score="0" ViewCount="" Body="&lt;p&gt;If you're using C++ then it's used the same as a &lt;code&gt;.&lt;/code&gt;, except that it's used with pointers.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;MyClass myObject = new MyClass();&#xA;myObject.myMethod(); // Direct object usage&#xA;MyClass* myPointer = &amp;amp;myObject;&#xA;myPointer-&amp;gt;myMethod() // Pointer-based usage&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;However in PHP since &lt;code&gt;.&lt;/code&gt; is used as the string concatenation operator, &lt;code&gt;-&amp;gt;&lt;/code&gt; is used for accessing member variables and methods.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$myObject = new MyClass();&#xA;$myObject-&amp;gt;myMethod();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2416" LastActivityDate="2010-11-17T20:13:57.290" />
  <row Id="19697" PostTypeId="2" ParentId="17779" CreationDate="2010-11-17T20:27:04.440" Score="13" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/aLaTx.png&quot; alt=&quot;Geeks and Nerds&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Title/Alt text: The definitions I grew up with were that a geek is someone unusually into something (so you could have computer geeks, baseball geeks, theater geeks, etc) and nerds are (often awkward) science, math, or computer geeks. But definitions vary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Original source: &lt;a href=&quot;http://xkcd.com/747/&quot; rel=&quot;nofollow&quot;&gt;http://xkcd.com/747/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2448" LastEditorUserId="2448" LastEditorDisplayName="" LastEditDate="2011-02-16T20:55:50.717" LastActivityDate="2011-02-16T20:55:50.717" CommentCount="2" />
  <row Id="19698" PostTypeId="2" ParentId="19673" CreationDate="2010-11-17T20:33:00.520" Score="1" ViewCount="" Body="&lt;p&gt;M-x revert-buffer is one I use a lot.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-17T20:33:00.520" CommentCount="1" />
  <row Id="19699" PostTypeId="2" ParentId="19631" CreationDate="2010-11-17T20:36:54.513" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;(and source code doesn't count)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;On the contrary, production code is the only truly accurate documentation you have. It describes exactly what your program does. Everything else: design documents, diagrams, code comments... can be misleading.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's not to say there isn't value in all of those things. There is a great deal of value in many of them. But they all suffer the same problem. They are extrapolations of what the code actually does. As such, they will always be prone to inaccuracy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even unit tests are not immune to this. A unit test that isn't run can quickly become out of sync with the production code its supposed to test. And entire books have been written on how to write good tests. Which implies that it is just as easy to write bad ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is why there is such a focus on clear, readable code in Agile methodologies. Knuth refers to it as literate programming. Writing code so others can read it and not just the compiler. Everything else just points to the code.&lt;/p&gt;&#xA;" OwnerUserId="4890" LastActivityDate="2010-11-17T20:36:54.513" CommentCount="1" />
  <row Id="19700" PostTypeId="1" CreationDate="2010-11-17T20:43:04.223" Score="2" ViewCount="152" Body="&lt;p&gt;With the economy down, I've been looking at ways to supplement my income.  It occurs to me that I really like teaching, and computer science (and programming, and related fields) are often tough courses at university.  I'm only 3 years out from my undergraduate at the university here in town, and working 9-5 as a professional developer.  I feel like I could easily teach pretty much anything in undergraduate (and maybe even some graduate) level courses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone here have thoughts or advice on the subject of doing private tutoring in computer related fields?  I know that's a bit vague, but I'm just looking to see if other professional developers ever teach on the side, and what the unexpected pitfalls might be.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-17T20:58:08.640" ClosedDate="2010-11-17T21:32:03.167" Title="Is private tutoring a reasonable way to make some extra money?" Tags="&lt;tutoring&gt;" AnswerCount="1" CommentCount="5" FavoriteCount="1" />
  <row Id="19701" PostTypeId="1" AcceptedAnswerId="19704" CreationDate="2010-11-17T20:45:39.350" Score="5" ViewCount="186" Body="&lt;p&gt;I am being asked to define several of my algorithms in mathematical terms to describe my work to a customer.  I am trying to determine if anybody knows whether common operators for collections like sequences, lists, tuples, etc have been defined. If so, is there a good reference that I could be pointed to. Thanks. I am interested in the actual symbols used.  I am wondering if the following would make sense or be appropiate to anybody.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given two sequences (or strings):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;S = (A, B, C) and T = (A, D, H)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my mind, the intersection of these sequences would look like S ∩ T = (A) and the union of these sequences would be S ∪ T = (A, B, C, A, D, H)&lt;/p&gt;&#xA;" OwnerUserId="7867" LastEditorUserId="7867" LastEditorDisplayName="" LastEditDate="2010-11-17T23:20:52.910" LastActivityDate="2010-11-17T23:20:52.910" Title="Is there a common mathematical symbology for collections?" Tags="&lt;documentation&gt;&lt;math&gt;&lt;sequence&gt;&lt;notation&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="1" />
  <row Id="19702" PostTypeId="2" ParentId="19686" CreationDate="2010-11-17T20:51:29.847" Score="1" ViewCount="" Body="&lt;p&gt;Why do you need a name?  I can't think of a time I've actually said &quot;dot notation&quot;.  If have to describe it, for instance when pair programming, I'd just say &quot;you need a dot&quot; or &quot;use an arrow there&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When reading C code, I tend to read &lt;code&gt;object-&amp;gt;method&lt;/code&gt; as &quot;object &lt;strong&gt;at&lt;/strong&gt; method&quot;, as in 'points at'.   It just flows better than &quot;object &lt;strong&gt;arrow&lt;/strong&gt; method&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(However, in languages where &lt;code&gt;@&lt;/code&gt; is a legal syntax character this is probably confusing.)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-11-17T20:51:29.847" />
  <row Id="19703" PostTypeId="2" ParentId="19701" CreationDate="2010-11-17T20:52:01.560" Score="0" ViewCount="" Body="&lt;p&gt;Sounds like &lt;a href=&quot;http://en.wikipedia.org/wiki/Set_notation&quot; rel=&quot;nofollow&quot;&gt;set notation&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Set-builder_notation&quot; rel=&quot;nofollow&quot;&gt;set-builder notation&lt;/a&gt;.  Check out the links for more details and references.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-17T20:52:01.560" />
  <row Id="19704" PostTypeId="2" ParentId="19701" CreationDate="2010-11-17T20:54:53.447" Score="8" ViewCount="" Body="&lt;p&gt;Sequences or lists in which there is an implied ordering of the elements are commonly delimited between &amp;lang; and &amp;rang;. For example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;S = &amp;lang;A, B, C&amp;rang;         (They look like &amp;lt;A, B, C&amp;gt;, but taller. HTML entities are &amp;amp;lang; and &amp;amp;rang; )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there is no order implied, use set notation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;S = {A, B, C}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tuples, such as rows from a table or ordered pairs/triples, use parentheses:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;car = (Toyota, Camry, 2010)&lt;br&gt;&#xA;coordinates = (10, 45)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The union and intersection of sets are represented with the &amp;cup; and &amp;cap; symbols, as usual.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For lists, the operations are different. You &lt;em&gt;concatenate&lt;/em&gt; lists rather than finding their union. This can be represented as S+T or simply ST (depending on who's watching).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As tuples are indivisible, the union or intersection of two of them is nonsensical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might want to ask this on &lt;a href=&quot;http://cstheory.stackexchange.com/&quot;&gt;http://cstheory.stackexchange.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3790" LastEditorUserId="3790" LastEditorDisplayName="" LastEditDate="2010-11-17T21:07:05.147" LastActivityDate="2010-11-17T21:07:05.147" CommentCount="7" />
  <row Id="19705" PostTypeId="2" ParentId="19700" CreationDate="2010-11-17T20:58:08.640" Score="1" ViewCount="" Body="&lt;p&gt;Figure out who your target demographic is. Not all students will pay good money for tutoring, but some will. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Post some ads at the closest university campus or at a local high school -- you could brand yourself to parents along the lines of &quot;I'll help get your kid into a good school for a profession that will yield good money&quot;. Whether or not this will fly depends on your area.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For actual tutoring, be prepared to draw some lines. A lot of people will expect you to solve their assignments for them. You'll have to make it clear that you're not going to do that, but you will point them in the right direction if needed. There are also some logistics to work out in terms of a meeting place and any setup that's needed (for example, is a laptop needed or can you get by with diagrams on a napkin?), but that'd likely be on a per-student basis as well.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-11-17T20:58:08.640" CommentCount="5" />
  <row Id="19706" PostTypeId="2" ParentId="19273" CreationDate="2010-11-17T21:11:10.990" Score="2" ViewCount="" Body="&lt;p&gt;It is better, and worse, in various ways:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is nice to have garbage collection, and facilities for modular and Object Oriented programming.&#xA;It is a relatively small language; easy to parse, and implement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The lack of enumerations is a pain (indeed, in the extended Oberon dialect we use, we added them back).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Relative to more modern languages, its minimalism is a bit brutal, and treating strings as arrays of characters in any language is ghastly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, Pascal has evolved quite a bit too, e.g. see Component Pascal.&lt;/p&gt;&#xA;" OwnerUserId="1050" LastActivityDate="2010-11-17T21:11:10.990" CommentCount="3" />
  <row Id="19707" PostTypeId="2" ParentId="17582" CreationDate="2010-11-17T21:13:51.910" Score="2" ViewCount="" Body="&lt;p&gt;To make a clientside replacement of an old &quot;Winform style&quot; driven backoffice applications Sencha (EXTJS) has been proven to be a really good option.&lt;/p&gt;&#xA;" OwnerUserId="7869" LastActivityDate="2010-11-17T21:13:51.910" />
  <row Id="19708" PostTypeId="2" ParentId="12544" CreationDate="2010-11-17T21:18:08.447" Score="1" ViewCount="" Body="&lt;p&gt;Have you checked AppengineJS?&#xA;&lt;a href=&quot;http://www.appenginejs.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.appenginejs.org/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It isn't node.js based, but a port fo the Python SDK to Ringo (and a little legacy from another libraries).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Very promising!&lt;/p&gt;&#xA;" OwnerUserId="7869" LastActivityDate="2010-11-17T21:18:08.447" />
  <row Id="19709" PostTypeId="2" ParentId="19686" CreationDate="2010-11-17T21:19:37.780" Score="0" ViewCount="" Body="&lt;p&gt;In Haskell, F#, and other functional languages, the &lt;code&gt;-&amp;gt;&lt;/code&gt; symbol is often used in function definitions.  As in:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;add :: Integer -&amp;gt; Integer -&amp;gt; Integer&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The &lt;code&gt;::&lt;/code&gt; means &quot;has type of&quot; and the rest means &quot;a function taking two Integers and returning an Integer.&quot;  The reason the arrow separates both the arguments and the return type is not super complex, but involves a long side discussion on how functional languages work.  So just trust me on this one. ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Haskell the &lt;code&gt;-&amp;gt;&lt;/code&gt; is also used for anonymous functions (called lambda functions) as well to separate the arguments from the function body.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure how you'd &quot;pronounce&quot; it though.  I usually translate function definitions into something like what I said above.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-17T21:19:37.780" CommentCount="3" />
  <row Id="19710" PostTypeId="2" ParentId="5972" CreationDate="2010-11-17T21:28:52.263" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.jetbrains.com/&quot; rel=&quot;nofollow&quot;&gt;JetBrains&lt;/a&gt; has IDE's for several languages that have a similar look &amp;amp; feel:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IntelliJ IDEA for Java&lt;/p&gt;&#xA;&#xA;&lt;p&gt;RubyMine for Ruby and Ruby on Rails&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHPStorm for PHP, HTML and JavaScript&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PyCharm for Python and Django&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I have the last three.)&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-11-17T21:28:52.263" CommunityOwnedDate="2011-04-30T19:57:04.087" />
  <row Id="19711" PostTypeId="2" ParentId="18865" CreationDate="2010-11-17T21:31:32.873" Score="0" ViewCount="" Body="&lt;p&gt;After using the Adobe AIR version, which helped me land my first job in the industry as I was able to go in with some working applications, I really like the 'Create Modify Reuse' book series by Wrox.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just find it a great shame there is only three of these books (Adobe AIR, PHP/MySQL and Python) as they take you from the basics though complex programs, learning all the way!&lt;/p&gt;&#xA;" OwnerUserId="7756" LastActivityDate="2010-11-17T21:31:32.873" />
  <row Id="19712" PostTypeId="2" ParentId="19673" CreationDate="2010-11-17T21:34:09.297" Score="1" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;M-:&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;this allows you to evaluate arbitrary elisp in the minibuffer&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;C-x C-q&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;readonly viewing of a file&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;C-c C-c&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;comment region&lt;/p&gt;&#xA;&#xA;&lt;p&gt;among others!&lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-11-17T21:34:09.297" />
  <row Id="19713" PostTypeId="2" ParentId="19662" CreationDate="2010-11-17T21:37:36.717" Score="2" ViewCount="" Body="&lt;p&gt;As GrandmasterB pointed out there isn't an express edition. The last free version you could obtain was Turbo Delphi but it is no longer available. You have two choices:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you are student you can purchase a Delphi XE academic license for a pretty reasonable price from &lt;a href=&quot;http://www.programmers.com/ppi_us/Product.aspx?skupart=CGIA33&quot; rel=&quot;nofollow&quot;&gt;Programmer's Paradise&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;As GrandmasterB mentioned you can download &lt;a href=&quot;http://sourceforge.net/projects/lazarus/files/&quot; rel=&quot;nofollow&quot;&gt;Lazarus&lt;/a&gt; for free.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Note: You are legally restricted from using an academic license to produce commercial software. So if you intend to do more than just learning you'll need to upgrade to a commercial license.&lt;/p&gt;&#xA;" OwnerUserId="4890" LastActivityDate="2010-11-17T21:37:36.717" />
  <row Id="19714" PostTypeId="2" ParentId="19549" CreationDate="2010-11-17T21:38:06.143" Score="1" ViewCount="" Body="&lt;p&gt;Software should be forgiving of user mistakes, and completely intolerant of programmer mistakes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Meaning, software should be very robust and allow smooth recovery for things like user input errors, and system configuration errors.  At the very least a friendly error message stating where the error occurred (input box, config file, command line argument, etc...) and what constraint was violated (&quot;must be less than X characters,&quot; &quot;valid options are [X,Y,Z]&quot;, etc...)   For additional robustness, the software can suggest an alternative, or use a reasonable default (but it should always indicate that it is not using exactly what the user specified).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't think of a lot of situations where an automatic retry with different defaults is warranted, but there are some (auto retrying to establish a communications link seems reasonable).  I agree with @William that this level of 'redundancy' is a buisness decision.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, there should be no run-time robustness against programmer error.  If there are pre-conditions for a function's parameters, they should be checked with asserts, not run-time checks.  It is a huge pet peeve of mine to see redundant errror checking and reporting on the same parameter three or four levels into the call stack:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; int A(int x)&#xA; {&#xA;   if (x==0) return -1&#xA;   ...&#xA; }&#xA; int B(int x)&#xA; {&#xA;   if (x==0) return -1&#xA;   err = A(x)&#xA;   if (err) return err;&#xA;   ...&#xA; }&#xA; // and so on and so on....&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This is just additional unneeded complexity.   You should not spend timing figuring out how one function should handle an error introduced by misusing another one.  If this is the type of 'robustness' you are referring to - you don't need it.  Replace it with asserts and thorough integration testing.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-11-17T21:38:06.143" />
  <row Id="19715" PostTypeId="2" ParentId="18704" CreationDate="2010-11-17T21:38:09.403" Score="2" ViewCount="" Body="&lt;p&gt;I taught intro way in the last century, and it was BASIC, but like you I wanted to get the students going on a fun project of their own devising. So I suggested a bunch of possibilities:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Simple adventure game, like Wumpus&lt;/li&gt;&#xA;&lt;li&gt;Sports simulation (text only, graphics for the ambitious) for baseball or whatever&lt;/li&gt;&#xA;&lt;li&gt;Science, like simulating genetic evolution&lt;/li&gt;&#xA;&lt;li&gt;Sport/science, like sailboat racing&lt;/li&gt;&#xA;&lt;li&gt;Finance, like having your own bank for the people in your household, or investments&lt;/li&gt;&#xA;&lt;li&gt;Music or simple graphical games&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;... or whatever students thought of. They would come to me and say &quot;how about a program to do XYZ?&quot; and I would always say &quot;Great&quot;, and then maybe guide them a little not to make it too complicated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually their projects ended up being a few hundred lines of code, and they always enjoyed it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. I gave this assignment after the students were competent with basic control structures, I/O, arrays, and sequential files. It was a term project, a major part of their grade, and I had intermediate milestone assignments, like an outline part way through, so they didn't try to do it all at the end and hit a wall. I wanted to get them into this as early in the semester as possible, when they had enough skills to get started, typically around week 6 or 8.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-11-17T22:03:05.153" LastActivityDate="2010-11-17T22:03:05.153" />
  <row Id="19716" PostTypeId="2" ParentId="19569" CreationDate="2010-11-17T21:39:39.807" Score="4" ViewCount="" Body="&lt;p&gt;this might sound like trolling, but if oracle substantially prevails over google in its lawsuit, i will consider the entirety of java to be absolutely radioactive.&lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-11-17T21:39:39.807" />
  <row Id="19717" PostTypeId="2" ParentId="18704" CreationDate="2010-11-17T21:43:49.563" Score="1" ViewCount="" Body="&lt;p&gt;Lunar Lander!!  &lt;a href=&quot;http://www.cs.carleton.edu/faculty/dmusican/csti10/lunarlander.html&quot; rel=&quot;nofollow&quot;&gt;http://www.cs.carleton.edu/faculty/dmusican/csti10/lunarlander.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4115" LastActivityDate="2010-11-17T21:43:49.563" />
  <row Id="19718" PostTypeId="1" AcceptedAnswerId="19745" CreationDate="2010-11-17T21:49:36.513" Score="4" ViewCount="135" Body="&lt;p&gt;&quot;&lt;a href=&quot;http://docs.google.com&quot; rel=&quot;nofollow&quot;&gt;Google Docs&lt;/a&gt;&quot; allows for real-time, collaborative document editing. Multiple document viewers are able to simultaneously read and change a document's content so that one user's updates are instantly applied and visible to all other viewers.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Are there any software/web-app IDEs&#xA;that facilitate this type of&#xA;collaboration for writing code?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Which processes (ie pair programming)&#xA;stand to benefit from a system like&#xA;this and which don't? &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Does this model for collaborative&#xA;editing present a viable alternative&#xA;to the current source control systems&#xA;generally used by teams of software&#xA;developers working on a single code&#xA;base?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/6476/have-you-tried-programming-via-collaborative-text-editing&quot;&gt;Related but less general&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1444" LastActivityDate="2010-11-18T03:23:29.637" Title="Real-time collaborative text editing (ie gdocs) - is it a viable software development tool?" Tags="&lt;productivity&gt;&lt;development-process&gt;&lt;team&gt;&lt;collaboration&gt;" AnswerCount="1" CommentCount="4" FavoriteCount="1" />
  <row Id="19719" PostTypeId="1" CreationDate="2010-11-17T21:52:46.730" Score="2" ViewCount="182" Body="&lt;p&gt;I'm looking for some input about switching careers from engineering support to development.&lt;br&gt;&#xA;I graduated with Information Systems degree (85% comp sci and 15% business) six years ago.&lt;br&gt;&#xA;My programming experience in school included Java, C++ and C.&lt;br&gt;&#xA;I started engineering support as an intern and was hired full time.&lt;br&gt;&#xA;I no longer enjoy what I do and want to switch to development.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can I go about getting my first position as a programmer?&lt;br&gt;&#xA;What should I study to regain knowledge of topics from school and to prepare myself for interviews?&lt;br&gt;&#xA;How can I distinguish myself from recent graduates and dissociate myself from engineering support field?   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. I'm leaning towards programming in C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="7873" LastActivityDate="2010-11-18T00:01:44.577" Title="Engineering support to development career switch" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;career&gt;&lt;software-development&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="19720" PostTypeId="1" AcceptedAnswerId="20350" CreationDate="2010-11-17T22:02:50.817" Score="5" ViewCount="1005" Body="&lt;p&gt;Hallo I try to find an answer of a very difficult question :) the question is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;How many developers and how many software companies are there in the world?&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example if I check the &lt;a href=&quot;http://www.statistik.at/web_en/statistics/enterprises/structural_business_statistics/index.html&quot; rel=&quot;nofollow&quot;&gt;Statistic Austria&lt;/a&gt; page I can see that in Austria there are 8383 companies with 35522 employees defined as &quot;Computer programming, consultancy and related activities&quot; and another 4102 companies with 15171 employees defined as &quot;Information service activities&quot;. This statistic is good, but it is only for Austria. Is there a similar for Europe, USA, Worldwide?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks you.&lt;/p&gt;&#xA;" OwnerUserId="7876" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-18T18:12:53.823" LastActivityDate="2011-04-06T17:27:39.930" Title="Where can I find statistics on worldwide developers and software companies?" Tags="&lt;industry&gt;&lt;statistics&gt;" AnswerCount="2" CommentCount="8" FavoriteCount="1" />
  <row Id="19721" PostTypeId="2" ParentId="19686" CreationDate="2010-11-17T22:06:36.273" Score="1" ViewCount="" Body="&lt;p&gt;Conceptually both denote &quot;part of&quot;. MyMethod is a part (member) of MyObject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In languages like C and C++, where you can have objects and pointers to objects, the &quot;.&quot; syntax is used with objects (and references) and &quot;-&gt;&quot; syntax is used with pointers.&lt;/p&gt;&#xA;" OwnerUserId="7803" LastActivityDate="2010-11-17T22:06:36.273" CommentCount="2" />
  <row Id="19722" PostTypeId="2" ParentId="18865" CreationDate="2010-11-17T22:08:29.877" Score="1" ViewCount="" Body="&lt;p&gt;I still struggle with Haskell a lot due to tool chain issues, it's something I think a lot of languages could take a stronger stance on. In terms of learning the actual language, there are two excellent sources:  &lt;a href=&quot;http://book.realworldhaskell.org/&quot; rel=&quot;nofollow&quot;&gt;Real World Haskell&lt;/a&gt; and &lt;a href=&quot;http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours&quot; rel=&quot;nofollow&quot;&gt;Write Yourself a Scheme in 48 Hours&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Real World Haskell is a good ground up introduction to the language, and tries to address some problems that newbies to a language hit like tool support and &quot;yeah, but what can I actually do with it?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write Y... 48 Hours is great because it's a quick tutorial, but also because it shows how to build a larger application in a &quot;Haskell-ish&quot; way, which can be tricky to pick up just seeing short snippets.  The tutorial starts with some basic concepts and shows how to use refactoring and gradual build-up to compose a larger program from the basic components of Haskell (functions and data types).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For tool support, the community is starting to get there but it's still not great.  Leksah is basically the only dedicated Haskell IDE, and solutions for other editors/IDEs are sparse.  Cabal is pretty good in filling the CPAN/Gems kind of role for Haskell.  And thankfully, the major compiler (GHC) has a really great interactive mode that helps a lot with learning, debugging, and development.  Double thankfully, you can get most of that already packaged into the Haskell Platform, which is great for a primarily Windows dev like myself.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-17T22:08:29.877" />
  <row Id="19723" PostTypeId="2" ParentId="19719" CreationDate="2010-11-17T22:13:05.970" Score="6" ViewCount="" Body="&lt;p&gt;Once you are in the business it's pretty easy to find a position. The problem is that you are not in the business yet.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Firstly, you have to prove you can program in C# get interviews. I suggest you to &lt;strong&gt;follow a couple of courses&lt;/strong&gt; and take one Microsoft certification.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Secondly, you must work on a real software to show what you have done. I suggest you to &lt;strong&gt;pick a problem you have&lt;/strong&gt; today and that can be solved by software. &lt;strong&gt;Solve your problem&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;With those two steps achieved, send your CV titled &lt;code&gt;&quot;Junior C# Developer&quot;&lt;/code&gt;. I suggest you to be a lot less selective for your first job. Your objective is to get into business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have your first job, &lt;strong&gt;delight&lt;/strong&gt; your boss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The rest will follow naturally.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-17T22:13:05.970" />
  <row Id="19724" PostTypeId="2" ParentId="19719" CreationDate="2010-11-17T22:13:42.863" Score="0" ViewCount="" Body="&lt;p&gt;Welcome to the dark side.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How can I go about getting my first position as a programmer?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Same as everyone else. You may want to consider a Jr. level developer position since you're starting over in a new field. You're previous experience with Engineering support will give you an edge over college graduates just entering the workforce. You may also want to consider looking for a company with an emphasis on mentoring.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What should I study to regain knowledge of topics from school and to prepare myself for interviews?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The most obvious choice is the language you want to work with on the job and its a good start but you'll also want to read up on more general programming topics as well. A good book on professional software development would be useful. A few suggestions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Clean Code - A Handbook of Agile Software Craftsmanship, Robert C. Martin&lt;/li&gt;&#xA;&lt;li&gt;The Pragmatic Programmer, Andrew Hunt, Dave Thomas&lt;/li&gt;&#xA;&lt;li&gt;Design Patterns: Elements of Reusable Object Oriented Software, Gamma et al.&lt;/li&gt;&#xA;&lt;li&gt;Refactoring: Improving the Design of Existing Code, Martin Fowler et al.&lt;/li&gt;&#xA;&lt;li&gt;Implementation Patterns, Kent Beck&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This is just a short list. See &lt;a href=&quot;http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read&quot;&gt;here&lt;/a&gt; for a list of the most influential books.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How can I distinguish myself from recent graduates and dissociate myself from engineering support field?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I would use your experience to your advantage. The skills you've learned will give you a different perspective than your fellow developers that came down a different road.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One other suggestion is look to the company you are already working at. Many companies will look internally before advertising an open position. You may be able to make the transition where you already work. That's how I got started. I was a field engineer dealing mostly with hardware troubleshooting. I had always wanted to be a developer (I was a compsci major). When a position opened at another division of the company I went for it.&lt;/p&gt;&#xA;" OwnerUserId="4890" LastEditorUserId="4890" LastEditorDisplayName="" LastEditDate="2010-11-17T22:30:39.427" LastActivityDate="2010-11-17T22:30:39.427" />
  <row Id="19725" PostTypeId="1" CreationDate="2010-11-17T22:13:52.990" Score="4" ViewCount="215" Body="&lt;p&gt;I'm a huge fan of running programs from my portable hard drive: it means I always have my favorite tools no matter what computer I'm on.  Sadly, development tools seem to be hard to get portable at times.  I recently realized that the &quot;portable&quot; version of MinGW I was using off my USB drive was actually interfering with a locally installed version of MinGW, so sometimes even the tools you think are portable, aren't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what are the best portable development tools that you've used?  What runs well on a portable media, leaves the host machine clean, and generally makes moving around easier for you?&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-18T21:49:58.117" Title="Languages and tools that are &quot;portable&quot; (work well from a USB storage drive)" Tags="&lt;tools&gt;&lt;applications&gt;" AnswerCount="9" CommentCount="1" />
  <row Id="19726" PostTypeId="2" ParentId="19176" CreationDate="2010-11-17T22:15:33.880" Score="2" ViewCount="" Body="&lt;p&gt;There's something that some people know deep in their bones, and about which other people have no clue. This is rule number 1 in a Dale Carnegie Course. It is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Never Condemn, Criticise, or Complain.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Chances are the interviewer is trying to find out if you &quot;get it&quot; by tempting you to say something negative about anyone or anything.&#xA;Find a positive response.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It makes all the difference in how you will be able to work with people.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-11-17T22:25:21.657" LastActivityDate="2010-11-17T22:25:21.657" />
  <row Id="19727" PostTypeId="2" ParentId="19686" CreationDate="2010-11-17T22:21:07.533" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Perl&lt;/strong&gt; calls it &lt;strong&gt;indirect object notation&lt;/strong&gt;. Used transparently, it's just like dot or method notation in other languages. But internally, it is syntactical sugar for function calls on classes, since Perl5 lacks real objects.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Package-&amp;gt;method($arg);&#xA;&#xA;# is the same as&#xA;Package::method('Package', $arg);&#xA;&#xA;$object-&amp;gt;method($arg);&#xA;&#xA;# is the same as&#xA;ObjectClass::method($object, $arg);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3119" LastActivityDate="2010-11-17T22:21:07.533" />
  <row Id="19728" PostTypeId="2" ParentId="19725" CreationDate="2010-11-17T22:22:06.200" Score="1" ViewCount="" Body="&lt;p&gt;Notepad &amp;amp; Paint - I don't even need to carry them around ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, what language / platform are we talking about?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS. I carry my notebook with me with the dev environment set up in VM.&lt;/p&gt;&#xA;" OwnerUserId="5564" LastActivityDate="2010-11-17T22:22:06.200" />
  <row Id="19729" PostTypeId="2" ParentId="19573" CreationDate="2010-11-17T22:28:02.843" Score="13" ViewCount="" Body="&lt;p&gt;Providing &lt;strong&gt;single-screen workstations because a second monitor is too expensive&lt;/strong&gt;. Even if it only saves you an hour of work each year, an second screen is still a good investment. I know for sure that mine has saved me many, many hours of work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A Multi-monitor setup can make almost any task more efficient, not only development tasks. Three monitors is even better than two, but the effect becomes less pronounced with every extra screen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Multi-monitor setups:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;decrease window switching overhead &lt;/li&gt;&#xA;&lt;li&gt;allow you to keep an eye on stuff running in the background (mail, compilation, etc.).&lt;/li&gt;&#xA;&lt;li&gt;give you a feeling of freedom. It's like being in an atrium vs. being in a broom closet.&lt;/li&gt;&#xA;&lt;li&gt;etc...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7034" LastEditorUserId="7034" LastEditorDisplayName="" LastEditDate="2010-11-17T22:37:31.527" LastActivityDate="2010-11-17T22:37:31.527" />
  <row Id="19730" PostTypeId="2" ParentId="5972" CreationDate="2010-11-17T22:28:55.903" Score="0" ViewCount="" Body="&lt;p&gt;If you're including Vim, then Notepad++. I use it for most languages, including Java (compiled with Ant) and smaller C++ projects (compiled with MinGW), and it seems to be pretty popular in general, especially for web development. It has more/better features than some of the more popular IDE's I've used, even. I do prefer using Visual Studio for C# and XCode for Objective-C, though.&lt;/p&gt;&#xA;" OwnerUserId="5309" LastActivityDate="2010-11-17T22:28:55.903" CommunityOwnedDate="2011-04-30T19:57:04.087" />
  <row Id="19731" PostTypeId="2" ParentId="19725" CreationDate="2010-11-17T22:32:08.037" Score="1" ViewCount="" Body="&lt;p&gt;Most languages based on Java are easily portable (as in &quot;installable anywhere&quot;), like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://portableapps.com/apps/utilities/java_portable&quot; rel=&quot;nofollow&quot;&gt;Java itself&lt;/a&gt; (of course, and it comes with an &lt;a href=&quot;http://www.vasanth.in/2009/07/02/portable-eclipse-and-portable-java/&quot; rel=&quot;nofollow&quot;&gt;IDE like Eclipse, also portable&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Scala&lt;/li&gt;&#xA;&lt;li&gt;most JVM-based languages (like &lt;a href=&quot;http://www.weheartcode.com/2009/01/14/writing-portable-groovy-scripts-with-a-magic-runnable-jar/&quot; rel=&quot;nofollow&quot;&gt;Groovy for instance&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(Note: all links refer to &lt;a href=&quot;http://portableapps.co&quot; rel=&quot;nofollow&quot;&gt;portableapps.com&lt;/a&gt; and the fact &lt;strong&gt;you can install those languages and IDE wherever you want, including an USB storage&lt;/strong&gt;.&lt;br&gt;&#xA;They have also the added bonus to be &quot;portable&quot; as in &quot;working on many different OS&quot;, but that wasn't the reason I mentioned them)&lt;/p&gt;&#xA;" OwnerUserId="3915" LastEditorUserId="3915" LastEditorDisplayName="" LastEditDate="2010-11-18T05:01:20.907" LastActivityDate="2010-11-18T05:01:20.907" CommentCount="3" />
  <row Id="19732" PostTypeId="2" ParentId="19725" CreationDate="2010-11-17T22:35:08.113" Score="0" ViewCount="" Body="&lt;p&gt;UltraEdit. I love it&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-17T22:35:08.113" />
  <row Id="19733" PostTypeId="2" ParentId="5972" CreationDate="2010-11-17T22:46:18.003" Score="1" ViewCount="" Body="&lt;p&gt;C++ - code::blocks&lt;/p&gt;&#xA;" OwnerUserId="2395" LastActivityDate="2010-11-17T22:46:18.003" CommunityOwnedDate="2011-04-30T19:57:04.087" CommentCount="1" />
  <row Id="19734" PostTypeId="2" ParentId="19686" CreationDate="2010-11-17T22:59:33.320" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Also are their others?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes, there's also bracket notation:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;MyObject['MyMethod']&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;This makes it possible to specify dynamic method/property names (omit the quotes and use a string variable), and even variable names that might otherwise be invalid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also sometimes referred to as &quot;array notation&quot; and similar, due to arrays using this style too, even though it's not an array here.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-11-17T22:59:33.320" />
  <row Id="19735" PostTypeId="2" ParentId="19573" CreationDate="2010-11-17T23:31:09.773" Score="3" ViewCount="" Body="&lt;p&gt;Buying expensive off-the-shelve products when the open source alternatives are better and free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How many companies use git? How many companies use some crappy enterprisey version control? &lt;/p&gt;&#xA;" OwnerUserId="1747" LastActivityDate="2010-11-17T23:31:09.773" CommentCount="8" />
  <row Id="19736" PostTypeId="2" ParentId="19673" CreationDate="2010-11-17T23:40:58.423" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;M-x doctor&lt;/li&gt;&#xA;&lt;li&gt;M-x hanoi&lt;/li&gt;&#xA;&lt;li&gt;M-x butterfly&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-11-18T14:03:39.150" LastActivityDate="2010-11-18T14:03:39.150" CommentCount="2" />
  <row Id="19737" PostTypeId="2" ParentId="19719" CreationDate="2010-11-18T00:01:44.577" Score="0" ViewCount="" Body="&lt;p&gt;Is there any chance you can take on a project at your current job that was shelved because there weren't enough developers? You may have to work on it in your spare time. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-18T00:01:44.577" />
  <row Id="19738" PostTypeId="2" ParentId="19408" CreationDate="2010-11-18T00:33:17.293" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.textpad.com/&quot; rel=&quot;nofollow&quot;&gt;TextPad&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-18T00:33:17.293" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="19739" PostTypeId="2" ParentId="19725" CreationDate="2010-11-18T00:42:28.060" Score="1" ViewCount="" Body="&lt;p&gt;Check out &lt;a href=&quot;http://portableapps.com&quot; rel=&quot;nofollow&quot; title=&quot;Portable Apps&quot;&gt;portableapps.com&lt;/a&gt; - they have a great selection of program that run on flashdrives. They have several dev tools, like Notepad++. They also have a desktop tray application so that you don't have to search all over your drive for your apps, and it will also pick up applications you find elsewher if you place them in the right directory.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-18T00:42:28.060" CommentCount="1" />
  <row Id="19740" PostTypeId="2" ParentId="19549" CreationDate="2010-11-18T00:56:08.133" Score="2" ViewCount="" Body="&lt;p&gt;It's a requirements thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a requirement for robustness ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;When the communications link fails, erroneous packets are discarded&quot;&#xA;&quot;When the link resumes operation, no transaction is processed twice&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;there should be use cases for error recovery ( otherwise how do you know how it will happen ?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Leaving it to the programmers to invent robustness as they go ( if required) results in &quot;magical&quot; systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All magical systems become crappy magic over time.&#xA;Error correction in the background hides the occurrence of faults, so that faults will not be corrected, so the system will eventually degrade to a state of greater entropy; and run like crap, as it corrects for errors all the time. You must have a limit to stop the system entering a permanently degraded state.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-11-18T00:56:08.133" />
  <row Id="19741" PostTypeId="2" ParentId="19408" CreationDate="2010-11-18T01:03:00.000" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.getpaint.net/&quot; rel=&quot;nofollow&quot;&gt;Paint.Net&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or what ever easy to use but powerful enough for your platform image editor there is. I've never worked with a graphics team that could give me truly ready to use images and deadlines rarely allow for them to re-do because they are trying to find the right shade of chartreuse for the next set of images.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-11-18T01:03:00.000" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="19742" PostTypeId="2" ParentId="19725" CreationDate="2010-11-18T01:07:43.997" Score="1" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.pendrivelinux.com/&quot; rel=&quot;nofollow&quot;&gt;Pen Drive Linux&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Not an installer, this actually lets you run a linux distro off of the USB key. I don't use it myself these days, because I have a netbook with me at all times. If I felt strongly about it, it wouldn't be too hard to pick up a &lt;a href=&quot;http://www.codinghorror.com/blog/2010/08/whats-on-your-utility-belt.html&quot; rel=&quot;nofollow&quot;&gt;good flash drive&lt;/a&gt; and just have my entire development environment on my keychain. It's funny because most of my computers are decked out with 32GB solid state drives, so I wouldn't even be losing any storage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, if you're a windows developer, this doesn't help you in the slightest.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-11-18T01:26:05.450" LastActivityDate="2010-11-18T01:26:05.450" CommentCount="2" />
  <row Id="19743" PostTypeId="2" ParentId="19176" CreationDate="2010-11-18T02:32:05.777" Score="1" ViewCount="" Body="&lt;p&gt;It depends. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would take it as a strong sign that this is a small industry and if you burn bridges, other folks will hear about it. This is why one should never do destructive things when quitting, nor quit in a steamy fit (no matter how justified you think it might be), nor leave an &quot;I quit&quot; letter/email that spews bile and venom (no matter how justified you think it is). &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-18T02:32:05.777" />
  <row Id="19744" PostTypeId="2" ParentId="19725" CreationDate="2010-11-18T02:51:14.640" Score="1" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.vim.org/&quot; rel=&quot;nofollow&quot;&gt;gvim&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;No, not talking about &lt;a href=&quot;http://portablegvim.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;GVim Portable&lt;/a&gt; (which is, btw, by the looks of it, not developed anymore) but our old, regular, plain and complicated favourite editor. Portable by definition, and if wanted, a few lines in _vimrc ensures that no traces are left.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;&lt;a href=&quot;http://strawberryperl.com/releases.html&quot; rel=&quot;nofollow&quot;&gt;portable perl&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I mean, really :)&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;&lt;a href=&quot;http://stackoverflow.com/questions/678085/how-to-run-git-1-6-x-for-windows-from-a-usb-memory-stick&quot;&gt;portable git&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Haven't tried this yet, but looks promising (&lt;em&gt;drools&lt;/em&gt; :-) ) &lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-18T02:51:14.640" />
  <row Id="19745" PostTypeId="2" ParentId="19718" CreationDate="2010-11-18T03:23:29.637" Score="2" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Collaborative code writing tools&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Visual Studio.Net has a plugin called &lt;strong&gt;wave-vs.net&lt;/strong&gt; that allow real-time collaborative editing to support pair programming features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eclipse has two plugins called &lt;strong&gt;DocShare&lt;/strong&gt; and &lt;strong&gt;Saros&lt;/strong&gt;, that allow real-time collaborative editing of documents (DocShare) or projects (Saros).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(the above quoted from &lt;a href=&quot;http://en.wikipedia.org/wiki/Collaborative_real-time_editor#Real-time_collaborative_text_editing_software&quot; rel=&quot;nofollow&quot;&gt;wikipedia&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Which processes benefit?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously &lt;strong&gt;pair programming&lt;/strong&gt;. Off the top of my head I can't think of any immediate show-stoppers when considering the improvement the GDocs experience brings, and extending that improvement to collaborative coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the collaborative approach would work best if multiple people are working on sections of code that can be considered 'close'. It can also &lt;strong&gt;improve round-trip time for changes&lt;/strong&gt;, as you don't have to wait for a commit-update cycle to have the latest version.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Are they an alternative to VCS?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are complementary. They both serve the same purpose of streamlining contributions from team members. But there is a fundamental difference in their approach: Current VCS'es mostly document &lt;strong&gt;snapshots&lt;/strong&gt; of a project, while collaborative editing documents &lt;strong&gt;fine-grained changes&lt;/strong&gt;, capturing the thought process of a developer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, commits in a VCS are neatly &lt;strong&gt;organised as a change set&lt;/strong&gt;. In a collaborative environment, on the other hand, you can't even ensure the code will compile at any moment before completion of the whole project, because someone else might always be in the middle of writing a line of code. &lt;strong&gt;Change is continuous&lt;/strong&gt;. Therefore it might not be possible to unravel the contributions into change sets. &lt;/p&gt;&#xA;" OwnerUserId="7034" LastActivityDate="2010-11-18T03:23:29.637" />
  <row Id="19746" PostTypeId="2" ParentId="19686" CreationDate="2010-11-18T03:43:19.923" Score="2" ViewCount="" Body="&lt;p&gt;Since you gave no context at all, I'll just muddy the waters further by saying that in C++0x when you need to tell the compiler your lambda's return type, you do that with a -&gt; also:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;[](int n) -&amp;gt; double { ...stuff ... }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Since those two characters mean different things in different languages, or even in different places in the same language, it's not surprising there's no single answer to &lt;strong&gt;&quot;  -&gt; is called &lt;em&gt;_&lt;/em&gt;__ notation&quot;&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I call the character &quot;arrow&quot; if I want someone to type it (&quot;dash-greater-than&quot; if I'm dealing with someone really inexperienced and confused), and I pronounce it &quot;points to&quot; when it's being used like your dot-notation example, and &quot;returns&quot; in the lambda example I just gave above.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-18T03:43:19.923" />
  <row Id="19747" PostTypeId="2" ParentId="19631" CreationDate="2010-11-18T04:22:45.710" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Good Requirements Documents&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developers come from all backgrounds, but a well written requirements specification can fill in their knowledge gaps and clearly explain the business and the objective of the user. You may not think a developer should be writing requirements, but if you can find a developer that is also a good communicator and good writer, you essentially have a business analyst that understands the complexities of software development, which is better than having a business analyst that doesn't understand the real complexity in software development (and there are a lot of those running around).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Why?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Karl Weigers once wrote that if you miss the requirements then it doesn't matter how well you execute the rest of the project, you are at increased risk for failure (and that's putting it a lot more mildly than he did). A good requirements specification doesn't have to be monolithic (although if the cost of failure is loss of life, then perhaps it might have to be) and a good one will get everyone, not just programmers, but also analysts, managers, project managers, subject matter experts, and end users on the same page. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Experienced developers know that the synergy of good domain knowledge, programming skill, and communication is important to successful software projects. A requirements document (on paper, wiki, or any medium) is a good part of that, not only for the beginning of the project, but also for life after go-live.&lt;/p&gt;&#xA;" OwnerUserId="7892" LastActivityDate="2010-11-18T04:22:45.710" />
  <row Id="19748" PostTypeId="2" ParentId="12336" CreationDate="2010-11-18T04:52:11.913" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1658&quot; rel=&quot;nofollow&quot;&gt;NERD_tree&lt;/a&gt; - much more than just file browsing.&lt;/p&gt;&#xA;" OwnerUserId="2574" LastActivityDate="2010-11-18T04:52:11.913" />
  <row Id="19749" PostTypeId="2" ParentId="18107" CreationDate="2010-11-18T05:08:14.817" Score="0" ViewCount="" Body="&lt;p&gt;If you want to make diagram fast, you may try Red Koda Community.  Easy to install and use.  It's really faster if you like short-cut key types product like photoshop.&lt;a href=&quot;http://www.redkoda.com&quot; rel=&quot;nofollow&quot;&gt;link text&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-11-18T05:08:14.817" />
  <row Id="19750" PostTypeId="1" CreationDate="2010-11-18T05:24:55.833" Score="5" ViewCount="359" Body="&lt;p&gt;I have been browsing the questions here for advice on how to prepare and approach for going back to the job market. The Q&amp;amp;As have been a lot helpful but I would like to share some of the questions I and some others might still have in this market, and hope for responses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Five years ago right after getting my BSCS, I got an internship as a system admin with a large sized company and got hired as a software support Engineer ( fixing defects) and then java/J2EE developer in the same company. Overall I had 4 years of experience but was not confident with my skills and could not have a good grasp of the product we were developing, so I left the company over a year ago in search of my dream job :). But now after analyzing many things I still want to go back, but this time try web development. Now the catch is I forgot many concepts and coding after a year. Here are some questions I am dealing with right now. Can you please help me find a way?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1- How can I start learning about the web development? what do you suggest to learn to be able to compete with the rest of the candidates? to what level of understanding I should get in this field to know I am ready to look for jobs and how long should my estimate be to reach that level?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2- My resume shows I have been out of the market for over a year and my skills are mostly in Java programming and debugging. I assume most roles won't consider me as a candidate due to this gap in my career. How can I compensate for that and get more interviews?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3- Now that I am planning to move to a new area of software engineering that I don't have any experience in, should I consider my 4 years of industry experience? or considering the break I had should I look for junior development jobs?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you!&lt;/p&gt;&#xA;" OwnerUserId="7895" LastActivityDate="2010-11-18T07:43:29.153" Title="How to get back to Software Engineering after a break?" Tags="&lt;web-development&gt;&lt;career-advice&gt;&lt;job-market&gt;" AnswerCount="1" FavoriteCount="2" />
  <row Id="19751" PostTypeId="2" ParentId="19631" CreationDate="2010-11-18T05:28:11.680" Score="0" ViewCount="" Body="&lt;p&gt;Any documentation written in natural language is susceptible to ambiguity.  Code that is neatly written and well commented can reduce the ambiguity totally or almost totally.  So, it should be a combination of code with comments and the specs that were used to write the code.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-11-18T05:28:11.680" />
  <row Id="19752" PostTypeId="1" AcceptedAnswerId="19753" CreationDate="2010-11-18T05:31:02.957" Score="47" ViewCount="1502" Body="&lt;p&gt;Fore-warning: I'm typing this question on 3 hours' sleep in the last 48, after a month straight of long hours and sacrificed weekends. Launch deadline D-day was 12 hours ago, now we're in red time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you do to make it through delivery deadline crunches? Survival strategies? Tips? Caffeine super-charge advice?&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-02T18:13:33.117" Title="Crunch-time Sleep Deprivation: Survival Strategies?" Tags="&lt;sleep&gt;&lt;deadlines&gt;" AnswerCount="23" CommentCount="5" FavoriteCount="21" />
  <row Id="19753" PostTypeId="2" ParentId="19752" CreationDate="2010-11-18T05:39:01.343" Score="84" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Get sleep whenever you can - even 20 minutes at a time&lt;/li&gt;&#xA;&lt;li&gt;Avoid driving a car&lt;/li&gt;&#xA;&lt;li&gt;Sign up &lt;a href=&quot;http://careers.stackoverflow.com/&quot;&gt;here&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4285" LastActivityDate="2010-11-18T05:39:01.343" CommentCount="5" />
  <row Id="19754" PostTypeId="1" AcceptedAnswerId="19760" CreationDate="2010-11-18T05:39:27.380" Score="0" ViewCount="226" Body="&lt;p&gt;I am a configuration manager.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did my internship for 6 month before and they hired me for just 3 months now. They hire a new person for CM team today, I am worried they'd kick me out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now I maintain their CM software, because they develop it by themself in Oracle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is when you're working in a place where they don't pay so much, do you put yuor code free for them? Or as much as they hire you they can use your own code &amp;amp; package? (I mean special package such as get export data in excel).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I write program in Oracle forms...&lt;/p&gt;&#xA;" OwnerUserId="7897" LastEditorUserId="87" LastEditorDisplayName="" LastEditDate="2010-11-18T05:54:28.113" LastActivityDate="2010-11-18T20:42:11.683" Title="what should I do?" Tags="&lt;programming-languages&gt;&lt;oracle&gt;" AnswerCount="4" CommentCount="3" />
  <row Id="19755" PostTypeId="2" ParentId="19408" CreationDate="2010-11-18T05:46:35.063" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.vim.org&quot; rel=&quot;nofollow&quot;&gt;vim&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7898" LastActivityDate="2010-11-18T05:46:35.063" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="19756" PostTypeId="2" ParentId="19752" CreationDate="2010-11-18T05:46:55.170" Score="8" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Minimize exposure to electronic display device whenever you can.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The high intensity of light will disrupt your brain's sleep pattern.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Stop work immediately if signs of derilium occur.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You and your coworkers must keep a close watch on each other.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Take turn working. For example, you may work 10 hours, then pass on to the next person who will pick up from where you leave off.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Use a large whiteboard for latest update. (Call your office supplies company to place an emergency shipping order.)&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Consider sleeping in the office, with decent inflatable beds and other amenties, in order to save the commute time and avoid traffic accidents due to fatigue.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Again, place an emergency shipping order if necessary.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Order food that is appropriate. E.g. sandwiches.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The same type of food eaten by Chilean miners during the rescue operation.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Basically, the Chilean mine rescue operation is the operational blueprint for many crises where lives are at stake and in extreme stress.&lt;/p&gt;&#xA;" OwnerUserId="620" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-11-18T06:02:36.697" LastActivityDate="2010-11-18T06:02:36.697" CommentCount="2" />
  <row Id="19757" PostTypeId="2" ParentId="19752" CreationDate="2010-11-18T05:53:36.347" Score="30" ViewCount="" Body="&lt;p&gt;As I said in my comment, I'm in a similar boat.  Over the last several years, I've been on more than one &lt;a href=&quot;http://en.wikipedia.org/wiki/Death_march_%28software_development%29&quot; rel=&quot;nofollow&quot;&gt;Death March&lt;/a&gt;. I don't like them, but I have a few things that may help. And I certainly look forward to other responses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some do's:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you can see it coming, cut back on the caffeine leading up to it. Then, when you have to, hit your body with a coffee or soda (or 3) late in the afternoon. It should get you into the night. It helps me.&lt;/li&gt;&#xA;&lt;li&gt;Critique. At least make mental notes so if you do some kind of postmortem, you can attempt to reduce the next time it happens.&lt;/li&gt;&#xA;&lt;li&gt;Laugh. You have to make jokes to keep your sanity. Poke fun at yourself if nothing less.&lt;/li&gt;&#xA;&lt;li&gt;Every few hours, get away for 20-30 minutes. Take a walk, light jog, something for the body to cleanse the mind.&lt;/li&gt;&#xA;&lt;li&gt;Document all the cut corners and short cuts you're making so you can refactor them away once it's out the door and you can take a break.&lt;/li&gt;&#xA;&lt;li&gt;Listen to music that mentally takes you away. &lt;/li&gt;&#xA;&lt;li&gt;[Adding] - Prioritize. Determine, or get the Product/Project Manager to clearly indicate the order of precedence. Don't assume stuff and go down rabbit holes for no reason.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some do not's:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;lash out at co-workers. You're all in this together. Turn it into a perverse team building exercise. Like Deliverance without the banjos.&lt;/li&gt;&#xA;&lt;li&gt;Swear it will never happen again. Never say never or the universe will make sure it happens again.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Most importantly, keep you sanity. Good luck. You will get through it.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastEditorUserId="4752" LastEditorDisplayName="" LastEditDate="2010-11-18T06:10:11.383" LastActivityDate="2010-11-18T06:10:11.383" CommentCount="5" />
  <row Id="19758" PostTypeId="2" ParentId="19752" CreationDate="2010-11-18T06:00:58.093" Score="1" ViewCount="" Body="&lt;p&gt;Spend time on the most important items... lack of sleep will mess with your judgement.  Ask your team leader (or client) for guidance. Don't get obsessed with a small bug, or feature you like.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get rid of your ego.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remind your peers to get rid of their ego (if possible)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the big picture, nothing matters but your life and what you learn from going through experiences like this.  Although the pressure is important , you need to make sure you (and the rest of your team) now (more than ever) do the important and urgent things first.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't worry about multi tasking.  Multi tasking in humans usually results in less productivity.  Leave that job up to devices with more than one 'core'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider if your project manager is being unrealistic with his team and goals.  Try talking to your PM and telling them what you need to succeed.  More staff?  More training?  More time?  More deadlines but with smaller goals? etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Accept that it won't be perfect when you release.  There will always be imperfections in software made by humans.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Set expectations accordingly.  The more people see you as a person who can manage yourself, the more respect you will get.  You can't continue this patter of no sleep and production for long.  Quality will lower, and you will hate your job.  Don't let that happen, and be honest and reset expectations &lt;em&gt;as you learn of new information&lt;/em&gt;... new timelines, new resources, etc.  No-one knows everything perfectly to not need help.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Especially in the world of software, thank goodness you have websites and anonymous strangers who have compassion for your situation and are willing to help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best of luck!&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-11-18T06:00:58.093" />
  <row Id="19759" PostTypeId="2" ParentId="19752" CreationDate="2010-11-18T06:27:02.670" Score="28" ViewCount="" Body="&lt;p&gt;Don't do it. I did 120 hours overtime in one week. Then 115 the next.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thus Week 1 was 160 hours, week 2 was 155.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Slept at work most of the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The source code took years to get back into shape.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It nearly killed me, and I was younger then.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For maximum no-sleep, you sleep on the floor, with bubble wrap for a pillow.&#xA;You'll never manage more than an hour or so a day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It turned out the code didn't get used for months.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The hardware wasn't done either, and it turned out to be impossible for the software to work ( many months later to work out the hardware was buggy.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So go gently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice is no crunches. Your performance drops and product quality suffers.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-11-18T06:27:02.670" CommentCount="7" />
  <row Id="19760" PostTypeId="2" ParentId="19754" CreationDate="2010-11-18T06:38:09.553" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;My question is when you're working in&#xA;  a place where they don't pay so much,&#xA;  do you put yuor code free for them?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I do not think they will buy code from their employee.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your code is good, they might give you a raise. If they do not give you a raise, you can put it on your resume (CV) that your code solved a serious problem. Another employer might see your value and offer you a larger salary.&lt;/p&gt;&#xA;" OwnerUserId="685" LastEditorUserId="685" LastEditorDisplayName="" LastEditDate="2010-11-18T09:02:14.757" LastActivityDate="2010-11-18T09:02:14.757" CommentCount="1" />
  <row Id="19761" PostTypeId="2" ParentId="19752" CreationDate="2010-11-18T06:52:54.137" Score="65" ViewCount="" Body="&lt;p&gt;Sleep.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is nothing (caffeine included) that can replace sleeping, and you absolutely need sleep to function. If you have been awake for too long, you are more or less useless to the team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, what you create when you are too sleep deprived may actually cause problems that takes so long to solve that it delays the project instead of taking it forward.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After a few hours sleep you are so much more effective, that you will quickly make up for the sleep time.&lt;/p&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-11-18T06:52:54.137" CommentCount="6" />
  <row Id="19762" PostTypeId="2" ParentId="19752" CreationDate="2010-11-18T07:23:22.423" Score="5" ViewCount="" Body="&lt;p&gt;On SO: &lt;a href=&quot;http://stackoverflow.com/questions/1364056/how-to-keep-being-productive-when-you-are-tired/1364074#1364074&quot;&gt;&quot;How to keep being productive when you are tired?&quot;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You and the team are no use to anyone in the state you're in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And it's software: not life or death.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you have just worked would be illegal in most places in Europe too.&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-11-18T07:23:22.423" CommentCount="1" />
  <row Id="19763" PostTypeId="2" ParentId="19754" CreationDate="2010-11-18T07:33:36.007" Score="0" ViewCount="" Body="&lt;p&gt;You don't know if they are going to kick you. You are not a fortune teller. So while you wait to see if it happens, do your best to provide to notch work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding your other question. they pay you for a job and you accepted the terms, no why would you start billing for a job you are already paid for?&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-18T07:33:36.007" CommentCount="4" />
  <row Id="19764" PostTypeId="2" ParentId="5972" CreationDate="2010-11-18T07:36:03.380" Score="0" ViewCount="" Body="&lt;p&gt;Smalltalk - your own image.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So Squeak uses Squeak, Pharo uses Pharo, ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think only Gnu Smalltalk doesn't, where I suspect they use Emacs or Vim.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-11-18T07:36:03.380" CommunityOwnedDate="2011-04-30T19:57:04.087" />
  <row Id="19765" PostTypeId="2" ParentId="19754" CreationDate="2010-11-18T07:38:09.167" Score="4" ViewCount="" Body="&lt;p&gt;&quot;as much as they hire you they can use your own code &amp;amp; package?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a term called &quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Work_for_hire&quot; rel=&quot;nofollow&quot;&gt;work for hire&lt;/a&gt;&quot; which means we are hired to work, for a wage, and our work belongs to the person/company paying that wage. Every company I've written software for has had us sign a legal document stating I understand that the intellectual property they pay me to create is theirs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are limitations to how far it goes so if you have questions you should consult your HR department, corporate legal group, and a copyright/intellectual-property lawyer if you're really curious about it or feel they are trying to grab things that don't belong to them.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-11-18T07:38:09.167" />
  <row Id="19767" PostTypeId="2" ParentId="19752" CreationDate="2010-11-18T07:43:12.430" Score="29" ViewCount="" Body="&lt;p&gt;Perhaps I've been in this job too long but these types of question irritate me enormously. As has already been said, this kind of situation is probably illegal in most parts of the development world (if it isn't then it ought to be).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from anything else, it's stupid and self-delusory. I'm not impressed with these power-coders who put in chemically-supported (caffine or whatever) mega coding sessions and are then proud of themselves. The chances are they have just produced a pile of crap which will give some poor debugger nightmares.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I cannot tell you how often I've struggled with a problem through an afternoon and then gone home. In the morning, the problem melts away and is solved in minutes. Sure, if I had slaved away, pumped myself full of Jolt/RedBull/... I might have got there by the early hours too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sleep matters. It's not cool. Your mates won't find it so impressive. But it works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;** rant end ** (think I'll go and have a lie down now)&lt;/p&gt;&#xA;" OwnerUserId="598" LastEditorUserId="598" LastEditorDisplayName="" LastEditDate="2010-11-18T09:07:29.257" LastActivityDate="2010-11-18T09:07:29.257" CommentCount="6" />
  <row Id="19768" PostTypeId="2" ParentId="19750" CreationDate="2010-11-18T07:43:29.153" Score="3" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;I really think the only way to learn correctly is &lt;strong&gt;practicing&lt;/strong&gt;. So I would suggest you to buy a couple of books on the technologies you want to dive in and experiment by solving a problem you have today.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You have to put &lt;strong&gt;&quot;Junior Developer&quot;&lt;/strong&gt; on your CV again. I used to practice martial arts for years. When I stopped for too long (more than 6 months), and I came back with my white belt. Titles are nothing but titles. If you put &quot;Senior Developer&quot;, you will fail the interviews.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Of course you should consider your 4 years experience. But not like it was the last 4 years. Yes, take Junior Development Jobs first, &lt;a href=&quot;http://programmers.stackexchange.com/questions/19719/engineering-support-to-development-career-switch/19723#19723&quot;&gt;delight your boss&lt;/a&gt;, then things will come naturaly.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-18T07:43:29.153" CommentCount="2" />
  <row Id="19770" PostTypeId="1" CreationDate="2010-11-18T08:40:12.623" Score="5" ViewCount="236" Body="&lt;p&gt;I need to quickly train Fortran 90 developers into object oriented design, good coding, and general coding practices to make code maintenance easier and accessible to everybody. Their current style is the usual: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;long routines that do too much&lt;/li&gt;&#xA;&lt;li&gt;modules are aggregated in &quot;family mode&quot; (routines that have something to do with different kind of objects who share a common use are all in one module, instead of having different modules for different type)&lt;/li&gt;&#xA;&lt;li&gt;huge globals module with hundreds of variables&lt;/li&gt;&#xA;&lt;li&gt;general un-greppability of identifiers&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This is just out of my head. I did a course to one of them explaining OO and modularization in terms of a Pen (with methods such as uncap(), and members like inkLevel) and I was very successful in diverting his point of view. I also gave him the exercise to code in OO style a very simple textual adventure, where the player can move around rooms. I also introduced the concept of patterns and antipatterns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to know any hints and suggestions on how to perform this task at best. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="1338" LastActivityDate="2010-11-19T04:23:50.027" Title="Training old timey fortran programmers to better code design. hints ?" Tags="&lt;design&gt;&lt;teaching&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="1" />
  <row Id="19771" PostTypeId="1" AcceptedAnswerId="19776" CreationDate="2010-11-18T08:47:15.703" Score="4" ViewCount="491" Body="&lt;p&gt;I have used &lt;a href=&quot;http://subversion.tigris.org/&quot; rel=&quot;nofollow&quot;&gt;SVN&lt;/a&gt; and Microsoft Visual Source Safe for many years, and it’s easy to get stuck with the same tools when new and better ones come up around the corner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wonder if there is better versioning software that I should know about.&#xA;I’m using versioning software for all kind of documents, code and general documents.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-18T12:30:01.467" LastActivityDate="2010-11-18T18:47:43.223" ClosedDate="2010-12-15T17:39:38.957" Title="Which are the most popular versioning software that one should know about?" Tags="&lt;version-control&gt;&lt;windows&gt;&lt;documentation&gt;&lt;versioning&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="2" />
  <row Id="19772" PostTypeId="2" ParentId="19752" CreationDate="2010-11-18T08:51:06.737" Score="13" ViewCount="" Body="&lt;p&gt;I'm surprised that no-one has explicitly mentioned polyphasic sleep yet. &quot;Polyphasic&quot; means simply multiple episodes per day but in this context research has should that it is possible to live happily for weeks or months on 2-3hrs sleep per day by taking 20min-30min naps every four hours continuously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may have heard anecdotally of polyphasic sleeping through &quot;self-help&quot; blogs around the place, but it has actually seen some measure of actual scientific research into whether/how it works. The book with the collated results is called ‘&lt;a href=&quot;http://en.wikipedia.org/wiki/Why_We_Nap%3a_Evolution,_Chronobiology,_and_Functions_of_Polyphasic_and_Ultrashort_Sleep&quot; rel=&quot;nofollow&quot;&gt;Why We Nap&lt;/a&gt;’, a collection of academic papers on the topic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Particularly relevant quotes from Claudio Stampi's work therein:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The generally accepted upper limit for&#xA;  working intensively and continuously&#xA;  is between 2 and 3 days. In some&#xA;  situations the detrimental effects of&#xA;  sleep loss may appear within the first&#xA;  24 hr of continuous work.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;On the limits of regular sleep in such situations:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Research has demonstrated that if&#xA;  sleep is gradually reduced in amount,&#xA;  most performance can be maintained at&#xA;  normal levels with 60-70% of the usual&#xA;  amount of sleep (4.5-5.5 hr per day;&#xA;  e.g., Friedmann et al., 1977).&#xA;  Approximately 5 hr of nocturnal sleep&#xA;  certainly appear to be the best way to&#xA;  obtain minimal sleep.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And most notably:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Polyphasic sleep may be a feasible,&#xA;  and perhaps the only, strategy&#xA;  allowing remarkable levels of sleep&#xA;  reduction during prolonged quasi-&#xA;  continuous work situations, without&#xA;  unduly compromising performance&#xA;  effectiveness.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The ability to fall asleep quickly and being able to adapt to such a anti-social sleeping regime are certainly necessary to pull this off, but under the circumstances it sounds like neither of these issues will be a problem for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are strict about your sleeping patterns and your environment is conducive to naps every four hours, then by using this approach you should be able to survive indefinitely on 2-3 hours sleep per day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, you'll still burn out from the concentration of working the increased number of hours, but at least you won't be experiencing sleep deprivation at the same time.&lt;/p&gt;&#xA;" OwnerUserId="7902" LastActivityDate="2010-11-18T08:51:06.737" CommentCount="8" />
  <row Id="19774" PostTypeId="2" ParentId="19770" CreationDate="2010-11-18T09:15:02.140" Score="0" ViewCount="" Body="&lt;p&gt;I found it useful to use a framework which used OO. I was forced to think about how to use it and wondered why things were done in certain ways. I know it's not the whole solution but it helped me at the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The framework I used was the Open Class library for OS/2. Lots of GUI stuff but also collections, string-handling etc. How about getting your guys to use .Net and Forms. They will deal with objects such as Window and Control, will call methods and perhaps notice the inheritance hierarchy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just an idea...&lt;/p&gt;&#xA;" OwnerUserId="598" LastActivityDate="2010-11-18T09:15:02.140" />
  <row Id="19775" PostTypeId="2" ParentId="19771" CreationDate="2010-11-18T09:16:47.000" Score="6" ViewCount="" Body="&lt;p&gt;We moved from Subversion to &lt;a href=&quot;http://mercurial.selenic.com/&quot; rel=&quot;nofollow&quot;&gt;Mercurial&lt;/a&gt; a few months ago and are very impressed with it. (Going back to Subversion seems &lt;em&gt;so&lt;/em&gt; slow now.) Haven't had any issues with stability, even on a large codebase with multiple repositories. Being able to branch and merge without fear is quite liberating.&lt;/p&gt;&#xA;" OwnerUserId="7130" LastActivityDate="2010-11-18T09:16:47.000" CommentCount="2" />
  <row Id="19776" PostTypeId="2" ParentId="19771" CreationDate="2010-11-18T09:17:02.400" Score="10" ViewCount="" Body="&lt;p&gt;There is, of course, a list of version control software &lt;a href=&quot;http://en.wikipedia.org/wiki/Comparison_of_revision_control_software&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;. However, I believe that the open source version control systems which are most widely used would likely be cvs, subversion, and git. subversion appears to be largely replacing cvs, since it is, in effect, a better cvs. However, git has been getting more and more use and will likely overtake subversion. cvs and subversion are centralized whereas git is distributed. Personally, I use git for everything, and I use git-svn to interface with subversion when I have to use subversion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mercurial and Bazaar are probably the other two big open source version control systems. Both are distributed. I haven't personally used either of them, but I've heard good things about them and they're both popular. Increasingly, people are favoring distributed source control systems such as git, Mercurial, or Bazaar, so that's probably the kind of version control system that you're going to want to use for your own code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From what I can tell, Visual Source Safe, ClearCase, and Perforce are three of the biggest proprietary version control systems, but I've only personally ever used Source Safe. And, of course, there are various other version control systems out there - both open source and proprietary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say that you should probably know the basics of subversion and git at minimum if you want to interact with open source repositories and probably if you want to use version control software on your own code (cvs and subversion are similar enough that if you know the basics of one, you pretty much know the basics of the other). But checking out Bazaar or Mercurial wouldn't be a bad idea. You might find that they suit your tastes better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for proprietary version control software; I wouldn't worry about it. You're not going to want to use it for your own software, since there are plenty of free alternatives out there. And if the company that you work for uses one, you'll learn it on the job. But from what I can tell, many companies are switching over to open source alternatives anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I wouldn't worry too much about learning how to use all of the various version control systems out there. If you're looking for one to use for your own stuff, you should probably check out git, Mercurial, and/or Bazaar and decide which one works best for you. Beyond that, just learn them as you need to for your job or to interact with repositories for open source projects. You only really need to know them if you use them.&lt;/p&gt;&#xA;" OwnerUserId="7896" LastEditorUserId="7896" LastEditorDisplayName="" LastEditDate="2010-11-18T18:47:43.223" LastActivityDate="2010-11-18T18:47:43.223" CommentCount="3" />
  <row Id="19777" PostTypeId="2" ParentId="2846" CreationDate="2010-11-18T09:19:52.567" Score="4" ViewCount="" Body="&lt;p&gt;Visual Basic, it is like human crap i don't even wanna touch it!&lt;/p&gt;&#xA;" OwnerUserId="7269" LastActivityDate="2010-11-18T09:19:52.567" CommunityOwnedDate="2010-11-18T09:19:52.567" CommentCount="2" />
  <row Id="19778" PostTypeId="2" ParentId="19771" CreationDate="2010-11-18T09:29:28.393" Score="4" ViewCount="" Body="&lt;h1&gt;Git&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Git is extremely popular and with good reason. Once you understand how it works you'll wonder why you used anything else. Super fast merges, clean branches, multiple repositories. Works best from the command line.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-18T09:29:28.393" CommentCount="5" />
  <row Id="19779" PostTypeId="2" ParentId="19622" CreationDate="2010-11-18T09:36:52.420" Score="2" ViewCount="" Body="&lt;p&gt;I can't say the programming courses at uni taught me any certain techniques to improve my code -- I had to figure that out on my own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, they did subject me to a valuable experience: &lt;strong&gt;having to program in pairs or groups.&lt;/strong&gt; This forced everyone to think about communication and how to write the code in such a way which could be understood by someone else than yourself. It doesn't matter how good a programmer you are if you can't get the others to understand what the hell you're doing. Imagine trying that in industry...&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-11-18T09:36:52.420" />
  <row Id="19780" PostTypeId="2" ParentId="19725" CreationDate="2010-11-18T09:37:23.797" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ghisler.com/&quot; rel=&quot;nofollow&quot;&gt;Total Commander&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not a pure development tools. But you will need it when you do file management.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-11-18T09:37:23.797" />
  <row Id="19781" PostTypeId="2" ParentId="19725" CreationDate="2010-11-18T09:39:50.577" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://portableapps.com/apps/development/xampp&quot; rel=&quot;nofollow&quot;&gt;XAMPP&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apache, mySQL, PHP, phpMyAdmin and more in an integrated package&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-11-18T09:39:50.577" />
  <row Id="19782" PostTypeId="1" CreationDate="2010-11-18T09:43:47.060" Score="40" ViewCount="1903" Body="&lt;p&gt;I wonder if it's a good idea to be slightly funny during a job interview. I don't mean to try to tell a joke, but just to insert a humourous thought, related to the question or the theme we talk about. I often use humour when I feel that there is too much stress or when people are not &quot;connected&quot; and the ambiance is frozen. I don't know if I can use this trick to have the thing going smoothly.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this something to avoid at all cost ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;PS / This is more a question asked to &quot;heavy-duty&quot; interviewers than to job seekers.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="133" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-11-18T13:04:04.683" LastActivityDate="2010-11-19T11:37:51.140" ClosedDate="2010-12-29T17:22:26.977" Title="Is this a good idea to use humour during a job interview ?" Tags="&lt;job-interview&gt;&lt;job-hunting&gt;" AnswerCount="18" CommentCount="5" FavoriteCount="4" />
  <row Id="19783" PostTypeId="1" CreationDate="2010-11-18T09:51:59.640" Score="10" ViewCount="992" Body="&lt;p&gt;My day job is  java/web developer. I have been using eclipse for ~5years. I think its excellent and I also use Webstorm for javascript and html/jsp.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do on occasion need to ssh into server and mess around with config files; for this I use vi and it pains me. I have to get up a webpage listing the syntax/commands : &lt;em&gt;press escape, then asterix, turn around three times and the text will be entered two lines above your cursor&lt;/em&gt;. Its so &lt;strong&gt;unintuitive&lt;/strong&gt; to me, and I imagine anyone who grew up in the late eighties nineties.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are the main reasons I think eclipse is brilliant(and I assume other IDE's), and do not switch to emacs and/or vim.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Error highlighting with no need to&#xA;recompile project.&lt;/li&gt;&#xA;&lt;li&gt;Code assist.&lt;/li&gt;&#xA;&lt;li&gt;Refactoring.&lt;/li&gt;&#xA;&lt;li&gt;Opening call hiearchy/Opening&#xA;declaration.&lt;/li&gt;&#xA;&lt;li&gt;Fully integrated with source control.&lt;/li&gt;&#xA;&lt;li&gt;Debugger is included.&lt;/li&gt;&#xA;&lt;li&gt;availablity of 3rd party plugins - eg&#xA;findbugs/checkstyle.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;One of the arguments I hear is that with emacs/vim you can create your own plugins - well OK, but you can do that in eclipse too. But you don't need to as everything is already there!  Its like saying buy this half built car, you can build the rest yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why are people using emacs/vim ? Do people who use it actually work on complex object-oriented projects in large organisations ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What are the reasons to switch to vim/emacs. How would my productivity increase if I did switch?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-11-18T10:00:03.547" LastActivityDate="2010-11-19T11:31:01.757" Title="I use an IDE (Eclipse) to develop software. Why should I switch to vim or emacs ?" Tags="&lt;ide&gt;&lt;vim&gt;&lt;emacs&gt;" AnswerCount="14" CommentCount="5" FavoriteCount="3" />
  <row Id="19784" PostTypeId="2" ParentId="19782" CreationDate="2010-11-18T09:52:22.077" Score="105" ViewCount="" Body="&lt;p&gt;Be yourself. Just keep it &lt;em&gt;mostly&lt;/em&gt; to the point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People are different, but if your interviewer gets upset by an occasional humorous thought, it's a warning sign to you: you probably don't want to work with such people. I think job interviews should be considered as a dialogue. You're not only &quot;trying to get the job&quot; - you should also probe the interviewer and the company whether you actually want to work there. It's not arrogant; in the end it's better for both you and for the company that your chemistries match.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-11-18T09:52:22.077" CommentCount="6" />
  <row Id="19785" PostTypeId="2" ParentId="19782" CreationDate="2010-11-18T09:55:36.297" Score="1" ViewCount="" Body="&lt;p&gt;It all depends on the confidence of the interviewer if he is confident and humorous he might like it. If he is touchy and has a lot of self pity he might hate you for being a happy go lucky person :-) It is also a cultral thing IMO.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-18T09:55:36.297" />
  <row Id="19786" PostTypeId="2" ParentId="19782" CreationDate="2010-11-18T09:58:11.620" Score="41" ViewCount="" Body="&lt;p&gt;If it gets a bad reaction, are you talking to somebody you really want to work for?&lt;/p&gt;&#xA;" OwnerUserId="4503" LastActivityDate="2010-11-18T09:58:11.620" CommentCount="1" />
  <row Id="19787" PostTypeId="2" ParentId="19782" CreationDate="2010-11-18T09:58:50.590" Score="10" ViewCount="" Body="&lt;p&gt;I would say feel the &lt;strong&gt;atmosphere&lt;/strong&gt; and go with majority.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are nervous do not joke since it’s too obvious!&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-11-18T10:32:16.507" LastActivityDate="2010-11-18T10:32:16.507" CommentCount="2" />
  <row Id="19788" PostTypeId="2" ParentId="19573" CreationDate="2010-11-18T10:00:56.040" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Everyday meetings&lt;/strong&gt;: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(meeting duration in hours) x (Y team members) x (average salary per hour) = ...  &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1483" LastActivityDate="2010-11-18T10:00:56.040" CommentCount="2" />
  <row Id="19789" PostTypeId="2" ParentId="19782" CreationDate="2010-11-18T10:09:50.200" Score="9" ViewCount="" Body="&lt;p&gt;No. Don't &lt;strong&gt;use&lt;/strong&gt; humour. do not attempt to insert humour when it is obviously not appropriate.  So if you are in the middle of explaining a design pattern on a white board, or proving you know the correct syntax for x - don't tell a joke.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;But&lt;/strong&gt;, if there is a witty resposne and the atmosphere is relaxed, why not.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-11-18T10:09:50.200" CommentCount="2" />
  <row Id="19790" PostTypeId="2" ParentId="19782" CreationDate="2010-11-18T10:15:03.693" Score="28" ViewCount="" Body="&lt;p&gt;Be very careful - especially when dealing with people from another country.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Humour is one of the most difficult things to translate across cultural borders, and you should be aware that what one person considers very witty sounds downright stupid or obnoxious to another person, and you should know the recipient well enough to be sure that you go in the first category.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since at a job interview you are rarely knowing the others well enough to be sure, you should - in my opinion - remain serious and calm.  If the others are casual, fine - go with the flow - but if not, then keep fun stuff to later.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-18T10:15:03.693" CommentCount="8" />
  <row Id="19792" PostTypeId="2" ParentId="19752" CreationDate="2010-11-18T10:27:37.900" Score="9" ViewCount="" Body="&lt;p&gt;You are running straight into a burn-out situation. The most important advice I can give you, after many years of deadlines and stress and stuff: When you notice that you cannot long work efficently, stop staring at the screen, go home and get some sleep. Sounds obvious, but more often than not, people in this situation think that leaving the desk is not an option. It is, and when you come back 8 hours later, you will be able to work again. Don't punish yourself for missing the deadline.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-18T10:27:37.900" CommentCount="1" />
  <row Id="19793" PostTypeId="2" ParentId="19783" CreationDate="2010-11-18T10:31:43.593" Score="18" ViewCount="" Body="&lt;p&gt;Use whatever tool fits your needs. Knowing VIM or Emacs is a good thing if you ever have to login into a remote server and edit a config file or something similar. I know VIM reasonably well, but I wouldn't use it to develop in Java. That's what Eclipse, Netbeans etc. are made for.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-18T10:31:43.593" CommentCount="9" />
  <row Id="19794" PostTypeId="2" ParentId="19752" CreationDate="2010-11-18T10:36:04.223" Score="26" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Change your job!&lt;/strong&gt;&#xA;Nothing is worth your health!&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-11-18T10:36:04.223" />
  <row Id="19795" PostTypeId="2" ParentId="19752" CreationDate="2010-11-18T10:55:47.950" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Punch all the managers responsible for it in the face.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's really an important task, they wont be able to fire you - use the survival techniques others have mentioned. Especially the laughter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they do fire you, celebrate because you're in a better place. Health always comes before any job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they try to press charges or sue you, you can claim insanity (brought on by stress, overwork, lack of sleep, etc) caused you to follow the advice of a maniac on the Internet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;:)&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-11-18T10:55:47.950" CommentCount="7" />
  <row Id="19796" PostTypeId="2" ParentId="11312" CreationDate="2010-11-18T11:03:46.353" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://gigaom.com/collaboration/mix-up-the-workweek-by-setting-your-own-20-percent-time/&quot; rel=&quot;nofollow&quot;&gt;Mix Up the Workweek&lt;/a&gt; by Setting &lt;strong&gt;Your Own &quot;20-Percent Time&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Many large companies have policies that allow employees to spend some of their time working on their own projects. These programs are often used to entice high-caliber job applicants, as well as encourage innovation. For example, Google has what it calls “20-Percent Time”, where its employees spend one day each workweek on project they’re passionate about.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Why?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Innovation and creativity&lt;/li&gt;&#xA;&lt;li&gt;Exploration&lt;/li&gt;&#xA;&lt;li&gt;Opportunity&lt;/li&gt;&#xA;&lt;li&gt;Motivation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-11-18T11:03:46.353" CommunityOwnedDate="2010-11-18T11:03:46.353" />
  <row Id="19797" PostTypeId="2" ParentId="19771" CreationDate="2010-11-18T11:12:32.247" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;BitKeeper&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The version control system that inspired git. It is proprietary. It is distributed. And it is damn fast. Viewing a 10 year old revision details takes under 5 seconds on a 15 million LOC project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And they introduced the concept of changesets. Instead of controlling individual files, changes are grouped as changesets. While pushing to the parent repository, either all changes are pushed or nothing. So no build breakages because of one file not being pushed.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-11-18T11:12:32.247" />
  <row Id="19798" PostTypeId="2" ParentId="19783" CreationDate="2010-11-18T11:30:38.633" Score="2" ViewCount="" Body="&lt;p&gt;Personally, I like Vim because it's extremely good at editing text, i.e. very ergonomic (the keybindings don't strain my hands so much and I don't need to use the mouse so much) and efficient to use once you get the hang of it (which will of course take time and patience, since it's not the most intuitive editor for beginners).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would however prefer Eclipse for large-scale Java development due to the many features that are readily available. Of course, there are &lt;a href=&quot;http://stackoverflow.com/questions/2220653/what-is-the-best-vim-plugin-for-eclipse&quot;&gt;some plugins&lt;/a&gt; that can make Eclipse a bit more tolerable.&lt;/p&gt;&#xA;" OwnerUserId="7908" LastActivityDate="2010-11-18T11:30:38.633" />
  <row Id="19799" PostTypeId="2" ParentId="19783" CreationDate="2010-11-18T12:01:54.760" Score="9" ViewCount="" Body="&lt;p&gt;I have been using emacs for 5+ years. I can no longer tell you the key combinations I'm using, my fingers just remembers them and have to look at the keyboard just to see what my hands are typing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few years ago I started using Eclipse, and there is no chance I'm going back to emacs freely. Sorry muscle memory, even though you are missing ye old &lt;code&gt;C-x r SPC 1&lt;/code&gt;, Eclipse makes me a lot more productive and that is what counts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;No, I don't think you should switch&lt;/strong&gt;, but you should dedicate a couple of hours to learn the basics of vim so you don't have to look it up anymore.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-11-18T15:50:29.850" LastActivityDate="2010-11-18T15:50:29.850" />
  <row Id="19800" PostTypeId="2" ParentId="19783" CreationDate="2010-11-18T12:08:51.273" Score="3" ViewCount="" Body="&lt;p&gt;Basically, read &lt;a href=&quot;http://www.emacs.uniyar.ac.ru/doc/O%27Reilly_Emacs/Writing%20GNU%20Emacs%20Extensions.PDF&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;(PDF) to see why Emacs is powerful. Once you know Lisp, it is almost trivially easy to write extensions for it (I have several source control workflows and deployments scripted through an add-on I wrote for myself called &lt;code&gt;employer-mode&lt;/code&gt;). As far as what you list above;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Error highlighting with no need to recompile project. &lt;em&gt;Doesn't make sense for all languages. You can easily integrate &lt;code&gt;REPLs&lt;/code&gt; of many languages into it. Right now, I have &lt;code&gt;ruby&lt;/code&gt;, &lt;code&gt;python&lt;/code&gt;, &lt;code&gt;haskell&lt;/code&gt;, &lt;code&gt;common lisp&lt;/code&gt;, &lt;code&gt;scheme&lt;/code&gt; and &lt;code&gt;erlang&lt;/code&gt; all hooked into emacs. Incidentally, the JavaScript addon &lt;code&gt;js2-mode&lt;/code&gt; has full incremental &quot;compilation&quot; so it highlights things like syntax errors for you, so it's certainly possible, but not the norm&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Code assist. &lt;em&gt;there's an addon for that called &lt;code&gt;autocomplete.el&lt;/code&gt;, I believe, check the &lt;a href=&quot;http://www.emacswiki.org/&quot; rel=&quot;nofollow&quot;&gt;Emacs wiki&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Refactoring. &lt;em&gt;I assume you mean &quot;automated refactoring&quot;, which doesn't make sense in all languages. Probably exists for some, but I don't know.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Opening call hiearchy/Opening declaration.&lt;/li&gt;&#xA;&lt;li&gt;Fully integrated with source control. &lt;em&gt;It has a &lt;code&gt;git-mode&lt;/code&gt; built in as of Emacs 22.3, not sure about other source control&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Debugger is included. &lt;em&gt;Language-by-language basis here. Generally, if it has REPL integration, it has an Emacs debugger too, but it's not universal&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;availablity of 3rd party plugins - eg findbugs/checkstyle. &lt;em&gt;don't know about those specific ones, but there's plenty of addons for it, from the why-isn't-this-in-the-base-package-useful, to the utterly frivolous&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That said, if you don't like Lisp, and you don't intend to learn it, I can't honestly recommend Emacs. The win you get out of it is learning about tool-crafting and applying those principles to increase your own productivity, not getting a bunch of off-the-shelf mods and stringing them together.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-11-18T14:30:28.820" LastActivityDate="2010-11-18T14:30:28.820" CommentCount="5" />
  <row Id="19801" PostTypeId="2" ParentId="19783" CreationDate="2010-11-18T12:10:24.877" Score="4" ViewCount="" Body="&lt;p&gt;if you consider vim, over eclipse, then just use butterflies. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;good luck (you gonna need a lot of it). &lt;/p&gt;&#xA;" OwnerUserId="5260" LastActivityDate="2010-11-18T12:10:24.877" CommentCount="2" />
  <row Id="19802" PostTypeId="2" ParentId="19782" CreationDate="2010-11-18T12:20:43.743" Score="10" ViewCount="" Body="&lt;p&gt;Keeping all the other answers in mind, being humorous can make you much more memorable, especially when there are lots of other candidates. No one wants to work with a stick-in-the-mud!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just an example from my interview for my current job:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;So I notice on your CV you said you&#xA;  play guitar?&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;Yeah, I've been playing for about 10&#xA;  years. It's always something to fall&#xA;  back on if the whole programming thing&#xA;  doesn't work out!&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I got the job, so I guess they liked me..?&lt;/p&gt;&#xA;" OwnerUserId="7412" LastActivityDate="2010-11-18T12:20:43.743" />
  <row Id="19803" PostTypeId="2" ParentId="19783" CreationDate="2010-11-18T12:32:21.973" Score="2" ViewCount="" Body="&lt;p&gt;I see two options here:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Use Nano instead - This is exactly like Notepad in Windows for Linux. Requiring no hotkey combinations, you just type &lt;code&gt;nano somefile.conf&lt;/code&gt; and you have a nice editor. You can even &lt;a href=&quot;http://freethegnu.wordpress.com/2007/06/23/nano-shortcuts-syntax-highlight-and-nanorc-config-file-pt2/&quot; rel=&quot;nofollow&quot;&gt;add syntax highlighting&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Keep the program locally and sync over SCP to the server - I do this when I need to work on a small website but don't have enough resources to run apache locally. I simply bring up WinSCP, bring up the directories I want, and use &quot;Keep remote files up to date&quot;. Changes are usually reflected in seconds&lt;/li&gt;&#xA;&lt;li&gt;Use a plugin in your editor/IDE to work &quot;directly&quot; with the remote file - Before I cared about revision control, I simply fired up Notepad++ (my prefered editor) and used NppFTP to work on the files. NppFTP is faster than the WinSCP option since Npp tells it immediately when a file is  saved, which gets immediately uploaded. However as I said you loose revision control. I'm sure there's a plugin for Eclipse you can use&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Hope this helps&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-11-18T12:32:21.973" CommentCount="2" />
  <row Id="19804" PostTypeId="2" ParentId="19782" CreationDate="2010-11-18T12:41:11.777" Score="27" ViewCount="" Body="&lt;p&gt;The use of humour, I'm pretty sure, once got me a job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Q. Have you used Crystal Reports before ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me. Yes, I've used it extensively.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Q. And do you like Crystal Reports ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me. Nobody LIKES using Crystal Reports...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Caught the interviewer's mood perfectly, and got offered the job soon after.&lt;/p&gt;&#xA;" OwnerUserId="3817" LastEditorUserId="3817" LastEditorDisplayName="" LastEditDate="2010-11-18T13:01:13.740" LastActivityDate="2010-11-18T13:01:13.740" CommentCount="6" />
  <row Id="19805" PostTypeId="2" ParentId="14516" CreationDate="2010-11-18T13:16:35.993" Score="3" ViewCount="" Body="&lt;p&gt;My suspicion is that it's virtually non-existant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In large part this is because Microsoft Office still reigns supreme in the enterprise.  Beyond that though those companies who do us OO will likely either be of a technical bent and therefore carry out such work themselves, or us OO for reasons of cost and are therefore unlikely to have budget for such things.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-18T13:16:35.993" CommentCount="1" />
  <row Id="19806" PostTypeId="2" ParentId="19782" CreationDate="2010-11-18T13:19:24.457" Score="19" ViewCount="" Body="&lt;p&gt;I've found that humour works well once you've established yourself as being clearly capable of doing the work. It's not appropriate to just go in to the interview cold and start making wisecracks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One excerpt from an interview of mine went like this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Them: Have you had any experience with version control? &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Me (deadpan): What's version control? &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Them (horrified): .... &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Me: Only kidding. I personally favour git for distributed version control, but Subversion is more than adequate for most environments (etc etc)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Got some laughs at the time. Nice tumbleweed. I'll get my coat...&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-18T13:19:24.457" CommentCount="4" />
  <row Id="19807" PostTypeId="1" AcceptedAnswerId="19812" CreationDate="2010-11-18T13:24:55.327" Score="0" ViewCount="64" Body="&lt;p&gt;Hey,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll be forming a &lt;a href=&quot;http://programmers.stackexchange.com/questions/18666/how-do-i-form-a-team-which-is-remote&quot;&gt;remote team&lt;/a&gt;, and I want to be able to use scripts (or something) to make &lt;em&gt;sure&lt;/em&gt; that people's code is checked in every night.  I currently use some BASH scripts that are kindof wonky and aren't customizable easily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone have any useful tools, tips, or resources for this?&lt;br&gt;&#xA;Are there any pitfalls to doing this that I'm not seeing, or can I do it better another way?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://superuser.com/questions/212293/useful-scripts-for-cm&quot;&gt;(cross-posted to super-user)&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7499" LastActivityDate="2010-11-18T15:31:30.680" Title="Useful Scripts for CM?" Tags="&lt;version-control&gt;&lt;team&gt;&lt;scripting&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="19808" PostTypeId="2" ParentId="19770" CreationDate="2010-11-18T13:28:17.150" Score="0" ViewCount="" Body="&lt;p&gt;Do a simple Animal, Cat, Dog example demonstrating inheritance without writing a single line of code at first.  Make sure they understand the concept of Object Oriented Programming before you even begin syntax.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's easy to try to relate old concepts to new concepts if you try to let them understand on their own, so I would avoid that until you think they understand why they're doing it in that particular way.  If you explain it to them in terms in which they can see the advantages of doing it that way, they'd have a reason not to use their old pattern of Fortran.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the length of methods, take a long method as an example and then replace pieces of it with bitesize methods with proper naming conventions so you can both demonstrate that long methods are ugly and how they can go about improving the situation.&lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-18T13:28:17.150" CommentCount="2" />
  <row Id="19809" PostTypeId="2" ParentId="19771" CreationDate="2010-11-18T13:30:58.300" Score="0" ViewCount="" Body="&lt;p&gt;Another proprietary system is &lt;a href=&quot;http://www.accurev.com&quot; rel=&quot;nofollow&quot;&gt;Accurev&lt;/a&gt;, worth a mention just because it is very different to all the rest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I've found difficult when researching version control is that they have very different philosophies, and it takes a while to get your head round them, and it's even more difficult to switch your reasoning from one to the other. And unfortunately, I suspect it's only when you've used any of them for a reasonable time that you really get a good idea of what they're worth.&lt;/p&gt;&#xA;" OwnerUserId="4285" LastActivityDate="2010-11-18T13:30:58.300" />
  <row Id="19810" PostTypeId="2" ParentId="19783" CreationDate="2010-11-18T13:32:07.233" Score="0" ViewCount="" Body="&lt;p&gt;If you're happy with Eclipse, then don't switch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can use Eclipse everywhere you need, don't switch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your project/company pretty much exclusively uses Eclipse, don't switch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you only rarely need something else, print out a &lt;a href=&quot;http://devcheatsheet.com/&quot; rel=&quot;nofollow&quot;&gt;cheat-sheet&lt;/a&gt; for one of the editors and pull it out of the drawer when you need it, and then go back to using Eclipse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See the (same) question over at SO: &lt;a href=&quot;http://stackoverflow.com/questions/1346820/what-are-the-efficiencies-afforded-by-emacs-or-vim-vs-eclipse&quot;&gt;http://stackoverflow.com/questions/1346820/what-are-the-efficiencies-afforded-by-emacs-or-vim-vs-eclipse&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as answering, &quot;Do people who use it actually work on complex object-oriented projects in large organisations?&quot; - Hold onto your hat sonny, but the answer is &quot;yes&quot;.  I've worked on projects with tens of millions of lines of code used in the critical path of designing the very CPU running the computer you're using to ask this question.  And people tried Eclipse but found it to be too slow and clunky (though, admittedly, we were not using Java).&lt;/p&gt;&#xA;" OwnerUserId="4289" LastActivityDate="2010-11-18T13:32:07.233" />
  <row Id="19811" PostTypeId="2" ParentId="19807" CreationDate="2010-11-18T13:32:47.533" Score="3" ViewCount="" Body="&lt;p&gt;Why do you want to force people to check in code ? Doesn't seem like a good idea to me; if the developer is not ready to commit changes, there is probably a good reason.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the benefit to be gained from being forced to check in everyday ?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have half built stuff that I wouldn't wish on anyone.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every place I have worked the checked in code is assumed to work, or has passed tests and compiles correctly etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd set up a continuous integration server, &lt;a href=&quot;https://hudson.dev.java.net/&quot; rel=&quot;nofollow&quot;&gt;hudson&lt;/a&gt;, in conjunction with subversion or cvs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(backing-up should be different to checking in, imho)&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-11-18T13:48:38.590" LastActivityDate="2010-11-18T13:48:38.590" CommentCount="5" />
  <row Id="19812" PostTypeId="2" ParentId="19807" CreationDate="2010-11-18T13:37:58.260" Score="2" ViewCount="" Body="&lt;p&gt;Why do you want to be sure that everyone's code is checked in overnight?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't want your build to fail and &lt;em&gt;having&lt;/em&gt; to check code in implies that one will have to commit code that won't necessarily be right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This leads to broader questions about what version control tools you're using and your general &quot;philosophy&quot; for version control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Certainly you want to make sure that your developers work is backed up and you almost certainly want them committing changes early and often but equally you want, no, &lt;strong&gt;need&lt;/strong&gt; a build server and you therefore want committed code to build (and pass its tests). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of the answer may come from using a Distributed VCS (or teaming local DVCS with a central server based system) in that you can require &quot;local&quot; commits (pushed to a mirror for backup) - hence need for more detail or more questions...&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-11-18T13:37:58.260" CommentCount="3" />
  <row Id="19813" PostTypeId="2" ParentId="19752" CreationDate="2010-11-18T13:40:10.553" Score="2" ViewCount="" Body="&lt;p&gt;Could not get all of this into a comment @Tim Williscroft&lt;/p&gt;&#xA;&#xA;&lt;p&gt;+1 Don't do it. You are digging yourself into a deeper hole each time. The code you write now will be of low quality, which means you'll have more debugging to do, which means less time to hit the next 'deadline'. (What a silly word!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can happen that you are in crunch-mode, but that would only be because an issue with the deployment onto production is causing all of the business to stop. Or that some critital production error has come up. My two &lt;strong&gt;only&lt;/strong&gt; reasons to ever crunch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you a 'lone-coder'? Doing all the work on the project yourself? If so, &lt;em&gt;you&lt;/em&gt; have a problem. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you the only one doing crunch-time in your team? Then stop right now, you are bringing the team into trouble. &quot;&lt;em&gt;But &lt;strong&gt;I&lt;/strong&gt;'m the only one trying to save the team from shame!!&lt;/em&gt;&quot; You are to good for the team, stop crunch time. There is a serious problem in the team: &lt;em&gt;it is not a team, there is no &lt;strong&gt;I&lt;/strong&gt; in Team&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So any other reason for crunch time is usually caused by bad practices. Time Management, Waterfall process, ScrumButs,  Fixed Price Projects, Lack of software craftmanship, ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, read up on e.g. Kanban to help you get out of this negative spiral. Then see if Scrum (real Scrum) can be implemented in your team. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stop being just a coder, become a Software Professional! &lt;/p&gt;&#xA;" OwnerUserId="7911" LastActivityDate="2010-11-18T13:40:10.553" />
  <row Id="19815" PostTypeId="2" ParentId="17700" CreationDate="2010-11-18T13:43:59.440" Score="0" ViewCount="" Body="&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you talking about Microsoft Platform or IIS Platform?. Many third party web servers are running on it. Like Apache does also run on windows platform. There are many public facing banking sites like citibank.com and etc using Java as platform. There is some technological limitation. Running Java on IIS is big hard task but IIS is improving and it is now scalable for larger organization. PHP on IIS is working perfectly fine now with Fastcgi support it is faster. With IIS 7/7.5 SEO friendly and open source software like PHP running website is possible. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you check While Microsoft dominates 34% of total Web Server operating system which compares to Unix is half but they have improved a lot compare to past years and you can see that IIS is improving a lot. You can check following URL:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://w3techs.com/technologies/overview/web_server/all&quot; rel=&quot;nofollow&quot;&gt;http://w3techs.com/technologies/overview/web_server/all&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Cost?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, Microsoft License is costly compare to NIX environment but if you compare but TCO on linux is higher. Normal System Administrator on Liux cost much more compare to Windows System Administrator. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Technology Limitations?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Till now, MS has technological limitation for large scale organization also Java works very well in enterprise and financial sector website but after IIS 7/IIS 7.5 scenario is changing with Web development environment like .Net framework and Portal like Share Point Portal Microsoft is improving a lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Does Microsoft cater to corporate / intranet environments more then public websites?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, with newer version of Windows and IIS Microsoft is catering public websites and they will surely do well in future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Gaurav Maniar MCP | MCSE | MCST | MCITP | ITILv3 Certified&lt;/p&gt;&#xA;" OwnerUserId="7910" LastActivityDate="2010-11-18T13:43:59.440" CommentCount="1" />
  <row Id="19817" PostTypeId="2" ParentId="19752" CreationDate="2010-11-18T13:47:08.567" Score="3" ViewCount="" Body="&lt;p&gt;Sleep and rest has been repeated enough. You're just not productive any more, simple as that. Actually, I do more in a day if I work 8-10 hours and then relax than if I force myself in 14 hours of coding. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One other advice : &lt;strong&gt;drink enough water&lt;/strong&gt; and stay away from caffeine or too much sugar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're laughing? A brain needs to be in good condition to function well. Especially for your brain, deprivation of water seriously jeopardizes its functioning. You'd be amazed what a difference one liter of water a day can make regarding freshness of your brain. I really said water, not juice, not tea, not coffee, not anything else. Water. The rest doesn't count.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next to that, both caffeine and sugar give you a temporary boost of about half an hour. Your body will react by starting up all mechanisms for processing either of those until they reach a &quot;normal&quot; level again. But the body can't switch those mechanisms on or off very fast, so you always get a an overshoot. In the end, you're going to end up worse than before (&quot;Boy, I need another coffee!&quot;). Ever wondered why people get addicted to coffee or sugar, and why it doesn't seem to help... ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since I gave up coffee, I still feel rather fresh at the end of the day, I can concentrate better. And my breath doesn't smell like dead rats any more.&lt;/p&gt;&#xA;" OwnerUserId="7268" LastActivityDate="2010-11-18T13:47:08.567" CommentCount="3" />
  <row Id="19818" PostTypeId="2" ParentId="19771" CreationDate="2010-11-18T13:49:23.660" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/vstudio/ff637362.aspx&quot; rel=&quot;nofollow&quot;&gt;Microsoft Team Foundation Server&lt;/a&gt; (aka TFS)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not wanting this to be a commercial plug ;-) but the OP is asking about popular VCS&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some facts:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Can be installed free of charge for up to 5 users&lt;/li&gt;&#xA;&lt;li&gt;Can be used with Visual Studio (duh!)&lt;/li&gt;&#xA;&lt;li&gt;Can be used with Ecclipse (TFS Everywhere)&lt;/li&gt;&#xA;&lt;li&gt;Is being used as a store for Codeplex.com&lt;/li&gt;&#xA;&lt;li&gt;Is much more than only version control (also includes CI/build server, Work Item Tracking, Project 'Management' features)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7911" LastActivityDate="2010-11-18T13:49:23.660" CommunityOwnedDate="2010-11-18T13:49:23.660" CommentCount="1" />
  <row Id="19820" PostTypeId="2" ParentId="266" CreationDate="2010-11-18T14:01:19.450" Score="0" ViewCount="" Body="&lt;p&gt;If nothing else, a large amount of cross-platform software would also prevent a .NET only system. Popular programs like Firefox, Git, GIMP, plus apps written in Java and games that need the power of lower level code.  There will always be a place for native code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do think we might see more VM-driven languages in the future though.  Java and .NET have proven how useful and good a VM can be, and now we see LLVM and Parrot trying to catch the open-source market up to that and bring a CLR-like system to other languages. &lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-18T14:01:19.450" />
  <row Id="19822" PostTypeId="2" ParentId="19782" CreationDate="2010-11-18T14:07:58.777" Score="3" ViewCount="" Body="&lt;p&gt;Good Question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the basis that you are confused about whether or not to use humour, I would suggest its not soo much the humour itself but more how you come across are a person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you approachable? Are you willing to work in a team? Can the team work with you? Are you interesting? (ie. What do you do outside of work).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the past 3 months we must of interviewed over 20 candidates for the role of Senior Software Engineer. Virtually all the candidates that possessed an impressive range of experience and knowledge have been turned down simply because they weren't 'people friendly'... in other words the candidate was not willing to work with others or was a bad communicator.&lt;/p&gt;&#xA;" OwnerUserId="7885" LastEditorUserId="7885" LastEditorDisplayName="" LastEditDate="2010-11-18T14:19:07.743" LastActivityDate="2010-11-18T14:19:07.743" />
  <row Id="19823" PostTypeId="2" ParentId="19752" CreationDate="2010-11-18T14:23:56.570" Score="5" ViewCount="" Body="&lt;p&gt;Exercise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You've got to keep your metabolism up to stay alert.  It's often the last thing you want to do when you're exhausted, but use those breaks to do pushups, jog in place, toe touches, brisk walk, something.&lt;/p&gt;&#xA;" OwnerUserId="3764" LastActivityDate="2010-11-18T14:23:56.570" CommentCount="1" />
  <row Id="19824" PostTypeId="2" ParentId="19622" CreationDate="2010-11-18T14:29:24.070" Score="1" ViewCount="" Body="&lt;p&gt;The truth is CS professors won't help you write good code AT ALL. Their job is to make sure you learn a certain language, and thats that. Countless number of times, I've been approaching the deadline for an assignment and ended up throwing together a mash-up of some terrible code and got an A+ for the assignment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to learn to write good code, the single best thing you can do, IMO, is take up an internship at a company/corporate and write code for them. Its surprising how the quality of your work goes up when there is no room for poor quality code.&lt;/p&gt;&#xA;" OwnerUserId="7914" LastActivityDate="2010-11-18T14:29:24.070" CommentCount="2" />
  <row Id="19825" PostTypeId="1" AcceptedAnswerId="46073" CreationDate="2010-11-18T14:41:41.250" Score="0" ViewCount="111" Body="&lt;p&gt;So I have been interested in learning &lt;a href=&quot;http://en.wikipedia.org/wiki/ABAP&quot; rel=&quot;nofollow&quot;&gt;ABAP&lt;/a&gt; (which is used in programming SAP core) but have no idea where to start. I have seen online tutorials, however, I don't have an available install of SAP to see how everything fits together. Does anybody know of any tools that are available that would allow me to learn ABAP and be able to see my code in action? (possibly an SAP emulator) &lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2011-02-09T22:32:12.637" Title="Useful Tools For Learning ABAP" Tags="&lt;tools&gt;&lt;abap&gt;&lt;sap&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="19826" PostTypeId="1" CreationDate="2010-11-18T14:45:23.967" Score="2" ViewCount="154" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/135/as-a-software-engineer-who-should-i-be-following-on-twitter&quot;&gt;As a software engineer, who should I be following on Twitter?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;yesterday i was reading an article that touched on twitter and made mention of how it can be influential if someone like Tim O'Reilly makes a suggestion then his 1.5 million followers on twitter will react to such tweets and cause some sort of reaction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;weather tweets and/ or the entire online social media ecosystem is debatable to no end it is a means of staying informed, sort of like watching the morning news.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;this thought has sparked me to create a twitter account so that i can follow current events in what im interested in, namely software development and technology in general. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;this brings me to my current situation of what intelligent people are worth following and listening too. i know the social media web is flooded with mind numbing nonsense but in part there are movers and shakers like Tim O'Reilly who are well worth listening too if for nothign more than getting a sense of which direction the wind is blowing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;so the million dollar question is who do you follow regularly?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;please list the moniker of the person for others (ME) to be able to easily add &amp;amp; follow them as well... also list the medium (facebook/ twitter...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;thanks all!&lt;/p&gt;&#xA;" OwnerUserId="6507" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-11-18T15:43:12.523" LastActivityDate="2010-11-18T16:50:25.757" ClosedDate="2010-11-18T18:05:21.973" Title="who are people Devs/techies should follow on twitter/ facebook?" Tags="&lt;twitter&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="0" />
  <row Id="19828" PostTypeId="2" ParentId="5473" CreationDate="2010-11-18T15:03:08.080" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Common points against proportional fonts, commented.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You cannot precisely align code vertically with proportional fonts. I mean, you &lt;em&gt;could&lt;/em&gt; precisely align code vertically with proportional fonts, if everybody was using &lt;a href=&quot;http://nickgravgaard.com/elastictabstops/&quot; rel=&quot;nofollow&quot;&gt;elastic tabstops&lt;/a&gt;, but alas...&lt;/li&gt;&#xA;&lt;li&gt;Some proportional fonts make it hard to distinguish some characters groups. (e.g., mrnm). Not all programming fonts are perfect either, however: &lt;a href=&quot;http://i.imgur.com/lKS6K.png&quot; rel=&quot;nofollow&quot;&gt;Courier New has identical 'O' and '0' and identical '1' and 'l'.&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Some IDEs have poor support for non-fixed-width fonts (like &lt;a href=&quot;http://programmers.stackexchange.com/questions/5473/does-anyone-prefer-proportional-fonts/5502#5502&quot;&gt;aforementioned&lt;/a&gt; Visual Studio or Python's IDLE). In some contexts, also, you just can't use one. (e.g., terminals.)&lt;/li&gt;&#xA;&lt;li&gt;Choosing a proportional font for coding will get you in endless holy wars. Here, however, the problem exists between the keyboard and the chair.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Points in favour of proportional fonts&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;Some characters are just wider than others.&lt;/code&gt; &amp;nbsp; &lt;a href=&quot;http://design.canonical.com/wp-content/uploads/2010/11/Mono_mmmmm-1024x170.jpg&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;Having to cram an 'm' in the same space of an 'n' or an 'i'&lt;/code&gt;&lt;/a&gt; &amp;nbsp; &lt;code&gt;makes it&lt;/code&gt; &amp;nbsp; &lt;a href=&quot;http://design.canonical.com/2010/11/the-monospace-is-coming/&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;truly challenging to design a good, readable monospace font&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Improved spacing between letters just right. Compare 'rnW' and 'Ill' in&lt;/code&gt; &amp;nbsp;  &lt;a href=&quot;http://codinghorror.typepad.com/.a/6a0120a85dcdae970b012877602664970c-pi&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;this Proggy Clear screenshot&lt;/code&gt;&lt;/a&gt; &amp;nbsp; &lt;code&gt;for an example of font spacing done wrong.&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Most programmer fonts lack italic or bold. This makes it hard to use effective syntax highlighting.&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Vertical alignment is a can of worms anyway. Tabs or spaces or tabs and spaces?&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Personally, I've been using both Ubuntu and WenQuanYi Zen Hei Mono with pleasure and find myself unable to prefer one to the other. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/LBhWI.png&quot; alt=&quot;Ubuntu&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://i.imgur.com/HRvx3.png&quot; alt=&quot;WenQuanYi Zen Hei Mono&quot; title=&quot;I know, fake bold here is wider than the non bold, so this is not truly a monospace example.&quot;&gt;&lt;br/&gt;&lt;em&gt;Ubuntu 10 and WenQuanYi Zen Hei Mono 9, compared. There's no clear winner here, if you ask me.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, fonts are like food. Some like them well rounded, some like them hot and spicy --  there's no one right font, or all of us would be using it right now. Yay for choice!&lt;/p&gt;&#xA;" OwnerUserId="236" LastActivityDate="2010-11-18T15:03:08.080" CommentCount="2" />
  <row Id="19829" PostTypeId="2" ParentId="19783" CreationDate="2010-11-18T15:04:42.557" Score="0" ViewCount="" Body="&lt;p&gt;I have no problem with the various UNIX editors available, but I only ever use them under protest. Not, as I say, because I have an issue with them but because if I'm having to use them it means that our deployment process is in some way lacking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This probably deserves a little more context: I work on large-scale e-commerce solutions, everything that governs the running of our systems is generated by a one-click build/deploy process. We have an array of test environments so at any given time I can make a change via Eclipse, check it into cvs and trigger a build/deploy to prove that my fix has worked. So- if I'm hacking around in 'vi' then it's because we can't wait for the 1-hour turnaround of a deployment or because the deployment doesn't cover the files I'm editing and needs to be extended to do so (otherwise I'll be hacking in vi the next time the file in question needs changing).&lt;/p&gt;&#xA;" OwnerUserId="7916" LastActivityDate="2010-11-18T15:04:42.557" />
  <row Id="19830" PostTypeId="1" CreationDate="2010-11-18T15:07:15.287" Score="2" ViewCount="59" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/19720/where-can-i-find-statistics-on-worldwide-developers-and-software-companies&quot;&gt;Where can I find statistics on worldwide developers and software companies?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Hallo I try to find an answer of a very difficult question :) the question is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;How many developers and how many software companies are there in the world?&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example if I check the &lt;a href=&quot;http://www.statistik.at/web_en/statistics/enterprises/structural_business_statistics/index.html&quot; rel=&quot;nofollow&quot;&gt;Statistic Austria&lt;/a&gt; page I can see that in Austria there are 8383 companies with 35522 employees defined as &quot;Computer programming, consultancy and related activities&quot; and another 4102 companies with 15171 employees defined as &quot;Information service activities&quot;. This statistic is good, but it is only for Austria. Is there a similar for Europe, USA, Worldwide?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks you.&lt;/p&gt;&#xA;" OwnerUserId="7876" LastActivityDate="2010-11-18T15:07:15.287" ClosedDate="2010-11-18T15:42:31.883" Title="Where can I find statistics on worldwide developers and software companies?" Tags="&lt;industry&gt;" CommentCount="3" FavoriteCount="1" />
  <row Id="19831" PostTypeId="2" ParentId="15897" CreationDate="2010-11-18T15:08:29.227" Score="0" ViewCount="" Body="&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can refer following article:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx&quot; rel=&quot;nofollow&quot;&gt;http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of my friend has used similar solution which is working great.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Gaurav Maniar MCP | MCSE | MCST | MCITP | ITILv3 Certified&lt;/p&gt;&#xA;" OwnerUserId="7910" LastActivityDate="2010-11-18T15:08:29.227" />
  <row Id="19832" PostTypeId="2" ParentId="19783" CreationDate="2010-11-18T15:10:24.053" Score="12" ViewCount="" Body="&lt;p&gt;Emacs and Vi still have a place. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;They are ubiquitously available in Unix and Unix-like environments, and can be installed on most other popular platforms.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They are popular and stable, so learning them once pays off over the long run.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They run over a text terminal, so you can use them in telnet and ssh sessions.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They provide editing modes and syntax highlighting for a wide variety of languages, including very new and very rare languages. (This is one of my favorite advantages.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The key to understanding these programs, though, is to know what problems they were originally meant to solve. For Vi this was editing text files over terminal connections as slow as 300 Baud. In that environment you don't want to display menus or radically change the screen contents if you can avoid it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Emacs was intended to be used in a faster environment. It's strength was that it could be loaded once and never exited. The user could accomplish any other task they needed from Emacs without leaving, and often in a more friendly way than if they had to do it from the command line. People didn't have a graphical desktop environment with an Emacs window open. Emacs let the user accomplish almost any normal task (and many strange ones) with just a few key strokes. Anything not built in could be scripted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously peoples' needs have changed a lot since these programs were introduced, but they still have some real strengths. I've learned the basics of both, and use them on a weekly basis. Still, I think their strengths are often overstated. They have achieved such legendary status that people don't admit to their weaknesses and instead tend to think they are doing something wrong if Emacs/Vi doesn't make them more productive than Eclipse  or Visual Studio.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now to the point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java is a popular language with excellent support in Eclipse, and odds are you are developing code on a modern operating system that lets you quickly accomplish common tasks and script others without doing it through your IDE. I don't think it would make sense for you to switch.&lt;/p&gt;&#xA;" OwnerUserId="7634" LastEditorUserId="7634" LastEditorDisplayName="" LastEditDate="2010-11-18T15:24:15.573" LastActivityDate="2010-11-18T15:24:15.573" CommentCount="1" />
  <row Id="19833" PostTypeId="2" ParentId="17700" CreationDate="2010-11-18T15:16:14.300" Score="1" ViewCount="" Body="&lt;p&gt;Cost factor definitely contributes to initial adoption of open source technologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But even when they grow really really big, they stick to open source stuff. If you have seen videos explaining scale at facebook or google, they invest lot of engineering effort in bettering the technologies they use (unladen swallow for python, hiphop for php). Also if they find there is a need for something completely new or a better implementation (thrift, protocol buffers, cassandra, big table), they not only create it, they open source it too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the reason is control and minimizing risk because you do not have to depend upon a vendor to provide a solution for you.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-11-18T15:16:14.300" />
  <row Id="19834" PostTypeId="2" ParentId="19826" CreationDate="2010-11-18T15:16:16.947" Score="2" ViewCount="" Body="&lt;p&gt;On twitter? No one. Seriously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's difficult to expand on a single thought about programming knowledge in a book. It's nearly impossible on somewhere like PSE or SO, and I'm going to step out on a limb and say it &lt;em&gt;is&lt;/em&gt; impossible to do so in 120 characters. The best you're going to get from a twitter feed is a witty quip or perhaps a piece of advice that you should almost never follow in every circumstance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To put it more succinctly: Raymond Chen once said that (Paraphrasing) &quot;Good advice comes with parameters, so that the person receiving the advice can tell when it's not good advice, anymore&quot;. You'll have trouble finding good advice in 120 characters, much less good parameters.&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-11-18T15:16:16.947" CommentCount="6" />
  <row Id="19835" PostTypeId="2" ParentId="19770" CreationDate="2010-11-18T15:21:52.747" Score="2" ViewCount="" Body="&lt;p&gt;This is an answer from a Java background, but I'm sure there are equivalent options elsewhere.&#xA;I'd get your guys into using JUnit or a similar automated-unit-test piece of kit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) I've found a number of 'procedural' people who struggle with the whole transition to OO simply for not understanding where the whole thing 'starts'. A unit test framework can give an easier learning curve rather than having to worry about how Application servers work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Writing good JUnits pushes you towards accidentally writing good OO code... and once you've got the bug you find yourself churning out useful bits of recyclable code left right and center... This sort of thing may well help with the motivation to shift from oldskool to newskool...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition, once you've got people into the groove a bit, you can get good automated 'checkstyle' plug-ins for your IDE that will highlight things like excessive file-length, method lengths, global variables etc. etc. so If JUnit or similar can get them over the chasm of wanting to develop in an OO manner, some automated tools can then highlight the areas that want re-working with their new understanding!&lt;/p&gt;&#xA;" OwnerUserId="7916" LastActivityDate="2010-11-18T15:21:52.747" />
  <row Id="19836" PostTypeId="2" ParentId="19825" CreationDate="2010-11-18T15:22:21.950" Score="2" ViewCount="" Body="&lt;p&gt;What you're looking for is a program called &quot;miniSAP&quot; which is able to be installed on a local system and works with your developed ABAP code. I wasn't able to find any free versions through a brief Google stint, but there are at least a couple ABAP textbooks which have it included. Hope that helps.&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-11-18T15:22:21.950" CommentCount="1" />
  <row Id="19837" PostTypeId="2" ParentId="19782" CreationDate="2010-11-18T15:28:31.430" Score="4" ViewCount="" Body="&lt;p&gt;Well I can't tell you what most people are like but for me: As a hiring manager I'm looking for people that can do the job but also people that I would like to work with. So a sense of humor would help, all things being equal. Sometimes I will even crack a joke myself but I often find they don't work that well because the applicant is not expecting it and is desperately trying to figure out what I'm talking about so they can give &quot;the right answer&quot;. See, the atmosphere is a little artificial on both sides; I'm just as aware of it and I'd be just as likely to miss a joke myself because its just not a context where I'd expect to hear one. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, if you can break the ice and establish some connection with the other person you have done yourself a great favor and you will have an easier time with the interview most likely.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-18T15:28:31.430" />
  <row Id="19838" PostTypeId="2" ParentId="19807" CreationDate="2010-11-18T15:31:30.680" Score="1" ViewCount="" Body="&lt;p&gt;There's no real reason for not using revision control as a form of backup, as long as you have a backup plan for your repository.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are willing to educate your developers and administer your revision control system of choice, you can use tags and/or branches to handle the broken code issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a matter of fact, I think that tagging (or branching) your release, beta and alpha code is the best way to go.  This way it requires an active decision to screw up your released product instead of an 'oh shit' moment by a developer.&lt;/p&gt;&#xA;" OwnerUserId="7557" LastActivityDate="2010-11-18T15:31:30.680" />
  <row Id="19839" PostTypeId="2" ParentId="19826" CreationDate="2010-11-18T15:33:38.647" Score="2" ViewCount="" Body="&lt;p&gt;I find Twitter a fantastic way to simplify keeping abreast on updates in development communities I'm interested in without having to check dozens of blogs for updates, etc.  First, identify the thought leaders/contributors in whatever area you're interested in, then follow them on twitter.  When I see tweets, typically on my cell phone, about interesting topics (which usually include links to blog posts), I email them to myself for later reading or review them on the spot.  Now, that being said, depending on the person you're following you do sometimes have to wade through non-tech related information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer your question though, who to follow depends on what you're interested in.  So for me right now my work-related following is anybody involved in the Microsoft stack - ASP.NET MVC, Azure, etc.  My favorites to follow along those lines have been scottgu, shanselman, haacked, smarx, davidebbo, robconery, gblock, WindowsAzure (usually more marketing, but sometimes technical links)&lt;/p&gt;&#xA;" OwnerUserId="6423" LastActivityDate="2010-11-18T15:33:38.647" />
  <row Id="19840" PostTypeId="2" ParentId="12556" CreationDate="2010-11-18T15:33:39.180" Score="0" ViewCount="" Body="&lt;p&gt;How about finding an open-source project (or more than one) that your group is interested in contributing to?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the biggest challenge you're likely to face is that while writing code is fun, it's all the surrounding admin etc. that can rapidly turn it into a painful experience. If you can find an existing open-source project you should at least have some of the support framework in place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Open source will get you into some good habits, and although you'll be a bit wet behind the ears compared to some of the contributors you will have one major advantage over other people- you'll all be in the same location and able to hold conversations with your team members which is normally one of the biggest pains with open source community work...&lt;/p&gt;&#xA;" OwnerUserId="7916" LastActivityDate="2010-11-18T15:33:39.180" />
  <row Id="19841" PostTypeId="2" ParentId="19783" CreationDate="2010-11-18T15:38:43.450" Score="0" ViewCount="" Body="&lt;p&gt;Both emacs and vim are very configurable and powerful editors, and both provide big productivity wins once the basic concepts are grasped.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Vi wins with what are essentially set-based operations. For example, changing all instances of &quot;foo&quot; to &quot;bar&quot; in a class definition is a one-liner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Emacs is equally powerful, but you have to learn Emacs Lisp to use it to its full potential. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In either case, it's only worth switching if you plan to use emacs or vi for &lt;em&gt;everything&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-18T15:38:43.450" />
  <row Id="19842" PostTypeId="1" AcceptedAnswerId="20956" CreationDate="2010-11-18T15:44:32.693" Score="7" ViewCount="598" Body="&lt;p&gt;As part of a continuing quest for knowledge, I'm spending some time this week learning the basics of F# as an introduction to functional programming. I think I am understanding the construction of software under this model and some of the proposed benefits, but am still a little fuzzy on the real-world use cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was hoping that a F# success stories, or at least a few applications that I'd be familiar with might make it a little clearer about when F# (or any functional programming language) would be appropriate for a project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So back to the question, what are some well known applications that use F# or a similar functional programming language? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW: I am also open to hearing about some lesser-known apps, but if you mention one, please give the basics of what the app is about and why the language used was the appropriate choice.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-23T19:52:56.330" Title="What are some well known applications written in F#?" Tags="&lt;programming-languages&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="2" />
  <row Id="19843" PostTypeId="1" AcceptedAnswerId="19849" CreationDate="2010-11-18T15:45:45.013" Score="24" ViewCount="986" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the best Interview question that you have ever been asked ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let it be anything C++/Java/OS/Algorithms/Data structures or even an HR Question, it should just be the best in your opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can post more than one questions also.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;thanks&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2011-04-15T08:31:32.737" Title="What is the best interview question you were asked ?" Tags="&lt;interview&gt;" AnswerCount="13" CommentCount="5" FavoriteCount="12" />
  <row Id="19844" PostTypeId="2" ParentId="19843" CreationDate="2010-11-18T15:50:49.853" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;How do you manage conflicts&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(within the team)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-18T15:50:49.853" CommentCount="7" />
  <row Id="19845" PostTypeId="1" AcceptedAnswerId="19846" CreationDate="2010-11-18T15:52:15.310" Score="2" ViewCount="164" Body="&lt;p&gt;Over the years I have developed several style based techniques which I use to keep my from make Error &lt;code&gt;if(const == lvalue)&lt;/code&gt; rather then &lt;code&gt;if(lvalue == const)&lt;/code&gt; since the first can't fall victim to the classic accidental assignment goof.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recently  worked on a project with very unusual style standards and I found that I had much greater difficulty reading code.  Has anyone seen any statistics on a particular coding style and its defect levels or have any experience with changing style alone to improve defect rates.&lt;/p&gt;&#xA;" OwnerUserId="4553" LastActivityDate="2010-11-18T15:58:59.937" Title="Coding Style And defects" Tags="&lt;coding-style&gt;" AnswerCount="2" CommentCount="4" FavoriteCount="1" />
  <row Id="19846" PostTypeId="2" ParentId="19845" CreationDate="2010-11-18T15:54:50.330" Score="5" ViewCount="" Body="&lt;p&gt;If you haven't read it yet, you should definitely take a look at Code Complete, 2nd Edition by Steve McConnell. Almost the entire book is devoted to this type of discussion along with actual studies to back up his ideas.&lt;/p&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2010-11-18T15:54:50.330" />
  <row Id="19847" PostTypeId="2" ParentId="5473" CreationDate="2010-11-18T15:56:36.647" Score="0" ViewCount="" Body="&lt;p&gt;Personally I don't care. As long as you keep my tabs aligned and the font legible, I couldn't care less whether I use monospace, proportional, or some other off-the-wall spacing. Just don't start substituting my tabs with spaces, and you'll have no quarrel with me.&lt;/p&gt;&#xA;" OwnerUserId="5169" LastActivityDate="2010-11-18T15:56:36.647" />
  <row Id="19848" PostTypeId="2" ParentId="19843" CreationDate="2010-11-18T15:56:47.620" Score="38" ViewCount="" Body="&lt;p&gt;Without being sarcastic or cynical the best question for me was: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;When can you start? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-11-18T15:56:47.620" CommentCount="8" />
  <row Id="19849" PostTypeId="2" ParentId="19843" CreationDate="2010-11-18T15:57:10.437" Score="17" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What do you do when you don't know the solution to a particular problem you're working on?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;They were trying to get a feel for what kind of research techniques I use and what resources I'm familiar with. My answer, which they were pleased with was: Google, blogs, msdn, co-workers, books - generally in that order (SO/decent Q&amp;amp;A sites weren't well known at the time).&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-18T15:57:10.437" CommentCount="6" />
  <row Id="19850" PostTypeId="2" ParentId="19770" CreationDate="2010-11-18T15:57:28.773" Score="3" ViewCount="" Body="&lt;p&gt;As you are well aware, this is far different than teaching college kids the basics of OO.  You're talking to people who have written working, deployed code just fine with these strategies for possibly quite some time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of focusing on the &lt;strong&gt;what&lt;/strong&gt;, I would focus on the &lt;strong&gt;why&lt;/strong&gt;.  I think the best way to demonstrate the why is to start with a piece of well-written OO code to which a feature needs to be added.  As you extend the functionality of the code, you can demonstrate where it is easy to add the necessary hooks for the new functionality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reading OO code is the best way to understand it, in my experience. &lt;/p&gt;&#xA;" OwnerUserId="7506" LastActivityDate="2010-11-18T15:57:28.773" />
  <row Id="19851" PostTypeId="1" AcceptedAnswerId="19882" CreationDate="2010-11-18T15:58:15.310" Score="19" ViewCount="675" Body="&lt;p&gt;This is happening in every team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For some reasons, a conflicts arise in the team and they affect the overall motivation and productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is your recommended approach to solve that common problem?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Examples&lt;/em&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;one part of the team wants to implement the dependency injection, the other part think it's a waste of time.&lt;/li&gt;&#xA;&lt;li&gt;some developers think the rest of the team is slowing down development (which explain they are late on the schedule)&lt;/li&gt;&#xA;&lt;li&gt;personnal incompatibilities between one or more developers&lt;/li&gt;&#xA;&lt;li&gt;one developer refuse to talk to another one (without apparant reason)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-18T16:20:54.237" LastActivityDate="2010-11-19T09:50:55.720" Title="How to handle conflicts between developers in your team?" Tags="&lt;team&gt;&lt;problem-solving&gt;" AnswerCount="10" CommentCount="12" FavoriteCount="7" />
  <row Id="19852" PostTypeId="2" ParentId="19225" CreationDate="2010-11-18T15:58:30.937" Score="1" ViewCount="" Body="&lt;p&gt;I love exceptions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am, however, constantly bemused by their miss-use.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't use them for flow-handling. You don't want code that tries to do something and uses an exception as a trigger to do something else instead because Exceptions are objects that need to be created and use memory etc. etc. just because you couldn't be bothered to write some kind of if() check before you made your call. That's just lazy and gives the glorious Exception a bad name.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't swallow them. Ever. Under any circumstances. As an absolute minimum you stick something in your log file to indicate that an Exception happened. Trying to track your way through code that swallows exceptions is a nightmare. Again, curse you exception-swallowers for bringing the mighty Exception into disrepute!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do treat Exceptions with your OO hat on. Create your own Exception objects with meaningful hierarchies. Layer your business logic and your exceptions hand in hand. I used to find that if I started on a new area of a system I'd find the need to sub-class Exception within half an hour of coding so these days I start by writing the Exception classes. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you're writing 'frameworky' bits of code, make sure all your initial interfaces are written to throw your own new Exceptions where appropriate... and make sure your coders have some sample code around the place of what to do when their code throws an IOException but the interface they're writing to wants to throw a 'ReportingApplicationException'.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Once you've groked how to make Exceptions work for you you'll never look back.&lt;/p&gt;&#xA;" OwnerUserId="7916" LastActivityDate="2010-11-18T15:58:30.937" CommentCount="1" />
  <row Id="19853" PostTypeId="2" ParentId="19845" CreationDate="2010-11-18T15:58:59.937" Score="2" ViewCount="" Body="&lt;p&gt;In general, the most significant characteristics of a coding style are that the company has one, and that it is followed consistently by everyone.  The actual details of that coding style are of secondary importance, provided the coding style is a reasonably good one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;code&gt;(const == lvalue)&lt;/code&gt; trick has been largely superseded by the fact that compilers and IDE's are now available that can generate a suitable warning.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-18T15:58:59.937" CommentCount="2" />
  <row Id="19854" PostTypeId="2" ParentId="18843" CreationDate="2010-11-18T15:59:38.023" Score="2" ViewCount="" Body="&lt;p&gt;I would say GWT is risky. Once you decided to use it you're stuck with it. Basically it means that you treat your markup, DOM and some aspects of CSS as an execution environment. It's getting really hard to mix manually written JavaScript with GWT as your client code becomes more and more sophisticated. GWT has native methods but those are quite limited in terms of possible applicability. That's a big trade off and it's a big bet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Google tries to sell GWT as a very fast X-platform execution environment with a decent server-side integration. But as others already pointed out it's no longer the case - JQuery and YUI are as fast if not faster. And it's much easier to profile and optimize your pages when they are assembled manually so you have a full control over CSS, markup and JavaScript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;GWT tries to hide the underlying platform from you which might actually be a wrong way to do things. A lot of so-called component web-frameworks did the same. You were supposed to write ambiguous XML-derived code with EL and custom tags thrown in. The output would be a mess of pour-formed HTML with small pieces of crappy JavaScript sprinkled all over the place. Pages were slow, buggy and totally unmaintainable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In our current project we use Stripes - a low-level action-based framework, - and JQuery on a client side. It's very easy to do Ajax once you clearly see all pieces of a puzzle: here's your Server-side code which operates on data. Here's your client-side code - for data retrieval and for making things happen on a pages. Here's your CSS, here's your markup, here's your templating - everything is clean and decoupled. Easily extensible, hackable, tunable and debuggable. I love it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love JQuery with it's attitude towards speed and simplicity. I love YUI3 for modularity and comprehensive widgets. I love YUI CSS for giving me consistency across browsers. I love JavaScript for Good Parts. I love Java for letting me Get Job Done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just KISS, and you'll be fine!&lt;/p&gt;&#xA;" OwnerUserId="3191" LastActivityDate="2010-11-18T15:59:38.023" CommentCount="2" />
  <row Id="19855" PostTypeId="2" ParentId="19851" CreationDate="2010-11-18T16:01:54.480" Score="5" ViewCount="" Body="&lt;p&gt;Have a third-party unbiased mediator sit down with both conflicted parties and have them talk it out. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It helps if the mediator is someone the problem-havers are comfortable talking around, but that they still respect and will not talk overtop of&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-11-18T16:01:54.480" />
  <row Id="19856" PostTypeId="1" CreationDate="2010-11-18T16:02:05.877" Score="4" ViewCount="407" Body="&lt;p&gt;The Joel Test includes the question:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Can you make a build in one step?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Which is important, but I'm wondering, how streamlined have some of the &lt;em&gt;deployment&lt;/em&gt; processes been?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All software from shrink-wrap to web applies: what's the best deployment environment you've worked with, and what steps were involved?&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-19T10:56:09.313" Title="Describe the best deployment environment you've worked with" Tags="&lt;project-management&gt;&lt;deployment&gt;&lt;software-development&gt;" AnswerCount="8" CommentCount="5" FavoriteCount="3" />
  <row Id="19857" PostTypeId="2" ParentId="19851" CreationDate="2010-11-18T16:03:17.817" Score="14" ViewCount="" Body="&lt;p&gt;&quot;Two men enter, one man leaves.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Jb5Iw.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-18T16:03:17.817" CommentCount="8" />
  <row Id="19858" PostTypeId="2" ParentId="19851" CreationDate="2010-11-18T16:05:27.923" Score="1" ViewCount="" Body="&lt;p&gt;You should have them battle it out in a &quot;tech off&quot; each side gets a box of parts--a disassembled computer, he who gets the machine built and booting first wins.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if that doesn't work for you, you should try a machete fight, or even a chainsaw fight.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-11-18T16:05:27.923" CommentCount="2" />
  <row Id="19859" PostTypeId="2" ParentId="19842" CreationDate="2010-11-18T16:06:25.483" Score="1" ViewCount="" Body="&lt;p&gt;I've wondered the same thing for awhile know. I really like F# but haven't seen anything in the realm of a commercial app. What I have heard (and quite frequently) is that F# has been used a lot in the financial realm. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/3049/what-decent-web-frameworks-exists-for-functional-programming&quot;&gt;What decent web-frameworks exists for functional programming?&lt;/a&gt; has some examples of web frameworks for functional programming languages and I know &lt;a href=&quot;http://cs.hubfs.net/blogs/tomasp/archive/2010/05/09/14050.aspx&quot; rel=&quot;nofollow&quot;&gt;http://cs.hubfs.net/blogs/tomasp/archive/2010/05/09/14050.aspx&lt;/a&gt; is an article how to write an ASP.Net MVC 2 Web app in F#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I have been searching articles on F# and a lot of examples and people's praise has come in the form of log parsers. But that is always followed up with a caveat of something along the lines of &quot;I'm not allowed to use the language at work&quot; (paraphrased of course). I'll try to find more examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been toying with the idea of creating a text-based MUD (Multi-User Dungeon) in F# but I never seem to have the time.&lt;/p&gt;&#xA;" OwnerUserId="7427" LastEditorUserId="7427" LastEditorDisplayName="" LastEditDate="2010-11-18T16:39:37.810" LastActivityDate="2010-11-18T16:39:37.810" CommentCount="3" />
  <row Id="19860" PostTypeId="1" CreationDate="2010-11-18T16:08:53.010" Score="5" ViewCount="189" Body="&lt;p&gt;What website templates (HTML, CSS &amp;amp; Graphics only) would you guys recommend for building a blog/profilo for a sole programmer like me?&lt;br&gt;&#xA;I don't do web design myself so I don't have anything to showcase in terms of pictures but I want a place where I can present my projects, my knowledge and skills and have a personal page of my own.&#xA;The trouble is that what I found so far fits more to website designers or generic comapnies.&lt;/p&gt;&#xA;" OwnerUserId="1271" LastActivityDate="2010-11-18T16:57:21.693" Title="Website templates for programmers" Tags="&lt;blog&gt;" AnswerCount="6" FavoriteCount="0" />
  <row Id="19861" PostTypeId="2" ParentId="19843" CreationDate="2010-11-18T16:10:19.047" Score="19" ViewCount="" Body="&lt;p&gt;For a network heavy development position, &quot;describe everything that happens, in as much detail as possible, when you open up a web browser on your desktop and go to www.foo.com&quot;.&lt;/p&gt;&#xA;" OwnerUserId="7042" LastActivityDate="2010-11-18T16:10:19.047" CommentCount="8" />
  <row Id="19862" PostTypeId="2" ParentId="19843" CreationDate="2010-11-18T16:15:29.533" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&quot;So, how do you ensure the quality of your code?&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, the answer involved TDD, version control, peer review practices and everything else pretty much under the sun. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Got the gig as well - well pleased.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-18T16:15:29.533" />
  <row Id="19863" PostTypeId="2" ParentId="19860" CreationDate="2010-11-18T16:17:27.453" Score="1" ViewCount="" Body="&lt;p&gt;Your best bet, if you don't want to invest the time that it would take to learn HTML and CSS, is to pay someone a small fee to create a site. For a plain site with only HTML, CSS, and graphics, you should be able to come out around $100, or even less; for freelance web designer or developer, this is small potatoes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alternately, you could set up a Wordpress site on a LAMP-stack server and look through the many themes available for it (or another blog/CMS platform, if you don't like WordPress).&lt;/p&gt;&#xA;" OwnerUserId="7921" LastActivityDate="2010-11-18T16:17:27.453" CommentCount="5" />
  <row Id="19864" PostTypeId="2" ParentId="19860" CreationDate="2010-11-18T16:17:47.220" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://wordpress.com/&quot; rel=&quot;nofollow&quot;&gt;http://wordpress.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure a lot of people will disagree with me, but WP provides free hosting, a really easy to use content management system, page statistics, etc. It is definitely designed in a blog-style presentation system, but with a bit of adaptation you can easily turn it into what you'd like it to be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you don't do web design yourself, I'd honestly avoid trying to go down the roll your own path. A decent CMS is going to save you &lt;em&gt;hours&lt;/em&gt; of headaches and issues and help you more effectively display your talents without having to learn a new paradigm.&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-11-18T16:17:47.220" CommentCount="4" />
  <row Id="19865" PostTypeId="2" ParentId="19860" CreationDate="2010-11-18T16:18:34.987" Score="1" ViewCount="" Body="&lt;p&gt;I would say that you are most likely not going to find what you are looking for. The sad reality is that the majority of html/css template sites out there are for webdesigners. Furthermore, most templates you find will have been created with Adobe Dreamweaver and you will end up discovering that there is a LOT of extra markup placed in the templates that you do not need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, your best bet as a &lt;em&gt;programmer&lt;/em&gt; would be to download one of those messy templates, dissect it and understand what you can. Then, teach yourself the rest of the CSS you are still having trouble with and write the markup yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that this is most likely more time consuming than what you desire but it really is what will lead to the result that you are looking for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My last suggestion would be go to a blog site you want to emulate and look at that site's markup with a tool like firebug. It will clarify further the way certain sites employ css.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-11-18T16:18:34.987" />
  <row Id="19866" PostTypeId="2" ParentId="19851" CreationDate="2010-11-18T16:23:56.917" Score="7" ViewCount="" Body="&lt;p&gt;It depends on the conflict obviously; they come in multiple flavors.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The religious argument (&quot;Why do you keep using tabs instead of spaces?!?&quot;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The point to make clear in this case is that, in principle, it doesn't matter which one is right, it's actually far more important that the entire team is using the same approach. Explain that to the minority opinion holder (and make sure to highlight that it's not necessarily the right decision, but also not important enough to draw blood over). The degenerate case of this is, for example, a developer refusing to use source control or submit to code-review. That's a management issue, and I honestly wouldn't know how to resolve it without letting the rogue developer go. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The personal argument (&quot;I just don't like you&quot;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There really isn't a way to mitigate this. Make it clear to both of them that bickering isn't acceptable, and that their personal grudges need to be checked at the door if they're going to be productive members of the same team (this works whether you're the manager or not; peers can be surprisingly influential if they're sure enough of themselves). If that doesn't work, either try to split them up on the org chart to reduce their professional/physical proximity, or get youself a desk well away from them.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The technical argument&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The key difference between this and the other conflict types is that there is likely a correct answer. Typically it's to do with the code one or the other developer owns and how it should work (occasionally, it's a larger architectural argument). The key thing to grasp here is that even though there's a correct answer, &lt;strong&gt;you probably don't know it&lt;/strong&gt;. The best thing you can do is mediate to make sure it's a clean argument, and hope that either side can be convinced. Again, you can do this whether they report to you or not, but if you're a peer, they might go to a manager to re-run the play even if you manage to bring them to a conclusion.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-18T16:23:56.917" />
  <row Id="19867" PostTypeId="2" ParentId="19856" CreationDate="2010-11-18T16:28:53.593" Score="1" ViewCount="" Body="&lt;p&gt;At one of my clients, we work in Rails and have everything set up so that the deploy pulls from git. We don't &quot;build,&quot; though, since it's Rails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the deploy process is something like&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;git checkout review&#xA;git merge whatever-that-was&#xA;git push&#xA;cap review deploy:migrations&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The mix between Capistrano and GIT works out pretty well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, further scripting would be in order to skip some of these steps.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-11-18T16:28:53.593" />
  <row Id="19868" PostTypeId="2" ParentId="19752" CreationDate="2010-11-18T16:30:34.090" Score="5" ViewCount="" Body="&lt;p&gt;I did this for about 2.5 years... It is never fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Long term, be looking for a different job OR looking for a permanent way to correct the situation in the current job if you REALLY trust that they won't do it again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the near term some things that help:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;sleep when you can&lt;/li&gt;&#xA;&lt;li&gt;have someone who is getting some sleep keep notes of what is going on&lt;/li&gt;&#xA;&lt;li&gt;make them bring you as much food/coffee/soda/whatever to keep you not hungry/awake&lt;/li&gt;&#xA;&lt;li&gt;dont eat too much or you will fall asleep when you dont want to&lt;/li&gt;&#xA;&lt;li&gt;work mobile part of the time so you at least put in some appearance in the rest of your life&lt;/li&gt;&#xA;&lt;li&gt;avoid driving in complicated areas or for more than 30 min at a time&lt;/li&gt;&#xA;&lt;li&gt;drive right after waking up if possible&lt;/li&gt;&#xA;&lt;li&gt;make management get everyone else out of your way&lt;/li&gt;&#xA;&lt;li&gt;make management get everyone else to do whatever you need ASAP when asked&lt;/li&gt;&#xA;&lt;li&gt;personal hygiene - US military has studies that show it improves your perception of the situation&lt;/li&gt;&#xA;&lt;li&gt;reconsider anything you discarded as inelegant, you might find a solution&lt;/li&gt;&#xA;&lt;li&gt;make certain management is aware they are robbing Peter to pay Paul&lt;/li&gt;&#xA;&lt;li&gt;make certain there are arrangements in place to cover your daily tasks and the new products support when everyone crashes for a week or two at the end of the death march&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Having said all that, good luck, and hopefully you are learning some good stuff that can help you in the future.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-18T16:30:34.090" CommentCount="2" />
  <row Id="19869" PostTypeId="1" CreationDate="2010-11-18T16:37:59.677" Score="1" ViewCount="180" Body="&lt;p&gt;My latest spec is to enable the creation of job adverts; so I want &lt;strong&gt;basic rich text editing functionality in an html textarea&lt;/strong&gt;. As far as I can see there doesn't seem to be a clear winner ? So far I have found:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://tinymce.moxiecode.com/index.php&quot; rel=&quot;nofollow&quot;&gt;TinyMCE&lt;/a&gt; seems overkill &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://wmd-editor.com/&quot; rel=&quot;nofollow&quot;&gt;WMD&lt;/a&gt; as used by stack itself (but an emphasis on code so not good for me)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://markitup.jaysalvat.com/home/&quot; rel=&quot;nofollow&quot;&gt;markitup&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://htmlbox.remiya.com/cms/demo/&quot; rel=&quot;nofollow&quot;&gt;htmlBox&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Which gets the vote, or am I missing the &lt;strong&gt;winner&lt;/strong&gt;. I am surprised there is not one jQuery plug in that does the trick, or is there ?&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="5148" LastEditorDisplayName="" LastEditDate="2011-05-17T15:07:43.013" LastActivityDate="2011-05-17T15:07:43.013" ClosedDate="2010-11-18T23:05:28.633" Title="Whats the best javascript library for creating a rich text editor ?" Tags="&lt;javascript&gt;&lt;jquery&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="19870" PostTypeId="2" ParentId="19860" CreationDate="2010-11-18T16:38:12.803" Score="1" ViewCount="" Body="&lt;p&gt;For actual templates you can't beat &lt;a href=&quot;http://www.oswd.org&quot; rel=&quot;nofollow&quot;&gt;http://www.oswd.org&lt;/a&gt;. They have free templates but also premium templates you can pay for.&lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-11-18T16:38:12.803" />
  <row Id="19871" PostTypeId="2" ParentId="19843" CreationDate="2010-11-18T16:41:50.930" Score="8" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is it better to deliver a project on time with 80% of the features complete, or late with 100% of the features complete?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The answer of course, is that it depends on which features those 80% are. If you're focusing on the most important features first, then the 80% of complete features should be the most important 80%, which means that shipping should come first. If your design process is haphazard then the 80% of features complete might not be the ones you need the most, and you'll need to delay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key, I pointed out, was that it was a fine line between &quot;Delay for two weeks&quot; and &quot;Duke Nukem Forever&quot;. You always have to be careful when walking that line.&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-11-18T16:41:50.930" CommentCount="5" />
  <row Id="19872" PostTypeId="2" ParentId="19860" CreationDate="2010-11-18T16:42:57.933" Score="0" ViewCount="" Body="&lt;p&gt;I would strongly encourage you to try &lt;a href=&quot;http://www.joomla.it/&quot; rel=&quot;nofollow&quot; title=&quot;Joomla&quot;&gt;Joomla&lt;/a&gt;.  You really can do many things with it without even touching the code.  Though I should warn you that despite the fact that you don't have to touch code, it's still not a two-click wizard which will design your site for you.  Having much flexibility and adaptivity also means it's complex.  Joomla has a very active community and so getting help is not too difficult.  Most people who use Joomla are people like you, who want to control a sophisticated site without having to write a line of html.  &lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-18T16:42:57.933" CommentCount="2" />
  <row Id="19873" PostTypeId="2" ParentId="19851" CreationDate="2010-11-18T16:43:06.127" Score="2" ViewCount="" Body="&lt;p&gt;if they can't act maturely sack them both and get a professional, maybe a contractor/someone freelance ? &lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-11-18T16:53:19.297" LastActivityDate="2010-11-18T16:53:19.297" />
  <row Id="19874" PostTypeId="2" ParentId="19851" CreationDate="2010-11-18T16:46:08.480" Score="1" ViewCount="" Body="&lt;p&gt;I don't think I'd be able to stand the babysitting aspect of management.  I'd tell them to settle it with a duel to the death.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-11-18T17:10:06.910" LastActivityDate="2010-11-18T17:10:06.910" CommentCount="3" />
  <row Id="19875" PostTypeId="2" ParentId="19826" CreationDate="2010-11-18T16:50:25.757" Score="1" ViewCount="" Body="&lt;p&gt;Keeping in mind that I do mostly ASP.Net development, these are on Twitter that I do follow a little:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://twitter.com/shanselman/&quot; rel=&quot;nofollow&quot;&gt;@shanselman&lt;/a&gt; - Scott Hanselmann&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://twitter.com/scottgu&quot; rel=&quot;nofollow&quot;&gt;@ScottGu&lt;/a&gt; - Scott Guthrie&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://twitter.com/kentbeck&quot; rel=&quot;nofollow&quot;&gt;@KentBeck&lt;/a&gt; - Kent Beck&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://twitter.com/martinfowler&quot; rel=&quot;nofollow&quot;&gt;@MartingFowler&lt;/a&gt; - Martin Fowler&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-18T16:50:25.757" />
  <row Id="19876" PostTypeId="2" ParentId="19869" CreationDate="2010-11-18T16:56:00.230" Score="1" ViewCount="" Body="&lt;p&gt;You'll likely get some very good recommendations and discussion over at StackOverflow, but...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's actually not very difficult to write one from scratch. The only thing I missed was having a way to abstract range objects. So I'd say &lt;strong&gt;any&lt;/strong&gt; library, including jQuery, will work fine so long as it has support for &lt;strong&gt;selections and ranges.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-11-18T16:56:00.230" />
  <row Id="19877" PostTypeId="2" ParentId="19860" CreationDate="2010-11-18T16:57:21.693" Score="0" ViewCount="" Body="&lt;p&gt;I use blogger.com for my blog. You can choose a template that is closest to what you want and then edit the HTML and CSS directly to make it more personal. I didn't know much about CSS before I started, but after a few hours just messing around with what they give you, I feel much more familiar with it. Wordpress seems more fully featured, but charges you an arm and a leg to do the same thing.&lt;/p&gt;&#xA;" OwnerUserId="7810" LastActivityDate="2010-11-18T16:57:21.693" />
  <row Id="19878" PostTypeId="2" ParentId="19851" CreationDate="2010-11-18T17:01:02.753" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.kilmann.com/conflict.html&quot; rel=&quot;nofollow&quot;&gt;TKI&lt;/a&gt; identifies a handful of different techniques for resolving conflicts that may be an idea for how to resolve some issues.  There are some legitimate issues such as using a framework or not, though this may be handled either by a team voting on something as one way to resolve it or by going to higher power like a manager of some kind.  Some times there can be disputes in interpreting requirements which are best handled by going to a project manager or business analyst to get a specific ruling,e.g. does a blank search return nothing as nothing was entered or does it return everything as the wild card matching used says everything has nothing in it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it is more personality conflicts then the question becomes how well does each know of the issue and what will be done if this persists.  This isn't so much an idle threat as much as a, &quot;If you guys can't work this out, I'll work it out by removing at least one of you,&quot; mentality.  Course this does carry the potential for passive-aggressive behavior and other childish crap but this is what happens when bright resourceful people enter a way that doesn't use traditional weapons to resolve hostility.  &lt;a href=&quot;http://www.imdb.com/title/tt0377092/&quot; rel=&quot;nofollow&quot;&gt;&quot;Mean Girls&quot;&lt;/a&gt; has several examples of this kind of behavior, just to give a reference of sorts.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-18T17:01:02.753" />
  <row Id="19879" PostTypeId="2" ParentId="1018" CreationDate="2010-11-18T17:02:56.433" Score="0" ViewCount="" Body="&lt;p&gt;I would pull an Aphex Twin and build synthesizers to make beautiful, clicky, twitchy music. That is if I had the skill.&lt;/p&gt;&#xA;" OwnerUserId="7810" LastActivityDate="2010-11-18T17:02:56.433" />
  <row Id="19880" PostTypeId="2" ParentId="1018" CreationDate="2010-11-18T17:12:02.197" Score="0" ViewCount="" Body="&lt;p&gt;Academia,e.g. researcher, professor or lecturer, would likely be alternative location as I would likely have done another degree and then tried to be a researcher in some branch of Mathematics like Asymptotic Enumeration.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-18T17:12:02.197" />
  <row Id="19881" PostTypeId="2" ParentId="19856" CreationDate="2010-11-18T17:16:47.070" Score="1" ViewCount="" Body="&lt;p&gt;My current workflow is like this.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Develop on local VM&lt;/li&gt;&#xA;&lt;li&gt;Test, Commit changes, push to github&lt;/li&gt;&#xA;&lt;li&gt;ssh into EC2 and pull changes&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;This can all be scripted into one step.&lt;/p&gt;&#xA;" OwnerUserId="3884" LastActivityDate="2010-11-18T17:16:47.070" CommentCount="3" />
  <row Id="19882" PostTypeId="2" ParentId="19851" CreationDate="2010-11-18T17:22:33.550" Score="17" ViewCount="" Body="&lt;p&gt;I have had a team of 10 people for two years without a conflict(touch wood) I could be lucky or may be doing something right. The best way to handle conflict is never to let one exist for a longer time. There are several core values that you can preach. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Team Spirit&lt;/li&gt;&#xA;&lt;li&gt;Fairness in everything (compensation/rewards)&lt;/li&gt;&#xA;&lt;li&gt;Being appreciative&lt;/li&gt;&#xA;&lt;li&gt;Give recognition, responsibility&lt;/li&gt;&#xA;&lt;li&gt;Give freedom&lt;/li&gt;&#xA;&lt;li&gt;Let people know they are not greater than the team&lt;/li&gt;&#xA;&lt;li&gt;Personal success means nothing if the team fails&lt;/li&gt;&#xA;&lt;li&gt;attach personally to people &lt;/li&gt;&#xA;&lt;li&gt;never show a carrot you dont intend to give &lt;/li&gt;&#xA;&lt;li&gt;never hire(no matter how good) who could ruin the team&lt;/li&gt;&#xA;&lt;li&gt;communicate more often etc etc. &lt;/li&gt;&#xA;&lt;li&gt;Appreciate whenever someone goes beyond the job&lt;/li&gt;&#xA;&lt;li&gt;Give regular feedback on performance and set expectations preferrably monthly.&lt;/li&gt;&#xA;&lt;li&gt;Let people know when they behave like children.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;All these take guarded effort from some one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software is pretty much a team game individual brilliance is generally short lived. If I go by your examples :&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;We have decided decided to go with dependency injection. Period. We will see if it is the best way or not. If it is not, you get a chocolate :-) till than cooperate and let's make this thing happen&lt;/li&gt;&#xA;&lt;li&gt;If the rest of the team is slowing you down you help them to make it faster they are your teammates you are the elder guy, help them. I know you are good.&lt;/li&gt;&#xA;&lt;li&gt;Talk to both of them tell them they are spoiling the environment. If nothing works get rid of one of them or both of them.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;One thing I find very effective is to repeat &quot;we are a good team&quot; and repeat &quot;we are a team to the lonely one's&quot;.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-18T17:22:33.550" CommentCount="3" />
  <row Id="19883" PostTypeId="2" ParentId="18704" CreationDate="2010-11-18T17:23:49.543" Score="1" ViewCount="" Body="&lt;p&gt;In High School, I took an introductory programming class, and we used &lt;a href=&quot;http://www.cafepress.com/kareljrobot&quot; rel=&quot;nofollow&quot;&gt;Karel J. Robot&lt;/a&gt;. It provides a gui for viewing your robot, and has a very basic set of sensors and movement methods which you have to extend in order to make it do interesting stuff. I think its good because robots are easy to understand for people who haven't yet developed a grasp of the difference between software is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is also &lt;a href=&quot;http://processing.org/&quot; rel=&quot;nofollow&quot;&gt;Processing&lt;/a&gt;, which I just discovered, which was originally designed to teach programming, and its also in java.&lt;/p&gt;&#xA;" OwnerUserId="7810" LastActivityDate="2010-11-18T17:23:49.543" />
  <row Id="19884" PostTypeId="2" ParentId="19856" CreationDate="2010-11-18T17:25:45.837" Score="1" ViewCount="" Body="&lt;p&gt;We have a Java Web Start application - we are about to rebuild the deployment procedure to be as a WAR file with the JNLP file being adapted to the URL requested when requsted by the users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I expect that to go extremely smooth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lately we have used git a lot.  The idea of registering deployments in git repositories so you can simply ask git to checkout the version you want to run.  Background updates, very short checkout time to update actual files, very short checkout time to roll back to a previous version in case of problems.  I think it could work very well for us.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-18T17:25:45.837" />
  <row Id="19885" PostTypeId="2" ParentId="1018" CreationDate="2010-11-18T17:26:25.923" Score="0" ViewCount="" Body="&lt;p&gt;I sometimes joke I was born thirty years too late; I should've been hitting my twenties in the 1970s, when there were more opportunities to do the stuff I &lt;em&gt;really&lt;/em&gt; enjoy doing. If computers didn't exist, I'd probably be a writer I missed the boat on the whole print journalism thing. I think it'd still be a lot of fun to write for a magazine or a newspaper. Maybe some will actually stick around. Plus, I'd be able to use my typewriter more regularly. Ah, the good old days... I might also be a typesetter -- I've long been interested in (one might even say obsessed with) typography and typesetting, and doing that for a living would give me great satisfaction.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-11-18T17:26:25.923" />
  <row Id="19886" PostTypeId="2" ParentId="1018" CreationDate="2010-11-18T17:29:36.410" Score="0" ViewCount="" Body="&lt;p&gt;I would probably be homeless.&lt;/p&gt;&#xA;" OwnerUserId="2300" LastActivityDate="2010-11-18T17:29:36.410" />
  <row Id="19887" PostTypeId="2" ParentId="1018" CreationDate="2010-11-18T17:30:47.433" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Construction Worker&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;This isn't so bad, huh? Makin' bucks,&#xA;  gettin' exercise, workin' outside.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/vyQST.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-18T17:30:47.433" CommentCount="2" />
  <row Id="19888" PostTypeId="1" AcceptedAnswerId="19891" CreationDate="2010-11-18T17:33:16.813" Score="30" ViewCount="639" Body="&lt;p&gt;This started as a &quot;Note to Self,&quot; so please excuse me if the frustration is all too evident and the writing is less than stellar...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Three major subjects I've had at the forefront of my mind lately:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Motivation&lt;/li&gt;&#xA;&lt;li&gt;Learning (Curiosity)&lt;/li&gt;&#xA;&lt;li&gt;Doing (Making)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I've been studying motivation and incentives for months now. It seems there are an infinite number of different motivations that people might have for doing things (I realize that sounds trite but bear with me). I've been really drawn to it because I'm desperate to find out &lt;strong&gt;why I do the things I do and why I don't do the things that I want to do but don't do&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm in the midst of reading Paul Graham's excellent Hackers and Painters book. In it, he makes the case that hackers and painters are very similar because they are both &quot;makers.&quot; Painters &lt;em&gt;make&lt;/em&gt; paintings. Hackers &lt;em&gt;make&lt;/em&gt; software. Painters don't necessarily need to understand the chemical composition of paint to make beautiful paintings. And hackers don't necessarily need to know 1's and 0's to make beautiful software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Graham then draws the distinction between disparate computer science fields:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;some people seem to be studying mathematics&lt;/li&gt;&#xA;&lt;li&gt;some people seem to be studying the computers themselves&lt;/li&gt;&#xA;&lt;li&gt;the hackers are &lt;em&gt;making&lt;/em&gt; software.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The difference is incredibly important. It seems the motivation for some is to &lt;em&gt;make&lt;/em&gt; beautiful things. And the motivation for the others is to learn out of curiosity. Certain motivations seem obvious to me, but curiosity seems a bit less obvious. I would certainly consider myself as a curious person with a seemingly unquenchable thirst to learn just about everything I can. But this is exactly where the problem comes up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing that scares me so much is that I desperately want to &lt;em&gt;make&lt;/em&gt; things. I desperately want to &lt;em&gt;do&lt;/em&gt; things. I want to write a book. I want to paint a painting. I want to compose a song. I want to &lt;em&gt;do&lt;/em&gt; things like travel. But the strangeness is that I also want to &lt;em&gt;learn&lt;/em&gt; things. I want to learn to play guitar. I want to &lt;em&gt;learn&lt;/em&gt; about art history. I want to &lt;em&gt;learn&lt;/em&gt; more about philosophy and literature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key seems to be the balance between learning and doing... between studying and making.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I'm not sure how much one should learn about a given thing before doing it, I know for certain that I find myself constantly on one side rather than the other. As it stands now (and as far as I can tell I've always been this way), I am a learner and not a doer. I've read great books. I've practiced guitar for years. I've spent countless hours studying programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I've written 0 books. I've composed 0 songs. I've coded 0 beautiful programs. I've painted 0 beautiful paintings. I've started 0 viable businesses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The scary part of all this is that there are probably countless unfinished works of art in the world. Is this my misanthropic revenge against society and culture to never &lt;em&gt;produce&lt;/em&gt; or &lt;em&gt;finish&lt;/em&gt; any of the works of art that I start? Perhaps the worst part (aside from this being my natural inclination), is the fact that I f***ing know better. I just finished books like &quot;Getting Things Done&quot; and &quot;Making Ideas Happen.&quot; I've aggregated and synthesized countless words of wisdom on how to &lt;em&gt;do&lt;/em&gt; things and how to &lt;em&gt;make&lt;/em&gt; things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imagine the horror of going through life without being able to do the things you want to do. If this is something you've struggled with (and hopefully overcome), please share. If not... perhaps some delicious pity would make me feel better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[UPDATE: Just wanted to send a quick thanks to everyone that shared their thoughts. I deliberately left the question somewhat open-ended in hopes of encouraging discussion and having others refashion the central problem around their similar experience, and I think it worked out great... there's a lot of amazing insight here to work with and it was really helpful. Thanks again.]&lt;/p&gt;&#xA;" OwnerUserId="7927" LastEditorUserId="7927" LastEditorDisplayName="" LastEditDate="2010-11-18T23:29:08.943" LastActivityDate="2010-11-18T23:29:08.943" ClosedDate="2010-11-18T22:13:23.100" Title="Ship Early, Ship Never" Tags="&lt;productivity&gt;&lt;self-improvement&gt;&lt;philosophy&gt;" AnswerCount="10" CommentCount="10" FavoriteCount="17" />
  <row Id="19889" PostTypeId="2" ParentId="9466" CreationDate="2010-11-18T17:34:25.313" Score="1" ViewCount="" Body="&lt;p&gt;It depends what kind of instance you are using. I can only answer on linux.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;VMWare or something that lets you use Virtual Machines (or an extra ec2 instance)&lt;/li&gt;&#xA;&lt;li&gt;Source control (I use git)&lt;/li&gt;&#xA;&lt;li&gt;SSH (checkout how to tunnel ports through ssh if you don't want to expose them on the public machine)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Start with a clean linux image and create an exact copy as a local VM.  Make sure any changes to the production environment are also changed in the VM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I test on the local VM and then push my changes to github.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The final step is pull latest version from github. &lt;/p&gt;&#xA;" OwnerUserId="3884" LastActivityDate="2010-11-18T17:34:25.313" CommentCount="1" />
  <row Id="19890" PostTypeId="2" ParentId="19782" CreationDate="2010-11-18T17:39:20.397" Score="3" ViewCount="" Body="&lt;p&gt;Using humor in an interview falls into the category of high risk/high reward. If your humor hits home you will leave a memorable impression and humanize yourself for the interviewer. If you screw up, you may really offend the interviewer which is rarely a good idea if you want the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to assess yourself honestly and figure out if you can really trust your judgement on what people will find funny. If you sometimes have to explain your jokes or if your jokes have ever made somebody feel uncomfortable, then stay far, far, away from humor in the interview. It doesn't matter if the person was being a total prig, the point is that you mis-read the situation and their likely reaction.&lt;/p&gt;&#xA;" OwnerUserId="4828" LastEditorUserId="4828" LastEditorDisplayName="" LastEditDate="2010-11-18T17:51:41.523" LastActivityDate="2010-11-18T17:51:41.523" CommentCount="1" />
  <row Id="19891" PostTypeId="2" ParentId="19888" CreationDate="2010-11-18T17:46:55.397" Score="19" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Probably the best question on P.SE I've read so far.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I highly suggest you to have a look at current &lt;strong&gt;&lt;a href=&quot;http://sethgodin.typepad.com/&quot; rel=&quot;nofollow&quot;&gt;Seth Godin&lt;/a&gt;&lt;/strong&gt;'s work on the subject. He calls it the &lt;strong&gt;Resistance&lt;/strong&gt; produced by the &lt;strong&gt;Lizard Brain&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;What is the Lizard Brain? My explanation...&lt;/strong&gt; The lizard brain is the primitive, limbic system that overrides everything else in our brain: it is fear, sex, hunger, etc. Especially fear. And for many of us, myself included, it's what prevents us from blogging more, writing a new preface, updating a book, crafting a new presentation, etc.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Source: &lt;a href=&quot;http://www.debbieweil.com/blog/shut-up-lizard-brain-i-am-not-procrastinating-today/&quot; rel=&quot;nofollow&quot;&gt;Shut Up Lizard Brain: I Am Not Procrastinating Today&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read the chapter about it in the book &lt;strong&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1591843162&quot; rel=&quot;nofollow&quot;&gt;Linchpin&lt;/a&gt;&lt;/strong&gt;. You may be interested in &lt;strong&gt;&lt;a href=&quot;http://sethgodin.typepad.com/the_dip/&quot; rel=&quot;nofollow&quot;&gt;The Dip&lt;/a&gt;&lt;/strong&gt; too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please document yourself on &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Procrastination&quot; rel=&quot;nofollow&quot;&gt;Procrastination&lt;/a&gt;&lt;/strong&gt; too. &lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-18T17:46:55.397" CommentCount="9" />
  <row Id="19892" PostTypeId="2" ParentId="19888" CreationDate="2010-11-18T17:47:29.937" Score="2" ViewCount="" Body="&lt;p&gt;Interesting question for sure. Like a lot of things in life, I believe balance is very important - you seem to think your &quot;doing&quot; is out of balance with your &quot;learning&quot; so do more ! Correct the balance. Remember, you are the only person that can make you happy.&lt;/p&gt;&#xA;" OwnerUserId="4759" LastActivityDate="2010-11-18T17:47:29.937" />
  <row Id="19893" PostTypeId="1" AcceptedAnswerId="19907" CreationDate="2010-11-18T17:47:33.880" Score="23" ViewCount="829" Body="&lt;p&gt;Our team is divided on this and I wanted to get some third-party opinions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are building an application and cannot decide if we want to use .Net WPF Desktop Application with a WCF server, or ASP.Net web app using jQuery. I thought I'd ask the question here, with some specs, and see what the pros/cons of using either side would be. I have my own favorite and feel I am biased.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally we want to build the initial release of the software as fast as we can, then slow down and take time to build in the additional features/components we want later on. Above all we want the software to be fast. Users go through records all day long and delays in loading records or refreshing screens kills their productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Application Details:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I'm estimating around 100 different screens for initial version, with plans for a lot of additional screens being added on later after the initial release.&lt;/li&gt;&#xA;&lt;li&gt;We are looking to use two-way communication for reminder and event systems&lt;/li&gt;&#xA;&lt;li&gt;Currently has to support around 100 users, although we've been told to allow for growth up to 500 users&lt;/li&gt;&#xA;&lt;li&gt;We have multiple locations&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Items to consider (maybe not initially in some cases but in future releases):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Room for additional components to be added after initial release (there are a lot of of these... perhaps work here than the initial application)&lt;/li&gt;&#xA;&lt;li&gt;Keyboard navigation&lt;/li&gt;&#xA;&lt;li&gt;Performance is a must&lt;/li&gt;&#xA;&lt;li&gt;Production Speed to initial version&lt;/li&gt;&#xA;&lt;li&gt;Low maintenance overhead&lt;/li&gt;&#xA;&lt;li&gt;Future support&lt;/li&gt;&#xA;&lt;li&gt;Softphone/Scanner integration&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Our Developers:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;We have 1 programmer who has been learning WPF the past few months and was the one who suggested we use WPF for this.&lt;/li&gt;&#xA;&lt;li&gt;We have a 2nd programmer who is familiar with ASP.Net and who may help with the project in the future, although he will not be working on it much up until the initial release since his time is spent maintaining our current software.&lt;/li&gt;&#xA;&lt;li&gt;There is me, who has worked with both and am comfortable in either&lt;/li&gt;&#xA;&lt;li&gt;We have an outside company doing the project management, and they are an ASP.Net company.&lt;/li&gt;&#xA;&lt;li&gt;We plan on hiring 1-2 others, however we need to know what direction we are going in first&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Environment:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;General users are on Windows 2003 server with Terminal Services. They connect using WYSE thin-clients over an RDP connection. Admin staff has their own PCs with XP or higher. Users are allowed to specify their own resolution although they are limited to using IE as the web browser.&lt;/li&gt;&#xA;&lt;li&gt;Other locations connects to our network over a MPLS connection&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Based on that, what would you choose and why? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am asking here instead of SO because I am looking for opinions and not answers&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2011-03-02T21:54:59.223" Title="ASP.Net or WPF(C#)?" Tags="&lt;asp.net&gt;&lt;wpf&gt;&lt;development&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="8" />
  <row Id="19894" PostTypeId="2" ParentId="19888" CreationDate="2010-11-18T17:48:47.793" Score="3" ViewCount="" Body="&lt;p&gt;I also have the drive to make things as well as learn. I found that in order to become better at making something is to make things. For instance, I would like to compose music as well, but have never created a piece that I thought was good. However, they've gotten better as I've studied and practiced my instrument. On the other hand, I have programmed for nearly 10 years now, and I've created some pretty neat stuff. I also have learned a ton about how computers work and don't plan on stopping anytime soon. So, don't give up! If you want to create, start creating! The first tries won't be good, so what? They'll get better. If in yuor life you only are able to create one thing that you feel is really good, than that's still better than being frustrated over not doing anything. Keep on truckin'.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-18T17:48:47.793" />
  <row Id="19895" PostTypeId="2" ParentId="19888" CreationDate="2010-11-18T17:52:44.370" Score="2" ViewCount="" Body="&lt;p&gt;I agree with what @bigtang was saying. But more specifically, put some time aside to think instead of learn. Try to produce an idea that excites you. A program or a lyric or a topic. Once you have an idea and are excited, you'll want to start making. You won't be able to resist making. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, then you will run problems while making and learn from them. And hopefully that will be more fun than just reading.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;p.s.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;be careful with @Pierre 303's suggestion. don't run out and spend hours reading those books. a chapter, sure, but you need to focus on making, and try to not put it off by learning about how to not put it off.&lt;/p&gt;&#xA;" OwnerUserId="3244" LastEditorUserId="3244" LastEditorDisplayName="" LastEditDate="2010-11-18T21:34:40.980" LastActivityDate="2010-11-18T21:34:40.980" />
  <row Id="19896" PostTypeId="1" AcceptedAnswerId="19903" CreationDate="2010-11-18T17:54:51.560" Score="12" ViewCount="622" Body="&lt;p&gt;For the last couple of years, all of the serious projects I have worked on have been either web based, or had a non graphical user interface (services, command line scripts etc...).  I can throw together a WinForms app or do some simple WPF when needed, but I've never really delved into some of the lower level API's like MFC or QT.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I understand that this depends on the situation but in general is it still worth taking the time to learn desktop development well or are applications moving to the web and mobile devices at a pace which makes this knowledge less relevant?  Also, do you expect developers you work with to have desktop gui expertise?&lt;/p&gt;&#xA;" OwnerUserId="5323" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-18T18:24:40.037" LastActivityDate="2010-11-20T14:47:10.403" Title="Is it still worth learning desktop gui development?" Tags="&lt;learning&gt;&lt;education&gt;&lt;gui&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="3" />
  <row Id="19897" PostTypeId="2" ParentId="17700" CreationDate="2010-11-18T17:59:25.120" Score="0" ViewCount="" Body="&lt;p&gt;I'll throw in a vote for &quot;tradition&quot;.  During the whole dot-com run-up, &quot;everybody knew&quot; you had to have a big Sun or HP server running Apache, so that's what people bought.  And when start-ups tried to emulate the successful companies, they used the same stuff.  And since IIS didn't really offer any compelling features (unless you consider Front Page extensions...) there really wasn't any reason for anyone to consider a MS stack.  Especially when you could run Apache and/or Perl CGI scripts on a 4-CPU Sun box, while dual-core Pentium II Windows boxes were fairly exotic.  Now that the hardware is no longer a barrier, we're seeing more large sites on the MS stack, but I think that for most there's still no compelling reason to switch to (or start with) it.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-18T17:59:25.120" />
  <row Id="19898" PostTypeId="2" ParentId="19782" CreationDate="2010-11-18T18:05:13.327" Score="2" ViewCount="" Body="&lt;p&gt;I played with a yoyo as part of an interview. I got hired.&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-11-18T18:05:13.327" CommentCount="6" />
  <row Id="19899" PostTypeId="2" ParentId="19893" CreationDate="2010-11-18T18:06:36.633" Score="8" ViewCount="" Body="&lt;p&gt;If you only have one programmer who has been learning WPF and you are considering having your team take the jump to WPF then why not use Silverlight instead? You get many of the advantages of WPF but still maintain the ability to leave your project as a web app. Since you are looking at having a large modularized project it would make sense to use &lt;a href=&quot;http://compositewpf.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;PRISM&lt;/a&gt; with WPF or Silverlight to make MVVM simpler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My team recently made the choice to use Silverlight over asp.net. It has been a fantastic choice for us. We initially had only a single developer who knew any silverlight. Then we all took a week training class that was mostly useless, but at least got our feet wet. In the end we had to hire two contractors to help us with the creation of the bulk of our UI framework. The majority of our team still is not confident in their silverlight skills. Myself, the initial team member with knowledge of silverlight, and the two contractors are the ones doing the bulk of the SL development. After that we have two dedicated back-end members. I would say it took us about 2 months after making the decision to move to Silverlight that we really had anything concrete put together. However, now we have a wonderful product that feels very much like a client side application that is running inside of a web browser and does not be installed on any machine locally. Development has been under a year in total and we're near ready to release or first release candidate. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some things to consider:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;WPF or silverlight, whichever you choose there will be a fair amount that your developers will need to learn.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Silverlight can run out of browser if need be. If you do this it is pretty easy to set it up so that if you ever roll out a new version then the installed out of browser SL program will automatically update itself.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Silverlight does not include all the controls that WPF has.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;My final note is that if you want to churn out code as fast as possible then its pretty obvious you should go with ASP.NET. My major qualms with ASP is that unless you discipline your team it is easy for an ASP.NET project to become cluttered and messy. If you think you will be able to deal with the initial overhead of getting up to speed with the technologies then Silverlight or WPF will allow you a lot of wonderful possibilities.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-11-18T18:06:36.633" CommentCount="6" />
  <row Id="19900" PostTypeId="2" ParentId="19888" CreationDate="2010-11-18T18:10:07.513" Score="6" ViewCount="" Body="&lt;p&gt;This is the same as my answer on &lt;a href=&quot;http://stackoverflow.com/questions/4217218/ship-early-ship-never/4217703#4217703&quot;&gt;stackoverflow&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;&lt;a href=&quot;http://www.ted.com/talks/dan_pink_on_motivation.html&quot; rel=&quot;nofollow&quot;&gt;Dan Pink on the surprising science of motivation&lt;/a&gt;&quot; is a TED talk that discusses why we do some of the things we do.  You seem to be overly focused on the mastery part of things where you learn how to do something really well and enjoy honing that skill.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.drphil.com/articles/article/44&quot; rel=&quot;nofollow&quot;&gt;Dr. Phil's Life Law&lt;/a&gt; captures some of this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Life Law #3: People do what works.&#xA;  Strategy: Identify the payoffs that&#xA;  drive your behavior and that of&#xA;  others.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Even the most destructive behaviors&#xA;  have a payoff. If you did not perceive&#xA;  the behavior in question to generate&#xA;  some value to you, you would not do&#xA;  it. If you want to stop behaving in a&#xA;  certain way, you've got to stop&#xA;  &quot;paying yourself off&quot; for doing it.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Find and control the payoffs, because&#xA;  you can't stop a behavior until you&#xA;  recognize what you are gaining from&#xA;  it. Payoffs can be as simple as money&#xA;  gained by going to work to&#xA;  psychological payoffs of acceptance,&#xA;  approval, praise, love or&#xA;  companionship. It is possible that you&#xA;  are feeding off unhealthy, addictive&#xA;  and imprisoning payoffs, such as&#xA;  self-punishment or distorted&#xA;  self-importance.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Be alert to the possibility that your&#xA;  behavior is controlled by fear of&#xA;  rejection. It's easier not to change.&#xA;  Try something new or put yourself on&#xA;  the line. Also consider if your need&#xA;  for immediate gratification creates an&#xA;  appetite for a small payoff now rather&#xA;  than a large payoff later.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;While overcoming perfectionistic tendencies is part of the solution, another part is understanding the payoff for inaction.  Do you fear the new challenges you'd have in writing a book or composing a song?  Is there the question of how useful would such a book or song be?  At the same time, I'd likely argue you are doing what you like in &lt;em&gt;learning&lt;/em&gt; about all this material.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.nilanealy.com/2008/10/learner-strengthsfinder-20.html&quot; rel=&quot;nofollow&quot;&gt;A Strengths Finder blog notes&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;My Strengthsfinder 2.0 report said, &quot;People who are especially talented in the Learner theme have a great desire to learn and want to continuously improve. In particular, the process of learning, rather than the outcome, excites them.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;People who know me well will confirm this one for you, particularly the part about process versus learning. That's not to say I'm someone who relishes processes themselves, but that I love being in the throes of learning itself.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;This learner theme is one of my trifecta of themes that seem to be all parts of one - Input, Intellection and Learner. The seem to all be about information - gathering it, thinking about it, learning more.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is just to give more perspective here as I have been here many times before and likely will again.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-18T18:10:07.513" CommentCount="3" />
  <row Id="19901" PostTypeId="2" ParentId="19856" CreationDate="2010-11-18T18:11:54.737" Score="4" ViewCount="" Body="&lt;p&gt;It's the environment I have set up in my company, and am working with right now.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Description of the environment&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;We are a team of &lt;strong&gt;4 developpers&lt;/strong&gt;, working on a &lt;strong&gt;Java desktop project&lt;/strong&gt;. The source code is under &lt;strong&gt;Mercurial&lt;/strong&gt;, with the main repo hosted on our development server. We mostly use &lt;strong&gt;TortoiseHg&lt;/strong&gt; to work with Mercurial. The projects that we open sourced are on &lt;strong&gt;BitBucket&lt;/strong&gt;. The project is built with &lt;strong&gt;Maven&lt;/strong&gt;. The IDE we use is &lt;strong&gt;Netbeans&lt;/strong&gt;, which works impressively well with Maven (it works ok with Mercurial, too).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our dev server runs &lt;strong&gt;Archiva&lt;/strong&gt;, which is a proxy Maven repository. We use maven to build the project, but we use it also to execute it (mvn exec), to deploy the generated artifacts to Archiva (mvn release), and to generate an assembly from the artifacts hosted by Archiva (mvn assembly).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have a &lt;strong&gt;Redmine&lt;/strong&gt; bugtracker too, and it is aware of the Mercurial repos. We use a &lt;strong&gt;RSS client&lt;/strong&gt; to be informed of the project activity (from Redmine and Mercurial). We also have a &lt;strong&gt;Jabber&lt;/strong&gt; server to send messages and files to each other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We set up an &lt;strong&gt;Hudson&lt;/strong&gt; server (continuous integration) and a &lt;strong&gt;Sonar&lt;/strong&gt; server (code metrics). But in practice we don't really use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have the choice of using &lt;strong&gt;Windows or Linux&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Steps to make a release&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Example to release a version 1.1.3&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;# tags the VCS, updates all the version numbers in the maven config file&#xA;mvn --batch-mode release:prepare -DreleaseVersion=1.1.3 -DdevelopmentVersion=1.1.4-SNAPSHOT&#xA;# performs a clean build, runs all tests, deploys to the server&#xA;mvn release:perform&#xA;# creates a unique jar (the final product) from the previously deployed artifacts (no recomilation involved)&#xA;&amp;lt;update the version number in a config file to 1.1.3&amp;gt;&#xA;mvn assembly:assembly&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3527" LastEditorUserId="3527" LastEditorDisplayName="" LastEditDate="2010-11-19T10:56:09.313" LastActivityDate="2010-11-19T10:56:09.313" CommentCount="3" />
  <row Id="19902" PostTypeId="2" ParentId="19896" CreationDate="2010-11-18T18:13:05.377" Score="4" ViewCount="" Body="&lt;p&gt;Hmm, besides GMail, Stack-Exchange and my bank's home banking, I use all the day non-web software. Now with the advent of smartphones and tablets, web application are even less attractive to me (I use my smartphone Facebook client). That's user-side.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developer-side: in my last 10 years, I worked almost only on non-web software (and my career spanned many very different domains as I worked as a software consultant) and I don't see any future web trend in my job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So yes, it is still &lt;strong&gt;a must&lt;/strong&gt; learning desktop GUI environments.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-11-18T18:13:05.377" CommentCount="2" />
  <row Id="19903" PostTypeId="2" ParentId="19896" CreationDate="2010-11-18T18:14:13.137" Score="28" ViewCount="" Body="&lt;p&gt;I'd say yes, it is.  There's sort of a pendulum effect in program development.  First everything ran directly on the computer.  Then when the computer became powerful enough to run multiple programs, they got mainframes with dumb terminals.  But dumb terminals really suck in terms of usability, so as soon as computers got powerful enough to put reasonable amounts of hardware inside a terminal-sized system, we got personal computers, and everything ran directly on the computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then they invented the World Wide Web, and we're back to a mainframe (server) and a dumb terminal (browser.)  But dumb terminals &lt;em&gt;still&lt;/em&gt; really suck in terms of usability, and people are starting to relearn the lessons of 30 years ago, and we're trending away from that again.  A lot of the really hot development these days is for desktop (or mobile) apps that run locally, but are able to connect to the Internet for specific purposes to enhance their functionality.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-11-18T18:14:13.137" CommentCount="7" />
  <row Id="19904" PostTypeId="2" ParentId="19842" CreationDate="2010-11-18T18:16:15.420" Score="0" ViewCount="" Body="&lt;p&gt;I looked at F# briefly when I wanted to write a SQL parser, which I ended up implementing in Haskell. That said, you could use F# anywhere you would use C#, but would it be worth it? If you'll be doing a lot of functional programming, using F# will be worthwhile, as the syntax for functional constructs is friendlier. If you're doing mostly OO, it's probably better to stick with C#.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastEditorUserId="5621" LastEditorDisplayName="" LastEditDate="2010-11-18T19:13:19.530" LastActivityDate="2010-11-18T19:13:19.530" CommentCount="7" />
  <row Id="19905" PostTypeId="2" ParentId="19896" CreationDate="2010-11-18T18:16:53.263" Score="5" ViewCount="" Body="&lt;p&gt;It's really going to depend on your situation.  I recently worked for a Fortune 500 company who had several projects to convert web applications back into desktop applications (SmartClient/Click-Once).  In their particular circumstances it made a lot of sense and eliminated several usability issues their existing apps suffered from.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're a full-time employee and your company doesn't generally design desktop apps then it probably doesn't make any sense to be fully up to speed on Winforms or WPF.  If, however, you're a consultant and you'd like to be able to offer another service to your clients, then it can't possiblly hurt. &lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-20T14:47:10.403" LastActivityDate="2010-11-20T14:47:10.403" />
  <row Id="19906" PostTypeId="2" ParentId="19782" CreationDate="2010-11-18T18:25:37.687" Score="4" ViewCount="" Body="&lt;p&gt;A little humor goes a long way - a lot of humor or inappropriate humor will kill your chances many places.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance the &quot;nobody likes crystal reports&quot; comment that @Matt wrote about is the perfect amount. It relates to the topic of the intereview, it isn't offensive (unless you got a person who actually liked Crystal Reports and even then most would think it funny) and it doesn't take a lot of time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But when a manager is interviewing you, don't makes jokes about Dilbert's pointy-haired boss. And no sexual or bathroom humor, no long drawn out joke stories, no joke every other statement no matter who is interviewing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the time when humor is appropriate in a n interview it will arise naturally from the conversation. A planned humorous story is more likely to fall flat.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-18T18:25:37.687" />
  <row Id="19907" PostTypeId="2" ParentId="19893" CreationDate="2010-11-18T18:26:04.830" Score="13" ViewCount="" Body="&lt;p&gt;It certainly sounds to me like a WPF app, with lot's of user interaction and potentially interacting with hardware.  You can deliver the app via Click-Once so deployment is mostly a non-issue.  Your WPF app can access a WCF service and deliver the data as binary so the performace will be excellent.  I would start reading up on WPF and getting familiar with it as soon as possible.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-11-18T18:26:04.830" CommentCount="2" />
  <row Id="19908" PostTypeId="2" ParentId="19783" CreationDate="2010-11-18T18:26:50.240" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Why should I switch to vim or emacs?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Most likely, &lt;strong&gt;you shouldn't switch&lt;/strong&gt;. Vim is an excellent, powerful text-editor, but it &lt;em&gt;isn't&lt;/em&gt; a substitute for an IDE, and &lt;em&gt;shouldn't be!&lt;/em&gt;  Eclipse is very good at its subset of IDE-specific things, and vim is very good at its subset of text-editing-specific things. Each has its own, different, focus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know there are plugins that extends vim's functionality so that it can do many of the same IDE-specific things an IDE can. But it still isn't vim's main strength, and an IDE will almost always be able to do it better. Because that is what they are focused on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I do in my daily work is &lt;strong&gt;use both&lt;/strong&gt; Visual Studio and vim for editing C#. It works very well for me, and I would never cut out one of them to rely exclusively on the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as emacs goes, I am no expert, but I don't think it can compete with Eclipse's IDE features when it comes to Java (please correct me if I'm wrong). If you're developing in lisp, then it &lt;em&gt;certainly&lt;/em&gt; can be considered an excellent IDE, but I don't think it has the same support for Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you want a more powerful text editor to use alongside Eclipse, then I would definitely recommend you learn either vim or emacs. But &lt;strong&gt;as a supplement, not as a replacement&lt;/strong&gt;. It can really pay off in the long run, even though neither of them have a particularly easy learning curve : ) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a &lt;a href=&quot;http://www.viemu.com/a-why-vi-vim.html&quot; rel=&quot;nofollow&quot;&gt;nice longish read&lt;/a&gt; about the strengths of vim. And here's &lt;a href=&quot;http://stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim&quot;&gt;a list&lt;/a&gt; of some nice tricks you can do.&lt;/p&gt;&#xA;" OwnerUserId="7814" LastEditorUserId="7814" LastEditorDisplayName="" LastEditDate="2010-11-18T18:42:57.773" LastActivityDate="2010-11-18T18:42:57.773" />
  <row Id="19909" PostTypeId="2" ParentId="19896" CreationDate="2010-11-18T18:32:30.960" Score="2" ViewCount="" Body="&lt;p&gt;Of course &quot;it depends&quot; -- but I think your experience is typical.  I have rarely had to create a thick client for any of the applications I have written.  Unless there is a specific reason that the client needs to be running on the desktop (connectivity issues or 3D game, etc) -- I believe that it's easier for the developer and admins to maintain one &quot;instance&quot; of the application.  If they have the skill set to design a web application they should be OK moving into the desktop app realm generally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually I think it's more important that a thick client developer learn web application programming -- the inherit statelessness of HTTP makes it a more difficult application development paradigm to wrap your head around (or at least you have to do a little more thinking than just slapping controls on a panel).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't forget -- you have technologies like Silverlight and Adobe Flex/AIR which can straddle the line between desktop/web application.&lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-11-18T18:32:30.960" CommentCount="2" />
  <row Id="19910" PostTypeId="2" ParentId="19888" CreationDate="2010-11-18T18:40:47.410" Score="2" ViewCount="" Body="&lt;p&gt;I can't say why &lt;em&gt;you&lt;/em&gt; do that. But I can tell you how I deal with that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think of it like training a dog. Dogs do things that they have been rewarded to do, and avoid things they associate with discomfort. &lt;strong&gt;To teach a dog something complex, you have to break it down into little steps and reward each step until it's a habit.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am inspired by big projects. But because they are big, they scare me. So I break down the big thing into a lot of little things, pick the very first little thing, ignore all the rest, and do it. That success pleases me, so I pick the next little thing and do it. I set aside my fears and my false pride and just do one little thing at a time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I intentionally do not compare my little thing with the grand vision. E.g., when I, a lazy blob, took up running, it was with the goal of doing a &lt;a href=&quot;http://en.wikipedia.org/wiki/Bay_to_Breakers&quot; rel=&quot;nofollow&quot;&gt;local 12k race&lt;/a&gt;. But the first day, I did not try to run 12k. I did something pretty small: 15 30-second bursts of jogging mixed in a 30-minute walk. (That's from Hal Higdon's &lt;a href=&quot;http://www.coolrunning.com/engine/2/2_3/181.shtml&quot; rel=&quot;nofollow&quot;&gt;30/30 plan&lt;/a&gt;.) That was plenty of challenge for me the first day, because the hard part was actually getting out there and doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the spring I'll run that 12k race for the fifth time. I now feel that going out and running a few miles in the morning is fun and rewarding, something unthinkable when I started. &lt;strong&gt;I got there through a thousand tiny increments, each one of which was rewarding enough to make up for the discomfort of the work and the pain of the occasional failure.&lt;/strong&gt; You can do this too; you just have to do it relentlessly, with patience and humility.&lt;/p&gt;&#xA;" OwnerUserId="1843" LastActivityDate="2010-11-18T18:40:47.410" />
  <row Id="19911" PostTypeId="1" AcceptedAnswerId="19915" CreationDate="2010-11-18T18:50:52.197" Score="5" ViewCount="132" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How companies working on large projects evaluate an impact of a single modification on an existing code?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Since my question is probably not very clear, here's an example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's take a sample business application which deals with tasks. In the database, each task has a state, 0 being &quot;Pending&quot;, ... 5 - &quot;Finished&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A new requirement adds a new state, between 2nd and 3rd one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It means that:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A constraint on the values 1 - 5 in the database must be changed,&lt;/li&gt;&#xA;&lt;li&gt;Business layer and code contracts must be changed to add a new state,&lt;/li&gt;&#xA;&lt;li&gt;Data access layer must be changed to take in account that, for example the state &lt;code&gt;StateReady&lt;/code&gt; is now 6 instead of 5, etc.&lt;/li&gt;&#xA;&lt;li&gt;The application must implement a new state visually, add new controls for it, new localized strings for tool-tips, etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;When an application is written recently by one developer, it's more or less easy to predict every change to do. On the other hand, when an application was written for years by many people, no single person can anticipate every change immediately, without any investigation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So since this situation (such changes in requirements) is very frequent, I imagine there are already some clever techniques and ways to predict the impact. Is there any? Do you know any books which deal about this subject?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Note: my question is not related to &lt;a href=&quot;http://programmers.stackexchange.com/questions/874/how-do-you-deal-with-changing-requirements&quot;&gt;How do you deal with changing requirements?&lt;/a&gt; question. In fact, I'm not interested in evaluating the cost of a change, but rather the way to predict the parts of an application which will be concerned by the change. &lt;em&gt;What&lt;/em&gt; will be those changes and &lt;em&gt;how difficult&lt;/em&gt; they are really doesn't matter in my question.&lt;/p&gt;&#xA;" OwnerUserId="6605" LastActivityDate="2011-01-04T23:25:16.720" Title="How is determined an impact of a requirement change on the existing code?" Tags="&lt;project-management&gt;&lt;requirements&gt;&lt;changes&gt;" AnswerCount="3" />
  <row Id="19912" PostTypeId="1" AcceptedAnswerId="19913" CreationDate="2010-11-18T18:57:03.410" Score="9" ViewCount="289" Body="&lt;p&gt;Where I can find overview of computer science, programming etc.?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I graduated in physics and want to begin programming or similar and I'm not even sure of what's out there or where to begin. What I'm looking for is some broad overview of existing technologies - just like you have a book &quot;Physics of elementary particles&quot; that explains general view of that area, but for computers/programming of course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have some book to recommend? &lt;/p&gt;&#xA;" OwnerUserId="7932" LastActivityDate="2010-11-19T16:41:01.427" Title="Overview of computer science, programming..." Tags="&lt;books&gt;&lt;programming&gt;&lt;computer-science&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="1" />
  <row Id="19913" PostTypeId="2" ParentId="19912" CreationDate="2010-11-18T19:01:02.490" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Concrete_Mathematics&quot; rel=&quot;nofollow&quot;&gt;Concrete Mathematics: A Foundation for Computer Science&lt;/a&gt; by Ronald Graham, Donald Knuth, and Oren Patashnik would be my suggestion for a generic book covering some basics though it is a bit Math-heavy.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-18T19:01:02.490" CommentCount="1" />
  <row Id="19915" PostTypeId="2" ParentId="19911" CreationDate="2010-11-18T19:05:45.123" Score="3" ViewCount="" Body="&lt;p&gt;I don't think you can ever tell just how much a change will affect code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said though, if one know the framework of the application well, he can generally predict about how long it will take and what needs to be done. It comes from experience, not metrics. I'm sure you've thought of cases that a user thought a change would be simple ('He's just adding one menu option! how hard can that be?!) but in reality was quite complex.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have two possible solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first I think is critical: &lt;strong&gt;Documentation.&lt;/strong&gt; Being able to read about the general layout of an application will help someone greatly in determining where changes will need to be made. Lower level docs about specific areas will help in actually making the changes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second would be to have a senior developer look at each request as he probably can tell quickly what it will entail. He then can give an estimate of how long it will take and what needs to happen before it is assigned to a person or team for development. This may not always be practical, so documentation is still extremely critical.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-18T19:05:45.123" CommentCount="2" />
  <row Id="19916" PostTypeId="2" ParentId="19912" CreationDate="2010-11-18T19:07:22.000" Score="4" ViewCount="" Body="&lt;p&gt;I'll answer your question with another question: what problem would you like to solve? Programming isn't about &lt;em&gt;doing&lt;/em&gt; anything, it's about &lt;em&gt;solving&lt;/em&gt; problems. Programming languages themselves are like tools; some are hammers, some are screwdrivers, some are table saws. Each of those tools is more suited to solving a particular problem, so it's a good idea to know what problem you want to solve before you try figuring out what tool you should solve it with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you know what kind of problem you're looking to solve, we can give you significantly better suggestions on where you should start.&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-11-18T19:07:22.000" />
  <row Id="19917" PostTypeId="2" ParentId="19888" CreationDate="2010-11-18T19:12:33.870" Score="21" ViewCount="" Body="&lt;p&gt;Here's a motto for you:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Anything worth doing is worth doing badly.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You speak of painting beautiful paintings and coding beautiful programs.  I suspect you also want to write good novels and compose good songs.  You don't get to do those things, by and large, without working for a long time first and making bad things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, go out there and do cruddy work.  Write ugly programs, and try to see why they're ugly and what you could do better.  Find other people to tell you what you did wrong.  Try to learn about what you're doing, and remember that lots of learning materials make more sense with a little more experience under your belt  Do that with everything you want to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to be a maker, make something.  Then make another thing.  Don't sweat the quality.  Then do it again.  Be reasonably proud of having made things, good or bad.  Most people don't even write bad programs or books, or paint something badly.  &lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-18T19:12:33.870" CommentCount="9" />
  <row Id="19918" PostTypeId="2" ParentId="19912" CreationDate="2010-11-18T19:24:46.523" Score="1" ViewCount="" Body="&lt;p&gt;Reading things is fine, but you need to tackle a project, something that's interesting to you. Do it in a nice middle-of-the-road language like C++ or Java. Beware of pitfalls such as a) too much &quot;religion&quot; coming from the computer science side, or b) too much sloppiness coming from the do-it-in-Fortran folks outside of CS.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-11-18T19:24:46.523" />
  <row Id="19919" PostTypeId="2" ParentId="19896" CreationDate="2010-11-18T19:33:30.150" Score="9" ViewCount="" Body="&lt;p&gt;Even if you never intend to do desktop dev, I would suggest you get enough experience that you would have an informed opinion on when it is better to use a desktop solution over a web client.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-18T19:33:30.150" CommentCount="1" />
  <row Id="19920" PostTypeId="2" ParentId="19783" CreationDate="2010-11-18T19:47:23.120" Score="1" ViewCount="" Body="&lt;p&gt;The best tool (in the short term) is one you're highly proficient with. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;People use 30+ year old technology because they're highly proficient with it. They built their workflow and habits around these tools. If you're more familiar with a modern IDE like Eclipse, there isn't much reason to switch. Learning how to use Eclipse more efficiently is a better investment of your time (e.g. use &lt;a href=&quot;http://www.eclipse.org/mylyn/&quot; rel=&quot;nofollow&quot;&gt;Mylyn&lt;/a&gt;).&lt;/p&gt;&#xA;" OwnerUserId="2193" LastActivityDate="2010-11-18T19:47:23.120" />
  <row Id="19921" PostTypeId="2" ParentId="19896" CreationDate="2010-11-18T19:54:14.243" Score="5" ViewCount="" Body="&lt;p&gt;Yes, but not in the way you are thinking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;GUI Programming is not any more difficult nor does it require specialized skills apart from familiarity with the gui programming interface. Hooking up buttons and windows and controls isn't terribly difficult and is pretty easy with modern programming environments compared to the early days with stuff like MFC. GUI programming is stuff that's fairly easy to learn when its demanded.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, while hooking up buttons and text boxes is fairly easy, knowing when and where to place buttons, and &lt;strong&gt;designing&lt;/strong&gt; a gui to be used by human beings is very difficult. That is a very valuable and important skill to have. However, the design principles that apply to native interfaces vs the web are very similar. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So learn how to design good user interfaces that are effective and don't confuse users, and you'll get familiarity with the programming for them for free.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-11-18T19:54:14.243" CommentCount="1" />
  <row Id="19922" PostTypeId="2" ParentId="19911" CreationDate="2010-11-18T19:57:28.373" Score="1" ViewCount="" Body="&lt;p&gt;How much of an impact it will have is not a problem that can be solved mechanically. You'll have to evaluate how your current system behaves, what kind of work is required to implement it, and what risks go along with it, and it will require human judgement.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-11-18T19:57:28.373" />
  <row Id="19923" PostTypeId="2" ParentId="19782" CreationDate="2010-11-18T19:58:48.833" Score="1" ViewCount="" Body="&lt;p&gt;If the humor is appropriate and in line with the conversation I think it is fine.  Don't try to tell jokes unless you are interviewing to be comedian.&lt;/p&gt;&#xA;" OwnerUserId="7936" LastActivityDate="2010-11-18T19:58:48.833" />
  <row Id="19926" PostTypeId="2" ParentId="19896" CreationDate="2010-11-18T20:19:44.003" Score="0" ViewCount="" Body="&lt;p&gt;According to the IE9 team:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://twitter.com/IE/statuses/5333696374640640&quot; rel=&quot;nofollow&quot;&gt;There shouldn’t be a gap between native and web apps. HW acceleration, fast JS and site pinning starts it off&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's a safe bet that these technologies will grow closer together. If you're a java developer, there's very little difference between developing desktop apps and web apps (using GWT). It's not unreasonable to expect more and more &quot;desktop&quot; development platforms to be able to target the browser engine. It's also not unreasonable to expect more and more desktop apps to have a web-like distribution model (auto-updating in the background, sandboxed execution, like chrome).&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-11-18T20:19:44.003" CommentCount="5" />
  <row Id="19927" PostTypeId="2" ParentId="1018" CreationDate="2010-11-18T20:26:56.930" Score="1" ViewCount="" Body="&lt;p&gt;I'd go into medicine. Almost went into it anyway, but didn't want to do 7 years of study to do it so went into Computer Science instead. Poor choice? I'll tell you in 40 years :)&lt;/p&gt;&#xA;" OwnerUserId="154" LastActivityDate="2010-11-18T20:26:56.930" CommentCount="1" />
  <row Id="19928" PostTypeId="2" ParentId="19888" CreationDate="2010-11-18T20:32:05.080" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;why I do the things I do and why I don't do the things that I want to do but don't do.&lt;/em&gt;&lt;br&gt;&#xA;That is the definition of &quot;you&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;the brain&lt;/strong&gt;&lt;br&gt;&#xA;For an oversimplified view&lt;sup&gt;1&lt;/sup&gt;, imagine: a lizard core, crying for food, reproduction and torpidity. Around: a shell of mammal brain - barely aware of itself, able to manipulate its environment to get high on the lizard's kicks. Riding on to of it, a giant programmable gate array, finally finding purpose in itself, for which the rest of the body is just a vessel. That's what we call &quot;human&quot; - but it's the youngest and weakest part; when it lets slip control, the mammal, the lizard take over. Control works like a muscle: it can be tired, and it can be trained. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;You&quot; is the fight between the three (or - if you prefer a more poetic wording - their dance.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A reason for the dissonance&lt;/strong&gt;&lt;br&gt;&#xA;The rider yearns for the late gratification of having written a novel, the mammal for the kick it gets out of another round of Starcraft. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;On Trying, and Doing&lt;/strong&gt;&lt;br&gt;&#xA;Ray Bradbury&lt;sup&gt;2&lt;/sup&gt; once said: when he was twenty, he decided to write the amount of a short story every week. He forced himseld to sit down, and do that - no matter what comes out. Because when he does that much,  at least some of it must be great.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hearing that shook me, because I highly adore a lot of his works, and - probably like you - whatever I do I want to do it &lt;em&gt;right&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in my opinion, he succeeded.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Do Do Do Do Do&lt;/strong&gt;&lt;br&gt;&#xA;Jonah Lehrer (unfortunately, can't find the post nor any link anymore) cited a comparative study that showed that world-class excellence in music doesn't correlate with social or political background or education, but with one thing: the endurance to practice 5 or more hours nearly every day for years. Now you might claim that they were just lucky: their brain was wired to get addicted to practice. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But hey, monkey brain can be trained. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt; with apologies to William Gibson and &lt;a href=&quot;http://scienceblogs.com/cortex/&quot; rel=&quot;nofollow&quot;&gt;Jonah Lehrer&lt;/a&gt;&lt;br&gt;&#xA;&lt;sup&gt;2&lt;/sup&gt; &lt;a href=&quot;http://www.google.de/search?q=me+ray+bradbury&amp;amp;tbs=vid:1&quot; rel=&quot;nofollow&quot;&gt;Yes, that one&lt;/a&gt; (NRSFW)&lt;/p&gt;&#xA;" OwnerUserId="7313" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-18T20:36:29.053" LastActivityDate="2010-11-18T20:36:29.053" />
  <row Id="19929" PostTypeId="2" ParentId="19754" CreationDate="2010-11-18T20:42:11.683" Score="2" ViewCount="" Body="&lt;p&gt;Recommended reading - &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000332.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/fog0000000332.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1293" LastActivityDate="2010-11-18T20:42:11.683" CommentCount="1" />
  <row Id="19930" PostTypeId="1" AcceptedAnswerId="19942" CreationDate="2010-11-18T21:09:31.993" Score="1" ViewCount="297" Body="&lt;p&gt;i want to build a web application using PHP&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the application will be a brand new idea for building websites , it depend on building page from blocks inside blocks online without using any external editor&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the good news is it'll be free and open source ,so it is better to build it from scratch to encourage developers to develop for it ? and learn it ?,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or to use a framework like codeigniter ? that will be more complicated for new developers, but easy for me to implement the application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what do you recommend (From scratch, over a framework) ?&lt;/p&gt;&#xA;" OwnerUserId="3648" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-11-19T06:37:35.760" LastActivityDate="2010-11-19T19:31:57.377" Title="What is the best for building web application from scratch in PHP?" Tags="&lt;development&gt;&lt;web-framework&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="1" />
  <row Id="19931" PostTypeId="2" ParentId="19930" CreationDate="2010-11-18T21:17:10.830" Score="5" ViewCount="" Body="&lt;p&gt;If you're not going to use a framework, you'll eventually develop your own one as your app grows big enough, and most likely it will be inferior to the common frameworks, and have worse documentation. That will make it harder for new developers to understand your app.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many things the frameworks solve that are common to almost all web apps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice: use a framework.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Just to clarify: I've been through this whole thing personally. I started out half a decade ago on an app that had &quot;rolled its own&quot; because &quot;we don't need to do all that complicated stuff&quot;. We gradually evolved a sort of internal framework because it turned out that we did need quite a lot of that stuff. The in-house framework was badly designed, because it was a side project, and this made the app harder to develop for than it needed to be. We ended up spending a release cycle stripping out the guts and replacing it with Zend Framework. Now the app is much easier to understand and develop features for. Frameworks, by virtue of being widely used, contain all the things web apps need that you haven't yet thought of at the start of a project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, if you really want to try your hand at building it all yourself, by all means do so. It's a great learning experience. If however your goal is to get from A to B in the most efficient way, don't try to roll your own, you'll regret it.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastEditorUserId="2063" LastEditorDisplayName="" LastEditDate="2010-11-19T19:16:07.397" LastActivityDate="2010-11-19T19:16:07.397" CommentCount="4" />
  <row Id="19932" PostTypeId="2" ParentId="19513" CreationDate="2010-11-18T21:30:26.447" Score="1" ViewCount="" Body="&lt;p&gt;If I wanted to stand up one of these appliances, I would be willing to go get the supporting software myself (Oracle, Tomcat, Linux, etc.), especially if you had some script or installer that would help me cobble all of the software sources together.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-18T21:30:26.447" CommentCount="1" />
  <row Id="19933" PostTypeId="2" ParentId="19856" CreationDate="2010-11-18T21:31:21.560" Score="1" ViewCount="" Body="&lt;p&gt;Not for nothing, but right-clicking on an ASP.NET web app and selecting Publish was a nice, pleasant surprise when I had to deploy an app. Granted, I had to set up the virtual directory and such on IIS beforehand, but deploying new versions is a few clicks away.&lt;/p&gt;&#xA;" OwnerUserId="4202" LastActivityDate="2010-11-18T21:31:21.560" />
  <row Id="19934" PostTypeId="1" CreationDate="2010-11-18T21:37:24.143" Score="4" ViewCount="154" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/OZ3iM.png&quot; alt=&quot;Delphi support&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a chart I whipped together showing the length of &lt;em&gt;active&lt;/em&gt; (meaning ongoing bug fixes and service packs) support offered for each version of Delphi. It is based on the published support data obtained from Embarcadero's &lt;a href=&quot;http://support.embarcadero.com/article/37740&quot; rel=&quot;nofollow&quot;&gt;website&lt;/a&gt;. Delphi 2010 and XE are excluded because their active support is still ongoing so they can't really be compared accurately. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ironically, Delphi 7, which was regarded by many to be the most stable until the release of Delphi 2009, had a support cycle three times as long as Delphi 2009. Granted, this chart spans three different companies with three different agendas. My question is why is Delphi 2009's support cycle so short? I understand Embarcadero has a business to run and they don't make money with service packs but really, 12 months? I would expect that of a $10 shareware title with low profit margins not a $900-$3500 world class development tool.&lt;/p&gt;&#xA;" OwnerUserId="4890" LastEditorUserId="4890" LastEditorDisplayName="" LastEditDate="2010-11-19T15:54:21.237" LastActivityDate="2010-11-19T17:16:36.137" Title="What's with Delphi's support cycle?" Tags="&lt;delphi&gt;&lt;support&gt;" AnswerCount="3" />
  <row Id="19935" PostTypeId="2" ParentId="19856" CreationDate="2010-11-18T21:38:49.840" Score="2" ViewCount="" Body="&lt;p&gt;I used &lt;a href=&quot;http://docs.fabfile.org/0.9.3/&quot; rel=&quot;nofollow&quot;&gt;fabric&lt;/a&gt; to setup deployment in my new startup.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Updating the live server is as simple as:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;fab prod upgrade&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This gets all of the latest source, puts up a maintenance page, migrates the database, sets up the new code, gets all the dependencies, stops/starts everything, etc.  All of the pertinent information (passwords, usernames, etc.) are all asked upfront.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just run the command, input some info, and go get a cup of coffee.  Everything's all live by the time I get back.&lt;/p&gt;&#xA;" OwnerUserId="1875" LastActivityDate="2010-11-18T21:38:49.840" CommentCount="1" />
  <row Id="19936" PostTypeId="2" ParentId="17898" CreationDate="2010-11-18T21:39:48.623" Score="1" ViewCount="" Body="&lt;p&gt;Pointers make &lt;em&gt;way&lt;/em&gt; more sense if you've studied assembly language and/or computer architecture. I think that if I teach a C class, I would start with a couple weeks of architecture to explain the memory model and the kinds of instructions the processor actually executes.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2010-11-18T21:39:48.623" CommunityOwnedDate="2010-12-02T00:15:36.130" />
  <row Id="19937" PostTypeId="2" ParentId="19888" CreationDate="2010-11-18T21:42:44.830" Score="5" ViewCount="" Body="&lt;p&gt;I know the problem so well, and in my case it's partly due to a short attention span. One of the things that seperates the doers from me, is a number of things :&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Perfection&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I want everything I do to be perfect. So I can sit literally countless hours overhearing the same 8 bars in a song I composed. I keep on trying until it is perfect, but I forget one thing: Sometimes getting it perfect requires to throw everything away and start anew. A too great desire for perfection just leaves a work unfinished as you can't get it perfect. So in fact, it will never be finished as there's always something else that has to be changed. Which brings me to&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Frustration&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;That's what it is: You work on something, and it doesn't want to work out like you do. At a certain point I become so tired of it that the inspiration is gone. Not only do I have no clue how to get things more perfect, I don't have the will anymore to keep on looking for it as well. Basically, I enter the stage of&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Boredom&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Indeed, work too long on any project and it starts boring you. There's something new on the horizon you want to try. A new challenge that has to be faced, a new problem that has to be solved. And that starts drifting your attention away from the things you were trying to finish. These things get abondoned, and another unfinished piece of art will quickly depart in oblivion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This sounds a bit contradictory to the perfection I want, but essentially they're three sons of the same father: no real sense of direction and goal. Starting is difficult because the ultimate goal is so broadly formulated you can't just do it in a day. So you have to divide the work in smaller tasks. Keeping on it is difficult as there is a lot of repetitive stuff where you quickly get bored.. Editing is such a thing, code review, testing, writing manuals,... Difficult to keep the end result in mind when you get tired of something. And in the end of the day finishing it is impossible because even when you get through the first two stages, your call for perfection doesn't allow you to decide when the goal is met. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Funny thing is, once I realized that, I managed to get more things done by:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;being picky on what I start. One can't do everything in life, and some things are just not meant for me. Painting is one for example&lt;/li&gt;&#xA;&lt;li&gt;force myself to finish things at least a week before I want it to be finished. Leaves me some time for extra perfection, although I have to guard myself that I don't start rethinking the design in the last week.&lt;/li&gt;&#xA;&lt;li&gt;give up on things that go nowhere, and do so quickly enough to not get frustrated about it.&lt;/li&gt;&#xA;&lt;li&gt;learn -yeah, learn- a bit by practicing very small bits, so I can get the hang of how to avoid too much boring work and how to get it done more efficiently.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It's not a foolproof way, as I have a short attention span anyway. But it helps, and it's more &quot;me&quot; than all that &quot;getting things done&quot; stuff. I had 6 notebooks and agendas this year, I lost all of them. So I fumble on in the good ol' chaotic way. Yet, realizing how it works for me actually makes me more productive. Or at least, avoids I dive into the same pitfall once too often...&lt;/p&gt;&#xA;" OwnerUserId="7268" LastActivityDate="2010-11-18T21:42:44.830" CommentCount="1" />
  <row Id="19938" PostTypeId="2" ParentId="19725" CreationDate="2010-11-18T21:49:58.117" Score="1" ViewCount="" Body="&lt;p&gt;Squeak (or Pharo). A programming language, IDE, and just about anything you'd want (Squeak used to ship with graphics tools, a graphical scripting library, speech and FM synthesis apps, ...), and all packed into a very small package.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The latest Squeak installer for Windows weighs in at a mere 10MB. Virtual machine + image weighs in around 16MB or less, depending. Supporting sources file's around 20MB.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if Windows isn't to your taste, install the OS X version, or the Linux version, or run it on an Android phone, or ...&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-11-18T21:49:58.117" CommentCount="2" />
  <row Id="19939" PostTypeId="2" ParentId="19934" CreationDate="2010-11-18T21:54:30.767" Score="0" ViewCount="" Body="&lt;p&gt;Only Embarcadero management can answer this question with any accuracy or authority, and I am guessing they are not going to in a forum such as this.&lt;/p&gt;&#xA;" OwnerUserId="3378" LastActivityDate="2010-11-18T21:54:30.767" CommentCount="2" />
  <row Id="19940" PostTypeId="2" ParentId="19888" CreationDate="2010-11-18T22:00:26.553" Score="2" ViewCount="" Body="&lt;p&gt;I'd suggest you get a book called The Artist's Way by Julia Cameron.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is about how to break those blocks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing to remember is none of us start out as experts at making anything. Not art not software, not music, not writing. The way people learn best is to try and fail and try it differntly and fail and try it differnently again until you succeed (watch a child learn to walk). If you don't do the try and fail steps, you won't get to the succeed part. Every piece of software doesn't have to be a work of art, every painting doen't have to be good, etc. as long as you learn something from them. I create fractal art and I make some every day - some of it works and some doesn't but I wouldn't get to the pieces that work if I didn't keep plugging away creating and finding out what doesn't work. Professional photographers take thousands of photos but only a very small percentage of them are good enough to publish or sell. Look at the stuff that didn't work and try to figure out something to do differntly next time to make it work better. You sound like an analytic person, so this step should be easy for you. Just don't keep making the same mistakes repeately without trying to change something. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-18T22:00:26.553" />
  <row Id="19941" PostTypeId="1" AcceptedAnswerId="19949" CreationDate="2010-11-18T22:03:27.027" Score="7" ViewCount="320" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/6200/are-there-rich-programmers&quot;&gt;From this question&lt;/a&gt;, I have another question about...&lt;br&gt;&#xA;How long and what type of complexity would have been involved in Chris Sawyer writing most of rollercoaster tycoon in assembler?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In order to specify and break this question down, I am interested in;  &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Approximately how many man hours (have a guess) do you estimate it would have taken Chris to write the game by himself? Or alternatively give an approximate percentage of the ratio of assembler coding hours to say, writing the whole thing in C/C++.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do the programmers that know assembler well think of this as an overly complex task for such a low level language abstraction? Apart from performance benefits is this just a freakish natural ability that Chris has, or a skillset worthy of learning to that extent? I'm interested if people think the complexity/performance thing is worth learning assembler that well (in order to write), or is it only &quot;worth it&quot; if you have a lot of naturally developed skills in assembler (presumably from working with hardware/hardware drivers/electronics/etc).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="3689" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-18T22:15:23.337" LastActivityDate="2010-11-19T00:43:07.957" Title="How long and what type of complexity would have been involved in Chris Sawyer writing most of rollercoaster tycoon in assembler?" Tags="&lt;programming-languages&gt;&lt;c++&gt;&lt;complexity&gt;&lt;video-game&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="3" />
  <row Id="19942" PostTypeId="2" ParentId="19930" CreationDate="2010-11-18T22:03:28.877" Score="0" ViewCount="" Body="&lt;p&gt;I'm going to go a different route here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you'll need, is a process. Start with analyzing what you want to build and elaborate it into a design. Only once you know exactly what you are building can you make an informed decision on what to build it with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember though, frameworks provide solutions to common problems - a group of patterns if you will - and are tried and tested by many, providing something to confidently work with. It is &lt;em&gt;always&lt;/em&gt; better to not recreate the wheel.&lt;/p&gt;&#xA;" OwnerUserId="7494" LastActivityDate="2010-11-18T22:03:28.877" CommentCount="1" />
  <row Id="19943" PostTypeId="2" ParentId="19843" CreationDate="2010-11-18T22:04:08.493" Score="3" ViewCount="" Body="&lt;p&gt;&quot;What do you do when you are certain that the solution is to use technology/technique/algorithm &lt;strong&gt;X&lt;/strong&gt;, but your supervisor is equally convinced that the solution is technology/technique/algorithm &lt;strong&gt;Y&lt;/strong&gt;?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I gave an answer about making a detailed presentation as to the virtues of &lt;strong&gt;X&lt;/strong&gt; over &lt;strong&gt;Y&lt;/strong&gt;, but then once a decision had been made, doing my best to respect/support the decisions of upper management.  &lt;/p&gt;&#xA;" OwnerUserId="4265" LastActivityDate="2010-11-18T22:04:08.493" CommentCount="4" />
  <row Id="19944" PostTypeId="2" ParentId="19085" CreationDate="2010-11-18T22:22:43.960" Score="1" ViewCount="" Body="&lt;p&gt;From the SourceSafe plugins for MS Access, VB6, and two versions of VS.NET, I've had SourceSafe automagically revert check-ins to previous versions - losing my work. I finally was able to get our place on SVN and I'm a happier person.&lt;/p&gt;&#xA;" OwnerUserId="4202" LastActivityDate="2010-11-18T22:22:43.960" />
  <row Id="19945" PostTypeId="2" ParentId="19241" CreationDate="2010-11-18T22:32:36.973" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://ProjectEuler.net&quot; rel=&quot;nofollow&quot;&gt;ProjectEuler&lt;/a&gt; has a good community of math/algo tasks to do.&lt;/p&gt;&#xA;" OwnerUserId="4533" LastActivityDate="2010-11-18T22:32:36.973" />
  <row Id="19947" PostTypeId="2" ParentId="19085" CreationDate="2010-11-18T22:44:20.970" Score="0" ViewCount="" Body="&lt;p&gt;Yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once I spent a few days working on some rather complex changes to a large class (maybe a thousand LOC and several long days of pretty grueling work), and when I went to check in, VSS blew up and crashed, and corrupted the file. It basically turned my checked-in version into a pile of binary garbage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We did do network backups which saved all the work on developer source drives every weekend, but this happened during week, so there was no backup. My only choice was to re-write that horrible, complex change from scratch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not as bad as cases where people lost entire projects obviously, but it was a particularly nasty change to have to re-do, and I was under quite some timeline pressure at that time. :/&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-18T22:44:20.970" />
  <row Id="19948" PostTypeId="2" ParentId="4607" CreationDate="2010-11-18T22:49:56.410" Score="6" ViewCount="" Body="&lt;p&gt;Java allows you to make a Java program run with few or no modifications on all platforms which have a Java runtime.  On all these platforms it behaves like a Java program which may or may not be to the users liking.  Eclipse tried to fix it by writing their own GUI-layer which slowly is getting them in the &quot;we need to support a zillion platforms&quot; problem, but that is another story.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a very powerful concept.  We have a rather complex desktop application, which I just for fun tried to run on a Mac, and it ran unchanged - bugs and all - out of the box!  Some minor tweaks (less than 20 lines of code) made it similar to other OS X applications (but not the same, just nok sticking out).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;GMail is a very successful web application, and I haven't heard anyone complain about it not looking like a native Windows application or OS X application, but that is probably because it doesn't try to look like one, which is what Java tries to do, and fails because you can't make it FEEL the same without BEING the same.  Catching up reimplementing functionality in Java has proven not to be satisfactory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest you have a look at what Karsten Lensch can do regarding the presentation of a Java application in the Metamorphosis demo at &lt;a href=&quot;http://www.jgoodies.com/freeware/metamorphosis/index.html&quot; rel=&quot;nofollow&quot;&gt;http://www.jgoodies.com/freeware/metamorphosis/index.html&lt;/a&gt; (run Web Start for easy start).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I find Java very satisfactory for writing applications.  If I use the Nautilus theme in Java 6 there is no doubt that this is Java and not Windows.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-18T22:49:56.410" CommentCount="1" />
  <row Id="19949" PostTypeId="2" ParentId="19941" CreationDate="2010-11-18T23:02:10.113" Score="8" ViewCount="" Body="&lt;p&gt;From reading his &lt;a href=&quot;http://www.chrissawyergames.com/info.htm&quot; rel=&quot;nofollow&quot;&gt;rough bio&lt;/a&gt;, it looks like two years (early 1997 to late 1998).  Given that he seems to be a 'one project at a time' person and the tool set and timeframe isn't great for 'team development', I would assume a straight 24 programmer-months.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At that point he had been a professional games programmer working in assembly since 1983, so I wouldn't equate &quot;two Chris years&quot; to &quot;two me years&quot; of work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given that most professional games take around 25-person years for a team to develop, two-person years for an industry leading game is an amazing accomplishment, lending creedence to the sayings:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.construx.com/blogs/stevemcc/archive/2008/03/27/productivity-variations-among-software-developers-and-teams-the-origin-of-quot-10x-quot.aspx&quot; rel=&quot;nofollow&quot;&gt;A great programmer is 10x more productive than a good programmer&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;The programmer is more important than the language for productivity&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So in this case how much faster would Rollercoaster Tycoon be written had Chris used C or Java or Javascript or ...?  Probably it wouldn't have mattered other than the fact that he may have been a bit slower using a higher level language that he didn't have 14 years experience with...&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-11-18T23:02:10.113" CommentCount="1" />
  <row Id="19950" PostTypeId="2" ParentId="19856" CreationDate="2010-11-18T23:37:22.873" Score="1" ViewCount="" Body="&lt;p&gt;Granted this is now rather dated, but I used to have the following be the steps to deploy my code many moons ago that I found to be the best I've had:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Check-in my code changes into Visual SourceSafe.&lt;/li&gt;&#xA;&lt;li&gt;Get Latest Version on my boss' machine.&lt;/li&gt;&#xA;&lt;li&gt;Compile the solution that produced a few DLLs.&lt;/li&gt;&#xA;&lt;li&gt;Show that the new code worked like it should.&lt;/li&gt;&#xA;&lt;li&gt;Disconnect the production server from the Internet to update it without interference.&lt;/li&gt;&#xA;&lt;li&gt;Copy the binaries onto the production server.&lt;/li&gt;&#xA;&lt;li&gt;Start IIS.&lt;/li&gt;&#xA;&lt;li&gt;Redial back into the internet on the ISDN line used.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;This was back in the late 1990s when I was programming in Visual C++ on NT 4.0 for a dot-com.  Most of the deployment processes since this have gotten more complicated in having nAnt tasks and other extra stuff like dealing with load balanced production servers whereas back in the day we just had the one production box.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Course handing the process over to a release engineer is better but isn't quite the same as if I put the code into the wild.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-18T23:37:22.873" />
  <row Id="19951" PostTypeId="2" ParentId="19941" CreationDate="2010-11-18T23:38:05.363" Score="3" ViewCount="" Body="&lt;p&gt;If you think of C as little more than a &quot;high-level&quot; assembler, and we make the assumption that Chris was not make mad optimizations to his assembly code in &lt;em&gt;every&lt;/em&gt; routine, then I would imagine in terms of % time longer, then it might not be that much more for a skilled assembly programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assembly gets complicated when you're doing all those mad optimizations (vectorising operations, making use of special instruction sets (SSE, etc) bit twiddling, etc) that you simply can't do from C. If you're doing that stuff, then the time is actually in the &quot;fiddle this bit, assemble, measure... fiddle this bit, assemble, measure...&quot; loop and not in the actual coding. With a good macro assembler and a skilled programmer, then writing assembly is not a &lt;em&gt;huge&lt;/em&gt; step down from writing C code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, I wouldn't have been able to do it! I shudder to think about trying to initialize DirectX directly in assembly! (&lt;strong&gt;Edit:&lt;/strong&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/RollerCoaster_Tycoon#History&quot; rel=&quot;nofollow&quot;&gt;Wikipedia tells me&lt;/a&gt; that he wrote some parts in C to &quot;interface with the Windows operating system&quot; so I guess he wasn't initializing DirectX in assembly then... phew!)&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-11-18T23:38:05.363" CommentCount="1" />
  <row Id="19952" PostTypeId="2" ParentId="19085" CreationDate="2010-11-18T23:46:48.903" Score="0" ViewCount="" Body="&lt;p&gt;We had many problems with corrupted databases using VSS 6 in a multi-platform Mac/Windows environment. It turns out this is a horrible known bug - Windows 2000 Server has difficulty managing locks consistently between different access methods (e.g. AFP and SMB), and VSS relies on this completely in order to work properly. We moved to CVS and then (more recently) to SVN and never looked back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It baffles me why &lt;em&gt;anybody&lt;/em&gt; still uses VSS when tools like Subversion are faster (particularly in WAN environments), more reliable, widely supported, and above all free!&lt;/p&gt;&#xA;" OwnerUserId="7949" LastActivityDate="2010-11-18T23:46:48.903" />
  <row Id="19953" PostTypeId="2" ParentId="19856" CreationDate="2010-11-18T23:57:31.827" Score="2" ViewCount="" Body="&lt;p&gt;I'm not sure I agree with Joel on this one - surely no steps are better than one?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We use Hudson to script our builds (continuously on both Mac and Windows), including building installers and CD images for the few times we actually send out a real box. We always test from the installer in QA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We also use Hudson to copy the installers to the &quot;beta&quot; area of our live website once per day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So essentially we can deploy to users every day in no steps. When we make an official release, we just switch the filenames of the installers in CMS to make the current beta installers the release ones, and change the Ant build script to switch to the new version number (which becomes the new beta).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having this set up and working makes release day a complete non-event (which is exactly what it should be). We've not had a mistake on release day for a while now (it used to be a regular occurrence)!&lt;/p&gt;&#xA;" OwnerUserId="7949" LastActivityDate="2010-11-18T23:57:31.827" CommentCount="1" />
  <row Id="19954" PostTypeId="2" ParentId="1018" CreationDate="2010-11-18T23:59:47.567" Score="1" ViewCount="" Body="&lt;p&gt;I'd be in the underground, fighting against the Nazi regime that's been dominating the world since they won the second world war because the other side didn't have any &lt;a href=&quot;http://www.math.miami.edu/~harald/enigma/enigma.html&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;Bombe&lt;/code&gt;&lt;/a&gt;s to crack codes and win the war.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-18T23:59:47.567" />
  <row Id="19955" PostTypeId="2" ParentId="15781" CreationDate="2010-11-19T00:09:17.463" Score="2" ViewCount="" Body="&lt;p&gt;It depends on what is important to you :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When we faced this choice for a cross-platform Mac/Windows app about 10 years ago, we had a good look around the various cross-platform options - Java, Qt, wxWidgets etc. The problem we had was that the look and feel of the UI was really important to us, and all of the &quot;cross-platform&quot; apps looked, well, compromised. We ended up biting the bullet and building up our own cross-platform core, with a custom UI for each platform on top (written in PowerPlant for Mac and MFC on Windows). Over time we have got pretty good at this, and the &quot;cross-platform&quot; part has got thicker without compromising the UI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We're now looking at this decision again for a new project. Looking at the options now, I would probably go with Qt - it's free and really seems to have matured nicely. Java might have been an option but we can't really take the performance hit (we're doing 3D image processing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If UI is really important to you, I suspect you are going to have to invest quite a lot of time getting things looking right on each platform whether you use something like Qt or roll your own. For an internal or specialist app where users might be more accepting of a less polished UI, it might be fine!&lt;/p&gt;&#xA;" OwnerUserId="7949" LastActivityDate="2010-11-19T00:09:17.463" />
  <row Id="19956" PostTypeId="2" ParentId="1018" CreationDate="2010-11-19T00:19:47.813" Score="1" ViewCount="" Body="&lt;p&gt;Sailing ... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/CZb7o.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-19T00:19:47.813" />
  <row Id="19957" PostTypeId="2" ParentId="19941" CreationDate="2010-11-19T00:43:07.957" Score="2" ViewCount="" Body="&lt;p&gt;Another person known for writing a lot of Windows programs in assembler is Steve Gibson, author of SpinRite, ShieldsUp! and other utilities.  He discusses his love of assembly language &lt;a href=&quot;https://www.grc.com/smgassembly.htm&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Randy Hyde (whom I used to know way back when we were both writing 6502 assembly code for the Apple II) has a new online book called &lt;a href=&quot;http://homepage.mac.com/randyhyde/webster.cs.ucr.edu/Win32Asm/index.html&quot; rel=&quot;nofollow&quot;&gt;Windows Programming in Assembly Language&lt;/a&gt;.  He is a big proponent of using fancy macros (including looping constructs) to make assembly programming more like using a high-level language.  Sawyer probably used a similar approach to be more productive. &lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-11-19T00:43:07.957" />
  <row Id="19958" PostTypeId="2" ParentId="13100" CreationDate="2010-11-19T01:02:52.363" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books&quot;&gt;Taken from this question on Stack Overflow&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;•&lt;a href=&quot;http://www.programmersheaven.com/2/CSharpBook&quot; rel=&quot;nofollow&quot;&gt;Free C# Book Covers C#1.0 and 2.0&lt;/a&gt; (Courtesy of Programmers Heaven)&lt;br&gt;&#xA;•&lt;a href=&quot;http://www.infoq.com/minibooks/vsnettt&quot; rel=&quot;nofollow&quot;&gt;Visual Studio Tips and Tricks&lt;/a&gt; (VS 2003-2005 only)&lt;br&gt;&#xA;•&lt;a href=&quot;http://weblogs.asp.net/zeeshanhirani/archive/2008/12/05/my-christmas-present-to-the-entity-framework-community.aspx&quot; rel=&quot;nofollow&quot;&gt;Entity Framework&lt;/a&gt; (514 pages)&lt;br&gt;&#xA;•&lt;a href=&quot;http://www.charlespetzold.com/dotnet/index.html&quot; rel=&quot;nofollow&quot;&gt;Charles Petzold's .Net Book 0&lt;/a&gt;&lt;br&gt;&#xA;•&lt;a href=&quot;http://www.albahari.com/threading/&quot; rel=&quot;nofollow&quot;&gt;Threading in C#&lt;/a&gt;&lt;br&gt;&#xA;•C&lt;a href=&quot;http://www.csharpcourse.com/&quot; rel=&quot;nofollow&quot;&gt;# Yellow Book&lt;/a&gt; (Intro to programming)&lt;br&gt;&#xA;•&lt;a href=&quot;http://en.wikibooks.org/wiki/C_Sharp_Programming&quot; rel=&quot;nofollow&quot;&gt;C# Programming - Wikibook&lt;/a&gt;&lt;br&gt;&#xA;•&lt;a href=&quot;http://www.techotopia.com/index.php/C_Sharp_Essentials&quot; rel=&quot;nofollow&quot;&gt;C# Essentials&lt;/a&gt;&lt;br&gt;&#xA;•&lt;a href=&quot;http://www.brpreiss.com/books/opus6/&quot; rel=&quot;nofollow&quot;&gt;Data Structures and Algorithms with Object-Oriented Design Patterns in C#&lt;/a&gt;   &lt;/p&gt;&#xA;" OwnerUserId="3689" LastActivityDate="2010-11-19T01:02:52.363" />
  <row Id="19959" PostTypeId="2" ParentId="1323" CreationDate="2010-11-19T01:32:24.750" Score="0" ViewCount="" Body="&lt;p&gt;We're a blub shop, so we use the blub programming conventions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now Paul Graham and friends are much smarter than us, but us blub programmers, we can all read each others blub, in fact, any blub programmer can read our blub code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, because of the design of blub, any blub programmer can read any single blub file and understand it, because blub hasn't got a macro system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If we program in say, C or C++ (we're all multilingual, even though we program in blub) we use mostly blub style for new code, or for open source stuff, the standard of the project we're working in.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-11-19T01:32:24.750" />
  <row Id="19960" PostTypeId="2" ParentId="18751" CreationDate="2010-11-19T01:43:31.823" Score="0" ViewCount="" Body="&lt;p&gt;On The .Net side of things, I have been on a few project that use team foundation server to hold and manage requirements. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;its good in that it is nicely intergrated with the visual studio, really helps the whole team (PM, BA, testers...) get on the same page, and work with the same set of artifacts.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It only for .Net though...&lt;/p&gt;&#xA;" OwnerUserId="7947" LastActivityDate="2010-11-19T01:43:31.823" />
  <row Id="19961" PostTypeId="2" ParentId="19912" CreationDate="2010-11-19T01:50:57.057" Score="3" ViewCount="" Body="&lt;p&gt;I found Code Complete 2 to be excelent. In fact I would say its a must ready for every developer. its very broad and covers more than just programing, like software development life cycle, intergation, some testing...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;its more focused on the software developer(some one creating comercial application) than the computer scientist. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735619670&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=sr_1_1?ie=UTF8&amp;amp;qid=1290131411&amp;amp;sr=8-1&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7947" LastActivityDate="2010-11-19T01:50:57.057" CommentCount="1" />
  <row Id="19962" PostTypeId="2" ParentId="19752" CreationDate="2010-11-19T01:51:55.790" Score="1" ViewCount="" Body="&lt;p&gt;Stop taking caffeine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wait 6 months.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, when you need to stay up for 48 hours straight, drink some caffeine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's amazing what drugs can do when you don't abuse them to the point of maintaining an unhelpful tolerance.&lt;/p&gt;&#xA;" OwnerUserId="6431" LastActivityDate="2010-11-19T01:51:55.790" CommentCount="1" />
  <row Id="19963" PostTypeId="1" CreationDate="2010-11-19T02:00:23.007" Score="4" ViewCount="250" Body="&lt;p&gt;Can you please recommend me a good REST library, article, or anything I should know?&lt;/p&gt;&#xA;" OwnerUserId="6859" LastActivityDate="2011-03-22T11:31:24.070" Title="REST, in PHP: Where to begin?" Tags="&lt;php&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="3" />
  <row Id="19964" PostTypeId="2" ParentId="19752" CreationDate="2010-11-19T02:22:59.407" Score="4" ViewCount="" Body="&lt;p&gt;I recommend reading the book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/013143635X&quot; rel=&quot;nofollow&quot;&gt;Death March&lt;/a&gt;. It has some survival strategies as well as warning signs. Depending on the morale, death marches can continue for short or long times; as well as leave survivors saying &quot;wow, that was fun&quot; or &quot;f this, I'm changing careers!&quot; Morale of the workers is the most important feature, and this is something that only the (mis)managers can address. We had one last fall, and 7 months after it ended, I'm still burned out (my productivity is about 1/3-1/4 of what it was this time last year). I'm not sick of programming, I am not sick of putting out fires - I &lt;em&gt;am&lt;/em&gt; sick of dealing with arson. All of our deadlines and personnel shortages were self-inflicted by our mismanagers. My immediate supervisor spread the rumor (in order to try to discredit me) that I wanted 2 months off (at one time) when the crunch was finally over. Looking back, I think that 2 months off would have been a good idea. The head of the office has had all his responsibilities removed and basically told to find another job by March. Yes, I'm interviewing, and folks know it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recommend that book because for many developers it is when they realise what was being done to them: &lt;em&gt;&quot;You mean it isn't just this one project, or even just my company that does this!&quot;&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you reach your limit - and only you know what your limit is - just go home. Don't ask for permission. Don't listen to threats. Don't listen to promises made in the heat of passion (you've heard them all: &quot;you'll get rewarded when this is over&quot; or &quot;of course I'll respect you in the morning&quot;). Just go. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Based on historical data about myself, coding for more than about 12-14 hours straight is counter productive, as I end up in negative productivityland; I start introducing more bugs than I'm fixing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://archives.igda.org/articles/erobinson_crunch.php&quot; rel=&quot;nofollow&quot;&gt;An article written some years ago&lt;/a&gt; pointed out why other industries got rid of &quot;crunch mode&quot; (or &quot;death marches&quot;) - they were the worst way to get work done. And the chart on that page shows the negative productivity one gets into in such forced overtime. But in software development, death marches are the norm and not the exception. Death marches are a sign of incompetent or malevolent managers, you'll find examples of both out in the wild. &lt;a href=&quot;http://ea-spouse.livejournal.com/274.html&quot; rel=&quot;nofollow&quot;&gt;One story from years ago&lt;/a&gt; (by someone who wrote under the nickname &quot;EA Spouse&quot;) gave an example of a company that intentionally included death marches into the schedule. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some things I learned when dealing with sleep deprivation:   &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;go outside and get sunlight. Even if it is subzero temperatures, slap a coat on and walk around facing the sun like a flower for 10 minutes about 3 times during daylight hours. Do not look into the sun with opened eyes, but you do want sunlight on your face.   &lt;/li&gt;&#xA;&lt;li&gt;drink plenty of water and cut down on caffeine.  &lt;/li&gt;&#xA;&lt;li&gt;on weekends, just sleep to catch up on your sleep deficit. Ideally, you go to be much earlier and try to wake up at your regular time, but otherwise, just sleep in.   &lt;/li&gt;&#xA;&lt;li&gt;exercise. Even if all that is is walking around in sunlight for 1/2 hour per day.   &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;When I was carless, to catch the bus required to get to work meant getting up around 0330 and leaving the house by 0430. The last bus of the morning left downtown around 0630, and the next bus heading past my office left downtown at 1600. I'd get home around 1900, have a quick snack and throw myself into bed as quick as possible. That endured for about 14 months and it took about 18 months to recover from that sleep deprivation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Somethings to do afterward are sit down and have a post mortem:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What worked?   &lt;/li&gt;&#xA;&lt;li&gt;What didn't?   &lt;/li&gt;&#xA;&lt;li&gt;What warning signs were there that the schedule was slipping? You don't blow past deadlines all at once at the end, you slip day by day by day by day. Just like you don't wake up one morning and find out you're fat, you got there one cheeseburger at a time. Schedules bulge the same way and schedule slippage creeps up like a waistline.    &lt;/li&gt;&#xA;&lt;li&gt;Will this happen again? If so, then you ought to know about it and find a different place to work, or learn to deal with it. Again, some strategies can be found in the book Death March. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-19T02:22:59.407" CommentCount="2" />
  <row Id="19965" PostTypeId="2" ParentId="13623" CreationDate="2010-11-19T02:36:12.847" Score="-1" ViewCount="" Body="&lt;p&gt;Boy I'll get clobbered for this, but there's something people don't want to hear:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Nature abhors a vacuum.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Of course programmers want faster machines (me included), and some will threaten to quit if they don't get it. However:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;If there's more cycles to be taken, then they get taken.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If there's more disk or RAM to fill up, it gets filled up.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If the compiler can compile more code in the same time, then more code will be given to it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If it is assumed that the extra cycles, storage, and code all serve to further gratify the end user, one may be permitted to doubt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as performance tuning goes, just as people put in logic bugs when they program, they also put in performance bugs.&#xA;The difference is, they take out the logic bugs, but not the performance bugs, if their machine is so fast they don't notice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, there can be happy users, or happy developers, but it's hard to have both.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-11-19T19:43:59.130" LastActivityDate="2010-11-19T19:43:59.130" CommunityOwnedDate="2010-11-19T02:36:12.847" CommentCount="3" />
  <row Id="19966" PostTypeId="1" CreationDate="2010-11-19T02:39:30.800" Score="2" ViewCount="114" Body="&lt;p&gt;I have been tasked with evaluating a new PC for our dev team that is spec'd only slightly better than our current models. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Could anyone recommend appropriate benchmarking software that would be useful to emulate typical development tasks?&lt;/p&gt;&#xA;" OwnerUserId="7956" LastActivityDate="2010-11-19T15:02:40.387" Title="Which benchmarking software would you use to evaluate the performance of your development rig?" Tags="&lt;benchmarking&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="19967" PostTypeId="2" ParentId="19752" CreationDate="2010-11-19T02:40:04.450" Score="2" ViewCount="" Body="&lt;p&gt;I'm going to have to agree with everyone else here that says, &lt;strong&gt;&lt;em&gt;just don't do it&lt;/em&gt;&lt;/strong&gt;. I'm sure I can dig around and find studies to back this up, but generally, the longer you are awake without good rest, your ability to do complex tasks (like writing software) diminishes and you are more likely to be hurting code base than you would be helping it. Likewise, depending upon what country you are working in, asking someone to work such hours is borderline illegal and you have a right to refuse to work those hours. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, if you absolutely must stay and work, the best thing to do is to get sleep. At some point you are going to need to set aside a good block of time (at least six hours) to get some uninterrupted sleep and allow your body to recharge before getting back to work. Beyond that, getting up and moving around periodically also helps along with just talking to the people around you so can switch tasks for a bit.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-11-19T02:40:04.450" />
  <row Id="19968" PostTypeId="2" ParentId="7347" CreationDate="2010-11-19T02:53:51.177" Score="0" ViewCount="" Body="&lt;p&gt;I've got a little different take on it. Just simply following advice you get here isn't going to make much difference, because there are some mistakes you need to make, which you then need to fix, which you then need to learn from.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The mistake you need to make is to design your data structure in the way everyone does. That is, with redundant data and many layers of abstraction, with properties and notifications that propagate throughout the structure trying to keep it consistent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you &lt;a href=&quot;http://stackoverflow.com/questions/926266/performance-optimization-strategies-of-last-resort/927773#927773&quot;&gt;need to do performance tuning&lt;/a&gt; (profiling) and have it show you how, in many ways, what is costing you oodles of cycles is the many layers of abstraction, with properties and notifications that propagate throughout the structure trying to keep it consistent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may be able to fix these problems somewhat without major changes to the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then if you are lucky you can learn that less data structure is better, and that it is better to be able to tolerate temporary inconsistency than to try to keep many things tightly in agreement with waves of messages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How you write loops has really nothing to do with it.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-11-19T02:53:51.177" />
  <row Id="19969" PostTypeId="2" ParentId="19963" CreationDate="2010-11-19T03:37:37.220" Score="1" ViewCount="" Body="&lt;p&gt;I was in the same situation as you about two weeks ago.  The best way to learn it is to just dive in and start using the API you want to use.  I'm developing against Chargify's and SendGrid's APIs.  The documentation (for those services at least) basically holds your hand and walks you through it.&lt;/p&gt;&#xA;" OwnerUserId="4115" LastActivityDate="2010-11-19T03:37:37.220" CommentCount="2" />
  <row Id="19970" PostTypeId="2" ParentId="19003" CreationDate="2010-11-19T03:43:49.390" Score="1" ViewCount="" Body="&lt;p&gt;I'd start with this: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321369440&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/How-Break-Web-Software-Applications/dp/0321369440/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1290138063&amp;amp;sr=1-1&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7958" LastActivityDate="2010-11-19T03:43:49.390" CommentCount="2" />
  <row Id="19971" PostTypeId="2" ParentId="1007" CreationDate="2010-11-19T03:53:24.267" Score="1" ViewCount="" Body="&lt;p&gt;Two things that haven't been mentioned yet:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Asks questions&lt;/li&gt;&#xA;&lt;li&gt;Pays attention to details&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7958" LastActivityDate="2010-11-19T03:53:24.267" />
  <row Id="19972" PostTypeId="2" ParentId="4607" CreationDate="2010-11-19T03:55:41.547" Score="0" ViewCount="" Body="&lt;p&gt;Yes, Java UI's dont look great but some of the answers like they dont behave as per User expects them to is just plain wrong. There are thousands of C++ UI's who dont behave as the User wants them to. Performance is not really a big issue anymore with Hotspot in place. I also find the claims of running a Factorial program in Java and C++ and than saying Java is slow very amusing. The hotspot comes into picture mostly on Applications that run for a longer duration. &#xA;Use Java if you have to and it is good enough for you, generally asking this question on a Forum brings out only the Java haters out :-)&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-19T03:55:41.547" />
  <row Id="19974" PostTypeId="1" CreationDate="2010-11-19T04:21:47.270" Score="1" ViewCount="324" Body="&lt;p&gt;Many IDEs have the ability to spit out automatically written pieces of code. For example, it might generate a getter/setter pair for you. I wonder whether it isn't an attempt to work around some flaws in the language. If your IDE can figure out what the code should be without your help, why can't the compiler?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there cases where this is a really good idea? What kind of code generation does your IDE provide? Would the same thing be better provided as a feature of the language?&lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-11-19T14:48:03.380" Title="IDE Generated Code" Tags="&lt;ide&gt;&lt;code-generation&gt;" AnswerCount="11" CommentCount="8" FavoriteCount="1" />
  <row Id="19975" PostTypeId="2" ParentId="19770" CreationDate="2010-11-19T04:23:50.027" Score="5" ViewCount="" Body="&lt;p&gt;experienced procedural programmers - if they're good at it - have internalized models of code construction that tend towards object-orientation, &lt;em&gt;but they don't realize it&lt;/em&gt;. The same way good database designers tend to create tables in third normal form, even if they've never heard of database normalization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;chances are the big ugly balls of mud you're seeing are &lt;em&gt;ancient artifacts&lt;/em&gt;, laden with decades of technical debt and emergency changes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;when teaching OOP to procedural programmers (caveat: many years ago) I found that starting with what they know and what they think is good and building up from there into objects and classes makes it &quot;click&quot; much faster than lecturing on abstract concepts and coding talking animals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;example: a good function uses all of its parameters, and only its parameters. a good data structure contains only elements that are logically related to the 'key'. a good module typically centers on one data structure (or an aggregate) and contains the functions that produce, use, and consume the data structure. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;remember that the habits these programmers have developed have served them well (as far as they know!) for a very long time; don't tell them that they need to 'forget all that and start over', that just breeds resentment. Tell them that everything they already know is still correct, &lt;strong&gt;it's just reorganized&lt;/strong&gt;. Then show them how to reorganize it, then show them the benefits of the reorganization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;a useful exercise might be to have them code something simple but useful 'the old way', then walk through the refactoring that would make it work 'the new way'. The Socratic method (asking questions instead of showing them directly) is entirely appropriate for this kind of exercise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;good luck!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-19T04:23:50.027" />
  <row Id="19978" PostTypeId="2" ParentId="19974" CreationDate="2010-11-19T04:48:20.607" Score="4" ViewCount="" Body="&lt;p&gt;Think of the ambiguity you would introduce into pretty much any language if you let the compiler/interpreter try to guess what meant. &lt;/p&gt;&#xA;" OwnerUserId="7959" LastActivityDate="2010-11-19T04:48:20.607" CommentCount="1" />
  <row Id="19979" PostTypeId="2" ParentId="19974" CreationDate="2010-11-19T04:52:59.867" Score="3" ViewCount="" Body="&lt;p&gt;With getters and setters, you don't always want both, but how is the compiler/interpreter to know that? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, when using the class, you'd have to remember on your own that a certain property is read-only, instead of having it clearly in the code that you can't use a setter because it doesn't exist.&lt;/p&gt;&#xA;" OwnerUserId="4389" LastActivityDate="2010-11-19T04:52:59.867" />
  <row Id="19981" PostTypeId="2" ParentId="19974" CreationDate="2010-11-19T05:09:40.780" Score="1" ViewCount="" Body="&lt;p&gt;To me, I would like to think that IDEs should help the users generate codes to&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;increase your coding speed e.g. generation of mundane (subjective) codes &lt;/li&gt;&#xA;&lt;li&gt;give (to  a certain extent) an idea of how certain 'requirements' can be coded e.g. template for a specific class types&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The codes by no means should be taken for granted to fit exactly what you want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, codes generated from visual editors/wizards (e.g. WinForm designer generating the designer.cs files) should not be meddled with unless you have deep understanding of what you are doing and prepared to get screwed if it affects the visual editor's ability to render the design-time view.&lt;/p&gt;&#xA;" OwnerUserId="2262" LastActivityDate="2010-11-19T05:09:40.780" />
  <row Id="19985" PostTypeId="2" ParentId="19851" CreationDate="2010-11-19T05:55:03.690" Score="1" ViewCount="" Body="&lt;p&gt;I've found a &quot;team Contract&quot; usefull. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has to be colaboratively developed by the team members them selves, if it comes down from on high it won't work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although, it's a little late if the team is already fighting. &lt;/p&gt;&#xA;" OwnerUserId="7947" LastActivityDate="2010-11-19T05:55:03.690" />
  <row Id="19986" PostTypeId="2" ParentId="19974" CreationDate="2010-11-19T06:02:10.393" Score="1" ViewCount="" Body="&lt;p&gt;This feature can be taken away from the compiler proper and be given a name of its own.  This need not be a language feature.  There can be generic template generators or skeleton code generators.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They could sit somewhere in between compiled languages and interpreted languages.  By taking them away from the compiler proper, you do not unnecessarily fatten it up.  Not everyone will be using every template.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it need not be provided by the compiler, the language need not provide it as a feature.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-11-19T06:02:10.393" CommentCount="2" />
  <row Id="19987" PostTypeId="1" CreationDate="2010-11-19T06:40:55.730" Score="8" ViewCount="570" Body="&lt;p&gt;Recently, I don’t know from where I got a thought in my mind that, “is knowing .NET development environment enough for a successful career in IT industry”. Should I be learning more languages too or will .NET suffice me for next 10-15 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By successful career I mean earning decent living and having good growth opportunities.&lt;/p&gt;&#xA;" OwnerUserId="7962" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-19T21:37:28.830" LastActivityDate="2010-11-21T15:33:04.570" Title="Is knowing .NET only enough for a successful career in IT industry?" Tags="&lt;career&gt;&lt;.net&gt;&lt;blogs&gt;" AnswerCount="16" CommentCount="8" FavoriteCount="4" />
  <row Id="19988" PostTypeId="2" ParentId="19987" CreationDate="2010-11-19T07:15:06.790" Score="4" ViewCount="" Body="&lt;p&gt;Technology keeps evolving during the time. Setting the career goals based on only one development environment can be risky. I believe 10 to 15 years is too long time to envisage state of any technology.&lt;br&gt;&#xA;We should be open to work on any development environment in our software development career. Of course, we may have our favorites and we may have more expertise over language than other  but knowing other development environment will help.  Let us say, If you become manager of the team which is developing software under different environments, at least you will be in position to guide and understand the internals of the ongoing project. &lt;/p&gt;&#xA;" OwnerUserId="7478" LastActivityDate="2010-11-19T07:15:06.790" />
  <row Id="19989" PostTypeId="2" ParentId="19966" CreationDate="2010-11-19T07:28:56.703" Score="-1" ViewCount="" Body="&lt;p&gt;Make sure your new boxes come with SSD drive - developers use their hard drives most (compilation, file search, file copy) and it's the slowest part in the computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get a good SSD and you can cut compilation time in half easily.&lt;/p&gt;&#xA;" OwnerUserId="5564" LastActivityDate="2010-11-19T07:28:56.703" CommentCount="1" />
  <row Id="19990" PostTypeId="1" AcceptedAnswerId="19997" CreationDate="2010-11-19T07:33:57.710" Score="2" ViewCount="400" Body="&lt;p&gt;Developers key in lots of code, write bogs, write software designs and stuff. Do we need formal typing training? I have seen many developers struggling with keyboard thus slowing down development momentum. At least we can play around with a software typing emulator to begin with. &lt;/p&gt;&#xA;" OwnerUserId="7478" LastActivityDate="2010-11-19T15:48:36.273" Title="Typing skills do developers need a formal training?" Tags="&lt;learning&gt;&lt;productivity&gt;&lt;career&gt;&lt;self-improvement&gt;" AnswerCount="10" CommentCount="3" FavoriteCount="1" />
  <row Id="19991" PostTypeId="2" ParentId="19990" CreationDate="2010-11-19T07:36:13.923" Score="3" ViewCount="" Body="&lt;p&gt;Do more typing. You get better with practice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By all means use a typing tutor if you think it will help, but practice does help.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-11-19T07:36:13.923" CommentCount="3" />
  <row Id="19992" PostTypeId="2" ParentId="19987" CreationDate="2010-11-19T07:42:16.387" Score="17" ViewCount="" Body="&lt;p&gt;If you want to be stuck in the same place forever, then know .NET and forget everything else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because technology moves, as do development environments and languages, the developers need to move as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example (though I am a bit of an oddball), in 25 years I've actively used APL, BASIC (more varieties than I can remember), Fortran (several variants), C, C++, Pascal, Delphi, Ada, and a bunch more I can't even remember.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These have all been for large and complex projects. Then some of these were on operating systems (Windows, unix[es], linux, other strange proprietary OS's, IBM MVS/TSO, etc). And some have been on the bare-metal hardware (lots of embedded stuff), some had RTOS environment, some didn't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point I'm making here is - if you learn new things and move in new directions as the needs arise you will be more knowledgeable and more employable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The danger of learning one thing only is that obsolescence creeps up on you. There are not so many jobs these days for Fortran programmers - or buggy-whip makers :)&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-11-19T07:42:16.387" CommentCount="3" />
  <row Id="19993" PostTypeId="2" ParentId="19974" CreationDate="2010-11-19T07:51:30.907" Score="4" ViewCount="" Body="&lt;p&gt;When I code in Ruby, I use vim, and I feel good. I mean, I don't want or need any kind of autocompletion / code generation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other side, when, I code in Java, I use Eclipse (or Netbeans) and I could not work without it. I need to easily generate the getters/setters, the big try/catch block, I'm happy if the IDE can help me with the for each loop.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I wonder whether it isn't an attempt to work around some flaws in the language&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Ruby getter + setter + variable for my_var:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;attr_accessor :my_var&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Java getter + setter + variable for myVar:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private String myVar;&#xA;public String getMyVar() {&#xA;  return myVar;&#xA;}&#xA;public void setMyVar(String value) {&#xA;  myVar = value;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Yes, in Java, I &lt;strong&gt;need&lt;/strong&gt; to generate that code...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So... Is it an attempt to work around some flaws in the language ? I'm tempted to answer YES, but I might be too much biased...&lt;/p&gt;&#xA;" OwnerUserId="2365" LastEditorUserId="2365" LastEditorDisplayName="" LastEditDate="2010-11-19T07:58:06.377" LastActivityDate="2010-11-19T07:58:06.377" CommentCount="12" />
  <row Id="19994" PostTypeId="2" ParentId="19990" CreationDate="2010-11-19T08:10:10.023" Score="0" ViewCount="" Body="&lt;p&gt;Just make sure that you don't end up being able to type faster than you can think :-D &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thinking-speed is probably the limiting factor for most of us developers!&lt;/p&gt;&#xA;" OwnerUserId="598" LastActivityDate="2010-11-19T08:10:10.023" />
  <row Id="19995" PostTypeId="2" ParentId="19990" CreationDate="2010-11-19T08:10:54.613" Score="0" ViewCount="" Body="&lt;p&gt;I don't think you need formal training, just try and program little personal side projects and in time you will notice an improvement in your typing skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also in time you will notice that most of your programming does not consist in typing the code but thinking of the correct solution.&lt;/p&gt;&#xA;" OwnerUserId="6614" LastActivityDate="2010-11-19T08:10:54.613" />
  <row Id="19996" PostTypeId="2" ParentId="19974" CreationDate="2010-11-19T08:22:00.453" Score="7" ViewCount="" Body="&lt;p&gt;The difference between the IDE auto-generating some code and building that directly into the language is very simple: &lt;strong&gt;I can edit the code after the IDE generates it&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The IDE can generate some code template for a getter/setter, and then I am free to add additional functionality to that getter/setter as my requirements dictate. If the getter/setter was an integrated part of the language, then if I ever wanted to customize the behaviour, I'd have to write the getter/setter myself anyway...&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-11-19T08:22:00.453" CommentCount="2" />
  <row Id="19997" PostTypeId="2" ParentId="19990" CreationDate="2010-11-19T08:27:18.007" Score="11" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Need&lt;/em&gt;? No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would benefit from? Yes absolutely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developers need to be able to type fast or perhaps &quot;efficiently&quot; (that implies an adequate level of accuracy) - although much of what we type doesn't necessarily lend itself overly well to classic typing skills. I can sort of almost touch type - I don't need to look at the keyboard much... combination of various stalled attempts to learn (initially on a real typewriter!) and 30 years of practice teaching me where all the keys are... &lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-11-19T08:27:18.007" CommentCount="3" />
  <row Id="19998" PostTypeId="2" ParentId="19974" CreationDate="2010-11-19T08:34:40.870" Score="1" ViewCount="" Body="&lt;p&gt;For getters/setters, that is true for Java (which I guess is what you are talking about) since that language lacks properties as a language construct. The IDE can help you compensate for that somewhat.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-11-19T08:34:40.870" CommentCount="7" />
  <row Id="20000" PostTypeId="2" ParentId="19987" CreationDate="2010-11-19T08:49:54.360" Score="3" ViewCount="" Body="&lt;p&gt;There are two distinct sets of skills involved in being a developer:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The Generic relating to how to analyse, design and construct decent applications &lt;/li&gt;&#xA;&lt;li&gt;The specific relating to the toolset you use to implement those applications&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;There are - or certainly have been - people who exist at a level of &quot;coder&quot; and whose skillset is limited to a single language but, I think, progressively less so as any programmer is (or at least should be) expected to be more rounded.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have the former and an ability to adapt to new variations or alternative toolsets then you shouldn't have a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now I write .NET applications - have done for 8 years, will probably continue for a &lt;em&gt;long&lt;/em&gt; time... but in doing so I've also needed to understand HTML, SQL, XML, XSLT, and JavaScript amongst other things. I'm learning the wonders of jQuery and also of XAML. I'm looking at F# (amongst other things) because I might usefully be able to apply it. Neither the .NET framework nor the languages you can use are standing still. And I mustn't forget PowerShell...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prior to that was VB.OLD and some Turbo Pascal and prior to that a variety of stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also, over the past 25 years, looked at and learnt about a variety of different industries and businesses as I endeavour to learn the domains as I develop solutions for them. I also have a moderately decent understanding (though not to a sysadmin standard) systems and networks and making things talk to each other - simply from the need to be able to have the platforms to develop on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right here, right now, .NET is a vast and capable platform with decent languages and tools and as good a place to be employed as anywhere - more important (I think) are the broader skills, unit-testing, agile methodologies, application of patterns (understanding of good principals like inversion of control) and good practice (use of VCS and build servers and the like) - these are portable skills that need to be kept up to date as things develop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I could go on (in case you hadn't noticed) - but the simple answer is that so long as you grasp that you are a &quot;developer working on the .NET platform&quot; rather than a &quot;.NET developer&quot; (or worse a &quot;C# developer&quot;) you'll be fine.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-11-19T08:49:54.360" />
  <row Id="20001" PostTypeId="2" ParentId="19990" CreationDate="2010-11-19T08:50:45.507" Score="1" ViewCount="" Body="&lt;p&gt;Considering that &lt;a href=&quot;http://stackoverflow.com/questions/2894099/10-lines-of-code-per-day-is-the-global-average-true&quot;&gt;on average a developer produces only ~10 LOC per day&lt;/a&gt;, I'd say that your typing speed is &lt;strong&gt;not&lt;/strong&gt; that important. Hence, formal training is not needed.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-11-19T08:50:45.507" CommentCount="4" />
  <row Id="20002" PostTypeId="1" AcceptedAnswerId="20017" CreationDate="2010-11-19T08:55:05.273" Score="8" ViewCount="230" Body="&lt;p&gt;I work in a company that does web applications for various banks and some smaller e-shops&#xA;We employ about 20 developers and have 4-5 projects in development at any one time.&#xA;Our development teams don't interact much and a lot of the same problems are done in varied ways(good to bad). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was wondering if it would be a good idea for a company to have a team of programmers that do research on current frameworks and continually improve a common library of functions and a common framework to build current and future projects much faster and more efficiently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How large should a team like this be?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also should it have permanent members that train others or should it rotate people?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Update:&lt;/b&gt; I was thinking about a common project that people can work on for fun that might spark some interest. It seems that when people have job pressures the solutions they come up with are not the best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you&lt;/p&gt;&#xA;" OwnerUserId="6614" LastEditorUserId="6614" LastEditorDisplayName="" LastEditDate="2010-11-19T09:49:54.270" LastActivityDate="2010-11-19T21:54:57.813" Title="Should a software company have a dedicated team for research and/or utility libraries?" Tags="&lt;development-process&gt;" AnswerCount="7" FavoriteCount="1" />
  <row Id="20003" PostTypeId="2" ParentId="15781" CreationDate="2010-11-19T09:01:12.890" Score="1" ViewCount="" Body="&lt;p&gt;Everyone makes a big fuss about languages like Java being &quot;cross platform&quot; but what they are really talking about is that you can &lt;strong&gt;compile&lt;/strong&gt; once and run everywhere. Even in a language like Java (or C#/mono) you are going to still need abstraction layers to deal with OS specific details in some areas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++, and in fact most languages, are cross platform, you just have to compile to target each platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They key is the process rather than the tools/languages:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Make sure you have an integrated build process that builds and runs the unit tests for &lt;strong&gt;all target platforms&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Make sure every developer tests on all target platforms before checking in code - This obviously means making sure ever developer has access to the appropriate number of machines/vms.&lt;/li&gt;&#xA;&lt;li&gt;Abstract well. Abstract everything that calls into native apis. Write libraries that wrap these calls.&lt;/li&gt;&#xA;&lt;li&gt;If you are doing anything beyond fairly simple forms UI that just caters to the lowest common denominator, just accept that GUI code is not cross platform. Abstract your GUI/presentation layer out and code it separately for each platform. Yes there are cross platform GUI toolkits, which are fine for straight forward apps but if you are doing anything more advanced you will want to code to the native platform capabilities.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;These steps are the same no matter what language/toolset/framework you use.&lt;/p&gt;&#xA;" OwnerUserId="134" LastEditorUserId="134" LastEditorDisplayName="" LastEditDate="2010-11-19T09:16:27.917" LastActivityDate="2010-11-19T09:16:27.917" />
  <row Id="20004" PostTypeId="2" ParentId="19573" CreationDate="2010-11-19T09:13:23.473" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Missing user requirements&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;An important and difficult step of&#xA;  designing a software product is&#xA;  determining what the customer actually&#xA;  wants it to do.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Believe it or not sometimes this part is missing or is outdated.&#xA;What it comes to cost is that one creates functionalities that the end user never asked for. &lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-11-19T09:27:15.177" LastActivityDate="2010-11-19T09:27:15.177" CommentCount="1" />
  <row Id="20005" PostTypeId="2" ParentId="15781" CreationDate="2010-11-19T09:16:53.813" Score="0" ViewCount="" Body="&lt;p&gt;If you can make it a web app, make it a web app. Using toolkits like &lt;a href=&quot;http://www.sencha.com/products/js/&quot; rel=&quot;nofollow&quot;&gt;ExtJS&lt;/a&gt;, it's relatively easy to make good looking GUI-like cross-browser compatible user interfaces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, Java or QT+C++ or C+Wx are possible options to have one source for all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your second approach is appropriate if you want the app to look and feel native on every target platform. Native Mac apps look and feel different than native Windows apps, just using another skin and keybinds will not be enough to cover that.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-19T09:16:53.813" />
  <row Id="20006" PostTypeId="2" ParentId="20002" CreationDate="2010-11-19T09:20:39.020" Score="4" ViewCount="" Body="&lt;p&gt;My feeling is no.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I suspect you'd find if you did this is that instead of having individual teams producing libraries that no-one outside that team used, you'd have a specialised team producing libraries that no-one outside the team used (and doing so at considerable additional cost).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are assorted problems with the sort of team you describe, but for me the main on is that it doesn't address the issue you actually have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem you have is not who produces the libraries (by the sounds of things you already have many solutions to these problems so how is one more going to help?), it's that the teams aren't talking and interacting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are good reasons why teams don't reuse each others code (for instance that the problems while superficially similar are subtly different, or that the project timing just doesn't allow for the additional dependency of developing something together), but you need to look at how you can get them to interact when it is possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd suggest:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;rotate teams between projects&lt;/li&gt;&#xA;&lt;li&gt;hold inter team lunches and discussion groups&lt;/li&gt;&#xA;&lt;li&gt;post project reviews going over how problems were solved (attended by the other teams)&lt;/li&gt;&#xA;&lt;li&gt;set up an area of the wiki outlining code which might be reusable (and who to talk to about it)&lt;/li&gt;&#xA;&lt;li&gt;think about incentivising good re-use - seriously actually pay people extra for doing it.  If re-using a component saves 5 days and $2000 in costs, why not give $200 of what is now extra profit to the team for a night out at the end of the project (when you've validated the saving was genuine)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;A libraries team would be, I suspect, overhead with no benefit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of it being a common project that developers work on for fun - no company should rely on programmers working on things in their own time.  That's just unpaid overtime and is, in any case, not dependable as there will likely be large periods where no-one wants to work on things.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're saying it would be people working in company time between projects then maybe it can work but I still don't think it's the real problem.  You still need to work out how you're going to get people to use the libraries.  As I said, you already have solutions to these problems which are being developed on each project, your issue is why aren't they being shared.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-19T09:55:32.237" LastActivityDate="2010-11-19T09:55:32.237" />
  <row Id="20007" PostTypeId="2" ParentId="19990" CreationDate="2010-11-19T09:21:43.030" Score="0" ViewCount="" Body="&lt;p&gt;IMO you should be really good in typing, i.e. you should not have to think about the keyboard or look for keys. Formal training... well, I had to do that, and it sucked, because it was really unforgiving regarding typos; having something like 5 typos on a whole page of paper was enough to fail a test. The important thing is that I knew I had made those typos, but could not correct them (there was no correction key on the typewriter); it's like having a keyboard without a backspace key. I can only hope that this part has changed since.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-19T09:21:43.030" CommentCount="2" />
  <row Id="20008" PostTypeId="2" ParentId="4607" CreationDate="2010-11-19T09:25:54.480" Score="0" ViewCount="" Body="&lt;p&gt;A company I'm working for uses Java for the UI, and the application (a warehouse management system) sells really well. Sure, it's not exactly very pretty, but it gets the job done, is absolutely stable and the advantages easily justify this decision.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-19T09:25:54.480" CommentCount="2" />
  <row Id="20009" PostTypeId="2" ParentId="19974" CreationDate="2010-11-19T09:29:36.100" Score="3" ViewCount="" Body="&lt;p&gt;The Groovy language does exactly this, getters and setters are generated on the fly. But I must admit that too much magic always makes me wonder what the program really does, since there are too many things to keep in mind that happen behind the curtain. Explicit getters and setters, as generated by the IDE, make it a bit easier to follow the flow of the program.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-19T09:29:36.100" />
  <row Id="20010" PostTypeId="2" ParentId="19782" CreationDate="2010-11-19T09:31:51.623" Score="0" ViewCount="" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Job interviews are like a date between you and the compagny.&#xA;They're judging your professionnal skills and personnality and you're judging their stability or your possible carriere in it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So it's mostly based on human relationship. As any human relationship, your actions will have to target their interrest according to the general mood. It's something you need to feel and not do it automaticaly...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's said remember : &quot;Programmers are destinated to rule the world, users just don't see it yet... :D&quot;&lt;/p&gt;&#xA;" LastActivityDate="2010-11-19T09:31:51.623" />
  <row Id="20011" PostTypeId="2" ParentId="20002" CreationDate="2010-11-19T09:33:16.593" Score="3" ViewCount="" Body="&lt;p&gt;That is the job of an &lt;strong&gt;architect&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main responsibilities of a software architect include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Limiting the choices available during development by choosing a standard way of pursuing application development&lt;/li&gt;&#xA;&lt;li&gt;creating, defining, or choosing an application framework for the application&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Recognizing potential reuse in the organization&lt;/strong&gt; or in the application by Observing and understanding the broader system environment&lt;/li&gt;&#xA;&lt;li&gt;Creating the component design&#xA;Having knowledge of other applications in the organization&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Read more about: &#xA;- &lt;a href=&quot;http://en.wikipedia.org/wiki/Software_architect&quot; rel=&quot;nofollow&quot;&gt;Software architect&lt;/a&gt; &#xA;- &lt;a href=&quot;http://en.wikipedia.org/wiki/Solutions_Architect&quot; rel=&quot;nofollow&quot;&gt;Solutions Architect&lt;/a&gt;&#xA;- &lt;a href=&quot;http://en.wikipedia.org/wiki/Enterprise_architect&quot; rel=&quot;nofollow&quot;&gt;Enterprise architect&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-11-19T20:03:16.587" LastActivityDate="2010-11-19T20:03:16.587" CommentCount="2" />
  <row Id="20012" PostTypeId="2" ParentId="19987" CreationDate="2010-11-19T09:34:25.553" Score="3" ViewCount="" Body="&lt;p&gt;IMHO: Peter Norvig &lt;a href=&quot;http://norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;already answered&lt;/a&gt; this question much better than anyone else:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Learn at least a half dozen&#xA;  programming languages. Include one&#xA;  language that supports class&#xA;  abstractions (like Java or C++), one&#xA;  that supports functional abstraction&#xA;  (like Lisp or ML), one that supports&#xA;  syntactic abstraction (like Lisp), one&#xA;  that supports declarative&#xA;  specifications (like Prolog or C++&#xA;  templates), one that supports&#xA;  coroutines (like Icon or Scheme), and&#xA;  one that supports parallelism (like&#xA;  Sisal).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="7968" LastActivityDate="2010-11-19T09:34:25.553" CommentCount="7" />
  <row Id="20013" PostTypeId="2" ParentId="19987" CreationDate="2010-11-19T09:43:43.560" Score="13" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;“is knowing .NET development&#xA;  environment enough for a successful&#xA;  carrier in IT industry”. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You probably can have &lt;em&gt;a career&lt;/em&gt; knowing only .NET, but this attitude is the antithesis of the attitude every single good or successful developer I have ever met has had.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good developers are curious, good developers are always hungry to learn new ways of doing things, new technologies, new techniques. The accumulation of knowledge and knowhow is catnip to good developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad developers don't want to learn new stuff, keep within their comfort zone, put a box around the limits of what they are prepared to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the answer, again is no. Not because there is anything wrong with .NET (the answer would be the same whichever technology was mentioned) but because of the attitude inherent in the question.&lt;/p&gt;&#xA;" OwnerUserId="4757" LastActivityDate="2010-11-19T09:43:43.560" CommentCount="6" />
  <row Id="20014" PostTypeId="2" ParentId="19851" CreationDate="2010-11-19T09:50:55.720" Score="2" ViewCount="" Body="&lt;p&gt;In my experience most conflicts of this nature come down to personality clashes.  Some of them have other elements but most commonly these are just being used as a vehicle for disagreement so even if you resolve the issue that they're arguing about, it's just a matter of time before something else comes up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) The first thing is to make it clear to both of them that conflicts reflect badly on both of them and that there isn't going to be a winner and a loser, just two losers of varying degrees.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Make it clear to them that whatever happens you expect both of them to act in a professional manner.  They don't need to like each other but they do have to be civil, efficient and organised.  Make sure that it's reflected in their annual appraisals and reviews - inability to get on with a team mate is a significant issue with their performance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Do listen to their issues with one another and where appropriate be sympathetic but also point out their failings in this area and avoid getting drawn into extended discussions or some judgement about who is right and who is wrong.  As I said above in 95% of cases (the remaining 5% being genuine bullying or the like which needs to be properly addressed as a disciplinary matter), they've both wrong and they need to understand that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) Where possible do keep them apart where it's easy to do so.  I don't generally find that throwing people together does anything more than stir it up.  If they're going to &quot;reconcile&quot; it will happen anyway and I suspect is more likely to happen when they're not continually in each others faces.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-19T09:50:55.720" />
  <row Id="20015" PostTypeId="2" ParentId="1018" CreationDate="2010-11-19T09:56:12.360" Score="0" ViewCount="" Body="&lt;p&gt;I would have been playing Cricket in the National team may be, who knows. Before joining Engineering I used to play a lot and was pretty good at bowling.&lt;/p&gt;&#xA;" OwnerUserId="6693" LastActivityDate="2010-11-19T09:56:12.360" />
  <row Id="20017" PostTypeId="2" ParentId="20002" CreationDate="2010-11-19T09:59:29.503" Score="10" ViewCount="" Body="&lt;p&gt;One important point is that it's impossible to develop a good framework in total isolation. Good frameworks are &lt;em&gt;organically grown&lt;/em&gt;: when a programmer notices that he needs some specific functionality, he adds it to the framework, and so the framework grows little by little - as opposed to architecting a &quot;perfect framework&quot; up front, which never works, because the architect can't be aware of all eventually turning up use cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, organically growing the framework has the downside that its internal integrity might not be too good, and it turns into spaghetti. If your team keeps up good internal communication, then you might be able to combine the best of both worlds: a separate architect team keeping up the integrity of the framework, but building for &lt;em&gt;real needs&lt;/em&gt; of the end users (developers).&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-11-19T09:59:29.503" CommentCount="3" />
  <row Id="20018" PostTypeId="2" ParentId="19782" CreationDate="2010-11-19T10:04:36.767" Score="5" ViewCount="" Body="&lt;p&gt;I would say yes if it comes naturally, but the biggest thing to consider whenever using humour is to know your audience. Don't be inappropriate, don't make them uncomfortable. Here's an example of how not to do it from my life:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interviewer: Why did you leave your previous job after just two months?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: I had some personal family issues to deal with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interviewer: I see. Are they likely to be a problem again in the future?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me: Well, my grandmother can only die once!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*tumbleweed*&lt;/p&gt;&#xA;" OwnerUserId="7767" LastActivityDate="2010-11-19T10:04:36.767" />
  <row Id="20019" PostTypeId="2" ParentId="19987" CreationDate="2010-11-19T10:18:50.000" Score="2" ViewCount="" Body="&lt;p&gt;First things - timescale.  .NET isn't going to last you 40 years but you'll find that it will relatively naturally segway into something else as it dies so I'll assume you mean &quot;is knowing .NET enough while .NET is around&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It depends how you define successful.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you mean will you make plenty of money, get to do some interesting work and work at some OK companies with decent people then yes.  MS technologies tend to &quot;cluster&quot; in that companies will often use a full MS platform so .NET alone will cover a massive chunk of their needs and you can make a career out of it and many people will.  In addition whatever you may read about the decline of MS they're still very much alive and not going anywhere fast so there are going to be plenty of opportunities for the foreseeable future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However you will probably find that you'd benefit as a programmer from seeing a bit more than just the way MS do things and that it might give you deeper understanding of what you're doing, even if you do decide to bring that experience back to working as a .NET developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So can you be successful - yes.  Could you potentially be more successful and maybe happier if you saw what else was out there - again, yes.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-19T10:18:50.000" />
  <row Id="20020" PostTypeId="2" ParentId="19987" CreationDate="2010-11-19T10:27:40.853" Score="4" ViewCount="" Body="&lt;p&gt;A lot of these answers have focused on the question of programming languages.  And I agree, there will be few successful programmers that only learn one language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the question seems to me more about programming worlds.  And you can live successfully in within a world.  If your goal is to do Microsoft programming, you really don't need to know Java and the related frameworks.  But you might need to move from VB to C# to F#, etc.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-19T12:53:44.273" LastActivityDate="2010-11-19T12:53:44.273" CommentCount="1" />
  <row Id="20021" PostTypeId="1" AcceptedAnswerId="20062" CreationDate="2010-11-19T10:41:29.760" Score="4" ViewCount="180" Body="&lt;p&gt;Little background:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've always been kind of a Microsoft hater. A while ago just the fact of learning a something like C# scared me. I was only interested in opensource project and programming languages. Wasn't impressed with vista(actually I hated vista), so I went back to XP Pro. I had to use Windows because some software I use/used wasn't available for linux. Then came windows 7 and before even trying/using it I already judge it to be a 'insert insult here'. I kept hearing really good stuff about it so I removed XP and install windows 7. After using it just for maybe 2, 3 days I started to really like it. Now I like it a lot actually. It even has these small features that may feel irrelevant to someone (like being able to arrange the windows' in the taskbar) which are very useful to me (I used to open programs in a specific order, even close some and reopen just to rearrange them).&#xA;Actual question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I think more and more about learning .NET and C#. I also seen PowerShell which looks tempting. Call me an idiot but I kind of feel weird about this. It almost feels like I'm betraying someone. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you ever been in a similar situation? &lt;/p&gt;&#xA;" LastActivityDate="2010-11-19T17:12:34.400" Title="Have you ever hated a framework/programming language/platform but you eventually became curious in learning ?" Tags="&lt;open-source&gt;&lt;.net&gt;&lt;advice&gt;&lt;windows&gt;" AnswerCount="5" CommentCount="7" />
  <row Id="20022" PostTypeId="2" ParentId="19783" CreationDate="2010-11-19T10:41:31.120" Score="1" ViewCount="" Body="&lt;p&gt;I am currently trying to switch from NetBeans to vim. Learning vim takes time and practice, but I see its advantages over, let's call them, &quot;GUI editors&quot; for certain cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, unlike you, I am coding mostly Ruby, and I don't need all that code-generating, auto-completion, refactor-my-code black magic that NetBeans and Eclipse offer. If I were coding Java or C# I would most certainly not try to switch at all.&lt;/p&gt;&#xA;" OwnerUserId="7968" LastActivityDate="2010-11-19T10:41:31.120" CommentCount="1" />
  <row Id="20023" PostTypeId="1" AcceptedAnswerId="20299" CreationDate="2010-11-19T10:43:15.487" Score="4" ViewCount="941" Body="&lt;p&gt;When I started using Java in the nineties, it was all &quot;&lt;em&gt;Write once, run anywhere!&lt;/em&gt;&quot; from day one. That was probably all true then and I was a part of the choir as well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not sure what to think about that anymore, considering all the other languages using multi platform runtimes (python, flash, perl, html, php...). But I am still seeing lots of arguments that says you should use Java because it is supposedly better for cross platform development. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, &lt;strong&gt;Is that still true today? Is Java still the language of choice for multi platform development?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Please be specific with focus on cross platform aspects.&lt;/li&gt;&#xA;&lt;li&gt;I am not asking for general language feature comparisons.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Update: Great responses so far! Most answers seems to be favoring Java or web. Any input from the script crowd?&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-11-20T17:04:44.610" LastActivityDate="2011-02-14T17:29:18.983" Title="Is Java (still) the cross platform language of choice?" Tags="&lt;programming-languages&gt;&lt;java&gt;&lt;cross-platform&gt;" AnswerCount="8" CommentCount="1" FavoriteCount="1" />
  <row Id="20024" PostTypeId="2" ParentId="20023" CreationDate="2010-11-19T10:53:34.807" Score="7" ViewCount="" Body="&lt;p&gt;It's as true today as it was back then - that is to say not entirely.  Java is write once, test and debug everywhere.  Sure that's a lot less work than a completely fresh port but it's generally more work than the initial hype had us believe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our product has a Java server which will run on either Windows or Linux but we have seen OS specific issues with it and make sure we have both Linux and Windows servers available for support / testing if needed.  Java UIs tend to have more issues than the servers (though many are cosmetic and therefore potentially can be ignored depending on the application).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While not strictly a language for me the web is the cross platform platform of choice.  An HTML / JavaScript front end means that your application will run on pretty much any client platform and in most instances that was the real goal - not having to worry whether it was a Mac or a PC, which OS version and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course you'll generally still be dictating the server platform but when it's just that people become a lot more flexible, particularly these days when most companies already support a mix of Windows and Linux servers.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-19T10:53:34.807" CommentCount="6" />
  <row Id="20026" PostTypeId="1" AcceptedAnswerId="20034" CreationDate="2010-11-19T11:21:21.363" Score="4" ViewCount="200" Body="&lt;p&gt;I have recently gotten myself into researching why a particular website is slow-loading. I found out that if a website requires multiple image/css/js files, each one will be requested more or less in series, suffering the roundtrip time multiple times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This just doesn't make any sense to me. Why would browsers restrict themselves to serial loading? Why would people be spending lots of time coming up with &lt;a href=&quot;http://css-tricks.com/css-sprites/&quot; rel=&quot;nofollow&quot;&gt;various&lt;/a&gt; &lt;a href=&quot;http://limi.net/articles/resource-packages&quot; rel=&quot;nofollow&quot;&gt;workarounds&lt;/a&gt;? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Isn't the obvious answer already staring everyone in the face: just load them in parallel?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Obviously it can't be for some reason, else it would already be the case. The question is &lt;strong&gt;why&lt;/strong&gt; can't browsers load all files it knows it will need in parallel?)&lt;/p&gt;&#xA;" OwnerUserId="3278" LastActivityDate="2010-11-19T12:23:30.267" ClosedDate="2010-11-19T21:05:35.040" Title="Why don't browsers perform more requests in parallel?" Tags="&lt;programming&gt;&lt;browser&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="1" />
  <row Id="20027" PostTypeId="2" ParentId="20023" CreationDate="2010-11-19T11:23:48.100" Score="0" ViewCount="" Body="&lt;p&gt;If you bring mobile platforms into the mix then you'd also at least need to include recompile. E.g. android, j2me.&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-19T11:23:48.100" />
  <row Id="20028" PostTypeId="2" ParentId="20026" CreationDate="2010-11-19T11:27:40.007" Score="1" ViewCount="" Body="&lt;p&gt;Your OS is limiting the number of simultaneous http thread per applications. I think it's two by default for internet explorer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll get more answers and higher quality if you ask on stackoverflow&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-19T11:27:40.007" CommentCount="2" />
  <row Id="20029" PostTypeId="2" ParentId="19783" CreationDate="2010-11-19T11:31:01.757" Score="1" ViewCount="" Body="&lt;p&gt;As a long-time user of emacs, I find emacs quite comfortable as an editing and development environment (and to some extent, it also integrates with build process, version control, quick context-sensitive search and the like, so I guess that qualifies it as an &quot;IDE&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm also realtively comfortable with using vi and vi-like editors (I started out using ed, because I thought emacs was too complex; in retrospect that is backwards, but it did give me a solid foundation for future learning of vi). I use vi primarily for &quot;small quick edits&quot;, primarily on remote machines where emacs isn't installed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For your &quot;I do on occasion need to ssh into server and mess around with config files; for this I use vi&quot; scenario, I'd recommend a small set of commands and some general thoughts around vi:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Vi isn't modal, it has &quot;a&quot; (append), &quot;A&quot; (append at end of line), &quot;i&quot; (insert) and &quot;I&quot; (insert at start of line) commands, taking the text to insert as an argument and signalling &quot;end-of-command&quot; with Esc&lt;/li&gt;&#xA;&lt;li&gt;h, j, k and l are movement keys. It MAY work using the arrow keys, but as the typical VT-style &quot;I am an arrow key&quot; sequence starts with Esc, this will break the text-insertion command you're not thinking of&lt;/li&gt;&#xA;&lt;li&gt;:&lt;em&gt;linenum&lt;/em&gt; moves you to line &lt;em&gt;linenum&lt;/em&gt;, line 1 is the top-most line and line $ is the bottom-most one&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;.&lt;/strong&gt; is the &quot;repeat last command&quot; command (see the first bullet point)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It shouldn't take more than an hour or two of playing around with vi to be at the &quot;I can confidently edit a text file, but I may not be efficient with it&quot; and that's as good as you'll probably need to be. Failing that, any editor that doesn't faff about auto-converting between tabs and spaces should be &quot;good enough&quot; for your purposes. If Eclipse is installed on &lt;em&gt;all&lt;/em&gt; your remote servers, I don't see using that as a big problem, really.&lt;/p&gt;&#xA;" OwnerUserId="5084" LastActivityDate="2010-11-19T11:31:01.757" CommentCount="1" />
  <row Id="20030" PostTypeId="2" ParentId="19782" CreationDate="2010-11-19T11:37:51.140" Score="1" ViewCount="" Body="&lt;p&gt;When I went for my very first interview my CV was being thoroughly checked and they spotted some random certificate that I had.  They asked me what it was and I openly said to them &quot;I basically talked about sex for 4 months and managed to score a certificate from it&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They found it hilarious and they hired me.  They are a &lt;em&gt;very&lt;/em&gt; large company.  Interviewers are human too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(of course the rest of the interview contributed to me being employed by said company)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="4042" LastActivityDate="2010-11-19T11:37:51.140" />
  <row Id="20031" PostTypeId="2" ParentId="19974" CreationDate="2010-11-19T11:44:43.603" Score="2" ViewCount="" Body="&lt;p&gt;Code generation from a &lt;a href=&quot;http://en.wikipedia.org/wiki/Domain-specific_language&quot; rel=&quot;nofollow&quot;&gt;Domain-Specific Language&lt;/a&gt;, to let you focus on writing what matters, is good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code generation from an IDE, to create &lt;a href=&quot;http://en.wikipedia.org/wiki/Boilerplate_%28text%29#In_object-oriented_programming&quot; rel=&quot;nofollow&quot;&gt;boiler-plate code&lt;/a&gt;, is a sign the language sucks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;Your specific example - generating getters and setters* certainly shows a language problem.&lt;br&gt;&#xA;You should only be writing a getter/setter if it &lt;em&gt;does something&lt;/em&gt; - but if it's generic that doesn't mean you let the IDE generate it, it means you don't need it in the code at all. (Don't waste developer brain power figuring out if a function is generic or if it has a subtle difference - just leave the 'empty' functions out.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;Oh, and whilst technically IDE-based code generation, snippets/templates, - i.e. typing &lt;code&gt;fpubstr&lt;/code&gt; and getting &lt;code&gt;public string function( )&lt;/code&gt; or equivalent - is also a form of immediate DSL-based generation, and thus a good thing (an actual language which had commands like &lt;code&gt;fpubstr&lt;/code&gt;/&lt;code&gt;fpubint&lt;/code&gt;/&lt;code&gt;fprvint&lt;/code&gt; would be horrible to read).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;&lt;sub&gt;* Ignoring temporarily that getters and setters are more than likely a sign of &lt;strong&gt;bad OO&lt;/strong&gt; design.&lt;/sub&gt;&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-11-19T11:44:43.603" CommentCount="1" />
  <row Id="20032" PostTypeId="2" ParentId="20026" CreationDate="2010-11-19T11:56:27.687" Score="1" ViewCount="" Body="&lt;p&gt;It's good &lt;a href=&quot;http://en.wikipedia.org/wiki/Netiquette&quot; rel=&quot;nofollow&quot;&gt;Netiquette&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Browsers are set-up this way so they won't hammer the server they visit with multiple parallel requests. If they don't respect that, chances are that they will receive an error if they stumble upon a server that monitors the number of requests per IP.&lt;/p&gt;&#xA;" OwnerUserId="6235" LastActivityDate="2010-11-19T11:56:27.687" CommentCount="2" />
  <row Id="20034" PostTypeId="2" ParentId="20026" CreationDate="2010-11-19T12:13:25.020" Score="5" ViewCount="" Body="&lt;p&gt;There are two limitation, one from HTTP 1.1 Specification and one from half-open TCP/IP connections.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HTTP 1.1 Specification&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Clients that use persistent connections should limit the number of simultaneous connections that they maintain to a given server. A single-user client should not maintain more than 2 connections with any server or proxy&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.testingreflections.com/node/view/6830&quot; rel=&quot;nofollow&quot;&gt;More info.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Half-open TCP/IP&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Microsoft enforces a limit on half-open TCP/IP connections that is hard-coded in tcpip.sys. The maximum simultaneous half-open (incomplete) outbound TCP connection attempts per second that the system can make is intended to limit the spread of malicious viruses and worms, as well as limit the possibility of launching a DDoS attack. However, it has proven to also limit some applications using many TCP connections, such as P2P and P2PTV programs.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The limit in Windows XP (SP2) is 10&#xA;  incomplete concurrent connection&#xA;  attempts per second. In Windows Vista,&#xA;  the default limit differs, depending&#xA;  on the edition - ranging from 2&#xA;  half-open connections in Vista Home&#xA;  Basic, to 25 in Vista Ultimate.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.speedguide.net/articles/windows-vista-tcpipsys-connection-limit-patch-for-2744&quot; rel=&quot;nofollow&quot;&gt;More info.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-11-19T12:23:30.267" LastActivityDate="2010-11-19T12:23:30.267" CommentCount="1" />
  <row Id="20035" PostTypeId="2" ParentId="20023" CreationDate="2010-11-19T12:25:37.193" Score="0" ViewCount="" Body="&lt;p&gt;Java will perform significantly better than the other languages you mentioned, because it is compiled into byte-code, rather than interpreted.  This is now, and has always been the big difference between Java, Python, Ruby, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The others are much more popular now, because better machines have made the performance issues less significant.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-11-19T12:25:37.193" CommentCount="5" />
  <row Id="20036" PostTypeId="1" AcceptedAnswerId="20096" CreationDate="2010-11-19T12:36:08.917" Score="31" ViewCount="1525" Body="&lt;p&gt;I've been hearing a lot of enthusiasm about functional programming languages lately, with regards to Scala, Clojure, and F#.  I've recently started studying Haskell, to learn the FP paradigm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love it, it's really fun, and fits my math background.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But will it ever really matter?  Obviously, it's hardly a new idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's my questions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What has contributed to the recent FP enthusiasm?  Is is merely boredom with OO, or has something changed to make FP more needed than before?&lt;/li&gt;&#xA;&lt;li&gt;Is this indicative of a FP future?  Or is this a fad, like object orient databases?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In other words, can anyone help me understand where this comes from and where it might be going?&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-11-20T11:46:32.860" Title="Why the current enthusiasm for Functional Programming?" Tags="&lt;functional-programming&gt;&lt;paradigms&gt;&lt;trends&gt;" AnswerCount="14" CommentCount="7" FavoriteCount="14" />
  <row Id="20037" PostTypeId="2" ParentId="15159" CreationDate="2010-11-19T12:45:25.700" Score="1" ViewCount="" Body="&lt;p&gt;I use the strong typed Page reference template from this article:  &lt;a href=&quot;http://blog.devarchive.net/2008/01/auto-generate-strong-typed-navigation.html&quot; rel=&quot;nofollow&quot;&gt;http://blog.devarchive.net/2008/01/auto-generate-strong-typed-navigation.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6980" LastActivityDate="2010-11-19T12:45:25.700" />
  <row Id="20038" PostTypeId="1" AcceptedAnswerId="20083" CreationDate="2010-11-19T12:49:55.573" Score="1" ViewCount="365" Body="&lt;p&gt;For any company that has made it onto a &quot;Best Companies to Work For&quot; list* in 2010 that hires programmers, what restrictions on web usage do they have in place?  Does that company view unrestricted internet access as a benefit to their employees even if they might use it for non-work related reasons?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can provide a link to back up this information, even better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(* I don't want to promote any specific publication, but they are easy enough to find.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My hypothesis is that a company that aspires to be one of the best needs to provide fairly unrestricted internet access and I'm trying to test it.&lt;/p&gt;&#xA;" OwnerUserId="6980" LastEditorUserId="6980" LastEditorDisplayName="" LastEditDate="2010-11-19T14:30:09.533" LastActivityDate="2011-02-10T05:21:05.933" Title="Web Usage Policies at &quot;Best Companies to Work For&quot;" Tags="&lt;work-environment&gt;&lt;benefits&gt;" AnswerCount="5" CommentCount="3" />
  <row Id="20039" PostTypeId="2" ParentId="20023" CreationDate="2010-11-19T12:51:45.320" Score="2" ViewCount="" Body="&lt;p&gt;I think you have those choices:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) use either a&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;compiled or&lt;/li&gt;&#xA;&lt;li&gt;interpreted&#xA;language.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;2) How will you package and deliver your code?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;One &quot;front-end&quot;, one binary/script?&lt;/li&gt;&#xA;&lt;li&gt;One &quot;front-end&quot;, multiple binaries/scripts?&lt;/li&gt;&#xA;&lt;li&gt;Multiple &quot;front-ends&quot;, multiple binaries/scripts?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Those choices affect performance, soure code visibility and distribution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you mind giving away your source code? Compiled languages might be for you.&#xA;Compiled languages seem to perform better in micro-benchmarks than interpreted (even JITed) languages. Also if you depend on a runtime environment like Java, Python, Ruby etc your code might be harder to distribute.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found that most popular cross-platform desktop applications go for &quot;One front-end, multiple binaries&quot; using C/C++ and a crosss-platform widget library, e.g.Audacity, Blender, Firefox, Google Earth, OpenOffice, Skype, Songbird, Stellarium, VLC.&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-11-19T12:56:45.423" LastActivityDate="2010-11-19T12:56:45.423" CommentCount="2" />
  <row Id="20040" PostTypeId="1" AcceptedAnswerId="20043" CreationDate="2010-11-19T12:57:52.383" Score="2" ViewCount="168" Body="&lt;p&gt;For blackberry GUI developement.  I am using the name convention like backButtonField and some of my colleagues are using btnBack.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But sometimes I stuck with the names like loginVerticalFieldManager its a very long name.  At that time vfmLogin looks better&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for GUI components names what convention should I follow?&lt;/p&gt;&#xA;" OwnerUserId="7826" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-19T13:18:57.973" LastActivityDate="2010-12-23T13:11:26.383" Title="btnBack vs backButtonField" Tags="&lt;coding-standards&gt;&lt;code&gt;" AnswerCount="7" />
  <row Id="20041" PostTypeId="2" ParentId="19990" CreationDate="2010-11-19T13:00:06.940" Score="0" ViewCount="" Body="&lt;p&gt;Like anything in programming, if you can't figure it out on your own, get some help. You may spend less time on SO sites ;)&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-19T13:00:06.940" />
  <row Id="20042" PostTypeId="2" ParentId="20023" CreationDate="2010-11-19T13:01:53.917" Score="6" ViewCount="" Body="&lt;p&gt;While Java may not be &lt;em&gt;the&lt;/em&gt; or &lt;em&gt;the only viable&lt;/em&gt; cross-platform tool, it has some strengths:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's extremely fast.&lt;/li&gt;&#xA;&lt;li&gt;It's extremely robust.&lt;/li&gt;&#xA;&lt;li&gt;It's extremely portable (e.g. bytecode compiled 10 years ago in Windows 95 runs fine in OS X today).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and some weaknesses:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Core GUI libraries (Swing...) are showing their age (3rd party additions help here).&lt;/li&gt;&#xA;&lt;li&gt;The language itself could be less verbose (e.g. checked exceptions...).&lt;/li&gt;&#xA;&lt;li&gt;Startup time could be snappier (although it's improving all the time).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;When talking specifically about Java the &lt;em&gt;platform&lt;/em&gt;, there's one point more:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;There are &lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_JVM_languages&quot; rel=&quot;nofollow&quot;&gt;quite a few&lt;/a&gt; languages that run on the JVM and &lt;em&gt;interoperate&lt;/em&gt; with Java.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-11-20T06:58:05.750" LastActivityDate="2010-11-20T06:58:05.750" CommentCount="3" />
  <row Id="20043" PostTypeId="2" ParentId="20040" CreationDate="2010-11-19T13:02:11.593" Score="7" ViewCount="" Body="&lt;p&gt;I would say use &lt;strong&gt;btnBack&lt;/strong&gt; instead of backButtonField. Even I at the other side of the world recognize that type of notation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt;&#xA;However there is no right or wrong as long as all members in the team agree to write the same notation.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-11-19T13:07:46.660" LastActivityDate="2010-11-19T13:07:46.660" CommentCount="1" />
  <row Id="20044" PostTypeId="2" ParentId="19673" CreationDate="2010-11-19T13:12:52.690" Score="0" ViewCount="" Body="&lt;p&gt;M-x help-with-tutorial&lt;/p&gt;&#xA;" OwnerUserId="5084" LastActivityDate="2010-11-19T13:12:52.690" />
  <row Id="20045" PostTypeId="2" ParentId="7286" CreationDate="2010-11-19T13:17:36.100" Score="0" ViewCount="" Body="&lt;p&gt;Order for product design and code base management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Chaos for process and hardware/real-life resources management.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-11-19T13:17:36.100" />
  <row Id="20046" PostTypeId="2" ParentId="20036" CreationDate="2010-11-19T13:19:46.260" Score="2" ViewCount="" Body="&lt;p&gt;In &lt;a href=&quot;http://blip.tv/file/1317881&quot; rel=&quot;nofollow&quot;&gt;this talk&lt;/a&gt; Anders Hejlsberg explains his view on the topic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[EDIT]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry, the link was wrong. Now it points to the right place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Extremely short summary of some points of the one-hour-talk:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Functional languages allow for a more declarative style of programming than procedural languages, so programs written in FLs usually concentrate more on the &lt;em&gt;what&lt;/em&gt; instead of the &lt;em&gt;how&lt;/em&gt;. Because of their elegant mathematical structure FLs are also easier to optimize and transform by compilers, which also enables easy meta-programming and the construction of embedded DSLs. All this together makes funtional programs more succinct and self-documenting than procedural programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, in the face of the manycore era of the near future, programming languages need to be able to utilize multi threading/processing in different ways. Multi threading on single core machines was in effect a time sharing mechanism, and the architecture of systems reflected this. Multi threading on manycore machines will be very different. Funcional languages are especially suitable for parallelization, since they mostly avoid state, so one needn't worry as much about the integrity of shared mutable data (because there tend to be no shared mutable data). &lt;/p&gt;&#xA;" OwnerUserId="7243" LastEditorUserId="7243" LastEditorDisplayName="" LastEditDate="2010-11-20T11:46:32.860" LastActivityDate="2010-11-20T11:46:32.860" CommentCount="3" />
  <row Id="20047" PostTypeId="1" CreationDate="2010-11-19T13:20:18.663" Score="2" ViewCount="383" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/870/if-you-could-only-have-one-programming-related-book-on-your-bookshelf-what-would&quot;&gt;If you could only have one programming related book on your bookshelf what would it be and why?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;There is a lot of knowledge in books, especially for programming. And as there are many aspects of programmers, so can the books be categorized in the same fashion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what set of books must every programmer have? I'm not talking about specific titles, but &lt;em&gt;kinds&lt;/em&gt; of books such as books for debugging, planning, algorithms, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking for answers such as &quot;You must have at least one good book for debugging, one for development methodologies, one for team management, ...&quot;.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-11-19T15:21:52.053" ClosedDate="2010-11-19T15:17:26.313" Title="What set of books must every programmer have?" Tags="&lt;books&gt;" AnswerCount="8" CommentCount="1" FavoriteCount="2" />
  <row Id="20048" PostTypeId="2" ParentId="20036" CreationDate="2010-11-19T13:24:20.907" Score="13" ViewCount="" Body="&lt;p&gt;In the late 80ies/early 90ies computers became powerful enough for Smalltalk-style OOP. Nowadays computers are powerful enough for FP.&#xA;FP is programming at a higher-level und thus often - while more pleasant to program in - not the most efficient way do solve a certain problem. But computers are so fast that you don't care.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Multi-core prorgamming can be easier with purely functional programming languages since you are forced to isolate state-changing code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also programming language borders are blurred today. You don't have to give up one paradigm if you want to use another. You can do FP in most popular languages so the entry barrier is low.&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-11-19T14:14:29.303" LastActivityDate="2010-11-19T14:14:29.303" CommentCount="5" />
  <row Id="20049" PostTypeId="2" ParentId="19990" CreationDate="2010-11-19T13:26:03.933" Score="1" ViewCount="" Body="&lt;p&gt;If it's holding back your productivity, than it would be useful to get some training. I type a tad faster than I can think (30-40wpm), so I don't think I really need to learn to type any faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I made myself learn to type properly. Not touch typing, but just using all my fingers. That alone will help speed considerably. If you only use thumb and 2-3 fingers, I'd highly reccommend that you try to learn to use the others as well. It will slow you down at first, but speed you up in the long run. It's like multithreading - more processes mean faster processing!&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-19T13:26:03.933" CommentCount="0" />
  <row Id="20050" PostTypeId="2" ParentId="20047" CreationDate="2010-11-19T13:34:48.590" Score="0" ViewCount="" Body="&lt;p&gt;Design patterns&lt;/p&gt;&#xA;" OwnerUserId="7670" LastActivityDate="2010-11-19T13:34:48.590" />
  <row Id="20051" PostTypeId="2" ParentId="20036" CreationDate="2010-11-19T13:36:31.037" Score="1" ViewCount="" Body="&lt;p&gt;Functional programming gives me the same tingling sense of &quot;&lt;em&gt;wow, this is new&lt;/em&gt;&quot; as when I first started dabbling with objects years ago. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realize that FP is not a new concept by far, but neither was OO when it got its real break  in the nineties when &quot;everyone&quot; suddenly jumped ship from procedural programming. This was largely due to the timely success of Java and later C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I imagine the same thing will happen with FP eventually once the next batch of languages starts spreading in the same way. Much as they already have, at least in some circles, with languages like Scala and F#.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-11-19T13:36:31.037" CommentCount="1" />
  <row Id="20052" PostTypeId="2" ParentId="20040" CreationDate="2010-11-19T13:37:46.627" Score="3" ViewCount="" Body="&lt;p&gt;Avoid non-standard abbreviations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Button -&gt; btn is arguably ok (some people will disagree with that).&lt;br&gt;&#xA;VerticalFieldManager -&gt; vfm is definitely not (I thought it was was Visual Form or something). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(WTF is a Vertical Field Manager anyway - possibly sounds like a stupid way of saying &quot;Column&quot;?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;Definitely the element type should be a &lt;em&gt;suffix&lt;/em&gt;, not a prefix.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So &lt;code&gt;BackButton&lt;/code&gt; (or &lt;code&gt;BackBtn&lt;/code&gt;) and so on.&lt;/p&gt;&#xA;" OwnerUserId="89" LastActivityDate="2010-11-19T13:37:46.627" />
  <row Id="20053" PostTypeId="2" ParentId="20036" CreationDate="2010-11-19T13:37:53.593" Score="2" ViewCount="" Body="&lt;p&gt;I think it is to do with the close correlation between the functional programming paradigm and programming for the web. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ruby on Rails brought the whole functional programming approach into sharp relief since it offered a very quick path to a functional (heh heh) web application. There is &lt;a href=&quot;http://stackoverflow.com/questions/292033/is-functional-programming-relevant-to-web-development/292280#292280&quot;&gt;an interesting discussion on SO&lt;/a&gt; about this, and one particular answer stands out:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Functional programming matches web&#xA;  apps very well. The web app recieves a&#xA;  HTTP request and produces a HTML&#xA;  result. This could be considered a&#xA;  function from requests to pages.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Compare with desktop apps, where we&#xA;  typically have a long running process,&#xA;  a stateful UI and dataflow in several&#xA;  directions. This is more suited to OO&#xA;  which is concerned about objects with&#xA;  state and message passing.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Given that functional programming has been around for ages, I wonder why I don't see many job adverts looking for Lisp developers for greenfield web projects. &lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-19T13:37:53.593" CommentCount="4" />
  <row Id="20054" PostTypeId="2" ParentId="20047" CreationDate="2010-11-19T13:40:28.773" Score="1" ViewCount="" Body="&lt;p&gt;For SQL: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Joe Celko's SQL for Smarties: Advanced SQL Programming&lt;/p&gt;&#xA;" OwnerUserId="3784" LastActivityDate="2010-11-19T13:40:28.773" />
  <row Id="20057" PostTypeId="2" ParentId="20047" CreationDate="2010-11-19T13:43:30.587" Score="0" ViewCount="" Body="&lt;p&gt;Software Craftsmanship&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Testing&lt;/p&gt;&#xA;" OwnerUserId="2044" LastActivityDate="2010-11-19T13:43:30.587" />
  <row Id="20058" PostTypeId="2" ParentId="20038" CreationDate="2010-11-19T13:53:45.063" Score="4" ViewCount="" Body="&lt;p&gt;I believe my company made it to a Best list for 2010 --  we allow &quot;limited&quot; personal use with the exception of large amounts of streaming media, no social networking, and no restricted categories (adult, drugs, etc). For the most part, we do little to no investigation of user use &lt;em&gt;unless&lt;/em&gt; they provide prior reason (such as getting a virus). It's pretty laid back.&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-11-19T13:53:45.063" CommentCount="1" />
  <row Id="20059" PostTypeId="2" ParentId="20036" CreationDate="2010-11-19T13:58:35.637" Score="19" ViewCount="" Body="&lt;p&gt;One of the major problems when programming traditional languages like C, Java, C#, assembler etc. is that you have an awkward &lt;em&gt;sequence&lt;/em&gt; of steps you have to take in order to accomplish a given task because you need to have prepared all the dependencies first and THEIR dependencies earlier&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example:  In order to do A, you must have B and C present, and B depends on D and E, resulting in something like&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;D&lt;/li&gt;&#xA;&lt;li&gt;E&lt;/li&gt;&#xA;&lt;li&gt;C&lt;/li&gt;&#xA;&lt;li&gt;B&lt;/li&gt;&#xA;&lt;li&gt;A&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;because you have to have the ingredients prepared before you can use them.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Functional languages, especially the lazy ones, turn this one upside down.  By letting A say it needs B and C, and let the language runtime figure out when to get B and C (which in turn requires D and E) all of which are evaluated when needed to evaluate A, you can create very small and concise building blocks, which result in small and concise programs.   The lazy languages also allows using infinite lists as only the elements actually used are calculated, and without needing to store the whole datastructure in memory before being able to use it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The really nice trick, is that this automatic &quot;oh, I need a B and a C&quot; mechanism is &lt;em&gt;scalable&lt;/em&gt; because there is no restriction - as in the sequential program - about where and when this evaluation can happen, so it can happen at the same time and even on different processors or computers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;That&lt;/em&gt;'s why functional languages are interesting - because the &quot;what to do when&quot; mechanism is taken over by the runtime system as opposed to the programmer having to do it manually.  This is as important a difference as the automatic garbage collection was for Java to C, and one of the major reasons why it is easier to write robust, scalable multi-threaded software in Java than in C.  It is even easier to write robust, scalable multi-threaded software in functional languages...  &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-19T13:58:35.637" CommentCount="11" />
  <row Id="20060" PostTypeId="2" ParentId="20047" CreationDate="2010-11-19T13:59:48.180" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://cc2e.com/&quot; rel=&quot;nofollow&quot;&gt;Code Complete&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.pragprog.com/the-pragmatic-programmer&quot; rel=&quot;nofollow&quot;&gt;The Pragmatic Programmer&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6894" LastActivityDate="2010-11-19T13:59:48.180" CommentCount="1" />
  <row Id="20061" PostTypeId="2" ParentId="19987" CreationDate="2010-11-19T14:00:06.243" Score="0" ViewCount="" Body="&lt;p&gt;I agree with FarmBoy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People that only know HTML/PHP can start a business and earn a fair amount of money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also agree with Quickly_now, although .NET is not something that will easily become old..&lt;/p&gt;&#xA;" OwnerUserId="6709" LastActivityDate="2010-11-19T14:00:06.243" />
  <row Id="20062" PostTypeId="2" ParentId="20021" CreationDate="2010-11-19T14:03:02.170" Score="5" ViewCount="" Body="&lt;p&gt;You're growing up. When we're young, we like to get caught up in idealistic divisions between what is &quot;good&quot; and what is &quot;bad&quot;. As we gain experience, we start to see that things aren't so black and white, and that maybe our hard-line attitude wasn't the best place to be. You'll hear this story repeated dozens of times throughout your life -- perhaps the names will change (OSX instead of Linux or Linux instead of Windows), but for the most part it's a pretty universal story; &quot;I used to be dumb, and think something was really important, but as I grew up, I realized how dumb I was being, and came around to see the other side of the story&quot;.&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-11-19T14:03:02.170" />
  <row Id="20063" PostTypeId="2" ParentId="20036" CreationDate="2010-11-19T14:05:43.010" Score="0" ViewCount="" Body="&lt;p&gt;I think it's a combination of two trends:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&lt;li&gt;Functional features being added to mainstream languages (e.g. C#).&lt;/li&gt;&#xA;&lt;li&gt;New functional languages being created.&lt;/li&gt;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;There's probably a natural limit on the first trend, but my guess is that any new language will have to support functional programming, at least as an option, in order to be taken seriously.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-19T14:05:43.010" />
  <row Id="20064" PostTypeId="2" ParentId="20021" CreationDate="2010-11-19T14:16:45.730" Score="0" ViewCount="" Body="&lt;p&gt;I have a similar story about editors. I've used vim for years, and am very productive with it. However, I wanted to use Lisp for a project, and emacs has much better support for Lisp. After working with it for a few weeks, I've started to also use it as a newsreader, and m-x shell gives me a DOS prompt in Windows with easy cut/paste. I'm still learning, but I'm happy I switched.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-19T14:16:45.730" />
  <row Id="20065" PostTypeId="2" ParentId="20021" CreationDate="2010-11-19T14:17:52.640" Score="1" ViewCount="" Body="&lt;p&gt;I used to think Haskell's syntax was strange and ugly. Time after time i discovered its beautiful concepts and that the strange syntax suddenly made sense (e.g. currying is builtin) and was no big deal after all. &lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-11-19T14:17:52.640" />
  <row Id="20066" PostTypeId="2" ParentId="19974" CreationDate="2010-11-19T14:18:17.960" Score="2" ViewCount="" Body="&lt;p&gt;I can't improve on Charles Petzold's excellent &quot;Does Visual Studio Rot The Mind?&quot; (&lt;a href=&quot;http://www.charlespetzold.com/etc/DoesVisualStudioRotTheMind.html&quot; rel=&quot;nofollow&quot;&gt;http://www.charlespetzold.com/etc/DoesVisualStudioRotTheMind.html&lt;/a&gt;). I think that the IDE and code generation in general has its place but if you as a developer do not already know why it is doing what it's doing (in the case of code generation having written the templates yourself, preferably) then you are flying blind. Being able to build something from scratch in a text editor is a good indication that you understand what's going on. That said it would be foolish to insist on only ever writing every last line from scratch by yourself every time you have to get something done.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-11-19T14:18:17.960" />
  <row Id="20067" PostTypeId="2" ParentId="20036" CreationDate="2010-11-19T14:20:02.597" Score="6" ViewCount="" Body="&lt;p&gt;We're moving to an era where multi-core processing isn't just something done in the back rooms of science labs or on specialty hardware.  It's now being done with commodity processors.  Functional programming, at least most of the variants I've been exposed to, generally attempts to push a view on side-effect free, stateless computational units.  This is the quintessential paradigm for multi-core work as there is no need to keep state commingled between processors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is only one of the reasons but a damn good reason to see functional programming taking hold.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-11-19T14:20:02.597" />
  <row Id="20068" PostTypeId="2" ParentId="20047" CreationDate="2010-11-19T14:33:05.953" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0132350882&quot; rel=&quot;nofollow&quot;&gt;Clean Code: A Handbook of Agile Software Craftsmanship&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-11-19T14:33:05.953" />
  <row Id="20069" PostTypeId="2" ParentId="20047" CreationDate="2010-11-19T14:45:14.397" Score="0" ViewCount="" Body="&lt;p&gt;Refactoring: Improving the Design of Existing Code (Martin Fowler et al.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;edit: So, just like everyone else, I didn't even read the question fully...&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="5233" LastActivityDate="2010-11-19T14:45:14.397" />
  <row Id="20070" PostTypeId="2" ParentId="19974" CreationDate="2010-11-19T14:48:03.380" Score="0" ViewCount="" Body="&lt;p&gt;IDE code generation is indispensable for generating things like method stubs for SOAP endpoints or serialization classes from an XML schema.  These are things that are outside the scope of a language but are certainly within the purview of a &quot;development environment&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do think Java's accessors are clumsy, though.  I always thought they should be more &quot;virtual&quot;: that is, &lt;code&gt;obj.field = value&lt;/code&gt; implicitly calls &lt;code&gt;obj.setField(value)&lt;/code&gt;.  If the class declares a &lt;code&gt;setField()&lt;/code&gt;, then that is used, otherwise the run-time just conses one up.  ISTR Ruby does something like this.  The JSTL EL does this, but it just generates a call to a setter, and if that doesn't exist the call fails.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-19T14:48:03.380" CommentCount="1" />
  <row Id="20071" PostTypeId="2" ParentId="20021" CreationDate="2010-11-19T14:50:01.067" Score="1" ViewCount="" Body="&lt;p&gt;Yes, with pretty much all of them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'd think I'd learn by this point, but my relationship with every single language, OS and tool I know and use started off with &quot;Why the hell is [new thing] so complicated? Why can't it be more like [thing I aleady know]?&quot; then went into &quot;Well, at least it does this one thing right...&quot;, and then when I finally grasped the purpose &quot;Huh. I guess I was an idiot for thinking [new thing] was stupid. Now, I know better!&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started off as a Commodore 64 kid in the late 80s, willingly switched to DOS at some point later, and then ran the above pattern for (in order)&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Windows 3.1&lt;/li&gt;&#xA;&lt;li&gt;Windows 95&lt;/li&gt;&#xA;&lt;li&gt;Windows XP&lt;/li&gt;&#xA;&lt;li&gt;Python&lt;/li&gt;&#xA;&lt;li&gt;OS X&lt;/li&gt;&#xA;&lt;li&gt;Dreamweaver&lt;/li&gt;&#xA;&lt;li&gt;jQuery&lt;/li&gt;&#xA;&lt;li&gt;Ruby&lt;/li&gt;&#xA;&lt;li&gt;Eclipse&lt;/li&gt;&#xA;&lt;li&gt;Common Lisp&lt;/li&gt;&#xA;&lt;li&gt;Emacs&lt;/li&gt;&#xA;&lt;li&gt;Linux&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The loop tightens each time, but I still struggle with it. There's a very strong temptation, when learning a new piece of technology, to think &quot;I've been getting along just fine without it. I don't need to put myself through this&quot;. That thought seems like it would lead to mediocrity if I applied it without restraint. I'd &lt;strong&gt;like&lt;/strong&gt; to think I'm past it, but it's natural to have a bias towards tech you know already and against new stuff. &lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-19T14:50:01.067" CommentCount="1" />
  <row Id="20072" PostTypeId="2" ParentId="19990" CreationDate="2010-11-19T15:02:03.500" Score="1" ViewCount="" Body="&lt;p&gt;I would like to add: You don't need &lt;em&gt;formal&lt;/em&gt; training, if you mean having another person tutor you. You can use free or proprietary training software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I imagine you spend some amount of time typing e-mails, reports, and documentation. &lt;strong&gt;The greatest devourer of your typing time besides simply typing too slow is &lt;em&gt;making errors&lt;/em&gt;&lt;/strong&gt;. (For every error, you must stop, reach over and backspace or CTRL+Shift+LeftArrow, and re-type the same thing. The cumulative effect is great.)&lt;/p&gt;&#xA;" OwnerUserId="2515" LastActivityDate="2010-11-19T15:02:03.500" />
  <row Id="20073" PostTypeId="2" ParentId="20047" CreationDate="2010-11-19T15:02:24.280" Score="2" ViewCount="" Body="&lt;p&gt;A good algorithms book, a good programming practices book (like Code Complete/The Practice of Programming), a good time management book (like Getting Things Done), a good agile development book (like the one by Shore and Warden) and any number of programming philosophy books that you want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you grow, you should read books on communication (like Crucial Conversations, How to talk to anyone), communicating your ideas effectively (like Made to Stick) and career development (like Being Geek).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are all very general titles - so you would probably read stuff specific to your language/technology as well.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-11-19T15:02:24.280" CommentCount="3" />
  <row Id="20074" PostTypeId="2" ParentId="19966" CreationDate="2010-11-19T15:02:40.387" Score="2" ViewCount="" Body="&lt;p&gt;I'd use a benchmark consisting of &lt;strong&gt;builds&lt;/strong&gt;, &lt;strong&gt;integration and performance tests&lt;/strong&gt;, and other development activities most frequently run on machine's of developers working in your organization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Build time is important in day-to-day software development activities and if it's too long, build may become a bottleneck.  Suppose the build runs 15 minutes and occupies all of &lt;em&gt;some machine&lt;/em&gt;'s resources.  With a better machine, it takes only 5 minutes.  The better machine thus creates some value added and I want the benchmark to measure this value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same reasoning can be applied to integration/performance tests.  If they run too slowly, developers tend to run them less frequently, lengthening feedback loops.  Again, value can be added by running them faster.  A benchmark consisting of a sample of such tests would measure the value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your faster machine uses SSD while the slower machine uses HDD, such benchmarks should let you measure how much faster your faster machine is at your usual tasks.  Simply saying &quot;SSD is faster than HDD&quot; doesn't answer the question.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-19T15:02:40.387" />
  <row Id="20075" PostTypeId="2" ParentId="20047" CreationDate="2010-11-19T15:21:52.053" Score="0" ViewCount="" Body="&lt;p&gt;Every library should have books on these&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Algorithms and DS (CLR, Knuth books, Horowitz )&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Operating Systems &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Networking TCP/IP. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Databases &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Programming Pearls/ Code complete / Pragmattic Programmer&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-19T15:21:52.053" />
  <row Id="20076" PostTypeId="2" ParentId="19987" CreationDate="2010-11-19T15:39:05.057" Score="2" ViewCount="" Body="&lt;p&gt;There's plenty of jobs for people doing COBOL, and .NET will stick around for similar reasons.  Whether you want to be the equivalent of a COBOL programmer in 2025 is, I suppose, up to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To you, is a career just a method of making money throughout your life, or is it at least partly a journey of exploration and learning?  Personally, I think life is short enough that I don't want to spend that much of it simply making money, and so I'm glad I'm in this business the way I am. &lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-19T15:39:05.057" />
  <row Id="20077" PostTypeId="2" ParentId="19934" CreationDate="2010-11-19T15:40:26.787" Score="0" ViewCount="" Body="&lt;p&gt;My guess is that the length of time for support is related to the stability and quality of the product.  Supporting a high quality product is easier than supporting a low quality one.&lt;/p&gt;&#xA;" OwnerUserId="7684" LastActivityDate="2010-11-19T15:40:26.787" />
  <row Id="20078" PostTypeId="2" ParentId="19427" CreationDate="2010-11-19T15:47:22.273" Score="0" ViewCount="" Body="&lt;p&gt;Personally, if it's possible given the other components you mention, I would choose the &lt;a href=&quot;http://www.gnu.org/licenses/agpl.html&quot; rel=&quot;nofollow&quot;&gt;AGPL&lt;/a&gt; (aka the &lt;a href=&quot;http://en.wikipedia.org/wiki/Affero_General_Public_License&quot; rel=&quot;nofollow&quot;&gt;Affero GPL&lt;/a&gt;) for a web application of any kind.&lt;/p&gt;&#xA;" OwnerUserId="7684" LastActivityDate="2010-11-19T15:47:22.273" CommentCount="2" />
  <row Id="20079" PostTypeId="2" ParentId="19990" CreationDate="2010-11-19T15:48:36.273" Score="0" ViewCount="" Body="&lt;p&gt;anecdote: About 8 years ago, when I was in school, my programmer friends and I would have programming competitions. We were all eager programmers, so when we got an assignment, we'd hit the keys right away working on that assignment right away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mysely and 2 others in the group were 100+ wpm typers. 3 people in this group consistently won these competitions of ours. Two fast typers and one slow typer (I mean, &lt;em&gt;ridiculously&lt;/em&gt; slow, he had a physical disability such that he typed 15wpm tops). That slow typer was an &lt;strong&gt;awesome&lt;/strong&gt; programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Moral of the story: If you know what you're doing, typing fast is will let you stomp your programming competition. But first you have to know what you're doing.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-19T15:48:36.273" />
  <row Id="20080" PostTypeId="1" AcceptedAnswerId="20081" CreationDate="2010-11-19T15:55:56.767" Score="6" ViewCount="472" Body="&lt;p&gt;Over on stackoverflow, I see this issue crop up all the time:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/4158486/e-notice-e-debug-avoiding-isset-and-with-more-sophisticated-error-handle&quot;&gt;E_NOTICE ?== E_DEBUG, avoiding isset() and @ with more sophisticated error_handler&lt;/a&gt;  &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/4066821/how-to-set-php-not-to-check-undefind-index-for-get-when-e-notice-is-on&quot;&gt;How to set PHP not to check undefind index for $_GET when E_NOTICE is on?&lt;/a&gt;  &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/2099147/how-to-stop-php-from-logging-php-notice-errors&quot;&gt;How to stop PHP from logging PHP Notice errors&lt;/a&gt;  &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/2867057/how-do-i-turn-off-such-php-5-3-notices&quot;&gt;How do I turn off such PHP 5.3 Notices ?&lt;/a&gt;  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Even &lt;a href=&quot;http://stackoverflow.com/users/187606/pekka&quot;&gt;Pekka&lt;/a&gt; (who offers a lot of solid PHP advice) has bumped against the dreaded &lt;code&gt;E_NOTICE&lt;/code&gt; monster and hoped for a better solution than using &lt;code&gt;isset()&lt;/code&gt;: &lt;a href=&quot;http://stackoverflow.com/questions/1960509/isset-and-empty-make-code-ugly&quot;&gt;isset() and empty() make code ugly&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I use &lt;code&gt;isset()&lt;/code&gt; and &lt;code&gt;empty()&lt;/code&gt; in many places to manage the flow of my applications.  For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public function do_something($optional_parameter = NULL) {&#xA;    if (!empty($optional_parameter)) {&#xA;        // do optional stuff with the contents of $optional_parameter&#xA;    }&#xA;    // do mandatory stuff&#xA;}  &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Even a simple snippet like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (!isset($_REQUEST['form_var'])) {&#xA;    // something's missing, do something about it.&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;seems very logical to me.  It doesn't look like bloat, it looks like stable code.  But a lot of developers fire up their applications with &lt;code&gt;E_NOTICE&lt;/code&gt;'s enabled, discover a lot of frustrating &quot;uninitialized array index&quot; notices, and then grimace at the prospect of checking for defined variables and &quot;littering&quot; their code with &lt;code&gt;isset()&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I assume other languages handle things differently.  Speaking from experience, JavaScript isn't as polite as PHP.  An undefined variable will typically halt the execution of the script.  Also, (speaking from &lt;em&gt;inexperience&lt;/em&gt;) I'm sure languages like C/C++ would simply refuse to compile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, are PHP devs just lazy?  (not talking about you, Pekka, I know you were refactoring an old application.)  Or do other languages handle undefined variables more gracefully than requiring the programmer to first check if they are defined?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I know there are other &lt;code&gt;E_NOTICE&lt;/code&gt; messages besides undefined variables, but those seem to be the ones that cause the most chagrin)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Addendum&lt;/strong&gt;&lt;br&gt;&#xA;From the answers so far, I'm not the only one who thinks &lt;code&gt;isset()&lt;/code&gt; is not code bloat.  So, I'm wondering now, are there issues with programmers in other languages that echo this one?  Or is this solely a PHP culture issue?&lt;/p&gt;&#xA;" OwnerUserId="5497" LastEditorUserId="5497" LastEditorDisplayName="" LastEditDate="2010-11-19T18:26:58.337" LastActivityDate="2010-12-17T20:00:52.943" Title="Why do many PHP Devs hate using isset() and/or any of PHP's similarly defensive functions like empty()?" Tags="&lt;php&gt;&lt;error-messages&gt;" AnswerCount="8" CommentCount="10" FavoriteCount="0" />
  <row Id="20081" PostTypeId="2" ParentId="20080" CreationDate="2010-11-19T16:03:26.137" Score="11" ViewCount="" Body="&lt;p&gt;I code to &lt;code&gt;E_STRICT&lt;/code&gt; and nothing else. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using empty and isset checks does not make your code ugly, it makes your code more verbose. In my mind what is the absolute worst thing that can happen from using them? I type a few more characters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Verses the consequences of not using them, at the very least warnings.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-19T16:03:26.137" CommentCount="5" />
  <row Id="20082" PostTypeId="2" ParentId="19246" CreationDate="2010-11-19T16:05:20.053" Score="2" ViewCount="" Body="&lt;h2&gt;SQL&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;You didn't mention this one in your list, but you may find it to be a vital part of your tool belt. If you would like to go deeper into declarative programming, then you may consider Datalog and Prolog as the logical conclusion for where SQL style queries can go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All three of these languages are mature, practical and well used. For example, Prolog is very useful if you are implementing a DSL, or just need some kind of complex solver and you don't want to bother with graph-style algorithms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the very least, it's a different way of thinking, is nontrivial (particularly if you want it to be efficient), and a skill you should have.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-19T16:05:20.053" />
  <row Id="20083" PostTypeId="2" ParentId="20038" CreationDate="2010-11-19T16:05:48.460" Score="2" ViewCount="" Body="&lt;p&gt;Until recently, I worked at such a company, they were rated best to work for something like the last 5 years in a row. I believe they blocked things that were considered illegal or NSFW, such as porn / pirated downloads, etc. Also games, I think. But Facebook and the like were actually not blocked. So it was comparatively open. It's a slightly unique situation for them, as a trading firm, because they're required to track all communication (including, I think, posts online made from their network) so it can be reported to the SEC if necessary. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think there's another thing to be said here though, that if a company is really deserving of the title of &quot;Best to Work For&quot; then it will find that its employees don't really have the desire or boredom to waste time on Farmville all day. Even on my worst days at my old job, I never went on Facebook. The only non-work things I did were reading Daily WTF and other code blogs in the morning (and browsing SO). And even those are semi-work related.&lt;/p&gt;&#xA;" OwnerUserId="7974" LastActivityDate="2010-11-19T16:05:48.460" CommentCount="1" />
  <row Id="20084" PostTypeId="1" CreationDate="2010-11-19T16:10:15.053" Score="7" ViewCount="362" Body="&lt;p&gt;I know git is great for open source projects. But i was wondering. For a company with 20 programmers on a 1 year project which source control is desirable? From what i heard GIT uses pulling, wouldnt it be less then desirable to need to go through someone else to get your changes in the main trunk? especially when everyone is working at the same time?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thats just of an example i wonder. I know how to use svn but even at my last job we didnt use it on our projects since everything was done in php and typically standalone 1 week projects. I just had svn for my local code and didnt need to use it with others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what are good source controls and specifically why is it good for this?&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2011-05-06T22:48:37.503" Title="What source control do i want for large project in average company?" Tags="&lt;version-control&gt;" AnswerCount="9" CommentCount="4" />
  <row Id="20085" PostTypeId="2" ParentId="20002" CreationDate="2010-11-19T16:14:12.683" Score="0" ViewCount="" Body="&lt;p&gt;How much time are you going to spend on debating whether or not using the framework is going to be a benefit in all cases? Does a project get delayed by waiting for the framework to be upgraded? At some point the usage of the framework has to be required in order to justify its existence.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-19T16:14:12.683" />
  <row Id="20086" PostTypeId="2" ParentId="19427" CreationDate="2010-11-19T16:20:54.070" Score="3" ViewCount="" Body="&lt;p&gt;Since you're using MS-PL and Apache 2.0 components, you're restricted by the MS-PL license and the Apache 2.0 license.  This means you can't use the GPL anyway, since it's incompatible with MS-PL, and version 2 of the GPL is also incompatible with Apache 2.0.  Given that, I would suggest releasing your parts either under MS-PL, Apache 2.0, or a BSD-style, so you're not adding requirements. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can read the licenses to see what you have to do.  They aren't long.  With MS-PL, you can do pretty much everything as long as everything's released under MS-PL and you include the entire license (which isn't long).  With Apache 2.0, it's pretty much the same, except that you need to include any NOTICE file.  You do have to include all attributions, etc., and that's pretty standard across OS licenses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You really can't add to the licenses.  You are free to put any disclaimers you want.  You can put them in a NOTICE file, which under Apache 2.0 requires them to be preserved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should list which files are under which licenses, and you do have to include full copies of MS-PL and Apache 2.0 in the package.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be careful about ADO.NET Entity Framework CTP4, as you say you can't find a license.  If you can't find a license, ordinary copyright law applies, and you can't legally use it.  You may want to write to whoever owns that code, and see what license they use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as copyright ownership goes, you can never retract open source licenses for the versions you release under them, but if you own all applicable copyrights you can relicense as you wish.  Some companies, like MySQL AB, released what they had under the GPL, and would sell other licenses for money, so that (say) another company could use MySQL as a part of their commercially sold product without having to release under the GPL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you're using components owned by other people, you really can't do that with the entire project, but you could with your portions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To do that, you'd have to get everybody who contributes to fill out a copyright assignment form, along with some proof that they do own the copyright (and, for example, that it doesn't count as work for hire for an employer).  This does tend to diminish user contributions, so you may want to skip it entirely.  You might want to look at what the Gnu project does, since they do want complete copyright, and emulate them.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastEditorUserId="2344" LastEditorDisplayName="" LastEditDate="2010-11-19T17:53:28.173" LastActivityDate="2010-11-19T17:53:28.173" CommentCount="4" />
  <row Id="20087" PostTypeId="2" ParentId="20084" CreationDate="2010-11-19T16:24:00.940" Score="23" ViewCount="" Body="&lt;p&gt;Use whatever your team is comfortable with. All Version Control systems do roughly the same thing in similar ways; there's no reason to re-invent the wheel because &quot;it might work better&quot;. If your team isn't comfortable with anything, then pick the option that has the easiest integration with your team's standard IDE.&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-11-19T16:24:00.940" CommentCount="8" />
  <row Id="20088" PostTypeId="1" AcceptedAnswerId="20093" CreationDate="2010-11-19T16:25:30.727" Score="4" ViewCount="283" Body="&lt;p&gt;Programming skills: are they something we are born with or we develop them during our lives? (innate or adquired?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i.e.: if two programmers &quot;live the same life&quot;, will they have the exactly same programming skills?? Isn't there some innate &quot;component&quot;?&lt;/p&gt;&#xA;" OwnerUserId="7498" LastActivityDate="2010-11-19T17:15:16.810" ClosedDate="2010-11-19T21:12:36.737" Title="Are we born with different programming skills or we &quot;build&quot; them?" Tags="&lt;programming&gt;&lt;skills&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="20089" PostTypeId="2" ParentId="20038" CreationDate="2010-11-19T16:26:41.897" Score="1" ViewCount="" Body="&lt;p&gt;The ideal company would have one policy:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Use your best judgement at all times&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Banning Facebook, YouTube etc. doesn't make anyone who has self restraint more productive, it just annoys them. Same goes with bandwidth limits and the such.&lt;/p&gt;&#xA;" OwnerUserId="6926" LastActivityDate="2010-11-19T16:26:41.897" CommentCount="2" />
  <row Id="20090" PostTypeId="2" ParentId="20036" CreationDate="2010-11-19T16:35:00.917" Score="6" ViewCount="" Body="&lt;p&gt;Todays need for distributed computing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FP uses functions as building blocks, which don't have state, so invoking them &lt;em&gt;n&lt;/em&gt;  times with the same parameters should return the same value always, they don't have side effects. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thus, you can send the same function to a bunch of machines to perform and have the doing the work in parallel. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In OO paradigm, this is a bit harder, because the building blocks are objects, which are almost by definition stateful.  If you invoke several times the same method, you have to be careful in synchronizing the internal data, to avoid data corruption. While still possible, the FP paradigm works better than the OO in some scenarios where computation has to be distributed.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The advent of FP ( and NoSQL at some extent ) comes after the stories about amazing computing results in hundreds of thousands of computers working in parallel, and how easy it is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But probably this is only a niche the kind of applications that need this kind of setup. For many, many other applications/systems, procedural and OO work just fine. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So is all about to expand our programming horizons and re-take these concepts we once thought wouldn't go beyond academia. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I learned to program in Lisp years ago, and back then I didn't knew that was even FP. By now I have forgotten almost everything about it, but certainly help me to understand concepts like recursion very easily. &lt;/p&gt;&#xA;" OwnerUserId="82" LastActivityDate="2010-11-19T16:35:00.917" />
  <row Id="20091" PostTypeId="2" ParentId="20088" CreationDate="2010-11-19T16:35:15.647" Score="6" ViewCount="" Body="&lt;p&gt;No, programmers are not created equal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You definitely need strength in certain parts of your brain. Things like an innate grasp of math (far beyond what evolutionary pressure requires of us), and as Joel et al like to point out, the ability to think at multiple levels of abstraction simultaneously. Spacial reasoning and problem solving, things like these all have a basis in nature, rather than nurture. At least I think so, some people may argue. More specific roles require more specific skills, like language or artistic ability.&lt;/p&gt;&#xA;" OwnerUserId="7974" LastActivityDate="2010-11-19T16:35:15.647" CommentCount="1" />
  <row Id="20092" PostTypeId="1" AcceptedAnswerId="20097" CreationDate="2010-11-19T16:36:54.310" Score="5" ViewCount="232" Body="&lt;p&gt;I'm trying to convince the company I work for to contribute towards open-source software, specifically building a library/component for ASP.NET web apps. We have an 'Innovation Day' coming up where we can work on our own personal pet projects at work, similar to Google's one day a week policy, except ours is once a month :-), and I have an idea that I want to open-source.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other companies do this, eg. Headspring Systems (&lt;a href=&quot;http://automapper.codeplex.com&quot; rel=&quot;nofollow&quot;&gt;http://automapper.codeplex.com&lt;/a&gt; - see banner at top).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do I tell them? What benefits can I convey to them that would be beneficial to the company? I've already mentioned possible exposure for our company and reputation etc. as well as attracting top software developers when we next go on a hiring spree. But what other arguments could I make?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; The company I work for is a software company that mainly builds web applications in ASP.NET and the MS Stack. Our clients are mainly the NHS (public health sector of the UK).&lt;/p&gt;&#xA;" OwnerUserId="7975" LastEditorUserId="7975" LastEditorDisplayName="" LastEditDate="2010-11-19T17:00:42.897" LastActivityDate="2010-12-19T15:23:24.750" Title="How do I convince my company to contribute towards Open-Source?" Tags="&lt;open-source&gt;&lt;asp.net&gt;&lt;contribution&gt;" AnswerCount="4" CommentCount="6" FavoriteCount="1" />
  <row Id="20093" PostTypeId="2" ParentId="20088" CreationDate="2010-11-19T16:38:22.820" Score="8" ViewCount="" Body="&lt;p&gt;This paper: &lt;a href=&quot;http://www.eis.mdx.ac.uk/research/PhDArea/saeed/&quot; rel=&quot;nofollow&quot;&gt;http://www.eis.mdx.ac.uk/research/PhDArea/saeed/&lt;/a&gt; provides some research that was done on this question. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially, they gave tests to students asking them to determine the results of assignment statements prior to actually teaching them what assignments were. They divided the class into two groups, one who gave &lt;strong&gt;consistent&lt;/strong&gt; (not correct, but consistent answers), and those who gave inconsistent answers. Those that gave consistent answers went on to do well in the course and those who gave inconsistent answers did poorly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This would seem to indicate that there is something innate that separates people who can code from those who cannot. I wouldn't make a firm statement until more studies are done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd guess that the fundamental issue is that some people are very good at mechanically applying rules. Those people are good at programming because they naturally think the way code works. Other people don't mechanically apply rules, instead, they attempt to understand what is going on. These people do poorly in programming because they don't mechanically follow the rules.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Could other people learn to mechanically follow rules? I don't know. But certainly there seems to be some people who innately do so.&lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-11-19T16:38:22.820" CommentCount="7" />
  <row Id="20094" PostTypeId="2" ParentId="19912" CreationDate="2010-11-19T16:41:01.427" Score="1" ViewCount="" Body="&lt;p&gt;The Software Carpentry site covers many topics in practical programming, software design and essential tools and techniques aimed specifically at scientists.  I find it worth browsing even for topics I already know about, and as a physicist/artist find it makes more sense than the thousands of sites and books aimed at the CS crowd, big enterprise systems developers, IT experts and the other non-scientist types.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://software-carpentry.org/&quot; rel=&quot;nofollow&quot;&gt;http://software-carpentry.org/&lt;/a&gt; &quot;Since 1997, Software Carpentry has taught scientists and engineers the concepts and skills they need to use computers more effectively.&quot;&lt;/p&gt;&#xA;" OwnerUserId="4280" LastActivityDate="2010-11-19T16:41:01.427" />
  <row Id="20095" PostTypeId="2" ParentId="20080" CreationDate="2010-11-19T16:42:32.190" Score="0" ViewCount="" Body="&lt;p&gt;I use isset and empty plenty. But mostly it's places that you mention, like $_REQUEST processing, in case anyone's been messing with the parameters. In cases where I have control over all the variables flying around, I find that I usually don't need them.&lt;/p&gt;&#xA;" OwnerUserId="7974" LastActivityDate="2010-11-19T16:42:32.190" />
  <row Id="20096" PostTypeId="2" ParentId="20036" CreationDate="2010-11-19T16:43:55.790" Score="17" ViewCount="" Body="&lt;p&gt;One of the major innovations in FP that has resulted in the &quot;explosion&quot; of interest is monads.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In January of 1992, Philip Wadler wrote a paper called &lt;a href=&quot;https://wiki.ittc.ku.edu/lambda/images/1/12/Wadler_-_The_essence_of_functional_programming_%281992%29.pdf&quot; rel=&quot;nofollow&quot;&gt;The Essence of Functional Programming&lt;/a&gt; which introduced monads into functional programming as a way to deal with IO.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The major problem with pure, lazy, functional programming languages was utility in dealing with IO.  It's one of member of the &quot;Awkward Squad&quot; in programming, because &quot;laziness and side effects are, from a practical point of view, incompatible.  If you want to use a lazy language, it pretty much has to be a purely functional language; if you want to use side effects, you had better use a strict language.&quot; &lt;a href=&quot;http://research.microsoft.com/en-us/um/people/simonpj/papers/marktoberdorf/mark.pdf&quot; rel=&quot;nofollow&quot;&gt;Reference&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The issue with IO before monads was that maintaining purity was not possible for programs that were actually useful for anything.  By IO, we mean anything that deals with changing state, including getting input and output from the user or environment.  In pure functional programming, everything is immutable, to allow laziness and purity (free from side effects).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do monads solve the problem of IO?  Well, without discussing monads too much, they basically take the &quot;World&quot; (the runtime environment) as input to the monad, and produce a new &quot;World&quot; as output, and the result:  type IO a = World -&gt; (a, World). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;FP has therefore entered more and more into the mainstream, because the biggest problem, IO (and others) has been solved.  Integration into existing OO languages has also been happening, as you know.  LINQ is monads, for example, through and through.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For more information, I recommend reading about monads and the papers referenced in my answer.  &lt;/p&gt;&#xA;" OwnerUserId="7802" LastActivityDate="2010-11-19T16:43:55.790" CommentCount="6" />
  <row Id="20097" PostTypeId="2" ParentId="20092" CreationDate="2010-11-19T17:12:15.993" Score="5" ViewCount="" Body="&lt;p&gt;You have to make a business case.  I've done this before by making the case that the intellectual property we'd be open sourcing wasn't a core business asset (didn't differentiate us), but by releasing the code we'd be creating a marketing channel to the users of that open source code, who just also happen to be our target audience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can use this theory: &quot;&lt;a href=&quot;http://www.joelonsoftware.com/articles/StrategyLetterV.html&quot; rel=&quot;nofollow&quot;&gt;Commoditize Your Complements&lt;/a&gt;&quot;&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-11-19T17:12:15.993" />
  <row Id="20098" PostTypeId="2" ParentId="20021" CreationDate="2010-11-19T17:12:34.400" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Component_Object_Model&quot; rel=&quot;nofollow&quot;&gt;Component Object Model&lt;/a&gt;, which has a history (known as OLE in 1990) that predates GoF by 4 years.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;reference counting, 10 years before &lt;code&gt;boost::shared_ptr&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;(almost) dynamic typing, where an object can choose what interfaces to expose via &lt;code&gt;QueryInterface&lt;/code&gt;. (However it &lt;a href=&quot;http://blogs.msdn.com/b/oldnewthing/archive/2006/12/08/1239911.aspx&quot; rel=&quot;nofollow&quot;&gt;cannot be changed&lt;/a&gt; after the object has been constructed).&lt;/li&gt;&#xA;&lt;li&gt;class factory. Otherwise you don't get dynamic typing.&lt;/li&gt;&#xA;&lt;li&gt;and many more ...&lt;/li&gt;&#xA;&lt;li&gt;To summarize, &lt;em&gt;it redeems C++&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-11-19T17:12:34.400" />
  <row Id="20099" PostTypeId="2" ParentId="20088" CreationDate="2010-11-19T17:15:16.810" Score="0" ViewCount="" Body="&lt;p&gt;&quot;&lt;a href=&quot;http://www.fastcompany.com/articles/2001/07/buckingham.html&quot; rel=&quot;nofollow&quot;&gt;Do You Know Your Own Strength? &lt;/a&gt;&quot; is one of many articles about the work of &lt;a href=&quot;http://en.wikipedia.org/wiki/Marcus_Buckingham&quot; rel=&quot;nofollow&quot;&gt;Marcus Buckingham&lt;/a&gt; who has done research on strengths that you may find interesting on this stuff.  Basically, it is a combination of having some innate strengths and thus working on those to develop the programming skills most of us know.  &lt;a href=&quot;http://strengths.gallup.com/110440/About-StrengthsFinder-2.aspx&quot; rel=&quot;nofollow&quot;&gt;&quot;Strengths Finder 2.0&quot;&lt;/a&gt; has 34 different themes that is one explanation if you want get into how people tick, which are discussed in &lt;a href=&quot;http://sourcesofinsight.com/2008/02/11/finding-your-key-strengths/&quot; rel=&quot;nofollow&quot;&gt;&quot;Finding Your Strengths&quot;&lt;/a&gt; blog post by &lt;a href=&quot;http://sourcesofinsight.com/About/&quot; rel=&quot;nofollow&quot;&gt;J.D. Meier&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another side to this is to consider various psychological ways to categorize a person, like Myers-Briggs or the Enneagram to name a couple of the more famous ones but there are others too.  These can help explain one's motivation, fears, and other facets to some extent assuming one has the correct type figured out which is sometimes much harder than it looks.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-19T17:15:16.810" />
  <row Id="20100" PostTypeId="2" ParentId="20092" CreationDate="2010-11-19T17:15:44.610" Score="1" ViewCount="" Body="&lt;p&gt;Well one of the biggest arguments for open source is that others can contribute to it, idea being that one programmer can't possibly hope to spot and fix 1000 bugs in his program but 1000 programmers can.  So in addition to all the benefits you've listed, it's clearly the choice for developing bootstrap software which helps your own business in some fashion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also puts you in a position of authority.  I might be stretching it a bit, but if your idea is innovative enough, you could create a new standard by which others must meet.  It means anyone who wants to do anything with your software for commercial use has to ask you first, meaning you could throw in a couple curve balls which say that while the code is open, usage of your standard for commercial use requires a small contribution which is not at all unreasonable, so it's got potential in later stages as well.&lt;/p&gt;&#xA;" OwnerUserId="6967" LastEditorUserId="6967" LastEditorDisplayName="" LastEditDate="2010-11-19T17:22:27.473" LastActivityDate="2010-11-19T17:22:27.473" CommentCount="3" />
  <row Id="20101" PostTypeId="2" ParentId="19934" CreationDate="2010-11-19T17:16:36.137" Score="1" ViewCount="" Body="&lt;p&gt;Your graph shows pretty clearly the differences in priority between the policies of Emabarcadero vs. Codegear vs. Borland.  They would have different priorities and different expectations from their users.  That might explain your graph.  It's pretty clear from Embarcadero &quot;All Access&quot; that their intention is to make an MSDN style Embarcadero empire and sell their software as a service more than as a $900-$3500 dollar a seat behemoth. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're really hybridizing the software as a service model though and I'm thinking they're trying to strike a balance between a steady release cycle and a steady stream of income. For my part, I hope we start using Delphi 2009 before they pull the plug on rebates for it.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-11-19T17:16:36.137" />
  <row Id="20102" PostTypeId="2" ParentId="20080" CreationDate="2010-11-19T17:28:07.843" Score="2" ViewCount="" Body="&lt;p&gt;Yes, they are lazy. A lot of them anyway... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately the mentality of many PHP coders is &quot;There is no point coding defensively if you can get the same end result quicker by relying on the language to handle errors caused by missing variables etc etc.&quot; I know, I've worked with several of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They tend to also be the ones who mysteriously head for an early lunch when their lack of correct error handling and reporting takes out the live servers for several hours...&lt;/p&gt;&#xA;" OwnerUserId="7092" LastActivityDate="2010-11-19T17:28:07.843" CommentCount="3" />
  <row Id="20103" PostTypeId="2" ParentId="20036" CreationDate="2010-11-19T17:39:45.310" Score="0" ViewCount="" Body="&lt;p&gt;It used to be that people were writing programs to run on the desktop using the operating system's native APIs, and those APIs were (generally) written in C, so for the most part if you wanted to write a program for the native APIs, you wrote that program in C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the new innovation in the last 10 years or so is for a diversity of APIs to catch on, particularly for things like web development where the platform APIs are irrelevant (since constructing a web page basically involves string manipulation). Since you're not coding directly to the Win32 API or the POSIX API, that gives people the freedom to try out functional languages.&lt;/p&gt;&#xA;" OwnerUserId="1961" LastActivityDate="2010-11-19T17:39:45.310" />
  <row Id="20104" PostTypeId="2" ParentId="20092" CreationDate="2010-11-19T17:43:27.097" Score="1" ViewCount="" Body="&lt;p&gt;Open Source a component makes sense if - and only if - you nurture the project and build a community.  Accept bug reports, fix bugs, and make new releases on a regular basis.  If you do that, like Eclipse and Mozilla have done, you can harvest the benefits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't do that, the experienced people can smell a mile away that you just dumped off the code base hoping others would do the work for you.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-19T17:43:27.097" CommentCount="2" />
  <row Id="20105" PostTypeId="2" ParentId="20002" CreationDate="2010-11-19T17:44:24.433" Score="0" ViewCount="" Body="&lt;p&gt;At the one company I worked at that really had a similar thing, it didn't seem to work well.  The people in the inner team would come up with a neat idea and come up with a prototype that mostly worked, then it went over the wall and we were expected to turn it into a product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I'd expect to have happen is that the tool group would wind up going on its own little program, producing functions that weren't really all that useful, but which cluttered the API and got used enough so they couldn't easily be removed.  They wouldn't document adequately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the tool group was sufficiently under a system architect who was in continuous contact with the people actually using the tools, it might work.  If the tool group rotated frequently (which would hinder doing a lot of exterior research) it might work.  However, I'd be afraid of losing contact with the people doing the paying work.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-19T17:44:24.433" />
  <row Id="20106" PostTypeId="2" ParentId="20084" CreationDate="2010-11-19T17:49:50.797" Score="4" ViewCount="" Body="&lt;p&gt;While I think that this question is broad and should be addresses on a per-company basis, based on your IT framework and network/development structures, I think that the most important aspect of choosing source/version control is not which application you use, but whether it's use is practically structured and enforced.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Structure and enforcement of usage are the most important aspects of version control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plan ahead and get everyone on board.  Enforce usage. Not just with programmers, but with everything related to projects (documents, images, etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SVN is a fine application, and can be integrated with many add-ons (including bug/task tracking), doesn't need a separate server and is free!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are other good source control applications also, as @EricBoersma said: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Use whatever your team is comfortable with.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Just have processes and best practices in place, and buy off from those that can enforce it.&lt;/p&gt;&#xA;" OwnerUserId="3372" LastActivityDate="2010-11-19T17:49:50.797" />
  <row Id="20107" PostTypeId="2" ParentId="13000" CreationDate="2010-11-19T18:04:31.570" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Your word processor&lt;/strong&gt;. Know it inside and out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alternatively if you're writing your thesis and papers in LaTeX, know &lt;strong&gt;LaTeX&lt;/strong&gt; well, and know &lt;strong&gt;your text editor&lt;/strong&gt; inside and out. Don't content yourself with GNU Nano or MS Notepad. Pick a text editor that has lots of advanced editing features, like bulk text manipulation keystrokes, advanced cursor movement, folding, syntax highlighting, regular expression matching, customizable keys, programmable, etc... and learn how to use each and every one of those features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I know LaTeX and Vim very well, so I can write at length about what features you should know in those programs. Can anyone add details about what to look for in a word processor, and wat to be sure to learn in a word processor?)&lt;/p&gt;&#xA;" OwnerUserId="1961" LastActivityDate="2010-11-19T18:04:31.570" CommentCount="2" />
  <row Id="20108" PostTypeId="2" ParentId="19987" CreationDate="2010-11-19T18:40:37.783" Score="0" ViewCount="" Body="&lt;p&gt;Counter-question: Define successful. Then, a proper response can be given in context.&lt;/p&gt;&#xA;" OwnerUserId="4202" LastActivityDate="2010-11-19T18:40:37.783" CommentCount="3" />
  <row Id="20109" PostTypeId="1" CreationDate="2010-11-19T18:49:16.417" Score="8" ViewCount="322" Body="&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If an error occurs on a website or system, it is of course useful to log it, and show the user a polite message with a reference code for the error.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if you have lots of systems, you don't want this information dotted around - it is good to have a single centralised place for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the simplest level, all that's needed is an incrementing id and a serialized dump of the error details. (And possibly the &quot;centralised place&quot; being an email inbox.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the other end of the spectrum is perhaps a fully normalised database that also allows you to press a button and see a graph of errors per day, or identifying what the most common type of error on system X is, whether server A has more database connection errors than server B, and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I'm referring to here is logging code-level errors/exceptions by a remote system - &lt;em&gt;not&lt;/em&gt; &quot;human-based&quot; issue tracking, such as done with Jira,Trac,etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&#xA;&lt;strong&gt;Questions&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking for thoughts from developers who have used this type of system, specifically with regards to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What are essential features you couldn't do without?&lt;/li&gt;&#xA;&lt;li&gt;What are good to have features that really save you time?&lt;/li&gt;&#xA;&lt;li&gt;What features might seem a good idea, but aren't actually that useful?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For example, I'd say a &quot;show duplicates&quot; function that identifies multiple occurrence of an error (without worrying about 'unimportant' details that might differ) is pretty essential.&lt;br&gt;&#xA;A button to &quot;create an issue in [Jira/etc] for this error&quot; sounds like a good time-saver.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just to re-iterate, what I'm after is practical experiences from people that have used such systems, preferably backed-up with &lt;em&gt;why&lt;/em&gt; a feature is awesome/terrible.&lt;br&gt;&#xA;(If you're going to theorise anyway, at the very least mark your answer as such.)&lt;/p&gt;&#xA;" OwnerUserId="89" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-19T19:16:01.827" LastActivityDate="2011-03-24T13:04:21.487" Title="What's the best way to manage error logging for exceptions?" Tags="&lt;exceptions&gt;&lt;bug-tracking&gt;&lt;errors&gt;&lt;logging&gt;" AnswerCount="9" CommentCount="3" FavoriteCount="3" />
  <row Id="20110" PostTypeId="2" ParentId="15781" CreationDate="2010-11-19T19:00:16.287" Score="1" ViewCount="" Body="&lt;h2&gt;Leverage The Web!&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Seriously, if you want THE most bang for your buck, write a web application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Web clients don't require much PC power typically.&lt;/li&gt;&#xA;&lt;li&gt;Web clients are EVERYWHERE.  Not just PC/MAC/Linux, but on phones, mobile devices, and more.&lt;/li&gt;&#xA;&lt;li&gt;Nothing extra to download for users! (Typically, unless you want something fancy and use Flash, or Silverlight)&lt;/li&gt;&#xA;&lt;li&gt;All common components are on the server side, and can be Java, .NET, PHP, or a hodgepodge of a bunch of existing components you have.  The client shouldn't care!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Even the two approaches you mentioned are very similar.  The web browser renders HTML for multiple underlying architectures.  Similarly, the JVM interprets Java code in a way that makes sense for the underlying hardware.  The web, however, simply has a broader client base!&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-11-19T19:00:16.287" />
  <row Id="20111" PostTypeId="2" ParentId="19987" CreationDate="2010-11-19T19:11:16.703" Score="1" ViewCount="" Body="&lt;p&gt;If you refuse to learn anything else then it might (and only might) not be enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now if you expand the question to &quot;Is knowing Microsoft and .Net based technologies enough...&quot; then the answer is a resounding yes! Depending.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am approaching 20 years only knowing Microsoft (VB then .Net) technologies. Make a very good living and enjoy my job immensely. Look forward each day going to work and know there are many jobs out there that would hire me doing .Net/Microsoft platform development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel no desire to learn any new platforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then again I have no desire to get a different job. I like staying in the same small company that delivers very targeted and custom solutions to a diverse population.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not saying I will not ever learn a platform. May have to if all goes to hell. And I read Java/C++/LanguageWhatever books all the time. Don't understand much about the platform the book is about but the actual good ideas come across just fine. Effective Enterprise Java is one I go back to time and again. There are others. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find it funny that so many who say something to the effect of &quot;pre-optimization is the root of all evil&quot; will also say you must pre-optimize your career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Within .Net you can do procedural, OOP, functional, set based (sql) etc. etc.  Within .Net you can probably implement all the design patterns you could think of. Do P2P, Client Server, Web Whatever.0 etc. etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would you be a better programmer if you learned a different platform/framework? Ehh, maybe but probably not. No research I know of says you will. So I am not going to waste my valuable time learning something I will probably never use and instead focus on learning what I need to make my customers and boss happy. That will probably be enough.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-11-19T19:11:16.703" CommentCount="1" />
  <row Id="20112" PostTypeId="2" ParentId="6847" CreationDate="2010-11-19T19:25:18.973" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Groovy&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's extremely approachable and intuitive for a Java programmer, and with Grails, you can create and modify a web application extremely easily.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-11-19T19:25:18.973" CommunityOwnedDate="2010-11-19T19:25:18.973" />
  <row Id="20113" PostTypeId="2" ParentId="4384" CreationDate="2010-11-19T19:26:39.787" Score="1" ViewCount="" Body="&lt;p&gt;I am not a hero.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-19T19:26:39.787" />
  <row Id="20114" PostTypeId="2" ParentId="20036" CreationDate="2010-11-19T19:29:50.233" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Here's my questions:&#xA;  1. What has contributed to the recent FP enthusiasm? Is is merely boredom with OO, or has something changed to make FP more needed than before?&#xA;  2. Is this indicative of a FP future? Or is this a fad, like object orient databases?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Others have given good technical reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the main reason FP is gaining traction among the average developer and manager types is it's promise to allow better use of multi-core CPUs. From everything I have read FP allows easier (not easy) parallel programming. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's future widespread use will be if the promise is real and is fulfilled.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-11-19T19:29:50.233" CommentCount="1" />
  <row Id="20115" PostTypeId="2" ParentId="19930" CreationDate="2010-11-19T19:31:57.377" Score="0" ViewCount="" Body="&lt;p&gt;You will use a &quot;framework&quot; either way. I think the real question is do you want to build your own framework or not? Personally, I suggest going with a framework that has been tried and tested by many.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I ran into a similar situation with ORMs. I looked at an ORM and thought &quot;Eh, this is too complicated, I'll just write my own simple data access layer&quot;. Next thing you know I'm thinking, &quot;Sweet! I'll just write all these hydrators to populate my objects for me, and maybe I can do some lazy loading, and, and...&quot; Eventually, it hit me that I was just re-writing an ORM, and it was probably going to be crappier than any existing ORM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't reinvent the wheel; find a good framework to use. In the long run, it will probably be much easier for new people to use than any framework you could write from scratch.&lt;/p&gt;&#xA;" OwnerUserId="4881" LastActivityDate="2010-11-19T19:31:57.377" />
  <row Id="20116" PostTypeId="1" AcceptedAnswerId="20200" CreationDate="2010-11-19T19:32:05.520" Score="7" ViewCount="456" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm considering using Grails for a new website, but am open to other/new programming languages and frameworks.  I have done development using J2EE/JSF2, ASP.NET, and PHP.  Is Grails or Ruby on Rails pretty much the best way to get functionality up and running quickly?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some initial thoughts:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;DJango looks similar to RoR/Grails and I'd consider it&lt;/li&gt;&#xA;&lt;li&gt;GWT is an interesting concept but it doesn't seem like turnaround time is quite as fast&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Thanks,&#xA;-Jon&lt;/p&gt;&#xA;" OwnerUserId="3907" LastEditorUserId="3907" LastEditorDisplayName="" LastEditDate="2010-11-19T19:38:07.963" LastActivityDate="2010-11-20T03:06:00.277" Title="Are Ruby on Rails / Grails the fastest frameworks for getting sites up quickly?" Tags="&lt;programming-languages&gt;&lt;frameworks&gt;&lt;web-framework&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="1" />
  <row Id="20117" PostTypeId="2" ParentId="19987" CreationDate="2010-11-19T19:37:23.143" Score="0" ViewCount="" Body="&lt;p&gt;Yes.  I have no doubt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But that's not necessarily any easier than going outside the MS shop.  Since .NET started, we've had to keep learning.  New languages are riding the framework.  New technologies (LINQ, Silverlight, WF, etc) will continue to modify the technology.  VB and C# are growing together but also just growing.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does &quot;knowing .NET&quot; include SQL Server?  It depends on your job, but yeah -- you should consider that it does.  Does &quot;knowing SQL Server&quot; include knowing both DTS and SSIS?  Yeah, today it does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fifteen years will there still be a bazillion well-paying jobs for people who know these things and have kept up with however the technology morphs?  I have no doubt.&lt;/p&gt;&#xA;" OwnerUserId="7795" LastActivityDate="2010-11-19T19:37:23.143" />
  <row Id="20118" PostTypeId="2" ParentId="20109" CreationDate="2010-11-19T19:39:25.077" Score="0" ViewCount="" Body="&lt;p&gt;applications should be monitored, and exceptions logged to a centralized database for reporting, with notifications directed to the developer responsible for the application&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i have a product that does all this, for .NET applications. Email me steven [dot] lowe [at] nov8r.com if you'd like to beta-test it&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-19T19:39:25.077" CommentCount="1" />
  <row Id="20119" PostTypeId="2" ParentId="20109" CreationDate="2010-11-19T19:39:33.313" Score="1" ViewCount="" Body="&lt;p&gt;In the case of database applications, some kind of ID (like &lt;code&gt;&amp;lt;TABLE&amp;gt;:&amp;lt;PrimaryKeyID&amp;gt;&lt;/code&gt;) that allows you to track the records in the database related to the scope where the exception was catched.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've done it with Oracle and PL/SQL, recording the ID in a database table within the aplication, from the exception handler.&lt;/p&gt;&#xA;" OwnerUserId="5332" LastEditorUserId="89" LastEditorDisplayName="" LastEditDate="2010-11-19T21:00:00.073" LastActivityDate="2010-11-19T21:00:00.073" CommentCount="1" />
  <row Id="20120" PostTypeId="2" ParentId="20084" CreationDate="2010-11-19T19:40:51.300" Score="4" ViewCount="" Body="&lt;p&gt;Mercurial is excellent, distributed, and free.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-19T19:40:51.300" />
  <row Id="20121" PostTypeId="2" ParentId="20116" CreationDate="2010-11-19T19:42:05.667" Score="2" ViewCount="" Body="&lt;p&gt;I've been working with &lt;strong&gt;ASP.NET MVC&lt;/strong&gt; framework for some time now, and I've found it to be a pretty darn good framework. Extremely easy to use, especially if you're familiar with .NET. The framework has been growing quickly since its release in 2009, MVC 3 preview has been released to the public recently. I think MS is doing all the right things with the ASP.NET MVC framework.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-11-19T19:42:05.667" CommentCount="2" />
  <row Id="20123" PostTypeId="2" ParentId="19987" CreationDate="2010-11-19T19:47:20.220" Score="1" ViewCount="" Body="&lt;p&gt;While knowing .Net can be a plus, I really doubt that one could stay just within just .Net and not end up getting into either a UI specific language like JavaScript or some database work, possibly T-SQL or PL/SQL to give a couple of examples.  While these may be considered within a .Net development environment in a broad sense, they are other technical skills that can be useful in securing employment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also be careful of trying to get too specialized as the .Net platform could grow rather broadly to some extent.  There may be times where a new version of the framework brings in some other big changes like how the 3.0 version added WPF and WCF to give a couple of examples.  In other words, even within .Net there can be new things coming along that may change things in the next 10 years.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-19T19:47:20.220" CommentCount="1" />
  <row Id="20124" PostTypeId="2" ParentId="20109" CreationDate="2010-11-19T19:49:00.450" Score="0" ViewCount="" Body="&lt;p&gt;Sometimes, the log information is just too voluminous to be stored on disk.  One approach I have seen is to write your logging entries to a firehose (in, say, perl) something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;# Create socket.&#xA;my $sock = IO::Socket::INET-&amp;gt;new(&#xA;    Proto       =&amp;gt; 'udp',&#xA;    PeerAddr    =&amp;gt; $bcastaddr,&#xA;    Broadcast   =&amp;gt; 1,&#xA;) or die &quot;Can't create socket ($bcastaddr): $!&quot;;&#xA;&#xA;while (&amp;lt;&amp;gt;) {&#xA;    chomp;&#xA;    unless (/File\ does\ not\ exist:/) {&#xA;        $sock-&amp;gt;send(&quot;$eventtype:$_&quot;) or warn &quot;Can't send: $!&quot;;&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;then an analyst can grep out what s/he wants to look at.&lt;/p&gt;&#xA;" OwnerUserId="7222" LastActivityDate="2010-11-19T19:49:00.450" CommentCount="1" />
  <row Id="20125" PostTypeId="2" ParentId="20109" CreationDate="2010-11-19T19:53:18.217" Score="3" ViewCount="" Body="&lt;p&gt;I have been in a project where with logged client errors using &lt;a href=&quot;http://entlib.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;Microsoft Enterprise library&lt;/a&gt;.&#xA;All exception where send to our mail box.  In the mail subject we added hash code of serialized error for avoiding duplicated messages. One could of course store serialized messages in database and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recommend you to check out &lt;strong&gt;&lt;a href=&quot;http://logging.apache.org/log4net/release/features.htm&quot; rel=&quot;nofollow&quot;&gt;Microsoft Enterprise library&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href=&quot;http://logging.apache.org/log4net/release/features.html&quot; rel=&quot;nofollow&quot;&gt;Log4Net&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some Features of &lt;a href=&quot;http://logging.apache.org/log4net/release/features.html&quot; rel=&quot;nofollow&quot;&gt;Log4Net&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Support for multiple frameworks&lt;/li&gt;&#xA;&lt;li&gt;Output to multiple logging targets&lt;/li&gt;&#xA;&lt;li&gt;Hierarchical logging architecture&lt;/li&gt;&#xA;&lt;li&gt;XML Configuration&lt;/li&gt;&#xA;&lt;li&gt;Dynamic Configuration&lt;/li&gt;&#xA;&lt;li&gt;Logging Context&lt;/li&gt;&#xA;&lt;li&gt;Proven architecture&lt;/li&gt;&#xA;&lt;li&gt;Modular and extensible design&#xA;•   High performance with flexibility&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-11-19T19:53:18.217" CommentCount="1" />
  <row Id="20126" PostTypeId="2" ParentId="20002" CreationDate="2010-11-19T19:57:29.040" Score="1" ViewCount="" Body="&lt;p&gt;I think that's &lt;strong&gt;NOT A GOOD IDEA&lt;/strong&gt;, because for libraries to be useful they have to help you solve real project problems, and you only get to know them by, well... working in real projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise you can end with a &quot;theoretically&quot; very good library!&lt;/p&gt;&#xA;" OwnerUserId="5332" LastActivityDate="2010-11-19T19:57:29.040" />
  <row Id="20127" PostTypeId="2" ParentId="19987" CreationDate="2010-11-19T20:13:52.333" Score="0" ViewCount="" Body="&lt;p&gt;A qualified &quot;yes&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After reading other answers, I'll try for something more practical than somewhat &quot;ideal&quot; answers&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to separate professional and hobby.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As much as learning half a dozen languages and ways of thinking makes you a better individual, you aren't paid to learn, say, Haskell if you're employed to pimp a corporate intranet site in an MS shop&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Part of that bargain would be that the employer facilitates you in training in your speciality as well as in general development skills: next .net version, general OO techniques, become a Scrum Master, go to SQL Pass etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Feel free to learn Python, Perl, OpenGL, whatever on your own time for your own enjoyment and satisfactions. I know several folk that do this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Summary: Yes you can, but don't give up on &quot;outside interests&quot;&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-11-19T20:13:52.333" />
  <row Id="20128" PostTypeId="1" AcceptedAnswerId="20135" CreationDate="2010-11-19T20:27:58.017" Score="33" ViewCount="1727" Body="&lt;p&gt;Which world most important algorithms have contributed most to humankind in past decades? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I thought this is a good general knowledge for a developer to know about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;br&gt;&#xA;If possible, please keep the answer to a &lt;strong&gt;specific programming algorithm&lt;/strong&gt;.&lt;br&gt;&#xA;I would like to get a list of the most important ones, only one algorithm per answer.&lt;br&gt;&#xA;Please consider to state why the algorithm is significant and important...&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="666" LastEditorDisplayName="" LastEditDate="2010-12-20T22:15:58.973" LastActivityDate="2011-05-29T03:16:19.633" CommunityOwnedDate="2011-02-13T09:34:31.083" Title="Which are the significant algorithms for humankind in past decades?" Tags="&lt;algorithms&gt;&lt;problem-solving&gt;&lt;knowledge&gt;" AnswerCount="28" CommentCount="20" FavoriteCount="22" />
  <row Id="20129" PostTypeId="2" ParentId="13623" CreationDate="2010-11-19T20:30:04.917" Score="1" ViewCount="" Body="&lt;p&gt;Isn't the answer to this question a resounding &quot;NO&quot; independent of whomever you ask?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask your graphic artists if they should be given a slower machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask your writers if they would choose a slower machine over a faster one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask your administrative assistants whether they would prefer a slower or faster machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of them will say they'll be more productive with a faster machine.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2010-11-19T20:30:04.917" CommunityOwnedDate="2010-11-19T20:30:04.917" />
  <row Id="20130" PostTypeId="2" ParentId="20116" CreationDate="2010-11-19T20:30:35.487" Score="0" ViewCount="" Body="&lt;p&gt;I haven't used everything, but Rails is pretty darn fast. I expect Grails is too as it embodies the DRY philosophy pretty well. I don't know enough about other dynamic language frameworks to say.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even with good code generation strategies my ASP.NET (webforms) don't seem as efficient.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-19T20:30:35.487" />
  <row Id="20131" PostTypeId="2" ParentId="20128" CreationDate="2010-11-19T20:31:51.537" Score="3" ViewCount="" Body="&lt;p&gt;Whichever one you need to solve your current problem.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-11-19T20:31:51.537" CommunityOwnedDate="2011-02-13T09:34:31.083" CommentCount="3" />
  <row Id="20132" PostTypeId="2" ParentId="20036" CreationDate="2010-11-19T20:32:34.743" Score="0" ViewCount="" Body="&lt;p&gt;Definitely because of F#, though sometimes it is hard to tell which one is the cause and which one is the effect.&lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-11-19T20:32:34.743" />
  <row Id="20133" PostTypeId="2" ParentId="20116" CreationDate="2010-11-19T20:33:07.497" Score="3" ViewCount="" Body="&lt;p&gt;When using CakePHP, I can spin up a web app faster than...  a... really fast guy.  Anyway, it's fast.  Drop the files in your web root folder, configure two files (about three lines to change in each). And start coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because it favors convention over configuration it will take some experience to ensure that it's configured optimally, but I guarantee that with equal levels of experience, CakePHP sports the most rapid deployment out of any framework, probably &lt;em&gt;period&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, the original CakePHP project was a PHP clone of rails (it isn't anymore), so I'm sure rails is quick to deploy as well.&lt;/p&gt;&#xA;" OwnerUserId="5497" LastEditorUserId="5497" LastEditorDisplayName="" LastEditDate="2010-11-19T22:38:53.840" LastActivityDate="2010-11-19T22:38:53.840" CommentCount="3" />
  <row Id="20134" PostTypeId="2" ParentId="20128" CreationDate="2010-11-19T20:35:18.593" Score="3" ViewCount="" Body="&lt;p&gt;Sorting algorithm. &lt;/p&gt;&#xA;" OwnerUserId="1384" LastActivityDate="2010-11-19T20:35:18.593" CommunityOwnedDate="2011-02-13T09:34:31.083" CommentCount="5" />
  <row Id="20135" PostTypeId="2" ParentId="20128" CreationDate="2010-11-19T20:38:27.290" Score="55" ViewCount="" Body="&lt;p&gt;Public/private key encryption is pretty darn important. Internet commerce would be nowhere as ubiquitous without it.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-19T20:38:27.290" CommunityOwnedDate="2011-02-13T09:34:31.083" CommentCount="2" />
  <row Id="20136" PostTypeId="2" ParentId="20128" CreationDate="2010-11-19T20:39:31.267" Score="34" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm&quot; rel=&quot;nofollow&quot;&gt;Dijkstra's algorithm&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The algorithm exist in every &lt;strong&gt;router&lt;/strong&gt; in the world, for identifying the &lt;strong&gt;best route between two nodes&lt;/strong&gt; in a network.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-11-19T21:52:10.643" LastActivityDate="2010-11-19T21:52:10.643" CommunityOwnedDate="2011-02-13T09:34:31.083" CommentCount="6" />
  <row Id="20137" PostTypeId="2" ParentId="20128" CreationDate="2010-11-19T20:44:20.327" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Quicksort&quot; rel=&quot;nofollow&quot;&gt;Quicksort&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="3262" LastEditorDisplayName="" LastEditDate="2010-11-19T20:51:44.047" LastActivityDate="2010-11-19T20:51:44.047" CommunityOwnedDate="2011-02-13T09:34:31.083" CommentCount="8" />
  <row Id="20138" PostTypeId="2" ParentId="20128" CreationDate="2010-11-19T20:46:50.260" Score="25" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/PageRank&quot; rel=&quot;nofollow&quot;&gt;PageRank&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;PageRank is a link analysis algorithm,&#xA;  named after Larry Page, used by the&#xA;  &lt;strong&gt;Google&lt;/strong&gt; Internet search engine that&#xA;  assigns a numerical weighting to each&#xA;  element of a hyperlinked set of&#xA;  documents, such as the World Wide Web,&#xA;  with the purpose of &quot;measuring&quot; its&#xA;  relative importance within the set.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-11-19T20:46:50.260" CommunityOwnedDate="2011-02-13T09:34:31.083" CommentCount="5" />
  <row Id="20139" PostTypeId="2" ParentId="20128" CreationDate="2010-11-19T20:46:58.390" Score="9" ViewCount="" Body="&lt;p&gt;PageRank, love it or hate it, but it affects decisions and actions of millions people worldwide googling on a daily basis. &lt;/p&gt;&#xA;" OwnerUserId="4484" LastActivityDate="2010-11-19T20:46:58.390" CommunityOwnedDate="2011-02-13T09:34:31.083" />
  <row Id="20141" PostTypeId="1" CreationDate="2010-11-19T20:48:10.777" Score="1" ViewCount="158" Body="&lt;p&gt;I don't know if I've asked it the right way. We all know what a &lt;a href=&quot;http://en.wikipedia.org/wiki/Turing_machine&quot; rel=&quot;nofollow&quot;&gt;Turing Machine&lt;/a&gt; is. We also know that today's conventional computers are Turing-based machines.&lt;br&gt;&#xA;Scientists are trying so hard to develop more advanced A.Is everyday. The development of the A.I industry is not negligible. We are seeing more advanced A.Is almost everywhere!&lt;br&gt;&#xA;They all work based on variant algorithms which are executed by a &lt;em&gt;Turing machine&lt;/em&gt; of some sort. Out goal is to create an A.I that can actually &quot;think&quot; like a human does.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is do you think by using a Turing Machine (like we are doing right now) in future we can reach that goal? Is Turing Machine that powerful that can act like a human brain?&lt;br&gt;&#xA;In other words are we all merely Turing Machines?!  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think while we are still utilizing Turing machines, we won't be able to fulfill our goal! In my opinion we need to reconsider our strategy and move toward something else which has more capabilities...&lt;br&gt;&#xA;What do you all think?&lt;/p&gt;&#xA;" OwnerUserId="7987" LastActivityDate="2010-11-19T21:07:36.343" ClosedDate="2010-11-19T21:07:34.290" Title="Is Artificial Intelligence (A.I) going to advance any further while Turing-based Machines are used for A.I computations?" Tags="&lt;trends&gt;&lt;artificial-intelligence&gt;" AnswerCount="1" CommentCount="9" FavoriteCount="1" />
  <row Id="20142" PostTypeId="2" ParentId="20128" CreationDate="2010-11-19T20:48:55.753" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Soundex&quot; rel=&quot;nofollow&quot;&gt;Soundex&lt;/a&gt; is a phonetic algorithm for indexing names by sound.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-11-19T20:48:55.753" CommunityOwnedDate="2011-02-13T09:34:31.083" CommentCount="2" />
  <row Id="20143" PostTypeId="2" ParentId="20036" CreationDate="2010-11-19T20:54:49.850" Score="3" ViewCount="" Body="&lt;p&gt;I think the main answer to that question is 'exposure'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Functional programming is nothing new, I was taught Haskell at university some 12 years ago and loved it.  But rarely got to use the language in my professional work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently there have been a number of languages gaining traction in the main stream that use a multi-paradigm approach; &lt;a href=&quot;http://www.fsharp.net/&quot; rel=&quot;nofollow&quot;&gt;F#&lt;/a&gt;, JavaScript being prime examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;JavaScript in particular, especially when used with a functional-style framework language like &lt;a href=&quot;http://jquery.com/&quot; rel=&quot;nofollow&quot;&gt;jQuery&lt;/a&gt; or &lt;a href=&quot;http://www.prototypejs.org/&quot; rel=&quot;nofollow&quot;&gt;Prototype&lt;/a&gt;, is becoming an everyday language for many people due to all the work on dynamic modern websites.  This exposure to the functional style makes people realise the power it grants, especially when one is able to drop back to an imperative style at will.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once people are exposed, they try out more fully fledged variants of functional languages and start to use them for day-to-day tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With F# becoming a first-class language in Visual Studio 2010 and jQuery (et al) becoming so important, it is becoming realistic to use these languages, rather than just something obscure to play with or make isolated programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember that code has to be maintainable - a critical mass of developers must use and support languages in order for companies to feel safe in using them.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-19T21:29:52.253" LastActivityDate="2010-11-19T21:29:52.253" />
  <row Id="20144" PostTypeId="2" ParentId="20084" CreationDate="2010-11-19T20:56:06.230" Score="4" ViewCount="" Body="&lt;p&gt;I think that it depends on what level of support you need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use git at home for my fun projects when having a problem costs me time, but I can spend the time learning what I need to fix it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At work we use Perforce because having 24/7 tech support is imperative. We have people working on the code in New York, Germany, Ireland, and Japan all the time. If there is a problem we have to get an answer ASAP. In my experience the people at Perforce really know what they are doing and are receptive to suggestions.&lt;/p&gt;&#xA;" OwnerUserId="749" LastActivityDate="2010-11-19T20:56:06.230" CommentCount="1" />
  <row Id="20145" PostTypeId="2" ParentId="20128" CreationDate="2010-11-19T21:01:21.300" Score="11" ViewCount="" Body="&lt;p&gt;Siam named the following as the most important algorithms of the 20th century:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1946: &lt;strong&gt;The Metropolis Algorithm for Monte Carlo&lt;/strong&gt;. Through the use of random processes, this algorithm offers an efficient way to stumble toward answers to problems that are too complicated to solve exactly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1947: &lt;strong&gt;Simplex Method for Linear Programming&lt;/strong&gt;. An elegant solution to a common problem in planning and decision-making.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1950: &lt;strong&gt;Krylov Subspace Iteration Method&lt;/strong&gt;. A technique for rapidly solving the linear equations that abound in scientific computation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1951: &lt;strong&gt;The Decompositional Approach to Matrix Computations&lt;/strong&gt;. A suite of techniques for numerical linear algebra.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1957: &lt;strong&gt;The Fortran Optimizing Compiler&lt;/strong&gt;. Turns high-level code into efficient computer-readable code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1959: &lt;strong&gt;QR Algorithm for Computing Eigenvalues&lt;/strong&gt;. Another crucial matrix operation made swift and practical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1962: &lt;strong&gt;Quicksort Algorithms for Sorting&lt;/strong&gt;. For the efficient handling of large databases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1965: &lt;strong&gt;Fast Fourier Transform&lt;/strong&gt;. Perhaps the most ubiquitous algorithm in use today, it breaks down waveforms (like sound) into periodic components.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1977: &lt;strong&gt;Integer Relation Detection&lt;/strong&gt;. A fast method for spotting simple equations satisfied by collections of seemingly unrelated numbers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1987: &lt;strong&gt;Fast Multipole Method&lt;/strong&gt;. A breakthrough in dealing with the complexity of n-body calculations, applied in problems ranging from celestial mechanics to protein folding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I would replace &lt;strong&gt;Integer Relation Detection&lt;/strong&gt; with &lt;a href=&quot;http://en.wikipedia.org/wiki/PageRank&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;PageRank&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7993" LastActivityDate="2010-11-19T21:01:21.300" CommunityOwnedDate="2011-02-13T09:34:31.083" CommentCount="2" />
  <row Id="20146" PostTypeId="2" ParentId="20141" CreationDate="2010-11-19T21:02:18.157" Score="1" ViewCount="" Body="&lt;p&gt;The human brain works the way it does because it is a massively parallel device...Each neuron is a computing system in and of itself, working independently of the others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To simulate this in a Turing machine, you have to &quot;touch&quot; each simulated neuron one at a time.  Sure, you can use multiple threads and multiple processors to do this, but you don't have &lt;a href=&quot;http://hypertextbook.com/facts/2002/AniciaNdabahaliye2.shtml&quot; rel=&quot;nofollow&quot;&gt;billions of agents&lt;/a&gt; available to run simultaneously.  Consequently, the fastest Turing machines we have are still far outpaced by the computing capacity of the human brain.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is especially humbling considering that our Turing machines run at some significant fraction of the speed of light, while the human brain does its work with nerve impulses travelling at about &lt;a href=&quot;http://hypertextbook.com/facts/2002/DavidParizh.shtml&quot; rel=&quot;nofollow&quot;&gt;20 meters per second.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-19T21:07:36.343" LastActivityDate="2010-11-19T21:07:36.343" CommentCount="5" />
  <row Id="20151" PostTypeId="2" ParentId="20116" CreationDate="2010-11-19T21:10:30.507" Score="0" ViewCount="" Body="&lt;p&gt;I've dabbled in Django and Rails and found Rails to more of my liking. That being said, I prefer ASP.Net MVC 2 much better than Rails. I'm much faster in MVC (or even just web forms) than Rails simply because my mind &quot;works better&quot; with C#. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me it comes down to what you know and what you enjoy. I've heard from many people that Ruby is fun, not to me it isn't. C# is fun! Haskell is fun! If you don't enjoy the language/framework then you won't be as fast as a &quot;slower&quot; framework you enjoy.&lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-11-19T21:10:30.507" />
  <row Id="20155" PostTypeId="2" ParentId="20128" CreationDate="2010-11-19T21:23:32.460" Score="21" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Data_compression&quot; rel=&quot;nofollow&quot;&gt;Data compression algorithms&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In computer science and information&#xA;  theory, data compression or source&#xA;  coding is the process of encoding&#xA;  information using fewer bits (or other&#xA;  information-bearing units) than an&#xA;  unencoded representation would use,&#xA;  through use of specific encoding&#xA;  schemes.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-11-19T21:23:32.460" CommunityOwnedDate="2011-02-13T09:34:31.083" CommentCount="2" />
  <row Id="20157" PostTypeId="2" ParentId="20128" CreationDate="2010-11-19T21:25:36.797" Score="8" ViewCount="" Body="&lt;p&gt;If I had to list the top 3 most important algorithms in use today in computers, I would say:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Binary_search_algorithm&quot; rel=&quot;nofollow&quot;&gt;Binary Search&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Quicksort&quot; rel=&quot;nofollow&quot;&gt;Quicksort&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm&quot; rel=&quot;nofollow&quot;&gt;Dijkstra's algorithm&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The &lt;strong&gt;Binary Search&lt;/strong&gt; algorithm is used constantly to narrow down on an item within a sorted list, most index lookups will use something along these lines at some point.  This algorithm provides a search of an ordered list in o(log n) time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;strong&gt;Quicksort&lt;/strong&gt; algorithm finally managed to get sort down to O(n log n) average case and O(n^2) worse case.  Sorting is one of the most common data tasks in a computer and one of the most expensive, improving the average case sort was a huge step forward in efficiency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Dijkstra's algorithm&lt;/strong&gt; as has been said produces a shortest path between points within a graph.  This is used widely for all manner of routing applications, most extensively with regard to the internet itself ensuring that the quickest path through the tangled web of interconnected routers is used.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-11-19T21:25:36.797" CommunityOwnedDate="2011-02-13T09:34:31.083" CommentCount="3" />
  <row Id="20159" PostTypeId="2" ParentId="20080" CreationDate="2010-11-19T21:45:48.027" Score="6" ViewCount="" Body="&lt;p&gt;I believe PHP, as a free language, that is interpreted and used on the web, has a very high proportion of non-professional, untrained coders who are not fully aware of why they should code defensively and just see the warnings as another unnecessary error.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hear these points from junior developers and self-taught script-coders all the time:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Why initialise a variable if it will come in to existence anyway?&lt;/li&gt;&#xA;&lt;li&gt;Why check if something exists before we use it, undefined equates to false anyway?&lt;/li&gt;&#xA;&lt;li&gt;If I prefix with @ it fixes my code, why complicate things?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If they have never experienced a strongly-typed language, or experienced the pitfalls of undeclared/uninstantiated variables, then they take some convincing.  I find they usually give in once they have experienced the pleasure of debugging code for an hour or so to find it was a typo in a variable name causing the trouble.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other strong factor is PHP's use in the web industry, which tends to be far more concerned with throughput than safety and code quality.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-11-19T21:45:48.027" CommentCount="4" />
  <row Id="20160" PostTypeId="2" ParentId="20128" CreationDate="2010-11-19T21:53:11.480" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Bayes%27_theorem&quot; rel=&quot;nofollow&quot;&gt;Bayes' Theorem&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has probably contributed the most to keeping the amount of time-wasting spam in my inbox to a manageable level. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, I'm it has been used in numerous other worthwhile applications, but SPAM-killing is my favorite.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-19T21:53:11.480" CommunityOwnedDate="2011-02-13T09:34:31.083" CommentCount="3" />
  <row Id="20161" PostTypeId="2" ParentId="20002" CreationDate="2010-11-19T21:54:57.813" Score="1" ViewCount="" Body="&lt;p&gt;The saying &quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Eating_your_own_dog_food&quot; rel=&quot;nofollow&quot;&gt;Eating your own dog food&lt;/a&gt;&quot; address this issue. If your top-cool-rockstar-coder gives birth to a library he never used in practice, how can he say that it is a good one?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main reasons to develop functionalities into framework are&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1.It is useful to the developper&lt;br&gt;&#xA;2.There are a few cases where it has been useful&lt;br&gt;&#xA;3.It might be useful to others  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you've hit 2, the functionality is already there, how can you pass it to someone else?&lt;/p&gt;&#xA;" OwnerUserId="3250" LastActivityDate="2010-11-19T21:54:57.813" />
  <row Id="20163" PostTypeId="2" ParentId="20080" CreationDate="2010-11-19T22:05:29.603" Score="1" ViewCount="" Body="&lt;p&gt;Interesting.  I hardly ever use isset().  My PHP code is rarely in a state where I dont know if a variable has been set in the first place.  Every GET or POST variable used is accessed via a function that will provide it a default if it doesnt exist.  Default values in function calls are typically explicitly set to 0 or empty strings.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-19T22:05:29.603" CommentCount="1" />
  <row Id="20164" PostTypeId="2" ParentId="20109" CreationDate="2010-11-19T22:14:33.413" Score="0" ViewCount="" Body="&lt;p&gt;Here's some things I've learned from error monitoring in our applications:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Being able to tail a rolling log file (I generally use log4net/log4j for logging in applications and &lt;a href=&quot;http://www.baremetalsoft.com/baretail/index.php&quot; rel=&quot;nofollow&quot;&gt;BareTail&lt;/a&gt; to follow the log) is really useful for being able to check on the current health of a system&lt;/li&gt;&#xA;&lt;li&gt;For seeing when problems were introduced and the rate at which problems occur it's nice to have them in a database with timestamps to that you can run reports.&lt;/li&gt;&#xA;&lt;li&gt;The ability to send email/sms/voice alerts is super helpful in making sure systems stays up, but you have to have the ability to easily customize what types of errors that alert you. If you're getting 800 error emails a day your bound to miss the &quot;Oh no the data center is on fire&quot; one.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've had great results for log4net because it makes it really easy to log to multiple places and make changes to the logging configuration easy as well.&lt;/p&gt;&#xA;" OwnerUserId="5323" LastActivityDate="2010-11-19T22:14:33.413" />
  <row Id="20165" PostTypeId="2" ParentId="20036" CreationDate="2010-11-19T22:16:50.643" Score="1" ViewCount="" Body="&lt;p&gt;It's neaty and nifty and tickles your brain. That's fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also, IMHO, a classic bandwagon. A solution looking for a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's like all those startup companies founded by engineers dazzled with a favorite idea, that burn brightly for a while, but are quietly overtaken by companies founded on providing what is needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's the new idea I would like to see take off, need-based programming, not nifty-idea-based programming. Maybe that sounds mundane, but I think it can in fact be pretty creative, and nifty.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-11-19T22:16:50.643" />
  <row Id="20166" PostTypeId="2" ParentId="20040" CreationDate="2010-11-19T22:20:38.243" Score="1" ViewCount="" Body="&lt;p&gt;The reason I stll use this bastardized variation of Hungarian Notation in my GUI code is simply because Visual Studio has a convenient dropdown list of controls in the code page. They are listed alphabetically, and when looking to code an event handler for a Button, I can scroll to the &quot;btn&quot; section and find the one I want easily. Even if I don't remember it's exact name, I'll remember it when I see it. Otherwise, I'd have to hunt through the whole list tyring to remember the button's name, or go find it on the form.&lt;/p&gt;&#xA;" OwnerUserId="4202" LastActivityDate="2010-11-19T22:20:38.243" />
  <row Id="20167" PostTypeId="2" ParentId="20038" CreationDate="2010-11-19T22:22:23.310" Score="1" ViewCount="" Body="&lt;p&gt;My company falls on to that list.  For us (developers at least, I can't speak for all departments), it's no p2p applications (I'm assuming that's mostly for bandwidth concerns) and no NSFW sites. Besides that it's open and it is left you to you/your manager to make sure your not just sitting on facebook all day.  It's pretty nice.&lt;/p&gt;&#xA;" OwnerUserId="5323" LastActivityDate="2010-11-19T22:22:23.310" />
  <row Id="20168" PostTypeId="2" ParentId="20128" CreationDate="2010-11-19T22:27:10.243" Score="29" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Fast_Fourier_transform&quot; rel=&quot;nofollow&quot;&gt;Fast Fourier transform (FFT)&lt;/a&gt;&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The FFT is an extremely important and widely-used method of &lt;strong&gt;extracting&lt;/strong&gt; useful information from &lt;strong&gt;sampled signals&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A fast Fourier transform (FFT) is an efficient algorithm to compute the discrete Fourier transform (DFT) and its inverse. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-11-19T22:27:10.243" CommunityOwnedDate="2011-02-13T09:34:31.083" CommentCount="1" />
  <row Id="20169" PostTypeId="1" CreationDate="2010-11-19T22:36:46.697" Score="4" ViewCount="432" Body="&lt;p&gt;I really like programming, especially systems programming.  But what I absolutely dislike is web programming. It just seems overly boring to me and a waste of talent.  I really cannot see the reason of having fancy flashy websites when plain text and hyperlinks work fine.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So do you think non web application programmers will be able to survive in the future?&lt;/p&gt;&#xA;" OwnerUserId="7997" LastActivityDate="2010-11-20T14:30:08.977" ClosedDate="2010-11-21T15:58:50.620" Title="Will programmers be able to survive without web programming in the future?" Tags="&lt;career&gt;&lt;web-development&gt;&lt;career-advice&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="1" />
  <row Id="20170" PostTypeId="2" ParentId="20169" CreationDate="2010-11-19T22:42:32.830" Score="5" ViewCount="" Body="&lt;p&gt;Someone needs to program operating systems, drivers, platforms, yadda, yadda, yadda.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not to mention that things like this go in cycles.  The web and distributed computing is hot right now and will be for a while.  However, that will not last forever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not trying to suggest that the web and distributed computing are fads, nor that they will be going away anytime soon.  In fact, I took up web development just over 10 years ago because I saw huge potential.&lt;/p&gt;&#xA;" OwnerUserId="149" LastEditorUserId="149" LastEditorDisplayName="" LastEditDate="2010-11-20T00:10:41.947" LastActivityDate="2010-11-20T00:10:41.947" CommentCount="5" />
  <row Id="20173" PostTypeId="2" ParentId="20040" CreationDate="2010-11-19T22:46:30.847" Score="1" ViewCount="" Body="&lt;p&gt;Try to imagine whether someone else will be able to figure out what the variable is for based on the name.  backButton and btnBack can probably be deduced, but vfmLogin is pretty cryptic.  I try to avoid acronyms for variable names.  Something more clear is usually just a few more keystrokes, and it will usually be much more readable.&lt;/p&gt;&#xA;" OwnerUserId="4949" LastActivityDate="2010-11-19T22:46:30.847" />
  <row Id="20174" PostTypeId="2" ParentId="20169" CreationDate="2010-11-19T23:00:16.627" Score="14" ViewCount="" Body="&lt;h2&gt;&lt;strong&gt;Usability, usability, usability.&lt;/strong&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Plain text and hyperlinks may work fine, but they don't make a website nor an application easy to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Saying that web programming is a waste of talent for that reason is like saying moving from DOS to graphical operating systems was a waste of time, because DOS worked just fine!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Non web application programmers will be able to survive in the future, but software without &lt;em&gt;some&lt;/em&gt; form of web use for collaboration and/or communication is likely to become scarcer.&lt;/p&gt;&#xA;" OwnerUserId="7756" LastEditorUserId="7756" LastEditorDisplayName="" LastEditDate="2010-11-19T23:47:35.807" LastActivityDate="2010-11-19T23:47:35.807" CommentCount="4" />
  <row Id="20175" PostTypeId="2" ParentId="6847" CreationDate="2010-11-19T23:03:42.397" Score="1" ViewCount="" Body="&lt;p&gt;Anything other than what I'm using at the moment, whatever that may be.&lt;/p&gt;&#xA;" OwnerUserId="7756" LastActivityDate="2010-11-19T23:03:42.397" CommunityOwnedDate="2010-11-19T23:03:42.397" CommentCount="1" />
  <row Id="20176" PostTypeId="2" ParentId="20040" CreationDate="2010-11-19T23:07:07.717" Score="1" ViewCount="" Body="&lt;p&gt;Hungarian was good when we didn't have IDEs and plugins for the IDEs that would let us find what we were looking for other than by cruising through a drop down list that might, if you were lucky, be alphabetized. With VS2008 or 2010 and resharper, I'm 2 or 3 keystrokes from a search dialog to let me type in &quot;Button&quot; and finding &lt;code&gt;BackButton&lt;/code&gt;, &lt;code&gt;OkButton&lt;/code&gt;, &lt;code&gt;CancelButton&lt;/code&gt; far more quickly than hunting through a drop down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, I've gotten tired of goofy naming conventions. If I wrote a manual on how to use my software I would direct my user to use the &quot;Back button&quot;, therefore it's fairly intuitive to name the object &lt;code&gt;BackButton&lt;/code&gt;. Your vocabulary remains the same when your talking to a Business Analyst as when you're talking to another programmer and I can't see anything wrong in that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other problem with any sort of abbreviation as a prefix that isn't super intuitive is that in an OO world, it quickly falls flat on it's face and everything ends up being &lt;code&gt;obj&lt;/code&gt; or &lt;code&gt;ctrl&lt;/code&gt; (for the UI components). I really can't find much use in that. Those drop down lists (esp the VS drop downs that only do 1 character for type ahead) become a pain in that case. When there's 3 &lt;code&gt;btns&lt;/code&gt; on a list, hey, that's easy. When there's 20 &lt;code&gt;ctrls&lt;/code&gt; on that list, you're back at square one.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-11-19T23:07:07.717" />
  <row Id="20177" PostTypeId="2" ParentId="20169" CreationDate="2010-11-19T23:07:45.207" Score="2" ViewCount="" Body="&lt;p&gt;I feel the same way...really dislike the clunkiness of web development, when compared with the relative seamlessness and elegance of writing a monolithic, clean desktop app.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, having to get into web stuff on the job is a big part of what caused me to &lt;a href=&quot;http://programmers.stackexchange.com/questions/11425/burned-out-on-programming-and-given-up&quot;&gt;burn out&lt;/a&gt; over the last 18 months, and almost give up on programming. But then I came back from the brink, identified all the causes properly (this wasn't the only one), and am now going to go on a sabbatical instead. Hoping to get away from web development when I make my re-entry later next year, but we'll see how it goes. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it'll be entirely possible to survive as a non-web developer into the future. There are many applications I can think of (and which I've worked on in previous jobs) which I just can't see ever migrating to the web. Not even in very stripped-down &quot;lite&quot; versions. Of course, the sheer amount of web development that goes on makes it seem like it's pushing other forms of programming out, but I think it's more a case of so much web development going on, that the noise drowns out the other forms - but they're still there.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-19T23:07:45.207" CommentCount="1" />
  <row Id="20178" PostTypeId="1" CreationDate="2010-11-19T23:30:38.957" Score="11" ViewCount="740" Body="&lt;p&gt;I need a way to filter out resumes of folks who just copy-and-paste code then hope it works, and check it in if it does.  All this happens without having an understanding (or care) to understand the rest of the code in the system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure I know that copying and pasting code is part of learning a new object, control, etc... but how can one tell if that accounts for 70% (or more) of their development career?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've come across some senior level guys perhaps whose skills are so outdated or irrelevant for the project, that all they do is google, copy-then-paste some code without thinking about the solution as a whole.  As a result we have a mismash of JSON, AJAX, callbacks, ASMX, WCF and postbacks in the same project.  It is clear there is no consistency or logic behind where each technology is being used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the worst case, this type of developer creates security issues and vectors for attack.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Question&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How would you recommend I filter out people who have a poor programming background?  Can I do it at the resume level?  If not, how do I do this during the interview.&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-11-28T22:16:34.130" Title="How can I quickly weed out &quot;copy &amp; paste&quot; coders?" Tags="&lt;career&gt;&lt;project-management&gt;&lt;management&gt;&lt;resume&gt;&lt;non-technical-manager&gt;" AnswerCount="9" CommentCount="6" FavoriteCount="2" />
  <row Id="20179" PostTypeId="2" ParentId="20169" CreationDate="2010-11-19T23:34:38.097" Score="0" ViewCount="" Body="&lt;p&gt;Web programming allows for non-textual presentation of data, which is much easier for the human mind to grasp than just columns of numbers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is much easier to see a unusual pattern in a graph over the last 24 hours than in 86400 numbers.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-19T23:34:38.097" CommentCount="2" />
  <row Id="20180" PostTypeId="2" ParentId="20178" CreationDate="2010-11-19T23:34:39.810" Score="4" ViewCount="" Body="&lt;p&gt;I would suggest FizzBuzz that Jeff Atwood mentions in the post at &lt;a href=&quot;http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Write a program that prints the numbers from 1 to 100. But for multiples of three print &quot;Fizz&quot; instead of the number and for the multiples of five print &quot;Buzz&quot;. For numbers which are multiples of both three and five print &quot;FizzBuzz&quot;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-11-19T23:34:39.810" CommentCount="3" />
  <row Id="20181" PostTypeId="2" ParentId="9245" CreationDate="2010-11-19T23:36:54.910" Score="0" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;If (HeartBeatTicker.Timeout)&#xA;{&#xA;    // Gotta keep my baby happy ;)&#xA;    Print3DToyForWife();&#xA;&#xA;    foreach(address in addressBook.Friends)&#xA;    {&#xA;        SendEmailMessage(address, &quot;I'm Dead Bitches!!!&quot;);&#xA;    }&#xA;&#xA;    foreach(address in addressBook.Enemies)&#xA;    {&#xA;        SendEmailMessage(address, &quot;It has been a good life... I'll be seeing you in your nightmares&quot;);&#xA;    }&#xA;&#xA;    ActivateGraveAntiPeeingTaserDefenses();&#xA;&#xA;    ReleaseTheClones();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1256" LastActivityDate="2010-11-19T23:36:54.910" />
  <row Id="20182" PostTypeId="2" ParentId="20178" CreationDate="2010-11-19T23:40:32.913" Score="0" ViewCount="" Body="&lt;p&gt;I would say that the problem with your candidates isn't that they can't program at all, but that they don't have a feel for using the right tool for the job. My suggestion is an essay question where they would be given high-level requirements for a new system and asked to provided an architecture and justify their component choices. But keep the FizzBuzz for the candidates who can't code at all without a browser.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-19T23:40:32.913" />
  <row Id="20183" PostTypeId="2" ParentId="20178" CreationDate="2010-11-19T23:46:44.140" Score="22" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I've come across some senior level&#xA;  guys perhaps whose skills are so&#xA;  outdated or irrelevant for the&#xA;  project, that all they do is google,&#xA;  copy-then-paste some code without&#xA;  thinking about the solution as a&#xA;  whole. As a result we have a mismash&#xA;  of JSON, AJAX, callbacks, ASMX, WCF&#xA;  and postbacks in the same project. It&#xA;  is clear there is no consistency or&#xA;  logic behind where each technology is&#xA;  being used.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't think the skills of your developers are the problem.  Your problem lies elsewhere, perhaps a team leader or architect who doesn't have the self-confidence to &quot;encourage&quot; better coding disciplines, or a management team that doesn't understand the importance of managing technical debt, and doesn't give their developers the time and resources to do so.  Does your company hold code reviews?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Leadership may be the problem, not copy-paste developers.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-19T23:46:44.140" CommentCount="4" />
  <row Id="20184" PostTypeId="1" CreationDate="2010-11-19T23:51:48.757" Score="0" ViewCount="69" Body="&lt;p&gt;I am trying to come up with meaningful names for the components of a data management system that user's see.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main user facing parts are the reporting side of it, and also the data entry/browsing side of it.  There are some fairly distinct domains of data that are dealt with, and the business users are on board with the idea of prefixing the domain name where appropriate.  So if I was creating a data management system for a farm, then I might have Livestock, Crops, Employees.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am really struggling though with naming the portal which users will use to navigate the data and edit the data.  This would be the front end for the operational system.  I see often software packages use the domain suffixed with &quot;Information System&quot;, such as &quot;HR Information System&quot; or in this example &quot;Livestock Information System&quot; or Management System.  This seems really wordy and doesn't really convey to the average user that this is used to edit data, and browse the data.  When I say browse, think of an HR system where you might browse through departments, and then select an employee, and that employees manager, etc.  Very interactive view of the data, but if you have permissions you can edit it.  So &quot;Livestock Browser&quot; or &quot;Livestock Navigator&quot; doesn't really describe the editing capability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every name I've come up with, I am taking the step of imagining myself saying to the user &quot;Well if you want to see/edit that, then you should go to the 'Livestock Management System'&quot;, and to me that just sounds unintuitive to the average user.  Additionally, it is vague enough that it could be used to refer to the entire system which includes reporting as well, so it is ambiguous.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of all the different components of this system, this name I think will be the most important because it will be the most common component that users will see the name of(as opposed to back end components where I can live with a bad name).  I don't want to pick something that makes me feel arrogant/smug everytime I mention the application to a user :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I've considered so far:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Livestock Editor&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Livestock Access&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Livestock Navigator&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Livestock&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Livestock Info/Information&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Livestock Data&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Livestock Manager&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Livestock Management&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Livestock Command&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Livestock Tracking&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Livestock Administration&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On any of the above also considered:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Suffix Suite? &quot;Livestock Tracking Suite&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Suffix System? &quot;Livestock Tracking System&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone have any suggestions/ideas for a better name?&lt;/p&gt;&#xA;" OwnerUserId="8004" LastActivityDate="2010-11-20T02:31:56.243" Title="Name for user facing operational frontend of a data management system?" Tags="&lt;naming&gt;" AnswerCount="2" />
  <row Id="20185" PostTypeId="2" ParentId="20169" CreationDate="2010-11-19T23:53:04.997" Score="2" ViewCount="" Body="&lt;p&gt;Move to programming for Mobile Devices like iOS, Android, or WindowsMobile. That seems to be an emerging field even as web apps continue to replace desktop apps.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-19T23:53:04.997" />
  <row Id="20186" PostTypeId="2" ParentId="20184" CreationDate="2010-11-19T23:59:18.857" Score="1" ViewCount="" Body="&lt;p&gt;Why not just call it, &quot;The farm?&quot;  If it is a model of a farm, this seems like a logical way to just name it and not try to get fancy about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a web front-end, you could just call it &quot;data.mycompany.com&quot; as this is a view on the data and not some other kind of area.  I consider this separate but possibly useful if you do decide to have a web UI at some point.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-19T23:59:18.857" CommentCount="2" />
  <row Id="20187" PostTypeId="2" ParentId="20178" CreationDate="2010-11-20T00:04:23.127" Score="11" ViewCount="" Body="&lt;p&gt;The way to weed out programmers who cannot program is to set them a practical programming exercise as part of the screening phase or interview phase.  (The latter is probably better because you can control the environment to prevent cheating.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I don't think that is really going to address your problem.  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;... we have a mismash of JSON, AJAX, callbacks, ASMX, WCF and postbacks in the same project. It is clear there is no consistency or logic behind where each technology is being used.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;IMO, the real problem here is that your team is not doing enough internal code review, and not developing a &quot;play book&quot; of preferred solutions to known problems.  This is partly a culture issue, partly a communication issue, and (probably) partly an issue with project deadlines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another issue is that project typically has a long lifespan, and during that lifespan, new technologies / techniques will appear, and old ones are likely to fall out of favor.  If you want to avoid a &quot;dogs breakfast&quot; use of technologies / techniques, you need to either:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;set and enforce a list of technologies / techniques that may be used per project, or&lt;/li&gt;&#xA;&lt;li&gt;invest effort in refreshing the technologies used by a project.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-11-20T00:19:00.940" LastActivityDate="2010-11-20T00:19:00.940" CommentCount="3" />
  <row Id="20188" PostTypeId="2" ParentId="20178" CreationDate="2010-11-20T00:06:16.180" Score="6" ViewCount="" Body="&lt;p&gt;Hire people on 3 month probation. Fire them if they suck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't INSPECT you can't EXPECT. Code reviews, audit tools. A CI server can run these automatically.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask real questions in your interviews, as in questions from real code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get them to write code on the whiteboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are a non-technical manager, you are unqualified to judge this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are unqualified, get a reputable senior professional consultant to do the testing.&#xA;Ask your existing people, and business competitors if they know a 100x productive person.&#xA;Pay them to do the interviewing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to run a hospital without a head of surgery, go right ahead.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-11-20T00:06:16.180" CommentCount="2" />
  <row Id="20189" PostTypeId="2" ParentId="19843" CreationDate="2010-11-20T00:08:55.553" Score="5" ViewCount="" Body="&lt;p&gt;Long before there was an internet...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was given a manual for a language that they knew I didn't know, paper and pen, and put in a room with a problem for a half hour.  I think the problem was something about synchronizing two databases using this language, but the actual problem wasn't that important. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What was important was how we dealt with a problem when we didn't know the language.  Some people just sat there for the half hour, because they didn't know.  I started working it out anyway.  That was testing attitude, is the person a problem solver, or do they give up easily? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got the job.&lt;/p&gt;&#xA;" OwnerUserId="88" LastActivityDate="2010-11-20T00:08:55.553" CommentCount="2" />
  <row Id="20191" PostTypeId="2" ParentId="9245" CreationDate="2010-11-20T00:19:21.110" Score="0" ViewCount="" Body="&lt;p&gt;The Submarine guys have a knob you have to turn to a different position every watch. If you don't, the rescue beacon is fired.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A really easy way &quot;web centric&quot; way is a script that scans the web ( mostly the stack exchange sites) and if you don't post in 3 days, you're dead :-)&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A Google news alert for your death notice !&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A script that gathers other evidence (stackexchange, facebook , IVR system that phones your Mon, etc)  is triggered by the alert email.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-11-20T00:19:21.110" />
  <row Id="20192" PostTypeId="2" ParentId="20169" CreationDate="2010-11-20T00:26:18.027" Score="3" ViewCount="" Body="&lt;p&gt;There's more to web programming than flashy front ends. How do you think Stack Exchange was developed?&lt;/p&gt;&#xA;" OwnerUserId="5723" LastActivityDate="2010-11-20T00:26:18.027" />
  <row Id="20193" PostTypeId="1" CreationDate="2010-11-20T00:56:21.577" Score="0" ViewCount="70" Body="&lt;p&gt;Whole article I've found there: &lt;a href=&quot;http://mpowir.org/wp-content/uploads/2010/11/ColleciveIntelligence1.pdf&quot; rel=&quot;nofollow&quot;&gt;http://mpowir.org/wp-content/uploads/2010/11/ColleciveIntelligence1.pdf&lt;/a&gt; (scan from science magazine)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general: authors propose a method to measure performance of human groups and found a valuable factor c that explains a group’s performance on a wide variety of tasks..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some facts about c: 1) the c is a much better predictor of group performance on the criterion tasks than the average or maximum individual intelligence; 2) many of the factors one might have expected to predict group performance—such as group cohesion, motivation, and satisfaction—did not 3) c was negatively correlated with the variance in the number of speaking turns by group members&lt;/p&gt;&#xA;&#xA;&lt;p&gt;so what c is: 4) c was positively and significantly correlated with the proportion of females in the group.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess there is more PR, since authors also say &quot;In a regression analysis... although only social sensitivity reached statistical significance&quot;. (BTW it sounds like &quot;performance of group is the performance of group&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, I would like to know are those two other factors &quot;motivation&quot; and &quot;average or maximum individual intelligence&quot; really not anymore in favor? What is your experience? &lt;/p&gt;&#xA;" LastActivityDate="2010-11-20T00:56:21.577" ClosedDate="2010-11-20T03:56:52.667" Title="Reading “Evidence for a Collective Intelligence Factor in the Performance of Human Groups”" Tags="&lt;team&gt;&lt;collaboration&gt;" CommentCount="1" />
  <row Id="20194" PostTypeId="2" ParentId="11346" CreationDate="2010-11-20T01:13:59.793" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Women&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, because what environment isn't better with a general female presence. Flirting is a great stress reliever when I need a break from the seriousness of coding. The lack of interest that most women (that I've come across) have in programming forces me to shut up about it and wash my mind of the tedious details for a little bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My issue isn't working on code, it's affording myself the time to take a break from it to stay sane. Women are personally my favorite distraction.&lt;/p&gt;&#xA;" OwnerUserId="1256" LastActivityDate="2010-11-20T01:13:59.793" CommentCount="3" />
  <row Id="20195" PostTypeId="2" ParentId="16807" CreationDate="2010-11-20T01:43:40.513" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Closing out system resources gracefully to recover from an error&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance. If you're running a service in the background that doesn't provide feedback to the user, you may not want to push an indication of the error to the user but you &lt;strong&gt;do&lt;/strong&gt; need to close out the resources being used in a graceful manner.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;try&#xA;{&#xA;    // execution code here&#xA;}&#xA;catch(Exception e)&#xA;{&#xA;    // do nothing here&#xA;}&#xA;finally&#xA;{&#xA;    // close db connection&#xA;    // close file io resource&#xA;    // close memory stream&#xA;    // etc...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Ideally, you'd use the catch in debug mode to catch errors and print them to the console or to a log file for testing. In a production environment, background services generally are expected to not interrupt the user when an error is thrown so the error output should be suppressed. &lt;/p&gt;&#xA;" OwnerUserId="1256" LastActivityDate="2010-11-20T01:43:40.513" />
  <row Id="20196" PostTypeId="1" CreationDate="2010-11-20T02:18:04.477" Score="0" ViewCount="186" Body="&lt;p&gt;What sites, twitter accounts, FOSS software should a &lt;a href=&quot;http://en.wikipedia.org/wiki/White_hat&quot; rel=&quot;nofollow&quot;&gt;white-hat&lt;/a&gt; code 'hacker' follow these days?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Do Include:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Late breaking information on new security issues (RSS, Twitter, etc)&lt;/li&gt;&#xA;&lt;li&gt;A website that tracks unpatched security issues per vendor&lt;/li&gt;&#xA;&lt;li&gt;Twitter accounts, blogs, etc from well known people in the information security world.&lt;br&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Who are these people?  &lt;/li&gt;&#xA;&lt;li&gt;What are they known for?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Communities that publish information regarding zero day exploits&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Blogs, twitter, conferences, chat rooms (irc)&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;A subject matter expert that provides up to date guidance on Cryptology (algorithm, key length, etc.), and up to date information on how secure each one &lt;/li&gt;&#xA;&lt;li&gt;Open Source Software &amp;amp; tools that assist developers interested in the security space&lt;/li&gt;&#xA;&lt;li&gt;Information regarding bills and laws that apply computer hacking in the US and abroad (preferably in language a programmer would understand).&lt;br&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Would probably include CAN-SPAM act, and per-state privacy legislation&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;A site that publishes an &lt;strong&gt;exhaustive&lt;/strong&gt; list of XSS techniques and permutations; and hopefully code that you can use to protect yourself&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Please, Do NOT include:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Guidance that is common among the infrastructure and network support groups&#xA;&lt;ul&gt;&#xA;&lt;li&gt;An exception would be the recent ASP.NET security issue.&lt;/li&gt;&#xA;&lt;li&gt;Any list or notification that doesn't focus on code or programming.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Software and tools that aren't open source&lt;/li&gt;&#xA;&lt;li&gt;Deployment checklists (especially if there is no code associated with it)&lt;/li&gt;&#xA;&lt;li&gt;General forums and discussion lists, unless they are well known and trusted by the security community&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Since readers are likely not an expert in all these areas, please post one site/resource per post and let us know a little about it.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since this is &quot;programmers&quot;.stackexchange.com I hope to get a more diverse range of responses than the typical sysadmin site.  In my experience, sysadmins stay away from code, and developers really have no fear when it comes down to the wire.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Question migrated to &lt;a href=&quot;http://security.stackexchange.com/questions/571/what-security-resources-should-a-white-hat-developer-follow-these-days&quot;&gt;http://security.stackexchange.com/questions/571/what-security-resources-should-a-white-hat-developer-follow-these-days&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="175" LastEditorUserId="175" LastEditorDisplayName="" LastEditDate="2010-11-21T02:33:41.303" LastActivityDate="2010-11-21T02:33:41.303" ClosedDate="2010-11-21T02:32:57.060" Title="What security resources should a white-hat coder follow these days?" Tags="&lt;career-advice&gt;&lt;security&gt;&lt;trends&gt;&lt;ethics&gt;&lt;encryption&gt;" AnswerCount="1" CommentCount="6" />
  <row Id="20197" PostTypeId="2" ParentId="20184" CreationDate="2010-11-20T02:31:56.243" Score="0" ViewCount="" Body="&lt;p&gt;Just slightly tongue-in-cheek but I think you need a catch-all title &quot;Sh*t Kicker&quot; for the ONE person who ends up having to do every job that the assigned people won't do. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course management and HR will freak over that name, but everyone else who actually does work on the system will love it.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-11-20T02:31:56.243" />
  <row Id="20198" PostTypeId="2" ParentId="20178" CreationDate="2010-11-20T02:32:36.483" Score="1" ViewCount="" Body="&lt;p&gt;I ask three interview questions&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Write a linked list capable of storing some numeric type in java without importing anything from the collections framework&lt;/li&gt;&#xA;&lt;li&gt;Write code showing how you can add/remove nodes from that list &lt;/li&gt;&#xA;&lt;li&gt;Write code showing how you can get the max/min from that list &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I've seen people complete this in 5 minutes and seen people struggle for 30 minutes before giving up. &lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-11-20T02:32:36.483" CommentCount="3" />
  <row Id="20199" PostTypeId="2" ParentId="1785" CreationDate="2010-11-20T02:42:54.080" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Software Licensing Basics&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The difference between a &quot;viral&quot; copyleft license (GPL) when compared to closed-source-friendly Apache, and non-viral MS-PL/MS-RL.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When you should use LGPL, and when not to.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;License compatibility.  For example, you may link a modern Apache license'd library to a GPLv3 code, but not GPL 1 or 2.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you own the source code in it's entirety, you may publish it under as many (or few) licenses as you wish.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Note to S.O. community:&lt;/em&gt; &lt;br/&gt;&#xA;Please feel free to edit this answer as you see fit... mainly for information not suited for the comments section below.&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-11-20T02:42:54.080" CommunityOwnedDate="2010-11-20T02:42:54.080" />
  <row Id="20200" PostTypeId="2" ParentId="20116" CreationDate="2010-11-20T03:06:00.277" Score="4" ViewCount="" Body="&lt;p&gt;As with all questions of this sort, the answer is &quot;it depends&quot;. Factors to consider include how comfortable you are with the language/framework and what features the project requires. Having said that, I've built sites using a number of frameworks, each with its own strengths and weaknesses:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Groovy on Rails&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I need to get a site up quickly for anything &lt;em&gt;professional&lt;/em&gt;, Grails would probably be my first choice. &lt;a href=&quot;http://www.grails.org/GORM&quot; rel=&quot;nofollow&quot;&gt;GORM&lt;/a&gt; is far and away the simplest and most intuitive ORM that I've tried, the MVC paradigm is very well executed, there is 0 configuration to start coding (no worrying about URLs, DB patches, anything), very rapid iteration (just refresh the page), seamless Java integration (a good thing in the business world), and some wonderful plugins (e.g. &lt;a href=&quot;http://www.grails.org/plugin/searchable&quot; rel=&quot;nofollow&quot;&gt;Searchable&lt;/a&gt; is a thing of beauty). Biggest downside is that hosting can be tough to find (and expensive).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Ruby on Rails&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My experience with RoR is very similar to that of Grails: MVC well executed. On the positive side, it has a bigger community, so the online resources (documentation, FAQ, code samples, etc) are very plentiful, there are TONS of plugins, Ruby is a bit more flexible/expressive/&quot;funky&quot;,&#xA;and it's much easier to find hosting (esp. for personal projects); on the negative side, the dependency management/setup sucks (I've used RubyGems on Windows, Ubuntu, Fedora and OSX and ran into non-trivial problems on each one), there is &lt;em&gt;slightly&lt;/em&gt; more configuration/overhead than Grails (in particular, dealing with routes.rb and tons of db migration files), and apparently, RoR has some serious scalability issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;PHP&lt;/strong&gt; (including the CakePHP framework)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I need to quickly hack something out or build a site for &lt;em&gt;personal&lt;/em&gt; uses, then I'd probably go with PHP. PHP is far and away the easiest language to learn and deploy: download any of the convenient LAMP packages out there, click a couple times, and begin hacking away. The community is bigger than that of RoR, so documentation is plentiful and there are countless plugins (easily &quot;installed&quot; by just dropping in the php file and refreshing the page). The language is simple to learn, but some things in PHP are just downright strange and it takes a lot of discipline to avoid ugly code. The CakePHP framework enforces a nice MVC paradigm to help keep things orderly, and for the most part is on par with RoR, although I personally found it slightly more unintuitive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Java&lt;/strong&gt; (servlets, JSPs, JSTL, struts, Velocity)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've built many sites using the Java servlet technologies, and I can honestly say that there is no good reason to pick them for any new site nowadays. They have a steep learning curve, tons of configuration to fight with (XML hell), slow iteration due to the need to redeploy stuff all the time (unless you use JRebel), verbose code, and no &quot;freebies&quot; in terms of functionality. I've played around with the &lt;a href=&quot;http://www.playframework.org/&quot; rel=&quot;nofollow&quot;&gt;Play! Framework&lt;/a&gt; and &lt;a href=&quot;http://www.springsource.org/roo&quot; rel=&quot;nofollow&quot;&gt;Spring Roo&lt;/a&gt; a little bit and both are doing some very cool stuff with more or less &quot;pure&quot; Java code and are worth looking into further.  &lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-11-20T03:06:00.277" />
  <row Id="20201" PostTypeId="1" AcceptedAnswerId="20202" CreationDate="2010-11-20T03:21:21.757" Score="2" ViewCount="151" Body="&lt;p&gt;As a developer who spends most of my time in either Java or Javascript these days, I have this fantasy about a language that blends the two of them together.  I'm always missing something from one or the other.  I know neither is perfect, but to me, they both can be considered the mainstream, modern decendants of C. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know the popular opinion is that they are completely different languages with only superficial similarities (obviously the name, but also lots of syntactical similarities, especially at the statement and expression level).  However, I think that in theory anyway, it should be possible to create a new language, which is essentially a superset of both Java and Javascript (non-strict, of course).  Sure there would be challenges in making a language that is loosely typed in some places and strongly typed in others, compiled in some places and interpreted in others, etc.... but my gut feeling is that none of these would be show stoppers (except for those with open minds and good imaginations).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aside from issues of &quot;where they run&quot;  (browser vs. server side, etc)....what are the issues that would come up, especially on the syntax side?  How could you handle the situations where the two languages would otherwise conflict? What would it look like?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can appreciate it if you just think &quot;it shouldn't be done&quot; or &quot;what a nightmare working in that language&quot;, but I'm hoping for responses from people with open minds and that have more to say than that...&lt;/p&gt;&#xA;" OwnerUserId="8017" LastActivityDate="2010-11-20T04:58:04.977" Title="Could you blend java and javascript?" Tags="&lt;java&gt;&lt;language-design&gt;&lt;javascript&gt;&lt;compilers&gt;&lt;interpreters&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="20202" PostTypeId="2" ParentId="20201" CreationDate="2010-11-20T03:39:39.477" Score="1" ViewCount="" Body="&lt;p&gt;This is exactly how most programming languages come about. Few, if any these days, are created in a vacuum. They are some hybrid of existing languages, taking a feature from language X, another feature from Y, and so forth. Languages scratch an itch. A programmer thinks &quot;Language L is great, but it would be &lt;em&gt;really&lt;/em&gt; great if it also did [insert feature here].&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to start, you need to be more specific about what you like and dislike about Java and what you like and dislike about JavaScript. Then you can talk about creating something new -- something that's a blend of the features from both languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dismissing the question by saying that both languages have different lineages and are therefore unmixable is not giving credit for what any language is: a set of syntactic and semantic features. JavaScript has one set, Java has another set, and both sets overlap in certain places.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So rather than saying you want to blend Java and JavaScript, it's better to talk about creating a language with the set of features you want, some of which happen to come from Java, JavaScript, and perhaps others.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastEditorUserId="3790" LastEditorDisplayName="" LastEditDate="2010-11-20T04:58:04.977" LastActivityDate="2010-11-20T04:58:04.977" CommentCount="4" />
  <row Id="20203" PostTypeId="2" ParentId="20201" CreationDate="2010-11-20T04:30:58.073" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/245062/whats-the-difference-between-javascript-and-java/245068#245068&quot;&gt;Just like you can blend a car and carpet&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-11-20T04:30:58.073" CommentCount="1" />
  <row Id="20204" PostTypeId="1" CreationDate="2010-11-20T05:06:45.650" Score="12" ViewCount="652" Body="&lt;p&gt;I came across this article &lt;a href=&quot;http://mises.org/daily/4547&quot; rel=&quot;nofollow&quot;&gt;Work for Free&lt;/a&gt; that got me thinking.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The goal of every employer is to gain&#xA;  more value from workers than the firm&#xA;  pays out in wages; otherwise, there is&#xA;  no growth, no advance, and no&#xA;  advantage for the employer.&#xA;  Conversely, the goal of every employee&#xA;  should be to contribute more to the&#xA;  firm than he or she receives in wages,&#xA;  and thereby provide a solid rationale&#xA;  for receiving raises and advancement&#xA;  in the firm.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I don't need to tell you that the&#xA;  refusenik didn't last long in this&#xA;  job.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;In contrast, here is a story from last&#xA;  week. My phone rang. It was the&#xA;  employment division of a major&#xA;  university. The man on the phone was&#xA;  inquiring about the performance of a&#xA;  person who did some site work on&#xA;  Mises.org last year. I was able to&#xA;  tell him about a remarkable young man&#xA;  who swung into action during a crisis,&#xA;  and how he worked three 19-hour days,&#xA;  three days in a row, how he learned&#xA;  new software with diligence, how he&#xA;  kept his cool, how he navigated his&#xA;  way with grace and expertise amidst&#xA;  some 80 different third-party plug-ins&#xA;  and databases, how he saw his way&#xA;  around the inevitable problems, how he&#xA;  assumed responsibility for the&#xA;  results, and much more.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;What I didn't tell the interviewer was&#xA;  that this person did all this without&#xA;  asking for any payment. Did that fact&#xA;  influence my report on his&#xA;  performance? I'm not entirely sure,&#xA;  but the interviewer probably sensed in&#xA;  my voice my sense of awe toward what&#xA;  this person had done for the Mises&#xA;  Institute. The interviewer told me&#xA;  that he had written down 15 different&#xA;  questions to ask me but that I had&#xA;  answered them all already in the&#xA;  course of my monologue, and that he&#xA;  was thrilled to hear all these&#xA;  specifics.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The person was offered the job. He had&#xA;  done a very wise thing; he had earned&#xA;  a devotee for life.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The harder the economic times, the&#xA;  more employers need to know what they&#xA;  are getting when they hire someone.&#xA;  The job applications pour in by the&#xA;  buckets, all padded with degrees and&#xA;  made to look as impressive as&#xA;  possible. It's all just paper. What&#xA;  matters today is what a person can do&#xA;  for a firm. The resume becomes pro&#xA;  forma but not decisive under these&#xA;  conditions. But for a former boss or&#xA;  manager to rave about you to a&#xA;  potential employer? That's worth&#xA;  everything.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;What do you think? Has anyone here worked for free? If so, has it benefited you in any way? Why should(nt) you work for free (presuming you have the money from other means to keep you going)? Can you share your experience?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me, I am taking a year out of college and haven't gotten a degree yet so that's probably why most of my job applications are getting ignored. So im thinking about working for free for the experience?&lt;/p&gt;&#xA;" OwnerUserId="6208" LastEditorUserId="6208" LastEditorDisplayName="" LastEditDate="2010-11-20T05:22:59.750" LastActivityDate="2010-11-21T19:43:40.380" Title="Working for free?" Tags="&lt;jobs&gt;&lt;experience&gt;&lt;work-environment&gt;&lt;work&gt;&lt;employment&gt;" AnswerCount="14" CommentCount="1" FavoriteCount="3" />
  <row Id="20205" PostTypeId="2" ParentId="20204" CreationDate="2010-11-20T05:22:55.177" Score="7" ViewCount="" Body="&lt;p&gt;work for free for the experience and for the reference &lt;em&gt;if you're desperate&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;better, work for free &lt;em&gt;on your stuff&lt;/em&gt; so that &lt;strong&gt;you own it&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-11-20T21:43:07.910" LastActivityDate="2010-11-20T21:43:07.910" />
  <row Id="20206" PostTypeId="1" AcceptedAnswerId="20208" CreationDate="2010-11-20T05:23:25.197" Score="4" ViewCount="255" Body="&lt;p&gt;So I was currently in the middle of coding, unfortunately for me, I was in &quot;The Zone&quot; then I thought to myself, are my method/variable names to long? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;POP&lt;/strong&gt; out of the Zone I go!  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I came here to ask, are my method/variable names too long? You be the Judge! Bonus points to anyone who can figure out what I'm writing, although I'm sure a guru will figure it out fast!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, here are some of my method and variable names.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Methods : searchBlockedListForBlockedSquares(), &#xA;          isCurrentSquareNextToAtLeastOneBlockedSquare(),&#xA;          searchBlockedListForBlockedSquares()&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Variables:  isNextToBlockedSquares;   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I Guess there was only one variable that seemed too long.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-20T13:17:38.783" LastActivityDate="2010-11-20T13:17:38.783" Title="Are my method or variable names too long?" Tags="&lt;naming-conventions&gt;&lt;variables&gt;&lt;naming&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="20207" PostTypeId="2" ParentId="20206" CreationDate="2010-11-20T06:01:59.963" Score="2" ViewCount="" Body="&lt;p&gt;I believe in descriptive variable names even if that means long variable names. And with  intellisense getting more popular, I don't believe it affects much in terms of productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hate abbreviations because they are nearly impossible to consistently use. Plus, they can be ambiguous and they do make things more difficult to read. Even when they are part of a standard, I don't like them. Plus, when it comes down to it, they don't remove that many letters unless you abbreviate a lot. And abbreviating a lot kills readability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest problem long names introduces though is how long lines of code can become. Calling a function with a long name and passing it two or three long variable names can make for one long line of code. Because of that, I do try to keep my names as short as possible though again, I'd rather have descriptive names even if it means wrapping lines or scrolling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looking at your example names though, the fact that all end with BlockedSquares makes me think that part of the name might be redundant. In fact, it might also mean that these items can be encapsulated into their own class, probably named BlockedSquares. That change that makes the  names quite  a bit shorter.&lt;/p&gt;&#xA;" OwnerUserId="1236" LastActivityDate="2010-11-20T06:01:59.963" />
  <row Id="20208" PostTypeId="2" ParentId="20206" CreationDate="2010-11-20T06:02:36.687" Score="14" ViewCount="" Body="&lt;p&gt;Your names seem okay to me in terms of length. However, the way they are named suggests that maybe some new classes are in order?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, instead of &lt;code&gt;searchBlockedListForBlockedSquares()&lt;/code&gt; you could have &lt;code&gt;blockedList.getBlockedSquares()&lt;/code&gt;. Similarly, &lt;code&gt;isCurrentSquareNextToAtLeastOneBlockedSquare()&lt;/code&gt; becomes &lt;code&gt;currentSquare.isAdjacentToABlockedSquare()&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-11-20T06:02:36.687" CommentCount="4" />
  <row Id="20209" PostTypeId="2" ParentId="20206" CreationDate="2010-11-20T06:02:55.843" Score="2" ViewCount="" Body="&lt;p&gt;A variable name is the wrong length when it is not clearly describing it's purpose. That applies to being too short or too long. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Short and terse variable names can be ambiguous, or worse have no relationship to what the variable is. In the days of interpreted BASIC, we were limited by the interpreter to two character names. It was very difficult to come up with meaningful names in a large program. Single letter variable names are often used for for-loops and counters, but I think they should be avoided otherwise. &lt;code&gt;for (i = 0; i &amp;lt; 10; i++) {...}&lt;/code&gt; uses &lt;code&gt;i&lt;/code&gt; and that's pretty common. &lt;code&gt;j&lt;/code&gt; is a secondary variable name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Long variable names are too long when they become long-winded or full of empty words, making them longer than necessary. If I have a bunch of similarly named variables I'll try to remove the common parts that are dispensable and keep the uniquely identifying parts of the names.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd have named &quot;&lt;code&gt;isCurrentSquareNextToAtLeastOneBlockedSquare&lt;/code&gt;&quot; to &lt;code&gt;currentSquareNextToBlockedSquare?&lt;/code&gt;, if I was doing it in Ruby.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-11-20T06:02:55.843" />
  <row Id="20210" PostTypeId="1" AcceptedAnswerId="20214" CreationDate="2010-11-20T06:17:09.383" Score="2" ViewCount="281" Body="&lt;p&gt;My college applications are due by the end of this month and I'd like to know how competitive Computer Science is now. From what I've heard, there's been an exponential drop in Computer Science majors in the past few years--is this a good sign or a bad sign?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will those dropping rates help me get into a good University? Do majors contribute to your acceptance at a University? Sorry but I don't understand the higher-education system too well yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would you say that it's easier to get accepted as CS major instead of something such as an Engineering major?&lt;/p&gt;&#xA;" OwnerUserId="8020" LastActivityDate="2010-11-20T06:58:36.883" Title="How competitive is the Computer Science major at Universites?" Tags="&lt;education&gt;&lt;computer-science&gt;&lt;university&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="20212" PostTypeId="1" AcceptedAnswerId="20238" CreationDate="2010-11-20T06:25:25.480" Score="1" ViewCount="111" Body="&lt;p&gt;Sorry about the title, I don't know how to express this correctly, but here's a try.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In our systems analysis and design subject, we were tasked to find a company/school/organization, and create a system for them. Example, a local elementary school don't have an enrollment system, and we're the one to design and code it for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course I will not go to just an enrollment system (though I have no idea if that will be hard or easy). I want to know other kinds/examples of systems that's applicable to a company/organization/school. Can you give me examples/recommendations? Thanks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;P.S.&lt;/strong&gt; Can somebody tag this with &lt;code&gt;systems-analysis-and-design&lt;/code&gt; or similar? Thanks.&lt;/p&gt;&#xA;" OwnerUserId="8015" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-20T13:15:37.973" LastActivityDate="2010-11-20T13:29:35.423" Title="Examples of programmable systems?" Tags="&lt;design&gt;&lt;computer-science&gt;&lt;analysis&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="20213" PostTypeId="2" ParentId="20210" CreationDate="2010-11-20T06:39:49.763" Score="1" ViewCount="" Body="&lt;p&gt;I think you might be confusing what &quot;competitive&quot; means. I don't think a college would ever turn your choice of major down, but private university certainly may not accept you as a student.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A counselor once told me the same thing, Computer Science is competitive. At the time I wasn't sure what that meant, but I'm 3 units away from finishing my B.S and this what I know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In some classes, particularly the hard ones, your grade depends on how well or how poorly how other students are doing, mainly because of curves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not mean to scare you, but Computer Science is not easy. There are handful of CS major compared to other more popular majors, this makes the pool smaller and typically the brightest are within it. Your up against smart people (may not always be true).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Outside of Academia, its similar. Those that get hired are typically brighter, more hard working and have more technically knowledge.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-11-20T06:39:49.763" CommentCount="1" />
  <row Id="20214" PostTypeId="2" ParentId="20210" CreationDate="2010-11-20T06:58:36.883" Score="1" ViewCount="" Body="&lt;p&gt;It will likely vary by school.  I went to a public university (U of Washington), and the CS program there was considered &quot;competitive entry&quot; - you had to apply to the department (even though I was already a student at the school) to specify CS as my major and thereby be able to register for CS classes.  Other programs at the same school were not competitive (e.g. natural sciences).  Some schools will base their decision to accept you partly based on what major you specify at the time you apply and your qualifications for such.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second definition of competitive (i.e. difficulty of courses/competition between students to perform) was also true at my school, but again that will likely vary by location.  UW specifically has a lot of nearby connections with the industry, notably the headquarters for both Microsoft and Amazon, as well as local offices for Google, Adobe, and many startups.  Schools in California will probably be quite similar (e.g. Google, Apple, Intel, and Silicon Valley in general).  Schools in the middle of nowhere will likely be less competitive.&lt;/p&gt;&#xA;" OwnerUserId="5586" LastActivityDate="2010-11-20T06:58:36.883" />
  <row Id="20215" PostTypeId="2" ParentId="20196" CreationDate="2010-11-20T07:23:02.020" Score="0" ViewCount="" Body="&lt;p&gt;CERT has secure C and C++ coding standards.&#xA;&lt;a href=&quot;https://www.securecoding.cert.org/confluence/display/seccode/CERT+C+Secure+Coding+Standard&quot; rel=&quot;nofollow&quot;&gt;https://www.securecoding.cert.org/confluence/display/seccode/CERT+C+Secure+Coding+Standard&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-11-20T07:23:02.020" />
  <row Id="20216" PostTypeId="2" ParentId="20204" CreationDate="2010-11-20T07:44:03.397" Score="2" ViewCount="" Body="&lt;p&gt;There is nothing wrong with working for free, given a specific objective, of course. That's how I got my first programming job, by letting my potential employer know what I was capable of. I was lacking a degree in anything, so I could not very well simply persuade someone to hire me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, as with all things, so it is with this: Moderation will serve you well. It's up to you to decide whether you're obtaining experience, demonstrating your work, or slaving unnecessarily. I would propose that you work for free for a limited time, and then consider discussing your performance and your fee with your employer, if it's possible.&lt;/p&gt;&#xA;" OwnerUserId="8023" LastActivityDate="2010-11-20T07:44:03.397" />
  <row Id="20217" PostTypeId="2" ParentId="20128" CreationDate="2010-11-20T07:54:00.137" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Viterbi_algorithm&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Viterbi algorithm&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Originally used to decode convolutional error-correcting codes, it is now used to solve a wide class of recognition problems (ranging from speech recognition to bioinformatics).&#xA;You can find it in several communication and storage devices. &lt;/p&gt;&#xA;" OwnerUserId="8024" LastActivityDate="2010-11-20T07:54:00.137" CommunityOwnedDate="2011-02-13T09:34:31.083" CommentCount="1" />
  <row Id="20218" PostTypeId="2" ParentId="1785" CreationDate="2010-11-20T07:55:30.133" Score="0" ViewCount="" Body="&lt;p&gt;When someone asks you to build something, remember: they are also asking you to maintain it. Possibly, forever.&lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-11-20T07:55:30.133" CommunityOwnedDate="2010-11-20T07:55:30.133" />
  <row Id="20220" PostTypeId="2" ParentId="20128" CreationDate="2010-11-20T08:59:28.340" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/MP3&quot; rel=&quot;nofollow&quot;&gt;MP3&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although it is a more general term than a specific algorithm, I'd mention MP3 as the aggregation of the different algorithms and techiques which work in cooperation to generate this lossy audio format.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has surely been very significant in the &quot;digital era&quot;.&lt;/p&gt;&#xA;" OwnerUserId="7937" LastActivityDate="2010-11-20T08:59:28.340" CommunityOwnedDate="2011-02-13T09:34:31.083" />
  <row Id="20221" PostTypeId="2" ParentId="1785" CreationDate="2010-11-20T09:00:00.023" Score="0" ViewCount="" Body="&lt;p&gt;That whatever programs do, more than telling a machine how to do a work, they are a most unambiguous way of showing fellow human beings how to do a work.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-11-20T09:00:00.023" CommunityOwnedDate="2010-11-20T09:00:00.023" />
  <row Id="20222" PostTypeId="2" ParentId="16760" CreationDate="2010-11-20T09:01:16.807" Score="0" ViewCount="" Body="&lt;p&gt;Start from the lowest levels of the software stack and up.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What is BIOS?&lt;/li&gt;&#xA;&lt;li&gt;What is the role of the operating system?&lt;/li&gt;&#xA;&lt;li&gt;What is multi-tasking? What is dynamic linking?&lt;/li&gt;&#xA;&lt;li&gt;Describe how source code is transformed to a working program for the student's language of choice (example answer for C: preprocessor -&gt; compiler -&gt; a bunch of object files -&gt; linker -&gt; executable)&lt;/li&gt;&#xA;&lt;li&gt;What is a cache? Estimate relative access times to L1 cache, L2 cache, RAM, rotational disk (i.e., not SSD).&lt;/li&gt;&#xA;&lt;li&gt;Enumerate data structures that you could implement without looking up details in the literature.&lt;/li&gt;&#xA;&lt;li&gt;What is the most complex program you wrote? What made it complex?&lt;/li&gt;&#xA;&lt;li&gt;Explain recursion on an example of own choice.&lt;/li&gt;&#xA;&lt;li&gt;Why do programs crash?&lt;/li&gt;&#xA;&lt;li&gt;Explain what is a critical section and give an example where it would be used.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-11-20T09:01:16.807" CommentCount="5" />
  <row Id="20223" PostTypeId="2" ParentId="20128" CreationDate="2010-11-20T09:32:56.270" Score="13" ViewCount="" Body="&lt;h2&gt;Smith-Waterman (and Needleman-Wunsch)&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;This may be too far fetched so please comment.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Smith-Waterman: The Sequence Alignment Algorithm&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I think one of such examples is the Smith-Waterman and Needleman-Wunsch algorithms and their approximations. All of them are essentially doing the same thing: they &lt;strong&gt;align&lt;/strong&gt; two or more &lt;strong&gt;strings (sequences)&lt;/strong&gt;. There is a significance in Biology. When DNA or Protein sequences are aligned - regions of structural, functional and evolutionary similarity are revealed.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;BLAST as a descendant of Smith-Waterman&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;A heuristic that approximates Smith-Waterman is BLAST. It allows searching sequences of large databases for Biological similarity. The popularity of BLAST is really great - it's very likely the most widely used algorithm in Biology. The newer areas in Bioinformatics and Genomics have newer and better approximations of Smith-Waterman/Needleman-Wunsch algorithms that are more accurate than BLAST.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Genome Assembly as a descendant of Smith-Waterman&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;High-throughput approximations of Smith-Waterman and Needleman-Wunsch that are faster than BLAST are used to assemble Genomes from shotgun sequencing - where the product of the sequencer machine is a huge amount DNA reads (billions) from arbitrary parts of the Genome that are very short (50 to 100 nucleotides). The approach was used to complete the Human Genome Project. All modern sequencing is done this way.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Multiple Sequence Alignment an extension of Smith-Waterman&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Numerous Multiple Sequence Alignment algorithms exist - they are approximating a multi-sequence version of the Smith-Waterman/Needleman-Wunsch. Multiple sequences are aligned as a group simultaneously to each other.  It's a much harder problem than it's pairwise counterpart, but the solutions provide much more insight into Biological function, structure, and evolutionary history of related sequences.&lt;/p&gt;&#xA;" OwnerUserId="8025" LastEditorUserId="8025" LastEditorDisplayName="" LastEditDate="2010-11-26T20:54:10.387" LastActivityDate="2010-11-26T20:54:10.387" CommunityOwnedDate="2011-02-13T09:34:31.083" CommentCount="3" />
  <row Id="20224" PostTypeId="2" ParentId="18751" CreationDate="2010-11-20T09:44:14.197" Score="2" ViewCount="" Body="&lt;p&gt;AShelly has already mentioned DOORS but we actually use it in development, so I thought I'd give a more complete answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;DOORS has some great features for traceability, if combined with a supported tracking, and source code management toolset (we use Rational Change and Synergy) it can allow you to trace requirements all the way down to code which implements it, and back up again.  Which is great in the highly regulated environment we work in.  It also supports versioning and baselines of requirements, and impact analysis of changes, which are VERY useful in large developments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However it adds a significant overhead to development, as to have all those features you really need to put all your documentation into DOORS itself, including any design documentation, test specs and even project plans.  This wouldn't be too bad except the user interfaces is not good, it is clunky and not always obvious how to do what you need to do.  The table format lends itself well to requirements but not too any other type of document.  It's also very slow, even with a fast server and fast pc you can expect a few seconds between entering one entry and the next.&lt;/p&gt;&#xA;" OwnerUserId="6104" LastActivityDate="2010-11-20T09:44:14.197" CommentCount="1" />
  <row Id="20225" PostTypeId="1" CreationDate="2010-11-20T09:53:02.750" Score="5" ViewCount="196" Body="&lt;p&gt;This question is to experienced testers or test leads.&#xA;This is a scenario from a software project:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Say the dev team have completed the first iteration of 10 features and released it to system testing. The test team has created test cases for these 10 features and estimated 5 days for testing. The dev team of course cannot sit idle for 5 days and they start creating 10 new features for next iteration. During this time the test team found defects and raised some bugs. The bugs are prioritised and some of them have to be fixed before next iteration. The catch is that they would not accept the new release with any new features or changes to existing features until all those bugs fixed. The test team says that's how can we guarantee a stable release for testing if we also introduce new features along with the bug fix. They also cannot do regression tests of all their test cases each iteration. Apparently this is proper testing process according to ISQTB.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means the dev team has to create a branch of code solely for bug fixing and another branch where they continue development. There is more merging overhead specially with refactoring and architectural changes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you agree if this is a common testing principle. Is the test team's concern valid. Have you encountered this in practice in your project.&lt;/p&gt;&#xA;" OwnerUserId="3414" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-20T13:14:17.833" LastActivityDate="2010-11-23T16:49:37.787" Title="Is it correct to fix bugs without adding new features when releasing software for system testing ?" Tags="&lt;development-process&gt;&lt;testing&gt;" AnswerCount="9" />
  <row Id="20226" PostTypeId="2" ParentId="20204" CreationDate="2010-11-20T10:27:50.943" Score="32" ViewCount="" Body="&lt;p&gt;No. Never work for free for anyone but yourself. You'll get more out of good open-source credentials and personal projects, in the way of job-hunting, than you will out of working for some son of a bitch who thinks that your skills aren't worth paying for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, if no one is willing to pay for your skills, you may need to find another career: software development is wide open right now, so (depending on where you live, of course) it should be possible to get a job where you actually get paid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Pro bono software development is theft.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2624" LastEditorUserId="2624" LastEditorDisplayName="" LastEditDate="2010-11-20T19:03:46.017" LastActivityDate="2010-11-20T19:03:46.017" CommentCount="4" />
  <row Id="20227" PostTypeId="2" ParentId="20225" CreationDate="2010-11-20T10:28:00.553" Score="0" ViewCount="" Body="&lt;p&gt;That really depends on how closely coupled the new features are with the portions that require bug fixes. E.g. if you add new drag and drop feature to one small portion of the UI, it 'should not' affect the bug that is related to the parsing of the file loaded by the user.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having say that, it is understandable (not necessarily justified) for testers to want to test the fixes 'Ceteris paribus' (all 'other' things being equal).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There might be some other concerns with the manner of release and end-users expectation. E.g. you might need to release only after one iteration of bug fixes+testing and one more new features+testing because users ONLY want re-installing or upgrade when there are new features. Some might demand fixes as top priority ASAP.&lt;/p&gt;&#xA;" OwnerUserId="2262" LastActivityDate="2010-11-20T10:28:00.553" />
  <row Id="20228" PostTypeId="2" ParentId="20225" CreationDate="2010-11-20T10:29:55.127" Score="3" ViewCount="" Body="&lt;p&gt;I would say instead that each release of new features should be on a separate branch. This allows development and releases to be decoupled.&lt;/p&gt;&#xA;" OwnerUserId="1852" LastActivityDate="2010-11-20T10:29:55.127" CommentCount="2" />
  <row Id="20229" PostTypeId="2" ParentId="15107" CreationDate="2010-11-20T11:08:27.887" Score="0" ViewCount="" Body="&lt;p&gt;if u go as developer you shud worry abt the salary for first 1 year ...&#xA;if u continue as the TE then the salary will be hiking every 6 months&#xA;In term of money I prefer you to go with Developer&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But as I have 6 years exp in IT field ppl usually first they work as a developer later after some years they shift to testing field &lt;/p&gt;&#xA;&#xA;&lt;p&gt;the ball is in your court if u want to earn more money then go with developer as a fresher and earn money in next 2 years...&lt;/p&gt;&#xA;" LastActivityDate="2010-11-20T11:08:27.887" />
  <row Id="20230" PostTypeId="2" ParentId="15107" CreationDate="2010-11-20T11:36:40.360" Score="1" ViewCount="" Body="&lt;p&gt;Contrary to what you think at the moment, I think having experience with software testing will eventually contribute a lot to your developer career and it might even make you a better developer compared to your peers (all other things being equal). &lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-20T11:36:40.360" />
  <row Id="20231" PostTypeId="2" ParentId="20204" CreationDate="2010-11-20T11:50:23.077" Score="9" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I was able to tell him about a&#xA;  &lt;strong&gt;remarkable young man&lt;/strong&gt; who swung into&#xA;  action during a crisis, and how he&#xA;  worked &lt;strong&gt;three 19-hour days&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;However, if this &quot;remarkable young person&quot; instead worked six 9-hour days and billed them per hour, I am sure he wouldn't get such &quot;remarkable&quot; comments. &#xA;&lt;strong&gt;Each and every employer tries to get as much free lunch  as possible.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had an employer who made a big fuss about me taking a half a day off for a private event, even though I regularly did overtime without being paid for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I once had a guy literally call me a &quot;genius&quot; because he was trying to get me to make him some software for free. Of course at the risk of not being referenced as a &quot;genius&quot; (yeah, right)  to other employers by this guy, I refused.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need a reference, why not develop a project on your own and show it to potential employers (I mean those who can actually pay a decent wage). &lt;strong&gt;Plus you keep the IP rights and don't have to go through the hassle of working with a customer (requirements change, etc).&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-20T11:50:23.077" />
  <row Id="20233" PostTypeId="1" AcceptedAnswerId="20235" CreationDate="2010-11-20T12:13:49.167" Score="6" ViewCount="195" Body="&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is: How can you verify the users' requirements early in the software creation process? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I show the user specifications, prototypes, demos... but still users forget to share some &quot;insignificant details&quot; about the process or business rules and data. Which pops up after the final test as some &quot;really small and rare exceptions&quot; - which are turned into change request and accumulate a lot of work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So how do you prototype (or verify) users requirements early in the project?&lt;/p&gt;&#xA;" OwnerUserId="7876" LastActivityDate="2010-11-21T00:27:34.820" Title="user's requirements verification, howto?" Tags="&lt;requirements&gt;&lt;specifications&gt;" AnswerCount="7" FavoriteCount="1" />
  <row Id="20234" PostTypeId="2" ParentId="20233" CreationDate="2010-11-20T12:17:29.747" Score="2" ViewCount="" Body="&lt;p&gt;You really just need to along the way make sure you are meeting the criteria listed there.  For example if it says &quot;functionality x should be available to all users&quot; then make sure this is true. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Early in the development process this will be tough but closer to deadline the more you should be able to verify.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps the things you do not yet have implemented, you can verify they are in the design considerations so you know they are being considered during early development.  &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-11-20T12:17:29.747" CommentCount="5" />
  <row Id="20235" PostTypeId="2" ParentId="20233" CreationDate="2010-11-20T12:18:01.057" Score="2" ViewCount="" Body="&lt;p&gt;Use &lt;strong&gt;iterative development&lt;/strong&gt; that forces you to have &lt;strong&gt;frequent feedback&lt;/strong&gt; to the customer/user.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also increase collaboration between developers and users by removing (usually useless) intermediate such as project managers or even business analysts (the latter can be very required in very complex business domains).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's just a few recommandations. There is a lot to say on the subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I highly suggest you to have a look at &lt;strong&gt;&lt;a href=&quot;http://www.scrum.org&quot; rel=&quot;nofollow&quot;&gt;Scrum&lt;/a&gt;&lt;/strong&gt;. Which saved my life.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-20T12:23:06.400" LastActivityDate="2010-11-20T12:23:06.400" CommentCount="2" />
  <row Id="20236" PostTypeId="2" ParentId="20225" CreationDate="2010-11-20T12:34:06.357" Score="0" ViewCount="" Body="&lt;p&gt;You can solve this (common) problem by merging merge both teams.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Testers within the development team, testing as features are produced, can help most teams increase the quality of the output.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suggest you to read this excellent blog post from &lt;strong&gt;Henrik Kniberg&lt;/strong&gt; that explain &lt;a href=&quot;http://blog.crisp.se/henrikkniberg/2009/06/26/1246053060000.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Kaban&lt;/strong&gt;&lt;/a&gt;. You will find many ideas in the &lt;a href=&quot;http://www.crisp.se/henrik.kniberg/ScrumAndXpFromTheTrenches.pdf&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Scrum process&lt;/strong&gt;&lt;/a&gt; (a free book also by &lt;strong&gt;Henrik Kniberg&lt;/strong&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He also wrote an excellent &lt;a href=&quot;http://www.crisp.se/henrik.kniberg/Kanban-vs-Scrum.pdf&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Kanban VS Scrum&lt;/strong&gt;&lt;/a&gt; article on his blog.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Enjoy.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-20T12:34:06.357" />
  <row Id="20237" PostTypeId="2" ParentId="20204" CreationDate="2010-11-20T12:49:04.013" Score="8" ViewCount="" Body="&lt;p&gt;When I graduated my resume was fairly sparse. Whilst looking for my first job, I approached a local charity and built them a web site. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing this had many benefits:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Firstly volunteering your skills for a good cause feels good&lt;/li&gt;&#xA;&lt;li&gt;It was a valuable addition to my portfolio/work experience&lt;/li&gt;&#xA;&lt;li&gt;I gained valuable experience&lt;/li&gt;&#xA;&lt;li&gt;I had additional experience to discuss in subsequent interviews for paid jobs&lt;/li&gt;&#xA;&lt;li&gt;The charity also nominated me for the Volunteer of the Year Award (I didn't win it :) ), but even the nomination was good addition to my resume&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm glad I did it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would have been less inclined to work for a company for free, but it depends on the organisation. You have to weigh up whether offering your services for free with the chance of a good job/career is worth risking your time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Contributing to open source projects, or even starting your own, is another good way to hit many of the points I listed above.&lt;/p&gt;&#xA;" OwnerUserId="5723" LastEditorUserId="5723" LastEditorDisplayName="" LastEditDate="2010-11-20T17:50:33.347" LastActivityDate="2010-11-20T17:50:33.347" CommentCount="2" />
  <row Id="20238" PostTypeId="2" ParentId="20212" CreationDate="2010-11-20T13:29:35.423" Score="1" ViewCount="" Body="&lt;p&gt;Some thoughts off the top of my head:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Bug tracking software for a small software development team.&lt;/li&gt;&#xA;&lt;li&gt;Final year project tracking system for a university.&lt;/li&gt;&#xA;&lt;li&gt;Test case management system for a QA team.&lt;/li&gt;&#xA;&lt;li&gt;A 'Lottery' system for a local charity.&lt;/li&gt;&#xA;&lt;li&gt;Invoice/Order tracking system for small business.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1293" LastActivityDate="2010-11-20T13:29:35.423" />
  <row Id="20239" PostTypeId="1" AcceptedAnswerId="20267" CreationDate="2010-11-20T13:41:55.960" Score="7" ViewCount="151" Body="&lt;p&gt;I guess most people have been in this situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The initial project planning begins. The requirements are outlined. After architectural review and sorting through APIs/Frameworks the fitting technology is picked. The development starts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then it starts. As soon as you need to do some supposedly simple supporting things, framework/API start to backfire, and instead of doing any work you end up fighting against the technology. The research time skyrockets, forums are silent, nothing seems to be done, and even when you get something to work, you're not really sure it's done right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you manage in these situations? Do you go for hacks, do you research further, what do you say to management?&lt;/p&gt;&#xA;" OwnerUserId="8029" LastActivityDate="2010-11-21T00:33:19.310" Title="How do you deal with over-the-head APIs/technology" Tags="&lt;technology&gt;&lt;research&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="1" />
  <row Id="20240" PostTypeId="1" AcceptedAnswerId="20256" CreationDate="2010-11-20T13:47:15.780" Score="2" ViewCount="472" Body="&lt;p&gt;i want to build a PHP web application ,&#xA;but always faces the problem that i need to connect to database an deal with related objects&lt;/p&gt;&#xA;&#xA;&lt;p&gt;so i'v tried codeigniter and it uses a special way to connect to database named Active Record&#xA; and i've known that it's named ORM and there is lots of libraries out there. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;but i'm confused .. what is the best, the easiest and the fastest .. and some personal review of yours if you are using one of them?&lt;/p&gt;&#xA;" OwnerUserId="3648" LastActivityDate="2010-12-25T17:42:26.590" Title="What is the best PHP ORM library ?" Tags="&lt;web-development&gt;&lt;php&gt;&lt;web-applications&gt;&lt;orm&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="20241" PostTypeId="2" ParentId="1785" CreationDate="2010-11-20T13:50:11.273" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Can't believe this hasn't been mentioned&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every programmer worth is salt needs to be able to produce &lt;a href=&quot;http://msdn.microsoft.com/en-us/goglobal/bb978434.aspx&quot; rel=&quot;nofollow&quot;&gt;world ready software&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;By this I mean following basic internationalization principles such as externalizing all strings etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't believe how many times I've seen hard-coded English strings or dialogs with truncated strings etc. when the product has been translated.&lt;/p&gt;&#xA;" OwnerUserId="1293" LastActivityDate="2010-11-20T13:50:11.273" CommunityOwnedDate="2010-11-20T13:50:11.273" />
  <row Id="20242" PostTypeId="2" ParentId="16760" CreationDate="2010-11-20T13:51:11.380" Score="1" ViewCount="" Body="&lt;p&gt;I believe in &quot;self assessment&quot;! &#xA;If you explain to the person the exact situation he will find himself, for example: &quot;you will have to code SQL ... with database of 100+ tables and 500K+ records, which have to run under 4 seconds...&quot;. And if you ask him: &quot;Do you think you can make it?&quot; - you will get a correct answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will spent 5 questions on the expectations of the students and 5 more technical:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What do you expect from this training?&lt;/li&gt;&#xA;&lt;li&gt;What is your level (this should be domain specific)?&lt;/li&gt;&#xA;&lt;li&gt;What do you want to see/learn during this training (point out 3 most important points)?&lt;/li&gt;&#xA;&lt;li&gt;If we do exercises, what would you see more useful for you? (workshop, multiple-choice)?&lt;/li&gt;&#xA;&lt;li&gt;What do you expect from the teacher?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Than you can go with some technical questions like (this should be according to the topic). for OOP for example:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What is encapsulation?&lt;/li&gt;&#xA;&lt;li&gt;What is interface?&lt;/li&gt;&#xA;&lt;li&gt;Polymorphism?&lt;/li&gt;&#xA;&lt;li&gt;Sub-typing?&lt;/li&gt;&#xA;&lt;li&gt;Dynamic binding?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7876" LastActivityDate="2010-11-20T13:51:11.380" />
  <row Id="20243" PostTypeId="2" ParentId="6956" CreationDate="2010-11-20T13:58:44.097" Score="4" ViewCount="" Body="&lt;p&gt;i tried to learn Codeigniter and Zend Framework, Cake PHP&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and believe me Codeigniter is the easiest framework to learn ever :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it's easy&lt;/li&gt;&#xA;&lt;li&gt;Rasmus Lerdorf himself recommended it&lt;/li&gt;&#xA;&lt;li&gt;you can get under the hood and customize it&lt;/li&gt;&#xA;&lt;li&gt;all versions before v2.0 supports php4&lt;/li&gt;&#xA;&lt;li&gt;it got lots of features that will dramatically accelerate your work&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;zend and cake didn't suite me because :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;they force me to use command line to create project and add features to it (it's good for linux but nightmare on windows)&lt;/li&gt;&#xA;&lt;li&gt;zend framework size is catastrophe comparing to 4Megas of codeigniter &lt;/li&gt;&#xA;&lt;li&gt;it has a long curve for learning as documentation is not easy to understand&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3648" LastActivityDate="2010-11-20T13:58:44.097" CommentCount="2" />
  <row Id="20244" PostTypeId="2" ParentId="20225" CreationDate="2010-11-20T14:01:51.683" Score="0" ViewCount="" Body="&lt;p&gt;We use a hybrid approach. For customer release, we definitely have its own branch which are strictly for critical bug fixes only.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regular development continues on multiple software versions. For example, lets say the latest stable release version is 2.0. All risky features will be added to 3.0 branch. Only bug fixes go into 2.0 branches. Testing by dedicated QA team is done only on stable branches. Customer releases are of course done from another branch based off 2.0. Long running features like the next gen platform development will be done in 4.0 not even 3.0.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All this looks good on paper. But if a customer wants a specific feature, it needs to be added to 2.0 branch itself since 3.0 is not stable enough to be released to customers. This means QA team will have to re-run the entire regression suite.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing we do is to do code coverage of each regression test case. Only those regression test cases are run which will be affected by the code changes for the feature. Of course, for a customer release, full regression suite is run.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-11-20T14:01:51.683" />
  <row Id="20245" PostTypeId="2" ParentId="20233" CreationDate="2010-11-20T14:08:00.187" Score="0" ViewCount="" Body="&lt;p&gt;You need to let users know that the later a 'requirement' is identified in the project, the more it will cost. They may decide that they don't really need the change after all. If they insist on the changes, but refuse the extra costs/time delay, you have a problem that needs to be negotiated. That is not going to be solved through technology or planning but by sales and client relationship management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Continuously getting working software in front of them &lt;strong&gt;AND requiring them to make the effort to use/test/evaluate&lt;/strong&gt; is your best bet. They won't fully comprehend contracts, specs, diagrams, and user stories. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is part of the Joel Test. Grab anyone you can find to test the software as much as possible throughout the entire development process.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-20T14:08:00.187" />
  <row Id="20246" PostTypeId="1" AcceptedAnswerId="20254" CreationDate="2010-11-20T14:15:04.357" Score="6" ViewCount="400" Body="&lt;p&gt;A very extensive application began as an Access-based system (for database storage). Forms were written in VB5 and/or VB6. As .Net became a fixture in the development community, certain modules have been rewritten. This seems very awkward and potentially costly just to maintain because of the cross-technologies and extra work to keep the two technologies happy with each other. Of course, the application uses a mix of &lt;strike&gt;ODBC&lt;/strike&gt; OleDb and MySql.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strike&gt;Would you think spending the time and resources to completely re-develop the application under .Net would be more cost effective?&lt;/strike&gt; In an effort to develop a more stable application, wouldn't it make sense to use .Net? Or continue chasing Access bugs, adding new features in .Net (which may or may not create new bugs between .Net and Access), and rewriting old Access modules into .Net modules under time constraints that prevent proper design and development?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;&#xA;The application uses OleDb and MySql - I corrected my previous statement.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, to lend further support to rewriting: I have since found out that when the &lt;em&gt;&quot;porting&quot;&lt;/em&gt; to .Net began, the VBA/VB6 code that existed was basically translated to the .Net equivalent. From my understanding, nothing was done to improve performance, or take advantage of new libraries or technologies.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion, this creates a very fragile and unstable application. With every new update, this becomes more and more visible. As a help desk technician, I have noticed an increase in problems reported. The customers using the software have noticed an increase in problems and are commenting on it.&lt;/p&gt;&#xA;" OwnerUserId="8031" LastEditorUserId="8031" LastEditorDisplayName="" LastEditDate="2010-12-29T00:04:37.263" LastActivityDate="2010-12-29T00:04:37.263" Title="Would you re-design completely under .Net?" Tags="&lt;.net&gt;&lt;applications&gt;&lt;access&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="4" />
  <row Id="20247" PostTypeId="2" ParentId="20233" CreationDate="2010-11-20T14:17:47.047" Score="3" ViewCount="" Body="&lt;p&gt;Start by not getting rid of intermediates like business analysts, because they are actually trained in this. If you don't have such people, accept that at least one of your developers is going to need to develop this skill.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next, over time, accumulate a set of instincts about the sorts of things people often ask for late in projects, and bring them up in conversation early in the project. &quot;Will the discount always be the same for all orders, or does it vary by customer?&quot; &quot;Can every user see every report, or are some just for supervisors?&quot; &quot;Is the sales tax always the same, or does it depend where the customer is?&quot; and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition, try to write your code so it's insulated from these kinds of changes coming late, because some will still come in late no matter what. If you have business logic in the click handlers for your buttons, these changes really hurt. If you have business logic in a specific class whose name makes it easy for you to find it, and you can leverage polymorphism to, say, have regular orders and rush orders and each order calculates its own shipping charge, then the change they've asked for is much less painful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You cannot prevent late changes. Laws change, business drivers (customers, what sales is promising, the great idea the CEO has while reading something on the plane) change. Prevent what you can and embrace the rest by designing your code to be changeable.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-20T14:17:47.047" CommentCount="1" />
  <row Id="20248" PostTypeId="2" ParentId="20169" CreationDate="2010-11-20T14:30:08.977" Score="1" ViewCount="" Body="&lt;p&gt;Every somewhat serious web app has a serious non-web logic and data layer.&lt;/p&gt;&#xA;" OwnerUserId="8029" LastActivityDate="2010-11-20T14:30:08.977" />
  <row Id="20249" PostTypeId="2" ParentId="20246" CreationDate="2010-11-20T14:32:34.777" Score="2" ViewCount="" Body="&lt;p&gt;It is generally a discouraged practice to &quot;rewrite&quot; an application from scratch (which is a normal urge most programmers felt at least a few times in their lifetime) because you will go from an app with known feature set (and known bugs too!) to an app with most likely lesser set of features and more importantly - unknown bugs. Users could get frustrated, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You would probably be better off if you slowly refactored your app over a period of time, thereby evolving it's architecture over a longer period of time.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-20T14:32:34.777" CommentCount="1" />
  <row Id="20250" PostTypeId="2" ParentId="16687" CreationDate="2010-11-20T14:39:15.297" Score="1" ViewCount="" Body="&lt;p&gt;Throw the entire business-buzzword-gauntlet at them. They need to see the big picture by being proactive in order to leverage inter-department synergy and improve the bottom-line. How could they not be on board?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, when they request a change, you need to mention the following:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;In order to implement the change at the time they need it, what feature(s) should be delayed? Can they afford to delay the entire project?&lt;/li&gt;&#xA;&lt;li&gt;Get them to commit to an increased testing/approval schedule. You may have to repeat the tests on completed areas of the project.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;As a profession, we need to get over this. It's going to happen, be prepared. You'd be surprised at the reactions of users when you present your concerns calmly and professionally. Often times, the reaction I get is, &quot;Oh, if it's that much of a problem, forget it.&quot; If they accept the delay and extra work on their end, so what. But if you have a reputation of whining after every request, you've lost credibility and won't be taken seriously.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-20T14:39:15.297" />
  <row Id="20251" PostTypeId="2" ParentId="20246" CreationDate="2010-11-20T14:46:28.687" Score="1" ViewCount="" Body="&lt;p&gt;A big challenge that I experienced with a rewrite of that scale is having to maintain two codebases at the same time. If you fix a bug in the legacy system, you have to make sure the functionality works correctly in the new system, and vice versa. Upgrading one module at a time minimizes that maintenance headache.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A full regression test suite that runs on both the legacy and replacement systems would also be helpful.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-20T14:46:28.687" CommentCount="2" />
  <row Id="20252" PostTypeId="2" ParentId="20246" CreationDate="2010-11-20T14:49:48.167" Score="0" ViewCount="" Body="&lt;p&gt;I agree with Jas, don't rewrite apps just for rewrite sake. They may never need to be debugged or improved, so why waste time? However, if you feel there is a moving shift in the expertise of your new developer hires away from Access to .NET, you may have to migrate before it's too late. That seems unlikely, but a possible consideration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although it may not be profitable from a development standpoint, how is having different applications spread around affecting users? Does it require more user training? Are they making more mistakes. Does it increase the number of support calls because they can't find something? &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-20T14:49:48.167" CommentCount="1" />
  <row Id="20253" PostTypeId="2" ParentId="20246" CreationDate="2010-11-20T14:50:17.617" Score="3" ViewCount="" Body="&lt;p&gt;I agree with the refactoring approach.  It is quite likely that this will be a slow process that may take many months to complete, but by moving one feature / section at a time has major advantages including:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Product features are maintained.&lt;/li&gt;&#xA;&lt;li&gt;ability to deliver a new release is maintained.&lt;/li&gt;&#xA;&lt;li&gt;Time pressure is removed.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Good luck&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-20T14:50:17.617" CommentCount="2" />
  <row Id="20254" PostTypeId="2" ParentId="20246" CreationDate="2010-11-20T14:57:13.243" Score="16" ViewCount="" Body="&lt;p&gt;A lot of people discourage rewriting an application from scratch and sometimes I agree with the reasoning.  But most of the times I find rewrting the app the least painful solution and anything written in Access needs to be ported to .NET - PERIOD.  Don't get me wrong, Access has its place and can provide alot of functionality to an organization, but if it turns into a full-fledged app that people rely on then it has out grown Access.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would probably not take much time to port the extisting VBA to .NET in a one for one conversion.  But that may not be a great solution if the VBA is not very good to begin with.  A redesign/rewrite will take longer to write but will in the long run be much easier to maintain.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am almost always in the camp of rewriting it from scratch where Access is concerned and have not regretted it once.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-11-20T14:57:13.243" CommentCount="3" />
  <row Id="20255" PostTypeId="1" CreationDate="2010-11-20T14:59:39.070" Score="8" ViewCount="834" Body="&lt;p&gt;You are just starting a new project and you have these two technologies to choose from, Java and .NET. The project you are working doesn't involve having features that would make it easy to choose between the two technologies (e.g. .NET has this that I need and Java does not) and both of them should work just fine for you (though you only need one of course). Take into account: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Performance &lt;/li&gt;&#xA;&lt;li&gt;Tools available (even 3rd party tools)&lt;/li&gt;&#xA;&lt;li&gt;Cross platform compatibility&lt;/li&gt;&#xA;&lt;li&gt;Libraries (especially 3rd party libraries)&lt;/li&gt;&#xA;&lt;li&gt;Cost (Oracle seems to try and monetize Java)&lt;/li&gt;&#xA;&lt;li&gt;Development process (Easiest/Fastest)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also keep in mind that Linux is not your main platform but you would like to port your project to Linux/MacOs as well. You should definitely keep in mind the trouble that has been revolving around Oracle and the Java community and the limitations of Mono and Java as well.&#xA;It would be much appreciated if people with experience in both can give an overview and their own subjective view about which they would choose and why.&lt;/p&gt;&#xA;" LastActivityDate="2011-03-16T11:50:14.790" Title="What would you choose for your project between .NET and Java at this point in time ?" Tags="&lt;java&gt;&lt;.net&gt;&lt;mono&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="4" />
  <row Id="20256" PostTypeId="2" ParentId="20240" CreationDate="2010-11-20T15:01:28.280" Score="2" ViewCount="" Body="&lt;p&gt;RedBean is what I use for such purpose: &lt;a href=&quot;http://redbeanphp.com/&quot; rel=&quot;nofollow&quot;&gt;http://redbeanphp.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;RedBean eases the development phase with automatic schema modifications, on the fly. it works very well with MySQL and SQLite but other databases supported by PDO should work too.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-20T15:01:28.280" CommentCount="2" />
  <row Id="20257" PostTypeId="2" ParentId="20255" CreationDate="2010-11-20T15:03:09.337" Score="17" ViewCount="" Body="&lt;p&gt;The single most important decision is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Will you at this point in time commit 100% to use Windows as your future deployment platform? &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If no, then you should go with Java.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;:  My conclusion from &lt;a href=&quot;http://programmers.stackexchange.com/questions/20275/mono-is-frequently-used-to-say-yes-net-is-cross-platform-how-valid-is-that&quot;&gt;Mono is frequently used to say &quot;Yes, .NET is cross-platform&quot;.  How valid is that claim?&lt;/a&gt; was that Mono is only an option &lt;em&gt;IFF&lt;/em&gt; you develop against it!  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You &lt;strong&gt;cannot&lt;/strong&gt; expect .NET-applications to work out of the box.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Downvoters should please list what they consider to be a &lt;em&gt;more&lt;/em&gt; important decision at this point in time.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;EDIT:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;@Basic said that this was more a comment than an answer.  To be precise I consider it a question to go on &lt;em&gt;top&lt;/em&gt; of the list, because this is perhaps the most important technical decision you need to do when dealing with .NET.  As Basic says he will test against Mono, then that is out of the way, and I would consider Java and .NET to be pretty equally well suited.  I have very little experience with .NET, but quite a bit in Java. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Performance - Java runs pretty well, but still has quite a bit of startup time.  This is because a JVM starts from scratch when being initialized, and the random access of the runtime library jar file is rather slow when needing to be read in from disk.  Recent Java 6's have a background process to try to keep the runtime library jar files in the disk cache so access is fast when needed.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Tools available.  Plenty of tools exist, and there is a lot available as high quality Open Source.  IBM has some very advanced tooling available, but they also take quite a bit of money for them.  You may want to have a look at MyEclipse who make a living from putting together the best parts in the Java world and make them accessible for a low cost, to see what is available.  Netbeans has a very nice GUI editor.  JDeveloper has a nice Swing debugger.  The Sun 6 JDK has VisualVM which is a nice entry level profiler which can analyze already running programs (which is a killer feature).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Cross platform compatibility.  Very good, tending to excellent.  The JVM is very, very reliable and predictable.  Issues only show when operating system differences seep in - like file separators, file name case sensitivity and menu behaviour. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Libraries.  There are &lt;em&gt;many&lt;/em&gt; and many of them are freely available and usable, but primarily written in Java as it is rather difficult to pull in code written in non-JVM languages.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Cost.  Java is basically freely available.  What Oracle is indicating is that the power tools - most likely coming from JRocket - will be at a cost.  Also note that exended support (&quot;Java for Business&quot;) also comes for a price.   Non-x86 platforms are a dying breed, but IBM has plenty and IBM provides an excellent Java implementation for them.  This is priced as  being a part of the operating system - most likely for better adoption.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Development process.   Much time with Java is spent researching and choosing the appropriate technology and learning it, but when that is done I think there are plenty of technologies which are quite fast to develop with.  The latest version of Java EE provides for writing very powerful web pages using Facelets which can be reloaded at least as fast as PHP pages.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think that unless you are not skilled in neither Java or .NET, you &lt;em&gt;will&lt;/em&gt; save time and money by choosing the technology you and your organization are the most familiar with.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2011-01-20T11:01:14.147" LastActivityDate="2011-01-20T11:01:14.147" CommentCount="12" />
  <row Id="20258" PostTypeId="2" ParentId="20225" CreationDate="2010-11-20T15:05:13.127" Score="0" ViewCount="" Body="&lt;p&gt;The test team definitely has a valid concern, but I would question the need for multiple iterations of testing for each release. Why go through an entire round of testing on a version of code that users will never see? &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-20T15:05:13.127" />
  <row Id="20259" PostTypeId="2" ParentId="20239" CreationDate="2010-11-20T15:08:52.423" Score="5" ViewCount="" Body="&lt;p&gt;Managing external dependencies is the bane of many an IT project. Many years ago the experienced programmers I worked with always made sure they had control over their dependencies - Usually by insisting that source code licenses were bought.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, that has not been my approach.  I tend to be of the under promise, over deliver school of thought.  There are times when I have had to stick my neck out, but I do private research beforehand to be 99% sure - usually doing a private project often in my own time to make sure the technology can deliver. In effect prototype, test, validate then promise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are situations where I do get caught out - and have to either backtrack or be inventive.  Having a creative mind with plenty of broad experience helps here, but so does talking to other people. - and not always programmers. Sometimes the solutions come from really strange places.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for dealing with management, the key is honesty.  Talk early, and often.  Don't leave it to the last minute as letting down managers/customers the day before a big delivery just makes you look like amateurs.  Being able to say 2 months before the deadline that the managers need to choose between dropping a few features and/or delaying the shipping might not be popular at the time, but it does allows the rest of the organisation to do their jobs and to plan.  The key to being able to do this is having a good task management system that tracks times and task estimates.  Having solid evidence to back up your point of view makes it much more likely for you to be listened to.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastEditorUserId="8035" LastEditorDisplayName="" LastEditDate="2010-11-20T23:34:03.837" LastActivityDate="2010-11-20T23:34:03.837" CommentCount="1" />
  <row Id="20260" PostTypeId="2" ParentId="19416" CreationDate="2010-11-20T15:14:56.737" Score="3" ViewCount="" Body="&lt;p&gt;I found this definition very simple to explain:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a &lt;em&gt;parameter&lt;/em&gt; is a &quot;hole&quot; in your function definition&lt;/li&gt;&#xA;&lt;li&gt;an &lt;em&gt;argument&lt;/em&gt; is what the client uses to fill that &quot;hole&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-11-20T15:14:56.737" />
  <row Id="20261" PostTypeId="2" ParentId="20233" CreationDate="2010-11-20T15:20:52.600" Score="2" ViewCount="" Body="&lt;p&gt;I remember being in a business meeting and having one of the business analysts saying that it must be great being a developer always having a fixed specification to work to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the real world, there are a few things that greatly help with this.  The first one, is to accept that these last minute details are a fact of life. the only 100% complete specification of the final product is the source code. If the customer already has this, then they have no need for you to write it do they?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second thing to do is to actively try to flush out the missing specification details.  now you could try getting the customer to sign off 300 page Use Case documents and other contractual mechanisms, but in the end, I can say with 100% confidence, the best way is to deliver software to your customers. Get them to review it, use it, actively encourage them to change the specification to their needs (and when appropriate to charge them for the work).  Even when only some of the features are implemented, customer feedback is key.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The third, when reading the specification, think about what would cause this requirement to change and how you could handle variations.  its often not sensible to over engineer for changes that may not appear, but having a plan, and just as importantly not designing in extra difficulties will make your life much easier - and the extra brownie points for keeping your cool and being confident when you say 'we can handle that by ....  and it will take about 4 days to do.' will inspire others to have confidence in you. &lt;/p&gt;&#xA;" OwnerUserId="8035" LastEditorUserId="8035" LastEditorDisplayName="" LastEditDate="2010-11-20T15:53:49.560" LastActivityDate="2010-11-20T15:53:49.560" />
  <row Id="20262" PostTypeId="1" AcceptedAnswerId="20310" CreationDate="2010-11-20T15:25:44.047" Score="20" ViewCount="622" Body="&lt;p&gt;Having a life partner definitely affects an individual's career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For e.g. A programmer spends hours on the computer for work. A spouse working in the same field as yours would not mind adjusting with the household chores. On the other hand, a partner from some other field will not understand the significance of your work, and this may create problems in one's married life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from this factor, what do you think are the other factors which are affected with the choice of partner from the same field?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And how useful it is for programmers to have a spouse from the same field as you are working?&lt;/p&gt;&#xA;" OwnerUserId="4522" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-11-20T16:23:31.383" LastActivityDate="2010-11-22T04:59:41.440" Title="What are the pros and cons of having a life partner from the same field?" Tags="&lt;best-practices&gt;&lt;lifestyle&gt;" AnswerCount="7" CommentCount="7" FavoriteCount="6" />
  <row Id="20263" PostTypeId="2" ParentId="19203" CreationDate="2010-11-20T15:27:08.770" Score="1" ViewCount="" Body="&lt;p&gt;Are you talking about &lt;em&gt;Dependency Injection&lt;/em&gt; or &lt;em&gt;Dependency Injection Frameworks&lt;/em&gt;? The two are very different: the first one is a good idea and you should use it, the second one is a crutch needed to use that good idea in badly designed programming languages, and you shouldn't use it, you should use a better language instead.&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-11-20T15:27:08.770" />
  <row Id="20264" PostTypeId="2" ParentId="20262" CreationDate="2010-11-20T15:41:40.787" Score="4" ViewCount="" Body="&lt;p&gt;Having a spouse/life partner from the same field can very easily engender feelings of competition and marginalization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As with many things in life, YMMV.&lt;/p&gt;&#xA;" OwnerUserId="1996" LastActivityDate="2010-11-20T15:41:40.787" CommentCount="3" />
  <row Id="20265" PostTypeId="2" ParentId="20255" CreationDate="2010-11-20T15:41:55.297" Score="13" ViewCount="" Body="&lt;p&gt;OK, lets try to break this down:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Take into account:&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Performance Tools available (even 3rd party tools)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Both the Java and .NET platforms have plenty of good performance testing tools available, I know that in the Java space that there are plenty of free open source tools that are adequate for most scenarios.  I can't speak for the .NET side.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Cross platform compatibility&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Java has an advantage here - project Mono (or similar) is required to get .NET running on some platforms.  I'm not sure with Mono is 100% bullet-proof and performant, something hopefully someone else can chime in on.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Libraries (especially 3rd party libraries)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Both have strong support here.  Initially the Java eco-system lead the way (there's literally a a free open source library for just about anything you could think of) but I'd say that .NET has certainly caught up where it matters (NHiberante for persistence, NUnit for unit testing to name two basic ones + I'm sure there's a metric truckload more).&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Cost (Oracle seems to try and monetize Java)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;All companies try to monetize to some degree, but in the case of Java I think your statement is a little misleading.  Java was open sourced as of version 6 (the OpenJDK project) and Oracle has shown no inclination to monetize Java beyond what Sun was doing.  So yes they sell App servers and extensions to the JVM (management extensions in particular), but core Java itself?  Nope and they never will (this has been publicly stated plenty of times).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think both MS and Oracle benefit massively due to indirect revenue with their repsepctive platforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Total Cost of Ownership (TCO)?  I'm not even going to get into this debate as there's no way to prove it (programming is a creative human activity after all).  I personally think that Java based systems tend to have a lower initial cost as you can utilise a free open source stack from top to bottom in most cases.  However, large enterprises tend to prefer having support contracts so that can nullify that particular benefit.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Development process (Easiest/Fastest)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Depends on what you're trying to build!  I'd personally argue that they're pretty much even, although C# has some extra features in the core language over Java at the moment.  However with (multiple inter-operable with Java) languages on the JVM (Groovy, Scala, Clojure etc) you can have all of the langauge features you want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;.NET had a distinct advantage for building web front end 'stuff' for awhile (Rapid Application Development if you will), but I think JEE6 and/or Spring and other web/app frameworks have pretty much closed that gap.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Also keep in mind that Linux is not&#xA;  your main platform but you would like&#xA;  to port your project to Linux/MacOs as&#xA;  well. You should definitely keep in&#xA;  mind the trouble that has been&#xA;  revolving around Oracle and the Java&#xA;  community and the limitations of Mono&#xA;  and Java as well. It would be much&#xA;  appreciated if people with experience&#xA;  in both can give an overview and their&#xA;  own subjective view about which they&#xA;  would choose and why.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you want to port to Linux, UNIX and in particular Mac OS then as stated above Java has an edge there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope that helps!&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-20T15:41:55.297" />
  <row Id="20266" PostTypeId="2" ParentId="20128" CreationDate="2010-11-20T15:43:41.940" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Spoken and Written language.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are currently one of the most efficient algorithm to transfer knowledge from one thing to another. Without language, civil society could not exist, and information could not be conveyed.&lt;/p&gt;&#xA;" OwnerUserId="3542" LastActivityDate="2010-11-20T15:43:41.940" CommunityOwnedDate="2011-02-13T09:34:31.083" CommentCount="3" />
  <row Id="20267" PostTypeId="2" ParentId="20239" CreationDate="2010-11-20T15:44:03.173" Score="6" ViewCount="" Body="&lt;p&gt;Prototype, Prototype, Prototype!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your team is not familiar with a particular framework then prototype something in it to evaluate where the pain points are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Matt Raible (Java Web framework comparator guy) suggests working with a framework for one week if possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prototyping includes investigating the community support behind a framework and other factors&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2010-11-20T16:21:31.783" LastActivityDate="2010-11-20T16:21:31.783" CommentCount="3" />
  <row Id="20268" PostTypeId="2" ParentId="20240" CreationDate="2010-11-20T15:44:26.073" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.doctrine-project.org&quot; rel=&quot;nofollow&quot;&gt;Doctrine&lt;/a&gt; and &lt;a href=&quot;http://www.propelorm.org/&quot; rel=&quot;nofollow&quot;&gt;Propel&lt;/a&gt; are two popular ORMs.  Personally I only have experience with Doctrine and have no complaints.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should also read through the answers to &lt;a href=&quot;http://stackoverflow.com/questions/108699/good-php-orm-library&quot;&gt;this question&lt;/a&gt; on StackOverflow.&lt;/p&gt;&#xA;" OwnerUserId="4260" LastActivityDate="2010-11-20T15:44:26.073" CommentCount="1" />
  <row Id="20269" PostTypeId="2" ParentId="20225" CreationDate="2010-11-20T16:07:53.567" Score="0" ViewCount="" Body="&lt;p&gt;If the testers are attempting to get a defined release to a customer, that is not expecting the new features then their request is reasonable, justified and you should bend over backwards to deliver it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this is just to assist in their &quot;processes&quot; during normal development phases, and ensuring that the bug list is not running out of control then without making an issue of it, ask the head of testing if this restraint can be relaxed a little until we get closer to the release point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider changing your source control system to a distributed product.  This will make it much easier to deliver such a release.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-20T16:07:53.567" />
  <row Id="20270" PostTypeId="2" ParentId="20262" CreationDate="2010-11-20T16:20:28.747" Score="7" ViewCount="" Body="&lt;p&gt;Not sure that anyone would/should make plans along these lines.  However in my previous (unmarried) life at parties when asked about my career I would tell people about my weekends as an unpaid paragliding instructor rather than my weekdays writing software.  I'd get much more interesting conversations that way as well as avoiding the &quot;I wonder if you could help me, my computer....&quot; situations.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-20T16:20:28.747" CommentCount="1" />
  <row Id="20271" PostTypeId="2" ParentId="20262" CreationDate="2010-11-20T16:25:51.023" Score="8" ViewCount="" Body="&lt;p&gt;It's either respect and understanding (which is so important in families!), or competition, or some combination of both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, a partner with a completely different but interesting background might be a fascinating experience. E.g. consider sharing your whole life with a musician, or a doctor. You are exposed to a whole new field, possibly a different mentality. But you know what, competition is possible even in this kind of couples. So it's more about personalities than occupation.&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-20T16:25:51.023" CommentCount="2" />
  <row Id="20272" PostTypeId="2" ParentId="20204" CreationDate="2010-11-20T16:36:53.807" Score="2" ViewCount="" Body="&lt;p&gt;I'd answer your question with questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What do you expect to get or achieve in return for the free work?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Can you get the same results in a more cost effective or reliable way?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, if you can program, someone will employ you.  If you don't know how to program, then no company will want you around stopping their programmers from delivering.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-20T16:36:53.807" />
  <row Id="20273" PostTypeId="2" ParentId="20204" CreationDate="2010-11-20T16:57:13.883" Score="5" ViewCount="" Body="&lt;p&gt;This cuts across industries, but working for free might seem like a way to gain experience and earn goodwill, yet often enough ends in bitterness and resentment when the parameters of work aren't clear. I've seen too many people do a favor and develop a simple website for friends, or colleagues, only to witness their relationships deteriorate because of unrealized expectations that the website would be further developed, supported, etc... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point isn't that doing the work in and of itself for free is bad, but that working for free usually means working outside of a clearly defined scope. Contracts and employment agreements are invaluable resources when things go wrong, which they often do. When you work for free you're working in a realm of colliding and sometimes contradictory expectations. If you are considering doing it, and the project or opportunity seems worthwhile, I'd suggest you draft up a scope of work, or some document to which you can refer back to if your time starts being taken advantage of. &lt;/p&gt;&#xA;" OwnerUserId="6894" LastActivityDate="2010-11-20T16:57:13.883" CommentCount="1" />
  <row Id="20274" PostTypeId="2" ParentId="20204" CreationDate="2010-11-20T17:05:23.533" Score="2" ViewCount="" Body="&lt;p&gt;I am currently working for free to gain experience and I don't mind working for free. I get to do something I really enjoy and will have a finished product I can call my own (my own projects always seem to stall). The problem can become the spouse/significant other. There have been a number of times where we get into arguments because I'm spending many hours doing something that will not pay out financially. &lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-11-20T17:05:23.533" />
  <row Id="20275" PostTypeId="1" AcceptedAnswerId="20436" CreationDate="2010-11-20T17:11:48.333" Score="71" ViewCount="4696" Body="&lt;p&gt;In &lt;a href=&quot;http://programmers.stackexchange.com/questions/20255/what-would-you-choose-for-your-project-between-net-and-java-at-this-point-in-tim/20257#20257&quot;&gt;What would you choose for your project between .NET and Java at this point in time ?&lt;/a&gt; I say that I would consider the &quot;Will you always deploy to Windows?&quot; the single most important decision to make up front in a new web project, and if the answer is &quot;no&quot;, I would recommend Java instead of .NET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A very common counter-argument is that &quot;If we ever want to run on Linux/OS X/Whatever, we'll just run Mono&quot;, which is a very compelling argument on the surface, but I don't agree for several reasons.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;OpenJDK and all the vendor supplied JVM's have passed the official Sun TCK ensuring things work correctly.  I am not aware of Mono passing a Microsoft TCK.&lt;/li&gt;&#xA;&lt;li&gt;Mono trails the .NET releases.  What .NET-level is currently fully supported?&lt;/li&gt;&#xA;&lt;li&gt;Does all GUI elements (WinForms?) work correctly in Mono?&lt;/li&gt;&#xA;&lt;li&gt;Businesses may not want to depend on Open Source frameworks as the official plan B.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I am aware that with the new governance of Java by Oracle, the future is unsafe, but e.g. &lt;a href=&quot;https://www.ibm.com/developerworks/java/jdk/&quot; rel=&quot;nofollow&quot;&gt;IBM provides JDK's for many platforms&lt;/a&gt;, including Linux.  They are just not open sourced.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, under which circumstances is Mono a valid business strategy for .NET-applications?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Edit:   &lt;a href=&quot;http://programmers.stackexchange.com/questions/20275/mono-is-frequently-used-to-say-yes-net-is-cross-platform-how-valid-is-that/20280#20280&quot;&gt;Sparkie summarized it as&lt;/a&gt;: &quot;If the claim is that &lt;em&gt;&quot;I have a windows application written in .NET, it should run on mono&quot;&lt;/em&gt;, then not, it's not a valid claim - but Mono has made efforts to make porting such applications simpler.&quot;. &lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2011-01-19T10:38:47.750" LastActivityDate="2011-01-19T10:38:47.750" Title="Mono is frequently used to say &quot;Yes, .NET is cross-platform&quot;. How valid is that claim?" Tags="&lt;java&gt;&lt;.net&gt;&lt;mono&gt;" AnswerCount="10" CommentCount="7" FavoriteCount="23" />
  <row Id="20276" PostTypeId="2" ParentId="20262" CreationDate="2010-11-20T17:19:35.413" Score="6" ViewCount="" Body="&lt;p&gt;As others said, it boils down to competition and understanding. I think having a partner from the same field can help bonding because you have all of this &quot;insider understanding&quot; about each other, so you understand each other's habits and can relate to what happened to each other during the day. You can also ask each other for advice, and work as a team to solve life problems (because you're both using the same mental tools), and when either of you succeeds, you can appreciate it more because you know what it took to do that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand it may result in competition and jealousy if one is disproportionately more successful than the other. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-11-20T17:19:35.413" />
  <row Id="20277" PostTypeId="2" ParentId="20204" CreationDate="2010-11-20T17:22:50.047" Score="13" ViewCount="" Body="&lt;p&gt;People regularly offer to work for me for free. (Explaining their reasoning just sounds like bragging, so I've removed what I wrote. Let's just take that as a given, ok?). I ALWAYS refuse. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if I don't pay a salary, taking someone on costs me in both money and time. Here's what I write to people who email me making this offer:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;We never take on volunteers: everyone&#xA;  who works for us is paid. Taking on a&#xA;  staff member involves expenses for&#xA;  hardware, software, office space,&#xA;  management time, training, and so on.&#xA;  Putting a new staff member on a&#xA;  project may slow that project. Before&#xA;  we take someone on we need to be&#xA;  convinced they will contribute at&#xA;  least as much as all those costs. If&#xA;  we are convinced of that, paying a&#xA;  salary is no problem. If we're not&#xA;  convinced, not paying a salary is no&#xA;  help.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I have to tell you what to do, check to see if you did it ok, fix it up if you didn't, train you on how to do it our way, pass on feedback (good or bad) from the client, and so on. An employer who won't take you on for a salary but will for free probably hasn't thought this through.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-20T17:22:50.047" CommentCount="1" />
  <row Id="20278" PostTypeId="2" ParentId="5331" CreationDate="2010-11-20T17:36:13.227" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If I do something for a client that I wouldn't be doing soon for other reasons, the client pays for it.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find it works best to value myself in a manner like other professionals do, such as doctors, lawyers, and accountants. Everybody who's not explicitly &quot;pro bono&quot; pays for time and effort - and the only charity programming I do is on open source projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some potential clients balk at paying for things like travel time, learning time, etc. I then explain that I'm not going to take time a different client would pay me for, and give it to them for free. Their reaction is a good litmus test of whether they'll be reasonable in the long run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like other contracting headaches, this has become much easier since I gave up on fixed-price contracts and went to strictly hourly.  My invoices include a day-by-day summary of work, and I'm not shy about remarking on research or learning. Also, I inform my clients beforehand of time-consuming research and get explicit approval before proceeding.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-11-20T17:36:13.227" />
  <row Id="20279" PostTypeId="2" ParentId="20275" CreationDate="2010-11-20T17:47:02.810" Score="10" ViewCount="" Body="&lt;p&gt;I have worked with Mono, and I would say it is as good as you can get with an alternate platform that is open-source, and not directly supported by Microsoft.  If you can be comfortable using an &lt;em&gt;alternate open-source&lt;/em&gt; platform like Clojure or Scala, you could probably be comfortable with using Mono.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The level of .NET supported by Mono can always be found on the &lt;a href=&quot;http://www.mono-project.com/Roadmap&quot; rel=&quot;nofollow&quot;&gt;Mono Roadmap&lt;/a&gt; page.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do all GUI elements work?  As far as I know, they do, although I haven't exhaustively tried every element.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is Mono identical to .NET?  No.  I suspect there will be minor (and maybe major) tweaks required here and there.  You can't, at present, run the Entity Framework with it, for example.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-20T17:47:02.810" CommentCount="2" />
  <row Id="20280" PostTypeId="2" ParentId="20275" CreationDate="2010-11-20T17:51:51.333" Score="76" ViewCount="" Body="&lt;p&gt;First, you need to make a distinction between the Common Language Infrastructure (The open standard), and .NET (Microsoft's implementation of that standard). Mono is an implementation of the CLI, and has never claimed to be a &quot;portable .NET&quot;. Also, the C# language is an open standard, and is not strictly tied to .NET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not aware whether Microsoft have any tool to validate that an implementation is compliant, but if they do, I'm pretty sure the mono guys have it, and use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mono is trailing behind the .Net, but barely. Mono can run C# 4.0 code (current .NET version). Also, Microsoft have recently made all DLR code and libraries open source (under the Apache 2.0 license), which has enabled mono to make use of languages like IronPython, IronRuby, and F# has been made open source only last week. In addition, Microsoft are regularly releasing CTPs of upcoming features in .NET, which allows mono developers to keep up to date with current release versions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a number of tools and extensions in .NET, for example, Code Contracts. These aren't always implemented fully in mono. (At present, I think there is a partial contract validator for Requires contracts). These aren't commonly used in .NET apps anyway, but if their popularity increased, so would the rate at which they get implemented in mono.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;WinForms are not (entirely) portable. They are a .NET specific and not part of the CLI. The CLI does not specify any particular widget set. There are cross platform widget sets though (GTK# and Silverlight). If you were writing an application from the ground up with portability in mind, you would use one of these rather than Winforms/WPF. In addition, mono provides a thin wrapper for the Winforms API - which enables existing winforms apps to be ported more easily into GTK# (without entire rewrite).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mono provides a tool, the Mono Migration Analyser (MoMA), which can take an existing .Net application and tell you about it's portability. (eg, identify unportable libraries that are used, P/Invokes etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For businesses that don't want to depend on Open Source - mono can be re-licensed. Ownership of code added to mono is handed over to novell, who can license it in alternative ways other than the usual LGPL license (which has very few restrictions anyway).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So as for the claim &quot;.NET is portable&quot;, I think this can be a valid assertion if you are writing code from the ground up and are aware of the portability issues with the framework. If the claim is that &quot;I have a windows application written in .NET, it should run on mono&quot;, then not, it's not a valid claim - but Mono has made efforts to make porting such applications simpler.&lt;/p&gt;&#xA;" OwnerUserId="356" LastActivityDate="2010-11-20T17:51:51.333" CommentCount="14" />
  <row Id="20281" PostTypeId="2" ParentId="20275" CreationDate="2010-11-20T17:52:40.340" Score="1" ViewCount="" Body="&lt;p&gt;It varies is the honest answer.  I have seen small web server stuff moved from IIS to Apache, running under mono with almost no difficulty.  I have run unchanged Windows .Net applications using Win Forms on Linux successfully.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, whilst it can work, if you are using an API call that's not implemented on mono then it won't work, and the only solutions are to either rewrite your application, stick with windows or write the extra stuff in mono.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-20T17:52:40.340" />
  <row Id="20282" PostTypeId="2" ParentId="20204" CreationDate="2010-11-20T18:22:40.457" Score="3" ViewCount="" Body="&lt;p&gt;Sort of. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm finishing a government contract that a friend botched even though there is no budget left - and I'm doing it for free. There was money in it earlier, and I made &lt;em&gt;some&lt;/em&gt; money from the project, but for the past year I've been doing it part-time for free to get the damned thing finished.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A friend I have known for 6 years was over his head with this project, and since it had some interesting things that I thought would help my current job, I helped him on the side. Helping him with his projects is something I had also been doing off and on for about 3 years. Sometimes it is interesting, sometimes same old boring stuff. Sometimes there is money, sometimes, all I get is dinner. Shortly after that I got brought on to the job officially. When the folks at the government agency saw that I was getting the work done, while my friend was screwing around and billing 40 hours for no work (and working 2 other jobs remotely and billing each of them 40 hr/week), they fired him and kept me on. The contracting company then got into trouble elsewhere and decided to foist the contract off onto his longtime friend (but only after all the money in the budget was gone). I had this stupid idea that I could somehow redeem my friend's reputation, and when all the money ran out the government agency was making threats to blacklist the new contracting company. This &quot;new&quot; contracting company only does government contracting, and if I walked away, about 40 people would lose their jobs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This was a simple conversion of a coldfusion site (which can no longer meet government security standards) to a .NET site. Making a website FIPS and PCI-DSS compliant is a skill needed for my main job anyway. It brings in $250,000,000 in tax revenue per year. There is no dev nor QA environment, so all code changes have to go live immediately. The site has been live for several months, so I'm just fixing bugs at this time. When they admit the site is working to spec, I will hand in my laptop and tell them &quot;don't call me ever again.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had an idea that maybe as some sort of payoff, since the network admins and DBAs will be retiring over the next 2 years, that I could swing some sort of pay-off from getting hired to replace one of them. As a government agency, I've since found out that cannot happen as all permanent hiring has to go through OPM. And with veteran's preferences (of which I am not one), I don't stand a chance of making it through the initial selection process to get to the interviewing stage. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, my initial idea that &quot;hey I made $20k already, that's plenty&quot; was also stupidly naive. Basically, I am married to these people at this agency, and it has been hard pushing back on the boundaries so that they don't call and email me at my day-job which could get me fired. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Working for free is a bad idea.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The customer won't recognize that boundaries exist, the value of what time you sacrificed for them and you'll never be finished. If you've been suckered into fixing computers for family and friends, you've come across this mentality. You touched it once, and now you're stuck with it forever. Likewise, if you own a pick up truck, you're everybody's greatest friend when they need to move something. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I leave this as a cautionary tale to others. If I knew then what I know now, I never would have taken this gig. While my friend (who burned through about $110k of the contract) and the first contracting company (who burned through about $60k of the contract) would have been sued into bankruptcy, perhaps they deserved that to happen. My friend got into a lot of financial trouble (mortgage resetting and going up 100%) and he made a lot of bad ethical and moral decisions to try to save his house. He has basically burned his reputation here in Denver and can't get work around here, so he's moved to the Baltimore/DC area where older contractors are common enough for him to fit in. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-20T18:22:40.457" CommentCount="2" />
  <row Id="20283" PostTypeId="2" ParentId="20178" CreationDate="2010-11-20T18:26:07.783" Score="4" ViewCount="" Body="&lt;p&gt;I have spent the last few years interviewing people and finding that 90% of candidates simply cannot program.  My interview technique for determining programming is to give the candidate an overly simple brief and let the candidate solve it using a marker and a whiteboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Failure modes include:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;coming up with a design and then implementing something different. These candidates are rejected because they are dangerous on a team. not follow specs, write bugs etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not being able to invent a design. A surprising number of &quot;experienced&quot; candidates need a spec to include implementation design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;not knowing the programming language, despite CV claiming experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not asking additional questions to extract fuller specifications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not being able to explain design decisions.  This one is major.  If someone cannot explain why, then each time they will do it differently, and consistency is lost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The end result was I spent a lot of time interviewing, and not recruiting very often. however, the development team was very good, and had the complete respect of the entire company and it delivered!&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-20T18:26:07.783" />
  <row Id="20284" PostTypeId="2" ParentId="9218" CreationDate="2010-11-20T18:32:54.107" Score="8" ViewCount="" Body="&lt;p&gt;I currently work at Google and before that Microsoft on the F# team knee deep in .NET, so hopefully I can answer your question accurately. In brief:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If you specialize in .NET&#xA;  technologies, the only company who&#xA;  will care is Microsoft. And even then,&#xA;  they won't.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;.NET is used in a lot of places, including Google, where it makes sense. For example Google has an app out for Windows Phone 7. However, being an expert in .NET doesn't necessarily make you a great engineer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What matters in careers at Microsoft and Google are computer science fundamentals: algorithms and data structures. If you overly-specialize in any technology or language -- be it Ruby, .NET, Java, and so on -- you end up trying to shoehorn it into any problem you see, and that never ends well. Even worse, you will be unable to see elegant solutions that don't fit into that paradigm.  (Node.js can do things you couldn't even imagine in .NET!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to land a job at Google, I recommend you spend a week trying to learn an entirely new programming stack. (New IDE, new language, new operating system, everything.) And see how well you fair. A good programmer should be able to adapt and produce great code regardless of toolset. If you find yourself really struggling to get anything done outside of Visual Studio, consider that a handicap.&lt;/p&gt;&#xA;" OwnerUserId="786" LastActivityDate="2010-11-20T18:32:54.107" CommentCount="2" />
  <row Id="20285" PostTypeId="2" ParentId="20204" CreationDate="2010-11-20T18:33:53.247" Score="1" ViewCount="" Body="&lt;p&gt;No. If this young man was such a genius, he would made his ẃay anyway. Fact is: working for free is, for obvious reasons, not sustainable. You may get some references, you may get some experience, but it will be a gig of (say) 1-2 months, because sooner or later you will run out of money. Unfortunately, a 1-2 months gig doesn't look too well on your resume.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-20T18:33:53.247" />
  <row Id="20286" PostTypeId="2" ParentId="20204" CreationDate="2010-11-20T18:45:39.643" Score="18" ViewCount="" Body="&lt;p&gt;I've never worked for free, but have worked almost for free, and can honestly tell you, &lt;strong&gt;the less somebody pays, the less they appreciate you&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, you don't need an employer any more, the barrier to entry is so low, if you have a computer and an internet connection, you can start your own company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are willing to work for free, I recommend (in order):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Build your own app (free or for profit) that people need and will use.&lt;/li&gt;&#xA;&lt;li&gt;Find an existing startup and work for equity.&lt;/li&gt;&#xA;&lt;li&gt;Start or become a serious contributor to an OSS project you are passionate about.&lt;/li&gt;&#xA;&lt;li&gt;Participate in a charity you are passionate about.&lt;/li&gt;&#xA;&lt;li&gt;Participate in an industry association, where you will make legitimate industry contacts.&lt;/li&gt;&#xA;&lt;li&gt;Participate in a non-profit where &lt;em&gt;nobody&lt;/em&gt; is benefiting financially (I have no examples, but suspect many of these are a little deceptive about anybody financially benefiting)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;But what ever you do, make sure it's engaging and something you have a strong interest in, otherwise you're going to burn out on a project for which you get nothing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would absolutely NEVER recommend you work for free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... oh yeah, and &lt;strong&gt;make sure you get the credit&lt;/strong&gt;.  Your name is on it, and can never be removed by anyone other than you!&lt;/p&gt;&#xA;" OwnerUserId="165" LastEditorUserId="165" LastEditorDisplayName="" LastEditDate="2010-11-20T19:01:33.277" LastActivityDate="2010-11-20T19:01:33.277" CommentCount="1" />
  <row Id="20287" PostTypeId="2" ParentId="2130" CreationDate="2010-11-20T19:02:28.330" Score="3" ViewCount="" Body="&lt;p&gt;I believe you can make a big difference regardless of the size of organization. The biggest difference is when you are assigned to work on something less than desirable. In a large organization, there is the possibility of moving to another project whereas in a small organization, you have to find a new employer...&lt;/p&gt;&#xA;" OwnerUserId="4799" LastActivityDate="2010-11-20T19:02:28.330" />
  <row Id="20288" PostTypeId="2" ParentId="16395" CreationDate="2010-11-20T19:06:07.953" Score="0" ViewCount="" Body="&lt;p&gt;Many employers will minimally confirm a job title with past employers, so having a solid title is of utmost importance. Architect is overused/abused. How about Enterprise Software Developer...&lt;/p&gt;&#xA;" OwnerUserId="4799" LastActivityDate="2010-11-20T19:06:07.953" />
  <row Id="20289" PostTypeId="1" CreationDate="2010-11-20T19:34:29.237" Score="2" ViewCount="258" Body="&lt;p&gt;I am a mid level IT lead at a IT support company with 8 years of experience. I don't get a lot of opportunities to learn at my organization since we primarily support existing systems and just fix issues arising on a day to day basis, We are not expected by the parent company to develop solutions from scratch. I aspire to become an Architect. Please guide me how should I plan to acquire the required skills and Knowledge esp since my company doesn't provide me with the right opportunities. The city where i am in doesn't have a lot of s/w development companies they are mostly services companies.&#xA;&lt;hr&gt;&#xA;Thanks a lot for your replies. Please give me some directions on how do I plan the self learning process ? Personal commitment won't let me move out of my current capacity to join a entry level job outside as of now . Atleast I should be well prepared to grab the opportunity when the time comes.&lt;/p&gt;&#xA;" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2011-03-16T04:57:00.507" LastActivityDate="2011-03-16T04:57:00.507" ClosedDate="2010-12-01T10:09:41.033" Title="Mid level IT lead" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="20290" PostTypeId="2" ParentId="20289" CreationDate="2010-11-20T19:37:31.373" Score="4" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Practice on your own time&lt;/li&gt;&#xA;&lt;li&gt;learn new languages/technologies on your own time&lt;/li&gt;&#xA;&lt;li&gt;get involved in a open source project&lt;/li&gt;&#xA;&lt;li&gt;free lance&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You just have to get out there and do stuff! &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-11-20T19:37:31.373" CommentCount="1" />
  <row Id="20291" PostTypeId="2" ParentId="10816" CreationDate="2010-11-20T19:50:48.580" Score="2" ViewCount="" Body="&lt;p&gt;There are a few outdated references in the book, but most of the content is still valid.  One particular point I'm thinking of is his discussion about AI and how computers can't even beat human's in chess, and he's not sure if that will ever happen.  Of course, that DID happen, but it was due to faster harder and larger databases of moves, not any revolutionary new algorithms in AI.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;His ideas about logic and such are still quite valid and good though.  If you have any interest in computer languages, the entire book is very useful as he discusses a lot of the fundamental concepts behind the design of language and symbolic notations.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-20T19:50:48.580" CommentCount="1" />
  <row Id="20292" PostTypeId="2" ParentId="20289" CreationDate="2010-11-20T20:24:05.933" Score="10" ViewCount="" Body="&lt;p&gt;Quit and go to another company that will give you the experience you want.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-20T20:24:05.933" CommentCount="6" />
  <row Id="20293" PostTypeId="1" AcceptedAnswerId="20295" CreationDate="2010-11-20T20:26:21.393" Score="4" ViewCount="195" Body="&lt;p&gt;Is there any compelling reason a programmer would host on a shared platform versus just having a VPS account somewhere?&lt;/p&gt;&#xA;" OwnerUserId="3110" LastActivityDate="2010-11-21T21:35:07.887" Title="VPS versus Shared Hosting" Tags="&lt;tools&gt;&lt;web-hosting&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="20294" PostTypeId="2" ParentId="20289" CreationDate="2010-11-20T20:28:04.077" Score="0" ViewCount="" Body="&lt;p&gt;Consider taking an entry-level position with an organization that does what you want to do. It's a big step, but a great path to getting where you want to go. There's significant value in working with folks who are already pros -- best practices will be learned and enforced, your senior co-workers can correct mistakes before they become bad habits, and you'll have easy access to those pro when you have questions or are unsure of the best approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I got into IT support 12 years ago, I started working for an organization that had some truly experienced folks on staff and I was able to learn a lot quickly. When I got into software development I started freelancing, and I haven't progressed nearly as quickly. Textbooks, Google, and online forums can help, but they just aren't the same as learning every day from a pro.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-20T20:28:04.077" CommentCount="1" />
  <row Id="20295" PostTypeId="2" ParentId="20293" CreationDate="2010-11-20T20:58:43.610" Score="3" ViewCount="" Body="&lt;h1&gt;Advantage Shared Hosting&lt;/h1&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Generally cheap so ideally for doing development or running smaller sites with low traffic&lt;/li&gt;&#xA;&lt;li&gt;A lot of features are pre setup among other a basic security model (hopefully)&lt;/li&gt;&#xA;&lt;li&gt;In general you get a lot of extra goodies like one-click installs that have been tested in the environment you are running it on and sometimes even configured&lt;/li&gt;&#xA;&lt;li&gt;When there is more traffic in general peaks are handled: with VPS your server is dead&#xA;e.g. on mediatemple there is a Grid based model which can scale . Even if there is a peak it just runs along though you get a mail that you will have to pay extra&lt;/li&gt;&#xA;&lt;li&gt;It is save you TIME investing in learning e.g. security (firewall on linux, ssh security, how to read the performance indicators e.g. what do these sockets indicators mean) &lt;/li&gt;&#xA;&lt;li&gt;And therefore saves TIME each month in maintenance (and this INCLUDES: issues means just mailing the helpdesk, outtages just waiting and shouting at support)&lt;/li&gt;&#xA;&lt;li&gt;Diskspace is often a lot more e.g. look at Dreamhost&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;h1&gt;Disadvantages Shared Hosting&lt;/h1&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Security is often less. E.g. a lot of users are running around in that same environment and when you have your files wrongly CHMOD'ded they can read them. If ever there is a general security breach...&lt;/li&gt;&#xA;&lt;li&gt;Often Peaks lead to scaling your performance down after that which is never really clear&lt;/li&gt;&#xA;&lt;li&gt;At some point with enough steady traffic / cpu usage / socket usage you run against the boundaries no matter what you simply have to switch&lt;/li&gt;&#xA;&lt;li&gt;You have not complete control over your server e.g. you can not really install another operation system (or something on top of that that is out of line) e.g. running some kind of server.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;h1&gt;Disadvantage VPS&lt;/h1&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Unmanaged AND managed VPS requires you to have the knowledge to secure the thing this costs you TIME (all knowledge is out there) but YOU are responsible for  it. You need to learn about linux firewalls for example (and a lot more). Maybe you do not want to spend your time on that.&lt;/li&gt;&#xA;&lt;li&gt;VPS requires also enough knowledge on OS level, maintain it, patching software you specifically installed and learning how to patch the specific software e.g. upgrade Apache with dependencies. This costs TIME learning but also TIME doing it each month&lt;/li&gt;&#xA;&lt;li&gt;ISSUES on VPS are YOUR responsibility (well ... for the most part) e.g. if your server is slow you need to go out there and check not only the software part but also the OS part and the Database performance part. E.g. if both CPU and Memory are ok... what the heck can it be. This also cost TIME. (also think of user management, email setup, etc...)&lt;/li&gt;&#xA;&lt;li&gt;Also it more expensive. And this is really a lot more expensive than shared hosting because the upper limit of what you can do on shared hosting is not the bottom limit of what VPS can offer. E.g. if your WordPress Multisite is on its max on your shared hosting account you can not get that 1mb cheap slice. You need to possible get immediately that 4 GIG memory thing. (ok this probably means go dedicated) (since database performance plays and issue here) OR if your facebook alike ajax chat application ran against its limit on your shared hosting account... go get something much bigger because probably the max sockets are your pain point. &lt;/li&gt;&#xA;&lt;li&gt;I just wanted to summarize ALL of this as : more TIME needed from yourself and possible A LOT if you still need to learn al lot and on the second place MONEY (since I assume that the revenue behind it would cover that larger need for infra).&lt;/li&gt;&#xA;&lt;li&gt;If you VPS runs against its limit e.g. 512mb memory (...) your site is DEAD (ok depending on how you set it up but lets assume worst case you need to go to the panel you put on it and restart the whole lot) as said on most shared hosting they will scale it and bill you afterwards unless your page hit the front page of digg then they will think some kind of ddos attack is taking place.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;h1&gt;Advantage VPS&lt;/h1&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;More secure: YOU are on top of it ;)&lt;/li&gt;&#xA;&lt;li&gt;from a certain level MORE memory, MORE cpu, MORE sockets, MORE everything (except possibly disk space) so at some stage you HAVE to&lt;/li&gt;&#xA;&lt;li&gt;You learn a lot of stuff which you need to learn anyway (i think)&lt;/li&gt;&#xA;&lt;li&gt;You can run anything you want as long as you have the resources for it&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Personally I think: run on a good shared account as long as possible, then switch to dedicated if it no longer goes on the shared platform unless the thing you are runnning can be confined on VPS. (such as : development environment that needs own server stuff).&lt;/p&gt;&#xA;" OwnerUserId="7738" LastEditorUserId="7738" LastEditorDisplayName="" LastEditDate="2010-11-20T22:48:57.800" LastActivityDate="2010-11-20T22:48:57.800" CommentCount="11" />
  <row Id="20296" PostTypeId="2" ParentId="20262" CreationDate="2010-11-20T21:26:10.630" Score="7" ViewCount="" Body="&lt;p&gt;I've seen this working really great for some people I know bringing total happyness in their life. But I've also seen the inverse, leading them to a miserable life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's impossible to answer this question. You have to evaluate that yourself for your own case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is valid for most professions.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-20T21:26:10.630" />
  <row Id="20297" PostTypeId="2" ParentId="20293" CreationDate="2010-11-20T21:30:26.237" Score="2" ViewCount="" Body="&lt;p&gt;A Shared platform frees you from responsibility for the OS.  not having to apply OS patches, not having to pay for software licences for the installed software, anti-virus, firewalls, backups are all your providers responsibility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now the flip side to this is that living on a shared server means your use of the server has to be compatible with the other hosted sites on that server.  You cannot be using major CPU cycles, large numbers of simultaneous users. etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can go for a virtual private server, but I would be asking questions about what it was you were actually getting for your money. A virtual machine might believe it has 2 fast CPU's, lots of memory and plenty of I/O bandwidth to the disks, but if they are running 20 VM's on the one server, all of these resources are going to be compromised. insist on acceptable performance guarantees.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For that serious product, nothing beats dedicated servers.  Even if you run VMWare on it and host your own virtual server farm.  At least you know you have the hardware resourced available that you have paid for. you have the control you want.  You just need the expertise to manage the servers when they are in an Internet exposed position.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-20T21:30:26.237" />
  <row Id="20298" PostTypeId="2" ParentId="20289" CreationDate="2010-11-20T21:51:42.883" Score="1" ViewCount="" Body="&lt;p&gt;I think you should take it step by step. As I understand in your place there are not much choices in companies and I dont know about your personal situation. I could imagine that you possible want to move but only if it is based on a big step forward. So:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your current role you could try to focus a bit more on the business side of things. Understand the language, understand the business goals, see how they affect IT decisions. Try to mingle here and there. Try to understand the improvement plans from a business perspective. You already know your stuff, use that as a basis. Assess yourself to see if the CIO favors your input / CEO / If they jump to you as the first person to ask not for technical issue but for IT issues that affect business or business issues that affect IT. You could e.g. learn about the range of government models, IT processes and frameworks, etc... and check if you can help your company to mature along that line and provide irritating feedback on that so many times that you will become the persons that is the evangelist around maturity of IT in your company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An Architect is a leader. Technology does not matter that much. An architect is about communication not technical skills. Try to keep that in mind, work on your soft skills and work on your business skills. Try to ask the questions that matter. Gain trust from the business on your personal traits not your technical skills. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There also &quot;operational architects&quot; and &quot;solution architects&quot; etc... so I realize the vague naming around the architect profession is something only to verified by external certifications for architect e.g &lt;a href=&quot;http://www.opengroup.org/itac/&quot; rel=&quot;nofollow&quot;&gt;http://www.opengroup.org/itac/&lt;/a&gt; . Try to certify yourself for that. If you have that paper it strengthens your proposition with other companies for a possible next step.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line is I think that you know you are able to grasp the technical side of things, you have proven that for years and the higher you rise the more technologies ranging from package implementations, different development programs and projects and operational departments will become part of your &quot;pyramid&quot;. So either you become an EXPERT in one or two fields (and call yourself e.g. solution architect in e.g. SAP/Siebel/NET/JAVA/Networking/WebSphere/whatever) (or operational architect idem) or you become an Information or even Enterprise ARCHITECT, two different routes. (or become a CONSULTANT and do both depending on the project grin).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Also make a list of different architects out there as noted above, maybe linkedin can help, and decide what kind of architect you want to become).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;update&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just wanted to let you know that some of the larger companies run internally IT Architect profession trainings. You have to have some years experience as you have and usually the architect training takes a year or two wherafter you can take some years going through certifications. You could check if some have openings for that (asking never hurts).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually they consist of a lot of sessions with experienced well known #1 world experts/architects/etc... who share their insights in one or two days sessions. Usually from all parts of the IT spectrum to make you rounded and open up the network. Which is what I forgot: networking, important so you need some kind of coach to pull you through and open up doors and help you with certification. Usually the people in your class are from all different fields ranging from really anything you can think of: from sales, operations, development, project management, all looking to make a step to become an architect. This in itself is also a learning experience.&lt;/p&gt;&#xA;" OwnerUserId="7738" LastEditorUserId="7738" LastEditorDisplayName="" LastEditDate="2010-11-20T22:35:22.440" LastActivityDate="2010-11-20T22:35:22.440" />
  <row Id="20299" PostTypeId="2" ParentId="20023" CreationDate="2010-11-20T21:55:34.883" Score="3" ViewCount="" Body="&lt;p&gt;scripting style languages such as python also make cross platform development easier. Now, whether you like Python (or other such languages) depends on you, and we probably don't need to start that debate here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java tries to force you to write code which will run portably, while python allows you to write portable code. The actual python language itself will run portably, but external libraries may or may not. Additionally, python will freely give access to platform specific services. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does Java an advantage there? I think in either case you can write the portable code with similar ease. That is, you can write code and it will usually work on different platforms. But you cannot get away with just writing code and assuming it will work everywhere. I've worked on a python project which produced version for Windows, Linux, and Mac and we ran into very few cross platform issues. (The only one I remember was due to a bug in the library we were using pygame, which caused drawing issues on Linux. This was fixed by upgrading the version of pygame we used)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another issue is deployment. If you want to distribute standalone programs that run your code you will have to produce different versions for different platforms. For Java you can distribute one version and assume that the user has Java installed or can install it. In this case Java probably wins in the simplicity of deployment department. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, I think it comes down to what language you like working with and what kind of deployment you need to perform. &lt;/p&gt;&#xA;" OwnerUserId="1343" LastEditorUserId="1725" LastEditorDisplayName="" LastEditDate="2011-02-14T17:29:18.983" LastActivityDate="2011-02-14T17:29:18.983" CommentCount="0" />
  <row Id="20300" PostTypeId="2" ParentId="19720" CreationDate="2010-11-20T22:05:43.033" Score="11" ViewCount="" Body="&lt;p&gt;Most developed countries keep statistics, although they all use slightly different standards for what they measure, so it's hard to compare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the United States, there are 1,336,300 programmers, &lt;a href=&quot;http://www.bls.gov/oco/ocos303.htm&quot; rel=&quot;nofollow&quot;&gt;according to the Bureau of Labor Statistics&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The United Kingdom has 333,000 &quot;software professionals,&quot; &lt;a href=&quot;http://www.statistics.gov.uk/statbase/product.asp?vlnk=14248&quot; rel=&quot;nofollow&quot;&gt;according to the Office for National Statistics.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Canada there are 387,000 people working in IT &lt;a href=&quot;http://www.statcan.gc.ca/pub/75-001-x/00703/0006579-eng.html&quot; rel=&quot;nofollow&quot;&gt;according to Statistics Canada&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Japan has 1,016,929 people working in &quot;information services&quot; &lt;a href=&quot;http://www.e-stat.go.jp/SG1/estat/ListE.do?lid=000001072070&quot; rel=&quot;nofollow&quot;&gt;according to Official Statistics of Japan&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The BLS maintains a &lt;a href=&quot;http://www.bls.gov/bls/other.htm&quot; rel=&quot;nofollow&quot;&gt;detailed list of online statistics agencies&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With a bit more research you can probably gather data for the rest of the world; if you do, please edit this answer (I will make it community wiki) so that we can develop a single source of information.&lt;/p&gt;&#xA;" OwnerUserId="30" LastEditorUserId="30" LastEditorDisplayName="" LastEditDate="2011-04-06T17:27:39.930" LastActivityDate="2011-04-06T17:27:39.930" CommunityOwnedDate="2010-11-20T22:05:43.033" />
  <row Id="20301" PostTypeId="2" ParentId="20084" CreationDate="2010-11-20T22:31:43.173" Score="2" ViewCount="" Body="&lt;p&gt;I used to have the view that source control was just a tool, and that each of the products did more or less the same thing.  And then the point of these distributed version control systems clicked with me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Distributed version control allows you to have more than one central repository.  Imagine code changes migrating from the local developer repository, to the feature repository, to the product repository, into the QA repository and finally into the released repository.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I use a commercial product called Kiln, that's based on Hg, but the &lt;strong&gt;key feature is distributed version control&lt;/strong&gt;. It revolutionises the flow of new code from developer into a released product.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-20T22:31:43.173" CommentCount="2" />
  <row Id="20302" PostTypeId="2" ParentId="19987" CreationDate="2010-11-20T22:54:21.970" Score="0" ViewCount="" Body="&lt;p&gt;William Hung parlayed his bad singing on American Idol into a career as a C-list celebrity. This doesn't mean that I would generally advise somebody to pursue bad singing as the foundation of a career in entertainment. Can you have a successful career as a developer only knowing .Net? Sure, thousands of people do. That doesn't mean it's a good career strategy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I fear your question is perilously close to asking &quot;What is the minimum I can do to be a successful developer?&quot;. The trouble is that the software job market is competitive, and becoming more so every day. Aiming to do the minimum is a recipe for a very vulnerable career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A much more reasonable (and harder) question is how do you allocate your time between mastering your primary platform, and keeping up to date with important developments on other platforms. Obviously you can't know everything, and you'd be well justified in devoting most of your time to developing your .Net expertise. But simply adopting a rule that you ignore all other platforms is lazy. If you are going to have a robust career you've got to continually exercise your judgement and critical faculties to figure out what developments in which platforms are going to be significant to the industry.&lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-11-20T22:54:21.970" />
  <row Id="20303" PostTypeId="2" ParentId="20262" CreationDate="2010-11-20T22:58:17.330" Score="5" ViewCount="" Body="&lt;p&gt;I think it boils down to &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&quot;the grass is always greener on the other side&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;versus&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&quot;if you can not be with the one you love, love the one you are with&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;yes this is a recursive algorithm with a delta t of 4 years but with a lower and upper boundary of $age.&lt;/p&gt;&#xA;" OwnerUserId="7738" LastEditorUserId="7738" LastEditorDisplayName="" LastEditDate="2010-11-22T04:59:41.440" LastActivityDate="2010-11-22T04:59:41.440" CommentCount="4" />
  <row Id="20304" PostTypeId="2" ParentId="20246" CreationDate="2010-11-20T23:14:15.417" Score="0" ViewCount="" Body="&lt;p&gt;&quot;Would you think spending the time and resources to completely re-develop the application under .Net would be more cost effective?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not a question that can be answered here. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the top of the requirement pyramid: someone made a decision which he hopefully can justify with a business plan. In that business plan it should state how many hours+extra costs it takes to convert the application and in that same business plan the benefits are stated also in terms on money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is the way to do it. If there is no business plan for it. then the answer is to first work on a business plan traceable to some high level use cases to make the impact analysis to verify the start of the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the original driver of the business goal leading to the change is not even based on money then this person is probably the one paying for it all so it must be done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there is no business plan but &quot;it just is done&quot; then try to make one and present it to upper management. Include high level uses cases, costs, hours for redesign, build, extra cost for operations, new training for admin and endusers, project management and potential risks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO this is no technical question.&lt;/p&gt;&#xA;" OwnerUserId="7738" LastActivityDate="2010-11-20T23:14:15.417" />
  <row Id="20305" PostTypeId="2" ParentId="20233" CreationDate="2010-11-20T23:32:11.150" Score="1" ViewCount="" Body="&lt;p&gt;I think you must not forget the other side. For any user it is difficult to produce a complete list of details of what you want. Think of yourself, you think of new things all the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is an incredible hard job to come up with all the requirements and details of something you only have a vague idea about. I don't think anyone can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a book here from the 70's called &quot;why software projects fail&quot;. When I read on blogs and get IT magazines I read on the cover &quot;why software projects fail&quot;. And when I compare the book contents with the current listings.... nothing changed. Iterative development: yes lots of variations and it helps at some level. But after all this time the contents of the magazines have the same covers. If you don't believe me go digg up some magz from the way past and see how you can copy and paste the text to the now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This problem is not solvable on the IT end. We have been inventing new tools, processes, checklists, requirements analysis schemes, (business) use cases, development frameworks, BPM, SOA, you call it and still the same problem exists...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to optimize this around 'the requirements specifier'. So you need to give those people the adequate tools, whatever to enable them to bring &lt;em&gt;their&lt;/em&gt; level higher:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So e.g. for these persons: spec patterns out of the box, input from other projects and companies doing the same copy their end-result requirements and lessons, get people in there who have been through the dirt and can help this person to specifiy the things that caused the greatest problems and are not &quot;trivial&quot; but can only be learned after doing it (e.g. senior technical consultants doing the same stuff at other companies), give these people requirements composer tooling, for insurance, banks, telco etc...: dont invent your own processes buy the generic processes out of the box, etc...  they NEED tools just like developer need tools and patterns and frameworks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does not solve it but improves it significantly IMHO the improvement should be around that area and not later down the road.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just like a developer these persons just try to do the best they can. But unlike developers for their field most of the stuff we take for granted after 30 years is not even present in that field. In general their tools are outlook, excel, word and a board. Their processes are brainstorm sessions. A lot of improvement can be done in this field.&#xA;Ofcourse the problem is mostly that they are sitting &quot;outside&quot; IT so even plans from the CIO to improve the situation in that field fall on deaf ears... but that is another question: how to &quot;sell&quot; this.&lt;/p&gt;&#xA;" OwnerUserId="7738" LastEditorUserId="7738" LastEditorDisplayName="" LastEditDate="2010-11-20T23:38:01.927" LastActivityDate="2010-11-20T23:38:01.927" />
  <row Id="20306" PostTypeId="2" ParentId="20225" CreationDate="2010-11-20T23:57:46.317" Score="0" ViewCount="" Body="&lt;p&gt;&quot;Can you agree if this is a common testing principle.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Yes&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Is the test team's concern valid&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Yes&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Have you encountered this in practice in your project.&quot;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Yes&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;and Yes Merging is the downside of it &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You did not ask who's responsibility it is but it is the Configuration Manager's responsibility. This stream strategy should be in his CMP. Otherwise fire him/her.&#xA;I think the response from Pierre 303 is also very good but ofcourse where possible&#xA;technically (e.g. thinking of a Siebel release...) and organizationally.&lt;/p&gt;&#xA;" OwnerUserId="7738" LastEditorUserId="7738" LastEditorDisplayName="" LastEditDate="2010-11-21T00:03:31.197" LastActivityDate="2010-11-21T00:03:31.197" />
  <row Id="20310" PostTypeId="2" ParentId="20262" CreationDate="2010-11-21T00:08:56.793" Score="20" ViewCount="" Body="&lt;p&gt;Speaking as someone who's done it for many years—a &lt;strong&gt;&lt;em&gt;big&lt;/em&gt;&lt;/strong&gt; pro is not having to explain our references.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, one of us can start with, &quot;Did you see that article in &lt;em&gt;The Reg&lt;/em&gt;…&quot; and the other will answer, &quot;Yeah—what a moron!&quot; And we'll both laugh, and that's all that we need to say about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If one of us has accomplished or learned something major that day, it's great to be able to discuss it with someone who gets why it's so damn cool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With a non-geek, I'd either have to always be explaining the background or just not talk about what I do with a large part of my waking hours. I see both of those options as annoying &amp;amp; boring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A downside can be, as mentioned previously, when there's some competition between us. For instance, we both applied to talk at an upcoming conference—and my proposal was accepted and his wasn't. That's a delicate subject at home right now (as you might guess).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But overall, the pluses &lt;em&gt;far&lt;/em&gt; outweigh the negatives.&lt;/p&gt;&#xA;" OwnerUserId="99" LastEditorUserId="99" LastEditorDisplayName="" LastEditDate="2010-11-22T02:11:50.133" LastActivityDate="2010-11-22T02:11:50.133" CommentCount="2" />
  <row Id="20311" PostTypeId="2" ParentId="20239" CreationDate="2010-11-21T00:26:35.400" Score="1" ViewCount="" Body="&lt;p&gt;&quot;How do you manage in these situations?&quot;. What I have seen / experienced:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the number 1 point I agree with Ptolemy: be honest: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it is really a problem: go to that room, tell the problem, sit back to await the anger response and then ... work towards a new plan/solution. (the guy is not angry at you personally).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are IT courses which deal only with this situation. You are placed with actors and they place the angry client who hears this news. You get a lot of tips around it. Sounds stupid but probably only after doing it you notice the value of it. I left with a sheet with 80 points to remember in those situations... (and practice).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This situation is typical probably even more so today where budgets are tight, sales are done on &quot;lowest offer&quot;, the planning you gave is trimmed 5 times before it is accepted by the customer... (including that prototype since &quot;he is hiring you because you are the expert and otherwise it is 10 others waiting&quot;) etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;--&#xA;Another thing might be lateral thinking: if it can not be done in this way try to propose something completely different that provides the same value for the customer. If the technology does not work AT ALL / is broke / jumps out of the deal / etc... If the customer buys in to this it can deliver the same value at the end. But bringing it is also pretty hard. (for some and totally not for others). You need the really experienced guys for this. A likewise situation is that the Technology is NOT YET up to it... it takes some months... So you need to convince to customer to replan and accept the replanning and impact on his organization...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- Another 'lesson learned' is to invoke the senior senior guys as soon as you notice that it goes in this direction. They often have dealt with troubled projects and are really helpful in these situations. Often they only travel from troubled project to troubled project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- Another lesson learned is to let your architectural stuff go through verification channels especially on the bigger projects. A signature can cover your ass. (save all your e-mails LOL)&lt;/p&gt;&#xA;" OwnerUserId="7738" LastEditorUserId="7738" LastEditorDisplayName="" LastEditDate="2010-11-21T00:33:19.310" LastActivityDate="2010-11-21T00:33:19.310" />
  <row Id="20312" PostTypeId="2" ParentId="20233" CreationDate="2010-11-21T00:27:34.820" Score="0" ViewCount="" Body="&lt;p&gt;If you really want to do the job right, before you start working on code or designing an architecture, sit down with some of the people who will be the users of your code ( not their management or any other higher level stakeholder ) and get them to show you how to do their job. Ideally actually do the job for a day or two. That will give you an understanding of the way the current system works and the type of people who are doing it. It will also show you the frustrations they have with the current system and the things that are hitting their productivity. You need to hear all the daily gripes and annoyances too, which may mean you have to do what is necessary to make sure their feedback stops with you or your design team, if the idea of passing their views on to other members of their organisation is likely to inhibit that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For each group of users you need to have someone who will be working on the development of that part of the software do the same thing. Then you can all meet up and discuss what you have learned in the roles you have shadowed to see whether there are areas of crossover and how you can make things easiest for everyone involved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't suggest this replaces other requirements gathering processes, but it is a supplement that lets you understand what the real users need from your system. Whatever managment &lt;em&gt;thinks&lt;/em&gt; they need, it is likely that the managers and business analysts will not be the actual users of the system, but if you can make the system work well for those users it's going to make them more productive, making the managers happy and making your company look good.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-21T00:27:34.820" />
  <row Id="20316" PostTypeId="2" ParentId="20204" CreationDate="2010-11-21T00:54:53.247" Score="0" ViewCount="" Body="&lt;p&gt;IMO, Working for free is totally wrong and I cannot even find a good example for that (except for the charity)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started programming when I was 13-14 years old and I worked for some of my friends (whom were 24-25 years old) and I really have bad experience about that.&lt;/p&gt;&#xA;" OwnerUserId="8052" LastActivityDate="2010-11-21T00:54:53.247" />
  <row Id="20317" PostTypeId="2" ParentId="18751" CreationDate="2010-11-21T00:57:08.667" Score="0" ViewCount="" Body="&lt;p&gt;Lot's of tools out there, depending how much time and money you want to invest, we are doing most of what you have in your requirements using &lt;a href=&quot;http://visual-paradigm.com&quot; rel=&quot;nofollow&quot;&gt;Visual Paradigm&lt;/a&gt; and &lt;a href=&quot;http://www.pivotaltracker.com/&quot; rel=&quot;nofollow&quot;&gt;Pivotal Tracker&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4171" LastActivityDate="2010-11-21T00:57:08.667" />
  <row Id="20319" PostTypeId="2" ParentId="20275" CreationDate="2010-11-21T01:01:04.490" Score="4" ViewCount="" Body="&lt;p&gt;From a user perspective, Mono sucks at making Windows .NET apps compatible with Linux. If you actually try to run any decently written Windows app in Mono it wouldn't work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a packager's perspective (I used to do a bit of work at PortableApps), .NET can be both a blessing and a curse. If you're only on Windows, .NET makes deployment a lot easier because more libraries means less system-dependent stuff (most notably between versions of Windows, I believe) but is also extremely confusing even on Windows because .NET versions are neither backwards-compatible or forwards compatible. You have to download different versions of .NET for different programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, Mono is a fine starting point for making C# programs cross-platform. Just don't package the program with the latest WINE and call it done though. Look where that took Picasa.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As with the two languages/platforms political stability, RMS would probably start ranting on about how Mono is headed by Novell, whose honeymoon with Microsoft is quite notorious. Both platforms can be considered politcally unstable right now. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really want easy cross-platform, the tried and true path is QT which is quite stable politically as of right now it's a) LGPL'd, b) done with its major licensing issues years past, and c) backed by Nokia, which sells really really popular phones.&lt;/p&gt;&#xA;" OwnerUserId="8051" LastActivityDate="2010-11-21T01:01:04.490" CommentCount="1" />
  <row Id="20320" PostTypeId="2" ParentId="18704" CreationDate="2010-11-21T01:04:54.803" Score="4" ViewCount="" Body="&lt;p&gt;Given the constraints, I'd suggest implementing a version of Hangman. It would allow for the students to demonstrate all of the techniques you are introducing them to, without being overly complex.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can also be used as a developing project as the course progresses.  e.g.  once you have covered strings and variables starts out as a text version &lt;/p&gt;&#xA;&#xA;&lt;p&gt;e.g.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;You have 10 guesses left.      * * * E * * T&#xA;What is your next guess?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;then introduce loops to remove the cut and paste element from the code as the 10 guesses count down...  building up to having line graphics and the stick person being hung / saved at the end of the 5 week course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Like most other people who have experience of recruiting and interviewing programmers, it really makes me cringe that this level of tuition is needed at university, but alas, it probably will continue to be needed until schools treat programming as a serious subject on a par with mathematics or sciences&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-21T01:04:54.803" CommentCount="3" />
  <row Id="20321" PostTypeId="2" ParentId="20275" CreationDate="2010-11-21T01:13:30.940" Score="9" ViewCount="" Body="&lt;p&gt;Point by point:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;OpenJDK and all the vendor supplied JVM's have passed the official Sun TCK ensuring things work correctly. I am not aware of Mono passing a Microsoft TCK.&lt;/strong&gt;&lt;br&gt;&#xA;There is a specification that the Microsoft CLR conforms to.  Mono is not a clone of Microsoft's CLR, but rather an implementation of that same specification.  On the one hand, there's the chance that this results in even greater incompatibility.  In practice, this has worked very well for mono.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Mono trails the .NET releases. What .NET-level is currently fully supported?&lt;/strong&gt;&lt;br&gt;&#xA;Because the documentation for .Net precedes the actual release, mono actually had completed (not a beta release) support for .Net 4 out &lt;em&gt;before&lt;/em&gt; the official Microsoft release.  Additionally, mono does a very good job of documenting what things are not supported, and they have a few tools you can run against existing project to help you spot places with the potential for incompatibility.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Does all GUI elements (WinForms?) work correctly in Mono?&lt;/strong&gt;&lt;br&gt;&#xA;The vast majority of winforms works just fine.  WPF, not so much.  I've heard that the same is true for Java &amp;mdash; many of the advanced widget/gui toolkits aren't as well supported on all platforms.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Businesses may not want to depend on Open Source frameworks as the official plan B.&lt;/strong&gt;&lt;br&gt;&#xA;If that's the case, they definitely won't be going with Java, then, as that puts an open source framework up even higher at plan A.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In summary, if you want to build a cross-platform app &lt;em&gt;right now&lt;/em&gt;, there's nothing wrong with starting with mono from the get-go and using that as your framework.  You can even deploy mono on Windows if you want.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if you you're looking at building a Windows app today that you think &lt;em&gt;might&lt;/em&gt; need to be cross platform at some unknown point in the future, you probably want to go with the native Windows widgets and tools.  .Net does a much better job here than does Java, and mono is a perfectly acceptable fall back in this scenario.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words: Yes, .Net if cross-platform in every way that matters to your question.  No, mono won't just run every .Net program out of the box, but your question is in the context of a new project. It doesn't take much work to keep new projects out of trouble and avoid compatibility issues, especially if you think in terms of developing for mono rather than developing for .Net.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of all, though, I think this is the wrong question in the first place.  Unless you're building a new development team from scratch, you're starting with programmers that have expertise in one area or another.  Your best results will be achieved by going with what your programmers already know.  As important as building a cross-platform app may seem, if you have a team full of .Net programmers with little java experience, you're unlikely to fire them or make them all learn java for your next project.  If you have a team full of java programmers, you're not gonna ask them to learn .Net for a Windows-only project.  Either of those would be nuts.&lt;/p&gt;&#xA;" OwnerUserId="8057" LastEditorUserId="8057" LastEditorDisplayName="" LastEditDate="2010-11-21T01:18:31.953" LastActivityDate="2010-11-21T01:18:31.953" CommentCount="6" />
  <row Id="20322" PostTypeId="2" ParentId="20275" CreationDate="2010-11-21T01:13:31.690" Score="3" ViewCount="" Body="&lt;p&gt;Mono is not a 1:1 port of Microsoft's .net. There are technologies that Mono simply won't implement or has no plans to do so (e.g., Workflow Foundation or &lt;a href=&quot;http://www.mono-project.com/WPF&quot; rel=&quot;nofollow&quot;&gt;WPF&lt;/a&gt;) while on the other hand they have some technologies of their own that Microsoft .NET doesn't do, e.g., SIMD Extensions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Short Answer: Mono and Microsoft .NET are based on the same underlying foundation - CIL and BCL - but are separate projects.&lt;/p&gt;&#xA;" OwnerUserId="6342" LastActivityDate="2010-11-21T01:13:31.690" />
  <row Id="20323" PostTypeId="2" ParentId="20128" CreationDate="2010-11-21T01:15:41.890" Score="4" ViewCount="" Body="&lt;p&gt;All algorithms which used for solving Visibility Problem in 3D Computer Animation seems crucial to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Painter%27s_algorithm&quot; rel=&quot;nofollow&quot;&gt;Painter's algorithm&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The painter's algorithm, also known as a priority fill, is one of the simplest solutions to the visibility problem in 3D computer graphics. When projecting a 3D scene onto a 2D plane, it is necessary at some point to decide which polygons  are visible, and which are hidden.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Z-buffering&quot; rel=&quot;nofollow&quot;&gt;Z-buffering&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In computer graphics, z-buffering is the management of image depth coordinates in three-dimensional (3-D) graphics, usually done in hardware, sometimes in software. It is one solution to the visibility problem, which is the problem of deciding which elements of a rendered scene are visible, and which are hidden. The painter's algorithm is another common solution which, though less efficient, can also handle non-opaque scene elements. Z-buffering is also known as depth buffering.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Hidden_surface_determination&quot; rel=&quot;nofollow&quot;&gt;Hidden surface determination&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In 3D computer graphics, hidden surface determination (also known as hidden surface removal (HSR), occlusion culling (OC) or visible surface determination (VSD) is the process used to determine which surfaces and parts of surfaces are not visible from a certain viewpoint. A hidden surface determination algorithm is a solution to the visibility problem, which was one of the first major problems in the field of 3D computer graphics. The process of hidden surface determination is sometimes called hiding, and such an algorithm is sometimes called a hider. The analogue for line rendering is hidden line removal. Hidden surface determination is necessary to render an image correctly, so that one cannot look through walls in virtual reality, for example.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="8052" LastEditorUserId="8052" LastEditorDisplayName="" LastEditDate="2010-11-21T04:52:43.053" LastActivityDate="2010-11-21T04:52:43.053" CommunityOwnedDate="2011-02-13T09:34:31.083" />
  <row Id="20328" PostTypeId="2" ParentId="501" CreationDate="2010-11-21T03:39:07.080" Score="10" ViewCount="" Body="&lt;h2&gt;Java&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Period.  Full stop.  End of story.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where to start?  Oh, I know where to start: Java’s insanely complicated and ugly and stupid  and &lt;strong&gt;inherently broken&lt;/strong&gt; generics.  Need I say more? :(  Ok fine, then: &lt;strong&gt;type erasure&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then there’s non-deterministic resource management.  Kewl feetcher!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What’s next up?  Oh yeah: &lt;a href=&quot;http://www.google.com/codesearch/p?hl=en#4vlodpF_ctc/nexus/nexus-utils/src/main/java/org/sonatype/nexus/util/Inflector.java&amp;amp;q=%66%75%63%6b%69%6e%67%20lang%3ajava&amp;amp;sa=N&amp;amp;cd=225&amp;amp;ct=rc&quot; rel=&quot;nofollow&quot;&gt;Java’s stupid regexes&lt;/a&gt; are my most irritating, seething beef. I cannot count how many times I’ve been hosed by not having enough backslashes.  This is even worse than not having access to any Unicode properties from this millennium — which is complete bull.  &lt;strong&gt;Ten fricking years out of date!!!&lt;/strong&gt; Completely useless.  Trash it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then there’s the bug that the character class shortcuts don’t work on non-ASCII. What a royal pain!  And don’t even consider using &lt;code&gt;\p{javaWhiteSpace}&lt;/code&gt;; it doesn’t do the right thing with several very common Unicode whitespace code points.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Did you know there’s a &lt;code&gt;\p{javaJavaIdentifierStart}&lt;/code&gt; property?  Whatwhatatat wereere  they thinkinking? So glad they got such smart peepers wurkin on dis tough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ever tried to use the CANON_EQ flag? Do you know that &lt;strong&gt;really&lt;/strong&gt; does, and what it &lt;strong&gt;doesn’t&lt;/strong&gt; do?  How about so-called “Unicode case”?  A bunch of normal casing things just don’t work at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then they make it hard to write maintainable regexes.  Java still hasn’t figured out how to write multiline strings, so you end up writing insane things like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    &quot;(?= ^ [A-Z] [A-Za-z0-9\\-] + $)      \n&quot;&#xA;  + &quot;(?! ^ .*                             \n&quot;&#xA;  + &quot;    (?: ^     \\d+      $            \n&quot;&#xA;  + &quot;      | ^ [A-Z] - [A-Z] $            \n&quot;&#xA;  + &quot;      | Invitrogen                   \n&quot;&#xA;  + &quot;      | Clontech                     \n&quot;&#xA;  + &quot;      | L-L-X-X                      \n&quot;&#xA;  + &quot;      | Sarstedt                     \n&quot;&#xA;  + &quot;      | Roche                        \n&quot;&#xA;  + &quot;      | Beckman                      \n&quot;&#xA;  + &quot;      | Bayer                        \n&quot;&#xA;  + &quot;    )      # end alternatives        \n&quot;&#xA;  + &quot;)          # end negated lookahead   \n&quot; &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;What are all those newlines?  Oh, just Java stupidity. They used Perl comments, not Java comments (&lt;strong&gt;idiots!&lt;/strong&gt;) which go till end of line.  So if you don’t put those &lt;code&gt;\n&lt;/code&gt;’s there, you chop off the rest of your pattern.  Duh and double duh!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don’t use regexes in Java: you’ll just end up wanting to smash things, it’s all so painful and broken. I can’t believe people put up with this.  &lt;a href=&quot;http://www.google.com/codesearch/p?hl=en#4vlodpF_ctc/nexus/nexus-utils/src/main/java/org/sonatype/nexus/util/Inflector.java&amp;amp;q=%66%75%63%6b%69%6e%67%20lang%3ajava&amp;amp;sa=N&amp;amp;cd=225&amp;amp;ct=rc&quot; rel=&quot;nofollow&quot;&gt;Some don’t&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then we can start talking about Java’s idiot nonsense with encodings. First, there’s the fact that the default platform encoding is always some lame 8-bit encoding even though Java’s charchars are Unicode.  Then there’s how they don’t raise an exception on an encoding error.  You’re guaranteed to get crap.  Or how about this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;OutputStreamWriter(OutputStream out) &#xA;          Creates an OutputStreamWriter that uses the default character encoding.&#xA;OutputStreamWriter(OutputStream out, Charset cs) &#xA;          Creates an OutputStreamWriter that uses the given charset.&#xA;OutputStreamWriter(OutputStream out, CharsetEncoder enc) &#xA;          Creates an OutputStreamWriter that uses the given charset encoder.&#xA;OutputStreamWriter(OutputStream out, String charsetName) &#xA;          Creates an OutputStreamWriter that uses the named charset.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;What’s the difference?  Did you know that &lt;em&gt;only one&lt;/em&gt; of those will raise an exception if you have an encoding error?  The rest just muzzle them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then there’s the idiocy of Java chars not being sufficient to hold a character!  What the hell are they thinking?  That’s why I call them charchars.  You have to write code like this if you expect it work right:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private static void say_physical(String s) { &#xA;    System.out.print(&quot;U+&quot;);&#xA;    for (int i = 0; i &amp;lt; s.length(); i++) {&#xA;        System.out.printf(&quot;%X&quot;, s.codePointAt(i));&#xA;        if (s.codePointAt(i) &amp;gt; Character.MAX_VALUE) { i++; }  // UG!&#xA;        if (i+1 &amp;lt; s.length()) { System.out.printf(&quot;.&quot;); }&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And &lt;em&gt;who&lt;/em&gt; ever thinks to do that? Next to nobody.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How many characters are there in &lt;code&gt;&quot;\uD83D\uDCA9&quot;&lt;/code&gt;?  One or two? Depends on how you count them.  The regex engine of course deals with logical characters, so a pattern &lt;code&gt;^.$&lt;/code&gt; will succeed and a pattern &lt;code&gt;^..$&lt;/code&gt; will fail.  This insanity is demonstrated here:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;String { U+61, &quot;\u0061&quot;, &quot;a&quot; }  =~ /^.$/ =&amp;gt; matched.&#xA;String { U+61, &quot;\u0061&quot;, &quot;a&quot; }  =~ /^..$/ =&amp;gt; failed.&#xA;String { U+61.61, &quot;\u0061\u0061&quot;, &quot;aa&quot; }  =~ /^.$/ =&amp;gt; failed.&#xA;String { U+61.61, &quot;\u0061\u0061&quot;, &quot;aa&quot; }  =~ /^..$/ =&amp;gt; matched.&#xA;String { U+DF, &quot;\u00DF&quot;, &quot;ß&quot; }  =~ /^.$/ =&amp;gt; matched.&#xA;String { U+DF, &quot;\u00DF&quot;, &quot;ß&quot; }  =~ /^..$/ =&amp;gt; failed.&#xA;String { U+DF.DF, &quot;\u00DF\u00DF&quot;, &quot;ßß&quot; }  =~ /^.$/ =&amp;gt; failed.&#xA;String { U+DF.DF, &quot;\u00DF\u00DF&quot;, &quot;ßß&quot; }  =~ /^..$/ =&amp;gt; matched.&#xA;String { U+3C3, &quot;\u03C3&quot;, &quot;σ&quot; }  =~ /^.$/ =&amp;gt; matched.&#xA;String { U+3C3, &quot;\u03C3&quot;, &quot;σ&quot; }  =~ /^..$/ =&amp;gt; failed.&#xA;String { U+3C3.3C3, &quot;\u03C3\u03C3&quot;, &quot;σσ&quot; }  =~ /^.$/ =&amp;gt; failed.&#xA;String { U+3C3.3C3, &quot;\u03C3\u03C3&quot;, &quot;σσ&quot; }  =~ /^..$/ =&amp;gt; matched.&#xA;String { U+1F4A9, &quot;\uD83D\uDCA9&quot;, &quot;&quot; }  =~ /^.$/ =&amp;gt; matched.&#xA;String { U+1F4A9, &quot;\uD83D\uDCA9&quot;, &quot;&quot; }  =~ /^..$/ =&amp;gt; failed.&#xA;String { U+1F4A9.1F4A9, &quot;\uD83D\uDCA9\uD83D\uDCA9&quot;, &quot;&quot; }  =~ /^.$/ =&amp;gt; failed.&#xA;String { U+1F4A9.1F4A9, &quot;\uD83D\uDCA9\uD83D\uDCA9&quot;, &quot;&quot; }  =~ /^..$/ =&amp;gt; matched.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That idiocy is all because you can’t write the perfectly reasonable &lt;code&gt;\u1F4A9&lt;/code&gt;, nor of course do you get any warning that you can’t do that. It just does the wrong thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stoooopid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While we’re at it, the whole &lt;code&gt;\uXXXX&lt;/code&gt; notation is congenitally brain dead. The Java preprocessor (&lt;strong&gt;yes, you heard me&lt;/strong&gt;) gets at it before Java does, so you are forbidden from writing perfectly reasonable things like &lt;code&gt;&quot;\u0022&quot;&lt;/code&gt;, because by the time Java sees that, its preprocessor has turned it into &lt;code&gt;&quot;&quot;&quot;&lt;/code&gt;, so you lose.  Oh wait, &lt;strong&gt;not&lt;/strong&gt; if it’s in a regex! So you can use &lt;code&gt;&quot;\\u0022&quot;&lt;/code&gt; just fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Riiiiiiiight!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Did you know there’s no way in Java to do an &lt;code&gt;isatty(0)&lt;/code&gt; call?  You aren’t even allowed to think such thoughts.  It wouldn’t be good for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then there’s the whole classpath abomination.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or the fact that there’s no way to specify the encoding of your Java source file &lt;strong&gt;in that same source file&lt;/strong&gt; so you don’t lose it?  Once again I demand to know: &lt;strong&gt;WHAT THE HELL WERE THEY THINKING‽‽‽&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stop the madness!  I can’t believe people put up with this garbage.  It’s a complete joke. I’d rather be a Walmart greeter than suffer the slings and arrows of outrageous Java insanity.  It’s all broken, and they not only can’t fix it, they &lt;strong&gt;won’t&lt;/strong&gt; fix it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This by the same foxy-grapey people who prided themselves on a language that made it illegal to have a &lt;code&gt;printf()&lt;/code&gt; function. Gee, &lt;strong&gt;that&lt;/strong&gt; sure worked out real well, didn’t it though!?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sheer numbskulls. Bitch-slapping is too kind for them. If I wanted to program in assembler, I would. This is not a salvageable language. The emperor has no clothes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We hates it.  We hates it &lt;strong&gt;forever&lt;/strong&gt;. Let it die die &lt;strong&gt;die&lt;/strong&gt;!&lt;/p&gt;&#xA;" OwnerUserId="7646" LastActivityDate="2010-11-21T03:39:07.080" CommunityOwnedDate="2010-11-21T03:39:07.080" CommentCount="7" />
  <row Id="20329" PostTypeId="2" ParentId="20275" CreationDate="2010-11-21T03:59:19.107" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;As a target, the .NET/mono universe &lt;em&gt;moves very fast&lt;/em&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every few years, Microsoft comes out with some compelling changes and innovations regarding the language, runtime, and infrastructure surrounding .NET. For example: Generics, LINQ, DLR, Entity Framework -- with every new revision of Visual Studio, there's generally a pretty significant increase in the feature set and usefulness of the framework it targets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While the constant improvement in the framework is welcome, it's also problematic if you want compatibility across multiple platforms. Long-term-support platforms like RHEL move glacially slow with regards to adopting new technology, and at any given point, there's going to be significant improvements in the Mono platform that have happened just within the last few months. So if you want to run the stuff that the cool kids are building, you're going to have to compile Mono from scratch and manage your own patches and updates. That's not cool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Java, on the other hand, is as stagnant as a kiddie pool.&lt;/strong&gt; Especially now that it's own by a company that just wanted Java for the patent lawsuits, you can be fairly certain that there will be no detectable changes in the language or runtime in the foreseeable future. Java is as stable a platform as FORTRAN. That's not so good if you were hoping for any sort of improvements, but not so bad if you're trying to deploy an enterprise application.&lt;/p&gt;&#xA;" OwnerUserId="8068" LastActivityDate="2010-11-21T03:59:19.107" CommentCount="3" />
  <row Id="20330" PostTypeId="1" CreationDate="2010-11-21T04:37:12.587" Score="1" ViewCount="154" Body="&lt;p&gt;Hi all,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;what is a best C/C++-oriented tool to count code lines without the comments, includes and other fat stuff?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;currently using &lt;a href=&quot;http://sloccount.sf.net&quot; rel=&quot;nofollow&quot;&gt;sloccount&lt;/a&gt;. IDE-based plugins are welcome for description too.&lt;/p&gt;&#xA;" OwnerUserId="4533" LastActivityDate="2010-11-21T16:51:43.687" Title="Collecting metrics of C++ code." Tags="&lt;productivity&gt;" AnswerCount="3" CommentCount="7" />
  <row Id="20335" PostTypeId="1" AcceptedAnswerId="20336" CreationDate="2010-11-21T06:08:24.187" Score="5" ViewCount="242" Body="&lt;p&gt;I've worked on three successful projects (freelanced) throughout my highschool career; however, they primarily involve web technologies. I know that I'm proficient in setting up LAMP stacks, working with PHP, databases, and designing with strict markup, version control, usability testing, and all that fun stuff but since I began programming, I've seen an evident gap between the complexity from hash maps to binary search trees (Java is the ultimate PL for learning no matter its condition in the industry).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although I'm attempting to pursue some multifarious career in software design, is it really necessary to push for a University education (Berkley or Stanford ideally in CS) before I fully commit myself to programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are three successful projects regarding web design, web development, and video streaming (and all concomitant technologies) enough to be regarded as &quot;experienced&quot;? Could that experience get me hired?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately, when is there enough experience such that University degrees become irrelevant?&lt;/p&gt;&#xA;" OwnerUserId="8020" LastActivityDate="2010-11-22T04:30:40.863" Title="When do you have enough experience?" Tags="&lt;experience&gt;&lt;education&gt;&lt;university&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="20336" PostTypeId="2" ParentId="20335" CreationDate="2010-11-21T06:16:34.247" Score="7" ViewCount="" Body="&lt;p&gt;No, you don't need a university education, but it can really help.  Employers see the degree as saying two things about you: you can finish something, and you know how to think.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is not any amount of experience that renders the degree irrelevant, because there will always be a substantial percentage of employers that will require the degree before they will consider you for a job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, that doesn't mean that you won't find work without the degree, it just means that the pool of employers that will hire you will be smaller and, all other things being equal, you will always make less money without the degree.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-22T04:30:40.863" LastActivityDate="2010-11-22T04:30:40.863" CommentCount="3" />
  <row Id="20337" PostTypeId="2" ParentId="9466" CreationDate="2010-11-21T06:37:43.467" Score="0" ViewCount="" Body="&lt;p&gt;CloudBerry Explorer freeware &lt;a href=&quot;http://s3.cloudberrylab.com/&quot; rel=&quot;nofollow&quot;&gt;http://s3.cloudberrylab.com/&lt;/a&gt; fully functional Amazan S3 and CloudFront desktop client.   &lt;/p&gt;&#xA;" LastActivityDate="2010-11-21T06:37:43.467" />
  <row Id="20338" PostTypeId="2" ParentId="20335" CreationDate="2010-11-21T06:49:16.560" Score="1" ViewCount="" Body="&lt;p&gt;Judging by &lt;a href=&quot;http://programmers.stackexchange.com/q/20210/3757&quot;&gt;your questions&lt;/a&gt; you are already on the right track- awareness is key.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/20335/when-do-you-have-enough-experience/20336#20336&quot;&gt;Rovery Harvey's answer&lt;/a&gt; hits on some key points so I wont reiterate those, but I will add something about my experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I too had a decent amount of web technology/software development experience by the time I was wrapping up high school, but after going through the university system it was clear that what you gain there is different than the kind of knowledge that you accrue from project experience. If you are seriously interested in software development you will thank youself for studying computer science in a university. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;By going through the computer science program at my university I was exposed to all of the necessary details to form a mental model of software and design; I was exposed to the necessary elements to form a model that starts at the hardware and grows upward until you reach the high languages that many of us love so. This was just one of the many benefits of going through a program, so even though you may be able to find a software development job without a degree, &lt;em&gt;you may not want to&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3757" LastActivityDate="2010-11-21T06:49:16.560" CommentCount="2" />
  <row Id="20339" PostTypeId="2" ParentId="20335" CreationDate="2010-11-21T07:43:29.693" Score="2" ViewCount="" Body="&lt;p&gt;I've seen and worked with a number of very successful s/w developers who have no university education.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They have all been good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HOWEVER they all have one weakness: they have a lesser knowledge base than those who are more educated. When it comes to solving weird knotty problems, more knowledge is better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have the time, aptitude, ability, and money, get a university education. Make it as broad and rounded as you possibly can (don't stick too closely to a narrow disciple). Specialising too early is not good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More knowledge = more ability to solve the hard stuff = more valuable = more employable.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-11-21T07:43:29.693" CommentCount="1" />
  <row Id="20341" PostTypeId="2" ParentId="20335" CreationDate="2010-11-21T08:53:04.373" Score="2" ViewCount="" Body="&lt;p&gt;To follow on from what instanceOfTom said, which I would agree with, until you have a formal education in software engineering from a top-flight university, you do not appreciate what you did not fully understand before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I went to Imperial, London (which if you've not heard of it, is rather like the UK/European version of MIT (see general &lt;a href=&quot;http://www.timeshighereducation.co.uk/world-university-rankings/2010-2011/top-200.html&quot; rel=&quot;nofollow&quot;&gt;rankings&lt;/a&gt;, though it is top for Computing in particular over the other european institutions)).  As I started coding when I was 7, the knowledge I went in with was substantial, indeed I knew the majority of the first and second year syllabus in advance which made things much easier.  However, I did not know them half as well as I thought I did and as someone with a strong background, I was able to absorb the true depth of the material, rather than coming fresh to the concepts put forward.  This is a key point of mine, a really good professional education benefits an already competent engineer to a &lt;em&gt;greater&lt;/em&gt; level than someone who is less experienced and might 'need' to do the course more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be aware you will need very strong mathematical skills.  As someone who is responsible for recruiting decent software engineers, I am never endingly shocked by the poor mathematical skills of some programmers, particularly the self taught.  The degrees will have many mathematical courses on offer, there is a good reason for this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The web-end of programming can be very simplistic, it is not by any means always so, but quite often is.  There is a huge difference between being able to produce good mark up and being able to write a compiler or the lower levels of an OS for instance.  It is one thing to be able to put a JPEG in the right place on a page, it is another to understand and be able to replicate the compression algorithms that create them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The quality of the university makes a huge difference to the content of a &quot;software engineering&quot; degree.  At the lower end, it will be making web pages, being taught Java, C#, how to use Excel properly.  The top-flight universities will not teach you languages, well not for more than a few minutes.  They teach you the fundamentals of the different tools of the trade, exposing you to the types of language you will encounter and when to use them, more importantly the concepts of algorithms, how to form them, apply them to logically breaking down the issues at hand.  In short, they train you to be a scientist and an engineer; not an advanced computer operator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether you yourself need to attend university to further your knowledge is a matter for you to decide.  It should be made on your knowledge of your own capabilities, your interest in the subject matter (which is not going to be primarily web technologies at a good university) and the career needs of such a large temporal and fiscal investment.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-11-21T08:53:04.373" CommentCount="2" />
  <row Id="20342" PostTypeId="1" AcceptedAnswerId="20346" CreationDate="2010-11-21T09:08:50.933" Score="1" ViewCount="187" Body="&lt;p&gt;Although questions similar to this one has already been asked and I can perhaps assemble the answer for myself by reading  already posted materials. Still I am going ahead with the question, cause I feel it has elements of new flavor and I would like to see the views of others on how to tackle this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have developed several Web Applications of various scale. In some of them, I was only Developer, in another I led small teams and was part of a big team in another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of these were developed using PHP. One of them used Kohana Framework, the rest were all developed using Raw PHP. The main difficulty that I faced in regards to speedy development was, whenever a small change was  done to fix a bug or modify a feature, I had to refresh my web browser, go through several pages until I reached the page which included the fix.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to know, what should be the development approach so that I can test out my code without having to, or at least minimize the number of refreshes required to test out changes in code. Although, the concepts maybe applicable for developments of any nature,  for this question, let us stick to PHP and it's framework.&lt;/p&gt;&#xA;" OwnerUserId="1560" LastActivityDate="2010-11-21T10:37:19.497" Title="Minimal Refresh(F5) Web App Development" Tags="&lt;web-development&gt;&lt;php&gt;&lt;frameworks&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="20344" PostTypeId="1" AcceptedAnswerId="20361" CreationDate="2010-11-21T09:28:22.857" Score="5" ViewCount="123" Body="&lt;p&gt;Customers need some education because they think different. Customers think: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;changes are not a problem in any time of the project&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;details are not important (exceptions even less)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;time does not cost money (they have a fix price agreed)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;one sentence in the specification can be extended/read freely to fit the actual needs - and this does not affect the contract. (here we see often the &quot;common sense&quot; discussion - example: &quot;Of course we need a invoice management screen when we talk about accounting managment - this is common sense!&quot;)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;the list goes on...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The main problem is that customer (no matter if external or internal/department) do not want or can not understand. It took me many years to understand software creation process and I am still learning, so how can they in just a few months.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is your experience, what is the best approach to educate customers?&lt;/p&gt;&#xA;" OwnerUserId="7876" LastActivityDate="2010-11-22T08:27:43.573" Title="How do you educate your customers?" Tags="&lt;customer-relations&gt;" AnswerCount="4" />
  <row Id="20345" PostTypeId="2" ParentId="20344" CreationDate="2010-11-21T09:53:32.083" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Educate the customer&lt;/strong&gt;. I wish I'm not one of your customer ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, I understand your are in trouble, and you think the problem is the customer. Maybe it is, but it doesn't matter. Changing your customers is really hard, while changing the way your work with them is lot more easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is that most customers are not aware of all implications of software development and you are not aware of their business in details.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just one little thing:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;changes are not a problem in any time of the project&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&quot;No matter how far you have gone on a wrong road, turn back.&quot;&lt;/strong&gt; Turkish Proverb&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love that proverb, so when I can use it, I'm happy. Thanks for the opportunity ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are a couple of solutions:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You must provide the customer with the possibility to change his mind, because this will help him getting the right software that really fits its needs. He will eventually get more ideas while you are developing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your are in a fixed price contract, so I guess you had to gather requirements, estimate them and put a price on each?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have to build a new thing, use the same process: you amend the fixed price contract with the extra requirements. Accept to remove requirements that will be useless (of you have not built them already of course).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another approach would be to finish what has been negociated (less useless and not developed requirements) as version 1, and negociate a version 2 with its new ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second solution would be to create iteration in the development like in &lt;strong&gt;Scrum&lt;/strong&gt;. I've no experience with this yet in fixed price project (because I don't do fixed projects anymore), so I don't know if it works or not. I seriously have lot of doubts &lt;strong&gt;Scrum&lt;/strong&gt; (or &lt;strong&gt;Agile&lt;/strong&gt;) is the solution to all software development projects, but maybe some of the practices &lt;a href=&quot;http://agilediary.wordpress.com/2009/01/16/scrum-and-agile-in-a-fixed-price-project-environment/&quot; rel=&quot;nofollow&quot;&gt;described&lt;/a&gt; will help you.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-21T09:53:32.083" CommentCount="4" />
  <row Id="20346" PostTypeId="2" ParentId="20342" CreationDate="2010-11-21T10:05:37.437" Score="3" ViewCount="" Body="&lt;p&gt;You're going to have to refresh the page: PHP works on page generation. But you can automate the refreshes using a variety of different methods. Check out this article for four different ways:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blancer.com/tutorials/69063/quick-tip-4-ways-to-auto-refresh-your-browser-when-designing-new-sites/&quot; rel=&quot;nofollow&quot;&gt;Quick Tip: 4 Ways to Auto-Refresh your Browser when Designing new Sites&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll also want to get into &lt;a href=&quot;http://en.wikipedia.org/wiki/Test-driven_development&quot; rel=&quot;nofollow&quot;&gt;test-driven development&lt;/a&gt;. It'll automate the process of testing the same things over and over. For PHP, there's &lt;a href=&quot;http://www.simpletest.org/&quot; rel=&quot;nofollow&quot;&gt;SimpleTest&lt;/a&gt; among other frameworks for TDD.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-11-21T10:05:37.437" CommentCount="2" />
  <row Id="20347" PostTypeId="2" ParentId="20275" CreationDate="2010-11-21T10:15:26.987" Score="2" ViewCount="" Body="&lt;p&gt;Putting all technicalities aside, a very important part takes place when actually writing the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As with any cross-platform technology (be it Java, Python, Ruby...), if the code is not written with portability in mind, you should assume there's basically zero chance the code  will run properly (even if such a chance is in reality much, much higher), as the odd misbehavior could be quite critical. Read: don't take the random assembly and run it under Mono.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yet for a new project (or one you can refactor easily), choosing .Net/Mono as a potentially portable runtime makes sense, but you save yourself a lot of hassles by testing your code on Mono very early on, even if the project has only a slight change of going multiplatform. If you use a continuous integration server, this can be as simple as setting up a Mono build node. Many issues can be solved while developping, just by making a habit out of it (like building path strings) and a huge chunk of your code can be portable and unit-tested on Mono just by using sane practices and a little bit of forethought. The remainder (i.e failing unit tests) is then platform-specific (like code using PInvoke) but should be encapsulated enough so as to be able to provide an alternative implementation per targeted platform. This way when the project eventually comes to being ported a good part of the work has been done at almost no cost and the remainder is to be developped Just In Time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, using a library not available (.Net) or compatible (third party) in Mono precludes any of this, but &lt;em&gt;in my field&lt;/em&gt; this has yet to be seen. That is the strategy we actually use at work, and when applying it I have no fear of claiming that .Net+Mono is cross platform.&lt;/p&gt;&#xA;" OwnerUserId="8079" LastActivityDate="2010-11-21T10:15:26.987" />
  <row Id="20348" PostTypeId="2" ParentId="6956" CreationDate="2010-11-21T10:28:20.140" Score="2" ViewCount="" Body="&lt;p&gt;I picked up CakePHP on my own in the past few months.  While I haven't used the others, I do not speak for them.  I like CakePHP for the following reasons&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Very good documentation&lt;/li&gt;&#xA;&lt;li&gt;Friendly community in #cakephp on irc.freenode.net&lt;/li&gt;&#xA;&lt;li&gt;Projects can be executed fast with the use of bake scripts&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some of the disadvantages&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You are forced to use command-line for cake scripts&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'd +1 CakePHP for the ease with which you can have an app built over time.&lt;/p&gt;&#xA;" OwnerUserId="6815" LastActivityDate="2010-11-21T10:28:20.140" />
  <row Id="20349" PostTypeId="2" ParentId="20342" CreationDate="2010-11-21T10:37:19.497" Score="2" ViewCount="" Body="&lt;p&gt;I would +1 using Test-driven development.  This way you would only have to run your tests again (which is still refresh), but less click through to a particular function or a particular case because your test-case would run.  Another thing to look into would be automated testing with something like Selinium or &lt;a href=&quot;http://www.getwindmill.com/&quot; rel=&quot;nofollow&quot;&gt;Windmill&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6815" LastActivityDate="2010-11-21T10:37:19.497" CommentCount="1" />
  <row Id="20350" PostTypeId="2" ParentId="19720" CreationDate="2010-11-21T10:37:40.120" Score="1" ViewCount="" Body="&lt;p&gt;answer: In 2005, there were about 680,000&#xA;enterprises in the EU27 whose main activity was&#xA;in ICT manufacturing and service industries, with&#xA;5.9 million people employed...&#xA;&lt;a href=&quot;http://ftp.jrc.es/EURdoc/JRC49951.pdf&quot; rel=&quot;nofollow&quot;&gt;http://ftp.jrc.es/EURdoc/JRC49951.pdf&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7876" LastActivityDate="2010-11-21T10:37:40.120" />
  <row Id="20352" PostTypeId="1" CreationDate="2010-11-21T13:26:19.937" Score="2" ViewCount="345" Body="&lt;p&gt;&lt;strong&gt;A little background:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bachelor In Engineering, Master Degree in Comp Sci. Landed junior dev straight out of Uni.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2 years later, left for Senior Dev. Now planning next step...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Platform: &lt;em&gt;.NET, VB,C# (upto 4.0, LINQ, PLINQ) ,F#,Winform,ASP.NET+(usual web tech,js,xslt, dxhtml,etc),WPF, db -&gt;MS T-SQL&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Question:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the next steps I should be thinking about if my goal is to become a .NET Architect?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What things do I need to gain experience in, both soft skills + technical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the fastest route there?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any advice in general related to becoming a Architect?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advanced.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-11-21T19:22:43.030" Title="The Next Step, from Senior Developer to Architect" Tags="&lt;career&gt;" AnswerCount="3" CommentCount="6" FavoriteCount="1" />
  <row Id="20354" PostTypeId="2" ParentId="501" CreationDate="2010-11-21T13:32:30.550" Score="1" ViewCount="" Body="&lt;p&gt;Verbosity in Java anonymous classes. Will hopefully be fixed soon.&lt;/p&gt;&#xA;" OwnerUserId="8082" LastActivityDate="2010-11-21T13:32:30.550" CommunityOwnedDate="2010-11-21T13:32:30.550" CommentCount="1" />
  <row Id="20355" PostTypeId="2" ParentId="20352" CreationDate="2010-11-21T13:34:46.963" Score="2" ViewCount="" Body="&lt;p&gt;In short, the difference between a senior software engineer and an architect is that your colleagues look to you for advice and direction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Help your fellow programmers, give advice, earn their respect and then, when you have a track record, just ask your boss if you can change your job title to reflect the role you are currently doing.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-21T13:34:46.963" />
  <row Id="20356" PostTypeId="2" ParentId="20178" CreationDate="2010-11-21T13:38:45.540" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Simple&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;(1) Lock them inside a room + Free Oxygen.&lt;/li&gt;&#xA;&lt;li&gt;(2) Give them a PC with Internet connection + IDE of choice + access to Food.&lt;/li&gt;&#xA;&lt;li&gt;(3) Have wireshark or similar method of logging all inbound and outbound traffic.&lt;/li&gt;&#xA;&lt;li&gt;(4) Give him a medium assignment.&lt;/li&gt;&#xA;&lt;li&gt;(5) Examine all HTTP traffic, post assignment completion.&lt;/li&gt;&#xA;&lt;li&gt;(6) If subject has copied large chunks of source code, &lt;strong&gt;terminate&lt;/strong&gt; Subject.....&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As makerofthings7 as pointed out, in practical terms one could do a video capture (screen capture). &lt;/p&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-11-28T20:05:23.557" LastActivityDate="2010-11-28T20:05:23.557" CommentCount="4" />
  <row Id="20357" PostTypeId="1" AcceptedAnswerId="20358" CreationDate="2010-11-21T13:40:22.303" Score="2" ViewCount="228" Body="&lt;p&gt;The situation is like this I have 6+ yrs exp in programming and lately I am wondering what does it take to get to the next stage of my career. Now the particulars&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My main experience is with C++ and specifically application programming. I have worked on QT for 3+ years. I have also worked on COM and MFC but those are mostly obsolete technology now with no new development. It is only recently that I have gained some working knowledge (as opposed to just general reading) of databases, IPC and Multi-threading. I like programming but realize that to continue on software development ultimately leadership/managerial skills are essentials.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As such I realize to become a better programmer one must read everything from algorithm to hardware to language and technologies, and that is my inclination, but right now my priority is to acquire knowledge/skill that will help in my near term goal.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-11-21T15:30:49.433" Title="The road ahead (A career advice)" Tags="&lt;career-advice&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="20358" PostTypeId="2" ParentId="20357" CreationDate="2010-11-21T13:46:06.940" Score="8" ViewCount="" Body="&lt;p&gt;You don't need to ascend to a leader.  You can ascend to be a mentor for other programmers, and keep programming in the process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest that you consider what knowledge it takes to create a complete solution from scratch in whatever you have been doing the last 6 years, and where you lack that knowledge.  Then &lt;em&gt;learn&lt;/em&gt; the missing pieces and learn them well.   You don't know databases?  Well, SQL Wizzardry is an art and you can learn it.  You don't know multi-threading?  Then look into a language that provides it (so you don't get lost in technical problems) like C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, get self-sustained in what you know already.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-21T13:46:06.940" CommentCount="3" />
  <row Id="20359" PostTypeId="2" ParentId="20178" CreationDate="2010-11-21T13:50:46.560" Score="1" ViewCount="" Body="&lt;p&gt;You cannot do this at the resume level as they essentially have infinite time to write that up, but you can do it on a phone interview if you ask a few questions which require technical insight in what they do.  This gives you both the answer (good or bad) and how long time it took them to get there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When at an interview, make them write code.  It is the only way you can tell if they can program for real.  Make the problem simple, give them a computer with an internet connection, and the IDE you use installed, let them ask any question (except gimme-hte-codez) and watch how they work. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;EDIT:  For post-mortem analysis it appears that PMD has a copy/paste detector to find it: &lt;a href=&quot;http://pmd.sourceforge.net/cpd.html&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/cpd.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-11-28T22:16:34.130" LastActivityDate="2010-11-28T22:16:34.130" CommentCount="7" />
  <row Id="20361" PostTypeId="2" ParentId="20344" CreationDate="2010-11-21T14:07:28.420" Score="3" ViewCount="" Body="&lt;p&gt;This last summer, I have had a very similar conversation with a customer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The customer wanted me to provide a competitive price for the defined work, and then when their needs change, or their understanding of their needs change, they wanted to change the spec without allowing me to change the cost to reflect the change in work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I asked my customer if they had any suggestions for how I could cost for unknown changes as part of the quote.  The solution we worked out was for me to quote including an itemised contingency allowance of 15%, which we would then work with the customer to prioritise their changes to utilise that allowance. In the end the contingency was not completely used I only invoiced for the work done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The end result was that I was happy I'd been paid for the work done, the customer delivered internally under budget, and because I'd raised the issue in a professional way with them up front they chose me over a competitor to actually do the work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just wish all the potential customers out there are this professional and actually value quality workmanship.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-21T14:07:28.420" CommentCount="2" />
  <row Id="20362" PostTypeId="2" ParentId="20352" CreationDate="2010-11-21T14:17:23.730" Score="5" ViewCount="" Body="&lt;p&gt;The single most important question that an architect needs to be able to answer is, &quot;What alternatives did you consider, and why did you choose to do it this way?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most senior developers cannot answer this question with more than &quot;well, that's the way I've done it before and it worked.&quot;  When you can respond to that question with a well-thought-out, well-reasoned answer, discussing pros and cons for each approach, for virtually every aspect of the system, then you are (most likely) ready to be an architect.&lt;/p&gt;&#xA;" OwnerUserId="7999" LastActivityDate="2010-11-21T14:17:23.730" CommentCount="2" />
  <row Id="20363" PostTypeId="1" AcceptedAnswerId="20365" CreationDate="2010-11-21T14:18:00.027" Score="26" ViewCount="920" Body="&lt;p&gt;&lt;em&gt;Please put a direct link to it.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Required&lt;/strong&gt;: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Still available online (please put a direct link to it)&lt;/li&gt;&#xA;&lt;li&gt;Must be a speech from a current or former developer&lt;/li&gt;&#xA;&lt;li&gt;Speaker's popularity doesn't matter&lt;/li&gt;&#xA;&lt;li&gt;Target audience should be other developers&lt;/li&gt;&#xA;&lt;li&gt;It is not required that the topic is programming (the task). I'm more looking for subject generally developing here within P.SE rather than SO.&lt;/li&gt;&#xA;&lt;li&gt;Explain why it was inspiring&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(please, native english speaker, edit my question)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2010-11-21T18:55:44.797" LastActivityDate="2010-11-25T22:58:45.653" CommunityOwnedDate="2010-11-21T17:02:57.777" Title="What is the most inspiring speech from a developer you ever watched?" Tags="&lt;profession&gt;&lt;resources&gt;" AnswerCount="14" CommentCount="5" FavoriteCount="40" />
  <row Id="20364" PostTypeId="2" ParentId="20363" CreationDate="2010-11-21T14:23:48.577" Score="2" ViewCount="" Body="&lt;p&gt;The Principles of Agile Design: &#xA;&lt;a href=&quot;http://www.infoq.com/presentations/principles-agile-oo-design&quot; rel=&quot;nofollow&quot;&gt;http://www.infoq.com/presentations/principles-agile-oo-design&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pretty much hits the nail on the head as to why your code becomes unmanegable as time goes by, and what can be done about it.&lt;/p&gt;&#xA;" OwnerUserId="8088" LastActivityDate="2010-11-21T14:23:48.577" CommunityOwnedDate="2010-11-21T17:02:57.777" />
  <row Id="20365" PostTypeId="2" ParentId="20363" CreationDate="2010-11-21T14:31:16.917" Score="11" ViewCount="" Body="&lt;p&gt;Alan Kay's OOPSLA 1997 speech: &lt;strong&gt;&lt;a href=&quot;http://video.google.com/videoplay?docid=-2950949730059754521#&quot; rel=&quot;nofollow&quot;&gt;The Computer Revolution hasn't happened yet&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-11-21T15:59:10.193" LastActivityDate="2010-11-21T15:59:10.193" CommunityOwnedDate="2010-11-21T17:02:57.777" CommentCount="4" />
  <row Id="20366" PostTypeId="2" ParentId="20363" CreationDate="2010-11-21T14:35:24.217" Score="1" ViewCount="" Body="&lt;p&gt;Rich Hickey's Clojure presentation at the JVM Languages Summit 2008 led me to try it out: &lt;a href=&quot;http://www.infoq.com/presentations/hickey-clojure&quot; rel=&quot;nofollow&quot;&gt;http://www.infoq.com/presentations/hickey-clojure&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-11-21T14:35:24.217" CommunityOwnedDate="2010-11-21T17:02:57.777" />
  <row Id="20367" PostTypeId="2" ParentId="20363" CreationDate="2010-11-21T14:57:26.893" Score="6" ViewCount="" Body="&lt;p&gt;I like Balmer's speech Developer developer developers... and on and on.. &#xA;Simply because it is entusiastic. How many people we know who love thier jobs so passionaltely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=t6ZarKIKpSA&amp;amp;feature=related&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=t6ZarKIKpSA&amp;amp;feature=related&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-21T14:57:26.893" CommunityOwnedDate="2010-11-21T17:02:57.777" CommentCount="2" />
  <row Id="20368" PostTypeId="2" ParentId="20357" CreationDate="2010-11-21T15:04:54.517" Score="0" ViewCount="" Body="&lt;p&gt;You dont mention what is it that you want to achieve in your career ? You do mention that you like programming so I assume you want to assume a Next level Programming job. If that is what you want to pursue that you do need to expand your technical breadth also you will have to demonstrate some leadership in getting the tasks and leading technical discussions. A C# or C++ or Java Programmer is just not good enough, learn the domain, learn different architectures as will.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Management is a different ball game you need to be able to be technically good + you need some smart skills as well. Also there is no room for a reluctant Manager he will fail miserably and screw up some lives and the Project too.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-21T15:04:54.517" />
  <row Id="20369" PostTypeId="1" AcceptedAnswerId="20386" CreationDate="2010-11-21T15:11:26.840" Score="25" ViewCount="5939" Body="&lt;p&gt;I'm planning on moving to NY in 6-12 months tops, so I'm forced to find a new job. When I'm planing to start my life in another city it's also probably a good time to think about career changes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found a lot of different opinions about PHP vs .Net vs Java and this is not topic here. I don't want to start a new fight about which language is better. Knowing programming language is not the most important thing for being a software developer. To be a really good developer you need to know OOP, design patterns, testing... and language is just a tool to make things happen. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So back to my question. I have mixed experience in IT - 1 year as an IT support guy (Windows administration and support), around 2 years of experience in embedded programming (VB.Net 2005) and for the last 2 years I'm working with PHP/MySQL. I have worked with Magento web shop, assisted in some projects in Symfony, modified few Drupal sites.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My main concerns are following:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Do I continue to improve my skills in PHP e.g. to start learning some major PHP framework like Zend, Symfony maybe get some PHP certification.&lt;/li&gt;&#xA;&lt;li&gt;Or do I start learning .NET or Java. I'm more familiar to .NET so I'll probably choose it if choice falls between .NET and Java ( or you could convince me to choose Java :).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Career-wise, I don't know what is the best choice. Learning new framework and language is more time consuming then improving my existing skills in PHP. But with .NET you have a lot of possibilities (Windows 7 Phone development, Silverlight, WPF) and possibly bigger chances to find better jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP jobs are less payed then .NET, at least, according to my researches (correct me if I'm wrong). But if I start now with .NET I'm just a beginner and my salary will be low. I need at least 2+ years of experience in some language to even try to find some job that is paying higher than $50-60k in NY. My main goal in next 2-3 years is to try to find a job in a $60-80k category. Don't get me wrong, I'm not just chasing money, but money is an important factor when you're trying to start a family.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm 27 years old and I feel that there isn't a lot of room for wrong decisions regarding my career, so any advice will be very welcome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you all for spending time to help me with my problem. All of the answers and comments have been very helpful. I have decided to stick with PHP but also to learn C# and Silverlight 4. We'll see where the life will take me.&lt;/p&gt;&#xA;" OwnerUserId="8093" LastEditorUserId="8093" LastEditorDisplayName="" LastEditDate="2011-02-04T18:38:30.647" LastActivityDate="2011-02-04T18:38:30.647" Title="Career advice: stay with PHP or start a new career in something else ( .Net?)" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;php&gt;&lt;.net&gt;&lt;job-market&gt;" AnswerCount="12" CommentCount="1" FavoriteCount="17" />
  <row Id="20370" PostTypeId="2" ParentId="20363" CreationDate="2010-11-21T15:14:20.830" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Doug Engelbart: The Demo&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Douglas_Engelbart&quot; rel=&quot;nofollow&quot;&gt;Doug Engelbart&lt;/a&gt; giving the &quot;mother of all Demos&quot; 1968&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://video.google.com/videoplay?docid=-8734787622017763097&quot; rel=&quot;nofollow&quot;&gt;http://video.google.com/videoplay?docid=-8734787622017763097&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's unbelievable what was invented back then!&lt;/p&gt;&#xA;" OwnerUserId="6300" LastActivityDate="2010-11-21T15:14:20.830" CommunityOwnedDate="2010-11-21T17:02:57.777" CommentCount="4" />
  <row Id="20371" PostTypeId="1" AcceptedAnswerId="20400" CreationDate="2010-11-21T15:15:58.330" Score="4" ViewCount="245" Body="&lt;p&gt;What is your experience when developing web applications using one of these two languages/frameworks? Which have you found to be more convenient and faster to develop with?&lt;/p&gt;&#xA;" OwnerUserId="6610" LastActivityDate="2011-03-21T23:04:45.773" Title="Developing With Ruby/Rails Easier, Faster Than Developing With PHP/CakePHP?" Tags="&lt;programming-languages&gt;&lt;web-development&gt;&lt;web-framework&gt;&lt;efficiency&gt;" AnswerCount="2" />
  <row Id="20372" PostTypeId="2" ParentId="20330" CreationDate="2010-11-21T15:16:14.037" Score="0" ViewCount="" Body="&lt;p&gt;I like &lt;a href=&quot;http://www.locmetrics.com/&quot; rel=&quot;nofollow&quot;&gt;Locmetrics&lt;/a&gt; - but I haven't done extensive comparisons to anything else.&lt;/p&gt;&#xA;" OwnerUserId="4677" LastActivityDate="2010-11-21T15:16:14.037" />
  <row Id="20373" PostTypeId="2" ParentId="20369" CreationDate="2010-11-21T15:17:14.963" Score="87" ViewCount="" Body="&lt;p&gt;What on earth does the choice of programming language have anything to do with your career?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This question is like asking, &quot;I have two choices for a place to work. Should I work at the one where the boss has a norwegian accent, or the one where the boss has a spanish accent?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are &lt;em&gt;much&lt;/em&gt; more important career considerations.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Startup or established company?&lt;/li&gt;&#xA;&lt;li&gt;Product company or company where IT is a support function?&lt;/li&gt;&#xA;&lt;li&gt;Will you be learning new things or rehashing the old?&lt;/li&gt;&#xA;&lt;li&gt;9 to 5 or &quot;work any 80 hours you want?&quot;&lt;/li&gt;&#xA;&lt;li&gt;Nice co-workers or mean co-workers?&lt;/li&gt;&#xA;&lt;li&gt;Smart co-workers or stupid co-workers?&lt;/li&gt;&#xA;&lt;li&gt;Suit and tie or t-shirt?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;This list could go on for hours. The choice of a programming language is just about as relevant to a programmer's career as the choice of whether to comb your hair to the left or to the right. It's all software development no matter what programming language dialect you happen to be speaking.&lt;/p&gt;&#xA;" OwnerUserId="30" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-11-21T19:08:21.060" LastActivityDate="2010-11-21T19:08:21.060" CommentCount="29" />
  <row Id="20374" PostTypeId="2" ParentId="20369" CreationDate="2010-11-21T15:24:09.867" Score="5" ViewCount="" Body="&lt;p&gt;I would suggest looking for a PHP job because that is what you do best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also suggest you start educating yourself in the new technologies you want to learn so you can eventually start looking for jobs using those, but don't do it on a deadline so short because you will find that these things are huge and employers expect you to know enough of these behemoths to be productive.  That requires &lt;em&gt;time&lt;/em&gt; and &lt;em&gt;practice&lt;/em&gt;.  Do not underestimate the amount of time and amount of practice you will have to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To give you an estimate of what &quot;I can program in Java&quot; potential employee should be capable of, you can have a look at the &lt;a href=&quot;http://download.oracle.com/javase/tutorial/&quot; rel=&quot;nofollow&quot;&gt;Sun Java Tutorial&lt;/a&gt;.  &lt;em&gt;I&lt;/em&gt; would expect you to be familiar with at least half the concepts listed, where familiar means being able to use it in a program written by you, and use it &lt;em&gt;correctly&lt;/em&gt;.  I would expect it to take longer than 6 months spare time studying to reach that level.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-21T15:24:09.867" CommentCount="12" />
  <row Id="20375" PostTypeId="2" ParentId="20357" CreationDate="2010-11-21T15:30:49.433" Score="2" ViewCount="" Body="&lt;p&gt;It seems you develop mainly desktop apps with C++. I think it is a good foundation for a more high level, easier to use language like C#?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think tho that Web Applications seem like the way to go with Smart Phones, Netbooks, work on the go etc. So maybe something like ASP.NET, Azure if you want .NET. Or maybe PHP is great too. Also for web applications, I guess HTML5/CSS3/JS is a must or at least recommended&lt;/p&gt;&#xA;" OwnerUserId="526" LastActivityDate="2010-11-21T15:30:49.433" />
  <row Id="20376" PostTypeId="2" ParentId="19987" CreationDate="2010-11-21T15:33:04.570" Score="0" ViewCount="" Body="&lt;p&gt;No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To stay on the edge in the constantly moving IT world you constantly have to learn new technologies. If you only focus on the .NET platform this will limit you. &lt;/p&gt;&#xA;" LastActivityDate="2010-11-21T15:33:04.570" />
  <row Id="20377" PostTypeId="2" ParentId="20344" CreationDate="2010-11-21T15:36:26.370" Score="0" ViewCount="" Body="&lt;p&gt;One solution is to put more work into defining what you are agreeing to do &lt;em&gt;before&lt;/em&gt; you start working. As you said, one sentence in the contract can easily be read differently by you and the customers. The more detailed the project plan is the easier it is for you to say that the extra they want you to do is not part of the original deal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also important to be consistent. The customer doesn't know how much work there is involved for any given new feature. If you agree to add quickly implementable features for free, it's very hard to later explain to the customer why you can't do this other feature for free as well when the customer's common sense says it shouldn't be any more work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One trick with fixed price contracts is that even if you do the job with a fixed price put in an estimate on how many hours the job takes. Even though you don't bill by the hour this takes away the illusion that fixed price equals infinite work hours.&lt;/p&gt;&#xA;" OwnerUserId="7836" LastActivityDate="2010-11-21T15:36:26.370" />
  <row Id="20379" PostTypeId="2" ParentId="20369" CreationDate="2010-11-21T15:43:13.623" Score="18" ViewCount="" Body="&lt;p&gt;Learn as many languages as you can, preferably at least one from each major area of development.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Scripted programming languages (you have PHP already, try Ruby, Python or something else)&lt;/li&gt;&#xA;&lt;li&gt;Compiled to virtual machine languages with rich frameworks: .Net, Mono, Java&lt;/li&gt;&#xA;&lt;li&gt;Compiled to bare-metal: C/C++&lt;/li&gt;&#xA;&lt;li&gt;Functional languages: Lisp, F#, Haskell&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Each one of these will teach you something about the fundamentals of software development. Of course, on top of that you'll need to experience different design approaches (OO, functional, data-driven), different team working methods (agile, tdd, compared to more rigid types), different platforms, different deployment mechanisms (native, framework based, web). The list goes on. Language fluency is just one tiny part of the whole.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For all these things, you need to make at least one real product using them to be proficient. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people will tell you you need to specialise in one technology (PHP, .Net, Java) and build a career largely around that one to make progress. I don't agree with this at all. I'll take a developer who has been around the block a few times with different platforms and &#xA;technologies over one that has spent 10 years doing one thing any day of the week. The reason is that technology changes every year, and the developer who is capable of picking up a new tech, reading the API and applying their experience in more general ways than just knowing the library functions off by heart, will be far more productive in the long term. Ok, so that 10-year .Net veteran will be off the starting blocks in .Net faster, but that early lead is lost in about a month. It's irrelevant compared to the wider picture of being experienced in a range of approaches and technologies.&lt;/p&gt;&#xA;" OwnerUserId="8101" LastActivityDate="2010-11-21T15:43:13.623" CommentCount="6" />
  <row Id="20380" PostTypeId="2" ParentId="20369" CreationDate="2010-11-21T15:45:31.407" Score="1" ViewCount="" Body="&lt;p&gt;I think the primary point is, eventually a software engineer should get to the state where the language is largely immaterial to the task at hand, except in its limitations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether you know a language or not should not make a difference, providing you have a manual, only to speed for the first day or so while you find your bearings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, proprietary languages tend to have less documentation and examples spread around the web, and thus are harder to become accustomed to and pose a problem if you wish to take your work home with you.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-11-21T15:45:31.407" CommentCount="2" />
  <row Id="20381" PostTypeId="2" ParentId="20369" CreationDate="2010-11-21T15:45:34.857" Score="0" ViewCount="" Body="&lt;p&gt;My advice is to find a job doing what you are interested in, and enjoy doing. If you enjoy PHP, why not continue to develop your PHP skills. It is much easier to learn and develop skills doing something that you are interested in. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you ever looked at .NET or Java before? If not, that might suggest that you aren't interested in those languages, but perhaps you could spend a week or so looking at each and see for yourself whether you are interested in either.&lt;/p&gt;&#xA;" OwnerUserId="8116" LastActivityDate="2010-11-21T15:45:34.857" CommentCount="1" />
  <row Id="20382" PostTypeId="2" ParentId="19351" CreationDate="2010-11-21T15:46:16.790" Score="0" ViewCount="" Body="&lt;p&gt;I have about 40 subscriptions in total, of them there is about 10 I read everyday. The rest I read when I have time. &lt;/p&gt;&#xA;" LastActivityDate="2010-11-21T15:46:16.790" />
  <row Id="20383" PostTypeId="2" ParentId="20363" CreationDate="2010-11-21T15:56:18.887" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.infoq.com/presentations/integration-tests-scam&quot; rel=&quot;nofollow&quot;&gt;Integration Tests are a scam&lt;/a&gt; made me realize how unit tests are supposed to be written.&lt;/p&gt;&#xA;" OwnerUserId="5956" LastActivityDate="2010-11-21T15:56:18.887" CommunityOwnedDate="2010-11-21T17:02:57.777" />
  <row Id="20384" PostTypeId="2" ParentId="19351" CreationDate="2010-11-21T15:56:56.860" Score="0" ViewCount="" Body="&lt;p&gt;I think there's a distinction between the blogs I actively check daily, and the blogs I read. I've had a time when I checked on about... 20 blogs daily, until I realized not all of them were relevant. Nowadays I mostly check 4-5 blogs daily, and pick up on the interesting stuff via Twitter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think Twitter actually provides me with a lot of interesting blog posts. It works a lot better than anything else I've tried. 'Professionals' will usually tweet about interesting stuff on the web (blogs, questions here, etc.) which you can then read and, if the blog is good enough, add to your reading list.&lt;/p&gt;&#xA;" OwnerUserId="8117" LastActivityDate="2010-11-21T15:56:56.860" />
  <row Id="20385" PostTypeId="1" AcceptedAnswerId="20405" CreationDate="2010-11-21T16:08:58.093" Score="16" ViewCount="754" Body="&lt;p&gt;I am currently working as an intern at a consulting firm. I am soon to move to a full time employee once I graduate next semester, and I love working there. However, as a student, I lack money and I have met a business owner outside of work who has offered to hire me for some freelance web development. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because I met this individual outside of work, I feel it would not be a conflict of interest to freelance for him. However, the work his is wanting me to do is very similar to what I already do for my current boss. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I speak with my boss before considering the offer? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: I understand that I cannot take IP from work, and I am not in a contract, I'm employed at will.&lt;/p&gt;&#xA;" OwnerUserId="3542" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-21T03:33:43.350" LastActivityDate="2010-12-21T03:33:43.350" Title="Should I ask/tell my boss before freelancing?" Tags="&lt;employment&gt;&lt;ethics&gt;&lt;freelance&gt;" AnswerCount="14" CommentCount="1" FavoriteCount="2" />
  <row Id="20386" PostTypeId="2" ParentId="20369" CreationDate="2010-11-21T16:11:09.277" Score="46" ViewCount="" Body="&lt;p&gt;I'm 51 years old and have used at least 15 languages and/or frameworks since I got my first paying gig after graduation in 1987.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bless you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I never went into management because I didn't want to, but I know how to program and I know how to keep teams motivated and delivering good code. You need to work on people skills and look for interesting work that stretches you. I've never stopped learning or having fun, but there were times when I was on the road I could have done with stopping - but not coding, travelling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as you can make a living and meet your personal commitments without compromising your principles, as long as you enjoy what you do (a luxury my parents' generation didn't have) just keep on keepin' on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;.Net and Java are generally corporate (because they're expensive to do useful things with, but scale really well), PHP is generally startup, I do Ruby (usually startups that came out of design studios for some reason) for lots of people as an independent. If you stick with PHP learn the OO stuff, because I think it will finally start being the way people do things, even though it is a slightly better reimplementation of what you have with Java and they could have made it much more dynamic. People who do Python and want to travel can end up doing all sorts of interesting scientific and gaming stuff all over the world. Perl is still a runner too and has a similar profile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Forget the language, pick and industry you like, pick a company managed by human beings, and go have some fun delivering value to people who appreciate it. You won't regret it.&lt;/p&gt;&#xA;" OwnerUserId="8125" LastActivityDate="2010-11-21T16:11:09.277" CommentCount="1" />
  <row Id="20387" PostTypeId="2" ParentId="20385" CreationDate="2010-11-21T16:12:01.477" Score="11" ViewCount="" Body="&lt;p&gt;Check your contract first, but I would always advice to talk honestly with all your business relations which include your boss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case, get a &lt;strong&gt;written&lt;/strong&gt; approval.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-21T17:10:14.477" LastActivityDate="2010-11-21T17:10:14.477" CommentCount="4" />
  <row Id="20388" PostTypeId="2" ParentId="20369" CreationDate="2010-11-21T16:14:03.657" Score="1" ViewCount="" Body="&lt;p&gt;I have to agree with Joel. But his answer goes beyond technical skills and preferences. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience it's usualy your job requirements that point you towards a specific technology or programming language, not what you would like to use; unless its a startup that has not defined what they are going to use yet. And no one can guarantee that you will find a job/company utilising exactly what you are looking for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the real question is: are you good in learing new stuff? can you address a problem and solve it in a timely manner regardless programming language? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good programmer should be well aware of software construction and software engineering concepts. Your question makes me believe that you haven't invested enough time towards learning those, which probably makes you uncertain of your skills and what your actual potentials are. And honestly, if you haven't done that its about time you do, because without those you will probably not go far.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is another thing that most of us programmers tend not to give any attention to before we get older than 30: Programming skills is only half of the skills that make a good programmer. Are you a good team player? Are you willing to pass knowledge to coworkers as willingly as you are (or should be) receiving knowledge from others? People skills are higlhy underestimated by many of us, while they are actually very important. &lt;/p&gt;&#xA;" OwnerUserId="8114" LastEditorUserId="8114" LastEditorDisplayName="" LastEditDate="2010-11-22T09:44:29.363" LastActivityDate="2010-11-22T09:44:29.363" />
  <row Id="20389" PostTypeId="2" ParentId="20330" CreationDate="2010-11-21T16:14:08.180" Score="0" ViewCount="" Body="&lt;p&gt;Actually, you want to count the comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're part of the source code.  Programmer effort was expended putting them in there, programmer effort is expended maintaining them, programmer effort is expended in reading them and deciding whether they tell the truth about the non-comment lines, and programmer effort will be expended on the day that someone decides that the comments are GETTING IN THE WAY AND MUST BE MASSIVELY DELETED.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-11-21T16:14:08.180" />
  <row Id="20390" PostTypeId="2" ParentId="20385" CreationDate="2010-11-21T16:16:58.120" Score="6" ViewCount="" Body="&lt;p&gt;As well as checking your contract, it is obviously important that you don't take code from the consulting firm that you work at to use on your freelance projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience bosses have liked that the fact that I've been willing to do freelance work - it is practice for your day job after all.&lt;/p&gt;&#xA;" OwnerUserId="8116" LastActivityDate="2010-11-21T16:16:58.120" CommentCount="2" />
  <row Id="20391" PostTypeId="2" ParentId="20385" CreationDate="2010-11-21T16:18:25.510" Score="3" ViewCount="" Body="&lt;p&gt;Not sure what is in your case, but the fate of fact is, &quot;tell your boss and he wont permit you&quot;. Most employers usually have it written somewhere on the contract that would say, &quot;you will not engage into any activity that will have an impact on your commitment for your current job&quot;. Having to work for someone, particularly on large scale may take away some time from your current work. If there is nothing on the contract that says you can't, I would suggest that you put less effort on the external work. Say 2 hours each working day and a bit more during the weekends. That's how I do my outside office work :)  &lt;/p&gt;&#xA;" OwnerUserId="1560" LastActivityDate="2010-11-21T16:18:25.510" />
  <row Id="20392" PostTypeId="2" ParentId="20385" CreationDate="2010-11-21T16:18:49.953" Score="3" ViewCount="" Body="&lt;p&gt;You should always talk to your boss when considering doing freelance work outside of your normal job, unless it's something completely unrelated.&#xA;If you have a proper contract, it'll probably contain some paragraphs about that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aside from the legal things, it's always a good idea to be open and honest towards your employer. By being honest there will be no surprises. What if the company you work for was trying to close a deal with your potential client, and you win the deal? That could get real awkward.&lt;/p&gt;&#xA;" OwnerUserId="8117" LastActivityDate="2010-11-21T16:18:49.953" />
  <row Id="20393" PostTypeId="2" ParentId="18751" CreationDate="2010-11-21T16:22:42.340" Score="4" ViewCount="" Body="&lt;p&gt;Some remarks:&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;WHAT IS NOT RM&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I will start out with explaining some properties of Requirements Management because I all too often am in situations where people think they are doing some kind of Requirements Management using Sharepoint, documents, spreadsheets and are doing all kinds of stuff but basically have no clue what Requirements are and have no clue what Requirements MANAGEMENT is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Requirements Management is not a process area you make up or where you invent yourself how you are going to do it. It is defined. There are pre reqs and there are ISO standards. All in all it should minimal align with the goals and thus requirements as e.g. mentioned in CMMI (http://en.wikipedia.org/wiki/Process_area_(CMMI) and click REQM and RM). If you are not confirming to being able to do bidirectional tracability you are not doing RM but e.g. making &quot;documents where some requirements are somewhere INSIDE&quot;. So you are probably doing designs but you are definitely not doing any requirements management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Requirements Management is not about the content but being able to MANAGE the changes. So e.g. be able to do impact analysis effortlessly due to tracebility throughout the chain etc...&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;WHAT ARE REQUIREMENTS&lt;/h3&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;requirements are &lt;strong&gt;traceability items&lt;/strong&gt;. Thus meaning everything that you can TRACE to something else. If you specify multiple houses that have multiple persons inside them living and you have a lot of them then &quot;abcstreet 5&quot; is a requirement and &quot;person John&quot; is another requirement. Again these are not documents but atomic items with some properties.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;if you collect stamps and you have thousands of them you start by sorting them e.g. by country. With requirements you start by making &lt;strong&gt;requirement types&lt;/strong&gt; and then make relations between the requirement types. This &lt;em&gt;Requirement Type Traceability Model&lt;/em&gt; you can place in your Requirements Management Plan (ISO template).&#xA;There are many ways to model this but one is to split requirements in use cases on the one hand for all functional stuff and architectural decisions on the other hand for all non functional stuff. The use cases go to the software developers and the non functionals to the operational guys who can start making their designs based on it. If there are extra functional and non functional asides use cases you can define an additional type (with the exception of SOA). Example Requirement Types (from top to bottom): business driver, business goal, business use case, use case, architectural decision, business scenario. Again these are not documents.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Requirements have &lt;strong&gt;attributes&lt;/strong&gt; thus e.g. priority or state or even owner. Thus for all these individual requirements you can see the state e.g. &quot;proposed&quot;. Hundreds of attributes are possible here. With this you empower your Requirements approach. You can also think of attributes that hold the list of RFC's and Defects that were related to it...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Requirements have history and can be versioned. So you have control on who changed what when.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The Requirement TYPES traceability leads to &lt;strong&gt;traceability&lt;/strong&gt; on requirements. Some which you specicify as required and others than can be implemented when needed. With this you &lt;strong&gt;enable doing Requirements Management&lt;/strong&gt;: if e.g. one non functional requirement changes (someone changes &quot;within 10ms&quot; to &quot;within 5ms&quot; you know 2 things: a) that someone changed it and thus this better be as a result of an official change b) all related requirements that are impacted (because of the traceability) it makes it a breeze to do impact analysis in this way: you see immediately what potentially changes. For example: that single non functional change leads to 2 use case (steps) changes, 1 screen that changes (also defined as requirement type) and 1 documentation help part that changes. You then ask these persons how long it takes them and you have your impact. But more importantly: it helps you control this process and govern the process of all these little changes. Also for bugs: you can pinpoint which requirements were impacted and thus get a feeling for metrics on which part of the requirement most bugs occur.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Requirements and &lt;strong&gt;Modeling&lt;/strong&gt; are layered: you do business requirements, then the busines model, you do use case requirements, then drag them to your modeling tool, do modeling, then do deeper technical requirements then drag these back to do technical modeling etc... So you NEED to be able to trace individual requirements to model parts to keep being able to have full traceablity.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;some&lt;/strong&gt; requirements have a relation to *&lt;em&gt;requirements document&lt;/em&gt;*s e.g. a use case requirement (consisting of a hierarchy of requirements e.g. use case steps and alternative flow steps) related to a Use Case document. There is probably a lot more in that document but these are the requirements you trace to and want to manage. &#xA;Designs are OPTIONAl. If you set up the correct Requirements Model you can choose to have no designs. You will only have Requirements and listings of requirements. Use Cases will lead to more technical requirements deeper down in the hierarchy e.g. 1 use case req leads to 7 screen req with 5 applets req on it. If you want to put that in a document to distrubute around, fine. This also more helpful for testers: they can link their testcases and do some automated testing instead of &quot;here you have a design base you testcase on it&quot;.&#xA;Other requirements have NO documents associated. Maybe you get a list of non functionals initially as a company standard and decide to enter them as individual requirements and maitain and extend them individually another example are a glossary and terms. You can obviously generate report out of it to list them all in a doc but the other way around &quot;getting them from the doc&quot; means you need to maintain the doc instead of the requirements in the first place. Double work.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h3&gt;Reporting&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;To be able to manage the whole chain you need reports. So your tooling needs to be able to produce a lot of reports out of the box and some kind of handy reporting tool. Furthermore it obviously needs a integreated database behind the requirements/change/etc tooling so that you are able to say e.g. &quot;how many high priority items have not been finished yet&quot; or &quot;what is planned versus actuals&quot; etc...&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Tools&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Your question in broad but in general I read: traceability over the full lifecycle so from business decision to architecture to analysis to design to modeling to build to test to production. 3 people above mentioned Rational / Doors for Requirements Management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you would need at a minimum such a thing for doing the requirements management. You do not ask for a ticketing system though you do need one integrated with all of this since you need to setup the traceability from the tickets, hotfixes, RFCs, defects, questions, etc.. etc.. to your requirements to manage scope and to have overall reporting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since Doors was mentioned 3 times take a look at &lt;a href=&quot;http://jazz.net&quot; rel=&quot;nofollow&quot;&gt;http://jazz.net&lt;/a&gt; : it is a more or less integrated suite for a lot of these things and do some googling on it on the web. You will see Rational Requirements Composer in relation to the future of Doors: &lt;a href=&quot;http://jazz.net/projects/rational-requirements-composer/&quot; rel=&quot;nofollow&quot;&gt;http://jazz.net/projects/rational-requirements-composer/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Rational always had RequisitePro, then they bought Telelogic so now own the #1 and #2 solution in terms of marketshare, the Jazz platform is the new move, could compare it to Microsofts move to .NET : new platform, new technology and according to gartner/forrester the only solution that leads the way). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you go for this I would advise to also include RTC: RTC = version management, change management, build management etc... all-in-one and also plugs in the Jazz layer. (its free for 10 users, no need to install, just click start on the server, start on the client and there you go to test it). (also a lot of reporting in it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for the tooling question: take a good look at Jazz and read up on the articles on there, also check for independent reviews on IT sites on it. RTC is a free download for up to 10 users (and e.g. syncs with svn/git/etc not your question just mention it). &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;SPECIFIC&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&quot;Being able to define requirements and track their changes over time (i.e. how is version 1.5 different than 1.0?)&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You toch 2 different process area here: 1 is requirements management that lets you have traceability over requirements. The other is configuration management where one of the basics is to include requirements in each baseline. By combining both you get your requirement. And yes: that is possible in the above solution. If you just want to look at individual requirement it is ofcourse just right mouse click to walk along the versions. If you want to compare greater sets e.g. domains or even a complete release you use a baseline comparion on the requirements and output that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Probably if you write some custom reporting on it (remember you have a database behind it so you can do basically anything in your wildest dreams) you can even do more like specifying also &quot;only interesting ones because of...&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Being able to collaborate with other project managers and the team when putting together the specifications&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;tools support several layers of that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the first place, since you have indidividual requirements you can open discussions traced to one requirement or a set and maintain the discussions on it instead of having to collect each individual mailbox afterwards to learn about he non trivial decision.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For project managers I dont think you want to micro manage each individual requirement change. I think the reports from the Collaborative Application Lifecycle Management tool should provide you with the issues to focus on e.g. the top 5 requirement parts scheduled next and which are way behind. (so in the case of Jazz this is the RTC part).&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;MORE&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Probably a lot&lt;/p&gt;&#xA;" OwnerUserId="7738" LastEditorUserId="7738" LastEditorDisplayName="" LastEditDate="2010-11-22T05:11:20.687" LastActivityDate="2010-11-22T05:11:20.687" />
  <row Id="20394" PostTypeId="2" ParentId="20385" CreationDate="2010-11-21T16:26:43.040" Score="3" ViewCount="" Body="&lt;p&gt;Contracts I've seen usually have some clause about this. For example, I'm forbidden to work on side projects in my employer's core industry. Everything else is fair game so long as it doesn't impact my daily performance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't have a contract, you can either assume a similar arrangement or ask your boss explicitly. I am not a lawyer, but I think if you are reasonable (i.e. don't reuse code written at work, don't use software or hardware provided by your employer, don't become a direct competitor with your employer, etc.), then you should be okay. It's then a matter of deciding whether it's better to ask forgiveness or permission if your employer does have an issue with your side work.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-11-21T16:26:43.040" />
  <row Id="20395" PostTypeId="2" ParentId="20385" CreationDate="2010-11-21T16:39:46.027" Score="2" ViewCount="" Body="&lt;p&gt;I think if you don't break/violate any rule of your main job and not harming your main job by freelance job, then its fine to do freelance job, and you should be independent of asking anyone about what you do at your extra time.&lt;/p&gt;&#xA;" OwnerUserId="8090" LastActivityDate="2010-11-21T16:39:46.027" />
  <row Id="20396" PostTypeId="2" ParentId="20330" CreationDate="2010-11-21T16:51:43.687" Score="1" ViewCount="" Body="&lt;p&gt;I've been playing around with &lt;a href=&quot;http://cloc.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;CLOC&lt;/a&gt; (Count Lines Of Code), a small app which will analyze a whole directory, separating results by programming language and by whether the line was comment, code or blank. It also applies a ratio to give an overview of how many lines of third-generation programming language code it would be equivalent to...&lt;/p&gt;&#xA;" OwnerUserId="6742" LastActivityDate="2010-11-21T16:51:43.687" />
  <row Id="20397" PostTypeId="2" ParentId="20363" CreationDate="2010-11-21T16:52:33.907" Score="4" ViewCount="" Body="&lt;p&gt;Steve Jobs' commencement speech at Stanford, 2005&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=D1R-jKKp3NA&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=D1R-jKKp3NA&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3 stories...&lt;/p&gt;&#xA;" OwnerUserId="1293" LastActivityDate="2010-11-21T16:52:33.907" CommunityOwnedDate="2010-11-21T17:02:57.777" CommentCount="1" />
  <row Id="20398" PostTypeId="2" ParentId="20369" CreationDate="2010-11-21T16:53:36.837" Score="5" ViewCount="" Body="&lt;p&gt;I hate to seem like a troll, but the language you should learn is English.  There are a bunch of errors in your post and that just looks sloppy.  If I were hiring and that was your resume, I wouldn't care what programming languages you said you knew, I would assume that your sloppiness with the English language would carry over to your programming work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It didn't appear that you are coming at English as a second language (I could, of course, be wrong) but there were enough grammatical and spelling errors to give most hiring managers pause.  Since they are only going to see your written word at first, you need to get that fixed.&lt;/p&gt;&#xA;" OwnerUserId="2506" LastActivityDate="2010-11-21T16:53:36.837" CommentCount="5" />
  <row Id="20399" PostTypeId="2" ParentId="20363" CreationDate="2010-11-21T17:01:25.817" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://vimeo.com/5047563&quot; rel=&quot;nofollow&quot;&gt;This speech&lt;/a&gt; is my current favorite.  It's &lt;a href=&quot;http://en.wikipedia.org/wiki/Why_the_lucky_stiff&quot; rel=&quot;nofollow&quot;&gt;Why the Lucky Stiff's&lt;/a&gt; talk at the Art &amp;amp;&amp;amp; Code Symposium discussing the problems with the way we currently teach programming.  I will admit it might not be the best or most inspiring speech on the list, but I believe the story of _why brings it to another level.&lt;/p&gt;&#xA;" OwnerUserId="5837" LastActivityDate="2010-11-21T17:01:25.817" CommunityOwnedDate="2010-11-21T17:02:57.777" />
  <row Id="20400" PostTypeId="2" ParentId="20371" CreationDate="2010-11-21T17:09:28.060" Score="4" ViewCount="" Body="&lt;p&gt;Either would be perfectly fine for developing web applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your stronger in PHP than Ruby, then likely Cake would be &quot;faster&quot; because you wouldn't have to spend the extra time familiarising yourself with Ruby syntax. Obviously the converse is true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't have a huge amount of experience of either but I'd say I prefer Ruby because I find the libraries easier to use and install (rvm/gems etc) and I like having a local development server rather than using Apache and the large and vocal open-source community on github/blogs/twitter is mostly a good thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Really, who cares, they're basically the same: Dynamic scripting language, MVC framework... If you're looking to expand your knowledge you might as well look at something very different like &lt;a href=&quot;http://nodejs.org/&quot; rel=&quot;nofollow&quot;&gt;node.js&lt;/a&gt; or &lt;a href=&quot;http://snapframework.com/&quot; rel=&quot;nofollow&quot;&gt;Haskell and Snap&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="8139" LastActivityDate="2010-11-21T17:09:28.060" CommentCount="1" />
  <row Id="20401" PostTypeId="2" ParentId="20385" CreationDate="2010-11-21T17:09:47.777" Score="3" ViewCount="" Body="&lt;p&gt;Be aware of local laws.  In the UK, there are standard terms in the software industry that grant your employer ownership of all software code you write.  As these are standard terms in the industry your employer can argue successfully that these terms apply even if they are not written in your contract.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the UK, you should get explicit permission in writing from your employer, as otherwise you are potentially putting your employer and your freelance customer into a copyright fight over ownership of that source code.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-21T17:09:47.777" CommentCount="1" />
  <row Id="20402" PostTypeId="2" ParentId="20385" CreationDate="2010-11-21T17:10:09.760" Score="0" ViewCount="" Body="&lt;p&gt;Tell him and if you dont do well all the blame will come to Freelancing work. However it is still important to do what your contract says.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-21T17:10:09.760" />
  <row Id="20403" PostTypeId="1" AcceptedAnswerId="20423" CreationDate="2010-11-21T17:31:58.627" Score="1" ViewCount="300" Body="&lt;p&gt;This is a subjective question, but do you think there is good money potential in mobile application development?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why or Why Not?&lt;/p&gt;&#xA;" OwnerUserId="7456" LastActivityDate="2010-11-21T19:02:38.350" Title="Mobile Application Development - Money Potential" Tags="&lt;career-advice&gt;&lt;applications&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="20404" PostTypeId="2" ParentId="20403" CreationDate="2010-11-21T17:36:40.610" Score="3" ViewCount="" Body="&lt;p&gt;Yes android and iOS are pretty much the answer.  With android tablets coming out and the iPhone always being popular with the kids this is a expanding market.&lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-11-21T17:36:40.610" />
  <row Id="20405" PostTypeId="2" ParentId="20385" CreationDate="2010-11-21T17:38:08.110" Score="15" ViewCount="" Body="&lt;p&gt;Since you care about this issue, and are considering working for them full time, I think now is a great time to find out how they handle it. They may say &quot;sure, go ahead, we like to see people improving themselves!&quot; They may put some restrictions on you about using their tools. They may forbid you to do it, or even threaten to fire you. They may say &quot;oh gosh, you need more money, we can pay you more (possibly for more hours)&quot;. Anything could happen. Even the ones that don't feel good (like forbidding you) actually are, because they tell you what this job is like before you're committed to it. If they will lock you in and control you, do you want to work there when you graduate?&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-21T17:38:08.110" CommentCount="1" />
  <row Id="20406" PostTypeId="1" AcceptedAnswerId="20410" CreationDate="2010-11-21T17:42:53.647" Score="6" ViewCount="167" Body="&lt;p&gt;I've just started making some simple but non trivial(i think) programs in Ubuntu -- as of now have made a small xkcd scraper, which i plan to develop into a multi webcomic downloader+viewer&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this point, would it be a good idea to start publishing the code on a site like Github or launchpad? (currently I'm not really worried about people copying my code/licensing)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or is it better to publish the code only after the program is completed?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, can you suggest some such sites where I can post such codes and get suggestions for improvements/discuss the code with others?&lt;/p&gt;&#xA;" OwnerUserId="8147" LastActivityDate="2010-11-22T12:11:56.010" Title="starting off with non trivial programs -- publish or not?" Tags="&lt;programming-languages&gt;&lt;project-management&gt;&lt;personal-projects&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="1" />
  <row Id="20407" PostTypeId="1" AcceptedAnswerId="20413" CreationDate="2010-11-21T17:43:48.903" Score="193" ViewCount="12592" Body="&lt;p&gt;In a &lt;a href=&quot;http://programmers.stackexchange.com/questions/20369/career-advice-stay-with-php-or-start-a-new-career-in-something-else-net/20373#20373&quot;&gt;post&lt;/a&gt;, Joel Spolsky mentioned that 5 digit Stack Overflow reputation can help you to earn a job paying $100k+. How much of that is real?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would anyone like to share their success in getting a high paid job by virtue of their reputations on Stack Exchange sites?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I read somewhere that, a person got an interview offer from Google because a recruiter found his Stack Overflow reputation to be impressive. Anyone else with similar stories?&lt;/p&gt;&#xA;" OwnerUserId="1560" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-09T10:37:35.507" LastActivityDate="2011-04-27T07:37:54.133" CommunityOwnedDate="2011-01-17T22:21:44.413" Title="Will high reputation in Stack Overflow help to get a good job?" Tags="&lt;career&gt;&lt;productivity&gt;&lt;jobs&gt;&lt;reputation&gt;" AnswerCount="34" CommentCount="32" FavoriteCount="59" />
  <row Id="20408" PostTypeId="2" ParentId="20369" CreationDate="2010-11-21T17:44:37.677" Score="2" ViewCount="" Body="&lt;p&gt;The long term answer to this question is basically what our esteemed host (Joel Spolsky) and Steve Streeting said. Programming at it's core is not about languages it is about using the computer to solve problems, and is a craft that must be learned and worked and thought about over time. Knowing how to code does not make one a programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you asked a pragmatic and time-sensitive topic .. what should you do NOW?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suggest that you dig into PHP until the move. Dig into it, hard, really hard, 20 hours a week outside of work hard. With PHP it is pretty easy .. get a hosting account and a domain and start building apps. With focused effort, 6 months is an eternity. Over that time, get to be really good at it. This will help you find a good job once in New York, and will very likely make you a better programmer to boot. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;BTW .. if you didn't know already, there is an &lt;a href=&quot;http://careers.stackoverflow.com/&quot;&gt;IT employment site&lt;/a&gt; in the StackExchange family.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;THEN, when the life transition has settled down a bit, begin following &lt;a href=&quot;http://programmers.stackexchange.com/questions/20369/career-advice-stay-with-php-or-start-a-new-career-in-something-else-net/20379#20379&quot;&gt;Mr. Streeting's playbook&lt;/a&gt; and educating yourself about the craft of programming rather than the trade of coding. Use some time outside of work to read and do things on other platforms and with other tools.&lt;/p&gt;&#xA;" OwnerUserId="1655" LastActivityDate="2010-11-21T17:44:37.677" />
  <row Id="20409" PostTypeId="2" ParentId="20385" CreationDate="2010-11-21T17:44:43.707" Score="13" ViewCount="" Body="&lt;h1&gt;No&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Unless your contract specifically forbids freelancing, what you do on your own time is none of his business.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-21T17:44:43.707" CommentCount="4" />
  <row Id="20410" PostTypeId="2" ParentId="20406" CreationDate="2010-11-21T17:45:52.293" Score="5" ViewCount="" Body="&lt;p&gt;It's a good idea to push it to a public repository for multiple reasons -&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Motivates you to keep it up, maintain it&lt;/li&gt;&#xA;&lt;li&gt;You might get unexpected feedback from others&lt;/li&gt;&#xA;&lt;li&gt;Looks good on your resume/profile/blog&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So even if it's not complete yet, put it up somewhere. Don't be worried about incompleteness, because people who visit will know it's a work in progress.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update : As Skilldrick mentions, &lt;a href=&quot;http://www.github.com&quot; rel=&quot;nofollow&quot;&gt;www.github.com&lt;/a&gt; is a great repos.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastEditorUserId="1539" LastEditorDisplayName="" LastEditDate="2010-11-22T12:11:56.010" LastActivityDate="2010-11-22T12:11:56.010" CommentCount="3" />
  <row Id="20411" PostTypeId="2" ParentId="20407" CreationDate="2010-11-21T17:58:52.447" Score="-5" ViewCount="" Body="&lt;p&gt;John skeet got a job in Google as well, he has a good score on Stack Overflow.&lt;/p&gt;&#xA;" OwnerUserId="672" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-09T10:57:26.783" LastActivityDate="2011-02-09T10:57:26.783" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="11" />
  <row Id="20412" PostTypeId="2" ParentId="20403" CreationDate="2010-11-21T18:01:55.737" Score="1" ViewCount="" Body="&lt;p&gt;Yes, it has a lot of potential. The mobile platform is soon going to be very very popular.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-21T18:01:55.737" CommentCount="3" />
  <row Id="20413" PostTypeId="2" ParentId="20407" CreationDate="2010-11-21T18:03:57.467" Score="211" ViewCount="" Body="&lt;h1&gt;No&lt;/h1&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;the real answer: spend a few months earning a five digit Stack Overflow reputation, and you'll be getting job offers in the $100K+ range without an interview.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;There is no reason why a high reputation (or &quot;score&quot;) on any site will get you a job at all. I have pointed this out before, you are more likely to get a job by maintaining open source projects, writing proficiently, leaving good impressions, and making personal connections within the community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are these people good programers? &lt;em&gt;Undoubtedly yes!&lt;/em&gt; Does that mean they are a good fit for your team? &lt;strong&gt;Absolutely not&lt;/strong&gt;. Calling these people &quot;superstars&quot; may be completely correct, but that doesn't make them perfect. &lt;sup&gt;1&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What determines if you are a good fit? Interviews and connections. You can't replace meeting people face to face with a number.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Having a high reputation can't hurt, &lt;strong&gt;but it isn't a magic bullet&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;1: In no way do I mean to imply these people are bad programmers, I mean to emphasize the inability to instantly and wholly judge someone based on a number.&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-11-22T12:15:05.257" LastActivityDate="2010-11-22T12:15:05.257" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="20" />
  <row Id="20414" PostTypeId="2" ParentId="20407" CreationDate="2010-11-21T18:09:03.623" Score="30" ViewCount="" Body="&lt;p&gt;I have a 5 digit SO reputation, and my salary is barely half of what you mention.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously a good SO reputation doesn't guarantee anything, but even though most recruiters don't even know what SO is, surely it's worth mentioning it in one's CV. It's &lt;em&gt;substantial&lt;/em&gt;, after all, unlike all kinds of official-looking certifications from two-day courses etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand: while Joel has a point, your &lt;em&gt;activity on Q/A sites&lt;/em&gt; isn't really supposed to define your salary in any way. It may be a proof of some proficiency and enthusiasm, but the recruiting company is interested in what you're going to do &lt;em&gt;for them&lt;/em&gt; if they recruit you, not in your abilities to answer programming questions. So by all means, consider SO reputation as a part of your professional credibility, but don't expect it to be something huge.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-11-24T07:20:21.817" LastActivityDate="2010-11-24T07:20:21.817" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="15" />
  <row Id="20415" PostTypeId="2" ParentId="20407" CreationDate="2010-11-21T18:28:34.480" Score="2" ViewCount="" Body="&lt;p&gt;If I was to hire, I would rather see how the person performs in the interview.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-21T18:28:34.480" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="7" />
  <row Id="20416" PostTypeId="1" AcceptedAnswerId="20422" CreationDate="2010-11-21T18:31:43.480" Score="6" ViewCount="409" Body="&lt;p&gt;Although I've read on various websites until 2007-2008 that CS majors in decline, I don't understand why--I haven't entered the job market yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bruce Webster has an excellent chart regarding the topic: &lt;a href=&quot;http://brucefwebster.com/2008/03/05/the-decline-in-computer-science-students/&quot; rel=&quot;nofollow&quot;&gt;http://brucefwebster.com/2008/03/05/the-decline-in-computer-science-students/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some factors that lead to this decline? Is there still deficient amount of graduates? Are more people just skipping higher education altogether to get inside the industry? Does a &quot;Software Design&quot; major exit now?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So many questions.&lt;/p&gt;&#xA;" OwnerUserId="8020" LastActivityDate="2010-11-21T21:56:05.403" Title="Why is there a decline in CS majors?" Tags="&lt;education&gt;&lt;computer-science&gt;&lt;university&gt;&lt;industry&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="0" />
  <row Id="20417" PostTypeId="2" ParentId="20407" CreationDate="2010-11-21T18:35:23.557" Score="3" ViewCount="" Body="&lt;p&gt;Maybe Joel's implicitly offering a job to anyone with a 5-digit reputation? On a more serious note, some employers do follow sites like this, and also open source projects and mailing lists. I was contacted by a firm about a job opportunity a few years ago based on a recommendation from someone I worked on an open source project with. Having a reputation for being knowledgeable and helpful surely has to count for something.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-21T18:35:23.557" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="0" />
  <row Id="20418" PostTypeId="2" ParentId="20363" CreationDate="2010-11-21T18:41:44.927" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.xs4all.nl/~driek/me/mmm.html&quot; rel=&quot;nofollow&quot;&gt;&quot;The Joys of the Craft&quot;&lt;/a&gt; by Frederick P. Brooks Jr in &quot;The Mythical Man Month&quot;. Doesn't quite fit your requirement of being a speech - but for me it is still the one essay that perfectly captures the soul of programming.&lt;/p&gt;&#xA;" OwnerUserId="8156" LastActivityDate="2010-11-21T18:41:44.927" CommunityOwnedDate="2010-11-21T18:41:44.927" />
  <row Id="20419" PostTypeId="2" ParentId="20416" CreationDate="2010-11-21T18:45:55.497" Score="3" ViewCount="" Body="&lt;p&gt;This is purely speculation, but: &lt;em&gt;getting started in programming today is easier than it ever has been.&lt;/em&gt; Thus people decide to skip higher education, because they are able to do quite impressing programs with no education. This is possible thanks to high level of abstraction. I can take &lt;a href=&quot;http://code.google.com/p/android-scripting/&quot; rel=&quot;nofollow&quot;&gt;Scripting Layer for Android&lt;/a&gt; into my phone and write something like&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;import android&#xA;droid = android.Android()&#xA;droid.makeToast('Hello, Android!')&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and it shows a message box. Showing a message box took some 100+ lines of C++ in Windows just a decade ago! Looks like you don't need CS any more to be a programmer - which is mostly true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can't be a great programmer with no CS knowledge, but you &lt;em&gt;can&lt;/em&gt; easily be decent enough to earn good living. Besides, nothing stops you from learning CS gradually on need basis.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-11-21T18:57:13.330" LastActivityDate="2010-11-21T18:57:13.330" CommentCount="7" />
  <row Id="20420" PostTypeId="2" ParentId="20403" CreationDate="2010-11-21T18:47:28.350" Score="2" ViewCount="" Body="&lt;p&gt;Obviously, the mobile market is currently hot. But try to keep in mind that there's a weird psychological effect going on with smartphone users. First they easily spend hundreds of [insert currency here] for a device, but OH NO! an app from the AppStore costs a dollar! No way I will pay for that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A better option would be to look at the free apps which are supported by ads. Apparently, smartphone/tablet users don't really mind the occasional ad, as long as the app is free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found &lt;a href=&quot;http://techcrunch.com/2009/05/06/just-how-much-money-can-free-iphone-apps-make-quite-a-bit/&quot; rel=&quot;nofollow&quot;&gt;this link&lt;/a&gt; to add some more info about how much or how little you can make with a free, ad-sponsored app. I had another article, but I can't seem to find the link at the moment. I'm going to look for it and edit when I find it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just keep in mind that eventually, the amount of potential profit your app has all depends on what it does, how much competition it has, and how you beat the competition (or vice versa).&lt;/p&gt;&#xA;" OwnerUserId="8117" LastActivityDate="2010-11-21T18:47:28.350" />
  <row Id="20421" PostTypeId="2" ParentId="20416" CreationDate="2010-11-21T18:50:21.617" Score="0" ViewCount="" Body="&lt;p&gt;You need to look at the history.  As you may know there was a &quot;dot-com boom&quot; in the mid-1990's.  It started around 1993 and ended in 2001 with the big &quot;dot-com bust&quot;.  During those years the web became ubiquitous, and the demand for programmers and, consequently, their salaries were rising steadily.  I graduated in 1997 from a polytechnic institute, and CS was the largest major among my graduating class.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After the bubble burst in 2001, billions of dollars in inflated tech stocks evaporated, and the demand for software engineers fell sharply.  As a result, the number of students choosing CS as their major also fell.  You could see it very clearly in bookstores.  The computer books sections were reduced to almost nothing.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastEditorUserId="4365" LastEditorDisplayName="" LastEditDate="2010-11-21T20:25:00.080" LastActivityDate="2010-11-21T20:25:00.080" CommentCount="2" />
  <row Id="20422" PostTypeId="2" ParentId="20416" CreationDate="2010-11-21T18:51:03.727" Score="7" ViewCount="" Body="&lt;p&gt;When you look at the graph and compare with financial crisis of 80s and late 90s (internet bubble) this is the same curve with a delay (years) probably due to the fact that you stay at school the same amount of years (of the delay). The graph shows CS degrees &lt;strong&gt;granted&lt;/strong&gt; (this is important).&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;The cause is simply the market.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'm also pretty sure it is not related to CS only, but you can have similar behavior in other branches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/4FCOn.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/5A3yQ.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-21T19:31:13.113" LastActivityDate="2010-11-21T19:31:13.113" CommentCount="3" />
  <row Id="20423" PostTypeId="2" ParentId="20403" CreationDate="2010-11-21T19:02:38.350" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;There is great short term work in smartphone application development (as a contract programmer).  Rates have doubled for such work in my area, for example.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;There is obvious long term work in smartphone application development: portable applications are clearly a good thing. The risk is mostly in choosing a platform and building a business around the lower price points.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The market is easy to enter, as the applications are smaller than most things aimed at the desktop. Smaller applications == lower investment, which can be good.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The tools on the major platforms are excellent, with a lot of library development.  This is especially excellent as there are more building blocks to work with (very reasonable development costs).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Web browsers are excellent on all current generation devices (possible exception of BlackBerry).  This opens another avenue for easy platform development.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8151" LastActivityDate="2010-11-21T19:02:38.350" />
  <row Id="20424" PostTypeId="2" ParentId="20416" CreationDate="2010-11-21T19:13:15.783" Score="5" ViewCount="" Body="&lt;p&gt;People go where the money is. During the dot-com boom, enrollments exploded as would-be CS majors saw easy money. And it was true; a 2-year degree (or even a certification) could land you a $100K+ job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After 2001, I believe we saw several things happen at the same time:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The Internet became the victim of its own success. Fast, cheap Internet access meant low-skill IT jobs could be moved overseas. Like people, businesses seek to maximize profits and cheap labor is part of that equation. This led to a decline in interest in the CS major here in the US -- and a corresponding increase elsewhere.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Some of the fantastic products and services invented during the dot-com era have made it easier than ever to be a power user. Tasks which used to involve programming can now be done by merely being a user. Most business data analysis needs can be met by Excel, for example. Artists can make impressive 3D animated movies using nothing more than Maya or Blender or the like. Relatively unskilled users can whip together a nice website in just minutes using Wordpress, Drupal, or Dreamweaver.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;While 2001 saw the beginning of the decline of the CS major, it was also the start of the real estate boom in the US. Many CS majors who had no business doing programming followed the money and became real estate agents or loan brokers. Many of the resumes that cross my desk include candidates that were once programmers but are now in the real estate industry.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Will the cycle repeat itself? It's hard to say. Mobile app development is sure gathering a lot of interest and while it's easy to make an Android &quot;Hello World&quot; app, creating a new and innovative one takes real talent. The video game industry is also fueling demand, but they need not only programmers, but artists, marketers, writers, musicians, foley artists, and more, so the demand is spread out among many talents.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastEditorUserId="3790" LastEditorDisplayName="" LastEditDate="2010-11-21T20:35:31.027" LastActivityDate="2010-11-21T20:35:31.027" />
  <row Id="20425" PostTypeId="2" ParentId="20407" CreationDate="2010-11-21T19:22:14.110" Score="3" ViewCount="" Body="&lt;p&gt;It may be of benefit as a decider I'd say. Like &lt;a href=&quot;http://stackoverflow.com/questions/719239&quot;&gt;MS certifications&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It'd never be the sole reason to employ someone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might be a reason to not employ someone if they spend many hours a day here...&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-11-21T19:22:14.110" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="8" />
  <row Id="20426" PostTypeId="2" ParentId="20352" CreationDate="2010-11-21T19:22:43.030" Score="0" ViewCount="" Body="&lt;p&gt;Architecture isn't about expertise in specific tools or techniques, it's the design and planning of systems, their parts, and the way they interact with other systems. This includes mastering skills like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;API and other system interaction methods (things like REST, but for a number of different types of systems)&lt;/li&gt;&#xA;&lt;li&gt;Large scale schema design in a number of database (and data storage) systems, including varying levels of normalization.&lt;/li&gt;&#xA;&lt;li&gt;Differing approaches to design documentation and other artifacts&lt;/li&gt;&#xA;&lt;li&gt;Capacity planning and other scale and measurement techniques&lt;/li&gt;&#xA;&lt;li&gt;Lower level design techniques and experience (implies a number of languages, approaches, etc.)&lt;/li&gt;&#xA;&lt;li&gt;Operational design approaches&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Without understanding a number of different systems and approaches, an architect is really just a Sr. Developer or designer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, the term Architect is not applied uniformly in our industry. &quot;.NET Architect&quot; seems more like a designer or senior post, as architecture implies knowledge and experience with other things.&lt;/p&gt;&#xA;" OwnerUserId="8151" LastActivityDate="2010-11-21T19:22:43.030" />
  <row Id="20427" PostTypeId="1" AcceptedAnswerId="20428" CreationDate="2010-11-21T19:37:59.443" Score="13" ViewCount="910" Body="&lt;p&gt;Hi there!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a question that can be best answered here, given the vast experience some of you guys have!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am going to finish my bachelor's degree in CS and let's face it, I am just comfortable with C++ and Python. C++ - I have no experience to show for and I can't quote the C++ standard like some of the guys on SO do but yet I am comfortable with the language basics and the stuff that mostly matters. With Python, I have demonstrated work experience with a good company, so I can safely put that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have never touched C, though I have been meaning to do it now. So I cannot write C on my resume because I have not done it ever. Sure I can finish K &amp;amp; R and get a sense of the language in a month, but I don't feel like writing it cause that would be being unfaithful to myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the big question is, are two languages on a a resume considered OK or that is usually a bad sign? Most resumes I have seen mention lots of languages and hence my question. Under the language section of my resume, I just mention: C++ and Python and that kinda looks empty!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your views on this and what do you feel about such a situation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: I really don't want to write every single library or API I am familiar with. Or should I?&lt;/p&gt;&#xA;" OwnerUserId="8163" LastActivityDate="2011-02-18T23:13:19.867" Title="I have only two languages on my resume - how bad is this?" Tags="&lt;career&gt;&lt;resume&gt;" AnswerCount="11" CommentCount="5" FavoriteCount="3" />
  <row Id="20428" PostTypeId="2" ParentId="20427" CreationDate="2010-11-21T19:41:31.980" Score="15" ViewCount="" Body="&lt;p&gt;As long as you know how to think the problems through, it does not matter how many languages you are proficient in. But since you are proficient with C++, you could invest a few months time to gain some skill in C# or Java (or Ruby, for that matter).&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-21T19:41:31.980" CommentCount="5" />
  <row Id="20429" PostTypeId="2" ParentId="20363" CreationDate="2010-11-21T19:42:34.360" Score="2" ViewCount="" Body="&lt;p&gt;Steve Yegge's talk at OSCON 2007: &lt;a href=&quot;http://blip.tv/file/319044/&quot; rel=&quot;nofollow&quot;&gt;How to Ignore Marketing and Become Irrelevant in Two Easy Steps&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This talk is inspiring because he did the whole thing with broken PowerPoint slides. The focus of the talk should be on the speaker, not the slides, and the lack of slides did not detract from his talk at all.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2010-11-21T19:42:34.360" CommunityOwnedDate="2010-11-21T19:42:34.360" />
  <row Id="20430" PostTypeId="2" ParentId="20204" CreationDate="2010-11-21T19:43:40.380" Score="1" ViewCount="" Body="&lt;p&gt;Every time programmers with no experience say they think working for free is reasonable, I tell them it's not worth it unless they're really desperate to have something on their resume and have no financial problems above all.&lt;br&gt;&#xA;An inexperienced person would probably feel pressured to produce something for the company to prove they are worth something. However, they should face the fact that whenever someone hires someone for anything, they expect results really soon. This might not be enough time to learn about a certain framework or technology, how things really work, etc and both parties end up frustrated.&#xA;Of course, it might work out alright, but why risk it and end up ruining your reputation? It's always a good idea to take the time to try to produce something for yourself first. That's what I did and it's going well.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-11-21T19:43:40.380" />
  <row Id="20431" PostTypeId="2" ParentId="20427" CreationDate="2010-11-21T19:58:51.013" Score="5" ViewCount="" Body="&lt;p&gt;It's not that bad if you're applying for a job that's exclusively C++ or Python. Some employers might take the knowledge of multiple languages as a sign that you can be trusted to learn new ones quickly, but since you're just graduating a reasonable employer will probably take that into consideration. It'd be a different story if you had 20 years of job experience but knew only 2 languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might consider starting to get familiar with a new language that you're interested in and mention that your resume. It'd show that you're dedicated to broaden your language selection and to develop your skills.&lt;/p&gt;&#xA;" OwnerUserId="7836" LastActivityDate="2010-11-21T19:58:51.013" CommentCount="1" />
  <row Id="20432" PostTypeId="2" ParentId="20427" CreationDate="2010-11-21T20:02:55.390" Score="2" ViewCount="" Body="&lt;p&gt;Two problems with knowing only two languages:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;There are a number of programming models that can help improve how you think about problem design. A lack of knowledge around these other models limits your ability.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Your skills aren't as portable to other languages, and you're out of practice in learning new languages.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;As for what goes on your resumé, that's a different question: some employers will be very happy to find someone focused on only a few things.  I don't believe this to be a good mark for a programmer, but there are many different needs and businesses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suggest learning at least one language a year, outside of what your employer requires.  It's good for the brain, your design mojo, and for your future resumé.&lt;/p&gt;&#xA;" OwnerUserId="8151" LastActivityDate="2010-11-21T20:02:55.390" CommentCount="4" />
  <row Id="20433" PostTypeId="2" ParentId="20369" CreationDate="2010-11-21T20:05:16.920" Score="0" ViewCount="" Body="&lt;p&gt;Language and platform are not that important. Learn solid people and comp sci skills. A lot of people have said this but haven't given specifics so let me do that. Here are some things to learn&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;algorithms and data structures.&lt;/li&gt;&#xA;&lt;li&gt;concurrency&lt;/li&gt;&#xA;&lt;li&gt;machine learning&lt;/li&gt;&#xA;&lt;li&gt;systems level programming&lt;/li&gt;&#xA;&lt;li&gt;information retrieval and search engines&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8169" LastActivityDate="2010-11-21T20:05:16.920" />
  <row Id="20434" PostTypeId="2" ParentId="20407" CreationDate="2010-11-21T20:07:09.807" Score="9" ViewCount="" Body="&lt;p&gt;My current job pays me about $54k a year for 25h a week, most of which I work from home. Plus working as a game developer was kind of a childhood dream, that has now come true (although I sometimes think of moving on to something more &quot;meaningful&quot;). So I suppose my job is arguably equivalent to or even better than the average $100k+ jobs you get as a developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On my application I added a section &quot;participation in online communities&quot;, wherein I listed SO (and a few smaller german forums). I don't have a superbly high score, but among ActionScript 3 developers I am very well placed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The references I had were not really outstanding. Mostly the stupid kind of stuff you do as a Flash Developer to get money for sites you'd never visit yourself. But upon arrival to the interview I immediatly sensed, that I had a very high standing from the start. I have personally accounted this to my SO activity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Getting a high rep on SO means, that you are eager to exchange thoughts, that you are knowledgeable enough to solve the problems your peers pose you (real problems from they actually encounter in every day life), and that you are able to communicate your ideas. These are key abilities for good developers. Thus one can say, people who have a high rep on SO have those abilities. The reputation is given to you by independent developers, not by some comittees or someone vaguely in touch with the subject. I think a high rep on SO is a much better measure than good grades (which appearently are still consider a criterium by some employers).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, I'd never hire someone just because they have a high SO rep. But let's say a person with a high rep will have a head start while trying to convince me they're good. Appearently my current employer reasons similarly.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-11-21T20:07:09.807" CommunityOwnedDate="2011-01-17T22:21:44.413" />
  <row Id="20435" PostTypeId="2" ParentId="18704" CreationDate="2010-11-21T20:14:53.820" Score="0" ViewCount="" Body="&lt;p&gt;The most important assignments I've seen force people to think about something they would have not otherwise considered. Something entirely outside of the simple course material, something that seems impossible. Something that has multiple valid solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few that have impressed me:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Roshambo AIs (used in the AI course at UOA).  A simple function that returns -1, 0, 1 for rock, paper, scissors.  The AIs are pit against each other, and stats are collected by an aggregate utility program.  This assignment constantly surprises people in how many approaches are viable (and how many perform so poorly).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Simple sorting problems with impossible characteristics.  Sort a file of infinite length with finite memory.  This problem shook my foundation of thinking in algorithms.  There are many related problems: windowed averages over infinite-length data, etc., each forces a solution to something apparently impossible.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Simulation problems that appear trivial. Traffic simulations (vehicle, network), race car simulations (left, right, faster, slower), grocery store simulations. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Networking problems (a great weakness in the graduates I've worked with over the last few yearrs).  Peer networking problems with handhelds, for example, proving complexity of n-sync issues, peer updates, peer trust, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Little languages (another weakness in recent grads).  Develop a little language for a simple game AI (checkers, roshambo, tanks, CSS mojo, Twitter bots).  Thinking about concepts of language design, interpretation, and actions is fundimental.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8151" LastActivityDate="2010-11-21T20:14:53.820" CommentCount="2" />
  <row Id="20436" PostTypeId="2" ParentId="20275" CreationDate="2010-11-21T20:38:07.500" Score="63" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/20275/mono-is-frequently-used-to-say-yes-net-is-cross-platform-how-valid-is-that/20280#20280&quot;&gt;Sparkie's answer&lt;/a&gt; got it, let me complement a little.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;.NET is cross platform&quot; is too much of an ambiguous statement as both the framework and the world it was originally created for have changed and evolved.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The short answer is: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The underlying engine that powers .NET and its derivatives, the Common Language Infrastructure Standard, is cross-platform and as if you want to make your code go to multiple platforms, &lt;strong&gt;you need to plan on using the right APIs on the right platform&lt;/strong&gt; to deliver the best experience on each platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The CLI family has not tried the &quot;Write Once, Run Anywhere&quot; approach, as the differences from a phone to a mainframe are too big.   Instead a universe of API and runtime features that are platform-specific has emerged to give developers the right tools to create &lt;strong&gt;great experiences&lt;/strong&gt; in each platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think of it: programmers no longer target Windows PCs or Unix Servers.   The world, now more than ever is surrounded by fascinating platforms from PCs, to gaming consoles, to powerful phones, to set-top boxes, to big servers and distributed clusters of machines.  &lt;strong&gt;A one-size fits on all platform would merely feel bloated on tiny devices, and feel underpowered on large systems&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Microsoft's .NET Framework product is not cross platform, it only runs on Windows.  There are variations of the .NET Framework from Microsoft that run on other systems like the Windows Phone 7, the XBox360 and browsers through Silverlight, but they are all slightly different profiles.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Today you can target every major mainstream OS, phone, mobile device, embedded system and server with .NET-based technologies.   Here is a list that shows which CLI implementation you would use in each case (this list is not comprehensive, but should cover 99% of the cases):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;x86 and x86-64 based PC computers:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;running Windows -&gt; Typically you run .NET or Silverlight but you can also use full Mono here.&lt;/li&gt;&#xA;&lt;li&gt;running Linux, BSD or Solaris -&gt; You run full Mono or Silverlight&lt;/li&gt;&#xA;&lt;li&gt;running MacOS X -&gt; You run full Mono or Silverlight&lt;/li&gt;&#xA;&lt;li&gt;running Android -&gt; You run Mono/Android subset&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;ARM computers:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Running Windows Phone 7: you run Compact Framework 2010&lt;/li&gt;&#xA;&lt;li&gt;Running Windows 6.5 and older: you run the old Compact Framework&lt;/li&gt;&#xA;&lt;li&gt;Android devices: you run Mono/Android&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;PowerPC computers:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You run full Mono for full Linux, BSD or Unix operating systems&lt;/li&gt;&#xA;&lt;li&gt;You run embedded Mono for PS3, Wii or other embedded systems.&lt;/li&gt;&#xA;&lt;li&gt;On XBox360, you run CompactFramework&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;S390, S390x, Itanium, SPARC computers:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You run full Mono&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Other embedded operating systems:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You run .NET MicroFramework or Mono with the mobile profile.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Depending on your needs the above might be enough or not.   You will hardly get the same source code to run everywhere.   For example, XNA code wont run on every desktop, while .NET Desktop software wont run on XNA or the phone.   You typically need to make changes to your code to run in other profiles of the .NET Framework.   Here are some of the profiles I am aware of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;.NET 4.0 Profile&lt;/li&gt;&#xA;&lt;li&gt;Silverlight Profile &lt;/li&gt;&#xA;&lt;li&gt;Windows Phone 7 Profile&lt;/li&gt;&#xA;&lt;li&gt;XBox360 Profile&lt;/li&gt;&#xA;&lt;li&gt;Mono core Profile - follows the .NET profile and is available on Linux, MacOS X, Solaris, Windows and BSD.&lt;/li&gt;&#xA;&lt;li&gt;.NET Micro Framework&lt;/li&gt;&#xA;&lt;li&gt;Mono on iPhone profile&lt;/li&gt;&#xA;&lt;li&gt;Mono on Android Profile&lt;/li&gt;&#xA;&lt;li&gt;Mono on PS3 Profile&lt;/li&gt;&#xA;&lt;li&gt;Mono on Wii Profile&lt;/li&gt;&#xA;&lt;li&gt;Moonlight profile (compatible with Silverlight)&lt;/li&gt;&#xA;&lt;li&gt;Moonlight extended profile (Silverlight + full .NET 4 API access)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So each one of those profiles is actually slightly different, and this is not a bad thing.   Each profile is designed to fit on its host platform and expose the APIs that make sense, and remove the ones that do not make sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, Silverlight's APIs to control the host browser do not make sense on the phone.   And shaders in XNA make no sense on PC hardware that lacks the equivalent support for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The sooner you realize that .NET is not a solution to isolating the developer from the underlying capabilities of the hardware and the native platform, the better off you will be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That begin said, some APIs and stacks are available in multiple platforms, for example ASP.NET can be used on Windows, on Linux, on Solaris, on MacOS X because those APIs exist both on .NET and Mono.   ASP.NET is not available on some of Microsoft's supported platforms like XBox or Windows 7 and is not supported either on other platforms that Mono supports like the Wii or the iPhone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The following information is only correct as of November 21st, and many things in the Mono world will likely change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same principles can be applied to other stacks, a full list would require a proper table, which I have no idea of how to present here, but here is a list of technologies that might not be present on a particular platform.   You can assume that anything not listed here is available (feel free to send me edits for things I missed):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Core Runtime Engine [everywhere]&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Reflection.Emit Support [everywhere, except WP7, CF, Xbox, MonoTouch, PS3]&lt;/li&gt;&#xA;&lt;li&gt;CPU SIMD support [Linux, BSD, Solaris, MacOS X; Soon PS3,  MonoTouch and MonoDroid]&lt;/li&gt;&#xA;&lt;li&gt;Continuations - Mono.Tasklets [Linux, BSD, Solaris, MacOS, PS3, Wii]&lt;/li&gt;&#xA;&lt;li&gt;Assembly Unloading [Windows only]&lt;/li&gt;&#xA;&lt;li&gt;VM Injection [Linux, BSD, MacOS X, Solaris]&lt;/li&gt;&#xA;&lt;li&gt;DLR [Windows, Linux, MacOS X, Solaris, MonoDroid]&lt;/li&gt;&#xA;&lt;li&gt;Generics [some limitations on PS3 and iPhone].&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Languages&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;C# 4 [everywhere]&lt;/li&gt;&#xA;&lt;li&gt;C# Compiler as a Service (Linux, MacOS, Solaris, BSD, Android)&lt;/li&gt;&#xA;&lt;li&gt;IronRuby [everywhere, execpt WP7, CF, Xbox, MonoTouch, PS3]&lt;/li&gt;&#xA;&lt;li&gt;IronPython [everywhere, execpt WP7, CF, Xbox, MonoTouch, PS3]&lt;/li&gt;&#xA;&lt;li&gt;F# [everywhere, execpt WP7, CF, Xbox, MonoTouch, PS3]&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Server Stacks&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ASP.NET [Windows, Linux, MacOS, BSD, Solaris]&lt;/li&gt;&#xA;&lt;li&gt;ADO.NET [everywhere]&lt;/li&gt;&#xA;&lt;li&gt;LINQ to SQL [everywhere]&lt;/li&gt;&#xA;&lt;li&gt;Entity Framework [Windows only]&lt;/li&gt;&#xA;&lt;li&gt;Core XML stack [everywhere]&#xA;&lt;ul&gt;&#xA;&lt;li&gt;XML serialization [everywhere, except WP7, CF, Xbox)&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;LINQ to XML (everywhere)&lt;/li&gt;&#xA;&lt;li&gt;System.Json [Silverlight, Linux, MacOS, MonoTouch, MonoDroid]&lt;/li&gt;&#xA;&lt;li&gt;System.Messaging [Windows; on Linux, MacOS and Solaris requires RabbitMQ]&lt;/li&gt;&#xA;&lt;li&gt;.NET 1 Enterprise Services [Windows only]&lt;/li&gt;&#xA;&lt;li&gt;WCF [complete on Windows; small subset on Silverlight, Solaris, MacOS, Linux, MonoTouch, MonoDroid]&lt;/li&gt;&#xA;&lt;li&gt;Windows Workflow [Windows only]&lt;/li&gt;&#xA;&lt;li&gt;Cardspace identity [Windows only]&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;GUI stacks&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Silverlight (Windows, Mac, Linux - with Moonlight)&lt;/li&gt;&#xA;&lt;li&gt;WPF (Windows only)&lt;/li&gt;&#xA;&lt;li&gt;Gtk# (Windows, Mac, Linux, BSD)&lt;/li&gt;&#xA;&lt;li&gt;Windows.Forms (Windows, Mac, Linux, BSD)&lt;/li&gt;&#xA;&lt;li&gt;MonoMac - Native Mac Integration (Mac only)&lt;/li&gt;&#xA;&lt;li&gt;MonoTouch - Native iPhone Integration (iPhone/iPad only)&lt;/li&gt;&#xA;&lt;li&gt;MonoDroid - Native Android Integration (Android only)&lt;/li&gt;&#xA;&lt;li&gt;Media Center APIs - Windows only&lt;/li&gt;&#xA;&lt;li&gt;Clutter (Windows and Linux)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Graphic Libraries&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;GDI+ (Windows, Linux, BSD, MacOS)&lt;/li&gt;&#xA;&lt;li&gt;Quartz (MacOS X, iPhone, iPad)&lt;/li&gt;&#xA;&lt;li&gt;Cairo (Windows, Linux, BSD, MacOS, iPhone, iPad, MacOS X, PS3, Wii)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Mono Libraries - Cross Platform, can be used in .NET but require manually building&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;C# 4 Compiler as a Service&lt;/li&gt;&#xA;&lt;li&gt;Cecil - CIL Manipulation, workflow, instrumentation of CIL, Linkers&lt;/li&gt;&#xA;&lt;li&gt;RelaxNG libraries&lt;/li&gt;&#xA;&lt;li&gt;Mono.Data.* database providers&lt;/li&gt;&#xA;&lt;li&gt;Full System.Xaml (for use in setups where .NET does not offer the stack)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;MonoTouch means Mono running on iPhone;   MonoDroid means Mono running on Android;   PS3 and Wii ports only available to Sony and Nintendo qualified developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I apologize for the lack of formality.&lt;/p&gt;&#xA;" OwnerUserId="8168" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2011-01-05T20:09:34.623" LastActivityDate="2011-01-05T20:09:34.623" CommentCount="4" />
  <row Id="20437" PostTypeId="2" ParentId="20363" CreationDate="2010-11-21T21:13:26.267" Score="4" ViewCount="" Body="&lt;p&gt;I like Guy Steele's &lt;a href=&quot;http://video.google.com/videoplay?docid=-8860158196198824415#&quot; rel=&quot;nofollow&quot;&gt;Growing a Language&lt;/a&gt;.  I find it thought-provoking on a number of levels -- not least of which is that I get to know what a computer feels like while it is being programmed by a master :)&lt;/p&gt;&#xA;" OwnerUserId="8176" LastActivityDate="2010-11-21T21:13:26.267" CommunityOwnedDate="2010-11-21T21:13:26.267" CommentCount="1" />
  <row Id="20438" PostTypeId="1" CreationDate="2010-11-21T21:33:20.773" Score="2" ViewCount="245" Body="&lt;p&gt;There is a correlation between playing a musical instrument and being a great software developer (the same for mathematics). But what is the causation (if any)? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, should a software developer learn to play a musical instrument to become a better software developer? Or does proficiency in software development make it more likely that an interest in performing on a musical instrument will develop?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: a very similar question was asked in podcast &lt;a href=&quot;http://www.dotnetrocks.com/about.aspx&quot; rel=&quot;nofollow&quot;&gt;.NET Rocks&lt;/a&gt;, &lt;a href=&quot;http://www.dotnetrocks.com/default.aspx?showNum=614&quot; rel=&quot;nofollow&quot;&gt;episode 614&lt;/a&gt; (from &lt;a href=&quot;http://oredev.org/2010&quot; rel=&quot;nofollow&quot;&gt;Øredev 2010&lt;/a&gt;), 35 min 40 secs.&lt;/p&gt;&#xA;" OwnerUserId="591" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-01T14:00:58.060" LastActivityDate="2011-01-01T14:26:38.563" ClosedDate="2011-01-02T22:03:49.713" Title="The musical instrument software developer" Tags="&lt;career&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="2" />
  <row Id="20439" PostTypeId="2" ParentId="20293" CreationDate="2010-11-21T21:35:07.887" Score="1" ViewCount="" Body="&lt;p&gt;It's a simple cost + feature balance:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Shared - cheap, managed, less isolated, fewer choices&lt;/li&gt;&#xA;&lt;li&gt;VPS - less cheap, sometimes less managed, more isolated, more choices, can be more work&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You really need to determine how much you want to spend, how much you can responsibly manage yourself, and what features you need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other points:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Security is not inherently different between the two (either can be secure or insecure based on your actions, your host's setup, and the actions of others).&lt;/li&gt;&#xA;&lt;li&gt;Unlimited things are never unlimited, so comparing shared hosting features to VPS features is misleading. If it's important, you want guarantees for bandwidth, storage, etc.&lt;/li&gt;&#xA;&lt;li&gt;Both shared and VPS hosts offer different levels of management.  There are fully managed VPSs, for example, as well as mostly-unmanaged shared hosts.&lt;/li&gt;&#xA;&lt;li&gt;Pricing of both shared and VPS hosts vary widely (as do features).&lt;/li&gt;&#xA;&lt;li&gt;Bandwidth and uptime also vary widely between both types of hosts, look for 3rd party verification for any host you pick.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8151" LastActivityDate="2010-11-21T21:35:07.887" />
  <row Id="20440" PostTypeId="2" ParentId="20438" CreationDate="2010-11-21T21:38:12.510" Score="4" ViewCount="" Body="&lt;p&gt;IMHO there is no causation, and if like me you asked youself the question, it's probably because you are programmer AND in music (like me, that's why I'm answering). &lt;em&gt;I am wrong?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This phenomenom is called &lt;strong&gt;selective memory&lt;/strong&gt; or &lt;strong&gt;confirmation bias&lt;/strong&gt;. Based on it, we make wrong conclusions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just like noticing you always see &lt;em&gt;11:11&lt;/em&gt; on your digital clock. The idea is that all the others values are not weird enought to be noticed.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-21T21:45:47.110" LastActivityDate="2010-11-21T21:45:47.110" CommentCount="5" />
  <row Id="20441" PostTypeId="2" ParentId="9466" CreationDate="2010-11-21T21:39:48.210" Score="0" ViewCount="" Body="&lt;p&gt;Amazon's management tools are enough for basic instance and configuration management, and their command line tools cover all other aspects (and are easily scripted from any language you use). You want to automate most of the repeated actions anyway, and working with the command line tools and libraries prepare you for that.&lt;/p&gt;&#xA;" OwnerUserId="8151" LastActivityDate="2010-11-21T21:39:48.210" />
  <row Id="20442" PostTypeId="2" ParentId="20416" CreationDate="2010-11-21T21:56:05.403" Score="3" ViewCount="" Body="&lt;p&gt;See @Pierre's answer for the market part.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The part that matters these days is simple.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Programmers can be outsourced cheaply.&lt;/li&gt;&#xA;&lt;li&gt;Migrant worker visas allow companies to pay uncompetitive salaries&lt;/li&gt;&#xA;&lt;li&gt;The work is more complex than it used to be&lt;/li&gt;&#xA;&lt;li&gt;The glut of kids who grew up with 8 bit machines dried up. The 8 bit machines were comprehensible to kids (and adults); there's practically no operating system and there's always a BASIC interpreter and an assembler..&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So these days, &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;study hard for 4 years for a software engineering degree&lt;/li&gt;&#xA;&lt;li&gt;Maybe get hired and get paid 45k. (Pay hasn't kept up with inflation over the last decade.)&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Software engineering ( at least when I studied it) had the worst pass rates on campus.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Students can get on the internet (anywhere in the world) and see professional programmers discussing pay and conditions. There's a lot less wide-eyed innocence going around about jobs.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So the pay is  for beans, people hate you ( my wife tells me people hate software engineers, because we make everyone feel powerless) &lt;strong&gt;Why would people do this again ?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whenever people start talking about &quot;only the people that really love the job do it now&quot; what they really mean is that only the suckers are buying.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ACM and other groups have been holding an outreach to minorities over the last decade. When you try extra to get minorities into your profession, there's someone out back looking forward to offering even lower pay and worse conditions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back when programming had a lot more women, in the 60's and 70's, working conditions were much better. Women got out around the time all the microcomputer &quot;programmers&quot; arrived on the market. Maybe we have met the enemy, and he is us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Me, I do it because programming is the only job I know.)&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-11-21T21:56:05.403" CommentCount="11" />
  <row Id="20443" PostTypeId="2" ParentId="20438" CreationDate="2010-11-21T22:00:57.553" Score="3" ViewCount="" Body="&lt;p&gt;There are similarity in the fields. Improvisation, for example is part creativity, but based heavily on patterns and theory (which are really design patterns and algorithms).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I credit a good part of my success in software to my past life as a musician, I don't think that learning a musical instrument will make you a better developer (although it may aid you in learning the instrument). In other words - playing music and programming software have similarities, but I don't believe that doing either makes you better at the other.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-11-21T22:00:57.553" />
  <row Id="20444" PostTypeId="2" ParentId="20438" CreationDate="2010-11-21T22:05:22.307" Score="0" ViewCount="" Body="&lt;p&gt;Music playing is right-side brain activity, and computing is left-side.  I have found that musical activities is a very efficient way to let your computer related part of the brain rest, allowing you to perform better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another view could be that some people have better brains than others, and that one half of their brain is good with computers and the other half is good with music or arts.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-21T22:05:22.307" CommentCount="4" />
  <row Id="20445" PostTypeId="2" ParentId="20407" CreationDate="2010-11-21T22:13:38.967" Score="48" ViewCount="" Body="&lt;p&gt;It's not a case of direct causation. That is, having a high reputation does not &lt;em&gt;lead to&lt;/em&gt; a high-paying job. Being intelligent, articulate, passionate and knowledgable lead to a high-paying job. It's just that those qualities &lt;em&gt;also&lt;/em&gt; lead to a (generally) higher reputation on Stack Overflow as well. So you shouldn't be aiming for a high reputation score. You should be aiming to be intelligent, articulate, passionate and knowledgeable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A higher reputation will just be a bonus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: I just found &lt;a href=&quot;http://programmers.stackexchange.com/questions/20369/career-advice-stay-with-php-or-start-a-new-career-in-something-else-net/20373/#20373&quot;&gt;the post&lt;/a&gt; where Joel says that. He's saying &lt;em&gt;he&lt;/em&gt; would hire someone with a 5 digit reputation on Stack Overflow, not that you'd be able to get &lt;em&gt;any&lt;/em&gt; $100k+ job with a 5 digit reputation. Also, he's not saying that he wouldn't look at the actual &lt;em&gt;content&lt;/em&gt; of your profile, so if you've just posted hundreds of junk questions in the hopes of artificially raising your score, it's not going to help you. Basically, he's using your reputation score as an indication of those qualities I mentioned above.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastEditorUserId="2359" LastEditorDisplayName="" LastEditDate="2010-11-21T22:25:02.990" LastActivityDate="2010-11-21T22:25:02.990" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="5" />
  <row Id="20446" PostTypeId="2" ParentId="16760" CreationDate="2010-11-21T22:16:10.190" Score="1" ViewCount="" Body="&lt;p&gt;I'm looking for problem solving, a strong learning habit, professional development, and wide knowledge of approaches.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Can I see your portfolio?&lt;/li&gt;&#xA;&lt;li&gt;What are the last 3 technical books you've read? Why?&lt;/li&gt;&#xA;&lt;li&gt;Which programming text changed the way you think the most? Why?&lt;/li&gt;&#xA;&lt;li&gt;How would you define a &lt;code&gt;chicken&lt;/code&gt; as an object? How does it relate to other &lt;code&gt;birds&lt;/code&gt;? How about &lt;code&gt;mammals&lt;/code&gt; and &lt;code&gt;animals&lt;/code&gt;?&lt;/li&gt;&#xA;&lt;li&gt;Can you explain any one of (REST, Polymorphism, relational algebra, parser design, MVC) in layman's terms?&lt;/li&gt;&#xA;&lt;li&gt;What is the most interesting (or best) piece of software you've built yourself?&lt;/li&gt;&#xA;&lt;li&gt;Can you describe the languages you are proficient in from favourite to least favourite? What frustrates you about your least favourite languages?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I expect developers to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Be resourceful and quick&lt;/li&gt;&#xA;&lt;li&gt;Grasp basic concepts properly&lt;/li&gt;&#xA;&lt;li&gt;Yearn to grok advanced concepts&lt;/li&gt;&#xA;&lt;li&gt;Track success and failure (learning from it)&lt;/li&gt;&#xA;&lt;li&gt;Learn constantly, thoughtfully&lt;/li&gt;&#xA;&lt;li&gt;Communicate complex issues simply&lt;/li&gt;&#xA;&lt;li&gt;Show balance and logic when discussing commonly dogmatic issues&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8151" LastActivityDate="2010-11-21T22:16:10.190" CommentCount="2" />
  <row Id="20447" PostTypeId="2" ParentId="20427" CreationDate="2010-11-21T22:17:55.270" Score="1" ViewCount="" Body="&lt;p&gt;It would only probably hurt you with non-technical people who don't realize that learning languages is the trivial part of programming.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-11-21T22:17:55.270" CommentCount="4" />
  <row Id="20448" PostTypeId="2" ParentId="20438" CreationDate="2010-11-21T22:21:25.580" Score="1" ViewCount="" Body="&lt;p&gt;Good top gun Fighter pilots play musical instruments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Music: sequence of events in time, synchronized with other events.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming (especially multi-threaded): sequence of events in time, coordinated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Top guns: good spatio-temporal skills.  (The best ones were largely musical, and left handed.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Spatio-temporal skills ( lots of objects interacting in time )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My honors class in computer science was 50% left handed, class size 40.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(One day, the 'dean' of the fourth year asked &quot;how about we get some right-handed only ergonomic mice&quot;, so someone in the student meeting asked &quot;so how many people are left handed&quot;, and half the people there put their hands up. The 'dean' never asked that question again. [And the righties were justifiably nervous])&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-11-21T22:21:25.580" />
  <row Id="20449" PostTypeId="2" ParentId="20427" CreationDate="2010-11-21T22:35:36.660" Score="0" ViewCount="" Body="&lt;p&gt;Most graduates don't have much language experience, just the one or two their degree focuses on. And most I have met struggle with those few as well.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-21T22:35:36.660" />
  <row Id="20450" PostTypeId="1" AcceptedAnswerId="20471" CreationDate="2010-11-21T22:36:03.107" Score="4" ViewCount="184" Body="&lt;p&gt;My employer recently read &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;the twelve steps to better code&lt;/a&gt; and wants me to write a protocol for how we should handle bugs and new features. We are a small company with just three programmers and we use OnTime from axosoft to administer our work.&#xA;I am looking for a course in which best practices for bug tracking, work logging and project planning are taught. The only thing I have been able to find is &lt;a href=&quot;http://www.axosoft.com/training&quot; rel=&quot;nofollow&quot;&gt;axosoft's own six hour introductory course&lt;/a&gt;. Will that have enough depth? Please give recommendations!&lt;/p&gt;&#xA;" OwnerUserId="7293" LastActivityDate="2010-11-23T10:27:35.580" Title="Courses for project management" Tags="&lt;project-management&gt;&lt;bugs&gt;&lt;training&gt;" AnswerCount="2" FavoriteCount="2" />
  <row Id="20451" PostTypeId="2" ParentId="20438" CreationDate="2010-11-21T22:51:53.003" Score="3" ViewCount="" Body="&lt;p&gt;There may be. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I Play an instrument (guitar) and program and fell that they make each other better. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However I suspect that programmers approach learning an instrument very differently from others. I am more interested in learning the patterns and rules of the instrument then actually playing a piece. For me, the Guitar is a puzzle to be solved, like why do some notes sound better together than others. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I have spoken to other non-programmers guitarist, they look at me funny when I ask them these kinds of questions.&lt;/p&gt;&#xA;" OwnerUserId="7947" LastActivityDate="2010-11-21T22:51:53.003" />
  <row Id="20452" PostTypeId="2" ParentId="20427" CreationDate="2010-11-21T23:02:59.463" Score="1" ViewCount="" Body="&lt;p&gt;I would focus your resume on your demonstrated work experience - show that you've completed projects.  That is worth so much more than what classes you took.  Truth be told, unless a CS graduate has actually completed a real project - and I'm not talking school work, I'm talking something they've worked on for months or years that was actually used by real people to solve real problems - they probably dont have enough experience to claim they 'know' &lt;em&gt;any&lt;/em&gt; language.  Since you have actual work experience with Python for a company, you're probably a step ahead of a lot of people already.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also yes, definately include API's and frameworks you've worked with.  Also dont forget SQL, if you've worked with databases.  &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-21T23:02:59.463" />
  <row Id="20453" PostTypeId="2" ParentId="16760" CreationDate="2010-11-21T23:19:35.050" Score="2" ViewCount="" Body="&lt;p&gt;Surely you are going about this the wrong way.  Identify the groupings that you want to place each student into&lt;/p&gt;&#xA;&#xA;&lt;p&gt;e.g.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;No previous programming experience&#xA;Familiar with procedural constructs like variables, loops, branching&#xA;familiar with basic object orientated constructs like classes, interfaces, events, inheritance&#xA;familiar with using Generics/Templates&#xA;familiar with creating Generics/Templates&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and so on. When you have identified the suitable groupings which will depend on the course material, working out what questions to ask will be trivial. &lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-21T23:19:35.050" />
  <row Id="20454" PostTypeId="2" ParentId="16760" CreationDate="2010-11-21T23:22:04.590" Score="3" ViewCount="" Body="&lt;p&gt;Ten questions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Show a for loop that sums the values of an array. Ask then what the piece of code does. [Can they read a basic loop?]&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Ask them to write a for loop that prints out the numbers 1 through 10, separated by commas. [In addition to &quot;can they do this?&quot; you can judge how repetitive their code is.]&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Show a piece of code with two references, &lt;code&gt;a&lt;/code&gt; and &lt;code&gt;b&lt;/code&gt;, pointing to two different objects with an integer field &lt;code&gt;x&lt;/code&gt; set to, say, &lt;code&gt;7&lt;/code&gt; and &lt;code&gt;5&lt;/code&gt;. Then reassign: &lt;code&gt;a = b;&lt;/code&gt;, &lt;code&gt;b.z = 9;&lt;/code&gt;, and then ask for the value of &lt;code&gt;a.z&lt;/code&gt;. [Do they understand references?]&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Show two nested for loops (using indexes &lt;code&gt;i&lt;/code&gt; and &lt;code&gt;j&lt;/code&gt;), accumulating values from some expression. In the innermost loop, have two computations: &lt;code&gt;double x = Math.pow(2.0, i)&lt;/code&gt; and &lt;code&gt;double y = x * j&lt;/code&gt;. Ask them to make the code more efficient. [Do they know about simple loop dependence?]&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Ask them what is wrong in code sample A. (See below.) [Can they think logically?]&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Ask them what is wrong in code sample B. (See below.) [Also on logical thinking.]&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Ask them to invert this condition: &lt;code&gt;(s != null &amp;amp;&amp;amp; s.Length != 0)&lt;/code&gt; without using &lt;code&gt;!&lt;/code&gt;. [Do they know DeMorgan's Law?]&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Show a piece of code similar to the old Lint advertisements in magazines: Ask them to find the bug. For example, overloading &lt;code&gt;equals&lt;/code&gt; instead of overriding it. [Are they good language lawyers? These kind of questions mostly test for experience: have you seen this one before?]&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Can they describe how to perform a binary search through a sorted array?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Can they describe how a sorting method might be implemented?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;These may seem &quot;too short,&quot; but I believe for assessing students you might find the ten minutes is pretty tight. You really do want to see them do some coding. (It sounds like you'll do FizzBuzz, based on one comment.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can assume a stronger student, then you will also want to ask some of the classics, such as recursion, reversing a linked-list, and maybe an advanced wild card like explaining an XOR-list, or what intuitions they might have for why sorting a set of numbers makes it easier to compress than unsorted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code Sample A:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (m != null)&#xA;    a = m;&#xA;else&#xA;    a = null;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Code Sample B:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (x != 0 || x != 1) {&#xA;    ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-21T23:22:04.590" />
  <row Id="20455" PostTypeId="2" ParentId="9466" CreationDate="2010-11-21T23:39:38.153" Score="0" ViewCount="" Body="&lt;p&gt;For me, &lt;a href=&quot;http://www.rightscale.com/&quot; rel=&quot;nofollow&quot; title=&quot;RightScale&quot;&gt;RightScale&lt;/a&gt; is absolutely indispensable. It lets you manage every aspect of your AWS services, from EC2 to SimpleDB to S3 to a bunch of other things that I don't even use. It also lets you create accounts with limited permissions so others can do things like SSH into instances without being able to mess with billing or the like.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of their plans cost upwards of $500 per month, but we've just stuck with the free version and it works great.&lt;/p&gt;&#xA;" OwnerUserId="4573" LastActivityDate="2010-11-21T23:39:38.153" />
  <row Id="20456" PostTypeId="2" ParentId="16760" CreationDate="2010-11-21T23:51:43.400" Score="1" ViewCount="" Body="&lt;p&gt;Bloom's Taxonomy is useful here. You want to hit a variety of knowledge levels, ranging from rote memorization to analytical. This gives you a chance to find out where their skill level lies. Since the OP was looking for questions to ask students, the list below doesn't suppose any more knowledge than a 3rd or 4th year student would (I hope) possess.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Conceptual&lt;/h3&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What is a stack underflow?&lt;/li&gt;&#xA;&lt;li&gt;What's the difference between an object and a class?&lt;/li&gt;&#xA;&lt;li&gt;What's the difference between a function and a method?&lt;/li&gt;&#xA;&lt;li&gt;Identify some of the strengths and weaknesses of Quicksort and Insertion Sort.&lt;/li&gt;&#xA;&lt;li&gt;Describe how a program you wrote would display all the values being stored in a binary tree.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;h3&gt;Practical&lt;/h3&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Have you used a version control system? In what ways does it allow team members to more effectively collaborate?&lt;/li&gt;&#xA;&lt;li&gt;Your compiler says &quot;unidentified symbol.&quot; What does that mean?&lt;/li&gt;&#xA;&lt;li&gt;What is a &quot;segmentation violation&quot;?&lt;/li&gt;&#xA;&lt;li&gt;Name some data structures provided by the (insert language here) syntax or standard library.&lt;/li&gt;&#xA;&lt;li&gt;How would you find and display all the email addresses in 10,000 files?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="3790" LastEditorUserId="3790" LastEditorDisplayName="" LastEditDate="2010-11-21T23:58:11.743" LastActivityDate="2010-11-21T23:58:11.743" />
  <row Id="20457" PostTypeId="1" AcceptedAnswerId="20458" CreationDate="2010-11-21T23:56:45.217" Score="8" ViewCount="302" Body="&lt;p&gt;My editor has a default of 80 characters, and I'm wondering if this is too small (or too large).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How many characters wide should the code be?&lt;/li&gt;&#xA;&lt;li&gt;How wide is yours?&lt;/li&gt;&#xA;&lt;li&gt;Did you ever even notice that your editor has this setting?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6440" LastActivityDate="2010-11-22T03:41:21.387" Title="Best Code Width" Tags="&lt;code-width&gt;" AnswerCount="9" CommentCount="4" FavoriteCount="1" />
  <row Id="20458" PostTypeId="2" ParentId="20457" CreationDate="2010-11-22T00:19:12.497" Score="6" ViewCount="" Body="&lt;p&gt;Most people use either 80 or 72/73 character width. Some use up to a 100, but that already sometimes presents a problem with printing. Besides, long lines are (at least to me) hard to look at. I prefer vertical layout of code, not &quot;infinite&quot; rows ...&lt;br&gt;&#xA;There is a reason why newspapers are printed in columns :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mine is 72.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Btw, if you search SO on this topic you'll find somewhere a link describing the results of a research some time ago that showed that most publishers for example, also use a (my memory is somewhat vague on this, but maybe) 66 char. width per page. It was shown to be easiest to read.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-22T00:19:12.497" CommentCount="6" />
  <row Id="20459" PostTypeId="2" ParentId="20457" CreationDate="2010-11-22T00:20:59.677" Score="1" ViewCount="" Body="&lt;p&gt;I've seen in &quot;Best Practices&quot; lists and books that &amp;lt; 80 is correct. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My editors and screens support a lot more than that, and I find 80 columns very restricting so I'll go past that. I do try to stay with 132 though, as I find lines beyond that to be unwieldy.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-11-22T00:20:59.677" />
  <row Id="20460" PostTypeId="2" ParentId="19842" CreationDate="2010-11-22T00:22:04.420" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;https://github.com/fholm/IronJS&quot; rel=&quot;nofollow&quot;&gt;Iron JS&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally think that it is odd that the only application I know of that is written in F# is something that allows you to write in a language other than F#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, that says a lot about the true value of functional programming. People can celebrate how &quot;beautiful&quot; it is all they want--if it were so beautiful, people would be using it more.&lt;/p&gt;&#xA;" OwnerUserId="5039" LastEditorUserId="5039" LastEditorDisplayName="" LastEditDate="2010-11-22T04:10:26.300" LastActivityDate="2010-11-22T04:10:26.300" CommentCount="3" />
  <row Id="20461" PostTypeId="2" ParentId="20385" CreationDate="2010-11-22T00:31:04.957" Score="8" ViewCount="" Body="&lt;p&gt;I've done a combination of full-time jobs and contracts with freelancing on the side, and full-time freelancing, for about twenty years. So I try to keep up with legal and practical ramifications in the USA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Does your employer prohibit or limit moonlighting?&lt;/strong&gt; This would normally be in an employee handbook or in a document you signed when you joined the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if they have such a policy, you should check, because there are labor laws and case law precedents, on both national and state levels, that void some policies like that - even if you've signed that you agree to them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Don't compete with your employer, or take gigs with companies that compete with them.&lt;/strong&gt; If your day job is doing websites for a dog food company, doing a website for another pet food company would be competitive, but doing one for a martial arts school wouldn't. And if your employer sells website design services... don't do websites as a side gig.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Don't use your employer's time or resources for your side work.&lt;/strong&gt; Buy your own computers, books, development tools, etc., and keep them off the company premises. Try to avoid taking phone calls at work, and if you have to, limit them to breaks or lunch, preferably outside your employer's office.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you're covered on all those bases, you don't need to say anything to your employer. However, if your boss is reasonable, it might be courteous just to mention, &quot;A friend of mine asked me to do X in my spare time.&quot; I do that, and have never gotten grief about it. &lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-11-22T00:31:04.957" CommentCount="2" />
  <row Id="20462" PostTypeId="2" ParentId="20457" CreationDate="2010-11-22T00:32:24.737" Score="0" ViewCount="" Body="&lt;p&gt;For me variable width fonts are much easer to read than fixed width fonts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With my current settings there's room for about 240 characters in the width of my editor. It varies a bit depending on how wide I want other windows to be.&lt;/p&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-11-22T00:32:24.737" CommentCount="3" />
  <row Id="20463" PostTypeId="2" ParentId="16760" CreationDate="2010-11-22T00:36:28.417" Score="2" ViewCount="" Body="&lt;p&gt;The students are already hired and you want to set up a training program, so part of the deal is to figure out how fast they can learn (and/or what they know: who cares which?). Why not pick some easy, medium and hard questions and &lt;strong&gt;give them to them beforehand.&lt;/strong&gt; Why ambush them with questions they might not know, if they can be easily learned (by some)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will see, contrary to what most people imagine, that many of the students will not do very well &lt;strong&gt;even with the questions in hand.&lt;/strong&gt; This way, you'll learn about your students, their knowledge, and their ability to learn.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-11-22T00:36:28.417" />
  <row Id="20464" PostTypeId="2" ParentId="20457" CreationDate="2010-11-22T00:40:34.057" Score="4" ViewCount="" Body="&lt;p&gt;I use an IDE that isn't terminal centric.  I try to maximize the screen real estate of the editor window (on a 1600x1200 screen) and simply avoid horizontal scrolling.  I also don't try to fill up each line, but will use returns at logical points to make the code more readable even when the code might fit on a single line.  For example, when using a fluent style with LINQ:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var prices = context.Foos&#xA;                    .Where( f =&amp;gt; f.Name == &quot;Bar&quot; )&#xA;                    .Select( f =&amp;gt; f.Price );&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Readability, not screen width, ought to be your biggest concern.  Having said that, limiting your line length to the minimum of the people on your team and making sure that people on your team have a reasonable minimum line length is a really good idea.  The last thing you want is people reformatting code (and checking it in) just so they can read it easily.&lt;/p&gt;&#xA;" OwnerUserId="3114" LastActivityDate="2010-11-22T00:40:34.057" CommentCount="3" />
  <row Id="20465" PostTypeId="2" ParentId="20457" CreationDate="2010-11-22T00:51:06.817" Score="0" ViewCount="" Body="&lt;p&gt;80 characters. I programmed a custom key command for Emacs that would resize the window to 160 characters so I could split the screen without having to take my hands off the keyboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I put it somewhere on one of my monitors and I have a couple terminals on another window. Along with Firefox for google/stuff to read during a long compile. I then also have a music player up on the same screen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The more things I can see without having to use Alt+Tab or a mouse the better.&lt;/p&gt;&#xA;" OwnerUserId="3102" LastActivityDate="2010-11-22T00:51:06.817" />
  <row Id="20466" PostTypeId="1" AcceptedAnswerId="20493" CreationDate="2010-11-22T00:51:18.050" Score="5" ViewCount="345" Body="&lt;p&gt;Should i break sql queries in different lines ?For example in the project i am working we have a query that is taking 1600 columns! 1600 + tab chars..&#xA;I wrote queries like this&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;   &quot;SELECT bla , bla2 , bla FROM bla &quot; . &#xA;     &quot;WHERE bla=333 AND bla=2&quot; . &#xA;      &quot;ORDER BY nfdfsd ...&quot;;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But they demanded me to put them in one line and that my style is bad formating&lt;br&gt;&#xA;WHy it is bad practice?&lt;/p&gt;&#xA;" OwnerUserId="5419" LastEditorUserId="5621" LastEditorDisplayName="" LastEditDate="2010-11-22T19:52:37.137" LastActivityDate="2011-02-13T22:25:08.367" Title="Code formatting sql queries" Tags="&lt;sql&gt;&lt;code-formatting&gt;" AnswerCount="7" CommentCount="1" />
  <row Id="20467" PostTypeId="2" ParentId="20457" CreationDate="2010-11-22T00:55:59.273" Score="1" ViewCount="" Body="&lt;p&gt;There is no, one, right answer to this issue. I use 120 characters in my IDE, but 80 is an old standby. If your code is consistently longer than your display width it could mean the width is too narrow, or your code needs some attention. Keeping line lengths sane is important for code readability. Some will object to anything above 80 because of issues with printing code, but I respond to those concerns by asking why anyone is printing code on paper that isn't going into a book on programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless of the width you choose, it is more important to make sure your code makes sense and that you aren't cramming more than what's necessary into a single line. If you have lots of long lines of code you may be &quot;doing it wrong.&quot; If you can justify a line of code that is 80 characters wide or 120 characters wide then go for it.&lt;/p&gt;&#xA;" OwnerUserId="8193" LastActivityDate="2010-11-22T00:55:59.273" />
  <row Id="20468" PostTypeId="2" ParentId="20385" CreationDate="2010-11-22T01:10:41.523" Score="2" ViewCount="" Body="&lt;p&gt;You should check your local state/province/whatever's laws concerning this issue as a first step. If the rules are sane and distinguish work done away from work as being only your concern then you are not obligated to tell your boss anything. However, you know your boss better than anyone here will and may already have some clue as to his reaction. As long as no contract or law stands in your way you can do what you want to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the past I have not shared with employers when I did work on my time that was not relevant to them. And, I don't share with clients information about work I do for other clients or my employer when it isn't relevant. Unless the work you are doing could create a conflict of interest I'd just keep it to yourself.&lt;/p&gt;&#xA;" OwnerUserId="8193" LastActivityDate="2010-11-22T01:10:41.523" />
  <row Id="20469" PostTypeId="2" ParentId="20466" CreationDate="2010-11-22T01:11:56.513" Score="6" ViewCount="" Body="&lt;p&gt;A query that is 1600 columns sounds like it needs some serious review by a good DBA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a query is complex I'll wrap it. If it's straightforward I'll leave it as a single line unless it's going to be too long, then I'll start wrapping it again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's all about manageability and comprehending what it is supposed to do so wrapping or not wrapping can be decided on the fly, unless your organization has some code formatting rules about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Re: it being bad coding practice. Hardly! It's very good practice. There are no good reasons I know of to use a query that long, and many good reasons to reformat it. As I said before, a skilled DBA probably needs to work on it.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-11-22T01:11:56.513" CommentCount="8" />
  <row Id="20470" PostTypeId="2" ParentId="20457" CreationDate="2010-11-22T01:14:49.490" Score="0" ViewCount="" Body="&lt;p&gt;Discarding the margins both left and right, the central column of this very page, programmers.stackexchange.com appears to be 80 characters wide.  I guess the reason behind that could be easy on eyes or something similar.  Or, it could be because text based programs normally use 80 character width.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-11-22T01:14:49.490" CommentCount="4" />
  <row Id="20471" PostTypeId="2" ParentId="20450" CreationDate="2010-11-22T01:17:03.920" Score="6" ViewCount="" Body="&lt;p&gt;I heard that the &lt;a href=&quot;http://joelonsoftware.com/&quot; rel=&quot;nofollow&quot;&gt;person who wrote that article&lt;/a&gt; has a &lt;a href=&quot;http://training.fogcreek.com/&quot; rel=&quot;nofollow&quot;&gt;training video course&lt;/a&gt;. * &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that's a little expensive Mike Gunderloy &lt;a href=&quot;http://apress.com/book/view/9781590599143&quot; rel=&quot;nofollow&quot;&gt;wrote a book&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;* Disclaimer: I am that person.&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="30" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-23T10:27:35.580" LastActivityDate="2010-11-23T10:27:35.580" CommentCount="3" />
  <row Id="20472" PostTypeId="1" CreationDate="2010-11-22T01:22:20.500" Score="6" ViewCount="491" Body="&lt;p&gt;I'm considering using Google App Engine for an online matchmaking (and possibly ranking, not sure) of users in a (currently hypothetical) RTS game. However, I just read &lt;a href=&quot;http://www.carlosble.com/?p=719&quot; rel=&quot;nofollow&quot;&gt;this bad review&lt;/a&gt;, which has made me nervous. Which problems have they solved (or are planning to solve), which might be an issue for me, and are there any alternatives?&lt;/p&gt;&#xA;" OwnerUserId="4238" LastActivityDate="2010-11-25T20:08:34.033" Title="Google App Engine -- should we use it?" Tags="&lt;google-app-engine&gt;" AnswerCount="7" FavoriteCount="2" />
  <row Id="20473" PostTypeId="2" ParentId="20385" CreationDate="2010-11-22T01:28:56.420" Score="4" ViewCount="" Body="&lt;p&gt;My written employment agreement states that I'll get permission from my boss before taking outside employment. That included when I ran for election (after he stopped laughing hysterically [oddly enough, my father also laughed hysterically when I told him I was standing for office], he said yes). Things that the company has accepted co-workers for outside employment include part-time retail (that guy is paying for 3 divorces) and part-time schlepping boxes at UPS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether you think it is the business of my boss (and I don't think it is), the argument is that they don't want your side work affecting your main job's performance. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-22T01:28:56.420" />
  <row Id="20474" PostTypeId="2" ParentId="163" CreationDate="2010-11-22T01:31:52.040" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321146530&quot; rel=&quot;nofollow&quot;&gt;Test-Driven Development: By Example&lt;/a&gt; by Kent Beck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A super introduction to TDD. Got me started on the TDD path. Code samples are Java, but the material is otherwise very language-agnostic.&lt;/p&gt;&#xA;" OwnerUserId="8187" LastActivityDate="2010-11-22T01:31:52.040" />
  <row Id="20475" PostTypeId="2" ParentId="20427" CreationDate="2010-11-22T01:40:18.470" Score="0" ViewCount="" Body="&lt;p&gt;It depends on what kind of job you are trying to get, really, as well as who is doing the choosing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, were I hiring a junior coder, I'd look mostly for mindset and only expect them to know a language or two.  Were I hiring a lead coder, I'd want to see a laundry list of languages, as those who haven't worked in many languages invariably have no clue about language design, and it is my personal philosophy that someone who understands at least the basics of language design is a much better big picture sort of coder.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-22T01:40:18.470" />
  <row Id="20476" PostTypeId="1" CreationDate="2010-11-22T01:42:37.723" Score="34" ViewCount="1459" Body="&lt;p&gt;Where I come from software is considered something you can get for free (same goes for movies, etc.) The willingness not to pay for software is quite strong. It is putting me off, that people would rather go through hoops and risk legal issues than to pay a small amount of money for a piece of software. This attitude is somehow embedded in the society. I'm just trying to understand the situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think is causing this? Why won't some people pay for software even if it's cheap and they use it every day?&lt;/p&gt;&#xA;" OwnerUserId="4852" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2010-11-22T16:35:49.943" LastActivityDate="2010-12-20T06:09:00.560" Title="Why is it so hard to get people to pay for software?" Tags="&lt;software&gt;&lt;paying&gt;" AnswerCount="20" CommentCount="1" FavoriteCount="9" />
  <row Id="20477" PostTypeId="2" ParentId="20476" CreationDate="2010-11-22T01:48:02.863" Score="51" ViewCount="" Body="&lt;p&gt;I think part of the issue is that when you bootleg software, movies, etc. you only deprive someone of a potential sale.  The person selling the goods is no worse off than if you had simply done without it.  When you steal a physical good, you actually deprive someone of that good.  The person is worse off than if you had simply done without it, because they no longer have the good.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-22T01:48:02.863" CommentCount="17" />
  <row Id="20478" PostTypeId="2" ParentId="18751" CreationDate="2010-11-22T01:48:39.037" Score="0" ViewCount="" Body="&lt;p&gt;If an application is your cup of tea,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try CaliberRM from (inprise?) Borland. It's a bit painful, and acts somewhat like another digital ghetto,&#xA;but has reporting and traceability,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've used it for a number of real projects, and apart from the excessive price (30k per seat IIRC) it sort of worked.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-11-22T01:48:39.037" />
  <row Id="20479" PostTypeId="2" ParentId="20476" CreationDate="2010-11-22T01:51:19.100" Score="16" ViewCount="" Body="&lt;p&gt;I think a big part of it is the act of duplication. And this goes for all forms of IP, not just software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thought process is basically this: &quot;If I take a program/movie/song/whatever, and make a copy of it, there are now 2 of them instead of 1. And the person who had the first copy still has it, they haven't lost anything!&quot; - This is quite different to tangible items. For example, if someone takes your bicycle, you no longer have the bicycle, it was stolen from you. Not so with IP duplication.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The consequence of this is that it's very easy to think &quot;eh, I just want to get this program/song/movie and try it out&quot;. Since the copy is free and nobody &quot;loses&quot; anything directly, it feels like a harmless move. &lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-22T01:51:19.100" CommentCount="7" />
  <row Id="20480" PostTypeId="2" ParentId="17929" CreationDate="2010-11-22T02:09:40.793" Score="1" ViewCount="" Body="&lt;p&gt;Web development isn't necessarily &lt;em&gt;worse&lt;/em&gt;, it's just very different.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the things that separates web development from desktop development is the plethora of radically different technologies you have to master in order to develop a decently complex application.  I mean, you basically need to have a strong knowledge of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;HTML&lt;/li&gt;&#xA;&lt;li&gt;Javascript&lt;/li&gt;&#xA;&lt;li&gt;CSS&lt;/li&gt;&#xA;&lt;li&gt;Some server-side language&#xA;(Java/PHP/whatever...)&lt;/li&gt;&#xA;&lt;li&gt;An RDBMS (or some persistent store&#xA;technology)&lt;/li&gt;&#xA;&lt;li&gt;...and possibly many other things&#xA;like Flash, Silverlight, etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Whereas, with desktop development you're usually working with a much more monolithic set of technologies.  For example, developing a Java app basically requires you to know Java, and that's it.  (Of course, that's somewhat of a simplification, but the point is web development exposes you to a much wider range of radically different technologies that need to work together to form a functioning application.)&lt;/p&gt;&#xA;" OwnerUserId="7733" LastEditorUserId="7733" LastEditorDisplayName="" LastEditDate="2010-11-22T02:16:40.283" LastActivityDate="2010-11-22T02:16:40.283" />
  <row Id="20483" PostTypeId="2" ParentId="14824" CreationDate="2010-11-22T02:21:26.687" Score="1" ViewCount="" Body="&lt;p&gt;Hi,&#xA;This i a late response that I'm typing on my kinesis advantage. I've uses these keyboards for several years. I have three of them and would use non other. I used to have RSI issues while using a regular keyboard and mouse. Hence, I use a Cirque touch pad (ergonomictouchpad.com) mounted in the center of the keyboard. This proves to be a great arrangement. It took me a couple of days to a week to get used to the keyboard. It is easy to get accustomed to it. Once you get used to it you would never go back to a regular keyboard. The macro feature is fantastic. I program several macro's to perform repetitive typing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This keyboard saved my career. I'm a professional software engineer/architect. Although these keyboard cost a couple of hundred dollars, the cost is nothing compared to the earnings of an entire career and saving your career.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-22T02:21:26.687" />
  <row Id="20485" PostTypeId="2" ParentId="20472" CreationDate="2010-11-22T02:27:04.713" Score="3" ViewCount="" Body="&lt;p&gt;Google App Engine uses a NO-SQL data store---you should read up on that concept, and decide if it sounds like a good fit for your needs.  From that review, it sounds like that is the main issue the reviewer had with GAE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a certain amount of vendor-lock-in with GAE.  You end up writing code to target a specific environment.  You could certainly migrate off of GAE in the future, but it would likely require at least &lt;em&gt;some&lt;/em&gt; code change.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should also plan to code import/export features so that you can get your data out of GAE, and into a new system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you understand how GAE differs from a standard environment that you might set up if you were to get a stock linux server or VM, you will be able to decide if it fits your needs.  There are some definite advantages to GAE, especially in the cost arenas (you don't need to pay for hardware or infrastructure management until your site get popular, when hopefully it will be able to pay for those costs).  Just be sure you do the due diligence and research before jumping in.&lt;/p&gt;&#xA;" OwnerUserId="1466" LastActivityDate="2010-11-22T02:27:04.713" CommentCount="1" />
  <row Id="20487" PostTypeId="2" ParentId="20472" CreationDate="2010-11-22T02:36:22.897" Score="1" ViewCount="" Body="&lt;p&gt;The only issue I have with GAE is the Data Store. The vendor lock-in of GAE is also a problem but you can get around it by using Django-nonrel (if you're using Python and Django). Aside from that, GAE is viable because it's fast, can serve a lot of users without fail, and is cost-efficient. It's perfect for startups since they don't risk having to buy their own hardware early on.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-11-22T02:36:22.897" />
  <row Id="20488" PostTypeId="2" ParentId="20457" CreationDate="2010-11-22T02:44:52.770" Score="0" ViewCount="" Body="&lt;p&gt;This dates back to the quaint old days of paper printout.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, it's easier to just get some more screens. (They only come in wide these days.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;lt;I'm not really this fogey&amp;gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You try getting green bar paper for your 132 column printer. &#xA;It ain't as cheap as the 80 column greenbar. &#xA;(And you can't get 200 column greenbar, so you can't print that code.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;lt;/I'm not really this fogey&amp;gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Old fogies (like me) refer to greenbar, which is paper with preprinted green bars on alternate 3-lines. Classy greenbar even discreetly numbered the lines.&#xA;The paper has tractor feed holes on the edges, for the printer, and is in continuous sheets, with perforations every page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The bars aren't necessarily green, they can also be yellow, and I've seen an orange-ey yellow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The edges of the bar are 100% saturation, and the fill is about 25%.&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-11-22T02:44:52.770" CommentCount="1" />
  <row Id="20489" PostTypeId="2" ParentId="20472" CreationDate="2010-11-22T03:01:21.947" Score="1" ViewCount="" Body="&lt;p&gt;That review is spot on. I use GAE a lot and it's fantastic for a lot of things. If any of those issues are a deal-breaker then you'll need to move on. If you can deal with those issues then you will have a very scalable application on your hands. I think it may be a good match for your domain, though. If you have any specific questions feel free to ask, just don't try to make bigtable behave like a relational database.&lt;/p&gt;&#xA;" OwnerUserId="2006" LastActivityDate="2010-11-22T03:01:21.947" />
  <row Id="20490" PostTypeId="2" ParentId="20466" CreationDate="2010-11-22T03:32:34.027" Score="2" ViewCount="" Body="&lt;p&gt;The only advantage of single line queries that comes to mind is that those queries may be somewhat easier to grep for.  Other than that, though, I am stumped.  Personally, I prefer the more readable, split up queries.&lt;/p&gt;&#xA;" OwnerUserId="7222" LastActivityDate="2010-11-22T03:32:34.027" />
  <row Id="20491" PostTypeId="2" ParentId="20407" CreationDate="2010-11-22T03:35:21.733" Score="130" ViewCount="" Body="&lt;h1&gt;Yes&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Come on, seriously: look at &lt;a href=&quot;http://stackoverflow.com/users&quot;&gt;the first page or two of Stack Overflow users&lt;/a&gt;. Pick anyone at random. Look at three or four of the highly voted answers they wrote. If you've ever hired a programmer in your life, it's obvious those people are all some of the best programmers you could ever hire.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then keep going deeper and deeper. Scroll to page 5. Edit the URL and go right to page 100 where they have reputations in the 3000 range. Look at everyone. With the very rare exception of someone who got a lot of points for a silly answer, these are all obvious superstar programmers... the kind that most teams would kill for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will this actually get them jobs? Ultimately, &lt;a href=&quot;http://careers.stackoverflow.com/&quot;&gt;we're betting it will&lt;/a&gt;. You'll have to find a company where there are actual technical people making hiring decisions, not resume-reading-monkey-recruiters. And you may have to find a city to live in where there are a lot of good programming jobs: if you really, really don't want to leave Roswell, New Mexico, you'll be limited to a vanishingly small number of telecommuting jobs. But if you're in the top, say, 5000 Stack Overflow users, and you can work in Silicon Valley, New York, Seattle, Boston, Austin, Research Triangle, London, Hyderabad, Bangalore, Sydney, Beijing, or Tel Aviv, I would be &lt;strong&gt;extremely&lt;/strong&gt; surprised if you aren't in high demand and earning in the top 10 percentile.&lt;/p&gt;&#xA;" OwnerUserId="30" LastEditorUserId="30" LastEditorDisplayName="" LastEditDate="2010-11-22T03:58:21.923" LastActivityDate="2010-11-22T03:58:21.923" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="33" />
  <row Id="20492" PostTypeId="2" ParentId="20457" CreationDate="2010-11-22T03:41:21.387" Score="0" ViewCount="" Body="&lt;p&gt;Older compilers preferred 71 charcters so that is a good thumb rule.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-22T03:41:21.387" />
  <row Id="20493" PostTypeId="2" ParentId="20466" CreationDate="2010-11-22T03:41:56.660" Score="16" ViewCount="" Body="&lt;p&gt;For source control reasons, we have linebreaks after every where clause, or comma. So your above turns into  &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;SELECT bla &#xA;     , bla2 &#xA;     , bla &#xA;FROM   bla &#xA;WHERE  bla=333 &#xA;  AND  bla=2&#xA;ORDER  BY nfdfsd&#xA;        , asdlfk;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(tabbing and alignment has no standard here, but commas are usually leading)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, makes no performance difference.&lt;/p&gt;&#xA;" OwnerUserId="965" LastEditorUserId="965" LastEditorDisplayName="" LastEditDate="2011-02-13T22:25:08.367" LastActivityDate="2011-02-13T22:25:08.367" CommentCount="10" />
  <row Id="20494" PostTypeId="1" AcceptedAnswerId="20507" CreationDate="2010-11-22T03:47:29.980" Score="5" ViewCount="465" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/56585/where-do-you-declare-variables-the-top-of-a-method-or-when-you-need-them&quot;&gt;Where do you declare variables? The top of a method or when you need them?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Hi there&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to know which is better in practice to declare your variable later or earlier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lets say you have a Function.&#xA;you declare your variable in line 1.&#xA;you actually use your variable in line 50.&#xA;do you prefer to declare just above it which is line 49?&lt;/p&gt;&#xA;" OwnerUserId="6450" LastActivityDate="2010-11-30T09:56:42.507" ClosedDate="2011-04-18T19:14:28.830" Title="Declaring Variables early or later?" Tags="&lt;best-practices&gt;&lt;variables&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="1" />
  <row Id="20495" PostTypeId="2" ParentId="19842" CreationDate="2010-11-22T03:51:12.413" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;The entire F# system (compiler, libraries and tools)&lt;/li&gt;&#xA;&lt;li&gt;IronJS (already mentioned)&lt;/li&gt;&#xA;&lt;li&gt;The XBox Live TrueSkill algorithm, as well as the whole Achievements system, the ranking system and the matchmaking system surrounding it&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I guess the main reason why there are no &quot;well-known&quot; applications written in F#, is because it takes years, even &lt;em&gt;decades&lt;/em&gt; to become &quot;well-known&quot; and F# simply isn't that old yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the overwhelming majority of applications are not &quot;well-known&quot;. There is only one PowerPoint, but there are literally millions of hand-written custom little one-off in-house payroll apps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And F# is certainly used in-house in many financial companies, doing scientific and numeric computing in, say, biotech or greentech, doing statistics god knows where and so on. These applications aren't well-known, either because they simply aren't &quot;sexy&quot; or often because the companies consider F# their secret weapon which gives them a competitive edge. (OCaml, Smalltalk and APL fill similar roles. Many financial companies use APL, for example, but they don't widely publicize it. Indeed, oftentimes the APL users aren't even programmers, and thus wouldn't even know where and how to publicize it even if they wanted to.)&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-11-22T03:51:12.413" CommentCount="2" />
  <row Id="20496" PostTypeId="2" ParentId="20494" CreationDate="2010-11-22T03:52:27.983" Score="7" ViewCount="" Body="&lt;p&gt;It depends on whether the variable is used throughout the function or not. If it is used throughout the function then declare it at the top. Otherwise declare it as close to the place where it is going to be used as possible. The rule of thumb is to &lt;em&gt;keep variable scope as tight as possible&lt;/em&gt;. &lt;/p&gt;&#xA;" OwnerUserId="3262" LastEditorUserId="3262" LastEditorDisplayName="" LastEditDate="2010-11-22T03:57:37.713" LastActivityDate="2010-11-22T03:57:37.713" />
  <row Id="20497" PostTypeId="2" ParentId="20494" CreationDate="2010-11-22T03:53:48.307" Score="3" ViewCount="" Body="&lt;p&gt;Later Later later.. Declare it at line 49, there may be several lines between 1 to 49 which might cause the variable not to be used or the function returns before it is used. Also it helps me remember stuff which is recently declared rather than scrollup and find out what is it and what is the comment for that declaration.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-22T03:53:48.307" />
  <row Id="20498" PostTypeId="2" ParentId="20494" CreationDate="2010-11-22T03:56:14.530" Score="2" ViewCount="" Body="&lt;p&gt;I would go with declaring it later as it should have the shortest life span&lt;/p&gt;&#xA;" LastActivityDate="2010-11-22T03:56:14.530" />
  <row Id="20499" PostTypeId="2" ParentId="20407" CreationDate="2010-11-22T03:58:16.107" Score="6" ViewCount="" Body="&lt;p&gt;If you're looking for a good paying job, my recommendations are as follows:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Love what you do and be passionate about it.&lt;/li&gt;&#xA;&lt;li&gt;Educate yourself, don't fools others - Most people neglect the fundamentals and jump into the advance stuff thinking it'll make them look smart. All tall buildings are built upon a stable foundation.&lt;/li&gt;&#xA;&lt;li&gt;Know your worth - Don't accept a job only because the employeer said they want to hire you. It's a two way street. What are they offering you long term? Is there growth? Does the work appeal to you?&lt;/li&gt;&#xA;&lt;li&gt;Good pay is subjective, so know what you're willing to accept and settle for nothing less.&lt;/li&gt;&#xA;&lt;li&gt;Build a reputation! Speak at conferences, Write articles, commit to Open Source projects&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Don't be lazy. Just because someone will Google your name up and find out you answered a million questions on stackexchange.com that it makes you any way qualified for more money. Any code monkey can use Google to answer a question. Problem solving, strong technical knowledge, good personal skills, etc. make the world of difference when it comes to money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not perfect. Just perfect enough to know I'm good, but I'm not sure how good. &lt;/p&gt;&#xA;" OwnerUserId="8208" LastActivityDate="2010-11-22T03:58:16.107" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="1" />
  <row Id="20500" PostTypeId="2" ParentId="20472" CreationDate="2010-11-22T04:01:00.393" Score="1" ViewCount="" Body="&lt;p&gt;It all depends, if you don't want to do lot of coding for base services like caching, emails and all that then you are better off with Google app engine, else you should go with Amazon EC2 or Rackspace.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, not to forget, Amazon EC2 has a micro plan which is free for 1 year starting Nov-1&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check this out : &lt;a href=&quot;http://www.buzzingup.com/2010/10/amazon-announces-free-cloud-services-for-new-developers/&quot; rel=&quot;nofollow&quot;&gt;http://www.buzzingup.com/2010/10/amazon-announces-free-cloud-services-for-new-developers/&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-11-22T04:01:00.393" />
  <row Id="20501" PostTypeId="2" ParentId="20494" CreationDate="2010-11-22T04:01:45.723" Score="3" ViewCount="" Body="&lt;p&gt;Limit any given variable to the smallest scope that will do the job.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-22T04:01:45.723" />
  <row Id="20502" PostTypeId="2" ParentId="20494" CreationDate="2010-11-22T04:09:39.107" Score="4" ViewCount="" Body="&lt;p&gt;I declare variables at &lt;em&gt;the top of the smallest possible scope&lt;/em&gt; they are going to be used in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;List&amp;lt;string&amp;gt; DoSomething()&#xA;{&#xA;&#xA;    // Declare list&#xA;    List&amp;lt;string&amp;gt; list = databaseItems.Where(x =&amp;gt; x.State == &quot;CA&quot;);&#xA;&#xA;    // Declare item&#xA;    foreach (var item in list)&#xA;    {&#xA;        // Declare tempString&#xA;        var tempString = String.Empty;&#xA;&#xA;        // Do something with tempString and item&#xA;    }&#xA;&#xA;    return list;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;..and so on.  As you can see, the structure of C# follows this pattern naturally anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's used throughout the method, it should be declared at the &lt;em&gt;top of the method&lt;/em&gt;, never in the middle.  It is useful to cluster together all of the variables being used by a particular scope.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-22T22:26:28.313" LastActivityDate="2010-11-22T22:26:28.313" CommentCount="2" />
  <row Id="20503" PostTypeId="2" ParentId="20407" CreationDate="2010-11-22T04:09:43.467" Score="16" ViewCount="" Body="&lt;p&gt;I personally turned a sizable Stack Overflow rep and a higher (relative to the site) Hacker News reputation into a job, though I do not make $100K/year (which as a number matters more depending on the location of the job). SO and HN gave me a 'body of work' that showed off that I was passionate about my work, able to relate to others, demonstrate some level of technical competence, understand people's problems and clearly communicate solutions. And since the job is as a Developer Evangelist, these are all highly-desirable skills for that position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tweeted the other day that the perfect resume would be your Stack Overflow profile and your GitHub profile plus some other social interaction history like Hacker News or Twitter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. If this sounds like you, &lt;a href=&quot;http://www.twilio.com/company/jobs&quot; rel=&quot;nofollow&quot;&gt;we're hiring&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1342" LastEditorUserId="1342" LastEditorDisplayName="" LastEditDate="2010-11-22T04:15:43.787" LastActivityDate="2010-11-22T04:15:43.787" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="2" />
  <row Id="20504" PostTypeId="2" ParentId="20494" CreationDate="2010-11-22T04:12:45.770" Score="-1" ViewCount="" Body="&lt;p&gt;I'll take stand against declaring it later. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think putting ALL variable declarations at the top of a function (with the exception of i,j,k used in for loops) improves readability. Variable declarations at the top of the page help improve &quot;self-documenting&quot; code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This gives the programmer or future programmers a good indication on what the function is doing before he reads past line 10.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-11-22T04:12:45.770" CommentCount="6" />
  <row Id="20505" PostTypeId="2" ParentId="20476" CreationDate="2010-11-22T04:12:58.823" Score="8" ViewCount="" Body="&lt;p&gt;Its economics 101: the marginal cost of producing software is 0, and people are used to roughly estimating value by marginal cost (along with the comparative prices of other similar goods).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's lots of free software available, and it costs nothing to duplicate any software. So, in general, people don't see much value in it unless it very obviously benefits them. &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Expanded answer : how do you make money from software?&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Jon asked a good question - if there's no profit, why would anyone supply software?&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Background : supply, demand and equilibrium&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Most people know that supply and demand work together to determine price: this is almost intuitively obvious. But the 'how' is a bit more complex than that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over &lt;em&gt;the long term&lt;/em&gt; in an &lt;strong&gt;efficient market&lt;/strong&gt;, price will end up being approximately equal to marginal cost (that is, the cost of making the last unit). This is called equilibrium. This happens because whenever the price is higher that the marginal cost, competitors will move into the market and price their product between the marginal cost and the orginal price. This continues to happen until P = mc.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;So how do you make a profit?&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Market equilibrium doesn't happen immediately. If you release a product with no direct competitors, it takes time for others to create competing products. During that phase you charge whatever you want (this is essentially a temporary monopoly). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How hard it is for competitors to turn up is known as the 'barrier to entry'. In a highly efficent market, barriers to entry are low and competitors arrive quickly, pushing down price.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you have basically two strategies for making a profit:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You continually come up with awesome new products and ride them until the market catches up, then move on to the next thing&lt;/li&gt;&#xA;&lt;li&gt;You do whatever you can to increase the barriers to entry&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The second point can be done a few ways: some legal, some not. For example, you can buy up all your competitors, but at some stage you'll attract the attention of the regulators. Or, you can make products so &lt;em&gt;well&lt;/em&gt; or so &lt;em&gt;complicated&lt;/em&gt; that they're hard to compete with. Or you can look at ways of locking in customers so switching is difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the long run though, price will tend towards marginal cost. You're delaying the inevitable, but you might make a lot of money in the process.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;The third way&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;The third way to make money &quot;off software&quot; is to use it as a loss-leader, and make your money off a complimentary product: eg service and support.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Final thoughts&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;It's important to note that this is true for all products, basically. Even those with non-zero marginal costs. Whenever P = mc, there's no profit. The reason that the service industry is so attractive is because it's relatively easy to differentiate your service and hence charge a premium for it. &lt;/p&gt;&#xA;" OwnerUserId="5668" LastEditorUserId="5668" LastEditorDisplayName="" LastEditDate="2010-11-23T02:46:26.687" LastActivityDate="2010-11-23T02:46:26.687" CommentCount="6" />
  <row Id="20506" PostTypeId="2" ParentId="20363" CreationDate="2010-11-22T04:16:26.807" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://Blip.TV/file/1472720/&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;50 in 50&lt;/em&gt;&lt;/a&gt; by Guy L. Steele, Jr. and Richard &quot;Dick&quot; P. Gabriel. If you have seen either Dick Gabriel or Guy Steele speak, you might think you can imagine what an experience this is going to be. You're wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Describing it as &quot;Live Multimedia Performance Art Poetry Slam&quot; doesn't even come close to doing it justice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The topic of this &quot;talk&quot; is to celebrate 50 historically important, relevant, interesting, strange, curious and sometimes just plain silly programming languages in 50 words each.&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-11-22T04:16:26.807" CommunityOwnedDate="2010-11-22T04:16:26.807" CommentCount="1" />
  <row Id="20507" PostTypeId="2" ParentId="20494" CreationDate="2010-11-22T04:18:37.277" Score="17" ViewCount="" Body="&lt;p&gt;I would try to not make 50 line methods ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer declaring variables as close as possible to it's first use, this is refactoring friendly (and can thus give an advantage when reducing method length).&lt;/p&gt;&#xA;" OwnerUserId="3309" LastActivityDate="2010-11-22T04:18:37.277" CommentCount="11" />
  <row Id="20508" PostTypeId="2" ParentId="20466" CreationDate="2010-11-22T04:20:26.930" Score="1" ViewCount="" Body="&lt;p&gt;I often use the format put forth by @glasnt to troubleshoot a complicated query, however usually have queries in a single line.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This might not answer your question, but I'd also strongly suggest breaking down your query into smaller queries. Obviously this depends on the query, but the more clauses and joins you add to your query - the less the SQL engine is able to optimise your query.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your database vendor should have tools like MySQL's EXPLAIN (or MSSQL's SHOWPLAN_ALL setting) which will show you what the database is doing behind the scenes to optimise your query, every time the database has to create a temporary table or some such, you're adding huge delays when you're talking about multiple concurrent users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By moving what might seem like trivial logic out of the SQL and into your code, you can provide dramatic performance increases - SQL is great at simple operations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The obvious benefit to this as it might relate to you, is that your queries are much less complex and easy to read - easy to manage (not &gt;1600 columns), and faster. Definately an all-round win.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps :)&lt;/p&gt;&#xA;" OwnerUserId="7641" LastActivityDate="2010-11-22T04:20:26.930" />
  <row Id="20509" PostTypeId="2" ParentId="20476" CreationDate="2010-11-22T04:24:51.173" Score="1" ViewCount="" Body="&lt;p&gt;Most of the time, it's about the culture i.e. the big environment instead of the price itself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the case of donation to Wikipedia, I believe it's somehow related to pluralistic ignorance in social psychology. People choose to think others (many of them) may donate, so they don't have to.&lt;/p&gt;&#xA;" OwnerUserId="8214" LastActivityDate="2010-11-22T04:24:51.173" />
  <row Id="20510" PostTypeId="2" ParentId="20494" CreationDate="2010-11-22T04:43:35.813" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It depends.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In most languages, you'll want to follow the &lt;a href=&quot;http://www.cc2e.com/&quot; rel=&quot;nofollow&quot;&gt;Code Complete&lt;/a&gt; method of declaring variables closest to where they're first used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, in certain languages, like JavaScript, where there's no such thing as block-level scope, it's best to declare variables at the top of the function.  If you declare your variables within blocks, you might mislead programmers who are used to other C-like languages.&lt;/p&gt;&#xA;" OwnerUserId="2346" LastActivityDate="2010-11-22T04:43:35.813" CommentCount="3" />
  <row Id="20511" PostTypeId="2" ParentId="19963" CreationDate="2010-11-22T04:53:57.010" Score="0" ViewCount="" Body="&lt;p&gt;Check out WSF: &lt;a href=&quot;http://wso2.com/products/web-services-framework/php/&quot; rel=&quot;nofollow&quot;&gt;http://wso2.com/products/web-services-framework/php/&lt;/a&gt;  &lt;/p&gt;&#xA;" OwnerUserId="5123" LastActivityDate="2010-11-22T04:53:57.010" />
  <row Id="20512" PostTypeId="1" AcceptedAnswerId="20514" CreationDate="2010-11-22T04:59:17.553" Score="1" ViewCount="94" Body="&lt;p&gt;If anyone had looked at 'Essential PHP security' I want someting near to that, simple and easy to follow and focus on important secruity issues, I need one for ASP.NET, could you recommened me a good one?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks. &lt;/p&gt;&#xA;" OwnerUserId="26782" LastActivityDate="2010-11-22T05:08:33.300" Title="A good and simple ASP.NET security book?" Tags="&lt;asp.net&gt;&lt;security&gt;" AnswerCount="1" />
  <row Id="20513" PostTypeId="2" ParentId="20080" CreationDate="2010-11-22T05:02:42.463" Score="3" ViewCount="" Body="&lt;p&gt;I try to avoid the use of isset() and empty() by avoiding the use of arrays as data transfer objects.  Create a class that can be configured to accept a limited set of properties with sane defaults and validate input to those properties.  It can even implement the ArrayAccess interface so you can use it like an array.  This also allows you to use type hinting in your method signatures to catch errors when someone attempts to pass the wrong type of entity to your method.&lt;/p&gt;&#xA;" OwnerUserId="5123" LastActivityDate="2010-11-22T05:02:42.463" CommentCount="1" />
  <row Id="20514" PostTypeId="2" ParentId="20512" CreationDate="2010-11-22T05:08:33.300" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0470743654&quot; rel=&quot;nofollow&quot;&gt;Beginning ASP.NET Security&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Also, although not a book, but a good resource is security tutorials section on the &lt;a href=&quot;http://www.asp.net/security/tutorials&quot; rel=&quot;nofollow&quot;&gt;ASP.NET&lt;/a&gt; site &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-11-22T05:08:33.300" />
  <row Id="20515" PostTypeId="2" ParentId="20407" CreationDate="2010-11-22T05:22:46.453" Score="3" ViewCount="" Body="&lt;p&gt;A nice opportunity, your skills and (hopefully) a good recruiter will get you the job. Reputation in SO (or others) is as likely to help you as to fire back at you. There's many ego wars going on in here...&lt;/p&gt;&#xA;" OwnerUserId="5403" LastActivityDate="2010-11-22T05:22:46.453" CommunityOwnedDate="2011-01-17T22:21:44.413" />
  <row Id="20516" PostTypeId="2" ParentId="20369" CreationDate="2010-11-22T05:29:02.873" Score="0" ViewCount="" Body="&lt;p&gt;Short term; I don't know what the hiring practices are in the US, but considering you are moving in 6~12 months I would, for the time being, consider sticking with PHP since you have two years of experience with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My experience here (in the Netherlands) is that companies tend to have a very short term focus on technologies and framework experience. &#xA;The language is really not -it-, even if they are asking &quot;&lt;em&gt;3 years of C# experience&lt;/em&gt;&quot; they mean to say &quot;&lt;em&gt;3 years experience with the framework/class libraries and tools you'd be using with C#&lt;/em&gt;&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Otherwise, why they want to hire anyone needing 3 years to learn C# syntax and language features is beyond me. It sounds like someone I wouldn't want to hire.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning new languages; static, dynamic, functional, is of great value when it comes to broadening your perspectives. However learning the relevant class libraries and way of doing things in that language will require experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd recommend coming to a decision picking one technology stack and learning it deeply. Use the other environments for inspiration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course personal preference comes into play also. For instance, while there is plenty of market for it, I would never ever accept a PHP job :-P I choose a stack and I job hunt based on that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for making a career, long term, I think you should look beyond coding (in the end it's all about learning and being able to read and/or skim documentation) and the technology of the day and look more into soft skills and such. Technologies come and go rather quickly.&#xA;Of course there is a lot to learn when it comes to good practices and more general know-how, unfortunately they are rarely looked for on the job market in my experience.&lt;/p&gt;&#xA;" OwnerUserId="3309" LastActivityDate="2010-11-22T05:29:02.873" />
  <row Id="20517" PostTypeId="2" ParentId="18751" CreationDate="2010-11-22T05:29:17.900" Score="0" ViewCount="" Body="&lt;p&gt;I create test suites where the test methods map to requirements.  This allows me to make sure I don't break existing functionality/requirements when I make changes.  I suppose you could generate a listing of method added over time to reflect added functionality.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-11-22T05:29:17.900" />
  <row Id="20518" PostTypeId="2" ParentId="20466" CreationDate="2010-11-22T05:32:26.773" Score="4" ViewCount="" Body="&lt;p&gt;Multiline comments are good, almost vital when dealing with large volumes of SQL. And if your programming language has heredoc quotes, it's even better (as many editors can highlight SQL syntax in them).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$a = SQL&amp;lt;&amp;lt;&amp;lt;&#xA;    SELECT a, b, c, d&#xA;    FROM Foo f&#xA;    WHERE f.a = ?&#xA;SQL;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;When working with queries of dozens of lines (or hundreds) both the indentation and whitespace make the text workable.&lt;/p&gt;&#xA;" OwnerUserId="8151" LastActivityDate="2010-11-22T05:32:26.773" CommentCount="2" />
  <row Id="20519" PostTypeId="2" ParentId="20427" CreationDate="2010-11-22T05:45:27.357" Score="1" ViewCount="" Body="&lt;p&gt;The number of languages on your resume is irrelevant.  Having the languages on your resume that your employer uses is what's important, and even that is negotiable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've passed on people who &quot;knew the language&quot; in favor of someone with a good foundation in Computer Science and knowledge of a programming language &quot;close&quot; to the one we use.  Learning a language's syntax is often trivial.  Learning the language idioms, and standard approaches usually take more time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW I only put languages I'm current with in my resume.  You won't see eiffel, scheme, C, etc.  I don't put Java on there either, but that's because I dislike using the language.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-11-22T05:45:27.357" />
  <row Id="20520" PostTypeId="2" ParentId="20407" CreationDate="2010-11-22T06:09:27.057" Score="4" ViewCount="" Body="&lt;p&gt;Yes. Maybe less so now, but more so in the future. I'm gainfully employed, but I have had 4 google interviews, and all the front line HR people asked me questions that they could only have learned if they googled me and my contributions in other sites (perhaps the thing that hurts stackexchange is the alias - rather than a direct name response). It's only a matter of time before they make the leap to asking for aliases on sites like stack exchange.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-22T06:09:27.057" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="1" />
  <row Id="20521" PostTypeId="2" ParentId="20476" CreationDate="2010-11-22T06:29:21.413" Score="4" ViewCount="" Body="&lt;p&gt;As a student, I don't really have a way to pay for the software I use or the games I play. I just don't have a disposable income. If I could afford it, I would be glad to purchase them and support the developers. It's just that a lot of software I use is completely out of my price range.&lt;/p&gt;&#xA;" OwnerUserId="7682" LastActivityDate="2010-11-22T06:29:21.413" CommentCount="11" />
  <row Id="20522" PostTypeId="1" CreationDate="2010-11-22T06:32:49.577" Score="3" ViewCount="113" Body="&lt;p&gt;hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am working in iOS app development for the past 6 months. I am bit worried about the wide technologies like android, rim, symbian etc., I am not able to clearly perceive that iPhone and iPads will always be there and relying on this technology alone can be wise for sustaining in mobility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I need advice on these things&lt;/p&gt;&#xA;&#xA;&lt;p&gt;a. Whether it is wise to stay in mobility because it is tough to switch between lots of technologies ?&lt;br/&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;b. New products like appcelarator are capable of creating builds for RIM, iOS and other platforms which makes the work easy but decreases the need for expert of a particular technology. Is this good for a programmer in long term ? &lt;br/&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;c. I have worked in java for around 2 years. And my long term projection is to become a technology architect kind of person. should i still be in mobility ?&lt;/p&gt;&#xA;" OwnerUserId="4388" LastActivityDate="2011-01-25T09:06:12.813" Title="mobile apps for future" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="3" />
  <row Id="20523" PostTypeId="2" ParentId="20407" CreationDate="2010-11-22T06:52:24.270" Score="4" ViewCount="" Body="&lt;p&gt;When I start my own company in the next 1-2 years, high reputation score in stackoverflow will be the 1st criteria for me to hire developers. I hope when that time comes, stackoverflow still serving the humanity.&lt;/p&gt;&#xA;" OwnerUserId="452" LastActivityDate="2010-11-22T06:52:24.270" CommunityOwnedDate="2011-01-17T22:21:44.413" />
  <row Id="20524" PostTypeId="2" ParentId="20476" CreationDate="2010-11-22T07:07:19.400" Score="2" ViewCount="" Body="&lt;p&gt;There is another part of this that you guys are also forgetting. What is the difference if you take a $59.99 video game and walk out of a store from pirating/copying/stealing the same $59.99 game online?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pretty good chance you wont be in handcuffs 10 minutes later from downloading it online.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a side note: I don't care it Piracy is considered Stealing or not, If I made something and you use it or take it from me without paying, you stole it. Plain and simple.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-11-22T07:07:19.400" CommentCount="22" />
  <row Id="20525" PostTypeId="2" ParentId="20476" CreationDate="2010-11-22T07:19:37.130" Score="2" ViewCount="" Body="&lt;p&gt;As long as software publishers charge for every copy of the software instead of simply the labour cost that went into producing it, not many will be interested in paying.  That is why technologies such as HD DVD and BluRay are developed.  They are one way to restrict people from copying and reproducing copies of software, thereby artificially increasing the software reproduction costs many folds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OTOH, the open source and free software world simply charges for the labour cost.  The buyer is free to do whatever they will, of course under the terms and conditions of the license under which they bought the code in the first place.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-11-22T07:19:37.130" CommentCount="15" />
  <row Id="20526" PostTypeId="2" ParentId="20522" CreationDate="2010-11-22T07:23:31.793" Score="5" ViewCount="" Body="&lt;p&gt;a. I got out of it primarily for that reason. but then the people who stuck with it are often making very good pay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;b. I don't believe so. Everything that insulates a programmer from the actual work of coding makes em less of a programmer and more a cog in the machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;c. mobile products need architects too. it depends on where your interests lie.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;overall answer from my perspective: forget working to make a living, and follow your passion, as much as possible. I wish I'd done that 30 years ago.&lt;/p&gt;&#xA;" OwnerUserId="8238" LastActivityDate="2010-11-22T07:23:31.793" CommentCount="1" />
  <row Id="20527" PostTypeId="1" CreationDate="2010-11-22T07:47:31.877" Score="0" ViewCount="41" Body="&lt;p&gt;I use PVCS for my configuration management &#xA;I want &lt;strong&gt;promote&lt;/strong&gt; my files but this button in &lt;a href=&quot;http://pvcs.synergex.com/&quot; rel=&quot;nofollow&quot;&gt;PVCS&lt;/a&gt; is disabled. Any ideas? Please help me.&lt;/p&gt;&#xA;" OwnerUserId="7897" LastActivityDate="2010-11-22T07:47:31.877" ClosedDate="2010-11-23T03:45:29.917" Title="problem with PVCS" Tags="&lt;version-control&gt;" CommentCount="2" />
  <row Id="20528" PostTypeId="2" ParentId="20369" CreationDate="2010-11-22T08:13:48.877" Score="1" ViewCount="" Body="&lt;p&gt;I think that often people mix programming languages and frameworks/technology stacks. It's relatively easy to learn a new language, but's much more difficult with big technologies. I agree with some answers that what is most important is your overall programming/problem solving experience, but I don't believe that anyone can UNDERSTAND a completely new technology in 1 week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, a large portion of developers have never read a single technical book and don't understood the very building blocks of technologies, they are using. They just hack their way out of the problems and are very &quot;successful&quot;. I have myself started career in PHP without even understanding how HTTP works at first. But some employers, which I respect most, are expecting a deep understanding of &quot;how things work&quot;, simply because this tends to increase chances of success of their projects. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The very least you need to do to gain this understanding is to read couple of GOOD books with enough time to prototype solutions to common problems in a new unfamiliar development environment. Is it possible to do in a week? I would love to work with people who are capable of this, but I don't hope to see such people any time soon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some employers actually are ready to give you enough time to gain this understanding, respecting your overall deep technical experience in other technology stacks (if you have one), but unfortunately most are not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, when you are changing technologies, what is most important is your personality - how humble and curious person you are to spend enough time to understand how things work and how things are done in your new area.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to sum up, my answer would be the following. Pick a technology, which has enough potential and which (most importantly) will make you happy in your job. Specialize in this technology, the job market will value this and few years needed to get your target salary will be worth it. But never be overzealous, spend some time with other technologies, it will make you a much better PROFESSIONAL overall.&lt;/p&gt;&#xA;" OwnerUserId="8244" LastActivityDate="2010-11-22T08:13:48.877" />
  <row Id="20529" PostTypeId="2" ParentId="20476" CreationDate="2010-11-22T08:19:37.197" Score="6" ViewCount="" Body="&lt;p&gt;As I said in a comment, there's a lot of people that feel entitled to having a piece of software (be it an advanced piece of image editing software or the latest video game), and feel that it's OK to pirate something if you can't afford it - probably also because pirating something is a lot easier than stealing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There was a discussion years ago about stealing food if you couldn't afford it - I guess this would be something like that, except software isn't a primary requirement for survival. It's a secondary luxury, especially considering there's a lot of free alternatives. Perhaps not as feature-rich or awesome as the paid ones, but still.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A second reason for piracy is that a lot of people don't see any benefit in buying software. The purchased thing does the exact same as the pirated - and in some cases, the pirated one is even easier to install or acquire as the purchased version, for example when there's heavy copy protection on it that does things like require an internet connection or the disk to be inserted into the drive at all times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently, some video games have a very big online component, and it's very difficult or inconvenient to play the game online with a pirated version (or you play in a 'niche market' of a pirated online game, away from the main bulk of online players). This is actually a good way to go against piracy, as buying the product gives a clear advantage over pirating - access to the big online community behind the game. Especially considering most of these games are finished in 6 - 10 hours, while one can spend hundreds on the online component.&lt;/p&gt;&#xA;" OwnerUserId="7705" LastActivityDate="2010-11-22T08:19:37.197" CommentCount="1" />
  <row Id="20530" PostTypeId="2" ParentId="20385" CreationDate="2010-11-22T08:19:59.177" Score="1" ViewCount="" Body="&lt;p&gt;Firstly, honesty never hurt anybody.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, depending on where you are based your local laws will have a big impact. In most western society with a legal system derived from UK common law, the master/servant principle still effectively applies. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The impact of this in practice is that your employer owns your output. The TIME OF DAY at which your output is produced is completely irrelevant to this. Normally, employers will take the reasonable line that stuff you do that is not relevant to their business is of no interest to them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However they can quite rightly take the view that things you do that are in the same line of business are their property - whether done at home in the evenings or otherwise. In general if this is a hobby they won't care. But if done for commercial gain, they will care a lot. This looks and smells like a conflict of interest and is a good way to get fired very quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes this will all be carefully considered and written into an employee handbook, or your contract, and sometimes it won't. If its not in your contract - whoopee doo! The law of the land still applies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When in doubt, ASK.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-11-22T08:19:59.177" CommentCount="1" />
  <row Id="20531" PostTypeId="2" ParentId="20522" CreationDate="2010-11-22T08:24:51.733" Score="1" ViewCount="" Body="&lt;p&gt;A)  yea, switching from Obj-C to J2ME is rough, but Cocoa development has been around awhile and isn't going anywhere. There are plenty of mobile development languages, but there are also plenty of languages for PCs, Servers, etc., as well. Really no difference in my mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;B) Every platform will need experts... period. There are still plenty of C++ devs. There are still COBOL programmers out there and they still make good money. If you enjoy it, stick with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C) We have an architect at our company for our product and she is quite busy. I think there should be more architects in the mobile world. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am in the process of switching from Obj-C back to my main language, PHP, and I would love to stay in the iOS area... but I cannot. Just my 2-cents. &lt;/p&gt;&#xA;" OwnerUserId="7566" LastActivityDate="2010-11-22T08:24:51.733" />
  <row Id="20532" PostTypeId="2" ParentId="20344" CreationDate="2010-11-22T08:27:43.573" Score="1" ViewCount="" Body="&lt;p&gt;If you have a fixed price contract you need to make it clear that every scope change will cost money, and they you will evaluate the change and present a costed quotation for implementing the change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is widely accepted practice in most industries but some customers will get very upset by this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If sounds like you have a bigger problem though if you have &quot;common sense&quot; being argued.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A little like a customer many years ago where I worked who read the specification and said things like &quot;There is an IMPLICIT REQUIREMENT that you do XXX&quot;). To which the answer was: There are no implied requirements. The only requirements are the ones in the written specification. If you want to add or change requirements, please submit a specification change request and we will quote the scope change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The message eventually got through but it took a long time.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-11-22T08:27:43.573" CommentCount="1" />
  <row Id="20533" PostTypeId="2" ParentId="20466" CreationDate="2010-11-22T08:29:51.043" Score="1" ViewCount="" Body="&lt;p&gt;It seems this is specifically about defining a big query inside a programming language of sorts, seeing you put the query inside a string literal and concatenate it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's a compiled language, it should make no difference at all - one of the first optimizations the compiler would do is to automatically concatenate the string literals together, so you end up with a big string anyways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the syntax, you should actually consider moving the query outside of your code - store it in a separate .sql resource file, and have your software read that file. Use prepared statements for the variables, if it's not a query that's built dynamically (i.e. where-clauses etc added depending on certain parameters). If it is built dynamically, you could add in replacement variables of your own, inserting extra parameters where and when needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the 1600 columns, I seriously recommend building a view for that, so instead of&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;SELECT column1, column2, .... column1600 from X where Y&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;you'd get&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SELECT * FROM viewX WHERE y&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Much more concise in your own code.&lt;/p&gt;&#xA;" OwnerUserId="7705" LastActivityDate="2010-11-22T08:29:51.043" CommentCount="1" />
  <row Id="20534" PostTypeId="2" ParentId="20275" CreationDate="2010-11-22T08:46:38.370" Score="1" ViewCount="" Body="&lt;p&gt;Small comment to the statements in the original post. I'll argue that the TCK remains a theoretical tool allowing Oracle to claim Java is an open standard. Because if you notice, Apache Harmony have been trying to get certified as &quot;Java&quot; for several years now, unsuccessfully. It's clear that Oracle really isn't interested in an open source implementation apart from the one they are affiliated with and more or less control (OpenJDK), which btw. much like Mono, is not complete (i.e. no Java Web Start support) and missing some optimizations available in the closed source HotSpot implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So arguably, as of 2010; (most of) Java is open source but not an open standard, while (most of) .NET is not open source but an open standard. There are exceptions of course, the DLR, IronPython, IronRuby and F# actually are open source. Mono is interesting because it provides the best of both worlds, open source implementations of open standards.&lt;/p&gt;&#xA;" OwnerUserId="8253" LastActivityDate="2010-11-22T08:46:38.370" />
  <row Id="20535" PostTypeId="2" ParentId="20472" CreationDate="2010-11-22T08:47:49.930" Score="1" ViewCount="" Body="&lt;p&gt;The problem with GAE is that most people don't understand the how scalability on a Google scale works. Google handles this for the developer but this comes at the cost of limiting the tools you can use to build your webapp.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only way to use GAE is the way Google intended it to. Don't use third party frameworks like Grails or Django as these were never designed to run on GAE. You will end up having problems like the blog post. Just use the GAE frameworks provided by Google and understand the concepts of key-value stores.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most websites don't have to scale to such a size that limiting your dev-tools and framework choices is effective. Just use a dedicate server or EC2.&lt;/p&gt;&#xA;" OwnerUserId="6885" LastActivityDate="2010-11-22T08:47:49.930" CommentCount="1" />
  <row Id="20536" PostTypeId="1" AcceptedAnswerId="20537" CreationDate="2010-11-22T08:53:59.780" Score="3" ViewCount="261" Body="&lt;p&gt;I was just reading &lt;a href=&quot;http://stackoverflow.com/questions/155609/what-is-the-difference-between-a-method-and-a-function&quot;&gt;http://stackoverflow.com/questions/155609/what-is-the-difference-between-a-method-and-a-function&lt;/a&gt; and all of a sudden, the thing came to my mind was the static methods. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As static methods are no way associated with an object how can it be called as static methods (almost all developers do)? Is my understanding about the methods/functions is correct? &lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-11-25T06:58:37.317" Title="Static methods or static functions?" Tags="&lt;functions&gt;&lt;static&gt;&lt;methods&gt;" AnswerCount="3" />
  <row Id="20537" PostTypeId="2" ParentId="20536" CreationDate="2010-11-22T09:03:39.010" Score="6" ViewCount="" Body="&lt;p&gt;(Using Java terminology): Static methods &lt;em&gt;can&lt;/em&gt; be associated with static members (members of the &lt;code&gt;class&lt;/code&gt; object). If the methods don't access static members (nor IO resources or anything else that could change state), of if those members are &lt;code&gt;final&lt;/code&gt; primitives or immutable objects (essentially constants), then such static methods could be called functions, but in general, because they potentially &lt;em&gt;could&lt;/em&gt; access the &lt;code&gt;class&lt;/code&gt; object's members, they're usually called static &lt;em&gt;methods&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;In order to count as a function, a method must be independent of any state&lt;/strong&gt;; it must not cause any side effects nor be affected by any side effects. When called with specific parameters, it must always return the same result. Otherwise it's not a pure function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, the following &lt;code&gt;area&lt;/code&gt; is a function:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class MyClass {&#xA;    static final double pi = 3.14;&#xA;    static double area(double r) {&#xA;        return pi * r * r;&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;while the following &lt;code&gt;getCallCount&lt;/code&gt; is not a function:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class MyClass {&#xA;    static int callCount = 0;&#xA;    static int getCallCount {&#xA;        return ++callCount;&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In general, mutable (non-&lt;code&gt;final&lt;/code&gt;) static members should be used with caution - someone would say that they should not be used at all - because they make a &lt;em&gt;global state&lt;/em&gt; to the program, which likely turns out to be a bad design choice in the long run. There are exceptions, but be careful...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't even need static members to make &lt;strong&gt;static non-functions&lt;/strong&gt;: &lt;code&gt;System.nanoTime()&lt;/code&gt; is definitely not a pure function (because it returns different value on successive calls), even though it only accesses the computer's clock, not any static members. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Confusingly enough, you could also make &lt;strong&gt;non-static pure functions&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class MyClass {&#xA;    final double pi = 3.14;&#xA;    double area(double r) {&#xA;        return pi * r * r;&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now, although not &lt;code&gt;static&lt;/code&gt; any more, &lt;code&gt;area&lt;/code&gt; is still a pure function: it doesn't touch anything that could change. The fact that you would have to create an instance of &lt;code&gt;MyClass&lt;/code&gt; to access &lt;code&gt;area&lt;/code&gt; doesn't reduce its &quot;functionness&quot;. Indeed, one could argue that this kind of pure functions should always be made static.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-11-25T06:58:37.317" LastActivityDate="2010-11-25T06:58:37.317" CommunityOwnedDate="2010-11-25T06:59:51.047" />
  <row Id="20538" PostTypeId="2" ParentId="2051" CreationDate="2010-11-22T09:07:57.703" Score="4" ViewCount="" Body="&lt;p&gt;I was asked to write a report to show all sales and expenses for the future, a Nostradamus module for our accounts system :P He was very serious, it was not supposed to be a prediction but the actual values.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-22T09:19:14.083" CommunityOwnedDate="2010-11-22T09:07:57.703" />
  <row Id="20539" PostTypeId="1" AcceptedAnswerId="38327" CreationDate="2010-11-22T09:10:13.357" Score="2" ViewCount="371" Body="&lt;p&gt;I choose codeigniter to be my first framework to work with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I'm looking for open source applications built based on this framework to be my references for good coding practices and standards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From my previous experiences in application development, it was hard for me to maintain, upgrade, or modify existing applications due to my bad coding practices. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have any suggestion of application based on codeigniter framework for me to be referred? So that it can help me to write better coding by referring to their good and maybe best coding pratices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you!&lt;/p&gt;&#xA;" OwnerUserId="5347" LastActivityDate="2011-04-07T18:39:54.023" Title="Codeigniter Open Source Applications for Coding References" Tags="&lt;recommendations&gt;&lt;coding-standards&gt;&lt;cowboy-coding&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="20542" PostTypeId="1" AcceptedAnswerId="20546" CreationDate="2010-11-22T09:29:40.063" Score="17" ViewCount="596" Body="&lt;p&gt;Getting into zone is a pleasurable and fruitful process. We produce good source code and we get lots of satisfaction from our work done while being in the zone. But, how does one get into the 'zone'? Do you follow a specific process? Apart from switching of email system, mobiles and other mundane non-productive applications, is there anything else that can be done?&lt;/p&gt;&#xA;" OwnerUserId="7478" LastEditorUserId="23334" LastEditorDisplayName="" LastEditDate="2011-04-30T21:30:00.733" LastActivityDate="2011-04-30T21:30:00.733" Title="How do you get into the zone? How long does it take? What steps do you take before ?" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;productivity&gt;&lt;experience&gt;" AnswerCount="7" FavoriteCount="7" />
  <row Id="20545" PostTypeId="2" ParentId="15261" CreationDate="2010-11-22T09:34:58.213" Score="0" ViewCount="" Body="&lt;p&gt;Hi guys. Just to expand on a few things previously contributed:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a worker doesn't complete a project by an agreed upon deadline, the project's employer doesn't have to pay for it. A project's deadline is part of a contract that must be complied with. In my experience, employers willingly extend a deadline when they see favorable progress. So as long as you put forth a good, honest effort within a reasonable amount of time, a 3-5 day deadline extension (or whatever's required) is typically honored.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should an employer not find a project useful and refuse to pay for it, you can take the matter up with the site's arbitration service and have an arbitrator decide whether or not the project complies with the project's contract. A project that complies with its contract warrants payment, and Rentacoder (now vWorker) will release the project's funds to the worker whether the employer agrees with that decision or not. That's one of the benefits of freelancing through Rentacoder. The site's staff actually takes the time to verify a contract has been honored (some other sites don't bother). It's not a risk at all and neither the worker or employer are favored as a result.&lt;/p&gt;&#xA;" OwnerUserId="4990" LastEditorUserId="4990" LastEditorDisplayName="" LastEditDate="2010-11-22T09:53:54.260" LastActivityDate="2010-11-22T09:53:54.260" />
  <row Id="20546" PostTypeId="2" ParentId="20542" CreationDate="2010-11-22T09:42:52.773" Score="26" ViewCount="" Body="&lt;p&gt;Concentrate on what you need to do. Make the effort to actually start doing it. This can be one of the hardest things - to actively stop fluffing about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't have email open. Don't have Fakebook in another window. Don't have any StackExchange going. No forums. Only quiet. And then get on with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It generally takes me (and pretty much everyone else I know) about 15-20 mins to get there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can generally sustain &quot;the zone&quot; for about 2 hours, and generally only once per day - its mentally pretty tiring. If you are super-duper you might manage it twice in a day. After &quot;the zone&quot; the rest of your day is pretty much lightweight by comparison, you get things done but the burst of huge productivity is over.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh - and getting out of the zone takes about 3 seconds - eg a phone call, or somebody sticking their head and saying: &quot;Can I bother you for a moment&quot; - to which the answer is: &quot;yes, you already did&quot;. Bang. The zone is gone. Another 15-20 to get back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Amazing how many stupid s/w defects get introduced by getting knocked out of the zone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Amazing also how few people (esp managers) think that open plan is a really good way to develop quality software (where nobody EVER gets into the zone let alone stays there).&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-11-22T09:42:52.773" CommentCount="11" />
  <row Id="20549" PostTypeId="2" ParentId="20407" CreationDate="2010-11-22T09:45:09.747" Score="21" ViewCount="" Body="&lt;p&gt;There are a couple of factors:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The type of personality that does well on social web sites (let's be &lt;strong&gt;&lt;em&gt;bluntly rude&lt;/em&gt;&lt;/strong&gt; and generalise that as the &quot;pontificating, likes to hear self talk, theoretically-obsessed, anorak type&quot;) is by absolutely no means necessarily the type of personality who does well leading and/or working with a group of human beings (let's be &lt;strong&gt;&lt;em&gt;bluntly rude&lt;/em&gt;&lt;/strong&gt; and generalise that as the &quot;smooching, glad-handling, compromising, deal-maker type&quot;).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;As a broad rule, businesses are &lt;strong&gt;&lt;em&gt;looking for the latter, not the former&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is both very sad (I mean sad for us pontificators) and very true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An interesting point: &lt;strong&gt;&lt;em&gt;think of your actual BOSS&lt;/em&gt;&lt;/strong&gt;, the person who has to handle all your problems all day, make you feel at least OK about yourself, balance everyone's renumeration, try to keep enough money coming in to your department so that all of you can feed your children while you fondle memory algorithms, deal with the chumps upstairs in management so you don't have to, and so on.  &lt;strong&gt;&lt;em&gt;Would you really give a flying crap if that poor person has any connection, whatsoever, to some chat website?&lt;/em&gt;&lt;/strong&gt; Of course the answer is no, you just want your boss to be good at to pulling off all that juggling.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Talk about &quot;superstars&quot; (let's be bluntly rude again) is a little star-struck. You're a superstar if you're so clever you've made millions (or at least the odd hundred thousand) because you're so clever. Oh, by the way, to do, that as well as being so clever, you have to as an incidental matter be utterly A+ rated at memory management and tricky algorithms.  If you're looking at only the latter incidental part, i.e., being utterly A+ rated at memory management and tricky algorithms, then &lt;strong&gt;&lt;em&gt;sadly --- horribly ---- unfaily ---- bitterly ---- how can the world be so miserable? ----&lt;/em&gt;&lt;/strong&gt; you're &quot;just&quot; someone who's utterly A+ rated at memory management and tricky algorithms.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;(OK, for all this bitterness and sadness, there is the exception of the extremely small number of purely extremely technical, really research, type ways to make money - in those cases sure, the only thing that matters is your various research breakthroughs, perhaps as a humorous side issue your amazing score on grouptheoryoverflow, and so on.  But there are so few such jobs it's probably not really in the spirit of the question &quot;getting a job in the real world.&quot; And - bitterly - they don't pay that much.)&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The question further is emphasising &quot;high paying&quot; jobs.  (We'll ignore the issue of whether $100,000 p/a is high paying or not, since Bernanke's hyperinflation makes it hard to keep up with such numbers.) It's probably sadly even more true that the kind of realistic bitterness outlined in this answer, is more and more and more true if you are talking about not merely &quot;a job&quot; (where you are expected to &lt;strong&gt;&lt;em&gt;do something&lt;/em&gt;&lt;/strong&gt; specific that you will be told to do, provide a cog in the process), but A Real Job (where you are expected to &lt;strong&gt;&lt;em&gt;positively generate massive amounts of money for the company somehow or other as a matter of course, day in and day out&lt;/em&gt;&lt;/strong&gt;) &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It's hard to keep up with current salaries everywhere; it could be that &quot;$100,000 !&quot; fits in to the &quot;rare purely proufoundly technical&quot; job I mention in the aside just above.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the spirit of the question in some sense seems to be - to paraphrase and simplify - do top jobs have anything much to do with specifically purely technical, mathematical, expertise?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sadly the answer there is pretty much definitively no.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's more the &quot;smooching, glad-handling, compromising, deal-maker type&quot; - or, if you prefer to be bitter in another direction - the &quot;big picture, ideas driven and generating and follow-through type&quot; - that can - simply - &lt;strong&gt;&lt;em&gt;generate&lt;/em&gt;&lt;/strong&gt; enough money that some business can afford to give the person that much money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't forget - to say you want to &quot;earn&quot; some fabulous salary, what you're essentially saying is &lt;strong&gt;&lt;em&gt;you can generate jobs&lt;/em&gt;&lt;/strong&gt;.  How so? If you're making 200k somewhere, you're a horse that is carrying a number (10? 25?) normal &quot;do a job&quot; employees on your back. You have to be a producer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is, sadly, difficult to see how some essentially test of excellence of technical knowledge (SO chat web site) can help with that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Steve Jobs said it all - good engineers (he said) are not merely worth 10 or 20 ordinary engineers, they are worth some 100s of ordinary engineers ... they can generate that much product, stuff, free monthly cashflow, for the company.  I think that's more what Jobs would think of as one of his superstars. It's difficult to see how &lt;strong&gt;&lt;em&gt;purely&lt;/em&gt;&lt;/strong&gt; the technical aspect (&lt;strong&gt;&lt;em&gt;a necessity&lt;/em&gt;&lt;/strong&gt;) can bring that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that's the sense of the question in terms of &quot;big jobs,&quot; then that's probably the answer.&lt;/p&gt;&#xA;" OwnerUserId="8262" LastActivityDate="2010-11-22T09:45:09.747" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="2" />
  <row Id="20550" PostTypeId="2" ParentId="20542" CreationDate="2010-11-22T09:46:00.900" Score="2" ViewCount="" Body="&lt;p&gt;Get the first task on your &lt;a href=&quot;http://programmers.stackexchange.com/questions/7205/how-do-you-beat-procrastination/7261#7261&quot;&gt;well maintained list&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The secret is &lt;strong&gt;having&lt;/strong&gt; that list!&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-22T09:46:00.900" />
  <row Id="20551" PostTypeId="2" ParentId="20542" CreationDate="2010-11-22T09:50:50.660" Score="2" ViewCount="" Body="&lt;p&gt;Close all browser windows pointing to StackExchange and enough, good coffee might be a good place to start.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-22T09:50:50.660" />
  <row Id="20552" PostTypeId="1" CreationDate="2010-11-22T10:00:42.093" Score="17" ViewCount="180" Body="&lt;p&gt;I've been wondering about getting contributions to a new open source product my team will be developing.  There's encouragement for us to get as much support from the wider community as we're able, but I can also see this absorbing a lot of time making sure that 3rd parties located outside our office are on track regards things like code quality.  Also at the start of the project we're likely to have a lot of informal discussions within the core team regarding design of the system, spikes etc. and taking these online to allow community involvement will be time consuming and I can imagine could make the discussion less effective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a more human side to this which probably needs to be considered: allowing community involvement in the design process may also have its benefits regards perceived ownership of the project, and there's always a chance that early involvement could pick up on problems that the core team haven't noticed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the question: at what stage of an Open Source project should you invite contributions from the community?&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-11-22T16:06:13.080" Title="At what stage of an Open Source project should you invite contributions from the community?" Tags="&lt;project-management&gt;&lt;open-source&gt;&lt;team&gt;&lt;contribution&gt;&lt;planning&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="5" />
  <row Id="20553" PostTypeId="2" ParentId="20476" CreationDate="2010-11-22T10:09:22.540" Score="4" ViewCount="" Body="&lt;p&gt;Answers seem to be coming down on the effect of software piracy and it's relative harm, mostly due to the marginal cost of the software duplication. &#xA;After all, once a team has created the software the cost of making more of the same is effectively zero. Pure profit I hear you cry. Not so. This&#xA;team of (non-corporate) people has invested their own personal time in the development of that software, making sacrifices in the hope that they will see a decent&#xA;return. However, piracy reduces this return. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if the team is paid by some big faceless corporation, the corporation still take a hit. They still have to pay their marketing department and so on. &#xA;To mitigate the cost of this piracy, big software companies used to choose the easy option of driving up their prices so that the legitimate purchasers help to&#xA;susidise the losses attributed to piracy. How that is actually measured and evaluated I can't imagine - it seems more like sticking your finger in&#xA;the air and just seeing how much the legitimate market will stand until the honest folks turn to piracy. There are variations on this strategy which&#xA;include punishing piracy way outside of its actual damage to profits in order to drive the herd back into the legitimate market. These tend to be&#xA;counter-productive because they criminalise your customers which is never good for sales.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to combat piracy you have to add value in a manner that is not directly related to the initial purchase. As other people have stated, this can &#xA;involve access to an exclusive community (this could be a service contract), or special rewards only available with a legitimate purchase (VIP access to something). &#xA;There are many ways to add value, but this does introduce additional cost which can't be part of the initial payment. So a two-pronged strategy is employed: &#xA;online exclusive communities with an ongoing small subscription (usually with a difficult cancellation policy). Essentially, the software development cost is treated as a loss-leader to hook you in to a&#xA;long term payment plan. If your market is well known in terms of their reaction to this strategy (Facebook/XBox Live profiling anyone?) then the overall &#xA;cost can be calculated in advance to determine how much budget you can have for your development costs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, to summarise. Piracy is wrong, but corporations and individual developers need to ensure that they offer real value for their product so that their&#xA;customers can trust that they are getting a fair deal. &lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-22T10:09:22.540" CommentCount="9" />
  <row Id="20554" PostTypeId="2" ParentId="20552" CreationDate="2010-11-22T10:33:37.040" Score="11" ViewCount="" Body="&lt;p&gt;Right at the very beginning!  You want the community to feel that they have a genuine stake in your project, otherwise they will feel like they are being used as free labour.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All communication should be over a public mailing list or forum, again this enhances the idea of the community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can mitigate the 'design by committee' problem by laying out a clear vision in your initial posts to the mailing list, e.g.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;So we're looking at a domain model to represent our Pet Store (as per JIRA-4).  Does anyone see any major issues with this model?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of accepting actual physical contributions, you should start by accepting patches and performing public code reviews on them.  That way contributors can already publicly see what sort of coding standards they need to adhere to.  Make sure your commits are available in a commit mailing list as well - you need to be held to the same standards!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also pays to have project standards on a Wiki or some such document.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read &lt;a href=&quot;http://www.producingoss.org&quot; rel=&quot;nofollow&quot;&gt;http://www.producingoss.org&lt;/a&gt; for more details on how to run a successful open source project.&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2010-11-22T13:37:49.607" LastActivityDate="2010-11-22T13:37:49.607" CommentCount="6" />
  <row Id="20555" PostTypeId="1" AcceptedAnswerId="20559" CreationDate="2010-11-22T11:02:22.910" Score="11" ViewCount="768" Body="&lt;p&gt;I have a job offer in a dead technology (specific programming language) that I don't want to work with nor do I believe it will offer many jobs in the future. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It requires twice a year travels abroad, which not a plus in my eyes. On the other hand the money on the table is high.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would you do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit: as its not clear I got a job in a programming language that is different from the academic programming language I worked with. Now I see it as a mistake to head to that direction.&lt;/p&gt;&#xA;" OwnerUserId="5260" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-11-22T12:09:11.470" LastActivityDate="2011-02-20T16:21:06.080" Title="job offer in dead technology" Tags="&lt;jobs&gt;" AnswerCount="9" CommentCount="12" FavoriteCount="2" />
  <row Id="20556" PostTypeId="2" ParentId="20476" CreationDate="2010-11-22T11:07:32.483" Score="9" ViewCount="" Body="&lt;p&gt;Lots of good answers but I'd suggest another:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because they've not yet had to face the consequences of piracy.  By that I don't mean fines, prison or other legal sanctions, I mean the impact on software developers, authors and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the justifications for music piracy is that it actually ends up being marketing for the band live and there is some truth in that.  You can't pirate the live experience so crank up the prices there, sell more t-shirts and make your money that way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is that doesn't work for software developers (or authors if you pirate eBooks).  If we stop paying for software people will, in many many cases stop making it and that's the consequence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reality is that it's not all Adobe and Microsoft who make enough from corporates to survive individuals stealing their stuff (and arguably actually benefit from it as it enforces their position as the defacto standard).  It's hundreds of small companies who aren't making so much money that they can survive having their markets cannibalised.  For every hobby programmer churning stuff out in their spare time for the love of it, there are dozens and dozens who are doing it for the money (either a salary or as an independent software developer).  Not because they're evil or money grabbing but because they have mortgages and kids and need to work to live.  I'm guessing that many of the people on here fall into that category.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For some of these there will be alternative business models (support or focusing on corporates where the laws are enforcable or bespoke software where it's very nature means it can't be copies) but for many there won't be and when that happens that software will cease to exist and there will be less competition, less innovation and far less quality out there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And at that point people might just realise that they shouldn't have been quite so off hand when talking about marginal cost and lose of &quot;potential sales&quot; because if you lose enough of your potential sales it hits actual sales.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-22T15:23:29.967" LastActivityDate="2010-11-22T15:23:29.967" CommentCount="3" />
  <row Id="20558" PostTypeId="2" ParentId="14856" CreationDate="2010-11-22T11:18:51.747" Score="14" ViewCount="" Body="&lt;h2&gt;YAGNI&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;(&lt;a href=&quot;http://en.wikipedia.org/wiki/You_ain%27t_gonna_need_it&quot; rel=&quot;nofollow&quot;&gt;You ain't gonna need it&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This approach has cost me hours and hours when I had to implement features on an existing codebase, where careful planning would have included these features beforehand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideas of mine have often been rejected because of YAGNI, and most of the times someone had to pay for that decision later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Of course one could argue that a well-designed codebase would also allow features to be added later on, but reality is different)&lt;/p&gt;&#xA;" OwnerUserId="2894" LastActivityDate="2010-11-22T11:18:51.747" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="4" />
  <row Id="20559" PostTypeId="2" ParentId="20555" CreationDate="2010-11-22T11:21:08.640" Score="33" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Don't do it.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll find that more money is a short term motivator and you'll hate your choice. If you're not enthusiastic about a new job in your first few days what will you be like after a year of them?&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-22T11:21:08.640" CommentCount="1" />
  <row Id="20560" PostTypeId="2" ParentId="20555" CreationDate="2010-11-22T11:28:20.587" Score="8" ViewCount="" Body="&lt;p&gt;There are many companies out there who are managing and supporting legacy software. These companies are ready to pay you more money than usual since they can’t get hold of enough developers in redundant technology. It works out in two ways, if you take up that job, it becomes specialized skill set for you and you will get better money. On the other hand, you may loose hands on experience on cutting edge technology. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many of us still maintaining/developing on this legacy software or studying them to re-write it on current technology. Also, Very few developers end up developing software on latest languages. Bigger systems can’t upgrade themselves regularly due to size, budget, training, support etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My suggestion is to ask another question more specifically about the programming language you are talking about and ask how many developers are still developing using it. That may give you more clear understanding.&lt;/p&gt;&#xA;" OwnerUserId="7478" LastActivityDate="2010-11-22T11:28:20.587" CommentCount="6" />
  <row Id="20561" PostTypeId="2" ParentId="20555" CreationDate="2010-11-22T11:39:47.490" Score="1" ViewCount="" Body="&lt;p&gt;if you want the money and probably some other stuff but you don't like the language, then you need a distraction: start blogging about something you like, whatever, a language or a technology (webservices, portals), or a framework. or you could start contributing to some proiect (or start your own). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;act professional and do your job even if you don't like that language. you did choose your job for some benefits. enjoy those&lt;/p&gt;&#xA;&#xA;&lt;p&gt;in the mean time, do something you feel inclined to do and, maybe, in the future, a mega opportunity will arrise if you are a good blogger/contributor&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-11-22T11:39:47.490" />
  <row Id="20562" PostTypeId="2" ParentId="20555" CreationDate="2010-11-22T11:46:23.697" Score="0" ViewCount="" Body="&lt;p&gt;It may get risky. Estimate the chance of being switched out for some newly graduated robot with a newer technology (give work to robot!).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;government's software (bills/taxes)&#xA;has changed from exotic DOS platforms&#xA;to adequate end-user websites and&#xA;distros.&lt;/li&gt;&#xA;&lt;li&gt;banks went off OS/2 way&lt;/li&gt;&#xA;&lt;li&gt;old math suites are dropped - matlab does&#xA;anything including image processing&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;even if your job position would be to Fortran*-script the construction (CAD) of lunar base including all electronics (in some old exotic language) - there is a great chance that next large tender will offer some newer product. *Fortran is not dead.&lt;/p&gt;&#xA;" OwnerUserId="4533" LastActivityDate="2010-11-22T11:46:23.697" CommentCount="2" />
  <row Id="20563" PostTypeId="2" ParentId="20476" CreationDate="2010-11-22T11:49:48.890" Score="1" ViewCount="" Body="&lt;p&gt;Most of what I use is free, so no reason to pay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For games, they are too much expensive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You also have to consider that peoples that don't really know how software is done, hence have no clue what was done by whom and how it is separate of their OS, so obviously they don't really care for the people who, they might say, &quot;stayed on his chair for weeks&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess we live in a world where we don't really figured out how to morally distribute the product of our true physical efforts and depending on merit, so until that, I guess nobody will really want to pay money which has more a physical/survival value (food, house etc), rather that a thing which they don't really know how it has been made, or even the purpose of the software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus the software industry is really young, and I don't really think you can really monetize something else than OSes or entertainment software (games, video editing stuff).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course what I said is not true in the professional environment, but in that field, I guess it can vary, but don't forget the quality can vary a lot, as prices.&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2010-11-22T11:49:48.890" CommentCount="11" />
  <row Id="20564" PostTypeId="1" AcceptedAnswerId="20567" CreationDate="2010-11-22T11:53:26.173" Score="17" ViewCount="621" Body="&lt;p&gt;There has been a lot of discussion around the excellent question &quot;&lt;a href=&quot;http://programmers.stackexchange.com/questions/20407/will-high-reputation-in-stack-overflow-help-to-get-a-good-job&quot;&gt;Will high reputation in Stack Overflow help to get a good job?&lt;/a&gt;&quot;. I immediately agreed with &lt;strong&gt;JoshK&lt;/strong&gt; that basically said &quot;&lt;a href=&quot;http://programmers.stackexchange.com/questions/20407/will-high-reputation-in-stack-overflow-help-to-get-a-good-job/20413#20413&quot;&gt;No&lt;/a&gt;&quot; (I'll will explain why), but &lt;strong&gt;Joel&lt;/strong&gt; &lt;a href=&quot;http://programmers.stackexchange.com/questions/20407/will-high-reputation-in-stack-overflow-help-to-get-a-good-job/20491#20491&quot;&gt;chimed in&lt;/a&gt; with lot of convincing facts which made me upvote him as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is &lt;strong&gt;what other skills (other than being a technical genius) do you require from a developer?&lt;/strong&gt; To get the job, or to &lt;em&gt;keep&lt;/em&gt; it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe being a genius is far from being enough. I have met many technical geniuses in various companies I have worked for that impressed me a lot, but sadly in lot of cases, they were simply fired after a few months or put in ivory towers (mainly because of internal mutiny from other developers). I've seen many in personal distress as a result of this which I understand. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's why I'm a big fan of non-technical questions for technical positions. I like to know how the candidate will interact with others (including non-technical employees), how much consideration he will have for the business, if he will work for the desired outcome, and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to know what you require from your developers and &lt;strong&gt;WHY&lt;/strong&gt; it's important &lt;em&gt;(after all, you hire someone to write code, don't you? Why would you want him to be assertive?)&lt;/em&gt;. &lt;strong&gt;Ideally, I'd like you to come up with an example question you would ask during interviews&lt;/strong&gt; in support of your answer.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-22T13:36:01.430" LastActivityDate="2010-11-22T18:57:42.353" Title="When being a technical genius is not enough to be a successful developer?" Tags="&lt;career&gt;&lt;interview&gt;&lt;interview-questions&gt;&lt;profession&gt;" AnswerCount="9" CommentCount="2" FavoriteCount="7" />
  <row Id="20566" PostTypeId="2" ParentId="20564" CreationDate="2010-11-22T12:04:26.060" Score="12" ViewCount="" Body="&lt;p&gt;Team work / communication :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;to be able to explain your solutions or your problems&lt;/li&gt;&#xA;&lt;li&gt;to be able to work with other people without making them feel bad (in any way) - to make them feel working with you is pleasant&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Without those skills, you can't work in team, and if you can't, you'll not be able to get in a company that require that (and almost all of them require teamwork, naturally). You could still be freelance and work on projects that don't have other people to work on, but you still have to communicate with people from other companies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even for learning, if you can't communicate with a lot of different people, like on the web, then you might not be able to do better in real life and in society (whatever the job) it's an handicap.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit&gt; In interview, team-work/socialization/communication is really easy to check, it might be the easiest thing. You just have to ask some questions, not technical, questions easy to answer or simply questions about what the candidate think about something or what the candidate like or dislike in a domain or another. Make him talk. You'll see.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-11-22T12:04:26.060" />
  <row Id="20567" PostTypeId="2" ParentId="20564" CreationDate="2010-11-22T12:06:37.370" Score="17" ViewCount="" Body="&lt;p&gt;Excellent communication skills.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your colleagues cannot read your brain directly, you will need to be able to tell them what you think.  Preferrably both verbally and written.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;EDIT:  A way to see them at interview time &lt;em&gt;may&lt;/em&gt; be by asking them what their favorite framework for doing X is, and then say that they need to work on a project where X could be used, but it is a political decision to use technology Y (which is clearly older and has some limitations that X solves).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this ends up in an argument about why the political decision is wrong, you have a strong indication of this person not doing well with pragmatic decisions.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-11-22T12:26:24.523" LastActivityDate="2010-11-22T12:26:24.523" CommentCount="6" />
  <row Id="20573" PostTypeId="1" AcceptedAnswerId="20575" CreationDate="2010-11-22T12:23:32.357" Score="2" ViewCount="218" Body="&lt;p&gt;Any time a Perl, Python, C++ or Tcl program halts with an unhandled exception, those language runtimes take care to register a non-zero exit code for the process. Even Eclipse-based programs return 1 if they fail during startup. Programs run by the standard &lt;code&gt;java.exe&lt;/code&gt;, however, happily return zero no matter how abruptly they end, unless the program calls &lt;code&gt;System.exit()&lt;/code&gt; with an exit value. Even &lt;code&gt;AssertionFailedError&lt;/code&gt; or &lt;code&gt;UnsatisfiedLinkError&lt;/code&gt; are reported back to the calling program as successful exits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course not all systems have program return codes, but Unix and Windows were important enough to warrant &lt;code&gt;java.lang.Process.exitValue()&lt;/code&gt; for child processes; don't they also warrant honouring conventions for parent processes?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this a flaw in the language design or just in the implementation? Is there an argument that it's a good idea?&lt;/p&gt;&#xA;" OwnerUserId="8273" LastActivityDate="2010-11-22T12:29:04.567" Title="Why does Java exit with success after an uncaught exception?" Tags="&lt;java&gt;&lt;exceptions&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="20575" PostTypeId="2" ParentId="20573" CreationDate="2010-11-22T12:29:04.567" Score="4" ViewCount="" Body="&lt;p&gt;If the Java Language Specification does not explicitly say what exit value to expect, then it is &lt;em&gt;undefined&lt;/em&gt; and you should not rely on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to catch Throwable in your main method, and call System.exit(1) yourself.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-22T12:29:04.567" CommentCount="2" />
  <row Id="20576" PostTypeId="1" CreationDate="2010-11-22T12:30:19.347" Score="0" ViewCount="292" Body="&lt;p&gt;What Textmate theme do you use and why? Just curious as to the best textmate themes out there and which ones you guys prefer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thankyou in advance ;-)&lt;/p&gt;&#xA;" OwnerUserId="2053" LastActivityDate="2010-11-22T16:46:16.503" ClosedDate="2010-11-22T17:12:46.370" Title="What Textmate theme do you use and why?" Tags="&lt;ide&gt;&lt;text-editor&gt;&lt;theme&gt;&lt;textmate&gt;" AnswerCount="1" CommentCount="4" />
  <row Id="20577" PostTypeId="2" ParentId="20536" CreationDate="2010-11-22T12:44:40.860" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;As static methods are no way&#xA;  associated with an object how can it&#xA;  be called as static methods (almost&#xA;  all developers do)? Is my&#xA;  understanding about the&#xA;  methods/functions is correct?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's an abuse of language. In C++ : &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a &lt;strong&gt;member function&lt;/strong&gt; is a function associated with a type or instances of a type. It can be:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;static&lt;/strong&gt; : associated with the type itself, not with instances &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;non-static&lt;/strong&gt; : associated with an instance of the type. They can be : &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;virtual&lt;/strong&gt; : can be redefined by a child class of the type&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;non-virtual&lt;/strong&gt; : cannot be redefined by a child class (but can be &quot;hidden&quot;, often trigerring a compilation warning)&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;a &lt;strong&gt;method&lt;/strong&gt; is a &lt;strong&gt;virtual member function&lt;/strong&gt; that cannot be static by definition&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The problem is that some post-C++ languages like Java, a all (non-static) member functions are virtual. So people started to say those are methods. As they didn't needed non-virtual member-functions, they only used the word method for any function that is member of a class.&#xA;Now, in those languages, types are also objects, are one instance, so you can say that their static members are in fact methods of the unique object represeting the type. (I'm not sure that's correct for any dynamic language)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, from your perspective, static member functions(or method if you prefer) should always be perceived as independant of the objects of the type they are member of, but implicitely associated with the type itself (whatever the implementation of that meaning is - whatever the language).&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-11-22T12:44:40.860" />
  <row Id="20578" PostTypeId="2" ParentId="5373" CreationDate="2010-11-22T13:00:15.113" Score="2" ViewCount="" Body="&lt;p&gt;For UK, check this link - (I think) it scrapes job sites, and aggregates all the data: &lt;a href=&quot;http://www.itjobswatch.co.uk/&quot; rel=&quot;nofollow&quot;&gt;http://www.itjobswatch.co.uk/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps there's something similar for Australia too.&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-11-22T13:00:15.113" />
  <row Id="20579" PostTypeId="2" ParentId="16760" CreationDate="2010-11-22T13:01:19.730" Score="2" ViewCount="" Body="&lt;p&gt;Set them a written test which takes 10 minutes to mark.&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-11-22T13:01:19.730" />
  <row Id="20580" PostTypeId="2" ParentId="14856" CreationDate="2010-11-22T13:07:46.793" Score="1" ViewCount="" Body="&lt;p&gt;Only one I can think of is formatting Java &lt;code&gt;if&lt;/code&gt; statements like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (condition) ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;instead of&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(condition) ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;For the most part, I've found best practices to be best, and any initial reservations I have with them tend to be misplaced, or overridden by more significant concerns.&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-11-22T13:07:46.793" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="2" />
  <row Id="20581" PostTypeId="1" AcceptedAnswerId="20583" CreationDate="2010-11-22T13:07:57.573" Score="8" ViewCount="857" Body="&lt;p&gt;Do you learn programming for fun and to try to build something good such as a social website or whatever or do you just learn it to get a job?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In both cases which language that you would love to learn if you do not care about job!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And which one that you think you should learn to get high paid job?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a one that you can learn for both situations? for fun/job/etc?&lt;/p&gt;&#xA;" OwnerUserId="26782" LastActivityDate="2010-12-23T15:20:16.133" Title="Which language is best for hobbyists and which is best for jobs?" Tags="&lt;programming-languages&gt;&lt;jobs&gt;&lt;web-development&gt;&lt;coding&gt;" AnswerCount="16" FavoriteCount="4" />
  <row Id="20582" PostTypeId="2" ParentId="20581" CreationDate="2010-11-22T13:09:51.877" Score="1" ViewCount="" Body="&lt;p&gt;Ruby on Rails is nice..&lt;/p&gt;&#xA;" OwnerUserId="8281" LastActivityDate="2010-11-22T13:09:51.877" CommentCount="3" />
  <row Id="20583" PostTypeId="2" ParentId="20581" CreationDate="2010-11-22T13:10:34.343" Score="24" ViewCount="" Body="&lt;p&gt;Fun but no job = lisp&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No fun but plenty of job = java&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best of both = python&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-11-22T13:10:34.343" CommentCount="13" />
  <row Id="20584" PostTypeId="2" ParentId="20581" CreationDate="2010-11-22T13:15:15.777" Score="1" ViewCount="" Body="&lt;p&gt;Language for &lt;a href=&quot;http://oreilly.com/catalog/9780596510510&quot; rel=&quot;nofollow&quot;&gt;making things talk&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(Hardware, Embedded Systems or Microchips)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://wiring.org.co/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Wiring&lt;/strong&gt;&lt;/a&gt; on platforms like &lt;a href=&quot;http://www.arduino.cc/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Arduino&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(the language is not the funniest part)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-22T13:15:15.777" />
  <row Id="20585" PostTypeId="2" ParentId="20564" CreationDate="2010-11-22T13:21:47.350" Score="7" ViewCount="" Body="&lt;p&gt;1) Communication is probably the most important skill for anyone, including software engineering types to have.  Those communication skills are equally important for dealing with managers and clients as they are for dealing with coworkers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Teamwork is a slightly different skill that depends heavily on the first.  Essentially, I need to determine if the person I'm trying to hire will benefit the team as a whole, or will there be some personality conflicts that I'm potentially hiring.  No one can predict the future, but you can't ignore warning signs in the interview either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One tactic that I use in the interview process is to ask the person to describe one of the more challenging technical problems (that they can talk about) and how they solved them.  As they talk through their reasoning process and how they uncovered the problem you can get a better idea about how well they can communicate about potentially complicated things.  If they seek some additional help in the process, I see that as a plus.  None of us are perfect technologists.  If the problem they chose ended up being a personality clash (which has only happened once), you can either pass or probe a bit deeper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In many ways the interview process is like going on a blind date.  Both people are putting on their best face, trying to figure out if they want to spend any more time with the other party.  The more you can get the interview to flow like a conversation, the more relaxed the interviewee will be; and consequently the better you'll see if they are a good fit.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-11-22T13:21:47.350" />
  <row Id="20586" PostTypeId="1" CreationDate="2010-11-22T13:22:06.900" Score="22" ViewCount="751" Body="&lt;p&gt;I've been programming for years now, working my way through &lt;a href=&quot;http://www.paulgraham.com/avg.html&quot; rel=&quot;nofollow&quot;&gt;various iterations of Blub&lt;/a&gt; (BASIC, Assembler, C, C++, Visual Basic, Java, Ruby in no particular order of &quot;Blub-ness&quot;) and I'd like to learn Lisp. However, I have a lot of intertia what with limited time (family, full time job etc) and a comfortable happiness with my current Blub (Java). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is this, given that I'm someone who would really like to learn Lisp, what would be the initial steps to get a good result that &lt;strong&gt;demonstrates the superiority of Lisp in web development&lt;/strong&gt;? Maybe I'm missing the point, but that's how I would initially see the application of my Lisp knowledge. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm thinking &quot;use dialect A, use IDE B, follow instructions on page C, question your sanity after monads using counsellor D&quot;. I'd just like to know what people here consider to be an optimal set of values for A, B, C and perhaps D. Also some discussion on the relative merit of learning such a powerful language as opposed to, say, becoming a Rails expert.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just to add some more detail, I'll be developing on MacOS (or a Linux VM) - no Windows based approaches will be necessary, thanks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Notes for those just browsing by&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm going to keep this question open for a while so that I can offer feedback on the suggestions after I've been able to explore them. If you happen to be browsing by and feel you have something to add, please do. I would really welcome your feedback. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Interesting links&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming you're coming at Lisp from a Java background, this set of links will get you started quickly.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Using Intellij's La Clojure plugin to integrate Lisp (&lt;a href=&quot;http://www.youtube.com/watch?v=Y8d9VNL-2Is&quot; rel=&quot;nofollow&quot;&gt;videocast&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.adampetersen.se/articles/lispweb.htm&quot; rel=&quot;nofollow&quot;&gt;Lisp for the Web&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Online version of &lt;a href=&quot;http://www.gigamonkeys.com/book/&quot; rel=&quot;nofollow&quot;&gt;Practical Common Lisp&lt;/a&gt; (c/o Frank Shearar)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://landoflisp.com/&quot; rel=&quot;nofollow&quot;&gt;Land of Lisp&lt;/a&gt; a &lt;code&gt;(+ (+ very quirky) game based)&lt;/code&gt; way in but makes it all so straightforward&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2011-02-07T23:24:32.083" LastActivityDate="2011-02-07T23:24:32.083" Title="How should I start with Lisp?" Tags="&lt;advice&gt;&lt;language-choice&gt;&lt;lisp&gt;" AnswerCount="8" CommentCount="10" FavoriteCount="16" />
  <row Id="20587" PostTypeId="2" ParentId="20476" CreationDate="2010-11-22T13:23:33.717" Score="4" ViewCount="" Body="&lt;p&gt;Maybe not anymore, at least not in Europe (particularly in Switzerland, where I live). Many people pay for their apps on the iPhone. If an app costs as little as 1-2$ many people don't think twice before buying it..&lt;/p&gt;&#xA;" OwnerUserId="8281" LastActivityDate="2010-11-22T13:23:33.717" CommentCount="6" />
  <row Id="20588" PostTypeId="2" ParentId="20581" CreationDate="2010-11-22T13:24:14.070" Score="1" ViewCount="" Body="&lt;p&gt;Just pick a strong language and you can easily use it for your fun projects and to get a job. &lt;/p&gt;&#xA;" OwnerUserId="4930" LastActivityDate="2010-11-22T13:24:14.070" CommentCount="2" />
  <row Id="20589" PostTypeId="2" ParentId="20581" CreationDate="2010-11-22T13:25:16.583" Score="4" ViewCount="" Body="&lt;p&gt;If you're going to learn only one language, use Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can do almost everything on almost every platform, many great developer tools are free, it's reasonably well designed, performs well enough and there are plenty of jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And once you bang your head against it's restrictions, you can start using Groovy, Scala, Clojure etc. while keeping your Java code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C# / .net etc is probably equally great, but a) only one target platform and b) no free IDEs spoils the deal for me.&lt;/p&gt;&#xA;" OwnerUserId="2894" LastActivityDate="2010-11-22T13:25:16.583" CommentCount="9" />
  <row Id="20590" PostTypeId="2" ParentId="20407" CreationDate="2010-11-22T13:29:52.910" Score="14" ViewCount="" Body="&lt;p&gt;Having something to point at is certainly a good way to &lt;em&gt;demonstrate&lt;/em&gt; a general competency in an area - that it is something you actually know about (and can articulate helpfully), rather than just some blank labels copied onto your CV - &quot;XML, Ajax, JSON&quot; isn't nearly as convincing as something someone can &lt;em&gt;look&lt;/em&gt; at. It also opens up various potential discussion topics, etc., so having a findable (typically via google against your name) public persona is certainly never a bad thing. Unless the only thing on your public persona is garbage...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Speaking more personally, my presence on Stack Overflow &lt;strong&gt;very certainly&lt;/strong&gt; helped me get my current job - I now work for... Stack Overflow! However, I have been approached a &lt;em&gt;number&lt;/em&gt; of times by people seeing my posts; in relation to employment, consultancy, and tech-article opportunities. I was also contacted by a Google recruiter who (when introducing themselves) directly cited my Stack Overflow posts (by this time I was already working for Stack Overflow, so I thanked them for their consideration, but I didn't choose to interview).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, getting a public persona out there can &lt;em&gt;also&lt;/em&gt; be done in a range of other ways; blogging, hobby-projects, public-speaking (user-groups), etc. So how about another reason to use Stack Overflow:&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;I learn something every single day...&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;...either by spending a minute-or-two researching an answer, or just by reading the other replies to an interesting post. The questions can be equally interesting, especially when introducing unexpected behaviour*. And learning is &lt;em&gt;never&lt;/em&gt; a bad thing.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Still not enough?&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Then consider this. We have &lt;em&gt;unicorns&lt;/em&gt;! That should be enough for anyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*=for example, just this morning I found out that Visual Studio with the debugging host-process enabled processes attributes on the entry-point (AKA &lt;code&gt;Main()&lt;/code&gt;) differently to the core &lt;a href=&quot;http://en.wikipedia.org/wiki/Common_Language_Runtime&quot; rel=&quot;nofollow&quot;&gt;CLR&lt;/a&gt; execution.&lt;/p&gt;&#xA;" OwnerUserId="1508" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-09T10:44:38.073" LastActivityDate="2011-02-09T10:44:38.073" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="5" />
  <row Id="20591" PostTypeId="1" CreationDate="2010-11-22T13:30:15.597" Score="4" ViewCount="241" Body="&lt;p&gt;I have almost 7 years experience as software developer and am getting a chance to join a new company as engineering manager. The pay of course is better than my current pay but I am bit hesitant as I think I still need a lot to learn as a software developer. Also the company I am with is much larger and stable than the new one although they both have been in business almost the same amount of time. My question is that is it a good idea for me to switch my career as a engineering manager with just 7 years of experience? I know I will be able to fulfill the role but isn't this too early? I am planning to move to UK or Australia, will I be able to get a job as a manager with this much experience there easily or will I have to start from development role again? Please suggest. Thanks&lt;/p&gt;&#xA;" OwnerUserId="8287" LastActivityDate="2010-11-22T15:25:28.200" Title="Is switching to a engineering manager role with 7 yrs exp. a good idea?" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="20592" PostTypeId="2" ParentId="20581" CreationDate="2010-11-22T13:33:20.557" Score="5" ViewCount="" Body="&lt;p&gt;Choose the language if that's the right tool to build your project with - hobby or not. The projects requirements (technical or not, time related, socialization related, etc.) should be the leading factors in your choices.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Do you learn programming for fun and&#xA;  to try to build something good such as&#xA;  a social website or whatever or do you&#xA;  just learn it to get a job?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I make games. At my previous job I did, I always did at home. Curently I make non-game software at home and games too. I also don't work anymore in the game industry.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In both cases which language that you&#xA;  would love to learn if you do not care&#xA;  about job!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Well, almost any language that is different from what I already know. More Ruby, Haskell, D, etc.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;And which one that you think you&#xA;  should learn to get high paid job?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Any language. That's more a company/project thing than a language problem.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is there a one that you can learn for&#xA;  both situations? for fun/job/etc?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I learnt C++ to make (and control any side of) games at home and at work. I'd like to learn D for the same reason. I learn a lot of other languages too because it help to get perspective and understand better your tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't base your career or anything other only on language. Learn one deep and then dive in another one that is the opposite in state of mind. You'll then learn a lot more than by choosing a language and then stick with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The better thing to do might be to have a project that forces you to use and learn diffeeren languages. For example almost all games are a combination of static language (C++ most of the time) and dynamic language (binding?) for scripting (often lua, python sometimes, sometime other languages like Falcon or Chaiscript).&#xA;Use python or ruby to set your build system (I don't mean to write a CMake but write scripts to build your resources together with the game for example).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In websites, I'm not sure wich type of project might help learning several opposed-minded languages but maybe just switchign between non-web and web apps might already be a good mind expander.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-11-22T13:33:20.557" CommentCount="2" />
  <row Id="20593" PostTypeId="2" ParentId="20586" CreationDate="2010-11-22T13:37:41.990" Score="4" ViewCount="" Body="&lt;p&gt;To get a good basic introduction to the language, read Peter Seibel's &lt;a href=&quot;http://www.gigamonkeys.com/book/&quot; rel=&quot;nofollow&quot;&gt;Practical Common Lisp&lt;/a&gt;. The book's excellent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Setting up emacs and SLIME can be tricky for a newbie, where &quot;tricky&quot; varies in magnitude depending on your OS. As usual, Windows gets the short end of the stick, but people have done the hard part and &lt;a href=&quot;http://www.pchristensen.com/blog/articles/installing-sbcl-emacs-and-slime-on-windows-xp/&quot; rel=&quot;nofollow&quot;&gt;written it up&lt;/a&gt; (SBCL, Emacs, SLIME).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once that's out the way, Planet Lisp referenced an &lt;a href=&quot;http://zaries.wordpress.com/2010/11/09/lisp-web-server-from-scratch-using-hunchentoot-and-nginx/&quot; rel=&quot;nofollow&quot;&gt;article recently&lt;/a&gt; describing how to set up Hunchentoot and nginx.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OS-specific edit: &lt;a href=&quot;http://mclide.in-progress.com/&quot; rel=&quot;nofollow&quot;&gt;MCLIDE&lt;/a&gt; might be a good place to start. I installed it, but haven't had the chance to actually use it, so I can't say anything useful about it. It certainly looks interesting!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: Eclipse has the &lt;a href=&quot;http://www.bitfauna.com/projects/cusp/cusp.htm&quot; rel=&quot;nofollow&quot;&gt;Cusp&lt;/a&gt; plugin, too.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-11-26T08:04:39.683" LastActivityDate="2010-11-26T08:04:39.683" CommentCount="4" />
  <row Id="20594" PostTypeId="1" AcceptedAnswerId="20980" CreationDate="2010-11-22T13:39:32.363" Score="0" ViewCount="147" Body="&lt;p&gt;Hi, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I remember Microsoft used to have this AI game for .NET framework which allowed you to program a species and this species could be introduced to an &quot;ecosystem&quot; full of species that other people have programmed and they could interact with each other etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can't remember what it was called, but I remembered thinking it was a pretty good idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was wondering, are there any other similiar sites like that, which allows you to design some sort of AI engine and pit it against other programmer's creations? It could be an ecosystem type thing or it could be a card or board game?&lt;/p&gt;&#xA;" OwnerUserId="3214" LastActivityDate="2010-11-23T20:59:23.857" Title="Anyone know of any AI engine games?" Tags="&lt;artificial-intelligence&gt;&lt;games&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="20595" PostTypeId="2" ParentId="20564" CreationDate="2010-11-22T13:49:59.830" Score="10" ViewCount="" Body="&lt;p&gt;Persistance is a skill that I don't see mentioned very much. And it is a skill - the ability to make yourself work through a problem, even if you can't see the end. Many people don't do this; they work on momentum only, or just do the minimum to get by. Unfortunatly, there's no way to tell whether a person has this trait by talking to them. You really need to be able to talk to others that have worked with the person. References can do this, but that option is not always available.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-22T13:49:59.830" CommentCount="2" />
  <row Id="20596" PostTypeId="1" CreationDate="2010-11-22T13:50:28.987" Score="6" ViewCount="183" Body="&lt;p&gt;I am currently facing a situation where I will need to obfuscate data for legal reasons (these are countrywide rules and not specific to me)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will still need to work with teams outside this area who will still need to access applications/databases for testing/deployment and so on, however the data must be fully obfuscated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your experiences of this scenario?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;e.g. Who owns what stage of the process, what access do the various parties have, how strong is the encryption, how do updates occur&lt;/p&gt;&#xA;" OwnerUserId="160" LastActivityDate="2010-11-23T17:47:54.823" Title="Cross border data obfuscation and how to deal with it?" Tags="&lt;database-development&gt;&lt;legal&gt;&lt;obfuscation&gt;&lt;encryption&gt;&lt;distributed-development&gt;" AnswerCount="3" CommentCount="4" />
  <row Id="20597" PostTypeId="2" ParentId="20581" CreationDate="2010-11-22T13:51:29.550" Score="5" ViewCount="" Body="&lt;p&gt;My first experience with programming was in high school in the early 80s. We used BASIC on an Apple II. I've been hooked on programming ever since. Up to that point I was planning on going to med school and becoming a doctor, so for me, programming being fun influenced my career choice. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, choosing a language isn't as simple as counting the number of job ads. For example, someone looking for Haskell programmers would be more likely to ask around on a Haskell newsgroup than to post on a job site. Someone looking for Lisp programmers would probably ask one of the frequent posters on comp.lang.lisp. Jane St. Capital has sponsored ads on Google Groups, in the groups related to functional programming, looking for OCaml programmers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if you learn C# or Java, &lt;em&gt;and&lt;/em&gt; a more &quot;fun&quot; language, you may be able to use the &quot;fun&quot; language to write tools to help in your daily work once you get hired.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-22T13:51:29.550" CommentCount="1" />
  <row Id="20598" PostTypeId="2" ParentId="14297" CreationDate="2010-11-22T13:54:40.060" Score="0" ViewCount="" Body="&lt;p&gt;Code that cannot ever, logically enter the execution path.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var product = repository.FindProduct(id);&#xA;&#xA;log.Info(&quot;Found product &quot; + product.Name);&#xA;&#xA;if (product != null)&#xA;{&#xA;    // This will always happen&#xA;}&#xA;else&#xA;{&#xA;    // **This won't ever happen**&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (messages.Count &amp;gt; 0)&#xA;{&#xA;    // Do stuff with messages&#xA;}&#xA;else if (messages.Count == 1)&#xA;{&#xA;    // **I hope this code isn't important...**&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4278" LastActivityDate="2010-11-22T13:54:40.060" CommunityOwnedDate="2010-11-22T13:54:40.060" />
  <row Id="20599" PostTypeId="1" CreationDate="2010-11-22T13:55:39.450" Score="7" ViewCount="430" Body="&lt;p&gt;I know that .NET cost alot if you are thinking from different points of view: the database, the servers,etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I think about Java or JSP I'm not sure how much does it cost and how it is comparted to .net regarding cost!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But when I think about LAMP, I find it the chepeast way, am I wrong?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And can anyone tell me please how much does JSP or java cost?&lt;/p&gt;&#xA;" OwnerUserId="26782" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-11-22T13:57:04.153" LastActivityDate="2011-03-14T22:59:03.950" Title="Is LAMP the cheapest way to run a dynamic website?" Tags="&lt;java&gt;&lt;web-development&gt;&lt;.net&gt;&lt;php&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="5" />
  <row Id="20600" PostTypeId="2" ParentId="20591" CreationDate="2010-11-22T14:01:56.097" Score="4" ViewCount="" Body="&lt;p&gt;If I am being Objective when I relate to this question I think of these things:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Does this managerial position line up with your short term and / or long term goals?  It looks like it does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Is the better pay a trade-off for moving to a less stable company?  I would say this depends on the amount of risk you are willing to take.  Once you make the switch to a managerial position and start making higher pay, your standard of living is going to change, will you want to move back to a non-managerial job that pays less?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Will the managerial experience out weigh any more development experience?  I find that managerial experience will far outweigh your experience in day to day development activities.  The reason that I say this is because being a manager entails a higher level of though and activity when it comes to development.  What I mean is that you will be more concerned with getting a project and a group of people from point A to point B outside of a box.  Your concern will be that the people interact well and that the project gets to point B on budget and on time, you won't necessarily be concerned with the details that the people working under you use to get from A to B.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say that if you are asking your self whether or not 7 years of development experience is enough, I say that is a subjective question.  I say that to be a better manager, you will need to give a managerial position a shot since it entails much more than just development.  At that point, you would be able to make a decision about whether or not you want to move forward.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, a good way to judge whether the particular position at the particular job would be worth your time, is if you could actually go to that business and shadow a manager for a day, or even conduct an informational interview.&lt;/p&gt;&#xA;" OwnerUserId="2281" LastActivityDate="2010-11-22T14:01:56.097" />
  <row Id="20601" PostTypeId="2" ParentId="20586" CreationDate="2010-11-22T14:04:01.103" Score="1" ViewCount="" Body="&lt;p&gt;If you'll be developing on a Mac, you may want to try &lt;a href=&quot;http://openmcl.clozure.com/&quot; rel=&quot;nofollow&quot;&gt;Clozure CL&lt;/a&gt;. It comes with an IDE that has Emacs-compatible keystrokes, and there's a bridge to Objective C so you can write Cocoa applications. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I've read Practical Common Lisp, but found &lt;a href=&quot;http://www.psg.com/~dlamkins/sl/cover.html&quot; rel=&quot;nofollow&quot;&gt;Successful Lisp&lt;/a&gt; to be helpful as well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, some patience on your part will be rewarded. Productivity and minor victories will come pretty quickly, but the big win may take a while.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-22T14:04:01.103" CommentCount="1" />
  <row Id="20602" PostTypeId="2" ParentId="20599" CreationDate="2010-11-22T14:06:08.610" Score="10" ViewCount="" Body="&lt;p&gt;Java/JSP can be run and developed entirely on a (free) open source platform (most likely Linux as an operating system with either MySQL or Postgres as the database) so in that sense the costs are the same as LAMP (assuming you use an open source database) - essentially free for the licenses.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same is true of Python, PHP, Ruby and Perl which would likely be the other contenders.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;.NET runs primarily on Windows so you'd need at least the Windows licenses for the servers (you could run using Mono on Linux but if you're asking this question I'd suggest that you keep things simple and avoid that).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a database perspective SQL Server would be the logical choice for a .NET application.  While you might be able to get away with the free express edition, eventually there could be a license cost there once the database or user numbers reach a certain level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond that you need to look at the cost of development tools.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;.NET will require a copy of Visual Studio.  Again there are express versions which are free but depending on what you're doing they may not be sufficient and you may need to shell out several hundred dollars per developer for a full copy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Java - as with PHP, Python, Ruby and so on - there are good, free open source development tools available.  Something like Eclipse would cover all of them and is freely available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the final thing could be the cost of actually developing the site.  The best technology here is likely to depend on what exactly the site does but assuming it's nothing too involved, you may find something like Ruby on Rails or Python with Django will allow the site to be developed fastest (and therefore cheapest).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-22T14:13:15.307" LastActivityDate="2010-11-22T14:13:15.307" CommentCount="7" />
  <row Id="20603" PostTypeId="2" ParentId="20599" CreationDate="2010-11-22T14:12:58.070" Score="3" ViewCount="" Body="&lt;p&gt;The answer to your question is a big ol' &quot;it depends&quot;. Typically Windows hosts will be more than Linux, but the cost all depends on what you need from your host. I pay $8 a month for Windows hosting and that includes unlimited MS SQL Server databases and &quot;unlimited storage and bandwidth&quot; (truly, there is no such thing though!) The same host has linux hosting for $4 a month, so half the cost but considering I know .Net I decided to go and pay the extra $4 a month.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;LAMP by far is the cheapest (and if your P = python you can even get free hosting on Google's App engine) in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end though, I think cost shouldn't be the first thing on your mind and you should go with what you know and what you enjoy.&lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-11-22T14:12:58.070" CommentCount="6" />
  <row Id="20604" PostTypeId="2" ParentId="20407" CreationDate="2010-11-22T14:20:17.487" Score="10" ViewCount="" Body="&lt;h2&gt;Yes…&lt;em&gt;ish&lt;/em&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I’ve got (for want of a better term) job “invitations” via email which explicitly mention my Stack Overflow profile, from companies that boast a 12/12 score on the &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;Joel Test&lt;/a&gt; and which honestly seem like extremely cool work environments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I know that the same has happened to several other people.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;But …&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I don’t believe for a second that I (or any of the other people) would score a job &lt;strong&gt;without an interview&lt;/strong&gt;. Like most others here, I think that Stack Overflow may help you to get exposure on the web. But that’s all. It merely gets your name out. It shows that you’re active and motivated but not whether you’re &lt;em&gt;qualified&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2366" LastEditorUserId="2366" LastEditorDisplayName="" LastEditDate="2010-11-24T22:13:54.753" LastActivityDate="2010-11-24T22:13:54.753" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="6" />
  <row Id="20605" PostTypeId="2" ParentId="20407" CreationDate="2010-11-22T14:21:11.353" Score="11" ViewCount="" Body="&lt;p&gt;Consider what it takes to get a good Stack Overflow rating...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;intelligence&lt;/li&gt;&#xA;&lt;li&gt;knowledge&lt;/li&gt;&#xA;&lt;li&gt;experience&lt;/li&gt;&#xA;&lt;li&gt;good language skills&lt;/li&gt;&#xA;&lt;li&gt;immense amounts of &quot;free&quot; time&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Now take the last point there, people who have very high reputations here take a great deal of time to answer the questions of the masses.  Now whilst hugely thankful for such benevolent people, this implies one of the following.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;They are unemployed&lt;/li&gt;&#xA;&lt;li&gt;They are self-employed and have a&#xA;lot of &quot;free&quot; time&lt;/li&gt;&#xA;&lt;li&gt;They are employed and spend all&#xA;their personal time sitting at a&#xA;screen &lt;em&gt;(for example, &quot;in want of a life&quot;)&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;They are employed and waste working&#xA;hours answering non-business&#xA;questions.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;All but number three are reasons for a prospective employer not to take you on, and the third makes you wonder if they are ideal for spending all day with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyhow, my boss is watching my screen a bit so I had better stop this post, before I have to use my Stack Overflow reputation to get me a new job...&lt;/p&gt;&#xA;" OwnerUserId="7990" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-09T10:45:37.013" LastActivityDate="2011-02-09T10:45:37.013" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="5" />
  <row Id="20606" PostTypeId="2" ParentId="14297" CreationDate="2010-11-22T14:25:49.207" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Catching general exceptions:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;try {&#xA;&#xA; ...&#xA;&#xA;} catch {&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;try {&#xA;&#xA; ...&#xA;&#xA;} catch (Exception ex) {&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Region overuse&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Typically, using too many regions indicates to me that your classes are too big. It's a warning flag that signals that I should investigate more into that bit of code.&lt;/p&gt;&#xA;" OwnerUserId="8117" LastActivityDate="2010-11-22T14:25:49.207" CommunityOwnedDate="2010-11-22T14:25:49.207" CommentCount="2" />
  <row Id="20607" PostTypeId="1" AcceptedAnswerId="20608" CreationDate="2010-11-22T14:28:50.193" Score="3" ViewCount="410" Body="&lt;p&gt;I was wondering if there are obvious advantages and disadvantages to using Ruby on Rails to develop a desktop application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;RoR has great infrastructure for rapid development, proper implementation of specs and automated acceptance tests, an immense number of popular libraries and the promise of being actively developed and maintained in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The downsides I can see are mostly about usability - installation of a Rails app as a local service and launching of a browser when it needs to be active may not come naturally to many users... or be technically easy to implement and support for different platforms.&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-11-22T15:01:43.427" Title="Is Ruby on Rails a suitable framework for a desktop application?" Tags="&lt;ruby-on-rails&gt;&lt;desktop&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="20608" PostTypeId="2" ParentId="20607" CreationDate="2010-11-22T14:33:24.897" Score="2" ViewCount="" Body="&lt;p&gt;Rails is a web framework, I'd use it for that or if you really want to produce a desktop application then pick something else.  You might be able to get it working as a desktop platform now but that's clearly not how it's seen by the community so who's to say it won't be changed in the future to make your implementation harder or impossible?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also suggest that if you're going to be constrained by a browser based UI, why not just host it on a server and get the benefits rather than having to deal with support of local installs?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best desktop applications will be ones written in a language which is intended for that purpose and ideally which are native (or in the case of .NET native-ish) to the operating system so they can adopt all the usual UI components, metaphors and functionality users are used to seeing on that OS.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-22T14:33:24.897" />
  <row Id="20609" PostTypeId="2" ParentId="14297" CreationDate="2010-11-22T14:35:19.830" Score="0" ViewCount="" Body="&lt;p&gt;Anything that violates principles that are important.  For instance, a few anti-patterns have been suggested (magic number -- see &lt;a href=&quot;http://en.wikipedia.org/wiki/Anti-pattern&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Anti-pattern&lt;/a&gt;).  Anti-patterns are called that because they cause problems (also already mentioned - fragility, maintenance nightmares, etc). Also, watch out for violation of SOLID principles - see &lt;a href=&quot;http://en.wikipedia.org/wiki/Solid_%28object-oriented_design%29&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Solid_(object-oriented_design)&lt;/a&gt;&#xA;Also, Code that doesn't consider separation of tiers (data access things inside the UI, etc).  Having coding standards and code reviews help to combat this.&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2010-11-22T14:35:19.830" CommunityOwnedDate="2010-11-22T14:35:19.830" />
  <row Id="20611" PostTypeId="2" ParentId="20407" CreationDate="2010-11-22T14:44:48.417" Score="3" ViewCount="" Body="&lt;p&gt;Common sense, team play and people skills are as much important as technical skills. It's better to have a decent score overall. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dealing with 'Hi Tech' bosses with low score in other skills is a nightmare.&lt;/p&gt;&#xA;" OwnerUserId="1260" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-09T10:53:31.623" LastActivityDate="2011-02-09T10:53:31.623" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="5" />
  <row Id="20612" PostTypeId="2" ParentId="20555" CreationDate="2010-11-22T15:00:58.700" Score="3" ViewCount="" Body="&lt;p&gt;I'd say it depends entirely on the languages in question. What is and what is not &quot;dead technology&quot; is subjective, to some extent. My personal opinion depends on knowing what the language you consider dead is, and also what the language you learned at college is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From your question, it sounds as though you are a recent graduate. My apologies if this is not the case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many old-fashioned programming languages, some of which are still used extensively. If the language were C++, for example, it is worth noting that it is currently used in almost all professionally-written console video games.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I wouldn't want to work with Fortran; however, the pool of people who would is shrinking every year, so it is a very lucrative language to be able to use.&lt;/p&gt;&#xA;" OwnerUserId="8303" LastActivityDate="2010-11-22T15:00:58.700" />
  <row Id="20613" PostTypeId="2" ParentId="20607" CreationDate="2010-11-22T15:01:43.427" Score="2" ViewCount="" Body="&lt;p&gt;No, for many reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Sub-par UI. Either you will be limited to traditional web forms based UI, or you will die trying to emulate rich UI interface with lots of JS/HTML5.&lt;/li&gt;&#xA;&lt;li&gt;No direct access to hardware. If you would like finer control of your print output, access to the scanner or smartcard reader or audio headset, you're doomed.&lt;/li&gt;&#xA;&lt;li&gt;Difficult deployment. While it's easy to set up your web server, Ruby interpreter and set of gems on a single web server, making a self-installing executable out of it is impossible, or nearly impossible.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Probably a lots of other issues I forgot. And this stands for any web platform, not only for RoR.&lt;/p&gt;&#xA;" OwnerUserId="7968" LastActivityDate="2010-11-22T15:01:43.427" CommentCount="1" />
  <row Id="20614" PostTypeId="2" ParentId="20476" CreationDate="2010-11-22T15:02:28.413" Score="14" ViewCount="" Body="&lt;p&gt;One issue is that you can often get a better product by pirating instead of buying.  Games frequently come with DRM that can make them difficult or impossible to play legitimately, and some DRM has damaged people's computers.  You can't buy the non-DRM versions, you can only pirate them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people buy games, don't bother opening the shrinkwrap, and then get copies from pirate sources and play them.  If you get people in the habit of doing that, don't be surprised if they start skipping the &quot;buying&quot; step.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;DVDs are in a similar state.  Many of the DVDs I've paid for have unskippable ads and such.  If I wanted to play the movie or TV episodes or whatever without playing through those, I'd have to pirate rather than buy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you can spend money on an inferior product, or pirate a superior one, you're far likelier to pirate and less likely to pay.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-22T15:02:28.413" CommentCount="9" />
  <row Id="20615" PostTypeId="2" ParentId="20476" CreationDate="2010-11-22T15:02:31.630" Score="7" ViewCount="" Body="&lt;p&gt;There are several reasons not related to perceived value or cost.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Cracked software overrides DRM which means I can actually use it the way I want.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It's actually difficult to buy some software.  I actually had to call Microsoft Support to find out where I could buy a copy of VS Professional.  By the time I actually had a copy in hand, I could have downloaded and installed it from a pirate site.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Versioning issues. I've already bought this software, but it's the previous version.  I've bought the 6 previous versions.  But you've changed the file format, and now I can't read documents that others are sending me.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="3084" LastActivityDate="2010-11-22T15:02:31.630" CommentCount="4" />
  <row Id="20616" PostTypeId="1" CreationDate="2010-11-22T15:05:53.500" Score="8" ViewCount="385" Body="&lt;p&gt;Hello,I'd like to develop apps for Windows Phone 7,but I can't register at AppHub,because my country (Slovakia) is not supported. A guy from Microsoft said that I need to find someone under whom I'd publish those apps. &#xA;Where would I find somebody who'd be willing to register there and basically act as my publisher? I'm risking that he'd take my app earnings and disappear if it's not an honest person. What would the &quot;publisher&quot; risk by signing his name under my apps? Or are any of you willing to do it? &lt;/p&gt;&#xA;" OwnerUserId="8306" LastEditorUserId="8306" LastEditorDisplayName="" LastEditDate="2010-11-22T15:14:52.353" LastActivityDate="2011-03-24T18:54:38.263" Title="Finding a publisher for Windows Phone Marketplace - I'm from an unsupported country" Tags="&lt;windows&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="3" />
  <row Id="20617" PostTypeId="2" ParentId="14297" CreationDate="2010-11-22T15:13:53.067" Score="0" ViewCount="" Body="&lt;p&gt;I once worked on a project where the contractor had tyepdef'ed every standard datatype from int to string including pointers to obscure names. His approach made understanding the code really difficult. Another style that warns me is premature flexibility; a product I once worked upon had the complete code in DLLs that were loaded in no predictable order. All this to accommodate future evolution. A few DLLs used thread wrappers for portability. It was a a nightmare to debug the program or predict the flow by reading the source code. Definitions were scattered across header files. It was no surprise that the code did not survive beyond second version.&lt;/p&gt;&#xA;" OwnerUserId="8308" LastActivityDate="2010-11-22T15:13:53.067" CommunityOwnedDate="2010-11-22T15:13:53.067" />
  <row Id="20618" PostTypeId="2" ParentId="20564" CreationDate="2010-11-22T15:23:53.503" Score="6" ViewCount="" Body="&lt;p&gt;Although it is a quality that may be more applicable to team than to individual developers, I think that there is a lot behind the saying, &quot;Great engineers ship.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's something that would be hard to demonstrate in an interview for most folks, but if I was interviewing a candidate who, for example, had authored and shipped a substantial open-source application, library or framework and could talk eloquently about the extra something that it takes to actually finish a non-trivial project, I would have to give that person a leg up over his or her competition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Contrariwise, if a potential candidate pointed me towards his Github account and I saw that it was full of half-completed, buggy, neglected or poorly-documented projects, I would have a good reason to disregard his candidacy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Coffee is for closers,&quot; as a man said in a movie once.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-11-22T15:23:53.503" />
  <row Id="20619" PostTypeId="2" ParentId="5373" CreationDate="2010-11-22T15:24:53.797" Score="0" ViewCount="" Body="&lt;p&gt;I know in my neck of the woods, Rails is in high demand. There was an article about it (and software development in the Chicago Tribune not too long ago) &lt;a href=&quot;http://articles.chicagotribune.com/2010-10-17/business/ct-biz-1017-out-technology-20101017_1_software-engineers-chicago-developers-tech-jobs&quot; rel=&quot;nofollow&quot;&gt;http://articles.chicagotribune.com/2010-10-17/business/ct-biz-1017-out-technology-20101017_1_software-engineers-chicago-developers-tech-jobs&lt;/a&gt; that talks about the companies who are looking for rails developers. I know that sites like Groupon.com are always looking for Rails developers (and actually created a location in Silicon Valley to get some Rails developers).&lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-11-22T15:24:53.797" />
  <row Id="20620" PostTypeId="2" ParentId="20591" CreationDate="2010-11-22T15:25:28.200" Score="1" ViewCount="" Body="&lt;p&gt;Your readiness and suitability to the job is not just a function of your experience - it is also dependent on your skills (both technical and inter-personal), career interests, aspirations, achievements and largely your self-confidence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An engineering management role is going to give you a greater exposure to the needs of the business - business processes, operational costs, meeting project deadlines - than you may have got as an engineer. You may have to let go, at least a bit, of the technical parts as you'll have extra responsibilities that have to be performed in the same time-frame as the engineers. Staying off the critical path of projects is a good idea as you have to juggle more than one issue throughout the day; your to-do list will never be linear as it may have been as an engineer. You'll likely have to assume more responsibility - that of your engineers' work - and, importantly, learn how explain to the higher levels of management, in business terms, when things go awry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In large corporations, I've seen a tendency for people who've been there a long time to be promoted into a management position due to length of service, rather than suitability for the role. This is a terrible mistake IMO, because LOS doesn't have any bearing on management ability, just a rough guide of knowledge of the business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have been in a management position, gaining another role in UK or Australia will be easier as the &quot;barrier for entry&quot; will only be logistics issue (Visa or work permit), rather than concerns about suitability for the role.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you feel ready to take on an engineering management role, &lt;strong&gt;go for it&lt;/strong&gt;. If it works out, you've entered a new phase of your career. If it doesn't, then you'll be glad you tried and then found out you prefer a more technically-focused role.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-11-22T15:25:28.200" />
  <row Id="20621" PostTypeId="2" ParentId="20599" CreationDate="2010-11-22T15:25:33.663" Score="0" ViewCount="" Body="&lt;p&gt;JSP/Java are free too (Tomcat is maintained by the Apache Foundation, and it's released under the same license as the Apache server).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;LAMP is just one choice for a free server stack (though it does tend to be the default choice).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The L can be replaced by FreeBSD. The A can be replaced by NginX, or an application server specific to your app (Tomcat for Java/JVM language, YAWS for Erlang, Hunchentoot/Araneida/Anti-Web for Common Lisp, the Racket Server for Racket, HAppS/Hyena for Haskell etc), most of which can also be used to serve vanilla pages. M can be switched out for PostgreSQL or SQLite (if your project is small enough) or MongoDB/[your preferred NoSQL DB]. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The P is probably the most flexible component; as I said above, most languages have their own, specialized application server, but even if you want to keep Apache, there is a &lt;code&gt;mod_[language]&lt;/code&gt; for most things. Even if there isn't one for the language you'd like, it's pretty simple to hook most of them up through CGI/FastCGI. There's a pretty flexible menu of choices out there, and whatever you build your app in, it's a good bet you'll be able to put a decent stack together for it given enough time and research.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, Apache is still the most popular server. Which, if nothing else, means that it's the most battle-tested you can use (certainly more than any commercial alternative), and that more people are likely to know how to use it (which helps with peripheral costs like hosting, or hiring an admin). If you're not looking to host something special, you can safely go with it.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-22T15:25:33.663" />
  <row Id="20622" PostTypeId="2" ParentId="16760" CreationDate="2010-11-22T15:27:18.557" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Is a string mutable or immutable?&lt;/li&gt;&#xA;&lt;li&gt;What is the difference between a class and a static class?&lt;/li&gt;&#xA;&lt;li&gt;What is a pointer?&lt;/li&gt;&#xA;&lt;li&gt;Describe Complexity.&lt;/li&gt;&#xA;&lt;li&gt;What is the difference between an Array and a Linked List.&lt;/li&gt;&#xA;&lt;li&gt;What is the difference between Merge Sort and Quick Sort?&lt;/li&gt;&#xA;&lt;li&gt;Given a spreadsheet with columns Name, Address, Zip code, and Phone number describe how you would convert the spreadsheet to a normalized database.&lt;/li&gt;&#xA;&lt;li&gt;Describe the differences between asynchronous and synchronous methods and the ways they need to be handled.&lt;/li&gt;&#xA;&lt;li&gt;How would you pass information from a server-side application to a web-application?&lt;/li&gt;&#xA;&lt;li&gt;What is your preferred language? What are some reasons you would use that language over X? (ie. why would you want to use Java over C# and what are some of the fundamental differences?)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-11-22T15:27:18.557" />
  <row Id="20623" PostTypeId="2" ParentId="20599" CreationDate="2010-11-22T15:28:43.237" Score="4" ViewCount="" Body="&lt;p&gt;LAMP is likely the cheapest solution in terms of basic hosting for a few bucks per month or avoiding paying license fees to Microsoft/Oracle. The real cost will be in developing your site. The cost of learning a new language is what really needs to be factored in as most companies fail because they never get a project completed as opposed to the mechanics of how to pay for software licenses.&lt;/p&gt;&#xA;" OwnerUserId="8309" LastActivityDate="2010-11-22T15:28:43.237" />
  <row Id="20624" PostTypeId="1" CreationDate="2010-11-22T15:31:58.610" Score="3" ViewCount="599" Body="&lt;p&gt;Hi everybody, I'm planning to develop a web based ERP, which should be full-ajax and with desktop-like UI. It will be a data-entry &amp;amp; data-report application. For developing it I'm considering all technologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;GWT: I saw that with GWT Designer you could create cool UIs, but databinding seems to be too complex&lt;/p&gt;&#xA;&#xA;&lt;p&gt;JSF: Netbeans no longer supports the visual web editor&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ZK: supports databinding in a relatively easy way, and has got an Eclipse-based visual editor&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people talk about REST + javascript as a winning choice&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to have your opinion about what could be the right choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you very much in advance!&lt;/p&gt;&#xA;" OwnerUserId="8312" LastActivityDate="2010-11-23T10:20:39.443" Title="GWT vs JSF vs ZK vs Restful+JS" Tags="&lt;web-development&gt;&lt;web-applications&gt;" AnswerCount="2" />
  <row Id="20625" PostTypeId="2" ParentId="20555" CreationDate="2010-11-22T15:36:11.127" Score="6" ViewCount="" Body="&lt;p&gt;I once took a job where the company was built upon technologies that I last used 20 years ago at University. The technology they used wasn't the slightest bit 'sexy' but the things they did with it were just awesome. It changed my opinion on many of the technologies and humbled me in many ways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It sounds like you need to make a cost/benefit analysis:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the one hand you have a job offer of a high-paying job with an old/unsexy/boring technology, but you could work with insert-awesome-technology-here in your spare time to keep your skills up to date. The increased salary would allow you to make some lifestyle changes (bigger house, nicer car, additional girlfriends, etc) and possibly lay down some security for the future - home with no mortgage, pension plans, savings, etc. If it doesn't work out, you can pursue the other route again as you've been keeping up-to-date in your spare time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, you could work for less, doing insert-awesome-technology-here in your day job.&lt;/p&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-11-23T00:31:08.933" LastActivityDate="2010-11-23T00:31:08.933" CommentCount="3" />
  <row Id="20626" PostTypeId="2" ParentId="20450" CreationDate="2010-11-22T15:41:07.387" Score="3" ViewCount="" Body="&lt;p&gt;First thing, what you're talking about isn't strictly Project Management, it's more a development or support process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The industry standard for the support side of things is, in the UK at least, &lt;a href=&quot;http://www.itil-officialsite.com/home/home.asp&quot; rel=&quot;nofollow&quot;&gt;ITIL&lt;/a&gt; and there are courses on that which run into weeks but given your team size I suspect that's overkill.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I were you I'd do some general reading around the subject and work out your own process internally.  The first steps are likely to be:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) A bug tracking tool.  If your manager is willing to cough for FogBugz or Jira then great but if not then Bugzilla does the job for free at a basic level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) A basic process for ensuring that all bugs / change requests are logged in Bugzilla and a basic assessment carried out (impact, estimate to fix, is it a change or a defect) and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) A process for understanding how these then get prioritised and addressed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These processes will have commonalities wherever you find them but will vary from company to company.  I'd suggest that they key factors are:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) That the logging and assessment process is rapid and happens as soon after the defect is raised as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) That the people involved in the prioritisation process have the authority to make those decisions.  There's no point in developers working through this stuff and then management saying that they disagree.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-22T15:41:07.387" />
  <row Id="20627" PostTypeId="2" ParentId="20581" CreationDate="2010-11-22T15:43:02.750" Score="2" ViewCount="" Body="&lt;p&gt;Python is no doubt the best of both worlds (employers and fun) but Ruby is more enjoyable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More programmers know Python or Perl than Ruby but once you're employed you would probably have better results and much more enjoyment if you use Ruby where others would normally use Python or Perl:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In Ruby you don't need to put &quot;:&quot; after every &lt;code&gt;for&lt;/code&gt; and &lt;code&gt;if&lt;/code&gt; condition as in Python. Many &quot;()&quot; can be ommited. For example: &lt;code&gt;&quot;I like Ruby&quot;.gsub /like/, &quot;LIKE&quot;&lt;/code&gt;. Many other things like that are simpler in Ruby. This makes the code more concise. &lt;/li&gt;&#xA;&lt;li&gt;Methods belong to objects instead of built-in methods floating in mid-air by themselves. &#xA;For example in Ruby &lt;code&gt;[&quot;-20&quot;.to_i.abs.to_s, 11.to_s].join&lt;/code&gt; whould have to be &lt;code&gt;''.join([str(abs(int(&quot;-20&quot;))), str(11)])&lt;/code&gt; in Python.&lt;/li&gt;&#xA;&lt;li&gt;Ruby will run even if you did not indent everything correctly (TABs in Python can be a problem). &lt;/li&gt;&#xA;&lt;li&gt;In Ruby everything is an object. Every class and every object can be modified in run time. In Python you cannot modify built-in in classes. For example you can take and existing string object and add a new method to it: &lt;code&gt;a = &quot;I like Ruby&quot;; class &amp;lt;&amp;lt;a; def say_it; self.gsub /like/, &quot;LIKE&quot;; end; end; a.say_it&lt;/code&gt; &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also see &lt;a href=&quot;http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby-from-python/&quot; rel=&quot;nofollow&quot;&gt;To Ruby From Python&lt;/a&gt; and &lt;a href=&quot;http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby-from-perl/&quot; rel=&quot;nofollow&quot;&gt;To Ruby From Perl&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your boss may not be very happy with the idea because others will eventually read or edit you're code. In that case you could argue that anyone who can read Python or Perl will be able to read and edit Ruby.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Moreover, programmers can pickup Ruby or Python in a few days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One should probably not use Ruby for &lt;em&gt;everything&lt;/em&gt;. In my opinion, Ruby is best at connecting things. In today's free software world there is a wealth of high quality building blocks available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At my work there was already a good project in Django (using Python) so I had to re-adjust from Ruby on Rails. It did not take long and I'm pretty happy. I still use Ruby for systems administration scripting and some parts of Bioinformatics data analysis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When joining a team one would need to adjust to the language that's already being used. That would likely be Java, Python, or .NET (C#, Visual Basic, ...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Somewhere, there is a fortunate person joining a well made project, driven by the right (most importantly), smart, friendly, skillful people, and written in Ruby.&lt;/p&gt;&#xA;" OwnerUserId="8025" LastEditorUserId="8025" LastEditorDisplayName="" LastEditDate="2010-12-22T21:35:48.337" LastActivityDate="2010-12-22T21:35:48.337" CommunityOwnedDate="2010-11-22T18:28:30.563" CommentCount="3" />
  <row Id="20628" PostTypeId="1" CreationDate="2010-11-22T15:46:21.310" Score="8" ViewCount="387" Body="&lt;p&gt;The canonical books on software development is fairly well established. However, after reading through a dreadful book full of bad advice on managing programming teams this weekend I am looking for recommendations for really good books that focus on the management side of programming (recruiting, performance measurement/management, motivation, best practices, organizational structure,  etc.) and not as much on the construction of software itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any suggestions?&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-22T22:31:13.177" Title="Best books on Managing a Software Development Team?" Tags="&lt;books&gt;&lt;management&gt;" AnswerCount="11" CommentCount="1" FavoriteCount="3" />
  <row Id="20629" PostTypeId="2" ParentId="20628" CreationDate="2010-11-22T15:50:29.090" Score="12" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0932633439&quot; rel=&quot;nofollow&quot;&gt;Peopleware: Productive Projects and Teams &lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you read one book make it this one.  It covers how to set about making your developers productive and backs up why these things are important with hard numbers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The chances are that you won't get all of them implemented (too many companies have ingrained cultures which will prevent them) but it's worth knowing what the ideal is and why, and having the ammunition to get what you can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/d7JBk.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-22T17:20:54.353" LastActivityDate="2010-11-22T17:20:54.353" CommentCount="1" />
  <row Id="20630" PostTypeId="2" ParentId="20628" CreationDate="2010-11-22T15:53:57.667" Score="3" ViewCount="" Body="&lt;p&gt;For recruitment &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1590598385&quot; rel=&quot;nofollow&quot;&gt;Smart and Gets Things Done&lt;/a&gt; by some bloke called Joel Spolsky has the virtue of being very very short with some good insights.  Some of what it talks about isn't going to be easy to get implemented in every company / country but there are often alternatives which will get you some of the benefits.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;While we're touting Joel's stuff the first book of &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1590593898&quot; rel=&quot;nofollow&quot;&gt;Joel on Software&lt;/a&gt; essays is also good though they're all available online.  Short, readable and thought provoking.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Proceeds to die of hypocrisy after all the times he's moaned about people banging on about how wonderful Joel and / or Jeff are.)&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-22T17:53:52.447" LastActivityDate="2010-11-22T17:53:52.447" CommentCount="2" />
  <row Id="20631" PostTypeId="2" ParentId="20564" CreationDate="2010-11-22T15:55:57.043" Score="4" ViewCount="" Body="&lt;p&gt;Communication and teamwork skills are important, but I would add that being able to understand the customer's requirements and acquire business domain knowledge have also been very important in my experience. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-22T15:55:57.043" />
  <row Id="20632" PostTypeId="1" AcceptedAnswerId="20641" CreationDate="2010-11-22T15:56:09.337" Score="6" ViewCount="577" Body="&lt;p&gt;Hey,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm working for a company full-time and myself part-time.  I started learning the Mac OS/Cocoa/Objective-C at work, and then I got the &quot;Brilliant Idea&quot; that I'd like to program for the iPhone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The iPhone stuff is going well, but I'm earning money there because I'm applying skills I learned on the job.  What is commonly considered violating company policy on things like this?  Is there any danger of the company claiming 'ownership' of my side-job?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I leave the company, could they ask me to stop working at my side business?  The company and my iphone stuff are in completely different &quot;areas&quot; but I'm still concerned.  What can I do to make sure?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What else should I be wary of?  Has anyone run into bad stuff like this before?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&lt;/p&gt;&#xA;" OwnerUserId="7499" LastActivityDate="2011-03-07T08:15:01.590" Title="Dangers of two Jobs? Violating Company Policy?" Tags="&lt;legal&gt;&lt;corporate-culture&gt;&lt;self-employment&gt;" AnswerCount="7" />
  <row Id="20633" PostTypeId="2" ParentId="20632" CreationDate="2010-11-22T15:58:46.450" Score="11" ViewCount="" Body="&lt;p&gt;You must ask a lawyer to look at your job contract.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-22T15:58:46.450" CommentCount="8" />
  <row Id="20634" PostTypeId="2" ParentId="20628" CreationDate="2010-11-22T15:58:52.717" Score="3" ViewCount="" Body="&lt;p&gt;As well as writing Code Complete, Steve McConnell also wrote &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1556159005&quot; rel=&quot;nofollow&quot;&gt;Rapid Development: Taming Wild Software Schedules&lt;/a&gt; which is about software development project management and for software project managers is almost as good as Code Complete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He also wrote &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735605351&quot; rel=&quot;nofollow&quot;&gt;Software Estimation: Demystifying the Black Art&lt;/a&gt; and &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1572316217&quot; rel=&quot;nofollow&quot;&gt;The Software Project Survival Guide&lt;/a&gt; both of which are worth a look, though Software Estimation is quite... detailed on a one specific subject so unless you're really interested in that you might want to steer clear.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-22T16:07:52.453" LastActivityDate="2010-11-22T16:07:52.453" CommentCount="3" />
  <row Id="20635" PostTypeId="2" ParentId="20552" CreationDate="2010-11-22T16:06:13.080" Score="5" ViewCount="" Body="&lt;p&gt;This was discussed at length in the google IO talk &lt;a href=&quot;http://www.youtube.com/watch?v=0SARbwvhupQ&quot; rel=&quot;nofollow&quot;&gt;Myth of the genious programmer&lt;/a&gt;, by Brian Fitzpatrick and Ben Collins-Sussman of Subversion. In short they concluded that it shouldn't be so early that there is nothing there yet (ie. &quot;come look at my awesome project! there is not really much here yet but a lot of awesome things are planned!&quot;) or too late so all the decisions are already made (It's hard to get a word in on a solo project.)&lt;/p&gt;&#xA;" OwnerUserId="8318" LastActivityDate="2010-11-22T16:06:13.080" CommentCount="1" />
  <row Id="20636" PostTypeId="1" CreationDate="2010-11-22T16:08:17.807" Score="8" ViewCount="304" Body="&lt;p&gt;I was just curious this morning as to the number of concurrent projects that most people are working on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think for this we can define the projects as whatever causes you to have to switch the scope of your thinking to be able to work on it. For example going from the Business Objects over to a back-end data service into a UI. Feel free to discuss how having to switch frequently effects your throughput or mood or whatever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I currently work in a role as a Project Manager/Development Lead and I've begun to get stretched across multiple projects (due to a multitude of factors) and it made me wonder about this. &lt;/p&gt;&#xA;" OwnerUserId="1760" LastActivityDate="2010-11-23T09:34:08.693" Title="How many projects are you currently developing on" Tags="&lt;productivity&gt;&lt;project-management&gt;" AnswerCount="13" FavoriteCount="1" />
  <row Id="20637" PostTypeId="2" ParentId="20628" CreationDate="2010-11-22T16:15:48.123" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1556158238&quot; rel=&quot;nofollow&quot;&gt;Dynamics of Software Development&lt;/a&gt; by Jim McCarthy is also good (as with the McConnell books it's Microsoft Press - a company notorious for shipping mediocre sofware late somehow managed to publish some very good books on how it should be done properly).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It contains 54 &quot;rules&quot; for software development - some obvious, some less so, pretty much all worth remembering and less than 200 pages (with pictures) so very readable (plus the 54 rules structure means it's in nice chunks).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-22T16:15:48.123" CommentCount="1" />
  <row Id="20638" PostTypeId="2" ParentId="2591" CreationDate="2010-11-22T16:15:53.927" Score="3" ViewCount="" Body="&lt;p&gt;I think Joel's first post I ever read was &lt;a href=&quot;http://www.joelonsoftware.com/articles/LeakyAbstractions.html&quot; rel=&quot;nofollow&quot;&gt;The Law of Leaky Abstractions&lt;/a&gt; and I think it's one of the greatest. Every (new) developer should read it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course you also have:&lt;a href=&quot;http://www.joelonsoftware.com/articles/Unicode.html&quot; rel=&quot;nofollow&quot;&gt;The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="8324" LastEditorUserId="8324" LastEditorDisplayName="" LastEditDate="2010-11-23T18:23:53.790" LastActivityDate="2010-11-23T18:23:53.790" CommentCount="0" />
  <row Id="20639" PostTypeId="2" ParentId="20476" CreationDate="2010-11-22T16:29:31.180" Score="6" ViewCount="" Body="&lt;p&gt;The ease of getting software without paying for it.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;The act of duplication is easy. Copying/applying a crack might be even less hassle than getting it &quot;properly&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Use of the duplicated software might be easier (no DRM constraints etc.).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It is easy to avoid prosecution. Stealing cars or shop items is far more risky.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It is culturally easy. Just like certain social groups share an acceptance of drug consumption or a preference for classical music, there are many social environments where digital stealing is accepted or even expected behaviour. I know of people which would feel ashamed to buy a Photoshop for 600 Euros instead of stealing it, because their friends would call them dumb then.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It is easy not to be recognized. People tend to act more selfish if they do not fear social consequences. Like people behaving less orderly while on a vacation spot than when their neighbours are watching. I think many people will keep the surplus money if someone hands them erroniously too much exchange at a shop. But they would think twice if they knew they are watched and others know about the mistakenly given money, too.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Not thinking is easy. The inflicted damage and the morale behind it is abstract. Ethical issues are harder to grasp and to live by. Everyone knows eating too much is unhealthy but still many are doing it. The immediate fun beats higher goals (like living more healthy).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Payment is done individually not automatically, so there is choice (that's a a totally different argument than &quot;ease&quot;, but thrown in as a sweetener). Many industries dealing with intellectual properties have developed automatic payment systems (like a radio station having to pay for songs they play, like automatic fees on blank CD sales etc) to remove such a choice, because everytime there is a choice, there will be one to make the wrong one.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I think most justifications using an ethical point of view to justify software duplications without paying for it (like &quot;software has to be free&quot;, &quot;it's not worth that much money&quot;, &quot;I would buy it, but..:&quot; etc.) are clever excuses for very mundane human urges that children already show while playing in a sandbox: Why should I ask for permission if I can just take the shovel from him much quicker with force? It is a very strong argument that Darwin had called &quot;survival of the fittest&quot;...&lt;/p&gt;&#xA;" OwnerUserId="8316" LastActivityDate="2010-11-22T16:29:31.180" CommentCount="1" />
  <row Id="20640" PostTypeId="2" ParentId="20636" CreationDate="2010-11-22T16:30:49.027" Score="7" ViewCount="" Body="&lt;p&gt;It varies for me.... sometimes it's none, sometimes its up to 4 or so. Don't think I've ever had more than 4 though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am currently only working on one project, however I am expected to stop and take care of help desk calls as they come in and am often interrupted to work on a side projects which can take anywhere from a few hours to a few days away from the main project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall I think I spend half my time on my main project and the other half of my time answering help desk calls, fixing other programs, and building reports and/or small web apps which users say they need to have done ASAP. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be fair I am part of a small team... only 3 people. Still, it really annoys me when I'm in the zone and someone interrupts me because there is a report they absolutely have to have done by the next day, or a program which isn't working the way it should and they absolutely need to have it fixed ASAP. By the time I get back to where I was, I often have forgotten what I was doing or where I was going and it takes me a few minutes to figure it out all over again.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-11-22T16:30:49.027" CommentCount="1" />
  <row Id="20641" PostTypeId="2" ParentId="20632" CreationDate="2010-11-22T16:31:01.007" Score="5" ViewCount="" Body="&lt;p&gt;The law depends on where you live of course. Do not take my answer as a substitute for contacting a lawyer espcially if you find you are in violation of a written policy. You should either have an employment contract which you can read to see if they allow moonlighting or you should be able to consult your company's policy manual to see if it is allowed. You can ask your HR person what the policy is if you can't find it (don't tell them you are aready doing it, just say you have a chance to do some moonlighting and would it be OK). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general if your company forbids moonlighting or if they require previous approval of moonlighting, you could be in legal trouble or lose your job if they find out about your side job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they do not, you are probably fine unless you did any of the programming on their computers or on their time or if you directly used their code in your app. In that case, they, not you, own the program in most places. Plus you could get fired for using company assests for private use. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-22T16:31:01.007" CommentCount="1" />
  <row Id="20642" PostTypeId="2" ParentId="20636" CreationDate="2010-11-22T16:32:07.577" Score="1" ViewCount="" Body="&lt;p&gt;Two, if you only count programs for which I'm being paid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Add in personal projects, and I'm up to maybe 5?&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-11-22T16:32:07.577" CommentCount="1" />
  <row Id="20643" PostTypeId="2" ParentId="20636" CreationDate="2010-11-22T16:42:57.293" Score="0" ViewCount="" Body="&lt;p&gt;For work, just one at the moment.  Having said that, it's a massive project to redo one of my department's major internal applications.  Part of the major change with this is to open it up to at least 83 other organizations that work with us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for personal projects, also just one... I've been playing far too many computer games to do more than that.&lt;/p&gt;&#xA;" OwnerUserId="8330" LastEditorUserId="8330" LastEditorDisplayName="" LastEditDate="2010-11-22T16:48:04.277" LastActivityDate="2010-11-22T16:48:04.277" />
  <row Id="20644" PostTypeId="2" ParentId="20576" CreationDate="2010-11-22T16:46:16.503" Score="0" ViewCount="" Body="&lt;p&gt;I use the excellent &lt;a href=&quot;https://github.com/irfn/zen-and-art&quot; rel=&quot;nofollow&quot;&gt;zen-and-art&lt;/a&gt; theme (also available for Emacs and Vim), with a few minor modifications of my own:&#xA;&lt;img src=&quot;http://i.imgur.com/qo5Tm.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-11-22T16:46:16.503" CommentCount="2" />
  <row Id="20645" PostTypeId="1" CreationDate="2010-11-22T16:52:42.197" Score="0" ViewCount="71" Body="&lt;p&gt;Can anyone tell me why the call to WSAWaitForMultipleEvents always returns -1 ?&#xA;It sometimes throws a fault.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;NOTE that if I remove the WSA event calls and perform a blocking connect call, everything works fine and I'm able to establish a connection (just that it blocks).  Below is test code I wrote to work through async socket calls.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    hostEntry = gethostbyname(host);&#xA;&#xA;    if( !hostEntry )&#xA;    {&#xA;      SetErrorMsg( WSAGetLastError() );&#xA;      return;&#xA;   }&#xA;   else&#xA;   {&#xA;     // Non Overlapped I/O&#xA;     CSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);&#xA;&#xA;&#xA;     if (CSocket == INVALID_SOCKET)&#xA;     {&#xA;       SetErrorMsg( WSAGetLastError() );&#xA;       WSACleanup();&#xA;       return;&#xA;     }&#xA;     else&#xA;     {&#xA;       hEvent = WSACreateEvent();&#xA;&#xA;       if(hEvent == WSA_INVALID_EVENT)&#xA;       {&#xA;         SetErrorMsg( WSAGetLastError() );&#xA;         closesocket(CSocket);&#xA;         return;&#xA;       }&#xA;       else&#xA;       {&#xA;&#xA;         if( WSAEventSelect(CSocket, hEvent, FD_ALL_EVENTS) == SOCKET_ERROR )&#xA;         {&#xA;           SetErrorMsg( WSAGetLastError() );&#xA;           closesocket(CSocket);&#xA;           WSACloseEvent(hEvent);&#xA;           return;&#xA;        }&#xA;        else&#xA;        {&#xA;          // Connect to the server&#xA;          serverInfo.sin_family = AF_INET;&#xA;          serverInfo.sin_addr = *((LPIN_ADDR)*hostEntry-&amp;gt;h_addr_list);&#xA;          serverInfo.sin_port = htons(port);&#xA;&#xA;          if( connect(CSocket, (LPSOCKADDR)&amp;amp;serverInfo, sizeof(struct sockaddr)) == SOCKET_ERROR  )&#xA;          {&#xA;            LastErrorCode = WSAGetLastError();&#xA;&#xA;            if( LastErrorCode != WSAEWOULDBLOCK )&#xA;            {&#xA;              SetErrorMsg(LastErrorCode);&#xA;              SocketShutdown();&#xA;            }&#xA;            else&#xA;            {&#xA;              WSAWaitForMultipleEvents(1, &amp;amp;hEvent, false, WSA_INFINITE, false); &#xA;&#xA;              /* line above returns -1 but I don't know why?&#xA;               */ &#xA;            }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="8181" LastActivityDate="2010-11-22T16:52:42.197" ClosedDate="2010-11-22T17:12:21.080" Title="WSAWaitForMultipleEvents throwin a fault" Tags="&lt;c++&gt;" CommentCount="4" />
  <row Id="20646" PostTypeId="2" ParentId="20624" CreationDate="2010-11-22T16:53:49.323" Score="3" ViewCount="" Body="&lt;p&gt;You are comparing a language (js), with a language framework(zk), with an architectural design style (rest), with a development toolkit (gwt).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you experience with any of them ?  I'd start with the core basics. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been building websites and enterprise scale systems for ten years and have never used a visual designer, and neither has anyone I worked with, so I wouldn't worry about that too much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Related:&#xA;&lt;a href=&quot;http://programmers.stackexchange.com/questions/19029/is-it-worth-learning-either-gwt-or-vaadin&quot;&gt;GWT or Vaadin&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-11-23T10:20:39.443" LastActivityDate="2010-11-23T10:20:39.443" CommentCount="6" />
  <row Id="20647" PostTypeId="2" ParentId="20632" CreationDate="2010-11-22T16:55:40.137" Score="3" ViewCount="" Body="&lt;p&gt;Many companies require you to sign an Non-Disclosure Agreement (NDA) that says something of the nature that you will not use knowledge of internal projects/technologies/etc. outside the company.  However, many are also written very broadly to say that if you work on anything outside the company they can claim it as theirs.  Typically, those contracts are too broad to enforce, but that doesn't mean that the company won't attempt it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a few red hot conflict of interest warning signs you have to look out for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Are you working on something that has overlap with your business?&lt;/li&gt;&#xA;&lt;li&gt;Are you working on technology that your company may see as something they want or need?&lt;/li&gt;&#xA;&lt;li&gt;Is the technology sufficiently similar to what your company uses that they can cry foul?&lt;/li&gt;&#xA;&lt;li&gt;Are you designing something your company's user's will want?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Any time you have &quot;inside&quot; knowledge that can give your personal company an edge, it smells like conflict of interest and it would be a really bad thing to ignore it.  If you don't match any of the above, don't think you are completely out of the woods.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do have a lawyer look over any NDA's or other agreements you had to sign to start work.  This includes a company's ethics and workplace conduct agreements.  In almost all cases you will need to communicate with your employer about your intentions.  They will give you further guidelines.  In some cases, you will need to draw up a new written and signed agreement regarding the project you are developing outside their company and resources.  (Just to be clear, internet connection from the office is their resource).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tread carefully, but it very well can be done.  The more outside your company's desired growth markets your efforts are, the less they will care.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-11-22T16:55:40.137" />
  <row Id="20648" PostTypeId="2" ParentId="20581" CreationDate="2010-11-22T17:06:23.397" Score="0" ViewCount="" Body="&lt;p&gt;Fun: Ruby on Rails&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Work: Ruby on Rails&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its like killing two birds with one stone!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then again, it all depends on what your target audience is/what you want to accomplish.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if your a small business or solo, most dont have enough money to invest in MS tools, and update it every few years, so another plus of Rails(unless your in the MS 'Dream' program, or whatever its called).&lt;/p&gt;&#xA;" OwnerUserId="6631" LastActivityDate="2010-11-22T17:06:23.397" />
  <row Id="20649" PostTypeId="2" ParentId="20628" CreationDate="2010-11-22T17:09:26.263" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/The_Mythical_Man-Month&quot; rel=&quot;nofollow&quot;&gt;The Mythical Man-Month&lt;/a&gt;. This is essential reading.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-11-22T17:09:26.263" CommentCount="1" />
  <row Id="20650" PostTypeId="2" ParentId="20636" CreationDate="2010-11-22T17:10:36.137" Score="2" ViewCount="" Body="&lt;p&gt;I decided to limit myself on &lt;strong&gt;2 (two)&lt;/strong&gt; well sized projects and delegate completely or freeze the rest. Having several irons in the fire = not good. &lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-22T17:10:36.137" />
  <row Id="20651" PostTypeId="2" ParentId="20636" CreationDate="2010-11-22T17:10:38.460" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;One.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.infoq.com/articles/multitasking-problems&quot; rel=&quot;nofollow&quot;&gt;Multitasking Gets You There Later&lt;/a&gt;, even though it may look and even feel like you're doing more. And you may indeed be &lt;em&gt;doing&lt;/em&gt; more, but the point is that &lt;em&gt;doing&lt;/em&gt; and &lt;em&gt;getting done&lt;/em&gt; are quite different animals.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-11-22T17:48:14.420" LastActivityDate="2010-11-22T17:48:14.420" CommentCount="4" />
  <row Id="20652" PostTypeId="1" CreationDate="2010-11-22T17:13:04.887" Score="5" ViewCount="214" Body="&lt;p&gt;I basically need some confirmation and clarification concerning Windows Azure with respect to a Silverlight application using RIA Services.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a normal Silverlight app that uses RIA services you have 2 projects:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;App&lt;/li&gt;&#xA;&lt;li&gt;App.Web&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;... where App is the default client-side Silverlight and app.web is the server-side code where your RIA services go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you create a Windows Azure app and add a WCF Web Services Role, you get:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;App (Azure project)&lt;/li&gt;&#xA;&lt;li&gt;App.Services (WCF Services project)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In App.Services, you add your RIA DomainService(s). You would then add another project to this solution that would be the client-side Silverlight that accesses the RIA Services in the App.Services project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You then can add the entity model to the App.Services or another project that is referenced by App.Services (if that division is required for unit testing etc.) and connect that entity model to either a SQLServer db or a SQLAzure instance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this correct?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If not, what is the general 'layout' for building an application with the following tiers:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;UI (Silverlight 4)&lt;/li&gt;&#xA;&lt;li&gt;Services (RIA Services)&lt;/li&gt;&#xA;&lt;li&gt;Entity/Domain (EF 4)&lt;/li&gt;&#xA;&lt;li&gt;Data (SQL Server)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="12611" LastEditorDisplayName="" LastEditDate="2011-02-06T11:03:53.913" LastActivityDate="2011-02-06T11:03:53.913" Title="Need clarification concerning Windows Azure" Tags="&lt;silverlight&gt;&lt;azure&gt;" AnswerCount="1" CommentCount="5" FavoriteCount="1" />
  <row Id="20653" PostTypeId="1" AcceptedAnswerId="20657" CreationDate="2010-11-22T17:16:15.963" Score="10" ViewCount="389" Body="&lt;p&gt;This is a dilemma about which I have been thinking for quite a while.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a graduate student and my topics of interest are programming language design, code analysis, compilation, etc. So far, this field has been very interesting and rewarding for me, so I was thinking about finding a job in that field and continuing to specialize in it. I feel like it's a relatively solid field which won't &quot;get out of style&quot; anytime soon. I've always thought that in such complex fields it's better to be a real expert than just another guy who superficially understand what the experts are talking about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I feel that by specializing this way I really limit my future option. I have always been a strong believer in multidisciplinary approaches to problems. Maybe I should go search for a general programming job in which I could gain experience in other fields, as well as occasionally apply my favorite field for solving problems. Specializing in only one or two fields can prevent me from thinking outside the box and cause stagnation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would really like to hear more opinions about this choice. The truth is I'm already leaning towards one of the choices, so basic psychology says nothing will change my mind, but I would still love to hear some feedback.&lt;/p&gt;&#xA;" OwnerUserId="8331" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-11-22T17:29:38.010" LastActivityDate="2011-01-04T22:55:56.680" Title="Is it better to specialize in a single field I like, or expand into other fields to broaden my horizons?" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;specialization&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="1" />
  <row Id="20654" PostTypeId="2" ParentId="20636" CreationDate="2010-11-22T17:17:29.567" Score="0" ViewCount="" Body="&lt;p&gt;I work as an independent contractor/consultant, and almost always have multiple projects going on.  But right now I'm a bit overloaded: my main contract is an embedded cellular system using C on an 8051.  Also doing another embedded project (iPhone dongle) using C on a HCS08.  Plus an embedded Linux video project on a TMS320DM365 with some additional HCS08s.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those three are my main focus, but in addition I am doing maintenance on a large PHP website (600 pages) I wrote a while back, adding features to a telephony project which uses a dsPIC33F, and just this morning got a new project making changes to a Delphi Windows program.  So six active clients altogether.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also designed the hardware for the four embedded projects I'm currently writing firmware for and laid out one of the PCBs myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a shareware program that needs updating but I've put that on hold.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-11-22T17:17:29.567" />
  <row Id="20655" PostTypeId="2" ParentId="20628" CreationDate="2010-11-22T17:20:21.623" Score="4" ViewCount="" Body="&lt;p&gt;After your read &lt;strong&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/20628/best-books-on-managing-a-software-development-team/20629#20629&quot;&gt;Peopleware&lt;/a&gt;&lt;/strong&gt; (a bit outdated, 1999, but is THE classic) here a more recent one from the same author (&lt;strong&gt;Tom DeMarco&lt;/strong&gt;&#xA;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0767907698&quot; rel=&quot;nofollow&quot;&gt;Slack&lt;/a&gt;&lt;/strong&gt; Getting Past Burnout, Busywork, and the Myth of Total Efficiency &#xA;&lt;img src=&quot;http://i.imgur.com/RJho7.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-22T17:57:41.840" LastActivityDate="2010-11-22T17:57:41.840" />
  <row Id="20656" PostTypeId="2" ParentId="20628" CreationDate="2010-11-22T17:22:49.507" Score="-1" ViewCount="" Body="&lt;p&gt;Lots of books mentioned above for the Software front. I would say no one book or a couple is sufficient. Management itself is a difficult task and is very subjective. I would recommend someone who is considering Management to read a lot of Harvard Business review books. They all have a concrete idea to share and these take a lot of reading and effort in implementation to sink in.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-22T17:22:49.507" />
  <row Id="20657" PostTypeId="2" ParentId="20653" CreationDate="2010-11-22T17:23:57.857" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Specialise if you enjoy it&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you are aware, if you specialise you are automatically incurring an opportunity cost in that you won't be immediably eligible for other technologies (e.g. Java programmers don't often immediately get accepted for compiler optimisation jobs). However, you have to balance this with your love of the complexity inherent in your chosen discipline. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You say you want to be an expert - well go ahead and take the time to learn your chosen discipline. We as a community always need new experts. However, my advice is to follow the pragmatic programmer recommendation of &lt;strong&gt;&quot;Learn a new language every year&quot;&lt;/strong&gt;. That way, while you're engaging in deep lexical analysis of algorithmic encoding, you can also be churning out a little iPhone app that interests you on the side. You never know, the cross pollenation of different paradigms may cause you some insight that will extend your specialisation into new areas.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-22T17:23:57.857" CommentCount="2" />
  <row Id="20658" PostTypeId="2" ParentId="20636" CreationDate="2010-11-22T17:25:37.817" Score="0" ViewCount="" Body="&lt;p&gt;Usually I work on one main project and get the odd additional task when I can add my special abilities to another project, but then it's mostly more of the same stuff I do already and no real change of &quot;scope of thinking&quot;. In my free time I work on 1 - 2 more projects (mostly) just for fun. Here is where the fun starts and where I enjoy doing different stuff. So on average I would say it's 2-3 different kind of projects.&lt;/p&gt;&#xA;" OwnerUserId="8316" LastActivityDate="2010-11-22T17:25:37.817" />
  <row Id="20659" PostTypeId="2" ParentId="20628" CreationDate="2010-11-22T17:30:28.103" Score="1" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/1iq5a.jpg&quot; alt=&quot;http://ecx.images-amazon.com/images/I/41UaBBxd3yL._SL500_AA300_.jpg&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0977616649&quot; rel=&quot;nofollow&quot;&gt;(link to the book)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Agile or not, a retrospective process (looking back on a team's recent work and looking for ways to do it better) is important.  This book has lots of useful techniques a team can use to reconstruct what went on, figure out root causes, and decide what to do going forward.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-22T17:30:28.103" />
  <row Id="20661" PostTypeId="2" ParentId="20628" CreationDate="2010-11-22T17:39:19.173" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/159059844X&quot; rel=&quot;nofollow&quot;&gt;Managing Humans&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not many concrete action items, but it's an interesting read and provides perspective.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-22T17:39:19.173" CommentCount="3" />
  <row Id="20662" PostTypeId="2" ParentId="20564" CreationDate="2010-11-22T17:47:15.747" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Its never enough.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Common Sense. Problem Solving. Interest in technology as a whole. Attitude of doing things the right way. Persistence. Team play/Communication.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rate each skill on 1-5. If you got min 3 and on an average 20+. You will have a good life as a developer. 25+ will be successful developer. Less than 10 and you need to seriously think about a career in software development.&lt;/p&gt;&#xA;" OwnerUserId="1260" LastActivityDate="2010-11-22T17:47:15.747" />
  <row Id="20663" PostTypeId="1" AcceptedAnswerId="20668" CreationDate="2010-11-22T17:48:02.093" Score="3" ViewCount="98" Body="&lt;p&gt;I'm working on a decentralized transaction processing system that needs both authentication and general encryption, and I have a design decision to make: should I use PGP or X.509 certificates?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While the world tends to use X.509 for authentication (especially in browsers), they are based on the principle of having a &lt;em&gt;central&lt;/em&gt; authority vouch for each certificate, meaning the system would need a CA and anyone who wants to participate in the system would need to have their keys signed by that CA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PGP, on the other hand, is based on a &quot;Web of Trust&quot;, where parties who want to communicate merely need to have &lt;em&gt;any&lt;/em&gt; trusted party in common who will sign both keys. A CA isn't necessary in this case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My overall design goals prefer the Web-of-Trust model, to keep the system decentralized, but I may also have customers who prefer a centralized model, and I don't want to prohibit that possibility. Is there anything stopping the Web-of-Trust principle from working with X.509? Likewise, is it easy and straightforward to mimic CAs in the PGP cryptosystem? Are they interchangeable in practice?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(For some reason, this is making me think of the false dichtomy: &quot;I'm trying to bang in a nail, should I use a beer bottle or the heel of a shoe?&quot;)&lt;/p&gt;&#xA;" OwnerUserId="4788" LastEditorUserId="4788" LastEditorDisplayName="" LastEditDate="2010-11-22T22:20:32.183" LastActivityDate="2010-11-22T22:20:32.183" Title="Are PGP keys as good for certificates as X.509 keys?" Tags="&lt;security&gt;&lt;encryption&gt;" AnswerCount="1" />
  <row Id="20664" PostTypeId="1" CreationDate="2010-11-22T17:54:03.277" Score="1" ViewCount="111" Body="&lt;p&gt;I don't know if &quot;In-Memory debugger&quot; is really what I mean, or if it's even possible to produce, but it's the best name I could come up with...  Here's the tool I'm looking for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Given a variable name, resolve that name to a reference&lt;/li&gt;&#xA;&lt;li&gt;Given that reference, be able to watch the object referenced&lt;/li&gt;&#xA;&lt;li&gt;Given the watch, be able to visualise it in a useful way, e.g.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;browse the properties of the object as you can in Visual Studio&lt;/li&gt;&#xA;&lt;li&gt;be notified when the object referenced is changed.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Here's a use case for this hypothetical tool.  I have spent all of today trying to track down an ObjectDisposedException in my C# web app.  The object being disposed is the WindowsIdentity of the current user, and there would appear to be a race condition causing the WindowsIdentity to be disposed before it is used.  If I could watch a particular memory reference in an intelligent way, rather than a variable in some given scope, I think it would help me pin down the source of this sort of bug more easily.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does such a tool exist for .NET?&lt;/p&gt;&#xA;" OwnerUserId="1736" LastActivityDate="2010-11-22T20:46:30.227" Title="In-Memory Debugger for .NET?" Tags="&lt;tools&gt;&lt;.net&gt;&lt;c#&gt;&lt;debugging&gt;" AnswerCount="2" />
  <row Id="20665" PostTypeId="1" CreationDate="2010-11-22T17:59:46.127" Score="5" ViewCount="202" Body="&lt;p&gt;We're in the process of moving our development environment to a so-called &quot;High-Security&quot; environment consisting of separate development, QA, and live systems (no interaction between them, each system will be segregated with no real data on dev or qa systems).  At the moment, there is a lot of talk about how we should be doing this with the most extreme suggestions being dual control logins and access to all source code (development and release), dual control access to the machines to do our work, and limited or no external access (which would mean that we'd have to leave our desks and go elsewhere when we need to look something up).  What I'm trying to do is to find some information and documentation on best practices for a security environment for development environments so that I can talk them down to something more reasonable.  All I've been able to find is security practices when it comes to the content of the code itself, not the environment it is written in.  Are there any documents or resources that give good guidelines for the environment out there?  Thanks.&lt;/p&gt;&#xA;" OwnerUserId="8340" LastEditorUserId="8340" LastEditorDisplayName="" LastEditDate="2010-11-22T18:36:06.657" LastActivityDate="2010-11-23T00:44:18.227" ClosedDate="2010-11-23T03:49:09.433" Title="High Security Environment Best Practices question" Tags="&lt;work-environment&gt;&lt;development-process&gt;&lt;security&gt;" AnswerCount="2" CommentCount="5" FavoriteCount="1" />
  <row Id="20666" PostTypeId="2" ParentId="20636" CreationDate="2010-11-22T18:04:17.907" Score="0" ViewCount="" Body="&lt;p&gt;One project that is &lt;strong&gt;in development&lt;/strong&gt; and many many more that I am &lt;strong&gt;responsible for maintaining&lt;/strong&gt;. This tends to the be the norm for me, one thing thats new that I'm working on plus whatever bug fixes I need to complete on things I've finished developing. Typically the bug fixes take precedence over what is currently in development.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-11-22T18:04:17.907" />
  <row Id="20667" PostTypeId="2" ParentId="20636" CreationDate="2010-11-22T18:08:56.547" Score="5" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;1 Big project at work : nothing special, just the current project I'm working on.&lt;/li&gt;&#xA;&lt;li&gt;1 Big project at home : something that can become really useful or that I could build a company on.&lt;/li&gt;&#xA;&lt;li&gt;1 Toy project at home : something to play with some concepts or technologies.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I also have a paper-comic project and a webcomic project. They don't have the same rythm of production( and I'm still bad at the webcomic as it require regularity).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tried to focus on one project only at home but it's hard because I'm able to think about it a lot in the day but once home it's harder (because I'm exausted). That said, I can still work by just applying what I thought about in the day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also always tend to get a &quot;toy&quot; project (even sometimes in comics) because it help with experimentation and just creating something for &quot;fun&quot;. Once you decided a project to be serious, it's less fun if you can't work on it during the day.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-11-22T18:08:56.547" CommentCount="6" />
  <row Id="20668" PostTypeId="2" ParentId="20663" CreationDate="2010-11-22T18:10:07.927" Score="2" ViewCount="" Body="&lt;p&gt;PGP keyservers can act as an authoritative point of trust(similar to a CA).  The thing I like about PGP keys/keyservers is that I choose which sources to trust to build this web.  In most modern OSes and applications using x509/CA/web-browser model there are &quot;chain of trust&quot; issues where there are several ways to fool/break the chain.  Alternately, you can run your own CA, but if you do and someone with a signing certificate from an automatically imported one(an isp/foreign government for example) could break your chain of trust trivially.  You wouldn't even know.&lt;/p&gt;&#xA;" OwnerUserId="4534" LastActivityDate="2010-11-22T18:10:07.927" />
  <row Id="20669" PostTypeId="2" ParentId="20636" CreationDate="2010-11-22T18:14:17.707" Score="1" ViewCount="" Body="&lt;p&gt;One that get's all my attention and excitement and 3 or 4 that I grudgingly plod along with.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-11-22T18:14:17.707" />
  <row Id="20670" PostTypeId="2" ParentId="16820" CreationDate="2010-11-22T18:23:57.413" Score="1" ViewCount="" Body="&lt;p&gt;I'll also point out that you may not want to code forever. You might want to move into management where a degree (particularly an MBA) can be the price of admission past the first line supervisor. Hard to get that MBA without a BA or BS. You may not think this is a good idea now, but when you are married and have two small children and you start to look at how much it will cost to raise them, then management becomes a much more attractive option. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may also eventually want to specialize in an area where the college degree is a must. I've known very few self-taught software architects for instance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You simply have more options with the degree than without it and it's alot easier to do before you have a family. The open source experience is easier to get after the degree because you don't have to commit as much time to it when life gets busy on you. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-22T18:23:57.413" />
  <row Id="20671" PostTypeId="2" ParentId="20665" CreationDate="2010-11-22T18:26:33.857" Score="-1" ViewCount="" Body="&lt;p&gt;Restricted internet access would be top priority. If the situation is like &quot;for your eyes only&quot; I would suggest this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Internet only available through remote login on some other machine with read only access. All internet activity should be monitored. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;CD-ROM/USB ports disabled.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;CPU Cabinet Locked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Camera phones not allowed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No printer access. Separate machine with printer/scanner access. Maybe one common machine for 5-6 people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prior approval required for carrying any external electronic devices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Surprise audits time to time.&lt;/p&gt;&#xA;" OwnerUserId="1260" LastActivityDate="2010-11-22T18:26:33.857" CommentCount="11" />
  <row Id="20672" PostTypeId="2" ParentId="20636" CreationDate="2010-11-22T18:30:25.117" Score="0" ViewCount="" Body="&lt;p&gt;Two. I find it difficult to handle two Projects at a time.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-22T18:30:25.117" />
  <row Id="20673" PostTypeId="2" ParentId="20599" CreationDate="2010-11-22T18:33:28.670" Score="0" ViewCount="" Body="&lt;p&gt;The Java platform is equally cheap if not cheaper.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-22T18:33:28.670" />
  <row Id="20674" PostTypeId="2" ParentId="20581" CreationDate="2010-11-22T18:36:53.597" Score="0" ViewCount="" Body="&lt;p&gt;Java is certainly good for jobs&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-22T18:36:53.597" />
  <row Id="20675" PostTypeId="2" ParentId="14297" CreationDate="2010-11-22T18:40:23.577" Score="0" ViewCount="" Body="&lt;p&gt;Modules that have more documentation and comments than actual &lt;em&gt;code&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-22T18:40:23.577" CommunityOwnedDate="2010-11-22T18:40:23.577" CommentCount="1" />
  <row Id="20676" PostTypeId="2" ParentId="14856" CreationDate="2010-11-22T18:40:49.800" Score="18" ViewCount="" Body="&lt;p&gt;Design Patterns mostly. They are over used and under utilised.&lt;/p&gt;&#xA;" OwnerUserId="672" LastEditorUserId="241" LastEditorDisplayName="" LastEditDate="2010-12-10T10:07:34.080" LastActivityDate="2010-12-10T10:07:34.080" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="2" />
  <row Id="20677" PostTypeId="1" AcceptedAnswerId="20686" CreationDate="2010-11-22T18:45:34.537" Score="5" ViewCount="228" Body="&lt;p&gt;Recently I started to feel frustrated a bit about .Net. Currently I'm working as .Net lead developer (in web development area). Also I'm begining development of my saas startup.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a feeling that .Net hinders me in a lot of things, starting from web server choice to ORM(I know we have plenty of em but.. in MS ecosystem everything not from MS feels somewhat 'inconsistent'...). I have prototyped my app in Python(Django), Ruby(Rails), Groovy(Grils) and .Net(ASP.NET MVC) and Python(Django) was the nicest to work with. So now I'm concidering swiching my project to Python and start swiching to it as my main platform. But you know it frightens me a bit to throw away all my experience in MS ecosystem...     &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe some programmers, who have made this kind of transition, can give a couple of advices to me, please? &lt;/p&gt;&#xA;" OwnerUserId="8153" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-22T20:20:21.640" LastActivityDate="2010-11-22T20:20:21.640" Title="Need some advice for next big thing and career advancement" Tags="&lt;career-advice&gt;&lt;c#&gt;&lt;python&gt;&lt;django&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="20678" PostTypeId="2" ParentId="20564" CreationDate="2010-11-22T18:47:41.453" Score="11" ViewCount="" Body="&lt;p&gt;These are more traits than skills, but I'd likely suggest these are still worth finding in someone to be a successful developer:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Versatility&lt;/strong&gt; would be another trait I'd put on there.  Sometimes a developer may have to fill roles outside of pure development,e.g. business analyst, architect, or tester.  I know I've had various parts on projects where I'm doing something other than designing or writing code and this should be something to see in another.  Not everyone can accept taking on those other roles.  Ask what kinds of situations has the developer had in the past where they had to fill another role and how that turned out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Humility&lt;/strong&gt; would be another that I'd likely put as a requirement.  Ego can cause lots of trouble in some places and not everyone can accept that there may be someone better at something than they are.  If someone else has a better idea, let that be what gets done.  You might have a sample of the developer's code that you ask them to critique and see how well can they correct themselves or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Pride&lt;/strong&gt; would be another to put down there.  This is somewhat in contrast to the previous quality, but if someone doesn't have a sense of pride in their work what kind of quality do you think it is?  Not being satisfied is slightly different here as probably a lot of developers can be perfectionistic.  Ask of what past project do they feel most proud?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Self-motivation&lt;/strong&gt; would also be an important skill to see.  What drives them?  How well can they articulate this?  &lt;a href=&quot;http://www.imdb.com/title/tt0151804/quotes&quot; rel=&quot;nofollow&quot;&gt;&quot;Office Space&quot;&lt;/a&gt; has this line from Peter Gibbons:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Eight, Bob. So that means that when I&#xA;  make a mistake, I have eight different&#xA;  people coming by to tell me about it.&#xA;  That's my only real motivation is not&#xA;  to be hassled, that and the fear of&#xA;  losing my job. But you know, Bob, that&#xA;  will only make someone work just hard&#xA;  enough not to get fired.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That is something to which I suspect many developers and non-developers can relate.  Why are you doing the job you do?  This can be a good question but do look for the sincerity and authenticity in the response as sometimes canned answers can occur that one has to spot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Curiosity&lt;/strong&gt; would be last on my list to add.  The desire to see how something works, to learn new technologies and step outside one's comfort zone, are other markers for this that can be found in successful developers.  A short story on how one gets into development may be a way to see this trait though another is to ask them about something they haven't seen and see if they have a, &quot;Well that could be interesting to explore,&quot; or a &quot;Oh brother, not that again,&quot; type of look.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-22T18:47:41.453" CommentCount="1" />
  <row Id="20679" PostTypeId="2" ParentId="20677" CreationDate="2010-11-22T18:48:52.050" Score="5" ViewCount="" Body="&lt;p&gt;You are not throwing away your &lt;strong&gt;existing&lt;/strong&gt; experience. You are gaining &lt;strong&gt;more&lt;/strong&gt; experience.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I like changing the brand of your car. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You already &lt;strong&gt;know how&lt;/strong&gt; to drive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All you need to learn is where things are on the dashboard and hope it will be cheaper in maintenance than the previous one ;)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-22T18:48:52.050" CommentCount="6" />
  <row Id="20680" PostTypeId="2" ParentId="4671" CreationDate="2010-11-22T18:51:33.530" Score="3" ViewCount="" Body="&lt;p&gt;I wrote some debugging output to fix a bug where chunks of code wasn't executed. It's output was: &lt;code&gt;&quot;Bend over {name of one stakeholder that began with B}!&quot;&lt;/code&gt; in a loop to check if the code was running at all. Me and the guy I was pair programming with thought it was funny and witty at the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...and then we forgot to remove the output when the problem was fixed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Luckily I noticed it just before the team made the release. &lt;em&gt;Phew!&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="1683" LastActivityDate="2010-11-22T18:51:33.530" CommunityOwnedDate="2011-01-11T04:02:16.833" CommentCount="1" />
  <row Id="20681" PostTypeId="2" ParentId="14297" CreationDate="2010-11-22T18:56:08.020" Score="0" ViewCount="" Body="&lt;p&gt;Our legacy VB6 code, you can open any Module or form code page and find a screen full of Public or Global #&amp;amp;@&lt;em&gt;! variables declared at the top, being referenced from all over the @&amp;amp;!&lt;/em&gt;!(*!# program. ARGH!!!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Whew, I had to get that out :-) )&lt;/p&gt;&#xA;" OwnerUserId="4202" LastActivityDate="2010-11-22T18:56:08.020" CommunityOwnedDate="2010-11-22T18:56:08.020" />
  <row Id="20682" PostTypeId="2" ParentId="20564" CreationDate="2010-11-22T18:57:42.353" Score="2" ViewCount="" Body="&lt;p&gt;I agree that communications is paramount, but I have experienced a failure in an excellent coder who wouldn't show other engineers the use of his processes. I was able to duplicate his processes and show them to others but without his help. He got fired because he wouldn't teach.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-11-22T18:57:42.353" />
  <row Id="20683" PostTypeId="2" ParentId="20628" CreationDate="2010-11-22T18:58:46.547" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1590590171&quot; rel=&quot;nofollow&quot;&gt;Herding cats&lt;/a&gt; is especially written for programmers who have become managers.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-22T18:58:46.547" CommentCount="3" />
  <row Id="20684" PostTypeId="1" AcceptedAnswerId="20710" CreationDate="2010-11-22T18:58:49.470" Score="5" ViewCount="470" Body="&lt;p&gt;Recently an architect described our company as offering a Rolls-Royce solution (MVC) when all he needed was a Toyota (Web Forms).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm curious to find out what you think about web forms vs MVC as an architectural choice.&lt;/p&gt;&#xA;" OwnerUserId="8250" LastActivityDate="2010-11-22T20:06:28.470" Title="Why would you use MVC over Web Forms?" Tags="&lt;asp.net&gt;&lt;architecture&gt;&lt;mvc&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="20685" PostTypeId="2" ParentId="20684" CreationDate="2010-11-22T19:04:24.777" Score="-1" ViewCount="" Body="&lt;p&gt;Maybe because MVC makes it more flexible to control HTML!&lt;/p&gt;&#xA;" OwnerUserId="26782" LastActivityDate="2010-11-22T19:04:24.777" CommentCount="1" />
  <row Id="20686" PostTypeId="2" ParentId="20677" CreationDate="2010-11-22T19:05:04.710" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;But you know it frightens me a bit to&#xA;  throw away all my experience in MS&#xA;  ecosystem&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Keywords: MS ecosystem&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would help if you think of yourself a Software Developer, not as an &lt;code&gt;&amp;lt;insert language here&amp;gt;&lt;/code&gt; Developer. Sometimes the language is your choice, and other times it's your employer's choice. Either way you need to pick up on the language and be productive with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're not throwing away all your experience, just the experience that revolves around the .NET framework and ASP.NET MVC model. The toughest part will be discovering what the Python libraries have to offer and how Django works. The good news is Python isn't an obscure language so you'll find good books, communities, and help for it relatively easy. Of course, there's also a wealth of resources on StackOverflow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All your other experience will continue to be relevant, namely experience in organizing classes and methods, refactoring, design concepts, and so on. Only now you need to figure out how to implement those things in the Python world and learn its best practices.&lt;/p&gt;&#xA;" OwnerUserId="7510" LastActivityDate="2010-11-22T19:05:04.710" CommentCount="1" />
  <row Id="20688" PostTypeId="1" CreationDate="2010-11-22T19:09:09.857" Score="1" ViewCount="308" Body="&lt;p&gt;Which will take more effort to write desktop applcations:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Java?&#xA;-.NET?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And can you tell me why one of them make life easier? &lt;/p&gt;&#xA;" OwnerUserId="26782" LastEditorUserId="6393" LastEditorDisplayName="" LastEditDate="2010-11-22T19:29:17.367" LastActivityDate="2010-11-22T20:05:52.580" ClosedDate="2010-11-23T03:33:09.143" Title="Which makes life easier for desktop applications Java or .NET?" Tags="&lt;java&gt;&lt;.net&gt;&lt;desktop&gt;" AnswerCount="3" CommentCount="3" />
  <row Id="20689" PostTypeId="2" ParentId="1106" CreationDate="2010-11-22T19:09:34.023" Score="0" ViewCount="" Body="&lt;p&gt;You know you're &lt;strong&gt;good&lt;/strong&gt; at it when you like what you're doing &lt;em&gt;(and it's not just a trivial task)&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You know you're &lt;strong&gt;bad&lt;/strong&gt; (yet) when you keep swearing randomly while you code.&lt;/p&gt;&#xA;" OwnerUserId="8239" LastActivityDate="2010-11-22T19:09:34.023" CommunityOwnedDate="2010-11-22T19:09:34.023" CommentCount="2" />
  <row Id="20690" PostTypeId="2" ParentId="20581" CreationDate="2010-11-22T19:10:57.030" Score="3" ViewCount="" Body="&lt;p&gt;At the risk of sounding a bit arrogant, I think every other answer I've seen to this question has missed asking the crucial question in return: what kind of code to you want to develop? What's your idea of fun?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just for example, a couple of people have cited Ruby as a possible candidate. On one hand, this is reasonable &lt;em&gt;possibility&lt;/em&gt; -- Ruby does have some real good points. However, if you really want to develop high-performance numeric code, Ruby probably isn't a great choice, for either a job or for fun. I doubt much of anybody is going to hire people to do such a thing, and trying to use it for that purpose is more likely to painful than fun. In the other direction, if you really want to develop a web site, Fortran is probably going to be pretty much an unmitigated pain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few people also derive an odd pleasure from getting a language to do things for which it initially seems completely unsuited (e.g., in the extreme case, people who write code in languages like Brainfuck, Befunge, Java, or Intercal). For normal people, however, it's generally the most fun to write a type of code you find interesting in a language that's well suited to that kind of task. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as work goes, I think I'd still start from the kind of code you want to write. From there, consider how far from that ideal type of code you're willing to stray in order to get paid. Finally, put together a list of languages that suit those tasks well enough that using them won't be excessively painful.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-22T19:10:57.030" />
  <row Id="20691" PostTypeId="2" ParentId="4671" CreationDate="2010-11-22T19:12:58.260" Score="10" ViewCount="" Body="&lt;p&gt;I think I've posted this elsewhere, but it took me a while to figure out why this didn't work:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;sudo apt-get install sudo&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Another favorite of mine is this one:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (a==b);&#xA;{&#xA;    do_something();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It took me forever to figure out what was wrong with the above.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-22T19:12:58.260" CommunityOwnedDate="2011-01-11T04:02:16.833" CommentCount="1" />
  <row Id="20692" PostTypeId="2" ParentId="19036" CreationDate="2010-11-22T19:16:34.580" Score="2" ViewCount="" Body="&lt;p&gt;C++/Qt4 (Even got a very good free IDE called QtCreator).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And it can be very cross-platform as long as you don't use windows-specific code.&lt;/p&gt;&#xA;" OwnerUserId="8310" LastActivityDate="2010-11-22T19:16:34.580" />
  <row Id="20693" PostTypeId="2" ParentId="20688" CreationDate="2010-11-22T19:17:44.173" Score="1" ViewCount="" Body="&lt;p&gt;What operating system(s) do you want to develop for? I can't talk for Java, but I know .Net makes writing Windows GUIs very easy (which I found to be the worst part of creating a desktop application) and while I haven't used Mono on Linux, as far as I know it only supports .Net 2.0 so no Linq (which I love!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you know Java or a .Net language already or are you learning from scratch?&lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-11-22T19:17:44.173" CommentCount="2" />
  <row Id="20695" PostTypeId="2" ParentId="6284" CreationDate="2010-11-22T19:18:19.317" Score="0" ViewCount="" Body="&lt;p&gt;Java is &lt;em&gt;better&lt;/em&gt;, but C# is &lt;strong&gt;&lt;em&gt;even more better&lt;/em&gt;&lt;/strong&gt;. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously though, Java is starting to suck while C# is starting to get awesome.&lt;/p&gt;&#xA;" OwnerUserId="8239" LastActivityDate="2010-11-22T19:18:19.317" />
  <row Id="20696" PostTypeId="2" ParentId="20688" CreationDate="2010-11-22T19:19:25.990" Score="3" ViewCount="" Body="&lt;p&gt;If your definition of desktop applications includes &quot;that aren't so ugly and unresponsive that everybody hates using them&quot;, it simplifies the answer a lot, because for most practical purposes it eliminates Java immediately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Admittedly, .NET isn't a &lt;em&gt;whole lot&lt;/em&gt; better -- you get a choice WPF (fast, but &lt;em&gt;still&lt;/em&gt; doesn't render text well) or Forms (slow and no cool effects, but at least it does manage to produce readable text). Nonetheless, at least it's good enough to do a mediocre job for a few kinds of applications, which puts it ahead of Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, I realize I'm &quot;bad-mouthing&quot; a couple of popular choices, but what I'm saying is still accurate. WPF really does still have problems with text. Forms-based applications really do have pretty poor performance. Java applications really are ugly and unresponsive. They've gotten better over time, but on a scale of 1 to 10, they've only progressed from (at best) a 2, all the way up to (maybe) a 4. Twice &lt;em&gt;as&lt;/em&gt; good, but still not &lt;em&gt;good&lt;/em&gt; by any stretch of the imagination.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: I should add a point that really comes closer to addressing the question you actually asked. Tools &lt;em&gt;for&lt;/em&gt; .NET are almost inevitably written &lt;em&gt;in&lt;/em&gt; .NET. Likewise, tools for Java are almost inevitably written in Java. As such, you're pretty much stuck with a choice:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;general-purpose tools (e.g., emacs) with little or no tailoring specifically for Java.&lt;/li&gt;&#xA;&lt;li&gt;Java-specific tools that are written in Java so they're ugly and unresponsive.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The (somewhat) greater range of choices in .NET leads to a better choice of tools. That, in turn, makes writing .NET applications less annoying.&lt;/p&gt;&#xA;" OwnerUserId="902" LastEditorUserId="902" LastEditorDisplayName="" LastEditDate="2010-11-22T20:05:52.580" LastActivityDate="2010-11-22T20:05:52.580" CommentCount="4" />
  <row Id="20697" PostTypeId="2" ParentId="20688" CreationDate="2010-11-22T19:21:28.593" Score="5" ViewCount="" Body="&lt;p&gt;Windows - .NET wins. There is no alternative or better technology.&lt;/p&gt;&#xA;" OwnerUserId="1260" LastActivityDate="2010-11-22T19:21:28.593" CommentCount="5" />
  <row Id="20699" PostTypeId="2" ParentId="1106" CreationDate="2010-11-22T19:31:44.867" Score="0" ViewCount="" Body="&lt;p&gt;I'm going to take part of this question to be asking 'what are some criteria to evaluate my competence at a programming language'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found &lt;a href=&quot;http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm&quot; rel=&quot;nofollow&quot;&gt;this matrix&lt;/a&gt; to be pretty useful in that regard. Most of the items are actually more about being a competent programmer in general, but once you get down the the Programming, Experience, or Knowledge headings you'll see some that depend on language used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, as with any somewhat-arbitrary divisions into categories it isn't perfect. But I think it is pretty useful nonetheless. It can give you at least some idea of where you are and where you should go.&lt;/p&gt;&#xA;" OwnerUserId="7814" LastActivityDate="2010-11-22T19:31:44.867" CommunityOwnedDate="2010-11-22T19:31:44.867" />
  <row Id="20702" PostTypeId="2" ParentId="20407" CreationDate="2010-11-22T19:34:12.707" Score="10" ViewCount="" Body="&lt;p&gt;I hate to break it to you but...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;High SO rep != great programmer&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, many of them are. However, there are some users that are on the site so much, answering so many questions &lt;strong&gt;but their average score per answer is very low&lt;/strong&gt; yet that still have a 5 digit rep due to their high activity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there's enough data there, an interviewer could possibly read answers to gleen insights into their approaches to solving problems but to go on straight score would make a company look downright silly.&lt;/p&gt;&#xA;" OwnerUserId="3881" LastEditorUserId="3881" LastEditorDisplayName="" LastEditDate="2010-11-22T19:39:53.933" LastActivityDate="2010-11-22T19:39:53.933" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="3" />
  <row Id="20703" PostTypeId="1" CreationDate="2010-11-22T19:36:56.890" Score="0" ViewCount="185" Body="&lt;p&gt;I was looking for a good ASP.NET hosting, I found a good one and sent them email to ask them about the plan I will choose. While they were discussing some issues with me I asked if it is better to choose SQL Server or MySQL and they said that's my choice but they recommened MySQL and they said it takes less memory, here is a quote from their email:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot; mySQL uses allot less memory, for example we have one SQL Server database with 100 databases and it uses 5GB of memory, we have also a mySQL database with also 100 databases which uses 300MB of memory.The memory footprint of mySQL is very much smaller than SQL Server.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think? &lt;/p&gt;&#xA;" OwnerUserId="26782" LastActivityDate="2010-11-22T22:17:12.213" ClosedDate="2010-11-22T23:09:00.237" Title="Does MySQL use less memory than SQL Server ?" Tags="&lt;mysql&gt;&lt;sql-server&gt;" AnswerCount="2" CommentCount="3" />
  <row Id="20704" PostTypeId="2" ParentId="20684" CreationDate="2010-11-22T19:43:18.200" Score="2" ViewCount="" Body="&lt;p&gt;An ASP.NET MVC solution doesn't have to be any more complicated than a WebForms solution. Personally, I find ASP.NET MVC to actually be a lot simpler than WebForms, and it definitely seems to be inherently cleaner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From my experience, a lot of the MVC frameworks (ASP.NET, Rails, CodeIgniter, etc.) have much of the same core functionality and conventions. WebForms is really the odd duck from a web perspective. My guess is most web programmers would be much faster at picking up ASP.NET MVC than WebForms.&lt;/p&gt;&#xA;" OwnerUserId="4881" LastEditorUserId="4881" LastEditorDisplayName="" LastEditDate="2010-11-22T20:06:20.547" LastActivityDate="2010-11-22T20:06:20.547" />
  <row Id="20705" PostTypeId="2" ParentId="16820" CreationDate="2010-11-22T19:43:25.330" Score="1" ViewCount="" Body="&lt;p&gt;There's no reason you can't do both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've done a few years in college, and am now in university, with several years work in between. In all three time periods, I've spent some of my spare time on my own projects. Sometimes it's hard to fit those in, especially when schoolwork must take priority, but at the same time your own projects will give you variety in the things you do. Plus you can pursue interests outside of your current main focus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found it really beneficial to discuss with others a variety of little projects I've worked on. It's tricky to pull off, but it is worthwhile!&lt;/p&gt;&#xA;" OwnerUserId="8187" LastActivityDate="2010-11-22T19:43:25.330" />
  <row Id="20706" PostTypeId="2" ParentId="20703" CreationDate="2010-11-22T19:46:42.270" Score="3" ViewCount="" Body="&lt;p&gt;I think it would be extremely hard to get a true apples/apples comparison between the two. There are probably hundreds of variables that need to be taken into account for memory usage by either platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any event, memory usage would not be in the top 5 reasons I'd pick one platform over the other.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-22T19:46:42.270" CommentCount="3" />
  <row Id="20708" PostTypeId="1" AcceptedAnswerId="20716" CreationDate="2010-11-22T19:56:02.203" Score="3" ViewCount="427" Body="&lt;p&gt;I run a small Drupal consulting shop and we've been trying different groupware solutions for what seems like ages, yet nothing we've found seems to be a good fit.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;We don't need CRM-overkill such as SugarCRM offers -- it's just too much for our small size.&lt;/li&gt;&#xA;&lt;li&gt;We do need git integration (at a minimum, an easy way to associate commits with issues)&lt;/li&gt;&#xA;&lt;li&gt;Time tracking on configurable or 15m increments&lt;/li&gt;&#xA;&lt;li&gt;per-project issue tracking&lt;/li&gt;&#xA;&lt;li&gt;billing (incl. recurring billing for support contracts, etc)&lt;/li&gt;&#xA;&lt;li&gt;some sort of per-project notes/wiki for things like login credentials, client contact info, etc.&lt;/li&gt;&#xA;&lt;li&gt;Contact logging (Client foo called at 2:20pm and asked to add bar to the spec, signed addendum with pricing due to client NLT CoB today, to be returned by CoB tomorrow)&lt;/li&gt;&#xA;&lt;li&gt;Open source solutions are greatly preferred to closed ones&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Most of all, it should be very efficient to use.&lt;/strong&gt; Several solutions just fell out of use here because they required too many clicks for simple, frequent tasks like logging time spent on an issue or noting a call from a client.  It shouldn't take 20 minutes to make a note.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; I almost forgot to mention: we're a mixed Linux/Mac shop with no Windows users.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastEditorUserId="5516" LastEditorDisplayName="" LastEditDate="2010-11-22T20:04:09.263" LastActivityDate="2010-12-29T13:04:34.553" Title="What groupware/project-management apps (preferably self-hosted webapp) do you recommend for a small dev shop?" Tags="&lt;project-management&gt;&lt;consulting&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="1" />
  <row Id="20709" PostTypeId="2" ParentId="20708" CreationDate="2010-11-22T20:02:01.540" Score="1" ViewCount="" Body="&lt;p&gt;Using this for couple of months. Its pretty economic, efficient and uses less clicks to do tasks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.taskmerlin.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.taskmerlin.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Download a trial version and see if it suits you.&lt;/p&gt;&#xA;" OwnerUserId="1260" LastActivityDate="2010-11-22T20:02:01.540" CommentCount="1" />
  <row Id="20710" PostTypeId="2" ParentId="20684" CreationDate="2010-11-22T20:03:39.680" Score="6" ViewCount="" Body="&lt;p&gt;The Rolls-Royce/Toyota analogy is terribly flawed and misleading. One (ASP.NET MVC) is not simply a fancier or more expensive version of the other (ASP.NET WebForms). They are vastly different approaches to building web applications using ASP.NET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, the biggest architectural difference between MVC and WebForms is how they work with the stateless environment of the web: WebForms works hard to build a set of abstractions that hide the stateless nature of web programming, whereas MVC embraces the stateless environment and works with it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each approach has its benefits and detriments, but I really enjoy how building web sites with MVC feels much more &lt;em&gt;natural&lt;/em&gt; than WebForms (with its &lt;a href=&quot;http://blog.devadept.com/2010/02/abstractions-abstractions-pile-them-on.html&quot; rel=&quot;nofollow&quot;&gt;layer upon layer of leaky abstractions&lt;/a&gt;).&lt;/p&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-11-22T20:03:39.680" />
  <row Id="20711" PostTypeId="2" ParentId="20407" CreationDate="2010-11-22T20:04:04.250" Score="4" ViewCount="" Body="&lt;p&gt;I've gotten job offers before solely based on participation in online forums. The way I see it, it doesn't automatically get you hired, but it can be a way to get noticed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I've been at my first and only job for exactly 6 years today, and am not planning to jump ship. Therefore, I don't participate in online forums to pad my resume. I do it to help people and to check whether I really am as clever as I think I am ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think participation in stackoverflow is a particularly efficient way to get an &quot;in&quot; with prospective employers. I can think of lots of better ways to make myself more &quot;marketable&quot;, if I wanted to do that. If marketability is your motivation to be here, you might as well not bother.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-11-22T20:04:04.250" CommunityOwnedDate="2011-01-17T22:21:44.413" />
  <row Id="20712" PostTypeId="1" CreationDate="2010-11-22T20:05:47.463" Score="0" ViewCount="195" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/4680/is-it-possible-to-become-a-good-programmer-if-you-dont-like-math&quot;&gt;Is it possible to become a good programmer if you don&amp;#39;t like math?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Hi guys,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you think a professional programmer must be very good at math when considering building web applications and simple desktop ones?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers. &lt;/p&gt;&#xA;" OwnerUserId="26782" LastActivityDate="2010-11-22T20:09:07.753" ClosedDate="2010-11-22T20:17:32.300" Title="Math and programming!" Tags="&lt;programming&gt;&lt;math&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="20713" PostTypeId="2" ParentId="20684" CreationDate="2010-11-22T20:06:28.470" Score="1" ViewCount="" Body="&lt;p&gt;The top reason you would use ASP.NET MVC over ASP.NET WebForms is testability. Sure you can kind of unit test WebForms but this requires mocking frameworks and a lot pain. The second reason is MVC does make it a bit &lt;em&gt;easier&lt;/em&gt; to separate concerns.  This can provide a great deal of code reuse and make your code loosely coupled.  This does not mean it's impossible to do the same in ASP.NET with patterns like MVP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The downside of MVC is that you lose a lot of the functionality and that has been built into WebForms over the past decade (well almost).  MVC has come a long way since its inception to provided similiar features. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as performance, does anyone have proof one way or another of which tech is &quot;faster&quot;? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think one is better than the other. I do really like the MVC framework and have used it with great success but I always make sure that I choose the tech that matches the project.&lt;/p&gt;&#xA;" OwnerUserId="8354" LastActivityDate="2010-11-22T20:06:28.470" />
  <row Id="20714" PostTypeId="2" ParentId="20712" CreationDate="2010-11-22T20:09:07.753" Score="0" ViewCount="" Body="&lt;p&gt;nope. I'm a professional developer, and I suck at math.  It helps, but (depending on what you are building) it may not be necessary.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-11-22T20:09:07.753" CommentCount="2" />
  <row Id="20715" PostTypeId="2" ParentId="20476" CreationDate="2010-11-22T20:09:52.730" Score="0" ViewCount="" Body="&lt;p&gt;Some basics:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Economics&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In selling things, we can divide costs into fixed and marginal.  Marginal cost is the extra expense incurred by selling one more thing, while fixed costs are independent of how many things are sold.  By subtracting marginal costs from total revenue, we get the marginal revenue (not as standard a term), and costs are normally set to maximize that.  By subtracting fixed costs from marginal revenue, we get profit or loss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Setting prices is normally done to maximize marginal revenue (high prices mean high revenues for few sales, low prices mean lower revenues for more sales).  Further, companies are normally greedy, since they're normally rated on profits.  Therefore, high prices are not because a company wants more money (they all do), but because that's the price that makes the company the most money.  Similarly, companies can't just raise prices to make up for costs or anything else, since if they're doing things right that will reduce their profitability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Traditional manufacturing&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Traditionally, the economy has been based on selling tangible things, even when it appeared otherwise.  Newspapers were good at selling packages of cheap paper with news printed on it, not news itself.  The secret of being successful was to make and sell things at low cost, and sell at higher prices.  In a competitive environment, the market price of something was based on its marginal cost, and it was stable because the manufacturers could make things less expensively than their competitors or customers.  This is what most people's ideas of a market economy are based on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Information Economy&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main difference is that information, in various forms, can be reproduced at almost no cost, both by the original manufacturer and the customer.  By conventional market standards, above, this means that the price of music or software or other such things should be approximately zero.  The other major effect is that valuable things can be easily copied, so somebody who wants a copy can get one without depriving anybody else of theirs.  Indeed, if what is copied has value, then making additional copies, with or without anybody's permission, increases total wealth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another effect has been the breakdown of media channels.  &quot;Channels&quot; was a good word, because it implied constriction and potential control.  When I was younger, the easiest way for me to get access to the AP news feed was to buy a newspaper and read what they printed of it.  Today, I have direct access from my phone, so the easiest way is to take my phone out of my pocket.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Music sales, for example, have been affected by both those main effects.  It used to be that a music company could manufacture an object containing music much less expensively than I could, and I had no way of getting the music off the object except simply listening to it.  This meant that I had to get music from record companies.  Today, I can make copies of music easily, and I can get such copies from many sources.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Copyright&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The solution to free copying was originally copyright.  As long as marginal costs remained significant, and media channels ruled, it was fairly simple.  Anybody seeking to make copies in any significant quantity required expensive equipment, and any attempt to make money by selling large numbers of properties could be caught and prosecuted.  There was no need to worry about individual copies, since they weren't economically significant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The legal basis for copyright in the US is the provision of a monopoly for a limited time to encourage people to create things.  (I've seen no evidence that this was considered as any sort of property back then.)  Copyrights that make it easier to profit from creative work have two desirable features:  they allow sufficiently good artists to concentrate on their art, and they provide financial incentive for creating.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-22T20:09:52.730" CommentCount="1" />
  <row Id="20716" PostTypeId="2" ParentId="20708" CreationDate="2010-11-22T20:10:11.437" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.redmine.org/&quot; rel=&quot;nofollow&quot;&gt;Redmine&lt;/a&gt;&lt;/strong&gt; serves my company pretty well for project management. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of your points, it misses billing and git integration. AFAIK, at least. I've never had to set up recurring issues or the like, I supposed you could set something up in the calendar add-on, which it has. I should note that it does &quot;integrate&quot; with git in the sense that you can have it display the repo, and give you a little &lt;code&gt;diff&lt;/code&gt; ui, but it doesn't let you associate revisions with issues (again, AFAIK, I haven't needed to, but I'm not a Redmine guru, so there may be a way).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You host it, it's open source (and written in Ruby), it's efficient for the user (it has right-click functionality on the issues page, which took me a while to figure out, and you can edit multiple issues at once), and it has per-project calendar/wiki/news/documents/files/Atom feed.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-11-23T02:12:15.487" LastActivityDate="2010-11-23T02:12:15.487" CommentCount="2" />
  <row Id="20717" PostTypeId="2" ParentId="20664" CreationDate="2010-11-22T20:16:26.733" Score="1" ViewCount="" Body="&lt;p&gt;I think all you're asking for is already implemented in Visual Studio....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Could you explain what you couldn't achieve using VS debugger?&lt;/p&gt;&#xA;" OwnerUserId="5564" LastActivityDate="2010-11-22T20:16:26.733" CommentCount="2" />
  <row Id="20718" PostTypeId="2" ParentId="20632" CreationDate="2010-11-22T20:25:06.950" Score="1" ViewCount="" Body="&lt;p&gt;There's the legal issues and then there's the employment issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In most parts of the US, employment is &quot;at will&quot;, meaning that the company can let go any employee with no notice or reason given (the employee, of course, has the same right).  This means that, even if what you are doing is perfectly legal, your employer could terminate you for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The legal issue, typically, is if the employer has any claim on the work the employee did on his or her own time.  This, again, varies by contract and jurisdiction, and the only actually reliable way to determine this is to consult a lawyer familiar with local employment law.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check your company policy on moonlighting, which should be available in a handbook or your company intranet.  If it's OK there, ask your boss, preferably hypothetically at first.  If the company's policy is no moonlighting, or your boss doesn't want you to, you may have to choose between the day job and your evening activities.  Presumably, you will want a day job, but you may be able to find another easily enough.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-22T20:25:06.950" />
  <row Id="20719" PostTypeId="2" ParentId="20407" CreationDate="2010-11-22T20:32:39.333" Score="3" ViewCount="" Body="&lt;p&gt;A high SO score can get your foot in the door at plenty of jobs.  But it's always the interview that makes or breaks you.  If you're bad at interviewing (like me), then a high SO score will get you the interview but not the job.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-22T20:32:39.333" CommunityOwnedDate="2011-01-17T22:21:44.413" />
  <row Id="20720" PostTypeId="1" AcceptedAnswerId="20724" CreationDate="2010-11-22T20:35:57.893" Score="2" ViewCount="556" Body="&lt;p&gt;Could any one please give me some links to small-medium websites use ASP.NET and C# in their platform?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Please Ignore:&lt;/strong&gt; MySpace, Stack overflow sites, MSN, Microsoft, Dell (As I know these) I am looking forward to have a look at some other small-medium sites. &lt;/p&gt;&#xA;" OwnerUserId="26782" LastActivityDate="2011-01-05T23:01:21.617" Title="Websites built in ASP.NET C# except myspace and stack overflow sites" Tags="&lt;websites&gt;&lt;asp.net&gt;" AnswerCount="4" FavoriteCount="2" />
  <row Id="20721" PostTypeId="1" CreationDate="2010-11-22T20:37:06.180" Score="2" ViewCount="149" Body="&lt;p&gt;I posted this question over at StackOverflow, but Maybe it's more appropriate to ask here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work at a small Web Dev firm, and have been handling all the PHP/MySQL/etc. for a while. I'm looking at improving our practices to allow for easier collaboration as we grow. Some things I have in mind are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Implementing a versioning system (source control)&lt;/li&gt;&#xA;&lt;li&gt;Coding standards for the team (unless&#xA;mandated by a certain framework,&#xA;etc.)&lt;/li&gt;&#xA;&lt;li&gt;Enforcing a common directory&#xA;structure for our Desktops (for&#xA;backup purposes, etc.)&lt;/li&gt;&#xA;&lt;li&gt;Web-based&#xA;task/project/time/file/password/contact&#xA;management and collaboration&#xA;app(we've tried a bunch; I may just&#xA;create one)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What do more experienced Lead/Sr. Developers view as necessary first steps in this area? Do you recommend any books? One thing to consider is that the bulk of our daily tasks involve maintenance and adding minor functionality rather than new projects, and the team size will be between 3 and 5.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just found a related question here: &lt;a href=&quot;http://programmers.stackexchange.com/questions/15829/advice-for-solo-programmer-whose-team-will-expand-in-2011&quot;&gt;Advice for solo programmer whose team will expand in 2011&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8364" LastEditorUserId="8364" LastEditorDisplayName="" LastEditDate="2010-11-23T15:32:02.890" LastActivityDate="2010-11-23T15:32:02.890" Title="Web Development Team Leadership and Standards" Tags="&lt;project-management&gt;&lt;software-engineering&gt;&lt;team&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="1" />
  <row Id="20722" PostTypeId="2" ParentId="20407" CreationDate="2010-11-22T20:38:49.263" Score="7" ViewCount="" Body="&lt;p&gt;If you spend time getting 5-digit reputation on Stack Overflow then you probably know what you're doing. That, more than any numerical value, is what get you the jobs.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-09T10:49:19.910" LastActivityDate="2011-02-09T10:49:19.910" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="2" />
  <row Id="20723" PostTypeId="1" AcceptedAnswerId="20741" CreationDate="2010-11-22T20:44:43.263" Score="15" ViewCount="764" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/1947/how-to-prepare-yourself-for-programming-interview-questions&quot;&gt;How to prepare yourself for programming interview questions?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I consider myself to be a good programmer.  I put in my resume, do a phone interview, and people love me.  But once I get to the in-person interview, I bomb.  And I don't just mean that I do sort of bad at them.  I mean that I &lt;em&gt;bomb&lt;/em&gt; the interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any other engineers like me who are terrible interviewees who have gotten better at it or found out ways to get the job in spite of being terrible at interviewing?&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-04T16:53:57.883" ClosedDate="2011-05-13T10:24:39.950" Title="How do I get better at acing technical interviews?" Tags="&lt;career&gt;&lt;job-interview&gt;" AnswerCount="9" CommentCount="8" FavoriteCount="8" />
  <row Id="20724" PostTypeId="2" ParentId="20720" CreationDate="2010-11-22T20:46:00.033" Score="6" ViewCount="" Body="&lt;p&gt;Take a look at the &lt;a href=&quot;http://w3techs.com/technologies/details/os-windows/all/all&quot; rel=&quot;nofollow&quot;&gt;W3 Techs Site&lt;/a&gt;; they have some listings of sites by platform (not exhaustive, but there's some interesting stuff there).&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-22T20:46:00.033" />
  <row Id="20725" PostTypeId="2" ParentId="20664" CreationDate="2010-11-22T20:46:30.227" Score="1" ViewCount="" Body="&lt;p&gt;If I understand correctly you want to know when a reference is changed. Well, just add a break point on the lines where the reference might be changed and you will break the execution when this happens (or before, depending on where you put the breakpoint).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About seeing variables in other contexts: you can see any variable as long as it exists in one context. Use the threads drop down to select different threads and the call stack to navigate between different frames.&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-11-22T20:46:30.227" CommentCount="1" />
  <row Id="20726" PostTypeId="2" ParentId="20723" CreationDate="2010-11-22T20:54:34.547" Score="2" ViewCount="" Body="&lt;p&gt;What do you mean by &lt;em&gt;bomb&lt;/em&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you call the interviewer a twat? Do you fail to answer even the simplest questions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One way of becoming better at sth is to do it many times - try going for a few interviews even if you're not interested in the position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS. You might want to improve your accept rate as well.&lt;/p&gt;&#xA;" OwnerUserId="5564" LastActivityDate="2010-11-22T20:54:34.547" CommentCount="3" />
  <row Id="20727" PostTypeId="2" ParentId="20723" CreationDate="2010-11-22T20:55:56.240" Score="10" ViewCount="" Body="&lt;p&gt;I have been there.  I remember having an interview at Microsoft where I beyond choked on doing the whiteboard tests.  &quot;What were you thinking?  I'm an idiot,&quot; and various other negative thoughts crossed my mind that day.  In short it was horrible enough to almost make me call my mother and cry about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, for as bad as that was, I did find someone at Volt who could show me how to do a whiteboard interview test and what were key things to notice and point out in giving a solution.  While part of it filled in some knowledge gaps I had, there was also a sense of, &quot;Where's the reset button? I want a do-over!&quot; as once I got used to it I did do much better during my second interview at Microsoft.  At least well enough to get the hiring manager to be on the fence which is much better than questioning the value of my existence which is what I had after the first one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I didn't advance in either interview situation but it was helpful to have an outline of what are the handful of things to do, questions to ask, and various pitfalls that can happen when one is in this situation.  While I have had a few jobs in my career, I've had many interviews that led to all kinds of results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you do to prepare for the interview?  Do you rehearse some basic questions like, &quot;Tell me about yourself,&quot; or &quot;What do you consider to be your top 3 weaknesses?&quot;  This can help sometimes.  Other times you may want to see a counselor to see if you have anxiety or some other disorder that may contribute to the problem you have.  I know I have anxiety and depression but I still soldier on in life and take my shot....  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;cue Eminem's theme to &quot;8 mile&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Look, if you had one shot, or one&#xA;  opportunity To seize everything you&#xA;  ever wanted in one moment Would you&#xA;  capture it? Or just let it slip?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-22T20:55:56.240" CommentCount="1" />
  <row Id="20728" PostTypeId="2" ParentId="20720" CreationDate="2010-11-22T20:55:56.667" Score="1" ViewCount="" Body="&lt;p&gt;Plenty of Fish is profiled here: &lt;a href=&quot;http://highscalability.com/blog/2009/6/26/plentyoffish-architecture.html&quot; rel=&quot;nofollow&quot;&gt;http://highscalability.com/blog/2009/6/26/plentyoffish-architecture.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8309" LastActivityDate="2010-11-22T20:55:56.667" />
  <row Id="20729" PostTypeId="1" CreationDate="2010-11-22T21:03:38.280" Score="4" ViewCount="278" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to know what aspects in VPS hosting packages are related to performance for the website which will make it faster in loading for the end useres. And does RAM really matter?&lt;/p&gt;&#xA;" OwnerUserId="26782" LastActivityDate="2010-11-23T08:26:05.927" Title="What aspects make websites load faster?" Tags="&lt;performance&gt;&lt;hosting&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="2" />
  <row Id="20730" PostTypeId="2" ParentId="20723" CreationDate="2010-11-22T21:07:10.173" Score="21" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;To get better at something, you have to practice. A lot.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The more you will do something, the better you will be at it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And judging by your question, your problem is not knowledge but anxiety. Sort of phobia of interviews right? This is easy to solve. Guess how?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Desensitization_%28psychology%29&quot; rel=&quot;nofollow&quot;&gt;Desensitization&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Expose yourself to what triggers your anxiety. The more you do it, the less anxiety it will trigger. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before each exposure (interview), rate from 1 to 10 how hard it will be. After the interview rate hiw it was. Compare the results. Do that for all the following exposure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will see the rating decreasing by itself.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-11-23T00:20:09.970" LastActivityDate="2010-11-23T00:20:09.970" CommentCount="4" />
  <row Id="20731" PostTypeId="2" ParentId="20729" CreationDate="2010-11-22T21:07:54.933" Score="2" ViewCount="" Body="&lt;p&gt;In my experience RAM makes more difference with databases/datastores than with webservers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you have a complex web application, go for processing power since that would impact performance more than memory!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&gt;&lt;/strong&gt; I base my experience working with seperate web- and database servers. The web server hardly used any memory while the database server had to be configured so that the RAM basically was a RAM-disk. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;With processing power I mean what CPU you are using; processing speed, number of cores. If you have a database on the same VPS then you can consider to add more RAM since that would impact it's performance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're starting out, it really doesn't matter anyway because you need the traffic first anyway. Only when the site is becoming slow and unresponsive is when you should worry about optimization.&lt;/p&gt;&#xA;" OwnerUserId="1683" LastEditorUserId="1683" LastEditorDisplayName="" LastEditDate="2010-11-22T21:31:36.667" LastActivityDate="2010-11-22T21:31:36.667" CommentCount="3" />
  <row Id="20732" PostTypeId="2" ParentId="20729" CreationDate="2010-11-22T21:10:10.610" Score="0" ViewCount="" Body="&lt;p&gt;RAM matters hugely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The usual suspects apply: how many cores are on the machine, the speed of the cores, the number of VPS sessions, the number of concurrent website users, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would guess that more RAM is probably the most significant first thing you can do to increase performance.  RAM affects your ability to cache, your ability to serve pages; RAM affects everything.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-22T21:10:10.610" CommentCount="2" />
  <row Id="20733" PostTypeId="2" ParentId="20721" CreationDate="2010-11-22T21:17:03.897" Score="2" ViewCount="" Body="&lt;p&gt;I think the big thing you've missed there (as the majority of your time is spent maintaining) are unit tests. Since maintenance by default requires modifying existing code, Unit Tests will help you to effectively determine whether or not those changes break anything else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing I don't see in there is an issue tracking system. Once again, if you're doing a lot of maintenance work, then a good issue tracking system is imperative (though, you may already have either of these, and you just didn't mention them).&lt;/p&gt;&#xA;" OwnerUserId="3239" LastActivityDate="2010-11-22T21:17:03.897" />
  <row Id="20734" PostTypeId="2" ParentId="20407" CreationDate="2010-11-22T21:23:07.873" Score="4" ViewCount="" Body="&lt;h2&gt;I Sure Wish&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Yeah... I really do. Having almost a five figure SO-rating, in my geographical area, nobody really cares and finding a new job is quite a daunting task still.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It all boils down to your contact network and experience.&lt;/p&gt;&#xA;" OwnerUserId="1683" LastActivityDate="2010-11-22T21:23:07.873" CommunityOwnedDate="2011-01-17T22:21:44.413" />
  <row Id="20735" PostTypeId="2" ParentId="20653" CreationDate="2010-11-22T21:25:01.687" Score="1" ViewCount="" Body="&lt;p&gt;Be as broad as you can for your career, but be as specialized as you want for your passion. Do both and do them well. The truth is you can be successful in either approach, but happiness is much more elusive.&lt;/p&gt;&#xA;" OwnerUserId="8309" LastActivityDate="2010-11-22T21:25:01.687" CommentCount="2" />
  <row Id="20736" PostTypeId="2" ParentId="20729" CreationDate="2010-11-22T21:32:40.600" Score="1" ViewCount="" Body="&lt;p&gt;RAM is most important but you also look at things like using a CDN for scripts on your site such as jQuery to remove the load from your server serving them and make sure everything (css/javascript/images) is compressed as much as possible.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-22T21:32:40.600" />
  <row Id="20737" PostTypeId="1" AcceptedAnswerId="20744" CreationDate="2010-11-22T21:34:01.550" Score="7" ViewCount="452" Body="&lt;p&gt;I came up with a great idea. I am in the process of developing that idea and to get help developing it, I recruited one of my friends. I am calling that friend a co-founder because while I am doing the majority of the work at this point, he is very supportive and enthusiastic of the project and I expect him to be a big help in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What percent of the equity of this new company should I give my recruited co-founder?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can, try to not take his feelings into account; he is alright with pretty much anything.&lt;/p&gt;&#xA;" OwnerUserId="8371" LastActivityDate="2010-11-23T04:28:20.623" ClosedDate="2010-11-23T23:35:09.557" Title="What percent of the equity in my company should I give my recruited co-founder?" Tags="&lt;business&gt;&lt;employment&gt;" AnswerCount="4" CommentCount="4" />
  <row Id="20738" PostTypeId="2" ParentId="20737" CreationDate="2010-11-22T21:39:22.853" Score="1" ViewCount="" Body="&lt;p&gt;I would argue that he's not a co-founder if the effort isn't equal. And if effort is equal and you're starting from nothing, it should be split 50-50. If he's not doing work and just cheerleading, don't give him equity.&lt;/p&gt;&#xA;" OwnerUserId="1342" LastActivityDate="2010-11-22T21:39:22.853" CommentCount="2" />
  <row Id="20739" PostTypeId="2" ParentId="20720" CreationDate="2010-11-22T21:40:33.383" Score="0" ViewCount="" Body="&lt;p&gt;My site &lt;a href=&quot;http://www.baseestate.com&quot; rel=&quot;nofollow&quot;&gt;www.baseestate.com&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-22T21:40:33.383" CommentCount="2" />
  <row Id="20740" PostTypeId="2" ParentId="20721" CreationDate="2010-11-22T21:42:20.627" Score="0" ViewCount="" Body="&lt;p&gt;In my previous webdev job, we were 5 devs working. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;We've succesfully used &lt;a href=&quot;http://www.redmine.org/&quot; rel=&quot;nofollow&quot;&gt;redmine&lt;/a&gt; issue tracking software to maintain and create new projects, it supported subversion and mercurial as version control system (VCS); in tandem. So projects were not prohibited to use different VCS than the rest. The only thing that matters is that you keep track of your issue numbers and redmine does the rest.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Coding standards grows out of necessity. When the team starts to have merge conflicts, they tend to set standards among themselves to avoid the conflicts. It's a good learning experience.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm puzzled with the common directory structure thing. Web devs usually are good at wiping their computers clean and set up the computer quickly again. If you have problems setting up the computer again, you really should version control the web configurations so your projects are already set up when you check out the code.&lt;/p&gt;&#xA;" OwnerUserId="1683" LastActivityDate="2010-11-22T21:42:20.627" />
  <row Id="20741" PostTypeId="2" ParentId="20723" CreationDate="2010-11-22T21:43:10.070" Score="12" ViewCount="" Body="&lt;p&gt;I bombed quite a few interviews back in the day and I have done pretty well in recent interviews. I have come a long way. In fact, I just aced a fairly intense interview at a stealth startup and am about to start there in two weeks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Work on your basic skills&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Language skills; algorithms; data structures; operating systems; I am a C++ engineer, and I bought plenty of books and read a lot of them. I read Scott Meyers Effective series, over and over. I read the C FAQ and C++ FAQ over and over.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Expend your skill set&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I taught myself Python by solving problems on Project Euler; I follow technical blogs and read about the latest technologies all the time. NoSQL, BigTable, HBase, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Interview skills&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Buy &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/145157827X&quot; rel=&quot;nofollow&quot;&gt;Gayle Lakkmann's book&lt;/a&gt; and her video, you can learn the basic whiteboard skills from the video. I practice interview questions all the time. Careercup.com, Stackoverflow, etc. Also read Steve Yegge's excellent blogs about interviewing: &lt;a href=&quot;http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html&quot; rel=&quot;nofollow&quot;&gt;one&lt;/a&gt;, &lt;a href=&quot;http://sites.google.com/site/steveyegge2/five-essential-phone-screen-questions&quot; rel=&quot;nofollow&quot;&gt;two&lt;/a&gt;, &lt;a href=&quot;http://sites.google.com/site/steveyegge2/practicing-programming&quot; rel=&quot;nofollow&quot;&gt;three&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update your resume often&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update your resume while you are on a job, not when you think it's time to look for a job. By looking at your latest resume, you can reflect on yourself, on the work you are doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OK, how did I do recently? I went through phone screen and two rounds of interviews with Google, I didn't get a job, but if a year ago you told me I could go this far, I would say you were f'ing with me. Maybe I will never be able to get a job from a company like Google, but I can go into any company for a interview with a lot of confidence. Sometimes I even feel I like interviews, it's the fastest way of learning about myself, my strengths and my weaknesses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also see &lt;a href=&quot;http://programmers.stackexchange.com/questions/756/programming-puzzles/764#764&quot;&gt;my answer to this thread&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-12-04T16:53:57.883" LastActivityDate="2010-12-04T16:53:57.883" CommentCount="2" />
  <row Id="20742" PostTypeId="2" ParentId="20729" CreationDate="2010-11-22T21:50:20.060" Score="1" ViewCount="" Body="&lt;p&gt;There are hardware and software aspects:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Hardware&lt;/strong&gt;: A starting point is going to be a single server with capable hardware - lots of RAM, multi-CPU system, high performance disks, multiple disks (separate OS, swap and data disks), multiple network cards (lots of incoming connections). Once you're beyond one large machine, you're going to be looking at multiple machines and load balancing solutions. Splitting out the database to a separate server with tons of RAM will help to a degree, but you'll soon need to add additional web servers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where to invest depends on your web application and its' usage profile - measure the performance, response, utilisation, etc, and scale accordingly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After this, you're going to be looking to spread servers around the globe, perhaps leveraging Content Distribution Networks to capitalise on their setup first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Software&lt;/strong&gt;: Proper server caching settings for the pages you serve will make a massive difference to your users and your bandwidth costs. Modern web browsers can cache all the JS and images that your site has. If you can structure your site to be as cache-able as possible, with the least number of dynamically-built pages, the better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use the Developer Tools in your browser to explore a popular site and see how they achieve great response.&lt;/p&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-11-22T23:58:55.143" LastActivityDate="2010-11-22T23:58:55.143" CommentCount="2" />
  <row Id="20743" PostTypeId="2" ParentId="20407" CreationDate="2010-11-22T21:59:43.983" Score="6" ViewCount="" Body="&lt;p&gt;Beyond landing a job, Stack Overflow can be of great benefit for independent developers and consultants.  By demonstrating knowledge in a specific area, along with the ability to communicate what you know, you can become very attractive to someone looking for a consultant in that area.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been contacted on several occasions by individuals and companies who were looking to hire me as a contractor, based solely on an answer or two that I had left on Stack Overflow.  I don't have the time to consult, so I can't say what those opportunities would have been worth.  A couple of them sounded interesting, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I've received a greater number of these requests from the non-Stack-Overflow content that I've put out there like my course, the open source projects I've worked on, and the guides that I've published on my blog.  All of this public information can help to identify you as an expert in an area.  Think of how many people use the phrase &quot;he wrote the book on that&quot; when speaking about an authority on a subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall, I look at Stack Overflow as a way of keeping my skills sharp, while at the same time giving back for all of the help I've received from others over the years.  I take time that I would have wasted on blogs, etc. and channel it here.  If it benefits my career, that's a great side effect.&lt;/p&gt;&#xA;" OwnerUserId="8370" LastActivityDate="2010-11-22T21:59:43.983" CommunityOwnedDate="2011-01-17T22:21:44.413" />
  <row Id="20744" PostTypeId="2" ParentId="20737" CreationDate="2010-11-22T22:01:02.580" Score="7" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Expecting&lt;/em&gt; work to be done and actually having work &lt;em&gt;done&lt;/em&gt; are two different things. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you wish to keep him on as a founder and give him equity, then write up the work he is expected to take on relative to the work you are doing, and expect to do, then sort out an equity based on that. Be sure the tasks are clearly written, achievable, and with clear milestones preferably with at least a rough timeline. People need deadlines otherwise they'll get nothing done. If you can't do this, then you need to rethink your business relationship with your friend and your business plan.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There will be some negotiating involved here, but if both parties are amenable then this shouldn't be too tough. My friend and I found ourselves in a similar situation, and that's how we solved it (though I actually got work done that was expected of me).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, make sure everything is in writing, signed, and both of you have copies.&lt;/p&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2010-11-22T22:01:02.580" CommentCount="1" />
  <row Id="20745" PostTypeId="1" AcceptedAnswerId="20748" CreationDate="2010-11-22T22:07:33.843" Score="18" ViewCount="1018" Body="&lt;p&gt;I've seen &lt;a href=&quot;http://norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;Teach Yourself Programming in 10 Years&lt;/a&gt; article and the author was complaining about the books with titles like &quot;Learn C++ in 3 days&quot; , &quot;Teach your self java in 7 days&quot;...etc, but really the another kind of programming books contains books with hundreds of pages and some of them are more than 1000 pages which I found very hard to read!.&lt;br/&gt;&lt;br/&gt; Can you please mention some programming books (especially C#, Java, C++, Python...and other languages) which are not so big, clear, and good to learn from (or the good book should be a &quot;fat&quot; one? )..&lt;/p&gt;&#xA;" OwnerUserId="8372" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-22T22:17:34.053" LastActivityDate="2010-12-13T09:41:58.437" Title="List of &quot;not-fat&quot; and (good) programming books" Tags="&lt;books&gt;" AnswerCount="13" CommentCount="5" FavoriteCount="17" />
  <row Id="20746" PostTypeId="2" ParentId="20721" CreationDate="2010-11-22T22:16:55.610" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Implementing a versioning system&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If this means source control and you're not doing it, then do it NOW. Don't wait, don't even finish reading this. Do it.&#xA;If you mean coming up with some fancy pants scheme for numbering your releases then simple is best. Try this...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;X.00 = major release that may break compatibility or you want to charge money for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;0.X0 = new features that don't break things. Free update.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;0.0X = bug fixes.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Coding standards for the team (unless mandated by a certain framework, etc.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Again, keep it simple. One A4 page is more than enough.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Enforcing a common directory structure for our Desktops (for backup purposes, etc.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Your source control system will do this for you. When a dev does a check out they will get the directory structure. Your VCS is a backup, just make sure you backup the machine with the VCS on it. Anything not in VCS isn't important and doesn't need backing up.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Web-based task/project/time/file/password/contact management and collaboration app(we've tried a bunch; I may just create one)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Don't waste your time building one. The free tools on the net are good enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition you want...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a continuous integration system. When a dev checks something in they need to know that they haven't broken anything, ie. it builds in a clean environment, they haven't forgotten to add new dependencies, run tests to show they haven't caused a regression, the system deploys to a clean environment.&lt;/li&gt;&#xA;&lt;li&gt;a deployment system that includes roll back. You should be able to deploy a new system or push an update with a single command and back out a broken version just as simply.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-11-22T22:16:55.610" CommentCount="3" />
  <row Id="20747" PostTypeId="2" ParentId="20703" CreationDate="2010-11-22T22:17:12.213" Score="0" ViewCount="" Body="&lt;p&gt;SQL Server can use a lot of memory but this is not a bad thing and is by design. It will do as much caching in memory and allocate as much space to itself as possible which will improve performance. If you have a 500mb database but your database server is only allocating 10mb then you must be a lot of disk reads/writes in a high transaction environment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, if your server has very little memory, ie 512mb on a VPS, SQL Server can slow it down, although SQL Server Express works pretty well.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-22T22:17:12.213" CommentCount="2" />
  <row Id="20748" PostTypeId="2" ParentId="20745" CreationDate="2010-11-22T22:22:09.057" Score="16" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.pragprog.com/the-pragmatic-programmer&quot; rel=&quot;nofollow&quot;&gt;The Pragmatic Programmer&lt;/a&gt; at 350 pages. Not the thinest, but a very quick read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0023397632&quot; rel=&quot;nofollow&quot;&gt;The Little LISPer&lt;/a&gt; is only 206 pages. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both books are roll-able, meeting my definition for thin.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-11-23T14:26:24.207" LastActivityDate="2010-11-23T14:26:24.207" CommentCount="8" />
  <row Id="20749" PostTypeId="2" ParentId="20745" CreationDate="2010-11-22T22:22:57.213" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.headfirstlabs.com/books/hfprog/&quot; rel=&quot;nofollow&quot;&gt;Head First Programming&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.headfirstlabs.com/books/hfcsharp/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Head First C#&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.headfirstlabs.com/books/hfjava/&quot; rel=&quot;nofollow&quot;&gt;Head First Java&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;How it works&lt;/strong&gt;:&lt;/em&gt;&#xA;  Learning isn't something that just&#xA;  happens to you. It's something you do.&#xA;  You can't learn without pumping some&#xA;  neurons. Learning means building more&#xA;  mental pathways, bridging connections&#xA;  between new and pre-existing&#xA;  knowledge, recognizing patterns, and&#xA;  turning facts and information into&#xA;  knowledge (and ultimately, wisdom).&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Here's how we help you do that:&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;We tell stories using casual&#xA;  language, instead of lecturing. We&#xA;  don't take ourselves too seriously.&#xA;  Which would you pay more attention to:&#xA;  a stimulating dinner party companion,&#xA;  or a lecture?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;We make it visual. Images are&#xA;  far more memorable than words alone,&#xA;  and make learning much more effective.&#xA;  They also make things more fun.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;We use attention-grabbing tactics.&#xA;  Learning a new, tough, technical topic&#xA;  doesn't have to be boring. The&#xA;  graphics are often surprising,&#xA;  oversized, humorous, sarcastic, or&#xA;  edgy. You might not expect a girl in a&#xA;  bathtub discussing key object-oriented&#xA;  principles, but there she is. Or the&#xA;  woman pulling a duck from an ATM&#xA;  machine. Or the disembodied head on a&#xA;  table. The page layout is dynamic: no&#xA;  two pages are the same, and each one&#xA;  is crafted to keep the right mix of&#xA;  text and images. Examples are usually&#xA;  fun, strange, or both.&#xA;  &lt;a href=&quot;http://www.headfirstlabs.com/readme.php&quot; rel=&quot;nofollow&quot;&gt;Read more&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6208" LastEditorUserId="6208" LastEditorDisplayName="" LastEditDate="2010-11-22T22:28:59.250" LastActivityDate="2010-11-22T22:28:59.250" CommentCount="4" />
  <row Id="20750" PostTypeId="2" ParentId="20628" CreationDate="2010-11-22T22:31:13.177" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Crystal_Clear_%28software_development%29&quot; rel=&quot;nofollow&quot;&gt;Crystal Clear&lt;/a&gt; by Alistair Cockburn. Even if you aren't into Agile, it includes a lot of good advise on managing teams and gives you good background to build your own development process.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-11-22T22:31:13.177" />
  <row Id="20751" PostTypeId="2" ParentId="20729" CreationDate="2010-11-22T22:33:43.973" Score="5" ViewCount="" Body="&lt;p&gt;Here are the main ones in order of best improvement for time spent. Some of these will be more of a bottleneck depending on what data you're dealing with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Front End:&lt;/strong&gt;&#xA;There are easy wins on the front end. Cut down the number of requests with image sprites and aggregating css/js files. Make sure gzip and cache headers are being used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Hardware:&lt;/strong&gt;&#xA;Hardware can be cheap compared to your time. Throw more ram at the problem. Perhaps put your database on another server to cut down disk io.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Static Files:&lt;/strong&gt;&#xA;Put static files on another domain and don't use cookies. You could use static.mydomain.com. It helps to serve these with a light weight server like nginx, this will cut RAM usage a lot.&lt;br&gt;&#xA;A CDN is an easy option for this. 0.1 seconds is considered to be fast in usability. I'm in Australia so you've probably lost me no matter how fast you serve up the files.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Server side caching:&lt;/strong&gt;&#xA;Setup a reverse proxy, it's much more efficient to have Nginx serving pages to slow mobile connections than have a heavy apache process waiting idle for the response to finish. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Memcached is an easy way of caching things in memory for fast retrieval.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Database Tuning:&lt;/strong&gt;&#xA;Keep track of what queries are running slow. Add indexes on the columns you are using. Cut down the number of joins by denormalising where appropriate. You'll need to put the database on a second server at one stage. A lot of RAM can help as the indexes can then be kept entirely in RAM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're interested in clustered hosting I would look at some of the presentations from facebook and youtube, wikipedia engineers on how they've done it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;edit&lt;/strong&gt; some videos:&#xA;Youtube scaling: &lt;a href=&quot;http://video.google.com/videoplay?docid=-6304964351441328559#&quot; rel=&quot;nofollow&quot;&gt;http://video.google.com/videoplay?docid=-6304964351441328559#&lt;/a&gt;&#xA;Django/General Scaling workshop: &lt;a href=&quot;http://python.mirocommunity.org/video/1689/pycon-2010-django-deployment-w&quot; rel=&quot;nofollow&quot;&gt;http://python.mirocommunity.org/video/1689/pycon-2010-django-deployment-w&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also one thing I may have forgot was if you have search a dedicated search engine like Solr/Sphinx can help.&lt;/p&gt;&#xA;" OwnerUserId="5678" LastEditorUserId="5678" LastEditorDisplayName="" LastEditDate="2010-11-23T02:50:44.187" LastActivityDate="2010-11-23T02:50:44.187" CommentCount="2" />
  <row Id="20756" PostTypeId="2" ParentId="20653" CreationDate="2010-11-22T22:52:58.750" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.cio.com/article/102352/Specialists_vs._Generalists&quot; rel=&quot;nofollow&quot;&gt;Generalist vs. Specialist&lt;/a&gt; is an article from CIO.com but there are probably dozens of similar articles or blog posts of people trying to see if one is better than the other.  Each has its advantages and disadvantages.  Anyone that wants to say one totally trumps the other may well be biased to some degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't forget that there is a possible illusion on each side of your choice.  What you see as a specialization may have various flavors to it.  For example, would you consider web developers overall to be specialists or generalists?  Some could see that as a specialization and others may still see it as being rather broad as many web-based applications these days can have all kinds of components that can require different expertise to some degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While the areas you list would make me think you want to work for a software company, there may be some parts of Information Technology that could use similar skills in a way.  You could get into how much customization is done on various off-the-shelf software to make it work and how well is this an investment for most companies to give an off-the-cuff example.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-22T22:52:58.750" />
  <row Id="20758" PostTypeId="2" ParentId="20708" CreationDate="2010-11-22T23:17:58.473" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.basecamphq.com/?referrer=JARINUDOM&quot; rel=&quot;nofollow&quot;&gt;Basecamp&lt;/a&gt; for general project stuff, &lt;a href=&quot;http://pivotaltracker.com&quot; rel=&quot;nofollow&quot;&gt;Pivotal Tracker&lt;/a&gt; for issue tracking, &lt;a href=&quot;https://robotmode.freshbooks.com/refer/www&quot; rel=&quot;nofollow&quot;&gt;Freshbooks&lt;/a&gt; for billing, &lt;a href=&quot;http://www.highrisehq.com/?referrer=JARINUDOM&quot; rel=&quot;nofollow&quot;&gt;Highrise&lt;/a&gt; for CRM, and &lt;a href=&quot;http://www.backpackit.com/?referrer=JARINUDOM&quot; rel=&quot;nofollow&quot;&gt;Backpack&lt;/a&gt; for wiki. They all play nicely together via their APIs, are smooth and easy to use, and will fulfill all of the requirements listed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit: &lt;a href=&quot;http://lighthouseapp.com/&quot; rel=&quot;nofollow&quot;&gt;Lighthouse&lt;/a&gt; is also very good and integrates with all of the above if you want a more traditional-style issue tracker.&lt;/p&gt;&#xA;" OwnerUserId="8383" LastEditorUserId="8383" LastEditorDisplayName="" LastEditDate="2010-11-22T23:23:40.760" LastActivityDate="2010-11-22T23:23:40.760" CommentCount="1" />
  <row Id="20759" PostTypeId="2" ParentId="20745" CreationDate="2010-11-22T23:20:20.530" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Design_Patterns&quot; rel=&quot;nofollow&quot; title=&quot;Design Patterns&quot;&gt;Design Patterns by the Gang of Four&lt;/a&gt; is 410 pages teaching you important programming skills without bogging you down with detail.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which book is a good one depends a lot on your expectations. Compare it to the learning of a foreign language. Is it sufficient for you if you learn to ask for directions or do you want to learn to speak the foreign language fluently? The &quot;grammar&quot; of a programming language is very easy to learn, but to &quot;speak&quot; it fluently takes a lot of practice (and/or studying). The &quot;Design Patterns&quot; I recommended above make you a better programmer, but requires you know the basic grammar already. If you're looking to start with a language and want to learn the grammar first, there are quite a few excellent primers available. For C++ a very entertaining book IMHO was &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.dummies.com/store/product/C-For-Dummies-6th-Edition.productCd-0470317264.html&quot; rel=&quot;nofollow&quot;&gt;C++ for Dummies by Stephen R. Davis&lt;/a&gt; (approx. 400 pages).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you're looking for deeper understanding I recommend practice and bigger books that sacrifice entertainment for detail (like Bruce Eckels &quot;Thinking in...&quot; series of books). &lt;/p&gt;&#xA;" OwnerUserId="8316" LastActivityDate="2010-11-22T23:20:20.530" CommentCount="3" />
  <row Id="20760" PostTypeId="2" ParentId="20494" CreationDate="2010-11-22T23:51:15.100" Score="0" ViewCount="" Body="&lt;p&gt;I prefer to declare variables as close as possible before the first use, in the scope just big enough to encompass all references.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I only consider it important to do this with complex objects that have constructors. If there is a possibility that an object will not be used, it is much better not to construct and destroy it!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, such an object with a constructor should be declared outside a loop, unless its construction every iteration is important.&lt;/p&gt;&#xA;" OwnerUserId="8303" LastActivityDate="2010-11-22T23:51:15.100" />
  <row Id="20761" PostTypeId="2" ParentId="20407" CreationDate="2010-11-23T00:06:30.323" Score="4" ViewCount="" Body="&lt;p&gt;The head of computer science at my university insisted that my high grades would open doors.  That only seemed to be the case at the university itself.  In fact, some employers I interviewed with considered my grades to be somewhat low, because my school had lower 'grade targets' than the university local to that company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stack Overflow reputation demonstrably helps your chances in getting a career with Stack Overflow.  Beyond that, it really depends on the company.&lt;/p&gt;&#xA;" OwnerUserId="6847" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-09T10:52:47.130" LastActivityDate="2011-02-09T10:52:47.130" CommunityOwnedDate="2011-01-17T22:21:44.413" />
  <row Id="20762" PostTypeId="2" ParentId="20745" CreationDate="2010-11-23T00:21:54.017" Score="10" ViewCount="" Body="&lt;h3&gt;&lt;a href=&quot;http://learnyouahaskell.com/&quot; rel=&quot;nofollow&quot;&gt;Learn You a Haskell For Great Good!&lt;/a&gt;&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;This acclaimed 400-page introduction to the language, by Miran Lipovaca, is now available on Amazon.com ($29.95, paperback):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1593272839&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://ecx.images-amazon.com/images/I/51DqgXJHHVL._SL500_AA300_.jpg&quot; alt=&quot;Learn You a Haskell: Book Cover&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was also going to suggest the famous tome, &lt;strong&gt;Structure and Interpretation of Computer Programs&lt;/strong&gt; by Abelson and Sussman, but the &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0262011530&quot; rel=&quot;nofollow&quot;&gt;Amazon page&lt;/a&gt; says it has 700 pages. I recommend you read Peter Norvig's review of that book (just scroll down).&lt;/p&gt;&#xA;" OwnerUserId="2515" LastActivityDate="2010-11-23T00:21:54.017" CommentCount="3" />
  <row Id="20763" PostTypeId="2" ParentId="20665" CreationDate="2010-11-23T00:44:18.227" Score="1" ViewCount="" Body="&lt;p&gt;Keep in mind that if you have security policies and don't have people on board with them, they may violate the policies in such a way as to leave you more vulnerable than if you had used a less restrictive policy in the first place when people invariably try to find workarounds.&lt;/p&gt;&#xA;" OwnerUserId="7042" LastActivityDate="2010-11-23T00:44:18.227" />
  <row Id="20764" PostTypeId="1" CreationDate="2010-11-23T01:19:38.517" Score="7" ViewCount="392" Body="&lt;p&gt;In the last 3-5 months I was thinking about which web programming language I should use. PHP? Ruby? C#? Python? Perl? And you know what? Every time I keep changing my mind like crazy! I learn some things about each one of them and then move to another.  Now I'm totally lost, totally lost guys. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I want form you is to help me to decide, not to decide for me, and give me some recommendations. It would be more than helpful if you can tell me a short story about yourself, how you got started, where you are now and what web programming technologies you are using.&lt;/p&gt;&#xA;" OwnerUserId="26782" LastEditorUserId="149" LastEditorDisplayName="" LastEditDate="2010-11-23T02:30:27.380" LastActivityDate="2010-11-23T11:25:15.067" Title="I feel lost among the various web technologies and I'm looking for pointers." Tags="&lt;web-development&gt;" AnswerCount="7" CommentCount="5" FavoriteCount="3" />
  <row Id="20765" PostTypeId="2" ParentId="20723" CreationDate="2010-11-23T01:31:48.750" Score="9" ViewCount="" Body="&lt;p&gt;Not a long dissertation from me. Listen to some of these podcasts: &lt;a href=&quot;http://www.manager-tools.com/podcasts/career-tools?filter0=23&quot; rel=&quot;nofollow&quot;&gt;http://www.manager-tools.com/podcasts/career-tools?filter0=23&lt;/a&gt; . Find a Toastmasters Club in your area: &lt;a href=&quot;http://reports.toastmasters.org/findaclub/&quot; rel=&quot;nofollow&quot;&gt;http://reports.toastmasters.org/findaclub/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first one will help you start to understand the whole process. They reference &quot;the Christmas rule&quot; which means that something that happens rarely, but is important, is often something we do poorly. There are concrete things you can do to prepare for interviews, preferably BEFORE you actually need to interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Toastmasters thing will feel VERY awkward if you are as introverted as your blog sounds like, but take heart in the fact that EVERYONE (and I do mean EVERYONE) at a Toastmasters meeting wants you to succeed. You can go through a gradual process of giving presentations and build your speaking skills but for you something FAR more important is going to be giving &quot;table topics&quot; which are random topics which you have to stand up and talk on extemporaneously for two minutes. It sounds trivial but it really forces you to limber up your ad-hoc muscles, and it's very helpful in an interview situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best of luck with your future interviews!&lt;/p&gt;&#xA;" OwnerUserId="3010" LastEditorUserId="3010" LastEditorDisplayName="" LastEditDate="2010-11-25T03:58:04.687" LastActivityDate="2010-11-25T03:58:04.687" CommentCount="1" />
  <row Id="20766" PostTypeId="2" ParentId="20624" CreationDate="2010-11-23T01:32:34.067" Score="0" ViewCount="" Body="&lt;p&gt;I am using ZK for years. It is a great framework if not the best. IMO, it is easy to learn, very productive, and, most important, has a best architecture - it puts MVC, databinding, server+client and server-push together elegantly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, GWT, though pure Java, actually runs at the client. GWT aims for developers that want to have 100% control of the client while don't want to learn JavaScript. Personally I don't like the idea. If I would like to have 100% control, I'll use jQuery.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Forget about JSF, unless your boss forced you. It is over-designed and last generation product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it is worth to consider jQuery and other lightweight JS solution, if your project is migrated from a Website (rather than an enterprise application). If designed well, they allow you to add Ajax features to a Website less painful.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-23T01:32:34.067" CommentCount="3" />
  <row Id="20767" PostTypeId="2" ParentId="20737" CreationDate="2010-11-23T01:38:34.327" Score="4" ViewCount="" Body="&lt;p&gt;Over and above the &quot;who's doing the work&quot; question, you need to ask yourself about RISK. At some point somebody is going to have to take a risk to get this thing going. That might be foregoing regular income to get it off the ground or explicitly pouring in hard-earned cash to buy things necessary to make it go (I have no idea what it is so I'm taking stabs in the dark). Whomever is taking MORE of the risks should be the one with more equity. If your friend is just helping out now and again and being a supporter but nothing more I don't think that equity is necessary at all, honestly. If you are just that nice a guy and you want to include him in your circle of pollyanna'ish warmth then MAYBE something in the single digits. This is all academic, though, unless you already have an existing business with some kind of ownership agreement in place and have settled on your business form (sole proprietor, partnership, LLC, etc.) Whatever you wind up with, as @Philip Regan says, get it in writing. I know it'll feel awkward and un-friend-like, but it'll be a lot better than the VERY awkward and un-friend-like environment that a lack of such written agreement will create if the enterprise is a success.&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-11-23T01:38:34.327" CommentCount="1" />
  <row Id="20768" PostTypeId="2" ParentId="20764" CreationDate="2010-11-23T01:39:05.590" Score="0" ViewCount="" Body="&lt;p&gt;I got into programming on the DECSystem-10 in Fortran IV and Macro-11 at Worcester Tech in 1974, though I was actually writing programs in BASIC back in 1968 but didn't have access to a computer to run them on. Assembly language was my language of choice on multiple platforms, but I got hooked on Perl4 as a scripting language in the late 80's/early 90's. When Perl5 added classes, I ignored them. I was already using Java by that time too, and Java's classes were much more cleanly implemented, since it had them from the beginning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was using PHP primarily for its graphics capabilities in the late 90's, making bandwidth charts of the routers and switches at the Internet company I worked for. It also had SQL integration working well much earlier than other scripting languages. But when I met ESR at a Unix user's group meeting sometime arount 2000, he convinced me to switch to Python. I dropped Perl almost immediately, with gratitude. And over the years, PHP has bitten the dust too, since Python has caught up and exceeded it in both graphics (with PIL) and SQL capability. PHP has become such a bloated accumulation of cruft that I would never consider any code using it to be secure. Same with modern Perl.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd therefore recommend C#, Ruby, or Python. Java is still very useful also, especially in the mobile arena. And its similarities to, and compatibility with, Javascript makes it quite easy to learn, since if you're doing web work you need Javascript for the client-side coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for what I'm doing now, it's part web coding (client-server apps using Javascript, Python, and Java), and part bioinformatics (Biopython).&lt;/p&gt;&#xA;" OwnerUserId="8238" LastActivityDate="2010-11-23T01:39:05.590" />
  <row Id="20769" PostTypeId="2" ParentId="20745" CreationDate="2010-11-23T01:42:34.307" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131103628&quot; rel=&quot;nofollow&quot;&gt;K&amp;amp;R&lt;/a&gt;&lt;/strong&gt; clocks in at just over 250 pages.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-23T01:42:34.307" CommentCount="5" />
  <row Id="20770" PostTypeId="2" ParentId="20745" CreationDate="2010-11-23T01:45:52.603" Score="11" ViewCount="" Body="&lt;p&gt;Programming pearls is one of the thinnest books around and is definitely an interesting read &lt;/p&gt;&#xA;" OwnerUserId="3755" LastActivityDate="2010-11-23T01:45:52.603" CommentCount="2" />
  <row Id="20771" PostTypeId="2" ParentId="20764" CreationDate="2010-11-23T01:46:20.870" Score="1" ViewCount="" Body="&lt;p&gt;I learnt Java at college but dropped out in my third year because I felt like it was slowing me down. So I really wanted to get into web programming and build an application, 2 of them in fact. The first application I decided to learn PHP with OOP because this was one of the popular languages and if I needed help I could easily find it and because it was my first I wanted to start on something easy enough, you know once you jump in the pool the water's cold at first but your body adjusts to it eventually and then you can swim around. This is what I believe you need to work out, first of all find out what you want to do and then pick a language. Right so for the past two months I've been busy away making my application and im fairly confident at it by now i believe though i recognize there's still a lot more to learn but that's exciting right. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now that I have my foot in the door of web programming so to speak I can now move onto more advanced languages and for my next project im going to build it in Java/JavaServerFaces and maybe a Framework like Struts. It's probably not even more advanced than PHP i dont really know nor do i care. Im just going with my gut feeling and I think thats what you need to do too. You can sit down, figure out a project, work out the pros and cons think about it for months and months while not even considering asking yourself a very simple questions like: what do you want to do? What is your preference? Why spend so many months thinking about it, why not just do it? Is it anxiety? Is it perfectionism? Afraid of failure? I dont know, these are just questions that maybe you should ask yourself? So c'mon jump in the pool it's a lot of fun in here what are you waiting for! &lt;code&gt;:P&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="6208" LastEditorUserId="6208" LastEditorDisplayName="" LastEditDate="2010-11-23T02:04:45.667" LastActivityDate="2010-11-23T02:04:45.667" />
  <row Id="20772" PostTypeId="2" ParentId="20764" CreationDate="2010-11-23T01:48:27.107" Score="0" ViewCount="" Body="&lt;p&gt;Well, I started web development back in 1998 which seems like forever ago in some ways.  Back then I was working for some ex-Microsoft employees and so everything we used was from Microsoft: Visual Studio, Visual Source Safe, MS-SQL Server, IIS, etc.  Thus, I got used to the Microsoft stack in a lot of ways.  Where I work now I still use some of these like IIS and Visual Studio, though other things have changed like using Subversion instead of VSS and having things like continuous integration and unit tests that I didn't have when I started.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-23T01:48:27.107" />
  <row Id="20773" PostTypeId="2" ParentId="20764" CreationDate="2010-11-23T01:50:11.927" Score="9" ViewCount="" Body="&lt;p&gt;Reverse the focus of your thinking - if you are still contemplating what language to learn, stop contemplating languages and think about what you want to build or what problem(s) you have to solve. Once you have some idea of what your end product is going to be, start thinking about what of these three major factors are important in the project:&#xA;-budget/cost&#xA;-quality&#xA;-time&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Revisit your language list again. Which one do you feel might fit the measures of these factors that are required for this project the best? Try to eliminate one at least. Now think about the individual requirements for the project. Are there any items which one language lends itself to more? Revisit your language list again. Try to get it down to one or two.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are still on the fence...think about other items. Do you know anyone who's an expert in one of those languages or will someone be working with you who prefers one to the other? Does one language have a better community than the other? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its not about picking a language itself, its about picking the right language for the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My story short and sweet: Sometimes I have projects which lend themselves to C#, and sometimes I have projects which lend themselves to PHP. I pick the one that gets it done the way I need it to.&lt;/p&gt;&#xA;" OwnerUserId="6518" LastActivityDate="2010-11-23T01:50:11.927" />
  <row Id="20775" PostTypeId="2" ParentId="20407" CreationDate="2010-11-23T01:54:26.747" Score="19" ViewCount="" Body="&lt;h2&gt;Gaming the System?&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Someone should do a study of whether having high rep on SO begets higher rep on SO. That is, once someone reaches critical mass of, say, over 20K rep, do their answers tend to attract more upvotes than other equally valid answers? Anecdotally speaking, I have noticed that low-ranked members will garner 1 or 2 points for answers that will garner higher-rep people (often answering later) 5 or 10 points. And I'm talking about answers that are qualitatively no different. Success begets success.&lt;/p&gt;&#xA;" OwnerUserId="2618" LastEditorUserId="2618" LastEditorDisplayName="" LastEditDate="2010-11-24T02:07:35.730" LastActivityDate="2010-11-24T02:07:35.730" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="8" />
  <row Id="20776" PostTypeId="2" ParentId="11915" CreationDate="2010-11-23T01:55:22.980" Score="0" ViewCount="" Body="&lt;p&gt;Yet another way, in the very unlikely case that none of the above suggestions works, is to put a line in your hosts file (/etc/hosts on Unix or \windows\system32\drivers\etc\hosts on Windows) such as:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&#xA;127.0.0.100 my.server.com  # or any number in the 127/8 network.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Just don't forget to remove it, or comment it out with a preceding &quot;#&quot;, when you actually want to connect to my.server.com. It can be very confusing, annoying, and even dangerous if you forget. &quot;Oh no, how did all my private data end up here on the server??? rm -rf private/. oops...&quot;&lt;/p&gt;&#xA;" OwnerUserId="8238" LastActivityDate="2010-11-23T01:55:22.980" />
  <row Id="20777" PostTypeId="2" ParentId="20723" CreationDate="2010-11-23T02:15:43.453" Score="4" ViewCount="" Body="&lt;p&gt;By the time interviewers get you into the interview room, they already know they're dealing with someone who is good on paper. I suspect you are getting nervous from concentrating on giving a perfect answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most interviewers won't be looking for what you say, but rather than seeing how you communicate your answer and if it's a tricky question designed to catch you out - how your thought process goes. They also want to see that the person they're interviewing is personable and has a good work/life balance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clearly you've got confidence in your ability, use that as a foundation for when you are walking into that room.&lt;/p&gt;&#xA;" OwnerUserId="7641" LastActivityDate="2010-11-23T02:15:43.453" CommentCount="1" />
  <row Id="20778" PostTypeId="1" CreationDate="2010-11-23T02:30:38.087" Score="3" ViewCount="258" Body="&lt;p&gt;One of my biggest problems with programming is naming things.  I always seem to have a hard time trying to abstract my names down to short names (especially class/interface names).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some tools or strategies you employ for succinctly naming your objects?  Do you find people with better vocabularies to be better programmers or is this something that comes along easier with experience?&lt;/p&gt;&#xA;" OwnerUserId="7353" LastActivityDate="2010-11-23T15:22:08.657" ClosedDate="2010-11-23T23:34:47.123" Title="Is there a correlation between good vocabulary and programming" Tags="&lt;productivity&gt;&lt;experience&gt;&lt;naming-conventions&gt;" AnswerCount="7" CommentCount="1" />
  <row Id="20779" PostTypeId="2" ParentId="20764" CreationDate="2010-11-23T02:37:16.133" Score="0" ViewCount="" Body="&lt;p&gt;Personally, I decided to use Silverlight because I've already done a fair bit of desktop development using C#/WinForms so I have more carry-over knowledge from my current/previous domain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That, and there's other options after the project is finished:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Web: ASP.NET MVC/2, Silverlight&lt;/li&gt;&#xA;&lt;li&gt;Games: XNA&lt;/li&gt;&#xA;&lt;li&gt;Phone (Win Phone 7): Silverlight, XNA&lt;/li&gt;&#xA;&lt;li&gt;Desktop: .NET/WPF/WinForms&lt;/li&gt;&#xA;&lt;li&gt;Server: Console, windows services, wcf services&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As much as I complain that there's too much to know/learn, it also means options to move from a consistent base knowledge.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-23T02:37:16.133" />
  <row Id="20780" PostTypeId="2" ParentId="20745" CreationDate="2010-11-23T02:38:52.653" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0789723107&quot; rel=&quot;nofollow&quot;&gt;Don't Make Me Think&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a design book, but thin was one of the goals of the writer, and the book is fantastic. Easily read in a weekend, though you'll likely end up reading it multiple times.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-23T02:38:52.653" CommentCount="1" />
  <row Id="20781" PostTypeId="2" ParentId="20778" CreationDate="2010-11-23T02:51:27.290" Score="2" ViewCount="" Body="&lt;p&gt;Every software developer should have both a dictionary and a thesaurus available as basic tools to help with naming. And I sometimes run names by my colleagues if I am having trouble coming up with something sensible. I've occasionally had ambiguities pointed out, and other times received very good suggestions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you don't want to use really obscure!&lt;/p&gt;&#xA;" OwnerUserId="1852" LastActivityDate="2010-11-23T02:51:27.290" />
  <row Id="20782" PostTypeId="2" ParentId="20778" CreationDate="2010-11-23T02:57:30.577" Score="8" ViewCount="" Body="&lt;p&gt;it is more important that your class/variable/method names are meaningful than short!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-23T02:57:30.577" />
  <row Id="20783" PostTypeId="2" ParentId="20778" CreationDate="2010-11-23T02:58:30.980" Score="5" ViewCount="" Body="&lt;p&gt;Naming is a &lt;em&gt;hard&lt;/em&gt; problem, so it is not surprising that you find it is too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The particular art of getting down to &lt;em&gt;short&lt;/em&gt;, descriptive names is even harder, and may be compared to writing poetry, like haikus.   In poetry you frequently spend a lot of time getting the words just right, but with the great award of expressiveness where the words you found explain so much more than what you started out with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest that you team up with a partner where you discuss - put feelings into words - how your concepts can each be distilled into a single word name for a said concept.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also you should read the Design Patterns book to learn a vocabulary easily understood by others.  The Highlander concept - there can be only one - is named a Singleton, and if you refer to that term you allow many programmers to easily understand you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, &lt;em&gt;practice&lt;/em&gt; naming a lot.  This is yet another one of those things where practice makes perfect.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-23T02:58:30.980" />
  <row Id="20785" PostTypeId="2" ParentId="20778" CreationDate="2010-11-23T03:22:53.627" Score="7" ViewCount="" Body="&lt;p&gt;A large vocabulary has nothing to do with it. Taxonomy is about identification and differentiation, not description for aesthetic reasons. Most people have enough words to describe what a class or a variable does. Who cares if it &lt;code&gt;dataIsUpdated&lt;/code&gt; won't win you a prize for literature? It gets the meaning across.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's hard is coming up with names that get the meaning across in as few letters as possible, without losing clarity. You will agree, I think, that &lt;code&gt;dataIsUpdated&lt;/code&gt; blows the doors off of &lt;code&gt;nowTheDataPropertyHasBeenRefreshed&lt;/code&gt;, and yet means precisely the same thing. Perhaps &lt;code&gt;dataUpdated&lt;/code&gt; is even better, now that I think of it. This reminds me of the story of the journalist who turned in 5,000 words on some story, right at the deadline for submission. &quot;Why did you write it so long?&quot; his editor asked. &quot;Because,&quot; the writer replied, &quot;I didn't have enough time to write it shorter.&quot;&lt;/p&gt;&#xA;" OwnerUserId="2618" LastActivityDate="2010-11-23T03:22:53.627" />
  <row Id="20786" PostTypeId="2" ParentId="20778" CreationDate="2010-11-23T03:23:05.950" Score="2" ViewCount="" Body="&lt;p&gt;In his book &quot;Word Power&quot;, Norman Lewis mentions that there is a direct correlation between a persons vocabulary and intellect. This can be a starting point for you to research.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally think that they are unrelated.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-23T03:23:05.950" />
  <row Id="20787" PostTypeId="2" ParentId="14720" CreationDate="2010-11-23T03:36:43.870" Score="5" ViewCount="" Body="&lt;p&gt;I manage a team of six programmers, so I give this topic a bit of thought. Here are my ideas - &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Give them time to work -&lt;/strong&gt; Interruptions kill productivity and motivation. Programmers like it best when they can get their heads down and get on with the work. You also need to give them time to do a job well - programmers hate rushing to get something finished by an arbitary deadline. I usually ask my programmers how long a task will take, and then respect their estimate. Part of my job as team leader is to manage that off with the business, and help them develop realistic expectations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Give them good equipment -&lt;/strong&gt; It is terrible having to program on slow computers, and most programmers hate using old development tools as well. Make sure your programmers have really good equipment - fast computers, latest tools, big screens, and also a very good chair. These things are not all that expensive in the grand scheme. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Give them respect -&lt;/strong&gt; Programmers strongly desire respect for their technical skills. Honour the work that they have already done, and the work they are doing. Respect their opinions on technical matters. When you ask a technical question, take the answer at face value. If they have made a mistake, find a way to bring this up without them losing face. You can say things like, &quot;I followed what you suggested, but I came across this issue. What do you think I should do?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Give them permission to go home -&lt;/strong&gt; Working long hours soon becomes counter-productive. When programmers know they can go home at 5pm, they are much more likely to come back the next day feeling motivated to work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Give them responsibility -&lt;/strong&gt; Programmers like making technical decisions, so give them the space to develop things the way they think best. If you have architectural or design standards, make sure these are understood up front. If problems come out during a design review, make sure these are communicated in a respectful and encouraging way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Give them support -&lt;/strong&gt; Make it easy for them to come and ask for help if they need it. Say, &quot;if you've got any questions, don't hesitate to ask.&quot; Don't make them feel bad for not knowing some technology, instead say, &quot;If you need a couple of hours to brush up on that tech, go ahead.&quot; &lt;/p&gt;&#xA;" OwnerUserId="8400" LastActivityDate="2010-11-23T03:36:43.870" CommunityOwnedDate="2011-02-24T20:58:48.413" />
  <row Id="20789" PostTypeId="2" ParentId="14720" CreationDate="2010-11-23T03:43:35.000" Score="1" ViewCount="" Body="&lt;p&gt;in order or importance:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;shared vision&lt;/li&gt;&#xA;&lt;li&gt;clear expectations&lt;/li&gt;&#xA;&lt;li&gt;predictable environment (TDD, nightly builds, daily team chats, weekly check-ins, whatever works for your team and product)&lt;/li&gt;&#xA;&lt;li&gt;the best tools possible&lt;/li&gt;&#xA;&lt;li&gt;serious salary with overtime&lt;/li&gt;&#xA;&lt;li&gt;telecommute&lt;/li&gt;&#xA;&lt;li&gt;stock options &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-23T03:43:35.000" CommunityOwnedDate="2011-02-24T20:58:48.413" />
  <row Id="20790" PostTypeId="1" CreationDate="2010-11-23T04:09:20.660" Score="5" ViewCount="196" Body="&lt;p&gt;A &lt;a href=&quot;http://programmers.stackexchange.com/questions/20752/what-is-the-reason-some-people-hate-microsoft-closed&quot;&gt;previous question&lt;/a&gt; about why people hate Microsoft was closed. This is an attempt at a somewhat more constructive question along the same general line. This one is both broader and narrower though. It's more general by being about software vendors in general, not just Microsoft. It's narrower by dealing only with management of software products.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what steps should be taken (and/or avoided) in managing individual software products to assure that not only the individual products, but the company as a whole is respected/liked/seen in a positive light?&lt;/p&gt;&#xA;" OwnerUserId="902" LastEditorUserId="149" LastEditorDisplayName="" LastEditDate="2010-11-23T04:19:35.003" LastActivityDate="2010-11-24T17:41:47.353" Title="What mistakes in managing software products must be avoided to keep people from hating the vendor?" Tags="&lt;code-quality&gt;&lt;life-cycle&gt;&lt;product-management&gt;" AnswerCount="9" />
  <row Id="20791" PostTypeId="2" ParentId="20790" CreationDate="2010-11-23T04:22:54.090" Score="2" ViewCount="" Body="&lt;p&gt;A non-exhaustive list, starting with two that can go a long way to creating really passionate customers, ones who will go out of their way to promote your product.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;A responsive, respectful support model. Nothing like being fast and giving your customers good support. Ideally a direct response model. Even with a community support model like a bulletin board site where anyone can ask and anyone can answer questions but moderating it and seeding it with support staff will help. An old maxim about customer service - give someone good customer service and they may tell one person about it. Give them poor customer service and they will tell 10 people. In the web world that 10 people now gets multiplied many times.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Using good design - you want to aim for delighting people. This takes not just engineering but design - listening to customers, watching over their shoulders, prototyping, and continuous improvement of released products. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Two others I'd add:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Quality - yup, keeping a tight lid on the bug count, not releasing until it is solid. Focusing on a solid product rather than a flaky one with feature overload. I remember sometime during the frenzy of web 1.0, a large vendor announced how great it was to be able to develop software iteratively without a real quality process when developing websites. Around that time, I tried one of their new sites and it broke on me almost immediately. It seemed clear it had NO testing before release. A good way to frustrate your allies and turn away new customers.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A licensing model that works well for how people will use the software. People know they need to pay, but if you can reflect the flexibility people need in your policies, then it works for everyone. Example: per-seat licenses that allow you to use multiple computers, or a work and home computer. Because a lot of people have more than one computer.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;-- Alex&lt;/p&gt;&#xA;" OwnerUserId="7698" LastActivityDate="2010-11-23T04:22:54.090" />
  <row Id="20792" PostTypeId="2" ParentId="20790" CreationDate="2010-11-23T04:24:53.283" Score="2" ViewCount="" Body="&lt;p&gt;1) Create a quality product&lt;br&gt;&#xA;2) Understand the customer&lt;br&gt;&#xA;3) Maintain consistency&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-11-23T04:24:53.283" CommentCount="2" />
  <row Id="20793" PostTypeId="2" ParentId="20723" CreationDate="2010-11-23T04:25:01.267" Score="7" ViewCount="" Body="&lt;p&gt;Since you mentioned that you know the answer but have trouble putting it into English properly, it sounds like your biggest problem is communicating clearly and succinctly. That's OK, that's correctable with practice. Some ideas:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Spend more time on sites like Stack Overflow. Practice writing clear concise answers to technical questions. Practice thinking in bullet points. Ask people to review the clarity of your technical communication. You may want to consider hiring a writing tutor over the Internet to critique your work.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Take a course in speech or technical writing. This is the kind of thing that community colleges often offer as night courses. &lt;a href=&quot;http://www.bmcc.cuny.edu/catalog/SPE100.html&quot; rel=&quot;nofollow&quot;&gt;Here is a sample course in New York&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="30" LastActivityDate="2010-11-23T04:25:01.267" CommentCount="1" />
  <row Id="20794" PostTypeId="2" ParentId="20737" CreationDate="2010-11-23T04:28:20.623" Score="14" ViewCount="" Body="&lt;p&gt;From your description it doesn't sound like he's doing all that much. Maybe he doesn't need equity yet?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One important thing to remember: YOU HAVE TO HAVE VESTING. This is to protect you against the possibility that he loses interest in your project and walks away owning a substantial chunk of the equity. Many startups have tanked because there was someone who put in a month of work at the beginning, lost interest, and wandered off, but now they own 50% of the company because the other founder thought that a 50-50 split was fair and because the founder didn't understand vesting and how it's not just there to protect the VCs, it's there to protect founders from each other.&lt;/p&gt;&#xA;" OwnerUserId="30" LastActivityDate="2010-11-23T04:28:20.623" />
  <row Id="20795" PostTypeId="1" CreationDate="2010-11-23T05:59:34.773" Score="3" ViewCount="111" Body="&lt;p&gt;I am trying to design a good training program for developers of a large company. The areas of focus are certifying the developers to help with their career paths as well as pursuing training relevant to the company's needs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am looking to hear:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;What you think is essential for a good training program i.e. books, online training sites, videos, conferences, boot camp, etc...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;In what scenarios the various training options are relevant, and if possible what combinations you have found are most effective. So answers like books along with videos have been most effective for gaining in-depth knowledge of a topic.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;What specific sites have you used for online training and what were your experiences from this - both good and bad. Has anyone had actual experience with Safari Books Online?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5511" LastActivityDate="2010-11-23T15:17:19.393" Title="What Are Good Training Resources?" Tags="&lt;training&gt;&lt;certification&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="20797" PostTypeId="2" ParentId="20745" CreationDate="2010-11-23T07:38:30.443" Score="2" ViewCount="" Body="&lt;p&gt;'&lt;a href=&quot;http://www.swaroopch.com/notes/Python&quot; rel=&quot;nofollow&quot;&gt;A Byte of Python&lt;/a&gt;' is only about 120 pages. And it gives a quick introduction to the main Python constructs and you may be able to finish it in a couple of days too. Also it is free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another good book which is short but is '&lt;a href=&quot;http://phpsecurity.org/&quot; rel=&quot;nofollow&quot;&gt;Essential PHP Security&lt;/a&gt;' by Chris Shiflet. But it is not an introductory book, it doesn't teach you PHP.&lt;/p&gt;&#xA;" OwnerUserId="6693" LastEditorUserId="6693" LastEditorDisplayName="" LastEditDate="2010-11-23T07:43:50.157" LastActivityDate="2010-11-23T07:43:50.157" />
  <row Id="20798" PostTypeId="2" ParentId="2591" CreationDate="2010-11-23T07:41:09.833" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/uibook/chapters/fog0000000057.html&quot; rel=&quot;nofollow&quot;&gt;&quot;Controlling Your Environment Makes You Happy&quot;&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the simple line &quot;A user interface is well-designed when the program behaves exactly how the user thought it would.&quot;&lt;/p&gt;&#xA;" OwnerUserId="7789" LastActivityDate="2010-11-23T07:41:09.833" CommentCount="1" />
  <row Id="20799" PostTypeId="2" ParentId="2856" CreationDate="2010-11-23T07:59:30.407" Score="1" ViewCount="" Body="&lt;p&gt;When considering learning new languages, the differences in job function are not limited just to the technology and pay-check. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having worked in several small and large businesses doing both, in my experience PHP tends to be used by smaller businesses while .NET/C# tends to be larger businesses with more &quot;enterprise&quot; requirements. The two often have quite different sets of technical requirements and and also corporate cultures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP websites tend to be simpler to develop, as the back-ends are less frequently integrated with so many other business applications. Modern .NET enterprise systems are often more challenging with service orientated frameworks providing shared business logic for instance. With complexity often comes working with larger teams, and longer development cycles with more structured requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask yourself if you like the agility of the PHP culture or the challenges and often slower pace of more enterprise .NET. From a personal note, on balance I enjoy the .NET enterprise challenges most.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that I have generalised here, it is possible to write PHP as part of a more enterprise environment, it's just less common judging by my experiences and the CVs that I have reviewed when hiring over the years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, like Lorenzo said, I would definitely not ditch PHP. Instead follow developments in different languages and communities (for instance the Ruby on Rails). It will only help you grow, and help cross-pollinate ideas between platforms.&lt;/p&gt;&#xA;" OwnerUserId="8116" LastActivityDate="2010-11-23T07:59:30.407" />
  <row Id="20800" PostTypeId="1" AcceptedAnswerId="20820" CreationDate="2010-11-23T08:04:39.047" Score="6" ViewCount="600" Body="&lt;p&gt;Hello &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I just want to hear some pro and con's - it's obvious that there is no right answer&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So would Java be a better choice for a long term career? Or should I opt for .Net since it could be the platform having all the latest advances? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I just want to hear others point of view, so please don't close this question just because it's being subjective&lt;/strong&gt; &lt;/p&gt;&#xA;" OwnerUserId="8412" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-23T10:52:58.093" LastActivityDate="2011-01-19T17:58:10.603" Title="Java vs C#: What should a junior programmer (just finished degree) consider when entering the programming world?" Tags="&lt;programming-languages&gt;&lt;career&gt;&lt;career-advice&gt;" AnswerCount="7" CommentCount="2" />
  <row Id="20801" PostTypeId="1" AcceptedAnswerId="20803" CreationDate="2010-11-23T08:23:14.280" Score="9" ViewCount="560" Body="&lt;p&gt;what kind of insights or questions would lead you to determine a person's OOAD skills.&lt;/p&gt;&#xA;" OwnerUserId="1880" LastActivityDate="2010-11-24T03:15:22.580" Title="How would you evaluate object oriented design skills?" Tags="&lt;interview&gt;&lt;object-oriented&gt;" AnswerCount="10" CommentCount="1" FavoriteCount="3" />
  <row Id="20802" PostTypeId="2" ParentId="20729" CreationDate="2010-11-23T08:26:05.927" Score="1" ViewCount="" Body="&lt;p&gt;That varies hugely depending on what you are going to run on the server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a web server you only need a reasonable amount of RAM, it doesn't make a big difference to use more. For a database server more RAM is better, there is really no upper limit until you have room in memory for caching all data in the databases and all common results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The factors that makes a site load faster are generally:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The amount of data&lt;/li&gt;&#xA;&lt;li&gt;The speed of the transfer&lt;/li&gt;&#xA;&lt;li&gt;Server response time&lt;/li&gt;&#xA;&lt;li&gt;Number of requests&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The factors that makes a site &lt;em&gt;seem&lt;/em&gt; to load faster are more complex, some important are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Loading what's needed for initial display before the rest of the data&lt;/li&gt;&#xA;&lt;li&gt;A page layout that needs minimal data for the initial display&lt;/li&gt;&#xA;&lt;li&gt;Placeholders for content (e.g. images), so that the layout doesn't change much when content loads&lt;/li&gt;&#xA;&lt;li&gt;Reaching UI responsiveness early&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-11-23T08:26:05.927" CommentCount="1" />
  <row Id="20803" PostTypeId="2" ParentId="20801" CreationDate="2010-11-23T08:37:09.553" Score="6" ViewCount="" Body="&lt;p&gt;You could show some half-assed OO design of a simple problem, and discuss what it does, what's good and bad about it, whether it's flexible enough, what could be improved, and how.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need to get the discussion going, ask what the person thinks about some aspect of the code, but not with a leading question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Important is to remember that the discussion is important, not that you knew the answers beforehand. Any decent developer should be able to point out something about the code that you didn't even think of before.&lt;/p&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-11-23T08:37:09.553" CommentCount="1" />
  <row Id="20804" PostTypeId="2" ParentId="20801" CreationDate="2010-11-23T08:46:19.403" Score="1" ViewCount="" Body="&lt;p&gt;Read the book Head First Design Patterns. All the examples in the book start with an Object Oriented problem and than end up in the Design pattern. They also tell why certain OOP's concepts will achieve limitted results and why certain are better than others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even though a Design Pattern book this book is full of OOP's problems :-)&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-23T08:46:19.403" CommentCount="1" />
  <row Id="20805" PostTypeId="2" ParentId="20800" CreationDate="2010-11-23T08:49:10.540" Score="0" ViewCount="" Body="&lt;p&gt;The number one benefit of Java over .NET is it's platform independence.You can only write .NET codes for Windows environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have somewhat of limited experience in both and in my opinion, if you are only going to be developing applications for Windows, then .NET is better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, those who come from C++ background, would fit into C# easily because a lot of the base structures are same. This is true of Java also, but I feel C++ is closer to C# than Java. After all, C# actually means, &lt;strong&gt;c++++&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Someone more adept in both technologies can given better and diverse range of suggestions.&lt;/p&gt;&#xA;" OwnerUserId="1560" LastActivityDate="2010-11-23T08:49:10.540" CommentCount="1" />
  <row Id="20807" PostTypeId="2" ParentId="20801" CreationDate="2010-11-23T09:05:22.687" Score="2" ViewCount="" Body="&lt;p&gt;Will ask him to write down the business objects, classes, and interfaces/methods for a room or any other virtual entity&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-11-23T09:05:22.687" />
  <row Id="20808" PostTypeId="2" ParentId="20801" CreationDate="2010-11-23T09:06:44.277" Score="4" ViewCount="" Body="&lt;p&gt;Discuss an open ended design problem with the person. See how s/he proceeds to build a model of the system, what kind of questions are asked, how the design changes in response to new information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A great example - mentioned by Steve Yegge in one of his blog posts - is to ask the person to come up with an object model for XML.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-11-23T09:06:44.277" CommentCount="3" />
  <row Id="20809" PostTypeId="2" ParentId="20790" CreationDate="2010-11-23T09:14:18.460" Score="1" ViewCount="" Body="&lt;p&gt;Keeping a software company in a positive light involves both sides of the transaction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The company must:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Continuously provide code that is most fit for purpose in their chosen fields&lt;/li&gt;&#xA;&lt;li&gt;Be seen to be continuously striving to improve by acting on customer feedback&lt;/li&gt;&#xA;&lt;li&gt;Be seen to be fair&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The customer must:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Provide feedback to the company that they are doing well/badly&lt;/li&gt;&#xA;&lt;li&gt;Be reasonable in their expectations of responses&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;From these simple rules, lots of good things naturally follow. The trouble is, market forces&#xA;and competition being what it is, sticking to them is a nightmare.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-23T09:42:14.207" LastActivityDate="2010-11-23T09:42:14.207" CommentCount="3" />
  <row Id="20810" PostTypeId="2" ParentId="20790" CreationDate="2010-11-23T09:23:27.610" Score="1" ViewCount="" Body="&lt;p&gt;Price in a manner which is open and clear - this includes not only initial purchase price but upgrades, additional features or modules, support, consultancy, training and any other associated costs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't have to be cheap, you can price as aggressively as you like, but the one thing in my experience that will upset clients more than anything when it comes to price is unclear extras and the idea that they're having more money unfairly extracted from them now they've made the purchase. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unknown costs aren't about the money, they're about people's reputation.  The person making the purchase has put some of their reputation on the line when they put a budget for the project forward.  Even if the extra expense is value for money, you've when they have to go back to their boss and ask for more money, you're making them publicly admit that they screwed up and they will hate you for that.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-23T09:28:44.297" LastActivityDate="2010-11-23T09:28:44.297" />
  <row Id="20811" PostTypeId="2" ParentId="20801" CreationDate="2010-11-23T09:28:48.727" Score="4" ViewCount="" Body="&lt;p&gt;Having a good knowledge of all the most popular &lt;strong&gt;design patterns&lt;/strong&gt; can prove the candidate actually searched for solutions to his design problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being able to discuss them and know when to apply them or not is a good indication that he understands them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Asking him for example usages in his past experiences may also helps.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-23T09:46:54.610" LastActivityDate="2010-11-23T09:46:54.610" CommentCount="5" />
  <row Id="20812" PostTypeId="2" ParentId="20636" CreationDate="2010-11-23T09:30:11.567" Score="0" ViewCount="" Body="&lt;p&gt;I've often got a main project and one or two that I dip in to when small changes are required.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the same time, I've and enough personal (non-paid) projects to keep the entire staff of Microsoft busy for a decade, although most are still in the &quot;good idea&quot; stage.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-11-23T09:30:11.567" />
  <row Id="20813" PostTypeId="2" ParentId="20790" CreationDate="2010-11-23T09:30:12.453" Score="7" ViewCount="" Body="&lt;p&gt;Most important is obviously to deliver a quality product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other imporant topics:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Honesty. Don't lie when the truth will come out sooner or later anyway.&lt;/li&gt;&#xA;&lt;li&gt;Reliabilty. Adhere to deadlines.&lt;/li&gt;&#xA;&lt;li&gt;Availability. Reply emails, pick up the phone.&lt;/li&gt;&#xA;&lt;li&gt;Willingness to cooperate. If it means to work with your closest competitor to make what the customer needs, do it and do it professinally. No dirty tricks that hurt the customer first.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The last item on my list is probably what got MS such a bad reputation (though I think they are much better now in that respect); and it's even worse when small companies do that.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-23T09:30:12.453" />
  <row Id="20814" PostTypeId="2" ParentId="20636" CreationDate="2010-11-23T09:34:08.693" Score="0" ViewCount="" Body="&lt;p&gt;Two, one big project at work and another one (mostly maintenance and extensions of an system already in production) in my moonlightning time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my previous job, I had to work on 3 or more projects concurrently, rapidly switching as new requirements poured in, which caused a lot of stress and little satisfaction, obviously.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-23T09:34:08.693" />
  <row Id="20815" PostTypeId="2" ParentId="20800" CreationDate="2010-11-23T09:34:43.807" Score="0" ViewCount="" Body="&lt;p&gt;I'm a java guy by trade, but it does look that C# is the language/platform that people are migrating to.  This is just my observation from jobs advertised, and my previous and current employers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I also think (and hope) that Java will be relevant for a good few years yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I don't think they are mutually exclusive. I'd rather work with a decent C# programmer on a Java project, than a rubbish Java guy.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lots of knowledge and skills are transferable.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-11-23T10:26:09.187" LastActivityDate="2010-11-23T10:26:09.187" />
  <row Id="20816" PostTypeId="2" ParentId="20801" CreationDate="2010-11-23T09:36:29.470" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Start off simple: what's OOP all about?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could start off by asking about the basic premises of OOP: abstraction, polymorphism, inheritance and encapsulation. Good food for thought to get them warmed up. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Give them a problem&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next, present them with a problem that is likely to involve patterns. It's not necessary to name or use patterns, but their approach will likely yield some if they've got experience in the area.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps dynamic text input validation. You'd like to be able to validate the input character by character to see if it's a valid date, time or date and time in ISO8601 format. You get a copy of the input string each time a key is pressed and you can return a&#xA;boolean to indicate if the text remains good in at least one of the formats. Ask them to talk through and sketch out a design using OO design principles. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the time you've finished chatting about &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Controller (that thing that fires the change events and evaluates the responses),  &lt;/li&gt;&#xA;&lt;li&gt;Observer (the validators respond to the change events), &lt;/li&gt;&#xA;&lt;li&gt;Strategy (each validator represents a different way of determining if the input is valid), &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;then you'll have a pretty good idea if they understand OOD. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Give them the same problem again, but this time ask for a different design&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, ask them to redesign the system without using an Observer pattern (if they mentioned it) - they may choose to go for a Chain of Responsibility approach or perhaps a Command pattern. You don't really care which, you know that they have a reasonable grasp of the principles involved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if they don't go for a pattern based approach, just listening to the way they &lt;em&gt;attempt to break the problem down into its related functionality&lt;/em&gt; will yield the results you're after.   &lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-23T16:33:23.603" LastActivityDate="2010-11-23T16:33:23.603" />
  <row Id="20817" PostTypeId="2" ParentId="20790" CreationDate="2010-11-23T09:42:54.270" Score="1" ViewCount="" Body="&lt;p&gt;When you are a big corporation like Microsoft, Google or Facebook with lot of exposure in the news, you can't keep people from hating you. It's impossible.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The more you are &lt;strong&gt;successful&lt;/strong&gt;, the more you are &lt;strong&gt;hated&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Vendor should create a metric called the &lt;code&gt;hatemeter&lt;/code&gt; to measure their success! ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is why one of the biggest quality of an entrepreneurs is being able to understand and handle that. And more importantly, use the bad feedback to improve their products (any feedback is interesting).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The real challenge vendors must face is not hate, but &lt;strong&gt;indifference&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: I found this very interesting &lt;a href=&quot;http://amplicate.com/&quot; rel=&quot;nofollow&quot;&gt;website&lt;/a&gt;. It allows anyone to give his opinion on a various of popular companies and product. The amount of votes is too low to make the results relevant, but what is interesting voters must explain why. I let you discover the comments and judge by yourself human nature is complex.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-23T13:17:43.047" LastActivityDate="2010-11-23T13:17:43.047" CommentCount="10" />
  <row Id="20818" PostTypeId="2" ParentId="20466" CreationDate="2010-11-23T09:46:40.937" Score="2" ViewCount="" Body="&lt;p&gt;My 2p worth:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;SELECT&#xA;    a.field1&#xA;    ,a.field2&#xA;    ,b.field1&#xA;    ,c.field1&#xA;FROM&#xA;    tablea a&#xA;    INNER JOIN tableb b ON&#xA;        a.key = b.fkey&#xA;    LEFT JOIN tablec c ON&#xA;        b.key = c.fkey&#xA;ORDER BY&#xA;    a.field1 ASC&#xA;    ,b.field1 ASC&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3519" LastActivityDate="2010-11-23T09:46:40.937" />
  <row Id="20819" PostTypeId="1" AcceptedAnswerId="21287" CreationDate="2010-11-23T09:55:37.977" Score="5" ViewCount="298" Body="&lt;p&gt;What are people's recommendations for XML editing - either / both Windows and Mac?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My preferences:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Lightweight&lt;br&gt;&#xA;2) Validates XML against standards and schemas (and points out errors in a useful / friendly manner)&lt;br&gt;&#xA;3) Code colouring, tag completion and so on  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not fussed about whether it can handle anything else - I'd just like it to be good for &lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-23T10:05:32.627" LastActivityDate="2010-11-24T20:23:22.207" Title="Recommended XML Editor" Tags="&lt;ide&gt;&lt;text-editor&gt;&lt;xml&gt;" AnswerCount="11" CommentCount="5" FavoriteCount="1" />
  <row Id="20820" PostTypeId="2" ParentId="20800" CreationDate="2010-11-23T09:59:41.197" Score="6" ViewCount="" Body="&lt;p&gt;I think you should consider being proficient in both, since I believe it will make you a better programmer than one just knowing one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For where to start?  Well, where you can pick up a job.  Then learn what they need you to know, and then start picking up what you lack.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is a never ending process of learning, because there is so much to learn that you cannot keep up.  &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-23T09:59:41.197" />
  <row Id="20821" PostTypeId="2" ParentId="20819" CreationDate="2010-11-23T10:04:18.900" Score="2" ViewCount="" Body="&lt;p&gt;I use Eclipse on a daily basis, and found the XML-editor in there (probably needs to be the Java EE edition to be present by default) to be quite sufficient for my simple needs.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This includes schema validation, colour coding, &lt;code&gt;&amp;lt;/&lt;/code&gt; expanding to the opening tag, and a formatter, plus XSLT tooling and much more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you use Eclipse already it is lightweight, if not it's not...&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-23T10:04:18.900" />
  <row Id="20822" PostTypeId="2" ParentId="18794" CreationDate="2010-11-23T10:20:21.243" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://nlp.stanford.edu/IR-book/information-retrieval-book.html&quot; rel=&quot;nofollow&quot;&gt;Introduction to Information Retrieval&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;probably the best IR book &lt;/p&gt;&#xA;" OwnerUserId="3700" LastActivityDate="2010-11-23T10:20:21.243" />
  <row Id="20823" PostTypeId="2" ParentId="20800" CreationDate="2010-11-23T10:45:14.773" Score="1" ViewCount="" Body="&lt;p&gt;Both languages are very similar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I came from a Java background but took a C# job. I got some time to learn the language and it felt like a Java copy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pick one and the second language will not be hard to learn.&lt;/p&gt;&#xA;" OwnerUserId="4930" LastActivityDate="2010-11-23T10:45:14.773" />
  <row Id="20824" PostTypeId="2" ParentId="20819" CreationDate="2010-11-23T11:00:25.670" Score="3" ViewCount="" Body="&lt;p&gt;I use Visual Studio 2010 on a daily basis, and found the XML-editor in there to be quite sufficient for my simple needs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This includes schema validation, colour coding, &lt;code&gt;&amp;lt;/&lt;/code&gt; expanding to the opening tag, and a formatter, plus XSLT tooling and much more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you use VS2010 already it is lightweight, if not it's not...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;:D&lt;/p&gt;&#xA;" OwnerUserId="2820" LastActivityDate="2010-11-23T11:00:25.670" CommentCount="4" />
  <row Id="20825" PostTypeId="2" ParentId="20764" CreationDate="2010-11-23T11:17:21.623" Score="0" ViewCount="" Body="&lt;p&gt;Looking for pointers? Maybe you'd like to implement your website in C++ with &lt;a href=&quot;http://cppcms.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;CPPCMS&lt;/a&gt; or &lt;a href=&quot;http://www.webtoolkit.eu/wt&quot; rel=&quot;nofollow&quot;&gt;Wt&lt;/a&gt;? :D&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry, couldn't resist. It's not really true as most C++ programmers avoid pointers...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, for your information, if you try to setup a resource-critical website, CPPCMS might be an excellent choice.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-11-23T11:17:21.623" />
  <row Id="20826" PostTypeId="2" ParentId="20723" CreationDate="2010-11-23T11:18:39.417" Score="2" ViewCount="" Body="&lt;p&gt;Take a look at this question : &lt;a href=&quot;http://stackoverflow.com/questions/329289/really-wow-them-in-the-interview&quot;&gt;Really &quot;wow&quot; them in the interview&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8372" LastActivityDate="2010-11-23T11:18:39.417" />
  <row Id="20827" PostTypeId="2" ParentId="20764" CreationDate="2010-11-23T11:25:15.067" Score="0" ViewCount="" Body="&lt;p&gt;I can only assume you switch so often because you expect much and are a bit disappointed when you see just how much work a proper web application requires; so I'd propose you choose something like Ruby on Rails or Grails, which lets you archive results quickly.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-23T11:25:15.067" />
  <row Id="20828" PostTypeId="2" ParentId="20778" CreationDate="2010-11-23T11:29:08.437" Score="1" ViewCount="" Body="&lt;p&gt;What helps me sometimes is to just go with &lt;em&gt;some&lt;/em&gt; name, whatever comes to you first. Let the name sit in your code for awhile, while working on the code a better fitting name may come to you. It's not uncommon for me to rename something a few times before settling on something fitting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer clarity over shortness. &lt;/p&gt;&#xA;" OwnerUserId="3309" LastActivityDate="2010-11-23T11:29:08.437" />
  <row Id="20829" PostTypeId="2" ParentId="20819" CreationDate="2010-11-23T11:35:11.223" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.altova.com/xml-editor/&quot; rel=&quot;nofollow&quot;&gt;XML Spy&lt;/a&gt; is the leading paid-for option&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-11-23T11:35:11.223" />
  <row Id="20830" PostTypeId="2" ParentId="20819" CreationDate="2010-11-23T11:45:13.160" Score="1" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.firstobject.com/dn_editor.htm&quot; rel=&quot;nofollow&quot;&gt;firstobject XML editor&lt;/a&gt; for a lightweight, free XML editor.&lt;/p&gt;&#xA;" OwnerUserId="8426" LastActivityDate="2010-11-23T11:45:13.160" />
  <row Id="20831" PostTypeId="2" ParentId="20819" CreationDate="2010-11-23T11:45:31.047" Score="2" ViewCount="" Body="&lt;p&gt;Editix Lite can handle all of those and is free.  Doesn't have all of the debugging features of the like of Stylus Studio but I personally find it a great companion to Visual Studio and Eclipse, as I don't like the XML editing in either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://free.editix.com/&quot; rel=&quot;nofollow&quot;&gt;http://free.editix.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8425" LastActivityDate="2010-11-23T11:45:31.047" CommentCount="1" />
  <row Id="20832" PostTypeId="1" AcceptedAnswerId="20834" CreationDate="2010-11-23T11:46:19.327" Score="32" ViewCount="1281" Body="&lt;p&gt;In every interview I have been in, I have been quizzed on mathematical analysis of complexity, including big-O notation. My question is, how relevant is this test to development in industry? How often do you reeeally use it, and how necessary is it to have a honed mindset for the problem?&lt;/p&gt;&#xA;" OwnerUserId="1388" LastActivityDate="2010-11-24T05:51:07.067" Title="Is big-O really that relevant when working in industry?" Tags="&lt;interview&gt;&lt;complexity&gt;&lt;big-o&gt;" AnswerCount="13" CommentCount="11" FavoriteCount="7" />
  <row Id="20833" PostTypeId="2" ParentId="20832" CreationDate="2010-11-23T11:49:40.573" Score="23" ViewCount="" Body="&lt;p&gt;The reason for this is because it indicates &lt;em&gt;scalability&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A process that is O(n^2) will scale worse than one that is O(n log n), but better than one in O(n^3) or even O(n!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do not know the differences and when they apply, you are less suited for choosing the right implementations of functionality, as well as extrapolating test performance into production performance.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-23T11:49:40.573" CommentCount="6" />
  <row Id="20834" PostTypeId="2" ParentId="20832" CreationDate="2010-11-23T11:58:37.887" Score="33" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;My question is, how relevant is this test to development in industry? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;A solid understanding of computational complexity theory (e.g. big O notation) is essential to design scalable algorithms, applications and systems.  Since scalability is highly relevant to computing in industry, big O notation is too.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How often do you reeeally use it, and how necessary is it to have a honed mindset for the problem?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Depends what you mean by &quot;reeeally use it&quot;.  On the one hand, I never do formal proofs of computational complexity for the software I write.  On the other hand, most days I have to deal with applications where scalability is a potential concern, and design decisions include selection of (for example) appropriate collection types based on their complexity characteristics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I don't know whether it is possible to consistently implement scalable systems &lt;em&gt;without&lt;/em&gt; a solid understanding of complexity theory.  I would be inclined to think that it is not.)&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-11-23T12:03:55.180" LastActivityDate="2010-11-23T12:03:55.180" CommentCount="4" />
  <row Id="20835" PostTypeId="2" ParentId="20407" CreationDate="2010-11-23T12:01:14.837" Score="1" ViewCount="" Body="&lt;p&gt;This reminds me of &lt;a href=&quot;http://en.wikipedia.org/wiki/Drake_equation&quot; rel=&quot;nofollow&quot;&gt;Drake's equation&lt;/a&gt; in astronomy. It is an equation that is suppose to give a statistical hint of the number of civilizations in the universe. It is a waste of time actually because it assumes that involved parameters are independent while they are clearly not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have four children and a good job. Maybe that is the key to the good job?&lt;/p&gt;&#xA;" OwnerUserId="6884" LastActivityDate="2010-11-23T12:01:14.837" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="2" />
  <row Id="20836" PostTypeId="2" ParentId="20832" CreationDate="2010-11-23T12:14:54.480" Score="14" ViewCount="" Body="&lt;p&gt;I never actually applied formally the rule in my working life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However you have to be familiar with that concept, and apply it in an intuitive way every time you design an algorithm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The rule is:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;You should be enough familiar with the&#xA;  O notation to being able to determine, for a given task,&#xA;  if it is required to formally calculate it,&#xA;  or it is just enough to evaluate it intuitively,&#xA;  or if you can just skip it entirely. Just like&#xA;  many other basic mathematical&#xA;  concepts.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-11-23T19:29:05.073" LastActivityDate="2010-11-23T19:29:05.073" />
  <row Id="20837" PostTypeId="2" ParentId="20832" CreationDate="2010-11-23T12:23:24.850" Score="1" ViewCount="" Body="&lt;p&gt;It's probably used in places where they are developing API's for consumption. The C++ STL is one of the few API's that has complexity restrictions imposed on it's algorithms. But for the everyday working programmer/senior programmer/designer/architect it doesn't cross their minds much.&lt;/p&gt;&#xA;" OwnerUserId="8392" LastActivityDate="2010-11-23T12:23:24.850" CommentCount="1" />
  <row Id="20838" PostTypeId="2" ParentId="20832" CreationDate="2010-11-23T12:26:10.790" Score="17" ViewCount="" Body="&lt;p&gt;It depends on what your are doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For web developers (such as me) this usually matters a lot. You want web apps to scale. If your app has a bottleneck that scales with O(n^2), and you think this is just fine, because your server can handle 1000 simultaneous users, it seems you needn't care. The thing is, to handle just twice as many (which is reasonably probable to happen just over night), you'll be needing 4 times the computational power. Ideally you want web apps to scale at O(n), because hardware is cheap at a sensible constant user/server ratio.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally in apps, where you have 100000s of objects, big O will come and eat you. You are enourmously vulnerable to peaks. For example, I am currently working on a 3D game, which is an app that handles loads of data. Apart from the rendering, you have collision checking, navigation etc. You can't afford just going the obvious way. You need efficent algorithms, you need a lot of caching so the less efficient ones amortize. And so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course if what you do is something like making a mobile app by throwing together a GUI in an interface designer, wire that up with some web services and that's it, then you will never have issues with complexity. Because the web services you call already take care of it.&lt;/p&gt;&#xA;" OwnerUserId="667" LastEditorUserId="667" LastEditorDisplayName="" LastEditDate="2010-11-23T12:45:40.243" LastActivityDate="2010-11-23T12:45:40.243" CommentCount="1" />
  <row Id="20839" PostTypeId="2" ParentId="20832" CreationDate="2010-11-23T12:33:11.320" Score="3" ViewCount="" Body="&lt;p&gt;Memo to self!:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I and many others ask themselves this question regularly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the real reason we ask this is because we have become lazy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This knowledge will never date or become obsolete. You may not apply it directly on a day to day basis but you will use it subconsciously and it will have a positive affect on your design decisions. One day it may save you or others hours and days of coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As more problems are encapsulated by 3rd party libraries and tools and are available to more and more developers, you will need to know this knowledge to distinguish yourself from others and to help solve new problems.&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-23T12:33:11.320" />
  <row Id="20840" PostTypeId="1" AcceptedAnswerId="20841" CreationDate="2010-11-23T12:33:16.883" Score="4" ViewCount="355" Body="&lt;p&gt;I work for a multi-national I.T. services company. I'd thought they'd be applying good development practices but they aren't. One example is the source code base for a Java project that is currently being developed for a client. It's full of incorrectly indented code. There's mixtures of tabs and spaces on lines (no they're not using the GNU formatting style) as well as 2 or 3 or 4 space indents. Everywhere else I've worked people have agreed to a fixed indentation coding standard and stuck with it, so that's why I find this project an anathema. How do I diplomatically get them to indent properly?&lt;/p&gt;&#xA;" OwnerUserId="8392" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-06T13:26:53.163" LastActivityDate="2011-04-12T20:11:15.287" Title="Correcting indentation" Tags="&lt;holy-war&gt;&lt;coding-standards&gt;&lt;indentation&gt;" AnswerCount="6" CommentCount="11" />
  <row Id="20841" PostTypeId="2" ParentId="20840" CreationDate="2010-11-23T12:40:36.477" Score="13" ViewCount="" Body="&lt;p&gt;Does the code run?  Is it relatively bug-free?  If either is yes, then don't worry about it.  No company is going to pay someone to go through the source code and fix indentations.  If you're in the code doing something, by all means, fix it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps the better approach is to ask someone about your company's coding standard.  My guess is that there isn't one.  It would be more productive to have one established than to complain about proper indentation.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-11-23T12:40:36.477" CommentCount="2" />
  <row Id="20842" PostTypeId="2" ParentId="20840" CreationDate="2010-11-23T12:41:56.147" Score="1" ViewCount="" Body="&lt;p&gt;First ask yourself does it matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Correct&quot; when it comes to indentation is very much subjective and so long as it's broadly clear is there really an issue?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to work out how much time is actually going to be invested in this (just the debate of what is correct could take the whole team hours to agree) and whether that's the best way to spend that time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally my view would be that if their development practices are such that you think the biggest issue is code indentation then you should probably be happy that things are in a pretty good way.  If on the other hand there are other more significant issues, then you probably want to work on those first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do want to press ahead I'd suggest:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Define a standard and get it agreed (good luck with this) and then the rule should be that that standard is applied for all new code and changes going forward.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Think very carefully before doing an automatic reformat of any code as this will render it impossible to do a meaningful diff with many version control systems (including but I'm sure not limited to Subversion).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-23T12:48:33.767" LastActivityDate="2010-11-23T12:48:33.767" CommentCount="2" />
  <row Id="20843" PostTypeId="2" ParentId="20840" CreationDate="2010-11-23T12:43:19.700" Score="1" ViewCount="" Body="&lt;p&gt;If you think this is of importance, then have some automated tool do the indenting for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think you can easily enforce this. Mixed indentation usually comes from many different people working on the same code. If you wanted it to be uniform, you'd have to force some people to change their indentation while others could keep it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example we have a mixed brace style at our company. I would never demand my colleagues to change their style, nor would I be keen on changing mine, because I have the responsibility to maintain the code I write so I want it to be as readable as possible in my eyes. Same thing applies to their code. If I go in their code to make a small modification, I try sticking to their style. If its a bigger chunk of code, I stick to mine. It also identifies, who wrote the code. So if it doesn't work, they don't even need SVN to blame me :D&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-11-23T12:43:19.700" CommentCount="2" />
  <row Id="20844" PostTypeId="2" ParentId="20840" CreationDate="2010-11-23T12:45:43.427" Score="1" ViewCount="" Body="&lt;p&gt;Explain that it makes the code hard to read and compare. Try to agree on a standard. Then automate this by creating appropriate config files for the IDEs that you use or apply the standard automatically when code is checked into source control. Give this time to sink in.&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-23T12:45:43.427" />
  <row Id="20845" PostTypeId="2" ParentId="20840" CreationDate="2010-11-23T12:46:26.810" Score="2" ViewCount="" Body="&lt;p&gt;If it &lt;strong&gt;&lt;em&gt;really&lt;/em&gt;&lt;/strong&gt; bothers you, and you can't simply fix formatting on stuff that you have to work on in order to make it easier to read (i.e. correcting crazy indentation to get everything you need in one screen full), try running the code through &lt;a href=&quot;http://www.ohloh.net/p/ohcount&quot; rel=&quot;nofollow&quot;&gt;ohcount&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This helps you show that 50% of your code base is blank lines, and may reveal that the code is not commented very well (perhaps something else to raise).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually, though (as noted in comments) .. when in Rome ... well :)&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-23T12:46:26.810" />
  <row Id="20846" PostTypeId="2" ParentId="20819" CreationDate="2010-11-23T13:02:49.613" Score="1" ViewCount="" Body="&lt;p&gt;While digging I found &lt;a href=&quot;http://www.wmhelp.com/xmlpad3.htm&quot; rel=&quot;nofollow&quot;&gt;XML Pad&lt;/a&gt;.  Not sure if anyone can comment on it's usefulness or otherwise but I thought I'd list it here for completeness.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-23T13:02:49.613" />
  <row Id="20847" PostTypeId="2" ParentId="565" CreationDate="2010-11-23T13:10:06.440" Score="2" ViewCount="" Body="&lt;p&gt;Kathy Sierra&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://headrush.typepad.com/creating_passionate_users/2006/03/how_to_be_an_ex.html&quot; rel=&quot;nofollow&quot;&gt;http://headrush.typepad.com/creating_passionate_users/2006/03/how_to_be_an_ex.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And most of her other blog posts&lt;/p&gt;&#xA;" OwnerUserId="7478" LastActivityDate="2010-11-23T13:10:06.440" />
  <row Id="20849" PostTypeId="2" ParentId="2541" CreationDate="2010-11-23T13:37:29.387" Score="4" ViewCount="" Body="&lt;p&gt;This one works for others who want to remain calm at all times:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;I must not fear.&#xA;Fear is the mind-killer.&#xA;Fear is the little-death that brings total obliteration.&#xA;I will face my fear.&#xA;I will permit it to pass over me and through me.&#xA;And when it has gone past I will turn the inner eye to see its path.&#xA;Where the fear has gone there will be nothing.&#xA;Only I will remain.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-23T13:37:29.387" CommunityOwnedDate="2011-02-24T18:42:53.810" CommentCount="1" />
  <row Id="20850" PostTypeId="2" ParentId="2541" CreationDate="2010-11-23T13:45:20.023" Score="0" ViewCount="" Body="&lt;p&gt;For the practical course of action, talking to my better half relieves me of most of my frustration, or a close friend that has no relation to my work.  They usually give sound and impartial advise.  And halfway while talking, sense usually gets knocked into me either by realizing how silly, easily resolvable or futile the problem is.&lt;/p&gt;&#xA;" OwnerUserId="1668" LastActivityDate="2010-11-23T13:45:20.023" CommunityOwnedDate="2011-02-24T18:42:53.810" />
  <row Id="20852" PostTypeId="2" ParentId="2541" CreationDate="2010-11-23T14:07:13.743" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Everything can be taken from a man but one thing: the last of human freedoms to choose one's attitude in any given set of circumstances, to choose one's own way.&quot; (Viktor Frankl)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The anger you describe is created by your mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Between the &lt;strong&gt;trigger&lt;/strong&gt; (something happened) and the &lt;strong&gt;emotion&lt;/strong&gt; (the consequence), there is &lt;strong&gt;you&lt;/strong&gt; with your &lt;strong&gt;beliefs&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The emotion can be fear, jealousy, depression, shame, etc. In your case it's anger.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most well known technique to change how you react to events is to use the &lt;a href=&quot;http://www.davidbonham-carter.com/abcmodelcbt.html&quot; rel=&quot;nofollow&quot;&gt;ABC model&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short this technique will helps you understand you control &lt;strong&gt;response&lt;/strong&gt; to emotions. However you can't control your emotions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's too technical for you (it should be), I suggest you to read the first chapter (habit) of the &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0671708635&quot; rel=&quot;nofollow&quot;&gt;7 Habits&lt;/a&gt; described by &lt;strong&gt;Stephen Covey&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's easier to understand and he talks about excellent &lt;strong&gt;Viktor Frankl&lt;/strong&gt;'s work.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-23T14:07:13.743" CommunityOwnedDate="2011-02-24T18:42:53.810" />
  <row Id="20853" PostTypeId="2" ParentId="565" CreationDate="2010-11-23T14:32:31.023" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://orkinos.cmpe.boun.edu.tr/~kosar/ken/index.html&quot; rel=&quot;nofollow&quot;&gt;Reflections on Trusting Trust&lt;/a&gt;&lt;/strong&gt; by Ken Thompson. He shows how to inject a Trojan horse into a compiler. And he does it in such a way that when the compiler recognizes that it is compiling a version of itself, it re-injects the Trojan even if it is not in the source code. His conclusion: You can't trust software you didn't write yourself.&lt;/p&gt;&#xA;" OwnerUserId="3869" LastActivityDate="2010-11-23T14:32:31.023" />
  <row Id="20854" PostTypeId="2" ParentId="1752" CreationDate="2010-11-23T14:41:33.293" Score="2" ViewCount="" Body="&lt;p&gt;Almost every program that I write is invoked strictly from the command line. I've also written some fancier things that started out as CLI interfaces and rapidly grew into something more shell like than anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I can speak only for what I know. Here's some common issues with command line programs:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Way too many options&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you are writing a compiler or a line editor, try to keep options limited to one screen full on an 80x25 frame buffer when &lt;code&gt;--help&lt;/code&gt; or &lt;code&gt;/?&lt;/code&gt; is passed. It is perfectly fine to have more options than that, but break them into sub categories. For instance&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;foo --help&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;foo --help option_name&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;No long options&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is much easier to remember &lt;code&gt;foo --attach_to [argument] --volatile --verbose&lt;/code&gt; than it is to remember &lt;code&gt;foo -a [arg] -v +V&lt;/code&gt;. This isn't always possible, but in most cases, it is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;No input validation&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Almost every platform has multiple libraries that are tried, tested and true when it comes to parsing and validating arguments. Almost every platform has a tried, tested and true lexer that validates input from a CLI. Use one, the other or both. If your program segfaults or divides by zero due to something a user provided, that's just embarrassing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might not need something as complex as a lexer, perhaps you can just tokenize the string if you are expecting stuff in a certain order with certain things in certain places.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I actually got a bug report once where an integer was expected and someone typed &lt;code&gt;f*** my life&lt;/code&gt; in quotes. I didn't write that program, I had the misfortune of inheriting it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;No 'verbocity' knob&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Allow experienced users to easily discover how to get way more noise out of your program than most people would tolerate, but default to printing serious and critical stuff only. I can't tell you how many times I had to fire up &lt;code&gt;strace&lt;/code&gt; just to realize that something segfaulted because it operated on a NULL file stream.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also wrap assertions so that turning them off via NDEBUG or other means still results in something printed or logged for the user to find.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Speaking of log files, try to make sure anything you place in them makes (at least a little) sense to someone other than you. If the start of every entry is a UNIX epoch date, you're going to compound frustration in someone who really wants to help you reproduce the bug.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;No 'bug buddy' in debug mode&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of programs offer some sort of 'debug' switch that offers extra chatter regarding what is going on with the program, but very few offer the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A way to automatically send a report via HTTP/HTTPS and get some kind of service reference number&lt;/li&gt;&#xA;&lt;li&gt;A way to dump useful information to a file that &lt;em&gt;could&lt;/em&gt; be sent as an attachment to a support request&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Or, perhaps you like hearing people read the following over the phone:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;It says unexpected condition at zero&#xA;  eff oh four zero oh .... OK lemme read that back to you ...&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Overly complex configuration files&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't justify the need to parse a config as an excuse to get a buzz on lots of syntactic sugar. Try to use a format that people actually know, even if it means extra work when parsing. I try to use the INI style format whenever possible. You'd be amazed what you can pull off with a simple key-&gt;value dictionary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;No configuration files&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't make people write shell scripts or batch files just to use your program, unless it was intended to be a tool for either task. Give me a means to point at a file containing my usual options and provide just a few additional arguments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;No 'wet floor' signs&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If some feature could get the user into trouble (perhaps it is there for advanced users), clearly mark it as such. Additionally, if someone fat fingers input or forgets something, have you program print a very friendly link to on-line documentation. You might be dealing with someone who is using your program via KVM and can't cut and paste.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When possible, (this coincides with input validation) use the Google apporach:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Did you mean foo --bar FILENME, you&#xA;  typed only foo --bar&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Offer a way out of destructive instructions&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The goal is to tell the user why it didn't work and have them try a few more times, while ensuring that you do nothing potentially destructive unless it appears that the user really wants you to do that. Allow a switch that turns off 'nagging' , for instance &lt;code&gt;-Y&lt;/code&gt; or &lt;code&gt;/Y&lt;/code&gt; but otherwise allow a way out for someone who simply has 'fat fingers'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm probably forgetting a few pointers. I deal with this frequently as it is very, very difficult to make the 'low level' interface for something intuitive enough for most people to avoid making mistakes. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-23T14:41:33.293" />
  <row Id="20855" PostTypeId="2" ParentId="1768" CreationDate="2010-11-23T14:46:08.427" Score="0" ViewCount="" Body="&lt;p&gt;An obvious choice is &lt;strong&gt;Java&lt;/strong&gt;. Mature, object-oriented, lots of frameworks and libraries for almost every possible scenario. Downside: Swing UIs are not exactly pretty, but if you look at SAP, that doesn't seem to be that important on the ERP market.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-23T14:46:08.427" />
  <row Id="20856" PostTypeId="2" ParentId="565" CreationDate="2010-11-23T14:49:04.863" Score="3" ViewCount="" Body="&lt;p&gt;It was published all the way back in 1996, but I'm always pointing to &quot;&lt;a href=&quot;http://www.fastcompany.com/magazine/06/writestuff.html&quot; rel=&quot;nofollow&quot;&gt;They Write the Right Stuff&lt;/a&gt;&quot; from Fast Company as an example of how professional software groups run.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-11-23T14:49:04.863" CommentCount="1" />
  <row Id="20857" PostTypeId="2" ParentId="20832" CreationDate="2010-11-23T14:51:21.960" Score="5" ViewCount="" Body="&lt;p&gt;Well, maybe a little story enlightens you why it DEFINITELY IS necessary:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a project I've been working at, there was a program responsible for printing all kind of documents (labels, picking lists etc.) This program consisted of two parts, one reading all the necessary data from the database and writing it into a .ini-style file, and another part that read those files and filled it into the templates. This worked reasonably well for labels and small lists (with only a few fields) but it ran for almost 10 minutes when it had to print a &quot;large&quot; list of ~20 pages. Because accessing these ini-files resulted in O(n²) access times, n being the number of fields to print.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Had the original programmers of this program understood O-notation, they would never have made it that way. Replacing that stupidity with a hashtable made it soooooooo much faster.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-23T14:51:21.960" />
  <row Id="20858" PostTypeId="2" ParentId="1752" CreationDate="2010-11-23T15:10:38.590" Score="0" ViewCount="" Body="&lt;p&gt;User don't make mistakes. The mistakes lie with the programmer who failed to create a usable interface.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So do usability tests with each release!&lt;/p&gt;&#xA;" OwnerUserId="3814" LastActivityDate="2010-11-23T15:10:38.590" CommentCount="2" />
  <row Id="20859" PostTypeId="2" ParentId="20800" CreationDate="2010-11-23T15:15:09.683" Score="0" ViewCount="" Body="&lt;p&gt;Choose programming, not a language. If I were still in school, java and C# would be the last things on my list. Look at the crazy academic stuff while you can, like Haskell and Lisp. Then come back to the mundane code you will spend 95% of your professional career slinging.&lt;/p&gt;&#xA;" OwnerUserId="3762" LastActivityDate="2010-11-23T15:15:09.683" />
  <row Id="20860" PostTypeId="2" ParentId="20795" CreationDate="2010-11-23T15:15:22.783" Score="1" ViewCount="" Body="&lt;p&gt;Everyone learns differently.  Some people like boot camps, others like books.  A former coworker of mine spends $10,000 every year on his education going to weekend training seminars.  He said he made it stick by coding solutions on a laptop while the teacher was lecturing.  If I tried that, I think my head would explode.  I look at the amount of money he spent, and think about how many books I could buy with that.  Still, I spent more than that when I went back to school to get my degrees.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, I don't think you can put together a training program that is ideal for everyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nonetheless, I have strong ideas about what I consider good training.  Good training (like a good book) is clear, concise, well organized, and terse.  It shows the student where to go to fill in the blanks, and allows them to do so on their own time.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-23T15:17:19.393" LastActivityDate="2010-11-23T15:17:19.393" />
  <row Id="20861" PostTypeId="2" ParentId="20832" CreationDate="2010-11-23T15:16:04.053" Score="5" ViewCount="" Body="&lt;p&gt;Big-O performance is important, but it's been largely internalized.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Big-O performance of sorting and searching doesn't matter, because people generally use the system-supplied ones, and those will be as good as they can be (given that they need to be generally useful).  There are data structures that are more efficient for different things, but those can usually be selected on general principles (and are typically built into modern languages).  There is some sense of algorithms that do or do not scale.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The result is that the formal issues rarely come up in practice, but practice is built on the same principles.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-23T15:16:04.053" CommentCount="1" />
  <row Id="20862" PostTypeId="2" ParentId="20632" CreationDate="2010-11-23T15:19:00.520" Score="0" ViewCount="" Body="&lt;p&gt;What I'd really be concerned about is the company claiming IP rights over the software you have made on your own time. Very real danger if you were using the company issued Macbook . . .&lt;/p&gt;&#xA;" OwnerUserId="3762" LastActivityDate="2010-11-23T15:19:00.520" CommentCount="3" />
  <row Id="20863" PostTypeId="2" ParentId="19893" CreationDate="2010-11-23T15:21:50.113" Score="8" ViewCount="" Body="&lt;p&gt;Lunatic fringe answer: both. Get the service layer right, it is easy to have a thick client that does everything (WPF) and a quick web client to do most common things (ASP.NET). Leaves door open to mobile client, etc., down the road.&lt;/p&gt;&#xA;" OwnerUserId="3762" LastActivityDate="2010-11-23T15:21:50.113" CommentCount="3" />
  <row Id="20864" PostTypeId="2" ParentId="20778" CreationDate="2010-11-23T15:22:08.657" Score="0" ViewCount="" Body="&lt;p&gt;My strategy is to name things in a way that is Memorable, then Short, then Clear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the possible exception that in security code you may want certain things like exceptions to be a little less than clear if you are not using some sort of obfuscatory tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A name that you will remember will become clear with a little regular use and too many long names makes the code difficult to follow.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-23T15:22:08.657" />
  <row Id="20865" PostTypeId="2" ParentId="20819" CreationDate="2010-11-23T15:24:59.273" Score="1" ViewCount="" Body="&lt;p&gt;On the Mac I use TextMate. It's lightweight (starts up blazingly fast), has syntax highlighting/completion for XML, and can validate XML.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-11-23T15:24:59.273" />
  <row Id="20866" PostTypeId="1" CreationDate="2010-11-23T15:25:18.547" Score="39" ViewCount="1165" Body="&lt;p&gt;I started off as a programmer/DBA/PM which was stressful enough since I was the only one, but due to lay offs, I'm now involved in network administration and tech support on top of my programming/dba duties.  We've been through three rounds of lay offs over the past couple of years and the department has been cut to the bone.  This has increased workload and stress on those of us that are left.  It's very difficult to get any programming done with the constant interruptions.  On top of it all, we're dealing with angry co-workers who are upset because it's taking us longer to fix their issues...and other co-workers from other departments who thinks IT sits around and does nothing when it's actually the other way around.  And we have more unreasonable last minute requested that &quot;have to be done now&quot; so it's become somewhat of a toxic work environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The stress has affected my sleeping habits to the point where I'll sleep a few hours, wake up, and cannot get back to sleep.  I only slept 3 1/2 hours last night and I feel like sh*t and going through the motions. I have no problem getting to sleep, it's staying asleep that's the problem.  When I wake up, I often find myself thinking about work and even dream about work sometimes.  I don't drink any coffee or any caffeinated beverages.  I've tried to stay on a consistent exercise program, but I can't do any exercise when I can't sleep good.  I haven't had a decent night's sleep (over 4 hours uninterrupted) in two weeks now.  Sometimes I can get back to sleep for a little while after I wake up and other times, I cannot.  Even if I do get back to sleep, it's not enough sleep.  I'm constantly dragging a** and can't really do anything other than work.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have plenty of vacation saved up but I hate to take it since it burdens the few other guys that are left...and they are not taking there's.  One guy is on leave so now we're really spread out thin.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The burnout has been an issue for awhile now but it's gotten worse over the past year.  I don't even have enough energy to look for a job...and there aren't really many (if any) jobs in this field in the area.  Does anyone have any advice to share on dealing with burnout and insomnia?  The lack of sleep is making me cranky, unproductive, and tired all the time.  Anytime I vent and try to get support IRL, I'm told &quot;you're lucky to have a job&quot;, &quot;suck it up&quot;, etc.  Any useful advice would be appreciated.  Thanks&lt;/p&gt;&#xA;" OwnerUserId="24411" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-23T16:07:23.113" LastActivityDate="2011-01-19T15:33:20.557" CommunityOwnedDate="2011-01-19T15:33:20.557" Title="The job is stressing me out and I am unable to get enough sleep at night" Tags="&lt;career-advice&gt;&lt;burnout&gt;&lt;sleep&gt;&lt;stress&gt;" AnswerCount="17" CommentCount="14" FavoriteCount="10" />
  <row Id="20867" PostTypeId="1" AcceptedAnswerId="20882" CreationDate="2010-11-23T15:26:20.473" Score="27" ViewCount="1087" Body="&lt;p&gt;There're many talented programmers who didn't go to school and who accumulate tons of personal projects. There're also many non-talented ones. There's the entrepreneurial kind that just needs a job to pay bills. Why wouldn't you hire someone without a college degree or long term experience who just seems to be the guy for the job?&lt;/p&gt;&#xA;" OwnerUserId="5162" LastEditorUserId="5162" LastEditorDisplayName="" LastEditDate="2010-11-23T15:47:29.670" LastActivityDate="2010-11-25T08:50:17.750" Title="Would you hire programmers without a 4-year college degree?" Tags="&lt;hiring&gt;&lt;interviewing&gt;" AnswerCount="14" CommentCount="7" FavoriteCount="4" />
  <row Id="20868" PostTypeId="2" ParentId="20866" CreationDate="2010-11-23T15:31:03.920" Score="46" ViewCount="" Body="&lt;p&gt;Rich, it is foolish to let your employer get away with lining their own pockets by laying off your coworkers and making your life hell. There's nothing in it for you and everything in it for them. If you and your coworkers simply kill yourselves to make like nothing has changed, your employer has no disincentive to keep on doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They don't care about you, so you have to care about yourself. Work an 8 hour day and proceed at a sustainable pace. Let everyone know that your group has been devastated by layoffs and that you are doing the best possible work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Burnout and sleep-dep can seriously affect your physical and emotional health. Don't let it happen.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-11-23T15:31:03.920" CommunityOwnedDate="2011-01-19T15:33:20.557" CommentCount="9" />
  <row Id="20869" PostTypeId="2" ParentId="20867" CreationDate="2010-11-23T15:34:31.827" Score="7" ViewCount="" Body="&lt;p&gt;I personally think someone like this deserves serious consideration if they can demonstrate that they know what they're talking about in an interview, but I'll play Devil's Advocate:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Risk aversion.  Noone ever got fired for hiring someone who took the traditional path over someone who didn't.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Someone like you describe is more likely to have only very narrow experience doing one specific type of programming in one or two languages.  Someone with a comp sci degree or more experience is likely to have the breadth of knowledge required to think outside the box and/or solve problems that are not exactly in line with his/her job description.  Then again, you can weed out people like this by asking a few slightly off-topic questions in the interview.  For example, ask a Web programmer something about memory management, or ask an embedded programmer something about object-oriented design.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-23T15:34:31.827" CommentCount="1" />
  <row Id="20870" PostTypeId="2" ParentId="20800" CreationDate="2010-11-23T15:34:32.843" Score="0" ViewCount="" Body="&lt;p&gt;Learn whatever's in demand in the area where you want to live.  The languages are very similar, so it doesn't take a whole lot of time to learn one once you know the other.  Check out job listings for the area and see what's in demand.  Part of making yourself marketable is knowing the market.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-23T15:34:32.843" />
  <row Id="20871" PostTypeId="2" ParentId="20866" CreationDate="2010-11-23T15:34:35.760" Score="10" ViewCount="" Body="&lt;p&gt;Consult your doctor.  I believe you are eligible for sick leave.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This you should do, before you reach burn out which will take you much, much longer to recover from than your current situation.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-23T15:34:35.760" CommunityOwnedDate="2011-01-19T15:33:20.557" CommentCount="1" />
  <row Id="20872" PostTypeId="2" ParentId="20867" CreationDate="2010-11-23T15:35:18.410" Score="5" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Another candidate with similar skills plus a degree or experience.&lt;/strong&gt; &lt;em&gt;This primarily.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A requirement to not only code, but also articulate your process in terms a degree or experience would have taught.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;A requirement from higher up in my organization for credentials.&lt;/li&gt;&#xA;&lt;li&gt;To protect myself, if the hiring decision turns out to be a poor choice.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6920" LastEditorUserId="6920" LastEditorDisplayName="" LastEditDate="2010-11-23T16:23:04.373" LastActivityDate="2010-11-23T16:23:04.373" />
  <row Id="20873" PostTypeId="2" ParentId="565" CreationDate="2010-11-23T15:35:58.237" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blog.dannorth.net/introducing-bdd/&quot; rel=&quot;nofollow&quot;&gt;Introducing BDD&lt;/a&gt; - Dan North&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(BDD = Behaviour-Driven Design)&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-11-23T15:35:58.237" />
  <row Id="20874" PostTypeId="2" ParentId="20745" CreationDate="2010-11-23T15:37:16.490" Score="3" ViewCount="" Body="&lt;p&gt;I just love  &lt;a href=&quot;http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning&quot; rel=&quot;nofollow&quot;&gt;Pragmatic Thinking and Learning: Refactor Your Wetware&lt;/a&gt; book. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only 288 pages, just got it few days ago and now reading it(and trying things from it) almost non stop with a small break for work :)&lt;/p&gt;&#xA;" OwnerUserId="4164" LastActivityDate="2010-11-23T15:37:16.490" />
  <row Id="20875" PostTypeId="2" ParentId="20866" CreationDate="2010-11-23T15:40:03.697" Score="14" ViewCount="" Body="&lt;p&gt;You work to live, you should not live to work!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take a well deserved vacation. Don't feel bad for your co-workers, they will understand!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember: If you are not the owner its not your problem to start with, so don't make it your problem.&lt;/p&gt;&#xA;" OwnerUserId="3814" LastActivityDate="2010-11-23T15:40:03.697" CommunityOwnedDate="2011-01-19T15:33:20.557" CommentCount="7" />
  <row Id="20876" PostTypeId="2" ParentId="20790" CreationDate="2010-11-23T15:42:20.250" Score="1" ViewCount="" Body="&lt;p&gt;Some ways to be hated:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When marketing and selling your business product, aim for people with purchasing authority who won't have to use it.  Then you don't have to worry about usability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally, pricing should be confusing and irrational.  Have multiple versions with functionality that's not clearly differentiated.  Ideally, have one or two particularly desirable features high up on the price scale, so people get the feeling they have to pay big for a lot of things they won't use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have enough power, make later versions of your software not quite compatible with their predecessors, and don't offer upgrade discounts.  For extra points, remove functionality that people might be used to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Advertise features that don't really work.  If you've got sufficient control of the product, remove some of them with more or less forced upgrades.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Leave some bugs in, preferably intermittent bugs.  Come up with reasons why, if something happens, it isn't your fault.  Stonewall your complaining customers.  Alternatively, come up with a fix that actually makes the product less usable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quality control is for companies that want customer satisfaction.  You've got a lot of potential beta testers out there:  use them.  You'll get reports even if you don't give them any feedback.  You can fix a lot of them in the next version (see above about slight incompatibilities, no upgrade pricing, and removing functionality).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mess up the users' computers.  DRM is great here, particularly if you don't tell anybody about it ahead of time (and particularly if they won't expect DRM on something like your product).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anti-piracy measures are great.  Make sure your detection algorithms have plenty of false positives.  It isn't necessary to have convenient or easy ways to correct the false positives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Long confusing EULAs that claim ridiculous things are commonplace nowadays.  To get hated over them, you have to bury something onerous in there and enforce it afterward.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Documentation is for wimps.  Make sure it's virtually impossible to figure out how to do a few important things from the docs.  (Unfortunately, this has become too common over time to be really effective.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rebates that require awkward documentation and application procedures are good.  Remember that many receipts nowadays are printed in a way that fades over time, so you can save a lot of money by requiring the original receipt and taking long enough to process them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Arrogance and well-publicized anti-competitive practices are always useful here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(No points for guessing which suggestions I wrote with companies in mind, or even which ones, or which I've suffered through personally.)&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-23T15:42:20.250" />
  <row Id="20877" PostTypeId="2" ParentId="20866" CreationDate="2010-11-23T15:44:00.840" Score="1" ViewCount="" Body="&lt;p&gt;May I suggest getting a physical and possibly seeing a mental health professional?  There may be more here going on than you think with possibly some therapies or medications helping that could be tried.  While I don't think my insomnia was quite that bad, I do have mild sleep apnea that made me rather sleepy during the day at times that wasn't fun.  However, I now have a machine that helps me sleep at night and am doing much better now.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-23T15:44:00.840" CommunityOwnedDate="2011-01-19T15:33:20.557" />
  <row Id="20878" PostTypeId="2" ParentId="20867" CreationDate="2010-11-23T15:47:55.113" Score="5" ViewCount="" Body="&lt;p&gt;I feel as though most good software engineers moonlight just by virtue of wanting or needing to have projects outside of work. Whether it is part-time consulting that you get paid for or contributing to open-source projects, it's 'work' that you are doing outside of 'work.'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I were interviewing a programmer for an opening on my team or for my client, I'd be a bit suspicious if he or she didn't do any kid of side work. I'd be concerned that he or she was passionate enough about software engineering to be any good at it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone who can produce high-quality results on a predictable and sustained basis is OK with me.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-11-23T15:47:55.113" CommentCount="4" />
  <row Id="20879" PostTypeId="2" ParentId="20867" CreationDate="2010-11-23T16:03:17.930" Score="2" ViewCount="" Body="&lt;p&gt;Yes&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would only do it if they could provide reliable references who will support their claim that they actually did the work on the project(s). Additional feedback on keeping promises, hitting deadlines, finishing projects, etc. would need to be provided. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not sure this is any different than someone with job experience. Anyone straight out of school, the focus would be on school work, internship, and self study (more points for self-study).&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2010-11-23T16:12:32.763" LastActivityDate="2010-11-23T16:12:32.763" />
  <row Id="20880" PostTypeId="2" ParentId="20832" CreationDate="2010-11-23T16:04:50.020" Score="3" ViewCount="" Body="&lt;p&gt;Not really. Basically the only time I ever think about it is when accessing the database.  I'll usually look at code and say &quot;That's doing n+1 queries, you should change it to do just 1 or 2&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because all of my data is being read from a database and shown to the user, I try to minimize the amount of data I'm working with to the point where the difference between a linear and an O(n^2) algorithm is pretty negligible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there's a problem, we'll profile and fix it later.&lt;/p&gt;&#xA;" OwnerUserId="6980" LastActivityDate="2010-11-23T16:04:50.020" />
  <row Id="20881" PostTypeId="2" ParentId="20866" CreationDate="2010-11-23T16:06:26.633" Score="1" ViewCount="" Body="&lt;p&gt;Get a new job and/or see a sleep specialist. You may have some condition that has only recently become a factor (weight gain, increase in drug/alcohol consumption, sleep apnea, and obvious stress).&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-23T16:06:26.633" CommunityOwnedDate="2011-01-19T15:33:20.557" CommentCount="2" />
  <row Id="20882" PostTypeId="2" ParentId="20867" CreationDate="2010-11-23T16:12:32.640" Score="39" ViewCount="" Body="&lt;p&gt;Absolutely&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was very unimpressed with my own schooling and some of my fellow students were really not very good at programming and only passed because they got their hands held. Because of this, I do not value college degrees that much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am much more interested in past experience, how intelligent the programmer seems, their problem solving abilities, and the sort of personality they have.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-11-23T16:12:32.640" CommentCount="4" />
  <row Id="20883" PostTypeId="2" ParentId="20790" CreationDate="2010-11-23T16:16:21.247" Score="0" ViewCount="" Body="&lt;p&gt;Poor Documentation and No Desire to Improve It - I'm currently working with a software vendor who is not able to give me any database definitions or diagrams. They actually recommended just calling one of their developers since they are the &quot;walking data dictionaries&quot;. Now I'll know why they're not improving he application or fixing bugs; they're too busy explaining what is in the customer table.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Now I know why they didn't document this database:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;There is a naming convention for field names based on the type: dt=date, s = string/varchar, d=float&lt;/li&gt;&#xA;&lt;li&gt;There are NO primary keys only unique clustered indexes.&lt;/li&gt;&#xA;&lt;li&gt;No constraints on any tables.&lt;/li&gt;&#xA;&lt;li&gt;Most of of the Stored Procedures contain: Select *&lt;/li&gt;&#xA;&lt;li&gt;All Key fields are string types (least of the problems)&lt;/li&gt;&#xA;&lt;li&gt;Cursors galore!&lt;/li&gt;&#xA;&lt;li&gt;They did comment and version number their patches, but that's about it.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2010-11-24T16:43:29.860" LastActivityDate="2010-11-24T16:43:29.860" />
  <row Id="20884" PostTypeId="2" ParentId="20832" CreationDate="2010-11-23T16:17:48.920" Score="2" ViewCount="" Body="&lt;p&gt;IMHO a lot of computer science programs leave many students wandering down there in the weeds. These programs never quite communicate the big picture of what science of computation is all about. The students enter the industry, grappling with how to apply the concepts they have learned, with little insight into how they relate to the real world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say that the heart of science of computation is the ability to reason about computation. And you learn various methods and techniques to do this, and apply them to abstracted problems, that are prototypical primitives found in many real world problems. The trick is to spot these prototypical primitives in the real world, and then reason about things like correctness, complexity, time etc., which, you may agree, are real issues that you need to worry about. Insight into how the parts behave, frequently gives you insight into how the whole behaves. And the same general methods and techniques can also be applied to the whole, just not with the same rigorousness that is afforded to smaller, well abstracted, well defined parts. But in the end, the science of computation, endows you with the ability to make &lt;em&gt;reasonable&lt;/em&gt; decisions about how to arrange your computation, with real insight into how it will behave under various conditions.&lt;/p&gt;&#xA;" OwnerUserId="7803" LastActivityDate="2010-11-23T16:17:48.920" />
  <row Id="20886" PostTypeId="2" ParentId="20867" CreationDate="2010-11-23T16:19:49.807" Score="17" ViewCount="" Body="&lt;p&gt;Yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me once you've got a few years experience education is basically a Resume / CV thing - it gets you an interview but beyond that it's unlikely (unless you have a spectacular degree) to be a major deciding factor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My reasoning is essentially that (a) if you've worked for three years then I'm far more interested in what you did at work than what you did at university as it's far more likely to be applicable to what I'm going to ask you to do and (b) we all make a bunch of dumb decisions when we're young and I don't think what someone chose to do (or messed up) when they were 18 is necessarily that relevant to what they're doing when they're 25.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If someone without a degree can convince me that they are, based on their experience and other factors, worth an interview, then I'll interview them and from then what they demonstrate there will likely be far more important than what was on the resume.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Possibly worth remembering that Bill Gates never graduated and Albert Einstein failed his university entrance exam.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-23T16:26:27.020" LastActivityDate="2010-11-23T16:26:27.020" />
  <row Id="20891" PostTypeId="2" ParentId="20225" CreationDate="2010-11-23T16:26:56.810" Score="0" ViewCount="" Body="&lt;p&gt;How does your release to end users work into this process?  Your system test team should be less concerned with the development schedule, and instead focus on the customer release schedule.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is little point in trying to formally test new features while development continues, because chances are good that your next 10 features are going to touch the same functionality and require them to test those areas again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They can continue to informally test interim internal releases during development and flesh out their test design (hopefully catching most of the bugs in those new features), but they will need an additional period at the end of development for formal testing of new features and regression testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When they estimate 5 days required for testing your 10 new features, what they should be considering is that they need 5 days at the end of the development cycle, before the release to customers, to validate the new features (and probably more time to iterate if bugs are found).  During this period the customer release can be branched off for testing, and new feature development can continue for the next release.&lt;/p&gt;&#xA;" OwnerUserId="7850" LastActivityDate="2010-11-23T16:26:56.810" />
  <row Id="20893" PostTypeId="2" ParentId="20867" CreationDate="2010-11-23T16:27:58.543" Score="11" ViewCount="" Body="&lt;p&gt;I think you aren't understanding how the hiring process typically works. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your question has an implicit assumption that hiring managers look at one candidate and make a yes/no decision on that person based on whatever criteria they prefer. Unless there is a severe shortage of programmers at the time I am hiring, the hiring process is a lot more like a competition. It isn't about proving you can do the job. It is about proving you are the best/safest choice in the candidate pool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, would I hire someone without a degree or lots of experience if they could demonstrate competency?&#xA;For a product development job, sure. If they could prove that competency, a task made much easier by certifications, degrees, or experience. However, they would also have to prove MORE competency than the other people who are applying. All else being equal I'd take the person with the degree/experience or both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a job within a consulting firm I'd have a much harder time bringing in someone without documented credentials because in this scenario I'd essentially be re-selling that developer's skills to clients. Even if they are a star in practice, but not on paper I'd prefer not to have to repeatedly try to explain that to potential clients.&lt;/p&gt;&#xA;" OwnerUserId="287" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-11-23T22:40:09.487" LastActivityDate="2010-11-23T22:40:09.487" CommentCount="3" />
  <row Id="20894" PostTypeId="2" ParentId="20867" CreationDate="2010-11-23T16:30:12.520" Score="1" ViewCount="" Body="&lt;p&gt;In light of the revised question...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, formal education on its own is virtually worthless for most of today's developers. The best thing to come out of e.g. a computer science degree is a (hopefully) strong grasp of mathematics, but most of the time, developers never use anything beyond basic algebra.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are subspecialties where this isn't as true, but odds are your company either doesn't need it, or you already know what you need and that this isn't it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Experience and a general keeping-up with the field trumps formal education every time, and much of that experience can come in many forms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they have no experience working in a real business, contract for a small one-off project and see what happens. Or, they might have general technical skills that are useful -- make their primary duty &quot;IT monkey&quot; and start giving them bits and pieces of development projects to work on (that's basically what happened to me five years ago).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In six months, you'll either have a good programmer, or you'll have limited (if not negated) the damage from hiring the &quot;wrong&quot; guy. Just make sure you don't leave the good ones hanging with that crappy starting salary and monkey title too long.&lt;/p&gt;&#xA;" OwnerUserId="105" LastActivityDate="2010-11-23T16:30:12.520" CommentCount="3" />
  <row Id="20895" PostTypeId="2" ParentId="20745" CreationDate="2010-11-23T16:30:30.103" Score="5" ViewCount="" Body="&lt;p&gt;Thin books worth reading (that I haven't seen mentioned yet) include:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;General:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;em&gt;The UNIX Programming Environment&lt;/em&gt; (old, but still pretty solid)&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Pascal User Manual and Report&lt;/em&gt; (even if you don't use Pascal, has great sample code and lots of good guidance about programming in general)&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Elements of ML Programming&lt;/em&gt; (again, even if you don't use ML...)&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Algorithms + Data Structures = Programs&lt;/em&gt; (Probably the single best book to move from rank beginner to real programming. Uses Pascal for examples. Out of print, so you'll have to find it used).&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;The AWK Programming Language&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Elements of Programming&lt;/em&gt; (semi-specific to C++ though)&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Aha! Insight&lt;/em&gt; (about problem solving, not just programming)&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;REAL Computing Made REAL: Preventing Errors in Scientific and Engineering Calculations&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.cs.nmsu.edu/~pfeiffer/classes/473/notes/DesignOfAComputer_CDC6600.pdf&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Design of a Computer: The Control Data 6600&lt;/em&gt;&lt;/a&gt; (out of print, but freely downloadable. An understandable description of the basic architecture still used in most high-performance CPUs).&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;The Elements of Style&lt;/em&gt; (Good code reads like good prose).&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;The Mythical Man-Month, 20&lt;sup&gt;th&lt;/sup&gt; Anniversary Edition&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;C++ Specific:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;em&gt;Accelerated C++&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Exceptional C++&lt;/em&gt; (largely applies to &lt;em&gt;most&lt;/em&gt; languages with exception handling)&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Effective C++&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Effective STL&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Modern C++ Design&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="902" LastEditorUserId="902" LastEditorDisplayName="" LastEditDate="2010-11-23T16:41:58.640" LastActivityDate="2010-11-23T16:41:58.640" CommentCount="1" />
  <row Id="20896" PostTypeId="1" CreationDate="2010-11-23T16:41:04.727" Score="6" ViewCount="310" Body="&lt;p&gt;Been calling them &quot;implementers&quot;, but it seems weird to me.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/// &amp;lt;summary&amp;gt;&#xA;/// Implementers should implement this.  Derp&#xA;/// &amp;lt;/summary&amp;gt;&#xA;protected abstract void InternalExecute();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;A point of clarification, I'm interested in what to call the &lt;strong&gt;people&lt;/strong&gt; who create child classes, not the child classes themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Hey, you there&quot; not &quot;that thing there.&quot;&lt;/p&gt;&#xA;" OwnerUserId="698" LastEditorUserId="698" LastEditorDisplayName="" LastEditDate="2010-11-23T17:19:32.727" LastActivityDate="2010-11-23T23:07:03.840" Title="What do I call people who extend my class in base class documentation?" Tags="&lt;documentation&gt;&lt;terminology&gt;" AnswerCount="10" CommentCount="2" />
  <row Id="20897" PostTypeId="2" ParentId="20225" CreationDate="2010-11-23T16:43:19.170" Score="0" ViewCount="" Body="&lt;p&gt;The issue is that if they test the bugs on a branch they still need to retest and regression test them on the trunk once they're merged back in (unless they're very trusting which good testers rarely are).  This isn't just making more work for the developers, it's making more work for the testers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no right answer here but a few things you should consider:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Might these bug releases (without the new functionality) ever go to the users?  If so then yes, it must be branched and tested and everyone needs to accept that as an overhead.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Is it possible to divide the new functionality out in such a way that it exists in entirely separate areas of the application to the previous chunks that were worked on?  If so this gives you options - the testers can carry out the bug retests and regression test parts of the application.  It's not ideal but it's a compromise that might work and give them some of what they want.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;How much work really is it to branch them a release?  Generally it's a pain but the actual amount of work isn't normally that great.  Obviously you'd need them to confirm it's not just more work for them too (see the very first thing I say) but I've seen places make this work.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Is there a better way to use version control here?&lt;/strong&gt;  Something like Mercurial (see &lt;a href=&quot;http://hginit.com/&quot; rel=&quot;nofollow&quot;&gt;http://hginit.com/&lt;/a&gt; - read it, it's good) or another distributed version control system branches and merges in a different way and may allow you to get round the problem.  &lt;em&gt;Really, have a look at it because I think it might be the answer to your problem.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But good luck, it's a pain.  Above all remember that best way forward will be very dependent on your company, product and situation so make sure you think about that and don't just pull something off the shelf and believe you must adhere to it 100%.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-23T16:49:37.787" LastActivityDate="2010-11-23T16:49:37.787" />
  <row Id="20899" PostTypeId="2" ParentId="20896" CreationDate="2010-11-23T16:45:12.160" Score="6" ViewCount="" Body="&lt;p&gt;I usually say &lt;code&gt;children&lt;/code&gt;, &lt;code&gt;child classes&lt;/code&gt; or &lt;code&gt;inheritors&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its not that important; people are going to understand what you mean by &lt;code&gt;Implementers&lt;/code&gt; anyway.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-11-23T16:45:12.160" CommentCount="7" />
  <row Id="20900" PostTypeId="2" ParentId="20896" CreationDate="2010-11-23T16:47:07.880" Score="5" ViewCount="" Body="&lt;p&gt;&lt;code&gt;subclasses&lt;/code&gt; or &lt;code&gt;classes that extend ThisInterface&lt;/code&gt;or &lt;code&gt;classes that implement InternalExecute&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-11-23T16:47:07.880" CommentCount="4" />
  <row Id="20901" PostTypeId="2" ParentId="2541" CreationDate="2010-11-23T16:47:29.113" Score="1" ViewCount="" Body="&lt;p&gt;Go to Starbucks or other coffeehouse and relax for 5 minutes with a mocha.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-23T16:47:29.113" CommunityOwnedDate="2011-02-24T18:42:53.810" />
  <row Id="20902" PostTypeId="2" ParentId="20896" CreationDate="2010-11-23T16:47:48.507" Score="5" ViewCount="" Body="&lt;p&gt;Descendants? (need couple more chars)&lt;/p&gt;&#xA;" OwnerUserId="7968" LastActivityDate="2010-11-23T16:47:48.507" CommentCount="1" />
  <row Id="20903" PostTypeId="2" ParentId="20596" CreationDate="2010-11-23T16:54:16.047" Score="0" ViewCount="" Body="&lt;p&gt;I don't know if there are any best practices for this sort of thing.  But if I were given this task I think I'd identify what correlations yield the most data and then try to randomize those correlations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with a piece of data is not the data itself.  It's the correlations that can be made.  Any obfuscation scheme would do best to concentrate on randomizing those correlations so thoroughly that they couldn't be extracted again.  One correlation that's independent of other pieces of data is the overall rarity of a piece of data, and that correlation should also be obscured.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, identify a rarity cutoff for first and last names, then replace all first and last names below that rarity cutoff with others that are just as rare, but picked from a random list of baby names or something along those lines.  I might also copy some names from one place to another to change the frequencies at which they occur.  For example, change all &quot;John&quot;s to &quot;Avercrombie&quot;s, and all &quot;Hilda&quot;s to &quot;Mary&quot;s.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I would start randomly swapping the first names with other first names in the tables.  I would do the same (but independently) for last names.  I would also start scrambling important relationships.  For example, with a Netflix style database, the list of movies people rented.  I would randomly move movies from one person's list to another until all the lists were hopelessly scrambled.  Of course, if what you want is to be able to refine a prediction algorithm with 'anonymized' data, that would make the data useless, so you will have to exercise judgment in what data you did this with.&lt;/p&gt;&#xA;" OwnerUserId="7684" LastActivityDate="2010-11-23T16:54:16.047" />
  <row Id="20904" PostTypeId="2" ParentId="20896" CreationDate="2010-11-23T17:01:01.287" Score="4" ViewCount="" Body="&lt;p&gt;extenders&lt;/p&gt;&#xA;&#xA;&lt;p&gt;subclassers&lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-11-23T17:01:01.287" />
  <row Id="20905" PostTypeId="2" ParentId="20801" CreationDate="2010-11-23T17:13:20.330" Score="2" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Don't&lt;/em&gt; give a vocabulary quiz.    &quot;Define Inheritance&quot;  or &quot;name 3 features of OO design&quot; are questions that won't tell you anything about the skills of the individual, only how long since he/she last read a textbook.   I've met several great programmers who use these skills every day, but would choke if asked to give the formal definition.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-11-23T17:13:20.330" />
  <row Id="20906" PostTypeId="2" ParentId="20867" CreationDate="2010-11-23T17:16:20.377" Score="1" ViewCount="" Body="&lt;p&gt;I would hire someone without a formal education, provided they can do the job and show that they can learn new things.  The main problem without having that degree is getting through HR.  If you can get past those people and get your resume on my desk and are a good fit for the job I really don't care if you have a degree or not.  In fact, a lack of degree probably means you can save me money because I probably won't pay you as much.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-11-23T17:16:20.377" />
  <row Id="20907" PostTypeId="2" ParentId="2541" CreationDate="2010-11-23T17:21:36.807" Score="0" ViewCount="" Body="&lt;p&gt;Depends on the degree of the anger I have:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Mild frustration - What I thought would fix a bug, doesn't and it is back to the drawing board again.  In this case, it may give me a bit of energy to keep going but my mind is still relatively clear on being able to work.  This is kind of in that land of, &quot;Well if Plan A fails, I still have B, C, And D to try.&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Mildly disruptive anger - Now this is where I have to switch to something else as I'm just too angry to focus on the task at hand.  This can be switching to a different application to do something else, like check e-mails or project documents, or doing something physical like walk to the washroom or cafeteria.  The key here is to break my environment at least for a little while.  This could be seen as just switching long enough to cool down some.  Here I need a break to come up with some more plans.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Fuming anger - At this point I'd likely go home or take an extended break of an hour or two.  This is where I'm more than a little frustrated and may need to call upon reinforcements to help me calm down,e.g. calling friends that can help me improve my mood or create some e-mails to send to friends.  This is also where a little break won't really solve the problem as I'm too distracted to focus properly on work even after a half hour break.  I can end up talking to friends for hours in this state as it isn't that easy to calm me down in some cases.  This is where I may just need some solitude or good company.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;All consuming anger - This would be the highest on the scale and is where I'd probably take myself to the hospital again.  This is just for safety reasons as sometimes my thoughts can get rather dark and aren't easy to handle in this case.  However, the people at the hospital tend to be rather nice and help me get a different view on things.  One could also think of this as getting a complete change of scenery and routine as there is nothing like hospital food to put some things in perspective.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;This is mostly from a work situation where it may or may not be code that is causing the frustration that is being turned into anger emotionally.  Another way to see this is how much control does my emotions have over me at any point in time:  Just a little as something didn't go my way but my tenacity and confidence are still there to keep at it, more than a little so that I have to do something else to clear my head for a short time, quite a bit as I need to retreat into my comfort zone where I can employ any of a few coping techniques like playing video games, talking to friends, getting exercise, having something to eat, or taking a nap, or lastly if I feel I've lost most of my control and want to be committed for a little while.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-23T17:21:36.807" CommunityOwnedDate="2011-02-24T18:42:53.810" />
  <row Id="20908" PostTypeId="2" ParentId="20819" CreationDate="2010-11-23T17:23:31.760" Score="1" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://oxygenxml.com/&quot; rel=&quot;nofollow&quot;&gt;Oxygen&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2078" LastActivityDate="2010-11-23T17:23:31.760" />
  <row Id="20909" PostTypeId="1" AcceptedAnswerId="20948" CreationDate="2010-11-23T17:33:15.763" Score="16" ViewCount="928" Body="&lt;p&gt;Simple question, but I often hear these three terms defined with such ferocity, but which have been known to me to mean different things over the years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the &quot;correct&quot; definitions of &quot;Procedure&quot;, a &quot;Method&quot; and a &quot;Function&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="7500" LastEditorUserId="7500" LastEditorDisplayName="" LastEditDate="2011-04-12T18:41:01.883" LastActivityDate="2011-04-12T18:41:01.883" Title="Method vs Function vs Procedure" Tags="&lt;programming-practices&gt;&lt;coding-standards&gt;&lt;terminology&gt;" AnswerCount="5" FavoriteCount="3" />
  <row Id="20910" PostTypeId="2" ParentId="20596" CreationDate="2010-11-23T17:33:36.877" Score="1" ViewCount="" Body="&lt;p&gt;First thing, as you say, this isn't encryption or possibly even obfuscation.  There needs to be no possible way to retrieve the data  - the legal restriction isn't on exporting the data securely, it's on exporting it &lt;strong&gt;at all&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also worth noting that that will include someone outside the country accessing a database within the country (exporting a single record is still exporting data) so they can have no access to your systems via any means.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The issue with anonymising the data is it's very hard to do.  You've got to scrub every personally identifiable piece of information (don't just scramble them) including names, addresses, e-mails, dates of birth, social security numbers.  Anything that might be usable even if only as part of a composite needs to be removed.  You also need to check comments fields, notes fields, audit fields and anything else for these same values.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you're scrubbing the data, don't swap things.  Replace each one from a random list of possible values.  If you swap them the data is still there and there are risks they'll be swap and swapped back or in some other way remain readable.  Remember, the restriction is on exporting the data, not making it hard to read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond this you need to understand what might be implied by data.  Say it's a film rental database and the guys outside the country know from a support mail that someone has rented one particular a few times.  That's a straight forward search which will likely give you a very short list.  Cross reference it with another few things (it's a guy so he probably wouldn't rent that and so on) and without his name being anywhere there you've got his whole history.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read this: &lt;a href=&quot;http://arstechnica.com/tech-policy/news/2009/09/your-secrets-live-online-in-databases-of-ruin.ars&quot; rel=&quot;nofollow&quot;&gt;http://arstechnica.com/tech-policy/news/2009/09/your-secrets-live-online-in-databases-of-ruin.ars&lt;/a&gt; for a better example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You imply that the reasons the people outside the country need the database are for technical reasons so the actual data isn't important to them - just that they have something they can run up, check it works and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that's the case then for my money the best way is don't bother.  Send them a test database instead with no real data in.  Need more data than your test database has?  Write scripts to generate it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The scripts then need to be maintained along with the rest of the database and application, updated with each new release and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a skeleton database (that is with structure but no data) you can just give the other guys access to the scripts to create databases as they want (which is what I'd recommend).  If you do go with a process of scrubbing the live data you probably need to maintain the scripts for doing it in the same way but have to run the process yourself - I'd personally create a test database with each release.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-23T17:33:36.877" CommentCount="1" />
  <row Id="20911" PostTypeId="1" AcceptedAnswerId="20919" CreationDate="2010-11-23T17:35:56.217" Score="5" ViewCount="435" Body="&lt;p&gt;I was under the impression that you start in a programming job, do a good job, demonstrate willingness, get sent to a bunch of internships by the employer, and make your way up until you are given responsibility of an entire project. But a friend of mine told me that you also need at least a Masters' degree to be considered for that job. Is that true? How do people typically get to be in that role? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS notice I said &quot;typically&quot;. I want to hear the general case, not private cases about someone you know. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-11-23T23:19:44.860" Title="How do you typically become chief software engineer in a company?" Tags="&lt;career&gt;" AnswerCount="6" CommentCount="7" />
  <row Id="20912" PostTypeId="2" ParentId="20909" CreationDate="2010-11-23T17:41:28.100" Score="24" ViewCount="" Body="&lt;p&gt;A &lt;strong&gt;function&lt;/strong&gt; returns a value, but a &lt;strong&gt;procedure&lt;/strong&gt; does not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A &lt;strong&gt;method&lt;/strong&gt; is similar to a function, but is &lt;strike&gt;internal to&lt;/strike&gt; part of a class. The term &lt;strong&gt;method&lt;/strong&gt; is used almost exclusively in object-oriented programming.&lt;/p&gt;&#xA;" OwnerUserId="3869" LastEditorUserId="3869" LastEditorDisplayName="" LastEditDate="2010-11-23T19:54:49.917" LastActivityDate="2010-11-23T19:54:49.917" CommentCount="7" />
  <row Id="20914" PostTypeId="2" ParentId="20896" CreationDate="2010-11-23T17:47:02.247" Score="2" ViewCount="" Body="&lt;p&gt;I typically say &lt;code&gt;child class&lt;/code&gt;. When talking about inheritance, &lt;code&gt;implementers&lt;/code&gt; would be a little confusing to me because it makes me think that the class is implementing an Interface, which is different from class inheritance.&lt;/p&gt;&#xA;" OwnerUserId="4881" LastActivityDate="2010-11-23T17:47:02.247" CommentCount="1" />
  <row Id="20915" PostTypeId="2" ParentId="20596" CreationDate="2010-11-23T17:47:54.823" Score="3" ViewCount="" Body="&lt;p&gt;One large financial client we do business with has a standardized automated process for obfuscating data. We don't, so I have a few scripts where I do this by hand. The point is to leave reasonably realistic data (lengths of names, postal codes) while rendering the personally identifiable data irretrievably scrambled. Their system is far more complicated than this, but basically when production data gets copied to development and QA environments, it will be scrambled automatically. This way there is no potential for &quot;forgetting&quot; to do some of the scrambling.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Passwords:&lt;/strong&gt;&lt;br&gt;&#xA;Set them &lt;em&gt;all&lt;/em&gt; to something test accounts use: like &lt;code&gt;Password1&lt;/code&gt; or &lt;code&gt;1234567&lt;/code&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Tax ID numbers, Social Insurance Numbers, Social Security Numbers:&lt;/strong&gt;&lt;br&gt;&#xA;Take the first 3 digits and generate random numbers for the remainder. In the US, the first 3 digits are generally assigned based on where you lived when the SSN was issued, so not all combinations of first 3 digits are valid. For EINs, take the first 2 digits, as not all combinations of first 2 digits are valid. Adjust which digits get left alone if your country uses different rules. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Names:&lt;/strong&gt;&lt;br&gt;&#xA;Hash and base64 the first and last names separately. Take the first letter of unhashed name append the hash afterwards and truncate the result to original name's length &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example: &#xA;Name = &quot;John Doe&quot;  (I am using SHA384)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So &lt;code&gt;John Doe&lt;/code&gt; gets turned into &lt;code&gt;Jnbn Dnh&lt;/code&gt;. It helps to keep the names the same length as that may help to point out usability issues.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have rules such as &quot;names cannot have digits&quot; then you need to remove out the base 64 values that aren't valid, also lowercasing the subsequent letters (done in sample code below). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Addresses:&lt;/strong&gt; &#xA;Street names and city names get hashed as names above do. Numbers stay the same. State and zip stays the same. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So &lt;code&gt;1313 Mockingbird Lane&lt;/code&gt; becomes &lt;code&gt;1313 Mvtqiwtuqrd Lzzx&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Phone numbers:&lt;/strong&gt;&lt;br&gt;&#xA;Leave area code the same, generate random digits for the remaining digits.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Credit Card Numbers:&lt;/strong&gt;&lt;br&gt;&#xA;You should not be storing these at all.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is some sample &amp;amp; crude C# code for hashing and truncating (simple to display the concept)  &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    using System.Security.Cryptography;  &#xA;    using System.Text.RegularExpressions;   &#xA;&#xA;    public string ScrambleInput(string sInput)&#xA;    {&#xA;        string sReturn = sInput.Substring(0,1);&#xA;        string sTemp = string.Empty;&#xA;        System.Security.Cryptography.SHA384Managed Hasher = new SHA384Managed();&#xA;        System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();&#xA;        byte[] buff = new byte[sInput.Length];&#xA;        buff = enc.GetBytes(sInput);&#xA;        Hasher.ComputeHash(buff);&#xA;        sTemp = Convert.ToBase64String(Hasher.Hash, 0, Hasher.Hash.Length, System.Base64FormattingOptions.None);&#xA;        sTemp = sTemp.ToLower().Replace(&quot;+&quot;, &quot;&quot;).Replace(&quot;/&quot;, &quot;&quot;);&#xA;        sReturn += Regex.Replace(sTemp, @&quot;\d&quot;, &quot;&quot;);&#xA;        sReturn = sReturn.Substring(0, sInput.Length );&#xA;        return sReturn;&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-23T17:47:54.823" CommentCount="1" />
  <row Id="20916" PostTypeId="2" ParentId="20909" CreationDate="2010-11-23T17:51:26.677" Score="9" ViewCount="" Body="&lt;p&gt;Bruce has a good answer.  I would add, semantically:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A procedure should &quot;do something&quot; to the arguments or cause some other side effect (e.g. &lt;code&gt;printf&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;A function should (a) answer a question about the arguments, or (b) compute a new value based on the arguments&lt;/li&gt;&#xA;&lt;li&gt;A function method should answer a question about the state of the object&lt;/li&gt;&#xA;&lt;li&gt;A procedure method should change the state of the object&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5512" LastEditorUserId="5512" LastEditorDisplayName="" LastEditDate="2010-11-24T17:18:03.057" LastActivityDate="2010-11-24T17:18:03.057" CommentCount="3" />
  <row Id="20917" PostTypeId="2" ParentId="20911" CreationDate="2010-11-23T17:54:42.940" Score="2" ViewCount="" Body="&lt;p&gt;By wanting to be in that role and playing the politics game quite often?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many code monkeys I know just want to be better code monkeys at the code face. Some want to be line managers (of development teams) or project managers or &quot;architects&quot; (whatever that means these days) but very few would want to be chief software monkey.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have experience, the masters degree should be irrelevant, It shows education and learning ability, not suitability or aptitude for a chief software monkey role.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Degrees are over rated anyway: does not infer programming skills...&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-11-23T17:54:42.940" />
  <row Id="20918" PostTypeId="1" AcceptedAnswerId="20995" CreationDate="2010-11-23T17:56:06.540" Score="4" ViewCount="253" Body="&lt;p&gt;I'm a beginner learning Java and after reading the docs I'm trying to solve some of the problems at codingbat.com. Some I managed to solve pretty quickly in a matter of seconds but some not quite. The problems themselves are easy (example &lt;a href=&quot;http://codingbat.com/prob/p126212&quot; rel=&quot;nofollow&quot;&gt;http://codingbat.com/prob/p126212&lt;/a&gt;) but I sometimes have a hard time finding the solutions. In part because I think of the best possible solution and automatically discard the ones that might work but aren't so elegant and in part because I can't find the right algorithm. This is either due to my inexperience (I have used PHP for web development for about 2 months so I'm not a total beginner - even worked with one framework to build a website) or due to my inability to think of a good algorithm. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I normally don't look at the solutions. I sometimes get stuck even for 1 1/5 hours at simple problems and some of them I eventually solve but some I can't so I eventually look at the solution. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it normal/good/bad to concentrate this long if I find a problem I can't solve? I might overreact but should this be so hard for me? Is there such thing as not being able to think of algorithms even with much learning and reading? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you all in advance.   &lt;/p&gt;&#xA;" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2011-04-26T15:02:26.520" LastActivityDate="2011-04-26T15:02:26.520" Title="What to do when you're faced with a problem that you can't solve quickly?" Tags="&lt;problem-solving&gt;&lt;junior-programmer&gt;" AnswerCount="5" CommentCount="6" FavoriteCount="2" />
  <row Id="20919" PostTypeId="2" ParentId="20911" CreationDate="2010-11-23T17:56:54.473" Score="8" ViewCount="" Body="&lt;p&gt;A Master's degree may shave a couple of years off your career path, depending on your company and your particular position, but it is by no means necessary for promotion (and certainly not a guarantee).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When it comes down to it, you become a leader by convincing others that you are the best person for the job.  It isn't guaranteed by the amount of time you've spent studying or how long you've worked in lower-responsibility positions (not that they won't help).&lt;/p&gt;&#xA;" OwnerUserId="7850" LastActivityDate="2010-11-23T17:56:54.473" />
  <row Id="20920" PostTypeId="2" ParentId="20867" CreationDate="2010-11-23T17:57:10.707" Score="4" ViewCount="" Body="&lt;p&gt;Yes&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A degree doesn't show ability or aptitude for a role.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also see this on SO &lt;a href=&quot;http://stackoverflow.com/questions/942929&quot;&gt;&quot;How does someone without a CS degree get an interview in a sluggish economy?&quot;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5905" LastEditorUserId="5905" LastEditorDisplayName="" LastEditDate="2010-11-23T18:19:02.697" LastActivityDate="2010-11-23T18:19:02.697" />
  <row Id="20922" PostTypeId="2" ParentId="2700" CreationDate="2010-11-23T17:59:04.510" Score="1" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;if(city == &quot;Mumbai&quot; || city == &quot;Delhi&quot; || city == &quot;Kolkata || city == &quot;Chennai&quot; || city == &quot;Bangalore&quot; || city == &quot;Pune&quot;) {&#xA;  // ...&#xA;} &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I changed it to:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(List(&quot;Mumbai&quot;, &quot;Delhi&quot;, &quot;Kolkata&quot;, &quot;Chennai&quot;, &quot;Bangalore&quot;, &quot;Pune&quot;) contains city) {&#xA;  // ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;[ Language: Scala ]&lt;/p&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-11-23T17:59:04.510" CommentCount="4" />
  <row Id="20923" PostTypeId="2" ParentId="20909" CreationDate="2010-11-23T17:59:46.600" Score="19" ViewCount="" Body="&lt;p&gt;A &lt;strong&gt;function&lt;/strong&gt; is something that takes a bunch of inputs and returns one or more values. If the returned values are entirely determined by the inputs, and the function doesn't have any side effects (logging, perhaps, or causing state changes outside itself), then it's called a pure function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A &lt;strong&gt;procedure&lt;/strong&gt; is a function that doesn't return a value. In particular, this means that a procedure can only cause side effects. (That might include mutating an input parameter!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A &lt;strong&gt;method&lt;/strong&gt; is a function that closes over a set of variables, that is, a &lt;strong&gt;closure&lt;/strong&gt;. It takes zero or more input parameters, has access to this set of variables, and returns zero or more values.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In most mainstream OO languages, those closed-over variables are called the member fields, or instance variables, of an object. A method be a pure function, an impure function or a procedure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The latter definition leads to the &lt;em&gt;object = struct + closures&lt;/em&gt; correspondence.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-11-23T17:59:46.600" />
  <row Id="20924" PostTypeId="2" ParentId="3282" CreationDate="2010-11-23T18:03:38.363" Score="4" ViewCount="" Body="&lt;p&gt;We have a file called &lt;code&gt;Model.cs&lt;/code&gt; which is over 70,000 lines long. Yes, some is generated, but most is not. And a class called &lt;code&gt;SomeUtilityThingieClass&lt;/code&gt;.. seriously.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-11-23T18:03:38.363" CommunityOwnedDate="2011-01-14T18:11:43.393" />
  <row Id="20925" PostTypeId="2" ParentId="20918" CreationDate="2010-11-23T18:06:18.233" Score="5" ViewCount="" Body="&lt;p&gt;From what you've said in your question, the issue isn't that you can't solve the problems, it's that you can't think of an elegant solution that would work, so you give up. The main problem with this approach is that you're not really learning anything. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A better approach would be to try one of the not so elegant possible solutions. If it doesn't work, it's not the end of the world, just move on to plan B. If it does work, you now have the chance to make it more elegant. Either way, you will have learned something, and this approach will serve you better if and when you write code for a living.  Remember: you can't improve what's not there. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-23T18:07:27.280" LastActivityDate="2010-11-23T18:07:27.280" CommentCount="2" />
  <row Id="20926" PostTypeId="2" ParentId="20918" CreationDate="2010-11-23T18:08:40.963" Score="3" ViewCount="" Body="&lt;p&gt;Take a break every now and then. It's good that you aren't looking at the solutions right off the bat, but if you are well and truly stuck go ahead. You will still learn even if you did not find the solution yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've heard that it takes 10 years to master a skill (don't have a source for that, sorry). So, don't worry if it seems to take you a long time at first. By the way, 1.5 hours is not a long time to be figuring out a problem. If you continue in programming you will find problems that may take you days, even weeks to figure out. Keep on driving at the problems, and you will find as the months go by that it becomes easier and easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as &quot;Is there such thing as not being able to think of algorithms even with much learning and reading?&quot; is concerned, practice makes perfect. There are only a limited number of basic data structures, and the algorithms for working with them are the same for any implementation. Once you learn, really &lt;em&gt;learn&lt;/em&gt; to apply a few algorithms, you will remember them and be able to use the knowledge in other problems. Over time this knowledge base builds up to the point where problems appear to all be variations on a theme rather than disconnected.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-23T18:08:40.963" CommentCount="3" />
  <row Id="20927" PostTypeId="1" CreationDate="2010-11-23T18:10:35.467" Score="39" ViewCount="3161" Body="&lt;p&gt;Just as the title says, what is your favorite whiteboard interview problem, and why has it proven effective for you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Junior, senior, Java, C, Javascript, PHP, SQL, pseudo-code, etc.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-02-26T19:59:58.480" LastActivityDate="2011-03-31T16:40:42.730" CommunityOwnedDate="2011-02-15T14:41:29.790" Title="What is your favorite whiteboard interview problem?" Tags="&lt;interview&gt;&lt;interview-questions&gt;&lt;algorithms&gt;&lt;whiteboard&gt;" AnswerCount="30" CommentCount="8" FavoriteCount="49" />
  <row Id="20928" PostTypeId="2" ParentId="20927" CreationDate="2010-11-23T18:16:13.403" Score="6" ViewCount="" Body="&lt;p&gt;I use a problem that is relevant to my programming domain.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I develop web applications, I want to see how they might draw up a web form that deletes records, and what approach they might take to removing the record from the database, for example.  This tells me if they know basic database principles, how they interact with the user to verify deletion, and if they know what a soft delete is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't have a favorite.  The problem I choose will vary greatly depending on the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't care whether they can solve the problem completely or not in an interview, what technologies and languages they use, or how crappy their code looks on a whiteboard.  I am looking for a thought pattern; I want to see if they know how to think through and solve problems.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-23T20:39:50.723" LastActivityDate="2010-11-23T20:39:50.723" CommunityOwnedDate="2011-02-15T14:41:29.790" CommentCount="1" />
  <row Id="20929" PostTypeId="2" ParentId="17590" CreationDate="2010-11-23T18:17:59.953" Score="0" ViewCount="" Body="&lt;p&gt;In general, I'd say that a task pool should be made in a way that&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;all tasks can be executed concurrently, given enough resources (with synchronization on shared resources when necessary)&lt;/li&gt;&#xA;&lt;li&gt;all tasks can be executed serially, in any arbitrary order&lt;/li&gt;&#xA;&lt;li&gt;any level of concurrence between 1. and 2. is possible&lt;/li&gt;&#xA;&lt;li&gt;all possible orders and concurrence levels produce valid results (not necessarily the same)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Given that definition,&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Are dependencies allowed in task pool?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Too vague. If you mean tasks depending on other tasks, I'd say no. A system with such dependencies is a rather a queue than a pool.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Can a running task exchange data with other running tasks?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It should not. You cannot rely on another task running at the same time.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;To phrase conversely, are tasks permitted to accept data only prior to start and permitted to publish results only after the task has finished?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Not necessarily. Unchanged data (i.e. from an immutable database) can be accessed later. Output can be written at any time, as long as no other tasks depends on it.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What keeps track of the temporary resources (memory, CPU etc) that are used by tasks?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The framework? At least, not the tasks.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How to define weights that will encourage efficient task assignment?&#xA;  For example, if one task needs to pass a lot of data to the next task, it may make sense to run the next task immediately following the first task, and as close to the first thread / CPU / machine / cluster (locality) as possible&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;IMO when such a dependency exists, there should be one task that does both, instead of two tasks&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What about tasks that are not known (do not exist) in the beginning, but were &quot;created&quot; later?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Tasks can create new tasks. Those can be executed at any time after creation, possibly concurrently with the task that created them.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-23T18:17:59.953" />
  <row Id="20930" PostTypeId="2" ParentId="3282" CreationDate="2010-11-23T18:22:57.717" Score="7" ViewCount="" Body="&lt;p&gt;In a past job in an industrual automation control company, I used to maintain a large MFC application that was built on a code base that was originally written like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back in the 1980s, they didn't even have programmers. They simply had their electrical and mechanical engineers write code, because the UIs were command line based and simple. All the code was embedded C anyway, so it wasn't so bad for (especially electrical) engineers to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the controls were updated to Windows in the 1990s, they simply got the electrical engineers to take the embedded C code, and turn it into into Windows C code with a simple GUI. Times were changing, so eventually, the market started to demand a more sophisticated graphical interface - so what happened? - They let a small group of their electrical engineers take the code base and attack it with a Visual C++ For Dummies type of book. Difficulty? - All the company had was a C compiler in the early days. They only bought the full version of Visual Studio later down the line, a couple of years before my time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;End result: C code with macros containing function pointers which mimics C++ classes, with some &quot;proper&quot; MFC thrown into the mix on top of this. Absolute. Nightmare. If I never have to see &quot;void***&quot; again for the rest of my life, it'll be too soon.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-23T18:22:57.717" CommunityOwnedDate="2011-01-14T18:11:43.393" CommentCount="1" />
  <row Id="20931" PostTypeId="2" ParentId="19893" CreationDate="2010-11-23T18:23:51.447" Score="1" ViewCount="" Body="&lt;p&gt;I will have to recommend you to use WCF for your service layer because of scalability and security. For the presentation layer you can use either Silverlight or ASP.NET, Silverlight is like Flash, but it's hard to understand and have a high learning curve at first, mostly when working with data. ASP.NET is easier to use but you will need a lot of tweaking and javascript to use it efficiently.&lt;/p&gt;&#xA;" OwnerUserId="8447" LastActivityDate="2010-11-23T18:23:51.447" CommentCount="1" />
  <row Id="20932" PostTypeId="1" AcceptedAnswerId="20953" CreationDate="2010-11-23T18:25:19.060" Score="12" ViewCount="326" Body="&lt;p&gt;What percentage of time is saved and costed doing TDD.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I assume this percentage of cost and reward changes during a projects life-cycle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd imagine the &lt;strong&gt;initial phase&lt;/strong&gt; has a lot more cost but little rewards attached. Further on (during &lt;strong&gt;re-factoring&lt;/strong&gt;) you get the benefit of your tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've heard anywhere from &lt;strong&gt;30-50% of your time&lt;/strong&gt; is writing unit tests. However that doesn't take into account the &lt;strong&gt;time saved&lt;/strong&gt; from writing those tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's everyones' experience with this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wes&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt; Whats the time saved as well as the time cost? In bug fixing and refactorablity?&lt;/p&gt;&#xA;" OwnerUserId="1608" LastEditorUserId="1608" LastEditorDisplayName="" LastEditDate="2010-11-23T21:25:36.533" LastActivityDate="2010-11-23T22:39:35.797" Title="Whats the real overhead of TDD once the entire team is used to it?" Tags="&lt;productivity&gt;&lt;best-practices&gt;&lt;tdd&gt;" AnswerCount="5" CommentCount="9" FavoriteCount="2" />
  <row Id="20933" PostTypeId="2" ParentId="20896" CreationDate="2010-11-23T18:27:28.953" Score="2" ViewCount="" Body="&lt;p&gt;If I had to write documentation speaking directly to a person writing code that extends my base class, I would call them a &lt;strong&gt;Developer&lt;/strong&gt;, &lt;strong&gt;End User&lt;/strong&gt;, or &lt;strong&gt;Consumer&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, I think it's generally a bad idea to reference the people using your code in the comments.  Comments should state what the code does, not what the developer using it should be doing.&lt;/p&gt;&#xA;" OwnerUserId="7850" LastActivityDate="2010-11-23T18:27:28.953" CommentCount="4" />
  <row Id="20934" PostTypeId="2" ParentId="20911" CreationDate="2010-11-23T18:39:37.023" Score="7" ViewCount="" Body="&lt;p&gt;The chief software engineer in a company is going to have the best balance of an understanding of the needs of the business and building reliable/excellent technical solutions to difficult problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO some of their traits are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Favouring time-to-market over elegance of solution. This doesn't mean producing inelegant solutions, just that a solution that delivers earlier will be more profitable in the long-run.&lt;/li&gt;&#xA;&lt;li&gt;An aversion to ground-up re-writes as they've learned the cost through experience.&lt;/li&gt;&#xA;&lt;li&gt;Ability to give accurate work breakdown structures to the business with realistic cost estimates and schedules.&lt;/li&gt;&#xA;&lt;li&gt;Can deliver on (3).&lt;/li&gt;&#xA;&lt;li&gt;Commands respect with the rest of the engineers in terms of being someone who gets results.&lt;/li&gt;&#xA;&lt;li&gt;Shying away from shiny new technology until it is well understood and has continuing industry/community support.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Some of these traits develop over time; some of them may get a kick-start by doing a secondary degree. Personally, I think that time spent in the subject of software engineering would equally help towards these goals. Remember that some of the big names in the industry do not even have degrees.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fundamentally, getting promoted up to this role is going to require all other engineers to leave/die, or saying and doing all the right things such that those with the power to promote you to this position do so. &lt;/p&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-11-23T19:09:27.220" LastActivityDate="2010-11-23T19:09:27.220" />
  <row Id="20935" PostTypeId="2" ParentId="20896" CreationDate="2010-11-23T18:39:46.893" Score="3" ViewCount="" Body="&lt;p&gt;You shouldn't  mention the people who code in the doc, but how the base class should be extended,  hence, you could call them &quot;implementations&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;ie&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;This base class defines the basic structure of the blah blah blah. Implementations should do XYZ to make it work....&lt;/em&gt; &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Or &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Implementations of this class should also consider...&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="82" LastEditorUserId="82" LastEditorDisplayName="" LastEditDate="2010-11-23T23:07:03.840" LastActivityDate="2010-11-23T23:07:03.840" CommentCount="4" />
  <row Id="20936" PostTypeId="1" AcceptedAnswerId="20937" CreationDate="2010-11-23T18:46:40.620" Score="3" ViewCount="350" Body="&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have tried many PHP IDEs but I did not like the intellisense most of the time they are slow or not that smart! Do you know any good PHP IDE that have smart and a very quick response in intellisense?&lt;/p&gt;&#xA;" OwnerUserId="26782" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-23T18:50:01.580" LastActivityDate="2011-01-31T08:10:17.177" Title="IDE with smart intellisense" Tags="&lt;php&gt;&lt;ide&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="20937" PostTypeId="2" ParentId="20936" CreationDate="2010-11-23T18:49:09.287" Score="6" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://netbeans.org/&quot; rel=&quot;nofollow&quot;&gt;Netbeans&lt;/a&gt;. It's code completion works nicely for PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If Netbeans is slow for you, then your computer is in a dire need of an upgrade... or you could just work in Emacs or Vim.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you dig into the Netbeans site, you'll find &lt;a href=&quot;http://netbeans.org/kb/trails/php.html&quot; rel=&quot;nofollow&quot;&gt;links to screencasts&lt;/a&gt; of PHP with Netbeans in action.&lt;/p&gt;&#xA;" OwnerUserId="1683" LastEditorUserId="1683" LastEditorDisplayName="" LastEditDate="2010-11-23T19:06:59.120" LastActivityDate="2010-11-23T19:06:59.120" CommentCount="5" />
  <row Id="20938" PostTypeId="2" ParentId="20911" CreationDate="2010-11-23T18:50:37.850" Score="1" ViewCount="" Body="&lt;p&gt;It is my experience that an MBA is something that most &lt;strong&gt;senior&lt;/strong&gt; management people in any field have. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-23T18:50:37.850" />
  <row Id="20939" PostTypeId="2" ParentId="17590" CreationDate="2010-11-23T18:52:23.047" Score="1" ViewCount="" Body="&lt;p&gt;There's some terminology trouble here, which is why your internet searches haven't yielded the answer yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A pool is the name given to a collection of 'expensive', re-usable resources such as threads, completion ports, database connections. The operating system, library or framework will manage the number of items in the pool according to some heuristics based on current load or availability of resource.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tasks are usually units of execution, such as a Deferred Procedure Call, Delegate Call or Objective-C's NSTask. The simplest case is that there's a queue of these waiting to happen built up by code that needs things done 'later', at lower/higher priority than other tasks, asynchronously, concurrently, on another thread (e.g. UI thread) or some combination of all these. Some frameworks allow for inter-dependencies of tasks to be constructed, so you end up with fairly complex decisions being made to determine which task to execute next, but that's all down to the framework/library/O/S.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As already mentioned, the Task Parallel library is one example of breaking stuff up to be executed. Another is the &lt;a href=&quot;http://developer.apple.com/library/mac/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationObjects/OperationObjects.html#//apple_ref/doc/uid/TP40008091-CH101-SW1&quot; rel=&quot;nofollow&quot;&gt;NSOperationQueue on Mac OS X&lt;/a&gt;, which has been leveraged to greatly reduce the number of threads (expensive) required to be running at any one time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer your questions specifically:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Dependencies depend on the framework/library you use, but its' a first-class concept.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Ownership of data is generally de-coupled from the creator of the task and passed to the task itself, as the actual thread/CPU it runs on is unclear. One task handing its' data to another isn't a particular problem conceptually - it depends on the framework for constraints. Use execution dependencies if one task needs the output of another.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;As the task owns the data, it should take responsibility for cleaning up afterwards. Clearly, if you're handing data to another task, you need reference counting or garbage collection on top of a data ownership policy.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Some frameworks will allow tuning of which tasks run, how much CPU, at what O/S scheduling level, etc. If a task starts using all available memory, it's likely you'll have to deal with that in your own code. Even if you didn't use a 'task pool' strategy, that'd be a problem.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Tasks created 'later' can be enqueued in the existing task pool for execution.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-11-23T18:59:33.927" LastActivityDate="2010-11-23T18:59:33.927" />
  <row Id="20940" PostTypeId="1" AcceptedAnswerId="20966" CreationDate="2010-11-23T19:08:51.893" Score="4" ViewCount="197" Body="&lt;p&gt;Rails, to me, seems like a perfect level of abstraction for most types of web development. However, having watched some seasoned Rails consultants build an application, I'm finding that they use Gems to an extent that it's often pretty difficult to figure out what's going on in the code. As an intermediate-level Rails developer, I've had a pretty hard time digging through their code to figure out how things work, and I'm really struggling to see the payoff of this approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So is it me, or does Rails, by dint of the fact that it has such a vibrant community of contributors, kind of encourage over-abstraction?&lt;/p&gt;&#xA;" OwnerUserId="194" LastActivityDate="2010-11-23T20:53:37.027" Title="Is there too much abstraction in the Ruby on Rails community?" Tags="&lt;ruby-on-rails&gt;&lt;abstraction&gt;" AnswerCount="3" />
  <row Id="20941" PostTypeId="2" ParentId="20936" CreationDate="2010-11-23T19:10:13.123" Score="1" ViewCount="" Body="&lt;p&gt;Either netbeans or &lt;a href=&quot;http://www.google.com.gi/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CBQQFjAA&amp;amp;url=http%3A%2F%2Fwww.phpeclipse.com%2F&amp;amp;ei=IxHsTJXNO8aWhQfFlvHMDA&amp;amp;usg=AFQjCNEdcTydvgWECGaD0y4Bk17giPcjnA&amp;amp;sig2=Y35ucKtlZMHEVakDG4cEcA&quot; rel=&quot;nofollow&quot;&gt;phpeclipse&lt;/a&gt; I both find great at producing good suggestions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Their pretty much the only ones I've used. I've heard great things about &lt;a href=&quot;http://www.zend.com/products/studio/&quot; rel=&quot;nofollow&quot;&gt;Zend Studio&lt;/a&gt; but I haven't used it so I don't really know if its much good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot if it depends on the workflow your most confortable using. Once you get reliant on an IDE with autocomplete it can be hard to change to an alternative IDE.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I pretty much only use eclipse for everything these days so my answer may be a bit biased.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt; As to the debugging. Yes phpeclipse and netbeans both provide debugging. Xdebug is used for php eclipse which can be a little difficult to get the correct compiled version for windows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hopefully in the command line you can get away with pecl install xdebug but I didn't have much luck with that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Netbeans seems easier to set the debugging up in the first place. Their both top IDE's.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Zend studio I assume should have wonderful debugging. Its a PHP specific commercial IDE&lt;/p&gt;&#xA;" OwnerUserId="1608" LastEditorUserId="1608" LastEditorDisplayName="" LastEditDate="2010-11-23T19:15:49.530" LastActivityDate="2010-11-23T19:15:49.530" CommentCount="3" />
  <row Id="20942" PostTypeId="1" AcceptedAnswerId="20943" CreationDate="2010-11-23T19:15:23.640" Score="0" ViewCount="169" Body="&lt;p&gt;Hi guys,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm planning to start a website in PHP and want to know the size of MySQL, the web host told me that it is as the size of the disk which is 20 GB. My question what if I increased the size of the disk later on to 100 GB. Will MySQL 'the free edition' goes also with the size of the disk space or will it require me to buy a commercial edition?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And my second question is, I know that SQL Server Express is limited to use only 1GB of memory, what about MySQL?&lt;/p&gt;&#xA;" OwnerUserId="26782" LastActivityDate="2010-11-23T19:19:46.070" ClosedDate="2010-11-23T19:57:33.147" Title="SQL server Express edition is limited with 10GB and 1 GB of memory, what about MySQL?" Tags="&lt;mysql&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="20943" PostTypeId="2" ParentId="20942" CreationDate="2010-11-23T19:19:46.070" Score="2" ViewCount="" Body="&lt;p&gt;MySQL table size is limited only by the file system, not the edition of MySQL you're running.  See &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.0/en/full-table.html&quot; rel=&quot;nofollow&quot;&gt;http://dev.mysql.com/doc/refman/5.0/en/full-table.html&lt;/a&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A related StackOverflow question: &lt;a href=&quot;http://stackoverflow.com/questions/48633/max-table-size-you-have-seen-in-a-mysql-db&quot;&gt;http://stackoverflow.com/questions/48633/max-table-size-you-have-seen-in-a-mysql-db&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;MySQL doesn't seem to have a hard limit on memory either.  See this stack overflow article for more: &lt;a href=&quot;http://stackoverflow.com/questions/1178736/mysql-maximum-memory-usage&quot;&gt;http://stackoverflow.com/questions/1178736/mysql-maximum-memory-usage&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-11-23T19:19:46.070" />
  <row Id="20944" PostTypeId="2" ParentId="279" CreationDate="2010-11-23T19:27:40.380" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Initializable Automatic Properties&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like be able to set the initial value of an automatic property rather than use an instance/static constructor.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Foo&#xA;{&#xA;    public int Bar = 5 { get; set; }&#xA;&#xA;    // or&#xA;&#xA;    public int Baz { get; set; } = 5;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="135" LastActivityDate="2010-11-23T19:27:40.380" CommunityOwnedDate="2011-05-10T09:21:11.253" CommentCount="5" />
  <row Id="20945" PostTypeId="2" ParentId="279" CreationDate="2010-11-23T19:34:59.887" Score="2" ViewCount="" Body="&lt;p&gt;Mine would be the async keyword and better integration of parallel/concurrency support.&lt;/p&gt;&#xA;" OwnerUserId="4960" LastActivityDate="2010-11-23T19:34:59.887" CommunityOwnedDate="2011-05-10T09:21:11.253" />
  <row Id="20946" PostTypeId="2" ParentId="4765" CreationDate="2010-11-23T19:35:15.130" Score="3" ViewCount="" Body="&lt;p&gt;Late entry:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The job&lt;/li&gt;&#xA;&lt;li&gt;The people&lt;/li&gt;&#xA;&lt;li&gt;The money&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You need 2 of the 3. Less than that, move on.&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-11-23T19:35:15.130" />
  <row Id="20947" PostTypeId="2" ParentId="20940" CreationDate="2010-11-23T19:37:30.323" Score="2" ViewCount="" Body="&lt;p&gt;Ruby in general encourages programming at a high level, and Rails specifically encourages a somewhat declarative style of programming (one might even think of Rails as a declarative DSL for defining webpages, to an extent). As a result, Rails apps can be difficult to grok if you don't have a lot of experience with the app itself, and all the gems it utilizes. But like most things programming, to an experienced Rails programmer (and someone experienced with the specific app itself) it probably makes sense.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-11-23T19:37:30.323" />
  <row Id="20948" PostTypeId="2" ParentId="20909" CreationDate="2010-11-23T19:37:37.280" Score="9" ViewCount="" Body="&lt;p&gt;I'm going with a different answer here: practically speaking, &lt;strong&gt;there's really no difference&lt;/strong&gt;, with the slight exception that &quot;method&quot; &lt;em&gt;usually&lt;/em&gt; refers to a subroutine associated with an object in OO languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The terms &quot;procedure, function, subroutine, subprogram, and method&quot; all really mean the same thing: a callable sub-program within a larger program.  But it's difficult to come up with a definition that captures all variant usages of these terms, because they are not used consistently across programming languages or paradigms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might say a function returns a value.  Well, the following C function doesn't return a value:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void f() { return; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;...but I doubt you'd find anyone who would call it a procedure.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, in Pascal, procedures don't return values and functions return values, but that's merely a reflection of how Pascal was designed.  In Fortran, a function returns a value, and a subroutine returns multiple values.  Yet none of this really allows us to come up with a &quot;universal&quot; definition for these terms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, the term &quot;procedural programming&quot; refers to a whole class of languages, including C, Fortran and Pascal, only one of which actually uses the term &quot;procedure&quot; to mean anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So none of this is really consistent.  The only exception is probably &quot;method&quot;, which seems to be used almost entirely with OO languages, referring to a function that is associated with an object.  Although, even this is not always consistent.  C++, for example, usually uses the term &quot;member function&quot; rather than method, (even though the term &quot;method&quot; has crept into the C++ vernacular among programmers.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point is, none of this is really consistent.  It simply reflects the terminology employed by whatever languages are en vogue at the time.&lt;/p&gt;&#xA;" OwnerUserId="7733" LastEditorUserId="7733" LastEditorDisplayName="" LastEditDate="2010-11-23T19:58:20.357" LastActivityDate="2010-11-23T19:58:20.357" CommentCount="5" />
  <row Id="20949" PostTypeId="1" CreationDate="2010-11-23T19:38:12.897" Score="4" ViewCount="283" Body="&lt;p&gt;In reference to &lt;a href=&quot;http://programmers.stackexchange.com/q/20407/11&quot;&gt;this question&lt;/a&gt;, do you think that having a high reputation on this site will help to get a good job?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aside silly and humorous questions, on Programmers we can see a lot of high quality theory questions. I think that, &lt;em&gt;if&lt;/em&gt; Stack Overflow will eventually evolve in &quot;strictly programming related&quot; (which usually is &quot;strictly &lt;em&gt;coding&lt;/em&gt; related&quot;), the questions on Programmers will be much more interesting and meaningful (&quot;Stack Overflow&quot; = &quot;I have this specific coding/implementation issue&quot;; &quot;Programmers&quot; = &quot;Best practices, team shaping, paradigms, CS theory&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So could high reputation on this site help (or at least be a good reference)? And then, more o less than Stack Overflow?&lt;/p&gt;&#xA;" OwnerUserId="11" LastEditorUserId="11" LastEditorDisplayName="" LastEditDate="2010-11-24T20:09:28.930" LastActivityDate="2010-11-24T20:09:28.930" Title="Will high reputation in Programmers help to get a good job?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;reputation&gt;" AnswerCount="6" CommentCount="7" />
  <row Id="20950" PostTypeId="1" CreationDate="2010-11-23T19:38:50.990" Score="18" ViewCount="743" Body="&lt;p&gt;I find myself using my text editor of choice (vim, nano, gedit, pick your poison) much more often than any IDE as of late.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After noticing my ide shortcuts getting dusty I started to think about this and wonder: &lt;strong&gt;what justifies use of an IDE for you opposed to a text editor&lt;/strong&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For that matter what rationale would you have for &lt;strong&gt;not&lt;/strong&gt; using an IDE and merely relying on an editor? &lt;/p&gt;&#xA;" OwnerUserId="136" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-11-24T15:36:21.690" LastActivityDate="2011-05-13T08:56:53.620" Title="What justifies the use of an standard editor versus a IDE?" Tags="&lt;ide&gt;&lt;text-editor&gt;&lt;environment&gt;" AnswerCount="12" CommentCount="9" />
  <row Id="20951" PostTypeId="2" ParentId="20896" CreationDate="2010-11-23T19:39:27.513" Score="2" ViewCount="" Body="&lt;p&gt;I want to offer an out-of-the-box idea: &lt;strong&gt;let's delete this comment altogether and then we don't have a problem how to phrase it&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The keyword &lt;code&gt;abstract&lt;/code&gt; already says it all: one of the derived classes must implement the method.  If that's the intent you want to communicate to the implementors of those derived classes, then you're already using this particular language element appropriately.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-23T19:39:27.513" CommentCount="2" />
  <row Id="20952" PostTypeId="2" ParentId="20950" CreationDate="2010-11-23T19:42:21.460" Score="29" ViewCount="" Body="&lt;p&gt;The I: &lt;strong&gt;integration&lt;/strong&gt;.  A good text editor may be nice for writing code, but most of your programming isn't spent writing; it's spent testing and debugging, and for that you want your text editor to integrate with your compiler and your debugger.  That's the greatest strength of an IDE.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-11-23T19:42:21.460" CommentCount="4" />
  <row Id="20953" PostTypeId="2" ParentId="20932" CreationDate="2010-11-23T19:42:42.223" Score="7" ViewCount="" Body="&lt;p&gt;Each time you run your unit tests, you save yourself the amount of time it would have taken to manually test your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The 30% to 50% of time you quote as being required to write your tests is also offset a great deal by the benefits of having a better (testable) software design.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Let's say it takes four times as long to write an automated test as it does to manually perform the test.  That means that the fourth time you run your automated test, it pays for itself.  Every time you run the automated test after that, it's free.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This holds true whether the test is an automated unit test, or an automated functional test.  Not all functional tests can be automated, but many of them can.  Plus, the automated test is more reliable than a person; it will run the test in &lt;em&gt;exactly the same way&lt;/em&gt;, every time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having unit tests means that you can refactor the underlying implementation of a method (for performance or other reasons), and the unit tests will verify that the functionality of the method has not changed.  This is especially true of TDD, where the unit test &lt;em&gt;specifies&lt;/em&gt; the functionality of the method.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-23T21:55:56.430" LastActivityDate="2010-11-23T21:55:56.430" CommentCount="4" />
  <row Id="20954" PostTypeId="2" ParentId="20949" CreationDate="2010-11-23T19:43:47.900" Score="3" ViewCount="" Body="&lt;p&gt;I think many of the arguments given on the other question would also apply here, except applied to design and best practices as opposed to coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe Joel should look for programmers on Stack Overflow, and managers and architects here.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-23T19:43:47.900" />
  <row Id="20955" PostTypeId="2" ParentId="20949" CreationDate="2010-11-23T19:45:19.703" Score="11" ViewCount="" Body="&lt;p&gt;I think SO rep would be better for getting you a great coding job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers rep more accurately reflects your ability to impress people with subjective BS.  Therefore, programmers rep will be better for getting you a job in &lt;strong&gt;management&lt;/strong&gt;. ;)&lt;/p&gt;&#xA;" OwnerUserId="6847" LastEditorUserId="6847" LastEditorDisplayName="" LastEditDate="2010-11-23T20:03:22.427" LastActivityDate="2010-11-23T20:03:22.427" CommentCount="4" />
  <row Id="20956" PostTypeId="2" ParentId="19842" CreationDate="2010-11-23T19:52:56.330" Score="2" ViewCount="" Body="&lt;p&gt;There is &lt;a href=&quot;http://tabbles.net/&quot; rel=&quot;nofollow&quot;&gt;Tabbles&lt;/a&gt;. A file manager and organizer, with a lot of features. It provides a tagging system that you can even share with others. It's a commercial product.&lt;/p&gt;&#xA;" OwnerUserId="8450" LastActivityDate="2010-11-23T19:52:56.330" />
  <row Id="20957" PostTypeId="2" ParentId="20949" CreationDate="2010-11-23T19:54:45.137" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;do you think that having a high&#xA;  reputation on this site will help to&#xA;  get a good job?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Maybe in the future, but right now it seems to have very little relevance.&lt;/p&gt;&#xA;" OwnerUserId="6735" LastActivityDate="2010-11-23T19:54:45.137" />
  <row Id="20958" PostTypeId="2" ParentId="20949" CreationDate="2010-11-23T19:57:34.667" Score="2" ViewCount="" Body="&lt;h1&gt;Absolutely&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;not&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have &gt;1k rep on Programmers.SE? &lt;strong&gt;Great for you!&lt;/strong&gt; &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-23T19:57:34.667" />
  <row Id="20959" PostTypeId="2" ParentId="20950" CreationDate="2010-11-23T19:57:59.680" Score="13" ViewCount="" Body="&lt;p&gt;IDE's understand your code much better than an editor.  This allows for instance for identifier completion and refactoring, which for verbose languages like Java is a God-send,&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-23T19:57:59.680" CommentCount="4" />
  <row Id="20960" PostTypeId="2" ParentId="20950" CreationDate="2010-11-23T19:58:11.750" Score="8" ViewCount="" Body="&lt;p&gt;Productivity. Is there any other justification that makes sense? For me, a well-designed IDE that centralizes a lot of the functions that I perform while programming -- creating and editing code, using source control, debugging, interacting with project management tools, communicating with other programmers, creating documentation, running automated tests -- dramatically reduces the process friction that reduces my productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, even though I feel as though I need to know how to use each tool individually, I don't want to have to. For me at least, a right-mouse-click is infinitely preferable to opening a CLI and typing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have used many, but the IDEs that I return to over-and-over are Visual Studio, Wing IDE and NetBeans. All add significant value to the time that I spend programming.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-11-23T19:58:11.750" />
  <row Id="20961" PostTypeId="2" ParentId="20918" CreationDate="2010-11-23T19:58:39.323" Score="3" ViewCount="" Body="&lt;p&gt;The most important thing in software development is working software. This is especially so in commercial development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of people spend far too much time trying to be clever or come up with a supposed &quot;elegant&quot; solution when what they should be doing is producing working code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you should be doing is solving the problem as quickly as possible. Once you have proven your solution works, then is the time to refactor to make it elegant, fast, etc, if required. Often, once you have working code in front of you it becomes easier to see the more elegant solution.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-11-23T19:58:39.323" CommentCount="1" />
  <row Id="20962" PostTypeId="2" ParentId="20950" CreationDate="2010-11-23T20:00:32.363" Score="4" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;One-click compilation&lt;/li&gt;&#xA;&lt;li&gt;Debugging&lt;/li&gt;&#xA;&lt;li&gt;Code templates&lt;/li&gt;&#xA;&lt;li&gt;Code completion&lt;/li&gt;&#xA;&lt;li&gt;Integration with version control and refactoring tools&lt;/li&gt;&#xA;&lt;li&gt;Simpler unit testing&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;to name a few&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-11-23T20:00:32.363" />
  <row Id="20963" PostTypeId="2" ParentId="20896" CreationDate="2010-11-23T20:02:13.610" Score="7" ViewCount="" Body="&lt;p&gt;MSDN class documentation often uses &quot;you&quot; to refer to developers.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;When you inherit from WebRequest, you must override the following members...&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;You do not typically inherit from ButtonBase. To create your own button class, inherit from the Button, CheckBox, or RadioButton class....&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You can also simply state what the requirements are for descendent classes. It is implied that developers are your audience.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Classes that inherit IDbConnection must implement all inherited members, and typically define additional members to add provider-specific functionality.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In your example, instead of &quot;Implementers should implement this&quot;, write &quot;Descendent classes must override InternalExecute to...&quot; or &quot;In descendent classes, you must override InternalExecute to...&quot;. &lt;/p&gt;&#xA;" OwnerUserId="8426" LastEditorUserId="8426" LastEditorDisplayName="" LastEditDate="2010-11-23T20:08:17.690" LastActivityDate="2010-11-23T20:08:17.690" CommentCount="1" />
  <row Id="20964" PostTypeId="2" ParentId="20949" CreationDate="2010-11-23T20:10:18.890" Score="3" ViewCount="" Body="&lt;p&gt;We only have two users with five-digit reputations on this site, but &lt;a href=&quot;http://programmers.stackexchange.com/users/2567/pierre-303&quot;&gt;one of them has definitely built a reputation with his answers about &lt;strong&gt;agile&lt;/strong&gt;, &lt;strong&gt;team management&lt;/strong&gt;, and &lt;strong&gt;automated testing&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If he is approached by someone about a consulting opportunity in any of the above areas, that will sure not be a surprise.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-23T20:10:18.890" CommentCount="4" />
  <row Id="20965" PostTypeId="1" AcceptedAnswerId="20971" CreationDate="2010-11-23T20:17:18.603" Score="3" ViewCount="216" Body="&lt;p&gt;&lt;strong&gt;Hello&lt;/strong&gt;&lt;br&gt;&#xA;Over the years have I made a programming journey from C in 1990 to Pascal, C++ with I programmed commercially, java VHDL, C# and now I'm taking a look on F#.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the spring I will go back to study embedded programming in C in a university course so before I do that I will refresh my knowledge in C.&lt;br&gt;&#xA;I don't remember much of the C that I learnt and I think I am thankful for that for probably learned some bad habits back then.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have some questions to get me on the way.&lt;br&gt;&#xA;&lt;strong&gt;--edit--&lt;/strong&gt;&lt;br&gt;&#xA;To clarify: I am thankful for tips that have been given regarding embedded programming but now I am more interested in relearning C in general. Sorry if my question was unclear,&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Compiler, Debugger, IDE? As a microslave I was thinking about 2010 C++ Express, any alternatives?&lt;/li&gt;&#xA;&lt;li&gt;Where do you find good libraries with code for C. I'm thinking something similar to Boost, POCO in C++&lt;/li&gt;&#xA;&lt;li&gt;Source for procedural programming patterns and best practices. Where can you find good code learn from?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance&lt;br&gt;&#xA;Gorgen&lt;/p&gt;&#xA;" OwnerUserId="1041" LastEditorUserId="1041" LastEditorDisplayName="" LastEditDate="2010-11-24T08:40:31.427" LastActivityDate="2010-11-24T08:49:38.103" Title="things to think of when moving into C-land" Tags="&lt;learning&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="20966" PostTypeId="2" ParentId="20940" CreationDate="2010-11-23T20:24:53.497" Score="1" ViewCount="" Body="&lt;p&gt;Staying current is very challenging in the Rails community because of the proliferation of frameworks/components and the speed with which they are adopted by the mainstream. It means it takes work to stay current enough to understand new code, and that old code gets old very fast...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I program Rails only as a hobby and I don't have a prayer of keeping up; I average only one significant project per major release since .11 and I would not even call myself a Rails developer.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-23T20:24:53.497" CommentCount="1" />
  <row Id="20967" PostTypeId="2" ParentId="20965" CreationDate="2010-11-23T20:30:49.433" Score="4" ViewCount="" Body="&lt;p&gt;There is a very good chance for embedded C programming that you will end up with using the GNU C compiler to target the destination platform, so you might as well learn to use gcc along with gdb to debug (perhaps even using Emacs as both a C IDE which is pretty good, and as the gdb frontend).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For this you essentially just need any modern Linux distribution which contain all of the above - usually as optional packages just requiring a single command to install.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This looks like a good C tutorial : &lt;a href=&quot;http://www.faqs.org/docs/learnc/&quot; rel=&quot;nofollow&quot;&gt;http://www.faqs.org/docs/learnc/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will naturally need the K&amp;amp;R manual.  Use ANSI C if you can.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-23T20:30:49.433" CommentCount="4" />
  <row Id="20968" PostTypeId="2" ParentId="20949" CreationDate="2010-11-23T20:31:33.593" Score="0" ViewCount="" Body="&lt;p&gt;It will not get you a good job (assuming in programming here), but then neither will having a degree.  What matters most is knowledge and experience in the field.  Social sites aren't going to get you the job, they &lt;em&gt;might&lt;/em&gt; make a difference in a tie-breaker kind of situation.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-11-23T20:31:33.593" />
  <row Id="20969" PostTypeId="2" ParentId="20932" CreationDate="2010-11-23T20:33:50.853" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I've heard anywhere from 30-50% of your time is writing unit tests. However that doesn't take into account the time saved&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In my experience, it's more than 50%.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you've written the test, the solution has a tendency to come very easy. So I don't think it's odd to spend 70% - 75% of your time writing tests, but you're spending much less time writing the code-under-test and spending virtually no time in the debugger.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The sooner you find a bug, the cheaper it is to fix, and TDD helps with that tremendously. I've worked on projects where the last 2 months (of an 8 month project) were spent fixing bugs, and that phase would be almost entirely eliminated with TDD.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me though, the real value is in maintenance. Inheriting a code base with tests versus one without makes you less scared to make changes (you likely didn't break anything if the tests still pass). Since you aren't scared to make changes you're willing to refactor if something isn't right. Which means the code is cleaner, the design fits better, and in theory changes can be applied faster.&lt;/p&gt;&#xA;" OwnerUserId="7610" LastEditorUserId="7610" LastEditorDisplayName="" LastEditDate="2010-11-23T21:31:20.880" LastActivityDate="2010-11-23T21:31:20.880" CommentCount="3" />
  <row Id="20970" PostTypeId="2" ParentId="20950" CreationDate="2010-11-23T20:38:58.953" Score="2" ViewCount="" Body="&lt;p&gt;Depending of course on your language, some IDE's also include visual Form/Window designers.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Though it should be pointed out, the line between a programmer's text editor and an IDE is not a well defined one.  Many editors can be extended to handle compiling, code completion, debugging, etc.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-23T20:38:58.953" />
  <row Id="20971" PostTypeId="2" ParentId="20965" CreationDate="2010-11-23T20:39:01.563" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;GCC, GDB, Eclipse can be a decent multi-platform alternative.&lt;/li&gt;&#xA;&lt;li&gt;From my experience, especially in embedded environment, you more often have to build your own specific library, than use a third party library that may be too big, or not enough. There is always small code snippets for FTP connection, or bigger libraries for SQL support, but I find it really project-specific so far, not widespread like boost. I'd like to hear from others as well for this specific point. &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131103628&quot; rel=&quot;nofollow&quot;&gt;K&amp;amp;R&lt;/a&gt;, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201498413&quot; rel=&quot;nofollow&quot;&gt;C interfaces and implementations&lt;/a&gt; , &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131774298&quot; rel=&quot;nofollow&quot;&gt;Expert C Programming&lt;/a&gt; are good C readings.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7454" LastActivityDate="2010-11-23T20:39:01.563" CommentCount="2" />
  <row Id="20972" PostTypeId="1" AcceptedAnswerId="21021" CreationDate="2010-11-23T20:39:47.977" Score="4" ViewCount="324" Body="&lt;p&gt;Hi all,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, the question is to people who hadn't have an appropriate education/background and one day decided to turn to programming, because of ... what? Thanks in advance, kh.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-11-23T23:42:43.603" Title="What is the most attractive thing in programming/software development?" Tags="&lt;programming&gt;&lt;motivation&gt;" AnswerCount="10" CommentCount="7" FavoriteCount="4" />
  <row Id="20973" PostTypeId="2" ParentId="20866" CreationDate="2010-11-23T20:43:56.630" Score="22" ViewCount="" Body="&lt;p&gt;This is what I would do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your coworkers feel the same, you should make an arrangement among yourselves: &lt;strong&gt;mutiny&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since there's only a few of you left, no one will dare touch you. I think you can safely tell people that you've placed their problem in your &quot;problem-solving queue&quot;, and you'll get to it as soon as possible. Explain to them, calmly (&amp;lt;-- this is very important), that this is happening due to lack of staff. Instruct them to complain to higher-ups if they want faster service.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually, the problem will escalate and you'll have &quot;the talk&quot; with someone &quot;above&quot; you. Simply explain that it can't physically be done without more people. Period. It will also be a chance to speak about your sleeping problem and mounting stress. The &quot;You can fire me, it won't change a thing.&quot; kind of talk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they still b*tch about it, show them your &quot;problem-solving queue&quot; and your estimate on how much each task will take. Let &lt;em&gt;them&lt;/em&gt; set priorities. That would be &quot;if you think it can be done, show it to me, I don't know&quot; kind of thing. Most managers should shut up after that, because they don't have a working solution. Get the ball on their side of the court.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Last but not least, &lt;strong&gt;learn to say no&lt;/strong&gt;. Yes, people might get angry, but there's always someone angry at you anyway, at least this way you can control it. ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; I'm very sorry about your situation :(&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-11-23T20:43:56.630" CommunityOwnedDate="2011-01-19T15:33:20.557" CommentCount="3" />
  <row Id="20974" PostTypeId="2" ParentId="20972" CreationDate="2010-11-23T20:48:55.643" Score="6" ViewCount="" Body="&lt;p&gt;Well, that &lt;em&gt;really&lt;/em&gt; is highly subjective!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, it's the joy of creating and designing new things out of thin air. Later, seeing someone using those things. Quite a nice feeling, right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, endless stream of new stuff for me to learn and assimilate. Can't get enough of that.&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-11-23T20:48:55.643" CommentCount="1" />
  <row Id="20975" PostTypeId="2" ParentId="20972" CreationDate="2010-11-23T20:51:02.070" Score="5" ViewCount="" Body="&lt;p&gt;There are a lot of attractive factors for me...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Working with something interesting/exciting&lt;/li&gt;&#xA;&lt;li&gt;Always learning new things&lt;/li&gt;&#xA;&lt;li&gt;Being creative and creating new things&lt;/li&gt;&#xA;&lt;li&gt;The possibility of working at home and not having to come into work&lt;/li&gt;&#xA;&lt;li&gt;Being able to play with it at home&lt;/li&gt;&#xA;&lt;li&gt;Money&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-11-23T20:51:02.070" CommentCount="2" />
  <row Id="20976" PostTypeId="2" ParentId="20940" CreationDate="2010-11-23T20:53:37.027" Score="4" ViewCount="" Body="&lt;p&gt;Your question reminded me of a point Paul Graham makes in &lt;em&gt;On Lisp&lt;/em&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;If people complain that using utilities makes your code hard to read, they&#xA;probably don’t realize what the code would look like if you hadn’t used them.&#xA;Bottom-up programming makes what would otherwise be a large program look&#xA;like a small, simple one. This can give the impression that the program doesn’t&#xA;do much, and should therefore be easy to read. When inexperienced readers look&#xA;closer and find that this isn’t so, they react with dismay.&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Also, this is a minor nitpick, but most people are referring to something else when they use the word &quot;abstraction.&quot;&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-23T20:53:37.027" CommentCount="4" />
  <row Id="20978" PostTypeId="2" ParentId="20972" CreationDate="2010-11-23T20:56:12.487" Score="1" ViewCount="" Body="&lt;p&gt;I have turned to it because it is something that I have always wanted to do but in high school I was afraid that I would hate sitting in front of a computer screen for 8 hours a day. Turns out, the job I got out of college (ended up majoring in Economics) is exactly that, sitting in front of a computer screen. So I know I can do it, so why not do something I really enjoy?!?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other reasons why I enjoy programming/software development:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I get to create things out of nothing&lt;/li&gt;&#xA;&lt;li&gt;It is challenging and fun&lt;/li&gt;&#xA;&lt;li&gt;It allows me to do what I love&lt;/li&gt;&#xA;&lt;li&gt;It allows me to use/see new technology and be apart of it&lt;/li&gt;&#xA;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-11-23T20:56:12.487" />
  <row Id="20979" PostTypeId="2" ParentId="20972" CreationDate="2010-11-23T20:56:45.997" Score="3" ViewCount="" Body="&lt;p&gt;2 things are what got me into this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Problem solving - I enjoyed logic problems and puzzles and some things within software development are right up this alley.&lt;/li&gt;&#xA;&lt;li&gt;System building - Another side to this is making things work, which can be rather abstract in the case of software.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Just as another approach to this, one could look at personality types and see if there is a relationship there.  In my case, I'm an INTJ using Myers-Briggs from which one could infer that I like using logic and rules to make decisions, this is the Te cognitive function I believe, based on taking in information that is processed internally, which would be the introverted intuition cognitive function, to some extent.  This can be elaborated much more of course, but this is another way that one could look at your question.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-23T20:56:45.997" CommentCount="1" />
  <row Id="20980" PostTypeId="2" ParentId="20594" CreationDate="2010-11-23T20:59:23.857" Score="3" ViewCount="" Body="&lt;p&gt;Well, what you are remembering is .NET Terrarium, and it just so happens to be alive and kicking on codeplex!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://terrarium2.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;http://terrarium2.codeplex.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6423" LastActivityDate="2010-11-23T20:59:23.857" />
  <row Id="20981" PostTypeId="2" ParentId="20932" CreationDate="2010-11-23T20:59:24.653" Score="4" ViewCount="" Body="&lt;p&gt;In our case, I'd estimate it's close to 40%.  However, I don't think we went through a phase where it was any more than this.  We have a code generator that spits out both a code skeleton that gets fleshed out by the developers &lt;em&gt;and&lt;/em&gt; a test suite that likewise gets fleshed out.  Most of our testing effort actually goes into tracking down (or creating) appropriate test data to ensure that we get complete coverage.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-23T20:59:24.653" CommentCount="2" />
  <row Id="20982" PostTypeId="2" ParentId="20918" CreationDate="2010-11-23T21:01:55.570" Score="2" ViewCount="" Body="&lt;p&gt;I don't really like solving hard problems. They are complicated and confusing and easy to screw things up. So I break them up into small problems then solve those smaller problems. It works pretty well.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-11-23T21:01:55.570" />
  <row Id="20983" PostTypeId="2" ParentId="20972" CreationDate="2010-11-23T21:10:08.730" Score="0" ViewCount="" Body="&lt;p&gt;Software development is the best way I'll have (in our lifetimes, anyway) of bringing my own pure thoughts into existence.  I find it as rewarding as most artists and musicians find their work in terms of a creative outlet.  I don't know of any other field that utilizes such a mix of creative and analytical skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And of course, there's always the possibility that any one of us (along with maybe a few friends) will come up with The Next Big Thing.  Just a few decades ago, it was impossible to build a large company (one that could &quot;change the world&quot;) without a huge expenditure of capital.    Now it can be done with a great idea, a few computers, and enough time and motivation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact that so many developers write code on their own time, outside of work, is very revealing to me.  I know &lt;em&gt;very&lt;/em&gt; few people in &lt;em&gt;any&lt;/em&gt; other career that would do what they do without getting paid for it.&lt;/p&gt;&#xA;" OwnerUserId="1858" LastActivityDate="2010-11-23T21:10:08.730" />
  <row Id="20984" PostTypeId="2" ParentId="20972" CreationDate="2010-11-23T21:21:02.253" Score="2" ViewCount="" Body="&lt;p&gt;It's fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To elaborate a bit: I always liked to solve problems. Most of the other fun subjects (math, physics, etc.) use similar areas of the brain, but with programming there is the constant feedback. You actualy see your program be executed. It's interresting to see something you've made to work.&lt;/p&gt;&#xA;" OwnerUserId="8454" LastActivityDate="2010-11-23T21:21:02.253" />
  <row Id="20985" PostTypeId="1" AcceptedAnswerId="21029" CreationDate="2010-11-23T21:32:41.347" Score="19" ViewCount="901" Body="&lt;p&gt;Are there common mistakes that language creators make that prevent or slow the adoption of their language? An example (though perhaps not a good one): they focus more on language semantics than tool support, etc.&lt;/p&gt;&#xA;" OwnerUserId="8456" LastActivityDate="2011-01-04T15:49:41.897" Title="What mistakes do language writers often make which doom their language?" Tags="&lt;programming-languages&gt;&lt;language-design&gt;" AnswerCount="12" CommentCount="11" FavoriteCount="4" />
  <row Id="20986" PostTypeId="2" ParentId="20985" CreationDate="2010-11-23T21:37:57.223" Score="-2" ViewCount="" Body="&lt;p&gt;Designing it for guru's rather than the every man programmer. &lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-23T21:37:57.223" CommentCount="4" />
  <row Id="20987" PostTypeId="2" ParentId="20985" CreationDate="2010-11-23T21:39:04.120" Score="17" ViewCount="" Body="&lt;p&gt;I'd say the number 1 thing is a &lt;strong&gt;poor library&lt;/strong&gt;. Most experienced programmers are capable of reinventing the wheel but are really loathe to do so. As soon as I see a language and have this thought, I know I'll never give it a real shot: I can do that in half the code in [favorite high-level language]. Even worse if I can replace the chunk of code from the new language with a single line of code from my favorite language. This especially applies to dates and string manipulation. *&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;[my answer from &lt;a href=&quot;http://stackoverflow.com/questions/4260883/what-mistakes-do-language-writers-often-make-which-doom-their-language/4261067#4261067&quot;&gt;Stack Overflow&lt;/a&gt;]&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8457" LastActivityDate="2010-11-23T21:39:04.120" CommentCount="6" />
  <row Id="20988" PostTypeId="1" AcceptedAnswerId="21011" CreationDate="2010-11-23T21:41:25.470" Score="5" ViewCount="770" Body="&lt;p&gt;In &lt;a href=&quot;http://docs.python.org/tutorial/classes.html&quot; rel=&quot;nofollow&quot;&gt;Python's tutorial&lt;/a&gt; one can read that Python's original implementation is in C;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;On the other hand, the Python implementation, written in C, (...)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'm very curious why was Python written in C and not C++?&#xA;I'd like to know the reasoning behind this decision and I'm looking for references to historic data.&lt;/p&gt;&#xA;" OwnerUserId="8455" LastEditorUserId="8455" LastEditorDisplayName="" LastEditDate="2010-11-23T21:49:56.490" LastActivityDate="2010-11-24T01:38:46.470" Title="Why is Python written in C and not in C++?" Tags="&lt;python&gt;&lt;c++&gt;&lt;history&gt;&lt;implementations&gt;" AnswerCount="7" CommentCount="7" FavoriteCount="3" />
  <row Id="20989" PostTypeId="2" ParentId="20985" CreationDate="2010-11-23T21:41:30.030" Score="9" ViewCount="" Body="&lt;p&gt;Designing a language in the first place without having a real clear idea why it's better than existing languages, or without being able to communicate that idea.&lt;/p&gt;&#xA;" OwnerUserId="8458" LastActivityDate="2010-11-23T21:41:30.030" CommentCount="9" />
  <row Id="20991" PostTypeId="2" ParentId="20985" CreationDate="2010-11-23T21:43:11.073" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;When trying to &quot;fix&quot; an existing popular language, or to make it just slightly better. Examples: the D language is trying to &quot;fix&quot; C++. Successful languages never do that; intsead, they deliver one or two &quot;killer features&quot; that make the language distinct.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When a language imposes certain coding style and limits user's freedom (Java, C#, in a way Python too). Adoption of these languages can nevertheless be fast if it's backed by a powerful corporation.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Changing the syntax of the 'print' statement in the next version of your language.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-23T21:43:11.073" CommentCount="9" />
  <row Id="20992" PostTypeId="2" ParentId="20896" CreationDate="2010-11-23T21:43:39.230" Score="0" ViewCount="" Body="&lt;h2&gt;Users&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;IE, users of the base class.&lt;/p&gt;&#xA;" OwnerUserId="5682" LastActivityDate="2010-11-23T21:43:39.230" />
  <row Id="20993" PostTypeId="2" ParentId="20972" CreationDate="2010-11-23T21:45:19.320" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You can make good money doing it.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-11-23T21:45:19.320" CommentCount="2" />
  <row Id="20994" PostTypeId="2" ParentId="20985" CreationDate="2010-11-23T21:46:40.897" Score="2" ViewCount="" Body="&lt;p&gt;Designing the language by committee and having it standardized without the corporate backing needed to keep the standard updated. Actually, this only happened once, but it's still a good way to doom a language. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-23T21:46:40.897" CommentCount="3" />
  <row Id="20995" PostTypeId="2" ParentId="20918" CreationDate="2010-11-23T21:49:00.320" Score="2" ViewCount="" Body="&lt;p&gt;Its actually a pretty easy situation to get into when &lt;strong&gt;your coding for yourself&lt;/strong&gt;.  Its bad to spend a long time focusing on the best way to do something when you &lt;strong&gt;don't produce anything&lt;/strong&gt; in the end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However I think its also bad to never stop and reflect. You are pretty much a beginner with only a few months dev experience if I read your question right.  At this point in time you should be focusing on &lt;strong&gt;writing something, anything&lt;/strong&gt;. If your writing for yourself. If your not writing for yourself you'll learn to be quicker as if you don't your job will be in trouble.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advise is&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Write code&lt;/strong&gt;. Bad code / good code it doesn't matter at this stage. You just need to know you can bash something out when required.&lt;/li&gt;&#xA;&lt;li&gt;Set yourself &lt;strong&gt;deadlines&lt;/strong&gt;. Try to be reasonable with them but not so loose as you may as well not have any deadlines.&lt;/li&gt;&#xA;&lt;li&gt;Don't try to alter functioning code to be better written unless.&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You have a &lt;strong&gt;performance issue&lt;/strong&gt; you need to fix.&lt;/li&gt;&#xA;&lt;li&gt;You have enough time and you feel that your new way is an awful lot better.&lt;/li&gt;&#xA;&lt;li&gt;You feel you can learn something new by trying to implement in a different way.&lt;/li&gt;&#xA;&lt;/ol&gt;&lt;/li&gt;&#xA;&lt;li&gt;Pay attention to the small details, such as &lt;strong&gt;comments&lt;/strong&gt;. It can really help you fix your mind on the problems and the solutions with your own code when you comment it.  Try it, it allows you to step away from the solution and &lt;strong&gt;focus on the problem&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Get other people to &lt;strong&gt;review your work&lt;/strong&gt; if possible. &lt;/li&gt;&#xA;&lt;li&gt;If doing this as a hobby &lt;strong&gt;enjoy it&lt;/strong&gt;. If the worrying about the problems is taking away from your enjoyment, it implies your doing something wrong.&lt;/li&gt;&#xA;&lt;li&gt;Ask people what they would do with the same problems. This may be the best site for that.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Code that functions but is written badly is a lot more useful than no code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One last comment that may help you. The interface to your code is a lot more important than the code itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally In time you will gain speed and confidence. If you can't look back at your work in a years time and say &quot;What was I thinking?&quot; then you really haven't learn't enough.&lt;/p&gt;&#xA;" OwnerUserId="1608" LastActivityDate="2010-11-23T21:49:00.320" CommentCount="1" />
  <row Id="20996" PostTypeId="2" ParentId="20988" CreationDate="2010-11-23T21:49:05.093" Score="9" ViewCount="" Body="&lt;p&gt;Because Guido likes C.&lt;/p&gt;&#xA;" OwnerUserId="8460" LastActivityDate="2010-11-23T21:49:05.093" CommentCount="2" />
  <row Id="20997" PostTypeId="2" ParentId="20950" CreationDate="2010-11-23T21:53:20.033" Score="1" ViewCount="" Body="&lt;p&gt;Short learning curve. Thats it.&lt;/p&gt;&#xA;" OwnerUserId="8460" LastActivityDate="2010-11-23T21:53:20.033" CommentCount="3" />
  <row Id="20998" PostTypeId="2" ParentId="20988" CreationDate="2010-11-23T21:54:47.070" Score="1" ViewCount="" Body="&lt;p&gt;Read &lt;a href=&quot;http://www.velocityreviews.com/forums/t729767-p11-why-is-python-not-written-in-c.html&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;?  Looks very closely related to this question.  And, &lt;a href=&quot;http://www.mail-archive.com/python-list@python.org/msg290862.html&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; discussion at Python list asks the very same question.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-11-23T21:54:47.070" />
  <row Id="20999" PostTypeId="2" ParentId="20988" CreationDate="2010-11-23T21:55:00.487" Score="2" ViewCount="" Body="&lt;p&gt;A better question might be: &quot;Why isn't Python written in Python?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More to the point, once enough primitives for Python classes and objects are written in C, those can be used for writing the rest of the interpreter, so you wouldn't gain anything by using C++ instead. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-23T21:55:00.487" CommentCount="2" />
  <row Id="21000" PostTypeId="2" ParentId="20866" CreationDate="2010-11-23T22:03:06.027" Score="12" ViewCount="" Body="&lt;p&gt;Step 1&#xA;I would institute a formal ticketing system. If they don't ask for something formally it doesn't get done, period. Everything on the list is done in order of the date asked for except items your boss moves up the priority list. If something is moved down the list, the person who asked for it is notified and told why. Let them argue it out to the boss which is more important.  Put a time estimate against each task. Make sure you show him the list every morning and and note how mamy things you and your co-worker have completed in the last day. Do not work overtime to get caught up. (You will never get caught up if you do.) Show him that you have 3 people X 8 hours available today and 45 tasks that have a total of 312 hours to do. Force the manager to decide what is important and force him to see everyday how short-handed you are. Do not handle any questions on priorities, they all go to the manager who got you into this mess. Make sure to have a written copy of the priority list on the wall in you work space to point to when people are asking for more work to be done. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other employees will be happier once they get used to the system because at least they will know how much work you have to do ahead of their work. If they complain that iti takes to long, refer them to management who is reaponsible for the fact that you have too much to do with too few people. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Step 2&#xA;Look for another job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Step 3&#xA;Take all your leave before you lose it at the end of the year. Don't worry about what everyone else will be stuck doing. THey will be overworked whether you are there or not. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-23T22:03:06.027" CommunityOwnedDate="2011-01-19T15:33:20.557" CommentCount="8" />
  <row Id="21001" PostTypeId="2" ParentId="20965" CreationDate="2010-11-23T22:05:21.097" Score="1" ViewCount="" Body="&lt;p&gt;It depends on whether you will be working with 8/16 bit microcontrollers (without an OS) or 32-bit microprocessors using (for example) embedded Linux.  As others have mentioned, with the latter you will probably be using a gcc toolchain of some type.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However if you are going to be programming smaller devices, then the IDE and compilers are usually designed specifically for a family of MCUs.  Chip makers often sell (or give away) IDEs and compilers for their products (e.g. Microchip and Freescale).  (The free versions may be limited either by object size or optimization features).  There are some companies (like Keil and IAR) that make compilers for several different families.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-11-23T22:05:21.097" CommentCount="2" />
  <row Id="21002" PostTypeId="2" ParentId="20988" CreationDate="2010-11-23T22:08:31.903" Score="-4" ViewCount="" Body="&lt;p&gt;C performs much better than C++, and for an interpreted language, speed can be a precious resource.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For further reading, Linus Torvalds on C++: &lt;a href=&quot;http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918&quot; rel=&quot;nofollow&quot;&gt;Linky&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8463" LastActivityDate="2010-11-23T22:08:31.903" CommentCount="11" />
  <row Id="21003" PostTypeId="2" ParentId="20985" CreationDate="2010-11-23T22:10:51.877" Score="5" ViewCount="" Body="&lt;p&gt;There is a saying in the world of literature that the world would be a much better place if people were only writing books because they have some interesting to say, not because the want to write a book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same applies to programming languages. The world would be a much better place if people were only creating programming languages because they have something interesting to contribute to the field of programming language design, not because they want to create a programming language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, to more precisely answer the original question: creating a &quot;new&quot; language which is actually just a repackaging of an old language. This really is a waste of everybody's time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that combining existing features in new ways, &lt;em&gt;is&lt;/em&gt; contributing something new to the field of programming language design and is a good idea. Some pretty successful languages are basically recombinations of existing features, e.g. Ruby is Smalltalk with Perl features, Pascal high-level syntax, Perl micro-syntax, iterators from CLU, enumerators from Sather, mixins from Flavors, and new in Ruby 2.0 Traits from Squeak and Scala and Classboxes from a research variant of Java.&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-11-23T22:10:51.877" CommentCount="2" />
  <row Id="21004" PostTypeId="2" ParentId="20950" CreationDate="2010-11-23T22:12:31.890" Score="2" ViewCount="" Body="&lt;p&gt;I use the IDE for testing / debugging / integration and KEDIT for editing because the IDE is seriously deficient in editing capabilities.&lt;BR&gt;&#xA;Because the .NET IDE recognizes external edits, all I need to do is save in the editor and accept the prompt to reload the source. This allows me to optimize my editing and debugging capabilities at the same time.&lt;br&gt;&#xA;For other IDE's I use KEDIT as a template processor and source search program and copy / paste that source into the IDE.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-11-23T22:12:31.890" CommentCount="2" />
  <row Id="21005" PostTypeId="2" ParentId="20932" CreationDate="2010-11-23T22:18:54.443" Score="2" ViewCount="" Body="&lt;p&gt;TDD is often measured towards code quality rather than time and cost spent. However, with better code quality, developers and any people working with them can work better (less time spent, less cost involved, happier, etc.). &lt;a href=&quot;http://davidlongstreet.wordpress.com/2009/04/29/new-software-metric-wtfs-per-minute/&quot; rel=&quot;nofollow&quot;&gt;http://davidlongstreet.wordpress.com/2009/04/29/new-software-metric-wtfs-per-minute/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing tests is great for helping to automate verification of functional and non-functional requirements. One video that convinced me to adopt TDD (actually BDD, high level TDD):&#xA;&lt;a href=&quot;http://video.google.com/videoplay?docid=8135690990081075324#&quot; rel=&quot;nofollow&quot;&gt;http://video.google.com/videoplay?docid=8135690990081075324#&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Writing functional tests can help &lt;strong&gt;&lt;em&gt;spotting bugs/problems earlier during development phase&lt;/em&gt;&lt;/strong&gt;. Assume you have large code base. &lt;strong&gt;With unit tests/specs&lt;/strong&gt;, you only need to see &quot;All tests passed&quot;/&quot;2 tests failed, see line xyz&quot;. You only need &lt;strong&gt;a team of developers&lt;/strong&gt; to do both developing and testing. &lt;strong&gt;Without unit tests/specs&lt;/strong&gt;, you have to &lt;em&gt;manually compare&lt;/em&gt; printed statements with expected statements, and &lt;em&gt;manually&lt;/em&gt; trace which methods/classes have bugs. You probably need &lt;strong&gt;two separate teams (developers and testers)&lt;/strong&gt; to do this.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Written tests help developers explain progress and problems faced.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;TDD helps fulfilling maintainability, adaptability, and flexibility of code. It encourages developers to write small testable chunks, and put them together into bigger testable chunks. The other way round (part of refactoring practice) also works, with condition that we have written solid tests. As a result, we can have nicely-written, modular code.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;With TDD, we are glad to know when:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a customer requests changes on requirements (satisfying requirements)&lt;/li&gt;&#xA;&lt;li&gt;better ways of writing code are discovered&lt;/li&gt;&#xA;&lt;li&gt;team mates have suggestions for code improvement&lt;/li&gt;&#xA;&lt;li&gt;we have to explain/pass our code to other people&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;TDD can be boring because development process takes small steps, and thus it becomes so predictable.&lt;/p&gt;&#xA;" OwnerUserId="4011" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-23T22:26:08.150" LastActivityDate="2010-11-23T22:26:08.150" />
  <row Id="21006" PostTypeId="2" ParentId="20950" CreationDate="2010-11-23T22:19:08.967" Score="7" ViewCount="" Body="&lt;p&gt;Historically, IDEs provided unmatched convenience on a single-tasking computer.  My first C compiler required the following steps in the edit-compile-run cycle:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Start editor&lt;/li&gt;&#xA;&lt;li&gt;Edit program&lt;/li&gt;&#xA;&lt;li&gt;Save program, quit editor&lt;/li&gt;&#xA;&lt;li&gt;Compile program&lt;/li&gt;&#xA;&lt;li&gt;Assemble compiled program&lt;/li&gt;&#xA;&lt;li&gt;Link compiled and assembled program&lt;/li&gt;&#xA;&lt;li&gt;Run program&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;on my CP/M system.  (I could have automated much of that as a batch program had my disk drives been larger.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I got Turbo Pascal, I was delighted to be able to keep the editor available while compiling and debugging.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That, I believe, is what made IDEs popular in the first place.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-23T22:19:08.967" CommentCount="4" />
  <row Id="21007" PostTypeId="2" ParentId="20866" CreationDate="2010-11-23T22:28:26.277" Score="1" ViewCount="" Body="&lt;p&gt;If it was me I would quit. Outright quit. I wouldn't wait another day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you get to the stage where your mental health is failing, it just isn't worth it anymore. I've been through this and seen it happen to other people in the past and let me tell you - it can get very ugly, very quickly. The stress of unemployment has nothing on a severe burnout.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I don't know your situation re: responsibilities (eg. finances, wife, kids, etc), but from how you're sounding, I would say if it's at all doable - just quit. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just plain cutting loose from this kind of situation is the best you can do. Just simply being free of the situation does wonders to cure burnout. Soon you'll have the motivation and energy to move on to the next stage of life. Even if there aren't many jobs in this field in your area and you have a life of unemployment/working odd jobs/job searching for a while, it's better than staying in a situation which is driving you to feel like this.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-23T22:28:26.277" CommunityOwnedDate="2011-01-19T15:33:20.557" CommentCount="4" />
  <row Id="21008" PostTypeId="2" ParentId="20932" CreationDate="2010-11-23T22:39:35.797" Score="2" ViewCount="" Body="&lt;p&gt;the important long-term measures are not only code quality and code confidence, but even moreso &lt;strong&gt;not burning out the team doing mindless testing&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the short-term measures would be the ROI of automating the tests&lt;/p&gt;&#xA;&#xA;&lt;p&gt;for example: last week I made over 1000 code changes due to an internal-architecture shift, started the automated test suite, and went to sleep.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the tests took 28 minutes to run; they all passed. manually performing the same 40+ acceptance tests would take about 6 hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;another example: in a prior iteration i had goofed up one of the test scenarios with a subtle bug that manual testing probably would not have found (the automated tests perform db integrity checks that manual testers almost never do). i had to run that test scenario about 50 times before i managed to figure it out and fix it. manually performing the test scenario operations would take about 50 minutes. So that's 41.6 man-hours of labor saved &lt;em&gt;in one day&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;there is no way of calculating in advance the ROI of automated testing, because you cannot know exactly how many times you will need to run the tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;but to me, the ROI of automated tests is &lt;em&gt;nearly infinite&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-23T22:39:35.797" CommentCount="2" />
  <row Id="21009" PostTypeId="1" CreationDate="2010-11-23T22:40:39.230" Score="1" ViewCount="152" Body="&lt;p&gt;Sometimes the shining stars of the programming community seem to have memorable temper tantrums? What is the biggest, most spectacular 'crash and burn', hall of fame/shame post you have seen. &lt;/p&gt;&#xA;" OwnerUserId="8460" LastActivityDate="2010-11-23T23:15:39.027" ClosedDate="2010-11-23T23:16:53.207" Title="The most spectacular programmer blow-ups post?" Tags="&lt;posts&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="1" />
  <row Id="21011" PostTypeId="2" ParentId="20988" CreationDate="2010-11-23T22:43:16.800" Score="16" ViewCount="" Body="&lt;p&gt;From everything I've seen, it's a combination of practical and historical reasons. The (mostly) historical reason is that CPython 1.0 was released in 1989. At that time, C was just recently standardized. C++ was almost unknown and decidedly non-portable, because almost nobody had a C++ compiler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although C++ is much more widespread and easily available today, it would still take a fair amount of work to rewrite CPython into the subset of C that's compatible with C++. By itself, that work would provide little or no real benefit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a bit like Joel's blog post about starting over and doing a complete rewrite being the worst mistake a software company can make. I'd counter that by pointing to Microsoft's conversion from the Windows 3.0 core to the Windows NT core, and Apple's conversion from MacOS 9 to Mac OS/X. Neither one killed the company -- but both were definitely large, expensive, long-term projects. Both also point to something that's crucial to success: maintaining &lt;em&gt;both&lt;/em&gt; code bases for long enough that (most) users can switch to the new code base at their leisure, based on (at least perceived) benefits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a development team the size of Python's, however, that kind of change is much more difficult. Even the change from Python 2 to 3 has taken quite a bit of work, and required a similar overlap. At least in that case, however, there are direct benefits to the changes, which rewriting into C++ (by itself) wouldn't (at least immediately) provide.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Linus Torvalds's rant against C++ was brought up, so I'll mention that as well. Nothing I've seen from Guido indicates that he has that sort of strong, negative feelings toward C++. About the worst I've seen him say is that teaching C++ is often a disaster -- but he immediately went on to say that this is largely because the teachers didn't/don't know C++. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also think that while it's possible to convert a lot of C code to C++ with &lt;em&gt;relative&lt;/em&gt; ease, that getting much real advantage from C++ requires not only quite a bit more rewriting than that, but also requires substantial re-education of most developers involved. Most well-written C++ is substantially different from well-written C to do the same things. It's &lt;em&gt;not&lt;/em&gt; just a matter of changing &lt;code&gt;malloc&lt;/code&gt; to &lt;code&gt;new&lt;/code&gt; and &lt;code&gt;printf&lt;/code&gt; to &lt;code&gt;cout&lt;/code&gt;, by any stretch of the imagination.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-23T22:43:16.800" />
  <row Id="21012" PostTypeId="2" ParentId="20950" CreationDate="2010-11-23T22:43:30.080" Score="7" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;[To the IDE] You had me at intellisense/autocomplete&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-23T22:43:30.080" CommentCount="2" />
  <row Id="21013" PostTypeId="2" ParentId="20911" CreationDate="2010-11-23T22:44:28.847" Score="0" ViewCount="" Body="&lt;p&gt;Know the business and the company procedures.  As the top software guy, your boss isn't going to be a software guy, and you'll have to communicate with everybody outside your department in business language, not software jargon.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-23T22:44:28.847" />
  <row Id="21014" PostTypeId="2" ParentId="19893" CreationDate="2010-11-23T22:44:49.693" Score="1" ViewCount="" Body="&lt;p&gt;Interesting. That sounds strikingly familiar to an app that we've &lt;em&gt;just&lt;/em&gt; started at my company (sip phone and scanner integration and all). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We chose silverlight with a focus on SOA so that a WPF app could be made afterward if the need arises.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Room for additional components to be added after initial release (there are a lot of of these... perhaps work here than the initial application)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;We're using MEF in the service layer, and constructing extension points (plugin interfaces describing certain points where we plan extensibility or integration with other systems)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Keyboard navigation&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Not a problem.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Performance is a must&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;What kind of performance? Perceived performance (snappy-ness) or number crunching performance? The latter could be a problem with a web/silverlight app. For the former, our app goes through lots of records, like yours, but we are able to predict them and pre-fetch records while the users are working on current ones. 'Load' times are zero for that section of our app.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Production Speed to initial version&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Depends on the skillset. But realistically, everyone always wants to get to market as fast as possible, so it's a non-argument.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Low maintenance overhead&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Like production speed, it's also a non argument and it's going to come down to design and coding practices. If you are speaking in terms of hardware maintenance, you might want to go with a cloud app.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Future support&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'm not sure what that means.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Softphone/Scanner integration&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Silverlight 4 allows webcam/mic access now (we're hoping to do inter-application video conferencing as well as sip integration), so if you are using a phone server, you can write one yourself. I don't know of any existing ones, but &lt;a href=&quot;http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2009/11/18/silverlight-4-rough-notes-camera-and-microphone-support.aspx&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; might help. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, you might have to do some ugly hacking (don't have a reference to the article/s anymore, sorry) or you have no choice but to have a WPF app that can interact with the file system. SL4 can go out-of-browser, but it can only access certain parts of the file-system. None of them are likely going to be the parts that you need to interact with a sip phone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you mean, document scanner? I'm not sure about that. We're using hand/barcode scanners, and they operate just like any other input device and are a non-issue.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-23T22:44:49.693" />
  <row Id="21015" PostTypeId="2" ParentId="20866" CreationDate="2010-11-23T22:45:58.117" Score="6" ViewCount="" Body="&lt;p&gt;Here is my own burnout story from a few years ago:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://c2.com/cgi/wiki?RealStoryAboutDeveloperTurnedManager&quot; rel=&quot;nofollow&quot;&gt;http://c2.com/cgi/wiki?RealStoryAboutDeveloperTurnedManager&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice: You need to learn to relax and detach a bit from the job.  Most stress is self-induced: you make yourself crazy by having unreasonable expectations for your ability to handle all the demands being made on you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can't keep trying to do everything that is asked of you.  You need to learn to say &quot;No&quot;.  Start prioritizing all the assignments and requests you get.  Whenever a new one is given to you, ask your manager where it fits in your queue.  Then just work on each one at a reasonable pace as time permits.  Whenever someone demands that you immediately handle some emergency, ask what already-assigned work should be allowed to slide.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you really in danger of being fired?  If things are as bad as you say, it is unlikely that the company can afford to get rid of anyone who knows what they are doing.  You probably have a lot more value to the company, and power, than you think you do.  And if you truly are in danger of being fired, is that really the worst possible outcome?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Give yourself nights and weekends off, and take a vacation if you need to do so.  Don't worry about whether it is &quot;fair&quot; to others in the company.  You have earned it, and any problems created by your absence are management's fault, not yours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I learned from my own burnout experience is that, ultimately, you are responsible for your own happiness or unhappiness.  No matter what situation you are in, it is up to you to decide how you are going to react to it.  If you can't find a way to make your job livable, then you need to find another one.&lt;/p&gt;&#xA;" OwnerUserId="778" LastEditorUserId="778" LastEditorDisplayName="" LastEditDate="2010-11-23T22:52:28.500" LastActivityDate="2010-11-23T22:52:28.500" CommunityOwnedDate="2011-01-19T15:33:20.557" CommentCount="3" />
  <row Id="21016" PostTypeId="1" CreationDate="2010-11-23T22:46:49.613" Score="0" ViewCount="131" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/20985/what-mistakes-do-language-writers-often-make-which-doom-their-language&quot;&gt;What mistakes do language writers often make which doom their language?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I saw &lt;a href=&quot;http://programmers.stackexchange.com/questions/20985&quot;&gt;What mistakes do language writers often make which doom their language?&lt;/a&gt; and wanted to make a related question. Main distinction is i would like to know what is missing and the other question is asking what did they do wrong.  From my understanding there isnt anything wrong with D, Clojure or oCaml. Granted i never tried D's C headers -&gt; D but i'll assume its good for the most part.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is preventing them from being more popular?&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-11-23T22:46:49.613" ClosedDate="2010-11-24T00:10:17.667" Title="Why isnt X language more popular?" Tags="&lt;programming-languages&gt;&lt;language-design&gt;" CommentCount="1" />
  <row Id="21017" PostTypeId="2" ParentId="21009" CreationDate="2010-11-23T22:50:10.237" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;YOU&lt;/strong&gt; are full of bullshit.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;C++ is a horrible language&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918&quot; rel=&quot;nofollow&quot;&gt;Some flamebait from Linus Torvalds&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6735" LastActivityDate="2010-11-23T22:50:10.237" />
  <row Id="21018" PostTypeId="2" ParentId="21009" CreationDate="2010-11-23T22:56:43.863" Score="0" ViewCount="" Body="&lt;p&gt;Steve Ballmer, who else? :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=wvsboPUjrGc&amp;amp;feature=related&quot; rel=&quot;nofollow&quot;&gt;Going crazy&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=8To-6VIJZRE&quot; rel=&quot;nofollow&quot;&gt;Developers Developers Developers&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-23T22:56:43.863" />
  <row Id="21019" PostTypeId="2" ParentId="15605" CreationDate="2010-11-23T23:02:38.027" Score="2" ViewCount="" Body="&lt;p&gt;I think a short test to make sure the person is at least basically worth interviewing may be worthwhile.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You would have to expect a lot of cheating: failing to answer may show the person can't program, but answering doesn't show anything very positive.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some headhunters will systematically distribute the questions, or even the answers, to candidates they propose.  (My friend recently discovered this was happening with applicants to her company.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the test is very laborious, you have to bear in mind that some good applicants may not think it's worth their time to do it before even getting a confirmed interview.  Google can (or could) get away with long puzzles because they are (were?) a highly desirable employer, and because the puzzles were fairly long in their own right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do ask questions, I would definitely ask at least a few questions about them in the followup interview:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;this will probably tell you whether the person actually solved the problem themselves or just cheated&lt;/li&gt;&#xA;&lt;li&gt;for candidates who did solve the problem well, it starts out the interview in a fairly comfortable situation of them talking about something you already have in common&lt;/li&gt;&#xA;&lt;li&gt;you can check whether they're able to talk about code clearly, as well as writing it&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7398" LastActivityDate="2010-11-23T23:02:38.027" />
  <row Id="21020" PostTypeId="2" ParentId="21009" CreationDate="2010-11-23T23:08:16.193" Score="2" ViewCount="" Body="&lt;p&gt;Zed Shaw (formerly from the Rails gang) can crack me up like no other:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://techcrunch.com/2008/01/01/zed-shaw-puts-the-smack-down-on-the-rails-community/&quot; rel=&quot;nofollow&quot;&gt;Rails is a Getto&lt;/a&gt; - Only the recap he seems to have erased all traces&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After having a moment of sanity he replaced the original with this red hearing: &lt;a href=&quot;http://www.zedshaw.com/rants/rails_is_a_ghetto.html&quot; rel=&quot;nofollow&quot;&gt;http://www.zedshaw.com/rants/rails_is_a_ghetto.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://web.archive.org/web/20080102044712/www.zedshaw.com/blog/2006-12-25.html&quot; rel=&quot;nofollow&quot;&gt;Zed's So Fucking Awesome&lt;/a&gt; - 'King of the Internet Campaign'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://web.archive.org/web/20071212031321/www.zedshaw.com/blog/announcing_my_retirement.html&quot; rel=&quot;nofollow&quot;&gt;Zed's retirement annoucment&lt;/a&gt;&#xA;I'm still waiting for the book...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;P.S. The “whoppers” are being collected for a tell-all book about how horrible the industry is on both the management and coding side of things. If you’ve got stories about crap managers, insane programmers, con-men posing as techs, or incompetent system administrators or DBAs then shoot me an e-mail and lay it all out. I’ll never release names…unless you want me to.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;All this ego from writing a http server!&lt;/p&gt;&#xA;" OwnerUserId="8460" LastEditorUserId="8460" LastEditorDisplayName="" LastEditDate="2010-11-23T23:15:39.027" LastActivityDate="2010-11-23T23:15:39.027" />
  <row Id="21021" PostTypeId="2" ParentId="20972" CreationDate="2010-11-23T23:11:46.223" Score="6" ViewCount="" Body="&lt;p&gt;I love programming because it allows anyone to &lt;strong&gt;create&lt;/strong&gt; from nothing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's what most executives are missing. They kill creativity in profit of productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the programming task becomes too repetitive, I start to procrastinate heavily.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-23T23:11:46.223" CommentCount="4" />
  <row Id="21022" PostTypeId="2" ParentId="20965" CreationDate="2010-11-23T23:19:39.477" Score="0" ViewCount="" Body="&lt;p&gt;I use Komodo and compile and debug using Xcode.  Xcode uses the GDB debugger, but IMHO it is WAY easier to use.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you use cmake, you can output xcode project files and compile under bsd and linux.  &lt;/p&gt;&#xA;" OwnerUserId="8464" LastActivityDate="2010-11-23T23:19:39.477" />
  <row Id="21023" PostTypeId="2" ParentId="20911" CreationDate="2010-11-23T23:19:44.860" Score="1" ViewCount="" Body="&lt;p&gt;To be chief software engineer for a company, you have to be great at being chief software engineer. And more importantly, love doing the work of a chief software engineer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's all you need to know.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-23T23:19:44.860" />
  <row Id="21024" PostTypeId="2" ParentId="20927" CreationDate="2010-11-23T23:23:08.220" Score="29" ViewCount="" Body="&lt;p&gt;I've found this one extremely illuminating when interviewing candidates and filtering out those with no business being there. It is similar in complexity to Fizz Buzz, but focuses on database skills.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Assuming the following basic  table structure&#xA;Documents (DocID, DocDate)&#xA;Keywords (KeyWordID, KeyWord)&#xA;DocumentKeywords (DocID,KeywordID)&#xA;&#xA;Write a query to return the following:&#xA;Part 1: Documents with a DocDate after 4/1/1995  &#xA;Part 2: Documents that contain the keyword &quot;Blue&quot;  &#xA;Part 3: Documents that contain the either the keyword &quot;Blue&quot; or &quot;Yellow&quot;&#xA;Part 4: Documents that contain the both the keywords &quot;Blue&quot; and &quot;Yellow&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I let them write it in any SQL variant they want, and am not too picky on minor syntax problems. I mainly want to know that they understand basic relational DB concepts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most candidates can get through part 3 with no issues at all. You'd be amazed how many think that the answer to part 4 is just to change the operator from OR to AND in the where clause.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-23T23:23:08.220" CommunityOwnedDate="2011-02-15T14:41:29.790" CommentCount="30" />
  <row Id="21025" PostTypeId="2" ParentId="20972" CreationDate="2010-11-23T23:27:20.317" Score="0" ViewCount="" Body="&lt;p&gt;Because I want to create my own Puzzle and move the pieces using my imagination. Hint: &quot;&lt;strong&gt;imagination is more important than knowledge&lt;/strong&gt;&quot;.&lt;/p&gt;&#xA;" OwnerUserId="26782" LastActivityDate="2010-11-23T23:27:20.317" />
  <row Id="21026" PostTypeId="2" ParentId="20985" CreationDate="2010-11-23T23:38:48.897" Score="5" ViewCount="" Body="&lt;p&gt;Choosing a bad name.&lt;/p&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2010-11-23T23:38:48.897" CommentCount="4" />
  <row Id="21027" PostTypeId="2" ParentId="20972" CreationDate="2010-11-23T23:42:43.603" Score="0" ViewCount="" Body="&lt;p&gt;I don't fit the description (i.e. I have the right education for the job) but for some people I know who do, it was their (almost only) chance to earn well in a job they enjoy doing.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-23T23:42:43.603" />
  <row Id="21028" PostTypeId="1" CreationDate="2010-11-23T23:51:53.437" Score="12" ViewCount="737" Body="&lt;p&gt;Which language made you love it from heart? And what's in that language that made you love it?&lt;/p&gt;&#xA;" OwnerUserId="26782" LastActivityDate="2010-11-25T11:52:07.683" ClosedDate="2010-12-28T14:36:06.353" Title="Which language did you love from heart?" Tags="&lt;programming-languages&gt;" AnswerCount="24" CommentCount="10" FavoriteCount="6" />
  <row Id="21029" PostTypeId="2" ParentId="20985" CreationDate="2010-11-23T23:53:39.317" Score="15" ViewCount="" Body="&lt;p&gt;There are so many ways to kill a language, let's pick a few...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;make all available compilers/interpreters expensive&lt;/li&gt;&#xA;&lt;li&gt;deliberately bind it to something else (FooBarScript, the scripting language of the FooBar ERP system)&lt;/li&gt;&#xA;&lt;li&gt;incomplete/confusing specification&lt;/li&gt;&#xA;&lt;li&gt;no complete reference compiler/interpreter available&lt;/li&gt;&#xA;&lt;li&gt;inconsistent syntax&lt;/li&gt;&#xA;&lt;li&gt;arbitrary limits&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and last but not least&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;no unique selling proposition compared to well-established languages&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-23T23:53:39.317" CommentCount="4" />
  <row Id="21030" PostTypeId="2" ParentId="21028" CreationDate="2010-11-23T23:55:33.500" Score="18" ViewCount="" Body="&lt;p&gt;x86 assembly: It gave me the feeling that I'm wasting my time in a most fascinating way.&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-23T23:55:33.500" CommentCount="7" />
  <row Id="21031" PostTypeId="2" ParentId="21028" CreationDate="2010-11-23T23:57:38.070" Score="6" ViewCount="" Body="&lt;p&gt;C - the first programming language I learned.  I don't remember how and when I felt captivated with it, but I am just not able to stay away from it.  Other languages, I learned, and moved on, or back to C.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-11-23T23:57:38.070" CommentCount="3" />
  <row Id="21032" PostTypeId="1" CreationDate="2010-11-24T00:00:10.573" Score="0" ViewCount="175" Body="&lt;p&gt;Not specific code writing practices. Please also include reasoning. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My start:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;use &lt;code&gt;GCC&lt;/code&gt; or &lt;code&gt;Clang&lt;/code&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;gcc because it is unchallenged in the amount of static checking it can do (both against standards and general errors)&lt;/li&gt;&#xA;&lt;li&gt;clang cause it has such pretty and meaningful error messages&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;when compiling C code using GCC use &lt;code&gt;-Wall -Wextra -Wwrite-strings -Werror&lt;/code&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;in 99,99% the warning is a valid error&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;when compiling C++ code using GCC use &lt;code&gt;-Wall -Wextra -Weffc++ -Werror&lt;/code&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;you could skip &lt;code&gt;-Weffc++&lt;/code&gt; (cause it can be confusing)&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;always code against a standard C (C89, C99), C++ (C++98, C++0x)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;while compilers change, standards don't, coding against a standard gives at least some level of assurance that the code will also compile in the next version of the compiler or even a different compiler/platform&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;make sure that the compiler checks your code against standard (&lt;code&gt;-std=c99 -pedantic&lt;/code&gt; for C99, &lt;code&gt;-std=ansi -pedantic&lt;/code&gt; for C++98 in GCC)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;cause automatic checking always good&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;use &lt;code&gt;valgrind&lt;/code&gt; or a similar tool to check for runtime errors (memory, threads, ...)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;free bug catching&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;never duplicate functionality of the standard libraries (if there is a bug in your compiler, make a temporary patch, wrapper, ...)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;there is no chance that your code will be better then the code maintained by hundreds of people and tested by tenths of thousands&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;make sure that you actually fix all bugs that are reported by automatic tools (GCC, valgrind)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the errors might not cause your program to crash now, but they will&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;never follow recommendations that include &quot;never use feature X&quot;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;such recommendations are usually outdated, exaggerated or oversimplified&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4387" LastActivityDate="2010-11-24T03:31:49.970" Title="Help me construct a list of best approaches for new C and C++ developers" Tags="&lt;best-practices&gt;&lt;c++&gt;&lt;c&gt;" AnswerCount="5" FavoriteCount="2" />
  <row Id="21033" PostTypeId="2" ParentId="21028" CreationDate="2010-11-24T00:01:40.400" Score="2" ViewCount="" Body="&lt;p&gt;I feel madly in love with F# for its computational expressions.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;type LoveHate =&#xA;| Love&#xA;| Hate&#xA;&#xA;let loveHate = &#xA;    parse {&#xA;        do! skipString &quot;I &amp;lt;3 U&quot;&#xA;        return Love&#xA;    } &amp;lt;|&amp;gt; parse {&#xA;        do! skipString &quot;I H8 U&quot;&#xA;        return Hate&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="712" LastEditorUserId="712" LastEditorDisplayName="" LastEditDate="2010-11-24T00:08:53.487" LastActivityDate="2010-11-24T00:08:53.487" CommentCount="3" />
  <row Id="21034" PostTypeId="2" ParentId="21028" CreationDate="2010-11-24T00:03:12.497" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C++&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For companies making system and server software, C++ is still dominating. I have looked at D and Go, but I realized that I must still get better at C++.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-11-24T00:03:12.497" CommentCount="1" />
  <row Id="21035" PostTypeId="2" ParentId="21028" CreationDate="2010-11-24T00:05:39.640" Score="5" ViewCount="" Body="&lt;p&gt;6502 assembly. It was my language of choice for several years. I don't touch it much anymore, but every now and again I come across something like &lt;a href=&quot;http://www.6502.org/source/strings/patmatch.htm&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; and I'm reminded of just how much fun I had finding clever solutions to often quite complex problems using the tiniest amounts of code.&lt;/p&gt;&#xA;" OwnerUserId="8468" LastActivityDate="2010-11-24T00:05:39.640" CommentCount="2" />
  <row Id="21036" PostTypeId="2" ParentId="21032" CreationDate="2010-11-24T00:05:47.263" Score="6" ViewCount="" Body="&lt;p&gt;Learn C++ &lt;a href=&quot;http://stackoverflow.com/questions/388242/&quot;&gt;from a book&lt;/a&gt;. Unfortunately, most freely available C++ resources are complete garbage.&lt;/p&gt;&#xA;" OwnerUserId="3684" LastActivityDate="2010-11-24T00:05:47.263" CommentCount="1" />
  <row Id="21037" PostTypeId="2" ParentId="21028" CreationDate="2010-11-24T00:19:00.953" Score="9" ViewCount="" Body="&lt;p&gt;Python: the only language that could convince me that significant whitespace wasn't necessarily a terrible idea.&lt;/p&gt;&#xA;" OwnerUserId="7629" LastActivityDate="2010-11-24T00:19:00.953" CommentCount="1" />
  <row Id="21038" PostTypeId="2" ParentId="21028" CreationDate="2010-11-24T00:35:31.413" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C#&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Had everything I was looking for in Java and C++. IMO, a tad more mature than either of the two with an excellent IDE coupled with it, and a single authoritative group managing the language. I didn't know I needed/wanted it back then, but its constant evolution with its ever growing stack of technologies just keeps giving me the thrills of learning new things. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;By more mature, I'd think in terms of features like delegates, LINQ, less magic strings, convenience features like (automatic) properties, extension methods. I know these are possible with C++ (not as well-versed in Java, but I do know it's missing LINQ and some other features), but having them built in a language (or provided by its default IDE) is a level of maturity I wished Java, at least, had. I don't think that's C++'s niche, so I'm not looking for those features there&lt;/p&gt;&#xA;" OwnerUserId="1668" LastEditorUserId="1668" LastEditorDisplayName="" LastEditDate="2010-11-24T01:08:10.260" LastActivityDate="2010-11-24T01:08:10.260" CommentCount="9" />
  <row Id="21039" PostTypeId="2" ParentId="21028" CreationDate="2010-11-24T00:37:58.153" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Haskell&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Lazy_evaluation&quot; rel=&quot;nofollow&quot;&gt;Lazy&lt;/a&gt; by default, something &lt;a href=&quot;http://c2.com/cgi/wiki?LazinessImpatienceHubris&quot; rel=&quot;nofollow&quot;&gt;programmers can related to&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="255" LastActivityDate="2010-11-24T00:37:58.153" CommentCount="4" />
  <row Id="21040" PostTypeId="2" ParentId="21028" CreationDate="2010-11-24T00:48:24.630" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Lisp_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;L&lt;/a&gt;&lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book.html&quot; rel=&quot;nofollow&quot;&gt;i&lt;/a&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0262560992&quot; rel=&quot;nofollow&quot;&gt;s&lt;/a&gt;&lt;a href=&quot;http://www.gnu.org/software/emacs/emacs-lisp-intro/html_mono/emacs-lisp-intro.html&quot; rel=&quot;nofollow&quot;&gt;p&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because it has the simplest syntax I've seen before or since. And because it lets me do anything I need to. Quickly.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-11-24T01:51:18.030" LastActivityDate="2010-11-24T01:51:18.030" CommentCount="6" />
  <row Id="21041" PostTypeId="2" ParentId="21032" CreationDate="2010-11-24T00:49:42.593" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C++ specific - Use the &lt;a href=&quot;http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization&quot; rel=&quot;nofollow&quot;&gt;&quot;Resource Acquisition Is Initialization&quot; idiom (RAII)&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This takes care of 90% of your memory management problems. The other 10% can be taken care of with smart pointers (which themselves depend on RAII). Even though the language is not garbage-collected, I've never had to use a &lt;code&gt;delete&lt;/code&gt; statement or some kind of &lt;code&gt;DestroyXXX()&lt;/code&gt; or &lt;code&gt;ReleaseXXX()&lt;/code&gt; or &lt;code&gt;CloseXXX()&lt;/code&gt; function in application code - they're always somewhere deep in library/wrapper code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the reason why &lt;code&gt;std::vector&lt;/code&gt; allows for dynamic arrays without &lt;code&gt;new&lt;/code&gt; or &lt;code&gt;delete&lt;/code&gt; and &lt;code&gt;fstream&lt;/code&gt; allows for manipulation of files without needing &lt;code&gt;fopen()&lt;/code&gt; or &lt;code&gt;fclose()&lt;/code&gt; in application code - it's all been taken care of.&lt;/p&gt;&#xA;" OwnerUserId="5695" LastEditorUserId="5695" LastEditorDisplayName="" LastEditDate="2010-11-24T00:57:07.330" LastActivityDate="2010-11-24T00:57:07.330" />
  <row Id="21042" PostTypeId="2" ParentId="20988" CreationDate="2010-11-24T01:22:01.570" Score="5" ViewCount="" Body="&lt;p&gt;I think the reason why it was &lt;em&gt;originally&lt;/em&gt; written in ANSI C89 is quite simply because back then, C++ was just not a workable choice what with incompatibilities between different compilers and such. I mean, it took until, what was it, 2005, to come up with an ABI specification that would allow code compiled with one compiler to call code compiled with a different compiler?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The more interesting question is why it is &lt;em&gt;still&lt;/em&gt; written in C89.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And there is a surprising answer: because people actually use Python on platforms for which no C++ and no C99 compiler exists! When the Forth-inspired threaded-code interpreter optimizations were merged, there was a &lt;em&gt;huge&lt;/em&gt; discussion about it, because the code (necessarily) used computed &lt;code&gt;goto&lt;/code&gt; which is not a part of C89. There were apparently real fears that this feature might not be available on some of the platforms that Python is currently used on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same thing happened with Unladen Swallow, wich uses LLVM, which is written in C++. It was made very clear that a requirement for merging Unladen Swallow into CPython would be that you can compile it without the JIT compiler, since there are platforms people run Python on, for which no C++ compiler exists.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, nowadays, CPython is no longer the only Python implementation. There is PyPy, which is written in RPython (a statically typed subset of Python), Jython in Java, IronPython in C#, Pynie in NQP and PIR and so on.&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-11-24T01:22:01.570" CommentCount="1" />
  <row Id="21043" PostTypeId="1" CreationDate="2010-11-24T01:27:30.083" Score="1" ViewCount="202" Body="&lt;p&gt;I would like to hear real-world experiences from iPhone / iPad app developers regarding the App Store. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifically, have you had an app rejected? If so, were you able to tweak the app and subsequently have it accepted? What tweaks were made?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am considering entering iPhone app development, but want to understand the risks involved with rejection. &lt;/p&gt;&#xA;" OwnerUserId="6180" LastActivityDate="2010-12-11T22:25:31.973" Title="What is your experience regarding iPhone app rejection?" Tags="&lt;iphone&gt;" AnswerCount="2" />
  <row Id="21044" PostTypeId="2" ParentId="20801" CreationDate="2010-11-24T01:32:40.937" Score="0" ViewCount="" Body="&lt;p&gt;Something that seems to work rather well, and actually only takes a few seconds: ask them to design an object model. It doesn't matter for what. It can be absolutely trivial. In fact, it probably should be trivial, to not drag out the test unnecessarily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the first thing they write is an object, they are already ahead of 99% of their peers in their understanding of OO. If the first thing they write is a class, kindly ask them to go out and send the next candidate in, and contemplate about why it's called OOP and not COP.&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-11-24T01:32:40.937" CommentCount="1" />
  <row Id="21045" PostTypeId="2" ParentId="20988" CreationDate="2010-11-24T01:38:46.470" Score="-2" ViewCount="" Body="&lt;p&gt;You would have to ask Guido, but one reason I'd write it in C is for portability. Plus there isn't much reason to add the extra complexity of C++ for small projects like python.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-11-24T01:38:46.470" CommentCount="2" />
  <row Id="21046" PostTypeId="2" ParentId="20536" CreationDate="2010-11-24T01:39:48.980" Score="0" ViewCount="" Body="&lt;p&gt;I agree with you. I usually call them procedures, since they are neither methods (associated with a dynamic object), nor functions (side-effect free).&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-11-24T01:39:48.980" />
  <row Id="21047" PostTypeId="2" ParentId="20832" CreationDate="2010-11-24T01:42:31.523" Score="0" ViewCount="" Body="&lt;p&gt;Three questions you put and I think short-form answers could aid the longer arguments given so far.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How relevant is this test to development in industry?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Depends on the industry.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anywhere where code speed or code space is an issue, it is entirely relevant to the industry involved.  Often you need to know how long a routine will take, or how much memory (on/offline) it will require.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How often do you reeeally use it?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Depends on the industry.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If performance and scaling is of little concern to the job at hand, then rarely, only when there is a serious performance shortfall.  If you are an engineer for a highly used critical system, every day probably.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How necessary is it to have a honed mindset for the problem?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Entirely necessary.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may have to use it everyday, or only in dire circumstances; but sometimes it will be needed.  Preferably during design before an issue arrives, than desperately profiling a choking system.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-11-24T01:42:31.523" />
  <row Id="21048" PostTypeId="1" AcceptedAnswerId="21153" CreationDate="2010-11-24T01:54:04.407" Score="7" ViewCount="874" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Kpd7t.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having heard alot of bad things about PHP I am being afraid of learning it but it seems to be easier to start with than C# and others, do you see that I should go with it or just ignore it and go with something else?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only thing I'm afraid of is that it may learn me bad coding habits? &lt;/p&gt;&#xA;" OwnerUserId="26782" LastEditorUserId="963" LastEditorDisplayName="" LastEditDate="2011-05-04T04:57:07.927" LastActivityDate="2011-05-31T10:07:07.243" ClosedDate="2011-06-01T11:43:38.610" Title="Is  PHP a good language to start with?" Tags="&lt;php&gt;" AnswerCount="15" CommentCount="1" FavoriteCount="1" />
  <row Id="21049" PostTypeId="2" ParentId="21028" CreationDate="2010-11-24T01:58:15.540" Score="1" ViewCount="" Body="&lt;p&gt;VB6 was my first taste of programming while still in high school (looong ago). I dabbled in a small way with Java and JavaScript, but kept going back to VB. It was the syntax that got me. I know it's fashionable to rag on VB for the so-called verbose syntax, but I actually liked that since it was almost English - it was easy to write and follow. Using VB6, I learned the basics of programming, insofar as you could do with the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've since tinkered with Ruby, C++, and Perl, and done some real work in PHP and VB.NET. I tend towards C# these days, but I still have some fondness for the language that sparked my programming interest. Not that I plan to go back to it!&lt;/p&gt;&#xA;" OwnerUserId="8187" LastActivityDate="2010-11-24T01:58:15.540" CommentCount="1" />
  <row Id="21050" PostTypeId="2" ParentId="21048" CreationDate="2010-11-24T02:00:58.317" Score="18" ViewCount="" Body="&lt;p&gt;It is possible to write good OO code in PHP but because it has been so widely used by inexperience developers there is a lot of bad PHP code out there. What development experience do you have at the moment? Unless you have some experience it is unlikely you can tell good code from bad anyway.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-24T02:00:58.317" CommentCount="15" />
  <row Id="21051" PostTypeId="2" ParentId="20801" CreationDate="2010-11-24T02:01:34.153" Score="1" ViewCount="" Body="&lt;p&gt;I tend to pick a real world scenario, something well known to anyone† and ask them to identify the entities; the actors involved; what interactions there are between them; where common features could be abstracted; what properties need be considered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, you could ask them to sit down and draw UML, yes you could ask them searching questions on some OOP implementation specifics to see if they can &quot;hit the ground running&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But what an employer really needs within their team is a mind that understands the concepts involved and can apply them to whatever turns up.  Specifics can be learnt quickly, when concepts are embedded.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;† Deep familiarity and an absence of a connection with code help: &lt;em&gt;A family's use of a bathroom in the morning; cooking dinner; a bus route to work; the assembly of a car.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-11-24T02:01:34.153" />
  <row Id="21052" PostTypeId="2" ParentId="20832" CreationDate="2010-11-24T02:02:38.287" Score="0" ViewCount="" Body="&lt;p&gt;I'd say it's very frequent. We don't generally &lt;em&gt;prove&lt;/em&gt; something has a particular big-O, but we have internalized the idea, and memorized/become familiar with the big-O guarantees for particular data structures and algorithms, and we pick the fastest ones for a particular use. It helps to have a library that's full of all of the options, like the Java collections library, or the C++ STL. You implicitly and naturally use big-O &lt;strong&gt;every day&lt;/strong&gt; when you choose to use a &lt;code&gt;java.util.HashMap&lt;/code&gt; (&lt;code&gt;O(1)&lt;/code&gt; lookup) instead of a &lt;code&gt;java.util.TreeMap&lt;/code&gt; (&lt;code&gt;O(lg n)&lt;/code&gt; lookup)  and certainly choosing not to run a linear search across a &lt;code&gt;java.util.LinkedList&lt;/code&gt; (&lt;code&gt;O(n)&lt;/code&gt; lookup) for something where you don't need sorted access.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When someone chooses a suboptimal implementation and someone who knows better comes along and sees their code, it's a part of our vocabulary to correct them &quot;your implementation takes quadratic time, but we can get this down to n-log-n time by doing it this way instead&quot; as naturally and automatically as we would use the English language to order a pizza.&lt;/p&gt;&#xA;" OwnerUserId="1961" LastActivityDate="2010-11-24T02:02:38.287" />
  <row Id="21053" PostTypeId="2" ParentId="21028" CreationDate="2010-11-24T02:03:47.990" Score="1" ViewCount="" Body="&lt;p&gt;C. It was simpler and more rational than the languages I had seen before (BASIC, Pascal, and COBOL), and in particular using pointer indirection seemed excellent at the time.&lt;/p&gt;&#xA;" OwnerUserId="6861" LastActivityDate="2010-11-24T02:03:47.990" />
  <row Id="21054" PostTypeId="2" ParentId="20866" CreationDate="2010-11-24T02:07:10.610" Score="5" ViewCount="" Body="&lt;p&gt;You need to take some of your time off NOW. Don't wait until it is convenient for the boss or internal customers. The amount of stress you are describing will burn you out on development forever. Take a week now, and a week later. Do not under any circumstances let vacation carry over from year to year. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are getting the lack of sleep that you are describing, then I recommend going for several walks during the day to try to reset your internal clock. Try to get about 30 minutes per day of sunlight on your face. Even if it is cold outside, it is important to get some sunlight. The lack of sunlight (at this time of year, many people go to work in the dark, and go home in the dark, and don't see sunlight except through a window) can lead to something called &lt;a href=&quot;http://en.wikipedia.org/wiki/Seasonal_affective_disorder&quot; rel=&quot;nofollow&quot;&gt;seasonal affective disorder&lt;/a&gt;. SAD can sometimes manifest itself as a winter crankiness and irritability, but those could also happen because of the major holidays and what those holidays are supposed to mean, versus how we actually experience them (as in, the image is some Norman Rockwellish family celebration, and in real life the family get-together involves relatives you loathe, annoying music in stores and an attention to shopping that defiles the nature of the holidays). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the place is as toxic as you are describing, I recommend that you take home all personal belongings.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been recommending the book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/013143635X&quot; rel=&quot;nofollow&quot;&gt;Death March&lt;/a&gt; for some time, and I recommend that you read it. It is a quick read, and many libraries have a copy. It has some ideas for recognizing and coping with the demands of too many features in too little time.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I will leave you with a little parable that my father used to say to me. &lt;em&gt;&quot;When you go to work, they hand you 2 buckets. One they fill with money. And one they fill with shit. When the bucket filled with shit is heavier than the bucket they fill with money, you leave.&quot;&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-24T02:07:10.610" CommunityOwnedDate="2011-01-19T15:33:20.557" CommentCount="1" />
  <row Id="21055" PostTypeId="2" ParentId="21048" CreationDate="2010-11-24T02:15:52.307" Score="5" ViewCount="" Body="&lt;h1&gt;Yes&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;PHP is an great language. Very popular, easy to pick up, and used almost everywhere. Of course this leads to a lot of bad code floating around created by bad developers. Start using PHP 5 (4 isn't worth it) and follow general OOP practices.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-24T02:15:52.307" CommentCount="2" />
  <row Id="21056" PostTypeId="2" ParentId="20866" CreationDate="2010-11-24T02:17:30.150" Score="0" ViewCount="" Body="&lt;p&gt;Polyphasic sleep may (or may not) help out.  Most of the solutions are to leave, but if your problem is how to get along on less sleep, you might want to look into polyphasic sleep.  I had a serious programming problem that was keeping me up and it seemed like I didn't have enough time to get everything done, and I eventually stumbled across polyphasic sleep, got some extra hours in the day, finished the project and moved on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Iron Man says you sleep 20 minute 6 times a day, but the lighter weight version worked for me.  3 hours in the middle of the night (3A-6A), then 3 25 minute naps throughout the day at 11A, 5P and 11P.  It will only work if you can get those naps, but it does work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just an idea.&lt;/p&gt;&#xA;" OwnerUserId="2506" LastActivityDate="2010-11-24T02:17:30.150" CommunityOwnedDate="2011-01-19T15:33:20.557" />
  <row Id="21057" PostTypeId="2" ParentId="21048" CreationDate="2010-11-24T02:19:20.747" Score="11" ViewCount="" Body="&lt;p&gt;Almost all languages can be written &lt;em&gt;&quot;badly&quot;&lt;/em&gt;, and almost all of them can be written &lt;em&gt;&quot;well&quot;&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which is which is partly a matter of opinion, partly convention and mainly down to clarity and efficiency of purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are just starting out, it is far more important that you get to grips with how you make something you want to happen occur than worrying overly about efficiency, security issues or any number of other aspects that improve your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Improvement will come with experience as you learn new ways to achieve tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that in mind it is important when picking a starting language that you can jump right in without having to worry too much about the formalities and constraints that programming &quot;well&quot; requires.  Flexibility and instant feedback are therefore great aids in an initial language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/BASIC&quot; rel=&quot;nofollow&quot;&gt;BASIC&lt;/a&gt; was written to be simple and quick to learn and has been many a programmers' first language, as have many other quick, forgiving, usually interpreted languages such as PHP, Perl, Logo.  The interpreted nature of the language (not having to compile the code and go through a lot of hurdles) is a major gift to the uninitiated, particularly if there is an &quot;immediate&quot; facility, a console where you can type a line of code in, and see what it does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn first how to bend the computer to your will, then learn how to do it well.  We do not learn verb order, tense and grammatical constructions when we learn to speak; we learn to say the words we need, then put them together, then add adjectives to refine what we say and eventually we can write an essay or a novel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It never ceases to amaze me how many educational institutions teach something exceptionally strict and foreboding to novices.  Too many obstacles makes learning hard and non-fluid.  C++/Java, powerful languages, &quot;good&quot; languages - but horrific for learning with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP is a fine language to begin with, as it is fairly forgiving, data is simplified by automatic types (numbers, text, etc), the interpreter is free and quick, it is widely used on the internet so the net is full of examples to be copied &lt;em&gt;then&lt;/em&gt; understood and it has enough power to deal with sophisticated problems that an adult might want to solve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only let down is that the language does not really have an &quot;immediate&quot; console-type facility generally speaking.  But how long does it take to change a text file and press save, upload if necessary and hit refresh?  Faster than a compilation that is for sure.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-11-24T02:19:20.747" CommentCount="18" />
  <row Id="21058" PostTypeId="2" ParentId="21028" CreationDate="2010-11-24T02:28:21.163" Score="6" ViewCount="" Body="&lt;p&gt;Scheme&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because I think recursively.&lt;/p&gt;&#xA;" OwnerUserId="8474" LastActivityDate="2010-11-24T02:28:21.163" />
  <row Id="21059" PostTypeId="2" ParentId="21032" CreationDate="2010-11-24T02:38:21.420" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;Edit:&lt;/strong&gt;  I just noticed that the title said &quot;new C and C++ developers&quot;.  The suggestions below are probably better-suited to intermediate- and expert-level C/C++ programmers.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A couple of things to help get in the habit of writing portable code:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One, compile with aggressive optimization when you test (e.g. GCC's &lt;code&gt;-O3&lt;/code&gt; switch).  This will often uncover bugs arising from subtle things like violation of &lt;a href=&quot;http://stackoverflow.com/questions/98650/what-is-the-strict-aliasing-rule&quot;&gt;strict aliasing rules&lt;/a&gt;.  By doing so, you become aware of such issues, and your program will work properly in the presence of such optimizations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two, test on a PowerPC (or other big-endian machine) from time to time.  Better yet, test on a 64-bit PowerPC if you can get your hands on one.  Things you can learn by doing so:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When reading a binary file, you have to pack/unpack 16-bit, 32-bit, 64-bit, etc. words a byte at a time, or use some sort of endian-aware byte-swapping mechanism.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;char&lt;/code&gt; is not always signed.  On PowerPC Linux, GCC defaults to &lt;code&gt;unsigned char&lt;/code&gt;.  This isn't an endianness issue, but it's a subtlety I picked up on while testing on both x86 and PowerPC.&lt;/li&gt;&#xA;&lt;li&gt;Big endian won't let you get away with &lt;code&gt;long n = ...; printf(&quot;%d&quot;, n);&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;64-bit big endian won't let you get away with:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;curl_easy_setopt(handle, CURLOPT_TIMEOUT, 1);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;See if you can spot the bug.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3650" LastEditorUserId="3650" LastEditorDisplayName="" LastEditDate="2010-11-24T02:51:57.897" LastActivityDate="2010-11-24T02:51:57.897" />
  <row Id="21060" PostTypeId="2" ParentId="21032" CreationDate="2010-11-24T02:50:06.260" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://careferencemanual.com/&quot; rel=&quot;nofollow&quot;&gt;C: A Reference Manual&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This booked cleared things up that I was foggy about for years. I have found that C is not like python where its going to be obvious that your doing something wrong. It takes away the &lt;code&gt;It might work for now, but ....&lt;/code&gt; feeling.&lt;/p&gt;&#xA;" OwnerUserId="8460" LastActivityDate="2010-11-24T02:50:06.260" />
  <row Id="21061" PostTypeId="2" ParentId="21028" CreationDate="2010-11-24T02:55:46.983" Score="5" ViewCount="" Body="&lt;p&gt;Delphi, back when Win32 desktop apps were king. It is still a street ahead of WinForms or anything else for building desktop apps, and VB6 was pretty embarrassing in comparison. In an era when server apps are king though, it has been lost trying to find its way.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-24T02:55:46.983" CommentCount="3" />
  <row Id="21062" PostTypeId="2" ParentId="21028" CreationDate="2010-11-24T03:01:45.737" Score="0" ViewCount="" Body="&lt;p&gt;C# for database application and JAVA for academic purpose.&lt;/p&gt;&#xA;" OwnerUserId="7022" LastActivityDate="2010-11-24T03:01:45.737" CommentCount="1" />
  <row Id="21063" PostTypeId="2" ParentId="21028" CreationDate="2010-11-24T03:03:27.963" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Logo&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not my first language, I had a few years of various flavours of BASIC and Assembler under my belt when I encountered Logo age 11 at school.  But good God is it fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those who do not know, it is a graphical language for moving about a &quot;turtle&quot; (ostensibly a graphics cursor in a canvas, or for real fun in a school, a robot turtle holding a pen on a big bit of paper).  A descendent of LISP, without a lot of the brackets.  Still works in a prefix notation, with list data structures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Advances in abstraction:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;FD 120 RT 90 FD 120 RT 90 FD 120 RT 90 FD 120 RT 90&#xA;&#xA;REPEAT 4 [FD 120 RT 90]&#xA;&#xA;TO SQUARE :SIZE&#xA;    REPEAT 4 [FD :SIZE RT 90]&#xA;END&#xA;&#xA;SQUARE 120&#xA;&#xA;TO POLYGON :SIDES :SIZE&#xA;    REPEAT :SIDES [FD :SIZE RT (360 / :SIDES)]&#xA;END&#xA;&#xA;POLYGON 4 120&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/7xXeV.jpg&quot; alt=&quot;Logo Square with the Turtle&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Logo_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Wikipedia&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.mathcats.com/gallery/15wordcontest.html&quot; rel=&quot;nofollow&quot;&gt;Fun Examples&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://sourceforge.net/projects/fmslogo/&quot; rel=&quot;nofollow&quot;&gt;FMS Logo - have a go!&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;PS.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I could also say &lt;a href=&quot;http://msdn.microsoft.com/en-us/fsharp/default.aspx&quot; rel=&quot;nofollow&quot;&gt;F#&lt;/a&gt; for being utterly enchanting, &lt;a href=&quot;http://www.perl.org/learn.html&quot; rel=&quot;nofollow&quot;&gt;Perl&lt;/a&gt; for being everything and less, &lt;a href=&quot;http://jquery.com/&quot; rel=&quot;nofollow&quot;&gt;jQuery&lt;/a&gt; for making people realise JavaScript was really functional and &lt;a href=&quot;http://www.peter-cockerell.net/aalp/html/frames.html&quot; rel=&quot;nofollow&quot;&gt;ARM Assembler&lt;/a&gt; for being just about the most smooth and logical way to program I have ever seen.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastEditorUserId="7990" LastEditorDisplayName="" LastEditDate="2010-11-24T03:36:15.373" LastActivityDate="2010-11-24T03:36:15.373" CommentCount="3" />
  <row Id="21064" PostTypeId="2" ParentId="20801" CreationDate="2010-11-24T03:15:22.580" Score="2" ViewCount="" Body="&lt;p&gt;If possible, ask for sample code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, find some procedural code to use as an example (or some poorly designed OO code), and then ask them how they would redesign, generalize and improve it. Be sure the program has extra context, so that the redesign can be meaningful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately what you are testing-- design-- is subjective. Thus, your evaluation should be open-ended to allow for several possible good solutions, and not just a single one. Then, think about possible changes to requirements that would force an interface change: How do they handle it?&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-24T03:15:22.580" />
  <row Id="21067" PostTypeId="1" AcceptedAnswerId="23137" CreationDate="2010-11-24T03:30:32.450" Score="14" ViewCount="834" Body="&lt;p&gt;Some languages in the past have been influential without ever reaching wide adoption. For example, many languages owe much to the design of &lt;a href=&quot;http://en.wikipedia.org/wiki/ALGOL_68&quot; rel=&quot;nofollow&quot;&gt;Algol 68&lt;/a&gt;, even though few compilers were ever written for it. The &lt;a href=&quot;http://en.wikipedia.org/wiki/Dylan_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Dylan&lt;/a&gt; language was killed by Apple but had a clean and interesting design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What other programming languages had cool ideas but-- for whatever reasons-- didn't make it to the mainstream? Is there an interesting language feature that you wish your main language had? Is there a feature ahead of its time that we'll soon see used?&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2011-02-16T20:10:15.840" CommunityOwnedDate="2011-01-05T10:52:43.233" Title="What language, or language feature, do you wish made it to the mainstream?" Tags="&lt;programming-languages&gt;&lt;language-design&gt;&lt;language-features&gt;" AnswerCount="20" FavoriteCount="4" />
  <row Id="21068" PostTypeId="2" ParentId="21032" CreationDate="2010-11-24T03:31:49.970" Score="1" ViewCount="" Body="&lt;p&gt;Always pay attention to recommendations that say &quot;never use feature X&quot;.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Such recommendations are typically based on the experience of lots of skilled people over a significant period of time.&lt;/li&gt;&#xA;&lt;li&gt;If you choose to disregard such recommendations, make sure that you really understand them and the rationale behind them, &lt;em&gt;before&lt;/em&gt; you disregard them.&lt;/li&gt;&#xA;&lt;li&gt;If you choose to ignore them out of hand, don't be surprised if people criticize your code.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-11-24T03:31:49.970" CommentCount="2" />
  <row Id="21069" PostTypeId="2" ParentId="21067" CreationDate="2010-11-24T03:59:28.357" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;String Aggregator for SQL&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i.e., a simple standard process, like avg() or nvl(), that takes a column of values and appends them to each other, given a string separator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;E.g. &#xA;Given&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;select name_col &#xA;from my_table;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;returns:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Ringo&#xA;John&#xA;Paul&#xA;George&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;, then&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;select substring(stragg(', '||name_col), 3) &#xA;from my_table;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;should return:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Ringo, John, Paul, George&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="965" LastEditorUserId="965" LastEditorDisplayName="" LastEditDate="2010-11-24T04:37:18.043" LastActivityDate="2010-11-24T04:37:18.043" CommunityOwnedDate="2011-01-05T10:52:43.233" CommentCount="2" />
  <row Id="21071" PostTypeId="1" AcceptedAnswerId="21167" CreationDate="2010-11-24T04:07:10.237" Score="12" ViewCount="396" Body="&lt;p&gt;I was sitting in a requirements gathering meeting for a new project today and found myself taking notes, but those notes were jotted haphazardly all over my notepad. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any useful note-taking techniques for programmers?&lt;/p&gt;&#xA;" OwnerUserId="6518" LastActivityDate="2010-11-25T17:20:06.673" Title="How do you take notes at a meeting?" Tags="&lt;notes&gt;" AnswerCount="12" CommentCount="2" FavoriteCount="3" />
  <row Id="21073" PostTypeId="2" ParentId="21071" CreationDate="2010-11-24T04:17:17.883" Score="2" ViewCount="" Body="&lt;p&gt;I tend to jot a lot of rubbish as well in meetings but normally as soon as the meeting is over and I go back to my desk I go through the notes and expand upon them in point form. It is impossible to write everything down although you could record it, but I have never seen anyone do that.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-24T04:17:17.883" CommentCount="1" />
  <row Id="21075" PostTypeId="2" ParentId="21048" CreationDate="2010-11-24T04:20:17.130" Score="0" ViewCount="" Body="&lt;p&gt;Yes, it's quite a good entry point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;just keep in mind that it's not the best out there, and you'll be fine.&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-11-24T04:20:17.130" CommentCount="3" />
  <row Id="21076" PostTypeId="2" ParentId="21071" CreationDate="2010-11-24T04:24:37.283" Score="3" ViewCount="" Body="&lt;p&gt;Usually I put points in bullets. If there are action items, I use separate pages for each person. If it is requirements, each requirement goes in its own line. Usually at the end of the meeting, I use the same notes to summarize.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-11-24T04:24:37.283" CommentCount="1" />
  <row Id="21077" PostTypeId="2" ParentId="21071" CreationDate="2010-11-24T04:26:28.080" Score="2" ViewCount="" Body="&lt;p&gt;I use iPad and iAWriter (&lt;a href=&quot;http://itunes.apple.com/ca/app/ia-writer/id392502056?mt=8&quot; rel=&quot;nofollow&quot;&gt;http://itunes.apple.com/ca/app/ia-writer/id392502056?mt=8&lt;/a&gt;) for keywords / bullet points. Nice feature is that it syncs automatically to dropbox. Then at my desk I just process saved file.&lt;/p&gt;&#xA;" OwnerUserId="8224" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-11-24T07:11:50.090" LastActivityDate="2010-11-24T07:11:50.090" CommentCount="3" />
  <row Id="21079" PostTypeId="2" ParentId="21067" CreationDate="2010-11-24T04:40:14.933" Score="9" ViewCount="" Body="&lt;p&gt;D still has a chance to make it into the mainstream, though it's not there yet.  Two key features that go together and for some purposes can be treated as one feature are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;String mixins.  This is basically like a compile-time eval.  Compile time strings can be compiled as normal code in whatever scope they're mixed into.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Compile time function evaluation.  This allows said code to be generated at compile time, so that it can be mixed into any scope necessary.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Combine these with regular template metaprogramming and the result is some pretty powerful and transparent (to the API user) code generation.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-11-24T04:40:14.933" CommunityOwnedDate="2011-01-05T10:52:43.233" CommentCount="5" />
  <row Id="21080" PostTypeId="2" ParentId="21048" CreationDate="2010-11-24T05:09:46.203" Score="3" ViewCount="" Body="&lt;p&gt;I think VB or C# is a better language to start in. Compile time errors are amazing for beginners simply because its easier to do the wrong thing in dynamic languages. With C# you get a full IDE which will help you debug and relieve you of some frustrations. Once you learn how to use the call stack, watch variables, breakpoints and 'immediate' mode (its the console tab in firebug) you can develop some good programming habits or understanding then move on to other languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally i think everyone only needs to learn a .NET language for productivity, C++ if needed to learn low level and a dynamic language such as lua, ruby, python or javascript.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-11-24T05:09:46.203" CommentCount="3" />
  <row Id="21081" PostTypeId="2" ParentId="21071" CreationDate="2010-11-24T05:13:14.220" Score="0" ViewCount="" Body="&lt;p&gt;voice recorder + furious typing on laptop&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-24T05:13:14.220" CommentCount="4" />
  <row Id="21082" PostTypeId="1" CreationDate="2010-11-24T05:16:42.490" Score="17" ViewCount="522" Body="&lt;p&gt;I just read about &lt;a href=&quot;http://en.wikipedia.org/wiki/Cycle_sort&quot; rel=&quot;nofollow&quot;&gt;cyclesort&lt;/a&gt; via a sortvis.org blog post.&#xA;This is probably the most obscure one I have heard of so far, since it uses maths that I am not familiar with (detecting cycles in permutations of integer sets).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the most obscure one you know?&lt;/p&gt;&#xA;" OwnerUserId="5904" LastEditorUserId="5904" LastEditorDisplayName="" LastEditDate="2010-11-24T06:28:01.043" LastActivityDate="2010-12-22T15:40:51.717" Title="What is the most obscure sorting algorithm you know?" Tags="&lt;algorithms&gt;&lt;sorting&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="8" />
  <row Id="21083" PostTypeId="2" ParentId="21071" CreationDate="2010-11-24T05:20:17.650" Score="1" ViewCount="" Body="&lt;p&gt;I use two options, depending on the type of meeting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When there is an agenda, I take a stack of index cards and a pencil w/ eraser. It's like a wide screen sticky note.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When it's a brain storming meeting, I use my iPad and some mind mapping software. I use &lt;a href=&quot;http://www.mindnode.com/2010/03/24/three-devices-one-app-%E2%80%93-part-3-the-ipad/&quot; rel=&quot;nofollow&quot;&gt;MindNode&lt;/a&gt;, but that's a personal preference. It's great, as you can move ideas around as the meeting progresses, then email yourself/team the ideas in outline form.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-24T14:03:26.580" LastActivityDate="2010-11-24T14:03:26.580" CommentCount="3" />
  <row Id="21084" PostTypeId="1" CreationDate="2010-11-24T05:24:23.153" Score="1" ViewCount="377" Body="&lt;p&gt;I'm an Object Oriented Programming fanatic. I have always believed in modelling solutions in terms of objects. It is something that comes to me naturally. I work with a services start up that essentially works on application development using OOP languages. So I tend to test understanding of OOP in the candidate being interviewed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To my shock, I found very very few developers who really understood OOP. Most candidates brainlessly spit out definitions they mugged up from some academic book on object oriented programming but they don't know squat about what they are saying. Needless to say I reject these candidates. However, over the course of time, I ended up rejecting almost 98% of the candidates. Now this gets me thinking if I'm being over critical about their OOP skills. I still believe OOP is fundamental and every programmer MUST GET it. Language knowledge and experience is secondary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you think I'm being over critical or do I just get to interview bad programmers unfortunately?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually interview programmers with 2 to 5 years of experience. The position that I usually interview for is Ruby/Ruby on Rails application developer.&lt;/p&gt;&#xA;" OwnerUserId="8419" LastEditorUserId="8419" LastEditorDisplayName="" LastEditDate="2010-11-24T07:30:56.753" LastActivityDate="2010-11-24T08:42:57.627" Title="Object Oriented Programming Concepts and Interviews" Tags="&lt;interview&gt;&lt;object-oriented&gt;" AnswerCount="5" CommentCount="5" />
  <row Id="21085" PostTypeId="2" ParentId="21082" CreationDate="2010-11-24T05:25:25.413" Score="9" ViewCount="" Body="&lt;p&gt;Ever heard of &lt;a href=&quot;http://en.wikipedia.org/wiki/Patience_sorting&quot; rel=&quot;nofollow&quot;&gt;Patience sorting&lt;/a&gt;? Well now you have...&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-11-24T05:25:25.413" CommentCount="1" />
  <row Id="21087" PostTypeId="2" ParentId="21084" CreationDate="2010-11-24T05:28:18.970" Score="5" ViewCount="" Body="&lt;p&gt;haven't you imagined that OOP might not be the pinnacle of all knowledge?  there &lt;em&gt;are&lt;/em&gt; other ways to think, after all.  Even more, there are lots problems out there where OOP isn't the best answer.&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-11-24T05:28:18.970" CommentCount="1" />
  <row Id="21088" PostTypeId="1" CreationDate="2010-11-24T05:41:33.583" Score="0" ViewCount="453" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/21568/asp-net-mvc-book-for-absolute-beginners&quot;&gt;ASP.NET MVC book for absolute beginners&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Hi guys, finally I have made a decision to go with ASP.NET and C# and I hope I have made the right decision. I would like to ask you, the experts in ASP.NET and C#, could you please tell me where should I start learning and will you recommened me learn ASP.NET or ASP.NET MVC? And what about C#, what is the best book for beginners to learn C#?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And by the way, how should I start with SQL Server and SQL,etc? Should I pick up a special book or will I learn it with C#?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers.&lt;/p&gt;&#xA;" OwnerUserId="26782" LastActivityDate="2011-02-02T21:38:18.580" ClosedDate="2011-02-02T21:42:06.330" Title="Best books to start with ASP.NET MVC / C# and Visual Studio" Tags="&lt;c#&gt;&lt;asp.net&gt;" AnswerCount="0" CommentCount="0" FavoriteCount="0" />
  <row Id="21089" PostTypeId="2" ParentId="20832" CreationDate="2010-11-24T05:51:07.067" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may not have to do formal analyses, but at least a gut understanding of the order of algorithm complexity - and how to compare two algorithms around that - is critical if you want to do non-trivial work and have it turn out well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've worked on two different systems that seemed fine in early development, but brought the hardware to its knees in production testing, because somebody used an O(n^2) algorithm. And in both cases, the fix was a trivial change to an O(n) algorithm.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-11-24T05:51:07.067" />
  <row Id="21090" PostTypeId="2" ParentId="21568" CreationDate="2010-11-24T05:51:54.980" Score="1" ViewCount="" Body="&lt;p&gt;Start with the &lt;strong&gt;NerdDinner Tutorial.&lt;/strong&gt;  It is a concise, but complete description of ASP.NET MVC, which will walk you through the creation of a complete, non-trivial application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://nerddinnerbook.s3.amazonaws.com/Intro.htm&quot; rel=&quot;nofollow&quot;&gt;http://nerddinnerbook.s3.amazonaws.com/Intro.htm&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that ASP.NET and ASP.NET MVC are not the same thing. ASP.NET MVC is a library for ASP.NET that allows you to use the Model-View-Controller pattern with ASP.NET.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;ASP.NET MVC is not &lt;a href=&quot;http://blog.wekeroad.com/blog/i-spose-ill-just-say-it-you-should-learn-mvc/&quot; rel=&quot;nofollow&quot;&gt;a big, leaky abstraction&lt;/a&gt; over the HTTP protocol like ASP.NET Webforms is.  Instead, it fully embraces the stateless nature of HTTP on its own terms.  As a result, the overall application style is &quot;cleaner,&quot; more testable, and generally yields higher performance.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-24T19:16:44.920" LastActivityDate="2010-11-24T19:16:44.920" />
  <row Id="21091" PostTypeId="2" ParentId="21043" CreationDate="2010-11-24T06:02:03.880" Score="1" ViewCount="" Body="&lt;p&gt;The reality is that nearly all rejections are due to apps that simply crash, and following that are apps that don't follow some really basic rules (for example, if your app requires online access it must first test for access before blindly making the request and hanging the app).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've submitted several apps and have helped develop a dozen more, all of which have had several updates. There has been one rejection so far, and it was due to a really dumb user interface mistake we made that effectively allowed the app to hang if the user did the wrong thing. We fixed it in under an hour and resubmitted, and the app was approved the next day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there reason for some concern? Absolutely. Is the process full of capricious decisions that make submission difficult and unpredictable? No, not at all.&lt;/p&gt;&#xA;" OwnerUserId="8076" LastActivityDate="2010-11-24T06:02:03.880" CommentCount="2" />
  <row Id="21092" PostTypeId="2" ParentId="20950" CreationDate="2010-11-24T06:04:04.550" Score="16" ViewCount="" Body="&lt;p&gt;These are my favorite features of my favorite IDE, IntelliJ, which I like using for Java, PHP, Javascript, HTML, even ActionScript.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Error checking&lt;/strong&gt; - Like live spell check for code. Absolutely essential.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Code navigation&lt;/strong&gt; - &lt;code&gt;Ctrl+click&lt;/code&gt; on a function, variable, type to go to the definition. (IntelliJ is &lt;em&gt;very&lt;/em&gt; good at this in all of the above languages)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Code completion&lt;/strong&gt; - I use &lt;code&gt;Ctrl+space&lt;/code&gt; constantly to help fill in the class or method name that I need.  This speeds up coding a &lt;em&gt;ton&lt;/em&gt;, and even helps catch bugs before they happen when something you needed is not accessible from the context you are in.  IntelliJ will even help you expand acronyms - type NPE, hit &lt;code&gt;Ctrl+space&lt;/code&gt;, and it will show &quot;NullPointerException&quot;, &quot;NoPageError&quot;, etc.  Hitting &lt;code&gt;Alt+enter&lt;/code&gt; to automatically add the &lt;code&gt;import&lt;/code&gt; is really nice too.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Code generation&lt;/strong&gt; - Generate getters and setters, implement methods from an interface with a couple clicks.&lt;/li&gt;&#xA;&lt;li&gt;Very good &lt;strong&gt;code coloring&lt;/strong&gt; - IntelliJ not only does the standard keyword, string, variable name coloring, but also colors member variables, local variables, parameters.  In ActionScript a variable that is actually a setter/getter will be colored like a function.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Refactoring&lt;/strong&gt; - Mistake-free renaming is the biggest. IntelliJ is very good at renaming even setters and getters or string usages.  Of course there is regex-based search and replace when you need it, and a &quot;preserve case&quot; option to enable you to replace &quot;myNumber&quot;, &quot;MyNumber&quot; and &quot;MYNUMBER&quot; with &quot;myString&quot;, &quot;MyString&quot; and &quot;MYSTRING&quot; in one operation&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Version control integration&lt;/strong&gt; - We use SVN, and my favorite IDE VC features are being able to create, delete, move classes without thinking about SVN, easily browsing history, a very good diff tool, good merging capability, and annotating files (showing line-by-line history) in the editor.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Dependency importing&lt;/strong&gt; - When relying on a third party library that you have the source for, you can navigate to the code easily for reference, debugging, etc.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Smart typing&lt;/strong&gt; - pasting code and having it automatically paste to the right tab position, auto completion of end-brackets, parentheses, quotes, etc.&lt;/li&gt;&#xA;&lt;li&gt;A very good &lt;strong&gt;Test runner&lt;/strong&gt; for JUnit, FlexUnit, PHPUnit&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Debugging&lt;/strong&gt; - of course. Debugs JBoss, Jetty, even Flash flawlessly.  Ctrl+click stack traces to go right to the code.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Things like the code coloring you might take for granted, but good code coloring is like peripheral vision - it allows you to focus on the important stuff without taking that split-second extra to identify the full word.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IntelliJ also even uses &lt;code&gt;Ctrl+space&lt;/code&gt; to suggest variable names.  In Java, if you declare a new EventMessageItem variable and hit &lt;code&gt;Ctrl+space&lt;/code&gt;, it will suggest &quot;eventMessageItem&quot;, &quot;eventMessage&quot;, &quot;item&quot;, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of these things give me &lt;em&gt;way&lt;/em&gt; more time to think about my code and architecture, and think less about fixing formatting, dealing with the file system, fixing copy-and-paste errors, switching between applications, chasing down documentation, etc. etc.  I don't know how you can say no to that kind of productivity increase.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-11-24T06:04:04.550" CommentCount="2" />
  <row Id="21093" PostTypeId="1" AcceptedAnswerId="21095" CreationDate="2010-11-24T06:08:42.163" Score="1" ViewCount="129" Body="&lt;p&gt;Hi SE Community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone done the Oracle Master (old SCJD) Examination?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your thoughts on this examination? Is it worth taking it? Not really from the point of learning anything (as I doubt I will), but from the perspective of simply obtaining the certification to further my career (you know, business likes it when you have actual certifications behind your name ...sigh...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have written it? Do you have any tips / tricks? Or any do's and dont's?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="8478" LastActivityDate="2010-11-24T13:54:04.280" Title="What are your thoughts on the Oracle Master (old Sun Certified Java Developer) Examination?" Tags="&lt;java&gt;&lt;oracle&gt;&lt;certification&gt;" AnswerCount="2" />
  <row Id="21094" PostTypeId="2" ParentId="14293" CreationDate="2010-11-24T06:15:37.723" Score="4" ViewCount="" Body="&lt;p&gt;The step to take is to partition the application into multiple parts at the file level. Instead of having all of the routes in one file, split them up into logically separated files with different functionality groups in different files, which are all then &lt;code&gt;require&lt;/code&gt;'d back into the main Sinatra application/Rackup file.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although this makes your file structure prettier, it does not implement any true compartmentalization or organization beyond superficial divisions. The solution to this that seems to have garnered the most popularity and acceptance is the &lt;a href=&quot;http://www.padrinorb.com/&quot; rel=&quot;nofollow&quot;&gt;Padrino&lt;/a&gt; framework, which runs on top of and expands upon the Sinatra core to add controllers (for compartmentalization) and a bunch of Django-like features (drop-in authentication, administration, etc.).&lt;/p&gt;&#xA;" OwnerUserId="8342" LastActivityDate="2010-11-24T06:15:37.723" />
  <row Id="21095" PostTypeId="2" ParentId="21093" CreationDate="2010-11-24T06:27:14.777" Score="2" ViewCount="" Body="&lt;p&gt;It is controvesal, mainly because the industry does not really demand this and the exam itself is not that hard to pass, as you point out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion,it is valuable though.&#xA;The reasons are &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;It makes you study. &#xA;Weather the study would have direct influence to your work or not, I believe any knowledge would eventually help at some point,at some way. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Sometimes, the study itself makes my productivity better. &#xA;Cause I have this feeling that I am improving constantly. I feel like I am living with my best. Generally, I feel good when I study for my job.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;As you may know by now, I have this certification along with several more.&lt;/p&gt;&#xA;" OwnerUserId="6924" LastActivityDate="2010-11-24T06:27:14.777" CommentCount="2" />
  <row Id="21096" PostTypeId="1" CreationDate="2010-11-24T06:39:07.203" Score="0" ViewCount="68" Body="&lt;p&gt;My ruby version is 1.8.7, gem version is 1.3.7. Iam using cucumber&#xA;0.9.4. As there is no webrat example in cucumber 0.9.4 so i thought to&#xA;take the example from the previous cucumber versions.This example is using spec gem&#xA;but when iam searching for spec gem in rubygems site the result comes&#xA;for rspec gem, now how to run this webrat example using rspec.&#xA;Following are the errors&lt;/p&gt;&#xA;&#xA;&lt;p&gt;no such file to load -- spec (LoadError)&#xA;C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in&#xA;&lt;code&gt;gem_original&#xA;_require'&#xA;C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in&#xA;&lt;/code&gt;require'&#xA;C:/Ruby187/lib/ruby/gems/1.8/gems/cucumber-0.9.4/examples/webrat/&#xA;features/suppor&#xA;t/env.rb:2&#xA;C:/Ruby187/lib/ruby/gems/1.8/gems/cucumber-0.9.4/bin/../lib/cucumber/&#xA;rb_support/&#xA;rb_language.rb:143:in &lt;code&gt;load'&#xA;C:/Ruby187/lib/ruby/gems/1.8/gems/cucumber-0.9.4/bin/../lib/cucumber/&#xA;rb_support/&#xA;rb_language.rb:143:in&lt;/code&gt;load_code_file'&#xA;C:/Ruby187/lib/ruby/gems/1.8/gems/cucumber-0.9.4/bin/../lib/cucumber/&#xA;runtime/sup&#xA;port_code.rb:176:in &lt;code&gt;load_file'&#xA;C:/Ruby187/lib/ruby/gems/1.8/gems/cucumber-0.9.4/bin/../lib/cucumber/&#xA;runtime/sup&#xA;port_code.rb:78:in&lt;/code&gt;load_files!'&#xA;C:/Ruby187/lib/ruby/gems/1.8/gems/cucumber-0.9.4/bin/../lib/cucumber/&#xA;runtime/sup&#xA;port_code.rb:77:in &lt;code&gt;each'&#xA;C:/Ruby187/lib/ruby/gems/1.8/gems/cucumber-0.9.4/bin/../lib/cucumber/&#xA;runtime/sup&#xA;port_code.rb:77:in&lt;/code&gt;load_files!'&#xA;C:/Ruby187/lib/ruby/gems/1.8/gems/cucumber-0.9.4/bin/../lib/cucumber/&#xA;runtime.rb:&#xA;137:in &lt;code&gt;load_step_definitions'&#xA;C:/Ruby187/lib/ruby/gems/1.8/gems/cucumber-0.9.4/bin/../lib/cucumber/&#xA;runtime.rb:&#xA;39:in&lt;/code&gt;run!'&#xA;C:/Ruby187/lib/ruby/gems/1.8/gems/cucumber-0.9.4/bin/../lib/cucumber/&#xA;cli/main.rb&#xA;:48:in &lt;code&gt;execute!'&#xA;C:/Ruby187/lib/ruby/gems/1.8/gems/cucumber-0.9.4/bin/../lib/cucumber/&#xA;cli/main.rb&#xA;:21:in&lt;/code&gt;execute'&#xA;C:/Ruby187/lib/ruby/gems/1.8/gems/cucumber-0.9.4/bin/cucumber:8&#xA;C:/Ruby187/bin/cucumber:19:in `load'&#xA;C:/Ruby187/bin/cucumber:19 &lt;/p&gt;&#xA;" LastActivityDate="2010-11-24T06:39:07.203" ClosedDate="2010-11-24T08:01:12.970" Title="cucumber webrat example runtime error-unable to load spec gem" Tags="&lt;ruby&gt;" CommentCount="2" />
  <row Id="21097" PostTypeId="2" ParentId="21568" CreationDate="2010-11-24T06:41:52.710" Score="-1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1933988622&quot; rel=&quot;nofollow&quot;&gt;MVC In Action&lt;/a&gt; is a good book to get started with.  &lt;a href=&quot;http://www.iamnotmyself.com/2009/07/24/BookReviewASPNETMVCInAction.aspx&quot; rel=&quot;nofollow&quot;&gt;Here&lt;/a&gt; &lt;a href=&quot;http://elegantcode.com/2010/04/09/book-review-asp-net-mvc-in-action/&quot; rel=&quot;nofollow&quot;&gt;are&lt;/a&gt; &lt;a href=&quot;http://davidhayden.com/blog/dave/archive/2009/07/26/aspnetmvcinactionbookreview.aspx&quot; rel=&quot;nofollow&quot;&gt;a&lt;/a&gt; &lt;a href=&quot;http://geekswithblogs.net/michelotti/archive/2009/11/07/asp.net-mvc-in-action-review.aspx&quot; rel=&quot;nofollow&quot;&gt;few&lt;/a&gt; &lt;a href=&quot;http://weblogs.asp.net/cstewart/archive/2009/07/12/book-review-asp-net-mvc-in-action.aspx&quot; rel=&quot;nofollow&quot;&gt;reviews&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6735" LastActivityDate="2010-11-24T06:41:52.710" CommentCount="1" />
  <row Id="21098" PostTypeId="2" ParentId="21082" CreationDate="2010-11-24T06:44:50.400" Score="3" ViewCount="" Body="&lt;p&gt;Knuth Volume 3&lt;sup&gt;1&lt;/sup&gt;, in the answer to one of the exercises, gives an implementation of a nameless sorting algorithm that's basically an ancient code golf -- the shortest sort you can write in MIX assembly language. The short code does comes at the oh-so-minor price of O(N&lt;sup&gt;3&lt;/sup&gt;) complexity though...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt;At least in the older editions. Given the modifications to MIXAL for the new edition, I'm not sure whether it's still there, or even makes the minuscule bit of sense in did in the original MIXAL.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-24T06:44:50.400" />
  <row Id="21099" PostTypeId="2" ParentId="21568" CreationDate="2010-11-24T06:53:42.977" Score="1" ViewCount="" Body="&lt;p&gt;APress, Manning and Murach are three publishers whose books on C# are quite good.&#xA;Look out for free online trainings, videos and podcasts that may help in the learning process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I strongly recommend that you take it one step at time. First C#, then SQL Server, then ASP.NET. Don't jump into all 3 at the same time. You'll get muddled up. For C# again, first begin with console-based applications and then go for UI based applications (ie, Windows Forms). &lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-11-24T06:53:42.977" CommentCount="1" />
  <row Id="21100" PostTypeId="2" ParentId="21084" CreationDate="2010-11-24T06:56:06.610" Score="1" ViewCount="" Body="&lt;p&gt;OOP is merely one way of coding. There are many &lt;a href=&quot;http://en.wikipedia.org/wiki/Multi-paradigm_programming_language&quot; rel=&quot;nofollow&quot;&gt;Multi Paradigm Programming Languages&lt;/a&gt; that does not necessary need OOP to work. In fact, you also need to see what nature of the job is. For example, System Analysts that do little programming can not know OOP, but do well in his/her job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, there's proof (read it somewhere, can't remember where - probably on Stack Overflow blog or Joel on Software) that there are many graduates or freshmen in the industry that hardly know OOP or good programming practices. These people are probably the black sheeps in your team who will code poorly, have bad documentation and poor understanding of the code.&lt;/p&gt;&#xA;" OwnerUserId="117" LastActivityDate="2010-11-24T06:56:06.610" />
  <row Id="21101" PostTypeId="2" ParentId="21084" CreationDate="2010-11-24T07:06:46.850" Score="2" ViewCount="" Body="&lt;p&gt;Who are you interviewing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the answer is fresh out of schools grad, then that's expected. In school a student gets to learn a lot of theory about OOP and the accompanying assignments are hardly long enough to make them understand the advantages of using OOP vs Procedural.&lt;/p&gt;&#xA;" OwnerUserId="3755" LastActivityDate="2010-11-24T07:06:46.850" CommentCount="1" />
  <row Id="21102" PostTypeId="2" ParentId="21082" CreationDate="2010-11-24T07:20:34.083" Score="7" ViewCount="" Body="&lt;p&gt;I don't know if this counts as obscure, but one of the most ridiculous sorting &quot;algorithms&quot; is &lt;a href=&quot;http://en.wikipedia.org/wiki/Bogosort&quot; rel=&quot;nofollow&quot;&gt;Bogosort&lt;/a&gt;.  The links off the Bogosort page are fun too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And there's this gem from the section on &quot;quantum bogo-sort&quot;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Arguably, creating 2&lt;sup&gt;N&lt;/sup&gt; universes is also very memory-intensive.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Hmmm ... you could say that :-).&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-11-24T07:27:25.527" LastActivityDate="2010-11-24T07:27:25.527" CommentCount="2" />
  <row Id="21104" PostTypeId="2" ParentId="21071" CreationDate="2010-11-24T07:24:41.720" Score="5" ViewCount="" Body="&lt;p&gt;I'd hope that the meeting is being recorded, and someone will be e-mailing all participants meeting minutes shortly after it has concluded. This helps people pay more attention to the actual meeting and helps to ensure everyone walked away with the same understanding of whatever was discussed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I carry around a spiral notebook with me, everywhere that I go. I'm obsessive about writing down most of what goes on during any given day. You never know when you need to refer back, or perhaps justify something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I use plain old paper with a 'fast' pen that writes easily and doesn't smudge. It's important to test the pen in the store.. even the super expensive gel pens run easily. You pay a little more initially, but a good Cross roller ball will never let you down.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-24T07:24:41.720" CommentCount="7" />
  <row Id="21106" PostTypeId="2" ParentId="21082" CreationDate="2010-11-24T08:08:51.560" Score="3" ViewCount="" Body="&lt;p&gt;I think the bubble sort would be the wrong answer in this situation too&lt;/p&gt;&#xA;&#xA;&lt;p&gt;:) &lt;/p&gt;&#xA;" OwnerUserId="82" LastActivityDate="2010-11-24T08:08:51.560" CommunityOwnedDate="2010-11-24T08:08:51.560" CommentCount="1" />
  <row Id="21107" PostTypeId="2" ParentId="21084" CreationDate="2010-11-24T08:11:05.330" Score="0" ViewCount="" Body="&lt;p&gt;If you interviewed a fresh graduate, than you absolutely too critical. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think what is important for a fresh graduate related to OOP are: medium - deep OOP knowledge, interest in programming and OOP, hard worker and some OOP college assignment. Some fresh graduates are lack of OOP experience in medium - large project. So I think a medium knowledge and interest in OOP will be enough.&lt;/p&gt;&#xA;" OwnerUserId="7022" LastActivityDate="2010-11-24T08:11:05.330" />
  <row Id="21108" PostTypeId="2" ParentId="20965" CreationDate="2010-11-24T08:14:53.000" Score="1" ViewCount="" Body="&lt;p&gt;In terms of an IDE to use, I'm a big fan of using Microsoft's IDE products for EDITING files, but using Makefiles and gcc to compile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know you've indicated you're interested in non-embedded specific stuff, but your library and compiler questions are still influenced by what you're going to be doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As such, I'd definately be thinking against linking against uClibc for embedded programming:&#xA;&lt;a href=&quot;http://www.uclibc.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.uclibc.org/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're not targeting x86, you'll want to think about your cross-compile environment - I've been looking at some options for this recently, and it looks like scratchbox might be the best way to go, but YMMV:&#xA;&lt;a href=&quot;http://www.scratchbox.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.scratchbox.org/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides that, you shouldn't really have to 're-learn' C, rather just look at changing up your toolchain for the specific task at hand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps.&lt;/p&gt;&#xA;" OwnerUserId="7641" LastActivityDate="2010-11-24T08:14:53.000" CommentCount="3" />
  <row Id="21109" PostTypeId="2" ParentId="21568" CreationDate="2010-11-24T08:15:02.563" Score="0" ViewCount="" Body="&lt;p&gt;Absolutely &quot;Pro ASP MVC 2&quot; and &quot;Nerd Dinner&quot; Tutorial&lt;/p&gt;&#xA;" OwnerUserId="7022" LastActivityDate="2010-11-24T08:15:02.563" />
  <row Id="21110" PostTypeId="2" ParentId="21048" CreationDate="2010-11-24T08:16:12.347" Score="8" ViewCount="" Body="&lt;p&gt;I would argue that its a very bad language to start with because it has some many quirks you need to know. To start with I would recomend a language that has a clean design. Python or Scheme would be examples of that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scheme is the Old School MIT way look at this book: &lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book.html&quot; rel=&quot;nofollow&quot;&gt;http://mitpress.mit.edu/sicp/full-text/book/book.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2743" LastActivityDate="2010-11-24T08:16:12.347" CommentCount="2" />
  <row Id="21111" PostTypeId="2" ParentId="20407" CreationDate="2010-11-24T08:23:26.597" Score="0" ViewCount="" Body="&lt;p&gt;Yeah, I agree with Rachel.  If you can get 5 digits on Stack Overflow, you're probably not flipping burgers at McDonald's.&lt;/p&gt;&#xA;" OwnerUserId="5873" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-09T10:56:28.140" LastActivityDate="2011-02-09T10:56:28.140" CommunityOwnedDate="2011-01-17T22:21:44.413" CommentCount="1" />
  <row Id="21112" PostTypeId="2" ParentId="21084" CreationDate="2010-11-24T08:42:57.627" Score="0" ViewCount="" Body="&lt;p&gt;Disclaimer: I'm not a big fan of this test. But I must agree that failing it is a pretty good indication we don't know OO enough to state on our resume that we know OO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A small exercice that requires just few minutes to complete for someone that know OO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question is: &lt;strong&gt;&quot;What is the output on the following code?&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;using System;&#xA;&#xA;namespace Polymorphism&#xA;{&#xA;    class Animal&#xA;    {&#xA;        public void MakeSound() { Console.WriteLine(&quot;bip&quot;); }&#xA;        public virtual void MakeSound2() { Console.WriteLine(&quot;bip&quot;); }&#xA;        public void MakeSound3() { Console.WriteLine(&quot;bip&quot;); }&#xA;    }&#xA;&#xA;    class Dog : Animal&#xA;    {&#xA;        public void MakeSound() { Console.WriteLine(&quot;woof&quot;); }&#xA;        public override void MakeSound2() { Console.WriteLine(&quot;woof&quot;); }&#xA;        public new void MakeSound3() { Console.WriteLine(&quot;woof&quot;); }&#xA;    }&#xA;&#xA;    class Test&#xA;    {&#xA;        static void Main(string[] args)&#xA;        {&#xA;            Animal animal;&#xA;            Dog dog;&#xA;&#xA;            animal = new Animal();&#xA;            dog = new Dog();&#xA;            animal.MakeSound();&#xA;            dog.MakeSound(); &#xA;&#xA;            animal = new Dog();&#xA;            animal.MakeSound();&#xA;&#xA;            animal = new Animal();&#xA;            dog = new Dog();&#xA;            animal.MakeSound2();&#xA;            dog.MakeSound2();&#xA;&#xA;            animal = new Dog();&#xA;            animal.MakeSound2();&#xA;&#xA;            animal = new Animal();&#xA;            dog = new Dog();&#xA;            animal.MakeSound3();&#xA;            dog.MakeSound3();&#xA;&#xA;            animal = new Dog();&#xA;            animal.MakeSound3();&#xA;&#xA;            Console.ReadKey();&#xA;        }&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Oh and if you are a real a***ole, you can add this just before the &lt;code&gt;Console.ReadKey();&lt;/code&gt; statement:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    dog = new Animal();&#xA;    dog.MakeSound3();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And if being an a***ole is not enough, add this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    dog = (Dog)new Animal();&#xA;    dog.MakeSound3();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-24T08:42:57.627" CommentCount="2" />
  <row Id="21113" PostTypeId="2" ParentId="7806" CreationDate="2010-11-24T08:44:12.447" Score="2" ViewCount="" Body="&lt;p&gt;a map of the Internet (obviously out of date even before it finished rendering)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/xL06P.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-24T08:44:12.447" />
  <row Id="21114" PostTypeId="2" ParentId="21071" CreationDate="2010-11-24T08:44:41.123" Score="1" ViewCount="" Body="&lt;p&gt;I normally take a Spiral notebook to the meeting. We hold lots of phone conference as well as face to face meeting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My bad experience is, I hardly use the notes I take down. Maybe it's due to nature of work I do or its just me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My experience says, it's not really worth taking notes during such meetings. As you are noting down points, you may miss out on something important. At least this happens to me. Usually, we have meeting minutes mailed out after the meeting and that serves the purpose of note taking. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need to note down something elaborate, it's best to have those items available on requirements doc, which is done in most cases anyway. At best, you would be noting down few small points and the organization of those would hardly matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the talks in the meeting are the only source of communication, then it's best to have the whole conversation recorded.&lt;/p&gt;&#xA;" OwnerUserId="1560" LastActivityDate="2010-11-24T08:44:41.123" />
  <row Id="21115" PostTypeId="2" ParentId="20965" CreationDate="2010-11-24T08:49:38.103" Score="2" ViewCount="" Body="&lt;p&gt;I can't say enough good things about &lt;a href=&quot;http://valgrind.org&quot; rel=&quot;nofollow&quot;&gt;Valgrind&lt;/a&gt; for memory error detection, spotting leaks, profiling (massif), not mentioning helgrind / cachegrind. Used in combination with a debugger such as GDB, many problems become shallow and trivial to correct.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, Valgrind isn't yet 'officially' ported to all popular embedded architectures, but it isn't far away. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing I recommend doing is taking advantage of the fact that GCC is self hosting, it can compile itself for an array of architectures. Being able to manage cross compilation is very important - the system that actually compiles your code is quite often not the system that will actually run it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, get as intimate as you can with how malloc() is implemented. You might want to implement a garbage collector, use a static pool in lieu of asking the kernel for each block or do your own profiling / debugging. This coincides with the reference you made to alternative C library implementations. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-24T08:49:38.103" />
  <row Id="21116" PostTypeId="2" ParentId="18181" CreationDate="2010-11-24T08:55:33.980" Score="2" ViewCount="" Body="&lt;p&gt;database design cannot be done completely without considering how the data will be used, so here's a short list of steps:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;write short sentences capturing the relationship among entities&lt;/li&gt;&#xA;&lt;li&gt;draw an entity-relationship diagram representing the sentences&lt;/li&gt;&#xA;&lt;li&gt;create a normalized logical data model from the E-R diagram&lt;/li&gt;&#xA;&lt;li&gt;make a CRUD matrix for applications and entities&lt;/li&gt;&#xA;&lt;li&gt;use the matrix to verify coverage of the lifecycle of each entity&lt;/li&gt;&#xA;&lt;li&gt;extract subschemas for each application&lt;/li&gt;&#xA;&lt;li&gt;examine the navigation paths over the subschemas for each major/CRUD operation&lt;/li&gt;&#xA;&lt;li&gt;consider the reports that will be required&lt;/li&gt;&#xA;&lt;li&gt;design the physical data model based on all of the above; denormalize, partition, and use star schemas where appropriate&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-24T08:55:33.980" />
  <row Id="21117" PostTypeId="1" CreationDate="2010-11-24T08:58:36.817" Score="3" ViewCount="200" Body="&lt;p&gt;Hi All,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From my exp. I had so many dull days.When I got frustrated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found followings are &lt;strong&gt;feel good&lt;/strong&gt; for me.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Problem solving + SO , this is really one of the most important factor. It gives self satisfaction and confident sometime.&lt;/li&gt;&#xA;&lt;li&gt;Listening Music.&lt;/li&gt;&#xA;&lt;li&gt;A small toys ,playing around my workarea&#xA;&lt;img src=&quot;http://labs.lavjaveler.com/wp-content/uploads/2007/10/rubber-duck.jpg&quot; alt=&quot;alt text&quot;&gt; &amp;amp; &lt;img src=&quot;http://i.imgur.com/GEGRS.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/li&gt;&#xA;&lt;li&gt;doing challenging task and accomplishing it , getting appreciation.&lt;/li&gt;&#xA;&lt;li&gt;small chat with friends.&lt;/li&gt;&#xA;&lt;li&gt;Cold drinks [non alcoholic :p]&lt;/li&gt;&#xA;&lt;li&gt;Chocolates.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I would like to know what are yours..&lt;/p&gt;&#xA;" OwnerUserId="1038" LastEditorUserId="1038" LastEditorDisplayName="" LastEditDate="2010-11-24T10:09:46.600" LastActivityDate="2010-11-24T10:09:46.600" ClosedDate="2010-11-24T12:07:56.857" Title="What are the &quot;feel good&quot; factors for programmers ?" Tags="&lt;productivity&gt;&lt;self-improvement&gt;&lt;work-environment&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="21118" PostTypeId="1" AcceptedAnswerId="21119" CreationDate="2010-11-24T09:01:33.710" Score="16" ViewCount="884" Body="&lt;p&gt;A link and a quick explanation why would be very helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;General tech news, I mean not like InfoQ which is too technical. Probably much more like P.SE than SO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: site should help developers gain general knowledge about the industry, technologies, inventions, etc. Much like when we listen to the news every morning in our car to know what is happening in our world. But target audience must be either programmmers, geeks or any other persons interested in technology.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-24T09:08:50.927" LastActivityDate="2010-12-02T18:52:32.613" Title="What is the general tech news website every programmer should read?" Tags="&lt;information&gt;" AnswerCount="23" CommentCount="7" FavoriteCount="17" />
  <row Id="21119" PostTypeId="2" ParentId="21118" CreationDate="2010-11-24T09:03:05.547" Score="9" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://news.ycombinator.com/news&quot; rel=&quot;nofollow&quot;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It comes from a broadly tech entrepreneur position so combines interesting tech stories with relevant business and general stories.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because the stories that make the front page are submitted and voted on by the community they tend to be more relevant and interesting than those which are run by many news sites who aren't necessarily as well placed to judge these things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The comments/discussions can be entertaining too.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-24T09:03:05.547" />
  <row Id="21120" PostTypeId="2" ParentId="21117" CreationDate="2010-11-24T09:03:52.927" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Doing something meaningful.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When i fail to accomplish something meaningful at work, i really really need to compensate for that in my spare time with something creative like programming, writing, drawing, cooking or even cleaning up my flat.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-11-24T09:03:52.927" />
  <row Id="21121" PostTypeId="2" ParentId="21118" CreationDate="2010-11-24T09:04:22.710" Score="5" ViewCount="" Body="&lt;p&gt;I feel like &lt;a href=&quot;http://reddit.com/r/programming&quot; rel=&quot;nofollow&quot;&gt;http://reddit.com/r/programming&lt;/a&gt; has high quality, interesting and up-to-date content.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea of reading tech news sites is to keep yourself entertained with latest technologies and discoveries. New interesting programming paradigms, people solving interesting database issues or just simple inspiring blogs by successful entrepreneurs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reddit brings all of this.&lt;/p&gt;&#xA;" OwnerUserId="3306" LastEditorUserId="3306" LastEditorDisplayName="" LastEditDate="2010-11-24T09:09:45.653" LastActivityDate="2010-11-24T09:09:45.653" CommentCount="5" />
  <row Id="21122" PostTypeId="2" ParentId="21118" CreationDate="2010-11-24T09:04:41.210" Score="10" ViewCount="" Body="&lt;h1&gt;none&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;general tech news sites (mashable.com, et al) rarely have anything of use to me&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT 1: &lt;a href=&quot;http://reddit.com/r/programming&quot; rel=&quot;nofollow&quot;&gt;http://reddit.com/r/programming&lt;/a&gt;  is certainly interesting, but not critical&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT 2: note the question is ...that &lt;strong&gt;every&lt;/strong&gt; programmer should read. &lt;em&gt;There is no such site&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-11-24T09:11:48.677" LastActivityDate="2010-11-24T09:11:48.677" CommentCount="7" />
  <row Id="21123" PostTypeId="2" ParentId="21117" CreationDate="2010-11-24T09:10:07.913" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Music is magic&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I know very few people not affected positively by music.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-24T09:10:07.913" />
  <row Id="21124" PostTypeId="2" ParentId="21118" CreationDate="2010-11-24T09:10:35.870" Score="1" ViewCount="" Body="&lt;p&gt;I keep up on &lt;a href=&quot;http://www.groklaw.net/&quot; rel=&quot;nofollow&quot;&gt;Groklaw&lt;/a&gt; from time to time, patent wars (like it or not) influence how many of us do our jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond that, my news reader is populated with several dozen individual blogs that I've discovered over the years. Like some others who have answered, I really don't care for mash ups, I find them more distracting than useful and informative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I still subscribe to (and participate in) several newsgroups, such as comp.lang.c, comp.unix.programmer and others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know me, and I know how much work I &lt;strong&gt;&lt;em&gt;won't&lt;/em&gt;&lt;/strong&gt; get done in the name of 'staying informed', so I do try to limit my subscriptions.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-24T09:10:35.870" CommentCount="1" />
  <row Id="21125" PostTypeId="1" AcceptedAnswerId="21154" CreationDate="2010-11-24T09:12:01.297" Score="9" ViewCount="325" Body="&lt;p&gt;A common expression you hear is &quot;If all you have is a hammer, everything looks like a nail&quot;. It appears on Wikipedia as the law of the instrument.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also manifests in IT, with developers, that, once they learned something, they use it... everywhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But how to truly avoid this if all you know of is a hammer at some point ?&lt;/p&gt;&#xA;" OwnerUserId="2657" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2010-11-26T22:39:42.690" LastActivityDate="2010-11-26T23:52:34.630" Title="How do you avoid the law of the instrument?" Tags="&lt;self-improvement&gt;&lt;recommendations&gt;&lt;bad-programmer&gt;" AnswerCount="9" CommentCount="8" FavoriteCount="1" />
  <row Id="21126" PostTypeId="2" ParentId="21118" CreationDate="2010-11-24T09:14:02.233" Score="2" ViewCount="" Body="&lt;p&gt;I mostly read &lt;a href=&quot;http://news.ycombinator.com/&quot; rel=&quot;nofollow&quot;&gt;Hacker News&lt;/a&gt; and &lt;a href=&quot;http://reddit.com/r/programming&quot; rel=&quot;nofollow&quot;&gt;Programming Reddit&lt;/a&gt;. There is some overlap, while the former leans more towards startups and business.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-11-24T09:14:02.233" />
  <row Id="21127" PostTypeId="2" ParentId="17214" CreationDate="2010-11-24T09:14:21.967" Score="1" ViewCount="" Body="&lt;p&gt;Knuth's seminal work is the most popular reference that programmers &lt;em&gt;intend&lt;/em&gt; to read, or finish reading. Someday.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-24T09:14:21.967" CommunityOwnedDate="2011-02-26T01:53:06.803" CommentCount="3" />
  <row Id="21128" PostTypeId="1" AcceptedAnswerId="21130" CreationDate="2010-11-24T09:16:23.253" Score="6" ViewCount="308" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First off, I apologize cause I don't know how to make a community thread; so someone help me out please.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a developer, across many platforms, technologies and even on an infrastructure level; I always find myself asking, when am I doing TOO much?!?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's been a never ending learning process, since I started. One (1) thing I learned is that requirements are barely valid for an extended period of time, and as such a little foresight may go a long way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But where is the balance, and how do you know when you're losing time, not gaining it?!&lt;/p&gt;&#xA;" OwnerUserId="5873" LastActivityDate="2010-11-26T09:55:27.687" Title="When does it become overkill?" Tags="&lt;development-process&gt;&lt;scalability&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="3" />
  <row Id="21129" PostTypeId="2" ParentId="21128" CreationDate="2010-11-24T09:27:30.853" Score="3" ViewCount="" Body="&lt;p&gt;For me I like the approach Kent Beck puts forward in XP (not sure if it's &quot;his&quot; idea or someone else's but that's where I first heard it):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;It's hard enough to solve today's problems without trying to work out what tomorrow's problems are and solve them too.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developers can spend a lot of time on solutions for requirements that don't exist, edge cases which will never occur or even genuine problems where the impact of the problem is significantly less than the cost of preventing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is time that could be put into things users will really want and use, things which will give them benefits that will massively outweigh even the inconvenience that will be caused in the unlikely event that one of these things actually happens.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond even this non-optimal outcome for the user, the impact on the developer of over engineering in this way tends to be over complex code that is harder to support and harder to enhance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for me if you know, or can be fairly certain, that something is a requirement or is going to cause a problem then address it, if not then don't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may have to come back and rework it when it turns out that there was a wider requirement than you originally implemented, but generally the total effort you put in across the project will still be lower because in most cases that won't happen.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-24T09:36:23.727" LastActivityDate="2010-11-24T09:36:23.727" CommentCount="2" />
  <row Id="21130" PostTypeId="2" ParentId="21128" CreationDate="2010-11-24T09:29:15.993" Score="10" ViewCount="" Body="&lt;p&gt;You are doing too much &lt;strong&gt;when the average developer can't understand what you did&lt;/strong&gt; by reading your code.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do frequent code reviews with your team.&lt;/li&gt;&#xA;&lt;li&gt;Discuss with the architectures, technologies or patterns you plan to use. (in daily stand-up meetings if you have them)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I fight all &lt;strong&gt;CV driven &quot;architects&quot;&lt;/strong&gt; I encounter. I wish the &lt;a href=&quot;http://programmers.stackexchange.com/questions/19851/how-to-handle-conflicts-between-developers-in-your-team/19857#19857&quot;&gt;dome&lt;/a&gt; existed! ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe the world is wasting a huge pile of money that we could use for improving our (programmer's) life instead.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-24T09:35:41.963" LastActivityDate="2010-11-24T09:35:41.963" CommentCount="12" />
  <row Id="21131" PostTypeId="2" ParentId="21125" CreationDate="2010-11-24T09:35:25.460" Score="7" ViewCount="" Body="&lt;p&gt;Tim Post nailed it in his comment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure that you either learn &lt;strong&gt;the basics&lt;/strong&gt; of how to use other tools, or are at least aware enough of them that you know what they'd be good for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This awareness will make you better able to judge the weaknesses of the tools you are using.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing to realise is that sometimes using a non-ideal tool that you know how to use well, is better than you using the perfect tool badly.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-24T10:07:47.637" LastActivityDate="2010-11-24T10:07:47.637" CommentCount="5" />
  <row Id="21132" PostTypeId="2" ParentId="21128" CreationDate="2010-11-24T09:45:08.680" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;When the processes overtake the results.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Too many times have we seen that if the developers are focusing more on the process rather than the results (as in quality, making the deadline, etc.) bad things commence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is why it should be never forgotten that the purpose of code reviews, design patterns, etc. is to make the code better, but they are not the target themselves.&lt;/p&gt;&#xA;" OwnerUserId="8454" LastActivityDate="2010-11-24T09:45:08.680" CommentCount="1" />
  <row Id="21133" PostTypeId="1" AcceptedAnswerId="21165" CreationDate="2010-11-24T09:47:05.387" Score="13" ViewCount="464" Body="&lt;p&gt;Triggered by &lt;a href=&quot;http://programmers.stackexchange.com/questions/20932/whats-the-real-overhead-of-tdd-once-the-entire-team-is-used-to-it&quot;&gt;this thread&lt;/a&gt;, I (again) am thinking about finally using unit tests in my projects. A few posters there say something like &quot;Tests are cool, if they are good tests&quot;. My question now: What are &quot;good&quot; tests?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my applications, the main part often is some kind of numerical analysis, depending on large amounts of observed data, and resulting in a fit function that can be used to model this data. I found it especially hard to construct tests for these methods, since the number of possible inputs and results are too large to just test every case, and the methods themselves are often quite longish and can not be easily be refactored without sacrificing performance. I am especially interested in &quot;good&quot; tests for this kind of method.&lt;/p&gt;&#xA;" OwnerUserId="7769" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-24T12:57:56.130" LastActivityDate="2010-11-24T16:12:23.660" Title="How to write &quot;good&quot; unit tests?" Tags="&lt;unit-testing&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="4" />
  <row Id="21134" PostTypeId="2" ParentId="20927" CreationDate="2010-11-24T09:56:10.840" Score="11" ViewCount="" Body="&lt;p&gt;Two questions that have elicited interesting whiteboard discussions for me are&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&quot;Please can you explain in as much detail as you like how a web browser gets a generated page&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;Please explain how Java Hibernate works&quot;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;They start off simple and then get progressivly more complex.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-23T07:41:48.600" LastActivityDate="2010-12-23T07:41:48.600" CommunityOwnedDate="2011-02-15T14:41:29.790" CommentCount="6" />
  <row Id="21135" PostTypeId="2" ParentId="10087" CreationDate="2010-11-24T09:59:55.237" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Sales department selling nonexisting features as if we already implemented them.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This leads to ignorant deadlines without estimates and feature cuts in the end.&lt;/p&gt;&#xA;" OwnerUserId="3814" LastActivityDate="2010-11-24T09:59:55.237" CommunityOwnedDate="2010-11-24T09:59:55.237" CommentCount="2" />
  <row Id="21136" PostTypeId="2" ParentId="21133" CreationDate="2010-11-24T10:00:49.777" Score="4" ViewCount="" Body="&lt;p&gt;Create tests for corner cases, like an test set containing only the minimum number of inputs (possible 1 or 0) and a few standard cases. Those unit tests are not a replacement for thorough acceptance tests, nor should they be.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-24T10:00:49.777" />
  <row Id="21137" PostTypeId="2" ParentId="21117" CreationDate="2010-11-24T10:08:11.670" Score="6" ViewCount="" Body="&lt;p&gt;For me there are several things, but one stands out:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Typing a lot of code without compiling, pressing F5 and all things magically work&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(this is very rare though ;))&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Solving that hard to find bug&lt;/li&gt;&#xA;&lt;li&gt;Receiving compliments about your work (also very rare ;))&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3814" LastActivityDate="2010-11-24T10:08:11.670" CommentCount="3" />
  <row Id="21138" PostTypeId="2" ParentId="21125" CreationDate="2010-11-24T10:21:05.280" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Stay informed&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't need to be a guru in the whole tools department, but if you stay informed, at least you've heard of the screwdriver and know where to look if you need it some day!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read blogs, go to developer days, try other languages at home for fun or be active on StackOverflow? ;)&lt;/p&gt;&#xA;" OwnerUserId="3814" LastActivityDate="2010-11-24T10:21:05.280" />
  <row Id="21139" PostTypeId="2" ParentId="21133" CreationDate="2010-11-24T10:23:14.403" Score="5" ViewCount="" Body="&lt;p&gt;Good unit tests is essentially the specification in runnable form:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;describe the behavior of the code corresponding to use cases&lt;/li&gt;&#xA;&lt;li&gt;cover technical corner cases (what happens if null is passed) - if a test is not present for a corner case, the behavior is undefined.&lt;/li&gt;&#xA;&lt;li&gt;break if the code tested change away from the specification&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I have found Test-Driven-Development to be very well suited for library routines as you essentially write the API first, and THEN the actual implementation.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-24T10:23:14.403" />
  <row Id="21140" PostTypeId="2" ParentId="21133" CreationDate="2010-11-24T10:28:16.830" Score="8" ViewCount="" Body="&lt;p&gt;A good unit test doesn't mirror the function it is testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a greatly simplified example, consider you have a function that returns an average of two int's. The most comprehensive test would call the function and check if a result is in fact an average. This doesn't make any sense at all: you are mirroring (replicating) the functionality you are testing. If you made a mistake in the main function, you will make the same mistake in the test.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, if you find yourself replicating the main functionality in the unit test, it's  a likely sign that you are wasting your time.&lt;/p&gt;&#xA;" OwnerUserId="5635" LastEditorUserId="5635" LastEditorDisplayName="" LastEditDate="2010-11-24T10:47:48.943" LastActivityDate="2010-11-24T10:47:48.943" CommentCount="2" />
  <row Id="21141" PostTypeId="1" AcceptedAnswerId="21301" CreationDate="2010-11-24T10:29:41.857" Score="3" ViewCount="285" Body="&lt;p&gt;First of all, please do not laugh.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We're in a dispute with a STUPID utility company here in Bulgaria over a public procurement. They kicked us out of a tender with the following ridiculous argument.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In the RFP they asked for resumes for a team of &quot;software development specialists&quot;. We provided resumes for one programmer, plus PM, BA, QA, architect... We wrote the team would include more programmers, but didn't provide more resumes since there was a limit&lt;/li&gt;&#xA;&lt;li&gt;At the first sitting of their eval committee, they decided they will interpret &quot;software specialist&quot; to mean &quot;programmer&quot;. (It is unlawful to change RFP terms post-factum, but they did it.) &lt;strong&gt;Their own programmers voted against such interpretation, but it still passed.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;They kicked us out because we provided only one programmer resume.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;We've already collected written opinions from several distinguished colleagues. But now we want to complement it with some book quotes. The question is so obvious and generic that I am at a loss what to google for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, can you give a lucid quote from a respected book proving this obvious statement?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: Yes, courts in Bulgaria are ridiculously ineffective, but it's no laughing matter. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Someone over at Stackexchange asked &quot;do you really want a client that doesn't want you?&quot;, to which I answered &quot;Do you really want to live in a country where corruption reigns unchecked?&quot;&lt;/p&gt;&#xA;" OwnerUserId="8489" LastEditorUserId="8489" LastEditorDisplayName="" LastEditDate="2010-11-24T10:57:38.167" LastActivityDate="2010-11-24T21:26:00.327" ClosedDate="2010-11-25T09:04:40.760" Title="Prove that &quot;software development specialist&quot; means more than &quot;programmer&quot;" Tags="&lt;software-engineering&gt;&lt;software-development&gt;" AnswerCount="4" CommentCount="5" />
  <row Id="21142" PostTypeId="1" AcceptedAnswerId="21194" CreationDate="2010-11-24T10:31:32.973" Score="0" ViewCount="145" Body="&lt;p&gt;In several projects we have been using the following layers:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Action (has 1 or more managers)&lt;/li&gt;&#xA;&lt;li&gt;Manager(has 1 or more Daos)&lt;/li&gt;&#xA;&lt;li&gt;Dao&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;But most of the time the manager only calls the dao. We do use the manager class to prepare the date to be sent to the db or to prepare the data to be sent to the action(is this a good practice?).&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What are the responsibilities of a Manager and of the Dao classes?&lt;/li&gt;&#xA;&lt;li&gt;Do we have to have a manager for every dao or can we just use the dao directly?&lt;/li&gt;&#xA;&lt;li&gt;How do I handle situations where I need to use the functionality implemented in several Managers?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;PS: I know that there is no golden hammer so I'll narrow it to the types of apps we do, generally webapps for banks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you&lt;/p&gt;&#xA;" OwnerUserId="6614" LastEditorUserId="6614" LastEditorDisplayName="" LastEditDate="2010-11-24T10:41:31.977" LastActivityDate="2010-11-24T16:01:21.953" Title="What are the responsibilities of a Manager and of the Dao Layers" Tags="&lt;best-practices&gt;&lt;design-patterns&gt;" AnswerCount="2" />
  <row Id="21143" PostTypeId="2" ParentId="21141" CreationDate="2010-11-24T10:33:16.063" Score="0" ViewCount="" Body="&lt;p&gt;Sounds like typical bureaucracy of any large corporation and country. &lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-24T10:33:16.063" CommentCount="5" />
  <row Id="21144" PostTypeId="2" ParentId="21133" CreationDate="2010-11-24T10:49:21.153" Score="2" ViewCount="" Body="&lt;p&gt;I've seen lots of cases where people invest a tremendous amount of effort writing tests for code that is seldom entered, and not writing tests for code that is entered frequently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before sitting down to write any tests, you should be looking at some kind of a call graph, to make sure you plan adequate coverage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, I don't believe in writing tests just for the sake of saying &quot;Yeah, we test that&quot;. If I'm using a library that is dropped in and will remain immutable, I'm not going to waste  a day writing tests to make sure an API that will never change works as expected, even if certain parts of it score high on a call graph.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-24T10:49:21.153" CommentCount="3" />
  <row Id="21145" PostTypeId="2" ParentId="21141" CreationDate="2010-11-24T10:58:55.607" Score="3" ViewCount="" Body="&lt;p&gt;I don't think there is any &quot;hard&quot; definition on what a programmer is in the way at example the biology scientifically can differentiate between a fish and a bird. To me, &quot;software development specialist&quot; is a very broad term that can mean anything from a programmer to a person involved with planning/organization of the development process as a whole (and who is incapable of programming himself). Some might even say that a graphic artist is a specialist adding necessary visuals to the software development process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The term is really ill-defined. Even &quot;programmer&quot; is a fuzzy term. Writing code seems to be part of it, but can script-writing already be called programming? A neighbour of mine told me she was a programmer now since she had recorded her first Excel macro. So using such terms is a messy affair. To me it appears the term &quot;programmer&quot; is going out of fashion and is replaced with &quot;software developer&quot; (at least according to my last two job descriptions). A &quot;specialised software developer&quot; in that sense would be a programmer focussed on database programming, GUI programming etc., but even that sounds different to me than &quot;software development specialist&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know of a scientific source that deals with such definitions. Maybe your government has entitled some authorities to grant and develop job titles, as well as taking tests for candidates who want to take such professions. If so, you should look there for formal definitions. But I guess your best bet is to prove that the RFP used unspecific terms and has to be redone because of it. I bet they won't be able to come up with a sharp definition of what they listed as requirements.&lt;/p&gt;&#xA;" OwnerUserId="8316" LastActivityDate="2010-11-24T10:58:55.607" CommentCount="1" />
  <row Id="21146" PostTypeId="2" ParentId="21133" CreationDate="2010-11-24T11:09:45.047" Score="2" ViewCount="" Body="&lt;p&gt;Not quite so TDD, but after you have gone into QA you can improve your tests by setting up test cases to reproduce any bugs that come up during the QA process. This can be particularly valuable when you're going into longer term support and you start getting to a place where you risk people inadvertantly reintroducing old bugs. Having a test in place to capture that is particularly valuable.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-24T11:09:45.047" />
  <row Id="21147" PostTypeId="2" ParentId="21133" CreationDate="2010-11-24T11:43:57.350" Score="1" ViewCount="" Body="&lt;p&gt;I try to have every test only test one thing. I try to give each test a name like shouldDoSomething(). I try to test behaviour, not implementation. I only test public methods.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually have one or a few tests for success, and then maybe a handfull of tests for failure, per public method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use mock-ups a lot. A good mock-framework would probably be quite helpfull, such as PowerMock. Although I'm not using any yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If class A uses another class B, I'd add an interface, X, so that A doesn't use B directly. Then I'd create mock-up XMockup and use it instead of B in my tests. It really helps speeding up test execution, reducing test complexity, and also reduces the number of tests I write for A since I don't have to cope with the peculiarities of B. I can for example test that A calls X.someMethod() instead of a side effect of calling B.someMethod().&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep you test code clean as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When using an API, such as a database layer, I'd mock it and enable the mock-up to throw an exception at every possible opportunity on command. I then run the tests one without throwing, and the in a loop, each time throwing an exception at the next opportunity until the test suceeds again. A bit like the memory tests available for Symbian.&lt;/p&gt;&#xA;" OwnerUserId="8494" LastActivityDate="2010-11-24T11:43:57.350" />
  <row Id="21148" PostTypeId="1" CreationDate="2010-11-24T11:57:16.797" Score="1" ViewCount="383" Body="&lt;p&gt;Like the title says, what is the best way to learn programming if you've never done so before? Should one start explaining variables, sequential execution, objects, algorithms; where does one start? Of course, this may differ from person to person, but maybe there is a best &quot;average&quot; way which helps the most amount of people on average. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I myself don't actually remember the time when I started programming, which is why I'm interested of this. Also, I've often wondered how programmering to newcomers should be taught in the best way.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-11-24T12:00:41.867" LastActivityDate="2010-11-24T15:24:32.967" Title="What is the best way to learn programming if you've never done so before?" Tags="&lt;learning&gt;&lt;programming&gt;" AnswerCount="6" />
  <row Id="21149" PostTypeId="2" ParentId="21148" CreationDate="2010-11-24T12:00:35.137" Score="2" ViewCount="" Body="&lt;p&gt;I learnt swimming very quickly thanks to the father of my best friend. He throwed me in the pool ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See my &lt;a href=&quot;http://programmers.stackexchange.com/questions/8721/how-do-i-develop-my-coding-skills/8723#8723&quot;&gt;previous answer&lt;/a&gt; on the subject.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-11-24T12:01:19.230" LastActivityDate="2010-11-24T12:01:19.230" CommentCount="2" />
  <row Id="21150" PostTypeId="2" ParentId="21141" CreationDate="2010-11-24T12:03:29.963" Score="2" ViewCount="" Body="&lt;p&gt;Learn your lesson: Next time, write &quot;software development specialist&quot; on all resumes. That's how bureaucracy works. D'oh!&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-24T12:03:29.963" />
  <row Id="21151" PostTypeId="2" ParentId="21148" CreationDate="2010-11-24T12:05:59.617" Score="6" ViewCount="" Body="&lt;p&gt;Well, start programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ok, if you need advice books and tutorials for languages might help, but isn't it all part of programming, even after 10 or more years of doing so?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to start :&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Choose a project, something that is simple, like a very simple (textual) game, or a (textual) agenda tool.&lt;/li&gt;&#xA;&lt;li&gt;Choose a language. For this one, a lot of people say Python is an excellent first language, but you can find other languages that might fit your project. Python is good choice. If you have no idea, use this one.&lt;/li&gt;&#xA;&lt;li&gt;Program. Start reading about the language and see what you need to do to get your project done. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Through the process of searching and learning you'll progressively get to the point you feel confident about what programming is about. It's all about experience, once you've got objectives and tools set. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started programming because I wanted to make games. I think having a kind of specific project to build using programming might be the most powerful motivator to start and keep up for a long time.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-11-24T12:05:59.617" CommentCount="2" />
  <row Id="21152" PostTypeId="2" ParentId="21128" CreationDate="2010-11-24T12:07:57.897" Score="1" ViewCount="" Body="&lt;p&gt;Your question is quite open-ended, so I'll interpret it as &quot;doing too much on one part of the project&quot;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, it's easy to spend too much time on something which doesn't really provide much gain for the customer. Often, it is the tiny things such as &quot;Well, it works, but not entirely like I want it too&quot; where the customer probably wouldn't care if it worked this way or another. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When that happens, I should stop it and spent time on things which are more important. It's better that the product works as a whole than not but you have these smaller parts which work perfectly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing tracer code (from &lt;em&gt;Code Complete&lt;/em&gt;) is probably a good idea of avoiding this: You start your project by writing code which connects the whole code - from the GUI (or near to it) all the way to the backend and then back. That way you always have something that works and you don't spent time perfecting the little things until the whole thing runs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But still, it is a matter of discipline and prioritizing.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-11-24T12:07:57.897" CommentCount="1" />
  <row Id="21153" PostTypeId="2" ParentId="21048" CreationDate="2010-11-24T12:08:03.563" Score="4" ViewCount="" Body="&lt;p&gt;Bad. Because its harder to debug. If starting out, use something with a really good symbolic debugger. And keep it simple. C# looks pretty cool. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Some don't like this answer and downvoted it some (considerable) time later. See the full set of comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT2: Please read the comments below. Commenters have pointed out that debugging packages are available. [I do however stand by the answer: given a choice I would rather learn C# than PHP.]&lt;/p&gt;&#xA;" OwnerUserId="6279" LastEditorUserId="6279" LastEditorDisplayName="" LastEditDate="2011-05-31T07:07:11.027" LastActivityDate="2011-05-31T07:07:11.027" CommentCount="20" />
  <row Id="21154" PostTypeId="2" ParentId="21125" CreationDate="2010-11-24T12:12:08.040" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Expect things to go smoothly&lt;/strong&gt;. If you have an object X and a hammer H, and H fails to drive X into a plank of wood W, it must become obvious to you that X is not a nail, and H is not the right tool to drive X into W.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-24T12:12:08.040" CommentCount="6" />
  <row Id="21155" PostTypeId="2" ParentId="21148" CreationDate="2010-11-24T12:12:24.570" Score="1" ViewCount="" Body="&lt;p&gt;If you learn a spoken language, you first learn a vocabulary and then you learn how to combine them (gramar). I don't think it's much different with prorgamming: you first learn some fundamentals and then how to combine them ... like types and control structures.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-11-24T12:12:24.570" CommunityOwnedDate="2010-11-24T12:12:24.570" />
  <row Id="21156" PostTypeId="2" ParentId="20867" CreationDate="2010-11-24T12:28:07.963" Score="1" ViewCount="" Body="&lt;p&gt;A four-year bachelor's degree tells me that a candidate can start a long-term project and see it all the way through to completion, in the face of large quantities of chickensh*t and lots of temptations to go do something more lucrative and more fun.  The ability to see something all the way through, and not quit and leave my company in the lurch, is IMPORTANT.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The candidate who doesn't have that degree has to make that showing some other way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, it at least used to be the case that a four-year bachelor's degree in Computer Science meant that the candidate had been exposed to a certain body of knowledge.  As ONE example, the candidate can reasonably be expected to know what mutual exclusion is, and why it is important, and what deadlock is, why it is bad, and how to keep from getting h0zed by it.  The non-degree candidate may have holes in his knowledge base, he may not even be aware of those holes, and filling those holes may cost my company a lot more money than hiring the degree candidate would.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Admittedly, I work in mission-critical embedded real-time systems, systems on which human lives routinely depend.  This isn't Web 2.0.  My recent work has been voice and data systems for combat helicopters.  That system is on the Minimum Equipment List: If it isn't working on the ramp, the helicopter doesn't leave the ground.  If it fails in flight, the pilot declares an emergency and lands the bird as soon as he can.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-11-24T12:28:07.963" />
  <row Id="21158" PostTypeId="2" ParentId="21148" CreationDate="2010-11-24T13:00:57.033" Score="1" ViewCount="" Body="&lt;p&gt;Have a look at scratch.  It allows a LOT of kids to program without having to do all the tedious things:  &lt;a href=&quot;http://scratch.mit.edu/&quot; rel=&quot;nofollow&quot;&gt;http://scratch.mit.edu/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-24T13:00:57.033" />
  <row Id="21159" PostTypeId="2" ParentId="20927" CreationDate="2010-11-24T13:08:30.353" Score="1" ViewCount="" Body="&lt;p&gt;My favorite is to start with asking the prototype of printf. Then given a low level API printc(char c), which will print one character, implement printf. Gives all sorts of interesting responses like the stack is part of the CPU. As you might have guessed I am from a C and embedded background.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-11-24T13:08:30.353" CommunityOwnedDate="2011-02-15T14:41:29.790" CommentCount="6" />
  <row Id="21160" PostTypeId="2" ParentId="21082" CreationDate="2010-11-24T13:23:03.370" Score="9" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.116.9158&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Slowsort&lt;/strong&gt;&lt;/a&gt; works by multiply and surrender (as opposed to divide and conquer). It is interesting because it is provably the least efficient sorting algorithm that can be built (asymptotically, and with the restriction that such an algorithm, while being slow, must still all the time be working towards a result).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This offsets it from bogosort because in the best case, bogosort is quite efficient – namely, when the array is already sorted. Slowsort doesn’t “suffer” from such a best-case behaviour. Even in its best case, it still has runtime &lt;img src=&quot;http://upload.wikimedia.org/math/7/7/9/7791da4a380e381c3e740b3bd5bdab55.png&quot; alt=&quot;$\Omega(n^\frac{\log_2n}{2+\epsilon})$&quot;&gt;  for &lt;i&gt;ϵ&lt;/i&gt; &gt; 0.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is its pseudocode, adapted from the German &lt;a href=&quot;http://de.wikipedia.org/wiki/Slowsort&quot; rel=&quot;nofollow&quot;&gt;Wikipedia article&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function slowsort(A, i, j):&#xA;  if i &amp;gt;= j: return&#xA;&#xA;  m = (i + j) / 2&#xA;  slowsort(A, i, m)&#xA;  slowsort(A, m + 1, j)&#xA;&#xA;  if A[j] &amp;lt; A[m]:&#xA;    swap(A[j], A[m])&#xA;&#xA;  slowsort(A, i, j - 1)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2366" LastActivityDate="2010-11-24T13:23:03.370" CommentCount="3" />
  <row Id="21161" PostTypeId="2" ParentId="8966" CreationDate="2010-11-24T13:23:22.810" Score="3" ViewCount="" Body="&lt;p&gt;I don't remember the details exactly, but this is the general idea. And I've only done it once, but what I did was separate the re-entrant code from the code performing the task, using an interface to be able to mock the task class.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I designed my mock-up to be able to lock on a call so that I know the thread is in the critical section, and then call it again and verify that it is waiting, before releasing the first thread and finish cleanly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure that would work for more complex scenarios, but it helps preserve the behaviour during refactorings.&lt;/p&gt;&#xA;" OwnerUserId="8494" LastEditorUserId="8494" LastEditorDisplayName="" LastEditDate="2010-11-25T06:22:05.207" LastActivityDate="2010-11-25T06:22:05.207" CommentCount="1" />
  <row Id="21162" PostTypeId="2" ParentId="20927" CreationDate="2010-11-24T13:27:27.530" Score="14" ViewCount="" Body="&lt;p&gt;I ask the candidate to &lt;strong&gt;design a solution to a problem I actually encountered&lt;/strong&gt; in my day to day work. Doing so, I try to create a dialog between me and the candidate. I try to discuss about the design he is building as if I had never thought about the problem before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I try to evaluate is whether we are able to understand each other, and whether we can talk about a technical problem without confusion.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Concrete example&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;(For a java desktop developper)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Design an API to handle the &lt;strong&gt;navigation history of a web browser&lt;/strong&gt; (previous page, next page, list the 10 previous pages), and that can be reusable in many parts of the application (here I give concrete examples in our app). Then, sketch up an implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like this one, because it's simple enough, it's easy to illustrate, it can be solved step by step (add additional behaviors without breaking everything), it allows to talk about edge cases and error handling, and it also allows to talk about data structures.&lt;/p&gt;&#xA;" OwnerUserId="3527" LastActivityDate="2010-11-24T13:27:27.530" CommunityOwnedDate="2011-02-15T14:41:29.790" />
  <row Id="21163" PostTypeId="2" ParentId="16454" CreationDate="2010-11-24T13:53:03.250" Score="1" ViewCount="" Body="&lt;p&gt;Most document conversion systems would most likely be Unix libraries/software; you'll most likely want to establish a list of all the file-types that you want to handle and the way you want to handle them (just convert them to a JPEG, convert to a PDF to preserve the text, etc.). You will also need to offload the document processing to a queue of workers so that your web server does not get bogged down. A good overview of this sort of system was written by &lt;a href=&quot;http://omgbloglol.com/post/1381385171/pay-no-attention-to-the-code-behind-the-curtain-the&quot; rel=&quot;nofollow&quot;&gt;Jeremy McAnally about his tldr.it web page summarizing system&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="8342" LastActivityDate="2010-11-24T13:53:03.250" />
  <row Id="21164" PostTypeId="2" ParentId="21093" CreationDate="2010-11-24T13:54:04.280" Score="0" ViewCount="" Body="&lt;p&gt;Certifications are only valuable if you don't have actual experience.  When hiring senior-level people, I ignore their list of certifications entirely.&lt;/p&gt;&#xA;" OwnerUserId="7999" LastActivityDate="2010-11-24T13:54:04.280" />
  <row Id="21165" PostTypeId="2" ParentId="21133" CreationDate="2010-11-24T13:58:16.070" Score="13" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://artofunittesting.com/&quot; rel=&quot;nofollow&quot;&gt;The Art of Unit Testing&lt;/a&gt; has the following to say about unit tests:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A unit test should have the following&#xA;  properties:&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;It should be automated and repeatable. &lt;/li&gt;&#xA;  &lt;li&gt;It should be easy to implement.&lt;/li&gt;&#xA;  &lt;li&gt;Once it’s written, it should remain for future use.&lt;/li&gt;&#xA;  &lt;li&gt;Anyone should be able to run it. &lt;/li&gt;&#xA;  &lt;li&gt;It should run at the push of a button.&lt;/li&gt;&#xA;  &lt;li&gt;It should run quickly.&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;and then later adds it should be fully automated, trustworthy, readable, and maintainable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would strongly recommend reading this book if you haven't already.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion, all these are very important, but the last three (trustworthy, readable, and maintainable) especially, as if your tests have these three properties then your code usually has them as well.&lt;/p&gt;&#xA;" OwnerUserId="6104" LastActivityDate="2010-11-24T13:58:16.070" CommentCount="3" />
  <row Id="21166" PostTypeId="2" ParentId="15828" CreationDate="2010-11-24T14:01:14.617" Score="1" ViewCount="" Body="&lt;p&gt;I believe that auto-complete, in most IDE's, is defined as part of the language syntax, which is normally protected in the IDE and not exposed in a mutable way to any part of the code. The best route would be to write a new language syntax for the IDE's you want to serve and provide those syntax files with the source code. Auto-complete is called &lt;a href=&quot;http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/editors_contentassist.htm&quot; rel=&quot;nofollow&quot;&gt;content assist&lt;/a&gt; in Eclipse, and that link goes to a guide for working with content assist.&lt;/p&gt;&#xA;" OwnerUserId="8342" LastActivityDate="2010-11-24T14:01:14.617" />
  <row Id="21167" PostTypeId="2" ParentId="21071" CreationDate="2010-11-24T14:02:52.353" Score="8" ViewCount="" Body="&lt;p&gt;A paper notebook.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Title / context at the top along with the date, then a list of attendees (not too fussy, initials, where I don't know full names (e.g. on a conference call) then I'll just put &quot;Steve, company X&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then everything gets marked down as a bullet point, actions get a ! in the margin in front of them along with the initials of who the action is on, questions and queries that need further clarification get a ? (both highlighted this way so they can be easily identified later).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-24T14:10:43.590" LastActivityDate="2010-11-24T14:10:43.590" CommentCount="1" />
  <row Id="21168" PostTypeId="2" ParentId="4507" CreationDate="2010-11-24T14:10:58.570" Score="4" ViewCount="" Body="&lt;p&gt;No. Google App Engine does provide a free/cheap infrastructure for hosting Python applications, but Ruby has virtually the same thing with Heroku (and Heroku has a lot less restrictions that GAE). Before using GAE, make sure to read very closely about the restrictions that Google puts on the platform, many of which can be significant barriers to the goal you're trying to achieve. &lt;a href=&quot;http://www.carlosble.com/?p=719&quot; rel=&quot;nofollow&quot;&gt;Carlos Ble's blog post&lt;/a&gt; goes into much more depth about the many restrictions he's run into, but I'll give you a quick overview:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Python 2.5 only (that's stone age in the Python world) and no compiled extensions (major performance hit)&lt;/li&gt;&#xA;&lt;li&gt;30 second request timeout (so much for easy large file uploads) and 10 second outside request timeout (so you can't query slow API's from your app)&lt;/li&gt;&#xA;&lt;li&gt;BigTable is stone age; no &quot;LIKE&quot; operators in your query and no single query can return more than 1,000 records&lt;/li&gt;&#xA;&lt;li&gt;Memcache has a 1 MB max value size&lt;/li&gt;&#xA;&lt;li&gt;Both BigTable and Memcache tend to die at a significant enough rate that it's productive to put code in your application to work around their failures&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For a very small project, GAE is just fine; but if you're build something at a medium or large size, just be aware of the restrictions that may hamper you progress.&lt;/p&gt;&#xA;" OwnerUserId="8342" LastActivityDate="2010-11-24T14:10:58.570" />
  <row Id="21169" PostTypeId="1" CreationDate="2010-11-24T14:17:23.167" Score="8" ViewCount="888" Body="&lt;p&gt;I am programming with an apple keyboard (the one all aluminium with flat keys). it's quite some time I observed I occasionally mistype, and I feel pain in my hands. Is it the keyboard's fault, or am I just getting old ? Does any of you have experience with hours of programming with the apple keyboard ?&lt;/p&gt;&#xA;" OwnerUserId="1338" LastEditorUserId="1338" LastEditorDisplayName="" LastEditDate="2010-12-22T11:23:46.670" LastActivityDate="2010-12-22T11:23:46.670" Title="Ergonomics of Apple keyboard for long programming hours" Tags="&lt;keyboard&gt;&lt;apple&gt;&lt;ergonomics&gt;" AnswerCount="11" CommentCount="3" FavoriteCount="1" />
  <row Id="21170" PostTypeId="2" ParentId="21071" CreationDate="2010-11-24T14:19:51.740" Score="1" ViewCount="" Body="&lt;p&gt;I use index cards, especially for requirements gathering meetings. One idea/requirement per card. This allows me to organize the notes however I need to, and sometimes the index cards will go directly onto my task board.&lt;/p&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-11-24T14:19:51.740" />
  <row Id="21171" PostTypeId="2" ParentId="21071" CreationDate="2010-11-24T14:20:49.287" Score="1" ViewCount="" Body="&lt;p&gt;While we're putting forward how we do things, the worst I've seen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One client I've worked with records the meetings so the meetings can be typed up by a secretary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This secretary isn't technical, has limited domain knowledge and wasn't in the meeting her so understanding of what was discussed and decided isn't exactly ideal and she doesn't know most of the people so who is talking is best guess based on the voices (fortunately we're in Scotland and they're in England so there are at least some distinct accents).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From time to time the host of the meeting stops the whole thing while he tries to paraphrase what's been said in the previous few minutes for her benefit (having 6 people sit around for a couple of minutes doing nothing while he does so - do that five times and that's a man hour gone) at which point everyone has to try and remember where they were.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be fair to the secretary she does a fair job given the constraints but the whole process is a staggeringly inefficient way of getting notes of somewhat limited accuracy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Needless to say I do not recommend it.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-24T14:20:49.287" CommentCount="2" />
  <row Id="21172" PostTypeId="2" ParentId="2829" CreationDate="2010-11-24T14:21:52.680" Score="1" ViewCount="" Body="&lt;p&gt;How are you giving these materials to people?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're licensing your application to people commercially, you're going down the wrong path - you need to see a lawyer to prepare a software license agreement. In these situations the customer paying for software licenses get statutory warranties, so clauses like that aren't enforceable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're releasing source code or other materials for others to re-use, your original post is absolutely correct - you MUST include a warranty waiver, otherwise someone might turn around and say &quot;you released this code claiming it did X, Y and Z - but it doesn't and I'm going to sue you&quot;, even if you didn't get paid for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In either case, you need to sit down and figure out what you want people to be able to do with the product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the latter case where you're releasing things to the community under an Open Source license, find a good OSI-approved license that aligns with your wishes:&#xA;&lt;a href=&quot;http://opensource.org/licenses/category&quot; rel=&quot;nofollow&quot;&gt;http://opensource.org/licenses/category&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But as greyfade mentions, don't even think about writing your own license - it's not worth the risk.&lt;/p&gt;&#xA;" OwnerUserId="7641" LastActivityDate="2010-11-24T14:21:52.680" />
  <row Id="21173" PostTypeId="2" ParentId="21169" CreationDate="2010-11-24T14:22:10.473" Score="3" ViewCount="" Body="&lt;p&gt;I use a macbook, its keyboard is similar to apple keyboards for desktops, and it is the best keyboard I have ever used (HP omnibook, sony vaio, lots of genius keyboards for desktops). &lt;strong&gt;But I think it is too subjective.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-11-24T14:22:10.473" CommentCount="4" />
  <row Id="21174" PostTypeId="2" ParentId="21169" CreationDate="2010-11-24T14:25:09.500" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Does any of you have experience with hours of programming with the apple keyboard ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;no but I do have a Microsoft Natural keyboard plugged into a Mac and use it without issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All I had to do was swap the keys so the keyboard's Alt key becomes Command and the keyboard's Win key becomes Option:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;System Preferences -&gt; Keyboard -&gt; Keyboard -&gt; Modifier Keys... -&gt; I set Option to Command and Command to Option.&lt;/p&gt;&#xA;" OwnerUserId="7610" LastActivityDate="2010-11-24T14:25:09.500" />
  <row Id="21175" PostTypeId="2" ParentId="8966" CreationDate="2010-11-24T14:32:39.007" Score="1" ViewCount="" Body="&lt;p&gt;At JAOO/GOTO this year I saw this presentation:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://gotocon.com/aarhus-2010/presentation/Testing%20Asynchronous%20Behaviour%20in%20an%20Instant%20Messaging%20Server&quot; rel=&quot;nofollow&quot;&gt;http://gotocon.com/aarhus-2010/presentation/Testing%20Asynchronous%20Behaviour%20in%20an%20Instant%20Messaging%20Server&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The trick is that you model what your hairball application is supposed to DO, in terms of &lt;em&gt;invocation steps&lt;/em&gt; as well as the actual operations on your application.  John Hughes software then systematically tries many permutations of invocation steps repeatedly in &lt;em&gt;parallel&lt;/em&gt; and checks afterwards that the state of the application corresponds with the state of the model.  If an error is found, the software knows how to reduce the steps to the minimal case producing the error.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He demonstrated live how to catch several bugs in core Erlang libraries which had been lurking for 15 years and occasionally reported but nobody could figure out where they came from and hence how to fix.  With the minimal cases reported by the software, the library maintainer was able to fix each bug within a &lt;em&gt;day&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was SO impressive. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;John Hughes sells this software through his company.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-24T14:32:39.007" CommentCount="1" />
  <row Id="21176" PostTypeId="2" ParentId="21071" CreationDate="2010-11-24T14:33:55.117" Score="1" ViewCount="" Body="&lt;p&gt;I Like Office OneNote.&lt;/p&gt;&#xA;" OwnerUserId="7748" LastActivityDate="2010-11-24T14:33:55.117" />
  <row Id="21177" PostTypeId="2" ParentId="21118" CreationDate="2010-11-24T14:37:56.737" Score="12" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://slashdot.org/&quot; rel=&quot;nofollow&quot;&gt;Slashdot&lt;/a&gt;, of course! Even if stories are often old news by the time they're posted there, the discussions are always quite interesting.&lt;/p&gt;&#xA;" OwnerUserId="5747" LastActivityDate="2010-11-24T14:37:56.737" CommentCount="7" />
  <row Id="21178" PostTypeId="2" ParentId="21169" CreationDate="2010-11-24T14:39:36.547" Score="1" ViewCount="" Body="&lt;p&gt;I use both the latest Apple desktop keyboard and I have a later-model MacBook Pro with the new keyboard at the office and a similar set up at home. I've surmised that having strain using one over the other has as much to do with the way I am sitting in front them as much as anything &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In both cases I actually prefer using the laptop keyboards more because I find that when I sit at my desks using the laptops, my arms are higher and actually resting on the desk. My hands end up approaching the keyboard in a more comfortable position than the desktop keyboards which are on keyboard trays. (I've come to loathe keyboard trays, and my office was designed long before modern computer setups were really taken into consideration so moving things around really isn't an option. But, I digress...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No matter what, I think I would have the same problems regardless of which keyboards I use, and this really has to do more with how my desks are set up than anything.&lt;/p&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2010-11-24T14:39:36.547" />
  <row Id="21179" PostTypeId="2" ParentId="10087" CreationDate="2010-11-24T14:40:08.703" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Compile time&lt;/strong&gt; - C++ compile times really screws with my attention span and producitivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tweak&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compile &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Surf the net&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tweak &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compile&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Surf the net&lt;/p&gt;&#xA;" OwnerUserId="3374" LastActivityDate="2010-11-24T14:40:08.703" CommunityOwnedDate="2010-11-24T14:40:08.703" CommentCount="3" />
  <row Id="21180" PostTypeId="2" ParentId="21148" CreationDate="2010-11-24T14:40:18.327" Score="0" ViewCount="" Body="&lt;p&gt;The best thing would be if you have a real need to learn programming. When I was doing my PhD (in seismology), I started to write a program for precise measurements using a computer and an analogue-to-digital converter, and I really needed to do it well and fast. Surprisingly (for others, not for me) I decided to continue my carrier as a software developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is very good, if there is a person, who can answer your questions, when you are starting. But the main thing is to know what you are doing and why.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-11-24T14:40:18.327" />
  <row Id="21181" PostTypeId="2" ParentId="21125" CreationDate="2010-11-24T15:09:56.333" Score="0" ViewCount="" Body="&lt;p&gt;Get exposed to new stuff.  You can talk to other people in the field, read blogs, read questions on SO, browse bookstore shelves, whatever.  If you don't keep your eyes open, you won't know what's out there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you've been exposed, you can learn more about what might help you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, to repeat something that lots of people have repeated in the past, get familiar with several different sorts of computer languages.  You should be able to do procedural, object-oriented, functional, and declarative programming, at a minimum.  Keep an eye out for things that you don't understand and puzzle you and learn about them.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-24T15:09:56.333" />
  <row Id="21182" PostTypeId="2" ParentId="21169" CreationDate="2010-11-24T15:20:11.117" Score="2" ViewCount="" Body="&lt;p&gt;I guess this is subjective, but I also don't find Apple's keyboard most comfortable. I believe that &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;keys surfaces should not be completely flat (I think that the recesses helps our fingers orient)&lt;/li&gt;&#xA;&lt;li&gt;keys should have couple of millimeters of travel - because of the size of our fingers&lt;/li&gt;&#xA;&lt;li&gt;keys shouldn't be too soft - because of the weight and strength of our fingers (sounds like a paradox, but I believe keys too soft make our fingers tire faster).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;(I am also constantly frustrated with MacBook keyboard because its lack of PgUp/PgDown keys, but that's another problem now.)&lt;/p&gt;&#xA;" OwnerUserId="7968" LastActivityDate="2010-11-24T15:20:11.117" CommentCount="4" />
  <row Id="21183" PostTypeId="2" ParentId="21125" CreationDate="2010-11-24T15:20:17.700" Score="1" ViewCount="" Body="&lt;p&gt;I find that (at least in the .NET world) &lt;strong&gt;podcasts&lt;/strong&gt; are a great way to survey new technologies, so that you know about the screwdriver.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hanselminutes and DotNetRocks are especially good.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-24T17:22:58.497" LastActivityDate="2010-11-24T17:22:58.497" CommentCount="1" />
  <row Id="21184" PostTypeId="2" ParentId="21169" CreationDate="2010-11-24T15:22:32.830" Score="3" ViewCount="" Body="&lt;p&gt;Ok, there will be a whole raft of factors that might contribute to this - not just the keyboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things to consider include&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Your height relative to the desk&lt;/li&gt;&#xA;&lt;li&gt;Your position relative to the desk&lt;/li&gt;&#xA;&lt;li&gt;Your position relative to the keyboard (how close/far away you are)&lt;/li&gt;&#xA;&lt;li&gt;Where your hands/wrists/forearms rest when using the keyboard&lt;/li&gt;&#xA;&lt;li&gt;Where your monitor is - as this will affect your posture&lt;/li&gt;&#xA;&lt;li&gt;Where your mouse is and how free it is to move&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you compare the desktop keyboard and the laptop keyboard there are some obvious differences in where things are relative to one another - on a laptop your hands will be higher (well possibly not if the laptop is an &quot;air&quot;) and flatter, but also there are some more subtle differences in terms of where things are position relative to where you sit to type&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-11-24T15:22:32.830" />
  <row Id="21185" PostTypeId="2" ParentId="21148" CreationDate="2010-11-24T15:24:32.967" Score="2" ViewCount="" Body="&lt;p&gt;My girlfriend had never programmed before and expressed interest so we picked up &lt;em&gt;Head First Programming&lt;/em&gt; from O'Reilly and she ate it right up, picking it up very quickly. Within a few chapters she was asking me fairly complex questions about how programmers think and approach problems, which I took as a good sign. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The book teaches you the basics of Python, a language that's both reasonably modern and fairly accessible, providing a solid baseline understanding of programming concepts without being too cryptic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While going through the book she was inspired to start a somewhat complex project (and did so), which I also took as a good sign. Before she'd even finished the book she went out and bought &lt;em&gt;Head First Java&lt;/em&gt;, ready to move on to more complex stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's certainly one good way to learn programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(&lt;strong&gt;Note&lt;/strong&gt;: I have nothing to do with O'Reilly or either of those books. I just saw the approach work quite well for someone who was a complete newb.)&lt;/p&gt;&#xA;" OwnerUserId="8076" LastActivityDate="2010-11-24T15:24:32.967" CommentCount="2" />
  <row Id="21186" PostTypeId="1" CreationDate="2010-11-24T15:25:36.633" Score="4" ViewCount="1243" Body="&lt;p&gt;I have always heard that SDE interviews are much harder to crack than SDET. Is it really true?  I have also heard that if candidate doesnt do well in SDE interview he is also sometimes offered SDET position. How much truth is there into these talks? &#xA;I would highly appreciate if someone would put good resources and guidelines for how to prepare for Microsoft interviews..which books to read, which notes, online programming questions websites, etc. Give as much info as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance to everyone for your valuable help and contribution.&lt;/p&gt;&#xA;" OwnerUserId="8504" LastActivityDate="2010-12-30T21:27:29.363" Title="Microsoft SDE Interview vs Microsoft SDET Interview and Resources to Study" Tags="&lt;interview&gt;&lt;microsoft&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="2" />
  <row Id="21187" PostTypeId="2" ParentId="21133" CreationDate="2010-11-24T15:28:06.367" Score="2" ViewCount="" Body="&lt;p&gt;for TDD, &quot;good&quot; tests test &lt;em&gt;features that the customer wants&lt;/em&gt;; features do not necessarily correspond to functions, and test scenarios should not be created by the developer in a vacuum&lt;/p&gt;&#xA;&#xA;&lt;p&gt;in your case - i'm guessing - the 'feature' is that the fit function models the input data within a certain error tolerance. Since I have no idea what you're really doing, I'm making something up; hopefully it is analgous.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example story:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;As a [X-Wing Pilot] I want [no more than 0.0001% fit error] so that [the targeting computer can hit the Death Star's exhaust port when moving at full speed through a box canyon]&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;So you go talk to the pilots (and to the targeting computer, if sentient). First you talk about what is 'normal', then talk about the abnormal. You find out what really matters in this scenario, what is common, what is unlikely, and what is merely possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's say that normally you'll have a half-second window over seven channels of telemetry data: speed, pitch, roll, yaw, target vector, target size, and target velocity, and that these values will be constant or changing linearly. Abnormally you may have less channels and/or the values may be changing rapidly. So &lt;strong&gt;together&lt;/strong&gt; you come up with some tests such as:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//Scenario 1 - can you hit the side of a barn?&#xA;Given:&#xA;    all 7 channels with no dropouts for the full half-second window,&#xA;When:&#xA;    speed is zero&#xA;    and target velocity is zero&#xA;    and all other values are constant,&#xA;Then:&#xA;    the error coefficient must be zero&#xA;&#xA;//Scenario 2 - can you hit a turtle?&#xA;Given:&#xA;    all 7 channels with no dropouts for the full half-second window,&#xA;When:&#xA;    speed is zero&#xA;    and target velocity is less than c&#xA;    and all other values are constant,&#xA;Then:&#xA;    the error coefficient must be less than 0.0000000001/ns&#xA;&#xA;...&#xA;&#xA;//Scenario 42 - death blossom&#xA;Given:&#xA;    all 7 channels with 30% dropout and a 0.05 second sampling window&#xA;When:&#xA;    speed is zero&#xA;    and position is within enemy cluster&#xA;    and all targets are stationary&#xA;Then:&#xA;    the error coefficient must be less than 0.000001/ns for each target&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now, you may have noticed that there's no scenario for the particular situation described in the story. It turns out, after after talking with the customer and other stakeholders, that goal in the original story was just a hypothetical example. The real tests came out of the ensuing discussion. This can happen. The story should be rewritten, but it doesn't have to be [since the story is just a placeholder for a conversation with the customer].&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-11-24T16:12:23.660" LastActivityDate="2010-11-24T16:12:23.660" />
  <row Id="21188" PostTypeId="2" ParentId="21169" CreationDate="2010-11-24T15:31:44.490" Score="0" ViewCount="" Body="&lt;p&gt;The Apple keyboards are very pretty, and not too bad to type on. Still, I type 10 hours a day for a living, and I am old enough to prefer the feel of old style keyboards. For long typing spells I do not find the Apple aluminium keyboard very comfortable. I was very happy to read that Matias have come out with a recent model of their &lt;a href=&quot;http://matias.ca/tactilepro3/index.php/&quot; rel=&quot;nofollow&quot; title=&quot;Tactile Pro&quot;&gt;Tactile Pro keyboard&lt;/a&gt;. At US$150 it is far from cheap, but I will certainly get one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are also other producers of tactile keyboards, for instance &lt;a href=&quot;http://www.daskeyboard.com/&quot; rel=&quot;nofollow&quot; title=&quot;Das Keyboard&quot;&gt;Das Keyboard&lt;/a&gt;, but Matias specifically design their keyboards for the Mac, which is a plus.&lt;/p&gt;&#xA;" OwnerUserId="305" LastActivityDate="2010-11-24T15:31:44.490" />
  <row Id="21189" PostTypeId="2" ParentId="21169" CreationDate="2010-11-24T15:32:59.280" Score="1" ViewCount="" Body="&lt;p&gt;I also have an Apple keyboard at home. Though I haven't experienced hand pain while using it, I don't type as much at home as I do at work, where I have a Microsoft Natural Keyboard. On the other hand, this is a very subjective thing as others have mentioned. If you're experiencing pain, you may want to consider a different keyboard, a wrist pad, or both.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-24T15:32:59.280" CommentCount="2" />
  <row Id="21190" PostTypeId="2" ParentId="21142" CreationDate="2010-11-24T15:47:01.873" Score="0" ViewCount="" Body="&lt;p&gt;Have a look at these three articles...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://tutorials.jenkov.com/java-persistence/dao-design-problems.html&quot; rel=&quot;nofollow&quot;&gt;DAO Design Problems&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://tutorials.jenkov.com/java-persistence/dao-manager.html&quot; rel=&quot;nofollow&quot;&gt;DAO Manager&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://tutorials.jenkov.com/java-persistence/advanced-connection-and-transaction-demarcation-and-propagation.html&quot; rel=&quot;nofollow&quot;&gt;Advanced Connection and Transaction Demarcation and Propagation&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-24T15:54:09.480" LastActivityDate="2010-11-24T15:54:09.480" />
  <row Id="21191" PostTypeId="2" ParentId="20927" CreationDate="2010-11-24T15:50:38.123" Score="9" ViewCount="" Body="&lt;p&gt;My favorite which encompasses a few disciplines is to count the number of nodes in a binary tree given the interface (in C#):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public interface IBinaryTree&amp;lt;T&amp;gt;&#xA;{&#xA;    IBinaryTree&amp;lt;T&amp;gt; Left&#xA;    {&#xA;        get;&#xA;    }&#xA;&#xA;    IBinaryTree&amp;lt;T&amp;gt; Right&#xA;    {&#xA;        get;&#xA;    }&#xA;&#xA;    T Data&#xA;    {&#xA;        get;&#xA;    }&#xA;&#xA;    // Other properties and methods not germane to this problem.&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and just for fun, here's the implementation, though the interviewee need not see this.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public sealed class BinaryTree&amp;lt;T&amp;gt; : IBinaryTree&amp;lt;T&amp;gt;&#xA;{&#xA;    private readonly IBinaryTree&amp;lt;T&amp;gt; left;&#xA;&#xA;    private readonly IBinaryTree&amp;lt;T&amp;gt; right;&#xA;&#xA;    private readonly T data;&#xA;&#xA;    public BinaryTree(&#xA;        IBinaryTree&amp;lt;T&amp;gt; left,&#xA;        IBinaryTree&amp;lt;T&amp;gt; right,&#xA;        T data)&#xA;    {&#xA;        this.left = left;&#xA;        this.right = right;&#xA;        this.data = data;&#xA;    }&#xA;&#xA;    public IBinaryTree&amp;lt;T&amp;gt; Left&#xA;    {&#xA;        get&#xA;        {&#xA;            return this.left;&#xA;        }&#xA;    }&#xA;&#xA;    public IBinaryTree&amp;lt;T&amp;gt; Right&#xA;    {&#xA;        get&#xA;        {&#xA;            return this.right;&#xA;        }&#xA;    }&#xA;&#xA;    public T Data&#xA;    {&#xA;        get&#xA;        {&#xA;            return this.data;&#xA;        }&#xA;    }&#xA;&#xA;    // Other properties and methods not germane to this problem.&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and the assistant class:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public static class BinaryTreeNodeCounter&#xA;{&#xA;    public static int CountNodes&amp;lt;T&amp;gt;(this IBinaryTree&amp;lt;T&amp;gt; tree)&#xA;    {&#xA;        // TODO: What goes here?&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The solution I like to see is this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public static class BinaryTreeNodeCounter&#xA;{&#xA;    public static int CountNodes&amp;lt;T&amp;gt;(this IBinaryTree&amp;lt;T&amp;gt; tree)&#xA;    {&#xA;        return tree == null&#xA;            ? 0&#xA;            : 1 + tree.Left.CountNodes() + tree.Right.CountNodes();&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;As it demonstrates knowledge of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;how a tree (binary tree in particular) works&lt;/li&gt;&#xA;&lt;li&gt;the recursive definition of a binary tree&lt;/li&gt;&#xA;&lt;li&gt;recursive methods and how base cases stop recursion&lt;/li&gt;&#xA;&lt;li&gt;what counting a single node means&lt;/li&gt;&#xA;&lt;li&gt;interfaces as a contract&lt;/li&gt;&#xA;&lt;li&gt;(less important) knowledge of C# syntax:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;generics&lt;/li&gt;&#xA;&lt;li&gt;extension methods&lt;/li&gt;&#xA;&lt;li&gt;ternary operator&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="987" LastEditorUserId="987" LastEditorDisplayName="" LastEditDate="2010-12-22T18:41:55.360" LastActivityDate="2010-12-22T18:41:55.360" CommunityOwnedDate="2011-02-15T14:41:29.790" CommentCount="6" />
  <row Id="21192" PostTypeId="2" ParentId="21186" CreationDate="2010-11-24T15:52:04.613" Score="6" ViewCount="" Body="&lt;p&gt;Unfortunately, those are both myths. SDEs and SDETs get the same starting salary, so it would be silly to have a lower bar for one of the positions. You'll have to code at the whiteboard in both interviews and show that you can deconstruct complex problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on the group, the SDE loop may have more emphasis on algorithms, and on the SDET side, you'll find more emphasis on systems thinking - but the emphasis can vary slightly from group to group.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To prepare, study algorithms and implementation examples, but more importantly &lt;em&gt;practice&lt;/em&gt; solving random programming problems on paper (or on a whiteboard if you have one). Be able to think out loud while you code (the answer is often not as important as the thought process). Also have examples to share on how you learn, communication, and dealing with conflict.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For an SDET interview, you can read &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735624259&quot; rel=&quot;nofollow&quot;&gt;my book&lt;/a&gt; (more importantly, the book will help you evaluate &lt;em&gt;if&lt;/em&gt; you want to be an SDET. On the dev side, you can goo...&lt;strong&gt;bing&lt;/strong&gt; &quot;Microsoft Interview Questions&quot; and probably get some good practice material - but skip the &quot;why are manhole covers round&quot; type questions, as those are rarely used anymore.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-11-24T15:52:04.613" />
  <row Id="21193" PostTypeId="2" ParentId="20950" CreationDate="2010-11-24T16:00:10.723" Score="5" ViewCount="" Body="&lt;p&gt;If you code in Lisp, Emacs has Intellisense-like capabilities like looking up method parameters and autocompletion, so you could say it's the original IDE. It's also nice to be able to use one program for multiple tasks (editing in general, shell/command prompt, reading news).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, the editor vs. IDE question seems to depend on the programming language. From what I've seen, Ruby and Haskell coders, for example, seem to prefer their favorite text editor.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-24T16:00:10.723" CommentCount="2" />
  <row Id="21194" PostTypeId="2" ParentId="21142" CreationDate="2010-11-24T16:01:21.953" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;What are the responsibilities of a Manager and of the Dao classes?&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The responsibility of the DAO is the abstraction over data access.  The responsiblity of the manager it to organize and execute the business logic of the application -- the manager uses the DAOs to accomplish this.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;Do we have to have a manager for every dao or can we just use the dao&#xA;  directly?&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I would think you should be using the DAOs directly. Again, for the manager to accomplish its tasks, it might need to make use of several DAOs to manipulate data -- I don't see a problem with this.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;How do I handle situations where I need to use the functionality&#xA;  implemented in several Managers?&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This could be a code-smell that you need to group together (refactor) certain logic or functionality into a new manager, or (although it might be extreme) another service layer on top of that to organize action among the managers.&lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-11-24T16:01:21.953" />
  <row Id="21195" PostTypeId="2" ParentId="8966" CreationDate="2010-11-24T16:03:19.910" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Tests with non-reproducible results are useless. That rules out completely random tests, but leaves in tests generated from pseudo-random sequences.&lt;/li&gt;&#xA;&lt;li&gt;Every actor in a concurrent environment has algorithmic or otherwise non concurrency components that can be tested by conventional means. Having tested them, any remaining failures must be lie in the concurrency logic.&lt;/li&gt;&#xA;&lt;li&gt;The events in a concurrent system are always in fact a linear sequence of events. If enough precision is used to measure time, then there are no events happening &quot;at the same time&quot;. That means that the actors in a concurrent system can be tested by generating events sequentially. Capturing the sequence of events around the time of failure of a concurrent system provides the required test cases.&lt;/li&gt;&#xA;&lt;li&gt;The code that provides actors with liveliness (threads) is more-often-than-not provided by the operating system or by system libraries. It is safe to assume that said code needs not be tested. The code in charge of communication and synchronization is normally written by the applications programmer. That code can be tested without invoking the system code, that is, without launching any threads.&lt;/li&gt;&#xA;&lt;li&gt;Boundary conditions in the algorithmic code (queue empty) often require handling in the synchronization code, and that is a good target for testing.&lt;/li&gt;&#xA;&lt;li&gt;Defining proxies around system code (t.wait()) allows for the use of stubs/mocks of the functionality during testing.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8500" LastActivityDate="2010-11-24T16:03:19.910" CommentCount="1" />
  <row Id="21196" PostTypeId="2" ParentId="21186" CreationDate="2010-11-24T16:04:32.263" Score="3" ViewCount="" Body="&lt;p&gt;I wrote about my interview experience here: &lt;a href=&quot;http://victorhurdugaci.com/my-interview-with-microsoft/&quot; rel=&quot;nofollow&quot;&gt;http://victorhurdugaci.com/my-interview-with-microsoft/&lt;/a&gt; - there are also some links to useful resources.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-11-24T16:04:32.263" />
  <row Id="21197" PostTypeId="1" AcceptedAnswerId="21202" CreationDate="2010-11-24T16:06:48.380" Score="8" ViewCount="313" Body="&lt;p&gt;Being a programmer is not just grokking the latest cool technology or debugging a sneaky code error , we have to speak to our coworkers, project manager or boss, in the most effective way possibly; we have demos, interviews, code reviews and so on where this skill is pretty crucial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, as a solo programmer (since 2008) I have not invested much time on improving this skill and I would like to know whay you are doing to improve it.&lt;/p&gt;&#xA;" OwnerUserId="74" LastEditorUserId="74" LastEditorDisplayName="" LastEditDate="2010-11-24T22:08:21.923" LastActivityDate="2010-11-25T00:19:11.570" Title="What do you do to improve your speech communication skills?" Tags="&lt;self-improvement&gt;&lt;skills&gt;&lt;communication&gt;&lt;social-skills&gt;" AnswerCount="8" CommentCount="0" FavoriteCount="4" />
  <row Id="21198" PostTypeId="2" ParentId="21133" CreationDate="2010-11-24T16:08:36.913" Score="1" ViewCount="" Body="&lt;p&gt;It depends on why you want to test in the first place. If you just want it to guard against regressions and aid you in designing your software, then I suggest you use it like you would use &lt;a href=&quot;http://en.wikipedia.org/wiki/REPL&quot; rel=&quot;nofollow&quot;&gt;REPL&lt;/a&gt; in some languages, with the exception that they are restricted to validation (either your answer is correct or not) and you keep them stored so when you have changed a function, you run them all for instant feedback.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then there is testing for validation. The thing is that proving a certain behaviour by tests is usually not feasible since there are so many possible inputs, so what we want to do is to collect statistical evidence that your code is correct. This is what I think you want to do. But creating big tests that account for all possible inputs means reproducing a lot of code that is a part of the code you want to test, so what's the point? In addition, testing even 20 different hard coded cases usually doesn't give you any statistical significance. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the answer to these problems is to generate random input to your code, and write tests that checks conditional behavior. That is, it only checks a certain behavior if the input satisfies some condition. If I wanted to test that a function f returns 0 when the input is even, then I would write a test like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;test(Int inp)&#xA;    if isOdd(t)&#xA;     then&#xA;       return true;&#xA;     else&#xA;       return f(t) == 0;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Or written more functionally:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  isEven(t) ==&amp;gt; f(t) == 0&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In other words: &quot;t is even implies f(t) is zero.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This sounds like a lot of work, but actually there are a lot of testing frameworks that makes this easy, like &lt;a href=&quot;http://en.wikipedia.org/wiki/QuickCheck&quot; rel=&quot;nofollow&quot;&gt;QuickCheck&lt;/a&gt; which has ports to many different languages, JUnits Theories (which is a bit experimental) and &lt;a href=&quot;http://www.ii.uib.no/mouldable/testing/jaxt/index.html&quot; rel=&quot;nofollow&quot;&gt;JaxT&lt;/a&gt; (which is also experimental).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The advantage of this is that&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's fast, once you got generators you just write down what you expect your code to do in a given situation.&lt;/li&gt;&#xA;&lt;li&gt;Tests correspond with requirements.&lt;/li&gt;&#xA;&lt;li&gt;Since your data is random, the confidence of your code goes up every time you run your tests. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I know it sounds like a small and concrete change, but it really does make a difference.&lt;/p&gt;&#xA;" OwnerUserId="8318" LastActivityDate="2010-11-24T16:08:36.913" />
  <row Id="21201" PostTypeId="2" ParentId="21128" CreationDate="2010-11-24T16:19:54.247" Score="1" ViewCount="" Body="&lt;p&gt;When I answer no to &quot;am I going to be mad I didn't do this later and it bites me..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IRL Resource and time constraints usually get me before I have to ask this question much though.  At that point you just focus on the most important/achievable bits and hope for the best.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-24T16:19:54.247" CommentCount="1" />
  <row Id="21202" PostTypeId="2" ParentId="21197" CreationDate="2010-11-24T16:21:54.463" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Preparation is key.&lt;/strong&gt; I take the time to log my progress as a project moves forward: commit notes for the code and diary-like notes in my To Do list. Just two places, all electronic and off-site, no post-it notes or written folders or binders.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I have a meeting I can prepare for, then I always take the time to prepare any relevant talking points on my laptop: the crux of the situation, long term goal, current hurdles, and possible solutions. If someone walks into my office and asks for a report, I have my latest notes at the ready. If someone meets me in the hallway, I've been writing my notes for so long, I can generally recall broadstroke information from memory. If I have my notes in order, then knowing what to communicate about is a cinch, and that makes actually speaking about it easier by extension.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it is a matter of simply not being used to speaking in front of a group of people, nothing gets over that like practice, practice, practice.&lt;/p&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2010-11-24T16:21:54.463" CommentCount="1" />
  <row Id="21203" PostTypeId="2" ParentId="21197" CreationDate="2010-11-24T16:23:44.383" Score="4" ViewCount="" Body="&lt;p&gt;The first important thing, like with everything that you want to get good at, is practice. Get out there and speak; get out from behind the screen and interact with people. While this will not significantly improve the effectiveness of your communication, it will make you more comfortable. The second thing is observation; watching or listening to a talk by someone you think delivers well can help you get a better feel about how to communicate. Preparation, like &lt;a href=&quot;http://programmers.stackexchange.com/questions/21197/what-do-you-do-to-improve-your-speech-communication-skills/21202#21202&quot;&gt;Philip&lt;/a&gt; said is important, but &lt;strong&gt;if you're not comfortable and can't deliver well, it's all for naught&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, both of these are insignificant to what I believe is the guiding rule of effective communication: &lt;strong&gt;say something important, or don't say anything at all&lt;/strong&gt;. Someone I work with frequently says absolutely nothing significant, and wastes hours of my time blathering at me, saying absolutely nothing productive or significant. Needless to say, this person hampers the progress of the group more than he/she helps. Don't be this person. Delivery is important; but saying something worthwhile and productive is critical.&lt;/p&gt;&#xA;" OwnerUserId="8342" LastEditorUserId="8342" LastEditorDisplayName="" LastEditDate="2010-11-24T16:38:51.657" LastActivityDate="2010-11-24T16:38:51.657" />
  <row Id="21204" PostTypeId="2" ParentId="20927" CreationDate="2010-11-24T16:23:46.700" Score="1" ViewCount="" Body="&lt;p&gt;For databases I go with:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;Table: Things&#xA;&#xA;ID       Name&#xA;1        Bodkin Van Horn&#xA;2        Hoos-Foos&#xA;3        Hoos-Foos&#xA;4        Hot-Shot&#xA;5        Marvin O'Gravel Balloon Face&#xA;6        Snimm&#xA;7        Marvin O'Gravel Balloon Face&#xA;8        Marvin O'Gravel Balloon Face&#xA;9        Dave&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Write me some SQL that will de-duplicate a table like this based on the name (and I don't care which ID I get back but whichever one is returned must be valid for that name).  So the table once the correct SQL has been applied to it will present something like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;Table: Things&#xA;&#xA;ID       Name&#xA;1        Bodkin Van Horn&#xA;2        Hoos-Foos&#xA;4        Hot-Shot&#xA;5        Marvin O'Gravel Balloon Face&#xA;6        Snimm&#xA;9        Dave&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I like it because:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;De-duplication is a real world problem&lt;/li&gt;&#xA;&lt;li&gt;There are a bunch of ways to do it&lt;/li&gt;&#xA;&lt;li&gt;I think that pretty much all of those ways need you to either understand (slightly) more complex SQL (essentially GROUP BY and HAVING) or the ability to reason through chaining multiple simpler statements.&lt;/li&gt;&#xA;&lt;li&gt;Because of this last bit even if they're struggling with syntax or whatever, you can ask them what they're thinking and talk through it that way.&lt;/li&gt;&#xA;&lt;li&gt;It references Dr. Seuss&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(This is where I find that there is some entirely trivial way of doing this and I've been over complicating it all these years).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2011-01-06T14:10:21.020" LastActivityDate="2011-01-06T14:10:21.020" CommunityOwnedDate="2011-02-15T14:41:29.790" CommentCount="7" />
  <row Id="21205" PostTypeId="2" ParentId="20927" CreationDate="2010-11-24T16:24:25.687" Score="2" ViewCount="" Body="&lt;p&gt;Something called aff_z, which was part of my engineering school's C examinations and was used as a &quot;dummy&quot; test to have students fail when coming back from holidays (our marking system implied that failing a test stopped the marking, so failing that dummy test would invalidate your whole test. Forces you to pay attention to moronic details). I did reuse it once or twice during interviews.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyways... I forgotten the exact formulation but it was something like this...&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Write a function taking a single char parameter named c and returning nothing (void).&#xA;You function must satisfy the following requirements:&#xA;&#xA; - if c is bigger or equal to 0, then print 'z' to standard output&#xA; - if c is stricly smaller than 0 , then print 'z' to standard output&#xA; - in any other case, print the letter 'z' to standard output&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The sad thing is that not only some students would come up with extremely convoluted solutions when the answer is fairly obvious, but that some would even manage to fail.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And believe it or not, it did happen during interviews as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Running it in interviews was fairly fun, as some applicants would start writing the possible branches and then realize what is wrong (obviously, if you only ask them orally, that is quite understandable that they do so as you speak... but if you give it in writing, I find it puzzling...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's dumb, but I guess it's a minimalistic screening (similarly, when hiring JS programmers, I always ask how to declare a variable, and then depending on their answer whether or not using var makes any difference at all. Quite often a sad moment, honestly.)&lt;/p&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-11-24T16:24:25.687" CommunityOwnedDate="2011-02-15T14:41:29.790" CommentCount="6" />
  <row Id="21206" PostTypeId="2" ParentId="21197" CreationDate="2010-11-24T16:24:34.797" Score="6" ViewCount="" Body="&lt;p&gt;Joining an organisation like &lt;a href=&quot;http://www.toastmasters.org/&quot; rel=&quot;nofollow&quot;&gt;Toastmasters&lt;/a&gt;, even for a short time will probably be of massive benefit.  They cover all types of speaking scenarios.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also practice by giving small lightning talks or demos in your lunch hour or after work at your local technology group.  Ask for feedback, you'll quickly discover what main areas you need to improve and what you already do well.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-24T16:24:34.797" CommentCount="3" />
  <row Id="21209" PostTypeId="1" AcceptedAnswerId="21320" CreationDate="2010-11-24T16:31:55.703" Score="11" ViewCount="344" Body="&lt;p&gt;The main language that I use at the moment is C# and I am the most comfortable with it. However, I have started dabbling in F# and Haskell and really enjoy those langauges. I would love to improve my skills in either of those languages over time since it truly is fun for me to use them (as opposed to Ruby, which is hyped as &quot;fun&quot;, I just don't get where the fun is, but I digress...). My question is directed at those who have hired/interviewed for programming positions (junior/mid-level): if you see a functional programming language on a resume, does it affect your opinion (whether positive or negatively) of that candidate?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My rationale for knowledge of functional programming affecting the view of a candidate is because it can show that the candidate can adapt to different methodologies and take a mulit-dimensional approach to problems rather than the &quot;same old OO approach&quot;. (This may be off-base, please let me know if this assumption is as well!)&lt;/p&gt;&#xA;" OwnerUserId="7427" LastEditorUserId="5621" LastEditorDisplayName="" LastEditDate="2010-11-24T17:20:49.217" LastActivityDate="2010-12-27T14:07:08.123" Title="Functional Programming - Does Knowing It Help Job Prospects?" Tags="&lt;career&gt;&lt;functional-programming&gt;" AnswerCount="4" />
  <row Id="21210" PostTypeId="2" ParentId="21197" CreationDate="2010-11-24T16:36:16.027" Score="1" ViewCount="" Body="&lt;p&gt;You could spend some time on the &lt;a href=&quot;http://english.stackexchange.com/&quot;&gt;English Language Stack Exchange&lt;/a&gt; site which is an interesting distraction. However, it's all about practice. If you need to give a presentation then practice it in front of friends and family and get them to critique your performance. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may want to pick up a copy of the &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131576070&quot; rel=&quot;nofollow&quot;&gt;Jeffrey Gitomer Little Green Book of Getting Your Way&lt;/a&gt;. It's &lt;strong&gt;absolutely packed with practical advice&lt;/strong&gt; for giving presentations and improving your demeanour in a manner to help you to influence others effectively. I've got several of the other books in the series in addition to this one and I can fully vouch for their efficacy.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-24T16:36:16.027" />
  <row Id="21211" PostTypeId="2" ParentId="21209" CreationDate="2010-11-24T16:38:01.627" Score="2" ViewCount="" Body="&lt;p&gt;My personal view (no experience in the matter) would be that it would depend on the job you are interviewing for and if it depends on having specific experience in a language paradigm. If you're interviewing for a Java role (or C# in your case), they wouldn't hire you for your functional programming skills and vice versa. However, if you're going for a programming role and you can program multiple languages, that can only be seen as a good sign, i.e. you are a good computer scientist with a broad range of experience.&lt;/p&gt;&#xA;" OwnerUserId="154" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-11-24T17:17:50.047" LastActivityDate="2010-11-24T17:17:50.047" />
  <row Id="21212" PostTypeId="1" CreationDate="2010-11-24T16:40:36.617" Score="4" ViewCount="203" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/21169/ergonomics-of-apple-keyboard-for-long-programming-hours&quot;&gt;This question&lt;/a&gt; asks about the ergonomics of a particular keyboard for long programming hours, what I would like to know is about the ergonomics of using a keyboard in general. What are the most significant risks associated with it and how can they best be mitigated? Do the &quot;ergonomic&quot; keyboard designs make a difference and if so which design is most effective? If not do other factors such as wrist-rests, regular exercise or having a suitable height of chair or desk make a difference?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have any direct experience of problems deriving from keyboard use and if so how did you resolve them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any good science on this and if so what does it indicate?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edited to add: Wikipedia suggests that &lt;a href=&quot;http://en.wikipedia.org/wiki/Ergonomic_keyboard&quot; rel=&quot;nofollow&quot;&gt;there are no proven advantages&lt;/a&gt; to &quot;ergonomic&quot; keyboards, but their citation seems pretty old- is that still the current state of play?&lt;/p&gt;&#xA;" OwnerUserId="4027" LastEditorUserId="1256" LastEditorDisplayName="" LastEditDate="2011-03-26T14:37:07.423" LastActivityDate="2011-03-26T14:37:07.423" Title="Physical effects of long term keyboard use- what does the science say and what factors affect it?" Tags="&lt;hardware&gt;&lt;keyboard&gt;&lt;ergonomics&gt;&lt;rsi&gt;" AnswerCount="5" CommentCount="3" />
  <row Id="21213" PostTypeId="1" AcceptedAnswerId="21292" CreationDate="2010-11-24T16:42:41.357" Score="4" ViewCount="430" Body="&lt;p&gt;I believe the question says it all. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Motivation: I often need to look at two pieces of code with eclipse. Since there is only on active graph at any given time I have to click between them, very similar to having a single monitor. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually have &lt;em&gt;research&lt;/em&gt; on my other screen, it would be amazing to able to pull separate files across like tabs in chrome, ideally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="2446" LastActivityDate="2010-11-24T20:47:53.500" Title="Which IDEs have great support for dual monitors" Tags="&lt;eclipse&gt;&lt;multiple-monitors&gt;" AnswerCount="2" CommentCount="7" FavoriteCount="2" />
  <row Id="21214" PostTypeId="2" ParentId="21212" CreationDate="2010-11-24T16:45:05.067" Score="0" ViewCount="" Body="&lt;p&gt;I had tenosynovitis (inflammation of the tendon sheaths). I had to rest my wrists for a number of weeks (which meant one-handed hunt-and-pecking).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After I (a) switched to a Microsoft Natural and (b) stopped playing Quake I never had a problem again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suspect that mice are a bigger factor in causing RSI than keyboards, but I do feel twinges in my wrists/forearms when I use a normal keyboard longer than a few hours.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-11-24T16:45:05.067" />
  <row Id="21215" PostTypeId="2" ParentId="21125" CreationDate="2010-11-24T16:47:12.257" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You must understand your tools&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't understand what your tools are for then you're not really a software craftsman, &lt;strong&gt;you're just blindly copying the actions of one&lt;/strong&gt;. When you truly understand the nature of the tool, and therefore it's limitations, then you'll be much better placed to apply it where it is most effective. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will also know when to leave it aside and use, or find, a different (perhaps better) tool.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-24T16:47:12.257" CommentCount="1" />
  <row Id="21217" PostTypeId="1" AcceptedAnswerId="21236" CreationDate="2010-11-24T16:53:57.680" Score="0" ViewCount="62" Body="&lt;p&gt;For Java libraries (which I wrote in the past years) I found not so many places iin the Internet where developers could announce new releases. So I use paid advertising (banner campaigns) at the moment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there known and popular online forums or newsgroups which welcome advertising for product for the Java platform?&lt;/p&gt;&#xA;" OwnerUserId="1473" LastActivityDate="2010-11-24T17:26:53.673" Title="Which Internet places are popular for commercial Java product announcements?" Tags="&lt;java&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="21218" PostTypeId="2" ParentId="21197" CreationDate="2010-11-24T16:55:17.827" Score="2" ViewCount="" Body="&lt;p&gt;I joined a local users group. Doing a presentation and listening to good presenters, Q &amp;amp; A discussion, and general conversation afterwards at the pub can help. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not a formal process, but helps in other ways as well especially for a lone programmer.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-24T16:55:17.827" />
  <row Id="21219" PostTypeId="2" ParentId="21213" CreationDate="2010-11-24T16:55:52.590" Score="12" ViewCount="" Body="&lt;h2&gt;Visual Studio 2010&lt;/h2&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-11-24T16:55:52.590" CommunityOwnedDate="2010-11-24T16:55:52.590" CommentCount="6" />
  <row Id="21221" PostTypeId="2" ParentId="21125" CreationDate="2010-11-24T16:57:19.813" Score="3" ViewCount="" Body="&lt;p&gt;I can't think of an advancement since the discovery of fire that didn't start with &lt;em&gt;&quot;There must be a better/easier way ..&quot;&lt;/em&gt; Except in science, where that is transformed to &lt;em&gt;&quot;There must be a better explanation ..&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you find yourself fighting your tools equally or more than the problem you hoped they would help you to solve, you need more tools. Have faith that your fellow programmer encountered a similar situation, and fashioned something much better suited for the task at hand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I program mostly in C. I can't think of many things that I could not write using C, but I can think of many things that I &lt;em&gt;wouldn't&lt;/em&gt; want to write in C. That's why my tool box also contains the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Python - For any kind of desktop app or rapid prototyping, or string intense stuff&lt;/li&gt;&#xA;&lt;li&gt;Shell Scripting - For automating darn near anything &lt;/li&gt;&#xA;&lt;li&gt;PHP - For when I need to make something web related and find myself too lazy to use Python&lt;/li&gt;&#xA;&lt;li&gt;OCaml - When I need to go beyond a prototype and keep shooting myself in the foot with C&lt;/li&gt;&#xA;&lt;li&gt;Various esoteric languages for when I want to amuse myself&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I was almost not going to answer this, but then you said:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;but suppose, i only know of the&#xA;  hammer. is screwdriver a tool ? does&#xA;  it exists yet ? how long to learn to&#xA;  use it ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you are fighting something, you &lt;em&gt;should&lt;/em&gt; realize that there is probably a better way of doing it. That way might exist with the tool you are using .. or it may mean you need to look for something else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the time / learning curve, learning is always an investment. Are you going to be confronting many similar problems in the future? Would you like to deal with them in 1/10 of the time with code that doesn't break so easily? Then yes, learn a new tool. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your back is against the wall and you have no time to learn something new, then you will probably elect to muddle through it using what you know and (hopefully) finish it. Still, let that serve as incentive to spend some time learning something new.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can say, from experience, it is &lt;em&gt;easier&lt;/em&gt; to learn a new language or method when you have a very specific problem in mind. It's not &quot;oh, gee, I wanna learn Python&quot; .. it becomes &quot;I &lt;strong&gt;need&lt;/strong&gt; to learn the innards of twisted because I need to make a working client for this API and my hammer isn't cutting it!&quot; If you study examples that actually &lt;em&gt;help&lt;/em&gt; you do what you want to do, you learn much faster.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-24T16:57:19.813" />
  <row Id="21223" PostTypeId="1" AcceptedAnswerId="21258" CreationDate="2010-11-24T17:00:45.157" Score="5" ViewCount="469" Body="&lt;p&gt;I was always asking myself this question, do companies put programmers in training before they get the job?  And what is the nature of the work? Do they write lines of code from the morning till afternoon? And what if they found difficulities in solving a problem?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And finally, do they they code from the scratch for a specific problem in a specific domain or do they imoprove already developed project? And what is the average of lines they write every day?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="26782" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-11-24T17:17:58.863" LastActivityDate="2010-11-25T08:03:48.463" Title="How do programmers do their job at work?" Tags="&lt;jobs&gt;&lt;programming&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="1" />
  <row Id="21224" PostTypeId="2" ParentId="21197" CreationDate="2010-11-24T17:02:12.970" Score="3" ViewCount="" Body="&lt;p&gt;Be completely objective. Steer clear of coffee. Be calm. Be yourself. Be honest. Be open.&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-11-24T17:02:12.970" />
  <row Id="21225" PostTypeId="2" ParentId="8966" CreationDate="2010-11-24T17:04:50.900" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://valgrind.org&quot; rel=&quot;nofollow&quot;&gt;Valgrind&lt;/a&gt; has &lt;a href=&quot;http://valgrind.org/docs/manual/hg-manual.html&quot; rel=&quot;nofollow&quot;&gt;Helgrind&lt;/a&gt; which really helps. Not only does it help point out races that could lead to starvation or deadlock, the slight slowdown of having the program profiled sometimes exposes races that might not be seen otherwise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, even if you go commando with some kind of lock free method, it still helps :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is POSIX centric, however. It ships with headers that easily make simple unit test libraries like TAP aware that it is running, which is also really helpful. For instance, you could have a thread that normally would not block when trying to acquire a lock go ahead and block (perhaps randomly), just to simulate starvation.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-24T17:04:50.900" CommentCount="1" />
  <row Id="21226" PostTypeId="2" ParentId="21212" CreationDate="2010-11-24T17:08:05.340" Score="1" ViewCount="" Body="&lt;p&gt;I know the mouse bothers me far more than the keyboard and the wrist rests actually put me in a worse position. The most useful ergonomic thign I ever used was a keyboard drawer that tilts downward. You cannot easily get your wrists out of alignment when the back keys are lower than the front keys (try it by propping up the front and you will see).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key is to hold your wrists in a neutral position. Your hands should never be higher than your wrists (Which is why I say that the wrist rests encourage the wrong positioning).&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-24T17:08:05.340" CommentCount="3" />
  <row Id="21227" PostTypeId="2" ParentId="21223" CreationDate="2010-11-24T17:12:57.727" Score="0" ViewCount="" Body="&lt;p&gt;The programs I wrote for my job have been from my own knowledge/experience.  They have not been from any training courses I have taken.  If I encounter problems, I use stackoverflow then google, if necessary.  The programs I wrote were from scratch, but admittedly they were very small.&lt;/p&gt;&#xA;" OwnerUserId="3092" LastActivityDate="2010-11-24T17:12:57.727" CommentCount="2" />
  <row Id="21228" PostTypeId="2" ParentId="21212" CreationDate="2010-11-24T17:14:47.230" Score="0" ViewCount="" Body="&lt;p&gt;I don't know much about ergonomic keyboards but I always try and type like I'm playing the piano (wrists suspended in the air).  If I let my wrists sit on the keyboard or desk, typing starts to hurt after a while.  I also switched to &lt;a href=&quot;http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard&quot; rel=&quot;nofollow&quot;&gt;Dvorak&lt;/a&gt; and subsequently &lt;a href=&quot;http://www.kaufmann.no/roland/dvorak/&quot; rel=&quot;nofollow&quot;&gt;Programmer's Dvorak&lt;/a&gt;, which is much more comfortable for me than QWERTY.&lt;/p&gt;&#xA;" OwnerUserId="5904" LastActivityDate="2010-11-24T17:14:47.230" CommentCount="3" />
  <row Id="21229" PostTypeId="2" ParentId="21223" CreationDate="2010-11-24T17:15:38.067" Score="5" ViewCount="" Body="&lt;p&gt;We have a brief orientation and a wiki. For the most part, if you actually got hired, we assume that you know what you are doing and just need to be brought up on:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Coding style / standards&lt;/li&gt;&#xA;&lt;li&gt;Innards of the bug database, such as what to give maximum priority, what we're currently stuck on doing, what that might be blocking&lt;/li&gt;&#xA;&lt;li&gt;General ground rules as far as what we expect. For instance, we don't care if you answer questions on SO, we just want to make sure your work gets done.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;After that, most new hires get some one on one time with the team lead that brings them up to speed on what we're doing (did I mention this is all in a wiki so you can easily go back later for reference?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on what you were hired to do, you might be writing an API from scratch, or perhaps re-factoring the mess that your predecessor left you. Suffice it to say, you spend:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;80% of your day writing code&lt;/li&gt;&#xA;&lt;li&gt;20% of your day doing whatever it is that you do that helps you to write code&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;A &lt;em&gt;good&lt;/em&gt; sorting algorithm isn't measured in lines, it is measured in complexity. Don't confuse quantity with quality. Every time I see someone placing value on the number of lines of code that someone produces, I have to say .. &lt;strong&gt;&lt;em&gt;please stop doing that&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-24T17:15:38.067" />
  <row Id="21230" PostTypeId="1" AcceptedAnswerId="21250" CreationDate="2010-11-24T17:17:55.850" Score="13" ViewCount="734" Body="&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;The Joel Test&lt;/a&gt; question #11 is: &quot;Do new candidates write code during their interview?&quot;. What are arguments for and against to ask new candidates to write code during the interview and to make a decision upon it?&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-11-24T18:00:00.620" Title="The Joel Test, question #11. What are pros and cons?" Tags="&lt;interview&gt;&lt;joel-test&gt;" AnswerCount="10" CommentCount="1" />
  <row Id="21231" PostTypeId="2" ParentId="21209" CreationDate="2010-11-24T17:20:18.517" Score="13" ViewCount="" Body="&lt;p&gt;Knowing the functional paradigm makes you a better programmer. Dabbling in languages like Haskell shows that you're interested in having more than one instrument in your mental toolbox.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That should have a concrete boost in your attractiveness as a hire. (If it doesn't, I wouldn't be interested in working for that company.)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-11-24T17:20:18.517" CommentCount="1" />
  <row Id="21232" PostTypeId="2" ParentId="21230" CreationDate="2010-11-24T17:21:21.933" Score="4" ViewCount="" Body="&lt;p&gt;Cons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Requires you to have a technical person in the interview&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Pros:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Saves a LOT of time and heartache down the road if you prevent hiring someone who can't program&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-11-24T17:21:21.933" CommentCount="2" />
  <row Id="21233" PostTypeId="2" ParentId="20909" CreationDate="2010-11-24T17:23:29.557" Score="2" ViewCount="" Body="&lt;p&gt;good detailed answers above; the short story is that they'll all flavors of subroutines; what is meant by each term will vary according to the programming language context&lt;/p&gt;&#xA;&#xA;&lt;p&gt;in general, functions return a value, but they don't have to&lt;/p&gt;&#xA;&#xA;&lt;p&gt;methods are a generic OOP terms &lt;em&gt;at present&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;in SQL, stored procedures have outputs but typically only return an error code, while user-defined functions must return a value (which may be a result-set)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;again, the precise difference between these terms depends on who you're talking to!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-24T17:23:29.557" />
  <row Id="21234" PostTypeId="2" ParentId="21223" CreationDate="2010-11-24T17:24:32.210" Score="2" ViewCount="" Body="&lt;p&gt;all of the above, or none of the above. it depends on the company, environment, programmer, and projects!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-24T17:24:32.210" />
  <row Id="21235" PostTypeId="2" ParentId="21223" CreationDate="2010-11-24T17:24:32.960" Score="7" ViewCount="" Body="&lt;p&gt;I tend to do things like this:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Conceptualize and specify requirements&lt;/li&gt;&#xA;&lt;li&gt;Research and/or evaluate existing implementations&lt;/li&gt;&#xA;&lt;li&gt;Prototype&lt;/li&gt;&#xA;&lt;li&gt;Review and modify&lt;/li&gt;&#xA;&lt;li&gt;Implement&lt;/li&gt;&#xA;&lt;li&gt;Test&lt;/li&gt;&#xA;&lt;li&gt;Deploy&lt;/li&gt;&#xA;&lt;li&gt;Rinse and repeat&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do I code 8 hours a day? &#xA;&lt;ul&gt;&#xA;&lt;li&gt;Most certainly not.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Do I keep track of the number of lines of code? &#xA;&lt;ul&gt;&#xA;&lt;li&gt;Most certainly not.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Do I code in a dark cubicle in the back of the office?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Most certainly not.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Do I take long walks and surf the web?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I do indeed.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-11-24T17:24:32.960" CommentCount="2" />
  <row Id="21236" PostTypeId="2" ParentId="21217" CreationDate="2010-11-24T17:26:53.673" Score="1" ViewCount="" Body="&lt;p&gt;All of these have certain conditions but I've seen libs advertised there:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Javaranch/Coderanch&lt;/li&gt;&#xA;&lt;li&gt;The Server Side (TSS)&lt;/li&gt;&#xA;&lt;li&gt;JavaLobby&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-24T17:26:53.673" />
  <row Id="21237" PostTypeId="2" ParentId="21230" CreationDate="2010-11-24T17:27:40.603" Score="0" ViewCount="" Body="&lt;p&gt;One pro is that it shows that somebody does have basic knowledge of programming or whatever (the last time I encountered that, I was surprised how basic the SQL question was).  It also can serve as a basis for a technical discussion, asking why the candidate did such and such, and how it could be improved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It does take time in the interview, which could be used for other things.  Moreover, writing code on a whiteboard is not a natural environment, and some people will have more and less serious problems with it.  It could cause you to miss a developer who just gets nervous without normal tools or references.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-24T17:27:40.603" CommentCount="1" />
  <row Id="21238" PostTypeId="2" ParentId="21230" CreationDate="2010-11-24T17:28:37.807" Score="6" ViewCount="" Body="&lt;p&gt;Cons: None. Any time you spend setting up a PC, designing a code test, and reviewing it will save untold headache in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pros: &quot;Trust, but verify&quot; - Ronald Regan. So many times I've seen and heard of people finally let go from a position, where in the interview you'd think you were getting a rock star. The proof is in the pudding; I want to see what they can do. It will represent what happens once you invest time and money hiring someone and stick a new project in front of them.&lt;/p&gt;&#xA;" OwnerUserId="4202" LastActivityDate="2010-11-24T17:28:37.807" CommentCount="1" />
  <row Id="21239" PostTypeId="2" ParentId="21230" CreationDate="2010-11-24T17:28:53.583" Score="27" ViewCount="" Body="&lt;p&gt;With apologies to Scott Whitlock:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;none&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Pros:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Saves a LOT of time and heartache down the road if you prevent hiring someone who can't program&lt;/li&gt;&#xA;&lt;li&gt;Requires you to have a technical person in the interview&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-11-24T17:28:53.583" />
  <row Id="21240" PostTypeId="2" ParentId="21230" CreationDate="2010-11-24T17:30:10.893" Score="1" ViewCount="" Body="&lt;p&gt;You &lt;em&gt;really&lt;/em&gt; want to have the person write code in the interview - even better, get them to pair program with a member in your team for X amount of time (whatever you can comfortably afford in time/manpower).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's pretty much one of the only ways you can tell if that person can code or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I slightly prefer the pair programming as it'll show their team work, gives them a real IDE to work with and lets them work on a 'real' problem (the other person in the pair can guide them past any environmental specifics that the interviewee could never reasonably know about).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We've started using this hiring policy and we're really happy with the results.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-24T17:30:10.893" CommentCount="1" />
  <row Id="21241" PostTypeId="2" ParentId="2815" CreationDate="2010-11-24T17:32:42.593" Score="1" ViewCount="" Body="&lt;p&gt;Add some helpful syntatic sugar for the decorator pattern (i.e. composition not inheritance)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;interface IWindow {&#xA;    public void Draw();&#xA;    public void Close();&#xA;    ... more methods ...&#xA;} &#xA;sealed class SimpleWindow: IWindow {&#xA;    public void Draw() {/* draw window */}&#xA;    ... more methods ...&#xA;}&#xA;//extending this to add a scoll bar&#xA;sealed class ScrollBarDecorator : IWindow {&#xA;    private IWindow _component; //component class that has the basic implementation&#xA;&#xA;    public VerticalScrollBarDecorator (IWindow decoratedWindow) {&#xA;        _component = decoratedWindow;&#xA;    }&#xA;&#xA;    //&quot;override&quot; the behaviour we want to change/extend (one line)&#xA;    public void IWindow.Draw() {&#xA;        DrawScrollBar();&#xA;        _component.Draw();        &#xA;    }&#xA;&#xA;    //then type lots (potentially pages) of boilerplate code to forward the rest of the methods straight to the underlying component&#xA;    public void IWindow.Close() {&#xA;        _component.Close();        &#xA;    }&#xA;    ... more methods ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Unpleasant. Most people won't bother or will find any way to avoid this (i.e. damaging their class structures, twisting their code, bloating type hierarchies) - whereas, if we had a bit of syntatic sugar for this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;sealed class ScrollBarDecorator : IWindow {&#xA;    //note the new keyword &quot;decorates&quot;&#xA;    decorates private IWindow _component;&#xA;&#xA;    public VerticalScrollBarDecorator (IWindow decoratedWindow) {&#xA;        _component = decoratedWindow;&#xA;    }&#xA;&#xA;    //&quot;override&quot; just the behaviour we want to change/extend&#xA;    public void IWindow.Draw() {&#xA;        DrawScrollBar();&#xA;        _component.Draw();      &#xA;    }&#xA; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Finished. The boiler plate code to implement IWindow, delegating all the calls to _component would be implied/generated by the compiler. Far more coders would use this pattern if it were this simple to type.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-25T14:54:36.990" CommunityOwnedDate="2010-11-24T17:32:42.593" />
  <row Id="21242" PostTypeId="2" ParentId="21230" CreationDate="2010-11-24T17:32:56.337" Score="4" ViewCount="" Body="&lt;p&gt;When I interviewed for my current job, I was given a list of questions to write code for by the recruiter. I was very impressed because the questions were obviously written by someone who had a deep knowledge of SQL, so it works both ways.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-24T17:32:56.337" />
  <row Id="21243" PostTypeId="1" AcceptedAnswerId="21251" CreationDate="2010-11-24T17:37:13.720" Score="3" ViewCount="210" Body="&lt;p&gt;I work on several teams that are living in the past, and I'm trying to introduce them to new technologies like ASP.NET MVC2.  What are good ways to introduce new technology in a positive light?&lt;/p&gt;&#xA;" OwnerUserId="4422" LastActivityDate="2010-11-24T20:29:05.447" Title="How can I introduce new technology to my team?" Tags="&lt;education&gt;&lt;new-technology&gt;" AnswerCount="6" CommentCount="3" />
  <row Id="21244" PostTypeId="2" ParentId="3997" CreationDate="2010-11-24T17:37:53.380" Score="3" ViewCount="" Body="&lt;p&gt;My answer from &lt;a href=&quot;http://stackoverflow.com/questions/502995/offshoring-does-it-ever-work/503510#503510&quot;&gt;stackoverflow&lt;/a&gt;, updated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most out-sourced software development ends up with a product that is late, over budget and delivered without all the agreed upon features. As we all know, this &lt;em&gt;never happens&lt;/em&gt; with in-house software development. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that said, the only out sourced system that I've seen actually &lt;em&gt;work&lt;/em&gt; well was one that was a reverse engineering web port. Two old clunky vb6/sybase apps we updated screen-by-screen report-by-report to ASP.NET backed by SQL Server 2k. The out source firm did this on time and almost on budget. My involvement was to listen in on the bi-weekly status phone call where they would request clarification and we would agree to send screen shots and supporting documents. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Management considered this project was a &lt;em&gt;success&lt;/em&gt;. After spending a boat load of money, the clunky vb6 app with a dated UI and antiquated feature set that no one knew how to support was replaced with a clunky web app with a dated UI and antiquated feature set that no one knew how to support. Mission accomplished, since the goal was &lt;em&gt;port the app&lt;/em&gt; and not &lt;em&gt;make the app better.&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Management clearly saw this as an investment in app porting, not people or process or knowledge development. If the same time and money had been spent in-house, the results might have been a flop. Or they might have resulted in a less clunky app with a feature set that better supported the business. But this would require people to talk about what the app does rather than how the app runs. It might require much more involvement from the users. It might even require trusting the developers on what might be changed. This is nearly impossible when the programmers are out of sight and out of mind, never seen by management let alone able to interact with the users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The moral of the story is that defective management tends to enforce defective processes which yield defective results. Having the team far away from management makes it all the more difficult to notice bad processes and the improper management that causes it. &lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-11-24T17:37:53.380" CommentCount="2" />
  <row Id="21245" PostTypeId="2" ParentId="21230" CreationDate="2010-11-24T17:39:06.353" Score="15" ViewCount="" Body="&lt;p&gt;If you were going to hire a juggler, you'd be insane not to have him juggle for you. Or a musician you'd have audition. Otherwise you get stuff like the &lt;a href=&quot;http://www.youtube.com/watch?v=DBzWHudBoiA&quot; rel=&quot;nofollow&quot;&gt;awesome yo-yo &quot;master&quot; K-strass&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Walking through something on a whiteboard is the programmers equivalent of a quick demo juggle. &lt;/p&gt;&#xA;" OwnerUserId="6644" LastEditorUserId="6644" LastEditorDisplayName="" LastEditDate="2010-11-24T17:49:48.143" LastActivityDate="2010-11-24T17:49:48.143" CommentCount="3" />
  <row Id="21246" PostTypeId="2" ParentId="20790" CreationDate="2010-11-24T17:41:47.353" Score="1" ViewCount="" Body="&lt;p&gt;Let me discuss this from the angle of the commercial software I've used that has driven me crazy. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Too much flexibility - this is critical. Do not let your desire to offer flexibility mean that you give up on designing the features most people would want. I have never used a &quot;flexible&quot; product that users actually liked using. They don't want to have to figure out how to fix your design errors. We have &quot;flexible&quot; project management software from a well-know vendor that shall remain nameless. It's so flexible it doesn't have things like a field for the client who requested the project (Just how many companies big enough to need a product that costs tens of thousands of dollars don't need to be able to sort projects by client? That would be zero.). When you convert an idea or an incident to a project, the information doesn't automatically move to the project, making searching for details about what was wanted or who wanted it extremely annoying because the devs didn't really design the system, since it was so &quot;flexible&quot;. The complexity of trying to add fields and then fix all the forms so you can see those fields means that pretty much everyone has given up using the product for all the &quot;great&quot; features it was sold to us as having and only use it to document time.  In general, the more flexible a system is, the more people will hate it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lack of consideration for performance by wanting to be database neutral instead of writing the better performing code that might be database specific. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lack of testing in an environment with hundreds of simultaneous users and a large data set in the database. Database queries that work fine for small data sets are often disatrous for large databases. I worked at a call center once that had a well-know call center software program, it could take ten minutes to move from one screen to the next. You can imagine how much both the call takers and the users liked this. Our most common error was a timeout on the database.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Change for change sake. Nothing annoys users more than getting a new version of something that rearranges how to do everything and yet adds no features that they wanted or needed (see Office 2007 and the crappy Ribbon they added and the menu structure they removed). I don't want to have to relearn the stuff I depend on day-to-day evey year or two years and neither do most users. It's one thing to learn new techiniques to better solve problems and it's another thing to just reaarrange the GUI so that you can't find all the stuff you already knew how to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Customer service. If I have a problem, I want you to help me fix it quickly and without it costing too much, especially if I paid a huge amount for the software. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ridiculously buggy software. Come on, I shouldn't be able to break it doing common tasks in an ordinary way. You did test this stuff didn't you? It is especially anoying when you hit bugs in installation or the first couple of days using the product. It is even more annoying when the stuff that worked great in the last version no longer works.  Sure all code has bugs, we know that, but the most obvious ones should be tamed before shipping. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now as to a company that does it right - I submit that Red-Gate is that company. Their stuff just works, it does what it says it should do without a lot of trouble on my part to use it, it's fast and their customer service is great. Pretty much every experienced SQl Server dba I have ever known recommends buying their tools. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-24T17:41:47.353" />
  <row Id="21247" PostTypeId="2" ParentId="14650" CreationDate="2010-11-24T17:45:58.930" Score="0" ViewCount="" Body="&lt;p&gt;&quot;Structure and Interpretation of Computer Programs&quot;, Abelson &amp;amp; Sussman.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Structured Programming&quot;, Dahl, Dijkstra &amp;amp; Hoare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;GOTO Statement Considered Harmful&quot;, Dijkstra.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-11-24T17:45:58.930" CommunityOwnedDate="2010-11-24T17:45:58.930" />
  <row Id="21248" PostTypeId="2" ParentId="21230" CreationDate="2010-11-24T17:46:05.513" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You judge a bird by its feathers and a programmer by his/her code.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I started with the current company I'm working for they asked me to write some C code that generates or checks the parity bit of some binary input (depending on whether you are encoding or decoding). This was an interview question exactly because these kinds of problems are solved during work. Of course I'm thinking of not parity checking but rather working on a low-level.&lt;/p&gt;&#xA;" OwnerUserId="8454" LastActivityDate="2010-11-24T17:46:05.513" />
  <row Id="21249" PostTypeId="2" ParentId="21243" CreationDate="2010-11-24T17:46:57.163" Score="1" ViewCount="" Body="&lt;p&gt;Give then a reason to use it by showing them what they could do that they can't do using the old tools. Of course it helps if your examples are things they actually would like to be able to do. Even better if they solve long-standing annoying problems.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-24T17:46:57.163" CommentCount="1" />
  <row Id="21250" PostTypeId="2" ParentId="21230" CreationDate="2010-11-24T17:49:06.633" Score="5" ViewCount="" Body="&lt;p&gt;I don't see the cons. An interview has many parts, and a candidate should be endorsed 'up the chain' a few times. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I interview ~10 people weekly. I really, really, REALLY appreciate the fact that HR has done all of the background work and presented me with plenty of notes. By the time they get to me, it's time for me to score their tests. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The tests depend entirely on the position. Generally, I try to probe:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;General programming skill. Can you use operators effectively? Can you conceive a numerical system that has a radix which is not 10?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do you know how to do what we're hiring you to do?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Evaluation of your contributions to any open source projects that you listed&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I try to keep it short, and fun. When I go into the office, I grab the answers, look them over and then conduct a secondary interview. To get hired, you typically have to get through three interviews.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also gauge how well you will blend in with the team that will be receiving you. That team counts on me to do that effectively. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is one thing to answer questions in meta form, it is another to actually produce code. If I'm going to hire you, I really need to see you produce code.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-24T17:49:06.633" CommentCount="4" />
  <row Id="21251" PostTypeId="2" ParentId="21243" CreationDate="2010-11-24T17:49:27.040" Score="7" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Know your stuff&lt;/strong&gt;; be prepared for questions, lots and lots of them. People have a natural inclination against change, especially in the world of technology/the Internet. By proposing a new way of doing things or a new technology, you're effectively asking them to change a large part of their life. If you want the change to be successful, you need to make sure that they're informed enough to make the decision, and comfortable that you know enough to be able to support them through the change.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Be positive!&lt;/strong&gt; If someone approaches me asking me to try something out, but starts by telling me about all its problems and admitting that my current way of doing things is probably better, then I'm not likely to switch over. You're sure of the new technology and how it can make things easier for you and for them, but they're not. A good attitude and a heavy dosage of charisma will make things go much smoother and easier.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Good luck with pulling those cavemen up into modern times!&lt;/p&gt;&#xA;" OwnerUserId="8342" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-24T20:29:05.447" LastActivityDate="2010-11-24T20:29:05.447" />
  <row Id="21252" PostTypeId="2" ParentId="21243" CreationDate="2010-11-24T17:49:52.787" Score="3" ViewCount="" Body="&lt;p&gt;At an old job we had a project space called Area51 for use to hack up facets and try new technologies. We would just add new classes, write a script to launch and write a note on what we were doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only rule was to keep the projects build-able and keep one new idea or tool per public static void main() {...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea came about from a &lt;em&gt;don't tell me why we should, show me&lt;/em&gt; conversation with a coworker. Showing how it would work with existing code in dev was pretty useful. We start to use Spring 1.0 based on a few facets in Area51.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-11-24T17:49:52.787" CommentCount="1" />
  <row Id="21253" PostTypeId="2" ParentId="21243" CreationDate="2010-11-24T17:50:17.553" Score="0" ViewCount="" Body="&lt;p&gt;Show them some practical, &quot;flashy&quot; examples. Most programmers are imaginative enough that when they see some cool example they start thinking about what &lt;strong&gt;they&lt;/strong&gt; could do with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course if they are close minded, this won't work.&lt;/p&gt;&#xA;" OwnerUserId="8454" LastActivityDate="2010-11-24T17:50:17.553" />
  <row Id="21254" PostTypeId="2" ParentId="21169" CreationDate="2010-11-24T17:54:26.350" Score="0" ViewCount="" Body="&lt;p&gt;It will probably be difficult or impossible these days, but dig out photos of an old computerized police dispatching system for a LARGE city.  Take a look at the truly ancient IBM 327x (usually 3277 or 3278) terminals.  Notice that they are HUGE, so that the operator is looking straight ahead, vs. looking down.  Notice the slant on the keyboards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now go take a look at an IBM Selectric (tm) typewriter.  Notice the similarities between the Selectric and the 327x keyboard designs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you REALLY want to expand your horizons, dig out pictures of the old IBM 029 key punch.  Notice the keyboard design features.  (I first learned to touch-type FORTRAN on an IBM 029.  I later learned to touch-type in general on model 33 and model 35 Teletypes.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IBM (and others) spent a HUGE amount of money, back when the money was worth a lot more, figuring out how to build workstations for people who were going to be almost literally CHAINED to them all day long, doing a LOT of typing.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-11-24T17:54:26.350" />
  <row Id="21255" PostTypeId="2" ParentId="21230" CreationDate="2010-11-24T18:00:00.620" Score="2" ViewCount="" Body="&lt;p&gt;One con I can think of is that it is hard to &quot;code out loud&quot; in front of other people. I find it hard even to type with someone looking over my shoulder, and I'm not alone. I notice when someone calls me over to their workstation to help with something, they suddenly start making typos, selecting the wrong code-completion, even making downright mistakes — none of which they would have made had I not been sitting right there. Hell, I've seen people start using the menu for cut &amp;amp; paste operations, just because they were under observation. This is not normal behavior, and the coders I'm talking about are excellent programmers and quite smart besides.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recently had an interview in which the interviewer asked me how I would code a particular operation and he said, &quot;Just show me the math.&quot; Well, I had to think about the problem first before getting to the math of it, so that had me hemming and hawing. What I put down on the white board at first was embarrassing, and I felt I was losing at that point. I eventually got the A-ha moment and found the answer (actually when it finally occurred to me what he was &lt;em&gt;really&lt;/em&gt; asking), but the &quot;mess&quot; I made before I got there made me feel very uncomfortable. Nevertheless, I got the job, but if the interviewer had been less patient I might not have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think if you give interviewees a coding task, give them some time alone to work it out on a computer, perhaps even in an IDE they're familiar with. Let them write the code for you and then talk about it. Ask them why they did things a certain way, and whether another way might not be better. You will find out more from that kind of process than by asking them to (figuratively speaking) pee into a cup right in front of you.&lt;/p&gt;&#xA;" OwnerUserId="2618" LastActivityDate="2010-11-24T18:00:00.620" CommentCount="1" />
  <row Id="21256" PostTypeId="1" CreationDate="2010-11-24T18:03:50.990" Score="6" ViewCount="755" Body="&lt;p&gt;Java is always found at academia, what is the reason behind that? &lt;/p&gt;&#xA;" OwnerUserId="26782" LastActivityDate="2011-05-17T11:46:45.670" Title="Why do we study Java at university?" Tags="&lt;java&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="2" />
  <row Id="21257" PostTypeId="2" ParentId="21256" CreationDate="2010-11-24T18:11:10.147" Score="8" ViewCount="" Body="&lt;p&gt;There's a few reasons for that including:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ubiquity in the job market--if universities want their students to get employed (and recommend more students to the the university) they need to teach relevant languages.&lt;/li&gt;&#xA;&lt;li&gt;Simplifies the curriculum&lt;/li&gt;&#xA;&lt;li&gt;Easier to grade and easier to implement your homework in it.&lt;/li&gt;&#xA;&lt;li&gt;Garbage collected so no need to teach pointers and manual memory management&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Do note that there are a number of schools who teach C# for many of the same reasons.  There are many more reasons, some of them more particular to the individual school.  In essence, Java has become the object oriented &quot;BASIC&quot; of yesteryear.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-11-24T18:11:10.147" CommentCount="2" />
  <row Id="21258" PostTypeId="2" ParentId="21223" CreationDate="2010-11-24T18:14:36.160" Score="4" ViewCount="" Body="&lt;p&gt;In most of my jobs there isn't any training or orientation even.  Only in my current position was there any initial time spent for &quot;new employees.&quot;  All other places there was an initial form to fill out for income tax stuff and possibly the direct deposit stuff but generally not much else is done in a formal sense.  There are usually projects or work items to start with to get acclimatized to the code base though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The nature of my work can vary from handling a support request(This application doesn't work for me, fix it!), bugs in some project code, implementing some feature or enhancement on something, upgrading an existing system, documenting what I do, writing code, designing code, deploying code(move from dev to test or test to staging) and asking questions tend to be the majority of my work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There isn't that much time spent writing code.  Revising code though is another story.  This is more about changing code than just writing new stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The difficulties are a &lt;strong&gt;large&lt;/strong&gt; part of the job.  After all, nearly all of my real work comes down to solving problems of one form or another.  The idea is that I have enough analytical, creative and detective skills to resolve most problems.  There can be cases where I'll spend days trying to fix a bug that is just fruitless and those then have to get passed onto someone else generally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on the project there may or may not be existing code or domain elements.  The domain can vary a bit as depending on where one works within an org chart can play a role here.  For example, some developers may work in product development and work on new or existing products.  On the other hand, there are also developers like myself that work within IS, often installing and/or customizing applications for the company to use.  For example, a content management system may involve months of work and multiple other departments involvement to get it done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think I'd want to guess my average number per day as it isn't it probably isn't that high, probably less than 100 I'd guess.  While I have had rare times where I spewed code and did thousands of lines in a day, those are pretty rare since there is more time spent gathering the requirements and analysis of the problem than getting to the actual code.  There are also tons of auto-generated lines of code.  If you know ASP.Net you could see quite a few lines made by Visual Studio for me rather than having to type everything myself.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-24T18:14:36.160" CommentCount="1" />
  <row Id="21259" PostTypeId="2" ParentId="21243" CreationDate="2010-11-24T18:21:14.620" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Answer these questions -&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Issues and workarounds that exist currently?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How it may potentially solve them and additional benefits(performance etc) ?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2457" LastActivityDate="2010-11-24T18:21:14.620" />
  <row Id="21260" PostTypeId="1" AcceptedAnswerId="21263" CreationDate="2010-11-24T18:30:12.713" Score="3" ViewCount="165" Body="&lt;p&gt;Hi.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found some videos that explain C# but it back to C#.NET when it is first appeared, if I learn from these videos will I learn something that has been removed from the language? will I miss alot? &lt;/p&gt;&#xA;" OwnerUserId="26782" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-24T18:46:08.787" LastActivityDate="2010-11-25T06:03:13.230" Title="Is it ok to learn from C# 2002 materials?" Tags="&lt;c#&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="21261" PostTypeId="2" ParentId="21169" CreationDate="2010-11-24T18:31:45.507" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Enter &lt;a href=&quot;http://en.wikipedia.org/wiki/Model_M_keyboard&quot; rel=&quot;nofollow&quot;&gt;IBM Model M&lt;/a&gt;&lt;/strong&gt; with a USB adaptor or a &lt;a href=&quot;http://pckeyboards.stores.yahoo.net/customizer.html&quot; rel=&quot;nofollow&quot;&gt;Unicomp&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/WTQSV.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course you do know about the &lt;em&gt;Apple Extended Keyboard&lt;/em&gt;, yes?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/St373.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="2274" LastEditorDisplayName="" LastEditDate="2010-11-24T18:41:41.753" LastActivityDate="2010-11-24T18:41:41.753" CommentCount="3" />
  <row Id="21262" PostTypeId="2" ParentId="21260" CreationDate="2010-11-24T18:35:02.600" Score="1" ViewCount="" Body="&lt;p&gt;You will miss a good amount of the new features.  I think you'd be better off focusing on newer training materials.  This way you won't have to unlearn all of the stuff from the earlier versions as you learn stuff from the more modern versions.  The .NET of 2002 is very different from the .NET of today.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-11-24T18:35:02.600" CommentCount="1" />
  <row Id="21263" PostTypeId="2" ParentId="21260" CreationDate="2010-11-24T18:43:20.613" Score="8" ViewCount="" Body="&lt;p&gt;Whatever you find, it should start at C#/.NET 2.0.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Much of .NET 1.0 was refined in 2.0 with generics, and the 2.0 framework is still widely used today; the 3.0 and 3.5 frameworks are enhancements to 2.0, not rewrites. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're looking for a beginner book, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1449380344&quot; rel=&quot;nofollow&quot;&gt;Head First C#&lt;/a&gt; is pretty good.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-24T19:27:33.117" LastActivityDate="2010-11-24T19:27:33.117" CommentCount="1" />
  <row Id="21264" PostTypeId="2" ParentId="21169" CreationDate="2010-11-24T18:44:22.750" Score="0" ViewCount="" Body="&lt;p&gt;I personally can't stand typing on anything other than an Apple keyboard or other similar keyboard with short/quiet keys (such as the &lt;a href=&quot;http://www.amazon.com/Microsoft-Wireless-Entertainment-Desktop-Silver/dp/B000H12IAC&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Microsoft-Wireless-Entertainment-Desktop-Silver/dp/B000H12IAC&lt;/a&gt; I have on my PC at home).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With traditional keyboards such as the default Dell keyboard, I find them so loud they are distracting and feel like my fingers get more tired from the longer throw of the key.  I haven't had any pain from the ergonomics of the standard flat Mac keyboard.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-11-24T18:44:22.750" />
  <row Id="21265" PostTypeId="1" CreationDate="2010-11-24T18:45:38.223" Score="26" ViewCount="1107" Body="&lt;p&gt;Say you need to hire a programmer. You have two candidates at your table: one has studied 5 years at uni (and holds a Master's degree, of course), but has no work experience; and the other holds no university degree but has worked for 5 years. Also assume that they both know the same programming languages, have about the same personality and spend equal amount of time programming on their spare time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you only had this information to go on, which would you pick?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-12-09T18:18:10.077" Title="5 years of uni vs. 5 years of work - Which would you pick if hiring?" Tags="&lt;hiring&gt;&lt;work&gt;&lt;university&gt;" AnswerCount="18" CommentCount="8" FavoriteCount="9" />
  <row Id="21266" PostTypeId="2" ParentId="21260" CreationDate="2010-11-24T18:46:12.153" Score="0" ViewCount="" Body="&lt;p&gt;You will miss a ton of features. As jkohlhepp said, the .Net of today is much different than that of when it was first released. You can check out &lt;a href=&quot;http://msdn.microsoft.com/en-us/beginner/dd435692.aspx&quot; rel=&quot;nofollow&quot;&gt;Windows Development For Beginners&lt;/a&gt; and &lt;a href=&quot;http://msdn.microsoft.com/en-us/beginner/bb308760.aspx&quot; rel=&quot;nofollow&quot;&gt;Web Development For Beginners&lt;/a&gt; on Microsoft's site. This is targeted towards beginners (obviously) but there are links to othe resources as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take advantage of Microsoft's &lt;a href=&quot;http://msdn.microsoft.com&quot; rel=&quot;nofollow&quot;&gt;MSDN&lt;/a&gt; as I think it has great documentation and has helped me along greatly! That is one of the things I love about the .Net languages and that I have found lacking in other langauges (Python has a decent documentation, but it is nowhere the caliber of the MSDN).&lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-11-24T18:46:12.153" />
  <row Id="21267" PostTypeId="1" AcceptedAnswerId="21278" CreationDate="2010-11-24T18:46:19.240" Score="3" ViewCount="369" Body="&lt;p&gt;This was an interview question I got asked. As a software developer I work on whatever task is assigned to me, sometimes it's a GUI component requiring me to add a new dialog box, or change the existing GUI, other times it's a business logic that I need to add/modify, or a new interface required to expose some 3rd party library's functionality - so when I asked this question in an interview, how should I answer it? What exactly are they looking for? &lt;/p&gt;&#xA;" OwnerUserId="8514" LastActivityDate="2011-01-28T08:41:57.287" Title="How to answer the question whether I'm a front-end, middle-tier or back-end developer" Tags="&lt;interview&gt;" AnswerCount="4" CommentCount="4" FavoriteCount="2" />
  <row Id="21268" PostTypeId="2" ParentId="21267" CreationDate="2010-11-24T18:48:20.327" Score="2" ViewCount="" Body="&lt;p&gt;&quot;I'm a developer - period.  I can do all of those things.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code is code - it really doesn't matter which &quot;tier&quot; it's on for us to do our jobs.&lt;/p&gt;&#xA;" OwnerUserId="3249" LastActivityDate="2010-11-24T18:48:20.327" CommentCount="7" />
  <row Id="21269" PostTypeId="2" ParentId="21267" CreationDate="2010-11-24T18:48:33.853" Score="8" ViewCount="" Body="&lt;p&gt;You should answer it like this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;As a software developer I work on&#xA;  whatever task is assigned to me,&#xA;  sometimes it's a GUI component&#xA;  requiring me to add a new dialog box,&#xA;  or change the existing GUI, other&#xA;  times it's a business logic that I&#xA;  need to add/modify, or a new interface&#xA;  required to expose some 3rd party&#xA;  library's functionality&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And then briefly describe your understanding of software tiers.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-24T18:48:33.853" CommentCount="1" />
  <row Id="21270" PostTypeId="2" ParentId="21260" CreationDate="2010-11-24T18:49:10.047" Score="5" ViewCount="" Body="&lt;p&gt;You 'can', but in my opinion, don't waste your time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Buy a new book, or go to current websites, and get current information.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-11-24T18:49:10.047" />
  <row Id="21271" PostTypeId="2" ParentId="21256" CreationDate="2010-11-24T18:51:39.123" Score="21" ViewCount="" Body="&lt;p&gt;A &lt;em&gt;few&lt;/em&gt; Universities have somebody who's sufficiently well known that many (if not most) decisions revolve around that person's likes, dislikes, opinions, taste, etc. Just for example, Texas A&amp;amp;M has Bjarne Stroustrup on staff; it probably comes as little surprise to anybody that their curriculum tends to emphasize C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most universities are a bit different though. First, decisions are often made much more for the benefit of the faculty than the students. The single biggest criterion in many cases is &quot;which language requires the least effort on our part?&quot; Most of them are also careful in their laziness -- they want not only the language with the fewest advanced concepts to learn, but also one that is (for example) the slowest to innovate, update, or embrace anything new.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, most decisions are made by committee. This means the final decision is rarely (if ever) what anybody actually wanted -- it's just what the fewest members of the committee (especially those with the most influence) found particularly objectionable. It's like picking a flavor of ice cream. One really likes strawberry, but another is allergic to strawberries. Another really loves chocolate, but somebody else can't stand it.  Yet another thinks rum raisin is great, but the other two worry that mentioning &quot;rum&quot; would be interpreted as encouraging alcohol abuse -- so they end up with vanilla, even though it's not what anybody really wanted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, even though it &lt;em&gt;usually&lt;/em&gt; runs directly contrary to most of what the previous two criteria would produce in isolation, they generally need (or at least want) to be seen as responsive to the needs of industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java is the intersection of these three:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Every concept it embodies was well known by 1980. There's not much to know beyond the very most basic notion of what OOP is.&lt;/li&gt;&#xA;&lt;li&gt;It's the tasteless, odorless, non-toxic, biodegradable, politically correct choice.&lt;/li&gt;&#xA;&lt;li&gt;Nearly the only other language in history to have existed as long and (probably) innovated less is SQL. Even though they're hardly what you'd call fast-moving targets, COBOL and Fortran have still both innovated more than Java.&lt;/li&gt;&#xA;&lt;li&gt;It is widely used. When you get down to it, profs and PHBs have similar criteria.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Note that I'm not really saying (for example) that there's nothing more to know about Java than the most basic notion of what OOP is -- only that that's all that's needed to do what passes for an acceptable job of teaching it.&lt;/p&gt;&#xA;" OwnerUserId="902" LastEditorUserId="902" LastEditorDisplayName="" LastEditDate="2010-11-24T19:28:33.023" LastActivityDate="2010-11-24T19:28:33.023" CommentCount="7" />
  <row Id="21272" PostTypeId="2" ParentId="21265" CreationDate="2010-11-24T18:51:54.240" Score="4" ViewCount="" Body="&lt;p&gt;it depends on the assignment. for example if the Master's thesis was in a research area that was critical to the project. in general, experience wins...but i don't have a large corporate HR department vetting candidates!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-24T18:51:54.240" CommentCount="1" />
  <row Id="21273" PostTypeId="2" ParentId="21265" CreationDate="2010-11-24T18:51:59.800" Score="44" ViewCount="" Body="&lt;p&gt;I'd pick the guy with the work experience.  He's a whole lot more likely to have experience with stuff like source control, team software development, edge cases/error handling and all those real-world things that programming classes don't tend to cover much, if at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This may or may not count for anything, depending on who the previous employer was, but it's worth noting that five years ago, this guy was good enough to get a programming job somewhere without a degree &lt;em&gt;or&lt;/em&gt; work experience.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-11-24T18:51:59.800" CommentCount="10" />
  <row Id="21274" PostTypeId="2" ParentId="21265" CreationDate="2010-11-24T18:53:51.150" Score="15" ViewCount="" Body="&lt;p&gt;This depends on which kind of programmer I want:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Do I want someone with more experience as the majority of other developers are rather green and thus haven't quite had to deal with real-world projects?  If yes, then I'd take the 5 years of work as that could be very useful possibly.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do I want someone that may have little work experience as the majority of other developers have a lot of experience and would like to take on a more junior developer? If yes, then the 5 years of uni. may be better as this person hasn't been molded by experience yet.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Another way to state this is whether or not that work experience can be seen as a good thing or a bad thing in hiring someone.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-24T18:53:51.150" />
  <row Id="21275" PostTypeId="2" ParentId="21265" CreationDate="2010-11-24T18:57:04.407" Score="12" ViewCount="" Body="&lt;p&gt;That really depends on &lt;em&gt;what&lt;/em&gt; the work experience is.  Myself, I would say I've learned more &lt;em&gt;practical&lt;/em&gt; skills on the job than I ever did at university.  But then again, as the saying goes, &lt;em&gt;some people get 5 years of experience, other people just get 1 year of experience 5 times.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does the experienced guy have &lt;em&gt;stable&lt;/em&gt; employment history?  Did he work on important projects?  Did he have important roles?  So much is riding on the specifics.  At least, with a Master's degree, you know exactly what you're getting.  It's very possible for people to slug through 5 years of work without ever really accomplishing anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you really need to evaluate the &lt;em&gt;specifics&lt;/em&gt; of the experience.  What did they learn/do in university and what did they do (and hopefully learn) on the job?  Which is more relevant to the projects your company does?  That is where your answer will lie.&lt;/p&gt;&#xA;" OwnerUserId="3249" LastActivityDate="2010-11-24T18:57:04.407" CommentCount="3" />
  <row Id="21276" PostTypeId="2" ParentId="21256" CreationDate="2010-11-24T18:57:05.640" Score="2" ViewCount="" Body="&lt;p&gt;I like Joel Spolsky's post entitled &lt;a href=&quot;http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html&quot; rel=&quot;nofollow&quot;&gt;The Perils Of Java Schools&lt;/a&gt;. I think &lt;A href=&quot;http://programmers.stackexchange.com/users/6509/berin-loritsch&quot;&gt;Berin Loristch&lt;/a&gt; is correct about it simplifying the cirriculum and it also being applicable to the real world. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have heard the following said many times: &quot;a Computer Science degree isn't a degree to learn programming, it is to learn the theory&quot;. The language doesn't necessarily need to matter (although it shoudln't get in the way) as long the theory is being learned. Java is a relatively easy language to pick up and that allows for more time to be spent learning the theory behind everything. This is one of the reasons that MIT uses Scheme (so I've heard). &lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-11-24T18:57:05.640" CommentCount="4" />
  <row Id="21277" PostTypeId="2" ParentId="21265" CreationDate="2010-11-24T18:59:29.067" Score="7" ViewCount="" Body="&lt;p&gt;With the information given its a coin toss. Neither metric, years of work experience or college experience, tells you which candidate has more value. &lt;/p&gt;&#xA;" OwnerUserId="162" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-11-24T23:19:01.093" LastActivityDate="2010-11-24T23:19:01.093" />
  <row Id="21278" PostTypeId="2" ParentId="21267" CreationDate="2010-11-24T19:04:41.640" Score="2" ViewCount="" Body="&lt;p&gt;This is an attempt at a somewhat comprehensive, what would I do answer.  I'd be aware of a couple of things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Did the job description specify which tiers the work may involve mostly?  This can be a clue as to which tier may be worth emphasizing.  If the job is mostly UI work then that is often considered the front-end while the databases tend to be more back-end.  However, those are generalizations that can backfire in some rare cases.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do I have a preference?  Do I prefer UI work over database or vice versa?  This can also be important as if I really love databases then doing UI work may not be a good fit.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;How I understand the tiers, generally:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Front-end - Generally UI level work where user interaction and how the application looks can matter more than the other tiers.  This can be the eye candy tier.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Middle-tier - This is the glue between those applications in the front-end and back-end.  Generally this involves some form of service that passes data from A to B.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Back-end - This is the core of a system at its guts.  This has the least connections to the user.  Databases and server stuff that doesn't involve the end-user tend to be this part.  Eye candy can be rare here though there are some systems that can have this mixed up to some extent,e.g. a content management system may have 2 front-ends as there is the site for visitors and another site for content authors that are both fronts to how to see the application.  In the example, the content authors may see the back-end as they are working more with the inner guts of the system rather than what the customer or site visitor would have to experience.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-24T19:04:41.640" />
  <row Id="21279" PostTypeId="2" ParentId="21243" CreationDate="2010-11-24T19:11:01.760" Score="1" ViewCount="" Body="&lt;p&gt;If &lt;strong&gt;they&lt;/strong&gt; are not in &lt;strong&gt;demand&lt;/strong&gt;, it will be difficult to convince &lt;strong&gt;them&lt;/strong&gt;. You don't have to introduce a new technology, you have to &lt;code&gt;sell&lt;/code&gt; &lt;strong&gt;them&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ask your &lt;strong&gt;team&lt;/strong&gt; if they would be &lt;strong&gt;interested&lt;/strong&gt; in the presentation of the technology&lt;/li&gt;&#xA;&lt;li&gt;Identify &lt;strong&gt;their&lt;/strong&gt; &quot;&lt;code&gt;pain&lt;/code&gt;&quot;(s). Problems that can be potentially solved by your technology.&lt;/li&gt;&#xA;&lt;li&gt;Your describe the technology with objectivity (pros &amp;amp; cons) and put emphasis on the parts that can reduce &lt;strong&gt;their&lt;/strong&gt; &lt;code&gt;pain&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;You ask them for &lt;strong&gt;their&lt;/strong&gt; opinion how it can be useful for &lt;strong&gt;their&lt;/strong&gt; projects&lt;/li&gt;&#xA;&lt;li&gt;Be prepared to face resistance&lt;/li&gt;&#xA;&lt;li&gt;Never try to impose your idea&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Pain&lt;/strong&gt; concept is from &lt;a href=&quot;http://en.wikipedia.org/wiki/Solution_selling&quot; rel=&quot;nofollow&quot;&gt;Solution Selling&lt;/a&gt; method.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-24T19:11:01.760" />
  <row Id="21280" PostTypeId="1" AcceptedAnswerId="21282" CreationDate="2010-11-24T19:11:11.290" Score="10" ViewCount="712" Body="&lt;p&gt;I am about to start a new job at a startup company on Monday. Today they asked me what I want for a PC for work, Windows, Linux or Mac (presumably a laptop). I am proficient with Windows and Linux but I have never used a Mac, so without hesitation I said I wanted a Mac. Without looking like a idiot on the first day of the new job and without access to a MacBook over the Thanksgiving weekend, what resources would you recommend for me to learn as much as possible before I lay my hands on my Mac? Looks like they use Google Apps so the office suite part is all set, for development, I will use C++/STL/Boost and GCC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few months ago, I asked about a slightly different question on the Stack Exchange Unix forum: &lt;a href=&quot;http://unix.stackexchange.com/questions/723/software-developer-switching-from-linux-to-os-x-what-are-the-gotchas&quot;&gt;Software developer switching from Linux to OS X, what are the gotchas?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update 1: I'm expecting to work longer than normal hours, so I wouldn't think using some time on the job to acquire a new skill is such a bad thing to the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update 2: I'm writing on my new MacBook Pro now, I love my new Mac. thanks for all the answers for helping with this transition.&lt;/p&gt;&#xA;" OwnerUserId="42" LastEditorUserId="42" LastEditorDisplayName="" LastEditDate="2010-11-30T14:13:05.373" LastActivityDate="2010-11-30T14:13:05.373" ClosedDate="2010-12-01T12:13:35.403" Title="What are the essential things I should know about the Mac?" Tags="&lt;mac&gt;&lt;osx&gt;" AnswerCount="10" CommentCount="12" FavoriteCount="8" />
  <row Id="21281" PostTypeId="2" ParentId="21280" CreationDate="2010-11-24T19:26:25.257" Score="1" ViewCount="" Body="&lt;p&gt;Chrome is Nice. Also, live with the choices Apple has made for you, otherwise you Will be VERY frustrated &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-24T19:26:25.257" CommentCount="9" />
  <row Id="21282" PostTypeId="2" ParentId="21280" CreationDate="2010-11-24T19:37:03.960" Score="16" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Terminal&lt;/strong&gt; will be your bash shell.&lt;/li&gt;&#xA;&lt;li&gt;&lt;kbd&gt;Cmd&lt;/kbd&gt; + &lt;kbd&gt;space&lt;/kbd&gt; is the shortcut to open Spotlight, which you can use to launch any application that you don't have in your dock.&lt;/li&gt;&#xA;&lt;li&gt;Understanding the File System helps:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;/Applications&lt;/strong&gt; is where system wide apps go (I install everything here).  An &quot;Application&quot; is essentially a folder with a &lt;code&gt;.app&lt;/code&gt; file extension and most well-written apps are entirely self-contained&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;/Library&lt;/strong&gt; is where system settings, caches, etc. are stored. Applications will put any support files into &lt;em&gt;/Library/Application Support/[folder for that app]&lt;/em&gt;.  &lt;em&gt;/Library/Preferences/...&lt;/em&gt; is where the system and apps store preferences (duh). &lt;em&gt;/Library/PreferencePanes&lt;/em&gt; is where Third-party system preference extensions go. *&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;/Users/[username]&lt;/strong&gt; is the convention for your user just like every operating system these days.  Inside your User directory there will be a &lt;em&gt;Library&lt;/em&gt; folder with the same structure as above, but for your user (again, duh).&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;SVN&lt;/strong&gt; is preinstalled.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;XCode Developer Tools&lt;/strong&gt; (shipped with the OS but not installed by default) will install most of the GCC stuff (I believe) but I'm not a C programmer so I can't give you details on this :)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Mail&lt;/strong&gt;, the built in Mail app is great, it's the only desktop mail client I still use (by choice) on any system.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;By the way, since other users seem to be poking fun, I should say I think it's a great choice, especially for a Linux user.  I find that Mac has all the power and convenience of a Unix system (basic Unix commands built in, native SSH, etc.), combined with the best hardware available, a great UI and great utility apps (Adium for IM, Mail, Textmate, Preview, iCal/Address Book, etc.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only case in which I &lt;em&gt;wouldn't&lt;/em&gt; choose a Mac is if I were developing specifically for Microsoft/Windows components!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[&lt;strong&gt;Edit:&lt;/strong&gt;] I forgot the most common keyboard actions for someone new to Mac:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;kbd&gt;Cmd&lt;/kbd&gt; + &lt;kbd&gt;Q&lt;/kbd&gt; Quit program&lt;/li&gt;&#xA;&lt;li&gt;&lt;kbd&gt;Cmd&lt;/kbd&gt; + &lt;kbd&gt;W&lt;/kbd&gt; Close window&lt;/li&gt;&#xA;&lt;li&gt;&lt;kbd&gt;Cmd&lt;/kbd&gt; + &lt;kbd&gt;H&lt;/kbd&gt; Hide program (better than minimize, as minimize fills up your dock. To get back, just use the application switcher)&lt;/li&gt;&#xA;&lt;li&gt;&lt;kbd&gt;Cmd&lt;/kbd&gt; + &lt;kbd&gt;tab&lt;/kbd&gt; Switch program&lt;/li&gt;&#xA;&lt;li&gt;&lt;kbd&gt;Cmd&lt;/kbd&gt; + &lt;kbd&gt;`&lt;/kbd&gt; Switch window&lt;/li&gt;&#xA;&lt;li&gt;&lt;kbd&gt;Alt&lt;/kbd&gt; + &lt;kbd&gt;←/→&lt;/kbd&gt; Move caret by word&lt;/li&gt;&#xA;&lt;li&gt;&lt;kbd&gt;Cmd&lt;/kbd&gt;+ &lt;kbd&gt;←/→&lt;/kbd&gt; Move caret to beginning/end of line&lt;/li&gt;&#xA;&lt;li&gt;&lt;kbd&gt;Home&lt;/kbd&gt;/&lt;kbd&gt;End&lt;/kbd&gt; or &lt;kbd&gt;Cmd&lt;/kbd&gt; + &lt;kbd&gt;Fn&lt;/kbd&gt; + &lt;kbd&gt;←/→&lt;/kbd&gt; Beginning/end of file&lt;/li&gt;&#xA;&lt;li&gt;&lt;kbd&gt;Cmd&lt;/kbd&gt; + &lt;kbd&gt;,&lt;/kbd&gt; for preferences in most apps&lt;/li&gt;&#xA;&lt;li&gt;In a confirmation window (like Save/Don't Save/Cancel), hit &lt;kbd&gt;Enter&lt;/kbd&gt; for the primary (colored blue) action (Save), and &lt;kbd&gt;Space&lt;/kbd&gt; for the selected action (blue outline), which is usually the secondary (Don't Save).  So just remember - Enter to Save. Space to Quit without saving.&lt;/li&gt;&#xA;&lt;li&gt;Most everything else should be the same with &lt;kbd&gt;Cmd&lt;/kbd&gt; replacing &lt;kbd&gt;Ctrl&lt;/kbd&gt; on Windows/Linux.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;*&lt;em&gt;The significance of the Library structure is that to uninstall an application you can just drag the .app to the trash.  You will of course still have all the support files it stored while using it, but those can be trashed in one group too if you just go to /Library/Application Support.  If your application gets corrupted on upgrade, your data is safe - just delete and reinstall the .app.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-11-29T19:10:54.833" LastActivityDate="2010-11-29T19:10:54.833" CommentCount="8" />
  <row Id="21283" PostTypeId="2" ParentId="21280" CreationDate="2010-11-24T19:40:40.440" Score="3" ViewCount="" Body="&lt;p&gt;The first order of business will be to install the development tools from the second operating system DVD; this will give you GCC, Xcode, and a bunch of other necessities for doing development on the Mac. The next thing will be to decide between MacPorts and Homebrew. MacPorts has a larger library, but is often out of date and (my opinion speaking here) in a state of super-gradual decline. Homebrew is the trendy product of the Ruby community and is more modern and up-to-date; however, Homebrew does not have the massive selection of packages as MacPorts (a quick check shows that it does have the Boost package).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as applications go, the first thing you need to install is &lt;a href=&quot;http://www.blacktree.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Quicksilver&lt;/strong&gt;&lt;/a&gt; (essentially a better Spotlight, but you'll discover it has a whole lot more than just a better Spotlight as you use it). Beyond that it's really not too different from UNIX/BSD; you'll quickly figure out where you're familiar things have moved to.&lt;/p&gt;&#xA;" OwnerUserId="8342" LastActivityDate="2010-11-24T19:40:40.440" CommentCount="3" />
  <row Id="21285" PostTypeId="2" ParentId="5113" CreationDate="2010-11-24T20:03:42.073" Score="2" ViewCount="" Body="&lt;p&gt;Note that female or gay programmers do not mind working with hunky guys at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ok, which one of these two guys looks like a real programmer? #1 or #2?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rangit.com/wp-content/media/2008/02/jeff%20atwood.jpg&quot; rel=&quot;nofollow&quot;&gt;http://rangit.com/wp-content/media/2008/02/jeff%20atwood.jpg&lt;/a&gt;&#xA;http://coldattic.info/pic/354067075677.jpg&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As someone made in USSR who is not a fan of Putin or other Russian B.S., I imagine that you have developed pretty good bullshit filters by now. Try to keep them clean and well maintained.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing is that bullshit is a universal thing. You DO NOT look like a programmer, even if you become 10 kilos overweight. If you learn to talk smoothly, to shut up when needed, you can be fairly successful with women.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In monkey societies an alpha male is pretty much determined by the way he looks. We are partly monkeys, but it is more complicated than that - looks for a guy is not the only thing that matters. Now ... a typical programmer is not particularly social, and is not much of a player. People who have bonus non-technical skills, such as bubbly personality, good sense of humor, etc., can score a better position in life than just a mere code pounder (at least this is true in many rich western countries).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those who remain programmers, are typically not very social, not particularly good flirts, not that successful with women. YOU are being perceived as a threat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I imagine I will be down-voted very quickly, for I have just offended just about everyone on this site, probably including women. But, love it or hate it, that is pretty much how the world works. Better looking politicians score more votes. Better looking criminals are less likely to be convicted (that is the reason why a defendant is placed as far as possible from the jury in USA). The list goes on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Life should not work like this, but it does. Our genes are hardly different from humans 10,000 years ago, and political correctness was not high on the priority list back then; survival and procreation was. We are desperately trying to mold our monkey genes to conform to the boxes of concrete that we have built around us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Long story short: yes, male programmers can feel insecure around you. For the longest time they thought that they are better than other males because they are smarter. Now they have met someone who is just as smart but also better looking. This is hard to swallow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What to do about it? &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Be grateful to the creator if one exists that you have been dealt a better card than some and then shut up about it.&lt;/li&gt;&#xA;&lt;li&gt;Work hard, make sure that those who would be jealous can see that you succeed through hard work and are not using looks as a launchpad.&lt;/li&gt;&#xA;&lt;li&gt;Do not wear flashy clothes to the interview, and do not wear flashy clothes to work. Try to blend in, look funny perhaps.&lt;/li&gt;&#xA;&lt;li&gt;DO NOT flirt with your co-worker's women. That includes wifes, sisters, mothers, grandmothers. On occasion play dumb around women if you have to, although some would disagree.&lt;/li&gt;&#xA;&lt;li&gt;If you feel like your co-workers are too jealous, then try to move perhaps? At the same time be humble and do not build up an ego about it. You were born smart and with certain physical traits, and others were born differently. Neither intellect, height or looks is something that you achieved through hard work; you were simply given that.&lt;/li&gt;&#xA;&lt;li&gt;Your social circle does not have to include every last co-worker. If you feel like playing Casanova on nights and weekends, then this is your life, your right. Just be smart about it - keep work &amp;amp; life reasonably separate.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Remember: being a smart, handsome programmer is a good problem to have. It beats being an aids, cholera-infested malnourished child in Africa.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. You aren't into guys by any chance?&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-11-24T20:03:42.073" CommentCount="6" />
  <row Id="21286" PostTypeId="2" ParentId="20819" CreationDate="2010-11-24T20:12:20.410" Score="0" ViewCount="" Body="&lt;p&gt;Vim vimmity vim vim vim!&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Lightweight.&lt;/li&gt;&#xA;&lt;li&gt;Cross platform (&lt;a href=&quot;http://www.vim.org/download.php#pc&quot; rel=&quot;nofollow&quot;&gt;Windows&lt;/a&gt; and &lt;a href=&quot;http://code.google.com/p/macvim/&quot; rel=&quot;nofollow&quot;&gt;Mac&lt;/a&gt;, look for gvim in your Linux package manager)&lt;/li&gt;&#xA;&lt;li&gt;Does what you want it to do, with a couple of plugins as specified &lt;a href=&quot;http://www.mntnoe.com/2008/02/xml-editing-and-validation-in-vim/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-11-24T20:12:20.410" />
  <row Id="21287" PostTypeId="2" ParentId="20819" CreationDate="2010-11-24T20:21:36.867" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://notepad-plus-plus.org/&quot; rel=&quot;nofollow&quot;&gt;Notepad++&lt;/a&gt; has a plug-in for different xml tasks :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;XML syntax Check&lt;/li&gt;&#xA;&lt;li&gt;XML Schema (XSD) + DTD Validation&lt;/li&gt;&#xA;&lt;li&gt;XML tag autoclose&lt;/li&gt;&#xA;&lt;li&gt;Pretty print&lt;/li&gt;&#xA;&lt;li&gt;Linarize XML&lt;/li&gt;&#xA;&lt;li&gt;Current XML Path&lt;/li&gt;&#xA;&lt;li&gt;Conversion XML &amp;lt;-&gt; Text&lt;/li&gt;&#xA;&lt;li&gt;Comment / Uncomment&lt;/li&gt;&#xA;&lt;li&gt;XPath expression evaluation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7454" LastActivityDate="2010-11-24T20:21:36.867" CommentCount="1" />
  <row Id="21288" PostTypeId="2" ParentId="21223" CreationDate="2010-11-24T20:21:46.780" Score="0" ViewCount="" Body="&lt;p&gt;Whether or not there is training depends on the company. The more common the tools, the more common the domain and the newer the project, the less likely is training. When I hire a Java programmer to create a new commercial web application, I expect him to know all he needs to know or pick it up so quickly it goes unnoticed. On the other hand, when I hire a programmer to work on a very unusual thing, using an in-house language that less than 10 people in the world know and maintaining 2 million existing lines of code, training is inevitable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write code from morning till afternoon? Most likely not. Testing and Debugging takes a lot of time. Most programmers also do other tasks in the software development life cycle, like analyzing the domain, collecting requirements, writing specs, training users etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write from scratch or maintain an existing project? Both options exist, the later happens more often in my experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Average lines of code per day? Not sure, but I think I've read it's astonishing low, something like 12 or so. But LOC is a bad metric anyway.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="6617" LastEditorDisplayName="" LastEditDate="2010-11-25T08:03:48.463" LastActivityDate="2010-11-25T08:03:48.463" CommentCount="2" />
  <row Id="21289" PostTypeId="2" ParentId="20819" CreationDate="2010-11-24T20:23:22.207" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Dashcode&quot; rel=&quot;nofollow&quot;&gt;Dashcode&lt;/a&gt; on the Mac is built-in and has syntax coloring, but that's about it, from my limited experience with it.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-11-24T20:23:22.207" />
  <row Id="21291" PostTypeId="1" AcceptedAnswerId="21351" CreationDate="2010-11-24T20:44:39.603" Score="6" ViewCount="251" Body="&lt;p&gt;As I understand it, Test-Driven Development is about writing tests to define the program specifications (you can correct me if I'm wrong).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there is someone responsible for writing the specifications (including a public API) for the software (let's call him the Software Architect), does that mean that the Software Architect must write all of the tests?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or does the Software Architect write the specifications, and then hand them over to the developers to write tests against?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or do you allow the specifications to grow organically by allowing all of the developers to write their own tests, and forget about having a Software Architect?&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2011-05-11T04:31:00.377" LastActivityDate="2011-05-11T04:31:00.377" Title="What is the role of a Software Architect in the Test-Driven Development process?" Tags="&lt;architecture&gt;&lt;tdd&gt;&lt;rallyon11&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="3" />
  <row Id="21292" PostTypeId="2" ParentId="21213" CreationDate="2010-11-24T20:47:53.500" Score="3" ViewCount="" Body="&lt;p&gt;You can display multiple documents side-by-side in eclipse by dragging tabs to the side, top, or bottom of the window. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you right-click a project or folder in Navigator or Package Explorer, there is an option to &quot;Open in New Window&quot;, which allows you to view the same workspace in multiple windows. With multiple eclipse windows open you can drag tabs between them.&lt;/p&gt;&#xA;" OwnerUserId="7850" LastActivityDate="2010-11-24T20:47:53.500" />
  <row Id="21293" PostTypeId="2" ParentId="20023" CreationDate="2010-11-24T20:53:23.543" Score="0" ViewCount="" Body="&lt;p&gt;I'll say no. python and ruby are used a lot and so is javascript for both client and server side. I personally use .NET and have no problems getting it to run on mac and linux (while developing on windows)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-edit- i hear LLVM is becoming popular but is still extremely small. That will allow you to use cross platform C++ in a single binary. Apparently it will be executed on browser but i havent seen an example where it allows you to modify the dom or call javascript.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-11-24T20:53:23.543" />
  <row Id="21294" PostTypeId="2" ParentId="21280" CreationDate="2010-11-24T20:58:45.250" Score="4" ViewCount="" Body="&lt;p&gt;There are many differences between Mac and Windows, but there are far more similarities:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cut/Copy/Paste/Undo are Ctrl+X/C/V/Z on Windows and Command+X/C/V/Z on Mac.&lt;/li&gt;&#xA;&lt;li&gt;Safari/Firefox/Chrome options for web browsing, VLC for playing various video file formats. The window manager is different, but the app is the same.&lt;/li&gt;&#xA;&lt;li&gt;A built-in graphical file manager that acts as the default 'shell' - Explorer on Windows and Finder on Mac. Both have icon/list/hierarchical/thumbnail views and built-in zip/unzip too.&lt;/li&gt;&#xA;&lt;li&gt;Your files and documents are in C:\User\&amp;lt;you&amp;gt; on Windows (Vista &amp;amp; 7) and /Users/&amp;lt;you&amp;gt; on Mac.&lt;/li&gt;&#xA;&lt;li&gt;Quick access your commonly-run items - Quick Launch on Windows and the Dock on Mac.&lt;/li&gt;&#xA;&lt;li&gt;Index-all-my-files-for-fast-searching mechanism  - Windows/Google Desktop Search on Windows and Spotlight on Mac.&lt;/li&gt;&#xA;&lt;li&gt;&quot;Quickly switch between running apps&quot; - ALT+Tab on Windows, Command+Tab on Mac.&lt;/li&gt;&#xA;&lt;li&gt;Lots of equivalent applications: Notepad/Wordpad =&gt; TextEdit, Windows Address Book =&gt; Address Book, Windows Calendar =&gt; iCal, Outlook Express =&gt; Mail, Control Panel =&gt; System Preferences&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There are some differences tho:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;'Print to PDF' and 'PDF Viewer' are built right in and just work.&lt;/li&gt;&#xA;&lt;li&gt;Being an Administrator just doesn't mean the same thing. On XP (and Windows 7 in 'Run As Administrator' mode), being Admin means you can pretty much do anything you want, any time you like. You want to delete some critical file? Ok. Install drivers? Ok. On Mac, an Administrator account is required for permission to do things which affect other users or the operating system in general, but you will still get a 'Please authorize this system-wide change' security dialog before you mess things up. On Windows, Administrator is pretty much 'root user', but this is absolutely not the case with Mac - the root user account is disabled by default.&lt;/li&gt;&#xA;&lt;li&gt;On Windows, it's quite easy to dive into a ton of different settings and tweak your PC to your hearts' content. On Mac, there's less tweakability and certainly a lot less UI around tweakability. Windows has the Registry to maintain all the systems settings (alas also a single point of failure) but Mac uses XML files called 'Property Lists' or .plist, which you can read/write at the command line if you need to.&lt;/li&gt;&#xA;&lt;li&gt;On Mac, there's less UI (due to Design Guidelines/philosophy) and apps try to 'do the right thing'. Of course, if the right thing is not what you want, there often is no way to achieve that result in that app, so you may end up frustrated. A good way to deal with this is to describe what you want to achieve in English, rather than how you used to do it in Windows and then go hunting for the analogy. A simple example is 'Maximize a Window' - there is none in Mac. There is a similar function ('zoom window') but it's not quite the same.&lt;/li&gt;&#xA;&lt;li&gt;Application installation is pretty much a drag-drop into the /Applications folder. Actual 'installers' are less frequent.&lt;/li&gt;&#xA;&lt;li&gt;Windows uses Scripting to achieve a lot of automation, Mac has &lt;em&gt;Automator&lt;/em&gt;, which is a great app for automating repetitive tasks like renaming sequences of photos, and has lots of community support.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Here are some of the best resources I can think of right now for finding your way around the Mac, migration from a PC, etc:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Apple has a '&lt;a href=&quot;http://www.apple.com/support/switch101/&quot; rel=&quot;nofollow&quot;&gt;Migrate to Mac&lt;/a&gt;' section on their website. Start there.&lt;/li&gt;&#xA;&lt;li&gt;Apple's &lt;a href=&quot;http://www.apple.com/findouthow/mac/&quot; rel=&quot;nofollow&quot;&gt;Find Out How website&lt;/a&gt; introductory videos. They're short and to-the-point. Worth watching once.&lt;/li&gt;&#xA;&lt;li&gt;Apple's &quot;Quick Tips&quot; video podcast on iTunes. Also short and to-the-point and worth watching once.&lt;/li&gt;&#xA;&lt;li&gt;The site &lt;a href=&quot;http://arstechnica.com&quot; rel=&quot;nofollow&quot;&gt;ars technica&lt;/a&gt; has some awesome in-depth information and reviews on Mac things, particularly &lt;a href=&quot;http://arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars&quot; rel=&quot;nofollow&quot;&gt;their huge in-depth review of Mac OS X 10.6 'Snow Leopard'.&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Some excellent podcasts ranging from really detailed to cynical japery. Of note are &lt;a href=&quot;http://www.maccast.com/&quot; rel=&quot;nofollow&quot;&gt;The Mac Cast&lt;/a&gt; (excellent detail, calm and clear presentation), &lt;a href=&quot;http://www.macobserver.com/tmo/features/mac_geek_gab_free/&quot; rel=&quot;nofollow&quot;&gt;The Mac Geek Gab&lt;/a&gt; (In-depth technical, some witty banter) and &lt;a href=&quot;http://apple.stackexchange.com&quot;&gt;Mac OS Ken&lt;/a&gt; (Mac/iOS news delivered in cynical style)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://apple.stackexchange.com&quot;&gt;http://apple.stackexchange.com&lt;/a&gt; is coming along nicely.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://developer.apple.com/&quot; rel=&quot;nofollow&quot;&gt;Apple's Developer site&lt;/a&gt; has lots of reference material in multiple languages.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.apple.com/support/&quot; rel=&quot;nofollow&quot;&gt;Apple's Support site&lt;/a&gt; has a ton of info on it.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I can also recommend attending some of the free presentations given in &lt;a href=&quot;http://www.apple.com/retail/storelist/&quot; rel=&quot;nofollow&quot;&gt;your local Apple Store&lt;/a&gt; - see their schedule for what's on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My overall impression of Mac so far, from a technical perspective, is that it's an extremely pretty UI on top of 'normal' Unix. All the Unix command line stuff I know works just fine in Terminal, but there are UI apps too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(I chose Windows vs Mac as my Linux knowledge is old, but I am sure there are the same analogies, even with different desktop environments)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-11-24T21:18:12.190" LastActivityDate="2010-11-24T21:18:12.190" CommentCount="3" />
  <row Id="21295" PostTypeId="2" ParentId="21280" CreationDate="2010-11-24T20:59:50.230" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.finkproject.org/&quot; rel=&quot;nofollow&quot;&gt;Fink&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not a gotcha; it'll give you apt-get access to some stuff you were used to on Linux. It works for me (though, to be fair, the programs I use for development are just &lt;code&gt;git&lt;/code&gt; and &lt;code&gt;emacs&lt;/code&gt;). If you used a specific window manager on Linux, you should be able to do the same on OS X by running X. I haven't tried it, but I know &lt;a href=&quot;http://xmonad.org/&quot; rel=&quot;nofollow&quot;&gt;xmonad&lt;/a&gt; and &lt;a href=&quot;http://www.nongnu.org/ratpoison/&quot; rel=&quot;nofollow&quot;&gt;ratpoison&lt;/a&gt; are avaliable, among others.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-11-24T21:24:04.570" LastActivityDate="2010-11-24T21:24:04.570" />
  <row Id="21296" PostTypeId="2" ParentId="21291" CreationDate="2010-11-24T21:00:03.957" Score="1" ViewCount="" Body="&lt;p&gt;The Software Architect isn't writing all the tests.  That would be putting too much onto one person's shoulders to my mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Software Architect should be able to sketch out an initial form for the API that developers then write tests for that and then build the API.  However, the Software Architect may have various code standards that aren't necessarily testable,e.g. documentation or naming conventions.  There is also the potential for the initial API to be missing some calls that as an implementation is done new calls are added to the API.  Thus, there will be some organic growth to the API as the code base grows but the Architect's role is in providing high-level guidelines and trying to make sure they are followed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There can certainly be cases where a team may decide to not have a Software Architect but depending on the scale of the API and company involved this may or may not be a good idea.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-24T21:00:03.957" />
  <row Id="21297" PostTypeId="2" ParentId="14650" CreationDate="2010-11-24T21:03:49.167" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://samizdat.mines.edu/howto/HowToBeAProgrammer.pdf&quot; rel=&quot;nofollow&quot;&gt;How to be a Programmer&lt;/a&gt; by Robert Read.&lt;/p&gt;&#xA;" OwnerUserId="1293" LastActivityDate="2010-11-24T21:03:49.167" CommunityOwnedDate="2010-11-24T21:03:49.167" />
  <row Id="21298" PostTypeId="2" ParentId="21280" CreationDate="2010-11-24T21:03:56.420" Score="1" ViewCount="" Body="&lt;p&gt;When you open the new laptop, look for an icon like this (usually it is in the dock, which is at the bottom of the screen):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Zb6zj.png&quot; alt=&quot;safari_icon&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is the browser.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-11-24T21:03:56.420" CommentCount="1" />
  <row Id="21299" PostTypeId="1" CreationDate="2010-11-24T21:05:17.880" Score="0" ViewCount="56" Body="&lt;p&gt;hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i am rendering a data with z-buffer algorithm but I'm unable to sort the visible pixels from the hidden once. is there any one, who has gone through this process successfully to give some tips. &lt;/p&gt;&#xA;" LastActivityDate="2010-11-24T21:13:04.897" ClosedDate="2010-11-24T22:12:08.217" Title="rendering an image with z-buffer" Tags="&lt;learning&gt;&lt;computer-science&gt;&lt;problem-solving&gt;" CommentCount="1" />
  <row Id="21300" PostTypeId="1" AcceptedAnswerId="21306" CreationDate="2010-11-24T21:23:41.543" Score="5" ViewCount="738" Body="&lt;p&gt;To my knowledge, all modern imperative programming languages support recursion in the sense that a procedure can call itself. This was not always the case, but I cannot find any hard facts with a quick Google search. So my question is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which languages did not support recursion right from the start and when was that support added?&lt;/p&gt;&#xA;" OwnerUserId="3684" LastActivityDate="2010-11-24T21:39:26.423" Title="What imperative programming languages do not support recursion?" Tags="&lt;programming-languages&gt;&lt;recursion&gt;" AnswerCount="2" />
  <row Id="21301" PostTypeId="2" ParentId="21141" CreationDate="2010-11-24T21:26:00.327" Score="2" ViewCount="" Body="&lt;p&gt;Why not google for &quot;&lt;a href=&quot;http://www.google.com/search?q=%22software+development+specialist%22&quot; rel=&quot;nofollow&quot;&gt;Software Development Specialist&lt;/a&gt;&quot; jobs and use the job descriptions you find as evidence that the job calls for more than just programming.   One listing I found says responsibilities include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Maintenance of existing code base and&#xA;enhancement of current application. &lt;/li&gt;&#xA;&lt;li&gt;Participate in on-going system&#xA;design.  &lt;/li&gt;&#xA;&lt;li&gt;Design and implement solutions for software defects. &lt;/li&gt;&#xA;&lt;li&gt;Application testing. &lt;/li&gt;&#xA;&lt;li&gt;Technical documentation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-11-24T21:26:00.327" />
  <row Id="21303" PostTypeId="2" ParentId="21300" CreationDate="2010-11-24T21:31:00.063" Score="8" ViewCount="" Body="&lt;p&gt;Wikipedia says:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Early languages like Fortran did not&#xA;  initially support recursion because&#xA;  variables were statically allocated,&#xA;  as well as the location for the return&#xA;  address. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Subroutine#Local_variables.2C_recursion_and_re-entrancy&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Subroutine#Local_variables.2C_recursion_and_re-entrancy&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;FORTRAN 77 does not   allow recursion,&#xA;  Fortran 90 does, (recursive routines&#xA;  must be explicitly   declared so).&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Most FORTRAN 77 compilers allow&#xA;  recursion, some (e.g. DEC) require &#xA;  using a compiler option (see compiler&#xA;  options chapter). The GNU g77,  which&#xA;  conforms strictly to the Fortran 77&#xA;  standard, doesn't allow   recursion at&#xA;  all.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.ibiblio.org/pub/languages/fortran/ch1-12.html&quot; rel=&quot;nofollow&quot;&gt;http://www.ibiblio.org/pub/languages/fortran/ch1-12.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-24T21:31:00.063" />
  <row Id="21304" PostTypeId="1" CreationDate="2010-11-24T21:34:46.053" Score="6" ViewCount="173" Body="&lt;p&gt;A while ago the company I work for had outsourced a development project to a third party. They employed agile practices in developing the solution. However when asked for documentation they would just say it was required as it was incorporated in a wiki or as part of their sprints.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They did leave at the completion of the project, with all but one of the project team. The project wiki site has now been closed down once the yearly subscription was due.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When they left they took most of the knowledge and understanding of what was developed with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I do have 2 main questions;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Is this normal for agile or just an excuse for not wanting to write it?&lt;/li&gt;&#xA;&lt;li&gt;What are the industry norm for documentation in agile projects to record development &#xA;requirements, designs, key decisions and context?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4960" LastActivityDate="2010-11-26T07:39:45.040" Title="The Agile process: how and what should be documented?" Tags="&lt;project-management&gt;&lt;development-process&gt;&lt;agile&gt;" AnswerCount="7" />
  <row Id="21306" PostTypeId="2" ParentId="21300" CreationDate="2010-11-24T21:39:26.423" Score="6" ViewCount="" Body="&lt;p&gt;I'm not sure COBOL does (it certainly didn't at one time), but I can't quite imagine anybody caring much either. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fortran has since Fortran 90, but requires that you use the &lt;code&gt;recursive&lt;/code&gt; keyword to tell it that a subroutine is recursive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PL/I was pretty much the same -- recursion was supported, but you had to explicitly tell it what procedures were recursive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I doubt there are many more than that though. When you get down to it, prohibiting recursion was mostly something IBM did in their language designs, for the simple reason that IBM (360/370/3090/...) mainframes don't support a stack in hardware. When most languages came from IBM, they mostly prohibited recursion. Now that they all come from other places, recursion is always allowed (though I should add that a few other machines, notably the original Cray 1, didn't have hardware support for a stack either).&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-11-24T21:39:26.423" CommentCount="2" />
  <row Id="21307" PostTypeId="2" ParentId="7656" CreationDate="2010-11-24T21:40:41.503" Score="1" ViewCount="" Body="&lt;p&gt;There are 2 occasions when I'll write code on paper, both involve having a sudden inspiration about a problem I've been working on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) I'm stuck in a long meeting without a laptop and I think of a solution.  I'll write the code in my notebook.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) I can't fall asleep because I've got a problem stuck in my head.  If I have an 'a-ha' moment, I'll jot it down, instead of booting up the laptop to code it.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-11-24T21:40:41.503" />
  <row Id="21308" PostTypeId="2" ParentId="14650" CreationDate="2010-11-24T21:43:16.497" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/020161586X&quot; rel=&quot;nofollow&quot;&gt;The Practice of Programming&lt;/a&gt;&#xA;by Brian W. Kernighan and Rob Pike &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found it unusual in that it promotes thinking, instead a lot of the typical lingo driven self promotionial books.&lt;/p&gt;&#xA;" OwnerUserId="8460" LastActivityDate="2010-11-24T21:43:16.497" CommunityOwnedDate="2010-11-24T21:43:16.497" />
  <row Id="21310" PostTypeId="1" AcceptedAnswerId="21315" CreationDate="2010-11-24T21:53:52.677" Score="0" ViewCount="228" Body="&lt;p&gt;Why PHP is popular and JSP is not that popualr? What is the difference between the two? &lt;/p&gt;&#xA;" OwnerUserId="26782" LastEditorUserId="8372" LastEditorDisplayName="" LastEditDate="2010-11-24T22:17:19.603" LastActivityDate="2010-11-24T22:17:19.603" Title="what is the difference between JSP and PHP?" Tags="&lt;php&gt;&lt;comparison&gt;&lt;jsp&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="21311" PostTypeId="2" ParentId="21304" CreationDate="2010-11-24T21:57:23.987" Score="1" ViewCount="" Body="&lt;p&gt;While I'm not an Agile expert by any means, here is my attempt at an answer:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Was there a story/requirement asking for specific documentation?  If not, then this is part of the problem as you get what is requested to some extent.  It is an excuse and I could wonder what you mean by &quot;normal&quot; here.  Is it just a majority of those following Agile principles that makes something normal or is it part of the overall process that should be expected?  Those are the two views I could see for it. EDIT: I doubt there is anything the majority of teams do that is the same when it comes to documentation, but that is a guess on my part.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A couple links that may be of interest, is about the best I could do on this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.agilemodeling.com/essays/agileDocumentationBestPractices.htm&quot; rel=&quot;nofollow&quot;&gt;Best Practices for Agile/Lean Documentation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.writersua.com/articles/Agile_doc/index.html#Agile%20and%20Technical%20Documentation&quot; rel=&quot;nofollow&quot;&gt;Agile and Technical Documentation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Agile has some specific points in &lt;a href=&quot;http://agilemanifesto.org/&quot; rel=&quot;nofollow&quot;&gt;the manifesto&lt;/a&gt;, where I'd point out this one along with the note:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Working software over comprehensive documentation&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;That is, while there is value in the&#xA;  items on the right, we value the items&#xA;  on the left more.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4327" LastEditorUserId="4327" LastEditorDisplayName="" LastEditDate="2010-11-24T22:36:09.897" LastActivityDate="2010-11-24T22:36:09.897" CommentCount="1" />
  <row Id="21313" PostTypeId="1" CreationDate="2010-11-24T22:07:14.067" Score="0" ViewCount="118" Body="&lt;p&gt;I am looking for a way to use the jQuery Accordion in such a way that it caches the tab that it is on (saves the state) so if the user reloads, visits a different page, it is still on the same tab (it will be on the sidebar).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know little bits and pieces of jQuery, but I am not a master, though I am not trying to learn, I just need to get this one piece done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I appreciate any help.&lt;/p&gt;&#xA;" OwnerUserId="7280" LastActivityDate="2010-11-24T22:35:53.310" ClosedDate="2010-11-24T22:36:55.357" Title="How can I cache the jQuery accordion?" Tags="&lt;jquery&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="21315" PostTypeId="2" ParentId="21310" CreationDate="2010-11-24T22:07:48.463" Score="3" ViewCount="" Body="&lt;p&gt;From &lt;a href=&quot;http://stackoverflow.com/questions/1283413/php-vs-jsp-which-should-i-learn&quot;&gt;this question&lt;/a&gt; in Stackoverflow : &lt;br/&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;p&gt;Firstly, PHP has a number of things&#xA;  going for it:&lt;/p&gt;   &lt;ul&gt; &lt;li&gt;It is the&#xA;  most widely used Web development&#xA;  platform in the world;&lt;/li&gt; &lt;li&gt;The&#xA;  barrier to entry is really low;&lt;/li&gt;&#xA;  &lt;li&gt;All you need is a Web server&#xA;  (typically Apache) and an editor;&lt;/li&gt;&#xA;  &lt;li&gt;The fact that you can save files&#xA;  in your editor and click reload on&#xA;  your browser, to me, is a huge plus.&#xA;  Immediate feedback and greater&#xA;  productivity (imho);&lt;/li&gt; &lt;li&gt;There is&#xA;  lots and lots of information out there&#xA;  on PHP usage; and&lt;/li&gt; &lt;li&gt;PHP hosting&#xA;  is extraordinarily cheap.&lt;/li&gt; &lt;/ul&gt;&lt;br&gt;&#xA;  &lt;p&gt;As for Java/JSP, it has a number of&#xA;  advantages:&lt;/p&gt;   &lt;ul&gt; &lt;li&gt;Statically&#xA;  typed. Now I don't consider this a&#xA;  &quot;win&quot; against dynamic typing, they're&#xA;  just different. But the fact is that&#xA;  if you mistype a variable name in Java&#xA;  it'll generate a compiler error;&lt;/li&gt;&#xA;  &lt;li&gt;There are a huge amount of third&#xA;  party libraries for Java Web&#xA;  development out there;&lt;/li&gt; &lt;li&gt;IMHO&#xA;  the modern Java Web development&#xA;  approach using, say, Spring (or other&#xA;  IoC container) is extremely&#xA;  robust;&lt;/li&gt; &lt;li&gt;Multithreaded and&#xA;  background processing are somewhat&#xA;  kludgy in PHP but far more natural in&#xA;  Java;&lt;/li&gt; &lt;li&gt;JSP allow you to define&#xA;  custom tags that can be quite&#xA;  powerful.&lt;/li&gt; &lt;/ul&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="8372" LastActivityDate="2010-11-24T22:07:48.463" />
  <row Id="21317" PostTypeId="2" ParentId="21304" CreationDate="2010-11-24T22:16:22.440" Score="3" ViewCount="" Body="&lt;p&gt;Did they leave you a set of TDD Tests, Acceptance Tests, or other Unit Tests?  They do a good job of documenting how an application works and is expected to work, as well as providing a sample implementation of how to use what was developed.&lt;/p&gt;&#xA;" OwnerUserId="2431" LastActivityDate="2010-11-24T22:16:22.440" CommentCount="2" />
  <row Id="21319" PostTypeId="2" ParentId="10749" CreationDate="2010-11-24T22:24:49.063" Score="1" ViewCount="" Body="&lt;p&gt;There are many saying that &lt;strong&gt;Java is the new Cobol&lt;/strong&gt;. (As such, it's fitting that Oracle has it.) There are so many millions of lines of Java code out there, many of which will not be replaced or rewritten any time soon, it's a safe bet that we'll still have Java compilers in 20 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If any changes are made to the language to break backward compatibility, they will likely be minor (like adding &lt;code&gt;assert&lt;/code&gt; to Java 1.4) and there will be mechanisms to compile the older versions. Again, the same argument applies: There are so many lines out there, no one is going to change the language to break it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I could maybe see some libraries get deprecated, but supporting that might just mean linking to older implementations, or mocks acting like them. We are probably past the worst of the deprecation, being the changes to &lt;code&gt;Thread&lt;/code&gt;, and the Java language community seems fine if the language has some cruft still, like the old &lt;code&gt;Vector&lt;/code&gt; class.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-24T22:24:49.063" CommentCount="1" />
  <row Id="21320" PostTypeId="2" ParentId="21209" CreationDate="2010-11-24T22:28:31.760" Score="7" ViewCount="" Body="&lt;p&gt;I was the technical guy helping with interviews for C# / ASP.NET developers recently, and I can tell you that if any of them were dabbling with functional languages - or indeed anything clearly removed from their work experience - that it would have earned them a definite tick from me. I think there's a huge correlation between enjoying learning and dabbling with new things and being one of the upper echelon of naturally talented programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifically to functional programming: I think LINQ is one of the most significant additions to the C# language, we use it heavily, and while it doesn't come naturally to everyone, I can't imagine anyone with functional experience finding it difficult to work with.&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-11-24T22:28:31.760" CommentCount="2" />
  <row Id="21322" PostTypeId="2" ParentId="21313" CreationDate="2010-11-24T22:35:53.310" Score="0" ViewCount="" Body="&lt;p&gt;I did this by saving the active page in cookies. You can use a jquery cookie plugin like this one &lt;a href=&quot;http://stackoverflow.com/questions/2106220/simple-javascript-jquery-cookie-question&quot;&gt;http://stackoverflow.com/questions/2106220/simple-javascript-jquery-cookie-question&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-24T22:35:53.310" />
  <row Id="21323" PostTypeId="2" ParentId="10749" CreationDate="2010-11-24T22:38:20.760" Score="1" ViewCount="" Body="&lt;p&gt;For the long term, the language doesn't matter. VMs will be forward-ported for a lot longer than compilers or libraries. Just make sure your program uses a simple standard interface like http, json, or text with newlines so it can keep a link to the outside world.&lt;/p&gt;&#xA;" OwnerUserId="7950" LastActivityDate="2010-11-24T22:38:20.760" />
  <row Id="21324" PostTypeId="2" ParentId="21197" CreationDate="2010-11-24T22:46:42.370" Score="1" ViewCount="" Body="&lt;p&gt;Finding groups on &lt;a href=&quot;http://www.meetup.com/&quot; rel=&quot;nofollow&quot;&gt;Meetup.com&lt;/a&gt; has helped with my social skills which is a bit broader than speech communication skills as things like body language can also play a role here.  I'm also involved in some local groups not on Meetup that also help build the interpersonal skills that are at the heart of communication to my mind for one idea.  Support groups can also be useful if one has depression, anxiety or any number of other medical conditions that can make communication difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/How_to_Win_Friends_and_Influence_People&quot; rel=&quot;nofollow&quot;&gt;How to Win Friends and Influence People&lt;/a&gt; has some points that can also be quite handy at times when it comes to dealing with people.  Another reference would be &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0974320625&quot; rel=&quot;nofollow&quot;&gt;&quot;Emotional Intelligence 2.0&quot;&lt;/a&gt; by Travis Bradberry and Jean Greaves that has various strategies that can be useful in the 4 areas of emotional intelligence: Self-awareness, self-management, social awareness, relationship building.  As I am still a work in progress, there may be other sources that I find interesting as well as trying to leverage &lt;a href=&quot;http://sourcesofinsight.com/2008/02/11/finding-your-key-strengths/&quot; rel=&quot;nofollow&quot;&gt;my strengths&lt;/a&gt; which is another aspect to this.  That may seem to be a bit of a cop out, but it is an honest answer at this point.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-24T22:46:42.370" CommentCount="1" />
  <row Id="21325" PostTypeId="1" CreationDate="2010-11-24T22:48:44.217" Score="10" ViewCount="839" Body="&lt;p&gt;I'm curious how difficult it really is to get a job working for Microsoft. Is Microsoft similar to Google in a sense that they hire people who are really good at programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, does participating in communities such as the forums at Microsoft help (if at all) you with getting selected for an interview ? How about being a MVP in something like C# and/or .NET? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: This question refers only to programming jobs.   &lt;/p&gt;&#xA;" OwnerUserId="8523" LastEditorUserId="8523" LastEditorDisplayName="" LastEditDate="2010-11-24T22:57:26.803" LastActivityDate="2010-12-31T06:01:22.630" Title="Is it difficult to get a job at Microsoft?" Tags="&lt;microsoft&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="9" />
  <row Id="21326" PostTypeId="1" CreationDate="2010-11-24T22:49:20.330" Score="-1" ViewCount="151" Body="&lt;p&gt;I want to understand more about open source. I will give you an example and you tell me some facts. Let's pick up PHP as the example! Who owns it? If it is open source why did Zend rewrite the PHP engine? Whe is improving PHP, the community or Zend company? &lt;/p&gt;&#xA;" OwnerUserId="26782" LastActivityDate="2010-11-24T23:55:39.810" ClosedDate="2010-11-26T10:04:30.387" Title="Open Source Puzzle!" Tags="&lt;open-source&gt;&lt;php&gt;" AnswerCount="2" CommentCount="0" />
  <row Id="21327" PostTypeId="2" ParentId="21265" CreationDate="2010-11-24T22:50:04.217" Score="6" ViewCount="" Body="&lt;p&gt;All other things being equal, the guy with the degree is likely to have broader knowledge in the computer field, and has been exposed to a lot more different concepts, while the guy without has real-world experience, preferably with reasonable software tools, and is more likely to be productive right off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Exactly what this means in terms of who you hire is entirely dependent on what you want.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-24T22:50:04.217" CommentCount="3" />
  <row Id="21328" PostTypeId="2" ParentId="21326" CreationDate="2010-11-24T22:52:23.913" Score="0" ViewCount="" Body="&lt;p&gt;Open source software is owned by whoever wrote it. That can be a single individual, a geographically dispersed team, or a company etc. Open source is not the same as public domain, it just gives users (a lot) more rights than closed source.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-24T22:52:23.913" />
  <row Id="21329" PostTypeId="2" ParentId="8721" CreationDate="2010-11-24T22:57:48.007" Score="1" ViewCount="" Body="&lt;p&gt;I can only suggest the thing what has worked for me. I had dream to learn programming language and create chess engine with it. I have left spend time on books, articles and small samples. So i decided to check real projects which has better documentation for developer.I have chosen one and started to read the project day by day. Don't think that passing days waste of time while reading. It is much better than spend time reading on articles and books. You will highly encounter many thing which is not clear at first sight but day by day this will change if you try research patiently. Don't expect to understand everything in a week.You have to hold your low Self-Esteem when you don't understand some things.Just try to discover how this *ucking awesome thing is working and enjoy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Choose an existing project which you have passion for it.Start to read codes, debug it and try to understand how the things works everyday. Also use the project for yourself. Then start to add some features which you want. Even try to write same or similar application.&lt;/p&gt;&#xA;" OwnerUserId="3664" LastActivityDate="2010-11-24T22:57:48.007" />
  <row Id="21331" PostTypeId="2" ParentId="21265" CreationDate="2010-11-24T23:12:55.260" Score="2" ViewCount="" Body="&lt;p&gt;Since there isn't enough information to go on, I'm going to assume they are equal in every way but education v. experience; otherwise, if I can identify one being a better programmer than the other, that's who I'm going to select regardless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is not the case, so I'll hire the one who is cheaper. Sorry, but if you're just as good as someone coming out of school, you don't deserve more money-you're suppose to be better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, is the non-graduate better educated/more learned?&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-24T23:12:55.260" />
  <row Id="21332" PostTypeId="2" ParentId="21325" CreationDate="2010-11-24T23:24:58.380" Score="4" ViewCount="" Body="&lt;p&gt;All of the big names in the tech industry pretty much have their choice of candidates, so you'll be competing with many more potential candidates for a particular position than a smaller or less well-known company. So in that sense, yes it's &quot;hard&quot; to get a job there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But at the same time, their recruitment procedures are not all that different to other companies (in that they advertise jobs, accept resumes and do interviews) so in &lt;em&gt;that&lt;/em&gt; sense, no it's &lt;strong&gt;not&lt;/strong&gt; &quot;hard&quot; to get a job there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being an MVP and participating in online communities will help you get a job in &lt;em&gt;any&lt;/em&gt; company (any company that's worth working for, IMO) so Microsoft is not special in that sense.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-11-24T23:24:58.380" CommentCount="1" />
  <row Id="21333" PostTypeId="2" ParentId="21326" CreationDate="2010-11-24T23:55:39.810" Score="3" ViewCount="" Body="&lt;p&gt;There are subtle variations but generally open source means is that the source for a particular project must be made freely available and that any derivative works must be licensed in the same way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This says nothing about who runs an open source project or how.  Many (most) projects will accept changes, fixes and enhancements from the community (that is any developer who wishes to contribute) but that's not required.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the fact it's open source means that if you don't like the way the project is being run then you can go and get the latest code base, set up a competing project (known as branching) and off you go.  Obviously you'll normally have to work pretty hard to gain the same traction and reputation as the original project but it happens.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A couple of examples at different points on the spectrum of how open source projects might be:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Android - which is almost exclusively under the control of Google and they just make the code available (which is then sometimes modified by other organisations such as handset manufacturers)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Linux - which is developed by the community but all check-ins to the core are filtered through a network of trusted developers and ultimately through Linus.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Alternatively you might set up a project so anyone can check in anything at any point with no controls (though it is unlikely that would end well).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your example PHP is currently developed by The PHP Group (a group of developers including Andi Gutmans, Rasmus Lerdorf and Zeev Suraski).  When you've given people free right to copy something anyone could be the owner though I guess they're also the rights holders and therefore the only people who could vary the terms of the license going forward (unless that sits with Lerdorf as the original developer).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like any bit of software bits of it get rewritten because someone involved in the project thought that it needed improving.  Zend does not own PHP, it's the company founded by and &lt;strong&gt;Ze&lt;/strong&gt;ev Suraski and A&lt;strong&gt;nd&lt;/strong&gt;i Gutmans which specialises in working with PHP - Gutmans and Suraski wrote the first version of the Zend engine (and I'm guessing still work on it) and are part of both the Zend company and the PHP group.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-24T23:55:39.810" CommentCount="1" />
  <row Id="21334" PostTypeId="2" ParentId="21265" CreationDate="2010-11-25T00:12:25.037" Score="4" ViewCount="" Body="&lt;p&gt;In the real world things like this don't happen a lot and the person hiring the candidate has a lot more to figure out who he/she wants.&#xA;5 years of university: which university are we talking about? What was his thesis? Someone that has gone to school for 5 years and has no experience/contribution to a project/some useful app is a big red flag in my opinion.&#xA;If you need someone to work on a project that isn't very esoteric in terms of theory then the guy with 5 years of experience is more likely a better fit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:&lt;br&gt;&#xA;I just wanted to add that non-degree programmers don't necessarily lack the conceptual/theoretical notion of CS that you think the degree person has. There are many degree-less people that know the CS theories enough to make informed decisions and vice-versa. I was reading &lt;code&gt;Coders at Work&lt;/code&gt; by Peter Seibel and in many interviews, there are consecrated programmers that were self-taught (ex.: Jamie Zawinski), went to college briefly and dropped out, or just found it too limited. &quot;When it did get interesting, it was over.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a non-degree person (taking a break from college, just took one full year worth of CS) and I've been working for about a year as a developer and whenever I think I lack the &quot;theory,&quot; I research, read books, watch university lectures online, etc. The difference between a college student and I is that I know what I need to or should know for a particular task or project that I need to implement, whereas a college student studies it with the aim of getting a grade on the class project, midterms, and final exam. Most forget what they learned due to the fact that they didn't have a real clue how it would become useful later.&lt;br&gt;&#xA;Since I've been a CS college student, although briefly, I know how many of my CS mates felt when it came to CS classes and projects.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a feeling that if I stay productive at work, keep learning on my own, get sponsored training, my accomplishments will be worth a lot more than a diploma because I'll be able to say that I made my clients cut down costs, be more productive, not to mention the value to my own company. In case I feel I need a formal education, I'll go back to college and finish my degree and benefit from the perspective I gained from working in industry.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastEditorUserId="3922" LastEditorDisplayName="" LastEditDate="2010-12-09T16:56:26.763" LastActivityDate="2010-12-09T16:56:26.763" />
  <row Id="21335" PostTypeId="2" ParentId="21197" CreationDate="2010-11-25T00:19:11.570" Score="1" ViewCount="" Body="&lt;p&gt;I also suggest you keep up with world events or at least your national/local news. Also, reading up random amusing articles on sites like reddit gives you a lot to talk about during lunch hour or just about anywhere. Since I don't have a lot of funny or interesting/adventurous real life experiences, I rely on those, for now, to make conversation. :)&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-11-25T00:19:11.570" />
  <row Id="21336" PostTypeId="1" CreationDate="2010-11-25T00:24:29.757" Score="2" ViewCount="230" Body="&lt;p&gt;I'm interested to learn how everyone keeps their local development projects organized in a logical manner. What do you do to keep your dev projects organized in a manner that allows you to easily find things?&lt;/p&gt;&#xA;" OwnerUserId="4881" LastActivityDate="2010-11-25T07:54:28.020" Title="How do you organize your local development environment?" Tags="&lt;development-process&gt;&lt;organization&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="2" />
  <row Id="21337" PostTypeId="2" ParentId="20472" CreationDate="2010-11-25T00:25:29.413" Score="0" ViewCount="" Body="&lt;p&gt;There's been a couple of cogent responses from the community to this post - see &lt;a href=&quot;http://gaejexperiments.wordpress.com/2010/11/24/a-few-paasing-thoughts/&quot; rel=&quot;nofollow&quot;&gt;this one&lt;/a&gt; and &lt;a href=&quot;http://grack.com/blog/2010/11/23/why-were-really-happy-with-appengine-and-not-going-anywhere-else/&quot; rel=&quot;nofollow&quot;&gt;this one&lt;/a&gt;. If you have specific concerns, I'm more than happy to respond to them.&lt;/p&gt;&#xA;" OwnerUserId="8525" LastActivityDate="2010-11-25T00:25:29.413" />
  <row Id="21338" PostTypeId="2" ParentId="21265" CreationDate="2010-11-25T00:26:27.633" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Neither&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, I want someone with a education &lt;em&gt;and&lt;/em&gt; some experience, so I'd advertise the post again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with the education only programmer is that I can't be sure that she can apply theory to practice. She might know her big-O, but does she knows how to make pragmatic decisions that will make business sense for both my clients and my company? I can't possibly know, so despite the impressive paperwork and post-nominal acronyms she's too big a risk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OTOH, the experienced programmer might well able to hit the ground running. She has shown that she can hold down a job, so there is a good chance that she can add business value and crank out some code. On the other hand, she may not have the depth of understanding to progress beyond monkey-coding. She has shown little evidence that she has the analytical, problem-solving and creative skills that are required to become a first-class developer. To be blunt, she could well be a bit thick. I can't risk the future of my company on someone like that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both these candidates have failed to demonstrate that they have what it takes to work with me. They might both be brilliant, but the risk is simply too great to hire either of them. For these reasons:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;it is a no hire from me&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;However&lt;/strong&gt;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That need not be the end of the story:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice to the person with the Masters is that she go get some real world experience and come back in a year or two, because we could use someone with her brains.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To my experienced candidate I'd recommend that she spend some of her hard-earned on getting some higher education. If I have my way then there will be a post waiting for her if she can slog through the first year of her degree - at which point we can come to some arrangement over sponsorship for the rest of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ideal outcome is that they both heed my counsel. That way I'll get two great programmers. Perhaps I will even get a chance to pair them up - they certainly appear to be well situated to help each other make the best of what they have to offer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So now we're all happy, and I can revise my answer and &lt;strong&gt;hire them both&lt;/strong&gt;!&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-11-25T00:26:27.633" CommentCount="14" />
  <row Id="21339" PostTypeId="1" AcceptedAnswerId="21344" CreationDate="2010-11-25T00:50:42.927" Score="3" ViewCount="167" Body="&lt;p&gt;I have been using the &lt;a href=&quot;http://www.projecthoneypot.org&quot; rel=&quot;nofollow&quot;&gt;http:BL&lt;/a&gt; to block bad IP's from accessing my site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a malicious IP (comment spammer) trys to hit the site I just &lt;code&gt;exit&lt;/code&gt; the web script which implicitly returns a &lt;code&gt;200 OK&lt;/code&gt; response. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other responses I could return:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;404 - Not found?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I return a 404 maybe the robots will think &quot;this is a waste of time, lets move on to attack another site&quot; which would reduce the load on the site (I currently get about 2 spam-hits per second).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I'm reluctant to return 404's on urls that, under normal circumstances, &lt;em&gt;can&lt;/em&gt; be found. &lt;/li&gt;&#xA;&lt;li&gt;I'm not sure if spam robots can 'waste time'. i.e Why would a bot writer be bothered to code for 404's when they just blitz the web anyway?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;401 Unauthorized?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Blocking a bad IP is not quite the same as &quot;resource requires user authentication 1) which has not yet been provided or 2) which has been provided but failed authorization tests&quot;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;In general I feel that 'responding to the bad-bots according to proper http protocol' gives the bad guys the upper hand. In the sense that I play by the rules while they do not (a bit like Britain in the EU - ha, ha). On some days I feel like I should do something clever to divert these bot's away. On other days I just think that I should not take it personally and just ignore them. Accepting it as par for the course of running a web site. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I dunno - what are your thoughts? How do you respond when you know its a bad IP?&lt;/p&gt;&#xA;" OwnerUserId="6720" LastEditorUserId="6720" LastEditorDisplayName="" LastEditDate="2010-11-25T04:51:41.407" LastActivityDate="2010-11-25T11:26:34.980" Title="Which http response do you return to a hit from a blacklisted ip?" Tags="&lt;security&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="21340" PostTypeId="2" ParentId="21325" CreationDate="2010-11-25T00:52:34.237" Score="3" ViewCount="" Body="&lt;p&gt;One of the better ways to get an interview is to build a free/open source tool that a lot of people use. That way they notice you and can eventually contact you and you automatically have better chances since you've cleared at least 2 levels of HR filtering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;other that that it's pretty much the same process as in every other larger company:&lt;br&gt;&#xA;phone interview with HR person&lt;br&gt;&#xA;2x phone interview with 2 devs&lt;br&gt;&#xA;phone interview with a PM&lt;br&gt;&#xA;day long live interview which consists of usually hour long 3 pre lunch and 3 post lunch interviews.&lt;/p&gt;&#xA;" OwnerUserId="319" LastActivityDate="2010-11-25T00:52:34.237" CommentCount="1" />
  <row Id="21341" PostTypeId="2" ParentId="20867" CreationDate="2010-11-25T00:54:01.957" Score="1" ViewCount="" Body="&lt;p&gt;I would, why not?&#xA;If their resume is compatible to what my company needs, there is no reason to not even offer an interview. You'd be surprised by people's programming abilities that have no degrees or have non-related degrees. You could always ask some technical stuff or ask them to implement something on the fly to make sure they are not bluffing.&#xA;I'd also prefer a person without a degree if he/she seems like someone easier to get along with than a person with a degree and a bit more knowledge.&lt;br&gt;&#xA;Knowledge is easy to attain, personality is often unchangeable. &lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-11-25T00:54:01.957" />
  <row Id="21342" PostTypeId="2" ParentId="5034" CreationDate="2010-11-25T01:10:08.347" Score="0" ViewCount="" Body="&lt;p&gt;I would consider any machine that is both useful and permanently &lt;strong&gt;beyond my understanding&lt;/strong&gt; to be artificially intelligent (although I dare not suggest that such machine might exist outside of fiction lest my geekhood would be cast into doubt).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/yET26.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A less &lt;em&gt;personal&lt;/em&gt; definition:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A machine can be considered artificially intelligent if it can &lt;strong&gt;solve &lt;em&gt;classes&lt;/em&gt; of problem that were not envisaged by its designers&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Preumably, the architects of such a machine must endow their creation with the ability to lean, or else they must be possessors of extreem good fortune. By definition, trivial machine learning is precluded (so no, your tic-tac-toe solver dosn't count). Either way, happy + surprised should characterise the mood of that machine's engineers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The closest I can get to a code sample? Is this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.google.com&quot; rel=&quot;nofollow&quot;&gt;http://www.google.com&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This works quite well on my machine (indeed, this automiton sometimes appears prescentient) but YMMV.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastEditorUserId="1928" LastEditorDisplayName="" LastEditDate="2010-11-25T01:17:27.313" LastActivityDate="2010-11-25T01:17:27.313" />
  <row Id="21343" PostTypeId="2" ParentId="21028" CreationDate="2010-11-25T01:14:43.943" Score="2" ViewCount="" Body="&lt;p&gt;Python: because I like to fire up the Linux terminal shell and type some python code and see the result right away, not that other languages can't, but I just prefer it. I like the syntax and it just feels right for me.&lt;br&gt;&#xA;It's also because of Django.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-11-25T01:14:43.943" />
  <row Id="21344" PostTypeId="2" ParentId="21339" CreationDate="2010-11-25T01:36:37.897" Score="6" ViewCount="" Body="&lt;p&gt;If you want to play by the rules, &lt;strong&gt;403 Forbidden&lt;/strong&gt;, or &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/HTTP_403&quot; rel=&quot;nofollow&quot;&gt;403.6 IP address rejected&lt;/a&gt;&lt;/strong&gt; (IIS specific) would be the correct response.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Giving a 200 response (and ignoring the comment) may just increase the load on the server, as the spam bot will presumably continue submitting spam on future occasions, unaware that it is having no effect. A 4XX response at least says &quot;go away you need to check your facts&quot; and is likely to diminish future attempts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the unlikely event you have firewall access, then a block of blacklisted IP addresses at the firewall would minimize server load / make it appear that your server didn't exist to the spammer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was going to suggest using a 302 Temporary Redirect to the spammer's own IP address  - but this would probably have no effect as there would be no reason for the bot to follow the redirect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If dealing with manually submitted spam, making the spam only visible by the IP address that submitted it is a good tactic. The spammer goes away happy and contented (and does not vary his approach to work around your defences), and the other users never see the spam. &lt;/p&gt;&#xA;" OwnerUserId="5401" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-25T11:26:34.980" LastActivityDate="2010-11-25T11:26:34.980" CommentCount="6" />
  <row Id="21345" PostTypeId="2" ParentId="21280" CreationDate="2010-11-25T01:39:57.747" Score="1" ViewCount="" Body="&lt;p&gt;Great answers so far. Here are a few more suggestions:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Virtualization on the Mac rocks&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I develop on Mac, Linux, and Windows, and use a MacBook Pro for all three at times. But I never use BootCamp because the virtualization tools are so good. I personally prefer &lt;strong&gt;VMWare Fusion&lt;/strong&gt; because it's really solid, has a great feature set, and makes installing Windows or Ubuntu a snap. But I've also found &lt;strong&gt;VirtualBox&lt;/strong&gt; to be reasonable (and free), and some folks swear by &lt;strong&gt;Parallels&lt;/strong&gt;. Right now, I've got two Ubuntu Meerkat virtual machines set up in VMWare, and historically have used it for every version of Ubuntu back to Hardy, as well as WinXP and Vista, and even the BeOS clone Haiku. The only serious problems I've run into have been with drivers for prototype USB devices that really expected to run on genuine iron rather than a virtualized USB system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;There are some great GUI text editors on the Mac&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Xcode's editor isn't bad, but if you really want Mac cred, grab yourself a copy of the completely free &lt;a href=&quot;http://www.barebones.com/products/textwrangler/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;TextWrangler&lt;/strong&gt;&lt;/a&gt;, which also does great recursive searches and graphical diffs. Some other good ones include the open-source &lt;a href=&quot;http://www.fraiseapp.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Fraise&lt;/strong&gt;&lt;/a&gt;, and commercial options like &lt;strong&gt;BBEdit&lt;/strong&gt; (TextWrangler's big brother) and &lt;a href=&quot;http://macromates.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;TextMate&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Lots of version control options&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All the modern commercial and open-source players have ports to the Mac. I use Perforce currently, and have recently used Subversion and git. The GUI tools are pretty good, too, with the exception of git, for which the best option was the old-school git-gui the last time I checked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Incidentally, &lt;strong&gt;MacPorts vs. Fink&lt;/strong&gt; for getting Linux-y stuff is mostly a matter of personal preference. Would you rather get your binaries prepackaged ala Ubuntu (Fink)? Or have a tool that downloads the source and builds it locally (MacPorts)? I use MacPorts myself, but that's because I hack on some open source components and wind up replacing parts of what MacPorts or Fink would install, and prefer to use things that are built and installed in the exact way I'd do it myself.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-11-25T01:39:57.747" CommentCount="2" />
  <row Id="21346" PostTypeId="2" ParentId="21280" CreationDate="2010-11-25T01:44:03.527" Score="4" ViewCount="" Body="&lt;p&gt;Closing the window doesn't quit the app.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-11-25T01:44:03.527" />
  <row Id="21347" PostTypeId="2" ParentId="21336" CreationDate="2010-11-25T01:44:41.903" Score="4" ViewCount="" Body="&lt;p&gt;At any given time, I normally have several different clients, each of whom has one or more projects. I also use a mainline-with-branching development model, which works well with many version control systems like git and Perforce.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So on any one of my development machines, above the individual project level, things look like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Client 1 Directory&#xA;    Project Foo Directory&#xA;        Main Branch Directory&#xA;        All Branches In One Directory (useful for Perforce branching/merging)&#xA;        Simple Fixes Branch Directory&#xA;        Big Ongoing Feature 1 Directory&#xA;        Big Ongoing Feature 2 Directory&#xA;        (etc.)&#xA;    Project Bar Directory&#xA;        (similar branch directories)&#xA;Client 2 Directory&#xA;    Project Baz Directory&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and so on. I don't typically pull all branches onto any given machine, or pull Mac projects onto a Windows or Linux box.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Individual branches usually look something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Build Instructions Document/Checklist&#xA;Top-Level Makefile/Project&#xA;Source (Directory)&#xA;   Main Source Files&#xA;   Component 1 Source Directory&#xA;   Component 2 Source Directory&#xA;   (etc.)&#xA;Include (Directory for headers exposed to the outside world, if suitable)&#xA;ThirdParty (Libraries, source code, etc. from elsewhere)&#xA;Unit Tests&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Of course, there's a lot of variation. And if I take over a project somebody else started, I usually retain their existing hierarchy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I typically keep documentation and test files either attached to a wiki in my issue tracking system (Redmine), or if they're bigger than Redmine's default 5 MB limit, on an FTP server, so I don't have to keep local copies on all my development machines, but can retrieve them as I need them.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-11-25T01:44:41.903" CommentCount="3" />
  <row Id="21348" PostTypeId="2" ParentId="19673" CreationDate="2010-11-25T01:51:28.933" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;C-j  (M-x newline-and-indent)&lt;/li&gt;&#xA;&lt;li&gt;C-M-\ (M-x indent-region)&lt;/li&gt;&#xA;&lt;li&gt;M-.  (M-x find-tag)  requires running etags on your code&lt;/li&gt;&#xA;&lt;li&gt;M-/  (M-x dabbrev-expand)&lt;/li&gt;&#xA;&lt;li&gt;M-x compile&lt;/li&gt;&#xA;&lt;li&gt;C-x v v  (M-x vc-next-action)&lt;/li&gt;&#xA;&lt;li&gt;M-x font-lock-mode&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and read the documentation for the language mode you use  (C-h m (M-x describe-mode))&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm also a huge fan of (M-x shell), M-! (M-x shell-command) and M-| (M-x shell-command-on-region) becuase I find it very handy to be able to run command from inside emacs and &#xA;cut-and-paste the output.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, M-x sort-lines, M-x sort-fields and M-x sort-num-fields are useful for keeping long&#xA;lists of things (like variable names) in alphabetic or numeric order.&lt;/p&gt;&#xA;" OwnerUserId="8527" LastActivityDate="2010-11-25T01:51:28.933" />
  <row Id="21349" PostTypeId="2" ParentId="18273" CreationDate="2010-11-25T02:01:26.340" Score="1" ViewCount="" Body="&lt;p&gt;Here's a good example of the lack of professionalism I am talking about: He requests that we talk over IM (Which actually is great since I can't understand anything he says) and I get IMs like:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;indian tech recruiter:&lt;/strong&gt; hey &lt;strong&gt;&lt;em&gt;my name&lt;/em&gt;&lt;/strong&gt;, dey like u&lt;br&gt;&#xA;  as i got the feedback&lt;br&gt;&#xA;  but they said they will&lt;br&gt;&#xA;  tell d final decision by tuesday&lt;br&gt;&#xA;  i was about to send d mail to u&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Are you kidding me!!? Is he six years old? Really and its like this a lot.&lt;/p&gt;&#xA;" OwnerUserId="7473" LastActivityDate="2010-11-25T02:01:26.340" CommentCount="1" />
  <row Id="21350" PostTypeId="2" ParentId="21028" CreationDate="2010-11-25T02:02:32.630" Score="5" ViewCount="" Body="&lt;p&gt;Ruby.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's just so darn pretty :)&lt;/p&gt;&#xA;" OwnerUserId="7814" LastActivityDate="2010-11-25T02:02:32.630" />
  <row Id="21351" PostTypeId="2" ParentId="21291" CreationDate="2010-11-25T02:21:51.823" Score="4" ViewCount="" Body="&lt;blockquote&gt;Test-Driven Development is about writing tests to define the program specifications&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You don't write tests to define the specification, the test descriptions, user stories, and feature descriptions &lt;em&gt;are&lt;/em&gt; the specification, in the 'dead trees' sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To review, the TDD process in a nutshell is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;define a project in terms of features&lt;/li&gt;&#xA;&lt;li&gt;describe the stakeholder, behavior, and goal of each feature using user stories&lt;/li&gt;&#xA;&lt;li&gt;specify the expected givens, triggering events/conditions, and behaviors/outcomes associated with a user story using test descriptions [and this completes the 'specification']&lt;/li&gt;&#xA;&lt;li&gt;pick a set of features for each iteration; iterations should be short [i'm omitting the planning and estimation steps for brevity]&#xA;&lt;ul&gt;&#xA;&lt;li&gt;code a test for a feature (it will fail, but you had to make API decisions to code the test)&lt;/li&gt;&#xA;&lt;li&gt;implement enough of the feature so that the test passes&lt;/li&gt;&#xA;&lt;li&gt;refactor the code if necessary&lt;/li&gt;&#xA;&lt;li&gt;repeat with the next test until the feature is completed&lt;/li&gt;&#xA;&lt;li&gt;repeat with the next feature until the iteration is completed&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;repeat with the next iteration until the project is completed&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;how much design, architecture, supporting documentation, et al you choose to do is not part of TDD. There are some practical 'best practices' you can read about, but keep in mind that those are the 'best' practices in &lt;em&gt;someone else's workshop&lt;/em&gt;, not yours. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;note that the point is for the customer &lt;strong&gt;and&lt;/strong&gt; the developer to come up with the features and write the stories and test descriptions &lt;em&gt;together&lt;/em&gt;, for mutual understanding&lt;/p&gt;&#xA;&#xA;&lt;p&gt;so, with that out of the way, the original question was:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;what is the role of a software architect in TDD?&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And the short answer is:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;Same as it ever was, same as it ever was.&#xA;  --David Byrne&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;hr&gt;&#xA;EDIT: The long answer is: the architect plays the usual visionary/investigator/irritant/support/backstop roles during the entire process, as necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT 2: sorry I missed the point of the sub-questions! &lt;strong&gt;Everyone&lt;/strong&gt; is responsible for writing the specifications; all of the developers including the architect if/when appropriate &lt;em&gt;plus the customer&lt;/em&gt;. The developers &lt;em&gt;also&lt;/em&gt; code the tests.&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-11-25T05:13:23.410" LastActivityDate="2010-11-25T05:13:23.410" CommentCount="12" />
  <row Id="21352" PostTypeId="1" CreationDate="2010-11-25T02:42:11.740" Score="1" ViewCount="140" Body="&lt;p&gt;I have previously used ScrewTurn Wiki and really like it but am going to start hosting more of my sites on Azure and would like to know if anyone found a good wiki software that can be deployed to Azure.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2011-01-24T14:47:29.680" Title="Looking for a Wiki that will run on Azure" Tags="&lt;azure&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="21353" PostTypeId="2" ParentId="18273" CreationDate="2010-11-25T02:43:46.980" Score="0" ViewCount="" Body="&lt;p&gt;If you were out of work for 6 months, would you think this was a problem?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hate to say it, but good sales people will risk being offensive, rude, and unprofessional if they 'think' it will lead to a sale. We all have our natural instincts that make us better in our domains. Sort of the 'when in doubt' philosophy. Like when in doubt, most programmers will tell you your code is crap at the risk of hurting your feelings.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-25T02:43:46.980" />
  <row Id="21354" PostTypeId="2" ParentId="21304" CreationDate="2010-11-25T02:54:31.083" Score="0" ViewCount="" Body="&lt;p&gt;They're just horrible. I don't believe agile means no documentation at all. They should have at least kept track of the application description. Getting an export of their wiki would have been nice or allowed someone else to pick up the service fee.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may not be as detailed as some attempt. The theory is, when in a time-crunch, the specs no longer match the code anyway. So you have enough documentation to write the code and not try to define it in detail (Sort of like writing the code in some pseudo-verbalized-text/diagram-code and then in the actual code.).&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-25T02:54:31.083" />
  <row Id="21355" PostTypeId="1" CreationDate="2010-11-25T03:02:47.627" Score="7" ViewCount="132" Body="&lt;p&gt;I think we've all been there, you've been asked to write something to send bulk emails for whatever reason. It's a solved problem, theres a multitude of companies out there to handle this for you, and theres no point in catching up on their many years of single minded focus on making sure your email reaches its destination without being waylaid by spam filters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I could go into a point by point talk about DKIM, SPF, ISP rate limits, content inspection, bounces, getting blacklisted, getting unblacklisted etc, but the eyes will glaze over.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you convince a non technical manager of the issues around bulk email like this?&lt;/p&gt;&#xA;" OwnerUserId="8528" LastActivityDate="2010-11-25T03:27:39.397" Title="How do you explain the complexity of bulk emailing to a manager?" Tags="&lt;management&gt;&lt;non-technical-manager&gt;&lt;email&gt;" AnswerCount="2" FavoriteCount="2" />
  <row Id="21356" PostTypeId="2" ParentId="21355" CreationDate="2010-11-25T03:16:33.637" Score="2" ViewCount="" Body="&lt;p&gt;Sell them on the value-added services of the bulk emailer of choice, instead of why their idea sucks. Eventually, after you champion the 3rd party services enough a reasonable manager would be able to see that the resource cost of developing your own solution that has all those features is significantly more than the monthly/contract pricing.&lt;/p&gt;&#xA;" OwnerUserId="8472" LastEditorUserId="8472" LastEditorDisplayName="" LastEditDate="2010-11-25T03:22:30.203" LastActivityDate="2010-11-25T03:22:30.203" />
  <row Id="21357" PostTypeId="2" ParentId="21355" CreationDate="2010-11-25T03:20:39.683" Score="12" ViewCount="" Body="&lt;p&gt;Don't tell them details... they will, as you say, glaze over. Just say &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Our e-mails won't get there because of the anti-spam measures in place. Companies who specialize in bulk mailing have methods to solve that issue, and it'd cost us more to reproduce what they make than it would to hire them.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then leave it at that. IME, once you say &quot;... it'll cost more...&quot; they change their mind. If it's someone who doesn't have any financial pressures (some managers don't have to worry about what things cost) then just tell them it'll take time away from [project x].&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're not there to explain complexities, you're there to simplify complexities so that management can make informed decisions without having to actually know anything in depth.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-11-25T03:27:39.397" LastActivityDate="2010-11-25T03:27:39.397" CommentCount="6" />
  <row Id="21358" PostTypeId="1" AcceptedAnswerId="21363" CreationDate="2010-11-25T04:29:59.750" Score="2" ViewCount="255" Body="&lt;p&gt;For a developer who is just starting off with his/her career is likely to have time ahead to relocate. Would relocation be recommended? What city or country would be best suited for a developer to be in?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Answers to,&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Where are you relocating from? What are you looking for? What kind of development do you want to do? What kind of company do you want to work for?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;I currently am in India.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I'm looking for some place where people are well mannered (a big deal for me somehow) like follow lines, don't push, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I'm not very sure what kind of development I would like to do but I think I might not be interested in desktop apps that much. (I'm still in college so not much exposure to what all kinds of development opportunities exist.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A company which isn't bureaucratic and has work which is not repetitive or text-book in nature. Travelling in the initial part of the career would be exciting.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5940" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-25T14:58:45.297" LastActivityDate="2010-11-25T15:00:24.813" Title="Best place to be for a developer just starting off." Tags="&lt;career-advice&gt;" AnswerCount="3" CommentCount="3" />
  <row Id="21359" PostTypeId="2" ParentId="20867" CreationDate="2010-11-25T04:50:08.350" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I've done it three times, and regretted it two of them. Here's why.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anybody with the right talents and motivation can become a competent coder. But it takes a lot more than that to become anything other than a code monkey. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Professional software development is really about making somebody's life easier, or more fun, or solving some problem they have by writing code for them. To do that effectively, somebody has to be able to understand and encompass the customers' concerns. If all you can do is crank out code, that person isn't going to be you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you get an American computer science degree, it's not a four year version of high-schoool auto shop for programmers. They require you to study lots of other subjects like science, literature, sociology, art, music, and so on. If you actually pay attention, that broad background is incredibly valuable in a software development career, because it will give you a basis for understanding the needs of people who are willing to pay you to write software for reasons you would never come up with yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing you can get from a bachelor's degree is four years of mentored training in how to learn about really difficult, weird subjects you might not even care about. If you cooperate with what the faculty is trying to teach you around that, you will wind up with the self-discipline, patience, and intellectual tools to achieve rapid comprehension of an astonishing range of topics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, I'm not saying everybody who comes out of college has achieved those things - in my experience, most have missed out on some or all of it. (I'm currently reading a lot of literature at 52 which I could have studied in college if I hadn't been so full of myself at the time.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I know for certain you don't need a CS degree to be a competent coder, because I'm a chemist/mathematician who's only ever taken two FORTRAN classes in the '70s. Nowadays, I do all kinds of interesting computer graphics and human interaction work in C, C++, and Objective C on Linux and Mac, and even present papers on it. And I've hired really great programmers who wrote great software with non-CS degrees, including a medievalist, a physicist, a mathematician, a clarinetist, a historian, and a cinematographer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why did I regret hiring those two guys? One was a college dropout who couldn't cope with steep learning curves, so when we ran out of trivial work for him, what he wrote was junk; he quit right before we were going to fire him. The other is a really brilliant coder who dropped out of high school for a programming job, but is a &quot;my way or the highway&quot; kind of guy who kept blowing off the customer's need to get the job done on time, so I fired him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, it's possible somebody with a degree could have those problems - but it would be a lot less likely. If you can't learn, or you won't do what the prof wants, you'll get lousy grades and you won't get a degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And it's possible somebody without a degree could have learned all the non-CS skills I cite above outside of college. But that would be way more effort than picking those up by going to college. So not only would they need to explain why they didn't go to college, I've honestly never met anybody with those skills who didn't go to college.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-11-25T04:50:08.350" />
  <row Id="21360" PostTypeId="2" ParentId="21260" CreationDate="2010-11-25T06:03:13.230" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Absolutely!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's absolutely nothing stopping you from learning later revisions of the language specification, but by learning from C# 2.0 - you'll get a much better idea of what features are available in each version of the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's worth stressing that the language and the .NET framework are seperate things, and both change between releases of Microsoft's .NET distribution. A great example of this is: in .NET 2.0 we only have WinForms for GUI, however in later releases there are WPF and Silverlight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowing the difference between the language and framework features in different releases is important - if you're targeting the compact runtime or Novell's cross-platform Mono runtime, they only support specific features - knowing your way around is good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're looking for a more 'mainstream' example - many enterprises will only have a specific .NET runtime available as part of their server SOE, so custom developed and industry-specific software usually needs to be written to support older versions of the Microsoft release!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's still important to be up to date, but at the end of the day - the person with the better holistic understanding of the technology they're using (versus someone who only understands what is the current fashion) is going to do better in the long run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps :)&lt;/p&gt;&#xA;" OwnerUserId="7641" LastActivityDate="2010-11-25T06:03:13.230" />
  <row Id="21361" PostTypeId="2" ParentId="20867" CreationDate="2010-11-25T06:11:22.663" Score="4" ViewCount="" Body="&lt;p&gt;I don't much care whether a candidate has a degree or not -- I haven't found it to be an accurate predictor of anything.  Some graduates are useful, some are not, and the same goes for non-degreed folks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I get a lot more from talking to people, checking out their references, and from seeing their code, than from their pedigrees.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-11-25T06:11:22.663" />
  <row Id="21362" PostTypeId="2" ParentId="14650" CreationDate="2010-11-25T06:27:00.363" Score="0" ViewCount="" Body="&lt;p&gt;As a teenager, I read translations of articles from Dave Small (*) in an Atari ST-related magazine and its writings were very inspiring to me. This guy was having fun solving tricky problems, not working for a big company but for its own and had great advice about people. People matter, not technology!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(*) Or David Small, from Gadgets by Small who emulated a Mac on an Atari.&lt;/p&gt;&#xA;" OwnerUserId="8530" LastActivityDate="2010-11-25T06:27:00.363" CommunityOwnedDate="2010-11-25T06:27:00.363" />
  <row Id="21363" PostTypeId="2" ParentId="21358" CreationDate="2010-11-25T06:48:09.870" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Geographically&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sounds like you want to move out of your country and move somewhere that isn't densely populated. That might be tough if you're looking to develop software. Most software companies/projects/job areas are in densely populated cities. Personally, I'm Canadian so in my purely biased opinion, I would say that Canada has developed a (partially exaggerated) reputation for having well-mannered people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Company&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Non-beaurocratic &lt;em&gt;usually&lt;/em&gt; (not always) means a smaller company. Which then usually also means smaller budgets. So getting expenses paid to move you and your 'stuff' and getting processes taken care of (immigration is often not an easy process and often involves lawyers) for a large move might be difficult to find with an employer with a small budget.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Travel&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Getting a job that requires/allows travel right out of school is often with consulting companies, take a look at those at home and abroad (a local consulting company might send you on 6 month contracts abroad - hence you don't have to 'move' to find your job). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Job&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Web development where I come from is usually contract based, so you could potentially try to do it from where you are now. Now, you say you want to move, but I can't see a situation where a company would hire a web dev for a contract, and pay or deal with the hassle of moving them. Other users here will hopefully flesh out more of the details behind full-time web development jobs as I don't know that area of the industry well. All of the full-time development work in my area is desktop/embedded or a combination of web/desktop. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Things to Consider&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How much money you want to make? I've heard, anecdotally, that eastern europe is &lt;em&gt;great&lt;/em&gt; to live and work in, but developer salaries aren't as high as north american/uk salaries. I know &lt;em&gt;nothing&lt;/em&gt; about development in east asia, and only a little about western europe. You could try the &lt;a href=&quot;http://www.indeed.com/salary&quot; rel=&quot;nofollow&quot;&gt;indeed salary search&lt;/a&gt; for certain countries (I know it works for US/Canada).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider places that have existing east indian cultural centers to minimize culture shock (if it matters to you). In Canada, Calgary and Toronto are known for having large east indian culture centers. Calgary is spread out, so it's got a large population but it's not very dense, and is hiring lots of developers now.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-25T06:48:09.870" CommentCount="4" />
  <row Id="21364" PostTypeId="2" ParentId="18794" CreationDate="2010-11-25T06:58:06.070" Score="0" ViewCount="" Body="&lt;p&gt;Note:  I haven't read these myself but I know they are good books:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1402049870&quot; rel=&quot;nofollow&quot;&gt; Information Extraction: Algorithms and Prospects in a Retrieval Context &#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1584504609&quot; rel=&quot;nofollow&quot;&gt;Text Mining Application Programming&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0521836573&quot; rel=&quot;nofollow&quot;&gt;The Text Mining Handbook: Advanced Approaches in Analyzing Unstructured Data&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-11-25T06:58:06.070" />
  <row Id="21365" PostTypeId="2" ParentId="21028" CreationDate="2010-11-25T07:28:03.843" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.dataaccess.com/products.asp?pageid=784&quot; rel=&quot;nofollow&quot;&gt;DataFlex&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started using it in version 1.63, when the code was a screen template and rows of five columns of numbers. It was a 4GL, and you had to manually write the P-code. Nevertheless  this was a huge productivity improvement for writing business applications in those days. Version 2.0 added a macrocompiler, so you had read source code. Version 3.0 was object-oriented [full disclosure: I worked for Data Access for about 5 years and helped create the 3.0 version]. I haven't used it in a dozen years, but it was so refreshingly useful and productive even in its infancy that it will always have a special place in my fuzzy-logic heart. Kudos to its original author [and now friend of mine], &lt;a href=&quot;http://corycasanave.modeldriven.org/&quot; rel=&quot;nofollow&quot;&gt;Cory Casanave&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-25T07:28:03.843" />
  <row Id="21366" PostTypeId="2" ParentId="21336" CreationDate="2010-11-25T07:30:17.510" Score="0" ViewCount="" Body="&lt;p&gt;i use a structure similar to Bob's but i also have a separate root for documents with projects and admin folders. I don't like mixing dead trees and code in the same hierarchy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[yes, i know it's two places to back up; i find the convenience worthwhile]&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-25T07:30:17.510" />
  <row Id="21367" PostTypeId="2" ParentId="21304" CreationDate="2010-11-25T07:31:53.030" Score="0" ViewCount="" Body="&lt;p&gt;There should be some description of the features, user stories, and test cases &lt;em&gt;somewhere&lt;/em&gt;, at minimum. IT might be in ReadMe files in the projects, it might be in the source-code comments, it might be in design documents; it might be all of the above... or it might be MIA!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-25T07:31:53.030" />
  <row Id="21368" PostTypeId="2" ParentId="21358" CreationDate="2010-11-25T07:35:05.897" Score="4" ViewCount="" Body="&lt;p&gt;I think &lt;strong&gt;finance&lt;/strong&gt; in &lt;strong&gt;UK&lt;/strong&gt; is a good start.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;They like indians,&lt;/li&gt;&#xA;&lt;li&gt;most of them are well mannered (at least the ones I have worked for, in finance),&lt;/li&gt;&#xA;&lt;li&gt;they doesn't like desktop apps (because of strong security rules and global aspect)&lt;/li&gt;&#xA;&lt;li&gt;and you will travel for sure if you pick an international organization.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;However, they are very (very) buraucratic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4 on 5. Pretty good score isn't ?&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-25T07:35:05.897" CommentCount="3" />
  <row Id="21369" PostTypeId="2" ParentId="21358" CreationDate="2010-11-25T07:45:18.767" Score="2" ViewCount="" Body="&lt;p&gt;I think somebody gave you a wrong picture altogether. India is a great place for software developers. The amount of opportunities are amazing. Though software development is kinda haphazard/non-standard/procedural but you can easily avoid these circumstances.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the the end its your attitude/skills which matters. 'Problems' are everywhere. Its up to you how you deal with them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will answer some of your questions:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I'm looking for some place where people are well mannered (a big deal for me somehow) like follow lines, don't push, etc.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know where you live/work (I assume somewhere in north India). Pune/Mumbai/Bangalore are good places to work. I worked for couple of years in Pune and yes people are a little more mannered there. Follow lines/Don't push - well its part of our culture even the most educated don't follow lines, I know its sad but we have to deal with it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I'm not very sure what kind of development I would like to do but I think I might not be interested in desktop apps that much. (I'm still in college so not much exposure to what all kinds of development opportunities exist.)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you're in college. I would suggest enjoy college life, have some fun, make sure to study all subjects and develop an intrinsic interest in technology. Stop worrying about anything else right now. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A company which isn't bureaucratic and has work which which is not repetitive or text-book in nature. Travelling in the initial part of the career would be exciting.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that bureaucracy is quite less in technology as compared to other jobs. Main reason being non-availability of skilled people. If you can become a very good programmer/technology specialist this wont be a issue for you. You will be respected and no-one will dare touch you!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally feel you don't really need to switch countries to find the right job. India is a decent place to work.&lt;/p&gt;&#xA;" OwnerUserId="1260" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-25T15:00:24.813" LastActivityDate="2010-11-25T15:00:24.813" CommentCount="3" />
  <row Id="21370" PostTypeId="2" ParentId="21028" CreationDate="2010-11-25T07:48:48.060" Score="-1" ViewCount="" Body="&lt;p&gt;I can haz Javascript &amp;lt;3&lt;/p&gt;&#xA;" OwnerUserId="6518" LastActivityDate="2010-11-25T07:48:48.060" />
  <row Id="21371" PostTypeId="2" ParentId="21336" CreationDate="2010-11-25T07:54:28.020" Score="0" ViewCount="" Body="&lt;p&gt;I use the following structure for my project on Java (three top-level directories):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Project/ - the projects main directory&#xA;   src/ - source files&#xA;   doc/ - documentation sources, generated HTML, PDF files&#xA;   build/makefiles and configurable template files for local paths and versions&#xA;   ChangeLog - a text file to track changes in the project&#xA;   README-DEV - describes how to build the project&#xA;   tests/ - everything concerning unit-testing&#xA;   kit/ - third party libs, sources&#xA;&#xA;TSTProject/ - test-cases (over 2000 XML files), scripts for automated testing&#xA;&#xA;Project_BRANCHES/ - branches, usually a branch per public release&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-11-25T07:54:28.020" />
  <row Id="21372" PostTypeId="2" ParentId="21304" CreationDate="2010-11-25T08:11:33.307" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is this normal for agile or just an excuse for not wanting to write it?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;My theory is that it's why agile spread so fast, especially &lt;a href=&quot;http://www.scrum.org&quot; rel=&quot;nofollow&quot;&gt;scrum&lt;/a&gt;. I've seen too many team wanting agile to protect themselves (instead of the whole company). The problem is that in many case, the methodology is used against them by management (because they want to protect themselves too!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does this means agile doesn't work at all? Of course not, this just means that agile helps you to solve few common problems, but you are still in charge of all the others. And in many case agile is just not suitable for that team in that company.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What are the industry norm for documentation in agile projects to record development requirements, designs, key decisions and context?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;To be short:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The team should define how much documentation they need&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They know the domain, they are the experts and more importantly they build the thing!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's what &lt;em&gt;Working software over comprehensive documentation&lt;/em&gt; in the &lt;a href=&quot;http://www.agilemanifesto.org&quot; rel=&quot;nofollow&quot;&gt;Agile Manifesto&lt;/a&gt; means.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-25T08:11:33.307" />
  <row Id="21373" PostTypeId="2" ParentId="21028" CreationDate="2010-11-25T08:26:00.793" Score="1" ViewCount="" Body="&lt;p&gt;Groovy - just starting to learn it but already in love with it. Closures, improved collections(Ranges are pretty nice), assertions, GStrings, GPath, GroovyBeans and lots of more tasty things in comparison with Java. (But maybe my love will change when I start to learn Scala :))  &lt;/p&gt;&#xA;" OwnerUserId="4164" LastActivityDate="2010-11-25T08:26:00.793" />
  <row Id="21374" PostTypeId="1" CreationDate="2010-11-25T08:44:44.387" Score="2" ViewCount="156" Body="&lt;p&gt;What is the single most important thing that you do to ensure career progression ? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words what is it that you have to learn\unlearn\implement every day so that you do not stagnate at a level in a company and there is constant vertical growth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These strategies might be different at each role and might vary for different segments like Development Teams\ Sustaining Teams \ QA Team and Technical Pub teams. The question is independent on which team you are in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S : Vertical growth can also be on technical path.&lt;/p&gt;&#xA;" OwnerUserId="672" LastEditorUserId="672" LastEditorDisplayName="" LastEditDate="2010-11-25T13:00:20.917" LastActivityDate="2010-11-25T13:14:29.380" Title="Your strategy to ensure vertical growth" Tags="&lt;career&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="21375" PostTypeId="2" ParentId="21374" CreationDate="2010-11-25T08:55:50.180" Score="6" ViewCount="" Body="&lt;p&gt;Strategy should be different for everybody, because we are all different, but here is mine:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Every single time I had to choose between two &lt;strong&gt;opportunities&lt;/strong&gt;, I picked &lt;strong&gt;the one that required the most skills I didn't have (yet)&lt;/strong&gt;. Example for programmer jobs: You know C# pretty well, you master ASP.NET and Entity Framework. You have two opportunities. One is for C#/ASP.NET/EF the second one is for C#/ASP.NET/nHibernate/WCF. You pick the second one. Do that also if you have the opportunity to change the industry your are in, unless you love it so much you want to become an expert in the domain. The key is &lt;strong&gt;accepting pain&lt;/strong&gt;. Most people like their comfort zones. They resist to change to avoid that pain. The reality is that you have to suffer (a bit) to progress. Just like in sports.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Being an expert is far from being enough. You must develop your &lt;strong&gt;interpersonal skills&lt;/strong&gt; and do some &lt;strong&gt;networking&lt;/strong&gt;. The more people you will meet, the more you will expose yourself, the more &lt;strong&gt;opportunities&lt;/strong&gt; you will get. You can meet them in person of course, but also in online communities like this one. FYI I would love to meet you if we have that opportunity one day.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Seek &lt;strong&gt;win-win&lt;/strong&gt; in every situation you encounter. &lt;strong&gt;Keep your words&lt;/strong&gt;. &lt;strong&gt;Respect&lt;/strong&gt; people. &lt;a href=&quot;http://sethgodin.typepad.com/seths_blog/2010/11/arrogance-is-a-bug-in-signal-processing.html&quot; rel=&quot;nofollow&quot;&gt;Arrogance is a bug in signal processing&lt;/a&gt;. It will makes things harder for you on the short term (it's so easy to be dishonest...), but this will pays on the long term. The good news is that when it will pays, it will for everybody you worked with, not only you.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-25T13:14:29.380" LastActivityDate="2010-11-25T13:14:29.380" CommentCount="1" />
  <row Id="21376" PostTypeId="2" ParentId="21028" CreationDate="2010-11-25T08:59:26.830" Score="4" ViewCount="" Body="&lt;p&gt;C++ : &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it have a lot of flaws&lt;/li&gt;&#xA;&lt;li&gt;you don't get used to it easily&lt;/li&gt;&#xA;&lt;li&gt;it takes a lot of time to get better&lt;/li&gt;&#xA;&lt;li&gt;it's not a top-model &quot;beautiful&quot;&lt;/li&gt;&#xA;&lt;li&gt;but it makes me feel so free...&lt;/li&gt;&#xA;&lt;li&gt;and it's so much powerful, energic by nature&lt;/li&gt;&#xA;&lt;li&gt;makes your life simpler&lt;/li&gt;&#xA;&lt;li&gt;and still let you have complete control, makes me confident&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So even after 10 years, even if I have other opportunities...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm still in love.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastEditorUserId="1921" LastEditorDisplayName="" LastEditDate="2010-11-25T11:52:07.683" LastActivityDate="2010-11-25T11:52:07.683" />
  <row Id="21377" PostTypeId="2" ParentId="21028" CreationDate="2010-11-25T09:03:32.290" Score="1" ViewCount="" Body="&lt;p&gt;TurboPascal. Back then, it was just great. As fast as C, arguably more beautiful, fast compiler, small executables.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-25T09:03:32.290" />
  <row Id="21378" PostTypeId="2" ParentId="21374" CreationDate="2010-11-25T09:12:33.610" Score="3" ViewCount="" Body="&lt;p&gt;I'd guess for many programmers the most important part would be just to pursue a carreer the way you mean it. Many people in our business are just happy with staying a coder and just have no ambition to become a team leader, manager etc., in fact they would even decline a promotion if that meant they couldn't code any longer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you asked, I think that good communication skills are the most important trait of a would-be-manager. Skills in planing, stress tolerance and emotional intelligence are also necessary to survive the game.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="6617" LastEditorDisplayName="" LastEditDate="2010-11-25T13:05:44.937" LastActivityDate="2010-11-25T13:05:44.937" CommentCount="7" />
  <row Id="21379" PostTypeId="2" ParentId="9551" CreationDate="2010-11-25T09:16:05.670" Score="3" ViewCount="" Body="&lt;p&gt;Be glad they didn't hire you just to lay you off a month later, and just forget the issue. Keep looking for a better job if your current job doesn't satisfy you.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-25T09:16:05.670" />
  <row Id="21380" PostTypeId="1" CreationDate="2010-11-25T09:28:02.760" Score="4" ViewCount="313" Body="&lt;p&gt;Well, developers aren't great at writing documentation but we have to.  What platform do you use to write it?  Microsft Word?  Open Office?  Latex?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please note, I'm looking for something that is&#xA;(a) cross platform (should work on at least Linux and Windows)&#xA;(b) easy to use for developers and non-developers&#xA;(c) and if possible version controlled&lt;/p&gt;&#xA;" OwnerUserId="6815" LastEditorUserId="6815" LastEditorDisplayName="" LastEditDate="2010-11-25T09:34:30.877" LastActivityDate="2010-11-25T21:11:29.300" Title="What would be the best way to create documentation?" Tags="&lt;documentation&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="2" />
  <row Id="21381" PostTypeId="2" ParentId="21380" CreationDate="2010-11-25T09:37:02.860" Score="1" ViewCount="" Body="&lt;p&gt;Web-based documentation is a way to be platform-independent. Most day-to-day documentations, the ones other developers use and are changed constantly on to reflect the truth can work this way. It's easy to use, the learning curve is not too steep and comparatively cheap to set up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For documentation that other users (or developers in different teams/companies use) you should use whatever tool you and the team have but the output format should be something independent like PDF.&lt;/p&gt;&#xA;" OwnerUserId="8454" LastActivityDate="2010-11-25T09:37:02.860" />
  <row Id="21382" PostTypeId="1" CreationDate="2010-11-25T09:48:38.990" Score="0" ViewCount="77" Body="&lt;ul&gt;&#xA;&lt;li&gt;How to chose the primary key for given table?&lt;/li&gt;&#xA;&lt;li&gt;What are the steps i have to follow?&lt;/li&gt;&#xA;&lt;li&gt;Why does the primary key important?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastEditorUserId="156" LastEditorDisplayName="" LastEditDate="2010-11-25T09:58:18.010" LastActivityDate="2010-11-25T10:08:12.660" ClosedDate="2010-11-25T11:08:58.360" Title="Database Management" Tags="&lt;management&gt;&lt;database&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="21383" PostTypeId="2" ParentId="21380" CreationDate="2010-11-25T09:53:50.510" Score="2" ViewCount="" Body="&lt;p&gt;Most of our internal documentation is on a wiki but our external documentation is done in &lt;a href=&quot;http://www.docbook.org/&quot; rel=&quot;nofollow&quot;&gt;DocBook&lt;/a&gt; format.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main advantage of DocBook for us is it's XML which makes it far more suitable to managing through a version management system, identifying changes and so on.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The disadvantage is that it's XML so it's not the most intuitive way to create documentation for many people (there are editors out there and we have one but most of the developers just end up writing in their favourite text editor as it's easier once you've learned the tags).  Images in particular aren't that straight forward (it's akin to coding them in HTML - create the image, save it then create a reference to it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The XML can then be converted to HTML, PDF or whatever for distribution.  It supports dividing subsections out into separate sections (which makes it easy to reuse them), templates and so on so there is some good stuff there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not for everyone but it's something I'd suggest developers looking at how to do documentation spend 10 minutes looking into.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-25T09:53:50.510" CommentCount="2" />
  <row Id="21384" PostTypeId="2" ParentId="21380" CreationDate="2010-11-25T09:58:14.697" Score="2" ViewCount="" Body="&lt;p&gt;After some research, trial and error, I've ended up using &lt;a href=&quot;http://sphinx.pocoo.org/&quot; rel=&quot;nofollow&quot;&gt;Sphinx&lt;/a&gt;. It was originally meant for documenting Python APIs, but works fine for end user documentation too.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-11-25T09:58:14.697" CommentCount="2" />
  <row Id="21385" PostTypeId="2" ParentId="21382" CreationDate="2010-11-25T10:08:12.660" Score="2" ViewCount="" Body="&lt;p&gt;A primary key is going to be the one unique identifier for each row in that table.  If you have a table containing names you might have 10 John Smiths in the table but each one will have a different primary key which allows you to identify exactly the John Smith you mean.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The primary key is then the column / key that will then be used for all you joins to other related tables (references to the Primary Key from another table being called Foreign Keys).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A very basic &quot;How to choose a primary key&quot; and a few other notes:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The primary key should be entirely under your control.  Do not use a name, e-mail address, login ID or similar because...&lt;/li&gt;&#xA;&lt;li&gt;A primary key once assigned should never change.  If you pick a name, e-mail address or whatever that may change which means you have to update all your foreign keys as well and you really don't want to do that.&lt;/li&gt;&#xA;&lt;li&gt;Generally a primary key shouldn't be regarded as business or user facing data - it's a technical key and shouldn't be used as an account number or anything else, again, in case it changes.&lt;/li&gt;&#xA;&lt;li&gt;A primary key should, for reasons that should be obvious, be unique to the record.&lt;/li&gt;&#xA;&lt;li&gt;Generally go with a integer (or a large integer) which is assigned automatically by the database when the record is created.  Integers are easy to work with and fast to join.&lt;/li&gt;&#xA;&lt;li&gt;Every table should have a primary key.  No exceptions.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So, an example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;Table: Authors&#xA;&#xA;pk_AuthorID    Name&#xA;&#xA;1            John Smith&#xA;2            Jeff Jones&#xA;3            John Smith&#xA;&#xA;Table: LibraryBooks&#xA;&#xA;pk_BookID    Title                 fk_AuthorID&#xA;&#xA;1            How to skin a cat      1&#xA;2            Fighting for real men  2&#xA;3            Oooo, a book!          3&#xA;4            Puppies, A Primer      2&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Here pk_AuthorID is the primary key for Authors, pk_BookID is the primary key for LibraryBooks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The authors in the LibraryBooks table are linked based on the primary key of the author rather than the name.  This allows you to identify that while books 1 and 3 were both written by John Smith, it's not the same John Smith.  It also allows you to identify that books 2 and 4 were both written by not just a Jeff Jones but the same Jeff Jones.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-25T10:08:12.660" CommentCount="1" />
  <row Id="21386" PostTypeId="2" ParentId="9551" CreationDate="2010-11-25T10:13:30.830" Score="3" ViewCount="" Body="&lt;p&gt;Just checked your profile and you're in the UK.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Disclaimer - I'm not a lawyer, this doesn't constitute legal advice, you should contact an employment lawyer)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have no recourse.  Even with a written offer they would have been able to retract it up to the day you started work and turned up without even being obliged to pay redundancy or other severance pay.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was in a similar situation a few years back (though I had a written offer and had handed in my notice at the old place).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I spoke to someone in the HR department in my current company (I was friends with them) and that was what they told me - I objected saying surely this was unfair etc. and they said, yes that may well be but they were utterly unambiguous that I had no recourse in law against the company who had withdrawn the offer.  As much as I didn't want to believe her she had master level qualifications in this stuff and five or ten years experience - I knew from previous dealings with her that she knew what she was talking about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apparently the reason for this is that your legal rights with regard employment comes at the point you start work, not at the point you accept an offer (even in writing).  Job offers are not legally the same as the sort of offer you make someone when you're buying a television.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So sorry, but as many people have said, you should probably consider yourself lucky that you've avoided working in a place that would do something like that.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-25T10:46:23.673" LastActivityDate="2010-11-25T10:46:23.673" />
  <row Id="21387" PostTypeId="1" AcceptedAnswerId="21391" CreationDate="2010-11-25T10:14:03.157" Score="10" ViewCount="604" Body="&lt;p&gt;Previously i was searching for a good TimeLine control for a WPF project. I found an answer in &lt;a href=&quot;http://stackoverflow.com/questions/1571760/wpf-timeline-control&quot;&gt;Here&lt;/a&gt; which direct me to &lt;a href=&quot;http://timeline.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;this CodePlex project&lt;/a&gt;.&#xA;Now i want to change code to feed my culture needs. But there are some mismatches!!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How you interact with such thousands lines of code???&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any shortcut will be great!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;thanks in advance... :)&lt;/p&gt;&#xA;" OwnerUserId="4827" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-25T14:52:53.477" LastActivityDate="2011-03-01T15:50:32.150" Title="How to read thousands lines of code without any documentation?" Tags="&lt;project-management&gt;&lt;programming&gt;&lt;code&gt;" AnswerCount="15" CommentCount="6" />
  <row Id="21388" PostTypeId="2" ParentId="20723" CreationDate="2010-11-25T10:30:38.733" Score="3" ViewCount="" Body="&lt;p&gt;Having been on both sides of the interview table, I've started my interview sections with a brief &quot;instruction&quot; whenever I interview. &quot;Do not hesitate to ask me to clarify a question if it is not clear what I am looking for. Don't be afraid to say 'I do not know', it's better than guessing and getting it wrong.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It does seem to make people relax a bit more. Of course, saying &quot;I don't know&quot; to a pretty basic question (like &quot;what does the .h extension usually signify?&quot; in an interview for a C programmer) is not entirely great, but it &lt;em&gt;is&lt;/em&gt; better than blurting out an incorrect answer without having clearly stated that you don't know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found that once I accepted that the worst that can happen at an interview is &quot;nothing changes&quot;, I stopped tensing up and being nervous. That resulted in doing much better at interviews (and initial phone screens), so &quot;nothing changes&quot; seems to have become less likely an outcome.&lt;/p&gt;&#xA;" OwnerUserId="5084" LastEditorUserId="5084" LastEditorDisplayName="" LastEditDate="2010-11-25T14:32:25.953" LastActivityDate="2010-11-25T14:32:25.953" CommentCount="1" />
  <row Id="21389" PostTypeId="2" ParentId="21028" CreationDate="2010-11-25T10:31:53.703" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Scala&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I’ve never actually worked with it yet. But from what I read, Scala is the language that has everything that Java has done wrong, done right. Furthermore, it actually has a &lt;em&gt;lot&lt;/em&gt; of features that I’ve been toying with in my mind, and which any language that I were to design should have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So although this may sound weird since I virtually don’t know it, I really love Scala.&lt;/p&gt;&#xA;" OwnerUserId="2366" LastActivityDate="2010-11-25T10:31:53.703" CommentCount="1" />
  <row Id="21390" PostTypeId="2" ParentId="21387" CreationDate="2010-11-25T10:32:27.560" Score="1" ViewCount="" Body="&lt;p&gt;Step through it in the debugger as it runs, its nearly the only way to understand a new, large code base.&lt;/p&gt;&#xA;" OwnerUserId="1050" LastActivityDate="2010-11-25T10:32:27.560" CommentCount="2" />
  <row Id="21391" PostTypeId="2" ParentId="21387" CreationDate="2010-11-25T10:36:18.320" Score="13" ViewCount="" Body="&lt;p&gt;You add comments to the source code when you have understood it enough to be able to do so.  Refactor these comments vigorously as you understand more and more.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-25T10:36:18.320" CommentCount="3" />
  <row Id="21392" PostTypeId="2" ParentId="21387" CreationDate="2010-11-25T10:37:29.833" Score="4" ViewCount="" Body="&lt;p&gt;Take single action, debug (again and again) the code to find how that action is accomplished. Write down the same in simple language to get a better understanding!&lt;/p&gt;&#xA;" OwnerUserId="156" LastEditorUserId="156" LastEditorDisplayName="" LastEditDate="2010-11-25T10:43:15.800" LastActivityDate="2010-11-25T10:43:15.800" CommentCount="3" />
  <row Id="21393" PostTypeId="2" ParentId="20472" CreationDate="2010-11-25T10:42:38.437" Score="2" ViewCount="" Body="&lt;p&gt;I love Google App Engine and its wonderful API &lt;sup&gt;*&lt;/sup&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before starting to develop a serious business on GAE, study its &lt;a href=&quot;http://code.google.com/intl/it-IT/appengine/&quot; rel=&quot;nofollow&quot;&gt;documentation&lt;/a&gt; and &lt;a href=&quot;http://stackoverflow.com/questions/565963/hidden-limitations-of-google-app-engine&quot;&gt;hidden limitations&lt;/a&gt; and then decide if your requirements would fit in a platform that, for scaling purpose, imposes several constraints.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My biggest concerns about Google App Engine are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Lack of developer support  &lt;/li&gt;&#xA;&lt;li&gt;Downtimes and reliability issues &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The &lt;strong&gt;Google App Engine for Business&lt;/strong&gt; seems to resolve both of them with:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Premium developer support available. &lt;/li&gt;&#xA;&lt;li&gt;99.9% uptime service level agreement&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;*&#xA;&lt;sup&gt;I have developed &lt;a href=&quot;http://www.stackprinter.com/&quot; rel=&quot;nofollow&quot;&gt;StackPrinter&lt;/a&gt; on GAE&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="74" LastEditorUserId="74" LastEditorDisplayName="" LastEditDate="2010-11-25T20:08:34.033" LastActivityDate="2010-11-25T20:08:34.033" />
  <row Id="21394" PostTypeId="2" ParentId="21380" CreationDate="2010-11-25T10:58:06.173" Score="0" ViewCount="" Body="&lt;p&gt;We use Microsoft Sharepoint to hold our various documents (usually written in Word). It lets use make new projects and group users into teams as well as letting us integrate with Outlook so we can have a project calendar showing all appointments / meetings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For documenting code, &lt;strong&gt;the best documentation is the code itself.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-11-25T10:58:06.173" CommentCount="2" />
  <row Id="21395" PostTypeId="2" ParentId="21380" CreationDate="2010-11-25T10:58:35.893" Score="1" ViewCount="" Body="&lt;p&gt;Our external documentation is a combination of PDFs and a well-edited wiki. The wiki is for information that changes on a fairly regular basis (FAQs and informal approaches to problems). The PDFs are aimed towards providing formal documentation and come in a range of styles ranging from detailed API references through to the glossy marketing materials.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The workflow normally has a technical writer looking over the internal developer wiki and then messing about with the product in question. After the technical writer is confident that they know the application well enough then they set down to write the reference materials. Marketing usually handle the glossy blurb PDFs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We don't put out Word documents because they are not universally compatible. That's why PDF was invented.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-25T10:58:35.893" CommentCount="2" />
  <row Id="21396" PostTypeId="2" ParentId="9551" CreationDate="2010-11-25T11:02:50.493" Score="1" ViewCount="" Body="&lt;p&gt;Funny, I just saw something similar on Slashdot. Seagate just &lt;a href=&quot;http://www.computerworld.com/s/article/9197859/Jury_orders_Seagate_to_pay_1.9M_to_former_employee&quot; rel=&quot;nofollow&quot;&gt;had to pay up&lt;/a&gt; after re-locating someone and his family only to realize that they eliminated his job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As others have said, unless you have a written offer in your hand, you don't have anything. Arguing some kind of implied contract is just your word against their word. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, as we're fond of saying on several Stack Exchange sites:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&quot;Link / example, or it never happened.&quot;&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-25T11:02:50.493" CommentCount="1" />
  <row Id="21397" PostTypeId="1" AcceptedAnswerId="21449" CreationDate="2010-11-25T11:03:48.043" Score="5" ViewCount="278" Body="&lt;p&gt;When working with WPF or Silverlight, how should one use control naming conventions? Do you name the controls in XAML markup? I have seen samples of projects at codeplex with control names such  as &quot;selectButton&quot; or &quot;btnSelect&quot;. What would you recommend? &lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-11-25T23:20:52.010" Title="What's the recommended control naming convention for XAML markup?" Tags="&lt;wpf&gt;&lt;silverlight&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="1" />
  <row Id="21398" PostTypeId="1" AcceptedAnswerId="21448" CreationDate="2010-11-25T11:04:42.730" Score="5" ViewCount="207" Body="&lt;p&gt;I got a chance to work for a startup by helping them in my spare time, since I like their idea and I am confident that I can make their startup better. Is this a good idea to wait until they are established and move to the start up leaving my day job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my Daily job I am spending to about 8.5 hours a day and 3 hours to help that startup and full weekend for the startup.... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Though the daily job does't allow me to do this I am very interested in taking some minor risk that does not affect either job any way...&lt;/p&gt;&#xA;" OwnerUserId="8538" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-11-25T14:30:37.910" LastActivityDate="2010-11-25T14:38:41.717" Title="Can I contribute to a startup besides my daily job?" Tags="&lt;career-advice&gt;&lt;startups&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="1" />
  <row Id="21399" PostTypeId="2" ParentId="21398" CreationDate="2010-11-25T11:08:57.797" Score="3" ViewCount="" Body="&lt;p&gt;It depends on what your contact says.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most contracts will be specific about whether you can do other work or not as the company looks to ensure you're not moonlighting with a competitor or frankly just working yourself into the ground.  If they're not there will be a legal default position in your country (no idea what it is in India though much Indian law is based on UK law which is generally not friendly towards this sort of thing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best thing to do is to get written permission from your employer saying they are OK with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:  I've just removed the bit saying that your other company may have claim over the start up IP based on your employment with them.  This used to be true in the UK, however it's apparently not any longer and claims on IP are limited to anything you create during the course of your employment with them.  Obviously there are potential issues where you create libraries or knowledge or knowledge that may be utilised in both roles, however it seems that blanket claims of IP ownership are no longer possible (scarily they used to be).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-25T12:15:40.193" LastActivityDate="2010-11-25T12:15:40.193" CommentCount="4" />
  <row Id="21400" PostTypeId="1" CreationDate="2010-11-25T11:15:58.427" Score="11" ViewCount="388" Body="&lt;p&gt;I always see abstraction is a very useful feature the OO provides for managing the code-base. But how are large non-OO code bases are managed? Or do those just become a &quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Big_ball_of_mud&quot; rel=&quot;nofollow&quot;&gt;Big Ball of Mud&lt;/a&gt;&quot; eventually?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seemed everyone is thinking 'abstraction' is just modularization or data-hiding. But IMHO, it also means the use of 'Abstract Classes' or 'Interfaces' which is a must for dependency-injection and thus testing. How non-OO code bases manage this? And also, other than abstraction, the encapsulation also helps a lot to manage large code bases as it define and restrict the relation between data and functions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With C, it is very much possible to write pseudo-OO code. I don't know much about other non-OO languages. So, is it THE way to manage large C code bases?&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="963" LastEditorDisplayName="" LastEditDate="2010-12-01T04:49:59.150" LastActivityDate="2010-12-01T04:49:59.150" Title="How large non-OO code bases are managed?" Tags="&lt;project-management&gt;&lt;object-oriented&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="1" />
  <row Id="21402" PostTypeId="2" ParentId="21028" CreationDate="2010-11-25T11:24:46.307" Score="1" ViewCount="" Body="&lt;p&gt;Well... I found something attractive in every language (and the runtime/VM availability, which is important) I have used for a real project (basically commercial):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;BASIC&lt;/strong&gt; - the &lt;a href=&quot;http://en.wikipedia.org/wiki/Vilnius_BASIC&quot; rel=&quot;nofollow&quot;&gt;Vilnius BASIC&lt;/a&gt; dialect... It was the first language I used, so I loved it really. [a very subjective opinion].&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;C&lt;/strong&gt; - a high level &quot;machine language&quot;. Is quite sharp to cut your problems and your fingers.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Java&lt;/strong&gt; - the only advantage to me is the wide range of JVM availability. It is easy to get tired of Java.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Python&lt;/strong&gt; - a kind of toy, very light-weight, easy to use and to develop fast.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Common Lisp&lt;/strong&gt; - the nicest one. Twists your mind.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Haskell&lt;/strong&gt; - Twists your mind more than Common Lisp, it is something to be adored and not to be used in a real life.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Perl&lt;/strong&gt; - if you really love every singe variable you use in your code, and proudly call them &quot;my&quot;, and the expression &lt;code&gt;$#{$arr[$i]}&lt;/code&gt; turns you on, Perl is an ideal fit for you.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;VB&lt;/strong&gt; - As a language has nothing to love, but is very useful as VBA, to hack something quickly (though last time when I needed to merge two MS Excel files with different encodings in the same sheet, I exported as XML, and used Python...);&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Which language I don't like: &lt;strong&gt;C++&lt;/strong&gt; - the true disharmony.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next languages I'm going to learn are C# and F#. I have a presentiment of something good :)&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-11-25T11:24:46.307" />
  <row Id="21403" PostTypeId="1" AcceptedAnswerId="21405" CreationDate="2010-11-25T11:34:35.570" Score="16" ViewCount="608" Body="&lt;p&gt;I always read about large scale transformation or integration project that are total or almost total disaster. Even if they somehow manage to succeed  the cost and schedule blow out is enormous. What is the real reason behind large projects being more prone to failure. Can agile be used in these sort of projects or traditional approach is still the best.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One example from Australia is the &lt;a href=&quot;http://www.zdnet.com.au/qld-health-payroll-problems-laid-bare-339304148.htm&quot; rel=&quot;nofollow&quot;&gt;Queensland Payroll project&lt;/a&gt; where they changed test success criteria to deliver the project.&lt;br&gt;&#xA;&lt;a href=&quot;http://stackoverflow.com/questions/1040338/what-are-the-worst-software-project-failures-ever&quot;&gt;See some more failed projects in this SO question&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you got any personal experience to share?&lt;/p&gt;&#xA;" OwnerUserId="3414" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2010-11-25T17:23:23.163" LastActivityDate="2011-01-29T04:58:02.993" CommunityOwnedDate="2011-01-29T04:58:02.993" Title="Why do large IT projects tend to fail or have big cost/schedule overruns?" Tags="&lt;project-management&gt;&lt;project&gt;" AnswerCount="19" CommentCount="4" FavoriteCount="6" />
  <row Id="21404" PostTypeId="2" ParentId="21400" CreationDate="2010-11-25T11:47:50.860" Score="15" ViewCount="" Body="&lt;p&gt;You seem to think that OOP is the only means of achieving abstraction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While OOP is certainly very good at doing that, it’s by no means the only way. Large projects can also be kept manageable by uncompromising modularization (just look at Perl or Python, both of which have excelled at that, and so do functional languages like ML and Haskell), and by using mechanisms such as templates (in C++).&lt;/p&gt;&#xA;" OwnerUserId="2366" LastActivityDate="2010-11-25T11:47:50.860" CommentCount="4" />
  <row Id="21405" PostTypeId="2" ParentId="21403" CreationDate="2010-11-25T11:51:30.590" Score="15" ViewCount="" Body="&lt;p&gt;The main reason is an &lt;strong&gt;increase in scope&lt;/strong&gt;, which the book &quot;The Pragmatic Programmer&quot; describes as:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;feature bloats&lt;/li&gt;&#xA;&lt;li&gt;creeping featurism&lt;/li&gt;&#xA;&lt;li&gt;requirement creep&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;It is an aspect of the boiled-frog syndrome.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The idea of the various &quot;agile&quot; method is to accelerate feedback and - hopefully - correct the evolution of the project in time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the other reason is &lt;strong&gt;release management&lt;/strong&gt;: if you aren't geared toward releasing the project (however imperfect it may be), chances are it will fail (because released too late, with too many buggy features, and harder to fix/update/upgrade).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That does not mean you have to have a fixed release date, but that means you must be able at all time to build a running version of your program, in order to test/evaluate/release it.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;The blog post &quot;&lt;a href=&quot;http://37signals.com/svn/archives2/late_projects_are_late_one_day_at_a_time.php&quot; rel=&quot;nofollow&quot;&gt;Late projects are late one day at a time&lt;/a&gt;&quot; contains many more examples:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;blockquote&gt;&#xA;    &lt;p&gt;I know the ‘Getting Real’ thing to do would be to Flex the scope and keep the launch date fixed, but that doesn’t work if there is agreed upon functionality that cannot be completed in time.&lt;/p&gt;&#xA;  &lt;/blockquote&gt;&#xA;  &#xA;  &lt;p&gt;That’s why we don’t advocate specs or “agreed upon functionality.” That’s the root of the problem — saying you know everything about what you need and how its going to be implemented even before the first pixel is painted or line of code is written.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;When you predict a rigid future on a flexible present you’re in trouble. Rigid futures are among the most dangerous things. They don’t leave room for discovery, emergence, and mistakes that open new doors.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3915" LastEditorUserId="3792" LastEditorDisplayName="" LastEditDate="2010-11-29T22:27:25.257" LastActivityDate="2010-11-29T22:27:25.257" CommunityOwnedDate="2011-01-29T04:58:02.993" CommentCount="1" />
  <row Id="21406" PostTypeId="1" AcceptedAnswerId="21432" CreationDate="2010-11-25T11:51:32.387" Score="5" ViewCount="521" Body="&lt;p&gt;I worked in a lot of different environments since I finished University.&#xA;I worked as software analyst in optics, numeric control, military and networking environments and learned using a lot of different tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My main skill is software design (and C++ programming) but I learned Python, Qt, MFC (still used, I couldn't believe...), Bash and Perl. I also learned to configure VPNs, MySQL and tons of other tools and programming libraries. I also developed Linux realtime modules.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since I like a lot to learn new stuff and working on project not for long times (2 years top) I become a consultant: the best way to ensure horizontal growth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I chose this way because of personal preferences but also because my greatest fear was to end working on a sub-sub-sub problem of a sub application domain for 30-40 years of my life. I've met persons like that. They have huge vertical skills in the application domain. For example a colleague of mine has been programming automation of machine tools in C++ for 20 years. He knows every single little thing he needs to know for machine tools but polymorfism is the more advdanced C++ feature he knows (and C++ it's his main language!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the beginning I was happy with my chosen path. It's true that I learned a lot but now I can see that vertical growth has its drawbacks. Basically I haven't a real knowledge of a particular application domain. I couldn't claim to be an expert in optics and if you ask me what is the best solution to cope with the plasma head voltage problem (machine tool domain) I couldn't tell you (my colleague of the previous paragraph could).&#xA;I configured a VPN but I'm sure that a system administrator could spot a few security holes just after I begin speaking (no, I didn't leave the CA private certificate on the server machine :D).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My fear is basically that the job market could punish me in the long run. &#xA;Of course my colleague could have the same problem: if his company goes bankrupt I wish him luck finding another job in the same niece.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a trade off between vertical growth and horizontal growth. How do you cope with that? Do you think that vertical growth has more advantages in the long run? Please think in terms of job market and in terms of personal growth.&#xA;Is there a way to balance the two kinds of growth?&lt;/p&gt;&#xA;" OwnerUserId="4738" LastEditorUserId="4738" LastEditorDisplayName="" LastEditDate="2010-11-25T14:10:34.200" LastActivityDate="2010-11-25T14:10:34.200" Title="Horizontal growth vs vertical growth" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="21407" PostTypeId="2" ParentId="21380" CreationDate="2010-11-25T11:55:44.400" Score="1" ViewCount="" Body="&lt;p&gt;A few years ago we had used a subversion controlled documentation folder (great version control), but we ended up with people using their favorite tools to create their docs and hence you needed quite a few viewers or conversion tools to read them all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In another company most documentation was done on a wiki (easy to learn, great for cross-referencing), but we ended up with people being lazy and not using links to other docs, so gathering all information became tricky.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently I am working in a team using Google docs (offering many different tools, quite easy to use, everyone uses the same tools) but I still miss Wiki for the nice cross-referencing abilities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My impression is there is no fool-proof documentation system around, it's quality always depends on the team' discipline to stick to project-defined how-to's. And if the going gets tough one of the first victims will always be the documentation tasks, whatever system you use.&lt;/p&gt;&#xA;" OwnerUserId="8316" LastActivityDate="2010-11-25T11:55:44.400" />
  <row Id="21408" PostTypeId="2" ParentId="21403" CreationDate="2010-11-25T12:04:08.333" Score="2" ViewCount="" Body="&lt;p&gt;Elaborating a bit on VonC's answer:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This big projects tend to have an &quot;all or nothing&quot; mentality. The project as defined has to be released in one go - often as it's a change over from an existing system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means that the problems of feature/requirement creep are harder to address so when the project comes to fruition it's often seen as no longer meeting requirements. This can be exacerbated if the existing system has been updated or technology has moved on in the meantime.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's the solution to this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't really know as no one wants to have two systems running in parallel with a changing set of functions split between the two.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-11-25T12:04:08.333" CommunityOwnedDate="2011-01-29T04:58:02.993" />
  <row Id="21409" PostTypeId="2" ParentId="21406" CreationDate="2010-11-25T12:09:07.193" Score="3" ViewCount="" Body="&lt;p&gt;My strategy to cope with that problem (you are not alone) is to have a mixed strategy: I've good knowledge in one domain (warehouse management), but I also work in other domains to get a broad technical skillset and become less dependend on that one domain, since there have been extended periods with few new warehouse projects, when everyone was trying to save money by not investing in intralogistics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generalizing this idea, you could try a stairway strategy: Alternating vertical steps and horizontal steps. E.g. You start with Java skills (right after college, no domain knowledge at all). First you use your Java knowledge to get a java job in the healthcare domain, then you use your healthcare knowledge to get a C# job in that domain. Then you use your C# knowledge to get a C# job in the banking domain, and after that, you use your banking knowledge to get a, dunno, C++ job in banking. Your C++ knowledge could get you a job in engineering, etc. Of course you can't become an expert in everything, but having a good portfolio makes it easier to survive through tough times.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-11-25T12:12:41.450" LastActivityDate="2010-11-25T12:12:41.450" />
  <row Id="21410" PostTypeId="2" ParentId="21212" CreationDate="2010-11-25T12:12:14.307" Score="3" ViewCount="" Body="&lt;p&gt;Read this story about how most of your RSI pains might be psychosomatic symptoms:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://podolsky.everybody.org/rsi/&quot; rel=&quot;nofollow&quot;&gt;http://podolsky.everybody.org/rsi/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://tmshelp.com/&quot; rel=&quot;nofollow&quot;&gt;http://tmshelp.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know it might sound far-fetched at first, but I was cured in under a week after reading about this ailment.&lt;/p&gt;&#xA;" OwnerUserId="3374" LastActivityDate="2010-11-25T12:12:14.307" />
  <row Id="21411" PostTypeId="2" ParentId="21387" CreationDate="2010-11-25T12:13:39.230" Score="1" ViewCount="" Body="&lt;p&gt;Understand that there really are no shortcuts to grokking in fullness.  (And if you have trouble with that phrase, your education has been SORELY neglected.  It is from &quot;Stranger In a Strange Land&quot;, by Robert A. Heinlein.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read it, one page at a time, one routine at a time.  Add comments.  Draw pictures of major data structures.  Recognize algorithms.  Draw upon previous knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Resist the temptation to crank up the debugger.  The debugger viewport is too small: you see one line at a time, but you really don't see where you've been or where you're going.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-11-25T12:13:39.230" CommentCount="2" />
  <row Id="21412" PostTypeId="1" AcceptedAnswerId="21447" CreationDate="2010-11-25T12:15:40.763" Score="11" ViewCount="1331" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm working in development for 4 years, and 3.5 in PHP - why I don't seem to be able to be selected in an interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to know what special things the interviewer wants to see in candidates - for senior PHP developer roles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interviewer asks me 10 questions and I'm able to answer only 5. Does selection depend on these things? It doesn't mean that I can't solve the problem, I can google the question, I can ask on forums. Why don't they understand that a man can't remember all the answers for each and every question? Especially programming ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please advise.&lt;/p&gt;&#xA;" OwnerUserId="7702" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-01T22:56:34.187" LastActivityDate="2010-12-01T22:56:34.187" Title="Why I'm not selected in an interview?" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;interview&gt;" AnswerCount="10" CommentCount="4" FavoriteCount="4" />
  <row Id="21413" PostTypeId="1" AcceptedAnswerId="21443" CreationDate="2010-11-25T12:16:57.133" Score="2" ViewCount="110" Body="&lt;p&gt;Consider, I have made a program program in C and I want to burn it into a CD and show it as regular software out there in the market, which installs like any other software available in the market, like ms-office etc.  How do I add the installation setup to my program (in Windows)?&lt;/p&gt;&#xA;" OwnerUserId="4124" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2010-11-25T17:28:49.447" LastActivityDate="2010-11-25T17:28:49.447" ClosedDate="2010-11-26T10:04:07.610" Title="How to add the installation setup to a program?" Tags="&lt;project&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="21414" PostTypeId="2" ParentId="21400" CreationDate="2010-11-25T12:17:27.993" Score="3" ViewCount="" Body="&lt;p&gt;Modules, (external/internal) functions, subroutines ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;as Konrad said, OOP is not the only way to manage large code bases. As a matter of fact, a rather lot of software was written before it (before C++*).&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-25T12:17:27.993" CommentCount="1" />
  <row Id="21415" PostTypeId="2" ParentId="21412" CreationDate="2010-11-25T12:18:23.147" Score="26" ViewCount="" Body="&lt;p&gt;Reason 1 : You have bad English&lt;/p&gt;&#xA;" OwnerUserId="3672" LastActivityDate="2010-11-25T12:18:23.147" CommentCount="13" />
  <row Id="21416" PostTypeId="2" ParentId="21406" CreationDate="2010-11-25T12:18:27.693" Score="2" ViewCount="" Body="&lt;p&gt;I find that programmers who simply solve the problem without providing any feedback to the person who needed the problem solved tend to become &quot;guru&quot;-like.  They become &lt;em&gt;the&lt;/em&gt; expert for that aspect.  That comes at an advantage and a disadvantage.  It's good job security, but it also means that any future problems you're likely to see will be that since that's what you're known for.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Inversely, if you provide feedback, you're sort of putting yourself in the opposite role of a guru.  You assist others on how to do things and they learn as well.  Generally speaking, it's better for the company's interest, though you don't have that same job security that you'd have being a guru.  However it also means you can grow.  A guru is the last person they'd look to to promote since they need you to be an expert in what you know (a smart guru masters two such technologies so that if the company doesn't need one anymore, at least he still has a job).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd expect what you're looking for is something in between.  Explain roughly how something works, but leave out the details so that you're still an important aspect when it comes to that, but at the same time, you're perceived as a team player and even a leader if you can demonstrate that you're also capable of making smart decisions. &lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-11-25T12:18:27.693" />
  <row Id="21417" PostTypeId="2" ParentId="21413" CreationDate="2010-11-25T12:20:41.643" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/3767/what-is-the-best-choice-for-building-windows-installers&quot;&gt;What is the best choice for building Windows installers?&lt;/a&gt; will give a few ideas, as far as Windows is concerned.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-25T12:20:41.643" />
  <row Id="21418" PostTypeId="2" ParentId="21403" CreationDate="2010-11-25T12:21:21.290" Score="6" ViewCount="" Body="&lt;p&gt;One possible reason is that estimates are based on smaller projects, assuming a linear growth in cost with the project size, when in fact cost growth is e.g. quadratic due to increasing complexity, longer project duration (more time for requirement changes) etc. Estimating is hard, and the bigger the project, the harder it gets to estimate correctly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another reason are optimizm biased estimates: To win the bidding, best-case estimates are used to calculate the price. The larger the project, the less likely is a best-case scenario. Bidding rules make it likely that the most optimistic offerer gets the acceptance, so even if 5 vendors make a realistic estimate and the 6th is too optimistic, the optimistic one wins the bidding and fails later. So this is kind of a negative selection.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-25T12:21:21.290" CommunityOwnedDate="2011-01-29T04:58:02.993" CommentCount="1" />
  <row Id="21419" PostTypeId="2" ParentId="21412" CreationDate="2010-11-25T12:21:41.877" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: &lt;em&gt;this answer has been made based on the first version of the question, which asked &quot;why i am not selected in interview&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Show us your CV and we'll tell you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Did you...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;... put your photo? Remove it&lt;/li&gt;&#xA;&lt;li&gt;... put emphasis on your problem solving capabilities?&lt;/li&gt;&#xA;&lt;li&gt;... send it to enough companies? (To get one interview, you must send 10 CV)&lt;/li&gt;&#xA;&lt;li&gt;... have too much pages? Limit your CV to one page&lt;/li&gt;&#xA;&lt;li&gt;... send it to companies that actually need PHP?&lt;/li&gt;&#xA;&lt;li&gt;... tried different versions of your CV?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-25T14:54:27.303" LastActivityDate="2010-11-25T14:54:27.303" CommentCount="21" />
  <row Id="21420" PostTypeId="2" ParentId="21380" CreationDate="2010-11-25T12:21:56.947" Score="0" ViewCount="" Body="&lt;p&gt;We have been using &lt;a href=&quot;http://www.methods.co.nz/asciidoc/&quot; rel=&quot;nofollow&quot;&gt;AsciiDoc&lt;/a&gt; for our needs for the last few years. It is similar to Sphinx except that it works with the Docbook format. It is a simpler markup then Docbook itself. The neat thing is that the documentation is plain text and it allows for the creation of pdfs, xhtml, chm and a number of other formats from a single set of source files. It also is very version control friendly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The nice part about keep the docs in the same repository as your code is that it is very easy to keep it in sync. If I add a new feature I can immediately add the required notes to the document and the technical writer can clean it up later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The downside is that you need to install it under cygwin on windows and make a couple of build scripts to get it to run properly. It is not too challenging though. You can also build different pieces of the documentation. For example, we had a request from a potential customer that wanted to see all of the features/bugs that were added or fixed over the last 2 years. I was able to quickly create a script that built our release notes for the last 2 years into a single pdf (mind you your docs need to be well organized to do something like this). This proved the tool to management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was looking at switching to sphinx because of the cygwin dependency on windows but one big thing I was never able to figure out was how to setup mapids in sphinx that the help apis could use to popup the chm file to the proper spot from the application.&lt;/p&gt;&#xA;" OwnerUserId="8540" LastActivityDate="2010-11-25T12:21:56.947" CommentCount="1" />
  <row Id="21421" PostTypeId="2" ParentId="21413" CreationDate="2010-11-25T12:24:21.103" Score="1" ViewCount="" Body="&lt;p&gt;You need a set up builder.  There are commercial options available (I've used WISE before) but try something free first.  This lists a number of options:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.techsupportalert.com/content/best-free-setup-builder.htm&quot; rel=&quot;nofollow&quot;&gt;http://www.techsupportalert.com/content/best-free-setup-builder.htm&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-25T12:24:21.103" />
  <row Id="21422" PostTypeId="2" ParentId="21412" CreationDate="2010-11-25T12:27:24.750" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If you aren't getting interviews&lt;/strong&gt; then it could be that your 3½ to 4 years experience isn't seen as sufficient for a &lt;em&gt;senior&lt;/em&gt; developer role. You should look at revising your CV to highlight your strengths. You should also look at applying for more relevant roles - perhaps at a more junior level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;If you are getting interviews&lt;/strong&gt; then it could be down to anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might come over as too nervous/shy &lt;strong&gt;or&lt;/strong&gt; you might come over as too abrasive/aggressive&#xA;&lt;strong&gt;or&lt;/strong&gt; ....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately only the interviewer can answer this question and they might not even be able to articulate the answer themselves - they just &quot;know&quot; you won't fit in.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-11-25T12:48:49.763" LastActivityDate="2010-11-25T12:48:49.763" CommentCount="10" />
  <row Id="21423" PostTypeId="2" ParentId="21403" CreationDate="2010-11-25T12:27:39.937" Score="3" ViewCount="" Body="&lt;p&gt;Most of the time a combination of two or more of the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;collaboration problem between departments&lt;/li&gt;&#xA;&lt;li&gt;politics... too much politics...&lt;/li&gt;&#xA;&lt;li&gt;wrong team&lt;/li&gt;&#xA;&lt;li&gt;unrealistic scheduling&lt;/li&gt;&#xA;&lt;li&gt;changing scope without the appropriate methodology&lt;/li&gt;&#xA;&lt;li&gt;missing informations&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Nice book on the subject: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/013143635X&quot; rel=&quot;nofollow&quot;&gt;Death March&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-25T12:27:39.937" CommunityOwnedDate="2011-01-29T04:58:02.993" />
  <row Id="21426" PostTypeId="2" ParentId="21412" CreationDate="2010-11-25T12:34:10.013" Score="3" ViewCount="" Body="&lt;p&gt;If you really want to &quot;WoW&quot; them in the interview : &lt;a href=&quot;http://stackoverflow.com/questions/329289/really-wow-them-in-the-interview&quot;&gt;See this Question&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8372" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-11-25T16:19:44.500" LastActivityDate="2010-11-25T16:19:44.500" />
  <row Id="21429" PostTypeId="2" ParentId="21403" CreationDate="2010-11-25T12:42:33.107" Score="14" ViewCount="" Body="&lt;p&gt;Usually the &lt;strong&gt;complexity&lt;/strong&gt; of project is &lt;strong&gt;underestimated&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-11-25T12:42:33.107" CommunityOwnedDate="2011-01-29T04:58:02.993" CommentCount="7" />
  <row Id="21430" PostTypeId="2" ParentId="21398" CreationDate="2010-11-25T12:45:28.017" Score="1" ViewCount="" Body="&lt;p&gt;To me the bigger picture is exactly how do you intend to work about a 70 hours week without affecting the quality of your work in both ventures? A better route, to me, would be to ask to move to a 4 day week in your main job, at the least.&lt;/p&gt;&#xA;" OwnerUserId="7782" LastActivityDate="2010-11-25T12:45:28.017" />
  <row Id="21431" PostTypeId="2" ParentId="6847" CreationDate="2010-11-25T12:54:50.603" Score="0" ViewCount="" Body="&lt;h2&gt;C/C++&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The C and C++ languages have the largest codebase (the Unix, Linux and Windows Operating Systems and most of the application for them), are fast, efficient, powerful. The one and only possible choice for a real programmer.&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-11-25T12:54:50.603" CommunityOwnedDate="2010-11-25T12:54:50.603" />
  <row Id="21432" PostTypeId="2" ParentId="21406" CreationDate="2010-11-25T12:55:55.587" Score="3" ViewCount="" Body="&lt;p&gt;The demands for &quot;horizontal&quot; specialists are very high in small companies, because the few employees there needs to cope with a lot of different tasks. Diversity is a real bonus here. But the larger the company the more it needs &quot;vertical&quot; specialists, because the division of labor doesn't require horizontal knowledge any more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question then is whether you are targeting the big employers or whether you prefer to work in smaller companies (each having their different pros and cons). Having additional knowledge like knowing business domains and their problems will always be helpful, just like gaining additional skills in communication etc., but I take it your are more interested to know if it's helpful to know a fifth programming language and a third OS and a sixth tool. So my short answer is: Examine your employer wishlist and you know how to specialize.&lt;/p&gt;&#xA;" OwnerUserId="8316" LastActivityDate="2010-11-25T12:55:55.587" />
  <row Id="21433" PostTypeId="1" AcceptedAnswerId="21434" CreationDate="2010-11-25T12:56:42.023" Score="2" ViewCount="228" Body="&lt;p&gt;How should I write a better CV?&lt;/p&gt;&#xA;" OwnerUserId="7702" LastEditorUserId="44" LastEditorDisplayName="" LastEditDate="2010-11-25T17:26:41.723" LastActivityDate="2010-11-25T17:26:41.723" ClosedDate="2010-11-25T17:17:46.847" Title="How to write a better CV?" Tags="&lt;career&gt;&lt;cv&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="2" />
  <row Id="21434" PostTypeId="2" ParentId="21433" CreationDate="2010-11-25T13:00:27.647" Score="1" ViewCount="" Body="&lt;p&gt;Some questions already asked on StackOverflow which may give some tips.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/5905/writing-a-good-resume-cv&quot;&gt;Writing a good resume/CV&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://stackoverflow.com/questions/149553/best-format-for-a-software-engineers-resume&quot;&gt;Best Format for a Software Engineer's Resume&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-25T13:00:27.647" />
  <row Id="21435" PostTypeId="2" ParentId="21433" CreationDate="2010-11-25T13:03:47.653" Score="3" ViewCount="" Body="&lt;p&gt;What does mean &quot;better&quot;? better aligned? better punctuation or spelling?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My suggestion is:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;open &lt;a href=&quot;http://careers.stackoverflow.com&quot;&gt;http://careers.stackoverflow.com&lt;/a&gt;;&lt;/li&gt;&#xA;&lt;li&gt;post your cv there (by filling all the fields that will be requested, using data from your current cv);&lt;/li&gt;&#xA;&lt;li&gt;publish your cv (there should be a button to do this);&lt;/li&gt;&#xA;&lt;li&gt;open 'public view' page and see how your cv should look;&lt;/li&gt;&#xA;&lt;li&gt;post a link to your cv to your employers&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-11-25T13:03:47.653" CommentCount="1" />
  <row Id="21436" PostTypeId="1" CreationDate="2010-11-25T13:13:32.017" Score="4" ViewCount="190" Body="&lt;p&gt;Hi All,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question of managing bugs in production has been a large feature in my mind of late. Sprint's are not meant to have any items added into them, but for &lt;strong&gt;critical&lt;/strong&gt; bugs, this is simply unavoidable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How does one go about managing this break in the sprint? Do you simply give a sprint a percentage &quot;allowance&quot; of time, thus only filling say 80% of the schedule with sprint items &quot;just in case&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Kyle&lt;/p&gt;&#xA;" OwnerUserId="7494" LastActivityDate="2010-12-21T22:04:53.153" Title="Managing Production Issues during a Scrum Sprint" Tags="&lt;scrum&gt;&lt;errors&gt;&lt;sprint&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="21437" PostTypeId="2" ParentId="21380" CreationDate="2010-11-25T13:15:50.300" Score="2" ViewCount="" Body="&lt;p&gt;We use DocBook with some customization layers, to produce PDF, HTML and TXT files (for some specific applications). (The key point is we produce XML to PDF software and use it to for rendering. Though Apache FOP is free and may fit your requirements.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;DocBook is very good and has a rich vocabulary to produce manuals and references in both electronic and print ready versions, it is easy to customize (page layouts etc). Since it is an XML (readable for humans, not like WordML) it is easy to make your XSLT stylesheets to produce something which best fits your needs. For example, if some day you want to publish all your documentation on a some kind of wiki, you can make a stylesheet for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't even imagine, how someone can use MS Word to make documentation of an average quality.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-11-25T13:15:50.300" CommentCount="2" />
  <row Id="21438" PostTypeId="2" ParentId="21436" CreationDate="2010-11-25T13:23:29.717" Score="4" ViewCount="" Body="&lt;p&gt;If this is &lt;strong&gt;critical&lt;/strong&gt;, you &lt;strong&gt;must&lt;/strong&gt; handle it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To measure its impact on the sprint, you must log it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look at this information radiator:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/YuRC7.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a part called &quot;&lt;strong&gt;Unplanned items&lt;/strong&gt;&quot;. Put your critical bug there. As you see there is the inverse with &quot;&lt;strong&gt;Next&lt;/strong&gt;&quot; part where you put more user stories than planned in case you complete the sprint faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will talk about it in the sprint review and/or the &lt;a href=&quot;http://www.scrumalliance.org/articles/39-glossary-of-scrum-terms#1113&quot; rel=&quot;nofollow&quot;&gt;retrospective&lt;/a&gt;. The objective is to find how to limit them, and also adjust your &lt;a href=&quot;http://www.scrumalliance.org/articles/39-glossary-of-scrum-terms#1110&quot; rel=&quot;nofollow&quot;&gt;velocity&lt;/a&gt; accordingly.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-25T13:23:29.717" CommentCount="3" />
  <row Id="21440" PostTypeId="1" AcceptedAnswerId="21458" CreationDate="2010-11-25T13:40:12.100" Score="4" ViewCount="199" Body="&lt;p&gt;As a one-person ISV, what are the major challenges you faced? How did you overcome these challenges?&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-25T15:26:03.750" Title="What are the major challenges you face as a one-person ISV?" Tags="&lt;challenge&gt;&lt;isv&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="21441" PostTypeId="2" ParentId="20985" CreationDate="2010-11-25T13:43:43.860" Score="4" ViewCount="" Body="&lt;p&gt;&lt;code&gt;null&lt;/code&gt; pointers/references. :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;According to Tony Hoare - inventor of &lt;code&gt;null&lt;/code&gt;, inventing &lt;code&gt;null&lt;/code&gt; references was a billion dollar mistake. (You can view the full presentation &lt;a href=&quot;http://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haskell and other functional languages get this right with &lt;a href=&quot;http://www.haskell.org/all_about_monads/html/maybemonad.html&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;Maybe&lt;/code&gt;&lt;/a&gt;/&lt;a href=&quot;http://en.wikipedia.org/wiki/Option_type&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;Option&lt;/code&gt;&lt;/a&gt; monad. &lt;a href=&quot;http://journal.stuffwithstuff.com/2010/08/23/void-null-maybe-and-nothing/&quot; rel=&quot;nofollow&quot;&gt;Magpie's approach&lt;/a&gt; is also interesting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For more explanation on languages without nulls, refer to &lt;a href=&quot;http://stackoverflow.com/questions/3989264/best-explanation-for-languages-without-null&quot;&gt;this StackOverflow question&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-11-25T13:43:43.860" CommentCount="1" />
  <row Id="21442" PostTypeId="2" ParentId="21352" CreationDate="2010-11-25T13:45:49.673" Score="-2" ViewCount="" Body="&lt;p&gt;Are you ok if someone is ready to build it?&lt;/p&gt;&#xA;" OwnerUserId="12113" LastActivityDate="2010-11-25T13:45:49.673" CommentCount="1" />
  <row Id="21443" PostTypeId="2" ParentId="21413" CreationDate="2010-11-25T13:51:20.160" Score="4" ViewCount="" Body="&lt;p&gt;I would definitely recommend &lt;a href=&quot;http://wix.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;WiX&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="8544" LastActivityDate="2010-11-25T13:51:20.160" CommentCount="6" />
  <row Id="21444" PostTypeId="2" ParentId="21440" CreationDate="2010-11-25T14:01:51.273" Score="4" ViewCount="" Body="&lt;p&gt;You must assume all roles, including &lt;strong&gt;sales&lt;/strong&gt;, &lt;strong&gt;marketing&lt;/strong&gt;, &lt;strong&gt;finance&lt;/strong&gt;, &lt;strong&gt;development&lt;/strong&gt;, &lt;strong&gt;administrative&lt;/strong&gt;, &lt;strong&gt;legal&lt;/strong&gt;, and more importantly &lt;strong&gt;product development&lt;/strong&gt;. To name a few.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means that most of your time, you will eventually do something you dislike or you are not good at.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's the major challenge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can cope with that, I'm sure you will be successful.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-25T14:01:51.273" CommentCount="1" />
  <row Id="21445" PostTypeId="2" ParentId="21440" CreationDate="2010-11-25T14:20:50.650" Score="3" ViewCount="" Body="&lt;p&gt;Pierre already named some issues, here is another list:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;motivation - can you work without a boss or will you be distracted?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;credibility - clients will ask you &quot;what happens if you die or stop working?&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;project size - when you work alone, and have all those other tasks Pierre mentioned, it will be hard to work on a reasonably large project and finish it before retirement&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;speed - whatever your idea is, chances are that larger teams can and will implement it faster and publish it before you&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-25T14:20:50.650" CommentCount="1" />
  <row Id="21446" PostTypeId="2" ParentId="21400" CreationDate="2010-11-25T14:27:43.243" Score="2" ViewCount="" Body="&lt;p&gt;Realistically either infrequent changes (think Social Security retirement calculations) and/or deeply ingrained knowledge because the people maintaining such as system have been doing so for awhile (cynical take is job security).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Better solutions are repeatable validation, by which I mean automated test (e.g. unit testing) and human testing that follows proscribed steps (e.g. regression testing) &quot;as opposed to click around and see what breaks&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To start moving toward some sort of automated testing with an existing codebase I recommend reading &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131177052&quot; rel=&quot;nofollow&quot;&gt;Michael Feather's Working Effectively with Legacy Code&lt;/a&gt;, which details approaches for bringing existing codebases until some sort of repeatable testing framework OO or not. This leads to the sort of ideas others have answered with such as modularization, but the book describes the right approach to doing so while not breaking things.&lt;/p&gt;&#xA;" OwnerUserId="6102" LastActivityDate="2010-11-25T14:27:43.243" CommentCount="1" />
  <row Id="21447" PostTypeId="2" ParentId="21412" CreationDate="2010-11-25T14:37:36.960" Score="33" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&quot;Interviewer asks me 10 questions and I'm able to answer only 5. Does selection depend on these things? It doesn't mean that I can't solve the problem, I can google the question, I can ask on forums. Why don't they understand that a man can't remember all the answers for each and every question? Expecially programming ones.&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These things are very significant and will be a very significant part of the reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interviewers do understand that you can't know everything and generally tailor the questions to suit.   Generally most questions an interviewer will ask will be the sorts of things they expect a candidate to be able to answer &lt;strong&gt;without&lt;/strong&gt; access to the internet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why do they expect this standard?  A few reasons come to mind:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) You indicate that you're looking at senior developer roles.  Senior developers are by definition those who have a good level of knowledge already and can help others out, not those who are dependent on Google.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) A programmer who knows this stuff - as opposed to having to post it on forums - is going to be far more productive that one who relies on the internet.  They're not having to wait for replies, understand what's been posted and adapt it to their purpose, they're just getting on and coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) They're obviously finding candidates who can answer these questions and in that instance wouldn't you hire the guy who got 9 out of 10 over the guy who got 5 out of 10.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) If they were happy with someone bright who understands the basics and Googles the rest, you can hire a junior developer for a lot less money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally out of 10 questions for an intermediate or senior role normally I'd expect a candidate to be answering perhaps 8 well and having a fair idea at least one of the others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're not hitting that level then I suggest that you're probably applying for jobs a little above your current level and should adjust your expectations.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-25T15:01:45.330" LastActivityDate="2010-11-25T15:01:45.330" />
  <row Id="21448" PostTypeId="2" ParentId="21398" CreationDate="2010-11-25T14:38:41.717" Score="4" ViewCount="" Body="&lt;p&gt;I am in your exact position.  I work full time for a Fortune 500 company during the week and for a startup on weekends and nights.  It does add some stress to your life but I'm betting that the pay off on joining a startup will make the effort worth while.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is important that the startup understands the rules that you are playing under.  For me, my full time job takes priority.  They pay the bills and if a project comes up that would eat into my time at the startup, then that's the way it has to be.  The startup understands this and we work out a way to adjust.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Morally, if you are &quot;full on&quot; during your day job and not doing work for the startup, then I have no issues with the second job.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-11-25T14:38:41.717" />
  <row Id="21449" PostTypeId="2" ParentId="21397" CreationDate="2010-11-25T14:51:13.353" Score="2" ViewCount="" Body="&lt;p&gt;Microsoft has guidelines published &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms229002.aspx&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; on their web site.  The bottom line is that Hungarian naming conventions are out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To make this more clear, Microsoft has dropped Hungarian notation from all of their naming conventions, including UI elements.  HOWEVER, MS has not documented any recommendations for UI elements.  There are lots of links out there that note this and offer their suggestions but the bottom line is that with UI elements, you're on your own.  Example &lt;a href=&quot;http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/7d5bc1c3-82e4-4534-95b4-85cc78592a0b/&quot; rel=&quot;nofollow&quot;&gt;link&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In our standard we've dropped Hungarian notation and are using explicit naming, meaning a button called OK would be named ButtonOK, a textblock called Comments would be TextblockComments.  The downside is that names can get kind of long, the positive is that EVERYONE knows exactly what the element is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as you establish what works for you and use that standard consistently, you can't go wrong.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-25T23:20:52.010" LastActivityDate="2010-11-25T23:20:52.010" CommentCount="2" />
  <row Id="21450" PostTypeId="2" ParentId="20586" CreationDate="2010-11-25T14:59:16.710" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.lisperati.com/&quot; rel=&quot;nofollow&quot;&gt;Conrad Barski&lt;/a&gt; has a &lt;em&gt;great&lt;/em&gt; tutorial called &lt;a href=&quot;http://www.lisperati.com/casting.html&quot; rel=&quot;nofollow&quot;&gt;Casting SPELs in Lisp&lt;/a&gt; (SPEL is his acronym for macros). It involves making a simple Adventure-type game, and jumps right into Lisp macros. He also has been working on an introductory book that is now available at:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://nostarch.com/lisp.htm&quot; rel=&quot;nofollow&quot;&gt;Learn to program Lisp, one game at a time&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, from the Table of Contents:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Create your own web server, and use it to play browser-based games&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I don't know what this implies for web &lt;em&gt;development&lt;/em&gt; (as in HTML pages) using Lisp, however. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update - I see someone mentioned the book &quot;Structure and Interpretation of Computer Programs&quot;, which reminded me that MIT has put online, the &lt;em&gt;entire&lt;/em&gt; SICP &lt;a href=&quot;http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/&quot; rel=&quot;nofollow&quot;&gt;Video Lectures by Hal Abelson and Gerald Jay Sussman&lt;/a&gt;. You might have found the book dry, but the lectures are excellent. Although they're Scheme-based, they still get across the basic concepts also in Lisp, very nicely. Well worth downloading and watching.&lt;/p&gt;&#xA;" OwnerUserId="3688" LastEditorUserId="3688" LastEditorDisplayName="" LastEditDate="2010-11-26T15:09:16.403" LastActivityDate="2010-11-26T15:09:16.403" CommentCount="1" />
  <row Id="21451" PostTypeId="2" ParentId="21440" CreationDate="2010-11-25T15:00:37.813" Score="3" ViewCount="" Body="&lt;p&gt;One of the things that gets me is time it takes to type everything.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When you're writing requirements docs for the client to sign off on - you're not coding&lt;/li&gt;&#xA;&lt;li&gt;When you're filling out use cases/user stories - you're not coding&lt;/li&gt;&#xA;&lt;li&gt;When you're updating the schedule - you're not coding&lt;/li&gt;&#xA;&lt;li&gt;etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Honestly; it's not so much that these roles 'take time'; obviously they do. It's not even, as Pierre said, that I don't like them; I like doing these things. It's the fact that I'm sitting at my machine, with my IDE &lt;em&gt;open&lt;/em&gt;, but I'm typing in Word, or the bug tracker, or something of that ilk when I have solutions to problems in my head trying to claw their way out.&lt;sup&gt;1&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do I get around it? I try to use tools and processes that can cut down on it as much as possible. Right now I'm giving FogBugz + Kiln another shot so that checkins can be tied to cases more easily. I try to keep things like use cases in FogBugz labelled as features, and I modify them there. I only copy them out into a word document when someone needs to see the document. Likewise for specific requirements. FogBugz also has some automated scheduling built in, which is nice (though I haven't really used that part of it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's other tools that can do these things as well, but I'm just telling you whave I've chosen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1: I have an irrational fear that if I don't get my 'solutions' out of my head and into a compiler as soon as they come to me, then I'll forget them and they'll end up lost in my head forever.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-11-25T15:26:03.750" LastActivityDate="2010-11-25T15:26:03.750" CommentCount="2" />
  <row Id="21452" PostTypeId="2" ParentId="21412" CreationDate="2010-11-25T15:06:03.330" Score="2" ViewCount="" Body="&lt;p&gt;I suspect you wrote the question whilst frustrated - but this suggests a problem:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Interviewer asks me 10 questions and&#xA;  I'm able to answer only 5. Does&#xA;  selection depend on these things? It&#xA;  doesn't mean that I can't solve the&#xA;  problem, I can google the question, I&#xA;  can ask on forums. Why don't they&#xA;  understand that a man can't remember&#xA;  all the answers for each and every&#xA;  question? Expecially programming ones&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I have two issues with this, first is that if you answer 5 out of 10 and someone else answers 6 out of 10 then all other things being equal that's game over - but second and more important is the question of how you respond when you don't know and your attitude to not knowing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of questions - it rather depends on the questions - but if its basic platform knowledge then you should be able to answer and if its a more detailed problem then you should be able to suggest approaches - &quot;look on google and ask in forums&quot; is not an approach.  Any programmer I interviewed that suggested either a) that he knew everything (unlikely and probably already proven to be false by poor answers) or b) that he didn't need to because all the answers were on google (or even stackoverflow) would not be coming back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of attitude... if you're being interviewed by someone qualified to ask the questions then they will have their own view of what a reasonable level of knowledge is based on their own capabilities and experience and you know what? It may be reasonable for a given job to expect the interviewee to give a good answer to most of their questions. If you're consistently failing to answer a significant number of questions (50% is significant) then you need to assess why.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-11-25T15:06:03.330" />
  <row Id="21453" PostTypeId="2" ParentId="21387" CreationDate="2010-11-25T15:06:53.137" Score="0" ViewCount="" Body="&lt;p&gt;Different people have different learning styles, so YMMV. The first thing I do in this situation is read the entire code base through at least once. That gives me a general idea of where everything is. Then I choose a section to examine in more detail. Data structures would be a good place to start. Once I have a general idea of what's going on, I do the same with another portion of the code that interacts with the first. After enough iterations, I have a good sense of how the code works.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-25T15:06:53.137" />
  <row Id="21454" PostTypeId="2" ParentId="21412" CreationDate="2010-11-25T15:10:06.290" Score="0" ViewCount="" Body="&lt;p&gt;Another point is how many people are applying for these jobs?  If there are a dozen or more being interviewed and you all have an equal chance of getting the position, the probability is around 8.3% you realize, right?  Sometimes it can come down to a numbers game where you have to go through many interviews to get somewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How many people can match your PHP experience but may have more education or some other differentiating factor?  When you don't answer a question, are you saying that you'd go to Google and have it answer the question for you?  How you phrase something like that could make it come off like the company is hiring someone when they should just get a contract with Google to get the answers.  While some may think that is ridiculous, there are many things in this world that are rather ridiculous yet exist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Last but not least, there can also be the potential for you wanting something that a company isn't going to give.  For example, how many companies would pay a developer $1,000,000,000 (US) or more?  Very few if any, I'd think.  What kinds of questions are you asking the company?  What kinds of signs are you showing that you want the job and would fit into their culture?  If you make it sound like the company should be lucky that you are even considering working &lt;em&gt;there&lt;/em&gt;, that arrogance may well be a contributing factor on why a company doesn't like you.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-25T15:10:06.290" />
  <row Id="21455" PostTypeId="2" ParentId="21413" CreationDate="2010-11-25T15:10:20.113" Score="1" ViewCount="" Body="&lt;p&gt;Have a look at &lt;a href=&quot;http://nsis.sourceforge.net/Main_Page&quot; rel=&quot;nofollow&quot;&gt;Nullsoft Scriptable Install System&lt;/a&gt; (NSIS) from the guys who brought you Winamp. It's free and open source. I found it to be somewhat simpler to get up and running with than WiX. Also NSIS has a pretty good wiki and many plugins. &lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-11-25T15:10:20.113" />
  <row Id="21456" PostTypeId="1" AcceptedAnswerId="21484" CreationDate="2010-11-25T15:19:20.530" Score="10" ViewCount="430" Body="&lt;p&gt;In an attempt to reach at least beginner status with such a legendary editor, I have been coding in Emacs for the last two months.  I try to keep an open heart, but I find myself continally disagreeing with one core design choice: that Emacs allow its users to never have to leave.  In a 2010 world, I just think that every side feature of Emacs is hopelessly behind dedicated software:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I would never use its built-in browser; Chrome is years ahead.&lt;/li&gt;&#xA;&lt;li&gt;I would never use its dired feature; Path Finder (Mac OS X) suits my needs.&lt;/li&gt;&#xA;&lt;li&gt;I would never use its built-in email; the Gmail web interface has more relevant features like Priority Inbox.&lt;/li&gt;&#xA;&lt;li&gt;Etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Sure, I might occasionally dip into Emacs to use regexps, etc. for one of the above tasks, but other than regexps, I really see no reason to ever touch those side features.  I'm a completely newbie, yet I have a strong gut feeling that Emacs-as-an-OS is obsolete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Emacs experts, do you think that Emacs' choice to be a comprehensive environment is the right choice for 2010 and the future?  Are there particular peripheral features that are still at or ahead of their time compared to alternatives?&lt;/p&gt;&#xA;" OwnerUserId="3305" LastEditorUserId="3305" LastEditorDisplayName="" LastEditDate="2010-11-25T15:58:18.927" LastActivityDate="2010-11-25T17:26:33.380" Title="Emacs-as-OS: obsolete?" Tags="&lt;text-editor&gt;&lt;philosophy&gt;&lt;osx&gt;&lt;emacs&gt;" AnswerCount="5" CommentCount="12" />
  <row Id="21457" PostTypeId="2" ParentId="18891" CreationDate="2010-11-25T15:24:41.397" Score="0" ViewCount="" Body="&lt;p&gt;An app that keeps a local folder in sync with an online (ftp) folder in near-real-time.  I've yet to find a good application for this.  They all seem to simply want to copy the local folder to the remote folder on a schedule.  Which is very bandwidth intensive.  Or they don't handle deletes from the local folder well, because they don't delete the remote file.  etc.&lt;/p&gt;&#xA;" OwnerUserId="2431" LastActivityDate="2010-11-25T15:24:41.397" />
  <row Id="21458" PostTypeId="2" ParentId="21440" CreationDate="2010-11-25T15:25:08.750" Score="2" ViewCount="" Body="&lt;p&gt;Lots of good points, but one more: many clients will regard the fact that there's only you as a risk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With larger teams or organisations if anything happens to one person (they fall ill or whatever) then others on the team will tend to have the knowledge to cover them.  Where it's just one person that sort of thing isn't possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This will particularly be true where there may be some on-going component to the work such as third line support.  If you're away, or on another project, will they be confident that they're going to get the service they need.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-25T15:25:08.750" CommentCount="1" />
  <row Id="21459" PostTypeId="2" ParentId="21380" CreationDate="2010-11-25T15:28:28.200" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;LaTeX&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&lt;li&gt;The source files are plain text, so they work well with source control.&lt;/li&gt;&#xA;&lt;li&gt;The learning curve is very gradual. It's possible to be productive in a very short time if you just want basic documents and don't need graphics and tables.&lt;/li&gt;&#xA;&lt;li&gt;The system is designed to create nice-looking, well-structured documents.&lt;/li&gt;&#xA;&lt;li&gt;There are implementations for Windows, Linux and OS X.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-25T15:28:28.200" />
  <row Id="21460" PostTypeId="2" ParentId="21456" CreationDate="2010-11-25T15:28:49.113" Score="8" ViewCount="" Body="&lt;p&gt;Choose the right tool for the job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try running Chrome or Path Finder through an ssh connection - here you will need alternative toolings and Emacs was &lt;em&gt;designed&lt;/em&gt; to run in a terminal.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-25T15:28:49.113" CommentCount="7" />
  <row Id="21461" PostTypeId="2" ParentId="21456" CreationDate="2010-11-25T15:36:08.283" Score="4" ViewCount="" Body="&lt;p&gt;I don't even use the built-in therapist that much, but I do use Emacs and I like it, not because of it's comprehensive nature but because it is endlessly configurable and powerful as a text editor. Also I know a lot of the keystrokes for it. Successful text editing is all about the keystrokes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to develop your productivity with it, &lt;a href=&quot;http://sites.google.com/site/steveyegge2/effective-emacs&quot; rel=&quot;nofollow&quot;&gt;Steve Yegge has some good tips.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-25T15:36:08.283" CommentCount="2" />
  <row Id="21462" PostTypeId="2" ParentId="21412" CreationDate="2010-11-25T15:38:52.227" Score="1" ViewCount="" Body="&lt;p&gt;I always tell people to try asking the interviewer that turned you down what might have improved your candidacy. Even if you get a response from 1 out of 10 interviewers, you won't be guessing (or asking others to guess).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I ask every time, have only ever had one person refuse, and I &lt;strong&gt;always&lt;/strong&gt; get great feedback. The sample size is low though (4).&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-25T15:38:52.227" />
  <row Id="21463" PostTypeId="1" AcceptedAnswerId="21478" CreationDate="2010-11-25T15:40:34.177" Score="17" ViewCount="760" Body="&lt;p&gt;When doing TDD and writing a unit test, how does one resist the urge to &quot;cheat&quot; when writing the first iteration of &quot;implementation&quot; code that you're testing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;br&gt;&#xA;Let's I need to calculate the Factorial of a number.  I start with a unit test (using MSTest) something like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;[TestClass]&#xA;public class CalculateFactorialTests&#xA;{&#xA;    [TestMethod]&#xA;    public void CalculateFactorial_5_input_returns_120()&#xA;    {&#xA;        // Arrange&#xA;        var myMath = new MyMath();&#xA;        // Act&#xA;        long output = myMath.CalculateFactorial(5);&#xA;        // Assert&#xA;        Assert.AreEqual(120, output);&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I run this code, and it fails since the &lt;code&gt;CalculateFactorial&lt;/code&gt; method doesn't even exist.  So, I now write the first iteration of the code to implement the method under test, writing the &lt;a href=&quot;http://site.typemock.com/general-unit-testing-page/2009/9/11/test-driven-development-tdd.html?qs=Test_Driven_Development_TDD.php&quot; rel=&quot;nofollow&quot;&gt;minimum&lt;/a&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/Test-driven_development#3._Write_some_code&quot; rel=&quot;nofollow&quot;&gt;code&lt;/a&gt; required to pass the test.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing is, I'm continually tempted to write the following:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class MyMath&#xA;{&#xA;    public long CalculateFactorial(long input)&#xA;    {&#xA;        return 120;&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This is, technically, correct in that it &lt;em&gt;really&lt;/em&gt; is the minimum code required to &lt;em&gt;make that specific test pass&lt;/em&gt; (go green), although it's clearly a &quot;cheat&quot; since it really doesn't even &lt;em&gt;attempt&lt;/em&gt; to perform the function of calculating a factorial.  Of course, now the refactoring part becomes an exercise in &quot;writing the correct functionality&quot; rather than a true refactoring of the implementation.  Obviously, adding additional tests with different parameters will fail and force a refactoring, but you have to start with that one test.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, my question is, how do you get that balance between &quot;writing the minimum code to pass the test&quot; whilst still keeping it functional and in the spirit of what you're actually trying to achieve?&lt;/p&gt;&#xA;" OwnerUserId="4351" LastActivityDate="2010-11-26T17:27:15.687" Title="Writing the minimum code to pass a unit test - without cheating!" Tags="&lt;best-practices&gt;&lt;unit-testing&gt;&lt;tdd&gt;" AnswerCount="11" CommentCount="4" FavoriteCount="2" />
  <row Id="21464" PostTypeId="2" ParentId="21463" CreationDate="2010-11-25T15:43:36.930" Score="1" ViewCount="" Body="&lt;p&gt;If you still able to cheat then the tests are not enough. Write more tests! For your example, I will try to add tests with input 1, -1, -1000, 0, 10, 200.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nevertheless, if you're really commit to cheat you can write an endless if-then. In this case, nothing could help except code review. You would be soon caught on acceptance test (&lt;strong&gt;written by other person!&lt;/strong&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with unit tests is sometimes programmers look at them as unnecessary work. The correct way to see them is as tool for you to make the result of your work correct. So if you create an if-then, you know unconsciously that there are other cases to consider. This means you have to write another tests. And so on and so on until you realize the cheating is not working and it is better to just code the correct way. If you still feel that you are not finish, you are not finish.&lt;/p&gt;&#xA;" OwnerUserId="488" LastEditorUserId="488" LastEditorDisplayName="" LastEditDate="2010-11-25T18:44:47.693" LastActivityDate="2010-11-25T18:44:47.693" CommentCount="1" />
  <row Id="21465" PostTypeId="2" ParentId="21456" CreationDate="2010-11-25T15:47:48.067" Score="4" ViewCount="" Body="&lt;p&gt;Emacs was never intended for the mass market. It is designed for efficient use by people who have taken the time to learn how it works. That said, one size does not fit all, so you may not like emacs even after you learn more about it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: My two favorite features of emacs besides editing text are the shell mode, and gnus. After getting frustrated with Google Groups because of all the spam, I signed up with &lt;a href=&quot;http://eternal-september.org/&quot; rel=&quot;nofollow&quot;&gt;Eternal September&lt;/a&gt; and learned how to use gnus. It's much faster to navigate through messages, and only the occasional spam posting gets through, and getting rid of it is a matter of one key press. Shell mode is especially useful to me at work because copy/paste is more efficient than it is in a DOS prompt. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastEditorUserId="5621" LastEditorDisplayName="" LastEditDate="2010-11-25T16:08:36.447" LastActivityDate="2010-11-25T16:08:36.447" CommentCount="4" />
  <row Id="21466" PostTypeId="2" ParentId="21387" CreationDate="2010-11-25T15:50:24.427" Score="2" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Step through the code&lt;/li&gt;&#xA;&lt;li&gt;Rename as needed&lt;/li&gt;&#xA;&lt;li&gt;Refactor as needed&lt;/li&gt;&#xA;&lt;li&gt;Repeat until you completely understand&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;... and the code will thank you for it. ;-)&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-11-25T15:50:24.427" />
  <row Id="21467" PostTypeId="1" CreationDate="2010-11-25T15:56:34.997" Score="4" ViewCount="203" Body="&lt;p&gt;I just saw this &lt;a href=&quot;http://www.brucegreig.com/2010/11/37signals-applications-just-text-box.html&quot; rel=&quot;nofollow&quot;&gt;lecture&lt;/a&gt; by Spolsky, where he questions the need for choices and confirmation dialogs. At some point he has a MacOS settings window and he mentions that &quot;now some are getting rid of the OK button&quot;. The window indeed has no OK (or cancel) button. Changing a setting makes it change, when you're done configuring, you close that window, period.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being a long time Windows user and a recent Mac owner, the difference is noticeable at first. I looked for the OK button for a while, only to find out, quite naturally and painlessly, that there was none. I expressed satisfaction and went on my merry way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I'm curious to know if this UI design pattern would succeed in the Windows-based world. Granted that if Microsoft brought it out with say Windows-8 (fat chance, I know), people would get used to it eventually. But is there some experience out there of such an approach, of changing the &quot;confirmation paradigm&quot; on a platform where it's so prevalent? Did it leave users (especially the non-technical ones) confused, frustrated, scared, or happy?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TL;DR: Remove OK/cancel confirmation, what happens?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mac GUI for appearance settings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/YtoYX.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="6770" LastEditorUserId="6770" LastEditorDisplayName="" LastEditDate="2010-11-26T01:28:26.950" LastActivityDate="2010-11-27T19:58:38.923" Title="UI design and confirmation paradigm" Tags="&lt;design&gt;&lt;gui&gt;" AnswerCount="6" FavoriteCount="2" />
  <row Id="21468" PostTypeId="1" AcceptedAnswerId="21476" CreationDate="2010-11-25T16:00:24.820" Score="0" ViewCount="202" Body="&lt;p&gt;The lamest question being What is your weakness. Let's hear it then how do you answer it.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-11-25T16:11:22.840" ClosedDate="2010-11-25T16:13:34.523" Title="How to answer the lamest Q" Tags="&lt;interview-questions&gt;" AnswerCount="2" CommentCount="11" />
  <row Id="21469" PostTypeId="2" ParentId="21463" CreationDate="2010-11-25T16:01:36.060" Score="4" ViewCount="" Body="&lt;p&gt;As long as you only have a single test, then the minimal code needed to pass the test is truly &lt;code&gt;return 120;&lt;/code&gt;, and you can easily keep it for that as long as you don't have any more tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This allows you to postpone further design until you actually write the tests that exercise OTHER return values of this method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please remember that the test is the runnable version of your specification, and if all &lt;em&gt;that&lt;/em&gt; specification says is that f(6)=120 then that fits the bill perfectly.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-11-25T16:11:47.800" LastActivityDate="2010-11-25T16:11:47.800" CommentCount="10" />
  <row Id="21470" PostTypeId="2" ParentId="21467" CreationDate="2010-11-25T16:01:42.800" Score="1" ViewCount="" Body="&lt;p&gt;You said so yourself : you looked for the OK button for a while. Users should find things right away.&lt;/p&gt;&#xA;" OwnerUserId="6579" LastActivityDate="2010-11-25T16:01:42.800" CommentCount="7" />
  <row Id="21471" PostTypeId="2" ParentId="21463" CreationDate="2010-11-25T16:01:48.313" Score="4" ViewCount="" Body="&lt;p&gt;If you are able to &quot;cheat&quot; in such a way, it suggests that your unit tests are flawed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rather than testing the factorial method with a single value, test it was a range of values. Data-driven testing can help here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;View your unit tests as a manifestation of the requirements - they must collectively define the behaviour of the method which they test. (This is known as &lt;a href=&quot;http://blog.dannorth.net/introducing-bdd/&quot; rel=&quot;nofollow&quot;&gt;behaviour driven development&lt;/a&gt; - its the future &lt;code&gt;;-)&lt;/code&gt;) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So ask yourself - if someone were to change the implementation to something incorrect, would your tests still pass or would they say &quot;hang on a minute!&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bearing that in mind, if your only test was the one in your question, then technically, the corresponding implementation is correct. The problem is then viewed as poorly-defined requirements.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-11-25T16:01:48.313" CommentCount="11" />
  <row Id="21472" PostTypeId="2" ParentId="21387" CreationDate="2010-11-25T16:03:38.543" Score="1" ViewCount="" Body="&lt;p&gt;Whatever you do write up as much as you can as you go along so no-one ever ends up in the same position as you have.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-25T16:03:38.543" />
  <row Id="21473" PostTypeId="2" ParentId="21468" CreationDate="2010-11-25T16:03:40.480" Score="6" ViewCount="" Body="&lt;p&gt;Why is it lame ? Do you think you have no weaknesses ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact that you don't know how to answer it suggests it isn't lame.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-11-25T16:03:40.480" CommentCount="5" />
  <row Id="21474" PostTypeId="2" ParentId="21412" CreationDate="2010-11-25T16:05:52.060" Score="16" ViewCount="" Body="&lt;p&gt;I've said it before. I'll say it again. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A job interview is a competition, not a pass-fail test.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason you aren't getting the job is that another candidate impressed the employer more than you did. If you got 5 questions right, perhaps someone else got 6 or more. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact that you can Google answers or get them from SO is irrelevant as I discussed in more detail in my blog article &lt;a href=&quot;http://improvingsoftware.com/2009/05/15/why-id-just-google-it-is-not-an-acceptable-interview-answer/&quot; rel=&quot;nofollow&quot;&gt;Why &quot;I'd just Google it&quot; is not an acceptable interview answer&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-25T16:05:52.060" CommentCount="9" />
  <row Id="21475" PostTypeId="1" AcceptedAnswerId="21483" CreationDate="2010-11-25T16:10:27.673" Score="4" ViewCount="252" Body="&lt;p&gt;After reading &lt;a href=&quot;http://programmers.stackexchange.com/questions/2815/what-would-you-change-about-c-if-you-could&quot;&gt;this post about C#&lt;/a&gt;, it is very interesting to hear what you consider wrong with Java and what would you like to change? I bet on &quot;call to super|this must be first statement in constructor&quot;.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-11-25T17:58:58.480" Title="What would you change about Java if you have a chance?" Tags="&lt;java&gt;&lt;criticism&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="21476" PostTypeId="2" ParentId="21468" CreationDate="2010-11-25T16:11:22.840" Score="3" ViewCount="" Body="&lt;p&gt;I thought the standard formula for answering this was to take something good and say:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Sometimes I can be too....&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Sometimes I can be too committed to a project and my manager will have to remind me that we all need to sleep sometimes.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Sometimes I can be too helpful when colleagues approach me with problems which means I need to stay late to complete my own work.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it's a rubbish question that I don't think is going to tell you anything about a candidate and I didn't think it had genuinely been asked in the last 20 years.  If you do get it it's a good indicator that the person interviewing you is a bit unimaginative at the very least.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-25T16:11:22.840" CommentCount="3" />
  <row Id="21477" PostTypeId="2" ParentId="21403" CreationDate="2010-11-25T16:13:22.383" Score="7" ViewCount="" Body="&lt;p&gt;Larger Project = More Complexity&lt;br&gt;&#xA;More Complexity = More Uncertainties&lt;br&gt;&#xA;More Uncertainties = Harder to Estimate&lt;br&gt;&#xA;Harder to Estimate = Bad Estimates&lt;br&gt;&#xA;Bad Estimates = Cost Overruns  &lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-25T16:13:22.383" CommunityOwnedDate="2011-01-29T04:58:02.993" />
  <row Id="21478" PostTypeId="2" ParentId="21463" CreationDate="2010-11-25T16:14:46.033" Score="16" ViewCount="" Body="&lt;p&gt;It's perfectly legit.  Red, Green, Refactor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first test passes.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Add the second test, with a new input.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now quickly get to green, you could add an if-else, which works fine.  It passes, but you are not done yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The third part of Red, Green, Refactor is the most important.  &lt;strong&gt;Refactor to remove duplication&lt;/strong&gt;.  You WILL have duplication in your code now.  Two statements returning integers.  &lt;strong&gt;And the only way to remove that duplication is to code the function correctly.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: I'm not saying don't write it correctly the first time.  I'm just saying it's not cheating if you don't.&lt;/p&gt;&#xA;" OwnerUserId="2431" LastEditorUserId="2431" LastEditorDisplayName="" LastEditDate="2010-11-25T17:01:32.467" LastActivityDate="2010-11-25T17:01:32.467" CommentCount="15" />
  <row Id="21479" PostTypeId="2" ParentId="21463" CreationDate="2010-11-25T16:15:45.453" Score="9" ViewCount="" Body="&lt;p&gt;Clearly an understanding of the ultimate goal, and the achievement of an algorithm that meets that goal, is required. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;TDD is not a magic bullet for design; you still have to know how to solve problems using code, and you still have to know how to do that at a level higher than a few lines of code to make a test pass.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like the idea of TDD because it encourages good design; it makes you think about how you can write your code so that it is testable, and generally that philosophy will push the code towards a better design overall. But you still have to know how to architect a solution.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not favor reductionist TDD philosophies that claim you can grow an application by simply writing the smallest amount of code to pass a test.  Without thinking about architecture, &lt;em&gt;this won't work,&lt;/em&gt; and your example proves that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Uncle Bob Martin &lt;a href=&quot;http://s3.amazonaws.com/hanselminutes/hanselminutes_0171.pdf&quot; rel=&quot;nofollow&quot;&gt;says this:&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If you're not doing Test Driven&#xA;  Development, it's very difficult to&#xA;  call yourself a professional. Jim&#xA;  Coplin called me on the carpet for&#xA;  this one. He didn't like that I said&#xA;  that. In fact, his position right now&#xA;  is that Test Driven Development is&#xA;  destroying architectures because&#xA;  people are writing tests to the&#xA;  abandon of any other kind of thought&#xA;  and tearing their architectures apart&#xA;  in the mad rush to get tests to pass&#xA;  and he's got an interesting point,&#xA;  that's an interesting way to abuse the&#xA;  ritual and lose the intent behind the&#xA;  discipline.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;if you're not thinking through the&#xA;  architecture, if what you're doing&#xA;  instead is ignoring architecture and&#xA;  throwing tests together and getting&#xA;  them to pass, you're destroying the&#xA;  thing that will allow the building to&#xA;  stay up because it's the concentration&#xA;  on the structure of the system and&#xA;  solid design decisions that help the&#xA;  system maintain its structural&#xA;  integrity.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;You cannot simply just throw a whole&#xA;  bunch of tests together and make them&#xA;  pass for decade after decade after&#xA;  decade and assume that you're system&#xA;  is going to survive. We don't want to&#xA;  evolve ourselves into hell. So a good&#xA;  test driven developer is always&#xA;  conscious of making architectural&#xA;  decisions, always thinking of the big&#xA;  picture.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-25T16:32:10.980" LastActivityDate="2010-11-25T16:32:10.980" CommentCount="4" />
  <row Id="21480" PostTypeId="1" CreationDate="2010-11-25T16:17:59.977" Score="7" ViewCount="329" Body="&lt;p&gt;As part of a research I'm working on, I'm looking for public APIs that only work correctly when you apply a certain sequence of actions on them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, the &lt;a href=&quot;http://download.oracle.com/javase/1.5.0/docs/api/java/nio/channels/SocketChannel.html&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;java.nio.channels.SocketChannel&lt;/code&gt; class&lt;/a&gt;, from the Java standard library, only works correctly with sequences such as &lt;code&gt;open() -&amp;gt; connect() -&amp;gt; read() -&amp;gt; read() -&amp;gt; close()&lt;/code&gt;. A more complete demonstration if how it may be used may be represented in the following graph:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/zVOq9.png&quot; alt=&quot;valid usage of SocketChannel&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additional examples of Java standard library APIs that require certain sequences are &lt;a href=&quot;http://download.oracle.com/javase/1.5.0/docs/api/java/io/PrintStream.html&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;java.io.PrintStream&lt;/code&gt;&lt;/a&gt; (very similar to the one above) and &lt;a href=&quot;http://download.oracle.com/javase/1.5.0/docs/api/java/util/Iterator.html&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;java.util.Iterator&lt;/code&gt;&lt;/a&gt; (which requires a &lt;code&gt;next()&lt;/code&gt; call between every two &lt;code&gt;remove()&lt;/code&gt; calls, thus enforcing a certain sequence).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, does you favorite API for doing X also behave that way? &lt;strong&gt;I would very much like to know about additional APIs that require a certain method sequence for correct usage&lt;/strong&gt;; especially classes that are not part of the Java standard library. The more complex the sequence(s) required, the better.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Some APIs require a sequence that spans across multiple classes, for example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;X x = new X();&#xA;x.setup();&#xA;Y y = x.createNewY();&#xA;Z z = new Z(y);&#xA;z.doSomething();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;These examples are also interesting, but I'm mostly looking for sequences that all appear in the same class.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt; added bounty for greater visibility. I'm sure many of you have encountered many APIs that will match this description - I would really appreciate some good examples.&lt;/p&gt;&#xA;" OwnerUserId="8331" LastEditorUserId="8331" LastEditorDisplayName="" LastEditDate="2010-11-27T17:02:22.787" LastActivityDate="2010-11-30T18:54:46.307" Title="Examples of Java APIs that demand an action sequence" Tags="&lt;java&gt;&lt;api&gt;" AnswerCount="8" CommentCount="12" FavoriteCount="2" />
  <row Id="21481" PostTypeId="2" ParentId="21403" CreationDate="2010-11-25T16:21:34.950" Score="0" ViewCount="" Body="&lt;p&gt;Michael Krigsman over on ZDNet has a blog devoted to &quot;&lt;a href=&quot;http://www.zdnet.com/blog/projectfailures&quot; rel=&quot;nofollow&quot;&gt;IT Project Failures&lt;/a&gt;,&quot; that may be of interest here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another point is that with long projects that span years, there will generally either be upgrades to consider or alternative solutions,e.g. could a project now be done in the cloud versus on-site for something starting to come up more and more, that in considering these this wasn't a given when the project was started.  For example, while one could start while something is at 6.0, by the time the first phase is done there may well be a 6.3 or 6.4 out and the question of when to upgrade is being asked.  Changes in scope and desired functionality, either because requirements weren't gathered correctly or someone changed their mind, are another couple of points that have already been covered quite a bit.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-25T16:21:34.950" CommunityOwnedDate="2011-01-29T04:58:02.993" />
  <row Id="21482" PostTypeId="2" ParentId="21463" CreationDate="2010-11-25T16:28:00.510" Score="1" ViewCount="" Body="&lt;p&gt;Just write more tests.  Eventually, it would be &lt;em&gt;shorter&lt;/em&gt; to write&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public long CalculateFactorial(long input)&#xA;{&#xA;    return input &amp;lt;= 1 ? 1 : CalculateFactorial(input-1)*input;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;than &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public long CalculateFactorial(long input)&#xA;{&#xA;    switch (input) {&#xA;       case 0: return 1;&#xA;       case 1: return 1;&#xA;       case 2: return 2;&#xA;       case 3: return 6;&#xA;       case 4: return 24;&#xA;       case 5: return 120;&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;:-)&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-11-25T16:28:00.510" CommentCount="3" />
  <row Id="21483" PostTypeId="2" ParentId="21475" CreationDate="2010-11-25T16:34:44.917" Score="3" ViewCount="" Body="&lt;p&gt;This has been discussed quite heavily in the blogsphere recently with the various Java 7/8 feature announcements and the the debate on backwards incompatible Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should pick up Stephen Colebournes's talk at Devoxx (parleys.com)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I wish Java had been modular from the start (coming in Java 8)&lt;/li&gt;&#xA;&lt;li&gt;I want to write less boiler plate exception handling (ARM - coming in Java 7)&lt;/li&gt;&#xA;&lt;li&gt;I want to write less boiler plate bean code (properties) (project Lombok)&lt;/li&gt;&#xA;&lt;li&gt;I wish they'd done Generics in full (too many corner cases that make your brain melt)&lt;/li&gt;&#xA;&lt;li&gt;Proper ISO std Date/Time handling (JSR-310 coming in Java 8, Joda time for now)&lt;/li&gt;&#xA;&lt;li&gt;Simpler concurrency (Fork/Join will help a little in Java 7)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Much of what I want is coming, it's good to see the JDK moving again.&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2010-11-25T16:55:38.107" LastActivityDate="2010-11-25T16:55:38.107" CommentCount="3" />
  <row Id="21484" PostTypeId="2" ParentId="21456" CreationDate="2010-11-25T16:40:07.877" Score="3" ViewCount="" Body="&lt;p&gt;I've been using emacs for the last 10 years (from and to), and I can only say that &lt;strong&gt;you are absolutely right&lt;/strong&gt;. Back in the days, I used gnus and the w3 browser, but clearly they are no longer up to it when compared to dedicated programs. But, obviously, you cannot run Chrome in text mode so this is where emacs wins. And even there, I'd rather use lynx/elinks or mutt for that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Emacs-the-programmers-editor has lost its touch as well. Text editing is just fine, but when I'm writing &lt;strong&gt;code&lt;/strong&gt;, I find myself wishing for functions like: goto definition, auto completion, refactoring, syntax hints, parameter docs etc etc (think Eclipse). I have tried a couple of emacs modes but never got it to work right. And no, I don't want to learn elisp, thank you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, emacs don't really understand the semantics of the code. This is painfully obvious when coding in a file containing multiple languages like html with javascript and php or something. It just breaks down. For that, I much rather use any other editor (notepad++ or whatever) which does the job much better.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-11-25T17:09:01.750" LastActivityDate="2010-11-25T17:09:01.750" CommentCount="8" />
  <row Id="21485" PostTypeId="2" ParentId="21475" CreationDate="2010-11-25T16:40:42.953" Score="2" ViewCount="" Body="&lt;p&gt;I would make Groovy as fast as Java. Groovy has implemented evrything I wanted I'm Java. &lt;/p&gt;&#xA;" OwnerUserId="7800" LastActivityDate="2010-11-25T16:40:42.953" CommentCount="1" />
  <row Id="21486" PostTypeId="1" AcceptedAnswerId="21530" CreationDate="2010-11-25T16:42:44.303" Score="6" ViewCount="323" Body="&lt;p&gt;Hi. Lets say you were employed by a company (not a long time ago), that suggested good money and social package. Though while you are occupying a developer position (i.e. java) you do not spend much time programming. And that's generally because the platform, which is used by this company, doesn't assume a lot of coding, only for customization, and even then there's more digging and using already made modules/functionality rather than writing one yourself. Which means you're not gonna get a lot of java development experience. And let's also assume that you're youngster in SoftDev, and you're passionate (though I hope you don't have to assume that:)) about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also important, that somehow you can find guys in that company, who are truly skilled and have good programming knowledge and great experience list.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Platform is totally closed, have never see such proprietary thing. You have no access to source, the only thing that comes in handy is decompiler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; important is that it's an e-commerce thing, and you have never worked in such a business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what would you do in such a situation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: The question is: would you quit a job, for which you are paid good, but which doesn't improve your coding, abut which leads to certain experience in e-commerce?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: It's extremely hard to choose one correct answer cause I find 3 of them to be correct. So every I up voted most close, but correct answer is the one, which actually included important aspect of the situation. THANKS FOR GREAT ANSWERS!&lt;/p&gt;&#xA;" OwnerUserId="7781" LastEditorUserId="7781" LastEditorDisplayName="" LastEditDate="2010-11-26T14:09:07.040" LastActivityDate="2010-11-26T14:09:07.040" Title="Would you partially give up programming for good money?" Tags="&lt;learning&gt;&lt;experience&gt;&lt;recommendations&gt;&lt;software-developer&gt;&lt;employment&gt;" AnswerCount="6" CommentCount="6" />
  <row Id="21487" PostTypeId="2" ParentId="21467" CreationDate="2010-11-25T16:43:28.387" Score="1" ViewCount="" Body="&lt;p&gt;I find a nice middle ground is when some text is temporarily displayed (&lt;em&gt;not&lt;/em&gt; in a pop-up) saying &quot;your change has been successfully saved&quot; or something similar to Google Doc's auto-saving&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-25T16:43:28.387" CommentCount="1" />
  <row Id="21488" PostTypeId="2" ParentId="21475" CreationDate="2010-11-25T16:47:56.347" Score="1" ViewCount="" Body="&lt;p&gt;For me, it is JVM speed. Now many here will come and say that &quot;Java is slow&quot; is a myth from the old days. Some may pull out benchmarks, that refute any claims about Java being slow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a developer I am also a &lt;em&gt;user&lt;/em&gt;. The tools I &lt;em&gt;use&lt;/em&gt; are running on the CLR, the JVM, the AVM2, the V8 or are natively compiled. Of all those tools the ones in Java are the ones that let me wait. The best example is, I have 2 compilers for the same platform, one of which is written in Java and will take longer for an incremental build, than the one written in OCaml will use for a complete build (and compiling here is just parsing, type checking and issuing some opcodes, which are really almost just a representation of the AST).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have very few apps or tools that require much time to launch or tend to become unresponsive. Those that do, are written in Java. Possibly because the JVM spends so much time booting and JITing (?).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think, this is really a pitty, because the JVM has quite a high market penetration and the Java ecosystem is immense, with a lot of tools and languages. But I really just use it, when I have no other choice, which is why I don't consider Java as a preferable platform until I eventually get the UX I want to give my users.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-11-25T16:47:56.347" CommentCount="2" />
  <row Id="21489" PostTypeId="2" ParentId="21463" CreationDate="2010-11-25T16:48:40.653" Score="2" ViewCount="" Body="&lt;p&gt;When you've written only one unit test, the one-line implementation (&lt;code&gt;return 120;&lt;/code&gt;) is legitimate.  Writing a loop calculating the value of 120 - &lt;strong&gt;that would be cheating!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Such simple initial tests are a good way to catch edge cases and prevent one-off errors.  Five actually isn't the input value I'd start with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A rule of thumb that could be useful here is: &lt;strong&gt;zero, one, many, lots&lt;/strong&gt;.  Zero and one are important edge cases for the factorial.  They can be implemented with one-liners.  The &quot;many&quot; test case (e.g. 5!) would then force you to write a loop.  The &quot;lots&quot; (1000!?) test case could force you to implement an alternative algorithm to handle very large numbers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit: fixed some typos&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="464" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-11-25T22:01:12.460" LastActivityDate="2010-11-25T22:01:12.460" />
  <row Id="21490" PostTypeId="2" ParentId="21403" CreationDate="2010-11-25T16:50:22.070" Score="1" ViewCount="" Body="&lt;p&gt;Cost does not preclude schedule in the eyes of 'management' which is an important distinction to make. As we know, &lt;em&gt;&quot;nine women can't make a baby in one month&quot;&lt;/em&gt;, yet you'd be surprised at how many people think that problems decrease in depth in relation to the amount of money that is thrown at them. Bad project management, often manifesting itself in the form of micro management is the leading cause of most projects tanking (in my experience). Micro management kicks in when 'management' realizes that something is getting out of control and they are clueless as to why.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When that isn't the cause, the expected outcome of the project was probably not tenable to begin with. In my experience, if the time frame of a project is too short, people will be so afraid of making mistakes that result in 'double work' that they don't get much of anything done at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is why management should be populated with seasoned programmers who have a history of leading teams that produced successful projects. Such a person might say &quot;No way could we do that responsibly&quot; despite the possible revenue, and would not be in management for long, which is why many of us (ultimately) answer to MBA's instead of PHD's.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I lost count of the number of companies that I've worked for where a non-programmer was in charge of hiring programmers. I had an interview once where the hiring manager wanted to do nothing but discuss a recent sporting event (I think it was a football game). If the person you have in charge draws more inspiration from an NFL coach than Knuth, the project is going to tank.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once in a while, you run into something that was well planned, well understood, realistic and seemingly straight forward. For whatever reason, six months into development, everything reversed itself. It happens. Rarely, however is that the underlying cause of a project becoming a glorified pork barrel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, I have to admit .. if you watch the news, you might see an occasional motorcycle accident or train wreck. You never hear about the millions of motorcycles or trains that arrive on time every day without incident. The same goes with projects. Sure, it's interesting to see a public autopsy of something that went really, really bad, but you almost never hear about stuff that went really, really well. I think that tanked projects are still the exception, not the norm.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-25T16:56:27.683" LastActivityDate="2010-11-25T16:56:27.683" CommunityOwnedDate="2011-01-29T04:58:02.993" />
  <row Id="21491" PostTypeId="2" ParentId="21475" CreationDate="2010-11-25T16:59:19.677" Score="4" ViewCount="" Body="&lt;p&gt;I second every point of &lt;a href=&quot;http://programmers.stackexchange.com/questions/21475/what-would-you-change-about-java-if-you-have-a-chance/21483#21483&quot;&gt;Martijn's answer&lt;/a&gt; (especially the full generics support), which leaves less for me:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Closures and methods as objects (use them and love them in Groovy and other languages, anonymous inner classes are no substitute)&lt;/li&gt;&#xA;&lt;li&gt;Many of Groovy's convenience methods in JDK classes should be standard in Java too. E.g. I should be able to read or write a file directly (file.get/setText())&lt;/li&gt;&#xA;&lt;li&gt;switch statements will soon support Strings, which is good, but I'd prefer real pattern matching as found in Groovy, Scala, Haskell and many other languages&lt;/li&gt;&#xA;&lt;li&gt;Traits as in Scala (interfaces with actual methods)! You can get them via AspectJ, but I'd like them in plain Java. It's a clean way to implement Multiple Inheritance without running into the diamond problem.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2894" LastActivityDate="2010-11-25T16:59:19.677" CommentCount="1" />
  <row Id="21492" PostTypeId="2" ParentId="21486" CreationDate="2010-11-25T17:00:15.883" Score="2" ViewCount="" Body="&lt;p&gt;If I'm interpreting this question correctly...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;If you want to become an awesome programmer, you have to practice your coding. If you're not doing that at your day job, you'll need to do it outside of your day job.  Since you don't have the time outside of work then in your case that means you need to find a new job.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you want to start a business and assuming you've done your research and you know you need to learn the sort of soft skills that your work currently gives you, then stay.  But it does mean you'll have to hire outside programmer expertise when you start your own company and you might not be able to recognise what a good programmer is.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Because as you won't have spent the time programming you might not be as qualified to be the lead CTO/programmer in your new company as you'd like to be (assuming this is a start-up and you want that hands on role).  You also might struggle to recognise the top programmers out there (Birds of a Feather and all that).&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2010-11-25T17:37:01.330" LastActivityDate="2010-11-25T17:37:01.330" CommentCount="4" />
  <row Id="21493" PostTypeId="2" ParentId="21433" CreationDate="2010-11-25T17:11:04.483" Score="1" ViewCount="" Body="&lt;p&gt;I saw your resume before it got edited out. It looks like the classic tech-style CV. I advise you to listen to a selection of these podcasts: &lt;a href=&quot;http://www.manager-tools.com/podcasts/career-tools?filter0=30&quot; rel=&quot;nofollow&quot;&gt;http://www.manager-tools.com/podcasts/career-tools?filter0=30&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically they advocate a stripped down one page CV, with very focused entries for your positions. Highlight your achievements, and work the technological buzzwords into there rather than doing a keyword blast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coincidentally the same site has lots of good advice on interviewing, job search, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(People are going to start to think I get a kickback from these guys)&lt;/p&gt;&#xA;" OwnerUserId="3010" LastActivityDate="2010-11-25T17:11:04.483" />
  <row Id="21494" PostTypeId="2" ParentId="21486" CreationDate="2010-11-25T17:11:29.463" Score="5" ViewCount="" Body="&lt;p&gt;My answer is another question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Do you really have to code less?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am the CTO of my company. Sure, we're small, but I'm quite certain that if we had thousands of employees, I'd still spend most of my time writing code (or thinking about what to write). My position simply solidified in salary stuff that I was doing as a senior developer:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;License compliance (Free / Open Source stuff we use)&lt;/li&gt;&#xA;&lt;li&gt;Development processes&lt;/li&gt;&#xA;&lt;li&gt;Interviewing / Hiring&lt;/li&gt;&#xA;&lt;li&gt;Watching patent wars and avoiding land mines&lt;/li&gt;&#xA;&lt;li&gt;Planning next year's products&lt;/li&gt;&#xA;&lt;li&gt;Etc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Sure, I have to do some budgetary stuff, I have a few more meetings to attend, but I spend 80% of my time writing code. Sometimes it is review, mostly it is proof of concept stuff that I'd like to get (really) implemented. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only real difference between me and the rest of the programmers that toil away here is, &lt;strong&gt;&lt;em&gt;I have a magical hammer&lt;/em&gt;&lt;/strong&gt;. I can cut a project when it looks like it's going to tank, or bring in resources that are appropriate to help it not tank. I can tell higher ups that &quot;Yeah, no F'in way is that gonna happen&quot; and I can make sure that people working under me get what they need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your next position is the position you put yourself in, unless you live somewhere that they put a gun to your head. Under no circumstances should you EVER stop doing what you love doing, especially since you worked so hard to get paid to do what you love doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not a paradox like having cake and eating it too. Circumstances aren't edible.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-25T17:11:29.463" CommentCount="3" />
  <row Id="21495" PostTypeId="2" ParentId="21397" CreationDate="2010-11-25T17:13:58.323" Score="0" ViewCount="" Body="&lt;p&gt;I usually dont name my controls in XAML, as it would be, most of the time, unused considering everything is set or controlled through bindings. Source : &lt;a href=&quot;http://10rem.net/blog/2010/07/02/silverlight-wpf-dont-name-elements-unless-you-have-to-why-xnaming-everything-is-bad&quot; rel=&quot;nofollow&quot;&gt;Pete Brown&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7454" LastActivityDate="2010-11-25T17:13:58.323" CommentCount="2" />
  <row Id="21496" PostTypeId="1" CreationDate="2010-11-25T17:15:49.577" Score="8" ViewCount="185" Body="&lt;p&gt;Let's say that I have a project that depends on 10 libraries, and within my project's trunk I'm free to use any versions of those libraries. So I start with the most recent versions. Then,  each of those libraries gets an update once a month (on average). Now, keeping my trunk completely up to date would require updating a library reference every three days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is obviously too much. Even though usually version 1.2.3 is a drop-in replacement for version 1.2.2, you never &lt;em&gt;know&lt;/em&gt; without testing. Unit tests aren't enough; if it's a DB / file engine, you have to ensure that it works properly with files that were created with older versions, and maybe vice versa. If it has something to do with GUI, you have to visually inspect everything. And so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you handle this? Some possible approaches:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;If it ain't broke, don't fix it&lt;/strong&gt;. Stay with your current version of the library as long as &lt;em&gt;you&lt;/em&gt; don't notice anything wrong with it when used in your application, no matter how often the library vendor publishes updates. Small incremental changes are just waste.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Update frequently in order to keep change small.&lt;/strong&gt; Since you'll have to update some day in any case, it's better to update often so that you notice any problems early when they're easy to fix, instead of jumping over several versions and letting potential problems to accumulate.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Something in between.&lt;/strong&gt; Is there a sweet spot?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-11-25T18:44:35.303" LastActivityDate="2010-11-26T19:45:24.600" Title="How to keep your third party libraries up do date?" Tags="&lt;libraries&gt;&lt;stay-updated&gt;" AnswerCount="11" CommentCount="1" FavoriteCount="0" />
  <row Id="21497" PostTypeId="2" ParentId="21486" CreationDate="2010-11-25T17:17:14.413" Score="0" ViewCount="" Body="&lt;p&gt;I think you overestimate the amount spent on coding in general. More often than not, programmers have to rather work on existing code than creating something new. Often enough, gathering the requirements, sorting them out, documenting them, discussing them with the clients takes more time than actually writing the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer your questions, if you like the job in general, stay there for a while, gather experience in the domain (and development experience in your resume), and try to find a toy project to work on, to improve your skills.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-25T17:17:14.413" CommentCount="2" />
  <row Id="21498" PostTypeId="2" ParentId="21496" CreationDate="2010-11-25T17:18:07.930" Score="3" ViewCount="" Body="&lt;p&gt;Partially, as described in &lt;a href=&quot;http://svnbook.red-bean.com/en/1.1/ch07s05.html&quot; rel=&quot;nofollow&quot;&gt;svn vendor branches&lt;/a&gt;. The procedure described there is very useful, when you keep using open-source third-party libraries for a long time, and have made changes to adjust it for your needs.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastEditorUserId="8360" LastEditorDisplayName="" LastEditDate="2010-11-25T18:05:44.767" LastActivityDate="2010-11-25T18:05:44.767" CommentCount="3" />
  <row Id="21499" PostTypeId="2" ParentId="21071" CreationDate="2010-11-25T17:20:06.673" Score="0" ViewCount="" Body="&lt;p&gt;Rhodia makes a nice &lt;a href=&quot;http://www.rhodiapads.com/collections_metallic_meetingbook.shtml&quot; rel=&quot;nofollow&quot;&gt;meeting notepad&lt;/a&gt;.  I have one that I use for non-technical meetings, as it has defined sections for attendees, action items and such.  I tend to sketch out diagrams (schematics, sequence diagrams, etc) in technical meetings, so I take something with a grid instead of the Rhodia pad to those.  The Rhodia's made with Clairefontaine paper, so if you enjoy the physical act of writing, you'll really like it.  The paper also works well with gel or rollerball pens, as it doesn't let the ink &quot;bleed&quot; and spread out.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-25T17:20:06.673" />
  <row Id="21500" PostTypeId="2" ParentId="21486" CreationDate="2010-11-25T17:21:23.043" Score="2" ViewCount="" Body="&lt;p&gt;Possibly related: &lt;a href=&quot;http://programmers.stackexchange.com/questions/20289/mid-level-it-lead/20292#20292&quot;&gt;Mid level IT lead&lt;/a&gt;. I voted for the answer to quit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously it depends on what &quot;good money&quot; is, since salary is not entirely relative.  My guess, if you are young, is that you can probably go job-searching and find someone to bring you over at the same or a better salary and into a position where you can learn more.  That's because most companies base your starting salary on your salary history.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I was in a position that was set me up very well long term &amp;mdash; CTO of a promising company, etc. &amp;mdash; I would not mind if I coded or not.  I suppose that's personal opinion, but in that position, I would enjoy the ability to architect, make product decisions on a high level, and other things which are probably even better for experience than raw coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the reason I wasn't coding was simply because the company didn't offer learning experience in some other way, then I would definitely be looking for another job that would take me in at a similar salary.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-11-25T17:48:03.333" LastActivityDate="2010-11-25T17:48:03.333" />
  <row Id="21501" PostTypeId="2" ParentId="21496" CreationDate="2010-11-25T17:26:22.903" Score="3" ViewCount="" Body="&lt;p&gt;I evaluate.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Firstly I look for bugs that we've raised against that library and see if they've been fixed.&lt;/li&gt;&#xA;&lt;li&gt;Secondly I look for any other bug fixes in the lib that we could benefit from (perhaps something that is a possible corner case).&lt;/li&gt;&#xA;&lt;li&gt;Thirdly I look for improvements in the lib/API and then investigate the impact of changing our code to utilise that and the benfit tradeoff.  I've all too often in the past upgrade libs without actually utilising their new features, silly really!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I then weigh all of that up against staying with the existing lib.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Always&lt;/em&gt; test - hopefully your unit/integration tests will ensure that no major regressions occur.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-25T17:26:22.903" />
  <row Id="21502" PostTypeId="2" ParentId="21456" CreationDate="2010-11-25T17:26:33.380" Score="0" ViewCount="" Body="&lt;p&gt;Somewhere in my collection of stuff I'm sure my wife wishes I'd just throw away, I have a copy of Emacs on QIC-40 Tape. I paid $50 to get it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I couldn't #@%#$#$%@^#%# stand it then, I can't stand it now. I'm not saying it isn't a great editor for some, but for me .. it just gets in the way more than anything. It's original inception was to work around &lt;a href=&quot;http://www.jargon.net/jargonfile/c/cokebottle.html&quot; rel=&quot;nofollow&quot;&gt;coke bottle keys&lt;/a&gt;, and it did that very well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you run a program, any program, you do it in the hopes that it increases (or at least, doesn't hinder) your productivity. If it doesn't work for you, don't use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Trust me, you aren't the problem.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-25T17:26:33.380" CommentCount="1" />
  <row Id="21503" PostTypeId="2" ParentId="21496" CreationDate="2010-11-25T17:29:33.643" Score="3" ViewCount="" Body="&lt;p&gt;The major problem with third party libraries, is that you need to retest YOUR application when you update them, before it can go in production.  So unless you have a reported bug, which require updating a library, you don't touch them until you have the time to do a complete quality assurance cycle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is usually done when releasing a new version.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would, however, suggest that you have a test suite in place for continuous build that allow you to update the libraries in the development branch and do so automatically.  This will ensure that you discover early when it breaks, so you can file bugreports to the project.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-25T17:29:33.643" />
  <row Id="21504" PostTypeId="1" AcceptedAnswerId="21510" CreationDate="2010-11-25T17:31:37.763" Score="6" ViewCount="286" Body="&lt;p&gt;Sometimes, maybe during a code review or a design meeting arguments can get heated and it's easy to insult someone unintentionally. These things can in turn create a tense atmosphere in the workplace or in a team which will sooner or later harm the co-operation between colleagues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is: what are some good methods for resolving these tensions? What can you do - on a personal level - to help these issues?&lt;/p&gt;&#xA;" OwnerUserId="8454" LastActivityDate="2010-11-27T06:45:16.823" Title="Conflict resolution between programmers" Tags="&lt;work-environment&gt;&lt;team&gt;" AnswerCount="8" CommentCount="9" FavoriteCount="5" />
  <row Id="21505" PostTypeId="2" ParentId="21463" CreationDate="2010-11-25T17:31:47.527" Score="1" ViewCount="" Body="&lt;p&gt;I do 100% agree with Robert Harveys suggestion here, it's not just about making tests pass, you need to keep the overall goal in mind too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a solution to your painpoint of &quot;it's only verified to work with a given set of inputs&quot; I'd propose using data driven tests, such as xunit theory. The power behind this concept is that it allows you to easily create Specifications of inputs to outputs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Factorials, a test would look like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    [Theory]&#xA;    [InlineData(0, 1)]&#xA;    [InlineData( 1, 1 )]&#xA;    [InlineData( 2, 2 )]&#xA;    [InlineData( 3, 6 )]&#xA;    [InlineData( 4, 24 )]&#xA;    public void Test_Factorial(int input, int expected)&#xA;    {&#xA;        int result = Factorial( input );&#xA;        Assert.Equal( result, expected);&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You could even implement a test-data provide (that returns &lt;code&gt;IEnumerable&amp;lt;Tuple&amp;lt;xxx&amp;gt;&amp;gt;&lt;/code&gt;) and encode a mathematic invariant, such as repeatedly dividing by n will yield n-1).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find this tp be a very powerful way of testing.&lt;/p&gt;&#xA;" OwnerUserId="1354" LastActivityDate="2010-11-25T17:31:47.527" />
  <row Id="21506" PostTypeId="2" ParentId="21475" CreationDate="2010-11-25T17:32:31.333" Score="3" ViewCount="" Body="&lt;p&gt;Embrace Lisp.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the same way that Java contains a Javascript engine as part of the standard runtime, which is scriptable with JSR-233, it would be really nice to have a well-integrated Lisp engine in the JRE.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-25T17:32:31.333" CommentCount="2" />
  <row Id="21507" PostTypeId="2" ParentId="21496" CreationDate="2010-11-25T17:36:49.537" Score="1" ViewCount="" Body="&lt;p&gt;I would think about updating all the libraries of a project right before or just after a release. This however could get out of hand if you rely on more than 10 or 15 libraries, in which case some kind of update checking mechanism would help out greatly. The advantage of this is that you have a time dedicated to testing your libraries and can fix any issues in one pass. You also don't have to constantly keep track of updates from every single library, you just check on a certain day for any updates. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also go against any kind of auto updating feature in even a dev branch. It would be frustrating if in the middle of me working on something the project broke because a library auto updated itself, or I all of a sudden got Depreciation warnings for using an API that just got superseded by something else. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-11-25T17:36:49.537" />
  <row Id="21508" PostTypeId="2" ParentId="21496" CreationDate="2010-11-25T17:51:49.723" Score="1" ViewCount="" Body="&lt;p&gt;You have to ask, what do you really want out of the update? Most security fixes are actually trivial patches, in the form of fixing:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Off by one errors where arbitrary code can be copied to an unused space in a buffer&lt;/li&gt;&#xA;&lt;li&gt;Dangling pointers, or something else that triggers undefined but (rather) deterministic behavior&lt;/li&gt;&#xA;&lt;li&gt;Bugs that permit some kind of DoS&lt;/li&gt;&#xA;&lt;li&gt;Bugs that accidentally make snooping of private data easy&lt;/li&gt;&#xA;&lt;li&gt;Math blunders&lt;/li&gt;&#xA;&lt;li&gt;Maintainers touching stuff they shouldn't (Debian SSL bug, anyone?)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you look over most CVE's in the last five years, the patches that fix them are typically quite trivial, if you are using open libraries, which I hope you are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you have actual bug fixes, which you probably want, but perhaps you already fixed it yourself. If it isn't broken, don't fix it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, you have new features .. and perhaps deprecated features. You need to examine those release notes and diffs carefully. Can you use them, even if they break an API that lots of other stuff depends on? If yes, it is time for surgery .. if no, cherry pick what you want and move on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some may disagree with me, but I refuse to use a library without source code. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-25T17:51:49.723" CommentCount="1" />
  <row Id="21509" PostTypeId="2" ParentId="21380" CreationDate="2010-11-25T17:54:32.407" Score="1" ViewCount="" Body="&lt;p&gt;A Wiki.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Modern Wikis give you version control, simple but powerful editing, and just require a browser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will then need a special contents page containing listing the links to other pages allowing you to generate a full document by expanding all the wikipages linked to in the contents page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep it simple!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(note:  We don't use this approach as we don't fit your description, but I would encourage you to look into doing it like this)&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-25T17:54:32.407" CommentCount="2" />
  <row Id="21510" PostTypeId="2" ParentId="21504" CreationDate="2010-11-25T17:58:11.030" Score="15" ViewCount="" Body="&lt;p&gt;A couple of references may be useful here if you haven't seen these previously:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.kilmann.com/conflict.html&quot; rel=&quot;nofollow&quot;&gt;Thomas-Kilmann Conflict Mode Instrument&lt;/a&gt; has 5 different approaches to conflict resolution:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;&lt;p&gt;Competing is assertive and uncooperative—an individual pursues&#xA;  his own concerns at the other person's&#xA;  expense. This is a power-oriented mode&#xA;  in which you use whatever power seems&#xA;  appropriate to win your own&#xA;  position—your ability to argue, your&#xA;  rank, or economic sanctions. Competing&#xA;  means &quot;standing up for your rights,&quot;&#xA;  defending a position which you believe&#xA;  is correct, or simply trying to win.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Accommodating is unassertive and cooperative—the complete opposite of&#xA;  competing. When accommodating, the&#xA;  individual neglects his own concerns&#xA;  to satisfy the concerns of the other&#xA;  person; there is an element of&#xA;  self-sacrifice in this mode.&#xA;  Accommodating might take the form of&#xA;  selfless generosity or charity,&#xA;  obeying another person's order when&#xA;  you would prefer not to, or yielding&#xA;  to another's point of view.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Avoiding is unassertive and uncooperative—the person neither&#xA;  pursues his own concerns nor those of&#xA;  the other individual. Thus he does not&#xA;  deal with the conflict. Avoiding might&#xA;  take the form of diplomatically&#xA;  sidestepping an issue, postponing an&#xA;  issue until a better time, or simply&#xA;  withdrawing from a threatening&#xA;  situation.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Collaborating is both assertive and cooperative—the complete opposite&#xA;  of avoiding. Collaborating involves an&#xA;  attempt to work with others to find&#xA;  some solution that fully satisfies&#xA;  their concerns. It means digging into&#xA;  an issue to pinpoint the underlying&#xA;  needs and wants of the two&#xA;  individuals. Collaborating between two&#xA;  persons might take the form of&#xA;  exploring a disagreement to learn from&#xA;  each other's insights or trying to&#xA;  find a creative solution to an&#xA;  interpersonal problem.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Compromising is moderate in both assertiveness and cooperativeness. The&#xA;  objective is to find some expedient,&#xA;  mutually acceptable solution that&#xA;  partially satisfies both parties. It&#xA;  falls intermediate between competing&#xA;  and accommodating. Compromising gives&#xA;  up more than competing but less than&#xA;  accommodating. Likewise, it addresses&#xA;  an issue more directly than avoiding,&#xA;  but does not explore it in as much&#xA;  depth as collaborating. In some&#xA;  situations, compromising might mean&#xA;  splitting the difference between the&#xA;  two positions, exchanging concessions,&#xA;  or seeking a quick middle-ground&#xA;  solution.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/How_to_Win_Friends_and_Influence_People&quot; rel=&quot;nofollow&quot;&gt;How to Win Friends and Influence People&lt;/a&gt; has these ideas that may be useful:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Fundamental Techniques in Handling People&lt;/p&gt;&#xA;  &#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;Don't criticize, condemn, or complain.&lt;/li&gt;&#xA;  &lt;li&gt;Give honest and sincere appreciation.&lt;/li&gt;&#xA;  &lt;li&gt;Arouse in the other person an eager want.&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;  &#xA;  &lt;p&gt;Six Ways to Make People Like You&lt;/p&gt;&#xA;  &#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;Become genuinely interested in other people.&lt;/li&gt;&#xA;  &lt;li&gt;Smile.&lt;/li&gt;&#xA;  &lt;li&gt;Remember that a person's name is, to him or her, the sweetest and most important sound in any language.&lt;/li&gt;&#xA;  &lt;li&gt;Be a good listener. Encourage others to talk about themselves.&lt;/li&gt;&#xA;  &lt;li&gt;Talk in the terms of the other person's interest.&lt;/li&gt;&#xA;  &lt;li&gt;Make the other person feel important and do it sincerely.&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;  &#xA;  &lt;p&gt;Twelve Ways to Win People to Your Way of Thinking&lt;/p&gt;&#xA;  &#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;Avoid arguments.&lt;/li&gt;&#xA;  &lt;li&gt;Show respect for the other person's opinions. Never tell someone that he or she is wrong.&lt;/li&gt;&#xA;  &lt;li&gt;If you're wrong, admit it quickly and emphatically.&lt;/li&gt;&#xA;  &lt;li&gt;Begin in a friendly way.&lt;/li&gt;&#xA;  &lt;li&gt;Start with questions to which the other person will answer yes.&lt;/li&gt;&#xA;  &lt;li&gt;Let the other person do the talking.&lt;/li&gt;&#xA;  &lt;li&gt;Let the other person feel the idea is his/hers.&lt;/li&gt;&#xA;  &lt;li&gt;Try honestly to see things from the other person's point of view.&lt;/li&gt;&#xA;  &lt;li&gt;Sympathize with the other person.&lt;/li&gt;&#xA;  &lt;li&gt;Appeal to noble motives.&lt;/li&gt;&#xA;  &lt;li&gt;Dramatize your ideas.&lt;/li&gt;&#xA;  &lt;li&gt;Throw down a challenge; don't talk negatively when a person is absent; talk only about the positive.&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-25T17:58:11.030" CommentCount="2" />
  <row Id="21511" PostTypeId="2" ParentId="21475" CreationDate="2010-11-25T17:58:58.480" Score="0" ViewCount="" Body="&lt;p&gt;Java should really have &lt;a href=&quot;http://en.wikipedia.org/wiki/Software_transactional_memory&quot; rel=&quot;nofollow&quot;&gt;Software Transactional Memory&lt;/a&gt;, because it greatly simplifies concurrency issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that, it would be really nice to have functional lambdas.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-25T17:58:58.480" />
  <row Id="21512" PostTypeId="1" AcceptedAnswerId="21516" CreationDate="2010-11-25T18:02:13.113" Score="5" ViewCount="243" Body="&lt;p&gt;I am a senior in high school planning on majoring in Computer Science in college. I have been programming for a number of years. However, I have no idea how I stack up to professionals. What would be a way for me to measure my skills in specific languages? I currently use Java, C#, Ruby, and C.&lt;/p&gt;&#xA;" OwnerUserId="7682" LastActivityDate="2010-11-26T02:02:58.807" Title="How to test my knowledge?" Tags="&lt;programming&gt;&lt;skills&gt;&lt;students&gt;" AnswerCount="8" FavoriteCount="1" />
  <row Id="21513" PostTypeId="2" ParentId="21504" CreationDate="2010-11-25T18:06:49.557" Score="1" ViewCount="" Body="&lt;p&gt;It is never easy to insult someone unintentionally, unless you are in a strange country with a very different culture. If both of you are working at the same place, on the same project, I'm quite sure that both of you also speak the same language. This means, both of you are likely acculturated to the same beat. Note, I did say likely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a personal level, you can &lt;strong&gt;&lt;em&gt;think before speaking&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you realize that you've made a mistake (we all make them), make every attempt to make reparation. The words &quot;I was wrong&quot; go a long way in having an apology accepted. This is because the person you offended likely thinks that you are unreasonable, so .. well .. make every attempt to convince them that you are reasonable :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes this has to be a passive process, it depends on the other person. You might consider asking them for advice on something, including them in some activity, or otherwise saying &quot;It wasn't personal&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I meet you and start conversing with you, I'm placing an implicit trust in you that you won't do something bad to me. Just do your best to demonstrate the fact that you are a good natured person, who is flawed just like everyone else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, you could just control your temper :)&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-25T18:25:35.390" LastActivityDate="2010-11-25T18:25:35.390" />
  <row Id="21514" PostTypeId="2" ParentId="21504" CreationDate="2010-11-25T18:09:08.383" Score="2" ViewCount="" Body="&lt;p&gt;Reading about human relations is an excellent suggestion, and that should be done.  But for those people who think they are already perfect...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Expectations should be clearly set by the Team Leader or Architect about the manner and decorum in which meetings must be undertaken.  While open discussion must always be encouraged, it is also important that the discourse remain civil.  Things such as Ad-Homineum attacks should be expressely forbidden, and strictly enforced.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as all of the team members are reasonable people, this works well.  In fact, teams like that seldom need many rules.  This conversation is not about them; this conversation is about the teams having one or two difficult personalities.  We've all worked on those teams, and my guess is we've all found a way to get along (or the problem personality finds another place to work).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you work with a team where everyone is reasonable, but fights still break out during meetings, it might be time to reexamine your assumptions about the meeting process, or explore other reasons why people might be discontented (unrealistic workload expectations, for example). &lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-25T18:09:08.383" />
  <row Id="21515" PostTypeId="2" ParentId="21512" CreationDate="2010-11-25T18:15:43.417" Score="3" ViewCount="" Body="&lt;p&gt;Join to a team that do a real project, if you can. This is the best way.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-11-25T18:15:43.417" CommentCount="11" />
  <row Id="21516" PostTypeId="2" ParentId="21512" CreationDate="2010-11-25T18:16:18.690" Score="9" ViewCount="" Body="&lt;p&gt;Try answering a few questions on StackOverflow.  You'll find out soon enough.  On second thought, never mind.  I can't answer most of the questions on StackOverflow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Don't compare yourself to others.&lt;/em&gt;  The only real metric is &quot;Do I have enough credentials to land a job.&quot; The rest is just a continuum of learning.  Everyone's skill sets are different.  Just keep learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to whether or not you have good skills in a particular language, try building a non-trivial, working application.  You can judge the quality of the application a number of ways:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Is the code clear, concise, and easily understood by others?&lt;/li&gt;&#xA;&lt;li&gt;Is the code testable?  Can I write unit tests against it?&lt;/li&gt;&#xA;&lt;li&gt;Is the code maintainable?  Can I easily modify it without breaking things?&lt;/li&gt;&#xA;&lt;li&gt;Does the code follow sound design principles and methodologies?&lt;/li&gt;&#xA;&lt;li&gt;Is my application easy to use by others?&lt;/li&gt;&#xA;&lt;li&gt;Does the code perform well?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;And so on.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-25T18:26:13.220" LastActivityDate="2010-11-25T18:26:13.220" CommentCount="9" />
  <row Id="21517" PostTypeId="1" CreationDate="2010-11-25T18:16:31.403" Score="0" ViewCount="107" Body="&lt;p&gt;In vb.net how do i begin to make a small database system?&#xA;what are steps that i have to follow?&#xA;i am new for making databases in vb, give me a source to follow&lt;/p&gt;&#xA;" LastActivityDate="2010-11-25T18:16:31.403" ClosedDate="2010-11-25T18:46:09.100" Title="small database application in vb" Tags="&lt;programming&gt;" CommentCount="6" />
  <row Id="21518" PostTypeId="2" ParentId="21512" CreationDate="2010-11-25T18:20:31.773" Score="0" ViewCount="" Body="&lt;p&gt;I would say that you shouldn't worry about how you compare to others. Programming has the nice quality that your work can stand on its own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if for some reason you must absolutely know how good you are, join some software project. Either join the workforce or some open-source project. You'll soon find out how good you are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But don't expect people to tell it to you explicitly.&lt;/p&gt;&#xA;" OwnerUserId="8454" LastActivityDate="2010-11-25T18:20:31.773" CommentCount="1" />
  <row Id="21520" PostTypeId="1" AcceptedAnswerId="21524" CreationDate="2010-11-25T18:26:08.373" Score="3" ViewCount="62" Body="&lt;p&gt;I am more of a coder than a server admin. But, I have to do lots of server admin tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I change my hosting company I have to learn a lot of stuff, quickly just to ensure I can find my way about the linux flavour/cpanel version/VPS etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would love it if there was a hosting company out there that offered 'custom training days'. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd simply pay them a visit. Spend a day / half-a-day meeting up and chatting to server-geeks about what's going on under the hood of the current server / config. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The hosting company could bring the client up to speed in one go. A half hour of face to face chat can save hours and hours of support tickets over the long term, with a drip, drip, back and forth series of questions over a number of years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do companies offer this kind of thing?&lt;/p&gt;&#xA;" OwnerUserId="6720" LastEditorUserId="6720" LastEditorDisplayName="" LastEditDate="2010-11-26T16:21:25.573" LastActivityDate="2010-11-26T16:21:25.573" ClosedDate="2010-11-26T10:03:47.780" Title="Do any hosting companies offer training to their clients?" Tags="&lt;support&gt;&lt;hosting&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="21521" PostTypeId="2" ParentId="21504" CreationDate="2010-11-25T18:36:52.727" Score="1" ViewCount="" Body="&lt;p&gt;From the other side, if you're the one who is the target of the &quot;insult&quot;, don't take it personally.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about the comment, as there is usually some truth to it, and see what you can do to change the other persons opinion in a positive way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they don't like your coding style, and want to make changes, are the changes actually better?  Maybe it wasn't meant as an insult, but as an attempt to educate.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if they are just being a jerk, and their insult unfounded, others will see through it.  There is no need to lower oneself to the same level.&lt;/p&gt;&#xA;" OwnerUserId="2431" LastActivityDate="2010-11-25T18:36:52.727" />
  <row Id="21522" PostTypeId="2" ParentId="21512" CreationDate="2010-11-25T18:37:19.857" Score="0" ViewCount="" Body="&lt;p&gt;spoj.pl&#xA;topcoder.com&lt;/p&gt;&#xA;" OwnerUserId="943" LastActivityDate="2010-11-25T18:37:19.857" />
  <row Id="21523" PostTypeId="2" ParentId="21467" CreationDate="2010-11-25T18:50:12.357" Score="1" ViewCount="" Body="&lt;p&gt;The thing is, that works very well with technically proficient, confident users.  However, I think you'd run into a world of hurt with non-proficient users who frequently, say, mis-click, or change a setting other than the one they intend, and suchlike - especially if the dialog that you just closed without a confirmation is hard to find for non-proficient users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Less &quot;are you sure?&quot; dialogs would be great for me - but it would kill my mother.&lt;/p&gt;&#xA;" OwnerUserId="8553" LastActivityDate="2010-11-25T18:50:12.357" />
  <row Id="21524" PostTypeId="2" ParentId="21520" CreationDate="2010-11-25T18:51:21.640" Score="1" ViewCount="" Body="&lt;p&gt;We do. We offer managed services that (in most cases) completely abstracts you from whatever you signed up to use. We're also looking at monthly screen casts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The battle is, the people who make your user interface know every system through and through, so there is quite a bit of assumption which is the mother of all bad designs. Then you have clients who want very complicated needs to just work, without realizing their complexity. That's just hosts who WANT to make things easy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The clue lies in the support. If they say &quot;I fixed it&quot;, great. If they say &quot;This is what I fixed, what I did, why I did it&quot;, better. If they say &quot;We provide this and this, but your request is above and beyond&quot; .. move on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In almost all cases, hiring (or making use of) a good system admin is a good idea. Think about it .. you spend 20 x 20 x 20 moving from place to place, where you could have spent 40 and found a nice home at the second place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Web hosts want to sell management, and our industry is cut throat. Think about it, you have one domain, and 100,000 + companies ready to sell you hosting. We, indeed floor prices in hopes of getting something else out of you. Some even make simple things inordinately difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not quite happy about the state of my industry, but it is what it is :)&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-25T18:51:21.640" CommentCount="3" />
  <row Id="21525" PostTypeId="2" ParentId="21486" CreationDate="2010-11-25T18:55:16.190" Score="1" ViewCount="" Body="&lt;p&gt;Since you are at the start of your career, the thing you need to value the most is getting good experience.  There are jobs that pay more because the job is mundane, and its a way to reduce staff turnover in that role, but these are the jobs for someone else.  You should want to work with people you will learn from.  they need to be more experienced than you and willing to pass on their knowledge. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now in respect to this particular job, working out if the other, non programming expertise you gain for performing the role make you a better, more rounded person is something that only you can really judge.  I would strongly advise against accepting money in lieu of experience, as it will hurt you in the long term. &lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-25T18:55:16.190" />
  <row Id="21526" PostTypeId="1" AcceptedAnswerId="21528" CreationDate="2010-11-25T19:04:08.587" Score="3" ViewCount="139" Body="&lt;p&gt;First off,  thanks for reading the question.  I understand that this would theoretically be best asked in the &lt;a href=&quot;http://area51.stackexchange.com/proposals/2241/software-quality-assurance&quot;&gt;SQA stack area&lt;/a&gt; - but - seeing as how that doesn't officially exist yet, maybe this was the most appropriate place for it for now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking into tracking down a certification in Software Quality, however, there are so many different awarding bodies and certifications that telling the difference between them is difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So far I've found:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&lt;li&gt;Six Sigma - a QA process, originally founded by Motorola &amp; not limited to software. (in fact I'm not sure if it even covers software development).  Based on a series of 'belts' (black being the best, I assume it starts at green? or white?)&lt;/li&gt;&#xA;&lt;li&gt;ASQ - American Society of Quality - offers numerous certifications in quality&lt;/li&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;CQA - Quality Auditor&lt;/li&gt;&#xA;&lt;li&gt;CQE - Quality Engineer&lt;/li&gt;&#xA;&lt;li&gt;CQIA - Quality Improvement Associate&lt;/li&gt;&#xA;&lt;li&gt;CQI - Quality Inspector&lt;/li&gt;&#xA;&lt;li&gt;CQPA - Quality Process Analyst&lt;/li&gt;&#xA;&lt;li&gt;CQT - Quality Technician&lt;/li&gt;&#xA;&lt;li&gt;CRE - Reliability Engineer&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;li&gt;QAI Global&lt;/li&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Software Testing&lt;/li&gt;&#xA;&lt;li&gt;Software Quality Assurance&lt;/li&gt;&#xA;&lt;li&gt;Process Engineering&lt;/li&gt;&#xA;&lt;li&gt;Process Management&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;With all the different designations and levels, I'm having trouble understanding the differences and the 'start point' and progression between the levels.  (Are they a hierarchy or are they in parallell?)&lt;/p&gt;&#xA;" OwnerUserId="5499" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-25T19:14:59.527" LastActivityDate="2010-11-25T19:18:12.437" Title="Differences between Software Quality certification levels?" Tags="&lt;self-improvement&gt;&lt;code-quality&gt;&lt;training&gt;&lt;certification&gt;&lt;qualifications&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="1" />
  <row Id="21527" PostTypeId="2" ParentId="21467" CreationDate="2010-11-25T19:17:52.187" Score="3" ViewCount="" Body="&lt;p&gt;If there's no OK/Cancel, there better be Undo.&lt;/p&gt;&#xA;" OwnerUserId="6735" LastActivityDate="2010-11-25T19:17:52.187" />
  <row Id="21528" PostTypeId="2" ParentId="21526" CreationDate="2010-11-25T19:18:12.437" Score="1" ViewCount="" Body="&lt;p&gt;QAI, ASQ, and ISTQB (another big one you didn't mention) are all parallel (six sigma is a bit of a different beast, but not a gradiation of any of the others).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a &lt;em&gt;bit&lt;/em&gt; of a controversy in the testing / qa world these days on the value of certifications - one front calls them a money making machine with little value and the other cites the need for a common baseline of testing terms and knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I won't hijack your question to go any deeper :}&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-11-25T19:18:12.437" CommentCount="3" />
  <row Id="21529" PostTypeId="2" ParentId="21412" CreationDate="2010-11-25T19:26:14.353" Score="3" ViewCount="" Body="&lt;p&gt;By the sounds of it, you would fail my interview technique as well. At interview I expect candidates to write code on the whiteboard.  It might seem tough, but it allows candidates to show that they do know the language, and are not relying on intelsense and google to program.  Lets face it, if you are claiming on your CV to have 3.5 years of PHP experience, then at interview I want to see some evidence of your experience. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also use the process to identify people that think logically about their designs, write code that actually implements their design, and when faced with a new constraint understand how it affects their design, and what they need to adjust to accommodate this new information. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whilst lots of companies do use the 20 question interview method, this method is a poor differentiator in identifying who the best programmers are, and good at identifying who has been reading a lot of books recently.  If you are constantly facing this interview technique, start reading.  You should want a 95-100% good answer rate on these questions to get offered the job, however it will not make you a better programmer on its own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The major problem with &quot;&lt;em&gt;programming by google&lt;/em&gt;&quot; is that whilst you may deliver code that works, but its quite possible that you have no understanding of it increasing the risk of subtle bugs and undesirable consequences. It will certainly take longer to write the code and your source code will have the same consistency as the internet making it much harder for your replacement to support your code in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whilst I'm sure that my answer is not the warm fuzzy reassurance that you may have wanted, hopefully it will help you to understand what you need to do differently to gain the knowledge and experience, or perhaps, may help you to understand why a career in a different sector may be a better choice for you.  good luck for the future.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-25T19:26:14.353" />
  <row Id="21530" PostTypeId="2" ParentId="21486" CreationDate="2010-11-25T19:50:21.673" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I'd question the value of your e-commerce experience in this place.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems that &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You have no access to source code, so you're just configuring stuff like a user&lt;/li&gt;&#xA;&lt;li&gt;You have no joy in the work&lt;/li&gt;&#xA;&lt;li&gt;You are not surrounded by experts who are sharing their knowledge&lt;/li&gt;&#xA;&lt;li&gt;You have a good salary&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;As &lt;a href=&quot;http://stackoverflow.com/users/484342/samo&quot;&gt;I have said before&lt;/a&gt;, money is a short-term motivator and ultimately you should aim to be happy in your work. The list above seems to clearly state that you should be looking elsewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&quot;But, Gary! The e-commerce experience I could be gaining here!&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Phooey. If you're suitably motivated, you can pick up all you need to know about e-commerce to get your first site off the ground in less than a month. You don't need to know how to configure some (by the sound of it) bloated and cumbersome platform - you would be better of learning good design principles and how to plug in a third-party payment clearing package.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-25T20:14:59.117" LastActivityDate="2010-11-25T20:14:59.117" />
  <row Id="21531" PostTypeId="2" ParentId="20586" CreationDate="2010-11-25T19:51:17.500" Score="3" ViewCount="" Body="&lt;p&gt;A very nice place to start using Lisp is inside the Emacs editor, where it can be used to redefine just about anything.  You want the 'e' key to insert the time of date, just write a small Lisp snippet to generate the string and bind it to the e key.  Done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This will also allow you to actually USE what you learn in a daily setting, if you happen to use a plain editor during the day.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-25T19:51:17.500" CommentCount="11" />
  <row Id="21532" PostTypeId="2" ParentId="8547" CreationDate="2010-11-25T20:27:57.007" Score="1" ViewCount="" Body="&lt;p&gt;With startups, there is always too many &quot;ifs&quot; especially if they are not backed by a major investor willing to pour in at least several million $ within next 3-5 years. And even then, it is widely known that most startups don't survive the first year (Paul Graham wrote extensively on this topic in the past).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can also confirm what others said about hours in a startup - they are not fixed and you end up working way, way more than 40h/week. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are one of the first developers, or a co-founder, expect to carry a lot of other hats too. Hate sys admin work? Don't know jack about product marketing and the phrase &quot;Crossing the Chasm&quot; doesn't ring any bells? Doing live support for hundreds of users isn't your idea of a great weekend? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Then think twice about your next move.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5185" LastEditorUserId="5185" LastEditorDisplayName="" LastEditDate="2010-11-25T21:07:17.470" LastActivityDate="2010-11-25T21:07:17.470" />
  <row Id="21533" PostTypeId="2" ParentId="21496" CreationDate="2010-11-25T20:31:58.397" Score="0" ViewCount="" Body="&lt;p&gt;This would depend on your release shedules.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But my advice would be to install a set of libraries on all of the developers machines. Consider it a gold standard if you wish to call it something, then start you development for that release.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only once the release has been deployed and you are in the post release phase, reassess your libraries, their versions and features. If they offer some significant improvements or new functionality then install then prior to the start of the next development cycle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only install new versions if there is a major issue or bug that must be fixed before deploying the software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will mean you will miss some versions but it should save some headaches and versioning issues allowing you to concentrate on developing your application. &lt;/p&gt;&#xA;" OwnerUserId="4960" LastActivityDate="2010-11-25T20:31:58.397" />
  <row Id="21534" PostTypeId="1" AcceptedAnswerId="21536" CreationDate="2010-11-25T20:33:17.773" Score="4" ViewCount="205" Body="&lt;p&gt;I think every single time I've used &lt;code&gt;Math.Ceiling&lt;/code&gt; or its language variant, I've &lt;em&gt;always&lt;/em&gt; had to cast it to an integer. I mean... that's the whole point, isn't it? To get a whole number. So why doesn't it just return an &lt;code&gt;int&lt;/code&gt;?&lt;/p&gt;&#xA;" OwnerUserId="7390" LastActivityDate="2010-11-26T08:01:05.910" Title="Does anyone use Ceiling and *not* immediately cast it to an integer?" Tags="&lt;math&gt;&lt;language-agnostic&gt;" AnswerCount="2" />
  <row Id="21535" PostTypeId="1" AcceptedAnswerId="21537" CreationDate="2010-11-25T20:38:21.680" Score="22" ViewCount="1036" Body="&lt;p&gt;Almost all developers who work for a large corporation find themselves on the wrong side of site blocking software. It can be both frustrating (&lt;em&gt;&quot;Just let me read that damn blog!&quot;&lt;/em&gt;) and helpful (&lt;em&gt;&quot;Woah! Dodged a bullet with that site&quot;&lt;/em&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your opinion, what is the right level of blocking to apply to developers and why?&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-27T05:13:11.277" Title="What is the right level of site blocking for you as a developer?" Tags="&lt;experience&gt;&lt;best-practices&gt;&lt;software&gt;&lt;site-blocking&gt;" AnswerCount="11" CommentCount="1" FavoriteCount="1" />
  <row Id="21536" PostTypeId="2" ParentId="21534" CreationDate="2010-11-25T20:43:32.667" Score="8" ViewCount="" Body="&lt;p&gt;For one, REALs/FLOATs usually have a much greater range. The result might not fit into an INTEGER.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-25T20:43:32.667" CommentCount="4" />
  <row Id="21537" PostTypeId="2" ParentId="21535" CreationDate="2010-11-25T20:47:03.443" Score="100" ViewCount="" Body="&lt;h2&gt;No site blocking.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;If my projects are delivered on time and my productivity is not suffering, I don't see any reason to block anything (except - if you really &lt;em&gt;must&lt;/em&gt; block something - well known spyware/malware sites).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't really have anything else to add except that.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;We are professionals, not children.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2815" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-25T21:10:48.070" LastActivityDate="2010-11-25T21:10:48.070" CommentCount="15" />
  <row Id="21538" PostTypeId="1" AcceptedAnswerId="21543" CreationDate="2010-11-25T20:47:21.373" Score="7" ViewCount="191" Body="&lt;p&gt;Currently I am working on a code best described as C code living in C++ body. However I haven't been able to convince power that be to re-factor on ground of ease of maintenance. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What in your opinion is the best argument for refactoring the code. &lt;/p&gt;&#xA;" OwnerUserId="8073" LastEditorUserId="8073" LastEditorDisplayName="" LastEditDate="2010-11-25T20:59:04.247" LastActivityDate="2010-11-25T22:05:22.063" Title="Best supporting argument for refactoring" Tags="&lt;refactoring&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="21539" PostTypeId="2" ParentId="21387" CreationDate="2010-11-25T20:47:48.857" Score="0" ViewCount="" Body="&lt;p&gt;The best way, as with all programming not just large chunks of uncommented code, is to break it down into pieces. This is both something you should do in your head as well as visually in the code. This may mean adding big bold comments or multiple line breaks. This helps while scrolling through it to see the pieces. Try to find the logical chunks of code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, as you understand bits, comment them for what you know at that time, possibly putting in notes about about something you don't understand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also recommend not trying to understand the entire piece right from the start. Instead try to understand the pieces that you need to know right now and work on the rest later.&lt;/p&gt;&#xA;" OwnerUserId="5600" LastActivityDate="2010-11-25T20:47:48.857" />
  <row Id="21540" PostTypeId="2" ParentId="21535" CreationDate="2010-11-25T20:48:50.010" Score="1" ViewCount="" Body="&lt;p&gt;Personally, I prefer non blocked access, and developers you can depend on in way of work. When they're not working on something they can surf as much as they like.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunatelly, that doesn't always go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, you might block some ... harmful sites (obviously), xxx and such, general (non programming related) news sites, facebook (I can't think of one reason where it could be useful during work) ... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;but generally, do keep it open, and work on trying to establish a good working atmosphere.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-25T20:48:50.010" CommentCount="14" />
  <row Id="21541" PostTypeId="2" ParentId="21467" CreationDate="2010-11-25T20:49:47.713" Score="1" ViewCount="" Body="&lt;p&gt;The role of the confirmation dialog is for the user to CONFIRM that the changes he made are the ones that he intended to and he didn't changed something unintentionally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a world with no OK buttons you must ensure that either:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The user makes always the right choices [yeah, right]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The changes are not irreversible&lt;/li&gt;&#xA;&lt;li&gt;The undo operation is simple&lt;/li&gt;&#xA;&lt;li&gt;Once a change is done without confirmation from the user, the user is aware of its effects - in a short after. You don't want the user to find out that the change he made unintentionally, 6 weeks ago, had unwanted effects&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So, in conclusion, I don't think that confirmation dialogs prevents user from taking the wrong decision or doing something unintentionally but at least it offers another layer of protection for the end user. However, for a user with a lot of experience, this might be annoying. &lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-11-25T20:49:47.713" CommentCount="1" />
  <row Id="21542" PostTypeId="2" ParentId="21535" CreationDate="2010-11-25T20:51:03.327" Score="30" ViewCount="" Body="&lt;h2&gt;No blocking at all.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Good developers&lt;/strong&gt;&lt;br&gt;&#xA;Those will get the job done, they know how to find information quickly and they also know how to use that information. Of course if you don't give them enough to do, they'll waste their time over at the Stackoverflow Chatrooms :P&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Bad developers&lt;/strong&gt;&lt;br&gt;&#xA;Well you can't do anything about them. If you block 90% of the interwebz just because they can't focus on their work, you'll only hinder the good developers... they will leave and you're left with the bad ones! (well in a perfect world...)&lt;/p&gt;&#xA;" OwnerUserId="4438" LastActivityDate="2010-11-25T20:51:03.327" CommentCount="3" />
  <row Id="21543" PostTypeId="2" ParentId="21538" CreationDate="2010-11-25T20:56:42.840" Score="15" ViewCount="" Body="&lt;p&gt;The only way to get a business to agree to a refactor is to show them it will save them money. I dont mean just tell them, you need to be able to say we will save x days on bug type y saving us z pounds.Or in terms of savings when it comes to adding features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's all about the money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: I'm assuming this code is now live or late stage development. Refactoring during dev is a whole different question.&lt;/p&gt;&#xA;" OwnerUserId="5148" LastEditorUserId="5148" LastEditorDisplayName="" LastEditDate="2010-11-25T21:52:45.587" LastActivityDate="2010-11-25T21:52:45.587" CommentCount="3" />
  <row Id="21544" PostTypeId="2" ParentId="20363" CreationDate="2010-11-25T20:58:22.000" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=hQVTIJBZook&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=hQVTIJBZook&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;JavaScript: The Good Parts&lt;/strong&gt; &lt;em&gt;by&lt;/em&gt; Doug Crockford&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;JavaScript is a language with more&#xA;  than its share of bad parts. It went&#xA;  from non-existence to global adoption&#xA;  in an alarmingly short period of time.&#xA;  It never had an interval in the lab&#xA;  when it could be tried out and&#xA;  polished. JavaScript has some&#xA;  extraordinarily good parts. In&#xA;  JavaScript there is a beautiful,&#xA;  highly expressive language that is&#xA;  buried under a steaming pile of good&#xA;  intentions and blunders. The best&#xA;  nature of JavaScript was so&#xA;  effectively hidden that for many years&#xA;  the prevailing opinion of JavaScript&#xA;  was that it was an unsightly,&#xA;  incompetent abomination. This session&#xA;  will expose the goodness in&#xA;  JavaScript, an outstanding dynamic&#xA;  programming language. Within the&#xA;  language is an elegant subset that is&#xA;  vastly superior to the language as a&#xA;  whole, being more reliable, readable&#xA;  and maintainable.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6300" LastActivityDate="2010-11-25T20:58:22.000" CommunityOwnedDate="2010-11-25T20:58:22.000" />
  <row Id="21545" PostTypeId="2" ParentId="21496" CreationDate="2010-11-25T21:02:10.450" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://svnbook.red-bean.com/en/1.5/svn.advanced.externals.html&quot; rel=&quot;nofollow&quot;&gt;Subversion Externals&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is great in that feature is that you can specify the revision you want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please note that updates will be slower if you have many externals.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-25T21:02:10.450" CommentCount="2" />
  <row Id="21546" PostTypeId="2" ParentId="21538" CreationDate="2010-11-25T21:04:55.270" Score="5" ViewCount="" Body="&lt;p&gt;Just do it as you go. In my experience, very few projects warrant a wholesale re-factoring of the code as a separate project. If there are pieces of the code you would never get to because they don't need modification, then the value of refactoring them is probably dubious anyway.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-25T21:04:55.270" CommentCount="1" />
  <row Id="21547" PostTypeId="2" ParentId="21538" CreationDate="2010-11-25T21:09:54.763" Score="2" ViewCount="" Body="&lt;p&gt;You don't tell the taxi driver how to drive his car.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't tell the hairdresser how to cut your hairs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't tell a coder how to work with his code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you think your code needs refactoring. Refactor it.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-25T21:09:54.763" CommentCount="4" />
  <row Id="21548" PostTypeId="2" ParentId="21538" CreationDate="2010-11-25T21:11:04.433" Score="0" ViewCount="" Body="&lt;p&gt;Most reasons are dealing with probabilities which makes them difficult to count, especially if the willingness to take risks is high. Better maintenance? If nothing goes wrong, you won't have to touch it. Better portability? If we never change the running system, we won't need it. Guaranteed future? Who knows if we will need the functionality of this code in a few years time at all? Code's a dead end? Who knows if we will ever build code on top of that crap. Security issues? We don't believe in evil hackers. Programmers having fun to make something bright and shiny? We don't pay them to have fun. Easier to manage? So we would need less qualified programmers, paying them less money? Ahh, now you've got a point...!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The last argument was a joke, but I think you will need to tackle your request with real benefits and depending on what's high on the agenda of your bosses you will need different arguments. My list above is maybe useful as a starting point...&lt;/p&gt;&#xA;" OwnerUserId="8316" LastActivityDate="2010-11-25T21:11:04.433" />
  <row Id="21549" PostTypeId="2" ParentId="21380" CreationDate="2010-11-25T21:11:29.300" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;What would be the best way to create documentation?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That would be an AI that is connected to your mind (boosted brain or whatever way to read your mind) while you're coding. It keep track of the relation between what you code, when you code, what's the ideas you're associating with structures and code flow. What you think this is going to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then once you've finished a coding or a debugging session, it goes through all the code you generated and write documentations where needed, using your mind patterns as data to put in comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would also generate a complete documentation of what you've synthetised about the domain and problem your application is trying to solve and describe the great lines of how it solves the problem(s).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would also attempt to gather domain knowledge from online data and attempt to add visual markers for corrections and suggestions while your thinking and coding, using augmented reality (directly in your brain I guess). It would adapt to your tolerance of interruption and sometimes even sort facebook for you while you're working.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know I read too much of &lt;a href=&quot;http://eclipsephase.com&quot; rel=&quot;nofollow&quot;&gt;Eclipse Phase&lt;/a&gt; literature, but that was exactly what I thought while reading the title question. &#xA;&lt;a href=&quot;http://spectrum.ieee.org/robotics/artificial-intelligence/moneta-a-mind-made-from-memristors/&quot; rel=&quot;nofollow&quot;&gt;This&lt;/a&gt; might be a starting point. Also think about Ghost In the Shell. I want a boosted brain. Now.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-11-25T21:11:29.300" />
  <row Id="21550" PostTypeId="2" ParentId="21496" CreationDate="2010-11-25T21:25:14.103" Score="0" ViewCount="" Body="&lt;p&gt;If your software is security-critical, you must update as soon as possible, no excuses. You don't want a little bug in a graphics library to make your whole program vulnerable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, when the lib is mature, it's &quot;If it ain't broke, don't fix it.&quot; for me. Sooner or later, I might need a feature of a later version and have no choice but to update, but til then, the effort is hard to justify. On the other hand, when I work with a relatively new lib or framework, like Grails or ExtJS, I stay up-to-date with the latest version because these products don't feel completely mature yet, so updating is likely to save me from running into on of those bugs the later version fixed.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-25T21:25:14.103" />
  <row Id="21551" PostTypeId="2" ParentId="21387" CreationDate="2010-11-25T21:28:34.207" Score="0" ViewCount="" Body="&lt;p&gt;I would start by using the &lt;a href=&quot;http://webpages.charter.net/edreamleo/leo_toc.html&quot; rel=&quot;nofollow&quot;&gt;Leo Editor&lt;/a&gt; in &lt;a href=&quot;http://webpages.charter.net/edreamleo/atShadow.html&quot; rel=&quot;nofollow&quot;&gt;@shadow mode&lt;/a&gt; with active use of &lt;a href=&quot;http://webpages.charter.net/edreamleo/intro.html#clones-views&quot; rel=&quot;nofollow&quot;&gt;cloned nodes&lt;/a&gt;. This allows one to add notes and comments for each section of code under study &lt;em&gt;without changing the code&lt;/em&gt;, and the annotations will always be in context, next to the code it's talking about. Here's an example workflow the docs:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;For example, when I fix a bug in Leo,&#xA;  I create an ordinary node to represent&#xA;  the bug. This bug node is my view of&#xA;  all the data in Leo’s source code that&#xA;  relates to the bug. As I discover code&#xA;  related to the bug, I clone their&#xA;  nodes and move them under the bug&#xA;  node. I’ll also add ordinary nodes as&#xA;  children of the bug node. These nodes&#xA;  contain the original bug report,&#xA;  descriptions of how I fixed the bug,&#xA;  test data, or any other notes I might&#xA;  want to keep.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Once I have created the bug node, I&#xA;  concentrate only on that node and its&#xA;  children. I can examine the bug node&#xA;  and its children without having to&#xA;  jump around the outline. Everything I&#xA;  need is in one place. When I get&#xA;  around to actually fixing the bug I&#xA;  can do so by changing the clones.&#xA;  Again, I do not have to jump around&#xA;  the outline. It doesn’t matter how big&#xA;  or complex the entire outline is: I am&#xA;  only dealing with the bug node and its&#xA;  children. This extremely narrow focus&#xA;  makes it much easier to fix bugs.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6404" LastActivityDate="2010-11-25T21:28:34.207" />
  <row Id="21552" PostTypeId="2" ParentId="21535" CreationDate="2010-11-25T21:29:44.047" Score="1" ViewCount="" Body="&lt;p&gt;Honestly I'm generally ok with site blocking as long as I can actually get to the site's that I need to without a wasting additional time and/or have to jump through a bunch of hoops.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The various corporations I've worked at have blocked sites but they were generally the sites you shouldn't be visiting at work (warez, porn, etc.).  If you had a need to get to these blocked sites there was a process to get approval if necessary.  I never ran across a site that I needed at work that was actually blocked.  Usually I would get a warning page that it hadn't been categorized but I could continue to the site with an extra click.  I can deal with that, since I understand what the site blocking was setup as a corporate policy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that they didn't block facebook, etc but they did monitor the amount of time spent on those sites.&lt;/p&gt;&#xA;" OwnerUserId="4819" LastActivityDate="2010-11-25T21:29:44.047" CommentCount="4" />
  <row Id="21553" PostTypeId="2" ParentId="21387" CreationDate="2010-11-25T21:34:11.560" Score="1" ViewCount="" Body="&lt;p&gt;Something that Joel Spolsky wrote way back when on his blog (can't find the article now) really stuck with me regarding this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He said how code is not natural human language, but as programmers, we are easily lulled into thinking that it is, and that we should be able to read it as such. Consequently, a lot of us look at new code and expect to be able to just &quot;read it&quot; and understand it immediately, as if it was a block of text in English.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I think the key is to basically just be slow, methodical, and scientific. And as others have said - comment it (and even refactor) as you go. Don't fall into the mindset of &quot;I should just look at it and understand immediately&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and yes, I still fall into this trap myself sometimes. &quot;Do as I say, not as I do&quot;, and all that. :)&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-25T21:34:11.560" CommentCount="1" />
  <row Id="21554" PostTypeId="2" ParentId="21496" CreationDate="2010-11-25T21:34:53.997" Score="0" ViewCount="" Body="&lt;p&gt;I'm currently setting up something like that :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;1 mercurial repo for each extension of my application&lt;/li&gt;&#xA;&lt;li&gt;a mercurial repo that gather specific versions of several 3rd party libraries&lt;/li&gt;&#xA;&lt;li&gt;a SVN repo for graphic resources/works (but might change to something else)&lt;/li&gt;&#xA;&lt;li&gt;a mercurial repo for my application, that uses the mercurial subrepos feature to use specific version of the 3rd pary repo, and some of the basic extensions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Now when I need to work on an extension that is not &quot;basic&quot; (implicitely included as a subrepo in the application repo), I simply get clone the repo in the extensions folder and let CMake generate the projects and solutions for the whole application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That way, I can :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;change the 3rd parties in a clone, check that it works with the app, push it in the 3rd pary repo, then update the subrepo version of the application repo to the new 3rd party repo version&lt;/li&gt;&#xA;&lt;li&gt;work on extensions independently, all togeter or just pick some specific&lt;/li&gt;&#xA;&lt;li&gt;not have to worry about having to link projects together, this is done by Cmake just by having the projects subrepos scanned with the whole application repo.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Don't have a lot of experience with this organization yet, but i think that's pretty useful.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-11-25T21:34:53.997" />
  <row Id="21555" PostTypeId="1" CreationDate="2010-11-25T21:45:39.350" Score="2" ViewCount="273" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking into using a blogging CMS like WordPress, but I'm not keen on using PHP, I'm actually more interested in using Ruby on Rails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any blogging CMS platforms built using Ruby on Rails, which you can create sites based on?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stephen&lt;/p&gt;&#xA;" OwnerUserId="3242" LastActivityDate="2010-11-25T22:03:22.387" ClosedDate="2010-11-26T10:02:40.153" Title="Is there a Ruby on Rails based blogging CMS like WordPress" Tags="&lt;blogs&gt;&lt;ruby-on-rails&gt;&lt;cms&gt;" AnswerCount="1" CommentCount="4" FavoriteCount="1" />
  <row Id="21556" PostTypeId="2" ParentId="21387" CreationDate="2010-11-25T21:49:30.780" Score="0" ViewCount="" Body="&lt;p&gt;bang your head against the desk until it all becomes clear.&lt;/p&gt;&#xA;" OwnerUserId="6518" LastActivityDate="2010-11-25T21:49:30.780" />
  <row Id="21557" PostTypeId="2" ParentId="21496" CreationDate="2010-11-25T21:54:25.967" Score="1" ViewCount="" Body="&lt;p&gt;It varies depending things like on the libraries, what they're used for, how pervasive they are in your code, the cost (in terms of time and money) of performing the upgrade, and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally you would always have the latest all of the time, but if the new version isn't backward-compatible, what then?  You may have to shelve that update for a future release until you can handle the change carefully.  There could be some subtle change in behaviour (such as &quot;you now need to set property X before calling method Y, or you get a slow memory leak&quot;) which is difficult to verify in testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, the new version could have some serious security fixes, so you have to take that into account as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Short version:  take it on a case-by-case basis.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-11-25T21:54:25.967" />
  <row Id="21558" PostTypeId="2" ParentId="21538" CreationDate="2010-11-25T21:59:30.057" Score="1" ViewCount="" Body="&lt;p&gt;I can think of three arguments for refactoring that I have used that have actually convinced sceptical directors.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Architectural change to allow additional types of desirable features.&lt;/li&gt;&#xA;&lt;li&gt;Removing a block of code that has an established track record of bugs combined with a history of fixing a bug and a new bug appears.&lt;/li&gt;&#xA;&lt;li&gt;Poor security / Poor performance that is affecting sales.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Using arguments like &quot;the code is badly written&quot; and &quot;its really hard to understand the code&quot; do not typically work.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-25T21:59:30.057" />
  <row Id="21559" PostTypeId="2" ParentId="21067" CreationDate="2010-11-25T21:59:45.347" Score="2" ViewCount="" Body="&lt;h1&gt;Object-Orientation&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Seriously. The mainstream languages have absolutely abysmal implementations of OO. Sometimes one wonders whether the designers of those languages have ever actually heard of Simula or Smalltalk.&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-11-25T21:59:45.347" CommunityOwnedDate="2011-01-05T10:52:43.233" CommentCount="3" />
  <row Id="21560" PostTypeId="2" ParentId="21555" CreationDate="2010-11-25T22:03:22.387" Score="1" ViewCount="" Body="&lt;p&gt;typo &lt;a href=&quot;http://blog.typosphere.org/&quot; rel=&quot;nofollow&quot;&gt;http://blog.typosphere.org/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6518" LastActivityDate="2010-11-25T22:03:22.387" />
  <row Id="21561" PostTypeId="2" ParentId="21538" CreationDate="2010-11-25T22:05:22.063" Score="1" ViewCount="" Body="&lt;p&gt;Writing code is much like growing a garden - it needs to be pruned and tendered while growing often or it will just turn into an ugly mess which no one will want or even touch with fear some twig will break and crash the whole bush.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-11-25T22:05:22.063" CommentCount="1" />
  <row Id="21562" PostTypeId="1" AcceptedAnswerId="21576" CreationDate="2010-11-25T22:08:14.627" Score="2" ViewCount="81" Body="&lt;p&gt;One problem that I have faced over the years is that when I stop using a technology (COM,QT)/language (VBScript)/feature (Templates) for development over the time I lose skill in that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What in your opinion is the &quot;easiest&quot; way to retain familiarity so that when I come back to any of them, effort for relearning is minimal.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-11-25T22:50:10.747" Title="How to retain familiarity with previously worked on technology/language/feature" Tags="&lt;best-practices&gt;&lt;self-improvement&gt;&lt;programming&gt;&lt;skills&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="2" />
  <row Id="21563" PostTypeId="2" ParentId="8547" CreationDate="2010-11-25T22:11:14.913" Score="0" ViewCount="" Body="&lt;p&gt;It's funny how this is a recurring topic of discussion.&#xA;I recently had something similar happen to me and I also asked the question here:&#xA;&lt;a href=&quot;http://programmers.stackexchange.com/questions/8008/just-started-at-a-new-job-but-just-got-an-interview&quot;&gt;Just started at a new job, but just got an interview&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me it was the other way around, I got a job at a small company, more like a start up that is slowly becoming self sustainable. Then I got another opportunity to work for a big national company. My decision was based on the technologies they were using, work environment, opportunity to learn, and just feeling/intuition. I also knew that if I took the job at the big company, I would be beyond saturated with work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I was on the fence and indecisive, I had a very frank conversation with my boss about the other opportunity and he was very understanding. You mentioned they're willing to take you back if it doesn't work out, which is really something, but still uncertain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can say that I'm happy that I chose to stay at my initial offer.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-11-25T22:11:14.913" />
  <row Id="21564" PostTypeId="2" ParentId="19893" CreationDate="2010-11-25T22:15:18.373" Score="2" ViewCount="" Body="&lt;p&gt;Technically, I believe the WPF/WCF combination is the better solution. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I am not convinced that your existing WPF programmer really has the experience for this project.  WPF is quite a shift in programming thought processes from Winform programming and so you will need to think long and hard about do you really have sufficient skills in the team to deliver this route.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-25T22:15:18.373" CommentCount="1" />
  <row Id="21565" PostTypeId="2" ParentId="21512" CreationDate="2010-11-25T22:18:14.330" Score="0" ViewCount="" Body="&lt;p&gt;I completely agree with the already chosen answer. &#xA;But just to add, if you just want some ARTIFICIAL metric on how much you know, just find some certifications on the languages you know and do a couple of mock tests. &#xA;Other than that, I think that the best and most edifying way to test your knowledge is to have a conversation with someone who's already working in industry. &lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-11-25T22:18:14.330" />
  <row Id="21566" PostTypeId="2" ParentId="21512" CreationDate="2010-11-25T22:20:40.773" Score="1" ViewCount="" Body="&lt;p&gt;You don't &lt;em&gt;need&lt;/em&gt; to test it, it will test itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I got my first/current job, I knew I can't compare to anyone I was working with. So I simply did my best and hoped for the best. Turns out I managed to prove myself - or so I was told/shown in different ways. Whether this is true or not, I can't really say objectively.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just do what you do best, and sooner or later you will get feedback, whether you want it or not:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;People will seek your advice&lt;/li&gt;&#xA;&lt;li&gt;You'll get more responsibilities (e.g. increasingly larger features to code)&lt;/li&gt;&#xA;&lt;li&gt;You'll (hopefully) get more money&lt;/li&gt;&#xA;&lt;li&gt;You'll be asked to salvage a failing project (which can be a bad thing:))&lt;/li&gt;&#xA;&lt;li&gt;etc...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;or&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You'll get boring tasks no one else wants to do&lt;/li&gt;&#xA;&lt;li&gt;No one will ask you anything, you'll just get a task and be expected to do it without discussion&lt;/li&gt;&#xA;&lt;li&gt;No raise&lt;/li&gt;&#xA;&lt;li&gt;etc...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Having said all that, &lt;strong&gt;always try to surround yourself with people &lt;em&gt;better&lt;/em&gt; than you&lt;/strong&gt;, if you can. Don't ever miss an opportunity to learn from other people, especially their mistakes! ;) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also try to &lt;a href=&quot;http://www.codinghorror.com/blog/2004/02/recommended-reading-for-developers.html&quot; rel=&quot;nofollow&quot;&gt;read some of these&lt;/a&gt;, I just started going through the list myself, and I can't recommend it enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Don't worry about your knowledge now, worry about how much you learn each day!&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-11-25T22:20:40.773" />
  <row Id="21567" PostTypeId="2" ParentId="21512" CreationDate="2010-11-25T22:21:08.307" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm&quot; rel=&quot;nofollow&quot;&gt;Programmer competency matrix&lt;/a&gt; has some ideas if you want a kind of ballpark to some degree.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-25T22:21:08.307" />
  <row Id="21568" PostTypeId="1" AcceptedAnswerId="21570" CreationDate="2010-11-25T22:22:16.887" Score="1" ViewCount="647" Body="&lt;p&gt;I'm wondering if there is a good book for an absolute beginner to start learning building websites using ASP.NET MVC? I was looking but I didn't see there is something for beginners! &lt;/p&gt;&#xA;" OwnerUserId="26782" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-02-02T21:42:52.083" LastActivityDate="2011-02-02T21:42:52.083" Title="ASP.NET MVC book for absolute beginners" Tags="&lt;asp.net&gt;&lt;mvc&gt;" AnswerCount="8" CommentCount="1" FavoriteCount="0" />
  <row Id="21569" PostTypeId="2" ParentId="21562" CreationDate="2010-11-25T22:26:15.887" Score="1" ViewCount="" Body="&lt;p&gt;The best way to keep up to date with previous technologies is to have simple personal projects which use them.  I try to keep a list of personal projects based on different technologies, I can always revisit them if you want to brush up my skills.&lt;/p&gt;&#xA;" OwnerUserId="5968" LastActivityDate="2010-11-25T22:26:15.887" />
  <row Id="21570" PostTypeId="2" ParentId="21568" CreationDate="2010-11-25T22:31:00.580" Score="3" ViewCount="" Body="&lt;p&gt;There is a book from Apress for beginners in ASP.NET:&lt;br&gt;&#xA;&lt;a href=&quot;http://apress.com/book/view/1430226080&quot; rel=&quot;nofollow&quot;&gt;http://apress.com/book/view/1430226080&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifically for MVC, there's:&#xA;&lt;a href=&quot;http://apress.com/book/view/9781430210078&quot; rel=&quot;nofollow&quot;&gt;http://apress.com/book/view/9781430210078&lt;/a&gt;&lt;br&gt;&#xA;but this assumes you have basic knowledge of ASP.NET and C#&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-11-25T22:31:00.580" />
  <row Id="21571" PostTypeId="1" AcceptedAnswerId="21578" CreationDate="2010-11-25T22:36:54.153" Score="4" ViewCount="302" Body="&lt;p&gt;I have previously worked on COM, however I have observed for quite sometime that hardly any company asks for COM exp.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is COM dead or reports of its demise are highly exaggerated?&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-11-26T20:18:30.173" Title="Is COM truly dead ?" Tags="&lt;technology&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="21572" PostTypeId="2" ParentId="21571" CreationDate="2010-11-25T22:39:50.460" Score="1" ViewCount="" Body="&lt;p&gt;I wish...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, the only context I still have to deal with it in is essentially legacy. So I would say it's &quot;dead&quot; in about the same sense as classic VB is dead: few or no new projects are going to be done with it now and into the future. But legacy support and integration will still be around for quite some time.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastEditorUserId="5064" LastEditorDisplayName="" LastEditDate="2010-11-26T20:18:30.173" LastActivityDate="2010-11-26T20:18:30.173" CommentCount="4" />
  <row Id="21573" PostTypeId="2" ParentId="21436" CreationDate="2010-11-25T22:41:48.360" Score="0" ViewCount="" Body="&lt;p&gt;If you use velocity as an 'allowance' indicator based on yesterday's weather, it will automatically adjust for some average amount of extra work cutting into sprints.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the production issue is caused by bugs created in earlier sprints it's OK to have the fixing work cut into the velocity of the current sprint. This way the team's velocity is 'compensated' for the points they shouldn't have earned previously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes you don't make all your sprint goals, get over it ;-) Velocity will average out to a lower number if it happens a lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any other non-critical stuff can just be included on the backlog for normal inclusion in a sprint. I prefer giving top priority to bugs and to not have them count towards velocity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All the time needed for fixing and troubleshooting production issues is automatically factored into the team's velocity. Only takes time to average out, doesn't really need a separate allowance. &lt;/p&gt;&#xA;" OwnerUserId="3309" LastActivityDate="2010-11-25T22:41:48.360" />
  <row Id="21574" PostTypeId="2" ParentId="21571" CreationDate="2010-11-25T22:44:46.180" Score="1" ViewCount="" Body="&lt;p&gt;There's plenty of existing COM code out there that needs to be integrated with. Often it can be handled with COM wrappers, but the young upstarts have no awareness of the COM's constraints.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its very rare to want to, or need to write a new COM object.  Last time I did this was 2 years ago.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-25T22:44:46.180" CommentCount="1" />
  <row Id="21575" PostTypeId="1" CreationDate="2010-11-25T22:45:19.307" Score="58" ViewCount="1124" Body="&lt;p&gt;So your client asks you to write some code, so you do. He then changes the specs on you, as expected, and you diligently implement his new features like a good little lad. Except... the new features kind of conflict with the old features, so now your code is a mess. You &lt;em&gt;really&lt;/em&gt; want to go back and fix it, but he keeps requesting new things and every time you finish cleaning something, it winds up a mess again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you do? Stop being an OCD maniac and just accept that your code is going to wind up a mess no matter what you do, and just keep tacking on features to this monstrosity? Save the cleaning for version 2?&lt;/p&gt;&#xA;" OwnerUserId="7390" LastEditorUserId="7390" LastEditorDisplayName="" LastEditDate="2010-11-27T07:29:10.017" LastActivityDate="2011-03-03T14:45:07.047" CommunityOwnedDate="2011-03-03T13:15:32.770" Title="How do you cope with ugly code that you wrote?" Tags="&lt;code&gt;" AnswerCount="18" CommentCount="6" FavoriteCount="10" />
  <row Id="21576" PostTypeId="2" ParentId="21562" CreationDate="2010-11-25T22:50:10.747" Score="2" ViewCount="" Body="&lt;p&gt;Keep hold of your own reference books. That way, you can go back and refresh your memory.  Personally, if you are not regularly using some memory allowing it to fade and to use that capacity for current stuff seems to be a more efficient use of the grey matter.  Rereading the same books that you originally used allows old memories to be refreshed surprisingly quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am looking forward to 10 years time when COM programmers make £2000 a day.   :)&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-25T22:50:10.747" CommentCount="1" />
  <row Id="21577" PostTypeId="2" ParentId="8008" CreationDate="2010-11-25T22:56:57.993" Score="0" ViewCount="" Body="&lt;p&gt;The 2nd company offer looks a lot better, and if you are willing to take some extra-strain in the beginning - which includes taking time off office hours to learn all the new techs the job requires (which shouldn't be hard for a young and enthusiast developer), you will definitely raise your profile through that huge OSS project. This will eventually (in the long-term) lead to monetary gains (even if they don't give you a big salary in the beginning, which they most likely won't). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus, the hours at big companies are generally more &quot;normal&quot; than those at smaller ones coping with resources. &lt;strong&gt;And you get to present at conferences :)&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5185" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-11-25T23:14:37.793" LastActivityDate="2010-11-25T23:14:37.793" />
  <row Id="21578" PostTypeId="2" ParentId="21571" CreationDate="2010-11-25T22:57:00.760" Score="10" ViewCount="" Body="&lt;p&gt;COM is still widely used within Windows. Many of the new features within Windows are built upon a COM base as it is the main native code component model and Windows is primarily native code. But most non-system application development on Windows is now done in managed code so COM is less relevant (although accessible) as there are .NET framework wrappers. So it is definitely not dead but not that relevant for most people day to day.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-25T22:57:00.760" />
  <row Id="21579" PostTypeId="2" ParentId="20363" CreationDate="2010-11-25T22:58:45.653" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://vimeo.com/7516539&quot; rel=&quot;nofollow&quot;&gt;“Humanity: Epic FAIL” – Jon Skeet at Stack Overflow Dev Days London&lt;/a&gt; was a speech I found pretty inspiring.  As the speech shows how computers can have problems with speech, numbers and time, it gave me hope for the future that we may yet beat some of these challenges.  There is a fair bit of humor in the speech which may or may not help those watching it.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-25T22:58:45.653" CommunityOwnedDate="2010-11-25T22:58:45.653" />
  <row Id="21580" PostTypeId="2" ParentId="21575" CreationDate="2010-11-25T22:59:36.807" Score="2" ViewCount="" Body="&lt;p&gt;My preference is to avoid this situation in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It all depends on HOW you read the spec.  Its easy to think of them as stone tablets, but in reality most specs change. When you design your code, take a view on how likely that each part of the spec is going to change.  Over time, you will get quite good at predicting this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having got into the mess, experience and judgement is very important. Are you writing new bugs because of this spaghetti code? is it taking longer to implement? these would point to doing a tactical refactor. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;for the future, it sounds like you need to work in partnership with your customer.  Saying to them, &quot;look this product is expanding significantly beyond the original spec.  Whilst the original design was good for that level, expanding it in direction X and directions Y need some restructuring in the design&quot; handled well, and you will even get your customer to pay for it. &lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-25T22:59:36.807" CommunityOwnedDate="2011-03-03T13:15:32.770" CommentCount="1" />
  <row Id="21581" PostTypeId="2" ParentId="21575" CreationDate="2010-11-25T23:00:18.960" Score="3" ViewCount="" Body="&lt;p&gt;Charge by the hour and if he wants changes say that is fine but incorporate the time required to write good code into the equation. Also remember writing neater code pays off long term when you have to maintain it. Saving time now could cost you later.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastEditorUserId="4335" LastEditorDisplayName="" LastEditDate="2010-11-25T23:05:55.913" LastActivityDate="2010-11-25T23:05:55.913" CommunityOwnedDate="2011-03-03T13:15:32.770" CommentCount="1" />
  <row Id="21582" PostTypeId="2" ParentId="21575" CreationDate="2010-11-25T23:01:38.833" Score="10" ViewCount="" Body="&lt;p&gt;Try to do proper redesign while integrating new features. There is no later. Without the redesign you are constantly adding more and more friction for further changes and new features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At some point you'll come to a grinding near halt where everything seems to take ages. Most companies probably go for the big rewrite at this point, version 2. It has pretty poor economics and is a good moment for your customer to try a different development party if they feel inclined.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Proper redesign/refactoring can protect your customers investment and keep things sustainable. You need to build this in. Optimize for change, travel light.&lt;/p&gt;&#xA;" OwnerUserId="3309" LastActivityDate="2010-11-25T23:01:38.833" CommunityOwnedDate="2011-03-03T13:15:32.770" />
  <row Id="21583" PostTypeId="2" ParentId="21575" CreationDate="2010-11-25T23:06:50.610" Score="3" ViewCount="" Body="&lt;p&gt;Some programmers suggest that a way of controlling that problem with clients is to have client sign and authorize the initial specification. THEN, when they request a requirement change which is not in the initial spec, you tell them that you need to go through the contract and project timetable in order to calculate additional costs and time delays, then make an annex to the contract. Apparently it does wonders in preventing clients in insisting on new (unpredicted) features.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-25T23:06:50.610" CommunityOwnedDate="2011-03-03T13:15:32.770" CommentCount="1" />
  <row Id="21584" PostTypeId="2" ParentId="20586" CreationDate="2010-11-25T23:07:42.807" Score="2" ViewCount="" Body="&lt;p&gt;I have a copy of &lt;em&gt;ANSI Common Lisp&lt;/em&gt; right here by my desk. I pick it up every couple of years and get a couple of chapters through, then get stuck on a couple of exercises and it slips down the priority list. That probably tells you more about me than the book though. The book seems entirely competent...&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-25T23:07:42.807" CommentCount="1" />
  <row Id="21585" PostTypeId="2" ParentId="21568" CreationDate="2010-11-25T23:19:47.693" Score="2" ViewCount="" Body="&lt;p&gt;Maybe start with this &lt;a href=&quot;http://www.wrox.com/WileyCDA/Section/id-321793.html&quot; rel=&quot;nofollow&quot;&gt;mvc chapter&lt;/a&gt; on Nerd Dinner from Wrox might be a good\free starting point. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From my what I have heard this free chapter was a condition that Scott Gu had to be part of this book.&lt;/p&gt;&#xA;" OwnerUserId="8572" LastActivityDate="2010-11-25T23:19:47.693" />
  <row Id="21586" PostTypeId="2" ParentId="21535" CreationDate="2010-11-25T23:31:33.400" Score="7" ViewCount="" Body="&lt;p&gt;They can block all they want, I'll just use my smartphone.&lt;/p&gt;&#xA;" OwnerUserId="3309" LastActivityDate="2010-11-25T23:31:33.400" CommentCount="2" />
  <row Id="21587" PostTypeId="2" ParentId="21304" CreationDate="2010-11-25T23:50:55.530" Score="0" ViewCount="" Body="&lt;p&gt;In my experience there are always a lot of people demanding documentation (I've been one of them) but in practice noone really has time or desire to create them. Occasionally there are efforts, but the documentation created typically gets outdated very quick and gets out of sync with the real functioning of the system.&#xA;This leads to a situation where even if you do have documentation noone really bothers checking it cause they simply don't trust it's accuracy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For real accuracy and reliable information it pretty much comes down to being able to read code and tests. A customer wanting to (re)discover what his system does can always interview and query a programmer who can then present (with some investigation) facts about the system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Creating good documentation is -not- trivial and can be quite costly. Secondly one could wonder about the audience, who is the documentation for and what is it intended to provide?&lt;/p&gt;&#xA;" OwnerUserId="3309" LastActivityDate="2010-11-25T23:50:55.530" />
  <row Id="21588" PostTypeId="2" ParentId="21387" CreationDate="2010-11-25T23:54:45.533" Score="0" ViewCount="" Body="&lt;p&gt;Draw diagrams of the source: the data relationships, the functional relationships, the object relationships.  Determine aggregation, data flow, and code flow.  Pictures are far better than comments for this, and can be kept separate from the code.&lt;/p&gt;&#xA;" OwnerUserId="8151" LastActivityDate="2010-11-25T23:54:45.533" />
  <row Id="21589" PostTypeId="2" ParentId="21387" CreationDate="2010-11-25T23:59:11.270" Score="3" ViewCount="" Body="&lt;p&gt;SE-Radio interviewed Dave Thomas &lt;a href=&quot;http://www.se-radio.net/2009/11/episode-148-software-archaeology-with-dave-thomas/&quot; rel=&quot;nofollow&quot;&gt;about this very subject&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This podcast episode has many tips and techniques to enter the 'culture' of the project and understand how the original inhabitants lived. &lt;/p&gt;&#xA;" OwnerUserId="6180" LastActivityDate="2010-11-25T23:59:11.270" CommentCount="1" />
  <row Id="21590" PostTypeId="2" ParentId="21575" CreationDate="2010-11-26T00:03:11.703" Score="50" ViewCount="" Body="&lt;p&gt;Deliberately overestimate the time needed for your next features. Use that extra time to clean up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll never be able to justify maintenance, and the client needs it regardless, so give them the bitter medicine (slightly increased costs for the next features) so they can get better.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-11-26T00:03:11.703" CommunityOwnedDate="2011-03-03T13:15:32.770" CommentCount="8" />
  <row Id="21591" PostTypeId="2" ParentId="21534" CreationDate="2010-11-26T00:09:31.307" Score="2" ViewCount="" Body="&lt;p&gt;Smalltalk's does.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;100000000000000000000.5 ceiling =&amp;gt; 100000000000000000000&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;100000000000000000000 is a LargePositiveInteger, meaning an integer that uses more than 32 bits in its representation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Michael points out, the above answer is wrong. I didn't notice that while the answer was an integer the answer was wrong because the float loses precision. So instead here's another, CORRECT, version, which works because we don't use floats:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(100000000000000000000 + (1 / 2)) ceiling =&amp;gt; 100000000000000000001&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-11-26T08:01:05.910" LastActivityDate="2010-11-26T08:01:05.910" CommentCount="6" />
  <row Id="21592" PostTypeId="2" ParentId="21575" CreationDate="2010-11-26T00:26:08.377" Score="26" ViewCount="" Body="&lt;p&gt;Get another job and let other people deal with it. Muahahahhahahaa. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;.....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just joking. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in all seriousness: &lt;strong&gt;estimation padding&lt;/strong&gt; is your friend. I generally do a decent realistic estimate, then double it. This might sound excessive, and sometimes it is, but it's better to overestimate a bit and even look a tad slow sometimes - than to leave bad impressions by turning out buggy code and always blowing your estimates. And of course, you incur technical debt by letting the codebase get hacky.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another (related) tip: Always estimate seemingly tiny, no brainer tasks to a decent sized block. Say, for example - an item which you are almost sure will just be a simple one line 30 second change - give it 1 hour (or maybe whatever the lowest time block is on your timesheet or CR system, eg 15 mins/0.25 hour). And give half-day or 1 day blocks for the slightly bigger but still relatively trivial items.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason for this is mainly psychological: I find that if you get in the habit of quickly hacking up small changes, the work feels rushed, and you never end up sitting back, taking stock, and refactoring stuff that needs to be refactored. Also, on a practical level: small-but-non-trivial changes sometimes blow out, and you don't want to be constantly feeling like you're behind schedule and putting out bug fires. It's part and parcel of why code bases get hacky over time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, always remember that people don't have to &lt;strong&gt;know&lt;/strong&gt; that you are padding your estimates somewhat. As long as you're a competent developer and you're cranking out work at a decent pace, this padding won't be noticeable. ie Don't tell the PHB &quot;My initial estimate is that it'll take two hours, but give me half a day&quot;. Just tell him &quot;I think it'll take about half a day.&quot; and leave it there.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-26T00:26:08.377" CommunityOwnedDate="2011-03-03T13:15:32.770" CommentCount="8" />
  <row Id="21593" PostTypeId="2" ParentId="21535" CreationDate="2010-11-26T00:27:57.590" Score="20" ViewCount="" Body="&lt;h1&gt;Zero.&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;If you have a developer who doesn't produce, blocking websites won't help that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The quantity and quality of code produced by a developer is a not linearly scalable with time spent staring into an IDE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being productive in creative and challenging work requires &quot;contiguous time&quot; and &quot;flexible time.&quot; Contigious time is a block of time where a developer knows he won't be interrupted by anyone, flexible time is time where a developer knows he is allowed to take breaks on his own schedule and rest his mind when he needs it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over management is a problem for contigious time, site blocking is a problem for flexible time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Jason Fried points out in &lt;a href=&quot;http://www.youtube.com/watch?v=5XD2kNopsUs&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; tedTalk, ten years ago no one had a problem with employees taking breaks to smoke. Facebook and the like are just modern day version of the smoke-break - they're necessary, useful and should be embraced by management.&lt;/p&gt;&#xA;" OwnerUserId="1444" LastActivityDate="2010-11-26T00:27:57.590" CommentCount="3" />
  <row Id="21594" PostTypeId="1" AcceptedAnswerId="21598" CreationDate="2010-11-26T00:33:14.827" Score="8" ViewCount="656" Body="&lt;p&gt;I manage a team of six programmers, working on diverse systems. We work in an open plan office, with members sitting in cubicles. A lot of people on these forums are big on private offices, but that is not an option for me. But I was wondering if there were ideas for other ways to improve and energize the working environment and experience. One suggestion is more plants. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any suggestions would be greatly appreciated. &lt;/p&gt;&#xA;" OwnerUserId="8400" LastActivityDate="2011-02-13T06:06:43.977" Title="How to improve the programmers work environment" Tags="&lt;work-environment&gt;&lt;office&gt;&lt;open-office&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="2" />
  <row Id="21595" PostTypeId="1" CreationDate="2010-11-26T00:34:13.500" Score="0" ViewCount="168" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to know what other web programming languages that can run perfectly and very smoothly on Linux server and can use MySQL (Again perfectly, I mean without any performance issues)? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only thing I know is PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Updated:&lt;/strong&gt; I mean in perfectly that it will work as good as PHP works on Linux and as good as PHP when PHP uses MySQL. I mean no less than PHP, it can do everything PHP can do and the same time with a good performance as PHP on Linux!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Updated:&lt;/strong&gt; The type of language I am looking for is a language that can create any dynamic website, meaning every thing I can do with PHP I can do with it!&lt;/p&gt;&#xA;" OwnerUserId="26782" LastEditorUserId="26782" LastEditorDisplayName="" LastEditDate="2010-11-26T01:04:10.770" LastActivityDate="2010-11-26T01:04:10.770" ClosedDate="2010-11-26T10:01:46.237" Title="What other languages can run perfectly on Linux server and use MySQL?" Tags="&lt;linux&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="21596" PostTypeId="2" ParentId="21595" CreationDate="2010-11-26T00:44:23.260" Score="1" ViewCount="" Body="&lt;p&gt;A huge number of system tools and apps use Perl, Python and Ruby, so those are excellent candidates. Each has great connectivity to MySQL, Postgresql, or Oracle databases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Linux comes with those languages preinstalled, however I always install my own versions of the latest rev of the source code into a separate directory (outside of the normal system installation). The system installation should be treated as sacred and reserved for the system only. Install a new version somewhere else and modify it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For convenience, there's Perlbrew, which will manage separate Perl installations in a sandbox. Python has Pythonbrew, which is a spinoff of Perlbrew. Ruby has RVM, which is my favorite.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-11-26T00:44:23.260" CommentCount="4" />
  <row Id="21597" PostTypeId="2" ParentId="21595" CreationDate="2010-11-26T00:45:24.687" Score="5" ViewCount="" Body="&lt;p&gt;There are a ton.  Off the top of my head:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Python&lt;/li&gt;&#xA;&lt;li&gt;Ruby&lt;/li&gt;&#xA;&lt;li&gt;Java&lt;/li&gt;&#xA;&lt;li&gt;Haskell&lt;/li&gt;&#xA;&lt;li&gt;OCaml&lt;/li&gt;&#xA;&lt;li&gt;Scheme&lt;/li&gt;&#xA;&lt;li&gt;Common Lisp&lt;/li&gt;&#xA;&lt;li&gt;Clojure&lt;/li&gt;&#xA;&lt;li&gt;Scala&lt;/li&gt;&#xA;&lt;li&gt;C# (with Mono)&lt;/li&gt;&#xA;&lt;li&gt;Perl&lt;/li&gt;&#xA;&lt;li&gt;C&lt;/li&gt;&#xA;&lt;li&gt;C++&lt;/li&gt;&#xA;&lt;li&gt;D&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Perhaps we can narrow it down if you tell us something about what &lt;em&gt;kind&lt;/em&gt; of language you're looking for.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-26T00:45:24.687" CommentCount="3" />
  <row Id="21598" PostTypeId="2" ParentId="21594" CreationDate="2010-11-26T00:46:17.750" Score="14" ViewCount="" Body="&lt;p&gt;Nerf guns. 'Nuff said. Seriously! :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Occasionally, say once a month, bring in lunch into a common area and let everyone put their feet up for an hour and just relax. Don't waste money on oh-so-fancy food, but let everyone toss in their ideas for what to get, then vote on it. Do that a few times and you'll find out what are everyone's favorites. Don't use the time to harangue the employees or do pep talks. Use it for brainstorming, talking about ideas for new products, or even a gripe session. Give them a chance to talk and be listened to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oooo, here's a thought, combine code-reviews and Nerf guns over food at lunch. Someone writes some code that sucks they get nerfed by the rest of the team. :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bring in a refrigerator, and stock it with some decent sodas and bottled water. Yeah, it'll cost the company a couple bucks, but the people tend to chill out a bit when they can get up, saunter over to the 'fridge, grab a cold rootbeer or whatever, then wander back. Don't nickel and dime the employees with $.75 sodas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Put in one of the &lt;a href=&quot;http://www.keurig.com/brewers/b3000se&quot; rel=&quot;nofollow&quot;&gt;modern coffee machines&lt;/a&gt; that lets people choose what type of coffee or tea they want. I gave up on coffee but love my morning green tea. We have these spread around our office area, and I don't think there's been a day go by that I didn't sear my mouth on my morning tea. :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, if the standard is two monitors, do not hesitate if someone needs three; Be willing to go one more, or two with reasonable justification. I currently have two, and am waiting on an additional video card to add two more, because I'm sick of having to juggle multiple SSH shells, editors, browser windows with docs and PDF versions of my manuals, plus the company mail and chat systems. We've got systems with five and six monitors for our networking management folks, so four for a senior developer isn't extravagant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also recommend that quiet be the office policy. Some people want music and think it's their god given right to play it loud enough to be heard several cubes away. Wrongo. Music needs to be played through headphones and should not be audible outside their cube. &lt;/p&gt;&#xA;" OwnerUserId="4139" LastEditorUserId="4139" LastEditorDisplayName="" LastEditDate="2010-11-26T09:04:16.420" LastActivityDate="2010-11-26T09:04:16.420" CommentCount="9" />
  <row Id="21599" PostTypeId="2" ParentId="21594" CreationDate="2010-11-26T00:49:44.927" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com&quot; rel=&quot;nofollow&quot;&gt;Jeff&lt;/a&gt; and &lt;a href=&quot;http://www.joelonsoftware.com/&quot; rel=&quot;nofollow&quot;&gt;Joel&lt;/a&gt; wrote a lot on the subject (well, related to). Of many, these two may give you a few insights.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2006/08/the-programmers-bill-of-rights.html&quot; rel=&quot;nofollow&quot;&gt;Programmer's bill of rights&lt;/a&gt; (what every programmer should have)&lt;br&gt;&#xA;&lt;a href=&quot;http://www.joelonsoftware.com/articles/FieldGuidetoDevelopers.html&quot; rel=&quot;nofollow&quot;&gt;A Field Guide to Developers&lt;/a&gt; (how to make &amp;amp; keep him happy &amp;amp; productive ... well, happy :-)  &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I should probably note that the above answer is mine from another question: &lt;a href=&quot;http://programmers.stackexchange.com/questions/13699/incentives-to-offer-programmers/13715#13715&quot;&gt;Incentives to offer programmers&lt;/a&gt; - and which contains quite a few others as well, some very nice and which may prove useful.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-26T00:49:44.927" CommentCount="7" />
  <row Id="21600" PostTypeId="2" ParentId="21594" CreationDate="2010-11-26T00:50:58.720" Score="14" ViewCount="" Body="&lt;p&gt;Two things that jump to mind:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Lighting.  Big bright fluorescent lights can be annoying.  Sunlight is more ideal.&lt;/li&gt;&#xA;&lt;li&gt;Comfy chairs.  These are expensive, but don't underestimate how much happier they'll make your programmers. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Oh, and if you decide to be trendy and get an XBox or PS3, put it &lt;em&gt;away&lt;/em&gt; from the programmers.  A previous job had me right next to it.  It's annoying trying to work while people nearby are playing rockband.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastEditorUserId="1626" LastEditorDisplayName="" LastEditDate="2010-11-26T04:48:27.083" LastActivityDate="2010-11-26T04:48:27.083" CommentCount="5" />
  <row Id="21601" PostTypeId="1" AcceptedAnswerId="21653" CreationDate="2010-11-26T01:00:42.747" Score="5" ViewCount="188" Body="&lt;p&gt;Two of the functions our company provides our customers are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Our Development team of ~10 employees creates software products for businesses in a particular industry. The software is used on hundreds of our customers' computers. Although the product is, for most customers, off-the-shell, larger customers drive its development, so it's somewhere between shrinkwrap software and custom software.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Our Support team of ~25 employees provides technical support for both our own software and a few other software products for which we are the vendor.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Our Development team recently switched to Scrum for their development methodology, and while I support this change, I worry that our Support team is going to have more trouble in the future.  With a quicker release cycle, our customers will have features and products in production which Support isn't even aware of until the customer calls. We've never been particularly good at getting documentation and information from Development to Support, but I fear Scrum will just exacerbate the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are good references on how companies reconcile Development's desire to release frequently with Support's desire to have full documentation and support information before customers see the product?  How should a company structure their release and change management when using agile methods?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: What I'm interested are specifics on how companies structure themselves to deal with these issues. Does the scrum team push releases to customers? Does the software have to go through a release/change management team who will not deploy until Support has been given documentation and brought up to speed?  How do you get releases to customers quickly yet still keep everyone informed of changes and new features?&lt;/p&gt;&#xA;" OwnerUserId="1014" LastEditorUserId="1014" LastEditorDisplayName="" LastEditDate="2010-11-26T06:33:27.967" LastActivityDate="2010-11-26T11:52:44.187" Title="How to support a product built with agile development?" Tags="&lt;agile&gt;&lt;scrum&gt;&lt;support&gt;&lt;changes&gt;&lt;release&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="2" />
  <row Id="21602" PostTypeId="2" ParentId="20586" CreationDate="2010-11-26T01:05:51.947" Score="6" ViewCount="" Body="&lt;p&gt;This is probably counter to most peoples' recommendations, but steer clear of Emacs to start with, unless you already know it. Especially if you're used to modern IDEs/editors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm speaking from experience; I tried to start with Emacs, but having to learn the language AND the editor at the same time really frustrated me (especially since Emacs is so different from other tools). I ended up chucking it, getting started with &lt;a href=&quot;http://racket-lang.org/&quot; rel=&quot;nofollow&quot;&gt;PLT Scheme (now Racket)&lt;/a&gt; which comes with a comparatively simple cross-platform IDE, a centralized &lt;a href=&quot;http://planet.racket-lang.org/&quot; rel=&quot;nofollow&quot;&gt;package repository&lt;/a&gt; and &lt;a href=&quot;http://docs.racket-lang.org/&quot; rel=&quot;nofollow&quot;&gt;fabulous docs&lt;/a&gt; (including &lt;a href=&quot;http://docs.racket-lang.org/continue/index.html&quot; rel=&quot;nofollow&quot;&gt;an intermediate tutorial specifically aimed at web development&lt;/a&gt;). After I got a clean grip on Lisp, I ended up going back to Emacs, picking up EL/CL by way of &lt;a href=&quot;http://gigamonkeys.com/book/&quot; rel=&quot;nofollow&quot;&gt;Practical Common Lisp&lt;/a&gt; and &lt;a href=&quot;http://xahlee.org/emacs/elisp.html&quot; rel=&quot;nofollow&quot;&gt;Xah's Elisp Guide&lt;/a&gt;. Basically, as I see it, you need to know a Lisp before you can use Emacs effectively, and you need to know Emacs in order to be very effective with CL/Elisp. This means that you can either pick up Scheme, or learn Common Lisp through some other editor first (LispWorks personal, probably).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you already know Emacs, then yeah Elisp is the natural step (though how you would enjoy Emacs use without knowing Elisp first is beyond me).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;YMMV of course, this is just what I found helped.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since your current blub is Java, you could probably get a lot of mileage out of &lt;a href=&quot;http://clojure.org/&quot; rel=&quot;nofollow&quot;&gt;Clojure&lt;/a&gt;, &lt;a href=&quot;http://common-lisp.net/project/armedbear/&quot; rel=&quot;nofollow&quot;&gt;Armed Bear&lt;/a&gt; or &lt;a href=&quot;http://www.gnu.org/software/kawa/&quot; rel=&quot;nofollow&quot;&gt;Kawa&lt;/a&gt;. I haven't tried any of them myself, not being a Java guy, but Clojure specifically comes highly recommended from other Lispers I know. It seems like the ability to keep your current VM and IDE might help with the learning process.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-11-26T03:06:30.657" LastActivityDate="2010-11-26T03:06:30.657" CommentCount="10" />
  <row Id="21603" PostTypeId="2" ParentId="21571" CreationDate="2010-11-26T01:17:03.073" Score="7" ViewCount="" Body="&lt;p&gt;To quote Don Box:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is COM dead? It's not dead - it's&#xA;  done.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Because you can add a &quot;COM Reference&quot; to a lot of the Windows goodies that are presented as COM rather than flat APIs, a lot of managed code devs can ignore it. There are still scenarios where more detailed knowledge (controlling lifetimes or marshalling, implementing specific COM interfaces in managed code for the OS to call, etc) is needed, but they aren't day-to-day. &lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-26T01:17:03.073" />
  <row Id="21604" PostTypeId="2" ParentId="21594" CreationDate="2010-11-26T01:29:09.430" Score="4" ViewCount="" Body="&lt;p&gt;We don't have the budget for free stuff (gov department) but just going out for breakfast as a group is nice to do.&lt;/p&gt;&#xA;" OwnerUserId="7213" LastActivityDate="2010-11-26T01:29:09.430" />
  <row Id="21605" PostTypeId="1" CreationDate="2010-11-26T01:47:12.170" Score="11" ViewCount="523" Body="&lt;p&gt;I've heard as advice that you should never know just computers/programming, and always be at least semi-competent in another field, like chemistry. This makes you much harder to replace and more valuable as some that can direct the people who strictly know programming with their outside knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is unique as many different things need to be programmed, every field has their own needs, making the project unique. Compare this to networking. A network for physicists isn't going to be extremely different from a network for agricultural engineers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What are some fields that are in high demand in combination with programming skills?&lt;/strong&gt; I've heard bio-informatics is really big, which is mostly biology+programming. If I want to learn a second field to further my usefulness and opportunities, what are some good choices?&lt;/p&gt;&#xA;" OwnerUserId="1220" LastActivityDate="2010-11-26T22:03:57.187" Title="Fields that are in high demand in combination with programming" Tags="&lt;jobs&gt;&lt;recommendations&gt;&lt;skills&gt;" AnswerCount="12" CommentCount="5" FavoriteCount="2" />
  <row Id="21606" PostTypeId="2" ParentId="21605" CreationDate="2010-11-26T01:51:26.087" Score="7" ViewCount="" Body="&lt;h2&gt;Physics&lt;/h2&gt;&#xA;&#xA;&lt;h2&gt;Mathematics&lt;/h2&gt;&#xA;&#xA;&lt;h2&gt;Statistics&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Data processing, data mining, and regression analysis a few things that I understand to be in great demand. Consider YouTube's video copyright-check software or a large company's consumer data analysis, for example.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Engineering&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Engineering, of course, is a broad term. As far as programming goes, electrical engineering must be the &quot;purest&quot;, but aerospace companies like Lockheed employ many programmer-engineers to design avionics, including radar software.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Geology&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;An undergraduate classmate of mine who started out in the natural sciences honors program (but is now pursuing architecture) was writing software for an oil company in C++---as an undergraduate student. No doubt, some petrogeology or geophysics would certainly boost his usefulness, but the degree would depend on the kind of software he would be writing: Data processing; control systems; microprocessor programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Okay, I've got some other things to do now. I hope to add more eventually.)&lt;/p&gt;&#xA;" OwnerUserId="2515" LastEditorUserId="2515" LastEditorDisplayName="" LastEditDate="2010-11-26T02:12:55.187" LastActivityDate="2010-11-26T02:12:55.187" CommentCount="4" />
  <row Id="21607" PostTypeId="2" ParentId="20586" CreationDate="2010-11-26T01:52:38.157" Score="4" ViewCount="" Body="&lt;p&gt;Another commentor, &lt;a href=&quot;http://programmers.stackexchange.com/users/2592/inaimathi&quot;&gt;Inaimathi&lt;/a&gt;, recommended this book a few days ago: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0262560992&quot; rel=&quot;nofollow&quot;&gt;The Little Schemer&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Received it today and I can say as someone who has a very hefty library of programming books acquired over many years, that I may have only read one chapter, but I will definitely need a hardback version of this.  It reads like the Tao Te Ching, lots of little snippets of divine wisdom regarding the language.  It may say Scheme, but it was originally called &quot;The Little LISPer&quot;, the languages at the level it discusses are sufficiently similar to be taught as one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is not an advanced text, but has a mission to instil the principles of the language and what it is really for, how to think like it.  I believe it would be an excellent starter to LISP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;NB.&lt;/em&gt; &lt;a href=&quot;http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm&quot; rel=&quot;nofollow&quot;&gt;The Programmer Competency Matrix&lt;/a&gt; actually mentions this book in the top level of competency of things to look for. (see Books section)&lt;/p&gt;&#xA;" OwnerUserId="7990" LastEditorUserId="7990" LastEditorDisplayName="" LastEditDate="2010-11-26T02:20:21.513" LastActivityDate="2010-11-26T02:20:21.513" CommentCount="1" />
  <row Id="21608" PostTypeId="2" ParentId="21605" CreationDate="2010-11-26T01:59:03.443" Score="3" ViewCount="" Body="&lt;h2&gt;Medicine&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;As the field itself advances the need for computational methods in diagnosis, imaging, knowledge systems, management systems, embedded controllers, you name it, is growing and growing.  The field is quite mature already, but competent multidisciplinary people who have knowledge of medicine and software engineering expertise can really go far.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bioinformatics that you mention I have studied myself in the past, quite an interesting field, primarily the computing angle is in data mining.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Diagnostic Imaging is immensely complex and interesting - try realtime analysis of the circulatory system to assist cardiovascular surgeons in theatre.  Or 3D-xray generation superimposed with holography, the field is still young and expanding.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-11-26T01:59:03.443" CommentCount="2" />
  <row Id="21609" PostTypeId="2" ParentId="21512" CreationDate="2010-11-26T02:02:58.807" Score="2" ViewCount="" Body="&lt;p&gt;There are plenty of online practice tests for various certifications.  I would find one that suites your skills and see where you stand.  There's really nothing to lose.&lt;/p&gt;&#xA;" OwnerUserId="7676" LastActivityDate="2010-11-26T02:02:58.807" CommentCount="1" />
  <row Id="21610" PostTypeId="2" ParentId="21605" CreationDate="2010-11-26T02:03:22.147" Score="4" ViewCount="" Body="&lt;p&gt;This is an rather awkward way of looking at it. Usually it is the other way around. Apart from some natural sciences like mathematics and physics, programmers are usually independent. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Their work does not depend on their knowledge of, let's say biology. However, advances in those (biology, geology, meteorology, mechanical engineering) have made it impossible to do any practical work without some knowledge of programming (do not take this out of context, please) - therefore, individuals often wander into the field of programming. Only natural - after all, computers were largely invented for needs of exactly such, not for ladies typing office documents. They could do that on typewriters equally well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer, at least partly your question, some fields which a rather lot of related literature, to my knowledge:&lt;br&gt;&#xA;- &lt;strong&gt;&lt;em&gt;mechanical/civil engineering, architecture/naval arch.&lt;/em&gt;&lt;/strong&gt;  (combination)&lt;br&gt;&#xA;- &lt;strong&gt;&lt;em&gt;meteorology&lt;/em&gt;&lt;/strong&gt;  (think &quot;weather prediction&quot;)&lt;br&gt;&#xA;- &lt;strong&gt;&lt;em&gt;geology/naval arch.&lt;/em&gt;&lt;/strong&gt; (think &quot;oil fields / reservoir modelling&quot;)&lt;br&gt;&#xA;- &lt;strong&gt;&lt;em&gt;energy systems&lt;/em&gt;&lt;/strong&gt; (think &quot;energy needs prediction&quot;)&lt;br&gt;&#xA;- &lt;strong&gt;&lt;em&gt;economy&lt;/em&gt;&lt;/strong&gt; (think &quot;wall street crashing&quot; :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples are many indeed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;p.s. If you're interested in let's say, practical data, try for example checking out most active users on SO under Fortran, MATLAB, Octave and similar domain languages tags. Those are usually people who came from the &quot;other side&quot; into programming because of the reasons given above.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-11-26T02:08:40.320" LastActivityDate="2010-11-26T02:08:40.320" CommentCount="5" />
  <row Id="21611" PostTypeId="2" ParentId="21601" CreationDate="2010-11-26T02:25:49.130" Score="2" ViewCount="" Body="&lt;p&gt;Your support guys need to be involved in the iteration and release planning stage so that they know what's going into a release as early as possible. So while the developers are building the software the support guys can be preparing for it. One good thing about Scrum is that once an iteration starts you can be sure of what will come out at the other end.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-11-26T02:25:49.130" CommentCount="7" />
  <row Id="21612" PostTypeId="1" CreationDate="2010-11-26T02:33:31.523" Score="1" ViewCount="354" Body="&lt;p&gt;What are the differences between Python and PHP? What are things that Python is good at and what are things that PHP is good at? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And last question, Can I mix Python and PHP in the same website? I don't mean in the same page but for example some pages in Python, others in PHP, is that possible? &lt;/p&gt;&#xA;" OwnerUserId="26782" LastActivityDate="2010-11-26T04:27:48.167" ClosedDate="2010-11-26T10:03:11.337" Title="The differences between Python and PHP" Tags="&lt;web-development&gt;&lt;php&gt;&lt;python&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="1" />
  <row Id="21613" PostTypeId="2" ParentId="21612" CreationDate="2010-11-26T02:41:50.600" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/464001/python-vs-php-differences&quot;&gt;StackOverflow - Python VS PHP, Differences?&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://wiki.python.org/moin/PythonVsPhp&quot; rel=&quot;nofollow&quot;&gt;python.org - PythonVsPhp&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://stackoverflow.com/questions/62333/python-vs-php-python-runs-slower&quot;&gt;StackOverflow - Python vs PHP, Python runs slower?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should be enough for a start :-)&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-26T02:41:50.600" />
  <row Id="21614" PostTypeId="2" ParentId="15585" CreationDate="2010-11-26T02:49:31.623" Score="11" ViewCount="" Body="&lt;p&gt;I really like Yusuke Endoh's &lt;a href=&quot;http://mamememo.blogspot.com/2010/09/qlobe.html&quot; rel=&quot;nofollow&quot;&gt;Qlobe&lt;/a&gt;, which can take an input from the command line to reproduce a globe, turned by the specified angle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Original code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;v=0000;eval$s=%q~d=%!^Lcf&amp;lt;LK8,                  _@7gj*LJ=c5nM)Tp1g0%Xv.,S[&amp;lt;&amp;gt;YoP&#xA;4ZojjV)O&amp;gt;qIH1/n[|2yE[&amp;gt;:ieC       &quot;%.#%  :::##&quot;       97N-A&amp;amp;Kj_K_&amp;gt;&amp;lt;wS5rtWk@*a+Y5&#xA;yH?b[F^e7C/56j|pmRe+:)B     &quot;##%      ::##########&quot;     O98(Zh)'Iof*nm.,$C5Nyt=&#xA;PPu01Avw^&amp;lt;IiQ=5$'D-y?    &quot;##:         ###############&quot;    g6`YT+qLw9k^ch|K'),tc&#xA;6ygIL8xI#LNz3v}T=4W    &quot;#            #.   .####:#######&quot;    lL27FZ0ij)7TQCI)P7u&#xA;}RT5-iJbbG5P-DHB&amp;lt;.   &quot;              ##### # :############&quot;   R,YvZ_rnv6ky-G+4U'&#xA;$*are@b4U351Q-ug5   &quot;              #######################&quot;   00x8RR%`Om7VDp4M5&#xA;PFixrPvl&amp;amp;&amp;lt;p[]1IJ   &quot;              ############:####  %#####&quot;   EGgDt8Lm#;bc4zS^&#xA;y]0`_PstfUxOC(q   &quot;              .#############:##%   .##  .&quot;   /,}.YOIFj(k&amp;amp;q_V&#xA;zcaAi?]^lCVYp!;  &quot; %%            .################.     #.   &quot;  ;s=&quot;v=%04o;ev&quot;%&#xA;(;v=(v-($*+[45,  &quot;:####:          :##############%       :   &quot;  ])[n=0].to_i;)%&#xA;360)+&quot;al$s=%q#{  &quot;%######.              #########            &quot;  ;;&quot;%c&quot;%126+$s&amp;lt;&amp;lt;&#xA;126}&quot;;d.gsub!(/  &quot;##########.           #######%             &quot;  |\s|&quot;.*&quot;/,&quot;&quot;);;&#xA;require&quot;zlib&quot;||  &quot;###########           :######.             &quot;  ;d=d.unpack&quot;C*&quot;&#xA;d.map{|c|n=(n||  &quot;:#########:           .######: .           &quot;  )*90+(c-2)%91};&#xA;e=[&quot;%x&quot;%n].pack   &quot; :#######%           :###### #:          &quot;   &amp;amp;&amp;amp;&quot;H*&quot;;e=Zlib::&#xA;Inflate.inflate(   &quot;  ######%           .####% ::          &quot;   &amp;amp;&amp;amp;e).unpack(&quot;b*&quot;&#xA;)[0];22.times{|y|   &quot;  ####%             %###             &quot;   ;w=(Math.sqrt(1-(&#xA;(y*2.0-21)/22)**(;   &quot; .###:             .#%             &quot;   ;2))*23).floor;(w*&#xA;2-1).times{|x|u=(e+    &quot; %##                           &quot;    )[y*z=360,z]*2;u=u[&#xA;90*x/w+v+90,90/w];s[(    &quot; #.                        &quot;    ;y*80)+120-w+x]=(&quot;&quot;&amp;lt;&amp;lt;&#xA;32&amp;lt;&amp;lt;&quot;.:%#&quot;)[4*u.count((     &quot; .                   &quot;     ;&quot;0&quot;))/u.size]}};;puts\&#xA;s+&quot;;_ The Qlobe#{&quot; &quot;*18+ (       &quot;#  :#######&quot;       ;&quot;Copyright(C).Yusuke End\&#xA;oh, 2010&quot;)}&quot;;exit~;_ The Qlobe                  Copyright(C).Yusuke Endoh, 2010&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Example run:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$ ruby quine.rb 45&#xA;v=0473;eval$s=%q~d=%!^Lcf&amp;lt;LK8,                  _@7gj*LJ=c5nM)Tp1g0%Xv.,S[&amp;lt;&amp;gt;YoP&#xA;4ZojjV)O&amp;gt;qIH1/n[|2yE[&amp;gt;:ieC       &quot;###%.#%  ::&quot;       97N-A&amp;amp;Kj_K_&amp;gt;&amp;lt;wS5rtWk@*a+Y5&#xA;yH?b[F^e7C/56j|pmRe+:)B     &quot;#####%##.     .:#####&quot;     O98(Zh)'Iof*nm.,$C5Nyt=&#xA;PPu01Avw^&amp;lt;IiQ=5$'D-y?    &quot;#####%###:         ########&quot;    g6`YT+qLw9k^ch|K'),tc&#xA;6ygIL8xI#LNz3v}T=4W    &quot;%########            #.   .####&quot;    lL27FZ0ij)7TQCI)P7u&#xA;}RT5-iJbbG5P-DHB&amp;lt;.   &quot; :#######              ##### # :###&quot;   R,YvZ_rnv6ky-G+4U'&#xA;$*are@b4U351Q-ug5   &quot;  :###   :             :#############&quot;   00x8RR%`Om7VDp4M5&#xA;PFixrPvl&amp;amp;&amp;lt;p[]1IJ   &quot;    %#...               ############:##&quot;   EGgDt8Lm#;bc4zS^&#xA;y]0`_PstfUxOC(q   &quot;     .###:               %############:##&quot;   /,}.YOIFj(k&amp;amp;q_V&#xA;zcaAi?]^lCVYp!;  &quot;         :. %%            .################&quot;  ;s=&quot;v=%04o;ev&quot;%&#xA;(;v=(v-($*+[45,  &quot;           :####:          :##############%&quot;  ])[n=0].to_i;)%&#xA;360)+&quot;al$s=%q#{  &quot;           %######.              ######### &quot;  ;;&quot;%c&quot;%126+$s&amp;lt;&amp;lt;&#xA;126}&quot;;d.gsub!(/  &quot;           ##########.           #######%  &quot;  |\s|&quot;.*&quot;/,&quot;&quot;);;&#xA;require&quot;zlib&quot;||  &quot;           ###########           :######.  &quot;  ;d=d.unpack&quot;C*&quot;&#xA;d.map{|c|n=(n||  &quot;           :#########:           .######: .&quot;  )*90+(c-2)%91};&#xA;e=[&quot;%x&quot;%n].pack   &quot;            ########.           ######%:#&quot;   &amp;amp;&amp;amp;&quot;H*&quot;;e=Zlib::&#xA;Inflate.inflate(   &quot;            ######%           .####% ::&quot;   &amp;amp;&amp;amp;e).unpack(&quot;b*&quot;&#xA;)[0];22.times{|y|   &quot;           :####.            .###:   &quot;   ;w=(Math.sqrt(1-(&#xA;(y*2.0-21)/22)**(;   &quot;          .###:             .#%    &quot;   ;2))*23).floor;(w*&#xA;2-1).times{|x|u=(e+    &quot;         %##                   &quot;    )[y*z=360,z]*2;u=u[&#xA;90*x/w+v+90,90/w];s[(    &quot;        #.                 &quot;    ;y*80)+120-w+x]=(&quot;&quot;&amp;lt;&amp;lt;&#xA;32&amp;lt;&amp;lt;&quot;.:%#&quot;)[4*u.count((     &quot;      :              &quot;     ;&quot;0&quot;))/u.size]}};;puts\&#xA;s+&quot;;_ The Qlobe#{&quot; &quot;*18+ (       &quot;####  :####&quot;       ;&quot;Copyright(C).Yusuke End\&#xA;oh, 2010&quot;)}&quot;;exit~;_ The Qlobe                  Copyright(C).Yusuke Endoh, 2010&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-11-26T02:49:31.623" CommentCount="2" />
  <row Id="21615" PostTypeId="2" ParentId="21605" CreationDate="2010-11-26T02:53:43.170" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Electrical Engineering&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have degrees in both EE and CS, and the combination has been a ticket for a successful career working with &lt;strong&gt;embedded microcontroller systems&lt;/strong&gt;.  I happen to design both the hardware and program firmware too (which is best because then you can make system-wide tradeoffs), but in larger companies you might just be doing the firmware part and work with EE's who only design hardware.  In any case, a background in electronics is an asset when you are trying to decipher datasheets like &lt;a href=&quot;http://ww1.microchip.com/downloads/en/DeviceDoc/70591C.pdf&quot; rel=&quot;nofollow&quot;&gt;this one&lt;/a&gt; for a dsPIC33F which are full of register layouts, hardware block diagrams and reference schematics.  It is also very useful to be able to read a schematic so you can probe a signal with a digital oscilloscope or logic analyzer.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-11-26T03:00:42.567" LastActivityDate="2010-11-26T03:00:42.567" CommentCount="1" />
  <row Id="21617" PostTypeId="1" AcceptedAnswerId="21636" CreationDate="2010-11-26T03:13:08.760" Score="4" ViewCount="162" Body="&lt;p&gt;I just wan't to ask, is it ok to put a GPL notice inside a small script or a snippet? &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;This program is free software: you can redistribute it and/or modify&#xA;  it under the terms of the GNU General Public License as published by&#xA;  the Free Software Foundation, either version 3 of the License, or&#xA;  (at your option) any later version.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;This program is distributed in the hope that it will be useful,&#xA;  but WITHOUT ANY WARRANTY; without even the implied warranty of&#xA;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&#xA;  GNU General Public License for more details.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;You should have received a copy of the GNU General Public License&#xA;  along with this program.  If not, see &lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Or just the Copyright notice will be enough?&lt;/p&gt;&#xA;" OwnerUserId="8015" LastActivityDate="2010-11-26T06:29:57.500" Title="GPL Notice on Snippets" Tags="&lt;gpl&gt;&lt;snippets&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="21618" PostTypeId="2" ParentId="21617" CreationDate="2010-11-26T03:47:43.943" Score="3" ViewCount="" Body="&lt;p&gt;Everything you need to know about that should be here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.gnu.org/licenses/gpl-howto.html&quot; rel=&quot;nofollow&quot;&gt;http://www.gnu.org/licenses/gpl-howto.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Out of curiosity, why would you make a snippet GPL?  Making a code snippet GPL pretty much makes it useless for anyone except those writing software that is also GPL.  Seems to me the LGPL (or even the MIT) license would make more sense.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-26T03:47:43.943" CommentCount="4" />
  <row Id="21619" PostTypeId="2" ParentId="21612" CreationDate="2010-11-26T03:58:14.430" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Can you use both Python and PHP in one site?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Of course you can: each unique URI can invoke a script of any type. Additionally, one script can invoke any number of scripts in other languages. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The real question is if you really want to use multiple languages, and if you do how you split up the responsibilities. &lt;/p&gt;&#xA;" OwnerUserId="8151" LastEditorUserId="8151" LastEditorDisplayName="" LastEditDate="2010-11-26T04:27:48.167" LastActivityDate="2010-11-26T04:27:48.167" CommentCount="2" />
  <row Id="21620" PostTypeId="2" ParentId="21612" CreationDate="2010-11-26T03:59:17.787" Score="0" ViewCount="" Body="&lt;p&gt;I won't touch the first question as it's too open-ended and we don't know your needs. @Rook gave you a good starting point so you can answer the question for yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for mixing languages on a website, sure, you can. PHP, Python, Perl, Ruby, Java and lots of other languages can peacefully coexist on a website, and often do because each language has some features that fit particular uses better than others. Some companies try to restrict what is on the backend but still the technologies can easily compliment each other.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-11-26T03:59:17.787" />
  <row Id="21623" PostTypeId="1" CreationDate="2010-11-26T04:29:22.780" Score="3" ViewCount="330" Body="&lt;p&gt;What is the best way to improve your skills in software architecture? We were taught design patterns in university, and I see plenty of books with simple and straight forward examples, but aside from them, how can you learn good architecture? In other words, how does one evolve into a great architect? What are the prerequisites?&lt;/p&gt;&#xA;" OwnerUserId="8579" LastActivityDate="2010-11-26T06:30:23.180" Title="How to improve skills in software architecture" Tags="&lt;career&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="2" />
  <row Id="21624" PostTypeId="2" ParentId="8721" CreationDate="2010-11-26T04:35:20.343" Score="1" ViewCount="" Body="&lt;p&gt;The general consensus is &quot;write more code&quot;, which I agree with, but I'll add to that advice that you should write a lot of different kinds of code. Java is fine as far as languages go, but you should definitely write code both up and down the power spectrum. In addition to Java, I'd suggest doing a few small projects in a lower level language (C is a good one for this), a scripting language (I prefer perl, but python is also a good choice), a functional language (lisp is the general recommendation here, but OCaml and Haskell are also good choices), and at least get comfortable with reading an assembly language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, pick some variety in the types of programs you implement. Look at implementing at least a Desktop GUI, a rich web application, a network client and server, a driver, a data munging utility, a ray tracer, and a physics simulation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of the projects should be relatively small in scope, the goal isn't to have a featurefull program, but to get a wide breadth of experience in the different domains you might run into, to learn the different types of thinking needed for each, and to find out where your interests are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you've done that, you'll have a good idea of what type of programming you're the most interested in, and you can find or start an open source project to get experience working on large code bases, dealing with long-term projects, and working with other developers.&lt;/p&gt;&#xA;" OwnerUserId="7042" LastActivityDate="2010-11-26T04:35:20.343" />
  <row Id="21625" PostTypeId="2" ParentId="21623" CreationDate="2010-11-26T04:43:38.633" Score="5" ViewCount="" Body="&lt;p&gt;Personally, I'd say that I've learned more from sheer trial and error than I have from reading.  You might be surprised at how many of the crazy ideas you have turn out to be good and the number of brilliant ideas that turn out to be terrible.  But you never know that until you try.  This is just as true when you first start writing the code as when you're halfway through it.  Don't stick to an architecture that doesn't work just because it's what you've already decided on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, spend the time to think your solution through.  Do your best not to listen to coworkers and managers who pressure you not to think things through and just start coding.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-26T04:45:11.117" LastActivityDate="2010-11-26T04:45:11.117" CommentCount="1" />
  <row Id="21627" PostTypeId="2" ParentId="21535" CreationDate="2010-11-26T05:06:53.277" Score="1" ViewCount="" Body="&lt;p&gt;&lt;b&gt;Have levels of privileges&lt;/b&gt;&#xA;In some cases, usefulness does not apply as criteria for monitoring internet activity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From limited access upto unrestricted access.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Say, Junior-most developers/trainess have no access and no file download rights. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One level up, maybe access to forums and QA sites related to field and/or restricted download bandwidth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another level up, no download restrictions but site monitoring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And even higher, you can decide how much you want to relax for the top management.(most probably unrestricted)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: &#xA;If it were upto me I'd only put restrictions on file download rights. Site monitoring is somewhat self-imposed by the workplace environment, I feel.(Or you can even take a signed undertaking for such things and deal with cases that get extremely out of hand.) &#xA;I wouldn't waste time on that. But watching my bandwidth? Yes.&lt;/p&gt;&#xA;" OwnerUserId="3995" LastEditorUserId="3995" LastEditorDisplayName="" LastEditDate="2010-11-27T05:13:11.277" LastActivityDate="2010-11-27T05:13:11.277" CommentCount="3" />
  <row Id="21628" PostTypeId="2" ParentId="20080" CreationDate="2010-11-26T05:10:59.437" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;One of the questioned questions is mine, so let me reiterate.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Many developers mistake the presence of lot of &lt;code&gt;isset()&lt;/code&gt; as quality sign. It gives an appearance of reliability and some people think of it even as security feature. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you have to take into account that PHP is not a compiled language. It's a scripting language with a dynamic type system. E_NOTICE errors are only errors by name. And if lots of &lt;code&gt;isset&lt;/code&gt; are used with the sole &lt;em&gt;intention&lt;/em&gt; of suppressing the notices, then you are actually just &lt;strong&gt;coding against the language&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;So, are PHP devs just lazy? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That is indeed the case if you see an abundance of notices and warnings thrown. Lot's of newbies don't care about notices, and it's usually the result of a completely disabled &lt;code&gt;error_reporting(0)&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are however mistaken that other developers didn't recognize E_NOTICEs just because they weren't @ or isset-suppressed. At least that was my intention behind the &lt;a href=&quot;http://stackoverflow.com/questions/4158486/e-notice-e-debug-avoiding-isset-and-with-more-sophisticated-error-handle&quot;&gt;retaining notices question&lt;/a&gt;. They aren't something to get rid of, but occasionally important debug info.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like all generalizations, the inconsiderate use of isset doesn't lead to optimal code. It's important to differentiate where &lt;code&gt;isset&lt;/code&gt; and &lt;code&gt;empty&lt;/code&gt; are necessary and where they are &lt;strong&gt;syntactic salt&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Or is this solely a PHP culture issue?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No, undefined variable &quot;errors&quot; are not a PHP problem alone. Bash, TCL and Perl or JavaScript allow the use of undefined variables. This immanent language feature isn't seen as defect there however. There are similar language constructs to check for undefined values. However they aren't as constantly used as in PHP, due to undef values not being mischaracterized as &quot;error&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1245" LastActivityDate="2010-11-26T05:10:59.437" />
  <row Id="21629" PostTypeId="2" ParentId="21623" CreationDate="2010-11-26T05:12:33.060" Score="7" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Network&lt;/strong&gt;. Get to know some good architects. Talk to them. Learn from them, and bounce ideas off of them.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Read voraciously&lt;/strong&gt;. There are hundreds of books on software architecture (several good ones even). Read on topic, and read related topics (building architecture, management structures, electrical engineering, operational architecture, etc.).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Study architecture&lt;/strong&gt;.  There are thousands of platforms and products out there. Look at them. Dissect their parts. Some of my best learning early on was from looking at &lt;em&gt;great&lt;/em&gt; architectures (look at the little languages, packed files, and simple structures in the original Doom source, for example).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Think, sketch, try&lt;/strong&gt;. Practice your design skills on imaginary problems. Fun problems. Interesting problems.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Do&lt;/strong&gt;. Work on real systems. Ship them. Feel the pain caused by your poor decisions, the pain you cause your developers, and learn from it.  Good architecture is in balancing what you get, how you get there, and how much it costs.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8151" LastActivityDate="2010-11-26T05:12:33.060" CommentCount="3" />
  <row Id="21630" PostTypeId="2" ParentId="21403" CreationDate="2010-11-26T05:54:47.623" Score="1" ViewCount="" Body="&lt;p&gt;Software projects of all sizes &quot;tend to fail&quot; or &quot;have cost overruns.&quot; You don't hear about the cost overrun at the business around the corner, but you &lt;em&gt;do&lt;/em&gt; hear about things like the FBI Virtual Case system, or the Denver Airport baggage handling system. So I will make the claim that not all large systems fail, nor do all large systems have cost/schedule overruns. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've come across large systems that came in on time (the schedule moved &lt;em&gt;once&lt;/em&gt; and only once during the project) and on spec (I had no access to budgetary information as we were just 1 of many suppliers). One that impresses me still (and I've written a bit about it on this site) was a large integrated customer management system for a large (in the first 100 of the fortune 500) financial client. I estimate that they blew about $100k/day (for more than a year) on peoples' salaries during conference calls. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the case of the baggage handling system, the software managers said &quot;based on projects of this size and complexity, it will take 4 years to build and debug this system.&quot; The sales and executive managers said &quot;the airport opens in 2 years, we told the client it will take 2 years, so you have 2 years to do it.&quot; The test to see if you are a programmer or a mismanager is a simple answer to the following question: &quot;was the baggage handling system late or on time?&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the customer knows exactly what they want (and very few do), they will be very far along the path to keeping costs and time under control (and these are the folks who tend to do quite well offshoring). If your project has to meet every single possible feature that your customers can possibly dream up, and every single department has veto power over when their pet goldbricks get added to the project, then you are doomed to abject failure from the start (like the FBI's VCF project). &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-26T05:54:47.623" CommunityOwnedDate="2011-01-29T04:58:02.993" />
  <row Id="21631" PostTypeId="1" AcceptedAnswerId="21640" CreationDate="2010-11-26T06:04:18.227" Score="8" ViewCount="400" Body="&lt;p&gt;Hi everybody. So that's my story: one of my colleagues uses to review all the code, hosted to revision system. I'm not speaking about adequate review of changes in parts that he belongs to. He watches the code file to file, line to line. Every new file and every modified. I feel just like being spied on!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My guess is that if code was already hosted to control system, you should trust it as workable at least. My question is, maybe I'm just too paranoiac and practice of reviewing each others code is good?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S: We're team of only three developers, and I fear that if there will be more of us, colleague just won't have time to review all the the code we'll write.&lt;/p&gt;&#xA;" OwnerUserId="5350" LastActivityDate="2011-02-06T21:17:14.937" Title="Should my colleagues review each others code from source control system?" Tags="&lt;programming-practices&gt;&lt;version-control&gt;&lt;collaboration&gt;" AnswerCount="11" FavoriteCount="1" />
  <row Id="21632" PostTypeId="2" ParentId="21631" CreationDate="2010-11-26T06:12:48.007" Score="1" ViewCount="" Body="&lt;p&gt;You feel it as being spied on(!)? But from your colleague perspective I would say he is doing the right things for his career development. Read others code and find how do they design and implement the logic, this will gain you a lot!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO if some one point out something wrong in your code, you must accept it and learn from them about how to write a good code&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-11-26T06:12:48.007" />
  <row Id="21633" PostTypeId="2" ParentId="21631" CreationDate="2010-11-26T06:14:01.960" Score="12" ViewCount="" Body="&lt;p&gt;If said colleague provides good and constructive feedback, this is a fantastic thing and you should appreciate it very much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This &lt;em&gt;WILL&lt;/em&gt; catch bugs you didn't think of when writing it.  This &lt;em&gt;WILL&lt;/em&gt; result in you writing better code because you know that others will see it.  &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-26T06:14:01.960" />
  <row Id="21634" PostTypeId="2" ParentId="21623" CreationDate="2010-11-26T06:18:26.200" Score="1" ViewCount="" Body="&lt;p&gt;A coder thinks about solving the problem; an architect thinks about maintaining the solution, limits the implementation imposes on the solution, areas of the implementation to improve as time permits, areas of the implementation that can be left out or reduced in scope if the schedule slips, dependencies (both internal and external) that can impact the performance of the implementation and things that can be done to limit the risk exposure, the training required for new users of the system, the documentation being developed and changes needed as the implementation deviates from the envisioned solution, and how the stake holders feel about the progress that is being made and the applicability of the implementation to the actual problem being solved.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being an architect requires you to be able to communicate effectively, organize your thoughts and plans into a workable schedule, decompose a problem into implementable pieces, build prototypes of technically challenging pieces, and coordinate the implementation of the pieces so that everything finishes on time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn to diagram your solution using &lt;a href=&quot;http://www.sparxsystems.com.au/&quot; rel=&quot;nofollow&quot;&gt;Enterprise Architect&lt;/a&gt;, &lt;a href=&quot;http://office.microsoft.com/en-us/visio/&quot; rel=&quot;nofollow&quot;&gt;Visio&lt;/a&gt;, or pencil and paper.  As mentioned in other answers, get an architect mentor and share your solution diagrams with them for review.  Listen to the feedback and revise your diagrams.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn to build realistic schedules.  Start tracking how long it takes you to implement things, and keep track of how close you are to correctly estimating how long it takes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Break down your next assignment into small pieces before you start coding and keep track of the steps you left out.  Learn to anticipate problem areas and prototype them before you start coding the final solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The article linked by &lt;a href=&quot;http://programmers.stackexchange.com/users/2567/pierre-303&quot;&gt;Pierre 303&lt;/a&gt; over in &lt;a href=&quot;http://programmers.stackexchange.com/questions/5019/do-all-most-programmers-aspire-to-become-an-architect/5319#5319&quot;&gt;this answer&lt;/a&gt; to a similar question is worth adding here as well: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Who needs an architect&lt;/em&gt;&lt;/a&gt; from Martin Fowler&lt;/p&gt;&#xA;" OwnerUserId="1609" LastEditorUserId="1609" LastEditorDisplayName="" LastEditDate="2010-11-26T06:30:23.180" LastActivityDate="2010-11-26T06:30:23.180" />
  <row Id="21635" PostTypeId="1" CreationDate="2010-11-26T06:26:06.273" Score="19" ViewCount="875" Body="&lt;p&gt;Just wondering what benefits has programming brought to all of us.&lt;/p&gt;&#xA;" OwnerUserId="3315" LastEditorUserId="3315" LastEditorDisplayName="" LastEditDate="2010-11-26T07:43:52.683" LastActivityDate="2011-04-27T16:15:11.720" ClosedDate="2010-12-30T09:00:44.010" Title="How has programming benefited and enriched your life?" Tags="&lt;programming&gt;&lt;lifestyle&gt;&lt;benefits&gt;" AnswerCount="25" CommentCount="3" FavoriteCount="7" />
  <row Id="21636" PostTypeId="2" ParentId="21617" CreationDate="2010-11-26T06:29:57.500" Score="4" ViewCount="" Body="&lt;p&gt;You are correct that you should:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Assert Copyright&lt;/li&gt;&#xA;&lt;li&gt;Grant people explicit rights to use, modify and distribute your code.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In many places, the idea of public domain is not recognized. In order for someone to be able to (legally) use your code, there must be something that says that they can, and under what conditions. For snippets, I highly recommend the 3 clause BSD style license. It asserts your copyright, tells people that they are free to do whatever they like with the code, so long as they preserve your copyright when distributing it via source and tells them that they can't use your name to endorse derived works of the code without your permission.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The GPL has very specific definitions of what should happen when you combine GPL covered work with something else. The GPL has to prevail as the dominate license in the code base, which means someone using your snippets inherits the GPL. The LGPL (known as the library GPL, or lesser GPL) is more suited for that, because it allows linking without inheriting the license. Still, if you're going to take the teeth out of the GPL, you might as well use a much simpler license.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another excellent choice would be the MIT license, which is very similar to the three clause BSD style license. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, if you must use the GPL, please indicate &quot;Version 2 or later&quot; if at all possible. This ensures that your code can work in places where a tree might be using &quot;Version 2 Only&quot;, which is quite common. A substantial portion of the Linux kernel specifies version 2 only, GPL3 (while widely accepted) was met with a fair amount of criticism and rejection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not discounting the importance, significance or usefulness of the GPL. I'm just suggesting that it might not be the best choice for snippets and libraries. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-26T06:29:57.500" CommentCount="1" />
  <row Id="21637" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T06:31:15.403" Score="8" ViewCount="" Body="&lt;p&gt;Well, my first and most obvious answer is that it gives me pleasure every single day. It is what I love doing. Going to work feels like going on a play-date when you were small.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from that, almost everything in the world today is electronic. You need programmers to write the code for these machines. Great benefit there :)&lt;/p&gt;&#xA;" OwnerUserId="8478" LastActivityDate="2010-11-26T06:31:15.403" />
  <row Id="21638" PostTypeId="2" ParentId="21601" CreationDate="2010-11-26T06:32:49.323" Score="0" ViewCount="" Body="&lt;p&gt;You may already have the data available to help communicate to your support team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a ticketing system to track bugs and feature requests, you can easily provide automated reports when tickets are resolved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Likewise your source control system can used to deliver a changelog for each release with each atomic checkin (&quot;ie: Bug #12345 fixed&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't have any of the systems above, you've got other problems waiting to happen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;During your product testing phase (after code is changed, before it is released), this is the ideal time to produce changelogs and communicate with support staff. During this time don't bombard them with huge lists, just give them an itemised list of features and bugs that have been addressed - and provide links to the appropriate systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't have dedicated testers - I'd consider pulling one of your longer-term support guys into such a role - they'll help you release less-buggy code and can make sure someone is responsible for putting together documentation for the support team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just a few thoughts :)&lt;/p&gt;&#xA;" OwnerUserId="7641" LastActivityDate="2010-11-26T06:32:49.323" />
  <row Id="21639" PostTypeId="1" AcceptedAnswerId="21641" CreationDate="2010-11-26T06:34:11.617" Score="4" ViewCount="205" Body="&lt;p&gt;I am currently doing my masters in CS at UC Irvine. I have 8 months of IT experience after my undergrad as an ETL developer working on Datastage and Teradata. I am good with writing and optimizing SQL and working with a Unix based OS. I have taken a lot of programming courses and I'd like to get a job as a software engineer. My programming skills are below average, but I'm working on getting it up to scratch.&#xA;Any ideas on how I can get the job while showing my unrelated experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of startup's and big companies come to campus, But I'm afraid that showing them all this IT experience will hinder my chances to get employed as a coder.&lt;/p&gt;&#xA;" OwnerUserId="8583" LastActivityDate="2010-11-29T15:14:22.207" Title="How to get a Programmer Job with IT experience after doing a Masters in CS" Tags="&lt;career&gt;&lt;software-developer&gt;&lt;etl&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="1" />
  <row Id="21640" PostTypeId="2" ParentId="21631" CreationDate="2010-11-26T06:36:22.920" Score="18" ViewCount="" Body="&lt;p&gt;I would say YES!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two quick reasons for it:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) If code is in production, you cannot assume that it is correct. Any change elsewhere in the system can introduce bugs. I think it is very important that code be checked regularly. This way, refactoring is done on a regular basis, keeping the code neat and &quot;more&quot; correct (up to date is probably bettter).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Being able to read code is a very important skill if you are going to be a programmer. And a skill it is, something you need to work on. For any programmer starting work on an existing code base, if he is not used to reading other people's code, there is a steep learning curve trying to get up to date with what is going on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not think you should feel spied on. Accept any critique someone gives you (if it is valid of course). And feel free to give other people VALID critique. It is the way we learn. Once we stop learning (or want to stop), then there are big problems.&lt;/p&gt;&#xA;" OwnerUserId="8478" LastActivityDate="2010-11-26T06:36:22.920" />
  <row Id="21641" PostTypeId="2" ParentId="21639" CreationDate="2010-11-26T06:45:13.883" Score="3" ViewCount="" Body="&lt;p&gt;If your coding is below-average, the first thing I will tell you is to code-code-code until you feel more confidant about yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think you should be afraid of applying to the start-ups and other companies coming to your campus. When companies like that (I also started as a fresh grad the company I work for now) come to campus, they realize that the are recruiting graduate students (albeit under or post). They realize that there is a learning curve for the new guys when they start working and they cater for that. They give you time to adapt and grow and learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think your IT experience will be a hinder. If nothing else, it will show them that you are serious in the field that you chose. Not everything is about skill. If you show that you are determined, willing to learn and grow, that is a very important quality that employers want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helped. Believe in yourself man!&lt;/p&gt;&#xA;" OwnerUserId="8478" LastActivityDate="2010-11-26T06:45:13.883" />
  <row Id="21642" PostTypeId="2" ParentId="19893" CreationDate="2010-11-26T06:46:16.670" Score="5" ViewCount="" Body="&lt;p&gt;This part is quite concerning:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;General users are on Windows 2003 server with Terminal Services. They connect using WYSE thin-clients over an RDP connection. Admin staff has their own PCs with XP or higher. Users are allowed to specify their own resolution although they are limited to using IE as the web browser.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;WPF is not great over Remote Desktop/Thin client connections. Animations will not be smooth and any complex images (even gradients) will slow the UI response down to a crawl. Admin staff with typical retro XP machines will also most likely have performance problems with complex WPF applications (because of tiny amounts of RAM and bad GPUs).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you go the WPF route for rich graphics, be prepared for last minute performance hacks when you find out that the target machines are ten years old. Stick to static screens and use .NET 4.0 as the WPF performance has improved dramatically since 3.5.&lt;/p&gt;&#xA;" OwnerUserId="8581" LastActivityDate="2010-11-26T06:46:16.670" CommentCount="1" />
  <row Id="21643" PostTypeId="2" ParentId="21575" CreationDate="2010-11-26T06:57:50.440" Score="3" ViewCount="" Body="&lt;p&gt;I have the following comment in a code base that I'm currently working on:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/*&#xA; * Every time I see this function, I want to take a shower.&#xA; */&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I know, very well the situation you are describing. What I do is try (my best) to wait until things settle down and any kind of 'creep' has 'crept' all that it's going to do. By that time, you probably have something usable released, and you can take some time to clean things up and implement stuff a bit differently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can't run around cleaning up lots of little messes repeatedly. That just triples your work, and frustration. Wait for it to become one bigger, but hardly moving mess and then you can do something about it.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-26T06:57:50.440" CommunityOwnedDate="2011-03-03T13:15:32.770" />
  <row Id="21644" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T07:33:43.750" Score="14" ViewCount="" Body="&lt;p&gt;We can create apps for ourselves to solve our own or others' problems or improve efficiency.&lt;/p&gt;&#xA;" OwnerUserId="526" LastActivityDate="2010-11-26T07:33:43.750" CommentCount="3" />
  <row Id="21645" PostTypeId="2" ParentId="21403" CreationDate="2010-11-26T07:39:38.273" Score="6" ViewCount="" Body="&lt;p&gt;Steve McConnell (of &quot;Code Complete&quot; fame) has a list of the &lt;a href=&quot;http://www.stevemcconnell.com/rdenum.htm&quot; rel=&quot;nofollow&quot;&gt;classic mistakes&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-26T07:39:38.273" CommunityOwnedDate="2011-01-29T04:58:02.993" CommentCount="1" />
  <row Id="21646" PostTypeId="2" ParentId="21304" CreationDate="2010-11-26T07:39:45.040" Score="0" ViewCount="" Body="&lt;p&gt;Your problem has nothing to do with Agile. They should have produced the documentation that you asked for. The project was poorly managed. &lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-11-26T07:39:45.040" />
  <row Id="21647" PostTypeId="2" ParentId="21639" CreationDate="2010-11-26T07:44:38.177" Score="1" ViewCount="" Body="&lt;p&gt;You have nothing to be afraid of, in fact you should feel slightly empowered if not border line arrogant.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, don't get full of yourself but you should have more confidence if not that will be your downfall, not your experience. Your experience can only help you!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apply every ware you feel comfortable working, You have nothing to loose!&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-11-26T07:44:38.177" CommentCount="0" />
  <row Id="21648" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T07:50:19.063" Score="5" ViewCount="" Body="&lt;p&gt;Logical thinking and contingency plans.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Downside is skepticism. &lt;/p&gt;&#xA;" OwnerUserId="3057" LastActivityDate="2010-11-26T07:50:19.063" CommentCount="2" />
  <row Id="21649" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T07:58:54.363" Score="2" ViewCount="" Body="&lt;p&gt;What I'm pleasured of, is that i love my job. It is a really thing I enjoy and get paid for it. Another thing is that programmers are so necessary today, and they will be tomorrow, and next year, so it keeps me ensured in tommorow.&lt;/p&gt;&#xA;" OwnerUserId="8586" LastActivityDate="2010-11-26T07:58:54.363" />
  <row Id="21650" PostTypeId="2" ParentId="21631" CreationDate="2010-11-26T08:00:43.287" Score="3" ViewCount="" Body="&lt;p&gt;Your colleague sounds like a diligent developer, you should follow his example.&lt;/p&gt;&#xA;" OwnerUserId="4730" LastActivityDate="2010-11-26T08:00:43.287" />
  <row Id="21651" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T08:08:21.987" Score="4" ViewCount="" Body="&lt;p&gt;Young (geek) women think I'm a kind of rockstar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or maybe I'm just wishing that's what they think.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-11-26T08:08:21.987" />
  <row Id="21652" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T08:12:12.373" Score="3" ViewCount="" Body="&lt;p&gt;I didn't have life before I started programming. ;-)&lt;/p&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-11-26T08:12:12.373" CommentCount="2" />
  <row Id="21653" PostTypeId="2" ParentId="21601" CreationDate="2010-11-26T08:20:18.970" Score="3" ViewCount="" Body="&lt;p&gt;First thing to know is that at the end of the iteration, &lt;strong&gt;you don't have to release&lt;/strong&gt;. The objective is to have a &lt;strong&gt;potentially shippable&lt;/strong&gt; increment of the software, not necessarily to release it. Product owner should decide when to release.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Increase Collaboration&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;When you decide to release, it is quite obvious that the support is being informed and/or trained with the new changes. The support should be involved in the process. They should also be informed which bug has been fixed so they can inform the customers in the support ticket.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on your situation it may be a good idea to invite one or more support team member to the &lt;strong&gt;spring planning&lt;/strong&gt; meeting. It's also a good idea to invite them to the &lt;strong&gt;sprint review&lt;/strong&gt; meeting as well. Try it to see if it works for you.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Write a Definition of Done&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Each feature your developers build should comply to a &lt;a href=&quot;http://www.scrumalliance.org/articles/106-definition-of-done-a-reference&quot; rel=&quot;nofollow&quot;&gt;Definition of Done&lt;/a&gt; you write and maintain that matches your organization &amp;amp; product specificities. Here is an example of &lt;strong&gt;DoD&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Code build, committed in the repos&lt;/li&gt;&#xA;&lt;li&gt;Unit test coverage 80%&lt;/li&gt;&#xA;&lt;li&gt;Technical documentation completed (just enough)&lt;/li&gt;&#xA;&lt;li&gt;End user documentation completed (just enough)&lt;/li&gt;&#xA;&lt;li&gt;Reviewed &amp;amp; approved by another developer&lt;/li&gt;&#xA;&lt;li&gt;Fully tested&lt;/li&gt;&#xA;&lt;li&gt;What's new file updated&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The concept of Definition of Done alone is a strong company anti-procrastination technique. It forces you to advance, ... to ship.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once a feature is &quot;done&quot;, you have everything to release it already. Including what is needed by your support team.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Support Is Useful For Developers&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I personnaly &lt;a href=&quot;http://programmers.stackexchange.com/questions/11874/how-to-you-sell-support-as-an-career-option/11938#11938&quot;&gt;love support&lt;/a&gt;. It's the best source of strategic information for your software. It is better than any market study. This is why I think having developers in the support helps you to build on quality. Remember the expression &lt;a href=&quot;http://www.wordspy.com/words/throwitoverthewall.asp&quot; rel=&quot;nofollow&quot;&gt;Throw it over the wall&lt;/a&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also think the product owner should be involved.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-26T08:20:18.970" CommentCount="1" />
  <row Id="21654" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T08:32:13.463" Score="21" ViewCount="" Body="&lt;p&gt;Programming has given me a Zen outlook on life. For me, it's a deep form of meditation. It satisfies my creative urge while also letting me experience and explore all kinds of new and different ideas, people, and ways of thinking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That and it's simply a very deeply rewarding and satisfying pastime, paid or not.&lt;/p&gt;&#xA;" OwnerUserId="2107" LastActivityDate="2010-11-26T08:32:13.463" CommentCount="5" />
  <row Id="21655" PostTypeId="2" ParentId="21631" CreationDate="2010-11-26T08:37:43.293" Score="0" ViewCount="" Body="&lt;p&gt;This happened in my team once. Unfortunately it resulted in a blame game. People continously waited for others to check-In the code and would always try to find something wrong in it and played the blame game all the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope you have a more matured audience.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-11-26T08:37:43.293" CommentCount="2" />
  <row Id="21656" PostTypeId="2" ParentId="20586" CreationDate="2010-11-26T09:04:54.220" Score="5" ViewCount="" Body="&lt;p&gt;Well,You can hit two birds by reading &lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book.html&quot; rel=&quot;nofollow&quot;&gt;SICP&lt;/a&gt; ;One is learning LISP(i mean scheme is a dialect of Lisp) and other is great insight into how to program.Period!!&lt;/p&gt;&#xA;" OwnerUserId="3057" LastActivityDate="2010-11-26T09:04:54.220" CommentCount="1" />
  <row Id="21657" PostTypeId="2" ParentId="21631" CreationDate="2010-11-26T09:05:58.777" Score="0" ViewCount="" Body="&lt;p&gt;This is quite standard practice in industry. The companies I have worked at have very tight code review guidelines. One even wouldn't let you commit unless code had been reviewed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't take offence, or feel watched. Think of it as a safety net and a learning experience.&lt;/p&gt;&#xA;" OwnerUserId="1388" LastActivityDate="2010-11-26T09:05:58.777" />
  <row Id="21658" PostTypeId="2" ParentId="21575" CreationDate="2010-11-26T09:06:36.480" Score="5" ViewCount="" Body="&lt;p&gt;With all the comments about over-estimating I think that there's a modest amount of point (well opportunity) being missed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its not about estimating the time taken make the change (just) and then adding some, its about estimating the time required to modify the code (refactor!) to bring it to a point where the change may be safely made and to then make the change (probably somewhat munged together). Ok, this amounts to the same thing... but there's no question of fudging or stretching or over-estimating, its simply a matter of saying that in order to do this I first need to do that and this is how long it will take in total. Key here is that you work on those parts of the system that the change is dependent on and no more - if there's horrid code elsewhere... tough, catch it when you're there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To come back to the original question a bit - after a lot of years its come down to this for me, when you implement something unless you &lt;em&gt;know&lt;/em&gt; (not believe, not expect (suspect?), not think but &lt;em&gt;know&lt;/em&gt;) that additional stuff is also required then you should do what you need to implement that requirement and no more in as tidy and elegant a fashion as you can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you come to implement the next thing - some while later - you take the steps required to bring the codebase (and the database and whatever) to the state needed to implement that functionality as in as tidy and elegant a fashion as you can. This refactoring is where you deal with the mess that arises naturally as a project evolves - and hopefully avoid creating more mess (or at least keep the level consistent). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the discussion areas here is &quot;Technical Debt&quot; - its like an overdraft, you have to pay it back and the longer you leave it the more interest (in this case time required to correct) you will accrue - which gives you a good argument for spending some of your time minimising the technical debt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is also where unit testing and other automated testing starts to come in (if I could do as well as I say I'm fairly certain I would be a happier person!) combined with a proper build server (that can run at least some of your tests). Combined with those - but of value in an of themselves - are patterns like dependency injection and inversion of control (never quite sure how much the &quot;same&quot; those two are) because they make it easier to change the plumbing and hence deal with changes in isolation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly - remember, if it ain't broke don't fix it. Tidying your code purely for the sake of tidying it &lt;em&gt;may&lt;/em&gt; be satisfying but its also an opportunity to introduce errors so whilst it can be painful if you don't need to change it and are not building upon it it may be better to leave some lumps alone - the opportunity to fix or replace will roll around eventually!&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-11-26T09:06:36.480" CommunityOwnedDate="2011-03-03T13:15:32.770" />
  <row Id="21659" PostTypeId="2" ParentId="21594" CreationDate="2010-11-26T09:10:12.330" Score="2" ViewCount="" Body="&lt;p&gt;Seeing as you have open plan hell (well AT LEAST YOU HAVE CUBES, it could be worse!) one of the things you want to do is encourage everyone who has a conversation to keep their voice down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some people with annoying penetrating voices (the kind that can cut glass), and it seems like about 20% of s/w developers do too. A conversation in the alleyway between cubes affects 4-6 people all around. A loud conversation in a cube affects 1-2 others. Consideration for others dictates that loud or long conversations should be taken to a meeting room where the door can be shut. Loud chats in the alleys need to be stopped.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people take great offence at being told to do this, and claim that it never affects them so its no big deal. Those same people probably never get &quot;into the zone&quot;, so of course it does not affect them. The only solution for the &quot;problem people&quot; is a peer group collectively telling them to stop their behaviour, and a management that backs this up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another one is desk phones - the volume should be very low. And everyone with a loud mobile phone needs to be told in no uncertain terms to wind it back when in the office / use the vibrate option. These kind of distractions drive others crazy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There must be management support for all this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only thing worse than cubes is the total-open-plan benches with no obstruction higher than 3 feet. That REALLY sucks. A conversation at one desk can disrupt 30 other people (been there, done that).&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-11-26T09:10:12.330" CommentCount="1" />
  <row Id="21660" PostTypeId="2" ParentId="21575" CreationDate="2010-11-26T09:11:25.743" Score="1" ViewCount="" Body="&lt;p&gt;Initial proper design cannot help avoiding the problem. And it is almost impossible (or very-very hard) to consider all future &quot;maybe&quot; requirements. So after some time the Big Re-factoring will arrive. And the best solution is to re-write everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a few words: instead of fitting a turret onto the red Ferrari, re-consider the requirements and build a tank.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-11-26T09:11:25.743" CommunityOwnedDate="2011-03-03T13:15:32.770" />
  <row Id="21661" PostTypeId="2" ParentId="21128" CreationDate="2010-11-26T09:19:48.593" Score="1" ViewCount="" Body="&lt;p&gt;a never ending learning process indeed! ...and i think it stays that way! The balance is when things are efficient enough and you have the time to do something else apart from programming as well. I 'll agree with gablin &quot; a matter of discipline and prioritizing&quot; and jim hopkins on that it becomes instinct after a while. I know that perfecting the small parts is what makes us happy but in the end it's all about what makes the end user happy. so i 'd say the balance (or maybe the compromise) is make the end user / customer / client happy first (which should be plan A) and then if there's time work on perfecting - making more efficient your &quot;small parts&quot; and/or everything else you please. At some point you have to say &quot;enough&quot; though :) otherwise yes, it will become an overkill!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the worst case scenario of course is when the end user / customer / client is you! :)&lt;/p&gt;&#xA;" LastActivityDate="2010-11-26T09:55:27.687" />
  <row Id="21662" PostTypeId="2" ParentId="21639" CreationDate="2010-11-26T09:28:51.877" Score="2" ViewCount="" Body="&lt;p&gt;You don't say what KIND of Master's Degree you did.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Was this a Thesis Master's, a Report Master's, or a coursework-only Master's?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this was a Thesis Master's, you have demonstrated to all and sundry that you can carry out a competent research project.  That's more important than your coding skills.  (Note: If this was a Thesis Master's, you probably should have at least considered enrollin in the Ph.D. program.  For not that much more work, you get a doctoral degree, and that carries weight.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it was a Report Master's, you have demonstrated that you can do a SERIOUS study of something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it was coursework-only, you still have much broader knowledge than the typical bachelor's degree candidate, and probably FAR broader knowledge than the Flying Code Monkeys that make up at least 75% (I'm being generous, and lowballing here) of the programming workforce.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These things work in your favor at interview time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would really be nice for you if your Master's Thesis was on something that would allow companies to save money on their IT budgets, by eliminating unnecessary things that you noticed while you were an IT grunt.  That would show that you could pull EVERYTHING together.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-11-26T09:28:51.877" CommentCount="2" />
  <row Id="21663" PostTypeId="1" AcceptedAnswerId="21670" CreationDate="2010-11-26T09:32:03.013" Score="4" ViewCount="488" Body="&lt;p&gt;I am seeing that Microsoft is concentrating too much on F#. What type of language it is going to be and will it replace the C# user base?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the last few months I am noticing Ruby posts in some forums going down whereas Python forums are going up. If Microsoft had not stepped back from IronPython, do you think Python would have ruled C#?&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2010-11-26T17:30:02.133" Title="Do you think F# and Python might rule the future market?" Tags="&lt;c#&gt;&lt;python&gt;&lt;ruby&gt;&lt;f#&gt;" AnswerCount="2" CommentCount="4" FavoriteCount="1" />
  <row Id="21664" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T09:33:15.360" Score="10" ViewCount="" Body="&lt;p&gt;Programming provides human being with a unique way of &lt;strong&gt;creating&lt;/strong&gt; things they are &lt;strong&gt;proud&lt;/strong&gt; of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The action of &lt;strong&gt;creation&lt;/strong&gt; alone provide the human with a great amount of satisfaction. When they are &lt;strong&gt;proud&lt;/strong&gt; of it, it contributes to their &lt;strong&gt;happiness&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO This is why programming is such a great widely spread &lt;strong&gt;passion&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's also why absurd management decisions trying increase &lt;code&gt;productivity&lt;/code&gt; has the opposite effect because it affects programmer's &lt;strong&gt;happiness&lt;/strong&gt; and &lt;strong&gt;pride&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-26T10:28:59.580" LastActivityDate="2010-11-26T10:28:59.580" CommentCount="1" />
  <row Id="21665" PostTypeId="2" ParentId="21631" CreationDate="2010-11-26T09:33:39.610" Score="1" ViewCount="" Body="&lt;p&gt;During 6-7 months I was doing the same. Not to spy, but to control the quality. Every single line of the code for an actively developed application, committed to the central repository, 2 main languages, a few another languages, huge makefiles for 4 platforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;It is very bad practice&lt;/strong&gt;. Some day I found out that I cannot capture everything due to the robustness. The another argument against this is the subjectivity - everybody may get wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is better when developers review each other's codes and there is someone experienced to make final decisions and define directions.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-11-26T09:33:39.610" />
  <row Id="21666" PostTypeId="2" ParentId="21631" CreationDate="2010-11-26T09:42:37.810" Score="4" ViewCount="" Body="&lt;p&gt;It would be healthy if the entire team does code reviews instead of one person. Ideally everyone would invite someone to review their code after completion. It's helpful to keep it informal (keep managers away) and let the reviewer talk you through his/her findings.&#xA;Ideally the reviewer only gives feedback and doesn't do code changes, of course you could pair on it a little.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It really helps to have coding standards to avoid review discussions being about white space and code style constantly. Having some static code analysis on a build machine can be helpful in keeping some discussions out also.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About the time aspect, the theory is that it will save you time. The later faults are found the more expensive they get, fail fast principle. Peer code review can catch quite a bit of problems.&lt;/p&gt;&#xA;" OwnerUserId="3309" LastActivityDate="2010-11-26T09:42:37.810" CommentCount="2" />
  <row Id="21667" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T09:43:26.247" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Programming has been a constant guiding force in my life by slaking my insatiable thirst for knowledge&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This thirst for knowledge has driven me to&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Read more books over a wide range of subject (maths, economics, physics, art, business, Zen, medicine and many others)&lt;/li&gt;&#xA;&lt;li&gt;Be much more sceptical of what I read in the papers and hear in the news &lt;/li&gt;&#xA;&lt;li&gt;Write more and share my knowledge with others&lt;/li&gt;&#xA;&lt;li&gt;Not to panic in the face of an insurmountable problem (especially those in the real world) but instead to observe, reason, break it down and tackle it calmly&lt;/li&gt;&#xA;&lt;li&gt;Another 20 items that would just bore the reader...&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In short, programming continues to give me a quick hit of knowledge that immediately shows the way to the next problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;I solve, therefore I am.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-26T16:52:05.130" LastActivityDate="2010-11-26T16:52:05.130" />
  <row Id="21668" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T10:04:29.247" Score="11" ViewCount="" Body="&lt;p&gt;I can quickly interrupt conversations with some nerd stuff.&lt;/p&gt;&#xA;" OwnerUserId="8601" LastActivityDate="2010-11-26T10:04:29.247" CommentCount="1" />
  <row Id="21669" PostTypeId="2" ParentId="15585" CreationDate="2010-11-26T10:15:27.050" Score="3" ViewCount="" Body="&lt;p&gt;I think one of my more favourite ones is:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;((lambda (x) `(,x ',x)) '(lambda (x) `(,x ',x)))&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Thanks to Sam Steingold (according to my notes, at least).&lt;/p&gt;&#xA;" OwnerUserId="5084" LastActivityDate="2010-11-26T10:15:27.050" CommentCount="1" />
  <row Id="21670" PostTypeId="2" ParentId="21663" CreationDate="2010-11-26T10:20:29.540" Score="9" ViewCount="" Body="&lt;p&gt;In Short: &quot;No&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the Java side there's a similar discussion &quot;Will Scala/Clojure (both functional languages) take over from Java?  Will Jython (Java port of Python) or JRuby take over?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In all of those cases the newer languages all do have some compelling features, but they're all lacking that key factor of having the existing developer base (and I'm not talking about your enthusiastic thought leaders) easily move into the new paradigm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So moving to Java from C++ was easy, moving to C# from Java is really easy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Moving to F# or Python from C#.... hmmm not so much.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-26T10:20:29.540" CommentCount="2" />
  <row Id="21671" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T10:21:17.133" Score="30" ViewCount="" Body="&lt;p&gt;I get child-like satisfaction every time something I wrote works. It's basically an adult version of Lego for me :)&lt;/p&gt;&#xA;" OwnerUserId="1698" LastActivityDate="2010-11-26T10:21:17.133" CommentCount="6" />
  <row Id="21672" PostTypeId="1" CreationDate="2010-11-26T10:21:41.407" Score="0" ViewCount="95" Body="&lt;p&gt;I am a senior year mechanical engineer, from BITS Pilani university India, but apparently I am not that much enthusiastic about continuing my career in it because - 1. I get more ideas in web application development and am currently working on them. 2. I can sit for hours coding these apps without even budging a little.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I have decided to continue my career in doing anything that interests me in CS. Will this decision jeopardize my future? Are good opportunities available for peoples from non-circuit branches in IT? I have applied for internships in IT start-ups, and getting a positive response from their side, should I continue with it, or focus back on my academics? If I should continue, what all do I have to learn theoretically to compete with IT people, as in subjects? I know these are lots of questions, but please help me on this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: I have the passion to beat the odds, just show me some light on the opportunities&lt;/p&gt;&#xA;" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-26T13:35:07.940" LastActivityDate="2010-11-26T13:36:12.527" Title="Career in IT field, for students of non-circuit branches" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="4" />
  <row Id="21673" PostTypeId="2" ParentId="21575" CreationDate="2010-11-26T10:26:07.707" Score="4" ViewCount="" Body="&lt;p&gt;1) &lt;strong&gt;Proper change control is your friend&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the customer changes the specification that's fine, that's his right, however it is a change and it needs to be charged for (or costed in whatever manner is appropriate to the project structure / relationship).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The estimate for that change should include the cost of the &lt;em&gt;necessary&lt;/em&gt; refactoring.  The client may well baulk at what seems to be a high cost but at that point you need to explain to him that because the code is already half written there are elements that need to be rewritten to ensure it's robust and supportable in the future and that if it's not done then he's likely to have problems down the line with future support or changes becoming even more expensive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) &lt;strong&gt;Refactoring Should Be Done Such That Is Provides Genuine Long Term Benefit to the Client&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When considering refactoring you always need to consider what's actually needed and what's important and ensure that the refactoring work provides genuine long term value for money.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After all, we should do these things so the code remains extendable and supportable in the medium / long term to ensure that the client's investment remains valid rather than out of any drive for theoretical perfection.  Refactoring work (and the corresponding estimates) should be done with this as the scope, and not just because you now think there might be a slightly better way to do it.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-26T10:26:07.707" CommunityOwnedDate="2011-03-03T13:15:32.770" />
  <row Id="21674" PostTypeId="2" ParentId="21605" CreationDate="2010-11-26T10:26:34.307" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Design &amp;amp; Communications&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the move towards web applications and SaaS type business models design is becoming what separates those who survive and those who thrive. Delivering web based software requires a lot more thought on the design end because people expect a more elegant experience in the web browser, you also need to make things work the first time for the user because frustration comes quicker when the user sees the application as &quot;just a website&quot;. You don't need to be a rockstar but understanding the basic tennants of good design and user interaction goes a long way towards making better software/applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Communications is important in any business. By communications I mean messaging, rhetoric, and strong writing. I have my Bachelors in Communications and it has helped me get jobs, contracts, and become more valuable to employers because not only do I build the applications but I also explain their usefulness to potential customers through copy writing and messaging. It also helps me work with other people and pitch my ideas better than other developers because I can explain things to non-technical people easily.&lt;/p&gt;&#xA;" OwnerUserId="8603" LastActivityDate="2010-11-26T10:26:34.307" />
  <row Id="21675" PostTypeId="2" ParentId="21672" CreationDate="2010-11-26T10:33:40.040" Score="1" ViewCount="" Body="&lt;p&gt;OK, points in your favour are your passion and the fact that you are doing an engineering degree (so lots of mathematics), good idea on contacting the start-ups, they're more likely to hire out side of the box as it were.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Q: Can you pick up some CS papers as part of your engineering degree?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd go down the path of seeing how the start-up jobs go as well as enrolling in 1 years worth of CS papers (as a diploma on top of your degree).  You can still continue that diploma if you get a job in the start-up (by studying at night etc) and if you're unable to find a job then at least it's only a one year wait before you have the diploma and therefore the CV to compete against the hordes of CS students.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and &lt;em&gt;definitely&lt;/em&gt; join your local technical meetups and communities, you're far more likely to get a job that way than the CV lottery (as your CV doesn't have CS degree written all over it).&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-26T10:33:40.040" />
  <row Id="21676" PostTypeId="1" AcceptedAnswerId="21681" CreationDate="2010-11-26T10:36:55.653" Score="6" ViewCount="153" Body="&lt;p&gt;I've read quite a bit about the positive effects of micro finance in developing countries. Organizations exist that solicit capital from donations and then make micro loans to people for the purpose of setting up some kind of business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The loans are usually quite small, with little to no interest and are well under ten thousand US Dollars, typically reaching only hundreds of dollars. The pay back rate is also excellent. The programs that exist seem to focus on retail and agricultural endeavours, I have yet to see an organization with a focus on technology sectors like software development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you know of any established / credible micro finance organizations that supply micro loans to individuals in order to set up software related businesses? Have the loans been paid back as well as other sectors, such as agriculture and retail?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking globally, so organizations in any country would be appreciated.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-26T10:53:20.803" LastActivityDate="2011-03-22T23:54:34.077" Title="Micro finance in the programming industry" Tags="&lt;financial&gt;&lt;charity&gt;&lt;venture-capital&gt;" AnswerCount="1" CommentCount="10" />
  <row Id="21677" PostTypeId="2" ParentId="21605" CreationDate="2010-11-26T10:39:31.083" Score="1" ViewCount="" Body="&lt;p&gt;Design and ergonomics are very useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1 - If you work in a small startup, you may end up being the designer until they hire someone else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2 - If you work closely with a designer, it's easier to understand how he/she works if you know the vocabulary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3 - When you have to show your app to your boss or to a client, they will remember the way it looks more than what it does theorically. If you know how to make a nice, smooth-looking design, everyone will think your code is nice and smooth as well. &lt;/p&gt;&#xA;" OwnerUserId="6579" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-11-26T15:16:21.967" LastActivityDate="2010-11-26T15:16:21.967" />
  <row Id="21678" PostTypeId="2" ParentId="21601" CreationDate="2010-11-26T10:41:00.077" Score="0" ViewCount="" Body="&lt;p&gt;If you run a demonstration of stories completed in your sprint, get your Support crew into these sessions. The more interactive the demonstration, the better.&lt;/p&gt;&#xA;" OwnerUserId="5380" LastActivityDate="2010-11-26T10:41:00.077" />
  <row Id="21679" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T10:45:03.067" Score="7" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;improved abstract thinking (stuff is more clear in my head)&lt;/li&gt;&#xA;&lt;li&gt;satisfies creative urge (building stuff is nice)&lt;/li&gt;&#xA;&lt;li&gt;IT industry offers a good pay&lt;/li&gt;&#xA;&lt;li&gt;offeres effortless work environment (for the body at least); siting down all day is not that bad&lt;/li&gt;&#xA;&lt;li&gt;last, but not least, it's an easy way to keep boredom away&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-11-26T10:45:03.067" />
  <row Id="21680" PostTypeId="2" ParentId="21672" CreationDate="2010-11-26T10:49:35.737" Score="1" ViewCount="" Body="&lt;p&gt;BITS is a one of the premier institutes in India, after the IITs. So you are lucky in this regard. Continue your studies, finish the degree. Meanwhile also start doing programming projects. You could soon start working somewhere after graduation, given your institute name and the now active resume (You are already getting positive responses, so you can be sure). I also believe you've got campus recruitment from big IT companies that take students irrespective of the branches.&lt;/p&gt;&#xA;" OwnerUserId="6693" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-26T13:36:12.527" LastActivityDate="2010-11-26T13:36:12.527" />
  <row Id="21681" PostTypeId="2" ParentId="21676" CreationDate="2010-11-26T11:04:23.727" Score="6" ViewCount="" Body="&lt;h3&gt;Community Driven Funding&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;The closest thing I know is called &lt;a href=&quot;http://www.kickstarter.com/&quot; rel=&quot;nofollow&quot;&gt;Kickstarter&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What is Kickstarter? We’re the largest funding platform for creative projects in the world&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It is not specifically bound to software development. My understanding is that it is only available to the US market. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;An alternative if you don't like Kickstarter: &lt;a href=&quot;http://www.ulule.com/&quot; rel=&quot;nofollow&quot;&gt;Ulule.com&lt;/a&gt; that is global.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both of them are community driven. Money comes from people like you and me, and not funds or banks.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;National or Regional Fundings&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;In many countries (especially europe) there is local help by governments. In Belgium there is called &quot;&lt;a href=&quot;http://www.aidesdirectes.be/index.php?id=3&quot; rel=&quot;nofollow&quot;&gt;Bourse de préactivité&lt;/a&gt;&quot;. They &lt;strong&gt;give&lt;/strong&gt; up to 12.500 Euros to any individual that will come up with an innovative idea and want to create a business with it. It's a &lt;strong&gt;subsidy&lt;/strong&gt;. There is &lt;a href=&quot;http://www.awex.be&quot; rel=&quot;nofollow&quot;&gt;Awex&lt;/a&gt; that promotes exportation and refund you up to 50% of your charges for your presence in international trade shows or the fact you build a multi-language e-commerce website.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure every country has his own programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft&lt;/strong&gt; has a lot of &lt;a href=&quot;http://www.microsoft.com/mic/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Microsoft Innovation Centers&lt;/a&gt; in the world. Many of them are joint ventures with the local government. They are aware of all financial tools you could use in your local country, and they will certainly help, even if you are not in Microsoft eco-system.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-26T13:41:43.823" LastActivityDate="2010-11-26T13:41:43.823" CommentCount="6" />
  <row Id="21682" PostTypeId="2" ParentId="21672" CreationDate="2010-11-26T11:29:41.833" Score="0" ViewCount="" Body="&lt;p&gt;Complete your studies; just about any company worth working for will recognize the value of any degree in engineering (or any other &quot;hard sciences&quot;) and not exclude you as a candidate for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where I work, computer science grads are in the minority. There are also, as you might expect, a bunch of electrical engineers, but we also have an assortment of mathematicians, physicists, and even an astronomer. My own background is primarily civil engineering, but I knew long ago that I was a software developer at heart.&lt;/p&gt;&#xA;" OwnerUserId="1852" LastActivityDate="2010-11-26T11:29:41.833" />
  <row Id="21683" PostTypeId="2" ParentId="21672" CreationDate="2010-11-26T11:32:55.530" Score="1" ViewCount="" Body="&lt;p&gt;I recommend you to follow your passion (without giving up on your degree of course). Get the degree, but take up offers pertaining to IT/programming as soon as possible. If you take up jobs related only to your degree, sooner or later, you'll be frustrated as your passion lies elsewhere. A friend of mine was very interested in media/writing but couldnt convince his folks about its merits, so once he finished his engineering course, he took up any freelancing projects that he could in the field of his choice. A few years later, he's the founder of a media/publishing startup that's making big news all over the country :). So though he graduated in Electronics, eventually he went where his passions beckoned and made a success of it too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Work on as many personal programming projects as you can...if they are Microsoft based, you can upload them on codeplex.com as open-source. Github is a good site too for open-source.&lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-11-26T11:32:55.530" />
  <row Id="21684" PostTypeId="2" ParentId="18502" CreationDate="2010-11-26T11:49:04.500" Score="1" ViewCount="" Body="&lt;p&gt;Well since everyone before me has had pretty much the same opinion, I'll give my view.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First off, I don't want to be a programmer all my life. Don't get me wrong - I like my job and I am good at what I do. But I couldn't live with it for the next 40 years. I have invested a lot of time and effort in getting to the point I am at, but I'm the type of person who likes to move on to something else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My aim isn't to go into management asap either. Infact by next summer I will be working as an oilfield engineer, travelling the world and working outside. It's my perfect job. The years I've spend programming won't be wasted because it will always be an interest of mine and a hobby - it also shows my attention to detail and desire to learn and improve. When I'm done with that, I'll have a new perspective and decide from there - perhaps even go back into software?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a whole world out there and I don't want to be stuck doing the same thing. You're not limited to two paths: tech or management, and I don't think that time invested in something is wasted once you move on from it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/18502/who-wants-to-keep-developing/18517#18517&quot;&gt;Hounshell said it best:&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Make your own ladder.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-11-26T11:49:04.500" CommunityOwnedDate="2011-01-26T02:24:50.517" CommentCount="1" />
  <row Id="21685" PostTypeId="2" ParentId="21601" CreationDate="2010-11-26T11:52:44.187" Score="0" ViewCount="" Body="&lt;p&gt;Involve Support team representative in weekly client calls (i.e when giving a walk through to your client ) by that even your support team rep will get to know the product better before releasing to client &lt;/p&gt;&#xA;" OwnerUserId="1485" LastActivityDate="2010-11-26T11:52:44.187" />
  <row Id="21686" PostTypeId="2" ParentId="21605" CreationDate="2010-11-26T11:54:35.870" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Domain Knowledge&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you find yourself in a larger organization, having a solid understanding of the domain they operate in (e.g. finance, real estate, etc...) lets you take advantage of training programs, and opportunities for advancement are available outside of your programming scope of work; you might be able to move into a business analyst, or product management role. In my experience companies are always interested in technically competent people who have a solid grasp of their business, and can communicate that understanding clearly. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take a course, or research what it is your company does, what the market looks like, who the competitors are. Take a language, or writing course, do training in project management, see if your employer will partially fund an MBA. I think if your goal is to stay relevant and continuously employable outside of whatever specific technology you work with, domain knowledge is the way to go.&lt;/p&gt;&#xA;" OwnerUserId="6894" LastEditorUserId="6894" LastEditorDisplayName="" LastEditDate="2010-11-26T12:05:55.813" LastActivityDate="2010-11-26T12:05:55.813" />
  <row Id="21687" PostTypeId="2" ParentId="21535" CreationDate="2010-11-26T12:20:02.760" Score="5" ViewCount="" Body="&lt;p&gt;The only valid reason for blocking is as a security precaution and aside from a standard phishing filter at a browser level blocking is the wrong solution to that problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let developers see everything on the condition that:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;They run a firewall and up to date anti-virus&lt;/li&gt;&#xA;&lt;li&gt;They have an anti-phishing filter on&lt;/li&gt;&#xA;&lt;li&gt;They're willing to be held responsible for any malware they introduce to the company if they don't take reasonable basic precautions *.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Beyond that you're more likely to impact productivity than increase it by blocking sites.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sub&gt;* This comes from my experiences with the iloveyou virus where a smart developer I was working with happily clicked on an unknown file with a visible .vbs extension.  If you want to be treated like an adult then you do need to act like one and developers don't (or shouldn't) have the excuse of ignorance.&lt;/sub&gt;&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-26T12:20:02.760" CommentCount="4" />
  <row Id="21688" PostTypeId="2" ParentId="21605" CreationDate="2010-11-26T12:23:10.013" Score="2" ViewCount="" Body="&lt;p&gt;A friend of mine who works in for a large company in the technology industry says he is always interested in technical people with a solid background in &lt;strong&gt;Social Sciences/Language/History&lt;/strong&gt;, amazingly enough.. He told me that a Historian, for instance, is likely to be very good at establishing a narrative with a client regarding requirements, and this helps them to keep focussed on the client during the development process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, my first degree was in English Language and I then went into CS. I'm not saying that I am particularly great at requirements analysis (particularly as I am only approaching the end of my first year in industry), but I have certainly noticed this pattern in the team I work in. I work with 2 developers, who are much more technically adept than me, but frequently take the attitude that they know what the client wants, better than the client does (on account of their vast technical knowledge). I find my stronger communication skills, and greater capacity to elicit and injest the user's story, have helped me to carve a niche for myself in my company, giving our team a nice balance overall.&lt;/p&gt;&#xA;" OwnerUserId="7772" LastActivityDate="2010-11-26T12:23:10.013" CommentCount="1" />
  <row Id="21689" PostTypeId="2" ParentId="21605" CreationDate="2010-11-26T12:23:28.687" Score="2" ViewCount="" Body="&lt;p&gt;Knowledge of Investment Banking (real detailed knowledge, not just a basic understanding)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not always the most riveting but as a general broad category you'll earn more if you can combine technical understanding with knowledge of investment banking than with any other business areas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's not to say that they'll always be great jobs but there is fairly major demand for it.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-26T12:23:28.687" />
  <row Id="21690" PostTypeId="2" ParentId="21463" CreationDate="2010-11-26T12:30:57.820" Score="1" ViewCount="" Body="&lt;p&gt;Writing &quot;cheat&quot; tests is OK, for sufficiently small values of &quot;OK&quot;.  But recall - unit testing is only complete when all tests pass &lt;em&gt;and no new tests can be written that will fail&lt;/em&gt;.  If you really want to have a CalculateFactorial method that contains a bunch of &lt;strong&gt;if&lt;/strong&gt; statements (or even better, a big &lt;strong&gt;switch/case&lt;/strong&gt; statement :-) you can do that, and since you're dealing with a fixed-precision number the code required to implement this is finite (although probably rather large and ugly, and perhaps limited by compiler or system limitations on the maximum size of a procedure's code).  At this point if you &lt;em&gt;really&lt;/em&gt; insist that all development has to be driven by a unit test you can write a test that requires the code to compute the result in an amount of time shorter than that which can be accomplished by following all the branches of the &lt;strong&gt;if&lt;/strong&gt; statement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, TDD can help you write code &lt;strong&gt;which implements requirements correctly&lt;/strong&gt;, but it can't force you to write &lt;strong&gt;good&lt;/strong&gt; code.  That's up to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Share and enjoy.&lt;/p&gt;&#xA;" OwnerUserId="4848" LastActivityDate="2010-11-26T12:30:57.820" />
  <row Id="21691" PostTypeId="2" ParentId="21535" CreationDate="2010-11-26T12:52:38.627" Score="6" ViewCount="" Body="&lt;p&gt;My previous company didn't do any site blocking, but they did put a cap on bytes transferred (It was quite large, reaching it would mean you watched movies for over six hours). We had to institute it because we had a leased line, which was billed via 95'th percentile. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every attempt at a sensible QoS implementation left people more annoyed than anything, needed constant adjustment and still didn't solve the problem of us going (consistently) way over our bandwidth commitment. And that wasn't even the real problem .. there was plenty of bandwidth to compete for. Making one thing 'slower' than another had very little effect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To my knowledge, nobody hit the cap. But, people did restrict their recreational use of the bandwidth to a degree that it quickly became a non-issue again, because they didn't want to have to explain why they hit the cap. It turned out to be a good compromise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really hate the idea of blocking, period. If you want to encourage me to do stuff like have lunch at my desk .. at least let me do some recreational reading or watch a few funny videos. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-26T12:52:38.627" CommentCount="5" />
  <row Id="21692" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T12:55:58.880" Score="8" ViewCount="" Body="&lt;p&gt;Shit loads of money.&lt;/p&gt;&#xA;" OwnerUserId="160" LastActivityDate="2010-11-26T12:55:58.880" CommentCount="3" />
  <row Id="21693" PostTypeId="2" ParentId="21631" CreationDate="2010-11-26T13:30:37.290" Score="1" ViewCount="" Body="&lt;p&gt;Code reviews within a team (using &lt;a href=&quot;http://www.atlassian.com/software/fisheye/&quot; rel=&quot;nofollow&quot;&gt;fisheye&lt;/a&gt;, &lt;a href=&quot;http://www.atlassian.com/software/crucible/&quot; rel=&quot;nofollow&quot;&gt;crucible&lt;/a&gt; or other tools) are extremely important and useful.  the only thing better is direct pair programming to make sure that code that gets into the system the first time is well thought out and has gone through the brain of more than one person.&lt;/p&gt;&#xA;" OwnerUserId="1000" LastActivityDate="2010-11-26T13:30:37.290" />
  <row Id="21694" PostTypeId="2" ParentId="21639" CreationDate="2010-11-26T13:43:17.117" Score="0" ViewCount="" Body="&lt;p&gt;Ksquared - I have been in your shoes. Like others have said, you need to practice, and don't stop practising. At the end of the day, you will need to know how to code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pick a language that suits the industry you are looking at entering, and start your own projects. Easier said than done..&lt;/p&gt;&#xA;" OwnerUserId="1388" LastActivityDate="2010-11-26T13:43:17.117" />
  <row Id="21695" PostTypeId="2" ParentId="21535" CreationDate="2010-11-26T13:45:07.317" Score="1" ViewCount="" Body="&lt;p&gt;I suppose it depends on your reason for blocking.  If you want to block people purely because you’re afraid they’re going to waste company time, then you are not keeping your developers properly occupied.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I for one would much rather get into the zone with an exciting project than spend time on silly things on the web.  Oh, this is of course excluding Friday afternoons...&lt;/p&gt;&#xA;" OwnerUserId="8620" LastActivityDate="2010-11-26T13:45:07.317" />
  <row Id="21696" PostTypeId="1" AcceptedAnswerId="21741" CreationDate="2010-11-26T13:50:58.203" Score="7" ViewCount="263" Body="&lt;p&gt;I'm 21 and didn't go to University and hence completely self-taught from tutorials, screencasts, books etc, but when it came to the decision of what languages to specifically learn, I thought, what's going to the most beneficial to learn, ie. for money, exposure, etc...  So I did the Sun Certified Java Programmer course, but have never used it since, I learned Objective C to make iPhone apps, I have used it lots, I used PHP for web stuff, I've used it lots. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is, if you chose to learn a specific language, was it for money or for a certain job or because your employer needed you to get up to speed on a language for a specific project? I cant really think of any other motivations to be a programmer? Is that shallow??&lt;/p&gt;&#xA;" OwnerUserId="8622" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-26T14:43:47.043" LastActivityDate="2010-11-26T17:32:31.787" Title="Motivation for programming in a specific language" Tags="&lt;programming-languages&gt;&lt;career&gt;&lt;motivation&gt;&lt;decisions&gt;" AnswerCount="6" FavoriteCount="2" />
  <row Id="21697" PostTypeId="1" CreationDate="2010-11-26T13:54:51.727" Score="2" ViewCount="273" Body="&lt;p&gt;I am new to web programming and at this time I am learning about PHP. I would like to know when do I need to use a PHP framework such as CakePHP? What are things that this and other similar PHP frameworks offer for me?  And is it really important to use a framework to be a professional?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;And can I create my own framework to provide the features I like into it?  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="26782" LastEditorUserId="26782" LastEditorDisplayName="" LastEditDate="2010-11-26T14:00:36.343" LastActivityDate="2010-11-26T21:45:25.680" Title="When do I need to use a framework?" Tags="&lt;php&gt;&lt;frameworks&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="21698" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T13:59:58.383" Score="0" ViewCount="" Body="&lt;p&gt;Better planning and organizing skills.  Programming definitely contributed to my ability to solve problems - breaking them up in manageable units.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But on the downside, it feels like I’m slowly losing the ability to connect to people (on a personal level) outside the software realm.&lt;/p&gt;&#xA;" OwnerUserId="8620" LastActivityDate="2010-11-26T13:59:58.383" />
  <row Id="21699" PostTypeId="2" ParentId="21631" CreationDate="2010-11-26T14:03:38.497" Score="3" ViewCount="" Body="&lt;p&gt;I watch our version control system in a similar way. Our codebase is too large to watch every line, but I try to get a high level feel for most changes. I also watch for checkins that are most likely to have side effects and review those line by line. For the minimal time I spend doing this, the payoff is huge. (Also note: I am not the only developer on our team with this habit.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This kind of review tends to catch bugs or invoke discussion on a weekly basis. That saves time when doing QA. The discussions range from best practices to algorithm design and more. The key on this front is that everyone views it as constructive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, it also gives me a greater understanding of what is going on in other parts of the codebase that I don't touch regularly. When others need help, I am able to jump in more quickly. Also, when new ideas appear I can take advantage of them sooner.&lt;/p&gt;&#xA;" OwnerUserId="2715" LastActivityDate="2010-11-26T14:03:38.497" />
  <row Id="21700" PostTypeId="2" ParentId="18502" CreationDate="2010-11-26T14:04:27.213" Score="10" ViewCount="" Body="&lt;p&gt;I don't remember where I read it, but I saw this question that put a nice perspective on it:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;How many painters do you think want to be gallery managers?&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And that's just it: programming, in the same way as painting, is a craft - even art some would say. Programming and managing is two completely different fields altogether, and I don't understand way people think there is a natural progression from one to the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But somehow the distinction seems very clear in the painting example, but not in the software field. So what makes a programmer different from a painter? (I guess &lt;a href=&quot;http://www.paulgraham.com/hp.html&quot; rel=&quot;nofollow&quot;&gt;Paul Graham&lt;/a&gt; would say: &quot;nothing&quot;.)  &lt;/p&gt;&#xA;" OwnerUserId="8338" LastActivityDate="2010-11-26T14:04:27.213" CommunityOwnedDate="2011-01-26T02:24:50.517" />
  <row Id="21701" PostTypeId="2" ParentId="21403" CreationDate="2010-11-26T14:12:16.227" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Perception of Reality&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is the best description of this problem I have ever found. &lt;a href=&quot;http://www.businessballs.com/businessballs_treeswing_pictures.htm&quot; rel=&quot;nofollow&quot;&gt;Tree Swing From businessballs.com&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was introduced to the concept of &lt;em&gt;&quot;Perception of Reality&quot;&lt;/em&gt; early on im my programming carreer. For this I  am truely grateful. I believe that this is the biggest reason that any project fails, not just &lt;strong&gt;IT&lt;/strong&gt; projects.&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-11-26T14:12:16.227" CommunityOwnedDate="2011-01-29T04:58:02.993" />
  <row Id="21702" PostTypeId="1" AcceptedAnswerId="21706" CreationDate="2010-11-26T14:16:03.153" Score="1" ViewCount="120" Body="&lt;p&gt;I have no knowledge of Entity Framework and NHibernate but definitely want to learn. I want to know how to start. Whether to first read documentation of NHibernate or the default Visual Studio Entity Framework?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is Microsoft's Entity Framework a variant of NHibernate?&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2010-11-26T14:35:26.310" Title="Is Microsoft's Entity Framework a proprietary variant of NHibernate?" Tags="&lt;entity-framework&gt;&lt;nhibernate&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="1" />
  <row Id="21703" PostTypeId="2" ParentId="21697" CreationDate="2010-11-26T14:16:56.870" Score="6" ViewCount="" Body="&lt;p&gt;When you're at ease with PHP, you can start using a framework. And you should always use them :&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It is much, much faster than&#xA;re-coding everything&lt;/li&gt;&#xA;&lt;li&gt;It makes modifications easier,&#xA;like changing databases or changing&#xA;views&lt;/li&gt;&#xA;&lt;li&gt;Working with other people will&#xA;be easier too, as they are often&#xA;used to the MVC pattern frameworks&#xA;use&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;You can create your own framework, but I definitely wouldn't recommand it. It's complicated, there are already a lot of good frameworks out there, and it's not likely you will find a missing feature. Beside, they often provide ways to add your own features to them, without having to make a whole new one.&lt;/p&gt;&#xA;" OwnerUserId="6579" LastActivityDate="2010-11-26T14:16:56.870" CommentCount="1" />
  <row Id="21704" PostTypeId="1" AcceptedAnswerId="21707" CreationDate="2010-11-26T14:20:50.810" Score="1" ViewCount="148" Body="&lt;p&gt;Is there any online hosted IDE where we can just try out some code of .NET?&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2010-11-28T10:28:39.213" Title="Visual Studio Web IDE" Tags="&lt;.net&gt;&lt;visual-studio&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="21705" PostTypeId="2" ParentId="21696" CreationDate="2010-11-26T14:31:21.863" Score="0" ViewCount="" Body="&lt;p&gt;Hum... I learned some of them for school, some because my employer asked me to, and some because a needed them for personnal projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are two exceptions though ! I learned Go and Javascript (for Ajax) because it seemed &quot;hype&quot;. So there, another reason.&lt;/p&gt;&#xA;" OwnerUserId="6579" LastEditorUserId="6579" LastEditorDisplayName="" LastEditDate="2010-11-26T14:40:13.853" LastActivityDate="2010-11-26T14:40:13.853" />
  <row Id="21706" PostTypeId="2" ParentId="21702" CreationDate="2010-11-26T14:35:26.310" Score="1" ViewCount="" Body="&lt;p&gt;This is personal opinion, and I must tell you I'm a huge fan of &lt;strong&gt;nHibernate&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm interested in all &lt;strong&gt;Microsoft&lt;/strong&gt;'s initiatives to standardize things. This include in &lt;strong&gt;ORM&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When they released the first version of &lt;strong&gt;Entity Framework&lt;/strong&gt;, they were critized enough to call what happened &lt;strong&gt;The &lt;a href=&quot;http://reddevnews.com/blogs/data-driver/2008/06/adonet-entity-framework-saga.aspx&quot; rel=&quot;nofollow&quot;&gt;ADO.NET Entity Framework Saga&lt;/a&gt;&lt;/strong&gt;. Read that blog post and all the link it points to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Soon after that, the team leader of the project agreed that it got it wrong (I can't find his original blog post, maybe it has been removed).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Today EF framework is very close to &lt;strong&gt;nHibernate&lt;/strong&gt; and I will consider it again in the future because:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Just like Unit Testing, MVC, Ajax, ... EF will eventually become the standard.&lt;/li&gt;&#xA;&lt;li&gt;EF is commercially supported&lt;/li&gt;&#xA;&lt;li&gt;nHibernate is powerful, but has only a few contributors. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;While I'm too familiar with &lt;strong&gt;nHibernate&lt;/strong&gt; to switch today, I would recommend you to go for &lt;strong&gt;Entity Framework&lt;/strong&gt; without any hesitation.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-26T14:35:26.310" CommentCount="2" />
  <row Id="21707" PostTypeId="2" ParentId="21704" CreationDate="2010-11-26T14:36:46.367" Score="8" ViewCount="" Body="&lt;p&gt;There are several out there.  Here's just &lt;a href=&quot;http://www.coderun.com/&quot; rel=&quot;nofollow&quot;&gt;one&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I noticed that this &lt;a href=&quot;http://stackoverflow.com/questions/2422035&quot;&gt;question&lt;/a&gt; was also asked on SO and that CodeRun was also the answer there.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-26T14:46:41.020" LastActivityDate="2010-11-26T14:46:41.020" CommentCount="3" />
  <row Id="21708" PostTypeId="2" ParentId="21696" CreationDate="2010-11-26T14:37:26.557" Score="0" ViewCount="" Body="&lt;p&gt;I've learned a bunch of languages (C, C++, Perl, Bash, SQL, VB, VBScript, JavaScript, Java, C#, Ruby, Python, a little bit of Lisp, ObjectiveC, a tiny bit of COBOL, a bit of Scala, a bit of Haskell, etc) -- most of them I learned on my own time, and not because of anything having to do with my career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just like to learn new languages.  I like to see how things are done in other languages.  I think it makes me a better programmer/designer in the languages I get paid to know; but my primary motivation is curiosity.  Usually, it is because I wanted to learn how to do something for myself and doing that thing required knowledge of a certain language (iPhone App development, for example).&lt;/p&gt;&#xA;" OwnerUserId="7999" LastActivityDate="2010-11-26T14:37:26.557" />
  <row Id="21709" PostTypeId="2" ParentId="21696" CreationDate="2010-11-26T14:38:54.040" Score="0" ViewCount="" Body="&lt;p&gt;I think most programmers started because they like to solve problems. Of course you won't spend 8 hours a day for free, but if you want big bucks, you'd be better off becoming a lawyer or something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the language selection; everyone needs a job, and if all you have to offer is a knowledge of COBOL, then you already know in what kind of environment you will end up. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say you'd have to balance pay/language demand with personal interest, if you want to keep programming for a while.&lt;/p&gt;&#xA;" OwnerUserId="1922" LastActivityDate="2010-11-26T14:38:54.040" />
  <row Id="21711" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T14:51:31.723" Score="4" ViewCount="" Body="&lt;p&gt;Advantages: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;More structured&lt;/li&gt;&#xA;&lt;li&gt;More organized. &lt;/li&gt;&#xA;&lt;li&gt;Facing the complexity of issues (not necessarily related to profession) easier. &lt;/li&gt;&#xA;&lt;li&gt;Dealing easier with anything that has buttons or touch screens.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Disadvantages: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Perceived as tech freak sometimes. &lt;/li&gt;&#xA;&lt;li&gt;&quot;Conflicts&quot; with my family regarding my &quot;spare&quot; time activities. &lt;/li&gt;&#xA;&lt;li&gt;Thinking in IT terms in any situation (e.g. optimizing walking routes).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8624" LastActivityDate="2010-11-26T14:51:31.723" CommentCount="1" />
  <row Id="21712" PostTypeId="1" AcceptedAnswerId="21752" CreationDate="2010-11-26T14:58:38.347" Score="4" ViewCount="285" Body="&lt;p&gt;Hi! I'm currently having a tough time deciding what career path I should take and I could really use some opinions...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been working for a year and 7 months now in a startup company(more like a team 'cause we're only 3, 4 if I include my boss) and it's my first job. I'm always assigned back-end stuff, integrating different apis...no web design. My weekends are consumed by me studying work-related api integration stuff and back-end stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I came to a point where I am dissatisfied on what I have accomplished at work and my personal growth. I can't hone my front-end skills 'cause I'm the back-end go to person. I also want to learn particular framework and cms and implement them, but due to tight deadlines and multiple projects/task at a time, it's just not happening.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I think of a solution to this problem I'm having, I think of taking the risk...work as a freelancer without front-end experience, implement a particular framework or cms to the websites I will be creating...and boom that's personal growth for me. I learn the stuff I want to learn...when I think about it, it's much more interesting since you're spending your time on things you want to learn and not on things your boss wants you to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I JUST DON'T KNOW IF THAT'S JUST THE DUMBEST IDEA YOU'VE EVER HEARD. I REALLY NEED ADVICE...WAKE UP CALL...WHATEVER YOU CALL IT. ^^&lt;/p&gt;&#xA;" OwnerUserId="7577" LastEditorUserId="7577" LastEditorDisplayName="" LastEditDate="2010-12-02T10:46:55.943" LastActivityDate="2010-12-02T10:46:55.943" Title="To work as a freelancer or an employee in a company, or do both?" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="4" FavoriteCount="2" />
  <row Id="21713" PostTypeId="2" ParentId="21712" CreationDate="2010-11-26T15:05:40.403" Score="3" ViewCount="" Body="&lt;p&gt;With less than two years of experience and little presentable achievements, you might have a tough time to land a gig as a freelancer. I would only take that risk if I either already had a good offering, or no financial pressure at all (i.e. still live with my parents).&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-26T15:05:40.403" CommentCount="1" />
  <row Id="21714" PostTypeId="2" ParentId="21712" CreationDate="2010-11-26T15:07:05.080" Score="2" ViewCount="" Body="&lt;p&gt;If you did try to work as a freelancer, how would you know that you'd get to work with a particular framework or CMS out there?  How sure are you of always being able to find a company that will pay you to do front-end stuff without tying you down in bureaucracy?  Those would be some of the questions I'd consider before jumping ship as while the grass may look greener optimistically, we don't always live in an optimist's world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the flip side, do you have the time now to try to volunteer to do some front-end work for some non-profits in your area?  This would allow you to build some experience and see if this works for you or not rather than get into freelancing only to possibly see it not work out because what you thought it would be like isn't how the world works.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-26T15:07:05.080" CommentCount="2" />
  <row Id="21715" PostTypeId="2" ParentId="21403" CreationDate="2010-11-26T15:12:25.510" Score="5" ViewCount="" Body="&lt;p&gt;I blame the bidding process.  It rewards the group that can make the deal look cheapest/quickest on paper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The people putting together bids don't want to waste their time if they have no chance of winning, so their normal estimations get put on hold.  I know people who have specified normal switches instead of POE switches to save $80.  But the project needed POE because it had IP cameras.  That $80 needs to be spent, but now it is outside of the spec.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a firm belief that a 2 month $2,000,000 project will still take 2 months $2,000,000 no matter how many bids you get.  If you think doing it right is expensive, wait and see how expensive it is to do it wrong.&lt;/p&gt;&#xA;" OwnerUserId="3884" LastEditorUserId="3884" LastEditorDisplayName="" LastEditDate="2010-11-27T16:28:41.053" LastActivityDate="2010-11-27T16:28:41.053" CommunityOwnedDate="2011-01-29T04:58:02.993" CommentCount="1" />
  <row Id="21716" PostTypeId="2" ParentId="21704" CreationDate="2010-11-26T15:13:13.777" Score="1" ViewCount="" Body="&lt;p&gt;Since you asked for Visual Studio in the title of your question: &lt;a href=&quot;http://stackoverflow.com/questions/1124301/is-it-possible-to-rent-visualstudio-per-hour&quot;&gt;I've asked explicitely for VS&lt;/a&gt; on stackoverflow, and got a negative answer. &lt;/p&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="6617" LastEditorDisplayName="" LastEditDate="2010-11-26T16:15:02.670" LastActivityDate="2010-11-26T16:15:02.670" />
  <row Id="21717" PostTypeId="2" ParentId="21696" CreationDate="2010-11-26T15:14:33.543" Score="0" ViewCount="" Body="&lt;p&gt;I learned C# because I was familiar with the syntax (having learned C++/Java in school), the .NET framework has always offered a lot in the way of making certain annoying operations easier and there were (and are) lots of jobs for it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The improvements to it have almost entirely been good, so I've stuck with it as my professional language of choice.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-26T15:14:33.543" />
  <row Id="21718" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T15:25:02.650" Score="0" ViewCount="" Body="&lt;p&gt;Gave me a career, other than that I'm still trying to figure out&lt;/p&gt;&#xA;" OwnerUserId="8627" LastActivityDate="2010-11-26T15:25:02.650" />
  <row Id="21719" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T15:28:19.290" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;food&lt;/li&gt;&#xA;&lt;li&gt;shelter&lt;/li&gt;&#xA;&lt;li&gt;clothing&lt;/li&gt;&#xA;&lt;li&gt;enjoyment&lt;/li&gt;&#xA;&lt;li&gt;recognition&lt;/li&gt;&#xA;&lt;li&gt;excitement&lt;/li&gt;&#xA;&lt;li&gt;hope&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-26T15:28:19.290" CommentCount="6" />
  <row Id="21720" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T15:28:44.717" Score="4" ViewCount="" Body="&lt;p&gt;Programming is viewed by my customers as witchcraft.  This strange box doesn't do anything and then I come and &lt;em&gt;POOF&lt;/em&gt; it's magic.&lt;/p&gt;&#xA;" OwnerUserId="3884" LastActivityDate="2010-11-26T15:28:44.717" CommentCount="2" />
  <row Id="21721" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T15:31:57.763" Score="3" ViewCount="" Body="&lt;p&gt;I get to be the guy who fixes relatives, friends of families, friends of friends, friends of friends of families computers day or night :)&lt;/p&gt;&#xA;" OwnerUserId="8622" LastActivityDate="2010-11-26T15:31:57.763" CommentCount="1" />
  <row Id="21722" PostTypeId="2" ParentId="21605" CreationDate="2010-11-26T15:34:12.717" Score="2" ViewCount="" Body="&lt;p&gt;I'm going to go out on a limb here and say &lt;strong&gt;&lt;em&gt;virtualization&lt;/em&gt;&lt;/strong&gt;. A great many companies are consolidating, developing private 'clouds', packaging delivery of apps in &lt;a href=&quot;http://en.wikipedia.org/wiki/Open_Virtualization_Format&quot; rel=&quot;nofollow&quot;&gt;OVF format&lt;/a&gt; and standing around with their thumbs up their buttocks while wondering how to 'scale'. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you actually understand the difference between various types of hypervisors, and are comfortable with systems programming .. then it becomes a very interesting field. Turning marketing hype into real offerings is quite interesting, to say the least.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure it meets the criteria of the question, though .. hence going out on a limb.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-26T15:34:12.717" CommentCount="3" />
  <row Id="21723" PostTypeId="2" ParentId="21697" CreationDate="2010-11-26T15:38:08.043" Score="0" ViewCount="" Body="&lt;p&gt;Common from a person who spent years hacking out my own ways to talk to a database and talk to online API's and am only now starting to use frameworks, use them when you at least have an understanding of what their doing, if its possible. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't immediately jump for &lt;a href=&quot;http://redbeanphp.com/&quot; rel=&quot;nofollow&quot;&gt;RedBean&lt;/a&gt; on your first time working with a database, work with the DB manually first. This way you have a thorough understanding of what your actually fetching and doing to the DB, which can really help with scalability. You also can then make your own solution when the framework your using doesn't do something you need to do. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you understand whats going on though, use a framework! It makes things so much easier. The crazyness with storing a query then looping over the results with &lt;code&gt;mysql_fetch_assoc&lt;/code&gt; is all gone, reduced to a single call: &lt;code&gt;$book = R::load( &quot;book&quot;, $id )&lt;/code&gt;. You will be way more productive and can fix future bugs or add future features much easier.  &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-11-26T15:38:08.043" />
  <row Id="21724" PostTypeId="2" ParentId="7588" CreationDate="2010-11-26T15:58:27.190" Score="1" ViewCount="" Body="&lt;p&gt;We were facing this question some time ago and decided to go with &lt;a href=&quot;http://www.jetbrains.com/teamcity/&quot; rel=&quot;nofollow&quot;&gt;TeamCity&lt;/a&gt;. We only looked at Hudson, CC and TeamCity. The choise was easy to make - TeamCity ended up being our build server. Please note that I am not a pro in this and it was my first experience with build servers at that time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Hudson&lt;/strong&gt; - I had no idea what to do and where to read about it. And even though I could understand something there it was not an option - too much work. I decided to take a look at CC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Cruise control&lt;/strong&gt; - same as Hudson, yet in a slightly different way. Absolutely nothing can be understood there without a manual and a ton of help from google. I just went on to take a look at TC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;TeamCity&lt;/strong&gt; - TeamCity felt like heaven after the first two. It is the most usable out of those three. Install, go to admin panel, configure a project (show where the SVN is, point to build files, specify coverage/unit tests etc.) and start enjoying. And even though I cannot say that I did not google anything, still 95% of the setup process was very easy and clear. I highly recommend this tool. Go and take a look at it. It will save you a lot of nerves and time :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I should also note that TC is not free. Though they do have a free edition that can be used in commercial projects with some limitations (max build configs 20) - take a look in their pricing page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS I sound like I work for TC, but I really don't :)&lt;/p&gt;&#xA;" OwnerUserId="8628" LastActivityDate="2010-11-26T15:58:27.190" />
  <row Id="21725" PostTypeId="2" ParentId="7588" CreationDate="2010-11-26T16:07:13.820" Score="1" ViewCount="" Body="&lt;p&gt;We use CC.NET 1.4.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are trying to upgrade to 1.6... what a nightmare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its powerful... but ONLY if you use it right and understand how everything fits together. Which is a lot to ask from the whole team. We have 'buildmasters' who have access to the server and can change the configs. Even so, there is a lot of Googling with regard to ccnet and the whole business has become a huge mess.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally want to move to TeamCity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recommend you steer clear of ccnet.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-11-26T16:07:13.820" />
  <row Id="21726" PostTypeId="2" ParentId="135" CreationDate="2010-11-26T16:08:06.737" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.twitter.com/scottgu&quot; rel=&quot;nofollow&quot;&gt;Scott Guthrie&lt;/a&gt; - @scottgu&lt;/p&gt;&#xA;" OwnerUserId="1996" LastEditorUserId="1996" LastEditorDisplayName="" LastEditDate="2010-11-27T15:55:34.883" LastActivityDate="2010-11-27T15:55:34.883" CommunityOwnedDate="2011-02-11T07:48:02.420" />
  <row Id="21727" PostTypeId="2" ParentId="21594" CreationDate="2010-11-26T16:09:30.830" Score="1" ViewCount="" Body="&lt;h1&gt;Ask Them&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;not us.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-26T16:09:30.830" CommentCount="1" />
  <row Id="21728" PostTypeId="2" ParentId="21403" CreationDate="2010-11-26T16:22:06.093" Score="2" ViewCount="" Body="&lt;p&gt;People tend to think that software development is a predictive process, trying to measure and estimate things one year ahead. This is not possible! Building software is not bolt manufacture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Following the same &quot;trend&quot;, they try to do a huge analisys (again one year ahead) thinking that they'll cover all the possibilities, and later, turning programmer into mere typists. How come one think that this could work? This kind of behavior just leads to bad estimates and lots of bureaucracy.&lt;/p&gt;&#xA;" OwnerUserId="1124" LastActivityDate="2010-11-26T16:22:06.093" CommunityOwnedDate="2011-01-29T04:58:02.993" />
  <row Id="21729" PostTypeId="2" ParentId="21463" CreationDate="2010-11-26T16:25:53.933" Score="1" ViewCount="" Body="&lt;p&gt;A very good question...and I have to disagree with almost everyone except @Robert.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;return 120;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;for a factorial function to make one test pass is a &lt;em&gt;waste of time&lt;/em&gt;. It's not &quot;cheating&quot;, nor is it following red-green-refactor literally. It is &lt;strong&gt;wrong&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's why:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Calculate Factorial&lt;/strong&gt; is the feature, not &quot;return a constant&quot;. &quot;return 120&quot; is &lt;em&gt;not&lt;/em&gt; a calculation.&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;the 'refactor' arguments are misguided; if you have two test cases for 5 and 6, this code is still wrong, because you are not calculating a factorial &lt;em&gt;at all&lt;/em&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (input == 5) { return 120; } //input=5 case&#xA;else { return 720; }   //input=6 case&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;if we follow the 'refactor' argument &lt;em&gt;literally&lt;/em&gt;, then when we have 5 test cases we would invoke YAGNI and implement the function using a lookup table:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (factorialDictionary.Contains(input)) {&#xA;    return factorialDictionary[input]; &#xA;}&#xA;throw new Exception(&quot;Input failure&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;None of these are actually calculating anything, &lt;em&gt;you are&lt;/em&gt;. And that's not the task!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-26T16:25:53.933" CommentCount="11" />
  <row Id="21730" PostTypeId="1" AcceptedAnswerId="22345" CreationDate="2010-11-26T16:26:22.017" Score="0" ViewCount="66" Body="&lt;p&gt;Has anyone seen any tutorials on moving a library inside a project's source tree and compiling static binaries?  The context is that I want to use a particular tool that utilizes ANCIENT binaries without upgrading it's api usage.  This way I can use the old libraries inside the single binary without wrecking the local host environment. I am on nix with netbeans/eclipse/code::blocks.  I don't have a problem reading, just looking for a starting point.  Any thoughts?&lt;/p&gt;&#xA;" OwnerUserId="4534" LastActivityDate="2010-11-29T20:04:36.587" Title="Any tutorials on moving a library inside a project's source tree and compiling static binaries?" Tags="&lt;c++&gt;&lt;c&gt;&lt;libraries&gt;&lt;static&gt;" AnswerCount="1" />
  <row Id="21731" PostTypeId="2" ParentId="20539" CreationDate="2010-11-26T16:34:39.873" Score="1" ViewCount="" Body="&lt;p&gt;A good place to start would be projects that are listed at CodeIgniter.com - &lt;a href=&quot;http://codeigniter.com/projects/&quot; rel=&quot;nofollow&quot;&gt;http://codeigniter.com/projects/&lt;/a&gt; Look for an open source one in the list and check out the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another good place to look would be in the tutorials - &lt;a href=&quot;http://codeigniter.com/wiki/Category:Help::Tutorials&quot; rel=&quot;nofollow&quot;&gt;http://codeigniter.com/wiki/Category:Help::Tutorials&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="107" LastActivityDate="2010-11-26T16:34:39.873" />
  <row Id="21732" PostTypeId="2" ParentId="2935" CreationDate="2010-11-26T16:34:43.473" Score="1" ViewCount="" Body="&lt;p&gt;I don't expect this to be a common answer but...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I couldn't get a job in marketing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously.  Lucky escape there I think.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-26T16:34:43.473" />
  <row Id="21733" PostTypeId="2" ParentId="15585" CreationDate="2010-11-26T16:37:54.283" Score="2" ViewCount="" Body="&lt;p&gt;Not directly a quine, but the stealth trojan in the C compiler described by Ken Thompson in his Turing Award lecture is perhaps the most elegant explanation of what the technique can be used for:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://cm.bell-labs.com/who/ken/trust.html&quot; rel=&quot;nofollow&quot;&gt;http://cm.bell-labs.com/who/ken/trust.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-26T16:37:54.283" CommentCount="1" />
  <row Id="21734" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T16:39:21.703" Score="2" ViewCount="" Body="&lt;p&gt;My brain was severely damaged by programming.  It affected my mind in such a way that I experience difficulties when talking to non-technical people.  They do not understand me, and are easily offended due to misunderstandings that happen when I rely on their assumed knowledge of mathematical logic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This limited my social circle to only &quot;technical&quot; people, i.e. very clever, happy and successful people.  It also justified my loneliness, and I feel much happier now.&lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-11-26T16:39:21.703" CommentCount="1" />
  <row Id="21735" PostTypeId="1" CreationDate="2010-11-26T16:42:09.400" Score="2" ViewCount="48" Body="&lt;p&gt;I'm currently working on a project, and there are some &quot;code growth&quot; problems, that need a solution for. The deadline is not very far, and it would be advisable to stay within allocated time-frame.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, the code needs some restructuring, and here lies the question. Should we try to use a new framework to fix the current problem, or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My colleague is very open towards external frameworks and offers to restructure the code by finding an existing library something along the lines of WTL/boost/TinyXML/ATL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I, on the other hand, am very cautions concerning new frameworks for existing code bases. The language is C++, and I have a fair amount of experience where libraries like MFC backfire with a huge flamethrower.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not saying my way is the right one, as I guess the truth is somewhere between, but I need to decide how to proceed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The deadline is pretty close and the changes would touch a large part of the code-base, app logic layer. Restructuring the existing code base would require some peaceful thinking and some extra coding. But the code is not TDWTF kind, rather it has grown past the original requirements and needs new clothes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The app is heavily asynchronous, and uses multiple threads, so it's not the trivial kind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can anyone tell me what is the general rule when you have to decide whether to use the premade wheel vs. reinventing a new one? What would be the acceptance criteria for new code?&lt;/p&gt;&#xA;" OwnerUserId="8029" LastActivityDate="2010-11-26T16:50:36.403" Title="External framework to fix code growth problems" Tags="&lt;frameworks&gt;&lt;planning&gt;" AnswerCount="2" />
  <row Id="21736" PostTypeId="2" ParentId="21067" CreationDate="2010-11-26T16:43:52.100" Score="2" ViewCount="" Body="&lt;p&gt;Well, Felix hasn't made it into the mainstream and has cool features. There are certainly interesting features I wish my main language had, the most important one is well principled polyadic programming. {oh, my main language is Felix, because I'm the designer and compiler implementor .. :} Joerg will love the OO implementation, since it is perfect (there isn't any OO in Felix :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure what string mixins are, nor exactly what would be expected by compile time function evaluation: Felix has a user programmable grammar, the action code for the grammar productions are written in Scheme (does that count? for one or both of those features?) &lt;/p&gt;&#xA;" OwnerUserId="8630" LastActivityDate="2010-11-26T16:43:52.100" CommunityOwnedDate="2011-01-05T10:52:43.233" />
  <row Id="21737" PostTypeId="2" ParentId="21735" CreationDate="2010-11-26T16:48:00.890" Score="3" ViewCount="" Body="&lt;p&gt;If you have a deadline which you need to meet, then &lt;em&gt;don't&lt;/em&gt; introduce new, unknown stuff in your environment.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the thing you need to fix is more important than the deadline, then strongly consider officially pushing the deadline if you are in doubt you will make it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that for asynchronous applications with multiple threads Executors are your friends to tame the beasts.  Will they do, or do you need more than that?&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-26T16:48:00.890" CommentCount="1" />
  <row Id="21738" PostTypeId="2" ParentId="21735" CreationDate="2010-11-26T16:50:36.403" Score="1" ViewCount="" Body="&lt;p&gt;With your existing deadline I'd definitely let sleeping dogs lie.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Immediately after your deadline, sit down with your Mgmt and your team and explain that the code base has pretty much hit its maximum point of return.   e.g. It costs a huge amount of time and effort to add new features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then go away and identify areas that a 3rd party could take over for you and &lt;em&gt;prototype&lt;/em&gt; using those 3rd party frameworks.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-26T16:50:36.403" />
  <row Id="21739" PostTypeId="2" ParentId="2935" CreationDate="2010-11-26T16:54:46.017" Score="0" ViewCount="" Body="&lt;p&gt;Back in my elementary school days, I was really good at Spelling and Math.  However, Spelling didn't quite last as a class once I got into Grade 7 or so but Math stuck around.  Getting computers to do what I wanted them to do was a rather cool thing I had growing up.  I grew up on a couple flavors of BASIC, Commodore 64 and Watcom to be specific, where a few programming things didn't have to be mastered.  Types tended to be numbers or strings, where eventually I got into one dimensional arrays in high school.  When it came time to apply to universities, I got better scholarships to study Math and Computer Science than Biochemistry, with my Grade 13 Maths, Calculus, Finite Math, and Algebra &amp;amp; Geometry, averaging 95% compared to the 90% in Sciences, Biology, Chemistry and Physics.  Now in high school I did take a few Computer Science courses and while I did do well, I'm not sure at that point I knew that is what I'd be doing later.  In my first year of university I decided that I wanted to do a double major and through a process of elimination wound up with &lt;a href=&quot;http://www.math.uwaterloo.ca/navigation/Prospective/programs/CO.shtml&quot; rel=&quot;nofollow&quot;&gt;Combinatorics &amp;amp; Optimization&lt;/a&gt; along with Computer Science as I still did enjoy all the logic and building things that were there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I did struggle some years academically, I graduated with my B average that made top tier grad schools be out of reach and so I went job hunting.  It took a few months but I did get my first out of university job as a &quot;Software Design Engineer&quot; for a dot-com in Seattle.  While I did get a little baptism by fire, the job had its moments for being rather cool.  I enjoyed being the person that knew how things worked and put it together in a sense.  The systems building aspect has worn off a little but I still enjoy solving puzzles and helping people with technical problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for why I went this way, I liked this kind of stuff and remember hearing about how there would be this shortage of IT workers in the late 1990s.  Thus, I was comfortable in this kind of area whereas I'd be a lousy salesperson or if I had to deal with people all the time.  The abstract and control aspects of development suit me quite well, as I am not that well coordinated but I do enjoy thinking.  The changes in technology prevent me from getting too comfortable as something new comes along soon enough to keep from being too complacent.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-26T16:54:46.017" />
  <row Id="21740" PostTypeId="2" ParentId="20985" CreationDate="2010-11-26T17:07:45.410" Score="0" ViewCount="" Body="&lt;p&gt;@mojuba: Java's killer feature was and still probably is the fact it came packaged with a portable GUI.&lt;/p&gt;&#xA;" OwnerUserId="8630" LastActivityDate="2010-11-26T17:07:45.410" CommentCount="2" />
  <row Id="21741" PostTypeId="2" ParentId="21696" CreationDate="2010-11-26T17:14:03.707" Score="1" ViewCount="" Body="&lt;p&gt;Motivations range from availability to curiosity to best-choice-for-job to no-choice-for-job:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I learned BASIC out of curiosity and because that's all that was available to me at the time (DG Nova 2) [1976]&lt;/li&gt;&#xA;&lt;li&gt;I learned Pascal because that's what the university taught (Cyber). [1982]&lt;/li&gt;&#xA;&lt;li&gt;I learned DataFlex because it was available and was sooooo much better than BASIC for PC business applications (IBM PC) [1983]&lt;/li&gt;&#xA;&lt;li&gt;I learned Assembly Language because BASIC wasn't fast enough to get the job done (Apple ][). [1983]&lt;/li&gt;&#xA;&lt;li&gt;I learned C because it had the best libraries to get the job done for the platform (80286) [1984]&lt;/li&gt;&#xA;&lt;li&gt;I learned Prolog because it was there (curiosity) [1985]&lt;/li&gt;&#xA;&lt;li&gt;I learned Lisp because academics kept using it to do cool things (curiosity) [1985]&lt;/li&gt;&#xA;&lt;li&gt;I learned SmallTalk because it looked like fun (curiosity) [1985]&lt;/li&gt;&#xA;&lt;li&gt;I learned C++ because I read Stroustrup's book [1985]&lt;/li&gt;&#xA;&lt;li&gt;I learned Java because it was the best cross-platform solution available at the time for the job [1999]&lt;/li&gt;&#xA;&lt;li&gt;I learned VB because that was the IT shop standard [2002]&lt;/li&gt;&#xA;&lt;li&gt;I learned VB.NET because it was so much better than VB [2002]&lt;/li&gt;&#xA;&lt;li&gt;I learned C# because VB.NET was too #@$% verbose [2003]&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Addendum: Javascript, HTML, vbscript, powerbuilder, and several others all learned because that's what the job required&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-11-26T17:23:39.627" LastActivityDate="2010-11-26T17:23:39.627" />
  <row Id="21742" PostTypeId="2" ParentId="15585" CreationDate="2010-11-26T17:21:23.280" Score="1" ViewCount="" Body="&lt;p&gt;From the formal point of view, an empty source code is a self-producing program on, say, Python.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-11-26T17:21:23.280" />
  <row Id="21743" PostTypeId="2" ParentId="21712" CreationDate="2010-11-26T17:27:05.193" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Forget freelancing - you're not experienced enough yet&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be taken seriously in the freelancing world you need to have a strong CV behind you showing that you have accomplished a lot of projects. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the front end, I'd guess that you probably go freelance if you&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Have a stunning portfolio of creative work&lt;/li&gt;&#xA;&lt;li&gt;Have clearly demonstrable front end skills (XHTML, CSS, JavaScript, Flex, Silverwhotsit etc)&lt;/li&gt;&#xA;&lt;li&gt;Have worked for some big names&lt;/li&gt;&#xA;&lt;li&gt;Have networked a lot locally and built your personal brand&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;On the back end, the criteria are more strict and your clients will grill you to determine that you know your stuff (they are paying for this expertise remember)&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Have solid technical expertise in development (Java, C#, PHP etc)&lt;/li&gt;&#xA;&lt;li&gt;Have strong database skills (ORM, SQL etc)&lt;/li&gt;&#xA;&lt;li&gt;Thoroughly understand the nature of the web (HTTP, REST etc)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Now it sounds like you've built up a certain level of technical expertise being the back-end go-to guy, but don't look at freelancing as the way to go out and learn your skills. At best you'll hone your existing skills, but you'll be expected to hit the ground running and train yourself up on your own time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;So what to do then?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for what you should do now, well I'd suggest that you start using your weekends to write sample websites that make use of both front- and back-end skills. Consider:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Taking out an &lt;a href=&quot;http://s3.amazonaws.com/AmazonEC2Tutorial/AmazonEC2Tutorial.html&quot; rel=&quot;nofollow&quot;&gt;EC2 account with Amazon&lt;/a&gt; to get a little test box to work with. &lt;/li&gt;&#xA;&lt;li&gt;Install a web application server (like Tomcat) somewhere and play with it. &lt;/li&gt;&#xA;&lt;li&gt;Install Postgres and build your own database.&lt;/li&gt;&#xA;&lt;li&gt;Write a blogging application that supports comments with anti-spam and a JQuery based front end (no HTML from the server other than the entry page)&lt;/li&gt;&#xA;&lt;li&gt;Make sure that the application can be fully tested (even the browser stuff) automatically before deployment&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Once you've got the solid skills to do that, then write a few more complete systems. Then you'll be in a position to consider freelancing. And because you'll have built up a comprehensive set of automated tools to do those systems then you can apply those tools to the clients system instead. Your time is not wasted.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-26T17:27:05.193" />
  <row Id="21744" PostTypeId="2" ParentId="21463" CreationDate="2010-11-26T17:27:15.687" Score="0" ViewCount="" Body="&lt;p&gt;I would suggest that your choice of test is not the best test.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would start off with:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;factorial(1) as the first test, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;factorial(0) as the second&lt;/p&gt;&#xA;&#xA;&lt;p&gt;factorial(-ve) as the third&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and then continue on with non-trivial cases&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and finish up with an overflow case.&lt;/p&gt;&#xA;" OwnerUserId="3084" LastActivityDate="2010-11-26T17:27:15.687" CommentCount="2" />
  <row Id="21746" PostTypeId="2" ParentId="21663" CreationDate="2010-11-26T17:30:02.133" Score="3" ViewCount="" Body="&lt;p&gt;One of the things to keep in mind is that Java gained traction as much from marketing as any technical merit. Sun convinced developers that it was the &quot;language of the Internet&quot;! So many people bought into it that Netscape named their scripting language after it even though the two had nothing to do with each other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any language that really hopes to take off needs a new market. The most recent example is the rise of Objective-C for iPhone programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps in the future, a language that convinces developers it's &lt;em&gt;the one&lt;/em&gt; for multicore or cloud computing will have a better chance of adoption.&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-11-26T17:30:02.133" CommentCount="1" />
  <row Id="21747" PostTypeId="2" ParentId="21696" CreationDate="2010-11-26T17:32:31.787" Score="0" ViewCount="" Body="&lt;p&gt;About half the languages I know are because it was what the school used and thus I got used to that,e.g. Watcom BASIC, Pascal, Commodore PET Assembler, Modula-3, C++, Scheme.  The other half are mostly on-the-job ones like VBScript, C#, JavaScript, and T-SQL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a programmer because I like building systems and solving problems.  Sometimes that may mean I'll learn some bits of a new language to help someone else.  For example, if someone in my office asked for my help on something, it may take me a little while but I would honestly try to help as best I can.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-26T17:32:31.787" />
  <row Id="21748" PostTypeId="1" AcceptedAnswerId="21753" CreationDate="2010-11-26T17:36:59.610" Score="11" ViewCount="221" Body="&lt;p&gt;Hi, guys.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After half a year working for the company, I got two students to be leader for. So, I got some technical management responsibility. As I think, I should be not just a leader, but a teacher and the one who is example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are common steps to educate junior developers? How to be not just a boss, who gives the task, but a 'senior fellow'? Is it appropriate to give some advices which are not properly related to coding(for example, human interaction and so on). I want to be a good leader for them, but don't have any experience in that and don't know what to begin from.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="8586" LastActivityDate="2010-11-26T18:45:08.310" Title="Starting to be a team leader" Tags="&lt;teaching&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="4" />
  <row Id="21749" PostTypeId="2" ParentId="21605" CreationDate="2010-11-26T17:37:34.263" Score="3" ViewCount="" Body="&lt;h1&gt;Finance&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;You can become a quant developer and work in anything from high-frequency trading to risk modeling. Most quants now days have a PhD in a technical field (comp sci, physics, statistics) along with knowledge of their financial area (derivatives pricing, market microstructure, etc). So be prepared to learn a ton of math (time-series analysis in particular), lots of programming techniques, and some general finance.&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-11-26T17:37:34.263" />
  <row Id="21750" PostTypeId="2" ParentId="2331" CreationDate="2010-11-26T17:47:40.957" Score="0" ViewCount="" Body="&lt;p&gt;Object Orientation (from all statically typed languages). I'll wager this feature has, and will continue, to cost &lt;strong&gt;vastly&lt;/strong&gt; more than null pointers. Object Orientation is only good in a dynamic &lt;strong&gt;message passing&lt;/strong&gt; language. So it should be dropped from dynamic languages like Python too (since it doesn't use message passing but conventional subroutine calling).&lt;/p&gt;&#xA;" OwnerUserId="8630" LastActivityDate="2010-11-26T17:47:40.957" CommentCount="6" />
  <row Id="21751" PostTypeId="2" ParentId="21748" CreationDate="2010-11-26T17:54:55.903" Score="4" ViewCount="" Body="&lt;p&gt;I'd be careful of the terminology you are using there.  Educating can make you come off as the source that knows the answer and that may be true some of the time.  My suggestion is to consider being a mentor for the junior developers, where here are a few key points:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Ensure that they know they can ask you anything and it's OK.  This is more in terms of being aware of how you answer questions or in some cases hint towards an answer.  I remember various teachers and mentors that knew just what to ask so I could figure something out on my own rather than being spoon fed the answers.  If you answer a question with a remark like, &quot;How in the world could you possibly have the audacity to even consider asking me in all my mightiness to even slightly comprehend what you, a lowly junior developer...&quot; you may come off as rather arrogant and not approachable.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Build a personal relationship.  This is where knowing a bit about what each person likes and has an interest can be useful.  If you want to introduce someone to relational databases and they love movies, building some tables related to movies may be a good initial example.  Another point here is to see if you can notice how someone else learns and see if they are aware of that.  For example, some people could read directions on using a design pattern and go ahead and code it without much trouble, while others may need to do a dozen examples to know they understand how it all works.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;While it can be appropriate to give advice, be aware of when are you giving unsolicited advice and why you see this as necessary.  &lt;a href=&quot;http://en.wikipedia.org/wiki/How_to_Win_Friends_and_Influence_People&quot; rel=&quot;nofollow&quot;&gt;How to Win Friends and Influence People&lt;/a&gt; has some ideas here when it comes to persuasion that can be useful.  As an example of where it may be necessary to give unsolicited advice is where if you see someone about to do something amazingly dumb, you may stop them and tell them, &quot;No, don't do that!&quot; like if someone were about to hit a customer or yell at a co-worker.  At the same time, there are some people where telling them what to do will backfire greatly as a, &quot;because I said so!&quot; will just be met with rebellion and defiance.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Know yourself well.  How well do you know where your strengths are?  What kinds of weaknesses you have to manage?  Do you prefer formal structures or an informal, &quot;We'll just do what works,&quot; approach?  Are you good at summarizing information?  Do you prefer to look at things from a top-down or a bottom-up perspective?  This is barely scratching the surface but I'd hope you get the idea that while you may be wanting to help those junior guys, there is some changes that will probably happen to you too.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Just some ideas that hopefully help to some degree.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-26T17:54:55.903" />
  <row Id="21752" PostTypeId="2" ParentId="21712" CreationDate="2010-11-26T17:55:10.067" Score="5" ViewCount="" Body="&lt;p&gt;I was working in a similar situation not long after I graduated. I stuck with it and got reasonably good at what I did, going freelance after maybe five years but went back to full time employment later because I found I preferred the structure that enforced and I enjoy spending my time doing programming more than I do going to meetings with clients, doing accounts and chasing up late invoices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say, first of all: Don't go freelance until you have more experience. Simple as that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would have made me a better developer much more quickly would have been to work in an environment where I was surrounded by more experienced and better programmers. I would have learned more and faster that way than I ever did working on my own or with similarly inexperienced people. If I were you that is the situation I would be looking to move to- somewhere bigger with more people to learn from and where I can really build up that useful experience quickly. Once you are there listen more than you speak and take everything in, good and bad, that you can. You will learn from all of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also maybe finding somewhere more corporate/professional should mean they are better managed and you don't lose your free time to deadline crunches so you can spend a bit more of it on projects that interest you.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-26T17:55:10.067" CommentCount="2" />
  <row Id="21753" PostTypeId="2" ParentId="21748" CreationDate="2010-11-26T17:56:07.897" Score="7" ViewCount="" Body="&lt;p&gt;There are more than &lt;a href=&quot;http://www.examiner.com/leadership-in-kansas-city/best-leadership-books-according-to-various-linkedin-members&quot; rel=&quot;nofollow&quot;&gt;250+ books&lt;/a&gt; on leadership. I've read many of them and there are some common advices. My favorite one is &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0743287932&quot; rel=&quot;nofollow&quot;&gt;The 8th Habit&lt;/a&gt;. You may start with that first. You may consider &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0743269519&quot; rel=&quot;nofollow&quot;&gt;The 7 Habits&lt;/a&gt; also which is not specifically on leadership, but contains many of the concepts you will find in that kind of books.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now the most &lt;code&gt;effective&lt;/code&gt; way to learn how to be a leader I know is finding a &lt;strong&gt;mentor&lt;/strong&gt; within your organization that &lt;strong&gt;is&lt;/strong&gt; a leader him/herself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Identify her/him by talking to other employees. Once you have the name, send him/her an email explaining her/him your new challenge and that you would like to talk with him about it to get some advices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most leaders will accept, especially if they are in the same organization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the first discussion is fruitful, ask another talk a month or two after. This time, tell her/him about problems your encounter. Tell him/her you want her/him to be your &lt;strong&gt;mentor&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is also advisable to have more than one &lt;strong&gt;mentor&lt;/strong&gt; if your organization is big enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition of asking that person, you can come on website like this one to ask more &lt;em&gt;specific&lt;/em&gt; questions. I'm sure many will be more than happy to help.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-26T18:45:08.310" LastActivityDate="2010-11-26T18:45:08.310" CommentCount="1" />
  <row Id="21754" PostTypeId="2" ParentId="9761" CreationDate="2010-11-26T17:57:59.440" Score="3" ViewCount="" Body="&lt;p&gt;I like to use NDepend to reverse engineer complex .NET code base. The tool comes with several great visualization features like:&#xA;There are dozens of way to visualize a code base, and to complete the Pierre_303 answer, here are a bit of screenshot extracted from NDepend (disclaimer, I am the creator of NDepend).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Dependency Graph&lt;/strong&gt;: A Graph can represent different kind of interaction in your code, more documentation &lt;a href=&quot;http://www.ndepend.com/Doc_VS_Arch.aspx&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; (Interaction Graph, Call Graph, Class Inheritance Graph, Path Graph, Cycle Graph...)&#xA;&lt;img src=&quot;http://i.imgur.com/pZT2j.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Dependency Matrix&lt;/strong&gt;: It represent the same information as a Graph but in a complete different way. Matrix is better than Graph to displays large dependencies set with hundreds of nodes and edges, while Graph are better than Matrix for smaller dependencies set, especially with less than 20 nodes. Matrix has also he immense advantage to show code structural pattern at a glance, like layered code, dependency cycle, cohesion, coupling... More info &lt;a href=&quot;http://www.ndepend.com/Doc_Matrix.aspx&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&#xA;&lt;img src=&quot;http://i.imgur.com/dwXPE.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code metric visualization through treemaping: This not aims at showing code structure/architecture but more how the code is partitionned. Here rectangles shows methods, classes and namespaces, and the more lines of code a class has, the bigger its rectangle is. &lt;em&gt;By choosing an appropriate combination of code metric and level values, the Treemap Metric View helps see patterns that would be hard to spot with other ways.&lt;/em&gt;  More info &lt;a href=&quot;http://www.ndepend.com/Doc_Treemap.aspx&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&#xA;&lt;img src=&quot;http://i.imgur.com/Wer0h.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="8617" LastActivityDate="2010-11-26T17:57:59.440" />
  <row Id="21755" PostTypeId="2" ParentId="729" CreationDate="2010-11-26T18:00:54.023" Score="3" ViewCount="" Body="&lt;h2&gt;Trac&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;wiki, svn, bug tracker all integrated in one place. &#xA;cost: £40 per annum all set up, hosted and managed for me by &lt;a href=&quot;http://hosted-projects.com/&quot; rel=&quot;nofollow&quot;&gt;http://hosted-projects.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love it&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With a mixture of 'wiki + tickets' you can store just about anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have wiki pages for things like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;JobReports (write notes as I code)&lt;/li&gt;&#xA;&lt;li&gt;How To's... (if i find myself repeating the same thing, I'd distil a previous job-report into a 'how-to' page)&lt;/li&gt;&#xA;&lt;li&gt;Best Practices (add to the list of Epiphanies whenever I have one )&lt;/li&gt;&#xA;&lt;li&gt;Incident Reports (if the server crashes, 1st thing I do is create a new Incident page, link it to new 'Job Report' wiki page and then write up my investigations, i.e. write the Linux commands first in the wiki and then paste it into SSH etc)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(Note: I have not been clinically declared OCD...yet!) &lt;/p&gt;&#xA;" OwnerUserId="6720" LastEditorUserId="6720" LastEditorDisplayName="" LastEditDate="2010-11-26T18:36:57.237" LastActivityDate="2010-11-26T18:36:57.237" CommunityOwnedDate="2011-03-07T21:12:42.693" />
  <row Id="21756" PostTypeId="1" AcceptedAnswerId="21763" CreationDate="2010-11-26T18:02:17.000" Score="25" ViewCount="505" Body="&lt;p&gt;Apart from:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;being strong technically&lt;/li&gt;&#xA;&lt;li&gt;being able to communicate effectively&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;What are the most important formal / informal skills required to really shine as a developer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Naturally, I struggle with the first two, but even so...).&lt;/p&gt;&#xA;" OwnerUserId="1928" LastEditorUserId="4280" LastEditorDisplayName="" LastEditDate="2010-12-09T02:14:44.823" LastActivityDate="2010-12-09T07:38:58.390" Title="What non-technical skills do I need?" Tags="&lt;career&gt;&lt;skills&gt;&lt;non-technical&gt;" AnswerCount="15" CommentCount="1" FavoriteCount="8" />
  <row Id="21757" PostTypeId="2" ParentId="21756" CreationDate="2010-11-26T18:05:59.483" Score="7" ViewCount="" Body="&lt;p&gt;Don't know if you are counting this somewhere under the first two  &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;3. Knowing what's important and what to disregard&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-26T18:05:59.483" CommentCount="3" />
  <row Id="21758" PostTypeId="2" ParentId="21756" CreationDate="2010-11-26T18:09:14.977" Score="2" ViewCount="" Body="&lt;p&gt;Being skeptic to a certain amount.&lt;/p&gt;&#xA;" OwnerUserId="3057" LastActivityDate="2010-11-26T18:09:14.977" CommentCount="1" />
  <row Id="21759" PostTypeId="2" ParentId="21756" CreationDate="2010-11-26T18:17:50.880" Score="1" ViewCount="" Body="&lt;p&gt;The main of non-technical skills is what called common sense. It may be not obvious but to clearly look on the things is rather hard in some situations. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, it is always necessary to think about user experience while developing anything. So, the  abstracting skill, which will divide you from your product and make you think like user is also valuable.&lt;/p&gt;&#xA;" OwnerUserId="8586" LastActivityDate="2010-11-26T18:17:50.880" CommentCount="1" />
  <row Id="21760" PostTypeId="2" ParentId="21756" CreationDate="2010-11-26T18:19:26.557" Score="3" ViewCount="" Body="&lt;p&gt;Here would be some other skills that I'd note:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Problem solving - How well can you create a solution for a given problem?  How well can you diagnose what is the problem and what are the trade-offs of various solutions?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Learning quickly - How fast can you acquire sufficient knowledge to finish a task in something you had never heard of before today?  How well do you know your best learning style?  New versions of software, programming languages, platforms and tools can change a developer's life and this has to be managed.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Time management - Do you know how to make the most of the time you have?  Do you know where to allocate your time to get the best results?  In some ways this can overlap with one as sometimes a problem requires a quick solution such as when people go to the hospital and triage has to be done to see who gets seen first.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Managing yourself/attitude - While this may seem rather vague in a sense, the idea here is how well do you project a Professional mindset in your work.  Can you get right to work or do you have a bunch of things to do before starting to work?  How responsible are you in handling what you have and communicating if it is too much or too little?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;These are all big things that I use on a regular basis and am still developing as new stuff keeps coming out all the time.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-26T18:19:26.557" />
  <row Id="21761" PostTypeId="2" ParentId="2331" CreationDate="2010-11-26T18:19:38.583" Score="3" ViewCount="" Body="&lt;p&gt;Replacing undefined variables by an empty string in shell without any warnings: &lt;code&gt;rm -rf $nosuchvar/*&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-11-26T18:19:38.583" CommentCount="3" />
  <row Id="21762" PostTypeId="2" ParentId="21756" CreationDate="2010-11-26T18:19:49.257" Score="2" ViewCount="" Body="&lt;p&gt;A pleasant personality.  Helps when working in teams.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-26T18:19:49.257" />
  <row Id="21763" PostTypeId="2" ParentId="21756" CreationDate="2010-11-26T18:23:07.383" Score="19" ViewCount="" Body="&lt;p&gt;In addition to all the answers posted on that &lt;a href=&quot;http://programmers.stackexchange.com/questions/20564/when-being-a-technical-genius-is-not-enough-to-be-a-successful-developer&quot;&gt;question&lt;/a&gt; and this one. There are so much to suggest. Here are few things I try to improve myself everyday.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Develop your interpersonal skills&lt;/h2&gt;&#xA;&#xA;&lt;h3&gt;Keep your word, always&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;The more you will do this, the more people will trust you. You will get more opportunities to get better. The key here is to not commit on things you know you won't be able to achieve. So learn to say &quot;&lt;strong&gt;no&lt;/strong&gt;&quot;.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Develop Empathy&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;You must be able to put yourself in other's shoes. This includes your colleagues, but also your users, managers, the insane sales guy or the crazy marketing girl. By practicing this, you will be able to identify what are their interests. You will discover that while they are most of the time very different than yours, it's possible to create a win-win scheme with them.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Be &lt;a href=&quot;http://programmers.stackexchange.com/questions/2541/how-do-i-constructively-and-professionally-deal-with-anger-when-im-on-the-job&quot;&gt;Assertive&lt;/a&gt;&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Anger, fear, jealousy, shame, etc. They are all created by your mind. Understand you decide how to respond to events. &lt;em&gt;&quot;In between stimulus and response there is a space, in that space lies our power to choose our response in our response lies our growth and our freedom.&quot; Victor Frankl&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Develop your problem solving capabilities&lt;/h2&gt;&#xA;&#xA;&lt;h3&gt;Know when to &lt;a href=&quot;http://programmers.stackexchange.com/questions/15536/what-technologies-or-techniques-senior-developers-of-today-should-unlearn&quot;&gt;unlearn&lt;/a&gt;.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I like the concept of &lt;a href=&quot;http://en.wikipedia.org/wiki/Creative_destruction&quot; rel=&quot;nofollow&quot;&gt;creative destruction&lt;/a&gt;. This has nothing to do with communism! ;)&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Experiment, Fail, Learn&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;The more you will fail, the more you will learn. Be sure to learn from your mistakes.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Don't say in your comfort zone&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;The more you will leave it, the fastest your will learn new things. Interest yourself to the business. Instead of taking lunch only with technical guys, try to go with the suits some times. &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Develop your physical skills&lt;/h2&gt;&#xA;&#xA;&lt;h3&gt;Invest in your body&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Doing sport regularly will not only improve your overall health, it will improve your ability to think.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Know your &lt;a href=&quot;http://programmers.stackexchange.com/questions/16595/is-taking-frequent-breaks-really-that-beneficial-when-programming&quot;&gt;limits&lt;/a&gt;&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Take regular pauses. This will boost your productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also suggest you to have a look at this &lt;a href=&quot;http://www.pragprog.com/titles/cfcar2/the-passionate-programmer&quot; rel=&quot;nofollow&quot;&gt;great book&lt;/a&gt; on the subject.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-26T22:00:15.813" LastActivityDate="2010-11-26T22:00:15.813" CommentCount="4" />
  <row Id="21764" PostTypeId="2" ParentId="8254" CreationDate="2010-11-26T18:35:53.930" Score="1" ViewCount="" Body="&lt;p&gt;I chose to provide ordinary overloading and multi-type type-classes in my language Felix.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I consider (open) overloading essential, especially in a language which as a lot of numeric types (Felix has all C's numeric types). However unlike C++ which abuses overloading by making templates depend on it, Felix polymorphism is parametric: you need overloading for templates in C++ because templates in C++ are badly designed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Type classes are provided in Felix as well. For those that know C++ but don't grok Haskell, ignore those who describe it as overloading. It isn't remotely like overloading, rather, it is like template specialisation: you declare a template which you don't implement, then provide implementations for particular cases as you need them. The typing is parametrically polymorphic, the implementation is by ad hoc instantiation but it is not intended to be unconstrained: it has to implement the intended semantics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Haskell (and C++) you cannot state the semantics. In C++ the &quot;Concepts&quot; idea is roughly an attempt to approximate the semantics. In Felix, you can approximate the intention with axioms, reductions, lemmas and theorems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main, and &lt;strong&gt;only&lt;/strong&gt; advantage of (open) overloading in a well principled language like Felix is that it makes it easier to remember library function names, both for the program writer and for the code reviewer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The primary disadvantage of overloading is the complex algorithm required to implement it. It also doesn't sit very well with type inference: although the two are not entirely exclusive, the algorithm to do both is complex enough the programmer probably wouldn't be able to predict the results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In C++ this is also a problem because it has a sloppy matching algorithm and also supports automatic type conversions: in Felix I &quot;fixed&quot; this problem by requiring an exact match and no automatic type conversions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you have a choice I think: overloading or type inference. Inference is cute, but it is also very hard to implement in a way that properly diagnoses conflicts. Ocaml, for example, tells you where it detects a conflict, but not where it inferred the expected type from.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overloading is not much better, even if you have a quality compiler that tries to tell you all the candidates, it can be hard to read if the candidates are polymorphic, and even worse if it's C++ template hackery.&lt;/p&gt;&#xA;" OwnerUserId="8630" LastActivityDate="2010-11-26T18:35:53.930" CommentCount="2" />
  <row Id="21765" PostTypeId="2" ParentId="9761" CreationDate="2010-11-26T18:45:30.460" Score="1" ViewCount="" Body="&lt;p&gt;Also, take a look at Ward Cunningham's &lt;a href=&quot;http://c2.com/doc/SignatureSurvey/&quot; rel=&quot;nofollow&quot;&gt;Signature Survey&lt;/a&gt;. It is lightweight and simple, but surprisingly useful to get a feel for the size and complexity of parts of the codebase.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He originally did it for Java, but you can always adapt it for the language you're working in. I recently did it with VB (while making a few additions of my own) and it has been very helpful. Here's a sample of what the output looks like:  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(you'll want to right-click -&gt; view image, then make sure you're zoomed in)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/sz0UO.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="7814" LastEditorUserId="7814" LastEditorDisplayName="" LastEditDate="2010-11-26T18:51:09.110" LastActivityDate="2010-11-26T18:51:09.110" />
  <row Id="21766" PostTypeId="2" ParentId="21756" CreationDate="2010-11-26T18:48:32.503" Score="3" ViewCount="" Body="&lt;h1&gt;Getting Stuff Done&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;You can be as savvy as you want, but the bottom line entails getting stuff done, &lt;em&gt;and in a timely manner&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stay on schedule, learn how to plan and project, network effectively, and have deliverables. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-26T18:48:32.503" CommentCount="1" />
  <row Id="21767" PostTypeId="2" ParentId="9761" CreationDate="2010-11-26T18:50:36.210" Score="1" ViewCount="" Body="&lt;p&gt;If you're using Java or Smalltalk, you should definitely check out &lt;a href=&quot;http://www.inf.usi.ch/phd/wettel/codecity.html&quot; rel=&quot;nofollow&quot;&gt;Code City&lt;/a&gt;. It lets you use the part of your brain that is familiar with navigating cities to instantly get a whole new perspective on your codebase! It certainly blew my mind when I first used it.&lt;/p&gt;&#xA;" OwnerUserId="7814" LastActivityDate="2010-11-26T18:50:36.210" CommentCount="2" />
  <row Id="21768" PostTypeId="2" ParentId="21635" CreationDate="2010-11-26T19:00:52.403" Score="2" ViewCount="" Body="&lt;p&gt;I think Jon Purdy's answer captures perfectly how programming has enriched my life. I am just writing a few points to elaborate. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Programming has helped me develop a capacity for abstract thinking that I would never have otherwise.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Programming has got me in touch with lots of very very smart people. It has showed me that intelligence and actual ability often has little to do with mere grades and paychecks. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Programming has showed me how stupid I really am, and how deeply mistaken I can be about things I used to have very strong opinions about. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1454" LastActivityDate="2010-11-26T19:00:52.403" />
  <row Id="21770" PostTypeId="1" AcceptedAnswerId="21779" CreationDate="2010-11-26T19:26:13.343" Score="5" ViewCount="182" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to answer difficult questions that arised by other developers in sites like StackOverflow, I am in a doubt to how much amount of knowledge needed for me to answer/ go into a discussion with the programmers there !!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am currently 1.2 yrs experienced &lt;/p&gt;&#xA;" OwnerUserId="8635" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-11-26T20:41:59.117" LastActivityDate="2010-11-26T20:41:59.117" Title="How many years of experience needed?" Tags="&lt;knowledge&gt;" AnswerCount="3" CommentCount="8" />
  <row Id="21771" PostTypeId="1" CreationDate="2010-11-26T19:29:55.303" Score="5" ViewCount="290" Body="&lt;p&gt;I've heard the argument that you should use the most generic interface available so that you're not tied to a particular implementation of that interface. Does this logic apply to interfaces like &lt;em&gt;java.util.Collection&lt;/em&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would much rather see something like the following:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;List&amp;lt;Foo&amp;gt; getFoos()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Set&amp;lt;Foo&amp;gt; getFoos()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;instead of &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Collection&amp;lt;Foo&amp;gt; getFoos()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In the last case, I don't know what kind of data set I'm dealing with, whereas in the first two instances I can make some assumptions about ordering and uniqueness. Does &lt;em&gt;java.util.Collection&lt;/em&gt; have a usefulness outside of being a logical parent for both sets and lists? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you came across code that employed &lt;em&gt;Collection&lt;/em&gt; when doing a code review, how would you determine whether its usage is justified, and what suggestions would you make for its replacement with a more specific interface?&lt;/p&gt;&#xA;" OwnerUserId="6894" LastActivityDate="2010-12-01T23:31:53.313" Title="Is there a good reason to use Java's Collection interface?" Tags="&lt;java&gt;&lt;programming-practices&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="21772" PostTypeId="2" ParentId="21605" CreationDate="2010-11-26T19:30:42.780" Score="0" ViewCount="" Body="&lt;p&gt;Psychology... to help navigate office politics ;-).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously for specific jobs, it may be important to have a deep knowledge of the domain your company is operating in, but in general I'd say the greatest benefit of additional fields of knowledge is in how they will alter your thinking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each field contains patterns of thought that a good programmer can internalize and rely on when appropriate.  It is also important not to get carried away. If a field holds no inherent interest to you, attempting to learn it will only cause problems.  Such time could be much better spent learning more advanced programming techniques or inspecting the architecture of significant open source projects.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being the BEST programmer in a workplace will go a long way to filling any perceived gap in an ancillary field when layoff are being considered.&lt;/p&gt;&#xA;" OwnerUserId="8459" LastActivityDate="2010-11-26T19:30:42.780" />
  <row Id="21773" PostTypeId="1" AcceptedAnswerId="21775" CreationDate="2010-11-26T19:33:34.510" Score="6" ViewCount="496" Body="&lt;p&gt;I am working in a small company, and the problem is that we have a manager who thinks that he knows every thing in every language on every platform!!, I don't know how can I deal with his requirements and how to write somthing I am quite sure it is wrong.&lt;br/&gt;&lt;br/&gt;&#xA;What do you do in this situation ? should I drop this job away or this is a general problem and it is everywhere and I have to get used to it or what ?&lt;br/&gt;&lt;/p&gt;&#xA;" OwnerUserId="8372" LastActivityDate="2010-11-27T00:53:58.237" ClosedDate="2010-12-01T12:15:07.243" Title="How do you deal with a crazy manager ?!" Tags="&lt;work-environment&gt;&lt;advice&gt;" AnswerCount="9" CommentCount="6" FavoriteCount="1" />
  <row Id="21774" PostTypeId="2" ParentId="21770" CreationDate="2010-11-26T19:34:53.793" Score="2" ViewCount="" Body="&lt;p&gt;If you can answer the question and have a fair bit of confidence in your answer, then that's all it takes would be my answer.  Thus, it is a matter of having both technical know-how and confidence to make the post.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just don't forget that a lot of people with really high reputations on those sites took some time to build that reputation and so it may take a year or two to get the reputation up by answering questions well enough for them to get up voted.  Just remember to be respectful of people posting questions and be careful on giving smart alec answers as those can sometimes get down voted or deleted I'd imagine if they are sufficiently hostile.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, do be aware of how well you can type sentences as this can be another matter as sometimes it can be hard to decipher what was posted if the sentences seem to follow a haphazard logic.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-26T19:34:53.793" />
  <row Id="21775" PostTypeId="2" ParentId="21773" CreationDate="2010-11-26T19:35:05.883" Score="14" ViewCount="" Body="&lt;p&gt;Get away.  Fast!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The company is probably too small to be able to cope with his personality.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-26T19:35:05.883" CommentCount="4" />
  <row Id="21776" PostTypeId="2" ParentId="21773" CreationDate="2010-11-26T19:36:53.510" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://careers.stackoverflow.com&quot;&gt;http://careers.stackoverflow.com&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-26T19:36:53.510" />
  <row Id="21777" PostTypeId="2" ParentId="21770" CreationDate="2010-11-26T19:43:31.777" Score="7" ViewCount="" Body="&lt;p&gt;If you know the answer, then answer it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is one of those jobs where you have to always be learning in order to keep up with it. Because of this, you don't necessarily need a lot of experience to be able to understand a language or technology well. It does help, but it is not required. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And don't forget, 30 years programming could just mean one year of experience repeated 30 times&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-11-26T19:43:31.777" />
  <row Id="21778" PostTypeId="2" ParentId="21496" CreationDate="2010-11-26T19:45:24.600" Score="1" ViewCount="" Body="&lt;p&gt;I'm shocked - and indeed appalled - at the number of answers here saying &quot;don't update unless you have to&quot;. I've done that, and whilst it's easier in the short term, it burns like hell in the long run. More frequent, smaller updates are much, much easier to manage than occasional big ones, and you get the benefit of new features, bug fixes, and so on sooner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't buy this idea that library changes are somehow more difficult to test than code changes. It's just the same - you're making a change to the codebase, and you need to validate it before you commit, and more deeply before you release. But you must already have processes to do this, since you're making code changes!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're working in iterations, of two to four weeks length, i would suggest making updating libraries a once per iteration task, to be done as soon as possible after the start, when things are a little more relaxed than just before an iteration deadline, and the project has more capacity to absorb change. Get someone (or a pair if you do pair programming) to sit down, look at which libraries have been updated, and try bringing each one in and running a rebuild and test. Budget half a day to a day for it each iteration, perhaps. If things work, check in the changes (i'm assuming you keep libraries in source control, as we do; i'm not sure how you'd propagate the change in a controlled way if not). This will obviously be a lot easier if you have automated tests than if testing is entirely manual.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, the question is what you do if an update breaks things - do you spend time fixing it, or leave it out? I'd suggest leaning towards the latter; if it can be fixed in an hour, do it, but if an update is going to take significant work to integrate, then raise it as its own development task, to be estimated, prioritised, and scheduled just like any other. The chances are that unless it brings in some very crucial fix or improvement, the priority will be low, and you'll never get round to it. But you never know, by the time the next iterationly update day rolls round, the problem might have fixed itself; even if not, at least now you know that there's a roadblock on the update path, and it won't catch you by surprise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're not doing iterations of that length, i would set up some kind of standalone schedule for updates - no longer than monthly. Is there some other project rhythm you could tie it to, like a monthly status review, or an architecture board meeting? Payday? Pizza night? Full moon? Whatever, you need to find something a lot shorter than a traditional release cycle, because trying to update everything in one go every 6-18 months is going to be painful and demoralising.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Needless to say, if you do stabilisation branches before releases, you wouldn't apply this policy to them. There, you'd only update libraries to get critical fixes.&lt;/p&gt;&#xA;" OwnerUserId="854" LastActivityDate="2010-11-26T19:45:24.600" />
  <row Id="21779" PostTypeId="2" ParentId="21770" CreationDate="2010-11-26T19:46:40.133" Score="7" ViewCount="" Body="&lt;p&gt;If you know a good answer (not necessarily the best, but it must be good) then please do write an answer.  Several things may then happen:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Your answer is &lt;strong&gt;downvoted&lt;/strong&gt; to minus infinity.  Ok, bad answer.  Learn why if there is comments or create a new question asking why this is a bad answer if you can't guess.  &lt;/li&gt;&#xA;&lt;li&gt;Your answer gets some &lt;strong&gt;upvotes&lt;/strong&gt;.  Great.  The answer &lt;em&gt;is&lt;/em&gt; good.  Read the other answers to see what your peers have thought in the same situation, and &lt;em&gt;learn&lt;/em&gt;!&lt;/li&gt;&#xA;&lt;li&gt;Your answer generates &lt;strong&gt;comments&lt;/strong&gt;.  Great.  The comments reveal what others think of your solution, which may be good or bad.  Take special note of the comments with high upvotes, and learn from it all.&lt;/li&gt;&#xA;&lt;li&gt;Your answer gets &lt;strong&gt;accepted&lt;/strong&gt;.  Great!  Congratulations! You did it!  Learn from the other answers, and on to the next question.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Please note that you should take time to craft your answer well.  Code should be runnable (or marked as untested).  Your English should be good and well-mannered.  Explain the &lt;em&gt;why&lt;/em&gt;'s in addition to the &lt;em&gt;how&lt;/em&gt;'s shown by the code.   One-liners rarely get accepted, when there is an answer saying the same thing but better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are all craftsmen, being proud of what we do.  Feel free to do the same :)&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-26T19:46:40.133" CommentCount="1" />
  <row Id="21780" PostTypeId="2" ParentId="21771" CreationDate="2010-11-26T19:48:46.997" Score="4" ViewCount="" Body="&lt;p&gt;The &lt;code&gt;Collection&lt;/code&gt; interface, and the most permissive form &lt;code&gt;Collection&amp;lt;?&amp;gt;&lt;/code&gt;, is great for &lt;em&gt;parameters&lt;/em&gt; that you accept. Based on &lt;a href=&quot;http://download.oracle.com/javase/6/docs/api/java/util/class-use/Collection.html&quot; rel=&quot;nofollow&quot;&gt;use in the Java library itself&lt;/a&gt; it's more common as a parameter type than a return type.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For return types, I think your point is valid: If people are expected to access it, they should know the order (in the Big-O sense) of the operation being performed. I would iterate over a &lt;code&gt;Collection&lt;/code&gt; returned and add it to another Collection, but it would seem a bit crazy to call &lt;code&gt;contains&lt;/code&gt; on it, not knowing if it's a O(1), O(log n), or O(n) operation. Of course, just because you have a &lt;code&gt;Set&lt;/code&gt; doesn't mean it's a hashset or a sorted set, but at some point you will make assumptions that the interface has been reasonably implemented (and then you'll need to go to plan B if your assumption is shown to be incorrect).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Tom mentions, sometimes you need to return a &lt;code&gt;Collection&lt;/code&gt; in order to maintain encapsulation: You don't want implementation details leaking out, even if you could return something more specific. Or, in the case Tom mentioned, you could return the more specific container, but then you'd have to construct it.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-11-27T18:02:09.750" LastActivityDate="2010-11-27T18:02:09.750" CommentCount="5" />
  <row Id="21781" PostTypeId="2" ParentId="21773" CreationDate="2010-11-26T19:52:41.687" Score="10" ViewCount="" Body="&lt;p&gt;Try this: &lt;img src=&quot;http://i.imgur.com/8Vw6f.jpg&quot; alt=&quot;Vodka&quot;&gt; &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-11-26T21:41:54.527" LastActivityDate="2010-11-26T21:41:54.527" CommentCount="5" />
  <row Id="21782" PostTypeId="1" CreationDate="2010-11-26T19:53:06.693" Score="31" ViewCount="1038" Body="&lt;p&gt;Time after time this question came up in my mind, but up until today I wasn't thinking about it much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been programming for maybe around 8 years now, and for the last two years it seems I'm not as keen to pick up new technologies anymore. Maybe that's a burnout or something, but I'd say it's experience and what I like, that's stopping me from running after the latest and greatest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm C++ developer, by this I mean, I love close to metal programming. I have no problems tracing problems through assembly, using tools like WinDbg or HexView. When I use constructs, I think about how they are realized underneath, how the bits are set and unset under the hood. I love battling with complex threading problems and doing everything hardcore way, even by hand if the regular solutions seem half baked. But I also love the C++0x stuff, and use it a lot. And all C++ code as long as it's not cumbersome compared to C counterparts, sometimes I also fall back to sort of &quot;Super C&quot; if the C++ way is ugly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then there are all other developers who seem to be way more forward looking, .Net 4.0 MVC, WPF, all those Microsoft X#s, LINQ languages, XML and XSLT, mobile devices and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have done a considerable amount of .NET, SQL, ASPX programming, but the further I go, the less I want to try those technologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is that bad? Almost every day I hear people saying that managed code is the only way forward, WPF is the way to go. I hear that C++ is godawful, and you can't code anything in it that's somewhat stable. But I don't buy it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the experience I have, and the knowledge of how native code is compiled and executes, I can say I find it extremely rare that C++ code is unstable, or leaks, or causes crashes that takes more than 30 seconds to identify and fix. And to tell the truth, I've seen enough problems with other &quot;cool&quot; languages that I'd say C++ is even more stable and production proof than the safe languages, at least for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only thing that scares me in C++ is new frameworks, I don't trust them, and I use them extra sparingly. STL - yes, ATL - very sparingly, everything else... Well, not very keen on it. Most huge problems I've ran into, all were related to frameworks, not the language itself. Some overrided operator here, bad hierarchy there, poor class design here, mystical castings there. Other than that, C/C++ (yes, I use them together) still seems a very controlled and stable way to develop applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I stagnating? Should I switch a profession, or force myself in all that marketing hype? Are there more developers who feel the same way?&lt;/p&gt;&#xA;" OwnerUserId="8029" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-08T15:47:27.083" LastActivityDate="2010-12-28T03:41:29.590" ClosedDate="2010-12-28T23:25:09.177" Title="Stagnating in programming" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;c++&gt;" AnswerCount="16" CommentCount="3" FavoriteCount="4" />
  <row Id="21783" PostTypeId="2" ParentId="2935" CreationDate="2010-11-26T19:58:10.583" Score="0" ViewCount="" Body="&lt;p&gt;I learned programming as a kid. I read biochemistry at university. I started a PhD in cell biology. I ran out of funding before i finished; the only decently-paid job i could get was as a part-time programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A year or so later, i decided i preferred programming to academia, so i abandoned the PhD and moved into programming full time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, i suppose i chose it because it was something i could do, work was available, and it paid okay. But i chose to stay because i enjoy it.&lt;/p&gt;&#xA;" OwnerUserId="854" LastActivityDate="2010-11-26T19:58:10.583" />
  <row Id="21784" PostTypeId="2" ParentId="21697" CreationDate="2010-11-26T19:59:24.317" Score="0" ViewCount="" Body="&lt;p&gt;Like &lt;a href=&quot;http://programmers.stackexchange.com/questions/21697/when-do-i-need-to-use-a-framework/21703#21703&quot;&gt;Niphra&lt;/a&gt; said, only start using a framework when you can use PHP without a framework (that is, access the database, send headers and content, string processing, data manipulation, etc.). As far as your questions are concerned:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;em&gt;When do I need to use a PHP framework such as CakePHP?&lt;/em&gt; When your project grows beyond a few PHP files; the moment you start strongly separating the logic into distinct elements and modularizing/sharing functionality (sessions, etc.) is when you should use a framework.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;em&gt;What are things that this and other similar PHP frameworks offer for me?&lt;/em&gt; &lt;strong&gt;Abstraction&lt;/strong&gt;; instead of directly interacting with the database you can use an Object-Relational Mapping (ORM) to manage the structure and relationships between your data in the database. Most framework in many languages provide ORM's to make it easier to interact with the database layer of your application. Similarly, frameworks often separate the layers of responding to user interaction. The most common separation is the Model View Controller (MVC) paradigm, which, to be brief, abstracts database logic into the Model (an interface to the ORM, in many cases), processing requests and interacting with Models into the Controller, and the rendering of the actual HTML/PDF/image/etc. into the View. Frameworks often provide other tools such as routing (to allow for complex processing of the request URI (EG: Mapping the request &quot;http://example.com/users/1&quot; to the controller Users, which then looks up the user Model with the ID of 1) and an abstraction of sessions and other basic structures.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;em&gt;And is it really important to use a framework to be a professional?&lt;/em&gt; Not necessarily; frameworks make life easier; but you don't have to use one to be a professional. Frameworks provide handy abstraction and standardization, but they aren't a requirement in most cases.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8342" LastActivityDate="2010-11-26T19:59:24.317" />
  <row Id="21785" PostTypeId="2" ParentId="21782" CreationDate="2010-11-26T20:02:02.377" Score="25" ViewCount="" Body="&lt;p&gt;You've found your niche.  Good for you.  You know what you want, you know what you like, you know what you're good at.  What's wrong with that??  Don't worry about picking up other technologies.  Be the best C++ programmer out there (or that you can be) and you'll be happy and probably well employed as well.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-11-26T20:02:02.377" CommentCount="2" />
  <row Id="21786" PostTypeId="2" ParentId="21771" CreationDate="2010-11-26T20:04:19.270" Score="4" ViewCount="" Body="&lt;p&gt;I'd look at it from the complete opposite point of view, and ask: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If you came across code that employed List&amp;lt;&gt; when doing a code review, how would you determine whether its usage is justified?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's quite easy to justify this. You use the List when you need some functionality that is not offered by a Collection. If you don't need that extra functionality - what justification do you have? (And I won't buy, &quot;I'd prefer to see it&quot;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are plenty of cases where you will be using a collection for read-only purposes, populating it all at once, iterating through it entirely - do you ever need to index the thing manually?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To give a real example. Say I perform a simple query on a database. (&lt;code&gt;SELECT id,name,rep FROM people WHERE name LIKE '%squared'&lt;/code&gt;) I grab back the relevant data, populate Person objects and put em into a PersonList)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do I need to access by index? - Would be meaningless. There's no mapping between index and ID.&lt;/li&gt;&#xA;&lt;li&gt;Do I need to insert at an index? - No, the DBMS will decide where to put it, if I'm adding at all.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So what justification would I have for those extra methods? (which would be left unimplemented in my PersonList anyway)&lt;/p&gt;&#xA;" OwnerUserId="356" LastEditorUserId="356" LastEditorDisplayName="" LastEditDate="2010-11-26T20:09:46.767" LastActivityDate="2010-11-26T20:09:46.767" CommentCount="3" />
  <row Id="21788" PostTypeId="2" ParentId="21771" CreationDate="2010-11-26T20:41:45.993" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Abstractions live longer than implementations&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general the more abstract your design the longer it is likely to remain useful. So, since Collection is more abstract that it's sub-interfaces then an API design based on Collection is more likely to remain useful than one based on List.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the overarching principle is to use the &lt;strong&gt;most appropriate abstraction&lt;/strong&gt;. So if your collection must support ordered elements then mandate a List, if there are to be no duplicates then mandate a Set, and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A note on generic interface design&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you're interested in using the Collection interface with generics you may the following helpful. &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321356683&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Effective Java&lt;/em&gt; by Joshua Bloch&lt;/a&gt; recommends the following approach when designing an interface that will rely on generics: &lt;em&gt;Producers Extend, Consumers Super&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is also known as the &lt;strong&gt;PECS rule&lt;/strong&gt;. Essentially, if generic collections that produce data are passed to your class the signature should look like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public void pushAll(Collection&amp;lt;? extends E&amp;gt; producerCollection) {}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Thus the input type can be E or any subclass of E (E is defined as both a super- and sub-class of itself in the Java language).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Conversely, a generic collection that is passed in to consume data should have a signature like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public void popAll(Collection&amp;lt;? super E&amp;gt; consumerCollection) {}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The method will correctly deal with any superclass of E. Overall, using this approach will make your interface less surprising to your users because you'll be able to pass in &lt;code&gt;Collection&amp;lt;Number&amp;gt;&lt;/code&gt; and &lt;code&gt;Collection&amp;lt;Integer&amp;gt;&lt;/code&gt; and have them treated correctly. &lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-01T23:31:53.313" LastActivityDate="2010-12-01T23:31:53.313" />
  <row Id="21789" PostTypeId="2" ParentId="21782" CreationDate="2010-11-26T20:55:18.567" Score="8" ViewCount="" Body="&lt;p&gt;I am in a similar situation but I don't think I'm stagnating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming isn't that much about following new technologies meticulously rather than problem solving. It doesn't truly matter if all you have is a soldering iron or a hi-tech super-computer, there will always be problems to solve. New technologies are tools too. They are not the solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as there is something to learn, somewhere to go, you're not stagnating.&lt;/p&gt;&#xA;" OwnerUserId="8454" LastActivityDate="2010-11-26T20:55:18.567" />
  <row Id="21790" PostTypeId="2" ParentId="21773" CreationDate="2010-11-26T21:03:16.277" Score="8" ViewCount="" Body="&lt;p&gt;You need manager management tactics...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Tactic 1 - Humiliation then praise&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Preparation is key here. Spend some time doing some detailed research on a particular topic - say design patterns for example. Have the whole subject absolutely down pat so you can talk at length in your sleep on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next time he comes along and states how it should be done, just ask him to talk you through the relevant pattern. Watch him flounder. Calmly (and calm is &lt;em&gt;VERY&lt;/em&gt; important) explain why his answer is utterly useless. Do this for every single decision that he makes that affects you and your colleagues in a negative way. If he keeps the hell away praise him for his diligence at keeping you guys on track, if he starts to dictate take him apart on another subject. Eventually, he'll get the message. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Tactic 2 - Distraction&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every time he comes along to attempt to lead the project down some rat hole distract him. Use anything to keep him off balance. For example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Loon: &quot;I want to rip out all this Spring stuff and replace it with this home grown library I thought of over the weekend.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You: &quot;Interesting. How was your weekend? Did you go skiing? Which resort?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Loon: &quot;Aspen, actually, thanks for asking.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... time passes as he burbles on about mastering the green slopes ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You: &quot;Look, I gotta go. We'll talk some more about that library later.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Tactic 3 - Scarper&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No job is worth having to deal with a crazy manager. Quit and replace your crazy manager with a sane one.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-26T21:03:16.277" CommentCount="2" />
  <row Id="21791" PostTypeId="1" AcceptedAnswerId="21811" CreationDate="2010-11-26T21:11:52.420" Score="19" ViewCount="1014" Body="&lt;p&gt;What would be a good example of the use of TDD in large, real-life, complex, projects?  All the examples I've seen so far are toy projects for the purpose of a book or a paper...    &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you name an open-source project that heavily uses TDD? Preferably in C++ but I can read Java and C# or other similar languages.&lt;/p&gt;&#xA;" OwnerUserId="602" LastEditorUserId="602" LastEditorDisplayName="" LastEditDate="2010-12-03T21:04:30.837" LastActivityDate="2010-12-07T11:04:30.530" Title="Good example of complex code using TDD" Tags="&lt;java&gt;&lt;c#&gt;&lt;open-source&gt;&lt;c++&gt;&lt;tdd&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="3" />
  <row Id="21792" PostTypeId="2" ParentId="21791" CreationDate="2010-11-26T21:15:57.357" Score="4" ViewCount="" Body="&lt;p&gt;If I recall FitNesse is written with TDD, and the main contributor to the project is Uncle Bob Martin, so, it's probably really clean code&lt;/p&gt;&#xA;" OwnerUserId="2431" LastActivityDate="2010-11-26T21:15:57.357" CommentCount="1" />
  <row Id="21793" PostTypeId="2" ParentId="11147" CreationDate="2010-11-26T21:21:06.363" Score="1" ViewCount="" Body="&lt;p&gt;I asked the navicat support team what their plans were, and to my surprise, they were about ready to release it.  I got the beta version, and it works great!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.navicat.com/en/products/navicat_sqlserver/sqlserver_overview.html&quot; rel=&quot;nofollow&quot;&gt;http://www.navicat.com/en/products/navicat_sqlserver/sqlserver_overview.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5050" LastActivityDate="2010-11-26T21:21:06.363" />
  <row Id="21794" PostTypeId="2" ParentId="21782" CreationDate="2010-11-26T21:33:33.533" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You're not stagnating - you are no longer being challenged&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your opinion of frameworks is entirely justified. I quote &lt;a href=&quot;http://programmers.stackexchange.com/users/131/tim-post&quot;&gt;Tim Post&lt;/a&gt; from &lt;a href=&quot;http://programmers.stackexchange.com/questions/21697/when-do-i-need-to-use-a-framework&quot;&gt;this question&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Frameworks are&#xA;  tools meant for the skilled people who&#xA;  know how to use them and understand&#xA;  the limitations of their choices. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You clearly have a deep understanding of the underlying technology and so it is not necessary for you to move to a higher level of abstraction in order to acquire the necessary proficiency to be productive. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, rather than continue working in an arena that you have mastered fully, why not take on the challenge of something new? I'm not talking about giving up on coding, I mean a change of sector. For example, if your code is running on medical hardware what about looking into telecommunications instead? &lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-26T21:33:33.533" CommentCount="2" />
  <row Id="21796" PostTypeId="2" ParentId="21697" CreationDate="2010-11-26T21:45:25.680" Score="2" ViewCount="" Body="&lt;p&gt;Build a few pages without a framework... you will essentially begin writing your own framework by trial and error. After you do that, move to a framework and enjoy how much time you save. Trying to build your own framework can teach you some things, and will help you appreciate the frameworks that are already out there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I first got into PHP, I thought frameworks were a complicated waste of time. Now, I use CodeIgniter for even simple projects. It takes about 1 minute to get up and running you already have a ton of great libraries available to you. And, as a previous poster mentioned, most frameworks are extensible, so you can always add whatever functionality you want.&lt;/p&gt;&#xA;" OwnerUserId="4881" LastActivityDate="2010-11-26T21:45:25.680" CommentCount="1" />
  <row Id="21797" PostTypeId="2" ParentId="21791" CreationDate="2010-11-26T21:48:41.917" Score="4" ViewCount="" Body="&lt;p&gt;From my discussions with the P&amp;amp;P Team at Microsoft, Enterprise Library was written with TDD.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-11-26T21:48:41.917" CommentCount="4" />
  <row Id="21799" PostTypeId="2" ParentId="21791" CreationDate="2010-11-26T22:07:09.793" Score="3" ViewCount="" Body="&lt;p&gt;I can't name any open-source projects that used TDD, but I can tell you that I've worked on real-world projects where TDD was used...and was a lifesaver!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-26T22:07:09.793" CommentCount="3" />
  <row Id="21800" PostTypeId="2" ParentId="21535" CreationDate="2010-11-26T22:13:03.093" Score="1" ViewCount="" Body="&lt;p&gt;Blocking sites like blogs and google images do not help, sometimes/often answers to problems you have (or if you just forget something) are on sites like these.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your developers are just spending their time of Facebook and not producing anything, then they don't seem to care they have a job. Ultimately they wouldn't be a programmer if they didn't enjoy it. Having said that Facebook and such sites shouldn't be blocked because there are times when you just need to clear your head.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I don't see how you can know &quot;Woah dodge a bullet there&quot; if the sites blocked and you'll never know what the site is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And there's generally a way around it, from simply using a different language, to use the IP Address, to hitting Esc/Stop at the right time (depending on how useless the blocking software is, &lt;em&gt;cough&lt;/em&gt; older version of Impero &lt;em&gt;cough&lt;/em&gt;) to using a proxy. So more time will be wasted on getting around the blocking than if the site was unblocked&lt;/p&gt;&#xA;" OwnerUserId="5199" LastActivityDate="2010-11-26T22:13:03.093" CommentCount="1" />
  <row Id="21801" PostTypeId="2" ParentId="21773" CreationDate="2010-11-26T22:19:33.840" Score="1" ViewCount="" Body="&lt;p&gt;While an obnoxious boss can be a problem, so too can be an obnoxious employee who always thinks he knows better than his boss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just make sure you're not always assuming he can't possibly be right.  It could be that you don't understand all the requirements, or the budget, or other issues that occur higher up the chain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your boss may ask you to use an already existing product to get the job done faster.  No, it may not be the ideal solution, but it might be far more cost effective and the client will be happy anyways.  The best technical solution is not always (and often isn't) the best solution for the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good boss would let you know that there are reasons for his choices, even if he can't tell you what they are.  And, he may not be a good boss.  Maybe your opinion of him is correct.  but the fact is, he's the boss.  Don't like it.  Get a new job.&lt;/p&gt;&#xA;" OwnerUserId="4368" LastEditorUserId="1626" LastEditorDisplayName="" LastEditDate="2010-11-26T22:21:34.637" LastActivityDate="2010-11-26T22:21:34.637" CommentCount="2" />
  <row Id="21802" PostTypeId="1" CreationDate="2010-11-26T22:24:27.937" Score="13" ViewCount="750" Body="&lt;p&gt;Getters and setters are often criticized as being not proper OO.  On the other hand most OO code I've seen has extensive getters and setters. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When are getters and setters justified? Do you try to avoid using them? Are they overused in general?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your favorite language has properties (mine does) then such things are also considered getters and setters for this question. They are same thing from an OO methodology perspective. They just have nicer syntax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sources for Getter/Setter Criticism (some taken from comments to give them better visibility):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html&quot; rel=&quot;nofollow&quot;&gt;http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://typicalprogrammer.com/?p=23&quot; rel=&quot;nofollow&quot;&gt;http://typicalprogrammer.com/?p=23&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://c2.com/cgi/wiki?AccessorsAreEvil&quot; rel=&quot;nofollow&quot;&gt;http://c2.com/cgi/wiki?AccessorsAreEvil&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.darronschall.com/weblog/2005/03/no-brain-getter-and-setters.cfm&quot; rel=&quot;nofollow&quot;&gt;http://www.darronschall.com/weblog/2005/03/no-brain-getter-and-setters.cfm&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.adam-bien.com/roller/abien/entry/encapsulation_violation_with_getters_and&quot; rel=&quot;nofollow&quot;&gt;http://www.adam-bien.com/roller/abien/entry/encapsulation_violation_with_getters_and&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;To state the criticism simply: Getters and Setters allow you to manipulate the internal state of objects from outside of the object. This violates encapsulation. Only the object itself should care about its internal state.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And an example&#xA;Procedural version of code.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;struct Fridge&#xA;{&#xA;    int cheese;&#xA;}&#xA;&#xA;void go_shopping(Fridge fridge)&#xA;{&#xA;     fridge.cheese += 5;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Mutator version of code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Fridge&#xA;{&#xA;     int cheese;&#xA;&#xA;     void set_cheese(int _cheese) { cheese = _cheese; }&#xA;     int get_cheese() { return cheese; }&#xA; }&#xA;&#xA;void go_shopping(Fridge fridge)&#xA;{&#xA;     fridge.set_cheese(fridge.get_cheese() + 5);        &#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The getters and setters made the code much more complicated without affording proper encapsulation. Because the internal state is accessible to other objects we don't gain a whole lot by adding these getters and setters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question has been previously discussed on Stack Overflow:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/565095/java-are-getters-and-setters-evil&quot;&gt;http://stackoverflow.com/questions/565095/java-are-getters-and-setters-evil&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/996179&quot;&gt;http://stackoverflow.com/questions/996179&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1343" LastEditorUserId="1343" LastEditorDisplayName="" LastEditDate="2011-04-10T17:34:47.980" LastActivityDate="2011-04-10T17:34:47.980" Title="When are Getters and Setters Justified" Tags="&lt;object-oriented&gt;" AnswerCount="9" CommentCount="13" FavoriteCount="5" />
  <row Id="21803" PostTypeId="2" ParentId="21802" CreationDate="2010-11-26T22:28:20.867" Score="5" ViewCount="" Body="&lt;p&gt;The basic reason for getters and setters in Java is very simple:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You can only specify &lt;em&gt;methods&lt;/em&gt;, not fields, in an interface.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Hence, if you want to allow a field to pass across the interface, you will need a reader and a writer method.  These are traditionally called getX and setX for the field x.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-26T22:28:20.867" CommentCount="7" />
  <row Id="21804" PostTypeId="2" ParentId="21782" CreationDate="2010-11-26T22:31:17.373" Score="14" ViewCount="" Body="&lt;p&gt;Frameworks improve your productivity.  I mean, I can hook up a web service with WCF and a client to use it in a few minutes.. writing that from scratch in C++ will take you days, if not weeks or months..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At some point, you have to give up on the &quot;not invented here&quot; syndrome and get with the program.  You use STL because you don't want to keep hand codeing linked lists and containers.  Someone came up with a good way to deal with it.  It wasn't an inconsiderable amount of effort to learn and familiarize yourself with that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good programmers grow, and if you refuse to grow.. you're limiting yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That doesn't mean you have to jump on every latest fad.   But you do have to keep an open mind.  Not every problem is easily solved by writing C++ code from scratch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing to keep in mind is that the further behind the curve you get.. the harder it will be to catch up if you need to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And why would you need to?  Well, if the number of jobs available to you starts to shrink.  You get laid off, and you spend months finding new work.  That's the wrong time to be cramming knowledge down your throat to catch up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No, i'm not saying C++ jobs are going to disappear.. but they have diminished greatly in recent years, but then so too have the number of people that want to work in C++.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you plan to stay in C++, then you should plan to become the best you possibly can at it, because there will likely come a day when you're fighting over fewer and fewer jobs.&lt;/p&gt;&#xA;" OwnerUserId="4368" LastActivityDate="2010-11-26T22:31:17.373" CommentCount="6" />
  <row Id="21805" PostTypeId="2" ParentId="21782" CreationDate="2010-11-26T22:42:09.793" Score="4" ViewCount="" Body="&lt;p&gt;It sounds to me like you've got a really deep understanding of C++ itself and you're not being pushed so much by it any more. Have you read &lt;em&gt;The Pragmatic Programmer?&lt;/em&gt; For me that was a book about finding ways to become better at the craft of programming and I think that reading it again would be a great way of bouncing out of a rut if I felt I was getting into one. The guidance it contains certainly got me thinking more about everything I do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Conversely, there is a risk that if you spend too much time in your comfort zone you get stuck there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, it sounds like you are happier close to the metal and if you are good at that there will always be work in that area. If you want to be flipping bits and diving deep towards hardware there is always a call for good embedded systems programmers in particular, which - picking up entirely on second-hand knowledge from a friend who works in the field - comes with a set of challenges all it's own. From what you say working with different devices and chipsets might suit you better than learning to use Clojure or Haskell to create high level web frameworks so that might open different doors to you as well.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-11-26T22:42:09.793" />
  <row Id="21806" PostTypeId="2" ParentId="21802" CreationDate="2010-11-26T22:52:06.330" Score="0" ViewCount="" Body="&lt;p&gt;Here is a citation for the question: &lt;a href=&quot;http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html&quot; rel=&quot;nofollow&quot;&gt;http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8641" LastActivityDate="2010-11-26T22:52:06.330" CommentCount="1" />
  <row Id="21807" PostTypeId="2" ParentId="21802" CreationDate="2010-11-26T22:53:14.167" Score="0" ViewCount="" Body="&lt;p&gt;Getters and setters are a way to safely hand a value to an object, or retrieve a value from that object.  In the form of properties, getters and setters provide a number of benefits:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;They shield private variables from the outside world (i.e. you don't have to declare them public)&lt;/li&gt;&#xA;&lt;li&gt;They provide a place to perform data validation.&lt;/li&gt;&#xA;&lt;li&gt;They state your intent (a getter is supposed to return a value almost immediately.  There is no such expectation for a method.)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The JavaWorld article seems to boil down to this premise: &lt;em&gt;Don't ask for the information you need to do the work; ask the object that has the information to do the work for you.&lt;/em&gt;  It's a nice sentiment, but sometimes it's simpler just to ask the object for the information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With respect to &quot;brainless&quot; getters and setters, here's the thing: in C#, changing a public member variable to a private member and a property &lt;em&gt;breaks binary compatibility&lt;/em&gt;.  It is therefore safer to use automatic properties, like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public string MyProperty { get; set; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That way, if you need to add validation, you can do it easily, without breaking binary compatibility.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-27T02:50:11.647" LastActivityDate="2010-11-27T02:50:11.647" CommentCount="9" />
  <row Id="21808" PostTypeId="2" ParentId="21802" CreationDate="2010-11-26T23:08:58.713" Score="1" ViewCount="" Body="&lt;p&gt;My approach is this -&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I expect to diddle with the data later on, a getter/setter is justified. Also, if change is happening, I often push the data into a getter/setter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's a POD structure, I leave the slots available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a more abstract level, the question is &quot;who manages the data&quot;, and that depends on the project.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-26T23:08:58.713" />
  <row Id="21809" PostTypeId="2" ParentId="21802" CreationDate="2010-11-26T23:16:13.470" Score="16" ViewCount="" Body="&lt;p&gt;Having getters and setters does not in itself break encapsulation.  What does break encapsulation is having a getter and a setter for every data member (every &lt;em&gt;field&lt;/em&gt;, in java lingo).  That is one step away from making all data members public.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point of encapsulation is not that you should not be able to know or to change the object's state from outside the object, but that you should have a reasonable &lt;em&gt;policy&lt;/em&gt; for doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider an example of a &lt;code&gt;class Person&lt;/code&gt;.  Let's say a person has a name, a social security number, and an age.  Let's say that we do not allow people to ever change their names or social security numbers.  However, the person's age should be incremented by 1 every year.  In this case, you would provide a constructor that would initialize the name and the SSN to the given values, and which would initialize the age to 0.  You would also provide a method &lt;code&gt;incrementAge()&lt;/code&gt;, which would increase the age by 1.  You would also provide getters for all three.  No setters are required in this case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this design you allow the state of the object to be inspected from outside the class, and you allow it to be changed from outside the class.  However, you do not allow the state to be changed arbitrarily.  There is a policy, which effectively states that the name and the SSN cannot be changed at all, and that the age can be incremented by 1 year at a time.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now let's say a person also has a salary.  And people can change jobs at will, which means their salary will also change.  To model this situation we have no other way but to provide a &lt;code&gt;setSalary()&lt;/code&gt; method!  Allowing the salary to be changed at will is a perfectly reasonable policy in this case.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, in your example, I would give the class &lt;code&gt;Fridge&lt;/code&gt; the &lt;code&gt;putCheese()&lt;/code&gt; and &lt;code&gt;takeCheese()&lt;/code&gt; methods, instead of &lt;code&gt;get_cheese()&lt;/code&gt; and &lt;code&gt;set_cheese()&lt;/code&gt;.  Then you would still have encapsulation.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastEditorUserId="4365" LastEditorDisplayName="" LastEditDate="2010-11-26T23:29:41.123" LastActivityDate="2010-11-26T23:29:41.123" CommentCount="7" />
  <row Id="21810" PostTypeId="2" ParentId="21773" CreationDate="2010-11-26T23:20:19.307" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;should I drop this job away or this is a general problem and it is everywhere and I have to get used to it or what ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No, you shouldn't have to get used to having a bad boss.  There's only one person who can determine if your boss is bad in your opinion, and I'm sure you can figure out who that is.  It's difficult to say what is going on with your boss, but it &lt;em&gt;is&lt;/em&gt; very much possible your boss literally is mentally unsound.  Narcissists and people with Antisocial Personality Disorder in particular are attracted to management, and are also good at getting such jobs because of their demeanor and chutzpah.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first piece of advice I would give you is to try figuring out the roots of your boss's craziness.  This gives you the information you need to really figure out how to deal with him/her.  I found &lt;a href=&quot;http://www.softpanorama.org/Social/Toxic_managers/index.shtml&quot; rel=&quot;nofollow&quot;&gt;this page&lt;/a&gt; to be relatively helpful (but take the psychological insights with a grain of salt:  the person writing them isn't a psychologist).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, once you've found out the source of their craziness, the next goal is to figure out your role in their insanity.  For instance, if your boss is a narcissist, then the only way to encourage him or her is by inflating their ego.  Try saying things like &quot;That's a &lt;em&gt;great&lt;/em&gt; idea.  In fact, I think that we can use that line of thought to...&quot; followed by a rational idea that sounds superficially similar to theirs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember, this is just advice for how to cope in the short term.  I think Martin Fowler put it best when he said &quot;change your company or change your company&quot;.  Unfortunately, getting anyone to believe that your boss really is screwing things up is going to be difficult if not impossible.  So really the only option that seems reasonable to me is finding a new job.  At least in the long term.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-26T23:20:19.307" />
  <row Id="21811" PostTypeId="2" ParentId="21791" CreationDate="2010-11-26T23:21:11.600" Score="7" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://JUnit.Org/&quot; rel=&quot;nofollow&quot;&gt;JUnit&lt;/a&gt; was developed 100% test-driven. In fact, it was developed 100% test-driven &lt;em&gt;in JUnit&lt;/em&gt;, which as Kent Beck has said a couple of times was a truly mindbending exercise.&lt;/li&gt;&#xA;&lt;li&gt;I &lt;em&gt;believe&lt;/em&gt; Sun's ZFS filesystem was developed test-driven.&lt;/li&gt;&#xA;&lt;li&gt;The ikj interpreter for the &lt;a href=&quot;http://Ioke.Org/&quot; rel=&quot;nofollow&quot;&gt;Ioke&lt;/a&gt; programming language (JVM), the ikc interpreter for the Ioke programming language (CLI), the entire Ioke core and standard library, and in fact the language itself was developed 100% test-driven (actually behavior-driven).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-11-26T23:21:11.600" CommentCount="1" />
  <row Id="21812" PostTypeId="2" ParentId="21802" CreationDate="2010-11-26T23:22:00.540" Score="0" ViewCount="" Body="&lt;p&gt;I'd hope that anything that the IDE developed by the company that develops your programming language auto generates doesn't violate the &quot;Principles of Object Orientation&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, any time you've got a public scoped variable, use a getter and a setter and you're golden.  Seems to me to be the necessary element of the extremely object oriented principle of encapsulation - even if it just looks like a lot of junky code.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason to use them is that the proper encapsulation may yet take place and so long as you've abstracted away the layer that lets the person monkeying with your object feel your object, you can take that object away without him even knowing right?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suffice it to say, a house divided cannot stand, one of the tenants of OO isn't going to turn on itself and you can't serve both encapsulation and premature optimization.  &lt;/p&gt;&#xA;" OwnerUserId="1973" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2010-11-26T23:27:04.030" LastActivityDate="2010-11-26T23:27:04.030" CommentCount="10" />
  <row Id="21813" PostTypeId="2" ParentId="21773" CreationDate="2010-11-26T23:26:44.840" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You really need to change jobs, fast&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you stay there too long, you will struggle to get a good next job. Your confidence will go and you will stagnate skill wise.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-26T23:26:44.840" />
  <row Id="21814" PostTypeId="1" CreationDate="2010-11-26T23:34:29.483" Score="3" ViewCount="240" Body="&lt;p&gt;Hi guys,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to learn C#, JSP, PHP, ASP.NET. Can you tell me what which one should I start with and what comes after? And please give a reason why should I start with thin and why you chose the other one to come as number 2 and so on?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I appreciate your help.&lt;/p&gt;&#xA;" OwnerUserId="26782" LastActivityDate="2011-02-05T16:21:10.493" ClosedDate="2011-02-05T16:50:26.667" Title="I want to learn these, what should I pick up first?" Tags="&lt;php&gt;&lt;c#&gt;&lt;asp.net&gt;&lt;jsp&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="21815" PostTypeId="2" ParentId="21125" CreationDate="2010-11-26T23:37:00.063" Score="0" ViewCount="" Body="&lt;p&gt;Do things differently just for the sake of doing them differently.  Some people will frown on this, but there's only one way to know if something works or not:  try it out.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-26T23:37:00.063" />
  <row Id="21816" PostTypeId="2" ParentId="21125" CreationDate="2010-11-26T23:52:34.630" Score="0" ViewCount="" Body="&lt;p&gt;Every time you hear about a tool and think &quot;that's a terrible idea.&quot;: Go use that tool. Many times your initial reaction to the tool indicates not how bad it is, but how little you understand.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Think that significant whitespace is a terrible idea: Use python for a while.&lt;/li&gt;&#xA;&lt;li&gt;Think that dynamic typing will produce bugger programming: Use a programming language with dynamic typing.&lt;/li&gt;&#xA;&lt;li&gt;Think that Aspect Oriented Programming will result in a terrible mess of a code base?: Try using AOP on a project&lt;/li&gt;&#xA;&lt;li&gt;Think expressing an entire program as being a function of its input is a terrible idea?: Try Haskell&lt;/li&gt;&#xA;&lt;li&gt;Think running on a VM will be too slow?: Try Java&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Once you have tried it, then you can judge whether it works for you.&lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-11-26T23:52:34.630" />
  <row Id="21817" PostTypeId="2" ParentId="21773" CreationDate="2010-11-26T23:55:09.737" Score="1" ViewCount="" Body="&lt;p&gt;Simple.  Look for another job.  Although, if you are asked at an interview why you are looking to change jobs, saying &quot;My current boss is an idiot&quot; is probably a bad idea.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-11-26T23:55:09.737" CommentCount="1" />
  <row Id="21818" PostTypeId="2" ParentId="14584" CreationDate="2010-11-26T23:57:39.877" Score="1" ViewCount="" Body="&lt;p&gt;I'm no security expert, but when I'm coding web applications I always assume that user input may contain all sorts of weirdness and should always be fully escaped and suchlike. Also, I'm careful in making Ajax calls back to the server to check that the user is logged in (if they should be for that particular event) and that they have the permissions to do whatever it is they're trying to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The codebase has a set of filters for inputs. I never check PHP's &lt;code&gt;$_GET&lt;/code&gt; or &lt;code&gt;$_POST&lt;/code&gt; arrays directly. Instead, I query them through a function &lt;code&gt;Request::get('parameter', 'filter')&lt;/code&gt; with filters such as &lt;code&gt;int&lt;/code&gt;, &lt;code&gt;text&lt;/code&gt;, and a few others. (And &lt;code&gt;Request::post()&lt;/code&gt; for POST inputs, of course.)&lt;/p&gt;&#xA;" OwnerUserId="2406" LastActivityDate="2010-11-26T23:57:39.877" />
  <row Id="21819" PostTypeId="2" ParentId="2331" CreationDate="2010-11-26T23:59:27.620" Score="1" ViewCount="" Body="&lt;p&gt;Python 2.x's relative import syntax.  Suppose I have a package &lt;code&gt;x.plugins&lt;/code&gt; that adds support for various other libraries for &lt;code&gt;x&lt;/code&gt;.  And suppose I have a &lt;code&gt;sqlalchemy&lt;/code&gt; module in &lt;code&gt;x.plugins&lt;/code&gt; so I can add sqlalchemy support to &lt;code&gt;x&lt;/code&gt;.  What do you think will happen if I add the following line to sqlalchemy.py?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;import sqlalchemy&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The answer is that the module will try to import itself.  What this syntax does is essentially make it impossible to import the actual global sqlalchemy package.  Python 2.5 added a way to specify that this is a relative import:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;from . import sqlalchemy&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;...but it isn't until Python 3 that the first syntax was actually gotten rid of (although it can be disabled in Python 2.6+ with &lt;code&gt;from __future__ import absolute_import&lt;/code&gt;).&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-26T23:59:27.620" />
  <row Id="21820" PostTypeId="2" ParentId="21635" CreationDate="2010-11-27T00:03:11.363" Score="0" ViewCount="" Body="&lt;p&gt;.....great riches...........&lt;/p&gt;&#xA;" OwnerUserId="14432" LastActivityDate="2010-11-27T00:03:11.363" />
  <row Id="21821" PostTypeId="1" CreationDate="2010-11-27T00:05:53.353" Score="2" ViewCount="113" Body="&lt;p&gt;I started learning Java a couple of months ago. I also wanted to become more exposed to linux so I installed ubuntu and started working with Java since then. In the meanwhile however I became more interested in C# and in learning the Windows platform. At this point I'm asking myself if I should stop learning Java and move to the .NET world. I don't hate or dislike Java by the way, I am just more curious about windows/.NET at this point in time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is, should I remain with Java or go with C#/.NET? What is your advice?  &lt;/p&gt;&#xA;" LastActivityDate="2010-11-27T04:37:31.020" Title="Should I continue learning a language if in the meanwhile I became interested in another language/platform?" Tags="&lt;java&gt;&lt;c#&gt;" AnswerCount="4" CommentCount="3" />
  <row Id="21822" PostTypeId="2" ParentId="21814" CreationDate="2010-11-27T00:07:10.107" Score="5" ViewCount="" Body="&lt;p&gt;Whatever you do, don't pick PHP first.  There are valid reasons to use it, but it makes it &lt;em&gt;way&lt;/em&gt; too easy to pick up bad habits if you're new to programming.  I'd probably recommend C# if you're on Windows or Java on anything else.  Since ASP.NET depends on C# and JSP depends on Java, one of those makes sense as the second.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although to be completely honest, I'd highly recommend &lt;a href=&quot;http://python.org&quot; rel=&quot;nofollow&quot;&gt;Python&lt;/a&gt; first.  It seems to me to be much easier for a new programmer.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-27T00:07:10.107" CommentCount="4" />
  <row Id="21823" PostTypeId="2" ParentId="21782" CreationDate="2010-11-27T00:07:24.707" Score="0" ViewCount="" Body="&lt;p&gt;I find your question a bit hard to understand.  Yes, there is a large market for .NET developers out there, but there is still more to life than Windows development, or GUI development in general. If you love working close to the metal, there is a whole world of embedded development, where people will laugh at you if you mention managed code.  It all depends on what domain you want to work in.  If you want to write GUI apps for Windows, then you should learn .NET, C#, and WPF.  If you want to build web sites, then you should learn JavaScript, PHP, ASP, etc. If you want to build real-time embedded systems, then you are fine where you are.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-11-27T00:07:24.707" />
  <row Id="21824" PostTypeId="2" ParentId="9964" CreationDate="2010-11-27T00:15:05.267" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;You could force their project into being open source because you included some GPL'd code from your own project into theirs&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;This is untrue:&lt;/strong&gt; If you own the&#xA;copyright to the code, you can use&#xA;it any way you like. Releasing it&#xA;under the GPL in no way precludes&#xA;you from using it in other ways.&#xA;It's your code: you can do what you&#xA;want with it.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;This is absurd:&lt;/strong&gt; If it's not your code they're worried about, but the&#xA;idea that you might grab someone&#xA;else's code from the GPL project,&#xA;then they'd be just as worried (if&#xA;not more so) if you'd previously&#xA;worked on proprietary code. What if&#xA;you incorporated that into your&#xA;work? Your previous employer could&#xA;sue them.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If your potential employer would be scared off by work you've done on a GPL project, they are utterly clueless and you don't want to work for them anyway.&lt;/p&gt;&#xA;" OwnerUserId="2406" LastActivityDate="2010-11-27T00:15:05.267" />
  <row Id="21825" PostTypeId="2" ParentId="17009" CreationDate="2010-11-27T00:20:51.820" Score="1" ViewCount="" Body="&lt;p&gt;I'm not an engineer, I just work with them for a living.  I'm also in HR, which the sheer admission of the fact might incent you to not read further.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, perpetual job-hoppers - in any field - give the impression to potential employers that they have no staying power, that they get bored easily, and that they look at employment and their employers as means to whatever ends are current to &lt;em&gt;you&lt;/em&gt;.  But given that we spend at least a third of our lives at work, I encourage perpetual job hoppers to stop job hopping and do some soul searching.  &lt;em&gt;You&lt;/em&gt; are the common denominator in an endless string of short-term jobs.. and, like people who bounce from relationship to relationship, the thing that is missing is much more likely to reside in &lt;em&gt;you&lt;/em&gt; vs. in the other person(s) or position(s).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you really want and need from a job?  If you can't answer that question with a fairly high degree of certainty, you will likely spend many more years of your career bouncing around aimlessly vs. growing and finding satisfaction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of that said - I think your immediate plan - a sabbatical - is perfect.  Take the time not to just do a bunch of contract work, but rather to determine what you really want.  When you know what you really want, you'll start acting like it, and when you start acting like it, you'll probably achieve it.  Someone who gets perpetually bored and bounces around has no idea what he really wants - he just hopes that one day he'll stumble upon it out of dumb luck.  It rarely works out that way.&lt;/p&gt;&#xA;" OwnerUserId="8644" LastActivityDate="2010-11-27T00:20:51.820" CommentCount="3" />
  <row Id="21826" PostTypeId="2" ParentId="21821" CreationDate="2010-11-27T00:23:50.067" Score="3" ViewCount="" Body="&lt;p&gt;You can use Java or C# on either Windows or Linux.  Look into &lt;a href=&quot;http://monodevelop.com&quot; rel=&quot;nofollow&quot;&gt;Mono&lt;/a&gt;, for example, to use C# on other platforms.&lt;/p&gt;&#xA;" OwnerUserId="8467" LastActivityDate="2010-11-27T00:23:50.067" />
  <row Id="21827" PostTypeId="2" ParentId="21821" CreationDate="2010-11-27T00:29:24.193" Score="5" ViewCount="" Body="&lt;p&gt;If it will help your decision, Java is a relatively stable language; it's speed of evolution is much slower than that of C#.  Consequently, C# is getting all of the cool new features more rapidly than Java.  Whether this is a good thing or not depends on your own point of view.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-27T00:29:24.193" />
  <row Id="21828" PostTypeId="2" ParentId="21782" CreationDate="2010-11-27T00:29:48.373" Score="0" ViewCount="" Body="&lt;p&gt;Sorry for answering this because it should be answered by someone with more experience than you.  But I'd say 3 years of Delphi 7 roughly equals 8 years of C++ in terms of stagnation.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What was amazing was that when I came to this company no one else was even using Interfaces or type libraries or properties or anything at all and I started doing it because I got on SO and started reading about how to program Delphi 7 when everyone else was programming Delphi 3 with a Delphi 7 IDE.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if I'm not doing something more modern in 5 years, yeah... I'll go a little crazy.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-11-27T00:29:48.373" />
  <row Id="21829" PostTypeId="2" ParentId="21773" CreationDate="2010-11-27T00:42:18.157" Score="4" ViewCount="" Body="&lt;p&gt;The best solution would be to develop some skills to be able to have a conversation with this or any future boss about things they say/do that confound the senses - in this case, yours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Conflict with the boss isn't the #1 reason people leave - I have conflicts wth my boss all the time and I'm still there.  The #1 reason conflict ruins employee/boss relationships is that it goes unaddressed and, therefore, unresolved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't make it so hard on yourself.  Consider which of the two scenarios is easier:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scenario 1:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Hate job/boss&lt;/li&gt;&#xA;&lt;li&gt;Assume everything boss asks me to do is idiotic and therefore a waste of time&lt;/li&gt;&#xA;&lt;li&gt;Quit job&lt;/li&gt;&#xA;&lt;li&gt;Spend time/energy trying to find new one&lt;/li&gt;&#xA;&lt;li&gt;Lie uncomfortably when asked why I left last job&lt;/li&gt;&#xA;&lt;li&gt;Wonder why/how savvy interviewers see through my bluffed answers and failed to offer me new jobs.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Scenario 2:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Think through a rational way to have conversation with boss about the nature of his demands and my perceptions of them&lt;/li&gt;&#xA;&lt;li&gt;Commit to finding a solution to the problem vs. an exit strategy&lt;/li&gt;&#xA;&lt;li&gt;Accept that perfect won't be instantaneous, but will feel light years better airing concerns and giving boss chance to turn into human being vs. evil enemy.&lt;/li&gt;&#xA;&lt;li&gt;Maybe even solve the problem.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It's doubtful that your boss is actually crazy, he just seems it to you in the right set of circumstances.  If you elect not to approach him about his seemingly out-there demands in a civilized and productive way (and there are a thousand books/classes out there to teach you how to do this if it does not come naturally - Crucial Conversations is probably the best/most useful) then you can certainly quit in protest.  But you'll fail in the long-term because there are lots of difficult people out there whose thought processes will elude you and whose decisions will frustrate you - if you don't take the opportunity to learn how to deal with it now, you'll just have to quit the next job, too (and the one after that).&lt;/p&gt;&#xA;" OwnerUserId="8644" LastEditorUserId="8644" LastEditorDisplayName="" LastEditDate="2010-11-27T00:53:58.237" LastActivityDate="2010-11-27T00:53:58.237" CommentCount="2" />
  <row Id="21830" PostTypeId="2" ParentId="20866" CreationDate="2010-11-27T01:02:46.573" Score="0" ViewCount="" Body="&lt;p&gt;Ready for some tough love?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to get off the cross a bit.  I say it in that way because martyring yourself (accepting little sleep, not taking vacation time, etc) is what you're doing here.  You are no good to anyone - least of all yourself - if you've stopped taking care of yourself in the most basic ways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Employees who don't take care of themselves are at least partially to blame for their own burnout.  Have you had a conversation with your boss about this?  Anyone in HR?  Anyone at all who has the ability to help make things better?  If not, you're not really serious about solving the problem, or are afraid that you might find out that you're not as valuable as you think you are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you probably ARE pretty valuable, because you're still there.  Give your employer an opportunity to prove it to you, and stop telling yourself that the weight of the world is your cross to bear.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But seriously - do seek out a solution vs. people who will just nod their heads at the problem and commiserate with you about how bad it is.  It's good to be able to do so, but won't get you any closer to solving the problem for yourself and for your family.&lt;/p&gt;&#xA;" OwnerUserId="8644" LastActivityDate="2010-11-27T01:02:46.573" CommunityOwnedDate="2011-01-19T15:33:20.557" CommentCount="1" />
  <row Id="21831" PostTypeId="1" AcceptedAnswerId="21841" CreationDate="2010-11-27T01:03:36.147" Score="7" ViewCount="348" Body="&lt;p&gt;I believe it is.  Why?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;I've encountered many Software Engineers who believe they are somehow superior to QA engineers.  I think it may help quench this belief if they do the job of a QA engineer for some time, and realize that it is a unique and valuable skill-set of its own.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The better a Software Engineer is at testing their own programs, the less cost in time their code incurs when making its way through the rest of the software development life-cycle.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The more time a Software Engineer spends thinking about how a program can break, the more often they are to consider these cases as they are developing them, thus reducing bugs in the end product.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A Software Engineer's definition of &quot;complete&quot; is always interesting...if they have spent time as a QA engineer maybe this definition will more closely match the designer of the software's.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;What do you all think?&lt;/p&gt;&#xA;" OwnerUserId="8474" LastActivityDate="2010-12-01T23:57:01.413" Title="Do you believe it's a good idea for Software Engineers to have to work as Quality Assurance Engineers for some period of time?" Tags="&lt;software-engineering&gt;&lt;code-quality&gt;&lt;software-developer&gt;" AnswerCount="7" CommentCount="5" FavoriteCount="3" />
  <row Id="21832" PostTypeId="2" ParentId="21325" CreationDate="2010-11-27T01:18:39.110" Score="4" ViewCount="" Body="&lt;p&gt;Microsoft is where I spend 90% of my career as a consultant so I'll give you a couple of key insights:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;They hire for Microsoft more than for the position.  If you can demonstrate in the interview process that you want to do more than just the job at hand (while still articulating clearly and unequivocally your qualifications to do the job) you'll go a lot further than focusing your resume or your interview responses to just the job description.  People with narrow interests or visions of their potential career path are no-go's.  If you just want the job and don't really care about the company at large or where it could take you, don't apply.&lt;/li&gt;&#xA;&lt;li&gt;I've seen a lot more people get hired at MS in the last few years via networking with employees vs. cold applications.  Network and get an employee to advocate for you and the process will not only move faster it will also be more likely to lead to an offer.&lt;/li&gt;&#xA;&lt;li&gt;The halcyon days of MS being a path to instant riches are definitely over, but they take good care of loyal employees and are much more focused on developing the people they hire than constantly seeking out the top this-or-that that many newer/younger tech companies tend to do.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Hope this helps.&lt;/p&gt;&#xA;" OwnerUserId="8644" LastActivityDate="2010-11-27T01:18:39.110" />
  <row Id="21833" PostTypeId="2" ParentId="21504" CreationDate="2010-11-27T01:22:36.533" Score="1" ViewCount="" Body="&lt;p&gt;I'll give you the easier said than done answer:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Separate your identity from your idea.  If you focus your heated and passionate exchanges on the relative merits of the ideas at hand, and are able to commit to supporting the best idea - whether it was yours or not - you'll win every time.  Sometimes the idea will be yours, sometimes it will be someone else's, but arguments about anything only get personal when you make them about the people who hold the ideas instead of the ideas themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But to 1000x reinforce what's already been said - apologize when you screw up.  It doesn't show that you're weak, it shows that you're pretty freakin' strong.&lt;/p&gt;&#xA;" OwnerUserId="8644" LastActivityDate="2010-11-27T01:22:36.533" />
  <row Id="21834" PostTypeId="2" ParentId="21504" CreationDate="2010-11-27T01:30:23.870" Score="2" ViewCount="" Body="&lt;p&gt;A good course of study in this respect would be the books:&lt;br&gt;&#xA;   I'm OK, You're OK  - &lt;a href=&quot;http://en.wikipedia.org/wiki/I%27m_OK,_You%27re_OK&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/I'm_OK,_You're_OK&lt;/a&gt;&lt;br&gt;&#xA;   Games People Play  - &lt;a href=&quot;http://en.wikipedia.org/wiki/Games_People_Play_%28book%29&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Games_People_Play_(book)&lt;/a&gt;&lt;br&gt;&#xA;These were required reading when I was in college.&#xA;An understanding of transactional analysis may help with the level of stress.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-11-27T01:30:23.870" />
  <row Id="21835" PostTypeId="2" ParentId="21821" CreationDate="2010-11-27T01:50:03.720" Score="2" ViewCount="" Body="&lt;p&gt;Study both while you can along with good programming practices in general. You're in an enviable position that may not last long due to a new project/job requirement. Hopefully, you'll learn enough about both of them to be able to compare and contrast the two and make objective decisions on when one is more appropriate than the other. I hope you can remain in control of this choice as long as possible.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-27T01:50:03.720" />
  <row Id="21836" PostTypeId="2" ParentId="21831" CreationDate="2010-11-27T01:56:43.777" Score="6" ViewCount="" Body="&lt;p&gt;Making programmers accountable for their code and requiring them to fix their own bugs can take care of this. That and a loss of bonus and/or job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not that this experience wouldn't help, but how far can you go with this line of thinking? Technical Support, Sales, Beta User, scrub the toilets (that would be a humbling experience).&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-27T01:56:43.777" CommentCount="2" />
  <row Id="21837" PostTypeId="2" ParentId="21814" CreationDate="2010-11-27T02:00:53.520" Score="1" ViewCount="" Body="&lt;p&gt;Pick the one you either know the most or need the most and learn it first. Knowing a little bit about all of them will not make you more employable than knowing a lot about one of them. Then you can see if you have the horse-power to learn all of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Indicating your development objectives/interests would be a big help.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-27T02:00:53.520" />
  <row Id="21838" PostTypeId="2" ParentId="21782" CreationDate="2010-11-27T02:28:44.780" Score="1" ViewCount="" Body="&lt;p&gt;You could be writing some frameworks to make your development more efficient but maintain the standards for quality and the level of control you desire.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-27T02:28:44.780" />
  <row Id="21839" PostTypeId="2" ParentId="14295" CreationDate="2010-11-27T02:38:40.510" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Personally I see software craftsmanship as good software engineering with an added interest in ensuring that the end result is a joy to work with (both as an end user and as someone maintaining that software) - and also that its focus is more at the coding level of things than the higher level process things.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;As a professor of mine said once (paraphrased): &quot;As a software engineer, it's not just your job to deliver software. It's your job to deliver software that makes your customers happy.&quot;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What are the specific things that a software craftsman might do that a software engineer (possibly a bad one) might not?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Nothing - an engineer is a craftsman...but more. Engineering builds on craftmanship.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a craftsman and an engineer, you are skilled individuals, through some combination of education and experience. You follow established procedures. You are also pragmatic and realize what is broken and needs to be better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, an engineer adds concerns of economics, theory, and science on top of that. You are concerned with getting the most benefit for the least cost. You want to apply theories from psychology, sociology, management, human-computer interactions, and computer science to solve your problems (both interpersonal and technical). And you definitely have an education to back up your experiences.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-11-27T02:38:40.510" />
  <row Id="21840" PostTypeId="2" ParentId="21802" CreationDate="2010-11-27T02:42:09.290" Score="2" ViewCount="" Body="&lt;p&gt;From &lt;a href=&quot;http://www.adam-bien.com/roller/abien/entry/encapsulation_violation_with_getters_and&quot; rel=&quot;nofollow&quot;&gt;http://www.adam-bien.com/roller/abien/entry/encapsulation_violation_with_getters_and&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;JavaBean style:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;connection.setUser(&quot;dukie&quot;);&#xA;connection.setPwd(&quot;duke&quot;);&#xA;connection.initialize();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;OO-style:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;connection.connect(&quot;dukie&quot;,&quot;duke&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Well, clearly I prefer the latter approach; it doesn't bleed implementation details, it's simpler and more concise, and all of the needed information is included with the method call, so it's easier to get it right.  I also prefer setting private members using parameters in the constructor, whenever possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your question is, when is a getter/setter justified?  Perhaps when a mode change is needed, or you need to interrogate an object for some information.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;myObject.GetStatus();&#xA;myObject.SomeCapabilitySwitch = true;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In thinking about it, when I first started coding in C#, I wrote a lot of code in the Javabeans style illustrated above.  But as I gained experience in the language, I began doing more setting of members in the constructor, and using methods that looked more like the above OO style.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-27T02:47:23.827" LastActivityDate="2010-11-27T02:47:23.827" CommentCount="3" />
  <row Id="21841" PostTypeId="2" ParentId="21831" CreationDate="2010-11-27T02:43:48.227" Score="8" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;I've encountered many Software Engineers who believe they are somehow superior to QA engineers. I think it may help quench this belief if they do the job of a QA engineer for some time, and realize that it is a unique and valuable skill-set of its own.&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;A good software engineering has a background in quality, including testing, metrics, and statistics. Anyone doing any kind of software development should be aware (if not familiar with) maintaining at quality source code and producing/maintaining effective test cases. Over time, I would suspect that any software developer would gain an understanding of the different facets of quality - code quality, portability, maintainability, testability, usability, reliability, efficiency, and security.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software engineers might focus on a particular aspect of the lifecycle - requirements engineering, architecture and design, construction, testing, and maintenance. However, regardless of your focus (either as a job or at the current phase of the project), it's important to remember quality.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;The better a Software Engineer is at testing their own programs, the less cost in time their code incurs when making its way through the rest of the software development life-cycle.&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That might be true. But some issues are best seen later in development. For example, performance and efficiency issues might not be seen until integration. Having good, solid code and effective unit tests are just the beginning. Quality needs to begin with requirements, and follow all the way through maintenance activities.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;The more time a Software Engineer spends thinking about how a program can break, the more often they are to consider these cases as they are developing them, thus reducing bugs in the end product.&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's a totally true statement. But then again, it's also up to the requirements engineers to verify that there are no conflicts in requirements, architects to ensure that the design actually addresses the requirements, and so on. Everyone should be trying to poke holes in their work and then working with the appropriate people to seal them up nice and tight.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;A Software Engineer's definition of &quot;complete&quot; is always interesting...if they have spent time as a QA engineer maybe this definition will more closely match the designer of the software's.&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&quot;Complete&quot; can only be measured against requirements. Either the requirements are satisfied and the project is complete, or there are incomplete requirements and the project is not complete. Any other measure of complete is useless.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-11-27T02:43:48.227" CommentCount="2" />
  <row Id="21842" PostTypeId="2" ParentId="14295" CreationDate="2010-11-27T02:47:31.923" Score="1" ViewCount="" Body="&lt;p&gt;Going by &lt;a href=&quot;http://manifesto.softwarecraftsmanship.org/&quot; rel=&quot;nofollow&quot;&gt;http://manifesto.softwarecraftsmanship.org/&lt;/a&gt; I would derive the following.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A craftsman is different from traditional perceptions of an &quot;engineer&quot; because&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;They focus on value, not just meeting requirements.&lt;/li&gt;&#xA;&lt;li&gt;They focus on quality even in the style of their code, not just meeting requirements.&lt;/li&gt;&#xA;&lt;li&gt;They participate in the broader software development community, not just their workplace.&lt;/li&gt;&#xA;&lt;li&gt;They don't just understand that today's state of the art is tomorrow's junk, they are active in bringing it about at one level or another.&lt;/li&gt;&#xA;&lt;li&gt;It's not just a job, it's who they &lt;em&gt;are&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-11-27T02:47:31.923" CommentCount="1" />
  <row Id="21843" PostTypeId="1" AcceptedAnswerId="21847" CreationDate="2010-11-27T03:07:16.587" Score="3" ViewCount="282" Body="&lt;p&gt;Not talking about the recent Java/Oracle debacle here, but something I've been wondering recently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I first started programming, Java was the big thing client-side, however these days you hardly ever see a Java applet whereas Flash and Javascript are ubiquitous.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where did Java go wrong? Did Sun decide to concentrate on the server-side and let client-side stagnate? How did Flash become dominant over Java? Flashy (no pun intended) graphics? Marketing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never having been a Java developer, I've not followed this closely so I'm interested to hear your thoughts.&lt;/p&gt;&#xA;" OwnerUserId="8648" LastActivityDate="2010-11-30T04:29:40.087" Title="Where did Java go wrong on the client?" Tags="&lt;java&gt;&lt;flash&gt;" AnswerCount="5" CommentCount="3" />
  <row Id="21844" PostTypeId="2" ParentId="21843" CreationDate="2010-11-27T03:22:20.350" Score="0" ViewCount="" Body="&lt;p&gt;Applets and Flash are different technology. When first introduced, Applets had a lot of security holes in them, you could effectively run your program on the Client side which is not what any customer wants. Later this technology was improved substantially. On the other side Flash is more lightweight than Applets were. People more readily accepted Flash and didn't consider it as a security threat. Apart from minor vulnerabilities that do occur in Flash plugins, Flash was much safe. The initial security setback hurt Applets dearly. Also you are right probably Sun didn't pursue Applets that aggressively.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something similar to Applets and probably more useful, is the native client that Google is trying to build for Chrome. Let's see how it goes.&lt;/p&gt;&#xA;" OwnerUserId="672" LastEditorUserId="1842" LastEditorDisplayName="" LastEditDate="2010-11-27T05:11:09.240" LastActivityDate="2010-11-27T05:11:09.240" CommentCount="2" />
  <row Id="21845" PostTypeId="1" AcceptedAnswerId="21851" CreationDate="2010-11-27T03:27:51.260" Score="3" ViewCount="143" Body="&lt;p&gt;I have an idea for a program that I think is a good one (Don't we all?).  I am an amateur programmer and would like to recruit some more advanced programmers onto the project since there are some aspects that I am not skilled enough to do myself.  Is it better to &lt;/p&gt;&#xA;&#xA;&lt;p&gt;a) Develop the software on my own as much as I can, even though it will be amateurish, and then show a demo to potential recruits &lt;/p&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;p&gt;b) Try and recruit some more advanced programmers and seek their advice and guidance before I get started so that it is done correctly from the beginning?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would especially love it if someone has any experience of being in a similar position, but sage speculation is welcome too.&lt;/p&gt;&#xA;" OwnerUserId="8649" LastActivityDate="2010-11-27T16:18:17.413" Title="Should I start a project I am hoping to recruit others to?" Tags="&lt;project&gt;&lt;collaboration&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="1" />
  <row Id="21846" PostTypeId="1" CreationDate="2010-11-27T03:28:23.000" Score="0" ViewCount="172" Body="&lt;p&gt;I have a project in which i am required to work on scala and installing the IDE (intelliJ IDEA) is a bit of a problem. It has been giving error as path not set even after setting the path. I am working on Linux platform. If there is any other stable IDEs for scala pls do recomend.&lt;/p&gt;&#xA;" OwnerUserId="8414" LastActivityDate="2010-11-27T07:17:55.063" ClosedDate="2010-11-27T06:14:45.647" Title="Problems with Scala IDE" Tags="&lt;scala&gt;" AnswerCount="1" />
  <row Id="21847" PostTypeId="2" ParentId="21843" CreationDate="2010-11-27T03:50:42.830" Score="9" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Firewalls would sometimes block java applets, so developers couldn't be sure if they were going to work or not.&lt;/li&gt;&#xA;&lt;li&gt;They required a browser plug-in, which led many developers to favour javascript over java applets, so that they didn't require the user to download and install a plug-in.  The Macromedia Flash plug-in had a simpler, more seamless, and less noisy means for downloading, installing and updating.&lt;/li&gt;&#xA;&lt;li&gt;The API wasn't so standardized then, so applets could fail to work if the user didn't have the right version of java installed.&lt;/li&gt;&#xA;&lt;li&gt;They had a slow loading time and used too much memory.  They would often crash the browser.&lt;/li&gt;&#xA;&lt;li&gt;Java applets died before Swing came out, so GUIs were difficult and ugly.&lt;/li&gt;&#xA;&lt;li&gt;IE wasn't so good at supporting applets fully, so compatibility was difficult to sort out.&lt;/li&gt;&#xA;&lt;li&gt;Flash and javascript are much easier to use for non-programmers.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8649" LastActivityDate="2010-11-27T03:50:42.830" CommentCount="2" />
  <row Id="21848" PostTypeId="2" ParentId="21845" CreationDate="2010-11-27T03:54:15.837" Score="3" ViewCount="" Body="&lt;p&gt;Ideas are cheap.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nobody is going to care that you have a good idea (or at least think you do).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you have money to throw around, you are not going to interest an advanced developer. From my perspective, I estimate the goodness of an idea as inversely related to how good its originator thinks it is. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your skills aren't good enough, there is only one way to improve them. Use them! Reach for the stars and try and develop the software. Even if nothing comes of it, you will have made your skills much better. &lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-11-27T03:54:15.837" CommentCount="3" />
  <row Id="21849" PostTypeId="2" ParentId="21845" CreationDate="2010-11-27T04:04:30.270" Score="1" ViewCount="" Body="&lt;p&gt;If you don't start, it will never be done. Best case scenario for choice B? You'll find many &quot;advanced&quot; programmers who are fully on board, who would like to create a domain name for the project, logos, feature lists for version 2.0, ... everything but actual coding. They'll respect the concept so much, they won't want to blemish it with anything that might go wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actions are what count. If you have a really great idea, you'll be on your own for a while. You may have troubles communicating it, because you've internalized it so much, and it will seem that people are incapable of seeing your vision. They'll comment on trivial matters and miss the big picture. Until you have something concrete, that's how it's going to be. Only in working with it for a while will you be able to get your perfect elevator pitch for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this point, since you explicitly mentioned you were looking for sage words: &lt;strong&gt;Have a growth mindset&lt;/strong&gt;. Programming advanced things is &lt;em&gt;how&lt;/em&gt; you become an advanced programmer. Where you are now doesn't matter. What matters is that you reach a new personal best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go with A. And good luck!&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-27T04:04:30.270" CommentCount="1" />
  <row Id="21850" PostTypeId="2" ParentId="21831" CreationDate="2010-11-27T04:05:39.020" Score="5" ViewCount="" Body="&lt;p&gt;&quot;...have to work as QA engineers...&quot;? You make it sound adversarial or punishment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am a software developer. I consider it part of my job to be a QA engineer also, even though we have a QA department. It's my job to deliver software that accomplishes certain things, and, to do that I have to write unit tests and make sure the software passes them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am in partnership with our QA department. My goal is to make their jobs easier, just as their job is to help me meet my goal of delivering software that does what it should, thereby making my life easier. I consider them my second set of eyes and somewhat of a safety net, just as I do my unit tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I choose to develop software, and want to develop software. If some manager came to me and told me I couldn't do that and had to do QA, I'd tell them they need to find a new software developer AND a QA person because I won't be working there. I am anal as can be with my code but the creative process and programming puzzle/challenge is extremely important to me. I'd rather go back to driving fork lifts if I can't write code because being in a corporate environment without the perk of being creative and being challenged the way I am would be absolute hell to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general the options you present sound very adversarial and leave me wondering if you've had some really bad experiences with some terrible developers. In my mind, a developer must ALWAYS be aware of quality issues and testing and should be proud enough of their work that they don't consider it finished until it passes as rigorous tests in their unit testing as what the official QA department will use. If I had a peer, or was tech-lead on a team and had a developer who showed any &quot;'tude&quot; toward QA he'd find me hauling him off for an attitude correction. If both sides of the software-delivery coin can't cooperate and act as a team there is a real culture problem. I wouldn't want to work there and HR, along with upper-management, would need to be clued in.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastEditorUserId="4139" LastEditorDisplayName="" LastEditDate="2010-11-27T04:31:03.287" LastActivityDate="2010-11-27T04:31:03.287" CommentCount="6" />
  <row Id="21851" PostTypeId="2" ParentId="21845" CreationDate="2010-11-27T04:07:18.520" Score="11" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Nobody should start to undertake a large project. You start with a small trivial project,&#xA;  and you should never expect it to get large. If you do, you'll just overdesign and generally&#xA;  think it's more important than it is likely at that stage. Or worse - you might be scared&#xA;  away by the sheer size of the work you envision.&#xA;  So start small, and think about the details. Don't think about some big picture and fancy&#xA;  design. It if doesn't solve some fairly immediate need, it's almost certantly over designed.&#xA;  And don't expect people to jump in and help you. That's not how it works. You need to get&#xA;  something half way first, and only then others will say &quot;hey, that almost works for me&quot;,&#xA;  and get involved in the project.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;— &lt;a href=&quot;http://web.archive.org/web/20050404020308/http://www.linuxtimes.net/modules.php?name=News&amp;amp;file=article&amp;amp;sid=145&quot; rel=&quot;nofollow&quot;&gt;Linus Torvalds&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;pretty much sums it...&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-11-27T16:18:17.413" LastActivityDate="2010-11-27T16:18:17.413" CommentCount="5" />
  <row Id="21852" PostTypeId="2" ParentId="21843" CreationDate="2010-11-27T04:12:34.243" Score="4" ViewCount="" Body="&lt;p&gt;I believe streaming video was the &quot;killer app&quot; for Flash. Although video had been tried before in Java applets, the frame rate wasn't very high and it required users to install the relatively heavyweight JRE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Along came Flash with its small install size and (eventually) high video frame rate. It helped that browser vendors started including Flash as part of the default browser installation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java is still hindered by a large installation size and slow start times compared to Flash.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2010-11-27T04:12:34.243" CommentCount="2" />
  <row Id="21853" PostTypeId="2" ParentId="21846" CreationDate="2010-11-27T04:29:14.273" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.scala-ide.org/&quot; rel=&quot;nofollow&quot;&gt;Scala-IDE&lt;/a&gt; is the first result for a &lt;a href=&quot;http://www.google.com/search?q=scala+ide&quot; rel=&quot;nofollow&quot;&gt;Google Search for &quot;scala ide&quot;&lt;/a&gt;. It is the more or less officially endorsed IDE and its releases are announced on the official &lt;a href=&quot;http://www.scala-lang.org/&quot; rel=&quot;nofollow&quot;&gt;Scala web website&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It used to be fairly buggy (couldn't rally develop a single simple thing with it, really), but it has evolved quite a bit and it now support the latest versions up to the current one as of today (2.8.1).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It runs in Eclipse instead of IntelliJ.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said if you struggle with installing the IDE itself (IntelliJ or Eclipse), then maybe we should just try to address this issue first as switching to an entirely different IDE probably won't fix the problem. Give it a shot and tell us how it goes.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-11-27T07:17:55.063" LastActivityDate="2010-11-27T07:17:55.063" />
  <row Id="21854" PostTypeId="2" ParentId="21821" CreationDate="2010-11-27T04:37:31.020" Score="1" ViewCount="" Body="&lt;p&gt;At any point in my career I am learning two or three languages at the same time. It's fine to have a couple pots on the stove because you'll get bored or run into a problem that blocks you for a while with one so you temporarily switch to another. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think of it this way: corporations/potential employers don't care as much about whether you are a total expert in a particular language as they do whether you are flexible and can turn out good code in any language they throw you at. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having a good understanding of constructs and being able to apply them in multiple languages beats knowing esoterica about one language.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-11-27T04:37:31.020" />
  <row Id="21855" PostTypeId="2" ParentId="21831" CreationDate="2010-11-27T05:02:55.123" Score="1" ViewCount="" Body="&lt;p&gt;I have had sort a career path thats kind of the inverse of what you normally see. I started&#xA;as software support for scientifically challenging physics, then ended up working in the&#xA;intersection of architecture, programming, and algorithms for a computer company. After&#xA;that ran off I did performance optimization of a major engineering code for several years, but even that work ran out. Now, that I'm nearing retirement age I'm doing QA on the same code.&#xA;It is a combination of challenge, and drudgery. We have a really sharp new guy working 100% on bug fixes, and I spend a lot of working with him. It is a challenging position, and you can learn a lot doing it. At this point my main interest in profesional development is for my twin boys, who are comp sci college freshman. So I have new interest in learning (or relearning) stuff that will be relevant to their careers, especially applied math. I have a different perspective of things now that I am concerned with QA/validation, wheras for the previous quarter century it was speed,speed,speed at any cost.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-11-27T05:02:55.123" />
  <row Id="21856" PostTypeId="2" ParentId="9964" CreationDate="2010-11-27T05:32:23.890" Score="0" ViewCount="" Body="&lt;p&gt;Depends, many big companies require you to have reasonable time periods of difference between the time you worked on a GPLed code and a &lt;em&gt;similar&lt;/em&gt; product for a company. e.g. If you submit a patch in linux, Microsoft/Apple may not allow you to work on certain part or the whole OS team for some time (1 year) or may infact disqualify you from working on certain projects&lt;/p&gt;&#xA;" OwnerUserId="3755" LastActivityDate="2010-11-27T05:32:23.890" />
  <row Id="21857" PostTypeId="2" ParentId="21802" CreationDate="2010-11-27T05:34:08.977" Score="1" ViewCount="" Body="&lt;p&gt;If getters and setters violate encapsulation and true OO than I'm seriously in trouble.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always felt an object represents what ever best comes to mind you need it to function as.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just finished writing a program that generates Mazes in Java, I have class that represents &quot;Maze Squares&quot;. I have data in this class that represents coordinates, walls and booleans ect. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have to have some way to change/manipulate/access this data! What do I do without getters and setters? Java doesn't use properties and setting all my data that is local to this class to public is DEFINITELY a violation of encapsulation and OO.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-11-27T05:34:08.977" CommentCount="5" />
  <row Id="21858" PostTypeId="2" ParentId="9964" CreationDate="2010-11-27T05:47:31.770" Score="4" ViewCount="" Body="&lt;p&gt;I have released a lot of code as GPL, and yes, I do put it on my CV. One thing that many people don't realize is, releasing your code as GPL doesn't take control of the code away from you. You are, for instance (if you remain the sole copyright holder) free to make a proprietary fork of your code, or dual license it so that it fits the needs of another company or project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't recommend doing that, but it is an option that is available to you should you want to use your code in a new job where the license might be problematic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, not listing substantial experience on your CV seems like a bad idea to me, in almost any case. You might not want to list previous employment with &lt;a href=&quot;http://en.wikipedia.org/wiki/Bernard_Madoff&quot; rel=&quot;nofollow&quot;&gt;Bernie Madoff&lt;/a&gt;, for instance. Barring something like that, of course you should list it.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-27T05:47:31.770" CommentCount="1" />
  <row Id="21859" PostTypeId="2" ParentId="21782" CreationDate="2010-11-27T06:06:47.167" Score="1" ViewCount="" Body="&lt;p&gt;The market generally drives what is needed the most. Having said that, your personal liking is just as important. So its about finding the balance between job satisfaction and the need to feed one's family (after all, professional programmers code for a living)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So here it is - C++ is not going away any time soon. There are enough legacy applications out there that will require maintenance, feature upgrades, and hence there will be enough work for good C++ developers. In fact as the technology goes from being mainstream to sidelined, there will be even lesser developers and hence the people who NEED C++ work to be done, will be ready to pay more. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, very few people will go for building new apps/products in old technologies. I am not going to comment on whether C++ is actually going away (I am not qualified enough for that), but if we are to ASSUME that C++ is being fashioned out, then it is reasonable to conclude that most people wont build new stuff in it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now if you are building your own product - then theres no one stopping you from using the technology that you like. But if you program for others, then both the above factors will mean that you will end up maintaining/upgrading old code than writing a lot of new apps. That's not bad, its just a matter of personal preference. &lt;/p&gt;&#xA;" OwnerUserId="8652" LastActivityDate="2010-11-27T06:06:47.167" />
  <row Id="21860" PostTypeId="2" ParentId="21831" CreationDate="2010-11-27T06:12:42.810" Score="2" ViewCount="" Body="&lt;p&gt;Not necessarily - both programmers and testers are required to have different skills. Just because you are a good programmer does not mean you can be a good tester (many people dont understand that, but being a programmer does not automatically qualify you to be a tester).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A great tester needs to have really devilish skills, be able to do things that the software was not designed to do, but can expect the user to do in the real world. That takes skill, patience, ability to see what can go wrong where, an understanding of the user's mentality and so many other factors. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that I use the words programmer and tester - but if you are a software engineer and not yet decided whether you want to be a programmer or a tester, then it encompasses both these things and hence yes, you should have experience in both at least in the first few years of your life before taking the decision. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That does not mean that you take an experienced programmer and make him test for a while just to make him understand how hard the QA engineers work.  &lt;/p&gt;&#xA;" OwnerUserId="8652" LastActivityDate="2010-11-27T06:12:42.810" CommentCount="1" />
  <row Id="21861" PostTypeId="2" ParentId="21504" CreationDate="2010-11-27T06:23:30.727" Score="1" ViewCount="" Body="&lt;p&gt;Just sensitize everyone to the fact that heated discussions are a given in review meetings and they can probably share a cup of coffee after that to smoothen things up. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that - heated debates about what is the best approach is fine. People should also realize very well that personal attacks and insults have no place in a professional environment. This depends on the culture built into the organization and it starts with the senior most/best programmers you have got. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally try to ensure that the culture promotes respect towards one another and treats mistakes as just that.. mistakes. There is no place for jerks in a good team, however strong that person is technically. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So once everyone is very very clear that all comments are for the work at hand and is never attached personally, I don't think there will be much of a problem. &lt;/p&gt;&#xA;" OwnerUserId="8652" LastActivityDate="2010-11-27T06:23:30.727" />
  <row Id="21862" PostTypeId="2" ParentId="21504" CreationDate="2010-11-27T06:45:16.823" Score="1" ViewCount="" Body="&lt;p&gt;I've always found that getting to know my co-workers outside of work can be useful.  Assuming you're a decent person, it will be easier for them to see you as criticizing the &lt;strong&gt;idea&lt;/strong&gt; and not the &lt;strong&gt;person&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's another idea that I don't think I've noticed in the other answers.  Make it obvious that you're speaking of the idea proposed, not the person.  Also, make it clear that just because you don't agree with the idea, doesn't mean that you don't value their opinion.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-11-27T06:45:16.823" />
  <row Id="21863" PostTypeId="2" ParentId="21782" CreationDate="2010-11-27T07:04:56.220" Score="5" ViewCount="" Body="&lt;h2&gt;Teach yourself another paradigm.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;You're a great C++ programmer. I'll believe that. I agree with Gary Rowe's answer: &lt;em&gt;you're no longer being challenged&lt;/em&gt;. As correct as it is, I think this comes closer to the truth:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;You're no longer experiencing opportunities to learn.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're good at what you do - you know your way around the paradigms you use and can solve most problems fairly well within them. Thus, I'm offering this solution: Place yourself in a programming paradigm you know almost nothing about and you will have &lt;em&gt;no choice but to learn.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I'll paraphrase &lt;a href=&quot;http://programmers.stackexchange.com/questions/13195/what-should-i-learn-now/13198#13198&quot;&gt;another post of mine&lt;/a&gt; at this point.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://forums.xkcd.com/viewtopic.php?p=2335081#p2335081&quot; rel=&quot;nofollow&quot;&gt;This post from XKCD&lt;/a&gt; explains the benefits quite well, so I'll quote it:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Learning new languages gives you more perspective on programming in general, and exposes new idioms and constructions that aren't as obvious in the languages you already know. You should seek out languages that are as different from what you already know as possible. Haskell is usually a good bet in that regard, as are lisp and smalltalk. Wikipedia also lists several different paradigms; you should know something about as many of them as possible, preferably by learning at least the basics of a language in that paradigm. I find it's usually best to learn the essentials of a paradigm by learning a language that focuses heavily on that paradigm. Multi-paradigm languages often lose or hide some of the finer points, like how C++/Java has an inferior object model to Smalltalk, Ruby and even JavaScript, because they just bolted on some of the OO concepts onto the then-prevailing paradigm instead of fully embracing the paradigm.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The idea is not to become a master of every language. Take the choice to learn Haskell for instance: You don't learn Haskell so you can write Haskell for a living. You learn Haskell in order to develop a &lt;em&gt;solid understanding of functional programming techniques&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You then bring this understanding back to the languages you &lt;em&gt;do&lt;/em&gt; use. You'll be able to solve problems in new, better ways by leveraging your language's features in a way you've never even thought to try. You might never write a single line of Haskell again and that's fine; it's what you learned that's key here.&lt;/p&gt;&#xA;" OwnerUserId="5570" LastEditorUserId="5570" LastEditorDisplayName="" LastEditDate="2010-11-27T08:38:22.027" LastActivityDate="2010-11-27T08:38:22.027" CommentCount="2" />
  <row Id="21864" PostTypeId="2" ParentId="21782" CreationDate="2010-11-27T07:21:51.130" Score="0" ViewCount="" Body="&lt;p&gt;Axidos has it right.  If you want to stay with your language/area fine, but you would still be served by learning new fundamental techniques for solving problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check out this book and see if you can get through it in seven weeks:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.pragprog.com/titles/btlang/seven-languages-in-seven-weeks&quot; rel=&quot;nofollow&quot;&gt;http://www.pragprog.com/titles/btlang/seven-languages-in-seven-weeks&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;You should learn a programming language every year, as recommended by The Pragmatic Programmer. But if one per year is good, how about Seven Languages in Seven Weeks? In this book you’ll get a hands-on tour of Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby. Whether or not your favorite language is on that list, you’ll broaden your perspective of programming by examining these languages side-by-side. You’ll learn something new from each, and best of all, you’ll learn how to learn a language quickly.&lt;/em&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-11-27T07:21:51.130" />
  <row Id="21865" PostTypeId="2" ParentId="21575" CreationDate="2010-11-27T07:48:40.373" Score="1" ViewCount="" Body="&lt;p&gt;I think writing software needs to go hand in hand with business needs. If it is a throwaway project (like a prototype that needs to be built in a week, with new inputs coming in every day), then there is no need to worry about code maintainability and other stuff - time is crucial and you just need to push your code out of the door as fast as you can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you are writing a long term app, then it makes sense to consider all this, because there is a sizable impact on how long it takes to build new features, to fix existing bugs, to integrate into other applications and other stuff - and this translates into business impact (because of more time required later and more cost).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So it is better to sensitize the decision maker to the actual costs of not refactoring code whenever necessary - in my experience, if the costs and time impact of both the options are explained in measurable terms to the decision owner, then the decision can be a no-brainer. Don't expect people to tell you 'yeah go ahead write beautiful code, even though it takes twice as much time and gives me no extra benefit'. It just doesn't work that way. &lt;/p&gt;&#xA;" OwnerUserId="8652" LastActivityDate="2010-11-27T07:48:40.373" CommunityOwnedDate="2011-03-03T13:15:32.770" />
  <row Id="21866" PostTypeId="2" ParentId="21403" CreationDate="2010-11-27T07:53:01.867" Score="2" ViewCount="" Body="&lt;p&gt;The larger the project, the more likely you are working for a large organization.  The larger the organization, the more layers of management.  The more layers of management, the harder it is for bad news (&quot;we can't have what we want for what we can afford&quot;) to make it up the chain of command.  The less likely bad news can make it up the chain of command, the more likely a fantasy plan will be accepted and then held to long after it is known to be untenable.&lt;/p&gt;&#xA;" OwnerUserId="8655" LastEditorUserId="8655" LastEditorDisplayName="" LastEditDate="2010-11-29T19:31:27.213" LastActivityDate="2010-11-29T19:31:27.213" CommunityOwnedDate="2011-01-29T04:58:02.993" />
  <row Id="21867" PostTypeId="2" ParentId="21843" CreationDate="2010-11-27T08:12:40.663" Score="3" ViewCount="" Body="&lt;p&gt;Besides what everybody else pointed out, I'd like to note the developing difference: Java is more appreciated by serious coders and is seen a lot in universities, while Flash is meant to target web developers (programmers too, but as a secondary audience to the platform).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you see Flash doing things it shouldn't (like whole websites) in the hands of designers, while Java &lt;em&gt;isn't&lt;/em&gt; in the hands of designers in the first place.&lt;/p&gt;&#xA;" OwnerUserId="8239" LastActivityDate="2010-11-27T08:12:40.663" />
  <row Id="21868" PostTypeId="2" ParentId="21403" CreationDate="2010-11-27T08:13:22.673" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Can agile be used in these sort of projects or traditional approach is still the best.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The reason why well applied agile processes don't seem to suffer from this problem as much is for a simple reason.  You cannot start a large project in an agile manner.  You can chose one or the other. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;With an agile process, you are never really looking past one or two iterations into the future of the project.  there is no 'plan' for the next 2 years, only the next two weeks.  When your view is that short, you have to make a few compromises.  You cannot ever start with a plan to make &quot;The final word in widgets&quot;, for whatever sort of widget you are designing.  At most, you can start with &quot;A widget that can frob&quot;, because thats about the most work you can get done in one or two iterations.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The good thing about this, is after a few iterations, you already have a completed, working product that someone can find useful, especially that one customer who desperately needs a widget that can frob &lt;em&gt;and&lt;/em&gt; zort.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially, large projects can fail because they aim to solve all of the problems of all of the potential customers.  An agile project never has this goal, instead addressing in each version just one critical issue a single customer might have.  After a good long while, though, an agile project might be solving alot of critical issues for alot of customers.&lt;/p&gt;&#xA;" OwnerUserId="8656" LastActivityDate="2010-11-27T08:13:22.673" CommunityOwnedDate="2011-01-29T04:58:02.993" />
  <row Id="21869" PostTypeId="1" CreationDate="2010-11-27T09:31:03.777" Score="9" ViewCount="374" Body="&lt;p&gt;We had a guest lecturer at our school he went on a tangent regarding those graduating and not being upto the skill level he expects ie. knowledge of one big-time compiled languague like Java, C++ or C#, one scripting language like Python or Ruby, one web framework. What are some other skills that you guys think should be absolutely critical to graduating student?&lt;/p&gt;&#xA;" LastActivityDate="2010-11-27T17:58:27.780" Title="What are the set of skills that every programmer graduating from college should have?" Tags="&lt;learning&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="1" />
  <row Id="21870" PostTypeId="1" CreationDate="2010-11-27T09:31:35.497" Score="13" ViewCount="1339" Body="&lt;p&gt;Is is possible to correctly call yourself (or your team) &quot;Agile&quot; if you don't do TDD (Test-Driven Development)?&lt;/p&gt;&#xA;" OwnerUserId="4351" LastActivityDate="2011-03-19T17:33:29.567" Title="Can you be Agile without doing TDD (test driven development)?" Tags="&lt;agile&gt;&lt;tdd&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="3" />
  <row Id="21871" PostTypeId="2" ParentId="21870" CreationDate="2010-11-27T09:41:00.073" Score="1" ViewCount="" Body="&lt;p&gt;I say&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;No [sort of]&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;If you go back to the original source &lt;a href=&quot;http://en.wikipedia.org/wiki/Extreme_Programming&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Extreme_Programming&lt;/a&gt; TDD is fundamental to the process; the tests replace the requirements specifications and use-cases of waterfall, serve as living documentation and functioning examples, etc. They're indispensible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there's so many different flavors of 'agile' floating around now that it's entirely possible that one of them eschews TDD&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: @Murph's interpretation of the question seems to be the preferred one. Heck I even upvoted it, it's a good answer. &lt;em&gt;However&lt;/em&gt;, I maintain my position that the Agile Manifesto is a set of principles, not a development methodology. I see no use in saying &quot;oh yes I'm agile&quot; without actually implementing the practices that bring the benefits. In particular:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;Working software is the primary measure of progress.&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;and&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;Agile processes promote sustainable development. &#xA;The sponsors, developers, and users should be able &#xA;to maintain a constant pace indefinitely. &lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;To me, these two principles imply if not require TDD - at least I know of no other way to achieve them without it!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT 2: yes, technically you can write the tests afterwards; but I still regard test-first/TDD as fundamental. Not because you can't &quot;be agile&quot; without it, but because you will be &lt;em&gt;more&lt;/em&gt; agile with it. Test-first/test-driven is a far more efficient approach than test-later/test-afterthought. &lt;em&gt;The test descriptions &lt;strong&gt;are&lt;/strong&gt; the requirements&lt;/em&gt;. Don't put them off until later ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT 3: I finally figured out what bothers me so much about Murph's very well-written answer. It's that notion that one could &quot;be Agile&quot; without actually &lt;em&gt;doing it&lt;/em&gt;. And &quot;doing it&quot; (as shown above) pretty much requires TDD.&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-11-29T14:38:40.893" LastActivityDate="2010-11-29T14:38:40.893" CommentCount="22" />
  <row Id="21872" PostTypeId="2" ParentId="21869" CreationDate="2010-11-27T09:50:30.883" Score="23" ViewCount="" Body="&lt;p&gt;By far, I would say an eagerness to learn.  College isn't really intended to give you the skills you need to become a programmer.  It's intended to teach you the skills you need to &lt;em&gt;learn&lt;/em&gt; those skills.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-27T09:50:30.883" CommentCount="1" />
  <row Id="21873" PostTypeId="1" CreationDate="2010-11-27T10:04:30.037" Score="3" ViewCount="297" Body="&lt;p&gt;Hello programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a current dilemma I'm pondering over. I will be graduating from high school with ~60 credits worth of community college work (pre-engineering courses), and I am wondering what would experienced programmers suggest I do with my time since I have all of the bull courses out of the way. Should I start taking computer science/engineering courses or should I take some other courses that interest me?(psych, math)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason I am asking this is, well , I like doing a lot of self studying, especially relating to software and tech. I don't like to have the pressure of hard classes on me, so I could make up for the time lost doing the CC courses and dive deep in programming and books.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've started getting into programming recently unfortunately, since I didn't have much time b/c of my course load. Right now I am doing Java and messing around with android. I would like to get involved in web&amp;amp;mobile development, operating systems, and finance software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If any of you experienced people could please give me some guidance and words of wisdom, I would greatly appreciated. Sorry that this isn't necessarily related to programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All the best.&lt;/p&gt;&#xA;" OwnerUserId="8660" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-11-28T07:19:50.100" LastActivityDate="2011-02-20T09:47:47.127" Title="Life and Career guidance" Tags="&lt;career-advice&gt;&lt;advice&gt;&lt;future&gt;&lt;university&gt;" AnswerCount="6" CommentCount="1" />
  <row Id="21874" PostTypeId="2" ParentId="21869" CreationDate="2010-11-27T10:17:57.233" Score="0" ViewCount="" Body="&lt;p&gt;As an employer, I will only employ people as programmers who:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Have experience of single stepping through code.&lt;/li&gt;&#xA;&lt;li&gt;Can select an appropriate design patern&#xA;to solve a simple specific problem.&lt;/li&gt;&#xA;&lt;li&gt;Can implement code that reflects&#xA;their chosen design patern.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In my experience, less than 5% of computer science graduates applying for programming jobs actually have these skills, at a basic level. These are the minimum skills that are needed to be commercially useful, and importantly, not everyone is capable of learning these skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other nice to haves are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Experience of working on a team&#xA;project&lt;/li&gt;&#xA;&lt;li&gt;Use of source control&lt;/li&gt;&#xA;&lt;li&gt;Experience of Unit testing&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These make their integration with the existing development team easier, but are subjects that can normally be taught on the job.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-27T10:17:57.233" />
  <row Id="21875" PostTypeId="2" ParentId="21782" CreationDate="2010-11-27T10:18:14.880" Score="0" ViewCount="" Body="&lt;p&gt;There is one thing I have experienced over and over: If you are a master in a field there are others who have some evil impulse (sometime unconscious) trying to press you down. That is not nice but that is life. Don't listen to them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is a creative job and a passion. If you do it just mechanically you become worse. One needs to keep up the creativeness.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stagnation? Not sure. If you are still improving a little bit in your niche I would say you are in a &quot;power-condition&quot;. So nobody has the right to say you are stagnating.&lt;/p&gt;&#xA;" OwnerUserId="8662" LastActivityDate="2010-11-27T10:18:14.880" />
  <row Id="21877" PostTypeId="2" ParentId="21873" CreationDate="2010-11-27T10:29:18.830" Score="1" ViewCount="" Body="&lt;p&gt;Programming as a job usually involves hard intelectual work under intense time pressure.  Your comments about not liking pressure of hard classes hint that you need to think long and hard about is programming the right career for you.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;see &lt;a href=&quot;http://www.theregister.co.uk/2010/11/23/coders_insomnia_mental_hygiene/&quot; rel=&quot;nofollow&quot;&gt;this news article&lt;/a&gt; about a study at one work place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the right person, programming is a fantastic career choice.  If you are wanting to be involved in real Finance software, you will need exceptional mathematics grades and to be skilled in C++.  They also tend to employ top notch java programmers for the UI work.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-27T10:29:18.830" CommentCount="3" />
  <row Id="21878" PostTypeId="2" ParentId="21870" CreationDate="2010-11-27T10:33:40.173" Score="24" ViewCount="" Body="&lt;p&gt;Yes, yes, yes, a million times yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Agile is a philosophy, TDD is a specific methodology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I wanted to be &lt;em&gt;really&lt;/em&gt; picky I could simply point out that there are quite a few variations of xDD - which their advocates will explain in depth are &lt;em&gt;not&lt;/em&gt; TDD - but those are still substantially bound up with test first so that would be cheating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So lets says this - you can be agile without doing &quot;test first&quot; development (look at the way scrum works - nowhere in there are there specifics about how you write code). Look at a kanban board, look at all sorts of agile methodologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you want unit tests? Of course you do, for all kinds of reasons - and you might well make an argument that you can't be agile without unit tests (although I suspect that you can be) - but you don't have to write them first to be agile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And finally, its equally true that you could do Test First &lt;em&gt;without&lt;/em&gt; being Agile and strong arguments for doing test first regardless of your overall dev philosophy.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-11-27T10:33:40.173" CommentCount="6" />
  <row Id="21880" PostTypeId="2" ParentId="21831" CreationDate="2010-11-27T10:44:31.063" Score="3" ViewCount="" Body="&lt;p&gt;Getting programmers to work as QA engineers is a recipe to lose your best developers.  Programming and QA require different skill sets and thought processes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, It is important that your programmers are skilled in the art of testing and validating their own work before passing it to the QA team. Developers and QA have access to different tools, knowledge and skills. The developers need to be skilled at steping through their code looking for unexpected behavior, unit testing for boundry conditions, stressing threaded code looking for race conditions etc.  i.e. Testing from a developer perspective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;QA do their testing from the user perspective. Thinking like different types of users, inventing strange edge cases, and making obscure problems reproducable are QA skills. &lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-27T10:44:31.063" CommentCount="5" />
  <row Id="21881" PostTypeId="2" ParentId="21869" CreationDate="2010-11-27T10:50:03.850" Score="0" ViewCount="" Body="&lt;p&gt;I had once a team I &quot;inherited&quot; with mostly newly graduated staff and I had my experience that those who did real programming &quot;next&quot; to there study (to earn some extra money) were the most capable team members. Hence experience is the key and it &lt;strong&gt;does only little matter&lt;/strong&gt; what language. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However if you look what recruiters are looking for (at all the common recruiter sites like jobserver.com etc.) it is interesting to observe that there is a lot being asked for the C++, C#, Java but also there are others looked for and also &quot;exotic&quot; things like COBOL is still around. &lt;/p&gt;&#xA;" OwnerUserId="8662" LastActivityDate="2010-11-27T10:50:03.850" />
  <row Id="21882" PostTypeId="2" ParentId="21870" CreationDate="2010-11-27T11:05:39.710" Score="11" ViewCount="" Body="&lt;p&gt;&quot;Being agile&quot; simply means adhering to the values and principles of the &lt;a href=&quot;http://agilemanifesto.org/&quot; rel=&quot;nofollow&quot;&gt;agile manifesto&lt;/a&gt;. Nothing in that document mentions TDD, or even unit testing for that matter. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So yes, you can be agile without doing TDD or unit testing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't recommend it though...&lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-11-27T11:27:35.487" LastActivityDate="2010-11-27T11:27:35.487" CommentCount="6" />
  <row Id="21883" PostTypeId="2" ParentId="21873" CreationDate="2010-11-27T11:24:29.530" Score="3" ViewCount="" Body="&lt;p&gt;The most important thing is you need to be as good as you possibly can at something you really &lt;em&gt;enjoy&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason is simple - at one point or another things will be tedious and dull for a period and it will be your internal drive that will make the difference between failure and success.    By choosing things you find fun and interesting to be good at, your chances for working in a fun field will be much bigger, and your internal drive bigger.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If psych interests you then learn as much you can.  There is a great need for understanding users better when writing applications, and if you can both program and do the non-programming part, you are better suited for a good job.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-27T11:24:29.530" />
  <row Id="21884" PostTypeId="2" ParentId="14584" CreationDate="2010-11-27T11:38:06.917" Score="1" ViewCount="" Body="&lt;p&gt;No, because I do not work in a problem domain where security is relevant (massive data visualization SW). I &lt;em&gt;do&lt;/em&gt; have a bunch of asserts in my code (index checking, consistency checking, etc.), not because of security concerns, but because I like wrong code to crash early and crash visibly.&lt;/p&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-11-27T11:38:06.917" />
  <row Id="21885" PostTypeId="2" ParentId="21845" CreationDate="2010-11-27T11:46:29.820" Score="0" ViewCount="" Body="&lt;p&gt;Do it yourself - a half baked, poorly coded, badly designed, dripping-from-all-sides, heavily bandaged version 0.1 for your software is far better than no software. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also remember that you need to sell it to your customers, not your developers. If you find paying customers for software you can easily get developers to add to your team. And customers need to see SOMETHING. If you have some large customers lined up for v1 of your software whenever it is going to come out, I don't see why developers won't come onboard. Besides you are paying them aren't you?! ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yeah this comes from experience. Customers can tell you much more about your product than other developers can. (not how to build, but what to build)&lt;/p&gt;&#xA;" OwnerUserId="8652" LastActivityDate="2010-11-27T11:46:29.820" />
  <row Id="21886" PostTypeId="2" ParentId="14584" CreationDate="2010-11-27T12:01:30.233" Score="3" ViewCount="" Body="&lt;p&gt;If you don't do that, you WILL have to come back later and fix it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/utaid.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://xkcd.com/327/&quot; rel=&quot;nofollow&quot;&gt;http://xkcd.com/327/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-27T12:01:30.233" CommentCount="3" />
  <row Id="21887" PostTypeId="2" ParentId="260" CreationDate="2010-11-27T12:06:00.090" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? Because most of what we learn of math beyond 2*2=4 is forgotten the weekend after the exam, never to be used again. Advanced calculus is useless in real life for almost everyone too (even tough I began to like it &lt;em&gt;after&lt;/em&gt; school and found its value for programming).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I remember I was taught matrix math in school, but when I began programming, I didn't remember a tiny fraction of it (I re-learned it on my own as if it was the first time, without anything gained from school at all). I also was taught about history, biology, etc... but I don't remember any of it because it wasn't remotely of my interest when I was taught it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe it also affects my experience that my parenting was kind of a mess and my childhood was a pool of my parents' hate towards each other, and that I was the weird nerd bullied by everyone, plus I was in another country (I'm brazilian and I've gone to school in Argentina).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But programming always fascinated me as a kid, even if I only got my first computer relatively recently (~2.5 years ago).&#xA;Programming is much more about solving problems in an intelligent and structured manner (something every teenager needs) than about technical implementations. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Computers taught me english, philosophy, problem-solving, and a bunch of life lessons. No teacher did that. Being alone with a machine that will only reflect myself on it has taught me about myself, because it becomes an extension of myself, and I can see my own ideas quickly being executed by it, and quickly show me faults in my problem-solving part of the brain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, in my experience all of school was a useless torturing time in my life that I'd really like to get back.&lt;br&gt;&#xA;If it had programming on it, something of it could have been useful.&lt;/p&gt;&#xA;" OwnerUserId="8239" LastActivityDate="2010-11-27T12:06:00.090" />
  <row Id="21889" PostTypeId="2" ParentId="14584" CreationDate="2010-11-27T12:21:38.537" Score="0" ViewCount="" Body="&lt;p&gt;Understand the general principles of security, (integrity, authentication, authority) and then&#xA;read a few books about how people have been subverting these pillars of security for millennia and you will be about half way there. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then read a few good books on design and testing strategies and you will learn how to design testability into your architecture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now we get to the point when I do think about security. I am thinking about how can I validate the data source, does it matter if the data is tampered with, who is the data source, how sure of that am i? how could it have been altered etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This affects the design.  Config files may have key sections encrypted, or particular fields could be in clear text with an associated signature field.  Things get more complex with internet facing services as you should expect a greater level of hostility there.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then at testing, how do you test all this.  What are your maximum data entries, what happens if you push the software beyond those limits, how does it handle it?  What does it trust?  how can you fake that trust?&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-27T12:21:38.537" />
  <row Id="21890" PostTypeId="2" ParentId="14584" CreationDate="2010-11-27T12:36:50.607" Score="0" ViewCount="" Body="&lt;p&gt;Yes. When I worked on a multiplayer game, all were paranoid of exploits and ways to cheat. Cheating can destroy a game totally, not to mention any business models connected to selling in-game stuff. So security concerns and anti-tampering measures were very high on the agenda. I liked it very much. I have worked on others projects before where you had to feel guilty for working longer on the code just to assure it was secure.&lt;/p&gt;&#xA;" OwnerUserId="8316" LastActivityDate="2010-11-27T12:36:50.607" />
  <row Id="21891" PostTypeId="1" AcceptedAnswerId="21901" CreationDate="2010-11-27T12:56:38.227" Score="7" ViewCount="442" Body="&lt;p&gt;Dr Bjarne Stroustrup in his book D&amp;amp;E says&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Several reviewers asked me to compare C++ to other languages. This I have decided against doing. Thereby, I have reaffirmed a long-standing and strongly held view: &quot;Language comparisons are rarely meaningful and even less often fair&quot; . A good comparison of major programming languages requires more effort than most people are willing to spend, experience in a wide range of application areas, a rigid maintenance of a detached and impartial point of view, and a sense of fairness. I do not have the time, and as the designer of C++, my impartiality would never be fully credible. &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;-- The Design and Evolution of C++(Bjarne Stroustrup)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Do you people agree with his this statement &quot;&lt;code&gt;Language comparisons are rarely meaningful and even less often fair&lt;/code&gt;&quot;? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I think that comparing a language X with Y makes sense because it gives many more reasons to love/despise X/Y &lt;code&gt;:-P&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you people think?&lt;/p&gt;&#xA;" OwnerUserId="3534" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-27T19:25:00.387" LastActivityDate="2011-03-04T08:46:32.203" Title="Are Language Comparisons Meaningful?" Tags="&lt;programming-languages&gt;&lt;comparison&gt;&lt;language-features&gt;" AnswerCount="7" CommentCount="4" FavoriteCount="4" />
  <row Id="21892" PostTypeId="2" ParentId="21782" CreationDate="2010-11-27T13:05:15.293" Score="0" ViewCount="" Body="&lt;p&gt;You're not alone!  If you're into &quot;performance programming&quot; and the sort of engineering which means extracting the max from the hardware, you have to make some effort to &quot;ride the wave&quot; over the course of your career and go in search of fields that need those skills.  If you stay in one area too long, eventually someone will decide the best use of hardware performance gains is more and more levels of abstraction.  You need to to go in search of the new business which only becomes possible when hardware reaches a certain price-performance point, and which need efficient coding to make if happen.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started off in computer graphics in the 80s when having a colour image on a workstation was a big deal (and struggling to do stuff noone would think twice about doing in Javascript these days), then moving into 3D rendering (software, then hardware accelerated) and then just when that was getting too easy (sometime in the DirectX9 era) moved into (medical) volume rendering, although GPGPU developments are rapidly eroding the challenge there. &lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-11-27T13:05:15.293" />
  <row Id="21893" PostTypeId="2" ParentId="21891" CreationDate="2010-11-27T13:07:07.250" Score="4" ViewCount="" Body="&lt;p&gt;That, except in some rare (and - rare - as in &quot;it happens once or twice in the lifetime of a solar system&quot;) exceptions, it usually leads to language wars, in more or less strong variant, and very rarely leave some practical and useful conclusions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Languages are tools, not religions. You don't compare a hammer with a screwdriver, but you use the one that fits your task &amp;amp; way of thinking/education/needed level of abstraction the most.&#xA;Also, since the one doing the comparison is biased by the fact that he knows at least one of the two, or at least prefers one of the two, it is hard to find a truly objective criteria for comparing them (exceptions exist).&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-27T13:07:07.250" CommentCount="3" />
  <row Id="21894" PostTypeId="2" ParentId="21891" CreationDate="2010-11-27T13:39:44.040" Score="4" ViewCount="" Body="&lt;p&gt;A language is a tool. That said, I've seen really, really crappy tools before. No one wants to work with a hammer whose head is liable to fly off and hit another carpenter in the stomach. Likewise, if you noticed your fellow worker's hammer was in that shape, you'd probably steer clear of them when they were using it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also important to really understand which tool it is. You can't use a screwdriver and hammer interchangeably (though some try desperately). Hell you can't even use all hammers interchangeably; you need a sledge for some things, a mallet for others and a tack for yet others. If you use the inappropriate tool, then at best, you'll do a poorer job, at worst you'll injure yourself or a co-worker. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, language comparison is useful in that it can prevent workplace accidents. Taking the above out of metaphor; it's difficult to know without comparing whether a given language is a sledge hammer, a screwdriver, a dremel or a table saw, because (unlike with physical tools) you can't really tell just by glancing. You need to think about the features it offers, see it in action (by trying to read significant pieces of a large codebase written in it), and ideally, test-drive it yourself too. Careful not to make the mistake of just writing Cobol in Python (for example). You need to use the new language idiomatically, which means learning it well. This is probably why Bjarne says most people don't put enough effort in for a useful comparison.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The type of comparison that starts with &quot;I like Blub&quot; and continues with &quot;Well, I like Blub++&quot; is completely useless. If it winds up selecting a language, all it really tells you is who's most persuasive in a given group and/or which language company has the largest advertising budget. If you analyze what a language can do, what tasks its suited for, and where its shortcomings are &lt;strong&gt;without&lt;/strong&gt; resorting to unreasoned arguments or personal bias, then that can be useful indeed.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-11-27T18:14:41.807" LastActivityDate="2010-11-27T18:14:41.807" CommentCount="9" />
  <row Id="21895" PostTypeId="2" ParentId="21869" CreationDate="2010-11-27T13:52:47.237" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;A passion for programming well&lt;/li&gt;&#xA;&lt;li&gt;Humility&lt;/li&gt;&#xA;&lt;li&gt;The ability to learn new things quickly&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4881" LastActivityDate="2010-11-27T13:52:47.237" />
  <row Id="21896" PostTypeId="1" CreationDate="2010-11-27T14:07:56.610" Score="3" ViewCount="174" Body="&lt;p&gt;I frequently encounter a situation where I need to write a program which reads data-objects from a file or system, does a transformation on the data, convert the data to another datamodel and then push the data in another file, or system.&#xA;Do you know of a object-model which facilitates these type of programs in such a way that it is pluggable and scalable?  &lt;/p&gt;&#xA;" OwnerUserId="8670" LastActivityDate="2010-11-27T16:02:57.487" Title="Do you know of a data-pump design pattern?" Tags="&lt;design-patterns&gt;&lt;object-oriented&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="3" />
  <row Id="21897" PostTypeId="2" ParentId="21869" CreationDate="2010-11-27T14:29:01.750" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Interpersonal and communication skills&lt;/li&gt;&#xA;&lt;li&gt;Pragmatic approach (not that academical theory)&lt;/li&gt;&#xA;&lt;li&gt;Ability to think as a client who is not technically-inclined&lt;/li&gt;&#xA;&lt;li&gt;Ability to evaluate what's important/and what can be disregarded, in terms costs/benefits&lt;/li&gt;&#xA;&lt;li&gt;Ability to work in a team&lt;/li&gt;&#xA;&lt;li&gt;Ability to think strategically: architecture, extensibiliy, scalability&lt;/li&gt;&#xA;&lt;li&gt;Openness to accept that university teachings have little to do with the real world (depends on university - some fare better on this).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Learning process in this profession never ends. One must constantly learn and improve himself, otherwise, he &quot;flunks out&quot; of the game real fast.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-27T14:29:01.750" CommentCount="3" />
  <row Id="21898" PostTypeId="2" ParentId="21869" CreationDate="2010-11-27T15:08:07.550" Score="-1" ViewCount="" Body="&lt;p&gt;The other answers are good, but I would say the #1 overlooked skill in university seems to be actual  &lt;strong&gt;software engineering&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The basic classes to teach OOP and a language like Java are great, but in the 3rd and 4th year why are students (at least at my local university) writing compilers and operating systems instead of learning how to identify and create a good architecture, how to dissect requirements and create from that a list of technical specifications, and perhaps most importantly, what the difference is between good code that works and bad code that works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's like our universities almost &lt;em&gt;want&lt;/em&gt; to churn out &lt;em&gt;coders&lt;/em&gt; instead of &lt;em&gt;software engineers&lt;/em&gt;.  I would never hire somebody who didn't display some skill/talent in engineering.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-11-27T15:08:07.550" CommentCount="3" />
  <row Id="21899" PostTypeId="2" ParentId="21896" CreationDate="2010-11-27T15:14:23.380" Score="1" ViewCount="" Body="&lt;p&gt;here's a link to an article on an alleged &lt;a href=&quot;http://aditiblogs.com/blog/blog/2009/03/06/etl-design-pattern-e-lt-l/&quot; rel=&quot;nofollow&quot;&gt;Extract/Transform/Load (ETL)&lt;/a&gt; design pattern but it sounds like what you want is a framework&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-27T15:14:23.380" CommentCount="2" />
  <row Id="21900" PostTypeId="2" ParentId="21845" CreationDate="2010-11-27T15:22:17.337" Score="0" ViewCount="" Body="&lt;p&gt;Can you explain why a skilled programmer would want to implement your idea for fun, when I am sure they have plenty of their own to implement?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been programming for around 25 years, ( I started early) but as I have explained to my employers over the years I do the programming for free.  The reason why they pay me is to tell me what to program, to insist that I turn up to the office, to follow a certain dress code etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, if you put together the proof of concept demo, show it around, have someone approach you looking for an investment and then start looking for a technical architect - then you are able to pay someone to take your idea and turn it into a product.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-27T15:22:17.337" />
  <row Id="21901" PostTypeId="2" ParentId="21891" CreationDate="2010-11-27T15:27:46.927" Score="11" ViewCount="" Body="&lt;p&gt;i love comparing programming languages!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i compare java to a warm breeze with a hint of rain&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i compare C# to beautiful spring day with just enough fluffy white clouds to keep the sky happy&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i compare C to a sledgehammer in a room full of glass&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i compare C++ to a bag of sledgehammers in a world of crystal&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i compare VB to an old wind-up toy sinking in a bathtub&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i compare PL/1 to a rusty anvil, bolted to the floor&lt;/p&gt;&#xA;&#xA;&lt;p&gt;what do you compare them to?&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-27T15:27:46.927" CommentCount="5" />
  <row Id="21902" PostTypeId="2" ParentId="21896" CreationDate="2010-11-27T16:02:57.487" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321200683&quot; rel=&quot;nofollow&quot;&gt;Read Enterprise Application Integration Patterns.&lt;/a&gt;&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a &lt;a href=&quot;http://www.eaipatterns.com/toc.html&quot; rel=&quot;nofollow&quot;&gt;website related to it here&lt;/a&gt; that contains a wealth of inter-application processing design patterns for you to browse. In particular, I'd draw your attention to these patterns:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Messaging&lt;/strong&gt; &#xA;How can I integrate multiple applications so that they work together and can exchange information?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Message Channel&lt;/strong&gt;&#xA;How does one application communicate with another using messaging?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Message Router&lt;/strong&gt;&#xA;How can you decouple individual processing steps so that messages can be passed to different filters depending on a set of conditions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've got a copy of the book myself and it's packed with detail about inter-application and inter-system design patterns.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-27T16:02:57.487" CommentCount="1" />
  <row Id="21903" PostTypeId="2" ParentId="21873" CreationDate="2010-11-27T16:35:14.523" Score="0" ViewCount="" Body="&lt;p&gt;Balancing things out a little would be my suggestion.  If you are taking a handful of courses a semester, you could probably take 3 or 4 that are Computer Science/Engineering with 1 or 2 that are something else.  There were a couple of times in my university days where I had a handful of all Math and Computer Science courses which made for a really tough semester.  Sometimes taking that course outside of your major can yield some nice insights as I remember enjoying some first year language courses as well as science courses that rounded out some of my skills in a sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another way to consider your options is to draw up a 2 x 2 grid listing the pros and cons of each choice you have.  Granted you may have already done this, but if not it could be useful for gaining perspective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Judging from the entrepreneur remark, I'd think some business or accounting courses may also make sense for what you want to do eventually.  There may be more than one way to get where you want, so don't overly focus too much on trying to get everything right at each step.  I sometimes will learn lessons the hard way which some people may find annoying or difficult to understand but I know what works for me.  What works for you?&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-27T16:35:14.523" />
  <row Id="21904" PostTypeId="2" ParentId="260" CreationDate="2010-11-27T16:56:55.993" Score="2" ViewCount="" Body="&lt;p&gt;I think for the majority the math is very important. Although I see a lot of wannabe programmer scramble to find a new majore when they discover they can't cut collge level math. I think a lot of these people probably just one low level programmimg jobs, and perhaps the math filter is too stringent for these students. But I regard math skills/knowlegde as more fundamental than programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The approach I'd like to see is to combine math, physics, and programming together. A lot&#xA;of math, and science these days is heavily computer dependent, and is the combination of these skills, and the way they can be used to reinforce each other that should matter. The problem&#xA;with a lot of math teaching is it is disconnected from real world problem solving, so unless the student likes math for its own sake, it can seem like a pointless excercise. But, combine say programming, and say calculus of diferential equations, such that excercise are about solving challenging problems, and the motivation for both the math, and the CS should drive the process. Myself, I cannot get through more than a page of two of theorem-corralary-lamma type math before my eyes glaze over, but I can spend hours trying to figure out how to programmer interesting applied math stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think I'd like to see more diversity of the talent and knowldge base. I had had a keen interest in&#xA;efficiency of methods, and high speed programming and HW design. Very few CS graduates today learn even the basics of what is happening under the hood. It would be nice if some small percentage of graduates knew this stuff and had a passion for it. Likewise I'm sure others can come up with other specialized concentrations that it would be nice to have a few people know. I think being one of the few experts in some otherwise overlooked area can have its rewards. In my supercomputing career, I saw that everybody and his brother was into parallel programming, so I deliberately choose to concentrate on performance of a single CPU -because it was being neglected and thusly it easy to make a big difference there.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-11-27T16:56:55.993" />
  <row Id="21905" PostTypeId="2" ParentId="19893" CreationDate="2010-11-27T17:16:11.060" Score="1" ViewCount="" Body="&lt;p&gt;do you need a higly responsive application for people to use all day long? use WPF&#xA;; you'll find it easier to reuse GUI components in WPF over ASP/MVC also (IMHO)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;yes, jquery et al are great, silverlight is cool, but desktop apps are still more efficient&lt;/p&gt;&#xA;&#xA;&lt;p&gt;for the back-end, WCF is fine&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-27T17:16:11.060" />
  <row Id="21907" PostTypeId="1" AcceptedAnswerId="21949" CreationDate="2010-11-27T17:47:42.687" Score="1" ViewCount="378" Body="&lt;p&gt;The definition of &quot;Free Software&quot; from the Free Software Foundation:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;“Free software” is a matter of&#xA;  liberty, not price. To understand the&#xA;  concept, you should think of “free” as&#xA;  in “free speech,” not as in “free&#xA;  beer.”&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Free software is a matter of the&#xA;  users' freedom to run, copy,&#xA;  distribute, study, change and improve&#xA;  the software. More precisely, it means&#xA;  that the program's users have the four&#xA;  essential freedoms:&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;The freedom to run the program, for&#xA;  any purpose (freedom 0).&lt;/li&gt;&#xA;  &lt;li&gt;The freedom&#xA;  to study how the program works, and&#xA;  change it to make it do what you wish&#xA;  (freedom 1). Access to the source&#xA;  code is a precondition for this.&lt;/li&gt;&#xA;  &lt;li&gt;The&#xA;  freedom to redistribute copies so you&#xA;  can help your neighbor (freedom 2).&lt;/li&gt;&#xA;  &lt;li&gt;The freedom to distribute copies of&#xA;  your modified versions to others&#xA;  (freedom 3). By doing this you can&#xA;  give the whole community a chance to&#xA;  benefit from your changes. Access to&#xA;  the source code is a precondition for&#xA;  this.&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;  &#xA;  &lt;p&gt;A program is free software if users&#xA;  have all of these freedoms. Thus, you&#xA;  should be free to redistribute copies,&#xA;  either with or without modifications,&#xA;  either gratis or charging a fee for&#xA;  distribution, to anyone anywhere.&#xA;  Being free to do these things means&#xA;  (among other things) that you do not&#xA;  have to ask or pay for permission to&#xA;  do so.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The definition of &quot;Open Source Software&quot; from the Open Source Initiative:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Open source doesn't just mean access&#xA;  to the source code. The distribution&#xA;  terms of open-source software must&#xA;  comply with the following criteria:&lt;/p&gt;&#xA;  &#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;&lt;p&gt;&lt;strong&gt;Free Redistribution&lt;/strong&gt; The license shall not restrict any party from&#xA;  selling or giving away the software as&#xA;  a component of an aggregate software&#xA;  distribution containing programs from&#xA;  several different sources. The license&#xA;  shall not require a royalty or other&#xA;  fee for such sale.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;&lt;strong&gt;Source Code&lt;/strong&gt; The program must include source code, and must allow&#xA;  distribution in source code as well as&#xA;  compiled form. Where some form of a&#xA;  product is not distributed with source&#xA;  code, there must be a well-publicized&#xA;  means of obtaining the source code for&#xA;  no more than a reasonable reproduction&#xA;  cost preferably, downloading via the&#xA;  Internet without charge. The source&#xA;  code must be the preferred form in&#xA;  which a programmer would modify the&#xA;  program. Deliberately obfuscated&#xA;  source code is not allowed.&#xA;  Intermediate forms such as the output&#xA;  of a preprocessor or translator are&#xA;  not allowed.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;&lt;strong&gt;Derived Works&lt;/strong&gt; The license must allow modifications and derived works,&#xA;  and must allow them to be distributed&#xA;  under the same terms as the license of&#xA;  the original software.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;&lt;strong&gt;Integrity of The Author's Source Code&lt;/strong&gt; The license may restrict&#xA;  source-code from being distributed in&#xA;  modified form only if the license&#xA;  allows the distribution of &quot;patch&#xA;  files&quot; with the source code for the&#xA;  purpose of modifying the program at&#xA;  build time. The license must&#xA;  explicitly permit distribution of&#xA;  software built from modified source&#xA;  code. The license may require derived&#xA;  works to carry a different name or&#xA;  version number from the original&#xA;  software.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;&lt;strong&gt;No Discrimination Against Persons or Groups&lt;/strong&gt; The license must not&#xA;  discriminate against any person or&#xA;  group of persons.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;&lt;strong&gt;No Discrimination Against Fields of Endeavor&lt;/strong&gt; The license must not restrict&#xA;  anyone from making use of the program&#xA;  in a specific field of endeavor. For&#xA;  example, it may not restrict the&#xA;  program from being used in a business,&#xA;  or from being used for genetic&#xA;  research.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;&lt;strong&gt;Distribution of License&lt;/strong&gt; The rights attached to the program must apply to&#xA;  all to whom the program is&#xA;  redistributed without the need for&#xA;  execution of an additional license by&#xA;  those parties.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;&lt;strong&gt;License Must Not Be Specific to a Product&lt;/strong&gt; The rights attached to the&#xA;  program must not depend on the&#xA;  program's being part of a particular&#xA;  software distribution. If the program&#xA;  is extracted from that distribution&#xA;  and used or distributed within the&#xA;  terms of the program's license, all&#xA;  parties to whom the program is&#xA;  redistributed should have the same&#xA;  rights as those that are granted in&#xA;  conjunction with the original software&#xA;  distribution.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;&lt;strong&gt;License Must Not Restrict Other Software&lt;/strong&gt; The license must not place&#xA;  restrictions on other software that is&#xA;  distributed along with the licensed&#xA;  software. For example, the license&#xA;  must not insist that all other&#xA;  programs distributed on the same&#xA;  medium must be open-source software.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;&lt;strong&gt;License Must Be Technology-Neutral&lt;/strong&gt; No provision of the license may be&#xA;  predicated on any individual&#xA;  technology or style of interface.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;These definitions, although they derive from very different ideologies, are broadly compatible, and most Free Software is also Open Source Software and vice versa. I believe, however, that it is possible for this not to be the case: It is possible for software to be Open Source without being Free, or to be Free without being Open Source.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Questions&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Is my belief correct? Is it possible for software to fall into one camp and not the other?&lt;/li&gt;&#xA;&lt;li&gt;Does any such software actually exist? Please give examples.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Clarification&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've already accepted an answer now, but I seem to have confused a lot of people, so perhaps a clarification is in order. I was &lt;strong&gt;not&lt;/strong&gt; asking about the difference between copyleft (or &quot;viral&quot;, though I don't like that term) and non-copyleft (&quot;permissive&quot;) licenses. Nor was I asking about your personal idiosyncratic definitions of &quot;Free&quot; and &quot;Open&quot;. I was asking about &quot;Free Software as defined by the FSF&quot; and &quot;Open Source Software as defined by the OSI&quot;. Are the two always the same? Is it possible to be one without being the other?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And the answer, it seems, is that it's impossible to be Free without being Open, but possible to be Open without being Free. Thank you everyone who actually answered the question.&lt;/p&gt;&#xA;" OwnerUserId="2406" LastEditorUserId="2406" LastEditorDisplayName="" LastEditDate="2011-02-08T21:24:30.067" LastActivityDate="2011-02-08T23:15:30.457" Title="Open Source but not Free Software (or vice versa)" Tags="&lt;open-source&gt;&lt;free-software&gt;&lt;foss&gt;&lt;license&gt;" AnswerCount="6" CommentCount="0" FavoriteCount="2" />
  <row Id="21908" PostTypeId="2" ParentId="21869" CreationDate="2010-11-27T17:49:45.307" Score="1" ViewCount="" Body="&lt;p&gt;New graduates need more than just a desire to learn, they need an obsession of learning, an understanding of how to learn, and a firm grounding in the realities of software. I generally don't care what languages you know, but every junior must:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Understand history&lt;/strong&gt;. Computer science is a well researched field, with many solved problems. Knowing this fact opens the door to learning from what's come before you. Even knowing that there is a rich history to mine knowledge from is more than many graduates grok. This includes things like big-O notation, history of algorithms, principles of the prophets (Knuth, K&amp;amp;R, Hofstdater, etc.), and commonly accepted practices and patterns. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Know that it can be solved&lt;/strong&gt;. I am always surprised when a developer is stumped by a problem. Part of learning to learn is the simple principle that problems are easily soluble, always. Once you know this, it frames your thinking for finding a sane answer. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Understand decomposition&lt;/strong&gt;. Not only can problems be solved, but the path to doing so is as simple as divide and conquer. Reduce a problem down to simpler components, and your answer will always present itself. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Know how to measure&lt;/strong&gt;. In addition to being able to decompose problems, new developers need to know how to gather facts about these problems. How long? How large? How fast? How many? Simple facts are a step to understanding and objective thinking. Making assumptions without facts is an easy way to get lost in the problem space. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Be objective&lt;/strong&gt;. All problems can be decomposed, measured, and understood simply. The problems that can't be understood simply merely require additional decomposition, measurement, and understanding. There is no use in getting angry or frustrated, nor is it productive to argue about theories or place blame. Any irrational behavior or belief related to the process of solving problems is poison, making solutions very difficult to find. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prefer patterns and principles&lt;/strong&gt;. You will encounter dozens of right ways to do things, languages, programming models, computer architectures, and even engineering methods. There is no single right way, but there are solid underlying concepts that you can apply over and over again. Learn to see these patterns, as they will guide your learning and thinking every step of the way. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8151" LastEditorUserId="8151" LastEditorDisplayName="" LastEditDate="2010-11-27T17:58:27.780" LastActivityDate="2010-11-27T17:58:27.780" />
  <row Id="21909" PostTypeId="2" ParentId="15380" CreationDate="2010-11-27T17:51:41.543" Score="0" ViewCount="" Body="&lt;p&gt;Basically the problem with that is&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you have to reengineer a given piece of code, it is because you don't have source for it in the first place.&lt;/li&gt;&#xA;&lt;li&gt;If you do not have source for it, it is most likely because the license explicitly prohibits reverse engineering for one reason or another.&lt;/li&gt;&#xA;&lt;li&gt;Very few companies are interested in breaking the license agreements on the software they use.&lt;/li&gt;&#xA;&lt;li&gt;Those who don't care, are usually located in China.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I don't know where your friend is employed, but he might be taking the legal risk associated with doing the reverse engineering to provide the information needed by his client to circumvent the limitation that caused them to need reverse engineering in the first place.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-27T17:51:41.543" />
  <row Id="21910" PostTypeId="2" ParentId="21907" CreationDate="2010-11-27T17:52:15.000" Score="0" ViewCount="" Body="&lt;p&gt;It is possible for software to be &quot;Open Source&quot; but not &quot;Free Software&quot; (free in etiher sense)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reverse I think is not possible, Freedom 1 requires Source Code.&lt;/p&gt;&#xA;" OwnerUserId="3672" LastActivityDate="2010-11-27T17:52:15.000" CommentCount="4" />
  <row Id="21911" PostTypeId="1" AcceptedAnswerId="21935" CreationDate="2010-11-27T17:54:09.680" Score="7" ViewCount="318" Body="&lt;p&gt;I have a client who wants a web app that will let him do the following (as he told me word for word):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;User registration&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Recurring payments for users&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Online conference room reservation&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I am supposed to give him a cost estimate very fast and I don't have any time to do any deeper requirements analysis! How would you deal with that kind of situation? Should I just give a very broad estimate and work out the exact requirements once he has accepted the estimate? At which point do you usually gather requirements, after or before getting a contract?&lt;/p&gt;&#xA;" OwnerUserId="2100" LastActivityDate="2010-11-28T00:22:43.290" Title="How to estimate cost with very little information?" Tags="&lt;requirements&gt;&lt;cost&gt;" AnswerCount="11" CommentCount="1" FavoriteCount="2" />
  <row Id="21912" PostTypeId="2" ParentId="21067" CreationDate="2010-11-27T17:56:52.410" Score="6" ViewCount="" Body="&lt;p&gt;I think &lt;a href=&quot;http://en.wikipedia.org/wiki/Multiple_dispatch&quot; rel=&quot;nofollow&quot;&gt;multi-method dispatch&lt;/a&gt; is very cool. At first it might sound like simple overloading, but the decision is deferred to &lt;em&gt;runtime&lt;/em&gt;. Multi-method dispatch is part of CLOS and Dylan.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And the generalization of it, &lt;a href=&quot;http://www.cs.ucla.edu/~todd/research/jpred.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;predicate dispatch&lt;/strong&gt;&lt;/a&gt;, is even better. The JPred language showed that it can be added to a Java-like language. My guess is it might take a decade or two before predicate dispatch reaches the mainstream.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-27T17:56:52.410" CommunityOwnedDate="2011-01-05T10:52:43.233" CommentCount="10" />
  <row Id="21914" PostTypeId="2" ParentId="21911" CreationDate="2010-11-27T17:59:20.057" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Get up on Google, find a similar application &lt;em&gt;(I've no idea about web development, so can't give you any more practical advice than this)&lt;/em&gt;, a company or a private developer which makes those, and ask them for a quotation. Preferably, ask two.  &lt;/li&gt;&#xA;&lt;li&gt;Based on your experience, see how it fits into your plan of development, and think whether you can do it for less (usually lone developers (assuming) have less costs in some areas than companies devoted to those kind of development.)  &lt;/li&gt;&#xA;&lt;li&gt;Give him an approximation, strongly emphasizing that the exact price will depend on his requirements (of the client, that is).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-11-27T17:59:20.057" />
  <row Id="21916" PostTypeId="2" ParentId="21873" CreationDate="2010-11-27T18:01:59.640" Score="0" ViewCount="" Body="&lt;p&gt;Go to school full time and start taking serious CS courses. You'll learn more, make contacts and see how you compare to other students. Maintain your study habits. Leaving school and trying to come back after a lay-off is not as easy as it sounds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you get your degree sooner, you can look into an internship, finding a job, studying abroad or going on to graduate school. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not that there isn't a lot you can do in this industry without a degree, but it provide other opportunities you should take advantage of at such an early age and the means to pay for it.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-27T18:01:59.640" />
  <row Id="21917" PostTypeId="1" CreationDate="2010-11-27T18:03:47.330" Score="7" ViewCount="1149" Body="&lt;p&gt;I am going to interview within two weeks for an internship that would involve Python programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can anyone suggest what possible areas should I polish? I am looking for commonly asked stuff in interviews for Python openings. Apart from the fact that I have already been doing the language for over a year now, I fail to perceive what they can ask me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like for a C or C++ interview, there are lots of questions ranging from reversing of strings to building linked lists, but for a Python interview, I am clueless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personal experiences and/ or suggestions are welcomed.&lt;/p&gt;&#xA;" LastActivityDate="2011-02-17T05:20:06.740" Title="Python interview questions" Tags="&lt;interview&gt;&lt;python&gt;&lt;interview-questions&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="7" />
  <row Id="21918" PostTypeId="2" ParentId="21911" CreationDate="2010-11-27T18:07:19.097" Score="6" ViewCount="" Body="&lt;p&gt;Count individual web pages. For example, &quot;user registration&quot; probably means there's a &quot;sign up&quot; page - is there also an &quot;edit my profile&quot; page? A &quot;look at someone else's profile&quot; page? Can managers edit their people? Is there a &quot;change password&quot; page? A &quot;forgot my password&quot; page? Do they have to provide secret questions and answers, in which case are there also pages for that? Repeat all this for your other bullets. You come up with some number, like 7 or 27 or 93 or whatever, of web pages. (This list will form part of your proposal and show the client you've already started to design the project.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have built web pages before using the tech you plan to use, you should have a rough feel for average effort per page. 1 hour, half a day, 1 day - it depends not only on your tech but on how much time you put into look and feel, validations, accessiblity - but you should know this number already. Multiply the two. Possibly add time to &quot;design database and write procs&quot; or &quot;design report layouts&quot; if it prints fancy stuff. Add a contingency of 10-25% depending on what you think the client will tolerate. Done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you haven't used the tech before to make web pages, decline this work. If for some reason you can't, then prepare to lose money because you will not be able to bill for your learning time and you won't be ready to make good estimates. As a desparation approach if you really feel you must take the job, offer to do a &quot;feasibility study&quot; in which you will design the project and estimate a fixed-bid price to implement your design. Either ask to be &quot;on the clock&quot; for the feasibility study, or offer a flat bid like 1 day or 1 week or 2 weeks.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-27T18:07:19.097" />
  <row Id="21919" PostTypeId="2" ParentId="21911" CreationDate="2010-11-27T18:15:33.693" Score="1" ViewCount="" Body="&lt;p&gt;There are a couple of estimating systems out there, and they aren't particularly new.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Function Points&lt;/strong&gt;&lt;br&gt;&#xA;The idea of &quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Function_point&quot; rel=&quot;nofollow&quot;&gt;function points&lt;/a&gt;&quot; is basically all programs have the same 5 features: outputs, inquiries, inputs, internal files, and external interfaces. You have already used a &quot;user registration&quot; scheme, so you have a good idea how one of those looks. As for the &quot;recurring payment system&quot; this is going to be more complicated and you'll probably want to look into an existing API (many folks go with PayPal until paypal screws them, so have a &quot;Plan B&quot; in mind when you go that route).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a number of &quot;for money&quot; function point tools, but one free one is &lt;a href=&quot;http://www.tsaquality.com/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;COCOMO&lt;/strong&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://csse.usc.edu/csse/research/COCOMOII/cocomo_main.html&quot; rel=&quot;nofollow&quot;&gt;COnstructive COst MOdel&lt;/a&gt; uses historical data for estimating, but I guess you lack historical data to figure out how much time and effort this project will entail. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Weasel words: &lt;a href=&quot;http://en.wikipedia.org/wiki/COCOMO&quot; rel=&quot;nofollow&quot;&gt;COCOMO&lt;/a&gt; is not related to the city in Indiana named &lt;a href=&quot;http://en.wikipedia.org/wiki/Kokomo,_Indiana&quot; rel=&quot;nofollow&quot;&gt;Kokomo&lt;/a&gt;. When the Beach Boys were doing commercials for Delco Electronics (a division of GM now spun off and called Delphi Electronics), they said they liked the name of the town so much they wanted to put it into a song. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;These estimating methods need historical data, which most developers won't collect by themselves. One method to do so, for a sole practitioner would be &lt;a href=&quot;http://en.wikipedia.org/wiki/Personal_Software_Process&quot; rel=&quot;nofollow&quot;&gt;PSP&lt;/a&gt;. While that won't help you to put out this particular fire, it will help with your future estimating. Part of the reason that estimating is so hard for people is that they don't keep track of their estimations (thus can't tell where they went wrong, or need to adjust in future projects). And another significant part of why estimating is so hard is that folks have been badly burned by &lt;a href=&quot;http://www.thomsettinternational.com/main/articles/hot/games.htm&quot; rel=&quot;nofollow&quot;&gt;mismanagers playing political games with the developers&lt;/a&gt;. Off the cuff estimations are always horribly wrong with the sole exceptions of &quot;we did that one before and it took exactly X to complete.&quot; &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-27T18:15:33.693" />
  <row Id="21920" PostTypeId="2" ParentId="21802" CreationDate="2010-11-27T18:15:42.947" Score="1" ViewCount="" Body="&lt;p&gt;I thought we would have more usual answers here?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Getters and setters are in general extremely OOP (anyone saying anything else are wrong, simple as that).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Though you need to remember to not over engineer, never make an getter or setter that isn't needed. Any information that you aren't going to use by another class you shouldn't have any getter or setter for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Though, the reason why you don't make fields public and instead have getters and setters are mostly:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;It's not possible to make proper tests by using fields. Getters/setters are much better in that regard.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It's impossible to properly use fields in a real time programming setting. Synchronized getters/setters is the way to go.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The interface topic (already explained so I won't).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It's easier to use when properly reusing the system.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It's much harder to know which classes that's using your class and what will break if you change a field than a getter/setter.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Therefor the only time you use a public field instead of an getter/setter is when you don't make an official project but instead just doing it for fun and can't bother with the getter/setters.&lt;/p&gt;&#xA;" OwnerUserId="4317" LastActivityDate="2010-11-27T18:15:42.947" CommentCount="3" />
  <row Id="21922" PostTypeId="2" ParentId="21911" CreationDate="2010-11-27T18:33:13.553" Score="7" ViewCount="" Body="&lt;p&gt;Offer to do the analysis and design in 2 weeks for a fixed price (with obligations on their part to communicate and review in a timely manner); they can take the output from that and bid it to other vendors if they like, but giving them a number based on three bullet points will either be massive sticker shock to them, or serious underpayment for you.&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-27T19:28:05.267" LastActivityDate="2010-11-27T19:28:05.267" />
  <row Id="21924" PostTypeId="2" ParentId="21907" CreationDate="2010-11-27T18:36:14.107" Score="1" ViewCount="" Body="&lt;p&gt;I think that &quot;Open Source&quot;, as defined by OSI, and &quot;Free Software&quot;, as defined by FSF, are very much the same thing. Maybe a clever lawyer could craft a license that is just one of those, but every real-life license is either both or none.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-27T18:36:14.107" CommentCount="1" />
  <row Id="21925" PostTypeId="2" ParentId="21911" CreationDate="2010-11-27T18:39:59.827" Score="1" ViewCount="" Body="&lt;p&gt;Chances are that your client has seen a similar app at a competitor's website, so ask him to point you to that website (if I'm right); then examine said webapp and estimate the time to build something similar.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-27T18:39:59.827" />
  <row Id="21926" PostTypeId="1" AcceptedAnswerId="21927" CreationDate="2010-11-27T18:40:12.870" Score="21" ViewCount="692" Body="&lt;p&gt;The stereotypical view of a programmer can't do graphics very well, from what I've read and seen. However, I love programming (preferably OOP, PHP, C++, Objective-C) and can't deny the fact I have a unique taste in web design and others have said I am doing well at it (CSS). I thought to myself &quot;Hey, wait, I'm a programmer - how can I design well?&quot;. Question is: is it possible to be good at programming and designing? Does anyone here feel the same?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the record: actual images I have created have been called programmer art several times before by friends&lt;/p&gt;&#xA;" OwnerUserId="8682" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-12-22T00:57:59.307" LastActivityDate="2010-12-22T00:57:59.307" Title="Is it possible to be good at both programming and graphic design?" Tags="&lt;design&gt;&lt;stereotypes&gt;" AnswerCount="15" CommentCount="5" FavoriteCount="6" />
  <row Id="21927" PostTypeId="2" ParentId="21926" CreationDate="2010-11-27T18:45:08.033" Score="22" ViewCount="" Body="&lt;p&gt;Well, why not?  Lots of people have multiple talents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the amount of time that you devote to a particular skill does make a difference.  Spending more time one one skill means you have to spend less time on another, and spending less time means being less competent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For my part, I have spent the vast majority of my time on coding, not design.  As such, I am a pretty good programmer, but have stick-figure design skills (although I do believe I know good design when I see it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good design means more than just looking pretty; it also means making an application that is intuitive and easy to use.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-27T18:45:08.033" CommentCount="5" />
  <row Id="21928" PostTypeId="2" ParentId="21926" CreationDate="2010-11-27T18:56:56.920" Score="2" ViewCount="" Body="&lt;p&gt;You can be good at anything you wish.  It just takes enough practice.  But we're talking practice on the level of thousands of hours, so it takes some dedication.&lt;/p&gt;&#xA;" OwnerUserId="8681" LastActivityDate="2010-11-27T18:56:56.920" CommentCount="6" />
  <row Id="21929" PostTypeId="2" ParentId="21926" CreationDate="2010-11-27T19:01:02.017" Score="12" ViewCount="" Body="&lt;p&gt;Yes. It is possible. Don't listen to anyone who says it's not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I myself started with system programming then did some applied programming. All I did before was programming algorithms, designing data structures, designing database models and all the usual stuff. I thought I was a programmer with all the usual limitations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I went programming for the web. I guess it only natural that the graphical thing found me. I got fascinated by a new realm and soon afterward discovered a designer gene in me. Now I'm more interested in design than in code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Know this. If you possess &lt;em&gt;la fibre du design&lt;/em&gt;, you need to nurture it, let it grow and blossom. Try things out, experiment, let it develop into whatever it is meant to be with you.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-11-27T19:01:02.017" CommentCount="1" />
  <row Id="21930" PostTypeId="2" ParentId="21907" CreationDate="2010-11-27T19:01:26.257" Score="3" ViewCount="" Body="&lt;p&gt;The flagship Free Software Foundation license is the &lt;strong&gt;GNU GPL&lt;/strong&gt; (&quot;GPL&quot;) software license.  It is the vehicle by which the Free Software Foundation describes and enforces it's open-source philosophy.  Any reasonable discussion of the term &quot;Free Software&quot; must also include a discussion about the GPL and it's particular terms and features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The GPL (and licenses that follow the FSF philosophy) have a &quot;reciprocal&quot; clause; if you put software under the GPL, all other software that you link to it and redistribute &lt;em&gt;must also be licensed under the GPL and its terms.&lt;/em&gt;  Once GPL'd, software cannot be &quot;un-GPL'd.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many open source licenses do not require this provision.  You can take open source programs licensed under a &quot;non-GPL-like&quot; license and &quot;close-source&quot; them.  This is the only significant difference between &quot;Free Software&quot; (described by the GPL license &quot;reciprocal&quot; provision) and &quot;Open Source&quot; software licensed under non-reciprocal terms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The practical consequence of this is that, generally speaking, open source code licensed under the GPL (and similar licenses) cannot be used in commercial (closed source) applications, because such licensing would require the commercial application to open and distribute its own source code.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-27T21:50:37.807" LastActivityDate="2010-11-27T21:50:37.807" CommunityOwnedDate="2010-11-28T00:14:35.763" CommentCount="18" />
  <row Id="21931" PostTypeId="2" ParentId="21926" CreationDate="2010-11-27T19:01:32.437" Score="2" ViewCount="" Body="&lt;p&gt;Sure you can be good at both.  Prior to being a programmer I was an Architect, a building Architect.  I've designed plenty of great, professional looking web sites (as described by clients, not techy people).  Now while this sites looked great, I'm by no means as skilled at graphic design as someone who does it full time, nor do I desire to be...&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-11-27T19:01:32.437" />
  <row Id="21932" PostTypeId="2" ParentId="21926" CreationDate="2010-11-27T19:05:42.417" Score="8" ViewCount="" Body="&lt;p&gt;Yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm actually good at programming and at graphic design. I program since I was 10 and design since I was 16 (now I'm 31). I always liked both fields, and practiced and learned both. But I was able to raise to a professional level only programming. But my graphic skills this helped me a lot also in GUI design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know a lot of programmers that are stuck with the idea that a programmer can't do design. So they just skip that part. When they had to prototype a GUI or sketch some graphic, they do that with such a bad attitude, that the results are actually horrible. But isn't programming itself a creative work?&lt;/p&gt;&#xA;" OwnerUserId="11" LastActivityDate="2010-11-27T19:05:42.417" CommentCount="1" />
  <row Id="21933" PostTypeId="2" ParentId="21791" CreationDate="2010-11-27T19:07:57.190" Score="6" ViewCount="" Body="&lt;p&gt;SQLite. &lt;a href=&quot;http://www.sqlite.org/testing.html&quot; rel=&quot;nofollow&quot;&gt;All their code is very, very heavily tested.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1411" LastActivityDate="2010-11-27T19:07:57.190" CommentCount="3" />
  <row Id="21934" PostTypeId="2" ParentId="12807" CreationDate="2010-11-27T19:09:46.303" Score="1" ViewCount="" Body="&lt;p&gt;The young know the rules, but the old know the exceptions ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In latest &lt;code&gt;C#&lt;/code&gt;, if you are dealing with a &lt;code&gt;null-able bool&lt;/code&gt;, then you have to:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;bool? x = null;&#xA;bool? y = true;&#xA;bool? z = false;&#xA;if (x == true || y == true || z == true) {&#xA;    // That was the only way that is reasonably readable that I know of&#xA;    // to accomplish this expression.&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If tristate is not a problem, then there usually should not be a reason to compare something to &lt;code&gt;true&lt;/code&gt;/&lt;code&gt;True&lt;/code&gt;. However, in &lt;code&gt;Python&lt;/code&gt; and several other languages such as &lt;code&gt;C/C++&lt;/code&gt; you can perform an &lt;code&gt;if&lt;/code&gt; on a non-bool expression. These languages have unique rules for interpreting integers, pointers, lists, etc. as either true or false. Sometime you do not want that. For example, in this Python snippet:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;x = True&#xA;y = 'abcdef'&#xA;z1 = x and y&#xA;z2 = (x == True) and (y == True)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Here &lt;code&gt;z&lt;/code&gt; should be &lt;code&gt;True&lt;/code&gt;, but &lt;code&gt;z2&lt;/code&gt; should be &lt;code&gt;False&lt;/code&gt;. Now, a &lt;code&gt;Clojure&lt;/code&gt; language approaches this in yet another way - there &lt;code&gt;and&lt;/code&gt; function does not necessarily evaluate to a &lt;code&gt;bool&lt;/code&gt;, but the &lt;code&gt;if&lt;/code&gt; can handle that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless of the language, any time you find yourself comparing something to &lt;code&gt;True&lt;/code&gt; or &lt;code&gt;False&lt;/code&gt;, it is probably worth commenting.&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-11-27T19:09:46.303" CommunityOwnedDate="2010-11-27T19:09:46.303" CommentCount="1" />
  <row Id="21935" PostTypeId="2" ParentId="21911" CreationDate="2010-11-27T19:23:50.060" Score="8" ViewCount="" Body="&lt;p&gt;Here is what I usually do to limit problems:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Define the information yourself&lt;/strong&gt;, by describing what you are going to do in details.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Bid on that, and only that.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Refer to that document in your official purchase order form you will ask your customer to &lt;strong&gt;sign&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an altenative, I suggest you to sell your customer with iterations instead of fixed features, with the flexibility to stop or continue development at the end of each iteration. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't know how to estimate your own document, try to do some collective estimation using &lt;a href=&quot;http://www.agilehardware.com/pages/Planning-Poker.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;planning poker&lt;/strong&gt;&lt;/a&gt;. You can also split each functionnality into tasks and estimate each. &lt;strong&gt;Sum and multiplicate the result&lt;/strong&gt; by &lt;strong&gt;two&lt;/strong&gt; if you are pretty confident, or &lt;strong&gt;three&lt;/strong&gt; if you are not sure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you not confortable with your estimations, it's a pretty good indication that you are not experienced enough to accept the job in a fixed price scheme.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-27T19:42:30.513" LastActivityDate="2010-11-27T19:42:30.513" CommentCount="3" />
  <row Id="21936" PostTypeId="2" ParentId="21911" CreationDate="2010-11-27T19:35:12.780" Score="3" ViewCount="" Body="&lt;p&gt;You can't.  Tell the customer it is similar to building a bridge or a house, and require the same amount of preparation to give an accurate estimate.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-27T19:35:12.780" />
  <row Id="21937" PostTypeId="1" AcceptedAnswerId="21966" CreationDate="2010-11-27T19:51:09.997" Score="6" ViewCount="316" Body="&lt;p&gt;I have almost always found some &lt;a href=&quot;http://en.wikipedia.org/wiki/Mobbing&quot; rel=&quot;nofollow&quot;&gt;mobbing&lt;/a&gt; (aka bullying) in every job I have done. However because I have a general anxiety disorder, I may not be being fully objective in my interpretation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is that when I look back on some pressure situations, I cannot really decide if they were mobbing or not. How can I separate them? At what point has the line between pressure and mobbing been crossed? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This question is aimed at IT Sector and Software Developers.&lt;/p&gt;&#xA;" OwnerUserId="3664" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-27T21:55:40.770" LastActivityDate="2010-11-29T23:25:10.660" ClosedDate="2010-11-28T15:59:34.653" Title="How do you separate job pressure and mobbing (bullying) ?" Tags="&lt;career&gt;&lt;bullying&gt;" AnswerCount="3" CommentCount="18" FavoriteCount="2" />
  <row Id="21938" PostTypeId="2" ParentId="21467" CreationDate="2010-11-27T19:58:38.923" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;But is there some experience out there of such an approach, of changing the &quot;confirmation paradigm&quot; on a platform where it's so prevalent?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Introducing a total change of paradigm in an established environment and for just a routine operation would stall a great number of users.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Did it leave users (especially the non-technical ones) confused, frustrated, scared, or happy?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If the change does not address a known problem, but just introduces something different &quot;to try it out&quot;, then this change will likely invoke all of the mentioned emotions except for happiness.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;For me this sort of dialogs is one thing that I strongly dislike. Why? Because it's not immediately clear how it works. You have to &lt;em&gt;learn and adopt&lt;/em&gt; this way of thinking. Meaning it's not good for inexperienced users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look at the meaning of the word &quot;dialog&quot;. It's the two-way communication between the machine and the user in this case. The natural way would be:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;U: Change the setting&#xA;M: I changed it (text message or something)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;U: Change the setting&#xA;U: Click the save button&#xA;M: Indicates reaction (message, dialog disappearance, page refresh)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;How the Mac dialog spins off:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;U: Change the setting&#xA;M: ..... (silence)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The user is perplexed. Did it work or not? Unknown. The user checks the things out.&#xA;Dialog didn't happen.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-11-27T19:58:38.923" />
  <row Id="21939" PostTypeId="2" ParentId="21937" CreationDate="2010-11-27T20:06:14.680" Score="1" ViewCount="" Body="&lt;p&gt;The best way is to try to look at the long-term effect the actions of others will produce.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If those are just individual situations involving different people, then it may just be pressure, common stress, the sociocultural style of the group that is not compatible with yours etc. Sometimes those critics or whatever you're getting may be justified, sometimes not. But still those are singular non-repetetive with no obvious grand scheme besides the scene.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If however you see that it's the same people who're bullying you and it seems like a general course of action to make you feel uncomfortable, with the reason or not, then it may indicate mobbing. Also think if there was some kind of personal conflict with involved individuals some time prior to this development. If so that could be one more indicator of mobbing.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-11-27T20:06:14.680" />
  <row Id="21940" PostTypeId="2" ParentId="21937" CreationDate="2010-11-27T20:06:43.177" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Any behavior that cause pain, shame, or unusual stress to someone.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can safely make fun of me with awful sexual related jokes. I'll laugh with you as soon as I know it is friendly. But it will make most people unconfortable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You said you have anxiety disorder. If it's a disorder it means that you current situation should not make you anxious. Maybe your perception of mobbing is the same? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have doubts, talk with your immediate supervisor. If necessary, talk to your union or any external person in position to help. This include therapists. &lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-27T20:44:32.660" LastActivityDate="2010-11-27T20:44:32.660" CommentCount="3" />
  <row Id="21941" PostTypeId="2" ParentId="21911" CreationDate="2010-11-27T20:08:05.607" Score="2" ViewCount="" Body="&lt;p&gt;Welcome to the real world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would advise your customer that you use a daily rate of £x per day to calculate your prices, and could produce something that met that specification in a few hours by reconfiguring Outlook - but that you are not confident that its what your customer is actually after. Suggest that you meet up and spend around an hour going through the details.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your customer is not prepared to put the time in to actually define what their needs are when they are looking for an implementer, its only going to deteriorate as the project progresses.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-27T20:08:05.607" />
  <row Id="21942" PostTypeId="2" ParentId="21926" CreationDate="2010-11-27T20:19:44.023" Score="0" ViewCount="" Body="&lt;p&gt;Its more like Jack of all trades vs Master of one. I do both quite well but its tough to be an expert/up to date in both. Most of the times one is primary and the other is secondary. &lt;/p&gt;&#xA;" OwnerUserId="1260" LastActivityDate="2010-11-27T20:19:44.023" />
  <row Id="21943" PostTypeId="1" AcceptedAnswerId="21954" CreationDate="2010-11-27T20:22:00.510" Score="6" ViewCount="468" Body="&lt;p&gt;We're all familiar with the Java package name convention of turning the domain name around. I.e. &lt;code&gt;www.evilcorp.com&lt;/code&gt; would, by convention, chose to have their java packages &lt;code&gt;com.evilcorp.stuff&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Increasingly I'm getting fed up with this. As a commercial programmer, I encounter time and again that the software package name is completely irrelevant due to some rebrand, acquisition or similar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the opensource world there's less name changes so there it makes sense. However it seems to me the shelf life of many pieces of (commercial/internal) software are much longer than that of the organisation making them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is often made worse by software projects taking the marketing department's lead to use the name &lt;em&gt;du jour&lt;/em&gt; they use refer to a certain project. A name that will, without fail, change 3 months down the line to make the emperor's new clothes feel fresh and new.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because of this, I've mostly stopped using the reverse domain as package name. Granted, if this is done on a large scale, there's risk of name collisions, but surely this is mitigated by either using &quot;unique&quot; software names, avoiding generic words, or use the reverse domain for projects intended to be sold/released as libraries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other thoughts?&lt;/p&gt;&#xA;" OwnerUserId="8688" LastActivityDate="2010-11-28T10:48:03.870" Title="Is the Java package name convention flawed?" Tags="&lt;java&gt;&lt;naming-conventions&gt;&lt;naming&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="1" />
  <row Id="21944" PostTypeId="2" ParentId="348" CreationDate="2010-11-27T20:28:15.717" Score="2" ViewCount="" Body="&lt;p&gt;There are awesome technologies today that make it easy to act as a team without being seated close to each other. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;IRC, Jabber or similar chat-type software makes it really easy to keep everyone in the team aware of each other, what they're doing, and feeling free to discuss issues immediately. I use IRC with freenode's groups often and it's like having one big group of developers at hand, acting like a giant collective brain. Apple's got a nice chat client build into Mac OS that also supports video conferencing, especially effective with their laptops.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imagine how it would be if the company had their own internal chat server, with groups for departments, projects, and work-related interest groups. A developer could ask a question where it would be seen across the company, so another developer anywhere else could see it and answer. The office walls disappear, communication skyrockets and best-practices and code sharing can happen all on their own without someone wielding a big stick.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of our load-test engineers works remotely about 1/3 of the year, sometimes from his home which is about 30 miles from our office, other times from out of state. He is as effective in the office as he is outside it because he keeps his chat software running, and calls in for our conference calls. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My coworkers on my team sit down the hall so I can't see or hear them. I don't know when they are in their cubes so I send them a chat message, and they respond as soon as possible. I do team programming with one of our engineers at another site. The same thing occurs; We ping each other regularly with questions and/or inane thoughts, and if we need to pick up the pace we'll share a screen and get on the phone. I can't tell if he's in the office or at home, and it doesn't matter. We work the same either way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our QA department is split between two different cities in different states, our engineers are spread across our city at about four different locations, but it's difficult to tell because we use our phones and chat regularly. We're all working remotely from each other in reality, so what's the difference? The difference is the corporate mindset.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a lot of big advantages to working remotely, and mostly it takes a change in mindset for the employer to try and find out that employees respond positively to it. &lt;/p&gt;&#xA;" OwnerUserId="4139" LastEditorUserId="4139" LastEditorDisplayName="" LastEditDate="2010-11-27T20:41:50.757" LastActivityDate="2010-11-27T20:41:50.757" />
  <row Id="21945" PostTypeId="2" ParentId="21943" CreationDate="2010-11-27T20:29:07.023" Score="6" ViewCount="" Body="&lt;p&gt;You are looking at the solution to a different problem, namely how do we avoid that programmer X and programmer Y step on each others toes by putting files in the same package.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;just reverse your domain name&quot; solve this in an elegant way, as you then are pretty certain that if X and Y are unrelated they will not pick the same package name space.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-27T20:29:07.023" />
  <row Id="21946" PostTypeId="2" ParentId="20866" CreationDate="2010-11-27T20:31:14.620" Score="3" ViewCount="" Body="&lt;p&gt;True story.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many years ago, at General Dynamics / Fort Worth Division, a project was in deep trouble.  The key engineer on the project had scheduled vacation long before the crisis developed, and the planned vacation date was coming up.  His manager wanted him to postpone the vacation.  The manager was smart, and went up the chain of command to make certain that everyone up the line was on-board.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;His first stop was with Gordon England, Director of Avionics.  (Gordon went on to become President and General Manager of Fort Worth Division, and, later, Secretary of the Navy, among other roles.)  He explained the situation, made his case, and asked for permission.  Gordon looked him straight in the eyes and said &quot;What would you do if he was in the hospital?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that one question, no manager at GD/FW &lt;em&gt;EVER&lt;/em&gt; again broached the subject of postponing vacations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take a real vacation.  Take at least a week, preferably two weeks.  Go out of the country, and STAY out.  Have fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Explain, when your bosses scream, that their choice is between vacation now or hospitalization eventually, between losing you temporarily or losing you permanently.  You are not going to quit, you ARE going on vacation.  If they want to fire you, cool, their privilege, you're still going on vacation, as of such-and-such date.  Their only decision is whether you will be coming back afterwards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Worst case, they fire you.  You will win the unemployment compensation fight, when it comes out that they fired you because you took part (not all) of your accrued vacation time.  Even if you manage to lose that fight, you are still ahead of the game: the odds of your next job being THAT bad are really slim, unless you are subconsciously selecting for Jobs From Hell.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-11-27T20:31:14.620" CommunityOwnedDate="2011-01-19T15:33:20.557" CommentCount="5" />
  <row Id="21947" PostTypeId="1" AcceptedAnswerId="21969" CreationDate="2010-11-27T20:31:51.103" Score="5" ViewCount="317" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/885/is-it-worth-it-for-programmers-to-go-to-graduate-school&quot;&gt;Is it worth it for programmers to go to graduate school?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Depending in your own scenario whether you are working in a company as a programmer or you are a freelance developer, do you think degrees such as masters and PhD will enhance your  business?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And when will you think to take a master or PhD degree? &lt;/p&gt;&#xA;" OwnerUserId="26782" LastActivityDate="2010-11-28T05:06:43.233" ClosedDate="2010-11-29T06:05:24.320" Title="Do you think masters or PhD degrees can enhance your business in programming?" Tags="&lt;programming&gt;" AnswerCount="6" CommentCount="0" FavoriteCount="2" />
  <row Id="21948" PostTypeId="2" ParentId="21947" CreationDate="2010-11-27T20:33:18.830" Score="4" ViewCount="" Body="&lt;p&gt;A masters, yes.  A PhD is preparing for a career in academics, so not necessarily.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-27T20:33:18.830" CommentCount="4" />
  <row Id="21949" PostTypeId="2" ParentId="21907" CreationDate="2010-11-27T20:39:23.780" Score="3" ViewCount="" Body="&lt;p&gt;According to Wikipedia, any software licensed under the &lt;a href=&quot;http://en.wikipedia.org/wiki/NASA_Open_Source_Agreement&quot; rel=&quot;nofollow&quot;&gt;NASA Open Source Agreement&lt;/a&gt; is open source, but not free, so that would be one example.&lt;/p&gt;&#xA;" OwnerUserId="6883" LastActivityDate="2010-11-27T20:39:23.780" CommentCount="7" />
  <row Id="21950" PostTypeId="1" AcceptedAnswerId="21956" CreationDate="2010-11-27T20:43:31.873" Score="2" ViewCount="159" Body="&lt;p&gt;The last week I saw &lt;a href=&quot;http://stackoverflow.com/q/4293625/9232&quot;&gt;at&lt;/a&gt; &lt;a href=&quot;http://stackoverflow.com/q/4293446/9232&quot;&gt;least&lt;/a&gt; &lt;a href=&quot;http://stackoverflow.com/q/4279647/9232&quot;&gt;three&lt;/a&gt; questions where people were confused about the differences between &lt;code&gt;char *&lt;/code&gt; and &lt;code&gt;std::string&lt;/code&gt; or made some related mistakes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong, I don't have a problem with this, I just don't get the exact reason for this. Maybe it was just a coincidence.&lt;/p&gt;&#xA;" OwnerUserId="8454" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2010-11-28T00:47:16.907" LastActivityDate="2010-11-28T00:47:16.907" Title="Why do people confuse C-type strings and STL strings" Tags="&lt;programming-languages&gt;&lt;c++&gt;" AnswerCount="2" CommentCount="3" />
  <row Id="21951" PostTypeId="2" ParentId="21947" CreationDate="2010-11-27T20:51:15.500" Score="1" ViewCount="" Body="&lt;p&gt;Master is recommended. It's become sort of a standard these days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PhD for an employee may only be needed if you apply for a research division of some big company. Otherwise it only has a value for an academia world. It's normally pursued by people interested in academic career or just not interested in programming business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also be warned that some employers cross off PhDs intentionally. For some they're too expensive, the others think of them as of folks unsuitable for practical programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However having a PhD remark next to the name of a business owner usually adds weight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When take it? Before you go programming for money full time. After that you will never find time. And even if you find, a gap in your CV may put off some employers. As a matter of fact, I went for a second degree while I was working, so there is a 2-3 years gap in my resume. It doesn't really score me down, but I clearly feel the years would have been better spent making more programming experience out of them.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-11-27T23:57:50.243" LastActivityDate="2010-11-27T23:57:50.243" CommentCount="1" />
  <row Id="21952" PostTypeId="2" ParentId="21943" CreationDate="2010-11-27T20:55:20.527" Score="2" ViewCount="" Body="&lt;p&gt;The reverse domain name was used to avoid name collisions in case different organizations use the same class names in their libraries. It is a simple solution and off cource has some drawbacks (e.g. what about name collisions for classes in the same organization?).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are not obligated to use it, it is a convention not a do or die rule. For example, some Java programmers don't respect the &lt;a href=&quot;http://www.oracle.com/technetwork/java/codeconvtoc-136057.html&quot; rel=&quot;nofollow&quot;&gt;Java Code Conventions&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But consider the alternatives. How would you, for example, like two fully qualified class names for a LogFactory:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;a50e8400_e29b_41d4_a716_446655440000.LogFactory&#xA;f47ac10b_58cc_4372_a567_0e02b2c3d479.Logfactory&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;org.apache.commons.logging.LogFactory&#xA;com.evilcorp.logging.LogFactory&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So, in my thoughts, use whatever you like as long as it includes common sense and a consideration for the users of your library.&lt;/p&gt;&#xA;" OwnerUserId="7197" LastEditorUserId="7197" LastEditorDisplayName="" LastEditDate="2010-11-27T21:00:54.407" LastActivityDate="2010-11-27T21:00:54.407" />
  <row Id="21953" PostTypeId="2" ParentId="21950" CreationDate="2010-11-27T20:58:52.307" Score="8" ViewCount="" Body="&lt;p&gt;Because they're both commonly known as &quot;strings&quot; in a language that has no real string type.  It's very understandable that inexperienced coders would be confused by that...&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-11-27T20:58:52.307" CommentCount="1" />
  <row Id="21954" PostTypeId="2" ParentId="21943" CreationDate="2010-11-27T21:04:20.193" Score="5" ViewCount="" Body="&lt;p&gt;I'm going to quote the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms229026.aspx&quot; rel=&quot;nofollow&quot;&gt;advice Microsoft gives for namespaces&lt;/a&gt; (.NET's packages), which doesn't have the domain name convention. I think it's good advice for Java packages too, since I don't believe that a domain name represents a solid and stable identity.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The general format for a namespace name is as follows:&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;code&gt;&amp;lt;Company&amp;gt;.(&amp;lt;Product&amp;gt;|&amp;lt;Technology&amp;gt;)[.&amp;lt;Feature&amp;gt;][.&amp;lt;Subnamespace&amp;gt;]&lt;/code&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;For example, &lt;code&gt;Microsoft.WindowsMobile.DirectX&lt;/code&gt;. &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Do prefix namespace names with a company name to prevent namespaces from different companies from having the same name and prefix.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Do use a stable, version-independent product name at the second level of a namespace name.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Do not use organizational hierarchies as the basis for names in namespace hierarchies, because group names within corporations tend to be short-lived.&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;The namespace name is a long-lived and unchanging identifier. As organizations evolve, changes should not make the namespace name obsolete.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If even your company name is unstable, you might want to just start with the product name.&lt;/p&gt;&#xA;" OwnerUserId="135" LastActivityDate="2010-11-27T21:04:20.193" CommentCount="4" />
  <row Id="21955" PostTypeId="2" ParentId="21943" CreationDate="2010-11-27T21:06:45.113" Score="4" ViewCount="" Body="&lt;p&gt;The convention is not flawed. People are flawed, as you have nicely illustrated yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can think of 2 benefits:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It avoids collision between independent developers. A domain is unique. Two people can name two different project the same, but a domain has exactly one owner. &lt;/li&gt;&#xA;&lt;li&gt;It makes it easier to find the maintainer. If you inherit a code base, that uses some open source library, it better be in a package that helps you find it. By now it doesn't really matter, because you will most certainly be able to google it. But 10 years ago, this wasn't so evident.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-11-27T21:06:45.113" />
  <row Id="21956" PostTypeId="2" ParentId="21950" CreationDate="2010-11-27T21:07:50.240" Score="7" ViewCount="" Body="&lt;p&gt;Given that things like&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;std::string myString = &quot;Hello, world!&quot;;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;are perfectly valid, it seems rather obvious to me why there is confusion.&lt;/p&gt;&#xA;" OwnerUserId="6524" LastActivityDate="2010-11-27T21:07:50.240" />
  <row Id="21957" PostTypeId="2" ParentId="21947" CreationDate="2010-11-27T21:17:15.420" Score="1" ViewCount="" Body="&lt;p&gt;No, unless you work in a field where it is emphasized: university, science/medical, research/statistics, intellectual property law. Can't recall the last job posting where anything beyond a CS degree or equiv. was required.  &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-27T21:17:15.420" />
  <row Id="21958" PostTypeId="2" ParentId="21926" CreationDate="2010-11-27T21:29:19.443" Score="1" ViewCount="" Body="&lt;p&gt;An individual can excel at both, but typically you can get more production out of one programmer and one graphic designer than one person doing both (Assuming the two are talented enough). On the other hand, it may be easier to get one person to understand what the client really wants. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-27T21:29:19.443" />
  <row Id="21959" PostTypeId="2" ParentId="21911" CreationDate="2010-11-27T21:44:27.250" Score="2" ViewCount="" Body="&lt;p&gt;You're saying the client refuses to give you enough time for deeper requirements analysis. That by itself is a red flag. Maybe they've already gotten an estimate from someone else and don't like it, and think if they can just trick you into accepting this for a lowball price, they'll be able to force you to deliver.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's three ways I've seen to deal with this:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Do a gut estimate anyway, without deeper analysis&lt;/li&gt;&#xA;&lt;li&gt;Automatically estimating it as 150 man days, and pointing the client to solution 3 if that shocks them.&lt;/li&gt;&#xA;&lt;li&gt;Selling the client on an analysis project&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I cannot recommend solution 1. The risk that you end up committed to an impossible estimate is too big.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Solution 2 is still risky. 150 man days is big enough that if they bite usually afterwards you can define a scope that fits inside that estimate. But, depending on what your client means by conference room reservation, this could still not be enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifically on that topic, how well do you know the problem space? Have you thought about all of the aspects involved? &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Will the system have to integrate with outlook? &lt;/li&gt;&#xA;&lt;li&gt;Will it have to support catering and equipment (e.g. beamers)?&lt;/li&gt;&#xA;&lt;li&gt;Will it have to support tracking participants, with reception desk integration?&lt;/li&gt;&#xA;&lt;li&gt;Will it have to support automatic billing of booked rooms and related catering? What sort of pricing models will it have to allow for?&lt;/li&gt;&#xA;&lt;li&gt;Will you have to track room keys, with check-out / check-in?&lt;/li&gt;&#xA;&lt;li&gt;Will everyone be able to book anything, or do you need room-level security? &lt;/li&gt;&#xA;&lt;li&gt;...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've just spent a year redesigning the front-end of a mature conference room reservation system, and the design specs ended up filling several hundred pages. Do not underestimate the complexity of a competitive conference room reservation system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, you &lt;em&gt;can&lt;/em&gt; keep it simple. But if your client wants a system that's competitive with what's already out there, simple won't cut it. Unless this client agrees ahead of time on &lt;em&gt;exactly&lt;/em&gt; what it is that you will build, it's pretty much guaranteed you'll end up in rough negotiation once the time comes to deliver and get paid.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-11-27T21:44:27.250" />
  <row Id="21960" PostTypeId="2" ParentId="14295" CreationDate="2010-11-27T21:46:29.337" Score="2" ViewCount="" Body="&lt;p&gt;I'd say the only difference between a professional and a craftsman is &lt;strong&gt;caring with a little bit of passion mixed in&lt;/strong&gt;. There is no specific, observable practice that would classify one as a craftsman, but rather a collection of qualities:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A craftsman cares about the actual quality of his work, and not just the perceived quality.&lt;/li&gt;&#xA;&lt;li&gt;A craftsman has an interest in his craft that goes beyond getting the job done, and naturally gravitates towards his craft.&lt;/li&gt;&#xA;&lt;li&gt;A craftsman cares about his profession, aspiring to improve his &lt;em&gt;skills&lt;/em&gt; and not only advance his &lt;em&gt;career&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;A craftsman spends some amount of time outside of his paid working hours (even if it's a small amount of time) doing something with his craft, be it discussing, learning, or even thinking about it.&lt;/li&gt;&#xA;&lt;li&gt;A craftsman knows how little he actually knows, and is humbled by it.&lt;/li&gt;&#xA;&lt;li&gt;A craftsman is willing to teach those who are willing to learn, guide those who seek guidance, and seek those things himself when he needs them.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;A little bit of passion covers all of these without breaking a sweat.&lt;/p&gt;&#xA;" OwnerUserId="135" LastActivityDate="2010-11-27T21:46:29.337" />
  <row Id="21961" PostTypeId="2" ParentId="21403" CreationDate="2010-11-27T21:58:25.433" Score="0" ViewCount="" Body="&lt;p&gt;The complexity of large project can be wildly exacerbated by external political pressures. One department may have a very clear, focused idea of what they want in the new system, but then associated departments jump in with dozens of requests along the lines of &quot;Well, as long as you're doing that , why don't you do this little side task for us too?&quot; You might start by saying &quot;No, that's out of scope.&quot;, but then the political in-fighting among the deaprtments begins, and the budget for the project is threatened unless everybody gets their piece of the pie.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For years, our local police couldn't search for partial plates through the motor vehicle system, a feature that seems absurdly simple. I asked a friend what on earth was so hard about adding this feature, and they said that every time they proposed switching to a modern database, every other department in the state that had any interaction with the motor vehicle system wanted to get their portion of the system fixed too. The result was complete gird-lock in IT modernization. Finally the state put together enough capital to do a system wide modernization effort, which then floundered because it was so hideously complex.&lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-11-27T21:58:25.433" CommunityOwnedDate="2011-01-29T04:58:02.993" />
  <row Id="21962" PostTypeId="2" ParentId="15002" CreationDate="2010-11-27T21:59:48.333" Score="-1" ViewCount="" Body="&lt;p&gt;While not on Java, I've been wanting to make my own meta-programming for a while on .NET (&lt;code&gt;Irony&lt;/code&gt;&lt;sup&gt;(link 1)&lt;/sup&gt; is a cool thing to look at), I think of using the &lt;code&gt;M modelling language&lt;/code&gt;&lt;sup&gt;(link 2)&lt;/sup&gt; once I learn it too.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I'd post this as a comment, but thanks to &lt;em&gt;&lt;a href=&quot;http://i.imgur.com/AKPNf.png&quot; rel=&quot;nofollow&quot;&gt;this rant&lt;/a&gt;&lt;/em&gt; I can't, so I'll try and throw a 2¢ while I'm at it).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you think about it, a language is a tool to tell the computer what to do. Some languages are more specific than others, and let you express what you want in a much more concise way than others (for a particular subject). Others try to be broad and provide a consistent baseline from where to build upon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But these restricted, specific, and simplistic &quot;&lt;code&gt;Domain Specific Languages&lt;/code&gt;&lt;sup&gt;(link 3)&lt;/sup&gt;&quot; are great for the occasional cases where what you want &lt;strong&gt;&lt;em&gt;is specific&lt;/em&gt;&lt;/strong&gt;. In those cases, they save you a lot of typing and possible mistakes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, think about how much time you'd waste if you had to use an Object-Oriented &quot;SQL API&quot; for Java (and how verbose that would be) instead of using SQL queries that are so short and convey the message so clearly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd love if more domain-specific languages were in use. I don't like XAML much (altough it is better than how UIs are coded in Winforms), but I see it as a step in the good direction. I'd like to, in a middle-term future, design DSLs for certain common tasks I do frequently, such as a simplified HTML annotation language that outputs hacked-for-IE code without me having to do the same things over and over (or maybe I don't do this, but that's not the point).&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;&lt;strong&gt;tl;dr:&lt;/strong&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;I never used MPS&lt;/em&gt;, but I think if you're a Java guy by all means check it out, Java gets brains rusted after a while IMHO. How to learn it? Find something you'd like a language for (something repetitive and boring), and make a language for it! If it's useless, at least you'll have a new tool on the belt.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;LINKS&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;(here due to rep)&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;http://irony.codeplex.com/&lt;/code&gt;  &lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;http://en.wikipedia.org/wiki/Oslo_(Microsoft_project)#Characteristics_of_the_.22M.22_Modeling_Language&lt;/code&gt;  &lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;http://en.wikipedia.org/wiki/Domain-specific_language&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8239" LastActivityDate="2010-11-27T21:59:48.333" />
  <row Id="21963" PostTypeId="2" ParentId="21403" CreationDate="2010-11-27T22:00:47.453" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Failure to ship to actual users&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Big projects have a nasty tendency to get into &quot;infrastructure&quot; mode for years, and forget about building real end-user features and shipping them. By the time it ships, it's very expensive to change, and usually the biggest conceptual changes end up being asked after the first real beta testing occurs.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Failure to accurately estimate cost&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If projects seem like they will outgrow their return on investment, they get canceled.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Failure to control quality&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;With enough defects it is possible for forward momentum to fall to zero, or below. Without any progress at all, it's hard to argue for the continued existence.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-11-27T22:00:47.453" CommunityOwnedDate="2011-01-29T04:58:02.993" />
  <row Id="21964" PostTypeId="2" ParentId="21911" CreationDate="2010-11-27T22:07:07.863" Score="2" ViewCount="" Body="&lt;p&gt;Pick a random amount, double it, then tell the customer that number, plus or minus 200%.  That should get the point across.&lt;/p&gt;&#xA;" OwnerUserId="1931" LastActivityDate="2010-11-27T22:07:07.863" CommentCount="1" />
  <row Id="21965" PostTypeId="2" ParentId="8973" CreationDate="2010-11-27T22:10:52.907" Score="1" ViewCount="" Body="&lt;p&gt;Any programming language as long as I learnt it from the right instructor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My big mistake wasn't learning visual basic first. It was learning visual basic from one of those &quot;learn it in a week&quot; style books. It's not the language that caused my bad programming habits, it's the way that I learnt it. Afterwards I had to unlearn everything I thought I knew before I could really learn how to program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Syntax changes, but good concepts and habits last a lifetime.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-11-27T22:10:52.907" CommentCount="1" />
  <row Id="21966" PostTypeId="2" ParentId="21937" CreationDate="2010-11-27T22:13:29.140" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Mobbing (or bullying) is not acceptable in the workplace and there are laws to protect you in the UK and EU.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the UK, Australia and EU, &lt;a href=&quot;http://www.bullyonline.org/action/legal.htm&quot; rel=&quot;nofollow&quot;&gt;these laws apply&lt;/a&gt; (other countries have links from this page so it's worth looking over if you're affected).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It came as a total surprise to me to see that in the USA, &lt;a href=&quot;http://www.workplacebullying.org/faq.html#14&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;these laws do not exist&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Bullying is legal in every U.S.&#xA;  state. In Canada, it's legal in all&#xA;  provinces except Quebec and&#xA;  Saskatchewan and for employees of the&#xA;  federal government. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How to differentiate between banter and bullying&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you are after a method of &lt;em&gt;differentiating between pressure and mobbing&lt;/em&gt;, the &lt;a href=&quot;http://www.bullyonline.org/workbully/amibeing.htm&quot; rel=&quot;nofollow&quot;&gt;following quote from Bullying Online&lt;/a&gt; may assist you:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;constant nit-picking, fault-finding and criticism of a trivial nature - the triviality, regularity and frequency betray bullying; often there is a grain of truth (but only a grain) in the criticism to fool you into believing the criticism has validity, which it does not; often, the criticism is based on distortion, misrepresentation or fabrication&lt;/li&gt;&#xA;&lt;li&gt;simultaneous with the criticism, a constant refusal to acknowledge you and your contributions and achievements or to recognise your existence and value&lt;/li&gt;&#xA;&lt;li&gt;constant attempts to undermine you and your position, status, worth, value and potential&lt;/li&gt;&#xA;&lt;li&gt;where you are in a group (eg at work), being singled out and treated differently; for instance, everyone else can get away with murder but the moment you put a foot wrong - however trivial - action is taken against you&lt;/li&gt;&#xA;&lt;li&gt;being isolated and separated from colleagues, excluded from what's going on, marginalized, overruled, ignored, sidelined, frozen out, sent to Coventry&lt;/li&gt;&#xA;&lt;li&gt;being belittled, demeaned and patronised, especially in front of others&lt;/li&gt;&#xA;&lt;li&gt;being humiliated, shouted at and threatened, often in front of others&lt;/li&gt;&#xA;&lt;li&gt;being &lt;strong&gt;overloaded with work&lt;/strong&gt;, or having all your work taken away and replaced with either menial tasks (filing, photocopying, minute taking) or with no work at all&lt;/li&gt;&#xA;&lt;li&gt;finding that your work - and the credit for it - is stolen and plagiarised&lt;/li&gt;&#xA;&lt;li&gt;having your responsibility increased but your authority taken away&lt;/li&gt;&#xA;&lt;li&gt;having annual leave, sickness leave, and - especially - compassionate leave refused&lt;/li&gt;&#xA;&lt;li&gt;being &lt;strong&gt;denied training necessary for you to fulfil your duties&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;having &lt;strong&gt;unrealistic goals set, which change as you approach them&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;ditto deadlines which are changed at short notice - or no notice - and without you being informed until it's too late&lt;/li&gt;&#xA;&lt;li&gt;finding that everything you say and do is twisted, distorted and misrepresented&lt;/li&gt;&#xA;&lt;li&gt;being subjected to disciplinary procedures with verbal or written warnings imposed for trivial or fabricated reasons and without proper investigation&lt;/li&gt;&#xA;&lt;li&gt;being coerced into leaving through no fault of your own, constructive dismissal, early or ill-health retirement, etc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What you can do&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, as you can see from the above list, it's extremely difficult to prove mobbing/bullying. I'm no expert, but it would appear that you'd have to build up a diary of incidents with plenty of detail over a long period of time. Eventually, you'll have sufficient evidence to infer a trend and perhaps gain some kind of restitution. It'll be hard, though. Which is probably why the USA has no laws for it - it'll be a nightmare to prove to a courts satisfaction and how could it be enforced?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are in the USA and suspect that this applies to you, &lt;a href=&quot;http://www.workplacebullying.org/targets/starthere.html&quot; rel=&quot;nofollow&quot;&gt;you can get help here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Is this programming? Is it suitable for this forum?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it is (which is why I've answered it). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would treat mobbing/bullying in the same way as we treat those effects that lead us programmers to sleep deprivation. Both, in extremis, eventually lead their victims to mental health problems and the causes of both should not be acceptable practice in any place of work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've picked out some interesting points from the extensive list above which could easily be applied to a high-pressure IT work environment. If these are short-term spikes and are recognised as significant achievements with appropriate rewards, then it can actually contribute to team morale in a positive manner. If they form a trend with no end in sight, then that is a significant problem and must be dealt with.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-29T23:25:10.660" LastActivityDate="2010-11-29T23:25:10.660" CommentCount="12" />
  <row Id="21967" PostTypeId="2" ParentId="20866" CreationDate="2010-11-27T22:21:00.027" Score="1" ViewCount="" Body="&lt;p&gt;I don’t believe in an answer that say do this and do that and then you’ll be alright. You are at a collision course and that for sure. I think you will find the answer by yourself if you honestly answer the following question to yourself.&#xA;Most important is that you have to redefine some of your &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Value_theory&quot; rel=&quot;nofollow&quot;&gt;question of values&lt;/a&gt;&lt;/strong&gt; in your life. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What is important in your life?&lt;/li&gt;&#xA;&lt;li&gt;What do you want to accomplish in your life, is this path the right path?&lt;/li&gt;&#xA;&lt;li&gt;What is &lt;strong&gt;happiness&lt;/strong&gt; for you? Dose happiness comes with money? Is it therefore you keep having this job?&lt;/li&gt;&#xA;&lt;li&gt;To make you feel less burden, shouldn’t you decrease your expectation in life? &lt;/li&gt;&#xA;&lt;li&gt;Wouldn’t a job with less salary give you happiness?&lt;/li&gt;&#xA;&lt;li&gt;What if you can’t continue your work because of burnout? &lt;/li&gt;&#xA;&lt;li&gt;Wouldn’t a few year of burnout make a scar in your soul that no money or job could be worth it?&#xA;To be happy in life you may work at Mac Donald’s but hey you are happy. You may not have the best car but hey you don’t have any burden.  In the end no money if worth your health but hey that’s that your decision if you are willing to sell it.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;There is always a way out even if you find that there is no turning back. I’m referring to loan, car, life style that may be hard to change.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-11-27T22:21:00.027" CommunityOwnedDate="2011-01-19T15:33:20.557" CommentCount="1" />
  <row Id="21968" PostTypeId="2" ParentId="15536" CreationDate="2010-11-27T22:22:01.803" Score="1" ViewCount="" Body="&lt;p&gt;You don't need to custom build everything.&lt;br&gt;&#xA;Look to see if there's an off the shelf product that will do the same thing. (example, we build a time management system a few years ago when we could have just bought one.  Would have been cheaper in the long run.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your time can be used to code other things.&lt;/p&gt;&#xA;" OwnerUserId="7213" LastActivityDate="2010-11-27T22:22:01.803" />
  <row Id="21969" PostTypeId="2" ParentId="21947" CreationDate="2010-11-27T22:33:06.647" Score="7" ViewCount="" Body="&lt;p&gt;Checkout &lt;strong&gt;&lt;a href=&quot;http://matt.might.net/articles/phd-school-in-pictures/&quot; rel=&quot;nofollow&quot;&gt;The illustrated guide to a Ph.D.&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short a Ph.D. leads to specialization and there by limits your general knowledge. So yes you will be expert in your field but that comes with cost that you have less job opportunities since you are specialized in a small niche.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;It's better to know the big picture.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-11-27T22:33:06.647" CommentCount="4" />
  <row Id="21970" PostTypeId="1" AcceptedAnswerId="21972" CreationDate="2010-11-27T22:44:59.273" Score="12" ViewCount="430" Body="&lt;p&gt;There is a misconception in our field that after a certain age and experience you have to move to the next level of management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a software developer and like what I do and hope to do it as much as possible. I even quit one job because I was moving away from development and instead performing management duties. But I am also conscious that this might not be always possible, so I am not limiting my knowledge and I try to read PM books as much as time allows me to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a developer though, the most important knowledge I gained was by making mistakes and then learn from them. Books are excellent but emphasize on how to do things... well, &quot;by the book&quot; which most of the time means an ideal situation with just a handful of variables thrown in the mix.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am interested in books that also presents the wrong way of doing it and what results from that, situations in which the bad decision was made. I think true stories beat pure theory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, is there a book or something with some good information about the don'ts of IT Project Management?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: received a lot of good answers but can only accept one, so I'm going for the answer that people liked and voted the most (then try to read all of them if possible). Thanks again!&lt;/p&gt;&#xA;" OwnerUserId="7197" LastEditorUserId="7197" LastEditorDisplayName="" LastEditDate="2010-12-01T13:04:19.613" LastActivityDate="2010-12-01T13:04:19.613" Title="The don'ts of IT project management" Tags="&lt;career&gt;&lt;project-management&gt;&lt;knowledge&gt;" AnswerCount="8" FavoriteCount="4" />
  <row Id="21971" PostTypeId="2" ParentId="21926" CreationDate="2010-11-27T22:47:43.070" Score="1" ViewCount="" Body="&lt;p&gt;Yes, it is possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are programming and graphic extremes to each other?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am both an artist and programmer, I spent 5 years self-studying programming, 1 year at manga, 4 years at Web design and less than 1 year at optical illusions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people are talented at art, but decided to learn programming all the time and let talent guide his designs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem for learning both is not only time, but your brain may be re-wired to be optimized at art but not programming, please be aware of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is &quot;programmer art&quot;, but why there is no &quot;artist's program&quot;? That is the stereotype.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See also: &lt;a href=&quot;http://gamedev.stackexchange.com/search?q=programmer+art&quot;&gt;http://gamedev.stackexchange.com/search?q=programmer+art&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-11-27T22:47:43.070" />
  <row Id="21972" PostTypeId="2" ParentId="21970" CreationDate="2010-11-27T22:48:35.763" Score="19" ViewCount="" Body="&lt;p&gt;&quot;Mythical Man Month&quot; is a classic of IT Project Management, written by someone with true experience, Fred Brooks. He shares what he learned from his experience working on the IBM System 360.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may be familiar with &quot;Brook's Law&quot;: &quot;adding manpower to a late software project makes it later.&quot;&lt;/p&gt;&#xA;" OwnerUserId="4881" LastActivityDate="2010-11-27T22:48:35.763" CommentCount="4" />
  <row Id="21973" PostTypeId="2" ParentId="21926" CreationDate="2010-11-27T23:08:49.770" Score="0" ViewCount="" Body="&lt;p&gt;At work I work with WPF, I don't have a copy of Photoshop and I hate GIMP.. so what do I do when I need icons? I write them in XAML and use them in a VisualBrush. So not only can you do both and be good at both, you can do it at the same time!&lt;/p&gt;&#xA;" OwnerUserId="8692" LastActivityDate="2010-11-27T23:08:49.770" />
  <row Id="21974" PostTypeId="2" ParentId="21970" CreationDate="2010-11-27T23:14:15.770" Score="15" ViewCount="" Body="&lt;p&gt;Another great book of what not to do is &lt;em&gt;Peopleware&lt;/em&gt;, which constantly notes that a developers must have fewer distractions. For example, private offices with doors, no unnecessary meetings, not ringing telephones, etc.&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-11-27T23:14:15.770" CommentCount="2" />
  <row Id="21975" PostTypeId="2" ParentId="10087" CreationDate="2010-11-27T23:26:45.150" Score="1" ViewCount="" Body="&lt;p&gt;Upper management that sees a demo of one product and then say I want that.  Make it happen.&#xA;(even if this staff say that other products are better)&lt;/p&gt;&#xA;" OwnerUserId="7213" LastActivityDate="2010-11-27T23:26:45.150" CommunityOwnedDate="2010-11-27T23:26:45.150" />
  <row Id="21976" PostTypeId="2" ParentId="21970" CreationDate="2010-11-27T23:31:28.643" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/013143635X&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Death March&lt;/em&gt;&lt;/a&gt;, by Edward Yourdon&lt;/p&gt;&#xA;" OwnerUserId="1353" LastActivityDate="2010-11-27T23:31:28.643" CommentCount="1" />
  <row Id="21977" PostTypeId="1" AcceptedAnswerId="22058" CreationDate="2010-11-27T23:56:39.250" Score="6" ViewCount="457" Body="&lt;p&gt;Back in the &quot;good ol' days,&quot; when we would copy shareware onto floppies for friends, we also used a fair bit of assembly. There was a common practice of &quot;micro-optimization,&quot; where you would stare and stare at lines of assembly until you figured out a way to express it in one fewer instruction. There was even a saying, which was mathematically impossible, that &quot;&lt;em&gt;You can always remove one more instruction.&lt;/em&gt;&quot; Given that changing runtime performance by small constant factors isn't a major issue for (most) programming today, are programmers transferring these micro-optimization efforts elsewhere?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, &lt;strong&gt;Can a best-practice be taken to an extreme state where it's no longer adding anything of value?&lt;/strong&gt; And instead is wasting time?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example: Do programmers waste time &lt;em&gt;generalizing&lt;/em&gt; private methods that are only called from one place? Is time wasted reducing test case data? Are programmers (still) overly concerned about reducing lines of code?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are two great examples of what I'm looking for below: (1) Spending time finding the right variable names, even renaming everything; and (2) Removing even minor and tenuous code duplication.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Note that this is different from the question &quot;&lt;a href=&quot;http://programmers.stackexchange.com/questions/17788/what-do-you-optimize-for&quot;&gt;What do you optimize for?&lt;/a&gt;&quot;, because I'm asking what other programmers seem to maximize, with the stigma of these being &quot;micro&quot; optimizations, and thus not a productive use of time.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-11-28T01:21:31.313" LastActivityDate="2010-11-28T21:22:55.483" Title="What do programmers &quot;micro-optimize&quot; for today?" Tags="&lt;best-practices&gt;&lt;programming-practices&gt;" AnswerCount="13" CommentCount="11" FavoriteCount="2" />
  <row Id="21978" PostTypeId="2" ParentId="15585" CreationDate="2010-11-27T23:58:02.757" Score="0" ViewCount="" Body="&lt;p&gt;In JavaScript:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function quine(){&#xA;    return arguments.callee.toString();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Shorter version:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(function q(){return q.toString()}())&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Really short version:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;return this;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Really really short version:&lt;/p&gt;&#xA;" OwnerUserId="1461" LastEditorUserId="1461" LastEditorDisplayName="" LastEditDate="2010-12-07T02:49:34.777" LastActivityDate="2010-12-07T02:49:34.777" />
  <row Id="21979" PostTypeId="2" ParentId="21977" CreationDate="2010-11-28T00:05:18.977" Score="7" ViewCount="" Body="&lt;p&gt;I sometimes spend (waste?) time while choosing a good name for a variable or a method so that it is not only precisely descriptive but also has a good linguistic style.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It goes a little further when I attempt to put the entire works (a program) into the same linguistic style. Sometimes my opinion changes and I revise the book. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No that it takes that much time. It's rather rare. But I like to keep the good grammar in my programs.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-11-28T00:05:18.977" CommentCount="5" />
  <row Id="21980" PostTypeId="2" ParentId="21977" CreationDate="2010-11-28T00:12:11.347" Score="4" ViewCount="" Body="&lt;p&gt;I suppose I am concerned with LOCs too much. Not so much LOCs themselves, but rather number of statements and even more number of duplicate statements. I am allergic to duplicate code.&#xA;In general I love refactoring, but I suppose about 50% of what I do doesn't make the code signifficantly nicer.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-11-28T00:12:11.347" CommentCount="2" />
  <row Id="21981" PostTypeId="2" ParentId="21911" CreationDate="2010-11-28T00:22:43.290" Score="3" ViewCount="" Body="&lt;p&gt;There are some really great answers already. Here are a couple more remarks based on having made my living doing outsourced development like this for most of the last twenty years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Without an adequate, written, agreed-upon specification, doing fixed price contracts is a fast way to lose tons of money.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My wife and I had a custom software development firm. Around 1998, we were approached to do a  port. &quot;We don't really have a spec or even a feature list, we just need a Mac program with the same features as our Windows version.&quot; So we looked over the Windows version, proposed a price, dickered a bit, and agreed on a price. And then it turned out that not only did the liars have a feature list, but there were a ton of hidden features we hadn't noticed during our review that were very hard and time-consuming to implement. Our employees' salaries alone to complete that project cost us three times our revenue for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My experience has been that people who don't provide a spec, and aren't willing to pay you to write one, are either amateurs or trying to get something for nothing, and both kinds of clients are big trouble.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Don't write a specification and give it to the client for free.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's very tempting to do that so you can get agreement from the client and protect yourself - but I used to do that, and decided it's a mistake. One time I did that, I included information in the spec about which I had particular expertise. The prospective client switched to a cheaper development team; the info in the spec filled in the missing gaps in their knowledge - and the substantial work I'd put into the spec was in the toilet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I now consider specifications and design documents to not only be work products, but highly specialized ones for which I charge a much higher hourly rate than I do for simple programming. That way, if the client wants to put them out for bids by cheap code monkeys on eLance, no hard feelings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, in the last eight years, I've solved the problem very simply: I no longer do fixed-price projects and have an hourly rate floor I won't go below.. Since making that switch, I'm far happier, make way more money, and the skeevy clients go somewhere else.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-11-28T00:22:43.290" />
  <row Id="21982" PostTypeId="2" ParentId="21977" CreationDate="2010-11-28T00:32:51.067" Score="2" ViewCount="" Body="&lt;p&gt;When I was writing assembly language it made sense to nitpick over bytes and cycles, but that was a long time ago and compilers have come a long way since then. I wouldn't try to manually out-optimize one now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, when I switched to writing in C it was pretty easy to do a better job than the C compilers, but every year Borland or Microsoft or someone would release a new 'n improved one that kicked the previous one around the room. I started paying attention to the actual assembly code that the compiler was emitting and, danged if it wasn't writing some nice and tight code, unrolling loops, moving variables outside the loops, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now days I'm writing in a lot higher languages like Perl, Python and Ruby. I use some of the compiler tricks up front, like loop unrolling if it makes sense, moving static variables outside the loops, etc., but I don't worry about it nearly as much because CPUs are a weeeeee bit faster now. If an app seems to be dragging unexpectedly then I'll use a profiler and see what I can find, and then if something can be improved I'll start benchmarking various ways I can think of to do something faster, and then see how it scales up. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general I try to be smart on how I write code, based on years of experience.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-11-28T00:32:51.067" CommentCount="1" />
  <row Id="21983" PostTypeId="2" ParentId="11726" CreationDate="2010-11-28T00:33:04.150" Score="0" ViewCount="" Body="&lt;p&gt;Check out the very valuable book &lt;a href=&quot;http://www.whyprogramsfail.com/slides.php&quot; rel=&quot;nofollow&quot;&gt;Why Programs Fail: A Guide to Systematic Debugging&lt;/a&gt;, by Andreas Zeller. It will introduce you to many techniques, theories, and tools, some of which are on the cutting edge of research.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The slides for the book are available online, but I find the book itself is easier to read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The book will help get you started and make you think more scientifically about debugging, but it's no substitute for practice. You may need to be writing and debugging for 10 years before you see an order of magnitude improvement in your performance. I still remember having my jaw drop at Sun seeing senior developers, who have been programming for Unix for 30 years, find obscure multithreading or parallel bugs in minutes. Experience matters!&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-28T00:33:04.150" CommentCount="1" />
  <row Id="21984" PostTypeId="2" ParentId="21926" CreationDate="2010-11-28T00:33:36.777" Score="-1" ViewCount="" Body="&lt;p&gt;I personally believe you can have a talent for both but....&#xA;any person claiming they are actually good in both fields I would seriously question his or her professionalism. The amount of work and dedication it takes to be good at one field...it just doesnt add for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now if that person is claiming they're decent at both fields, sure I can believe that. But then again, why would you want to be just decent in programming and graphic design?&lt;/p&gt;&#xA;" OwnerUserId="7376" LastEditorUserId="7376" LastEditorDisplayName="" LastEditDate="2010-11-28T00:42:08.547" LastActivityDate="2010-11-28T00:42:08.547" CommentCount="3" />
  <row Id="21986" PostTypeId="2" ParentId="21403" CreationDate="2010-11-28T01:11:15.293" Score="0" ViewCount="" Body="&lt;p&gt;A factor that has been touched on but not addressed yet:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just about all the dramatic failures are contracts that were bid out.  What happens to a competent company in such a situation?  They make a realistic estimate and thus are almost certainly underbid by someone who made a bad estimate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the company can't estimate properly is it surprising they can't build a system properly also?&lt;/p&gt;&#xA;" OwnerUserId="5555" LastActivityDate="2010-11-28T01:11:15.293" CommunityOwnedDate="2011-01-29T04:58:02.993" CommentCount="1" />
  <row Id="21987" PostTypeId="1" AcceptedAnswerId="24231" CreationDate="2010-11-28T01:25:19.587" Score="5" ViewCount="629" Body="&lt;p&gt;I know there have been questions like &lt;a href=&quot;http://programmers.stackexchange.com/questions/219/what-is-your-favorite-editor-ide&quot;&gt;What is your favorite editor/IDE?&lt;/a&gt;, but none of them have answered this question: Why spend the money  on &lt;strong&gt;IntelliJ&lt;/strong&gt; when &lt;strong&gt;Eclipse&lt;/strong&gt; is free?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm personally a big IntelliJ fan, but I haven't really tried Eclipse. I've used IntelliJ for projects that were Java, JSP, HTML/CSS, Javascript, PHP, and Actionscript, and the latest version, 9, &lt;a href=&quot;http://programmers.stackexchange.com/questions/20950/what-justifies-the-use-of-an-standard-editor-versus-a-ide/21092#21092&quot;&gt;has been excellent&lt;/a&gt; for all of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many coworkers in the past have told me that they believe Eclipse to be &quot;pretty much the same&quot; as IntelliJ, but, to counter that point, I've occasionally sat behind a developer using Eclipse who's seemed  comparably inefficient (to accomplish roughly the same task), and I haven't experienced this with IntelliJ. They may be on par &lt;strong&gt;feature-by-feature&lt;/strong&gt; but features can be ruined by a poor user experience, and I wonder if it's possible that IntelliJ is easier to pick up and discover time-saving features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For users who are already familiar with Eclipse, on top of the real cost of IntelliJ, there is also the cost of time spent learning the new app. Eclipse gets a lot of users who simply don't want to spend $250 on an IDE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If IntelliJ really could help my team be more productive, how could I sell it to them? For those users who've tried both, I'd be very interested in specific pros or cons either way.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-11-28T06:32:31.707" LastActivityDate="2010-12-07T14:06:21.420" Title="How are IntelliJ and Eclipse different?" Tags="&lt;java&gt;&lt;ide&gt;&lt;eclipse&gt;&lt;intellij&gt;" AnswerCount="3" CommentCount="5" />
  <row Id="21988" PostTypeId="2" ParentId="21987" CreationDate="2010-11-28T01:33:27.770" Score="3" ViewCount="" Body="&lt;p&gt;You need to demonstrate vividly and without doubt that for the tasks you need to do on a daily basis, IntelliJ allows for a substantially amount of time and effort saved as opposed to Eclipse (and NetBeans).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This will require you to do some research to find out what that might be, and then construct a demonstration showing this to the people who can decide how to work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My suspicion is that you will find this a rather hard task to do, as Eclipse these days can do quite a bit, reasonably well.  If you find killer points, please share - I'm sure plenty want to know.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-28T01:33:27.770" CommentCount="10" />
  <row Id="21989" PostTypeId="2" ParentId="21926" CreationDate="2010-11-28T01:53:15.853" Score="0" ViewCount="" Body="&lt;p&gt;An area to look to for people who are both technically proficient and good at art is effects work and lighting/compositing in film and commercial visual effects. In a production pipeline, you can very easily find the full spectrum of software developers to Technical Directors to CG artists, all of whom are technically proficient, and have as well the ability to communicate visual ideas, with a sense for color, layout, or timing in use, depending on specialty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Particular areas that draw people good on both ends: effects TD's (particularly fluids, and cloth/hair), shading TD's, vfx supervisors.&lt;/p&gt;&#xA;" OwnerUserId="8698" LastActivityDate="2010-11-28T01:53:15.853" />
  <row Id="21990" PostTypeId="2" ParentId="21977" CreationDate="2010-11-28T02:01:40.123" Score="1" ViewCount="" Body="&lt;p&gt;In the old days when computers had clock times measured in microseconds, memory measured in kilobytes, and primitive compilers, micro-optimization made some sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The speed and size of current generation computers and the quality of current generation compilers mean that micro-optimization is usually a total waste of time.  The exceptions tend to be when you &lt;em&gt;absolutely have to&lt;/em&gt; get maximum performance out of some computationally intensive code ... or you are writing for an embedded system with extremely limited resources.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;but I'm looking for what programmers do to waste time, not to optimize runtime performance.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Twitter and Facebook spring to mind :-)&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-11-28T02:01:40.123" CommentCount="3" />
  <row Id="21991" PostTypeId="2" ParentId="21926" CreationDate="2010-11-28T02:10:44.197" Score="0" ViewCount="" Body="&lt;p&gt;Yes, C'est Moi. But my dual expertise is the result of inadvertence for the most part. I got side-tracked in high school and ended up going to art school for 4 years instead of a regular university. Then I painted portraits for a living until I decided that my I wanted my artistic side to be an avocation not a vocation, so I went back to school and studied engineering.&#xA;  I find it hard to imagine someone starting with the idea of being good at both design and programming.&lt;/p&gt;&#xA;" OwnerUserId="8699" LastActivityDate="2010-11-28T02:10:44.197" />
  <row Id="21992" PostTypeId="2" ParentId="21977" CreationDate="2010-11-28T02:14:19.360" Score="2" ViewCount="" Body="&lt;p&gt;A micro-optimization: improving single-threaded performance of things that are parallelizable or that can simply be improved with new hardware. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If something is slow on a computer from 10 years ago, a cheaper solution is probably to buy a newer, faster computer, rather than to waste programmer time optimizing.  A big focus of optimizations considered, though, should be finding a way to use the 8 cores you can get today, or the 64 you'll be able to get in a couple years, instead of agonizing about minutia like the extra cost of garbage collection.&lt;/p&gt;&#xA;" OwnerUserId="8467" LastActivityDate="2010-11-28T02:14:19.360" />
  <row Id="21993" PostTypeId="2" ParentId="21947" CreationDate="2010-11-28T02:21:26.433" Score="1" ViewCount="" Body="&lt;p&gt;Absolutely. People who think that PhDs lead to a more limited horizon are only correct in one aspect: there are always less higher paying jobs than lower paying jobs. People with PhDs (like me) almost never end up being researchers in their field, except some academics. They start off like that, but then are usually the 1st in line for promotions to management positions. I used to work at NASA, and I saw lots of people with Masters degrees passed over for promotion even though they should have gotten promoted by any measure except the measure of whose credentials are longer. I've seen this in industry also. Phd's degrees are just plain more impressive to most people.&lt;/p&gt;&#xA;" OwnerUserId="8699" LastActivityDate="2010-11-28T02:21:26.433" />
  <row Id="21994" PostTypeId="2" ParentId="21987" CreationDate="2010-11-28T02:34:58.103" Score="1" ViewCount="" Body="&lt;p&gt;I hear the difference with IntelliJ is that they are &lt;strong&gt;much more likely to fix and close bugs&lt;/strong&gt; that you submit. That could make a big difference if there is some Eclipse bug that is blocking you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, you cannot look at IDEs in isolation; &lt;strong&gt;you need to look at the ecosystem&lt;/strong&gt;. Here, I think Eclipse has an advantage (similar to Firefox's advantage over Chrome*): There are many more plug-ins available, and developers are much more likely to write an Eclipse plug-in than otherwise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[Tangent: *For Firefox I'm thinking of Zotero and HTTPS-Everywhere. I use both Chrome and Firefox, but some things Chrome just can't handle. Also, when making handouts, I really do need print preview.]&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-28T02:34:58.103" />
  <row Id="21995" PostTypeId="2" ParentId="21977" CreationDate="2010-11-28T02:35:43.687" Score="1" ViewCount="" Body="&lt;p&gt;Micro-optimization in terms of runtime performance is hardly a closed problem even today (although it might be less common).  I occasionally have to explain to people that the overhead of allocating an extra object every request or adding an extra function call is negligible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aside from that, I also see programmers micro-optimize for simplicity (including myself).  I have yet to work somewhere that I didn't have to explain the difference between simplicity and simplism.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-28T02:35:43.687" CommentCount="5" />
  <row Id="21996" PostTypeId="2" ParentId="21970" CreationDate="2010-11-28T02:46:11.427" Score="2" ViewCount="" Body="&lt;p&gt;Also &quot;The Deadline&quot; by Tom DeMarco. Very readable novel about project management.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-11-28T02:46:11.427" />
  <row Id="21997" PostTypeId="1" CreationDate="2010-11-28T03:11:29.590" Score="4" ViewCount="285" Body="&lt;p&gt;Learning PHP is a good thing but because of the bad reputation about it especially regarding security, I am wondering which PHP book that can lead me to learn the basics and deepen my knowledge in PHP from a good PHP programmer who knows the good practices and avoids the bad habits?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think PHP experts may be able to help. &lt;/p&gt;&#xA;" OwnerUserId="26782" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-11-28T03:55:05.027" LastActivityDate="2011-04-21T14:01:38.223" ClosedDate="2011-04-22T23:14:15.427" Title="What is the best PHP book out there?" Tags="&lt;books&gt;&lt;php&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="1" />
  <row Id="21998" PostTypeId="2" ParentId="21926" CreationDate="2010-11-28T03:11:58.837" Score="3" ViewCount="" Body="&lt;p&gt;The correct stereotype is &quot;&lt;em&gt;most&lt;/em&gt; programmers can't design&quot;; which is generally true. However, it is not true that if you're a programmer that means you cannot design. &lt;/p&gt;&#xA;" OwnerUserId="3733" LastActivityDate="2010-11-28T03:11:58.837" CommentCount="1" />
  <row Id="21999" PostTypeId="2" ParentId="21977" CreationDate="2010-11-28T03:20:14.287" Score="2" ViewCount="" Body="&lt;p&gt;Yes, &lt;a href=&quot;http://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer.html&quot; rel=&quot;nofollow&quot;&gt;object orientednism&lt;/a&gt;, sadly The Evolution of a Programmer isn't just a joke. &lt;/p&gt;&#xA;" OwnerUserId="3733" LastActivityDate="2010-11-28T03:20:14.287" CommentCount="3" />
  <row Id="22000" PostTypeId="2" ParentId="21997" CreationDate="2010-11-28T03:55:42.470" Score="2" ViewCount="" Body="&lt;p&gt;Have you looked at &lt;a href=&quot;http://phpsecurity.org/&quot; rel=&quot;nofollow&quot;&gt;Essential PHP Security&lt;/a&gt;?&lt;br&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/VsIe5.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-28T03:55:42.470" />
  <row Id="22001" PostTypeId="2" ParentId="15585" CreationDate="2010-11-28T04:21:53.040" Score="0" ViewCount="" Body="&lt;p&gt;This is my favorite C example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;char*p=&quot;char*p=%c%s%c;main(){printf(p,34,p,34);}&quot;;main(){printf(p,34,p,34);}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-11-28T04:21:53.040" />
  <row Id="22002" PostTypeId="1" AcceptedAnswerId="22005" CreationDate="2010-11-28T04:45:49.587" Score="1" ViewCount="174" Body="&lt;p&gt;I'm trying to decide whether I should invest in a 64 bit system at home.  I currently use a high end 32 bit windows 7 system (normal 32 vista at work) which I use for .net web and program development.  At home I'm starting to do more theoretical programming work that seems to tax my system quite a bit.  The 4 gb thing with 32 bit seems to be hindering me from performing complex algorithms on large datasets.  Could I benefit with moving to a 64 bit system?  Did anyone run into any issues when moving to 64 in regards to visual studio development?&lt;/p&gt;&#xA;" OwnerUserId="8661" LastActivityDate="2010-11-28T05:21:33.423" ClosedDate="2010-11-28T08:14:34.643" Title="Should I move to Windows 64 bit?" Tags="&lt;.net&gt;&lt;windows&gt;&lt;computer&gt;&lt;computer-architecture&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="22003" PostTypeId="2" ParentId="21977" CreationDate="2010-11-28T04:47:26.253" Score="9" ViewCount="" Body="&lt;p&gt;I used to write a lot of assembler back in the day. It is not just that compilers have gotten better, it is that most hardware now has lots of logic devoted to out-of-order execution of code. The real micro-issue is scheduling, most computer instructions take several machine clocks to produce a result -and a memory load that misses cache may take several hundred! So the idea was to schedule other instructions to do something useful, instead of waiting for a result. And modern machines can issue several instructions per clock period. Once we started getting out-of-order execution HW, I found that trying to get great performance with hand coding became a mugs game. First the out-of-order HW would not execute the instructions in your carefully crafted order, the fancy new HW architecture has reduced the penalty of inoptimal software scheduling enough that the compiler was usually within a few percent of your performance. Also I found out that compilers were now implementing wellknown but complexity generating tricks, such as unrolling, bottom loading, software pipelining etc. The bottom line, you have to work really really hard, skip some of these tricks and the compiler beats you. Use them all and the number of assembler instructions you need increase several fold!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Probably even more important, most performance issues, are not about instruction issue rates, but getting the data into the CPU. As I mentioned above, memory latency is now hundreds of cycles, and the CPU can execute several instructions per clock period, so&#xA;unless the program -and especially the data structures are designed so that the cache hit rate is exceedingly high, microtuning at the instruction level will have no payoff. Just like&#xA;military types say amateurs talk tactics, pros talk logistics. Performance programming is now more than 90% logistics (moving data). And this is hard to quantify, as modern memory management typically has multiple levels of cache, and virtual memory pages are handled by a hardware unit called the TLB. Also lowlevel alignment of addresses becomes important, as actual data&#xA;transfers, are not in units of bytes, or even 64bit long-longs, but they come in units&#xA;of cache lines. Then most modern machines have hardware that tries to predict which cache line misses you might need in the near future and issue automatic prefetches to get them into the cache. So the reality&#xA;is that with modern CPUs performance models are so complex as to be almost un-understandable. Even detailed hardware simulators can never match the exact logic of the chips, so exact&#xA;tuning is simply impossible anymore. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is still a place for some hand coding. Math libraries (like say the exp function), as are the more important linear algebra operations (like matrix multiply) are still usually hand coded&#xA;by experts that work for the hardware vendor (i.e. Intel or AMD, or IBM), but they probably&#xA;only need a couple of top notch assembler programmers per mega-computer corp.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-11-28T04:47:26.253" CommentCount="3" />
  <row Id="22004" PostTypeId="2" ParentId="21873" CreationDate="2010-11-28T04:49:34.270" Score="0" ViewCount="" Body="&lt;p&gt;You say that you are graduating high school and have been taking community college courses. I am assuming that means you are therefore becoming a full time college/university student. While I am unsure whether or not you are going into a technical school or a liberal arts school, I would say that you should not devote all of your courses your freshman year to the subject you are majoring in. I do think it is important to take some classes each semester that are relating to the subject you are majoring in. Keeping that in mind, I think your freshman year is your best time to explore other areas. Furthermore this is the time that you will be meeting and interacting with new people that have interests differing from your own. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The experiences that you get from these interactions will ultimately be more valuable than what you learn in a classroom (you can teach yourself most classroom material). You will make friends that will inspire your future work. You may even decide you want to change your major! Most importantly you will learn to communicate more effectively because you will be forced to learn how to explain your thoughts to people that &lt;strong&gt;think differently than you&lt;/strong&gt;. Keep that in mind, those are your potential future customers. This particular skill is one that is perhaps the most important, and yet most lacking skill in the programming industry.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-11-28T04:49:34.270" />
  <row Id="22005" PostTypeId="2" ParentId="22002" CreationDate="2010-11-28T04:55:45.500" Score="4" ViewCount="" Body="&lt;p&gt;I run 64-bit windows 7 on 3 machines at work, and 2 at home. All run Visual Studio (2008, 2010, or both) with no problems (but I don't work on many memory intensive tasks). I haven't benchmarked against 32-bit windows, so don't know if it's faster or slower, but it seems at least the same to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;16-bit applications won't run on 64-bit windows, and 32-bit programs will be theoretically slower (although in practice, I don't notice at all). Also, as you probably know, you'll need 64-bit apps to take advantaqe of memory beyond 4 gig.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastEditorUserId="1240" LastEditorDisplayName="" LastEditDate="2010-11-28T05:16:39.797" LastActivityDate="2010-11-28T05:16:39.797" CommentCount="1" />
  <row Id="22006" PostTypeId="2" ParentId="21997" CreationDate="2010-11-28T05:04:22.190" Score="1" ViewCount="" Body="&lt;p&gt;I've come across a lot of great books however most of them don't show you how to glue PHP together to build a Web Application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's why I like the Sitepoint books because they show you how to make an application out of the box and once you understand how an application works then you can move onto the more advanced stuff.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.sitepoint.com/books/phpmysql1/&quot; rel=&quot;nofollow&quot;&gt;Build Your Own Database Driven&#xA;Website Using PHP &amp;amp; MySQL, 3rd ed.&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.sitepoint.com/books/phpant1/&quot; rel=&quot;nofollow&quot;&gt;The PHP Anthology (Volume I &amp;amp; II)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.sitepoint.com/books/phpant2/&quot; rel=&quot;nofollow&quot;&gt;The PHP Anthology: 101 Essential&#xA;Tips, Tricks &amp;amp; Hacks, 2nd Edition&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6208" LastActivityDate="2010-11-28T05:04:22.190" />
  <row Id="22007" PostTypeId="2" ParentId="22002" CreationDate="2010-11-28T05:04:22.987" Score="1" ViewCount="" Body="&lt;p&gt;I believe there is no reason to stick with 32-bit windows anymore. You can run 32-bit applications with no limitations. There are no cons.&lt;/p&gt;&#xA;" OwnerUserId="4852" LastActivityDate="2010-11-28T05:04:22.987" />
  <row Id="22008" PostTypeId="2" ParentId="21947" CreationDate="2010-11-28T05:06:43.233" Score="0" ViewCount="" Body="&lt;p&gt;Allthe programming jobs I've been involved with involved scientific/engineering programming. At least ninity percent of these programmers had higher degrees in one of the &quot;hard&quot; sciences or math, and had little to no formal CS education. Usually today employers want at least some experience programming, and it is unclear if most CS degrees do that.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-11-28T05:06:43.233" />
  <row Id="22009" PostTypeId="2" ParentId="22002" CreationDate="2010-11-28T05:09:07.960" Score="2" ViewCount="" Body="&lt;p&gt;You don't move to 64 bit, eventually 64 bit will move to you.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-11-28T05:09:07.960" />
  <row Id="22010" PostTypeId="2" ParentId="22002" CreationDate="2010-11-28T05:09:42.887" Score="-2" ViewCount="" Body="&lt;p&gt;If you are not heavily invested in .NET and C#, you should also consider trying out the Linux platform.  For a lot of workloads, Linux makes better use of system resources than Windows.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-11-28T05:09:42.887" />
  <row Id="22011" PostTypeId="2" ParentId="11312" CreationDate="2010-11-28T05:15:23.337" Score="0" ViewCount="" Body="&lt;p&gt;May be someone has already said it, but there should be a fortress of solitude and if that is not feasible atleast a corner of solitude.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-11-28T05:15:23.337" CommunityOwnedDate="2010-11-28T05:15:23.337" />
  <row Id="22013" PostTypeId="2" ParentId="21977" CreationDate="2010-11-28T05:42:00.897" Score="5" ViewCount="" Body="&lt;p&gt;I think I've wasted weeks worth of time fiddling with Java exception handlers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a lot of work for code that fails two or three times per year. Should this be a warning or an info? Error or fatal? Is it really fatal is the process will be re-spawned in five minutes? Is it really a warning if everything is still in default state?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lots of navel gazing and discussion about the nature of an IO error. If you can't read a file over the network, is it a file error or a network error? And so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At one point I replaced all the concat strings with &lt;code&gt;String.format&lt;/code&gt; so the yearly file error doesn't result in extra objects in the heap. That was a waste.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-11-28T05:42:00.897" CommentCount="1" />
  <row Id="22019" PostTypeId="1" CreationDate="2010-11-28T06:18:24.133" Score="15" ViewCount="649" Body="&lt;p&gt;What's the best place to put your hobby web projects(the web app itself, not the code) ? Typically, the projects are such that:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;a) I just want to test out an interesting idea without exploring the business angle to it, just to see how people take it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;b) I don't expect a lot of traffic&lt;/p&gt;&#xA;&#xA;&lt;p&gt;c) I don't want to scale immediately&lt;/p&gt;&#xA;&#xA;&lt;p&gt;d) I don't want to be tied down to one technology(I want to do different projects to get familiar with various web stacks, langs and libs)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Google app engine seems very restrictive for such exploratory stuff ... Restrictions like no outbound request can go beyond 10 seconds and every request has to return with 30 seconds, etc. piss me off, I know they are needed for scale, but I would like them to be optional.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Amazon EC2 micro nodes are free for a year. But they ask for credit card information which I am not sure if I want to give away when I'm not paying initially.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What other free/cheap alternatives do I have?&lt;/p&gt;&#xA;" OwnerUserId="2966" LastActivityDate="2011-04-18T08:13:28.543" Title="What's the cheapest way to host hobby projects ?" Tags="&lt;google-app-engine&gt;&lt;web-hosting&gt;&lt;amazon-ec2&gt;" AnswerCount="13" FavoriteCount="8" />
  <row Id="22020" PostTypeId="2" ParentId="21977" CreationDate="2010-11-28T06:21:22.310" Score="6" ViewCount="" Body="&lt;p&gt;Time complexity. I spend way too much time optimizing things for worst case performance on a scale that is orders of magnitude larger than anything I know the program will realistically encounter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm just too obsessive to let go of the 'but it &lt;em&gt;could&lt;/em&gt; grow that big' bone, even when other design decisions preclude that from realistically happening.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, in my defense, should the unrealistic become reality .. the optimization really isn't 'micro' any longer. Note, I didn't say &lt;em&gt;impossible&lt;/em&gt;, but &lt;em&gt;unrealistic&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, requirements take precedence.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-28T20:44:17.033" LastActivityDate="2010-11-28T20:44:17.033" CommentCount="5" />
  <row Id="22021" PostTypeId="2" ParentId="22019" CreationDate="2010-11-28T06:24:01.487" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.heroku.com&quot; rel=&quot;nofollow&quot;&gt;Heroku&lt;/a&gt; is a good alternative for Ruby on Rails projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can push to Heroku straight from Github, which makes deployment ridiculously easy.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-11-28T06:24:01.487" CommentCount="2" />
  <row Id="22022" PostTypeId="2" ParentId="22019" CreationDate="2010-11-28T06:24:42.650" Score="0" ViewCount="" Body="&lt;p&gt;This really depends on what this is. Is it a web app? Is it a server app? How many people do you need to serve initially? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If its a web app then just find a good free web host. Any will do, and most have more than enough bandwidth and disk space for beta testing of an app.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If its a server app, why not host it yourself or on a friends server? This way its something you can control, your have practically no limits on what you can do (scalability comes later), and its (mostly) free. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can simply try this on your/someone elses server and see if people like it. Then once you get the ball rolling, you can start thinking about getting a real server somewhere&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-11-28T06:24:42.650" />
  <row Id="22023" PostTypeId="2" ParentId="22019" CreationDate="2010-11-28T06:31:10.313" Score="11" ViewCount="" Body="&lt;p&gt;I'd just get a cheap VPS at any reputable provider. This gives you full control over the server / language stack, allows you to work with any kind of storage or DB and can easily be re-loaded if you want to completely switch technologies to work on something else (for instance, going from Linux to Windows or back).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something in the range of $15 could satisfy the needs of multiple hobby projects .. and I think most people would have no problem spending that on a hobby that they found enjoyable and worth while.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This also ensures that you have full control of your data, as well as support if you need it.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-28T06:31:10.313" CommentCount="4" />
  <row Id="22033" PostTypeId="2" ParentId="21704" CreationDate="2010-11-28T10:28:39.213" Score="0" ViewCount="" Body="&lt;p&gt;Have you tried &lt;a href=&quot;http://monodevelop.com/&quot; rel=&quot;nofollow&quot;&gt;MonoDevelop&lt;/a&gt;? It's not an web, it's a desktop install, but it's open source and works very well in most C#/.net scenarios. I very much prefer VS over MD, but I've been forced to use it on a few small projects, and the experience was not unpleasant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, Snippet Compiler is a must have tool, if you just want to test a quick hack, instead of opening a full-fledged editor.&lt;/p&gt;&#xA;" OwnerUserId="6699" LastActivityDate="2010-11-28T10:28:39.213" />
  <row Id="22034" PostTypeId="2" ParentId="21782" CreationDate="2010-11-28T10:29:06.403" Score="0" ViewCount="" Body="&lt;p&gt;I suspect the reason that we dislike some/all frameworks is because the programming paradigms we build upon are still bad. We have design patterns, design anti-patterns, oo-programming, specification writing, agile programming etc, but things like re-usability and extendability are still just a dream. So in my opinion you are screwed in any case. Either you spend time writing your own frameworks that no-one likes (because they build upon same design paradigms). Or you learn existing frameworks that will eventually die off and get replaced with new and &quot;improved&quot; frameworks.&lt;/p&gt;&#xA;" OwnerUserId="8706" LastActivityDate="2010-11-28T10:29:06.403" />
  <row Id="22035" PostTypeId="1" AcceptedAnswerId="22037" CreationDate="2010-11-28T10:33:50.667" Score="7" ViewCount="308" Body="&lt;p&gt;A disconcertingly high number of new technologies/paradigms are overhyped (as is evident from replies to &lt;a href=&quot;http://programmers.stackexchange.com/q/22014/8073&quot;&gt;this question&lt;/a&gt;). Combine this with the fact that being &lt;a href=&quot;http://en.wikipedia.org/wiki/Early_adopter&quot; rel=&quot;nofollow&quot;&gt;early adopter&lt;/a&gt; is inherently risky. This makes evaluation of technology before adoption critical. So how exactly early adopters among you go about it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can think of following general criteria.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;For early adoption technology must address previously unaddressed issue and/or&lt;/li&gt;&#xA;&lt;li&gt;For acceptance beyond early adoption technology should address performance&lt;/li&gt;&#xA;&lt;li&gt;One indicator that something is &lt;strong&gt;not right&lt;/strong&gt; is when there is too much of jargon for technology which is either irrelevant or there is no evidence to back it up&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;What is your opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update:&#xA; 4. BTW, the biggest reason to &lt;strong&gt;fear&lt;/strong&gt; technology is when it is imposed by the tech-unaware management based entirely on number of buzzwords.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastEditorUserId="8073" LastEditorDisplayName="" LastEditDate="2010-11-29T05:08:34.823" LastActivityDate="2010-11-29T05:08:34.823" Title="How to be a responsible early adopter?" Tags="&lt;programming&gt;&lt;software-engineering&gt;&lt;technology&gt;&lt;new-technology&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="22036" PostTypeId="2" ParentId="21977" CreationDate="2010-11-28T10:46:26.727" Score="1" ViewCount="" Body="&lt;p&gt;I'm all for the don't-optimise-unless-really-necessary principle. And I'm all for the profile-first principle. And in principle, I will only optimise something that will make a needed difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's in principle. But principle is a liar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a habit of taking care with functions in frequently used libraries that I think will be used a lot in inner loops. And then, when you spot something in another function, that isn't so often used...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh - and then there's the &quot;I'm writing it - of course it's an important library&quot; logic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh - and BTW. I have never yet used a profiler to guide an optimisation. Don't have access to a commercial one, and never quite built up the motivation to figure out gprof.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, I'm a hypocrite. These principles apply to other people, but I have too much fear of someone saying &quot;but why did you write it that slow and crappy way?&quot; so I can never really apply them properly to myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not really as bad as I make out here, though. And I'm completely immune to self-deception, so you know I'm right about that!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I should add - one of my major stupid hang-ups is call overheads. Not everywhere, of course, but in those I-think-it'll-be-used-a-lot-in-inner-loops cases (where I have no objective evidence of a problem). I have written nasty offsetof-based code to avoid making virtual method calls more than once. The result may even be slower, since it probably isn't a style of coding that optimisers are designed to deal with well - but it's &lt;em&gt;cleverer&lt;/em&gt; ;-)&lt;/p&gt;&#xA;" OwnerUserId="8709" LastEditorUserId="8709" LastEditorDisplayName="" LastEditDate="2010-11-28T10:55:43.720" LastActivityDate="2010-11-28T10:55:43.720" CommentCount="2" />
  <row Id="22037" PostTypeId="2" ParentId="22035" CreationDate="2010-11-28T10:47:54.897" Score="5" ViewCount="" Body="&lt;p&gt;A major concern for me is stability. By stability, I don't (always) mean bug free. I need to be able to get 'comfortable' with certain features that it provides, without fear that subsequent versions may break (or eliminate) them. This is why I'm rather pessimistic when it comes to adopting new languages. I need to avoid seeing something introduced in v 0.07 and deprecated in 0.09, only to vanish completely in 0.10 - especially when releasing every few months. But, with any new language .. you sometimes wonder if you hit a deliberate feature or tickled a 'useful' bug.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also look to see where else something is being adopted, so I can decide if the extra dependency is really worth what we're getting out of it. For instance, if several major OS's started packaging (and using) Google Go, I might feel more confident about pitting it against some current problems and seeing what happened.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really think it depends on the individual though. Some people are just naturally more inclined to say 'why shouldn't I use it?' instead of 'why should I use it?'.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-28T10:47:54.897" CommentCount="2" />
  <row Id="22038" PostTypeId="2" ParentId="21943" CreationDate="2010-11-28T10:48:03.870" Score="2" ViewCount="" Body="&lt;p&gt;When I start a new project, I always insist on an internal and unchangeable name that the marketing people may or may not know, as it will only be referred to in the source code. That way, I do not have to worry about project name changes and namespace pollution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This scenario fits me, because the source code is not usually an important part of the product, i.e. projects are usually a closed-source, proprietary systems. However, in open-source projects where the source code is the product, this might not be feasible.&lt;/p&gt;&#xA;" OwnerUserId="6699" LastActivityDate="2010-11-28T10:48:03.870" />
  <row Id="22041" PostTypeId="2" ParentId="20539" CreationDate="2010-11-28T11:09:01.783" Score="0" ViewCount="" Body="&lt;p&gt;Hey,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For coding practices you may refer to the codeigniter coding standards. This way you'll have a good grasp on how to do things. For documentation, refer do phpdoc reference. It's cool and simply works. For code itself, buy a good book (or get the ebook) about design patterns and the DRY practices. (DRY mean Don't Repeat Yourself). If you contain your code in one spot, most likely it will be simple to maintain and reuse on other projects.&lt;/p&gt;&#xA;" LastActivityDate="2010-11-28T11:09:01.783" />
  <row Id="22042" PostTypeId="2" ParentId="22035" CreationDate="2010-11-28T11:21:52.360" Score="2" ViewCount="" Body="&lt;p&gt;The process of breaking new technology in means testing its limits.   If technology A can be used for x, why can it not be used for y and z as well?  The only way to know is to try it out.  Thus, I believe that a certain amount of hype is good.  It means that people are figuring out what can and can't be done with it.  I mean, we know the things that Java are good and bad at fairly well today (even if people don't accept them), but we didn't have a clear understanding when it first came out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is when you discover that the technology is clearly unsuited to a task and you use it anyway.  The point of experimentation is to figure out if something works, not to make it work if it doesn't.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-28T11:21:52.360" />
  <row Id="22043" PostTypeId="2" ParentId="21926" CreationDate="2010-11-28T11:34:48.477" Score="2" ViewCount="" Body="&lt;p&gt;User Experience Design could be considered the combination of both. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, there are people who can do it. There are many who practice only one discipline due to time constraints or personal preference but can cross over easily.&lt;/p&gt;&#xA;" OwnerUserId="8715" LastActivityDate="2010-11-28T11:34:48.477" CommentCount="1" />
  <row Id="22044" PostTypeId="1" AcceptedAnswerId="22048" CreationDate="2010-11-28T11:44:44.870" Score="0" ViewCount="264" Body="&lt;p&gt;If I go through the US government's website on various career options it states doctors make an awful lot and developers are very poor in comparison. Interestingly I think such job-pay information can be misinforming because a developer does not stay as a &quot;Developer&quot; (or does s/he?) for life-time. Correct me if that's not true.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I was curious as to how does a&#xA;  developer's career unfold? How much monetary progress (compared to when you a developer) do&#xA;  such career paths&#xA;  typically&lt;sup&gt;*&lt;/sup&gt; yield?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;*&lt;/sup&gt; Median preferably(?) over average.&lt;/p&gt;&#xA;" OwnerUserId="5940" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-28T14:10:31.713" LastActivityDate="2010-11-28T14:10:31.713" ClosedDate="2010-11-28T16:35:32.220" Title="Career path and money for developers." Tags="&lt;career-advice&gt;" AnswerCount="2" CommentCount="8" FavoriteCount="1" />
  <row Id="22045" PostTypeId="2" ParentId="22035" CreationDate="2010-11-28T11:57:47.830" Score="2" ViewCount="" Body="&lt;p&gt;We are in the situation that we know already now that the Java programs we write today will most likely have a lifespan of decades, so it is important to choose technologies and implementations that will have a chance of being maintainable at that time.  Fortunately the mindset of Java has up til now been a matter of intense attention to backwards compatability which makes it easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The line of thought:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;We want choice.   This means multiple, interchangeable implementations of the same thing.&lt;/li&gt;&#xA;&lt;li&gt;For Java multiple implementations of the same thing means a a formal specification &lt;em&gt;somewhere&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;The primary source for formal specifications for Java technology came from Sun.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Case in point:  Servlet API's.  If a web server written in Java does not support the Servlet API it either needs to do so fast, or fade in obscurity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The latest version of Java EE has some very interesting facilities.  JSF 2 with facelets is a nice way to create web pages.  CDI hauls in JSR-330 Dependency Injection which is really nice way to glue programs together at a later time than when the code is initially written. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have had good experiences so far with sticking to technologies with specifications.  This means missing some of the exiting new stuff, but it also means not having to figure out the exiting stuff for the previous decade later.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-28T11:57:47.830" />
  <row Id="22046" PostTypeId="2" ParentId="21917" CreationDate="2010-11-28T12:10:46.623" Score="2" ViewCount="" Body="&lt;p&gt;I have no such experiences, but here are some guesses:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;(Im)mutability&lt;/li&gt;&#xA;&lt;li&gt;First class functions/classes&lt;/li&gt;&#xA;&lt;li&gt;Closures&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;That's some staff that python programmer should know, otherwise you may as well hire C programer for the position.&lt;/p&gt;&#xA;" OwnerUserId="4852" LastActivityDate="2010-11-28T12:10:46.623" />
  <row Id="22047" PostTypeId="2" ParentId="2846" CreationDate="2010-11-28T12:43:03.547" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Oracle + PL/SQL&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8706" LastActivityDate="2010-11-28T12:43:03.547" CommunityOwnedDate="2010-11-28T12:43:03.547" CommentCount="1" />
  <row Id="22048" PostTypeId="2" ParentId="22044" CreationDate="2010-11-28T12:48:05.263" Score="0" ViewCount="" Body="&lt;p&gt;The doctor (Medical Doctors) comparison is accurate, but you are not factoring in the length of time and the cost of becoming a doctor. Doctors have more costs associated with their profession with licensing and malpractice insurance (very high in the US). There are other ways to make more money if that's all you're interested in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Location in the US is a big factor for cost of living. Larger cities tend to be more expensive (San Francisco , New York, Chicago), but they 'usually' pay more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Career Tracks:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Stay a programmer and progress from Junior to Senior&lt;/li&gt;&#xA;&lt;li&gt;Analyst&lt;/li&gt;&#xA;&lt;li&gt;Management&lt;/li&gt;&#xA;&lt;li&gt;Receive stock options in a company you work for.&lt;/li&gt;&#xA;&lt;li&gt;Start your own company&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Most people in the US will think you make better than average money if you're a computer programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think a lot of potential programmers have gone into Finance Analysis. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-28T12:48:05.263" CommentCount="1" />
  <row Id="22049" PostTypeId="2" ParentId="22044" CreationDate="2010-11-28T13:11:59.697" Score="0" ViewCount="" Body="&lt;p&gt;I look around my office and I can say plenty of developers remain developers for their entire careers. I would see the most likely track for a developer to move would be from Junior to Senior then to management, project manager then, possibly, program manager. I see this as the would be the climbing the ladder example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developers could also move laterally, to become designers, QA analysis, support engineers, etc. &lt;/p&gt;&#xA;" OwnerUserId="7446" LastActivityDate="2010-11-28T13:11:59.697" />
  <row Id="22050" PostTypeId="1" AcceptedAnswerId="22071" CreationDate="2010-11-28T13:14:12.627" Score="1" ViewCount="95" Body="&lt;p&gt;I'm interested to hear what characters people permit in the various common fields of input forms (barring e-mail...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Textarea/Messages&lt;/strong&gt;:  do you allow completely free text, or restrict to alphanumeric and punctuation? I've tried to go the second route, but you always find someone out there that likes using tilde's...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Full name&lt;/strong&gt;: do you allow anything, or do you use a regex?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Telephone numbers&lt;/strong&gt;: numbers only&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Addresses&lt;/strong&gt;: alphanumeric, whitespace, hyphens&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;City/Town names&lt;/strong&gt;: alphabet, hyphens, whitespace&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[NB: edited as requested]&lt;/p&gt;&#xA;" OwnerUserId="3712" LastEditorUserId="3712" LastEditorDisplayName="" LastEditDate="2010-11-28T20:45:53.083" LastActivityDate="2010-11-28T21:14:32.933" Title="Textarea validation" Tags="&lt;validation&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="22051" PostTypeId="2" ParentId="827" CreationDate="2010-11-28T13:20:50.450" Score="0" ViewCount="" Body="&lt;p&gt;They should be different disciplines, but not at the undergraduate level. I just don't see how they can cramp up all that is needed for Software Engineering on an undergraduate degree. Just in the same way we do not see undergraduate degrees in Systems Engineering (where people get a MS in after getting a degree in EE, CE, Mechanical Eng or CS), it is a similar case with Software Engineering. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a multidisciplinary approach based heavily on computer science and/or MIS. People truly become software engineers in practice (and not just in title) after pursuing advanced course work and/or work experience in the field, provided that the later is done in environments conductive of software engineering. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most people have titles of software engineering but have not really advanced beyond coding. This is not a dis on them, but an observation - they have not been sufficiently exposed to the type of work that would help them accumulate work experience beyond coding. Worse yet, most jobs and organizations are atrociously run, and are not conductive of doing proper software engineering. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, without some work or scholastic maturity, software engineering material will simply fly over the heads of most undergrad students. &lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-11-28T13:20:50.450" CommentCount="5" />
  <row Id="22054" PostTypeId="2" ParentId="16867" CreationDate="2010-11-28T13:39:33.110" Score="1" ViewCount="" Body="&lt;p&gt;Schools and scholars who advocate Java as the first choice should have their heads examined (or simply get a real job out there.) I'm saying this as a person who has done both application and system development in Java for the last 12 years. Java is an atrocious language for teaching.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason is the following: barring the gifted, most students can (and will most likely never) grasp object orientation without understanding modular programming. And they cannot understand modular programming without first understanding structured programming in a procedural language. Plain and simple. Testament of this (among other things) is that even though we have known OO for 3-4 decades now, people still write hyper-spaghetti in practice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, a person solely relying on a gc-based language (be it Java or .NET) can never really get close to the hardware. Unless your entire ambition is to make dynamic web pages, guess what? You need to be comfortable with getting close to the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You go to a CS school to become a well-rounded computer scientist and programmer (hopefully with quite a few credit hours of hands-on programming practice in many programming languages.) If you all you know is Java (or .NET or C or Python whatever) then you are a &quot;Java programmer&quot; (not a programmer that can work on Java, but a &quot;Java programmer&quot;). And that makes as much sense as saying you are a &quot;hammer carpenter&quot; or a &quot;Phillip screw driver mechanic&quot;, doesn't it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good school will expose you to C (or some other procedural language like Pascal or Ada), then C++ and a assembly, leaving you to learn Java on your own as you pursue project capstone courses on your junior/senior year. Also, it should provide you with exposure to functional languages so that you understand the concept of passing computational blocks as arguments, side-effect free computations, location transparency and the like (which have real practical applications, even on the web.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to know what a segfault is. You need to know what paging, virtual memory and all that crap mean. You need to know how to decompose problems in modules (be them procedural and OO-based). You need to know how OO systems are truly implemented under the hood (so that you know the cost.) You need to know where OO abstraction breaks (and they do because the world and complex problems are not necessarily object-oriented.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to know all that stuff so that you become a well-rounded computer scientist capable of working either on the enterprise or at the very low level implementing system-level stuff, either for the commercial or the public sector, both large scale and small scale.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Academics who have been pushing for Java as the-one-and-only language to rule them all are completely clueless as to what the industry really need. Clueless. Unforgivable clueless. That's what happen when they work on ivory towers looking at the industry at a distance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They have turned Computer Science departments into expensive 4-year vocational schools churning one-programming-language-trick ponies. And that could be forgivable if they could at least teach students basic business/enterprise/organizational skills (that is, abandon the CS facade and adopt a MIS curriculum.) But they don't even do that, which I think it's a great disservice to the industry, the economy and ultimately the students.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest you read Joel Spolsky' piece on &quot;Java Schools&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In summary, if they don't teach you a procedural programming language (be it an industrial one like C or Ada or one good enough for teaching like Pascal), and they give you if C++ (if you are lucky) or Java/C# (if you are unlucky), I would look for another school. Plain and simple, from a guy who has been using Java for a living in the real world for quite a while.&lt;/p&gt;&#xA;" OwnerUserId="5149" LastActivityDate="2010-11-28T13:39:33.110" />
  <row Id="22055" PostTypeId="1" AcceptedAnswerId="22064" CreationDate="2010-11-28T14:03:18.550" Score="7" ViewCount="266" Body="&lt;p&gt;I have been working on domain X primarily using C++ for 10 years now. I am bored and want to move to domain Y and the thing going for me is that domain Y also uses a fair bit of C++. However domains X and Y are &lt;strong&gt;very different&lt;/strong&gt;, and at this point I have limited knowledge of Y. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am looking for suggestions from fellow programmers who've actually had the guts to pull something like this off and lived to tell the tale. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: People, I am specifically looking at the challenges programmers face while doing something like a domain change, tips to prepare oneself -- maybe look into open source in relevant area etc. &lt;/p&gt;&#xA;" OwnerUserId="8720" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-28T14:31:26.523" LastActivityDate="2010-11-28T16:23:47.743" Title="mid career job change -- any suggestions?" Tags="&lt;programming-languages&gt;&lt;career&gt;&lt;career-advice&gt;" AnswerCount="3" CommentCount="5" />
  <row Id="22057" PostTypeId="2" ParentId="22055" CreationDate="2010-11-28T14:10:13.557" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;What&lt;/strong&gt; are you afraid of ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being &lt;em&gt;bored&lt;/em&gt; is either temporary or the beginning of something bad, such as a &lt;a href=&quot;http://programmers.stackexchange.com/questions/11425/burned-out-on-programming-and-given-up&quot;&gt;burnout&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm pretty sure &lt;strong&gt;changing something&lt;/strong&gt; won't hurt you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your current experience won't vanish because you change your domain. On the contrary, it will make you &lt;strong&gt;more&lt;/strong&gt; experienced.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To illustrate what I wrote, here is the path of my consulting career:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Medias&lt;/strong&gt; =&gt; &lt;strong&gt;Entertainment&lt;/strong&gt; (Sex) =&gt; &lt;strong&gt;Finances&lt;/strong&gt; =&gt; &lt;strong&gt;Medias&lt;/strong&gt; =&gt; &lt;strong&gt;Chemicals&lt;/strong&gt; =&gt; &lt;strong&gt;Education&lt;/strong&gt; =&gt; &lt;strong&gt;Insurances&lt;/strong&gt; =&gt; &lt;strong&gt;Retail&lt;/strong&gt; =&gt; &lt;strong&gt;Medias&lt;/strong&gt; =&gt; &lt;strong&gt;Education&lt;/strong&gt; =&gt; &lt;strong&gt;Telecom&lt;/strong&gt; =&gt; &lt;strong&gt;Utility&lt;/strong&gt; =&gt; &lt;strong&gt;Finances&lt;/strong&gt; =&gt; &lt;strong&gt;Aeronautics&lt;/strong&gt; =&gt; &lt;strong&gt;Finances&lt;/strong&gt; =&gt; &lt;strong&gt;Software Engeneering&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is the different domains of companies or projects I (co)-created:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Medias&lt;/strong&gt; =&gt; &lt;strong&gt;Software Engeneering&lt;/strong&gt; =&gt; &lt;strong&gt;Food&lt;/strong&gt; =&gt; &lt;strong&gt;Web Hosting&lt;/strong&gt; =&gt; &lt;strong&gt;Medias&lt;/strong&gt; =&gt; &lt;strong&gt;Entertainment&lt;/strong&gt; (Sports) =&gt; &lt;strong&gt;Web Hosting&lt;/strong&gt; =&gt; &lt;strong&gt;Software Engeneering&lt;/strong&gt; =&gt; &lt;strong&gt;Medias&lt;/strong&gt; =&gt; &lt;strong&gt;Medias&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm still &lt;code&gt;alive&lt;/code&gt;! And apparently still in high demand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm convinced that my decision to change the domain frequently helped me develop my ability to learn new things very fast.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;So why not &lt;strong&gt;you&lt;/strong&gt;?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've even seen many people changing profession, from developer to chef in a restaurant, or from system engineer to school teacher. There is nothing wrong with that. They are more &lt;strong&gt;happy&lt;/strong&gt; than before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Today you face some resistance from yourself. It's perfectly normal. Every human has been programmed to stay in their comfort zone.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You have identified a &lt;strong&gt;problem&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;You have identified a &lt;strong&gt;solution&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Now &lt;strong&gt;act&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Or you may never know if it was a good idea or not.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-28T14:48:04.833" LastActivityDate="2010-11-28T14:48:04.833" />
  <row Id="22058" PostTypeId="2" ParentId="21977" CreationDate="2010-11-28T14:22:22.247" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Code Formatting&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Don't     get    me   wrong             ,&#xA;code      should be   consistent        &amp;amp; &#xA;readable                                , &#xA;but       some   take it         too far.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-28T14:22:22.247" CommentCount="5" />
  <row Id="22059" PostTypeId="2" ParentId="2846" CreationDate="2010-11-28T14:28:10.960" Score="3" ViewCount="" Body="&lt;p&gt;I hate PHP.. no I don't hate PHP, I hate PHP developers &lt;/p&gt;&#xA;" OwnerUserId="8721" LastActivityDate="2010-11-28T14:28:10.960" CommunityOwnedDate="2010-11-28T14:28:10.960" />
  <row Id="22060" PostTypeId="2" ParentId="22055" CreationDate="2010-11-28T14:28:27.933" Score="0" ViewCount="" Body="&lt;p&gt;Start an actual project in the new area. You may be the only one interested in it, but so what. All the reading, studying, asking questions on SO, will come. If you can't get excited about this, the domain is not your problem and changing it is not the solution.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-28T14:28:27.933" />
  <row Id="22061" PostTypeId="2" ParentId="21917" CreationDate="2010-11-28T14:31:30.443" Score="2" ViewCount="" Body="&lt;p&gt;How about something involving Python &lt;a href=&quot;http://docs.python.org/tutorial/datastructures.html&quot; rel=&quot;nofollow&quot;&gt;list comprehensions&lt;/a&gt;? To me, those were one of the big selling points over C++, after I read about them in &lt;a href=&quot;http://diveintopython.org/&quot; rel=&quot;nofollow&quot;&gt;Dive into Python&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Write a list comprehension that builds a list of the even numbers from 1 to 10 (inclusive)&quot;.&lt;br&gt;&#xA;Where the answer is anything like this (note the &lt;em&gt;range&lt;/em&gt; values avoid a fencepost error):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;foo = [x for x in range(1, 11) if (x % 2) == 0]&#xA;print foo&#xA;[2, 4, 6, 8, 10]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;For that matter, if you understand all the concepts listed in Dive into Python, that should cover most of the important features.&lt;/p&gt;&#xA;" OwnerUserId="3688" LastActivityDate="2010-11-28T14:31:30.443" CommentCount="1" />
  <row Id="22062" PostTypeId="2" ParentId="21970" CreationDate="2010-11-28T14:35:28.283" Score="2" ViewCount="" Body="&lt;p&gt;Not specific to project management, but in &quot;Dreaming in Code&quot; by Scott Rosenberg they made about every mistake possible for no apparent reason (time, money, requirements, expertise, experience).&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-28T14:35:28.283" />
  <row Id="22064" PostTypeId="2" ParentId="22055" CreationDate="2010-11-28T14:39:54.517" Score="7" ViewCount="" Body="&lt;p&gt;Domain changes are much easier than technology changes (assuming you're moving to a completely unrelated technology).  If you are a good C++ programmer in Domain X, you'll still be a good C++ programmer in Domain Y.  You'll just be solving different business problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really want to make the jump to Domain Y, then jump.  Give yourself some time to come up to speed on Domain Y.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I made a domain jump many years ago and the boss that hired me in the new domain told me just before he hired me... &quot;Your technical skills are exactly what we need.  The downside to you is that you know nothing about 'Domain Z', the plus side to you is that you know nothing about 'Domain Z', so I can teach you what's important to us.&quot;  True story.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make the jump.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-28T15:03:00.260" LastActivityDate="2010-11-28T15:03:00.260" CommentCount="3" />
  <row Id="22066" PostTypeId="2" ParentId="21917" CreationDate="2010-11-28T15:59:44.707" Score="3" ViewCount="" Body="&lt;p&gt;Is Python pass by reference or pass by value is also a very good question.&lt;/p&gt;&#xA;" OwnerUserId="8726" LastActivityDate="2010-11-28T15:59:44.707" CommentCount="2" />
  <row Id="22067" PostTypeId="2" ParentId="21917" CreationDate="2010-11-28T15:59:54.547" Score="2" ViewCount="" Body="&lt;p&gt;I would go along the list in &lt;a href=&quot;http://stackoverflow.com/questions/2573135/python-progression-path-from-apprentice-to-guru/2576240#2576240&quot;&gt;this answer&lt;/a&gt;. Try to refresh what you know following that list as far as you can. Don't worry if you cannot make it until the very end.&lt;/p&gt;&#xA;" OwnerUserId="700" LastActivityDate="2010-11-28T15:59:54.547" />
  <row Id="22068" PostTypeId="2" ParentId="18803" CreationDate="2010-11-28T16:03:18.333" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Two pages, scaling down job descriptions with time&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Objective/Summary and the bulleted list of Skills occupy the top part of Page 1, while Education goes to the back of Page 2.  This leaves me about half of Page 1 and most of Page 2 to describe all jobs that I've had in almost 15 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use more words, sentences, and bullet points to describe the same amount of work on a more recent job.  I gradually scale down and abbreviate old job descriptions when I need to put another job on Page 1.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, the job I had in 1996-97 used to occupy half a page on my resume.  I gradually abbreviated it to two lines near the bottom of Page 2 (first line: when, where; second line: what I did).  The 2000-2002 job used to occupy the bottom half of Page 1, now it is in the middle of Page 2, shortened to three bullet points.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-28T16:03:18.333" CommunityOwnedDate="2011-01-25T17:00:53.097" />
  <row Id="22069" PostTypeId="2" ParentId="21970" CreationDate="2010-11-28T16:08:35.493" Score="0" ViewCount="" Body="&lt;p&gt;&quot;The Universal Elixir, and Other Computing Projects Which Failed&quot;, by Robert Glass.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The stories are dated, but the lessons are timeless.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-11-28T16:08:35.493" />
  <row Id="22070" PostTypeId="1" CreationDate="2010-11-28T16:11:29.237" Score="9" ViewCount="770" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/4293744/useful-alternative-control-structures/&quot;&gt;Similar question&lt;/a&gt; was closed on SO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes when we're programming, we find that some particular control structure would be very useful to us, but is not directly available in our programming language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What alternative control structures do you think are a useful way of organizing computation?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The goal here is to get new ways of thinking about structuring code, in order to improve chunking and reasoning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can create a wishful syntax/semantic not available now or cite a less known control structure on an existent programming language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Answers should give ideas for a new programming language or enhancing an actual language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think of this as brainstorming, so post something you think is a crazy idea but it can be viable in some scenario.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's about imperative programming.&lt;/p&gt;&#xA;" OwnerUserId="389" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-11-28T21:32:36.710" LastActivityDate="2010-12-31T08:58:28.023" Title="Which useful alternative control structures do you know?" Tags="&lt;programming-languages&gt;&lt;syntax&gt;&lt;semantics&gt;&lt;control-structures&gt;" AnswerCount="22" CommentCount="5" FavoriteCount="5" />
  <row Id="22071" PostTypeId="2" ParentId="22050" CreationDate="2010-11-28T16:16:19.467" Score="1" ViewCount="" Body="&lt;p&gt;no restrictions, provided that:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the text is not published back to a web page in a way that would permit hijacking/hacking&lt;/li&gt;&#xA;&lt;li&gt;the text is not included in a SQL statement in a way that would make it vulnerable to sql injection&lt;/li&gt;&#xA;&lt;li&gt;you're reasonably sure that a person is responding and not a bot (captcha, for example)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-28T16:16:19.467" />
  <row Id="22072" PostTypeId="2" ParentId="22070" CreationDate="2010-11-28T16:41:23.027" Score="5" ViewCount="" Body="&lt;p&gt;The linked article definitely gets it right about Donald Knuth's &lt;em&gt;N+1/2 Loops&lt;/em&gt;. Expressed in C/C++/Java:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for (;;) {&#xA;  get next element;&#xA;  if (at the end) break;&#xA;  process the element;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This is useful for reading lines or characters from a file, testing if you've reached EOF, and then processing it. I'm so used to seeing the pattern &lt;code&gt;for(;;)..if(..)break;&lt;/code&gt; appear that it's idiomatic to me. (Before I had read the Knuth article, reprinted in the book &lt;em&gt;Literate Programming&lt;/em&gt;, this one used to be a &quot;wtf?&quot;.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knuth suggested the keywords &lt;code&gt;loop/while/repeat&lt;/code&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;loop:&#xA;  S;&#xA;while C:&#xA;  T;&#xA;repeat&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Where &lt;code&gt;S&lt;/code&gt; and &lt;code&gt;T&lt;/code&gt; are place holders for a series of zero or more statements, and &lt;code&gt;C&lt;/code&gt; is a boolean condition. If there was no &lt;code&gt;S&lt;/code&gt; statement then it would be a while loop, and if there was no &lt;code&gt;T&lt;/code&gt; statement then it would be a do loop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This construct itself could be generalized by allowing zero or more &lt;code&gt;while C&lt;/code&gt; clauses, making it perfect for expressing infinite loops and then some rarer conditions that would need two checks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the same article, Knuth suggested a signaling mechanism that would be a local version of throwing/catching exceptions (as an alternative to using goto).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me? I wish Java supported tail-call optimization, so that I could express &lt;em&gt;any&lt;/em&gt; general control structure as needed.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I forgot to mention that many C/C++/Java programmers get around this one by using an embedded assignment in the condition of the &lt;code&gt;while&lt;/code&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;while ((c = getc(f)) != -1) {&#xA;   T;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Using the terms from Knuth's construct, this is allowable when &lt;code&gt;S&lt;/code&gt; and &lt;code&gt;C&lt;/code&gt; can be combined into a single expression. Some people hate to see the embedded assignment above, while others hate to see the &lt;code&gt;break&lt;/code&gt; in the &lt;code&gt;for (;;)&lt;/code&gt; above. But when &lt;code&gt;S&lt;/code&gt; and &lt;code&gt;C&lt;/code&gt; cannot be combined, such as when &lt;code&gt;S&lt;/code&gt; has multiple statements, the &lt;code&gt;for (;;)&lt;/code&gt; is the only alternative without repeating code. The other alternative is to simply duplicate the &lt;code&gt;S&lt;/code&gt; code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;S;&#xA;while (C) {&#xA;  T;&#xA;  S;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Knuth's &lt;code&gt;loop/while/repeat&lt;/code&gt; alternative seems much better.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-11-28T17:13:15.437" LastActivityDate="2010-11-28T17:13:15.437" CommentCount="5" />
  <row Id="22073" PostTypeId="1" CreationDate="2010-11-28T16:42:38.750" Score="11" ViewCount="1086" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/19842/what-are-some-well-known-applications-written-in-f&quot;&gt;What are some well known applications written in F#?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I see a lot of people talking about how cool functional programming is, how awesome Lisp and Haskell and F# are, etc, but what I don't see is them actually being &lt;em&gt;used&lt;/em&gt;.  Just about every program on my computer is written in either something in the C family, Delphi, or Python.  I see tutorials talking about how easy it is to use functional languages to do complicated math problems, but no one talking about using them to do things most people actually care about using computers for, like business applications and games.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone have any examples of actual programs that people have heard of and are using, written in a functional language?  The only one I can think of off the top of my head is &lt;a href=&quot;http://en.wikipedia.org/wiki/Abuse_%28video_game%29&quot; rel=&quot;nofollow&quot;&gt;Abuse&lt;/a&gt;, from almost 15 years ago.  (Things like Emacs, where the core program is written in C with a functional language scripting layer on top, don't count.)&lt;/p&gt;&#xA;" OwnerUserId="935" LastEditorUserId="935" LastEditorDisplayName="" LastEditDate="2010-12-01T05:21:49.437" LastActivityDate="2010-12-01T07:33:07.510" ClosedDate="2010-12-01T08:43:07.143" Title="Is functional programming actually used to create applications?" Tags="&lt;functional-programming&gt;&lt;applications&gt;&lt;pragmatism&gt;" AnswerCount="12" CommentCount="16" FavoriteCount="3" />
  <row Id="22074" PostTypeId="2" ParentId="3590" CreationDate="2010-11-28T16:55:01.103" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I keep everything up all the time as I like distractions and social interaction.  Little distractions help break up the day, which is very important for your health.  Life is not all work, even when on the job.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-11-28T16:55:01.103" />
  <row Id="22075" PostTypeId="2" ParentId="3886" CreationDate="2010-11-28T17:01:44.377" Score="2" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;    if (light == &quot;off&quot;)&#xA;    {&#xA;    System.Console.WriteLine(&quot;Hi Sir, it is time to sleep!&quot;);&#xA;    }&#xA;&#xA;    else if (light == &quot;on&quot;)&#xA;    {&#xA;    System.Console.WriteLine(&quot;Hi Sir, Do you want to have some fun with code?&quot;);&#xA;    }&#xA;&#xA;    else  &#xA;    {&#xA;    System.Console.WriteLine(&quot; Please go to programmers.stackexchange.com&quot;);&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="26782" LastActivityDate="2010-11-28T17:01:44.377" CommentCount="1" />
  <row Id="22076" PostTypeId="1" AcceptedAnswerId="22082" CreationDate="2010-11-28T17:02:39.193" Score="3" ViewCount="196" Body="&lt;p&gt;What is more difficult to be a developer or a automation tester? and why?&lt;/p&gt;&#xA;" OwnerUserId="7656" LastActivityDate="2010-11-28T17:27:11.073" Title="Automation Testers vs Developers" Tags="&lt;career&gt;&lt;programming&gt;&lt;testing&gt;&lt;automation&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="22077" PostTypeId="2" ParentId="22070" CreationDate="2010-11-28T17:05:01.950" Score="4" ViewCount="" Body="&lt;p&gt;On a different note, I would like to see better support for iterators in programming languages. In particular, for when you want to go down two collections &lt;em&gt;in pairs&lt;/em&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for (String s, Integer i : stringsSet, integersSet) {&#xA;    // use the pair (s, i)&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Some dynamic languages may already have this, or easily support via libraries and macros, but I think this is in the spirit of your question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the two sets are not the same size, then it could throw an exception or you could have an &lt;code&gt;else&lt;/code&gt; after the loop to signal there was a difference in sizes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Naturally, you could generalize this for going down three or more lists.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Also useful would be doing the Cartesian product between iterables:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for (String s, Integer i : stringsSet * integersSet) {&#xA;    // use the pair (s, i), each s with each i&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;which would be nothing more than nested loops:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for (String s : stringsSet) {&#xA;    for (Integer i : integersSet) {&#xA;        // use the pair (s, i), each s with each i&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I'm a little concerned that between the two notations I've provided here that there is a O(n) and O(n^2) difference in the number of pairs, with only the change of a single character.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-11-29T01:25:18.257" LastActivityDate="2010-11-29T01:25:18.257" CommentCount="6" />
  <row Id="22078" PostTypeId="2" ParentId="22070" CreationDate="2010-11-28T17:07:33.727" Score="13" ViewCount="" Body="&lt;p&gt;OK, this is a fun question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also like to have a general &lt;code&gt;else&lt;/code&gt; for while and for loops, for when the condition isn't true on the &lt;em&gt;first&lt;/em&gt; test:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;while (condition) {&#xA;    // process&#xA;}&#xA;else {&#xA;    // condition was never true&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This avoids the awkward re-computation of the condition or storing it in a variable.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-28T17:07:33.727" CommentCount="9" />
  <row Id="22079" PostTypeId="1" AcceptedAnswerId="22155" CreationDate="2010-11-28T17:08:20.387" Score="2" ViewCount="103" Body="&lt;p&gt;High performance computing means different things to different people. From a pure programming perspective what I gather is that these are loads of individual machines connected by extremely fast interconnect not necessarily based on usual TCP/IP. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is on the interconnect side of things: How do you make interconnects faster without changing your socket based code much?&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-11-29T02:25:25.307" Title="High performance computing and interconnects" Tags="&lt;programming-languages&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="3" />
  <row Id="22080" PostTypeId="2" ParentId="22073" CreationDate="2010-11-28T17:10:11.573" Score="3" ViewCount="" Body="&lt;p&gt;Orbitz &lt;a href=&quot;http://www.paulgraham.com/carl.html&quot; rel=&quot;nofollow&quot;&gt;uses Lisp extensively&lt;/a&gt; for it's flight lookup engine.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-28T17:10:11.573" CommentCount="8" />
  <row Id="22081" PostTypeId="2" ParentId="18406" CreationDate="2010-11-28T17:18:39.630" Score="2" ViewCount="" Body="&lt;p&gt;Great question. Javascript or Java or VC++ are super smart programming languages where you will never need to create a linked list or hash table from scratch. But you still need to have the ability to decide when to use one over the other, the performance penalties and bonuses each accrue etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have interviewed a lot of &lt;strong&gt;API programmers&lt;/strong&gt; aka code monkeys, and in most of the interviews they have routinely failed to design systems that are performance efficient and scalable. Bottom line: knowing loads of API will get you the bread, but for butter you need to start from the basics of computing.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-11-28T17:18:39.630" CommentCount="1" />
  <row Id="22082" PostTypeId="2" ParentId="22076" CreationDate="2010-11-28T17:19:03.913" Score="7" ViewCount="" Body="&lt;p&gt;There is no objective answer - just try to do what you like and are good at.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are slightly different traits and skills that are needed for both. An automated tester needs to be inquisitive, obsessed with quality, be ok with not creating anything new and not being in a spot light like a quarterback would. Their code need not be super-fast, unless tests get complicated. It should be well organized, readable, commented. Otherwise, when the tests can get out of sync with the product, it would be difficult to maintain. Now, some automated tests can get complicated - multithreading, distributed systems, real-time, statistical - you name it. So, the tester's job can be quite hard intellectually, but not all of the time (although same can be said about a developer :)).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good tests are short. They are broken down into small logical units. It is ok for tests to overlap when they test slightly different things. Developers can have much more stringent constraints, such as: keep it real time, keep the database load light, etc. Develop it on time and on budget. Sometimes they have little choice, but to leave a working, but cluttered and hard to understand code behind them. If code is like a monastery, then tests are like wooden scaffolding necessary to build and maintain it. The later can be easier to produce, but it must still be done in coordination.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the tighter the system is, the harder it is to test. Look at the hardware that guides astronauts back to safety. Some of it is from 80s! I imagine that it underwent an insane amount of creative testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I mentioned before, great developers are like quarterbacks or astronauts - they rush to the goal and score, but there is an army of support behind them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good software tester is someone with a mindset that, they would rather fix a parking problem in downtown before they send a man to the Mars. I think there is a PERSONALITY difference. As far as coding and other technical abilities, they can be the same. A &quot;Developer&quot; is a general term, which includes web developmnet, desktop development, mobile development, game development, embedded development etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it can be equally difficult or easy to be either one. The trick is doing what you love and are good at. If you suck at singing and writing and acting, then do not do that. It would be immensely difficult for you. But, for someone else doing these activities is a piece of cake, while passing a physics class is next to impossible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no objective answer - just try to do what you like and are good at.&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-11-28T17:19:03.913" CommentCount="5" />
  <row Id="22083" PostTypeId="2" ParentId="22070" CreationDate="2010-11-28T17:21:18.173" Score="4" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;unless(condition) {&#xA;  // ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;does the same thing as:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(!condition) {&#xA;  // ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;repeat {&#xA;  // ...&#xA;} until(condition)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;does the same thing as:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;do {&#xA;  // ...&#xA;} while(!condition)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1968" LastEditorUserId="1968" LastEditorDisplayName="" LastEditDate="2010-11-28T17:29:44.190" LastActivityDate="2010-11-28T17:29:44.190" CommentCount="9" />
  <row Id="22084" PostTypeId="2" ParentId="22070" CreationDate="2010-11-28T17:24:05.797" Score="4" ViewCount="" Body="&lt;p&gt;The BCPL language had a &lt;a href=&quot;http://www.mozart-oz.org/lists/oz-users/0472.html&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;valueof&lt;/code&gt; expression&lt;/a&gt; that could be used to turn a sequence of statements into a single expression:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;foo(a, b, valueof {some series of statements; resultis v});&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Where &lt;code&gt;some series of statements&lt;/code&gt; can be anything and the whole &lt;code&gt;valueof&lt;/code&gt; evaluates to &lt;code&gt;v&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This could be handy in Java for when you need to compute an argument for calling a &lt;code&gt;this()&lt;/code&gt; or &lt;code&gt;super()&lt;/code&gt; (which requires that nothing happen before it). Of course, you could just write a separate method, but that might be a pain if you need to pass in many local values for context.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are able to use &lt;code&gt;final&lt;/code&gt; for variables that are needed, you can already do a &lt;code&gt;valueof&lt;/code&gt; in Java using anonymous inner classes:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;foo(a, b, new Object(){String valueof(){&#xA;    String v ...; some series of statements; return v;}}.valueof());&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-28T17:24:05.797" CommentCount="1" />
  <row Id="22085" PostTypeId="2" ParentId="22070" CreationDate="2010-11-28T17:24:29.187" Score="1" ViewCount="" Body="&lt;p&gt;[ copied from my own answer on stackoverflow ]&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;ignoring&lt;/code&gt; - To ignore exceptions occuring in a certain block of code.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;try {&#xA;  foo()&#xA;} catch {&#xA;  case ex: SomeException =&amp;gt; /* ignore */&#xA;  case ex: SomeOtherException =&amp;gt; /* ignore */&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;With an ignoring control construct, you could write it more concisely and more readably as:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;ignoring(classOf[SomeException], classOf[SomeOtherException]) {&#xA;  foo()&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;[ Scala provides this (and many other Exception handling control constructs) in its standard library, in util.control package. ]&lt;/p&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-11-28T17:24:29.187" CommentCount="5" />
  <row Id="22086" PostTypeId="2" ParentId="22076" CreationDate="2010-11-28T17:27:11.073" Score="3" ViewCount="" Body="&lt;p&gt;Depending on how you choose to define it an automation tester could also be a developer. I come from a C++ background and I have been using unit testing frameworks like &lt;a href=&quot;http://www.ibm.com/developerworks/aix/library/au-ctools1_boost/&quot; rel=&quot;nofollow&quot;&gt;boost&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/CppUnit&quot; rel=&quot;nofollow&quot;&gt;cppunit&lt;/a&gt;, &lt;a href=&quot;http://cpptest.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;cpptest&lt;/a&gt; and &lt;a href=&quot;http://code.google.com/p/googletest/&quot; rel=&quot;nofollow&quot;&gt;google-test&lt;/a&gt; for automating regression and to use each of these frameworks effectively you need reasonable programming capabilities. &lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-11-28T17:27:11.073" />
  <row Id="22087" PostTypeId="2" ParentId="18406" CreationDate="2010-11-28T17:35:09.803" Score="0" ViewCount="" Body="&lt;p&gt;Knowledge of algorithms allow you to confidently say how your choices Will &lt;em&gt;scale&lt;/em&gt;!  I personally consider this to be necessary to be a senior programmer &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-28T17:35:09.803" />
  <row Id="22088" PostTypeId="2" ParentId="21480" CreationDate="2010-11-28T17:48:37.467" Score="1" ViewCount="" Body="&lt;p&gt;The academic paper &quot;&lt;a href=&quot;http://portal.acm.org/citation.cfm?id=512538&quot; rel=&quot;nofollow&quot;&gt;ESP: path-sensitive program verification in polynomial time&lt;/a&gt;&quot; includes examples for opening and closing files, in addition to verifying calls to fprintf. And the concept works with general FSMs, and this may be closer to what you are looking for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The bonus is that the ESP system verifies that you actually &lt;em&gt;obey&lt;/em&gt; these rules. Also related to this line of research is &lt;a href=&quot;http://mtc.epfl.ch/software-tools/blast/index-epfl.php&quot; rel=&quot;nofollow&quot;&gt;BLAST&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want requirements that are more explicit in the programming language, look into Foster's &lt;a href=&quot;http://www.cs.umd.edu/~jfoster/papers/pldi02.pdf&quot; rel=&quot;nofollow&quot;&gt;Flow-Sensitive Type Qualifiers&lt;/a&gt;. Which can be useful, for example, to check that a &quot;tainted&quot; string has been cleansed before being used in a SQL query.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on the nature of your project, you should look into the classic &lt;code&gt;push&lt;/code&gt; before a &lt;code&gt;peek&lt;/code&gt; or a &lt;code&gt;pop&lt;/code&gt; on a stack. I'm not sure how well the above approaches could handle that case, because counting the number of calls made is important.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-28T17:48:37.467" CommentCount="2" />
  <row Id="22089" PostTypeId="2" ParentId="22073" CreationDate="2010-11-28T17:49:29.273" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Lisp dialects are used all over the place - but it's not really mainstream... yet&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Jak and Daxter &lt;a href=&quot;http://www.youtube.com/watch?v=wwfV819Mve0&quot; rel=&quot;nofollow&quot;&gt;(YouTube demo)&lt;/a&gt; was written using GOAL (&lt;a href=&quot;http://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp&quot; rel=&quot;nofollow&quot;&gt;Game Oriented Assembly Lisp&lt;/a&gt;). &lt;a href=&quot;http://www.gamasutra.com/view/feature/2985/postmortem_naughty_dogs_jak_and_.php?page=2&quot; rel=&quot;nofollow&quot;&gt;From the Gamasutra review&lt;/a&gt;, I quote (emphasis added for clarity):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;5. GOAL rules!&lt;/strong&gt; Practically all of the run-time code (approximately half a&#xA;  million lines of source code) was&#xA;  written in GOAL (Game Object Assembly&#xA;  Lisp [acronym correct?]), Naughty Dog's own internally&#xA;  developed language, which was &lt;strong&gt;based on&#xA;  the Lisp programming language&lt;/strong&gt;. Before&#xA;  you dismiss us as crazy, consider the&#xA;  many advantages of having a custom&#xA;  compiler.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Lisp has a very consistent, small set&#xA;  of syntactic rules involving the&#xA;  construction and evaluation of lists.&#xA;  Lists that represent code are executed&#xA;  by evaluating the items that are in&#xA;  the list; if the head of the list is a&#xA;  function (or some other action), you&#xA;  could think of the other items in the&#xA;  list as being the parameters to that&#xA;  function. &lt;strong&gt;This simplicity of the Lisp&#xA;  syntax makes it trivial to create&#xA;  powerful macros that would be&#xA;  difficult or impossible to implement&#xA;  using C++&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Other &lt;a href=&quot;http://en.wikipedia.org/wiki/Category%3aCommon_Lisp_software&quot; rel=&quot;nofollow&quot;&gt;software written using Common Lisp&lt;/a&gt; includes:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://grid.bmk.com.au/INTRO.txt&quot; rel=&quot;nofollow&quot;&gt;Simple Grid Protocol&lt;/a&gt; for distributed computing&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/OpenMusic&quot; rel=&quot;nofollow&quot;&gt;OpenMusic&lt;/a&gt; for composing musical scores&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Dynamic_Analysis_and_Replanning_Tool&quot; rel=&quot;nofollow&quot;&gt;DART&lt;/a&gt; logistics tool used by the US military&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;the list goes on. It's fair to say that although Lisp is not exactly a fully mainstream language, it certainly solves a lot of difficult problems in a neat and elegant way.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-28T18:45:02.403" LastActivityDate="2010-11-28T18:45:02.403" CommentCount="14" />
  <row Id="22090" PostTypeId="2" ParentId="1376" CreationDate="2010-11-28T17:58:08.300" Score="2" ViewCount="" Body="&lt;p&gt;stick a keylogger on this tester's workstation!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-28T17:58:08.300" CommentCount="2" />
  <row Id="22091" PostTypeId="2" ParentId="22073" CreationDate="2010-11-28T17:58:57.063" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Igor_Engraver&quot; rel=&quot;nofollow&quot;&gt;Igor Engraver&lt;/a&gt;, a music notation program, is written in Lisp.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-11-28T17:58:57.063" />
  <row Id="22092" PostTypeId="2" ParentId="22070" CreationDate="2010-11-28T17:59:50.853" Score="1" ViewCount="" Body="&lt;p&gt;I sometimes find myself writing a loop that needs to do something different during the first iteration. For example, displaying &amp;lt;th&amp;gt; tags instead of &amp;lt;td&amp;gt; tags.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I handle this situation with a boolean flag. Something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;first = true&#xA;&#xA;while (some_condition)&#xA;    if (first)&#xA;        do_something&#xA;        first = false&#xA;    else&#xA;        do_something_else&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It seems silly to check the value of &lt;code&gt;first&lt;/code&gt; on every iteration when it's going to be false most of the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to have a looping option to specify a different loop body on the first iteration. There would be no need for a separate variable. The compiled code wouldn't need one, either, because the generated code would have two bodies, one for the first iteration and one for the rest.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2010-11-28T17:59:50.853" CommentCount="11" />
  <row Id="22094" PostTypeId="1" CreationDate="2010-11-28T18:12:23.563" Score="8" ViewCount="500" Body="&lt;p&gt;Hi all, has anyone got any recommendations on beginner's programming books that I can read away from a computer which are preferably language independent and teach more about different concepts such as OOP, functional programming, different data structures etc. as opposed to a specific language such as Java or C++. I know my needs may seem rather specific but I hope my question isn't too localised and thanks in advance, ell.&lt;/p&gt;&#xA;" OwnerUserId="8633" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-04-26T14:56:25.670" LastActivityDate="2011-04-26T14:56:25.670" ClosedDate="2010-12-01T12:14:13.923" Title="Good Programming Book I Can Read Away From the Computer" Tags="&lt;programming&gt;&lt;object-oriented&gt;&lt;ruby&gt;" AnswerCount="7" CommentCount="8" FavoriteCount="5" />
  <row Id="22095" PostTypeId="2" ParentId="22070" CreationDate="2010-11-28T18:44:50.337" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.google.com/search?q=%22continuation+passing+style%22&quot; rel=&quot;nofollow&quot;&gt;Continuation Passing Style&lt;/a&gt; comes to mind. Then, of course, you'd like to have &lt;a href=&quot;http://www.google.de/search?q=%22tail+call+optimization%22&quot; rel=&quot;nofollow&quot;&gt;Tail Call Optimization&lt;/a&gt; as well. &lt;/p&gt;&#xA;" OwnerUserId="7243" LastActivityDate="2010-11-28T18:44:50.337" CommentCount="24" />
  <row Id="22096" PostTypeId="2" ParentId="1376" CreationDate="2010-11-28T18:48:14.683" Score="6" ViewCount="" Body="&lt;p&gt;A few more suggestions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Add logging (and not just a keylogger :}) to your product code. &quot;No repro&quot; bugs may be flukes, but they may be memory or state corruption that only occurs on a dirty system used in unanticipated ways (i.e. like a customers computer). Logging or tracing information can help you figure out what &lt;em&gt;may&lt;/em&gt; have been wrong when the tester found the fluke.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Scan the rest of the &quot;no repro&quot; bugs in the database (or whatever you use for bug tracking). Often, the flukes clump together in one area of the product. If it looks like one component is at fault, code review the component for possible flakiness, add additional logging to that component - or both.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Take half an hour or so and watch your tester test. Their approach may give you an idea of what went wrong (e.g. &quot;interesting - I didn't know you could get to that dialog that way&quot;). You also may find that they skip a dialog or configuration step unintentionally. It's worth the time investment to get in their head a bit.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-11-28T18:48:14.683" />
  <row Id="22098" PostTypeId="2" ParentId="22094" CreationDate="2010-11-28T18:54:47.930" Score="4" ViewCount="" Body="&lt;h2&gt;The Pragmatic Programmer&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/IvDsb.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A generally good book that you can read quickly and easily is &lt;a href=&quot;http://www.pragprog.com/the-pragmatic-programmer&quot; rel=&quot;nofollow&quot;&gt;The Pragmatic Programmer&lt;/a&gt;. It's packed full of general programming advice and you don't need to be at a computer to absorb it's advice.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-28T19:09:16.977" LastActivityDate="2010-11-28T19:09:16.977" CommentCount="1" />
  <row Id="22099" PostTypeId="2" ParentId="22094" CreationDate="2010-11-28T18:55:09.360" Score="4" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://covers.oreilly.com/images/9780596007126/cat.gif&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://oreilly.com/catalog/9780596007126/&quot; rel=&quot;nofollow&quot;&gt;Head First Design Patterns&lt;/a&gt; was a good read without using a computer. There are plenty of pen-and-paper exercises to try things out.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2010-11-28T18:55:09.360" CommentCount="1" />
  <row Id="22100" PostTypeId="2" ParentId="19408" CreationDate="2010-11-28T19:07:20.540" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://seleniumhq.org/projects/ide/&quot; rel=&quot;nofollow&quot;&gt;Selenium IDE&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Selenium IDE&lt;/strong&gt; is an integrated development environment for Selenium scripts. It is implemented as a Firefox extension, and allows you to record, edit, and debug tests. Selenium IDE includes the entire Selenium Core, allowing you to easily and quickly record and play back tests in the actual environment that they will run.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="8736" LastActivityDate="2010-11-28T19:07:20.540" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="22101" PostTypeId="2" ParentId="1376" CreationDate="2010-11-28T19:43:30.333" Score="1" ViewCount="" Body="&lt;p&gt;There are two sorts of bug that are not reproducible:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Those that a tester (or user) has seen once but has either not been able to or not attempted to reproduce.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In these situations you should: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Very briefly check the basic course of actions which showed the defect to ensure that it's not reproducible.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Speak to the tester / user to see if there is any other information which may help.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Cross reference them with any other defects that might be related to see if you have enough information to look into them based on multiple instances.  You may find that this one issue does not give you enough information to go on however when coupled with a number of other issues it may suggest to you something not right that is worth investigating.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you still don't have enough to go on then you need to explain to the user / tester that you don't have enough information.  Outline to them politely what enough information would look like and why it's needed.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;2) Those where they can not be reliably reproduced, however there is enough evidence (in terms of repeated occurrences) to suggest that the defect does exist, then I tend to see that these are developer issues and that the developer - supported by the tester / user - needs to investigate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is likely to be slow and painful, you're likely going to have to walk the code, add more logging, look at the data and speak to the testers / users in depth but if there is enough evidence to suggest that it's likely there is an issue you do need to take ownership of it and do whatever needs to be done to fix it.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-28T19:54:14.393" LastActivityDate="2010-11-28T19:54:14.393" />
  <row Id="22103" PostTypeId="2" ParentId="22094" CreationDate="2010-11-28T19:52:02.633" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201835959&quot; rel=&quot;nofollow&quot;&gt;The Mythical Man Month&lt;/a&gt; (by Brooks) and &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201657880&quot; rel=&quot;nofollow&quot;&gt;Programming Pearls&lt;/a&gt; and &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201118890&quot; rel=&quot;nofollow&quot;&gt;More Programming Pearls&lt;/a&gt; (both by Bently) are full of good programming ideas and techniques.&lt;/p&gt;&#xA;" OwnerUserId="6173" LastActivityDate="2010-11-28T19:52:02.633" CommentCount="1" />
  <row Id="22104" PostTypeId="2" ParentId="1376" CreationDate="2010-11-28T19:52:28.037" Score="4" ViewCount="" Body="&lt;p&gt;I do QA on a large commercial code, this irritating scenario does come up way too often. Usually it is indicative of not having ironclad proceedures for building the binary on all the platforms we support. So if the developer builds his own code (which he has to do to debug and fix), and doesn't follow the same build proceedure to the letter, there is a chance that system dependent bugs will appear to magically vanish (or appear). Of course these things usually get closed with &quot;works for me&quot; in the bug database, and if they fail the next time that problem is run, the bug can be re-opened. Whenever I suspect a bug may be system dependent, I try to test it on a variety of platforms and report under which conditions it happens. Oftentimes a memory corruption issue onlt shows up if the corrupted data is of large enough magnitude to cause a crash. Some platforms (HW and OS combinations) may crash closer to the actual source of the corruption, and this can be very valuable for the poor guy that has to debug it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The tester needs to do some value added, beyond just reporting that his system shows a failure. I spend a lot of time screening out false positives -maybe the platform in question was overloaded, or the network had a glitch. And yes sometimes you can get something that is truly affected by random timing events, hardware bugs can often be like proto example: If&#xA;two data requests come back a exactly the same clock period, and the hardware logic for handling the potential conflict is faulty, then the bug will only show up intermittently. Likewise with parallel processing, unless by careful design you've constrained the solution to be independent of which processor happened to be faster, you can get bugs that only happen once in a blue moon, and their statistical imporbablity makes debugging a nightmare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also our code is being updated, usually many times daily, tracking down an exact sourcecode revision number for when it went south can be very useful information for the debugging effort. The tester shouldn't be in an adversarial relationship with the debuggers and developers, he is there as part of a team to improve the quality of the product.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-11-28T19:52:28.037" />
  <row Id="22105" PostTypeId="2" ParentId="22094" CreationDate="2010-11-28T20:02:27.800" Score="11" ViewCount="" Body="&lt;p&gt;On Software Development:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.stevemcconnell.com/cc.htm&quot; rel=&quot;nofollow&quot;&gt;Code Complete&lt;/a&gt; by Steve McConnell&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://oreilly.com/catalog/9780596510046&quot; rel=&quot;nofollow&quot;&gt;Beautiful Code&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.codersatwork.com/&quot; rel=&quot;nofollow&quot;&gt;Coders at Work&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201835959&quot; rel=&quot;nofollow&quot;&gt;The Mythical Man-Month&lt;/a&gt; by Fred Brooks&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;On Technology Entrepreneurship&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.foundersatwork.com/&quot; rel=&quot;nofollow&quot;&gt;Founders at Work&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some Historical Perspectives&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://books.google.com/books?id=8Jr6RWUZxQAC&quot; rel=&quot;nofollow&quot;&gt;Soul of a New Machine&lt;/a&gt; by Tracy Kidder&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.gpascalzachary.com/showstopper__the_breakneck_race_to_create_windows_nt_and_the_next_generation_at__50101.htm&quot; rel=&quot;nofollow&quot;&gt;Show Stopper&lt;/a&gt;: The Breakneck Race to Create Windows NT by G. Pascal Zachary&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.breakingwindows.net/&quot; rel=&quot;nofollow&quot;&gt;Breaking Windows&lt;/a&gt; by David Bank&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0887308554&quot; rel=&quot;nofollow&quot;&gt;Accidental Empires&lt;/a&gt; by Robert X. Cringley&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.amazon.com/gp/product/B00006FXQO&quot; rel=&quot;nofollow&quot;&gt;Triumph of the Nerds&lt;/a&gt; by Robert X. Cringley&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1738" LastEditorUserId="2815" LastEditorDisplayName="" LastEditDate="2010-11-28T23:20:30.410" LastActivityDate="2010-11-28T23:20:30.410" CommentCount="2" />
  <row Id="22106" PostTypeId="1" AcceptedAnswerId="22110" CreationDate="2010-11-28T20:08:58.093" Score="3" ViewCount="123" Body="&lt;p&gt;Other than using Emacs / Vim with ctags or cscope or both, are there alternatives to C++ code navigation of an existing code base? I used to use Source Insight on Windows and it worked for me fairly well. The main functionality I am looking for is quickly find definition of macros, variables and functions and places a function is referenced.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-11-28T20:27:56.393" Title="C++ code navigation on OS X" Tags="&lt;ide&gt;&lt;text-editor&gt;&lt;code-navigation&gt;" AnswerCount="1" />
  <row Id="22107" PostTypeId="2" ParentId="22073" CreationDate="2010-11-28T20:15:19.523" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.erlang.org/&quot; rel=&quot;nofollow&quot;&gt;Erlang&lt;/a&gt; is in use at &lt;a href=&quot;http://www.facebook.com/note.php?note_id=14218138919&quot; rel=&quot;nofollow&quot;&gt;Facebook&lt;/a&gt;, &lt;a href=&quot;http://www.labouseur.com/courses/erlang/erlang-at-yahoo.pdf&quot; rel=&quot;nofollow&quot;&gt;Yahoo&lt;/a&gt;, and &lt;a href=&quot;http://en.wikipedia.org/wiki/Amazon_SimpleDB&quot; rel=&quot;nofollow&quot;&gt;Amazon&lt;/a&gt;. It's also running embedded in Ericsson and Nortel ePBX (electronic Public Branch Exchange) telecom switches with ridiculous uptime. &lt;a href=&quot;http://couchdb.apache.org/&quot; rel=&quot;nofollow&quot;&gt;CouchDB&lt;/a&gt; is written in Erlang, as is &lt;a href=&quot;http://www.ejabberd.im/&quot; rel=&quot;nofollow&quot;&gt;ejabberd&lt;/a&gt;. There are more now, and more coming every day. Check out &lt;a href=&quot;http://totally-erlang.com/&quot; rel=&quot;nofollow&quot;&gt;Totally Erlang&lt;/a&gt; for Erlang jobs to see who's working on what.&lt;/p&gt;&#xA;" OwnerUserId="1738" LastActivityDate="2010-11-28T20:15:19.523" />
  <row Id="22108" PostTypeId="2" ParentId="22073" CreationDate="2010-11-28T20:16:41.973" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Functional Programming&lt;/strong&gt; is not just limited to a particular language, its also a &lt;em&gt;style&lt;/em&gt; of coding in my mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I say style of course I'm ignoring the &quot;pure&quot; functional requirement of not including any states..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In that sense, I suspect its used a lot in daily situations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just to give you an example, in a recent project I used &quot;functional&quot; style of programming to transform URL's into dynamic Site-maps (tree structure) on the fly. This was done by breaking down the problem into smaller functions which was then composed together to create the final solution : Data In -&gt; Function (F1+F2+Fn) -&gt; Tree&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-11-28T20:16:41.973" CommentCount="1" />
  <row Id="22109" PostTypeId="2" ParentId="22073" CreationDate="2010-11-28T20:20:40.003" Score="16" ViewCount="" Body="&lt;p&gt;I don't know of a lot of games or end-user applications written in functional languages, though I'm sure there are some. Games and end-user applications, though an important and visible part of the software market, are only a part of it. Remember, there is &lt;em&gt;huge&lt;/em&gt; amounts of software out there that you never see because it is orchestrating processes that don't have end-user application or game interfaces. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, F# is popular at Credit Suisse for quantitative analysis:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/b/dsyme/archive/2010/07/15/f-jobs-at-credit-suisse-london.aspx&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com/b/dsyme/archive/2010/07/15/f-jobs-at-credit-suisse-london.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you work there, you're probably not going to ever see the user interface to that software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, Erlang is popular for writing the software that controls mobile phone switches:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Erlang_(programming_language&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Erlang_(programming_language&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You probably don't think of making a phone call as an application, but someone had to write the software that controls the switch.&lt;/p&gt;&#xA;" OwnerUserId="6505" LastActivityDate="2010-11-28T20:20:40.003" CommentCount="3" />
  <row Id="22110" PostTypeId="2" ParentId="22106" CreationDate="2010-11-28T20:27:56.393" Score="2" ViewCount="" Body="&lt;p&gt;In XCode, which comes with the OS, you have the &quot;Jump to Definition&quot; function, which I usually assign to Cmd-F1 (VC has some similar shortcut if I remember correctly). You will have to create an XCode project for your code base though. I don't know if there are any automatic converters, say, from Makefile to XCode project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the time Jump to Definition works fine, except when the name of your .cpp module differs from the .h header name; also doesn't work for overloaded operators. There are some intermittent failures that I can't explain, but overall, on simple and straightforward C++ code it can do the job OK.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. there is no such thing like find references in XCode, but you have a project-wide Find function with an option to look for &quot;Symbols&quot;, which I think is almost exact equivalent of finding references.&lt;/p&gt;&#xA;" OwnerUserId="5635" LastActivityDate="2010-11-28T20:27:56.393" CommentCount="1" />
  <row Id="22111" PostTypeId="2" ParentId="22050" CreationDate="2010-11-28T21:11:27.587" Score="0" ViewCount="" Body="&lt;p&gt;I've worked at more than one place with these fields in portions of the software I needed to write.  None of them had exactly the same answers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It really depends on the needs of the people using the software..&lt;/p&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-11-28T21:11:27.587" />
  <row Id="22112" PostTypeId="2" ParentId="22050" CreationDate="2010-11-28T21:14:32.933" Score="0" ViewCount="" Body="&lt;p&gt;I am generally very liberal in what I allow, especially for phone numbers. And if you allow for international phone numbers there are literally hundreds or even thousands of types. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For states I have a drop down list to select from but make sure it is international friendly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For towns/city I often have a searchable list but allow them to override and enter their own. For street addresses I generally allow almost anything especially when loading from external data which is often full of rubbish addresses in an inconsistent format.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-28T21:14:32.933" />
  <row Id="22113" PostTypeId="2" ParentId="21977" CreationDate="2010-11-28T21:22:55.483" Score="3" ViewCount="" Body="&lt;p&gt;Reading a file line by line instead of just reading the whole line into a string and process the string in one take.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, it makes a difference in execution speed but is rarely worth the extra lines of code. It makes the code far less maintainable and increases code size.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, this probably doesn't make sense if the file is 3GB big but most of the files aren't that big (at least not the ones I'm working with ;-)).&lt;/p&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2010-11-28T21:22:55.483" CommentCount="1" />
  <row Id="22114" PostTypeId="2" ParentId="21480" CreationDate="2010-11-28T21:28:32.863" Score="2" ViewCount="" Body="&lt;p&gt;An upcoming &quot;best practice&quot; to handle this problem in the initialization phase of objects in Java, is to use a Builder pattern which has a so-called builder on which the steps are taken, and then an object is requested built.  If the steps are invalid, the builder fails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From &lt;a href=&quot;http://rwhansen.blogspot.com/2007/07/theres-builder-pattern-that-joshua.html&quot; rel=&quot;nofollow&quot;&gt;http://rwhansen.blogspot.com/2007/07/theres-builder-pattern-that-joshua.html&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Widget z = new Widget.Builder(&quot;3&quot;, 4.0).&#xA;                     manufacturer(&quot;333&quot;).&#xA;                     serialNumber(&quot;54321&quot;).build();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The Builder is a nested class to Widget, which then has methods called (returning the same builder object again) until the build() method is called, which creates and returns the Widget needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can reduce complexity quite a bit.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-28T21:28:32.863" CommentCount="2" />
  <row Id="22115" PostTypeId="2" ParentId="17650" CreationDate="2010-11-28T21:55:44.063" Score="0" ViewCount="" Body="&lt;p&gt;Just as a first thought, he could be referring to the syntactical styles. Yes there are a few differences in how certain things like string concatenation and arrays work but they are easily enough learned. Then there are pointers and things of that nature but once again, if you have solid knowledge of basic CS concepts then it shouldn't be a problem. I don't think that the statement is that far out of the ballpark, but I am by no means saying that it would be easy. C++ is a tough language to tackle.&lt;/p&gt;&#xA;" OwnerUserId="7007" LastActivityDate="2010-11-28T21:55:44.063" />
  <row Id="22116" PostTypeId="2" ParentId="19408" CreationDate="2010-11-28T21:59:59.630" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.debugbar.com/&quot; rel=&quot;nofollow&quot;&gt;IETester&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A nice little tool that lets you view your site in IE 5.5 and up. Very useful if you have to maintain sites for 'legacy' browsers.&lt;/p&gt;&#xA;" OwnerUserId="7007" LastActivityDate="2010-11-28T21:59:59.630" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="22117" PostTypeId="2" ParentId="22070" CreationDate="2010-11-28T22:00:21.177" Score="8" ViewCount="" Body="&lt;p&gt;Why not mash a few answers into one?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;while (expr) {&#xA;&#xA;    // Executed every iteration, unless first{} is present.&#xA;    // May be explicitly called rest{} if you like first{} to come first.&#xA;&#xA;    // Blocks may return results, and consequently be used in expressions.&#xA;    return expr;&#xA;&#xA;} first {&#xA;&#xA;    // Executed only on the first iteration.&#xA;&#xA;} pre {&#xA;&#xA;    // Executed before every iteration.&#xA;&#xA;} post {&#xA;&#xA;    // Executed after every iteration.&#xA;&#xA;} catch (oops) {&#xA;&#xA;    // All blocks are implicitly try{}ed if followed by a catch{}.&#xA;&#xA;} finally {&#xA;&#xA;    // Executes after the block completes, regardless of exceptions.&#xA;&#xA;} else {&#xA;&#xA;    // Executed if the loop body or rest{} never executes.&#xA;&#xA;} never {&#xA;&#xA;    // Executes only when a client is present.&#xA;&#xA;} drop (bad, worse), // Explicitly ignore certain exceptions.&#xA;  until (expr);      // Here, have a post-body condition, too.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;An extensible, generalised flow-control construct syntax in an imperative language would be rather useful and entertaining. Until that shows up, guess I'll just use Lisp or something.&lt;/p&gt;&#xA;" OwnerUserId="2107" LastEditorUserId="2107" LastEditorDisplayName="" LastEditDate="2010-12-31T08:24:50.347" LastActivityDate="2010-12-31T08:24:50.347" CommentCount="5" />
  <row Id="22118" PostTypeId="1" AcceptedAnswerId="22128" CreationDate="2010-11-28T22:04:58.163" Score="13" ViewCount="795" Body="&lt;p&gt;I'm currently thinking about job titles for my team of programmers. Historically it's been pretty flat, with most people just &quot;Programmer&quot;, and a very few people &quot;Senior Programmer&quot;. But both those titles cover a wide diversity of experience and salary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was thinking of replacing this with a progression of five levels - &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Developer&lt;/li&gt;&#xA;&lt;li&gt;Senior Developer&lt;/li&gt;&#xA;&lt;li&gt;Principal Developer&lt;/li&gt;&#xA;&lt;li&gt;Architect&lt;/li&gt;&#xA;&lt;li&gt;Senior Architect&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'd be interested to hear what people think are the pros and cons of such a scheme. On the positive side, I've found that programmers actually covet good titles. On the negative side, it's been suggested to me that such a hierarchy can create resentment. I'd welcome your thoughts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Thanks for all the great answers! It's certainly changed my thinking on this subject, and I will probably retain the flater structure at this point.&lt;/p&gt;&#xA;" OwnerUserId="8400" LastEditorUserId="8400" LastEditorDisplayName="" LastEditDate="2010-11-30T03:31:52.477" LastActivityDate="2010-11-30T03:31:52.477" Title="Should we use progressing job titles for programmers?" Tags="&lt;job-title&gt;" AnswerCount="11" CommentCount="8" FavoriteCount="1" />
  <row Id="22119" PostTypeId="2" ParentId="14422" CreationDate="2010-11-28T22:11:12.433" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;How do you answer (well-intentioned)&#xA;  people who try to talk to you about&#xA;  programming using the catch-phrases of&#xA;  yesteryear? (&quot;Web 2.0&quot; could apply for&#xA;  web development, I am sure that there&#xA;  are similar terms in other areas as&#xA;  well.) Just nod and say yes? Try to&#xA;  explain yourself?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I usually try to get some free food or drink out of the situation while I distract them and get them to talk about something else. Most people are not nearly as attached to the subject-at-hand as it seems. Another trick is, &quot;can I see you wallet?&quot; and then you abscond.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-11-28T22:11:12.433" />
  <row Id="22120" PostTypeId="2" ParentId="22118" CreationDate="2010-11-28T22:12:01.770" Score="14" ViewCount="" Body="&lt;p&gt;Those progressive titles remind me my martial arts classes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That was very &lt;strong&gt;motivating&lt;/strong&gt;! We worked hard to get to the next level, ... &lt;strong&gt;by fighting each others&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is exactly what is going to happen in your team :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the difference that in martial arts classes we where there to learn how to fight &lt;strong&gt;individually&lt;/strong&gt;. In your team they should learn how to &lt;strong&gt;collaborate&lt;/strong&gt; effectively instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's why I suggest you not to use progressive titles in teams.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-29T14:23:42.173" LastActivityDate="2010-11-29T14:23:42.173" CommentCount="10" />
  <row Id="22121" PostTypeId="2" ParentId="22118" CreationDate="2010-11-28T22:12:17.237" Score="3" ViewCount="" Body="&lt;p&gt;I would only suggest progressive titles if there is some differentiation in pay, responsibility, and/or job duties.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-28T22:12:17.237" CommentCount="1" />
  <row Id="22122" PostTypeId="2" ParentId="22118" CreationDate="2010-11-28T22:14:40.373" Score="6" ViewCount="" Body="&lt;p&gt;I tend to think of Architect as a role rather than a career progression. Someone could be an incredible developer and provide tremendous value, but not have the systems thinking needed for an architect role. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We use a similar heirarchy for career progression (without the architect titles) - e.g.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Developer&lt;/li&gt;&#xA;&lt;li&gt;Developer II&lt;/li&gt;&#xA;&lt;li&gt;Senior Developer&lt;/li&gt;&#xA;&lt;li&gt;Principal Developer&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Perhaps you could have one more level beyond Principal where the &lt;em&gt;role&lt;/em&gt; can be Architect or uber-Developer, but the title is something more generic?&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-11-28T22:14:40.373" CommentCount="1" />
  <row Id="22123" PostTypeId="2" ParentId="22118" CreationDate="2010-11-28T22:15:16.877" Score="3" ViewCount="" Body="&lt;p&gt;It looks redundant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the difference between &quot;senior&quot; and &quot;principal&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And isn't an architect &quot;senior&quot; by definition?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Developer -&amp;gt; Senior Developer -&amp;gt; Architect&lt;/code&gt; should suffice for all intents and purposes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe you should approach the problem from a different angle. Instead of abstract titles with those seniority gradations issue titles which describe the particular role of the persons in question. It's not immediately clear where the difference lies between three &quot;Senior Developers&quot;, but it's obvious what they do if they are called &quot;Online division architect&quot;, &quot;Integration team leader&quot; and &quot;Custom solutions architect&quot;.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-11-28T22:27:44.250" LastActivityDate="2010-11-28T22:27:44.250" CommentCount="1" />
  <row Id="22124" PostTypeId="1" AcceptedAnswerId="22130" CreationDate="2010-11-28T22:22:07.170" Score="11" ViewCount="351" Body="&lt;p&gt;Is it actually possible to develop software without also architecting it?&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-11-29T11:05:00.777" Title="Are 'Architect' and 'Developer' separate roles?" Tags="&lt;career&gt;&lt;team&gt;&lt;architecture&gt;&lt;job-title&gt;" AnswerCount="6" CommentCount="6" FavoriteCount="2" />
  <row Id="22125" PostTypeId="2" ParentId="22124" CreationDate="2010-11-28T22:28:14.263" Score="4" ViewCount="" Body="&lt;p&gt;It can be seen that the term &quot;development&quot; is a general word for the entire process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If broken apart it consists of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Analysis of requirements&lt;/li&gt;&#xA;&lt;li&gt;Elaborating concepts&lt;/li&gt;&#xA;&lt;li&gt;Architecting&lt;/li&gt;&#xA;&lt;li&gt;Preparing specs&lt;/li&gt;&#xA;&lt;li&gt;Implementing the thing&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In that regard I'd say it is rather unlikely that you will develop software without &quot;architecting&quot; it in one way or another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, the terminology about programming process is notoriously imprecise. Developing, implementing, coding, designing, architecting, it all is used and misused on a daily basis. Don't think much of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, the meaning is also subjective. Whatever a word means, often depends on a person who's saying it.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-11-28T22:28:14.263" />
  <row Id="22127" PostTypeId="2" ParentId="22124" CreationDate="2010-11-28T22:31:38.440" Score="7" ViewCount="" Body="&lt;p&gt;Software Architects who become too disconnected from the actual coding process become ineffective.  They must be developers themselves.  As Uncle Bob Martin once put it:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Even though [the software architect] is designing the whole&#xA;  thing, I think it would be appropriate&#xA;  for him to be able to dive down into&#xA;  [coding] for a day or two and make sure&#xA;  that at the bottom level these&#xA;  decisions that he is making at the top&#xA;  level make sense. He should, to some&#xA;  extent, live in the bed that he is&#xA;  making for everybody else.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://s3.amazonaws.com/hanselminutes/hanselminutes_0171.pdf&quot; rel=&quot;nofollow&quot;&gt;http://s3.amazonaws.com/hanselminutes/hanselminutes_0171.pdf&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;See also&lt;/strong&gt;  &lt;br&gt;&#xA;&lt;a href=&quot;http://en.wikipedia.org/wiki/Software_architect&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Software_architect&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-28T22:31:38.440" CommentCount="1" />
  <row Id="22128" PostTypeId="2" ParentId="22118" CreationDate="2010-11-28T22:31:42.230" Score="43" ViewCount="" Body="&lt;p&gt;This is wrong in so many ways I'm struggling to express it:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Architect is a role of it's own, it's not just a programmer with more experience.  Don't confuse the two.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Second as a manager I can't think of anything worse than sorting this out:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;What do these titles actually mean?  What does a principal developer do that a senior developer doesn't?  Do they get paid more?  Do you expect more from them?  How do you measure this?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Is there completely free movement between these?  So if all your seniors start performing to a principal level do they all become principals?  If not how are you going to cope with the resentment and demotivation that will come about (and massively outweigh the motivation boost the few people who get promoted gain), as well as the competition when you actually want people pulling together.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;How are you going to structure your project when a senior developer happens to know the most about a key technology but is being forced to answer to an architect who hardly understands it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Third, as a developer:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;To the outside world: yes I like a decent title but I also want it to mean something and it to be clear to everyone what that is.  The outside world don't understand this structure and don't care.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Internally I want projects and teams where people are being given opportunities and rewarded based on what they're doing there and then, not based on something they may have done previously which has now been cast in stone.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I favour two levels: developers (who code) and senior developers (who code but who also &lt;strong&gt;regularly and constantly&lt;/strong&gt; provide mentoring, process improvement suggestions and leadership).  That's it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:  But I would say you get significant credit for not including &quot;Junior Developer&quot; or &quot;Trainee Developer&quot;, possibly the worst job titles in the world.  Don't give someone the title &quot;Junior Developer&quot; unless you want them to act in a &quot;Junior&quot; way.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-29T08:33:12.573" LastActivityDate="2010-11-29T08:33:12.573" CommentCount="6" />
  <row Id="22129" PostTypeId="2" ParentId="14422" CreationDate="2010-11-28T22:34:33.507" Score="0" ViewCount="" Body="&lt;p&gt;I would ask what they mean by web 2.0 and try to explain what it really is compared to their views on it. They could view it as that horrible style with lots of gradients, reflections, and SUPER ROUND corners (to the tune of 50px).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Following their explanation, I would attempt to explain that web 2.0 really is a meaningless term, which is mostly the expansion of social networking and the ability for people to easily communicate. It really has nothing to do with the way your site works, unless you're building a social network of sorts.&lt;/p&gt;&#xA;" OwnerUserId="7327" LastActivityDate="2010-11-28T22:34:33.507" />
  <row Id="22130" PostTypeId="2" ParentId="22124" CreationDate="2010-11-28T22:36:21.587" Score="13" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is it actually possible to develop software without also architecting it?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Yes&lt;/strong&gt;, and either:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Your software will suck&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Someone else must be performing the role of architect.  In order for software development to be effective there must be an architect, and if their team is large enough to warrant developers that are not also &quot;architecting&quot; (or engineering), then those who are working as architect must be providing enough direction, technical specifications, frameworks, task breakdowns, etc. that tasks can be completed by those who are &lt;a href=&quot;http://programmers.stackexchange.com/questions/4951/what-are-the-key-differences-between-software-engineers-and-programmers/4964#4964&quot;&gt;programmers but not engineers&lt;/a&gt;;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-11-28T22:36:21.587" CommentCount="1" />
  <row Id="22131" PostTypeId="2" ParentId="21891" CreationDate="2010-11-28T22:41:11.860" Score="6" ViewCount="" Body="&lt;p&gt;I think Stroustrup is entirely correct. Adequately comparing two languages on their technical merits requires enough familiarity with both to write idiomatic code and use the same design patterns normally used by programmers who are very productive in both languages. Someone who doesn't have that level of knowledge of both languages may see things that aren't explicitly provided for by the language that he's not as familiar with, and assume there would be problems as a result. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, someone who doesn't use Python on a regular basis may assume that Python users regularly have trouble because of indentation. Or someone not familiar with Common Lisp may look at the lack of polished libraries, but not know that the FFI is powerful enough to write wrappers for C libraries with nominal effort. Someone not familiar with Ruby may see the lack of static typing and assume type errors would be a major problem. Finally, someone not familiar with Haskell may see the lack of assignment, and assume it can't handle state.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now all of this assumes that languages actually are compared only on their technical merits.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-28T22:41:11.860" CommentCount="1" />
  <row Id="22132" PostTypeId="2" ParentId="20708" CreationDate="2010-11-28T22:42:33.917" Score="1" ViewCount="" Body="&lt;p&gt;Some guys actually built a version of Basecamp with Drupal, the result is free, it's called rockclimbr - &lt;a href=&quot;http://www.doitwithdrupal.com/2008/sessions/basecamp-built-drupal&quot; rel=&quot;nofollow&quot;&gt;http://www.doitwithdrupal.com/2008/sessions/basecamp-built-drupal&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I looked into it once, it was pretty good, just something I didn't need.&lt;/p&gt;&#xA;" OwnerUserId="7327" LastActivityDate="2010-11-28T22:42:33.917" />
  <row Id="22136" PostTypeId="2" ParentId="22124" CreationDate="2010-11-28T22:49:12.740" Score="1" ViewCount="" Body="&lt;p&gt;To answer the headline question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Yes&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least in so far as they don't have to be done by the same person - a team might have one architect and several developers who work at a lower level. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pragmatically an architect has to have reasonably current development skills and I suspect in most cases contributes to the development at a design and code level. Frequently for smaller projects you do everything. But for a &lt;em&gt;big&lt;/em&gt; project? It can be enough to do on its own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But... when I had a dev team - I was doing architecture (or at least making architectural decisions) but doing very little dev work - company of 8, dev team of 4 including me... not a lot of opportunity for me to concentrate on coding whilst ensuring that the other 3 devs had requirements and specs and were able to work on stuff without interruptions whilst having their questions answered promptly.&lt;/p&gt;&#xA;" OwnerUserId="866" LastEditorUserId="866" LastEditorDisplayName="" LastEditDate="2010-11-29T10:58:58.937" LastActivityDate="2010-11-29T10:58:58.937" />
  <row Id="22137" PostTypeId="2" ParentId="22124" CreationDate="2010-11-28T23:26:48.420" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;No, developer and architect are not completely separate roles&lt;/strong&gt; in a healthy development organization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having either architects who never lower themselves to the code, or developers who never think about the architectural impact of the changes they make is a recipe for misunderstanding, &quot;othering&quot;, and inefficiency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're usefully separate conceptual glasses through which to view the world but you can't usefully do one and never the other.&lt;/p&gt;&#xA;" OwnerUserId="7398" LastActivityDate="2010-11-28T23:26:48.420" CommentCount="1" />
  <row Id="22138" PostTypeId="2" ParentId="22118" CreationDate="2010-11-28T23:29:11.460" Score="3" ViewCount="" Body="&lt;p&gt;No, don't.  It's too easy to guess salary based on structured advancement, that is, from what I've seen/experienced.  Other times it's also insulting to see some dot-com-hire-them-if-they-breath developer who never improved beyond a &quot;learn C++ in 24 hours&quot; book (and probably spent that much time on it too) running around with a Senior Developer title when someone 5 years younger deserved it more.  In general, the title should be dictated by the role.  &quot;Team Lead&quot; leads the teams, &quot;Senior Developers&quot; often mentor other developers, &quot;Junior Developers&quot; have less than 2 years experience and &quot;Developers&quot; are the bulk of what you &lt;em&gt;should&lt;/em&gt; have.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-11-28T23:29:11.460" CommentCount="1" />
  <row Id="22139" PostTypeId="2" ParentId="21480" CreationDate="2010-11-28T23:36:55.793" Score="3" ViewCount="" Body="&lt;p&gt;Maybe I'm misunderstanding, but would the following fit?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;code&gt;java.lang.Thread&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;must call &lt;code&gt;thread.start()&lt;/code&gt; before &lt;code&gt;thread.stop()&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;code&gt;InputStream&lt;/code&gt; and &lt;code&gt;OutputStream&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;should not call other methods after calling &lt;code&gt;close()&lt;/code&gt; &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-11-28T23:36:55.793" CommentCount="1" />
  <row Id="22140" PostTypeId="2" ParentId="22070" CreationDate="2010-11-28T23:58:41.653" Score="4" ViewCount="" Body="&lt;p&gt;Icon-style expressions with built-in backtracking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Python gets a lot of the Icon generator benefits - and does a better job of them in general, IMO. And in principle the backtracking was just a kind of exception throw, but it was the simplicity of expressions the rough equivalent of...&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;x = (a / b) else c;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;to handle fail-cases like division by zero.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where Icon went nuts - no boolean-returning comparison operators. The comparisons always either succeeded or triggered backtracking, and there was some other semantic issue which I'm now desperately trying to remember that... well, let's just say it's probably more repressed than forgotten.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always thought they should have an &lt;code&gt;if&lt;/code&gt; expression with no else part - &lt;code&gt;if (condition, success-value)&lt;/code&gt; kind of thing, backtracking if the condition returns false - and drop the weird comparisons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt; I remember - obvious really. A comparison with two arguments either succeeds or fails - it doesn't compute a new value to return. So when it succeeds, what &lt;em&gt;does&lt;/em&gt; it return? Answer - one of the arguments. But if you write &lt;code&gt;a &amp;gt; b&lt;/code&gt;, which is the logical argument to return - &lt;code&gt;a&lt;/code&gt; or &lt;code&gt;b&lt;/code&gt;? And what if you write &lt;code&gt;b &amp;lt; a&lt;/code&gt; instead? I &lt;em&gt;think&lt;/em&gt; it always returned the right argument, which makes as much sense as anything, but it still usually seemed like the wrong argument to me.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastEditorUserId="8709" LastEditorDisplayName="" LastEditDate="2010-11-29T09:01:39.917" LastActivityDate="2010-11-29T09:01:39.917" />
  <row Id="22141" PostTypeId="2" ParentId="21926" CreationDate="2010-11-29T00:01:57.860" Score="0" ViewCount="" Body="&lt;p&gt;Slightly off-topic, but nevertheless related: Should graphic designers be better programmers? &lt;a href=&quot;http://blog.teambox.com/fire-your-designer&quot; rel=&quot;nofollow&quot;&gt;http://blog.teambox.com/fire-your-designer&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-11-29T00:01:57.860" />
  <row Id="22142" PostTypeId="2" ParentId="16702" CreationDate="2010-11-29T00:09:21.647" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Geb&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.grails.org/plugin/geb&quot; rel=&quot;nofollow&quot;&gt;http://www.grails.org/plugin/geb&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-11-29T00:09:21.647" />
  <row Id="22143" PostTypeId="2" ParentId="9614" CreationDate="2010-11-29T00:12:27.847" Score="0" ViewCount="" Body="&lt;p&gt;A scripter who has formal CS training (and, at the minimum, understands how the Operating System works and knows how the script was executed/interpreted in the scripting environment, and how that scripting environment interacts with the Operating System in return) can easily switch to doing a programmer's job. There is no barrier, just learn more API.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some scripters can also have the same niche expertise as programmers. For example, some scripters know techniques for hiding network latencies or performing multiple intensive / long latency tasks in parallel. Those knowledge are not exclusive to programmers.&lt;/p&gt;&#xA;" OwnerUserId="620" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-11-30T06:51:52.900" LastActivityDate="2010-11-30T06:51:52.900" />
  <row Id="22144" PostTypeId="2" ParentId="22094" CreationDate="2010-11-29T00:22:54.603" Score="0" ViewCount="" Body="&lt;p&gt;You should read Bjarne Stroustrup's &lt;em&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201543303&quot; rel=&quot;nofollow&quot;&gt;The Design and Evolution of C++&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since it talks about many language alternatives that are &lt;em&gt;not&lt;/em&gt; in C++ you won't have to read it at a computer; you can't type in the examples because they wouldn't work anyway!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a wonderful story about all of the design decisions, and because [in an earlier edit] you mentioned you wanted to know more about C++, this is a good guide. But it's nice to read for the &lt;strong&gt;wider OO concepts&lt;/strong&gt; too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After reading &lt;em&gt;D&amp;amp;E&lt;/em&gt; (as it is called) C++ made a lot more sense. After seeing all of these good ideas that could have gone into language, and then seeing the reasons why they were ultimately rejected, you get a good feeling for the constraints that Bjarne had to work with. It also lets you internalize the design of the language, and you should at least know one language in depth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, yes, inside of C++ is a cleaner language screaming to get out. I probably wouldn't have that one be my first choice either, though.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-11-29T00:22:54.603" />
  <row Id="22145" PostTypeId="2" ParentId="16702" CreationDate="2010-11-29T00:49:41.867" Score="1" ViewCount="" Body="&lt;p&gt;I'm trying out the &lt;a href=&quot;http://www.grails.org/plugin/vaadin&quot; rel=&quot;nofollow&quot;&gt;Vaadin plug-in&lt;/a&gt; to handle my web app's user interface.  Vaadin is a wrapper around GWT, and the Vaadin plug-in for Grails has made it really easy to get some fancy UI's up and running fast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://demo.vaadin.com/sampler/&quot; rel=&quot;nofollow&quot;&gt;wide selection of UI components&lt;/a&gt; is what sold Vaadin for me.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastEditorUserId="3907" LastEditorDisplayName="" LastEditDate="2010-11-29T01:00:09.303" LastActivityDate="2010-11-29T01:00:09.303" />
  <row Id="22146" PostTypeId="1" AcceptedAnswerId="22151" CreationDate="2010-11-29T01:01:43.157" Score="17" ViewCount="908" Body="&lt;p&gt;I have a couple of developers at my company who wish to move from programming into architecture. What are the best books out there on the theory and practice of software architecture? Include a cover picture if you can. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Feel free to include general books, and also books that relate to a specific technology.&lt;/p&gt;&#xA;" OwnerUserId="8400" LastActivityDate="2011-02-15T16:18:02.560" CommunityOwnedDate="2011-01-22T00:43:07.640" Title="Best books on the theory and practice of software architecture?" Tags="&lt;best-practices&gt;&lt;books&gt;&lt;architecture&gt;" AnswerCount="16" CommentCount="1" FavoriteCount="21" />
  <row Id="22147" PostTypeId="2" ParentId="21480" CreationDate="2010-11-29T01:22:14.983" Score="1" ViewCount="" Body="&lt;p&gt;The C++ STL has a variety of rules about when iterators are invalidated. For example, adding an element to a vector may cause all the iterators into that vector to be invalidated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any container library must have special cases for empty containers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've dealt with a database api, IBPP, it required a -&gt;Start() call to the transaction object, before creating any statements associated with the transaction. Eventually you would call -&gt;Commit(); (or -&gt;Rollback() if things didn't go well) Other APIs are similar, but probably a bit more complex because of issues such as autocommit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've certainly dealt with internal code that acted that way. However, I considered that a bug. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The pygame module in python requires that call .init() and then .display.set_mode() to setup a graphics mode. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everything I can think of has relatively trivial versions of this. I can't think of any cases that has a really complex version like you really want.&lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-11-29T01:22:14.983" CommentCount="1" />
  <row Id="22148" PostTypeId="2" ParentId="22146" CreationDate="2010-11-29T01:31:41.430" Score="10" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/glHcF.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, I would encourage these developers not to move into architecture and totally forget about programming. If they do, they won't have any respect from programmers and they won't be properly equipped to make architectural decisions.&lt;/p&gt;&#xA;" OwnerUserId="4881" LastActivityDate="2010-11-29T01:31:41.430" CommunityOwnedDate="2011-01-22T00:43:07.640" />
  <row Id="22149" PostTypeId="2" ParentId="22073" CreationDate="2010-11-29T01:45:22.277" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://xmonad.org/&quot; rel=&quot;nofollow&quot;&gt;Xmonad&lt;/a&gt;, a windowing manager, is written in Haskell.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-11-29T01:45:22.277" CommentCount="1" />
  <row Id="22150" PostTypeId="2" ParentId="22118" CreationDate="2010-11-29T01:48:41.550" Score="1" ViewCount="" Body="&lt;p&gt;The title should match the job duties. You can attach different levels to differentiate levels of salary/bonus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a professional, you want your title to reflect what you do and save you the trouble of going into a lengthy description when you meet someone at a convention or job interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not sure you have describe some problem this is going to solve other than being flat. Your team is probably not so large that everyone doesn't know who is who. It may show those outside your department that people are progressing.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-29T01:48:41.550" />
  <row Id="22151" PostTypeId="2" ParentId="22146" CreationDate="2010-11-29T01:56:32.523" Score="7" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/qD0zh.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321127420&quot; rel=&quot;nofollow&quot;&gt;(link to the book)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a pretty good book, although it deals not with software architecture in general, but with architecture of business applications.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-29T01:56:32.523" CommunityOwnedDate="2011-01-22T00:43:07.640" CommentCount="3" />
  <row Id="22152" PostTypeId="2" ParentId="22118" CreationDate="2010-11-29T01:59:52.317" Score="3" ViewCount="" Body="&lt;p&gt;Twice in my career an employer has asked what I wanted to appear on my business card.  Both times I answered, &quot;Software Engineer&quot; and both times I received cards that said &quot;Senior Software Engineer&quot;. Presumably this was because the &lt;em&gt;senior&lt;/em&gt; qualifier sounded 'more professional'. Whatever...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I took from this that titles are pretty much meaningless. The next time anyone asks, I know &lt;em&gt;exactly&lt;/em&gt; what title I'll choose:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=Y5RQNBFKK30&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=Y5RQNBFKK30&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1326" LastActivityDate="2010-11-29T01:59:52.317" CommentCount="1" />
  <row Id="22153" PostTypeId="1" AcceptedAnswerId="22156" CreationDate="2010-11-29T02:10:47.833" Score="7" ViewCount="398" Body="&lt;p&gt;So I have been developing with PHP for a year and a half now. Somewhere along those times, I decided to pick up skills in Python and Ruby, and learn ASP with C# just recently (as my first compiled language). Adding to that I'm a sucker for good CSS and Javascript coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I'm worried about is that this is a huge undertaking. Please don't tell me &quot;you should focus on one language&quot; right now because it's just that my damned brain is telling me to study the aforementioned languages and get up and running ASAP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm 21, and work at a small web dev company. They're not that strict so I can sneak some time learning Python and improving my PHP. At home I work with Ruby and C#. I have done the following to effectively manage my learning process:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Focus on web-only projects&lt;/li&gt;&#xA;&lt;li&gt;Reuse my codes from PHP and convert rewrite them according to the language syntax (to Ruby, to Python)&lt;/li&gt;&#xA;&lt;li&gt;Create an online blog to store some of my codes in case I need to get back to them later&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I know it's quite insane to juggle 4 server languages and 2 frontend languages at once but hey, I am having fun doing this. I'm not saying I want to master them immediately, because I know it takes years to master a single language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you done this before? How did you manage your learning process? Did you give up halfway and just focused on one?&lt;/p&gt;&#xA;" OwnerUserId="474" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-04-26T14:56:46.527" LastActivityDate="2011-04-27T02:04:02.100" Title="Effectively Learning 3 Languages Simultaneously" Tags="&lt;learning&gt;&lt;web-development&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="0" />
  <row Id="22154" PostTypeId="2" ParentId="22153" CreationDate="2010-11-29T02:14:05.260" Score="2" ViewCount="" Body="&lt;p&gt;I haven't done something like that simultaneously but I knew someone who did in high school. He basically floundered and he really couldn't do much of anything in any of the languages. I would personally suggest you stick with one language until you get it down pat and them move to another. &lt;/p&gt;&#xA;" OwnerUserId="7007" LastActivityDate="2010-11-29T02:14:05.260" />
  <row Id="22155" PostTypeId="2" ParentId="22079" CreationDate="2010-11-29T02:25:25.307" Score="1" ViewCount="" Body="&lt;p&gt;You can use TCP over just about any high-performance network. &lt;a href=&quot;http://www.openfabrics.org/&quot; rel=&quot;nofollow&quot;&gt;OpenFabrics&lt;/a&gt; (a software stack for RDMA networks like InfiniBand and iWARP) has the &quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Sockets_Direct_Protocol&quot; rel=&quot;nofollow&quot;&gt;sockets direct protocol&lt;/a&gt;&quot;. Further, 10 GigE in all its forms was built specifically to provide compatibility with legacy socket code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So feel free to use TCP on your high-performance network. It won't have the absolute best latency advantages compared to, say, using the underlying verbs. But it should be fast enough for most customers' needs.&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-11-29T02:25:25.307" />
  <row Id="22156" PostTypeId="2" ParentId="22153" CreationDate="2010-11-29T02:30:55.430" Score="7" ViewCount="" Body="&lt;p&gt;Dude, what's the question again?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The simple answer is that if you're learning for the sake of learning and saying that you know this and that language, then that's okay. But the consequence is that you totally, absolutely suck at all of them after this exercise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The difficulty in shifting across languages is not the syntax and the concepts. Those are general, really. The difficulty is in mastering the nuances. How does the CLR allocate memory for a generic object in C#? How does Ruby execute its iterators? How does PHP parse strings? How does Python do its thing (lame analogy coz I haven't touched Python).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Translating one program into another ala Rosetta stone across several languages is totally, totally irresponsible because each language will have its own &quot;right way&quot; of doing things. The exercise will only make you succeed in something akin to having a Chinese guy translate French to Chinese and then Chinese to English to write a French-English dictionary. It's a disaster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suck up your pride and your programming ADHD and &lt;em&gt;focus on one thing&lt;/em&gt;. Or focus on just two languages at most, making sure your priority is doing things the right way, on both languages.&lt;/p&gt;&#xA;" OwnerUserId="2960" LastActivityDate="2010-11-29T02:30:55.430" CommentCount="5" />
  <row Id="22157" PostTypeId="2" ParentId="22153" CreationDate="2010-11-29T02:47:53.323" Score="11" ViewCount="" Body="&lt;p&gt;They are all programming languages, and aside from syntax confusion issues which your compiler can catch for you, there is nothing wrong with working in multiple languages at once.  There was a time not long ago where I used Java and MySQL at work, PhP, Javascript and MySQL for one side project and C++ for another.  I switched between them often. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find its actually quite pleasant to use more than one language at once.  It keeps me thinking about design patterns and over all design and prevents me from getting stuck in language specific stuff.  Often I find I'll get an idea for a pattern from working in one language that I can then apply to another.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;tl;dr Go for it.  You'll enjoy it and it isn't that hard on you.&lt;/p&gt;&#xA;" OwnerUserId="8681" LastActivityDate="2010-11-29T02:47:53.323" CommentCount="1" />
  <row Id="22158" PostTypeId="1" AcceptedAnswerId="29343" CreationDate="2010-11-29T03:01:04.657" Score="0" ViewCount="89" Body="&lt;p&gt;Roundup issue tracker is pretty minimalistic by default, and it does not bring any specific workflow with itself. It was once &lt;a href=&quot;http://rephrase.net/days/08/10/roundup-dreamhost&quot; rel=&quot;nofollow&quot;&gt;called&lt;/a&gt; ‘so configurable that it’s probably better described as a lightweight tracker-oriented framework.’&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you ever used Roundup extensively or seen some interesting use cases? If so, please share an example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(If you don’t consider your workflow special enough, at least tell how do you understand &amp;amp; utilize &lt;code&gt;superseder&lt;/code&gt; field in the default ‘classic’ template, which alone could be interpreted differently—see &lt;i&gt;old.nabble.com/Superseder-td13792131.html&lt;/i&gt;)&lt;/p&gt;&#xA;" OwnerUserId="8266" LastActivityDate="2010-12-23T00:47:05.880" Title="How do you use Roundup issue tracker?" Tags="&lt;bug-tracking&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="22159" PostTypeId="2" ParentId="22146" CreationDate="2010-11-29T03:01:15.610" Score="6" ViewCount="" Body="&lt;p&gt;The commonly cited/referenced book on software architectures, and the book used when I took the Software Architecture course at my university is &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321154959&quot; rel=&quot;nofollow&quot;&gt;Software Architecture in Practice (2nd Edition) by Len Bass, Paul Clements, and Rick Kazman&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least one professor who teaches the course has switched the textbook to (I believe - I need to double check this) &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321112296&quot; rel=&quot;nofollow&quot;&gt;Software Systems Architecture by Nick Rozanski and Eoin Woods&lt;/a&gt;, but I can't vouch for the quality or content of that book. However, I'm rarely disappointed by books used in the software engineering program.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-11-29T03:01:15.610" CommunityOwnedDate="2011-01-22T00:43:07.640" CommentCount="2" />
  <row Id="22160" PostTypeId="2" ParentId="22073" CreationDate="2010-11-29T03:04:55.127" Score="7" ViewCount="" Body="&lt;p&gt;Ever used a modern website, lots of Javascript, tons of people using jQuery?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well that's effectively a functional language, closures, functions as first-class objects, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everywhere, millions of users day by day.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-11-29T03:04:55.127" CommentCount="2" />
  <row Id="22161" PostTypeId="1" AcceptedAnswerId="22164" CreationDate="2010-11-29T03:15:12.373" Score="0" ViewCount="99" Body="&lt;p&gt;It very common problem for all web developers. Always Developer have to put some extra effort to get similar view in different browsers. We say it as &quot;&lt;code&gt;Browser compatibility&lt;/code&gt;&quot;.&#xA;If the coding is standardized, then why should we worry about the compatibility?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think CSS must be standardized across all the browsers.&lt;/p&gt;&#xA;" OwnerUserId="8241" LastActivityDate="2010-11-29T09:14:22.040" ClosedDate="2010-11-29T10:11:31.030" Title="When is it going to be standardized CSS for Web Applications?" Tags="&lt;browser&gt;&lt;css&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="1" />
  <row Id="22162" PostTypeId="1" AcceptedAnswerId="23255" CreationDate="2010-11-29T03:18:08.177" Score="0" ViewCount="179" Body="&lt;p&gt;I am tired using hprof and some lame tools that are available in AIX for JVM profiling. None of the tools like Netbeans Profiler and visualvm works on JVM on AIX. It will be great if anyone knows a tool that is out there that will make life easier.&lt;/p&gt;&#xA;" OwnerUserId="6750" LastActivityDate="2010-12-22T17:10:46.793" Title="Anyone know a decent JVM profiling tool for IBM JVM on AIX ?" Tags="&lt;java&gt;&lt;jvm&gt;&lt;profiling&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="22163" PostTypeId="2" ParentId="22118" CreationDate="2010-11-29T03:25:41.477" Score="2" ViewCount="" Body="&lt;p&gt;progressive titles only make sense if the team members are of significantly different skills and abilities&lt;/p&gt;&#xA;&#xA;&lt;p&gt;for team organization, titles based on team roles would make more sense&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i have no idea what a principal developer would be; in ordinary usage this term would indicate &lt;em&gt;the single person who did the most work on the project&lt;/em&gt;, e.g. the principal developer of Perl was Larry Wall. It is &lt;em&gt;not&lt;/em&gt; a job title.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-29T03:25:41.477" CommentCount="1" />
  <row Id="22164" PostTypeId="2" ParentId="22161" CreationDate="2010-11-29T03:33:09.907" Score="2" ViewCount="" Body="&lt;p&gt;IMO, there will never be a standard CSS that works exactly the same in all browsers.  Every company that makes a browser has an interest in putting in special stuff into their version that makes something work a little better there.  Who is supposed to penalize the company that makes a non-compliant browser?  I'm pretty sure there is a CSS standard, though how well this is used in current browsers is a good question.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-29T03:33:09.907" />
  <row Id="22165" PostTypeId="1" AcceptedAnswerId="22193" CreationDate="2010-11-29T03:35:28.323" Score="2" ViewCount="209" Body="&lt;p&gt;For learning a new language or framework , is it better to learn by working with someone else on an existing project or creating a new one myself?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had experience on working on a open-source rails project for four months. The project was nicely written, and it has lot of good examples for me to learn, but I didn't get too much of rails in the end. At the end, I was still confused by many rails/MVC concepts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, after that rails project, I myself started creating a ASP.net MVC from scratch. I ended up successfully building a fully functioning MVC web site and used a lot of ASP.net MVC features. I had a way better idea of MVC and ASP.net MVC's mechanisms after this project, but meanwhile, I might have employed many bad solutions without even realizing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So which way do you think is better for learning? What are the pros and cons for each approach?&lt;/p&gt;&#xA;" OwnerUserId="8703" LastActivityDate="2010-11-29T14:44:33.010" Title="To learn a new language/framework, which way is better?" Tags="&lt;learning&gt;" AnswerCount="6" FavoriteCount="0" />
  <row Id="22166" PostTypeId="2" ParentId="22165" CreationDate="2010-11-29T03:43:34.340" Score="2" ViewCount="" Body="&lt;p&gt;I think working from scratch you will learn more about the complete framework quicker as an existing project built by someone else will have done a lot of the initially app framework development already. You can also do cut and paste development on an existing system. The disadvantage from building from scratch is you will make a lot more mistakes, but as long as you learn from them...&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-29T03:43:34.340" />
  <row Id="22167" PostTypeId="2" ParentId="22161" CreationDate="2010-11-29T03:46:27.847" Score="0" ViewCount="" Body="&lt;p&gt;I don't think there will ever be a single standard all browsers adhear to. Getting all the players to be at the one place at the same time and the standard to be as well is difficult. And browser companies also have their own priorities outside of the standard that stop them being 100% the same as others (i'm looking at MS here).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best you can hope for is for them to be 95% the same.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-29T03:46:27.847" />
  <row Id="22168" PostTypeId="2" ParentId="22118" CreationDate="2010-11-29T03:47:34.100" Score="11" ViewCount="" Body="&lt;p&gt;I got a great lesson in titles working for Autodesk around 1990. There was a guy there named John Walker who, as a &quot;programmer&quot;, was one rung below me on the corporate ladder and made less than half my salary. He also was the single most influential person in the company, and his immediate prior title was &quot;President&quot;. Oh, and he didn't need much salary - as the second-largest shareholder, the $0.10 quarterly dividend was plenty for him to finance his spectacular seaside villa and buy the occasional $400K scanning tunneling electron microscope.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People who have worked for a few years and paid attention come to understand that job titles are worth exactly as much as it costs the company to grant them. Your flat job titles are actually pretty good. If I were you, I'd leave them alone and concentrate on providing a really fantastic work environment and devising more meaningful rewards.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-11-29T03:47:34.100" CommentCount="1" />
  <row Id="22169" PostTypeId="1" CreationDate="2010-11-29T03:51:03.610" Score="1" ViewCount="104" Body="&lt;p&gt;What would you suggest as the best combination of technologies to design and develop a simple health information website? The site will list stats of the disease, describe symptoms, typical treatment approaches, have lot of content, and include an interactive means to get user stories (for eg, a guestbook or feedback form of sorts). Apart from its comprehensive content, the USP of the website would be its UX, and looks, since health based sites (or at least the ones I have seen) are usually bland and boring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Team size: 3&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Skills inventory: PHP; Perl; Javascript (slightly advanced) and JQuery, Microsoft .NET technologies including ASP.NET/Silverlight/WPF, HTML and CSS,SQL Server, Oracle and MySQL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are also willing to learn if any new technologies are suggested that not in the above list but are great for the kind of site we described.&lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-11-29T11:50:00.790" Title="What technologies would you recommend for developing a health information website?" Tags="&lt;web-development&gt;&lt;websites&gt;&lt;web-framework&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="1" />
  <row Id="22170" PostTypeId="1" CreationDate="2010-11-29T03:59:56.800" Score="4" ViewCount="656" Body="&lt;p&gt;Is there a reason regarding the goals of these sites of using PHP? I mean is it PHP/MySQL is the most suitable tools to run these sites or is it the reason because no other languages but PHP were shine during the beginning of these projects? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the main reason those known projects are run on PHP/MySQL? Why did they choose them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers.&lt;/p&gt;&#xA;" OwnerUserId="26782" LastActivityDate="2011-01-18T11:24:02.053" Title="Why did Facebook, Wordpress, vBulletin use PHP/MySQL?" Tags="&lt;php&gt;&lt;mysql&gt;&lt;wordpress&gt;&lt;facebook&gt;&lt;vbulletin&gt;" AnswerCount="6" CommentCount="6" FavoriteCount="1" />
  <row Id="22172" PostTypeId="2" ParentId="22170" CreationDate="2010-11-29T04:03:13.550" Score="5" ViewCount="" Body="&lt;p&gt;I imagine that many of these projects started out very small and used a LAMP stack.  Linux+Apache+MySQL+PHP are free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like the answer to this question here:&#xA;&lt;a href=&quot;http://programmers.stackexchange.com/questions/17700/why-do-so-few-large-websites-run-a-microsoft-stack/17718#17718&quot;&gt;Why do so few large websites run a Microsoft stack?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7330" LastActivityDate="2010-11-29T04:03:13.550" CommentCount="1" />
  <row Id="22173" PostTypeId="2" ParentId="22170" CreationDate="2010-11-29T04:04:11.477" Score="3" ViewCount="" Body="&lt;h1&gt;Popularity&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;With that popularity comes the flexibility to leverage community created software to further your own application. You also get a huge pool of people with which you can work with when creating your application. Large community size gives you additional support. Facebook in particular has returned a large amount of code to both the PHP and MySQL projects. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP is also very &lt;a href=&quot;http://programmers.stackexchange.com/questions/17700/why-do-so-few-large-websites-run-a-microsoft-stack/17718#17718&quot;&gt;hard to move away from&lt;/a&gt;. If you start your application it is difficult to move it to something more &quot;enterprisey&quot; like J2EE or .NET. You end up extending the existing application. With PHP, MySQL, and Apache being generally free software it becomes very easy to hit the ground running cheaply with minimal overhead. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-29T04:04:11.477" CommentCount="3" />
  <row Id="22174" PostTypeId="1" CreationDate="2010-11-29T04:05:31.240" Score="5" ViewCount="258" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/18585/what-is-the-most-egregious-waste-of-money-you-have-seen-and-what-did-you-do-abou&quot;&gt;What is the most egregious waste of money you have seen, and what did you do about it?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;What is the costliest IT mistake you have encountered and what sort of firefighting did you to fix it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Five days ago &lt;a href=&quot;http://www.theage.com.au/business/thousands-still-in-nab-pay-limbo-20101129-18cph.html&quot; rel=&quot;nofollow&quot;&gt;National Australia Bank had an error in their overnight batch process&lt;/a&gt;. This affected thousands of people to not get their salary, welfare payments, mortgage payments. Thousand of customers and hundreds of millions of dollars are affected.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you had this kind of desperate, emergency situation experience.&lt;/p&gt;&#xA;" OwnerUserId="3414" LastActivityDate="2010-11-29T09:50:59.597" ClosedDate="2010-11-29T10:08:02.623" Title="What is the costliest IT mistake you have encountered" Tags="&lt;experience&gt;&lt;mistakes&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="0" />
  <row Id="22175" PostTypeId="2" ParentId="22170" CreationDate="2010-11-29T04:12:11.573" Score="2" ViewCount="" Body="&lt;p&gt;The PHP/MySQL combination is very prevalent for a number of reasons: cost, availability, resources, popularity...It's not necessarily the best choice, but it is quite flexible and powerful.&lt;/p&gt;&#xA;" OwnerUserId="8187" LastActivityDate="2010-11-29T04:12:11.573" />
  <row Id="22176" PostTypeId="2" ParentId="22169" CreationDate="2010-11-29T04:17:27.603" Score="2" ViewCount="" Body="&lt;p&gt;Use whichever is best for the job. Unless you have any specific requirements, your own or the regulatory variety, use what you know best. That said...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a simple website, the LAMP stack is likely the quicker to start with. If you want to take advantage of integration of Microsoft technologies, use that stack.&lt;/p&gt;&#xA;" OwnerUserId="8187" LastActivityDate="2010-11-29T04:17:27.603" CommentCount="3" />
  <row Id="22178" PostTypeId="2" ParentId="22070" CreationDate="2010-11-29T04:27:59.140" Score="1" ViewCount="" Body="&lt;p&gt;Instead of:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;switch(myEnum) {&#xA;  case MyEnum.Val1: do1(); ...&#xA;  case MyEnum.Val2: do2(); ...&#xA;....&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Do it the Python, or now the C# way as well:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;action = val2func[myEnum]&#xA;action()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Scala has lots of new features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, languages such as Clojure can be extended to provide the extra functionality.&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-11-29T04:27:59.140" CommentCount="2" />
  <row Id="22179" PostTypeId="2" ParentId="22174" CreationDate="2010-11-29T05:16:43.600" Score="2" ViewCount="" Body="&lt;p&gt;Created my own startup, feuded with co-founders, went to court with competitors and lost $100k. Maybe not the costliest I have seen, but hurt the most!&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-29T05:16:43.600" CommentCount="1" />
  <row Id="22180" PostTypeId="2" ParentId="22174" CreationDate="2010-11-29T05:41:53.083" Score="0" ViewCount="" Body="&lt;p&gt;I've seen some doozies in HW design. We have the Intel floating divide bug, that cost them dearly of both money and trust. I remember a supercomputing wannabe, that didn't get the cache coherency protocol to work properly, and had to throw in the towel just as they had their first prototype going (bet the company and lost). Easier to fix software bugs, you can deploy a fix by simply shipping out bits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There have been other biggies, that are more like management selecting the wrong target, but I don't think those count here.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-11-29T05:41:53.083" />
  <row Id="22181" PostTypeId="2" ParentId="22073" CreationDate="2010-11-29T05:45:08.540" Score="2" ViewCount="" Body="&lt;p&gt;It's used in the industry by the minority that understand how and have the opportunity to  use it. The majority of programmers won't understand recursion or things like first-class functions and that you can treat a function as a value and store it in a list. I'm not trying to sound elitist but the reality is the use of functional languages is limited because the vast majority of programmers can't get it. Sure lot's of people use Javascript but whether they use it in a functional way is another question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway here's a list of some organizations/people that use/used functional languages:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Paul Graham used Lisp to make a web store that got sold to Yahoo back in the day when Yahoo was king of the net.&lt;/li&gt;&#xA;&lt;li&gt;Citrix use OCaml for the management tools for Xen.&lt;/li&gt;&#xA;&lt;li&gt;The Halo team used F# internally&lt;/li&gt;&#xA;&lt;li&gt;Fairly sure a lot of banks are using F# at the moment.&lt;/li&gt;&#xA;&lt;li&gt;Ericsson use Erlang&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But at the end of the day the language used makes little difference to the outcome of the project. The best programming language in the world won't save you from bad management implementing bad processes that have design and requirements proceeding for months and then expecting the 1000000 lines of documentation converted into working and tested code in 3 months.&lt;/p&gt;&#xA;" OwnerUserId="8392" LastActivityDate="2010-11-29T05:45:08.540" />
  <row Id="22182" PostTypeId="2" ParentId="4671" CreationDate="2010-11-29T05:50:18.900" Score="2" ViewCount="" Body="&lt;p&gt;Theres a real nice one with Fortran 90, where you can do an aray assignment by leaving out the indexes:&#xA;   dimension a(n,n)&#xA;  do i=1,n&#xA;  do j=1,n&#xA;  a=0.&#xA;  enddo&#xA;  enddo&#xA;  Which of course zeroes the entire array N squared times. Of course its just a simple brainfart, but it works fine on your baby test cases. But as soon as someone tries to run a big problem, the program can't get out of array initialization!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then we had a performance/scaling issue where someone had to fly out to a classified site. Was the exact same problem, they even named the array A!&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-11-29T05:50:18.900" CommunityOwnedDate="2011-01-11T04:02:16.833" />
  <row Id="22183" PostTypeId="1" AcceptedAnswerId="22186" CreationDate="2010-11-29T05:50:48.963" Score="5" ViewCount="806" Body="&lt;p&gt;I have a thought that I tried asking at SO, but didnt seem like the appropriate place. I think that source sites like Google Code, GitHub, SourceForge... have played a major role in the history of programming. However, I found that there is another bad thing to these kind of sites and that is you may just &quot;copy&quot; code from almost anyone, not knowing if it is good(tested) source or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This line of thought has taken me to believe that source code websites tend to lead many developers (most likely unexperienced) to copy/paste massive amounts of code, which I find just wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really dont know how to focus the question well, but basic thought would be:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this ok? Is Open Source contributing to that or I'm just seeing ghosts...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope people get interested because I think this is an important theme.&lt;/p&gt;&#xA;" OwnerUserId="8750" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-11-29T12:25:26.270" LastActivityDate="2011-03-01T06:07:48.143" Title="Does Open Source lead to bad coding?" Tags="&lt;open-source&gt;&lt;philosophy&gt;" AnswerCount="10" CommentCount="4" />
  <row Id="22184" PostTypeId="2" ParentId="22170" CreationDate="2010-11-29T05:54:05.720" Score="4" ViewCount="" Body="&lt;h2&gt;Ubiquity&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Particularly with Wordpress and vBulletin, because they're sold as packaged software, if they had chosen a Microsoft-only software stack, they would have immediately restricted their possible audience to only those who are able to run Microsoft products. PHP and MySQL run everywhere, including on IIS. .NET does run on Linux (with mono) but until relatively recently, .NET on mono was rather painful, compared to PHP on IIS. SQL Server obviously &lt;em&gt;only&lt;/em&gt; runs on Windows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you're developing packaged software like vBulletin or Wordpress, it makes sense to use PHP+MySQL so that your possible audience is a large as possible, regardless of the relative merits of PHP/MySQL vs. .NET/SQL Server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Facebook is different, because they don't sell a packaged version of their software, obviously. But others have, I believe, answered that question already.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-11-29T05:54:05.720" />
  <row Id="22185" PostTypeId="2" ParentId="22183" CreationDate="2010-11-29T05:56:12.240" Score="5" ViewCount="" Body="&lt;p&gt;For each 100 programmers that just copies/pastes code without knowing what he's doing, there's almost one that doesn't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before Google Code &lt;em&gt;et similia&lt;/em&gt; there were snippets all around the web that people copied/pasted, so I don't really see the problem as being relelated to this kind of sites.&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-11-29T05:56:12.240" CommentCount="1" />
  <row Id="22186" PostTypeId="2" ParentId="22183" CreationDate="2010-11-29T05:56:14.767" Score="41" ViewCount="" Body="&lt;p&gt;Correlation doesn't imply causation. Developers copy/paste code they don't understand because they're bad developers. The availability of such code doesn't turn good developers bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there were no open source projects, there would still be forum posts with code snippets or programming books with examples. So we're back to my first paragraph: bad developers will find a way to be bad at writing code. The blame for copying and pasting code lies with the developers who do it, not with the source code repositories.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-11-29T05:56:14.767" CommentCount="3" />
  <row Id="22187" PostTypeId="2" ParentId="18116" CreationDate="2010-11-29T06:04:33.913" Score="0" ViewCount="" Body="&lt;p&gt;Hi SpashHit,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been freelancing online for over 5 years now and have learned from experience, you get paid what you're worth. Others undercutting you becomes a moot point when you know what you're doing, so just concentrate on providing top quality. That's what gets you the rates you deserve (and sometimes some pretty bonuses too!). Try appealing to clients in Canada, the UK, and other well-developed countries. In my experience, they sometimes pay better than Americans. :-o&lt;/p&gt;&#xA;" OwnerUserId="4990" LastActivityDate="2010-11-29T06:04:33.913" CommentCount="3" />
  <row Id="22188" PostTypeId="2" ParentId="22183" CreationDate="2010-11-29T06:04:50.187" Score="1" ViewCount="" Body="&lt;p&gt;Isn't one of the big principles of coding &quot;don't re-invent the wheel&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you copy bad code and doesn't learn from it, then it's your bad.  If you copy great code and learn from it, then you're a good programmer going on great.&lt;/p&gt;&#xA;" OwnerUserId="7237" LastActivityDate="2010-11-29T06:04:50.187" />
  <row Id="22189" PostTypeId="2" ParentId="22183" CreationDate="2010-11-29T06:37:20.970" Score="1" ViewCount="" Body="&lt;p&gt;My opinion is that there are good open source projects and bad open source projects. The availability of good open source projects that can be found on sites like Git Hub allow the sort of beginner programmer that will one day end up as a good programmer to have an almost endless source of good code to look at and study and (if desired) copy. The thing is that the sort of person that ends up as a good programmer is almost incapable of just copy and pasting code. They want to look at it and take it apart and modify and understand what makes it good and what could make it better and what would make it worse. By the time they're done, &lt;em&gt;it's their code&lt;/em&gt; and they understand how it works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It does make it more convenient for bad programmers to be bad programmers but so what? It's sort of like the flaw in javascript where&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;i = 1&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;creates a global variable &lt;code&gt;i&lt;/code&gt; and&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var i = 1&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;creates a proper local variable. This makes it possible to spot crap code in a second by all of the inadvertent global variables laying out all over the place&lt;sup&gt;1&lt;/sup&gt;. The fact that it's easier to copy and paste projects together means that it's easier to spot crap code because it will be littered with the sort of vestigial limbs that were adapted to the conditions that it came from and not the conditions it's currently living in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;1 The lack of global variables doesn't of course imply that the code is good but it's a promising sign&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="2357" LastActivityDate="2010-11-29T06:37:20.970" />
  <row Id="22190" PostTypeId="2" ParentId="22183" CreationDate="2010-11-29T07:20:34.427" Score="7" ViewCount="" Body="&lt;p&gt;I don't think too many developers copy-paste from large open-source projects. It's just too much work to find the right spot in thousands of lines of codes, and it could be different (at least for a bad developer) to find out which part to copy. They rather copy-paste small snipplets found on forums, articles, examples etc., where everything is nicely put together.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-29T07:20:34.427" CommentCount="2" />
  <row Id="22191" PostTypeId="2" ParentId="9614" CreationDate="2010-11-29T08:09:47.583" Score="0" ViewCount="" Body="&lt;p&gt;Scripts are programs that are not &lt;em&gt;required&lt;/em&gt; to be compiled before runtime. Eg: PERL; PHP; BASH; et al.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously some languages can be optionally compiled ahead of time (eg: PHP), but one would consider that a code cache. Java and .NET that are compiled down to bytecode for a virtual processor (JVM and CLR) would still count as &quot;programs&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keeping this in mind, your question seems predicated on the concept that Programmers and Scripters perform the same work, but are differentiated by their experience level or some other performance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my mind, scripters are a subset programmers working with different tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now that I'm done nitpicking, I'll try to answer what I think you're actually asking - when someone can be considered a programmer. My answer is simple - when someone is actively earning a living from programming, then they are a Programmer. Anything else is just programming as a hobby.&lt;/p&gt;&#xA;" OwnerUserId="7641" LastActivityDate="2010-11-29T08:09:47.583" CommentCount="1" />
  <row Id="22192" PostTypeId="2" ParentId="22183" CreationDate="2010-11-29T08:14:06.237" Score="1" ViewCount="" Body="&lt;p&gt;Everyone has some sort of motivation for releasing their code in a manner that allows other people to use, modify and re-distribute it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of the reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You feel the code is useful, and would be useful to others&lt;/li&gt;&#xA;&lt;li&gt;You feel the idea is useful, and hope more experienced people will refine the implementation&lt;/li&gt;&#xA;&lt;li&gt;You are obligated by a license to release the code for modified binary executables that you distributed&lt;/li&gt;&#xA;&lt;li&gt;You hope the availability of the code will help boost your business&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Other reasons, of course come into play, or perhaps a combination of reasons. Your question seems to hinge on an assumption that code released into the wild &lt;em&gt;should&lt;/em&gt; be of a minimum quality, which I think is overly idealistic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, I think more 'copy and paste' coding results from reading a 'tutorial' that someone posted on a blog with snippets, not from someone who took the time to mine through github to find something that might solve a problem. Yet, using examples from a five year old 'quick start' guide you bought at a used book store might be equally dangerous.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good programmers avoid the mistakes that inexperienced programmers tend to make, that will always be the case. You often learn how to avoid these traps by falling into them.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-29T08:14:06.237" />
  <row Id="22193" PostTypeId="2" ParentId="22165" CreationDate="2010-11-29T08:18:17.210" Score="6" ViewCount="" Body="&lt;p&gt;I'd say do both. I think you just got the order wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First start from scratch and then see how other people do the same. I think the reason you didn't grasp too much of Rails/MVC was because you didn't have a good foundation to absorb whatever gems were there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After you've got the fundamental knowledge, you can definitely catalyze the learning process by building on other people's experiences.&lt;/p&gt;&#xA;" OwnerUserId="4303" LastActivityDate="2010-11-29T08:18:17.210" />
  <row Id="22194" PostTypeId="2" ParentId="22169" CreationDate="2010-11-29T08:31:17.503" Score="0" ViewCount="" Body="&lt;p&gt;There is no &quot;best for the job&quot;. I personally use LAMP. If you're looking for a yes/no answer, then LAMP is my answer. Why? Because it's what I started with - simply because it cost me nothing to set up my own server at home.&lt;/p&gt;&#xA;" OwnerUserId="7237" LastActivityDate="2010-11-29T08:31:17.503" />
  <row Id="22195" PostTypeId="2" ParentId="21480" CreationDate="2010-11-29T08:43:23.357" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;java.sql.ResultSet&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;contains operations which require a certain order: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;move commands (&lt;code&gt;absolute(int row)&lt;/code&gt; or &lt;code&gt;next()&lt;/code&gt;),&lt;/p&gt;&#xA;&#xA;&lt;p&gt;read/write commands (&lt;code&gt;getInt(int columnIndex)&lt;/code&gt; or &lt;code&gt;updateInt(int columnIndex, int x)&lt;/code&gt;),&lt;/p&gt;&#xA;&#xA;&lt;p&gt;write-back-to-datasource commands (&lt;code&gt;updateRow()&lt;/code&gt;),&lt;/p&gt;&#xA;&#xA;&lt;p&gt;release commands (&lt;code&gt;close()&lt;/code&gt;).&lt;/p&gt;&#xA;" OwnerUserId="8316" LastActivityDate="2010-11-29T08:43:23.357" CommentCount="1" />
  <row Id="22196" PostTypeId="2" ParentId="22169" CreationDate="2010-11-29T08:48:28.670" Score="1" ViewCount="" Body="&lt;p&gt;If it were me...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would start with a CMS solution which will address the vast majority of the work you need to do to create and manage content then apply development skills to provide those elements that don't come &quot;out of the box&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing you'll want to look at with any CMS is what support it has for scaling beyond a single server. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Since my background is with the Microsoft stack and tools I'd choose &lt;a href=&quot;http://umbraco.org/&quot; rel=&quot;nofollow&quot;&gt;Umbraco&lt;/a&gt; - which is a massively capable system. The docs could be better... but apart from that you'd get a lot of what you need in very short order leaving you scope to work on the interesting bits. There's a fairly decent writeup &lt;a href=&quot;http://www.cmswire.com/cms/web-cms/quick-take-review-umbraco-web-content-management-system-004296.php&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-11-29T08:48:28.670" />
  <row Id="22197" PostTypeId="2" ParentId="22169" CreationDate="2010-11-29T08:52:15.000" Score="1" ViewCount="" Body="&lt;p&gt;The requirements placed on you by a health information website are unlikely to be incompatible with any of the technologies you list so I'd go with what the team feel most comfortable and productive in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally speaking I think there's a lot to be said for coding in what you know.  Even where it's not the best tool for the job I think the increased skill level means that there's a good chance that you'll turn out something better using that than in a technology you don't fully understand yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(This isn't saying don't learn new things, just that there should be a very solid advantage in moving to the new platform to make up for the decreased expertise).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-29T08:52:15.000" />
  <row Id="22198" PostTypeId="2" ParentId="22169" CreationDate="2010-11-29T08:57:15.780" Score="1" ViewCount="" Body="&lt;p&gt;I would assess what the team in strongest in and concentrate my efforts in finding the best solutions withing the strongest skill set.  To assess the solutions I would look at:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;community (activity, helpfulness)&lt;/li&gt;&#xA;&lt;li&gt;stability/maturity&lt;/li&gt;&#xA;&lt;li&gt;known recipes for scaling, security, deployment&lt;/li&gt;&#xA;&lt;li&gt;what other website are using that are similar to what I'm making&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-11-29T08:57:15.780" />
  <row Id="22199" PostTypeId="2" ParentId="22165" CreationDate="2010-11-29T09:00:55.277" Score="0" ViewCount="" Body="&lt;p&gt;I always learn better if I have someone else who's worked with the tech before.  The key to is involve yourself and not let them do all the work.  If I work through the problems and use the other guy as a resource to understand language/lib idioms, paradigm, and general gotchas I always pick it up faster.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-11-29T09:00:55.277" />
  <row Id="22200" PostTypeId="2" ParentId="4671" CreationDate="2010-11-29T09:05:02.770" Score="4" ViewCount="" Body="&lt;pre&gt;iRetval = msgbox(&quot;Are you sure you wish to delete this file?&quot;, vbOK, &quot;Confirm&quot;)&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Presents a message box asking the user if they wish to delete this file with OK as the only option.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-29T09:05:02.770" CommunityOwnedDate="2011-01-11T04:02:16.833" CommentCount="7" />
  <row Id="22201" PostTypeId="2" ParentId="22161" CreationDate="2010-11-29T09:09:47.287" Score="0" ViewCount="" Body="&lt;p&gt;There is already a standard. In fact, there are several of them&lt;/p&gt;&#xA;&#xA;&lt;p&gt;THere are the W3C recommendations and drafts. Also, you could say that each version of each browser implements its own standard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem, then, is not the lack of standards. The problem is one of &lt;a href=&quot;http://www.joelonsoftware.com/items/2008/03/17.html&quot; rel=&quot;nofollow&quot;&gt;Martian Headsets&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-11-29T09:09:47.287" />
  <row Id="22202" PostTypeId="2" ParentId="21970" CreationDate="2010-11-29T09:10:23.620" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1556159005&quot; rel=&quot;nofollow&quot;&gt;Rapid Development by Steve McConnell&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The author of Code Complete brings you his take on Project Management.  Nothing revolutionary but lots of common sense and best practice in the same very readable style.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-29T09:10:23.620" />
  <row Id="22203" PostTypeId="2" ParentId="22070" CreationDate="2010-11-29T09:12:15.797" Score="7" ViewCount="" Body="&lt;p&gt;Control structures as functions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want &lt;code&gt;for&lt;/code&gt;, &lt;code&gt;if&lt;/code&gt;, &lt;code&gt;else&lt;/code&gt;, &lt;code&gt;while&lt;/code&gt;, etc to be functions, not special structures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want &lt;code&gt;return&lt;/code&gt;, &lt;code&gt;try/except&lt;/code&gt; and &lt;code&gt;goto&lt;/code&gt; to be derivatives of continuations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This of course has less to do with a particular control structure and more to do with how you see control structures in general, the meta of control structures. &lt;/p&gt;&#xA;" OwnerUserId="7575" LastEditorUserId="7575" LastEditorDisplayName="" LastEditDate="2010-11-29T16:54:46.953" LastActivityDate="2010-11-29T16:54:46.953" CommentCount="11" />
  <row Id="22204" PostTypeId="2" ParentId="4671" CreationDate="2010-11-29T09:12:28.433" Score="1" ViewCount="" Body="&lt;p&gt;I think it would have to be &lt;a href=&quot;http://stackoverflow.com/questions/851162/can-gcc-accurately-catch-useless-conditionals&quot;&gt;this one&lt;/a&gt;. One extra semicolon can ruin your whole day, especially in a large loop. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, I did what any self respecting programmer would do. I blamed the compiler for not seeing my mistake (which was also perfectly valid C).&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-29T09:12:28.433" CommunityOwnedDate="2011-01-11T04:02:16.833" />
  <row Id="22205" PostTypeId="2" ParentId="22161" CreationDate="2010-11-29T09:14:22.040" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;If the coding is standardized, then why should we worry about the compatibility?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Because the result of the &quot;coding&quot; runs in exactly the same (x86 architecture, .NET runtime) or certified (Java Virtual Machine) environment. That's why you can rest assured it works the same way everywhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;CSS is interpreted on a variety of environments neither of which is the same or certified. Since it's not mission critical, people have historically not bothered to introduce strict rules and quality control.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-11-29T09:14:22.040" />
  <row Id="22206" PostTypeId="1" AcceptedAnswerId="22208" CreationDate="2010-11-29T09:16:41.460" Score="0" ViewCount="254" Body="&lt;p&gt;After how many years of working or after how many projects did you start calling yourself a PRO?&lt;/p&gt;&#xA;" OwnerUserId="7656" LastActivityDate="2010-11-29T15:02:49.593" ClosedDate="2010-11-29T14:59:28.207" Title="When can you call yourself a PRO?" Tags="&lt;jobs&gt;&lt;experience&gt;&lt;technology&gt;" AnswerCount="7" CommentCount="3" />
  <row Id="22207" PostTypeId="2" ParentId="22165" CreationDate="2010-11-29T09:18:01.907" Score="0" ViewCount="" Body="&lt;p&gt;I think you should combine both, but in the right measure. Working with someone experienced (but be sure that he is, first) will prevent you misusing your tools, reinventing the wheels, nurturing bad practices etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, you should be given a part of the job to complete on your own. Talking about web applications, this means whole vertical portion of a website: create db tables, create models, controllers and the views for one functionality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, most beginners don't have such opportunity - to balance between being tutored and working on their own - so most of the time they should just try to get the most from the circumstances.&lt;/p&gt;&#xA;" OwnerUserId="7968" LastActivityDate="2010-11-29T09:18:01.907" />
  <row Id="22208" PostTypeId="2" ParentId="22206" CreationDate="2010-11-29T09:24:13.307" Score="8" ViewCount="" Body="&lt;p&gt;After &gt; 0 years of working. PRO = professional = a person who is paid for what he does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for proficient; in general it's said to take about &lt;a href=&quot;http://norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;10000 hours of practice&lt;/a&gt;. Note that this is different from 10000 hours of work (which equals to about 5 years full-time). If you don't practice, you'll never be proficient, no matter how many years you've been paid for tinkering with the computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Years of experience is like hours of work: it has little to do with what you can do or how much output you've produced (and even less, what quality output), but it's easy to measure and therefore popular.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-11-29T09:43:13.937" LastActivityDate="2010-11-29T09:43:13.937" CommentCount="7" />
  <row Id="22209" PostTypeId="2" ParentId="22206" CreationDate="2010-11-29T09:33:53.160" Score="2" ViewCount="" Body="&lt;p&gt;A Public Relations Officer?  &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Pro&quot; rel=&quot;nofollow&quot;&gt;https://secure.wikimedia.org/wikipedia/en/wiki/Pro&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-11-29T09:33:53.160" CommentCount="2" />
  <row Id="22210" PostTypeId="1" AcceptedAnswerId="22211" CreationDate="2010-11-29T09:36:42.193" Score="9" ViewCount="901" Body="&lt;p&gt;So we all know programmers are &lt;a href=&quot;http://programmers.stackexchange.com/questions/4693/why-are-so-many-programmers-arrogant&quot;&gt;arrogant&lt;/a&gt;, but I've also noticed they can be very pendantic.  Is there a reason for that?&lt;/p&gt;&#xA;" OwnerUserId="5402" LastEditorUserId="5402" LastEditorDisplayName="" LastEditDate="2010-12-11T02:34:29.913" LastActivityDate="2010-12-11T02:34:29.913" ClosedDate="2010-12-04T17:12:08.763" Title="Why are programmers so pendantic?" Tags="&lt;personality&gt;&lt;personal-traits&gt;" AnswerCount="9" CommentCount="7" FavoriteCount="1" />
  <row Id="22211" PostTypeId="2" ParentId="22210" CreationDate="2010-11-29T09:42:20.317" Score="26" ViewCount="" Body="&lt;p&gt;Don't you mean &lt;strong&gt;pedantic&lt;/strong&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In seriousness, I'd say it's because programmers live and die by accounting for edge cases and small details others would not catch.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-11-29T10:03:13.283" LastActivityDate="2010-11-29T10:03:13.283" CommentCount="6" />
  <row Id="22212" PostTypeId="2" ParentId="22174" CreationDate="2010-11-29T09:50:59.597" Score="0" ViewCount="" Body="&lt;p&gt;An old SO question: &lt;a href=&quot;http://stackoverflow.com/questions/1040338&quot;&gt;&quot;What are the Worst Software Project Failures Ever?&quot;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lots to choose from...&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-11-29T09:50:59.597" />
  <row Id="22213" PostTypeId="2" ParentId="22210" CreationDate="2010-11-29T09:52:46.423" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Is it not Obvious?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clearly creating software (programming) requires one to be very specific, regardless of how &quot;high level&quot; or declarative a language is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is due to this forced requirement of programming that a culture of being &quot;pedantic&quot; is borne out of it, I assume.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-11-29T09:52:46.423" CommentCount="2" />
  <row Id="22214" PostTypeId="2" ParentId="22210" CreationDate="2010-11-29T09:54:14.290" Score="1" ViewCount="" Body="&lt;p&gt;Probably because programming is not just a job, but exercises significant influence over the thinking patterns and the way of life. It's a profession that you live not just exercise. Naturally, it's accompanied by professional pride and a strong opinion about how to do things right and what is wrong. It's not a subordinate profession but rather attracts independent thinkers. Hence comes the pedantism as a companion quality of a master not a scholar.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-11-29T09:54:14.290" CommentCount="2" />
  <row Id="22215" PostTypeId="2" ParentId="22153" CreationDate="2010-11-29T10:01:35.043" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Look to master one, know the others...&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be fair, I think you will find many SO users that have several languages under their belts. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Web development is such that one is forced to juggle a few languages domains to get things done. So it does not come as a surprise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However saying that, &quot;Mastering&quot; a language is a-lot harder. Some languages have a great deal of depth, it can take decades. Sometimes it is not even possible as languages can also change over time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The simple answer is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes you can, but you probably will not master them all at the same time. Becoming productive is a another matter.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2011-04-26T18:40:32.990" LastActivityDate="2011-04-26T18:40:32.990" />
  <row Id="22216" PostTypeId="2" ParentId="22210" CreationDate="2010-11-29T10:03:21.300" Score="2" ViewCount="" Body="&lt;p&gt;Nothing wrong with anybody who takes their work seriously to be pedantic.&lt;br&gt;&#xA;I prefer the term &quot;thorough&quot;, though.&lt;/p&gt;&#xA;" OwnerUserId="8620" LastActivityDate="2010-11-29T10:03:21.300" />
  <row Id="22217" PostTypeId="2" ParentId="22210" CreationDate="2010-11-29T10:04:04.500" Score="1" ViewCount="" Body="&lt;p&gt;When precision matters, no detail is trivial. If by &lt;strong&gt;pedantic&lt;/strong&gt; you mean spending what some might conceive to be an inordinate amount of time on seemingly trivial details, well ...&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-29T10:04:04.500" />
  <row Id="22218" PostTypeId="1" CreationDate="2010-11-29T10:10:43.293" Score="2" ViewCount="129" Body="&lt;p&gt;Which part of the developement process do you enjoy most - and why ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it searching for informations, making specs, coding, testing, debugging, something else I can't think of ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has it changed over time, as you got more experience? Is there something you don't like at all ? &lt;/p&gt;&#xA;" OwnerUserId="6579" LastActivityDate="2010-11-29T12:51:17.903" ClosedDate="2010-11-29T13:39:16.960" Title="Which part of the developement process do you enjoy most ?" Tags="&lt;development-process&gt;" AnswerCount="8" />
  <row Id="22219" PostTypeId="1" CreationDate="2010-11-29T10:11:16.693" Score="1" ViewCount="123" Body="&lt;p&gt;We will be engaging large corporations to help them run various types of analysis, mostly code analysis of their applications.  The storage requirements will likely be modest, hundreds of MB per client.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is mostly aimed at finding the stack with existing frameworks, best practices and a community which will allow a rapid development process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am comfortable with the .Net environment and am leaning towards Azure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any thoughts?&lt;/p&gt;&#xA;" OwnerUserId="8763" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-11-29T10:51:35.480" LastActivityDate="2010-11-29T10:51:35.480" Title="what is a good stack for software as a service (SAAS) application?" Tags="&lt;platform&gt;&lt;software-as-a-service&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="22220" PostTypeId="2" ParentId="22218" CreationDate="2010-11-29T10:12:26.603" Score="5" ViewCount="" Body="&lt;p&gt;Shipping.  It's the bit that gives the rest of the work real meaning.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-29T10:56:18.313" LastActivityDate="2010-11-29T10:56:18.313" CommentCount="6" />
  <row Id="22221" PostTypeId="2" ParentId="22210" CreationDate="2010-11-29T10:14:09.167" Score="16" ViewCount="" Body="&lt;p&gt;It's because a computer is pedantic. A compiler is pedantic. The tools change you more than you think.&lt;/p&gt;&#xA;" OwnerUserId="8392" LastActivityDate="2010-11-29T10:14:09.167" />
  <row Id="22222" PostTypeId="1" CreationDate="2010-11-29T10:16:11.033" Score="4" ViewCount="293" Body="&lt;p&gt;I just got a new project. It’s a WinForm app. And it’s interesting because I will have the possibility to learn how fish farms work and are managed. I will have to develop touch interfaces, and use datasnap to communicate and sync data between farm &amp;amp; office.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The development will be done in DELPHI win32, still not sure about the database, but maybe SQLlite&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So now comes the difficult part of the project, building it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am just finishing one. It took me a lot of time to do it and I am a bit “burned out”.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will have time to relax, not much, but a few days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I am looking is some tips and tricks and possibly tools to be able to speed up the development&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It must be up and running in 2 months.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what tricks do you use to speed up things?&lt;/p&gt;&#xA;" OwnerUserId="8764" LastEditorUserId="6393" LastEditorDisplayName="" LastEditDate="2010-11-29T14:23:17.953" LastActivityDate="2010-11-29T18:54:03.453" Title="Techniques and methods to improve and speedup development." Tags="&lt;productivity&gt;&lt;recommendations&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="1" />
  <row Id="22223" PostTypeId="2" ParentId="21635" CreationDate="2010-11-29T10:19:14.973" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Because I love it, and past my own death my code will be the only thing that will remain...&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-11-29T10:19:14.973" CommentCount="1" />
  <row Id="22224" PostTypeId="1" CreationDate="2010-11-29T10:19:48.667" Score="3" ViewCount="248" Body="&lt;p&gt;We're a few users who need to find a developer to write a small utility to sync an old Windows application with the main smartphones out there. I got the idea of offering a bounty after reading about how &lt;a href=&quot;http://www.linuxfordevices.com/c/a/News/Adafruit-Technologies-Open-Kinect-project/&quot; rel=&quot;nofollow&quot;&gt;$3K were offered&lt;/a&gt; to anyone who would write an open-source driver for Microsoft's Kinect Xbox controller.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never used this type of site before, so don't know what's available, but off the top of my head, it should have the following features:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Let users pledge money through eg. PayPal. The money will be escrowed so that the developper is confident there's actual money involved.&lt;/li&gt;&#xA;&lt;li&gt;Users can test and vote for each release of the code, and when a release gathers enough votes, the money is paid to the developer.&#xA;Depending on how the project was defined, the developer can either keep the source or release it to users who pledged money&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Is there a site that has this type of features and gathers enough users so that we have a good chance of finding someone to write this app?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you.&lt;/p&gt;&#xA;" OwnerUserId="8765" LastActivityDate="2011-02-07T10:50:39.927" Title="Recommended bounty site?" Tags="&lt;contracting&gt;&lt;software-development&gt;" AnswerCount="4" CommentCount="5" FavoriteCount="4" />
  <row Id="22225" PostTypeId="2" ParentId="22218" CreationDate="2010-11-29T10:19:57.857" Score="1" ViewCount="" Body="&lt;p&gt;Successful testing.&lt;/p&gt;&#xA;" OwnerUserId="8620" LastActivityDate="2010-11-29T10:19:57.857" />
  <row Id="22226" PostTypeId="2" ParentId="22210" CreationDate="2010-11-29T10:26:59.053" Score="4" ViewCount="" Body="&lt;p&gt;If you believe all programmers have an autistic spectrum disorder, very often, yes - though the first part is a misconception. I was diagnosed Aspergers at age 30, BTW - now nearing 40.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Autistic spectrum disorders are at root disorders of communication ability - particular nonverbals, reading-between-the-lines and stuff like that. These are things that in normal people are substantially based on innate ability - much upgraded through learning, of course, but still with an important innate core.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nonverbals are especially important, and the interpretation is mostly unconscious - the conscious bit is the tip of the iceberg, more rationalisation than reasoning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People with Aspergers usually lack good nonverbals. That means nonverbal signals tend to be slightly distorted. When interpreted by a normal person, that looks like nonverbals are being suppressed or consciously manipulated. That is, this (and many other) aspects of autistic communication lead to consistent misunderstanding, leading to an assumption of a flawed personality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another aspect - since people with ASDs suffer very high levels of stress in social situations, we burn out quickly, and &lt;em&gt;have&lt;/em&gt; to avoid these situations a lot. Most people misunderstand this. For instance, it doesn't (at least initially) mean we dislike others or social situations. Adrenaline junkies aren't known for being miserable and anxious etc, of course - yet adrenaline is a stress hormone. Stress in this sense is basically a physiological level thing - an autonomic reaction that puts your mind and body in a high-energy (but unsustainable) state. It isn't the same thing as the conscious interpretation or emotion that overlays that response. We can enjoy a social situation, and still be burned out, and no I don't mean that in a normal level sense. I mean that in the sense where one neuroscience paper I read at least said people with ASDs often get a jammed-on stress response, as severe as it physically can be, and causing lasting damage including permanent brain damage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pedantic - well, we get routinely misunderstood. We try to be more anticipate and avoid possible confusion - we end up &quot;being pedantic&quot;. Arrogant - well, we don't lack that intuition for how to express things indirectly, without being overly &quot;abrupt&quot;. We say what we mean. Even if we had some core of the ability to deal with that at birth, through social exclusion (voluntary and involuntary) we couldn't develop those skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually, all that social exclusion and conditioned avoidance means we learn most of our language from books, TV presenters, teachers etc - not exactly normal everyday usage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, after years of having people tell us we are flawed, a bit of defensiveness and sensitivity is understandable I think?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And of course now I look passive-aggressive, if not actively-aggressive. But I'm really just answering your question and hoping you'll take it on board, and re-evaluate some of your judgements. I don't want you to feel sorry for me. Kneejerk reactions aside, past is past, and here and now I'm fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I don't want you looking at Aspergers through rose tinted glasses. A lot of people won't thank me, but the fact is that we &lt;em&gt;can&lt;/em&gt; be arrogant etc. Being broken tends to mean things get exaggerated, and on the whole I don't mean good things. And just as other people retaliate against us based on misperceptions, we retaliate too - and in the end, who knows what was who's fault? Certainly a lot of innocent people get hit by shrapnel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know I have a seriously bad attitude at times, get obsessive about things at other times, and so on. And I can be a &lt;em&gt;serious&lt;/em&gt; hypocrite. There's no reason that should be just forgiven or ignored. We are all responsible for our behaviour. And I do these things much more than most people &lt;em&gt;even&lt;/em&gt; *though* I'm mostly on my own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But - while many programmers have Geek tendencies, there's a fair gap between that and ASDs. There's a perception that Aspergers means &quot;mild autism&quot;. Even the experts say it. Why - history. ASD-with-something-else was recognised first. ASD-without-the-something-else was recognised later. Its as if someone suddenly realised some deaf-and-blind people were actually only blind, so then a completely blind person was classed as mildly deaf-and-blind while a person with mild hearing and vision loss gets classed as severly deaf-and-blind. Obviously on &lt;em&gt;average&lt;/em&gt; there's a severity-of-overall-problems correlation, but having severe autistic-specific symptoms without the extra bit still isn't &quot;mild&quot; - especially when you heap the consequential stuff on since &quot;he can't have a real problem - he's too intelligent&quot; or whatever so you get punished for having your problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aaarrrggghh!!! - passive aggressive again - stop that!&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2010-11-29T10:26:59.053" CommentCount="3" />
  <row Id="22227" PostTypeId="2" ParentId="22218" CreationDate="2010-11-29T10:28:47.583" Score="3" ViewCount="" Body="&lt;p&gt;Receiving the first support request from the first customer for newly made software.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-11-29T10:28:47.583" />
  <row Id="22228" PostTypeId="2" ParentId="22218" CreationDate="2010-11-29T10:32:32.133" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Coding a challenging part of the program. Not the kind of routine stuff I have to do every day, but the exceptional tricky stuff that requires all of my skills. Seeing it work for the first time.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Going live and observing all the things that happen in the real world because of my program, e.g. watching all the workers in the warehouse buzz around like ants, using my new warehouse mananagent system&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-29T10:32:32.133" />
  <row Id="22229" PostTypeId="2" ParentId="22218" CreationDate="2010-11-29T10:33:31.680" Score="1" ViewCount="" Body="&lt;p&gt;Starting the project.  Nothing's more exciting than a programming project full of possibilities and potential.  By the time you're done, all of those dreams will have been crushed by cold, hard reality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One other thing:  the times when I get to use &lt;code&gt;C-k&lt;/code&gt; repeatedly in emacs or &lt;code&gt;dd&lt;/code&gt; repeatedly in vim.  There is &lt;em&gt;nothing&lt;/em&gt; more satisfying than destroying hours worth of your own or someone else's work because you found a way to do it that took 10 minutes.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastEditorUserId="1626" LastEditorDisplayName="" LastEditDate="2010-11-29T10:50:23.797" LastActivityDate="2010-11-29T10:50:23.797" />
  <row Id="22230" PostTypeId="2" ParentId="22210" CreationDate="2010-11-29T10:34:44.987" Score="10" ViewCount="" Body="&lt;p&gt;We are not pedantic, we just prefer everything that is exact.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-11-29T10:34:44.987" CommentCount="1" />
  <row Id="22231" PostTypeId="2" ParentId="21970" CreationDate="2010-11-29T10:37:55.607" Score="0" ViewCount="" Body="&lt;p&gt;Not a book, but I highly recommend reading &lt;a href=&quot;http://www.randsinrepose.com/&quot; rel=&quot;nofollow&quot;&gt;Rands in Repose&lt;/a&gt;.  It's a very good look at what goes through a typical project manager's head.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-29T10:37:55.607" />
  <row Id="22232" PostTypeId="2" ParentId="22218" CreationDate="2010-11-29T10:42:39.240" Score="0" ViewCount="" Body="&lt;p&gt;Cleaning/refactoring/adding tests/whatever improves the quality of the code. When I see that big 2000 lines of untested code class and I find a way to split it and make even a tiny part of it testable. Then, I hear one of my coworkers say &quot;Thank you, we should have done that early&quot;. And I feel good...  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least for a few hours or days. After that, I find new things that needs to be improved... or find that some other of my co-workers keep making this ugly class bigger and bigger.&lt;/p&gt;&#xA;" OwnerUserId="2365" LastActivityDate="2010-11-29T10:42:39.240" />
  <row Id="22233" PostTypeId="2" ParentId="22206" CreationDate="2010-11-29T10:42:54.280" Score="1" ViewCount="" Body="&lt;p&gt;I think a professional is one who doesn’t simply throw pieces of code together, who knows what every line of his code does and yet thinks about the code as a whole, somebody who can deliver a working and maintainable solution under given constraints; somebody who never stops improving.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Somebody who think he’s a professional just because he’s been in the industry for so-and-so many years and did so-and-so many projects is a clown.&lt;/p&gt;&#xA;" OwnerUserId="1500" LastActivityDate="2010-11-29T10:42:54.280" />
  <row Id="22234" PostTypeId="1" AcceptedAnswerId="22241" CreationDate="2010-11-29T10:44:14.413" Score="6" ViewCount="518" Body="&lt;p&gt;Hypothetically speaking imagine that there exists a coworker that has a very shallow understanding of computing. To avoid stereotyping lets give this coworker the gender neutral name Chris. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now Chris' diagnostic ability is low and can't figure out the correct IP addresses to set his/her virtual machines to. Chris also fails to merge code properly and overwrites a commit I made fixing something, thereby re-introducing a bug. I let this slide, refix the bug and do not make a sound about it to management. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given a task Chris either 1) complains that there isn't sufficient information resulting in 2) you provide Chris with inordinately detailed instructions to satisfy 1). The more detail you provide in a list of steps to carry out, the more chance of an error being present in your instructions. Chris gets these instructions, tries to execute them, fails and it becomes your fault because your instructions aren't good enough. How do you deal with this? &lt;/p&gt;&#xA;" OwnerUserId="8392" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-29T19:35:45.790" LastActivityDate="2010-11-29T19:35:45.790" Title="Coworker that detrimentally picks on every minutia" Tags="&lt;management&gt;&lt;bad-programmer&gt;&lt;colleagues&gt;" AnswerCount="6" CommentCount="13" FavoriteCount="1" />
  <row Id="22235" PostTypeId="2" ParentId="22183" CreationDate="2010-11-29T10:49:10.317" Score="0" ViewCount="" Body="&lt;p&gt;Open source tends to good coding, since you cannot hide your bad code behind a working application, you need to code well otherwise you are out of game. Understanding and copy/pasting a good code doesn't make the developer worse (do not confuse with copy/pasting instead of doing a proper design). And, as mentioned in another answer, a bad programmer will find another ways to produce bad code if there were no available source codes.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-11-29T10:49:10.317" />
  <row Id="22236" PostTypeId="2" ParentId="22219" CreationDate="2010-11-29T10:50:33.700" Score="2" ViewCount="" Body="&lt;p&gt;We've been running a SaaS for enterprise customers on .NET and our own servers. Everybody seems to be happy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you communicate the idea of SaaS to the customer properly, they won't care what it's running on and where.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-11-29T10:50:33.700" />
  <row Id="22237" PostTypeId="2" ParentId="22124" CreationDate="2010-11-29T11:05:00.777" Score="0" ViewCount="" Body="&lt;p&gt;In my understanding, some, but not all, developers are also architects. An architect who is not a developer (i.e. doesn't code anymore) is possible, but IMO likely to create more problems than he actually helps solving.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-29T11:05:00.777" />
  <row Id="22238" PostTypeId="2" ParentId="22218" CreationDate="2010-11-29T11:15:19.743" Score="0" ViewCount="" Body="&lt;p&gt;Making the bits that don't work, working.  That to me is the most challenging and most fun part of development.  Everything that works as expected isn't very interesting in everyday life.  The one bit that doesn't work and I spend hours getting it to work, &lt;strong&gt;that's satisfying&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="6815" LastActivityDate="2010-11-29T11:15:19.743" />
  <row Id="22239" PostTypeId="2" ParentId="22222" CreationDate="2010-11-29T11:15:37.387" Score="16" ViewCount="" Body="&lt;p&gt;Make sure you set-up an awesome development and testing environment so you can rapidly prototype and execute code (quick turn-around time).  So:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Continuous Integration server&lt;/li&gt;&#xA;&lt;li&gt;Source control&lt;/li&gt;&#xA;&lt;li&gt;Test environment that you can rapidly deploy to&lt;/li&gt;&#xA;&lt;li&gt;A prototyping/wireframe tool&lt;/li&gt;&#xA;&lt;li&gt;I'd recommend a BDD/TDD approach - get the user working with you daily, especially when you're whipping up the wireframe code&lt;/li&gt;&#xA;&lt;li&gt;Make sure you're developing on a fast machine in an environment which is quiet and peaceful&lt;/li&gt;&#xA;&lt;li&gt;Ensure you're hooked up to the various technical communities (e.g. SO) that can help you get unstuck quickly&lt;/li&gt;&#xA;&lt;li&gt;Don't re-invent the wheel, 3rd party libs are awesome, especially open source ones&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The temptation will be to start coding immediately (as you only have two months), try to spend a day or two setting yourself up first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2010-11-29T12:52:45.813" LastActivityDate="2010-11-29T12:52:45.813" CommentCount="6" />
  <row Id="22240" PostTypeId="2" ParentId="22234" CreationDate="2010-11-29T11:15:41.987" Score="1" ViewCount="" Body="&lt;p&gt;I know, its hard working with people who are not as good as you!  but I'm sorry thats life, and as you get better you will find this happens more and more often  ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the best strategy is to identify the areas of technical weakness.  e.g. lack of knowledge of TCP/IP, cannot translate a task request into a suitable algorythm, etc..  and then ask the questions, does this person have sufficent skills for the tasks at hand? Does the time taken in supporting and developing this person cost more than their personal output produces? are they learning and improving?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the net effect on the team over the long term looks negative and there is no evidence that it will improve significantly then you can be sure that your managers will want to know. However, it is quite possible that this person has the potential, but that you are not the person to do the training and support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would guess that this co worker is slightly out of their depth, and is not getting the support they need to start being productive.  Likewise, you are struggling with this person not being a total geek, and find it dificult to provide support at the right level.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastEditorUserId="8035" LastEditorDisplayName="" LastEditDate="2010-11-29T11:20:56.837" LastActivityDate="2010-11-29T11:20:56.837" />
  <row Id="22241" PostTypeId="2" ParentId="22234" CreationDate="2010-11-29T11:23:15.473" Score="14" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Anyway given a task Chris either 1)&#xA;  complains that there isn't sufficient&#xA;  information resulting in 2) you&#xA;  provide Chris with inordinately&#xA;  detailed instructions to satisfy 1).&#xA;  The more detail you provide in a list&#xA;  of steps to carry out, the more chance&#xA;  of an error being present in your&#xA;  instructions.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Having been in both your position and Chris's, I might be able to explain things a bit.  I hear you saying that you're giving Chris tasks, but you don't mention involving him in coming up with those instructions.  You're probably trying to help him do the right thing, but that's probably not how he sees it.  When you're in Chris's place, it's difficult not to think of what you're trying to do as saying &quot;OK, here's your work.  Now do your job, &lt;em&gt;drone&lt;/em&gt;.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, the solution isn't to give Chris more instructions.  In fact, you should give him &lt;em&gt;no&lt;/em&gt; instructions.  Instead, you should help him come up with a course of action.  Once Chris sees his role in the process, he might very well turn into a different person altogether.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-29T18:18:11.983" LastActivityDate="2010-11-29T18:18:11.983" CommentCount="4" />
  <row Id="22242" PostTypeId="2" ParentId="22222" CreationDate="2010-11-29T11:23:24.303" Score="0" ViewCount="" Body="&lt;p&gt;Firstly, I would not think about using SQLite, I personally do not think this would be a good choice in your situation. I assuming this will be highly transactional, I would suggest, MySQL or MSSQL or similar DB.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In regards to tips to speed up development:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Try to identify parts of the application where you can re-use code, try to think &quot;generically&quot; and create functions/classes.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Try and put as much repeated &quot;boiler code&quot; into functions/classes.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do not re-invent the wheel, if some-else has code that does what you need, use that, and tweak where needed.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Good Luck.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-11-29T11:23:24.303" />
  <row Id="22243" PostTypeId="2" ParentId="22183" CreationDate="2010-11-29T11:38:30.663" Score="1" ViewCount="" Body="&lt;p&gt;At first there's no exact definition of good code. You may take two parts of good code and combine them, and get bad code. Just because code styles are different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad programmer copy-paste bad code, write bad code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good programmer copy-paste good code, write good code. Good programmer will not paste bad code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But open source give us great chance not write same code again and again, but&lt;/p&gt;&#xA;" OwnerUserId="8771" LastActivityDate="2010-11-29T11:38:30.663" />
  <row Id="22244" PostTypeId="1" AcceptedAnswerId="22248" CreationDate="2010-11-29T11:41:39.293" Score="14" ViewCount="755" Body="&lt;p&gt;The company I work for doesn't have any designers and hence each year a developer needs to design the company christmas e-card.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This year its me.  I'd much rather get on with something productive (and learn something) rather than searching for images from google or designing my own only for management to say they don't like it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've got a logical kind of brain, and I'm the least creative person ever.  So how can I quickly mock up something to get it out of my way?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the moment I feel like this is a waste of time.&lt;/p&gt;&#xA;" OwnerUserId="4630" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-11-29T15:54:10.220" LastActivityDate="2010-11-30T12:58:03.560" ClosedDate="2010-11-30T15:09:59.143" Title="My company has me doing a christmas card" Tags="&lt;productivity&gt;&lt;recommendations&gt;&lt;design&gt;" AnswerCount="12" CommentCount="15" FavoriteCount="1" />
  <row Id="22245" PostTypeId="2" ParentId="22169" CreationDate="2010-11-29T11:50:00.790" Score="0" ViewCount="" Body="&lt;p&gt;Personally I have not seen the programming problem yet.  You need to set up a suitable off the shelf standard CMS.  You may need some of the programmer time for writing extentions and customisations but unless you are expecting to become the size of Facebook or Amazon then there is little point in writing your own CMS to deliver this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your value in your product is in the friendlyness of the layout and menu structure and on the quality of the content.  &lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-29T11:50:00.790" />
  <row Id="22246" PostTypeId="2" ParentId="22244" CreationDate="2010-11-29T11:50:46.437" Score="11" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I've got a logical kind of brain, and I'm the least creative person ever. So how can I quickly mock up something to get it out of my way?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;How about the source code of a BASIC program to print an ASCII Xmas tree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or see if you can scan a picture produced by your 5 year old child, cousin, etc.  (I think they call this &quot;outsourcing&quot; ...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if they don't like it, suggest the phone number of a professional graphic artist / designer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Frankly, your company sounds like a bunch of cheapskates.  &quot;We wish you a slightly Merry Xmas ... and here's a shoddy card to show how much we care.&quot;)&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-11-29T11:50:46.437" CommentCount="4" />
  <row Id="22248" PostTypeId="2" ParentId="22244" CreationDate="2010-11-29T11:53:01.813" Score="23" ViewCount="" Body="&lt;p&gt;Take the Mandelbrot set &lt;img src=&quot;http://i.imgur.com/CmDY0.jpg&quot; alt=&quot;Mandelbrot set&quot;&gt;, turn it 90° clockwise, decorate it with candles, balls and lametta. Voila, geeky X-mas tree.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-29T11:53:01.813" CommentCount="6" />
  <row Id="22249" PostTypeId="1" CreationDate="2010-11-29T11:57:36.273" Score="5" ViewCount="293" Body="&lt;p&gt;Even though I haven't been in a TDD or BDD project, or I have been in some that say they are doing TDD but are pretty far from it, these are things that I think about and really try to read as much as I can about. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back to the question. When you're doing BDD you should write your &quot;test&quot; first and make it fail, right? And then implement that feature or what you call it. But if you take this to the extreme couldn't this be some kind of top-down development? You're looking at your UI and says, &quot;I would like to have this feature/behavior here&quot;. Then you fix your UI to implement that feature and the code that supports the UI. At this point you haven't implemented any business logic or data access logic, you have just implemented your behavior. What I'm aiming at instead of writing the test first you write your UI code first. In some cases it should result in the same code for the data access and business layer, since you use your UI code to define what your business needs to support. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course you should complement this with tests that is used to make sure that the feature is working as it should in the feature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any thoughts?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; Good answers and thoughts from everyone I think. Some of you have stated, in one way or another, that you need to write your test first otherwise it is development-driven. I definitely agree with that when talking about TDD, since your test should drive your development. But when talking about BDD I'm not as sure that you have to write your test first, isn't BDD all about defining your behavior first? I think that looking at the UI and say: &quot;hey I want this behavior/functionality here&quot;, sound quite behavior-driven to me. I don't say you should skip all your test but you could use the top-down approach as the first step as defining your behavior. I do think that when you have taken that first step and maybe implemented the feature in the UI with some mockup data you should start defining your test that verifies that behavior.&lt;/p&gt;&#xA;" OwnerUserId="5453" LastEditorUserId="5453" LastEditorDisplayName="" LastEditDate="2010-11-30T07:43:11.320" LastActivityDate="2010-11-30T07:43:11.320" Title="Do you really have to do BDD/TDD in a test first manner?" Tags="&lt;unit-testing&gt;&lt;tdd&gt;" AnswerCount="5" CommentCount="5" FavoriteCount="1" />
  <row Id="22250" PostTypeId="2" ParentId="22249" CreationDate="2010-11-29T12:03:35.813" Score="3" ViewCount="" Body="&lt;p&gt;If you want to work this way, go for it.  But it's not test-driven-development.&lt;/p&gt;&#xA;" OwnerUserId="1353" LastActivityDate="2010-11-29T12:03:35.813" />
  <row Id="22251" PostTypeId="2" ParentId="22249" CreationDate="2010-11-29T12:04:44.493" Score="2" ViewCount="" Body="&lt;p&gt;What you describe sounds much like the &lt;a href=&quot;http://thedailywtf.com/Articles/FrontAhead-Design.aspx&quot; rel=&quot;nofollow&quot;&gt;Front-Ahead Design&lt;/a&gt; approach. Unfortunately, Front-Ahead Design is Alex Papadimoulis' satirical stab at agile methods.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-29T12:04:44.493" />
  <row Id="22252" PostTypeId="2" ParentId="22249" CreationDate="2010-11-29T12:16:10.890" Score="3" ViewCount="" Body="&lt;p&gt;Personally, I believe that it is critical to think about testing during the design stage. Its really great having a working implementation, but the only way you can be sure that you have a working product is if you have tested it piece by piece.  The way to cover this is by a combination of Unit tests and a skilled QA team working in partnership.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now how you install this dicipline into your team is up to you.  TDD is one such strategy - and one that has its place, and there are plenty of other variations. However, TDD is not particularly suited to developing UI layout.   &lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-29T12:16:10.890" />
  <row Id="22253" PostTypeId="2" ParentId="22183" CreationDate="2010-11-29T12:24:39.107" Score="1" ViewCount="" Body="&lt;p&gt;This question is impossible to answer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you are asking with respect to yourself, e.g. &quot;does the presence of freely available code that solves problems that I'm dealing with make me a sloppier or worse developer,&quot; then there's a very simple and collaborative solution to your anxiety.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find a project that you use, support, or find interesting, and see if you can involve yourself with it. Write some code, write some test cases, or provide some documentation. Whatever you end up doing, you'll be working with and evaluating the code you're using, and helping out a project you support. &lt;/p&gt;&#xA;" OwnerUserId="6894" LastActivityDate="2010-11-29T12:24:39.107" />
  <row Id="22254" PostTypeId="2" ParentId="22244" CreationDate="2010-11-29T12:30:26.273" Score="1" ViewCount="" Body="&lt;p&gt;Write a program in &lt;a href=&quot;http://en.wikipedia.org/wiki/Brainfuck&quot; rel=&quot;nofollow&quot;&gt;Brainfuck&lt;/a&gt; that looks like an ASCII Christmas tree and prints a happy Christmas message when executed.  Alternatively, draw a pretty Christmas picture using &lt;a href=&quot;http://en.wikipedia.org/wiki/Piet_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Piet&lt;/a&gt;!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either way, they'll probably stop asking developers to make Christmas cards after this!&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-11-29T12:30:26.273" CommentCount="2" />
  <row Id="22255" PostTypeId="1" AcceptedAnswerId="22261" CreationDate="2010-11-29T12:31:41.063" Score="3" ViewCount="174" Body="&lt;p&gt;Let's say I am working on an open source project and want to re-use a trivial utility function from another open source project (for example, a file search/replace function). Is it legal to copy the function and simply write a small copyright notice in top of the file? Should I include their name as copyright holders of the entire project in the license?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, let's say I fork an open source project. Where and how do I specify that the copyright is shared between both the original copyright holder and myself? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess the answer must somewhat vary according to the open source license but I'd like a general answer as much as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: I'm mostly concerned about the legal aspect, but feel free to include your ethical point of view. &lt;/p&gt;&#xA;" OwnerUserId="2100" LastActivityDate="2010-11-29T13:00:26.577" Title="What's the right way to fork/re-use code from an open source project?" Tags="&lt;open-source&gt;&lt;license&gt;&lt;copyright&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="22256" PostTypeId="2" ParentId="22244" CreationDate="2010-11-29T12:40:24.503" Score="0" ViewCount="" Body="&lt;p&gt;Do a presentation called, &quot;How to make an eCard with no programming&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then have the IT Department hold a contest on who in the firm can create the best card. Offer a 25% gift card and use the winner for the company card.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Twenty-five dollars is the least the Head of IT can spend for failing to protect his department from these types of tasks.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-29T12:40:24.503" />
  <row Id="22257" PostTypeId="2" ParentId="22224" CreationDate="2010-11-29T12:43:08.353" Score="3" ViewCount="" Body="&lt;p&gt;The only site I know of is &lt;a href=&quot;http://www.topcoder.com/&quot; rel=&quot;nofollow&quot;&gt;TopCoder&lt;/a&gt;.  I don't know if they fit all of your requirements but I offer it up anyway...&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-11-29T12:43:08.353" CommentCount="3" />
  <row Id="22258" PostTypeId="2" ParentId="22224" CreationDate="2010-11-29T12:46:05.297" Score="2" ViewCount="" Body="&lt;p&gt;You can find people from a variety of disciplines at &lt;a href=&quot;http://freelancer.com&quot; rel=&quot;nofollow&quot;&gt;Freelancer.com&lt;/a&gt;. I've had good experiences both selling my services there, and hiring people to help me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It isn't the typical 'basement coder for hire' kind of resource. You'll find electrical engineers there, CAD gurus and quite a bit more. Also a great deal of talent experienced in [name your mobile device here].&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They make an effort to connect supply to demand without categorizing us as 'copper tops', if you know what I mean. Additionally, they do their best to ensure that every buyer has a good experience.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-29T17:25:17.800" LastActivityDate="2010-11-29T17:25:17.800" CommentCount="1" />
  <row Id="22259" PostTypeId="2" ParentId="22218" CreationDate="2010-11-29T12:51:17.903" Score="0" ViewCount="" Body="&lt;p&gt;Design.  Love data modelling and architecture.&lt;/p&gt;&#xA;" OwnerUserId="8776" LastActivityDate="2010-11-29T12:51:17.903" />
  <row Id="22260" PostTypeId="2" ParentId="22234" CreationDate="2010-11-29T12:57:01.730" Score="4" ViewCount="" Body="&lt;p&gt;I think the point is not to program a robot colleague.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Provide sufficient but brief pointers. Ask him, what's missing if he complains.&#xA;Either his complain is fair, then you can give him more information or it is unfair and then you can document his incompetence (if you exchange the details via email).&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-11-29T12:57:01.730" CommentCount="1" />
  <row Id="22261" PostTypeId="2" ParentId="22255" CreationDate="2010-11-29T13:00:26.577" Score="7" ViewCount="" Body="&lt;p&gt;I'm trying to make this answer as 'meta' applicable as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Using snippets / bits from other projects&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clearly mark the code with the original author's copyright. Make sure that your license of choice is fully compatible with the license of the code you are using. You will need permission of the author to move the code to a different license (unless they specifically allow you to do so, I.e. &quot;GPL 2 or any later version&quot;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your program should have an AUTHORS file (or similar), where you list all contributors and things that you used from other projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Forking a project&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For each module that you &lt;em&gt;substantially&lt;/em&gt; change, add your copyright under the original author's. The same thing goes for licensing, you are bound by the terms of the license that was in effect when you forked it. If the project says &quot;GPL2 only&quot;, you must respect that, you can't go to GPL3 without their permission.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This varies, greatly, depending on the license at hand. The QPL says you can only distribute changes in patch format, for instance, so make sure you understand the terms that allow you to distribute modified versions of the software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond that, always preserve copyright. If adding your own copyright to what exists, be sure that you clearly mark exactly what you are claiming. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-29T13:00:26.577" CommentCount="2" />
  <row Id="22262" PostTypeId="2" ParentId="22249" CreationDate="2010-11-29T13:09:51.500" Score="8" ViewCount="" Body="&lt;p&gt;If you don't write your tests first you are not driving development through your tests. Ergo, you're not doing test-driven development!&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-11-29T13:09:51.500" />
  <row Id="22263" PostTypeId="2" ParentId="515" CreationDate="2010-11-29T13:16:33.210" Score="15" ViewCount="" Body="&lt;p&gt;It's very easy to get a function-like syntax if that's what you want -- just write some tiny functions that return strings, and use them to build your regex:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;sub u               { &quot;(?:$_[0])&quot; }   # For isolation; see bottom&#xA;sub zero_or_more($) { u($_[0]) . &quot;*&quot; }&#xA;sub one_or_more($)  { u($_[0]) . &quot;+&quot; }&#xA;sub opt($)          { u($_[0]) . &quot;?&quot; }&#xA;sub group($)        { &quot;($_[0])&quot; }&#xA;sub start()         { &quot;^&quot; }   # Or \A if you want the startiest start&#xA;sub end()           { '$' }   # Or \z if you want the endiest end&#xA;sub OR(@) { join(&quot;|&quot;, map { u $_ } @_) }   # &quot;or&quot; is a reserved word&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It's easy to define useful reusable snippets:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;sub letter { '[A-Za-z]' }     # Or use something more Unicodey if you want&#xA;sub word { one_or_more letter }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now something like &lt;code&gt;$x =~ /^[A-Za-z]+$/&lt;/code&gt; can be written &lt;code&gt;$x =~ (start . word . end)&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; In a comment, Timwi astutely points out that nesting (the original versions of) these functions could produce regex strings with different semantics -- e.g. using &lt;code&gt;opt&lt;/code&gt; on the result of &lt;code&gt;zero_or_more&lt;/code&gt; will produce a regex containing &lt;code&gt;*?&lt;/code&gt;, which will be interpreted as &quot;match zero or more, non-greedily&quot;.  Thinking this through, I noticed that a similar problem would occur when applying a function like &lt;code&gt;zero_or_more&lt;/code&gt; to any multicharacter string -- e.g. &lt;code&gt;zero_or_more &quot;ab&quot;&lt;/code&gt; would produce &lt;code&gt;ab*&lt;/code&gt;, which will match an &lt;code&gt;a&lt;/code&gt; followed by zero or more &lt;code&gt;b&lt;/code&gt; characters.  Clearly that's not what was intended.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Both problems can be fixed&lt;/strong&gt; by ensuring that any regex snippet operated on by a function is treated as a single unit by wrapping it in &lt;code&gt;(?:...)&lt;/code&gt;.  Two approaches are possible: either regard all function inputs as possibly &quot;unsafe&quot; snippets that require wrapping before further processing; or expect all function inputs to be already safely wrapped and return a new regex that is also safely wrapped.  The new versions of the functions take the former approach, because it allows literal strings to be conveniently used as-is, without requiring the use of a helper function.&lt;/p&gt;&#xA;" OwnerUserId="8769" LastEditorUserId="8769" LastEditorDisplayName="" LastEditDate="2010-11-30T13:21:44.250" LastActivityDate="2010-11-30T13:21:44.250" CommunityOwnedDate="2010-11-29T13:16:33.210" CommentCount="8" />
  <row Id="22264" PostTypeId="2" ParentId="3789" CreationDate="2010-11-29T13:25:41.317" Score="1" ViewCount="" Body="&lt;p&gt;I'd say python, since it covers the basics while being easy and featuring a lot of pre-made functions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know python is very different, but it avoids having you to learn stuff which is specific to a language in particular, like compilation, includes, headers, compilers, IDEs, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course there are differences you will have to understand when switching to another language, but I think it is the best you can try if you want a quick start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But anyhow you have to understand that it is also a very good idea to start learning C/C++, only if you keep focusing on the very basics (the part which works approximately as well in C as in C++), but don't forget your progress will be slower, while python offers great libraries like pygame which allows to quickly build a 2D game.&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2010-11-29T13:25:41.317" />
  <row Id="22265" PostTypeId="1" AcceptedAnswerId="22272" CreationDate="2010-11-29T13:28:48.103" Score="13" ViewCount="767" Body="&lt;p&gt;I'm still at school, and I know I have problems dealing with other people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not an angry or shy or different, I just like to work my way and with my opinions while respecting other's, I have a big curiosity and hunger for knowledge, but I lack practice and I guess people don't want to work with me because they might fear I would talk some kind of morale. (For example I started to learn programming using linux instead of windows, even if I use windows a lot. And I have a mac).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What happens to programmers who lack teamwork ? Where does the problems begin ? Does being a good programmer compensate at least a little ? Is it normal for a programmer to have a vision about his work instead of just doing what he is told ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I'm I france)&lt;/p&gt;&#xA;" OwnerUserId="5024" LastEditorUserId="2471" LastEditorDisplayName="" LastEditDate="2010-11-29T13:53:30.090" LastActivityDate="2010-12-08T17:12:59.210" Title="How bad can it be to lack teamwork when you are a programmer ?" Tags="&lt;social&gt;&lt;social-skills&gt;&lt;teamwork&gt;" AnswerCount="16" CommentCount="2" FavoriteCount="3" />
  <row Id="22266" PostTypeId="2" ParentId="22265" CreationDate="2010-11-29T13:33:29.187" Score="5" ViewCount="" Body="&lt;p&gt;It's a learnable skill. You can learn now (by simply trying to work with others) or learn the hard way, on the job. (I'd suggest the former.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't work with other people then you can't build big systems. You also can't work with people smarter than you, which means you can't learn as much or as quickly.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-11-29T13:33:29.187" />
  <row Id="22267" PostTypeId="2" ParentId="22265" CreationDate="2010-11-29T13:33:54.223" Score="1" ViewCount="" Body="&lt;p&gt;Team work is a important part of Software Engineering. If you are working alone, you might not be bothered about how others are and what people expect from you. But if you are working with another person, working together really counts. When it comes to software, what you mean by team-work is a really '&lt;strong&gt;communicating well&lt;/strong&gt;'. Just give respect to your colleague and be tolerant of all ideas. It should be fine.&lt;/p&gt;&#xA;" OwnerUserId="16639" LastActivityDate="2010-11-29T13:33:54.223" />
  <row Id="22268" PostTypeId="2" ParentId="22265" CreationDate="2010-11-29T13:35:57.763" Score="13" ViewCount="" Body="&lt;p&gt;Depends on what the job requires. Sometimes you won't even have a team for certain assignments. But most of the time, you will have a manager.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2007/05/the-best-code-is-no-code-at-all.html&quot; rel=&quot;nofollow&quot;&gt;Also, having a team really helps to remind you from time to time that you write crap code.&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;As a software developer, you are your&#xA;  own worst enemy. The sooner you&#xA;  realize that, the better off you'll&#xA;  be. - &lt;strong&gt;Jeff Atwood&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Which means, having a team will make it easier to learn things faster! Being a loner will make you a hermit ;)&lt;/p&gt;&#xA;" OwnerUserId="3814" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-29T13:45:23.503" LastActivityDate="2010-11-29T13:45:23.503" CommentCount="1" />
  <row Id="22269" PostTypeId="2" ParentId="22265" CreationDate="2010-11-29T13:46:14.640" Score="2" ViewCount="" Body="&lt;p&gt;If you cannot collaborate with others and you are not a naturally born coding stellar genius, you basically block yourself for working on any non-trivial project, because for these you want a team if nothing else than lowering the bus factor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you just do not like physical contact, but work well with telecommuting or on open source mailing lists, then you will have to specialize in those skills allowing for working like that.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-29T13:46:14.640" />
  <row Id="22270" PostTypeId="2" ParentId="22265" CreationDate="2010-11-29T13:50:29.610" Score="2" ViewCount="" Body="&lt;p&gt;Unfortunately this can be a bit of an issue as it is rare to work on large projects and not have to work on a team. Even if you work on project interdependently you are generally going to be finding that you have to work closer with the end users which all comes back to teamwork, so it is something that is very important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said though, as others have pointed out, this is a learn-able skill (to an extent) and if you put the effort into it. There are generally some courses that you can take here in the United States in larger cities to develop leadership skills; however, part of being a good leader is also being a good follower so those skills are developed as well. Likewise, being able to communicate effectively in public is sometimes a skill that people need practice with and is related to teamwork skills but is sometimes glossed over - someone that is unable to communicate effectively might be cited as not being a &quot;team player&quot; even though just need to work on their communication skills a bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, a large part of working with a team is knowing yourself to an extent and being comfortable with yourself as well as with others so sometimes it doesn't hurt to talk to a psychologist or counselor to see if if there is anything you can improve in regards to working with others. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In regards to your career as a whole, here in the United States, having a reputation of &quot;being hard to work with&quot; or &quot;not being a team player&quot; can be extremely detrimental to your long term career prospects and I would hazard a guess that it would be the same in most other countries. This is also a difficult reputation to shake once it has been established without making a move to another company or possibly even another industry depending upon what field you work in.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-11-29T13:50:29.610" />
  <row Id="22271" PostTypeId="2" ParentId="22265" CreationDate="2010-11-29T13:51:24.460" Score="3" ViewCount="" Body="&lt;p&gt;Being a good programmer will compensate a little but only a little.  In sixteen years in the industry all the best programmers I've worked with could get on with people - it may not have come naturally to them but they managed it and it was an absolutely key skill.  Those who couldn't were tolerated but in honesty not much more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me the main area the ability to work with others comes into play is with users and analysts.  It doesn't matter how well you can code if you're coding the wrong thing and a good working relationship with the people who are defining the product is key to that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first step might be to understand a bit more about yourself.  You say you're happy to respect the opinions of others but is this really true?  If it is then why do you imply that you're prone to taking moral positions on issues (which tend to be the opposite of respecting the views of others)?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally getting on with others tends to be about ignoring who is right and who is wrong (which believe it or not is irrelevant in 80% of situations) and focusing on doing whatever moves the project forward. &lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-29T13:51:24.460" />
  <row Id="22272" PostTypeId="2" ParentId="22265" CreationDate="2010-11-29T13:53:13.913" Score="14" ViewCount="" Body="&lt;p&gt;Your behavior is pretty common at your age. I was like you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The good news is that most of the time, it evolves in the good direction. You will learn how to integrate yourself within a team. You will love it! But I met some people that weren't able to make it and are now stuck is depression.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on the style of management of your company, you will either be rejected by your team or simply fired after a while. So you must be prepared to face some difficulties.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;France's most common style of management is based on fear and punishment. This is not a good news for you since it will encourage your individualism. So it will encourage your behavior.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, you already know there is a problem with you, so it's a pretty good indication that you have all you need to evolve without external help. The first step is being aware. The second one, the most difficult, is acting on it.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-29T15:16:15.573" LastActivityDate="2010-11-29T15:16:15.573" CommentCount="2" />
  <row Id="22273" PostTypeId="2" ParentId="22234" CreationDate="2010-11-29T14:06:05.897" Score="2" ViewCount="" Body="&lt;p&gt;Don't ever try to spoon feed anyone, in the long run it always backfires (no exceptions). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep communication formal at all times, and use email. Copy seniors in the team on the mail exchanges. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Provide enough information for the person to dig in, but no more. This is a job remember, not a tuition service for bickering types.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-11-29T14:06:05.897" />
  <row Id="22274" PostTypeId="2" ParentId="22249" CreationDate="2010-11-29T14:07:49.000" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes!&lt;/strong&gt; Otherwise, what you get is &lt;strong&gt;development-driven testing&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Realistically speaking, however, there are problems that are hard to approach by using &quot;pure&quot; TDD.  You could be more productive writing by writing some uncovered production code up front and covering it with tests later (and learning how to approach similar problems with TDD in the future). Look at &lt;a href=&quot;http://blog.dhananjaynene.com/2009/11/rinse-and-repeat-with-tdd/&quot; rel=&quot;nofollow&quot;&gt;this technique&lt;/a&gt;, which its author called &lt;em&gt;rinse-and-repeat TDD&lt;/em&gt; for want of a better term.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-11-29T14:07:49.000" CommentCount="2" />
  <row Id="22275" PostTypeId="2" ParentId="22118" CreationDate="2010-11-29T14:19:03.273" Score="0" ViewCount="" Body="&lt;p&gt;To a large extent, it all depends and if you ask several people you are going to get several different answers on the subject. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As &lt;a href=&quot;http://programmers.stackexchange.com/questions/22118/should-we-use-progressing-job-titles-for-programmers/22120#22120&quot;&gt;Pierre 303&lt;/a&gt; pointed out, some people will find the progression of job titles to be extremely motivating, where as &lt;a href=&quot;http://programmers.stackexchange.com/questions/22118/should-we-use-progressing-job-titles-for-programmers/22128#22128&quot;&gt;Jon Hopkins&lt;/a&gt; pointed out, there can be some issues involved with having progressive job titles in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing you might want to do is consider putting this to the team and getting their feedback on what they think a good system might be; however, you should also be sure you can &lt;em&gt;why&lt;/em&gt; having a progressive system of titles is a good idea. As people commonly say, &quot;Don't fix something that isn't broken.&quot; If you are running into issue with clients whom are meeting with your team getting confused as to the internal hierarchy (this can occur but tends to have a bit of a cultural bias) but if that isn't an issue then you need to look at the reasons that making a change is a good idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are having issues with tracking things internally for human resources purposes then you might want to implement an internal system such as a simple &quot;Developer I though &lt;em&gt;N&lt;/em&gt;&quot; that can be used when it comes time for reviews and to be able to set the requirements to move up to a higher salary range. That allows you to be able to track someone's career development while still having simple job titles such as Programmer and Sr. Programmer.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-11-29T14:19:03.273" />
  <row Id="22276" PostTypeId="2" ParentId="4693" CreationDate="2010-11-29T14:22:56.157" Score="0" ViewCount="" Body="&lt;p&gt;The problem with computers, is that there are a lot of them, it sells a lot, but when someone wants to do something with it, it's not as good as it sells.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To know about computers and programming, there are a lot of things to consider first:&#xA;Electronics&#xA;Mathematics&#xA;Physics&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And only after that you can start to learn about programming, which is a whole new matter. Don't forget it's about a technical language, so in a way you talk to the computer, which is weird.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First there are a lot of people who misconsiders maths as a geeky or nerdy matter, but that's even more true with programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So basically when a programmer tries to explain this or that, it's VERY, VERY annoying when someone starts to yawn or say &quot;stop speaking lik ur smart&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People who considers math or programming as a waste of time or some asocial job ARE stupid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some programmer can be arrogant because they feel they are misconsidered, other good programmers just shut up and stay modest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I remember when my mom went all mad on me last year because she was frustrated with what she could do or couldn't do with internet, blaming me or how I was explaining it to her.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact that some people are ignorant can maybe be explained because they thing or feel it's actually better being ignorant. Fact is, when you work in programming, it's completely false.&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2010-11-29T14:22:56.157" CommunityOwnedDate="2010-11-29T14:22:56.157" />
  <row Id="22277" PostTypeId="2" ParentId="22234" CreationDate="2010-11-29T14:26:56.817" Score="3" ViewCount="" Body="&lt;p&gt;either you are enabling dependent behavior, or you are micromanaging; it's hard to say which from the description&lt;/p&gt;&#xA;&#xA;&lt;p&gt;so let's find out!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;talk to your manager about the situation, and then take a vacation; ask your manager to make sure that Chris has a new assignment while you're gone, and that no one is 'available' to help him/her.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then see if Chris gets anything done without you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if he/she does, then you don't need to help any more - problem solved&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if not, then your company doesn't need Chris (at least at his/her current level of training/ability) - and your manager will not be able to ignore that fact&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-29T14:26:56.817" />
  <row Id="22278" PostTypeId="2" ParentId="22165" CreationDate="2010-11-29T14:27:58.777" Score="0" ViewCount="" Body="&lt;p&gt;Depends on the language and the framework you know about !&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say the language somebody should know are C++ and Python.&#xA;Learning a framework like Qt or Rails is I think more important than to learn LUA.&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2010-11-29T14:27:58.777" />
  <row Id="22279" PostTypeId="2" ParentId="22265" CreationDate="2010-11-29T14:28:51.170" Score="12" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;What happens to programmers who lack teamwork?&lt;/em&gt; &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Then it becomes difficult to work on projects that are too large for a single programmer. Difficult for the solo programmer, and difficult for the rest of the team. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Where does the problems begin?&lt;/em&gt; &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;All sorts of places. We currently have a single programmer who is bad at working as part of a team. He tends to make short cuts that have bad effects on the rest of the application because he is too narrowly focused on fixing the bug in front of him. Or writing the new feature in such a way that it isn't compatible with the rest of the application. We have to rearrange things so that every code check-in of his is reviewed by the rest of the team. But in order not to single him out, we also review everyone else's code check ins, so along with the morning status meeting, we get no work done until after lunch. So at our office, this means that 4 people are losing a 1/2 day of work each and every day because one guy is lousy at team work. I can't say it is an improvement over the previous adventures, because we could randomly lose a day to a week (usually chasing new bugs) from his check-ins that break things (we call those &quot;robstacles&quot;). Some of the fixes to his code will end up clearing a half dozen bugs because of how tangled and messy the application is (my recommendation to &lt;a href=&quot;http://www.youtube.com/watch?v=2s1MspmfEwg&quot; rel=&quot;nofollow&quot;&gt;nuke it from orbit, and start over again because that's the only way to be sure&lt;/a&gt; was not accepted).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When we are in a generous mood, we call him a &quot;head down programmer&quot; has he tends to look down at the keyboard and type real fast. He doesn't pay attention to what others are doing. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Does being a good programmer compensate at least a little?&lt;/em&gt; &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No. Most programmers who are bad team players have a very high opinion of their own skills, and this is called the &lt;a href=&quot;http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect&quot; rel=&quot;nofollow&quot;&gt;Dunning-Kruger effect&lt;/a&gt;. &lt;a href=&quot;http://people.psych.cornell.edu/~dunning/publications/pdf/unskilledandunaware.pdf&quot; rel=&quot;nofollow&quot;&gt;PDF&lt;/a&gt; of paper. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe: the solo programmer would need to be far better than the rest of the team. But this just means that no one else can maintain what he does; and when that happens, it probably means that the solo programmer is not actually far better than the rest of the team - he (and it is almost always a guy) is just better at fooling everyone.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In business software development, the company will be around long after you leave. Programs were most likely written before you started, and will be maintained long after you are gone. If you write things that are so special and amazing that no one else can understand them, &lt;a href=&quot;http://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp&quot; rel=&quot;nofollow&quot;&gt;then you end up in the situation that Naughty Dog is in&lt;/a&gt; - their lead developer quit, no one else understands the proprietary programming language the guy wrote (and wrote things in), so they are now having to switch &lt;em&gt;everything&lt;/em&gt; to C++. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Is it normal for a programmer to have a vision about his work instead of just doing what he is told?&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It is common - like a traffic jam or diabetes. I would not call it normal. In the corporate world, there are lots of other things to consider; the strong ego that many developers have typically makes the developer think that nothing else matters. This &quot;lack of fit&quot; and lack of consideration for the rest of the business is why so many manager-types come to the conclusion that software developers are hard to work with. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-29T14:28:51.170" CommentCount="3" />
  <row Id="22280" PostTypeId="2" ParentId="22206" CreationDate="2010-11-29T14:32:41.320" Score="0" ViewCount="" Body="&lt;blockquote&gt;After how many years of working or after how many projects did you start calling yourself a PRO?&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;When I cashed the first check.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-29T14:32:41.320" />
  <row Id="22281" PostTypeId="2" ParentId="22206" CreationDate="2010-11-29T14:36:06.077" Score="0" ViewCount="" Body="&lt;p&gt;When other people start calling you a PRO.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-11-29T14:36:06.077" />
  <row Id="22282" PostTypeId="2" ParentId="22206" CreationDate="2010-11-29T14:42:44.993" Score="1" ViewCount="" Body="&lt;p&gt;PRO dev - when a dev suggests a solution with time estimation for any kind of task in a few seconds, after he heard it form a client/boss. Can estimate what language/technology/pattern/algorithm better to use in minutes. And can show the first workable demo in hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;10k+ or 10000k+ hours doesn't matter. Tested on real people.&lt;/p&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-11-29T14:42:44.993" />
  <row Id="22283" PostTypeId="2" ParentId="22165" CreationDate="2010-11-29T14:44:33.010" Score="0" ViewCount="" Body="&lt;p&gt;I think working with someone else to start off with is a good idea - this allows you to get to grips with the basics (and hopefully any bad habits are quickly corrected), but also keeps you motivated to carry on. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the biggest problems I have when starting a project from scratch is running into a problem I have no idea how to solve, which results in hours spent Googling. Although this is a good learning technique (finding your own answers to problems), being able to talk the problem through with someone who's probably run into the problem before is far less frustrating.&lt;/p&gt;&#xA;" OwnerUserId="1698" LastActivityDate="2010-11-29T14:44:33.010" />
  <row Id="22284" PostTypeId="2" ParentId="22265" CreationDate="2010-11-29T14:47:19.527" Score="2" ViewCount="" Body="&lt;p&gt;Since you're a good learner, there's one more thing you should learn, that some people already know.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Everyone is different, and they are all valuable.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There are times for being independent, and there are times for pulling together. They are both important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you are in school, you can exercise your curiosity and look for new and different ways to do things. That is a good thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you work with a software team, you can contribute your good ideas. Some will be accepted. Some will not. Then you all &quot;put your shoulder to the wheel&quot; and get the job done. That is also a good thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My experience on projects is there's a group morale that is low at first, when people are still trying to get the big picture in focus. Then the morale steadily rises as progress is made toward the goal. Toward the end it is very high as your &quot;baby&quot; comes to be &quot;born&quot;. That's something you don't want to miss.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-11-29T15:05:05.970" LastActivityDate="2010-11-29T15:05:05.970" CommentCount="3" />
  <row Id="22285" PostTypeId="2" ParentId="22206" CreationDate="2010-11-29T14:47:23.240" Score="1" ViewCount="" Body="&lt;p&gt;Professional does not mean &lt;em&gt;competent&lt;/em&gt;. Professional only indicates someone who is paid to do a certain thing. It also suggests a manner of conduct.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Competent does not mean spectacular. Competent only means that the person produces work that their superiors find acceptable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Spectacular does not mean professional. I know a few people who aren't paid to write code that produce amazing things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the middle of that (nearly) recursive road, we have a word called &lt;strong&gt;&lt;em&gt;experienced&lt;/em&gt;&lt;/strong&gt;. You know you are experienced when:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You can defend design decisions&lt;/li&gt;&#xA;&lt;li&gt;You find yourself mentoring others&lt;/li&gt;&#xA;&lt;li&gt;You spend substantially more time writing new code than fixing problems in what you wrote yesterday&lt;/li&gt;&#xA;&lt;li&gt;People you respect agree that you know what you are doing.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There are plenty of &lt;em&gt;inexperienced&lt;/em&gt; doctors and lawyers, yet they are still professionals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the far side of the spectrum is something called the &lt;a href=&quot;http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect&quot; rel=&quot;nofollow&quot;&gt;Dunning Kruger effect&lt;/a&gt;, where truly seasoned experts under rate their abilities, while novices tend to over rate their abilities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, you become (what you term) 'a pro' when you realize just how much you don't know, yet find yourself able to rise to meet most challenges given to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, most great programmers describe themselves as 'competent', if only because they appreciate the level of experience that competence entails. &lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-29T15:02:49.593" LastActivityDate="2010-11-29T15:02:49.593" />
  <row Id="22286" PostTypeId="2" ParentId="22244" CreationDate="2010-11-29T15:03:14.850" Score="3" ViewCount="" Body="&lt;p&gt;draw something in crayon, scan it, and call it done&lt;/p&gt;&#xA;&#xA;&lt;p&gt;when asked about it, tell them &quot;I'm not an artist, as you can plainly see; that's the best I can do. Why don't you hire a real artist to do something that makes a statement about the quality of the company instead? Here's a couple of recommendations...&quot;&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-29T15:03:14.850" CommentCount="2" />
  <row Id="22287" PostTypeId="2" ParentId="22070" CreationDate="2010-11-29T15:08:36.450" Score="0" ViewCount="" Body="&lt;p&gt;In C# I would like to use simple &lt;code&gt;switch () { ... }&lt;/code&gt;, but extendible with such expressions:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;switch (value)&#xA;{&#xA;  // string-based operators:&#xA;  case begins &quot;Maria&quot;: // to catch Maria Carey&#xA;    break;&#xA;  case ends &quot;Washington&quot;: // to catch George Washington&#xA;    break;&#xA;  case like &quot;ph&quot;: // to catch Phil, Phillip, Sophie&#xA;    break;&#xA;  case between &quot;Aaron&quot; and &quot;April&quot;: // to catch all names between&#xA;    break;&#xA;&#xA;  // use non-static variables in case expression:&#xA;  case Dao.GetDefaultBabyName():&#xA;    break;&#xA;&#xA;  // continuable cases without breaking&#xA;  case &quot;John&quot;:&#xA;    bonus = 25;&#xA;  case &quot;Peter&quot;:&#xA;    salary = 500;&#xA;    break;&#xA;&#xA;  // jumps between cases&#xA;  case &quot;Aleron&quot;:&#xA;    // do something&#xA;    break;&#xA;  case &quot;Bella&quot;:&#xA;    // do something&#xA;    jump &quot;Aleron&quot;;&#xA;    break;&#xA;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And so on. The same with numbers or other types (that supports &lt;code&gt;IComparable&lt;/code&gt;, &lt;code&gt;IConvertible&lt;/code&gt;, ...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This might make my code more laconic and readable.&lt;/p&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-11-29T15:08:36.450" CommentCount="1" />
  <row Id="22288" PostTypeId="2" ParentId="22224" CreationDate="2010-11-29T15:11:22.443" Score="2" ViewCount="" Body="&lt;p&gt;I've had someone recommend &lt;a href=&quot;http://www.guru.com/&quot; rel=&quot;nofollow&quot;&gt;guru.com&lt;/a&gt; to me, although I haven't used it personally&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-11-29T15:11:22.443" />
  <row Id="22289" PostTypeId="2" ParentId="22244" CreationDate="2010-11-29T15:13:53.030" Score="6" ViewCount="" Body="&lt;p&gt;While I did offer a sardonic comment on &lt;a href=&quot;http://programmers.stackexchange.com/questions/22244/my-company-have-me-doing-a-christmas-card/22286#22286&quot;&gt;Steven's answer&lt;/a&gt;, an idea came to me. Do you have a child, niece, nephew, etc .. ? Perhaps ask them to draw a card for you to scan, and ask your Boss if they wouldn't mind stuffing $10 in an envelope with a thank you letter to give to the artist. Throwing in a few bags of good coffee and some holiday treats to sweeten the pot wouldn't hurt. They likely cost much less than you do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Add at the bottom of the scan something like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&quot;From Cindy Smith, Daughter of Cyberdyne Programmer Dave Smith&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not only are you pulling off the incredulous feat of making outsourcing creative design to under age workers attractive (from the way you describe it, they'd be better suited for the task at hand), you're gently nudging your boss into believing that holding a contest that is open to any employee or members of their family might have been a better idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus, the typical corporate greeting card becomes a bit more personal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just make sure to include prizes for everyone. In boss terms, it still costs less than having you struggle for days at a task in which the outcome would be mediocre at best.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-29T16:29:53.607" LastActivityDate="2010-11-29T16:29:53.607" />
  <row Id="22290" PostTypeId="2" ParentId="21639" CreationDate="2010-11-29T15:14:22.207" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The Secret.... Create something:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't speak for others, but I've found this to be true:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Your MSc:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Hey this guy &lt;strong&gt;&lt;em&gt;knows&lt;/em&gt;&lt;/strong&gt; stuff&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Your Portfolio:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Hey this guy knows also &lt;strong&gt;&lt;em&gt;how&lt;/em&gt;&lt;/strong&gt; to do stuff&quot;&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-11-29T15:14:22.207" />
  <row Id="22291" PostTypeId="2" ParentId="22170" CreationDate="2010-11-29T15:26:07.577" Score="0" ViewCount="" Body="&lt;p&gt;Programmer availability and suitability for the task. PHP is for websites and they thought their products are nothing but extensible websites, they choose the technologies best suited for that.&lt;/p&gt;&#xA;" OwnerUserId="16639" LastActivityDate="2010-11-29T15:26:07.577" />
  <row Id="22292" PostTypeId="2" ParentId="22265" CreationDate="2010-11-29T15:26:58.793" Score="3" ViewCount="" Body="&lt;p&gt;Professional software development today is primarily a team effort. The best software is produced through sharing of new ideas and high collaboration and not tinkering by your lonely self. The &lt;a href=&quot;http://gamesfromwithin.com/cowboy-coders-and-the-hero-programmer-culture&quot; rel=&quot;nofollow&quot;&gt;cowboy coder&lt;/a&gt; ideal is a known impediment to teams. In fact, it is by definition the complete opposite of teamwork.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;So yes, having poor team skills in a team setting is very bad.&lt;/strong&gt; But if you are honestly willing to work with it, there is no reason you won't eventually be a great team contributor (with great coding skills to boot)!&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-11-29T15:26:58.793" />
  <row Id="22293" PostTypeId="2" ParentId="1745" CreationDate="2010-11-29T15:37:58.080" Score="3" ViewCount="" Body="&lt;p&gt;Programmers who became managers saying:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;&quot;Three weeks?! I've coded in the past, how &lt;em&gt;hard&lt;/em&gt; can it be?&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3814" LastActivityDate="2010-11-29T15:37:58.080" CommunityOwnedDate="2010-11-29T15:37:58.080" />
  <row Id="22294" PostTypeId="2" ParentId="22265" CreationDate="2010-11-29T15:45:03.893" Score="2" ViewCount="" Body="&lt;p&gt;I can think of a number of excellent programmers who are considered (by many) to be &quot;quite difficult to work with&quot;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://sourceware.org/bugzilla/show_bug.cgi?id=10134&quot; rel=&quot;nofollow&quot;&gt;Ulrich Drepper&lt;/a&gt; - Maintainer of the GNU C Library (Link is one of &lt;strong&gt;&lt;em&gt;many&lt;/em&gt;&lt;/strong&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Theo_de_Raadt&quot; rel=&quot;nofollow&quot;&gt;Theo De Raddt&lt;/a&gt; - OpenBSD Lead&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In this industry, I think that a fair amount of us expect and assume that competency and the ability to articulate our competency is critical. After all, we go to work to accomplish some tasks in order to earn money, making friends is secondary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At some point in your life, you will realize one of two things:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;You are in a position to be as snide, withdrawn, antisocial, cynical or rude as you like because despite your behavior, your skills (and ability to articulate your knowledge) ends all arguments.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You are just like everyone else and need to be able to work in a team setting, while putting up with (and brain picking) snide, withdrawn, antisocial, cynical and rude behavior from others whose skills and proficiency at articulating knowledge ends most arguments.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If you are questioning this, I think you see &lt;em&gt;some&lt;/em&gt; value in participating agreeably in a team setting, and perhaps 'doing it for the sake of doing it' is a good enough excuse to explore the possibility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm also a lot like you. I hate disruptions, It took me the better part of five years just to learn how not to interrupt and dismiss people. I've also worked on teams where I learned more in a month than I could have in a year on my own. Isn't it odd that you only want people around you when &lt;em&gt;you&lt;/em&gt; have something interesting to show or discuss?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have not yet seen it, take in a viewing of the movie &quot;&lt;a href=&quot;http://www.imdb.com/title/tt0089886/&quot; rel=&quot;nofollow&quot;&gt;Real Genius&lt;/a&gt;&quot;. Pay special attention to &lt;a href=&quot;http://www.google.com/search?q=Lazlo+Hollyfeld&quot; rel=&quot;nofollow&quot;&gt;Lazlo Hollyfeld&lt;/a&gt;. Jump into a team with an open mind, and feel free to borrow my pyjamas. &lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-29T16:17:04.647" LastActivityDate="2010-11-29T16:17:04.647" CommentCount="1" />
  <row Id="22295" PostTypeId="2" ParentId="22265" CreationDate="2010-11-29T15:46:00.787" Score="3" ViewCount="" Body="&lt;p&gt;Others have already covered most of what I was gonna say, so I'll just add this: just because you have an opinion or a vision doesn't mean you're right or that your approach is the best one. There's a lot you can learn from others if you open your mind to the possibility that they have an opinion and/or vision, too. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Teamwork is about making all those opinions come together into something that builds on the collective experience of the people involved and addresses flaws that a single person might not have considered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That was one of the first lessons I learned on the job, and I became a better programmer after that.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-11-29T15:46:00.787" />
  <row Id="22296" PostTypeId="2" ParentId="2846" CreationDate="2010-11-29T15:48:53.843" Score="1" ViewCount="" Body="&lt;h1&gt;VBA&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Yes, you can make Excel do some pretty amazing things with it. But the language is a lobotomized vbscript.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-29T15:48:53.843" CommunityOwnedDate="2010-11-29T15:48:53.843" />
  <row Id="22297" PostTypeId="2" ParentId="22244" CreationDate="2010-11-29T15:50:30.380" Score="3" ViewCount="" Body="&lt;p&gt;I'd program something nice in &lt;a href=&quot;http://processing.org/&quot; rel=&quot;nofollow&quot;&gt;Processing&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Inspiration:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.openprocessing.org/visuals/?visualID=701&quot; rel=&quot;nofollow&quot;&gt;http://www.openprocessing.org/visuals/?visualID=701&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.openprocessing.org/visuals/index.php?visualID=728&quot; rel=&quot;nofollow&quot;&gt;http://www.openprocessing.org/visuals/index.php?visualID=728&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://wwww.openprocessing.org/visuals/?visualID=724&quot; rel=&quot;nofollow&quot;&gt;http://wwww.openprocessing.org/visuals/?visualID=724&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.openprocessing.org/visuals/?visualID=7991&quot; rel=&quot;nofollow&quot;&gt;http://www.openprocessing.org/visuals/?visualID=7991&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-11-30T12:58:03.560" LastActivityDate="2010-11-30T12:58:03.560" />
  <row Id="22298" PostTypeId="2" ParentId="296" CreationDate="2010-11-29T15:58:18.297" Score="2" ViewCount="" Body="&lt;p&gt;English.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Came the day when the natural language processing will be so powerful that we just simply write in our language and the machine will understand us...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the meantime i think that C# is going to predominate.&lt;/p&gt;&#xA;" OwnerUserId="8663" LastActivityDate="2010-11-29T15:58:18.297" CommentCount="2" />
  <row Id="22299" PostTypeId="2" ParentId="22244" CreationDate="2010-11-29T15:59:46.173" Score="3" ViewCount="" Body="&lt;p&gt;Use Google Image Search to find a few christmas/holiday images you like, paste them into something like Photoshop, add some text (use Eyedrop tool to make it match), maybe a few glow or drop shadow effects, rearrange objects until you like the way it looks and you're done. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I actually prefer Fireworks to Photoshop since I have both and haven't bothered to figure out where the &quot;Magic Wand&quot; tool is in Photoshop to remove the background :)&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-11-29T15:59:46.173" CommentCount="1" />
  <row Id="22300" PostTypeId="2" ParentId="3789" CreationDate="2010-11-29T16:04:09.853" Score="-1" ViewCount="" Body="&lt;p&gt;For OOP and nice application which can be build in a fast way I can suggest you Delphi.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;best regards,&lt;/p&gt;&#xA;" OwnerUserId="8755" LastActivityDate="2010-11-29T16:04:09.853" />
  <row Id="22301" PostTypeId="2" ParentId="2846" CreationDate="2010-11-29T16:13:22.607" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;The one that hasn't been invented yet, but I know it is coming&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will have several levels of assertions, build time, run time and debug time. You will have very little control over debug time assertions. The compiler will rely on your use of build time assertions and just ignore anything that is nonsensical and not asserted, and it will use this behavior to assert that it is nothing like &lt;a href=&quot;http://en.wikipedia.org/wiki/INTERCAL&quot; rel=&quot;nofollow&quot;&gt;INTERCAL&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will offer a choice of sixteen or more garbage collectors, on a per module basis. It will also feature a plug-in system where people can write their own collector implementation. Collectors need not be compatible with one another, since each one is 'parallelized' and runs as a separate thread.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will be type agnostic and allow mixing, for when you 'really' want to get your hands dirty. Additionally, it will know when you accidentally changed your mind and just omit those variables. This is no problem, because it features debug time assertions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will be so portable that everyone will start using it. It will be so mind numbingly simple to shoot yourself in the foot that thousands of blogs will be launched just to offer tutorials for it. Each one will make millions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will come pre-loaded with &quot;superclasses&quot; that &quot;completely abstract&quot; interacting with most social networks, with a &quot;superclass&quot; plug-in system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will feature a better psychiatrist than emacs. In fact, starting a CLI and typing:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Method.Local.StartKillerIDE(PLEASE_DONT_UNINSTALL_JAVA ** I_AM_UNSTABLE)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;... will be the preferred way of working with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will feature an &quot;any endian&quot; operand, which is dependent on three levels of assertions and not compatible with most garbage collectors. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft will argue that the language infringes on it's patent of inserting batteries into a device without regard to polarization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh yes, it comes. Be ready. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-29T16:13:22.607" CommunityOwnedDate="2010-11-29T16:13:22.607" CommentCount="1" />
  <row Id="22302" PostTypeId="2" ParentId="22244" CreationDate="2010-11-29T16:14:09.093" Score="3" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.istockphoto.com/&quot; rel=&quot;nofollow&quot;&gt;istockphoto&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Many royalty free images you could use, very inexpensive. &lt;/p&gt;&#xA;" OwnerUserId="1785" LastActivityDate="2010-11-29T16:14:09.093" />
  <row Id="22303" PostTypeId="2" ParentId="22244" CreationDate="2010-11-29T16:22:55.743" Score="8" ViewCount="" Body="&lt;p&gt;Step 1) Stop being a Scrooge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All I see is &quot;Bah Humbug&quot; as I read this question. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm as busy as the next person and every bit NOT creative, but it honestly shouldn't take that long to come up with something memorable and productive. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Productive doesn't mean &quot;something to sell&quot; necessarily. A cool card could raise morale, bring everyone together, foster a family atmosphere, etc... every bit as &quot;worthwhile&quot; as making your &quot;program&quot; a little faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As other examples have shown, it shouldn't be hard to bring out the inner geek in you. It also should be natural to tackle &lt;em&gt;ANY&lt;/em&gt; problem thrown at you. Solve it. Do it right. Kick ass and take names later.&lt;/p&gt;&#xA;" OwnerUserId="2536" LastActivityDate="2010-11-29T16:22:55.743" />
  <row Id="22304" PostTypeId="2" ParentId="21400" CreationDate="2010-11-29T16:56:42.647" Score="1" ViewCount="" Body="&lt;p&gt;Even without abstraction most programs are broken up into sections of some sort.  Those sections usually relate to specific tasks or activities and you work on those the same way you would work on the most specific bits of the abstracted programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In small to medium sized projects this is actually easier to do that with a purist OO implementation sometimes.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-29T16:56:42.647" />
  <row Id="22305" PostTypeId="1" AcceptedAnswerId="22307" CreationDate="2010-11-29T17:06:39.377" Score="5" ViewCount="196" Body="&lt;p&gt;I'm working on a site for my company which, up until a certain point, was an Internet Explorer-only site for various reasons, mainly that when the site was originally conceived IE had a 90%+ market share so the work to get it working in other browsers just didn't make sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now that we live in a more diverse browser economy we're doing the work to get the site working everywhere, and as luck would have it a decent chunk of it just happens to already work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, one issue we're struggling with is the issue of what to support and what not to support. For starters, non-IE browsers release much more frequently than IE did, and you don't know which versions are still in the wild. There's been basically three versions of IE released in the last decade, and IE6 is still supported until 2014. But there's an update for Firefox every other day, Apple updates Safari more or less annually. And then there's Chrome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Chrome has gone from 0.2 to 9.0 in a little over two years. 7.0.517 was released a month and a half after 6.0.472. There's three different versions out right now, a stable, a beta, and a dev. And the dev version of 9.0.587 was actually released before the latest beta version of 8.0.552.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With IE we've had the situation arise where we have to support an old version because the IT department of the company in question does not allow the employees to upgrade. With non-IE browsers I'm thinking we'll adopt the line of &quot;update to the latest or we can't help you&quot; but I'm not sure how effective that is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, my company does some amount of artificial limitations. For example we have a product aimed at companies so we don't support &quot;Home&quot; versions of Windows (i.e., XP Home, 7 Home Premium) even though there's no technical reason we couldn't. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When my company starts asking &quot;what version or versions of Chrome do we support&quot;, how should I answer?&lt;/p&gt;&#xA;" OwnerUserId="3080" LastActivityDate="2010-11-29T19:36:36.877" Title="How do you handle supporting Chrome versions?" Tags="&lt;web-development&gt;&lt;advice&gt;&lt;google&gt;&lt;support&gt;" AnswerCount="4" CommentCount="6" FavoriteCount="1" />
  <row Id="22306" PostTypeId="2" ParentId="22305" CreationDate="2010-11-29T17:16:34.893" Score="0" ViewCount="" Body="&lt;p&gt;This is just my personal opinion as one who has been developing websites for some time, but I feel that the best you can reasonably hope to do (depending on time or budget constraints, of course) is aim to accommodate all of the most recent &lt;em&gt;public&lt;/em&gt; browser builds. Despite Chrome's rapid update schedule, the rendering and interpretation stays pretty consistent thanks to the Webkit engine which powers by both Chrome and Safari.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't worry about supporting non-public releases of browsers, they aren't official for a reason and developing against them is likely to cause more pain than good in the long run.&lt;/p&gt;&#xA;" OwnerUserId="13" LastActivityDate="2010-11-29T17:16:34.893" />
  <row Id="22307" PostTypeId="2" ParentId="22305" CreationDate="2010-11-29T17:22:01.830" Score="9" ViewCount="" Body="&lt;p&gt;Chrome's new version adoption rate is really fast because of their automatic upgrade. Way faster than IE and even quite a bit faster than Firefox. Generally, if you are supporting the latest stable build of Chrome, you should be fine. It is literally only a matter of days or weeks before a new stable version almost totally replaces the old.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/f7Kfh.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Graph from &lt;a href=&quot;http://thenextweb.com/google/2010/08/12/how-google-keeps-chrome-fresh/&quot; rel=&quot;nofollow&quot;&gt;How Google Keeps Chrome Fresh&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4881" LastEditorUserId="4881" LastEditorDisplayName="" LastEditDate="2010-11-29T17:54:32.580" LastActivityDate="2010-11-29T17:54:32.580" CommentCount="8" />
  <row Id="22308" PostTypeId="2" ParentId="22305" CreationDate="2010-11-29T17:27:49.813" Score="4" ViewCount="" Body="&lt;p&gt;Chrome, Safari, and others use WebKit as the core (see &lt;a href=&quot;http://en.wikipedia.org/wiki/WebKit#Usage&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/WebKit#Usage&lt;/a&gt; ).  What this means is that making things look good in Chrome will make it render the same in all those other browsers.  Firefox uses another rendering engine.  Bottom line is that they are all standards compliant browsers.  Even IE has been stepping up to the plate with IE 8 and now IE 9.  Standards compliance means it's a whole lot easier to make things look the same and behave the same across all the browsers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The good news is that a bunch of people have done a lot of work to build cross-browser capable CSS and Javascript.  If you use these frameworks, you stand a good chance of not having to worry too much about cross-browser issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The shortlist of CSS frameworks:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Blueprint CSS: &lt;a href=&quot;http://www.blueprintcss.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.blueprintcss.org/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Elastic CSS: &lt;a href=&quot;http://elasticss.com/&quot; rel=&quot;nofollow&quot;&gt;http://elasticss.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Yahoo UI (YUI): &lt;a href=&quot;http://developer.yahoo.com/yui/&quot; rel=&quot;nofollow&quot;&gt;http://developer.yahoo.com/yui/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The shortlist of Javascript frameworks:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Prototype: &lt;a href=&quot;http://prototypejs.org&quot; rel=&quot;nofollow&quot;&gt;http://prototypejs.org&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Script.aculo.us: &lt;a href=&quot;http://script.aculo.us&quot; rel=&quot;nofollow&quot;&gt;http://script.aculo.us&lt;/a&gt; (uses prototype)&lt;/li&gt;&#xA;&lt;li&gt;JQuery: &lt;a href=&quot;http://jquery.com&quot; rel=&quot;nofollow&quot;&gt;http://jquery.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Yahoo UI (YUI): &lt;a href=&quot;http://developer.yahoo.com/yui/&quot; rel=&quot;nofollow&quot;&gt;http://developer.yahoo.com/yui/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Newer versions of browsers make more of the current HTML/Javascript/CSS standards work.  As long as you stay away from the cutting edge stuff, you will have no problems.  HTML 4 and CSS 2 have the most support.  If you use something from the newer standards (like HTML 5, currently in development or CSS 3), then provide fallbacks to the known standards.  In short if you put the fallback in your CSS first, and the enhanced look second, the browsers that support that CSS setting will use it and the ones that don't will use the fallback.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Short Answer&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Say you support web standards X: HTML 4, CSS 2, etc.  instead of saying you support specific versions of a browser.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastEditorUserId="6509" LastEditorDisplayName="" LastEditDate="2010-11-29T17:34:36.067" LastActivityDate="2010-11-29T17:34:36.067" CommentCount="5" />
  <row Id="22309" PostTypeId="2" ParentId="21400" CreationDate="2010-11-29T17:34:23.160" Score="0" ViewCount="" Body="&lt;p&gt;While it is possible to manage non OO code bases using functional decomposition, modularization, namespaces, its pretty hard to manage a large code base especially as the problem &amp;amp; soln space become complicated without OO approach.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-11-29T17:34:23.160" CommentCount="5" />
  <row Id="22310" PostTypeId="2" ParentId="22265" CreationDate="2010-11-29T17:44:26.360" Score="1" ViewCount="" Body="&lt;p&gt;If you believe something, say it and mean it, but once proven wrong or outranked, accept it and learn from it. Teamwork isn't about agreeing all the time, but having a way to get to the best possible solutions in the given situation and time-frame.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-29T17:44:26.360" />
  <row Id="22311" PostTypeId="2" ParentId="22244" CreationDate="2010-11-29T17:49:54.203" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://caca.zoy.org/&quot; rel=&quot;nofollow&quot;&gt;Libcaca&lt;/a&gt; + &lt;a href=&quot;http://image.aryanet.com/blog/christmas_tree.gif&quot; rel=&quot;nofollow&quot;&gt;Christmas Tree Image&lt;/a&gt; = Creative Nerdy Holiday Card&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: I didn't actually check to see if you can legally use that image. It was just the first result for images on Google. If you can't, it shouldn't be too hard to find another picture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although personally, I like the idea of giving it to a child to draw. I think they would have fun drawing the card and then when you receive the card, make sure to show it to them.&lt;/p&gt;&#xA;" OwnerUserId="3102" LastActivityDate="2010-11-29T17:49:54.203" />
  <row Id="22312" PostTypeId="1" AcceptedAnswerId="22317" CreationDate="2010-11-29T17:58:09.537" Score="1" ViewCount="233" Body="&lt;p&gt;What are the practical trade-offs in choosing subclipse over subversive or vice versa?&lt;/p&gt;&#xA;" OwnerUserId="5719" LastActivityDate="2010-11-29T18:28:50.007" Title="Subclipse or Subversive?" Tags="&lt;eclipse&gt;" AnswerCount="1" />
  <row Id="22313" PostTypeId="2" ParentId="22234" CreationDate="2010-11-29T18:09:25.237" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Review: &quot;Works well when cornered like a rat in a trap under constant supervision&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Someone please let me know a citation for the above)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Micro-managing an entirely unmotivated employee is not going to work. The more you spoon-feed them the more dependent on you they become. You need to find a way to motivate Chris so that s/he wants to work. So, here are some tactics (&lt;a href=&quot;http://www.pickthebrain.com/blog/21-proven-motivation-tactics/&quot; rel=&quot;nofollow&quot;&gt;trimmed from this article&lt;/a&gt;) some of which I've highlighted as being particularly relevant here.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Consequences – Never use threats. They’ll turn people against you. But making people &lt;strong&gt;aware of the negative consequences of not getting results&lt;/strong&gt; (for everyone involved) can have a big impact. This one is also big for self motivation. If you don’t get your act together, will you ever get what you want?&lt;/li&gt;&#xA;&lt;li&gt;Pleasure – This is the old carrot on a stick technique. Providing pleasurable rewards creates eager and productive people.&lt;/li&gt;&#xA;&lt;li&gt;Kindness – &lt;strong&gt;Get people on your side and they’ll want to help you&lt;/strong&gt;. Piss them off and they’ll do everything they can to screw you over.&lt;/li&gt;&#xA;&lt;li&gt;Deadlines – Many people are most productive right before a big deadline. They also have a hard time focusing until that deadline is looming overhead. Use this to your advantage by &lt;strong&gt;setting up a series of mini-deadlines&lt;/strong&gt; building up to an end result.&lt;/li&gt;&#xA;&lt;li&gt;Team Spirit – Create an environment of camaraderie. People work more effectively when they feel like part of team — they don’t want to let others down.&lt;/li&gt;&#xA;&lt;li&gt;Recognize achievement – &lt;strong&gt;Make a point to recognize achievements&lt;/strong&gt; one-on-one and also in group settings. People like to see that their work isn’t being ignored.&lt;/li&gt;&#xA;&lt;li&gt;Personal stake – Think about the personal stake of others. What do they need? By understanding this you’ll be able to keep people happy and productive.&lt;/li&gt;&#xA;&lt;li&gt;Trust and Respect – Give people the trust and respect they deserve and they’ll respond to requests much more favorably.&lt;/li&gt;&#xA;&lt;li&gt;Create challenges – &lt;strong&gt;People are happy when they’re progressing towards a goal&lt;/strong&gt;. Give them the opportunity to face new and difficult problems and they’ll be more enthusiastic.&lt;/li&gt;&#xA;&lt;li&gt;Let people be creative – Don’t expect everyone to do things your way. Allowing people to be creative creates a more optimistic environment and can lead to awesome new ideas.&lt;/li&gt;&#xA;&lt;li&gt;Constructive criticism – Often people don’t realize what they’re doing wrong. Let them know. Most people want to improve and will make an effort once they know how to do it. &lt;/li&gt;&#xA;&lt;li&gt;Demand improvement – &lt;strong&gt;Don’t let people stagnate&lt;/strong&gt;. Each time someone advances raise the bar a little higher (especially for yourself).&lt;/li&gt;&#xA;&lt;li&gt;Make it fun – Work is most enjoyable when it doesn’t feel like work at all. Let people have fun and the positive environment will lead to better results.&lt;/li&gt;&#xA;&lt;li&gt;Create opportunities – Give people the opportunity to advance. &lt;strong&gt;Let them know that hard work will pay off&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Make it stimulating – Mix it up. Don’t ask people to do the same boring tasks all the time. A stimulating environment creates enthusiasm and the opportunity for “big picture” thinking.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;All in all, you could look at the Chris situation as being a personal challenge. You need to think creatively in order to find the solution (asking on this forum counts as creative BTW) so perhaps apply some of these motivational techniques to yourself in light of the resistance you can expect from Chris.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-29T18:09:25.237" CommentCount="1" />
  <row Id="22314" PostTypeId="1" AcceptedAnswerId="22320" CreationDate="2010-11-29T18:10:59.327" Score="2" ViewCount="126" Body="&lt;p&gt;I've heard this term bandied about, especially in reference to web development, but I'm having trouble getting a clear understanding of what an Information Architect actually does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any ideas what their role or deliverables would be?&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-11-29T18:59:28.580" Title="What is the role of an Information Architect?" Tags="&lt;design&gt;&lt;team&gt;&lt;information&gt;&lt;planning&gt;&lt;ux&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="22315" PostTypeId="2" ParentId="22070" CreationDate="2010-11-29T18:13:14.473" Score="1" ViewCount="" Body="&lt;p&gt;I have two ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often I find that I am &lt;a href=&quot;http://en.wikipedia.org/wiki/Don%27t_repeat_yourself&quot; rel=&quot;nofollow&quot;&gt;repeating myself&lt;/a&gt; in &lt;code&gt;catch&lt;/code&gt; blocks. This can be somewhat helped through extracting methods, but that can cause unnecessary clutter if the methods are very short or otherwise not worthy of a method. So, it would be nice to nest &lt;code&gt;catch&lt;/code&gt; blocks:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;try {&#xA;    // Save something&#xA;} catch (Exception e) {&#xA;    // Something we do for all Exceptions&#xA;    catch (ProcessingException e) {&#xA;        // Something we do for all Processing exceptions&#xA;        catch (DBExcpetion e) {&#xA;            // DBExceptions are a subclass of ProcessingException&#xA;        }&#xA;        catch (BusinessRuleException e) {&#xA;            // BusinessRuleExceptions are also a subclass of ProcessingException&#xA;        }&#xA;    }&#xA;    // Something we do after specific sub class Exceptions&#xA; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In web programming I am also often find myself often doing something like this (this isn't a real example so don't analyze fictional cases):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Account a = getSavedAccount();&#xA;if (a == null) {&#xA;    a = getAccountFromSessionId();&#xA;}&#xA;if (a == null) {&#xA;    a = getAccountFromCookieId();&#xA;}&#xA;if (a == null) {&#xA;    a = createNewAccount();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In Javascript (well, ECMAScript, and maybe others that I am unfamiliar with), since any value can be evaluated as a condition, &lt;code&gt;||&lt;/code&gt; can help.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var a = getAFromLocation1() || getAFromLocation2() || default;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I really like how that looks, and I wish more languages, particular some on the server side, had support for it. (PHP can evaluate anything as a condition, but converts the whole conditional expression to a boolean instead of preserving the value. I don't know about Python or Ruby.) It could get unwieldy after three cases or so, but if you have more than three cases, you might also have a bad software design.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-11-29T18:13:14.473" CommentCount="1" />
  <row Id="22316" PostTypeId="2" ParentId="22070" CreationDate="2010-11-29T18:15:14.577" Score="4" ViewCount="" Body="&lt;p&gt;There is so-called &quot;Dijkstra's Loop&quot; (also called &quot;Dijkstra's Guarded Loop&quot;). It was defined in &lt;a href=&quot;http://en.wikipedia.org/wiki/Guarded_Command_Language&quot; rel=&quot;nofollow&quot;&gt;The Guarded Command Language (GCL)&lt;/a&gt;. You can find some information about it syntax and semantic in the above Wikipedia article at the section &lt;a href=&quot;http://en.wikipedia.org/wiki/Guarded_Command_Language#Repetition%3a_do&quot; rel=&quot;nofollow&quot;&gt;6 Repetition: do&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nowadays I actually know one programming language which supports this control struture directly. It is &lt;a href=&quot;http://www.inf.ethz.ch/personal/wirth/Articles/Oberon/Oberon07.Report.pdf&quot; rel=&quot;nofollow&quot;&gt;Oberon-07&lt;/a&gt; (PDF, 70 KB). And it supports &quot;Dijkstra's Loop&quot; in thу form of while statement. Take a look at section 9.6. While statements in the above PDF.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;WHILE m &amp;gt; n DO m := m – n &#xA;ELSIF n &amp;gt; m DO n := n – m &#xA;END&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;P.S. This is copy of &lt;a href=&quot;http://stackoverflow.com/questions/2561578/what-languages-have-a-while-else-type-control-structure-and-how-does-it-work/2562822#2562822&quot;&gt;my SO answer&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6745" LastActivityDate="2010-11-29T18:15:14.577" CommentCount="1" />
  <row Id="22317" PostTypeId="2" ParentId="22312" CreationDate="2010-11-29T18:28:50.007" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/61320/svn-plugins-for-eclipse-subclipse-vs-subversive&quot;&gt;A comprehensive answer is given on Stack Overflow&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-29T18:28:50.007" CommentCount="4" />
  <row Id="22318" PostTypeId="2" ParentId="22244" CreationDate="2010-11-29T18:36:40.030" Score="2" ViewCount="" Body="&lt;p&gt;Use Powerpoint with the standard library of clipart.&#xA;Oh, and use &lt;strong&gt;Comic Sans&lt;/strong&gt; font. I love &lt;strong&gt;Comic Sans&lt;/strong&gt;. ;P&lt;/p&gt;&#xA;" OwnerUserId="7441" LastActivityDate="2010-11-29T18:36:40.030" CommentCount="1" />
  <row Id="22319" PostTypeId="2" ParentId="22222" CreationDate="2010-11-29T18:54:03.453" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Think more - code less&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thinking time is the least expensive way to refine your design so that you won't have to do so much re-coding work. Before entering a single line of code, ensure you've done the following steps in some detail:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You and your client have come up with a good collection of use cases (you know the types of user of the application and what they each want from it - admin, customer, order processor etc)&lt;/li&gt;&#xA;&lt;li&gt;You have identified the principal entities in the application (Customer, Address, Order, FishType etc), what needs to be persisted from them, and how they inter-relate so you can create a suitable database quickly&lt;/li&gt;&#xA;&lt;li&gt;You have identified the various gateways into the application (web service, direct sync etc) and you know exactly which third-party frameworks and technologies you need to use to achieve the objective (&lt;strong&gt;use libraries that you know well&lt;/strong&gt; over those that you will have to learn)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Once you've scoped out your project in some detail then begins the rapid iterative approach common to the Agile methodology. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Build a general structure to allow you to create the user interface to allow your customer to see what's going on (keep it basic and use minimal images)&lt;/li&gt;&#xA;&lt;li&gt;Using your very basic UI build the single most important function that your client is looking for (perhaps entering an order for fish). Make sure you can achieve a first cut inside 24 hours. Make sure it has an automated test process to prevent any regression failures.&lt;/li&gt;&#xA;&lt;li&gt;Show this to your client and get their feedback. Modify accordingly, preferably while they're sitting next to you.&lt;/li&gt;&#xA;&lt;li&gt;Expand out from there getting continuous feedback from the client as you work through the requirements (let the client guide you on what is important). &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;You don't need to pester your client with endless feedback meetings, rather set aside a time in the day when you will meet up (perhaps through Skype and a shared screen).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each time you come to start on a new requirement, think carefully about how exactly you're going to implement it. Try to visualise how it will fit together in your head and work out any kinks. Once you're happy you know what you need to do, go at it and avoid any interruptions until you're complete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best of luck with your project!&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-29T18:54:03.453" />
  <row Id="22320" PostTypeId="2" ParentId="22314" CreationDate="2010-11-29T18:55:53.200" Score="2" ViewCount="" Body="&lt;p&gt;As I understand it, an Information Architect decides how information will be organized and presented on a web site.  This would include navigation, aggregation, presentation (more &lt;em&gt;what&lt;/em&gt; is presented than &lt;em&gt;how&lt;/em&gt;) and access control (including security and filtering).  Think of them as responsible for &quot;content design&quot;, as opposed to &quot;site design&quot;.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-29T18:55:53.200" />
  <row Id="22321" PostTypeId="2" ParentId="22314" CreationDate="2010-11-29T18:59:28.580" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Information_Architect&quot; rel=&quot;nofollow&quot;&gt;I.A.I. definition&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Information architecture is defined by the Information Architecture Institute as:&lt;/p&gt;&#xA;  &#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;The structural design of shared information environments.&lt;/li&gt;&#xA;  &lt;li&gt;The art and science of organizing and labeling web sites, intranets, online communities, and software to support findability and usability.&lt;/li&gt;&#xA;  &lt;li&gt;An emerging community of practice focused on bringing principles of design and architecture to the digital landscape.&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-11-29T18:59:28.580" CommentCount="2" />
  <row Id="22322" PostTypeId="2" ParentId="21400" CreationDate="2010-11-29T19:03:41.447" Score="1" ViewCount="" Body="&lt;p&gt;The modularity principle is not confined to object-oriented languages.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-29T19:03:41.447" />
  <row Id="22323" PostTypeId="1" AcceptedAnswerId="22325" CreationDate="2010-11-29T19:10:30.513" Score="6" ViewCount="345" Body="&lt;p&gt;Hi. I have a friend who wants to pass some programming courses to get started with programming itself (Java), but I'm advising him to get a book and study.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My argument is that he'll end up doing the same self-education as he is going to while passing courses. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you, please, advise on which is the better way to learn programming if you have zero starting knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; Note, that:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Any class will result in spending a certain amount of money&lt;/li&gt;&#xA;&lt;li&gt;Learning concepts (if books don't provide that, which I actually doubt) is possible from different sources, let's say programmers community&lt;/li&gt;&#xA;&lt;li&gt;Any time spent in a class is usually twice as much (you have to repeat everything and try it on), as one can spend learning by himself and then advising with someone&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I'm not talking about the classic school model where you sit and listen basically because you can not learn programming/coding just by listening to people saying stuff. Also this is not about an architectural approach either (no such thing on zero level). This is about working out an effective time/money investment strategy to learn the basics.&lt;/p&gt;&#xA;" OwnerUserId="7781" LastEditorUserId="7781" LastEditorDisplayName="" LastEditDate="2010-11-30T10:49:16.770" LastActivityDate="2010-11-30T14:22:49.230" Title="What's better: to learn yourself or to pass programming courses?" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;recommendations&gt;&lt;advice&gt;" AnswerCount="11" CommentCount="2" />
  <row Id="22324" PostTypeId="2" ParentId="22323" CreationDate="2010-11-29T19:17:31.093" Score="1" ViewCount="" Body="&lt;p&gt;It's always good to go a intro course and get pointed in right direction.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-11-29T19:17:31.093" />
  <row Id="22325" PostTypeId="2" ParentId="22323" CreationDate="2010-11-29T19:17:34.973" Score="8" ViewCount="" Body="&lt;p&gt;Books are great for learning details.  They don't work as well for learning concepts.  If your friend has no experience with programming, then your friend needs to learn things like what a program is, and what programming is, and those will work a lot better with an instructor and assigned homework.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-29T19:17:34.973" />
  <row Id="22326" PostTypeId="2" ParentId="22323" CreationDate="2010-11-29T19:18:34.353" Score="3" ViewCount="" Body="&lt;p&gt;It all depends on the way your friend learns best. If your friend is able to pick it up from a book, then great! If not, than the class may be the best way to go. Either way, the two options are not mutually exclusive. He can get the book and take the class. The nice thing about the class is that there are others there that are learning and they can help each other, something you don't get from a book.&lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-11-29T19:18:34.353" CommentCount="1" />
  <row Id="22327" PostTypeId="2" ParentId="9614" CreationDate="2010-11-29T19:19:35.397" Score="0" ViewCount="" Body="&lt;p&gt;Programmers are people that do programming full-time to solve business problems in code.  Scripting is what Sysadmins do to automate their manual processes to keep the servers up and running.&lt;/p&gt;&#xA;" OwnerUserId="715" LastActivityDate="2010-11-29T19:19:35.397" CommentCount="1" />
  <row Id="22328" PostTypeId="1" CreationDate="2010-11-29T19:23:40.833" Score="8" ViewCount="413" Body="&lt;p&gt;Do you put a programming language in your CV immediately while you are learning it? Or when exactly you put it a language in your CV?&lt;/p&gt;&#xA;" OwnerUserId="26782" LastEditorUserId="5905" LastEditorDisplayName="" LastEditDate="2010-11-29T19:37:54.740" LastActivityDate="2010-11-30T08:02:23.497" Title="When do you put a sort of programming language in your CV?" Tags="&lt;programming-languages&gt;&lt;cv&gt;" AnswerCount="7" CommentCount="2" />
  <row Id="22329" PostTypeId="2" ParentId="22323" CreationDate="2010-11-29T19:23:46.060" Score="3" ViewCount="" Body="&lt;p&gt;I think it depends on the person.  Some people do better at school while others do better learning on their own.  I'm definitely in the latter category.  That said, I do recommend going to school if possible.  I did learn a lot in school, even if my GPA (or the fact that I dropped out) didn't reflect that.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-29T19:23:46.060" CommentCount="1" />
  <row Id="22330" PostTypeId="2" ParentId="22323" CreationDate="2010-11-29T19:27:10.347" Score="1" ViewCount="" Body="&lt;p&gt;Both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instruction and collaboration are complementary to research and experimentation.  You are best served by obtaining all of these components to your education.&lt;/p&gt;&#xA;" OwnerUserId="6920" LastActivityDate="2010-11-29T19:27:10.347" />
  <row Id="22331" PostTypeId="2" ParentId="22328" CreationDate="2010-11-29T19:28:38.493" Score="0" ViewCount="" Body="&lt;p&gt;Depends on how much this new language/technology is near what you already know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example let say you are experienced in C# and you are learning VB. The class library is the same but the syntax differs. There are however differences in both languages, for examples multi-inheritance but the difference if not huge.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-11-29T19:28:38.493" />
  <row Id="22332" PostTypeId="2" ParentId="22323" CreationDate="2010-11-29T19:30:08.727" Score="1" ViewCount="" Body="&lt;p&gt;If he wants to get into programming, I'd suggest taking some programming courses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is alot to gain from the formality of an actual course, and having a degree or certification in something technical (computer science / software engineering / math / physics) can really help get (and keep) a job later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the better choice is to take a few classes to get the basics down and augment knowledge later with self-paced books.&lt;/p&gt;&#xA;" OwnerUserId="2044" LastActivityDate="2010-11-29T19:30:08.727" />
  <row Id="22333" PostTypeId="2" ParentId="22305" CreationDate="2010-11-29T19:31:09.783" Score="0" ViewCount="" Body="&lt;p&gt;The thing about Microsoft's browsers is that IE6 was largely broken in terms of web standards and general quality. Getting to version 9 has been like turning a cruise liner round and each major version has been a significant change to get there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Chrome has had great standards support from day one. Chrome also has a different versioning model to IE. Its major versions aren't that drastically different from version to version compared with IE. From a day to day perspective users don't even notice they're using a different version. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is pretty much true for Safari (which also uses Webkit) and Firefox. Be a bit more careful with Opera.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a nutshell, most major none IE browsers won't cause you any problems. Focus resources on managing 4 different versions of IE!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The answer to the question is: we support the latest version&lt;/p&gt;&#xA;" OwnerUserId="5723" LastEditorUserId="5723" LastEditorDisplayName="" LastEditDate="2010-11-29T19:36:36.877" LastActivityDate="2010-11-29T19:36:36.877" />
  <row Id="22334" PostTypeId="2" ParentId="22328" CreationDate="2010-11-29T19:33:07.773" Score="13" ViewCount="" Body="&lt;p&gt;In the past I've done something like the following:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Proficient In: C# / Java / ......&#xA;Familiar with: Ruby / PHP&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That way you can add the languages that you are using (and talk in the interview about the one you are currently learning, which will look good) and not have to feel like you are misleading your future employer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just remember, it's better to err on the conservative side on a resume.  Make sure you don't make it look like you are trying to pull a fast one on your interviewers by telling them you know something when you don't.  That's a great way to get walked out of an interview early.&lt;/p&gt;&#xA;" OwnerUserId="2044" LastActivityDate="2010-11-29T19:33:07.773" CommentCount="1" />
  <row Id="22335" PostTypeId="2" ParentId="22323" CreationDate="2010-11-29T19:33:42.953" Score="3" ViewCount="" Body="&lt;p&gt;You can always learn what you want &lt;a href=&quot;http://dictionary.reference.com/browse/autodidact&quot; rel=&quot;nofollow&quot; title=&quot;autodidactically&quot;&gt;autodidactically&lt;/a&gt; but as a general rule you will learn faster by being taught, sometimes considerably faster depending on the quality of the instruction.&lt;/p&gt;&#xA;" OwnerUserId="1642" LastActivityDate="2010-11-29T19:33:42.953" />
  <row Id="22336" PostTypeId="2" ParentId="22328" CreationDate="2010-11-29T19:35:37.283" Score="21" ViewCount="" Body="&lt;p&gt;My rule of thumb is this:  would I make an idiot of myself in an interview if the interviewer brought it up?  You don't necessarily have to be an expert on it, but you do need to be able to speak intelligently about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember, your resume serves to get you an interview. Nobody bases hiring decisions on them (well, nobody &lt;em&gt;should&lt;/em&gt;).&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-29T19:35:37.283" CommentCount="2" />
  <row Id="22337" PostTypeId="2" ParentId="22328" CreationDate="2010-11-29T19:35:39.130" Score="4" ViewCount="" Body="&lt;p&gt;Obviously, after you've learned it to some point, and have (at least) some experience with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;You don't put your degree on your CV until you have it, do you?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, you can always &quot;surprise&quot; your interviewer by knowing more than was mentioned on your CV, but don't surprise him by knowing less.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="5905" LastEditorDisplayName="" LastEditDate="2010-11-29T19:38:24.930" LastActivityDate="2010-11-29T19:38:24.930" CommentCount="3" />
  <row Id="22338" PostTypeId="2" ParentId="22328" CreationDate="2010-11-29T19:37:36.657" Score="0" ViewCount="" Body="&lt;p&gt;I've found that as a contractor it doesn't seem to matter, the headhunters are going to massacre your resume and put what they want on it to get the position :P&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-11-29T19:37:36.657" />
  <row Id="22339" PostTypeId="2" ParentId="22265" CreationDate="2010-11-29T19:38:15.320" Score="2" ViewCount="" Body="&lt;p&gt;There is nothing wrong with having strong opinions on how things should be. Any great programmer has plenty of them. However, you need to ask yourself: why am I writing this code?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's for your own entertainment, and you can do all the work yourself, then do whatever you please. However, if you're doing it for other people to use, or if you need help, or if you expect that other programmers will maintain it after you grow bored, you'll need to start taking other people's needs and notions into account.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having a vision is fine. But it really only makes a difference if you can persuade other people to share your vision. Gates, Jobs, and Torvalds all managed to bring their visions to life by making products that served a lot of people, and getting them to buy into their visions.  Working purely your way is more pure and satisfying, but it comes at a cost. You may, as Voltaire said, be letting the perfect be the enemy of the good (&quot;Le mieux est l'ennemi du bien&quot;).&lt;/p&gt;&#xA;" OwnerUserId="1843" LastActivityDate="2010-11-29T19:38:15.320" />
  <row Id="22340" PostTypeId="1" CreationDate="2010-11-29T19:45:11.960" Score="5" ViewCount="125" Body="&lt;p&gt;I've recently been enjoying using the mathematical problems listed at Project Euler to learn Python. My Excel ability is better than my Python, but I think I'd still benefit from the sort of inductive learning that comes with solving a series of increasingly difficult puzzles using a particular tool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know Project Euler can be completed using Excel, but are there any other puzzle series similar to this or The Python Challenge specifically tailored for people trying to increase their knowledge of Excel and what it can do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;NB. I'm not looking for a &quot;tutorial&quot;, I know there are plenty of these. And apologies if this isn't completely appropriate for programmers.SE.com - some of the folks at SuperUser suggested it was a better fit here than there!&lt;/p&gt;&#xA;" OwnerUserId="7497" LastActivityDate="2011-02-20T19:49:19.793" Title="Alternatives to Project Euler for improving Excel ability" Tags="&lt;learning&gt;&lt;software&gt;&lt;puzzles&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="22341" PostTypeId="2" ParentId="22323" CreationDate="2010-11-29T19:48:03.430" Score="0" ViewCount="" Body="&lt;p&gt;Best start would be with a relevant book about a specific programming language at a beginner level(he needs to do some research to find the best one)  combined with some practical exercises. After some of the basics are covered he could either try and play with some of the examples by modifying or evolving them in something a bit more complex. A good approach would be to try and create a program by himself - learning while he experiments with code. Study followed by some coding followed by study followed by some evolved coding.  &lt;/p&gt;&#xA;" OwnerUserId="8790" LastActivityDate="2010-11-29T19:48:03.430" />
  <row Id="22342" PostTypeId="2" ParentId="22265" CreationDate="2010-11-29T19:53:00.440" Score="1" ViewCount="" Body="&lt;p&gt;You will end up working alone.&lt;br&gt;&#xA;Benefits of working in a team:&lt;br&gt;&#xA;1- Interactive Help: you will not stuck in a problem for hours/days.&lt;br&gt;&#xA;2- You will learn things that you will not find in books/online tutorials,forums.&lt;br&gt;&#xA;3- Competition: will fuel your motivation to overcome teamates.&lt;br&gt;&#xA;4- Discussions: which is better than hours reading books and blogs.  &lt;/p&gt;&#xA;" OwnerUserId="8791" LastActivityDate="2010-11-29T19:53:00.440" />
  <row Id="22343" PostTypeId="2" ParentId="14856" CreationDate="2010-11-29T20:00:50.153" Score="10" ViewCount="" Body="&lt;p&gt;&quot;Be liberal with comments&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Comments are definitely a good thing, but too many are just as bad if not worse than not enough.  Why?  Well, people tend to tune comments out if they see too many unnecessary ones.  I'm not saying that you can have perfectly self-documenting code, but it is preferable to code that needs comments for explanation.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-29T20:00:50.153" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="4" />
  <row Id="22344" PostTypeId="2" ParentId="22070" CreationDate="2010-11-29T20:00:55.987" Score="0" ViewCount="" Body="&lt;p&gt;It is a fun question, as @Macneil said.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My favorite unusual control structure, which I (humble cough) discovered, is &lt;a href=&quot;http://stackoverflow.com/questions/371898/how-does-differential-execution-work&quot;&gt;differential execution&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has certain uses. For me, the overwhelming use is in programming user interfaces, which is an instance of the more general problem of maintaining redundant data in correspondence. On the one hand, there is application data, and on the other, there are UI controls, that need to be kept in agreement. This sounds like &quot;binding&quot; but there's actually a lot more to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually I implement it by macros in C or C++. In C# I have to do it by hand-expanding statements. That is a pain, but it works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once I implemented it in terms of Lisp macros, and then it was very clean. It did not require carefulness on the part of the programmer. I could have done the same thing in any other structured language if I took the trouble to write a complete parser and then generate all the right stuff. That's a big project, and I haven't done it.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-11-29T20:06:13.157" LastActivityDate="2010-11-29T20:06:13.157" />
  <row Id="22345" PostTypeId="2" ParentId="21730" CreationDate="2010-11-29T20:04:36.587" Score="1" ViewCount="" Body="&lt;p&gt;You could make a script to compile the lib and modify your project file to use that library's path.&#xA;for qmake it would be :&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;DEPENDPATH += . oldlib/&#xA;INCLUDEPATH += . oldlib/&#xA;LIBS += -Wl,-rpath=oldlib-build-path-L. -L../ -Loldlib-build-path -loldlib&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Note that the rpath part is strictly for gcc, could be different on different compilers.&lt;/p&gt;&#xA;" OwnerUserId="8310" LastActivityDate="2010-11-29T20:04:36.587" CommentCount="1" />
  <row Id="22346" PostTypeId="2" ParentId="14856" CreationDate="2010-11-29T20:23:10.463" Score="25" ViewCount="" Body="&lt;p&gt;All code should be commented.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No, it shouldn't be. Some time you have obvious code, for example setters should not be commented, until they do something special. Also, why should I comment this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/** hey you, if didn't get, it's logger. */&#xA;private static Logger logger = LoggerFactory.getLogger(MyClass.class);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="8586" LastActivityDate="2010-11-29T20:23:10.463" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="8" />
  <row Id="22347" PostTypeId="1" AcceptedAnswerId="22385" CreationDate="2010-11-29T20:55:23.787" Score="1" ViewCount="189" Body="&lt;p&gt;One thing that I've learnt in my short dev career is that there are best practices (like TDD) and then there are actual practices that occur under pressure, or through budgetary/time constraints. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm working in a small PHP dev team on a project using Zend framework. The project has the potential to demand a lot of scalability, and so we are trying to establish a good development environment to promote ease of development long term. Architectural patterns/practices aside, I'm looking at trying to automate deployment, checking code quality through svn hooks, possibly even setting up a CI environment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I'm interested in hearing people's experience of deployment practices. I've checked other examples as they pertain to other languages - but I'm ideally looking to hear from people who have worked in a PHP/Zend environment&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To make the question less vague:&#xA;What are people's experiences of using deployment systems like phpUnderControl and rSync?&lt;/p&gt;&#xA;" OwnerUserId="3712" LastActivityDate="2010-11-29T23:18:45.980" Title="Deployment: Best Practices (and real practices)" Tags="&lt;deployment&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="22348" PostTypeId="2" ParentId="22347" CreationDate="2010-11-29T21:05:41.903" Score="3" ViewCount="" Body="&lt;p&gt;Basically it needs to be easy (if everything is acceptable) to deploy.  This usually means, that after a checkin the system rebuilds automatically.  If ok, the user can at a single click cause the test server to update to the new version.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should be able to roll-back as easy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The easier to use you can keep it, the happier people will be. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If at all possible set up a CI.  Hudson is nice, but there are plenty others.  You WILL appreciate it quickly.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-29T21:05:41.903" />
  <row Id="22349" PostTypeId="1" CreationDate="2010-11-29T21:07:21.143" Score="5" ViewCount="220" Body="&lt;p&gt;Hello,&lt;br&gt;&#xA;&lt;br&gt;&#xA;in the company where i work , we are starting to plan to be compliant to the software development life cycle. We already have, wiki, vcs system, bug tracking system, continuous integration system.&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The next step we want to have is to start to manage in a structured way the management of software requirements. We dont want to use a wiki or shared documentation because we have many input (developer, manager, commercial, security analyst and other) and we dont want to handle proliferation of .doc around the network share.&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are trying to search and we hope we can find and use a FOSS software to manage all this things.&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What we want is a software who can manage:&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Required features:&lt;br&gt;&#xA;R - software requirements divided in a structured configurable way&lt;br&gt;&#xA;R - Versioning of the requirements (history, diff, etc, like source code)&lt;br&gt;&#xA;R - interdependency of requirements (child of, parent of, related to)&lt;br&gt;&#xA;R - Rule Based Access Control for data handling&lt;br&gt;&#xA;R - multi user, multi project&lt;br&gt;&#xA;R - file upload ( for graph, document related to or so on )&lt;br&gt;&#xA;R - Report and extraction features&lt;br&gt;&#xA;&lt;br&gt;&#xA;Optional Features:&lt;br&gt;&#xA;O - Web Based O - test case&lt;br&gt;&#xA;O - time based management (timeline, excepted data, result data)&lt;br&gt;&#xA;O - ppl allocation and so on&lt;br&gt;&#xA;O - business related stuff&lt;br&gt;&#xA;O - Hardware allocation handling&lt;br&gt;&#xA;&lt;br&gt;&#xA;I have already play with testlink and now i'm playing with RTH, the next one i try is redmine.&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;we are about 30 ppl.&lt;br&gt;&#xA;We dont have budget for this software .&lt;br&gt;&#xA;We need to handle it with a FOSS or equivalent.&lt;br&gt;&#xA;&lt;br&gt;&#xA;anyone can suggest me a solution ?&lt;br&gt;&#xA;&lt;br&gt;&#xA;Great thanks! R.&lt;br&gt;&lt;/p&gt;&#xA;" OwnerUserId="7771" LastEditorUserId="7771" LastEditorDisplayName="" LastEditDate="2010-12-02T13:50:30.320" LastActivityDate="2010-12-02T13:54:20.983" Title="FOSS to manage software requirements." Tags="&lt;project-management&gt;&lt;tools&gt;&lt;software-engineering&gt;&lt;requirements&gt;&lt;foss&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="22350" PostTypeId="1" CreationDate="2010-11-29T21:16:41.373" Score="5" ViewCount="217" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm planning to become a programmer again, having spent about 9 years working and studying in other fields. I have a two year contract before I can leave my current job, in which I have time and money to do part time study. My question is, what study route will be most effective to get me back into programming professionally?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The options I've identified so far are:&lt;br&gt;&#xA;1. Part time computing degree (Open University)&lt;br&gt;&#xA;2. Some professional certification (Microsoft is the only one I've looked at so far)&lt;br&gt;&#xA;3. Self study (I've been doing this myself anyway)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there is anyone responsible for hiring programmers I'd be really grateful for your take on which route would be most appealing to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of background I was previously an analyst programmer for 18 months (professionally, I self studied for about 3 years prior), working in C++, SQL and Visual Basic, always in a Windows environment. I got into it that time via demonstration, and I have no formal IT qualifications. I'm hoping to move back into a similar role, although I'm open as to which programming languages to focus on. I'm currently self studying to bring my prior experience up to date - any advice on languages / skills to focus on here would also be really appreciated. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If anyone needs any more information, please let me know and I'll update. &lt;/p&gt;&#xA;" OwnerUserId="8796" LastActivityDate="2010-11-29T23:37:47.640" ClosedDate="2010-12-01T09:56:31.383" Title="What is the best qualification route for me to get back into programming? (UK)" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;qualifications&gt;" AnswerCount="4" CommentCount="4" />
  <row Id="22351" PostTypeId="2" ParentId="22328" CreationDate="2010-11-29T21:16:57.740" Score="5" ViewCount="" Body="&lt;p&gt;I tend to tailor my resume to the types of jobs I want, rather than on what I know. Just because I have experience with FORTRAN and VB6 does not mean that I want to work with them anymore. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you are going to list them all, I would make sure that you have at a minimum enough knowledge to discuss the language with an expert (possible interviewer). An expert will be able to tell if you know what you are talking about or if you are just getting started.&lt;/p&gt;&#xA;" OwnerUserId="7446" LastActivityDate="2010-11-29T21:16:57.740" />
  <row Id="22352" PostTypeId="1" CreationDate="2010-11-29T21:22:15.667" Score="4" ViewCount="311" Body="&lt;p&gt;Consider a system that uses DDD (as well: any system that uses an ORM). The point of any system realistically, in nearly every use case, will be to manipulate those domain objects. Otherwise there's no real effect or purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Modifying an immutable object will cause it to generate a new record after the object is persisted which creates massive bloat in the datasource (unless you delete previous records after modifications).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can see the benefit of using immutable objects, but in this sense, I can't ever see a useful case for using immutable objects. Is this wrong?&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2011-03-28T04:23:43.177" Title="Do immutable objects and DDD go together?" Tags="&lt;immutable&gt;&lt;domain-driven-design&gt;" AnswerCount="6" />
  <row Id="22353" PostTypeId="2" ParentId="22070" CreationDate="2010-11-29T21:22:34.070" Score="3" ViewCount="" Body="&lt;p&gt;Seamless thread branching, it has syntax like a function, but executes in a separate thread and can't access data that has not initially been passed to it.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;branch foo(data, to, be, processed){&#xA;    //code&#xA;    return [resulting, data]&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;When a branch is called it will immediately return a handle.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;handle=foo(here, is, some, data)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The handle can be used to check if the task is done.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;handle.finished() //True if the execution is complete&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If the result is requested before the execution is complete the main thread will simply wait.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;[result, storage]=handle.result()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This wouldn't cover the more advanced multithreading scenarios, but rather provide an easily accessible way of beginning to utilize multiple cores.&lt;/p&gt;&#xA;" OwnerUserId="8737" LastActivityDate="2010-11-29T21:22:34.070" CommentCount="1" />
  <row Id="22354" PostTypeId="2" ParentId="14856" CreationDate="2010-11-29T21:25:46.023" Score="23" ViewCount="" Body="&lt;p&gt;Methodologies, particularly scrum. I can't keep a straight face when I hear grownups use the phrase &quot;Scrum Master&quot;.  I get so tired of hearing developers protest that some aspect of Methodology X isn't working for their company, only to be told by Guru So-and-So that the reason it's not working is that they are not, in fact, true practitioners of Methodology X.  &quot;Scrum harder, you must, my Padawan learner!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are nuggets of wisdom in agile methodologies---lots of them---but they're often couched in so much manure that I can't fight my gag reflex.  Take this bit from &lt;a href=&quot;http://en.wikipedia.org/wiki/Scrum_%28development%29&quot; rel=&quot;nofollow&quot;&gt;Wikipedia's scrum page&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;A number of roles are defined in Scrum. All roles fall into two distinct groups—pigs and chickens—based on the nature of their involvement in the development process.&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Really? Pigs and chickens, you say? Fascinating! Can't wait to pitch this one to my boss...&lt;/p&gt;&#xA;" OwnerUserId="1326" LastActivityDate="2010-11-29T21:25:46.023" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="7" />
  <row Id="22355" PostTypeId="2" ParentId="22349" CreationDate="2010-11-29T21:35:47.200" Score="1" ViewCount="" Body="&lt;p&gt;I use my case tracker, FogBugz, for this. Most of the things you note are already built-in:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Divided in a structured configurable way&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Not exactly sure what you mean here, but each requirement is a specific case, with a priority level.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Versioning of the requirements&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;A full history of the case is always available, though it doesn't do diffing, it merely 'tacks on' edits&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Interdependency of requirements&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Built-in&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Rule based access control for data handling&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Not exactly sure what you mean here, but there is user administration features so that they can only see certain types of cases iirc&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Multi-user, multi-project&lt;/li&gt;&#xA;&lt;li&gt;File upload&lt;/li&gt;&#xA;&lt;li&gt;Web-based&lt;/li&gt;&#xA;&lt;li&gt;Time based management&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;All built-in&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;People allocation and so on&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Built-in (use 'correspondents')&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Business related stuff&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;uhm... there's all kinds of 'stuff'&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Hardware allocation handling&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Not sure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bonuses: if you use Kiln, you can integrate fulfillment of requirements with source code check-ins (Kiln isn't necessary, but it's Mercurial which is a plus IMO, it's easy peasy to use, and it obviously works happily with FogBugz).&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-11-29T21:35:47.200" />
  <row Id="22356" PostTypeId="2" ParentId="22349" CreationDate="2010-11-29T21:37:18.057" Score="1" ViewCount="" Body="&lt;p&gt;Not sure what you are using for a bug tracker, but I've successfully used special issue types for requirements quite successfully.  Essentially, many issue management (or bug tracking) software allows you to link issues together.  They also have the concept of a master requirement with tasks, or subrequirements.  That takes care of most of what you are looking at.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way versioning is handled with such a system is by assigning the requirement to a version.  Either it's a custom field, or something built in.  As you have a new requirement that supercedes the older one, you link to it and cancel the older one.  You now have a trace through the versions of your software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One such open source tool I've used is called Redmine: &lt;a href=&quot;http://www.redmine.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.redmine.org/&lt;/a&gt;&#xA;You'll see some overlap with some of the other tools you already have.  I'm thinking a little creativity with your toolset will yield something close enough to what you want without springing for DOORS or (ir)Rational toolsets.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-11-29T21:37:18.057" CommentCount="1" />
  <row Id="22357" PostTypeId="2" ParentId="22352" CreationDate="2010-11-29T21:48:18.403" Score="6" ViewCount="" Body="&lt;p&gt;Computation using immutable objects (as in functional programming) does not necessarily imply persisting every object that is generated!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-29T21:48:18.403" CommentCount="3" />
  <row Id="22358" PostTypeId="2" ParentId="22352" CreationDate="2010-11-29T21:50:17.403" Score="2" ViewCount="" Body="&lt;p&gt;It depends on how the immutable object is mapped in the database. If it's just a component like a  DateTime (from the Joda Time library) then changing the value will result in an update rather than an insert. However, if the immutable is more complex requiring a row in a table then you've got the bloat problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suppose, although it is a weak argument, you could implement an audit trail this way. Every change to the immmutable can be tracked through the inserts. There are many better ways to do this though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All in all having immutable domain objects (instead of merely their components) seems a bit of a mismatch with persistence. &lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-29T21:50:17.403" />
  <row Id="22359" PostTypeId="2" ParentId="22350" CreationDate="2010-11-29T22:00:05.910" Score="1" ViewCount="" Body="&lt;p&gt;I don't know how things work in the UK but from my experience the piece of paper (i.e. university degree) is necessary to get in the door in most places.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think your odds of landing a good programming job are reduced without a formal education.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hate that this is true, there are alot of talented developers that are good at their job regardless of their education background, but most companies think it's important for one reason or another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The next best thing after a university degree is a certification or a 2-year degree, either of these will be better than nothing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I've found that having a portfolio of side projects is very beneficial when looking for a job.  They can be contributions to major open source projects or little goofy applications you write in a weekend.  Either way, showing that you can do projects on your own and &lt;strong&gt;be your own manager&lt;/strong&gt; is a great way to stick out for a job application that hundreds have applied to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="2044" LastActivityDate="2010-11-29T22:00:05.910" />
  <row Id="22360" PostTypeId="2" ParentId="14856" CreationDate="2010-11-29T22:13:19.833" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Measure, Measure, Measure&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So fine, measure away, but for &lt;em&gt;isolating&lt;/em&gt; performance bugs, measuring works about as well as successive elimination. &lt;a href=&quot;http://stackoverflow.com/questions/375913/what-can-i-use-to-profile-c-code-in-linux/378024#378024&quot;&gt;Here is the method I use.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been trying to track down the source of the measure-measure &quot;wisdom&quot;. Somebody with a tall enough soapbox said it, and now it travels.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-11-29T22:13:19.833" CommunityOwnedDate="2010-12-09T20:27:23.670" />
  <row Id="22361" PostTypeId="2" ParentId="22070" CreationDate="2010-11-29T22:15:09.550" Score="0" ViewCount="" Body="&lt;p&gt;Generalised switch has said above :&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; switch(x){&#xA;  predicate1:&#xA;     dosomething();&#xA;  predicate2:&#xA;     dosomethingelse();&#xA; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In Haskell :&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  switch' :: a -&amp;gt; [(a -&amp;gt; Bool, b)] -&amp;gt; b&#xA;  switch' a [] = undefined&#xA;  switch' a (f,b):xs = if f a&#xA;                     then b&#xA;                      else switch' a xs&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" LastActivityDate="2010-11-29T22:15:09.550" />
  <row Id="22362" PostTypeId="2" ParentId="14856" CreationDate="2010-11-29T22:23:04.417" Score="-1" ViewCount="" Body="&lt;p&gt;In JavaScript many people consider it best practice to write all the semicolons they would need in other C branch languages, (and a lot of them ain't afraid to point out the &quot;error&quot; whenever they see code that could have more semicolons). I never found a need for them, their role as visual marker is already filled by line shifts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a side note it is kinda funny to see a compiler requiring semicolons, but still confidently throw the error &quot;Missing semicolon&quot;. &quot;We both know what you meant to write, but I must reject your application because I formally ain't allowed to distinct between spaces and line shifts.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A number of other JavaScript/C-style best practices are circulating, but none of them come close in terms of hype without qualified arguments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: It is perfectly possible to minify code without semicolons &lt;a href=&quot;http://closure-compiler.appspot.com/home&quot; rel=&quot;nofollow&quot;&gt;Closure Compiler&lt;/a&gt; will insert them as needed.&lt;/p&gt;&#xA;" OwnerUserId="8737" LastEditorUserId="8737" LastEditorDisplayName="" LastEditDate="2010-11-30T20:06:09.033" LastActivityDate="2010-11-30T20:06:09.033" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="7" />
  <row Id="22363" PostTypeId="1" AcceptedAnswerId="22900" CreationDate="2010-11-29T22:24:10.093" Score="5" ViewCount="351" Body="&lt;p&gt;For a large enterprise app, everyone knows that being able to adjust to change is one of the most important aspects of design. I use a rule-based approach a lot of the time to deal with changing business logic, with each rule being stored in a DB. This allows for easy changes to be made without diving into nasty details. Now since C# cannot Eval(&quot;foo(bar);&quot;) this is accomplished by using formatted strings stored in rows that are then processed in JavaScript at runtime. This works fine, however, it is less than elegant, and would not be the most enjoyable for anyone else to pick up on once it becomes legacy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a more elegant solution to this? When you get into thousands of rules that change fairly frequently it becomes a real bear, but this cannot be that uncommon of a problem that someone has not thought of a better way to do this. Any suggestions? Is this current method defensible? What are the alternatives?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: Just to clarify, this is a large enterprise app, so no matter which solution works, there will be plenty of people constantly maintaining its rules and data (around 10).  Also, The data changes frequently enough to say that some sort of centralized server system is basically a must.&lt;/p&gt;&#xA;" OwnerUserId="3792" LastEditorUserId="8073" LastEditorDisplayName="" LastEditDate="2011-01-01T16:02:40.507" LastActivityDate="2011-01-01T16:02:40.507" Title="Highly scalable and dynamic &quot;rule-based&quot; applications?" Tags="&lt;design-patterns&gt;&lt;scalability&gt;&lt;business-rules&gt;&lt;rules-and-constraints&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="4" />
  <row Id="22364" PostTypeId="2" ParentId="22350" CreationDate="2010-11-29T22:35:19.870" Score="4" ViewCount="" Body="&lt;p&gt;My personal advice from working and hiring in UK startups would be that you should focus on a mobile platform (either Android, or iPhone).  As you have a background in C++, you might find Objective-C (used on the iPhone) an easier option to start on, but I'd give Android a serious look too as it's very simple and well supported (in terms of tools, tutorials etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once your comfortable with a platform, you might even have time to get an app or two released before you start applying for jobs, and this should help counterbalance your lack of employment experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a healthy number of UK-based mobile startups, and they tend to be more open-minded than established businesses when it comes to hiring people with practical experience but no formal qualification.  Also they can be much more rewarding!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only downside to this is that mobile technology is fairly fast-moving, so the lie of the land may have changed by the time your current contract is up, but I suspect iPhone and Android are here to stay, at least in the medium-term.&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-11-29T22:35:19.870" CommentCount="3" />
  <row Id="22365" PostTypeId="2" ParentId="22363" CreationDate="2010-11-29T22:40:34.290" Score="0" ViewCount="" Body="&lt;p&gt;One thing that comes to mind is &lt;a href=&quot;http://msdn.microsoft.com/en-us/netframework/aa663328.aspx&quot; rel=&quot;nofollow&quot;&gt;Windows Workflow Foundation&lt;/a&gt;, which can be used along with ASP.NET but would be running on the server side (so it may not be applicable to what you're doing).  In Java land there is &lt;a href=&quot;http://jboss.org/jbpm&quot; rel=&quot;nofollow&quot;&gt;jBPM&lt;/a&gt; (business process management) which also runs on the server side.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Since those solutions probably wouldn't fit the bill for you&lt;/strong&gt;, the best thing to do may be to implement those business rules in plain old code (using javascript, C#, or whatever is best for the job) and expect that the programming code will have to be updated when design changes happen.  Using object-orientated design patterns will make the code easily extendable.  If you write the code well, the effort needed to change it in the future should be minimal.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastEditorUserId="3907" LastEditorDisplayName="" LastEditDate="2010-11-29T22:53:37.067" LastActivityDate="2010-11-29T22:53:37.067" CommentCount="1" />
  <row Id="22367" PostTypeId="1" CreationDate="2010-11-29T22:43:50.413" Score="13" ViewCount="1093" Body="&lt;p&gt;I've had some very mixed reactions when I tell people I meet socially what I do, and sometimes it can get me down when people are dismissive or derisive of our trade.  Have you ever experienced this, and are you proud to call yourself a programmer?&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-11-30T09:37:10.697" ClosedDate="2010-11-30T09:46:46.693" Title="Are you proud to be a programmer?" Tags="&lt;social&gt;&lt;psychology&gt;" AnswerCount="30" CommentCount="10" FavoriteCount="3" />
  <row Id="22368" PostTypeId="1" CreationDate="2010-11-29T22:46:38.163" Score="8" ViewCount="345" Body="&lt;p&gt;...and if so, did you refuse?&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-11-30T11:04:08.277" Title="Have you ever been asked to program something you thought was morally questionable?" Tags="&lt;ethics&gt;" AnswerCount="7" CommentCount="3" />
  <row Id="22369" PostTypeId="2" ParentId="22363" CreationDate="2010-11-29T22:49:04.217" Score="0" ViewCount="" Body="&lt;p&gt;I am assuming you weren't strictly referring to client side operations and are in .Net since you mentioned c#...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are on framework 4 you have the DLR (dynamic language runtime) or on any framework if you are storing the rules in sql you could also process them there or you could always use dynamic linq in the &gt;3 frameworks or write the different functions as assemblies that can be loaded by name at runtime through an assembly load.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not all of those are elegant in many cases, but I have had to use them all at times.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-29T22:49:04.217" />
  <row Id="22370" PostTypeId="1" AcceptedAnswerId="22379" CreationDate="2010-11-29T22:49:05.447" Score="8" ViewCount="314" Body="&lt;p&gt;A friend (who does not own a computer) told me that too much computer time makes you need glasses..... well I don't know about taking it as truth from him like that . But I am curious. Do you get near sighted or what,, is there a study on that?&lt;/p&gt;&#xA;" OwnerUserId="6163" LastActivityDate="2010-11-30T00:18:39.800" Title="How monitor exposure affects eyesight or need to wear glasses" Tags="&lt;health&gt;&lt;monitor&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="22371" PostTypeId="2" ParentId="22368" CreationDate="2010-11-29T22:49:45.543" Score="4" ViewCount="" Body="&lt;p&gt;yes, and yes&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A 'back door' for a secure database/communications system was requested. I refused on the grounds that it was (a) immoral and (b) impossible.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-29T22:49:45.543" CommentCount="6" />
  <row Id="22372" PostTypeId="2" ParentId="22367" CreationDate="2010-11-29T22:50:23.530" Score="8" ViewCount="" Body="&lt;p&gt;the most common reaction is fear, awe, and incredible boredom.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;damn proud!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-29T22:50:23.530" CommentCount="7" />
  <row Id="22373" PostTypeId="2" ParentId="22368" CreationDate="2010-11-29T22:51:20.253" Score="4" ViewCount="" Body="&lt;p&gt;Not programming, but once upon a time when I worked at a startup, one of my &quot;hats&quot; was to manage the network. For 2 or 3 quarters in a row, our CFO came into my office and asked me to turn the clock on the server back a few days so they could fit a few more days of sales into the earnings report.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did it so I could keep my job - after the third time I quit.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-11-29T22:51:20.253" CommentCount="3" />
  <row Id="22375" PostTypeId="2" ParentId="22367" CreationDate="2010-11-29T22:52:13.763" Score="2" ViewCount="" Body="&lt;p&gt;In a word, Yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers design, develop and test some of the most complex products produced by humans. It is an art form, a science and raw engineering all rolled into one.  Like many skills, there are plenty of people who attempt to become masters of programming, but only a select few actually manage to stay in the industry for their entire working life.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-29T22:52:13.763" />
  <row Id="22377" PostTypeId="2" ParentId="22367" CreationDate="2010-11-29T22:58:05.813" Score="1" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;&amp;lt;redneck&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Hale Yeah!&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;/redneck&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-11-29T22:58:05.813" CommentCount="2" />
  <row Id="22378" PostTypeId="2" ParentId="22370" CreationDate="2010-11-29T23:01:17.220" Score="1" ViewCount="" Body="&lt;p&gt;Looking at a monitor for long periods of time does cause eye strain.  Whilst you are young, the consequences are more subtle.  Look at a monitor for 12 hours straight and will probably notice it.  As you get older, your eyes find it harder to focus, and using a monitor constantly for long periods exacerbates the normal consequences of the ageing process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The advice in the UK is to break from your monitor for 5 minutes after 30 minutes of use, and as a maxium to go 90 minutes in one sitting, with a 15 minute break.  Your monitor break time should be used for tasks that naturally involve exercising your eyes looking at different distances.  e.g. walking around the office to the coffee machine, looking out the window at distant objects etc.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-29T23:01:17.220" CommentCount="2" />
  <row Id="22379" PostTypeId="2" ParentId="22370" CreationDate="2010-11-29T23:04:50.453" Score="2" ViewCount="" Body="&lt;p&gt;Not significantly, no. &lt;a href=&quot;http://www.abc.net.au/health/talkinghealth/factbuster/stories/2010/09/30/3025732.htm&quot; rel=&quot;nofollow&quot;&gt;Here is a much more detailed answer&lt;/a&gt;, but a basic summary would be that until about 30, your eyes are still developing so there is some slight risk of becoming short-sighted. The risk is the same for any close-up work, though (such as reading and writing). After around 30, your eyes are fully-developed and the risk of developing short-sightedness is lessened.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is also eye-strain, which includes headaches, gritty eyes and blurry vision. These effects are temporary and can be reduced by taking regular breaks, having a properly calibrated monitor/ambient light level and so on.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-11-29T23:04:50.453" CommentCount="1" />
  <row Id="22380" PostTypeId="2" ParentId="22350" CreationDate="2010-11-29T23:06:14.373" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Train yourself in web development and apply to a startup&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your C++ skills will have given you a solid grounding in all you need to know in terms of language constructs (OOP, pointers, recursion, control statements, functions). Your VB6 knowledge will have given you knowledge in UI design and event driven programming. Your problem is really just playing catch up in a burgeoning arena.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having a formal qualification is not a requirement for a programming position since &lt;strong&gt;most recruiters will be looking for experience and talent&lt;/strong&gt;. Assuming that you won't be able to work on commercial programming within your present contract, you'll need to be able to demonstrate that you have contributed to something. Perhaps an open source project (extinct in VB6, rare in C++, common in Java, PHP, Python etc) or write a small mobile application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As @Alison has suggested, the mobile market is booming and there are two key languages to learn for that: Objective-C for iPhone and Java for Android. However, you also need web knowledge since the majority of software is being written to target services provided over the web in some form.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I imagine that you don't have a lot of under the hood experience with web programming so I'd advise you to learn HTTP, XHTML and CSS. Mix in a bit of JavaScript and tie it up with JQuery. That will give you plenty to work on within the confines of a browser, an editor and lunchtime development at work. You don't have to become a guru in it, just enough to understand how to put together a reasonable standards-compliant front end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next, concentrate on learning Java. It's a good general purpose language that will give you plenty of opportunities. With your (rusty) C++ skills it'll take a couple of weeks to master the syntax and basic techniques. Your main problem will be writing &lt;strong&gt;idiomatic Java&lt;/strong&gt; which will involve web applications and frameworks. To gain that experience you'll need to muck around with Maven and Spring (you can throw in Hibernate later, but just start with JAX-RS, JPA and JAXB). Each of those technologies is here to stay for at least 2 years and will be directly applicable to a wide range of jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So there you have it. All you need to do now is get started - 2 years is not a long time.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-29T23:37:47.640" LastActivityDate="2010-11-29T23:37:47.640" CommentCount="5" />
  <row Id="22381" PostTypeId="2" ParentId="18585" CreationDate="2010-11-29T23:12:24.297" Score="1" ViewCount="" Body="&lt;p&gt;I work for a public body. There's really no way to adequately explain the level of waste that can go on when the workplace is so heavily legislated and unionised that sacking someone is practically almost impossible. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Managers play pass the parcel with bad staff, and hope to remove them all at once under cover of restructuring. Some bad staff are promoted, just to move them out of an area that needs improvement. Any good staff end up struggling constantly just to make up for the bad staff's work. Staff you wouldn't keep for 3 months forge 40 year careers. The amount of money they waste over such careers is astronomical. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I worked in the private sector previously, and saw a lot of waste, but public sector waste is a whole different sport, let alone ballgame. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was suggested in a comment that establishing sinecures for underperforming staff would help. It would help in that it would limit the damage they could do, but wouldn't impact the root causes of the problem. I think the best thing would be the adoption of some private sector hiring and management procedures, and changes in legislation to make it easier for public bodies to let staff who underperform go. Unions should also change their policies in consultation with the government - their role of protecting their members is important, but they should recognise that sometimes their members are truly out of their depth, and should be moved on&lt;/p&gt;&#xA;" OwnerUserId="8796" LastEditorUserId="8796" LastEditorDisplayName="" LastEditDate="2010-11-30T11:49:55.010" LastActivityDate="2010-11-30T11:49:55.010" CommentCount="3" />
  <row Id="22382" PostTypeId="2" ParentId="22367" CreationDate="2010-11-29T23:13:12.097" Score="1" ViewCount="" Body="&lt;p&gt;I pretty much always get the response something along the lines &quot;Wow, you must be brilliant.&quot; I don't usually correct them. However, I usually explain it as me being a graduate student studying computer science. That may come across as more impressive then calling myself a computer programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Guessing from your name, I'm going to say that you are female. I wonder whether there is more of a stigma attaching to a female programmer? (I've never seen it myself, but it wouldn't entirely surprise me)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do find that some people typecast me as a nerd when they find out what I do. In my case, that is not inaccurate, so I can't really complain. &lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-11-29T23:13:12.097" />
  <row Id="22383" PostTypeId="2" ParentId="22350" CreationDate="2010-11-29T23:13:19.993" Score="1" ViewCount="" Body="&lt;p&gt;Whilst recruiting, I look for relevant experience. I am looking to employ someone to do a job, so I am looking for evidence that supports the hypothesis that they are capable of completing the tasks relatively unsupported.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A degree does not show that you can program, A Microsoft certificate does not show you can program.  However larger companies may have policies in place that require these bits of paper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now having developed and released a product, being able to answer questions about how you designed it, the challenges involved, and how you managed the development process would get you a face to face interview.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-29T23:13:19.993" />
  <row Id="22385" PostTypeId="2" ParentId="22347" CreationDate="2010-11-29T23:18:45.980" Score="2" ViewCount="" Body="&lt;p&gt;If you are setting up the development processes for a team, you need to make the official way to do it so easy that no one would even conceive of doing it any other way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the pressure is on, automated builds that run the unit tests, create the release disks, set up the QA environments just make life easier for everyone, and make it that much harder for a bug to slip through, and for bugs to appear late in the product development.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-29T23:18:45.980" CommentCount="2" />
  <row Id="22386" PostTypeId="2" ParentId="22368" CreationDate="2010-11-29T23:25:22.857" Score="0" ViewCount="" Body="&lt;p&gt;yes.&lt;br/&gt;&#xA;I've been asked to develop a program that removes a random water mark from some pictures becuase you should pay if you want them with no water mark.I refused becuase (a) it was so hard for me to do that in 3 days (b) it is immoral for sure.&lt;/p&gt;&#xA;" OwnerUserId="8372" LastEditorUserId="8372" LastEditorDisplayName="" LastEditDate="2010-11-29T23:39:20.900" LastActivityDate="2010-11-29T23:39:20.900" CommentCount="12" />
  <row Id="22387" PostTypeId="2" ParentId="22367" CreationDate="2010-11-29T23:25:38.807" Score="1" ViewCount="" Body="&lt;p&gt;Too many times I felt proud of my algorithmic approach to problems, which has often made me say &quot;I don't really know, but what I know is how to make a computer answer the question&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And even if many times it didn't work: yes, oooh yes, so much proud...&lt;/p&gt;&#xA;" OwnerUserId="5936" LastActivityDate="2010-11-29T23:25:38.807" />
  <row Id="22388" PostTypeId="2" ParentId="22367" CreationDate="2010-11-29T23:28:26.617" Score="31" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;h1&gt;Yes I am&lt;/h1&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8372" LastActivityDate="2010-11-29T23:28:26.617" CommentCount="1" />
  <row Id="22389" PostTypeId="2" ParentId="22367" CreationDate="2010-11-29T23:41:50.550" Score="5" ViewCount="" Body="&lt;p&gt;Within some circles, heck yeah.  However, there are some areas where calling myself a programmer is the equivalent of social suicide.  These circles are the ones that would label me as, &quot;He just works with computers,&quot; which really honestly bothers me a great deal.  For those that can respect what I do, I'm proud to call myself a programmer but for those with massive ignorance, it isn't worth the pain to wear that label.  In my younger days, I was more proud as I'd take on those ignorant people head on but I've had enough times where it seems like I'm banging my head against a wall, which isn't a very pleasant feeling.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-29T23:41:50.550" CommentCount="1" />
  <row Id="22390" PostTypeId="2" ParentId="22367" CreationDate="2010-11-29T23:46:08.833" Score="2" ViewCount="" Body="&lt;p&gt;No but i am proud to be a good programmer.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-11-29T23:46:08.833" />
  <row Id="22391" PostTypeId="2" ParentId="14856" CreationDate="2010-11-29T23:46:24.223" Score="6" ViewCount="" Body="&lt;h3&gt;User Stories / Use Cases / Personas&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I understand the need for these when you are programming for an industry that you are not familiar with, but I think that when they are implemented in full force they become too corporate and become a waste of time.&lt;/p&gt;&#xA;" OwnerUserId="5039" LastActivityDate="2010-11-29T23:46:24.223" CommunityOwnedDate="2010-12-09T20:27:23.670" />
  <row Id="22392" PostTypeId="2" ParentId="22370" CreationDate="2010-11-29T23:50:57.823" Score="0" ViewCount="" Body="&lt;p&gt;Keep your monitor brightness low (most of the time it's terribly high if you compare it with room light) - that's an easy trick to put less strain on your eyes and trust me, with some time, you get used to lower and lower brightness.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus, consider using soothing, non-white-background color schemes for your IDE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's how mine looks, I know it looks weird but I like it:  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src=&quot;http://i.imgur.com/D99Hc.png&quot; alt=&quot;&quot;&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you're looking at your IDE for so much time, mind how bright it is. If you like dark themes, there's quite a lot (and non-bright too) on here: &lt;a href=&quot;http://studiostyl.es/&quot; rel=&quot;nofollow&quot;&gt;http://studiostyl.es/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And remember not to set you programming font TOO small. 7-9pt is not very good for your eyes on the main code view.&lt;/p&gt;&#xA;" OwnerUserId="8239" LastActivityDate="2010-11-29T23:50:57.823" CommentCount="6" />
  <row Id="22393" PostTypeId="2" ParentId="22367" CreationDate="2010-11-29T23:54:42.990" Score="3" ViewCount="" Body="&lt;p&gt;It really depends on exactly what you do...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I'm just working on some random boring business systems, then meh. Working on something like the Great Firewall Of China - no! Working on software that really makes the human condition better in real ways - yes!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now I'm in essentially the first category - working on random boring business systems. So it's basically just another job and basically pride-neutral to me. But I guess I'm proud of the technical wizardry involved in the act of programming itself. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(And I guess this can be said about any job. eg Dr Mengele might have been a brilliant physician, but that says nothing about if people should be &quot;proud to be doctors&quot; as a general matter.)&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-11-29T23:54:42.990" />
  <row Id="22394" PostTypeId="2" ParentId="14856" CreationDate="2010-11-29T23:54:57.423" Score="5" ViewCount="" Body="&lt;h3&gt;Use Singletons&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;When you only should have one instance of something. I cant &lt;strong&gt;disagree&lt;/strong&gt; more. Never use a singleton and just allocate it once and pass around the pointer/object/reference as necessary. There is absolutely no reason not to do this.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastEditorUserId="2528" LastEditorDisplayName="" LastEditDate="2010-12-01T07:59:04.207" LastActivityDate="2010-12-01T07:59:04.207" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="16" />
  <row Id="22395" PostTypeId="1" CreationDate="2010-11-30T00:01:14.133" Score="5" ViewCount="133" Body="&lt;p&gt;We have a trac server setup that works with the svn commits, so we can do things like &quot;fixed #183&quot; in the commit messages, and references changes involved.  Right now I have eclipse with subclipse + trac plugins, and it works pretty well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But &lt;strong&gt;I don't have internet all the time&lt;/strong&gt; and it becomes very difficult to commit to an inaccessible svn server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to use some type of local repository for commits, and then push commits all at once, but individually to server.  &lt;strong&gt;Changing svn / trac isn't an option at this time&lt;/strong&gt;.  Other developers can touch the svn server directly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a way to cache the commits locally, and then send them when I have internet again?  Take in mind that I can't just do one big commit of all my changes because it makes it a nightmare since I can't selectively merge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically is there &lt;strong&gt;a way to do this with git/bzr/mercurialand still use svn/trac&lt;/strong&gt; as intended?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd be willing to do some scripting, but I don't know where to start.&lt;/p&gt;&#xA;" OwnerUserId="8795" LastEditorUserId="8795" LastEditorDisplayName="" LastEditDate="2010-11-30T01:07:06.007" LastActivityDate="2010-11-30T01:17:29.427" Title="How to setup a distributed version control that can commit to subversion." Tags="&lt;version-control&gt;&lt;eclipse&gt;&lt;distributed-development&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="22396" PostTypeId="2" ParentId="21480" CreationDate="2010-11-30T00:01:55.497" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;From the Spring framework&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/context/Lifecycle.html&quot; rel=&quot;nofollow&quot;&gt;Lifecycle interface&lt;/a&gt; forces the following action sequence:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;start (isRunning)* stop&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;which is used in just about all the principal components that make up the framework. Fortunately, this lifecycle is managed by the container.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;From the Hibernate framework&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://www.dil.univ-mrs.fr/~massat/docs/hibernate-3.1/api/org/hibernate/classic/Lifecycle.html&quot; rel=&quot;nofollow&quot;&gt;Lifecycle interface&lt;/a&gt; supports the following action sequence:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(onDelete, onSave, onUpdate)* onLoad&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;From the Servlet API&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My all-time favourite - &lt;a href=&quot;http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets4.html&quot; rel=&quot;nofollow&quot;&gt;the lifecycle of a servlet&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;init service destroy&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;with service delegating to the doGet, doPost operations etc. &lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-30T00:01:55.497" />
  <row Id="22397" PostTypeId="2" ParentId="22370" CreationDate="2010-11-30T00:04:01.797" Score="0" ViewCount="" Body="&lt;p&gt;Given a sample of one (me) I can say that working all my adult life hasn't affected my eyesight one little bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got my first pair of glasses 30 years ago and in the intervening years my prescription hasn't changed a great deal. When I got my eyes tested last year the optician said that the variation between then and now was less than some people get over two years. However, I need glasses to correct a retinal astigmatism so my situation might not be typical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm on the borderline for needing glasses for reading now - but that's normal for someone my age.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have noticed that it's the refresh rate of the monitor that causes me problems. When I was using CRTs I had to have the refresh rate cranked up to over 85Hz otherwise I could see the flicker. LCDs have &lt;em&gt;no&lt;/em&gt; flicker that I can detect.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-11-30T00:04:01.797" />
  <row Id="22400" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T00:16:08.667" Score="1" ViewCount="" Body="&lt;p&gt;I know what you mean... it's seems like some kind of curse... people have at least some kind of idea when you say that study business, music, arts... but computer science? Not really, most people I know instantly shy away... others say it's not real/hard work (because you don't do physical work except typing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And still, I feel very proud of being a programmer. Why? Because I'm doing it for myself, and I love what I'm doing (in constrast to most people who whole-heartedly hate their work).&lt;/p&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2010-11-30T00:16:08.667" />
  <row Id="22401" PostTypeId="2" ParentId="22370" CreationDate="2010-11-30T00:18:39.800" Score="0" ViewCount="" Body="&lt;p&gt;I've spent quite a while (i.e. by far too much time) on computers since I was 12, now I'm 40 and still don't need glasses. Maybe I will later, but who doesn't?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, most white-collar-workers spend just as long starring into a monitor as us.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-30T00:18:39.800" CommentCount="1" />
  <row Id="22403" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T00:31:21.937" Score="1" ViewCount="" Body="&lt;p&gt;I'm proud, most people are too baffled by what we do to form an opinion.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-30T00:31:21.937" />
  <row Id="22404" PostTypeId="1" AcceptedAnswerId="23115" CreationDate="2010-11-30T00:42:39.273" Score="14" ViewCount="783" Body="&lt;p&gt;I liked the question about favorite program layer: &lt;a href=&quot;http://programmers.stackexchange.com/questions/11204/what-is-your-favorite-program-layer-to-work-on&quot;&gt;What is your favorite program layer to work on?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What order do you build them in or do different team members develop corresponding parts simultaneously?&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-04-11T06:18:29.430" CommunityOwnedDate="2011-04-11T04:21:44.680" Title="What order do you develop program layers?" Tags="&lt;development-process&gt;&lt;design&gt;" AnswerCount="18" CommentCount="1" FavoriteCount="7" />
  <row Id="22405" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T00:47:23.133" Score="15" ViewCount="" Body="&lt;p&gt;Its a fair question to some extent. I think the OP is trying to get at the social stereotype associated with being a 'programmer'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got a point where I was so sick and tired of seeing the same abysmal stereotypical reaction of disinterest from people, when I told them I was a 'programmer' that I decided to try an experiment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since I work in web development, I altered the way I introduce what I do when asked by a stranger... Instead of saying I'm a programmer,  I told people something on the lines of:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;'google, facebook, flickr, I make that sort of stuff'...&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;it was amazing to see the difference it made, they were actually genuinely interested and actually smiled at me as though I was an equal in terms of the social circle (lol) - I always introduce this way now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whilst that statement may appear terribly vague to you and I, to non-programmers it just doesn't appear as threatening as the statement of 'I'm a programmer' which is just a stereotypical negative image in most non-programmers views.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I am a programmer by definition and proud, you just have to know how to play it ;)&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7885" LastActivityDate="2010-11-30T00:47:23.133" CommentCount="3" />
  <row Id="22406" PostTypeId="2" ParentId="22404" CreationDate="2010-11-30T00:58:50.597" Score="3" ViewCount="" Body="&lt;p&gt;If I am really developing from scratch, I prefer to develop them organically.  Which I guess means, from the inside out (start in the middle, work out to the ends).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So in a hypothetical, probably web-based application, if I had the following layers...&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;DB Access&lt;/li&gt;&#xA;&lt;li&gt;Data objects&lt;/li&gt;&#xA;&lt;li&gt;Business logic&lt;/li&gt;&#xA;&lt;li&gt;I/O&lt;/li&gt;&#xA;&lt;li&gt;GUI logic&lt;/li&gt;&#xA;&lt;li&gt;UI visual/interactive polish&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I would probably develop in this order:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;A single layer incorporating &lt;strong&gt;2, 3, 4&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;If persistent data is important early on, possibly &lt;strong&gt;1, 3, 4&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Separate data from interaction: &lt;strong&gt;1, 2,&lt;/strong&gt; and &lt;strong&gt;3, 4&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Separate &lt;strong&gt;business logic&lt;/strong&gt; from &lt;strong&gt;I/O&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Separate &lt;strong&gt;DB Access&lt;/strong&gt; from &lt;strong&gt;Data objects&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Add UI: &lt;strong&gt;5, 6&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Separate and polish &lt;strong&gt;UI&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If a team-based project already has most of these layers established and you are talking about adding a new feature that has parts in every layer, a member of the team would most likely take responsible for one layer and develop simultaneously (&lt;strong&gt;assuming you have an architect/lead engineer who is able to look at the process as a whole and do a rough technical breakdown&lt;/strong&gt; of the tasks required for each layer).&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-11-30T00:58:50.597" CommunityOwnedDate="2011-04-11T04:21:44.680" CommentCount="1" />
  <row Id="22407" PostTypeId="2" ParentId="22404" CreationDate="2010-11-30T01:02:58.457" Score="2" ViewCount="" Body="&lt;p&gt;The process is usually iterative, but I go &quot;ground up&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Data first, the business logic, then UI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a multi-developer environment, I spec them in that order, then start each stage slightly in front of the later stage to give the subsequent teams something to build on.&lt;/p&gt;&#xA;" OwnerUserId="8767" LastActivityDate="2010-11-30T01:02:58.457" CommunityOwnedDate="2011-04-11T04:21:44.680" CommentCount="1" />
  <row Id="22408" PostTypeId="2" ParentId="22395" CreationDate="2010-11-30T01:12:16.543" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.kernel.org/pub/software/scm/git/docs/git-svn.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;git-svn&lt;/strong&gt;&lt;/a&gt; does pretty much exactly what you want. I used to do this at a former place; they had SVN installed as source control, but the connection was unreliable so I tracked my changes locally in Git and only committed to the main repo when I had a hard line into the office server. It was really, REALLY useful having local branches, and merging my code in got much easier once I switched over.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The link up there is basically an online man page. If you decide to go this route, also check out the &lt;a href=&quot;http://trac.parrot.org/parrot/wiki/git-svn-tutorial&quot; rel=&quot;nofollow&quot;&gt;tutorials&lt;/a&gt; available &lt;a href=&quot;http://git.or.cz/course/svn.html&quot; rel=&quot;nofollow&quot;&gt;online&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only real complaint I had was that the initial checkout took a good 40 minutes; I went to grab a sandwich and a tea, and it had &lt;em&gt;just&lt;/em&gt; finished when I got back. Committing and pushing thereafter was a breeze (actually much faster than the SVN process), but don't be surprised if that first pull takes a while.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-11-30T01:17:29.427" LastActivityDate="2010-11-30T01:17:29.427" CommentCount="2" />
  <row Id="22409" PostTypeId="2" ParentId="22395" CreationDate="2010-11-30T01:15:00.167" Score="3" ViewCount="" Body="&lt;p&gt;Can use Mercurial easily, check : &lt;a href=&quot;http://mercurial.selenic.com/wiki/WorkingWithSubversion&quot; rel=&quot;nofollow&quot;&gt;http://mercurial.selenic.com/wiki/WorkingWithSubversion&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8310" LastActivityDate="2010-11-30T01:15:00.167" CommentCount="2" />
  <row Id="22410" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T01:31:16.653" Score="1" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/B1XfP.jpg&quot; alt=&quot;f**k yea&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Always proud. Some people don't care, but no one I respect has actually thought less of me for programming. They just avoid bringing up computer-related topics because they know I won't shut up.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-11-30T01:31:16.653" />
  <row Id="22411" PostTypeId="1" CreationDate="2010-11-30T01:42:54.407" Score="5" ViewCount="211" Body="&lt;p&gt;Which if the SOLID principles introduced by &quot;Uncle Bob&quot; Martin had the largest effect on your day to day coding? Please give details!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Solid_%28object-oriented_design%29&quot; rel=&quot;nofollow&quot;&gt;SOLID (object-oriented design) - Wikipedia&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4881" LastActivityDate="2010-11-30T09:09:30.170" Title="Which one of the SOLID principles had the largest effect on your code?" Tags="&lt;design&gt;&lt;design-patterns&gt;&lt;solid&gt;" AnswerCount="4" FavoriteCount="4" />
  <row Id="22412" PostTypeId="1" AcceptedAnswerId="22417" CreationDate="2010-11-30T01:50:56.797" Score="6" ViewCount="334" Body="&lt;p&gt;I'm working with some code which was written by a contractor who left a year ago leaving a number of projects with buggy, disgustingly bad code. This is what I call cowboy PHP, say no more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally I'd like to leave the project as is and never touch it again. Things break, requirements change and it needs to be maintained. Part A needs to be changed. There is a bug I cannot reproduce. Part A is connect to parts B D and E. This kind of work gives me a headache and makes me die a little inside. It kills my motivation and productivity. To be honest I'd say it's affecting my mental health.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps being at the start of my career I'm being naive to think production code should be reasonably clean.&#xA;I would like to hear from anyone else who has been in this situation before. What did you do to get out of it? I'm thinking long term I might have to find another job.&lt;/p&gt;&#xA;" OwnerUserId="5678" LastEditorUserId="5678" LastEditorDisplayName="" LastEditDate="2010-11-30T03:55:50.947" LastActivityDate="2010-11-30T10:12:00.590" Title="Working with fubar/refuctored code" Tags="&lt;career-advice&gt;&lt;coding-standards&gt;" AnswerCount="7" CommentCount="4" FavoriteCount="1" />
  <row Id="22413" PostTypeId="2" ParentId="4399" CreationDate="2010-11-30T02:11:20.610" Score="1" ViewCount="" Body="&lt;p&gt;As a tester, I have no objection at all to programmers suggesting test cases (though that doesn't mean I'll stick to only those test cases), or describing implementation details.  Sometimes it can be really helpful to have someone say &quot;I think this bit might be risky, I'd really like it if you tested this bit pretty thoroughly&quot;.  Knowing some of the implementation details helps me to apply years of experience to choose the tests I think most likely to fail.  Sometimes just a brief mention means a few tests suddenly zoom right up my priority list.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does it taint me? I'm kinda tickled by the idea of programmers chivalrously striving to preserve my tester purity, but really - no, this is a myth.  More information usually triggers even more questions for me, not fewer.  I guess it's a mindset thing - I don't find bugs because I'm ignorant, I find issues because I'm a skeptical, untrusting type who just is too darn stubborn to wholly take anything on trust.  On every system I've tested, I've found that I find more issues, and more &quot;interesting&quot; ones, the more deeply I come to understand it.&lt;/p&gt;&#xA;" OwnerUserId="8805" LastActivityDate="2010-11-30T02:11:20.610" />
  <row Id="22414" PostTypeId="2" ParentId="22412" CreationDate="2010-11-30T02:19:08.390" Score="1" ViewCount="" Body="&lt;p&gt;A lot of production software sucks, everyone has or had a job that really sucks... like Job said, man up, step up... or quit, probably you will find another job with crappy code.&lt;/p&gt;&#xA;" OwnerUserId="6078" LastActivityDate="2010-11-30T02:19:08.390" CommentCount="3" />
  <row Id="22415" PostTypeId="2" ParentId="4399" CreationDate="2010-11-30T02:19:26.033" Score="2" ViewCount="" Body="&lt;p&gt;I think both testing and development are &lt;em&gt;collaborative&lt;/em&gt; efforts, so of course (IMO), devs should give test ideas to testers. I don't think it infects them or taints testers at all. The tester, of course, should enhance those tests with many other testing approaches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm also a big fan of testers helping developers - I've brainstormed design ideas with developers and paired with them to fix bugs (and pointed out the bugs and suggested fixes) many times in my career, and don't think I've ever tainted a developer with tester cooties.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't see it as a collaborative effort, you'll just have code &quot;thrown over the wall&quot; from dev to test...and you'll end up with lower quality. That's the truth in my world, but (of course), ymmv.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-11-30T02:19:26.033" />
  <row Id="22416" PostTypeId="1" AcceptedAnswerId="22430" CreationDate="2010-11-30T02:19:36.813" Score="6" ViewCount="358" Body="&lt;p&gt;I am being approached with a job for writing embedded C on micro controllers. At first I would have thought that embedding programming is to low on the software stack for me, but maybe I am thinking about it wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Normally I would have shrugged off an opportunity to write embedded code, as I don't consider myself an electrical engineer. Is this a bad assumption? Am I able to write interesting and useful software for embedded systems, or will I kick myself for dropping too low on the software stack?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I went to school for computer science and really enjoyed writing a compiler, managing concurrent algorithms, designing data structures, and developing frameworks. However, I am currently employed as a Flex developer, which doesn't scream the interesting things I just described. (I currently deal with issues like: &quot;this check box needs to be 4 pixels to the left&quot; and &quot;this date is formatted wrong&quot;.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I appreciate everyone's input. I know I have to make the decision for myself, I just would like some clarification on what it means to be a embedded programmer, and if it fits what I find to be interesting.&lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2010-11-30T21:00:48.213" Title="Is embedded programming closer to electrical engineering or software development?" Tags="&lt;programming&gt;&lt;software-engineering&gt;&lt;software-developer&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="22417" PostTypeId="2" ParentId="22412" CreationDate="2010-11-30T02:20:01.460" Score="15" ViewCount="" Body="&lt;p&gt;You run into this kind of crappy coding all the time. It won't be the last time you see it. You have two choices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A) Get it done. Sucks, but the more you stare at it, the worse it looks. Just run through line by line to get it working, then refactor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;B) Start over again from the beginning. There are many times I wish I had just done this. One project, there was about a month of disgusting code put into it. I rolled with it since I didn't want to lose a month of work we had paid a contractor for. Now, I wish I had just hit delete and started over again. His mistakes haunted me for a long time... which is in the end, my mistake that there were still mistakes left by him.&lt;/p&gt;&#xA;" OwnerUserId="7566" LastActivityDate="2010-11-30T02:20:01.460" CommentCount="2" />
  <row Id="22418" PostTypeId="2" ParentId="22416" CreationDate="2010-11-30T02:37:46.003" Score="1" ViewCount="" Body="&lt;p&gt;Like everything, it requires a balanced approach.  I love working with embedded systems at my day job.  They make me better at electrical engineering.  Physical computing and automation are very exciting.  On the other hand, building web apps and tinkering with cloud computing is awesome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do it right, the software side of you will look for ways to do things smarter and better.  The hardware side of you will keep you mindful of resources and super efficient.&lt;/p&gt;&#xA;" OwnerUserId="3884" LastActivityDate="2010-11-30T02:37:46.003" CommentCount="1" />
  <row Id="22420" PostTypeId="2" ParentId="22363" CreationDate="2010-11-30T02:51:32.073" Score="1" ViewCount="" Body="&lt;p&gt;If your rules are all of a form&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if &amp;lt;condition&amp;gt;&#xA;then &amp;lt;action&amp;gt;&#xA;[else &amp;lt;action]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You could use Drools.NET or another Rete implementation such as iLog.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-30T02:51:32.073" />
  <row Id="22421" PostTypeId="2" ParentId="4399" CreationDate="2010-11-30T02:53:49.933" Score="0" ViewCount="" Body="&lt;p&gt;I'm doing QA, and unlike most domains knowing how to use our code is far more difficult than learning any programming lanquage. So we count on developers to give us test cases for their brand new whizzbang features, because we wouldn't know how to. In any case the QA problems are more to catch regressions and things that get broken than original testing of new features. In any case when the result is a complex computation, its hard to know what is a correct answer and what is a wrong answer, or even if an abnormal termination is a good or bad thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case, a developer, if he's honest probably knows something of his babies vulnerabilities. He probably knows at what parameter values, he has to select different algorithms, or domains in a table lookup or whatever. Knowing that, if he is sincere about rigorous testing, he should be able to generate a reasonable sized suite of tests that covers a lot of the code.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-11-30T02:53:49.933" />
  <row Id="22422" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T02:55:21.573" Score="3" ViewCount="" Body="&lt;p&gt;I live with an artist. I am usually introduced as a &quot;computer geek&quot;, an &quot;IT person&quot;, &quot;into technology&quot;, &quot;into computers&quot;. And referred to by acquaintances the same way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't really call myself a programmer anymore as I usually consider this a bit lower-level in terms of responsibilities, but that would be fine. Heck I'd be fine if they called me a code-monkey :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But no. For  most people of this circle I am an &quot;IT geek&quot;. Then if I ask them what they think that means, there's an awkward silence as they have no idea beyond thinking of WoW (which they play, but I don't), or that I live in a basement with bad lighting and watch Matrix over and over again. or just that I do &quot;you know, computer stuff...&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pretty much the same level as a slave, as from their perspective I belong to the category of people producing the (possibly bad) software they use for their work, studies and life. So I must be a bad person too. Very enjoyable on a day to day basis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it doesn't really take me down: we all have wrong perceptions of other people's professions (for instance, I started this with &quot;I live with an artist&quot;, and I bet this triggered a fairly specific image for quite a lot of people) :) It's just how it is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I don't care anymore. If I know it's someone I won't need to care about, I do introduce myself in those terms, as it's not worth my time changing their perception. For others, I'd try to explain in 2 or 3 sentences what I do at work and what the things I work on enable people to do. Then usually I'm still a &quot;computer freak&quot;, but at least they realize my job is worth something in their lives (Worked on stuff for cancer research, cosmetics, telecommunications, banking, education and defense. Dammit, I have to be able to cover something they use... I hope :))&lt;/p&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-11-30T02:55:21.573" CommentCount="3" />
  <row Id="22423" PostTypeId="2" ParentId="22411" CreationDate="2010-11-30T03:00:47.947" Score="3" ViewCount="" Body="&lt;p&gt;All of them, and none of them per se - I started with OO programming about ten years before Uncle Bob's first book came out. ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My favorite principle is DRY = Don't Repeat Yourself. Also called 'normalization'!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-30T03:00:47.947" CommentCount="9" />
  <row Id="22424" PostTypeId="2" ParentId="22404" CreationDate="2010-11-30T03:02:19.773" Score="1" ViewCount="" Body="&lt;p&gt;in the order required to get the first test of the first user story of the first feature of the first iteration working [XP/TDD]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: for those that missed the implied point: the order in which you implement the layers does not matter. As long as the interfaces are correct it will work regardless of which one you concentrate on first. As an XP/TDD fan, I do it in the order determined by the test cases in the implementation queue. If I have to do a big up-front design on something, I start with screen mockups and the object model, then the underlying database, and tie it all together using DDD. But the short answer is: &lt;em&gt;the order doesn't matter&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-12-02T18:35:23.300" LastActivityDate="2010-12-02T18:35:23.300" CommunityOwnedDate="2011-04-11T04:21:44.680" CommentCount="3" />
  <row Id="22425" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T03:06:05.730" Score="5" ViewCount="" Body="&lt;p&gt;I used to be an audio engineer, working at many radio stations, and then at EMI, then I went back to university and initially studied archaeology, until I decided I would turn my hobby into a profession, and switched to computing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Saying &quot;I work at (insert radio station name here)&quot; or &quot;EMI&quot; or even I study archaeology always got an interested and positive response, one I was used to. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I started saying, even prouder, I am a programmer (I say software developer now, but the response is the same) I started to get a range of responses from a disinterested 'oh' to a projected distrust and frustration of the recipient's lifetime dealings with anything technological. It was a real eye-opener, and it took a while for me to understand why the most interesting and creative job I ever held was being treated with derision.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After a while I realised that it's what I feel about my job and actions that make me feel proud, and if no-one else outside of IT understands, that's not my problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, I am proud to be a programmer, but I am even prouder to be the programmer I that I have become, because I love it and have therefore applied myself to be the best programmer I can be.&lt;/p&gt;&#xA;" OwnerUserId="3946" LastEditorUserId="3946" LastEditorDisplayName="" LastEditDate="2010-11-30T03:35:24.760" LastActivityDate="2010-11-30T03:35:24.760" />
  <row Id="22426" PostTypeId="2" ParentId="22412" CreationDate="2010-11-30T03:10:46.433" Score="12" ViewCount="" Body="&lt;p&gt;There will &lt;em&gt;always&lt;/em&gt; be crap code. Frequently the answer to &quot;what idiot wrote this crap?&quot; is the one that looks back at you from the mirror [A]. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One way of dealing with broken crufty old code is to slowly refactor it while adding unit tests. I recommend the books &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131177052&quot; rel=&quot;nofollow&quot;&gt;Working Effectively with Legacy Code&lt;/a&gt; and &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1933988711&quot; rel=&quot;nofollow&quot;&gt;Brownfield Application Development in .Net&lt;/a&gt; (note that this book is .NET specific while the first isn't). One application that I am currently working with is so tangled up that there is no way to add unit tests without refactoring it (the main form is passed as a parameter to every object and class - and those objects/classes all refer to stuff on the main form). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To keep track of what components connect to other components, I usually use Visio (there may be some equivalent drawing tool in your IDE of choice). When the drawing looks like a bowl of spaghetti, then it is past time to refactor it. You may find that frequently documentation is something that devs do after finishing a project (if ever), or done to figure out what is going on (more common than you think) because there was no documentation left behind. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Perhaps I'm just being at the start of my career I'm being naive to think production code should be reasonably clean.&lt;/em&gt;   &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes you are [B]. Now moving along, frequently folks do hurried rush stuff to get something done. &lt;em&gt;Just do it&lt;/em&gt; and &lt;em&gt;whatever it takes&lt;/em&gt; are the slogans of people who don't want &quot;clean&quot; stuff - they want quick and cheap. Remember that old saying &lt;em&gt;&quot;quick, cheap or good - pick two&quot;&lt;/em&gt;? This is the sort of thing that commonly results when the quick and cheap corners of the triangle are grabbed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A little saying that my father used to say [C] to me goes like this: &lt;em&gt;&quot;When you go to work, they hand you 2 buckets. One they fill with money. And one they fill with shit. When the bucket filled with shit is heavier than the bucket they fill with money, you leave.&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Notes:&lt;br&gt;&#xA;A - Congratulations, you are learning that there are better ways to write stuff that your old self didn't know about. To paraphrase Alec Balwin's character in Glengarry Glen Ross: ABL. Always Be Learning.&lt;br&gt;&#xA;B - Don't worry, being cynical and jaded takes time, practice, lots of screaming and lots of other things. Mostly experience. Don't go for bitter, as that is what you get when you are burned out (and them some).&lt;br&gt;&#xA;C - Mostly this was said in conjunction with working in a certain middle eastern nation, but it applies worldwide. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-30T03:10:46.433" CommentCount="5" />
  <row Id="22428" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T03:15:03.997" Score="1" ViewCount="" Body="&lt;p&gt;It is interesting to read how so many of you get hit with a certain social stigma by introducing yourselves as programmers. I am a senior in high school and everyone knows me as that kid who programs or the hacker (I take the second one very lightly since I only got my hands on the wireless key for the school and a little mischief, by no means am I a real hacker) and I actually get a bit of interest in what I do. Combined with the robotics team I can actually say announcing that I am a programmer to someone does not put them off in the least. Perhaps my school is some strange anomaly...&lt;/p&gt;&#xA;" OwnerUserId="7007" LastActivityDate="2010-11-30T03:15:03.997" CommentCount="2" />
  <row Id="22429" PostTypeId="2" ParentId="22412" CreationDate="2010-11-30T03:28:29.717" Score="11" ViewCount="" Body="&lt;p&gt;I realize this may sound kind of cruel but working with crappy code on first job is kind of boon in that you have realistic expectation with subsequent jobs (and I say this from personal experience). Truth is, while all of us would like to work with awesome code, that doesn't happen quite often. Hence it is necessary to have a perspective about these things. More importantly dealing with such kind of code tests and hones your skills in a way that good code (or working from scratch) can not, and one that is always appreciated in the industry.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-11-30T03:28:29.717" CommentCount="1" />
  <row Id="22430" PostTypeId="2" ParentId="22416" CreationDate="2010-11-30T03:32:09.200" Score="9" ViewCount="" Body="&lt;p&gt;If you want to be good at working on embedded systems, then yes, you need to think like a EE some of the time.  That is generally when you are writing code to interface with the various peripherals (serial busses like UART, SPI, I2C or USB), 8 and 16-bit timers, clock generators, and ADCs and DACs.  &quot;Datasheets&quot; for microcontrollers often run into the hundreds of pages as they describe every bit of every register.  It helps to be able to read a schematic so you can probe a board with an oscilloscope or logic analyzer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At other times, it is just writing software.  But under tight constraints: often you won't have a formal OS or other framework, and you might have only a few KB of RAM, and maybe 64 KB of program memory.  (These limits are assuming you are programming on smaller 8 or 16-bit micros; if you are working with embedded Linux on a 32-bit processor, you won't have the same memory constraints but you will still have to deal with any custom peripheral hardware that your Linux distro doesn't provide drivers for.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a background in both EE and CS so I enjoy both sides of the coin.  I also do some web programming (mostly PHP), and desktop apps (C# and Delphi), but I've always enjoyed working on embedded projects the most.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-11-30T03:32:09.200" CommentCount="3" />
  <row Id="22431" PostTypeId="2" ParentId="22411" CreationDate="2010-11-30T03:38:06.467" Score="1" ViewCount="" Body="&lt;p&gt;I will say ISP and a to a slightly lesser extent SRP. I must clarify that it was much later after I started following these principles that I heard about SOLID. The reason SOLID is so popularis because, like Design patterns, it is summarization of good programming practices that programmers follows through intuition or experience and not an exercise in coining jargons (which I have come to believe is the major side effect of programming)&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-11-30T03:38:06.467" />
  <row Id="22432" PostTypeId="2" ParentId="22404" CreationDate="2010-11-30T03:53:40.437" Score="1" ViewCount="" Body="&lt;p&gt;I think unless we know in advance the dependency between the layers (which while not rare is not that common either) it is difficult to begin development with only focus on one layer at time. Usually I will start with business layer as ultimately this encapsulates the solution space to the problem, then after first draft I will do some UI because in initial stage UI has  more affect on the business logic than DB, once UI and business logic are in some sort of agreement I focus on Business logic and DB layer. So there is a lot of going back and forth, iteration and feedback.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-11-30T03:53:40.437" CommunityOwnedDate="2011-04-11T04:21:44.680" />
  <row Id="22433" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T03:53:47.660" Score="1" ViewCount="" Body="&lt;p&gt;I am a programmer because it chose me. I don't seek the approval of strangers about that, so their opinions (to the extent they are capable of having any) are not relevant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am a programmer, therefore I code. That is all.&lt;/p&gt;&#xA;" OwnerUserId="8767" LastActivityDate="2010-11-30T03:53:47.660" CommentCount="2" />
  <row Id="22434" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T03:58:01.047" Score="2" ViewCount="" Body="&lt;p&gt;To quote Feynman, &quot;What Do You Care What Other People Think?&quot;. The important thing is you love and enjoy programming, rest is all distraction.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastEditorUserId="8073" LastEditorDisplayName="" LastEditDate="2010-11-30T04:30:35.467" LastActivityDate="2010-11-30T04:30:35.467" CommentCount="1" />
  <row Id="22435" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T04:04:53.187" Score="2" ViewCount="" Body="&lt;p&gt;I say &quot;I bend computers to my will, Muhahahaha!&quot; at which point the only people that stay near me have a &quot;How do I remove malware from my windows PC.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, no. &lt;/p&gt;&#xA;" OwnerUserId="5983" LastEditorUserId="5983" LastEditorDisplayName="" LastEditDate="2010-11-30T06:42:32.847" LastActivityDate="2010-11-30T06:42:32.847" CommentCount="2" />
  <row Id="22436" PostTypeId="1" AcceptedAnswerId="22462" CreationDate="2010-11-30T04:05:14.247" Score="14" ViewCount="378" Body="&lt;p&gt;&lt;strong&gt;The Dispensibility Paradox&lt;/strong&gt; - I just made that name up - but I'm open to suggestions.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The single fastest way for a developer&#xA;  to gain seniority is to change his job&#xA;  regularly.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I have been told that time and again. And I think its validity stems from a problem that makes it more worthwhile for developers to leave a company than to remain in it. So here it is...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Due to his work, the developer becomes the resident expert and therefore the owner of a piece of technology in the business. Being the expert has two effects:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The fact that he is mission-critical&#xA;seduces the developer into becoming&#xA;lazy and less innovative. He only&#xA;responds to the carrot as there is&#xA;no longer any stick. &lt;/li&gt;&#xA;&lt;li&gt;Since the&#xA;developer’s manager cannot replace&#xA;the developer, the developer cannot&#xA;progress to a more senior role. At&#xA;the performance reviews, the&#xA;developer demands large increments,&#xA;but the manager can’t justify those&#xA;amounts based on value added to the&#xA;business. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;This leads to&#xA;    tension between the manager and the&#xA;    developer. Since it is easier for&#xA;    the developer to demand a higher&#xA;    increment with a new contract, the&#xA;    developer eventually leaves to&#xA;    another company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The process repeats. Because of the developer’s indispensability, the business loses a mission-critical resource; the developer loses the added value of his domain knowledge which is no longer applicable with his new employer.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;To avoid this sort of problem, we must&#xA;  make ourselves as dispensable as&#xA;  possible.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;By producing clear and well-designed products with good documentation (developed using modern technologies, patterns and practices), it should be easy to bring in replacement staff. This should have the following effects:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The developer should get more awesome as there is no safety net to go soft in – which is good for his career.&lt;/li&gt;&#xA;&lt;li&gt;The manager should be relieved that he is no longer a single point of failure in the&#xA;project plan. &lt;/li&gt;&#xA;&lt;li&gt;It should be easier for the developer to get his hands onto interesting work emerging at his company as a case can be made for moving away from his current responsibilities and bringing in    replacements.   &lt;/li&gt;&#xA;&lt;li&gt;His skill set will not become atrophied – which is good for his career. &lt;/li&gt;&#xA;&lt;li&gt;Since the developer is in a position to keep developing and adding real value to the business, he can make a real case for salary increments in his reviews. &lt;/li&gt;&#xA;&lt;li&gt;The developer might get made redundant at some point in the future – which is ok as he’ll be more awesome than he is now.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Has anybody got evidence supporting/contradicting my theory? I'm specifically interested in the big picture -you may have got made redundant, but were you a better developer going into your next job? &lt;/p&gt;&#xA;" OwnerUserId="8811" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-12-22T00:57:04.677" LastActivityDate="2010-12-22T01:25:47.053" Title="The dispensibility paradox" Tags="&lt;career&gt;" AnswerCount="9" CommentCount="6" FavoriteCount="3" />
  <row Id="22437" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T04:05:24.170" Score="2" ViewCount="" Body="&lt;p&gt;Yep! Definitely proud. I get to potentially work on systems that can do anything. I like to think of myself as an engineer, an architect, and a writer at the same time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But when it comes to social stigma, saying, &quot;I'm a programmer&quot; isn't very interesting. Nowadays, when people ask me what I do, I just pause, think for a second, and respond, &quot;Yes.&quot; When they're confused, I can then explain what I do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only trouble I have is when I'm attempting to have a normal conversation with someone and another person keeps trying to get me to talk about computers for some reason.&lt;/p&gt;&#xA;" OwnerUserId="3102" LastActivityDate="2010-11-30T04:05:24.170" />
  <row Id="22438" PostTypeId="2" ParentId="14856" CreationDate="2010-11-30T04:05:42.120" Score="4" ViewCount="" Body="&lt;p&gt;My teacher demands I start all my identifiers (not including constants) with lowercase letters, e.g. &lt;code&gt;myVariable&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know it seems like a minor thing, but many programming languages &lt;em&gt;require&lt;/em&gt; variables to start with uppercase letters.  I value consistency, so it's a habit of mine to start everything with uppercase letters.&lt;/p&gt;&#xA;" OwnerUserId="8810" LastActivityDate="2010-11-30T04:05:42.120" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="7" />
  <row Id="22439" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T04:07:57.767" Score="0" ViewCount="" Body="&lt;p&gt;I'm proud, or at least I try to be. It's not always &quot;happy fun time&quot;, but that's sometimes when it's the most rewarding.&lt;/p&gt;&#xA;" OwnerUserId="6770" LastActivityDate="2010-11-30T04:07:57.767" />
  <row Id="22440" PostTypeId="2" ParentId="22436" CreationDate="2010-11-30T04:24:15.473" Score="3" ViewCount="" Body="&lt;p&gt;uh...from the indispensible developer's point of view, there is no problem. Many times it's much easier to get a raise and more responsibility at another company than it is at the current company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;a friend of mine changed jobs every year for several years - going from Programmer to Architect in about 5 years. Had he stayed at the same company, he'd still be a programmer, and making about one-tenth the salary.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-30T04:24:15.473" CommentCount="6" />
  <row Id="22441" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T04:28:33.100" Score="0" ViewCount="" Body="&lt;p&gt;Most time-passing thing for me.&#xA;I enjoy to think algorithms for probs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before mobile programming, it was a mess to make people understand; but now, I can show them Apps in mobile also. If they don't understand that, then... I don't care. &lt;/p&gt;&#xA;" LastActivityDate="2010-11-30T04:28:33.100" />
  <row Id="22442" PostTypeId="2" ParentId="21843" CreationDate="2010-11-30T04:29:40.087" Score="-2" ViewCount="" Body="&lt;p&gt;The whole idea of cross platform UI is flawed. Windows uses very different layout, mechanisms, key presses etc etc to Mac OS X. To make a seamless experience that doesn't irritate the user, you have to make your app exactly right for that platform, taking advantage of the platform specifics used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any cross platform solution will always suffer from a &quot;least common denominator&quot; - only the very basic things the different UIs have in common can be used and that makes for a bad user experience all around. This is the same argument all-mighty-steve uses &lt;a href=&quot;http://www.apple.com/hotnews/thoughts-on-flash/&quot; rel=&quot;nofollow&quot;&gt;against flash on the iPhone&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the &lt;em&gt;irritate the user&lt;/em&gt; issue is a very fundamental &quot;soft&quot; problem, that people from a tech perspective often miss.&lt;/p&gt;&#xA;" OwnerUserId="8688" LastActivityDate="2010-11-30T04:29:40.087" />
  <row Id="22443" PostTypeId="2" ParentId="22404" CreationDate="2010-11-30T04:34:22.657" Score="2" ViewCount="" Body="&lt;p&gt;I try to figure out what it would look like to the end user first, so I guess I go &quot;top-down.&quot;  This helps to clarify exactly how the program works so I can't screw something up later on.&lt;/p&gt;&#xA;" OwnerUserId="8810" LastActivityDate="2010-11-30T04:34:22.657" CommunityOwnedDate="2011-04-11T04:21:44.680" />
  <row Id="22445" PostTypeId="2" ParentId="2846" CreationDate="2010-11-30T04:42:42.213" Score="0" ViewCount="" Body="&lt;p&gt;Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love the idea, but the &quot;no curly brackets&quot; thing just annoys me.  The philosophy behind it is that the language is easier to look at, but when I was learning LSL I found the curly brackets to be quite helpful in figuring out how program flow worked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's doing the right thing the wrong way.&lt;/p&gt;&#xA;" OwnerUserId="8810" LastActivityDate="2010-11-30T04:42:42.213" CommunityOwnedDate="2010-11-30T04:42:42.213" CommentCount="3" />
  <row Id="22446" PostTypeId="2" ParentId="22404" CreationDate="2010-11-30T05:02:34.787" Score="0" ViewCount="" Body="&lt;p&gt;Will identify the Business objects and create classes and interfaces, next will move to DB design and last will be the UI&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-11-30T05:02:34.787" CommunityOwnedDate="2011-04-11T04:21:44.680" CommentCount="2" />
  <row Id="22447" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T05:05:54.797" Score="0" ViewCount="" Body="&lt;p&gt;Yes, I am proud. After all, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;&lt;strong&gt;/*life runs on code */&lt;/strong&gt;&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although that might be the &lt;a href=&quot;http://www.myvs2010.com/Default.aspx&quot; rel=&quot;nofollow&quot;&gt;Visual Studio 2010&lt;/a&gt; tag line everything that you can do/use today &lt;strong&gt;had to be programmed at one point or the other&lt;/strong&gt;.&#xA;From cell phones to washing machines to automobiles to mp3 players to the power stations that supply and distribute electricity to whole cities to communication networks, travel and the list goes on and on and on and on...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;CODE IS JUST ABOUT EVERYWHERE YOU LOOK.&lt;/strong&gt; &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In the modern world atleast, life depends on it. Every mundane device or perceivable luxury somehow boils down to electronics and code that makes it tick.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So yes, I am &lt;strong&gt;proud to be a programmer.&lt;/strong&gt;  :)&lt;/p&gt;&#xA;" OwnerUserId="3995" LastActivityDate="2010-11-30T05:05:54.797" />
  <row Id="22449" PostTypeId="2" ParentId="22436" CreationDate="2010-11-30T05:10:01.123" Score="4" ViewCount="" Body="&lt;p&gt;I think you are assuming that if a developer is dispensable they company will be happy to give him a promotion, pay rise etc. I think this is an incorrect assumption. Even in the unlikely event they recognize the hard work, there has to be a position to be promoted into and the organisation needs to be in a position to do so with current staffing requirements. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day, the easiest way to get promoted is to get another job.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-11-30T05:10:01.123" CommentCount="1" />
  <row Id="22450" PostTypeId="2" ParentId="9614" CreationDate="2010-11-30T05:14:31.357" Score="0" ViewCount="" Body="&lt;p&gt;My perception of scripting languages is pseudo-programming languages that let you control very limited tasks, such as in a game that can be easily modded.  I'm not entirely sure if this is an accurate definition, but I think a scripter becomes a programmer when he/she learns a language that can exist on its own.&lt;/p&gt;&#xA;" OwnerUserId="8810" LastActivityDate="2010-11-30T05:14:31.357" />
  <row Id="22452" PostTypeId="2" ParentId="22436" CreationDate="2010-11-30T05:35:08.797" Score="0" ViewCount="" Body="&lt;p&gt;Make yourself dispensable by completing work and you'll be the first to be made redundant. When someone in finance decides to cut costs they ask 'who's working on what project now? We'll keep those people.'. They don't ask if that person is working on it for 3 months longer then they should have because they're incompetent.&lt;/p&gt;&#xA;" OwnerUserId="8392" LastActivityDate="2010-11-30T05:35:08.797" CommentCount="2" />
  <row Id="22453" PostTypeId="2" ParentId="22436" CreationDate="2010-11-30T05:35:17.140" Score="1" ViewCount="" Body="&lt;p&gt;It is important for the developer to have clean resume. If you have 10 jobs in five years in your resume, which employer will employ you? With such resume it is clear that whatever is given the person will not satisfied and will not stick to the company. Managers are scared of such candidates and try to avoid those. Especially product companies needs the employees which has at least stick to one company for two years. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-11-30T05:35:17.140" CommentCount="2" />
  <row Id="22454" PostTypeId="2" ParentId="2164" CreationDate="2010-11-30T05:51:45.007" Score="-1" ViewCount="" Body="&lt;p&gt;Hit them with the &quot;You should never use something you don't understand&quot; line.&lt;/p&gt;&#xA;" OwnerUserId="8810" LastActivityDate="2010-11-30T05:51:45.007" />
  <row Id="22455" PostTypeId="2" ParentId="21280" CreationDate="2010-11-30T06:04:50.587" Score="1" ViewCount="" Body="&lt;p&gt;I realize you've already accepted an answer, but here's a bunch of tid-bits I've picked up since I made the switch from windows, for you or others making the switch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For more geeky/terminal-ish stuff, install &lt;a href=&quot;http://github.com/mxcl/homebrew/wiki&quot; rel=&quot;nofollow&quot;&gt;homebrew&lt;/a&gt;.&#xA;This is a life saver for me. It works just like MacPorts or Fink, except (IMO) it does a better job. For example, to install the Boost libraries to all the right places: &lt;code&gt;brew install boost&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For general text-editing, you can't go wrong with &lt;a href=&quot;http://www.macromates.com&quot; rel=&quot;nofollow&quot;&gt;TextMate&lt;/a&gt;. When I first got my MacBook, I tried a bunch of different editors, but TextMate was worth every penny; I use it everyday for everything and haven't looked back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you spend a lot of time in your Terminal, a super-useful tool I've found is &lt;a href=&quot;http://visor.binaryage.com/&quot; rel=&quot;nofollow&quot;&gt;Visor&lt;/a&gt;, which binds a Terminal overlay window to a custom hot-key, to just pop in and out at your command.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For C++ development, I tend to either use TextMate for light-weight stuff, or I use &lt;a href=&quot;http://qt.nokia.com&quot; rel=&quot;nofollow&quot;&gt;QtCreator&lt;/a&gt; as a suitable replacement for Visual Studio. Note that although it &lt;strong&gt;strongly&lt;/strong&gt; pushes you to use the Qt framework, you don't have to, and last time I tried, it had mediocre support for Boost...&lt;/p&gt;&#xA;" OwnerUserId="8823" LastActivityDate="2010-11-30T06:04:50.587" />
  <row Id="22456" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T06:13:59.530" Score="2" ViewCount="" Body="&lt;p&gt;I'm not proud of &lt;strong&gt;being&lt;/strong&gt; a programmer, but I'm proud of what I &lt;strong&gt;accomplish&lt;/strong&gt; as a programmer. One project I worked on has made the lives of hundreds of thousands of people, maybe millions, easier and less stressful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I feel incredibly lucky to be a programmer, and am frequently amazed that people will pay me - and quite well, too - to do something I'd do just for fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can usually avoid the rolled eyes and boredom by describing my work in layman's terms. In the last few years, that's been things like &quot;work on an iPhone competitor,&quot; or &quot;work on a special computer for college students,&quot; or nowadays, &quot;write TV and movie software used by companies like NBC and Disney.&quot; Even the elderly retired folks my parents hang with can relate to that.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-11-30T06:13:59.530" />
  <row Id="22457" PostTypeId="2" ParentId="21756" CreationDate="2010-11-30T06:19:35.030" Score="2" ViewCount="" Body="&lt;p&gt;You need to align your interests with what the business values. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Geeks are often not great at considering the wider context of their work. Many products fail because developers build it using technology/methods that interest them at the time. They aren't thinking impartially about solving the problem in the best way for the business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can consistently solve problems in the best way for the business then you are on your way to becoming a &lt;em&gt;great&lt;/em&gt; developer.&lt;/p&gt;&#xA;" OwnerUserId="8811" LastActivityDate="2010-11-30T06:19:35.030" CommentCount="1" />
  <row Id="22458" PostTypeId="2" ParentId="20494" CreationDate="2010-11-30T06:22:27.397" Score="0" ViewCount="" Body="&lt;p&gt;There should be proper mixture of the two. You need to keep the scope as close as possible and at the same time make readability/understanding better. What I suggest is the temporary variables should be defined where they are needed. The variables which are important and centric to the function should be declared at the top. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-11-30T06:22:27.397" />
  <row Id="22459" PostTypeId="2" ParentId="2846" CreationDate="2010-11-30T06:30:30.030" Score="0" ViewCount="" Body="&lt;p&gt;AHK&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, I hated it before because of multiple GUI problems, but now I love AHK.&lt;/p&gt;&#xA;" OwnerUserId="8825" LastActivityDate="2010-11-30T06:30:30.030" CommunityOwnedDate="2010-11-30T06:30:30.030" />
  <row Id="22460" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T06:36:22.817" Score="0" ViewCount="" Body="&lt;p&gt;A long time ago, on a site far far away…&#xA;I’ve posted a question on the JoelOnSoftware site some time ago, and had some great comments on it.  The question I posted was; what is the difference between a Programmer and a Software Developer.  And somebody said, a programmer is the person who does the setup of on the forms and objects developed by the Software Developer.  So I don’t think that &lt;em&gt;programming&lt;/em&gt; clearly defines what I do every day.  I develop software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To get back to the question I posted on JoelOnSoftware: I’ve asked the question, because at a family gathering one of my cousins asked me what I did, and I replied that I was a programmer, and he sneered back that a friend of his was a Software Developer, and somehow managed to make me feel inferior, even though his friend and I did exactly the same thing. - probably useless info on your question...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, to answer your question, I am very proud of what I do, especially if I know I’ve done it well, it’s just that I’d rather call myself a Software Developer :)&lt;/p&gt;&#xA;" OwnerUserId="8620" LastActivityDate="2010-11-30T06:36:22.817" CommentCount="1" />
  <row Id="22462" PostTypeId="2" ParentId="22436" CreationDate="2010-11-30T06:51:45.910" Score="19" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;in·dis·pen·sa·ble&lt;br&gt;&#xA;  Adjective: Absolutely necessary or essential. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I, as a developer, am a human being.  I like being a human being.  And I think that companies benefit from me being a human being.  Human beings are unique and have individual strengths and weaknesses.  Human beings are also creative when they're not made subservient to their employer's collective hive-mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The place where you're going wrong is here:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;By producing clear and well-designed products with good documentation (developed using modern technologies, patterns and practices), it should be easy to bring in replacement staff.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This relies on developers not being human beings.  It relies on them being interchangeable cogs that can be replaced at will.  I mean if you want to be a mediocre developer, then that might be fine.  But if you make yourself dispensable, have you added any value to the company?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In theory your idea might work, but the reality is that a good developer brings things that no amount of documentation or refactoring can replace.  Otherwise, programmers wouldn't be in such high demand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I think that indispensability is a good thing.  Don't confuse &quot;can't live without&quot; with &quot;can't get rid of&quot;, because there's a difference even if only in connotation.  Make your mark on the organization, but don't throw up barriers to keep you there artificially.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-30T06:51:45.910" CommentCount="6" />
  <row Id="22463" PostTypeId="2" ParentId="2846" CreationDate="2010-11-30T07:11:38.357" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;There are no programming languages I hate&lt;/strong&gt; Just unlikely to use.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-11-30T07:11:38.357" CommunityOwnedDate="2010-11-30T07:11:38.357" />
  <row Id="22464" PostTypeId="2" ParentId="8511" CreationDate="2010-11-30T07:15:15.327" Score="2" ViewCount="" Body="&lt;blockquote&gt;&quot;we are a young bunch, will you be able to fit into our culture?&quot;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Possible answers (aside from Pierre's brilliant one):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Why not? I invented it.&lt;/li&gt;&#xA;&lt;li&gt;Sure, maybe I can help y'all to learn some manners&lt;/li&gt;&#xA;&lt;li&gt;[laughing] I don't think showing yer butt-crack qualifies as &quot;culture&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-30T07:15:15.327" />
  <row Id="22466" PostTypeId="2" ParentId="8511" CreationDate="2010-11-30T07:31:08.287" Score="1" ViewCount="" Body="&lt;p&gt;I'd show them a bunch with photographs depicting me with young girls at a party, saying &quot;look, I get along &lt;em&gt;great&lt;/em&gt; with younger people&quot;; even if I don't get the job, at least I've made them envious.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-30T07:31:08.287" />
  <row Id="22468" PostTypeId="1" CreationDate="2010-11-30T07:36:18.023" Score="2" ViewCount="131" Body="&lt;p&gt;Hi all,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;what are some data structures that should be known by somebody involved in bioinformatics? I guess that anyone is supposed to know about lists, haseshes, balanced trees etc, but I expect that there are domain specific data structures. Is there any book devoted to this subject?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&#xA;Lucian&lt;/p&gt;&#xA;" OwnerUserId="1023" LastActivityDate="2010-11-30T18:40:57.597" Title="Data structures for bioinformatics" Tags="&lt;data-types&gt;" AnswerCount="2" FavoriteCount="3" />
  <row Id="22469" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T07:47:03.287" Score="1" ViewCount="" Body="&lt;p&gt;Nope, not proud at all. And when I start to develop even the tiniest bit of pride, the only thing I need to do is to tell people what I do for a living. Their reaction invariably cures the problem. Oh well, programming isn't about pride, it's just an addiction; a healthy addiction :-)&lt;/p&gt;&#xA;" OwnerUserId="1095" LastActivityDate="2010-11-30T07:47:03.287" />
  <row Id="22470" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T07:52:31.293" Score="2" ViewCount="" Body="&lt;p&gt;Not really. Every time at social events I mumble it out of the side of my mouth and watch the ladies stare off into space and find the next rugged looking fireman who saves lives for a living.&lt;/p&gt;&#xA;" OwnerUserId="8392" LastActivityDate="2010-11-30T07:52:31.293" />
  <row Id="22471" PostTypeId="2" ParentId="22468" CreationDate="2010-11-30T08:00:42.587" Score="2" ViewCount="" Body="&lt;p&gt;If you are to do any work on large datasets you need to learn how to handle those efficiently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just think if you are going to do image analysis on a 2 Gb TIFF image.  Or sequence matching on a 150 Gb genome dataset.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you move from a &quot;nothing is slow&quot; to a &quot;this operation is fast and THIS is very, very slow but then THESE operations are fast&quot; mindset, your algorithms tend to change.  It is relatively cheap to manipulate data in memory as opposed to having to fetch them from disk all the time, and it is relatively cheap to manipulate data in the cpu cache as opposed to having to fetch them from memory all the time.  In other words, algorithms that take that in consideration will be faster resulting in faster results, more publications and fame and Nobel prizes.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-11-30T18:40:57.597" LastActivityDate="2010-11-30T18:40:57.597" />
  <row Id="22472" PostTypeId="2" ParentId="22328" CreationDate="2010-11-30T08:02:23.497" Score="0" ViewCount="" Body="&lt;p&gt;You have to put the languages you are strong in the top of the resume. The languages which you are learning or just have acquittance should be at the bottom of the resume. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-11-30T08:02:23.497" />
  <row Id="22473" PostTypeId="2" ParentId="14856" CreationDate="2010-11-30T08:17:29.407" Score="67" ViewCount="" Body="&lt;p&gt;One return per function/method.&lt;/p&gt;&#xA;" OwnerUserId="8601" LastActivityDate="2010-11-30T08:17:29.407" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="11" />
  <row Id="22474" PostTypeId="2" ParentId="22070" CreationDate="2010-11-30T08:18:57.013" Score="0" ViewCount="" Body="&lt;p&gt;&quot;Traditional&quot; control structures like &lt;code&gt;for&lt;/code&gt; are about controlling the working man, keeping him subservient to the corrupt ideologies of the ruling capitalist elite.  That's why I use alternative control structures like &lt;code&gt;ph0r&lt;/code&gt; instead.  It's like &lt;code&gt;for&lt;/code&gt;, but more radical: You won't catch &lt;code&gt;ph0r&lt;/code&gt; wearing a suit and tie, spouting some corporate BS.  &lt;code&gt;ph0r&lt;/code&gt; keeps it real, man.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fight the power!&lt;/p&gt;&#xA;" OwnerUserId="8769" LastActivityDate="2010-11-30T08:18:57.013" />
  <row Id="22475" PostTypeId="2" ParentId="22323" CreationDate="2010-11-30T08:20:59.790" Score="0" ViewCount="" Body="&lt;p&gt;I will suggest taking a course. There are more benefits to it than simply learning it yourself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) You are much more committed. (You need value for money, don't you?)&lt;br&gt;&#xA;2) Better speedup. The learning is faster.&lt;br&gt;&#xA;3) Use of practical exercise. Though you can do this on you own, the exercise given in the course are known to work and are given at right time.&lt;br&gt;&#xA;4) In all the language courses at the end you need to do some practical project. This is the best learning as only after doing some big project you get to know the actual problems.&lt;br&gt;&#xA;5) Also, any such certificate from a good academy certifies that you have actually learn the language. In an interview the interviewer will not take you seriously if you say that I have learn this on my own. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2010-11-30T13:44:40.260" LastActivityDate="2010-11-30T13:44:40.260" />
  <row Id="22476" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T08:21:25.733" Score="1" ViewCount="" Body="&lt;p&gt;While I'm proud to be a programmer, I remember a lecturer (humorously) suggesting the need for a cover job like a spy would have for use in certain social circles where where being a programmer would be a dead end in the conversation. E.g.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Them: What do you do for a living?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Me: I'm a spelunking instructor...&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4813" LastActivityDate="2010-11-30T08:21:25.733" CommentCount="1" />
  <row Id="22477" PostTypeId="2" ParentId="21756" CreationDate="2010-11-30T08:29:20.827" Score="1" ViewCount="" Body="&lt;p&gt;The ability to agree to disagree.  You will be forced to work with people who don't agree with you and never will agree with you.  This doesn't need to be a source of conflict.  In fact, it's a good thing!  Would you &lt;em&gt;really&lt;/em&gt; like working only with people who are just like you?&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-30T08:29:20.827" />
  <row Id="22478" PostTypeId="2" ParentId="22468" CreationDate="2010-11-30T08:30:49.443" Score="2" ViewCount="" Body="&lt;p&gt;I can't think of any data structures that are really unique to bioinformatics. There are a lot of algorithms that are common in bioinformatics but which you don't see too often in generic commercial programming. &lt;a href=&quot;http://en.wikipedia.org/wiki/Dynamic_programming&quot; rel=&quot;nofollow&quot;&gt;Dynamic programming&lt;/a&gt; comes up all the time for example. Note that this has nothing to do with dynamic types, rather it is an efficient technique for unrolling recursive calls.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are dozens of books on algorithms in bioinformatics. A couple of good ones I can name off the top of my head are: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0521629713&quot; rel=&quot;nofollow&quot;&gt;Biological Sequence Analysis&lt;/a&gt; and &lt;a href=&quot;http://bix.ucsd.edu/bioalgorithms/&quot; rel=&quot;nofollow&quot;&gt;An Introduction to Bioinformatics Algorithms&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-11-30T08:30:49.443" />
  <row Id="22479" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T08:31:46.087" Score="0" ViewCount="" Body="&lt;p&gt;Proud is a little egocentric word, I prefer to say lucky that I found something that doing it makes me happy. I studied something else, I found programming to be more rewarding and to allow me more creative freedom than... architecture. I am happy programming and that I found something I like.&lt;/p&gt;&#xA;" OwnerUserId="5869" LastActivityDate="2010-11-30T08:31:46.087" />
  <row Id="22480" PostTypeId="2" ParentId="22411" CreationDate="2010-11-30T08:39:47.363" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;S&lt;/strong&gt; ingle &lt;strong&gt;r&lt;/strong&gt;  esponsibility &lt;strong&gt;p&lt;/strong&gt; rinciple. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether I'm working a small utility or a large scale service, I like my components to do one thing and to do that thing well. It makes my components easy to test and promotes code reuse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The rest are important too.&lt;/p&gt;&#xA;" OwnerUserId="5380" LastActivityDate="2010-11-30T08:39:47.363" />
  <row Id="22481" PostTypeId="2" ParentId="22073" CreationDate="2010-11-30T08:57:47.327" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;The &lt;a href=&quot;http://research.microsoft.com/en-us/um/people/simonpj/papers/excel/index.htm&quot; rel=&quot;nofollow&quot;&gt;world's most popular functional language&lt;/a&gt; is Excel.&lt;/li&gt;&#xA;&lt;li&gt;People write &lt;a href=&quot;http://www.artisancoder.com/2009/10/scheme-hits-the-app-store/&quot; rel=&quot;nofollow&quot;&gt;iPhone Apps&lt;/a&gt; in &lt;a href=&quot;http://jlongster.com/blog/2010/04/05/farmageddon-available/&quot; rel=&quot;nofollow&quot;&gt;Scheme&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Google's &lt;a href=&quot;http://en.wikipedia.org/wiki/MapReduce&quot; rel=&quot;nofollow&quot;&gt;Map Reduce&lt;/a&gt; is basically functional programming&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-11-30T09:11:07.113" LastActivityDate="2010-11-30T09:11:07.113" />
  <row Id="22482" PostTypeId="2" ParentId="22411" CreationDate="2010-11-30T09:09:30.170" Score="0" ViewCount="" Body="&lt;p&gt;I would say that the largest benefit I had is from preaching SRP to other developers on my team(s). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;God objects and 10KLOC classes are a productivity killer even on a small team.&lt;/p&gt;&#xA;" OwnerUserId="6699" LastActivityDate="2010-11-30T09:09:30.170" />
  <row Id="22483" PostTypeId="2" ParentId="22412" CreationDate="2010-11-30T09:25:09.603" Score="0" ViewCount="" Body="&lt;p&gt;It happens. You could read this crap from beginning, and drop all your complaint, refactor is the correct thing you should do, and I guess you would proud of yourself when this crap become graceful&lt;/p&gt;&#xA;" OwnerUserId="8838" LastActivityDate="2010-11-30T09:25:09.603" />
  <row Id="22484" PostTypeId="2" ParentId="8511" CreationDate="2010-11-30T09:34:47.377" Score="1" ViewCount="" Body="&lt;p&gt;Challenge the person who asked the question to a game of foosball.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-11-30T09:34:47.377" />
  <row Id="22485" PostTypeId="2" ParentId="22367" CreationDate="2010-11-30T09:37:10.697" Score="0" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;public static boolean areYouProudToBeAProgrammer(){&#xA;return Boolean.TRUE;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1038" LastActivityDate="2010-11-30T09:37:10.697" />
  <row Id="22486" PostTypeId="2" ParentId="22412" CreationDate="2010-11-30T09:37:49.363" Score="1" ViewCount="" Body="&lt;p&gt;In my first job, I was in a similar situation, and I eventually quit after a few months. It's just too depressing to work with fugly code all day long, especially when you are young and ambitious.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-30T09:37:49.363" />
  <row Id="22487" PostTypeId="2" ParentId="22368" CreationDate="2010-11-30T09:42:07.973" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was asked to work on a application for a client who's main business was that of selling Alcohol.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Due to the Islamic rules on Alcohol (selling, aiding, and consuming are deemed equal).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I declined to work on this project. This was communicated with management giving the explicit reasons why I could not work on such a project and it was accepted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;We almost always have a choice, so don't deny yourself your own right because you will regret it later&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-11-30T09:42:07.973" CommentCount="1" />
  <row Id="22489" PostTypeId="2" ParentId="22368" CreationDate="2010-11-30T09:47:57.067" Score="0" ViewCount="" Body="&lt;p&gt;Yes (can't tell you the details, sorry), and I told the client that it's not technically feasible. Telling the whole truth (&quot;I don't want to do that, it's morally questionable&quot;) would have caused problems for me, so I took the easiest (arguably cowardish) way out.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-30T09:47:57.067" />
  <row Id="22492" PostTypeId="2" ParentId="20494" CreationDate="2010-11-30T09:56:42.507" Score="0" ViewCount="" Body="&lt;p&gt;I think the fact that you often see variables declared at the top of a function has some historical background. In Pascal (though I'm I may be wrong here) and old versions of C forced you to declare variables at the top of the function, so this maybe the cause why older programmers / people which started programming in Pascal are still declaring their variables at the top.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But nowadays, in most languages you have the concept of block-level scope, and you should keep variables as close to their use as possible (which also implies using for-loops in preference to while-loops).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, I remember that no other principle improved my style of coding like this one.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Minimize the scope of local&#xA;  variables&quot;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2010-11-30T09:56:42.507" />
  <row Id="22494" PostTypeId="1" AcceptedAnswerId="22508" CreationDate="2010-11-30T10:04:26.793" Score="1" ViewCount="153" Body="&lt;p&gt;Hi guys!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am currently a 2 year experienced developer/database guy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have worked on ASP.NET and now currently MS SQL 2008 + SSIS&lt;/p&gt;&#xA;&#xA;&lt;p&gt;so now I want to take a proper final decision of either switching to web development or Database.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have basic knowledge of both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;so Looking for you advices that should I choose Oracle path or should I go for advanced web development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="8845" LastActivityDate="2010-11-30T10:47:10.453" Title="Should I become DBA(Oracle) or Developer(Web/Desktop)" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;asp.net&gt;&lt;sql&gt;&lt;oracle&gt;" AnswerCount="2" />
  <row Id="22496" PostTypeId="2" ParentId="22412" CreationDate="2010-11-30T10:12:00.590" Score="1" ViewCount="" Body="&lt;p&gt;I'm reminded of Groucho Marx's quote &quot;I wouldn't want to belong to any club that would have me as a member&quot;.  Don't take this personally.  It sounds like you are really passionate about programming.  It's just that unless you got a 4.0 from MIT, had internships with Google, and found time one weekend to prove that P != NP, your first job probably won't be anything to write home about.  Some people are naturals at networking, writing resumes, and interviewing will land the perfect job no matter what.  The rest of us have probably spent most of our time writing code and need to brush up on these skills.  Until that happens, we usually have to take some jobs that are below our skill level.  I'm saying this not to say &quot;Deal with it, that's life&quot; but to point out that this is a natural part of starting a career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best advice I ever heard on this subject was Martin Fowler's.  In a situation like this, you can either change your company or you can change your company.  In other words, try to help this company improve (this is difficult and draining, but &lt;em&gt;far&lt;/em&gt; from impossible) or find another company that doesn't suck.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-11-30T10:12:00.590" />
  <row Id="22497" PostTypeId="2" ParentId="22436" CreationDate="2010-11-30T10:15:21.037" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I Disagree..&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your argument is flawed on this point:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;2.Since the developer’s manager &lt;strong&gt;cannot replace the developer&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;As developer's our super Ego's make us believe that we are &quot;In-dispensable&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is a fallacy, the reality (as based on my own evidence/experience) is that we are not &quot;In-dispensable&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All that is needed is &lt;strong&gt;source code&lt;/strong&gt;. As long as there is source code, any competent developer will be able to maintain/support any project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Case in point, I was able to resolve a bug for a mission critical complex project of which I had zero exposure. It was resolved by being &lt;strong&gt;Logical&lt;/strong&gt;, following the code step by step. Sure the original developer would have probably resolved it with minimal time, but it proves the point about &quot;In-dispensable&quot; being false.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of Course if a senior developer leaves, it will initially be highly &lt;strong&gt;disruptive&lt;/strong&gt;. However over time, other developers &lt;strong&gt;will fill&lt;/strong&gt; the void. They will get to grips with the code-base and continue the flow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the &quot;Mission-critical Resource&quot; is never lost, the flow is disrupted for a while but is eventually restored. &lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-11-30T10:15:21.037" CommentCount="3" />
  <row Id="22498" PostTypeId="1" AcceptedAnswerId="22501" CreationDate="2010-11-30T10:29:56.127" Score="9" ViewCount="407" Body="&lt;p&gt;So I've heard that it's useless for resumes but I'm not at that stage of my life yet. Is it useful for College Applications under Extracurricular Activities?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Extra: What type of online activities could I legitimately post under Extracurricular Activities? Writing modifications for existing software? Contributing to open source?&lt;/p&gt;&#xA;" OwnerUserId="8020" LastActivityDate="2011-06-02T22:38:16.907" Title="Using StackOverflow reputation for College Applications" Tags="&lt;career&gt;&lt;reputation&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="22499" PostTypeId="2" ParentId="22498" CreationDate="2010-11-30T10:32:53.580" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Your StackOverflow reputation won't write code for you.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;However, you have everything you need to modify existing open source projects. Just fork it.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-30T10:32:53.580" CommentCount="2" />
  <row Id="22500" PostTypeId="2" ParentId="22494" CreationDate="2010-11-30T10:33:17.380" Score="0" ViewCount="" Body="&lt;p&gt;Just go with the one that you feal more comfortable with , the one you like most , the one that seams easyer , the one you get most satisfaction out of ...&lt;/p&gt;&#xA;" OwnerUserId="8849" LastActivityDate="2010-11-30T10:33:17.380" />
  <row Id="22501" PostTypeId="2" ParentId="22498" CreationDate="2010-11-30T10:33:31.360" Score="14" ViewCount="" Body="&lt;p&gt;I honestly doubt colleges care.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Extra curricular activities are normally pretty marginal as an entrance criteria anyway (academic results being by far the most significant factor) and knowing about SO (or Programmers or whatever) would likely be more detail than they'd really be interested in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally whatever the activity you want to show commitment and that whatever you're doing is significant (that is not just something that was happening anyway).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good rule of thumb with these things is to read them back to yourself and think &quot;so what?&quot; afterwards taking a slightly cynical view of it.  If you can't answer that question then rewrite or lose it.  Sadly I think SO / Programmers are likely to be viewed has hanging out on the internet rather than anything more substantial.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-30T10:41:49.897" LastActivityDate="2010-11-30T10:41:49.897" CommentCount="4" />
  <row Id="22503" PostTypeId="2" ParentId="22368" CreationDate="2010-11-30T10:36:58.233" Score="3" ViewCount="" Body="&lt;p&gt;I am a game developer. Our publisher is a relatively big company, that caters to intellectually quite poor people, because 1. there are many of them and 2. you easily get them to pay for virtual value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The software I write makes a huge user base waste millions of man hours per day and exploits their psychological weakness to get them pay for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In many ways computer games are like drugs. Like legal drugs. Like alcohol for example. If your business is with alcohol (brewing, fermenting, destilling - whatever pleases you), then your choice is between selling some fancy alcopop to millions of manipulable kids, or you could start your own little brewery and produce a very nice, distinct beer some people will truly appreciate. It's the same with computer games.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I maybe wouldn't go as far as saying it is immoral. But it kind of feels wrong.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-11-30T10:36:58.233" CommentCount="2" />
  <row Id="22504" PostTypeId="1" AcceptedAnswerId="22511" CreationDate="2010-11-30T10:39:56.057" Score="13" ViewCount="484" Body="&lt;p&gt;I'm a big fan of checklists. There is &lt;a href=&quot;http://www.checklist.com/checklists/travel_checklist.html&quot; rel=&quot;nofollow&quot;&gt;Travel Checklist&lt;/a&gt;, &lt;a href=&quot;http://www.checklist.com/checklists/moving_checklist.html&quot; rel=&quot;nofollow&quot;&gt;Moving Checklist&lt;/a&gt; and even a &lt;a href=&quot;http://www.crisp.se/scrum/checklist&quot; rel=&quot;nofollow&quot;&gt;Scrum Checklist&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Context&lt;/strong&gt;: you have been hired by a large corporation and given the mission to setup the whole software development environment, processes, team, etc. You have &quot;carte blanche&quot;. You will be responsible for the creation of the working increments of the software. Project size: 2000 man/days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What items would you add to the following (intentionally small and incomplete) checklist:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Install a Continuous Integration Server&lt;/li&gt;&#xA;&lt;li&gt;Write a DoD&lt;/li&gt;&#xA;&lt;li&gt;Write a one page coding guidelines&lt;/li&gt;&#xA;&lt;li&gt;Create a product backlog&lt;/li&gt;&#xA;&lt;li&gt;Install a Bug Tracking System&lt;/li&gt;&#xA;&lt;li&gt;Schedule Regular Face Time&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-11-30T10:44:56.180" LastActivityDate="2010-12-04T09:16:38.363" Title="What would you add in this Software Development Project Checklist?" Tags="&lt;project-management&gt;&lt;development-process&gt;&lt;environment&gt;" AnswerCount="12" CommentCount="10" FavoriteCount="8" />
  <row Id="22505" PostTypeId="1" CreationDate="2010-11-30T10:45:09.380" Score="3" ViewCount="170" Body="&lt;p&gt;I've just finished a my first year of programming Java at varsity and I have a three month break.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of my development would it be better to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cover Java in more depth to acquire a more intermediate level of ability&lt;/li&gt;&#xA;&lt;li&gt;Learn a new programming language (if so which) to a similar level as my current Java ability&lt;/li&gt;&#xA;&lt;li&gt;Spend timing learning introductory discrete maths, algorithms and data structures&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm also open to any other possibilities that would be beneficial but that could be covered in about 3 months.&lt;/p&gt;&#xA;" OwnerUserId="8850" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-30T10:58:09.283" LastActivityDate="2011-02-14T11:38:54.673" ClosedDate="2011-02-14T11:45:44.087" Title="Where to after a year of java?" Tags="&lt;java&gt;&lt;computer-science&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="22506" PostTypeId="2" ParentId="22504" CreationDate="2010-11-30T10:45:45.307" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Check (and update/replace if necessary) hardware and development tools for all developers&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-30T10:45:45.307" />
  <row Id="22508" PostTypeId="2" ParentId="22494" CreationDate="2010-11-30T10:47:10.453" Score="4" ViewCount="" Body="&lt;p&gt;What are you passionate about?  Choose the one that makes you want to get up in the morning :-)&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-30T10:47:10.453" />
  <row Id="22509" PostTypeId="2" ParentId="22498" CreationDate="2010-11-30T10:49:02.417" Score="5" ViewCount="" Body="&lt;p&gt;I think SO is useful for resumes, I'd look at it in the same way I'd notice your commits to an open source project.  For College applications I doubt it counts for much, but it can't hurt.&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2010-11-30T12:16:05.880" LastActivityDate="2010-11-30T12:16:05.880" CommentCount="1" />
  <row Id="22510" PostTypeId="2" ParentId="22505" CreationDate="2010-11-30T10:52:48.387" Score="4" ViewCount="" Body="&lt;p&gt;1.) Write code and lots of it.  Either your own project or an open source project (where you can get some guidance).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2.) Learning a new language never hurts as it'll help you compare and contrast against the OO/static language that Java is.  If you think you're going to stick with Java as a core language, then learn another language on the JVM (Groovy, Scala, Clojure, Fantom, JRuby whatever).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3.) Learning discrete mathematics and data structures etc is infinitely more difficult by yourself.  It's really valuable for your overall career but I'd at least sign up to a course or get a tutor of some sort (YMMV).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HTH!&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-30T10:52:48.387" />
  <row Id="22511" PostTypeId="2" ParentId="22504" CreationDate="2010-11-30T10:56:55.947" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;* 1.)  Talk to the developers to see what they really need! *&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2.)  Investigate a solution for bringing up multiple environments really rapidly (think public or private cloud instances or old fashioned virtual machines if you'e not buzzword compliant)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3.)  Source/version control&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4.)  Code review system (Crucbile/Fisheye as an example)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5.)  Kanban wall (or something similar)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;6.)  Communication protocols (real time chat is a big plus), wikis also encourage collaboration.  This also covers public relations internally - how are you going to engage with your business owners, tech support staff and other groups?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;7.)  Electronic whiteboards&lt;/p&gt;&#xA;&#xA;&lt;p&gt;8.)  Comfortable environment for developers (couches, tables, chillout areas, good WiFi etc)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;9.)  Great coffee!!!&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2010-12-03T15:22:55.147" LastActivityDate="2010-12-03T15:22:55.147" CommentCount="5" />
  <row Id="22512" PostTypeId="2" ParentId="22505" CreationDate="2010-11-30T10:57:31.203" Score="3" ViewCount="" Body="&lt;p&gt;There's no right or wrong here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I'm a fan of people when they're starting out getting in depth knowledge as soon as possible.  I don't think you really get to grips with a programming language until you've used it in anger for a couple of years and I think this is especially true of the first one as you're also learning about all the general issues that come with developing at something more than a superficial level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But there's a lot to be said for a good breadth of knowledge too so I'd go with whatever is more appealing to you as that's likely to be what you'll get more out of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another option might be continue with Java but take a different path within that.  If you've done lots of core java why not pick up something like Grails which will allow you to build on that but expose you to new ideas too?  Given that 3 months isn't that much time this might be a decent balance between the two options.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-30T10:57:31.203" />
  <row Id="22513" PostTypeId="2" ParentId="22323" CreationDate="2010-11-30T11:02:51.680" Score="1" ViewCount="" Body="&lt;p&gt;My experience is the less you know the better courses are.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Advanced level programmers tend to get relatively little out of them as they find the pace too slow but they're a pretty good way to jump start things for a novice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Based on this I think your friend is probably better with a course, at least to start with.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-30T11:02:51.680" />
  <row Id="22514" PostTypeId="2" ParentId="22340" CreationDate="2010-11-30T11:03:05.113" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;3D Engine:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How about you attempt to create a 3d Engine in Excel?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know this is possible &lt;strong&gt;DON'T&lt;/strong&gt; Google the solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Hint:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Treat each cell as a Pixel.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-11-30T11:03:05.113" />
  <row Id="22515" PostTypeId="2" ParentId="22368" CreationDate="2010-11-30T11:04:08.277" Score="1" ViewCount="" Body="&lt;p&gt;Whoever was involved in programming the &lt;a href=&quot;http://www.foxnews.com/scitech/2010/11/26/secret-agent-crippled-irans-nuclear-ambitions/&quot; rel=&quot;nofollow&quot;&gt;Cyber Missile&lt;/a&gt; that slowed Iran's nuclear program down must have asked hundreds or thousands of programmers to do something &quot;Morally Questionable&quot;. I think that beats anything we might have :P&lt;/p&gt;&#xA;" OwnerUserId="3382" LastActivityDate="2010-11-30T11:04:08.277" CommentCount="1" />
  <row Id="22516" PostTypeId="1" AcceptedAnswerId="29379" CreationDate="2010-11-30T11:04:10.963" Score="14" ViewCount="589" Body="&lt;p&gt;I know this is a very very basic question. For some software applications there are a large almost infinitely high number of test cases for an application. It is not practical to test all those test cases. How do we decide when to stop testing? (other than &quot;when money runs out&quot;). &lt;/p&gt;&#xA;" OwnerUserId="6610" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2010-11-30T12:49:43.143" LastActivityDate="2010-12-23T05:30:43.730" Title="How To Know When To Stop Testing?" Tags="&lt;development-process&gt;&lt;testing&gt;&lt;software-development&gt;" AnswerCount="13" CommentCount="1" FavoriteCount="1" />
  <row Id="22518" PostTypeId="2" ParentId="22516" CreationDate="2010-11-30T11:19:28.443" Score="1" ViewCount="" Body="&lt;p&gt;When the date of shipping has arrived. There is no end to testing for a software. But then again there is something known as schedule. You will have to test most of your functionality in the scheduled time and fix the bugs that you encounter. There is no way you can guarantee that the software is perfect. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-11-30T11:19:28.443" CommentCount="4" />
  <row Id="22519" PostTypeId="2" ParentId="22516" CreationDate="2010-11-30T11:21:01.533" Score="11" ViewCount="" Body="&lt;p&gt;The simple answer is it depends on the system.  If you're writing embedded software for a heart monitor or safety monitoring tools for a nuclear reactor then the standard is far higher than if you're writing a blogging platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is really a question for a good system tester (and I'm not one) but I'll give it a shot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your basic measure is going to be test coverage: How much of the application has actually been tested (both by unit test and functionally).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to assess each potential use case (and parameters for that use case) for likelihood of it actually being used (so you may drop edge cases), complexity (simpler things being less likely to contain bugs, or rather less likely to contain hard to find bugs), cost to test (in terms of time) and potential impact of a defect if discovered in that area (this is where the nuclear reactor vs. blogging platform comes in).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Based on that assessment you need to work out which of those are going to be tested and in how much detail.  Once you have a list like that the team (including a product manager / project manager / user representative) can go through that list and prioritise based on the constraints you have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One useful technique to think about is that you may also vary the use cases that are tested with each release.  For instance you might have a list of non-critical test cases and test half of them with one release and half with the next (then alternate).  This way you're increasing the total test coverage you get for the effort (though at the risk of regression bugs being introduced).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This could also extend to platform testing - if you support two database back ends (or multiple browsers) test half the app on one, the other half on the other and then swap next release.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I think this is referred to as striping but don't quote me on that.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then the final thing to think about is not what you test but what you actually fix when issues are discovered.  It's common to say &quot;fix all bugs&quot; but the reality is that there are time pressures and not all bugs are equal.  Again, regular bug scrubs with all the relevant parties are the best way forward.  This is particularly relevant where a bug fix may be particularly intrusive as the additional work in retesting and regression testing it generates may outweigh the benefit of the fix.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-30T11:29:34.127" LastActivityDate="2010-11-30T11:29:34.127" />
  <row Id="22520" PostTypeId="2" ParentId="22516" CreationDate="2010-11-30T11:21:56.587" Score="2" ViewCount="" Body="&lt;p&gt;If you wait till the project finishes, you'll indeed have a very large numbers of test cases. If you deliver continously, focusing on small deliveries, you'll have less test cases at each iteration and you'll be able to test everything. If you can't do small deliveries, then prioritize and start testing from the greatest priority and go testing untill you have to stop.&lt;/p&gt;&#xA;" OwnerUserId="1124" LastActivityDate="2010-11-30T11:21:56.587" CommentCount="1" />
  <row Id="22521" PostTypeId="2" ParentId="22516" CreationDate="2010-11-30T11:26:27.800" Score="6" ViewCount="" Body="&lt;p&gt;When the risk associated with the software's use has been reduced to an acceptable level.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-11-30T11:26:27.800" CommentCount="5" />
  <row Id="22523" PostTypeId="2" ParentId="7652" CreationDate="2010-11-30T11:40:18.607" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If you see this:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It could be &lt;a href=&quot;http://en.wikipedia.org/wiki/Whitespace_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Whitespace&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-11-30T11:40:18.607" CommunityOwnedDate="2011-03-20T14:02:27.677" CommentCount="2" />
  <row Id="22524" PostTypeId="2" ParentId="22498" CreationDate="2010-11-30T12:06:35.940" Score="3" ViewCount="" Body="&lt;p&gt;Extra curricular activities should generally not be doing whatever it is you are asking to go and learn for four years. Instead you want to show that you're well rounded and a balanced person, plus that you have astonishing time management skills. So starring in the local little theatre productions, or volunteering somewhere, or teaching martial arts, or holding some certificate in music or dance - these would all impress if you were going into programming. You want the person reading it to think &quot;wow, all the time it must take to do that and still earning these marks!&quot; and thus put you higher in the pile than the person with the same marks but no activities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being active on SO should raise your marks and your motivation to learn your material in school. I recommend it highly. But if I was reading your application it wouldn't move you up the pile. And whoever told you it was useless for resumes doesn't hire people. I do :-).&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-11-30T12:06:35.940" />
  <row Id="22525" PostTypeId="1" AcceptedAnswerId="23180" CreationDate="2010-11-30T12:12:52.513" Score="12" ViewCount="728" Body="&lt;p&gt;For years I have considered digging into what I consider &quot;low level&quot; languages. For me this means C and assembly. However I had no time for this yet, nor has it EVER been neccessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now because I don't see any neccessity arising, I feel like I should either just schedule some point in time when I will study the subject or drop the plan forever.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;My Position&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;For the past 4 years I have focused on &quot;web technologies&quot;, which may change, and I am an application developer, which is unlikely to change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In application development, I think usability is the most important thing. You write applications to be &quot;consumed&quot; by users. The more usable those applications are, the more value you have produced.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In order to achieve good usability, I believe the following things are viable&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Good design&lt;/strong&gt;: Well-thought-out features accessible through a well-thought-out user interface.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Correctness&lt;/strong&gt;: The best design isn't worth anything, if not implemented correctly.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Flexibility&lt;/strong&gt;: An application A should constantly evolve, so that its users need not switch to a different application B, that has new features, that A could implement. Applications addressing the same problem should not differ in features but in philosophy.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Performance&lt;/strong&gt;: Performance contributes to a good user experience. An application is ideally always responsive and performs its tasks reasonably fast (based on their frequency). The value of performance optimization beyond the point where it is noticeable by the user is questionable.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think low level programming is not going to help me with that, except for performance. But writing a whole app in a low level language for the sake of performance is premature optimization to me.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;My Question&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;What could low level programming teach me, what other languages wouldn't teach me? Am I missing something, or is it just a skill, that is of very little use for application development? Please understand, that I am not questioning the value of C and assembly. It's just that in my everyday life, I am quite happy that all the intricacies of that world are abstracted away and managed for me (mostly by layers written in C/C++ and assembly themselves). I just don't see any concepts, that could be new to me, only details I would have to stuff my head with. So what's in it for me?&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;My Conclusion&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Thanks to everyone for their answers. I must say, nobody really surprised me, but at least now I am quite sure I will drop this area of interest until any need for it arises.&lt;br&gt;&#xA;To my understanding, writing assembly these days for processors as they are in use in today's CPUs is not only unneccesarily complicated, but risks to result in poorer runtime performance than a C counterpart. Optimizing by hand is nearly impossible due to OOE, while you do not get all kinds of optimizations a compiler can do automatically. Also, the code is either portable, because it uses a small subset of available commands, or it is optimized, but then it probably works on one architecture only.&lt;br&gt;&#xA;Writing C is not nearly as neccessary anymore, as it was in the past. If I were to write an application in C, I would just as much use tested and established libraries and frameworks, that would spare me implementing string copy routines, sorting algorithms and other kind of stuff serving as exercise at university. My own code would execute faster at the cost of type safety. I am neither keen on reeinventing the wheel in the course of normal app development, nor trying to debug by looking at core dumps :D&lt;br&gt;&#xA;I am currently experimenting with languages and interpreters, so if there is anything I would like to publish, I suppose I'd port a working concept to C, although C++ might just as well do the trick.&lt;br&gt;&#xA;Again, thanks to everyone for your answers and your insight.&lt;/p&gt;&#xA;" OwnerUserId="667" LastEditorUserId="667" LastEditorDisplayName="" LastEditDate="2010-12-16T16:35:19.567" LastActivityDate="2010-12-16T16:35:19.567" Title="Low level programming - what's in it for me?" Tags="&lt;education&gt;&lt;c&gt;&lt;assembly&gt;&lt;low-level&gt;" AnswerCount="10" CommentCount="2" FavoriteCount="4" />
  <row Id="22526" PostTypeId="1" CreationDate="2010-11-30T12:15:12.133" Score="1" ViewCount="389" Body="&lt;p&gt;I'm used to program with Python and GTK using pygtk library.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel like my programs are not well separated according to MVC model.&#xA;I think following a framework it would help me to design better desktop&#xA;applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to know which Python MVC framework for desktop apps you're using and&#xA;why.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Murilo&lt;/p&gt;&#xA;" OwnerUserId="8853" LastActivityDate="2010-11-30T15:58:51.543" Title="Python MVC framework for desktop applications" Tags="&lt;python&gt;&lt;frameworks&gt;&lt;mvc&gt;&lt;desktop&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="22527" PostTypeId="2" ParentId="22094" CreationDate="2010-11-30T12:19:05.480" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Code&lt;/em&gt; by Charles Petzold. It talks you through how PCs and code works at an extremely low level (bits and bytes!) in an extremely clear, well written way. Genuinely a pleasure to read and doesn't require you to be anywhere near a PC. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might well be a bit too basic for you, but anyone who is wanting a refresher on what's generally going on at the hardware level could do a lot lot worse. I found that knowing exactly what was happening at the microprocessor level helped my programming no end, particularly in learning new languages. As I had the most basic concepts down, it was simple to build back up to what help files etc were talking about.&lt;/p&gt;&#xA;" OwnerUserId="8796" LastActivityDate="2010-11-30T12:19:05.480" />
  <row Id="22528" PostTypeId="1" AcceptedAnswerId="22534" CreationDate="2010-11-30T12:22:36.867" Score="9" ViewCount="222" Body="&lt;p&gt;Sometimes I come across these message-hub-style APIs, for example the Cocoa NSNotificationCenter: &lt;a href=&quot;http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.html&quot; rel=&quot;nofollow&quot;&gt;http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually these APIs provide a global access point on which you subscribe to or broadcast messages/events. I'm thinking this is a problem because it encourages a flat and unstructured program architecture, where dependencies are not explicit in the API, but hidden in the source code. You are not forced to think about object ownership and hierarchies, but can rather make any object in your program result in any code anywhere being called. But maybe this is a good thing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does this pattern generally encourage good or bad program design, and why so? Does it make the code harder or easier to test?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Forgive me if this question is too vague or broad. I'm trying to wrap my head around the potential consequences of extensive use of an API like this, and the different ways you could use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: I guess my biggest issue with this pattern is that the API &quot;lies&quot; about dependencies and object couplings, and can be illustrated with this example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;myObj = new Foo();&#xA;myOtherObj = new Bar();&#xA;print myOtherObj.someValue; // prints 0&#xA;myObj.doSomething();&#xA;print myOtherObj.someValue; // prints 1, unexpectedly, because I never indicated that these objects had anything to do with each other&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="8854" LastEditorUserId="8854" LastEditorDisplayName="" LastEditDate="2010-11-30T13:16:59.293" LastActivityDate="2010-11-30T18:30:18.667" Title="Does “notification center” pattern encourage good or bad program design?" Tags="&lt;design&gt;&lt;testing&gt;&lt;architecture&gt;&lt;singleton&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="22529" PostTypeId="2" ParentId="22525" CreationDate="2010-11-30T12:25:32.403" Score="6" ViewCount="" Body="&lt;p&gt;If you don't do it just for fun, because geeks really love to have full control over their hardware, you might at least get a better feeling how much faster a program can become when written in C instead of, say, Java. You might also learn to really appreciate the features of higher-level languages, like garbage collection.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-30T12:25:32.403" CommentCount="5" />
  <row Id="22530" PostTypeId="2" ParentId="22525" CreationDate="2010-11-30T12:32:30.243" Score="12" ViewCount="" Body="&lt;p&gt;I was just thinking this recently. I'd currently consider myself as a C# developer - which is perfectly fine for my career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, every so often I miss out on the really low level things (essentially 'getting my hands dirty' by doing assembler or device drivers in C). I just miss the programming. I don't expect that to help me in my career massively. If device drivers or embedded systems are your thing, then it could help a lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The more I program in the abstracted languages, the more I miss what got me into computers in the first place: poking around the computer and seeing what twitches. Assembler and C are very much suited for poking :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By using the older languages, I think you're forced to do pretty much everything yourself. In C# I can do something like &lt;code&gt;myArray.SortBy(x=&amp;gt;x.Name)&lt;/code&gt;. No way I'd be able to do that in C. I'm accepting that the language will do the best sorting for me. If I was to do it in C, I'd be able to go back to the days of my university modules and revise my different sort and search algorithms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I think the lower level languages would help you to revise any of the long forgotten bits that have all being abstracted away. More of a personal challenge than a career progressing one.&lt;/p&gt;&#xA;" OwnerUserId="4006" LastEditorUserId="4006" LastEditorDisplayName="" LastEditDate="2010-11-30T12:42:11.667" LastActivityDate="2010-11-30T12:42:11.667" CommentCount="2" />
  <row Id="22531" PostTypeId="2" ParentId="22525" CreationDate="2010-11-30T12:33:29.243" Score="2" ViewCount="" Body="&lt;p&gt;I would say there is not much reason in your domain, however if you was to do high performance computing (eg Gaming, Science, etc) thing it would be justified.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-11-30T12:33:29.243" CommentCount="2" />
  <row Id="22532" PostTypeId="2" ParentId="22528" CreationDate="2010-11-30T12:39:02.130" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Asynchronous messaging is a good architectural principal for large systems that must scale&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Java equivalent of this is JMS and generally considered to be a &lt;a href=&quot;http://stackoverflow.com/questions/4107641/should-we-use-jms/4107667#4107667&quot;&gt;good thing&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is because it promotes decoupling of your client code from the code that actually services the message. Client code merely has to know where to post their message. Service code merely has to know where to pick up messages. Client and service know nothing of each other and therefore can change independently of each other as required. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can easily externalise the URI of the message hub to make it configurable and not embedded in the source code. &lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-30T12:39:02.130" />
  <row Id="22533" PostTypeId="2" ParentId="22528" CreationDate="2010-11-30T12:44:22.533" Score="3" ViewCount="" Body="&lt;p&gt;This is a typical Oberserver Pattern implementation (or sometimes called a Listener pattern or sometimes called Subscriber/Publisher pattern).  In applications where this is behavior useful it's a good pattern to implement.  No pattern should be implemented if it adds no value to the solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From your question, it sounds as if you are concerned that everything knows about the NotificationCenter and that global things are BAD.  Sometimes, yes, global things are bad.  But let's look at the alternative.  Let's say you have 2 components, for this example it doesn't really matter what they do or what they are.  Component1 has some data that was acted upon or changed in some way.  Component2 would like to know about any changes to data of the type that Compoent1 manages.  Should Component2 know about the existence of Component1?  Or would it be better for Component2 subscribe/listen for a message that tells it that some component somewhere in the app changed some data that it is interested in?  Now take this example and multiply it by dozens or more components and you can see where the value of the pattern lies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it a perfect solution for every situation, no.  Does it abstract communication in between components and provide a more loose coupling, yes.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-11-30T12:44:22.533" CommentCount="1" />
  <row Id="22534" PostTypeId="2" ParentId="22528" CreationDate="2010-11-30T13:01:14.887" Score="3" ViewCount="" Body="&lt;p&gt;I wouldn't go as far as saying it encourages bad programming. But it can easily be misused.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well what is the actual idea?&lt;br&gt;&#xA;The source of the notification only makes its notification. It doesn't make an assumption about the existence of potential observers or anything. An observer registers for notifications it is designed to handle. The observer doesn't make any assumptions about how many potential sources there are for the notifications it may handle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a way to achieve dependency injection, without ever having sources know observers or observers know sources. However for the whole system to work, you need to wire up the right observers for the right notifications, and this system is even vulnerable to typos, because it cannot be compile time checked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest danger of course is, that someone will use this to make tons of objects globally available for 1-1 calls.&lt;/p&gt;&#xA;" OwnerUserId="667" LastEditorUserId="667" LastEditorDisplayName="" LastEditDate="2010-11-30T13:45:28.340" LastActivityDate="2010-11-30T13:45:28.340" />
  <row Id="22535" PostTypeId="2" ParentId="22516" CreationDate="2010-11-30T13:25:06.480" Score="1" ViewCount="" Body="&lt;p&gt;Never, I think you will never finish testing in a system.. there are sooo many variables you can't manage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, as we know, you can not test &quot;for ever&quot;, so i think the limit deppendes basically on:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When the risk associated with the software's use has been reduced to an acceptable level. (as @Graham Lee says)&lt;/li&gt;&#xA;&lt;li&gt;Who is the system user? it can be you or the president of united states. In the first case you don't care a lot if a bug appears because you solve it and its done. In the second case you don't want ANY bug to appear.&lt;/li&gt;&#xA;&lt;li&gt;What's your relationship with your client? Maybe the client its your dad, so it is not so terrible, or maybe it is a big company.&lt;/li&gt;&#xA;&lt;li&gt;How serious is for the system users a bug? Will it cause the third world war or just an uggly message?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7498" LastActivityDate="2010-11-30T13:25:06.480" />
  <row Id="22536" PostTypeId="2" ParentId="22516" CreationDate="2010-11-30T13:34:03.273" Score="2" ViewCount="" Body="&lt;p&gt;If you're talking about unit testing and you're doing TDD (writing the tests first) then this is a non-issue: you just stop testing when the features are done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In incremental TDD, you write a test that fails, then implement the smallest amount of code that can make it pass, then refactor. Keep adding tests in this manner until the method is feature complete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blog.extracheese.org/2009/11/how_i_started_tdd.html&quot; rel=&quot;nofollow&quot;&gt;Here's&lt;/a&gt; a great example.&lt;/p&gt;&#xA;" OwnerUserId="7610" LastActivityDate="2010-11-30T13:34:03.273" />
  <row Id="22537" PostTypeId="2" ParentId="22436" CreationDate="2010-11-30T13:41:59.000" Score="2" ViewCount="" Body="&lt;p&gt;I also think being the &lt;strong&gt;owner&lt;/strong&gt; of the system is bad for everyone, including the developer that becomes the slave of his own output.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I agree that a great programmer produces output that doesn't require him for maintenance and improvement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are &lt;strong&gt;dispensable&lt;/strong&gt; to the project but they become &lt;strong&gt;indispensable&lt;/strong&gt; to the company because of their ability to create such projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No organization will fire such great developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's the same in small businesses. If you are indispensable in the business you created, you are the slave of your own business.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="1842" LastEditorDisplayName="" LastEditDate="2010-11-30T14:35:43.513" LastActivityDate="2010-11-30T14:35:43.513" />
  <row Id="22538" PostTypeId="2" ParentId="22516" CreationDate="2010-11-30T13:45:50.113" Score="1" ViewCount="" Body="&lt;p&gt;The first things to test would be the &quot;happy path&quot;, edge cases, and invalid inputs. If there will be more than one concurrent user, you'll need to test for concurrency issues like locking and race conditions. If the app uses external resources, you'll need to test how the app behaves when those resources are unavailable. After that, you can use the code to look for things that might cause it to break and test for those. When all of those tests pass, the cost/benefit ratio of further testing starts to go up, so it's reasonable to stop at that point.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-11-30T13:45:50.113" />
  <row Id="22539" PostTypeId="2" ParentId="22516" CreationDate="2010-11-30T13:48:38.707" Score="1" ViewCount="" Body="&lt;p&gt;It all boils down to a matter of confidence. Do you feel confident that the system is tested enough? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, &quot;confidence level&quot; is highly subjective since you can never feel completely certain, but certain enough -- and that is what we are looking for. For that, you need to create a list of indicators, commonly known as &lt;a href=&quot;http://www.scrumalliance.org/articles/106-definition-of-done-a-reference&quot; rel=&quot;nofollow&quot;&gt;definition of done&lt;/a&gt; and should be something your whole team agrees upon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are a few test related &quot;Done-indicators&quot;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is your build and installation completely automated and all tests (unit, gui, integration) executed automatically?&lt;/li&gt;&#xA;&lt;li&gt;Do you write your tests while (or preferably before) writing the code, rather than after?&lt;/li&gt;&#xA;&lt;li&gt;Do you feel safe enough to make large code refactoring without introducing bugs?&lt;/li&gt;&#xA;&lt;li&gt;Is your code coverage level high enough?&lt;/li&gt;&#xA;&lt;li&gt;Do you have a dedicated tester in your team? Is he/she involved daily throughout the whole development and not just at the end?&lt;/li&gt;&#xA;&lt;li&gt;Has your tester manually (exploratory) tried to break it without success?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you can check these points, then you probably can say you have tested enough.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-11-30T14:11:22.323" LastActivityDate="2010-11-30T14:11:22.323" />
  <row Id="22540" PostTypeId="2" ParentId="21280" CreationDate="2010-11-30T13:56:22.553" Score="0" ViewCount="" Body="&lt;p&gt;Besides the things that have been covered, I'd like to add an answer to recount my own experience. By in large, Google is still the most useful tool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Navigation&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;kbd&gt;Space&lt;/kbd&gt; to page down and &lt;kbd&gt;Shift&lt;/kbd&gt; + &lt;kbd&gt;Space&lt;/kbd&gt; to page up.&lt;/li&gt;&#xA;&lt;li&gt;Use two fingers on the touchpad to scroll the screen.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Browser&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On Windows and Linux, you can press &lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;D&lt;/kbd&gt; to focus on the location box, but on OS X, you need to press &lt;kbd&gt;Command&lt;/kbd&gt;+&lt;kbd&gt;L&lt;/kbd&gt;. I'm still getting used to this.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-11-30T13:56:22.553" />
  <row Id="22541" PostTypeId="1" AcceptedAnswerId="29257" CreationDate="2010-11-30T13:57:03.873" Score="5" ViewCount="1744" Body="&lt;p&gt;I think I'm not totally wrong when thinking that C++0x (or C++1x) is still C++, just better, with functionnalities coming from boost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't stop thinking that computer sciences, even with all that has been made so far, have to evolve again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't really like D since it just try to be some sort of &quot;what C++ should have been&quot;, and Go seems to be too sophisticated when I dig a little into it, especially after watching some presentation video like this one &lt;a href=&quot;http://www.youtube.com/watch?v=rKnDgT73v8s&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=rKnDgT73v8s&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first thing that come into my mind is a new kind of syntax to directly handle specific datatypes and containers such as map, vectors, queues...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What kind of things are researchers thinking about ? What are the real features that could make C++ better or a new C-like language could invent ? Does Go features such things ? Would there be a new kind of syntax that would &quot;unbloat&quot; C++ while keeping its advantages ? Could C++ have some of the interesting stuff of languages such as C# and ObjC ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&#xA;Please consider that I'm talking about a system language, not a VM/CLI/bytecode thing.&lt;/p&gt;&#xA;" OwnerUserId="5024" LastEditorUserId="5024" LastEditorDisplayName="" LastEditDate="2010-11-30T16:30:22.960" LastActivityDate="2011-02-28T04:17:39.383" ClosedDate="2010-12-24T13:05:13.340" Title="What kind of language will replace C++ as C++ replaced C ?" Tags="&lt;c#&gt;&lt;c++&gt;&lt;c&gt;&lt;c++1x&gt;" AnswerCount="8" CommentCount="16" />
  <row Id="22542" PostTypeId="1" CreationDate="2010-11-30T13:57:09.340" Score="2" ViewCount="189" Body="&lt;p&gt;I want to know in which applications/programming domain are most suitable for Smalltalk. Could anyone please provide me some useful links that could answer my query?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Through googling I learned that some companies use it for:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;logistics and foreign trade application&#xA;desktop, server and script development&#xA;data processing and logistics, scripts and presentations&#xA;but I cant find documents/research papers that can tell me which programming domain Smalltalk-80 (or Smalltalk) is best suited.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of the programming domains are: - Artificial intelligence reasoning - General purpose applications - Financial time series analysis - Natural language processing - Relational database querying - Application scripting - Internet - Symbolic mathematics - Numerical mathematics - Statistical applications - Text processing - Matrix algorithms&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope you guys can help me. I am doing this for my case study. Thanks in advance.&lt;/p&gt;&#xA;" OwnerUserId="8855" LastActivityDate="2010-12-10T13:44:08.017" Title="Where is Smalltalk-80 best used?" Tags="&lt;smalltalk&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="1" />
  <row Id="22543" PostTypeId="2" ParentId="22542" CreationDate="2010-11-30T14:05:50.613" Score="1" ViewCount="" Body="&lt;p&gt;I have the impression it's nowadays mostly used for &lt;a href=&quot;http://www.seaside.st/&quot; rel=&quot;nofollow&quot;&gt;Seaside&lt;/a&gt;-projects. Some rare counter-examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://impara.de/projekt_plopp_engl.html&quot; rel=&quot;nofollow&quot;&gt;http://impara.de/projekt_plopp_engl.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.huv.com/uSeeker/smalltalk/simulator.html&quot; rel=&quot;nofollow&quot;&gt;http://www.huv.com/uSeeker/smalltalk/simulator.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.maxscheduler.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.maxscheduler.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.minidata.ca/&quot; rel=&quot;nofollow&quot;&gt;http://www.minidata.ca/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.pharo-project.org/about/success-stories&quot; rel=&quot;nofollow&quot;&gt;http://www.pharo-project.org/about/success-stories&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In general it should be usable in any context where you find dynamically typed OO-programming languages.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-11-30T14:05:50.613" />
  <row Id="22544" PostTypeId="2" ParentId="22541" CreationDate="2010-11-30T14:08:57.567" Score="55" ViewCount="" Body="&lt;p&gt;C++ never replaced C, although it managed to convert a respectable amount of C programmers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the same way, nothing will replace C++, although other languages might convert respectable amounts of C++ programmers. I think Java and C# did just that. &lt;/p&gt;&#xA;" OwnerUserId="1512" LastActivityDate="2010-11-30T14:08:57.567" CommentCount="10" />
  <row Id="22545" PostTypeId="2" ParentId="22541" CreationDate="2010-11-30T14:13:02.900" Score="14" ViewCount="" Body="&lt;p&gt;Your assumption is flawed. New languages never completely replace older languages, they just take over some part.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the beginning, there was just Assembler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Later, C (and other languages) were used for higher level jobs, but some software is still written in Assembler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Later, C++ (and other languages) were used for higher level jobs, but some software is still written in C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Later, Java (and other languages) were used for higher level jobs, but some software is still written in C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Later, Groovy (and other languages) were used for higher level jobs, but some software is still written in Java.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-30T14:13:02.900" CommentCount="15" />
  <row Id="22546" PostTypeId="2" ParentId="22541" CreationDate="2010-11-30T14:13:15.863" Score="10" ViewCount="" Body="&lt;p&gt;C is a language purposedly designed to be low-level and close to the hardware (because it was created to make Unix portable across processors).  This also meant that the language traditionally did not help much - you had to do everything yourself.  The niche that C was created for very much still exists, but for larger programs it has been found that it is pretty hard to write bug-free programs of a non-trivial size.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ tried to graft a lot of stuff on top of it, which turned out to be rather hard to do right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java and C# has fixed the worst parts of it, while maintaining the familiar syntax, but with two rather different philosophies.  Other programs drop the C inheritage which means that they will never be able to &lt;em&gt;replace&lt;/em&gt; C, but might well complement them.   The thing to realize is that computers these days are so smart, that there is a lot of tedious work best left to them.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the answer is, no language will succeede C as no language has been designed that is better suited for writing portable assembler code.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-11-30T14:13:15.863" CommentCount="6" />
  <row Id="22547" PostTypeId="2" ParentId="22323" CreationDate="2010-11-30T14:22:49.230" Score="0" ViewCount="" Body="&lt;p&gt;It is best to master where providence has found you.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-11-30T14:22:49.230" CommentCount="2" />
  <row Id="22548" PostTypeId="2" ParentId="22516" CreationDate="2010-11-30T14:23:00.803" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&quot;Program testing can be used to show the presence of bugs, but never to show their absence!&quot;&lt;/em&gt; --Edsger Dijkstra&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something good to keep in mind when doing any testing, automated or otherwise.  You can only prove that you haven't found any more bugs, not that there aren't any more.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the more eyes you put on a section of code, the more confident you can be of its proper operation.  Its a lot like Knuth's quote on optimization in that regard: you can test the wrong stuff very easily, and you can test at the wrong times in your development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially, you want to be covered in two big places: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Does the software pass the BDD tests that demonstrate it meets the specified requirements.  The software can't even be called done if this isn't true.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do the most critical, complex, and unsure segments have adequate tests to provide confidence?  If it's a core loop, or something you had to optimize or hack at: put a test on it.  If it's complicated and has a lot of logical splits: put a lot of tests on it.  If you can't unit test it, or it is embedded too deep to practically test directly: ensure the code has been reviewed, and the code indirectly tested by hand.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-11-30T14:23:00.803" />
  <row Id="22549" PostTypeId="1" CreationDate="2010-11-30T14:23:44.953" Score="1" ViewCount="134" Body="&lt;p&gt;I am royally confused about the certifications Microsoft has out for SQL server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From what I can gather from reading their site as well as others is there are various levels of tests (like in university) they have level 100 series tests, 200, 300... up to about 400 for the new master of SQL Server level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wanted to knock a few out since I am doing daily SQL work now I figure I can get on the job practice and learning where I fall short.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where do I start? What test and test details do I need to know to take and pass each exam? what order should I take them in?&lt;/p&gt;&#xA;" OwnerUserId="6507" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-11-30T21:56:17.027" LastActivityDate="2010-11-30T21:56:17.027" Title="Understanding Microsoft SQL certifications" Tags="&lt;sql&gt;&lt;certification&gt;&lt;sql-server&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="22550" PostTypeId="2" ParentId="15813" CreationDate="2010-11-30T14:23:57.950" Score="0" ViewCount="" Body="&lt;p&gt;Do a little bit at a time...is that a squirrel?  just kidding&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First you need an accurate diagnosis.  Use your insurance to find a qualified psychologist that specializes in processing issues.  They have a battery of tests you take to diagnose your distractibility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may have mild to severe to normal distractibility.  You don't know for sure and you probably won't get much help until you do know.  Start the process now to find out about you and so you can be happy.  Also, even with &quot;mild&quot; distractibility medicine can help.  Training will also help you.  Furthermore, you could have other issues that will surface and that you might know but not be relaying here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First bit of advice:  find the specialist and take the test.  If you've done that what did they say?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit:  after reading one of your other answers.  Why did you stop your medication?&lt;/p&gt;&#xA;" OwnerUserId="8802" LastEditorUserId="8802" LastEditorDisplayName="" LastEditDate="2010-11-30T14:29:42.373" LastActivityDate="2010-11-30T14:29:42.373" />
  <row Id="22551" PostTypeId="2" ParentId="22541" CreationDate="2010-11-30T14:30:58.540" Score="17" ViewCount="" Body="&lt;p&gt;The most widely known languages I know of that aspire to be C++ replacements are D and Go.&#xA;Both are good candidates for systems-level high-level programming, and both address some of the most serious design flaws of C++. However, realistically I think none of them will replace C++ in a major way - C++ simply has too much momentum, and there is too much C++ that has been written and still is being written.&lt;/p&gt;&#xA;" OwnerUserId="8854" LastActivityDate="2010-11-30T14:30:58.540" CommentCount="1" />
  <row Id="22552" PostTypeId="1" AcceptedAnswerId="22558" CreationDate="2010-11-30T14:32:14.850" Score="6" ViewCount="189" Body="&lt;p&gt;We've all (almost all) have heard about the horror stories as well as perhaps studied about them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its easy to find stories of software that is over budget and late.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wanted to hear from developers the opposite story:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Question:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you know, or have worked on a project that was on budget and on time?&lt;/li&gt;&#xA;&lt;li&gt;What is the most valuable lesson you learned from it?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-01T00:16:34.263" Title="Software on Budget and on time?" Tags="&lt;project-management&gt;&lt;project&gt;" AnswerCount="7" CommentCount="11" />
  <row Id="22554" PostTypeId="2" ParentId="22552" CreationDate="2010-11-30T14:39:36.963" Score="1" ViewCount="" Body="&lt;p&gt;The first time I worked on an agile like project (Agile wasn't a term used then).  We learned that working daily with the client and prototyping ideas (either screenshots or business workflows) that the users could actually play with kept the project focussed, fun and in the end delivered exactly what the client wanted, on time and on budget.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It helped that the client were really focussed on their vision and that I was blessed with a pretty talented team that worked really hard during the working day and were able to socialise/bond afterwards as well.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-11-30T14:39:36.963" />
  <row Id="22555" PostTypeId="2" ParentId="15813" CreationDate="2010-11-30T14:44:59.533" Score="5" ViewCount="" Body="&lt;p&gt;I was diagnosed (at around age 9) with ADD. That was 26 years ago and &quot;ADHD&quot; seems to be the more prominent diagnosis these days. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You've probably found two things to be quite true:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;It is very difficult for you to become engrossed in something that you don't find stimulating&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It is very difficult for you to disengage from something that you DO find stimulating&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Modern medicine wants us to take all kinds of stimulants (It's amazing what any hydrochloride will do to boost attention span), but I discontinued Ritalin (and others) within a year of starting them. The side effects on my mood, sleep cycle and the few social skills that I had was just too much to deal with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means, your criteria should be &quot;What grabs me?&quot; vs &quot;What does everyone else think the right tool would be?&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, I think you might be ignoring some low hanging and language agnostic fruit. Have you come up with an idea for a game? Have you thought of how (in meta terms) the mechanics of it might be implemented? From my own experience, I find it much easier to conduct research when the criteria is quite narrow. Finding the solution to a specific problem is much easier than tackling a question that almost always entails answers that start with &quot;that depends&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also agree with others. Stay off this site for a while. What you are doing now is trying to convince yourself that you are working to a solution by soliciting advice. You are basically trying to study in an amusement park; that isn't going to work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Incidentally, have you looked at C or C++ with &lt;a href=&quot;http://www.lua.org/about.html&quot; rel=&quot;nofollow&quot;&gt;Lua&lt;/a&gt;?&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-03-30T03:14:01.980" LastActivityDate="2011-03-30T03:14:01.980" />
  <row Id="22556" PostTypeId="2" ParentId="22552" CreationDate="2010-11-30T14:48:47.887" Score="0" ViewCount="" Body="&lt;p&gt;You can get two out of the three from this list correct before the work starts:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Budget&lt;/li&gt;&#xA;&lt;li&gt;Schedule&lt;/li&gt;&#xA;&lt;li&gt;Feature Set&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;To get the missing var, you have to start the process and measure progress based on the missing data. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to be on budget and on time, you have to be working on the assumption that the feature set must be flexible. Agile methodologies happen to make this same assumption. &lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-11-30T14:48:47.887" CommentCount="4" />
  <row Id="22557" PostTypeId="2" ParentId="22525" CreationDate="2010-11-30T14:49:04.740" Score="4" ViewCount="" Body="&lt;p&gt;if you want to understand how the &lt;em&gt;machine&lt;/em&gt; works, and not just the virtual machine on which your high-level language depends, then Assembly will teach this to you&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if you have no reason to care - and most programmers really don't these days - then don't worry about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;it will improve your foundation, but it probably won't improve your web apps&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-30T14:49:04.740" CommentCount="9" />
  <row Id="22558" PostTypeId="2" ParentId="22552" CreationDate="2010-11-30T15:04:01.143" Score="7" ViewCount="" Body="&lt;p&gt;Yep, I've seen it happen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Key elements:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Well defined requirements, clearly agreed, with a solid change control process.&lt;br&gt;&#xA;2) Developers involved in the estimates, with no pressure on them to produce estimates which were what the client wanted to hear, just what they really thought would be needed to complete the work properly&lt;br&gt;&#xA;3) Estimates that also took account of risks and uncertainties&lt;br&gt;&#xA;4) Facilitate early feedback from the client - we've provided videos, demos (hands on and hands off depending on stability) as early as possible&lt;br&gt;&#xA;5) A stable team whose availability has been realistically figured into the schedule (for instance if they spend a day a week doing support and admin, then they're only expected to complete 4 days a week work on the project)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not rocket science but removing the commercial pressures and, critically, getting the requirements clear and controlling them is challenging (and where things normally fall down).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-30T15:18:22.203" LastActivityDate="2010-11-30T15:18:22.203" CommentCount="8" />
  <row Id="22559" PostTypeId="1" AcceptedAnswerId="22561" CreationDate="2010-11-30T15:10:14.210" Score="11" ViewCount="311" Body="&lt;p&gt;As stated in the title, are optional parameters, such as &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd264739.aspx&quot; rel=&quot;nofollow&quot;&gt;those used in C#&lt;/a&gt; helpful or are they a hindrance to application maintenance and should be avoided as they can make the code harder to understand?&lt;/p&gt;&#xA;" OwnerUserId="2471" LastEditorUserId="4280" LastEditorDisplayName="" LastEditDate="2010-12-09T02:15:26.680" LastActivityDate="2010-12-09T02:15:26.680" Title="Are optional parameters helpful or a hindrance to application maintenance?" Tags="&lt;language-features&gt;&lt;maintenance&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="3" />
  <row Id="22560" PostTypeId="2" ParentId="252" CreationDate="2010-11-30T15:14:36.740" Score="3" ViewCount="" Body="&lt;p&gt;I agree that it is an anti-pattern. Why? Because it allows your code to lie about its dependencies, and you can't trust other programmers to not introduce mutable state in your previously immutable singletons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A class might have a constructor that only takes a string, so you think it is instantiated in isolation and does not have side effects. However, silently, it is communicating with some sort of public, globabally available singleton object, so that whenever you instantiate the class, it contains different data. This is a big problem, not only for users of your API, but also for the testability of the code. To properly unit-test the code, you need to micro-manage and be aware of the global state in the singleton, to get consistent test results.&lt;/p&gt;&#xA;" OwnerUserId="8854" LastActivityDate="2010-11-30T15:14:36.740" />
  <row Id="22561" PostTypeId="2" ParentId="22559" CreationDate="2010-11-30T15:15:12.947" Score="18" ViewCount="" Body="&lt;p&gt;Optional parameters have, in my experience, been a good thing.  I have never found them confusing (at least no more confusing than the actual function), since I can always get the default values and know what's being called.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One use for them is when I have to add another parameter to a function that's already in general use, or at least in the public interface.  Without them, I'd have to redo the original function to call one that's got another argument, and that can get really old if I wind up adding arguments more than once.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-30T15:15:12.947" CommentCount="1" />
  <row Id="22562" PostTypeId="2" ParentId="21756" CreationDate="2010-11-30T15:19:24.230" Score="0" ViewCount="" Body="&lt;p&gt;There's a peculiar kind of empathy that I have found useful in making additions or fixes to the code of another developer. Most developers have a coding style that is somewhat akin to the style any artist or craftsman evolves towards his art/craft. Programmers have an unusual craft in that it is highly likely that when they leave a project the project will continue in the hands of some other programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I am that other programmer I tend to read through the code, get an overview of the structure of what's been created and follow the design decisions the original developer made even if I personally wouldn't have done it like that. I don't know for certain whether that's right or wrong but I do know that in examples I have seen of systems that have had a change of dev team more than twice the resultant mess of conflicting design approaches and coding standards slowly begins to undermine the original system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even in systems I've seen where one developer has programmed bits one way and then a second developer has taken on a subsystem or modification and just arbitrarily changed the underlying design ethic it has tended to cause severe problems in implementation, bug-fixing and so on. Essentially two bits of half-built system don't make a whole system, they make a mess. It's like someone building a suspension bridge and then another engineer replacing the middle with a bridge on a columnar support while trying to leave the ends suspended.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think what I'm talking about is an appreciation of what someone else has done, good and bad and a willingness to undertake not to make things worse. Particularly not in the most pernicious way &quot;making things worse by trying to make them better&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not a skill I've seen many others exhibit so maybe I'm just crackers, but personally I have found it has made things smoother in my day to day programming life.&lt;/p&gt;&#xA;" OwnerUserId="8859" LastActivityDate="2010-11-30T15:19:24.230" CommentCount="1" />
  <row Id="22563" PostTypeId="2" ParentId="22094" CreationDate="2010-11-30T15:20:51.870" Score="1" ViewCount="" Body="&lt;p&gt;To get something of the mindset, &lt;em&gt;Alice in Wonderland&lt;/em&gt; and &lt;em&gt;Through the Looking-Glass&lt;/em&gt;, and pay attention to the logic and word play.  For languages with C-style pointer use, pay particular attention to the naming of the White Knight's song.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-30T15:20:51.870" />
  <row Id="22564" PostTypeId="2" ParentId="22559" CreationDate="2010-11-30T15:22:48.393" Score="9" ViewCount="" Body="&lt;p&gt;In general, if you need many/optional parameters often, your functions are doing too much, and should be broken up.  You're likely breaking SRP (Single Responsibility Principle).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look for parameters that can be grouped, eg (x and y, become a point).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are these optional parameters flags with a default?  If you're using flags, the function should be split up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's not to say you should never have optional parameters, but in general, more than one or two parameters suggest a code smell.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It could also be a clue that the function, should actually be a class, with the optional parameters changed to properties, and the required parameters part of the constructor.&lt;/p&gt;&#xA;" OwnerUserId="2431" LastActivityDate="2010-11-30T15:22:48.393" CommentCount="5" />
  <row Id="22565" PostTypeId="2" ParentId="22552" CreationDate="2010-11-30T15:29:15.077" Score="0" ViewCount="" Body="&lt;p&gt;I had only one client in my life where all projects were completed on time and budget was steady -- It's my University where I studied and worked in a computer lab for science. For tasks, that most companies ask to finish in 1-2 months, in University we had a year. In companies they give you $N per hour, after a while they say &quot;We lost some clients, dudes outside stole my bag with your salary, boss divorced with his wife and she wants a half of his biz, ...&quot; etc. and your fee decreases by $K, then by $K again, and again. Until you think that you must pay for what you do. In University they have a tender for $XXX,XXX.XX divided on: rector, managers, you supervisor, some other people, your co-workers (mostly other students), and you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course this is much less money than you can have in companies, but for a risk you should pay.&lt;/p&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-11-30T15:29:15.077" />
  <row Id="22566" PostTypeId="2" ParentId="7652" CreationDate="2010-11-30T15:32:22.067" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Forth&lt;/strong&gt;:  Lots of lines of the form &lt;code&gt;: ... ;&lt;/code&gt;, with the &lt;code&gt;...&lt;/code&gt; being strings of more or less comprehensible symbols.  &lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-11-30T15:32:22.067" CommunityOwnedDate="2011-03-20T14:02:27.677" />
  <row Id="22567" PostTypeId="2" ParentId="21756" CreationDate="2010-11-30T15:34:50.677" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Persuasion&lt;/strong&gt;&#xA;Don't confuse with coercion. You're going to get management demands, user requests, and other developer's opinions, so you better learn how to handle them when you think they are wrong. If you just take it, you'll drive yourself nuts in this business. Being able to persuade people will require: communication, empathy, logic, social skills, tact, understanding of the business, etc. You will also learn what battles to fight because nobody wants to be the person who disagrees with everything. Try to keep in mind that you're doing these people a favor by using your technical expertise to identify and solve problems. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-30T15:34:50.677" />
  <row Id="22568" PostTypeId="1" AcceptedAnswerId="22572" CreationDate="2010-11-30T15:34:51.697" Score="4" ViewCount="249" Body="&lt;p&gt;The situation is that a client requested a number of changes about 9 months ago which they then put on hold with them half done.  They've now requested more changes without having made up their mind to proceed with the first set of changes.  The two sets of changes will require alterations to the same code modules.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been tasked with explaining why them not making a decision about the first set of changes (either finish them or bin them) may incur additional costs (essentially because the changes would need to be made to a branch then if they proceed with the first set of changes we'd have to merge them to the trunk - which will be messy - and retest them).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question I have is this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How best to explain branching of code to a non-technical client?&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-11-30T23:12:04.910" Title="What's the best way to explain branching (of source code) to a client?" Tags="&lt;version-control&gt;&lt;branching&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="1" />
  <row Id="22569" PostTypeId="1" CreationDate="2010-11-30T15:36:20.410" Score="2" ViewCount="223" Body="&lt;p&gt;I was recently accepted into a graduate program (Masters) in Computer Science and have been looking at what track I want to follow (have to pick one) and have narrowed it down to two different ones: Theory and Artificial Intelligence. Since I come from a non-CS background (I have a BS in Economics) I am ignorant of the job market and prospects from either of these tracks and I was hoping that I could get some help on this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main attraction of the Theory track is that it can have a language design focus(classes would include Automata Theory and Formal Grammars, Formal Semantics Of Programming Languages, and Design of Object-Oriented Languages) which is what I'm very interested in. The problem with that is that many people are interested in language design and, as far as I know, the job market isn't booming for people (especially with an MS and no PhD) who want to make a living design languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other track that is very interesting to me (but less so than the Theory) is the Artificial Intelligence track. It has classes such as machine learning, Neural Networks, Image processing, Vision Systems, etc. Again, I worry that an MS only wouldn't get me deep into the field professionally, but I also believe that it would get me further than the Theory track. I also believe that there are more career opportunities out there for this track.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now to my questions: Is a Masters degree sufficient to get a job in either of these fields (language design or AI)? Would it be a &quot;stupid&quot; move to pick the more enjoyable of the two fields at the risk of less career opportunities? In the corporate world, does it matter what the focus would be if I were to just apply for developer jobs to be able to support myself and my family?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: A PhD is always an option but I do have a family to support and do not wish to burden ourselves with tons of loans and I do need to continue to work full-time as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to thank you all for the help in advance!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;EDIT&lt;/em&gt; I would like to clarify on the &quot;Theory&quot; track. If I were to take it, I would want to focus specifically on language design. I have seen replies saying that it would be good to get the theory I missed in Undergrad, so I don't think I was clear on stating that it isn't broad theory but I would a specific focus.&lt;/p&gt;&#xA;" OwnerUserId="7427" LastEditorUserId="7427" LastEditorDisplayName="" LastEditDate="2010-11-30T16:27:48.883" LastActivityDate="2010-11-30T21:22:35.867" Title="Masters Program - Theory Track Vs Artifical Intelligence Track" Tags="&lt;education&gt;&lt;career-advice&gt;" AnswerCount="6" CommentCount="3" />
  <row Id="22570" PostTypeId="2" ParentId="21756" CreationDate="2010-11-30T15:36:23.077" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Social_perception&quot; rel=&quot;nofollow&quot;&gt;Social perception&lt;/a&gt; is never a waste of time to develop. Please don't confuse it with empathy. When social skills don't come naturally, you must be able to identify and understand the implications of any cognitive bias in those around you, and also in an introspective sense. You must also be able to fit in with others without needing to conduct multiple &lt;a href=&quot;http://en.wikipedia.org/wiki/Breaching_experiment&quot; rel=&quot;nofollow&quot;&gt;breaching experiments&lt;/a&gt;. (Does this sound to anyone like the smart person who tried too hard to fit in?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The article I mentioned suggests something called &quot;Implicit Personality Theory&quot;, but I caution anyone against making assumptions. If in doubt, don't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, learning how to 'not think like a programmer' comes in handy, especially when dealing with the opposite sex or designing user interfaces.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-11-30T15:36:23.077" />
  <row Id="22571" PostTypeId="2" ParentId="22552" CreationDate="2010-11-30T15:36:43.223" Score="0" ViewCount="" Body="&lt;p&gt;Yes, I've worked once in such a kind of project. &#xA;It was a not so little web application for documents managing, for a quite big company, in which the different documents could be categorized at different nodes, supporting meta-data for documents and nodes, different authorization levels, etc.&#xA;the key points for me were:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Clear, concise, and well defined requirements,&lt;/li&gt;&#xA;&lt;li&gt;Management focused in ease the developers work, not in watch their work, control it, or urge developers. About this, in the final rush, the manager just told everybody &quot;boys, we have to deliver next week. Let's try to get in time&quot;, and everybody did our part to reach the target. &lt;strong&gt;Trust&lt;/strong&gt; is a key word for me at the team management.&lt;/li&gt;&#xA;&lt;li&gt;Spending time at the system modeling phase, is not at all a waste, but a investment. A detailed design saves lots of development hours.&lt;/li&gt;&#xA;&lt;li&gt;And last, but not least, a good relationships among the team members, and a friendly environment, do more for productivity than we are used to think.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5717" LastActivityDate="2010-11-30T15:36:43.223" />
  <row Id="22572" PostTypeId="2" ParentId="22568" CreationDate="2010-11-30T15:45:01.047" Score="5" ViewCount="" Body="&lt;p&gt;Explain it like writing two research papers. You might want to go with several different thoughts. In order to do this you create a copy and continue work on the &quot;branches&quot; simultaneously. This issue comes up when you have work done on various different papers and you need to &quot;merge&quot; them into a deliverable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This explanation has always worked for me.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-11-30T15:45:01.047" CommentCount="1" />
  <row Id="22573" PostTypeId="2" ParentId="22525" CreationDate="2010-11-30T15:46:08.737" Score="3" ViewCount="" Body="&lt;p&gt;In a word, fun. When I used to play around with assembler (having worked down from VB to C++, C etc) it was just awesome to be moving data from one part of the processor to another. It was a great feeling to know &lt;em&gt;exactly&lt;/em&gt; what was happening inside the CPU, with no worries about what was going on underneath which you didn't know about. Plus a great feeling of freedom - you can do just about anything, because there aren't inbuilt limitations which you find in higher level languages. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, being able to turn round to anyone who programmed in any other language whatsoever and go 'well, if you're not hardcore enough...' was childish, childish fun. &lt;/p&gt;&#xA;" OwnerUserId="8796" LastActivityDate="2010-11-30T15:46:08.737" CommentCount="3" />
  <row Id="22574" PostTypeId="2" ParentId="22569" CreationDate="2010-11-30T15:48:10.290" Score="1" ViewCount="" Body="&lt;p&gt;You are a problem solver without a problem, but your studies in economics clearly (IMHO) nudge you in the right direction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Could you design a language that would help ACME, Inc. better forecast the ramifications of key decisions? Could you simplify the process a government employed analyst must undertake when weighing several strategies that might become policy? Now, would you be more comfortable writing a dissertation before or after spending 5 years working on such things?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are in a good place, you understand the needs of a very lucrative base of users and could probably solve some real problems for them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this one is a no-brainer, if I read your question correctly. What I can't quite understand is your indecision in the matter .. are there other factors to consider? The only one I can think of is that you might not like economics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, I'm sure you can conceive a problem that could use a solution (or perhaps a better solution) .. work on it.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-30T16:00:15.100" LastActivityDate="2010-11-30T16:00:15.100" CommentCount="1" />
  <row Id="22575" PostTypeId="2" ParentId="22569" CreationDate="2010-11-30T15:48:37.500" Score="1" ViewCount="" Body="&lt;p&gt;IMO the point of a master's is theory. As you move further academically, you should learn more about &lt;em&gt;why&lt;/em&gt; things work rather than &lt;em&gt;how&lt;/em&gt;. Hopefully in your bachelor's you had a couple of basic computer theory classes. The masters should build on what you learned there. Should you decide to go for a doctorate, you'll be required to demonstrate that you know why something works, or demonstrate a reason for why something should wourk a certain way in a dissertation. Therefore, the theory is important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as job security and careers go, I'm not sure what to say. Seems to me that it couldn't hurt - it demonstrates that you are interested in your field and learning more about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice for choosing a degree is to &lt;strong&gt;pick the one you enjoy more&lt;/strong&gt;. If you have the option, do both - nothing nowhere says that you can only have one masters degree. Again IMO, theory would trump AI because you can't really program AIs without &lt;em&gt;some&lt;/em&gt; knowledge of computer theory.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-11-30T15:48:37.500" />
  <row Id="22576" PostTypeId="2" ParentId="22568" CreationDate="2010-11-30T15:48:50.157" Score="0" ViewCount="" Body="&lt;p&gt;Don't bother. It isn't your job to educate them on your job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just say that not having a decision on the first set of features will complicate the project management which might have repercussions in terms of time and expense. That's all that is relevant to them.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-11-30T15:48:50.157" CommentCount="9" />
  <row Id="22577" PostTypeId="2" ParentId="22073" CreationDate="2010-11-30T15:50:31.113" Score="0" ViewCount="" Body="&lt;p&gt;Lots of financial analysis used to be done in APL, from earlier responses it sounds like they've transitioned to F# today.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-30T15:50:31.113" />
  <row Id="22578" PostTypeId="2" ParentId="22552" CreationDate="2010-11-30T15:51:14.123" Score="1" ViewCount="" Body="&lt;p&gt;I did it a couple of times.  What was common was that the client didn't really knew what they wanted, so i wrote the specs :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, in fact one of them was &quot;we need something to manage our image library&quot;, so i knew they needed a DAM.  just a few questions more to get their workflow, and then I was free to write one to fit that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second time was after a first quick version of a system where we got very positive reviews on everything except a single feature that was admittedly very crude (because we had to deliver quickly the first version). I just closed my door and promised the next version would fix that.  Since we already knew that part wasn't good we had planned for the second version and could focus on that part of the code, knowing the rest was (almost) ready for the enhancement.&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-11-30T15:51:14.123" CommentCount="1" />
  <row Id="22579" PostTypeId="2" ParentId="21480" CreationDate="2010-11-30T15:51:23.533" Score="2" ViewCount="" Body="&lt;p&gt;What about the java.util.Calendar? It doesn't require a complcated action sequence, but it's a real PITA for the number of times you need to use it:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//1. get a new instance&#xA;Calendar cal=Calendar.getInstance();&#xA;//2. set the different fields&#xA;cal.set(Calendar.DATE, 12);&#xA;cal.set(Calendar.MONTH, Calendar.JANUARY);&#xA;cal.set(Calendar.YEAR, 1982);&#xA;//3. use it, for whatever&#xA;Date d=cal.getTime();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And, not to talk about the Java Transaction API, when Bean managed:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;@Stateless&#xA;@TransactionManagement(BEAN)&#xA;public class ExampleBean {&#xA;&#xA;    @Resource&#xA;    private SessionContext ctx;&#xA;&#xA;    public void foo() {&#xA;        UserTransaction utx = ctx.getUserTransaction();&#xA;&#xA;        // start a transaction&#xA;        utx.begin();&#xA;&#xA;        // Do work&#xA;&#xA;        // Commit it&#xA;        utx.commit();&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The JAXB marshalling&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//1. get context&#xA;JAXBContext jc = JAXBContext.newInstance( Foo.class );&#xA;//2. create Marshaller instance&#xA;Marshaller m = jc.createMarshaller();&#xA;//3. set properties&#xA;m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,&#xA;  Boolean.TRUE);&#xA;//at last, marshall&#xA;m.marshal( foo, System.out );&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and unmarshalling:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//1. get context&#xA;JAXBContext jc = JAXBContext.newInstance( Foo.class );&#xA;//2. create Unmarshaller instance&#xA;Unmarshaller u = jc.createUnmarshaller();&#xA;//3. optional: set properties, format validation, schema validation, etc&#xA;u.setValidating( true );&#xA;//4. unmarshall&#xA;Foo foo = (PurchaseOrder)u.unmarshal(&#xA;       new FileInputStream( &quot;po.xml&quot; ) );&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5717" LastEditorUserId="5717" LastEditorDisplayName="" LastEditDate="2010-11-30T16:01:20.353" LastActivityDate="2010-11-30T16:01:20.353" />
  <row Id="22580" PostTypeId="2" ParentId="22569" CreationDate="2010-11-30T15:52:30.367" Score="1" ViewCount="" Body="&lt;h2&gt;An MSc alone is not enough&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;If your sole objective is getting a career, then strictly speaking you don't even need an MSc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However as MSc in Computer Science does provide an advantage &lt;strong&gt;WHEN&lt;/strong&gt; coupled with development experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice is do something you will enjoy, worry about a career afterwards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are passionate about programming, trust me the money/career/jobs all flow like water.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How does one get development experience?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Simple Build Something!&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-11-30T16:43:05.763" LastActivityDate="2010-11-30T16:43:05.763" CommentCount="2" />
  <row Id="22581" PostTypeId="2" ParentId="22526" CreationDate="2010-11-30T15:58:51.543" Score="1" ViewCount="" Body="&lt;p&gt;first, I think Qt, and even it's Python bindings are &lt;em&gt;way&lt;/em&gt; better structured than GTK; so you could first try it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;second, it seems you're slightly confused by the MVC buzzword.  It was originally defined as a &lt;strong&gt;modular architecture for GUI applications&lt;/strong&gt;; unfortunately, there's a completely different &lt;strong&gt;layered architecture for Web apps&lt;/strong&gt; also called MVC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe you feel your desktop apps are not very MVC because there not very &lt;em&gt;web MVC&lt;/em&gt;, but they might be very &lt;em&gt;GUI MVC&lt;/em&gt; nonetheless.&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-11-30T15:58:51.543" CommentCount="1" />
  <row Id="22582" PostTypeId="2" ParentId="14254" CreationDate="2010-11-30T16:06:14.173" Score="1" ViewCount="" Body="&lt;p&gt;Demonstrating you can code is a major part of the interview process. Many have indicated that college degrees, certifications, and resume exaggerations are no help in differentiating job candidates. Seems like S.O., a technical blog, presenting at a conference, a website you built, code on github/open source project would be excellent ways to create a portfolio of your work and skill set. Strong references are important as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I thought we were moving away from the hiring strategies of the 1950's? Apparently not.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-30T16:06:14.173" />
  <row Id="22583" PostTypeId="1" AcceptedAnswerId="22592" CreationDate="2010-11-30T16:10:05.123" Score="1" ViewCount="84" Body="&lt;p&gt;I'm talking about something like this: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;echo $form-&amp;gt;input('general_addresss', array(&#xA;            'label' =&amp;gt; 'Where will you go today?'&#xA;            'format' =&amp;gt; array('before', 'input', 'after', 'label', 'after', 'error')&#xA;            ));&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Do you start with one array parameter, then break a line? If it can't fit on a line, do you immediately break a line? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After of which, do you do a set number of tabs over? What happens if an array within an array has lots of properties? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any particular guide you follow? &lt;/p&gt;&#xA;" OwnerUserId="1808" LastActivityDate="2010-11-30T16:28:24.223" Title="How do you format arrays within parameters?" Tags="&lt;code-formatting&gt;" AnswerCount="5" />
  <row Id="22584" PostTypeId="2" ParentId="22525" CreationDate="2010-11-30T16:15:44.010" Score="1" ViewCount="" Body="&lt;p&gt;I think nowadays low and high level programming can be quite separated. Basically this means that you could live all your professional life without knowing C and assembler with no problems at all.&#xA;That said the C programming language cannot teach you a lot from programming and design  points of view. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just out of curiosity you could learn how things works in a lower level. When I was at University, for example, I enjoyed using gcc to generate assembler code from C++. It was useful to comprehend how polymorfism and exception are implemented. But apart from that the only things you could learn from C nowadays are:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) dirty memory tricks. C is the best way to understand that there is no bottom down in programmers madness :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) GOTOs are actually used (and useful) to rollback errors&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) learn better how memory allocation works (difference between heap and stack anyone?).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So basically my thesis is: if you already finished University and you still don't need C, than don't learn it :) &lt;/p&gt;&#xA;" OwnerUserId="4738" LastActivityDate="2010-11-30T16:15:44.010" CommentCount="1" />
  <row Id="22585" PostTypeId="2" ParentId="22569" CreationDate="2010-11-30T16:16:09.667" Score="1" ViewCount="" Body="&lt;p&gt;First off, you need to be able to answer yourself in regards to if you just want to be a developer and write code in which case you may not need to get a Masters degree. As &lt;a href=&quot;http://programmers.stackexchange.com/questions/22569/masters-program-theory-track-vs-artifical-intelligence-track/22580#22580&quot;&gt;Darknight&lt;/a&gt; pointed out, some companies will hire you on if you have a decent project you can show them as an example and others might be willing to take you own as a Junior Programmer if your Economics degree has a solid mathematical foundation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the standpoint of the Masters degree, if you don't have any experience in software development from your previous career then going the theory track is likely going to a better option as it will expose you to much of what an undergraduate degree in Computer Science would get you while at the same time you might not have as much remedial work that you need to do to get the degree finished. One concern with the artificial intelligence track is that you may run into course where they expect you to have a solid understanding of the theory before you set foot in the classroom which might cause you to have to take more remedial work to get caught up with what they expect a graduate student to know. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the employment standpoint, the artificial intelligence track would likely serve you better in the long run, especially if you write a thesis as part of the degree since it could set you up for a job in a research group where as the theory track could be a bit hit or miss in that regards. I've seen job listings for someone with an artificial intelligence background that the degree would provide you, but not as many for a purely theory level at the Masters level. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a whole though, it does depend upon what you want to do and how much time you want to invest in the program. One of the good things about the industry is that a Masters degree will open some doors that a Bachelors might not a lot sooner than pure experience would where as a PhD will generally close some doors once you have it since it can be harder to find work as a developer with a PhD than a Masters. &lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-11-30T16:16:09.667" CommentCount="3" />
  <row Id="22586" PostTypeId="2" ParentId="22583" CreationDate="2010-11-30T16:18:06.693" Score="0" ViewCount="" Body="&lt;p&gt;I would generally do something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;array('before', &#xA;      'input', &#xA;      'after', &#xA;      'label', &#xA;      'after', &#xA;      'error')&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Although I don't know of any particular standard that spells out what &quot;should&quot; be done.&lt;/p&gt;&#xA;" OwnerUserId="7446" LastActivityDate="2010-11-30T16:18:06.693" />
  <row Id="22587" PostTypeId="2" ParentId="21756" CreationDate="2010-11-30T16:21:29.250" Score="1" ViewCount="" Body="&lt;p&gt;Have a thick skin. Don't get insulted or upset at every little thing. Most stuff in business is not meant personally. They did not pick C# for the project to personally annoy you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn to work with people you dislike. There will always be people you dislike in any large workplace. Deal with it. BTW if you compliment people that you dislike when they (perhaps by sheer chance) do something right, it will make your criticisms be more meaningful. If you acknowledge the good, then people won't dismiss your comments about the bad as &quot;Take that with a grain of salt because he hates Joe.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Criticize actions not people. Learn to sense when the timing is right for a criticism. Saying, &quot;we need to redo this from scratch because it...&quot; 2 days before a deadline won't make you any friends or business allies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The time for input is &lt;strong&gt;before&lt;/strong&gt; a decision is made. You only make yourself look childish and stupid for whining about it after it is too late to change. You look unprofessional to refuse to implement a decision you disagree with and are at risk for being fired. All employees in all professions always have to implement some decisions they disagree with. That's part of life. If you don't like the direction of most of the decions being made, either become one of the decision makers or move on to a place that suits you better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compliment people often, especially in writing to their bosses. Especially compliment people outside of IT that you have to work with to develop internal projects. Say please and thank you. But don't give fake compliments (people can usually tell), you don't want to sound like a sales person. People work alot better with people who are nice to them and who they feel appreciate them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make your case for changes you want in business terms not in technical terms. Managers don't care that it is the cool new technology that you want to learn. They care that it solves a problem the old technology didn't solve or didn't solve well. A real problem that the organization has, not a problem described in the marketing literature for the product. Learn to create a decision analysis document. When you show the pros and cons in writing, it is alot easier for the managers to accept your ideas. I have never yet lost an argument when I had a decision analysis document to show them why what I wanted was the best way to go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The amount of input you have in an organization is directly related to your organizational position (managers have more input, it's a fact of life) or the respect that you are held in. You may not want to be a manager, but everyone can strive for being that respected employee who is always asked for input informally before the manager decides. You get that respect by delivering product, by behaving professionally, by showing that you have in depth knowledge and sharing it (become the person others go to when they are stuck), and sometimes by being consistently right when others are wrong (but not by being snotty about it). Junior employees almost never have much input into processes, design, tools, etc. Seniors almost always do. Whether you make the leap from junior to senior often depends as much on your attitude as your ability.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-11-30T16:21:29.250" />
  <row Id="22588" PostTypeId="2" ParentId="22583" CreationDate="2010-11-30T16:21:55.617" Score="0" ViewCount="" Body="&lt;p&gt;Beside something along the lines of Jason's answer, I would create the array before the function call if it is complicated.  Where complicated refers either to the array itself or the function call using that array.  So, if the function call starts to look like crap, as in your example, just create a variable for the array and use that in the call.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't optimize prematurely.  It's one variable.  Error on the side of legibility and optimize to unmaintainable mess only if necessary.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-11-30T16:21:55.617" />
  <row Id="22589" PostTypeId="2" ParentId="22583" CreationDate="2010-11-30T16:22:41.413" Score="1" ViewCount="" Body="&lt;p&gt;I would have done it like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;echo $form-&amp;gt;input(&#xA;    'general_addresss', array(&#xA;       'label' =&amp;gt; 'Where will you go today?',&#xA;       'format' =&amp;gt; array(&#xA;           'before', &#xA;           'input', &#xA;           'after',&#xA;           'label',&#xA;           'after',&#xA;           'error'&#xA;       )&#xA;    )&#xA;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Syntax highlighting can be a very easy thing to confuse :) However, in your case, the example you gave is also perfectly fine. It would depend on how many nested arrays (with xx number of members) I was dealing with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whatever makes it easy to read and modify. I personally find one member per line much easier to enumerate (mentally) while looking to make a change, while clearly separating each member.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, follow what exists, when applicable.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-30T16:28:15.980" LastActivityDate="2010-11-30T16:28:15.980" />
  <row Id="22590" PostTypeId="2" ParentId="22568" CreationDate="2010-11-30T16:24:34.100" Score="14" ViewCount="" Body="&lt;p&gt;It probably not that important to explain branching. What is important is that you explain the &lt;em&gt;impact&lt;/em&gt; of their non-decision. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this case the impact is if they decide they want the first set of changes down the road it will increase the cost then if you implement the change now. One nice way they will get the message is if you do an estimate for both. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they don't understand why the estimates are different you can explain as you already have. Testing will have to be done twice and incompatibilities will need to be resolved, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also use a building metaphors. Personally I don't like them but it wouldn't be that hard to do. One example that springs to mind replacing a bathtub and the plumbing together is cheaper than replacing the bathtub and plumbing separately, since you only have to rip out the tub once and re-caulk once and so on. &lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-11-30T16:24:34.100" CommentCount="2" />
  <row Id="22591" PostTypeId="2" ParentId="22583" CreationDate="2010-11-30T16:28:13.443" Score="0" ViewCount="" Body="&lt;p&gt;Well, whatever my code formatter decides to print :)&lt;/p&gt;&#xA;" OwnerUserId="4930" LastActivityDate="2010-11-30T16:28:13.443" />
  <row Id="22592" PostTypeId="2" ParentId="22583" CreationDate="2010-11-30T16:28:24.223" Score="3" ViewCount="" Body="&lt;p&gt;I do it like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;echo $form-&amp;gt;input&#xA;    (&#xA;        'general_addresss',&#xA;        array&#xA;        (&#xA;            'label' =&amp;gt; 'Where will you go today?'&#xA;            'format' =&amp;gt; array&#xA;            (&#xA;                'before',&#xA;                'input',&#xA;                'after',&#xA;                'label',&#xA;                'after',&#xA;                'error'&#xA;            )&#xA;        )&#xA;    );&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It may seem like a massive overkill of whitespace, but I find it quite readable and obvious - none of my brackets are hidden and everything is nicely indented visually. YMMV ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Regarding the &quot;particular guide&quot;, my particular guide are my eyes. If I can't quickly see where I left my keys in the source code, it's probably badly formatted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;p.s. You must be coming from CakePHP :)&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-11-30T16:28:24.223" CommentCount="2" />
  <row Id="22593" PostTypeId="2" ParentId="22569" CreationDate="2010-11-30T16:41:30.163" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;In the corporate world, does it matter what the focus would be if I were to just apply for developer jobs to be able to support myself and my family?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No, corporate world would value experience as a developer more than either of these.  Neither is likely to get you a job as a developer, they may even make you seem over qualified for a lot of the strictly developer positions.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-11-30T16:41:30.163" />
  <row Id="22594" PostTypeId="2" ParentId="22568" CreationDate="2010-11-30T16:53:12.963" Score="-3" ViewCount="" Body="&lt;p&gt;You have an 'A' train with several cars carrying thousands of boxes. After 9 months you decided to create another train on siding called 'A-b' filled with a similar load to train 'A', but some boxes and train cars have been added and some removed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The train 'A' keeps running down the track and no one has decided if they want the 'A+b' train. A detour is being considered. Train 'A' is going to have to unload some boxes and load some others and the 'A' train would be renamed 'A+c'. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The railroad must ask the customer to make some decisions on what shipment they want. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Forget about 'A+b', unload all the&#xA;cars and eat the loading costs.&lt;/li&gt;&#xA;&lt;li&gt;Have the 'A+b' train catch up to and&#xA;replace the 'A' train before the&#xA;detour and create train 'A+b+c' train.&lt;/li&gt;&#xA;&lt;li&gt;Let the 'A' train make the detour becoming the&#xA;'A+c' train and then have the 'A+b' train&#xA;catchup and then reconfigure train 'A+c' and become '(A+c)(A+b)'&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(A+c)(A+b) will cost more and take longer due to all the loading, unloading, and figuring out how to fit the new order configuration on the train.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-30T16:53:12.963" CommentCount="3" />
  <row Id="22595" PostTypeId="2" ParentId="22516" CreationDate="2010-11-30T16:59:41.070" Score="1" ViewCount="" Body="&lt;p&gt;When the people that have to sign off on the deploy are satisfied.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or in some cases the majority of the responsible parties are satisfied.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-30T16:59:41.070" />
  <row Id="22596" PostTypeId="2" ParentId="22559" CreationDate="2010-11-30T17:19:57.293" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Optional parameters are just fine&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Typically the justification is either that a) you know you have a lot of possible arguments for your method but you don't want to overload for fear of clutering your API, or b) when you don't know all the possible arguments  but you don't want to force your user to provide an array. In each case optional parameters come to the rescue in a neat and elegant way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some examples:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1. You want to avoid overloading and don't want to specify an array&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take a look at &lt;a href=&quot;http://en.wikipedia.org/wiki/Printf&quot; rel=&quot;nofollow&quot;&gt;printf()&lt;/a&gt; from C, Perl, Java etc. It's a great example of the power of optional parameters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;printf(&quot;I want %d %s %s&quot;,1,&quot;chocolate&quot;,&quot;biccies&quot;);&#xA;&#xA;printf(&quot;I want %d banana&quot;,1);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;No overloading, no arrays, simple and intuitive (once you've grasped the standard string format codes). Some IDEs will even tell you if your format string does not match your optional parameters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2. You want to allow the use of defaults and keep them hidden from the user of the method&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;sendEmail(&quot;test@example.org&quot;);&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The sendEmail method detects that various essential values are missing and fills them in using defined defaults (subject, body, cc, bcc etc). The API is kept clean, yet flexible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A note on too many parameters&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, as others have stated, having too many &lt;em&gt;mandatory&lt;/em&gt; parameters to a method indicates that you probably have something wrong with your design. This is particularly true if they share the same type since they can be switched by the developer by accident leading to strange results at runtime:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;String myMethod(String x, String y, String z, String a, int b, String c, int d) {}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;is an ideal candidate for the &lt;a href=&quot;http://www.refactoring.com/catalog/introduceParameterObject.html&quot; rel=&quot;nofollow&quot;&gt;Introduce Parameter Object&lt;/a&gt; refactoring to create&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;String myMethod(ParameterObject po) {}&#xA;&#xA;class ParameterObject {&#xA;  // Left as public for clarity&#xA;  public String x;&#xA;  public String y;&#xA;  ... etc&#xA;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This in turn can lead to a better design based on a Factory pattern with a provided specification as the parameter object.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-11-30T18:59:31.420" LastActivityDate="2010-11-30T18:59:31.420" CommentCount="6" />
  <row Id="22597" PostTypeId="1" AcceptedAnswerId="22600" CreationDate="2010-11-30T17:28:12.790" Score="6" ViewCount="216" Body="&lt;p&gt;This came out of some of the answers and comments on another question (&lt;a href=&quot;http://programmers.stackexchange.com/questions/22552/software-on-budget-and-on-time/22558#22558&quot;&gt;this one&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've worked primarily with waterfall projects and while I've worked on ad-hoc projects that have taken on agile behaviours and have read a fair bit about agile, I'd say I've never worked on a &quot;proper&quot; agile project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is does the concept of &quot;late&quot; have any meaning in agile, if so then what?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My reasoning is that with agile you have no upfront plan and you have no detailed requirements at the outset.  You may have a high level goal in mind and a notional date attached to it but both may change (potentially massively) and neither are certain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you don't know exactly what you're going to deliver basically until you deliver it and the user accepts it, and if you don't have a schedule beyond the next sprint, how could you ever be late in any way that actually has meaning?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Obviously I understand that a sprint might overrun but I'm talking about beyond that.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: Just to be clear I'm (personally) happy with the assumption that on time waterfall projects (even relatively large ones) are possible based on the fact I've seen them and been involved in them - they're not easy or common even but they are possible.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't about knocking agile, it's about me understanding it.  I've always seen the benefit of agile as nothing to do with deadlines or budgets (or rather only indirectly), it's to do with scope - agile delivers closer to what is really important rather than what the project team think is important before they've seen anything.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-11-30T20:08:34.713" LastActivityDate="2010-12-01T07:21:55.180" Title="Does late have any meaning in Agile methodologies?" Tags="&lt;agile&gt;&lt;scheduling&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="2" />
  <row Id="22598" PostTypeId="1" CreationDate="2010-11-30T17:41:36.057" Score="5" ViewCount="182" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;Preface&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not code golf. I'm looking at an interesting problem and hoping to solicit comments and suggestions from my peers. This question is not about &lt;a href=&quot;http://en.wikipedia.org/wiki/Card_counting&quot; rel=&quot;nofollow&quot;&gt;card counting&lt;/a&gt; (exclusively), rather, it is about determining the best table to engage based on observation. Assume if you will some kind of brain implant that makes worst case time / space complexity (on any given architecture) portable to the human mind. Yes, this is quite subjective. Assume a &lt;a href=&quot;http://en.wikipedia.org/wiki/Playing_card#French&quot; rel=&quot;nofollow&quot;&gt;French deck&lt;/a&gt; without the use of wild cards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Background&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recently visited a casino and saw more bystanders than players per table, and wondered what selection process turned bystanders into betting players, given that most bystanders had funds to play (chips in hand).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Scenario&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You enter a casino. You see n tables playing a variant of &lt;a href=&quot;http://en.wikipedia.org/wiki/Blackjack&quot; rel=&quot;nofollow&quot;&gt;Blackjack&lt;/a&gt;, with y of them playing &lt;a href=&quot;http://en.wikipedia.org/wiki/Pontoon_%28game%29&quot; rel=&quot;nofollow&quot;&gt;Pontoon&lt;/a&gt;. Each table plays with an indeterminate amount of card decks, in an effort to obfuscate the &lt;a href=&quot;http://en.wikipedia.org/wiki/Casino_game#House_advantage&quot; rel=&quot;nofollow&quot;&gt;house advantage&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each table has a varying minimum bet. You have Z currency on your person. You want to find the table where:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The least amount of card decks are in use&lt;/li&gt;&#xA;&lt;li&gt;The minimum bet is higher than a table using more decks, but you want to maximize the amount of games you can play with Z.&lt;/li&gt;&#xA;&lt;li&gt;Net losses, per player are lowest (I realize that this is, in most answers, considered to be  incidental noise, but it could illustrate a broken shuffler)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Problem&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can magically observe every table. You have X rounds to sample, in order to base your decision. For this purpose, every player takes no more than 30 seconds to play.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What algorithm(s) would you use to solve this problem, and what is their worst case complexity? Do you:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Play Pontoon or Blackjack ?&lt;/li&gt;&#xA;&lt;li&gt;What table do you select ?&lt;/li&gt;&#xA;&lt;li&gt;How many rounds do you need to observe (what is the value of X), given that the casino can use no more than 8 decks of cards for either game? Each table has between 2 and 6 players.&lt;/li&gt;&#xA;&lt;li&gt;How long did you stand around while finding a table?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm calling this the &quot;&lt;strong&gt;standing gambler problem&lt;/strong&gt;&quot; for lack of a better term. Please feel free to refine it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Additional&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where would this be useful if not in a casino?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Final&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not looking for a magic gambling bullet. I just noticed a problem which became a bone that my brain simply won't stop chewing. I'm especially interested in applications way beyond visiting a casino.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-30T18:16:18.883" LastActivityDate="2010-11-30T22:32:42.637" Title="Algorithms: Find the best table to play (standing gambler problem)" Tags="&lt;algorithms&gt;" AnswerCount="1" CommentCount="15" FavoriteCount="3" />
  <row Id="22599" PostTypeId="2" ParentId="22559" CreationDate="2010-11-30T17:43:45.687" Score="1" ViewCount="" Body="&lt;p&gt;I'd think it would be better to overload a function with different signatures (i.e. parameters) than use optional parameters.&lt;/p&gt;&#xA;" OwnerUserId="4202" LastActivityDate="2010-11-30T17:43:45.687" CommentCount="2" />
  <row Id="22600" PostTypeId="2" ParentId="22597" CreationDate="2010-11-30T17:46:25.117" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I disagree that an Agile project has no upfront plan.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My experience is that the business analysts have spent a fair amount of time working in design meetings with customers and developers to come up with a detailed list of achievable requirements that are presented as user stories. These are then broken down into tasks with suitable estimates attached by experienced developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once the most important tasks have been identified at the start of the sprint/iteration then coding can begin. This selection process determines the meaning of the iteration in the overall project (&quot;We're building the login process&quot;). Various memebers of the team get on with the various tasks necessary to make that user story happen. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the iteration all the user stories for that iteration should be complete, &lt;strong&gt;or you're late&lt;/strong&gt;. Equally, development should be able to stop at the end of each iteration and the product released. It may not be complete in terms of all user stories, but those user stories that were requested in the iteration are complete and the product can work to those limits.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-11-30T17:46:25.117" CommentCount="2" />
  <row Id="22601" PostTypeId="2" ParentId="22597" CreationDate="2010-11-30T17:52:21.047" Score="4" ViewCount="" Body="&lt;p&gt;Yes, but it will only take 1 month to know you won't hit your 9-month-mythical-final-project-due-date instead of 9. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your reasoning is based on the assumption that upfront plans and detailed requirements for large projects are possible. Not sure there is a lot of evidence to support that. Maybe all the horror stories are just anecdotal? Any developer would love to work with complete and never changing specifications that the client fully agrees with and understands.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-11-30T17:52:21.047" CommentCount="1" />
  <row Id="22602" PostTypeId="1" CreationDate="2010-11-30T17:55:01.460" Score="3" ViewCount="163" Body="&lt;p&gt;It seems like every app I've been involved with building eventually struggles with how to efficiently handle reporting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently, our model flows something like this (developed internally -- no idea if this is &lt;em&gt;good&lt;/em&gt; practice):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Log actions/behavior to a general purpose table (basically key/value with some additional indexable fields like user_id)&lt;/li&gt;&#xA;&lt;li&gt;Roll up reportable actions into a summary table daily&lt;/li&gt;&#xA;&lt;li&gt;Roll up daily actions into weekly/monthly tables when appropriate&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The general purpose table is nice, because there's a single way to log things in the app, but it makes it somewhat painful to do reporting out of since the value column ends up being a serialized version of relevant data and can't necessarily be easily queried/indexed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is, is there a better way to handle this?  Are there any common patterns/practices that I'm missing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Also, this is my first question in this SE, so feel free to tell me where to move it if it doesn't belong)&lt;/p&gt;&#xA;" OwnerUserId="6590" LastActivityDate="2010-12-03T10:36:45.597" Title="Reporting Patterns?" Tags="&lt;best-practices&gt;&lt;design-patterns&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="22603" PostTypeId="2" ParentId="14254" CreationDate="2010-11-30T17:57:40.210" Score="0" ViewCount="" Body="&lt;p&gt;did you put something crazy in your blog?  does it have anything to do with your work?  It won't hurt to put in your blog if it has something to do with your work.  A family blog would be okay but might not influence me that much.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-11-30T17:57:40.210" />
  <row Id="22605" PostTypeId="2" ParentId="22602" CreationDate="2010-11-30T18:18:51.737" Score="1" ViewCount="" Body="&lt;p&gt;What you describe is mostly what I've seen and what I've done in the past. There is a class of tools called Change Data Capture platforms that essentially do this same thing for you; they read the transaction logs and create table entries in their own repository. It has the same type of model where you have rows instead of columns and consequently it is more challenging to report on or ad-hoc query than a third normal form model. SQL Server 2005 and later have a &quot;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms177410.aspx&quot; rel=&quot;nofollow&quot;&gt;PIVOT&lt;/a&gt;&quot; clause that makes it quite a bit easier. If you happen to be using that platform you should take a look.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-30T18:18:51.737" />
  <row Id="22607" PostTypeId="2" ParentId="2846" CreationDate="2010-11-30T18:26:12.750" Score="2" ViewCount="" Body="&lt;h2&gt;MUMPS&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Ok, so I don't personally hate it, since I've never worked on it, but I've &lt;a href=&quot;http://thedailywtf.com/Articles/A_Case_of_the_MUMPS.aspx&quot; rel=&quot;nofollow&quot;&gt;read&lt;/a&gt; bad &lt;a href=&quot;http://thedailywtf.com/Articles/Avoiding-MUMPS--Arcadius.aspx&quot; rel=&quot;nofollow&quot;&gt;things&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-11-30T18:26:12.750" CommunityOwnedDate="2010-11-30T18:26:12.750" CommentCount="2" />
  <row Id="22609" PostTypeId="1" AcceptedAnswerId="22616" CreationDate="2010-11-30T18:26:54.010" Score="8" ViewCount="635" Body="&lt;p&gt;I've been at my current company just over 2 years now from straight out of university.  I really enjoyed this job and all the perks that came with it - it was almost a dream come true (I get paid to do what I enjoy!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However now I'm stuck mainly maintaining and developing for an in-house system which is quite old (.NET 1) and is messy, with most of its logic within stored procedures.  Either I have quite a bit to do, or hardly anything (this week for example I've literally had nothing to do except for stackoverflow, read blogs - all day).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also find it hard to understand the business logic upon which this system is used to administer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've really loved working here, but now I'm almost getting the feeling that I've taken it as far as I can.  I'm definitely not working on web apps (where I can use the latest technologies) and I think that is what I want to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do enjoy the company, and its position (and pay) are good.  My team are excellent also - and we all get on great.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what am I meant to do?&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-12-01T03:16:07.947" Title="Is it time to move on?" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="3" />
  <row Id="22611" PostTypeId="2" ParentId="22528" CreationDate="2010-11-30T18:30:18.667" Score="0" ViewCount="" Body="&lt;p&gt;It's good for event-driven systems, and is nicer than the alternative of having a bunch of Observers observing each other, as you're less likely to wind up with inadvertent infinite loops of observers firing events.  This was a real problem in the old VB days, when you had event-driven ActiveX controls that could be wired up to each other with event handlers.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-30T18:30:18.667" />
  <row Id="22613" PostTypeId="2" ParentId="22609" CreationDate="2010-11-30T18:33:01.287" Score="1" ViewCount="" Body="&lt;p&gt;Only you can answer but from the way you describe it, it sounds like you should be looking around. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not agree that everyone needs to change jobs early in their career, but for a lot of people it does seem to help. I was always pretty lucky in that my job kept changing within the same company and I didn't get stuck in some backwater swamp of a project like you have been. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, part of that is because of what I did with my downtime. I had quite a bit and I put it to good use a lot of the time; either building tooling and automation that made my job take less time and/or learning about things that would help me move to the next project.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-30T18:33:01.287" />
  <row Id="22614" PostTypeId="2" ParentId="22498" CreationDate="2010-11-30T18:35:31.550" Score="3" ViewCount="" Body="&lt;p&gt;Note: This is based on my experience in the US education system.  It it probably different in oter countries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Undergraduate admissions are generally not handled by specific departments.  So you cannot expect them to know what SO is, or why it matters.  (The same is probably true in most CS departments as well).  So just stating your So rep won't mean anything to them.  If you say something like you activity participate in an online community to educate other members about ..., that would be better.  You are trying to convince them that you are more that just grades and SAT scores.  Also remember that they are looking at hundreds of these applications, so anything that you can do to make yourself standout (in a good way) will help.  &lt;/p&gt;&#xA;" OwnerUserId="1427" LastActivityDate="2010-11-30T18:35:31.550" />
  <row Id="22616" PostTypeId="2" ParentId="22609" CreationDate="2010-11-30T18:40:59.343" Score="17" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Either I have quite a bit to do, or&#xA;  hardly anything (this week for example&#xA;  I've literally had nothing to do&#xA;  except for stackoverflow, read blogs -&#xA;  all day).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You are complaining, why? &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I also find it hard to understand the&#xA;  business logic upon which this system&#xA;  is used to administer.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That is a problem. It looks like you inherited something interesting :)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I've really loved working here, but&#xA;  now I'm almost getting the feeling&#xA;  that I've taken it as far as I can.&#xA;  I'm definitely not working on web apps&#xA;  (where I can use the latest&#xA;  technologies) and I think that is what&#xA;  I want to do.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You go to work for two reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Personal esteem&lt;/li&gt;&#xA;&lt;li&gt;Financial compensation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As you have indicated that everything about your current job is great, beyond what you are doing (or perhaps, avoiding?), I have to ask you .. do you want a disruption in your life right now? That is, in fact, what your question boils down to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It took me nearly 15 years of hard work to get paid to do what I wanted to do, while enjoying the security of tenure. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recommend:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Great programmers never run out of itches to scratch, or time to scratch them. Have you explored your own ideas? Maybe, just maybe, some of them can help your company?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Employment on our planet, such as it is (especially cushy employment) is &lt;strong&gt;&lt;em&gt;very&lt;/em&gt;&lt;/strong&gt; hard to come by. You seem to have lots of free time that is underutilized. What have you done with it? Most of us wish for it, and you get &lt;strong&gt;&lt;em&gt;paid&lt;/em&gt;&lt;/strong&gt; for it. Answering your question took a bit of my 'personal time' pool, which is limited.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Realize that you scored 9/10 on the 'very lucky o meter' &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Meanwhile, have you considered looking at the long term picture on what you maintain? I'm quite sure that you will find some challenges there. I suspect that, if something breaks, you will have more than enough challenges to meet :)&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-11-30T19:29:49.740" LastActivityDate="2010-11-30T19:29:49.740" CommentCount="15" />
  <row Id="22620" PostTypeId="2" ParentId="21480" CreationDate="2010-11-30T18:54:46.307" Score="0" ViewCount="" Body="&lt;p&gt;Like parsing an XML document?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;DocumentBuilderFactory dbf = DocumentBuilderFactory.getInstance();&#xA;DocumentBuilder db = dbf.newDocumentBuilder();&#xA;Document doc = db.parse(new File(&quot;file.xml&quot;));&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-30T18:54:46.307" />
  <row Id="22621" PostTypeId="2" ParentId="22609" CreationDate="2010-11-30T18:55:55.380" Score="0" ViewCount="" Body="&lt;p&gt;Have you tried to get your current position changed to use newer technologies?  While in a way this is telling your boss, &quot;I'd like to work with X,&quot; there is something to be said for stating this as your employer likely isn't a mind reader and may not know of your current discomfort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I have had a few times in my career where I wasn't doing much, this tended to fall into a few camps:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;My time in the position was coming to an end.  This would be the case where my visa was about to expire and couldn't be extended.  In this case, my employer at the time wanted me to help create a document about the current systems.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Researching some big thing.  I remember in a past job where I spent 2 weeks researching how to put AJAX into the company's main application.  That meant reading blogs, downloading frameworks and playing around with the code to see how hard would it be to add this functionality to the application.  I did have a lot of fun with it in the end but there were times where I wanted to shift to something else for a few moments.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I didn't like my current assignments.  In this case I just didn't have the motivation to do what I should have been doing and had some burnout a few times over in my career.  This is where I wished I had the courage to tell my boss, &quot;I don't want to do this, could you give me something else?&quot; but I often didn't and either slacked on it or did a mediocre job in the end.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-11-30T18:55:55.380" />
  <row Id="22622" PostTypeId="2" ParentId="22609" CreationDate="2010-11-30T18:59:10.690" Score="4" ViewCount="" Body="&lt;p&gt;The obvious suggestion I could make is to quit. But since you enjoy the company, the pay and the team, maybe it would be wiser to find a solution within it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to talk to your boss by explaining your feelings. You may be surprised by the number of solutions he could provide you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't try, you'll never know.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-30T18:59:10.690" CommentCount="4" />
  <row Id="22623" PostTypeId="1" AcceptedAnswerId="22627" CreationDate="2010-11-30T19:00:57.137" Score="4" ViewCount="186" Body="&lt;p&gt;Hello&lt;br&gt;&#xA;I have recently  been assigned to port and old cobol programm.&lt;br&gt;&#xA;I am used to GUI and it i cant understand how TUI work!!  I searched a lot through google but could find something....&lt;br&gt;&#xA;I knew that console applications could output line by line but how colors etc draw to the terminal screen????How all this stuff is being drawn? ..&#xA;Do terminals support it somehow?? Is there a standard??? I am really confused !&lt;/p&gt;&#xA;" OwnerUserId="5419" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2010-11-30T19:43:57.653" LastActivityDate="2010-11-30T22:47:15.887" Title="How do Text User Interfaces (TUI) work?" Tags="&lt;interface&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="22624" PostTypeId="2" ParentId="22541" CreationDate="2010-11-30T19:05:04.570" Score="2" ViewCount="" Body="&lt;p&gt;I don't see C++ being replaced any time soon. But if you're looking for new ideas, Scala is the hottest language in my opinion. Too bad it only runs on JVM.&lt;/p&gt;&#xA;" OwnerUserId="8868" LastActivityDate="2010-11-30T19:05:04.570" CommentCount="5" />
  <row Id="22625" PostTypeId="2" ParentId="7652" CreationDate="2010-11-30T19:10:49.443" Score="0" ViewCount="" Body="&lt;p&gt;If it's all in uppercase, it's probably one of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;BASIC   (if variables are declared with the DIM keyword)&lt;/li&gt;&#xA;&lt;li&gt;COBOL   (if every line ends with a period)&lt;/li&gt;&#xA;&lt;li&gt;FORTRAN (if every statement starts in column 6)&lt;/li&gt;&#xA;&lt;li&gt;PL/I    (if variables are declared with 'DECLARE' [or 'DCL'])&#xA;or&lt;/li&gt;&#xA;&lt;li&gt;(PL/)SQL (if you see keywords like 'TRIGGER' or 'SELECT')&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-11-30T19:10:49.443" CommunityOwnedDate="2011-03-20T14:02:27.677" />
  <row Id="22627" PostTypeId="2" ParentId="22623" CreationDate="2010-11-30T19:14:46.070" Score="5" ViewCount="" Body="&lt;p&gt;Pretty sure your answer is going to vary based on platform here.  There are many different types of terminal/console and for many more than one standard for writing to it.  Most of them I have seen use some sort of escape sequence (ex: ANSI char escapes for dos, YMMV) where you send a special escape char to interrupt the writing to the screen then you can move the cursor, change colors, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are writing something literally for dumb terminals then probably going to be using something like &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Ncurses&quot; rel=&quot;nofollow&quot;&gt;https://secure.wikimedia.org/wikipedia/en/wiki/Ncurses&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-30T19:14:46.070" CommentCount="6" />
  <row Id="22628" PostTypeId="2" ParentId="22609" CreationDate="2010-11-30T19:17:59.947" Score="1" ViewCount="" Body="&lt;p&gt;I understand where you are coming from because I am in a similar situation. The job is good (not great) and the pay is good (not great) and I am bored. Even when I ask/look for something to do, it usually ends up being a quick fix or me waiting around for someone else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The frustrating part is that I would much rather be developing the applications need for my own business, which I cannot do during the work day. There are days where I come to work and nothing ever happens, as if I am not there. It's unfortunate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best thing to do is see if you can mingle your way around the company. If that's not possible or not interesting, think about what you really want. Do you want a job? Do you want your own business? Then go from there. That's what I have done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just don't be stupid about it. If you want to find another job, do so with out effecting your work at the current company. It's too easy to get frustrated and start giving up, thus hurting your performance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just my two cents. Take it for what it is worth.&lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2010-11-30T19:17:59.947" />
  <row Id="22629" PostTypeId="2" ParentId="18719" CreationDate="2010-11-30T19:41:16.987" Score="1" ViewCount="" Body="&lt;p&gt;I think learning XML and XML databases would come handy these days. The simple reason is more and more information are being represented as XML (even in RDBMS dominated finance domain), such as FPML and XBRL. Handling XML data in RDBMS has several problems, hence several &lt;a href=&quot;http://en.wikipedia.org/wiki/NoSQL&quot; rel=&quot;nofollow&quot;&gt;NoSQL&lt;/a&gt; databases (e.g. eXist, MarkLogic) has taken a front seat, which primarily use XQuery and XSLT as the language. Learning XQuery+XML is always a good option, as few industries (like publishing) has predominantly XML driven and are moving towards XQuery based products to get things done. So, if you have done ample work in database, learning another kind of database would definitely benefit you.&lt;/p&gt;&#xA;" OwnerUserId="8869" LastActivityDate="2010-11-30T19:41:16.987" />
  <row Id="22630" PostTypeId="2" ParentId="22609" CreationDate="2010-11-30T19:46:25.420" Score="6" ViewCount="" Body="&lt;p&gt;The periods of downtime should be used to explore ways to make the current application better.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Is there a complete suite of unit tests in place?  If there isn't, that should be the first step.  You will learn &lt;em&gt;unit testing.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Once the unit tests are in place, you and your employer can begin exploring ways to clean up the current logic. You will learn &lt;em&gt;refactoring.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Where the current logic is sound, comments can be added to the code to make it clearer to the next person what is happening.  You will learn the value of &lt;em&gt;good documentation.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;New technologies and features can be explored after that.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Failing that, ask for a side project that you can work on (or invent one that appeals to the business owners), and work on that during your downtime.  Make a case for using modern technologies and tools in the side project.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-30T22:24:34.703" LastActivityDate="2010-11-30T22:24:34.703" CommentCount="1" />
  <row Id="22631" PostTypeId="2" ParentId="22623" CreationDate="2010-11-30T19:49:08.413" Score="1" ViewCount="" Body="&lt;p&gt;The generic term for that sort of interface is &quot;command line&quot;. You'll probably do better googling for that than for &quot;text user interface&quot;.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-11-30T19:49:08.413" CommentCount="1" />
  <row Id="22632" PostTypeId="2" ParentId="22609" CreationDate="2010-11-30T20:01:37.573" Score="4" ViewCount="" Body="&lt;p&gt;You situation is rather common. I'll try to be succinct.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;However now I'm stuck mainly maintaining and developing for an in-house system which is quite old&#xA;  I'm almost getting the feeling that I've taken it as far as I can&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That happens a lot. That's one standard and very ubiquitous reason why people move on.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;just over 2 years now from straight out of university&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Meaning you're young and have to use the time in a smart way to get the maximum knowledge and experience before middle life strucks you. If you're seeing that you won't be progressing any further then maybe you should start looking around.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;To move or not to move?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depends on you personal situation. Whether you have a family to support, whether it's hard to find a different job in your region and so on. Also depends on you. Do you want to grow, expand your knowledge horizons and challenge yourself or do you rather have relaxed and comfortable life. Maintenance job has also an advantage in that it doesn't occupy your mind too much and keeps you fresh to work in the evenings on your personal projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Options without moving&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Find a place in your code to apply some new technology or technique. Talk to your superiors, present your ideas and who knows, perhaps they will approve that.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Bring a laptop with you on the days you have nothing to do. Research things or work on your personal projects (bad ethically and dangerous legally, but depends on your employer - maybe he'll have nothing against it).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Look for opportunities to learn something valuable besides code - the business domain or communication with customers, for instance. Ask your employer to send you on certain business trainings for soft skills or financially support you getting some certifications.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;P.S.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;with most of its logic within stored procedures&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's not necessarily bad. :)&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-11-30T20:01:37.573" />
  <row Id="22633" PostTypeId="2" ParentId="22559" CreationDate="2010-11-30T20:01:47.340" Score="1" ViewCount="" Body="&lt;p&gt;It depends on what your code is doing. If there are sensible defaults then you should use optional parameters but if there are no sensible defaults then adding optional parameters will make your code more complicated. In many instances optional parameters are a neat way of sidestepping nil checks and cutting out branching logic. Javascript doesn't have optional parameters but there is a way to emulate them with || (logical or) and I use it all the time when doing database related stuff because if the user doesn't provide some value then I substitute my own values with the help of || which saves me the trouble of writing a whole bunch of if then statements.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-11-30T20:01:47.340" />
  <row Id="22634" PostTypeId="1" CreationDate="2010-11-30T20:11:00.573" Score="6" ViewCount="544" Body="&lt;p&gt;At home I have a fast rig with my dev environment running in virtual box. that works great, but at work I have a so-so laptop that can barely push visual studio express, outlook, and a dozen chrome windows at the same time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I can either ask for a dedicated desktop to do development on, or I can ask for a slice on an existing server from IT and remote into it. Setup-wise, the remote option is faster and cheaper. But I don't know its affect on production in the long term.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've done small amounts of work through a remote connection, but never extended development. Do you have experience with this? What are some of the ads/disads to it? Did it make you less productive? &lt;/p&gt;&#xA;" OwnerUserId="3244" LastActivityDate="2010-12-30T20:24:25.070" Title="What are some advantages / disadvantages to working on a remote development machine?" Tags="&lt;work-environment&gt;&lt;tools&gt;&lt;development-process&gt;&lt;remote-desktop&gt;" AnswerCount="7" CommentCount="1" />
  <row Id="22635" PostTypeId="2" ParentId="22609" CreationDate="2010-11-30T20:15:10.040" Score="1" ViewCount="" Body="&lt;p&gt;I'm in a similar position at the moment...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be honest, I think both sides of this argument can be correct, depending on exactly what the company environment is like: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can agree with the people who say that this is a good opportunity to be proactive and use all that &quot;free&quot; time to learn new technologies, and possibly improve on existing applications/processes at your current company. I wouldn't use company resources to develop my own applications/business ideas though (certainly not anything more than simple hobby apps that can be justified as internal technology evaluation - and not anything that's going to be directly applied to any other business).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the flipside, there &lt;em&gt;are&lt;/em&gt; environments out there (dilbertesque, political, restrictive) that just sap the energy out of you. No amount of &quot;good attitude&quot; can fix a situation where you're being deliberately kept down and smothered by toxic management and ego trips. Though I do agree that one's own outlook and attitude can go a long way to mitigate this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I'm getting out of my rut by quitting and taking a personal self-funded &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000076.html&quot; rel=&quot;nofollow&quot;&gt;sabbatical&lt;/a&gt; next year - to take stock of my life and career (Joel's story in the link was essentially my inspiration - among some other similar career burnout and shakeup stories). Just bear in mind that the &quot;your attitude counts&quot; people are always right to some degree, and how you percieve things is very personal. Unless your workplace truly is toxic, chances are that if you're feeling dissatisfied, it has more to do with your own internal motivations than with anything really being very &quot;wrong&quot; with what you're doing at work.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastEditorUserId="5064" LastEditorDisplayName="" LastEditDate="2010-11-30T21:06:19.093" LastActivityDate="2010-11-30T21:06:19.093" />
  <row Id="22636" PostTypeId="2" ParentId="22634" CreationDate="2010-11-30T20:26:19.447" Score="2" ViewCount="" Body="&lt;h3&gt;Go Local&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Remoting to another machine for development has other issues concerns, primarily network latency. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Loss of direct machine control. Freezing issues? Where do you power off?&lt;/li&gt;&#xA;&lt;li&gt;Network speeds. &lt;/li&gt;&#xA;&lt;li&gt;Multiple monitors&lt;/li&gt;&#xA;&lt;li&gt;Attaching peripherals. USB keys, discs, hardware tokens&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What about remote access? Take your laptop to a co-lo or take your laptop and then figure out how you are going to remote into your dev env? Working remotely at all? That would be another issue. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also I'm not convinced it will necessarily be faster remotely unless you have a good intranet setup and a very fast server.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-11-30T20:38:19.423" LastActivityDate="2010-11-30T20:38:19.423" />
  <row Id="22637" PostTypeId="2" ParentId="22634" CreationDate="2010-11-30T20:27:19.290" Score="2" ViewCount="" Body="&lt;p&gt;Our team is switching away from virtuals for development, and there are 2 devs left using virtuals. I personally like using virtuals for development as that lets me have multiple operating systems and the ability to roll changes back much easier than if they are on my desktop machine. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the advantages is that many of us like to try out new fangled components and technology, and many times the beta/CTP items cannot be fully uninstalled. In one developer's case, it meant that his desktop machine cannot be used for development anymore, so it is now his email machine. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Advantages:  &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Lets you have lots of different operating systems to develop and check items. This makes it easier to reproduce OS specific issues. &lt;/li&gt;&#xA;&lt;li&gt;In cases of hardware failures, it lets you be up and running several days faster than if you had to reinstall all your software from scratch.&lt;br&gt;&#xA;2.1 You will find that there will come a time when some third party control is no longer offered for sale/license and you won't be able to reinstall it. This was why we had to maintain a 15 year old computer to build a certain shipping product - it used a particular 3rd party control with aggressive copy protection and the vendor had long gone out of business. This product has since been migrated to .NET (from VB5), and this last crippled old machine was finally shut down last winter.  &lt;/li&gt;&#xA;&lt;li&gt;It is easier to test things as a limited user account. Most of our devs don't do so, but I find it easier to make sure that our software (much of which is used in large corporations where the users are all locked down with minimal permissions) can run as a regular user instead of as an administrator. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Disadvantages:  &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I develop on a virtual in my desktop machine. This makes things much slower than if I were developing on my host machine. Visual studio has a LOT of disk I/O, so that slows things down a lot.  &lt;/li&gt;&#xA;&lt;li&gt;Our servers are starved for hard disk space, and we tend to buy cheap servers that are useless from a &quot;developing in a virtual&quot; environment.  &lt;/li&gt;&#xA;&lt;li&gt;Domain switching will break a lot more things than you can possibly imagine for a developer. Due to integration issues, our large company decided to switch everyone to a new standard domain this year. If you ever have to do such a thing, my recommendation is to back up your virtuals, check every last bit of code in, and build new virtuals on the new domain. In a virtual, you could theoretically still log in with your old credentials to uninstall stuff.   &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I have not found that it made me less productive. Some things are slower, but not enough to be significant. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-30T20:27:19.290" CommentCount="3" />
  <row Id="22638" PostTypeId="2" ParentId="22525" CreationDate="2010-11-30T20:28:05.603" Score="2" ViewCount="" Body="&lt;p&gt;Every programming language changes a little bit about how you think about programming in general. A concrete example I can give you is when I started to learn haskell and all of a sudden the functional bits of javascript, ruby, and python just made a whole lot more sense. I had never used foldl in any of my code before but after haskell I pretty much see it everywhere I see arrays. So chances are high that if you learn some C you will become much more aware of the relative performance characteristics of various constructs in your favorite language. A few minutes ago I was listening to a talk about writing speedy and optimized javascript and the speaker said  &quot;If it is hard to do in C then it will be really slow in javascript.&quot; His intent being that javascript is an interpreted language and the interpreter is either written in C or C++. This went right over my head because I have very little C experience and I have no idea what's hard or easy in C.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-11-30T20:28:05.603" />
  <row Id="22639" PostTypeId="2" ParentId="22416" CreationDate="2010-11-30T20:28:51.067" Score="6" ViewCount="" Body="&lt;p&gt;@tcrosley's answer is excellent.   You do not need to be an electrical engineer, but knowing the basics helps. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think you need to fear being &quot;too low on the software stack&quot;.  I've had to solve many very interesting problems as an embedded engineer.   You mention a list of tasks you enjoyed:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Concurrent algorithms - Dealing with asynchronous hardware level interrupts has as many interesting challenges as using an OS thread model.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Designing data structures - Check.  Design for compactness and efficient access.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Developing frameworks - Check.  On bare bones systems, you can end up designing a mini-OS.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Writing a compiler - maybe not, but you can end up doing low-level code optimization similar to the assembly generation step of a compiler.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'd pick working on embedded systems over coding UI's any day.  You'll never forget the first time you watch a machine start moving the way you programmed it to.  It's way more satisfying than pushing pixels.&lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2010-11-30T20:28:51.067" CommentCount="1" />
  <row Id="22640" PostTypeId="2" ParentId="22634" CreationDate="2010-11-30T20:29:14.763" Score="5" ViewCount="" Body="&lt;p&gt;I used to work for month trough a Remote Desktop Session and very small internet connection (less than 2mbps).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Pro&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I can work from any &quot;host&quot; computer from anywhere in the world, as soon as it contains Remote Desktop client.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Latency as JoshK suggests&lt;/li&gt;&#xA;&lt;li&gt;Can't take advantage of multiple monitors&lt;/li&gt;&#xA;&lt;li&gt;Sounds is not in sync&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-11-30T20:29:14.763" CommentCount="5" />
  <row Id="22641" PostTypeId="2" ParentId="9964" CreationDate="2010-11-30T20:36:33.477" Score="2" ViewCount="" Body="&lt;p&gt;It depends. If the work on the OS project helps you to look more experienced for the job you are applying for, you should definitely include it on the CV. The GPL argument is nonsense and anybody who is afraid of the GPL needs to learn a lesson or two. (See all the other answers)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if the OS project is irrelevant for the for the job you are applying to, you might decide not to mention it, for the simple reason that it probably won't impress the recruiter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, if I had to apply for a C#-Job, I would not include my open source project written in C (padJoy, a plugin for playstation emulators), but I would probably mention a few (nontrivial) patches I've once sent to the DotGNU portable.net team (a project similar to Mono).&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-11-30T20:36:33.477" />
  <row Id="22642" PostTypeId="1" AcceptedAnswerId="22646" CreationDate="2010-11-30T20:41:12.050" Score="11" ViewCount="535" Body="&lt;p&gt;I have seen several times on this site posts that decry Java's implementation of generics. Now, I can honestly say that I have not had any issues with using them. However, I have not attempted to make a generic class myself. So, what are your issues with Java's generic support?&lt;/p&gt;&#xA;" OwnerUserId="6415" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-11-30T20:43:54.310" LastActivityDate="2011-02-10T04:59:37.477" Title="What is wrong with Java's generics?" Tags="&lt;java&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="3" />
  <row Id="22643" PostTypeId="1" AcceptedAnswerId="22694" CreationDate="2010-11-30T20:47:37.300" Score="11" ViewCount="639" Body="&lt;p&gt;It's not that this doesn't make sense, but it just works out awkward 99% of the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often in 2D graphics rectangles are initialized, stored and manipulated as a pair of points.  In no particular language,&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Rect:&#xA;   p1, p2: point&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It makes more sense to define a rectangle as two x values and two y values, like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Rect&#xA;   xleft, xright: int&#xA;   ytop, ybottom: int&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;With two points, if at some place in the source code you want to make use of the y value of the top, you'd have to say rect.p1.y  (hmmm, stop and think, is it p1 or p2) but with the four values as plain data members, it's clear and direct:  rect.ytop (no thinking required!)     The use of two points means that in dealing with the vertical, you have to tangle the horizontal; there's an extraneous relation between indepenent elements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How did this two-point idea come about and why does it persists?  Does it have some benefit over bare x and y coordinates?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ADDED NOTE: This question is in the context of X-Y aligned rectangles, such as in windows managers and GUI toolkits, not in the context of arbitrary shapes in drawing and painting app.&lt;/p&gt;&#xA;" OwnerUserId="4280" LastEditorUserId="4280" LastEditorDisplayName="" LastEditDate="2010-12-09T03:59:04.617" LastActivityDate="2010-12-09T03:59:04.617" Title="What's the idea behind defining rectangles with two points?" Tags="&lt;data-types&gt;&lt;graphics&gt;&lt;conventions&gt;" AnswerCount="16" CommentCount="9" FavoriteCount="2" />
  <row Id="22644" PostTypeId="2" ParentId="22643" CreationDate="2010-11-30T20:52:10.497" Score="6" ViewCount="" Body="&lt;p&gt;Well &lt;code&gt;p1: Point&lt;/code&gt; and &lt;code&gt;p2: Point&lt;/code&gt; are each going to have &lt;strong&gt;two &lt;code&gt;int&lt;/code&gt; coordinates&lt;/strong&gt; in them anyway, so doesn't your class amount to the same thing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if you store those two points as first-class &lt;code&gt;Point&lt;/code&gt; objects, don't you get a little more utility from them?  In most graphical coordinate systems that I know of, points are subclassed in this way to create a hierarchy of objects: &lt;code&gt;point -&amp;gt; circle -&amp;gt; ellipse&lt;/code&gt; and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you make an object  that doesn't use the &lt;code&gt;Point&lt;/code&gt; class, you have divorced that object from the rest of the class hierarchy.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-11-30T20:52:10.497" CommentCount="4" />
  <row Id="22645" PostTypeId="2" ParentId="22597" CreationDate="2010-11-30T20:54:06.983" Score="5" ViewCount="" Body="&lt;p&gt;&quot;late&quot; in an agile methodology means the same thing it means in a waterfall methodology: the estimates were wrong, the scope was too big for the allotted time, unexpected difficulties appeared, the customer wasn't responsive enough, the programmers got lazy, the machines crashed, your dog ate my bytecode, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;you learn from it and adjust for the next iteration&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the difference is that this can happen every 2-4 weeks, so the lessons get learned and the process gets adjusted &lt;em&gt;rapidly&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-30T20:54:06.983" CommentCount="1" />
  <row Id="22646" PostTypeId="2" ParentId="22642" CreationDate="2010-11-30T20:54:22.380" Score="10" ViewCount="" Body="&lt;p&gt;Java's generic implementation uses &lt;a href=&quot;http://en.wikipedia.org/wiki/Type_erasure&quot; rel=&quot;nofollow&quot;&gt;type erasure&lt;/a&gt;. This means that your strongly typed generic collections are not strongly typed at all. Of course the benefits of compile time type correctness outweigh the general silliness of type erasure and obsessive focus on backwards compatibility.&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-11-30T20:54:22.380" CommentCount="11" />
  <row Id="22647" PostTypeId="2" ParentId="22643" CreationDate="2010-11-30T20:54:34.613" Score="1" ViewCount="" Body="&lt;p&gt;Isnt that exactly the same thing as 2 points?  How is this awkward... most drawing routines require points, not separate x/y components.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-11-30T20:54:34.613" />
  <row Id="22649" PostTypeId="2" ParentId="22643" CreationDate="2010-11-30T20:56:08.107" Score="2" ViewCount="" Body="&lt;p&gt;i think it makes more sense for a rectangle to be represented by an x and y extent and a point; you could even make the location point the center of the rectangle so it would be independent of rotation&lt;/p&gt;&#xA;&#xA;&lt;p&gt;but it was probably easiest to code it as two points!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-11-30T20:56:08.107" CommentCount="4" />
  <row Id="22650" PostTypeId="2" ParentId="22416" CreationDate="2010-11-30T21:00:48.213" Score="1" ViewCount="" Body="&lt;p&gt;I was in a similar situation about 8 years ago. I had at that point 7 years of software development in application and server environments.  My only experience dealing low level with hardware before had been writing in Z80 assembler as a teenager on a ZX spectrum.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was certainly a challenge.  I found dealing with the chip sets in assembler very enjoyable and I certainly learned a lot about hardware.  A substantial part of my role was in testing the hardware using software, so learning to cope with programming and recognising that your software bug is actually a hardware bug.  Actually sometimes it can take quite a bit of work by software and hardware people to identify if a bug is hardware or software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One aspect that I failed to deliver on was device driver work.  I never really grasped this, which is one thing that myself and that company director never understood why. It just became an accepted fact.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Becomming familiar with an occiloscope and a soldering ion will be essential. remembering that when a hardware guy says the number 26 he ALWAYS means 0x26 is useful.  Realising that Hardware engineers find dealing with software very frustrating helps, but then, a hardware project that doesn't involve software is called a cable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I stayed in that role for 4 years and only left because I was poached for a really fantastic opportunity.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-11-30T21:00:48.213" CommentCount="1" />
  <row Id="22651" PostTypeId="2" ParentId="22634" CreationDate="2010-11-30T21:06:03.917" Score="1" ViewCount="" Body="&lt;p&gt;For a few years I always had a really good desktop computer at the office and a laptop that I didn't even bother to install tools on, I only used it to remote into the desktop. But, the vast majority of time then I was working at the office on the desktop and only use the laptop if I have to work odd hours due to a deployment or maybe a personal appointment or something. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My main motivations for doing it were for performance and so I only had to keep all my tooling and servers up-to-date on one machine. The performance was better in most ways, yes I had a little lag in screen refreshes but the machine was faster at doing builds and running most servers so all in all I could get a lot more done this way. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Downsides:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I can't remote in, I'm dead in the water. This happened only a few times, but without remote control I was pretty well hamstrung. I did have remote access to a few development servers and could do some things but usually not any coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No good way to get dual screen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Poor color depth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some latency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These days I use a laptop that has pretty good performance, and I do the docking thing and lug it back and forth every day that I go into the office. This works well for me now because I work from home about half the time now.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-30T21:06:03.917" />
  <row Id="22652" PostTypeId="2" ParentId="22549" CreationDate="2010-11-30T21:06:08.693" Score="2" ViewCount="" Body="&lt;p&gt;Microsoft has switched to 2 levels of certification [A]: &lt;em&gt;Technology Specialist&lt;/em&gt; and &lt;em&gt;IT Professional&lt;/em&gt; for most things [B]. The idea is to measure basic and advanced proficiency in all sorts of areas, so it ends up looking far more tangled and complicated than it really is. This is aggravated by fact that their site is frequently not up to date, as exams which are to be &lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/exam-dev.aspx#tab4&quot; rel=&quot;nofollow&quot;&gt;retired&lt;/a&gt; frequently show up on lists as still required/optional, and new exams frequently don't get added to the site until months after they have been released. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/mcts.aspx#tab2&quot; rel=&quot;nofollow&quot;&gt;Technology Specialist&lt;/a&gt; is the entry level version (100 level if you prefer) which usually consists of 1 exam.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/mcitp.aspx#tab2&quot; rel=&quot;nofollow&quot;&gt;IT Pro&lt;/a&gt; certification builds on the MCTS cert and adds a number of other exams to it. Not all &quot;technologies&quot; have an IT Pro cert.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, presuming you are interested in SQL Server 2008 administration, you would take exam &lt;a href=&quot;http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-432&amp;amp;locale=en-us&quot; rel=&quot;nofollow&quot;&gt;70-432&lt;/a&gt;[C] to get the MCTS. Then when you have more experience, you would add &lt;a href=&quot;http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-450&amp;amp;locale=en-us&quot; rel=&quot;nofollow&quot;&gt;70-450&lt;/a&gt; and the pair of those would get you &quot;MCITP: Database Administrator 2008&quot;. They broke SQL Server certification into 3 parallel tracks: admin, development and &quot;business intelligence&quot;[D]. You can get MCTS or MCITP in any of the 3 you wish. You only need all 3 if you think you will someday get the master certification. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can take exams in any order you feel like. &lt;em&gt;Do not get the idea that you must take them in any particular order.&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Notes:&lt;br&gt;&#xA;A - There is a third level, the &quot;master&quot; level, but since that costs about $18k for the on-site portion at Microsoft in Redmond, that it is basically a &quot;forget about it&quot; type of thing.&lt;br&gt;&#xA;B - The &lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/mcpd.aspx#tab2&quot; rel=&quot;nofollow&quot;&gt;MCPD&lt;/a&gt; (&quot;professional developer&quot;) certifications for developers are quite complicated and I can go into those if you wish.&lt;br&gt;&#xA;C -If you are still a student, there are some &lt;a href=&quot;http://www.microsoft.com/learning/student-career/en/us/career-offer.aspx#exams&quot; rel=&quot;nofollow&quot;&gt;student&lt;/a&gt;/academic priced exams that start with 72 instead of 70 and cost a lot less ($55 vs $125). Your transcript will not specify if they were academic priced, regular priced, or beta exams.&lt;br&gt;&#xA;D - Cynical folks would call that &quot;reporting.&quot; &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-11-30T21:06:08.693" CommentCount="2" />
  <row Id="22653" PostTypeId="2" ParentId="2846" CreationDate="2010-11-30T21:07:26.817" Score="1" ViewCount="" Body="&lt;p&gt;NetLogo, a programming language designed for agent simulations. Honestly, you can barely see a worse designed language. Just to name a few most apparent flaws:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It contains objects (namely turtles and patches), yet there isn't an easy/intuitive way to reference them (no turtle.something or patch.something). The methods are called directly and the object is &quot;inferred&quot; from the calling context.&lt;/li&gt;&#xA;&lt;li&gt;It allows using hyphens in variable names - therefore if you want to write an expression with a minus sign, you must make damn sure you don't forget to add spaces around it.&lt;/li&gt;&#xA;&lt;li&gt;Contains tons of methods and built-in keywords which differ only in minor details.&lt;/li&gt;&#xA;&lt;li&gt;Completely weird array syntax&lt;/li&gt;&#xA;&lt;li&gt;It is tightly coupled to the GUI. GUI components generally present global variables that are not declared within the code though.&lt;/li&gt;&#xA;&lt;li&gt;Syntax inconsistency between various built-in constructs like &lt;i&gt;if condition [ code ]&lt;/i&gt; and &lt;i&gt;while [condition] [ code ]&lt;/i&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1309" LastActivityDate="2010-11-30T21:07:26.817" CommunityOwnedDate="2010-11-30T21:07:26.817" />
  <row Id="22654" PostTypeId="2" ParentId="22569" CreationDate="2010-11-30T21:22:35.867" Score="0" ViewCount="" Body="&lt;p&gt;AFAIK, the usual career path after a master's in CS is general software development.  In that case, neither theory nor AI are particularly relevant.  A developer's job would require the knowledge of the specific programming language and platform being used for the project, and the ability to solve problems and design systems.  An MS can help you achieve that if you learn several programming languages in different paradigms, data structures, algorithms, and operating system concepts.  Once you are done you should be able to quickly learn new languages, platforms, libraries, and frameworks, and also to come up with algorithms that solve whatever problems you are given, and with designs for software systems that implement them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About theory, I think you are misunderstanding the term.  Theory of computation refers to the problems of computability and complexity.  It is about being able to prove what can and cannot be computed, and what the time or space complexity (efficiency) of a particular algorithm is.  Programing languages is actually a separate research field in computer science, although it is entirely possible that your university has lumped the two together when they designed the master's program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Theory in the sense of computability and complexity is relevant for the deep understanding it gives you.  You need to be able to look at an algorithm and determine how well it will scale when the amount of data increases, and whether or not it will finish within your lifetime.  This is what often separates programmers who are self-taught or who took a 3 month programming course, from those who got a degree in CS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programing Language design helps you understand what happens under the hood of the compiler or an interpreter, and it helps you gauge the relative strengths and weaknesses of different languages.  However, few people today get to design a language of their own that would actually be used by anyone else, or to implement their own compiler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;AI is a huge field.  The two sub-areas of AI that I am most familiar with are computer vision and machine learning, which these days is almost entirely statistical modeling.  If you do computer vision you may be able to get a job working on image or video processing, image or video indexing and retrieval, video surveillance systems, industrial quality control systems, etc.  However these jobs are not nearly as numerous as general software engineering jobs.  If you do machine learning, you have a shot at a job in the financial sector doing various types of statistical modeling, which often pays big bucks.  But again, I would expect that such jobs are not easy to come by.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to summarize, if your goal is to get a decent job, then you should concentrate on general programming skills, data structures, algorithms, and systems design.  More &quot;researchy&quot; topics will certainly expand your intellectual horizons.  However, they are likely to be directly applicable to only a small subset of careers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, assuming you are in the US, you should be able to get a teaching or a research assistanship at your CS department, which would pay your tuition and even give you a stipend to keep you from starving to death.  If you have to pay for the master's out of your own pocket, that is a whole separate discussion.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-11-30T21:22:35.867" CommentCount="4" />
  <row Id="22655" PostTypeId="2" ParentId="22597" CreationDate="2010-11-30T21:28:10.180" Score="4" ViewCount="" Body="&lt;p&gt;Anytime you make a commitment of some kind, you run the risk of being late. That applies to agile as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But we know you cannot predict the future, and we know the customer will constantly change his mind, and we agree that is a good thing. If we accept that, we must also accept that all commitments are pretty much always wrong, which, in turn, makes the question about lateness easy to answer: &lt;strong&gt;We are always wrong&lt;/strong&gt; (to early or to late). It's all a matter of guesses, no matter how well polished. Toss a coin.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is something we as developers simply must accept, and from that standpoint try to find another way to work, a way in which the lateness issue is made much less important. A change of perspective. I think the way to do that is focusing on delivering working software as soon a possible, with an option of quitting when the customer is satisfied. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;And that is what agile is all about. A clever way to managing &#xA;  this uncomfortable notion that lateness is&#xA;  a fact and we simply have to deal with it the best we can.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;For example, you are late when you fail to deliver on the commitments you did at the beginning of the current iteration. This is expected and you should learn from this and adapt your process so you are less likely to fail in the next iteration. The best way to handle this is to keep iterations as small as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For multi iteration planning, aka release planning, you use the velocity calculated from the completed iterations and extrapolate the data to a predict a future release date. I recommend James Shores' &lt;a href=&quot;http://jamesshore.com/Blog/Use-Risk-Management-to-Make-Solid-Commitments.html&quot; rel=&quot;nofollow&quot;&gt;article&lt;/a&gt; or my &lt;a href=&quot;http://blog.workingsoftware.se/2010/09/burn-up-or-burn-down.html&quot; rel=&quot;nofollow&quot;&gt;own&lt;/a&gt; (shorter) for more details about this. Note that it's never a solid commitment though and more of a &quot;we are 80% certain that we will complete the next features by that date&quot;. This can (sort of) result in you being late, but the commitment is only a probability, not a fact.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now par this with the basic promise of agile that you should always ready to release working software, feature complete or not. This gives the customer the freedom to stop development when he thinks the system is good enough, which can happen a lot sooner than anticipated. It also encourages taking the project in new directions based on real feedback from the latest iteration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The above points should be more then enough for any customer to be in full control of the development, and I hope that answers the question about lateness in agile methods.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-12-01T07:21:55.180" LastActivityDate="2010-12-01T07:21:55.180" />
  <row Id="22656" PostTypeId="2" ParentId="22643" CreationDate="2010-11-30T21:29:13.537" Score="0" ViewCount="" Body="&lt;p&gt;As @Steven says, I think it should be in terms of one (x,y) point, and a (w,h) size vector. That's because it's easy to fall into an ambiguity. Suppose you have the following filled-in rectangle starting at point (0,0).&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  012&#xA;0 XXX&#xA;1 XXX&#xA;2 XXX&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Clearly it's width,height are (3,3), but what is it's second point?&#xA;Is it (2,2) or (3,3)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This ambiguity can cause all kinds of problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I learned the hard way years ago that it's better to think of graphic coordinates as the lines &lt;em&gt;between&lt;/em&gt; the pixels, not as the lines the pixels are &lt;em&gt;on&lt;/em&gt;.&#xA;That way there's no ambiguity.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-11-30T21:29:13.537" CommentCount="2" />
  <row Id="22657" PostTypeId="2" ParentId="22643" CreationDate="2010-11-30T21:33:06.323" Score="3" ViewCount="" Body="&lt;p&gt;This is why I like Delphi's &lt;code&gt;TRect&lt;/code&gt;.  It's defined as a variant record (union struct in C-speak) that can be interpreted either as a TopLeft and a BottomRight point, or Top, Left, Bottom and Right integers, whichever is more convenient at the moment.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-11-30T21:33:06.323" CommentCount="1" />
  <row Id="22658" PostTypeId="2" ParentId="22568" CreationDate="2010-11-30T21:42:37.223" Score="0" ViewCount="" Body="&lt;p&gt;I wouldn't even try. Just tell them if they want to do both sets of changes now it will cost less than if you do a release now for their recent changes and then a later release that brings in the old-set of changes that are on hold. Why? Because a release itself costs money.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-11-30T21:42:37.223" CommentCount="1" />
  <row Id="22659" PostTypeId="2" ParentId="22634" CreationDate="2010-11-30T21:45:34.943" Score="2" ViewCount="" Body="&lt;p&gt;I have used remote machines quite a bit, and as long as whatever I was remoting with was decent enough to do multi-monitors and enough colors it was fine, but Visual Studio on a virtual machine has always given me issues with slowness and bad performance in highly parallel situations (VS10 on less than 4 cores is irritating IMHO, and few of the VM solutions do 4+ cores well) so I almost always remote to a physical machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I had to do it in a VM I would do it on VMWare ESX or ESXi as I have had the best luck with high performance multicore VMs on their platform.  A few of my coworkers use virtualbox, and it is better than many, but still pretty laggy when doing something like debugging with a bunch of watches and some remote debugging.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-11-30T21:45:34.943" />
  <row Id="22660" PostTypeId="2" ParentId="22516" CreationDate="2010-11-30T21:47:09.550" Score="2" ViewCount="" Body="&lt;p&gt;I think you'd find Michael Bolton's blog post about stopping heuristics for testing useful to read:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.developsense.com/blog/2009/09/when-do-we-stop-test/&quot; rel=&quot;nofollow&quot;&gt;http://www.developsense.com/blog/2009/09/when-do-we-stop-test/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may recognise some of the heuristics people have suggested in this thread.&lt;/p&gt;&#xA;" OwnerUserId="8805" LastActivityDate="2010-11-30T21:47:09.550" />
  <row Id="22661" PostTypeId="2" ParentId="22643" CreationDate="2010-11-30T21:53:56.127" Score="1" ViewCount="" Body="&lt;p&gt;Defining rectangles as point pairs allows you to reuse the point as a vertex for another shape.  Just a thought...&lt;/p&gt;&#xA;" OwnerUserId="4534" LastActivityDate="2010-11-30T21:53:56.127" CommentCount="3" />
  <row Id="22662" PostTypeId="2" ParentId="22643" CreationDate="2010-11-30T21:56:08.757" Score="1" ViewCount="" Body="&lt;p&gt;I believe it is mainly to establish uniformity between all shape primitives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure you can define rectangle in many different ways, but how do you define a triangle, or a star, or a circle in a way that can use similar data structures?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All polygons can be defined by their points, with a short amount of logic to determine what to do with the points.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Graphics libraries primarily operate on these polygons in terms of vertices and edges, so points and the lines between them, all the calculations work on these two features, well that and facets, but that itself is just a function of the edges.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-11-30T21:56:08.757" />
  <row Id="22663" PostTypeId="2" ParentId="22541" CreationDate="2010-11-30T21:56:43.233" Score="3" ViewCount="" Body="&lt;p&gt;Programming languages are never completely replaced. What does change, is the choice of language for doing a particular task or attacking a particular application domain. Low level systems software is still written in C where C++ has no real advantage. However, GUI applications can be written with C++ because screen widgets can be modeled well using OOP principles. Text parsing can be done in C or C++ but Perl is better for that purpose. However, you would not want to fork/exec a lot using Perl.&#xA;A replacement of C++ would involve finding a new language which is suited for the same application domain in a superior way. Looking at the GUI market of C++ apps, the decisions to be made are: large library support, strong object oriented features, C like syntax. My answer is Python. It is clearly a winner on all these counts. With Moore's law showing no signs of abatement, software construction time will definitely dominate the industry's decisions. Find a language which lets you express ideas clearly, helps you maintain your code long term and you have a winner. The interpreted nature of Python and the speed arguments vanish when one realizes that hardware keeps getting faster and memory is not an issue for most applications, and that automatic garbage collection leads to more robust applications because of reduced buffer overflow problems.&#xA;However, if you are really concerned with speed, I would say that there will never be a replacement for C, which is exactly what has happened - C++ never really replaced C for OS construction.&lt;/p&gt;&#xA;" OwnerUserId="8880" LastActivityDate="2010-11-30T21:56:43.233" />
  <row Id="22664" PostTypeId="2" ParentId="22504" CreationDate="2010-11-30T21:57:50.423" Score="7" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Toolchain setup&lt;/strong&gt; - IDEs, CI server, code quality server, source control, webserver, databases, issue tracker etc. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Backups&lt;/strong&gt; - What role does each person in the team have? What processes/modules does he 'own' and who is his backup?&lt;/li&gt;&#xA;&lt;li&gt;(User-Acceptance) &lt;strong&gt;Test environment&lt;/strong&gt; setup - Not only continuous integration w. unit tests, but integration tests to cover the really bad things, multiple platforms, application servers, VMs, etc.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Performance Tests&lt;/strong&gt; setup - The earlier the better, since you will need historic data to answer &quot;With which feature/milestone did the performance drop so badly?&quot;&lt;/li&gt;&#xA;&lt;li&gt;(End-User) &lt;strong&gt;Documentation outline&lt;/strong&gt; - What is going to be in the documentation? What type(s) of documentation is needed? &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Marketing channels&lt;/strong&gt; - How are internal milestones and external releases being announced? Do you have a cool name for the software, a logo, colors, wording etc.?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Internal communication&lt;/strong&gt; - How are peers from other teams going to be informed about changes? How is collaboration being done? Wiki? Access rights?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Quality Assurance&lt;/strong&gt; people &amp;amp; process - Who is going to test what, how often and with what criteria?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Release process&lt;/strong&gt; - When, how often, how, who is doing it, who is receiving the release etc.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Risk management&lt;/strong&gt; - Worst-Case Scenario (from a project mgmt pov and from a runtime pov, e.g. 'customer is losing money because software failed at module X, what is the backup plan?)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Securing&lt;/strong&gt; of the core development environment, e.g. virtualizing it for Escrow&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Locations&lt;/strong&gt; for formal and informal meetings&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Training&lt;/strong&gt; or intros for all the people, so they know what all the setup is, what each part is for and how they use it.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Identifying the caretaker&lt;/strong&gt; and give him all the things (e.g. permissions) he needs to actually take care of when things go bad&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7942" LastActivityDate="2010-11-30T21:57:50.423" CommentCount="3" />
  <row Id="22665" PostTypeId="2" ParentId="22504" CreationDate="2010-11-30T22:03:12.023" Score="2" ViewCount="" Body="&lt;h2&gt;Negiotiate more man-days.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;It is a rare event when people allocate enough initially.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[Later... &lt;em&gt;re-negiotiate&lt;/em&gt; even more...]&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-11-30T22:03:12.023" CommentCount="7" />
  <row Id="22666" PostTypeId="2" ParentId="22516" CreationDate="2010-11-30T22:06:54.507" Score="1" ViewCount="" Body="&lt;p&gt;In my experience it has been enough by applying &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Pareto_principle&quot; rel=&quot;nofollow&quot;&gt;Pareto principle&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-12-01T10:12:24.753" LastActivityDate="2010-12-01T10:12:24.753" CommentCount="2" />
  <row Id="22667" PostTypeId="2" ParentId="22642" CreationDate="2010-11-30T22:08:50.030" Score="1" ViewCount="" Body="&lt;p&gt;The usual criticism is the lack of reification. That is to say objects at runtime do not contain information about their generic arguments (although the information is still present on fields, method, constructors and extended class and interfaces). This means that you could cast, say, &lt;code&gt;ArrayList&amp;lt;String&amp;gt;&lt;/code&gt; to &lt;code&gt;List&amp;lt;File&amp;gt;&lt;/code&gt;. The compiler will give you warnings, but it will also warn you if you take an &lt;code&gt;ArrayList&amp;lt;String&amp;gt;&lt;/code&gt; assign it to an &lt;code&gt;Object&lt;/code&gt; reference and then cast it to &lt;code&gt;List&amp;lt;String&amp;gt;&lt;/code&gt;. The upsides are that with generics you probably shouldn't be doing the casting, performance is better without the unnecessary data and, of course, backward compatibility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people complain that you cannot overload on the basis of generic arguments (&lt;code&gt;void fn(Set&amp;lt;String&amp;gt;)&lt;/code&gt; and &lt;code&gt;void fn(Set&amp;lt;File&amp;gt;)&lt;/code&gt;). You need to use better method names instead. Note that this overloading would not require reification, as overloading is a static, compile-time issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Primitive types don't work with generics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wildcards and bounds are quite complicated. They are very useful. If Java preferred immutability and tell-don't-ask interfaces, then declaration-side rather than use-side generics would be more appropriate.&lt;/p&gt;&#xA;" OwnerUserId="735" LastActivityDate="2010-11-30T22:08:50.030" />
  <row Id="22668" PostTypeId="2" ParentId="1376" CreationDate="2010-11-30T22:14:13.020" Score="1" ViewCount="" Body="&lt;p&gt;It sounds like this happens relatively frequently - which makes me wonder, is it because most of the bugs are genuinely hard to repro, or is it for some other reason that he's not trying?  Do you know &lt;em&gt;why&lt;/em&gt; he isn't trying to reproduce the issue?  Is it because he doesn't realise how important it is to you?  Or is it perhaps that he has other pressures - a test manager who just wants him to get through the allotted tests quickly and throw the bugs over the wall, for example? Or maybe he's just not sure how to go about it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd agree with others that working on better logging is a priority.  In the meantime, if you suspect that lack of tester skill/confidence may be an issue, then I really like this article from &lt;a href=&quot;http://tejasconsulting.com/papers/bug-isolation-pnsqc-2004.pdf&quot; rel=&quot;nofollow&quot;&gt;Danny Faught on bug isolation&lt;/a&gt; - you could point him at that for a start.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the problem turns out to be due to management pressure - you have my sympathies, as that's a tough one to crack, especially if testers &amp;amp; programmers report to different managers and the managers aren't inclined to &quot;help out&quot; another team.&lt;/p&gt;&#xA;" OwnerUserId="8805" LastActivityDate="2010-11-30T22:14:13.020" />
  <row Id="22669" PostTypeId="1" CreationDate="2010-11-30T22:30:32.277" Score="0" ViewCount="127" Body="&lt;p&gt;I just finished reading &lt;a href=&quot;http://www.reuters.com/article/idUSTRE5BL3FV20091222?type=technologyNews&quot; rel=&quot;nofollow&quot;&gt;this article&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="86" LastActivityDate="2010-11-30T22:36:31.493" ClosedDate="2010-12-01T03:21:47.053" Title="What was the patent that Microsoft Word's custom XML violated?" Tags="&lt;microsoft&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="22670" PostTypeId="2" ParentId="22598" CreationDate="2010-11-30T22:32:42.637" Score="2" ViewCount="" Body="&lt;p&gt;If I can concurrently examine all tables even while playing then:&lt;br&gt;&#xA;Given that all games progress at the same speed for simplicity...(i could adjust for this)  &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&#xA;while(not satisfied with winnings)&#xA; keepcurrenttable == 1 || Wait for positive count threshold on any one table  &#xA;  if Z/(min bet)&gt;%chance of win*payout  &#xA;    next  &#xA;  else  &#xA;    Play hand according to standard counting rules.  &#xA;  endif&#xA;if (%chance of win on another table*payout on another table &gt; same for current) &amp;&amp; Z/(min bet)&gt;%chance of win*payout&#xA;  change tables  &#xA; elseif currenttable %chance of win*payout &gt;&#xA;  keepcurrenttable=1&#xA; else&#xA;  keepcurrenttable=0&#xA; endif&#xA;next&#xA;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;still some bugs in there and doesn't account for EVERYTHING, but you get where I'm going  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;there's a lot more to %chance of win  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;number of players should be minimally pertinent(more players == faster burning through decks)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;does less players mean I can play more hands concurrently?(that would require heavier weight on player count)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;additionally, count threshold could be defined with a risk appetite meter.&lt;/p&gt;&#xA;" OwnerUserId="4534" LastActivityDate="2010-11-30T22:32:42.637" />
  <row Id="22671" PostTypeId="2" ParentId="22669" CreationDate="2010-11-30T22:36:31.493" Score="2" ViewCount="" Body="&lt;p&gt;Here you go:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.zdnet.com/blog/btl/examine-the-patent-that-made-selling-microsoft-word-a-crime/22595&quot; rel=&quot;nofollow&quot;&gt;http://www.zdnet.com/blog/btl/examine-the-patent-that-made-selling-microsoft-word-a-crime/22595&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6423" LastActivityDate="2010-11-30T22:36:31.493" CommentCount="4" />
  <row Id="22672" PostTypeId="1" AcceptedAnswerId="22675" CreationDate="2010-11-30T22:44:10.177" Score="0" ViewCount="80" Body="&lt;p&gt;Code view in the Microsoft Visual Basic 6.0 IDE defaults to something Courier-looking. How can I change this to another font I have installed? (say, Consolas)&lt;/p&gt;&#xA;" OwnerUserId="8883" LastActivityDate="2010-11-30T22:50:47.473" Title="How to change code display font in MS VB6?" Tags="&lt;ide&gt;&lt;fonts&gt;&lt;vb6&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="22673" PostTypeId="2" ParentId="22623" CreationDate="2010-11-30T22:47:15.887" Score="0" ViewCount="" Body="&lt;p&gt;Don't worry, there are hundreds of standards to choose from :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am sadly more comfortable with text- and console-based applications than their older graphical window brethren.  Too many days on FidoNet I fear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The very first thing I would do is learn a few VT100 codes from the old Digital company.  You may never write applications in &lt;a href=&quot;http://wiki.bash-hackers.org/scripting/terminalcodes&quot; rel=&quot;nofollow&quot;&gt;VT100 codes&lt;/a&gt; (likely advise against it), but it is a very good and simple introduction to controlling the console matrix.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Libraries such as &lt;a href=&quot;http://en.wikipedia.org/wiki/Curses_%28programming_library%29&quot; rel=&quot;nofollow&quot;&gt;curses&lt;/a&gt; wrap these control codes (and many other style terminal codes) and abstract them so that users can login via their own terminals.  Things like VT100 can even do remote (local) printing with which we still struggle today in RDP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To make things worse for you, IBM systems use not line- or character-based control, but screen- and block-based protocols.  Examples are the &lt;a href=&quot;http://en.wikipedia.org/wiki/3270&quot; rel=&quot;nofollow&quot;&gt;3270&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/5250&quot; rel=&quot;nofollow&quot;&gt;5250&lt;/a&gt; terminal protocols which for the lack of a better comparison act in the request|response architecture think HTTP.  As capable as these are, they are a true PITA IMNSHO with which to work and should be their own separate question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Worse than that would be writing a console application in a DOS/Windows world.  Do reply with your target development platform.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-11-30T22:47:15.887" />
  <row Id="22674" PostTypeId="2" ParentId="22634" CreationDate="2010-11-30T22:48:20.020" Score="1" ViewCount="" Body="&lt;p&gt;RDP -can- work well, depending on your connection.  Is there a way to test this out to see how much latency you'd have, before committing to one or the other?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A service pack for Windows 7 is supposed to support multi-monitor RDP (not sure when that is due to come out, maybe it's available already).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;VNC-based solutions seem alright, but I've definitely had better experiences with RDP.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-11-30T22:48:20.020" />
  <row Id="22675" PostTypeId="2" ParentId="22672" CreationDate="2010-11-30T22:50:47.473" Score="2" ViewCount="" Body="&lt;p&gt;Pretty sure its under Tools-&gt;Options, Editor Format Tab Font drop down&lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-11-30T22:50:47.473" CommentCount="3" />
  <row Id="22676" PostTypeId="2" ParentId="22643" CreationDate="2010-11-30T22:56:58.317" Score="8" ViewCount="" Body="&lt;p&gt;I always liked defining a rectangle as a point + width and height, where the point is the upper-left corner of the rectangle.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Rect {&#xA;  float x, y;&#xA;  float width, height;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And then add whatever methods you need to fetch the other metrics. Like the &lt;a href=&quot;http://download.oracle.com/javase/1.4.2/docs/api/java/awt/Rectangle.html#field_summary&quot; rel=&quot;nofollow&quot;&gt;Java&lt;/a&gt; version&lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-12-01T06:36:39.830" LastActivityDate="2010-12-01T06:36:39.830" CommentCount="6" />
  <row Id="22677" PostTypeId="2" ParentId="22559" CreationDate="2010-11-30T23:03:17.847" Score="0" ViewCount="" Body="&lt;p&gt;The problem with optional arguments is that people tend to just tuck on more and more (and more) arguments to the function instead of extracting relevant code into a new function. This is taken to the extreme in &lt;a href=&quot;http://se.php.net/array_multisort&quot; rel=&quot;nofollow&quot;&gt;php&lt;/a&gt;. For instance:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;bool array_multisort ( array &amp;amp;$arr [, mixed $arg = SORT_ASC&#xA;                      [, mixed $arg = SORT_REGULAR [, mixed $... ]]] )&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-12-01T07:14:18.333" LastActivityDate="2010-12-01T07:14:18.333" />
  <row Id="22678" PostTypeId="2" ParentId="22643" CreationDate="2010-11-30T23:07:37.007" Score="3" ViewCount="" Body="&lt;p&gt;Surely if you define your rectangle as:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Rect&#xA;{&#xA;    Point bottomLeft;&#xA;    Point topRight;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;then you know straight away which point is which.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even better would be to add extra properties that allowed you to manipulate the rectangle in which ever ways you needed for your application. These would simply update the underlying data structure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By adding a transformation to the shape you can orient your rectangle any way you'd like. You'd still need an axis aligned bounding box for quick accept/reject checks :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if your model allows rectangles in any orientation without applying a transformation then &quot;bottom left&quot; and &quot;top right&quot; have no meaning, which leads back to &quot;p1&quot; and &quot;p2&quot; (or something equivalent).&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-12-01T00:01:29.860" LastActivityDate="2010-12-01T00:01:29.860" CommentCount="2" />
  <row Id="22679" PostTypeId="2" ParentId="22568" CreationDate="2010-11-30T23:12:04.910" Score="1" ViewCount="" Body="&lt;p&gt;You are building a truck.  You think you want to use it for towing, so you want a bigger engine and brakes.  Brakes are cheaper so you put those in first.  No wait....You might not need to tow.  Pause engine choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You now want better gas mileage so it needs to be lighter you swap out some components so it's lighter, but if you can't decide on the heavy engine/towing or not.  The big brakes might now cause it to break traction and skid out of control.  If we take out the big brakes the truck might not stop.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either situation poses a problem.  To finish end tasks, dependent tasks should be complete or double/triple work is generated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Moving forward at all creates double work.  Double work costs money or time. More money == over budget / more time == outside of time-line.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can make a logical problem physical more people understand it...the money relation never hurts.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMO, you get to try and explain cost impact once.  If they don't get it, you point out that new deliverables require contract renegotiation.  Are you nearing a payment milestone?  That could be it too, they want to force either you eating the feature, or contract renegotiation failure so they can move to another development team with the progress they have and not pay for it.&lt;/p&gt;&#xA;" OwnerUserId="4534" LastActivityDate="2010-11-30T23:12:04.910" />
  <row Id="22680" PostTypeId="2" ParentId="1376" CreationDate="2010-11-30T23:21:35.307" Score="0" ViewCount="" Body="&lt;p&gt;Well, the first task is to have a reproducible test system. Your tester &lt;em&gt;must&lt;/em&gt; have a well-defined process - automatic if at all possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have these three conditions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Same binary&lt;/li&gt;&#xA;&lt;li&gt;Same steps&lt;/li&gt;&#xA;&lt;li&gt;Same machine&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If the bug sporadically appears with the above 3 conditions, begin to isolate further. Consider each level of the system stack and its configuration. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One way to detect memory management errors is to run the program on multiple OSs with multiple compilers. Valgrind can also help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, typically parallel systems are liable to induce non-repro bugs. Things like buffer sizes and processing speeds, asynch io, database locks, variable memory write interleavings; all of those can generate issues. And so forth and so on.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-11-30T23:21:35.307" />
  <row Id="22681" PostTypeId="2" ParentId="19003" CreationDate="2010-11-30T23:36:29.797" Score="0" ViewCount="" Body="&lt;p&gt;I'd recommend looking at the Association for Software Testing's &lt;a href=&quot;http://www.associationforsoftwaretesting.org/training/&quot; rel=&quot;nofollow&quot;&gt;BBST Foundations&lt;/a&gt; online course.  This will give them a really solid understanding of testing fundamentals, as well as letting them make connections with other testers, so they're not just dependent on you guys for everything, but have a community who they can go to for ideas and help.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The course materials are also freely available online, but given that the Foundations course is free with AST membership, I'd strongly recommend doing the online course. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(If you do have a budget for external training, then don't bother with test certification courses, they're expensive, and tend to promote heavyweight documentation approaches that will divert your new testers onto spending time creating endless paperwork rather than testing your code. They also won't teach them to test.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other good resources:  Try looking up James Bach, Michael Bolton, Elizabeth Hendrickson (if they don't love the Test Heuristics Cheat Sheet, then you may not have picked the right candidates).  Point them at sites like the Software Testing Club.  Send them along to the Weekend Testers.  &lt;/p&gt;&#xA;" OwnerUserId="8805" LastActivityDate="2010-11-30T23:36:29.797" />
  <row Id="22682" PostTypeId="2" ParentId="22643" CreationDate="2010-11-30T23:39:28.127" Score="4" ViewCount="" Body="&lt;p&gt;Actually, a rectagle isn't defined by 2 points. A rectangle can only be defined by two points if it is parallel to the axes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are several ways to represent rectangles that are parallel to the axes:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Two diagonally opposite points&lt;/li&gt;&#xA;&lt;li&gt;One corner point, height and width&lt;/li&gt;&#xA;&lt;li&gt;Centre point, half height and width (uncommon, but sometimes useful).&lt;/li&gt;&#xA;&lt;li&gt;As two X coordinates and two Y coordinates&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;For (1), many libraries use a convention to determine which two points are used - topLeft and bottomRight, for example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The choice of representation may be driven by the original purpose of the rectangle definition, but I imagine that it &lt;strong&gt;often arbitrary&lt;/strong&gt;. The representations are equivalent in the information that they carry. They do, however, differ in the ease with which properties of the rectangle may be calculated and the the convenience with which operations can be performed on the reectangle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Benefits of definition (1) over others include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Consistency of API with other polygons, lines etc.&lt;/li&gt;&#xA;&lt;li&gt;topLeft, bottomRight can be passed to any method that accepts points&lt;/li&gt;&#xA;&lt;li&gt;Methods of Point class can be called on topLeft, bottomRight&lt;/li&gt;&#xA;&lt;li&gt;Most properties can be derived easily, eg. bottomLeft, topRight, width, height, centre, diagonal length, etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-11-30T23:39:28.127" />
  <row Id="22683" PostTypeId="2" ParentId="22643" CreationDate="2010-11-30T23:49:36.780" Score="1" ViewCount="" Body="&lt;p&gt;In two dimensions, storing a rectangle as two points is clearer than defining a particular corner and a width and height - consider negative width or height, or the calculations required to determine each option from the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Performing rotations on a rectangle defined by points is also much simpler than one defined with a point plus width and height.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd expect encapsulation to make this differentiation unimportant as a user of the class.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A rectangle should be defined as three points to be well defined in 3 dimensions.  I'm not entirely sure of the requirement for defining a rectangle in 4 or more dimensions.&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-11-30T23:49:36.780" />
  <row Id="22684" PostTypeId="2" ParentId="2846" CreationDate="2010-11-30T23:53:48.820" Score="1" ViewCount="" Body="&lt;p&gt;I hate every programming language that I don't know or don't like using. &lt;/p&gt;&#xA;" OwnerUserId="8518" LastActivityDate="2010-11-30T23:53:48.820" CommunityOwnedDate="2010-11-30T23:53:48.820" CommentCount="2" />
  <row Id="22685" PostTypeId="1" AcceptedAnswerId="22712" CreationDate="2010-12-01T00:14:25.277" Score="4" ViewCount="185" Body="&lt;p&gt;In all projects that I have been involved with that have had input from an outside consultant the question has been asked about what sort of Configuration Management we were using. In none of these cases has the consultant been able to define Configuration Management. So what is it?&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-12-01T05:19:25.650" Title="What is Configuration Management?" Tags="&lt;development-process&gt;&lt;management&gt;&lt;configuration&gt;" AnswerCount="3" CommentCount="5" FavoriteCount="1" />
  <row Id="22686" PostTypeId="2" ParentId="22552" CreationDate="2010-12-01T00:16:34.263" Score="0" ViewCount="" Body="&lt;p&gt;We built a web based multiple listing service application. The first one took the most time but the idea was to build a solid app that could be cloned quite easily. While a fair amount of R &amp;amp; D went into the first one, we were able to turn them out fairly quickly and did make a profit on each one we sold.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't work there anymore but it's still a good application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.webfodder.com/web-website-design-real-estate-MLS-listings-portfolio.asp&quot; rel=&quot;nofollow&quot;&gt;Webfodder MLS Application&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6801" LastActivityDate="2010-12-01T00:16:34.263" />
  <row Id="22687" PostTypeId="2" ParentId="18120" CreationDate="2010-12-01T00:16:40.690" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Good decision:&lt;/strong&gt;  Switched jobs frequently early on in my career (1 year per job average)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This had multiple benefits.  &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;I accumulated many more skills than I would have had I stayed in one job.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I felt freer to &quot;experiment&quot; with jobs, since I wasn't considering them as permanent positions.  As a result, I've ended up with a career I never would have considered had I assumed my first job would be permanent - but I absolutely love it (I'm an SDET)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I was able to figure out what I love and hate about my career field (because all jobs have pros and cons), and have learned to target jobs with more of what I love and less of what I hate.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Since I've had to look for work 5 times in the 5 years since I graduated college, I've become very good at interviewing.  I am now very confident that I could get a great job tomorrow, if for some reason things didn't work out at my current job.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Because I'm so good at interviewing and confident that I can get a good job no matter what, I can sell myself more accurately to employers (because I'm not afraid of showing my weaknesses - e.g., &quot;Won't work 60+ hours per week, not good with pointers&quot;), and also know how to grill my potential employers without putting them off, to decide if I'm willing to work for them.  The result is a really, really good fit between myself and my current employer.  And less time wasted interviewing with people who I didn't really want to work for anyways.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Bad decision:&lt;/strong&gt;  Didn't take care of health and family issues pro-actively because I was afraid that I'd lose my job if I didn't focus on my career right then.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Result?  Got fired from a job that had problems, but could have been a permanent job if I'd been healthy enough to work through those problems with my team and employer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Silver lining?  I learned a lot about myself, priorities, and how to handle failure.  In retrospect, getting fired was better than sitting in a career-killing job and not doing anything about it.  I took one cruddy 1-year temp job to rebuild my resume (and my confidence), and then went after (and landed) a great job doing exactly what I loved (yep, that's my current job).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Your questions:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Technology - if you live to learn, budget time for that.  Treat it like you would time with your spouse or children, and don't let what you really need to do in your job overrun it.  If you don't make time for what you love about your job (and life), you won't be able to do the rest of your work well.  If it's hard to mix learning new stuff into what you need to do in your current job, think about what other jobs you could move to that might better provide that thrill for you and make plans to move in that direction in your career.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Financially - the key things early in your career are (a) figure out what you want to do and (b) build your resume and skillset.  Unless you desperately need the money, I'd recommend taking a job that will build your career faster and pays poorly over a job that pays well but won't help you grow.  Fortunately, you often won't need to pick between the two; jobs that help you grow tend to pay better.  A job that will help you grow is one that you find interesting, that you can do (you don't want to feel like you are faking), that requires you to improve or learn at least a few skills, and that will help you get the job of your dreams when a future potential employer sees it on your resume.  Figuring out what you love to do, and building a good set of skills and a good resume, will serve your income better (and your work-life balance) in the long run.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Health - Why would a challenging job as a software developer put your health at risk?  There are great, challenging positions in software development that have reasonable hours and aren't full of a ton of stress.  In fact, long hours often points to a job that is &quot;challenging&quot; because someone else isn't doing (or didn't do) their job right - a bad manager isn't managing time, a previous team member wrote really bad code and now there are tons of bugs and fires, or maybe the company culture took a bad turn a few years back and now everyone thinks it's macho to work 80+ hours a week.  That's not the kind of challenge I want.  To me, challenge means interesting, new problems being solved with interesting, new technology by a great team that works hard together to finish the job in 40 hours a week so they don't get burnt out by work.  Of course, if 40 hours a week is difficult for you with your health, then by all means take a job with fewer hours.  You can't do challenging work if you don't have your health.  See my &quot;bad decision&quot; above.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Family life - don't try to schedule this.  You can't really predict the impact having a family will have on your career, beyond that it will require a good chunk of your free time that you might currently spend studying or reading StackOverflow.  So just let it happen when it happens, and don't miss a good opportunity to enhance your family life (marriage, children, etc.) if it comes - especially not because of your career! (My experience with this:  I married at 21, had twins at age 22, and am currently the mother of 3 at age 27; if anything, this unusual decision to start family life so young has helped my career dramatically, much to my surprise.  Of course, that's only because I have the technical skills as well - but it makes me stand out from the other technically apt applicants). &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Long career - Yes, long breaks will absolutely impact your career.  You need to have two stories for your employer when explaining a break of more than a couple of months:  First, why you have the break.  Basically, just demonstrate that you aren't lazy or unambitious.  Health, family, travel, fulfilling a dream, tried to start a business - all good explanations.  Second, why you are still up to date in the world of technology despite taking that break.  Talk about the books you read, the distance education course you took from that college, the independent coding projects you worked on, etc.  Key things to look for in a job?  That it doesn't interfere with the things you care about most (often family fits in here, maybe hobbies or health too), that it pays what you need to meet your financial obligations, that you will be motivated to do your best work in that job, and that it moves you closer to your dream job(s) and dream career.  In that order, I would say.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8888" LastActivityDate="2010-12-01T00:16:40.690" CommunityOwnedDate="2010-12-01T00:16:40.690" />
  <row Id="22688" PostTypeId="2" ParentId="22643" CreationDate="2010-12-01T00:21:45.753" Score="2" ViewCount="" Body="&lt;p&gt;I don't like it because we have thrown out a potential degree of freedom, which essentially allows for an arbitrary rotation. A general 2D rectangle has five unknowns (degrees of freedom). We could specify them as the coordinates of a point, the lengths of the two sides that form a vertex with this point, and the angle from the horizontal of the first line (the other being assumed to have an angle 90 degrees greater). An infinite number of other possibilities could also be used, but there are five independent quantities that must be specified. Some choices will lead to easier algebra than others, depending upon what is done with them.&lt;/p&gt;&#xA;" OwnerUserId="8890" LastActivityDate="2010-12-01T00:21:45.753" CommentCount="3" />
  <row Id="22689" PostTypeId="2" ParentId="22685" CreationDate="2010-12-01T00:21:52.027" Score="6" ViewCount="" Body="&lt;p&gt;Configuration Management encompasses &quot;everything else&quot; that's not directly related to writing code. So it's how you manage releases, how you manage and triage bug reports and feature suggestions, how you perform your builds and so on. It often also includes how your source code is managed (e.g. what version control you use, branching strategies, how you [possibly] manage multiple concurrent &quot;releases&quot; etc).&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-01T00:21:52.027" />
  <row Id="22690" PostTypeId="2" ParentId="22609" CreationDate="2010-12-01T00:22:28.827" Score="4" ViewCount="" Body="&lt;h2&gt;99% Similar situation&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;When I read your post, I thought I must have posted it!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since my situation was almost like yours, this is what I did:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(1) Pushed my self as far as I could. E.g. re factored existing code to make them as stable &amp;amp; fast as possible.&#xA;(2) Learned as much as I could on the job.&#xA;(3) Used downtime to learn F#, and other languages + techs.&#xA;(4) Applied elsewhere and &quot;Up-Career-Graded&quot;.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-01T00:22:28.827" />
  <row Id="22691" PostTypeId="2" ParentId="22643" CreationDate="2010-12-01T00:32:51.423" Score="0" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;Pa(x,y)*-----------------------------------*Pb(x,y)&#xA;       |                                   |&#xA;       |                                   |&#xA;       |                                   |&#xA;       |                                   |&#xA;       |                                   |&#xA;       |                                   |&#xA;Pc(x,y)*-----------------------------------*Pd(x,y)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;We can define both Pb &amp;amp; Pc thus:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Pb(Pd(x),Pa(y))&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;and&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Pc(Pa(x),Pd(y))&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;So there is no need to define all four points due to symmetry&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-01T00:32:51.423" />
  <row Id="22692" PostTypeId="2" ParentId="22609" CreationDate="2010-12-01T01:11:16.520" Score="2" ViewCount="" Body="&lt;p&gt;use the downtime to learn something you do want to do.&#xA;try to find another job &lt;em&gt;before&lt;/em&gt; you quit&lt;/p&gt;&#xA;&#xA;&lt;p&gt;.net 1.0 is better than starvation 1.0.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-01T01:11:16.520" />
  <row Id="22693" PostTypeId="2" ParentId="18387" CreationDate="2010-12-01T01:28:34.123" Score="2" ViewCount="" Body="&lt;p&gt;If you are working with everything Microsoft, &lt;a href=&quot;http://msdn.microsoft.com/en-gb/magazine/default.aspx&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;MSDN Magazine&lt;/strong&gt;&lt;/a&gt; is a must. You have an option of either subscribing to the print version or the digital version.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-12-01T01:28:34.123" CommentCount="1" />
  <row Id="22694" PostTypeId="2" ParentId="22643" CreationDate="2010-12-01T01:43:32.783" Score="5" ViewCount="" Body="&lt;p&gt;Have you considered that it is less error prone?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you use (Point1, Point2) it is then &lt;em&gt;very&lt;/em&gt; clear what you are specifying. If you provide 2 points, then the only possible error is that the user has mixed up their x and y when constructing the points as the order of the points doesn't matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you supply 4 integers, then if someone isn't paying attention, they may supply (x1,x2,y1,y2) when you wanted (x1,y1,x2,y2) or vice versa. Also, some APIs such as WCF's &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.windows.rect.aspx&quot; rel=&quot;nofollow&quot;&gt;Rect&lt;/a&gt; structure define a rectangle as (x, y, width, height) which could then cause confusion over what (1, 2, 3, 4) means. Is that (x, y, w, h) or (x1, y1, x2, y2) or (x1, x2, y1, y2)? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All in all, (Point1, Point2) seems a bit safer to me. &lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-12-01T01:43:32.783" CommentCount="1" />
  <row Id="22695" PostTypeId="2" ParentId="18387" CreationDate="2010-12-01T01:49:08.473" Score="3" ViewCount="" Body="&lt;p&gt;If it's .Net, &lt;strong&gt;&lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/&quot; rel=&quot;nofollow&quot;&gt;Eric Lippert's blog&lt;/a&gt;&lt;/strong&gt; is a must on your reading list. Eric tells us much of the &lt;em&gt;Why&lt;/em&gt; behind decisions being made in the C# language and .Net in general and gives much insight into some of the trickier kinds of issues that could become bugs if not thought about well enough.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-12-01T01:49:08.473" />
  <row Id="22696" PostTypeId="2" ParentId="22559" CreationDate="2010-12-01T02:01:06.157" Score="-1" ViewCount="" Body="&lt;p&gt;Optional parameters are a great way to make simple things simple and complicated things possible simultaneously.  If there's a clear reasonable default that most users will want, at least in quick and dirty use cases, then they should not have to write boilerplate to manually specify it every single time they call your function.  On the other hand, if people might have a good reason for wanting to change it, then it needs to be exposed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using a class is IMHO a terrible solution, as it's verbose, inefficient and inconsistent with the typical mental model of what a class does.  A function is the perfect abstraction for a verb, i.e. doing something and returning.  A class is the right abstraction for a noun, i.e. something that has state and can be manipulated in several ways.  If the former should be the API user's mental model, &lt;strong&gt;then don't make it a class.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-12-01T02:01:06.157" />
  <row Id="22697" PostTypeId="2" ParentId="22542" CreationDate="2010-12-01T02:10:31.370" Score="2" ViewCount="" Body="&lt;p&gt;Smalltalk is a general-purpose programming language that is used for all sorts of stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of consulting companies treat Smalltalk as their &quot;secret weapon&quot; that allows them to outbid and outperform their competitors, for example. Some of them even go so far as to develop their own Smalltalk implementations. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;E.g. &lt;a href=&quot;http://eXept.De/en/products/smalltalk/&quot; rel=&quot;nofollow&quot;&gt;Smalltalk/X&lt;/a&gt; is the in-house platform for &lt;a href=&quot;http://eXept.De/en/&quot; rel=&quot;nofollow&quot;&gt;eXept Software&lt;/a&gt;. In a similar vein, &lt;a href=&quot;http://Lesser-Software.Com/lswvst.htm&quot; rel=&quot;nofollow&quot;&gt;Lesser Vision-Smalltalk&lt;/a&gt; is the secret weapon of &lt;a href=&quot;http://Lesser-Software.Com/&quot; rel=&quot;nofollow&quot;&gt;Lesser Software&lt;/a&gt;. They actually use it for Windows desktop applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is widely used in the financial industry for modeling complex financial products such as derivatives, swaps, etc. So widely, in fact, that some Smalltalk community leaders have jokingly accepted full responsibility for the 2007 meltdown.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Smalltalk excels the more complex the domain is. &lt;a href=&quot;http://Trendly.Com/&quot; rel=&quot;nofollow&quot;&gt;Trendly&lt;/a&gt; uses an interesting mix of languages and its lead developer, Avi Bryant, gave a good description of what the particular languages are useful for. He said something like &quot;we use Smalltalk for the thinking, Java for the muscle, ECMAScript for the pretty face and Ruby to glue it all together&quot;. So, the complex statistical models and algorithms are in Smalltalk, the actual brute-force calculations are done in Java and the results are rendered dynamically on the client-side in ECMASCript.&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-12-01T02:10:31.370" />
  <row Id="22698" PostTypeId="2" ParentId="22643" CreationDate="2010-12-01T02:38:46.667" Score="1" ViewCount="" Body="&lt;p&gt;It's completely arbitrary. You need four pieces of information to draw a rectangle. The library designer(s) decided to represent it with two points (each with an x-y coordinate), but could easily have done it with x/y/w/h or top/bottom/left/right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suppose the OP's real question is: &lt;em&gt;why&lt;/em&gt; was this particular choice made?&lt;/p&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2010-12-01T02:38:46.667" />
  <row Id="22699" PostTypeId="2" ParentId="22642" CreationDate="2010-12-01T02:51:11.617" Score="0" ViewCount="" Body="&lt;p&gt;I think other answers have said this to some degree, but not very clearly.  One of the problems with generics is losing the generic types during the reflection process.  So for example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;List&amp;lt;String&amp;gt; arr = new ArrayList&amp;lt;String&amp;gt;();&#xA;assertTrue( ArrayList.class, arr.getClass() );&#xA;TypeVarible[] types = arr.getClass().getTypedVariables();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, the returned types can't tell you that arr's generic types are String.  It's a subtle difference, but it's important.  Because arr is created at runtime the generic types are erased at runtime so you can't figure that out.  As some stated ArrayList looks the same as ArrayList from a reflection standpoint.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This might not matter to the user of Generics, but let's say we wanted to create some fancy framework that used reflection to figure out fancy things about how the user declared an instance's concrete generic types.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Factory&amp;lt;MySpecialObject&amp;gt; factory = new Factory&amp;lt;MySpecialObject&amp;gt;();&#xA;MySpecialObject obj = factory.create();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Let's say we wanted a generic factory to create an instance of MySpecialObject because that's the concrete generic type we declared for this instance.  Well Factory class can't interrogate itself to find out the concrete type declared for this instance because Java erased them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In .Net's generics you can do this because at runtime the object knows it's generic types because the compiler complied it into the binary.  With erasures Java can't do this.&lt;/p&gt;&#xA;" OwnerUserId="5592" LastActivityDate="2010-12-01T02:51:11.617" />
  <row Id="22700" PostTypeId="1" AcceptedAnswerId="22704" CreationDate="2010-12-01T03:02:22.153" Score="3" ViewCount="442" Body="&lt;p&gt;I think how we program in future will be affected to a large extent by larger technological and non technological factors influencing software industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FWIW here is what I believe significant factors &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Non Technological)&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;End of IP. With P2P it is very difficult to enforce IP. Companies are trying to counter this by more and more intrusive and draconian measures. However I believe there will be push-back effectively ending IP as it exists. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;(Technological)&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Web. In future more and things are going to be on and done through web.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Multi-device. Smart Phones, Notebooks or may be wearable PC, software will have to address them all. This also raises issue of device connectivity.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Innovation in hardware. Multicore seems trend in near future. Anything may happen in long term though (quantum computing, Optical computing, DNA computing etc)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What in your opinion will be a. those factors and b. how will they affect software industry (and by extension programming). &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Note: I realize this is no clear cut answer to this but try as far as possible to discuss in &lt;strong&gt;unambiguous&lt;/strong&gt; terms&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note 2: This question is different from &lt;a href=&quot;http://programmers.stackexchange.com/q/9539/8073&quot;&gt;a related question&lt;/a&gt; in that I am interested in trends in software industry and not specifically programming. &lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-01T06:56:35.997" Title="Future Trends In Software Industry" Tags="&lt;software&gt;&lt;technology&gt;&lt;future&gt;&lt;prediction&gt;" AnswerCount="4" />
  <row Id="22701" PostTypeId="2" ParentId="22642" CreationDate="2010-12-01T03:12:01.987" Score="3" ViewCount="" Body="&lt;p&gt;Observe that answers that have already been provided concentrate on the combination of Java-the-language, JVM and the Java Class Library.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is nothing wrong with Java's generics as far as Java-the-language is concerned. As described in &lt;a href=&quot;http://stackoverflow.com/questions/355060/c-vs-java-generics&quot;&gt;C# vs Java generics&lt;/a&gt;, Java's generics are pretty much fine on the language level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's suboptimal is that the JVM doesn't support generics directly, which has several major consequences:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the reflection-related parts of the Class Library can't expose the full type information that was available in Java-the-language&lt;/li&gt;&#xA;&lt;li&gt;some performance penalty is involved &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I suppose the distinction I am making is a pedantic one as Java-the-language is ubiquitously compiled with JVM as the target and Java Class Library as the core library.&lt;/p&gt;&#xA;" OwnerUserId="3278" LastActivityDate="2010-12-01T03:12:01.987" CommentCount="6" />
  <row Id="22702" PostTypeId="2" ParentId="22609" CreationDate="2010-12-01T03:16:07.947" Score="1" ViewCount="" Body="&lt;p&gt;You're not guaranteed to find new work that you love.  I've typically gone from one job that I enjoyed to one that I hate, back to one that I enjoy, back to one that I hate.  It's like girlfriends.  The one after a long relationship is always a rebound.  But, seriously, leaving a job that you like is hard, and it's easy to get one that you don't like.  I think you're heart is ready to go, but maybe your head tells you no.  Every developer is looking for green field development where they can pick the direction and choices.  Those jobs are the fun ones.  Pure maintenance work is not fun, and nobody likes doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think bigger things are ahead of you, and you owe it to yourself to find those things.  What you have that other's don't is time to find the right job.  You like your job so you can look without getting frustrated and taking something you'll regret.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take it slow start getting in a habit of looking at new job postings.  Update your resume, and compare how well you line up with their requirements.  If you're seeing some skill over and over you don't have spend sometime to acquire some knowledge about it.  Next, interview a couple times with places just to get a better picture of other places.  This will let you see what other places are like to work at, and it gets you in interview shape so you can get ready to jump to job you want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to stay, that's cool too, you say you enjoy it.  Can't beat that.  Maybe it's a new project, maybe it's being a team lead, or maybe it's joining another team in a different part of the company.  It doesn't hurt to talk to your manager about options or career goals you have.  You don't want to say you're looking for a new job, but here's what I think I might be interested where I can I do that here.  If you do decide to move on it's less of a shock if you've shown interest in doing something new.  Of course I've often just left without warning so you'll be ok.&lt;/p&gt;&#xA;" OwnerUserId="5592" LastActivityDate="2010-12-01T03:16:07.947" />
  <row Id="22703" PostTypeId="2" ParentId="22700" CreationDate="2010-12-01T03:34:32.033" Score="0" ViewCount="" Body="&lt;p&gt;(non-tech)&#xA;IP will never go away. People always want their money. However, I think a more fluid IP model will evolve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(tech)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for 1, HTML 5 will be a big thing shortly. I think a continuing trend will be integrating all the HTML, CSS, and Javascript front-end developers have to do. Some templating languages, ie HAML, smarty, etc. already integrate front and back-end development, however I think this could be done much much better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for 2, I think multi-device doesn't cover it. I believe, very shortly, most applications will not only need to be cross-device, but web-enabled also. This allows users to access their data from any computer or device. We are currently having to write a massive API to handle all the data that comes in from our apps from iOS (and soon Android) plus our web enabled stuff. We are trying to expand this, because I believe every app will need to be non-device specific.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for 3, Quantum Computing holds the best outlook for maintaining Moore's Law.&lt;/p&gt;&#xA;" OwnerUserId="7566" LastActivityDate="2010-12-01T03:34:32.033" CommentCount="2" />
  <row Id="22704" PostTypeId="2" ParentId="22700" CreationDate="2010-12-01T03:34:37.320" Score="4" ViewCount="" Body="&lt;p&gt;Well thing one thing that drives our industry and gives rise to change is &quot;The Platform Change.&quot;  Every time we create a new platform everything gets adapted to that platform again.  Mainframe-&gt;Mini Computer-&gt;PC-&gt;Web-&gt;Web2.0-&gt;Mobile-&gt;?  See we really haven't done anything that they couldn't do in the 70s from an algorithm perspective.  So since that time we've basically just doing the same things just on different platforms.  And the people who target those platforms first make the money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The platforms I'm interested in are mobile, big data, and cloud.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mobile space is really hot, and has been hot for 3 years so you'd think it'd cool down by now, but it's just getting crazier.  We're are approaching a bubble, and something will blow it up just as the web exploded in 2000, but that's just the first wave and it will crest again.  My hunch is that cross platform in the mobile space is horrible.  Java was supposed to do this, but J2ME was a failure.  Fragmentation in mobile space is it's biggest problem.  HTML5 might shatter that, but I think there's opportunity here even for smaller players.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The new forms of databases, NoSQL movement, are creating systems that can out perform databases in certain situations.  Web scale has broken the single database, and how we build scalable systems is radically changing.  And it's awesome because databases have been the sacred cow for far too long.  We're changing the way we relate to persistence and it's a very good thing because 80% of our code is dedicated to changing our objects into rows in a database.  If we don't have to do that anymore where will we spend our time?  It's also allowing us to build scalable systems without tons of scaling architecture to build.  This also includes big data crunching algorithms like map reduce, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally it's waaaaay over hyped, but cloud computing is changing the rules of the game.  We can scale out on demand, we can prepackage an image that can be reproduced and spun up in 15 minutes.  Scaling horizontally has never been this easy ever.  Cloud computing is a platform, and understanding what it can do is vital.  Even if your CTO/CIO won't shut up about it. :-)&lt;/p&gt;&#xA;" OwnerUserId="5592" LastActivityDate="2010-12-01T03:34:37.320" CommentCount="4" />
  <row Id="22705" PostTypeId="1" CreationDate="2010-12-01T03:54:18.833" Score="3" ViewCount="137" Body="&lt;p&gt;i just basically realized that it's almost impossible to truly learn and master each programming language/technology before a new version is released.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;so my initial thought was to focus on the .net platform, but then what about the business domain side of the thing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;does it make more sense to pursue more knowledge about the platform including taking MCPD, etc or does it makes more sense in the long run to focus on the business domain, i.e. web commerce and only things that is related?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i'm just a starting up as programmer and would like to know what's a good way to direct myself to growth so that i could master a certain area for career growth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;any tips or article would be nice ;)&lt;/p&gt;&#xA;" OwnerUserId="1670" LastActivityDate="2010-12-01T05:42:46.650" Title="Is it more important to focus on a business domain or a programming stack/technology for career growth?" Tags="&lt;programming-languages&gt;&lt;career&gt;&lt;technology&gt;&lt;business&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="22706" PostTypeId="2" ParentId="22685" CreationDate="2010-12-01T04:03:12.523" Score="1" ViewCount="" Body="&lt;p&gt;Configuration Management has meant a lot of things over time.  I consider it more important to administrators or operations than directly to developers.  When your an operations person trying to keep servers up and running you worry about setting up machines, managing their configuration, and keep it running.  If you just log into a computer and start installing software, and changing config files on a machine you're not managing that configuration.  What happens if that machine dies?  What happens if someone goes on that machine and changing a config file and everything starts to freak out?  What if you need to start up another machine configured exactly like the one that's running?  Can you do it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without a configuration management strategy you can't.  And that's why it's important.  It's all about repeatability.  Developers approach repeatability differently than operations people do so we care about repeating different things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some great open source tools that help you do this: Chef, Capistrano, Cook, and even SVN.  Why should SVN just be used by developers?  Check in your config files, scripts you use to configure machines, and track their versions.  Those parts of your organization are vital to keep it running.  You don't want to loose those.&lt;/p&gt;&#xA;" OwnerUserId="5592" LastActivityDate="2010-12-01T04:03:12.523" />
  <row Id="22707" PostTypeId="2" ParentId="22705" CreationDate="2010-12-01T04:08:34.457" Score="5" ViewCount="" Body="&lt;p&gt;(from stackoverflow)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess the answers is: &lt;strong&gt;it depends.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on what Industry you work for it might require a different level of domain knowledge for example Finanial and Medical jobs may require more business knowldge than someone who develops for Education.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you happy with the industry you work in I would say spend 50/50 of your free time futhering you skills. However if you think the job your in is only a stepping stone to bigger and better jobs focus more on the tecnical skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another point to consider is what do your want for career path to be. A technical line such as developer, technical lead, architect. Or a Manager, project manager etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the first three questions you need to ask youself are:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) do I like the industry I am in and am I still likely to be in a similar sector 5 years from now&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Where do I want my carerr to go? Techical or Bussiness&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Do I like the technology I am using at my employment? Am I stuck doing .NET when I would rather be using Ruby?&lt;/p&gt;&#xA;" OwnerUserId="8898" LastActivityDate="2010-12-01T04:08:34.457" CommentCount="1" />
  <row Id="22708" PostTypeId="2" ParentId="22705" CreationDate="2010-12-01T04:15:13.717" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;i'm just a starting up as programmer and would like to know what's a good way to direct myself to growth so that i could master a certain area for career growth.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I think it is too soon to be making judgements and decisions like this.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, it is true that is virtually impossible to entirely master a given technology.  But the flip side that you don't need to to be effective.  Experience will give you a guide as to how much (or little) you need to know ... and how/when to call on the skills of others.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;does it make more sense to pursue more knowledge about the platform including taking MCPD, etc or does it makes more sense in the long run to focus on the business domain&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Again, wait until you've more experience and figured out which aspects you like doing more.  Bear in mind that the &quot;business domain&quot; side of things changes all the time too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, if you are wanting a career path that avoids you having to learn new skills all of the time, IT is probably the wrong field for you.  IT is always changing.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-12-01T04:15:13.717" CommentCount="1" />
  <row Id="22709" PostTypeId="1" AcceptedAnswerId="22711" CreationDate="2010-12-01T04:34:06.287" Score="4" ViewCount="367" Body="&lt;p&gt;After the interview has occurred, and after the thank you letter has been sent, how long should I wait to re-contact them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I wait two weeks?  One week?&lt;/p&gt;&#xA;" OwnerUserId="969" LastActivityDate="2010-12-03T00:02:55.270" Title="How long should I wait before re-contacting someone I've interviewed with for a web development/programming job?" Tags="&lt;interview&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="1" />
  <row Id="22710" PostTypeId="2" ParentId="22705" CreationDate="2010-12-01T04:57:37.783" Score="4" ViewCount="" Body="&lt;p&gt;What's worked for me has been: &lt;strong&gt;Do what you love and the money will follow.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like math, complicated problems, writing C and C++ on Linux and Macs, and banging out code I think is cool or runs really fast or does interesting things. That's led to a career doing graphics and human interface work, and open-source development, mostly working from home, and comfortably well-paid. Much of what I do is bleeding-edge, so while I'm not a master, nobody else is either, so I get to play one on TV. :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I have friends who have been very happy developing domain expertise and sticking with one employer for decades.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So it really all depends on what makes you happy. Go for that, and you'll do great work and be in demand.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-01T04:57:37.783" />
  <row Id="22711" PostTypeId="2" ParentId="22709" CreationDate="2010-12-01T05:00:25.703" Score="8" ViewCount="" Body="&lt;p&gt;I think a week, two at the latest, is reasonable unless they mentioned a different time frame during the interview.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-01T05:00:25.703" CommentCount="1" />
  <row Id="22712" PostTypeId="2" ParentId="22685" CreationDate="2010-12-01T05:00:35.960" Score="1" ViewCount="" Body="&lt;p&gt;What Software Configuration Management (SCM) is boils down to answering the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What source files where used to make our end product?&lt;/li&gt;&#xA;&lt;li&gt;What has changed from the last time we made our end product?&lt;/li&gt;&#xA;&lt;li&gt;Why did we change it?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This in turn can grow to a quite large and ugly &quot;process&quot;. The process issues are why most developers eyes glaze over at the mention of SCM, as this means tracking source files, defects and requirements; then tying it all together so you can audit changes (This is an Ideal world from a management point of view as it gives a &lt;strong&gt;good&lt;/strong&gt; manager tools to better see what resources he needs where.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is different from ITIL Configuration Management which is actually software asset tracking, what software is running where (which server/ workstation) and what is the setup for that software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words your consultant more then likely wants to know is how YOUR company/development group answers the three questions at the top of my answer.&lt;/p&gt;&#xA;" OwnerUserId="4435" LastEditorUserId="4435" LastEditorDisplayName="" LastEditDate="2010-12-01T05:06:23.167" LastActivityDate="2010-12-01T05:06:23.167" CommentCount="1" />
  <row Id="22714" PostTypeId="1" AcceptedAnswerId="22741" CreationDate="2010-12-01T05:11:39.870" Score="24" ViewCount="1168" Body="&lt;p&gt;You've been slaving on that application for months - even years - and the world has changed a lot around you. &lt;strong&gt;What are the telltale signs that the code you're writing is already obsolete even before it gets to production?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or worse - at times (an understatement) your obsessive/compulsive nature might have already been preventing you from seeing the bigger picture. So a wake-up call is needed. &lt;strong&gt;What symptoms should you be watching out for to better grasp the situation that your computer knowledge is already obsolete?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another way of looking at it, &lt;em&gt;when&lt;/em&gt; do you apply version control principles on &lt;em&gt;yourself&lt;/em&gt;?&lt;/p&gt;&#xA;" OwnerUserId="8902" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-01T15:37:12.600" LastActivityDate="2010-12-01T18:46:11.700" Title="What are the telltale signs that the code you're writing is already obsolete?" Tags="&lt;career&gt;&lt;design&gt;&lt;software-development&gt;" AnswerCount="13" CommentCount="3" FavoriteCount="3" />
  <row Id="22715" PostTypeId="2" ParentId="22700" CreationDate="2010-12-01T05:14:56.923" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Internet_of_Things&quot; rel=&quot;nofollow&quot;&gt;The Internet of Things&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;and &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Ubiquitous_computing&quot; rel=&quot;nofollow&quot;&gt;Ubiquitous computing&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are going to grow enormously in the near future. So if today you have your plants &lt;a href=&quot;http://www.botanicalls.com/&quot; rel=&quot;nofollow&quot;&gt;calling you when they want to be watered&lt;/a&gt;, tomorrow you can have your home calling you for help when it's being burgled!&lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-12-01T05:14:56.923" />
  <row Id="22717" PostTypeId="2" ParentId="22714" CreationDate="2010-12-01T05:20:30.677" Score="30" ViewCount="" Body="&lt;p&gt;If your code is not obsolete yet, just wait five minutes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, there is software that is thirty years old that is still in production use, and many state of the art coding techniques are forty years old. People are still writing production code in c, c++ and Lisp.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software doesn't wear out, like physical things do.  The only reason software ages is we make it obsolete by changing the hardware and software that surrounds it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Techniques that are now becoming fashionable because of the need to support better concurrency were invented during the Lisp era.  Things like Lambda expressions, immutability, and first-class functions.  What was once old becomes new again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Languages, tools and frameworks come and go, but sound software development principles are eternal.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-01T05:20:30.677" CommentCount="5" />
  <row Id="22718" PostTypeId="2" ParentId="12216" CreationDate="2010-12-01T05:22:59.753" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Autofilter for Options&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Eclipse, one can type the setting you are after and it autofilters the selection. No need to dig through the '&lt;em&gt;Options tree&lt;/em&gt;'&lt;/p&gt;&#xA;" OwnerUserId="2545" LastActivityDate="2010-12-01T05:22:59.753" CommunityOwnedDate="2011-05-26T08:44:03.797" />
  <row Id="22719" PostTypeId="2" ParentId="22709" CreationDate="2010-12-01T05:41:47.507" Score="5" ViewCount="" Body="&lt;p&gt;Ask them during the interview.  They will give you a time frame.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the allotted time has passed, call them and say, &quot;Hi, this is [Name], you asked me to call you today to follow-up.&quot; &lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-01T05:41:47.507" CommentCount="1" />
  <row Id="22720" PostTypeId="2" ParentId="22705" CreationDate="2010-12-01T05:42:46.650" Score="2" ViewCount="" Body="&lt;p&gt;Start off by being a generalist. When you know enough (a little bit of everything), you can move to being a specialist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specializing at the beginning of your career magnifies your weak points and doesn't make you flexible.&lt;/p&gt;&#xA;" OwnerUserId="8902" LastActivityDate="2010-12-01T05:42:46.650" />
  <row Id="22721" PostTypeId="1" AcceptedAnswerId="22724" CreationDate="2010-12-01T05:47:35.473" Score="7" ViewCount="213" Body="&lt;p&gt;My question relates to how I should share the fees paid by clients to me and a fellow programmer, both of whom are freelancers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've thought of a few options, but I'm in a dilemma as to which one would be the most motivating for both of us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) The first option I've thought is a fifty-fifty share. However, more brainwork is going to be done by my colleague, while initially at least, I will be handling the communication with customers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) The second option is a 60-40 share, where the colleague exerting more efforts gets a bigger share. This is the option I feel most inclined to adopt, but I'm not sure how it's going to feel in the long run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) The third option is calculating each one's contribution in terms of the number of hours spent, and sharing the revenue accordingly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will be wonderful to hear everybody's thoughts on this!&lt;/p&gt;&#xA;" OwnerUserId="8903" LastActivityDate="2010-12-01T12:10:40.477" Title="Sharing programming fees with a fellow software developer" Tags="&lt;productivity&gt;&lt;project-management&gt;&lt;motivation&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="4" />
  <row Id="22722" PostTypeId="2" ParentId="22714" CreationDate="2010-12-01T05:54:50.083" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Always Ship&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is an excellent, thought provoking question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO the phrase &quot;the number 1 feature is shipping&quot; applies here.  I'd suggest pressing on, if only to reach 'positive closure' and to exercise your 'shipping muscles' even if you know that your v1.0 isn't going to have the impact you hoped for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, it's really easy to get disenheartened on a project, especially during the end game when the bugs seem endless, the hours are long, and the high cost starts to look bigger than any potential benefit.  It's easy to psych yourself out when in reality you may be still on track for success.  Imagine the downside of abandoning a perfectly good project due to the very real personal stresses negatively impacting your outlook.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In summary -- always ship.  It's during the post mortem phase after a major release that you should be considering the big questions.  If you're following some well established principals like short ship cycles, real retrospectives, solid user feedback, and listening to your peers you'll be able to see and make the big changes before you start your next ship cycle or project.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-12-01T05:54:50.083" />
  <row Id="22723" PostTypeId="1" CreationDate="2010-12-01T06:10:07.880" Score="6" ViewCount="514" Body="&lt;p&gt;After bashing my head against the brick wall that is XAML, I've decided to come here and ask other people if they are as frustrated as I am.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So,&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you like XAML? Please justify.&lt;/li&gt;&#xA;&lt;li&gt;Is XAML the problem, or the lack of good tools? My issue could be resolved if the binding system gave me a file-line number location of the binding that's failing. This isn't a XAML issue so-much-as a debugger issue.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Apart from the issues with tooling, I find that XML does not make a suitable programming language, and that XAML has workarounds to fix things that wouldn't have been a problem in any other &quot;real&quot; programming language. For example, string formatting on a binding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;XAML also breaks when you need to step outside the hierarchical structure for things like context menus. Because they are defined within the xaml hierarchy people assume that they are part of the visual hierarchy too, which is not the case. This can lead to subtle binding issues, which are difficult to debug etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a comparison, HTML-CSS-Javascript works well because each part handles a specific part of displaying a web page. HTML for data and layout, CSS for style, and Javascript for execution. In contrast, XAML is trying to do everything and fails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please note, I love WPF, so don't take this as a critisism of WPF, Silverlight or any particular WPF/Silverlight control. I'm only interested in a discussion about the XAML language.&lt;/p&gt;&#xA;" OwnerUserId="7961" LastEditorUserId="7961" LastEditorDisplayName="" LastEditDate="2010-12-08T07:50:50.250" LastActivityDate="2011-04-13T12:53:47.010" Title="XAML - Like/Dislike?" Tags="&lt;language-design&gt;&lt;wpf&gt;&lt;silverlight&gt;&lt;xaml&gt;" AnswerCount="10" CommentCount="7" FavoriteCount="2" />
  <row Id="22724" PostTypeId="2" ParentId="22721" CreationDate="2010-12-01T06:14:16.683" Score="9" ViewCount="" Body="&lt;p&gt;Money is one of those things that can leave people feeling bitter and drive them apart very quickly. Regardless of the actual percentages, make sure you and your fellow programmer have a clear understanding of the profit sharing scheme. After you had a chance to discuss profit sharing, put it in writing with each of you having a signed copy. Also, agree to revisit the approach after you had a chance to work together and get an understanding of your working dynamic. As long as both of you are satisfied with the profit sharing, you can put your thoughts to solving the problems you are hired to do and not be distracted by the financial side.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-12-01T06:14:16.683" CommentCount="1" />
  <row Id="22725" PostTypeId="2" ParentId="22721" CreationDate="2010-12-01T06:15:06.187" Score="0" ViewCount="" Body="&lt;p&gt;As a programmer, it's easy to overvalue programming. Sure, without that there's no product to sell, but without the rest you're basically programming as a hobby.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I say base it on time spent, so long as you trust each other to track your times honestly. Otherwise 50/50.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2010-12-01T06:15:06.187" />
  <row Id="22726" PostTypeId="2" ParentId="12216" CreationDate="2010-12-01T06:28:35.217" Score="14" ViewCount="" Body="&lt;p&gt;This feature is not from other IDE, but very important to have in VS:&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Evaluate Lambda expressions while debugging&lt;/h2&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-12-01T06:28:35.217" CommunityOwnedDate="2011-05-26T08:44:03.797" />
  <row Id="22727" PostTypeId="2" ParentId="22714" CreationDate="2010-12-01T06:29:19.573" Score="4" ViewCount="" Body="&lt;p&gt;The half-life of computer programming knowledge is - according to an article I saw once, but cannot locate now on the Pragmatic Programmer site - around 7 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, every 7 years half of all you know about computers and programming is obsolete.  So you need to keep learning new stuff and make what you do maintainable in the future.  The latter includes putting as much of your knowledge as is possible inside your code deliver, as well as automate the process for creating and deploying new versions as much as possible.  The really hard part is telling future maintainers the &lt;em&gt;why&lt;/em&gt;'s - because code only tells you &lt;em&gt;how&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-01T06:29:19.573" CommentCount="4" />
  <row Id="22728" PostTypeId="2" ParentId="22643" CreationDate="2010-12-01T06:35:31.170" Score="1" ViewCount="" Body="&lt;p&gt;The choice of parameters are only important to the low-level designers / coders. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;High-level users only need to think about:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;IsPointInRect&lt;/li&gt;&#xA;&lt;li&gt;Area&lt;/li&gt;&#xA;&lt;li&gt;Intersection (or Clipping)&lt;/li&gt;&#xA;&lt;li&gt;HasOverlap (same as Intersection.Area &gt; 0)&lt;/li&gt;&#xA;&lt;li&gt;Union (becomes a list of rectangles)&lt;/li&gt;&#xA;&lt;li&gt;Subtraction (a list of rectangles that represent the same point set that is in rect A but not in rect B)&lt;/li&gt;&#xA;&lt;li&gt;Transform&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Shifts in X and Y&lt;/li&gt;&#xA;&lt;li&gt;Rotation (0, 90, 180, 270)&lt;/li&gt;&#xA;&lt;li&gt;Scaling in X and Y &lt;em&gt;(see note)&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Simple syntax for properties Xmin, Xmax, Ymin, Ymax, Width, Height so that the user does not need to know the exact choice of parameters.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Note: In order to minimize loss of precision during scaling transform, it is sometimes appropriate to implement a second Rect class that uses floating-point coordinates, so that intermediate results can be stored accurately in a sequence of transforms and only rounded to integer in the last step.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-12-01T06:35:31.170" />
  <row Id="22729" PostTypeId="2" ParentId="12216" CreationDate="2010-12-01T06:55:03.720" Score="20" ViewCount="" Body="&lt;h2&gt;Code Bubbles&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.andrewbragdon.com/codebubbles_site.asp&quot; rel=&quot;nofollow&quot;&gt;http://www.andrewbragdon.com/codebubbles_site.asp&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; They're here!!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://research.microsoft.com/en-us/projects/debuggercanvas/&quot; rel=&quot;nofollow&quot;&gt;http://research.microsoft.com/en-us/projects/debuggercanvas/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7961" LastEditorUserId="7961" LastEditorDisplayName="" LastEditDate="2011-05-26T07:47:09.443" LastActivityDate="2011-05-26T07:47:09.443" CommunityOwnedDate="2011-05-26T08:44:03.797" CommentCount="10" />
  <row Id="22730" PostTypeId="2" ParentId="22700" CreationDate="2010-12-01T06:56:35.997" Score="0" ViewCount="" Body="&lt;p&gt;Just responding to the first point about Digital Rights Management:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2010/09/youtube-vs-fair-use.html&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/2010/09/youtube-vs-fair-use.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Content-based piracy detection is the twin problem of content-based retrieval. (Think of it like the symbiosis between CAPTCHA, OCR and Spammers.) Just as search engines become increasingly able to understand and index multimedia content, piracy detection will become easier with increasingly powerful algorithms and processors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As always, law enforcement honeypots will continue to catch people who share copyrighted materials with unknown strangers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, encrypted Peer-to-Peer transfer between known friends (or, sneakernet) may continue to exist ad infinitum, and will escape all forms of honeypots and detection efforts (without a house search warrant).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Speaking of trend, cloud computing (along with Moore's law and mobile computing) will bring many artificial intelligence tasks (of which content-based detection is an example) closer to reality, and despite some of the uncomfortable consequences, we can still look forward to many new exciting applications.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-12-01T06:56:35.997" />
  <row Id="22731" PostTypeId="2" ParentId="21118" CreationDate="2010-12-01T07:14:25.740" Score="12" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://arstechnica.com&quot; rel=&quot;nofollow&quot;&gt;Ars Technica&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may not have the sheer breadth of sites like Slashdot or Reddit, but it can't be beat for consistently high quality, in-depth articles.&lt;/p&gt;&#xA;" OwnerUserId="3141" LastActivityDate="2010-12-01T07:14:25.740" CommentCount="1" />
  <row Id="22732" PostTypeId="2" ParentId="22073" CreationDate="2010-12-01T07:33:07.510" Score="0" ViewCount="" Body="&lt;p&gt;Perhaps not in a purely functional language, but I use functional paradigms all the time when I write python and javascript.&lt;/p&gt;&#xA;" OwnerUserId="1747" LastActivityDate="2010-12-01T07:33:07.510" />
  <row Id="22733" PostTypeId="2" ParentId="22709" CreationDate="2010-12-01T07:41:57.960" Score="3" ViewCount="" Body="&lt;p&gt;They must be responsible enough to give you the time frame.&#xA;If not, Ask them till when are you supposed to wait?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd second Robert's answer too. But it'd better if you ask them in advance. Won't create much confusions.&lt;/p&gt;&#xA;" OwnerUserId="4522" LastActivityDate="2010-12-01T07:41:57.960" />
  <row Id="22734" PostTypeId="2" ParentId="21118" CreationDate="2010-12-01T07:49:48.400" Score="2" ViewCount="" Body="&lt;p&gt;Not a news site as such, but I like the blogs of Joel Spolsky. &lt;a href=&quot;http://www.joelonsoftware.com/&quot; rel=&quot;nofollow&quot;&gt;Joel's Blog&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-01T07:49:48.400" CommentCount="1" />
  <row Id="22735" PostTypeId="2" ParentId="21118" CreationDate="2010-12-01T07:50:08.887" Score="3" ViewCount="" Body="&lt;p&gt;I mostly follow these &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://arstechnica.com/&quot; rel=&quot;nofollow&quot;&gt;Ars Technica&lt;/a&gt; for good editorial style articles. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.anandtech.com/&quot; rel=&quot;nofollow&quot;&gt;Anand Tech&lt;/a&gt; for hardware related stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.engadget.com/&quot; rel=&quot;nofollow&quot;&gt;Engadget&lt;/a&gt; for technology reviews, live coverage of events, etc.&lt;/p&gt;&#xA;" OwnerUserId="8783" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-01T09:08:01.080" LastActivityDate="2010-12-01T09:08:01.080" CommentCount="3" />
  <row Id="22736" PostTypeId="2" ParentId="22525" CreationDate="2010-12-01T08:04:49.520" Score="7" ViewCount="" Body="&lt;p&gt;My suggestion is to play around with C as an intellectual curiosity. Do not make a heavy time investment because it is not worth it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suggested goals:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Refresh your memory about the &lt;strong&gt;basic data structures and algorithms.&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It is just some good thing to know, like algebra and geometry.&lt;/li&gt;&#xA;&lt;li&gt;Try to do some college textbook exercises or program puzzles in C.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;A better appreciation of the &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Memory_hierarchy&quot; rel=&quot;nofollow&quot;&gt;memory (bandwidth) hierarchy&lt;/a&gt;&lt;/strong&gt;, all the way from the CPU cache to transoceanic network latency. This will help your application development skills at all levels.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Most importantly, it is good to learn about scenarios in which &lt;em&gt;a &lt;strong&gt;&lt;em&gt;small&lt;/em&gt;&lt;/strong&gt; inconspicuous rearrangement of high-level code can result in a &lt;strong&gt;&lt;em&gt;dramatic&lt;/em&gt;&lt;/strong&gt; speed improvement&lt;/em&gt;. &#xA;&lt;ul&gt;&#xA;&lt;li&gt;Sometimes the reason can only be understood in the low-level implementation in the context of memory hierarchy.&lt;/li&gt;&#xA;&lt;li&gt;Not understanding the natural cause of this possibility leads to &lt;strong&gt;ignorance&lt;/strong&gt;, &lt;strong&gt;fear&lt;/strong&gt;, and eventually to &lt;strong&gt;denial&lt;/strong&gt;, thinking that it is wrong for high-level developers to tap into this kind of optimization. In reality there is nothing wrong with that.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Appreciate the &lt;strong&gt;aesthetics of component-based software systems&lt;/strong&gt;, which enables low-level components developed in C/C++/Assembly to be used by high-level systems.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The aesthetics are exactly the same as software usability:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Good design (powerful, easy to use, well thought-out)&lt;/li&gt;&#xA;&lt;li&gt;Correctness&lt;/li&gt;&#xA;&lt;li&gt;Flexibility (extensions and new behaviors via composition of existing parts, each with a clearly-defined purpose)&lt;/li&gt;&#xA;&lt;li&gt;Performance (without complicating the usability)&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;While you might not design your own low-level components, your understanding will help you evaluate and choose good components to use in your high-level projects.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Finally, appreciate that low-level components are almost always &lt;strong&gt;more complicated in their implementations&lt;/strong&gt;, far from fathomable by just looking at the interface. &#xA;&lt;ul&gt;&#xA;&lt;li&gt;The low level is always complicated. A good library hides the complexity without diminishing its power.&lt;/li&gt;&#xA;&lt;li&gt;Learn to read the &quot;technical notes&quot; written by component developers, which are suggestions to higher-level component users on how to best make use of the components.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-12-01T08:04:49.520" />
  <row Id="22737" PostTypeId="2" ParentId="22709" CreationDate="2010-12-01T08:07:29.187" Score="6" ViewCount="" Body="&lt;p&gt;We are not &lt;em&gt;dating&lt;/em&gt;, where lots of emotions and unconscious expectations have to be considered. Instead, we are looking for a job, as professionals, who have to make rational decisions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would call them whenever I think I need to know my chances. In the worst case they'll tell me &quot;we have yet to look at two more candidates, we can tell you more in 5 days&quot;, but unless you do it in a stalker fashion and call them 10 times a day, nobody will be pissed off if you ask them.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-01T08:07:29.187" CommentCount="2" />
  <row Id="22739" PostTypeId="2" ParentId="22714" CreationDate="2010-12-01T08:13:40.490" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;This is a marketing question.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software does not become obsolete overnight. Marketing people want you to believe that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Or, it is a business question.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a developer, I did not know that mobile computing has &lt;em&gt;already replaced&lt;/em&gt; desktop computing. Or that cloud computing has &lt;em&gt;already replaced&lt;/em&gt; client-server computing. Or that MongoDB has &lt;em&gt;already replaced&lt;/em&gt; SQL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it affects your business, you will certainly know it. If it doesn't affect your business, then what does it matter to you?&lt;/p&gt;&#xA;" OwnerUserId="620" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-12-01T08:22:49.730" LastActivityDate="2010-12-01T08:22:49.730" />
  <row Id="22740" PostTypeId="2" ParentId="22714" CreationDate="2010-12-01T08:30:37.353" Score="1" ViewCount="" Body="&lt;p&gt;Code is obsolete unless it is in reasonable use. You are obsolete unless you have a meaningful job to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've worked on a 15 year old C++ code base. The code grew a cancer, C++ was not trendy anymore. Yet it was not obsolete, because it was a vital inhouse product which they never managed to replace.&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-12-01T08:41:21.993" LastActivityDate="2010-12-01T08:41:21.993" CommentCount="2" />
  <row Id="22741" PostTypeId="2" ParentId="22714" CreationDate="2010-12-01T08:38:23.073" Score="23" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What are the telltale signs that the code you're writing is already&#xA;  obsolete even before it gets to production?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Microsoft includes a better version&#xA;of the program you are working at&#xA;into the next version of Windows&lt;/li&gt;&#xA;&lt;li&gt;The latest release of Ubuntu already includes two open-source implementations, and KDE and Gnome people argue which version is better&lt;/li&gt;&#xA;&lt;li&gt;There is even a facebook app that does the&#xA;same like the program you are working&#xA;at, only better.&lt;/li&gt;&#xA;&lt;li&gt;Your new smartphone has an app for it.&lt;/li&gt;&#xA;&lt;li&gt;Your grandma already has the competitor's program and calls you to recommend it to you.&lt;/li&gt;&#xA;&lt;li&gt;Google offers a web-app for the same purpose, and it's officially no longer in Beta.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What symptoms should you be watching out for to better grasp the situation that your&#xA;  computer knowledge is already obsolete?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You wouldn't understand a single question on stackoverflow, even if you knew how to use a browser&lt;/li&gt;&#xA;&lt;li&gt;Every real-world computer looks like a toy to you, way too small, and all the color and the gui and the sound, wtf, who needs a mouse when all it takes is a keyboard and a monochrome terminal&lt;/li&gt;&#xA;&lt;li&gt;You miss the &quot;good old times&quot; when everything was better&lt;/li&gt;&#xA;&lt;li&gt;Your nephew helps you to install your new computer at home, so you can stay in touch with your grown-up kids through this so-called &quot;internat&quot;&lt;/li&gt;&#xA;&lt;li&gt;You hope that they will constantly need Cobol programmers till your retirement&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-01T08:38:23.073" CommentCount="6" />
  <row Id="22742" PostTypeId="1" CreationDate="2010-12-01T08:38:58.873" Score="12" ViewCount="497" Body="&lt;p&gt;I am usually fascinated by articles defending PHP and the arguments being used. Quite often authors of these types of articles don't mention what experience they have with other languages. Personally I find it hard to imagine that somebody would know either Python or Ruby, and PHP at a high level and still prefer PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if anyone fits this description, I would be interested in hearing why you prefer PHP to either of these languages.&lt;/p&gt;&#xA;" OwnerUserId="6555" LastActivityDate="2010-12-02T00:06:28.947" ClosedDate="2010-12-18T13:31:58.020" Title="Is there anyone who has used Python/Ruby and PHP for a long time and still prefer PHP?" Tags="&lt;programming-languages&gt;&lt;php&gt;&lt;python&gt;&lt;ruby&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="5" />
  <row Id="22743" PostTypeId="2" ParentId="21118" CreationDate="2010-12-01T08:53:01.973" Score="3" ViewCount="" Body="&lt;p&gt;The obscene bounty of 500 reputation makes me think that &lt;a href=&quot;http://pierre.mengal.eu/&quot; rel=&quot;nofollow&quot;&gt;http://pierre.mengal.eu/&lt;/a&gt; is the right answer ;-)&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-01T08:53:01.973" CommentCount="1" />
  <row Id="22744" PostTypeId="2" ParentId="21118" CreationDate="2010-12-01T09:05:51.173" Score="3" ViewCount="" Body="&lt;p&gt;For the UK &lt;a href=&quot;http://www.theregister.co.uk/&quot; rel=&quot;nofollow&quot;&gt;El Reg&lt;/a&gt; is the main source of news, reviews and even &lt;em&gt;gossip&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And for a slightly different slant on tech : &lt;a href=&quot;http://lifehacker.com/&quot; rel=&quot;nofollow&quot;&gt;LifeHacker&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-12-01T09:05:51.173" CommentCount="1" />
  <row Id="22745" PostTypeId="2" ParentId="22742" CreationDate="2010-12-01T09:11:43.667" Score="3" ViewCount="" Body="&lt;p&gt;I consider time to ship and portability. In the cases where I actually have to do some kind of web development, it usually means I'm writing some kind of control panel. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is just &lt;strong&gt;&lt;em&gt;stupidly&lt;/em&gt;&lt;/strong&gt; easy for me to put something together using Code Igniter, I get it done quickly and get it out the door. Additionally, I'm quite sure that the app will 'just work' on many web servers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I guess for me, it's not a preference over the language itself, but how quickly I can say &quot;Yess boss, it's done .. &quot; I do want to spend some 'quality' time with Django .. and perhaps it will become my preference in the future. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I do like Ruby, I realize that I am not &lt;em&gt;nearly&lt;/em&gt; experienced enough to use it safely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also don't consider something 'inferior' &lt;em&gt;just&lt;/em&gt; because it is written in a certain language. If the problem being solved fits well into the language's domain, what's the problem?&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-01T09:11:43.667" CommentCount="1" />
  <row Id="22746" PostTypeId="2" ParentId="21118" CreationDate="2010-12-01T09:13:41.337" Score="2" ViewCount="" Body="&lt;p&gt;I think there are two type of sources:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Blogs&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tech News Sites&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Though only tech news sites was mentioned in the question, I have also found blogS to be helpful. Again, &lt;strong&gt;Tech News&lt;/strong&gt; and &lt;strong&gt;Programming News, Tips and Ticks&lt;/strong&gt; are two very different things. And both of them are interesting as well as necessary. But IMHO the main thing is-&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Different people have different type of interests and needs. So, it is you who will choose the sources. I felt an RSS reader is the perfect tool for following all the sources by headline and visiting the ones I need. I use &lt;a href=&quot;http://www.google.com/reader&quot; rel=&quot;nofollow&quot;&gt;Google Reader&lt;/a&gt;. It also recommends other sources/websites of same type as you subscribe and visit these sites. So, you can start with the sources stated on other answers(I guess there will be many) of these question. Then after some time, you can realize some sources go with your interest and need while some others don't. Then discard and add sources accordingly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This Stackoverflow question may help-&lt;br&gt;&#xA;&lt;a href=&quot;http://stackoverflow.com/questions/5119/what-are-the-best-rss-feeds-for-programmers-developers&quot;&gt;http://stackoverflow.com/questions/5119/what-are-the-best-rss-feeds-for-programmers-developers&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-12-01T09:13:41.337" CommentCount="1" />
  <row Id="22747" PostTypeId="2" ParentId="21118" CreationDate="2010-12-01T09:18:57.060" Score="1" ViewCount="" Body="&lt;p&gt;My personal list (as gleaned from the excellent &lt;a href=&quot;http://www.google.com/reader&quot; rel=&quot;nofollow&quot;&gt;Google Reader&lt;/a&gt;) is as follows (in order of how frequently I read them):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://news.ycombinator.com/newest&quot; rel=&quot;nofollow&quot;&gt;Hacker News&lt;/a&gt; - good for general stuff and fluff that's interesting across the board (quite a bias to &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://arstechnica.com/&quot; rel=&quot;nofollow&quot;&gt;Ars Technica&lt;/a&gt; - deep technical articles with plenty of insight&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.theregister.co.uk/&quot; rel=&quot;nofollow&quot;&gt;The Register&lt;/a&gt; (El Reg) - for an irreverent look at IT issues (&lt;strong&gt;and of course the &lt;a href=&quot;http://www.theregister.co.uk/odds/bofh/&quot; rel=&quot;nofollow&quot;&gt;BOFH&lt;/a&gt;&lt;/strong&gt;)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;There are others, but these are the ones that keep my eyeballs.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-01T09:18:57.060" />
  <row Id="22748" PostTypeId="2" ParentId="22723" CreationDate="2010-12-01T09:21:58.737" Score="2" ViewCount="" Body="&lt;p&gt;Yes It can be very &lt;strong&gt;Frustrating&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm learning new things about XAML everyday. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the problem lies in the fact that XAML reminds us of existing platforms (eg XML, and HTML), but does not act like either of them! &lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-01T09:21:58.737" CommentCount="1" />
  <row Id="22749" PostTypeId="1" CreationDate="2010-12-01T09:30:00.873" Score="4" ViewCount="210" Body="&lt;p&gt;If you're doing a solo project - would you use CI tools to build from a repository? I've used Hudson and Cruisecontrol in a team environment, where it's essential to build as soon as anyone checks anything in. I think the value of version control is still obvious, but do I need to build after every commit, seeing as I would just have built on my local machine, and no-one else is committing?&lt;/p&gt;&#xA;" OwnerUserId="5826" LastActivityDate="2010-12-01T14:14:57.793" Title="What advantages do continuous integration tools offer on a solo project?" Tags="&lt;best-practices&gt;&lt;recommendations&gt;&lt;version-control&gt;&lt;builds&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="22750" PostTypeId="2" ParentId="21118" CreationDate="2010-12-01T09:32:24.183" Score="2" ViewCount="" Body="&lt;p&gt;Not so much a news site, but I tend to use Twitter to get my news by following some of the big guys in the field I'm intersted in (i.e. &lt;a href=&quot;http://twitter.com/elijahmanor&quot; rel=&quot;nofollow&quot;&gt;Elijah Manor&lt;/a&gt;. &lt;a href=&quot;http://twitter.com/scottgu&quot; rel=&quot;nofollow&quot;&gt;Scott Guthrie&lt;/a&gt;, &lt;a href=&quot;http://twitter.com/codinghorror&quot; rel=&quot;nofollow&quot;&gt;Jeff Atwood&lt;/a&gt;, &lt;a href=&quot;http://twitter.com/spolsky&quot; rel=&quot;nofollow&quot;&gt;Joel Spolsky&lt;/a&gt;, &lt;a href=&quot;http://twitter.com/jonskeet&quot; rel=&quot;nofollow&quot;&gt;Jon Skeet&lt;/a&gt;, ...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find it useful for technical bits and bobs but also for the fact that they're just human and interested in the same field as I am. They tend to post bits and pieces for things they consider to be interesting or else comment on 'in the news' bits.&lt;/p&gt;&#xA;" OwnerUserId="4006" LastActivityDate="2010-12-01T09:32:24.183" />
  <row Id="22751" PostTypeId="2" ParentId="22749" CreationDate="2010-12-01T09:38:13.093" Score="0" ViewCount="" Body="&lt;p&gt;Well I'm planning to use an continuous integration tool on a project and I'm the unique developer. The need comes because &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;One goal is to make it cross-platform, and having an integration tool helps you implicitelly (basic) check your app on several platform once you've pushed your changes in the integration repository (or the central one, or whatever is the one that will be used as authoritative).&lt;/li&gt;&#xA;&lt;li&gt;The project is built for long-term so I will need to work with a team later. I'm not planning to recruit anyone until 2012 so the continuous integration thing can wait for the moment, until 1. becomes the priority.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Other than cross-platform and team-work preparation, I don't see the need. The main thing is to have some kind of source control software and have several repository to keep backups. That will help you setup build tools around it when needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About the build timing, I'm using Mercurial and setting up an integration repository that is not the teamwork repository. So, push changes in the teamwork repo until I feel it's time to make the integration system try to build. Then I push from the teamwork repo to the integration repo and that will trigger the build. &#xA;Then I also add a script that will pull the teamwork repo in the integration repo one time each day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here I'm assuming that I work almost all days on my project but it's not always true. You have to set a build timing that is relative to how often you need builds. In a game company I worked at before, we used CruiseControle and it built a full build each hour. We could also force a build whenever we wanted if needed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a home project, one time a day might be already &quot;often&quot;. The main requirement would be to easily allow the user to force launching a build.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastEditorUserId="1921" LastEditorDisplayName="" LastEditDate="2010-12-01T09:49:14.630" LastActivityDate="2010-12-01T09:49:14.630" />
  <row Id="22752" PostTypeId="2" ParentId="21118" CreationDate="2010-12-01T09:39:57.200" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;TechCrunch&lt;/strong&gt; - &lt;a href=&quot;http://www.techcrunch.com&quot; rel=&quot;nofollow&quot;&gt;www.techcrunch.com&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TechCrunch will keep you up-to-date on anything having to do with startups, and most things having to do with technology. I've been reading tech news for a while, and it is the &lt;strong&gt;clear winner&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best stories will usually find their way to Hacker News and other aggregators, but if you're interested in reading about most important things going on in the technology world, this is the site to read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TechCrunch has a (deserved) reputation of often including lots of sensationalist and unimportant stuff. It's true - you're not going to find &lt;em&gt;every&lt;/em&gt; article there interesting. I usually scan the headlines and only read the things that interest me. But I wouldn't dream of giving up TechCrunch as my main source for tech news.&lt;/p&gt;&#xA;" OwnerUserId="384" LastActivityDate="2010-12-01T09:39:57.200" CommentCount="1" />
  <row Id="22753" PostTypeId="1" CreationDate="2010-12-01T09:41:16.543" Score="4" ViewCount="181" Body="&lt;p&gt;What C# project(s) would you consider contributing to if you were a beginner trying to sharpen your skills in C# and .NET framework ? The project should be (besides all) active and not something less active and/or stagnant. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-01T11:28:09.093" Title="C# open source projects." Tags="&lt;.net&gt;&lt;c#&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="22754" PostTypeId="2" ParentId="22749" CreationDate="2010-12-01T09:44:19.740" Score="5" ViewCount="" Body="&lt;p&gt;When I am the only one committing, I just build and test &lt;em&gt;before&lt;/em&gt; actually committing. I usually use a makefile target like :&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;make sense&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That configures, builds, runs all tests (valgrind aware), runs lints, etc. As I know I'll be the only one pushing, I don't really need the power of something like Hudson.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, in an environment where you have several branches feeding a main repository, if everyone follows the always pull before you commit or push, the CI server might be a little over kill. A well written rule that the author of whatever broke the last build buys pizza on Friday usually keeps things running very smoothly :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it gets into a situation where a project is clearly divided into sub systems that have their own leaders, you &lt;em&gt;really&lt;/em&gt; need to contemplate using something like Hudson. Someone might test locally, lose a race with another sub system and end up pushing something toxic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you are maintaining a fork of a fast moving project (for instance, your own set of patches to the Linux kernel), you should really consider using something like Hudson, even though you are 'solo' on that project. This is especially true if you branch / re-base directly from mainline.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-01T09:44:19.740" CommentCount="3" />
  <row Id="22755" PostTypeId="2" ParentId="22753" CreationDate="2010-12-01T09:50:52.667" Score="0" ViewCount="" Body="&lt;p&gt;There are some interesting applications &lt;a href=&quot;http://stackapps.com/questions/tagged/c%23&quot;&gt;developed around the Stack Exchange API&lt;/a&gt; that could use some help. I think everything in that tag is actively maintained, but I'm not sure if the developer base is as large as you would prefer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, you'd be dealing with Stack Overflow users, who tend to be helpful and (usually) patient with beginners.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-01T09:50:52.667" />
  <row Id="22756" PostTypeId="2" ParentId="7806" CreationDate="2010-12-01T09:51:25.297" Score="0" ViewCount="" Body="&lt;h2&gt;printf(&quot;Hello World!&quot;)&lt;/h2&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-01T09:58:23.230" LastActivityDate="2010-12-01T09:58:23.230" />
  <row Id="22757" PostTypeId="2" ParentId="22723" CreationDate="2010-12-01T09:51:49.213" Score="1" ViewCount="" Body="&lt;p&gt;In short-&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;XAML has a steep learning curve.&lt;br&gt;&#xA;But once you have learnt it, I think you'll love it.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="963" LastEditorDisplayName="" LastEditDate="2010-12-01T10:23:43.807" LastActivityDate="2010-12-01T10:23:43.807" CommentCount="2" />
  <row Id="22758" PostTypeId="2" ParentId="21118" CreationDate="2010-12-01T09:53:25.560" Score="1" ViewCount="" Body="&lt;p&gt;For people who know russian: &lt;a href=&quot;http://habrahabr.ru&quot; rel=&quot;nofollow&quot;&gt;Habrahabr.ru&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-12-01T09:53:25.560" CommentCount="15" />
  <row Id="22759" PostTypeId="2" ParentId="22742" CreationDate="2010-12-01T09:54:05.440" Score="1" ViewCount="" Body="&lt;p&gt;IMO the real advantage of PHP is the ease of finding team members. From my experience, Python and Ruby developers are harder to find and cost more. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, from a development standpoint, I prefer Python.&lt;/p&gt;&#xA;" OwnerUserId="7566" LastActivityDate="2010-12-01T09:54:05.440" />
  <row Id="22760" PostTypeId="2" ParentId="22714" CreationDate="2010-12-01T10:06:35.467" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What are the telltale signs that the code you're writing is already obsolete even before it gets to production?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The point of the practical software development is not to ship code. Code is useless. You deliver a product to your customer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In that regard your main objective is to keep your customer satisfied and happy. Independently of how perfect code you will ship the first time, the customer will get unhappy soon afterward.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Understand that it is a continuous process to improve the software. The concept of &quot;software-as-a-service&quot; hits the nail. In web 2.0 terminology your software is a &lt;em&gt;perpetual beta&lt;/em&gt;. It's easier with web software since you can update your web server any time without interrupting the customer business, but also possible with standalone software.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What symptoms should you be watching out for to better grasp the situation that your computer knowledge is already obsolete?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;To put it funnily, I'd say when you browse StackOverflow and notice that you have no idea what most questions there are about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, just follow forums, blogs and social bookmarking sites. They manage it well to keep you aware of all the trends out there. Dzone for instance is very good at it.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-01T10:06:35.467" />
  <row Id="22761" PostTypeId="2" ParentId="22753" CreationDate="2010-12-01T10:14:05.377" Score="4" ViewCount="" Body="&lt;p&gt;I'd advise you to get a couple projects under your belt first.  Think of a simple program idea which might help you in some small way, such as a calendar or organizer.  You can decide all the funzionality you'd like, but have a basic &lt;em&gt;basic&lt;/em&gt; functionality program that you can aim for first before adding new features.  Trying to do too much at once can easily overwhelm you.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you feel comfortable with the general feel for C#, you can hope to help others on sourceforge.net et al.  Most people don't have problems helping you understand the project, though they do expect you to know to do basic things in C#, meaning you can't ask them for help in that regard.  That's why I would say that it would be better to have some basic experience first.&lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-12-01T10:14:05.377" CommentCount="1" />
  <row Id="22762" PostTypeId="1" CreationDate="2010-12-01T10:20:02.890" Score="0" ViewCount="97" Body="&lt;p&gt;I'm an experienced Java developer who is just starting up a project for an NGO. I will be working on the project for at least 6 months, following which the NGO will have to pay or find a volunteer to maintain the project. Seeing as they already have people working on their website in PHP, I figured PHP was the obvious choice to make sure the skills are still available (it is webby) - eliminated Java because Java devs are typically expensive. Unfortunately I have next to zero experience with proper PHP development (just a few months spending a small percentage of my time on a Drupal project without any real coding). What are some things I can do to ensure that the code I leave behind is maintainable by a relatively low-skilled PHP developer (eg a teenager wanting to make some holiday cash)? Do I go with a CMS? Are Drupal developers cheap? Any other CMS / Framework I should look at? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Background: the project is a website that people will search for educational information, with some simple user-management to only allow some users to create content, restrictions to specific content-types etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The CMS vs write myself question is not the only thing I'm interested in hearing. I'm also interested in any tips about code style, anything you think my Java experience would push me towards that is going to make it difficult for the hypothetical volunteer etc. There's probably things about this scenario that I haven't thought through - so anything related to keeping maintenance costs low would be appreciated.&lt;/p&gt;&#xA;" OwnerUserId="5826" LastActivityDate="2010-12-01T11:07:48.370" Title="Tips for a novice PHP developer to drive down long-term maintenance costs" Tags="&lt;php&gt;&lt;maintenance&gt;&lt;coding-style&gt;&lt;cms&gt;&lt;cost&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="22764" PostTypeId="2" ParentId="22723" CreationDate="2010-12-01T10:31:28.403" Score="-1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Like&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*Clicks the facebook like button*&lt;/p&gt;&#xA;" OwnerUserId="3814" LastActivityDate="2010-12-01T10:31:28.403" CommentCount="3" />
  <row Id="22765" PostTypeId="2" ParentId="22723" CreationDate="2010-12-01T10:39:47.000" Score="1" ViewCount="" Body="&lt;p&gt;Like, but tooling support is bad right now. Also it feels wordy. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand the alternative (writing WPF in C#) is a lot worse.&lt;/p&gt;&#xA;" OwnerUserId="4852" LastActivityDate="2010-12-01T10:39:47.000" />
  <row Id="22767" PostTypeId="2" ParentId="21118" CreationDate="2010-12-01T10:50:35.443" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://dzone.com&quot; rel=&quot;nofollow&quot;&gt;DZone&lt;/a&gt; is quite good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lots of articles touching a wide variety of matters. Keeps you informed about diverse trends in IT.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Though I don't find the community behavior intelligent. Mostly the articles of a high recreational value are upvoted. Things where you need to take some time to read through and use your brain are generally left without attention.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-01T10:50:35.443" CommentCount="1" />
  <row Id="22768" PostTypeId="1" CreationDate="2010-12-01T10:51:04.597" Score="4" ViewCount="223" Body="&lt;p&gt;I had a total experience of 4 years in java programming and development. I wish to join back after a long gap of 4 years. I want to know the current in-demand in Java programming world and also how to update myself to have a successful programming career.&lt;/p&gt;&#xA;" OwnerUserId="8914" LastEditorUserId="1020" LastEditorDisplayName="" LastEditDate="2010-12-01T13:48:29.967" LastActivityDate="2010-12-01T13:51:45.297" Title="Join back to java career after a long break" Tags="&lt;self-improvement&gt;&lt;career-advice&gt;&lt;programming&gt;&lt;websites&gt;&lt;certification&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="22769" PostTypeId="1" AcceptedAnswerId="22796" CreationDate="2010-12-01T10:54:54.100" Score="20" ViewCount="1170" Body="&lt;p&gt;What language, in your opinion, allows the average programmer to output features with the least amount of hard-to-find bugs? This is of course, a very broad question, and I'm interested in very broad and general answers and wisdoms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I find that I spend very little time looking for strange bugs in Java and C# programs, while C++ code has its distinct set of recurring bugs, and Python/similar has its own set of common and silly bugs that would be detected by the compiler in other languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also I find it hard to consider functional languages in this regard, because I've never seen a big and complex program written in entirely functional code. Your input please.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: &lt;em&gt;Completely arbitrary clarification of hard-to-find bug: Takes more than 15 minutes to reproduce, or more than 1 hour to find cause of and fix.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Forgive me if this is a duplicate, but I didn't find anything on this specific topic.&lt;/p&gt;&#xA;" OwnerUserId="8854" LastEditorUserId="8854" LastEditorDisplayName="" LastEditDate="2010-12-01T16:20:33.393" LastActivityDate="2010-12-03T11:25:24.150" Title="What programming language generates fewest hard-to-find bugs?" Tags="&lt;programming-languages&gt;&lt;bugs&gt;&lt;problem-solving&gt;&lt;functional-programming&gt;" AnswerCount="13" CommentCount="16" FavoriteCount="7" />
  <row Id="22770" PostTypeId="1" CreationDate="2010-12-01T10:58:21.993" Score="6" ViewCount="639" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to be a .net developer for the web. However, I see most freelanc developer tend to provide PHP development more than ASP.NET. The question now, is it OK if I learn PHP first and after that I go with C# or will this learn me bad habits that can lead to difficulty in learning C# or maybe I can't pick it up the right way as if I start with it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please give me some facts about learning both and where I should go first and why?&lt;/p&gt;&#xA;" OwnerUserId="26782" LastActivityDate="2011-04-30T23:18:23.283" Title="If I learn PHP first, will it be difficult to learn C# next?" Tags="&lt;php&gt;&lt;c#&gt;" AnswerCount="10" CommentCount="5" FavoriteCount="1" />
  <row Id="22772" PostTypeId="2" ParentId="22714" CreationDate="2010-12-01T11:01:20.687" Score="6" ViewCount="" Body="&lt;p&gt;Code which works and solves a problem is, &lt;em&gt;so long as it remains economical, functional and maintainable&lt;/em&gt;, never obsolete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There will frequently be better ways to do something but that's a very different thing.  Outside of R&amp;amp;D and academia most of us are paid to solve problems rather than produce perfect code so ideal is not the benchmark, workable is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly so long as you are able to solve problems in a way which produces economical, functional and maintainable code you're not obsolete - go and ask the Cobol programmers who are still making a decent living supporting and tweaking old systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course that's a very different thing to being in the sort of position you're going to be offered interesting and challenging work.  The productivity and opportunities offered by new tools tend to be most compelling when it comes to new projects (where there are fewer questions about rewrites, upgrades, compatibility and so on and adoption of new technologies is therefore easier) and that's the work we all tend to want to be involved in.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-01T11:01:20.687" />
  <row Id="22773" PostTypeId="2" ParentId="22770" CreationDate="2010-12-01T11:02:25.583" Score="-1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I want to be a .net developer for the&#xA;  web&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Why would you even consider PHP (see &lt;a href=&quot;http://roshanbh.com.np/2007/12/php-a-bad-programming-language-dark-side-of-php.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://www.ukuug.org/events/linux2002/papers/html/php/index.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; for some reasons not too). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest reason for me is that embeds the biz logic in the view, going against widely quoted best practice: the mvc(model-view-controller) principle. If you have ever worked on a large project this is a real pain. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It literally hurts my brain to read though html picking out the php.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C# first and if you are lucky you may never even have to code with PHP.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-12-01T12:45:20.103" LastActivityDate="2010-12-01T12:45:20.103" CommentCount="1" />
  <row Id="22774" PostTypeId="2" ParentId="21118" CreationDate="2010-12-01T11:03:09.950" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.smashingmagazine.com/&quot; rel=&quot;nofollow&quot;&gt;Smashing Magazine&lt;/a&gt;&lt;/strong&gt; One of the best source for web development.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-01T11:03:09.950" CommentCount="1" />
  <row Id="22775" PostTypeId="2" ParentId="22762" CreationDate="2010-12-01T11:07:48.370" Score="4" ViewCount="" Body="&lt;p&gt;Definitely go with a well-known CMS like Drupal, Wordpress or Joomla.  They all have very large communities and therefore plenty of developers and developer resources.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Trying to build your own will lead to a good deal of pain :-)&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-01T11:07:48.370" CommentCount="5" />
  <row Id="22776" PostTypeId="2" ParentId="22769" CreationDate="2010-12-01T11:08:31.413" Score="7" ViewCount="" Body="&lt;p&gt;Ada is designed so that as much as possible is caught at compile-time rather than run-time. What this means is that it often takes about 10x longer to get a program in Ada to compile than the equivalent would in Java say, but when it does compile you can be much more confident that whole classes of bugs will not manifest themselves when the program's run.&lt;/p&gt;&#xA;" OwnerUserId="8915" LastActivityDate="2010-12-01T11:08:31.413" CommentCount="3" />
  <row Id="22777" PostTypeId="2" ParentId="22770" CreationDate="2010-12-01T11:12:40.957" Score="0" ViewCount="" Body="&lt;p&gt;As an ASP.NET developer you have almost completely different set of tools to work with (database, design tools, IDE). I would recommend you to jump to C# directly and use jQuery for Javascript since it’s also supported by Visual Studio. &lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-01T11:12:40.957" />
  <row Id="22778" PostTypeId="2" ParentId="22770" CreationDate="2010-12-01T11:13:18.210" Score="5" ViewCount="" Body="&lt;p&gt;I would learn whatever is most beneficial to you at this point in time. If the kind of projects that you would like to work on use a lot of PHP fameworks/features, learn that, if there are features or components of C# that would make your chosen work easier, go with that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are both very different beasts, but I don't think that learning one will hinder you in learning the other. Previous meaningful experience in one will shape your thinking and I believe will make it easier to transfer to the other. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember, a programming language is just a tool to get the job done, it's just that some are more suitable that others in a particular situation!&lt;/p&gt;&#xA;" OwnerUserId="8916" LastActivityDate="2010-12-01T11:13:18.210" CommentCount="1" />
  <row Id="22779" PostTypeId="2" ParentId="22769" CreationDate="2010-12-01T11:16:37.773" Score="5" ViewCount="" Body="&lt;p&gt;The less powerful a language is, the less options it gives you to shoot your own foot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;High-level languages like Java and C# will produce less bugs than low-level languages like C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that I believe Java is more secure than C#. Java is artificially limited so that an average programmer without advanced knowledge can master it and produce stable programs.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-01T13:55:53.763" LastActivityDate="2010-12-01T13:55:53.763" CommentCount="7" />
  <row Id="22780" PostTypeId="2" ParentId="22770" CreationDate="2010-12-01T11:26:08.377" Score="28" ViewCount="" Body="&lt;p&gt;I think this whole idea that the first language you use can &quot;corrupt&quot; you or something is an overblown myth created by Dijkstra's offhand comment &quot;It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration&quot;.  That was a tongue-in-cheek comment bashing the &lt;strong&gt;language&lt;/strong&gt; itself.  People have taken it to mean &quot;OMG I DONT WANT TO LOSE MY VIRGIINITY 2 DA WRONG LANGUAGE!&quot;  Then the programming community makes it worse by making someone who played around with BASIC feel bad about it by rolling out Dijkstra's stupid quote all the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suggest learning any language that's practical, but &lt;em&gt;keep an open mind&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-12-01T11:26:08.377" CommentCount="5" />
  <row Id="22781" PostTypeId="2" ParentId="21118" CreationDate="2010-12-01T11:27:14.990" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.h-online.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.h-online.com/&lt;/a&gt; - heise open&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a very broad and general tech related news site, not very programming specific, but security topics come up quite frequently. It's the international variant of &lt;a href=&quot;http://heise.de/&quot; rel=&quot;nofollow&quot;&gt;http://heise.de/&lt;/a&gt; which is the de-fecto no 1 programmer/IT news source in .de&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there's no need to subscribe to it directly. It's low traffic and the most interesting stories are usually linked from reddit, slashdot, dzone.&lt;/p&gt;&#xA;" OwnerUserId="1245" LastActivityDate="2010-12-01T11:27:14.990" />
  <row Id="22782" PostTypeId="2" ParentId="22753" CreationDate="2010-12-01T11:28:09.093" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.dotnetblogengine.net/&quot; rel=&quot;nofollow&quot;&gt;BlogEngine.NET&lt;/a&gt; is a high-quality project, and what might make it even better to contribute to is that is has an extension framework so you could get started writing an extension to implement some interesting bit of functionality, rather than having to dive head-first into a complex codebase.&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-12-01T11:28:09.093" />
  <row Id="22783" PostTypeId="2" ParentId="22769" CreationDate="2010-12-01T11:32:58.667" Score="7" ViewCount="" Body="&lt;p&gt;Traditionally the hardest to find bugs are race-conditions in multi-threaded applications as they are&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;almost impossible to reproduce&lt;/li&gt;&#xA;&lt;li&gt;can be very subtle&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Hence you need languages that manage the parallism for you as much and unintrusively as possible.  These are not yet mainstream.  Java does some, but leave you with the hard part.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To my understanding, you need a functional language since the &quot;no sideeffects&quot; is the thing that in the first place makes the two bullet points go away.  I've seen that work is ongoing in transparently making Haskell an efficient multi-thread language, and I believe Fortress is designed from the ground up to be an efficient parallel language.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-01T11:32:58.667" CommentCount="10" />
  <row Id="22784" PostTypeId="2" ParentId="22742" CreationDate="2010-12-01T11:36:02.897" Score="2" ViewCount="" Body="&lt;p&gt;From a language semantics point of view, I absolutely prefer Python. (Disclaimer: not yet using it for really long.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However PHP is way more useful for building web apps. And I would blatantly describe it as &lt;strong&gt;suitable&lt;/strong&gt; for that. The language itself suffers from serious misdesigns (and I just accidentially mention the new namespace syntax in brackets here), and many PHP programmers are prone to cargo cult programming. Yet, the vast amount of libraries tailored for webdevelopment makes it the better choice for what I'm doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As example (my favourite example), none of the Python HTTP libraries supports content encoding correctly out of the box. Whereas writing Gtk/GUI apps would is a joke in PHP in comparison to Python. So it really comes down to what sort of applications people are building. The language preference is probably just that.&lt;/p&gt;&#xA;" OwnerUserId="1245" LastActivityDate="2010-12-01T11:36:02.897" />
  <row Id="22785" PostTypeId="2" ParentId="22769" CreationDate="2010-12-01T11:36:07.833" Score="15" ViewCount="" Body="&lt;p&gt;In my opinion Haskell helps you avoid some common sources of errors:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it's purely functional: functions can not have (unintentional) side-effects and thus makes multicore programming easier and less error-prone&lt;/li&gt;&#xA;&lt;li&gt;it is strongly typed: you can not e.g. accidentally mix bool, char, int and float values&lt;/li&gt;&#xA;&lt;li&gt;it's statically typed: many programming errors are catched at compile time&lt;/li&gt;&#xA;&lt;li&gt;null is not part of value type definitions: by this you avoid the &lt;a href=&quot;http://lambda-the-ultimate.org/node/3186&quot; rel=&quot;nofollow&quot;&gt;billion dollar mistake&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;there are a lot of ready-made higher-order functions which you can reuse instead of writing your own, possibly faulty implementation&lt;/li&gt;&#xA;&lt;li&gt;it has a garbage collector: memory errors are almost eleminated (except for &quot;space leaks&quot; due to it's lazy evaluation strategy)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-12-01T12:22:43.707" LastActivityDate="2010-12-01T12:22:43.707" CommentCount="7" />
  <row Id="22786" PostTypeId="2" ParentId="22770" CreationDate="2010-12-01T11:41:22.330" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;PHP will simplify how the web works instead of hiding it under layers of abstraction as ASP.NET does.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its not so obvious to someone brand new to web programming that a control in an aspx actually generates HTML on the client.  Its not so obvious that the browser doesn't have any idea what asp.net is.  Add that the complexity of postbacks and viewstate and the stateless nature of HTTP itself and you're asking for trouble.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP on the other hand simply produces HTML - end of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once the OP has got a solid grounding in web programming and how the server communicates with the browser then they will be able to understand the .NET way of things (just don't keep putting inline HTML in your code!)&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-12-01T11:41:22.330" CommentCount="7" />
  <row Id="22787" PostTypeId="2" ParentId="22721" CreationDate="2010-12-01T11:41:34.287" Score="0" ViewCount="" Body="&lt;p&gt;Sharing ?  Seems like the wrong choice of word to me, you are not sharing. You are working together for a fixed fee. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be honest I can't understand how you have got this far down the line without agreeing the split.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why have you agreed to do some work without knowing how much money you will be receiving.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find this question really weird.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-12-01T11:41:34.287" CommentCount="1" />
  <row Id="22788" PostTypeId="2" ParentId="22769" CreationDate="2010-12-01T11:41:34.863" Score="0" ViewCount="" Body="&lt;p&gt;Perhaps surveying the number of tools available for static and dynamic code analysis for every programming language could give an idea.  The more tools for a language, it is more likely the language is either very popular among users or very popular in generating hard to find bugs.  But I am unable to get Google point me to any study made on this subject.  It should also be noted that some languages such as C can be used to work around the underlying hardware bugs as well as work around the wear and tear of the hardware as it ages.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-12-01T11:41:34.863" CommentCount="4" />
  <row Id="22789" PostTypeId="2" ParentId="22768" CreationDate="2010-12-01T11:43:20.790" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.springsource.org/&quot; rel=&quot;nofollow&quot;&gt;Spring&lt;/a&gt;. &lt;a href=&quot;http://www.hibernate.org/&quot; rel=&quot;nofollow&quot;&gt;Hibernate&lt;/a&gt;. &lt;a href=&quot;http://www.junit.org/&quot; rel=&quot;nofollow&quot;&gt;jUnit&lt;/a&gt;.  Web technologies such as &lt;a href=&quot;http://jquery.com/&quot; rel=&quot;nofollow&quot;&gt;jQuery&lt;/a&gt; or probably better to start with javascript.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-12-01T11:51:16.600" LastActivityDate="2010-12-01T11:51:16.600" CommentCount="2" />
  <row Id="22790" PostTypeId="1" AcceptedAnswerId="22802" CreationDate="2010-12-01T11:46:47.963" Score="7" ViewCount="467" Body="&lt;p&gt;&quot;A programmer, computer programmer or coder is someone who writes computer software&quot; from Wikipedia&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do frontend development using jQuery/CSS/HTML do you call yourself a programmer? If you develop PHP applications that deal with databases, do you call yourself a programmer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you only a programmer if you write applications for desktops and mobiles? Is the web a place where the line between developer and programmer stops?&lt;/p&gt;&#xA;" OwnerUserId="8622" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-02-04T00:08:32.250" LastActivityDate="2011-02-04T00:08:32.250" Title="When do you call yourself a programmer" Tags="&lt;programming-languages&gt;&lt;jobs&gt;&lt;job-definition&gt;&lt;job-title&gt;" AnswerCount="14" CommentCount="2" FavoriteCount="1" />
  <row Id="22791" PostTypeId="2" ParentId="22768" CreationDate="2010-12-01T11:49:20.410" Score="3" ViewCount="" Body="&lt;p&gt;One good ting is that core Java hasn't changed that much (7 is still to come out).  However the community and 3rd party APIs etc have thrived recently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1.)  Get coding again!  Either for an open source project or for something yourself.  This is the most important thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2.)  What version of Java did you get up to?  These days you should be at least familiar with Java 5 and especially its java.util.concurrent API and Generics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3.)  Frameworks have taken over a good deal of boiler plate Java in the last few years, I'd recommend learning:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;JPA - And therefore ORM tools such as Hibernate&lt;/li&gt;&#xA;&lt;li&gt;Dependency Injection/Inversion of Control (DI/IoC) - And therefore frameworks such as Spring, Guice and even aspects of JEE5/JEE6&lt;/li&gt;&#xA;&lt;li&gt;At least one web framework (Tiobe will let you know what's popular jobs-wise).  There's no clear leader here, but something that supports RESTFul services is pretty important&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;4.)  Software Craftsmanship/Agile techniques are big in the Java world:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Source control, Maven/ANT builds tied into a Hudson Continuous Integration server, Continuous Deployment, JRebel, Good issue tracking / time tracking / code review tools such as the JIRA suite by Atlassian are all used in daily development.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Agile workflows such as Scrum/Kanban/XP/Lean are all popular - I'd learn the principles behind them as opposed to being a slave to one of them.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Test Driven Development (TDD) and Behaviour Driven Development (BDD) are popular software development techniques - learn to change your habits to write test first code and to use tools like selenium and cuke4duke to write BDD tests&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There's probably more (new languages on the JVM for example) but this is a start anyhow.&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="1020" LastEditorDisplayName="" LastEditDate="2010-12-01T13:49:15.393" LastActivityDate="2010-12-01T13:49:15.393" CommentCount="0" />
  <row Id="22792" PostTypeId="2" ParentId="22790" CreationDate="2010-12-01T11:49:45.713" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;If you develop PHP applications that&#xA;  deal with databases&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'd call you unlucky.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But yeah to me anyone who writes any code is a programmer be it javascript, assembler, F#.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-12-01T11:56:12.990" LastActivityDate="2010-12-01T11:56:12.990" CommentCount="6" />
  <row Id="22793" PostTypeId="2" ParentId="22790" CreationDate="2010-12-01T11:50:11.220" Score="3" ViewCount="" Body="&lt;p&gt;If you write code (any kind in any programming language) then you are a programmer. Period!&lt;/p&gt;&#xA;" OwnerUserId="7197" LastActivityDate="2010-12-01T11:50:11.220" CommentCount="4" />
  <row Id="22794" PostTypeId="2" ParentId="22790" CreationDate="2010-12-01T11:51:36.477" Score="0" ViewCount="" Body="&lt;p&gt;I think anyone who writes program is a programmer. You write a program in PHP, but you don't write a program in HTML. There is where the thin line could be. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-01T11:51:36.477" />
  <row Id="22795" PostTypeId="2" ParentId="22790" CreationDate="2010-12-01T11:53:33.137" Score="0" ViewCount="" Body="&lt;p&gt;A lot of people think a programmer also relates to setting something up (i.e. Programming your Sky+ box to record a film) this is NOT programming, but &lt;strong&gt;configuring&lt;/strong&gt; a program someone else has written.&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-12-01T11:53:33.137" CommentCount="1" />
  <row Id="22796" PostTypeId="2" ParentId="22769" CreationDate="2010-12-01T11:55:34.150" Score="31" ViewCount="" Body="&lt;p&gt;The more powerful the type system of the language, the more bugs will be caught at the compile time itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The following figure compares some of the well known programming languages in terms of the power, simplicity, and safety of their type systems. [ &lt;a href=&quot;http://james-iry.blogspot.com/2010/05/types-la-chart.html&quot; rel=&quot;nofollow&quot;&gt;Source&lt;/a&gt; ]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/xlTmD.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1968" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-01T17:38:22.277" LastActivityDate="2010-12-01T17:38:22.277" CommentCount="23" />
  <row Id="22797" PostTypeId="2" ParentId="22769" CreationDate="2010-12-01T11:55:59.313" Score="3" ViewCount="" Body="&lt;p&gt;First a definition: a hard-to-find bug, as I understand it, is a bug that can be reproduced but the cause is hard to find.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Probably the most important aspect is what I would call &lt;strong&gt;narrowness&lt;/strong&gt;, i.e. how far can a bug escape, how large is the scope a bug can potentially influence. In languages like C, a bug, e.g. a negative array index or uninitialized pointer, can affect literally everything everywhere in the whole program, so in the worst case, you have to check &lt;em&gt;everything everywhere&lt;/em&gt; to find the source of your problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good languages in that regard support access modifiers and enforce them in a way that makes it hard or impossible to bypass them. Good languages encourage you to limit the scope of your variables, instead of making it too easy to have global variables (e.g. &quot;everything not explicitely declared is a global variable with a default type and value&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second important aspect is &lt;strong&gt;concurrency&lt;/strong&gt;. Race conditions are generally hard to reproduce and therefore hard to find. Good languages offer easy-to-use synchronisation mechanisms, and their standard libs are thread safe where necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This already completes my list; other things like strong typing help to catch bugs at compile time, but those bugs probably wouldn't be hard to find later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Considering all that, I'd say that Java and C#, and many other languages in the JVM and .net world, are suitable to avoid hard-to-find bugs.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-01T11:55:59.313" CommentCount="4" />
  <row Id="22798" PostTypeId="2" ParentId="22770" CreationDate="2010-12-01T11:56:27.457" Score="1" ViewCount="" Body="&lt;p&gt;Learn PHP and than .NET. Remember difficult is a relative word :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good Luck !!&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-12-01T11:56:27.457" />
  <row Id="22799" PostTypeId="2" ParentId="22770" CreationDate="2010-12-01T12:03:22.967" Score="0" ViewCount="" Body="&lt;p&gt;Why not learn C# first, to grasp important concepts and generally get a proper starting mindset, then learn PHP. You will benefit in several ways, most importantly it will be easier for you to pick up a &quot;language&quot; like PHP once you are proficient in one of the real programming languages (be it C++, Java, C#, Ruby, or Haskell).&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-01T12:03:22.967" CommentCount="10" />
  <row Id="22800" PostTypeId="2" ParentId="22721" CreationDate="2010-12-01T12:10:40.477" Score="0" ViewCount="" Body="&lt;p&gt;Assuming neither of you have another source of income and both of you have similar financial responsibilities (family, mortgage etc.), 50-50 is IMO the best option. Otherwise, in a few years, one will have significantely more of everything (car, house, toys etc.), which will most likely cause envy and distrust.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-01T12:10:40.477" />
  <row Id="22802" PostTypeId="2" ParentId="22790" CreationDate="2010-12-01T12:13:14.307" Score="11" ViewCount="" Body="&lt;p&gt;When you write a program that solves some kind of practical problem, you are able to write programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you spend a sufficient amount of time writing programs, you could be considered a programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know many system administrators who can write amazing and clever tools using shell scripts and perl, but they don't call themselves programmers, they call themselves system administrators.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-01T12:13:14.307" CommentCount="2" />
  <row Id="22803" PostTypeId="2" ParentId="22790" CreationDate="2010-12-01T12:13:46.997" Score="6" ViewCount="" Body="&lt;p&gt;You call yourself a programmer when you are proficient in a programming language. More people tend to call themselves programmer long before their skill set is ready for the responsibility that comes with that title. They modify a PHP/PERL/JAVA program and they immediately refer to themselves as a programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Too many times I've been pulled in on a project because the client hired a &quot;programmer&quot; who either doesn't know the language well, spends more time researching how to do the basic tasks instead of programming, produces a product that is full of bugs and is worse than the issue it was meant to solve, or all of the above. This tends to give people pause when looking for a programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In all honesty, I've never worried myself about what I was called, referenced as, or when I get to put a &quot;signature&quot; to my work. Titles are irrelevant. I know several people with fancy titles that couldn't program a BASIC hello world program, as well as some people who simply call themselves geek and their programs give me illusions of a Gene Roddenberry world where we all strive to make ourselves better.&lt;/p&gt;&#xA;" OwnerUserId="4056" LastActivityDate="2010-12-01T12:13:46.997" CommentCount="2" />
  <row Id="22804" PostTypeId="2" ParentId="22790" CreationDate="2010-12-01T12:14:09.833" Score="-1" ViewCount="" Body="&lt;p&gt;Turing completenes is what distinguishes a programming language from, say, a markup language, so whenever you create programs in a turing complete language, you are a programmer. (If the language is not turing complete, it's not a program, so the previous statement contains some redundancy)&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-01T12:14:09.833" />
  <row Id="22805" PostTypeId="2" ParentId="22790" CreationDate="2010-12-01T12:25:01.597" Score="0" ViewCount="" Body="&lt;p&gt;I think programmer isn't so much a job title as in it's what you call yourself. If your job title is 'Software Developer', that's what you are to the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What makes you a programmer is when you decided to 'chuck together a little thing' one day that makes your computer/calculator/toaster do that teeny weeny thing you wanted it to do. Y'know, like control your house lights or something.&lt;/p&gt;&#xA;" OwnerUserId="4006" LastActivityDate="2010-12-01T12:25:01.597" CommentCount="1" />
  <row Id="22806" PostTypeId="2" ParentId="22790" CreationDate="2010-12-01T12:27:26.880" Score="0" ViewCount="" Body="&lt;p&gt;Programmer is a Role : you can specialize in it but as far as you are programming you're a programmer.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-12-01T12:27:26.880" />
  <row Id="22807" PostTypeId="2" ParentId="22790" CreationDate="2010-12-01T12:44:57.033" Score="0" ViewCount="" Body="&lt;h2&gt;A Programmer:&lt;/h2&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A &lt;strong&gt;&lt;em&gt;'Programmer'&lt;/em&gt;&lt;/strong&gt; is one who can create&#xA;  instructions &lt;strong&gt;(Logic, Rules)&lt;/strong&gt; that&#xA;  when executed by a computing device&#xA;  &lt;strong&gt;(Processor)&lt;/strong&gt; produces the intended effect &lt;strong&gt;(Output)&lt;/strong&gt;. The 'Process' can either be a set &gt; of data or it can be triggered during an event, or even without any initial data &lt;strong&gt;(Inputs)&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2010-12-01T13:36:29.590" LastActivityDate="2010-12-01T13:36:29.590" CommentCount="2" />
  <row Id="22808" PostTypeId="1" CreationDate="2010-12-01T12:45:52.907" Score="0" ViewCount="30" Body="&lt;p&gt;in ms outlook on calendar when i create events and put them drag drop on each other it really well managed the adjustment, is it something like rectangle packing algorithm which is doing this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;any idea how they managed to do this very well?&lt;/p&gt;&#xA;" OwnerUserId="6703" LastActivityDate="2010-12-01T12:45:52.907" ClosedDate="2010-12-01T13:47:58.120" Title="ms outlook working to adjust the events and appointments dynamically: what kind of algorithm is used?" Tags="&lt;algorithms&gt;" CommentCount="2" />
  <row Id="22809" PostTypeId="1" AcceptedAnswerId="22826" CreationDate="2010-12-01T12:49:27.697" Score="12" ViewCount="1010" Body="&lt;p&gt;Why would someone use his own time to develop something &quot;for free&quot; and without giving him any money??&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or is there any way to make money with an open source project?? (if you sell it, anyone can take the code and also sell it, or even worst, take the code, compile it and he has the system without paying).&lt;/p&gt;&#xA;" OwnerUserId="7498" LastActivityDate="2011-04-01T10:41:25.437" Title="Why programming open source?" Tags="&lt;open-source&gt;" AnswerCount="14" CommentCount="10" FavoriteCount="9" />
  <row Id="22810" PostTypeId="2" ParentId="22770" CreationDate="2010-12-01T12:50:11.903" Score="1" ViewCount="" Body="&lt;p&gt;A friend of mine just went through exactly this. Coming from a pure PHP background, he had &lt;em&gt;serious&lt;/em&gt; problems trying to grok the idea that some things are &lt;code&gt;string&lt;/code&gt;, some are &lt;code&gt;int&lt;/code&gt;s and some &lt;code&gt;float&lt;/code&gt;s etc. Also type casting and &lt;code&gt;null&lt;/code&gt; values was a struggle from him. He had never been subjected to those concepts at all before this, so I can understand his confusion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Judging from this, I think it will be harder to learn C# if you're coming from a PHP background.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; This is an actual real life example of what I think the OP might end up with. The comments below seems to blatantly indicate that my friend is a retard for having these kind of problems. &lt;strong&gt;I DON'T AGREE&lt;/strong&gt;. He's your average PHP programmer, going from a dynamic high level scripting language to a low level, typed language, and that &lt;strong&gt;is&lt;/strong&gt; much harder than the opposite.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-12-01T19:47:14.510" LastActivityDate="2010-12-01T19:47:14.510" CommentCount="8" />
  <row Id="22811" PostTypeId="2" ParentId="22070" CreationDate="2010-12-01T12:52:59.940" Score="1" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;if (cond)&#xA;   //do something&#xA;else (cond)&#xA;   //do something&#xA;else (cond)&#xA;   //do something&#xA;first&#xA;   //do something&#xA;then&#xA;   //do something&#xA;else (cond)&#xA;   //do something&#xA;else&#xA;   //do something&#xA;end&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;FIRST and THEN blocks runs if any of 3 conditionals are evaluated to true. FIRST block runs before the conditional block and THEN runs after the conditional block has ran.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ELSE conditional or final write following FIRST and THEN statement are independent from these blocks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can read as :&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (cond)&#xA;   first()&#xA;   //do something&#xA;   then()&#xA;else (cond)&#xA;   first()&#xA;   //do something&#xA;   then()&#xA;else (cond)&#xA;   first()&#xA;   //do something&#xA;   then()&#xA;else (cond)&#xA;   //do something&#xA;else&#xA;   //do something&#xA;end&#xA;&#xA;&#xA;function first()&#xA;   //do something&#xA;return&#xA;function then()&#xA;   //do something&#xA;return&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;These functions are just a form to read. They wouldn't create scope. It's more like a gosub/return from Basic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usefulness and readability as matter of discussion.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-12-01T12:52:59.940" />
  <row Id="22813" PostTypeId="2" ParentId="22809" CreationDate="2010-12-01T12:56:52.903" Score="15" ViewCount="" Body="&lt;p&gt;This is a hobby for some people; believe it or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Gillette will be happy to give you a free razor and sell you the blades.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people make money in other ways and want to give back to the community. I'm sure Linus Torvalds has made plenty of money 'off' of Linux without actually selling the code and probably turns money away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not all open source software was intended or designed for any user to just download, install and use, so you may end up spending more of your time depending on skill level and most people value their time.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-01T12:56:52.903" CommentCount="1" />
  <row Id="22814" PostTypeId="2" ParentId="22809" CreationDate="2010-12-01T12:57:45.093" Score="11" ViewCount="" Body="&lt;p&gt;Why does everything have to be about money? How do you think wikipedia works? Nobody gets paid to put content on the Wikipedia, yet it is arguable the best encyclopaedia around.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;edit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's talk money. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Open source projects, as any projects, are written out of neccessity. You have a problem X and you write library Y or application Z to solve it, because &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a) there are not tools, that solve it or &lt;/li&gt;&#xA;&lt;li&gt;b) they are not good enough or &lt;/li&gt;&#xA;&lt;li&gt;c) they are not worth the money (writing your own tool probably &quot;costs&quot; more, but in the end you have exactly what you want and you can modify it as you want, so the cost ammortizes quickly). &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So now you spent a few evenings and weekends (and/or paid time) writing the next hot thing until you reach a point, where the baby starts walking. You now have to chose between:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;commercial distribution: this involves marketing, legal stuff, customer support, doing all the fixes yourself, getting tons of incredibly stupid feature requests and less than useless feedback. In the end you get what's left of the money once all the parasites get their piece of the cake. And probably noone will like your product because it costs way too much.&lt;/li&gt;&#xA;&lt;li&gt;open source distribution: this involves ... uhm ... pushing the code to a public repository and making an announcement or two on relevant mailing lists. You will get acknowledgement or even some fame. You will get a user base, that provides constructive feedback, helpful bugreports and possibly even patches. You get some donations or get invited to some conferences or get paid to implement features a or b. And you produced a lot of value, albeit nobody paid for anything. And the next time you or your company needs something, chances are good, you'll get it and you'll get it for free. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Open source works, because it is a community. Because it is mutual. &lt;strong&gt;You do not get money by writing open source code. You get money by consuming open source code. So why do you write open source code? To give something back.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="667" LastEditorUserId="667" LastEditorDisplayName="" LastEditDate="2010-12-01T13:21:57.290" LastActivityDate="2010-12-01T13:21:57.290" CommentCount="12" />
  <row Id="22815" PostTypeId="2" ParentId="22809" CreationDate="2010-12-01T12:58:08.450" Score="7" ViewCount="" Body="&lt;p&gt;Monetary compensation isn't the only possible compensation. Fame (although mostly to a limited circle) is another. The joys of showing off what you've done is yet another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Me, I mostly do it because I have an urge to write software and if it happens to help someone else, everyone wins.&lt;/p&gt;&#xA;" OwnerUserId="5084" LastActivityDate="2010-12-01T12:58:08.450" />
  <row Id="22816" PostTypeId="2" ParentId="279" CreationDate="2010-12-01T13:05:38.843" Score="0" ViewCount="" Body="&lt;p&gt;XSLT 2.0 or greater&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although it's not sexy any more, I'd like to see support for XSLT 2.0&lt;/p&gt;&#xA;" OwnerUserId="8895" LastActivityDate="2010-12-01T13:05:38.843" CommunityOwnedDate="2011-05-10T09:21:11.253" />
  <row Id="22817" PostTypeId="2" ParentId="22809" CreationDate="2010-12-01T13:06:14.630" Score="3" ViewCount="" Body="&lt;p&gt;There are several reasons to develop open source applications.  In general, the more foundational the need is the better suited to open source it is.  For example, ASP.NET MVC, Ruby on Rails, Django, PHP, and other web frameworks are all open source.  That's right, even Microsoft has a fairly well known open source project.  The need for a well organized web framework that lets you focus on building a web application is larger than the specific web application you are building.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many people (myself included) contribute to open source because we use these frameworks in our day job.  It's self preservation in a sense.  If I don't have to keep reinventing the wheel just because I am at a new company, why should I?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to making money with open source, that is a tricky subject.  Most open source licenses allow you to sell your software.  The specific license governs whether you need to share your modifications (BSD/ASL style licenses do not while GPL style licenses do in most cases), or provide attribution ot the original project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The cases that I see work most often are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Selling support.  MySQL, Spring, and a few others follow this model and do well with it.&lt;/li&gt;&#xA;&lt;li&gt;Selling convenience.  RedHat, SuSE, and other Linux distros package a group of applications together for the user's convenience.&lt;/li&gt;&#xA;&lt;li&gt;Selling appliances.  In short this is the way companies like Google, Nokia, Linksys, etc. make money packaging proprietary and open source products together and keeping them safe.  It's probably the most lucrative option.&lt;/li&gt;&#xA;&lt;li&gt;Selling T-Shirts/Mugs/etc.  Doesn't bring in a whole lot, but better than nothing.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Bottom line is that the source code may be open, but there are always people who need more than the raw code.  I'm sure there are more ways to make money off of open source, you just have to be creative.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-01T13:06:14.630" />
  <row Id="22819" PostTypeId="1" AcceptedAnswerId="22825" CreationDate="2010-12-01T13:08:08.890" Score="2" ViewCount="189" Body="&lt;p&gt;Hi&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suppose I have some code&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void some_block(void)&#xA;{&#xA;    some_statement_1();&#xA;    some_statement_2();&#xA;    some_statement_3();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now I wish to out-comment statement #2, but here I never can find a way where it feels right. Usually I will do the following:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void some_block(void)&#xA;{&#xA;    some_statement_1();&#xA;//    some_statement_2();&#xA;    some_statement_3();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But now we got what looks like extra indentation of statement #2, yet it is arguable whether the indentation is still &quot;correct&quot;. Alternatively we could do:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void some_block(void)&#xA;{&#xA;    some_statement_1();&#xA;    //some_statement_2();&#xA;    some_statement_3();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This looks a bit better, yet still somehow also wrong. However the following just looks misplaced:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void some_block(void)&#xA;{&#xA;    some_statement_1();&#xA;  //some_statement_2();&#xA;    some_statement_3();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;How do you outcomment code and keep &quot;correct&quot; indentation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems most people who have provided answers did not answer my question, but simply state that it is bad practice to leave dead code around. While I completely agree with that, that was not the point of the question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now I am facing a case of example where I have 5 helper functions, that manage 5 similar but slightly different structs for me. I use these helper functions to make my code easier to read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, at the moment (and for the next month probably) one of the structs are not going to be used. And I cannot commit anything which causes compiler warnings, so I have to outcomment that part of the code and commit it like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also I forgot this last variant, which I think just looks plain wrong:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void some_block(void)&#xA;{&#xA;    some_statement_1();&#xA;//  some_statement_2();&#xA;    some_statement_3();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3666" LastEditorUserId="3666" LastEditorDisplayName="" LastEditDate="2010-12-06T09:30:24.443" LastActivityDate="2010-12-06T09:30:24.443" Title="Correct alignment when outcommenting code" Tags="&lt;best-practices&gt;&lt;code-quality&gt;&lt;code&gt;&lt;comments&gt;&lt;indentation&gt;" AnswerCount="4" />
  <row Id="22821" PostTypeId="2" ParentId="9506" CreationDate="2010-12-01T13:09:03.460" Score="1" ViewCount="" Body="&lt;p&gt;To be honest, I'm surprised that people find pointers hard to learn and/or confusing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are plenty of real-world analogies that most people find entirely un-confusing.&#xA;For example, what is so hard about some gps coordinates written on a piece of paper?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The piece of paper is not the coordinate information.&lt;/li&gt;&#xA;&lt;li&gt;The paper just stores the coordinates.&lt;/li&gt;&#xA;&lt;li&gt;The paper also has a location.&lt;/li&gt;&#xA;&lt;li&gt;The coordinates are not the location they point at. They are coordinates, not a physical location.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;What is the big deal?&lt;/p&gt;&#xA;" OwnerUserId="8854" LastActivityDate="2010-12-01T13:09:03.460" />
  <row Id="22822" PostTypeId="2" ParentId="22790" CreationDate="2010-12-01T13:09:44.350" Score="0" ViewCount="" Body="&lt;p&gt;But what do you concider be the difference between a assembler, programmer and developer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My own personal definition is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;ASSEBMLER&lt;/strong&gt; - Someone who doesnt write much of &quot;own&quot; code, instead using logic and code from others. Eg someone who copies a jscript to display pictures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;PROGRAMMER&lt;/strong&gt; - Someone who solve specific problems with a programming language. Often in a existing enviroment (system, application). Eg someone who solve a calculation problem in a report.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;DEVELOPER&lt;/strong&gt; - Someone who come up with new ways of solving problems or/and creating own solutions/systems. The developer is also a kind of designer/architect and model the ideas before the implementaion. Eg someone who creates a solution for making bookings on the web.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course the roles are somehow floating.&lt;/p&gt;&#xA;" OwnerUserId="6888" LastActivityDate="2010-12-01T13:09:44.350" />
  <row Id="22823" PostTypeId="2" ParentId="279" CreationDate="2010-12-01T13:10:46.813" Score="5" ViewCount="" Body="&lt;h2&gt;Native Win32 exe Compilation:&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Would be nice to have the option to compile down to a single win32 exe (i.e. run on systems without the .NET framework).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But this is only a dream...&lt;/p&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-01T14:12:58.780" LastActivityDate="2010-12-01T14:12:58.780" CommunityOwnedDate="2011-05-10T09:21:11.253" CommentCount="1" />
  <row Id="22824" PostTypeId="2" ParentId="22723" CreationDate="2010-12-01T13:12:31.040" Score="4" ViewCount="" Body="&lt;p&gt;I feel your pain brother -- I had the privilege of working on a small WPF/XAML application and coming from a ASP.NET/C# web application developer it was torture.  The separation between CSS and HTML and code extremely simple yet extremely powerful at the same time.  In my mind XAML mashes this all up together again -- and although it is powerful it is also ugly and confusing as sin, and therefore unmaintainable (similar to any Perl script not created by yourself).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After talking to a friend about it, and trying to describing the beauty that is all my style in a CSS file, the structure in HTML, and C# controlling the codebehind -- he suggested I try Blend. In my mind that is a red flag -- if I need an IDE to &lt;em&gt;work&lt;/em&gt; (not just work better) with your language, if it can't stand on its own well, then it is an epic fail. &lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-12-01T13:12:31.040" CommentCount="6" />
  <row Id="22825" PostTypeId="2" ParentId="22819" CreationDate="2010-12-01T13:16:08.073" Score="20" ViewCount="" Body="&lt;p&gt;Format it so it sticks out and makes your code look so ugly that you'll be compelled to delete it. Comments are for comments and not for dealing with unnecessary code; that's the job of version control. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-01T13:16:08.073" CommentCount="6" />
  <row Id="22826" PostTypeId="2" ParentId="22809" CreationDate="2010-12-01T13:16:43.860" Score="27" ViewCount="" Body="&lt;p&gt;For small projects, reasons might be &quot;hobby&quot;, &quot;getting some experience&quot;, &quot;fame&quot;, &quot;joy&quot; etc. but that's not how the big open source projects like Mozilla, OpenOffice, Linux work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why did Sun buy StarDivision and made StarOffice an open source program (called OpenOffice.org)? Why does Mozilla create a top-notch browser and give it away as open source? Why are there people creating Linux, writing drivers and whatnot, and make it available to everyone for free? Why does Microsoft create opensource drivers for Linux so it can run better in MS's virtualisation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Because it makes some business sense for them. They make money that way, or at least plan to.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In some cases, the dominance of MS's products, i.e. Windows, Office, Internet Explorer, was the reason the create a competing product, so it would be harder for MS to use their desktop dominance to conquer other domains, i.e. servers, internet services, too. This explains, to some extend, OpenOffice.org and Mozilla.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other cases, open source software is meant to drive sales of hardware, other software or services. Open Source drivers obviously help to sell hardware components to Linux users. RedHat sells support for their Linux distro, and they sell the fact that their Linux is genuine RedHat. Other products, e.g. Oracle, are certified for use on Redhat, but not on CentOS, even though it probably runs just-as-well. Server hardware is certified for Redhat, even though other linux distros probably run just-as-well. Big-money-clients don't care about the price, they want the certificate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Some companies, e.g. Google, sponsor many open source projects, because it helps their business.&lt;/strong&gt; They don't do it for hedonism. They want a free internet, a pervasive internet, a widespread internet, where people use Google's services so Google generates revenue.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-01T13:16:43.860" CommentCount="8" />
  <row Id="22827" PostTypeId="2" ParentId="22769" CreationDate="2010-12-01T13:29:15.090" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What language, in your opinion, allows&#xA;  the average programmer to output&#xA;  features with the least amount of&#xA;  hard-to-find bugs?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In my opinion, Delphi.  Being based on Pascal, the language is simple and intuitive enough for the average programmer &lt;a href=&quot;http://tech.turbu-rpg.com/85/learning-delphi-a-true-story&quot; rel=&quot;nofollow&quot;&gt;(or even inexperienced coders)&lt;/a&gt; to pick up easily, and its rich tool and library support make most bugs easy to find.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Strong typing and a strict compiler that catches many common errors.&lt;/li&gt;&#xA;&lt;li&gt;Intuitive syntax that doesn't encourage common errors.  (&quot;The World's Last Bug,&quot; &lt;code&gt;if (alert = RED) {LaunchNukes;}&lt;/code&gt;, will not compile, for example.)&lt;/li&gt;&#xA;&lt;li&gt;A well-designed object model that eliminates many of the common C++ OOP errors.&lt;/li&gt;&#xA;&lt;li&gt;Bounds checking and range checking built in to the language, &lt;a href=&quot;http://tech.turbu-rpg.com/205/little-things-delphi-gets-right&quot; rel=&quot;nofollow&quot;&gt;drastically reducing the chances of security problems.&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Probably the fastest compiler known to man, which increases your productivity and makes it harder to lose your train of thought while waiting on a build.&lt;/li&gt;&#xA;&lt;li&gt;The debugger Visual Studio's debugger wants to be like when it grows up.&lt;/li&gt;&#xA;&lt;li&gt;Leak tracking built directly in to the memory manager, making finding and fixing memory leaks trivial.&lt;/li&gt;&#xA;&lt;li&gt;A large, mature standard library providing prebuilt and pre-tested ways to accomplish common tasks without having to build your own, possibly buggy implementations.&lt;/li&gt;&#xA;&lt;li&gt;Ships with useful tools, such as a powerful logging system and a profiler, to make tracking down problems easier.&lt;/li&gt;&#xA;&lt;li&gt;Strong community support for common issues that aren't in the standard library, including &lt;a href=&quot;http://code.google.com/p/omnithreadlibrary/&quot; rel=&quot;nofollow&quot;&gt;a powerful third-party concurrency library&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="935" LastEditorUserId="935" LastEditorDisplayName="" LastEditDate="2010-12-01T13:49:33.083" LastActivityDate="2010-12-01T13:49:33.083" CommentCount="6" />
  <row Id="22829" PostTypeId="2" ParentId="22819" CreationDate="2010-12-01T13:32:50.357" Score="10" ViewCount="" Body="&lt;p&gt;What about this?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void some_block(void)&#xA;{&#xA;    some_statement_1();&#xA;    some_statement_3();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="628" LastActivityDate="2010-12-01T13:32:50.357" />
  <row Id="22830" PostTypeId="2" ParentId="22714" CreationDate="2010-12-01T13:36:01.257" Score="0" ViewCount="" Body="&lt;p&gt;It depends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On one extreme, you've got this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A production application that hasn't been touched in the last 15 years.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Example: Some COBOL apps, I guess.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other side of the range you've got this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;An app that started being programmed 15 years ago, has suffered 8 complete rewrites in order to &quot;keep up&quot;, and it's still in development.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Example: Duke Nukem Forever&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will be in some point on that spectrum every time you program an application. If you don't choose consciously where you want to be, then circumstances will choose for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In order to decide, ask yourself where you want to be, depending on the information you have (knowledge, experience, advice from others, etc) and your constraints (money, time).&lt;/p&gt;&#xA;" OwnerUserId="8925" LastActivityDate="2010-12-01T13:36:01.257" />
  <row Id="22831" PostTypeId="2" ParentId="22723" CreationDate="2010-12-01T13:41:23.623" Score="4" ViewCount="" Body="&lt;p&gt;XAML falls short on many things, however it could be worse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some things I do like about XAML are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Binding System&lt;/strong&gt; -  Very cool, I like having my UI elements able to find and reference each other&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;DataTemplates&lt;/strong&gt; - It's awesome to be able to build your own templates for a custom class&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;ControlTemplates&lt;/strong&gt; - It's so easy to overwrite a control's template to get it to feel/act the way you want it to&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Merged Dictionaries&lt;/strong&gt; - Very useful for keeping XAML files organized. For example, I have one with all my static converters, colors, etc. Another contains generic control templates, and other files contain controls specific to a particular part of the program.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Attached Properties&lt;/strong&gt; - Nice to be able to just attach another control's property onto something to get it to act the way you want instead of having to rebuild the control. Or just being able to build your own properties that can be attached to anything (For example, I have a CanResize property that if applied and set to True, allows the user to grab a side and resize the element)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Custom Dependency Properties&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some things I'd like to see are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;#region directives&lt;/li&gt;&#xA;&lt;li&gt;Allowing multiple &lt;code&gt;BasedOn&lt;/code&gt; styles without custom workarounds&lt;/li&gt;&#xA;&lt;li&gt;Context Menus being part of the visual tree (Agree with you there!)&lt;/li&gt;&#xA;&lt;li&gt;Being allowed to specify Grid.Rows = X and Grid.Columns = Y without building Definitions all the time&lt;/li&gt;&#xA;&lt;li&gt;A &quot;Go To Definition&quot; shortcut for StaticResources&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-12-01T13:41:23.623" CommentCount="1" />
  <row Id="22832" PostTypeId="2" ParentId="22768" CreationDate="2010-12-01T13:42:14.010" Score="0" ViewCount="" Body="&lt;p&gt;Playing devil's advocate (quite literally some Java devs might say) -- you may want to &lt;em&gt;consider&lt;/em&gt; looking at .NET.  Not for any technical reason. If you're coming back from a long hiatus, only four years of experience, and your skills aren't quite up to par, you will probably try to take a Junior Programmer or a Software Engineer I position.  In my experience, there are a lot more jobs at this level for .NET programmers then there are at Java (at least in my market in the Eastern US).  Most Java devs seem like they require more experience with a wide range of enterprise tools and methodologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, if you love Java I then you should continue doing that, but if you're going to spend time updating your skills anyway, I don't think it will be a significant jump for you -- and you'll not box yourself in when looking for that first position.  Good Luck!&lt;/p&gt;&#xA;" OwnerUserId="4662" LastEditorUserId="4662" LastEditorDisplayName="" LastEditDate="2010-12-01T13:51:45.297" LastActivityDate="2010-12-01T13:51:45.297" CommentCount="2" />
  <row Id="22833" PostTypeId="2" ParentId="22768" CreationDate="2010-12-01T13:43:15.960" Score="1" ViewCount="" Body="&lt;p&gt;I second @Martin Verburg's advice to start coding.  Download the latest JDK (1.6.0_22, I believe).  Grab the latest Eclipse or NetBeans, set up MySQL, Tomcat, Spring, Hibernate and Maven.  Then just start pulling down examples, samples, tutorials and whatever other learning materials you can find.  If you want to get into web app development, play with jQuery.  If you're more of a back-end person, get the Axis2 jars and start playing with some web services.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say that Spring is the #1 technology to get comfortable with, it's used just about everywhere.  At least the dependency injection container, the MVC stuff isn't as widespread.  After that, look at Hibernate, it's very nearly as popular.  After that, check out the local job listings and see what technologies are in demand in your area and study those.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also recommend searching for a Java user group in your area.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-01T13:43:15.960" />
  <row Id="22834" PostTypeId="2" ParentId="22819" CreationDate="2010-12-01T13:46:38.563" Score="1" ViewCount="" Body="&lt;p&gt;I hit Ctrl-/ and whatever my IDE does, I do that. Color highlighting tells me to ignore that line anyway (or to pay attention, depending on my context).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before then, I used to replace spaces with slashes, keeping alignment:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;block {&#xA;    codeline1;&#xA;//  codeline2;&#xA;    codeline3;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Obviously, just prepending slashes for flush-left code.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-12-01T13:46:38.563" CommentCount="1" />
  <row Id="22835" PostTypeId="2" ParentId="22809" CreationDate="2010-12-01T13:49:25.627" Score="1" ViewCount="" Body="&lt;p&gt;Besides money, of course there is fame -- and then their is learning how something works by building it and constructing it yourself.  Gaining valuable and marketable experience outside your normal work life.  I think &lt;a href=&quot;http://ayende.com/blog/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Ayende&lt;/a&gt; is a good example of this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an aside -- &lt;em&gt;generally&lt;/em&gt; I've found some of the best, most intuitive projects and frameworks I've worked with to be open source -- I think that people who are truly passionate enough to spend their free time building a project up from scratch or simply maintaining it produce a better product then people who are just grouped together from 9-5.&lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-12-01T13:49:25.627" />
  <row Id="22836" PostTypeId="2" ParentId="18946" CreationDate="2010-12-01T13:50:07.027" Score="0" ViewCount="" Body="&lt;p&gt;You could also look at Planet Framework: &lt;a href=&quot;http://www.planetframework.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.planetframework.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way I see it, it's basically a Django-inspired framework with elaborate real-time features, a clear support for scaling and developer-friendly tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the downsides are that it's closed-source, the developer community is small, and there are no active public discussion/answers/help forums or similar.&lt;/p&gt;&#xA;" OwnerUserId="8854" LastActivityDate="2010-12-01T13:50:07.027" />
  <row Id="22837" PostTypeId="2" ParentId="22714" CreationDate="2010-12-01T13:53:46.590" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What symptoms should you be watching out for to better grasp the situation that your computer knowledge is already obsolete?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;When you don't want to learn a new language or a new IDE because &quot;I'm already comfortable with what I know and I don't want to learn things from start all over again&quot;. When you think like that, &lt;em&gt;you&lt;/em&gt; are obsolete.&lt;/p&gt;&#xA;" OwnerUserId="1969" LastActivityDate="2010-12-01T13:53:46.590" CommentCount="3" />
  <row Id="22838" PostTypeId="2" ParentId="279" CreationDate="2010-12-01T13:58:20.347" Score="0" ViewCount="" Body="&lt;p&gt;I'd like the ability to &quot;round-trip&quot; in the &lt;code&gt;CodeDOM&lt;/code&gt; classes.  Right now, I can create a (pseudo-)AST and call a code generator to create the code, but I can't take code I've generated and get the AST back to change it.  This would be much nicer than our current practice, which is to run a Perl script that basically does a series of search-and-replace operations...&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-01T13:58:20.347" CommunityOwnedDate="2011-05-10T09:21:11.253" />
  <row Id="22840" PostTypeId="2" ParentId="22749" CreationDate="2010-12-01T14:14:57.793" Score="3" ViewCount="" Body="&lt;p&gt;After a brief contemplation I would suggest that it might even be &lt;em&gt;more&lt;/em&gt; important for a solo developer than for a team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the most basic level a CI server demonstrates that you can build your application from scratch from committed source - combined with a decent set of tests it should demonstrate that you can build and run from scratch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since one of the things I try to do is ensure that my build includes a deployable package you also know that you can go get something to deploy (clean and from a known state/version).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact now, when you do File|New Project you should probably include creating or adding to your repository and setting up your CI build script and deployment setup (even if that's only to zip a pile of stuff for xcopy deployment)&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-12-01T14:14:57.793" />
  <row Id="22841" PostTypeId="2" ParentId="22790" CreationDate="2010-12-01T14:21:01.890" Score="1" ViewCount="" Body="&lt;p&gt;You are a programmer, if you prefer writing a program to do something than doing it manually.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-01T14:21:01.890" />
  <row Id="22842" PostTypeId="2" ParentId="22819" CreationDate="2010-12-01T14:26:45.997" Score="1" ViewCount="" Body="&lt;p&gt;As said by Alex in the emacs I use comment-region and let the emacs handle it. &#xA;(Please no -ve votes from vi user for using emacs. :-) ). Once I am sure about my code then I delete it. The point is leave it to your favorite editor and get used to what editor does.  &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-01T14:26:45.997" CommentCount="1" />
  <row Id="22843" PostTypeId="2" ParentId="279" CreationDate="2010-12-01T14:30:16.930" Score="0" ViewCount="" Body="&lt;p&gt;Support for a non-nullable base type (I think this is a bit different than what Dan Bryant said).&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-12-01T14:30:16.930" CommunityOwnedDate="2011-05-10T09:21:11.253" />
  <row Id="22844" PostTypeId="2" ParentId="22790" CreationDate="2010-12-01T14:43:01.790" Score="4" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;10 PRINT &quot;I AM A PROGRAMMER NOW&quot;&#xA;20 GOTO 10&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-01T14:43:01.790" CommentCount="1" />
  <row Id="22845" PostTypeId="2" ParentId="22714" CreationDate="2010-12-01T14:44:34.153" Score="1" ViewCount="" Body="&lt;p&gt;When it no longer does the job it was intended to do it is obsolete.  They sky is not falling because the code is &quot;old.&quot;  I have code that is over 20 years old that works daily and just fine.  It is at end of life and about to be obsolete for &lt;em&gt;us&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if you were in a race with some other company to a patent and you lost, your code would be obsolete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;anything that fits these two is obsolete, but the principal is the same - you can't use it so it's obsolete, no good, or &quot;no count&quot; as old folks sometimes say.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;on the second question, if you look through job listings and you don't see your skills listed, ever, and you can't find contract work, ever, etc.  Guess what?  Your skills are not needed.  If that continues you could say your skill set is obsolete.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-01T14:44:34.153" />
  <row Id="22846" PostTypeId="2" ParentId="22790" CreationDate="2010-12-01T14:49:37.923" Score="1" ViewCount="" Body="&lt;p&gt;if you write programs and you get paid for that then you are a professional programmer.&#xA;if you write programs and you don't get paid for it you are a programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;either way you are a programmer.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-01T14:49:37.923" />
  <row Id="22847" PostTypeId="2" ParentId="22809" CreationDate="2010-12-01T14:52:19.713" Score="0" ViewCount="" Body="&lt;p&gt;You can support it to get money.  If you have a program that is very well thought of and used by the community, say like jboss, you can offer your services and support.  People will pay for it.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-01T14:52:19.713" />
  <row Id="22848" PostTypeId="2" ParentId="6053" CreationDate="2010-12-01T14:54:01.520" Score="0" ViewCount="" Body="&lt;p&gt;First I Got an IntelliMouse optical, the only important point is that it have 2 side buttons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I set the &lt;strong&gt;Left Side Button&lt;/strong&gt; to &lt;strong&gt;Ctrl-C&lt;/strong&gt; and the &lt;strong&gt;Right Side Button&lt;/strong&gt; To &lt;strong&gt;Ctrl-V&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So when my hand is on the mouse, I could copy and paste without using the keyboard. &lt;/p&gt;&#xA;" OwnerUserId="19" LastActivityDate="2010-12-01T14:54:01.520" />
  <row Id="22849" PostTypeId="1" CreationDate="2010-12-01T14:56:16.130" Score="2" ViewCount="271" Body="&lt;p&gt;After applying for a position, how long should I wait until I consider the position I applied for filled by someone else?&lt;/p&gt;&#xA;" OwnerUserId="969" LastActivityDate="2011-01-25T14:05:49.670" Title="How long should I wait before I consider a position I applied for filled by someone else?" Tags="&lt;jobs&gt;&lt;job-interview&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="22850" PostTypeId="2" ParentId="22849" CreationDate="2010-12-01T14:58:18.973" Score="0" ViewCount="" Body="&lt;p&gt;Most jobs I have ever had told me that very same day. Only on one occasion was it any extended length of time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think its relatively normal practice to tell the successful candidate the same day or day after. And then not bother contacting anyone else.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-12-01T14:58:18.973" CommentCount="1" />
  <row Id="22851" PostTypeId="2" ParentId="22849" CreationDate="2010-12-01T15:00:25.717" Score="2" ViewCount="" Body="&lt;p&gt;If you haven't even gotten a call for an interview for the position then you should already be treating it as filled. When you apply to a company its likely that your application will get lost in the sea of applications and as such you should be applying to several companies for the start. If however you've been invited for and gone to an interview then I'd say its acceptable to start wondering this. Typically though, if you've been invited to an interview the company will call you sometime afterward and inform you if you have or have not gotten the job.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-12-01T15:00:25.717" CommentCount="2" />
  <row Id="22852" PostTypeId="2" ParentId="22849" CreationDate="2010-12-01T15:01:56.547" Score="10" ViewCount="" Body="&lt;p&gt;Why not make a follow-up call to find out?&lt;/p&gt;&#xA;" OwnerUserId="5747" LastActivityDate="2010-12-01T15:01:56.547" CommentCount="3" />
  <row Id="22853" PostTypeId="1" AcceptedAnswerId="22856" CreationDate="2010-12-01T15:05:42.927" Score="6" ViewCount="519" Body="&lt;p&gt;I got into iphone app development because it is the hot platform at the moment with people becoming very wealthy off of their apps. I suppose most programmer work within a programming job so they program for their salary, but outside of work when people program, do you only program for money? And if not, why do you program? I know people may view me as shallow but surely you have a skill as a programmer and you would want to benefit from that...?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like if you're a C (or other variants) programmer (shout at me if i'm wrong but you mostly program Windows programs) do you have the intent of selling programs you make over the internet or releasing them to SourceForge?&lt;/p&gt;&#xA;" OwnerUserId="8622" LastActivityDate="2010-12-02T21:59:43.597" Title="Do you only program for money?" Tags="&lt;career&gt;" AnswerCount="19" CommentCount="8" />
  <row Id="22854" PostTypeId="1" CreationDate="2010-12-01T15:08:45.947" Score="9" ViewCount="502" Body="&lt;p&gt;If given too little time, quality suffers. If given too much time, developers will find a way to use all alloted time, no matter what. What would be a good way with dealing with estimates? Are they a necessary evil?&lt;/p&gt;&#xA;" OwnerUserId="7368" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-12-01T19:52:54.423" LastActivityDate="2011-01-27T12:13:44.177" Title="How do you deal with time estimates?" Tags="&lt;time-management&gt;&lt;estimation&gt;" AnswerCount="10" CommentCount="9" FavoriteCount="5" />
  <row Id="22855" PostTypeId="2" ParentId="22853" CreationDate="2010-12-01T15:09:56.867" Score="0" ViewCount="" Body="&lt;p&gt;If someone asks me to, yes. If I do it on my own not necessarily. There is (or there should be) a great deal of programming during learning.&lt;/p&gt;&#xA;" OwnerUserId="7368" LastActivityDate="2010-12-01T15:09:56.867" CommentCount="1" />
  <row Id="22856" PostTypeId="2" ParentId="22853" CreationDate="2010-12-01T15:10:50.423" Score="16" ViewCount="" Body="&lt;p&gt;I do not only program for money, it's just an added benefit.  I feel truly blessed to love what I do for a living and to get paid well to do it.  As for why do I program - for me it's all about solving problems, the challenge of finding elegant solutions to complex issues, and the constant learning involved.&lt;/p&gt;&#xA;" OwnerUserId="6423" LastActivityDate="2010-12-01T15:10:50.423" />
  <row Id="22857" PostTypeId="2" ParentId="22853" CreationDate="2010-12-01T15:10:57.083" Score="10" ViewCount="" Body="&lt;h2&gt;No!&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I would happily program for free (don't tell my boss that), because its a passion. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work on a lot of personal projects too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The money is a nice bonus.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-01T15:10:57.083" CommentCount="2" />
  <row Id="22858" PostTypeId="2" ParentId="22853" CreationDate="2010-12-01T15:12:43.510" Score="0" ViewCount="" Body="&lt;p&gt;No.  I program so that I can eat.  That's different but sort of what you mean.  I may write a program while off the clock but ultimately it is my trade so everything points back to the money and eating and shelter and clothing.  If it did not and since we do not live the utopia of Star Trek and doing things just for enriching our lives, I wouldn't have time to program.  I'd be doing something else and perfecting that craft instead.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-01T15:12:43.510" CommentCount="9" />
  <row Id="22859" PostTypeId="2" ParentId="22853" CreationDate="2010-12-01T15:13:22.357" Score="0" ViewCount="" Body="&lt;p&gt;No, I could see volunteering my skills for a cause.  For example, I may help build something involving &lt;a href=&quot;http://brianpincott.ca/wordpress/?p=269&quot; rel=&quot;nofollow&quot;&gt;Open Data in Calgary&lt;/a&gt; or help build a site for a cause I choose to support.  There are other benefits besides monetary such as helping to build a community that helps people or trying to tackle some big world problem by doing my little part in the grand design.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-01T15:13:22.357" />
  <row Id="22860" PostTypeId="2" ParentId="22854" CreationDate="2010-12-01T15:14:03.307" Score="3" ViewCount="" Body="&lt;p&gt;Delevopers should be the ones producing estimates for their own work, not you. (Or, rephrased, you should only be estimating your own work.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Time and experience will allow you to estimate more accurately, especially if you track your own estimates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The real problem with programming is that for a particular language, on a particular project, you might be able to give highly accurate estimates to routine feature requests. But a lot of the time you have to give an estimate on something that you haven't done before (and possibly in a language you don't know, and/or with a framework you don't know). In which case your estimate is, in some form, a guess. Try guess anyway, keep track of your estimates, and reflect.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-12-01T15:14:03.307" CommentCount="3" />
  <row Id="22861" PostTypeId="2" ParentId="22853" CreationDate="2010-12-01T15:16:06.770" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Do you only program for money?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No. I work in programming because it's what I do best (next to telling jokes, that is).&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;but outside of work when people program, do you only program for money? And if not, why do you program?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Outside of work I pursue my own projects. It brings enjoyment of seeing own things raise out of nothingness and also gives me an opportunity to explore new technologies and techniques which with all likelihood would never have made their way into my work office.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-01T15:16:06.770" />
  <row Id="22862" PostTypeId="1" AcceptedAnswerId="22863" CreationDate="2010-12-01T15:21:10.883" Score="2" ViewCount="104" Body="&lt;p&gt;I've got a client who wants a blog, but isn't willing to commit a whole lot of time to post on a weekly basis -- he says he will probably update about once a month, but wouldn't want to do more than that. He is also wondering if there are any rights issues around syndicating content from other blogs to augment his blog feed, such as bringing in the wall street journal news feed -- assume each post would be properly attributed to its original source and link out to the actual blog post when it appeared in the blog feed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone know if this is legal/within the terms of use for standard commercial RSS feeds, or has been done before?&lt;/p&gt;&#xA;" OwnerUserId="8932" LastActivityDate="2010-12-01T15:32:25.077" ClosedDate="2010-12-01T17:52:48.137" Title="Legality on blog content syndication?" Tags="&lt;blogs&gt;&lt;legal&gt;" AnswerCount="2" CommentCount="4" />
  <row Id="22863" PostTypeId="2" ParentId="22862" CreationDate="2010-12-01T15:25:17.543" Score="4" ViewCount="" Body="&lt;p&gt;It's certainly been done before - there are any number of sites that aggregate feeds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll need to check the terms and conditions of the sites you wish to use and see if they allow this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a site provides an RSS feed then it's more likely that it would be allowed, assuming you meet their terms and conditions and given that you are going to attribute the source. However, no site is going to want to do something that will lose them visitors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this situation ask!&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-12-01T15:32:25.077" LastActivityDate="2010-12-01T15:32:25.077" CommentCount="1" />
  <row Id="22864" PostTypeId="2" ParentId="22853" CreationDate="2010-12-01T15:26:29.323" Score="1" ViewCount="" Body="&lt;p&gt;I do benefit quite nicely from my skill as a programmer.  I also write things outside work for my own pleasure, or to show off, or to help other people, or because I want to do something on my computer and writing a program is the easiest way.  I learn new things because it's fun, they're interesting, I'm interested in being a better programmer, and knowing something is almost always better than not knowing it.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-01T15:26:29.323" />
  <row Id="22865" PostTypeId="2" ParentId="22862" CreationDate="2010-12-01T15:26:37.277" Score="1" ViewCount="" Body="&lt;p&gt;I would put it into gray zone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To find out whether it's legal for a particular blog you have to read through their ToS or contact them to find out where they stand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a rule of the thumb, if you're collecting RSS feeds with only links to content and that's what you're republishing, you're okay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if those feeds distribute the content itself (like this site) then you'd rather abstain. Firstly you'll be partially pulling visitors from their site to yours - and they won't be happy about it. Furthermore you'll be creating duplicate content for the search engines, which on one site may hurt the page rank of the original site (and they'll be angry) or may result in Google banning your page for duplicate content.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-01T15:26:37.277" CommentCount="1" />
  <row Id="22866" PostTypeId="2" ParentId="22854" CreationDate="2010-12-01T15:28:17.360" Score="17" ViewCount="" Body="&lt;p&gt;Of course they're necessary but they're not intrinsically evil, they're just done badly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The basics of a good estimate:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) &lt;strong&gt;Developers, ideally the ones who will do the work, have to be involved in generating them&lt;/strong&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) &lt;strong&gt;An estimate is a range (usually best case, worst case, most likely case), not a single value.&lt;/strong&gt;  You may use the range to approximate a single value ((best case + 4* most likely case + 2 * worst case) / 7 being a fair formula for doing so) but never forget that that's all it is - an approximation.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) In my experience &lt;strong&gt;the most common reason for bad estimates is wishful thinking&lt;/strong&gt;, either on the part of the developer (who is optimistic it will all go fine) or the manager (who is desparate for it all to go quickly).  This needs to be fought - any estimate based on everything going well is pretty much a cert to be massively under.  Most likely case should probably assume that a certain amount of stuff isn't going to go the way you want it to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) In my experience &lt;strong&gt;the second most common reason for bad estimates is not thinking through everything that has to be done&lt;/strong&gt;.  It's not just the coding, it's the unit testing, the admin, the user guide, the back end maintenance screens relating to the functionality.  Break down the task into individual components each taking between quarter of a day and five days - that sort of size can be estimated with a reasonable level of accuracy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) &lt;strong&gt;Measure the actual time things took and review afterwards and use that to improve estimates&lt;/strong&gt;.  Refer to actuals for similar previous tasks as a bench mark and to justify why things are higher than might be expected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;6) &lt;strong&gt;Estimate both at the micro level (each individual task) and the macro level&lt;/strong&gt; (gut feel on how long the whole thing should take).  Usually the macro level estimate will be lower - this is an indication that you might want to review (but not necessarily change) the micro level estimates.  The sweet spot in my experience is when they either agree or, more likely, the macro level estimate is still lower but no one is willing to change any of the individual task estimates.  At that point you use the individual task estimates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;7) &lt;strong&gt;Don't confuse the estimate and the commercial aspects&lt;/strong&gt;.  If you estimate 100 days and the usual charge out rate is $1,000 per day that should obviously be $100,000.  If they say they can't charge that and win the business that's fine but (unless the scope changes) &lt;strong&gt;the estimate doesn't change, the charge out rate does&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;8) &lt;strong&gt;Developers should be challenged on their estimates (as in asked to explain why something takes that long) but not pressured to lower them&lt;/strong&gt;.  Certainly not just because the numbers aren't what someone wants in any case - if they can't justify them then they usually need to be pushed for a better breakdown and potentially a second set of eyes but in a non-confrontational manner - remind the PM (or if you are the PM remember) that they're going to look bad if the project isn't delivered on time too so they should be keen that the estimates are solid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;9) &lt;strong&gt;Contingency should be added&lt;/strong&gt; both shit happens contingency (usually 10 - 20%) and to cover specific risks.  Contingency should be planned in but is &quot;owned&quot; by the project manager - that is if a developer needs to go into it he has to speak to the PM and say why he's over run his estimate.  This usually helps stop the just filling time and keeps contingency for genuine stuff.  If anyone objects to your shit happens contingency budget then explain it's just the reality of IT projects - stuff happens you can't predict.  If they still don't like it then remember to hide it inside the estimates next time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;10) (Edit) &lt;strong&gt;Don't confuse effort and elapsed time&lt;/strong&gt;.  Effort is the total time that will need to be spent doing something, elapsed is the difference between when it starts and when it ends.  They're normally different - admin, support, mentoring and life mean that the chances are that you won't get 5 days effort completed in a working week.  Take 4 as a rough guide but adjust according to the company and the other commitments of the team members.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;11) (Edit - from Martin Wickman) &lt;strong&gt;Other work you've done or are planning can be a valuable source of information when estimating&lt;/strong&gt;.  In the comments below Martin refers to Relative Estimating which involves comparing like tasks with each other to ensure that the estimates assigned seem in proportion given the work involved.  It's surprising how often you'll happily assign 1 week to one task and 1 week to another but when you look at the two things one is clearly more complex than the other - that's a good indication that one (or both) figures are wrong.  Taking this further you get into evidence based scheduling which uses completed tasks and projects as a key input into estimates for future work - at a very basic level &quot;how long did it take last time we did something like this?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Steve McConnell wrote about all of this in &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735605351&quot; rel=&quot;nofollow&quot;&gt;Software Estimation&lt;/a&gt;.  It's a bit dry but it's very thorough on the subject.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2011-01-27T12:13:44.177" LastActivityDate="2011-01-27T12:13:44.177" CommentCount="6" />
  <row Id="22867" PostTypeId="2" ParentId="6053" CreationDate="2010-12-01T15:29:31.610" Score="0" ViewCount="" Body="&lt;p&gt;Firefox Speed Dial addon numerical hotkeys for websites. I ctrl + N 90% of my site switching. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-12-01T15:29:31.610" />
  <row Id="22868" PostTypeId="2" ParentId="22854" CreationDate="2010-12-01T15:31:49.443" Score="5" ViewCount="" Body="&lt;p&gt;The phenomenon you are referring to is known as Parkinson's Law, which states &quot;Work expands to fill the available time for its completion.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, people have a tendency to pace themselves to finish things just in time for the deadline. I don't think it is a result of laziness, but more a consequence that there is always more to do than time to do it, so you prioritize things according to when you have to deliver them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best solution to the deadline dilemma, in my experience, is an iterative process that breaks the project into small frequent deliverables. This keeps the sense of urgency up and also helps to keep the estimates realistic as it is much easier to estimate a small task than a larger one. Be careful though to give the developers a lot of input and control over the deadlines. A manager who dictates a million tiny deadlines = a micromanager.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case, deadlines should be set by real business constraints. Creating deadlines based on estimates of how long it will take to do the work is somewhat akin to using a ruler to measure itself.&lt;/p&gt;&#xA;" OwnerUserId="287" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-12-01T16:07:29.947" LastActivityDate="2010-12-01T16:07:29.947" CommentCount="3" />
  <row Id="22869" PostTypeId="2" ParentId="22853" CreationDate="2010-12-01T15:32:24.483" Score="0" ViewCount="" Body="&lt;p&gt;Nope.  I've been programming since the third grade, and kept at it because I enjoyed it.  A few years back, I used my coding skills, (developed privately, not professionally,) to land a job at a place that lets me sit around and write code all day and they'll even pay me for it!  I figure I'm a real lucky guy. :)&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-01T15:32:24.483" />
  <row Id="22870" PostTypeId="2" ParentId="22854" CreationDate="2010-12-01T15:37:33.397" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Break down the task into subtask that takes maximum time t to deliver. (For exampe t=1day)&lt;/li&gt;&#xA;&lt;li&gt;Do historical analysis to get a picture on how good your team estimated the time and try to improve.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-01T15:37:33.397" />
  <row Id="22871" PostTypeId="2" ParentId="6053" CreationDate="2010-12-01T15:37:54.257" Score="0" ViewCount="" Body="&lt;p&gt;Lets see...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;C-t C-p&lt;/code&gt; brings up a run prompt&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;C-t M-r&lt;/code&gt; reloads &lt;code&gt;.stumpwmrc&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;C-t C-M-r&lt;/code&gt; launches RDesktop targeting one of the office servers&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;C-t C-e&lt;/code&gt; launches Emacs&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Inside of Emacs&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;C-x C-r&lt;/code&gt; resizes Emacs frames&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;C-&amp;gt;&lt;/code&gt; (that is, &lt;code&gt;Ctrl + Shift + .&lt;/code&gt;) updates current file's tag table&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;C-.&lt;/code&gt; visits current file's tag table (for use with &lt;code&gt;find-tag&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;C-x t&lt;/code&gt; launches a new eshell through multishell&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;C-'&lt;/code&gt; comment-or-uncomment-region&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;C-s&lt;/code&gt;/&lt;code&gt;C-r&lt;/code&gt; isearch-regex (forward and backward respectively)&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;C-t C-b&lt;/code&gt; launches Conkeror (my&#xA;browser of choice)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Inside Conkeror&lt;/li&gt;&#xA;&lt;li&gt;Typing &lt;code&gt;go [search term]&lt;/code&gt; searches google&lt;/li&gt;&#xA;&lt;li&gt;same as above for &lt;code&gt;wiki&lt;/code&gt; (wikipedia), &lt;code&gt;you&lt;/code&gt; (YouTube), &lt;code&gt;plt&lt;/code&gt; (the Racket docs) and &lt;code&gt;stock&lt;/code&gt; (for Stock Xchange). Given how often I use it lately, I should probably also add &lt;code&gt;hack&lt;/code&gt; for Hackage (though I'd probably implement that one in terms of a google search of the hackage domain).&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;mail&lt;/code&gt; brings up my company webmail&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So yeah. Lots. The above is just the custom stuff; I obviously also use some of the default shortcuts for StumpWM, Emacs and Conkeror.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-12-01T15:37:54.257" />
  <row Id="22872" PostTypeId="2" ParentId="22854" CreationDate="2010-12-01T15:39:56.930" Score="1" ViewCount="" Body="&lt;p&gt;Developers or tech leads estimate the time for a project, depending on the features to be added. If this time is much more then you will have to discuss with them for reducing the feature/functionality. The estimates will also change depending on the developer to developer. A fresher can not complete the job in same time as an experience developer can complete. So such things should be taken into consideration. And developers do take all the time probably because there requirements are kept changing. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-01T15:39:56.930" CommentCount="1" />
  <row Id="22873" PostTypeId="1" CreationDate="2010-12-01T15:41:41.803" Score="26" ViewCount="963" Body="&lt;p&gt;I suggest it is creating and that if you had no computer you'd be creating with something else.  This is helpful because should you ever find yourself out of a job or doing something else, for whatever reason, you are still a creative person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you confuse programming and creating or are you creative outside of the code?  My bet is that you are the latter.  Imagine you were born hundreds of years ago.  Would you be just as passionate about something else?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit:  I ask because I have seen so many questions about loving programming on SO and a few here.  I think people are confused and can easily be disillusioned.  No matter where I am or what I find myself in.  I would find a way to create.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastEditorUserId="8802" LastEditorDisplayName="" LastEditDate="2010-12-01T15:48:20.267" LastActivityDate="2010-12-15T04:13:00.190" Title="Is programming your passion or is creating your passion?" Tags="&lt;programming&gt;" AnswerCount="19" CommentCount="3" FavoriteCount="4" />
  <row Id="22874" PostTypeId="2" ParentId="22723" CreationDate="2010-12-01T15:43:15.883" Score="0" ViewCount="" Body="&lt;p&gt;XAML, at its core, is a declarative UI markup language.  WPF and Silverlight are simply the two most popular rendering engines for XAML.  The benefit of having an XML-based markup for your UI is that it can be serialized/persisted/deserialized easily with today's technologies and it can be rendered into other technologies (think HTML/CSS/JavaScript or WinForms) if you're up to writing that particular rendering engine.  Also, being XML, it's a lot easier to morph into whatever future technology replaces XAML.  Try that with ol' Windows Resource files!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At a prior job, one of our architects saw an extremely early version of XAML while at Microsoft and based on the idea, created something similar for us to use long before XAML made it to market.  Once XAML did, we had a fairly easy time converting our implementation to it.  All that being said - at the time (I don't know about today) it only rendered to HTML/CSS/JavaScript in our run-time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All that being said, it's a bit cumbersome for me as I learned my UI back on Delphi and C# WinForms - something I need to get over more than anything.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-12-01T15:43:15.883" />
  <row Id="22875" PostTypeId="2" ParentId="22873" CreationDate="2010-12-01T15:46:14.403" Score="28" ViewCount="" Body="&lt;p&gt;I believe that creating is my passion and programming is my medium.  I love creating new applications that people can use or that solve new problems. In the absence of being able to create, my love for my job stagnates in parallel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, this is perhaps the reason why I'm not as technically good of a programmer as I wish to be.&lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-12-01T15:46:14.403" CommentCount="1" />
  <row Id="22876" PostTypeId="2" ParentId="22873" CreationDate="2010-12-01T15:49:28.920" Score="3" ViewCount="" Body="&lt;p&gt;Code and graphic art are simply the means to express my creativity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming as a self-purpose is probably not worth it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fun is creating things people use and enjoying their feedback.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-01T15:49:28.920" />
  <row Id="22877" PostTypeId="2" ParentId="22873" CreationDate="2010-12-01T15:50:03.573" Score="10" ViewCount="" Body="&lt;p&gt;Creating is absolutely my passion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love programming because it allows me to create many things in a short amount of time. That being said, I'm a young programmer and have been wondering if it is the field I've ultimately wanted to stay in. Here is what I've come up with:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ultimately I may like to stay in the programming field, but if I do I want to be the one coming up with the ideas for projects.&lt;/li&gt;&#xA;&lt;li&gt;If I did not stay in the programming field then I would like to start my own company.&lt;/li&gt;&#xA;&lt;li&gt;If I was unable to create a company or become a senior architect but could remain working for a stable company as just a code monkey then this would be fine with me if it was able to support my dreams of over time buying and turning a house into the house of my dreams. The work on the house would be a suitable alternative for a creative outlet.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Ultimately if I have something new to work on, time flies. Once I've finished working on something I'm running to find the next thing to create.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-12-01T15:50:03.573" />
  <row Id="22878" PostTypeId="2" ParentId="22853" CreationDate="2010-12-01T15:56:47.183" Score="5" ViewCount="" Body="&lt;p&gt;These days pretty much yes in that the only technical work I do is paid and it's not the work I'd choose to do in an an ideal world.  That's not to say I don't enjoy it, just that my primary motivation for doing what I do work is financial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It wasn't always the case but my free time is limited and recreational programming simply doesn't make the cut on what little spare time I have.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's competing with a young family and the opportunity to relax and unwind or to do something a little different to how I spend my working week, all of which are more appealing 98% of the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But not to sound too defensive I don't think that's made me worse at what I do.  At work I'm pretty much as interested and professional as I've always been (more in some ways, maybe a little less in others) and I have more perspective now than I had when I was younger and handle the pressures of work better as a result.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-01T16:07:00.900" LastActivityDate="2010-12-01T16:07:00.900" CommentCount="1" />
  <row Id="22879" PostTypeId="2" ParentId="22853" CreationDate="2010-12-01T16:02:58.820" Score="0" ViewCount="" Body="&lt;p&gt;I've made the experience that the best coders are those who really love coding. And since they love it, they do it all the time, not only when they are paid to.&lt;/p&gt;&#xA;" OwnerUserId="2894" LastActivityDate="2010-12-01T16:02:58.820" />
  <row Id="22880" PostTypeId="1" AcceptedAnswerId="22903" CreationDate="2010-12-01T16:05:17.720" Score="6" ViewCount="224" Body="&lt;p&gt;I'm hoping to take part in Google summer of code, 2011(its not even confirmed that it'll happen but assuming it does)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;w.r.t that, I would like to get some idea of working with open source projects and API's in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any suggestions where I should start off?(I want to do something building on an existing application, and I dont want to use php in any way (if its relevant))&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am currently trying to make a small VLC project(using python), but cannot find much documentation on the basic level.&lt;/p&gt;&#xA;" OwnerUserId="8147" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-12-01T16:07:07.140" LastActivityDate="2010-12-01T19:57:27.197" ClosedDate="2010-12-28T23:27:43.593" Title="Want to start off with open source programming" Tags="&lt;open-source&gt;&lt;applications&gt;" AnswerCount="2" CommentCount="5" FavoriteCount="1" />
  <row Id="22881" PostTypeId="2" ParentId="22873" CreationDate="2010-12-01T16:07:37.547" Score="6" ViewCount="" Body="&lt;p&gt;I think the reason programming is such a satisfying creative activity is because it is a meta-craft, which means that it is a craft of creating instructions, not actually performing the instructions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example:&lt;br&gt;&#xA;&lt;strong&gt;A carpenter builds a chair, by shaping planks and whatnot to make up the chair.&lt;/strong&gt;&lt;br&gt;&#xA;&lt;em&gt;vs&lt;/em&gt;&lt;br&gt;&#xA;&lt;strong&gt;A programmer builds instructions that control machinery and robots to create chairs by shaping planks and whatnot.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This activity requires a very profound understanding of many concepts, because you are forced to express yourself in a very clear and unambiguous way, which makes it challenging and interesting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Carpenting is unlikely to put people on the Moon, while programming can easily do it, in a sense.&lt;/p&gt;&#xA;" OwnerUserId="8854" LastActivityDate="2010-12-01T16:07:37.547" CommentCount="3" />
  <row Id="22882" PostTypeId="2" ParentId="22873" CreationDate="2010-12-01T16:07:56.497" Score="2" ViewCount="" Body="&lt;p&gt;My dad is a carpenter, and I find tons of similarities between what the both of us do. I regularly think that we do the same things, but just with different materials, and that I became a programmer because I have my dad's genes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Frankly, I find nothing more exciting than the craft we're in. We take low-level simplistic contraptions and layer them on top of one another to create big contraptions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I don't assume that most of us &lt;em&gt;are&lt;/em&gt; that way because we code. Many programmers are much more interested in the theory of programming, and get excited about coming up with ways for it to do &lt;em&gt;this&lt;/em&gt; or &lt;em&gt;that&lt;/em&gt; with little much concern for the subsequent application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are perhaps the men at the wood mill, who take the raw materials, find new ways to process it, and deliver it to the actual woodworkers. These are the ones that actually do, indeed, &quot;love code&quot;. You may say these aren't actual programmers, but I would probably disagree with that as well. I'm sure many programmers enjoy learning about new languages and applying the respective new methodologies, but don't care all that much about the company's end-product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Shrug, those are my thoughts on the matter. But yes, I am one who likes to create things. I get a reward satisfaction out of that. &lt;/p&gt;&#xA;" OwnerUserId="1808" LastActivityDate="2010-12-01T16:07:56.497" CommentCount="3" />
  <row Id="22883" PostTypeId="2" ParentId="22873" CreationDate="2010-12-01T16:09:31.600" Score="0" ViewCount="" Body="&lt;p&gt;@johnny: Tricky question... While I like creating things, it's the &lt;em&gt;process&lt;/em&gt; I tend to enjoy a lot as well, i.e. the planning and logic that goes into it and while it's most definitely part of creating something, it's also largely the kind of skill-set that programming needs. The nerd in me often thinks in programming constructs: if-then-else, foreach-cute-girl-I-see-smile, the syntax in programming languages, the similarities between C-based ones, etc. ;-P&lt;/p&gt;&#xA;" OwnerUserId="8857" LastActivityDate="2010-12-01T16:09:31.600" />
  <row Id="22884" PostTypeId="2" ParentId="22853" CreationDate="2010-12-01T16:09:37.047" Score="7" ViewCount="" Body="&lt;p&gt;I get up at 6 AM and get the kids ready for school. Get home at 6 PM and by the time diner is made, kids have their homework done and checked, they are made ready for bed and I have spent time with them doing the daddy thing it is 9 pm.  I like to get in bed by 10:00-10:30.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Weekends are spent with the kids and family. Plus there is house maintenance. And I do need a few hours to just do nothing but veg out consuming my favorite media. (Computer games, movies etc) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I only write code at work. I do read technical books/magazines/web sites at home during my off time but that is about all I can do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course when I was a single guy I did some personal development. But even then going out and getting smashed with friends had a slightly higher priority.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-12-01T16:09:37.047" CommentCount="2" />
  <row Id="22885" PostTypeId="1" AcceptedAnswerId="22893" CreationDate="2010-12-01T16:10:27.307" Score="6" ViewCount="383" Body="&lt;p&gt;If I see something I like in another application, and create something similar from the ground up in a commercial product, could I get sued over it? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course it would be styled to look differently, however most of the functionality would be the same since the functionality is what I liked about it. It also would not be the entire system, just a part of one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I live in the US.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-12-02T00:09:26.260" Title="Can I get sued over duplicating another program's UI?" Tags="&lt;copyright&gt;" AnswerCount="5" CommentCount="4" />
  <row Id="22886" PostTypeId="2" ParentId="22885" CreationDate="2010-12-01T16:12:49.667" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Can I get sued over duplicating another program's UI?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This may happen.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I live in the US.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is the biggest problem. US patent chamber seems to accept patenting of trivia.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you know Apple patented their iPhone's &quot;pinch to zoom&quot; with two fingers. Other companys (Samsung, HTC) implemented this functionality as well and ship it worldwide, but disable it for the US market. You may want to provide a different version for the US users as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One other option would be to register a company elsewhere to get out of the US jurisdiction. This won't protect you from attempts to sue you though however may lower their success rate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day, it would also depend how close you duplicate the UI. I believe there is always a room to play, not just to make it look different but also much better in the process. Also if other folks start duplicating it, the mass might win.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One other consideration: while you're small and not really a competitor they won't come after you. When you're on the level they likely will. If you're huge and successful (like Google) everyone will come after you even if you're clean.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-01T16:32:28.597" LastActivityDate="2010-12-01T16:32:28.597" CommentCount="3" />
  <row Id="22887" PostTypeId="2" ParentId="22849" CreationDate="2010-12-01T16:15:30.307" Score="0" ViewCount="" Body="&lt;p&gt;Depends on the position and the market.  I lived in an area once where the tech sector had basically collapsed, and there were probably hundreds of qualified applicants for every opening.  Just sifting through the resumes could take days, let alone setting up interview times.  That said, IME you should hear back within a week if the company is interested in you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I assume from the wording of your questions that you've submitted an application to this company, but have not been interviewed.  Most interviewers give indications of when you can expect to hear from them, and (usually) will either call or otherwise notify you one way or another.  If they've decided not to interview you, you won't get any response and your only indication will be when the job disappears from the site/message board.  If it's still there, then by all means give them a call and ask if they received your application.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-01T16:15:30.307" />
  <row Id="22888" PostTypeId="2" ParentId="22873" CreationDate="2010-12-01T16:16:43.647" Score="3" ViewCount="" Body="&lt;p&gt;Creating things is my passion:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;clever code&lt;/li&gt;&#xA;&lt;li&gt;useful applications&lt;/li&gt;&#xA;&lt;li&gt;musical compositions&lt;/li&gt;&#xA;&lt;li&gt;articles&lt;/li&gt;&#xA;&lt;li&gt;blog posts&lt;/li&gt;&#xA;&lt;li&gt;books&lt;/li&gt;&#xA;&lt;li&gt;short stories&lt;/li&gt;&#xA;&lt;li&gt;or even paper chains for the Christmas tree&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If I couldn't program, I'd be a musician and still be happy. OF course, I'd probably be a whole lot poorer ;-)&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-01T16:16:43.647" />
  <row Id="22889" PostTypeId="2" ParentId="22873" CreationDate="2010-12-01T16:17:30.693" Score="20" ViewCount="" Body="&lt;p&gt;Programming may not be necessarily about creating, but could also be about solving puzzles. I love solving puzzles and I find similarity in programming. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-01T16:17:30.693" CommentCount="1" />
  <row Id="22891" PostTypeId="2" ParentId="22885" CreationDate="2010-12-01T16:24:03.780" Score="1" ViewCount="" Body="&lt;p&gt;I'm not a lawyer, so I can not tell you for sure, but I believe it is possible to get sued for copying an existing UI, especially if parts of it are patented.  A good example of this is the &lt;a href=&quot;http://en.wikipedia.org/wiki/1-Click&quot; rel=&quot;nofollow&quot;&gt;Amazon 1-Click patent&lt;/a&gt; which means Amazon could sue any online shop that allows user to make purchases with one mouse click.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In reality, I think if you are modeling you UI after an existing program that uses pretty standard UI techniques I doubt they would come after you, but again I'm not a lawyer.&lt;/p&gt;&#xA;" OwnerUserId="5323" LastActivityDate="2010-12-01T16:24:03.780" />
  <row Id="22892" PostTypeId="2" ParentId="22873" CreationDate="2010-12-01T16:24:15.333" Score="1" ViewCount="" Body="&lt;p&gt;I think I'm a tool-maker at heart.  I'd rather write a code generator than write the code myself, and I find I spend more time making special tools for my hobby (jewelery) than I spend actually making rings/bracelets/whatnot.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-01T16:24:15.333" />
  <row Id="22893" PostTypeId="2" ParentId="22885" CreationDate="2010-12-01T16:25:14.793" Score="4" ViewCount="" Body="&lt;p&gt;From everything anyone (including lawyers) have told me, you can get sued for anything.  The real question is whether or not you will, and whether or not they'll win.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One lawyer told me, &quot;if anyone thinks you're big enough to take a run at, then that means you're successful.&quot;  In other words, suing someone is a big undertaking.  It has to be worth someone's time and money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That doesn't mean you won't get a strongly worded cease and desist letter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Of course, IANAL).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming you didn't &lt;strong&gt;directly&lt;/strong&gt; copy any code or screenshots or whatever, then you're probably not breaking copyright rules.  Patents, on the other hand, are overly broad, and if someone big enough to sue doesn't like you, they likely have a patent that covers anything you might be writing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Further reading: it would be worth looking at the &quot;look and feel&quot; part of &lt;a href=&quot;http://en.wikipedia.org/wiki/Apple_Computer,_Inc._v._Microsoft_Corporation&quot; rel=&quot;nofollow&quot;&gt;this case&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-12-01T16:25:14.793" CommentCount="2" />
  <row Id="22894" PostTypeId="2" ParentId="22853" CreationDate="2010-12-01T16:25:32.687" Score="0" ViewCount="" Body="&lt;p&gt;I would and have programmed for no money, but I doubt I would do the same programming I do at my job (maybe same language &amp;amp; environment). Some of my other hobbies have allowed me to program some things: weightlifting, sports, music. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back in my floppy disk days, I had little use/knowledge for sub directories until I started playing the first John Madden Football game on a Tandy 1000. Saving profiles, teams, play books, etc. required knowing where to put certain files. Learned most of what I know about hardware by breaking and/or assembling my own PC's. Not directly program related, but becomes part of the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I volunteered for a non-profit group to manage data they collected on the current research for Autism.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-01T16:25:32.687" />
  <row Id="22895" PostTypeId="1" CreationDate="2010-12-01T16:32:07.140" Score="1" ViewCount="204" Body="&lt;p&gt;StackOverflow Sister Post: &lt;a href=&quot;http://stackoverflow.com/questions/4326843/vs10-crashes-when-doing-build-or-rebuild-of-c-project&quot;&gt;gimme teh linkz&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have VS10 installed on a Windows Server 2008 R2 box, along with several other versions of VS dating back years.  This is our production build machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I load or create any C++ project and do a Rebuild or Clean, the IDE crashes.  In the crash details, I see this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/vYUTA.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have seen other reports what seems to be the exact same error on the web (&lt;a href=&quot;http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/7ed80bdf-b818-468b-a1a5-314eff40c073&quot; rel=&quot;nofollow&quot;&gt;example&lt;/a&gt;).  Other than the advice to open a ticket, I've seen no solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone else encountered and fixed this problem?  I've opened a ticket with MS, but I'm covering my bases posting here as well.&lt;/p&gt;&#xA;" OwnerUserId="3563" LastEditorUserId="3563" LastEditorDisplayName="" LastEditDate="2010-12-03T06:04:16.453" LastActivityDate="2010-12-03T06:04:16.453" ClosedDate="2010-12-01T18:40:54.840" Title="VS10 Crashes When Doing &quot;Build&quot; or &quot;Rebuild&quot; of C++ Project" Tags="&lt;visual-studio-2010&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="22896" PostTypeId="2" ParentId="22885" CreationDate="2010-12-01T16:33:17.840" Score="0" ViewCount="" Body="&lt;p&gt;There are certain elements, within any UI that any computer user is going to expect. You would be &lt;strong&gt;&lt;em&gt;amazed&lt;/em&gt;&lt;/strong&gt; (or not) at how many of those elements are patented, or have a patent pending. I'm sorry, but that has gotten so absurd that trying to work around them would be equally absurd. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When it comes to stuff that is actually original, you do have to be careful. Don't clone someone's artwork for menu icons. Obviously, don't clone a trademark logo and substitute your own slight changes to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good programmer is going to do their best to make a very intuitive interface. Given the features of the software, there are only &lt;em&gt;so many ways&lt;/em&gt; you can arrange all of those buttons while still keeping the program intuitive. This means, a programmer at foo is likely to make something remarkably similar to a programmer at bar, if both were given the same project specification. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, don't let other people's accomplishments stop you from innovating. If you are in doubt about something, you probably shouldn't be doing it. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-01T16:33:17.840" />
  <row Id="22898" PostTypeId="2" ParentId="22895" CreationDate="2010-12-01T16:35:38.993" Score="1" ViewCount="" Body="&lt;p&gt;Post this on &lt;a href=&quot;http://stackoverflow.com/&quot;&gt;http://stackoverflow.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6423" LastActivityDate="2010-12-01T16:35:38.993" CommentCount="2" />
  <row Id="22900" PostTypeId="2" ParentId="22363" CreationDate="2010-12-01T16:37:45.167" Score="4" ViewCount="" Body="&lt;p&gt;I would use WF or Drools if you're trying to create an abstraction that non-programmers could work with to develop business rules.  However, if you're dealing with programmers than the abstraction of WF isn't worth the time it takes to develop a solution, I fail to see the added value for your investment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A database is a good way to maintain rules that might change a lot, but let me suggest a possible alternative (not necessarily better, but an alternative).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Separate out the business logic into its own layer (dll) -- abstracting how you're calling it with some interfaces (look at the strategy and observer patterns) i.e IRuleEvaluator.Evaluate(string myParams).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Now you can create discrete classes for each rule (if necessary) and accompanying unit tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Now for the Pièce de résistance, wire up everything behind the scenes in an IOC container -- the dll and the rule evaluator instance itself.  This way your rule evaluator is constructed through the configuration at runtime -- nothing is hard-coded together.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This approach is very dynamic (maybe too dynamic for some tastes) -- it will allow you to have actual discrete unit tests for your all of your rules.  If you need to re-deploy or change a rule, you can drop a new DLL, change your IOC configuration file, restart and verify -- or roll back the change if something is wrong -- without modifying your core code (just like a database).  And unlike a database, it will keep the logic and application code under one umbrella, instead of half written in C# and half in SQL.&lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-12-01T16:37:45.167" />
  <row Id="22902" PostTypeId="2" ParentId="22809" CreationDate="2010-12-01T16:41:59.950" Score="1" ViewCount="" Body="&lt;p&gt;It's not only for &lt;strong&gt;making money&lt;/strong&gt; but more often for &lt;strong&gt;saving money&lt;/strong&gt;.  The vast library of good OSS libraries and tools make it a natural choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In same cases (GPL and friends) that means you're legally bound to make the resultant code OSS too.  In other cases, it's just a personal choice, but you still get to receive other rewards (mostly some recognition, sometimes the chance of selling support, sometimes (happened to me) a good reference to show to potential employers)&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-12-01T16:41:59.950" />
  <row Id="22903" PostTypeId="2" ParentId="22880" CreationDate="2010-12-01T16:42:13.367" Score="4" ViewCount="" Body="&lt;p&gt;Read &lt;a href=&quot;http://www.producingoss.com&quot; rel=&quot;nofollow&quot;&gt;http://www.producingoss.com&lt;/a&gt; to give you a good grounding in some of the behaviours and practices for an open source project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've got limited time to learn before you hit the Google Summer of code then pick an established project in an areas that you're interested in.  So an Apache project, Eclipse Foundation project etc.  Most large, well-organised projects can get you up and running in a day or two.&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2010-12-01T17:11:09.650" LastActivityDate="2010-12-01T17:11:09.650" CommentCount="3" />
  <row Id="22907" PostTypeId="1" AcceptedAnswerId="22909" CreationDate="2010-12-01T16:49:18.480" Score="3" ViewCount="433" Body="&lt;p&gt;Hello:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was asked to recommend a good book for a mid-level experienced developer who wants to improve their coding skills (c# developer).&lt;br&gt;&#xA;I was thinking about:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Code Complete&lt;/em&gt;: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735619670&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=sr_1_1?ie=UTF8&amp;amp;qid=1291221928&amp;amp;sr=8-1&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;The Pragmatic Programmer&lt;/em&gt;: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/020161622X&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X/ref=sr_1_3?ie=UTF8&amp;amp;qid=1291221928&amp;amp;sr=8-3&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Effective C#&lt;/em&gt;: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321658701&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Effective-Covers-4-0-Specific-Development/dp/0321658701/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1291222038&amp;amp;sr=1-1&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think about those?  Any other suggestions?&lt;/p&gt;&#xA;" OwnerUserId="8939" LastActivityDate="2011-02-01T23:41:00.800" Title="Good book for improving c# skills?" Tags="&lt;programming&gt;&lt;books&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="1" />
  <row Id="22908" PostTypeId="2" ParentId="22907" CreationDate="2010-12-01T16:50:41.710" Score="1" ViewCount="" Body="&lt;p&gt;The first two are eternal and technology-neutral. A great recommendation of all times.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-01T16:50:41.710" />
  <row Id="22909" PostTypeId="2" ParentId="22907" CreationDate="2010-12-01T16:50:42.973" Score="15" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.manning.com/skeet/&quot; rel=&quot;nofollow&quot;&gt;C# in Depth&lt;/a&gt; by Jon Skeet&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://oreilly.com/catalog/9780735627048&quot; rel=&quot;nofollow&quot;&gt;CLR via C#, Third Edition&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-02T18:45:30.687" LastActivityDate="2010-12-02T18:45:30.687" CommentCount="11" />
  <row Id="22910" PostTypeId="2" ParentId="19513" CreationDate="2010-12-01T16:54:35.310" Score="1" ViewCount="" Body="&lt;p&gt;Yeah, I think this is a terrific thing, especially for systems which require (potentially) complex configuration to get up and running.  If you can ship a working VM image that you just &quot;boot and go&quot; it makes it far easier to get a system up and running for evaluation / analysis ( at a minimum).  I believe that if you want people to evaluate your software and see the value in it, you need to make it as easy as possible for them to get it deployed and working so they can give it a spin.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't make it the &lt;em&gt;only&lt;/em&gt; means of distribution, but it's something I think many software projects should make available.  I'm planning to (eventually, when I can find time) do a virtual appliance distribution of my own project.  So yeah, I'm definitely on-board with this concept.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I don't think having a VA distribution obviates the need to make it as easy as possible to build, deploy and configure the system via other methods.  Building from source, for example.  I'd still try to do as much as possible to make the source download, build, deploy, configure stuff as easy as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:  also, just to be clear... I'm talking about this in general / conceptual terms only.  Since you didn't say much (if anything) about what your actual project is or what it does, then no, I'm not actually going to download it and try it out.  I'm assuming you were asking this in the context of &quot;Would you recommend that I make this available to people who are already interested in my project and visit the website looking for a download&quot; as opposed to &quot;would you, Stackexchange User $FOO, want to download this appliance and try it out?&quot;&lt;/p&gt;&#xA;" OwnerUserId="7160" LastActivityDate="2010-12-01T16:54:35.310" />
  <row Id="22912" PostTypeId="1" AcceptedAnswerId="22918" CreationDate="2010-12-01T17:00:15.943" Score="6" ViewCount="1183" Body="&lt;p&gt;Suppose your variable is of type Boolean. Then it may have values True or False. However sometimes this value is not set, for example it comes from database. We have then a third state. Many implement this using Null.&#xA;I see performance gained using Null but I also see more Null reference checking.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Why should one use Null as a third state? Isn’t there a more intelligent way to do this?&lt;/li&gt;&#xA;&lt;li&gt;Shouldn't all types be inheritable &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/1t3y8s4s%28VS.80%29.aspx&quot; rel=&quot;nofollow&quot;&gt;Nullable&lt;/a&gt;?&lt;/li&gt;&#xA;&lt;li&gt;Is it possible to have a high level language that doesn't support Null. If so How? (Please provide an code example of variable deceleration)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;The following question has been asked &lt;a href=&quot;http://stackoverflow.com/questions/584507/what-is-the-purpose-of-null&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://programmers.stackexchange.com/questions/12777/are-null-references-really-a-bad-thing&quot;&gt;here&lt;/a&gt;, but my question isn't the same!&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;The Billion Dollar Mistake:&lt;/strong&gt;&#xA;  &lt;a href=&quot;http://qconlondon.com/london-2009/presentation/Null+References%3a+The+Billion+Dollar+Mistake&quot; rel=&quot;nofollow&quot;&gt;I call it my billion-dollar mistake.&lt;/a&gt; It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object oriented language (ALGOL W). My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn't resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years. In recent years, a number of program analysers like PREfix and PREfast in Microsoft have been used to check references, and give warnings if there is a risk they may be non-null. More recent programming languages like Spec# have introduced declarations for non-null references. This is the solution, which I rejected in 1965.  &lt;em&gt;C.A.R. Hoare, 2009&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="145" LastEditorDisplayName="" LastEditDate="2010-12-01T20:29:55.597" LastActivityDate="2010-12-01T21:48:44.470" ClosedDate="2010-12-02T23:25:09.597" Title="Null References, The Billion Dollar Mistake" Tags="&lt;programming-languages&gt;&lt;c#&gt;&lt;language-design&gt;&lt;language-features&gt;" AnswerCount="7" CommentCount="7" FavoriteCount="2" />
  <row Id="22914" PostTypeId="2" ParentId="22853" CreationDate="2010-12-01T17:03:31.983" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Do you only program for money?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's not the only reason, but yes, it is a big reason. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I doubt I would be programming much if I didn't have a job doing it. Sure I might pick up a pet project here or there, but they'd never get done and I'd never be serious about it. I enjoy programming, problem solving, creating things, etc, but if it wasn't for the job then I'd spend my time doing other things that are equally enjoyable.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-12-01T17:03:31.983" />
  <row Id="22915" PostTypeId="2" ParentId="22873" CreationDate="2010-12-01T17:06:16.693" Score="0" ViewCount="" Body="&lt;p&gt;My ideal day (any need for a particular order detracts from the enjoyment:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Get up when you wake up.&lt;/li&gt;&#xA;&lt;li&gt;Read&lt;/li&gt;&#xA;&lt;li&gt;Write&lt;/li&gt;&#xA;&lt;li&gt;Draw&lt;/li&gt;&#xA;&lt;li&gt;Play an instrument&lt;/li&gt;&#xA;&lt;li&gt;Compete in a sport&lt;/li&gt;&#xA;&lt;li&gt;Cook and Eat new &amp;amp; tasty things&lt;/li&gt;&#xA;&lt;li&gt;solve a puzzle/problem&lt;/li&gt;&#xA;&lt;li&gt;have a drink&lt;/li&gt;&#xA;&lt;li&gt;write code that doesn't work, cuss, fix it, marvel at your accomplishment, repeat until you pass out.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-01T17:06:16.693" />
  <row Id="22916" PostTypeId="2" ParentId="22853" CreationDate="2010-12-01T17:10:36.583" Score="0" ViewCount="" Body="&lt;p&gt;I never program for free. Programming takes up my time. Time is an expense. Don't get me wrong, I do a lot of programming on my spare time, but that costs time. If we are talking strictly money, then yes, I code for free all the time. I enjoy programming. However, if the company I work for started to not pay me, I would probably decide not to show up anymore, because my time is valuable to me.&lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2010-12-01T17:10:36.583" />
  <row Id="22917" PostTypeId="2" ParentId="22912" CreationDate="2010-12-01T17:11:54.830" Score="1" ViewCount="" Body="&lt;p&gt;For your 1st question, I guess the answer would be that NULL denotes an uninitialized(invalid) value&lt;/p&gt;&#xA;&#xA;&lt;p&gt;cant answer the other 2 though..&lt;/p&gt;&#xA;" OwnerUserId="8147" LastActivityDate="2010-12-01T17:11:54.830" />
  <row Id="22918" PostTypeId="2" ParentId="22912" CreationDate="2010-12-01T17:11:55.750" Score="18" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Why should one use Null as a third&#xA;  state?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's not a third state, it's the lack of any state whatsoever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not True, False, and Null.  It's True, False, and &quot;I'm sorry, Dave. I'm afraid I can't do that.&quot;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Isn’t there a more intelligent way to&#xA;  do this?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;What do you expect to &quot;more intelligent&quot; to be?  Null seems to fit procedural programming fairly well.  I have trouble imagining a way to make it better, exactly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, functional programming uses the concept of a &lt;strike&gt;Monad&lt;/strike&gt; Maybe or Option.  I'll admit I don't grok them enough to &lt;a href=&quot;http://en.wikipedia.org/wiki/Monad_%28functional_programming%29&quot; rel=&quot;nofollow&quot;&gt;say&lt;/a&gt; &lt;a href=&quot;http://codebetter.com/blogs/matthew.podwysocki/archive/2009/01/28/much-ado-about-monads-maybe-edition.aspx&quot; rel=&quot;nofollow&quot;&gt;much&lt;/a&gt; &lt;a href=&quot;http://abdullin.com/journal/2010/9/16/using-lokad-maybe-monads-to-simplify-desktop-ui-for-cqrs-sol.html&quot; rel=&quot;nofollow&quot;&gt;more&lt;/a&gt; than they exist.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is it possible to have a high level&#xA;  language that doesn't support Null. If&#xA;  so How?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Sure.  &lt;a href=&quot;http://stackoverflow.com/questions/2324337/do-all-programming-languages-have-a-clear-concept-of-nil-null-or-undefined&quot;&gt;This SO question&lt;/a&gt; asks the same thing, basically.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Shouldn't all types be inheritable&#xA;  Nullable?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Absolutely not.  Primitive types are efficiently implemented in hardware.  Adding &quot;it may not have a value&quot; to an integer or double, for example, would have significant performance implications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Making all structs nullable would complicate the programming significantly too.  I know that anywhere I use a nullable my code is considerably more verbose - even with null coalescing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, nothing inherits Nullable.  Nullable is a struct.  It is it's own type that &lt;strong&gt;contains&lt;/strong&gt; another generically typed instance.&lt;/p&gt;&#xA;" OwnerUserId="6735" LastEditorUserId="6735" LastEditorDisplayName="" LastEditDate="2010-12-01T21:20:13.707" LastActivityDate="2010-12-01T21:20:13.707" CommentCount="11" />
  <row Id="22919" PostTypeId="2" ParentId="22742" CreationDate="2010-12-01T17:12:29.193" Score="4" ViewCount="" Body="&lt;p&gt;Our company still prefers PHP for a few simple reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Easy to scale&lt;/strong&gt; to medium sized deployments. No need for proxy servers, caches, etc., PHP is fairly efficient with very little effort. Also trivial to set up for most developers.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Developers are cheap&lt;/strong&gt; and abundant. This is especially handy for enterprise shops like ours where we're solving relatively narrow problems.  This makes PHP profitable for vertical style products.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Easy to train&lt;/strong&gt; the average developer. We've converted Java, C, and C++ programmers to PHP with minimal effort.  Python and Ruby are excellent languages, but they take a bit more thinking for average developers to grok (in our experience).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Now for me personally (versus my employer), I prefer Ruby + Rails for web development and Python for back-end tools (like mini servers, etc.). These two languages are interchangeably great, but I've traditionally used them for those two purposes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And looking to the future, JavaScript on the server is gaining mojo, especially in places where I've traditionally used Python (mini servers, etc.).&lt;/p&gt;&#xA;" OwnerUserId="8151" LastActivityDate="2010-12-01T17:12:29.193" />
  <row Id="22920" PostTypeId="2" ParentId="22907" CreationDate="2010-12-01T17:18:12.710" Score="1" ViewCount="" Body="&lt;p&gt;I have those ; I'd also suggest from my library&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Clean Code&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Design Patterns&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;C# Design Patterns&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-12-01T17:18:12.710" CommentCount="1" />
  <row Id="22921" PostTypeId="2" ParentId="22723" CreationDate="2010-12-01T17:20:08.060" Score="2" ViewCount="" Body="&lt;p&gt;You have to separate XAML from WPF.  WPF is awesome.  The binding is really powerful, etc.  XAML, on the other hand, inherits all the problems of XML.  I don't like that it uses string literals a lot, and it's missing a lot of compile time checking.  I've been using it for a while, and I still find it ugly and hard to read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I would prefer is something like a FluentWPF.  There have been some people asking for such a thing, but not enough to get something going.  It would make a great open source library.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-12-01T17:20:08.060" />
  <row Id="22922" PostTypeId="2" ParentId="17606" CreationDate="2010-12-01T17:20:30.513" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Would you use this kind of tests while hiring senior developer positions?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What about just for objectively benchmarking candidates before calling them for interview?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No.  Benchmarking implies you compare candidates based on score.  The tests are better used to determine a baseline, not perform benchmarking between candidates.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Would you use it as a step after short-listing candidates after interview?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No.  You should have done the test before the interview.  The interview is the basis for future consideration.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is this approach more suitable in some situations compared to others? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If proof of programming knowledge is most of what a candidate would bring (e.g. junior developer) then it is proportionally more useful.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Have you personally used this kind of services or know someone using it?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I was subject to one at a recruiting company I used.  I found it helpful in understanding which concepts I needed to brush up on.&lt;/p&gt;&#xA;" OwnerUserId="6920" LastActivityDate="2010-12-01T17:20:30.513" />
  <row Id="22923" PostTypeId="2" ParentId="22907" CreationDate="2010-12-01T17:22:14.990" Score="1" ViewCount="" Body="&lt;p&gt;C# book from Head first series. It is a good book to begin with and can try other books mentioned above for further reference&lt;/p&gt;&#xA;" OwnerUserId="8942" LastActivityDate="2010-12-01T17:22:14.990" CommentCount="1" />
  <row Id="22924" PostTypeId="2" ParentId="22714" CreationDate="2010-12-01T17:27:48.917" Score="0" ViewCount="" Body="&lt;p&gt;The nature of the beast is such that:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the code you thought elegant and clean will be obsolete shortly&lt;/li&gt;&#xA;&lt;li&gt;the code you slapped together in 5 minutes that is ugly and a complete hack will be used for years&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-01T17:27:48.917" />
  <row Id="22926" PostTypeId="2" ParentId="22853" CreationDate="2010-12-01T17:31:35.060" Score="1" ViewCount="" Body="&lt;p&gt;Money is important and I am programming for money. Also, I love to develop software this is what I choose for living. All aspects of software life cycle excites me. So, for any career, it is important that you enjoy that eight hours of work as well as earn good money for living. We can always help open source projects, community projects in our free time for free.&lt;/p&gt;&#xA;" OwnerUserId="8942" LastActivityDate="2010-12-01T17:31:35.060" />
  <row Id="22929" PostTypeId="2" ParentId="22769" CreationDate="2010-12-01T17:35:01.843" Score="0" ViewCount="" Body="&lt;p&gt;The correct answer is: Logo.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for playing.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-01T17:35:01.843" CommentCount="1" />
  <row Id="22930" PostTypeId="2" ParentId="22742" CreationDate="2010-12-01T17:52:39.637" Score="0" ViewCount="" Body="&lt;p&gt;The only thing I would use PHP for is web programming. But it is the only thing I would use for web programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't really like OOP so python and ruby really have no appeal for me. I learned a lot from my 2 years of professional full-time Rails and it changed the way I write PHP. I suspect most PHP programmers would my PHP code. And the aspect I like best about Django (just from ready the introduction in '08) is the template engine and we have Smarty, so…&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So… yes I went back to PHP. And I like it! I still cringe a little when I have to type out array( instead of [ but on the other hand I love that arrays are always ordered-maps. That is just plain handy, at least for web type programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I love javascript bestest of all, could you imagine if there was some baller server-side run-time?!)&lt;/p&gt;&#xA;" OwnerUserId="8944" LastActivityDate="2010-12-01T17:52:39.637" CommentCount="1" />
  <row Id="22932" PostTypeId="2" ParentId="22873" CreationDate="2010-12-01T17:55:12.700" Score="1" ViewCount="" Body="&lt;p&gt;My passion is more in fixing things a.k.a. solving problems.  That isn't to say I don't like to create some of the time, but more I like finding out why something was the way it was and fix it.  My creativity comes in &lt;strong&gt;how&lt;/strong&gt; I approach solving a problem as there is usually multiple possible solutions each with its own trade-offs.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-01T17:55:12.700" />
  <row Id="22933" PostTypeId="1" AcceptedAnswerId="22941" CreationDate="2010-12-01T17:55:33.970" Score="10" ViewCount="468" Body="&lt;p&gt;My (non-technical) colleague has threatened me with a Gantt chart for a new project that we are currently planning.  What is this likely to provide for us, and will it be a helpful tool?&lt;/p&gt;&#xA;" OwnerUserId="5402" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-12-01T18:36:28.123" LastActivityDate="2010-12-04T19:36:23.850" Title="What is the point of a Gantt Chart, and will it help me?" Tags="&lt;project-management&gt;&lt;planning&gt;&lt;gantt-chart&gt;" AnswerCount="8" CommentCount="8" FavoriteCount="1" />
  <row Id="22935" PostTypeId="2" ParentId="22853" CreationDate="2010-12-01T17:57:48.720" Score="0" ViewCount="" Body="&lt;p&gt;A lot of people would love to say no to this. But I strongly feel, the people who REALLY DO NOT program just for the money are people who have contributed to Open Source. They do that because they  &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Love programming.  &lt;/li&gt;&#xA;&lt;li&gt;Love open source.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So, personally even though I do love my Ruby on Rails job (not just for the money), I don't think I can answer in the affirmative to this one (at least not yet), since I'm yet to tangibly contribute to Open Source. &lt;/p&gt;&#xA;" OwnerUserId="8150" LastActivityDate="2010-12-01T17:57:48.720" />
  <row Id="22937" PostTypeId="2" ParentId="22933" CreationDate="2010-12-01T18:06:30.503" Score="5" ViewCount="" Body="&lt;p&gt;A well-produced and maintained Gantt chart can be a great tool.  The main benefits are showing which tasks depend on other tasks, predicting how the project can be affected by delays, and highlighting wasted hours because you were waiting on something else.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-12-01T18:06:30.503" CommentCount="5" />
  <row Id="22938" PostTypeId="2" ParentId="22714" CreationDate="2010-12-01T18:08:33.730" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What are the telltale signs that the&#xA;  code you're writing is already&#xA;  obsolete even before it gets to&#xA;  production?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Or asked another way, will your code ever get used by anyone other than testers or demo users?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer this, you need to evaluate whether it has enough &lt;strong&gt;Support&lt;/strong&gt;.   There are several levels of support - management support, client support, market support.   It takes some of each of these for a product to get to production.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've worked on projects that died due to lack of each one of these.  Sometimes I saw it coming, sometimes I didn't.  In retrospect, it was fairly obvious they were doomed:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A critically well recieved audio toolkit died because it didn't align with the core direction of the company that aquired us and got no management support.  &lt;/li&gt;&#xA;&lt;li&gt;A MIDI based audio tool that &lt;em&gt;was&lt;/em&gt; supported by management died because it was MIDI in the age of MP3.  No market support.&lt;/li&gt;&#xA;&lt;li&gt;A pork-barrel project that the army wanted but the administration didn't, died when the Secretary of Defense finally overrode Congress. No client support.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;To evaluate the future of your project, always keep track of who is supporting it.&lt;/p&gt;&#xA;" OwnerUserId="145" LastEditorUserId="145" LastEditorDisplayName="" LastEditDate="2010-12-01T18:46:11.700" LastActivityDate="2010-12-01T18:46:11.700" CommentCount="1" />
  <row Id="22939" PostTypeId="2" ParentId="8104" CreationDate="2010-12-01T18:12:09.110" Score="1" ViewCount="" Body="&lt;p&gt;It's not a software company but software developers at Chick-fil-a headquarters have private offices... one developer per office, with a door that closes and walls that go floor to ceiling. Not all the offices however have windows that look out to the exterior of the building. They also kick you out of the building at 5pm since overtime is pretty much prohibited. Neckties are required so there are some trade offs for getting that private office.&lt;/p&gt;&#xA;" OwnerUserId="8949" LastActivityDate="2010-12-01T18:12:09.110" CommunityOwnedDate="2011-02-20T23:49:56.727" />
  <row Id="22940" PostTypeId="1" AcceptedAnswerId="22955" CreationDate="2010-12-01T18:12:39.557" Score="7" ViewCount="598" Body="&lt;p&gt;Background:&#xA;I've worked in a quantitative financial consulting position for the past 4-5 years (financial modeling with Matlab, VBA, Excel mostly).  I have a degree in Computer Science (BA) and Math (BA).  I'm want to join a startup company to realign my career with my passion:  technology.  I lack the official &quot;software development&quot; (SDLC) experience but have very much programmed for work and personally (Python, PHP, C++, etc).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Question:&#xA;How competitive are software engineering positions in startup companies?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will I be hard pressed to find someone who will hire me not having &quot;official&quot; software development experience?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone have any tips for me in achieving my goal?&lt;/p&gt;&#xA;" OwnerUserId="8950" LastActivityDate="2010-12-19T09:32:05.347" Title="How competitive are Software Engineering startup jobs?" Tags="&lt;jobs&gt;&lt;software-engineering&gt;&lt;computer-science&gt;&lt;startups&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="2" />
  <row Id="22941" PostTypeId="2" ParentId="22933" CreationDate="2010-12-01T18:13:59.517" Score="6" ViewCount="" Body="&lt;p&gt;As Wikipedia says it &lt;a href=&quot;http://en.wikipedia.org/wiki/Gannt_Chart&quot; rel=&quot;nofollow&quot;&gt;Gannt chart&lt;/a&gt; is a type of a bar chart (more often a &quot;line type&quot;) that helps with project planning. It is often drawn manually on the wall on a big (really big) piece of paper, since it is easily modified in that format.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/i2wuO.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a very simple type of planning tool; you can produce it in Excel or some equivalent; and rather effective, as long as the time required for certain phases of project can be roughly estimated. If there is a delay - no problem - one line get lengtened, the others stay the same and you have a new end-of-project-date.&lt;br&gt;&#xA;Overlapping phases (time-wise) are easily seen on it, as easily as dependencies of starting one phase relying on the end of another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;'tis all there is to it really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, the problem with the Gannt (or the &quot;time chart&quot; as it is usually called in my part of the world) is that, that at the beginning of a project you have it all drawn up nicely on the wall, feeling enthusiastic and happy, ... then one delay occurs, and you change it on the chart, and you're still felling happy ... then another delay occurs, you draw it up again, and you're still feeling pretty good ... 100x delays occur ... you're feeling like &lt;strong&gt;&lt;em&gt;_&lt;/em&gt;&lt;/strong&gt; (censored).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Meaning, it is only a good project planning tool if you're actually sticking to those little deadlines. &lt;strong&gt;&lt;em&gt;So stop wasting time in here and get to work!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-01T18:13:59.517" CommentCount="5" />
  <row Id="22943" PostTypeId="2" ParentId="22912" CreationDate="2010-12-01T18:17:45.707" Score="3" ViewCount="" Body="&lt;p&gt;Haskell doesn't have nulls (except in the sense of an empty list). Instead, for items that may or may not have a value, the Maybe type is used:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;isComputerTurnedOn :: Maybe Boolean -- could be Nothing, Just True or Just False&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The key thing here is not that you have to explicitly handle both cases (you don't really, it's a run-time error if you miss one), but that Boolean and Maybe Boolean are not the same type. You can't pass a Boolean to a function that expects a Maybe Boolean, and vice versa.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-01T18:17:45.707" />
  <row Id="22944" PostTypeId="2" ParentId="19513" CreationDate="2010-12-01T18:17:53.507" Score="0" ViewCount="" Body="&lt;p&gt;No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have an open source framework - note: Open Source - which you want me to use on a Linux platform, I want &lt;em&gt;full&lt;/em&gt; integration with the package system on said platform.  This means a maintained yum installation site or - for Debian/Ubuntu an apt-get repository - so that &lt;em&gt;updates are automatic&lt;/em&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please let me emphasize that:  Installation, updates and removal should be &lt;em&gt;automatic&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your framework uses a database, I want the package system to pull it in as a dependency of your framework, and I want THAT too to be maintained automatically.   This might disqualify your choice of Oracle as the database, but that is just life.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not want to run any framework in a lone virtual machine.  I want to run my favorite distribution which usually do other things too and then use your framework in there.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-01T18:17:53.507" CommentCount="2" />
  <row Id="22949" PostTypeId="2" ParentId="22912" CreationDate="2010-12-01T18:32:08.557" Score="0" ViewCount="" Body="&lt;p&gt;In your example, the value would always be false unless the user sets it to true. Sometimes you want to make sure the user set the value and didn't leave a default value by accident.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-01T18:32:08.557" />
  <row Id="22951" PostTypeId="2" ParentId="22940" CreationDate="2010-12-01T18:47:02.433" Score="0" ViewCount="" Body="&lt;p&gt;Wouldn't know from direct experience, but every start-up founder I've talked to has told me that their biggest challenge is hiring people (okay, all the founders I know have read &quot;Good to Great&quot;, so what they actually say is &quot;My main challenge is getting the right people on the bus&quot;, but you get the idea).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not sure how it is in your area, but I doubt a hiring founder in the Toronto area would be more concernened with your lack of credentials than with your output potential.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-12-01T18:47:02.433" />
  <row Id="22952" PostTypeId="2" ParentId="22809" CreationDate="2010-12-01T18:55:58.590" Score="1" ViewCount="" Body="&lt;p&gt;There's a variety of reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people get paid for writing it, because their employer thinks it worthwhile (and there's plenty of potential reasons for that).  Some people start companies based on F/OSS because they can make money from it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people use F/OSS and want to give back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people treat it as a reputation game, like academic research or answering questions here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people want a certain piece of software for their own purposes, and just release it because what they want is to use it, and they can sometimes get useful suggestions if other people can use it also.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-01T18:55:58.590" />
  <row Id="22953" PostTypeId="1" AcceptedAnswerId="22958" CreationDate="2010-12-01T19:00:16.560" Score="10" ViewCount="151" Body="&lt;p&gt;After applying to multiple contracting positions, I landed a few interviews which I then was accepted to do the work. I am also a full time college student, but I do have about 25-30 hours free a week, so that isn't a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My issue is how do I manage that &lt;strong&gt;time efficiently&lt;/strong&gt;? One of the contracting position starts next week and I've already started one yesterday. How do you make your schedule to fit your clients to give them the most time a day and not get stuck in a narrow path of working for one until you &quot;feel&quot; done? My clients do know that I have other work, but I don't want them to think it'll affect their work nor do I want it to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you can give advice about similar experience of &lt;strong&gt;things to look out&lt;/strong&gt; for or how having multiple clients affected your &lt;strong&gt;quality of work&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm hoping this isn't too subjective or too specific, so comment regrading to that so I can fix it .&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="1635" LastActivityDate="2010-12-02T08:12:48.717" Title="Working with multiple clients" Tags="&lt;productivity&gt;&lt;jobs&gt;&lt;client&gt;" AnswerCount="3" CommentCount="4" FavoriteCount="2" />
  <row Id="22954" PostTypeId="2" ParentId="22770" CreationDate="2010-12-01T19:07:18.953" Score="2" ViewCount="" Body="&lt;p&gt;Anyone who references a bad programmer's work (or lack of knowledge, for that matter) in order to conclude the worth of their chosen language obviously never understood the principle of &quot;correlation does not imply causation.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;So, Goma, you can ignore those answers and comments.  They are of little worth.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On to the matter at hand, &lt;a href=&quot;http://programmers.stackexchange.com/questions/22770/if-i-learn-php-first-will-it-be-difficult-to-learn-c-next/22780#22780&quot;&gt;@Scott Whitlock&lt;/a&gt;'s advice is best:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I suggest learning any language that's practical, &lt;em&gt;but keep an open mind&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In your question you state that you want to be &quot;a .net developer for the web.&quot;  I argue that you are selling yourself short.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good programmers are not &lt;strong&gt;PHP Programmers&lt;/strong&gt; or &lt;strong&gt;C# Programmers&lt;/strong&gt;.  Understanding a range of languages/tools, and more importantly, &lt;em&gt;getting-things-done&lt;/em&gt; is far better than boxing yourself into a package like &lt;strong&gt;.NET Programmer&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will likely benefit not only from the things you learn about statically typed languages (Java, C#, Pascal), but also dynamically typed languages (PHP, Python, Ruby).  More important is that you learn what the difference &lt;em&gt;means&lt;/em&gt; between the two.  And that's just one example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Understanding &lt;em&gt;why&lt;/em&gt; your tool behaves (not &lt;em&gt;how it behaves&lt;/em&gt;) is key to becoming a better developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You likely &quot;see most freelanc[sic] developer tend to provide PHP development more than ASP.NET&quot; because PHP  has a very low entry barrier.  Also, many small companies (those looking for freelance work) opt for a LAMP stack due to the cost factors associated with the alternatives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't let any of that get you down.  If you apply yourself, while keeping and open mind, you can stop worrying about where to start, and just &lt;em&gt;start&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recommend starting with C#, if that's your goal.  You should also spin up a couple of PHP projects in your spare time so that you can compare the two.&lt;/p&gt;&#xA;" OwnerUserId="5497" LastEditorUserId="5497" LastEditorDisplayName="" LastEditDate="2010-12-01T20:29:27.387" LastActivityDate="2010-12-01T20:29:27.387" CommentCount="1" />
  <row Id="22955" PostTypeId="2" ParentId="22940" CreationDate="2010-12-01T19:11:38.100" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Question: How competitive are software engineering positions in startup companies?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Fairly competitive.  When the successful implementation of your product rests on someone else's shoulders, you tend to have high expectations.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Will I be hard pressed to find someone who will hire me not having &quot;official&quot; software development experience?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you can demonstrate that you are a skilled programmer and have the right personality, this shouldn't be a huge issue.  However, you do need to have the skills they require.  Most startups employ compressed SDLCs, if at all.  (&quot;Cowboy coding&quot; and &quot;fly by the seat of your pants&quot; are two phrases that come to mind.)  The process doesn't need to be pretty, it just needs to be good enough to get the product to market successfully and as quickly as possible/reasonable.  One of the typical pains in the post-startup phase is implementing &quot;better&quot; processes.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Does anyone have any tips for me in achieving my goal?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Make sure you are willing, and prepared, to take the risk of joining a startup.  Yes, the payouts can be huge, but failures are a dime-a-dozen.  That doesn't mean that your time with a failed startup is necessarily a loss.  However, if you're not prepared for the likely death of the startup it will be painful, at the very least.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest you begin by focusing on your strengths as a quant and looking for startups that could use that expertise.  (I would actually suggest looking for established companies that could use those skills, as a software developer instead of a financial consultant, and making the switch to startup software dev-shop later.)&lt;/p&gt;&#xA;" OwnerUserId="149" LastEditorUserId="149" LastEditorDisplayName="" LastEditDate="2010-12-01T22:35:58.313" LastActivityDate="2010-12-01T22:35:58.313" />
  <row Id="22956" PostTypeId="2" ParentId="22940" CreationDate="2010-12-01T19:12:36.347" Score="0" ViewCount="" Body="&lt;p&gt;The biggest challenge you'd face is finding those companies that want to hire someone like you.  Where you got your degrees may have placement assistance for alumni that could be a way to get into a start-up assuming you live near where you went to school.  I would be cautious of going through a lot of recruiters as I seemed to have more than a few that just took my resume and I never heard from them again, which kind of ticked me off in a way.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-01T19:12:36.347" CommentCount="1" />
  <row Id="22957" PostTypeId="2" ParentId="22912" CreationDate="2010-12-01T19:14:40.087" Score="-1" ViewCount="" Body="&lt;p&gt;+1 to those who mentioned it is an uninitialized value&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In some cases null is better thought of as a missing value where it is still safe to ask for the value.  For example when acting on a web search form I might write something like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if form(&quot;firstname&quot;) != null then&#xA;  &amp;lt;do something to the search parameters for firstname&amp;gt;&#xA;if form(&quot;lastname&quot;) != null then&#xA;  &amp;lt;do something to the search parameters for lastname&amp;gt;&#xA;etc...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If I didn't have null I would have to check of the form post had that field, then separately check if it is populated with something because a stricter collection would exception if you called for a value that was not there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In windows land some of activedirectory, ldap and com APIs have this behavior as well.  I think it is because the objects are built more like nested collections than as strictly typed objects in many cases and you are doing a search through the collection rather than calling a property directly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless, it has a place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to all types having nullability: as I understand this is not done because the primitive types are what is actually used in the lower level calculations and where performance is critical or because uninitialized has a specific separate meaning to that object (ie nothing vs dbnull in vb.net)&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-12-01T19:14:40.087" CommentCount="1" />
  <row Id="22958" PostTypeId="2" ParentId="22953" CreationDate="2010-12-01T19:17:12.933" Score="8" ViewCount="" Body="&lt;p&gt;Firstly, some ground rules that you will need to understand.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Chopping and changing tasks during software development is particularly unproductive.&lt;/li&gt;&#xA;&lt;li&gt;Your ability to time manage depends on your ability to predict task timescales.&lt;/li&gt;&#xA;&lt;li&gt;You need to sleep.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Quite simply, you need to make sure that you only commit to deadlines that you can meet comfortably.  When ever you do any work, time yourself.  Not to try to do it against the clock, but so that you are aware of how long programming actually takes. That way you will get better at estimates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming velocity is the number of hours predicted for a task divided by the hours it actually took. This number is not likely to be 1.  An experienced developer with several years experience is quite likely to have a velocity of around 0.5.  Calculate your velocity and use it to make sure you are not over committing your time, and are charging enough for your work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you manage your clients so that you are working for one client for a few days, perhaps up to a couple of weeks, and then switching client for a few days. they are quite likely to be happy.  If they contact you for some extra urgent work, use your velocity to calculate when you are likely to be free, and just say I am expecting to be available on...&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-12-01T19:17:12.933" CommentCount="6" />
  <row Id="22959" PostTypeId="2" ParentId="22933" CreationDate="2010-12-01T19:26:32.650" Score="2" ViewCount="" Body="&lt;p&gt;Gantt chart software allows complex inter dependencies to be analysed and to predict the effects of overruns and delays.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, for most software projects, there are few inter dependencies and external inputs, so the key to prediction is knowing what the right multiplier to use when the software team say it will take 3 weeks.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-12-01T19:26:32.650" CommentCount="1" />
  <row Id="22960" PostTypeId="2" ParentId="22940" CreationDate="2010-12-01T19:28:26.250" Score="0" ViewCount="" Body="&lt;p&gt;I don't think that startup jobs are competitive at all.  At least, they're probably not competitive in the sense that you're probably thinking of coming from the financial industry.  If a startup finds somebody they like, they'll usually find a way to hire them (assuming they have the financing).  It's not like other job markets where you have candidates trying to get a fixed number of jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That isn't to say that getting a startup job is necessarily &lt;em&gt;easy&lt;/em&gt; though.  They tend to be very picky about who they hire.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-01T19:28:26.250" />
  <row Id="22961" PostTypeId="2" ParentId="22809" CreationDate="2010-12-01T19:34:28.620" Score="0" ViewCount="" Body="&lt;p&gt;You can release it under a restrictive Free licence, such as the GNU AGPL, and then charge for exceptions.&lt;/p&gt;&#xA;" OwnerUserId="2406" LastActivityDate="2010-12-01T19:34:28.620" />
  <row Id="22963" PostTypeId="2" ParentId="22769" CreationDate="2010-12-01T19:37:43.203" Score="-1" ViewCount="" Body="&lt;p&gt;Whatever language some is trying to convince you to try.&lt;/p&gt;&#xA;" OwnerUserId="6294" LastActivityDate="2010-12-01T19:37:43.203" />
  <row Id="22964" PostTypeId="2" ParentId="22854" CreationDate="2010-12-01T19:51:53.533" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Estimates are not a necessary evil.  If they're evil, you should question if they're necessary.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of significant recent trends in software engineering is the proliferation of &lt;em&gt;Lean&lt;/em&gt; software development philosophies, particularly &lt;em&gt;Kanban&lt;/em&gt;.  And - don't shoot the messenger -- the proponents of Lean and Kanban put it bluntly: &quot;&lt;strong&gt;Estimation is waste&lt;/strong&gt;.&quot;  What do you do with waste?  &quot;&lt;strong&gt;Eliminate it&lt;/strong&gt;.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What they do instead of estimation is a huge, separate topic, but the gist of it is: they embrace &lt;em&gt;variability&lt;/em&gt;, optimize the &lt;em&gt;flow&lt;/em&gt; of valuable features to the users, and measure and optimize the &lt;em&gt;lead time&lt;/em&gt; -- instead of controlling the time it takes to execute individual tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you visualize the journey of a user requirement from the point when it's identified to when it's delivered to the user, you can see how little of it actually involves typing code.  Even in the development phase, lots of time can be lost while in-progress work items are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;in blocked state (how effective is&#xA;your escalation process?)&lt;/li&gt;&#xA;&lt;li&gt;waiting for non-instantly available resources&lt;/li&gt;&#xA;&lt;li&gt;getting thorough other bottlenecks&lt;/li&gt;&#xA;&lt;li&gt;reworked&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;A less-than-superefficient software development team can easily waste (as far as the customer is concerned, that's all waste) several days on any of the above causes, which brings into question whether a precise estimate that it would take 5 days instead of 2 to code some feature adds any value.  Remember the customer doesn't care how many of 45 days from the feature request to delivery was spent on coding or something else and in what order.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To use an analogy, an Amazing Race contestant adds value by getting to the finish first.  Estimating how long it would take him to eat 1 kilogram of local food is not a value-adding activity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know whether you can implement any of this thinking at your workplace, I contend this is a useful perspective.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-12-01T19:51:53.533" CommentCount="3" />
  <row Id="22965" PostTypeId="2" ParentId="22880" CreationDate="2010-12-01T19:57:27.197" Score="2" ViewCount="" Body="&lt;p&gt;A good project to start in open source with is a program that you currently use or would like to use. The first step is to get a copy of the source and build it using the instructions given with the source code. Next, make a copy of the source in another folder. You'll need the copy if you want to send patches back to the project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now that you have the code, you can start looking around to get a feel for the general structure, then examine in more detail whatever part of the code looks most interesting at the time. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-01T19:57:27.197" />
  <row Id="22966" PostTypeId="2" ParentId="22940" CreationDate="2010-12-01T20:08:18.077" Score="2" ViewCount="" Body="&lt;p&gt;I doubt your lack of SDLC will hurt, but your lack of (start-up desired) skills will.  Start-ups look for people who have already mastered technologies, and who can crank out copious reams of code using them.  They'll want to get something out the door, not wait around while you come up to speed on jQuery or JSON or whatever else they're using.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're looking to get exposure to the latest &amp;amp; greatest tech, I'd look for a company that's expanding, or changing technologies.  A place like that may have an entire development team learning something new, and may even spring for training.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really &lt;em&gt;want&lt;/em&gt; a start-up job, you should certainly give it a shot.  If you can learn their major technologies in the week or so before your start date, you're probably exactly the kind of person who will do well in that environment.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-01T20:08:18.077" />
  <row Id="22967" PostTypeId="2" ParentId="12216" CreationDate="2010-12-01T20:14:52.637" Score="2" ViewCount="" Body="&lt;p&gt;I liked Eclipse &lt;a href=&quot;http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.user/gettingStarted/qs-55.htm&quot; rel=&quot;nofollow&quot;&gt;Local History&lt;/a&gt;.  There was a codeplex project &quot;Visual Local History&quot;, but don't think this works for vs2010.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I didn't use it often but when I did it was nice to have.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-01T20:14:52.637" CommunityOwnedDate="2011-05-26T08:44:03.797" />
  <row Id="22968" PostTypeId="2" ParentId="21325" CreationDate="2010-12-01T20:25:28.543" Score="14" ViewCount="" Body="&lt;p&gt;Microsoft was my first employer after college, via a contract assignment that quickly turned into a full-time role; I stayed a little under 7 years. My circumstances are unusual, because I started during the dot-com boom, and had no formal computer science background; I was attractive for my (natural) language skills combined with technical competence built over a childhood (and early adulthood) of experimentation with computers, when Microsoft was investing a great deal of energy into internationalizing and localizing Internet Explorer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given my background, getting noticed by HR would have been the biggest hurdle; the agency temporary role made that easier, since I was introduced by a hungry third-party. The &quot;bar&quot; for hiring an agency temporary is usually considered lower, and usually there's slightly smaller number of interviews, and managers are willing to take more risks on people that they consider disposable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For anyone with better paper qualifications, is it &quot;difficult?&quot; Based on the sheer number ratio of initial contact to actual hire, you could say yes. But is it more difficult than any other technology company? I can't say that it is. The interview process at Zillow was fairly similar (though the history of the execs there makes that unsurprising). Interviews tend to be fairly technical. Elsewhere, I've received job offers on the merits of what Microsoft would have considered a phone screen, and I've experienced pretty substantial differences on how deep the technical interview was. In most of my recent jobs outside of Microsoft, which presumed a fair amount of experience, I've been able to talk through matters of development practices and philosophy that reveal more to the interviewers in 15 minutes than an hour of a coding exercises would have been, and the coding questions have been minimalist or occasionally nonexistent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's unlikely that at Microsoft you'd answer less than 3 substantial whiteboard coding questions during a four person interview loop, even if you were considered a rockstar, and even if you've been employed there before. This is mostly for cultural reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although we liked to think we weren't so arbitrary as interviewers, one team might think you a good hire and another might not see your merits at all, so a hire/no-hire decision can seem capricious and arbitrary, especially if you've been on either the hiring or interviewing side more than once.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you're intelligent, can code reasonably well under the pressure of a whiteboard, and you can think through problems big and small, you'll have a reasonable chance of making it through the interview process. It's not &quot;difficult&quot; if difficult problems don't freak you out, and simple problems don't catch you off guard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you go to an interview there are things that can increase your chances of success:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Be able to write the basic operations of linked lists, trees, and other classic data structures; understand at least one sorting algorithm well enough to be able to write it on the fly with potentially unexpected constraints.&lt;/li&gt;&#xA;&lt;li&gt;Knowing your time constraints (usually about 10-15 minutes for a typical coding question), ask clarifying questions before you get started; write a minimalist solution as quickly as possible; explain your thoughts while you write code; explain how your code works; explain how it handles, or fails to handle, error conditions. Be able to explain what you would do to improve the code given more time or different project needs.&lt;/li&gt;&#xA;&lt;li&gt;Be prepared to discuss micro- and macro- design decisions, for systems you've implemented before, and hypothetical projects whose requirements are made up on the fly by interviewers.&lt;/li&gt;&#xA;&lt;li&gt;Read Skiena's book, The Algorithm Design Manual, so that you'll be able to pattern match problem statements given by your interviewer, and suggest appropriate data structures/algorithms that can help with those problems. You probably won't be expected to write a kd-tree implementation or vertex-coloring algorithm on the whiteboard, but you should know when they would help.&lt;/li&gt;&#xA;&lt;li&gt;Read the GoF patterns book and the Patterns of Enterprise Application Architecture book, and be able to suggest appropriate application of those patterns to an arbitrary problem.&lt;/li&gt;&#xA;&lt;li&gt;Be prepared, when your interviewer proposes an alternate solution to a problem you discuss, to discuss the tradeoffs between your solution and theirs. Most interviewers love to see you challenge them, if you do so politely with good justifications. (Some will intentionally propose poor solutions to see how you react).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7080" LastActivityDate="2010-12-01T20:25:28.543" CommentCount="1" />
  <row Id="22969" PostTypeId="2" ParentId="22723" CreationDate="2010-12-01T20:38:21.793" Score="1" ViewCount="" Body="&lt;p&gt;Perhaps your issue really is more one of tooling than of technology. The important thing to remember is that XAML isn't a programming language, it's a form of serialization of various elements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;WPF and Silverlight use XAML for their visuals and resources, but at the same time, Workflow (WF) 4.0 uses XAML as well, though you typically use the designer if you're using the designer method. However, any control and functionality you add and specify within the XAML file can also be done directly in .Net code, including creating UI elements, transforms and binding.&lt;/p&gt;&#xA;" OwnerUserId="146" LastActivityDate="2010-12-01T20:38:21.793" />
  <row Id="22970" PostTypeId="2" ParentId="22770" CreationDate="2010-12-01T20:59:30.193" Score="1" ViewCount="" Body="&lt;p&gt;Let me prefix this by saying that I don't think that PHP will corrupt you for life, nor am I saying that PHP isn't useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you have the choice, I would recommend learning C# first.  PHP allows you to write good code.  But it also seems to do little to &lt;em&gt;encourage&lt;/em&gt; it.  It is incredibly easy to pick up bad habits.  Thus, my recommendation is to start with C#.  If you have a strong desire to pick up PHP first, then do that.  In my experience, that is far more important than anything else.  Just remember that you might be learning some bad habits that might need to be unlearned when you start with C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if it were &lt;em&gt;me&lt;/em&gt; learning, I think I would do much better starting with C# and then moving to PHP.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastEditorUserId="1626" LastEditorDisplayName="" LastEditDate="2010-12-01T21:09:41.163" LastActivityDate="2010-12-01T21:09:41.163" CommentCount="1" />
  <row Id="22971" PostTypeId="2" ParentId="22912" CreationDate="2010-12-01T21:06:35.393" Score="3" ViewCount="" Body="&lt;p&gt;If &lt;code&gt;null&lt;/code&gt; had never been invented there would have been a billion dollars more spent coding other ways to track the state of something that never existed in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In data extracted from user input, there is an especially important place for &lt;code&gt;null&lt;/code&gt;.  If the value is a string, and there was no null, did the user enter &lt;code&gt;&quot;&quot;&lt;/code&gt; or did they enter nothing?  Even worse if it's an integer - is the revenue for this project really &lt;code&gt;0&lt;/code&gt; or did the user simply not enter a revenue figure yet?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I worked on one project where we dealt with a database that did not have null values.  We actually supported three types of databases and two support null but we had to code to the lowest common denominator.  We ended up having to specify a magical integer value to save to the database to represent null (the project was Java and we used &lt;code&gt;Integer.MIN_VALUE&lt;/code&gt;).&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-01T21:46:10.193" LastActivityDate="2010-12-01T21:46:10.193" CommentCount="2" />
  <row Id="22973" PostTypeId="2" ParentId="22873" CreationDate="2010-12-01T21:20:07.763" Score="1" ViewCount="" Body="&lt;p&gt;Programs, they way I look at them, are expressions of a most clear mind.  They express through machines, to other people, their author's way of doing a work at hand, in a most unambiguous way.  This expression is what I love most.  When I get to express something new that not many have expressed in similar fashion, it makes me happy and satisfied.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-12-01T21:20:07.763" />
  <row Id="22975" PostTypeId="2" ParentId="279" CreationDate="2010-12-01T21:33:02.027" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Non-null types&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to specify that a value will be non-null, at least in the easy cases. Give me non-null parameters/locals/return types and I will be satisfied for now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally non-null types would become first class citizens. Unfortunately, that requires solving the hard problems of non-null members/generic parameters/arrays. The reason it's hard is because those areas implicitly rely on the fact that all .Net types have a default value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do have lots of ideas on how to completely allow types with no defaults, but they take a lot of space to explain. Essentially you need a nodef modifier for generic parameters and a special Option type to allow array allocation.&lt;/p&gt;&#xA;" OwnerUserId="7262" LastActivityDate="2010-12-01T21:33:02.027" CommunityOwnedDate="2011-05-10T09:21:11.253" />
  <row Id="22976" PostTypeId="1" CreationDate="2010-12-01T21:34:47.610" Score="3" ViewCount="230" Body="&lt;p&gt;I'm looking to take my Actionscript knowledge to the next level and I've been having trouble finding what it takes to become a senior level AS developer. From my searching this has what I've come up with so far:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Component Creation&lt;/li&gt;&#xA;&lt;li&gt;Memory Usage Debugging/Profiling&lt;/li&gt;&#xA;&lt;li&gt;AS specific usage of OOP &lt;/li&gt;&#xA;&lt;li&gt;Correct Use of Code-behind &lt;/li&gt;&#xA;&lt;li&gt;Accessing remote data&lt;/li&gt;&#xA;&lt;li&gt;Flex architecture frameworks&lt;/li&gt;&#xA;&lt;li&gt;Component lifecycle&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Those are just the topics I've been able to find. Resources on mastering those topics have been very hard to come by(i.e. what are common AS design patterns, etc). I may just not be searching correctly, but any help here would be greatly appreciated. My focus is on Flex specific AS development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently I've found &lt;a href=&quot;http://stackoverflow.com/questions/3218198/interview-questions-for-actionscript-3-flex-programmer&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://stackoverflow.com/questions/2342184/flex-basic-expectations-from-a-flexactionscript-developer&quot;&gt;here&lt;/a&gt; are the most similar SO questions I've been able to find. Any help would be appreciated, though I'm looking for specific examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*&lt;em&gt;this question was first asked on &lt;a href=&quot;http://stackoverflow.com/questions/4329240/required-skills-for-a-senior-level-actionscript-flex-developer&quot;&gt;stackoverflow&lt;/a&gt; and asked to be moved here&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="8971" LastEditorUserId="8971" LastEditorDisplayName="" LastEditDate="2010-12-02T16:14:17.307" LastActivityDate="2010-12-02T16:14:17.307" Title="Required skills for a senior level ActionScript/Flex developer" Tags="&lt;best-practices&gt;&lt;job-definition&gt;&lt;actionscript&gt;&lt;senior-developer&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="22977" PostTypeId="2" ParentId="8104" CreationDate="2010-12-01T21:37:46.190" Score="8" ViewCount="" Body="&lt;p&gt;I've had both and yes the private office was nicer. But you know what, developers aren't the only people who need to concentrate or who would do better with a private office. We aren't some special class of people who need more than anyone else. Sheesh, I'm tired of this prima donna attitude. Private offices are expensive in todays world and thus rare for everyone except managers. Realistically, you can't expect to get a private office most places, so learn to work with distractions just like everyone else does. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-01T21:37:46.190" CommunityOwnedDate="2011-02-20T23:49:56.727" CommentCount="6" />
  <row Id="22978" PostTypeId="2" ParentId="22912" CreationDate="2010-12-01T21:48:44.470" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;1. Why should one use Null as a third state? Isn’t there a more intelligent way to do this?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Others have said that Null is no state. I beg to differ. It's a state in &lt;a href=&quot;http://en.wikipedia.org/wiki/Ternary_logic&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;ternary logic&lt;/em&gt;&lt;/a&gt; (the article shows a ternary truth table and some applictions).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;2. Shouldn't all types be inheritable Nullable?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eiffel does this: class &lt;em&gt;None&lt;/em&gt; inherits from all other classes automatically, and has only one instance called &lt;em&gt;Void&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;3. Is it possible to have a high level language that doesn't support Null. If so How?&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prolog has no Null. Variables can be in an unbound state though, that is initially all variables are unbound and eventually become bound to a term through unification, which in turn may be an unbound variable as well: &lt;em&gt;X is Peter's father&lt;/em&gt; and &lt;em&gt;Y is Susan's father&lt;/em&gt;, and since I know that Peter and Susan are siblings, &lt;em&gt;X = Y&lt;/em&gt;, and as soon as I know that &lt;em&gt;X = Joe&lt;/em&gt; I also know that &lt;em&gt;Y = Joe&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7243" LastActivityDate="2010-12-01T21:48:44.470" />
  <row Id="22979" PostTypeId="2" ParentId="22742" CreationDate="2010-12-01T21:52:51.340" Score="6" ViewCount="" Body="&lt;p&gt;Yes, I flat out prefer the C-style syntax in PHP over Python or Ruby (perhaps over Ruby less so).  I could do without the sigils ($) for variables in PHP, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never had the problems with PHP that a lot of people seem to have.  If you develop your applications as applications, and not individual peieces that get inserted into web pages by intermingling HTML and PHP, PHP is not that much different from other langauges.  And the library support and available online resources are huge.  People moan about 'inconsistent' function parameters and such, but thats never been a huge hinderance to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP does give you a lot of rope to hang yourself, though, if you arent a disciplined programmer.  You can get yourself into a lot of trouble if you start using little PHP tricks all over the place (variable variables, using include() as function calls, etc).&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-01T21:52:51.340" />
  <row Id="22980" PostTypeId="2" ParentId="22809" CreationDate="2010-12-01T21:54:38.580" Score="0" ViewCount="" Body="&lt;p&gt;The outfit I work for, started with a public domain code (written by the business owner) [Open source was years from being invented]. His original business model was to be a consultant on using it (use is not straightforward, and many hundreds of people make a living consulting). Of course the demands for feature enhancements were so great it became a proprietary commercial code(s)*. But, still most of the salaries earned are in rapidly diminishing numbers up the scale: (1) Users doing their jobs, (2) Consultants to group (1), finally (3) Developers/testers etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use the plural, because several other proprietary codes sprang from the same public domain source code release.&lt;/p&gt;&#xA;" OwnerUserId="8890" LastActivityDate="2010-12-01T21:54:38.580" />
  <row Id="22981" PostTypeId="2" ParentId="19963" CreationDate="2010-12-01T21:56:22.447" Score="0" ViewCount="" Body="&lt;p&gt;If you are interested in building your own REST API, You may want to check out the &lt;a href=&quot;http://www.recessframework.org/&quot; rel=&quot;nofollow&quot;&gt;Recess PHP Framework&lt;/a&gt;. It is specially designed to be RESTful.&lt;/p&gt;&#xA;" OwnerUserId="4881" LastActivityDate="2010-12-01T21:56:22.447" />
  <row Id="22983" PostTypeId="1" CreationDate="2010-12-01T22:04:12.343" Score="8" ViewCount="217" Body="&lt;p&gt;I've been developing for a while now and I'm a little bit bored of the tiny details of software development. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to be less technical and more focused on the bigger picture, like take more of a system wide approach from a business perspective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, I'm thinking I might become a business analysts. But so far, I can't seem to determine what a business analyst does that a developer can't do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know they're supposed to know more about the business rules and how a user uses the system but as a developer, I feel you have to know that anyway. I mean, I've trained new BAs up when they've first started on how the system is used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm also good with people, and can write pretty well. So I'm happy to do that, but surely there's much more to the job right? It's just weird because BAs in my area seem to get paid a lot more than developers - what are the skill sets I'm missing as a developer that I need as a BA?&lt;/p&gt;&#xA;" OwnerUserId="3214" LastActivityDate="2010-12-02T01:48:08.440" Title="Is it easy for a developer to become a system/business analysts?" Tags="&lt;career&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="7" />
  <row Id="22984" PostTypeId="2" ParentId="22976" CreationDate="2010-12-01T22:04:56.643" Score="5" ViewCount="" Body="&lt;p&gt;I would consider a senior-level ActionScript developer to be a Senior Developer who understands ActionScript code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Way too many people (not saying you are one of them) believe ActionScript to be somehow different to other languages because it's Flash.  Java engineers think it's a kiddie language, and &quot;Flash programmers&quot; who have played with ActionScript inside the Flash IDE for three years think they are &quot;senior&quot;.  Both of those are problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So a &quot;Senior-level ActionScript/Flex developer&quot; should be the same as any other senior developer:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;You should understand &lt;a href=&quot;http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Design Patterns&lt;/strong&gt;&lt;/a&gt; &amp;mdash; and rather than know them inside-out, academically, know when to practically use them, and know the most common ones well.  Understanding them well enough to recognize them in existing projects is a good start.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Understand OOP software architecture in general&lt;/strong&gt;.  AS3 is a pretty standard OOP language.  Understand encapsulation, loose-coupling, separation of concerns, refactoring etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Know how to do task-breakdown.&lt;/strong&gt; I have worked with developers who, given a well-defined specification for a new feature, could not come up with a bullet-point list of the tasks needed (parts of the code that would have to change) to bring the feature to completion.  Those were not senior developers.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Know your language inside-out&lt;/strong&gt;.  I would assume any AS3 senior developer would know closures, type-safety, events, asynchronous programming, etc. very well.  I'd also hope they know a bit about dependency injection.  Since it's Flash, I'd also expect them to understand the stage, the common &lt;code&gt;flash.display&lt;/code&gt; classes, best practices for fetching resources, and HTTP very well.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm sorry I can't help you more with Flex-specific stuff.  I also think your list is a good start, and I especially like the part about memory usage debugging/profiling.  Even thinking about memory usage is something many Flash developers don't do.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-01T22:24:25.357" LastActivityDate="2010-12-01T22:24:25.357" />
  <row Id="22985" PostTypeId="2" ParentId="22873" CreationDate="2010-12-01T22:05:38.600" Score="1" ViewCount="" Body="&lt;p&gt;I would say that the problem solving / design is my real passion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Creating is just building the design to see if it works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is just a way to create.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-12-01T22:05:38.600" />
  <row Id="22988" PostTypeId="2" ParentId="22983" CreationDate="2010-12-01T22:20:27.243" Score="10" ViewCount="" Body="&lt;p&gt;The BA actually gets into those tiny details as that they are the ones that gather the requirements which includes asking the, &quot;What if...&quot; tons of times so that it is known what the system should do.  The developer doesn't necessarily get knee-deep in the business process of exactly what are the steps to perform various functions and identifying all the pieces of the puzzle.  Think about this question:  How often does a developer get into stuff outside of the code?  Some may do it a lot more than others, but just consider that question for a moment.  &lt;a href=&quot;http://it.toolbox.com/blogs/business-analyst/&quot; rel=&quot;nofollow&quot;&gt;Trials &amp;amp; Tribulations of a Business Systems Analyst&lt;/a&gt; is a blog on IT Toolbox by H M Winning would be a blog by a BA that may help fill in some missing details, with these few links being a bit more specific for those wanting a quick reference:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://it.toolbox.com/blogs/business-analyst/how-to-waste-a-business-analyst-40186&quot; rel=&quot;nofollow&quot;&gt;How to Waste A Business Analyst&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://it.toolbox.com/blogs/business-analyst/bas-misunderstood-for-sure-35202&quot; rel=&quot;nofollow&quot;&gt;BA's - Misunderstood For Sure&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://it.toolbox.com/blogs/business-analyst/yet-another-discussion-about-the-ba-role-a-good-link-33138&quot; rel=&quot;nofollow&quot;&gt;Yet Another Discussion About the BA Role - A Good Link &lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://it.toolbox.com/blogs/business-analyst/5-traits-of-an-excellent-ba-32849&quot; rel=&quot;nofollow&quot;&gt;5 Traits of an Excellent BA&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://it.toolbox.com/blogs/business-analyst/what-is-a-business-analyst-here-you-go-24325&quot; rel=&quot;nofollow&quot;&gt;What is a Business Analyst? Here You Go.&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'd suggest you may want to look into being either a project manager or an architect as both tend to have a bit broader perspective on a system.  How are you certain that those BAs getting paid more aren't also expected to know a lot more about business processes involving some big system like an ERP or CRM?  &lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-01T22:20:27.243" CommentCount="3" />
  <row Id="22989" PostTypeId="2" ParentId="22933" CreationDate="2010-12-01T22:25:56.930" Score="3" ViewCount="" Body="&lt;p&gt;I have successfully used Gantt charts in the past for software project management. I have also seen people abandon them in frustration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any project management tool is useful only if it's answering questions that somebody is actually asking. In my case, I was continually asked two questions, and my Gantt chart could answer it:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;My Manager: When will the software be&#xA;in a shippable state? &lt;/li&gt;&#xA;&lt;li&gt;A Developer:&#xA;I've finished the task you had&#xA;assigned me. What task are you&#xA;assigning me now?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So what factors are required for a Gantt chart to be useful?&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Multiple team members&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;That should be obvious. If there's only one team member, then all you need is a list of tasks in one column. You're only going to do them one after another.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Knowledge of what the tasks are&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;This seems like another obvious statement, but you'd be surprised how many software projects are not well defined enough to be able to divided into tasks. You'll actually need an upfront specification, and some degree of upfront design. In some of the agile/extreme methodologies you couldn't use a Gantt chart, because you don't know what tasks will be in the subsequent 3-week iteration.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Time and Motivation to Maintain the Chart&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Somebody HAS to put the time in to maintain the thing. Too often, somebody spends days making up a detailed Gantt chart, then neglects it. Maybe he'll get it out a month later, laugh nervously, and throw it away, never to talk about it again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have the tasks and best estimates, you put them on the chart. And when the first task has been completed, you have to mark that on the chart and then jiggle all of the other tasks around to compensate for the fact your estimate was wrong. And two days later you do it again. And then again, another two days later. And of course, when it turns out you forgot something or a defect appears, you have to put the new tasks on the chart.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That might sound like a significant ongoing time commitment, and you're right. Where does the motivation to do this come from?&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Somebody actually cares about the results&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;The times that I have used a Gantt chart successfully was where there were weekly project management meetings. The manager would go around the room asking each team leader to state when their project would be delivered. If a project was running behind then resources would be reallocated. For the first two meetings I would stammer that I didn't really know when it would be delivered, and would come up with a vague &quot;in three months&quot;. The embarrassment of this made me change my strategy, and make damn well sure I had a Gantt chart that was up-to-date and accurate before each meeting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This also made my project better organised and more efficient, and my team members more motivated. That was actually a side-effect.&lt;/p&gt;&#xA;" OwnerUserId="7567" LastEditorUserId="7567" LastEditorDisplayName="" LastEditDate="2010-12-02T03:14:03.623" LastActivityDate="2010-12-02T03:14:03.623" />
  <row Id="22990" PostTypeId="2" ParentId="22873" CreationDate="2010-12-01T22:27:04.870" Score="0" ViewCount="" Body="&lt;p&gt;At the end of the day, moving bits around memory is pretty dull. In the same way that stringing electrical wire, or welding together bits of metal is dull. But once you figure out how to combine those things and build a rocket ship, you get to fly to the moon. I typically assume that's the reason someone becomes interested in programming (at least at the start).&lt;/p&gt;&#xA;" OwnerUserId="1972" LastActivityDate="2010-12-01T22:27:04.870" />
  <row Id="22991" PostTypeId="2" ParentId="22940" CreationDate="2010-12-01T22:36:06.233" Score="1" ViewCount="" Body="&lt;p&gt;Generally I don't think it's difficult to land a job @ a startup, but they're going to expected you to hit the ground running.  The startups I was in had high turnover because a lot and a lot of hours are expected, and some of the harder coding tests I had to do were from startups.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can demonstrate your skill, you'll be in favor.&lt;/p&gt;&#xA;" OwnerUserId="8972" LastActivityDate="2010-12-01T22:36:06.233" />
  <row Id="22993" PostTypeId="1" AcceptedAnswerId="22999" CreationDate="2010-12-01T22:49:45.720" Score="4" ViewCount="155" Body="&lt;p&gt;Next semester (starts in just under 5 weeks), I'm taking System Programming and OOD concurrently.  Apparently SP centers on working in C on Linux, and I only have Java and Python experience, so I am a little nervous about this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those of you who've taken these at an university, what should I look out for? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: I've already taken Computer Organization which included an overview of Assembly.  With the exception of implenting loops in assembly, I ranged from B+ to A- in the assembly projects.  Building circuitry was another story, however.&lt;/p&gt;&#xA;" OwnerUserId="7073" LastEditorUserId="7073" LastEditorDisplayName="" LastEditDate="2010-12-02T02:58:44.297" LastActivityDate="2010-12-02T03:33:01.893" Title="System Programming &amp; Object Oriented Design- what to look out for" Tags="&lt;learning&gt;&lt;students&gt;&lt;help&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="22994" PostTypeId="2" ParentId="22933" CreationDate="2010-12-01T22:52:19.320" Score="0" ViewCount="" Body="&lt;p&gt;As others have said a gantt chart (commonly informally referred to as a project plan) is a way of mapping tasks and the interdependencies between those tasks, the aim being to establish the minimum total elapsed time for a project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a management perspective the key output is the identification of the critical path, that is the list of tasks which if they are delayed then the project is delayed.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A very simple example - say two programmers are working on a project with three tasks (code module A taking one programmer 10 days, code module B taking one programmer 5 days, then integrate a and b taking both programmers 2 days).  The first two tasks (coding modules A and B) will be worked on in parallel and the aim is to complete all three tasks and thus the project it all in 12 days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this case the critical path is coding module A then integration testing.  The coding of module B can actually start 5 days late (or over run by five days) with no impact as even if it did finish on time, coding module A is going to take that much longer.  On the other hand if coding module A or the integration testing slips by any time at all, the whole project will slip.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowing this sort of thing helps you understand how to deploy resources and whether a delay to a particular task is likely to impact the whole project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are they useful?  Obviously yes, but with one significant caveat: only so long as the information that goes into them is good - that is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the task list is complete&lt;/li&gt;&#xA;&lt;li&gt;the estimates are accurate&lt;/li&gt;&#xA;&lt;li&gt;the dependencies between tasks are comprehensive and &lt;/li&gt;&#xA;&lt;li&gt;the resources representative of the team and correctly mapped to the task.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And from there the team has to work to the chart and carry out the tasks in the right order (no doing something that's more interesting that the assigned task as that will potentially delay something / someone else down the line).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do all that then yes, then it can really help you but the work does have to be put in up front to ensure it's accurate and realistic.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-01T22:52:19.320" />
  <row Id="22995" PostTypeId="2" ParentId="22940" CreationDate="2010-12-01T22:57:52.197" Score="2" ViewCount="" Body="&lt;p&gt;Learn modern software development practices. I'm going to assume you can program, because if you can't do that this far into your career, it's probably too big a gap to bridge. If you want to work in a startup, it means agile test driven development. Learn to know and love current standard unit testing tools for your language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pick a language that's in use and focus on it. In practice, Java or Ruby are the two primary paths for a startup right now. Java for the backend, Ruby for the frontend. Python is a close runner up for frontend. I guess PHP as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C/C++ are likely to be rather specialized and less likely to want to bring on someone who doesn't have significant professional programming experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More obscure languages (Haskell, Scala) don't have enough people using them to be worth focusing on before you're working.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I were in your shoes, I'd try to get in somewhere like Pivotal Labs. They have a very strict (but modern) development process which may be better able to absorb someone who doesn't have a lot of experience in software development.&lt;/p&gt;&#xA;" OwnerUserId="7939" LastActivityDate="2010-12-01T22:57:52.197" CommentCount="1" />
  <row Id="22997" PostTypeId="2" ParentId="22976" CreationDate="2010-12-01T23:05:12.440" Score="0" ViewCount="" Body="&lt;p&gt;&lt;em&gt;This was my answer on SO, copy-pasted to here.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion that list is a mid or high level developer. A senior developer should be able to do all of that plus:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowledge of various frameworks and things like Dependency Injection&#xA;Ability to mentor and/or train lower level developers&#xA;Very strong OOP knowledge with the ability to architect applications from the ground up&#xA;Ability to communicate with non-technical &quot;customers&quot; (mangers, marketing, sales, SMEs, clients, etc.)&#xA;Of course every job will have a different definition of what a senior developer should know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that said, a few ideas on where to find the info you are looking for:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Twitter - Start with following the evangelists, then branch off from there. Lots of great knowledge passes by.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Blogs - Again you can start with evangelists, but I find that you can learn almost anything from blogs. Search Google for a topic, then dig from the links.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Component Creation, just know the component life cycle in and out, and learn about performance pitfalls with things like Item Renderers and the Display List.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For design patterns (OOP) there is plenty of info, but you can do two things. 1. &lt;a href=&quot;http://www.as3dp.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.as3dp.com/&lt;/a&gt; is a good start. 2. Read about design patterns in Java (Java Head First is a good book). Java and ActionScript are similar from a structural standpoint.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There really isn't a ton of info on Profiling, so just searching Google and reading everything you can is the best you can do before diving in head first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Probably the most important thing I can say is practice, ask questions, listen and learn. You will alway improve that way.&lt;/p&gt;&#xA;" OwnerUserId="8974" LastActivityDate="2010-12-01T23:05:12.440" />
  <row Id="22998" PostTypeId="2" ParentId="22993" CreationDate="2010-12-01T23:19:42.607" Score="0" ViewCount="" Body="&lt;p&gt;I always found it difficult to take classes with opposing points in the same semester.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your systems class is very low level you will likely need to do some very non-OO things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can keep the two straight though it might be a good time to learn the advantages of each approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal experience with OOD classes were that you needed to go to a nearly theoretical level of abstraction to get full credit and that the systems classes were usually more theory than code because it was not reasonable to build much of an OS feature in a single semester.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-12-01T23:19:42.607" CommentCount="2" />
  <row Id="22999" PostTypeId="2" ParentId="22993" CreationDate="2010-12-01T23:20:55.860" Score="2" ViewCount="" Body="&lt;p&gt;Well, exactly what you're going to need wil depend on the class, though some generalities will likely hold. I'd suggest getting a C book intended for Java programmers. It's likely to point out the major pitfalls and help you transition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest items that you're going to worry in C that you don't really worry about in Java are pointers and memory management. Java references are technically pointers, but they're seriously dumbed-down pointers, and from what I've seen, Java programmers don't really see them as the pointers that they are and often have some trouble dealing with pointers initially. Going hand in hand with that is the fact that you won't have a garbage collector, so anything that gets allocated on the heap will not only have to be manually allocated, but you'll have to manually de-allocate it when you're done with it. So, you're going to have to become familiar with &lt;code&gt;malloc&lt;/code&gt; and &lt;code&gt;free&lt;/code&gt;. You also aren't going to have classes, and structs in C can't have functions in them, so you don't generally program in C in an object-oriented manner. That may or may not be a big deal for you. It does mean, however, that what you'll be learning in your systems programming course and your object-oriented design course are likely to be very different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OOD should be more of an extension of what you know, teaching you how to better program in an object-oriented manner. Systems programming, on the other hand is much more about getting down and dirty and will be much more low-level in what it deals with. Both are really important to being a good programmer though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without knowing your exact skill set and experiences and without knowing the exact courses, giving more detailed advice would be difficult, but primarily, the issue is likely to be in dealing with how C doesn't doesn't manage things for you and doesn't try and keep you safe from yourself. You will have to be more careful programming in C than you would be in Java or Python. There's plenty of stuff that's perfectly legal C which would be illegal many other languages and could surprise you. The main things to be concerned about though are pointers and manual memory management.&lt;/p&gt;&#xA;" OwnerUserId="7896" LastActivityDate="2010-12-01T23:20:55.860" CommentCount="2" />
  <row Id="23000" PostTypeId="2" ParentId="22933" CreationDate="2010-12-01T23:38:28.673" Score="1" ViewCount="" Body="&lt;p&gt;I LOVE Gantt charts and if there were better software choices for the Mac to create them, I'd use them all the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Getting to see the dependencies is huge.  &quot;If we don't get the data backfilling part of the project done, then construction on the whatsit enhancements can't start.&quot;&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-12-01T23:38:28.673" CommentCount="1" />
  <row Id="23001" PostTypeId="2" ParentId="21831" CreationDate="2010-12-01T23:57:01.413" Score="0" ViewCount="" Body="&lt;p&gt;Here are some potential problems I see with your proposal:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) If you're suggesting that you would put new-to-the-field software engineers into the QA department for a short stint, won't this just have the opposite effect? - they may assume that QA is something you do when you're a newbie and you don't understand what you're doing - after all, that's how it worked for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Being a very bad tester for a while will not necessarily teach them anything valuable.  But it may make them unteachable later on, because they will &lt;em&gt;assume&lt;/em&gt; that they know &lt;em&gt;all&lt;/em&gt; about testing now, because they spent 6 weeks in a test department once upon a time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Given that they'll obviously only be there for a short time, and the QA dept will know this, it's also likely that they will only be given relatively undemanding, easy tasks that require little supervision or understanding, but which keep them busy.  This will only reinforce 1 and 2. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) If you want to avoid 1, 2, and 3, how will you persuade your test department that it is worth investing a tremendous amount of energy in teaching and supervising someone who isn't even interested in testing?  (I can tell you, it takes a scary amount of time and energy to work with someone who, let's remember, &lt;em&gt;hasn't been picked for their testing aptitude&lt;/em&gt;.  You're not offering the test team additional resource for a few weeks, you're asking them to lose one of their most experienced people for a few weeks, while they teach your newbie).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said all that, I think your overall goal - to increase new software engineers' understanding of testing - is really fantastic.  I think that Greg's suggestion is more likely to achieve it though - get your dev &amp;amp; QA teams collaborating closely together, and work on breaking down any barriers between the teams.  (I'm currently working in a company where testers and programmers are on the same team - it really is great, and I never want to go back to working in separate teams.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're still keen on having programmers do a stint in QA - here's a suggestion: lead by example.  Go yourself first.  Perhaps make it into something members of your team get to do when they're already good, and want to get that extra edge, by spending a little time each week with other teams who specialise in overlapping areas - test, DBAs, etc.  If you present it like that, then you'll have more chance of success.&lt;/p&gt;&#xA;" OwnerUserId="8805" LastActivityDate="2010-12-01T23:57:01.413" />
  <row Id="23002" PostTypeId="2" ParentId="22873" CreationDate="2010-12-01T23:59:39.063" Score="4" ViewCount="" Body="&lt;p&gt;Personally, I like to think of it more like &lt;em&gt;magic&lt;/em&gt; *.  (Not anything occult-like, but the sci-fi sort.)  What other way could you sit and think for a while, wiggle your fingers and watch stuff &lt;em&gt;happen&lt;/em&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With this power, you can:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Create - which is really cool and one of the best parts&lt;/li&gt;&#xA;&lt;li&gt;Solve - find problems in the &quot;spells&quot; and fix them&lt;/li&gt;&#xA;&lt;li&gt;Imagine - whether you spend the time to write the code or not, it is fun to think of the possibilities&lt;/li&gt;&#xA;&lt;li&gt;Produce - not the same as creating or solving, this is just making or doing useful things&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Control&lt;/strong&gt; - This is the one piece that spans all of the others.  You can use it to prevent actions as well as doing things.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;(*) You can find this idea in &lt;em&gt;The Mythical Man-Month&lt;/em&gt;, so it's not original.&lt;/p&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-12-01T23:59:39.063" />
  <row Id="23003" PostTypeId="2" ParentId="22993" CreationDate="2010-12-02T00:02:11.323" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Have no fear - it's only code&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java and C have very similar syntax coming from the same family of languages. As others have said, your biggest hurdles will be learning pointers (hint: &lt;a href=&quot;http://programmers.stackexchange.com/questions/17898/whats-a-nice-explanation-for-pointers/17931#17931&quot;&gt;they're just indirection&lt;/a&gt;), and memory management. Suddenly all those arrays you've been declaring in your Java have to be disposed of. Like any subject, once you've twigged what it's all about then it suddenly becomes straightforward.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall, it's more about learning the environment you'll be working in rather than some language syntax and constructs. Linux programming is very different to general Java programming. One relies closely on the operating system APIs, all C pointers and structs, and the other is generally much simpler because it's at a higher level of abstraction, there's just a lot more of it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Developing the mindset&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps the way for you to approach this is to maintain two working environments as virtual machines (Parallels or VMWare come to mind). One is purely for developing C code, the other for Java and no mixing them up. You could use different themes for the desktop to reinforce the different mindset (black for C, blue for Java or whatever). Each time you come to work in one or other environments you have many visual cues to promote the appropriate mindset you need to get the work done.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-02T00:02:11.323" CommentCount="2" />
  <row Id="23004" PostTypeId="2" ParentId="22742" CreationDate="2010-12-02T00:06:28.947" Score="1" ViewCount="" Body="&lt;p&gt;I know both Ruby and Python far, far better than I do PHP, and I prefer PHP for the incredibly mundane web programming tasks I occasionally have to do. The server supports it, I can hack together solutions without having any idea why what I'm doing is working, and I can test it easily using a MAMP server with minimal setup. PHP provides quick and dirty solutions to simple problems.*&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;This is a statement of personal experience, not a value judgement about any language, designer, or developer.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6883" LastActivityDate="2010-12-02T00:06:28.947" CommentCount="2" />
  <row Id="23005" PostTypeId="2" ParentId="22854" CreationDate="2010-12-02T00:07:26.353" Score="0" ViewCount="" Body="&lt;p&gt;A completed project is not a set of code.  A completed project is a set of code at a specific point in time.  If your customers/users don't care about when they get the code, then it's probably not very important.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-12-02T00:07:26.353" />
  <row Id="23006" PostTypeId="1" AcceptedAnswerId="23014" CreationDate="2010-12-02T00:08:45.497" Score="3" ViewCount="321" Body="&lt;p&gt;Today I thought I'd forgo using FileZilla so I could try out the web publish tool, which is always sitting there in Visual Studio 2010 toolbar bugging me that I don't know how to use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Positives:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Not too hard to set up for FTP publishing (couldn't be bothered with the web deploy thingy)&lt;/li&gt;&#xA;&lt;li&gt;Easy one click to get it going&lt;/li&gt;&#xA;&lt;li&gt;Knows exactly which files to upload and which to leave (though I can set up a filter in FileZilla to handle this, so it's not a massive advantage)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Negatives:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;No feedback! What is it doing? All I see is a little icon animating, with zero progress information or any kind of useful information at all really&lt;/li&gt;&#xA;&lt;li&gt;It's so slow! I suspect it's copying one file at a time. Ummm... why? In any decent FTP program I can set it to upload many files at the same time, which dramatically speeds up the rate at which it uploads.&lt;/li&gt;&#xA;&lt;li&gt;Lack of configurability - why can't I set it up to upload only changed files, and possibly delete files from the server that are no longer part of the project?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Surely somebody on the Visual Studio developer team has used an FTP program before and can relate to my experiences?&lt;/p&gt;&#xA;" OwnerUserId="3198" LastActivityDate="2010-12-02T01:00:51.653" ClosedDate="2010-12-02T01:33:28.173" Title="Why is the web publish tool in Visual Studio 2010 so terrible?" Tags="&lt;visual-studio-2010&gt;" AnswerCount="3" CommentCount="5" />
  <row Id="23007" PostTypeId="2" ParentId="22885" CreationDate="2010-12-02T00:09:26.260" Score="1" ViewCount="" Body="&lt;p&gt;If the User Interface includes graphical assets, such as something done by a professional designer, then yes, you may get sued for copyright infringement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're laying out a treeview and a grid control in a manner similar to Microsoft Outlook, I doubt anyone will care/notice.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the manner of laying out data may be protected since that is a work of art.  Take for example the grid used in TV Guide.  Anyone who puts TV shows in that grid format is required to pay a fee, otherwise they need to pay the patent holder.&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-12-02T00:09:26.260" CommentCount="1" />
  <row Id="23008" PostTypeId="2" ParentId="17898" CreationDate="2010-12-02T00:15:36.130" Score="1" ViewCount="" Body="&lt;p&gt;My &quot;aha!&quot; moment came in this tutorial:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://pweb.netcom.com/~tjensen/ptr/pointers.htm&quot; rel=&quot;nofollow&quot;&gt;A Tutorial on Pointers and Arrays in C&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be exact, it came in this chapter: &lt;a href=&quot;http://pweb.netcom.com/~tjensen/ptr/ch3x.htm&quot; rel=&quot;nofollow&quot;&gt;Chapter 3: Pointers and Strings&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be even more precise, it came with this sentence:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The parameter passed to puts() is a&#xA;  pointer, that is the value of a&#xA;  pointer (since all parameters in C are&#xA;  passed by value), and the value of a&#xA;  pointer is the address to which it&#xA;  points, or, simply, an address.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;When I read that, the clouds parted and angels blew trumpet fanfares.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For, you see, every C tutorial or book I'd read prior to that had asserted that C could pass by value or by reference, a nefarious lie.  The truth is that C always passes by value, but sometimes the value passed happens to be an address.  Within the method, a copy is made of that address, just like a copy would be made of an int passed in.  A copy is &lt;em&gt;not&lt;/em&gt; made of the value to which the pointer points.  Thus by using the pointer within the method you can access the original value and change it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I never became a C programmer, but I became a .NET programmer, and objects and object references work the same way; the reference to the object is passed by value (and thus copied), but the object itself isn't copied.  I've worked around many programmers who don't understand this because they never learned pointers.&lt;/p&gt;&#xA;" OwnerUserId="3963" LastEditorUserId="3963" LastEditorDisplayName="" LastEditDate="2011-04-21T20:11:37.340" LastActivityDate="2011-04-21T20:11:37.340" CommunityOwnedDate="2010-12-02T00:15:36.130" />
  <row Id="23009" PostTypeId="2" ParentId="23006" CreationDate="2010-12-02T00:15:49.360" Score="0" ViewCount="" Body="&lt;p&gt;I think that basically, the reason that this specific tool is so terrible is that Microsoft hates competition. Probably they have a rocking great version in Redmond that uploads multiple files at high speeds and gives you a byte-by-byte update of its progress. The evil plan is to drive independents like you insane, so that only MS approved super-developers (the ones with the better web publish tool) will take over the world.&lt;/p&gt;&#xA;" OwnerUserId="6883" LastActivityDate="2010-12-02T00:15:49.360" CommentCount="1" />
  <row Id="23011" PostTypeId="2" ParentId="22854" CreationDate="2010-12-02T00:48:16.960" Score="1" ViewCount="" Body="&lt;p&gt;The simple answer: &lt;strong&gt;use relative estimates and ship frequently&lt;/strong&gt;. This is basically the approach used in the Extreme Programming method. The basic steps:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The team creates a list of every useful step forward, generally written from the user's perspective. (E.g., &quot;Customer adds item to cart&quot;.)&lt;/li&gt;&#xA;&lt;li&gt;The product manager sorts the list by priority, inserting release markers. (E.g., &quot;first internal alpha&quot;, &quot;first public beta&quot;.)&lt;/li&gt;&#xA;&lt;li&gt;The developers pick out the smallest non-trivial item. They call that 1 point.&lt;/li&gt;&#xA;&lt;li&gt;The developers estimate everything else in terms of that. Anything too large (e.g., 8 points) gets broken down into smaller pieces.&lt;/li&gt;&#xA;&lt;li&gt;The developers start in building things one feature at a time, making a working system (that is, something you could release if somebody put a gun to your head) at least once a week.&lt;/li&gt;&#xA;&lt;li&gt;Each week, the team counts up the points they completed. Next week, they try to take on about the same amount. If they complete all that early, they can opt to do more.&lt;/li&gt;&#xA;&lt;li&gt;If the product manager wants an estimate for some particular release, they can look at the weekly velocity, count up the points in the release, and do the math.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;This may sound too simple, but it has worked very well for me, and plenty of other teams. In particular, because the product manager has full control over the schedule through arranging the upcoming work, &lt;strong&gt;schedule pressure is no longer a problem for developers&lt;/strong&gt;. Business people get to argue with one another about priorities and schedules as much as they want, and I get to keep coding.&lt;/p&gt;&#xA;" OwnerUserId="1843" LastActivityDate="2010-12-02T00:48:16.960" CommentCount="2" />
  <row Id="23012" PostTypeId="2" ParentId="23006" CreationDate="2010-12-02T00:49:31.060" Score="0" ViewCount="" Body="&lt;p&gt;It can be a bit painful to set up but once done I love it. My old process was&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Work out which files to release&lt;/li&gt;&#xA;&lt;li&gt;Package them somehow (being careful to copy correct config files)&lt;/li&gt;&#xA;&lt;li&gt;FTP to server&lt;/li&gt;&#xA;&lt;li&gt;Log onto server&lt;/li&gt;&#xA;&lt;li&gt;Run database scripts to update the database&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Basically, lots of manual steps, some I have probably missed, that made it take minimum of 30 minutes to do a release, for a major release possibly a few hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the web publish tool my new process is&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Click publish&lt;/li&gt;&#xA;&lt;li&gt;Wait until done&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;When I am doing releases to staging/test this is the biggest benefit because I can release regularly during the day without disruption.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-12-02T00:49:31.060" />
  <row Id="23014" PostTypeId="2" ParentId="23006" CreationDate="2010-12-02T01:00:51.653" Score="3" ViewCount="" Body="&lt;p&gt;I think it's more simply a case of &quot;build the simplest thing that gets the job done.&quot; Visual Studio is a pretty product (he said with a wry smile) so obviously some features are going to be more polished than others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For myself, I usually &quot;publish&quot; to a local directory and then use a &quot;real&quot; FTP client to transfer the contents of that folder. That solves most of the &quot;problems&quot; with the tool.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-02T01:00:51.653" CommentCount="1" />
  <row Id="23016" PostTypeId="2" ParentId="17898" CreationDate="2010-12-02T01:25:55.650" Score="1" ViewCount="" Body="&lt;p&gt;The key to explaining pointers is making sure that the people you are explaining to, already have an understanding of the concept of memory.  Whilst it would be nice if they really understood it low level, believing that memory exists as a massive array, and understanding that you can access any position in the array by its index location is enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The next step, having the concept of passing the index location rather than copying the entire memory makes sense to most people.  And that is enough to allow most people to understand why pointers are useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the final step to understand pointers is to explain how you can pass in as a parameter a memory index location for the method to store the index location for where all the data is stored.  I have found that this can be step too far for some people to cope with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once someone has grasped these basic steps its straight forward for them to grasp that you can chain pointers indefinitely, just as long as you keep track of how many times you need to look at addresses to find the actual data object. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once someone has grasped pointers, the next thing that they must grasp quickly is the difference between heap memory and stack memory, and why pointers to stack memory are dangerous when passed outside the method.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-12-02T01:25:55.650" CommunityOwnedDate="2010-12-02T01:25:55.650" />
  <row Id="23018" PostTypeId="2" ParentId="22993" CreationDate="2010-12-02T01:37:23.303" Score="0" ViewCount="" Body="&lt;p&gt;If you haven't ever done any C or assembler, be prepared to understand Java and Python at a whole new level. Even though you already have some comp sci survey class that told you how memory and references work you almost certainly do not fully grok it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go into to it with an open mind, and an open heart. C is a beautiful thing, but not at all in the same way that Python is beautiful. It is beautiful more in the same way that a trench knife is beautiful. &lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-12-02T01:37:23.303" CommentCount="1" />
  <row Id="23019" PostTypeId="1" AcceptedAnswerId="23070" CreationDate="2010-12-02T01:42:42.907" Score="5" ViewCount="295" Body="&lt;p&gt;I wonder how do you decide on the version number of your apps, do you really record down all changes made (for a change log)? Then how will you decide how to increment the version number. eg. +0.0.1 for each bug fix or something, +0.1 for each new feature release? or maybe you bundle many changes into +0.1 of your version number?&lt;/p&gt;&#xA;" OwnerUserId="526" LastActivityDate="2010-12-02T16:38:33.917" Title="How do you version your files (Version Numbers)" Tags="&lt;software-development&gt;&lt;versioning&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="2" />
  <row Id="23020" PostTypeId="2" ParentId="22907" CreationDate="2010-12-02T01:43:40.160" Score="2" ViewCount="" Body="&lt;p&gt;There Are lots of good answers here. I would include &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1933988274&quot; rel=&quot;nofollow&quot;&gt;The Art Of Unit Testing&lt;/a&gt; as a book that could improve your C# skills.&lt;/p&gt;&#xA;" OwnerUserId="3470" LastActivityDate="2010-12-02T01:43:40.160" />
  <row Id="23021" PostTypeId="1" AcceptedAnswerId="23030" CreationDate="2010-12-02T01:47:58.617" Score="9" ViewCount="190" Body="&lt;p&gt;Would you refactor your app as you go or focus on completing app 1st. Refactoring will mean progress of app app will slow down. Completing app will mean you get a possibly very hard to maintain app later on?&lt;/p&gt;&#xA;" OwnerUserId="526" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-12-02T10:14:06.473" LastActivityDate="2010-12-02T10:25:29.360" Title="Refactor or Concentrate on Completing App" Tags="&lt;refactoring&gt;&lt;software-development&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="1" />
  <row Id="23022" PostTypeId="2" ParentId="22983" CreationDate="2010-12-02T01:48:08.440" Score="2" ViewCount="" Body="&lt;p&gt;With only a couple of exceptions the best BAs I have worked with all started as developers. It used to be the case that practically everyone in DP/IT first worked as a programmer - but frankly the demand ramped up much faster than the supply beginning I am guessing in the late 80s with the office PC revolution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These days around my shop, BAs who used to code call themselves architects. Sounds really awesome doesn't it? Architect. Just let it roll off the tongue. (I called myself Architect for several years, I can have a little fun). I prefer the old term systems analyst as it is more accurate but...not hardly in use around here - I'm surprised you even used it!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously though, sounds like it may be a pretty good fit for you.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-12-02T01:48:08.440" />
  <row Id="23023" PostTypeId="2" ParentId="23019" CreationDate="2010-12-02T01:49:10.490" Score="0" ViewCount="" Body="&lt;p&gt;Making this change by hand will result in customers having different versions of your DLL's with the same version number.  the only safe way I know is to use the Build server to do this automatically. The build server will add a 0.0.1 each time the code is built.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as I am concerned the 0.1 and 1. changes occur when you make release branches, keeping the trunk development as 0.0.0.x&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-12-02T01:49:10.490" />
  <row Id="23024" PostTypeId="2" ParentId="23021" CreationDate="2010-12-02T01:52:08.773" Score="3" ViewCount="" Body="&lt;p&gt;I always refactor as I go, especially using TDD. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Write the tests&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make the tests pass&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Refactor&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;This will help you have less bugs and better code for the finished product. It will also let you have less code to maintain when you are done.&lt;/p&gt;&#xA;" OwnerUserId="7446" LastActivityDate="2010-12-02T01:52:08.773" />
  <row Id="23025" PostTypeId="2" ParentId="23021" CreationDate="2010-12-02T01:54:42.553" Score="0" ViewCount="" Body="&lt;p&gt;Really depends on where you are at! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other things to think about:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How certain are you, you've really got the functional design right? Could you end up re-designing again after you get some user feedback?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd prefer to release than rewrite. Optimize after you are sure you've nailed the functional design. &lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-12-02T01:54:42.553" />
  <row Id="23026" PostTypeId="2" ParentId="23019" CreationDate="2010-12-02T01:56:07.453" Score="7" ViewCount="" Body="&lt;p&gt;Major.Minor.Revision.Build&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-12-02T01:56:07.453" CommentCount="1" />
  <row Id="23027" PostTypeId="2" ParentId="13571" CreationDate="2010-12-02T02:02:00.750" Score="0" ViewCount="" Body="&lt;p&gt;In short, always pay someone the maximum that you think they are worth. Any other approach will be a negative issue for your staff cost you more in the longer term through lost productivity and staff turn over.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-12-02T02:02:00.750" />
  <row Id="23028" PostTypeId="2" ParentId="23019" CreationDate="2010-12-02T02:11:42.530" Score="0" ViewCount="" Body="&lt;p&gt;Generally it's a Major.minor.revision number. The major and minor number are choosen by the marketing types to reflect the awesomeness or lack of awesomeness in the new release. The revision number is dictated by the version control system.&lt;/p&gt;&#xA;" OwnerUserId="8392" LastEditorUserId="8392" LastEditorDisplayName="" LastEditDate="2010-12-02T02:31:46.547" LastActivityDate="2010-12-02T02:31:46.547" CommentCount="2" />
  <row Id="23029" PostTypeId="2" ParentId="21067" CreationDate="2010-12-02T02:31:47.317" Score="1" ViewCount="" Body="&lt;p&gt;Does &quot;the debugger&quot; count as a language feature?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't care how fancy concepts a language expresses or what cool features it has, if debugging it amounts to essentially leaving print statements all over the place, it's garbage.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-12-02T02:31:47.317" CommunityOwnedDate="2011-01-05T10:52:43.233" CommentCount="1" />
  <row Id="23030" PostTypeId="2" ParentId="23021" CreationDate="2010-12-02T02:33:26.477" Score="5" ViewCount="" Body="&lt;p&gt;Make it work.  Then make it fast. Finally, make it beautiful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have good separation between your code (presentation, business, and data layers) using interfaces, and it's not a monolithic design, then refactoring should not be that difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're having that much difficulty refactoring, that's probably a code-smell --  I suggest you look at &lt;a href=&quot;http://en.wikipedia.org/wiki/Solid_%28object-oriented_design%29&quot; rel=&quot;nofollow&quot;&gt;Solid Principles&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-12-02T02:33:26.477" />
  <row Id="23031" PostTypeId="2" ParentId="13571" CreationDate="2010-12-02T02:37:55.180" Score="1" ViewCount="" Body="&lt;p&gt;You have to decide how much you will make off of this position, what the risks are, and what the labor market determines you'll need to pay to get qualified candidates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Probably the only level of fairness that is going to be met is determined by how much deception is involved. Making an offer at one salary level and then coming back with a lower salary level to the job candidate after they accepted is the bait-and-switch technique that is not considered fair (may not be legal). Hiring someone at one salary only for them to find out that other people in the company with the same qualifications make more money would not seem fair.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This goes both ways. Some job candidates make it sound like they work all the time and never miss a day during the interview and when they get hired something always comes up. Falsifying credentials would be another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it is fair to expect any hiring situation to be profitable. If a company was losing money, it may be fair to lower salaries. Would you be willing to take a pay cut if the company only made a 50% profit or for the CEO to take a pay raise? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;True story: Company brought a programmer from a poorer country to the USA. The programmer was put in a hotel room with a computer and a bed. They brought the guy food so he would keep coding, but the biggest reason was to prevent him from seeing the outside world in fear he would never return. They were right.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-02T02:37:55.180" />
  <row Id="23032" PostTypeId="2" ParentId="23021" CreationDate="2010-12-02T02:43:52.113" Score="1" ViewCount="" Body="&lt;p&gt;If you have the chance to add features or crush bugs to get your sales/customer satisfaction where you think it should be, do it. Once there are fewer new demands, you can balance with refactoring. At some point you have to make sure you're writing code people want. All things being equal, I'd rather throw away 100 hours of code than a 1000. Which is what you'll do if no one wants it.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-02T02:43:52.113" />
  <row Id="23033" PostTypeId="2" ParentId="23021" CreationDate="2010-12-02T02:47:50.370" Score="1" ViewCount="" Body="&lt;p&gt;As long as you are &lt;strong&gt;sure&lt;/strong&gt; you can meet deadline sure you can refactor all you want. However even if there is a bit of uncertainty better to stick with development and may be refactor only in modest incremental step.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-02T02:47:50.370" />
  <row Id="23034" PostTypeId="2" ParentId="21256" CreationDate="2010-12-02T02:53:50.630" Score="3" ViewCount="" Body="&lt;p&gt;I was in school when Java came out.  And my university almost changed overnight.  People were out right giddy at Java in academia.  I was a Jr when it came out, and by the time I was end of my senior year almost all academia was quickly moving to change their curriculum.  Not just at my university but everywhere.  It was really that fast.  Our second intro course was Pascal, and that quickly converted to Java in less than a year.  Why did they convert so fast?  Two big reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One academics want to teach the theory and algorithms.  Languages that facilitate you learning those algorithms that don't need a lot of experience to operate are best: Scheme, Python, Java, Smalltalk, etc.  The more the language gets in the way the more distracted you are from learning the real algorithms.  At the time scripting languages were some what second class citizens frowned upon by employers as cheap or quick and dirty.  Academics saw them as more copy cat, but what employers want has sway with academics too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That brings us to the next reason and that is employers want certain language experience, and at the time that was C/C++.  But, C/C++ takes a lot of experience to learn, and has a lot of corner cases and if ands or buts that are distracting.  We learned courses in C/C++ but not at the lower levels.  At the time employers were mad at CS programs because students didn't come out being C/C++ gurus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java was sweeping through the industry too almost as fast as academia.  So finally academia was getting what they wanted.  High level language that was easier to learn, and a language employers wanted.  It was all too perfect.  I had friend return to academia maybe 3 years after I left, and he said you could find a Java book in every CS subject.  That's how fast Java took over academia.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I think Java hasn't dumbed down CS I think it's actually been a good thing because students can study CS, participate in Open Source, and find work even while their in school.  I still believe you should study lots of languages as a CS student, and shouldn't just be Java.  But, if they all used python Joel would hate on python too.&lt;/p&gt;&#xA;" OwnerUserId="5592" LastActivityDate="2010-12-02T02:53:50.630" CommentCount="1" />
  <row Id="23035" PostTypeId="2" ParentId="22953" CreationDate="2010-12-02T02:56:28.137" Score="1" ViewCount="" Body="&lt;p&gt;Concern yourself with determining how much time can you devote to contract programming in general. Maybe keep track of it for a week and make adjustments until you can maintain a schedule.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Part of it will depend on how much overlap there is on what you're having to learn as you go along. You may spend more time tweaking something on Job A and it turns into a template for Job B. Not that difficult to switch from one to the other in this case, but dealing with a complex bug is different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find out what their expectations are on time-frames and don't try and guess what it will take to make them happy. If you think you are going to have a slow week (finals), let them know in advance. Mainly they will want to avoid unpleasant surprises.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-02T02:56:28.137" />
  <row Id="23036" PostTypeId="2" ParentId="22993" CreationDate="2010-12-02T03:33:01.893" Score="0" ViewCount="" Body="&lt;p&gt;For Systems you have to go low. You have to understand how fundamental stuff pointers, memory management, registers, system calls, even assembly and system architecture etc work. OOPS is at higher level of abstraction. So you will have to continuously switch your perspective or rather frame of abstraction. As long as you keep this in mind, I don't think it should be that difficult.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-02T03:33:01.893" />
  <row Id="23037" PostTypeId="2" ParentId="5513" CreationDate="2010-12-02T03:49:15.520" Score="0" ViewCount="" Body="&lt;p&gt;Well, Alice writes a blah. Then Bob gets the blah and makes some edits, and Carol gets the blah and makes some edits. These are versions. Then Dan comes in and tells Alice to make a bunch of changes. This is another version. The next day, Dan comes back and says that everything he said yesterday was a lie, and that management wants Carols version of the blah from Tuesday. Having Carols version and being able to find it easily is called version control.&lt;/p&gt;&#xA;" OwnerUserId="6883" LastActivityDate="2010-12-02T03:49:15.520" />
  <row Id="23038" PostTypeId="1" AcceptedAnswerId="23169" CreationDate="2010-12-02T04:02:27.000" Score="10" ViewCount="333" Body="&lt;p&gt;I'm talking about knowing an area of computer science or a language, and then forgetting it over the years. As I approach the 20 year mark, I'm finding myself realizing that I've forgotten more than I currently know. Is this bad? Is this good? Is there a way to solve this? And if not, which things are worth memorizing? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, we all know (I think) that Quicksort provides O(n*log n) in average cases, and we know it can balloon to O(N^2) when fed with the wrong inputs. How many of us, if asked without notice, could write a functioning Quicksort on the whiteboard or in their code editor of choice, without blinking? Is this useful? And if we can do it, does it count if it's a naive implementation, and not the optimized version that was engineered by Bentley &amp;amp; Company?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I give that as an example, but it could be anything. C++ has many dark corners, that if not used for some length of time, can be easily forgotten. And let's face it, there are many dark corners in C++ that one prefers to steer clear of.&lt;/p&gt;&#xA;" OwnerUserId="8983" LastActivityDate="2010-12-02T17:35:13.033" Title="Have you forgotten more than you know, and how much do you make a point of memorizing?" Tags="&lt;programming-languages&gt;&lt;programming&gt;&lt;programming-practices&gt;&lt;skills&gt;" AnswerCount="9" FavoriteCount="3" />
  <row Id="23039" PostTypeId="2" ParentId="23038" CreationDate="2010-12-02T04:22:27.140" Score="7" ViewCount="" Body="&lt;p&gt;Unless you are talking about answering questions on SO, then I think all that is &lt;em&gt;really&lt;/em&gt; useful is what is technologically current.  And currently, I don't think more than a handful of programmers (who are probably professors or developers for a fairly low-level language) are really concerned with needing to know the Quicksort algorithm by heart.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think we all tend to forget most of what we have learned, largely because most if it is actually unimportant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't really make a point of purposely memorizing something that I'm worried about forgetting, since most of what is right at the forefront of my mind is there due to necessity &amp;mdash; I can quickly recall what I really need, since needing it often is why it is there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There will be a few important things that you will forget, but I think that's what's brilliant about the way memory works.  We simply need the right trigger &amp;mdash; such as a little research to remember the basics &amp;mdash; and it will all come flooding back.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-02T04:54:21.883" LastActivityDate="2010-12-02T04:54:21.883" CommentCount="1" />
  <row Id="23040" PostTypeId="1" AcceptedAnswerId="23042" CreationDate="2010-12-02T04:35:47.560" Score="3" ViewCount="272" Body="&lt;p&gt;Hi&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What avenues are there for finding work without using recruiters. I find them useless.&lt;/p&gt;&#xA;" OwnerUserId="8392" LastActivityDate="2010-12-03T06:04:52.057" Title="Avenues for finding work other than recruiters" Tags="&lt;work&gt;&lt;recruiting&gt;" AnswerCount="7" CommentCount="3" />
  <row Id="23041" PostTypeId="2" ParentId="23040" CreationDate="2010-12-02T04:44:03.680" Score="3" ViewCount="" Body="&lt;p&gt;Contacts. Make some, user groups, past work mates etc.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-12-02T04:44:03.680" />
  <row Id="23042" PostTypeId="2" ParentId="23040" CreationDate="2010-12-02T04:56:55.273" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Use a search engine like &lt;a href=&quot;http://www.indeed.com/&quot; rel=&quot;nofollow&quot;&gt;Indeed&lt;/a&gt; or &lt;a href=&quot;http://www.simplyhired.com/&quot; rel=&quot;nofollow&quot;&gt;Simply Hired&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Follow social media sites; for example, Hacker News just release their monthly &lt;a href=&quot;http://news.ycombinator.com/item?id=1957538&quot; rel=&quot;nofollow&quot;&gt;Who's Hiring&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Look into a professional society like the ACM or IEEE-CS.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-02T04:56:55.273" />
  <row Id="23043" PostTypeId="2" ParentId="23040" CreationDate="2010-12-02T05:00:28.403" Score="2" ViewCount="" Body="&lt;p&gt;Recruiters arn't useless, you just need to find a good one and stick with them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To find a job, you need to basically just do what recruiters do. Go to user groups, pass out cards, get contacts, put your resume up on Dice, Monster, Craig's List. Post up on LinkedIn that you are looking for a job. Search, search search. Search Monster, search dice, search with Google, search open jobs at corporations that you know. Recruiters do this 8 hours a day, which is why they can find people jobs. To get by without them, you just need to do the same thing.&lt;/p&gt;&#xA;" OwnerUserId="7566" LastActivityDate="2010-12-02T05:00:28.403" />
  <row Id="23044" PostTypeId="2" ParentId="23038" CreationDate="2010-12-02T05:02:29.150" Score="4" ViewCount="" Body="&lt;p&gt;Don't worry; most students can't even write a functioning Quicksort. And besides, C gives you &lt;code&gt;qsort()&lt;/code&gt; for a reason!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are good enough at the basics, concentrate on continuing education, like picking-up a new language or tool, reading blogs and magazines, trying different application domains, etc. That will build on your current knowledge base and make you better in the long run.&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-02T05:02:29.150" CommentCount="2" />
  <row Id="23045" PostTypeId="2" ParentId="16326" CreationDate="2010-12-02T05:08:34.197" Score="0" ViewCount="" Body="&lt;p&gt;The formula that works when working for myself :&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;do a break down of todo's to a 1 - 4 hour granularity. I find that i'm usually accurate with these&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;the 'unknowns factor': Multiply by a factor of 2 raised to number of unknowns. I.e. if you are to develop a couchdb applicaiton, but do now know anything about javascript and http .. add 2 ^ 2 as mult factor.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;context-switch-factor : multiple by 1.5 if you will work in perfect environment( at home in study corner etc ) , or 2.5 if you will work in imprefect environment ( office / crowded place etc )&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I find this to be within +/- 20% of actual time taken !!&lt;/p&gt;&#xA;" OwnerUserId="993" LastActivityDate="2010-12-02T05:08:34.197" />
  <row Id="23047" PostTypeId="2" ParentId="21118" CreationDate="2010-12-02T05:25:48.567" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Much like when we listen to the news every morning in our car to know what is happening in our world.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes when presented with a newspaper, I like to skip to the funnies.  On those days, the clear choice is &lt;a href=&quot;http://thedailywtf.com&quot; rel=&quot;nofollow&quot;&gt;thedailywtf.com&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6847" LastActivityDate="2010-12-02T05:25:48.567" />
  <row Id="23048" PostTypeId="2" ParentId="23038" CreationDate="2010-12-02T05:26:35.580" Score="0" ViewCount="" Body="&lt;p&gt;Isn't that the life? I for example have forgotten BASIC, COBOL, FORTRAN, and even JAVA. I also forgot compiler (LR parser, RR parser), computer architecture (MPP, latency, disk cache), 8085 processor to name a few. And I don't worry about this. Currently I work in C++ and I know most of the things that needed for my day to day life.&lt;br&gt;&#xA;I can understand you worries about this. The worry I feel you have is what all to keep in head and keep in touch with and what things to forget. I will advise that don't worry about this. The actual thing is not what you forgot but how fast can you recover what you have forgotten when needed. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-02T05:26:35.580" />
  <row Id="23049" PostTypeId="2" ParentId="23038" CreationDate="2010-12-02T05:27:51.213" Score="3" ViewCount="" Body="&lt;p&gt;In the case of Quicksort, I think the relevant data would be to know whether a sorting method that you are calling implements quicksort, and if so, is there a chance that your data will be sorted when it is called. This is probably true of most algorithms: if you need to implement something that you vaguely remember, you can probably find pseudo-code and work from there. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From my perspective, the real issue is knowing how hard the problem you are dealing with is. If a client wants you to design a perfect algorithm to find optimal driving routes between locations (as a Real Estate agent once asked me to do), it's helpful to know that this is probably impossible with any useful number of locations... and to know you need to refresh your knowledge on the Traveling Salesman problem to come up with a good solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its probably also good to be able to recognize when you might want to apply an approach, like divide-and-conquer or dynamic programming, to a particular problem. I don't know how much fundamental algorithm design most jobs take, but these are good general techniques.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From automata, it's probably good to know when a problem you are looking at literally cannot possibly be solved with a regex (say, parentheses matching) and when it can, or when a simple stack machine might provide an elegant solution. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But that doesn't mean you have to be able to write one from scratch, it just means that you recognize how hard the problem is. &lt;/p&gt;&#xA;" OwnerUserId="6883" LastActivityDate="2010-12-02T05:27:51.213" CommentCount="1" />
  <row Id="23051" PostTypeId="2" ParentId="23040" CreationDate="2010-12-02T05:48:54.350" Score="1" ViewCount="" Body="&lt;p&gt;While most of the recruiters are useless indeed and will only waste your time, there are some agencies and individuals who do know what they do. You just need to recognize one when they contact you. This however may sometimes take years of you being bombarded by the clueless ones before you get a call from a professional recruiter. Don't cast them all away just yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad recruiters will scrape all jobs they see on the Monster and republish them as their own with the identifying information stripped out, so that it looks like the vacancy is theirs. They however would not have any relation to the company. Sometimes multiple agencies will compete to fill the position. Needless to say, if you resume gets &quot;forwarded&quot; by one (or many) of those, your chances of getting your foot on the doorstep of that company get eradicated since they would not want to get into trouble of maybe having to pay to one of the agency (if there are more who forwarded your resume it's over).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad recruiters will mass bombard you with irrelevant openings based on keywords they find in your resume. Say, if you ever were somehow connected to SAP (I wrote there my master thesis, for instance) and this word is in your resume, they will send you openings for an SAP expert.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good recruiters will put you forward to companies who don't publish their openings anywhere sometimes even on their website. They'll get feedback quickly, arrange an interview and support and coach you through the entire process. But it's rare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides recruiters professional online communities may generate some interesting leads. But that's not guaranteed in a timely manner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise it's mostly personal contacts, previous coworkers etc.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-02T06:03:35.563" LastActivityDate="2010-12-02T06:03:35.563" CommentCount="2" />
  <row Id="23052" PostTypeId="2" ParentId="21118" CreationDate="2010-12-02T05:55:41.937" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://technews.acm.org/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;ACM TechNews&lt;/strong&gt;&lt;/a&gt; - &quot;[P]roviding timely information for IT professionals three times a week.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I get TechNews through the email subscription and it is very well edited. Department Chairs read it religiously to stay abreast of all of the recent findings in the various IT and CS fields.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also related is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://queue.acm.org/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;ACM Queue&lt;/strong&gt;&lt;/a&gt;, which has original content (as opposed to links to news stories or press releases). Here's a sample of the stories: &quot;&lt;a href=&quot;http://queue.acm.org/detail.cfm?id=1889916&quot; rel=&quot;nofollow&quot;&gt;Virtualization: Blessing or Curse?&lt;/a&gt;&quot;, &quot;&lt;a href=&quot;http://queue.acm.org/detail.cfm?id=1871406&quot; rel=&quot;nofollow&quot;&gt;Sir, Please Step Away from the ASR-33!&lt;/a&gt;&quot;, and &quot;&lt;a href=&quot;http://queue.acm.org/detail.cfm?id=1217268&quot; rel=&quot;nofollow&quot;&gt;Realtime Garbage Collection&lt;/a&gt;&quot;. The articles are from researchers, practitioners, and scientists, as opposed to journalists, so you get much more of a straight-from-the-horse's-mouth experience.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-02T05:55:41.937" />
  <row Id="23053" PostTypeId="2" ParentId="21118" CreationDate="2010-12-02T05:56:01.783" Score="1" ViewCount="" Body="&lt;p&gt;For the possibility that someone might be helped by this, and even though sometimes he can be a douche, and at the risk of being torn apart by the non-Mac majority...&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;&lt;a href=&quot;http://daringfireball.net&quot; rel=&quot;nofollow&quot;&gt;daringfireball.net&lt;/a&gt; by John Gruber&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Now let explain why I like it.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The news is &lt;strong&gt;not&lt;/strong&gt; overly technical.  &lt;/li&gt;&#xA;&lt;li&gt;The amount of news is usually just about right. (I find Slashdot simply too overwhelming).&lt;/li&gt;&#xA;&lt;li&gt;Most of the posts are links to interesting articles around the web, with a small blurb about why it was interesting.&lt;/li&gt;&#xA;&lt;li&gt;The topics are very wide-ranging and usually looked at from a high-level point of view:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Phones/tablets (Apple, Google, Blackberry)&lt;/li&gt;&#xA;&lt;li&gt;Mobile apps, iOS/Android/WebOS, App Store philosophies, mobile web&lt;/li&gt;&#xA;&lt;li&gt;Developer stories and philosophies&lt;/li&gt;&#xA;&lt;li&gt;Closed vs. Open&lt;/li&gt;&#xA;&lt;li&gt;Apple/Google/Microsoft/other product and tech strategies&lt;/li&gt;&#xA;&lt;li&gt;Other tech stories (Google TV, Netflix, Wikileaks, to name a few)&lt;/li&gt;&#xA;&lt;li&gt;Big tech acquisitions&lt;/li&gt;&#xA;&lt;li&gt;Internet community philosophies&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think it fits your guidelines really well:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Site should help developers gain general knowledge about the industry &lt;strong&gt;√&lt;/strong&gt;, technologies &lt;strong&gt;√&lt;/strong&gt;, inventions &lt;strong&gt;√&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Target audience must be either programmmers &lt;strong&gt;√&lt;/strong&gt;, geeks &lt;strong&gt;√&lt;/strong&gt; or any other persons interested in technology &lt;strong&gt;√&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-02T05:56:01.783" CommentCount="2" />
  <row Id="23054" PostTypeId="2" ParentId="21256" CreationDate="2010-12-02T06:13:50.740" Score="0" ViewCount="" Body="&lt;p&gt;I've heard professors say they use java to teach because:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;uses the newer paradigm(s) (OOP, some generics)&lt;/li&gt;&#xA;&lt;li&gt;syntactically very simple, although quite verbose&lt;/li&gt;&#xA;&lt;li&gt;no advanced concepts such as higher order functions, closures, currying or continuations that may confuse people still learning basic concepts&lt;/li&gt;&#xA;&lt;li&gt;a lot of libraries written for it&lt;/li&gt;&#xA;&lt;li&gt;students don't get as bogged down in debugging memory leaks since there is a gc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Personally I'm glad I took CS at Berkeley when they used Scheme to teach.  Although I didn't realize how elegant of a language it really was until a few years later.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-02T06:13:50.740" />
  <row Id="23055" PostTypeId="2" ParentId="23038" CreationDate="2010-12-02T06:14:17.510" Score="5" ViewCount="" Body="&lt;p&gt;You will forget over the years what you don't use. It's normal. It's how our brain works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe an analogy with the garbage collector will make it clearer.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What you're currently engaged into the mind will keep in your memory for as long as you have references to those knowledge variables (you use them in practice)&lt;/li&gt;&#xA;&lt;li&gt;What knowledge you don't use any more will be promoted to growing generations of the garbage collector. The farther away (the generation is higher) the longer and harder will it be to retrieve this knowledge, to reload it into memory.&lt;/li&gt;&#xA;&lt;li&gt;The oldest knowledge will get disposed by the garbage collector. In fact, it will likely be persisted somewhere in the back corner of your brain, but you won't be able to address it (without certain meditation techniques or something).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What you can do to keep on to knowledge? Nothing except preventing it from getting promoted in the generations of the garbage collector by referencing it regularly. Meaning using it periodically. If you don't, you'll lose it eventually.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Should you be worried about it?&lt;/li&gt;&#xA;&lt;li&gt;No. It's natural and it's not your fault. Nothing you can do. There are other things in life that deserve worrying about.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-02T06:14:17.510" CommentCount="2" />
  <row Id="23056" PostTypeId="2" ParentId="21067" CreationDate="2010-12-02T06:34:51.847" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;proper closures&lt;/li&gt;&#xA;&lt;li&gt;continuations&lt;/li&gt;&#xA;&lt;li&gt;the ability to make variables lexical or dynamic (in terms of scoping)&lt;/li&gt;&#xA;&lt;li&gt;prototype based oo&lt;/li&gt;&#xA;&lt;li&gt;real macros&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;With the exception of prototype based oo I doubt any of these will make their way into languages they aren't already in because:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it makes the language implementation much more complex, slower and the perceived trade-off isn't worth it&lt;/li&gt;&#xA;&lt;li&gt;the implementor/designer doesn't like it&lt;/li&gt;&#xA;&lt;li&gt;the implementor/designer feels it's not worth the extra work&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-02T06:34:51.847" CommunityOwnedDate="2011-01-05T10:52:43.233" />
  <row Id="23057" PostTypeId="2" ParentId="23040" CreationDate="2010-12-02T06:43:39.507" Score="1" ViewCount="" Body="&lt;p&gt;As an Australian developer with about 7 years experience, I've always found jobs through seek or mycareer (including my current one). Had plenty of interviews with recruiters, never &lt;em&gt;ever&lt;/em&gt; got a job through one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nowadays it seems far more of the ads are by recruiters (maybe just at my current expected salary level?) but every 20 or so ads is by an actual company. I check these occasionally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm currently happily employed, but my long-term strategy is to build up my stackoverflow rep/profile, get a careers.stackoverflow profile (I have seen some aussie jobs listed there, give it time), and work on my blog. I'm hoping this will have some &quot;networking&quot; effects - people who know me from SO or the blog contacting me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If not, at least I can put my blog and SO profile on my resume when applying through normal methods. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope that helps.&lt;/p&gt;&#xA;" OwnerUserId="442" LastActivityDate="2010-12-02T06:43:39.507" CommentCount="1" />
  <row Id="23058" PostTypeId="2" ParentId="23040" CreationDate="2010-12-02T06:47:22.833" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Google Maps to look for local tech companies, the go to their websites looking for open positions. &lt;/li&gt;&#xA;&lt;li&gt;Language sites&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.python.org/community/jobs/&quot; rel=&quot;nofollow&quot;&gt;Python Job Board&lt;/a&gt;, &lt;a href=&quot;http://jobs.perl.com/&quot; rel=&quot;nofollow&quot;&gt;jobs.perl.com&lt;/a&gt;, etc&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Particular boards/websites are good depending on your location&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://craigslist.com/&quot; rel=&quot;nofollow&quot;&gt;craigslist.com&lt;/a&gt;, &lt;a href=&quot;http://monster.com/&quot; rel=&quot;nofollow&quot;&gt;monster.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Previous job mates, friends, etc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;BTW: I've never used a recruiter to find a job and I've been in 5 startups and 1 major corp.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-02T06:47:22.833" />
  <row Id="23059" PostTypeId="2" ParentId="12216" CreationDate="2010-12-02T07:11:22.280" Score="2" ViewCount="" Body="&lt;p&gt;I really wish that a good refactoring tool would exist for c++. This is a major showstopper for everybody that even tasted c# + refactor&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Feaures like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;.h and .cpp sync&lt;/li&gt;&#xA;&lt;li&gt;consistent formatting with predefined popular styles&lt;/li&gt;&#xA;&lt;li&gt;ability to define &lt;code&gt;[DebugerDisplay]&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;move refactorings&lt;/li&gt;&#xA;&lt;li&gt;all other goodies that are available in resharper.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4852" LastActivityDate="2010-12-02T07:11:22.280" CommunityOwnedDate="2011-05-26T08:44:03.797" CommentCount="1" />
  <row Id="23060" PostTypeId="1" AcceptedAnswerId="23061" CreationDate="2010-12-02T07:21:26.400" Score="0" ViewCount="286" Body="&lt;p&gt;I have read and tried to inject vulnerable sql queries to my application. It is not safe enough. I am simply using the Statement Connection for database validations and other insertion operations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is the preparedStatements safe? and moreover will there be any problem with this statement too?&lt;/p&gt;&#xA;" OwnerUserId="8241" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-03-14T23:28:15.473" LastActivityDate="2011-03-14T23:28:15.473" ClosedDate="2010-12-02T11:41:55.720" Title="Does the preparedStatement avoid SQL injection?" Tags="&lt;java&gt;&lt;sql&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="23061" PostTypeId="2" ParentId="23060" CreationDate="2010-12-02T07:31:08.637" Score="4" ViewCount="" Body="&lt;p&gt;Obviously it does not help if you still do your SQL queries by string concatenation. But if you do like the example I just &lt;a href=&quot;http://download.oracle.com/javase/1.4.2/docs/api/java/sql/PreparedStatement.html&quot; rel=&quot;nofollow&quot;&gt;fetched from the Java API&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;PreparedStatement pstmt = con.prepareStatement(&quot;UPDATE EMPLOYEES&#xA;        SET SALARY = ? WHERE ID = ?&quot;);&#xA;pstmt.setBigDecimal(1, 153833.00)&#xA;pstmt.setInt(2, 110592)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Then yes, you will be protected from SQL injection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, does this question not fit perfectly on stack overflow?&lt;/p&gt;&#xA;" OwnerUserId="3666" LastActivityDate="2010-12-02T07:31:08.637" CommentCount="0" />
  <row Id="23062" PostTypeId="2" ParentId="21067" CreationDate="2010-12-02T07:59:01.170" Score="4" ViewCount="" Body="&lt;p&gt;Build in immutability support for all fist class members , especially more robust than C++ const correctness&lt;/p&gt;&#xA;" OwnerUserId="2379" LastActivityDate="2010-12-02T07:59:01.170" CommunityOwnedDate="2011-01-05T10:52:43.233" />
  <row Id="23063" PostTypeId="2" ParentId="22953" CreationDate="2010-12-02T08:12:48.717" Score="2" ViewCount="" Body="&lt;p&gt;Though it's possible to do what you plan to do, it causes a lot of stress.&#xA;Things to look out:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Avoid doing on-call duty at all costs. Never become so important that one client might call you because they need you &lt;em&gt;right now&lt;/em&gt;, forcing you to either hurry there or connect to their server trough 3G+VPN while really should be doing something else, like working for the other client or learning for your college&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When you have to do estimates, be pessemistic. Generous timeframes help you when problems arise, at this job, the other or the college&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do as much as possible from home, to reduce travel time and be more flexible in when you work&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Take care of your health. Step down if you notice early symptoms of burn-out.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Avoid doing on-call duty at all costs. It bears repeating.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-02T08:12:48.717" />
  <row Id="23064" PostTypeId="1" CreationDate="2010-12-02T08:21:13.813" Score="10" ViewCount="482" Body="&lt;p&gt;As most people agree, &lt;a href=&quot;http://programmers.stackexchange.com/questions/13623/does-giving-a-developer-a-slower-development-machine-result-in-faster-more-effici&quot;&gt;encouraging developers to make  fast code by giving them slow machines is not a good idea&lt;/a&gt;. But there's a point in that question. My dev machine is fast, and so I  occasionally write code that's disturbingly inefficient, but that only becomes apparent when running it on other people's machines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some good ways to temporarily slow down a turbocharged dev machine? The notion of &quot;speed&quot; includes several factors, for example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;CPU clock frequency.&lt;/li&gt;&#xA;&lt;li&gt;Amount of CPU cores.&lt;/li&gt;&#xA;&lt;li&gt;Amount of memory and processor cache.&lt;/li&gt;&#xA;&lt;li&gt;Speed of various buses.&lt;/li&gt;&#xA;&lt;li&gt;Disk I/O.&lt;/li&gt;&#xA;&lt;li&gt;GPU.&lt;/li&gt;&#xA;&lt;li&gt;etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-12-02T09:03:22.997" LastActivityDate="2010-12-02T22:35:26.647" Title="How to slow down your computer (for testing purposes)?" Tags="&lt;computer&gt;&lt;efficiency&gt;&lt;slow&gt;" AnswerCount="5" CommentCount="11" FavoriteCount="2" />
  <row Id="23066" PostTypeId="2" ParentId="22933" CreationDate="2010-12-02T08:27:12.293" Score="1" ViewCount="" Body="&lt;p&gt;If your project is a software development project then a gantt chart won't be very helpful and will mostly be a waste of time. They aren't designed for the fluid nature of software development, ie.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Tasks aren't usually order dependent. They can be done in any order.&lt;/li&gt;&#xA;&lt;li&gt;The order of the tasks can alter the time required to complete the task.&lt;/li&gt;&#xA;&lt;li&gt;Tasks can spawn other tasks, eg bugs&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The upshot is you will spend more time updating the plan than doing the work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just manage your requirements and everything else will take care of itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;YMMV&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-12-02T08:27:12.293" />
  <row Id="23067" PostTypeId="2" ParentId="23064" CreationDate="2010-12-02T08:33:14.727" Score="8" ViewCount="" Body="&lt;p&gt;Install &lt;a href=&quot;http://www.microsoft.com/windows/virtual-pc/&quot; rel=&quot;nofollow&quot;&gt;Virtual PC&lt;/a&gt;, &lt;a href=&quot;http://technet.microsoft.com/en-us/library/bb740856.aspx&quot; rel=&quot;nofollow&quot;&gt;create a hardware profile&lt;/a&gt;, &lt;a href=&quot;http://technet.microsoft.com/en-us/library/bb740884.aspx&quot; rel=&quot;nofollow&quot;&gt;create a virtual machine&lt;/a&gt; and start playing :)&lt;/p&gt;&#xA;" OwnerUserId="8985" LastActivityDate="2010-12-02T08:33:14.727" />
  <row Id="23068" PostTypeId="2" ParentId="23064" CreationDate="2010-12-02T08:37:45.590" Score="24" ViewCount="" Body="&lt;p&gt;Run your tests in a virtual machine with limited memory and only one core.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The old machines people still may have now are mostly Pentium 4 era things. That's not that unrealistic - I'm using one myself right now. Single core performance on many current PCs normally isn't that much better, and can be worse. RAM performance is more important than CPU performance for many things anyway, and by limiting a little more harshly than for an old 1GB P4, you compensate for that a bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Failing that, if you're willing to spend a bit, buy a netbook. Run the tests on that.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2010-12-02T08:37:45.590" CommentCount="5" />
  <row Id="23069" PostTypeId="2" ParentId="23038" CreationDate="2010-12-02T09:05:15.523" Score="0" ViewCount="" Body="&lt;p&gt;Forgetting is important for the brain, since it makes it easier to quickly retrieve the most relevant information for today's world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Outsource your knowledge: write things down or write down where to lookup special information if needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For C++, remember &lt;a href=&quot;http://www.parashift.com/c++-faq-lite/&quot; rel=&quot;nofollow&quot;&gt;http://www.parashift.com/c++-faq-lite/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-12-02T09:20:28.053" LastActivityDate="2010-12-02T09:20:28.053" CommentCount="1" />
  <row Id="23070" PostTypeId="2" ParentId="23019" CreationDate="2010-12-02T09:05:23.027" Score="6" ViewCount="" Body="&lt;p&gt;Major.Minor.Revision&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Major. Big change, new features, breaks compatibility, stuff you want to charge extra for.&lt;/li&gt;&#xA;&lt;li&gt;Minor. New features that you can give away. Doesn't break stuff.&lt;/li&gt;&#xA;&lt;li&gt;Revision. Bug fixes.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-12-02T09:05:23.027" />
  <row Id="23071" PostTypeId="2" ParentId="21067" CreationDate="2010-12-02T09:05:37.113" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Trait_%28computer_science%29&quot; rel=&quot;nofollow&quot;&gt;Traits&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8601" LastActivityDate="2010-12-02T09:05:37.113" CommunityOwnedDate="2011-01-05T10:52:43.233" />
  <row Id="23074" PostTypeId="2" ParentId="22769" CreationDate="2010-12-02T09:12:18.153" Score="0" ViewCount="" Body="&lt;p&gt;One thing to take into account is the turn around time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the last five years or so, I've mainly developed web applications in java (JSF, Seam, etc.). Recently I got a new job, and we're using Perl (with Catalyst and Moose). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm way more productive in Perl, than I was in Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not needing to compile and (hot)deploy, is one reason. I also find that writing use cases is easier, as it can be done in a more iterative way. And the frameworks in Java seem to be unnecessary complex, at least for the projects I've been involved in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess the number of bugs in my Perl code is more or less the same as the number of bugs in my Java code, it might even be higher. But, I find et easier and faster to find and fix these bugs.&lt;/p&gt;&#xA;" OwnerUserId="2725" LastActivityDate="2010-12-02T09:12:18.153" />
  <row Id="23075" PostTypeId="1" AcceptedAnswerId="23082" CreationDate="2010-12-02T09:20:42.090" Score="44" ViewCount="2184" Body="&lt;ul&gt;&#xA;&lt;li&gt;Your project failed.&lt;/li&gt;&#xA;&lt;li&gt;You failed 10 interviews in a row.&lt;/li&gt;&#xA;&lt;li&gt;What you have spent days coding was rejected by your team.&lt;/li&gt;&#xA;&lt;li&gt;Nobody listens to your ideas in your company.&lt;/li&gt;&#xA;&lt;li&gt;The design pattern you introduced with force in your team created a mess.&lt;/li&gt;&#xA;&lt;li&gt;Your colleague (you don't like) got the promotion that you wanted to get.&lt;/li&gt;&#xA;&lt;li&gt;You deleted the production database.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That's just few examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would be your advice to mister average developer that in most cases will be badly affected?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: I'm looking for general strategies. I'm not interested in calming down the symptoms.&#xA;&lt;strong&gt;EDIT2&lt;/strong&gt;: I don't want to know who is the potential responsible for the situation. I would like to know how an individual should react to a failure. &lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-02T12:55:37.970" LastActivityDate="2010-12-04T19:38:26.147" Title="What is the coolest way to handle a failure?" Tags="&lt;career&gt;&lt;advice&gt;&lt;mistakes&gt;&lt;failure&gt;" AnswerCount="24" CommentCount="18" FavoriteCount="17" />
  <row Id="23077" PostTypeId="1" AcceptedAnswerId="23081" CreationDate="2010-12-02T09:35:32.653" Score="7" ViewCount="590" Body="&lt;p&gt;Have a conversation with a friend who graduated with a Film &amp;amp; Media degree and has yet to land a job.  It was his opinion that working in IT was easy, and that he wants a challenging job.  I know we do tend to have a lot of support in IT (stackoverflow etc) but is it really easy?  Could anyone become a software professional given enough time?&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-12-03T20:30:23.653" Title="Is IT considered easy?" Tags="&lt;career&gt;&lt;profession&gt;&lt;industry&gt;&lt;professional-disease&gt;" AnswerCount="13" CommentCount="7" FavoriteCount="1" />
  <row Id="23078" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T09:36:32.360" Score="1" ViewCount="" Body="&lt;p&gt;Find a development project you can do at home, in a way that will stimulate and interest you. Ideally utilising some other hobby as well as development. Mobile phone app development?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's good if you're feel like you've lost your edge, or no-one apprechiates you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's just something that &quot;just happens&quot;, like deleting a big database - meh, just get drunk - it's never as bad as it seems, that's what DB backups are for. No backups? Well, that's hardly your fault, that's the failings of the DBA. You are the DBA? Oh...&lt;/p&gt;&#xA;" OwnerUserId="550" LastActivityDate="2010-12-02T09:36:32.360" />
  <row Id="23079" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T09:45:09.747" Score="11" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Stay calm - don't panic, it won't make anything better&lt;/li&gt;&#xA;&lt;li&gt;Damage control - save what can still be saved&lt;/li&gt;&#xA;&lt;li&gt;Learn from your mistakes - doing the wrong thing again probably won't make it work&lt;/li&gt;&#xA;&lt;li&gt;Consider a fresh start - start your next attempt without a backpack of disappointments and guilty feelings&lt;/li&gt;&#xA;&lt;li&gt;Look at bigger failures - &lt;a href=&quot;http://en.wikipedia.org/wiki/Ariane_5_Flight_501&quot; rel=&quot;nofollow&quot;&gt;compared to Ariane 5's first flight&lt;/a&gt;, your failure is negligible&lt;/li&gt;&#xA;&lt;li&gt;Consult a psychotherapist if you can't handle it alone&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-02T15:58:18.960" LastActivityDate="2010-12-02T15:58:18.960" CommentCount="6" />
  <row Id="23080" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T09:45:18.360" Score="42" ViewCount="" Body="&lt;p&gt;This is quite a general question, so I can only provide a general answer.  This should work for each case mentioned by the OP:&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Go to the pub&lt;/h1&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-12-02T09:45:18.360" CommentCount="12" />
  <row Id="23081" PostTypeId="2" ParentId="23077" CreationDate="2010-12-02T09:50:29.930" Score="19" ViewCount="" Body="&lt;p&gt;My suspicion is that his comment is coming from a position of ignorance and that it's just an off hand line but as with most sweeping statements there are cases where it's true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone with a decent basic intelligence level could get a job in IT and do OK for themselves.  I'm not talking spectacular but they'd survive and make a living - there's plenty of what we do which isn't rocket surgery and if they're willing to apply themselves and work hard then someone with degree level intelligence will cope.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But that's the same as anything else.  I've got friends who work in TV and most of their job isn't intellectually difficult, it's just graft (and dealing with idiots - there are a lot of idiots in TV, really spectacular level idiots).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In that sense a career in IT is (like most careers) as challenging as you choose to make it or as your ability allows.  There are easier and harder areas, higher and lower pressure employers and you can drive yourself to be the best or you can do just enough to get by.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance there is a reasonable case that Microsoft Windows is, by most measures of complexity, the most complex feat of engineering in human history.  I'm guessing there was a degree of challenge there and that the people at Apple or Google are similarly being challenged to a massive degree.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand those working in desktop support for some large companies or local governments where so long as the mail server is kept running and things happen eventually that's considered fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of the amount of support we get (if the crux of his argument is that it's all on the internet) ask him when he was asked to do coursework at university, how come he didn't always get 100%?  After all he had access to the internet, the library and other resources which between them provide access to pretty much every film or TV show and all the valid criticism ever published.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The answer is that these things are pretty much always more than just pasting things together and IT is no different.  Anyone who says otherwise is simply ignorant of how things work.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If he genuinely believes that and is unwilling to listen to suggestions otherwise my suggestion would be not to engage with him on this subject as it's likely to be a frustrating and fruitless exercise.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-02T12:14:55.633" LastActivityDate="2010-12-02T12:14:55.633" CommentCount="9" />
  <row Id="23082" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T09:51:39.303" Score="65" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Your project failed.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Software development is highly prone to project failures, depending on the severity this is best handled by management. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;You failed 10 interviews in a row.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You are only X failures away from success. If you &lt;strong&gt;&lt;em&gt;really want&lt;/em&gt;&lt;/strong&gt; that career you will never give up.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;What you have spend coding days on was rejected by your team.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Save your work (for later). Two possibilities (a) It sucks, the fact multiple people respond the same way is indication of this (b) It's truly genius work, but far ahead of what people are use to or can understand. People generally do not like what they do not understand. Perhaps  its better to show it when the time is right OR in a different place with a different &quot;Culture&quot;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Nobody listen to your ideas in your company.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Its probably a bad idea, OR the culture is not aligned with your thinking. Either move to a place that supports your culture or critically evaluate your idea again (objectively without your own bias) -&gt; is my idea really that good? &amp;lt;- &lt;strong&gt;&lt;em&gt;Kill thy ego&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;The design pattern you introduced with force in your team created a mess.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Be honest, you tried your best but it did not turn out how you planned it. It may be better to start again or learn from the mistakes made in the design as a team and move forward.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;You deleted the production database.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This should not be a problem, the Infrastructure team should have backups in place. If not what kind of company are you working for?&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-02T09:51:39.303" CommentCount="6" />
  <row Id="23084" PostTypeId="2" ParentId="23021" CreationDate="2010-12-02T10:02:28.437" Score="2" ViewCount="" Body="&lt;p&gt;Refactor early and often! The time you &quot;save&quot; on not doing it is spent many times over trying to hack in the next feature and searching for bugs in overly complex or chaotic code.&lt;/p&gt;&#xA;" OwnerUserId="8718" LastActivityDate="2010-12-02T10:02:28.437" />
  <row Id="23085" PostTypeId="2" ParentId="23021" CreationDate="2010-12-02T10:07:43.987" Score="4" ViewCount="" Body="&lt;p&gt;I think the essential point is to &lt;strong&gt;keep interfaces clean&lt;/strong&gt;. You can always refactor or even rewrite module / class / whatever implementations later on, as long as the communication layers between them are sane. Spend some time figuring out what's easy to change later on, and what's not. Make the latter right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is consistent with the spirit of TDD. To write good tests, you need a good interface to test against. How messy it's behind the scenes at the moment is not that important, because you can improve it later.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-12-02T10:23:01.837" LastActivityDate="2010-12-02T10:23:01.837" />
  <row Id="23086" PostTypeId="2" ParentId="22853" CreationDate="2010-12-02T10:13:42.897" Score="0" ViewCount="" Body="&lt;p&gt;Since my late daughter who suffered of Cerbral Palsy and a unique chromosome aberration CRACKED the NEWCLEARCODE as I call the CIPHER that heleped us to communicate with each other!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Madeleine left this world in 1993 at the age of 9 and her &quot;teachings&quot; stll flowing...so right now I´ve an enormous amount of CIPHERS ready to be programmed!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The entire purpose is to share Meadeleine´s Communication System with CHILDREN with or with out dis&quot;ABILITIES&quot;!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After programming Madeleine´s special D-signed &quot;HANDY&quot; keyboard AID, the interaction among CHILDREN  CODING their own OUTATIONS on behlaf of their PEERS in need and us adults who by DECODING the Children quotes about Peace will challenge Google and all possible companies to drop a &quot;PENNY&quot; for every single DECODED CHILD`S QUOTE!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would be great to work with &quot;HUMANITARIAN&quot; programmers to make this dream of feeding the poor that my daughter at the age of 5 years old wrote on my hand by applying our own special way to communicate!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope all of you non profit programmers would love to be a part of this &quot;Lets´RIGHT PEACE &quot;PLAECE PLAN...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looking froward to hear from you patricia.gronblad@gmail.com&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Blessings from a cold but wonderful country called SWEDEN!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-02T10:13:42.897" />
  <row Id="23087" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T10:24:55.300" Score="4" ViewCount="" Body="&lt;p&gt;Take a rest. Think what were your mistakes. The world and objective reality are what they are. You change them, or they change you. Think what you can change to not do the mistakes you have done, if any. If you think you haven't had mistakes (I would doubt it), think again. Not all mistakes are yours, but some of them are.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-02T10:24:55.300" />
  <row Id="23088" PostTypeId="2" ParentId="23021" CreationDate="2010-12-02T10:25:29.360" Score="0" ViewCount="" Body="&lt;p&gt;If the bad design you want to refactor really hurts you, you better fix it now than create more code that depends on it. Refactoring later would be more difficult and more expensive; chances are you won't be able to do it anymore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if your only issue is the uglyness, you might want to complete your software first, because hardly anything beats &lt;em&gt;getting things done&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-02T10:25:29.360" />
  <row Id="23089" PostTypeId="2" ParentId="22404" CreationDate="2010-12-02T10:25:56.780" Score="6" ViewCount="" Body="&lt;p&gt;Generally I go something like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Sketch out top level.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Iterate over the following steps for each &quot;stripe&quot; of the program's functionality:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Database layer.&lt;/li&gt;&#xA;&lt;li&gt;Complicated stuff, e.g. calling unusual APIs, or multithreading.&lt;/li&gt;&#xA;&lt;li&gt;UI.&lt;/li&gt;&#xA;&lt;li&gt;Glue between db and UI.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Examples of stripes would be a report, or an input form, or a configuration screen, or a data extract.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And finally:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Tie stripes together.&lt;/li&gt;&#xA;&lt;li&gt;Refine UI.&lt;/li&gt;&#xA;&lt;li&gt;Performance.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So it's basically get an overall view, then work from the bottom up, then refine from the top down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A common exception to this order is getting into a concrete piece of work in order to keep making progress, so for example if I'm tired of fiddling with CSS on a web page, it might be better to jump ahead and do the database work for the next stripe.&lt;/p&gt;&#xA;" OwnerUserId="6861" LastActivityDate="2010-12-02T10:25:56.780" CommunityOwnedDate="2011-04-11T04:21:44.680" CommentCount="1" />
  <row Id="23090" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T10:26:10.467" Score="9" ViewCount="" Body="&lt;p&gt;You build something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me (I don't think it's right for everybody), building something (comics, drawings, little games, anything) is like building a bit of confidence to get back to fighting failure. It might also be a good way to express your anger or bitterness or any feelings relative to the failure, but in a &quot;constructive&quot; way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That works for me anyway.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastEditorUserId="1921" LastEditorDisplayName="" LastEditDate="2010-12-02T10:37:43.363" LastActivityDate="2010-12-02T10:37:43.363" />
  <row Id="23091" PostTypeId="2" ParentId="23038" CreationDate="2010-12-02T10:30:25.223" Score="2" ViewCount="" Body="&lt;p&gt;I could write quicksort, because I'm pretty good in memorizing algorithms, but there are countless other things I've forgotten. Sometimes, I look at old source code and ask myself: Was this really me who wrote this? I think I've forgotten more programming languages than I still know.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-02T10:30:25.223" />
  <row Id="23092" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T10:32:16.150" Score="10" ViewCount="" Body="&lt;p&gt;Try to be honest about the facts, be prepared to eat humble pie, and don't take it personally. Probably the worst thing I've seen done about failure is taking it personally.&lt;/p&gt;&#xA;" OwnerUserId="6861" LastActivityDate="2010-12-02T10:32:16.150" CommentCount="1" />
  <row Id="23093" PostTypeId="2" ParentId="23077" CreationDate="2010-12-02T10:34:04.130" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is IT considered easy?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes, IME many people don't understand the processes behind the creation and/or deployment of software. To them, they specify what they think they want and it just magically happens, so it can't be that hard, can it?..... &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;It was his opinion that working in IT was easy&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In reality, IT is very, very difficult to do well. As ChrisF alludes to above, you just have to look at the number of overbudget, under-performing (and completely failed) IT projects at every level of business/government to see this.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Could anyone become a software professional given enough time?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;A large percentage of people could reach an average level of competency if they applied themselves. However, I believe it does take a certain mindset to be a truly capable and successful developer, which not everyone would be willing to work to obtain (assuming that you're not one of the lucky ones who is just naturally brilliant!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IT is also a big field which encompasses everything from first line desktop support to highly theoretical algorithm creation and bleeding edge software development. Peoples perceptions of difficulty are usually based around what they have experienced, which is usually installing windows for a friend or the support guy at the end of the telephone telling them to &quot;turn it off and on again&quot;. &lt;/p&gt;&#xA;" OwnerUserId="8916" LastActivityDate="2010-12-02T10:34:04.130" />
  <row Id="23094" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T10:40:41.803" Score="6" ViewCount="" Body="&lt;p&gt;Admit the failure and analyse why it happened in a progressive (and ideally) non blame way. Your failures are handled easier by others if you are open and honest about why they happened and what you are doing to stop them happening again. If others handle them easier, you will find them easier to cope with within yourself.&lt;/p&gt;&#xA;" OwnerUserId="7092" LastActivityDate="2010-12-02T10:40:41.803" CommentCount="1" />
  <row Id="23095" PostTypeId="2" ParentId="23077" CreationDate="2010-12-02T10:45:50.100" Score="1" ViewCount="" Body="&lt;p&gt;There are some easy jobs in IT, but many jobs are pretty difficult. That's why we make a lot of money. Nobody gets 100K+ p.a. for an easy job.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-02T10:45:50.100" />
  <row Id="23096" PostTypeId="2" ParentId="5513" CreationDate="2010-12-02T10:46:10.813" Score="0" ViewCount="" Body="&lt;p&gt;My guess is that most people have a number of things to care about, so versioning doesn't make it to the top of their list. It's like insurance, the payback is of low probability and it's not free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the project artifacts that you outline, if there is only one person involved (e.g. a BA's document describing a calculation), they may quite reasonably assess the payback of keeping old versions to be zero.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Requiring more careful versioning of these kinds of things may introduce a hostile element into a project's atmosphere, as the reasons for doing it may be kind of adversarial, i.e. people are expecting to have arguments about old vs. new versions, so they want the old versions to be available as proof.&lt;/p&gt;&#xA;" OwnerUserId="6861" LastActivityDate="2010-12-02T10:46:10.813" />
  <row Id="23097" PostTypeId="2" ParentId="22769" CreationDate="2010-12-02T11:02:00.603" Score="2" ViewCount="" Body="&lt;p&gt;Since Excel is the most widely used DSL, I'll go with Excel. (excluding VBA of course)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It fits the bill:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's always easy to reproduce (here's a spreadsheet - it's not working)&lt;/li&gt;&#xA;&lt;li&gt;It's pretty easy to find the bug, as it's totally &quot;functional&quot; - start with the cell that's wrong and trace back all of its dependencies.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-12-02T11:02:00.603" />
  <row Id="23098" PostTypeId="1" CreationDate="2010-12-02T11:12:25.907" Score="2" ViewCount="365" Body="&lt;p&gt;Hey Guys,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm creating a RESTfull service for a tree-like resource structure and was wondering what the best URL structure would be?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have three requirements:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;be able to get a collection of root&#xA;resources &lt;/li&gt;&#xA;&lt;li&gt;be able to get an&#xA;individual resource &lt;/li&gt;&#xA;&lt;li&gt;be able to get a&#xA;collection of child resources&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;My current thought is:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/rest/documents&#xA;/rest/documents/{id}&#xA;/rest/documents/{id}/documents&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I was also thinking of going the singular / plural routes to denote lists or individual elements, but I know I'm going to have a resource that is the same plural as it is singular, so decided against this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anybody have any thoughts on the above? or have a different / better way of structuring this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many thanks&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Matt&lt;/p&gt;&#xA;" OwnerUserId="8999" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-02T11:42:17.213" LastActivityDate="2010-12-02T12:00:50.597" Title="What's the best RESTful URL structure for a recursive resource?" Tags="&lt;best-practices&gt;&lt;web-services&gt;" AnswerCount="1" CommentCount="5" FavoriteCount="1" />
  <row Id="23099" PostTypeId="2" ParentId="21756" CreationDate="2010-12-02T11:14:08.230" Score="2" ViewCount="" Body="&lt;p&gt;&lt;b&gt;English&lt;/b&gt; (if it's not your mother tongue).&lt;/p&gt;&#xA;" OwnerUserId="1095" LastActivityDate="2010-12-02T11:14:08.230" />
  <row Id="23100" PostTypeId="2" ParentId="22404" CreationDate="2010-12-02T11:24:52.860" Score="1" ViewCount="" Body="&lt;p&gt;The project I am working on is creating templated user controls for Silverlight and WPF. With this project, my preferred starting point has been the GUI design. The reason for this is simple, this is what our users see and use to gauge how well we are doing in our development process. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, we have also be slowly breaking up our development teams in to smaller and smaller groups that work on different layers. So most of my work has be with the GUI, so I am probably biased.&lt;/p&gt;&#xA;" OwnerUserId="7446" LastActivityDate="2010-12-02T11:24:52.860" CommunityOwnedDate="2011-04-11T04:21:44.680" CommentCount="2" />
  <row Id="23102" PostTypeId="2" ParentId="23064" CreationDate="2010-12-02T11:34:04.757" Score="9" ViewCount="" Body="&lt;p&gt;The way to spot significant algorithm inefficiency is to profile you code.  The way to catch memory overuse is to first understand how much memory your target uses have, and then design accordingly, and regularly test in that environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are writing threaded code, testing on multiple machines with differing CPU speeds will help highlight specific timing related bugs in your thread handling, but aggressive unit testing of thread logic is a must.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-12-02T11:34:04.757" CommentCount="4" />
  <row Id="23103" PostTypeId="2" ParentId="23064" CreationDate="2010-12-02T11:42:19.590" Score="8" ViewCount="" Body="&lt;p&gt;Anything that you do to slow down your machine would probably be a hack.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are a couple of suggestions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Use virtual machines&lt;/li&gt;&#xA;&lt;li&gt;Profile the code on your machine, looking for bottlenecks&lt;/li&gt;&#xA;&lt;li&gt;Use an old machine for &quot;performance testing&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7446" LastActivityDate="2010-12-02T11:42:19.590" CommentCount="3" />
  <row Id="23104" PostTypeId="2" ParentId="22404" CreationDate="2010-12-02T11:46:36.600" Score="1" ViewCount="" Body="&lt;p&gt;It's a nice question, but I believe the answer is pretty much dependent on what exactly you're programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me it's really an iterative process. Now I have to admit that the GUI part is more or less omitted in the applications I write. Most of it is command-line interface. But this demands a design as well, to get the parameters as logically as possible into the main functions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, I neither go top-down or bottom-up, I go concrete-abstract-concrete. The first part of programming is actually on the drawing board, creating every class I believe is necessary. Then I start to create one, including the functionality. While doing so, I often find pieces of code that can either be used by other classes, or classes that could be adjusted so they could fit multiple objects (generic classes so to speak). They go next. When that is done, I concretize the inheriting classes and specific functionality, using the generics I've made earlier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the meantime, all of this has to be checked, so I need a crude interface for testing. This crude interface forms the basis of the final interface, and again points out which functionalities I need extra. So back to the classes and the process starts all over again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;During this process, I keep a clear record of what I've done, and what I believe I still have to do. &quot;Done&quot; can mean two things : functioning but can be optimized, and finished. &quot;To do&quot; can mean to things : optimize or create. So I can't really give an order in which I do things, as the whole project is continuously reshaped.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding the reshaping, off course I don't keep on fiddling around with new ideas. Every step has only two reasons to be taken: 1) easy of use and 2) reduction of calculation time. As I work on scientific applications involving huge datasets and considerable calculation time, optimalization is really an issue that shouldn't be taken lightly.&lt;/p&gt;&#xA;" OwnerUserId="7268" LastActivityDate="2010-12-02T11:46:36.600" CommunityOwnedDate="2011-04-11T04:21:44.680" />
  <row Id="23105" PostTypeId="2" ParentId="23077" CreationDate="2010-12-02T11:49:52.933" Score="4" ViewCount="" Body="&lt;p&gt;If you mean software developer, then &lt;em&gt;no&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a lot of abstraction you need to be able to understand and cope with in your head, to write anything non-trivial.  Recursion and pointers are the usual watershed topics.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-02T11:49:52.933" />
  <row Id="23106" PostTypeId="2" ParentId="5513" CreationDate="2010-12-02T11:53:01.520" Score="2" ViewCount="" Body="&lt;p&gt;You mention that even simple document versioning is giving people difficulties, so maybe you're not explaining it well, or your team are not that bright.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our developers use git on the commandline for versioning, and once they're up the learning curve, they all cope fine with it.  I haven't bothered trying to explain git to non-technical staff because with them there is much less direct collaboration on individual documents - for this stuff we use DropBox, and I've not seen anyone struggle yet.&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-12-02T11:53:01.520" />
  <row Id="23107" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T11:55:56.343" Score="23" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;They're not failures - they are experiences&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You learn and grow from your experiences by reflecting on how they made you feel and if you want more of that feeling. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's a bad experience (like that list you offered) then the accompanying bad feeling is probably something you'll want to avoid (assuming you not so thick-skinned that you didn't care about the impact of your actions). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall, don't get too involved in comparing yourself to others, &lt;em&gt;they're having just as much trouble working through it all as you are&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-02T11:55:56.343" CommentCount="8" />
  <row Id="23108" PostTypeId="2" ParentId="22070" CreationDate="2010-12-02T11:56:25.183" Score="2" ViewCount="" Body="&lt;p&gt;This is just a general idea and syntax:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (cond)&#xA;   //do something&#xA;else (cond)&#xA;   //do something&#xA;also (cond)&#xA;   //do something&#xA;else&#xA;   //do something&#xA;end&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;ALSO condition is always evaluated. ELSE works as usual.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It works for case too. Probably it is a good way to eliminate break statement:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;case (exp)&#xA;   also (const)&#xA;      //do something&#xA;   else (const)&#xA;      //do something&#xA;   also (const)&#xA;      //do something&#xA;   else&#xA;      //do something&#xA;end&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;can be read as:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;switch (exp)&#xA;   case (const)&#xA;      //do something&#xA;   case (const)&#xA;      //do something&#xA;      break&#xA;   case (const)&#xA;      //do something&#xA;   default&#xA;      //do something&#xA;end&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I don't know if this is useful or simple to read but it's an example.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-12-02T11:56:25.183" />
  <row Id="23109" PostTypeId="2" ParentId="23098" CreationDate="2010-12-02T12:00:50.597" Score="1" ViewCount="" Body="&lt;p&gt;Something like this perhaps:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/rest/{rootEntity}/Item/{leafEntity}/{id}&#xA;/rest/{entity}/ItemList&#xA;/rest/{entity}/ItemList/{leafEntity}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;where {rootEntity} is the starting point of your collection, {leafEntity} is any named leaf node within your tree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could append a few parameters any of the above to select, say, Latest or All or something.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-02T12:00:50.597" />
  <row Id="23110" PostTypeId="2" ParentId="22404" CreationDate="2010-12-02T12:01:27.617" Score="4" ViewCount="" Body="&lt;h2&gt;First I dream it...&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Then I spend time, simulating it my head. Here in the &lt;strong&gt;&lt;em&gt;playground of my mind&lt;/em&gt;&lt;/strong&gt; I'm free to explore it from multiple angles, until I have convinced myself of the solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I write down the solutions briefly (high level designs) as rough sketches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I then create it, iteratively grow it over time piece by piece until the dream a becomes reality.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Dream it -&gt; Design it -&gt; Grow a design into Reality.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-02T12:01:27.617" CommunityOwnedDate="2011-04-11T04:21:44.680" CommentCount="3" />
  <row Id="23111" PostTypeId="2" ParentId="23077" CreationDate="2010-12-02T12:19:27.680" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It comes down to relative complexity&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your friend has a perception that IT is not as complex as media. Obviously he is mis-guided and just a little questioning would immediately reveal his lack of knowledge. &quot;So, my friend, how do you think Photoshop works?&quot; would be an interesting starting point. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can it be said that IT is more complex than other disciplines? Well, more than some (tree surgery) and less than others (mathematics). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to whether or not anyone could become a developer given enough time, well, yes they could. the common adage is that it takes &lt;a href=&quot;http://norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;10,000 hours to master a discipline&lt;/a&gt;. How likely they are to stick at it for that length of time is another matter entirely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Current user interface design favours simplicity over complexity&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, as developers, &lt;em&gt;we should be pleased if people think it's easy&lt;/em&gt;. It means we've made systems that our users can work with on a day to day basis that shield them from unnecessary complexity in their lives. &lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-02T13:10:15.250" LastActivityDate="2010-12-02T13:10:15.250" CommentCount="2" />
  <row Id="23112" PostTypeId="2" ParentId="23077" CreationDate="2010-12-02T12:27:42.297" Score="2" ViewCount="" Body="&lt;p&gt;From the outside, almost everything is considered either easy or magic.  If one lacks the knowledge to properly evaluate the difficulty of a task, one often underestimates it - this is one reason why many software projects overrun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition, consider the following facts:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Most people have a computer, and manage to &quot;administer&quot; it well enough for their own requirements.&lt;/li&gt;&#xA;&lt;li&gt;Many people who don't have a computer, still use one as part of their work.&lt;/li&gt;&#xA;&lt;li&gt;People can &quot;make their computer do stuff&quot; pretty easily, they are dwarves who can't see the giant's shoulders.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Given these, it's easy to see why someone would consider the idea that making your whole career about &quot;working with computers&quot;, rather than &quot;working and using a computer&quot; to be simple.&lt;/p&gt;&#xA;" OwnerUserId="628" LastActivityDate="2010-12-02T12:27:42.297" />
  <row Id="23113" PostTypeId="2" ParentId="22404" CreationDate="2010-12-02T12:28:18.207" Score="1" ViewCount="" Body="&lt;p&gt;I try to develop features horizontally, instead of adding layers vertically. That being said, I liked the latter approach a lot, but it usually resulted in overengineering about every layer involved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, there are certain things shared accross features, but I rather implement it for feature A and while implementing feature B, I look whether I could abstract the implementation of feature A to be reusable in feature B, without introducing dependancy (i.e. although I have a lot of similar code for A and B, I only unify what performs the same task).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I usually start by modelling the data layer. &lt;/li&gt;&#xA;&lt;li&gt;After that, I build a mock layer, that gets its data from a single file (the data being simply serialized. I have an extra source file to define the initial data. Any time I need a reset or modification, I just compile and run it).&lt;/li&gt;&#xA;&lt;li&gt;Then I build the views to display that data. Then, view by view, I add controls for the planned user actions and the neccessary methods to the data layer objects to perform the business logic.&lt;/li&gt;&#xA;&lt;li&gt;At this point I start gluing the application flow together (hooking certain views into central menu, navigation between different views etc.), and find a suitable backend for my data to be stored.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If it makes sense, I have different storage mechanisms for different data objects and so on. I don't try to punch everything into one mechanism.&lt;/p&gt;&#xA;" OwnerUserId="667" LastEditorUserId="667" LastEditorDisplayName="" LastEditDate="2010-12-02T14:23:00.043" LastActivityDate="2010-12-02T14:23:00.043" CommunityOwnedDate="2011-04-11T04:21:44.680" />
  <row Id="23114" PostTypeId="2" ParentId="22404" CreationDate="2010-12-02T13:51:20.537" Score="2" ViewCount="" Body="&lt;p&gt;For me, it usually goes like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;DetermineStakeholderNeeds();&#xA;GetUserStories();&#xA;&#xA;FigureOutProgramFlow();         // Some rough sketches are often made of UI&#xA;VerifyWithStakeholders();&#xA;&#xA;BreakDownProgramIntoPieces();&#xA;&#xA;foreach (piece in pieces)&#xA;{&#xA;    PlanPieceOut();             // Visio, Pen/Paper, WhiteBoard, etc&#xA;    BuildDatabaseTables();&#xA;    BuildObjectClasses();&#xA;    BuildDataAccess();          // Get, Update, Insert, Delete, etc&#xA;    BuildBusinessLogic();       // Validation, Business rules, etc&#xA;    BuildUI();&#xA;    VerifyWithStakeHolders();&#xA;}&#xA;&#xA;PolishUI();&#xA;&#xA;Release();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-12-02T13:51:20.537" CommunityOwnedDate="2011-04-11T04:21:44.680" CommentCount="4" />
  <row Id="23115" PostTypeId="2" ParentId="22404" CreationDate="2010-12-02T13:53:13.967" Score="4" ViewCount="" Body="&lt;p&gt;I think a lot of us, not being designers, tend to go for the layers we like to work with more first, those being the data and middle tiers.  We tend to neglect the UI until we are forced to work on it.  That said I think we go about it backwards, and that building a UI for the end user first would help to drive the other layers, and keep them more in line with how the application needs to work for the end user.  How many times have we had to kludge stuff in the &quot;real programming&quot; layers to fit what the end user needs in the UI?&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-02T13:53:13.967" CommunityOwnedDate="2011-04-11T04:21:44.680" CommentCount="2" />
  <row Id="23116" PostTypeId="2" ParentId="22349" CreationDate="2010-12-02T13:54:20.983" Score="2" ViewCount="" Body="&lt;p&gt;I asked &lt;a href=&quot;http://stackoverflow.com/questions/164938/what-are-some-free-and-or-open-source-requirements-management-tools&quot;&gt;this question on Stack Overflow about 2 years ago&lt;/a&gt;. I've been watching around, and it doesn't look like things have changed much since then.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-12-02T13:54:20.983" CommentCount="2" />
  <row Id="23118" PostTypeId="2" ParentId="22404" CreationDate="2010-12-02T13:57:59.623" Score="1" ViewCount="" Body="&lt;p&gt;I like the incremental &quot;thin-slices&quot; approach. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means I complete one small user requested feature at a time. The idea is to &lt;strong&gt;write only those parts of each layer that is needed to complete the current feature&lt;/strong&gt;, as simple as possible, developing parts of the architecture only when a specific feature calls for it. After each added feature, refactor the code so it doesn't get stale and let the layers and abstractions emerge when they are actually needed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;With this approach, there is &lt;strong&gt;no specific order layers should be developed&lt;/strong&gt;, rather it depends on the current slice you are implementing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This has a few advantages:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It makes it possible to &lt;strong&gt;release after each feature&lt;/strong&gt; is added, rather than having to wait for whole system to be completed. &lt;/li&gt;&#xA;&lt;li&gt;You can starting making money much earlier. See image below.&lt;/li&gt;&#xA;&lt;li&gt;It helps make sure I create actual working software and not an architecture. &lt;/li&gt;&#xA;&lt;li&gt;The client can test a the system early and give feedback as soon as possible. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think this is an improvement compared to the more traditional write-each-layer-separately-and-glue-it-together-at-the-end method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To visualize this, consider the system as an empty box, data storage at the bottom and gui at the lid. Adding features is akin to &quot;tying threads of code&quot; between the bottom and the lid until we are satisfied, box filled or not. A traditional method can maybe be compared to pouring code into the box, slowly filling it from the bottom up until it is 100% full and then be ready for release.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is an image to illustrate the idea of early releases (&lt;a href=&quot;http://jamesshore.com/Agile-Book/release_planning.html&quot; rel=&quot;nofollow&quot;&gt;Shore&lt;/a&gt;):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/PZZBp.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-12-04T10:25:18.340" LastActivityDate="2010-12-04T10:25:18.340" CommunityOwnedDate="2011-04-11T04:21:44.680" CommentCount="2" />
  <row Id="23119" PostTypeId="2" ParentId="23077" CreationDate="2010-12-02T14:01:47.043" Score="3" ViewCount="" Body="&lt;p&gt;The thing with IT is, nobody really understands it. What it's about, what it's for, what it involves and how things should be done and why, and how much time it takes. This also applies to nearly everybody, who has a job in IT.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People involved in IT generally try to understand, which is why they see how complex all these questions are. Having good answers to those questions is essential, but will not actually &lt;em&gt;produce&lt;/em&gt; value. The value is &lt;em&gt;produced&lt;/em&gt; in programming, configuration, setup and what not. All these tasks are fairly easy, but without good answers to the aforementioned questions, these tasks produce little or even &lt;a href=&quot;http://c2.com/cgi/wiki?NetNegativeProducingProgrammer&quot; rel=&quot;nofollow&quot;&gt;negative&lt;/a&gt; value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is the hardest part. Because you need to find those answers for yourself or to really understand the answers others share. By understanding, I mean the concrete ability to implement these in your production tasks (coding etc.). This is not easy, and people who are as ignorrant as claiming that IT (or a concrete segment of it) is easy, will never have a shot at it.&lt;/p&gt;&#xA;" OwnerUserId="667" LastEditorUserId="667" LastEditorDisplayName="" LastEditDate="2010-12-02T17:00:16.727" LastActivityDate="2010-12-02T17:00:16.727" />
  <row Id="23120" PostTypeId="1" AcceptedAnswerId="23199" CreationDate="2010-12-02T14:25:31.503" Score="11" ViewCount="930" Body="&lt;p&gt;If you were looking into a job applicant's background and discovered that he or she has 1200 followers on Twitter and averages 50 tweets per day (more than half of which are during business hours), would it affect your hiring decision? How and why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I'd be a little worried about the candidate's ability to focus on the job at hand if they're constantly checking in with their 'tweeps' thoughout the day. In non-tech jobs, a lot of companies simply block Twitter as an irrelevant distraction.  But it &lt;em&gt;can&lt;/em&gt; be a useful resource---to programmers in particular. I just wonder how much is too much. At what point does it become a red flag?&lt;/p&gt;&#xA;" OwnerUserId="1326" LastEditorUserId="1326" LastEditorDisplayName="" LastEditDate="2010-12-02T18:40:28.740" LastActivityDate="2011-03-23T07:50:17.270" Title="Does tweeting 9 to 5 hurt job applicants?" Tags="&lt;hiring&gt;&lt;time-management&gt;&lt;job-interview&gt;&lt;twitter&gt;" AnswerCount="12" CommentCount="13" FavoriteCount="1" />
  <row Id="23121" PostTypeId="1" AcceptedAnswerId="23140" CreationDate="2010-12-02T14:27:10.057" Score="9" ViewCount="1004" Body="&lt;p&gt;How is a Ninja programmer defined? If it is just an experienced developer, then is there really no better way to describe that? Ninja sounds like a childish marketing ploy designed to attract developers with delusions of self-grandeur. Or am I missing something? In particular I want to know what qualities of a Ninja are desired in programmers that makes the comparison valid (besides the coolness factor)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did find &lt;a href=&quot;http://blog.gamerdna.com/blog/2008/01/23/are-you-a-ninja-developer/&quot; rel=&quot;nofollow&quot;&gt;this article&lt;/a&gt; which makes some good comparisons between Ninja characteristics and Agile development. However, I would like to hear from people who have used the word Ninja for hiring purposes and what their motivation was behind it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; There were several good points raised on both sides of the argument. I've tried to summarize these in &lt;a href=&quot;http://alinium.posterous.com/who-is-the-elusive-ninja-programmer-that-all&quot; rel=&quot;nofollow&quot;&gt;my blog post&lt;/a&gt;. I've chosen JB's answer as the accepted one because it summarizes all the valid reasons for making the comparison.&lt;/p&gt;&#xA;" OwnerUserId="7263" LastEditorUserId="7263" LastEditorDisplayName="" LastEditDate="2010-12-06T16:53:43.070" LastActivityDate="2010-12-16T19:02:29.557" Title="Why are good programmers referred to as Ninjas?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;work&gt;&lt;skills&gt;&lt;industry&gt;" AnswerCount="10" CommentCount="9" FavoriteCount="2" />
  <row Id="23122" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T14:27:49.550" Score="1" ViewCount="" Body="&lt;p&gt;The only way I can see this happen is when the developer involved is REALLY and I MEAN REALLY tired(maybe SOMEONE abused him too much?!!!) -- this guy needs a vacation one or two weeks should do the trick -- he has plenty of time to think about what happened and what he needs and/or wants to do in the future. I don't want pity but I'm one of those developers which is called in the middle of the friggin' night to fix something or add a feature to a/multiple project(s) -- I'm pretty sure I will fail one day and the sky will fall down on my boss but it's his choice...&lt;/p&gt;&#xA;" OwnerUserId="8747" LastActivityDate="2010-12-02T14:27:49.550" />
  <row Id="23123" PostTypeId="2" ParentId="23019" CreationDate="2010-12-02T14:28:50.580" Score="2" ViewCount="" Body="&lt;p&gt;Although this has changed through the years (I've worked on several projects which each used different versioning schemes), it has always been something like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the major version, the minor version, and the update version&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;X.Y.Z.WWWW&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;X: major release with identifiable new features&lt;br&gt;&#xA;Y: minor release with existing feature improvements&lt;br&gt;&#xA;Z: update release (distributed) containing bug fixes but no new functionality&lt;br&gt;&#xA;W: code build - internal to programmers&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These program version numbers did not necessarily correspond to the numbers used by marketing. What I mean? For example, Word 2000 (communicated to the public) is really Word 9.0.1.3821 (internal to the product team). Product marketing owns the name that's distributed; Development owns versioning and the project code name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Numbering schemes are largely irrelevant to customers; versioning is only for keeping track of what is shipping to the customer. There are many software developers who think that numbering schemes are a not-important marketing aspect of the product. Marketing people and customers generally do not (or should not) care about version numbers.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-02T14:28:50.580" />
  <row Id="23124" PostTypeId="2" ParentId="22404" CreationDate="2010-12-02T14:34:03.010" Score="1" ViewCount="" Body="&lt;p&gt;First of all, you must have a functional proof-of-concept where there is functionality all the way from the top layer to the bottom layer and back.  Make all the assumptions you need (network is never down, database data is perfect, user reads your mind) and all the duct tape you can get (data is transferred manually using ftp or email and saved in the right location, and the data is perfect).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you are done with that, you have a very good idea of where it is hardest to get it into production quality.  If there is any places where you have no idea how hard it is to finish, it is by definition exceptionally hard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you sort the things you need to do with the easiest on the bottom, and then you start from the top....&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-02T14:34:03.010" CommunityOwnedDate="2011-04-11T04:21:44.680" />
  <row Id="23125" PostTypeId="2" ParentId="9840" CreationDate="2010-12-02T14:39:11.333" Score="0" ViewCount="" Body="&lt;p&gt;What about &quot;Benefit Driven Development&quot; that is simmilar to &quot;Behaviour Driven Development&quot; but focus more on the benefit/busines-value of a feature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Benefit Driven Development&#xA;- in order to BENEFIT as a RULEMEMBER i want FEATURE&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Behaviour Driven Development&#xA; - as a RULEMEMBER i want FEATURE so that BENEFIT &lt;/p&gt;&#xA;" OwnerUserId="9007" LastActivityDate="2010-12-02T14:39:11.333" />
  <row Id="23126" PostTypeId="2" ParentId="23121" CreationDate="2010-12-02T14:40:17.480" Score="9" ViewCount="" Body="&lt;p&gt;One concept that martial arts experts and good programmers have in common is that economy of effort. Martial arts experts avoid wasted motion; good programmers avoid unnecessary code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The concept of invisibility translates to transparency in library writing. A good library has an intuitive interface, and you can plug it in and not worry about it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: I forgot the most important thing: both ninjas and good programmers are highly skilled as a result of training and practice.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastEditorUserId="5621" LastEditorDisplayName="" LastEditDate="2010-12-02T15:01:34.530" LastActivityDate="2010-12-02T15:01:34.530" CommentCount="2" />
  <row Id="23127" PostTypeId="2" ParentId="23121" CreationDate="2010-12-02T14:40:27.743" Score="15" ViewCount="" Body="&lt;p&gt;It's pretty much as you say - an attempt to imply coolness and eliteness (frequently among those who are neither) by making highly tenuous comparisons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I hate the phrase (along with &quot;Rockstar Programmer&quot; which makes we want to batter people to death - you can be a rockstar programmer when you've got a drug habit an alcohol problem and have trashed at least one car and one hotel room).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're a programmer, if you have issues with being a programmer because you want to do something you think is cooler then deal with them (or quit to do something you think is cooler).  If you don't like the way others view programmers then understand that's their issue not yours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're certainly not going to change their minds with phrases that would make the average 12 year old think you were trying a bit hard to be impressive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;/rant&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:  To be clear, the rant is not aimed at the questioner...&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-02T14:54:12.050" LastActivityDate="2010-12-02T14:54:12.050" CommentCount="9" />
  <row Id="23128" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T14:41:33.107" Score="2" ViewCount="" Body="&lt;p&gt;Failures, hmm interesting subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First and foremost, if the failure was your fault and the workplace was affected, own up and take the blame and suggest a solution for how to fix it. To do anything else is unprofessional and harmful to you personally. You do not want to become a morally bankrupt person who can't own up to his mistakes and fix them. That's a bad place to travel to. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if the failure was not your fault, look at it as an opportunity to shine. BY proposing and implementing a solution when all others are panicing and running around like chickens with their heads cut off, you become one of the most valuable people in the company - someone with a reputation for fixing problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your statement of &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I'm not interested in calming down&#xA;  the symptoms&#xA;  seriously concerns me. This is the single most important thing you can do after a failure and you want to dismiss it. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Next, everybody who is a huge success has a bunch of failures in the past. The secret is to be persistent, keep getting up and trying again.  But don't keep trying the the same techniques that caused the failure in the first place. Look at your failures, figure out why they failed and change something the next time you try. In horseback riding, it is critical to get back on the horse when you fall off. This is a good rule for life as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When others fail, don't play the blame game. Fix the problem where possible. If it isn't possible, analyze what went wrong, so you don't make that mistake (those mistakes) the next time. A lot of failures are symptoms of a poor system. not personal failures of individuals. Look at how the system contributed to the failure. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now for some of those specific problems:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;•Your project failed. - This happens (too often in software, but that's another rant), analyze what went wrong - likely a bunch of things went wrong - some of which you may have contriubuted to and many of which were outside your control. Try to do better with the next problem. Read the Serenity prayer - which states, basically fix what you can fix, accept what you can't fix and hope for the wisdom to know which is which.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;•You failed 10 interviews in a row. - Failing to get the job is not necessarily failing the interview. You are in comptetion with someone else. Maybe they loved three people but only had one position. Keep trying. However, if you feel you failed becasue you couldn't answer the questions, then prepare better for the next one. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;•What you have spent days coding was rejected by your team. -  Why? Did you ignore something you were told to do? Did you do it in some other language when C# was asked for? Did you spend days on a task you weren't asked to do? Did it break the build? Was it bad? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;•Nobody listens to your ideas in your company. - Why would that be? Think about how you present yourself - do you come across as an arrogant idiot who thinks he's smarter than everyone else and that what others want is irrelevant to you? Do you fail to present your ideas professionally? Are they bad ideas? Humble yourself and ask what you are doing wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;•The design pattern you introduced with force in your team created a mess. - Apologise and be at the forefront of fixing the mess.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;•Your colleague (you don't like) got the promotion that you wanted to get. -  This will happen, just becasue you don't like the guy doesn't mean management doesn't. Resolve to work with him professionally. Talk to the manager who made the choice and express that you want to be able to learn from your mistakes and get the next promotion, so could he please tell you what you need to do better in order to get the next one. Do not mention how much you hate their choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;•You deleted the production database - If you have a backup, restore it as soon as humanly possible. If you have no backup, why didn't you. At least set up backups first thing the next database you work with. In both cases, prepare to be fired. This is not a failure you can avoid the consequences of.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-02T14:41:33.107" />
  <row Id="23129" PostTypeId="2" ParentId="23121" CreationDate="2010-12-02T14:44:16.590" Score="1" ViewCount="" Body="&lt;p&gt;Ninja programmers? Sounds a bit shady to me.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-12-02T14:44:16.590" />
  <row Id="23130" PostTypeId="2" ParentId="23121" CreationDate="2010-12-02T14:50:23.723" Score="5" ViewCount="" Body="&lt;p&gt;In addition to the &quot;Coolness&quot; and &quot;Elite&quot; factors, ninjas are often stealthy and are known to do things like sneak past security to get into places they shouldn't. Because this trait is shared by  Hackers, I think someone thought that &quot;Ninja&quot; would be a good title for them. To a non-IT person, Hackers and Programmers are the same thing, and they think the word &quot;ninja&quot; is very cool, so it kind of stuck&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the logic is: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ninja = Stealthy Person Who Can Sneak Past Security Into Places They Shouldn't Be&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stealthy Person Who Can Sneak Past Security Into Places They Shouldn't Be = Hacker&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hacker = Programmer &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, Ninja = Programmer&lt;/p&gt;&#xA;" OwnerUserId="1130" LastEditorUserId="1130" LastEditorDisplayName="" LastEditDate="2010-12-02T15:23:45.210" LastActivityDate="2010-12-02T15:23:45.210" CommentCount="1" />
  <row Id="23131" PostTypeId="2" ParentId="21067" CreationDate="2010-12-02T14:52:25.110" Score="7" ViewCount="" Body="&lt;p&gt;Lambda expressions. They are incredibly useful, but have not gained a lot of momentum yet. Java has (limited) suport for them in the form of anonymous classes. not really true lambda, but close and still useful. C uses function pointers, which are awkward. The ability to pass a piece of code around to use where needed is a boon to programming, as Lisp and other functional languages demonstrate.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-02T14:52:25.110" CommunityOwnedDate="2011-01-05T10:52:43.233" CommentCount="5" />
  <row Id="23132" PostTypeId="2" ParentId="19752" CreationDate="2010-12-02T14:54:42.313" Score="0" ViewCount="" Body="&lt;p&gt;Be aware of your rights. &lt;br&gt;If you're in the EU you are covered by the Working Time Directive. This restricts the amount of time you're employer can require you to work (unless you opt out).&lt;br&gt;The basic restriction is no more than 48 hours in a week (averaged over 17 weeks).&lt;/p&gt;&#xA;" OwnerUserId="9009" LastActivityDate="2010-12-02T14:54:42.313" CommentCount="1" />
  <row Id="23133" PostTypeId="2" ParentId="23120" CreationDate="2010-12-02T14:55:01.563" Score="15" ViewCount="" Body="&lt;p&gt;I would not hold it against them, but I might bring it up during an interview question. Perhaps say you noticed they average X tweets per day during business hours and that your ideal candidate focuses on the job while at work. See what their reaction/excuse to that is. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, if I know my boss is watching my twitter page, I would be sure not to tweet during work hours.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-12-02T14:55:01.563" CommentCount="1" />
  <row Id="23134" PostTypeId="2" ParentId="23121" CreationDate="2010-12-02T14:55:03.367" Score="6" ViewCount="" Body="&lt;p&gt;In my understanding, not every good or excellent programmer is a Ninja. Ninjas are a special breed. A Ninja programmer is the one who appears at unusual times (e.g. 3 a.m.), does some hazardous stuff that normal people are reluctant to (like using a hex-editor to fix a highly critical bug in a decade-old, allegedly unmaintainable program directly on the production server) and vanishes unseen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, though a Ninja needs excellent technical skills to pull off such stunts regulary and survive, many excellent programmers do not at all fit into that description. With proper methods in place, there is no need for the Ninja. On the other hand, if the impossible happens, it's a good thing to have one.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="6617" LastEditorDisplayName="" LastEditDate="2010-12-02T15:53:12.770" LastActivityDate="2010-12-02T15:53:12.770" />
  <row Id="23135" PostTypeId="2" ParentId="22873" CreationDate="2010-12-02T14:56:35.697" Score="3" ViewCount="" Body="&lt;p&gt;My college advisor phrased a similar question differently:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Are you a scientist, or an engineer?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scientists build to learn.  Engineers learn to build.  I am definitely the latter.  I would go crazy being stuck working on code for a thesis that is being created simply to prove some algorithmic point.  I absolutely love learning a new API, framework, algorithm, data structure, or technique if I can sit down with it, use it, and see the result (bonus points if the result has a graphical representation).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like to build things.  I'm best at building them on the computer.  Therefore I program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if I wasn't programming, I'd be writing fiction.&lt;/p&gt;&#xA;" OwnerUserId="7506" LastActivityDate="2010-12-02T14:56:35.697" />
  <row Id="23136" PostTypeId="2" ParentId="21067" CreationDate="2010-12-02T14:56:57.423" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Design-by-contract&lt;/strong&gt;, done right.  MS almost got it right when they did Spec#, but they threw it all away with the poor implementation in VS2010 / .NET 4.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, parallelism, though some of the stuff they've done there in .NET 4 &lt;em&gt;is&lt;/em&gt; interesting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: Also, Aspect Oriented Programming I'm fed up of having to splatter logging calls everywhere.  It'd be nice to be able to have this done for me - say, a logging call at the start of every set accessor.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastEditorUserId="5375" LastEditorDisplayName="" LastEditDate="2010-12-02T15:10:54.670" LastActivityDate="2010-12-02T15:10:54.670" CommunityOwnedDate="2011-01-05T10:52:43.233" CommentCount="4" />
  <row Id="23137" PostTypeId="2" ParentId="21067" CreationDate="2010-12-02T15:01:53.770" Score="8" ViewCount="" Body="&lt;p&gt;Common Lisp, or something equivalent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The killer feature is the macro system, which essentially allows arbitrarily extending the language (I've seen different object-oriented systems added to Lisp with macros).  Other useful things are the multi-paradigm nature, the extensive built-in arithmetic (including arbitrary-sized integers, rational numbers, and a general treatment of complex numbers), strong run-time types with optional compile-time types, and an easy-to-use OO system with multimethods.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-02T15:01:53.770" CommunityOwnedDate="2011-01-05T10:52:43.233" CommentCount="2" />
  <row Id="23138" PostTypeId="1" AcceptedAnswerId="23153" CreationDate="2010-12-02T15:04:48.333" Score="1" ViewCount="157" Body="&lt;p&gt;You must have come across a person who is best in software domain, a guru or pundit on his/her own, from whom you might have learnt a lot. What are the points you have learnt from him/her? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Blogs and technical article writers are all fine but I am talking about the person with whom you might have worked or seen him working very closely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These expert developers help us to thrive more and engage us to learn interesting things.&lt;/p&gt;&#xA;" OwnerUserId="7478" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-02T15:20:33.420" LastActivityDate="2010-12-02T16:01:31.917" Title="Whom do you think of as your guru for your development career? And what you have learnt from that person?" Tags="&lt;learning&gt;&lt;productivity&gt;&lt;career&gt;&lt;experience&gt;" AnswerCount="4" CommentCount="4" />
  <row Id="23140" PostTypeId="2" ParentId="23121" CreationDate="2010-12-02T15:30:04.803" Score="7" ViewCount="" Body="&lt;p&gt;To my mind there are a few parallels between a Ninja and a good programmer:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Hidden weapons/unorthodox style - If you ever saw the G.I. Joe cartoon from the 1980s you may remember the character of Storm Shadow.  He had a sword and some throwing stars but with just the right sequences of punches and kicks managed to take apart a tank in an episode.  In a similar manner, programmers can get called in to do some work that requires them to pull out weapons you may not have thought they had.  This is a kin the &quot;Hacker&quot; point that has been mentioned in a few places.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Honor/respect - Granted that I've seen this more in the Western portrayals of a ninja, but there seemed to be this attitude of honoring one's enemy, possibly taken from &quot;Art of War.&quot;  Good programmers can respect that there may be better ones out there somewhere.  Humility is also in this in a sense.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Implied mastery - There may be this assumption that all ninjas are masters and thus have really honed their skills to know how to fight well.  Good programmers may have similarly mastered some skills that are quite beneficial in getting the job done.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Those are the few beyond the superficial, &quot;Oh that sounds cool,&quot; implications as there had to be some meat for it to stick.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-02T15:30:04.803" CommentCount="3" />
  <row Id="23142" PostTypeId="1" AcceptedAnswerId="23152" CreationDate="2010-12-02T15:33:18.917" Score="6" ViewCount="206" Body="&lt;p&gt;I've been thinking a lot about the problem of standardization across large companies.  For me, the answer is pretty clear: do not arbitrarily standardize on tools just because that's what everyone else does.  It's counter-productive.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm thinking about source control, bug tracking and testing tools primarily.  It seems so obvious to me that I can't really think of many good counter-arguments.  Some I've thought of :&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Easier sharing between teams&lt;/li&gt;&#xA;&lt;li&gt;Easier for IT to manage&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;(1) is definitely true if different teams are working on the same codebase/product.  But in cases where one team doesn't work directly with the code I don't think is a valid reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(2) is just kind of pisses me off if that's really an argument.  The limitations placed on programmers, I believe, is more burdensome than any extra work piled on to IT.  But I'm not an IT guy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm hoping for some better arguments than those.&lt;/p&gt;&#xA;" OwnerUserId="5105" LastActivityDate="2010-12-02T23:19:36.087" Title="Should a large company standardize engineering tools across all teams internationally?" Tags="&lt;tools&gt;&lt;market-share&gt;" AnswerCount="5" CommentCount="6" FavoriteCount="2" />
  <row Id="23143" PostTypeId="2" ParentId="23138" CreationDate="2010-12-02T15:36:24.577" Score="0" ViewCount="" Body="&lt;h1&gt;Myself&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;(no, I'm not trying to be egotistical here)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I might not be the best in my domain or amazing in any way, but I definitely drive my own career. I leave this as a message to others to look inward for the 'guru of their development career'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things I've learned:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Structured programming&lt;/li&gt;&#xA;&lt;li&gt;Advanced topics of Pascal (well, they were as a student, anyway)&lt;/li&gt;&#xA;&lt;li&gt;How to program PHP better than most other 'developers' (You know the ones.)&lt;/li&gt;&#xA;&lt;li&gt;Object-oriented programming&lt;/li&gt;&#xA;&lt;li&gt;Specification writing&lt;/li&gt;&#xA;&lt;li&gt;Time management&lt;/li&gt;&#xA;&lt;li&gt;The (un-)importance of being right&lt;/li&gt;&#xA;&lt;li&gt;Working with non-programmers&lt;/li&gt;&#xA;&lt;li&gt;How to get a job&lt;/li&gt;&#xA;&lt;li&gt;How to keep a job (I hope!)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Things I'd like to learn:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Working well with managers&lt;/li&gt;&#xA;&lt;li&gt;Working more smoothly with non-programmers&lt;/li&gt;&#xA;&lt;li&gt;Decision making&lt;/li&gt;&#xA;&lt;li&gt;Improved time management&lt;/li&gt;&#xA;&lt;li&gt;Improved technical writing&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Whilst other people did have a role in my learning of these topics (and more), they didn't teach me everything. Therefore, I ask this: &lt;strong&gt;How much of your career do you have only yourself to thank for?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hopefully, it should be most of it. If not, then try to get back in control!&lt;/p&gt;&#xA;" OwnerUserId="912" LastActivityDate="2010-12-02T15:36:24.577" />
  <row Id="23144" PostTypeId="2" ParentId="23138" CreationDate="2010-12-02T15:38:38.587" Score="1" ViewCount="" Body="&lt;p&gt;I guess this is the obligatory cheesy answer, but my personal guru was my first undergraduate comp sci professor. He was, and still is, not only one of the smartest computer scientists I've met, but one of the smartest people I know. The thing is, he's incredibly humble -- you'd never know he was a professor with a Ph.D. and two M.Sc. degrees just by talking to him. He's also respectful to everyone with whom he works, including his students. I worked with him on a research project as an undergrad, and he recognized that I had more experience with C and C++ than him, and used to ask &lt;em&gt;me&lt;/em&gt; questions about programming. He was also very active in the department, and used to solicit opinions on the curriculum from students like me. Perhaps most importantly, he encouraged me to keep working hard even when I thought about giving up.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-12-02T15:38:38.587" />
  <row Id="23145" PostTypeId="2" ParentId="23138" CreationDate="2010-12-02T15:39:56.330" Score="1" ViewCount="" Body="&lt;p&gt;I'm still looking. Unfortunately.&lt;/p&gt;&#xA;" OwnerUserId="4852" LastActivityDate="2010-12-02T15:39:56.330" />
  <row Id="23146" PostTypeId="1" CreationDate="2010-12-02T15:40:12.530" Score="17" ViewCount="313" Body="&lt;p&gt;I am having a disagreement with someone (a client) about the user identification/authentication process for  a system. The nub of it is that they want each user to have a globally unique password (i.e. no two users can have the same password). I have wheeled out all the obvious arguments against this (it's a security vulnerability, it confuses identification with authentication, it's pointless, etc.) but they are insisting that there is nothing wrong with this approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have done various google searches looking for authoritative (or semi-authoritative , or even just independent) opinions on this, but can't find any (mainly it's just such an obvious faux pas that it doesn't seem worth warning against, as far as I can tell).  Can anybody point me towards any such independent opinion, please?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;[EDIT]&lt;/strong&gt;&lt;br&gt;&#xA;Thanks for all your answers, but I already understand the problems with this proposed approach/requirement, and can even explain them to the client, but the client wont't accept them, hence my request for independent and/or authoritative sources.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also found the Daily WTF article, but it suffers from the problem that Jon Hopkins has pointed out - that this is such a self-evident WTF that it doesn't seem worth explaining &lt;strong&gt;why&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, the passwords are going to be salted and hashed. In which case global uniqueness might well be difficult to ensure, but that doesn't solve my problem - it just means that I have a requirement that the client won't budge on, that's not only ill-advised, but is also difficult to implement. And if I was in a position to say &quot;I'm not budging on salting and hashing&quot;, then I'd be in a position to say &quot;I'm not implementing globally unique passwords&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any pointers to independent and/or authoritative sources for why this is a &lt;strong&gt;bad&lt;/strong&gt; idea still gratefully received...&lt;br&gt;&#xA;&lt;strong&gt;[/EDIT]&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2180" LastEditorUserId="2180" LastEditorDisplayName="" LastEditDate="2010-12-02T19:17:13.717" LastActivityDate="2010-12-03T12:10:04.157" Title="Citations for inadvisability of globally unique password" Tags="&lt;security&gt;&lt;passwords&gt;" AnswerCount="7" CommentCount="8" FavoriteCount="3" />
  <row Id="23147" PostTypeId="2" ParentId="23146" CreationDate="2010-12-02T15:43:11.223" Score="22" ViewCount="" Body="&lt;p&gt;Whenever a client tries to create a password that already exists, it receives feedback that &lt;em&gt;some&lt;/em&gt; user already uses that password, usually a violation of the privacy agreement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next to that, usernames are much easier to guess (and if there is a forum, you could just find alot of usernames there) and you're hinting the user ways to hack the website.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There should be some page on the internet somewhere that describes the privacy agreement violation part, other than that it's just common sense: they'd basically be giving someone a key and a list of home addresses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Not close to authorative, but perhaps helpful after you explain them what WTF means: &lt;a href=&quot;http://thedailywtf.com/Articles/Really_Unique_Passwords.aspx&quot; rel=&quot;nofollow&quot;&gt;http://thedailywtf.com/Articles/Really_Unique_Passwords.aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1922" LastEditorUserId="1922" LastEditorDisplayName="" LastEditDate="2010-12-02T15:49:27.223" LastActivityDate="2010-12-02T15:49:27.223" CommentCount="3" />
  <row Id="23148" PostTypeId="2" ParentId="23146" CreationDate="2010-12-02T15:44:17.493" Score="4" ViewCount="" Body="&lt;p&gt;If you have advised them against this course of action, and supplied them with reasons, I would take them at their word and just implement the system as they suggest. It may not be satisfying, but you have done your job, and they are footing the bill, so they ought to get what they want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is one exception. If the negative consequences of a system breach would be severe (e.g. if very private information is likely to be compromised by a security breach) you may in fact have a professional duty not to implement the system they want. Don't expect it to make you popular if you refuse, but don't let that be your guide.&lt;/p&gt;&#xA;" OwnerUserId="7634" LastActivityDate="2010-12-02T15:44:17.493" />
  <row Id="23150" PostTypeId="2" ParentId="22769" CreationDate="2010-12-02T15:51:06.703" Score="1" ViewCount="" Body="&lt;p&gt;Instead of talking about languages what about talking about language-features&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;java forces you to think about exceptions (throws ...) and you must either publisch or handle these exceptions. Does that realy prevent me from forgetting errorsituations or am i using more exceptions that are derived from SystemException that do not need this handling?&lt;/li&gt;&#xA;&lt;li&gt;what about &quot;design by contract&quot; (http://en.wikipedia.org/wiki/Design_by_contract) that forces me to think about pre and postconditions. I have read that is now possible with c#-4.0. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9007" LastEditorUserId="9007" LastEditorDisplayName="" LastEditDate="2010-12-03T11:25:24.150" LastActivityDate="2010-12-03T11:25:24.150" />
  <row Id="23151" PostTypeId="2" ParentId="23142" CreationDate="2010-12-02T15:56:01.707" Score="2" ViewCount="" Body="&lt;p&gt;I would say in the situation described below.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My company has a relatively small IT department aimed at supporting the software used to run the company. The application is written in two languages, Java and RPG. We use Rational Application Developer(based on Eclipse) as our only IDE. There are some other minor programs we also use, but those are mostly the choice of the developer if he wants to use them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reasons I see that this is good are, in no particular order:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Easily shared projects.&lt;/strong&gt; We can save all the project settings in a zip and anyone else can see it without any issues between IDEs.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Easier IT updates.&lt;/strong&gt; Yes, I think this is a valid argument - &lt;strong&gt;&lt;em&gt;within reason!&lt;/em&gt;&lt;/strong&gt; If this &quot;standardization&quot; argument is limiting development efforts by limiting what software a developer can use when he absolutely needs it, it is bad. That's not an issue at my workplace because we only work with a couple of code bases, so everyones needs are basically the same.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Teamwork is optimized.&lt;/strong&gt; If everyone uses similiar tools, it is easier for anyone to come over and look at your code without having to orient himself to your IDE. With most IDEs now you can customize them to a workspace you like without losing the frame of reference. All console tabs look the same no matter where on the screen they are.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Project switching is easier.&lt;/strong&gt; Any developer can move to any project without having to learn new ways of doing the meta stuff like version control. The same procedures and software used everywhere reduce context change time.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Overall I'd say that having everyone use the same IDE, version control, and bug tracking software is a good thing, and helps teams work better. Below that though the developer should be free to use what tools he needs. If he prefers TextEdit to Notepad++, let him use that - it won't cost any more. Or don't force him to use a query tools if he prefers to connect straight to the database for simple queries.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-02T15:56:01.707" CommentCount="1" />
  <row Id="23152" PostTypeId="2" ParentId="23142" CreationDate="2010-12-02T15:56:17.767" Score="5" ViewCount="" Body="&lt;p&gt;Yes, but it needs to be done in a manner which is sensible and doesn't affect the productivity of developers for the sake of process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is definitely a case for standardisation of bug tracking/source control as a lot of enterprise IT is somewhat isolated and distributed. For instance, consultants might be hired to create something for one business unit, in-house staff might be maintaining a legacy system and over in the Republic of Elbonia HQ, another in-house team is working something else. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Common source control and bug tracking systems, place everyone on a level playing field and make it easier to deal with multiple systems. Imagine your support people having to learn 3 different bug tracking systems because each team preferred a different solution. Without standardisation you can also end up with the situation of the consultants using source control system X and in-house using source control system Y (or worse, no SC at all), which will lead to all sorts of fun when the software is completed and the consultancy either moves on or goes bust.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This doesn't always mean you'll end up standardising on the best software available though, often the software which is chosen is based upon compromise and practicalities rather than having all of the latest and greatest features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Standardisation also requires common sense. There is a level where you just have to let the developer get on with the job without undue interference. Where that line lies depends on the culture of the organisation, the kind of products being worked upon and regulatory factors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is more to software than just code.&lt;/p&gt;&#xA;" OwnerUserId="8916" LastActivityDate="2010-12-02T15:56:17.767" CommentCount="1" />
  <row Id="23153" PostTypeId="2" ParentId="23138" CreationDate="2010-12-02T16:01:31.917" Score="2" ViewCount="" Body="&lt;p&gt;I've learned from a lot of people from the years but the ones who I learned the most from technically were people I met on line (some of whom have become personal friends). This is because in my early learning stages, I was usually the only database person and online was the only place for me to go to in order to find gurus. It was especially useful to find people who worked with large, high transaction and high availablity databases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, people I learned a lot from in person (no names) were:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Navy Master chief who sat me down when I was in my 20's and showed me what an arrogant little brat I was. Thank you, thank you, thank you from the bottom of my heart.  I learned more from him about how to get along in an organization than anyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The boss who was resistant to change and the one who couldn't make a decision to save his life - I learned alot from them about how not to do things. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My friend and coworker (now deceased) who gave me someone to bounce ideas off of. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My current coworker who is meticulous and obsessive but who virtually never has a bug in his code. He's taught me to slow down and look. He's also taught me some good ways to organize the work. He and I feed ideas off each other daily and work well together even though our personalities are pretty much not compatible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The coworker I hated and despised who taught me how to work with the people I had to whether I liked them or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My current boss, who has introduced me to some new concepts and who taught me how to create extremely complex SSIS packages. I'm not sure I would have figured out a lot of what I know now without his training when we first converted to SSIS from DTS.  He's also introduced me to some new syntax in SQL Server 2008 that I was not aware of. Of course I introduced him to some other new syntax that he didn't know in return.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My coworker with the Master's degree who has a differnt way of looking at code and who has toaught me to see things I never noticed before. He also has some neat tricks with  some advanced join structures that never occurred to me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My foreign coworkers who taught me to respect cultural differences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Several of our users who have spent a good bit of time educating me on the business needs of our organization. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-02T16:01:31.917" />
  <row Id="23154" PostTypeId="2" ParentId="23146" CreationDate="2010-12-02T16:08:10.723" Score="0" ViewCount="" Body="&lt;p&gt;He would probably like RSA two factor encryption.  If you're using Active Directory, or ASP.NET membership this is a no-brainer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/pq4y4.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The hardware or software token generates a time dependent unique password that is followed by a PIN code.  This together provides a unique password for each user.&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-12-02T16:08:10.723" CommentCount="4" />
  <row Id="23155" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T16:11:35.650" Score="1" ViewCount="" Body="&lt;p&gt;Obviously learning from it is nice, but if you want something cool then it depends on what went down. If it was...&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Spectacularly Awesome&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;If you destroyed a company because you wrote a ton of crappy code and then got out of dodge before the ish hit the fan then maybe a dailWtf submission is in order&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Not awesome but unique&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;If you created a new and unique way to fail like you created a new way to leak memory then maybe it deserves a blog entry. If you don't have a blog maybe its time to start one.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Fairly Mundane but something usefull can come out of it&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Update some procedure document&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Mundane and nothing terribly useful can be learned&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;The only cool thing that can happen here (e.g. you delete a prod database) is you give it a nickname e.g. be careful you don't want to do a &lt;em&gt;Pierre&lt;/em&gt; and kill the db.&lt;/p&gt;&#xA;" OwnerUserId="162" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-02T19:15:35.480" LastActivityDate="2010-12-02T19:15:35.480" />
  <row Id="23156" PostTypeId="2" ParentId="22404" CreationDate="2010-12-02T16:15:55.880" Score="7" ViewCount="" Body="&lt;h2&gt;Risk First&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Whatever layers that have features with the highest technical or social risk should be developed first. If you were to try bottom-up, you might spend a lot of time on making a layer that will need to be radically changed, because something above it has too many unknowns. (And similarly for top-down.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the case of parallel development, I recommend mocks or stubs be used. Mocks are better, because you can simulate some of the functionality and quirks of the interaction. &lt;strong&gt;Real, executing code seems to be a better form of communication than any specification document.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your layers might match something like &lt;a href=&quot;http://en.wikipedia.org/wiki/Conway%27s_Law&quot; rel=&quot;nofollow&quot;&gt;Conway's Law&lt;/a&gt;. If that is the case, then I think mocks are all the more important.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-02T16:15:55.880" CommunityOwnedDate="2011-04-11T04:21:44.680" CommentCount="2" />
  <row Id="23157" PostTypeId="1" AcceptedAnswerId="23167" CreationDate="2010-12-02T16:18:27.403" Score="6" ViewCount="283" Body="&lt;p&gt;There have been several postings on P.SE about lower quality programming education, and &lt;a href=&quot;http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html&quot; rel=&quot;nofollow&quot;&gt;this post from Joel on JavaSchools&lt;/a&gt; shows his frustration with the way computer science is often taught.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At many art and music schools, only the best students are allowed to continue their education. They only accept a limited (call it x) number of students, and if you are not in the top x students, you don't continue. Contrast this with computer schools, where if you get a C, or a B in my school, you go on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should computer science schools have a similiar program? What are your feeling regarding such a program?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: In reply to the posts who say that graduating from a top school does not guarantee a good career: I don't think it should. My question has to do with how you be sure that the people who do graduate from any school - Ivy League or not - have reached the level of proficiency that a degree is supposed to show.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2010-12-02T18:31:57.020" LastActivityDate="2010-12-02T18:36:54.157" Title="Should programming schools be more competitive?" Tags="&lt;programming&gt;&lt;education&gt;&lt;computer-science&gt;&lt;teaching&gt;&lt;school&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="2" />
  <row Id="23158" PostTypeId="2" ParentId="23121" CreationDate="2010-12-02T16:19:19.523" Score="-2" ViewCount="" Body="&lt;p&gt;Because Ninjas are bad man.  That's why.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-02T16:19:19.523" />
  <row Id="23159" PostTypeId="2" ParentId="23077" CreationDate="2010-12-02T16:26:10.140" Score="0" ViewCount="" Body="&lt;p&gt;Unless they have some severe processing issue or physical problem that prevents it, then yes, given enough training and time anyone can be taught to work in the world of IT.  I am a firm believe that outside of a handicap that prevents it or some government that suppresses it, people can do anything they set their mind to, either for good or evil.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, I forgot, IT is easy. like cake, but uh, that's after about 20 years of studying it.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-02T16:26:10.140" />
  <row Id="23161" PostTypeId="2" ParentId="23157" CreationDate="2010-12-02T16:33:21.677" Score="3" ViewCount="" Body="&lt;p&gt;If the music school were big enough and there were enough teachers, then you would have the same thing as in any discipline.  You'd have b,c, &amp;amp; d folks in the music and art schools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, there are programs and positions, maybe not classes, that do require certain skills to be honored in order to participate in the world of computers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think computer science should be like the suggested above.  Only programs with higher requirements.  I think art and music classes should be opened up, mainly because I'd like to play the keyboard like that John Vangelis guy did for Blade Runner and Chariots of Fire because I love the synthesizer and a good keyboard workstation, but alas I have little experience and can only read basic musical notes like every good boy does fine and &quot;face&quot;, but no computer science classes should be shut up like this.  no siree.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastEditorUserId="8802" LastEditorDisplayName="" LastEditDate="2010-12-02T16:43:26.593" LastActivityDate="2010-12-02T16:43:26.593" />
  <row Id="23162" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T16:35:08.583" Score="1" ViewCount="" Body="&lt;p&gt;What did Thomas Wayne say?  &quot;Why do we fall down Bruce? So we learn to pick ourselves up.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yeah, and Alfred said it later too.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-02T16:35:08.583" />
  <row Id="23163" PostTypeId="2" ParentId="23077" CreationDate="2010-12-02T16:37:52.480" Score="0" ViewCount="" Body="&lt;p&gt;Have you ever looked after 20 babies that are prone to outbursts and unreasonable behavior at any given time?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If all 20 decide to throw a tantrum at once, can you quiet them all quickly?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IT is not easy. Those outbursts may be servers, killer bugs, 20 clueless users, each of which demand to be serviced immediately. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it were easy, it wouldn't attract people who love to solve interesting problems. Think about it in this context, would you do your job even if you weren't paid to do it? Most (I think) here would continue writing programs. Most people on Serverfault would continue testing interesting configurations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the answer to this is best evidenced by the caliber of (most) who work in the field. While we love our pay checks, most of us (I think) more enjoy the satisfaction of slaying that which once seemed insurmountable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apologies for my liberal punning of 'it' :)&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-02T16:37:52.480" />
  <row Id="23165" PostTypeId="2" ParentId="23077" CreationDate="2010-12-02T16:43:46.143" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The less you know the more you think you can.&lt;/strong&gt; &#xA;Opinions are &lt;strong&gt;relative&lt;/strong&gt;. The judger's experience sets the limit.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-02T16:43:46.143" />
  <row Id="23166" PostTypeId="2" ParentId="23146" CreationDate="2010-12-02T16:51:48.347" Score="10" ViewCount="" Body="&lt;p&gt;Best practice gets in the way of meeting the requirement:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can't do this because you don't know what the passwords are so you can't compare them because all that you store is the hash of the password and a salt (which you can store next to the hashed password). This is best practice, so that's what you do. Done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another edit: Doh! Hindsight is easy - you could still check for uniqueness because (of course) you have the salt... just shoot me now... of course you don't have to mention this detail to the client.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;FWIW, its not quite as dumb as you think it is - the aim is to prevent groups of users agreeing and sharing the same password, which people &lt;em&gt;will do&lt;/em&gt; in the belief that it will make their lives easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If applied with a requirement to change the password regularly and a constraint that prevents people from re-using a current &lt;em&gt;or previously used&lt;/em&gt; password (at all, ever) and sensible &quot;strength&quot; requirements (or at least a pre-loaded dictionary of &quot;blocked&quot; passwords) you're going to get to a point, fairly rapidly, where the odds are not in the hacker's favour anyway.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Ok, my answer originally started with:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;There's notionally very little wrong&#xA;  with this given a couple of provisos -&#xA;  most of which are that I'm being&#xA;  thick...&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Inappropriate humour apparently - point was that if you don't have the globally unique constraint you're creating different opportunities, perhaps less dangerous - I don't know.&lt;/p&gt;&#xA;" OwnerUserId="866" LastEditorUserId="866" LastEditorDisplayName="" LastEditDate="2010-12-03T10:41:26.823" LastActivityDate="2010-12-03T10:41:26.823" CommentCount="8" />
  <row Id="23167" PostTypeId="2" ParentId="23157" CreationDate="2010-12-02T16:53:40.200" Score="4" ViewCount="" Body="&lt;p&gt;Schools shouldn't be more competitive as much as grading should be stricter and more realistic.  Too often I've seen people skate by in their classes through the use of other teammates.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Group work where 1 individual does the work and another just goofs off...both get a passing grade, when in reality student A should have received an A and student B should have not.  Until this is fixed we'll have a really watered down talent pool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Might I suggest a few weeder courses early on to really challenge the students.  And while I understand this is difficult for the professor/TA's they need more individual assignments of equal difficulty to reduce cheating.  &lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-12-02T16:53:40.200" CommentCount="4" />
  <row Id="23168" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T17:02:22.087" Score="1" ViewCount="" Body="&lt;p&gt;In any case, it is the &lt;strong&gt;team&lt;/strong&gt; that sets the &lt;strong&gt;expectations&lt;/strong&gt;. You react along their expectations. The best team is &lt;strong&gt;prepared for human mistakes&lt;/strong&gt;. One must always see beyond the horizon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A professional mentality in the team is a basis for a healthy handling of disasters.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-02T17:02:22.087" />
  <row Id="23169" PostTypeId="2" ParentId="23038" CreationDate="2010-12-02T17:04:54.237" Score="11" ViewCount="" Body="&lt;p&gt;Einstein, when asked for his phone number, went to a phone book to look it up. When asked why he didn't know his own phone number, he said &quot;I never bother memorising things that I can look up&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've forgotten a lot about a lot. Google remembers, so I don't have to.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-02T17:04:54.237" CommentCount="1" />
  <row Id="23170" PostTypeId="2" ParentId="19752" CreationDate="2010-12-02T17:10:01.317" Score="1" ViewCount="" Body="&lt;h2&gt;Haylem's Survival Guide to Code-Rushes&lt;/h2&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Master your Sleep&lt;/li&gt;&#xA;&lt;li&gt;Be Active and Healthy&lt;/li&gt;&#xA;&lt;li&gt;Be a Team&lt;/li&gt;&#xA;&lt;li&gt;Sleep!&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;h2&gt;Master your Sleep&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The most important thing is to master the &lt;a href=&quot;http://lifehacker.com/tag/sleep/&quot; rel=&quot;nofollow&quot;&gt;art of sleeping well&lt;/a&gt;. Listen to your biological clock and be aware of your &lt;a href=&quot;http://en.wikipedia.org/wiki/Circadian_rhythm&quot; rel=&quot;nofollow&quot;&gt;Circadian rythm&lt;/a&gt;. Learn to understand your &lt;a href=&quot;http://en.wikipedia.org/wiki/Sleep&quot; rel=&quot;nofollow&quot;&gt;sleep cycles and sleep patterns&lt;/a&gt;. (Go beyong and get into &lt;a href=&quot;http://en.wikipedia.org/wiki/Chronobiology&quot; rel=&quot;nofollow&quot;&gt;Chronobiology&lt;/a&gt; if you must. Who knows, maybe there's an &lt;a href=&quot;http://en.wikipedia.org/wiki/Oscillating_gene&quot; rel=&quot;nofollow&quot;&gt;oscillating gene&lt;/a&gt; of the crunch-time programmer).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you master these, that &lt;a href=&quot;http://en.wikipedia.org/wiki/Rapid_eye_movement_sleep&quot; rel=&quot;nofollow&quot;&gt;REM&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Non-rapid_eye_movement_sleep&quot; rel=&quot;nofollow&quot;&gt;NREM&lt;/a&gt; phases have no secret for you and that you can write a dissertation on your friend &lt;a href=&quot;http://en.wikipedia.org/wiki/Melatonin&quot; rel=&quot;nofollow&quot;&gt;Melatonin&lt;/a&gt;, you can have a good and efficient sleep over very short periods of time. Which may be critical in helping you through a hard phase.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the worst things is to interrupt a deep sleep cycle. It's highly counterproductive has you are not rested when you wake up, and still completely numb and sleepy. Whereas if you optimize you sleep time to &quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Power_nap&quot; rel=&quot;nofollow&quot;&gt;power-nap&lt;/a&gt;&quot;, you get the best of the benefits of sleep, and none of the wake-up disadvantages. If you have to crunch through a deep sleep phase, then fine, skip it and bit the bullet. But be sure to jump on the next one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are in a situation where even an interrupted cycle can be good to grab, do it. For instance, if you are jumping on the train or bus for your commute, just lay your head down and nap (don't miss the stop though). You'll be sleepy and grumpy when you get off, but you'll be back to normal while you walk to your home or office.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But most importantly, have a good night sleep when you can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Necessary War Story&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had to work overnight for the past 5 nights even though I have a full-time job during the day from 9 to 5 (and actually it's more 7am to 7pm + travel time). I usually went home, played with my baby, fed him and put him to bed, spent one hour with my partner watching TV (falling asleep in front of it 2 out of 5 nights) and then napped a bit to be woken up by my alarm I had previously set up for the right time. Problem solved. &lt;strong&gt;BUT&lt;/strong&gt; there's a period of the day (mid-afternoon) where my body is in a deep cycle again where it gets reeeaallly hard to stay awake at work because of the still strong lack of sleep, and I cannot nap at work. In that case, use the other tricks. If you feel like your nose is diving to hit your keyboard, get up, walk around, breath a lot (oxygenation helps!), have something sugary to boost you. And when I am done with that, a good 10 to 12 hour night gets me right back where I was before (or more: I once slept 22hours straight after a very intense week of 140 hours of work... A colleague slept 26 hours straight. Must feel weird to skip a day...)&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Be Active and Healthy&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Fatigue is not the only bad effect of sleep deprivation. It's only the most obvious one. You also ruin your metabolism and your body's ability to process nutrients efficiently, and by perturbing your sleep schedule your disrupt the scheduling of many other things. Your appetite and good functioning of your digestive system being another one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You also screw up a few other things. Feel sticky and stinky during these crunch periods, even though you take showers all the time - because they also keep you awake? Well, that's normal, your perspiration system is also not happy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other things include cariovascular activity (slower heart-rate and low blood pressure, but evidently higher heart-rate whenever you get back into stress mode), lack of focus and coordination (you get clumsy and make mistakes all the time).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might not be worth it. I always used to have people telling me &quot;you can't do that, that's inefficient. You'd be better off sleeping and then working. Working while sleep deprived is counter-productive.&quot; They might be right in some cases, but in others obviously your deadline is so short that there's no going around it: it has to be done now, or it won't be done at all. It's up to you to decide.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Energy Drinks&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can always resort to energy drunks. I used to never use any, out of personal distaste and also because of side-effects and a refusal to become used to these. But now that I'm not at uni anymore and not able to go through weeks hardly sleeping more than 1 or 2 hours a week, I do use some occasionally if I need a boost. Or caffeine tablets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But still, don't use these too much. They have bad side effects (usually your stomach won't be a fan, and it's already not happy with your sleep deprivation anyway). Including dependency (coffee as well). See the &lt;strong&gt;Side Readings&lt;/strong&gt; section.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a counter-point to the &quot;be healthy&quot; part: note that even if it's not always &quot;healthy&quot;, eating/drinking will reboot your body into an active state, thus turning you back on as well (don't eat a whole turkey though, or then you go into full-sleep mode!).&#xA;have a coke, a bagel, something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep yourself hydrated. Very important. Done any sport? Think like a marathon-runner!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep yourself fed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And please take showers.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Be a Team&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Because 2 (sleepy) brains are (potentially) better than one. Well, if you don't work with a donkey.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When working very intensive hours, I used to do it always with a very great colleague.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The plus sides:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You &lt;em&gt;check&lt;/em&gt; each other's code and documentation.&lt;/li&gt;&#xA;&lt;li&gt;You nap while he codes, and vice-versa.&lt;/li&gt;&#xA;&lt;li&gt;You &lt;em&gt;check&lt;/em&gt; each other's decisions.&lt;/li&gt;&#xA;&lt;li&gt;You &lt;em&gt;control&lt;/em&gt; each other's health: if one of you starts to really be a mess, the other one is the voice of reason.&lt;/li&gt;&#xA;&lt;li&gt;You keep each other's mood up.&lt;/li&gt;&#xA;&lt;li&gt;You can get stuff for each other (coffee, food...). Even if taking a break together to relax (or brainstorm idly) might be better, if you need to work around the clock, then that team work does wonders.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You need someone you are really comfortable working with for this, but the benefits are huge. Obviously pair programming is always a good thing, but it's vital in these situations.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Aside Considerations&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You might want to change your job. Except if you like/love it. But be sure that you like it more than your health.&lt;/li&gt;&#xA;&lt;li&gt;Try to improve your team's aptitudes and teamwork to avoid these crunch periods.&lt;/li&gt;&#xA;&lt;li&gt;Try to improve your office environment to make these conditions easier to deal with:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;dedicated sleeping areas (well, the floor does fine for me... but I wouldn't mind a couch!)&lt;/li&gt;&#xA;&lt;li&gt;no bright lights&lt;/li&gt;&#xA;&lt;li&gt;if you can dim said lights, then even better&lt;/li&gt;&#xA;&lt;li&gt;free food&lt;/li&gt;&#xA;&lt;li&gt;free coffee&lt;/li&gt;&#xA;&lt;li&gt;deals with neighbouring shops for food pick-ups&lt;/li&gt;&#xA;&lt;li&gt;a dedicated area for relaxation. Not the one dedicated for sleeping! Nothing worse than morons waking you up because they don't care or because they take their break and have a heated discussion about the Tannenbaum/Torvals feud.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;Side Readings&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;On Coffee:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://lifehacker.com/5609168/caffeine-dependency-is-easier-to-develop-than-you-think&quot; rel=&quot;nofollow&quot;&gt;Caffeine Dependency is Easier to Develop Than you Think&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://lifehacker.com/5585217/what-caffeine-actually-does-to-your-brain&quot; rel=&quot;nofollow&quot;&gt;What Caffeine Does to Your Brain&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;What the heck, if you like coffee, embrace the whole &lt;a href=&quot;http://lifehacker.com/tag/coffee/&quot; rel=&quot;nofollow&quot;&gt;LifeHacker Coffee tag&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;PS: For the record, I come from a very intensive background, plus I used to have pretty strong insomnia issues (which I had before that career, but at times throughout as well), so I got used to dealing with sleep deprivation.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-12-02T17:40:13.947" LastActivityDate="2010-12-02T17:40:13.947" />
  <row Id="23172" PostTypeId="2" ParentId="23157" CreationDate="2010-12-02T17:22:58.417" Score="1" ViewCount="" Body="&lt;p&gt;This is my opinion on my question, keeping in mind that going to college is optional.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There may be limited space, but that should be no reason to only allow the best in. The point of any formal course should be to take a person at skill level x and bring that skill to level y. What will happen if you only allow the best in is a gradual raising of the skills bar just to start, which eventually raises the education level from say, a bachelor's to a doctorate. Then you start getting prep schools...and eventually a huge edifice builds up, just to get into one school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The program should be open to everyone who qualifies and should have clearly defined standards for progressing to the next level. If there is limited room, then accept qualified students until that room is filled - don't pick and choose your students. And definately do &lt;em&gt;not&lt;/em&gt; flunk people out of the whole program if they fail a course, even multiple times. Let them take it again until they get it or drop out on there own. (This point I am willing to compromise on slightly, but never flunking after the first failure. Perhaps a teacher may have to sit down with the student and help find a better course of study in some cases, though.) Be tough, give the student a chance to learn, and a good environment to learn in, and high expectations, and he will learn well.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-02T17:22:58.417" CommentCount="19" />
  <row Id="23173" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T17:23:05.047" Score="6" ViewCount="" Body="&lt;p&gt;Well, you asked :) One by one:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* Your project failed.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That is hardly new. We've all failed privately, and we've all failed in full view of our peers. Anyone who has gone through primary and secondary education has experienced this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I can't make mistakes and expect stable employment, you should consider sending a memo to HR letting them know that human beings will be banned from future consideration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Several failures in a row means you either have unreasonable demands and specifications, or you don't learn from your mistakes. Either scenario begs immediate action.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is conceivable that many people sign onto something just to gain employment, then work out some way of making the requirements happen.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* You failed 10 interviews in a row.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Please define 'fail'. A lot of companies conduct interviews, even when they have no intention of hiring someone. You might be testing your pool to see if you can meet a new client's requirements, determining a realistic cost to migrate something to a new platform, or lots of other reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are an applicant and get called for an interview, be sure to ask if it is for an immediate need and available position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they were all immediate positions, I'm quite certain that someone who never got a call back would realize that they &lt;em&gt;must&lt;/em&gt; be doing something wrong. Part of my job is also to keep out brilliant people who happen to have very toxic personalities. The difference between me and most, I'll happily tell you &quot;&lt;em&gt;Your experience is great, your qualifications rock, but I don't think your personality would fit in well here. During the interview, I found you to be quite antagonistic and rather arrogant because (...)&lt;/em&gt;&quot;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* What you have spent days coding was rejected by your team.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That happens. As others noted, save it. Do it again. This is why we call it work. I think, in this case, you probably did not involve the team very much in what you were doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It could also be that requirements changed yesterday, or an hour ago. This should be an exception, not a norm, however. Peer review is as brutal as it is helpful. If your code is constantly dismissed as 'inadequate' (or something like that), you should spend more time picking brains and involving others. I believe this question to be a fallacy in most team settings, unless the 'team' is anything but self describing.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* Nobody listens to your ideas in your company.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Again, this needs context. How long have you been there? How much do your fellow hackers trust in your ability? Have you considered that ideas that result in more work for many people might invite ANY reason to dismiss it? I once had something dismissed because it was not IPV6 ready, yet it used a simple domain socket on the loopback device (exclusively). The person who sunk it simply couldn't take any more work to do. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, how well do you articulate yourself? Can you make friends and influence people?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* The design pattern you introduced with force in your team created a mess.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Hence why force should have been avoided. Being able to talk is not a prerequisite for being able to listen. No other comments.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* Your colleague (you don't like) got the promotion that you wanted to get.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Any time you deal with management you approach an event horizon. It is conceivable that the motivation for the promotion was purely political, and not based on merit. Yet, you have the ability to realize that you can avoid emotional &lt;a href=&quot;http://en.wikipedia.org/wiki/Spaghettification&quot; rel=&quot;nofollow&quot;&gt;spaghettification&lt;/a&gt; by realizing that the universe isn't always fair and not getting sucked in (by dwelling on it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You really need that kind of attitude when you &lt;em&gt;do&lt;/em&gt; like the person who got promoted ahead of you. Perhaps consider rephrasing that part of the question, if your buddy got promoted ahead of you, I think you'd find it might also disrupt a friendship.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* You deleted the production database.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Feces occurs. Hopefully you learn from your mistakes. During an interview, I often ask people to tell me about the worst mistakes that they ever made, in an attempt to gauge their &lt;em&gt;actual&lt;/em&gt; experience verses what they put on their CV. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first line of defense is not putting someone in a position where they could do something like that. Hopefully, this only happens when someone who knows better has a major brain fart, and I wouldn't work (as mentioned prior) for anyone who frowned on human beings behaving like human beings. &lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-02T21:30:58.520" LastActivityDate="2010-12-02T21:30:58.520" CommentCount="3" />
  <row Id="23174" PostTypeId="2" ParentId="21067" CreationDate="2010-12-02T17:27:13.607" Score="3" ViewCount="" Body="&lt;p&gt;Scala.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have mentioned &lt;a href=&quot;http://programmers.stackexchange.com/questions/6847/whats-your-favorite-programming-language/12403#12403&quot;&gt;a lot of reasons&lt;/a&gt; under this thread.&lt;/p&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-12-02T17:27:13.607" CommunityOwnedDate="2011-01-05T10:52:43.233" />
  <row Id="23175" PostTypeId="2" ParentId="23157" CreationDate="2010-12-02T17:27:14.107" Score="2" ViewCount="" Body="&lt;p&gt;I had two introductory computer science courses freshman year. The first used Pascal. The second used Assembler and Lisp and was the weedout course. All subsequent courses used C, though there wasn't any course that taught C. If you wanted to learn C, you were given a pamphlet listing the basic syntax elements with pointers to man pages for library calls. That system seemed to work well, and the only thing I would have changed about it was eliminating the Pascal course. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-02T17:27:14.107" CommentCount="4" />
  <row Id="23176" PostTypeId="2" ParentId="22525" CreationDate="2010-12-02T17:27:40.423" Score="3" ViewCount="" Body="&lt;p&gt;Hooray for curiosity!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's very good to have some notion what's really going on at the lowest levels of a complex system, even if there's no logical need to know for one's everday duties.   By far the best way to grok things at the bits level is build your own CPU.   You have to think about machine language-level opcodes, understand why orthogonal instruction sets are so good, complications of interrupt handling, tradeoffs between complex circuits vs. microcode (e.g in multiplication units), and oh so much other fun!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But that, obviously, takes electronics know-how and is time consuming, so next best thing is toy around with an antique-style 8-bit CPU.  Microcontrollers like the 8051 are still in widespread use and available to hobbyists.  That still takes some know-how in herding electronics and making LEDs glow w/o smoking, and costs $$ if you're not already equiped for electronics. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next best thing after that: toy around in a CPU simulator (emulator? I get those terms mixed up) -- these exist for Z80, 6502, 8086... all the old 8-bitters. That may be the most educational and fun for an applications programmer who doesn't know which end of the soldering iron to hold (though one learns that pretty fast :)   How text is written to video memory, how assembly code tricks help with performance... there's plenty of fun stuff to explore at this level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not so sure about learning C as just another language, without some initial understanding of CPU inner workings.  Knowing how bits are sent between CPU registers and how the memory accessed, helps tremendously with truly getting pointers and other C language concepts. &lt;/p&gt;&#xA;" OwnerUserId="4280" LastActivityDate="2010-12-02T17:27:40.423" CommentCount="1" />
  <row Id="23177" PostTypeId="2" ParentId="19752" CreationDate="2010-12-02T17:34:28.387" Score="1" ViewCount="" Body="&lt;p&gt;Surprised no one has mentioned it, but there are drugs out there that can help with this for short term.  In Europe they are OTC, I think they are schedule 6 in U.S. (meaning you need a prescription, claim &lt;a href=&quot;http://www.suite101.com/article.cfm/sleep_apnea/114768&quot; rel=&quot;nofollow&quot;&gt;SWSD&lt;/a&gt;, which you would technically have), but check out modafinil and related substances (brand names for some: Provigil, Modavigil, Armodafinl, Nuvigil).  Many are somewhat pricey.  Also check out 5 hour energy, it has some caffeine, but that's not its only trick.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, as many others have said, start looking for a new job.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-02T17:34:28.387" />
  <row Id="23178" PostTypeId="1" AcceptedAnswerId="23194" CreationDate="2010-12-02T17:34:32.613" Score="4" ViewCount="144" Body="&lt;p&gt;Unit: A multithreaded unit reads data of a queue and processes it, sending it off to another queue. When the last item is processed (null value found) the process stops.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Test: Place a set of known data in the queue and run. Check that data placed on the output queue is correct.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the unit is incorrectly programmed, it may continue trying to read and process nulls of the queue. This may or may not result in an exception (using Java as the example language). So this test could conceivably cause an infinite loop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should the test keep track of the number of items read off the queue and throw an error if more than the specified number of elements is read? or should the test continue to run, knowing that the runner(human) will see that it is not ending?&lt;/p&gt;&#xA;" OwnerUserId="6415" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-12-02T18:14:41.900" LastActivityDate="2011-05-21T09:27:40.723" Title="Should a unit/integration test that may result in an infinite loop have a clear assertion?" Tags="&lt;java&gt;&lt;testing&gt;&lt;unit-testing&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="23179" PostTypeId="2" ParentId="23038" CreationDate="2010-12-02T17:35:13.033" Score="3" ViewCount="" Body="&lt;p&gt;I wouldn't worry about it as long as you still &lt;strong&gt;remember how to learn&lt;/strong&gt;. Or at least remember where you can go to re-learn what you've forgotten.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, rather then memorizing mathematical formulas, I find it much better to memorize where to find mathematical formulas. It is easier for me to remember, and it is probably kept updated while my memory may not be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Providing that I at one point understood the material, a simple refresher is all that is needed to start remembering the stuff I had forgotten.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-12-02T17:35:13.033" />
  <row Id="23180" PostTypeId="2" ParentId="22525" CreationDate="2010-12-02T17:39:15.033" Score="1" ViewCount="" Body="&lt;p&gt;Low level programming is for the corner cases where there is a requirement not immediately present on normal desktop computers.  This might be a speed bottleneck, or a memory bottleneck or something completely different, and it is very frequently very interesting to see what can be done given those requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think of it as Haikus or Limericks, where the restrictions make it interesting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To give you an idea of what is possible in what would seem impossible today, here is one of the greatest hacks ever.  Chess in 1 Kb RAM!   &lt;a href=&quot;http://users.ox.ac.uk/~uzdm0006/scans/1kchess/&quot; rel=&quot;nofollow&quot;&gt;http://users.ox.ac.uk/~uzdm0006/scans/1kchess/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-02T17:39:15.033" CommentCount="2" />
  <row Id="23181" PostTypeId="2" ParentId="23157" CreationDate="2010-12-02T17:43:23.757" Score="9" ViewCount="" Body="&lt;p&gt;I'm going to answer from a different point of view and hope not to get dinged.  Speaking to the large quantity of bad programmers out there (which is what I think you're hoping to address by the competitive education), it's really a supply and demand issue.  Even now there is a great demand for people that can do any amount of programming (or even fake it), so even a crappy &quot;programmer&quot; can get a job.  Cutting the number that get a degree is not going to decrease the demand or increase the supply.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-02T17:43:23.757" CommentCount="7" />
  <row Id="23182" PostTypeId="1" CreationDate="2010-12-02T17:46:55.423" Score="4" ViewCount="324" Body="&lt;p&gt;What are the common bugs introduced by refactoring, carelessness, and newbies?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to request the experienced programmers here to share their experience and list the bugs they used to introduce when they were inexperienced.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your response, please write a headline mentioning &lt;strong&gt;the kind of bug in bold text&lt;/strong&gt;, followed by few linebreaks, and then an explanation, cause of the bug, and finally the fix.&lt;/p&gt;&#xA;" OwnerUserId="9020" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-02T19:10:42.380" LastActivityDate="2010-12-03T05:20:59.660" Title=".Net Best Practices : Common Bugs Introduced By Refactoring, Carelessness, and Newbies" Tags="&lt;.net&gt;&lt;c#&gt;&lt;bugs&gt;&lt;refactoring&gt;&lt;debugging&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="2" />
  <row Id="23183" PostTypeId="2" ParentId="23182" CreationDate="2010-12-02T17:48:52.207" Score="1" ViewCount="" Body="&lt;h3&gt;INotifyPropertyChanged bug introduced by refactoring, misspelling, case-mismatch etc.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Sometimes we change the name of some of our properties, and we forget to change the &quot;string&quot; we pass to&lt;code&gt;OnPropertyChanged()&lt;/code&gt; method (&lt;strong&gt;especially when we call this method from somewhere else&lt;/strong&gt;), or simply misspell it, including case-mismatch. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public string FirstName //earlier it was simply 'Name'&#xA;{&#xA;      get { return m_name; }&#xA;      set &#xA;      { &#xA;          m_name = value ;&#xA;          OnPropertyChanged(&quot;Name&quot;); //still 'Name'. Bug!&#xA;         //or, OnPropertyChanged(&quot;FirstNane&quot;); //changed, but misspelled. Bug!&#xA;      }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;h3&gt;Fix&lt;/h3&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;protected void OnPropertyChanged(string propertyName)&#xA;{&#xA;   //this raises exception if there is something wrong (only in debug mode!).&#xA;   RuntimeAssert.ValidatePropertyName(this, propertyName); &#xA;&#xA;   //your code here&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Here is the implementation of &lt;em&gt;RuntimeAssert&lt;/em&gt; class.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;   public static class RuntimeAssert&#xA;    {&#xA;        private static Dictionary&amp;lt;Type, List&amp;lt;string&amp;gt;&amp;gt; ClassPropertyMap = new Dictionary&amp;lt;Type, List&amp;lt;string&amp;gt;&amp;gt;();&#xA;        private static List&amp;lt;string&amp;gt; GetProperties(Type type)&#xA;        {&#xA;            if (!ClassPropertyMap.ContainsKey(type))&#xA;            {&#xA;                PropertyInfo[] props = type.GetProperties(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);&#xA;                ClassPropertyMap.Add(type, new List&amp;lt;string&amp;gt;(props.Where(p =&amp;gt; true).Select(p =&amp;gt; p.Name)));&#xA;            }&#xA;            return ClassPropertyMap[type];&#xA;        }&#xA;        [Conditional(&quot;DEBUG&quot;)]&#xA;        public static void ValidatePropertyName(object instance, string propertyName)&#xA;        {&#xA;            ValidatePropertyName(instance.GetType(), propertyName);&#xA;        }&#xA;        [Conditional(&quot;DEBUG&quot;)]&#xA;        public static void ValidatePropertyName(Type type, String propertyName)&#xA;        {&#xA;            List&amp;lt;string&amp;gt; properties = RuntimeAssert.GetProperties(type);&#xA;            if (!properties.Contains(propertyName))&#xA;            {&#xA;                string message = String.Format(&quot;Property '{0}' not found in class '{1}'&quot;, propertyName, type.FullName);&#xA;                throw new PropertyNotFoundException(message);&#xA;            }&#xA;        }&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And finally, &lt;em&gt;PropertyNotFoundException&lt;/em&gt;  (it's used in above class).&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class PropertyNotFoundException : Exception&#xA;    {&#xA;        public PropertyNotFoundException(string message) : base(message) &#xA;        {&#xA;&#xA;        }&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="9020" LastEditorUserId="9020" LastEditorDisplayName="" LastEditDate="2010-12-03T05:20:59.660" LastActivityDate="2010-12-03T05:20:59.660" CommentCount="6" />
  <row Id="23184" PostTypeId="2" ParentId="23146" CreationDate="2010-12-02T17:52:13.913" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Enforcing unrepeatable passwords leaks information&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How? Because every time a cracker attempts to create a new user with a simple password your system responds with &quot;Nope, can't have that password&quot;, the cracker says &quot;Goody, that's one for the list&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Leaking information about your security is generally a bad thing. OK, third parties knowing the algorithm is fine (it needs peer review) but allowing a dedicated cracker to infer keys - bad, really, really bad. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Resources describing good and bad password management policies&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read &lt;a href=&quot;http://www.wired.com/politics/security/commentary/securitymatters/2007/01/72458&quot; rel=&quot;nofollow&quot;&gt;this article&lt;/a&gt; by security expert Bruce Schneier for an in-depth discussion of password strength.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read &lt;a href=&quot;http://www.cl.cam.ac.uk/~rja14/shb10/angela2.pdf&quot; rel=&quot;nofollow&quot;&gt;this PDF&lt;/a&gt; by security researchers Philip Inglesant &amp;amp; M. Angela Sasse for an in-depth discussion of &quot;The True Cost of Unusable Password Policies&quot;. To quote from the conclusion:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Against the world-view that “if only&#xA;  [users] understood the dangers, they&#xA;  would behave differently” [12], we&#xA;  argue that “if only security managers&#xA;  understood the true costs for users&#xA;  and the organisation, they would set&#xA;  policies differently”.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;False sense of security&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the client pipes up with, &lt;em&gt;&quot;If no-one has the same password then if one is cracked then only one person is affected.&quot;&lt;/em&gt; No. Everyone is affected because the cracker has demonstrated that your password system is fundamentally flawed: it is vulnerable to a dictionary attack in an on-line system. It should not have been possible for a cracker to attempt multiple guesses against a password in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;For on-line access 6 characters is enough&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Going off-topic, but I thought it would be worth mentioning for interested readers. In security terms an on-line system is one that has an active security management process monitoring and controlling access to the data. An off-line system is one that does not (such as having encrypted data on a hard disk that has been stolen).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a password system that is on-line then you don't need high security passwords. The passwords only have to be sufficiently complex to prevent guesses within 20 attempts (so a simple &quot;name of spouse/child/pet&quot; attack will fail). Consider the following algorithm:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Cracker guesses password using &quot;root plus suffix&quot; approach to minimise guesses&lt;/li&gt;&#xA;&lt;li&gt;Credentials rejected and further login attempts prevented for N*10 seconds&lt;/li&gt;&#xA;&lt;li&gt;If N &gt; 20 lock account and inform administrator&lt;/li&gt;&#xA;&lt;li&gt;N = N +1&lt;/li&gt;&#xA;&lt;li&gt;Inform user that next login can occur at time T (calculated above)&lt;/li&gt;&#xA;&lt;li&gt;Goto step 1&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;For a simple 6 character password the above algorithm will prevent dictionary attacks, whilst allowing even the most inept user on a mobile keypad to get through eventually. Nothing will prevent the so-called &quot;rubber hose attack&quot; where you beat the holder of the password with a rubber hose until they tell you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For an off-line system when encrypted data is lying around on a flash drive and the cracker is at liberty to try anything against it, well you want the most resilient key you can find. &lt;a href=&quot;http://en.wikipedia.org/wiki/One-time_pad&quot; rel=&quot;nofollow&quot;&gt;But that problem is already solved&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-03T11:04:15.980" LastActivityDate="2010-12-03T11:04:15.980" CommentCount="2" />
  <row Id="23185" PostTypeId="2" ParentId="23182" CreationDate="2010-12-02T17:54:22.073" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Property/String mismatch&lt;/strong&gt; &#xA;namely when using O/RM frameworks without linq:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    Dim crit As DetachedCriteria&#xA;    crit = DetachedCriteria.For(GetType(RemitLineItemEntity), &quot;remit&quot;)&#xA;&#xA;    If Not String.IsNullOrEmpty(LastName) Then&#xA;        If LastName.Contains(&quot;%&quot;) Then&#xA;            crit = crit.Add(New LikeExpression(&quot;LastName&quot;, LastName))&#xA;            countCrit = countCrit.Add(New LikeExpression(&quot;LastName&quot;, LastName))&#xA;        Else&#xA;            crit = crit.Add(Expression.Eq(&quot;LastName&quot;, LastName))&#xA;            countCrit = countCrit.Add(Expression.Eq(&quot;LastName&quot;, LastName))&#xA;        End If&#xA;&#xA;    End If&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Then changing the LastName property on the object to SurName, or such.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Fix&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only one I know of is to use a tool to do refactoring (which most do).  They should catch the quoted field name as well, but usually use human verification on it (which leads to human error). &lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-02T17:54:22.073" CommentCount="1" />
  <row Id="23186" PostTypeId="2" ParentId="23157" CreationDate="2010-12-02T17:56:02.040" Score="1" ViewCount="" Body="&lt;p&gt;A university is &lt;em&gt;not&lt;/em&gt; a vocational school. AFAIK, the music schools that weed out the lowest performers are schools that more or less train people to be professional musicians. Berklee, for example does (or used to do this), but they spit out studio musicians like a factory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, most universities do NOT do this for music students, as most universities are an opportunity to learn, and &lt;em&gt;learn how to learn&lt;/em&gt;. This is true for music as much as for computer science / sw engineering.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-12-02T17:56:02.040" />
  <row Id="23187" PostTypeId="2" ParentId="2164" CreationDate="2010-12-02T17:57:29.277" Score="1" ViewCount="" Body="&lt;p&gt;Why do you care what this person says?  Are they your boss?  Who cares?  Every job has a guy, hopefully not you, that they avoid, or they hear him coming down the hall and they duck.  They just don't like him.  They may not even know why.  But that's just the way the world is.  Be cordial and who cares.  Sounds like you want your pound of flesh and to smack him around a little bit.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-02T17:57:29.277" CommentCount="1" />
  <row Id="23188" PostTypeId="2" ParentId="23157" CreationDate="2010-12-02T17:58:13.927" Score="0" ViewCount="" Body="&lt;p&gt;All colleges have an admission process that only accepts some of the applicants.  The percentage of applicants who are accepted depends on how many seats are available, and how many people apply.  Top music schools have high reputation, meaning that lots of people want to get in.  The same is true for top universities.  You can probably find a crappy school with a crappy music department that will accept you even if you are tone deaf, just as you can find a crappy college with a crappy CS department that will accept you even if you cannot program your way out of a paper bag.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, market forces sort things out.  If java schools turn out bad programmers, the managers will eventually catch on and prefer applicants from non-java schools.  This will then increase the reputation of the non-java schools, which will in turn cause other schools to emulate them.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-12-02T17:58:13.927" />
  <row Id="23189" PostTypeId="1" CreationDate="2010-12-02T18:00:26.117" Score="15" ViewCount="874" Body="&lt;p&gt;Either I just have bad luck, I am wrong a lot, or there are an increasing number of pedants trolling on StackOverflow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We know that programmers are pedantic (&lt;a href=&quot;http://programmers.stackexchange.com/questions/22210/why-are-programmers-so-pedantic&quot;&gt;this question&lt;/a&gt;), especially toward non-programmers. But as a programmer, when you are trying to help others by answering questions on StackOverflow, what do you do to avoid being called out in comments, voted down, or engaged in a useless argument because of a minor oversight, or worse, something you purposely didn't address to prevent  confusing the asker with too much information?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;: I recently had someone argue with me about my choice of escaping in a regular expression: I chose &lt;code&gt;(?&amp;lt;=\=)&lt;/code&gt; (a look-behind) when apparently &lt;code&gt;(?&amp;lt;==)&lt;/code&gt; was all that was needed.  I felt my answer was more safe (I didn't have a good reference to immediately find out whether the escape was unnecessary or necessary in all regular expression variations) and I thought it was less confusing to someone new to regular expression look-aheads.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Be less thorough so that there are less possible points of contention in my answer?&lt;/li&gt;&#xA;&lt;li&gt;Burden the asker with more information than they might need at that point in time?&lt;/li&gt;&#xA;&lt;li&gt;Just ignore it?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Note&lt;/strong&gt;: &#xA;I didn't ask this question on meta.SO because I am not talking about the workings of SO, I'm interested in how to improve answers to programming questions in general, for everyone involved&amp;mdash;the asker, and other experts who might also be answering or reading my answer.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-02T22:15:18.777" ClosedDate="2010-12-03T09:17:35.193" Title="How do you avoid being the victim of a syntax pedant on StackOverflow?" Tags="&lt;advice&gt;&lt;personality&gt;" AnswerCount="10" CommentCount="13" FavoriteCount="2" />
  <row Id="23190" PostTypeId="2" ParentId="23189" CreationDate="2010-12-02T18:05:49.500" Score="35" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Just ignore it&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The trolls will always be there...&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-02T18:05:49.500" CommentCount="4" />
  <row Id="23191" PostTypeId="2" ParentId="23189" CreationDate="2010-12-02T18:08:15.523" Score="14" ViewCount="" Body="&lt;p&gt;IMO, I think it's great to receive critical feedback like this. I love finding out how others do things and your example showed this quite well. It is very unfortunate when people do down vote you for something like this but I think that's just the way they are. Also, remember not to antagonize the dispute. You pretty much just have to roll with it and what happens, happens.&lt;/p&gt;&#xA;" OwnerUserId="8975" LastActivityDate="2010-12-02T18:08:15.523" CommentCount="1" />
  <row Id="23192" PostTypeId="2" ParentId="19752" CreationDate="2010-12-02T18:13:33.117" Score="1" ViewCount="" Body="&lt;p&gt;One piece of advice would be to ensure you are working at an optimized time. I find that when I'm at crunch time its better to be sleeping when your usual interruptions would occur then work the hours that nobody else wants to work. If I plan to sleep from 6AM to 12PM I tend to miss most of the meetings and the other time is then far more productive.&lt;/p&gt;&#xA;" OwnerUserId="1600" LastActivityDate="2010-12-02T18:13:33.117" />
  <row Id="23193" PostTypeId="2" ParentId="23120" CreationDate="2010-12-02T18:14:18.170" Score="4" ViewCount="" Body="&lt;p&gt;I just checked one of my TweetDeck columns:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Elijah Manor, 31882 followers&lt;/li&gt;&#xA;&lt;li&gt;Mark Needham, 1832&lt;/li&gt;&#xA;&lt;li&gt;Ron Jeffries, 4657&lt;/li&gt;&#xA;&lt;li&gt;Reginald Braithwaite, 1711&lt;/li&gt;&#xA;&lt;li&gt;Roy Osherove, 4249&lt;/li&gt;&#xA;&lt;li&gt;Phil Haack, 11483&lt;/li&gt;&#xA;&lt;li&gt;Jeremy Miller, 3943&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;OK, enough. Don't even think about hiring any of them :-)&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-12-02T18:14:18.170" CommentCount="6" />
  <row Id="23194" PostTypeId="2" ParentId="23178" CreationDate="2010-12-02T18:16:46.233" Score="7" ViewCount="" Body="&lt;p&gt;Tests should always terminate (ideally quickly!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a test that doesn't terminate, your continuous integration server will fail its test run, which is great, but the failure will likely be &quot;your test suite took too long so I killed it&quot;, which isn't very helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this case, if you have N items in the list and you've read N + 2 items already, then your test should fail, and explain why (say, a message like &quot;test failed because it was about to loop infinitely&quot;).&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-12-02T18:49:09.327" LastActivityDate="2010-12-02T18:49:09.327" CommentCount="1" />
  <row Id="23195" PostTypeId="2" ParentId="23157" CreationDate="2010-12-02T18:17:10.087" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You assume that computer courses are the indicator of skill to employers&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I fail at your high-brow school that only accepts the top 1%. Unless it is the stated authority and &lt;em&gt;controls access to the top-jobs&lt;/em&gt; nobody will care. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your approach applies to controlled professions like accountancy and law where graduating from the top school guarantees a great career. In IT, it's much more of a meritocracy driven largely by intense demand from employers over a scarce resource.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&quot;We don't care that you're hopeless, just get the website up!&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-02T18:17:10.087" />
  <row Id="23196" PostTypeId="2" ParentId="23120" CreationDate="2010-12-02T18:17:52.037" Score="12" ViewCount="" Body="&lt;p&gt;It doesn't take a long time to post a tweet: probably less than it would take to get up, walk to the water cooler, and strike up a brief chat with a coworker. So I don't see Twitter participation as a problem so long as work gets done (well and on time), especially if tweet content is mostly relevant to the job. &lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-02T18:17:52.037" />
  <row Id="23197" PostTypeId="2" ParentId="23189" CreationDate="2010-12-02T18:20:32.330" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.goear.com/listen/b6d55d8/everybody-wants-to-rule-the-world-tears-for-fears&quot; rel=&quot;nofollow&quot;&gt;Everybody wants to rule the world&lt;/a&gt;. If you answer questions on SO, chances are you were trying to be helpful. Keep in mind that examples that you provide should be aimed at someone who didn't know what you are trying to explain, hence some people will be very pedantic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;9/10 times, it is people who just care about the quality of your answer. 1/10 times you might encounter someone who can never be pleased. The point is, you have one person to please, the one who asked the question .. and you should provide them with as much information as possible while listening to your peers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Editing someone else's answer is 'too taboo' for many people, even though the system was designed for that, so you might get many down votes with just a few comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then, you have these:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/ORlHl.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Worry about the quality of your answer, while taking into consideration what you peers have to say. I don't consider someone who drives by and dings me for a missing semicolon to be a peer.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-02T18:20:32.330" CommentCount="3" />
  <row Id="23198" PostTypeId="2" ParentId="23189" CreationDate="2010-12-02T18:25:26.840" Score="2" ViewCount="" Body="&lt;p&gt;Learn to code the only true and right way!&lt;/p&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-12-02T18:25:26.840" CommentCount="3" />
  <row Id="23199" PostTypeId="2" ParentId="23120" CreationDate="2010-12-02T18:27:16.463" Score="16" ViewCount="" Body="&lt;p&gt;There's a good chance you shouldn't hire this person.  If you've got to the stage of considering whether their Twitter profile is good enough reason to reject them, then I suspect you have some fairly serious doubts.&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-12-02T18:27:16.463" CommentCount="8" />
  <row Id="23200" PostTypeId="2" ParentId="23120" CreationDate="2010-12-02T18:36:42.800" Score="7" ViewCount="" Body="&lt;p&gt;A person who Tweets much &lt;strong&gt;can implicitly&lt;/strong&gt; mean that the person also &lt;strong&gt;reads many&lt;/strong&gt; Tweets. This makes hiring even more uncertain. &#xA;For an employer who doesn’t know anything about Twitter makes it even worse.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2011-03-23T07:50:17.270" LastActivityDate="2011-03-23T07:50:17.270" CommentCount="3" />
  <row Id="23201" PostTypeId="2" ParentId="23157" CreationDate="2010-12-02T18:36:54.157" Score="0" ViewCount="" Body="&lt;p&gt;From my experience in college I can tell you that NO matter what school we're talking about IF they only teach theory and do no or little practice IN SCHOOL then you can avoid going to that school or talking about it... I've been 1 year and a few months and quit because I've felt that my place is not there -- after few classes in second year and 5 errors in a 15 lines of code program(demo program written by the teacher...)&lt;/p&gt;&#xA;" OwnerUserId="8747" LastActivityDate="2010-12-02T18:36:54.157" />
  <row Id="23202" PostTypeId="2" ParentId="23189" CreationDate="2010-12-02T18:37:41.847" Score="13" ViewCount="" Body="&lt;p&gt;if they're right, thank them and fix it, or at least explain it so you don't confuse people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if they're wrong, ignore it&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: to take the question literally - how to &lt;em&gt;avoid&lt;/em&gt;... - the answer is: proofread!&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-12-02T22:15:18.777" LastActivityDate="2010-12-02T22:15:18.777" CommentCount="1" />
  <row Id="23203" PostTypeId="2" ParentId="23189" CreationDate="2010-12-02T18:40:48.913" Score="3" ViewCount="" Body="&lt;p&gt;In most cases, it's safe to ignore it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As @Aaron says up, it is great to receive critical feedback. That's what these sites are all about, right? But, there is a difference in receiving critical feedback and what you call &lt;em&gt;syntax pedants&lt;/em&gt; (cute :-).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Critical feedback, in my opinion is expressed in two ways. One is writing down your answer with your version of the solution, and with your opinions (obviously). The other is either in your answer, or in the comments of the answeree giving reasons why and how can his particular solution (the answer of the answeree) be changed for the better. Notice I choose my words carefully here - just emphasizing that something could be made better in a way, and for what reasons, but not in any case criticizing the original solution. Heaven forbid, changing it! The original author had a way why he choose that particular solution, and we all know there is no such thing as a &quot;best solution&quot; to a problem. Your question gives a nice example of that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then there are &lt;em&gt;syntax pedants&lt;/em&gt;. If I undestood from the context, they're what we used to call &quot;usenet spelling or grammar police&quot; in the old days (well, not so old). They're the opposite of &quot;a friendly nudge&quot; in terms of technical clarification. They will insist that their answer is &quot;better&quot;, and will actively try to emphasize it as &quot;the correct one&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally, this is a community edited site, and with some exceptions the community can make edits and modify the contents to their liking. Provided they have enough rep. of course, which is usually just a matter of time. Personally, I take the view, that apart from spelling errors, the original answer should stay, and should not be modified unless you're putting something new and useful into it. Stick to modifying it only if there is an apparent error.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If someone has a different view on the problem, he is free to put it in his own separate answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why I think this is the way it should work? Because smart people are few, and the majority is well, (there are the words of Linus Torvalds, so don't blame me for this :-) idiots. And what happens when you put something good into the hands of idi... uhmm, the majority. They take it down to their level. BAD.&lt;br&gt;&#xA;Of course, there is the opposite example of that as well, but usually the bright ones know how to behave and post their answers in a proper way without disturbing yours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just my 0,02$&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-02T18:40:48.913" CommentCount="4" />
  <row Id="23204" PostTypeId="2" ParentId="23189" CreationDate="2010-12-02T18:43:29.810" Score="1" ViewCount="" Body="&lt;p&gt;My opinion is:&#xA;People trolling, or they just want to show their burning intellect - doesn't matter. In internet and in real I always pass through myself all the information that comes to me. But there is a trick - I always filter all incoming information. If a troll just flooding in my post/comment - I see it. If there is nothing interesting - I'll ignore it. If I'm interesting how this troll will behave in some situation and what it will say - I'll ask it (read as: &quot;I feed it&quot;). Sometimes even trolls can provide very interesting information if you read it &quot;line after line&quot; and pass through filter, just not to harm yourself :)&lt;/p&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-12-02T18:43:29.810" CommentCount="1" />
  <row Id="23205" PostTypeId="2" ParentId="22907" CreationDate="2010-12-02T18:47:45.953" Score="2" ViewCount="" Body="&lt;p&gt;I found C# In A Nutshell to be an excellent reference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; Turns out I've &lt;a href=&quot;http://programmers.stackexchange.com/questions/33731/which-c-book-to-take/33742#33742&quot;&gt;answered this question already&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="7814" LastEditorUserId="7814" LastEditorDisplayName="" LastEditDate="2011-02-01T23:41:00.800" LastActivityDate="2011-02-01T23:41:00.800" />
  <row Id="23206" PostTypeId="2" ParentId="21118" CreationDate="2010-12-02T18:52:32.613" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://net.tutsplus.com/&quot; rel=&quot;nofollow&quot;&gt;Nettuts+&lt;/a&gt;&lt;/strong&gt; is a site aimed at web developers and designers offering tutorials and articles on technologies, skills and techniques to improve how you design and build websites. We cover HTML, CSS, Javascript, CMS’s, PHP and Ruby on Rails.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-02T18:52:32.613" />
  <row Id="23207" PostTypeId="2" ParentId="23120" CreationDate="2010-12-02T18:58:13.600" Score="1" ViewCount="" Body="&lt;p&gt;it can go for some negative for me but if he has a great interview ,good recommendation and look all set for the job i will try not to let him go . &lt;/p&gt;&#xA;" OwnerUserId="8843" LastActivityDate="2010-12-02T18:58:13.600" />
  <row Id="23208" PostTypeId="2" ParentId="23182" CreationDate="2010-12-02T19:03:31.877" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Manually written values instead of constants&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public District GetDefaultDistrict() {&#xA;  return GetById(1);&#xA;}&#xA;&#xA;public IList&amp;lt;Revenue&amp;gt; GetRevenues() {&#xA;  return GetByCodes(new [] { 8010, 8011, 8096 });&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and thousands of use of 1, 8010, 8011 and 8096 in other places. Try to image if the default district now is 2 and 8011 moved to 8012.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fix:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public District GetDefaultDistrict() {&#xA;  return GetById(Consts.DEFAULT_DISTRICT_ID);&#xA;}&#xA;&#xA;public IList&amp;lt;Revenue&amp;gt; GetRevenues() {&#xA;  return GetByCodes(Consts.REVENUE_CODES);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and use this constants everywhere where you need to determine default district id and/or other static values.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or even:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public IList&amp;lt;Revenue&amp;gt; GetRevenues() {&#xA;  var codes = GetRevenueCodes(); // get from db&#xA;  return GetByCodes(codes);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;to get actual values from db. But this is just an example.&lt;/p&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-12-02T19:03:31.877" CommentCount="1" />
  <row Id="23209" PostTypeId="2" ParentId="23120" CreationDate="2010-12-02T19:22:07.783" Score="7" ViewCount="" Body="&lt;p&gt;Are you looking for this person to only work 9-5?  Does a programmer really need to work from 9-5?  Might want to check this out:&#xA;&lt;a href=&quot;http://en.wikipedia.org/wiki/ROWE&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/ROWE&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The focus should be on the results of the work, not time spent sitting in a particular location.  If you think they can do the work, hire them.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-02T19:22:07.783" CommentCount="1" />
  <row Id="23210" PostTypeId="2" ParentId="23077" CreationDate="2010-12-02T19:34:34.087" Score="0" ViewCount="" Body="&lt;p&gt;Yes, some people do &lt;strong&gt;consider&lt;/strong&gt;  IT to be easy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether IT is actually easy or difficult is a different question, which I won't try to address.  My opinion is that it's not easy, but I'm not going to back that up in my answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience working in the corporate world, you find that some managers, business analysts, etc. consider programming to be easy, perhaps because they don't quite grasp what programming involves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often you find that the project has been planned out with a waterfall approach, meaning that the business analysts have run around for 3 months trying to figure out what an application is supposed to do and then trying to convey that information by writing Word and Excel documents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those people mentioned above who consider programming to be easy seem to think that at this point it's simply a matter of mindlessly translating the content of the Word and Excel documents into your programming language of choice.  To them, it seems that programming is no more complicated than assembling furniture with a set of instructions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Granted, it's possible that it could be that easy, but that really depends on the quality of the specifications that you're given to start with.  If the specifications are well organized, logical, and cover all of the special cases, not just the &quot;happy path&quot;, then programming the application could be straight-forward.  However, I think it is rarely the case that specifications are that comprehensive and complete.&lt;/p&gt;&#xA;" OwnerUserId="5486" LastActivityDate="2010-12-02T19:34:34.087" />
  <row Id="23211" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T19:38:45.707" Score="0" ViewCount="" Body="&lt;p&gt;Cool question! +1.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The strategy that I would choose in such a situation is:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Take a vacation for 2 weeks (at least!)&lt;/li&gt;&#xA;&lt;li&gt;Take a camera, purchase a ticket to another city (doesn't matter what a city. prefer to a new one where I have never been).&lt;/li&gt;&#xA;&lt;li&gt;Walk there on main streets and squares, visit galleries, read a book (real book, not ebook) in caffee.&lt;/li&gt;&#xA;&lt;li&gt;After returning back, ride a bike somewhere with new guys (Wow, there are a people who ride outside the city every week! And I never knew about it.)&lt;/li&gt;&#xA;&lt;li&gt;Then I'll go to the cinema with my wife on movie I'd never see (like &quot;How to Lose a Guy in 10 Days&quot; or &quot;Titanic&quot;)&lt;/li&gt;&#xA;&lt;li&gt;And do many other things I usually not do&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So why I would do this all?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When such a shit happens, sometimes we cannot take control over it and everything goes to down. Only thing I can do is: not to interfere with all this happen. Let this shit go away - from the company, from colleagues and projects, even from my head! Time is the best pill.&lt;/p&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-12-02T19:38:45.707" />
  <row Id="23212" PostTypeId="2" ParentId="8008" CreationDate="2010-12-02T19:41:38.710" Score="3" ViewCount="" Body="&lt;p&gt;Sorry for the really late reply, lol.&#xA;So I ended up going to the small company.&#xA;Originally I was set on going to the big one, but they told me that the job opening was suddenly canceled due to miss-allocation of resources. The person honestly said that I was given the green light, but then more important tasks came up and they had to lots of people for another position. Also, their salary offer wasn't that great, even lower than the small company's offer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either way, it's been 2 months at the small company already. The other developer that started with me had to leave because of personal reasons. I'm the only programmer now, sometimes working together with the sys admin coworker/boss. I completed a small project on my own in the first month, starting without any familiarity with Django. It's cool to know that our clients and my coworkers are using my little system everyday.&lt;br&gt;&#xA;It's also cool that I have a 23&quot; dual monitor setup :)&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-02T19:41:38.710" CommentCount="2" />
  <row Id="23213" PostTypeId="2" ParentId="23189" CreationDate="2010-12-02T19:47:34.287" Score="2" ViewCount="" Body="&lt;p&gt;Regularly I will be answering a question and the familiar &quot;load new answers&quot; banner appears and the thought runs through the mind, should I continue?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a rule, I load the new answers, if they say what I was going to say, I abandon, mark that answer up.  Often I have more to say on the matter, alternatives to provide, expansion of points to make.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Occasionally, well a few times a day, someone will come along and complain or vote down the &quot;alternative&quot; answer (which will be &lt;em&gt;stated as alternative&lt;/em&gt;), because it is &quot;inefficient&quot; or &quot;not the best&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now you see, my view of the Stack Exchanges sites are that they are an educational wiki, questions are asked and answers given for the purpose of educating the asker and anyone else who stumbles upon the question thereafter.  It is important when learning to see different approaches as what may be the best approach for the specific circumstances of the question asked, may not be for the future reader - in any case, it is better to be aware of the value judgements made that make the other answer more favourable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Trolls and pedants can both hinder and harm the site, if they correct mistakes and factually inaccurate statements, great; if they stifle debate or incite favouritism then they need to find something else to do. &lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-02T19:47:34.287" />
  <row Id="23214" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T19:53:24.017" Score="2" ViewCount="" Body="&lt;p&gt;Allegedly Edison, during his work on the light bulb, was once asked by a reporter if having so many of failed experiments made him feel like giving up. He is said to have replied something like, &quot;Young man, why would I feel like a failure? I now know 3,000 ways not to make a light bulb.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;True or not, it's a great point. Every failed attempt can tell you something about how to do it right. In my view, an experiment with a negative result isn't a failure. The only thing that's truly a failure is an attempt you don't learn anything from.&lt;/p&gt;&#xA;" OwnerUserId="1843" LastActivityDate="2010-12-02T19:53:24.017" />
  <row Id="23215" PostTypeId="1" AcceptedAnswerId="23216" CreationDate="2010-12-02T19:57:55.213" Score="10" ViewCount="554" Body="&lt;p&gt;So I went through an initial interview on school campus, and an on-site interview(one day, mostly technical interviews) with this company, and then a week later, I am told that there will be an additional phone interview with one of their hiring managers, called &quot;Professional Fit Interview&quot;, which I have no idea what it is. Before I thought the on-site interview was gonna be the last round, at least that's the impression I got from them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what this &quot;professional fit interview&quot; might be? How should I prepare for it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks a lot!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A follow-up: Thank everyone for the replies. As everybody has mentioned, it's a HR type interview. The interviewer did some introduction of the team, then asked if I have some questions, and asked me a couple of questions like &quot;where do you see yourself in 2 years&quot;. Anyway, a rejection email came about one week later.&lt;/p&gt;&#xA;" OwnerUserId="9026" LastEditorUserId="9026" LastEditorDisplayName="" LastEditDate="2010-12-13T05:06:00.153" LastActivityDate="2010-12-13T05:06:00.153" Title="What's a &quot;Professional Fit&quot; interview?" Tags="&lt;job-interview&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="23216" PostTypeId="2" ParentId="23215" CreationDate="2010-12-02T20:03:28.327" Score="15" ViewCount="" Body="&lt;p&gt;Typically, a cultural fit assessment is something to gauge your personality (and how it'll mesh with the existing employees there). Given that your day of interviews was mostly technical, it's possible that this is what they were referring to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just try not to be too much of a richard and you'll be fine. It's typically HR equidae-feces and tea-leaves; you really can't study for it short of reading up on &lt;a href=&quot;http://en.wikipedia.org/wiki/Myers_Briggs_Type_Indicator&quot; rel=&quot;nofollow&quot;&gt;Myer-Briggs&lt;/a&gt; and playing the meta-answer game.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-12-03T01:57:08.630" LastActivityDate="2010-12-03T01:57:08.630" CommentCount="9" />
  <row Id="23217" PostTypeId="2" ParentId="23215" CreationDate="2010-12-02T20:04:29.547" Score="0" ViewCount="" Body="&lt;p&gt;Have you considered asking them what it is? I have not heard of it. Although, it sounds a little like something we used to do in my company. What we did was have two managers interview a candidate and a developer. The developer afterward would be asked how they felt the candidate would fit in at the company.&lt;/p&gt;&#xA;" OwnerUserId="7446" LastActivityDate="2010-12-02T20:04:29.547" />
  <row Id="23218" PostTypeId="2" ParentId="23189" CreationDate="2010-12-02T20:12:36.957" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Either I just have bad luck, I am&#xA;  wrong a lot, or there are an&#xA;  increasing number of pedants trolling&#xA;  on StackOverflow.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Honestly I think you might have been over-sensitive to criticism in this case. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is the comment that tchrist &lt;a href=&quot;http://stackoverflow.com/questions/4331832/java-regex-engine-crashing/4331875#4331875&quot;&gt;wrote on your answer&lt;/a&gt; started out pretty tame and might have been useful to someone who knows less about regex than you. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;That equals does not need to be&#xA;  escaped. Also, this pattern only works&#xA;  for ASCII.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If it had been me I probably would have started it with the phrase &quot;minor quibble&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your response however was fairly challenging and likely what caused the back and forth that ensued&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;@tchrist The equals doesn't need to be&#xA;  escaped? What kind of feedback is&#xA;  that? Who cares? It has a functional&#xA;  equals sign immediately preceding it,&#xA;  so I escaped it A) to be safe, B) to&#xA;  be less confusing. So since I'm&#xA;  obviously not the expert here, maybe&#xA;  you can tell me what the negatives&#xA;  are? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As @grossvogel wrote in the comments&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The options that don't involve pain&#xA;  are (a) engage the commenter in a&#xA;  friendly way so that both (and&#xA;  original asker) may learn something or&#xA;  (b) ignore the comment&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;As a personal example where I chose (a) &lt;a href=&quot;http://stackoverflow.com/users/484814/performancedba&quot;&gt;one commentator&lt;/a&gt; referred to the &lt;a href=&quot;http://stackoverflow.com/questions/4056093/what-are-the-disadvantages-of-using-a-key-value-table-over-nullable-columns-or/4056152#4056152&quot;&gt;answer&lt;/a&gt; I gave (which wasn't actually even mine) as &lt;em&gt;categorically incorrect&lt;/em&gt;. Rather than engage strongly I invited the commentator provide their own answer. This had &lt;a href=&quot;http://stackoverflow.com/questions/4056093/what-are-the-disadvantages-of-using-a-key-value-table-over-nullable-columns-or/4076835#4076835&quot;&gt;interesting&lt;/a&gt; results&lt;/p&gt;&#xA;" OwnerUserId="162" LastEditorUserId="162" LastEditorDisplayName="" LastEditDate="2010-12-02T21:38:43.020" LastActivityDate="2010-12-02T21:38:43.020" CommentCount="4" />
  <row Id="23219" PostTypeId="2" ParentId="23215" CreationDate="2010-12-02T20:30:18.287" Score="0" ViewCount="" Body="&lt;p&gt;Original answer was perhaps a bit too blunt and was definitely rightly taken in a direction I did not mean for it to go. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To make a clearer point -- it could be alot of things. My team it would be a cocktail hour. Someone else's might be guitar hero. If you are going to be working hard with a small crew, you need to mesh personality-wise and be able to put up with each other. You are probably going to spend more time with this person than with your significant other.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;[Original answer for posterity]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;15 rounds of cocktails at the local strip club.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[At least for my team]&lt;/p&gt;&#xA;" OwnerUserId="3762" LastEditorUserId="3762" LastEditorDisplayName="" LastEditDate="2010-12-03T00:50:06.870" LastActivityDate="2010-12-03T00:50:06.870" CommentCount="6" />
  <row Id="23220" PostTypeId="2" ParentId="23215" CreationDate="2010-12-02T20:41:34.040" Score="10" ViewCount="" Body="&lt;p&gt;I love the &lt;a href=&quot;http://en.wikipedia.org/wiki/Buzzword&quot; rel=&quot;nofollow&quot;&gt;buzz words&lt;/a&gt; that this site generates. I am tasked frequently with interviewing programmers. It is common to have several levels of interviews:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Education / Employment / Experience &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This is where we ask your previous employers if they would hire you again. If the job said &quot;[insert degree here] or related experience&quot;, we've phoned your university to verify things, or had someone capable of ingesting 'related experience' report on it'. Nothing much to see here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, if the job you seek requires additional clearance, we'll investigate the possibility of obtaining that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, we need to know if you might be a good fit, and move you on to the next step.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Technical interview&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You will be interviewed by a peer. You will be asked to solve problems, give insights into emerging things, and then asked to pick out mistakes in presumptions that you interviewer just presumed. We want to not only gauge your experience, we want to see what happens when someone in authority is obviously wrong.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Background&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Sometimes, we do have to conduct a background check. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;By this time, a fellow hacker has interviewed and endorsed you. If you are unfortunate enough to talk to a company psychologist to determine your 'suitability' beyond that .. run, and run like hell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, run. If the hiring manager must defer to a HR bot to determine how you might fit in, you &lt;em&gt;don't&lt;/em&gt; want to work there. Run like you are in prison and just dropped the soap .. if for no other reason than avoiding needless complexity that will likely introduce needless complexity in whatever they ask you to produce.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-02T21:11:59.677" LastActivityDate="2010-12-02T21:11:59.677" CommentCount="5" />
  <row Id="23221" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T20:44:21.493" Score="1" ViewCount="" Body="&lt;p&gt;Fail. Work out who to be angry with. Get angry. Learn from it some way or another. Stop being angry.&#xA;Do until you don't fail.  &lt;/p&gt;&#xA;" OwnerUserId="8796" LastActivityDate="2010-12-02T20:44:21.493" />
  <row Id="23222" PostTypeId="2" ParentId="23077" CreationDate="2010-12-02T21:06:01.380" Score="2" ViewCount="" Body="&lt;p&gt;&quot;IT&quot; is such a huge field that it's pretty much meaningless to talk about it as a whole in any  context, beyond just identifying it in general terms. This is something I find frustrating when dealing with the &quot;you're good with computers, right? Can you fix my [insert technology here]?&quot; crowd.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way I explain it to them is: &quot;IT&quot; is like saying &quot;the healthcare industry&quot;. Everyone from a brain surgeon to orderlies can be said to be &quot;working in health care&quot;. But noone would go to a dentist and expect to get their feet fixed, or to a podiatrist and expect to get their teeth fixed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Saying that &quot;IT is easy/hard&quot; falls apart even within just one specialization. Let alone among all the possible &quot;IT jobs&quot; out there. Since this is Programmers.SE, lets look at software development: you can be an in-house programmer maintaining some simple internal utility apps which never require more than simple &lt;em&gt;WinForms For Dummies&lt;/em&gt; kind of skills. On the flipside, you can be working for NASA and doing extremely highly sophisticated spaceships control systems. In both cases, you can be said to be a &quot;programmer&quot;. But the levels of difficulty are worlds apart.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, I've had jobs which any hobo off the street could have been trained up to do with 2-3 months of working through programming books. I've also had jobs which would have required advanced combined Math, Engineering and Computer Science degrees to do fully and well (in reality, the company couldn't find enough people like that, so they split roles among multiple, more specialized people).&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-12-02T21:06:01.380" CommentCount="1" />
  <row Id="23223" PostTypeId="1" AcceptedAnswerId="23229" CreationDate="2010-12-02T21:17:28.913" Score="0" ViewCount="75" Body="&lt;p&gt;Please see this &lt;a href=&quot;http://stackoverflow.com/questions/831849/choosing-the-right-database-mysql-vs-everything-else/846356#846356&quot;&gt;response&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm creating a website that has the potential to become extremely reliant on its data, and would need to be, eventually, serving up lots of data fast. When I read the above answer, I feel that perhaps MySQL isn't the best DB for me to be using. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is that I don't really know much about databases in general. I'm this atypical &quot;Web 2.0&quot; programmer who thinks MySQL is great because, well, it's all I've ever used. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have some questions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;What should I know about databases so&#xA;that I may make a more informed&#xA;decision in the future? What&#xA;resources would you recommend?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Can I still use a PHP Framework, such as CakePHP, while choosing &quot;alternative&quot; databases? Is this a recipe for disaster?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1808" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-02T22:24:27.477" LastActivityDate="2010-12-03T00:51:08.880" Title="Book or resources to gain a better DB understanding" Tags="&lt;learning&gt;&lt;database-development&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="1" />
  <row Id="23224" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T21:20:53.223" Score="0" ViewCount="" Body="&lt;p&gt;It is really good to have a plan B or some other technique to handle these failures.  But any of these or similar ones can get into the skin sometimes.  This might look and sound old, but in times like these (when the failure gets into the skin) simply grieve and get over with it.  Perhaps after the grief is over, a better plan B might come up.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-12-02T21:20:53.223" />
  <row Id="23225" PostTypeId="2" ParentId="22162" CreationDate="2010-12-02T21:23:57.323" Score="0" ViewCount="" Body="&lt;p&gt;While you're hunting for a profiler, &lt;a href=&quot;http://stackoverflow.com/questions/266373/one-could-use-a-profiler-but-why-not-just-halt-the-program/317160#317160&quot;&gt;you could try this&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-12-02T21:23:57.323" />
  <row Id="23226" PostTypeId="1" AcceptedAnswerId="23228" CreationDate="2010-12-02T21:25:27.063" Score="1" ViewCount="175" Body="&lt;p&gt;Why is the web still using multiple independent languages to make sites? Why not use a single OO language and call it a day?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In 2010, when bandwidth is many times more than what it was in 1995, why should we not be compiling web pages or translating them to some intermediate language? HTML and JS and CSS is just the tip of the iceberg. Consider a whole mess of technologies, like PERL, Python, PHP, SQL 9of all flavors) and you've got a mess of languages and odds are that you're editing the source code by hand or using inaccurate and un-optomized tools. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compare that to iOS development or Java or even .NET. When I make an app, I declare an object and start setting property values. Easy. When I create a webpage, I must declare my markup and then link to a single or a few CSS files. Then, I go ahead and work on my scripts. Frameworks and frameworks galore. Either that, or messy code that is not easily maintained. to change a textbox's size, I have to go into my CSS and start messing with it. When I finally get that right, I've broken something else. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why must IE, FF, Chrome or whoever know what the &quot;semantics&quot; of my webpage are? This is why I like &lt;code&gt;div&lt;/code&gt; tags. Simple building blocks they are. Other languages only care about datatypes for memory management reasons. I can see the validity of semantics only for the purposes of searching. However, that can be changed and worked around in a new language. Besides, I won't have to use robots.txt anymore. Yay, another few bytes of server space reclaimed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Markup on the web was a good idea when bandwidth was tight, but it is now a terrible idea.  The W3C is still working at a painfully slow pace to release &quot;recommendations&quot;. I say we cut the nonsense and work with a single language, be it compiled, interpreted or somewhere in the middle. It has to be easy and work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, why are we still using HTML as the platform of the web?&lt;/p&gt;&#xA;" OwnerUserId="67" LastEditorUserId="67" LastEditorDisplayName="" LastEditDate="2010-12-02T22:04:31.757" LastActivityDate="2010-12-02T22:04:31.757" ClosedDate="2010-12-02T21:59:23.877" Title="Why is the web still interpreted HTML and CSS and JS?" Tags="&lt;programming-languages&gt;&lt;tools&gt;&lt;html&gt;" AnswerCount="2" CommentCount="12" FavoriteCount="1" />
  <row Id="23227" PostTypeId="2" ParentId="23223" CreationDate="2010-12-02T21:33:27.380" Score="1" ViewCount="" Body="&lt;p&gt;Just go with what you are familiar with.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can keep the ability to switch RDBMS's later if you take care to avoid vendor-specific features (or when avoidance is prohibitively expensive, then properly encapsulate).  Using an ORM goes a long way to help one avoid and encapsulate vendor-specific differences, too.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Worrying about the performance abilities of your RDBMS at this stage is premature optimization or YAGNI.  The axiom is something like your problem isn't scalability, it's getting people to even hit your site.  I forget who said it where.&lt;/p&gt;&#xA;" OwnerUserId="6735" LastActivityDate="2010-12-02T21:33:27.380" CommentCount="2" />
  <row Id="23228" PostTypeId="2" ParentId="23226" CreationDate="2010-12-02T21:43:52.870" Score="2" ViewCount="" Body="&lt;p&gt;I think there is one answer but more than one reason behind that.  I think you know the answer too:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The web is (right now) HTTP, and the client for HTTP is a browser. So, we code in the format of the client our audience has their hands on.  Right now, Apple, Google, Microsoft, and Mozilla decide that, and that's HTML/CSS/JS.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Now the reasons why those major players still say that we should use HTML/CSS/JS:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tradition&lt;/strong&gt;.  This one's obvious.  There has been too much arguing about other things (standards, browser wars, monopolies, mobile vs. desktop, etc.) and too much innovation in HTML/CSS/JS (XHTML -- wasted time. HTML 5. AJAX. JQuery. Faster browsers resulting in more ability to do animation. Offline Storage. Etc.).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cost&lt;/strong&gt;.  This is another major one.  The web in 2010 is a medium most companies can't ignore.  But even so, it doesn't mean they can (or think they can) spend a lot on it.  Right now the deployment overhead and raw development cost of HTML/CSS/JS is so small that a more advanced technology can't be justified.  Due to the &lt;strong&gt;tradition&lt;/strong&gt; part, you aren't going to see things change until many players are able to afford the new technology.  And that new technology won't become cheap until many people are doing it (chicken and egg).  Right now I'd guess that somewhere around 1% of web publishers are even able to afford server-side programming.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Portability&lt;/strong&gt;.  What are you reading this web page on?  Why should I care?  The semantics help that.  &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; 's don't help a screen reader out.  A smart developer can also use HTML semantics plus the power of CSS to deliver a different view to a phone than to a desktop.  Yes, you can do that with &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; 's, but if you were a Java developer, you wouldn't suggest to someone to use a Map for all their objects instead of classes, right?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;BTW, great question.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-02T21:43:52.870" CommentCount="2" />
  <row Id="23229" PostTypeId="2" ParentId="23223" CreationDate="2010-12-02T21:44:18.207" Score="1" ViewCount="" Body="&lt;p&gt;Probably any decent book on database design would be helpful. &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1590597699&quot; rel=&quot;nofollow&quot;&gt;This book&lt;/a&gt; has good reviews. Learn plenty about designing tables with relationships and normalizing your data. You would be surprised how many times I see people store &quot;flags&quot; in one column as a big long string of &quot;Y&quot;'s and spaces and then parse out the flags when the retrieve their data. Don't do that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't rule out MySQL as suitable for your website. MySQL is the database of some big websites. Facebook runs on PHP/MySQL, and I'd say they have a fair amount of rows and updates to handle. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would focus on delivering good content. If your site becomes so popular that MySQL can't handle it, you'll be able to afford hiring someone to scale your database layer. Of course, the better your design starts the longer it will last.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually PHP frameworks abstract the database layer to some extent. For example, CodeIgniter has DB &quot;drivers&quot; for MySQL, Postgres, SQLite, etc. So, theoretically, switching your RDBMS shouldn't be a huge hassle.&lt;/p&gt;&#xA;" OwnerUserId="4881" LastEditorUserId="4881" LastEditorDisplayName="" LastEditDate="2010-12-03T00:51:08.880" LastActivityDate="2010-12-03T00:51:08.880" CommentCount="1" />
  <row Id="23230" PostTypeId="2" ParentId="23189" CreationDate="2010-12-02T21:44:29.880" Score="1" ViewCount="" Body="&lt;p&gt;I will often open a new instance of my IDE and write a quick console program that demonstrates a possible solution to the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the OP has included sample code in the question, then that's great, since it gives me something to start with and it allows us to have a common sandbox in which to communicate clearly.  If the sample code actually compiles, even better!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once I've compiled and run my sample program to ensure that it actually works, I'll often just copy the entire source code (since it's usually just one file) into my answer and say &quot;Below is a complete working example...&quot;  Usually I'll have a paragraph or two before the code that explains my approach so that the reader doesn't have to figure out what I'm doing just from the source code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One downside of this approach is that it takes more time to write an answer.  On meta.stackoverflow.com, you can find references to &lt;a href=&quot;http://meta.stackoverflow.com/questions/9731/fastest-gun-in-the-west-problem&quot;&gt;the &quot;Fastest Gun in the West&quot; problem&lt;/a&gt;, which asserts that the quickest answers are often the ones that receive the majority up-votes, even if another apparently better answer is posted later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the extreme case, you might end up getting either the &lt;a href=&quot;http://stackoverflow.com/badges/225/tenacious&quot;&gt;Tenacious&lt;/a&gt; badge or the &lt;a href=&quot;http://stackoverflow.com/badges/226/unsung-hero&quot;&gt;Unsung Hero&lt;/a&gt; badge for having enough accepted answers with zero up-votes.  Small consolation, perhaps.  I find that this sometimes happens to me when I feel that I've provided a much more thorough answer that is more considerate of the OP's situation than other popular answers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best compromise is probably to post an initial answer that briefly explains your solution along with a note saying that you are planning to edit your answer with further detail and/or code examples soon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At that point, if I have detractors that criticize my answer, I will either acknowledge the error and correct my answer while thanking them for pointing it out, or I will add a comment and/or update my answer to clarify why I disagree with their criticism.&lt;/p&gt;&#xA;" OwnerUserId="5486" LastActivityDate="2010-12-02T21:44:29.880" />
  <row Id="23231" PostTypeId="2" ParentId="22853" CreationDate="2010-12-02T21:46:59.597" Score="1" ViewCount="" Body="&lt;p&gt;If I were financially set for the rest of my life - I couldn't imagine myself spending much free time coding.  So, yes.&lt;/p&gt;&#xA;" OwnerUserId="9030" LastActivityDate="2010-12-02T21:46:59.597" />
  <row Id="23232" PostTypeId="2" ParentId="23223" CreationDate="2010-12-02T21:52:38.407" Score="1" ViewCount="" Body="&lt;p&gt;I have taken 2 different DB theroy class, in undergraduate and graduate(10 years apart though). But it did not work out for me that much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mainly use Oracle, so I purchased some of recommended books from on-line and read several chapters for developers. It helps me a lot!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend to find a book saying&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Explaination of various type of JOIN with example&lt;/li&gt;&#xA;&lt;li&gt;Basic Index theory&lt;/li&gt;&#xA;&lt;li&gt;Any kinds of Stored Procedure(Not sure if MySQL has it)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6924" LastActivityDate="2010-12-02T21:52:38.407" />
  <row Id="23233" PostTypeId="2" ParentId="23226" CreationDate="2010-12-02T21:54:19.343" Score="2" ViewCount="" Body="&lt;p&gt;For an argument against bytecode support in browsers, you can refer to this audio file from Brendan Eich, JavaScript's inventor and maintainer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.aminutewithbrendan.com/pages/20101122&quot; rel=&quot;nofollow&quot;&gt;http://www.aminutewithbrendan.com/pages/20101122&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, the split between HTML, CSS and code is a logical one. It's the split between structure, styling and behavior. You'll find this on other platforms also. Flex has mxml for structure, css for style and actionscript for code. The only thing different about the web is that this separation is not abandoned at deployment time. This makes web content more malleable, and has allowed the platform to maintain backwards compatibility, even with broken code, for nearly two decades.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-12-02T21:54:19.343" />
  <row Id="23234" PostTypeId="1" CreationDate="2010-12-02T21:59:18.267" Score="4" ViewCount="603" Body="&lt;p&gt;Just wondered what are the features of the three main programming languages which show you are an 'expert'? Please exclude 'practical' skills such as indenting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I right in saying for C++ the most difficult aspect to master is STL/generics? Java seems much easier as memory is handled for you. I'm not entirely sure on C# either?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm trying to use this to guage my current level of ability and what i wish to aim for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ps this was posted on stackoverflow but got binned due to arguing, please do try to keep it civil as I am really interested in the answers from everyone :)&lt;/p&gt;&#xA;" LastEditorUserId="67" LastEditorDisplayName="" LastEditDate="2010-12-02T22:00:48.687" LastActivityDate="2010-12-03T15:54:29.520" Title="What are the hardest parts of the C++/C#/Java programming languages?" Tags="&lt;java&gt;&lt;c#&gt;&lt;c++&gt;" AnswerCount="9" CommentCount="2" />
  <row Id="23235" PostTypeId="2" ParentId="22853" CreationDate="2010-12-02T21:59:43.597" Score="0" ViewCount="" Body="&lt;p&gt;At the moment, yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I think that has more to do with working a fulltime programming job and not having much free time outside it. So I use the little free time I have for other (ie non-programming) pursuits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I was independently wealthy, however, I don't think I'd keep doing fulltime programming work as a salaried job. I probably &lt;em&gt;would&lt;/em&gt; work on my own programming projects though, and/or do freelance or contract programming - to keep me from getting too bored and unsociable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I actually think the corporate &quot;model&quot; of work has tainted how I feel about what I do to some degree - which is why I'm taking a self-funded sabbatical next year to recuperate a bit and explore other options: contracting, freelancing, possibly a microisv, etc).&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-12-02T21:59:43.597" />
  <row Id="23236" PostTypeId="2" ParentId="22709" CreationDate="2010-12-02T22:01:48.820" Score="1" ViewCount="" Body="&lt;p&gt;Do you need to contact them again?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;During the final questions of the interview you probably asked what the current time-frame was for the hiring decisions.  If that time frame has passed and you haven't heard anything, you didn't get the job.  If it hasn't passe yet - cool the jets and be patient.  &lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-12-02T22:01:48.820" CommentCount="1" />
  <row Id="23237" PostTypeId="2" ParentId="23234" CreationDate="2010-12-02T22:02:11.380" Score="1" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm&quot; rel=&quot;nofollow&quot;&gt;Programmer Competency Matrix&lt;/a&gt; can be a good way to gauge your skill level and goals in a language-agnostic way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can then make it language-specific by asking yourself if you can reliably do thing X in a given language.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-02T22:02:11.380" />
  <row Id="23238" PostTypeId="2" ParentId="23234" CreationDate="2010-12-02T22:09:02.733" Score="6" ViewCount="" Body="&lt;p&gt;Honestly, I don't think that you can really group those three languages together for such a question. Java and C# might be close enough to work together - though it wouldn't suprise me if some of C#'s more interesting features were more difficult and therefore more in the &quot;expert&quot; realm than the features that C# and Java have in common - but C++ is in a different league entirely. It just has too many things in it that do crazy stuff if you don't use them right. And some features - like templates - are just &lt;em&gt;way&lt;/em&gt; more powerful and complicated in C++ than in Java or C#. I would rate very few features that these three languages have in common as being of &quot;expert&quot; level. In general, the stuff that makes you an expert at a language is the esoteric stuff that other languages don't necessarily have and which are more likely to trip you up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Measuring your knowledge as a programmer without regard to programming language means measuring stuff more along the lines of algorithms and data structures. How well you understand design patterns and good software engineering principles matters far more in general than how you indent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The types of skills that make you an expert programmer in general are not the same types of skills which make you an expert at a particular programming language. It's good to have both (and if you're not at least reasonably competent in the language that you use, your non-language specific knowledge doesn't do you much good), but you're talking about two very different things when you're talking about what makes someone an expert at a particular programming language and what makes them an expert programmer in general. And since even relatively similar languages such as C++, C#, and Java differ quite a bit in the details - especially the ones which would tend to qualify you as an expert in the language itself - trying to group them together when trying to determine what makes you an expert at them really doesn't work.&lt;/p&gt;&#xA;" OwnerUserId="7896" LastEditorUserId="7896" LastEditorDisplayName="" LastEditDate="2010-12-03T00:20:27.693" LastActivityDate="2010-12-03T00:20:27.693" CommentCount="1" />
  <row Id="23239" PostTypeId="2" ParentId="23234" CreationDate="2010-12-02T22:10:33.780" Score="0" ViewCount="" Body="&lt;p&gt;I believe the hardest part about the languages is not knowing the features but knowing when to use them. Take iterators in C# as an example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;IEnumerable&amp;lt;int&amp;gt; Ints()&#xA;{&#xA;    yield return 1;&#xA;    yield return 2;&#xA;    yield return 3;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Well yeah that is a working example but is it an appropriate usage of the feature? I think not. The same really applies to the features of any language. I've been working with computational expressions in F# and I do understand them. I even know a few good examples of when to use them. The thing is I'm not yet skilled enough to apply them to a new problem.&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-12-02T22:10:33.780" />
  <row Id="23240" PostTypeId="1" AcceptedAnswerId="23241" CreationDate="2010-12-02T22:11:53.247" Score="3" ViewCount="158" Body="&lt;p&gt;I can't find this now but I've read it before on various blogs discussing the topic. I'll give an example and hopefully it's clear (albeit it may not clarify anything at all).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given this piece of markup (arbitrary on purpose):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;div class=&quot;myWrapper&quot;&amp;gt;&#xA;  &amp;lt;a href=&quot;somepage.url&quot; class=&quot;img&quot;&amp;gt;&#xA;    &amp;lt;img url=&quot;someimage.url&quot;&amp;gt;&#xA;  &amp;lt;/a&amp;gt;&#xA;&amp;lt;/div&amp;gt;&#xA;&amp;lt;div class=&quot;yourWrapper&quot;&amp;gt;&#xA;  &amp;lt;a href=&quot;somepage.url&quot; class=&quot;img&quot;&amp;gt;&#xA;    &amp;lt;img url=&quot;someimage.url&quot;&amp;gt;&#xA;  &amp;lt;/a&amp;gt;&#xA;&amp;lt;/div&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;While the CSS could read like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;.myWrapper .img img {border: thin black solid;}&#xA;.myWrapper .img {margin:10px;}&#xA;.yourWrapper .img img {border: thick red dashed;}&#xA;.yourWrapper .img {margin:20px;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It could also be written like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;.myWrapper {&#xA;  .img { &#xA;    margin:10px;&#xA;    img {&#xA;        border: thin black solid;&#xA;    }&#xA;  }&#xA;}&#xA;.yourWrapper {&#xA;  .img { &#xA;    margin:10px;&#xA;    img {&#xA;        border: thick red dashed;&#xA;    }&#xA;  }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But I can't remember seeing where that was discussed or if it's something in the works. Anybody know what the hell I'm talking about?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I don't think this is an SO question or I would've put it on SO.&lt;/p&gt;&#xA;" OwnerUserId="2356" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-02T22:22:14.740" LastActivityDate="2010-12-02T22:36:15.717" Title="Nested CSS styles ~ Where have I seen this concept before?" Tags="&lt;html&gt;&lt;css&gt;" AnswerCount="2" CommentCount="4" FavoriteCount="1" />
  <row Id="23241" PostTypeId="2" ParentId="23240" CreationDate="2010-12-02T22:12:49.673" Score="9" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://lesscss.org/&quot; rel=&quot;nofollow&quot;&gt;LESS CSS&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;LESS uses those nested styles.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#header {&#xA;  color: red;&#xA;  a {&#xA;    font-weight: bold;&#xA;    text-decoration: none;&#xA;  }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-02T22:12:49.673" CommentCount="2" />
  <row Id="23242" PostTypeId="2" ParentId="23234" CreationDate="2010-12-02T22:14:13.543" Score="4" ViewCount="" Body="&lt;p&gt;The most complicated feature of C++ is templates, because of their power and awkward syntax.  It isn't hard to use pre-written ones, and it isn't hard to write a simple templated class or function, but C++ templates are a compiler-executed Turing-complete language.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-02T22:14:13.543" CommentCount="2" />
  <row Id="23243" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T22:16:36.937" Score="1" ViewCount="" Body="&lt;h1&gt;Learn from it&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;and go on!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-02T22:16:36.937" />
  <row Id="23244" PostTypeId="2" ParentId="23234" CreationDate="2010-12-02T22:18:12.240" Score="5" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;C - pointers&lt;/li&gt;&#xA;&lt;li&gt;C++ - pointers and STL/Templates&lt;/li&gt;&#xA;&lt;li&gt;C# - the gigantic libraries&lt;/li&gt;&#xA;&lt;li&gt;Java - the gigantic libraries&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-12-03T14:04:21.370" LastActivityDate="2010-12-03T14:04:21.370" CommentCount="4" />
  <row Id="23245" PostTypeId="2" ParentId="18852" CreationDate="2010-12-02T22:21:34.950" Score="0" ViewCount="" Body="&lt;blockquote&gt;I want to learn allegro without wasting time.&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;conflict detected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if you want to develop a game without wasting time, start with a complete game engine like &lt;a href=&quot;http://en.wikipedia.org/wiki/Quake_engine&quot; rel=&quot;nofollow&quot;&gt;Quake&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[yes, i've used Allegro.]&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-02T22:21:34.950" />
  <row Id="23246" PostTypeId="2" ParentId="23234" CreationDate="2010-12-02T22:34:46.903" Score="2" ViewCount="" Body="&lt;p&gt;I rather think that the syntax of each of those languages you list are not hard to learn at all.  The &quot;hard&quot; part is twofold, in my opinion:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;the frameworks that come with them (STL for C++, JRE for Java, .NET Framework for C#) are voluminous and can take a &lt;strong&gt;long&lt;/strong&gt; time to master.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;patterns, practices and paradigms.  The three languages you mention are hallmarks of Object-Oriented Programming Languages and we've come a long way since &quot;Cat is a subclass of Animal&quot;.  Knowing proper techniques (&lt;a href=&quot;http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf&quot; rel=&quot;nofollow&quot;&gt;SOLID&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Design_Patterns%3a_Elements_of_Reusable_Object-Oriented_Software&quot; rel=&quot;nofollow&quot;&gt;GoF patterns&lt;/a&gt;, etc.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-12-02T22:34:46.903" />
  <row Id="23247" PostTypeId="2" ParentId="23064" CreationDate="2010-12-02T22:35:26.647" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://threadmaster.nyland.dk/threadmaster.htm&quot; rel=&quot;nofollow&quot;&gt;http://threadmaster.nyland.dk/threadmaster.htm&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="844" LastActivityDate="2010-12-02T22:35:26.647" />
  <row Id="23248" PostTypeId="2" ParentId="23240" CreationDate="2010-12-02T22:36:15.717" Score="1" ViewCount="" Body="&lt;p&gt;Also, &lt;a href=&quot;http://sass-lang.com/&quot; rel=&quot;nofollow&quot;&gt;sass and scss&lt;/a&gt; support nesting.&lt;/p&gt;&#xA;" OwnerUserId="7968" LastActivityDate="2010-12-02T22:36:15.717" />
  <row Id="23249" PostTypeId="2" ParentId="23142" CreationDate="2010-12-02T22:45:07.253" Score="1" ViewCount="" Body="&lt;p&gt;There is a lot of effort wasted on tool wars. In a really large company, no one can ever &quot;win&quot; and I do not see any benefit in really trying. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Make it easier to swap resources&quot; - I have never seen this happen once in my company. People make this argument but the actual realized benefits are very, very small. Usually resources aren't &quot;swapped&quot; anyway, and if they are then it doesn't take long to learn most of these systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Easier for IT&quot; I can't see this argument anymore, since we have a relatively small SDLC tools team that supports pretty much every major vendor product there is for tens of thousands of users (across all tools).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many individual teams are more productive than they were a few years ago when there were fewer tool chains and many of them were optimized for different platforms than what any given particular team was actually using; or the infrastructure had to be local (&lt;em&gt;cough&lt;/em&gt; ClearCase &lt;em&gt;cough&lt;/em&gt;) and most of the company couldn't even use them.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-12-02T22:45:07.253" />
  <row Id="23250" PostTypeId="2" ParentId="23142" CreationDate="2010-12-02T22:54:47.807" Score="1" ViewCount="" Body="&lt;p&gt;Within a department I can see this making sense.  There should be a central store rather than a bunch of different systems to look up bugs or code.  Does it help to have to look in a handful of different bug tracking systems to find issues?  I don't think so, but I don't think all the departments uniformly should be forced onto the same system as that may not make sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the same time, I'd argue that departments are a reasonable threshold for how far a set of tools should go.  For example, I have worked where IT had one bug tracking system and Product Development had something else.  Same for source control and languages.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-02T22:54:47.807" />
  <row Id="23251" PostTypeId="2" ParentId="22146" CreationDate="2010-12-02T22:58:23.233" Score="2" ViewCount="" Body="&lt;p&gt;If you are using .net check out these two...(there are web app versions also)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/073562609X&quot; rel=&quot;nofollow&quot;&gt;Microsoft .NET: Architecting Applications for the Enterprise (Microsoft)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0470447613&quot; rel=&quot;nofollow&quot;&gt;Professional Enterprise .NET (Wrox Press)&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8572" LastEditorUserId="1928" LastEditorDisplayName="" LastEditDate="2010-12-03T11:19:26.887" LastActivityDate="2010-12-03T11:19:26.887" CommunityOwnedDate="2011-01-22T00:43:07.640" CommentCount="0" />
  <row Id="23252" PostTypeId="2" ParentId="23075" CreationDate="2010-12-02T23:01:37.957" Score="2" ViewCount="" Body="&lt;h3&gt;Step 1:  It's ok to get angry!&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;First, it's understandable to be upset or angry when encountering failure.  If giving advice to someone in such a situation, they are most likely not going to want to hear &quot;Just get over it and move on&quot; or &quot;Just think of it as a learning opportunity&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, I think it can be healthy and productive to get upset and vent your frustrations, provided that you do it privately or with a friend.  People have different ways of doing that, but I think one of the most productive ways is to write an angry &lt;strong&gt;fake&lt;/strong&gt; letter (Important! &lt;em&gt;do not send this letter to anyone&lt;/em&gt;).  Explain your feelings, such as why you feel that whatever happened was unjustified.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Step 2:  Take some time to calm down.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Make sure that you've expressed everything that you're feeling, and after venting your anger just take some time to calm down.  Maybe you only need a few minutes, or perhaps a few hours.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Step 3:  Review what happened in step 1&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;At this point you will hopefully be able to think more objectively about the situation.  If you wrote a letter, then read it to yourself.  If you confided in someone, then try to remember what you said.  If you just imagined shouting at someone, then just mentally review that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I often write a letter when I'm angry and then after I've calmed down I will work on refining the letter to more clearly communicate what I was originally trying to say until I'm satisfied that someone reading it would understand what I was feeling at the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point is to objectively try to pick out what your points were.  Did they make sense?  Perhaps they need clarification or further detail.  Are they unfounded?  If you were to objectively put yourself in someone else's shoes, would you understand the points that you made?  Would you agree with those points?  You can use this opportunity to evaluate yourself.  What did you do well?  What were some things that you could have done better?&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Step 4:  Decide on a course of action&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Is there something that can be done to remedy the situation or to at least improve it?  Take a moment to consider if there is realistically anything that can be done to fix or improve the situation.  Often there isn't, but sometimes there is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are at fault for something, then that might be as simple as a formal apology to someone, clearly explaining what went wrong, what you did, why you did it, and what you will do to fix it or prevent it from happening in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next, consider what you can do to improve the future.  What can you do to prevent the same thing from happening again?   Decide what it is that you want to achieve and use what you've learned from step 3 to create a plan for yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If all else fails, try rebooting:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;        try&#xA;        {&#xA;            // ...&#xA;        }&#xA;        catch (OhNoes111Exception)&#xA;        {&#xA;            // reboot fixes everything!&#xA;            System.Diagnostics.Process.Start(&quot;ShutDown&quot;, &quot;/r&quot;);&#xA;        }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5486" LastEditorUserId="5486" LastEditorDisplayName="" LastEditDate="2010-12-02T23:12:00.893" LastActivityDate="2010-12-02T23:12:00.893" />
  <row Id="23253" PostTypeId="2" ParentId="23234" CreationDate="2010-12-02T23:03:05.553" Score="2" ViewCount="" Body="&lt;p&gt;Making programs thread-safe and scalable to many, many cores.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But that is hard in any language.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-02T23:03:05.553" />
  <row Id="23254" PostTypeId="1" CreationDate="2010-12-02T23:06:03.337" Score="2" ViewCount="143" Body="&lt;p&gt;What OS do you mainly code on at work? This answer can depend on the programming language and/or tools used, please include what &lt;strong&gt;programming language&lt;/strong&gt; do you code in, daily. &lt;/p&gt;&#xA;" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-02T23:18:49.597" LastActivityDate="2010-12-02T23:30:41.463" ClosedDate="2010-12-02T23:34:25.033" Title="What OS do you use in your work environment/at work?" Tags="&lt;programming&gt;" AnswerCount="4" CommentCount="20" />
  <row Id="23255" PostTypeId="2" ParentId="22162" CreationDate="2010-12-02T23:08:49.793" Score="1" ViewCount="" Body="&lt;p&gt;You know of the IBM Monitoring and Diagnostics Tools for AIX?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/java/jdk/tools/index.html&quot; rel=&quot;nofollow&quot;&gt;http://www.ibm.com/developerworks/java/jdk/tools/index.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-02T23:08:49.793" CommentCount="1" />
  <row Id="23256" PostTypeId="2" ParentId="23254" CreationDate="2010-12-02T23:13:23.213" Score="1" ViewCount="" Body="&lt;p&gt;Windows XP. (I'm a .Net developer).&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-12-02T23:13:23.213" />
  <row Id="23257" PostTypeId="2" ParentId="23254" CreationDate="2010-12-02T23:17:57.723" Score="0" ViewCount="" Body="&lt;p&gt;Windows 7&lt;br&gt;&#xA;C# 3.5&lt;br&gt;&#xA;Visual studio 2010&lt;br&gt;&#xA;TFS&lt;/p&gt;&#xA;" OwnerUserId="2044" LastActivityDate="2010-12-02T23:17:57.723" />
  <row Id="23258" PostTypeId="2" ParentId="23142" CreationDate="2010-12-02T23:19:36.087" Score="2" ViewCount="" Body="&lt;p&gt;You should rather think that your development process should make it easy to use &lt;em&gt;any&lt;/em&gt; available tool for your project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reasons for this are simple:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You need to be able to build and test your software automatically outside an IDE.&lt;/li&gt;&#xA;&lt;li&gt;You may have a facility in IDE X you need but cannot use if you are tied to IDE Y.  Examples:  GUI editor in NetBeans.  Swing debugger in JDeveloper.&lt;/li&gt;&#xA;&lt;li&gt;Procedures captured in files (so they can be automated) can be checked in to a source repository, and checked out again elsewhere.  This means more precise knowledge is captured.&lt;/li&gt;&#xA;&lt;li&gt;Building and testing can happen on multiple platforms allowing for easy testing of platform compatability.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;By thinking like this, you are best insured against vendors closing products, or other natural disasters.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-02T23:19:36.087" />
  <row Id="23259" PostTypeId="1" AcceptedAnswerId="23262" CreationDate="2010-12-02T23:23:59.800" Score="1" ViewCount="442" Body="&lt;p&gt;How would you build an HTML parser using RegEx?&lt;/p&gt;&#xA;" OwnerUserId="3757" LastEditorUserId="3757" LastEditorDisplayName="" LastEditDate="2010-12-11T03:10:22.037" LastActivityDate="2010-12-11T03:10:22.037" Title="How would you build a HTML parser using RegEx" Tags="&lt;html&gt;&lt;joke&gt;&lt;satisfaction&gt;&lt;regex&gt;&lt;parser&gt;" AnswerCount="7" CommentCount="8" />
  <row Id="23260" PostTypeId="2" ParentId="23254" CreationDate="2010-12-02T23:27:35.737" Score="0" ViewCount="" Body="&lt;p&gt;Windows 7&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C#, JavaScript&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Visual Studio 2008&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-02T23:27:35.737" />
  <row Id="23261" PostTypeId="2" ParentId="23254" CreationDate="2010-12-02T23:30:41.463" Score="0" ViewCount="" Body="&lt;p&gt;Linux, KDE&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++&lt;/p&gt;&#xA;&#xA;&lt;p&gt;svn/git&lt;/p&gt;&#xA;&#xA;&lt;p&gt;gvim&lt;/p&gt;&#xA;&#xA;&lt;p&gt;gcc/make&lt;/p&gt;&#xA;" OwnerUserId="7896" LastActivityDate="2010-12-02T23:30:41.463" />
  <row Id="23262" PostTypeId="2" ParentId="23259" CreationDate="2010-12-02T23:32:14.920" Score="17" ViewCount="" Body="&lt;p&gt;As the first person here, it's my responsibility to post &lt;a href=&quot;http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454&quot;&gt;this&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;You can't parse [X]HTML with regex.&#xA;  Because HTML can't be parsed by regex.&#xA;  Regex is not a tool that can be used&#xA;  to correctly parse HTML. As I have&#xA;  answered in HTML-and-regex questions&#xA;  here so many times before, the use of&#xA;  regex will not allow you to consume&#xA;  HTML. Regular expressions are a tool&#xA;  that is insufficiently sophisticated&#xA;  to understand the constructs employed&#xA;  by HTML. HTML is not a regular&#xA;  language and hence cannot be parsed by&#xA;  regular expressions. Regex queries are&#xA;  not equipped to break down HTML into&#xA;  its meaningful parts. so many times&#xA;  but it is not getting to me. Even&#xA;  enhanced irregular regular expressions&#xA;  as used by Perl are not up to the task&#xA;  of parsing HTML. You will never make&#xA;  me crack. HTML is a language of&#xA;  sufficient complexity that it cannot&#xA;  be parsed by regular expressions. Even&#xA;  Jon Skeet cannot parse HTML using&#xA;  regular expressions. Every time you&#xA;  attempt to parse HTML with regular&#xA;  expressions, the unholy child weeps&#xA;  the blood of virgins, and Russian&#xA;  hackers pwn your webapp. Parsing HTML&#xA;  with regex summons tainted souls into&#xA;  the realm of the living. HTML and&#xA;  regex go together like love, marriage,&#xA;  and ritual infanticide. The&#xA;  &amp;lt;center&gt; cannot hold it is too&#xA;  late. The force of regex and HTML&#xA;  together in the same conceptual space&#xA;  will destroy your mind like so much&#xA;  watery putty. If you parse HTML with&#xA;  regex you are giving in to Them and&#xA;  their blasphemous ways which doom us&#xA;  all to inhuman toil for the One whose&#xA;  Name cannot be expressed in the Basic&#xA;  Multilingual Plane, he comes.&#xA;  HTML-plus-regexp will liquify the&#xA;  n​erves of the sentient whilst you&#xA;  observe, your psyche withering in the&#xA;  onslaught of horror. Rege̿̔̉x-based&#xA;  HTML parsers are the cancer that is&#xA;  killing StackOverflow &lt;i&gt;it is too&#xA;  late it is too late we cannot be&#xA;  saved&lt;/i&gt; the trangession of a chi͡ld&#xA;  ensures regex will consume all living&#xA;  tissue (except for HTML which it&#xA;  cannot, as previously prophesied)&#xA;  &lt;i&gt;dear lord help us how can anyone&#xA;  survive this scourge&lt;/i&gt; using regex&#xA;  to parse HTML has doomed humanity to&#xA;  an eternity of dread torture and&#xA;  security holes &lt;i&gt;using rege&lt;/i&gt;x as a&#xA;  tool to process HTML establishes a&#xA;  brea&lt;i&gt;ch between this world&lt;/i&gt; and&#xA;  the dread realm of c͒ͪo͛ͫrrupt&#xA;  entities (like SGML entities, but&#xA;  &lt;i&gt;more corrupt) a mere glimp&lt;/i&gt;se of&#xA;  the world of reg​&lt;b&gt;ex parsers for&#xA;  HTML will ins&lt;/b&gt;​tantly transport a&#xA;  p&lt;i&gt;rogrammer's consciousness i&lt;/i&gt;nto&#xA;  a w&lt;i&gt;orl&lt;/i&gt;d of ceaseless screaming,&#xA;  he comes&lt;strike&gt;, the pestilent&#xA;  sl&lt;/strike&gt;ithy regex-infection&#xA;  wil​&lt;b&gt;l devour your HT&lt;/b&gt;​ML parser,&#xA;  application and existence for all time&#xA;  like Visual Basic only worse &lt;i&gt;he&#xA;  comes he com&lt;/i&gt;es &lt;i&gt;do not&#xA;  fi&lt;/i&gt;​ght h&lt;b&gt;e com̡e̶s, ̕h̵i&lt;/b&gt;​s&#xA;  un̨ho͞ly radiańcé de&lt;i&gt;stro҉ying all&#xA;  enli̍̈́̂̈́ghtenment, HTML tags&#xA;  &lt;b&gt;lea͠ki̧n͘g fr̶ǫm ̡yo​͟ur eye͢s̸&#xA;  ̛l̕ik͏e liq&lt;/b&gt;​uid p&lt;/i&gt;ain, the song&#xA;  of re̸gular exp​re&lt;strike&gt;ssion&#xA;  parsing &lt;/strike&gt;will exti&lt;i&gt;​nguish&#xA;  the voices of mor​&lt;b&gt;tal man from the&#xA;  sp&lt;/b&gt;​here I can see it can you see&#xA;  ̲͚̖͔̙î̩́t̲͎̩̱͔́̋̀ it is beautiful&#xA;  t​&lt;/i&gt;he f&lt;code&gt;inal snuf&lt;/code&gt;fing&#xA;  o&lt;i&gt;f the lie​&lt;b&gt;s of Man ALL IS&#xA;  LOŚ͖̩͇̗̪̏̈́T A&lt;/b&gt;&lt;/i&gt;&lt;b&gt;LL I​S&#xA;  L&lt;/b&gt;OST th&lt;i&gt;e pon̷y he come&lt;/i&gt;s he&#xA;  c̶̮om&lt;strike&gt;es he&#xA;  co&lt;/strike&gt;&lt;b&gt;&lt;strike&gt;me&lt;/strike&gt;s&#xA;  t&lt;i&gt;he&lt;/i&gt; ich​&lt;/b&gt;or permeat&lt;i&gt;es&#xA;  al&lt;/i&gt;l MY FAC&lt;i&gt;E MY FACE ᵒh god&#xA;  n&lt;b&gt;o NO NOO̼&lt;/b&gt;&lt;/i&gt;&lt;b&gt;O​O N&lt;/b&gt;Θ&#xA;  stop t&lt;i&gt;he&#xA;  an​*̶͑̾̾​̅ͫ͏̙̤g͇̫͛͆̾ͫ̑͆l͖͉̗̩̳̟̍ͫͥͨ&lt;/i&gt;e̠̅s&lt;code&gt;&#xA;  ͎a̧͈͖r̽̾̈́͒͑e&lt;/code&gt; n&lt;b&gt;​ot&#xA;  rè̑ͧ̌aͨl̘̝̙̃ͤ͂̾̆ ZA̡͊͠͝LGΌ&#xA;  ISͮ̂҉̯͈͕̹̘̱ T&lt;/b&gt;O͇̹̺ͅƝ̴ȳ̳ TH̘&lt;b&gt;Ë͖́̉&#xA;  ͠P̯͍̭O̚​N̐Y̡ H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘&#xA;  ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝&lt;/b&gt;S̨̥̫͎̭ͯ̿̔̀ͅ&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;--- Have you tried using an XML parser instead?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3044" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-03T03:27:55.607" LastActivityDate="2010-12-03T03:27:55.607" CommentCount="7" />
  <row Id="23264" PostTypeId="2" ParentId="23259" CreationDate="2010-12-02T23:35:27.977" Score="5" ViewCount="" Body="&lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;P̞̰̟͂ͭ̐́͑̀̏͐̽̔ͅr̼̜̠̼̼̦̭͎̺̤̺̭̮͛͗̔̒̋ͯͤ͑ͨ̐ė̦͍̜͙̯̣̲͚̯̐͆̽͆́ͣ̊͊̔͐t͈̼͉̣͚͇̤̦͙̺͈̦̩̦̙̲͔ͭ̽̉̏ͤ̔̉ͦ̒͑̎̅t̟̙̬̼̞͉̖̺̘̦̺͇̞̞̲̬̼ͥ̉ͪ͗̂̓̓̑̿̏́̐̄͂ͥ̓͌ͅẙ͎̮̼̯͙̗̯̻̗̯̞͇̈ͫ͒̋̋̄ ̪̦̗̻͕̬̣̀̈ͭ̏ͨ̅ẹ̬̼͇̜͉̰̻̩̼͎̮̙ͤ̈ͧ̈́̅̇̊̐͛̚ḁ̦̞͎̩͙̟̠͙͓͖̄͗̎̄ͬ͑̍̒̉s͖͔̠͎͙̣͉͇̜͕̺̩̺̫̙̯̲͉̪̉͐ͮͨ̐̊͐̃̓̂i̳̬̘̓ͫͫ̃ͨ̉͆̽̎̚ͅl̲̳͙͚̻̑̃͗y͓͇͉̮͇̺̘͓̥͕̼̝͊ͣ̃ͤ,̜͙͖͍̬̮̯ͭͬ̒ͫ̎̓ͨ ͖̗̹̖̣͔ͫ̄͗̆̿ͩ͐̿͒̾̈̍́̈͛ͪ̚ͅa͇͕̫̱͍̞̬͚̺͇̿ͪͬ̈́̍ͧ̓̽͂͂͋ͭc̳͇̫̮̳͖̮̈͛ͥ̄ͯͭ̈ͣ̄̒̈ͥț͉͓͕̭͓̥̫͎̜͈̺̬̳̪͚͗̍̽̿͋̋̓̉͑ͤ̋ͯù̫͓̟̙̪̲̟̘̪̪̪͉̭̘̗̝̬̊͒̌ͫͦ̆ͤ̓̾͌̎̚̚̚ȁ͓̳͚͙̝̩̟̹͚͎͍̬̪̳̺̩ͮ̋ͥͣ͂͒ͯ̇͐̃̓̆̆̿͌̂͒ͣͅl̘͎̫̣͖͔̣͚̹̬̦͔͆ͫ̾ͩ̂̈̽͛ͫ̄ͦ̀͐ͣ̓̚ͅl̜͖̭͕͚̦̹̻̠̹̠̰̝̹̇̒ͩ́̑͗ͦ̐͊̾̆́ͦͧy̝͇̖̮̞̰̙͔̳̦̍ͬͯͨ̾ͨ̂ͣ̆̾̒͛̊ͪ̿̿̀͋ͥ.̱̯̭͓̲̻̩̤̙͖̘̊͛͌͂ͫͦͮ͊̉͂ ̖̣̟̦̙̰̦̟̖̓̄̽̉̃ͨ̓̅̎͂͐̇ͥͫͮĔ͚̬̯̯̠͇̻̞̘̺̟̪̙͉̯̼̤̙̓ͪ̂̒̑̉̾̓ͭͧ͐ͥͯ͛ͫͅx̞̰͓̘̺͎̤͒͆̃̽́͌̍̎͋ͭ́ͦ͗ͦ͛ͪc̞̠͍̲̻̫̗͇͉̳̲̟̳̿ͬ̃̈́̐ͬ̽ͯͩͧḷ̠̞͍͍̅̄ͦ͛͐͒ͬu̠̯̻̥͓̺̦̦̼͚̯͈͓̻͇̎ͭ̆ͫͣ̅̀̓ͪ̊̂͂̓́̉͋̇ͩͅd͓͙̦͔̭͚̠͈̜̹̠̰̠̥ͭ̎̑̃̏̏ͬ̈ͯ̓̎̈́̐ͫ̈ͅi̮̜̱̖͚̺̫̝ͪ̽ͦͮ̇̂ͬ̍ṇ̜̦̪̬͓̱͉͓͚̈̇͒̋ͮ̊̂g̲̬̤̝̙̐̾̓ͪ͒̏ͬͦͫͨ̃͊ͅ ̳̮͕̗̞͉̟̰͉̞̬̺̟̤͉ͧͦ͗ͧŝ̭͙̬͕͍̭̹̘͓̞͇̼͔̯͚̫̈́͑̆͑̾̂̎̋ͥ̀̎ḙ̥͖̺̫̗͎͖͎͕̣̬̗̙̻ͬ͛̓ͣ̆̎̈́ͅl͎̩͉̠̖̜̫͕̳̰̤̰̣̝̫̯͎̥ͮͥ͆̎͐̄ͬͣ͊̐ͧͩ̈́̄̎̓ͪ̚f̰̬͍̫͔̼̰̳͚̥͙̝͍͊ͤ̽ͨͭ̀ͮ-̟̱̬͔͙͖̯̫͔̝̬̖͕̮̮̙̬͚͗͂͒̑ͯ̾͑̍ͨͯ̀̐̐ͨͤ̏͒ͮͅc̪̥̘͚̙̟̘͉̭̜̹̏͋̐ͣͭ̊́͑̿̎ͩ̍̔ḹ͔̭͔̞͓͎͔͖̯͓̒̈ͩ̃͋͛̚o̭̤̣̰̤̹̝̺͓͇̹̰̙̖̟͇ͩͫ͌̈s̪͉̫͍̣͉͛͊̓ͤ͒̌̄ͦ̿ͥͩ̊̈́ï̠̟͔̭͖̼̰̝̰̙̳̻̟͎̝̘͕̠̈́̾̿̅n͍͇͕̗͍͈̭̙̒̃̏͋̎̏̈͒̀̏͐̔̔̉̚g̠̠̱͇̠͔̜̜ͥ̒ͫ͆̒̍̑̾̌̋̋̓͛ͯ͊ͥ̓͐ͥ ̭̥̮̦̯̪͇̟̦̥̹̩̺̗̜̭̟́̈̎̀̋̏ͥ͛̏ͪ̊̄̃ṭ̻͚͙͔̳̘̲̣̀́́̍͆́̌ͫ͊̓ͥͪ̃̈́̎͊̚a̭̦̪̺͇͖̘̙̲͇̠̼̔ͧ͒̇g̦̺̰̘͉̣͙̟͚̦̬̼̯͙̣ͧ̐̉̄͊̒ͅs̫̯͇̟̟̮̪͍͚̯̝͚ͥͧ̆ͮ̍͒͑̇͗͛̽̋ͯ͒͊̊͗̚̚,̥͕̞͖͙̺͖̥͇̟̜̓ͦͭ̐̓ͅ ͓̠̯͕̞̻̼̳̰̭̬̇͋̎ͣ̎̎̉̌ͣ̎ͤ̋̀̄͛̈̐̈ͅͅa̝̱̣͈̞̩̭̖̪̟͈̣̗̺̳͕͈ͥ̾̌̔͌̉ͦͭͫͣͫ͛̓ͮl̫̘̙̼͓̖̝̠̖͓̐ͤ͊ͅl͇͉̙̱͈͎͖̜̙͇̞̻ͮ̅̏̃ͫ͋̉̓ͬͩͭ͗̌͂ ̰̫̬̣͙͂ͨ̓̌ͭͪͅy̝̤̰͙̱̗̮̖̤͉̮͚̩͙̒͋̋͂̊̄o̬̫͕̯͚̮͓̪̠̭̞̝̟̩̗ͫͪ̓͌͋ŭ̥̙͈̭ͯͫͨͣͭͪͣ̓ͮ͂̿ͮ̈̉ͮ̐͋ ̫̩̫̣̈́̇͆ͥ̅͑̒͆ͭ͒͂͂̚̚ͅn̹̻̻̜͖͎̝͖̰̭̠̦̩͙̤̲͍̄ͭ̌͗ͣ̐̋ͤ̅̈̂̒̈́̄̏ͪ̓̉ͅĕ̻̦͔͎̯̳̭̍ͫ̆ͭ̊̆̈̃̉̚̚e̜̰̥͎͖̗̲̗̙̦̹̦ͥͮ͑ͭͧ̂ͅͅd͕͖̰̫͖̺͉̠͕̖͇̗̺̜͉̟̺̬̩̐̄̊ͤ͗̋͂̈̽͑͊͂͆ͨ ̳̰̰͖̜͎̘̮͓̩͚̘̯ͬ̍͌̑̇̐́ͮ̈͂ͦ̌ͪ̽̍̚ṫ̰̮̗͖̻̼̪̠̼̙̘͇̦̲͙̳͔̣̰ͪͨ͛o̥̙̠͖̻̣̹̘̻͓̺̱̮̙͛ͥ̀͊ͮ̈̓̏̓̔͋̓ͬ ̱̼̳̣̬̲͈͕̱̟̲͎͔͈̫̓ͬ̽ͤ͂̾̓̿͒̈́̄͒̚ͅd̳͓͍̳̜̦̗̑̐ͯ̇̎ͤͦ͌o̯̺̺͍̩͚͕̙̝̤̓ͤ̓̔͛̓̽̽ͭ̃̄ͨ͋̒ͅͅͅ ̺͕͍̝̠̔͑̊̋ͮ̍͐ͤ̿ͨ̒̄̉̏̂͋̎̾͗i͎̗͎͖͇̼͍͚̹͚̲͕̞̤̭͌́̾̎̂̿ͦ̃̽͋͌ͯͮͩ̆̏̂ͥs̜̫͓̝̯̗̹̳͔͉̹̩̜̼͈̓̓̈́ͩ́͂̈ͅ ̮̙̠͎̣̦̪͎̬̻̾̃̎̉̒ͩ̃ͤ̀̉ͬͥ̄ͤm̖̩͕̮̘͔̯̙̣ͣͪͫͥ̓͂̏͌ͧ͆ͪ̇̾ͅȧ̞̬̯͎͎̬̺͔͙̳̰ͧ̆͆ț̰̫̹͉̺̜ͭ̓͂ͯ̃͐̋̓̅ͣ̒̐c̝̬̰͕͎͕͕̹͍̼̳̤̗͖̤̣̹͛ͧ̃ͭ̉̽̆ͮͣ͗̃ͨ͋̍͌ͨͪͅh̲̥̥͙̭̲͕̖̙͎̟̺͕͙͍̰̙ͬͯ͑͛ͮ ̲̱̟͖̳̾ͬ̊ͦͯ̋̊̒͑̍͑ͅa̲̮̜̥͖̳̭̙͍͔ͨ̄ͥ̋̐̚̚n̤̦͖͉̟̞͒ͦͦ̈́͐͆͆̆ͨ̐ͣͦ̑̄ ̟̖̻̤͎͇͚̤̫̤̮͓͋̈ͬͩ͗̏ͦͭͤ̒ͦ͛̉̚o͕͎͓̤͎̺̰̙̯̼̓ͮ̓ͤ͊ͮͥͅp͎̯̫̞̬̬̠̰̤̜̼̱̭̀ͥ̽̌̉̎̌e̥̮̫͓͙̲̯̹͍͇̍̋͂̍͋̊ͦ̋̇͑ͭͤ̅͑̚ͅṋ̥͓̮ͦ̍͆͂͑̒̈͑ͫ̑ͮ̂ͫ̾̀͗̓i͕̭̭̠͕̟͎̦͔̼̼͇̹̫͚̘̺ͩͯ͗̑ͤ͑́̂͌̃͑ͯ̍͑ͥͣ͋͑̈ṋ̜͍̯̦̭͕̲̮̻̟̞̪̓ͣ͂̆̐͊̾ͮ̔̇̾̈͛̎̂ͬ̚ġ̰̰̠̙̪͚̫ͭ̂͋̌̆̒̒ͥ̾ͧ̄̑̃̾̔̏̒ ̦̞̠̪̫͎̲̜͎̲̮̬͙̱̥ͦ̋̓̊͑ͪ̉̈́ͭ͆t͈͙͎̺̦̩̫̣̫̜͇͓̗̂̂̅͆͒ͨ̂͋̎̍ͣȃ̘̟̝͍͖̫̲̩̖̦̻̼̫̙͆͋̒ͭ̽̈͌̊ͦͩ̋̉̚g͈̜̫̯̥̘͖͎͖̹͇͖͇͂̈̏̾ͬ͂,̯͔͍̳̬̥͇̟͎͋̔̽͌ͪ́̽͊̂̾͑̅̄̿ ̜͎̪̖̜̲͖̠̜̗͚̼̩͈̲̯̯̱̓̒ͮͥ̍͌̌͊̀͋̆ͧͪ̋̓͆ͅw̰̟͔̙̞̮̙͇͍̰͓̝͙̲͍̔̑̐ͨ́̐̂̓͗ͭ͒ͅh̹̫̞̟̳̱̹̦͙̻̗̰̞ͩ͗̌̏̏ͧͫ̽̌ǐ͍̦̮͕̔ͩͪͫ̎̑̐̓ͪ͂̔̃ͬͅc̺͉̟̝̣̖̦͊͛̂̋̚ȟ̬̫̯̹̣͇̺͑ͮ̏ͫ̽̋ͬ̓ ̟̹̯̥̖̥̦̙̟̺̄ͫ͐̉̔̂ͥͥ̾ͅm̳͚̤͖̱̪̹͔͓̲̗̖̏̀̿ͨͬͣ̓̑̍̋̂͂̍ā̯̰̯̳̇͆̆̉ͥ̆̍̈́ͦͣͫy̘̠̠̭̜͎̜͊̍̋̑ͮ̂͆̅ͭ͒͊̚ ͔̫̩͍̹̫̘̜̼̪̘̮͇̦ͤ̋ͮ́̂͑̍̈̇͛̄̉̀ͨ͑̄̊ö̘̻̱͉̟͍͓̪̼͈̮͎͈̖̗̠̹͐̿̔̉̂̈́̾͐͌̂̌ͫͧ̈́̄r̯̣̲͚̮͗͛̆̑ͣͣͦ͊̍͌ͮ̓ͧ̇̀̑̾ͫ ̘̘̖̭̖͖̐ͦͤ̽̽ͤͨͫ̂ͨ̽̄̓̅͐̒ͭͯ͐m͉̬̭͓̖̝̗͈̻̘̫̙̿̏͌ͩ͂ͬ̚a̠̣̞̘͉̩̯͚͇̤ͦ̀ͩ̍̀ͮ͑ͥͮ̐̃ͯͫ̋ͅy̬͈͍̠͛̂ͣ̄̓̅ͯͪ̉ͭ̔̓̌̿ͫͦ̚ ̭̹̗̲̥̤̟̯̣͎̫͕͓̮̠͙̅̌̒̈̿n̬̳̗̱̟̪̳̫̺̈ͭ͒̏̍̑̉̾̔̆ͣ̐͌̿̄̈̚o̼͕̪̳͇̫͕͉͙̜͓̞͈̬͌̅ͫ̓̀́͗ͬ͑ͫt̥̖͎̼̻̗̬̯̉̈̂ͪ͒̽̐̇̏̆ͭ̅̃ ̝̮̻̣̗͎̦̼̹̻͉̼̜̟ͩͪ̓̓̇͛͌̍̽ͥ̋̈̂ͅͅh̟̠̥̞̰͔͎ͫ̃͆̀ͯ̈̈́́ͨͤͯ̊ͨ̑̍̅ͩ̄a͇̙̪̜̱̹̳̜̖̪͕̞̼͙̍̄̅̋̐͋ͨ͋ͪ͊̉͐͌ͤv̬̜̖̱̺̒̈́͌ͬ̌ͦ̈ͅe̤̞̞͙̙͓̐͑͒̓̂̌̎ ̻͈̬̺͎̦̘̘̯̱̤̼͈̗̮̱̑̐͐͒͒ͣͬ̑a̗̮̫͈̗̮̭͇̲̜͙ͣͦͤͮt̲͚̼̟͍̠̗̘̻̪͖̯ͧ̾̈̈ͯ̔͋̇̅̚ͅt͎̥͇̹͚ͫͤ͗̓ͯ̾͐̓ͬ͊͛͐̈̓̊ͤ͌̚ͅr̟͓͇̠̝̬̹̙̊ͩ̿ͫ̇̾i̼̟̙̠̰̲͊̐̔ͤ̅ͬ̾̓̋͗͐̂́ͪ̏̌ͨ̚b͖͚̹͇̩͈͎͎̼͂͗̽͑̄͛ͧͧ͋̔͑̋̆́u̥̘̰͍͕͍̪͚̹̥̻̭̹͇͇͇̒͐͂̽̐͗ͫ̓̒̓̀͊̐ͩͬ̒ṯ̭̻̦̪͙̩̞̝͇̤̈́ͭ̄̊ͮ͋̅̽̒ͩ͛ͪ͒̈́e͖̭͙̘̝͎̹͈̙͉̹͚̐̒ͦ͐ͦ̎s͍̠̱͑̒̀ͬͧ̌͋̏ͩ̂̊̂,̥̖̝͔̼̘̺͖̟̔̎͂̑̾̓̈ ̥̟̻̰̼̘̮̙̳̱̼͙̼͉̜̯̮͓͂ͦ̽ͧ͌̂͛ͬ̌͛a͔̬͖̘̪̪̹̰̩̗͇̺̰̓ͯͩ̅ͣ̎̐̍ͩ̂n̝̞̤̬̩͙̗͈̬̫̮̭͉̰̲͎ͦ̿̎ͤ̐ͮ̊̿͆d͉̜̫͉͛̋̇ͤ̊̾ ͇̝̖͖̝̣͕̖͖͙̺̞̯͚̩̌ͨ͋̇͌̄͐̏ͬͥͭi͍͖͖͒ͥͫ̑̌̒̒̒̍ͪ̆͆̚̚t̗̜̺̰͇̱̪͉͖͕̦͇̟͎̯͖̙̳͑ͣ͐͒͂̿́̊̐̅s̥̫̹̤̯̞͍̥̹̬̹͇̭ͣ̎̊ͭ͊ͅ ̻̜̙̹ͧ̑̍̇̇̊ͤ͛ͤͦ̑̍ͅc͉͎̮͕̲̺̭͖̻̪͙̼̣ͫ̔ͧͫ̓ͪ̔ͣ́͊̿ͤ̍̚ͅḽ̩̣̟̯̲̗͍͍̰̫̥̭͕̣̗̳̏̓̑̽̆͋̀̋ͬ͂͌̔ͯ͗ͅo͇͖̪̼̮̳̲͚̣̳̺̠̭̯̓̈͒̔ͪ̔̽̔͑̊ͭͧͣ̔́̌̐̄ͤs̜̞̗̱̩̰̼̘̙̻̾̽ͬ͂ͮͬ̃̐̎ͤ͌ͯ̿̿̅ͪ͑͋i̦̙̯̘̱̳̅͛ͭ̏͒ͪn͈̖͈̭̹̦̰͈̜̺͚̩̫͚̺͈͓͔̼̽̂̑̓̈́̃ͤ̃͑̿̐ͭ̋̆ͣ̒̌̋̚g̲̥̞̠̭̼̪̻̗͇͇͐͒̔ͣͥ͋̄̑͐͆͐̔̐̃̉̂ ̭̥̳͔̲̥̠̙̞̤̩͍̈̇̓̓͑̔̅ͭͅt̹͍̝̻̞̩͔̝͔̜̭̪̃̄͒͆ͧ͑̒̇͐͆̌̒̚a͔̭̯͉̥̰̬̞͇̮ͬͦ͋͊̅̉ͬ̿̒̊ͯ̐͂͂́ͅͅg̳̪̖̦̺̬̩̪͇͉̱̟͆͒̌ͧ̽ͧ̈̌̓ͨ̅ͭͥ.͍͈̘̰̭͚̺͚̮̺̲͖͇̦̔̏͒̈͗͗ͣͭ̍̋͋ͥ̽ͤͫ̒̈͋ͤͅ&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&#xA;" OwnerUserId="5624" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-03T15:27:53.483" LastActivityDate="2010-12-03T15:27:53.483" CommentCount="3" />
  <row Id="23265" PostTypeId="2" ParentId="23146" CreationDate="2010-12-02T23:42:51.103" Score="3" ViewCount="" Body="&lt;p&gt;I just want to reinforce Murph's answer. Yes, it's a security problem and there is information disclosure vulnerabilities in implementing it. But from the client's point of view, he doesn't seem to be too worried about that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you should point out is that it's &lt;em&gt;physically infeasible&lt;/em&gt; to actually implement a &quot;unique password&quot; check. If you're salting and hashing password, and not storing them as clear text, then it's O(n) (expensive) operations to actually perform the uniqueness check.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you imagine if you have 10,000 users, and it takes 30 seconds to go through every user's password to check for uniqueness every time someone new signs up or changes their password?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this is the response you need to take to your client.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastEditorUserId="2359" LastEditorDisplayName="" LastEditDate="2010-12-02T23:48:19.520" LastActivityDate="2010-12-02T23:48:19.520" CommentCount="1" />
  <row Id="23266" PostTypeId="2" ParentId="23259" CreationDate="2010-12-02T23:56:12.817" Score="3" ViewCount="" Body="&lt;p&gt;I wouldn't. doing so is a Bad Thing&amp;trade; and is bound to attract the demons of hell into this, our present dimension.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-12-02T23:56:12.817" CommentCount="3" />
  <row Id="23267" PostTypeId="2" ParentId="22709" CreationDate="2010-12-03T00:02:55.270" Score="1" ViewCount="" Body="&lt;p&gt;If they didn't give any indication at interview of the time-scales for their decision, then it is very reasonable to ring back even the next day and to ask the question about what timescales they are working to? &lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-12-03T00:02:55.270" />
  <row Id="23268" PostTypeId="2" ParentId="23259" CreationDate="2010-12-03T00:14:20.427" Score="4" ViewCount="" Body="&lt;p&gt;The short answer is that you can't. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The long answer is that HTML is a context-free language, which is a way more powerful class of languages than regular languages, of which RegExp is an implementation. While I believe there are some small differences between the theory of regular expressions and its implementation in the industry, I doubt that it changes the expressive power of the tool enough to be able to parse a context-free language like HTML. &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-12-03T00:14:20.427" CommentCount="0" />
  <row Id="23269" PostTypeId="2" ParentId="23215" CreationDate="2010-12-03T00:32:40.917" Score="4" ViewCount="" Body="&lt;p&gt;A 'Professional Fit interview' is usually a non-technical interview by one or more people from the department you'd be hired into. It could be the senior manager who ultimately pays your salary, but it could also be a couple of engineers who are comfortable talking around various subjects to see if you'd fit in with a team like theirs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some 'positive indicators' that they may be looking for (understands team work, can communicate, familiar with SDLC) that may not have been on your CV/resume nor come up in the technical interviews, but they're looking for them. Try to spot these and answer in a positive fashion. E.g.:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Question: What coding style do you use?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good Answer: &lt;em&gt;I'll take cues from the style of surrounding lines of code to ensure consistency, or ask colleagues about the team style&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad Answer: &lt;em&gt;I like to re-format all code I work on to fit my personal tab/brace/naming style. It's so much better than anything else&lt;/em&gt; (yes, I've heard this)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some items that would count as 'negative indicators'. It may be illegal/bad form to ask certain questions in an interview (e.g. in UK can't ask about family, marital status, gender or religion), so they may want to talk around the subject until you accidentally let slip something they feel may be a problem for them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, this is immoral, but it happens in real life. I have seen people rejected because they were gender-unsure even though they were brilliant programmers. I have also seen excellent engineers hired by HR departments but then get ostracised by the team as they just didn't get along with anyone in the team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't volunteer anything you don't need to. For example, no need to mention that you're thinking of starting a family next year - it's none of their business, but some interviewers would immediately think &quot;has outside commitments to distract him from the job&quot;. If you can get to the office by ~9am and do a full days' work, no need to make them think that you can't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My top tips for getting through this:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Dress smart&lt;/strong&gt;. You need to look 'professional', even if the dress code is metal T-shirt and ripped jeans.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Professional, objective responses&lt;/strong&gt;. Don't run your mouth off over anything - you may be lulled into doing so (a common technique), but try to stay on-topic.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Do some homework before the interview&lt;/strong&gt;. Try to have a better understanding of their company, their projects/goals, the market they operate in, etc. As this is interview is further through the process, you should be demonstrably more interested in the job.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Be straight with them&lt;/strong&gt;. Tell the truth. If you don't know, just say - don't waste anyone's time. If you're caught bending the truth, you'd likely fail your probationary period or (worse) be sued.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Be alert&lt;/strong&gt; - although the person interviewing you may seem detached from the job you've applied for, they may try to throw in the occasional technical question to make their own assessment of you or to see you how react. I once had a CTO-level guy in a finance company ask me to compare and contrast two embedded O/S's approach to device drivers. Yep, really.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-12-03T00:39:40.180" LastActivityDate="2010-12-03T00:39:40.180" CommentCount="1" />
  <row Id="23270" PostTypeId="1" CreationDate="2010-12-03T00:32:49.347" Score="15" ViewCount="1110" Body="&lt;p&gt;I'm a PHP/Python programmer learning Java and C#(.NET). My main OS is windows 7 but I've used Linux and currently dual-booting with Ubuntu. My Linux knowledge however, is pretty limited. I can work with the command line on simple tasks but that's pretty much it. I don't do any shell scripting, don't know very well the most important commands, nor the system in general. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My interests are web development, mobile apps and maybe some embedded stuff in the future. Should I get myself familiarized more with Linux ? Even if at the moment I'm not that interested in it? Is it a must for future job positions considering my field of interest? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you. &lt;/p&gt;&#xA;" OwnerUserId="9044" LastActivityDate="2011-02-20T16:38:03.140" Title="Should a programmer know Linux ?" Tags="&lt;career&gt;&lt;linux&gt;" AnswerCount="14" CommentCount="4" FavoriteCount="1" />
  <row Id="23271" PostTypeId="2" ParentId="23270" CreationDate="2010-12-03T00:44:14.953" Score="20" ViewCount="" Body="&lt;p&gt;If you're a PHP programmer, you should definitely know Linux. PHP was created on Linux, and PHP is an imporant part of the LAMP stack: Linux+Apache+MySQL+PHP. Even if you have the opportunity to develop for Windows servers now, your next job will probably have you developing for Linux servers, and you'll need to be familiar with the Linux environment so that you're not running afoul of Window specific 'isms of PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the mobile app space, knowing Linux will (sadly) have little relevance to the environments you're developing for. iPhone OS has nothing to do with Linux, and Android has you so tightly fenced into a virtual machine, you'll never know there's Linux beneath you. You could program for Linux on Meego or Maemo, but those have nowhere near the popularity of the iPhone and Android.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the embedded space, you &lt;strong&gt;have&lt;/strong&gt; to know Linux. Embedded Windows is rare, but embedded Linux is quite common. (Of course, bare-metal embedded programming is also quite common, so it depends where you want to go.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you learn Linux in depth over a number of years, you'll have some level of understanding of every part of the system from the kernel, through the bootup process, up to the command-line, and GUI.&lt;/p&gt;&#xA;" OwnerUserId="1961" LastActivityDate="2010-12-03T00:44:14.953" CommentCount="2" />
  <row Id="23272" PostTypeId="2" ParentId="23270" CreationDate="2010-12-03T00:45:18.107" Score="26" ViewCount="" Body="&lt;p&gt;If I am coding a windows app (or a mac app) why should I need to know Linux? Should a Ford mechanic know John Deer tractors?  It all depends on what you are doing, professionally or on your own &quot;hobby&quot; time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, it doesn't hurt to know it.  In fact, I am a firm believer in &quot;the more you know, the better off you are&quot;&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-12-03T00:45:18.107" CommentCount="8" />
  <row Id="23273" PostTypeId="2" ParentId="23270" CreationDate="2010-12-03T00:48:37.137" Score="2" ViewCount="" Body="&lt;p&gt;Yes, but you do not sound like you need to actively study it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me my familiarity with linux developed through use my use of it as my work OS. Piece by piece I learned the things I needed to know as they came up, and continue to do so. The internet is full of resources on how to do just about anything you would need to wrt linux, so instead I would suggest that you &lt;strong&gt;get good at reading man pages&lt;/strong&gt; and documentation and &lt;strong&gt;let your brain absorb&lt;/strong&gt; (and forget) &lt;strong&gt;the details&lt;/strong&gt; of how to accomplish specific tasks &lt;strong&gt;as you go&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said there are certainly a few commands that you will be shunned from the linux world for not having a basic grasp of.&lt;/p&gt;&#xA;" OwnerUserId="3757" LastActivityDate="2010-12-03T00:48:37.137" />
  <row Id="23274" PostTypeId="2" ParentId="23270" CreationDate="2010-12-03T00:48:44.733" Score="13" ViewCount="" Body="&lt;p&gt;There is a certain degree of 80/20 thinking you can apply here. It doesn't actually take very long to learn the basics of how Linux works and the core commands you need to know about from the Shell. Likewise basic Apache configuration is very convenient to have if you need it. You don't need to dedicate years of your life to it, but it is certainly worth learning enough of the basics that you could get by running your own server if you had to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a fine line though. If you aren't careful you can quickly find Windows begins to really tick you off as you get used to what Linux offers...&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-12-03T00:48:44.733" CommentCount="3" />
  <row Id="23275" PostTypeId="2" ParentId="23270" CreationDate="2010-12-03T00:55:46.580" Score="1" ViewCount="" Body="&lt;p&gt;Know enough that if you &lt;strong&gt;intend&lt;/strong&gt; to deploy to a particular OS, then you can ensure that your application works on it, but otherwise... you don't &lt;em&gt;have&lt;/em&gt; to know anything/everything.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-03T00:55:46.580" CommentCount="1" />
  <row Id="23276" PostTypeId="1" AcceptedAnswerId="23278" CreationDate="2010-12-03T01:17:44.480" Score="14" ViewCount="463" Body="&lt;p&gt;What skills, knowledge and talents should a junior programmer aim to obtain in order to be qualified to become a team leader? &lt;/p&gt;&#xA;" OwnerUserId="4091" LastActivityDate="2010-12-03T17:16:33.553" Title="How does one become a leader in a team of programmers?" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;management&gt;" AnswerCount="5" FavoriteCount="4" />
  <row Id="23277" PostTypeId="2" ParentId="23276" CreationDate="2010-12-03T01:26:30.923" Score="1" ViewCount="" Body="&lt;p&gt;a) Either show through time that you handle the material at hand with no trouble, have the necessary technical skills and are good with people in a way that you motivate them and lead them towards a mutual goal&lt;/p&gt;&#xA;&#xA;&lt;p&gt;b) or &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://images.businessweek.com/ss/06/12/1201_giftguide_toys/image/louisville-slugger-bat.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-03T01:26:30.923" CommentCount="1" />
  <row Id="23278" PostTypeId="2" ParentId="23276" CreationDate="2010-12-03T01:26:54.353" Score="26" ViewCount="" Body="&lt;p&gt;The best team leaders I've seen have all been dynamite programmers. But they've all had several other qualities, which are harder to define: wisdom, good judgment, good people skills (friendly and pleasant but not a pushover), dedication, commitment, and — most important of all — knowing how to give credit to others. Such people are natural leaders. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The worst qualities you could cultivate are arrogance, always having to be right, always having to have the final say, being a glory hound, one-upmanship, having a huge, bruiseable ego, never admitting you're wrong, deflecting blame onto others while hogging all the credit for yourself, and, worst of all, competing with the people who work for you.&lt;/p&gt;&#xA;" OwnerUserId="2618" LastActivityDate="2010-12-03T01:26:54.353" CommentCount="6" />
  <row Id="23279" PostTypeId="2" ParentId="16802" CreationDate="2010-12-03T01:53:55.950" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://transcender.wordpress.com/2010/05/19/the-april-2010-net-4-0-beta-blitz/&quot; rel=&quot;nofollow&quot;&gt;Transcender's Joshua Hester&lt;/a&gt; reported (about the beta version of this test):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;71-515 (TS: Web Applications Development with .NET Framework 4): A warning for old-school Web developers — this is not your father’s ASP anymore, so forget what you learned from the 70-562 (TS: 3.5, ASP.NET Application Development). The 4.0 exam focuses heavily on &lt;strong&gt;ASP.NET MVC 2, JSON, LINQ, and jQuery&lt;/strong&gt;. You might find some comfort in configuration settings and debugging options, but many of these aspects have changed in the .NET 4.0 as well, so you’ll need to review the changes thoroughly.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Note the differences between this and the 70-562.  Transcender has claimed elsewhere that they will have test material in November, so it should be coming out soon. &lt;strong&gt;Update:&lt;/strong&gt; Transcender now has a &lt;a href=&quot;http://www.transcender.com/practice-exam/microsoft/70-515.kap&quot; rel=&quot;nofollow&quot;&gt;70-515 for C#&lt;/a&gt; and one for VB as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;&lt;a href=&quot;http://dotnetdawson.wordpress.com/2010/07/16/just-passed-70-515/&quot; rel=&quot;nofollow&quot;&gt;DotNetDawson&lt;/a&gt;&quot; says to expect some jQuery:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;All JavaScript interaction on the test is predominately jQuery based, so it’s definitely a great idea to make sure your class understands the basics of jQuery: selectors, binding events, and some basic functions (hide, show, toggling classes). I remember a question about script loading as well, so make sure they know the differences and purposes of Sys.require, defineScripts, and registerScript. It is possible that my test was unnaturally biased towards the jQuery based questions, and I “luckily” was not asked a number of Microsoft Ajax questions… as long as you can establish a good working knowledge of JavaScript and how to write it, your students should be able to weed out the unnatural answers to any JavaScript questions.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;He claimed to use &lt;a href=&quot;http://www.measureup.com/70-515CS-TS-Web-Applications-Development-with-Microsoft-NET-Framework-4-C-Preview-P1729.aspx&quot; rel=&quot;nofollow&quot;&gt;MeasureUp's practice test&lt;/a&gt; to help him pass.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Niall Merrigan has a &lt;a href=&quot;http://www.certsandprogs.com/search/label/70-515#axzz11ZlDjtCH&quot; rel=&quot;nofollow&quot;&gt;6-post series&lt;/a&gt; linked to the relevant MSDN docs.  Make sure to cross check it with the &lt;a href=&quot;http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-515&amp;amp;locale=en-us#tab2&quot; rel=&quot;nofollow&quot;&gt;official Microsoft overview&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Veteran certification authors Tony Northrup and Mike Snell will release a &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735627401&quot; rel=&quot;nofollow&quot;&gt;Microsoft training kit&lt;/a&gt; December 16th.&lt;/p&gt;&#xA;" OwnerUserId="3623" LastEditorUserId="3623" LastEditorDisplayName="" LastEditDate="2010-12-23T20:10:24.547" LastActivityDate="2010-12-23T20:10:24.547" CommentCount="0" />
  <row Id="23280" PostTypeId="1" AcceptedAnswerId="23285" CreationDate="2010-12-03T01:54:09.503" Score="14" ViewCount="751" Body="&lt;p&gt;Do most programmers specialize on a single stack, leaving other things be, or are they expert at multiple languages at the same time? If it's more than one, how many is standard?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By expert, I mean more than simply knowing the syntax of a language - an expert knows enough of standard libraries, tools, environments and syntax to be able to write non-trivial programs without having to constantly look things up or read books/tutorials.&lt;/p&gt;&#xA;" OwnerUserId="4091" LastEditorUserId="4091" LastEditorDisplayName="" LastEditDate="2010-12-03T04:48:52.547" LastActivityDate="2010-12-03T14:33:33.030" Title="How many programming languages is a programmer expected to be an expert at?" Tags="&lt;programming-languages&gt;&lt;career&gt;&lt;experience&gt;&lt;self-improvement&gt;" AnswerCount="12" CommentCount="8" FavoriteCount="2" />
  <row Id="23281" PostTypeId="2" ParentId="23276" CreationDate="2010-12-03T02:03:08.947" Score="2" ViewCount="" Body="&lt;p&gt;It will be tough to be the best programmer you are capable of and be a leader, so accept the fact that you may be spending time doing things you don't like to do when you'd rather be coding. Not that you can't become a really good programmer, but eventually, something in your time constraints will have to give. This does not mean you will be a respected development team leader if your code is crap.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like everyone in power, you'll be tempted to think of them as your minions, but the best leaders are the ones who have something to offer those who are in their responsibility. Be a resource for programming solutions or at least point them in the right direction. Create an environment conducive to software development by making those on your team responsible for their code and run interference on the outside forces threatening your team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get in touch with your natural tenancies. If you have an aversion to the following, think twice about this career move:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Teaching other developers and caring about their career development.&lt;/li&gt;&#xA;&lt;li&gt;Giving critical feedback; sorry, but one day you will have to fire someone (Or maybe you should be.).&lt;/li&gt;&#xA;&lt;li&gt;Justifying and standing up for your team to the rest of the company. They won't 'just get it'. You have to sell, persuade, and convince. Just thinking of them as stupid will hinder your team. Eventually, you'll have to toe the company line. Admit it to your team and don't come up with some illogical nonsense excuse why doing something stupid is the right thing to do. Hey, I know it doesn't make sense, but do it anyway.&lt;/li&gt;&#xA;&lt;li&gt;Stick to what you know is the acceptable workload, time expectations, and code quality without being deluded into thinking you use to be able to program for 100 hours straight with no sleep and zero defects.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If you don't want these confrontations and would rather be coding, just be a great programmer and forget about being a manager. Every project/team/company could use a bus load of those.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-03T02:03:08.947" CommentCount="2" />
  <row Id="23282" PostTypeId="2" ParentId="22873" CreationDate="2010-12-03T02:06:32.540" Score="2" ViewCount="" Body="&lt;p&gt;Neither programming nor creating is my passion, though I enjoy both. My passion is helping people, and specifically helping them by solving some of their problems or generally making their (work) lives a little easier, usually by automating crap work they would otherwise have to do manually.&lt;/p&gt;&#xA;" OwnerUserId="5304" LastActivityDate="2010-12-03T02:06:32.540" />
  <row Id="23283" PostTypeId="2" ParentId="23280" CreationDate="2010-12-03T02:23:31.293" Score="3" ViewCount="" Body="&lt;p&gt;One, but that doesn't mean you can neglect the others. You have to know enough to justify why you're not using them or know your limitations, so you can ask for help when appropriate. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-03T02:23:31.293" />
  <row Id="23284" PostTypeId="2" ParentId="23280" CreationDate="2010-12-03T02:35:39.000" Score="-2" ViewCount="" Body="&lt;p&gt;One from the Open Source,&#xA;One from the Closed Source,&#xA;and&#xA;One from the Web Development Programming Languages&lt;/p&gt;&#xA;" OwnerUserId="4500" LastEditorUserId="4500" LastEditorDisplayName="" LastEditDate="2010-12-03T02:41:46.637" LastActivityDate="2010-12-03T02:41:46.637" CommentCount="1" />
  <row Id="23285" PostTypeId="2" ParentId="23280" CreationDate="2010-12-03T02:40:27.270" Score="25" ViewCount="" Body="&lt;p&gt;The main benefit of knowing multiple languages isn't in writing them directly. All other things being equal, I'd rather work with a C# programmer who also knows C, Python and Lisp (for example) than one who's only ever hacked in C#. It's not that knowing more languages is better, it's that being able to think about problems at multiple levels and from multiple perspectives is really helpful.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A programming language that doesn't change the way you think about programming is not worth knowing. &lt;em&gt;-Alan Perlis&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's not about checking off one more language, or putting it on your resume; you just need to understand its underlying concepts well enough to program in it to get the full benefit. You won't get that from having a basic understanding of the syntax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The more direct answer is &quot;it depends&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At larger companies you're expected/allowed to specialize, but as I said above, I believe there's still benefit to understanding things beyond your one favorite tool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At smaller places, you really can't get away with that. If nothing else, you typically need to maintain your app as well as build it, and you probably souldn't use the same languages for running through logs/data munging as you do to actually build your app. I guess you could technically &lt;em&gt;get away&lt;/em&gt; with knowing a single language, but the benefit of having a well-performing, strongly-typed (or at least assertion-capable), probably compiled language do the heavy lifting, and a scripting language for maintenance/setup/scripting tasks seems pretty big. I wouldn't want to do without it, certainly.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-12-03T02:57:52.690" LastActivityDate="2010-12-03T02:57:52.690" CommentCount="2" />
  <row Id="23286" PostTypeId="2" ParentId="23270" CreationDate="2010-12-03T02:41:34.173" Score="1" ViewCount="" Body="&lt;p&gt;Do any of the following bother you?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You can't/shouldn't put Linux on your resume.&lt;/li&gt;&#xA;&lt;li&gt;You don't qualify to work for a purely Linux shop.&lt;/li&gt;&#xA;&lt;li&gt;Your current job demands and level of interest in pursing Linux via self-study are non-existent, so your situation concerning Linux won't change.&lt;/li&gt;&#xA;&lt;li&gt;Non-Windows developers will mock you (Maybe not to your face.).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;There are tons of job opportunities and career paths you can still pursue. I'm not saying any of these 'should' bother you. Just be honest with yourself and keep an eye on the industry in general and Linux in particular to see if your paths may cross. No doubt you could figure it out when the time comes. Who knows, a Linux project may come your way tomorrow.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-03T02:41:34.173" />
  <row Id="23287" PostTypeId="2" ParentId="23280" CreationDate="2010-12-03T03:06:48.010" Score="2" ViewCount="" Body="&lt;p&gt;One. But you better be damn good at it.&lt;/p&gt;&#xA;" OwnerUserId="9015" LastActivityDate="2010-12-03T03:06:48.010" />
  <row Id="23288" PostTypeId="2" ParentId="23259" CreationDate="2010-12-03T03:19:27.807" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://meta.stackoverflow.com/questions/19478/the-many-memes-of-meta/19492#19492&quot;&gt;jQuery&lt;/a&gt;, obviously.&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-12-03T03:19:27.807" CommentCount="1" />
  <row Id="23289" PostTypeId="2" ParentId="23280" CreationDate="2010-12-03T03:23:45.190" Score="2" ViewCount="" Body="&lt;p&gt;I think it probably depends on your personality, there are people who revel in digging down into the nooks and crannies of a subject, and there are others who like to get a broad view of things. You probably will need to figure out what type of personality you are. I am not putting one above the other each have their uses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As the former you will be the expert, the guru, the specialist. As the latter you will be of more general use and possible used in a variety of situations but possibly not go as deep or long into a subject.&lt;/p&gt;&#xA;" OwnerUserId="4171" LastActivityDate="2010-12-03T03:23:45.190" />
  <row Id="23290" PostTypeId="2" ParentId="23270" CreationDate="2010-12-03T03:28:14.640" Score="0" ViewCount="" Body="&lt;p&gt;I've always coded in the Windows environment. For me, Linux just used to be another OS I'd have as a backup in case my Windows ran into trouble. I only knew basic commands and everything I tried to do on it seemed to be hard. But now at my current job as a web developer, we all use Linux so I am forced to learn it and use it for everything. The more I use it, the more I like it and I think it's a lot more productive and flexible. I regret not having messed more with Linux before. Now I'm just catching up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So yes, you should learn it whenever you can.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-03T03:28:14.640" />
  <row Id="23291" PostTypeId="2" ParentId="23280" CreationDate="2010-12-03T03:34:03.407" Score="1" ViewCount="" Body="&lt;p&gt;As Joel said in the SO podcast, it's better to know many many languages and know how/when to use the right language for the task. There are things you can do way faster in one language than another. &#xA;I think it would be good to know an imperative language and a functional language for example. Many times learning a harder or more esoteric language trains your brain to just be a better programmer overall.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-03T03:34:03.407" />
  <row Id="23292" PostTypeId="2" ParentId="17438" CreationDate="2010-12-03T03:36:52.137" Score="1" ViewCount="" Body="&lt;p&gt;It's not finalized yet, but there is work underway to standardize the embedding of RDFa in HTML5.  See:  &lt;a href=&quot;http://dev.w3.org/html5/rdfa/&quot; rel=&quot;nofollow&quot;&gt;http://dev.w3.org/html5/rdfa/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given that RDFa has been around for a while, and is proven and stable, and easily interoperates with other RDF based semantic data sources, I think you should seriously consider RDFa.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, consider the traction that RDFa already has. See: &lt;a href=&quot;http://www.readwriteweb.com/archives/w3c_pleased_with_semantic_web_adoption.php&quot; rel=&quot;nofollow&quot;&gt;http://www.readwriteweb.com/archives/w3c_pleased_with_semantic_web_adoption.php&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7160" LastActivityDate="2010-12-03T03:36:52.137" />
  <row Id="23293" PostTypeId="2" ParentId="19007" CreationDate="2010-12-03T04:38:16.030" Score="3" ViewCount="" Body="&lt;p&gt;Stop separating the two - Web development is a subset of software engineering, like a specialization. And there's nothing wrong with having specializations. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you use good software engineering practices like using version control, writing specs, code refactoring, writing unit tests wherever necessary, having a formal test phase with proper testers, etc? If yes then congratulations, you are already a software engineer. If no, then these are the things you can apply even in web development and become much more productive/professional as a developer. &lt;/p&gt;&#xA;" OwnerUserId="8652" LastActivityDate="2010-12-03T04:38:16.030" />
  <row Id="23294" PostTypeId="2" ParentId="23280" CreationDate="2010-12-03T04:38:28.050" Score="1" ViewCount="" Body="&lt;p&gt;None as there are likely some programmers that won't be experts in any language but they enjoy the diverse environment they have and will use various languages depending on circumstances as some may know a few server-side technologies like PHP, ASP.Net in C#.Net or VB.Net, or Java, a couple of client side scripting languages like JavaScript or Flash, and this is without getting into any hardware used to put up the web stuff here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the same time, there may be some programmers that are experts in a dozen languages or more as that is what they study rather faithfully most of the time to keep on top of so much within each language.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-03T04:38:28.050" />
  <row Id="23295" PostTypeId="1" CreationDate="2010-12-03T04:47:07.573" Score="2" ViewCount="120" Body="&lt;p&gt;At work we have a few older projects that are stuck on .NET 1.1 and VS 2003. While these are probably to much work now to move forward I'm wondering if the effort to keep our newer projects up to date will be worth it. Specifically we would be looking at moving about 30 projects from .NET 3.5 to .NET 4.0 and VS2008 to VS2010.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My Questions for the community are:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Do you move your projects along as new tools and libraries become available or just start the newest stuff in the newest versions? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do move forward have you found the benefits out weigh the cost of the upgrade?&lt;/b&gt;&lt;/p&gt;&#xA;" OwnerUserId="8982" LastActivityDate="2010-12-03T17:23:15.647" Title="Moving Old Projects To Newer IDE's and Libraries" Tags="&lt;ide&gt;&lt;libraries&gt;&lt;advancements&gt;" AnswerCount="4" />
  <row Id="23296" PostTypeId="2" ParentId="23280" CreationDate="2010-12-03T04:54:05.583" Score="0" ViewCount="" Body="&lt;p&gt;It depends on the environment where you're programming. At a previous job, most of my work was in Perl; during my time there I got quite proficient at it. Now I work at a place that has legacy programs in three languages that I barely know the syntax; I'm expected to maintain them in addition to my work on new projects. I'm now less a master of any language, but I think I've gotten a better feel for &lt;em&gt;programming&lt;/em&gt;. I've learned how to think more abstractly, see the big picture first, and then look up the syntax and the libraries to fill in the details.&lt;/p&gt;&#xA;" OwnerUserId="3869" LastActivityDate="2010-12-03T04:54:05.583" />
  <row Id="23297" PostTypeId="2" ParentId="23280" CreationDate="2010-12-03T04:57:40.680" Score="1" ViewCount="" Body="&lt;p&gt;One, but must be able to read non-trivial real-world programs that are written in a few other languages from time to time.  In some way, the one in which the programmer is an expert is like their mother tongue, they think in it, but learning and speaking other languages is very good in that it shows the programmer can appreciate other ways of thinking.  If they can think in more than one language as fluent as their mother tongue, that is awesome.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-12-03T04:57:40.680" />
  <row Id="23299" PostTypeId="2" ParentId="23295" CreationDate="2010-12-03T05:34:38.603" Score="0" ViewCount="" Body="&lt;p&gt;I would definitely upgrade an ASP.NET 1.1 or 2.0 project &lt;em&gt;if&lt;/em&gt; I needed to make significant changes to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's just puttering along, needing no work other than the odd copy change, leave it be. But it you have to add any real new functionality, it's worth doing the upgrade.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've not encountered any problems that took more than minor effort to fix. Now, I'll concede that I haven't upgraded any massively complex projects from 1.1, only simple ones. But I've upgraded big sites from 2.0 to 3.5 (admittedly not a huge change between those two versions) without issue. And found it well worth doing so, if only to get access to LINQ when writing new functionality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't consider upgrading a 3.5 project to 4.0 just for the sake of doing so. Only if you really need or want something from the 4.0 framework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for Visual Studio versions, absolutely. We work in VS2010. I upgrade any project or solution that was last saved in an older version. I've never seen any issues upgrading the solution file to a newer Visual Studio.&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-12-03T05:34:38.603" CommentCount="1" />
  <row Id="23300" PostTypeId="2" ParentId="23295" CreationDate="2010-12-03T05:38:41.337" Score="0" ViewCount="" Body="&lt;p&gt;Tricky question, because there are a lot of factors at play.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the one hand, keeping current will make your life much better in the long run. Eventually hardware and operating systems will outrun your code libraries, and you'll either have to do a huge upgrade, under pressure, or you'll have to deploy some evil kludge environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, spending a lot of time updating existing code will make your deliverables look like crap. In the business world, you seldom get credit for things &lt;em&gt;not&lt;/em&gt; breaking, and, ironically, you often get credit for fixing things that only broke because you neglected them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I say use your judgment. Keep mission critical stuff up to date, and let older, less relevant code fall by the wayside.&lt;/p&gt;&#xA;" OwnerUserId="9015" LastActivityDate="2010-12-03T05:38:41.337" CommentCount="1" />
  <row Id="23301" PostTypeId="1" AcceptedAnswerId="23322" CreationDate="2010-12-03T05:43:15.403" Score="1" ViewCount="69" Body="&lt;p&gt;Where would you recommend that a junior programmer, with skills mostly learned in Visual Studio and C#, go in order to learn how to go about refactoring his code?&lt;/p&gt;&#xA;" OwnerUserId="4091" LastActivityDate="2010-12-03T07:15:13.837" Title="What are some good tutorials for learning how to refactor programs in C#?" Tags="&lt;c#&gt;&lt;visual-studio-2010&gt;&lt;refactoring&gt;" AnswerCount="1" />
  <row Id="23302" PostTypeId="2" ParentId="23280" CreationDate="2010-12-03T05:47:13.203" Score="1" ViewCount="" Body="&lt;p&gt;This is a good question, but I don't think there is a standard. Normally by what I have seen the people are full expert in one high level language (C++, Java, etc. ) in one environment(windows/linux, mac, solaris). They know roughly some other high level language but not fully understand it. (e.g. C++, Java people knows each other roughly). By roughly I mean they can compare the performance of one task in the language they are expert and in the other language. And then they are moderate in some of the scripting language. (e.g. Linux people knows bash, Windows people knows VBA, web people knows PHP).&lt;br&gt;&#xA;For me what matters is is the basic algorithm knowledge than the language. If your basics are good, there are less chances to mess up in any language.&lt;br&gt;&#xA;But yes, sometimes it may be useful to know what language could be better for what task. e.g the following code is much faster in pascal than in C. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;strcat(A,&quot;Hello&quot;); strcat(A,&quot;WOrld&quot;);strcat(A,&quot;I say hi!&quot;);&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is because Pascal saves the length of the string in the first location and hence it is easy to jump to the last location. In C the string termination is '\0' and hence you will actually have to traverse the whole string for strcat operation. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-03T05:47:13.203" />
  <row Id="23303" PostTypeId="1" CreationDate="2010-12-03T05:47:27.983" Score="12" ViewCount="702" Body="&lt;p&gt;Are there any programming languages that have a built-in database as a first-class language feature rather than connecting to an external SQL (or other) database? What would be the drawbacks and benefits to such a feature? What would such a feature look like and how would it change the way we program?&lt;/p&gt;&#xA;" OwnerUserId="73" LastActivityDate="2011-02-25T12:34:54.753" CommunityOwnedDate="2011-02-25T12:34:54.753" Title="Why aren't databases integrated as a language feature?" Tags="&lt;programming-languages&gt;&lt;language-design&gt;&lt;language-features&gt;&lt;database&gt;" AnswerCount="16" CommentCount="5" FavoriteCount="2" />
  <row Id="23304" PostTypeId="1" AcceptedAnswerId="23308" CreationDate="2010-12-03T05:58:03.340" Score="4" ViewCount="91" Body="&lt;p&gt;Has Smalltalk been used in a production-level system, to write the server-side components of a web-app?&lt;/p&gt;&#xA;" OwnerUserId="4091" LastActivityDate="2010-12-03T17:36:09.597" Title="Has Smalltalk been used to write server-side components for a web-app?" Tags="&lt;web-development&gt;&lt;smalltalk&gt;" AnswerCount="2" />
  <row Id="23305" PostTypeId="2" ParentId="23303" CreationDate="2010-12-03T05:58:35.633" Score="10" ViewCount="" Body="&lt;p&gt;I don't necessarily think the right question is &quot;why aren't there?&quot; but &quot;why should there be?&quot;.  What would be gained from having databases be a feature of the language?  Remember, the language is at the very bottom of the programming stack.  Making a language bloated affects &lt;em&gt;everything&lt;/em&gt;.  Thus, language designers need to be slow to add new features, especially ones that would involve such an investment.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-03T05:58:35.633" CommunityOwnedDate="2011-02-25T12:34:54.753" CommentCount="2" />
  <row Id="23306" PostTypeId="2" ParentId="23303" CreationDate="2010-12-03T05:58:58.800" Score="8" ViewCount="" Body="&lt;p&gt;The only language that I can think of is the old xBase languages like DBase, Clipper and FoxPro. There is a GNU project that offers a free and mostly compatible version called &lt;a href=&quot;http://en.wikipedia.org/wiki/Clip_%28compiler%29&quot; rel=&quot;nofollow&quot;&gt;Clip&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The was also &lt;a href=&quot;http://en.wikipedia.org/wiki/Pick_operating_system&quot; rel=&quot;nofollow&quot;&gt;Pick Basic&lt;/a&gt; which tied a programming language directly to an database platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This has been done. It was an evolutionary dead end that limited how a language could access data. &lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-12-03T05:58:58.800" CommunityOwnedDate="2011-02-25T12:34:54.753" CommentCount="5" />
  <row Id="23307" PostTypeId="2" ParentId="23303" CreationDate="2010-12-03T06:00:29.847" Score="3" ViewCount="" Body="&lt;p&gt;Adding database into a programming language might cater only to a very narrow set of users.  What if they want to use some non RDBMS features? Or don't want to use a database at all?  The compiler will unnecessarily be bloated for such use cases.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-12-03T06:00:29.847" CommunityOwnedDate="2011-02-25T12:34:54.753" />
  <row Id="23308" PostTypeId="2" ParentId="23304" CreationDate="2010-12-03T06:00:31.667" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.seaside.st/&quot; rel=&quot;nofollow&quot;&gt;smalltalk web framework&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.seaside.st/about/users&quot; rel=&quot;nofollow&quot;&gt;success stories with said framework&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-03T06:00:31.667" CommentCount="0" />
  <row Id="23309" PostTypeId="1" AcceptedAnswerId="23319" CreationDate="2010-12-03T06:00:38.297" Score="1" ViewCount="113" Body="&lt;p&gt;Which (if any) extreme-programming techniques would be appropriate to use in a research environment - where the goal is to produce prototypes, patentable, and/or publishable work?&lt;/p&gt;&#xA;" OwnerUserId="4091" LastActivityDate="2010-12-04T08:42:36.487" Title="Which extreme-programming techniques are appropriate to use in a research environment?" Tags="&lt;development-process&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="23310" PostTypeId="2" ParentId="23280" CreationDate="2010-12-03T06:02:50.170" Score="6" ViewCount="" Body="&lt;p&gt;You have a very interesting question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I dont think that any programmer should be an &quot;expert&quot; on a specific language. My believe is that as programmers we are meant to be experts at programming, designing algorithms, thinking in clear steps, but a programming language is something that you just learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A &quot;good&quot; programmer, by good I mean that handles development projects without scaring behind the classic &quot;I've never worked with that before&quot;, should learn a language in less than 5 working days. You learn best practices, tools and libraries mainly from 2 ways, 1: reading and 2: working. Either you bounce your head against the code or read a bunch of books.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a few years following the premisse of &quot;Good programmers write just code&quot; no C# code or C++ code or Java code, you will realize that after you learn to develop programs, the language and the techonologies are not that important. Sure, you'll know how to move around C# better than PHP, but if you've learnt well, you'll find you'll way through Python if you have to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope my ideas like you!&lt;/p&gt;&#xA;" OwnerUserId="8750" LastActivityDate="2010-12-03T06:02:50.170" CommentCount="2" />
  <row Id="23311" PostTypeId="2" ParentId="23040" CreationDate="2010-12-03T06:04:52.057" Score="0" ViewCount="" Body="&lt;p&gt;With job hunting, pretty much any method can work; the best thing to do is to cast a wide net, and keep your possibilities open; you never know which method or connection will result in a job. I have landed IT and Programming jobs through the following avenues:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) School. (Was the high school's web master; ended up with a job with the local ISP)&#xA;2) Personal connections: I hung out at a game store a lot for a while; some gaming buddies wound up getting me a job at their startup when a position opened (the ISP had given me relevant experience). I've also gotten a lot of consulting gigs through my social network.&#xA;3) Craigslist: landed one job, and many consulting gigs here.&#xA;4) A Recruiter: they're annoying, but they can be effective. You need to call them regularly, and not be afraid to be a little bit pushy (in a friendly way, of course).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, socialize a lot, work the job boards, keep in touch with recruiters, and be ready to jump at opportunities when they come. (I managed a career transition from IT to Programming by working as a secretary at a startup, and jumping at a web developer opportunity when it opened up.)&lt;/p&gt;&#xA;" OwnerUserId="2162" LastActivityDate="2010-12-03T06:04:52.057" />
  <row Id="23313" PostTypeId="1" AcceptedAnswerId="23315" CreationDate="2010-12-03T06:14:14.520" Score="11" ViewCount="691" Body="&lt;p&gt;Do good programmers need to have syntax at the tip of their tongue when writing code? What do you make of them if they google for simple stuff online?  Are they good or bad(maybe they know where to look for)? Should programmers have a good memory? Is this a trait for a good programmer?&lt;/p&gt;&#xA;" OwnerUserId="8843" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-03T13:27:43.777" LastActivityDate="2010-12-16T03:56:05.387" Title="Programmers forgetting syntax" Tags="&lt;self-improvement&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="3" />
  <row Id="23314" PostTypeId="1" CreationDate="2010-12-03T06:19:30.797" Score="6" ViewCount="251" Body="&lt;p&gt;Blogs demands you to write on accurate technical solutions, above normal technical experiences in day-to-day life. Blog expects you to write witty blog items, which will enthrall and amuse visitors. I have read many such replies in Stackoverflow answers. Many of you may be already writing for your blog elsewhere. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any of you got inspired by your answers and started writing your own blog somewhere else? Or have you got improved in writing blog items by answering questions over here? Are your answers have helped yourself anyway?&lt;/p&gt;&#xA;" OwnerUserId="7478" LastActivityDate="2010-12-05T06:50:36.213" ClosedDate="2010-12-05T13:13:27.963" Title="Anyone among you has started writing blog after getting inspired by your own answers to many Stackoverflow questions?" Tags="&lt;career&gt;&lt;productivity&gt;&lt;experience&gt;&lt;blogs&gt;" AnswerCount="10" CommentCount="3" />
  <row Id="23315" PostTypeId="2" ParentId="23313" CreationDate="2010-12-03T06:29:41.437" Score="19" ViewCount="" Body="&lt;p&gt;My philosophy on programming is that it's a &quot;state of mind&quot; and the rest is &quot;just syntax.&quot;  (i.e. not (as) important)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, one shouldn't have to look-up the simple stuff.  At least, not for the language(s) you work with regularly.  There's nothing wrong with needing refreshers and knowing how to find information is certainly a good skill to have.  However, the core syntax should definitely be well known.  Otherwise, you spend too much time searching and too little time programming.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-12-03T06:29:41.437" CommentCount="4" />
  <row Id="23316" PostTypeId="2" ParentId="23303" CreationDate="2010-12-03T06:29:44.853" Score="7" ViewCount="" Body="&lt;p&gt;There are 3 legacy systems that are close to your requirements: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Pick_operating_system&quot; rel=&quot;nofollow&quot;&gt;Pick&lt;/a&gt;,  &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/MUMPS&quot; rel=&quot;nofollow&quot;&gt;MUMPS&lt;/a&gt;,  &lt;/li&gt;&#xA;&lt;li&gt;Microsoft Access &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Pick and MUMPS were developed years before the first academic paper on relational databases (which was about a decade before the first commercial SQL based database system made it to the market - from a company we now call Oracle; IBM's first attempt at a product fizzled and a successful SQL based system was later). You might find them still in use (our local public transport system used Pick until recently for the trip planning system). You want nothing to do with either Pick or MUMPS, and the best advice I can give is &quot;step away from the keyboard with your hands in the air!&quot; If you &lt;em&gt;do&lt;/em&gt; have anything to do with them, the phrase &quot;you'll be sorry&quot; should be ringing in your ears. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft Access gets severely mocked and criticized in IT circles as it is quite easy for a non-developer to make a critical business app out of Access and have it mutate into something that the company quite literally cannot live without. It is also quite likely that quite a few developers got their start in developing via MS Access and as things kept getting bogged down they learned how to fix them (the first step is traditionally learning visual basic and rewriting the Access app first in VB, then in something &quot;better&quot;). It is possible to make a well behaved Access app that runs distributed with a huge amount of data - I've seen it done - but there are easier ways to do things, and it takes far less skill to make (and maintain) a well behaved app out of VB and SQL Server.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since SQL Server 2005, Microsoft has introduced the capability to put CLR into stored procedures and functions. And if you want to be tricky about it, you could make datatypes that you could then use as columns in the database. I think Oracle has had something similar with Java. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, I don't think there is anything stopping you from creating one, or hypothesizing about them. Pick and MUMPS are older than most coders here and reflect a very COBOLy way of looking at the world. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal advice is to keep things separate. Use a language that is good at manipulating the data your project needs (with the caveat that sometimes the &quot;best&quot; language is one that you can easily find programmers who can read/write the code). Use a database system that is good at keeping the data your project needs. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-12-03T06:29:44.853" CommunityOwnedDate="2011-02-25T12:34:54.753" CommentCount="3" />
  <row Id="23317" PostTypeId="2" ParentId="23313" CreationDate="2010-12-03T06:32:06.457" Score="23" ViewCount="" Body="&lt;p&gt;It depends on what you mean, but the short answer is yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are programmers going to forget a semi-colon or a brace here and there? Sure. Are they going to look up the syntax of a switch statement because they probably rarely use it? Well, I do. Will I be working with ActionScript but write it like Java instead? Definitely. It can take some time getting used to typing in a new language, especially if you've worked with a different one for years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The real concern should be if a programmer cannot make heads or tails of the syntax even with an IDE helping them out. If the person doesn't know what a semi-colon is for, or what those fancy curly braces are, then they have more studying to do.&lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2010-12-03T06:32:06.457" CommentCount="5" />
  <row Id="23318" PostTypeId="2" ParentId="23303" CreationDate="2010-12-03T06:58:25.013" Score="4" ViewCount="" Body="&lt;p&gt;Would you consider:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Abap&quot; rel=&quot;nofollow&quot;&gt;ABAP&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/PowerBuilder&quot; rel=&quot;nofollow&quot;&gt;PowerBuilder&lt;/a&gt; (not necessarily in the same stack)&lt;/li&gt;&#xA;&lt;li&gt;PL/SQL (did you know you can make &lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_psp.htm&quot; rel=&quot;nofollow&quot;&gt;web applications in the DB&lt;/a&gt; stack?)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Pro%2aC&quot; rel=&quot;nofollow&quot;&gt;Pro*C&lt;/a&gt; (this can push the boundaries as it can use local libs and not a call interface)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;as candidates?&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-12-03T06:58:25.013" CommunityOwnedDate="2011-02-25T12:34:54.753" CommentCount="2" />
  <row Id="23319" PostTypeId="2" ParentId="23309" CreationDate="2010-12-03T07:01:00.153" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;You have to be &lt;strong&gt;&lt;em&gt;Agile&lt;/em&gt;&lt;/strong&gt; to do research&#xA;programming.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You have to be willing to throw away&#xA;a lot of &lt;strong&gt;prototypes.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You have to be willing to think&#xA;outside the box, so &lt;strong&gt;software patterns&lt;/strong&gt;&#xA;are not going to help you that much.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I think you have to be willing to&#xA;learn new &lt;strong&gt;languages&lt;/strong&gt;, and even create&#xA;some new ones.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Other than that, research programming is basically the same as any other. :)  You still have to write unit tests.  You still have to write documentation.  And you still have a boss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your deadlines may be a bit more fluid.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-03T07:09:46.090" LastActivityDate="2010-12-03T07:09:46.090" />
  <row Id="23320" PostTypeId="2" ParentId="23314" CreationDate="2010-12-03T07:06:36.200" Score="3" ViewCount="" Body="&lt;p&gt;Not unless I can make a blog with voting buttons...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So far I have been unwilling to commit the kind of time and effort it would take to maintain a worthwhile blog.  And it &lt;em&gt;would&lt;/em&gt; take a substantial commitment.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To say anything worthwhile, I think you need to be deeply involved in an open-source project, something you can talk about and share your progress.  Or, you need to have deep knowledge about a particular language or problem domain.  Or, you need to be doing software research that can be discussed publicly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think I'm quite there yet.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-03T07:13:57.863" LastActivityDate="2010-12-03T07:13:57.863" CommentCount="4" />
  <row Id="23321" PostTypeId="2" ParentId="23270" CreationDate="2010-12-03T07:12:21.337" Score="3" ViewCount="" Body="&lt;p&gt;You don't have to learn it but it will make you a better programmer.  You will learn how to do things in a different way than the Windows way.  Using any of the *sh shells will eventually lead to scripting and using regular expressions, automating installations, parsing large files, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't care about being mocked for not knowing it, as much as I care about how cool it is every time I learn how to do something else in Linux.  It just keeps getting better and better with each new bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Powershell has a lot that comes from the nix world, they finally realized that in order to have automation you need a good console (kudos to MS for that).  Both Perl and Python seem to be a mixture of C, bash, sed, awk, all meshed into a good thing in their own way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the very least you will have something else to put in your resume but that really is not the best thing you will get out of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure you will find on your own things that will make you go: &quot;Wow, that is so cool!&quot;  My first was being able to &quot;kill&quot; Apache using a USR1 signal to get it to reload a new config file and restart the logs, without ever stopping the service and continuing to receive connections.  Also ssh and rsync, good grief why wouldnt MS port them is beyond me.&lt;/p&gt;&#xA;" OwnerUserId="9050" LastActivityDate="2010-12-03T07:12:21.337" CommentCount="1" />
  <row Id="23322" PostTypeId="2" ParentId="23301" CreationDate="2010-12-03T07:15:13.837" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201485672&quot; rel=&quot;nofollow&quot;&gt;Refactoring: Improving the Design of Existing Code&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-03T07:15:13.837" CommentCount="3" />
  <row Id="23323" PostTypeId="2" ParentId="23295" CreationDate="2010-12-03T07:32:35.787" Score="1" ViewCount="" Body="&lt;p&gt;We have about 30 small and medium sized projects, and generally take the approach that &lt;strong&gt;we migrate projects when we do non-trivial work on them&lt;/strong&gt;. Occasionally, we undertake &lt;strong&gt;a consolidation exercise&lt;/strong&gt; to move the oldest projects to the latest versions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, this means that our dev environments have multiple versions of Visual Studio, the .Net framework, SQL Server, IIS, Source Control, browser, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Despite having to keep all these different tools up to date, this ad hoc approach actually works quite well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Migrations that usually go very wel:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Visual Studio Versions (but see below)&lt;/li&gt;&#xA;&lt;li&gt;Core SQL Server functions&lt;/li&gt;&#xA;&lt;li&gt;.Net Versions&lt;/li&gt;&#xA;&lt;li&gt;Source control (from VSS to Vault)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;We don't usually migrate between languages unless the application is trivial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Migrations that have been problematic:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;DTS to SSIS&lt;/li&gt;&#xA;&lt;li&gt;Reporting Servives. Different versions of SSRS are supported by different versions of Visual Studio.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-12-03T07:32:35.787" />
  <row Id="23324" PostTypeId="2" ParentId="23270" CreationDate="2010-12-03T07:46:54.997" Score="3" ViewCount="" Body="&lt;p&gt;It won't hurt you. Even in an all Microsoft company, it is becoming more and more increasingly likely that you'll run into at least a few Linux servers. Stack Overflow, for instance, uses Linux for their load balancers. This is especially true when virtualization comes into play.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a programmer, you might do better by considering getting familiar with POSIX, not just a single UNIX-like variant. While it does have some quirks, it represents a lot of effort that went into an incredible attempt to establish a standard interface that is (mostly) portable across all UNIX like environments. Note, many UNIX like systems aren't 100% &quot;posixly correct&quot;, but it is a good starting point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As just a casual user, I can only suggest that it is fun to poke around in something new and learn new things. I guess it is possible to be a 'guru' with every single operating system one could think of, but I don't think that is the most useful endeavour for a programmer. Still, a working knowledge of stuff that you might encounter is good .. and from your question, you seem likely to encounter Linux in the future.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-03T07:46:54.997" CommentCount="2" />
  <row Id="23325" PostTypeId="2" ParentId="23313" CreationDate="2010-12-03T08:31:47.627" Score="8" ViewCount="" Body="&lt;p&gt;I would definitely be surprised if an otherwise good programmer had to routinely look up syntax for a language that they were fluent in. Of course there may be corner cases that don't actually get used a lot in practice such that it would be perfectly acceptable for a good programmer to not know them but, as a general rule, a fluent programmer doesn't have to look up syntax. S/he has to lookup functions and classes from libraries :)&lt;/p&gt;&#xA;" OwnerUserId="2357" LastActivityDate="2010-12-03T08:31:47.627" CommentCount="1" />
  <row Id="23326" PostTypeId="2" ParentId="23303" CreationDate="2010-12-03T08:34:59.893" Score="14" ViewCount="" Body="&lt;p&gt;Languages are &quot;small&quot; and databases are &quot;big&quot;; so whenever the two are combined, it's not a language with the database as a features, but a database with the language as a feature. Many databases have some proprietary languages tacked to them, e.g. PL/SQL, T-SQL.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-03T08:34:59.893" CommunityOwnedDate="2011-02-25T12:34:54.753" CommentCount="8" />
  <row Id="23327" PostTypeId="1" AcceptedAnswerId="23346" CreationDate="2010-12-03T08:51:49.363" Score="3" ViewCount="104" Body="&lt;p&gt;We stick to standard usages and best practices because they work and communicate intent well, but without trying new things we can't really grow. Have you ever tried something that seemed absurd but worked out really well? When it works, how do you avoid confusing other developers with non-standard usages? And what do you do when things go horribly wrong - refactor, start over, or just go with it?&lt;/p&gt;&#xA;" OwnerUserId="7852" LastActivityDate="2010-12-03T09:57:44.523" Title="Do you experiment with unconventional ways to use design patterns?" Tags="&lt;best-practices&gt;&lt;design-patterns&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="2" />
  <row Id="23328" PostTypeId="2" ParentId="23327" CreationDate="2010-12-03T08:59:12.563" Score="1" ViewCount="" Body="&lt;p&gt;All the time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I avoid confusing other developers by only expierementing on personal projects. Id say some of the best and most of the worst code I have ever written has been for personal projects- when trying out new things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When things go horribly wrong, since its usually just a small part I throw it away or refactor it until it is useable.&lt;/p&gt;&#xA;" OwnerUserId="3757" LastActivityDate="2010-12-03T08:59:12.563" />
  <row Id="23329" PostTypeId="2" ParentId="20866" CreationDate="2010-12-03T08:59:37.357" Score="0" ViewCount="" Body="&lt;p&gt;Thanks everyone for all of your replies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things slowed down a bit after the Thanksgiving holiday and I slept good but this week was a b*tch and my sleeping habits were affected again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems like I'm constantly finding myself roped into in situations that were created by others due to their incompetence.  I find myself paying the price for others' mistakes time and time again....either management, vendors, or co-workers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Management doesn't like to plan things out in advance and our team often finds itself scrambling at the last minute to accommodate the whims of a manager or director from another department.  Our boss is afraid to make waves and confront other managers because he doesn't want to lose his job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I spent two days working on a poorly designed vendor system that crashed.  The techs who work for the vendor don't seem to know how their OWN SYSTEM is supposed to operate and we get little support from them.  They claim 24/7 support but it often takes days to hear from them.  The department who runs the software cannot function unless this system is running so it it's usually up to me to get it working again.  I was able to resolve the issue after spending two days on it.  Meanwhile I look like a slacker to my co-workers in the dept because I am not able to help them on other tickets during this time.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In another instance, we have some salesmen that were recently relocated to our office and they run proprietary software on their PC.  They were having problems with the software.  I contacted the vendor (a different one) and it took a long time going back and forth before we they were able to figure anything out.  When they finally did decide to connect to the PC, they fixed the issue with the software and whatever they did screwed up the PC.  Of course I'm associated with this because I was working with the vendor on it so I was the one who had to fix it and deal with the unhappy users who let me hear about it.  I had to reload everything from scratch.  Lots of time wasted not only on my end but the users of the PC.  Meanwhile I'm not able to spend much time on my development projects.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Development doesn't stress me out much.  I'm in control over my development projects and if I do a good job developing the software, I can minimize headaches later because I PLAN AHEAD.  It's the IT support that stresses me out.  The company doesn't want to spend money on equipment which is another issue because we waste countless hours maintaining bad equipment.  I have to explain to the unhappy users why things don't work the way they should and apologize for stuff that isn't my fault.  The users are frustrated and I'm seen as the face associated with the crappy product. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess it's time to seriously consider some of the advice given above.  Seems that no matter how hard I work, how much I get done, or how positive I try to be, it doesn't really help much.&lt;/p&gt;&#xA;" OwnerUserId="24411" LastActivityDate="2010-12-03T08:59:37.357" CommunityOwnedDate="2011-01-19T15:33:20.557" />
  <row Id="23330" PostTypeId="2" ParentId="23313" CreationDate="2010-12-03T09:07:11.730" Score="6" ViewCount="" Body="&lt;p&gt;If you're in a position where you're changing languages regularly or working in 3 or 4 languages at the same time there's not a lot you can do about it. For a while I ended up working on projects that required constant switching and began to refer to myself as a &quot;reference programmer,&quot; having to look stuff up much more than I would have preferred.&lt;/p&gt;&#xA;" OwnerUserId="8076" LastActivityDate="2010-12-03T09:07:11.730" CommentCount="1" />
  <row Id="23331" PostTypeId="1" AcceptedAnswerId="23334" CreationDate="2010-12-03T09:23:12.600" Score="31" ViewCount="1877" Body="&lt;p&gt;I've recently participated in a developer's workshop/training around a new platform. Everybody in the room was a full time programmer (no management, only programming).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was looking at all the people in the room and I had the feeling that despite evident physical differences (color of hairs, weight...), we all &lt;code&gt;looked&lt;/code&gt; the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not only &lt;a href=&quot;http://www.google.be/images?rlz=1C1GGGE_frBE407BE407&amp;amp;q=geek&amp;amp;um=1&amp;amp;ie=UTF-8&amp;amp;source=og&amp;amp;sa=N&amp;amp;hl=fr&amp;amp;tab=wi&amp;amp;biw=1600&amp;amp;bih=756&quot; rel=&quot;nofollow&quot;&gt;physical&lt;/a&gt;, it also about how we communicate, our body movements, things we are &lt;a href=&quot;http://programmers.stackexchange.com/questions/886/what-hobbies-tend-to-attract-programmers&quot;&gt;interested&lt;/a&gt; in, some wide spread &lt;a href=&quot;http://programmers.stackexchange.com/questions/4693/why-are-so-many-programmers-arrogant-closed&quot;&gt;behavior&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What common traits or characteristicts most of us, developers, have?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT5&lt;/strong&gt;: Just went back from &lt;strong&gt;TEDx Brussels&lt;/strong&gt; (for those who don't know what TED is, it's a conference for bobos :)), and &lt;strong&gt;David Anderegg&lt;/strong&gt; did a brillant presentation called &quot;&lt;strong&gt;Nerds, who are they?&lt;/strong&gt;&quot;. You can now &lt;a href=&quot;http://www.tedxbrussels.eu/2010/video.html&quot; rel=&quot;nofollow&quot;&gt;watch his presentation&lt;/a&gt; online (third).  His work summarize pretty much why I asked this question.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2011-01-18T10:16:09.940" LastActivityDate="2011-01-18T10:16:09.940" CommunityOwnedDate="2010-12-06T09:48:17.537" ClosedDate="2011-01-13T16:30:57.387" Title="What do we developers have in common?" Tags="&lt;motivation&gt;&lt;behavior&gt;&lt;profession&gt;&lt;geek-traits&gt;" AnswerCount="34" CommentCount="14" FavoriteCount="7" />
  <row Id="23332" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T09:25:22.960" Score="29" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Have no girlfriend&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-12-03T09:25:22.960" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="22" />
  <row Id="23333" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T09:32:51.130" Score="40" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.jwz.org/doc/tabs-vs-spaces.html&quot; rel=&quot;nofollow&quot;&gt;Obsessive&lt;/a&gt; &lt;a href=&quot;http://www.codinghorror.com/blog/2009/04/death-to-the-space-infidels.html&quot; rel=&quot;nofollow&quot;&gt;Whitespace&lt;/a&gt; &lt;a href=&quot;http://programmers.stackexchange.com/questions/57/tabs-versus-spaceswhat-is-the-proper-indentation-character-for-everything-in-ev&quot;&gt;Disorder&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-12-03T09:32:51.130" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="6" />
  <row Id="23334" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T09:33:02.050" Score="62" ViewCount="" Body="&lt;p&gt;Maybe not everyone but&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Love of problem solving&lt;/h2&gt;&#xA;" OwnerUserId="3757" LastActivityDate="2010-12-03T09:33:02.050" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="13" />
  <row Id="23335" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T09:33:51.590" Score="9" ViewCount="" Body="&lt;h2&gt;Everything &amp;amp; Nothing&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Since programmers are human (for now), we are bound by nature to be different. Humans come in a variety of shapes/sizes etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your sample experience is too small to draw any real conclusion.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I've meet programmers who are body builders, super nerdy looking, and even super cool looking and everything in between.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The reality is the &lt;strong&gt;only thing&lt;/strong&gt; programmers share in common is &lt;strong&gt;programming&lt;/strong&gt;. &lt;/p&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-03T22:03:24.163" LastActivityDate="2010-12-03T22:03:24.163" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="7" />
  <row Id="23336" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T09:42:04.413" Score="7" ViewCount="" Body="&lt;p&gt;Creativity and Problem solving&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-12-03T09:42:04.413" CommunityOwnedDate="2010-12-06T09:48:17.537" />
  <row Id="23337" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T09:42:15.350" Score="17" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;We suffer similar pains.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;we sit in boring meetings&lt;/li&gt;&#xA;&lt;li&gt;we are asked to fix horrible code without sufficient documentation&lt;/li&gt;&#xA;&lt;li&gt;we have customers who don't know what they want&lt;/li&gt;&#xA;&lt;li&gt;we have to work on outdated machines, small disk space and slow networks&lt;/li&gt;&#xA;&lt;li&gt;we have to do our job even though sometimes it seems that it's mostly meaningless plumbing&lt;/li&gt;&#xA;&lt;li&gt;we have to observe impossible situations occuring on a regular basis&lt;/li&gt;&#xA;&lt;li&gt;we have to read hundreds of pages documents where the author enjoys reading his brilliant use of language, but does not come to the point&lt;/li&gt;&#xA;&lt;li&gt;we have to enter redundant information into bureaucratic systems&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="552" LastEditorUserId="174" LastEditorDisplayName="" LastEditDate="2010-12-08T10:00:16.470" LastActivityDate="2010-12-08T10:00:16.470" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="3" />
  <row Id="23338" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T09:43:39.683" Score="25" ViewCount="" Body="&lt;p&gt;We are utterly surprised every time we are forced to accept that not everybody is anally obsessed with details as we are. &lt;/p&gt;&#xA;" OwnerUserId="1512" LastEditorUserId="1512" LastEditorDisplayName="" LastEditDate="2010-12-03T10:02:04.740" LastActivityDate="2010-12-03T10:02:04.740" CommunityOwnedDate="2010-12-06T09:48:17.537" />
  <row Id="23339" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T09:47:33.573" Score="8" ViewCount="" Body="&lt;p&gt;Very little or no exercise at all! &lt;/p&gt;&#xA;" OwnerUserId="8820" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-03T13:17:51.700" LastActivityDate="2010-12-03T13:17:51.700" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="7" />
  <row Id="23340" PostTypeId="1" CreationDate="2010-12-03T09:53:23.000" Score="3" ViewCount="103" Body="&lt;p&gt;I am a programmer by Job. But have found great love for Interfaces that are usable. I like reading and thinking about designing great user interfaces. I have been programming from 6+ years and am not sure where to get myself a start reading and contributing in this area? &lt;/p&gt;&#xA;" OwnerUserId="7507" LastActivityDate="2010-12-03T15:42:01.393" Title="How Should i be a Good Interaction Designer?" Tags="&lt;self-improvement&gt;&lt;profession&gt;&lt;general-purpose&gt;" AnswerCount="4" CommentCount="3" />
  <row Id="23341" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T09:53:25.900" Score="5" ViewCount="" Body="&lt;p&gt;Patience; you can't be a programmer if you're not patient.&lt;/p&gt;&#xA;" OwnerUserId="6579" LastActivityDate="2010-12-03T09:53:25.900" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="2" />
  <row Id="23342" PostTypeId="2" ParentId="20866" CreationDate="2010-12-03T09:53:42.993" Score="0" ViewCount="" Body="&lt;p&gt;A couple of years back I had very similar sleeping issues, brought on in no small part by a high visibility project running late which I was lead developer on. As others have said, the stress levels didn't drop until I learnt to accept the situation; that I could only do what I could do and anything that fell through the gaps was a managerial problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Annoyingly after the project ended my sleep was still disturbed. My doctor prescribed zopiclone which knocked me out completely. A week of that and my cycles were reset enough for me to sleep through the night naturally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice fwiw, set an action plan for yourself using suggestions here to improve your working life. If it doesn't work, its time to move...&lt;/p&gt;&#xA;" OwnerUserId="7092" LastActivityDate="2010-12-03T09:53:42.993" CommunityOwnedDate="2011-01-19T15:33:20.557" />
  <row Id="23344" PostTypeId="1" CreationDate="2010-12-03T09:56:43.700" Score="1" ViewCount="222" Body="&lt;p&gt;Wanted to ask this on #SO, but thought I'd give it a try here first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My friend just graduated from college with his MIS degree. He found a company that deals with Citrix (support) and they are willing to get him certified; the catch is that it takes a couple of years and during that time he won't be making much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He has no idea where Citrix is going, and whether he should pursue that rather than go on the Dev. path.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any insight would be appreciated.&lt;/p&gt;&#xA;" OwnerUserId="5925" LastEditorUserId="5925" LastEditorDisplayName="" LastEditDate="2010-12-03T10:29:32.453" LastActivityDate="2010-12-03T17:57:59.117" ClosedDate="2010-12-04T00:57:15.183" Title="What's the future of Citrix? Is it a good idea to pursue a career in this field?" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="23345" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T09:57:44.270" Score="15" ViewCount="" Body="&lt;p&gt;An innate curiosity over how things work and how to make them work better.  I have seen this at varying levels but never absent in all the programmers I have met.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then there is a love for coffee/tea, bland Chinese food, tendency to work late into the nights sometimes leading up to the dawn, a general tendency to avoid using the mouse.  But can't say I have seen all of these in every programmer I have met.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-12-03T09:57:44.270" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="1" />
  <row Id="23346" PostTypeId="2" ParentId="23327" CreationDate="2010-12-03T09:57:44.523" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes, but with simplicity wrappers.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most users will only need to access through the simplicity wrappers. The system would be very familiar to them, because the simplicity wrappers are designed to be very similar to the older systems. However, advanced users who need extra power, and developers on the new system team, will need to become fluent in the new pattern.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If things go horribly wrong, the entire project has to be thrown away. This is why early feedback (integration) is important, so that you can stop loss earlier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, put some effort on educating your fellows about the inside, and any special precautions needed. Put a lot of effort on testing.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-12-03T09:57:44.523" />
  <row Id="23347" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T10:07:46.497" Score="39" ViewCount="" Body="&lt;h2&gt;We Like to build things!&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;While problem solving is certainly one of them, the endless desire to make that project shine and function exactly to specification or how you envisioned is what keeps me in front of my computer for endless hours.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastEditorUserId="2638" LastEditorDisplayName="" LastEditDate="2010-12-03T18:01:10.270" LastActivityDate="2010-12-03T18:01:10.270" CommunityOwnedDate="2010-12-06T09:48:17.537" />
  <row Id="23348" PostTypeId="2" ParentId="23314" CreationDate="2010-12-03T10:08:23.673" Score="0" ViewCount="" Body="&lt;p&gt;I had my own website before joining SO, so...no, but yes. I don't call it a blog, when I hear the word it reminds me of a frustrated teen writing about what s/he had for lunch and how yesterday they got a gift from their insignificant other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If someone asks a question which makes me think of a more generalized solution to a generalized problem, I &lt;em&gt;may&lt;/em&gt; turn it into an article on my site. But, since I'm not very active on SO, and that kind of question is rare, I don't do it very often. In fact, if I recall correctly, I did that only once.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the questions on SO are very specific, it doesn't seem worthy of &quot;writing it up for future reference&quot;. I try to write articles only when I have something to say. I tried doing it the &lt;a href=&quot;http://www.codinghorror.com/blog/2007/10/how-to-achieve-ultimate-blog-success-in-one-easy-step.html&quot; rel=&quot;nofollow&quot;&gt;&quot;Jeff Atwood&quot; way&lt;/a&gt;, but I couldn't see myself writing about &quot;nothing specific&quot;. I do like to watch Seinfeld though...&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-12-03T10:08:23.673" />
  <row Id="23349" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T10:19:30.937" Score="6" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Spending time on stackexchange sites during breaks (or during boring work)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Checking for a new xkcd strip every morning&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Potential obsession in fantasy and/or sci-fi (potential because if you say you don't like them it's just because you haven't discovered them, yet)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4738" LastActivityDate="2010-12-03T10:19:30.937" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="4" />
  <row Id="23350" PostTypeId="2" ParentId="16618" CreationDate="2010-12-03T10:23:40.023" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Mutability Considered Harmful&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As multiple cores become a norm, mutability will become the new &lt;code&gt;goto&lt;/code&gt;. :-)&lt;/p&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-12-03T10:23:40.023" CommunityOwnedDate="2011-04-14T16:13:04.920" />
  <row Id="23351" PostTypeId="1" AcceptedAnswerId="23411" CreationDate="2010-12-03T10:24:49.530" Score="2" ViewCount="463" Body="&lt;p&gt;Hi all,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a fairly general question. I know a bit of Perl and Python and I am looking to learn programming in more depth so that once I get the hang of it I can start developing applications and then websites. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to know of an algorithm (sequence of steps :)) that could describe my approach towards learning programming in general. I have posted small questions on Perl/Python and I have recieved great help from everyone. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note:- I am not in a hurry to learn. I know it takes time and that's fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please give any suggestions you think are valid. Also, please don't push me to learn Lisp, Haskell etc - I am a beginner.&lt;/p&gt;&#xA;" OwnerUserId="9057" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-02-28T06:54:49.160" LastActivityDate="2011-02-28T06:54:49.160" Title="Algorithm for Learning development" Tags="&lt;learning&gt;&lt;programming&gt;&lt;algorithms&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="7" />
  <row Id="23352" PostTypeId="2" ParentId="23340" CreationDate="2010-12-03T10:27:12.957" Score="1" ViewCount="" Body="&lt;h2&gt;I think Yes:&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Human Computer Interaction &lt;a href=&quot;http://en.wikipedia.org/wiki/Human%E2%80%93computer_interaction&quot; rel=&quot;nofollow&quot;&gt;(HCI)&lt;/a&gt; is really important (I would suggest you study this). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is the single point of interaction for users with your program.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot; Just like the programming language is our interface with the machine, the UI is the interface for users with our programs&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You may have the best program, but if user's are not able to use it. Its of little use in there perspective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would highly suggest &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0385267746&quot; rel=&quot;nofollow&quot;&gt;&quot;The Design Of Everyday Things&quot;&lt;/a&gt;  by Donald Norman&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Any intelligent fool can make things bigger and more complex... It takes a touch of genius - and a lot of courage to move in the opposite direction. &#xA;  - &lt;strong&gt;Albert Einstein&lt;/strong&gt; &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-03T10:38:01.370" LastActivityDate="2010-12-03T10:38:01.370" />
  <row Id="23353" PostTypeId="2" ParentId="23340" CreationDate="2010-12-03T10:28:09.107" Score="1" ViewCount="" Body="&lt;p&gt;I believe &lt;a href=&quot;http://www.cooper.com&quot; rel=&quot;nofollow&quot;&gt;Allan Cooper&lt;/a&gt; is considered one of the experts in this area. I would check out his books, The Inmates Are Running the Asylum and About Face 3: The Essentials of Interaction Design.&lt;/p&gt;&#xA;" OwnerUserId="7446" LastActivityDate="2010-12-03T10:28:09.107" />
  <row Id="23354" PostTypeId="2" ParentId="17355" CreationDate="2010-12-03T10:30:28.707" Score="2" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;val (minors, adults) = people.partition(_.age &amp;lt; 18)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The above line of Scala code partitions &lt;code&gt;people&lt;/code&gt; (a list of &lt;code&gt;Person&lt;/code&gt;s) into two lists based on their respective ages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It takes the following much of code to do the same thing in Java:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;List&amp;lt;Person&amp;gt; minors = new ArrayList&amp;lt;Person&amp;gt;();&#xA;List&amp;lt;Person&amp;gt; adults = new ArrayList&amp;lt;Person&amp;gt;();&#xA;for(Person p : people) {&#xA;  if(p.age &amp;lt; 18) {&#xA;    minors.add(p);&#xA;  } else {&#xA;    adults.add(p);&#xA;  }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1968" LastEditorUserId="1968" LastEditorDisplayName="" LastEditDate="2010-12-03T10:40:22.037" LastActivityDate="2010-12-03T10:40:22.037" CommunityOwnedDate="2010-12-03T10:46:42.217" />
  <row Id="23355" PostTypeId="2" ParentId="22602" CreationDate="2010-12-03T10:36:45.597" Score="0" ViewCount="" Body="&lt;p&gt;If you are using SQL Server 2005 or later you have an &lt;a href=&quot;http://www.developer.com/article.php/3531196&quot; rel=&quot;nofollow&quot;&gt;XML data type&lt;/a&gt; which can be queried.&lt;/p&gt;&#xA;" OwnerUserId="1724" LastActivityDate="2010-12-03T10:36:45.597" />
  <row Id="23356" PostTypeId="2" ParentId="17355" CreationDate="2010-12-03T10:39:23.367" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/17355/what-are-some-famous-one-liner-or-two-liner-programs-and-equations/17749#17749&quot;&gt;Infinite Fibonacci Sequence&lt;/a&gt; in Scala:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;val fibs: Stream[BigInt] = 0 #:: 1 #:: { for((x, y) &amp;lt;- fibs.zip(fibs.tail)) &#xA;                                           yield x + y }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-12-03T10:39:23.367" CommunityOwnedDate="2010-12-03T10:46:42.217" />
  <row Id="23357" PostTypeId="2" ParentId="17355" CreationDate="2010-12-03T10:46:42.217" Score="2" ViewCount="" Body="&lt;p&gt;Swapping the values of two variables without using a third variable. This is one of the first things in programming that I was told and thought &quot;Hmm... that's cool&quot;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int a,b; &#xA;b=a-b;&#xA;a=a-b;&#xA;b=a+b;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4006" LastActivityDate="2010-12-03T10:46:42.217" CommunityOwnedDate="2010-12-03T10:46:42.217" CommentCount="1" />
  <row Id="23359" PostTypeId="2" ParentId="23309" CreationDate="2010-12-03T11:12:37.910" Score="2" ViewCount="" Body="&lt;p&gt;Speaking from a background of algorithm research:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Keep a long backlog of ideas&lt;/li&gt;&#xA;&lt;li&gt;Re-prioritize aggressively and frequently (e.g. every day)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mark down backlog items that are no longer viable&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Maintain an up-to-date picture of inter-dependencies between backlog items&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Unlike regular software development, there is a lot more dependencies in research work.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Always measure, visualize and track algorithm performance (accuracy, etc)&lt;/li&gt;&#xA;&lt;li&gt;Don't work alone.&lt;/li&gt;&#xA;&lt;li&gt;Discuss, collaborate and share frequently.&lt;/li&gt;&#xA;&lt;li&gt;Keep a wiki, and spend lots of effort to extract &quot;wisdom&quot; from your work.&lt;/li&gt;&#xA;&lt;li&gt;Use version control. However, keep good algorithm candidates in the current system, even if they are not actively used.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It allows you to tinker with an older algorithm at the spur of the moment.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Stale performance data could be error-prone.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;For example, the old data may be based on a less accurate metric&lt;/li&gt;&#xA;&lt;li&gt;To get fresh performance data, re-run the algorithm(s).&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Prefer dynamic typing and flexibility.&lt;/li&gt;&#xA;&lt;li&gt;Use the right language.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If almost all successful researchers in the field use one particular language, then use it. Don't fight the wisdom of the crowd.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Instead, find ways to integrate smaller components into that language, if the smaller components can be developed in a language suitable for computation such as C/C++, or if existing open source code is available.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Ask fellow researchers for their source code. &#xA;&lt;ul&gt;&#xA;&lt;li&gt;Many researcher are actually quite friendly to such requests with proper credits and data sharing. &lt;/li&gt;&#xA;&lt;li&gt;This will save a lot of trouble because their published papers will only cover the high level picture, yet &lt;em&gt;the devil is in the details&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Always push yourself, but don't timebox.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Timebox don't work because of unpredictability in research work.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;An example of how to use backlog in research: Suppose in the beginning there are items A, B, C, ..., X, Y, Z.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A&lt;/li&gt;&#xA;&lt;li&gt;B&lt;/li&gt;&#xA;&lt;li&gt;C&lt;/li&gt;&#xA;&lt;li&gt;...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Over time, you worked on a number of items, and you have a sense of how promising each item is, not just the items you have worked but also those you don't. The updated backlog becomes:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A (promising: 90, progress: 70% done)&lt;/li&gt;&#xA;&lt;li&gt;B (promising: 70, progress: 60% done)&lt;/li&gt;&#xA;&lt;li&gt;Z (promising: 65, not started)&lt;/li&gt;&#xA;&lt;li&gt;...&lt;/li&gt;&#xA;&lt;li&gt;C (seems it won't work, don't bother)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Notice how item C sinked to the bottom because of research insights gained from working on A and B. Also notice how Z floats to the top. Learning about what other researchers are doing will also help floating items to the top.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of one semester, do a backlog cleanup.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A (done, working)&lt;/li&gt;&#xA;&lt;li&gt;B (done, working)&lt;/li&gt;&#xA;&lt;li&gt;Z (done, some bugs)&lt;/li&gt;&#xA;&lt;li&gt;-----&lt;/li&gt;&#xA;&lt;li&gt;Y (50% coded, kept in the system, not actively used)&lt;/li&gt;&#xA;&lt;li&gt;X (10% coded, removed from the system in revision 123)&lt;/li&gt;&#xA;&lt;li&gt;-----&lt;/li&gt;&#xA;&lt;li&gt;C (dropped)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The ones that are working will be the result you publish.&lt;/p&gt;&#xA;" OwnerUserId="620" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-12-04T08:42:36.487" LastActivityDate="2010-12-04T08:42:36.487" />
  <row Id="23360" PostTypeId="2" ParentId="17355" CreationDate="2010-12-03T11:13:54.250" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Fast_inverse_square_root&quot; rel=&quot;nofollow&quot;&gt;Black magic&lt;/a&gt; from John Carmack&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;float Q_rsqrt( float number )&#xA;{&#xA;    long i;&#xA;    float x2, y;&#xA;    const float threehalfs = 1.5F;&#xA;&#xA;    x2 = number * 0.5F;&#xA;    y  = number;&#xA;    i  = * ( long * ) &amp;amp;y;                       // evil floating point bit level hacking&#xA;    i  = 0x5f3759df - ( i &amp;gt;&amp;gt; 1 );               // what the ****?&#xA;    y  = * ( float * ) &amp;amp;i;&#xA;    y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration&#xA;//  y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed&#xA;&#xA;    return y;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1880" LastActivityDate="2010-12-03T11:13:54.250" CommunityOwnedDate="2010-12-03T11:13:54.250" />
  <row Id="23364" PostTypeId="1" AcceptedAnswerId="23387" CreationDate="2010-12-03T11:28:43.443" Score="6" ViewCount="316" Body="&lt;p&gt;To me it seems these are two different platforms that address similar enterprise(but not only) problems. I'm interested however in problems that Java can solve better than C#/.NET or C#/.NET can solve better than Java. Leaving aside the 'cost' factor, since that is somehow not an issue for big enterprise companies (the developers probably cost more than the licenses from Microsoft - it's just a thought) and even for small projects there are free/open-source tools for .NET so the cost can be zero for the .NET world as well. With Mono, you can port .NET to Linux and MacOS as well so the benefit that Java had(cross platform) isn't THE decision factor to use Java nowadays..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What real world problems can you think of where .NET would be a much better solution than Java, and vice-versa? I'm only interested in solutions to problems.&lt;/p&gt;&#xA;" OwnerUserId="9044" LastActivityDate="2011-04-27T06:42:49.290" Title="Solutions to problems that .NET can solve better than Java (or vice-versa)." Tags="&lt;java&gt;&lt;.net&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="1" />
  <row Id="23365" PostTypeId="2" ParentId="16243" CreationDate="2010-12-03T11:53:43.803" Score="3" ViewCount="" Body="&lt;p&gt;Great question BTW - I've often pondered this. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Mastery of tools is a skill that is central to being a good developer.&lt;/strong&gt; I have always felt alarm bells ring when a developer claims he &lt;em&gt;prefers&lt;/em&gt; coding in notepad to using an IDE. It suggests he's more interested in the process than the product. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's like preferring to till the soil with a hoe vs a tractor - fine if you're a hobby gardener, but insupportable as an industrial farmer in a competitive economy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, we do become dependent on our tools. People do seem to freak out about how we would cope in the hypothetical situation where our tools were suddenly taken away. There was the same argument about allowing calculators into exams. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reality is that tools get better and better and cheaper and cheaper each year and there is no reason why you should ever suppose you will be without them. And tools are great at doing repetitive things with a high degree of quality - which means we can focus the full force of our incredible homo-sapien intellects on the difficult (and interesting) parts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ReSharper is an awesome addition to Visual Studio. My current company didn't have ReSharper when I was interviewed - but I was so evangelical about it in my interview that they bought me a copy when I accepted the position as well as one for the developer who interviewed me. It is now being rolled out across the company. Good tools pay for themselves in no time at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to answer the question: &lt;strong&gt;your dependency on tools &lt;em&gt;may&lt;/em&gt; cause a false evaluation of your abilities in an interview, but they will &lt;em&gt;always&lt;/em&gt; give a correct evaluation of the interviewer's abilities.&lt;/strong&gt; If a company doesn't recognise the value of tool support in your interview - you've got to show them the light. And if they still won't see it, then I'd be very concerned about accepting a position there.&lt;/p&gt;&#xA;" OwnerUserId="8811" LastEditorUserId="8811" LastEditorDisplayName="" LastEditDate="2011-02-22T11:26:39.303" LastActivityDate="2011-02-22T11:26:39.303" CommentCount="2" />
  <row Id="23366" PostTypeId="2" ParentId="23313" CreationDate="2010-12-03T11:54:37.747" Score="5" ViewCount="" Body="&lt;p&gt;I have been writing C++ for &gt;15 years, but I still don't know some of its arcane syntactical corners by heart.&lt;br&gt;&#xA;How do you explicitly instantiate a function template again? And what's the syntax to partially specialize a template that has a template-template argument? And don't get me started about declaring a function that returns a pointer to an array of pointers to functions which take arrays of pointers to...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suspect there's at most one or two dozen people in this world (if there are any at all) who really know &lt;em&gt;all&lt;/em&gt; of C++' syntax by heart. And these are probably all earning their money by writing C++ compiler frontends.&lt;/p&gt;&#xA;" OwnerUserId="1512" LastEditorUserId="1512" LastEditorDisplayName="" LastEditDate="2010-12-07T09:39:46.790" LastActivityDate="2010-12-07T09:39:46.790" CommentCount="1" />
  <row Id="23367" PostTypeId="1" AcceptedAnswerId="23376" CreationDate="2010-12-03T12:06:49.450" Score="6" ViewCount="347" Body="&lt;p&gt;I'm a C# developer for almost 2 years now and now I want something new Like Ruby, Python or F#. So I want to know what other people said about learning new language after working on C#. I want to know should I learn a new language which is familiar to C# or completely different&lt;/p&gt;&#xA;" OwnerUserId="8760" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-12-03T12:32:30.450" LastActivityDate="2010-12-05T12:54:14.493" ClosedDate="2010-12-28T13:17:02.010" Title="Which language should I learn next" Tags="&lt;programming-languages&gt;" AnswerCount="12" CommentCount="2" FavoriteCount="1" />
  <row Id="23369" PostTypeId="2" ParentId="23146" CreationDate="2010-12-03T12:10:04.157" Score="1" ViewCount="" Body="&lt;p&gt;Just thinking in terms of appropriate place to ask the question, the IT security section of Stack Exchange should be a useful point for you. Try &lt;a href=&quot;http://security.stackexchange.com/questions/tagged/passwords&quot;&gt;http://security.stackexchange.com/questions/tagged/passwords&lt;/a&gt; - a range of individuals focused on IT Security should be able to provide specific answers.&lt;/p&gt;&#xA;" OwnerUserId="9062" LastActivityDate="2010-12-03T12:10:04.157" CommentCount="1" />
  <row Id="23370" PostTypeId="2" ParentId="23364" CreationDate="2010-12-03T12:13:19.603" Score="1" ViewCount="" Body="&lt;p&gt;For &lt;em&gt;us&lt;/em&gt; we can run Java programs on our deployment platform and we cannot run neither .NET nor Mono.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The world is larger than just Windows+Linux+OS X.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-03T12:13:19.603" CommentCount="5" />
  <row Id="23371" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T12:15:31.590" Score="8" ViewCount="" Body="&lt;p&gt;Here is a simple one:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;We love computers and gadgets&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="3814" LastActivityDate="2010-12-03T12:15:31.590" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="2" />
  <row Id="23372" PostTypeId="2" ParentId="22504" CreationDate="2010-12-03T12:15:57.753" Score="1" ViewCount="" Body="&lt;p&gt;A large cost to organisations is not assigning budget to security throughout the development lifecycle, this means security usually ends up being in after the fact ineffective, expensive set of activities or controls put in place too late to do much good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get security built in from initial project plan, with key milestones, the same as you would with all other aspects of development, and use an iterative process to keep security guidance up to date. Final signoff from security should ten be a no-surprises check that all security controls were implemented as per design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise you'll end up running security after implementation - where it could cost 8 - 10 times as much (figures from Gartner, IBM and others), will upset people as functionality is likely to be impacted and it may be too late to prevent exploitation and damage.&lt;/p&gt;&#xA;" OwnerUserId="9062" LastActivityDate="2010-12-03T12:15:57.753" CommentCount="2" />
  <row Id="23373" PostTypeId="2" ParentId="23344" CreationDate="2010-12-03T12:16:13.610" Score="0" ViewCount="" Body="&lt;p&gt;No one truly knows the longevity of anything. However, I would venture a guess that Citrix is not going anywhere anytime fast. It is too prevalent in too many industries to just up and go away. Besides, companies tend to hold on to legacy software longer than they should because &quot;it works&quot; and they don't want to mess with things. I mean, you can still find COBOL and VMS jobs out there. I think that should tell you something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, I can speak from experience that Citrix would probably hang around for quite a while. All of the facilities we work with have integrated it and more are implementing it each month.&lt;/p&gt;&#xA;" OwnerUserId="4056" LastActivityDate="2010-12-03T12:16:13.610" />
  <row Id="23374" PostTypeId="2" ParentId="886" CreationDate="2010-12-03T12:20:20.943" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Board games&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nothing is more fun given a set of rules to maximize your points, and beating other players!&lt;/p&gt;&#xA;" OwnerUserId="3814" LastActivityDate="2010-12-03T12:20:20.943" />
  <row Id="23375" PostTypeId="2" ParentId="23364" CreationDate="2010-12-03T12:20:42.640" Score="0" ViewCount="" Body="&lt;p&gt;I feel like this question will go nowhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both platforms can solve a wide variety of problems. Both are not just programming languages or frameworks but vast ecosystems with third party suppliers and so on. Both are very powerful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One advantage of the Microsoft stack is that its products are often well integrated and this job is done by the manufacturer himself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the side of Java there is cross-platform availability which cannot be achieved with MS (not fully that is) and a vast army of corporate and individual developers who bring solutions to a wide variety of practical problems (their quality and support is another issue).&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-03T12:20:42.640" />
  <row Id="23376" PostTypeId="2" ParentId="23367" CreationDate="2010-12-03T12:23:11.173" Score="9" ViewCount="" Body="&lt;p&gt;I'd say learn something completely different otherwise there is really no point. You don't want to learn another flavor of the same but something that will extend your knowledge horizons. Try a functional language like F# to accompany your knowledge of the object-oriented C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could also learn a different part of software development. For instance, if you were mostly engaged in embedded programming, try desktop applications or programming for web. If your strength lies with databases, try front-end development or Android.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also consider learning another area of expertise instead of just another programming thing. When developing for users, it's not just code that matters, but nice UI design, usability and user experience. It's unorthodox for hardcore programmers, but hey, you did want challenge!&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-03T13:40:26.090" LastActivityDate="2010-12-03T13:40:26.090" CommentCount="1" />
  <row Id="23377" PostTypeId="2" ParentId="23367" CreationDate="2010-12-03T12:24:50.737" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;F#&lt;/strong&gt; so that you learn functional programming&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-12-03T12:24:50.737" CommentCount="3" />
  <row Id="23378" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T12:29:18.473" Score="4" ViewCount="" Body="&lt;p&gt;We like beer...&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-03T12:29:18.473" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="20" />
  <row Id="23379" PostTypeId="2" ParentId="16708" CreationDate="2010-12-03T12:32:20.630" Score="0" ViewCount="" Body="&lt;p&gt;That happens to me as well. All the time. I'd say if you loose interest in something, just let it go and start something else. If you really really like an idea or a project you'd not loose interest. If you loose interest, you didn't really like it in the first place. So in the spare time do what you feel like doing. Keep trying new projects and ideas till you find one where you don't need any artificial motivation. Even if takes years for that idea to come by, keep trying out whatever comes in your mind.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-03T12:32:20.630" CommunityOwnedDate="2011-02-04T23:07:08.093" />
  <row Id="23380" PostTypeId="2" ParentId="23367" CreationDate="2010-12-03T12:39:49.950" Score="2" ViewCount="" Body="&lt;p&gt;Ruby is completely different. You might wanna try something from the &quot;real&quot; OO world, like Ruby, Objective-C or Smalltalk/Squeak. You will see, there is a subtle, but powerful difference between message passing and method calls.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that, I suggest &lt;a href=&quot;http://haxe.org/doc/intro&quot; rel=&quot;nofollow&quot;&gt;haXe&lt;/a&gt;. You will find, it has many similarities to C#. Possibly the multitude of targets might appeal to you. Some language features you know from C# are a little different, some are missing or more verbous and there are a few things you can't find in C# (structural subtyping probably stands out). The &quot;everything-is-an-expression&quot;-feature adds haXe a nice touch, making functional/structural/declarative programming more intuitive and your code quite sexy. Also, it's open source, so if you ever digg into OCaml (which may also be worth learning), you can experiment with new language features.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-12-03T12:39:49.950" />
  <row Id="23382" PostTypeId="2" ParentId="23367" CreationDate="2010-12-03T12:48:52.203" Score="5" ViewCount="" Body="&lt;p&gt;If it were me, I'd go with something low-level (C, or even Assembly). I like to have a good understanding of how everything works down to the metal, current languages abstract you away from this completely.  These probably won't help you much in the day job other than having a better grasp of what you're working with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, a completely different language paradigm (say Lisp) so you aren't stuck in a box as far as what you can do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/10675/ideal-programming-language-learning-sequence&quot;&gt;This question&lt;/a&gt; has good answers as well&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-03T12:48:52.203" CommentCount="1" />
  <row Id="23383" PostTypeId="2" ParentId="23367" CreationDate="2010-12-03T12:49:55.000" Score="3" ViewCount="" Body="&lt;p&gt;The single most important thing to do when learning a new language or paradigm is to actually &lt;em&gt;use&lt;/em&gt; it, and preferably a &lt;em&gt;lot&lt;/em&gt;!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hence you need a project where you will use your new knowledge so that it really sticks.  If you do XML stuff, I would suggest you look into XSLT with XQuery.  The ability to slice through your XML data with something SQL'ish is extremely potent for ad-hoc queries.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-03T12:49:55.000" />
  <row Id="23384" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T12:51:10.377" Score="20" ViewCount="" Body="&lt;p&gt;being of male gender is very, very common&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-12-03T12:51:10.377" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="5" />
  <row Id="23385" PostTypeId="2" ParentId="23367" CreationDate="2010-12-03T12:53:18.867" Score="0" ViewCount="" Body="&lt;p&gt;If your only aim is to learn a new language for the experience of it (ie, you are happy with C# and is not looking for a career change) I suggest Lisp. Why? Because it is said to be a totally refreshing experience and it is so enlightening that you will get a new outlook on programming. It is like being enlightened. (and from my experience of learning it, I can vouch for it. [haven't yet finished, so don't ask whether I have a halo around my head.])&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is &lt;a href=&quot;http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/&quot; rel=&quot;nofollow&quot;&gt;SICP&lt;/a&gt; lectures. It uses Scheme (a dialect of Lisp) or if you need to learn Common Lisp there is &lt;a href=&quot;http://gigamonkeys.com/book/&quot; rel=&quot;nofollow&quot;&gt;Peter Seibel's book&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer  going through SICP first.&lt;/p&gt;&#xA;" OwnerUserId="6693" LastActivityDate="2010-12-03T12:53:18.867" />
  <row Id="23386" PostTypeId="1" AcceptedAnswerId="23399" CreationDate="2010-12-03T12:53:40.877" Score="6" ViewCount="437" Body="&lt;p&gt;The most common discussion I've seen regarding the pros and cons of REST tends to frame that discussion relative to SOAP. I have no experience in either. I am currently faced with a decision which my lack of experience is making hard for me to evaluate. &#xA;I am beginning to develop an application that has several components - primarily an administrative aspect that allows the owner to administer several sites - and a public facing user interface that allows the user to interact with data held on the host.&#xA;I need to evaluate the implications of allowing the latter part to be hosted anywhere and communicate with the former via a RESTful architecture - or demanding that both components reside on the same host. &#xA;What are the key implications of developing RESTful architecture, particularly with regards to it's capacity in the following areas:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1: Security&#xA;2: Performance&#xA;3: Interface complexity&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Looking at some of the answers to this question - I should clarify. I'm not looking for a comparison to SOAP - rather an overview of REST applications vs applications where all components reside on one host. (thanks for those answers though!)&lt;/p&gt;&#xA;" OwnerUserId="3712" LastEditorUserId="3712" LastEditorDisplayName="" LastEditDate="2010-12-03T14:53:04.930" LastActivityDate="2011-04-16T08:29:19.897" Title="Pros and Cons of RESTful architecture" Tags="&lt;web-applications&gt;&lt;rest&gt;" AnswerCount="5" FavoriteCount="4" />
  <row Id="23387" PostTypeId="2" ParentId="23364" CreationDate="2010-12-03T12:56:43.787" Score="5" ViewCount="" Body="&lt;p&gt;There are some language features in C# (4/5) such as LINQ, &lt;code&gt;using&lt;/code&gt; predicate and some functional aspects that many would argue place it ahead of Java 6 in terms of productivity/flexibility (YMMV on that).  Others would argue that C# is becoming a big cesspit of every brand new idea that happens to be popular and it's getting harder to wield effectively (YMMV on that).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some will also argue that the Java eco-system is far more flexible and that the JVM is probably the most capable and flexible runtime around (if you look at the various languages that run on the JVM adn their interoperability with Java).  Again YMMV.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What it really boils down to is the quality of the developer(s) who are designing and writing the code.  .NET and the Java eco-system are so close in capabilities that its usually the developer that makes a difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a systems integration flexibility aspect, yes Java still has an edge there.  Cross platform &lt;em&gt;is&lt;/em&gt; still an issue - many enterprises will see using Mono as risky (again YMMV here) and there are some systems that Mono won't run on that have JVMs (Some older big IBM machines for example).  Java has also been around a bit longer and has that established 'trust' in enterprises, it's not easy for .NET to gain that trust at say a mega-bank.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Meh - I conclude with no real conclusion, which I think mirrors the fact that Java and .NET are neck and neck these days.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-03T12:56:43.787" CommentCount="3" />
  <row Id="23388" PostTypeId="2" ParentId="23367" CreationDate="2010-12-03T12:58:15.087" Score="3" ViewCount="" Body="&lt;p&gt;I'd probably go for Python or Javascript: the former is very flexible and can be applied in several environments, but has the dynamic aspects of languages like Ruby. The latter's relevance to the future of web applications makes it a worthy investment - plus it has a really interesting prototypal inheritance model, and equally interesting implementation of first class functions. Regarding the latter - i can really recommend the series of articles here to get a good overview of the peculiarities of the language:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://howtonode.org/&quot; rel=&quot;nofollow&quot;&gt;http://howtonode.org/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3712" LastActivityDate="2010-12-03T12:58:15.087" CommentCount="3" />
  <row Id="23389" PostTypeId="2" ParentId="22504" CreationDate="2010-12-03T13:00:01.247" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;1. Take it to the team&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Ask the programmers!&lt;/em&gt; Really, that's the most important thing. You'll meet lots of resistance if the devs are not directly involved in this change. After all, it's about how &lt;em&gt;they&lt;/em&gt; work, not you. It goes without saying, but trying to force methods and tools on people usually backfires horrible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2. Inspect and adapt&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have the team figure out the best way to work, using your experience to gently help them get on the chosen track. Then, regularly and collaboratively, look back on how you (they) are doing and adapt the process to make it better.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-12-04T07:23:39.323" LastActivityDate="2010-12-04T07:23:39.323" />
  <row Id="23390" PostTypeId="2" ParentId="17355" CreationDate="2010-12-03T13:11:04.220" Score="0" ViewCount="" Body="&lt;p&gt;Not famous, but a hideous way of calculating the square root of &lt;em&gt;n&lt;/em&gt;, with the result as &lt;em&gt;n&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for(double r=1;r!=n;n=r==(r=0.5*(r+(n&amp;lt;0?-n:n)/r))?r:n);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And yes, negative number handling is incorrect.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-03T13:11:04.220" CommunityOwnedDate="2010-12-03T13:11:04.220" />
  <row Id="23391" PostTypeId="2" ParentId="22504" CreationDate="2010-12-03T13:13:24.123" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Postmortem Reviews&lt;/strong&gt; - Since you are working on things in blocks, I would schedule a one to two hour review (depending upon team size) to have a face to face meeting (if possible) where everyone goes around and says what was done right, what could be done better, and what wasn't needed. Being able to learn from your mistakes in the development process early means that you can avoid doing them later on when you don't have as much time to work with.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-12-03T13:13:24.123" />
  <row Id="23392" PostTypeId="1" AcceptedAnswerId="23394" CreationDate="2010-12-03T13:16:20.213" Score="1" ViewCount="227" Body="&lt;p&gt;10 years ago at college I had some UML lectures. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From these I remember and use only some basic part of class and sequence diagrams and how our teacher was trying to convince us that in the future, we won't be coding but we will be using (bloated at the time) UML tools to generate software ! What a laugh !&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Today I think I can have a better use of UML than only reverse engineering my code to have some nice diagrams to illustrate a documentation. I feel than I can use it to design some part of my code and avoid late problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But each time I want to really use UML to design something I get lost: too much diagrams, too much obscure jargon, too much text field and options in UML editor with dark meanings... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I want to know how do you have learn UML in order to know enough to use it in design phase without being drawn by its complexity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note:&lt;br&gt;&#xA;I already have this book: UML Distilled: A Brief Guide to the Standard Object Modeling Language from M. Fowler. &#xA;What I miss is more a practical approach with one or many real world examples of how to model a real project using UML.&lt;/p&gt;&#xA;" OwnerUserId="4989" LastEditorUserId="4989" LastEditorDisplayName="" LastEditDate="2010-12-03T14:01:07.530" LastActivityDate="2010-12-03T14:11:11.443" Title="How to learn UML for a design usage ?" Tags="&lt;design&gt;&lt;usage&gt;&lt;uml&gt;&lt;real-world&gt;" AnswerCount="2" />
  <row Id="23394" PostTypeId="2" ParentId="23392" CreationDate="2010-12-03T13:24:12.863" Score="1" ViewCount="" Body="&lt;p&gt;Schaum's Outlines series has a book on UML which I found really useful. It has loads of examples and exercises. I was confused about UML too but this book really simplified things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0077096738&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.co.uk/Schaums-Outlines-UML-Simon-Bennett/dp/0077096738&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3543" LastEditorUserId="3543" LastEditorDisplayName="" LastEditDate="2010-12-03T13:38:25.963" LastActivityDate="2010-12-03T13:38:25.963" CommentCount="2" />
  <row Id="23396" PostTypeId="2" ParentId="23386" CreationDate="2010-12-03T13:28:44.810" Score="5" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Security:&lt;/strong&gt; Use HTTPS. This applies to both.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Performance:&lt;/strong&gt;. REST is less CPU expensive (less parsing, marshalling, unwrapping). Also, caching with REST is piece of cake.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Complexity:&lt;/strong&gt; REST demands much less in terms of setup, it's just GET/POST after all. SOAP requires much more administration to maintain (wsdl etc), but is a bit easier if your IDE supports it.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I think &lt;a href=&quot;http://www.w3.org/TR/soap12-part1/&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;SOAP&lt;/a&gt; is way too bloated when you can do the same thing with REST and some content/mime-types. Also, SOAP brings lots of overhead, due to its wrapping-of-wrappers nature and the fact that it is more general and not limited to HTTP. SOAP is tempting to use if your IDE supports it properly and you don't want to learn HTTP. But for me, REST is much easier to use and much more more web friendly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nowadays, there are very good REST APIs to use. If you're into Java, then Jax-RS is really cool. For some folks, &lt;a href=&quot;http://wikis.sun.com/display/Jersey/Overview+of+JAX-RS+1.0+Features&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; is like porn.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="9114" LastEditorDisplayName="" LastEditDate="2011-04-16T08:29:19.897" LastActivityDate="2011-04-16T08:29:19.897" CommentCount="3" />
  <row Id="23399" PostTypeId="2" ParentId="23386" CreationDate="2010-12-03T13:42:14.123" Score="7" ViewCount="" Body="&lt;p&gt;Given those areas, I can give a rough overview, but I can't draw your conclusions for you.  There are two chief areas where the two protocols differ:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Message format&lt;/li&gt;&#xA;&lt;li&gt;Service discovery&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Message format is easiest to understand.  The SOAP packaging for both requests and responses is fairly heavy weight.  There's the SOAP envelope that contains both a header and a body section.  The header can be used by several filters in the request chain to perform some sort of identification, authorization, etc.  However, XML is expensive to parse, which yields a certain penalty to the scalability of your system.  Just how much depends on the SOAP processing layer in your stack.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Service discovery is where you probably will have the most contention.  REST by its very nature provides &lt;em&gt;predictable&lt;/em&gt; end points, and the content of the request is a simple HTTP request.  The benefit is that there is no additional overhead, and end users can pretty much guess how to do what they need once they understand the URL structure of your site.  Of course, naive security conscious people will see that as a weakness.  Afterall, with SOAP, you have to consume a WSDL to know what the endpoints are.  Of course, with SOAP you were given the entire message format so you can make more targeted attacks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Broken down by the categories you gave:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Security&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Neither is inherently more secure than the other.  Use good security principles:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Encrypt communications&lt;/li&gt;&#xA;&lt;li&gt;Make sure you authenticate and authorize users before processing&lt;/li&gt;&#xA;&lt;li&gt;Good coding habits to avoid direct attacks&lt;/li&gt;&#xA;&lt;li&gt;And that's just the short list.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Remember obscurity != security.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Performance&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both raw performance and scalability will go to REST due to the request following simple HTTP protocols.  Most SOAP stacks use SAX parsing (event based parsing) which greatly improves the scalability of SOAP stacks, but there is a measurable impact to the overhead.  SOAP has the normal HTTP processing overhead in addition to the XML parsing overhead.  REST just has the HTTP processing overhead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Complexity&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the system's perspective, REST wins.  There's fewer moving parts, a leaner request chain, etc.  That means it's easier to make reliable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the programmer's perspective, SOAP can win if the IDE or framework you are using provides good support for it.  Essentially, with REST the onus is on you to perform the preprocessing work (authentication/authorization/etc) while with SOAP much of that can be accomplished with a pluggable processing chain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;My Preference&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm very comfortable with HTTP requests, and I know how the web works.  As a result, the REST approach is more preferable for me.  However, I do know that some of my clients are uncomfortable with that.  They've read some industry article denouncing the security of REST vs. SOAP, etc.  Bottom line is that neither approach guarantees security.  It's on you to make sure the application is as secure as it needs to be.  Obviously, a social web application doesn't demand (or desire) as much security as a bank or government system.  Many SOAP stacks include processors that you can plug in to provide some semblance of security, but it is still your responsibility to search them out and put them in place.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-03T13:42:14.123" CommentCount="3" />
  <row Id="23404" PostTypeId="1" AcceptedAnswerId="23580" CreationDate="2010-12-03T14:06:14.520" Score="36" ViewCount="1339" Body="&lt;p&gt;I completed this website 4 months ago. (I would like to keep the website anonymous - if this post comes up on google search for his customers, it will have a negative impact on his business). We did several iterations, he was very demanding (and nosy), I complied with every single thing he wanted, including the font-size of the footer which destroyed the aesthetic looks by quite a bit. (and he messed with the colors too, making it look dangerously childish and unprofessional) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, he was very friendly during he whole process. After getting all the requirements I accepted to build the website for £950 and I charged him £150 in advance so he wouldn't want to bail out after I started the work. The requirements kept changing quite a lot, I made adjustments as and completed the website just 5 days late, w.r.t. the agreed date, in-spite all the changes in requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That was four months ago. He has never returned my calls nor replied to my emails since then. How do I get the money back from him? I really need some advice on this, this is the second time someone has not payed me.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Points to be noted:&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;1) We did not sign any contract - he was a friend of a friend.&lt;br&gt;&#xA;2) I still hold the passwords for ftp, cpanel and everything. I don't want to bring the site down. somehow it doesn't seem ethical to me.&lt;br&gt;&#xA;3) I posted this on stackoverflow and it was closed, I was redirected here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;br&gt;&#xA;Thank you everyone, for your enormous support. I thought I should include some more details: He is hosting the site. as in, I made him register and use his own debit card to buy the domain name, webspace and everything, I just have the passwords for his cpanel, and ftp (well, I have access to cpanel that pretty much gives me access to many things) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, if I give him a warning, he might change the password to cpanel, but I am fairly sure he doesn't know about ftp's.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;&lt;br&gt;&#xA;I followed &lt;code&gt;Anna Lear&lt;/code&gt;'s advice and sent him the final invoice, on Saturday, with a warning that I will take the site down if he doesn't respond to my email before this Tuesday. He hasn't replied to my emails yet, but I will let you know how this goes. Thanks much for your support. I plan to put up a holding page as &lt;code&gt;Darknight&lt;/code&gt; suggested after Tuesday.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Points&lt;/strong&gt;&lt;br&gt;&#xA;I dont have a server space of my own, however I have few web spaces of my clients but I dont want to use them for these kind of purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;RESULTS&lt;/strong&gt;&lt;br&gt;&#xA;After my follow up of final invoice and warning, the client refused to anything. &lt;a href=&quot;http://programmers.stackexchange.com/questions/23404/how-to-get-money-from-reluctant-client/23580#23580&quot;&gt;workman's advice&lt;/a&gt; seemed to be the most sensible to me. I mirrored the site to my own webspace, logged into his CPanel and forwarded the website to my site. Once that was done, I put up a holding page on my site so anyone going to the website would see a holdup page (nothing fishy, just an Under Construction page). Of course, this was all very weak in the sense that if my client knew about CPanel he could just remove the redirection. But, I had this second chance to get back to him and I was relying on him not knowing anything.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two hours later, I got a call from the said client, (and he was acting as if he did not get any of my voice mails or emails) and asked me to get the site back up. I, of-course, said I had to be paid and two days after that he made a bank transfer. His site's back up and running now. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just wanted to say thank you all very much, I was very desperate when I had started this question. You guys are the best, not only you told me to learn the lesson (which I did) you also gave me a very very good solution that seemed to be very ethical (almost) to me.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A BIG thank you to workman!  &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;sub&gt;If I could choose more than once answer, I would have chosen &lt;code&gt;Anna Lear&lt;/code&gt;  too, but since I followed workman's advice I had to pick that up. People who made a point about not taking the site down without consulting a lawyer, thanks a lot. &lt;/sub&gt;&lt;/p&gt;&#xA;" OwnerUserId="9067" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-13T15:02:19.627" LastActivityDate="2010-12-13T15:02:19.627" Title="How to get money from reluctant client?" Tags="&lt;client&gt;" AnswerCount="24" CommentCount="16" FavoriteCount="11" />
  <row Id="23405" PostTypeId="2" ParentId="23364" CreationDate="2010-12-03T14:07:04.880" Score="0" ViewCount="" Body="&lt;p&gt;I don't think there is any class of problem domain that begs for one or the other. Some platforms can't run .NET, such as certain smart phones and so J2ME has some more portability. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the enterprise space, I usually see this decision based on the experience of the team, or if its a new group/project then the experience of its initial managers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my team, we have a lot of both .NET and J2EE. This is mostly for the reason that there are different strengths in terms of the existing open source projects we can use; and we have vendor runtime platforms that require one or the other. We do all our UI work in .NET; most of our integration and search platform is hosted on Java. Our middleware is a mixed bag. I'm sure this horrifies some people but it really gives us a lot of flexibility and saves us a lot of time in the end because we can leverage the best products in their problem domain, not just on our platform.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-12-03T14:07:04.880" />
  <row Id="23406" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T14:08:32.013" Score="5" ViewCount="" Body="&lt;h2&gt;Taking in daily WTH, WTF, OMG servings with a smile^^&lt;/h2&gt;&#xA;" OwnerUserId="7577" LastActivityDate="2010-12-03T14:08:32.013" CommunityOwnedDate="2010-12-06T09:48:17.537" />
  <row Id="23407" PostTypeId="2" ParentId="23404" CreationDate="2010-12-03T14:09:47.540" Score="30" ViewCount="" Body="&lt;h1&gt;Take it down &lt;sup&gt;1&lt;/sup&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;It's your work and it's unpaid. What happens if you take a car off the lot and fail to pay? They take it back. Better do it now while you can then regret it later. Why would it not be ethical to take back something that is yours? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hopefully a down site will motivate them to pay you. Otherwise you are in a bit of a bind. No matter who you work for get a contract or something in writing. Friends, family, the only exclusion would be your mother because honestly you probably won't be charging her anyways.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I'm opposed to warning him only because that will prompt him to remove your access, and prevent you from taking any action. What good is the warning if you can't follow through?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;&#xA;1: Please be aware of the possible &lt;strong&gt;legal consequences&lt;/strong&gt; that may present themselves in following this course of action. This information is provided &lt;em&gt;&quot;as-is&quot;&lt;/em&gt;. The author cannot not be held liable for the results of following any part of the above stated recommendation. By reading this you are affixing an assumed electronic signature that you agree to all terms, as stated, without reservation. If any part of this agreement is found unlawful, I don't really care. Just adding fine print for fine prints sake.&#xA;&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-08T13:08:16.333" LastActivityDate="2010-12-08T13:08:16.333" CommentCount="29" />
  <row Id="23408" PostTypeId="2" ParentId="23234" CreationDate="2010-12-03T14:10:09.667" Score="0" ViewCount="" Body="&lt;p&gt;The hardest thing for me to grasp in C# were delegates and lambdas. I use to write all my LINQ queries using the SQL query format. Since I've been learning F#, the C# lambdas have become much, much easier and I really enjoy them. All it took for delegates was a little concentrated effort (which required me to not be lazy) and then they made sense. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall, I don't think the C# libraries are that big of an issue (unless you talk about 3rd party ones) since Microsoft has thorough documentation (IMO).&lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-12-03T14:10:09.667" />
  <row Id="23409" PostTypeId="2" ParentId="23392" CreationDate="2010-12-03T14:11:11.443" Score="1" ViewCount="" Body="&lt;p&gt;I tend to use pieces of UML to work through difficult designs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning how to think visually about systems is important; UML is as good if not better than other diagramming choices. But in practical reality, boxes and arrows are sufficient.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;UML is a nice 'standard' for communicating designs to other programmers. Some end-users can be trained to read use-case diagrams and simple flowcharts. Other than that, it's just a tool in your bag o' tricks to be pulled out when it is useful.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-03T14:11:11.443" CommentCount="2" />
  <row Id="23410" PostTypeId="2" ParentId="23404" CreationDate="2010-12-03T14:12:00.507" Score="19" ViewCount="" Body="&lt;p&gt;Send him a final invoice with a note that you will be shutting down the site on such and such date/time until payment is made. That should get his attention. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I agree that shutting it down out of the blue would be a bit unethical (no matter how obvious it may be to us that he should pay up), but with a clear warning, all bets are off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond that... I don't think there's much you can do without a contract.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for advice on preventing this kind of thing in the future, &lt;strong&gt;always sign a contract&lt;/strong&gt;. It's not optional. Sign a contract and take them to court for non-payment if that's what it takes.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-03T14:12:00.507" CommentCount="20" />
  <row Id="23411" PostTypeId="2" ParentId="23351" CreationDate="2010-12-03T14:12:51.240" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The 11 step algorithm for learning a new programming language&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm currently &lt;a href=&quot;http://programmers.stackexchange.com/questions/20586/how-should-i-start-with-lisp&quot;&gt;in the process of learning Lisp&lt;/a&gt;, and I'd recommend the following algorithm:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Ask around if the language is worth learning and where good resources can be found. If positive responses to the language are given by experts then proceed to step 2.&lt;/li&gt;&#xA;&lt;li&gt;Create an initial programming environment. Keep it simple: text editor and compiler/interpreter. The bare minimum. Consider a specific user account on your machine with a special colour scheme to cue the change of mindset.&lt;/li&gt;&#xA;&lt;li&gt;Create the &quot;Hello, World!&quot; application. &lt;/li&gt;&#xA;&lt;li&gt;Learn general syntax and control statements (if-then-else, repeat-until etc). Create sandbox to verify simple control cases (true/false evaluations etc). Try out every primitive type (int, double, string etc). Perform currency calculations. The number guessing game (as suggested by &lt;a href=&quot;http://programmers.stackexchange.com/users/7426/jeremy&quot;&gt;@Jeremy&lt;/a&gt;) is good for this.&lt;/li&gt;&#xA;&lt;li&gt;Create class (if applicable) with several methods/functions. Make calls between functions. Apply control statements.&lt;/li&gt;&#xA;&lt;li&gt;Learn arrays and collections. Create suitably complex examples that create arrays and collections of each of the classes/functions/primitives that are available to you&lt;/li&gt;&#xA;&lt;li&gt;Learn file IO. Create examples of reading, manipulating and writing binary and character based files.&lt;/li&gt;&#xA;&lt;li&gt;Ask more questions about idiomatic programming within the language (pointers, macros, monads, closures, support frameworks, build environments etc). &lt;/li&gt;&#xA;&lt;li&gt;Choose (or adapt your existing) IDE to work in the recomended idiom.&lt;/li&gt;&#xA;&lt;li&gt;Write a variety of applications that please you (or your boss). &lt;/li&gt;&#xA;&lt;li&gt;After 1 year return to step 1 for another language while maintaining your interest in the one you've just been learning.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-03T14:46:45.733" LastActivityDate="2010-12-03T14:46:45.733" CommentCount="3" />
  <row Id="23413" PostTypeId="2" ParentId="23404" CreationDate="2010-12-03T14:13:26.500" Score="5" ViewCount="" Body="&lt;p&gt;There are a couple of non-legal paths you can take.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You mentioned that your client is a friend of a friend.  You could start there.  Tell your mutual friend about the situation.  Perhaps they can get in contact with your client and apply some pressure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And excluding some sort of legal action your last resort is taking down the site.  Send your client another email asking for a response and that if you don't hear from him by X date that the site will be taken down.  My guess is that you will hear from him after that.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-03T14:13:26.500" CommentCount="3" />
  <row Id="23414" PostTypeId="2" ParentId="23404" CreationDate="2010-12-03T14:13:42.793" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;somehow it doesnt seem ethical to me&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Neither is not paying you, or answering your calls. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm amazed you have waited this long. I kick up a fuss if my client doesn't pay me within one month - and I'm on a long term contract.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-12-03T16:45:56.413" LastActivityDate="2010-12-03T16:45:56.413" />
  <row Id="23415" PostTypeId="2" ParentId="23404" CreationDate="2010-12-03T14:15:02.247" Score="0" ViewCount="" Body="&lt;h2&gt;Put up a holding page.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;and remove the content, until he pays you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I would do this fast, because if he is smart, he may simply move the hosting else were.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-07T20:55:15.950" LastActivityDate="2010-12-07T20:55:15.950" CommentCount="10" />
  <row Id="23417" PostTypeId="2" ParentId="23313" CreationDate="2010-12-03T14:18:26.707" Score="3" ViewCount="" Body="&lt;p&gt;I'm curious about Googling &quot;syntax&quot; here.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My suspicion (and fear) is that we're not talking about what parameters a call takes (because most IDEs will prompt you there so you wouldn't Google them) but actual &quot;how to do X&quot; type things.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;IDEs have made it unnecessary to memorise precise names and parameter lists in the way that used to be required and that's made many people a bit lazy about it but that's fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But something you need to Google?  To me that's usually not syntax, that's just something you either don't really know or are only passingly familiar with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course that's not to say it's wrong to have to Google stuff - languages can be pretty broad these days and few people know everything but I would say that if you claim to be competent with a language then Google should be the exception rather than the rule.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me unless you're doing something relatively unusual, or perhaps you're rusty with the language after a period of doing something different, if you claim to &quot;know&quot; a language, you shouldn't be Googling more than 10% of stuff at most, and that should be really quite specific stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In reference to the idea that this is about having a good memory, it's not really.  It's about the sort of instinctive feel you get for something you really (rather than superficially) know.  I don't consider the fact I know how to cook a Melanzane Parmigiana without a recipe a sign that I have a good memory, it's a sign that I &lt;em&gt;understand&lt;/em&gt; how to cook that dish - they're subtly different things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, ask yourself this, would you expect to go into a restaurant kitchen and find the chef constantly looking at a cookbook?  Or to see the mechanic working on your car flicking through the Hayes manual for that model?  If I saw either of those things I'd be pretty uneasy about how good that person was.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-03T14:31:41.793" LastActivityDate="2010-12-03T14:31:41.793" CommentCount="3" />
  <row Id="23418" PostTypeId="2" ParentId="23364" CreationDate="2010-12-03T14:19:53.730" Score="1" ViewCount="" Body="&lt;p&gt;the only significant differences that I am aware of - and my information may be out of date - are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;MS Office automation/integration is easier in .NET&lt;/li&gt;&#xA;&lt;li&gt;C# supports 'unsafe' code for direct memory manipulation; Java I believe still lacks this. You don't need this often, but when you do the difference in efficiency can be incredible&lt;/li&gt;&#xA;&lt;li&gt;integration with non-VM libraries (COM/DLL/etc) seems to be easier in .NET than Java (unless JINI has vastly improved over the years)&lt;/li&gt;&#xA;&lt;li&gt;Java actually works on more than the Windows platform without being six versions out of date&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you don't need any of these things, then it doesn't matter - though Java is far less expensive for the 'official' tool set ;-)&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-03T14:19:53.730" />
  <row Id="23419" PostTypeId="2" ParentId="23404" CreationDate="2010-12-03T14:20:21.140" Score="1" ViewCount="" Body="&lt;p&gt;You're hosting his site - doesn't this incur some sort of continuing cost to you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said - I think you need to issue him a final invoice and, if he does not pay, turn the site off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Past that, if you cannot get in contact with the customer, you should find a good laywer and talk about your legal options.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Given that he's paying for the hosting, my answer becomes send him a final invoice. If he doesn't pay it, go talk to a good lawyer about your legal options. Discuss whether or not you can take the site down, should he not pay.&lt;/p&gt;&#xA;" OwnerUserId="5972" LastEditorUserId="5972" LastEditorDisplayName="" LastEditDate="2010-12-03T15:11:42.473" LastActivityDate="2010-12-03T15:11:42.473" CommentCount="6" />
  <row Id="23420" PostTypeId="2" ParentId="23351" CreationDate="2010-12-03T14:22:18.017" Score="7" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;while (stillLearning)&#xA;{&#xA;    read(some);&#xA;    practice(lots);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-03T14:22:18.017" CommentCount="2" />
  <row Id="23422" PostTypeId="2" ParentId="23344" CreationDate="2010-12-03T14:23:49.793" Score="3" ViewCount="" Body="&lt;p&gt;Citrix is an awesome platform dedicated to solving the intense pain of a very narrow slice of the industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a career path, personally I would not put all my eggs in such a tiny basket.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: all of the Citrix solutions I have encountered were considered temporary workarounds until the underlying software could be rewritten/modernized. &quot;temporary&quot; can last for decades though. There may be other uses for Citrix that I don't know about.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-03T14:23:49.793" />
  <row Id="23423" PostTypeId="2" ParentId="22146" CreationDate="2010-12-03T14:23:51.213" Score="1" ViewCount="" Body="&lt;p&gt;I've found volumes 1 and 4 of &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0471958697&quot; rel=&quot;nofollow&quot;&gt;Pattern-Oriented Software Architecture&lt;/a&gt; to be very useful.  I'm sure the other volumes are good too, I just haven't read them so I can't recommend them.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-03T14:23:51.213" CommunityOwnedDate="2011-01-22T00:43:07.640" />
  <row Id="23424" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T14:24:58.847" Score="8" ViewCount="" Body="&lt;p&gt;Good &lt;strong&gt;spatial awareness&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope I am using the correct term... It's being able to clearly visualize objects that don't exist, such as a virtual object, or a 3d object from a 2d sketch&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-12-03T14:24:58.847" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="1" />
  <row Id="23425" PostTypeId="2" ParentId="23340" CreationDate="2010-12-03T14:25:57.717" Score="1" ViewCount="" Body="&lt;p&gt;the book &quot;Don't Make Me Think&quot; is highly recommended - though I haven't read it ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the web site &lt;a href=&quot;http://useit.com&quot; rel=&quot;nofollow&quot;&gt;useit.com&lt;/a&gt; is chock full of useful/practical HCI information&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-03T14:25:57.717" />
  <row Id="23426" PostTypeId="1" AcceptedAnswerId="23441" CreationDate="2010-12-03T14:28:04.333" Score="3" ViewCount="164" Body="&lt;p&gt;So my shop uses a lot of contractors. We have a source code control server in-house, but its kind of a pain having to get contractors VPN connectivity for the sole reason that they need access to the source code server. On the other hand, I don't want to spend huge amounts of my time securing a server that's internet accessible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd rather have someone else do this. Are there any web-based source code control solutions (ala FogBugz-On-Demand, which we don't use because we've standardized on Rally) that would allow this and, hopefully, integrate with Rally?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: As a note, we are using Subversion internally. I do not want to take that server and make it available externally unless I have to - I don't have the IT support for managing the server, nor the time to do it myself. I'm looking for a hosting solution. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT 2: Also, I don't care about what source control server the hosting solution uses, necessarily (well, okay, I'll automatically reject any hosting solution based on Source Safe). If we weren't already heavily committed to Rally, I'd be proposing FogBugz-On-Demand right now.&lt;/p&gt;&#xA;" OwnerUserId="5972" LastEditorUserId="5972" LastEditorDisplayName="" LastEditDate="2010-12-03T15:08:24.363" LastActivityDate="2010-12-03T15:38:13.893" Title="Web-Based Source Control" Tags="&lt;version-control&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="23427" PostTypeId="2" ParentId="23314" CreationDate="2010-12-03T14:28:36.343" Score="0" ViewCount="" Body="&lt;p&gt;questions and answers often inspire blog posts...most of which I never get around to writing. Here's one that I did, on &lt;a href=&quot;http://www.stevenalowe.com/old-developers-any-future/&quot; rel=&quot;nofollow&quot;&gt;'old developers'&lt;/a&gt;. More will follow, time permitting.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-03T14:28:36.343" />
  <row Id="23428" PostTypeId="2" ParentId="23309" CreationDate="2010-12-03T14:30:21.130" Score="0" ViewCount="" Body="&lt;p&gt;XP/Agile is compatible with the scientific method (observe - theorize - experiment)&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-03T14:30:21.130" />
  <row Id="23429" PostTypeId="2" ParentId="23303" CreationDate="2010-12-03T14:32:41.860" Score="1" ViewCount="" Body="&lt;p&gt;they are; such languages are called &lt;a href=&quot;http://en.wikipedia.org/wiki/4GL&quot; rel=&quot;nofollow&quot;&gt;4GLs&lt;/a&gt;. &lt;a href=&quot;http://www.dataaccess.com/products.asp?pageid=784&quot; rel=&quot;nofollow&quot;&gt;DataFlex&lt;/a&gt; is my favorite, though I don't use it any more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Caveat: I helped develop the object-oriented version of DataFlex, v3.0&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-03T14:32:41.860" CommunityOwnedDate="2011-02-25T12:34:54.753" />
  <row Id="23430" PostTypeId="2" ParentId="23280" CreationDate="2010-12-03T14:33:33.030" Score="1" ViewCount="" Body="&lt;h1&gt;One&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;The one in front of you.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-03T14:33:33.030" CommentCount="1" />
  <row Id="23432" PostTypeId="2" ParentId="23404" CreationDate="2010-12-03T14:42:29.797" Score="1" ViewCount="" Body="&lt;p&gt;I would suggest that you leave it alone - totally. No support whatsoever. Software has this strange tendency to require something called maintenance and support. The day will come, sooner or later. When he comes back - and he will - then you have some more leverage.&lt;/p&gt;&#xA;" OwnerUserId="7368" LastActivityDate="2010-12-03T14:42:29.797" CommentCount="2" />
  <row Id="23433" PostTypeId="2" ParentId="23404" CreationDate="2010-12-03T14:44:06.127" Score="11" ViewCount="" Body="&lt;p&gt;You don't have a lot you can do. In the US most districts have &quot;small-claims&quot; courts where you can represent yourself so you could try legal action but be prepared to invest a lot of time into and still lose. Verbal contracts are enforceable but not always practical, which leads to your most likely solution: Write it off. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next time, use an escrow service that includes arbitration provisions. A written contract by itself won't be of much help if the amount of money is too little to justify taking it to court but you should still use one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ETA: I already commented on this but I would absolutely &lt;em&gt;NOT&lt;/em&gt; take the site down without speaking to a lawyer. While you do have an implicit contract it is not clear that you own the site or can repossess the code except by going through the courts.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-12-03T14:44:06.127" CommentCount="1" />
  <row Id="23434" PostTypeId="2" ParentId="23314" CreationDate="2010-12-03T14:53:01.143" Score="0" ViewCount="" Body="&lt;p&gt;I've written a couple of blog posts as more extended answers to SO questions to link to them from my answer (the ideal SO answer sometimes being shorter than what you actually need to write to answer some questions fully).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But for me a proper blog (as opposed to my current one which is basically &quot;this should be on the internet and I couldn't find it so I'll spend 10 minutes writing it up&quot;) would be a commitment and one which I don't have any time for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here I can come and go, answer what I like and ignore what I don't.  If I freelanced and was more concerned with building a brand for myself I suspect it would be different but right now it's not something I really think too much about.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-03T14:53:01.143" />
  <row Id="23435" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T14:55:47.723" Score="3" ViewCount="" Body="&lt;p&gt;The money. Ahh the money...&lt;/p&gt;&#xA;" OwnerUserId="7368" LastActivityDate="2010-12-03T14:55:47.723" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="4" />
  <row Id="23436" PostTypeId="2" ParentId="23404" CreationDate="2010-12-03T14:56:20.123" Score="19" ViewCount="" Body="&lt;p&gt;Either you consult with a lawyer, who will tell you what you can and should do, or you just write it off. IMO there is no middle ground.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-03T14:56:20.123" CommentCount="4" />
  <row Id="23437" PostTypeId="2" ParentId="22504" CreationDate="2010-12-03T14:58:04.663" Score="3" ViewCount="" Body="&lt;p&gt;Let's start with hire a good team of the right professionals for your project. In a typical business app you would need to hire a database developer and a dba, a QA person, a system admin, a business analysts,application developers, a UI specialist and team leads at a minimum. DBA, System Admin, business analysts and QA should be in a separate reporting chain from the development team. The development database specialist should report to the same technical lead as the application developers and UI specialist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Set up the office space. Private offices are great if you can get them (I wish you lots of luick with this), but at a minumum you needs desks, phones, computers, whiteboards and a couple of dedicated conference rooms. Make sure there is a place for lunch breaks, a refrigerator, soft drinks, snacks, and coffee available. Free soft drinks and coffee even better. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Set up dev/qa/staging and prod servers for both the application and the databases. Databases should not ever be on the same server as the applications. Depending on the size and scope of the project, you may need muliptle servers or SANs, etc for each environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As soon as servers are set up, schedule backups of the file sytem, the database and the database transaction logs. Do this the very first day things are set-up. Hire a firm like Iron Mountain to take backups off-site weekly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Set up a source control system and create a document describing how it will be used. Do not forget to insist that ALL database structural changes and data inserts for lookup type tables be in scripts in source control. This will make deployment easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Buy commercial software or download open source software for the toolset you decided to use with licenses for all the pertinent users. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Buy developer machines that are screaming fast and have two monitors. Buy at least one test user machine that is moaning slow and typical of what the users will have on their desktops. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Train you new developers in how you want things done. If you have a large enough team to have some junior developers, then schedule extra training for them and include the time in your project planning. Monitor juniors very closely for at least three months. Monotor all new employees closely for the first month. Get rid of deadwood and rogue developers as soon as possible. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Determine what needs to be done in what order (the critical path). Do not assign tasks at the end of the critical path until the tasks they depend on are complete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Create test plans and requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Set up regularly scheduled progress meetings with the clients. They deserve to know what you are doing and what the roadblocks are. Do not fail to tell them when things will be late. If you are three weeks away from a deadline and you already know you will miss it, that deficit will not magically disappear before you have to tell the client. Make sure that the client knows that added requirements means added costs and time and that every added requirement will either have to have other tasks dropped or the deadline will change by the amount of hours in the new tasks. Making this clear from the start will save lots of pain and overtime hours and cost overruns absorbed by your group and not the client.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Set up an environment to performance test, not just the speed of one user, but one where you can test the expected number of simultaneous users. Do not wait to do this testing until the day before you go live.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In project planning, assume QA will find bugs and that they will take time to fix. Do not schedule QA for only one day at the end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Create test data that is roughly the size you think the database will be. Make all developers test their code against the database of this size. Do not allow developers to only develop against a small database on their personal machines. This is a frequent cause of code that works fine until it hits production.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plan rewards into the budget. It demotivates people when they work their butts off for months and only managers get bonuses. Also say thank you frequently and in writing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may need a project management system or at least set up spreadsheets to track what you need to track. When doing the project planning, assume no more than six hours a day person in your plan. This helps account for the time that will be spent not on the project, such as vacation, sick time, holidays, HR meetings, performance reviews, etc. If you knw the project is in a period of high unavailability (say a project that runs form Nov1 - Jan 1 in the US), you may need to make extra allowances for more leave and holiday time. It is not fair to expect that developers will give up their leave and holidays and no one can predict when things such as sick time, jury duty , bereavement time etc will happen. Assume they will happen to your team on this project. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastEditorUserId="1093" LastEditorDisplayName="" LastEditDate="2010-12-03T18:41:54.167" LastActivityDate="2010-12-03T18:41:54.167" CommentCount="4" />
  <row Id="23439" PostTypeId="1" AcceptedAnswerId="23444" CreationDate="2010-12-03T15:00:53.180" Score="4" ViewCount="300" Body="&lt;p&gt;I'm a php expert, I'm developing oop php applications for over 8 years, I currently live in asia and I'm planning to go to USA, for better income in USA do you think it's good for me to learn ASP.NET too? Which one is better for me, ASP.NET or other PHP Related technologies like other advance PHP Frameworks.&lt;/p&gt;&#xA;" OwnerUserId="9071" LastActivityDate="2010-12-03T15:27:56.200" Title="I'm a PHP Expert, Do I need to learn ASP.NET for better income?" Tags="&lt;php&gt;&lt;asp.net&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="23440" PostTypeId="2" ParentId="23426" CreationDate="2010-12-03T15:02:02.993" Score="0" ViewCount="" Body="&lt;p&gt;In my opinion, there are two answers:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;use a web-aware SCM, like Git, Mercurial, SVN, or (my favorite) &lt;a href=&quot;http://www.fossil-scm.org/&quot; rel=&quot;nofollow&quot;&gt;fossil&lt;/a&gt;.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;use a web-based code project management system, like &lt;a href=&quot;http://trac.edgewall.org/&quot; rel=&quot;nofollow&quot;&gt;trac&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;in both cases you can choose between hosting them yourself (yes, you have to keep them secure, but it's not so hard beyond a reasonable firewall and an HTTP proxy), or use some hosting service.  Most are meant for publicly visible projects (some even require to be Open Source), but several offer a paid subscription to keep private projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had good experience with &lt;a href=&quot;http://repositoryhosting.com/&quot; rel=&quot;nofollow&quot;&gt;RepositoryHosting.com&lt;/a&gt;, insanely cheap, good support, simple service.  To put it simply, you get unlimited Trac projects with SCM (they offer SVN, Git and Mercurial) for a single price, just pay for the storage beyond the initial 2 Gigabytes&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-12-03T15:02:02.993" />
  <row Id="23441" PostTypeId="2" ParentId="23426" CreationDate="2010-12-03T15:02:53.547" Score="2" ViewCount="" Body="&lt;p&gt;As mentioned in the comments, there are numerious ones out there:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;https://github.com/&quot; rel=&quot;nofollow&quot;&gt;GitHub&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.svnhostingcomparison.com/&quot; rel=&quot;nofollow&quot;&gt;Subversion&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://mercurial.selenic.com/wiki/MercurialHosting&quot; rel=&quot;nofollow&quot;&gt;Mercurial&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I'd go with Hg or Git, those are more designed for being &lt;a href=&quot;http://en.wikipedia.org/wiki/Distributed_revision_control&quot; rel=&quot;nofollow&quot;&gt;distributed&lt;/a&gt; than subversion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry, have not used Rally so don't know if they would integrate.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-03T15:02:53.547" CommentCount="1" />
  <row Id="23442" PostTypeId="2" ParentId="23404" CreationDate="2010-12-03T15:03:16.220" Score="24" ViewCount="" Body="&lt;p&gt;Send a final invoice with a cover letter threatening to initiate action in small claims court (or the English equivalent). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A little googling later, there IS an English equivalent: &lt;a href=&quot;http://blogs.mirror.co.uk/investigations/howto/sue-small-claims-court.html&quot; rel=&quot;nofollow&quot;&gt;http://blogs.mirror.co.uk/investigations/howto/sue-small-claims-court.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that you probably don't even have to DO the court claim. Hopefully just the threat will show him you mean business.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-03T15:03:16.220" CommentCount="4" />
  <row Id="23443" PostTypeId="2" ParentId="23439" CreationDate="2010-12-03T15:05:05.020" Score="1" ViewCount="" Body="&lt;p&gt;It wouldn't hurt to know both, but I wouldn't wait until you are an ASP.NET &quot;export&quot; before looking for a job. If you can prove to be a competent software developer, you can pick up any language on the job, and I would assume many employers expect that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've begun learning ASP.NET and don't feel comfortable putting it on your resume, let an interviewer know that you are actively learning it. That alone lets them know you are able to take initiative.&lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2010-12-03T15:05:05.020" />
  <row Id="23444" PostTypeId="2" ParentId="23439" CreationDate="2010-12-03T15:05:24.830" Score="5" ViewCount="" Body="&lt;p&gt;dice.com has 2,501 listings for PHP, 3,843 listings for ASP.NET&lt;/p&gt;&#xA;&#xA;&lt;p&gt;so...learning ASP.NET would more than double the available jobs&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-03T15:05:24.830" CommentCount="9" />
  <row Id="23445" PostTypeId="2" ParentId="23351" CreationDate="2010-12-03T15:05:46.837" Score="2" ViewCount="" Body="&lt;p&gt;For every language you want to learn &lt;code&gt;L&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Step 1: Learn the syntax of &lt;code&gt;L&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Step 2: Write a compiler for &lt;code&gt;L&lt;/code&gt; in your favorite language.&lt;/li&gt;&#xA;&lt;li&gt;Step 3: Write a compiler for your favorite language in &lt;code&gt;L&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Step 4: Write a major project idiomatically in &lt;code&gt;L&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Bonus: Make sure the result of Step 2 is compatible with the result of Step 4.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That should pretty much cover it, get back to us with a progress report &lt;a href=&quot;http://norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;in 10 years&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If all you're after is learning to do web development, and you already know Perl and Python, you pretty much have enough for a start. I'd say start learning the ins and outs of Apache (and specifically &lt;code&gt;mod_perl&lt;/code&gt; and &lt;code&gt;mod_python&lt;/code&gt;), then get practicing. Maybe pick up a book or two on CGI programming, network communication and such, rather than specific language manuals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a final note, being a beginner is no reason not to learn Lisp. Go check out &lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book.html&quot; rel=&quot;nofollow&quot;&gt;SICP&lt;/a&gt; and the &lt;a href=&quot;http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/&quot; rel=&quot;nofollow&quot;&gt;video lectures&lt;/a&gt;. Neither assumes any level of expertise with development, or computers. In fact to quote the introduction to the video lectures&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I'd like to welcome you to this course on Computer Science. [Writes it on the board] Actually that's a terrible way to start. Computer science is a terrible name for this business. First of all, it's not a science [crosses out &quot;science&quot;]. It might be engineering or it might be art. [...] It's also not really very much about computers [crosses out &quot;computer&quot;]. And it's not about computers in the same sense that physics is not really about particle accelerators. And biology is not really about microscopes and petri dishes. &lt;em&gt;-Hal Abelson&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-12-04T13:14:26.497" LastActivityDate="2010-12-04T13:14:26.497" CommentCount="3" />
  <row Id="23446" PostTypeId="2" ParentId="23439" CreationDate="2010-12-03T15:09:16.300" Score="3" ViewCount="" Body="&lt;p&gt;Couple of points of advice, mentioned in the question but maybe not necessarily the focus.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;for better income in USA&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This does not translate to more buying power, make sure you do cost of living comparison not just income comparison.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second piece of advise is that programmers should be continual learners.  Usually the good ones find that switching languages is like changing your shoes.  We throw away the old smelly ones for the new shiny ones.  The difficult thing is paradigm shifts (functional to object, object to event driven, etc).  Learning Asp.net, Java, php, perl are not going to hurt you, but you seem to have already chosen a speciality, that's probably where you're going to make your money, having specialty knowledge in php.  There are plenty of php sites in the U.S.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-03T15:09:16.300" CommentCount="1" />
  <row Id="23448" PostTypeId="2" ParentId="23439" CreationDate="2010-12-03T15:09:56.277" Score="2" ViewCount="" Body="&lt;p&gt;You don't need to learn any technology if you don't want to and I certainly wouldn't learn something just for the money (I learn new technology, languages because to me it is fun, but I may be weird/different).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are looking for a new development platform and are in search of money, I would strongly suggest Ruby on Rails (depending on where in the States you'll go). I know in the Midwest there is a strong desire for quality Rails developers and the salary can be pretty nice. Check out this &lt;a href=&quot;http://articles.chicagotribune.com/2010-10-17/business/ct-biz-1017-out-technology-20101017_1_software-engineers-chicago-developers-tech-jobs&quot; rel=&quot;nofollow&quot;&gt;article&lt;/a&gt; from the Chicago Tribune backing up Rails. Like I said though, it may be different in different parts of the country.&lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-12-03T15:09:56.277" CommentCount="2" />
  <row Id="23449" PostTypeId="2" ParentId="23386" CreationDate="2010-12-03T15:14:59.493" Score="0" ViewCount="" Body="&lt;p&gt;I think the biggest advantage of REST is to break from RPC architectures.  REST exposes resources, not processes.  That allows you to create a loosely bound system, where changes, improvements, even failures of one part have limited (negative) impact on other parts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, a common misuse of REST is to expose your inner data structures (in the worst cases, it's a CRUD of your database, ugh).  That makes it &lt;em&gt;very&lt;/em&gt; hard to do it safely.  The 'right' use is to expose high level objects that are relevant to the part of the system you're handling, and liberally return error status codes on any inconsistency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another often-overlooked part of REST is the idempotency of most verbs.  Not only GET, but also PUT and DELETE should be exactly the same result if applied once or several times (you're free of returning a 404 if already deleted, or 'no change' if the client is PUTting the same).  That leads to robust systems and less interdependency of exact interpretations of the semantics.&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-12-03T15:14:59.493" />
  <row Id="23450" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T15:16:40.293" Score="11" ViewCount="" Body="&lt;p&gt;Programmers solve precise problems in formal languages. It's very likely that spending a significant part of your life thinking in a formal language rather than a natural language changes the way that you think overall. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an example, if someone says they &quot;hate beer&quot;, my automatic instinct is to unit test that boolean. Is &quot;hates&quot; true for all &quot;beer&quot;? What about a chocolate stout? What about porters? What about pilsners, lambics, lagers, pale ales, extra pale ales...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in a natural language, that statement actually means: &quot;I have had at least one kind of beer, which I did not like, and I am unwilling to try other beers because I believe I will not like them either.&quot; It doesn't actually mean precisely what it says, any more than my statement &quot;I love beer&quot; means that I like any particular beer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But to the programmers mind--to some degree--everything is a formal statement because much of our thinking is done in languages that only have formal statements. What we have in common is that we think in programming languages, and that changes how you perceive problems and relationships.&lt;/p&gt;&#xA;" OwnerUserId="6883" LastActivityDate="2010-12-03T15:16:40.293" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="6" />
  <row Id="23452" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T15:21:58.453" Score="4" ViewCount="" Body="&lt;p&gt;Star Trek.  Star Wars.  Not just the movies but the lines in the movies.  You know you know them.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-03T15:21:58.453" CommunityOwnedDate="2010-12-06T09:48:17.537" />
  <row Id="23453" PostTypeId="1" AcceptedAnswerId="23458" CreationDate="2010-12-03T15:23:41.447" Score="13" ViewCount="576" Body="&lt;p&gt;In pricing a service or product it is general practice to not merely charge for the effort spent and the costs involved + margin but from the value delivered down. As an independent consultant, how do you set the price of your work? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the process of determining your hourly rate as an independent software developer? If you have one, what is your hourly rate and how did you arrive at that figure? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What factors would you take into account.  Is the process of setting a hourly rate only based on balancing demand with supply so that supply (you and your time) doesn't get overwhelmed? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When are the good times to raise your rates? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there projects in which you have had to charge higher than other projects? If so, please cite examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you change your hourly rate based on what kind of development you are doing? (for example, .net programming more, and lesser for php programming)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you set hourly rates based on what type of business the client is? If so how?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you know of any relevant articles or material on the topic of charging for programming services, please post the same. &lt;/p&gt;&#xA;" OwnerUserId="6610" LastEditorUserId="6610" LastEditorDisplayName="" LastEditDate="2010-12-03T15:35:40.730" LastActivityDate="2010-12-03T16:40:50.543" Title="How Do You Determine Your Hourly Rate?" Tags="&lt;career&gt;&lt;business&gt;&lt;pricing&gt;&lt;freelance&gt;" AnswerCount="5" FavoriteCount="3" />
  <row Id="23454" PostTypeId="2" ParentId="23439" CreationDate="2010-12-03T15:27:56.200" Score="4" ViewCount="" Body="&lt;p&gt;Know both and better your chances of getting a job.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-03T15:27:56.200" />
  <row Id="23455" PostTypeId="1" CreationDate="2010-12-03T15:29:24.447" Score="12" ViewCount="377" Body="&lt;p&gt;It seems like most of the jobs I'm receiving, and most of the Internet, is still using standard HTML (HTML 4, let's say) + CSS + JS. Does anyone have any vision on where HTML5 is as a standard, &lt;strong&gt;particularly regarding acceptance and diffusion?&lt;/strong&gt; It's easy to find information about inconsistencies between implementations of HTML5 and so forth. What I want to know about is relevance of HTML5.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-12-04T16:01:06.377" Title="Relevance of HTML5: Is now the time?" Tags="&lt;html5&gt;" AnswerCount="10" CommentCount="10" FavoriteCount="1" />
  <row Id="23456" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T15:30:37.880" Score="6" ViewCount="" Body="&lt;p&gt;A few others that I'd add:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Ability to handle/enjoy abstract concepts and thoughts - After all, software is rather virtual now isn't it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Think sequentially and logically, sometimes in binary fashion,e.g. that's right or wrong with little gray between the two.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Many of us are technophiles of some form.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Enjoy conducting experiments.  How many of us have said or thought a,&quot; Will this work? Really?&quot; while trying something new.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Introversion seems to be common though I'll admit my sample size isn't that high.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-03T15:30:37.880" CommunityOwnedDate="2010-12-06T09:48:17.537" />
  <row Id="23457" PostTypeId="2" ParentId="23426" CreationDate="2010-12-03T15:30:47.803" Score="1" ViewCount="" Body="&lt;p&gt;Worth noting that &lt;a href=&quot;http://www.fogcreek.com/kiln/&quot; rel=&quot;nofollow&quot;&gt;Kiln&lt;/a&gt; is distinct from, though closely associated with, FogBugz. Based on Mercurial (though I suspect you know that already).&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-12-03T15:30:47.803" />
  <row Id="23458" PostTypeId="2" ParentId="23453" CreationDate="2010-12-03T15:36:04.863" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;In pricing a service or product it is&#xA;  general practice to not merely charge&#xA;  for the effort spent and the costs&#xA;  involved + margin but from the value&#xA;  delivered down. As an independent&#xA;  consultant, how do you set the price&#xA;  of your work?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;A combination of the above + what the market will take.  Some further answers below.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What is the process of determining&#xA;  your hourly rate as an independent&#xA;  software developer? If you have one,&#xA;  what is your hourly rate and how did&#xA;  you arrive at that figure?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I actually have a daily rate.  I start at the market rate for a senior Java developer and then added 'chunks' to that rate based on my unique selling points for a particular client if they are relevant.  So for one client my experience in open source community management is a bonus, another client values my contacts in the Java community as a whole (I co-lead the JUG in London) etc.  I also factor who the client is and what sector they are in (financials will pay more if you have relevant business experience for example).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Supply and demand also come into it, as does the length of contract.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What factors would you take into&#xA;  account. Is the process of setting a&#xA;  hourly rate only based on balancing&#xA;  demand with supply so that supply (you&#xA;  and your time) doesn't get&#xA;  overwhelmed?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No it's not just based on that one factor, it's one of many factors.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;When is it a good time to raise your&#xA;  rates?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;When you have demonstrated over a length of time that you are worth more than your original rate and the market/client can afford it.  Remember as a contractor/consultant they expect to see real value for money, it helps to be able to track your work to a tangible saving/revenue/profit.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Do you change your hourly rate based&#xA;  on what kind of development you are&#xA;  doing? (for example, .net programming&#xA;  more, and lesser for php programming)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes, the market will pay differently for different skill sets.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Do you set hourly rates based on what&#xA;  type of business the client is? If so&#xA;  how?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes, as above, investment banks and the like do pay more - but they expect more as well, if you don't deliver you're soon out the door :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HTH!&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-03T15:36:04.863" />
  <row Id="23459" PostTypeId="2" ParentId="23404" CreationDate="2010-12-03T15:36:08.733" Score="4" ViewCount="" Body="&lt;p&gt;Speak with your solicitor about this, as soon as you possibly can.  £800 is a bit too much money to let it slide.  (The FIRST thing your solicitor will say will likely be &quot;Next time, put it in writing.&quot;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Speak with your tax advisors, and make certain that you are not liable for taxes on the full £950, even though it has not been paid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Someone else suggested talking with your mutual friend.  I second this advice.  If they attend the same church (yes, it is a long shot), you might consider speaking with the pastor of the church, and asking him to speak with the two of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the hosting company is run by friends of yours, you MIGHT be able to get some traction by talking with them about the issue.  Officially, they won't be able to do anything, since he is paying them, not you, but they MIGHT be able to put some pressure on him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there is a formal or informal professional association of web designers in your area, by all means put the word out about him.  Sooner or later, he's going to need a modification to the site.  You of course are going to refuse to touch it, until he pays you the disputed amount, and then you will negotiate a written contract.  It would really help if everyone else he contacts says &quot;I heard from Miss Understood about her problem with you, and, under the circumstances, I'm sure you will understand that I have to insist on a written, enforceable contract&quot; or, better yet, &quot;I heard from Miss Understood about her problem with you, and, under the circumstances, I'm sure you will understand when I suggest you go see her for maintenance.&quot;&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-12-03T15:36:08.733" />
  <row Id="23460" PostTypeId="2" ParentId="22504" CreationDate="2010-12-03T15:36:40.853" Score="2" ViewCount="" Body="&lt;p&gt;Seeing as I've had the most problem with 3rd party libraries and their usage:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Determine the libraries and versions you're going to be using.&lt;/li&gt;&#xA;&lt;li&gt;Create the process of integrating library updates to your project.&lt;/li&gt;&#xA;&lt;li&gt;Make sure the developers are all on board the library choices.&lt;/li&gt;&#xA;&lt;li&gt;Create a beneficial channel for open discussion on technologies being used.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Why?  I can't tell you the number of times 3rd party libraries (proprietary) have had henious bugs which sent us back weeks of development time because we had no process for moving up or back down.  Or dealing with developers saying &quot;which version did you use?  Why did you use functions marked deprecated?&quot;&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-12-03T15:36:40.853" />
  <row Id="23461" PostTypeId="2" ParentId="23426" CreationDate="2010-12-03T15:38:13.893" Score="1" ViewCount="" Body="&lt;p&gt;I'm really not sure that you need to put a huge amount of effort into managing a server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If one were to run on a windows platform then its pretty much a matter of downloading &lt;a href=&quot;http://www.visualsvn.com/server/&quot; rel=&quot;nofollow&quot;&gt;VisualSVN Server&lt;/a&gt; creating the users and getting on with it. Run that on a suitable Virtual Private Server, set to run its own updates and baring backups you're pretty much done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You get what you know, you get it with a fairly minimal amount of effort (probably no more than would go into administering a hosted solution) and you have it under your own control.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-12-03T15:38:13.893" CommentCount="3" />
  <row Id="23462" PostTypeId="2" ParentId="23455" CreationDate="2010-12-03T15:38:32.100" Score="2" ViewCount="" Body="&lt;p&gt;If you want to be on the next wave of development, I believe HTML5 will be the next one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It doesn't require a plugin, and&lt;/li&gt;&#xA;&lt;li&gt;It will work on all browser-enabled mobile devices.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Coding on mobile devices (i.e. phones) is a huge pain.  It's not hard to see why.  If you've ever owned more than one phone, you know why, because your old charger won't work with the new phone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Phones are made to be deliberately incompatible with each other.  This is changing with the emergence of iPhone and Droid, but still...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft has highlighted this philosophy by &lt;a href=&quot;http://www.rethink-wireless.com/2010/10/31/microsoft-sidelines-silverlight-face-html5-progress.htm&quot; rel=&quot;nofollow&quot;&gt;throwing its weight behind HTML5&lt;/a&gt; for future phone development.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-03T15:38:32.100" CommentCount="3" />
  <row Id="23463" PostTypeId="2" ParentId="23453" CreationDate="2010-12-03T15:39:13.300" Score="2" ViewCount="" Body="&lt;p&gt;Primarily the market for the work in question dictates the rates you can charge.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The work in question will be defined by the skills you're using (technical), the industry the client is in and the value the work will deliver to them, any specific knowledge which may be needed to carry out the work and any reputation (good or bad) you may have.  Essentially the fewer people who can compete with you for the work, the more you're going to get away with charging. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So understand the market is the main thing.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As the market rises you can raise your rates.  If it falls then I wouldn't necessarily volunteer to drop them but be aware so if a client starts negotiating you know whether he really has other options - obviously if you're trying to charge $1000 a day and there are good programmers who can and will do the work for $500 you've got a tough sell on your hands.  Similarly if everyone else is charging $1000 a day you'd be missing a trick charging much less.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key thing in doing this is to understand who your competitors and therefore the people you can compare yourself to are.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-03T15:39:13.300" />
  <row Id="23464" PostTypeId="2" ParentId="23340" CreationDate="2010-12-03T15:42:01.393" Score="2" ViewCount="" Body="&lt;p&gt;There are many human-systems interaction, human-computer interaction, interaction design, and user experience masters degrees available.  Some of these degrees require a certain amount of undergraduate psychology experience including lab work.  Since many of these degrees recognize that programmers may come to them, other often allow a  path for programmers that may include submitting a portfolio or detailing professional experience.  A few might even accept a bachelors of science in computer science as the only pre-requisite.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These programs are &lt;em&gt;very&lt;/em&gt; different than a masters in computer science.  You don't usually have to program as such in them, although you may.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can often also find courses in user interfaces in masters of software engineering or computer science that will give you an overview.  These will not, however, give you UX credentials per se.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can start doing freelance design work, perhaps by entering some of the &lt;a href=&quot;http://www.designcrowd.com/&quot; rel=&quot;nofollow&quot;&gt;contest&lt;/a&gt; sites out there to build a portfolio.&lt;/p&gt;&#xA;" OwnerUserId="7506" LastActivityDate="2010-12-03T15:42:01.393" CommentCount="1" />
  <row Id="23465" PostTypeId="2" ParentId="23455" CreationDate="2010-12-03T15:44:17.700" Score="1" ViewCount="" Body="&lt;h1&gt;Yes&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Despite &lt;a href=&quot;http://joshuakehn.com/blog/view/20/W3C-Holding-off-on-HTML5&quot; rel=&quot;nofollow&quot;&gt;warnings from the W3C&lt;/a&gt; and the media &lt;a href=&quot;http://joshuakehn.com/blog/view/21/HTML-5-Privacy-Concerns&quot; rel=&quot;nofollow&quot;&gt;privacy concern scare&lt;/a&gt; I think that pushing forward with new technology is key to staying ahead of the curve. What fun is playing with non-alpha software? Get your feet wet now rather then later when the people that &lt;em&gt;did&lt;/em&gt; are leading the pack.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a ton of great features HTML5 specs bring, the least of which is &lt;a href=&quot;http://joshuakehn.com/blog/view/23/HTML5-Video-and-Kinetic-Typography&quot; rel=&quot;nofollow&quot;&gt;video and multimedia&lt;/a&gt;. You also have &lt;a href=&quot;http://joshuakehn.com/blog/view/2/WebSocket-Tutorial-with-Node-js&quot; rel=&quot;nofollow&quot;&gt;WebSockets&lt;/a&gt; which are a huge advancement in async. server communication. Now you can stream real time live data as simply as writing a quick JavaScript &lt;a href=&quot;http://nodejs.org/&quot; rel=&quot;nofollow&quot;&gt;Node server&lt;/a&gt; and a few lines of client side JS. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why delay in starting? Balance where you can leverage existing technology for backwards support and new specs to gain access to the advanced feature set supported by modern browsers.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-03T15:44:17.700" CommentCount="2" />
  <row Id="23466" PostTypeId="2" ParentId="23453" CreationDate="2010-12-03T15:45:42.890" Score="2" ViewCount="" Body="&lt;p&gt;This is what I do; it is by no means the only way or even the best way!&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;set your normal rate based on your income needs, relative value, market rates, a rational (40-hour) work week, and allow for taxes; if you're self-employed in the USA, figure taxes will take almost half of your income&lt;/li&gt;&#xA;&lt;li&gt;if the project adds tremendous value, charge a percentage of the ROI, say 2%, as long as this is more than your normal long-term hourly rate&lt;/li&gt;&#xA;&lt;li&gt;if the project is short-term and rush, charge 50%-100% more than your normal rate for schedule disruption and overtime&lt;/li&gt;&#xA;&lt;li&gt;if the project is short-term, charge 25% more than your normal rate&lt;/li&gt;&#xA;&lt;li&gt;alternately, you can bid on projects for a fixed fee (half up front!) as long as the scope is set and the schedule is reasonable. Beware the unknowns, mitigate risks, plan for interruptions and &quot;gotcha!&quot; bugs&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-03T15:45:42.890" />
  <row Id="23467" PostTypeId="2" ParentId="23455" CreationDate="2010-12-03T15:47:56.570" Score="1" ViewCount="" Body="&lt;p&gt;It depends on the application and who would be using it and what your timeline is for development. There is not much point in writing software that most of your potential customers cannot run.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-12-03T15:47:56.570" />
  <row Id="23468" PostTypeId="2" ParentId="23455" CreationDate="2010-12-03T15:49:02.040" Score="12" ViewCount="" Body="&lt;p&gt;I'd say definitely get in there and start learning some of the technologies involved.  Just be aware that 'HTML 5' right now is actually really a marketing term!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HTML 5 has not been ratified as a standard yet and although all of the major players are throwing their support behind 'HTML 5' they're all actually just implementing bits a pieces of various specs including ECMA script (Java script), CSS, HTML and a whole lot more that I'm not qualified to talk about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;MS for example released IE9 beta to great fanfare in San Fran, highlighting their awesome HTML 5 support.  Naturally their IE/GPU enhanced lovely demos didn't quite work so nice on other 'HTML 5' browsers such as the latest Chrome of FF Beta or Opera.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, um year, don't delay in starting to investigate - MS is banking on it heavily (even though they have their Silverlight platform) and I bet you'll see Adobe hedging their bets in the next few years as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For production websites that users will use tomorrow?  Um don't use 'HTML 5' yet.&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2010-12-04T13:54:16.523" LastActivityDate="2010-12-04T13:54:16.523" CommentCount="5" />
  <row Id="23469" PostTypeId="2" ParentId="23234" CreationDate="2010-12-03T15:54:29.520" Score="0" ViewCount="" Body="&lt;p&gt;In C#, the hardest feature is easily &lt;strong&gt;&lt;em&gt;generic covariance and contravariance&lt;/em&gt;&lt;/strong&gt;. Go &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/tags/covariance+and+contravariance/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;, scroll down and read the blog posts one by one from bottom to top. Make sure you understand every word of it, in particular all the examples. Warning: &lt;em&gt;your brain will hurt&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you understand all that, then try to an understanding for it in practice. Understand why you can make a covariant stack (source code is given on one of the posts on the page I linked), but not a covariant queue (at least, not without a significant speed hit).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, try to find a use for them (not trivial ^^), and then try to implement it yourself. I'll give you bonus kudos if you use it in a recursive structure, and figure out you have to 'hide' the generics from the compiler to get it all working.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do all that, congratulations! You've managed to acquire skill at a highly complicated piece of the C# language that you will probably never use again.&lt;/p&gt;&#xA;" OwnerUserId="7649" LastActivityDate="2010-12-03T15:54:29.520" CommentCount="1" />
  <row Id="23470" PostTypeId="2" ParentId="23386" CreationDate="2010-12-03T15:57:17.077" Score="1" ViewCount="" Body="&lt;p&gt;The WS-* standards really are mostly about running RPC over SOAP/HTTP. So, all the thinking that went into CORBA and J2EE and their predecessors have mostly moved to doing the same sort of things in XML. This means things like type declarations and service contracts, metadata exchange, declarative security etc. All that real &quot;enterprisey&quot; stuff. Its over-used even in the enterprise, frankly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People building an internet web application such as yourself, would almost certainly be better off using a RESTful architecture. Almost any platform can consume it and do so simply and without worrying about which version of which spec you are using and a myriad of tool-specific type conversion quirks etc.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-12-03T15:57:17.077" CommentCount="1" />
  <row Id="23471" PostTypeId="2" ParentId="23386" CreationDate="2010-12-03T15:58:04.947" Score="0" ViewCount="" Body="&lt;p&gt;Only big advantage of SOAP over the current REST implementations is that SOAP is more easily tooled -- most RESTful clients require me to understand the interface and write a client of some sort. For SOAP, I just point wsdl.exe at it and it generates classes for me.&lt;/p&gt;&#xA;" OwnerUserId="3762" LastActivityDate="2010-12-03T15:58:04.947" />
  <row Id="23472" PostTypeId="1" CreationDate="2010-12-03T15:58:42.613" Score="16" ViewCount="625" Body="&lt;p&gt;What do you when you're working with someone who tends to write stylistically bad code? The code I'm talking about is usually technically correct, reasonably structured, and may even be algorithmically elegant, but it just &lt;em&gt;looks ugly&lt;/em&gt;. We've got:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mixture of different naming conventions and titles (&lt;code&gt;underscore_style&lt;/code&gt; and &lt;code&gt;camelCase&lt;/code&gt; and &lt;code&gt;UpperCamel&lt;/code&gt; and &lt;code&gt;CAPS&lt;/code&gt; all applied more or less at random to different variables in the same function)&lt;/li&gt;&#xA;&lt;li&gt;Bizarre and inconsistent spacing, e.g. &lt;code&gt;Functioncall  (arg1 ,arg2,arg3 );&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Lots of misspelled words in comments and variable names&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;We have a good code review system where I work, so we do get to look over and fix the worst stuff. However, it feels really petty to send a code review that consists of 50 lines of &quot;Add a space here. Spell 'itarator' correctly. Change this capitalization. etc.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How would you encourage this person to be more careful and consistent with these kinds of details?&lt;/p&gt;&#xA;" OwnerUserId="6916" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-03T16:12:26.550" LastActivityDate="2010-12-04T09:35:09.793" Title="Dealing with co-workers who do not have a consistent coding style?" Tags="&lt;code-quality&gt;&lt;co-workers&gt;&lt;code-reviews&gt;" AnswerCount="17" CommentCount="7" FavoriteCount="3" />
  <row Id="23473" PostTypeId="2" ParentId="23472" CreationDate="2010-12-03T16:01:23.693" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;We have a good code review system&#xA;  where I work, so we do get to look&#xA;  over and fix the worst stuff. However,&#xA;  it feels really petty to send a code&#xA;  review that consists of 50 lines of&#xA;  &quot;Add a space here. Spell 'itarator'&#xA;  correctly. Change this capitalization.&#xA;  etc.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'd change it myself and then add a polite comment in the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;this assumes that there is already a style guide as the question stated :&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;We have a good code review system&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;So my suggestion is a last resort, I figure its just as quick to change it yourself and leave a comment, as it is to send an e-mail or whatever.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-03T16:16:53.270" LastActivityDate="2010-12-03T16:16:53.270" CommentCount="2" />
  <row Id="23474" PostTypeId="2" ParentId="23455" CreationDate="2010-12-03T16:03:22.817" Score="10" ViewCount="" Body="&lt;p&gt;Because of Mac/Steve Jobs, &quot;HTML5&quot; is a public term.  Meaning, that non-programmers (AKA clients) can recall it, and are often asking for it.  So, in that sense, even though it doesn't really exist in a standardized form, but rather WebKit and Firefox's own versions, it already is relevant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, the inconsistencies you mentioned become our problem.  There's also a major lack of software to develop common HTML5 elements. (We have to do everything by hand.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What it comes down to is this: what do the people with the money want you to do?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a real situation I've run into:&#xA;98.5% of the users of my clients website are on PCs running IE (This is actual usage stats here, this is a site for a certain niche market) and .02% of their users were on a mobile device.  And within that .02%, 90% where blackberries (Not HTML5-enabled iPhone or Android). BUT, the client owns an iPad.  So, naturally after explaining that our clients users would not benefit from the technology... I'm converting Flash content into HTML5.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? Because they'll pay hundreds of thousands to be able to show off the website on their iPad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With a totally different client I'm currently converting Flash animations/UI into WebKit animations with Javascript because they took a &quot;website&quot; class where they were told that Flash is dead and HTML5 is the future.  Meanwhile, they don't use any HTML5 compliant browsers or have any iPhones/iPads.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know you say you don't want to here about the inconsistencies between implementations of HTML5, but that's a major part of the issue.  What ever you create needs to work for your client's users.  Often, that means using Flash.  And now that Flash is going on more and more mobile devices, having many different versions of HTML5 is only going to be another stepping stone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day, HTML5 is something you should know, but you should never put your eggs in one basket.&lt;/p&gt;&#xA;" OwnerUserId="4058" LastActivityDate="2010-12-03T16:03:22.817" CommentCount="3" />
  <row Id="23475" PostTypeId="2" ParentId="23472" CreationDate="2010-12-03T16:03:24.670" Score="20" ViewCount="" Body="&lt;p&gt;I think you just have to keep doing what you are doing.  Have a clear set of coding guidelines, and enforce them during code reviews.  If a developer gets 50 or 100 lines of &quot;Add a space here&quot; and &quot;Spell 'iterator' correctly&quot; every time he tries to check something in, and he is actually not allowed to check in before all of those get fixed, eventually he'll have to start writing cleaner code just to avoid the hassle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think if you fix these things yourself, like NimChimpsky suggested, you will be cleaning up after this person forever.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-12-03T16:03:24.670" />
  <row Id="23476" PostTypeId="2" ParentId="22504" CreationDate="2010-12-03T16:04:35.100" Score="3" ViewCount="" Body="&lt;p&gt;Some things I don't see in the question and subsequent answers:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Disaster Recovery Plan. How are you backing up the dev boxes, staging, testing etc? Does every dev have what they need to work from home on the occasional snow day? Etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Training Plan. How many weeks of year of training do your devs need to keep sharp? Is anyone tracking it? (A spreadheet can suffice for most teams.) Have a mechanism for them to report (sending someone an email saying they watched 2 hours of webcasts on &quot;whatever&quot; is probably enough) and for management to plan - eg who should we send to what conference this year.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;a Tool Position. Is this a &quot;we give you all an MSDN subscription; please don't install anything else on your work machines&quot; kind of place or a &quot;we want your code but we don't care what you use to edit, compile and test it&quot; kind of place. Make and record the decision.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;as much integrated ALM as you can stand or afford. Usually the reason for the &quot;impedance mismatch&quot;, double entry, tool overlap, and swivel chair application integration is that the system grew by bits and pieces. Starting from scratch, you want to show that your people can stay in a single tool throughout the cycle. Not typing code in X, compiling with Y, testing with Z, changing the status of the work item / task with A, reporting their time spent with B, telling the person who was waiting that they can now proceed with C, trying to figure out what to do next with D, guauging overall progress with E, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-12-03T16:04:35.100" CommentCount="1" />
  <row Id="23477" PostTypeId="2" ParentId="23472" CreationDate="2010-12-03T16:05:27.620" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Agree on a coding convention&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if this is a one pager. I suggest that the whole team sit down and all agree on basic working coding convention that the whole team can use.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-03T16:05:27.620" CommentCount="2" />
  <row Id="23478" PostTypeId="2" ParentId="23472" CreationDate="2010-12-03T16:06:39.700" Score="2" ViewCount="" Body="&lt;p&gt;Sounds like you need to set up and agree to a style convention.  If you don't you'll have libraries that have 3 space indents, others that have 4, some that use Camel Case and other that use underscore_case.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-12-03T16:06:39.700" />
  <row Id="23479" PostTypeId="2" ParentId="23453" CreationDate="2010-12-03T16:10:13.200" Score="4" ViewCount="" Body="&lt;p&gt;It's not me making my hourly rates, it's the market. In bad times (e.g. around 2005), I have to step down. In 1995-2000, the .com boom, Y2K and the euro conversions caused hourly rates to skyrocket. In 2005, I had to do a Job at 65% of what I had earned in 1998 (and that job was not in any way less sophisticated). Today, I earn a lot better, fortunately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To make this a useful advice: Ask friends, relatives etc. who work in the same industry and area how much is currently the usual rate. That's the price you should ask for, most clients will accept it and only a few clients would pay more.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-03T16:10:13.200" />
  <row Id="23480" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T16:12:23.817" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Logic&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We use the logic everwhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I don't agree with @dave.b answer, but using the logic so much is something that is not very helpful when trying to get a girlfrind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specially because logic almost never can explain women behaivor&lt;/p&gt;&#xA;" OwnerUserId="7498" LastActivityDate="2010-12-03T16:12:23.817" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="3" />
  <row Id="23481" PostTypeId="1" CreationDate="2010-12-03T16:13:05.173" Score="6" ViewCount="192" Body="&lt;p&gt;I currently have a full-time job, but my company is thinking of turning me into a Contract/Consultant due to the fact that I'm now in a different city and have to work remotely. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know usually Contract positions are hired through agencies, in this case since I'll be dealing directly with my company, I told them that I'm only going to charge the same amount as if I were to get a Contract job from an agency, this way I'm still getting a competitive rate, and my company gets to pay a lower rate (no agency to collect a cut).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some background facts:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;I have a typical team - some are keener's, others not so much, the tech lead/manager try to do their best to achieve deadlines, which means work load is not always spread out evenly, but this is probably true for any team out there.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I enjoy my work so far as a software developer, I have a lot of responsibilities and I'm handed meaningful work most of the time. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;My team members are mostly young, just like me, ideally I'd like to have experienced senior developers/architects on the team to bounce ideas with, but so far that hasn't happened.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Our team produces desktop applications written in c#, this means no web applications are involved, I sometimes wonder if this means I'm &quot;pigeon-holed&quot;. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Back to the Contract possibility, I have the following concerns:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Would this actually be a good career move? (this is my biggest concern) As our HR pointed out to me, such a Contract position can be terminated once they decide that I'm not needed anymore, or if the company needs to cut budget, after which I'll have to look for new work, will &quot;Contract/Consultant&quot; on the resume hurt my job-searching? (I'll be doing more architectural / design work once I'm in this new Contract role)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I'll be working remotely most of the time, I wonder if this would hurt or help my growth to be an architect. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Should I be a sole proprietor, or should I get incorporated? What would be the advantage of either? &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;There will not be any medical/dental/other benefits (basics are covered by OHIP Canada), should I look into buying private insurance? If so how expensive would it be?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;My company is looking at putting on restrictions such as: I will not be allowed to work overtime (cannot charge more than the normal # of hours per day), I will need to pay for all expenses (other than equipment) such as travelling and courses &amp;lt;- I'm fine with the 2nd one, is the 1st one normal for Contract positions to be ask to complete your tasks but without any overtime?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Does the above sound familiar to anyone? Any suggestions/advices you can give me on what I should think about / watch out for? &lt;/p&gt;&#xA;" OwnerUserId="8514" LastEditorUserId="8514" LastEditorDisplayName="" LastEditDate="2010-12-03T16:25:14.153" LastActivityDate="2010-12-03T16:37:19.513" Title="How to go about working as a Contract/Consultant remotely" Tags="&lt;career&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="23482" PostTypeId="2" ParentId="23472" CreationDate="2010-12-03T16:20:17.807" Score="2" ViewCount="" Body="&lt;p&gt;One of my colleagues writes html in such a way that it makes my skin crawl.  Imagine my html nice and structured with two space indents, hacked to pieces by tags added to the end of mine which end on the same line or on the next like some drunk who needs to throw his arm around you to stay standing.  New lines are rarely indented but if they are, I'm sure there's some highly chaotic black hole in some part of the galaxy spitting out irrational temperature values in such a way that somehow its digits mirror the number of spaces or tabs used in such indentation by this woman.  If I'm lucky, I'll see an input tag that's closed with &quot;&lt;code&gt;&amp;lt;/input&amp;gt;&lt;/code&gt;&quot;.  Total nightmare you can understand.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nobody seems to understand this either, seeing how for most higher ups here, organized code or unorganized code to them is like the difference between us putting swiss cheese or american cheese on our sandwiches, which is to say, they could really care less.  I started letting it slide because I was stressed with another project, and I think she began to realize how difficult it was to understand code like that before she wanted to improve.  My advice would be to demonstrate &lt;em&gt;why&lt;/em&gt; it's preferable to style your code more than simply telling them to do it.&lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-12-03T16:20:17.807" />
  <row Id="23483" PostTypeId="2" ParentId="23472" CreationDate="2010-12-03T16:20:26.683" Score="2" ViewCount="" Body="&lt;p&gt;Are the changes you want to make your personal preferences or do you have an actual standard to follow? If you don't have an actual standard, then don't do this. First set a standard. Then you can get software that can be set to refactor the code to the standadrd settings (well at least of some things). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a standard, start enforcing it in code review. There is no point to having a standard if you don't enforce it in code review. This will mean a lot of extra work in maintenance as people will have to fix old code that didn't meet the standard orginally when they touch it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even without a standard, insist on fixing mispellings in variable names (I wouldn't particularly worry about comments) as they will drive everyone who touches the code crazy forever.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-03T16:20:26.683" />
  <row Id="23484" PostTypeId="2" ParentId="23367" CreationDate="2010-12-03T16:26:11.233" Score="2" ViewCount="" Body="&lt;p&gt;Why pick just one? There is a new book from Pragmatic Press that covers &lt;a href=&quot;http://pragprog.com/titles/btlang/seven-languages-in-seven-weeks&quot; rel=&quot;nofollow&quot;&gt;Seven Languages&lt;/a&gt; in Seven Weeks and offers a taste on radically different languages. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For someone that doesn't know what they might want to learn, this might be a really good starting point. Browse it and decide what makes sense for you.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-12-03T16:26:11.233" />
  <row Id="23485" PostTypeId="2" ParentId="23472" CreationDate="2010-12-03T16:27:18.147" Score="1" ViewCount="" Body="&lt;p&gt;Code beautification like &lt;a href=&quot;http://uncrustify.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;unscrutify&lt;/a&gt; will be able to solve some of your problems. If you are ready to pay for this then there are high level softwares which embed the rules in the source code itself like &lt;a href=&quot;http://www.parasoft.com/jsp/products/cpptest.jsp&quot; rel=&quot;nofollow&quot;&gt;Parasoft&lt;/a&gt;. Parasoft makes it compulsory to write the code in uniform style. You can embed your own rules too. When such tools are used the developers are forced to use uniform style. And after a while they will get used to it.  &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-03T16:27:18.147" />
  <row Id="23486" PostTypeId="2" ParentId="23481" CreationDate="2010-12-03T16:29:09.437" Score="6" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;stay visible&lt;/li&gt;&#xA;&lt;li&gt;as a contractor instead of an employee, you will be responsible for your own taxes; your compensation will need to reflect this&lt;/li&gt;&#xA;&lt;li&gt;contractors typically are responsible for their own benefits - insurance, retirement, etc; take this additional cost into consideration as well&lt;/li&gt;&#xA;&lt;li&gt;it almost sounds like they're setting up to get rid of you as soon as you can be replaced or your current project is done&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Note: &lt;strong&gt;there is no reason to change your status from employee to contractor just because you are working remotely&lt;/strong&gt;. Either someone is mistaken in their beliefs, or there's something else going on that they haven't told you. Tread lightly, and look out for #1!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-03T16:29:09.437" CommentCount="4" />
  <row Id="23487" PostTypeId="2" ParentId="23481" CreationDate="2010-12-03T16:29:43.883" Score="-1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Would this actually be a good career move?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I personally don't think it would matter to future employers that much if you were a contractor or an employee, rather what you did and became capable of doing while doing the work.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I'll be working remotely most of the time, I wonder if this would hurt or help my growth to be an architect.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Having worked remotely on solely my own tasks for the first six months of my current job, I can say I've learned much more about the workings of my company since starting to work in the office. I'm not primarily a programmer so the significance of that is a bit different but you may not be learning as much remotely.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;My company is looking at putting on restrictions such as: I will not be allowed to work overtime (cannot charge more than the normal # of hours per day), I will need to pay for all expenses (other than equipment) such as travelling and courses &amp;lt;- I'm fine with the 2nd one, is the 1st one normal for Contract positions to be ask to complete your tasks but without any overtime?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Your own expenses are normal, however if you're billing by the hour they can't expect you to never need to work overtime. So you can't expect to be paid for all your work if you go with this. Sounds like you're getting a bad deal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I did not like the uncertainty of working as a contractor. Being from the US, the significant self-employment tax and not having health benefits were also large detriments. I made the transition from contractor to employee and wouldn't want to be the former again.&lt;/p&gt;&#xA;" OwnerUserId="5747" LastActivityDate="2010-12-03T16:29:43.883" />
  <row Id="23488" PostTypeId="2" ParentId="23481" CreationDate="2010-12-03T16:32:05.243" Score="0" ViewCount="" Body="&lt;p&gt;No. 2. There are many ways to make contacts and gain experience outside the office. If your new location is limited in IT people, you'll have to network over the web. Your chances of getting promoted in your current firm are slimmer. They may feel more comfortable promoting employees.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No. 5. They want you to actually 'work' overtime, but not bill them for it? Ask that you be paid either by the hours you actually work or the work you complete. Will you have to travel back to your office on a regular basis or do you go to customer locations? The first one may be easier for you to budget, but randomly going to client sites could get costly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you feel like this is something they really want to do?&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-03T16:32:05.243" CommentCount="1" />
  <row Id="23489" PostTypeId="2" ParentId="23481" CreationDate="2010-12-03T16:37:19.513" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Would this actually be a good career move? (this is my biggest concern) As our HR pointed out to me, such a Contract position can be terminated once they decide that I'm not needed anymore, or if the company needs to cut budget, after which I'll have to look for new work, will &quot;Contract/Consultant&quot; on the resume hurt my job-searching? (I'll be doing more architectural / design work once I'm in this new Contract role)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've done both &quot;permanent&quot; and contract work, have not seen that it hurts on the resume.  If you have short term contract (I had one that lasted one month) there may actually still be people out there that will ding you in an interview for this, be prepared to explain.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I'll be working remotely most of the time, I wonder if this would hurt or help my growth to be an architect.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Don't know that it would do either.  Will probably give you more time to work since you're losing the commute.  That could be a good or bad thing.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Should I be a sole proprietor, or should I get incorporated? What would be the advantage of either?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I would definitely look to be some form of corporation, it insulates you from being sued personally and losing your personal property (in U.S.).  Make sure checks are made out to the business name, not you personally.  You appear to be in Canada, so I don't know the laws or the tax situation there, you will need to look into it.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;There will not be any medical/dental/other benefits (basics are covered by OHIP Canada), should I look into buying private insurance? If so how expensive would it be&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes, there are organizations like &lt;a href=&quot;http://www.nase.org&quot; rel=&quot;nofollow&quot;&gt;NASE&lt;/a&gt; in the U.S. for this, find one in your country.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;My company is looking at putting on restrictions such as: I will not be allowed to work overtime (cannot charge more than the normal # of hours per day), I will need to pay for all expenses (other than equipment) such as travelling and courses &amp;lt;- I'm fine with the 2nd one, is the 1st one normal for Contract positions to be ask to complete your tasks but without any overtime?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Don't know about overtime, are you talking about getting paid time and a half for over 40?  I would think that's unusual on contracts, you should be billing from a corporation, anything you bill would be for same rate.  Now not billing over 40 (or whatever) hours I think is unusual.  Just don't work more than that, and make sure your estimates are good and you update the estimates when necessary.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-03T16:37:19.513" CommentCount="3" />
  <row Id="23490" PostTypeId="2" ParentId="23472" CreationDate="2010-12-03T16:39:28.517" Score="2" ViewCount="" Body="&lt;p&gt;Coding standards need to be identified so everyone knows what they are and then they need to be enforced. There should be consequences to not following the rules. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are the things that should provide some incentive:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Code reviews will be tedious and longer than necessary.&lt;/li&gt;&#xA;&lt;li&gt;Code will be rejected more often.&lt;/li&gt;&#xA;&lt;li&gt;Schedules will not be met.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If this person either doesn't have to worry about this because no one enforces your rules or they don't care if they are unproductive (and no one does anything about that), there's not much you can do about it.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-03T16:39:28.517" />
  <row Id="23491" PostTypeId="2" ParentId="23453" CreationDate="2010-12-03T16:40:50.543" Score="1" ViewCount="" Body="&lt;p&gt;Ask around your area and see what others are charging or just guess. If you are getting more work than you can handle, you're not charging enough.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-03T16:40:50.543" />
  <row Id="23492" PostTypeId="2" ParentId="23313" CreationDate="2010-12-03T16:43:53.637" Score="0" ViewCount="" Body="&lt;p&gt;Syntax is just the view on top of the language's underlying semantics because programming is all about using the underlying semantic bricks to build something. If you don't understand the fundamental concepts the language uses then it doesn't matter how good you are at memorizing syntax, your code will be a horrible mess. As someone once said, &quot;Good programmers have an interpreter and a compiler in their head.&quot; Notice how there is no mention of syntax because that's not where the real work happens.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastEditorUserId="7146" LastEditorDisplayName="" LastEditDate="2010-12-16T03:56:05.387" LastActivityDate="2010-12-16T03:56:05.387" />
  <row Id="23493" PostTypeId="2" ParentId="23472" CreationDate="2010-12-03T16:47:48.480" Score="2" ViewCount="" Body="&lt;p&gt;LOL. You would absolutely hate my code. I can't spell to save my life and I don't care.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I know some people do actually care about those things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suggest you fire the person writing that ugly code if they don't change then find somebody that makes things really pretty and hope they can write code that&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;is usually technically correct,&#xA;  reasonably structured, and may even be&#xA;  algorithmically elegant&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;and if they can't then at least you can show the broken pretty code to the customer and sell them on that!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But seriously. Focus on the actually important things first. If you can't find a good, solid reason outside &quot;it hurts my delicate sensibilities&quot; then ignore it for now. If it is actually important then sit down with the person and convince them of that importance. Things like standards that make it easy to tell the difference between class level, method level, shared, constant variables do make a difference. If the coder in question cares at all about his/her profession they will understand and try to do the right thing.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastEditorUserId="5184" LastEditorDisplayName="" LastEditDate="2010-12-03T16:53:05.187" LastActivityDate="2010-12-03T16:53:05.187" CommentCount="5" />
  <row Id="23494" PostTypeId="2" ParentId="23276" CreationDate="2010-12-03T16:48:35.100" Score="1" ViewCount="" Body="&lt;p&gt;Where I work, the title &lt;strong&gt;Team Lead&lt;/strong&gt; is often a completely artificial title applied to developers that don't want to get on the management track and don't want to spend time managing direct reports.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You become a team lead by being the defacto developer on the team to ask when there are technical, business or process issues. And you know you have reached that point when you tell someone on your team &lt;em&gt;No, I don't think you should do it that way&lt;/em&gt; and they respect your opinion enough to take your suggestion more often than not. Likewise, you know your manager sees you in that role when you can tell him &lt;em&gt;Have Bob do that rather than Ted, Bob will do a better job&lt;/em&gt; and he adjusts the project plan because he knows you know the team better.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-12-03T16:48:35.100" />
  <row Id="23496" PostTypeId="2" ParentId="23472" CreationDate="2010-12-03T17:01:16.353" Score="4" ViewCount="" Body="&lt;p&gt;I think conventions such as naming of classes and variables are important and should be followed through, elegant and efficient code too,  but at the risk of having my answer downvoted many times, I have to say that in general the &quot;pretty code&quot; paradigm that is pushed a lot around is in IMHO very overrated. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;First off, the developer who wrote it will have to maintain it in the first place, and if he is ever hit by a bus and another programmer cannot figure out how it works because the code is not &quot;pretty&quot;, I'd say that the other developer is not very good anyway. And there is a lot of automated formatters/beautifiers out there, so anyone can use those to beautify the code if necessary, w/o wasting time while being &quot;in the flow&quot;/&quot;in the zone&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Please note that I'm not advocating spaghetti/cowboy style coding here, in fact I've seen some very nicely formatted spaghetti code (function bodies spanning 4-5 screens, global variables scattered around different source code files, generally bad picks of names, etc).&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-03T17:01:16.353" CommentCount="2" />
  <row Id="23499" PostTypeId="2" ParentId="23276" CreationDate="2010-12-03T17:16:33.553" Score="2" ViewCount="" Body="&lt;p&gt;You have to best the previous leader in either a challenge of strength or a game of wit.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-12-03T17:16:33.553" CommentCount="1" />
  <row Id="23501" PostTypeId="2" ParentId="23472" CreationDate="2010-12-03T17:21:46.213" Score="0" ViewCount="" Body="&lt;p&gt;My solution when dealing with outsourced resources that didn't give a &amp;amp;%$# about formating (or easily preventable bugs for that matter) was to have the build server enforce this. I created a CI server job that ran every night that checked the code out, ran Jalopy and findbugs then checked the code back in. Once the other team learned that not using the standard code conventions would make their job harder, they started to use their IDE to maintain a standard format.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-12-03T17:21:46.213" />
  <row Id="23502" PostTypeId="2" ParentId="23295" CreationDate="2010-12-03T17:23:15.647" Score="1" ViewCount="" Body="&lt;p&gt;There are two types of upgrade to consider here:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Upgrading the solution to a different version of studio&lt;/li&gt;&#xA;&lt;li&gt;re-factoring the solution to run on a newer framework&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In the later versions of visual studio you can upgrade the solution to VS10 and still target a previous framework.  I do this frequently as I don't enjoy having every single version of the IDE on my main box.  On most projects this upgrade is done correctly through the wizard that you get if you open an older studio solution in the newer studio.  I do this as soon as everyone has installed and is comfortable with a higher version generally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Re-factoring to take advantage of the newer framework is more tricky and I would not necessarily do it unless I was undertaking a significant change already as there are often many adjustments that have to be made manually after the change in target.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-12-03T17:23:15.647" CommentCount="1" />
  <row Id="23503" PostTypeId="2" ParentId="23455" CreationDate="2010-12-03T17:23:19.707" Score="2" ViewCount="" Body="&lt;p&gt;ONLY if you are prepared to deal with inconsistencies across the browsers. And then add a flash backup anyway for IE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I agree with @Pierre 303 - wait a year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, if you are building something new, you &lt;a href=&quot;http://html5doctor.com/how-to-use-html5-in-your-client-work-right-now/&quot; rel=&quot;nofollow&quot;&gt;build with html5 in mind&lt;/a&gt; by adding the bits here and there which are standardized.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Background:&#xA;&lt;br /&gt;We were one of those clients spoken of, asking for an ipad compatible interface even though most of our users are on IE7/8. Thing is, the agency said it'd be a two week project but it turned into two months as they ironed out all the inconsistencies. In the end the interface works and looks great, but the agency isn't signing up for html5 projects anymore. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;p.s.&#xA;I disagree a little with @Ben. If our agency had told us in the beginning that it would take 2 months instead of 2 weeks, we would have said no. Educate your clients! (but of course accept their money if they stupidly insist.)&lt;/p&gt;&#xA;" OwnerUserId="3244" LastEditorUserId="3244" LastEditorDisplayName="" LastEditDate="2010-12-03T17:28:55.893" LastActivityDate="2010-12-03T17:28:55.893" />
  <row Id="23504" PostTypeId="2" ParentId="8301" CreationDate="2010-12-03T17:27:30.933" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Tech Support&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So much of my day is wasted by taking tech-support calls... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some popular ones are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;My account is locked out&quot; or &quot;I forgot my password&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;My [phone|keyboard|mouse|computer] doesn't work&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;My computer is slow, can you check it out for anything unusual?&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;Why does X happen when I click this button? It should be doing Y&quot; &lt;/li&gt;&#xA;&lt;li&gt;&quot;I keep getting these popups....&quot; or &quot;I think I have a virus&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;This person is no longer here, can you disable all their stuff?&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;We have a new employee, can you set them up with login, security card, phone ext, email, etc?&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-12-03T17:27:30.933" />
  <row Id="23505" PostTypeId="2" ParentId="23304" CreationDate="2010-12-03T17:36:09.597" Score="2" ViewCount="" Body="&lt;p&gt;There's also &lt;a href=&quot;http://www.aidaweb.si/&quot; rel=&quot;nofollow&quot;&gt;Aida&lt;/a&gt; and &lt;a href=&quot;http://www.iliadproject.org/&quot; rel=&quot;nofollow&quot;&gt;Iliad&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-12-03T17:36:09.597" />
  <row Id="23506" PostTypeId="1" AcceptedAnswerId="33788" CreationDate="2010-12-03T17:38:10.517" Score="0" ViewCount="263" Body="&lt;p&gt;It is my first time writing an &lt;em&gt;article&lt;/em&gt; on a software project. I am supposed to use &lt;a href=&quot;http://www.ubicomp2010.org/templates&quot; rel=&quot;nofollow&quot;&gt;ACM UbiComp paper format&lt;/a&gt;. I already have a structure that I should follow and there is a &lt;strong&gt;Background &amp;amp; Research Methods&lt;/strong&gt; section after Abstract, Introduction, Related Work sections. I have browser through several articles, but some of them either dont have it, have only background section or have only research methods section. &lt;strong&gt;I am having hard time to find an article that has this section and moreover what I must write on here&lt;/strong&gt;. My project is about Bluetooth location tracking and I do have the implementation and evaluation, so it is not something theoretical.&lt;/p&gt;&#xA;" OwnerUserId="9082" LastEditorUserId="9082" LastEditorDisplayName="" LastEditDate="2010-12-03T17:47:02.117" LastActivityDate="2011-01-05T05:33:35.733" Title="Background &amp; Research Methods section (Writing an Article)" Tags="&lt;computer-science&gt;&lt;articles&gt;" AnswerCount="1" CommentCount="8" FavoriteCount="0" />
  <row Id="23507" PostTypeId="1" CreationDate="2010-12-03T17:38:16.773" Score="9" ViewCount="343" Body="&lt;p&gt;I know how we start with JavaScript, we cut-and-paste a snippit to gain a little client-side functionality or validation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you follow this path in trying to implement rich interactive behavior, it doesn't take long before you realize that you are creating a Big Ball Of Mud.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what is the path towards expertise in programming the interaction layer?  What books, tutorials, exercises, and processes contribute towards the ability to program robust, maintainable JavaScript?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We all know that practice is important in any endeavor, but I'm looking for a path similar to the answer here: &lt;a href=&quot;http://stackoverflow.com/questions/2573135/&quot;&gt;http://stackoverflow.com/questions/2573135/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2329" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-12-03T18:14:08.957" LastActivityDate="2010-12-16T07:00:53.343" Title="What is the path to JavaScript mastery?" Tags="&lt;javascript&gt;&lt;software-craftsmanship&gt;" AnswerCount="7" CommentCount="8" FavoriteCount="4" />
  <row Id="23508" PostTypeId="2" ParentId="23472" CreationDate="2010-12-03T17:39:21.373" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;The code I'm talking about is usually technically correct, reasonably structured, and may even be algorithmically elegant...&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Be happy that you got all of that.  Most programmers will maybe give you the first thing on that list.  I think that variable naming and spacing is the least important thing to worry about.&lt;/p&gt;&#xA;" OwnerUserId="360" LastActivityDate="2010-12-03T17:39:21.373" CommentCount="5" />
  <row Id="23509" PostTypeId="2" ParentId="23507" CreationDate="2010-12-03T17:49:27.417" Score="1" ViewCount="" Body="&lt;p&gt;A lot of the techniques which make a programmer an expert in a given language can be applied here, though javascript has a couple pearls which allow it to be used to extraordinary effect.  Perhaps one of the biggest hurdles that I've had to surpass using javascript was to undo my &quot;C&quot; programming mentality, which is to say, a thousand tiny functions cramped into a single js file.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some general advice is to abstract whenever you can, and try to &lt;a href=&quot;http://www.phpied.com/3-ways-to-define-a-javascript-class/&quot; rel=&quot;nofollow&quot;&gt;form classes&lt;/a&gt; whenever you can to organize general behavior.  Create new js files for any functionality which can be used to good effect in your other js files (within reason) and avoid global variables if at all possible.  I would highly recommend you learn &lt;a href=&quot;http://jquery.com/&quot; rel=&quot;nofollow&quot;&gt;jQuery&lt;/a&gt; if you haven't already.  It's a tool I've grown to love and now I wouldn't do without. It's an extremely flexible extension of javascript which lets you simplify your code tremendously which is good for simplicity and being able to code quickly and efficiently as well.  jQuery comes with a large plugin library which allows you to do many things which couldn't be more impressive if you did it in flash.  Check out &lt;a href=&quot;http://jqueryui.com/&quot; rel=&quot;nofollow&quot;&gt;jQuery UI&lt;/a&gt; for an entire theme system for your site, allowing you to effectively modify the entire layout of your site without doing much at all.  Comes included with a lot of animation effects and handy controls commonly used on web sites (date picker, button, progress bar, etc.), most of which can be activated using a single line of javascript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope that helps!&lt;/p&gt;&#xA;" OwnerUserId="6967" LastEditorUserId="6967" LastEditorDisplayName="" LastEditDate="2010-12-03T17:56:18.223" LastActivityDate="2010-12-03T17:56:18.223" />
  <row Id="23511" PostTypeId="2" ParentId="23344" CreationDate="2010-12-03T17:57:59.117" Score="1" ViewCount="" Body="&lt;p&gt;If you really want to be a developer,being a Citrix support technician is not an option. Especially if you have to spend a lot of time for certification before there is a significant salary. Not saying you shouldn't take a non-development job while training and/or waiting for a programming job, but don't do something that will get in that career path.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-03T17:57:59.117" />
  <row Id="23512" PostTypeId="2" ParentId="23455" CreationDate="2010-12-03T17:59:23.907" Score="0" ViewCount="" Body="&lt;p&gt;I think HTML 5 is the future; but as other posts have said it's not prime time yet.  Rich Internet Applications (RIA) are coming into greater demand and I use to think Flash/Flex would win that battle over Silverlight and JavaFX.  But the iPhone and iPad changed all of that.  Flash is out and the HTML 5 canvas tag is its successor.&lt;/p&gt;&#xA;" OwnerUserId="8776" LastActivityDate="2010-12-03T17:59:23.907" />
  <row Id="23513" PostTypeId="2" ParentId="23507" CreationDate="2010-12-03T18:03:23.433" Score="10" ViewCount="" Body="&lt;p&gt;read other peoples code (&lt;strong&gt;A LOT&lt;/strong&gt;) and try to get an understanding of what they are doing, and why they are doing it. Write your own code (&lt;strong&gt;A LOT&lt;/strong&gt;) try out new concepts and ideas, above all play and have fun. The best way to get better at something is to practice, practice, and then practice some more. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read books, tutorials, articles, blogs, RSS feeds, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Create some project to work on in your spare time.  If you can't think of something, find an open source project you might be interested in working on.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;also, don't get discouraged and above all, remember &quot;mastery&quot; is not a destination, but a journey--take it at your own pace, have fun, and enjoy the scenery. If you take it &lt;em&gt;too&lt;/em&gt; seriously, you will get burnt out and that does nobody any good.&lt;/p&gt;&#xA;" OwnerUserId="882" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-03T18:29:03.753" LastActivityDate="2010-12-03T18:29:03.753" CommentCount="7" />
  <row Id="23514" PostTypeId="2" ParentId="23507" CreationDate="2010-12-03T18:05:02.307" Score="1" ViewCount="" Body="&lt;p&gt;First off, you need to know what your goal in regards to learning JavaScript is going to be. If you are just looking to do some input validation and make the UI a bit easier on the user then you really don't need to have a full in-depth understanding of the language if you are using frameworks such as &lt;a href=&quot;http://jquery.com/&quot; rel=&quot;nofollow&quot;&gt;jQuery&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, if you want to gain a solid understanding o JavaScript, then try and &lt;a href=&quot;http://www.learningjquery.com/2007/10/a-plugin-development-pattern&quot; rel=&quot;nofollow&quot;&gt;write an extension to an existing framework&lt;/a&gt; that implements a useful tool. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of books and other resources, I haven't really heard of much in the way of useful books and generally I've learned the language though trying to solve problems and checking to make sure my code is clean according to &lt;a href=&quot;http://www.jslint.com/&quot; rel=&quot;nofollow&quot;&gt;JSLint&lt;/a&gt;. A combination of an interesting problem (e.g. framework extension), JSLint, and enough time to get some solid practice in is likely going to be your best bet in terms of learning the language.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-12-03T18:05:02.307" />
  <row Id="23516" PostTypeId="2" ParentId="8301" CreationDate="2010-12-03T18:11:23.813" Score="2" ViewCount="" Body="&lt;p&gt;Never wear more &quot;hats&quot; than you can reasonably handle and are comfortable with, trying to pigeon hole developers by saying that they shouldn't do &lt;em&gt;A&lt;/em&gt; or &lt;em&gt;B&lt;/em&gt; means that a great UI designer might go unnoticed because someone thinks that programmers should stay away from the UI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day everyone is going to have different strengths and weaknesses and a good manager/supervisor/team leader should know the best way to direct the people working for them to ensure that talents are being used appropriately. Likewise, if you are not comfortable with designing UIs or dealing with the end users, then let you team know so you can minimize your role in that area. However, you should be prepared to pick up some additional work in another area. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you are wearing too many hats (e.g. programmer, UI designer, tester, business analyst, etc) then you are either going to do poorly at some of them, or you will burn yourself out. Make sure that you know how many hats you can handle and try to keep the workload around that level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond that, there really are no &quot;hats&quot; that a developer shouldn't wear if they have the skills to excel in that role.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-12-03T18:11:23.813" />
  <row Id="23517" PostTypeId="2" ParentId="23404" CreationDate="2010-12-03T18:13:19.797" Score="1" ViewCount="" Body="&lt;p&gt;Miss Understood, if i were you i would hold something behind your hand. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since he has appeared to be such a louzy, verbal contract breaker, and much more than that, such an un-ethically abusive client who raises the demands ( changes the verbal contracts ) while lowers the payment, there is unfortunately no reason to think he will quickly become a very honest person overnight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;So, here is what to do:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; 1. dont care the empty webspace, anybody&#xA;    can host that empty space.&#xA;&#xA; 2. pull everything YOU have designed to another&#xA;    webspace and redirect his webspace&#xA;    in full secrecy towards your own&#xA;    webspace (if you have the webspace&#xA;    for this, would be great)&#xA;&#xA; 3. THEN send a warning signal and give him a term to fulfil the&#xA;    payment, or else you will rais the&#xA;    charges for the raised requirements.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The world is filled with such kind people like yourself Miss Understood.&#xA;Such a pity louzy clients abused the kindness. They don't deserve the title client. He is not a client, just a clouzy. they are two different kinds, and you should deal with them differently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Leave your kindness for good clients, who not only appreaciate your vision, but also will never abuse them. I have seen such things so many times i can spot such case right from the start nowadays and dont fall into the old traps anymore.  Furthermore i would advise AGAINST any kinds of lawers you have to hire, those advising you have never done it i guesse. Most of them just want your money and you will end up paying them, after that person has payed you, no way that can be called EVEN.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Above all this, i hope you have not lost your creative passion and will move on after this somewhat-bitter experience, knowing that the world is filled with good, honest people, and navigate your sensors from now on more strongly towards them. Cheers, Sam&lt;/p&gt;&#xA;" OwnerUserId="9083" LastEditorUserId="9083" LastEditorDisplayName="" LastEditDate="2010-12-03T18:18:44.023" LastActivityDate="2010-12-03T18:18:44.023" />
  <row Id="23518" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T18:13:44.447" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.wired.com/wired/archive/9.12/aspergers_pr.html&quot; rel=&quot;nofollow&quot;&gt;The Geek Syndrome&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Autism - and its milder cousin&#xA;  Asperger's syndrome - is surging among&#xA;  the children of Silicon Valley. Are&#xA;  math-and-tech genes to blame?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6980" LastActivityDate="2010-12-03T18:13:44.447" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="4" />
  <row Id="23519" PostTypeId="2" ParentId="23472" CreationDate="2010-12-03T18:30:27.673" Score="2" ViewCount="" Body="&lt;p&gt;I call BS on everyone who said that variable name spelling errors and formatting don't matter. Obviously, they've only read their own code. And notice that word right there - read. Imagine reading a book with lots of spelling mistakes, mish-mashed formatting, inconsistent line spacing, and various other laziness prevalent in a lot of source code. It would be tedious.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a profession where your syntax must be 100% correct to work, there is simply no excuse for any real developer to not have a clean, consistent code style. Anything else is sloppiness and laziness. I always question sloppily formatted code's correctness in implementation.&lt;/p&gt;&#xA;" OwnerUserId="4202" LastEditorUserId="5185" LastEditorDisplayName="" LastEditDate="2010-12-04T09:35:09.793" LastActivityDate="2010-12-04T09:35:09.793" />
  <row Id="23520" PostTypeId="2" ParentId="23404" CreationDate="2010-12-03T18:33:25.500" Score="2" ViewCount="" Body="&lt;p&gt;You mentioned &quot;After getting all the requirements I accepted to build the website for £950 &quot;.  Did you exchange requirements discussions and the number 950 in EMails?  Do you have Emails of the constant changing requirements requests?  In absence of a contract, I think (please check with a lawyer) these represent an agreement to do the work from both sides, since the client can not deny asking you to do the work.  If you can reproduce the ongoing &quot;negotiation&quot; of requirements and delivery through an EMail trail, a lawyer might be able to prove intent.  I realize the lawyer may cost more than the payment, but this may be your only foundation for the case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would agree with the other posters recommending &lt;em&gt;against&lt;/em&gt; shutting down the site.  While you have some rights to the software, that doesn't give you the right to directly access his site/servers (since he pays the bill for them) to get your software back.  This would be similar to someone stealing something from me and then I break into their house to get it back.&lt;/p&gt;&#xA;" OwnerUserId="6145" LastActivityDate="2010-12-03T18:33:25.500" />
  <row Id="23521" PostTypeId="2" ParentId="23507" CreationDate="2010-12-03T18:42:22.260" Score="1" ViewCount="" Body="&lt;p&gt;Before you learn any of the web development details (DOM etc.) learn the core language. You can learn in many ways - books, &lt;a href=&quot;http://www.virtuosimedia.com/tutorials/15-essential-javascript-video-tutorials&quot; rel=&quot;nofollow&quot;&gt;videos&lt;/a&gt; etc. You will, of course, need to read and write code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ECMAScript (that's the name of the language standard - javascript refers to several implementations) is a very interesting language. It is a dynamic, functional and a prototype based object oriented language, therefore, you should take your time to understand the principles of these paradigms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn using an interactive console in your browser (in Chromium, you can access this by pressing &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;J&lt;/kbd&gt;) which is similar to tools like IRB and the interactive Python interpreter. This is useful for testing language features and debugging.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use &lt;a href=&quot;http://www.jslint.com/&quot; rel=&quot;nofollow&quot;&gt;JSLint&lt;/a&gt; to quality check your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you start doing 'real' development using DHTML, make your life easier by using a framework, such as &lt;a href=&quot;http://jquery.com/&quot; rel=&quot;nofollow&quot;&gt;JQuery&lt;/a&gt;, to handle the frustrating cross browser issues.&lt;/p&gt;&#xA;" OwnerUserId="5536" LastEditorUserId="5536" LastEditorDisplayName="" LastEditDate="2010-12-03T19:09:24.177" LastActivityDate="2010-12-03T19:09:24.177" />
  <row Id="23522" PostTypeId="2" ParentId="23472" CreationDate="2010-12-03T18:54:06.190" Score="2" ViewCount="" Body="&lt;p&gt;I'd be tempted to suggest having a private chat and see if both of you could find a root cause:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Is the co-worker rushed and because someone wanted the code yesterday the person is trying to get something working as fast as they can?  This can be an opportunity to inform this person to focus more on quality than speed in their work.  A mantra like, &quot;Take your time,&quot; could be useful if this isn't counter-productive.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;How does the person view their work?  If there is a sense of pride, then you may have an angle to use in getting one to improve.  If it is just a job that pays the bills, it may be a lot harder to get changes.  Do they know they aren't doing a great job but are so close to it?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Does this person disagree with the conventions and is trying to code in protest?  If so, then you may have a big problem, but this is worth finding out if this is the case or is the person merely lazy?  What kinds of motivation may be useful here,e.g. could you appeal to greed, pride, or some other vice to get the person to improve.  This is sneaky but possibly effective if trying the nice guy route gets one nowhere.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/How_to_Win_Friends_and_Influence_People&quot; rel=&quot;nofollow&quot;&gt;How to Win Friends and Influence People&lt;/a&gt; has a few suggestions in terms of being persuasive that may work, such as praising improvements and giving the person a fine reputation to uphold.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;As for why this has to be done privately, here are a few reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;There is a good chance for humiliation, criticism or other unpleasantness that is better kept behind a door than left out in the open where someone may feel their character is being assassinated.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You want to encourage this other person to open up a bit.  A challenge here is that some people are so guarded it can take a long time to get them to take their walls down.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If possible, I'd suggest trying to do this a little away from the office.  Go out for lunch, take a walk, or do something so that the surroundings are altered enough that the person may feel a bit more comfortable.  This can be a challenge and requires knowing the person, but the idea here is that in the office some people will wear a work mask that isn't likely to be helpful here.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Be prepared for the conversation to get rather heated or ugly, but this could well be a good sign if you can keep the other person engaged and have a good dialogue.  Some people like to keep things out in the open and others may prefer more subtle ways of getting things done.  The key is to make sure you are listening to the other person enough to empathize and try to understand their side.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-03T18:54:06.190" />
  <row Id="23523" PostTypeId="1" AcceptedAnswerId="23612" CreationDate="2010-12-03T19:05:27.463" Score="5" ViewCount="576" Body="&lt;p&gt;I am currently a 3rd year computing science student at a Canadian University. I find it quite challenging, and extremely interesting. One thing  that i have noticed is that each person i speak to that took a class 3 or so years ago learned much less than i did in the same class, and people who are taking 1st year classes are doing more than i remember doing in my 1st year classes. Is this just me remembering stuff bad, or do you believe that getting a computing science degree was easier 10 (or even 5) years ago? &lt;/p&gt;&#xA;" OwnerUserId="9087" LastActivityDate="2011-05-02T13:45:54.743" Title="Was getting a computing science degree easier 10 years ago" Tags="&lt;computer-science&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="2" />
  <row Id="23524" PostTypeId="2" ParentId="8301" CreationDate="2010-12-03T19:05:33.873" Score="2" ViewCount="" Body="&lt;p&gt;As I've gotten older, I've realized that is is best if developers don't do their own deployments (I fought this one tooth and nail). They should not have any rights to the production database except select rights. Our code got a lot less buggy (and the same thing didn't crop up multiple times because the change was only made in prod and a later dev deployment overwrote it again then fixed only on prod in a hurry, rinse and repeat)when we had to start giving it to other people to deploy and not being allowed to make quick fix production changes because the deployment wasn't quite right. Further we stopped having those accidental &quot;updates without the where clause highlighted that changed every record in the table&quot; issues.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-03T19:05:33.873" CommentCount="1" />
  <row Id="23525" PostTypeId="2" ParentId="23472" CreationDate="2010-12-03T19:18:03.363" Score="1" ViewCount="" Body="&lt;p&gt;If you use Eclipse, then enable Save Actions for the Java Editors, and tell everybody to use it.  This fixes formatting issues on every save, but does not fix bad capitalization.  It might be quite helpful though!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/GySDY.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-03T19:18:03.363" />
  <row Id="23526" PostTypeId="2" ParentId="23523" CreationDate="2010-12-03T19:18:29.743" Score="0" ViewCount="" Body="&lt;p&gt;Good question.  Given that I graduated 13 years ago, I do remember a lot of what I took pretty well, so I could likely compare some things but there are a lot of differences.  There are some advances in the field that encourage a shift to some degree in terms of what courses should there be and how should this all flow.  Another side is that the administrators of the program may try to improve things by adding another course here or there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you look at what Waterloo has today and what I took, there are more than a few differences.  Man-made things tend to evolve and why shouldn't university programs be like that?  In my day, this is the break down of my CS course run: 2 first-year(130/134), 2 second-year(246/241), 6 third-year(340/342/351/354/360/370) and then 4 fourth-year(464/466/486/487).  Now, there were also a bunch of Math courses there too, but &lt;a href=&quot;http://www.ucalendar.uwaterloo.ca/0708/MATH/comp_sci.html&quot; rel=&quot;nofollow&quot;&gt;2007-2008&lt;/a&gt; lists 5 courses at the second year level, in addition to some other changes and that was only a few years back.  I'd have had to take a different 4th year course as I didn't take any 4th year courses involving programming directly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would it be harder today?  I don't think so, but there are more than a few other changes that would also impact things as in my day there was Grade 13 in Ontario high schools that was very similar to first year university in some subjects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://compsci.ca/v3/index.php&quot; rel=&quot;nofollow&quot;&gt;Compsci.ca&lt;/a&gt; may be a good place to ask this if you want to compare Canadian schools as the creators are from Canadian schools and some alumni may have had their degrees from years back.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-03T19:18:29.743" CommentCount="1" />
  <row Id="23527" PostTypeId="1" AcceptedAnswerId="23576" CreationDate="2010-12-03T19:29:21.977" Score="3" ViewCount="205" Body="&lt;p&gt;So Software Engineering (SE) started back at that &lt;a href=&quot;http://www.psexam.com/Notes-for-Computer-Science/operating-systems-history-of-operating-system-article/1960s-%E2%80%93-Garmisch-Conference-The-Concept-of-Software-Engineering.html&quot; rel=&quot;nofollow&quot;&gt;NATO conference in Garmisch&lt;/a&gt; in 1969 and has grown into its own Academic field with Master's and even Bachelor's programs now.  It has contributed Object-Oriented programming, CMMI, Use Cases, etc.  But there seems to be a movement or mood against it since the advent of Agile.  What's your take?  Still relevant?  A better term is software development?  I'm just a programmer, leave me alone? Agile is a part of software engineering? I'd really like to hear your thoughts... Thanks!&lt;/p&gt;&#xA;" OwnerUserId="8776" LastActivityDate="2010-12-05T01:57:23.850" Title="What is your take on Software Engineering? Helpful term/field? Not helpful?" Tags="&lt;software-engineering&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="0" />
  <row Id="23528" PostTypeId="2" ParentId="8301" CreationDate="2010-12-03T19:33:50.683" Score="1" ViewCount="" Body="&lt;p&gt;that hat with the beer cans on the side with a straw.  bad idea if you get caught.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's the hat I hate but that has great reward - it's a big sign on me that says if this thing breaks it's all your fault....ah, but if it's good, then you my son are the good boy we all know you are - now go back to the basement...good boy...that's it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The blame hat.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastEditorUserId="8802" LastEditorDisplayName="" LastEditDate="2010-12-03T19:47:31.477" LastActivityDate="2010-12-03T19:47:31.477" />
  <row Id="23529" PostTypeId="1" AcceptedAnswerId="23533" CreationDate="2010-12-03T19:34:44.177" Score="5" ViewCount="148" Body="&lt;p&gt;When learning something new, do you prefer a walkthough, or instructions?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, if you were wanting to learn Vim, would you prefer something like this (walkthrough):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;Using Vim is fun.&#xA;&#xA;It can be hard to learn but it is worth the effort!&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;  &#xA;  &lt;p&gt;Move your cursor to the beginning of the 'h' in hard (using the hjkl keys) and press '4de' (to delete 4 words) and then type 'ifun and [escape]'.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;or just simple instructions (imagine a better written version of this):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;You can use delete to the end of a word with 'de'&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;You can put a number in front of a command to delete more than 1 word (example '4de')&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;etc... (again, imagine this is written a bit better, but hopefully you get the point).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3478" LastActivityDate="2010-12-04T06:25:13.043" Title="Do you prefer walkthroughs or instructions?" Tags="&lt;learning&gt;&lt;documentation&gt;" AnswerCount="10" CommentCount="1" FavoriteCount="1" />
  <row Id="23530" PostTypeId="2" ParentId="23527" CreationDate="2010-12-03T19:39:04.623" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.peo.on.ca/peo_education_web/main.html&quot; rel=&quot;nofollow&quot;&gt;Professional Engineers Ontario&lt;/a&gt; would be an example of where engineer conveys a rather specific meaning so that I tend to prefer software development.  This is still just a part of Computer Science to my mind, where there are both theoretical and applicable parts to the subject.  I have a Computer Science degree where just as I was graduating they decided to create a software engineering specialization for Computer Science students.  I'm slowly coming to terms with the idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software development is more than just programming, as that tends to be just the implementation part and ignores the other 3 big pieces, requirements gathering, analysis &amp;amp; design, and testing, as I like to see things.  Agile is a development methodology, just like waterfall and both have strengths and weaknesses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To describe my work, I'd say: I am a web developer that solves problems using technology.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-03T19:39:04.623" CommentCount="1" />
  <row Id="23531" PostTypeId="2" ParentId="8301" CreationDate="2010-12-03T19:39:17.183" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Sales&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some poor bugger has to do it, but it sure shouldn't be the developers.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-03T19:39:17.183" />
  <row Id="23532" PostTypeId="2" ParentId="23507" CreationDate="2010-12-03T19:43:00.783" Score="1" ViewCount="" Body="&lt;p&gt;I hated JavaScript until I discovered jQuery.  Now I love it and use it all the time.  Probably too much.&lt;/p&gt;&#xA;" OwnerUserId="4115" LastActivityDate="2010-12-03T19:43:00.783" />
  <row Id="23533" PostTypeId="2" ParentId="23529" CreationDate="2010-12-03T19:44:40.437" Score="8" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;Doesn't matter, as long as it is well and interestingly written.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, both can be terrible.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-03T19:44:40.437" CommentCount="2" />
  <row Id="23534" PostTypeId="2" ParentId="23529" CreationDate="2010-12-03T19:44:50.283" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Screencasts every time&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A quality screencast does everything: it provides a walkthrough, shows you how to do something and tells you background information (with hints and tips) at the same time. It's like having the expert at your shoulder. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=c6WCm6z5msk&quot; rel=&quot;nofollow&quot;&gt;vim&lt;/a&gt; - Provides good feedback&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=yvSCIl0Jh5A&quot; rel=&quot;nofollow&quot;&gt;emacs&lt;/a&gt; - Very basic set up procedure&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;A bad screencast (like any bad instructions) can be truly awful.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-03T19:52:37.170" LastActivityDate="2010-12-03T19:52:37.170" CommentCount="5" />
  <row Id="23535" PostTypeId="1" AcceptedAnswerId="23539" CreationDate="2010-12-03T19:48:25.240" Score="51" ViewCount="1993" Body="&lt;p&gt;Should web developers continue to spend effort progressively enhancing our web applications with JavaScript, ensuring that features gracefully degrade, thereby ensuring accessibility?  Or should we spend that time focused on new features or other areas of development?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The subtext of that question would be:  How many of our customers/clients/users utilize our websites or applications with JavaScript disabled?  Do you have any projects with requirements that specifically demand JavaScript functionality (almost all of mine do), and do those requirements also demand graceful degradation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the sake of asking this question, I pulled up programmers.stackexchange.com without JavaScript enabled, and I was greeted with this message: &quot;Programmers - Stack Exchange works best with JavaScript enabled&quot;.  It was difficult to log in, albeit the site seemed to generally work okay.  (I wasn't able to vote up any questions.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this is a satisfactory approach to development.  Imagine the effort involved in making all of the site's features work with plain old HTML and server-side logic. On the other hand, I wonder how many users have been alienated by this approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We've all been trained (at least the good developers among us) to use progressive enhancement and to ensure our web applications' dynamic features degrade gracefully.  Is this progressive enhancement just pissing into the wind, or do some of our customers actually utilize certain web services without JavaScript enabled?&lt;/p&gt;&#xA;" OwnerUserId="5497" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2011-01-10T20:26:04.427" LastActivityDate="2011-05-16T02:33:36.783" CommunityOwnedDate="2011-01-13T17:07:25.307" Title="How important is graceful degradation of JavaScript?" Tags="&lt;web-development&gt;&lt;javascript&gt;&lt;progressive-enhancement&gt;&lt;accessibility&gt;" AnswerCount="27" CommentCount="12" FavoriteCount="8" />
  <row Id="23536" PostTypeId="2" ParentId="22210" CreationDate="2010-12-03T19:48:59.430" Score="1" ViewCount="" Body="&lt;p&gt;How can you be &quot;so&quot; pendantic?  Can you really be just a little bit pedantic?  Are there degrees of pendanticity?  Tell me sir, please.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastEditorUserId="8802" LastEditorDisplayName="" LastEditDate="2010-12-03T20:18:16.430" LastActivityDate="2010-12-03T20:18:16.430" CommentCount="1" />
  <row Id="23537" PostTypeId="1" AcceptedAnswerId="23558" CreationDate="2010-12-03T19:51:16.113" Score="16" ViewCount="914" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/30513/as-a-programmer-what-single-discovery-has-given-you-the-greatest-boost-in-product&quot;&gt;As a programmer what single discovery has given you the greatest boost in productivity?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I have seen programmers use a variety of techniques to measure and improve their productivity. What has been the productivity tip/method you have gained from most. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do mention the details esp. if you use any tools to help yourself in implementing the method or tracking your progress.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some things I can think of are GTD, pomodoro or using a software/utility like Rescuetime or keepfocussed. &lt;/p&gt;&#xA;" OwnerUserId="3755" LastActivityDate="2010-12-07T03:28:42.843" ClosedDate="2010-12-28T18:37:44.000" Title="What's your favorite productivity tip/hack" Tags="&lt;productivity&gt;&lt;self-improvement&gt;" AnswerCount="13" CommentCount="7" FavoriteCount="3" />
  <row Id="23538" PostTypeId="2" ParentId="23535" CreationDate="2010-12-03T19:52:00.823" Score="9" ViewCount="" Body="&lt;p&gt;The only thing that I disable JavaScript for is testing my own website. However, you might be interested in a &lt;a href=&quot;http://developer.yahoo.com/blogs/ydn/posts/2010/10/how-many-users-have-javascript-disabled/&quot; rel=&quot;nofollow&quot;&gt;study&lt;/a&gt; that Yahoo did that found between 1-2% of users have JavaScript disabled. Yahoo's audience is probably a pretty good representation of the average user.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A key quote from the study:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;While 2% of U.S. visitors may not&#xA;  seem like a lot, keep in mind that&#xA;  over 300 million users visit the&#xA;  Yahoo! homepage each month. That means&#xA;  6 million users visit each month&#xA;  without the benefit of JavaScript. So&#xA;  even though it’s worth spending your&#xA;  time on the JavaScript-enabled version&#xA;  of the site, there are still a&#xA;  non-trivial amount of users out there&#xA;  who won’t be able to use it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="73" LastActivityDate="2010-12-03T19:52:00.823" CommunityOwnedDate="2011-01-13T17:07:25.307" CommentCount="12" />
  <row Id="23539" PostTypeId="2" ParentId="23535" CreationDate="2010-12-03T19:54:04.173" Score="43" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://noscript.net/&quot; rel=&quot;nofollow&quot;&gt;NoScript&lt;/a&gt; but whitelist any site I actually intend to use.&lt;/p&gt;&#xA;" OwnerUserId="5747" LastActivityDate="2010-12-03T19:54:04.173" CommunityOwnedDate="2011-01-13T17:07:25.307" CommentCount="12" />
  <row Id="23540" PostTypeId="2" ParentId="23404" CreationDate="2010-12-03T19:56:15.053" Score="1" ViewCount="" Body="&lt;p&gt;Many laywers offer free consultations, where they will explain what you will expect to pay and what you might be able to gain. Google &quot;Intellectual Property Lawyer&quot; and ask until you find one who will give you a free consultation.&lt;/p&gt;&#xA;" OwnerUserId="9089" LastActivityDate="2010-12-03T19:56:15.053" />
  <row Id="23541" PostTypeId="2" ParentId="23529" CreationDate="2010-12-03T19:58:20.840" Score="3" ViewCount="" Body="&lt;p&gt;It depends partly on how similar the new thing is to something I already know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's new to me, but has a lot of similarities with something I already know, then the second style will let me just scan through quickly and pick out enough to get going fast.  I can then dip back in when I run into issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's totally new - then I definitely benefit from a walkthrough, at least at the start.  It helps me get in context for the new stuff.  However, in order to be of benefit the walkthrough does have to explain, rather than just getting me to trot through mindlessly repeating stuff.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess, looking at your examples, that would make it a combination? I'm not sure when reading your question whether you intend to convey this, but the walkthrough doesn't give you general principles (you can use numbers in front of commands in vi, and that will apply the command to that number of items - words, lines, letters, whatever), and the instructions do.  Was that distinction intentional? &lt;/p&gt;&#xA;" OwnerUserId="8805" LastActivityDate="2010-12-03T19:58:20.840" CommentCount="2" />
  <row Id="23542" PostTypeId="1" AcceptedAnswerId="23620" CreationDate="2010-12-03T19:58:26.300" Score="5" ViewCount="177" Body="&lt;p&gt;I really enjoy programming language design. Sometimes I think my language projects and their potential users would benefit from a comprehensive standards document. I've looked at many language standards, ranging from the very formal (C++) to the rather informal (ECMAScript), but I can't really get a handle on how I should break things down and organise such a document, even though I think I'm pretty good at technical writing in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I write it like a long tutorial, or more like a formal math paper? How do I keep it up to date if I'm developing it alongside a reference implementation? Should I just give up and treat the implementation and documentation as the de facto standard? Further, is there really any significant benefit to having a standard? Does &lt;em&gt;requiring&lt;/em&gt; a standard mean that the language is needlessly complex?&lt;/p&gt;&#xA;" OwnerUserId="2107" LastActivityDate="2010-12-03T23:35:27.620" Title="How do I go about writing a programming language specification?" Tags="&lt;programming-languages&gt;&lt;documentation&gt;&lt;standardization&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="2" />
  <row Id="23543" PostTypeId="2" ParentId="23529" CreationDate="2010-12-03T19:58:44.880" Score="1" ViewCount="" Body="&lt;p&gt;I have to say I like both.  I need a reference that is comprehensive and practical scenarios/walkthroughs that show how the product is used in real life.  If I had to make a choice, I'll take the reference and figure it out myself.&lt;/p&gt;&#xA;" OwnerUserId="8776" LastActivityDate="2010-12-03T19:58:44.880" />
  <row Id="23544" PostTypeId="2" ParentId="23537" CreationDate="2010-12-03T19:59:01.143" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Whiteboard with user story cards on it&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We use the Agile methodology at work, and having those user story cards stuck to the whiteboard provides a great boost to productivity. That is because we can see what is being worked on by our team, and other teams as we wander by their desks. This promotes conversations about their work that introduce commonality and cool new designs that others have come up with. These then get shared into our projects (if appropriate) and overall productivity is boosted.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-03T19:59:01.143" CommentCount="1" />
  <row Id="23545" PostTypeId="2" ParentId="23404" CreationDate="2010-12-03T20:00:32.890" Score="1" ViewCount="" Body="&lt;p&gt;Miss Understood, I would call this &quot;school money&quot;. Leave the site as is. Next time you undertake this kind of project, ask for half now half later. At least this will allow for a smaller loss in future. By doing the ethical thing and moving on, you will keep your side clean. Your client will not be able to knock on your door next time he needs something, the world has a strange way of correcting itself. He will have to face that some day.&lt;/p&gt;&#xA;" OwnerUserId="3167" LastActivityDate="2010-12-03T20:00:32.890" CommentCount="1" />
  <row Id="23546" PostTypeId="2" ParentId="23529" CreationDate="2010-12-03T20:11:31.493" Score="0" ViewCount="" Body="&lt;p&gt;In my opinion, if there is a need for any of those, then the user interface is not clear enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, I would prefer instructions in a help file for some serious software and walkthroughs in a tutorial of a computer game.&lt;/p&gt;&#xA;" OwnerUserId="9011" LastActivityDate="2010-12-03T20:11:31.493" />
  <row Id="23547" PostTypeId="2" ParentId="23404" CreationDate="2010-12-03T20:12:02.957" Score="2" ViewCount="" Body="&lt;p&gt;You could send notice of pending legal action. If that doesn't make him pay, you would have to follow through and hire a lawyer. You could try debt collection or putting a lien on his business as well, but those might be difficult absent a contract. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your friend was unable to appeal to him, they might know members of his family that you could contact to see if they could persuade him to pay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To prevent this from happening again in the future, I'd suggest the following:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Always&lt;/strong&gt; use a contract, even for close friends or family members.&lt;/li&gt;&#xA;&lt;li&gt;Require a deposit (usually 50% up&#xA;front).&lt;/li&gt;&#xA;&lt;li&gt;Set the finished website up on&#xA;&lt;em&gt;your&lt;/em&gt; test server so that they can use it live and suggest any changes.&#xA;Once they approve of everything,&#xA;send them a final invoice. Once the&#xA;remainder of the money has been&#xA;received, transfer everything to&#xA;their server.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="73" LastActivityDate="2010-12-03T20:12:02.957" />
  <row Id="23548" PostTypeId="1" AcceptedAnswerId="23587" CreationDate="2010-12-03T20:13:28.443" Score="8" ViewCount="523" Body="&lt;p&gt;I don't work at a software company, and I'm one of a small handful of people in the company that know anything about programing. I spend a lot of time automating other programs that are used in the office through public APIs, and I've also created a few stand alone applications. I work almost entirely in C#.Net as every application we seem to use in the office seems to have some form of .NET API.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had a few people here ask me about learning &quot;how to program&quot;, and where they should start. I think it makes a lot more sense to learn a .NET language as nearly all the programs they would want to Automate have a .NET API, and it sounds like VBA is on it's way out and being replaced by VSTA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I'm trying to figure out how to explain what .NET is and why they should learn it to a someone that doesn't know anything about programing. It's not really a language, as there are a number of languages that are considered .NET languages. Plus I think there is a distinction between &quot;.NET&quot; and &quot;The .NET framework&quot; as the latter is more about the libraries provided by Microsoft. &lt;/p&gt;&#xA;" OwnerUserId="1838" LastActivityDate="2010-12-06T17:19:06.020" Title="How do I explain to non-programers what .NET is?" Tags="&lt;c#&gt;&lt;.net&gt;&lt;teaching&gt;&lt;communication&gt;&lt;vb.net&gt;" AnswerCount="12" CommentCount="1" />
  <row Id="23549" PostTypeId="2" ParentId="23548" CreationDate="2010-12-03T20:20:30.873" Score="0" ViewCount="" Body="&lt;p&gt;I think you're heading down the right path, you have the .Net compilers that translate a program in a specific language into MSIL, then you have the Code library, which is really just a class/code library to make our life easier.  If they don't understand what a code library is, not sure what you could do to make them understand that.  You can guide them in their selection of C# the same as you did in your question.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-03T20:20:30.873" CommentCount="2" />
  <row Id="23550" PostTypeId="2" ParentId="23548" CreationDate="2010-12-03T20:20:36.723" Score="5" ViewCount="" Body="&lt;p&gt;Just tell them it is a program that lets you write programs and not to worry about it for the moment.  Then start on the programming principles that matter the most at the moment.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-03T20:20:36.723" CommentCount="1" />
  <row Id="23551" PostTypeId="2" ParentId="23529" CreationDate="2010-12-03T20:22:26.897" Score="5" ViewCount="" Body="&lt;p&gt;Just don't use any stupid talking dogs or peppy paperclips!&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-03T20:22:26.897" CommentCount="0" />
  <row Id="23552" PostTypeId="1" CreationDate="2010-12-03T20:23:22.667" Score="0" ViewCount="163" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now i started my career.i joined as engineer tech support in Origin infosystems. my qualification is b.e cse 2010 passed out.and i am in chennai. me working now in a client company(tcseserve). they offering package of 5.5k take home. i am scary about my future because i am worrying about my career path. for this job diploma candidates are eligible. i am thinking now like my b.e degree is not a value one as for now. package is also too low. i recently join there. but my coworkers are older people than me. What coworkers is suggesting me is &quot;As you are fresher you have to move to software job.  This field we can't earn more money even we have the experience.&quot; i dont know what i have to do. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;now what i need to know is if i am moving to the server administration(l2 support) can i earn more money like software developers?&#xA;i very much like the server administration than software developing. so what i have to do to get good career growth. what is the certification course i need to do.?&#xA;is one year experience as tech support as acceptable in mnc company s?&#xA;i think the other sick in this field is only few peoples are in a company are required to maintain the servers in a big company.but more peoples are doing courses related to this career. so what i like to know is really if i follow this career path am i get good profile with good package or not?&#xA;or otherwise can i change the career path? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please give me your valuable reply for those doubts, and tell me what i have to do for get good growth in this field and how many year of experience are need to get into many companys.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you.&lt;/p&gt;&#xA;" LastEditorUserId="6420" LastEditorDisplayName="" LastEditDate="2010-12-03T20:39:44.290" LastActivityDate="2010-12-04T13:34:06.160" Title="Is engineer tech support good for my career?" Tags="&lt;career-advice&gt;" AnswerCount="2" />
  <row Id="23553" PostTypeId="2" ParentId="23367" CreationDate="2010-12-03T20:24:23.227" Score="0" ViewCount="" Body="&lt;p&gt;Perhaps you should seize the occasion and, along with the new language, learn another environment. I.e. if you are working with C#, I guess you are using Windows and Visual Studio. So, try to learn new language in another environment, say on Linux. Both Ruby and Python could be good candidates. Or some language from Lisp family, Clojure for example.&lt;/p&gt;&#xA;" OwnerUserId="7968" LastActivityDate="2010-12-03T20:24:23.227" />
  <row Id="23554" PostTypeId="2" ParentId="23535" CreationDate="2010-12-03T20:24:57.440" Score="32" ViewCount="" Body="&lt;p&gt;I always browse with JavaScript enabled and have since the dawn of the web browser. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never once have I had a single issue that was worth degrading my browser experience over. Perhaps a few pop-ups or other annoyances, but the benefits far outweigh the risks in my opinion. &lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-12-03T20:24:57.440" CommunityOwnedDate="2011-01-13T17:07:25.307" CommentCount="9" />
  <row Id="23555" PostTypeId="2" ParentId="23535" CreationDate="2010-12-03T20:28:12.460" Score="52" ViewCount="" Body="&lt;p&gt;I guess the percentage of people without JavaScript turned on is negligible. But be careful with search engine bots! They usually don't use JavaScript, but you wouldn't want them to skip some important content of yours because of that, right?&lt;/p&gt;&#xA;" OwnerUserId="7968" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-07T20:17:20.720" LastActivityDate="2011-02-07T20:17:20.720" CommunityOwnedDate="2011-01-13T17:07:25.307" CommentCount="2" />
  <row Id="23556" PostTypeId="2" ParentId="23542" CreationDate="2010-12-03T20:28:29.963" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Read lots and keep it simple&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Designing a new language is hard. Really hard. But ultimately very satisfying if it becomes popular and really solves a problem that people are experiencing in an elegant manner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I mentioned in the comments, I'd advise you to read &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321712943&quot; rel=&quot;nofollow&quot;&gt;Domain Specific Languages by Martin Fowler&lt;/a&gt; for the following reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;He goes into a lot of practical depth about why you should design a language&lt;/li&gt;&#xA;&lt;li&gt;There are details on how to do it (parsers, lexical analysers, language workbenches etc)&lt;/li&gt;&#xA;&lt;li&gt;There are detailed implementation instructions about how your chosen syntax can be made to handle concepts like closures, annotations, literal lists, dynamic reception etc&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;As for how to go about writing your specification, think about your audience. Obviously, before putting finger to keyboard to design your language you will have thought carefully about what it is intended to do. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's a new, interpreted language to replace JavaScript then you'll be wanting a very laissez faire approach in order to reach web developers with a limited attention span and a desire for immediate results - or quicker if possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's going to be used on the next mission to Titan, then extremely detailed specifications showing exact formal proofs of the behaviour of each component will be the minimal entry level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, it's not a straightforward thing. To approach the specification, you would probably be better off gaining a lot of experience in creating your languages and also working with those who actually use them on a day to day basis. If you have willing victims... er... developers, at work who can take some time to learn your language then they can give you feedback on what is needed to get them to use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, keep it simple and more people will use it. &lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-03T20:28:29.963" CommentCount="5" />
  <row Id="23557" PostTypeId="2" ParentId="23077" CreationDate="2010-12-03T20:30:23.653" Score="0" ViewCount="" Body="&lt;p&gt;Anyone could become a specialist of anything given enough time and attention. There are quite easy things in any sphere as well as there are complex or complicated things. The difficulty of programming depends on the level of the problem, you want to solve, and also on your skills in programming. The same rule can be applied to Film and Media or any other industry.&lt;/p&gt;&#xA;" OwnerUserId="9011" LastActivityDate="2010-12-03T20:30:23.653" />
  <row Id="23558" PostTypeId="2" ParentId="23537" CreationDate="2010-12-03T20:30:27.670" Score="19" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Always take the time to make a plan.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is absolutely no substitute for a genuine lack of planning. To put it another way...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;You can use an eraser on the drafting&#xA;  table or a sledge hammer on the&#xA;  construction site.&#xA;  -- Frank Lloyd Wright&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2010-12-03T20:30:27.670" CommentCount="2" />
  <row Id="23559" PostTypeId="1" CreationDate="2010-12-03T20:31:04.443" Score="2" ViewCount="348" Body="&lt;p&gt;I have been in the field for 12 years and have done everything from coding to database design/development/administration to technical writing to networking to tech support.  I'm more of a generalist than a specialist and have been thinkign about career advancement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not too far from the age where ageism can be an issue and thought about going for an MBA.  The MBA usually leads to management-type positions and hearing stories from those who've been there make me kinda leary of that option.  Lots of techies have went into management, did not care much for the BS involved, and went back to coding.  It's also been said that an MBA is a &quot;dime a dozen&quot; and not worth it if the school isn't in the top 10.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone here have an MBA or know anyone who has one?  Was it worth it or a waste of time/money?&lt;/p&gt;&#xA;" OwnerUserId="24411" LastActivityDate="2010-12-03T21:30:03.790" ClosedDate="2010-12-05T19:01:00.770" Title="Is it still worth it to get an MBA these days?" Tags="&lt;career&gt;&lt;degree&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="3" />
  <row Id="23560" PostTypeId="2" ParentId="23527" CreationDate="2010-12-03T20:31:07.747" Score="2" ViewCount="" Body="&lt;p&gt;Personally, I hate the term. I call myself a Software Developer, because I develop software, I dont engineer it. All the people &lt;em&gt;I know of&lt;/em&gt; who call themself Software Engineers have this weird top down thinking thing going on that leads them to break their programs down upfront, because they love planning ahead. Sadly, shortly after they start programming what they've planned they start drilling loopholes in their interfaces to enable communication between the parts of their program that they planned to be independent from another. Also, after a while their methods invariably become longer and longer, one I remember was &gt;700 lines long. In Python, that is, which roughly translates to 2800 lines of Java. When I investigated, I found out that the Software Engineer who wrote it had exactly two levels of thinking: the framework view level (The Big Picture) and the level of the most basic operations and data structures, like for loops and lists.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's my main gripe with this kind of thinking: it leads to breaking a problem down to a certain level, but eventually stops somewhere in the middle and from there on its bits and bytes, because you cannot plan the whole thing down to its simplest most basic parts &lt;em&gt;without actually writing the program&lt;/em&gt;. This is due to the fact that, unlike in other engineering disciplines, the most detailed plan of a program &lt;em&gt;is&lt;/em&gt; the program. It's not like &quot;here's the plan for the bridge and there's the bridge itself&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I, as some might have guessed by now, prefer coding bottom up, and as soon as I find myself repeating something, I factor it out. Don't misunderestimate me: I don't propagate mindless fumbling around. I just happen to think that &lt;a href=&quot;http://www.paulgraham.com/progbot.html&quot; rel=&quot;nofollow&quot;&gt;Paul Graham is right&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sounds quite agile, doesn't it? So, no, for me Agile and Software Engineering are on opposite sides of the spectrum.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thing: I don't claim this to be true of Software Engineers &lt;em&gt;per se&lt;/em&gt;, but it's certainly true of every person I know who's a self-described Software Engineer.&lt;/p&gt;&#xA;" OwnerUserId="7243" LastActivityDate="2010-12-03T20:31:07.747" CommentCount="5" />
  <row Id="23561" PostTypeId="2" ParentId="23537" CreationDate="2010-12-03T20:31:21.470" Score="23" ViewCount="" Body="&lt;p&gt;Learn all the keyboard shortcuts that you can.  Taking your hand off the keyboard to put it on the mouse and click on something probably wastes more time than anything else I can think of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like me having to click on the &quot;Post Your Answer&quot; button instead of there being a hotkey for it.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-03T20:31:21.470" CommentCount="4" />
  <row Id="23562" PostTypeId="2" ParentId="23367" CreationDate="2010-12-03T20:32:38.253" Score="0" ViewCount="" Body="&lt;p&gt;What is your project?  I always say you need a mission before you can really learn something.  Given you know your project, you'll know what is available and you can go from there.  Right now you've pretty much said anything and everything without know why you'd be doing something.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-03T20:32:38.253" />
  <row Id="23563" PostTypeId="2" ParentId="23527" CreationDate="2010-12-03T20:34:57.597" Score="2" ViewCount="" Body="&lt;p&gt;Engineering is a discipline that is usually complete different from what is meant by software engineer.  To dumb it down, engineering is usually taking (the correct) building blocks to make a something.  Most of what is done by programmers I would consider Craftmanship, not engineering.  Good software developers use both, as there will be an aspect of re-usability (I would consider this to be a form of engineering), and writing code &quot;from scratch&quot; in most projects.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-03T20:34:57.597" />
  <row Id="23564" PostTypeId="2" ParentId="23552" CreationDate="2010-12-03T20:37:12.890" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://serverfault.com/&quot;&gt;Server Fault&lt;/a&gt; or &lt;a href=&quot;http://careeroverflow.com/&quot; rel=&quot;nofollow&quot;&gt;Career Overflow&lt;/a&gt; may be better places if you want the view from a sysadmin or general view as this is a site for more programmer-centric stuff for my first point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another point is how different are things where you are than where others of us are.  For example, I'm in Calgary, Alberta and thus may have a vastly different view on these types of jobs than someone else in India.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to be more of a sysadmin, why would that be a bad job?  It isn't my kind of work as I prefer solving problems, but that is my view on myself.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-03T20:37:12.890" />
  <row Id="23565" PostTypeId="2" ParentId="23559" CreationDate="2010-12-03T20:38:18.277" Score="0" ViewCount="" Body="&lt;p&gt;Depends on where you work or plan to work.  It depends on why it is valuable to you.  for example, if you want a supervisor job and they require an MBA then it is worth it, if you want that job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you just want an MBA, well who knows...you could think of any degree that way.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-03T20:38:18.277" />
  <row Id="23566" PostTypeId="2" ParentId="23527" CreationDate="2010-12-03T20:39:34.877" Score="1" ViewCount="" Body="&lt;p&gt;It depends on the context. That term Software Engineer varies greatly based on the company behind the title placement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At my previous place of employment Software Engineer was used through and through, however I had overheard at one point this transition took place via HR as to align their pay respectively in the industry as they were previously titled Programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At my current place of employment Programmer Analyst is the term used. all the way up to a Lead Programmer Analyst. Once there deviation takes place and it transitions to Lead Technical Architect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first one I mentioned was a small business, the later a large enterprise. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I as a person am writing different software per se but using similar technology. I have peers however at my current place of employment who &quot;design/architect&quot; the software yet code nothing. Someone else codes it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...and so it goes...&lt;/p&gt;&#xA;" OwnerUserId="3289" LastActivityDate="2010-12-03T20:39:34.877" CommentCount="1" />
  <row Id="23567" PostTypeId="2" ParentId="23559" CreationDate="2010-12-03T20:44:04.163" Score="0" ViewCount="" Body="&lt;p&gt;I obtained an MBA less than a year ago and it has opened a lot of doors.  I think these doors would have opened eventually, but the MBA sped that up significantly.  I think you need to figure out your career path and what you are looking for.  If you see yourself as an eventual VP/CIO/etc, than an MBA is a must.  If you are looking at staying in development then it might not be the best use of your time/money.&lt;/p&gt;&#xA;" OwnerUserId="745" LastActivityDate="2010-12-03T20:44:04.163" CommentCount="1" />
  <row Id="23568" PostTypeId="2" ParentId="23552" CreationDate="2010-12-03T20:45:24.503" Score="0" ViewCount="" Body="&lt;p&gt;If I understand the question, you are asking if server administration is a good career comparable to program/development. I think the answer is that yes it is a good career and probably has a lot of potential. From what I have seen of salary surveys (at least in the US) the pay is fairly comparable in the low and high end; I think the average programmer probably makes a little more. If system admin was what you prefer doing, you will do it better and so in the long run &lt;em&gt;you&lt;/em&gt; would probably make more money as an SA than you would in programming. &lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-12-03T20:45:24.503" />
  <row Id="23569" PostTypeId="2" ParentId="23537" CreationDate="2010-12-03T20:45:33.027" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A quiet room or a great set of headphones and music...&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My productivity increases big time if I can tune people out. I try never to complain though since I might be the one making the noise next time. In our office we have a nice big side room where anyone that wants to work in peace can go to concentrate. In that room we also have a projector that can be used for team programming. Its like the escape zone to get things done.&lt;/p&gt;&#xA;" OwnerUserId="8982" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-03T21:24:16.913" LastActivityDate="2010-12-03T21:24:16.913" CommentCount="3" />
  <row Id="23570" PostTypeId="2" ParentId="23559" CreationDate="2010-12-03T20:47:09.433" Score="2" ViewCount="" Body="&lt;p&gt;If your problem is boredom, a lack of &quot;What's next?&quot;, I'd point out that you don't list any real-time graphics, you don't list any real-time image processing, you don't list any robotics, you don't mention having spent any time learning how to design Earth-moon-Earth trajectories (or Earth-Mars-Earth, for that matter), you don't mention writing any MIDI sequencers or synth programmers, you don't mention doing anything seriously cool with an Arduino board, a solenoid, a radio-controlled helicopter, and a Silly String (tm) can...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recall Robert Heinlein's description of Manual Garcia O'Kelly-Davis.  From memory &quot;I'm a general specialist.  I can relieve a short-order cook and keep orders coming, or field-repair your p-suit and get you back to airlock still breathing.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An MBA is, essentially, a union card and entry-level license to get into certain professions.  It is no longer the license to print money that it once was.  (Yes, you can still make a lot of money with an appropriate MBA, but you are going to work some hideous hours to do it.)&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-12-03T20:47:09.433" CommentCount="3" />
  <row Id="23571" PostTypeId="2" ParentId="23559" CreationDate="2010-12-03T20:47:50.670" Score="1" ViewCount="" Body="&lt;p&gt;The &lt;em&gt;knowledge&lt;/em&gt; obtained from getting an MBA is definitely worth it.  Now whether or not getting the piece of paper is worth it is up for debate...  I believe there are other cheaper (or free!, many universities have classes on youtube now) ways of getting that knowledge than paying in time and money to take classical university courses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't want to do management, don't do it.  I don't think there's to much ageism, as long as you can prove you have the relevant knowledge.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-03T20:47:50.670" CommentCount="1" />
  <row Id="23572" PostTypeId="2" ParentId="23535" CreationDate="2010-12-03T20:48:06.253" Score="13" ViewCount="" Body="&lt;p&gt;I regularly surf the web from my smart phone's web browser when I'm not at home or the office. While it supports (at least a subset of) JavaScript it doesn't always handle it well. I've found many websites unusable because they either consume to many resources or just crash the browser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer the built-in browser, but I keep two alternate browsers around in case one of them does a better job.&lt;/p&gt;&#xA;" OwnerUserId="4890" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-07T20:21:04.193" LastActivityDate="2011-02-07T20:21:04.193" CommunityOwnedDate="2011-01-13T17:07:25.307" CommentCount="2" />
  <row Id="23573" PostTypeId="2" ParentId="23523" CreationDate="2010-12-03T20:49:25.063" Score="-1" ViewCount="" Body="&lt;p&gt;I'd think that the average student is more intelligent now than 10 years ago. That would therefore create more competition for high grades -- most top schools are going to be using some kind of a curve. That would therefore make classes more difficult... in theory&lt;/p&gt;&#xA;" OwnerUserId="745" LastActivityDate="2010-12-03T20:49:25.063" CommentCount="3" />
  <row Id="23574" PostTypeId="2" ParentId="23314" CreationDate="2010-12-03T20:53:43.263" Score="2" ViewCount="" Body="&lt;p&gt;I agree with &lt;a href=&quot;http://sites.google.com/site/steveyegge2/you-should-write-blogs&quot; rel=&quot;nofollow&quot;&gt;Steve Yegge&lt;/a&gt; on this question. If you're doing a lot of reading, you should also be doing at least some writing. Everyone has a different perspective, and you may have something unique to contribute, but you won't know if you don't try.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as writing quality goes, you don't get better without practice. And don't worry about being witty and entertaining; those aren't things you can control. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-03T20:53:43.263" CommentCount="0" />
  <row Id="23575" PostTypeId="2" ParentId="23559" CreationDate="2010-12-03T20:54:27.133" Score="2" ViewCount="" Body="&lt;p&gt;My rule is... get an MBA if someone else (ie., your company) is willing to pay for it.&lt;/p&gt;&#xA;" OwnerUserId="7368" LastActivityDate="2010-12-03T20:54:27.133" CommentCount="1" />
  <row Id="23576" PostTypeId="2" ParentId="23527" CreationDate="2010-12-03T20:54:27.600" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Software Engineering: The&#xA;  establishment and  use of sound&#xA;  engineering principles in order to &#xA;  obtain economically software that is&#xA;  reliable and  works efficiently on&#xA;  real machines.  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-&lt;em&gt;from the first NATO Software Engineering Conference, 1969&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using that definition above, Agile Development &lt;em&gt;is&lt;/em&gt; software engineering - but not in the same way you'd &quot;engineer&quot; a bridge or a building.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As someone who has moved from EE to software development, I appreciate the use of engineering principles in code.  There are always extremes, of course.  Code which is unmanaged suffers.  Code can also be over-engineered to the point of being useless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think Agile Development Process Model (which is an engineering principle) have found engineering principles (such as code re-use, unit testing, pair programming) that are well adapted to modern software development.  They obtain economical software that is reliable and works efficiently on real machines.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Engineering principles don't need to be rigid, they just need to work.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Engineering is the discipline, art and&#xA;  profession of acquiring and applying&#xA;  technical, scientific, and&#xA;  mathematical knowledge to design and&#xA;  implement materials, structures,&#xA;  machines, devices, systems, and&#xA;  processes that safely realize a&#xA;  desired objective or invention.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Engineering&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;/wiki/Engineering&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;[EDIT]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realized I didn't actually answer the question.  If you're involved in more than one aspect of Requirement Specification, Analysis, Design, Construction, Testing, or Validation in addition to writing code then you're probably a &lt;em&gt;Software Engineer.&lt;/em&gt;  If all you do is write code, then you should call yourself a &lt;em&gt;Software Developer.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="7499" LastEditorUserId="7499" LastEditorDisplayName="" LastEditDate="2010-12-03T21:09:15.623" LastActivityDate="2010-12-03T21:09:15.623" CommentCount="5" />
  <row Id="23577" PostTypeId="2" ParentId="23548" CreationDate="2010-12-03T20:57:10.267" Score="1" ViewCount="" Body="&lt;p&gt;.NET is a framework which can be used by .NET programming languages.  You can use it to write WinForm (non-WPF) desktop apps, WPF desktop apps, Silverlight, ASP.NET, and mobile.  So by learning one part of .NET (such as writing desktop apps), a programmer can pretty easily learn how to write other things such as web apps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a Java developer and similar things can be said for the Java language, but IMHO, features of Visual Studio and .NET (e.g. Visual Studio's GUI editors &amp;amp; wizards, as well as data binding) makes development in .NET a bit faster and easier.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-12-03T20:57:10.267" />
  <row Id="23578" PostTypeId="2" ParentId="23535" CreationDate="2010-12-03T21:00:24.333" Score="3" ViewCount="" Body="&lt;p&gt;You are, of course, getting a really skewed sample here, and you might do better to do your own research on your own site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I, personally, use NoScript.  I'm rarely reluctant to whitelist a site, but it does have to appear worth my while to do so.  (In other words, I need a reason, but it doesn't have to be very convincing.)&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-03T21:00:24.333" CommunityOwnedDate="2011-01-13T17:07:25.307" CommentCount="2" />
  <row Id="23579" PostTypeId="2" ParentId="21067" CreationDate="2010-12-03T21:00:51.120" Score="1" ViewCount="" Body="&lt;p&gt;I would like to throw my hat in the ring for &lt;a href=&quot;http://www.rexxla.org/&quot; rel=&quot;nofollow&quot;&gt;REXX.&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's easy to learn, fun to write, is incredibly flexible (including Object Orientation), and ports to just about every environment you can think of -- with OS extensions available for many of them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its no less relevant than PERL, in my opinion. And, &lt;a href=&quot;http://www.scribd.com/doc/11622424/An-Empirical-Comparison-of-C-C-Java-Perl-Python-Rexx-And-Tcl&quot; rel=&quot;nofollow&quot;&gt;it stands head-and-shoulders with some of the big-boys of development, in terms of reliability and performance&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's an interpreted language, so it may not be the best choice for a full application, but as a scripting language and for smaller apps, I've always enjoyed it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think REXX would be a terrific language for teaching the fundamentals of computer programming, as well.&lt;/p&gt;&#xA;" OwnerUserId="1829" LastActivityDate="2010-12-03T21:00:51.120" CommunityOwnedDate="2011-01-05T10:52:43.233" />
  <row Id="23580" PostTypeId="2" ParentId="23404" CreationDate="2010-12-03T21:01:06.660" Score="9" ViewCount="" Body="&lt;p&gt;This is what I would do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Mirror the site.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any ability to take down the site may be hindered by the fact that you no longer host the site, so let's put it back into your complete control. So set up another account with the same domain as your client and have the domain forwarded from his Cpanel to your mirrored site. Once you've successfully forwarded web traffic  to the mirrored site, remove ALL your content from his hosting platform. (Don't transfer the domain, as it may interupt email communications, just forward.) He won't be able to tell the difference from the frontend, but you will have complete control of the site and be able to carry out your shut down.&lt;br&gt;&#xA;( Just noticed @Sam mentioned this option as well, it's a good way to put the ball back in your court )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Apply Pressure, but be flexible&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;@Walter Suggested the two best non-legal routes prior to an all out take down. Talk to your friend about the situation. Offer a payment plan for him to pay you back over a time period. If he resists or fails to pay in a reasonable amount of time (at this point) then...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Go Rambo in Court&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Last resort, legal route. Starting with small claims @DanRay provides this step. Basically present your case and be sure to use email correspondence in your case. Off the premise that he does not own the materials that you provided and that he's using them, you'll be able to make the case that you've incurred damages as a result of non payment. You can claim that the site was not intended to be released until you were compensated and that the current site is not a legitimate use of your work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would always suggest having a lawyer present the case (even in small claims). Don't waste time trying to win and just win it. You've got a case, even without a contract. Make it clear to your representation that you intend to make it  You're getting bullied, make it his loss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Future Prospects&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the future, contracts are fantastic -- but understandably awkward for 'friend' contacts. Good call on letting him have his own hosting platform, but do the development on your hosting and push it to your client's platform when you're done (and paid) and not a moment sooner ;] &lt;/p&gt;&#xA;&#xA;&lt;p&gt;GOOD LUCK!&lt;/p&gt;&#xA;" OwnerUserId="9091" LastEditorUserId="9091" LastEditorDisplayName="" LastEditDate="2010-12-03T21:59:00.580" LastActivityDate="2010-12-03T21:59:00.580" CommentCount="2" />
  <row Id="23581" PostTypeId="2" ParentId="23314" CreationDate="2010-12-03T21:10:19.477" Score="1" ViewCount="" Body="&lt;p&gt;I've written a few articles on my blog that basically go like, &quot;I keep seeing people asking X on StackOverflow.  Well, here's an in-depth explanation to link people to next time it comes up.&quot;  For example, &lt;a href=&quot;http://tech.turbu-rpg.com/149/generics-and-the-covariance-problem&quot; rel=&quot;nofollow&quot;&gt;an overview of generic containers and covariance/contravariance in Delphi.&lt;/a&gt;  The few times I've done this, they've been pretty well received.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-03T21:10:19.477" />
  <row Id="23582" PostTypeId="2" ParentId="23404" CreationDate="2010-12-03T21:16:28.477" Score="0" ViewCount="" Body="&lt;p&gt;One thing to consider asking a lawyer is if there's any potential legal liability for the hosting company.  You can always complain about your client to the hosting company, but they're very unlikely to do anything unless there's potential liability.  At least in the US, some companies are liability-averse.  In the UK, I don't know.  There isn't a DMCA takedown notice you can send them, and I don't know if there's a credible threat.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-03T21:16:28.477" />
  <row Id="23584" PostTypeId="2" ParentId="23527" CreationDate="2010-12-03T21:18:54.607" Score="1" ViewCount="" Body="&lt;p&gt;I personally think it is an &lt;em&gt;extremely&lt;/em&gt; helpful term and field.  I am not a developer.  It makes me think of real estate developers and they're just rich people that get others to build things for them.  I think there is an Art and a Science to creating software.  The art part is best captured by Software Architecture.  The science is really discrete mathematics when you come down to it; but Engineering is about practical solutions to humanity's problems.  That's what we do!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to fly a plane using a joystick (&lt;a href=&quot;http://en.wikipedia.org/wiki/File%3aAirbus_A380_cockpit.jpg&quot; rel=&quot;nofollow&quot;&gt;&quot;fly-by-wire&quot; in the new Airbus&lt;/a&gt;), that's &lt;strong&gt;software engineering&lt;/strong&gt;!  I want new brakes in my Toyota, that's &lt;strong&gt;software engineering&lt;/strong&gt;!  I want to land a rover on Mars and control it remotely. That's &lt;strong&gt;software engineering&lt;/strong&gt;!  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.w3.org/Proposal.html&quot; rel=&quot;nofollow&quot;&gt;What did Sir Tim Berners-Lee ask for when he initially proposed the freaking World Wide Web&lt;/a&gt;... four &lt;strong&gt;SOFTWARE ENGINEERS&lt;/strong&gt;!!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know we have a far way to go before we are considered a real engineering profression.  And yes, much of what we do today is more like a craft.  BUT, that doesn't mean we can't continue to make progress and aim high.... to make brakes and planes that don't kill people!!&lt;/p&gt;&#xA;" OwnerUserId="8776" LastActivityDate="2010-12-03T21:18:54.607" />
  <row Id="23586" PostTypeId="2" ParentId="23548" CreationDate="2010-12-03T21:21:08.990" Score="1" ViewCount="" Body="&lt;p&gt;People, that are non-programmers, very afraid special computer terms like &quot;framework&quot;, &quot;asp.net&quot; and &quot;silverlight&quot;. So lets explain the thing in easy terms:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;.NET - is a modern programming technology that best used to make business applications, web sites, games and multimedia.&lt;/p&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-12-03T21:21:08.990" />
  <row Id="23587" PostTypeId="2" ParentId="23548" CreationDate="2010-12-03T21:23:41.280" Score="9" ViewCount="" Body="&lt;h2&gt;.NET for the Non-programmer&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Programming&lt;/strong&gt; - Basically telling a computer what to do and how to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Source File&lt;/strong&gt; - This is a document written in a programming language that tells the computer what you want it to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Programming Language&lt;/strong&gt; - This is a language that (usually) resembles a mixture of English and math. It is both simple and strict enough for a compiler to understand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Compiler&lt;/strong&gt; - This translates a programming language that you can understand into a language the computer can understand, you can call it &lt;em&gt;Computerese&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Library&lt;/strong&gt; - A collection of useful code that has already been translated into &lt;em&gt;Computerese&lt;/em&gt; that you can use in the programs you write.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;.NET Platform&lt;/strong&gt; - A large collection of tools, languages and libraries for writing programs with a heavy emphasis on productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, there's a lot more to it than that. You could tell them about IL and JIT compiling or garbage collection but these details aren't very relevant to a non-programmer.&lt;/p&gt;&#xA;" OwnerUserId="4890" LastEditorUserId="4890" LastEditorDisplayName="" LastEditDate="2010-12-03T21:48:09.923" LastActivityDate="2010-12-03T21:48:09.923" />
  <row Id="23589" PostTypeId="2" ParentId="23542" CreationDate="2010-12-03T21:26:25.903" Score="1" ViewCount="" Body="&lt;p&gt;Common Lisp and Haskell have language standards. Ruby and Python have implementations and documentation. So I would say that a language standard is not necessary, but it might be helpful if you expect there to be more than one implementation of the language you're designing. On the other hand, a standard is premature if you're expecting significant changes in your language definition.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-03T21:26:25.903" CommentCount="1" />
  <row Id="23590" PostTypeId="2" ParentId="23535" CreationDate="2010-12-03T21:26:36.087" Score="1" ViewCount="" Body="&lt;p&gt;Hmm, now I feel like the &lt;a href=&quot;http://www.imdb.com/title/tt0067525/&quot; rel=&quot;nofollow&quot;&gt;Omega Man&lt;/a&gt;. :) Apparently I am the &lt;em&gt;last&lt;/em&gt; person who does actually turn JavaScript (and cookies) &lt;em&gt;off&lt;/em&gt;. (Unless I need it for a specific site like, say, Stack Overflow.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I doubt I'm missing much - usually when I &lt;em&gt;do&lt;/em&gt; turn on JavaScript for a site, it does something &lt;em&gt;totally&lt;/em&gt; useless, like allow me to spew tons of personal information to total strangers, or shows me some moving ads - just what I wanted, some random movement on the screen while I'm trying to concentrate on reading an article...&lt;/p&gt;&#xA;" OwnerUserId="3688" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-07T20:37:19.703" LastActivityDate="2011-02-07T20:37:19.703" CommunityOwnedDate="2011-01-13T17:07:25.307" />
  <row Id="23592" PostTypeId="2" ParentId="23559" CreationDate="2010-12-03T21:30:03.790" Score="0" ViewCount="" Body="&lt;p&gt;I avoided it for quite a while, but am also reconsidering. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a programmer, or even a first level manager of programmers your experience is generally more valuable than your degree for getting work. However, in management circles I'm finding that the opposite is often true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it is true that an MBA doesn't necessarily make you stand out as much as it once did, but not having one is becoming a liability. That is, unless you get it form a top-tier ($$$) school. With that in mind, perhaps it is better to go for a budget school than a middle-tier school because the ROI isn't much different. At my age (~40), paying for a premium degree isn't likely to pay off in increased earnings mainly because I don't have as many working years left to reap the extra income.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-12-03T21:30:03.790" CommentCount="2" />
  <row Id="23593" PostTypeId="2" ParentId="23535" CreationDate="2010-12-03T21:31:00.100" Score="5" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://noscript.net&quot; rel=&quot;nofollow&quot;&gt;NoScript&lt;/a&gt; along with the &lt;a href=&quot;http://adblockplus.org&quot; rel=&quot;nofollow&quot;&gt;AdBlock Plus&lt;/a&gt; all the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The web today is too hostile (intrusive JavaScript + annoying ads) to go out unprotected.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-03T21:31:00.100" CommunityOwnedDate="2011-01-13T17:07:25.307" />
  <row Id="23594" PostTypeId="2" ParentId="23537" CreationDate="2010-12-03T21:31:49.723" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Mastering a Text Editor&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use vim, but it doesn't matter which you use as long as you pick a powerful one and stick with it. Being able to jump around and edit anything in a source file without touching the mouse is great -- even better is when it becomes automatic, and you don't have to think about it. Syntax highlighting makes it much easier to visually scan a file, and find-and-replace makes refactoring much easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't believe I used to think that Notepad was a &quot;text editor.&quot;&lt;/p&gt;&#xA;" OwnerUserId="7629" LastEditorUserId="7629" LastEditorDisplayName="" LastEditDate="2010-12-03T21:42:59.040" LastActivityDate="2010-12-03T21:42:59.040" CommentCount="4" />
  <row Id="23595" PostTypeId="2" ParentId="23535" CreationDate="2010-12-03T21:34:08.240" Score="2" ViewCount="" Body="&lt;p&gt;I do. NoScript all the way. I'll quit when browsers are sandboxed, and not before.&lt;/p&gt;&#xA;" OwnerUserId="9015" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-04-05T22:31:50.033" LastActivityDate="2011-04-05T22:31:50.033" CommunityOwnedDate="2011-01-13T17:07:25.307" CommentCount="2" />
  <row Id="23596" PostTypeId="2" ParentId="23529" CreationDate="2010-12-03T21:34:34.680" Score="0" ViewCount="" Body="&lt;p&gt;I'm not sure I fully understand the distinction, but from what I think I understood: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;strong&gt;&lt;em&gt;walkthrough&lt;/em&gt;&lt;/strong&gt; will explain how to to replace &quot;hard&quot; with &quot;fun&quot;, requiring me to understand the underlying mechanics by studying its examples in order to also be able to replace &quot;give&quot; with &quot;teach&quot;.&lt;br&gt;&#xA;&lt;strong&gt;&lt;em&gt;Instructions&lt;/em&gt;&lt;/strong&gt;, OTOH, will explain the underlying mechanics right away.&lt;br&gt;&#xA;Give a man a fish...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My mother would prefer the walkthrough. But &lt;a href=&quot;http://programmers.stackexchange.com/questions/23331/what-do-we-developers-have-in-common/23338#23338&quot;&gt;I'm a programmer by heart&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="1512" LastActivityDate="2010-12-03T21:34:34.680" />
  <row Id="23598" PostTypeId="2" ParentId="23523" CreationDate="2010-12-03T21:40:10.120" Score="2" ViewCount="" Body="&lt;p&gt;Interesting question.  You don't really classify why you think this or what empirical evidence you're using to come to this conclusion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There was a period of time 95-05'ish or so where I believe that most CS graduates did not have the same level of problem solving, practical algorithms and language understanding that those that came before that time.  With no bias nor cause, I attributed this to the mass introduction of Microsoft platforms into the University vs. the more time-shared systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I once helped with a mandated summer practicum where students spent quite literally weeks converting a 16-bit number to ASCII output.  First, they didn't think about using something like  &lt;code&gt;sprintf()&lt;/code&gt;, but second they didn't really understand 2's compliment or what ASCII even meant.  Growing up in the FidoNet world, I just couldn't fathom how they didn't know ASCII.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We evolve though, and there are some seriously good languages now and CS certainly ain't the hip thing to do anymore, so our statistical population of CS majors is probably a little less diluted?&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-12-03T21:40:10.120" />
  <row Id="23599" PostTypeId="2" ParentId="23529" CreationDate="2010-12-03T21:42:39.010" Score="1" ViewCount="" Body="&lt;p&gt;First, the walkthrough. Shows me what I have to expect and I will soon be able to make a decision if it's worth learning or not (if the decision is on me).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, the instructions. The walkthough won't show me everything and of what it shows me, I won't remember everything. Instructions make a better reference, obviously. (A reference manual makes an even better reference ;-)&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-03T21:42:39.010" />
  <row Id="23600" PostTypeId="2" ParentId="23535" CreationDate="2010-12-03T21:44:47.903" Score="2" ViewCount="" Body="&lt;p&gt;I tend to install NoScript and only whitelist sites that I trust. Otherwise I use the &quot;allow temporarily&quot; for specific domains when I need to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is just good security. Otherwise you're allowing an arbitrary amount of code to run on your machine! Even if it's sandboxed... there's always vulnerabilities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond my own habits, even if most people do browse with JavaScript, it's still useful to develop sites with progressive enhancement in mind. If your site is functional at the baseline it can service the largest audience. It also means that you separate your data from visual design and from business logic. Most of what you do with JavaScript on the client side should be done on the server side anyway -- doing it client side should just be a convenience given to a user of the site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course there are exceptions that are going to require JavaScript, but generally there's an expectation involved. For example, there's an expectation to enable JavaScript for &lt;a href=&quot;http://www.phoboslab.org/biolab/&quot; rel=&quot;nofollow&quot;&gt;BioLab Disaster&lt;/a&gt;, a game, but none for a site like &lt;em&gt;A List Apart&lt;/em&gt;, mostly just text.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I'm filling out a form, should there really be an expectation that I have JavaScript enabled to submit the form? Why? So that the JavaScript code can check to make sure that I didn't enter a number instead of a letter?&lt;/p&gt;&#xA;" OwnerUserId="9092" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-07T20:31:45.627" LastActivityDate="2011-02-07T20:31:45.627" CommunityOwnedDate="2011-01-13T17:07:25.307" CommentCount="2" />
  <row Id="23601" PostTypeId="2" ParentId="23331" CreationDate="2010-12-03T21:49:14.937" Score="2" ViewCount="" Body="&lt;p&gt;Familiar with Apress or Oreilly books. At least we have read a book from those publishers.&lt;/p&gt;&#xA;" OwnerUserId="9095" LastEditorUserId="9095" LastEditorDisplayName="" LastEditDate="2010-12-04T04:02:25.460" LastActivityDate="2010-12-04T04:02:25.460" CommunityOwnedDate="2010-12-06T09:48:17.537" />
  <row Id="23602" PostTypeId="2" ParentId="8301" CreationDate="2010-12-03T21:51:56.610" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Any role that makes him manage himself&lt;/strong&gt;. In small teams, there is often a tendency to make one of the senior developers the project manager, but also keep him in the team as a programmer. This leads to all kinds of problems, since this guy, as a programmer, is basically unmanaged. Instead of delegating all tasks to the other team members, he will often be tempted to assign many of them to himself, especially the most difficult tasks. So the most difficult tasks, those who are most likely to cause problems, are assigned to a person who is only 50% available as a programmer and as such reports to no-one. When other team members are unable to deliver, instead of kicking their ass, he will try to do their tasks, to, because as a project manager, he is responsible for the success and the safest way to get it done is to do it himself, isn't it?&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-03T21:51:56.610" />
  <row Id="23603" PostTypeId="2" ParentId="23548" CreationDate="2010-12-03T21:52:15.993" Score="1" ViewCount="" Body="&lt;p&gt;&quot;It makes it easier for programmers/software developers make applications for Microsoft products and even some other platforms like Linux.&quot;&lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-12-03T21:52:15.993" CommentCount="1" />
  <row Id="23604" PostTypeId="1" AcceptedAnswerId="23605" CreationDate="2010-12-03T21:53:10.727" Score="4" ViewCount="227" Body="&lt;p&gt;In my experience, it is useful to spend a little while sketching plans for a project before getting into code. Such planning usually includes choosing frameworks/tools, writing requirements and expectations, and doing mockups.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually only do this for serious projects though, not so much for one-off or short-lived attempts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd be interested to hear how much time you spend on planning/designing projects before starting to do the coding. Do you do it for every project, or just the &quot;serious&quot; ones?&lt;/p&gt;&#xA;" OwnerUserId="8187" LastActivityDate="2010-12-04T04:19:01.440" Title="How much time do you spend on design before coding?" Tags="&lt;programming&gt;&lt;design&gt;&lt;planning&gt;&lt;mockups&gt;" AnswerCount="4" FavoriteCount="3" />
  <row Id="23605" PostTypeId="2" ParentId="23604" CreationDate="2010-12-03T22:23:39.130" Score="3" ViewCount="" Body="&lt;p&gt;It depends greatly on the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the project is based on a specification that has been already written (e.g. a binary data file specification), then there may not be much design involved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the project is highly speculative or research oriented, I might spend more time writing throwaway code to formulate a design than I will on creating a design up-front.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the project is a large one, it will need more up-front thinking about high-level architecture.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-03T22:23:39.130" CommentCount="1" />
  <row Id="23606" PostTypeId="2" ParentId="23535" CreationDate="2010-12-03T22:24:28.647" Score="1" ViewCount="" Body="&lt;p&gt;Don't forget cookies. I consider cookies to be more dangerous than JavaScript. I used to be a NoScript user, but I have turned it off in favor of whitelisting cookie sites.&lt;/p&gt;&#xA;" OwnerUserId="6664" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-07T20:38:34.570" LastActivityDate="2011-02-07T20:38:34.570" CommunityOwnedDate="2011-01-13T17:07:25.307" />
  <row Id="23607" PostTypeId="2" ParentId="23404" CreationDate="2010-12-03T22:25:48.053" Score="6" ViewCount="" Body="&lt;p&gt;Before I get in to anything else or in details, I will start by saying - &lt;strong&gt;DO NOT PULL THE SITE&lt;/strong&gt;, but if possible, encrypt / obfuscate / similar to the original source code. If you have the ability to, but this is risky, put in a fail safe / on application start that simply looks for a web service / xml feed or whatever is quickest in webspace that you control and make it that if this feed is not found and / or a &quot;special&quot; code is returned, the application fails to start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they specifically said they want a site that does xxx - but do not actually mention source code or the ability to extend in the future without you, technically there is nothing forcing you to give the source code as long as the site lives up and does what was originally agreed upon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There was a verbal contract to provide a service (Website Creation) in return for payment (£950).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you were late or not by a few days, that does not really matter unless it was part of the original contract e.g. penalty clause. &quot;I will not pay you / I will give you a reduced rate if you finish by xx/xx/2010&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Remember that a contract has two sides&lt;/strong&gt; Pulling the content may mean you are £150 up, but it would also mean breaking your side of the contract for supplying the service - even if he has not lived up to his side of paying for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(This is unless either of you discussed any sort of cancellation agreement in advance... Remember)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, pulling content will mean very risky ground, I guarantee that any legal body (lawyer, judge, arbiter etc.) will not look favourably at you and it may affect getting any money in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I have said here is to protect you, if you were to pull the content, you &lt;em&gt;should&lt;/em&gt; not get in to any &lt;em&gt;further&lt;/em&gt; trouble, but it certainly would not advance your case anywhere. At worst, he may try to sue you (for either money or an action of restoring the site) - in which case you can issue a counter claim for the amount owed.... but again, any legal body will probably think you are being petty for taking it down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't mean to be rude, but in the future, have a contract - it does not need to be legally written or have technical terms, it can be on a napkin - just make sure you write in plain English - &lt;code&gt;I &amp;lt;their name / company&amp;gt; agree to pay &amp;lt;your name/company&amp;gt; for a website. All content of the website remains &amp;lt;your name/company&amp;gt;'s property until it is paid in full.&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People always try to write cancellation clauses, extra stuff that just confuses matters - just remember, a contract &lt;strong&gt;is&lt;/strong&gt; for products/services, and you don't have to have a cancellation clause or anything complicated (when B2B).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this point, there may be a perfectly reasonable explanation for what is happening - ask your friend, or try going around/asking this person. If it fails, send one recorded letter (about 50p) stating - &lt;code&gt;I have tried to contact you many times for the money owed on completion of the website. Please pay either cash, cheque or money transfer **within** one week of receipt of this letter and contact immediately upon doing it, otherwise I will have no choice other than to proceed with legal action.&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again, remember, there is no sort of clause that protects you from non payment, therefore if you delete the site, you are also in breach of contract and a few judges may just throw it out as a deal that went wrong for both sides.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If he does not respond to the letter, you have to follow it up. As long as you have a bit of history - emails, phone records (if not full recordings), your friend, etc, take him to court. It is not complicated or scary - you can do it yourself. The website is &lt;a href=&quot;http://www.moneyclaim.gov.uk&quot; rel=&quot;nofollow&quot;&gt;www.moneyclaim.gov.uk&lt;/a&gt; (Money Claim Online (MCOL)), it is part of Her Majesty's Courts Service (HMCS) and they will set the claim up, forward it to your local court and everything. - It does cost, but it is not a lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have only used the service twice, one time the person just ignored me - it was only over something costing £50 and I got a default judgement against him - he never paid so in total I was £80 out of pocket (£30 fee), but I never chased it up as bailiffs would of cost a lot more.  The next was a lying, dishonest company (would say a lot more and wondering if I should hyperlink to their website!) that basically took £1468.75 from me and refused to provide me with the product I bought (Opposite to you!) I am an email hoarded and was able to produce messages going back 5 years previous to the date but they kept refusing to either give the product or pay up. The even filed a counter claim against me, but then I sent one last email stating my point and the day before documents had to be filled for trial, they paid out every penny including my legal fees (around £300)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again, contract for supply of product/services in return for money - I lived up to my point, they didn't... if they provided the service the contract would of been completed, if they returned the money, officially they are still in breach - I could of got compensation, but I really just wanted it to be over with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When it all comes to an end - do not mess around with their site, it will just make you look petty - you are safe in the knowledge that you have a &quot;kill switch&quot;, but right now they will have a site that does what they wanted, but can not be improved / changed without you (If you followed my advise).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. As you can guess, I am in England as well - I have access to a few excellent legal resources through my business, if you want to talk to a lawyer, email me and I will happily send you the details of someone who will be willing to talk to you/give you advise for free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Written a lot here and taken longer than I thought it would! I have edited it over and over again - if any spelling/grammar or flow problems, feel free to edit.&lt;/p&gt;&#xA;" OwnerUserId="1629" LastActivityDate="2010-12-03T22:25:48.053" />
  <row Id="23608" PostTypeId="2" ParentId="23542" CreationDate="2010-12-03T22:28:02.840" Score="1" ViewCount="" Body="&lt;p&gt;any specification should be terse and able to stand the test of time&lt;/p&gt;&#xA;&#xA;&lt;p&gt;this is why you see an abstraction like &lt;a href=&quot;http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form&quot; rel=&quot;nofollow&quot;&gt;BNF&lt;/a&gt; used for many language standards...its terse and will still be understood long after many of our current tools have been left behind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;of course there's more to it than just a grammar. look at what others have done...perl6, scheme, C...they address issues that implementor also care about.&lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-12-03T22:28:02.840" />
  <row Id="23609" PostTypeId="2" ParentId="23472" CreationDate="2010-12-03T22:28:30.063" Score="1" ViewCount="" Body="&lt;p&gt;How hard is it to follow style conventions? I understand the spelling errors but the rest is an indicator of sloppy thinking and coding. Tell the person that they need to be more consistent when it comes to production code because they are not the only ones that will be looking at it. It's just plain rude, selfish, and inconsiderate to write production code in an inconsistent style.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-03T22:28:30.063" />
  <row Id="23610" PostTypeId="2" ParentId="21067" CreationDate="2010-12-03T22:31:51.713" Score="1" ViewCount="" Body="&lt;p&gt;immutable state&lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-12-03T22:31:51.713" CommunityOwnedDate="2011-01-05T10:52:43.233" />
  <row Id="23611" PostTypeId="2" ParentId="23523" CreationDate="2010-12-03T22:33:54.770" Score="6" ViewCount="" Body="&lt;p&gt;Things change.  30 years ago, in computer graphics class, if you could light up a dot on a screen, you were doing good.  Today, recursive ray tracing in C++ is a routine undergraduate programming assignment - and the images some of the kids produce are IMPRESSIVE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Teaching methods change.  30 years ago, the introductory numerical methods class taught methods, and spent a little time on how to derive them, but not much on serious, detailed analysis.  A few years ago, when I had the opportunity to retake the class, I discovered that it was now a SERIOUS math class: it could have been subtitled &quot;Applications of Taylor's Theorem to Error Analysis&quot;.  (I enjoyed the class the first time.  I had a WONDERFUL time in it the second time.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your perspective on what is easy or difficult changes.  A few years ago, I sat in on a vector calculus class, partly as something to do that summer, while unemployed and job-hunting and waiting for my formal university readmission to come through, partly to gear up for tensor calculus.  I was surprised at how easy it was for me.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastEditorUserId="3852" LastEditorDisplayName="" LastEditDate="2011-05-02T08:16:38.277" LastActivityDate="2011-05-02T08:16:38.277" CommentCount="3" />
  <row Id="23612" PostTypeId="2" ParentId="23523" CreationDate="2010-12-03T22:46:25.233" Score="7" ViewCount="" Body="&lt;p&gt;I don't know if it's harder or easier, but definitely different. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm only a couple years out, but I've noticed that current students appear to me to have a more abstracted knowledge base, but lack fundamentals which cause them to falter on simple tasks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the whole 'calculator debate': &quot;They can do higher order math using a calculator, but can barely multiply without one.&quot;&lt;sup&gt;1&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt;I'm not advocating the truth of that particular debate, just using it as a refernce point in understanding my point.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-03T22:46:25.233" />
  <row Id="23613" PostTypeId="2" ParentId="23529" CreationDate="2010-12-03T22:56:23.310" Score="1" ViewCount="" Body="&lt;p&gt;Since there's no chance the instructions will give me a full picture of something as complex as vim, I'd go with the walkthrough so I have some sense of direction (and accomplishment). I don't think this can be generalised, however. Pick a concise and direct style, which should free you to work on the structure and the content.&lt;/p&gt;&#xA;" OwnerUserId="7950" LastActivityDate="2010-12-03T22:56:23.310" />
  <row Id="23615" PostTypeId="1" AcceptedAnswerId="23631" CreationDate="2010-12-03T23:05:22.463" Score="2" ViewCount="100" Body="&lt;p&gt;Things that are very common in a lot of form based software like OK, Cancel, Save, and Edit buttons.  File menus, &quot;select xyz&quot; text, etc.  Is there a resource online that has this in some of the world's most widely used languages?&lt;/p&gt;&#xA;" OwnerUserId="5789" LastActivityDate="2010-12-04T00:06:13.450" Title="Standard place to get localized strings for common elements of software?" Tags="&lt;internationalization&gt;&lt;strings&gt;" AnswerCount="2" CommentCount="0" />
  <row Id="23616" PostTypeId="2" ParentId="23523" CreationDate="2010-12-03T23:05:54.443" Score="1" ViewCount="" Body="&lt;p&gt;I have no idea whether things are easier or harder now than they were 10 or 25 years ago.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I do know that my particular institute of learning (Imperial College, London) is not going to have let things slide...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with computing is that things are still changing at a staggering rate - when I did my degree (82-85) there was very little notion of &quot;objects&quot;, now OO is fundamental. Design Patterns was published in '94 -  the things it addresses were in many cases not yet Phd theses then - yet now you'd hope they're fundamental (those patterns that have not further evolved) to a good course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will remember best that which you're doing now, your school should be developing its course continuously - and above all it should be teaching you to &lt;em&gt;think&lt;/em&gt; not (just) to code (teaching you a mental/philosophical framework that allows you to write good code, not simply teaching you the mechanics of particular languages).&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-12-03T23:05:54.443" />
  <row Id="23617" PostTypeId="2" ParentId="23537" CreationDate="2010-12-03T23:09:19.817" Score="5" ViewCount="" Body="&lt;h3&gt;Books&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Read good books on programming, software development process, and project management.  This way you pick up useful tricks from smart people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, I have recently read &quot;Clean Code&quot; which, among other things, talks about how functions should be very small.  If you have logical sections in your function that you can describe with a comment, you should make them into separate functions with descriptive names, even if they are only a few lines long and you only use them once.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keeping functions small seems like an obvious thing that every programmer knows.  However, this rule is often ignored, and it is almost never taken to such extreme.  I tried doing that, and it has worked wonders for code readability, maintainability, and testability.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-12-03T23:09:19.817" CommentCount="2" />
  <row Id="23619" PostTypeId="2" ParentId="23535" CreationDate="2010-12-03T23:20:46.997" Score="15" ViewCount="" Body="&lt;p&gt;When using the console on Linux, I sometimes use &lt;a href=&quot;http://en.wikipedia.org/wiki/Lynx_%28web_browser%29&quot; rel=&quot;nofollow&quot;&gt;Lynx&lt;/a&gt; when a GUI is not available. To the best of my knowledge lynx has no JavaScript support at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also used older mobile browsers with poor if any JavaScript support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However in those circumstances I don't expect to get full usability from the site. I am usually just using the Internet to look something up quickly (e.g. get a phone number). Therefore I think that your site's non-JavaScript interface should be limited to a passive reference role. Stack Exchange is a great example of this, you can look up answers, but you can't up-vote. It's just there to be used as a reference.&lt;/p&gt;&#xA;" OwnerUserId="2279" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-07T20:20:16.753" LastActivityDate="2011-02-07T20:20:16.753" CommunityOwnedDate="2011-01-13T17:07:25.307" CommentCount="3" />
  <row Id="23620" PostTypeId="2" ParentId="23542" CreationDate="2010-12-03T23:23:33.970" Score="1" ViewCount="" Body="&lt;p&gt;I found the Java language spec both formal and readable, and I think it has a sensible structure.&#xA;Some of the W3C specs could be good examples as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing the formal work could help you keep language complexity down and see the corner cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Headings brain dump: source encoding, lexing, fundamental types, literals, operators, expressions, simple statements, conditionals, loops, functions (definitions and calls), type declarations, modules, compilation units, variable scoping, various kinds of name resolution (eg imports, methods), memory model, side effects, typing, concurrency…&lt;/p&gt;&#xA;" OwnerUserId="7950" LastActivityDate="2010-12-03T23:23:33.970" CommentCount="1" />
  <row Id="23621" PostTypeId="1" CreationDate="2010-12-03T23:30:37.803" Score="0" ViewCount="437" Body="&lt;p&gt;It seems that in popularity, mercurial is very minor. You have Git which powers the Linux source + a bunch of other stuff on GitHub (diaspora anyone?). You have SVN which powers most of the projects on Google Code and a bunch of other source hosts. You even have CVS in deep dark places of Sourceforge. I've seen many many projects using all of the above mentioned VCS's.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you have Mercurial. There is only one major host that I know that hosts mercurial: Google Code. And I have only seen 2 or 3 projects that use it. Maybe I'm biased or too young, but I haven't seen many, and it doesn't seem to be growing like Git is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this true, that Mercurial is the least popular of the VCS's (pretend CVS doesn't exist)?&lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="7990" LastEditorDisplayName="" LastEditDate="2010-12-05T23:10:22.803" LastActivityDate="2010-12-05T23:10:22.803" ClosedDate="2010-12-05T19:01:12.737" Title="Is mercurial a &quot;minor&quot; revision control system?" Tags="&lt;mercurial&gt;&lt;revision-control-systems&gt;" AnswerCount="7" CommentCount="12" FavoriteCount="2" />
  <row Id="23622" PostTypeId="2" ParentId="23542" CreationDate="2010-12-03T23:35:27.620" Score="0" ViewCount="" Body="&lt;p&gt;Wirth designed and implemented many programming languages: of these, the specifications for the &lt;a href=&quot;http://www-old.oberon.ethz.ch/oreport.html&quot; rel=&quot;nofollow&quot;&gt;Oberon&lt;/a&gt; and &lt;a href=&quot;http://www-vs.informatik.uni-ulm.de:81/projekte/Oberon-2.Report/&quot; rel=&quot;nofollow&quot;&gt;Oberon2&lt;/a&gt; languages are notable for there completeness, terseness and readability.&lt;/p&gt;&#xA;" OwnerUserId="1050" LastActivityDate="2010-12-03T23:35:27.620" />
  <row Id="23623" PostTypeId="2" ParentId="23621" CreationDate="2010-12-03T23:36:09.793" Score="2" ViewCount="" Body="&lt;p&gt;There are many more VCSs out there than the four you mentioned here (three if you ignore CVS ;)). Mercurial may be less popular than Git or SVN, but I'd bet anything on it not being the least popular overall.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-03T23:36:09.793" />
  <row Id="23624" PostTypeId="2" ParentId="23621" CreationDate="2010-12-03T23:42:46.707" Score="12" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://bitbucket.org/&quot; rel=&quot;nofollow&quot;&gt;BitBucket&lt;/a&gt; - &quot;main&quot; Mercurial hosting&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;problem&quot; with Mercurial is that it's &quot;not interesting&quot; (There is an article right on this subject somewhere but I can't find it now). What I mean? It is a relatively polished product, works great under Windows (it's, let's say, native platform) and works without a bunch of tiny options and switches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Git on the other hand, although yes, it is probably a little more powerful, is much more interesting in a way. It has a thousand and one tiny things you can switch, and from that a thousand and one questions will naturally arise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I don't think Mercurial as any less powerful for five nines percent of users than Git (even Linus in his famous talk admitted that they're pretty equal); it is a system that just works. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But Git has the ka-bam, the x factor, the ... whatever you want to call it. It also has GitHub for which even Bryan also admitted is a little ahead of BitBucket (interface wise).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's all a question of how you wanna go about it ... do you wish to stay in the background, do your work, let RCS do its, and be happy and think nothing more of it, or do you wish your version control to be a talk subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like to think of it as a Mac vs. PC :-)&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-03T23:42:46.707" CommentCount="7" />
  <row Id="23625" PostTypeId="2" ParentId="23615" CreationDate="2010-12-03T23:44:14.693" Score="0" ViewCount="" Body="&lt;p&gt;You could use Google's &lt;a href=&quot;http://code.google.com/apis/language/&quot; rel=&quot;nofollow&quot;&gt;Translate API&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2010-12-03T23:44:14.693" CommentCount="4" />
  <row Id="23626" PostTypeId="2" ParentId="23621" CreationDate="2010-12-03T23:49:42.473" Score="2" ViewCount="" Body="&lt;p&gt;According to &lt;a href=&quot;http://www.ohloh.net/repositories/compare&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;, it's still edging out Bazaar. It's near the bottom of the big name, open source tools, but there are probably many more (proprietary) VCS systems than you know about.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-12-03T23:49:42.473" />
  <row Id="23627" PostTypeId="2" ParentId="23537" CreationDate="2010-12-03T23:50:57.033" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Talk your problem with a fellow programmer&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes you can get really great ideas that get you going.&lt;/p&gt;&#xA;" OwnerUserId="6078" LastActivityDate="2010-12-03T23:50:57.033" CommentCount="4" />
  <row Id="23628" PostTypeId="2" ParentId="23537" CreationDate="2010-12-03T23:51:59.930" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Copy, Paste &amp;amp; RegExp&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's really the best way to create most of a code you planned before and to fix bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;To quickly find a place in already existing code you should search for a part of a message like &quot;You've got 13 new messages&quot; → search for &quot;ve got .* new mess&quot;.&lt;/li&gt;&#xA;&lt;li&gt;When you create code that is bean-like you can usually copy a part (or whole) class and then simply replace some words. You can even write some transform macros.&lt;/li&gt;&#xA;&lt;li&gt;When you write HTML it is very useful to be able to quickly change your structure decisions like say remove all style attributes from span elements (&quot;&lt;code&gt;&amp;lt;span style.*?&amp;gt;&lt;/code&gt;&quot; → &quot;&lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt;&quot; for simple cases or a macro/function for advanced).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That is why I think mastering RegExp gives you a significant productivity boost. That and probably learning to type fast :-).&lt;/p&gt;&#xA;" OwnerUserId="9101" LastEditorUserId="9101" LastEditorDisplayName="" LastEditDate="2010-12-05T21:46:01.317" LastActivityDate="2010-12-05T21:46:01.317" CommentCount="2" />
  <row Id="23629" PostTypeId="2" ParentId="23535" CreationDate="2010-12-03T23:53:54.907" Score="1" ViewCount="" Body="&lt;p&gt;I can't decide whether some answers on this thread are hilarious or serious: cookies more dangerous than javascript ? LOL&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any site should be tested with js and cookies turned off however, it's a minimum imho.&lt;/p&gt;&#xA;" OwnerUserId="9094" LastActivityDate="2010-12-03T23:53:54.907" CommunityOwnedDate="2011-01-13T17:07:25.307" />
  <row Id="23631" PostTypeId="2" ParentId="23615" CreationDate="2010-12-04T00:06:13.450" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Open Source?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could probably find most terms like that by downloading MediaWiki or using: &lt;a href=&quot;http://translatewiki.net/&quot; rel=&quot;nofollow&quot;&gt;http://translatewiki.net/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that using this translation without a proper licensing notice might (and probably will) be a copyright infringement.&lt;/p&gt;&#xA;" OwnerUserId="9101" LastActivityDate="2010-12-04T00:06:13.450" />
  <row Id="23633" PostTypeId="2" ParentId="8301" CreationDate="2010-12-04T00:23:06.797" Score="1" ViewCount="" Body="&lt;p&gt;The &quot;designer&quot; or the &quot;creative guy&quot;.&#xA;You'll go from innocently putting together a mockup of the interface of an application to writing marketing text for the next online ad campaign or endless discussions about the &quot;right&quot; shade of blue before you know it x_x.&lt;/p&gt;&#xA;" OwnerUserId="9094" LastActivityDate="2010-12-04T00:23:06.797" />
  <row Id="23634" PostTypeId="2" ParentId="23472" CreationDate="2010-12-04T00:27:12.190" Score="1" ViewCount="" Body="&lt;p&gt;We have a JUnit test that looks for formatting issues. It runs as part of the build. I continually get bit by omitting a space between if, while or for and the opening parenthesis. Our code is consistently formatted, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://code.google.com/p/kawala/wiki/BadCodeSnippetsRunner&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/p/kawala/wiki/BadCodeSnippetsRunner&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7939" LastActivityDate="2010-12-04T00:27:12.190" />
  <row Id="23635" PostTypeId="2" ParentId="23535" CreationDate="2010-12-04T00:31:33.170" Score="2" ViewCount="" Body="&lt;p&gt;I use Google Chrome + AdBlock Plus, and have JavaScript turned on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: I use &lt;a href=&quot;https://chrome.google.com/extensions/detail/odjhifogjcknibkahlpidmdajjpkkcfn&quot; rel=&quot;nofollow&quot;&gt;NotScript&lt;/a&gt; now. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;s&gt;Chrome ALONE blocks almost all popups (I've only found one site [Chess.com] that broke through once), and AdBlock gets rid of all the ads, so I have no problems with those.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMO, JavaScript gives you a &quot;better experience&quot; overall, and as long as you visit trustworthy sites (that haven't been hacked...), you're fine. As &quot;computer guys&quot;/developers, I believe we should have a very keen &quot;internet sense&quot;, and be able to tell if a site may be malicious.&lt;/s&gt;&lt;/p&gt;&#xA;" OwnerUserId="6440" LastEditorUserId="6440" LastEditorDisplayName="" LastEditDate="2011-02-06T02:23:56.837" LastActivityDate="2011-02-06T02:23:56.837" CommunityOwnedDate="2011-01-13T17:07:25.307" CommentCount="1" />
  <row Id="23637" PostTypeId="2" ParentId="23455" CreationDate="2010-12-04T00:41:36.303" Score="5" ViewCount="" Body="&lt;p&gt;I have two quibbles about the question you're asking:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;• &lt;strong&gt;Which HTML5 are you asking about?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Different groups have different agendas/goals, and what any two groups mean when they each say &quot;HTML5&quot; can be drastically different. Sometimes it's a shorthand for both HTML5 and CSS3. Sometimes HTML5, CSS3 and jQuery. Sometimes they mean &lt;a href=&quot;http://www.w3.org/TR/html5/&quot; rel=&quot;nofollow&quot;&gt;the W3C's spec&lt;/a&gt;. Sometimes they mean &lt;a href=&quot;http://wiki.whatwg.org/wiki/FAQ#HTML5&quot; rel=&quot;nofollow&quot;&gt;the WHATWG's spec&lt;/a&gt; (sadly, the last two aren't identical). And so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before you can get a solid answer to your question, you first have to specify what you mean when you say HTML5.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;• &lt;strong&gt;It's not really black &amp;amp; white&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's entirely possible to implement &lt;em&gt;parts&lt;/em&gt; of HTML5 right now without any problems. Some other parts of it, not so much. But it's not a black or white issue; you don't have to junk everything that works in order to add some of what's in HTML5.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An article I think you might find useful is &lt;a href=&quot;http://www.infoworld.com/d/applications/how-use-html5-your-website-today-220&quot; rel=&quot;nofollow&quot;&gt;How to use HTML5 on your website today&lt;/a&gt; from &lt;em&gt;InfoWorld&lt;/em&gt;, written by, well, me.&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-12-04T00:41:36.303" CommentCount="1" />
  <row Id="23638" PostTypeId="2" ParentId="23259" CreationDate="2010-12-04T00:45:41.340" Score="0" ViewCount="" Body="&lt;p&gt;You could also cheat and use &lt;a href=&quot;http://en.wikipedia.org/wiki/Perl_6_rules&quot; rel=&quot;nofollow&quot;&gt;Perl 6 regular expressions&lt;/a&gt;. It's a misnomer because Perl 6 regexes are actually not regular expressions anymore. There's a readable regex recursion facility built in, so you can actually parse arbitrarily complex languages.&lt;/p&gt;&#xA;" OwnerUserId="1245" LastActivityDate="2010-12-04T00:45:41.340" />
  <row Id="23640" PostTypeId="2" ParentId="23259" CreationDate="2010-12-04T01:00:47.927" Score="1" ViewCount="" Body="&lt;p&gt;The only possible way is to inject thue code into intercal to produce piet source code. Doing so creates a funge which, when traversed correctly, produces a proactive synergistic framework which can then be used to create the correct regex for parsing html.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-12-04T01:00:47.927" />
  <row Id="23644" PostTypeId="2" ParentId="23535" CreationDate="2010-12-04T02:05:34.297" Score="1" ViewCount="" Body="&lt;p&gt;I only turn it of to browse Pr0n (bad neighborhood!) ;-) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I gave up trying to turn it off for regular browsing because things broke too much. And sometimes I do not even know that it was broken until I turned it back on.&lt;/p&gt;&#xA;" OwnerUserId="8460" LastEditorUserId="8460" LastEditorDisplayName="" LastEditDate="2010-12-04T02:23:35.053" LastActivityDate="2010-12-04T02:23:35.053" CommunityOwnedDate="2011-01-13T17:07:25.307" />
  <row Id="23645" PostTypeId="2" ParentId="23604" CreationDate="2010-12-04T02:07:47.587" Score="1" ViewCount="" Body="&lt;h1&gt;As Much As It Takes&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;to understand the project, the model, the risks, and the unknowns&lt;/p&gt;&#xA;&#xA;&lt;p&gt;especially the risks and unknowns&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-04T02:07:47.587" CommentCount="2" />
  <row Id="23646" PostTypeId="2" ParentId="23535" CreationDate="2010-12-04T02:35:26.907" Score="0" ViewCount="" Body="&lt;p&gt;I always have JavaScript on. I also always have my minimum restore kit, at my side.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We need line veto disabling of JavaScript, so I could say &quot;no alerts, no redirects, no websockets.&quot;  The functionality is in &lt;a href=&quot;http://en.wikipedia.org/wiki/WebKit&quot; rel=&quot;nofollow&quot;&gt;WebKit&lt;/a&gt; at least, judging from the console and various inspectors.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But yes, always JavaScript on.  Mainly because very soon people will use web sockets to wreak all sorts of evil, exactly like what happened when Flash got the &quot;cool&quot; VM.  Then I'll turn off JavaScript. If they let me of course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to enjoy as much of the good as I can. So I have some pleasant memories of this era.  I want to be impressed, I want to giggle at the JavaScript  follies, because I really miss what we had back in 2007, free sweet information flow like spring water, open sources everywhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I won't turn it off until I have to.&lt;/p&gt;&#xA;" OwnerUserId="8962" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-04-05T22:26:06.247" LastActivityDate="2011-04-05T22:26:06.247" CommunityOwnedDate="2011-01-13T17:07:25.307" />
  <row Id="23647" PostTypeId="2" ParentId="23604" CreationDate="2010-12-04T02:37:12.520" Score="0" ViewCount="" Body="&lt;p&gt;We use Scrum at my job, so I would say at a minimum you have to give enough design thought to break down your user stories into tasks.  You need a pretty good idea of what's needed to write tasks.  Remember that the key is to write them so &lt;em&gt;someone else&lt;/em&gt; could theoretically do the implementation.  I usually fold the little details (e.g., which algorithm to use) into the time estimate for my tasks.  If I need to do some no-kidding research, I'll make that its own task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When dealing with an Epic (a project that lasts multiple sprints), I'm a lot freer with what I call &quot;design.&quot;  Design in that case usually involves a rough sketch of the basic architecture and a handful of user stories that I expect to do.  It's not cowboy coding, but it's not a rigorous design process (think traditional waterfall model) either.  Something will come up (a requirements change or an a-ha moment) that changes the game somewhere down the road.  I try not to invest too much time in something that will likely get thrown out or heavily modified.&lt;/p&gt;&#xA;" OwnerUserId="1111" LastActivityDate="2010-12-04T02:37:12.520" />
  <row Id="23648" PostTypeId="2" ParentId="23535" CreationDate="2010-12-04T02:47:58.287" Score="2" ViewCount="" Body="&lt;p&gt;Javascript is disabled &lt;strong&gt;by default&lt;/strong&gt; for those of us on a Windows Server box.  Our IT policy blocks so many sites, the only way to read some content is to surf on a server, where JS is disabled by default.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although it isn't my preferred configuration, it's what I have to do sometimes.&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-12-04T02:47:58.287" CommunityOwnedDate="2011-01-13T17:07:25.307" />
  <row Id="23649" PostTypeId="2" ParentId="18392" CreationDate="2010-12-04T03:18:39.013" Score="0" ViewCount="" Body="&lt;p&gt;As much as I can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Easier said than done, coming from a full time university student. Schoolwork must take priority, of course, but I try to block off a couple of hours every few evenings, and on weekends, to work on one of my numerous projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Classes just finished, so I have some more time on my hands, and plan to put it to good use. I'll have to remember to squeeze in some study time for finals!&lt;/p&gt;&#xA;" OwnerUserId="8187" LastActivityDate="2010-12-04T03:18:39.013" />
  <row Id="23650" PostTypeId="2" ParentId="23331" CreationDate="2010-12-04T04:08:47.577" Score="25" ViewCount="" Body="&lt;p&gt;We all like powers of 2.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-04T04:08:47.577" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="2" />
  <row Id="23651" PostTypeId="2" ParentId="1516" CreationDate="2010-12-04T04:13:54.780" Score="0" ViewCount="" Body="&lt;p&gt;Don't follow stanards blindly.  Some standards are good, some are bad.  They serve various purposes and some, like the drafts of HTML5, serve to push a collection of the big browser makers and web developers in one particular direction that seems mostly good.  But always remember that there are loads of terrible things out there that have been standardized...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;COBOL was a standard, too.&lt;/p&gt;&#xA;" OwnerUserId="8467" LastActivityDate="2010-12-04T04:13:54.780" />
  <row Id="23652" PostTypeId="1" AcceptedAnswerId="23656" CreationDate="2010-12-04T04:17:32.560" Score="3" ViewCount="194" Body="&lt;p&gt;Take a large company, formed through many iterations of mergers and reorganizations. This company produces lots of different products that are all targeted to a specific industry. Most products share similar characteristics, such as communication standards and certification and safety requirements. But there is no unified development platform or model for the company. Each product has its own distinct hardware, and software is created in any number of languages. Most new products will be updates to older versions or target the same industry. What strategies would you use to promote software reuse?&lt;/p&gt;&#xA;" OwnerUserId="1197" LastActivityDate="2010-12-04T13:02:59.993" Title="How can I promote software reuse in a large company?" Tags="&lt;code-reuse&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="1" />
  <row Id="23653" PostTypeId="2" ParentId="23604" CreationDate="2010-12-04T04:19:01.440" Score="0" ViewCount="" Body="&lt;p&gt;The famous Jamie Zawinski said in the book &quot;Coders at Work&quot; something along the lines of...&#xA;It's better to spend just enough time in order to be able to code something we can use, then go from there. Depending on the project and competition, if you spend TOO much time planning and thinking of THE best way to do something and don't have a working product in a given time frame, your competitors will be ahead of the game and it will be a huge loss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't necessarily agree with it though, but you've got to give him credit for what he's accomplished.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-04T04:19:01.440" />
  <row Id="23654" PostTypeId="2" ParentId="18392" CreationDate="2010-12-04T04:27:29.127" Score="0" ViewCount="" Body="&lt;p&gt;I love hacking on code whenever I get a chance.  It gives me time to learn new languages and probably newer APIs.  My work generally involves working with PHP, but during my free time I build applications with python and enjoy doing them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I even maintain a list of applications as soon as I get the idea for them and when I find free time I try to build them one by one.  I find that programming is probably the only way that I relax or I'm able to empty my mind of emotions.&lt;/p&gt;&#xA;" OwnerUserId="6815" LastActivityDate="2010-12-04T04:27:29.127" />
  <row Id="23655" PostTypeId="2" ParentId="18295" CreationDate="2010-12-04T04:28:16.060" Score="2" ViewCount="" Body="&lt;p&gt;I have a CS degree. My coworker has a BS in Physics. Shortly after he was hired, we were both assigned to work on a Python based project (a language that neither of us knew). After 6 months he knew python better then me.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My friend has a Biology degree. I told him about a algorithm question that 9 out of 10 the job applicants that I had been interviewing could not answer in half an hour. He had it in 5 minutes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not the degree. A lot of folks with a CS degree can not program their way out of a paper bag. If someone can program, s/he can learn algorithms. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's my 2 cents.      &lt;/p&gt;&#xA;" OwnerUserId="9022" LastEditorUserId="9022" LastEditorDisplayName="" LastEditDate="2010-12-04T06:25:34.760" LastActivityDate="2010-12-04T06:25:34.760" />
  <row Id="23656" PostTypeId="2" ParentId="23652" CreationDate="2010-12-04T04:29:18.760" Score="5" ViewCount="" Body="&lt;p&gt;Given your constraints, I'm not sure software reuse is even a good idea.  The teams for your individual products are already intimately familiar with the particular tools and platforms for each specific product, so reinventing them to promote code reuse may be a waste of time and money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any reworking of this kind would most certainly involve corporate strategy.  You would have to make a compelling case that the restructuring would save time and resources, improve efficiencies, and make the company more profitable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A simpler approach: If you come out with any new products, you could try reusing pieces of &lt;em&gt;your most successful platform.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-04T04:38:08.207" LastActivityDate="2010-12-04T04:38:08.207" CommentCount="1" />
  <row Id="23657" PostTypeId="2" ParentId="23652" CreationDate="2010-12-04T04:33:03.827" Score="3" ViewCount="" Body="&lt;p&gt;I think you need to consider a large company to be for all practical purposes a wild software ecosystem; maybe not so heterogeneous as the entire world but still you'll have to expect that tool and software practices are pretty well diffused. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the question of how to promote code re-use in the company is not different from promoting it with the world. I am advocating, an essentially open source approach to development of commonly useful components. Let us know if you ever get it to work.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-12-04T04:33:03.827" />
  <row Id="23658" PostTypeId="2" ParentId="23621" CreationDate="2010-12-04T04:38:50.793" Score="7" ViewCount="" Body="&lt;p&gt;Mercurial rocks. &lt;a href=&quot;http://hginit.com/&quot; rel=&quot;nofollow&quot;&gt;Just ask Joel&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-04T04:38:50.793" CommentCount="2" />
  <row Id="23659" PostTypeId="2" ParentId="23652" CreationDate="2010-12-04T04:39:39.513" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;become the CIO&lt;/li&gt;&#xA;&lt;li&gt;promote software reuse&lt;/li&gt;&#xA;&lt;li&gt;profit!&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-04T04:39:39.513" CommentCount="5" />
  <row Id="23660" PostTypeId="2" ParentId="23621" CreationDate="2010-12-04T04:57:04.647" Score="2" ViewCount="" Body="&lt;p&gt;Codeplex has been supporting Mercurial for a while now. Interestingly, the results of &lt;a href=&quot;http://blogs.msdn.com/b/codeplex/archive/2010/11/27/survey-results-open-source-developer-preferences.aspx&quot; rel=&quot;nofollow&quot;&gt;this survey&lt;/a&gt; came out only earlier this week, and they show that Mercurial is gaining some popularity on Windows at a little less on linux.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for Bazaar - I've never used it (nor had the need to, because I've not seen any project using it).&lt;/p&gt;&#xA;" OwnerUserId="356" LastActivityDate="2010-12-04T04:57:04.647" />
  <row Id="23661" PostTypeId="2" ParentId="23404" CreationDate="2010-12-04T05:10:39.280" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Learn from your lesson and sign a contract!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Contracts are great. They put everyone on the same page and cover all the nitty gritty details that &quot;feeling someone out&quot; can't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My contracts include provisions for the following things that may be helpful in your case:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ownership: This specifies that until the client pays for the site in full as indicated on the final invoice, I own the code. Having a signed document for this leaves you with the power to pull the site and the client with little power to pursue you for damages. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Payment: I spell it out in the contract that the price quoted is not always the final price. Changes in scope add to the billed hours, and this will be reflected on the final invoice. Payments are due in 30 days of contract signing and every month late the client pays incurs a %5 of balance fee plus $50 (charging for the time it takes to send emails an deal with nasty clients who don't want to pay).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Liability: If the client does decide to hire a lawyer when you pull the site the contract stipulates that any legal action surrounding the transaction will be limited to the price of the contract. Essentially you will never have to give a client who sues you more money than they have paid you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do some research on contracts and don't ever start a project without one. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="8603" LastActivityDate="2010-12-04T05:10:39.280" />
  <row Id="23662" PostTypeId="2" ParentId="23535" CreationDate="2010-12-04T05:17:25.293" Score="0" ViewCount="" Body="&lt;p&gt;I am just wondering, is that possible!? LOLZ, because there is a bit of JavaScript on almost any website, and, in an Ajax driven website, what you going to do? Enjoy the layout!?&lt;/p&gt;&#xA;" OwnerUserId="9110" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-07T20:29:01.980" LastActivityDate="2011-02-07T20:29:01.980" CommunityOwnedDate="2011-01-13T17:07:25.307" CommentCount="2" />
  <row Id="23664" PostTypeId="2" ParentId="18295" CreationDate="2010-12-04T05:45:10.323" Score="1" ViewCount="" Body="&lt;p&gt;I had been the physics (actually astrophysics) route. I had figured I'd do research doing stuff like blowing up star models on computer. Never did anything like that professionally, but there are a lot of programming jobs for people who understand math and hard science. Few have had any formal CS training. I had an intro Fortran course 40years ago. Thats better than most scientists who end up programming, they get a position that needs a computer solution, and they are handed a syntax manual and told to get on with it. At least in phsics is mostly about problem solving, so such people can think about an issue, propose models, and figure out some way to approximate a solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I ended up in supercomputing, squeezing the most out of scientific algorithms, and even a bit of HW design. This was because of a combination of intense desire plus luck. I'm probably a bit of a hack programming wise, but I know how the hardware works, and how to mash algorithms and datastructures together to make stuff fly.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-12-04T05:45:10.323" />
  <row Id="23666" PostTypeId="2" ParentId="21067" CreationDate="2010-12-04T06:22:26.867" Score="2" ViewCount="" Body="&lt;h1&gt;Mixin Inheritance&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;It works in C++ and DataFlex...and almost nowhere else. Very useful in certain contexts.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-04T06:22:26.867" CommunityOwnedDate="2011-01-05T10:52:43.233" CommentCount="1" />
  <row Id="23667" PostTypeId="2" ParentId="22504" CreationDate="2010-12-04T06:23:44.713" Score="2" ViewCount="" Body="&lt;h1&gt;Acceptance Tests&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;So you'll know when you're done!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-04T06:23:44.713" CommentCount="2" />
  <row Id="23668" PostTypeId="1" AcceptedAnswerId="23672" CreationDate="2010-12-04T06:24:40.523" Score="8" ViewCount="194" Body="&lt;p&gt;This is a simple question, because I want to see if there is a collective tendency to do this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How much time do you spend snooping around in StackOverflow, Programmers, and all those &lt;strong&gt;heavenly&lt;/strong&gt; sites even when having work on the desk?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are these sites becoming facebook, in our case? I used to enter facebook from time to time... it's been like 20 days now and I dont even care about it. All I want to see is what are the latest post of my geeky friends around here..! Is this collective?&lt;/p&gt;&#xA;" OwnerUserId="8750" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-04T12:36:15.183" LastActivityDate="2011-03-20T06:36:22.543" Title="How much time do you spend in this site with work on your desk?" Tags="&lt;free-time&gt;&lt;social&gt;&lt;geek&gt;" AnswerCount="7" />
  <row Id="23669" PostTypeId="2" ParentId="23529" CreationDate="2010-12-04T06:25:13.043" Score="0" ViewCount="" Body="&lt;h1&gt;Walkthroughs&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;If you tell me, I forget. If I do it, I remember.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-04T06:25:13.043" />
  <row Id="23670" PostTypeId="2" ParentId="23455" CreationDate="2010-12-04T06:28:33.757" Score="0" ViewCount="" Body="&lt;p&gt;HTML4 is 13 years old, and still not universally/consistently supported. HTML5 is only about 2 years old, so I'd give it another &lt;em&gt;decade&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-04T06:28:33.757" CommentCount="1" />
  <row Id="23671" PostTypeId="2" ParentId="23548" CreationDate="2010-12-04T06:32:25.487" Score="7" ViewCount="" Body="&lt;h1&gt;Don't&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Tell them &quot;C#&quot; and if they follow through they'll figure it out. There's no point in explaining it in a vacuum.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[or tell them &quot;Java&quot; so they won't come to you for help!]&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-04T06:32:25.487" CommentCount="2" />
  <row Id="23672" PostTypeId="2" ParentId="23668" CreationDate="2010-12-04T06:33:29.260" Score="13" ViewCount="" Body="&lt;h1&gt;Way Too Much&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Like now, when I should be sleeping.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-04T06:33:29.260" CommentCount="4" />
  <row Id="23673" PostTypeId="2" ParentId="23668" CreationDate="2010-12-04T06:33:44.777" Score="0" ViewCount="" Body="&lt;p&gt;For me they are two different worlds. I visit them probably in the same proportions that I spend fostering development vs. friendships. When I need a break from one of those worlds I spend time in the other.&lt;/p&gt;&#xA;" OwnerUserId="3697" LastActivityDate="2010-12-04T06:33:44.777" />
  <row Id="23674" PostTypeId="2" ParentId="23404" CreationDate="2010-12-04T06:33:57.427" Score="0" ViewCount="" Body="&lt;p&gt;Miss Understood, this isn't really an answer to your question, but some advice for the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;You may have just paid £800 for a course in dishonest business practices. It's cheaper than it might have been, and it's up to you to make the most of that fee.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We all &quot;know&quot; that if we go into business, we might run into dishonest people. But if you're like me, you don't take it seriously until it happens to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even when you're on guard, there are many ways for people to be dishonest, and many dishonest people are very good at seeming honest. So you may get &quot;taken&quot; several times in the course of a career. I certainly have - since I began freelance programming in 1990, I can total up $40,000 in direct cash losses due to dishonest clients, $5,000 paid to a subcontractor who didn't deliver, thousands more I only received due to legal arm-twisting, and a $400,000 contract lost because a multi-billion dollar company gave my proposal to a competitor to undercut.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are a few things I've learned from all this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Always have a contract. Honest clients don't mind them, and dishonest ones need them. Especially the ones blather about &quot;handshake deals&quot;.&lt;/li&gt;&#xA;&lt;li&gt;If the client provides a contract, and you don't like it, demand changes. If you can't get a contract that suits you, don't do the project. Remarks about &quot;standard contracts we have to use&quot; are just hot air.&lt;/li&gt;&#xA;&lt;li&gt;Get everything important in writing. Summarize verbal conversations in a confirming email. If you have to go to court, it's really useful. People who might be inclined toward dishonesty are often aware of that, so it can prevent problems.&lt;/li&gt;&#xA;&lt;li&gt;Always have a way out, and be willing to use it. The first rule of business deals is: the person who can afford to walk away from the table first wins.&lt;/li&gt;&#xA;&lt;li&gt;Structure your payments so that you don't deliver final work until all your costs have been covered. That way, if they take your work and stiff you on the final payment, it's just profit and you haven't lost money.&lt;/li&gt;&#xA;&lt;li&gt;As soon as there's a payment problem, stop work and don't deliver anything.&lt;/li&gt;&#xA;&lt;li&gt;If your customer is a pain, sack them. Life is short, stress and worry suck, and there are other customers out there.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've quit doing fixed-price projects because they're too prone to problems. Many clients who want fixed-price also want free changes, and I hate arguing about that. Even if the client is great, it's far too easy to underestimate a project and lose money. My income and profitability have skyrocketed since I went to hourly-only work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My final advice is, don't be afraid to publicize the fact that your client stiffed you. If you can back it up with evidence, it's wonderful leverage. Why should you worry about damaging the business of some scumbag who stole from you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just went through that myself. I'm doing a programming project through an agency that started talking about paying me late. I sent them a stiff email this morning, and was just talking to my wife about calling the principal and telling them I was stopping work, when the agency said I'd have a wire transfer in a few days.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-04T06:33:57.427" />
  <row Id="23675" PostTypeId="1" AcceptedAnswerId="23711" CreationDate="2010-12-04T06:44:03.183" Score="3" ViewCount="462" Body="&lt;p&gt;I am currently reading the book Hello, Android, and am about 100 pages in. The problem is that even though I understand the instructions and what the code should do, I can't really put things together as to how things are connected(methods, views, things passed around different files(!!)). The sudoku example the book is following is too complicated to follow; maybe they should of instead gradually show and &lt;em&gt;explained&lt;/em&gt; each step to building such an app (let the reader build up with simple examples to more complicated ones). Maybe later in the author starts to explain things more clearly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I just keep reading/coding the book or should I focus more on my Java book and finish that first?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If someone has experience with the book, I would love to hear some thoughts.&lt;/p&gt;&#xA;" OwnerUserId="8660" LastActivityDate="2010-12-04T13:32:55.037" Title="Android learning curve (Hello, Android 3rd ed. Book)" Tags="&lt;learning&gt;&lt;android&gt;" AnswerCount="1" CommentCount="5" FavoriteCount="1" />
  <row Id="23676" PostTypeId="2" ParentId="23652" CreationDate="2010-12-04T06:45:27.070" Score="1" ViewCount="" Body="&lt;p&gt;A few years ago I actually was able to start a team that did this within the organization I was working for at the time. It was a great experience and I'd do it again in a heart-beat. The most difficult people to sell on the idea were the other developers, not the management. I had a good reputation with the different development groups so that was very helpful and we were very careful to keep that reputation as our team grew. By the time I left the company the project had been alive for two years and had around 8 full time developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Advise I could pass on:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Have a team that is responsible for nothing other than this&lt;/li&gt;&#xA;&lt;li&gt;Get your requirements from representatives of each development group so that they have buy-in&lt;/li&gt;&#xA;&lt;li&gt;Start with something that developers on a couple teams already want to share&lt;/li&gt;&#xA;&lt;li&gt;Document you code as well as you would expect a language to be documented&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3697" LastActivityDate="2010-12-04T06:45:27.070" CommentCount="2" />
  <row Id="23677" PostTypeId="2" ParentId="21067" CreationDate="2010-12-04T07:04:32.533" Score="1" ViewCount="" Body="&lt;p&gt;Nested functions.&lt;/p&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-12-04T07:04:32.533" CommunityOwnedDate="2011-01-05T10:52:43.233" />
  <row Id="23678" PostTypeId="2" ParentId="23314" CreationDate="2010-12-04T07:08:18.570" Score="0" ViewCount="" Body="&lt;p&gt;I've also written a few essays in response to recurring Stack Overflow questions on my blog. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jonsterling.github.com/2009/08/01/using-custom-delegates-in-objective-c.html&quot; rel=&quot;nofollow&quot;&gt;Using custom delegates in Objective-C&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jonsterling.github.com/2009/09/12/inheritance-or-protocols.html&quot; rel=&quot;nofollow&quot;&gt;Inheritance or Protocols?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jonsterling.github.com/2009/09/12/nsnotification-an-alternative-to-delegation.html&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;NSNotification&lt;/code&gt;: an alternative to delegation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You can see all of my essays on my website: &lt;a href=&quot;http://jonsterling.github.com/&quot; rel=&quot;nofollow&quot;&gt;http://jonsterling.github.com/&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2624" LastActivityDate="2010-12-04T07:08:18.570" />
  <row Id="23680" PostTypeId="2" ParentId="23668" CreationDate="2010-12-04T07:19:03.957" Score="0" ViewCount="" Body="&lt;p&gt;I just saw that I have been browsing here for 4 days already (with many open tabs in browser every day waiting to be read, bookmarked and closed). I was coding a php project when I started; my IDE is closed at the moment, it had to ;)&lt;/p&gt;&#xA;" OwnerUserId="9111" LastActivityDate="2010-12-04T07:19:03.957" />
  <row Id="23681" PostTypeId="2" ParentId="14028" CreationDate="2010-12-04T07:23:56.133" Score="0" ViewCount="" Body="&lt;p&gt;very rarely; I sometimes need some house/techno music for short &quot;active relaxation&quot; but I prefer quiet environment while coding, most of the time.&lt;/p&gt;&#xA;" OwnerUserId="9111" LastActivityDate="2010-12-04T07:23:56.133" CommunityOwnedDate="2011-05-22T12:09:23.967" />
  <row Id="23682" PostTypeId="2" ParentId="23668" CreationDate="2010-12-04T07:53:04.273" Score="2" ViewCount="" Body="&lt;p&gt;In a normal day i spend 3 to 4 hours a day here and on stackoverflow.com and for that reason i got the Fanatic badge on stackoverflow, It means i visit stackoverflow 100 days consecutively. I love to read all the lovely questions here &lt;/p&gt;&#xA;" OwnerUserId="8760" LastActivityDate="2010-12-04T07:53:04.273" />
  <row Id="23683" PostTypeId="1" CreationDate="2010-12-04T08:01:03.413" Score="15" ViewCount="498" Body="&lt;p&gt;I would like to ask you some questions about dirty code. There are some beginners who coded on a medium project. The code is a very huge ball of mud. They are not advanced programmers. They just know how to use keyboard an a little about java. They just wrote code with 12,000 lines in their main class, though, 6,000 lines belongs to NetBeans itself.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My job is to analyze the code and suggest a good way to maintain the code. My idea is to scrap the project and start a new one with OOP methodology. Recently I collected some notes and ideas about the problem, from this site and some others.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I have the followings questions:&lt;br&gt;&#xA;1. Should we repair the code, and change it to a OOP? We are now debugging it.&lt;br&gt;&#xA;2. The code has no comments, no documentation, no particular style of programming, and so forth. Changing it is really expensive and time consuming. What do we can do about this?&lt;br&gt;&#xA;3. How can I teach them to follow all the rules (commenting, OOP, good code quality, etc.)?&lt;br&gt;&#xA;4. The code is erroneous and error prone. What can we do? Testing? We almost write two or three A4 papers for correction, but it seems endless.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I should have to say that I am new with them. I think I have broken the rules about adding people too late to the project, as well. Do you think I have to leave them?  &lt;/p&gt;&#xA;" OwnerUserId="9112" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-04T12:34:12.627" LastActivityDate="2011-06-01T00:13:09.013" Title="Organizing uncommented, dirty code?" Tags="&lt;project-management&gt;&lt;code-quality&gt;" AnswerCount="8" CommentCount="9" FavoriteCount="3" />
  <row Id="23685" PostTypeId="2" ParentId="23683" CreationDate="2010-12-04T08:14:38.837" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I would re-write it completely.&lt;/strong&gt; Sometimes it is impossible to repair such a code. Another option is to make it working, without adding any new features. To teach the team to write good code (well designed, documented, with tests) let them to fix the code you have now. Let everybody to fix bugs/review the code of other developers, not her/his part. After some attempts they will understand that it is almost impossible to review/fix such codes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Adding people to late projects helps very rarely. Usually it breaks deadlines. You should do everything you can to finish the project successfully, and then think about leaving.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-04T08:14:38.837" CommentCount="2" />
  <row Id="23686" PostTypeId="2" ParentId="23668" CreationDate="2010-12-04T08:23:29.407" Score="2" ViewCount="" Body="&lt;p&gt;Zero, I can get to the site from work but I would find it too distracting.&lt;/p&gt;&#xA;" OwnerUserId="4960" LastActivityDate="2010-12-04T08:23:29.407" CommentCount="3" />
  <row Id="23687" PostTypeId="2" ParentId="23683" CreationDate="2010-12-04T08:32:48.057" Score="13" ViewCount="" Body="&lt;p&gt;Personally, I wouldn't start this project until I have a copy of &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131177052&quot; rel=&quot;nofollow&quot;&gt;Working Effectively with Legacy Code&lt;/a&gt; handy.  Seriously, it was written for exactly this type of thing.  It's full of strategies for dealing with tricky code, and goes into far more detail than I can give you here.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastEditorUserId="866" LastEditorDisplayName="" LastEditDate="2010-12-04T13:45:50.103" LastActivityDate="2010-12-04T13:45:50.103" CommentCount="5" />
  <row Id="23688" PostTypeId="2" ParentId="23683" CreationDate="2010-12-04T09:01:56.117" Score="2" ViewCount="" Body="&lt;p&gt;My advice will be not to scrap the entire code entirely. This is the day-to-day life issue, every development team face. Attack one part of the code at a time. Fix it, clean it, document it. And then move to the other part. The main thing is always keep some shipable code at the hand. Rewriting the entire code from the scratch will take the amount of the time that has been spent till now and there won't be any guarantee that it will be nicer than the current.&lt;br&gt;&#xA;But then also the people should avoid writing the code in this manner. Spend some more time in code reviews. Adapt to some uniform coding style. Discuss the design first and then write the code. Such simple things will make big changes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000069.html&quot; rel=&quot;nofollow&quot;&gt;Nice Blog telling why Netscape loose&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8820" LastEditorUserId="8820" LastEditorDisplayName="" LastEditDate="2010-12-04T12:41:30.113" LastActivityDate="2010-12-04T12:41:30.113" CommentCount="2" />
  <row Id="23689" PostTypeId="2" ParentId="22504" CreationDate="2010-12-04T09:16:38.363" Score="1" ViewCount="" Body="&lt;h1&gt;Giant whiteboards&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Preferably whole walls of whiteboard, as they are probably the best collaboration tool available.   Have sufficient space around the whiteboard to allow for impromptu meetings. Preferably close to the water cooler or coffee machine.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-04T09:16:38.363" CommentCount="1" />
  <row Id="23690" PostTypeId="2" ParentId="23683" CreationDate="2010-12-04T09:59:26.750" Score="0" ViewCount="" Body="&lt;p&gt;My suggestion is a combination of @duros's &amp;amp; @Manoj R's answers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start from scratch, keeping in mind to create good code/OOP/commented/etc this time, refer/copy&amp;amp;paste from your old code. As you meet the bad parts of your old code, rewrite/refactor them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your developers are not well trained, I think its good to send them for courses. Its important for regular retraining in the fast changing IT industry&lt;/p&gt;&#xA;" OwnerUserId="526" LastActivityDate="2010-12-04T09:59:26.750" />
  <row Id="23691" PostTypeId="1" AcceptedAnswerId="23696" CreationDate="2010-12-04T10:10:53.790" Score="30" ViewCount="2299" Body="&lt;p&gt;Leaving the whole &lt;em&gt;pie&lt;/em&gt; to only a few of them, amplifying the huge differences between the two status. Pay is a (huge) one, not having to do overtime is another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I leave the question open to hopefully get many great answers on all the different subjects that affects that feeling and decision not to go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: While this question is really global, I'll be interested in any studies, facts, articles, opinions regarding local markets such as US, India and even Australia in which I'm in love with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT2&lt;/strong&gt;: Bounty of 500 points for anyone that will come with recent studies on the subject. If multiple answers, will pick the one with the most upvotes.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-06T18:59:21.280" LastActivityDate="2011-06-05T00:53:43.063" CommunityOwnedDate="2011-01-13T23:31:13.497" Title="Why are more programmers not freelance these days?" Tags="&lt;career&gt;&lt;freelance&gt;" AnswerCount="28" CommentCount="23" FavoriteCount="17" />
  <row Id="23692" PostTypeId="2" ParentId="14028" CreationDate="2010-12-04T10:20:54.820" Score="1" ViewCount="" Body="&lt;h2&gt;I can only work with noise from &lt;a href=&quot;http://simplynoise.com/&quot; rel=&quot;nofollow&quot;&gt;simplynoise&lt;/a&gt; or nature sounds like rainshowers.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;br /&gt;&#xA;If there's someone talking or music is on loud speaker inside the office...I just can't focus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's why most of the time I wear earphones when working.&lt;/p&gt;&#xA;" OwnerUserId="7577" LastActivityDate="2010-12-04T10:20:54.820" CommunityOwnedDate="2011-05-22T12:09:23.967" CommentCount="1" />
  <row Id="23693" PostTypeId="2" ParentId="23691" CreationDate="2010-12-04T10:22:08.540" Score="6" ViewCount="" Body="&lt;p&gt;Here in Italy for two main reasons: too much &lt;strong&gt;bureaucracy&lt;/strong&gt; and high &lt;strong&gt;taxes&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="74" LastEditorUserId="74" LastEditorDisplayName="" LastEditDate="2010-12-04T10:28:55.510" LastActivityDate="2010-12-04T10:28:55.510" CommunityOwnedDate="2011-01-13T23:31:13.497" CommentCount="2" />
  <row Id="23694" PostTypeId="2" ParentId="23691" CreationDate="2010-12-04T10:24:14.080" Score="4" ViewCount="" Body="&lt;p&gt;The law of inertia, may be. Most of them are already working for some company and are well settled. They may not want to change the line and dig into new territory. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-04T10:24:14.080" CommunityOwnedDate="2011-01-13T23:31:13.497" />
  <row Id="23695" PostTypeId="2" ParentId="23691" CreationDate="2010-12-04T10:34:26.237" Score="6" ViewCount="" Body="&lt;p&gt;People start working for companies because of other benefits you get from salaried jobs, social activities, girls, regular pay rise and of course tried and tested path for the most of us. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you are freelancing, you are on your own, irregular project orders may be, bidding for projects can be confusing as in how much to bid, is it very high or very low. After some experience you start bidding accurately but that takes some time. While not having projects, loneliness makes you start thinking negatively. Many people who are freelancing I am sure are well organized and they know how to get the most of them. They are busy bees most of the day   and they get to enjoy their flexible timings&lt;/p&gt;&#xA;" OwnerUserId="7478" LastActivityDate="2010-12-04T10:34:26.237" CommunityOwnedDate="2011-01-13T23:31:13.497" CommentCount="6" />
  <row Id="23696" PostTypeId="2" ParentId="23691" CreationDate="2010-12-04T10:35:18.017" Score="52" ViewCount="" Body="&lt;p&gt;Don't know about others, but thinking about myself:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I have a job that I'm currently happy with. I work regularly and get paid regularly. Of course there's always too much things to do, but still, the work is mostly interesting and the &lt;strong&gt;workload is approximately constant and predictable&lt;/strong&gt;. Hardly so with freelancing (think of work requests as a &lt;a href=&quot;http://en.wikipedia.org/wiki/Poisson_process&quot; rel=&quot;nofollow&quot;&gt;Poisson process&lt;/a&gt;, and how the stability of frequency depends on the average frequency; a cafeteria with 10 customers and 1 toilet is quite different from a cafeteria with 100 customers and 10 toilets).&lt;/li&gt;&#xA;&lt;li&gt;Going freelance would require &lt;em&gt;me&lt;/em&gt; to do all the &lt;strong&gt;marketing, selling, bureaucracy&lt;/strong&gt; etc. boring and scary (but admittedly, important) stuff. Actually I don't think I could do it successfully. At least I would hate it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-12-04T11:11:48.050" LastActivityDate="2010-12-04T11:11:48.050" CommunityOwnedDate="2011-01-13T23:31:13.497" CommentCount="8" />
  <row Id="23697" PostTypeId="2" ParentId="23075" CreationDate="2010-12-04T10:48:15.960" Score="2" ViewCount="" Body="&lt;p&gt;Oh boy, that's a lot if you really meant everything happened to you!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;WARNING&lt;/strong&gt;: In many of the points below you might feel like I criticize you and that I want to make you responsible for the mis-happs and not consider external factors. I don't. It's just that you don't give much details, and I just provide check-lists of actions to undertake to ensure that things don't go awry. I know I've done lots of mistakes myself (everybody does) and we only get better if we learn from them. And to learn from them, we need to start to see them as mistakes in the first place, and accept responsibility for what went wrong on our part. Hell, accept responsibility for what went wrong in other people's parts, you can learn from that as well.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Your project failed&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Not much you can do to mitigate it now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However you can do a lot to avoid that to reproduce in the future. I'd suggest trying to improve your project and time management skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the books with the best ratio ((valid advice) / pages) I've read on the subject, while maybe not the best, it Rob Thomsett's &lt;a href=&quot;http://books.google.com/books?id=W1xQlOjIQH4C&quot; rel=&quot;nofollow&quot;&gt;Radical Project Management&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't really specify what your project failed, but I'd assume a combination of thing which brought unbalance in the usual &lt;a href=&quot;http://en.wikipedia.org/wiki/Project_triangle&quot; rel=&quot;nofollow&quot;&gt;cost/time/qualiy triangle&lt;/a&gt;. The most important factor in my eyes is to lead the project and the development while being always in touch with both your technical actors (devs and testers) but also your stakeholders. Far too many projects fail because they don't listen to sponsors or stakeholders and don't push them to get involved in the process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they're not involved, you cannot know what they want. If you cannot know what they want, you cannot deliver it. If you don't deliver it, they'll be unhappy. That's a failure.&#xA;Furthermore, if you don't involve your stakeholders, they're disconnected from the reality of software engineering, meaning they don't understand your issues. If they are often in touch with you, they get a better grasp of what you have to deal with. They'll be more able  to understand when you tell them that a &quot;small&quot; [laughter] feature will take months. They can trust your planning better because they helped building it. A project cannot succeed with just &quot;specs at the beginning, dev, testing, delivery at the end&quot;. It just never does. You might deliver what was asked for in the specs, but not what the customer really wanted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most important as well, do a &lt;a href=&quot;http://en.wikipedia.org/wiki/Retrospective&quot; rel=&quot;nofollow&quot;&gt;retrospective&lt;/a&gt;, and ensure it is ego-less and not a blame-game. Just identify issues.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;You failed 10 interviews in a row&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Keep Trying.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While there might be something wrong with your way of conducting interviews, you will eventually find something. Be sure sure to re-evaluate your expectations and profile.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Are you really as good as you think you are?&lt;/li&gt;&#xA;&lt;li&gt;Are you targeting the market best suited to your profile?&lt;/li&gt;&#xA;&lt;li&gt;Are you targeted the role/title/position that reflects your experience or are you trying to jump over too high a fence?&lt;/li&gt;&#xA;&lt;li&gt;Does your resume really present YOU? Or do you think you pushed the envelope to get interviews, and that then in interviews they have the feeling to be speaking to a different person?&lt;/li&gt;&#xA;&lt;li&gt;When you're done with an interview, why did it go wrong? Do you know? If you don't, pick up the phone and call the recruitment agency or directly the company you interviewed for. Be polite, make it clear you don't discuss their decision, but that it is important for your and only fair that you are notified of your short-comings, or you won't be able to address them.&lt;/li&gt;&#xA;&lt;li&gt;Do you research the company? The interviewer?&lt;/li&gt;&#xA;&lt;li&gt;Do you dress appropriately? Do you make the effort of smiling, being amiable and to control your language and gestures?&lt;/li&gt;&#xA;&lt;li&gt;Do you show genuine interest in the position or are you there only for the money or to get a job?&lt;/li&gt;&#xA;&lt;li&gt;Are your salary expectations in sync with the market and with your level of skills?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also, it may not be your fault at all. Maybe:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You simply weren't the man they were looking for;&lt;/li&gt;&#xA;&lt;li&gt;Someone else was better suited for the role (or preferred for a reason not related to you);&lt;/li&gt;&#xA;&lt;li&gt;The position got cancelled;&lt;/li&gt;&#xA;&lt;li&gt;Timing wasn't right.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;What you have spent days coding was rejected by your team&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I have been in that situation. Again, not much you can do to mitigate that except:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Keep it in the SCM for later.&lt;/li&gt;&#xA;&lt;li&gt;Maybe try to push small bits and pieces progressively into the major code base instead of a huge refactoring.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But there are things again you can do to prevent this sort of situation:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Why did it happen? What's the reason of the rejection?&lt;/li&gt;&#xA;&lt;li&gt;Most of the time when I see this happen (and that was the case for me too), it means the developer went solo or in cow-boy-coding mode and produced things that were never asked for. Code that doesn't come from business requirement might be fancy and &quot;better&quot;, but often a waste of time and money. Plus, it will cost even more if you integrate it as it will need testing again. Think like the people who deal you the money: you have to be efficient on that level as well.&lt;/li&gt;&#xA;&lt;li&gt;Was the quality of the software produced satisfying? Did it comply to standards and conventions in activity at your company?&lt;/li&gt;&#xA;&lt;li&gt;Did you periodically (and frequently!) report to direct managers about this? Did you occasionally exchange with other developers of the team? If not, they don't know anything about it, it will be a huge time cost for them to assess and review it now. It does NOT account to the same time in the end. It's like always trying to put off cleaning your rental apartment and then trying to clean it only when you move out: It's a crappy job, it's exhausting, it's harder than it would have been if done regularly, and it often won't be done right.&lt;/li&gt;&#xA;&lt;li&gt;Did you produce produce tests? Units tests? Integration tests?&lt;/li&gt;&#xA;&lt;li&gt;Was your code checked into the SCM regularly? Was it in a different branch? Did it need a different branch or could it have been done in trunk? Putting off committing code is usually a bad sign. Obviously sometimes you're tempted to do it, but you just shoot yourself in the foot.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;Nobody listens to your ideas in your company&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Well, there are 2 options here, and we'll look at both:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You're ideas were bad.&lt;/li&gt;&#xA;&lt;li&gt;You're ideas were good.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Let's start assuming they were bad (again, self-reflecting on that and accepting your idea was just plain bad might be difficult, I know). What do you do to change that?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Why did you come up with the idea? What's the &lt;em&gt;rationale&lt;/em&gt;? Is there a real need to what your idea tries to bring to the table?&lt;/li&gt;&#xA;&lt;li&gt;How did you come up with the idea? Did you do it on your own? Did you share? Brainstorm? Plan? Prototype? (do these in the right order. If it fails on the way, then discard the idea, don't keep going. Or at least not on your work schedule.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Ideas are only ideas. If you just suggest them as ideas and they are rejected, I don't see why you would feel bad about it. If however you act up on them without notifying anyone and THEN only submit your ideas and they get rejected, obviously I feel the frustration at the time wasted. And your managers do to!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming your ideas were good:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Was your presentation good?&lt;/li&gt;&#xA;&lt;li&gt;Was your way of delivering the presentation good? (I'm a developer, I know what I'm talking about: We're grumpy, &lt;a href=&quot;http://programmers.stackexchange.com/questions/4693/why-are-so-many-programmers-arrogant-closed&quot;&gt;arrogant&lt;/a&gt;, &lt;a href=&quot;http://programmers.stackexchange.com/questions/22210/why-are-programmers-so-pedantic&quot;&gt;pedantic&lt;/a&gt; PITAs who are always right and with whom it's &lt;a href=&quot;http://programmers.stackexchange.com/questions/6178/what-are-the-kinds-of-programmers-that-you-cannot-possibly-work-with-closed&quot;&gt;hard to work with&lt;/a&gt; because often of &lt;a href=&quot;http://programmers.stackexchange.com/questions/18495/egoless-programming-is-it-possible-or-even-desirable&quot;&gt;our disproportionate egos&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;li&gt;Do you have a plan to implement it? Did you think about the cost and time? Did you think &#xA;how it benefits users/customers? Did you think how it impacts sales? Did you think how working on that idea might impact other projects and priorities? You're going to tell me, &quot;why should I do all these, they're the job of my manager and the marketing or sales teams?!&quot; Except right now, you are trying to do part of all their jobs.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;The design pattern you introduced with force in your team created a mess&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Why did you introduce the pattern?&lt;/li&gt;&#xA;&lt;li&gt;If it created a mess, then it probably either:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;wasn't the right pattern,&lt;/li&gt;&#xA;&lt;li&gt;wasn't implemented right,&lt;/li&gt;&#xA;&lt;li&gt;wasn't integrated right.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;How did you introduce it? How exactly do you define the state &quot;mess&quot;?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;less readable code?&lt;/li&gt;&#xA;&lt;li&gt;less maintainable?&lt;/li&gt;&#xA;&lt;li&gt;builds are broken?&lt;/li&gt;&#xA;&lt;li&gt;There are different kinds of &quot;mess&quot;. Knowing what the mess &lt;em&gt;is&lt;/em&gt; might help to know what the failure in there was, and if it was the design pattern's fault.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also, I am a bit surprised by the approach itself. You had to actually &lt;strong&gt;push&lt;/strong&gt; for a design pattern to be introduced? That seems rather odd. A pattern is either there already, or you need to refactor a part of your solution according to the pattern. You don't &lt;strong&gt;push&lt;/strong&gt; it like you would the adoption of a framework or technology (like people &lt;strong&gt;pushed&lt;/strong&gt; really hard to have XML everywhere, and now like people start pushing to be able to write &lt;strong&gt;HTML5&lt;/strong&gt; on their product cover in big bright letters).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why did you have to push? Why was there resistance? Maybe it was justified.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Were you able to you provide examples that this particular pattern would help to improve your code base in significant ways (for instance, by matching it with an example of &lt;a href=&quot;http://books.google.com/books?id=h2sdNbKW65gC&quot; rel=&quot;nofollow&quot;&gt;Refactoring to Patterns&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Your colleague (you don't like) got the promotion that you wanted to get&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is the promotion a good fit for you?&lt;/li&gt;&#xA;&lt;li&gt;Are you better than your colleague?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A better technician?&lt;/li&gt;&#xA;&lt;li&gt;A better manager?&lt;/li&gt;&#xA;&lt;li&gt;A better advisor?&lt;/li&gt;&#xA;&lt;li&gt;A better people person?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Do you follow rules?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Are you late in the morning?&lt;/li&gt;&#xA;&lt;li&gt;Leaving early?&lt;/li&gt;&#xA;&lt;li&gt;Often coming up with an excuse for a thing or another?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Do you enforce rules or even create rules?&lt;/li&gt;&#xA;&lt;li&gt;Are you innovative and proactive, but reasonably so and not wasting time (see previous points rejected ideas and rejected code enhancements).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I don't know if the questions are separate or not. If it's a whole and all that would happen to someone, it would be hard to give them a promotion.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;You deleted the production database&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In general I'd suggest starting to read some literature on &lt;a href=&quot;http://en.wikipedia.org/wiki/Business_continuity_planning&quot; rel=&quot;nofollow&quot;&gt;BCP&lt;/a&gt;/&lt;a href=&quot;http://en.wikipedia.org/wiki/Disaster_recovery&quot; rel=&quot;nofollow&quot;&gt;DRP&lt;/a&gt;. While not exactly meant for that use case, it would provide solutions to address this type of &quot;miss-haps&quot;.&lt;/li&gt;&#xA;&lt;li&gt;Never work on the production database, except to:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;set it up,&lt;/li&gt;&#xA;&lt;li&gt;migrate it,&lt;/li&gt;&#xA;&lt;li&gt;upgrade it.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;You shouldn't have access to the production database anyways. Only temporarily. With limited rights. Very. Limited. Rights.&lt;/li&gt;&#xA;&lt;li&gt;If you need to work on the production database:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Back up first, you genius!&lt;/li&gt;&#xA;&lt;li&gt;In fact, backup as often as your hard-drives permit. And when time comes to clean up old back-ups, still keep some, just increase the delta between kept versions and remove the ones in the middle.&lt;/li&gt;&#xA;&lt;li&gt;Pair up with someone (actually, team up with as many as possible). Remember Eric S. Raymond's &lt;a href=&quot;http://en.wikipedia.org/wiki/Linus%27_Law&quot; rel=&quot;nofollow&quot;&gt;Linus Law&lt;/a&gt;: Given enough eyeballs, all bugs are shallow.&lt;/li&gt;&#xA;&lt;li&gt;Use roll-back transactions.&lt;/li&gt;&#xA;&lt;li&gt;Copy the production database and perform mock tests. It's the same as when doing major upgrades on a server: you first try it ou on a VM, then you can be more confident that things won't go sideways.&lt;/li&gt;&#xA;&lt;li&gt;Be prepared: if it fails, what do you do? Where are the backups? Did you practice rolling out a backup? Reversing a change? If you haven't, why would you do a change first? Learn things in the right order.&lt;/li&gt;&#xA;&lt;li&gt;Don't work on the production database.&lt;/li&gt;&#xA;&lt;li&gt;Don't work on the production database.&lt;/li&gt;&#xA;&lt;li&gt;Don't work on the production database.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Keep programs opening connections to the databases on separate desktops. If possible, use different color-styles on each. Same if you connect to servers via remote desktop: give them very different back-ground and task bar colors. If you connect via SSH, make the hostname appear clearly in the prompt. If using color-enabled SSH terminals, use them here as well.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Completely off-topic note&lt;/em&gt; but that's what I first thought of when I read the question's title as I thought it referred to software failures... I had a software who implemented a BlackHole class to manage a very special kind of exceptions in one of the components. It may seems like (and really is) an obviously weird and dirty hack, but the naming itself was so superb we all appreciated it for a fairly cool way to handle a failure! :)&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-12-04T17:33:27.683" LastActivityDate="2010-12-04T17:33:27.683" />
  <row Id="23698" PostTypeId="2" ParentId="23075" CreationDate="2010-12-04T10:57:40.773" Score="2" ViewCount="" Body="&lt;p&gt;You can always put the blame on others, and try to relax. But at the same time learn not to commit same mistake again. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some insane reasons you can come up with. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* Your project failed.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I told to do this thing, but they did that thing. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* You failed 10 interviews in a row.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Stupid companies. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* What you have spent days coding was rejected by your team.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I only did implementation. He/she designed it. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* Nobody listens to your ideas in your company.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Don't listen to their ideas. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* The design pattern you introduced with force in your team created a mess.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;My design was good. The implementation was a mess. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* Your colleague (you don't like) got the promotion that you wanted to get.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Colleague had an affair with the boss. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* You deleted the production database.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Its the fault of DBA. Why should I have delete permission on first place? &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-04T10:57:40.773" />
  <row Id="23699" PostTypeId="2" ParentId="23652" CreationDate="2010-12-04T11:17:35.123" Score="1" ViewCount="" Body="&lt;p&gt;Don't look for the big revolution - look for small but cumulative evolutionary steps. Look for the opportunities where some positive change is relatively easy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't push the idea so hard you're seen as a crank.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2010-12-04T11:17:35.123" />
  <row Id="23700" PostTypeId="2" ParentId="1516" CreationDate="2010-12-04T11:19:36.370" Score="2" ViewCount="" Body="&lt;p&gt;I would say 'adhere' to standards as best as you can - but don't waste too much time nitpicking, sometimes you can over engineer a standard HTML/CSS in the pursuit of standards perfection and be left in the worst state.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an example, in one of our web applications we have a page for invoicing. The page lists a long list of items to be invoiced and contains several columns. The original developer went so overboard with the &quot;Tables are evil&quot; syndrome he designed the whole 'table' structure in CSS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pretty impressive, until you are the one who now needs to add an extra few columns to the report, watch those columns go all over the place because you need to readjust the CSS settings, width etc..... nightmare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the developer wasn't so anal about following so called standards right down to the tee, he would of realised that actually, a regular html table would make soo much more sense, the invoice date is after all, tabular.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This leads me onto semantic HTML. I do believe that your HTML should only contain elements that describe your page. Styles should be stored in CSS and at the very worst, entered in the 'Style' attribute of the HTML tag where applicable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also see no valid reason why one should not put their HTML through a validator - provided you are getting valid HTML you are pretty much there.&lt;/p&gt;&#xA;" OwnerUserId="7885" LastActivityDate="2010-12-04T11:19:36.370" />
  <row Id="23701" PostTypeId="2" ParentId="23691" CreationDate="2010-12-04T11:36:07.650" Score="33" ViewCount="" Body="&lt;p&gt;I would love to work for myself, and even recently tried being a freelancer for 3 months earlier this year.  It didn't work out quite like I hoped, and after I got a good offer from a good company, I went back to full-time salaried employment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are the negatives I experienced while freelancing:&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Writing code has become a commodity&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Let's say I can make &lt;strong&gt;$X&lt;/strong&gt; an hour (average) on salary.  Insurance benefits, stock options, bonuses, etc., generally make that &lt;strong&gt;$X * (1.2 to 1.35)&lt;/strong&gt; or so, let's call that &lt;strong&gt;$Y&lt;/strong&gt;.  Here in the US, as a freelancer, you pay approximately 7% higher taxes (you pay the extra Social Security your employer normally pays).  There is also the time you spend networking and bidding which you won't get paid for, and the cost of equipment.  So, I would give &lt;strong&gt;$X * 1.5&lt;/strong&gt; as my standard rate, and I would be negotiable down to &lt;strong&gt;$Y&lt;/strong&gt;. Most contacts I was getting for work would tell me their budget was &lt;strong&gt;$X * 0.75&lt;/strong&gt; &lt;em&gt;or less&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, they shouldn't be budgeting at an hourly rate, since they have no idea how efficient I would be nor how much better off they would be with code that would last with their business, but I didn't have the time to put a case together to attempt to convince them otherwise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also bid on several projects online at a rate that would be sustainable for me (&lt;strong&gt;$Y&lt;/strong&gt;), but I simply didn't get responses.  Online was even worse because I was competing in a real commodity market.  There were people from who knows which country where the cost of living is much, much less, with much less experience, bidding at probably 6 times lower or more than I was.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's just not fun to work in a commodity marketplace.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Networking&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I have many contacts, but just didn't have enough to consistently get work. This is a sub-point of commodity coding &amp;mdash; if I was making much more per hour than on salary, this wouldn't be an issue, since I could spend a lot of my time networking and finding new jobs.  As it was, my margins on jobs I could get would be too thin to spend much time doing anything else.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Disposable projects&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I like being able to build efficiency by spending time here and there on architecture, tools, and simply becoming very familiar with the project.  When you are working on projects that are only 40-100 hours each, you probably aren't going to be able to gain much efficiency over time, unless you are using your own frameworks for all of them, and even then, project knowledge doesn't really help you from one to the next.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When working at a company, on a team, you are (hopefully) building more for yourself and your career than just a checklist of past projects you've worked on.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I had one large project during the 3 months that I worked as a freelancer (I left my previous job by choice, hoping to really start working for myself).  Around the time I got paid for that job, I got two offers from good companies that were better than my previous job, and I decided I couldn't pass it up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For these reasons, I can't see myself going back to working on my own unless I've got a software product of my own to build a company around.  And that I would &lt;em&gt;love&lt;/em&gt; to do.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-04T11:36:07.650" CommunityOwnedDate="2011-01-13T23:31:13.497" CommentCount="3" />
  <row Id="23702" PostTypeId="2" ParentId="23652" CreationDate="2010-12-04T11:51:28.063" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The problem with code reuse is that code needs to evolve differently in different products.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Say that you have two products (1 and 2) that have some similar characteristics, and you then extract a library (L) out of them that contains those shared characteristics. Seems like a good idea: you now just improve the library, and the improvements go &quot;automagically&quot; to both products.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, over time, you build more products on top of that library. Eventually you have 10 products. You'll notice that &lt;em&gt;changing the library has become an extremely stiff process&lt;/em&gt;. You have to consider all those 10 products when implementing a change, and after you've implemented it, you have to test it on all those products. What if some of the products now need to evolve differently, even though they were kind of similar in the start? You could either branch the library so that different products have their own versions of the library (no more sharing advantage), or start building all kind of switches, options, adapter layers and special cases to accommodate for all special needs in the single united codebase. The end resuld could be  a &lt;a href=&quot;http://en.wikipedia.org/wiki/Big_ball_of_mud&quot; rel=&quot;nofollow&quot;&gt;Big ball of mud&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may be doable, but it's not as rosy as one might hope. At least it increases risk.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-12-04T12:30:36.093" LastActivityDate="2010-12-04T12:30:36.093" CommentCount="1" />
  <row Id="23703" PostTypeId="2" ParentId="23535" CreationDate="2010-12-04T11:57:58.413" Score="0" ViewCount="" Body="&lt;p&gt;Booting from a live CD/DVD (physically or in a VM) makes me feel a lot better about allowing Flash and JavaScript to do their thing.  If I remember correctly Linux &lt;a href=&quot;http://en.wikipedia.org/wiki/Linux_Mint&quot; rel=&quot;nofollow&quot;&gt;Mint&lt;/a&gt; has Flash support out of the box.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as site development, I usually do a reasonable amount of div swapping and menus in JavaScript, but I try to make everything look right and basically work with CSS.&lt;/p&gt;&#xA;" OwnerUserId="4534" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-04-05T22:31:04.027" LastActivityDate="2011-04-05T22:31:04.027" CommunityOwnedDate="2011-01-13T17:07:25.307" />
  <row Id="23704" PostTypeId="2" ParentId="23691" CreationDate="2010-12-04T11:58:32.373" Score="17" ViewCount="" Body="&lt;p&gt;Ok, two myths there:&#xA;1) Pay - it may look like there are wide gaps but there are a lot of hidden costs to employing someone that a contractor or freelancer has to bear for themselves&#xA;2) No overtime. Really? It may not be called overtime but you're not liable to have to work any less hard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On top of which - depending on location - employees get paid holiday and all sorts of other benefits (e.g. pensions, paid sick leave) that freelancers have to fund themselves (c.f. hidden costs above).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Further, a freelancer has to do all the stuff that programmers often struggle with - find business in the first place, manage the work they have, invoice, chase invoices, chase invoices some more (getting paid is much, &lt;em&gt;much&lt;/em&gt; easier when the company runs a payroll every month), deal with taxes and expenses and capital allowances and all sorts of things that you tend not to have to worry about as an employee.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-12-04T11:58:32.373" CommunityOwnedDate="2011-01-13T23:31:13.497" CommentCount="3" />
  <row Id="23705" PostTypeId="2" ParentId="23691" CreationDate="2010-12-04T12:26:50.480" Score="3" ViewCount="" Body="&lt;p&gt;I imagine that every one of us wants stability and freelancing isn't exactly the same as an 8 hours job where you know that at the end of the month you will have an $$$ fat paycheck. Also, when freelancing you will probably spend a lot of time looking for work, dealing with contracts, clients etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I, for one, would prefer a stable job and income even if sometimes I'll have to work extra hours.&lt;/p&gt;&#xA;" OwnerUserId="2849" LastActivityDate="2010-12-04T12:26:50.480" CommunityOwnedDate="2011-01-13T23:31:13.497" />
  <row Id="23706" PostTypeId="2" ParentId="23683" CreationDate="2010-12-04T12:32:51.393" Score="21" ViewCount="" Body="&lt;h1&gt;Step 0: Backup to SCM&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Because, as hinted to by JBRWilkinson in the comments, &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Revision_control&quot; rel=&quot;nofollow&quot;&gt;version control&lt;/a&gt;&lt;/strong&gt; is your first line of defense against (irreversible) disaster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do also backup software configuration details, procedures to create deliverables, etc...&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Step 1: Test First&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Then start by &lt;strong&gt;writing tests&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;for what works,&lt;/li&gt;&#xA;&lt;li&gt;and for what fails.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;No matter what you decide to do, you're covered. You can now either:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;start &lt;em&gt;from scratch&lt;/em&gt; and &lt;em&gt;re-write&lt;/em&gt;,&lt;/li&gt;&#xA;&lt;li&gt;or &lt;em&gt;fix&lt;/em&gt; it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;My advice would be to &lt;strong&gt;start the general architecture from scratch&lt;/strong&gt;, but &lt;strong&gt;extract&lt;/strong&gt; from the mess the parts that validate checkpoints and to refactor these as you see fit.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Step 2: Verify and Monitor&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Set up a &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Continuous_integration&quot; rel=&quot;nofollow&quot;&gt;Continuous Integration&lt;/a&gt;&lt;/strong&gt; system (to complement &lt;em&gt;step 0&lt;/em&gt; and &lt;em&gt;step 1&lt;/em&gt;) AND a &lt;strong&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/java/library/j-ap08016/index.html&quot; rel=&quot;nofollow&quot;&gt;Continuous Inspection&lt;/a&gt;&lt;/strong&gt; system (to prepare for &lt;em&gt;step 4&lt;/em&gt;).&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Step 3: Stand on the Shoulders of Giants&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;(as you always should...)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;&lt;a href=&quot;http://books.google.com/books?id=h2sdNbKW65gC&quot; rel=&quot;nofollow&quot;&gt;Refactoring to Patterns&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;&lt;a href=&quot;http://books.google.com/books?id=1MsETFPD3I0C&quot; rel=&quot;nofollow&quot;&gt;Refactoring: Improve the Design of Existing Code&lt;/a&gt;&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;&lt;a href=&quot;http://books.google.com/books?id=CQlRAAAAMAAJ&quot; rel=&quot;nofollow&quot;&gt;Working Effectively with Legacy Code &lt;/a&gt;&lt;/em&gt; (as &lt;a href=&quot;http://programmers.stackexchange.com/questions/23683/organizing-uncommented-dirty-code/23687#23687&quot;&gt;recommended by Jason Baker&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h1&gt;Step 4: Clean&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;That sort of goes without saying, but instead of skimming though the code yourself, you may want to simply run linters / static analyzers and other tools on the broken codebase to find errors in the design and in the implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you might also want to run a code formatter, that will already help a bit with the housekeeping.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;But really, &lt;strong&gt;test&lt;/strong&gt;. &lt;em&gt;A lot&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2011-06-01T00:13:09.013" LastActivityDate="2011-06-01T00:13:09.013" CommentCount="12" />
  <row Id="23707" PostTypeId="2" ParentId="5233" CreationDate="2010-12-04T12:56:18.297" Score="0" ViewCount="" Body="&lt;p&gt;I learned programming from books and have been working as a developer for 12 years.  Personally I regret not learning at university. I have wasted much time clawing to understand things that are sometimes far easier to get if someone just explains the concept. Books can't answer questions that you want to ask. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-04T12:56:18.297" />
  <row Id="23708" PostTypeId="2" ParentId="23652" CreationDate="2010-12-04T13:02:59.993" Score="0" ViewCount="" Body="&lt;p&gt;The best way to make software reusable is to make it &lt;em&gt;visible&lt;/em&gt; and &lt;em&gt;understandable&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If nobody knows it exists, nobody will use it.&lt;/li&gt;&#xA;&lt;li&gt;If nobody can figure out how to use it, nobody will use it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For developers this means making good documentation and usecases.  I'll discuss Java since that is what I know the best:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Use &lt;a href=&quot;http://www.oracle.com/technetwork/java/javase/documentation/index-jsp-135444.html&quot; rel=&quot;nofollow&quot;&gt;JavaDoc&lt;/a&gt;:&lt;/em&gt;  This allows for creating cross-referenced API documentation where the skeleton is created automatically and you have well-defined places for putting in HTML-snippets &lt;strong&gt;in your code&lt;/strong&gt; which will then end up in the web documentation.  See the &lt;a href=&quot;http://download.oracle.com/javase/6/docs/api/&quot; rel=&quot;nofollow&quot;&gt;official Java documentation&lt;/a&gt; for a good example.  In my opinion this is some of the best code based documentation available today.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Put the JavaDoc in a searchable place&lt;/em&gt;:  For people to be able to find it you need to make it public.  Have an internal web server where all documentation go to, probably subclassed by project.  In a perfect world have a SINGLE web site incorporating &lt;em&gt;ALL&lt;/em&gt; classes developed inhouse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Make it easy to get:&lt;/em&gt;  Have a location link from which it is extremely simple to pull out the source code (or the library).  Eclipse has some mechanics for doing so.  Preferably the source from a source repository, as the source repository can TELL who has worked on a given piece of code, giving a good idea of who to talk to in case that you need assistance with that code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Have good usage examples:&lt;/em&gt; The easiest way to show how to use it, is with good unit tests, as they demonstrate how to use the code, and what to expect back.  Being runnable they can verify that the code runs as described.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-04T13:02:59.993" />
  <row Id="23709" PostTypeId="2" ParentId="23691" CreationDate="2010-12-04T13:22:24.080" Score="5" ViewCount="" Body="&lt;p&gt;Because&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Programming is becoming (if not already) a commodity skill and competition is cut throat. That makes pay rate&lt;/li&gt;&#xA;&lt;li&gt;To make serious money you need to keep in touch with the bleeding edge of technology these days and that means a lot of investment into yourself. Most people by nature are loathe to make such efforts. In good old times, C++ or COBOL alone would have fetched you 30-50$/hr if not more, these days you need a lot (hell lot really) more than that. How many people do you know who are learning &lt;a href=&quot;http://gpgpu.org/&quot; rel=&quot;nofollow&quot;&gt;GPGPU&lt;/a&gt; with C++ or a distributed source control like &lt;a href=&quot;http://git-scm.com/&quot; rel=&quot;nofollow&quot;&gt;Git&lt;/a&gt; just to stay ahead of the curve?&lt;/li&gt;&#xA;&lt;li&gt;Industries by themselves are penny pinching, making do with limited developer pool to do extra work which could earlier be contracted out&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-04T13:22:24.080" CommunityOwnedDate="2011-01-13T23:31:13.497" CommentCount="3" />
  <row Id="23710" PostTypeId="2" ParentId="14584" CreationDate="2010-12-04T13:29:07.270" Score="0" ViewCount="" Body="&lt;p&gt;It should be something any developer builds in to the process from the ground up to a greater or lesser degree, depending on application etc. Unfortunately, as devs don't tend to quote for security, buyers don't tend to think of it (I know, this is a bit catch-22, because if the buyers want the cheapest quote, it maybe won't include security)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a developer you can gain a definite advantage if you are skilled in this area - I'm specifically thinking about banks and financial services, but other industries are also applicable. Currently they may budget 70 - 100k in training for a new graduate to be brought up to speed on processes, security and other specifics to that organisation. If you can save them 30k of that, that's a good CV plus!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the UK, the &lt;a href=&quot;http://www.instisp.org&quot; rel=&quot;nofollow&quot;&gt;Institute of Information Security Professionals&lt;/a&gt;, and in Scotland, the &lt;a href=&quot;http://coe-security-and-cybercrime.net&quot; rel=&quot;nofollow&quot;&gt;Centre of Excellence in Security and Cybercrime&lt;/a&gt; are working closely with Universities to help review course materials, provide guest lectures on real world implications of poor coding and facilitating summer placements (eg software developers placed into fraud divisions in law enforcement.) Most of the supporting organisations are doing this for free, as it has the potential to save them a large amount of money - sounds like value to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(disclaimer - I have been security guy for various global organisations)&lt;/p&gt;&#xA;" OwnerUserId="9062" LastEditorUserId="9062" LastEditorDisplayName="" LastEditDate="2010-12-07T15:53:32.217" LastActivityDate="2010-12-07T15:53:32.217" />
  <row Id="23711" PostTypeId="2" ParentId="23675" CreationDate="2010-12-04T13:32:55.037" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Stick with it, and get yourself a good Java book&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have read and finished the Android book and I found it to be very useful. However, I have a lot of experience with Java so the language syntax was not difficult for me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Android is more than just Java - it is an entire environment.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As with all new environments you need to start small and try out different things. I agree that the Sudoku application does get a bit complex and you're left wondering what it is trying to achieve, but later examples dealing with 3D, maps and music are much more fun. The books examples are available online and can be downloaded and played with so that you don't have to spend ages typing stuff in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But... it's important &lt;em&gt;to spend time typing the stuff in at the beginning&lt;/em&gt;. You need to understand how your editor (IDE) is going to allow you to navigate the framework (syntax completion, where to look for errors etc). Android involves a lot of XML manipulation to get the various parts working together and that is where the skill lies. You need to be able to see the patterns in the XML to identify what is missing/misconfigured for the type of application you're writing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;So what's a good Java book?&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Opinions here will vary, but I found &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131482114&quot; rel=&quot;nofollow&quot;&gt;Just Java 2 by Peter van der Linden&lt;/a&gt; to be very thorough and an interesting read (loved the light relief sections at the end of each chapter). Also &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596009208&quot; rel=&quot;nofollow&quot;&gt;Head First Java by Kathy Sierra&lt;/a&gt; comes highly recommended by some of my colleagues. &lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-04T13:32:55.037" CommentCount="5" />
  <row Id="23713" PostTypeId="2" ParentId="15350" CreationDate="2010-12-04T13:39:12.017" Score="0" ViewCount="" Body="&lt;p&gt;This decision seems to be based around what is practical for most users. Unlike programmers and techies, many users of online banking seem to have difficulty remembering a 4 character pin, let alone a password of decent length. Which is one of the drivers for 2-factor authentication - give them a device which produces a password so all they need to do is not lose the device!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With respect to the &quot;why no special characters&quot; - it isn't laziness, it's a sensible decision on reducing the potential attack landscape. If you allow apostrophes, hashes, equals signs etc, you need to be 100% confident your input validation routine will catch SQL injection attempts for example - if you whitelist only those chars you want to appear in the input, you save yourself a whole lot of potential damage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I agree in principle with Matteo - in an ideal world passwords should only be stored with a 1 way hash, however a bank would lose customers if they did this, so there has to be a way. Often, in addition to the hashes stored in the main database, there is an encrypted field, either in the same database, or in a separate passwords database just for this function&lt;/p&gt;&#xA;" OwnerUserId="9062" LastActivityDate="2010-12-04T13:39:12.017" />
  <row Id="23714" PostTypeId="2" ParentId="7008" CreationDate="2010-12-04T13:46:47.373" Score="0" ViewCount="" Body="&lt;p&gt;Web applications: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Based on the number of attacks - see stats by &lt;a href=&quot;http://www.verizonbusiness.com/resources/reports/rp_2010-data-breach-report_en_xg.pdf&quot; rel=&quot;nofollow&quot;&gt;Verizon&lt;/a&gt;, &lt;a href=&quot;http://www.owasp.org/index.php/Category%3aOWASP_Top_Ten_Project&quot; rel=&quot;nofollow&quot;&gt;OWASP&lt;/a&gt;, &lt;a href=&quot;https://files.pbworks.com/download/loBVUfSYDp/webappsec/29750234/WHIDWhitePaper_WASC.pdf&quot; rel=&quot;nofollow&quot;&gt;WHID&lt;/a&gt; and others - the single biggest thing you can do to improve the security of a web application is &lt;strong&gt;implement solid input validation&lt;/strong&gt;. Do not trust anything the client/browser sends you. This will pretty much sort your SQL injection issue, and help out in a number of other areas including field/buffer overflow.&lt;/p&gt;&#xA;" OwnerUserId="9062" LastActivityDate="2010-12-04T13:46:47.373" />
  <row Id="23715" PostTypeId="2" ParentId="23367" CreationDate="2010-12-04T13:52:08.130" Score="0" ViewCount="" Body="&lt;p&gt;[Edit:] First of all, read about the &lt;a href=&quot;http://www.paulgraham.com/avg.html&quot; rel=&quot;nofollow&quot;&gt;Blub Paradox&lt;/a&gt; and why some languages are &quot;better&quot; than others!&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;To learn new ways of thinking, I would suggest to learn at first…&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;LISP/Scheme&lt;/li&gt;&#xA;&lt;li&gt;Erlang&lt;/li&gt;&#xA;&lt;li&gt;Prolog&lt;/li&gt;&#xA;&lt;li&gt;Python&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Each of then in 2 or 3 days. And then these two (for the next X years):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Haskell&lt;/li&gt;&#xA;&lt;li&gt;C++&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Starting with Haskell for let's say 1 month, reading the old (partially obsolete) but excellent book &lt;a href=&quot;http://www.cs.kent.ac.uk/people/staff/sjt/craft2e/&quot; rel=&quot;nofollow&quot;&gt;The Craft of Functional Programming&lt;/a&gt; and whatever support the Haskell community at &lt;a href=&quot;http://haskell.org&quot; rel=&quot;nofollow&quot;&gt;haskell.org&lt;/a&gt; can give you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then C++, using &lt;a href=&quot;http://cplusplus.com&quot; rel=&quot;nofollow&quot;&gt;cplusplus.com&lt;/a&gt; and the &lt;a href=&quot;http://www.aristeia.com/books.html&quot; rel=&quot;nofollow&quot;&gt;books from Scott Meyers&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These two languages are -IMHO- the most suitable languages for a) near-hardware programing (c++) and b) program development (Haskell).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ exists as replacement for C, so that you can program in a less low-level way and still be near the hardware level of the target machine. Bjarne Stroustrup called his language &quot;mid-level&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haskell might be the most advanced of all industry compliant languages. (The average industry uses old and/or young obsolete technologies, anyway and anywhere.) One could say, it exists as least insufficient language to replace the mathematical notation as programming language – but of course, that might change someday.&lt;/p&gt;&#xA;" OwnerUserId="7258" LastActivityDate="2010-12-04T13:52:08.130" />
  <row Id="23716" PostTypeId="2" ParentId="14524" CreationDate="2010-12-04T13:56:38.857" Score="1" ViewCount="" Body="&lt;p&gt;Check out the relevant open-source projects in your programming language of choice and domain in places like github, sf.net etc&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actively participate in working with other developers in open-source, subscribe yourself to mailing lists, read the latest ideas in &lt;a href=&quot;http://ibm.com/developerworks&quot; rel=&quot;nofollow&quot;&gt;IBM Developeworks&lt;/a&gt;, &lt;a href=&quot;http://queue.acm.org/&quot; rel=&quot;nofollow&quot;&gt;ACM Queue&lt;/a&gt; and &lt;a href=&quot;http://www.ddj.com&quot; rel=&quot;nofollow&quot;&gt;Dr Dobbs&lt;/a&gt;... Best of luck!&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-04T13:56:38.857" />
  <row Id="23718" PostTypeId="1" AcceptedAnswerId="36376" CreationDate="2010-12-04T14:27:12.137" Score="6" ViewCount="1048" Body="&lt;p&gt;I believe a lot of Fortran is used in HPC, but not sure if that's only for legacy reasons. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Features of modern programming languages like garbage collection or run-time polymorphism are not suitable for HPC since speed matters so not sure where C# or Java or C++ come in. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any thoughts?&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2011-01-13T13:47:49.990" Title="What's the most used programming language in high performance computing? And why?" Tags="&lt;programming-languages&gt;" AnswerCount="6" CommentCount="12" FavoriteCount="4" />
  <row Id="23719" PostTypeId="2" ParentId="23535" CreationDate="2010-12-04T14:27:56.753" Score="8" ViewCount="" Body="&lt;p&gt;One thing that hasn't been mentioned in this thread is what happens if your script breaks. In many cases, further execution of script on the page might be disabled, hence needing a way to fallback to a more simplistic way of navigating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A script may break for various reasons, but the most obvious ones are incompleted requests for the .js files, various addons that might change the DOM (&lt;a href=&quot;http://en.wikipedia.org/wiki/Adblock_Plus#Adblock&quot; rel=&quot;nofollow&quot;&gt;AdBlock&lt;/a&gt;, etc.) or introduce objects that aren't well namespaced.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This has nothing to do with people explicitly disabling script or whatever. As a side note, many modern routers, firewall software, etc. often have a feature to disable/filter out script, Flash, etc. from websites, so it might even be configured on a network layer leaving the user unaware of this (think public cafés, schools or other environments where other paranoid people have configured the access to Internet).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is usually my main argument for developing sites that degrade gracefully, at least with the basic functionality of the site (layout and navigation).&lt;/p&gt;&#xA;" OwnerUserId="9120" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-07T20:25:51.360" LastActivityDate="2011-02-07T20:25:51.360" CommunityOwnedDate="2011-01-13T17:07:25.307" CommentCount="2" />
  <row Id="23720" PostTypeId="2" ParentId="23691" CreationDate="2010-12-04T14:30:53.693" Score="4" ViewCount="" Body="&lt;p&gt;Well, here in the US I have known many freelance programmers who could not get enough work to support their families. I have hired several who gave up freelancing for this reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have considered doing it, but it is very difficult to get started without a potentially long interruption or reduction in income. Until you have a stable of satisfied clients you will not have the luxury of opening your door each time you need more work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I have tried getting started by doing smaller projects through freelance sites but the competition for those is insane with ridiculous low-ball bids and immature buyers who have no idea what they want or what it costs.&#xA;.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-12-04T14:30:53.693" CommunityOwnedDate="2011-01-13T23:31:13.497" CommentCount="2" />
  <row Id="23722" PostTypeId="2" ParentId="23683" CreationDate="2010-12-04T15:03:35.147" Score="7" ViewCount="" Body="&lt;p&gt;I have been there several times. My rule is: if the software is not trivial (more than 1 week work for the resource you have) and it does work, then keep it and proceed with incremental refactoring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the software doesn't really work (very high number of bugs, unclear requirements etc.) than it's better to rewrite it from scratch. The same if it's quite small.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point in refactoring (as in the Fowler's book and Kerievsky's one &lt;a href=&quot;http://www.industriallogic.com/xp/refactoring/&quot; rel=&quot;nofollow&quot;&gt;http://www.industriallogic.com/xp/refactoring/&lt;/a&gt;) is that it keep the system working, maybe the refactoring will take double time but the risks are zero.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rewriting from scratch could introduce many risks, from misunderstanding requirements to wrong implementation (after all most of the team will be the same).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I actually saw a complex procedure being rewritten from scratch twice and still not working as expected.&lt;/p&gt;&#xA;" OwnerUserId="9115" LastActivityDate="2010-12-04T15:03:35.147" CommentCount="7" />
  <row Id="23723" PostTypeId="2" ParentId="23718" CreationDate="2010-12-04T15:21:22.190" Score="14" ViewCount="" Body="&lt;p&gt;In my years of experience, up to 5 years ago, it has always been Fortran and C. Which one depended mostly on whether the people came more from engineering or more from CS school of thought &lt;em&gt;(I don't know how to put this better, okey? :-)&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In what we were doing Fortran was almost exclusively used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From what I read around nowadays, with the new updates to the Standard F2003/08 and with the introduction of Co-Arrays, it seems to be gaining momentum again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, one, if not somewhat biased article - &lt;a href=&quot;http://queue.acm.org/detail.cfm?id=1820518&quot; rel=&quot;nofollow&quot;&gt;The Ideal HPC Programming Language&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-04T15:21:22.190" CommentCount="1" />
  <row Id="23724" PostTypeId="2" ParentId="23535" CreationDate="2010-12-04T15:23:25.457" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Only if the client explicitly requests it&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you have a significant number of users that will be effected, it's simply extra effort.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-07T20:39:57.017" LastActivityDate="2011-02-07T20:39:57.017" CommunityOwnedDate="2011-01-13T17:07:25.307" />
  <row Id="23725" PostTypeId="2" ParentId="23718" CreationDate="2010-12-04T15:26:59.867" Score="10" ViewCount="" Body="&lt;p&gt;Just some anecdotal note. I haven't done any high performance computing myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For calculations (number crunching), Fortran and C. Yes it is for legacy reasons: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ample availability of public domain source code and recipes.&lt;/li&gt;&#xA;&lt;li&gt;Both support &lt;a href=&quot;http://en.wikipedia.org/wiki/Message_Passing_Interface&quot; rel=&quot;nofollow&quot;&gt;MPI&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Both languages are compiled.&lt;/li&gt;&#xA;&lt;li&gt;Compilers for both languages are provided by all HPC OSes and vendors.&lt;/li&gt;&#xA;&lt;li&gt;Vectorizing compilers are available.&lt;/li&gt;&#xA;&lt;li&gt;Both requires crazy level of tweaking to get high performance when ported to a different cluster (different memory size, number of CPUs etc)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;This actually explains why the open source code is important: tweaking is necessary, therefore the original recipe must be written in a language that is good for manual tweaking.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The current trend for number crunching is to write program generators that automate the source code tweaking in order to optimize performance given the cluster characteristics. These generators often output in C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A second trend is to write in some specialized dialect of C for specific GPUs or Cell BE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For non-numerical work, such as programs that process data from a database (but not the database itself), it is much cheaper to run on clusters of &quot;commodity&quot; machines without the expensive customized networking equipments. This is usually called &quot;High Throughput Computing&quot;. And Python is the #1 language here (using the famous Map Reduce). Prior to Python, batch processing projects can be written in any language, and are usually dispatched by &lt;a href=&quot;http://www.cs.wisc.edu/condor/&quot; rel=&quot;nofollow&quot;&gt;Condor&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-12-04T15:26:59.867" CommunityOwnedDate="2010-12-04T15:26:59.867" CommentCount="4" />
  <row Id="23726" PostTypeId="2" ParentId="23691" CreationDate="2010-12-04T15:28:44.253" Score="3" ViewCount="" Body="&lt;p&gt;Good programmers who stayed in the freelance realm are good with customer service, business oriented and proactive. I think being freelance is much more challenging rather than being a programmer for a corporate world. The challenge do come along with rewards. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that I think all developers should at least pick up side freelance project if they have corporate jobs as their main source of income. In doing this it gives them the opportunity to market, network and also test the water of freelance world.&lt;/p&gt;&#xA;" OwnerUserId="9122" LastActivityDate="2010-12-04T15:28:44.253" CommunityOwnedDate="2011-01-13T23:31:13.497" />
  <row Id="23727" PostTypeId="2" ParentId="23691" CreationDate="2010-12-04T15:53:49.520" Score="17" ViewCount="" Body="&lt;p&gt;Being self-employed is great. You can name your own price, and only have to work half a day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You even get to choose whether it's the first twelve hours or the second twelve hours.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-04T15:53:49.520" CommunityOwnedDate="2011-01-13T23:31:13.497" CommentCount="5" />
  <row Id="23728" PostTypeId="2" ParentId="23455" CreationDate="2010-12-04T16:01:06.377" Score="0" ViewCount="" Body="&lt;p&gt;Depending on what elements of HTML5 you're referring to, some are only available in FF beta 4 and IE beta 9 right now. I just ran an HTML5 test on FF beta 4 and got a result of 207 out of 300. If you want to try the tester - &lt;a href=&quot;http://html5test.com/&quot; rel=&quot;nofollow&quot;&gt;http://html5test.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some options for forcing it to work, such as the HTML5 Boilerplate, though I haven't been able to use it yet myself - &lt;a href=&quot;http://html5boilerplate.com/&quot; rel=&quot;nofollow&quot;&gt;http://html5boilerplate.com/&lt;/a&gt; And Modernizr can help - &lt;a href=&quot;http://www.modernizr.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.modernizr.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, my position is to focus more on CSS and JavaScript with a solid base in XHTML 1.1 for now. I like to keep the foundation strong and use progressive enhancement on top of the HTML. Jumping to HTML5 means building ahead and then spending a lot of time making it backwards compatible, instead of making a solid foundation and looking forward. XHTML 1.1 encourages clean coding and is the way I like to code for now.&lt;/p&gt;&#xA;" OwnerUserId="7722" LastActivityDate="2010-12-04T16:01:06.377" />
  <row Id="23729" PostTypeId="2" ParentId="23535" CreationDate="2010-12-04T16:23:39.453" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Or do some of us actually utilize&#xA;  &lt;strong&gt;&lt;em&gt;certain&lt;/em&gt;&lt;/strong&gt; web services without&#xA;  JavaScript enabled&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My browsing falls into three categories. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Normal Browsing&lt;/strong&gt;  - On Safari or Chrome (Mac OS X)&lt;br&gt;&#xA; - iGoogle, Stack Overflow, some blogs&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Special&lt;/em&gt; websites&lt;/strong&gt;: - Firefox, with NoScript, AdBlock Plus and FlashBlock&lt;br&gt;&#xA;Sites with unnecessarily heavy JavaScript. (Some Indian sites for Bollywood movies/music, if that is important. &lt;em&gt;Unnecessarily heavy script&lt;/em&gt; - the page itself reloads every 5 mins or so)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Mobile Browsing:&lt;/strong&gt;&lt;br&gt;&#xA;I used to have a Nokia 5310. Lost it. Now I have an even older Sony Ericsson W700i. I browse using it when I am traveling (Opera Mini is pretty good). This is the place (the absence of) JavaScript is a pain. I don't want to interact with the site (mostly), just read. Still most of the sites are &lt;em&gt;impossible&lt;/em&gt; to view. &lt;/p&gt;&#xA;" OwnerUserId="2902" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-07T20:35:07.383" LastActivityDate="2011-02-07T20:35:07.383" CommunityOwnedDate="2011-01-13T17:07:25.307" />
  <row Id="23734" PostTypeId="2" ParentId="23683" CreationDate="2010-12-04T17:13:13.090" Score="1" ViewCount="" Body="&lt;p&gt;If it works, refactor it. There are tools to help you do that. If it doesn't work, use the magical code improvement command, i.e. &lt;code&gt;deltree&lt;/code&gt; on Windows resp. &lt;code&gt;rm -rf&lt;/code&gt; on Linux.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-04T17:13:13.090" CommentCount="3" />
  <row Id="23735" PostTypeId="1" CreationDate="2010-12-04T17:25:38.037" Score="5" ViewCount="1608" Body="&lt;p&gt;I'm looking for small motivating and funny sentences that would make it easier for you to get back at coding after a short break.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just small simple sentences which cast a smile on your face.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a demo where the sentence would pop up: &lt;a href=&quot;http://www.youtube.com/watch?v=EyfUe1gXlXQ&amp;amp;t=0m15s&quot; rel=&quot;nofollow&quot;&gt;demo&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is: What sentence would motivate you to get back on programming?&lt;/p&gt;&#xA;" OwnerUserId="9127" LastActivityDate="2010-12-05T03:14:23.257" ClosedDate="2010-12-05T13:25:47.737" Title="What sentence would motivate you to get back at coding?" Tags="&lt;work-environment&gt;&lt;motivation&gt;&lt;humor&gt;" AnswerCount="24" CommentCount="4" FavoriteCount="1" />
  <row Id="23739" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T17:27:12.647" Score="5" ViewCount="" Body="&lt;p&gt;Boss arriving in 5 - 4 - 3 - ...&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-04T17:27:12.647" CommentCount="3" />
  <row Id="23740" PostTypeId="2" ParentId="23691" CreationDate="2010-12-04T17:30:16.440" Score="7" ViewCount="" Body="&lt;p&gt;In my experience, most programmers don't have all the qualities necessary to survive as a freelancer. A small subset of these include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Extensive knowledge in multiple domains (or in one domain that's in very high demand)&lt;/li&gt;&#xA;&lt;li&gt;Motivation&lt;/li&gt;&#xA;&lt;li&gt;Ability to self-organize&lt;/li&gt;&#xA;&lt;li&gt;Social skills&lt;/li&gt;&#xA;&lt;li&gt;Salesmanship&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Lots of programmers have three or even four of these qualities, but vanishingly few possess all of them. Some people believe that the last two can't even be taught.  Someone who doesn't possess &lt;em&gt;all&lt;/em&gt; of these qualities probably won't be successful as a freelancer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me personally, I worked for two years as a freelancer before my contracts dried up and I had to get a 'real' job again. I learned that I didn't have the motivation to go searching for new work at the same time I was putting in 50+ hours per week meeting existing contracts, nor did I have the salesmanship skills necessary to negotiate a living wage for my services.  I'm glad I gave it a try, but it's nice to be back at a small company with a few salespeople to take care of the stuff I'm not so good at. (&lt;em&gt;Man&lt;/em&gt;, do I ever appreciate the work they do now!)&lt;/p&gt;&#xA;" OwnerUserId="1326" LastActivityDate="2010-12-04T17:30:16.440" CommunityOwnedDate="2011-01-13T23:31:13.497" />
  <row Id="23741" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T17:35:11.443" Score="1" ViewCount="" Body="&lt;p&gt;Do you have any spare time to work on the monthly TPS Report?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(My company actually calls our monthly sales' reports 'TPS Reports'. Hurray for bosses with a sense of humor.)&lt;/p&gt;&#xA;" OwnerUserId="13" LastActivityDate="2010-12-04T17:35:11.443" />
  <row Id="23742" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T17:36:07.497" Score="4" ViewCount="" Body="&lt;p&gt;OK buddy, now hit that log out link on &lt;a href=&quot;http://stackoverflow.com/&quot;&gt;SO&lt;/a&gt;/&lt;a href=&quot;http://programmers.stackexchange.com/&quot;&gt;SE&lt;/a&gt; and write some code.... Comme on you can do it... Easy... Easy... That's it... YEEEEEEEEEEEEEAAAAAAAYYYYYYY&lt;/p&gt;&#xA;" OwnerUserId="7197" LastActivityDate="2010-12-04T17:36:07.497" />
  <row Id="23743" PostTypeId="2" ParentId="23331" CreationDate="2010-12-04T17:39:18.717" Score="3" ViewCount="" Body="&lt;p&gt;Love coding and addicted to something like coffee or beer or music, something that helps them to keep there concentration on coding&lt;/p&gt;&#xA;" OwnerUserId="8760" LastActivityDate="2010-12-04T17:39:18.717" CommunityOwnedDate="2010-12-06T09:48:17.537" />
  <row Id="23744" PostTypeId="2" ParentId="23313" CreationDate="2010-12-04T17:48:55.763" Score="2" ViewCount="" Body="&lt;p&gt;My opinion is No. Its not syntax which is important but your logic towards solving a problem or achieving a goal If you suppose to work on multiple languages its natural that sometime you dont remember the exact syntax. &lt;/p&gt;&#xA;" OwnerUserId="8760" LastActivityDate="2010-12-04T17:48:55.763" />
  <row Id="23745" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T18:01:31.560" Score="1" ViewCount="" Body="&lt;p&gt;I know what you're thinking, and copy and paste doesn't count - now start writing code.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-12-04T18:01:31.560" />
  <row Id="23746" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T18:02:46.647" Score="5" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Deadlines: because we care enough to push you really, really hard&lt;/li&gt;&#xA;&lt;li&gt;Ready for success!&lt;/li&gt;&#xA;&lt;li&gt;The compiler is lonely&lt;/li&gt;&#xA;&lt;li&gt;Dilbert is waiting&lt;/li&gt;&#xA;&lt;li&gt;Dogbert Consulting has an opening ...for Code Monkey&lt;/li&gt;&#xA;&lt;li&gt;Stackoverflow is offline...so you should be able to get things done now&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-04T18:02:46.647" CommentCount="2" />
  <row Id="23747" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T18:02:56.693" Score="2" ViewCount="" Body="&lt;p&gt;How sure are you that your office mate didn't muck with your semi-colon while you were getting coffee? &lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-12-04T18:02:56.693" CommentCount="2" />
  <row Id="23748" PostTypeId="2" ParentId="23718" CreationDate="2010-12-04T18:04:20.093" Score="11" ViewCount="" Body="&lt;p&gt;I think for real pedal to the metal, the only real choice is Fortran. The reasoning is that  the most important thing for the exploitation of low level ILP (Instruction Level Parallism) &#xA;is memory address disambiguation. The defacto rules in Fortran allow the compiler to determine &#xA;that two address are unique (and hence the order of loads and store, or even stores and  stores can be interchanged without risk of generating incorrect code). C leaves too much scope&#xA; for overlapping pointers for the compiler to extract as much low level parallelism from the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, array alignment, w.r.t cache lines, and SSE/AVX boundaries is important to the generation and execution of efficient loops. If arrays are passed via common blocks, the compiler/loader&#xA;can assure that all arrays start on the same address alignment boundaries, and more efficient&#xA;SSE/AVX loads and stores can be utilized. The newer hardware can handle unaligned memory accesses, but because the memory access isn't aligned properly partial use of cache lines results in lower performance. Even&#xA;if a C programmer properly aligns all his arrays, is there a mechanism to communicate&#xA;this to the compiler?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To summarize, the two most important issues, are the independence of memory addresses, and the recognition by the compiler that the accessed data structures have the same &quot;natural&quot; alignment that the hardware wants. So far Fortran does the best job on those two tasks. &lt;/p&gt;&#xA;" OwnerUserId="8651" LastEditorUserId="8651" LastEditorDisplayName="" LastEditDate="2010-12-04T23:39:47.717" LastActivityDate="2010-12-04T23:39:47.717" CommentCount="3" />
  <row Id="23749" PostTypeId="2" ParentId="23683" CreationDate="2010-12-04T18:12:27.313" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Should we repair the code, and change it to a OOP? We are now&#xA;  debugging it. [... contains errors, no documention ...]&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've been there, you have my sympathies. I even wrote an &lt;strong&gt;&lt;a href=&quot;http://blog.workingsoftware.se/2010/11/sometimes-rewrite-is-only-option.html&quot; rel=&quot;nofollow&quot;&gt;article&lt;/a&gt;&lt;/strong&gt; about this which might help you get some perspective. But in short:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the code contains &lt;strong&gt;lots&lt;/strong&gt; of duplication, you should rewrite. If there is no discernible structure (no clear interfaces, spaghetti), refactoring will fail and you should probably rewrite.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How can I teach them to follow all the rules?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Begin with explaining why they might want to do that by showing them what they can gain from it personally. When they agree with this and are willing to learn, start teaching them using &lt;a href=&quot;http://en.wikipedia.org/wiki/Shuhari&quot; rel=&quot;nofollow&quot;&gt;shuhari&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-12-04T18:48:54.363" LastActivityDate="2010-12-04T18:48:54.363" CommentCount="1" />
  <row Id="23750" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T18:20:06.987" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;dreaming what will happen when its finished&lt;/em&gt; , ok maybe a few more line :D&lt;/p&gt;&#xA;" OwnerUserId="9132" LastActivityDate="2010-12-04T18:20:06.987" />
  <row Id="23751" PostTypeId="2" ParentId="23537" CreationDate="2010-12-04T18:32:13.497" Score="2" ViewCount="" Body="&lt;p&gt;Safari Books Online is my constant companion while I'm coding or architecting.  I used to purchase every book under the sun but now having it all online and searchable is unbelievably helpful.  I can't imagine coding without it.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-04T18:32:13.497" />
  <row Id="23752" PostTypeId="2" ParentId="23691" CreationDate="2010-12-04T18:34:40.563" Score="4" ViewCount="" Body="&lt;p&gt;I would probably never consider going freelance, for all the reasons others have already given...  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I would indeed consider starting a software company (be it for the web, mobile or desktop).  This is a completely different venture!  It is very difficult to be succesfull, and you still need a lot of work that's not programming.  But at least, if it really works, you're not limited into getting rewards proportional to your quantity of work as is the case with freelancing: you can get exponential returns!&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-12-04T18:34:40.563" CommunityOwnedDate="2011-01-13T23:31:13.497" CommentCount="1" />
  <row Id="23753" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T18:38:34.867" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Coding is temporary, pride lasts for ever.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-04T18:49:27.107" LastActivityDate="2010-12-04T18:49:27.107" CommentCount="1" />
  <row Id="23754" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T18:39:47.877" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Welcome to SuperMegaCorps! Remember, we own you!&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-04T18:39:47.877" />
  <row Id="23755" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T18:44:07.280" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;May this farce be with you&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-04T18:44:07.280" />
  <row Id="23756" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T18:45:54.940" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Engage!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Visions of Picard etc&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-04T18:45:54.940" CommentCount="4" />
  <row Id="23757" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T19:05:58.893" Score="2" ViewCount="" Body="&lt;p&gt;Your to-do list could be one item shorter by now...&lt;/p&gt;&#xA;" OwnerUserId="1104" LastActivityDate="2010-12-04T19:05:58.893" />
  <row Id="23759" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T19:11:15.760" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;&lt;strong&gt;Finish &lt;em&gt;just one more function&lt;/em&gt;, and you'll earn the next coffee...&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-04T19:11:15.760" />
  <row Id="23760" PostTypeId="1" CreationDate="2010-12-04T19:11:22.273" Score="36" ViewCount="1592" Body="&lt;p&gt;I'm graduating in a couple of weeks, and my resume (as expected) lists the languages that I've had experience with. Previously I've put &lt;strong&gt;&quot;C/C++&quot;&lt;/strong&gt;, however back then I didn't have &lt;em&gt;that&lt;/em&gt; much experience with these two languages as I do now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now that I've formally learned these two languages, it has become evident to me (and anyone who really knows these languages) that they are similar, and completely disimilar at the same time. Sure, most C code is compilable C++ code, but syntax and incorporation of library functions is pretty much where these similarities end. In most non-trivial problems, chances are that the desirable C++ solution will be different from the desirable C solution.&#xA;&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;My question:&lt;/h3&gt; &#xA;&#xA;&lt;p&gt;&lt;br&gt;&#xA;Will recruiters take note or care about whether you put &lt;strong&gt;&quot;C/C++&quot;&lt;/strong&gt; as opposed to &lt;strong&gt;&quot;C, C++&quot;&lt;/strong&gt;? Will they assume a lack of knowledge of the workings of either because of the inclusion of the first form, or perhaps see the inclusion of the second form as a potential &quot;resume beefer&quot; (listing them as 2 languages, instead of &quot;one&quot;)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, for jobs that you've applied to that were particularly interested in these two langauges, did the interview process include questions about the differences between C programming and C++ programming (so, about actual programming techniques, not only the extra paradigms in the latter)?&lt;/p&gt;&#xA;" OwnerUserId="7356" LastActivityDate="2011-05-29T13:16:26.010" CommunityOwnedDate="2011-05-28T17:13:24.970" Title="Languages on a resume: Is it better to put &quot;C/C++&quot; or &quot;C, C++&quot;?" Tags="&lt;c++&gt;&lt;resume&gt;&lt;c&gt;" AnswerCount="16" CommentCount="11" FavoriteCount="5" />
  <row Id="23761" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T19:13:34.473" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A neutron walks into a bar &quot;how much&#xA;  for a drink?&quot; he asks. The bartender&#xA;  replies &quot;For you, no charge&quot;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;There is &lt;a href=&quot;http://fallout.wikia.com/wiki/Wadsworth#Notable_quotes&quot; rel=&quot;nofollow&quot;&gt;more&lt;/a&gt; where that came from! &lt;strong&gt;Bazinga!&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-12-04T19:50:06.983" LastActivityDate="2010-12-04T19:50:06.983" CommentCount="1" />
  <row Id="23762" PostTypeId="2" ParentId="23760" CreationDate="2010-12-04T19:13:52.200" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Probably doesn't matter&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least not to recruiters.  &lt;em&gt;Most&lt;/em&gt; recruiters will probably treat them as the same thing or at least a variation of the same thing.  The more technically advanced are probably not paying attention to such a minor detail.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I would worry about &quot;resume beefing&quot; if you had a description for each.  If you include a description for the languages you list, list them together and include a partial sentence for each.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-04T19:13:52.200" CommunityOwnedDate="2011-05-28T17:13:24.970" CommentCount="6" />
  <row Id="23763" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T19:18:12.093" Score="1" ViewCount="" Body="&lt;p&gt;The rent is due.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The bosses' boss is watching.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You install this code on your mom's computer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If reviewing old code, &quot;WTF were you thinking?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll never find all the mines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They don't make porn like they use to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Already used the compiling excuse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's it! About %^*(!# time.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-04T19:18:12.093" />
  <row Id="23764" PostTypeId="2" ParentId="23760" CreationDate="2010-12-04T19:20:27.630" Score="49" ViewCount="" Body="&lt;p&gt;C, C++ &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't like C/C++, because though C++ is technically a superset of C, to do it right, you have to do things differently. C/C++ makes you look like someone who knows C and knows that a C++-compiler accepts C, too.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-04T19:20:27.630" CommunityOwnedDate="2011-05-28T17:13:24.970" CommentCount="6" />
  <row Id="23765" PostTypeId="2" ParentId="23760" CreationDate="2010-12-04T19:24:53.770" Score="26" ViewCount="" Body="&lt;p&gt;I would usually write C/C++ as a habit, &lt;strong&gt;but&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;some pedantic recruiter might think you wrongly assume they are the same (unlikely...I hope),&lt;/li&gt;&#xA;&lt;li&gt;there's a higher likelihood that &lt;code&gt;C, C++&lt;/code&gt; gets parsed to the elements &lt;code&gt;C&lt;/code&gt; and &lt;code&gt;C++&lt;/code&gt; than C/C++... which might matter when recruiters try to match your profile to requirements for a role.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So try to have maybe C/C++ in your general description &lt;strong&gt;and then&lt;/strong&gt; C and C++ separated elsewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's only an advice, I have no strong proof to follow that, but (many) recruitment agencies seem to have a fairly keyword-oriented approach.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2011-05-28T11:31:57.823" LastActivityDate="2011-05-28T11:31:57.823" CommunityOwnedDate="2011-05-28T17:13:24.970" CommentCount="3" />
  <row Id="23767" PostTypeId="2" ParentId="22933" CreationDate="2010-12-04T19:36:23.850" Score="1" ViewCount="" Body="&lt;p&gt;No single invention deserves more credit for making project planning as unpopular as it is today than Tracking Gantts. Tracking Gantts should not only be considered harmful - they should be considered evil. Here's why.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Reason #1: Their motivation&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tracking Gantts let you see, for each step of your plan, how long you thought it's going to take and how long it's actually taking. You get to know, every day and in status meeting, that phase X was supposed to start by March, but it's clearly not going to get started until May.&#xA;Awesome.&#xA;You already knew, when you did initial planning, that the plan is going to have to change as the project progresses. New information comes to light. People and resources are unpredictable, etc. So why is it important to constantly be reminded, in every status meeting, how poorly your early predictions are fairing in real life? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Reason #2: They force you to stick to the original plan&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The very idea of tracking a project's Gantt chart means that instead of focusing on constantly adapting your work plan based on new information, you choose to stick to an outdated plan, just because it lets you point fingers and highlight the mis-predictions that were the inevitable result of the huge amount of uncertainty that the early planning phase of the project entailed. After all, you can't track the Gantt if you allow the plan to change radically, right? It has to have the same general shape and be comprised of the same steps, otherwise there's nothing to track...&#xA;Boneheaded sticking to plans is the number-one reason why &quot;Waterfall&quot; is actually considered a pejorative term these days. Planning ahead is confused with sticking to the original plan. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Reason #3: They teach you nothing&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not like the delay in this project is actually going to change the way you plan the next project, unless the projects you're planning are predictably similar and repetitive. After all, that's what Gantts were initially used for - planning work in factory production lines, where tasks are very well defined and their duration is extremely predictable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The value that tracking adds to a software development Gantt chart is zero. Arguably even less than zero. Not only are past estimations irrelevant for new projects, the illusion that you can actually improve your estimation ability over time by retrospection is dangerous. Sure, a CS student might really not know that integration takes lots of time in real life. But anyone that's been involved in more than two projects in their lifetime is already well aware of the usual suspects for delayed projects. The real reason projects are delayed is not some mathematical error factor that must be applied to estimations in general - it is the inherent uncertainty that comes with doing something for the first time and not knowing exactly how it's going to pan out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are actually project management systems out there that try to attack the problem from this misguided angle. They measure your predictions vs. actual performance and try to correct your overall estimation using statistical analysis. As if &quot;Danny always underestimates everything by 14.3%&quot; is ever the case. Danny isn't stupid, and to assume that the error of his predictions is predictable is indeed idiotic. It confuses the primitive &quot;cure&quot; - adding factors to your estimation - with the cause of the problem. Your estimation isn't inaccurate because it wasn't multiplied by the &quot;correct&quot; factor. Your plan is simply incomplete; and every plan is incomplete in its own way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Reason #4: They focus your attention on the wrong things&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of being focused on what needs to get done to deliver on time, you're now focused on justifying your inaccurate predictions. Instead of focusing on planning in more detail and adapting your plan to new information, you're rehashing an outdated plan. Projects are seldom delayed because the work-plan's parts were incorrectly estimated. They're delayed because a crap-load of things were simply left out of the original plan. Tracking Gantts make this even worse, because what sort of motivation do you have to insert more detail into your plan if it's all just going to wind up highlighted as a poor estimations in every status meeting? They make you stick to large, track-able chunks of work in your Gantt chart. Instead of letting you focus on adaptation and getting on the right track, they make you reexamine irrelevant decisions that were made when less information was available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also the problem of not having good enough tools to manage sufficiently elaborate plans. You have a much better chance at constructing a good initial plan (and estimation) if your tools allow you to expose all those frequently neglected steps along the way. Traditional Gantts are low-resolution beasts that are rightfully seen by developers as caricatures of the reality of project management. What's needed is a tool that makes it easy to add as much information as possible to the work plan at the earliest stage, and then make it just as easy to adapt your plan as the fog of uncertainty slowly fades away from over your project. The last thing you need is incessant low-resolution reminders of your inaccurate past predictions. Tracking Gantts are good for pointing fingers and covering asses, not for getting things done.&lt;/p&gt;&#xA;" OwnerUserId="494" LastActivityDate="2010-12-04T19:36:23.850" CommunityOwnedDate="2010-12-04T19:37:20.183" CommentCount="2" />
  <row Id="23768" PostTypeId="2" ParentId="23075" CreationDate="2010-12-04T19:38:26.147" Score="0" ViewCount="" Body="&lt;p&gt;Never focus on one project/technology/or idea to the exclusion of all else.&lt;br&gt;&#xA;Thus a setback is not the end of the world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take a break, grab a coffee, walk round the block, or go home early.&lt;br&gt;&#xA;Spend time with friends, and family and get perspective of what's important.&lt;br&gt;&#xA;(Did anyone die? If not, is it really so important?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only then can you review the situation, and decide on how best to move forward.&lt;/p&gt;&#xA;" OwnerUserId="1104" LastActivityDate="2010-12-04T19:38:26.147" />
  <row Id="23770" PostTypeId="2" ParentId="23537" CreationDate="2010-12-04T19:40:51.333" Score="2" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;The Best (Coding) Tools Money Can Buy&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;And it's even better as &lt;strong&gt;most of them are free&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/software/emacs/&quot; rel=&quot;nofollow&quot;&gt;Emacs&lt;/a&gt; (for coding) + &lt;a href=&quot;http://orgmode.org/&quot; rel=&quot;nofollow&quot;&gt;org-mode&lt;/a&gt; (for tasks) + &lt;a href=&quot;http://www.gnus.org/&quot; rel=&quot;nofollow&quot;&gt;gnus&lt;/a&gt; (for e-mails) + other modes (for everything else)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.eclipse.org/&quot; rel=&quot;nofollow&quot;&gt;Eclipse&lt;/a&gt; (for analyzing code and refactoring)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://freemind.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Freemind&lt;/a&gt; (for charting ideas and brainstorms)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.atlassian.com/software/jira/&quot; rel=&quot;nofollow&quot;&gt;JIRA&lt;/a&gt; (for issue-tracking)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://calendar.google.com/&quot; rel=&quot;nofollow&quot;&gt;Google Calendar&lt;/a&gt; (for time management, reminders, TODO-lits)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.virtualbox.org/&quot; rel=&quot;nofollow&quot;&gt;Virtual Box&lt;/a&gt; (to have specialized environments... and seamless VMs are great!)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://awesome.naquadah.org/&quot; rel=&quot;nofollow&quot;&gt;Awesome&lt;/a&gt; (as your tiling window manager)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; you can use these full-screen to behave more or less like zero-distraction software and stay focused, as long as you don't tweak them too much to make coffee for you, read out loud your RSS feeds and so on, considering all the stuff you can do with emacs and eclipse... Awesome WM helps with that as well, or tiling windows managers in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good pair of head-phones or earphones (preferably headphones for long-term use) is also a good help. A private or semi-private office also helps (which is also a point mentioned in the link).&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-12-06T21:40:32.497" LastActivityDate="2010-12-06T21:40:32.497" CommentCount="11" />
  <row Id="23771" PostTypeId="2" ParentId="23537" CreationDate="2010-12-04T20:13:15.067" Score="1" ViewCount="" Body="&lt;p&gt;Time Machine for OS X.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A perfect supplement to a source repository allowing to go back in time for local files if needed.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-04T20:13:15.067" />
  <row Id="23772" PostTypeId="2" ParentId="18322" CreationDate="2010-12-04T20:34:24.783" Score="0" ViewCount="" Body="&lt;p&gt;You may also want to consider Microsoft's Silverlight with DeepZoom.  It's very easy to implement and there are tons of samples on the net.&lt;/p&gt;&#xA;" OwnerUserId="175" LastActivityDate="2010-12-04T20:34:24.783" />
  <row Id="23773" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T20:45:10.360" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;There is a fifth dimension, beyond that which is known to man. It is a dimension as vast as space and as timeless as infinity. It is the middle ground between light and shadow, between science and superstition, and it lies between the pit of man's fears and the summit of his knowledge. This is the dimension of imagination. It is an area which we call &lt;strong&gt;The Coding Zone&lt;/strong&gt;. &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Twilight_Zone&quot; rel=&quot;nofollow&quot;&gt;[ref]&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-12-04T20:45:10.360" CommentCount="1" />
  <row Id="23774" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T20:50:35.363" Score="8" ViewCount="" Body="&lt;p&gt;Seems like the answers are tending more towards humor, that's fine... but for me, this is enough to remind me how much I love programming, and what I've been missing:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I am rarely happier than when spending&#xA;  an entire day programming my computer&#xA;  to perform automatically a task that&#xA;  it would otherwise take me a good ten&#xA;  seconds to do by hand. - Douglas Adams&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6758" LastActivityDate="2010-12-04T20:50:35.363" />
  <row Id="23775" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T21:08:14.240" Score="2" ViewCount="" Body="&lt;p&gt;You couldn't do that on a computer.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-04T21:08:14.240" />
  <row Id="23776" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T21:14:29.953" Score="2" ViewCount="" Body="&lt;p&gt;Good Job! Your contribution is astounding!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-04T21:14:29.953" CommentCount="1" />
  <row Id="23777" PostTypeId="2" ParentId="23735" CreationDate="2010-12-04T21:17:09.190" Score="3" ViewCount="" Body="&lt;p&gt;Your work up to now has been exemplary so we've decided to give you 30% pay rise effective immediately.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-04T21:17:09.190" />
  <row Id="23779" PostTypeId="2" ParentId="23314" CreationDate="2010-12-04T21:47:26.437" Score="0" ViewCount="" Body="&lt;p&gt;Stackoverflow sites don't generally cater for strong opinions. I think that's what blogs continue to be useful for. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that anything I (hypothetically) post on my blog will never be as technically accurate as a community-edited SO answer, but there's some merit in knowing that I can post what I want there and nobody can remove it or edit it because they found it unconstructive. &lt;/p&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-12-04T21:47:26.437" />
  <row Id="23780" PostTypeId="2" ParentId="14584" CreationDate="2010-12-04T21:54:47.493" Score="0" ViewCount="" Body="&lt;p&gt;Yes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've dealt with enough hackers in the past to know that they're constantly trying to compromise any big site, and there are enough bots out there that even small sites aren't safe. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I try to &lt;strong&gt;think like a hacker&lt;/strong&gt; all the time now, to the point where I sometimes worry my co-workers with casual comments on how systems we take for granted every day can be gamed. &lt;/p&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-12-04T21:54:47.493" />
  <row Id="23781" PostTypeId="2" ParentId="23691" CreationDate="2010-12-04T22:16:31.750" Score="26" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I'm a contractor in the UK&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is different to freelancing in that the term of the engagement with the client tends to be much longer (6 months and more), but I feel that it's worth mentioning this type of working in the context of the question since it is closely related.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been contracting for many years and have been fortunate to avoid any significant break in my work. Almost without exception I have worked through an agency (normally a different one for every fresh contract, but I have been able to get further business through some agencies) and I find that arrangement works well for me and them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Minimal marketing&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't have to market myself, other than by keeping my CV up to date and participating in various online communities (mainly Stack Exchange and LinkedIn) which I would do anyway. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Keeping current&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do have to keep myself abreast of the latest developments in my field (I specialise in Java web applications based on open source software) but, again, I'd do that anyway. Typically, I work 9am to 5:30pm Monday to Friday and that is almost continuously spent coding. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Getting paid&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't have to worry about chasing invoices. I have been fortunate that all the agencies I have dealt with have been reputable and prompt in their payments. They in turn rely on the prompt payment from the clients who tend to be medium to large enterprises (&gt;100 employees). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The downsides&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't want this to turn into an advert so I'll point out some of the downsides to contracting in the UK:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Taxes are higher than they first appear (but less than equivalent permanent employment)&lt;/li&gt;&#xA;&lt;li&gt;You have to use an accountant to ensure you're operating your business correctly &lt;/li&gt;&#xA;&lt;li&gt;You must be prepared to travel if you live outside of a big city (travel and hotel costs eat into your daily rate big time)&lt;/li&gt;&#xA;&lt;li&gt;You are entirely responsible for arranging your retirement (pension, lottery winnings, iPhone app etc)&lt;/li&gt;&#xA;&lt;li&gt;No holiday/sick pay (you don't turn up for any reason you don't get paid)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Why aren't there more contractors?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Talking to my fellow contractors and various permanent employees the main reasons for not jumping into contracting seem to be (in order of prevalence):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The constant changing of working environment (travel, colleagues, codebase)&lt;/li&gt;&#xA;&lt;li&gt;The hassle of running a business&lt;/li&gt;&#xA;&lt;li&gt;Fear of the unknown and the perceived high risk nature of it&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Recent research regarding freelancers&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In accordance with the edited question, here are some recent studies that examine the question of freelancers in terms of their presence in the labour market.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Professional Contractors Guild (UK)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.pcg.org.uk/cms/index.php?option=com_content&amp;amp;view=article&amp;amp;id=7384%3apcg-poll-do-you-think-the-number-of-freelancers-will-rise-over-the-next-10-years&amp;amp;catid=745%3apcg-news&amp;amp;Itemid=1053&quot; rel=&quot;nofollow&quot;&gt;Do you think the number of freelancers will rise of the next 10 years? (Poll)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;...Dr Bellini’s lecture touched on a&#xA;  number of themes, attempting to map&#xA;  out the freelance landscape over the&#xA;  coming years. He predicts that there&#xA;  will be a fundamental shift in working&#xA;  patterns, marking the death of the 9-5&#xA;  and rise of the freelancer. Dr Bellini&#xA;  believes the size of the freelance&#xA;  marketplace will double over the next&#xA;  10 years.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.pcg.org.uk/cms/index.php?option=com_content&amp;amp;view=article&amp;amp;id=7377%3arime-minister-praises-uks-freelance-community&amp;amp;catid=801%3apress-releases-2010&amp;amp;Itemid=1314&quot; rel=&quot;nofollow&quot;&gt;Prime Minister praises UK freelancers (includes cited figures)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;He went on to state: “The 1.4 million&#xA;  freelancers in our country make a&#xA;  massive contribution to our economy.&#xA;  More and more people are choosing&#xA;  freelancing, recognising that it&#xA;  strikes the right balance between work&#xA;  and life in the 21st century, and as&#xA;  we go for economic growth this&#xA;  Government is getting right behind&#xA;  them.”&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Analytica (Peer reviewed journal on division of labour)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://analytica.metapress.com/content/g171342u51112065/fulltext.pdf&quot; rel=&quot;nofollow&quot;&gt;Getting the message: Communications workers and global value chains (PDF)&lt;/a&gt; by Catherine McKercher and Vincent Mosco&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;They are part of the growing ranks of&#xA;  freelance computer  programmers and&#xA;  other high-tech workers, who move from&#xA;  contract to contract and  from&#xA;  employer to employer. Caraway notes&#xA;  that, in the current economic&#xA;  downturn,  ‘flexibility, or the&#xA;  ability of capitalists to mobilise and&#xA;  demobilise labour on demand,  has&#xA;  taken on a new significance – and a&#xA;  new air of inevitability’&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;These articles all point to a general trend of increasing numbers of freelance workers who wish, or are being forced, to change their working patterns.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-07T20:55:08.733" LastActivityDate="2010-12-07T20:55:08.733" CommunityOwnedDate="2011-01-13T23:31:13.497" />
  <row Id="23782" PostTypeId="2" ParentId="23760" CreationDate="2010-12-04T22:19:01.433" Score="15" ViewCount="" Body="&lt;p&gt;If you want to remove any ambiguity simply bullet point them:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;C&lt;/li&gt;&#xA;  &lt;li&gt;C++&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This will cover, all angles including any parsing too.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-04T22:19:01.433" CommunityOwnedDate="2011-05-28T17:13:24.970" CommentCount="6" />
  <row Id="23783" PostTypeId="2" ParentId="14299" CreationDate="2010-12-04T22:39:28.613" Score="0" ViewCount="" Body="&lt;p&gt;If technical support positions are included, the results will be negatively skewed.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-04T22:39:28.613" />
  <row Id="23785" PostTypeId="2" ParentId="23314" CreationDate="2010-12-04T22:51:55.307" Score="0" ViewCount="" Body="&lt;p&gt;I guess I will be the only one who actually has.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I indeed started my blog after being somewhat surprised at the good reception of my answers at StackOverflow. I decided to try something of my own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not the least the &quot;close-em-all&quot; policy at SO has motivated me to split. Over time I saw a lot of good questions with great answers closed for being &quot;not-programming-related&quot;. Some day I felt like I needed my own place where I could write whatever subjective and not-programming-related I want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, I didn't want to exercise the same kind of rude behavior like the folks with the power to vote to close. I personally leave all comments either in agreement or in objection.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-05T06:50:36.213" LastActivityDate="2010-12-05T06:50:36.213" CommentCount="2" />
  <row Id="23786" PostTypeId="2" ParentId="23691" CreationDate="2010-12-04T22:53:39.360" Score="2" ViewCount="" Body="&lt;p&gt;Consultants who are making money probably stay with it and those that don't, go get jobs. That will throw off the averages. Why be a consultant if you can make more money on the job? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All things being equal, I'd rather be writing code than continuously trying to explain to people that I can write code/looking for work. If a firm is doing this for you, you're not making that much more than an employee after they take their cut.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now if you want the flexibility to one day start you own company, I would do contract work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: I use to be able to get contract work, but I had a contact that did IT consulting. When he had clients that needed custom programming, he'd call me.&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2011-01-14T01:31:50.100" LastActivityDate="2011-01-14T01:31:50.100" CommunityOwnedDate="2011-01-13T23:31:13.497" />
  <row Id="23788" PostTypeId="2" ParentId="8254" CreationDate="2010-12-04T23:08:23.287" Score="0" ViewCount="" Body="&lt;p&gt;Grrr .. not enough privilege to comment yet .. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;@Mason Wheeler: Be aware then of Ada, which does overload on return type.&#xA;Also my language Felix does it too in some contexts, specifically, when a function returns another function and there is a call like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;f a b  // application is left assoc: (f a) b&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;the type of b can be used for overload resolution. Also C++ overloads on return type in some circumstances:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int (*f)(int) = g; // choses g based on type, not just signature&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In fact there are algorithms for overloading on return type, using type inference. It's actually not that hard to do with a machine, the problem is that humans find it hard. (I think the outline is given in the Dragon Book, the algorithm is called the see-saw algorithm if I remember correctly)&lt;/p&gt;&#xA;" OwnerUserId="8630" LastActivityDate="2010-12-04T23:08:23.287" />
  <row Id="23789" PostTypeId="2" ParentId="23548" CreationDate="2010-12-04T23:12:41.997" Score="1" ViewCount="" Body="&lt;h2&gt;It's a Big Fluffy Cloud..&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Tell them that Its Microsoft sexy new technology. And that it allows developers from different languages to all hold hands and make super sexy code. Tell them that it &lt;strong&gt;auto-magically&lt;/strong&gt; works on things like PC's, XBOX's and Windows Phone. And also tell them that they can make anything from games to boring business applications with them as well as websites too. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep it short:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;Its a Big Fluffy Cloud :)&lt;/li&gt;&#xA;  &lt;li&gt;Its Microsoft Tech&lt;/li&gt;&#xA;  &lt;li&gt;Runs on PCs, XBOX, Windows Phone&lt;/li&gt;&#xA;  &lt;li&gt;It &quot;understands&quot; many different languages&lt;/li&gt;&#xA;  &lt;li&gt;Can make, Games, Businees Applications &amp;amp; websites with them&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-06T14:32:40.133" LastActivityDate="2010-12-06T14:32:40.133" CommentCount="1" />
  <row Id="23790" PostTypeId="2" ParentId="23535" CreationDate="2010-12-04T23:14:18.600" Score="0" ViewCount="" Body="&lt;p&gt;I just answered a question on AskUbuntu.com -- I had to (temporarily - at the moment) enable JavaScript on the site.  I use NoScript and enable JavaScript for a site when I think it is clear - but not until.  By default, JavaScript is off for sites I've not visited before.&lt;/p&gt;&#xA;" OwnerUserId="3611" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-04-05T22:26:47.807" LastActivityDate="2011-04-05T22:26:47.807" CommunityOwnedDate="2011-01-13T17:07:25.307" />
  <row Id="23791" PostTypeId="2" ParentId="14299" CreationDate="2010-12-04T23:50:33.553" Score="0" ViewCount="" Body="&lt;p&gt;It's like saying 100% of one people surveyed wear glasses, therefore the entire population does. Also surveys often don't look at all the facts (eg a Doctor has the highest mortality rates in the hospital, but the survey that got to that didn't include how critical the patients were when the doctor received them, and many of the patients couldn't have been saved by anyone.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this case some of the people asked may have just had a bad day/week on the day they were surveyed so their perspective is skewed. Or as other people have said the jobs included in IT &amp;amp; Telecoms, is generally barely programmers, it is more like IT technicians that support and maintain infrastructure in companies, or even call center people with some technical knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also quite a bit has changed since 2007, like the whole recession thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Plus I can't believe teachers/education are the 3rd happiest profession ;) , unless the survey only including primary school)&lt;/p&gt;&#xA;" OwnerUserId="5199" LastActivityDate="2010-12-04T23:50:33.553" />
  <row Id="23792" PostTypeId="1" AcceptedAnswerId="23794" CreationDate="2010-12-05T00:25:49.573" Score="3" ViewCount="342" Body="&lt;p&gt;I work with a lot of legacy Java and RPG code on an internal company application. As you might expect, a lot of the code is written in many different styles, and often is difficult to read because of poorly named variables, inconsistent formatting, and contradictory comments (if they're there at all).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, a good amount of code is not robust. Many times code is pushed to production quickly by the more experienced programmers, while code by newer programmers is held back by &quot;code reviews&quot; that IMO are unsatisfactory. (They usually take the form of, &quot;It works, must be ok,&quot; than a serious critique of the code.) We have a fair number of production issues, which I feel could be lessened by giving more thought to the original design and testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been working for this company for about 4 months, and have been complimented on my coding style a couple of times. My manager is also a fan of cleaner coding than is the norm. Is it my place to try to push for better style and better defensive coding, or should I simply code in the best way I can, and hope that my example will help others see how cleaner, more robust code (as well as aggressive refactoring) will result in less debugging and change time?&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2011-01-30T10:22:44.787" Title="How can I promote clean coding at my workplace?" Tags="&lt;code-quality&gt;&lt;coding-standards&gt;&lt;code-reviews&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="1" />
  <row Id="23793" PostTypeId="2" ParentId="11777" CreationDate="2010-12-05T00:27:31.760" Score="1" ViewCount="" Body="&lt;p&gt;I use Safari a lot!  &lt;a href=&quot;http://my.safaribooksonline.com/&quot; rel=&quot;nofollow&quot;&gt;http://my.safaribooksonline.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-05T00:27:31.760" />
  <row Id="23794" PostTypeId="2" ParentId="23792" CreationDate="2010-12-05T00:42:37.597" Score="6" ViewCount="" Body="&lt;p&gt;You didn't mention your level of expertise on the subject. If you are not a senior programmer however, I think the best thing you can do is to do your own work well. You also mentioned that your manager likes clean work - that's great. If you can talk to him about it (maybe in a semi-professional environment) you should share your concerns about the issue with him. HE is in the position to change workflow.&lt;/p&gt;&#xA;" OwnerUserId="3530" LastActivityDate="2010-12-05T00:42:37.597" CommentCount="2" />
  <row Id="23795" PostTypeId="2" ParentId="7618" CreationDate="2010-12-05T00:44:11.610" Score="0" ViewCount="" Body="&lt;p&gt;I'm going to risk ridicule and confess, I've only been using OOP very recently. It doesn't come to me automatically. Most of my experience involves relational databases, so I think in tables and joins. There are claims that it is better to learn it from the beginning which avoids having to rewire your thinking when it comes to programming. I don't have that luxury and refuse to scrap my career over some ivory tower theory. Like everything else, I'll figure it out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At first I thought the whole concept didn't make sense. It just seemed unnecessary and too much trouble. I know, this is crazy talk. Obviously it takes a certain level of understanding before you can appreciate the benefits of anything or dismiss it for better methods.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code reuse takes a willingness to not repeat code, an understanding of how to accomplish it, upfront planning. Should you avoid reusing code when you've decided you have a case where it's just not worth it? And no language is so strictly OO that it will throw an error when it thinks you should have inherited code from another class. At best they provide an environment conducive to implementing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the biggest benefit of OOP is the general acceptance of how code should be organized. Everything else is gravy. A team of programmers may not fully agree on how all the classes should be structured, but they should be able to find the code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen enough procedural code to know it could be anywhere, and sometimes it's everywhere. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-05T00:44:11.610" CommentCount="1" />
  <row Id="23796" PostTypeId="2" ParentId="11777" CreationDate="2010-12-05T00:46:11.680" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://goosh.org/&quot; rel=&quot;nofollow&quot;&gt;CL Google - Goosh&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://msdn.microsoft.com/en-gb/default.aspx&quot; rel=&quot;nofollow&quot;&gt;MSDN&lt;/a&gt;  &lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-05T00:46:11.680" />
  <row Id="23797" PostTypeId="2" ParentId="23735" CreationDate="2010-12-05T00:52:56.327" Score="1" ViewCount="" Body="&lt;p&gt;Get the blood flowing by taking a quick lap around the office making it look like you have something really important to do. By the time you're back at your desk you should be motivated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I know, not a sentence, but works for me)&lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2010-12-05T00:52:56.327" />
  <row Id="23798" PostTypeId="2" ParentId="7618" CreationDate="2010-12-05T01:01:02.103" Score="1" ViewCount="" Body="&lt;p&gt;In my experience, I've had more success leveraging &quot;reusable&quot; code through generic programming facilities (like C++ templates) than I've had using OOP principles like inheritance hierarchies.&lt;/p&gt;&#xA;" OwnerUserId="7733" LastActivityDate="2010-12-05T01:01:02.103" />
  <row Id="23799" PostTypeId="2" ParentId="11777" CreationDate="2010-12-05T01:01:30.323" Score="0" ViewCount="" Body="&lt;p&gt;I've got StackOverflow.com, a couple of other StackExchange sites, and XKCD on &lt;a href=&quot;https://chrome.google.com/extensions/detail/dgpdioedihjhncjafcpgbbjdpbbkikmi&quot; rel=&quot;nofollow&quot;&gt;Speed Dial for Chrome&lt;/a&gt;. That way, all I have to do is open a new tab, click, and wham!&lt;/p&gt;&#xA;" OwnerUserId="6440" LastActivityDate="2010-12-05T01:01:30.323" />
  <row Id="23800" PostTypeId="1" CreationDate="2010-12-05T01:04:51.757" Score="1" ViewCount="277" Body="&lt;p&gt;Hi,&lt;br&gt;&#xA;Some background first-&gt; I am new to programming and have discovered it rather late in life; Like many hobbyists, my introduction to the subject has been through php/jquery (yes, i know the popular mood around here... they-are-not-real-programminng-languages ;-) ). I like to believe that I am reasonably competent at what I do in my other life and this developing addiction to coding has taken a &lt;strong&gt;very&lt;/strong&gt; heavy toll on my professional prospects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is the question:&lt;br&gt;&#xA;What programming languages next? (No plans to ditch php in the immediate future, that will involve rewriting much of my code)&lt;br&gt;&#xA;Any absolutely essential books I must read?&lt;br&gt;&#xA;Is it necessary to join a college/university course?&lt;br&gt;&#xA;Do I need to ditch my other profession to continue serious learning?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My goals are:&lt;br&gt;&#xA;Develop a solid understanding of the science and art of programming.&lt;br&gt;&#xA;Continue to work on my own web application (Hands on learning suits me best)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am something of a generalist interested in everything from UI to database performance&lt;/p&gt;&#xA;" OwnerUserId="9145" LastEditorUserId="7629" LastEditorDisplayName="" LastEditDate="2010-12-06T09:55:52.367" LastActivityDate="2011-02-13T10:05:17.530" Title="Learning Programming, Suggestions for a roadmap" Tags="&lt;learning&gt;&lt;career-advice&gt;&lt;education&gt;" AnswerCount="3" CommentCount="4" />
  <row Id="23802" PostTypeId="2" ParentId="13956" CreationDate="2010-12-05T01:24:48.297" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Start with a good software strategy, then apply TDD.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(Disclaimer: I may have misunderstood &quot;churn&quot;, or TDD, or both.)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is my suggested strategy for batch processing &quot;dirty data&quot;: Specify-Triage-Execute.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Draft a specification of the data in a stringent and narrow way, yet will cover the majority (say, 80% or more) of the incoming data. Call this &lt;strong&gt;Specification 1&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Develop a &lt;strong&gt;Triage&lt;/strong&gt; module (TDD if you wish) that decides if a record meets Specification 1.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Make sure the module runs very fast.&lt;/li&gt;&#xA;&lt;li&gt;The module should return true/false: it either meets all of the rules, or it doesn't.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Develop an &lt;strong&gt;Execute&lt;/strong&gt; module (TDD if you wish) that parses a record that is known to meet Specification 1, performing whatever tasks needed by your customers.&lt;/li&gt;&#xA;&lt;li&gt;Apply &lt;strong&gt;Triage 1&lt;/strong&gt; on all incoming data.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The result is one boolean value for each record. This basically separates the incoming data into: Specification 1, or Unknown.&lt;/li&gt;&#xA;&lt;li&gt;Apply &lt;strong&gt;Execute 1&lt;/strong&gt; on the Specification 1 data, whenever needed by the customer.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Relax the rules of Specification 1 in order to admit 80% of the remaining data. Call this &lt;strong&gt;Specification 2&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Develop &lt;strong&gt;Triage 2&lt;/strong&gt; and &lt;strong&gt;Execute 2&lt;/strong&gt;. Apply it to any data that did not meet Specification 1.&lt;/li&gt;&#xA;&lt;li&gt;Repeat for as many levels as needed, until the remaining data is small enough that it can be manually processed every day.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The efficiency tidbit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Save all of the Triage results (historical or current) associated with a record. If no Triage modules are modified since the last run, then it does not have to be re-run on old data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The &quot;you have to know what you want to build before doing TDD&quot; tidbit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Specify-Triage-Execute is one way to keep the requirements manageable on each level and allows for future growth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(If any knows the standard correct terms for those three steps, please let me know, I'll edit my answers.)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-12-05T01:24:48.297" />
  <row Id="23803" PostTypeId="2" ParentId="23621" CreationDate="2010-12-05T01:27:36.577" Score="2" ViewCount="" Body="&lt;p&gt;Well, it's one of two available on Google Code, which suggests that Google &lt;strike&gt;uses&lt;/strike&gt; likes it.&lt;/p&gt;&#xA;" OwnerUserId="6883" LastEditorUserId="6883" LastEditorDisplayName="" LastEditDate="2010-12-05T21:24:06.000" LastActivityDate="2010-12-05T21:24:06.000" CommentCount="3" />
  <row Id="23805" PostTypeId="2" ParentId="23527" CreationDate="2010-12-05T01:57:23.850" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;The problem with Software Engineering is not the idea of Software Engineering &lt;em&gt;itself&lt;/em&gt;, it is that what is usually &lt;em&gt;meant&lt;/em&gt; by the term and &lt;em&gt;taught&lt;/em&gt; under its heading is a complete and utter misunderstanding of two important parts of Software Engineering: Software and Engineering.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I stole that quote above from Glenn Vanderburg's excellent presentation on &lt;em&gt;Real Software Engineering&lt;/em&gt;, which he gave at the &lt;a href=&quot;http://Confreaks.Net/videos/282/&quot; rel=&quot;nofollow&quot;&gt;Lone Star Ruby Conference 2010&lt;/a&gt; and then again at &lt;a href=&quot;http://Vimeo.Com/16287115/&quot; rel=&quot;nofollow&quot;&gt;JRubyConf 2010&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's another quote from the talk&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In every other discipline, the term &lt;em&gt;Engineering&lt;/em&gt; is reserved for practices that &lt;em&gt;work&lt;/em&gt;. But even if you follow Software Engineering to the letter, make no mistakes and do everything by the book, you still often end up with bad software delivered late and over budget. Sometimes you don't even produce software &lt;em&gt;at all&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Even if you don't agree with Glenn's or the Agile community's premises and conclusions, there's still a lot of interesting information, and more importantly food for thought in this talk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I learned a lot from it. For example: did you know that Winston W. Royce specifically invented the Waterfall Model (&lt;em&gt;still&lt;/em&gt; one of the most popular and most widely taught software engineering methodologies) as an example of a &lt;em&gt;bad&lt;/em&gt; software engineering methodology that cannot possibly work? That it only ended up in our profession, because nobody bothered to read past page 3 of the paper, where he actually shows a methodology that &lt;em&gt;does&lt;/em&gt; work, which incidentally looks a lot like Agile? (In 1970, mind you.)&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-12-05T01:57:23.850" CommentCount="1" />
  <row Id="23806" PostTypeId="2" ParentId="23621" CreationDate="2010-12-05T02:03:25.880" Score="2" ViewCount="" Body="&lt;p&gt;No, Mercurial is probably the third most popular open-source VCS after SVN and Git (not counting CVS).  Remember Monotone, darcs, and Bazaar?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mercurial is interesting because it is&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Easy to use (subversion-like commands)&lt;/li&gt;&#xA;&lt;li&gt;A distributed version-control system (trendy!)&lt;/li&gt;&#xA;&lt;li&gt;Runs well on Windows (as opposed to running Git in cygwin or msysgit)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;FogBugz Kiln is powered by Mercurial, and think about all of the private companies using Mercurial because of the above qualities (mine included).&lt;/p&gt;&#xA;" OwnerUserId="6629" LastActivityDate="2010-12-05T02:03:25.880" />
  <row Id="23807" PostTypeId="2" ParentId="23735" CreationDate="2010-12-05T02:03:26.097" Score="1" ViewCount="" Body="&lt;p&gt;I have found, and I fully accept that this makes no sense in any way, shape, or form, but I find that when I can no longer concentrate, if I open up youtube, and start streaming some TV show in the background, through my headphones, I can pay attention to the code again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know. Some kind of college flashback thing. Or maybe having my focus divided somewhat is like a persistent study break.&lt;/p&gt;&#xA;" OwnerUserId="9015" LastActivityDate="2010-12-05T02:03:26.097" CommentCount="2" />
  <row Id="23808" PostTypeId="2" ParentId="23314" CreationDate="2010-12-05T02:07:01.413" Score="0" ViewCount="" Body="&lt;p&gt;Personal opinion.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Asking a question on StackOverflow, or posting a new article on a blog, is the Dialogue &lt;strong&gt;Initiation&lt;/strong&gt;. It provokes thought and invites participants for the next step.&lt;/li&gt;&#xA;&lt;li&gt;Answering a question on StackOverflow, or posting a comment to a blog article, or posting a response on your own blog, is the Dialogue &lt;strong&gt;Participation&lt;/strong&gt;.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;For blogs, pingback is needed to keep the continuity of the discussion.&lt;/li&gt;&#xA;&lt;li&gt;On StackOverflow, all of the answers are kept in one place, and can be updated by contributors and moderated centrally.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;However, to &lt;strong&gt;Conclude&lt;/strong&gt; the Dialogue, it is not sufficient to just selecting the answer on StackOverflow: the answer might have been most useful to the asker, but might not be generally applicable to everyone else. Also, the useful wisdom may be scattered into many answers and there is nobody to collect and organize them.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A satisfactory Conclusion must draw input and summarize from many industry sources (from the trenches).&lt;/li&gt;&#xA;&lt;li&gt;In the blog world, dialogue is never-ending. There is never conclusion. Each blogger arrives at its own personal conclusion or leaves the question open.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Blog readers have to jump many loops to read through the entire conversation.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;The closest to a Conclusion is writing a Wiki (&lt;strong&gt;see note&lt;/strong&gt;) article or a book chapter on the subject.&lt;/li&gt;&#xA;&lt;li&gt;Articles written by well-known experts on the subject may also be considered satisfactory Conclusion. &#xA;&lt;ul&gt;&#xA;&lt;li&gt;This is sometimes seen on InfoQ.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Asking the same question on your blog, and on StackOverflow, is just cross-posting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Posting the same answer on your blog, and on StackOverflow, is also cross-posting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may be more meaningful to consider writing/expanding a Wiki (&lt;strong&gt;see note&lt;/strong&gt;) article or a book chapter. (Alternatively, consider leaving this task to Jeff Atwood or Jon Skeet.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Note on Wiki:&lt;/strong&gt;&lt;br&gt;&#xA;Because Wikipedia.org has the &quot;No Original Research&quot; policy, &lt;strong&gt;Wikipedia.org is Not Wiki&lt;/strong&gt; in the sense of this opinion.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-12-05T02:07:01.413" />
  <row Id="23809" PostTypeId="1" AcceptedAnswerId="23880" CreationDate="2010-12-05T02:13:39.650" Score="0" ViewCount="342" Body="&lt;p&gt;What languages do you code in, if any, that are not useful or used (aside from hobbyists) today? Why do you program in a language that doesn't have a 'real' use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&#xA;By not useful, I mean esoteric or 'dead' (as in they are no longer used commercialy or open-source)&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7007" LastEditorUserId="7007" LastEditorDisplayName="" LastEditDate="2010-12-05T02:37:41.837" LastActivityDate="2010-12-06T23:11:43.230" ClosedDate="2010-12-28T15:19:51.000" Title="Do you code in non-'useful' languages?" Tags="&lt;programming-languages&gt;&lt;fun&gt;&lt;hobbies&gt;" AnswerCount="9" CommentCount="3" />
  <row Id="23810" PostTypeId="1" AcceptedAnswerId="24052" CreationDate="2010-12-05T02:22:50.703" Score="15" ViewCount="887" Body="&lt;p&gt;Well I've been hitting the books wherever I can. I have an interview coming up, first one via phone, for a software engineer position. I've read all the blog posts, I've read all the accounts of interviews (some pretty old), and Google itself even suggested a reading list of books, none of which would surprise anyone here. Still, after some time preparing, I can't shake that feeling that there is such a large ground to cover, and I'm never sure whether to go with depth or breadth. I've found myself re-learning a whole area of compsci, only to forget most of the nitty details as I move on to another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I don't know that there's a good answer to this question, but I'm looking for any practical advice on how to tackle the remaining weeks in advance of the interview. Part of my brain is tired from cramming, and of course the rest of it has to be utilized for some tough problems at my current place of employment.&lt;/p&gt;&#xA;" OwnerUserId="8983" LastActivityDate="2010-12-06T08:48:42.763" Title="Upcoming Google interview, looking for some preparation advice" Tags="&lt;interview&gt;&lt;computer-science&gt;&lt;interview-questions&gt;&lt;job-interview&gt;&lt;google&gt;" AnswerCount="4" CommentCount="9" FavoriteCount="16" />
  <row Id="23812" PostTypeId="2" ParentId="23809" CreationDate="2010-12-05T03:01:54.807" Score="1" ViewCount="" Body="&lt;p&gt;I code in Delphi every once in a while. &lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-12-05T03:01:54.807" CommentCount="2" />
  <row Id="23813" PostTypeId="2" ParentId="7618" CreationDate="2010-12-05T03:05:02.930" Score="0" ViewCount="" Body="&lt;p&gt;OOP gives you &lt;em&gt;more&lt;/em&gt; ways to reuse code. That is all.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-05T03:05:02.930" CommentCount="3" />
  <row Id="23814" PostTypeId="2" ParentId="4123" CreationDate="2010-12-05T03:06:40.243" Score="1" ViewCount="" Body="&lt;h1&gt;Do It&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;you cannot learn to swim by reading about fish; you've got to get in the water.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-05T03:06:40.243" CommentCount="1" />
  <row Id="23815" PostTypeId="2" ParentId="23810" CreationDate="2010-12-05T03:07:48.620" Score="5" ViewCount="" Body="&lt;h1&gt;Relax&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;if your interview is anything like mine was, the interviewer is not there to grill you into submission, he's there to &lt;em&gt;see how you think&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: this was just the initial phone interview, i don't know about anything further than that...and if i did i probably couldn't tell you anyway!&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-12-05T04:24:38.663" LastActivityDate="2010-12-05T04:24:38.663" CommentCount="2" />
  <row Id="23816" PostTypeId="1" CreationDate="2010-12-05T03:08:04.193" Score="3" ViewCount="144" Body="&lt;p&gt;Back in what must've been the mid-80s, when every microcomputer included BASIC and Choose Your Own Adventure Books were really popular, there were some novels that had BASIC programs listed in the text, for you to type in and further enjoy.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, as I recall, in one of these books, the adventurers were infiltrating an undersea base (and eventually wiped the bad guy's data storage [I do believe it was a hard drive, even though they were uncommon then]).  One of the programs involved a game were you piloted a submarine and had to avoid or shoot sharks.  The code was in BASIC; minor changes (such as 'CLS' -&gt; 'HOME') had to be made for your specific computer, and it used good old 40-column text-mode to display the action.  IIRC, the plot never depended upon the programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is, does anyone else recall these sorts of books?  Do you know any titles that I could look for, or of any online?  I am toying with the idea of writing a story like this (no, not in BASIC!), and would really like to see how it was done, back in the day.&lt;/p&gt;&#xA;" OwnerUserId="9150" LastActivityDate="2010-12-06T15:12:33.363" Title="Fiction that includes BASIC programs" Tags="&lt;books&gt;&lt;basic&gt;" AnswerCount="2" CommentCount="4" />
  <row Id="23817" PostTypeId="2" ParentId="23809" CreationDate="2010-12-05T03:08:45.140" Score="2" ViewCount="" Body="&lt;p&gt;On occasion i will program something in Haskell, or Prolog. I usually just do it cause i am on a long plane/bus ride and I need something to kill time, however on top of killing time it also provides me with a different way of looking at a problem as both those languages are quite different from everything else IMO.  &lt;/p&gt;&#xA;" OwnerUserId="9087" LastActivityDate="2010-12-05T03:08:45.140" CommentCount="1" />
  <row Id="23818" PostTypeId="2" ParentId="1059" CreationDate="2010-12-05T03:09:39.930" Score="1" ViewCount="" Body="&lt;h1&gt;Yes&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;OOP gives you more ways to reuse code&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;No&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;there is no silver bullet&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;It Depends&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;on what you put into it, and what you expected in return!&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-12-05T03:17:51.653" LastActivityDate="2010-12-05T03:17:51.653" />
  <row Id="23819" PostTypeId="2" ParentId="23735" CreationDate="2010-12-05T03:12:08.117" Score="1" ViewCount="" Body="&lt;p&gt;I always like using quotes from popular things. For me i'd probably set work to say &quot;GO GO GO!&quot; like a starcraft marine&lt;/p&gt;&#xA;" OwnerUserId="9087" LastActivityDate="2010-12-05T03:12:08.117" />
  <row Id="23820" PostTypeId="2" ParentId="23668" CreationDate="2010-12-05T03:13:50.790" Score="0" ViewCount="" Body="&lt;p&gt;Very little, now. This past week I've been trying a low information diet - at least during the work day. I still use it, but only if it's directly applicable to what I'm working on. Outside of work, I'll do some casual reading but I rely on RSS and try to limit the number of posts I see.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So far so good. &lt;/p&gt;&#xA;" OwnerUserId="4191" LastActivityDate="2010-12-05T03:13:50.790" />
  <row Id="23821" PostTypeId="2" ParentId="23735" CreationDate="2010-12-05T03:14:23.257" Score="1" ViewCount="" Body="&lt;p&gt;&quot;The remaining balance on your current mortgage is $137,983.00&quot;&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-12-05T03:14:23.257" />
  <row Id="23823" PostTypeId="1" CreationDate="2010-12-05T03:26:28.517" Score="7" ViewCount="425" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/729/how-do-you-manage-your-knowledge-base&quot;&gt;How do you manage your knowledge base?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I have been using Dokuwiki but it is not very elegant and really doesn't look very nice.  So does anybody else have any other recommendations?&lt;/p&gt;&#xA;" OwnerUserId="7997" LastActivityDate="2010-12-06T13:45:54.233" ClosedDate="2010-12-06T16:29:53.733" Title="What do you use for personal note taking to keep track of everything you learn?" Tags="&lt;information&gt;&lt;notes&gt;&lt;information-overload&gt;" AnswerCount="14" CommentCount="2" FavoriteCount="4" />
  <row Id="23825" PostTypeId="2" ParentId="4123" CreationDate="2010-12-05T03:42:21.760" Score="0" ViewCount="" Body="&lt;p&gt;The best way to understand Object Oriented Programming is to think in real-world-objects. Examples are Peoples, Cars, and so on. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Object: A Person is an Object. &lt;/li&gt;&#xA;&lt;li&gt;Members: A Person has some kind of properties (state) (size, weight, name, etc.). &lt;/li&gt;&#xA;&lt;li&gt;Function: A Person can do something. (speak(), eat(),  sleep(), ...)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you are unsure about class an instances: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A &quot;class&quot; is a general concept, lilke &quot;Person&quot;. &lt;/li&gt;&#xA;&lt;li&gt;A &quot;instance&quot; of a person is a specific Person, like &quot;Fred Smith&quot;. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There are many instances (Fred, Wilma, Herta, Norbert, ...), but only one class (Person). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Person A = new Person(name=&quot;Fred&quot;); // we created Fred; Fred is a Person&#xA;A.Weight += 1; // Fred got an extra pound&#xA;A.Say(&quot;Hello&quot;); // Fred says hello&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="9151" LastActivityDate="2010-12-05T03:42:21.760" />
  <row Id="23826" PostTypeId="2" ParentId="23823" CreationDate="2010-12-05T03:48:11.347" Score="7" ViewCount="" Body="&lt;p&gt;Onenote with skydrive integration works really well for me.&lt;/p&gt;&#xA;" OwnerUserId="3755" LastActivityDate="2010-12-05T03:48:11.347" CommentCount="2" />
  <row Id="23827" PostTypeId="2" ParentId="23823" CreationDate="2010-12-05T03:55:04.813" Score="2" ViewCount="" Body="&lt;p&gt;I'm using MediaWiki for everything work related. An Apache-MySQL-Webserver and a USB-Stick does the trick.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For complex information I stick to paper. I've tried convertible notebooks for note-taking too. There is currently no software that can handle every kind of information a physics-student has to work with. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Text is working fine, as long there is a key for the letter you want to input. If you have to change the alphabet, need complex math presentations, or create drawings on the fly, current software interfaces are failing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good applications for Tablets are OneNote and EverNote (General Note taking), MathJournal (Mathematical Formulas), Autodesk SketchBook (Graphics), SmartDraw (Diagrams), CaRMetal (Interactive Geometry). I'm still missing the Application that can do all of those things in a single document. &lt;/p&gt;&#xA;" OwnerUserId="9151" LastEditorUserId="9151" LastEditorDisplayName="" LastEditDate="2010-12-05T04:09:24.370" LastActivityDate="2010-12-05T04:09:24.370" />
  <row Id="23828" PostTypeId="2" ParentId="1059" CreationDate="2010-12-05T04:07:50.890" Score="0" ViewCount="" Body="&lt;p&gt;If it is have they delivered on their promise of code reuse so far?  Yes, if the programs written with OOP in mind apply design patterns wisely.  Otherwise, mostly no.  But looking at the popularity of large scale non trivial programs that Adobe systems, Google and the like write with C++ or Java or other OOP languages, I would say OOP has a long way to go before it phases out.  That time will be far better suited to ask this question and could help in providing ground work for a new paradigm.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-12-05T04:07:50.890" />
  <row Id="23829" PostTypeId="2" ParentId="23823" CreationDate="2010-12-05T04:12:19.407" Score="1" ViewCount="" Body="&lt;p&gt;overall project notes: a notebook in OneNote&lt;/p&gt;&#xA;&#xA;&lt;p&gt;current iteration/version notes: a text document in a no-build doc project in the solution (one for each iteration)&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-05T04:12:19.407" />
  <row Id="23830" PostTypeId="2" ParentId="23810" CreationDate="2010-12-05T04:20:02.677" Score="1" ViewCount="" Body="&lt;p&gt;The first thing you need to have is patience and stamina. You will go trough 5-9 interviews and it will takes the entire day. The questions are mostly brain crackers and not bookish. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-05T04:20:02.677" CommentCount="3" />
  <row Id="23831" PostTypeId="2" ParentId="23809" CreationDate="2010-12-05T04:33:08.053" Score="0" ViewCount="" Body="&lt;p&gt;I haven't done it in a while, but I use to use Bliss for a reference language before I learned C,&lt;/p&gt;&#xA;" OwnerUserId="7222" LastActivityDate="2010-12-05T04:33:08.053" />
  <row Id="23832" PostTypeId="2" ParentId="23823" CreationDate="2010-12-05T04:40:50.647" Score="2" ViewCount="" Body="&lt;p&gt;I want to start with this activity. But every time I learn something I will say I will note it later. For day to day scratch pad thing I use notepad. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-05T04:40:50.647" CommentCount="1" />
  <row Id="23833" PostTypeId="2" ParentId="23823" CreationDate="2010-12-05T04:42:32.823" Score="4" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.tiddlywiki.com/&quot; rel=&quot;nofollow&quot;&gt;Tiddly Wiki&lt;/a&gt;.  It has most all the benefits of other wikis, but is just a single html file.  This is useful for keeping notes at work, where you don't always have the ability to setup something on a server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.tiddlywiki.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.tiddlywiki.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5911" LastActivityDate="2010-12-05T04:42:32.823" CommentCount="2" />
  <row Id="23834" PostTypeId="2" ParentId="23823" CreationDate="2010-12-05T04:54:02.337" Score="2" ViewCount="" Body="&lt;p&gt;I use twitter. For me, it is a medium where I pen down my key learnings, links to documents, sites etc almost on a daily basis. I also use it for discussion with my friends, and the discussion itself is also stored in twitter which is great.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only issue: Retrieving old tweets might be a problem, unless you know how to use twitter API to keep backups. &lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-05T04:54:02.337" />
  <row Id="23835" PostTypeId="2" ParentId="2846" CreationDate="2010-12-05T04:55:12.600" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Batch Files - JCL&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whatever language is used in &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Batch_file&quot; rel=&quot;nofollow&quot;&gt;Batch Files&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wikipedia says it is similar to &lt;a href=&quot;http://en.wikipedia.org/wiki/Job_Control_Language&quot; rel=&quot;nofollow&quot;&gt;Job Control Language (JCL)&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well then I also hate &lt;strong&gt;JCL&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5911" LastActivityDate="2010-12-05T04:55:12.600" CommunityOwnedDate="2010-12-05T04:55:12.600" CommentCount="1" />
  <row Id="23836" PostTypeId="2" ParentId="1059" CreationDate="2010-12-05T04:57:40.087" Score="0" ViewCount="" Body="&lt;p&gt;Objects enable code re-sue but as such is not the most technique for that. I think code re-use is promoted through object related techniques such as inheritance, polymorphism, overloading, and templates.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-05T04:57:40.087" />
  <row Id="23837" PostTypeId="2" ParentId="23800" CreationDate="2010-12-05T05:07:48.533" Score="4" ViewCount="" Body="&lt;p&gt;You would do yourself a lot of good if you switch to good old fashioned reading instead of trying to learn about the subject by figuring out the next cool PHP construct. Yeah, knowing that construct does count, but it's not for starters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's my list of mostly language agnostic must read books:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Algorithms + Data Structures = Programs by Wirth &lt;/li&gt;&#xA;&lt;li&gt;The Algorithm Design Manual by Skiena&lt;/li&gt;&#xA;&lt;li&gt;Operating System Concepts by Galvin &amp;amp; Silberschatz&lt;/li&gt;&#xA;&lt;li&gt;Design Patterns by Gamma et al &lt;/li&gt;&#xA;&lt;li&gt;Pragmatic Programmer by Hunt &amp;amp; Thomas&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-05T05:07:48.533" CommentCount="2" />
  <row Id="23838" PostTypeId="1" CreationDate="2010-12-05T05:14:14.113" Score="4" ViewCount="132" Body="&lt;p&gt;Clearly optimizing cache usages is bound to improve my program efficiency. Surprisingly, I don't see too many programming languages actually having this sort of a feature. So here's my question: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What kind of language constructs have you seen that help improving cache usage?&lt;/li&gt;&#xA;&lt;li&gt;How to innovate on cache usage since most systems won't easily reveal stuff like their L1 cache size easily? (Windows does have API or maybe /proc/cpuinfo on Linux, but I am looking for something simpler for the intermediate developer)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-05T08:33:52.487" Title="Programming language constructs for cache optimization?" Tags="&lt;programming-languages&gt;&lt;cpu&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="2" />
  <row Id="23839" PostTypeId="2" ParentId="23823" CreationDate="2010-12-05T05:18:06.567" Score="5" ViewCount="" Body="&lt;p&gt;I've been using &lt;a href=&quot;http://docs.google.com&quot; rel=&quot;nofollow&quot;&gt;Google Docs&lt;/a&gt;.  It's a simple approach, and your docs are available anywhere you go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For short-term notes relating to what I'm working on (todo's, things I shouldn't forget), &lt;a href=&quot;http://www.zhornsoftware.co.uk/stickies/&quot; rel=&quot;nofollow&quot;&gt;Stickies&lt;/a&gt; is really nice.  Medium to long-term to-do's go on &lt;a href=&quot;http://www.toodledo.com&quot; rel=&quot;nofollow&quot;&gt;Toodledo&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-12-05T05:18:06.567" CommentCount="2" />
  <row Id="23842" PostTypeId="2" ParentId="23838" CreationDate="2010-12-05T05:29:02.433" Score="0" ViewCount="" Body="&lt;p&gt;there's no trivial answer here. in a multiprocessing system (i.e. any modern OS), you can't make many assumptions about the state of virtual memory. you can make some general observations regarding data structures though. hashing techniques may allow you to develop a more reliable affinity between data and storage, whereas data structures like trees will tend to employ offsets that degrade the effectiveness of caching...BUT take this all with a huge caveat...profiling the benefits of one technique over another is going to be extremely difficult and specific to your own architecture and memory hierarchy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the shortest answer here is for the &quot;intermediate developer&quot;, you are far better off using well-tested libraries that have clearly stated performance bounds and well-understood memory consumption patterns. trying to optimize for caching on a specific hardware platform would seem to be a painful last resort for the most difficult problems.&lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-12-05T05:29:02.433" />
  <row Id="23843" PostTypeId="2" ParentId="23800" CreationDate="2010-12-05T05:31:01.370" Score="1" ViewCount="" Body="&lt;p&gt;It is not necessary to go to university to learn programming. In fact, because technology changes so rapidly, most of the technical knowledge you learn will be obsolete by the time you graduate. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compilers, runtime environments and libraries are updated, hardware is more powerful, software becomes more complex, so on and so forth. What you should gain from working in university is technique and factors outside of actual programming. Things like working in a team, meeting deadlines, and how to stay on top of emerging technologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, some people do tend to learn best when they're being taught, and not just from reading. If you want to learn in this fashion, you could look into &lt;a href=&quot;http://en.wikipedia.org/wiki/OpenCourseWare&quot; rel=&quot;nofollow&quot;&gt;OpenCourseWare&lt;/a&gt; classes. Schools like Yale and MIT have quite a few courses online.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, &lt;a href=&quot;http://www.youtube.com/watch?v=k6U-i4gXkLM&quot; rel=&quot;nofollow&quot;&gt;here's a series of lectures from MIT&lt;/a&gt; from an Intro to Computer Science course of theirs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you plan on getting into programming as a career, though, you will want to have a degree. It's getting more and more difficult to get a job in any field without a college education. You might be the best self-taught programmer in the world, able to reverse engineer Microsoft Windows from scratch in two days, but many potential employers won't even glance in your general direction if your education is lacking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that programming is an odd field in which somebody could self-teach far better than any school ever could. There are people who have been good enough, or lucky enough, to get employed sans degree. However, this is the exception, not the rule. &lt;/p&gt;&#xA;" OwnerUserId="5624" LastActivityDate="2010-12-05T05:31:01.370" CommentCount="1" />
  <row Id="23845" PostTypeId="1" AcceptedAnswerId="23856" CreationDate="2010-12-05T05:33:19.527" Score="27" ViewCount="888" Body="&lt;p&gt;I was watching &lt;a href=&quot;http://en.wikipedia.org/wiki/Bob_Ross&quot; rel=&quot;nofollow&quot;&gt;Bob Ross&lt;/a&gt; paint some &quot;happy trees&quot; tonight, and I've figured out what's been stressing me out about my code lately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The community of folks here and on Stack Overflow seem to reject any whiff of imperfection.  My goal is to write respectable (and therefore maintainable and functioning) code, by improving my skills.  Yet, I code creatively.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let me explain what I mean by &quot;coding creatively&quot;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;My first steps in a project are often to sit down and bash out some code.  For bigger things, I plan a bit out here and there, but mostly I just dive in.&lt;/li&gt;&#xA;&lt;li&gt;I don't diagram any of my classes, unless I'm working with others who are creating other pieces in the project.  Even then, it certainly isn't the first thing I do.  I don't typically work on huge projects, and I don't find the visual very useful.&lt;/li&gt;&#xA;&lt;li&gt;The first round of code I write will get rewritten many, many times as I test, simplify, redo, and transform the original hack into something reusable, logical, and efficient.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;During this process, I am always cleaning.  I remove unused code, and comment anything that isn't obvious.  I test constantly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;My process seems to go against the grain of what is acceptable in the professional developer community, and I would like to understand why.&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that most of the griping about bad code is that someone got stuck with a former employee's mess, and it cost a lot of time and money to fix.  That I understand.  What I don't understand is how my process is wrong, given that the end result is similar to what you would get with planning everything from the start.  (Or at least, that's what I have found.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My anxiety over the issue has been so bad lately that I have stopped coding until I know everything there is about every method for solving the particular problem I am working on.  In other words, I have mostly stopped coding altogether.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I sincerely appreciate your input, no matter what your opinions are on the issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;  Thank you all for your answers.  I have learned something from each of them.  You have all been most helpful.&lt;/p&gt;&#xA;" OwnerUserId="5194" LastEditorUserId="5194" LastEditorDisplayName="" LastEditDate="2010-12-05T19:17:11.503" LastActivityDate="2010-12-14T13:32:36.187" Title="What's so bad about creative coding?" Tags="&lt;development-process&gt;&lt;code-quality&gt;" AnswerCount="14" CommentCount="7" FavoriteCount="8" />
  <row Id="23846" PostTypeId="2" ParentId="23809" CreationDate="2010-12-05T05:34:10.073" Score="0" ViewCount="" Body="&lt;p&gt;of course! life isn't all about the bottom line. why not take some time for a mind-expanding excursion into uncharted waters? i love programming in haskell. it took me two years just to get to a point of basic competency with it...but along the way i had many of my assumptions about coding challenged. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;stepping outside of your comfort zone periodically is essential if you are going to make a life out of programming. &lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-12-05T05:34:10.073" />
  <row Id="23848" PostTypeId="1" AcceptedAnswerId="24149" CreationDate="2010-12-05T05:39:33.373" Score="6" ViewCount="277" Body="&lt;p&gt;The complement of the &lt;a href=&quot;http://programmers.stackexchange.com/questions/11440/being-a-good-mentor&quot;&gt;Being a good mentor&lt;/a&gt; question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work with many very senior people that have vast amounts of knowledge and wisdom in Software, Engineering and our business domain.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some tips for gaining as much knowledge from them?  I don't want to take up too much of their time, but also want to take full advantage of this since it really could help develop my skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some good questions to get the conversation rolling in a sit down mentor/mentee session?  Some of the people providing mentorship have little experience in this area, so it would help to be able to lead some of these discussions.&lt;/p&gt;&#xA;" OwnerUserId="5911" LastEditorUserId="5911" LastEditorDisplayName="" LastEditDate="2011-02-05T13:58:21.020" LastActivityDate="2011-02-05T13:58:21.020" Title="Being a good mentee - a protégé." Tags="&lt;career&gt;&lt;self-improvement&gt;&lt;career-advice&gt;" AnswerCount="4" FavoriteCount="4" />
  <row Id="23849" PostTypeId="2" ParentId="14299" CreationDate="2010-12-05T05:42:47.113" Score="0" ViewCount="" Body="&lt;p&gt;I don't know the global answer.  I find myself generally happy, but when I'm not, it is because I get the blame for someone else's mess.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How many times have you heard someone blame their mail server for not getting some important memo?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How often does upper-management fault the tech folks for their budget black hole?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look how easy it is for management to cut positions that they don't understand, or positions that are not narrow in focus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I worked at an internet radio station once where the program director put all of her scheduling for the new year in with the wrong year.  January 1st rolled around, and I was singled out in a org-wide e-mail for causing us to go in on New Years Day to solve the problem, despite the fact that it was her screw-up to begin with.  It's things like that...&lt;/p&gt;&#xA;" OwnerUserId="5194" LastActivityDate="2010-12-05T05:42:47.113" />
  <row Id="23850" PostTypeId="2" ParentId="23848" CreationDate="2010-12-05T05:42:52.573" Score="7" ViewCount="" Body="&lt;p&gt;ask smart questions where you can. read before asking. see how much you can figure out for yourself. resort to spoonfeeding only when everything else fails.&lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-12-05T05:42:52.573" CommentCount="1" />
  <row Id="23851" PostTypeId="1" CreationDate="2010-12-05T05:44:07.487" Score="0" ViewCount="100" Body="&lt;p&gt;As a college student do you write unit-test for the project code you write?  Do you know how to properly use TDD?  Have you been taught to use testing frameworks (jUnit for example)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've just recently heard that a major company's project team was delivering software to User Acceptance Testing group that had only 7% line code coverage for unit testing.  While that shocks me, it just tells me that this company's software engineering practice are immature.  However I wonder if they could just hire a few recent graduates and raise the bar on the teams practices - assuming that these newly minted programmers were trained in the best practices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you 2008 - 2010 CS graduates using best practices of unit testing your code?&lt;/p&gt;&#xA;" OwnerUserId="9153" LastActivityDate="2010-12-05T07:22:49.503" Title="What percent of your college course work is unit-tested code?" Tags="&lt;career&gt;&lt;programming&gt;&lt;education&gt;&lt;unit-testing&gt;" AnswerCount="2" CommentCount="5" />
  <row Id="23852" PostTypeId="1" AcceptedAnswerId="23876" CreationDate="2010-12-05T05:49:51.270" Score="9" ViewCount="261" Body="&lt;p&gt;I've seen others use Bitwise-OR to combine flags before:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#define RUN 0x01&#xA;#define JUMP 0x02&#xA;#define SHOOT 0x04&#xA;&#xA;const byte madPerson = RUN | JUMP | SHOOT;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That's also the way I do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I've also seen some (not as many) combine flags using addition:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#define RUN 0x01&#xA;#define JUMP 0x02&#xA;#define SHOOT 0x04&#xA;&#xA;const byte madPerson = RUN + JUMP + SHOOT;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Which one is more &quot;readable&quot;? (Which one do you think more people will recognize?) What is the &quot;standard&quot; way to do it? Which one do you prefer?&lt;/p&gt;&#xA;" OwnerUserId="6440" LastEditorUserId="5570" LastEditorDisplayName="" LastEditDate="2010-12-05T08:08:12.180" LastActivityDate="2010-12-26T16:10:54.250" Title="Bitwise-OR vs Adding Flags" Tags="&lt;best-practices&gt;&lt;c++&gt;&lt;operators&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="1" />
  <row Id="23854" PostTypeId="2" ParentId="23852" CreationDate="2010-12-05T05:53:01.787" Score="9" ViewCount="" Body="&lt;p&gt;bitwise-OR conveys the intent more clearly&lt;/p&gt;&#xA;&#xA;&lt;p&gt;also, bitwise-OR &lt;em&gt;should&lt;/em&gt; be more efficient&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-05T05:53:01.787" CommentCount="7" />
  <row Id="23855" PostTypeId="1" CreationDate="2010-12-05T05:53:55.040" Score="0" ViewCount="90" Body="&lt;p&gt;Is it better for a software developer to take a full time job (for the security) or to take individual projects (to keep learning new skills)?&lt;/p&gt;&#xA;" OwnerUserId="9154" LastActivityDate="2010-12-05T07:44:02.673" ClosedDate="2010-12-05T07:52:58.093" Title="Software Developer - Full Time Job or Contract Projects?" Tags="&lt;software-developer&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="23856" PostTypeId="2" ParentId="23845" CreationDate="2010-12-05T05:55:47.400" Score="13" ViewCount="" Body="&lt;p&gt;there's nothing wrong with code-test-refactor-repeat, just tell people you're prototyping&lt;/p&gt;&#xA;&#xA;&lt;p&gt;on the other hand, for larger projects you will find some thought given to the design up-front will save you a lot of time in the oh-crap-now-what loop!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. diagramming techniques help you to learn visual thinking skills, which are valuable even if no one but you ever sees your diagrams&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-05T05:55:47.400" CommentCount="5" />
  <row Id="23857" PostTypeId="2" ParentId="23845" CreationDate="2010-12-05T05:56:14.710" Score="13" ViewCount="" Body="&lt;p&gt;I'm much the same way.  Listen when other people tell you about things that worked for them, but ignore anyone who tells you what you &quot;should&quot; be doing as though there were some moral imperative to it.  If you find something that works for you, go with it.  I mean, the end result is what's important isn't it?  Who really cares about the path you took to get there?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember:  people are &lt;em&gt;different&lt;/em&gt;.  That's a good thing.  Don't listen to people who try to make you like them, and resist the urge to make other people like you and you'll do fine.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-05T05:56:14.710" CommentCount="4" />
  <row Id="23859" PostTypeId="1" AcceptedAnswerId="23927" CreationDate="2010-12-05T06:09:29.077" Score="7" ViewCount="170" Body="&lt;p&gt;Just like we can measure complexity of code and algorithm, are there any metrics for measuring architecture/design/solution space complexity.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-05T18:32:24.913" Title="Metrics for architecture complexity" Tags="&lt;programming&gt;&lt;design&gt;&lt;architecture&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="1" />
  <row Id="23860" PostTypeId="2" ParentId="23845" CreationDate="2010-12-05T06:13:26.543" Score="2" ViewCount="" Body="&lt;p&gt;I agree with Jason. Program the way your brain is wired to work. &lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-12-05T06:13:26.543" CommentCount="3" />
  <row Id="23861" PostTypeId="1" CreationDate="2010-12-05T06:19:55.430" Score="0" ViewCount="28" Body="&lt;p&gt;My company ranks well for our keywords on Google and on Bing, but not on Yahoo. Based on my research, it seems that Yahoo still has their Paid Directory Inclusion Program which costs $299 per year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this the only effective way to improve Yahoo ranking? Will it also improve my ranking for other sites (like Google and Bing)? It is worth $299?&lt;/p&gt;&#xA;" OwnerUserId="9154" LastActivityDate="2010-12-05T06:19:55.430" ClosedDate="2010-12-05T11:03:05.747" Title="Yahoo Paid Directory Inclusion Program Effectiveness" Tags="&lt;seo&gt;" CommentCount="1" />
  <row Id="23863" PostTypeId="1" CreationDate="2010-12-05T06:37:08.277" Score="7" ViewCount="468" Body="&lt;p&gt;I keep hearing from people that if I don't become a programmer soon after graduation my degree will be a useless piece of paper, they claim it will become outdated.  I kind of find this hard to believe considering what I was taught at a fairly good school has been standard practice for some time.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So is this a true belief in industry?  That somehow I become less desirable after a year or two, even though the graduates who comes after me pretty much get the same identical education.&lt;/p&gt;&#xA;" OwnerUserId="7997" LastActivityDate="2010-12-06T11:36:32.240" Title="How long does a Comp Sci degree last?" Tags="&lt;education&gt;" AnswerCount="9" CommentCount="2" />
  <row Id="23864" PostTypeId="2" ParentId="23863" CreationDate="2010-12-05T06:38:28.267" Score="6" ViewCount="" Body="&lt;h1&gt;Nonsense&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;ask them why they think that&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-05T06:38:28.267" CommentCount="3" />
  <row Id="23865" PostTypeId="2" ParentId="23848" CreationDate="2010-12-05T06:53:17.727" Score="2" ViewCount="" Body="&lt;p&gt;Don't take what they say for granted.  Question all of their advice and (politely) point out any potential problems you see in it.  More experienced programmers make mistakes and have biases just like everyone else.  A good mentor will be patient with you and won't get upset at you for this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides that, the why is more important than the what.  Most bits of advice have exceptions, and you won't learn how to handle those exceptions without knowing why they exist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And don't stop with your mentor.  Treat managers and other programers the same way.  If people get frustrated with this, ask yourself:  what are they afraid of?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The important thing is not to stop questioning. Curiosity has its own reason for existing. One cannot help but be in awe when he contemplates the mysteries of eternity, of life, of the marvelous structure of reality. It is enough if one tries merely to comprehend a little of this mystery every day. Never lose a holy curiosity.&lt;br&gt;&#xA;  - Albert Einstein&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-05T06:53:17.727" />
  <row Id="23866" PostTypeId="2" ParentId="23863" CreationDate="2010-12-05T06:56:47.410" Score="11" ViewCount="" Body="&lt;p&gt;I don't think so. A degree will last as long as it exists.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is well known that people forget quickly [almost] everything they have studied. Jumping into working environment straight after the graduation won't change much. You'll still forget everything soon afterward since you won't be using most of your knowledge anyway. As you know most of the programming jobs it's just simple code&amp;amp;maintenance stuff with little to none CS application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In that regard, if you were going to devalue a degree after one year, you could it right away. A year in the industry instead of a year off won't help a programmer to hold on to the knowledge obtained.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An entirely different matter is however what value is a degree for a programmer. I think most employers would put value on your practical experience not on your degree, so it comes as irrelevant when exactly you got one.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-06T09:08:05.793" LastActivityDate="2010-12-06T09:08:05.793" />
  <row Id="23867" PostTypeId="2" ParentId="23851" CreationDate="2010-12-05T07:03:54.940" Score="0" ViewCount="" Body="&lt;p&gt;In my university you can't complete a Software Engineering degree without taking a particular subject that focuses on teaching Agile software development methodologies. In that subject you can't claim any feature's implemented without reasonable testing through JUnit and Selenium.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However: TDD was taught but not enforced and due to group work some students could avoid exposing themselves to Selenium and/or JUnit.&lt;/p&gt;&#xA;" OwnerUserId="5570" LastEditorUserId="5570" LastEditorDisplayName="" LastEditDate="2010-12-05T07:10:45.140" LastActivityDate="2010-12-05T07:10:45.140" />
  <row Id="23868" PostTypeId="2" ParentId="23863" CreationDate="2010-12-05T07:04:23.267" Score="5" ViewCount="" Body="&lt;p&gt;Although the technologies in CS change rapidly, most of the principles you've learned will last a long time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, it's true that the practical value of a CS degree to a new grad will diminish over time if the grad doesn't actively practice what they've learned. This is, of course, true for any degree; the only way to maintain the value of a degree is to use what you've learned. For example, if you participate in an open source project, you will be adding to the knowledge gained from your degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as employment goes, I doubt your CS degree will &quot;degrade&quot; over time to potential employers, but if you haven't been working on projects of some kind post-graduation, you will likely have trouble with the technical interviews.&lt;/p&gt;&#xA;" OwnerUserId="7629" LastActivityDate="2010-12-05T07:04:23.267" />
  <row Id="23869" PostTypeId="2" ParentId="23851" CreationDate="2010-12-05T07:22:49.503" Score="2" ViewCount="" Body="&lt;p&gt;I don't write unit-tests for the software I write for assignments, I usually just do some of my own testing and debugging. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, CS at my university is fairly broken, half the students are diehard passionate programmers who have learned nearly everything on their own. The other half can barely write a hello world in Java, and know no other languages and have extreme problems with even trivial programs. Students barely get much programming experience, most manage to squeak by copy &amp;amp; pasting code form books and the internet without really understanding it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As part of the degree plan, you have to take courses on architecture and management that involve agile and the concepts of software testing and test driven development. However, these courses are taken pretty late (senior year) and are certainly not utilized in other courses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I had more time, I'd probably unit-test my code properly; unfortunately I'm working and taking 19 hours, so I've got alot of assignments and I can usually bang them out pretty quick and test them enough. I have gotten dinged a couple points for a bug here or there though, and unit-testing my code would certainly help get better grades on the assignments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sadly, my experience is that any REAL software development, any type of real-world systems programming or coding standards or best practice is done by those who write code on the weekends, and read about it on their own, and look for it on their own. The students who just go to class, I can't imagine how they're going to get hired. You get shown what all exists and that you need to know it in class, but not enough implementation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Professors can't grade 50 students' programming assignments every week, so if they want to have lots of actual practice, they have us do group work. This results in the one or two good programmers doing almost all the work, and the rest follow along and try to read and modify their code. Maybe other Universities are better, and I think they claim to be; but I think in practice they aren't really any different.&lt;/p&gt;&#xA;" OwnerUserId="6167" LastActivityDate="2010-12-05T07:22:49.503" CommentCount="2" />
  <row Id="23870" PostTypeId="2" ParentId="23863" CreationDate="2010-12-05T07:27:31.590" Score="7" ViewCount="" Body="&lt;p&gt;The stuff you learn while getting a degree usually forms the basics of &lt;strong&gt;Computer Science&lt;/strong&gt;. The principles you learned then, provide a helping hand to all the technologies you'll probably learn in future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if there are variations in technology, you can always use your basics to derive new technologies from them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMO, a degree doesn't have any kind of shelf life. People recruit you for your abilities, alongwith your degree ofcourse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Eventually, it boils down to what you learn and how you hone your skills between the &lt;em&gt;graduated&lt;/em&gt; and the &lt;em&gt;employed&lt;/em&gt; period.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="4522" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-12-05T08:30:20.717" LastActivityDate="2010-12-05T08:30:20.717" />
  <row Id="23871" PostTypeId="2" ParentId="23863" CreationDate="2010-12-05T07:35:57.453" Score="4" ViewCount="" Body="&lt;h1&gt;Degrees last forever.&lt;sup&gt;*&lt;/sup&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Any time after you get the degree and apply for a job where a bachelor or master's degree is a requirement, your degree will fulfill that requirement.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prospective employers are not going to say, &quot;Well, when did you get the degree, because we only accept degrees that are less than 10 years old.&quot;  They will &lt;em&gt;never&lt;/em&gt; say that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that having a degree does not necessarily guarantee employment.  You must still have the skills and experience they are looking for. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;* and so do &lt;em&gt;really big fonts.&lt;/em&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-05T18:16:35.550" LastActivityDate="2010-12-05T18:16:35.550" CommentCount="10" />
  <row Id="23873" PostTypeId="2" ParentId="23855" CreationDate="2010-12-05T07:44:02.673" Score="0" ViewCount="" Body="&lt;p&gt;If you take a full-time job in an agency environment, you can have the security &lt;em&gt;and&lt;/em&gt; a constant stream of projects to keep learning new skills.&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-12-05T07:44:02.673" />
  <row Id="23875" PostTypeId="2" ParentId="17355" CreationDate="2010-12-05T07:53:00.643" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The largest number that can be represented by 8 Byte (Python)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;print '\n'.join(&quot;%i Byte = %i Bit = largest number: %i&quot; % (j, j*8, 256**j-1) for j in (1 &amp;lt;&amp;lt; i for i in xrange(8)))&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4522" LastActivityDate="2010-12-05T07:53:00.643" CommunityOwnedDate="2010-12-05T07:53:00.643" />
  <row Id="23876" PostTypeId="2" ParentId="23852" CreationDate="2010-12-05T08:00:59.453" Score="18" ViewCount="" Body="&lt;h1&gt;Bitwise-OR.&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Addition is dangerous.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider an example where a bandit is a person, and an angry bandit is a bandit that speaks and shoots. Later, you decide all bandits should shoot, but you've forgotten about the angry bandit definition and don't remove its shooting flag.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#define PERSON 1 &amp;lt;&amp;lt; 0&#xA;#define SPEAKS 1 &amp;lt;&amp;lt; 1&#xA;#define SHOOTS 1 &amp;lt;&amp;lt; 2&#xA;#define INVINCIBLE 1 &amp;lt;&amp;lt; 3&#xA;const byte bandit = PERSON | SHOOTS;                    // 00000101&#xA;const byte angryBandit_add = bandit + SPEAKS + SHOOTS;  // 00001011 error&#xA;const byte angryBandit_or = bandit | SPEAKS | SHOOTS;   // 00000111 ok&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If you used &lt;code&gt;angryBandit_add&lt;/code&gt; your game would now have the perplexing logic error of having angry bandits that can't shoot or be killed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you used &lt;code&gt;angryBandit_or&lt;/code&gt; the worst you'd have is a redundant &lt;code&gt;| SHOOTS&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;For similar reasons, bitwise NOT is safer than subtraction for removing flags.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5570" LastEditorUserId="5570" LastEditorDisplayName="" LastEditDate="2010-12-26T16:10:54.250" LastActivityDate="2010-12-26T16:10:54.250" CommentCount="1" />
  <row Id="23878" PostTypeId="2" ParentId="14299" CreationDate="2010-12-05T08:23:20.877" Score="0" ViewCount="" Body="&lt;p&gt;Man is not really supposed to be couped up in an office everyday.  Lots of office jobs people come in and kinda just sit there for a few hours, do a few odd tasks and get paid.  IT people tend to always have some job to do.  That can create a lot of stress and make people less happy.&lt;/p&gt;&#xA;" OwnerUserId="7997" LastActivityDate="2010-12-05T08:23:20.877" />
  <row Id="23879" PostTypeId="2" ParentId="23863" CreationDate="2010-12-05T08:28:12.323" Score="7" ViewCount="" Body="&lt;p&gt;I think that some posters here are trying to console or assure themselves of something when they think that a degree is somehow eternal. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you've possibly got an eidetic memory then knowledge and skills, un-maintained, will degrade over time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The implication here is: the importance lies in what you've been doing since you graduated. Honestly, if someone got a comp-sci degree 10 years ago, and has been delivering the mail&lt;sup&gt;1&lt;/sup&gt; and not actively working in their field (paid or not), then their degree means little to nothing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If, on the other hand, you haven't been able to get work for a couple of years, but you've contributed to some OS projects, worked on some hobby projects, published an article or two, made a website for your uncle's bakery and maintained a blog about whatever your programming interest are, then you're just as good (or better in some cases) as someone who graduated and has worked full-time since.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt; Occupation chosen at random, there's nothing wrong with delivering the mail - it's just not programming related.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-12-05T19:07:41.077" LastActivityDate="2010-12-05T19:07:41.077" CommentCount="4" />
  <row Id="23880" PostTypeId="2" ParentId="23809" CreationDate="2010-12-05T08:32:01.570" Score="3" ViewCount="" Body="&lt;p&gt;Brainfuck is a good one. Actually, it's pretty horrible to read, and you have to comment it pretty damn well to be able to understand what you've written.&lt;/p&gt;&#xA;" OwnerUserId="1253" LastActivityDate="2010-12-05T08:32:01.570" CommentCount="3" />
  <row Id="23881" PostTypeId="2" ParentId="23838" CreationDate="2010-12-05T08:33:52.487" Score="2" ViewCount="" Body="&lt;p&gt;This is just an off-the-head list.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Concepts&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Spatial locality &lt;/li&gt;&#xA;&lt;li&gt;Temporal locality.&lt;/li&gt;&#xA;&lt;li&gt;Easily-predictable memory access patterns. &#xA;&lt;ul&gt;&#xA;&lt;li&gt;For example, reading/writing megabytes of data sequentially is not at all inefficient, because the CPU can predict the next address and automatically read ahead.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Programming language constructs.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Data alignment directives. &lt;/li&gt;&#xA;&lt;li&gt;Switching between array of structure and structure of array.&lt;/li&gt;&#xA;&lt;li&gt;Vectorized data containers provided by high-performance libraries.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The compiler has already done some of the work for you. For example, groups of functions that are closely related (for example, likely to be called in successive sequence) will be compiled into binary instructions and then stored close to each other, so that they reside within the same 4KB page block. There is simply no way for a developer to cater to such details manually.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For native compiled languages, local variables are stored on the stack, and the area closest to the current stack position is likely to be cached. If a large variable (several KBs or more) is allocated from the stack, the CPU may have to evict something else from the cache to make room. On the other hand, if the large variable is used very frequently, then allocating from stack can be justified.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-12-05T08:33:52.487" />
  <row Id="23882" PostTypeId="2" ParentId="9245" CreationDate="2010-12-05T08:41:29.543" Score="0" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;#!/bin/sh&#xA;announce-to-whole-world 'Jason Baker is dead.  Commence grieving.'&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Does anyone know where I can find a good implementation of &lt;code&gt;announce-to-whole-world&lt;/code&gt;?&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-05T08:41:29.543" />
  <row Id="23883" PostTypeId="2" ParentId="17355" CreationDate="2010-12-05T08:52:31.380" Score="0" ViewCount="" Body="&lt;p&gt;I like the newer feature of C# to return not null value:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var notnull = userInputName ?? &quot;Captain NEMO&quot;;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And their lambdas are pretty sweet also:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Func&amp;lt;int, int, int&amp;gt; addfn = (a, b) =&amp;gt; a + b;&#xA;Func&amp;lt;int, int&amp;gt; addtwofn = (a) =&amp;gt; addfn(a, 2);&#xA;var result = addtwofn(5); // returns 7&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-12-05T08:52:31.380" CommunityOwnedDate="2010-12-05T08:52:31.380" />
  <row Id="23884" PostTypeId="2" ParentId="23845" CreationDate="2010-12-05T09:04:03.323" Score="8" ViewCount="" Body="&lt;p&gt;I always prefer clear, readable, simple code to any visually presented, UMLed, design-patterned code, where class/interface include pattern names like &quot;ItemVisitor&quot; (?!). Design patterns, OO techniques, and everything else are to formalize rules. That rules come from the common sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is impossible to work without that formalization (unless you work alone on your own project) and the over-formalization increases the projects costs. Never disregard others' needs to understand your code. The best code is the simplest one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never hesitate to re-write your code. I'm going to get X downvotes (X&gt;=10) for this, but I'll make it bold: &lt;strong&gt;reusability of code is not the most important thing&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Before staring coding&lt;/strong&gt; you should &lt;strong&gt;consider the use-cases&lt;/strong&gt; that code is going to implement. Because the software is to be used, and not to be developed. &lt;strong&gt;Usability, usefulness&lt;/strong&gt; are two most important targets and it doesn't matter who is going to use that software - another developers of dependent parts of the project, or the end-user.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-05T09:04:03.323" CommentCount="4" />
  <row Id="23885" PostTypeId="1" AcceptedAnswerId="23892" CreationDate="2010-12-05T09:05:12.650" Score="5" ViewCount="309" Body="&lt;p&gt;I didn't ask how the quality of the software is important to the product itself, the customers/users, the manager or the company. I want to know how it is important to the &lt;strong&gt;programmer&lt;/strong&gt; that build it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll be interested in any &lt;strong&gt;books&lt;/strong&gt; (please specify the chapter), &lt;strong&gt;articles&lt;/strong&gt;, &lt;strong&gt;blog post&lt;/strong&gt;, and of course your &lt;strong&gt;personal opinion&lt;/strong&gt; on the subject regardless your experience.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-05T09:15:42.153" LastActivityDate="2010-12-06T07:06:20.847" Title="How is quality important to the programmer, the person?" Tags="&lt;quality&gt;" AnswerCount="13" CommentCount="10" />
  <row Id="23887" PostTypeId="2" ParentId="23885" CreationDate="2010-12-05T09:57:52.417" Score="5" ViewCount="" Body="&lt;p&gt;The quality of what &lt;em&gt;I&lt;/em&gt; worked on is of the utmost importance to me - sometimes to my detriment (failed deadlines mostly). As long as I can take pride in what I've done on the project, then that's what really matters to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quality of the product as a whole, is mostly a bonus. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider that I'm coming from a viewpoint where, as an employee, the software I've made has always been for someone else, so I've never really had any emotional ownership for the product; just the code inside it.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-05T09:57:52.417" CommentCount="5" />
  <row Id="23888" PostTypeId="2" ParentId="23885" CreationDate="2010-12-05T10:05:26.133" Score="3" ViewCount="" Body="&lt;p&gt;I like to write quality software, simply because it helps me being more efficient: when code is well designed, I find it easier to add new features to the program and to maintain it.  So, quality code means quality programming time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On top of that, being the most efficient possible is a nice intellectual challenge!&lt;/p&gt;&#xA;" OwnerUserId="3807" LastEditorUserId="3807" LastEditorDisplayName="" LastEditDate="2010-12-05T16:41:09.643" LastActivityDate="2010-12-05T16:41:09.643" />
  <row Id="23889" PostTypeId="2" ParentId="23885" CreationDate="2010-12-05T10:22:59.790" Score="4" ViewCount="" Body="&lt;p&gt;My grandfather designed river dams to last for centuries.  For something to hold up for any decent amount of time, it has to be good: even software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My non-programming work (most of my work, actually) is similar: we have to keep referring to what we've studied and written, often on short notice, years later, under pressure (frequently, preparing for depositions or trials).  It has to be done well, the first time, or it is often not worth doing.&lt;/p&gt;&#xA;" OwnerUserId="8467" LastActivityDate="2010-12-05T10:22:59.790" CommentCount="1" />
  <row Id="23890" PostTypeId="2" ParentId="23885" CreationDate="2010-12-05T10:26:57.497" Score="3" ViewCount="" Body="&lt;p&gt;Quality in my terms means the following: usability (less bugs, more features); simplicity;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm able to make the quality higher - this means I'm a good developer. I'm able to get paid higher, it is easy to find a good job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, &lt;strong&gt;I'm paid (bonuses) for high-quality software I produce.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-05T10:26:57.497" />
  <row Id="23891" PostTypeId="1" AcceptedAnswerId="23896" CreationDate="2010-12-05T10:38:00.677" Score="16" ViewCount="506" Body="&lt;p&gt;Lately I have become interested in familiarizing myself with REST. I tried reading &lt;a href=&quot;http://en.wikipedia.org/wiki/Representational_State_Transfer&quot; rel=&quot;nofollow&quot;&gt;wiki entry on REST&lt;/a&gt;, but it was of no help. I would really appreciate it if someone can explain in simple English (that is without &lt;strong&gt;unnecessary&lt;/strong&gt; tech jargon) &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What is REST&lt;/li&gt;&#xA;&lt;li&gt;What position it occupies in web architecture ecosystem&lt;/li&gt;&#xA;&lt;li&gt;How tightly (or loosely) it is coupled with protocol.&lt;/li&gt;&#xA;&lt;li&gt;What are the alternatives to REST and how does REST compare with them.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I understand it may not be possible to answer this in one or two paragraphs, in that case relevant links will be highly appreciated.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-05T12:50:19.130" LastActivityDate="2010-12-07T03:00:21.823" Title="What is REST (in simple English)" Tags="&lt;web-development&gt;&lt;programming&gt;&lt;architecture&gt;&lt;web-framework&gt;&lt;rest&gt;" AnswerCount="2" FavoriteCount="9" />
  <row Id="23892" PostTypeId="2" ParentId="23885" CreationDate="2010-12-05T10:55:24.587" Score="9" ViewCount="" Body="&lt;p&gt;If your question mean that &quot;Should quality be important to programmer as a professional&quot;, the answer is, &quot;Unequivocally yes&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However if your question is &quot;do programmers care about quality personally&quot;, answer is, &quot;It depends&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the one hand there are programmers who are not satisfied until they have perfected the code, but on the other hand there are programmers whose main interest is problem solving, once they have the solution, quality seems like irksome details to them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you fall in the latter kind (as I do, I am not proud to admit), you must try to fight and overcome this tendency. Of course sometimes perfect can be enemy of good too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update: Now why are some programmers perfectionists and other analytical. I believe the answer to that lies in psychology and genetics. Investigating that is both outside the limit of this answer and my knowledge as well. That said, I will note following&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Although these are not necessarily mutually exclusive, really good programmers are more comfortable with problem solving than quality, as I believe programming at its core is about problem solving.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;ol&gt;&#xA;&lt;li&gt;doesn't however mean that if you are good at problem solving you are necessarily a good programmer. To use mathematical terms problem solving is a &quot;necessary&quot; condition whereas aspiring for quality is a &quot;sufficient&quot; one.&lt;/li&gt;&#xA;&lt;/ol&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8073" LastEditorUserId="8073" LastEditorDisplayName="" LastEditDate="2010-12-05T15:19:24.827" LastActivityDate="2010-12-05T15:19:24.827" CommentCount="2" />
  <row Id="23894" PostTypeId="2" ParentId="23331" CreationDate="2010-12-05T11:03:44.607" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;We're all GEEKS!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yay.. cos geeks rule!!!&lt;/p&gt;&#xA;" OwnerUserId="8652" LastActivityDate="2010-12-05T11:03:44.607" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="1" />
  <row Id="23895" PostTypeId="2" ParentId="23885" CreationDate="2010-12-05T11:10:44.530" Score="1" ViewCount="" Body="&lt;p&gt;There are some programmers who take professional pride in the work they deliver. Who take personal responsibility to ensure that they test and validate their code, and want to leave a legacy for other programmers to follow in their footsteps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact that their code is clear, well tested, easily extendible and used by paying customers is a key part to their sense of satisfaction of a job well done.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-12-05T11:10:44.530" />
  <row Id="23896" PostTypeId="2" ParentId="23891" CreationDate="2010-12-05T11:14:41.420" Score="25" ViewCount="" Body="&lt;p&gt;Try this - &lt;a href=&quot;http://tomayko.com/writings/rest-to-my-wife&quot; rel=&quot;nofollow&quot;&gt;http://tomayko.com/writings/rest-to-my-wife&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2010-12-05T11:14:41.420" CommentCount="0" />
  <row Id="23897" PostTypeId="2" ParentId="23809" CreationDate="2010-12-05T11:15:05.107" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Litigation.&lt;/strong&gt;  Patents are good for ~20 years, so if you're trying to show prior art, dusty old things are good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently played with: Emacs Lisp (on a Lucid version) and HyperCard...&lt;/p&gt;&#xA;" OwnerUserId="8467" LastActivityDate="2010-12-05T11:15:05.107" />
  <row Id="23898" PostTypeId="2" ParentId="23845" CreationDate="2010-12-05T11:22:08.260" Score="2" ViewCount="" Body="&lt;p&gt;There is nothing wrong with your approach as a creative art form. If you are developing for personal benefit, and what you are doing works for you, and that you find enjoyable are probably just as important as the final outcome as the product itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a professional work environment, if your project time scales are short, perhaps around 2 - 3 weeks or less, then your approach is called rapid prototyping and is quite appropriate to the tasks ahead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However on longer projects, even ones when you are working on your own, such an approach is probably an expensive luxury for your employer.  Spending a few days of the project budget on upfront architecture design and then testing the architecture against what if management decide to change the spec by... is normally time well spent and will develop your skills to becoming a more valuable programmer/architect further on in your career.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-12-05T11:22:08.260" />
  <row Id="23899" PostTypeId="2" ParentId="23859" CreationDate="2010-12-05T11:27:54.440" Score="1" ViewCount="" Body="&lt;p&gt;Here is an intuitive solution: the complexity of a program is the size of the &lt;em&gt;shortest&lt;/em&gt; well-written (i.e. readable) code that implements it.  This is not full quantitative, but this is something that I believe a good programmer may judge by experience.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rejecting non-readable code means that you get a measure of the &lt;em&gt;conceptual&lt;/em&gt; complexity, which would disappear if hyper-optimized, obfuscated code was taken into account.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thus, some tasks just require a certain number of concepts.  I almost always embody these concept in a certain number of classes, class methods, and functions.  The minimum number of such classes, methods and functions in a well-written, understandable program says something about the complexity of a program.&lt;/p&gt;&#xA;" OwnerUserId="3807" LastEditorUserId="3807" LastEditorDisplayName="" LastEditDate="2010-12-05T16:37:14.043" LastActivityDate="2010-12-05T16:37:14.043" CommentCount="5" />
  <row Id="23900" PostTypeId="2" ParentId="6847" CreationDate="2010-12-05T11:31:30.203" Score="1" ViewCount="" Body="&lt;h2&gt;DNA &amp;amp; RNA&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;OK, so it isn't easy to write original code in, but think about this: it only takes 80m of genome &lt;a href=&quot;http://en.wikipedia.org/wiki/Toxoplasma_gondii&quot; rel=&quot;nofollow&quot;&gt;to exert mind control&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And HIV is only 9749 nucleotides long...&lt;/p&gt;&#xA;" OwnerUserId="8467" LastActivityDate="2010-12-05T11:31:30.203" CommunityOwnedDate="2010-12-05T11:31:30.203" />
  <row Id="23901" PostTypeId="2" ParentId="23845" CreationDate="2010-12-05T11:33:58.057" Score="3" ViewCount="" Body="&lt;p&gt;Brad, you're not alone.  I know very good programmers who work in exactly the same way as you describe. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you clean up your code and know how to make it efficient and readable, then you certainly have developed a sense of how to write clean and efficient code upfront too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, nothing can fully be planned in advance, and the shortest route to discovering subtleties is often to run the code and understand details that were overlooked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that you're doing perfectly fine, and that the programming style that you describe is perfectly valid.&lt;/p&gt;&#xA;" OwnerUserId="3807" LastEditorUserId="3807" LastEditorDisplayName="" LastEditDate="2010-12-05T16:38:38.070" LastActivityDate="2010-12-05T16:38:38.070" />
  <row Id="23904" PostTypeId="2" ParentId="23845" CreationDate="2010-12-05T12:34:53.067" Score="1" ViewCount="" Body="&lt;p&gt;I code pretty much the same way. I'll just start writing and as I see patterns emerging, I refactor. You can paint yourself into a corner that way, you have to know when to sit back and think a problem through, but sometimes you just to take a stab at it to really &lt;em&gt;understand&lt;/em&gt; the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I'm curious about this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The community of folks here and on Stack Overflow seem to reject any whiff of imperfection. [..] My process seems to go against the grain of what is acceptable in the professional developer community, and I would like to understand why.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;How would anybody at Stack Overflow &lt;em&gt;know&lt;/em&gt; your process? And what do you mean by &quot;reject&quot;? Naturally, code posted to a programming community is going to be critically examined. But if someone spots areas where your code can be improved, that can only be a good thing, right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hopefully, when posting a question to Stackframe, you cleanup up your code and try to reduce it to the simplest form possible, out of respect for your readers (you sometimes solve your own problem just trying to make it presentable to others), in which case any feedback is good. If you post code that you &lt;em&gt;know&lt;/em&gt; is bad, and you know &lt;em&gt;why&lt;/em&gt; it's bad before you post it, you shouldn't take it personally if people &lt;em&gt;notice&lt;/em&gt; that it's bad.&lt;/p&gt;&#xA;" OwnerUserId="9167" LastActivityDate="2010-12-05T12:34:53.067" CommentCount="2" />
  <row Id="23905" PostTypeId="2" ParentId="23845" CreationDate="2010-12-05T12:43:37.090" Score="4" ViewCount="" Body="&lt;p&gt;It seems you are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Trying stuff out to find the best approach (experimenting, incremental design)&lt;/li&gt;&#xA;&lt;li&gt;Rewriting code to get it cleaner (refactoring)&lt;/li&gt;&#xA;&lt;li&gt;Constantly writing tests (test driven development)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;What you are doing is &lt;strong&gt;awesome!&lt;/strong&gt; It looks like you are doing it perfectly right, especially if you've figured it out by yourself and not learned it from an (agile) programming book. There is obviously more to this but you've got the values nailed. Just remember to refactor and improve the design while you are adding code and there should be no need for a &lt;a href=&quot;http://en.wikipedia.org/wiki/Big_Design_Up_Front&quot; rel=&quot;nofollow&quot;&gt;BDUF&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you considered focusing on &lt;strong&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/22404/what-order-do-you-develop-program-layers/23118#23118&quot;&gt;one small feature at a time&lt;/a&gt;&lt;/strong&gt;, and release after each feature is completed? That might help you get unstuck from any analysis problem you are struggling with and demonstrates real progress to you employer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I don't know what &quot;professional development community&quot; you are talking about, but if were you, I'd tell them to &lt;em&gt;go back to their ivory towers so you can get on with your work!&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-12-05T13:23:13.047" LastActivityDate="2010-12-05T13:23:13.047" CommentCount="1" />
  <row Id="23906" PostTypeId="2" ParentId="2700" CreationDate="2010-12-05T12:45:54.263" Score="0" ViewCount="" Body="&lt;p&gt;My first programming job was writing installers in InstallShield. I inherited a script that was thousands lines with &lt;em&gt;no functions&lt;/em&gt;, only gotos. It was mind boggling. I rewrote it, made it all pretty and modular and data driven, so that I could be given binaries/art/etc. and turn out a new installer in under an hour, rather than the week+ it took the previous guy. I was very proud of myself.&lt;/p&gt;&#xA;" OwnerUserId="9167" LastActivityDate="2010-12-05T12:45:54.263" />
  <row Id="23907" PostTypeId="2" ParentId="23331" CreationDate="2010-12-05T12:48:34.570" Score="7" ViewCount="" Body="&lt;p&gt;I noticed, amongst my developer friends, something Scott Hanselman said in &lt;a href=&quot;http://channel9.msdn.com/blogs/glucose/hanselminutes-on-9-social-networking-for-developers-part-1-every-developer-needs-a-blog&quot; rel=&quot;nofollow&quot;&gt;Social Networking for Developers&lt;/a&gt; to be quite true. He said:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Developers, in my experience, try to&#xA;  be as social as possible while&#xA;  avoiding all human contact.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I really spend a lot of time socializing with my friends with tools like Windows Live Messenger, Twitter, Facebook, my blog, etc...&lt;/p&gt;&#xA;" OwnerUserId="7737" LastActivityDate="2010-12-05T12:48:34.570" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="1" />
  <row Id="23908" PostTypeId="2" ParentId="23367" CreationDate="2010-12-05T12:54:14.493" Score="1" ViewCount="" Body="&lt;p&gt;i would say go for core javascript&lt;/p&gt;&#xA;" OwnerUserId="8843" LastActivityDate="2010-12-05T12:54:14.493" />
  <row Id="23910" PostTypeId="2" ParentId="22873" CreationDate="2010-12-05T13:16:40.023" Score="0" ViewCount="" Body="&lt;p&gt;For me, &lt;strong&gt;creating and programming/coding exchange the roles of passion and medium.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let me elaborate that a bit. I have 2 things that get me going - &lt;strong&gt;an idea&lt;/strong&gt; for a project or &lt;strong&gt;a puzzle&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Puzzles are pure coding challenges for me and while I usually feel intrigued by them, most of the time I get a guilty feeling of procrastination. I'm talking about coding puzzle like &lt;a href=&quot;http://pexforfun.com/&quot; rel=&quot;nofollow&quot;&gt;Pex4Fun&lt;/a&gt; where the only thing you get from solving a puzzle is self-confirmation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I start with an idea coding is my medium to release the creative energy that has built up inside of me while playing around with the idea in my head. I'm not one of those programmers who just write code to create and say they're done when the application has all the functionality they envisioned. No, I also want to make my code pretty, clean with lots of cleverness in it. I hate spaghetti code and I love refactoring. I also love code architecture and patterns. This is where creativity becomes a medium to my coding passion. This is also where puzzles come in. As I said, I love solving puzzles and this time I don't feel like I'm procrastinating. When I feel happy about the code I start implementing new parts of the idea and here the roles changes again. I get the feeling of completion when I feel happy both about the product and the code behind it.&lt;/p&gt;&#xA;" OwnerUserId="7737" LastEditorUserId="7737" LastEditorDisplayName="" LastEditDate="2010-12-05T13:24:36.863" LastActivityDate="2010-12-05T13:24:36.863" />
  <row Id="23911" PostTypeId="2" ParentId="23809" CreationDate="2010-12-05T14:02:44.967" Score="0" ViewCount="" Body="&lt;p&gt;I wrote a SQL parser in Haskell using Parsec for use at work. I'm not sure if this qualifies, though, because the parser is actually quite useful. With it, I can do things like find all stored procedures that insert into a certain table. Without the parser, I would have to query system views, then filter out all of the false positives. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-05T14:02:44.967" CommentCount="2" />
  <row Id="23915" PostTypeId="1" AcceptedAnswerId="34468" CreationDate="2010-12-05T14:49:06.433" Score="2" ViewCount="395" Body="&lt;p&gt;Is there a specific format for a feasibility study in SDLC? If so, do you know any sources where I can find more information about this? or can you show me at least an outline of what it should contain?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you.&lt;/p&gt;&#xA;" OwnerUserId="8015" LastActivityDate="2011-01-07T10:40:53.483" Title="Feasibility Study Format on SDLC" Tags="&lt;software-development&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="23919" PostTypeId="2" ParentId="23885" CreationDate="2010-12-05T15:03:59.540" Score="2" ViewCount="" Body="&lt;p&gt;quality code is a kindness to your future self&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-05T15:03:59.540" />
  <row Id="23920" PostTypeId="2" ParentId="23885" CreationDate="2010-12-05T15:20:04.080" Score="1" ViewCount="" Body="&lt;p&gt;This depends on the programmer. I have met plenty of sloppy ones, who get sexual release from &quot;getting it done&quot;. There are many ways to look at this. Sometimes you do want to write a throw-away Python script. Sometimes you dig a huge hole by doing wrong things. If you work for NASA or other mission-critical places, then quality is inversely proportional to the number of people that will die. Sometimes revenue generation is key to the survival of a start-up. &lt;a href=&quot;http://www.codinghorror.com/blog/2009/02/paying-down-your-technical-debt.html&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/2009/02/paying-down-your-technical-debt.html&lt;/a&gt; Jeff Attwoods and Joel Spolsky see refactoring differently.&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-12-05T15:20:04.080" />
  <row Id="23921" PostTypeId="2" ParentId="12216" CreationDate="2010-12-05T15:27:54.067" Score="4" ViewCount="" Body="&lt;p&gt;This is from Notepad - should open/close faster, consume less memory and CPU. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know this is day dreaming, but seriously.. it is a nice FEATURE to have, :D..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Don't complain - you asked what I want..)&lt;/p&gt;&#xA;" OwnerUserId="8652" LastActivityDate="2010-12-05T15:27:54.067" CommunityOwnedDate="2011-05-26T08:44:03.797" CommentCount="3" />
  <row Id="23922" PostTypeId="2" ParentId="23760" CreationDate="2010-12-05T15:43:49.733" Score="2" ViewCount="" Body="&lt;p&gt;I'm sorry, but don't you think this is is really splitting hairs? When I am hiring a programmer I just take a brief look at what the language listing is because I am usually hiring for a specific language anyway. Also, just because you know a language doesn't mean that you really know all of its libraries, API's, and know how to use them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I am more interested in is usually the work experience or any projects that you might have worked on. I know lots of languages but I have only done serious work in about two or three of them. I would spend more time highlighting your successes and experience rather than how many languages you know. Just my $.02.&lt;/p&gt;&#xA;" OwnerUserId="9174" LastActivityDate="2010-12-05T15:43:49.733" CommunityOwnedDate="2011-05-28T17:13:24.970" CommentCount="1" />
  <row Id="23924" PostTypeId="2" ParentId="2700" CreationDate="2010-12-05T15:47:37.053" Score="2" ViewCount="" Body="&lt;p&gt;The worst I've seen was some Java code to extract key sentences from a text corpus.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The code had few comments (besides disabled code comments) and had poor names.&lt;/li&gt;&#xA;&lt;li&gt;The algorithm state was stored in public static vectors.&lt;/li&gt;&#xA;&lt;li&gt;Instead of storing values in the vectors, he stored their string representations.&lt;/li&gt;&#xA;&lt;li&gt;The vectors were poor man's classes (they were parallel, each index being an 'instance')&lt;/li&gt;&#xA;&lt;li&gt;The algorithm was sub-optimal (n^2 instead of an easier to understand n log n version)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;To be fair, this is nothing compared to some of the stuff our there, but there is still a massive difference in quality before and after. Consider the following actual before and after code of one function:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before (try to figure out what it does before looking at After!):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public static void getCluster() {&#xA;    count = new Vector();&#xA;    for (int i = 0; i &amp;lt; begin.size(); i ++)&#xA;        count.add(&quot;1&quot;);&#xA;    if (begin.size() &amp;gt; 1) {&#xA;        for (int i = 0; i &amp;lt; begin.size() - 1; i ++) {&#xA;            for (int j = i + 1; j &amp;lt; begin.size(); j ++) {&#xA;                int b1 = Integer.parseInt(begin.get(i).toString());&#xA;                int e1 = Integer.parseInt(end.get(i).toString());&#xA;                double w1 = Double.parseDouble(wght.get(i).toString());&#xA;                int c1 = Integer.parseInt(count.get(i).toString());&#xA;                int b2 = Integer.parseInt(begin.get(j).toString());&#xA;                int e2 = Integer.parseInt(end.get(j).toString());&#xA;                double w2 = Double.parseDouble(wght.get(j).toString());&#xA;                int c2 = Integer.parseInt(count.get(j).toString());&#xA;                int max = Math.max(e1, e2);&#xA;                boolean toRemove = true;&#xA;                if (b1 == b2) end.set(i, Integer.toString(max));&#xA;                if (b1 &amp;lt; b2) {&#xA;                    if (b2 &amp;lt; e1) end.set(i, Integer.toString(max));&#xA;                    else {&#xA;                        if ((b2 - e1) &amp;lt;= 3) end.set(i, Integer.toString(e2));&#xA;                        else toRemove = false;&#xA;                    }&#xA;                }&#xA;                if (b1 &amp;gt; b2) {&#xA;                    if (e2 &amp;gt;= b1) {&#xA;                        begin.set(i, Integer.toString(b2));&#xA;                        end.set(i, Integer.toString(max));&#xA;                    } else {&#xA;                        if ((b1 - e2) &amp;lt;= 3) {&#xA;                            begin.set(i, Integer.toString(b2));&#xA;                            end.set(i, Integer.toString(e1));&#xA;                        } else toRemove = false;&#xA;                    }&#xA;                }&#xA;                //System.out.println(b1 + &quot;, &quot; + e1 + &quot;, &quot; + b2 + &quot;, &quot; + e2 + &quot; ---&amp;gt; &quot; + begin.get(i).toString() + &quot;, &quot; + end.get(i).toString());&#xA;                if (toRemove) {&#xA;                    wght.set(i, Double.toString(w1 + w2));&#xA;                    count.set(i, Integer.toString(c1 + c2));&#xA;                    begin.removeElementAt(j);&#xA;                    end.removeElementAt(j);&#xA;                    wght.removeElementAt(j);&#xA;                    count.removeElementAt(j);&#xA;                    j --;&#xA;                } //end of if&#xA;            } //end of for j&#xA;        } //end of for i&#xA;    } //end of if&#xA;    //System.out.println(begin);&#xA;    //System.out.println(end);&#xA;    //System.out.println(wght);&#xA;    //System.out.println(count);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;After:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/** Returns the result of merging all overlapping-with-leeway clusters into single combined clusters.&#xA; * @param leeway The minimum number of word-spaces which must separate two clusters in order for them to not be overlapping.&#xA; * @requires clusters != null&#xA; * @requires leeway &amp;gt;= 0&#xA; * @ensures result != null */ &#xA;private static List&amp;lt;TermCluster&amp;gt; combineOverlappingClusters(Iterable&amp;lt;TermCluster&amp;gt; clusters, int leeway) {&#xA;    if (clusters == null) throw new NullPointerException(&quot;clusters&quot;);&#xA;    if (leeway &amp;lt; 0) throw new IllegalArgumentException(&quot;leeway &amp;lt; 0&quot;);&#xA;&#xA;    //Sort to allow linear folding&#xA;    List&amp;lt;TermCluster&amp;gt; sortedClusters = Iter.sort(clusters, new Comparator&amp;lt;TermCluster&amp;gt;() {&#xA;        @Override public int compare(TermCluster o1, TermCluster o2) {&#xA;            return new Integer(o1.begin).compareTo(o2.begin);&#xA;        }&#xA;    });&#xA;    if (sortedClusters.size() == 0)&#xA;        return sortedClusters;&#xA;&#xA;    //Combine left-to-right&#xA;    List&amp;lt;TermCluster&amp;gt; result = new ArrayList&amp;lt;TermCluster&amp;gt;();&#xA;    TermCluster acc = sortedClusters.get(0);&#xA;    for (TermCluster cluster : sortedClusters.subList(1, sortedClusters.size())) {&#xA;        if (acc.isOverlappingWithLeeway(cluster, leeway)) {&#xA;            //combine&#xA;            acc = acc.combineWith(cluster);&#xA;        } else {&#xA;            //next&#xA;            result.add(acc);&#xA;            acc = cluster;&#xA;        }            &#xA;    }&#xA;    result.add(acc); //leftovers&#xA;&#xA;    return result;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="7262" LastActivityDate="2010-12-05T15:47:37.053" />
  <row Id="23927" PostTypeId="2" ParentId="23859" CreationDate="2010-12-05T16:36:19.850" Score="2" ViewCount="" Body="&lt;p&gt;Take a look at the &lt;strong&gt;&lt;a href=&quot;http://sdg.csail.mit.edu/pubs/2005/oopsla05-dsm.pdf&quot; rel=&quot;nofollow&quot;&gt;Dependency Structure Matrix&lt;/a&gt;&lt;/strong&gt;. There are a few good metrics that can come from this.&lt;/p&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-12-05T16:36:19.850" />
  <row Id="23928" PostTypeId="1" AcceptedAnswerId="23931" CreationDate="2010-12-05T16:40:21.963" Score="0" ViewCount="150" Body="&lt;p&gt;I started my career with Game programming with tools Torque game engine (TGE1.4) but I changed my career into PHP (website development).  I did many projects in PHP but I don't like php and still want to work with C++.  Now I've decided to switch back to C++ after leaving this platform 2 years ago.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to do some good projects from home that I can show as freelance development. Please suggest what type of projects would be useful to show in resume and also how much of the project will I have to show? &lt;/p&gt;&#xA;" OwnerUserId="9177" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-06T13:29:43.427" LastActivityDate="2010-12-06T13:29:43.427" Title="Hobby to work on C++ platform" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;c++&gt;" AnswerCount="2" />
  <row Id="23929" PostTypeId="2" ParentId="23928" CreationDate="2010-12-05T16:46:02.963" Score="2" ViewCount="" Body="&lt;p&gt;Any project can be useful, but it will also depend on the company you're applying to. Some will not look at side projects at all, so it's hard to say what would work for sure. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pick a project that's interesting to you and relevant to the field you want to get back into. For example, if you want to get back into game development, the choice is obvious -- make a game.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-05T16:46:02.963" />
  <row Id="23930" PostTypeId="2" ParentId="23331" CreationDate="2010-12-05T16:51:06.833" Score="2" ViewCount="" Body="&lt;p&gt;I found esr's description of hackers to hold true to a large degree for myself. It was particularly interesting as a large portion of those traits were developed before I had a computer and access to the internet. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.catb.org/~esr/jargon/html/appendixb.html&quot; rel=&quot;nofollow&quot;&gt;http://www.catb.org/~esr/jargon/html/appendixb.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-05T16:51:06.833" CommunityOwnedDate="2010-12-06T09:48:17.537" />
  <row Id="23931" PostTypeId="2" ParentId="23928" CreationDate="2010-12-05T17:09:20.587" Score="3" ViewCount="" Body="&lt;p&gt;If you do everything that you can possibly do with the single minded motivation to earn then it is likely (actually more than likely) that in the longer run you will have nothing to contribute to this stream as a technologist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Choose a domain that you genuinely enjoy working in -- it could be game programming, mobile or UI design, search engine whatever. Then look into sourceforge, github etc there are enough choices to ponder on.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-05T17:09:20.587" />
  <row Id="23932" PostTypeId="2" ParentId="23863" CreationDate="2010-12-05T17:15:52.267" Score="3" ViewCount="" Body="&lt;h2&gt;Nothing Lasts Forever, that's how it operates here.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Having said that, computer science degrees in particular tend to run its course rather quickly these days. You need to continuously upgrade your skills. Open source, books, stackoverflow and stackexchange, mailing lists, programming contests, checking out new programming languages -- I could carry on forever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;In the end it's about how excited you are about technology and how quickly you can adapt.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-05T17:15:52.267" />
  <row Id="23933" PostTypeId="2" ParentId="23331" CreationDate="2010-12-05T17:16:00.627" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;very good communicators.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2446" LastActivityDate="2010-12-05T17:16:00.627" CommunityOwnedDate="2010-12-06T09:48:17.537" CommentCount="2" />
  <row Id="23935" PostTypeId="2" ParentId="23845" CreationDate="2010-12-05T17:27:13.410" Score="0" ViewCount="" Body="&lt;p&gt;I also use your approach. It works better for me, since it reduces the risk of overengineering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I do very often is solve a problem with probably the least code possible, which usually leads to evidently unneccessary dependencies or other design problems. Then I refactor working code into beautiful code.&lt;br&gt;&#xA;For example I reduce the dependencies between different modules to concise interfaces and put thought into the question which data should be held where, until every modules only depends on very minimalistic abstractions of the other modules. You could say, I postpone the final decision, which module should have which responsibility. I postpone abstraction.&lt;br&gt;&#xA;Putting too much thought into seperating a problem into distinct responsibilities, into distinct abstractions, is not good. It will force you to bend your implementation to fit the abstractions you made. Code works, if it produces the results you want and if it is maintainable. A design works, if you can implement it through good code. If code doesn't work, you change it. Ergo, if a design doesn't work, you will need to change it as well. You can only see if a design works, once you implemented it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thus having a simple sketch in mind is just about enough as a design, before you start bringing it to life. Redesign, abstract and refactor &lt;a href=&quot;http://en.wikipedia.org/wiki/You_ain%27t_gonna_need_it&quot; rel=&quot;nofollow&quot;&gt;as needed&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-12-05T17:27:13.410" />
  <row Id="23937" PostTypeId="2" ParentId="23845" CreationDate="2010-12-05T17:40:21.777" Score="1" ViewCount="" Body="&lt;p&gt;I think if you're going to be good at programming, at least sometimes it has to be fun, and that means being creative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Surely when programming in groups there are at least minimal standards that should be followed, not for &quot;moral&quot; reasons, but for practical ones, when they apply.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Outside of that, it's interesting and fun to probe the boundaries to see what can be found there. Once when working on a Mini in assembly language, I discovered that you could make co-routines that could switch from one to the other with 1 instruction. Then I figured out how to make a self-co-routine that could go two steps forward, one step back, etc. Was it useful? I doubt it. That's not the point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once I heard a talk by Edsger Dijkstra, talking about creativity in programming. He mentioned how a student found a way to do an n-bit rotate of an n+m-bit word. It was done with 3 bitswaps. First you swap the n bits, then you swap the m bits, then you swap the whole n+m bits. Useful? No. Clever? Yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's good to feel free to try things that nobody in their right mind would do.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-12-05T17:40:21.777" />
  <row Id="23938" PostTypeId="2" ParentId="23823" CreationDate="2010-12-05T17:50:26.743" Score="1" ViewCount="" Body="&lt;p&gt;I use a few tools for notes, depending on the purpose:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;TaskPaper (syncs between phone and desktop)&lt;/li&gt;&#xA;&lt;li&gt;Basecamp (handy for sharing with team)&lt;/li&gt;&#xA;&lt;li&gt;Moleskin notebook (portable, nice for sketching)&lt;/li&gt;&#xA;&lt;li&gt;Tumblr (for more formal learnings)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8151" LastActivityDate="2010-12-05T17:50:26.743" />
  <row Id="23939" PostTypeId="2" ParentId="23792" CreationDate="2010-12-05T17:56:09.687" Score="3" ViewCount="" Body="&lt;p&gt;What does clean code mean for you? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure your definition is great, but the other guys in your workplace probably have their own definition. They are not wrong, only different from yours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should create coding guidelines which everyone in your workplace can agree on, and you should do it &lt;strong&gt;together&lt;/strong&gt; with your fellow programmers. Don't try forcing this on people, it will backfire if you do. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So get the team together and start working on a common definition of &quot;clean code&quot;! There are no hard rules to this. You are trying to bringing several minds together and that can result in conflicts, so you may want to set the stage with a positive note that you all should be respectful and keep an open mind (code writing is personal...). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew&quot; rel=&quot;nofollow&quot;&gt;Clean Code&lt;/a&gt; book may come in handy. You could use examples from that book to talk about and see if you find some common ground in there?&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-12-05T17:56:09.687" CommentCount="1" />
  <row Id="23940" PostTypeId="2" ParentId="23823" CreationDate="2010-12-05T17:58:04.677" Score="1" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://projects.gnome.org/tomboy/&quot; rel=&quot;nofollow&quot;&gt;Tomboy Notes&lt;/a&gt; to keep track of various little technical how-tos and snippets that I don't use enough to have memorized. Then I use Gnome-Do's Tomboy plugin on Ubuntu so I can hit Alt-Space and start typing to quickly search all my Tomboy notes for, say, &quot;how to get a date range in MySQL&quot;. The notes get synchronized via Dropbox so I can access them on any machine (and Tomboy runs on any platform that runs GTK).&lt;/p&gt;&#xA;" OwnerUserId="194" LastActivityDate="2010-12-05T17:58:04.677" />
  <row Id="23941" PostTypeId="2" ParentId="487" CreationDate="2010-12-05T18:02:17.060" Score="6" ViewCount="" Body="&lt;p&gt;This is how my dream programming language would look like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A powerful static type system with some support for dependent typing.&lt;/li&gt;&#xA;&lt;li&gt;Optional dynamic typing.&lt;/li&gt;&#xA;&lt;li&gt;Numeric Tower a la Lisp but statically typed.&lt;/li&gt;&#xA;&lt;li&gt;Macros a la Lisp.&lt;/li&gt;&#xA;&lt;li&gt;Primarily a Functional Programming language with basic support for imperative programming (like ML family).&lt;/li&gt;&#xA;&lt;li&gt;Garbage collection.&lt;/li&gt;&#xA;&lt;li&gt;Type inference.&lt;/li&gt;&#xA;&lt;li&gt;Continuations.&lt;/li&gt;&#xA;&lt;li&gt;Optional lazy semantics.&lt;/li&gt;&#xA;&lt;li&gt;All the control constructs would be provided in the form of library functions. (This can be made possible using last two features.)&lt;/li&gt;&#xA;&lt;li&gt;Minimal syntax (not as little as Lisps, but something of the sort of Ioke/Seph.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1968" LastEditorUserId="1968" LastEditorDisplayName="" LastEditDate="2010-12-06T05:04:57.217" LastActivityDate="2010-12-06T05:04:57.217" CommentCount="3" />
  <row Id="23942" PostTypeId="1" CreationDate="2010-12-05T18:18:45.130" Score="9" ViewCount="645" Body="&lt;p&gt;All programming languages I know of are written - i.e. typed out as lengths of text one way or another. But I wonder if there's any programming language where you can just drag-n-drop the whole program; to get a loop, you select this box over here and drag it to that section of the &quot;code&quot; over there, and so on. And if there isn't one like this, would it fly if one was invented?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I don't believe it would be such a good idea, but I'd like to hear what you think.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-12-07T07:31:35.017" Title="Drag-n-drop programming - would it fly?" Tags="&lt;programming-languages&gt;&lt;programming&gt;" AnswerCount="13" CommentCount="4" FavoriteCount="1" />
  <row Id="23943" PostTypeId="2" ParentId="23942" CreationDate="2010-12-05T18:23:23.220" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://scratch.mit.edu/&quot; rel=&quot;nofollow&quot;&gt;Scratch&lt;/a&gt;? &lt;a href=&quot;http://www.squeakland.org/&quot; rel=&quot;nofollow&quot;&gt;Etoys&lt;/a&gt;?&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-12-05T18:23:23.220" CommentCount="4" />
  <row Id="23944" PostTypeId="1" CreationDate="2010-12-05T18:24:14.000" Score="1" ViewCount="589" Body="&lt;p&gt;C is one of the mainstream programming languages out there, along with Java, Python, etc. But considering that it is quite old, and since nothing is forever, I wonder how long until C is considered dead. They are still used heavily today, so I'd imagine it'd have to be at least another 10 years or so. Or perhaps more?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or could it be that some programming languages just never die?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-12-05T18:45:22.093" LastActivityDate="2010-12-06T10:51:09.233" ClosedDate="2010-12-06T03:02:36.270" Title="How long until C is no longer used?" Tags="&lt;programming-languages&gt;" AnswerCount="9" CommentCount="6" FavoriteCount="1" />
  <row Id="23945" PostTypeId="2" ParentId="23942" CreationDate="2010-12-05T18:25:03.317" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.ni.com/labview/&quot; rel=&quot;nofollow&quot;&gt;LabVIEW&lt;/a&gt; is pretty graphical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the &lt;a href=&quot;http://www.ni.com/labview/whatis/graphical-programming/&quot; rel=&quot;nofollow&quot;&gt;LabVIEW website&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/EFzRc.jpg&quot; alt=&quot;LabVIEW&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="7629" LastActivityDate="2010-12-05T18:25:03.317" CommentCount="8" />
  <row Id="23946" PostTypeId="2" ParentId="23823" CreationDate="2010-12-05T18:25:50.030" Score="3" ViewCount="" Body="&lt;p&gt;Some notes are best captured by a blog post. There's nothing more satisfying than searching for something on Google and finding your own blog post.&lt;/p&gt;&#xA;" OwnerUserId="3880" LastActivityDate="2010-12-05T18:25:50.030" />
  <row Id="23947" PostTypeId="2" ParentId="23942" CreationDate="2010-12-05T18:29:40.627" Score="15" ViewCount="" Body="&lt;p&gt;Lots of outfits have done drag-and-drop programming systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;National Instruments &quot;Labview&quot; is probably the best-known, and the best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fundamental problem they all encounter is that there is no known way to convert a Flying Code Monkey into an expert programmer and engineer.  As ONE example, there is no difference to a Flying Code Monkey between an O(N*&lt;em&gt;2) or O(N&lt;/em&gt;*3) process and an O(N log N) process, which means that they must be supplied with canned routines for the O(N log N) algorithms, that can be custom-fit into the quickie graphic kludges they will build.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second problem they all encounter is that, when you supply the special-purpose blocks required by the first problem, overhead imposed by moving the data between the blocks starts to get expensive.  I worked with one very nice such system called Rippen.  When I profiled, to see where we were hurting on a HIGH!-required-performance sensor processing application, I was rather disturbed to see that some 20% of my CPU time was going to data-moving.  (Since I was doing LADAR image processing, doing a fair chunk of floating-point processing on every pixel of an input image, 20% of CPU was a LOT of data-moving overhead.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could probably get around part 2 by going to a compiler-based system: you feed it your picture, and it compiles to a heavily-optimized executable program, but I'm not certain that would really fix the issues, and it might hurt the interactive nature of the tool.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-12-05T18:29:40.627" CommentCount="1" />
  <row Id="23948" PostTypeId="2" ParentId="23859" CreationDate="2010-12-05T18:32:24.913" Score="0" ViewCount="" Body="&lt;p&gt;Actually, we can't measure complexity of code and algorithm.  Every single such metric proposed has been shown, when applied to real programs written by real programmers, to be strongly correlated to SLOC - and SLOC is a lot easier to measure: just count carriage returns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Yes, I know SLOC can be gamed.  The games, and the game-player's job, generally don't survive past the first code review.  Or at least they shouldn't.)&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-12-05T18:32:24.913" />
  <row Id="23949" PostTypeId="2" ParentId="22146" CreationDate="2010-12-05T18:32:35.033" Score="-1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201485672&quot; rel=&quot;nofollow&quot;&gt;Refactoring, Martin Fowler&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the best programming books overall.&lt;/p&gt;&#xA;" OwnerUserId="8601" LastActivityDate="2010-12-05T18:32:35.033" CommunityOwnedDate="2011-01-22T00:43:07.640" />
  <row Id="23950" PostTypeId="2" ParentId="23942" CreationDate="2010-12-05T18:35:58.593" Score="13" ViewCount="" Body="&lt;h2&gt;The simple answer is no.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;When it comes to programming, textual input far exceeds in terms of specified information than its visual counter part. &lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-05T18:35:58.593" CommentCount="1" />
  <row Id="23951" PostTypeId="2" ParentId="23944" CreationDate="2010-12-05T18:38:27.810" Score="4" ViewCount="" Body="&lt;p&gt;C / C++ will never become obsolete.  Just like Assembler. All that will happen is there become fewer and fewer places in the industry where these are the appropriate tools. Who now talks about writing hand optimised assembler? but assembler is still used. (e.g. processor board initialisation / BIOS).&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-12-05T18:38:27.810" />
  <row Id="23952" PostTypeId="2" ParentId="23944" CreationDate="2010-12-05T18:39:34.067" Score="5" ViewCount="" Body="&lt;p&gt;Languages that reach a certain level of popularity never really go away, they just gradually mutate into other forms. FORTRAN and COBOL were created in the 1950s and they are still with us. Admittedly they are much changed, but they are still recognizable. I suppose Algol is gone, but its structure was copied by other languages so quickly that Algol itself never really made it into widespread use. I suspect C and C++ will be around in some form for another 50 years.&lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-12-05T18:39:34.067" />
  <row Id="23956" PostTypeId="2" ParentId="23942" CreationDate="2010-12-05T18:54:35.647" Score="2" ViewCount="" Body="&lt;p&gt;The best drag and drop programming system i've seen is for the Lego Mindstorms NXT robots.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This allows you to do some quite amazing things, controlling some quite intricate functionality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However at some point it does break down, and you need to revert to another system.&lt;br&gt;&#xA;See this article: &lt;a href=&quot;http://www.wired.com/geekdad/2007/11/the-best-progra/&quot; rel=&quot;nofollow&quot;&gt;http://www.wired.com/geekdad/2007/11/the-best-progra/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's possible though, that if this was improved, and different scenarios where catered for, the need for this would become less and less.&lt;/p&gt;&#xA;" OwnerUserId="1104" LastEditorUserId="1104" LastEditorDisplayName="" LastEditDate="2010-12-05T23:36:34.120" LastActivityDate="2010-12-05T23:36:34.120" CommentCount="3" />
  <row Id="23957" PostTypeId="2" ParentId="5160" CreationDate="2010-12-05T18:55:30.093" Score="7" ViewCount="" Body="&lt;p&gt;Let's get a few things straight. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;First there is no protection of your company's assets against software patents to be had in any country which permits them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifically, forming an LLC will only protect your personal assets (your house, your car etc) from being used to satisfy   a lawsuit brought against you by anyone who sues you; it will NOT protect all your hard work and company assets of code, chairs, computers, intellectual property, customer lists  etc etc, which will become the property of the person suing you, should they win and force you into bankruptcy, which is what would happen. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second it is a critical tactical mistake with dire consequences  to research patents in an attempt to avoid infringing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason for this is, if (actually, make that WHEN, given the vagueness and all encompassing scope of the patents you're concerned about) you're sued and found liable for infringing, if it can be shown that you KNEW about the patent you infringed on then you're liable for treble (3X) damages. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Showing that you knew about the patent amounts to showing that you surfed a page on which the patent appeared. If you never did that, then they can't get your for treble damages (not that it would matter since it's  like saying &quot;they can't kill you two more times after the first time they kill you&quot;). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you ever wondered who the entities are behind the &quot;patent sites&quot; which come up whenever you search for anything technical? What's the purpose of those sites? Who visits them and why? I don't  know the answers to those questions, but I can imagine at least one. The purveyors of those sites take down IP addresses of visitors and what pages they looked at and sell that information to &quot;intellectual property &quot; attorneys who look for originating request domains which would indicate  the entity they're  suing has looked at the  patent. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just my crazy idea, as I said, I don't know this to be the case. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The patents you're interested in avoiding are in all likelihood as ridiculous as all other software patents- overly broad, obvious to anyone who sat down to think for the problem a little while and deliberately and maliciously written in such a way as to be nearly universally applicable to anything written or writable and as unintelligible as possible so as defy people understanding them well enough to avoid them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I read the patent that nailed Blackberry for about 3/4 of a billion dollars. In the end, it amounted to putting data into a database at THIS time and taking it out,  reading  it and using at this OTHER time. That's it. That was what the entire judgment was over. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;People don't  mention that because they never read it nor could they understand it if they had.   IP lawyers who COULD read it have a vested and unspoken (except perhaps amongst themselves) interest in keeping the details of what software patents actually amount to very vague and especially,  out of public discourse, lest their business model come to a swift and a well deserved end. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember, the courts working definition of obviousness with respect to prior art  is: &quot;was it published in any journal or paper prior to its being patented?&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, software developers don't publish every idea they have embodied in code in some public journal somewhere. We are just expected to be creative. We  don't consider that virtually every time we use  even moderate creativity to solve a problem because it wasn't published somewhere, it is therefore  patentable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But Microsoft and Google and Apple and Oracle do think about that, a lot. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And everything their developers do gets considered for a patent. They  can do this because they can afford the 40k it takes to file a   patent with the help of an IP lawyer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's called asymmetrical warfare- we attack you in a way in which you are not permitted to attack back. That's what IP lawyers and the US Congress and IP lobbyists and think tanks and US corporations DO for a living. They don't  compete in an open marketplace, not really. They make sure there IS not competition and there is not a marketplace.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, it is false that you have to worry about software patents if and only if you are of some certain threshold size. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any number of smaller companies are forced out of business every year by patent holders irrespective of the fact that those companies are not of any great moment nor do they have any  assets worth attaching. This is just a material  fact. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know of a case where a very very small company had software which let people stitch together panoramic views from photos. A equally small company dues them. Since the first company could not afford to defend itself, they went out of business. Don't deceive yourself into believing that because such events don't  make headlines it doesn't happen every day- it  does. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider also that there is no single place to go to count the number or characteristics of such events- there is  no central log of &quot;companies threatened with a lawsuit over IP who threw in the towel and went out of business&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also don't fall  into the trap of thinking because you know of many counter examples, those counter examples show there's not a problem or the frequency of such events must be low. The companies that don't exist because of such actions just don't  exist- the only companies around are companies this hasn't happened to. That creates a very strong  bias in perception that's difficult to see past. See past it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even large companies that re being sued by patent holders do not make headlines. Here's a quiz- &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which of the following world-famous companies are currently being sued by a software patent holding private equity firm?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A J C Penney&lt;/li&gt;&#xA;&lt;li&gt;B  - Newegg&lt;/li&gt;&#xA;&lt;li&gt;C Amazon&lt;/li&gt;&#xA;&lt;li&gt;D CDW&lt;/li&gt;&#xA;&lt;li&gt;E Zappos&lt;/li&gt;&#xA;&lt;li&gt;F Amway Corp&lt;/li&gt;&#xA;&lt;li&gt;G QVC Inc&lt;/li&gt;&#xA;&lt;li&gt;H Shutterfly&lt;/li&gt;&#xA;&lt;li&gt;I Victoria’s Secret&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Answer- B Newegg. &#xA;&lt;em&gt;The rest were already sued by the same entity and  caved in&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Question- did you know about &lt;strong&gt;ANY&lt;/strong&gt; of that? Alright then. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In theory a patent holder is obligated to act to enforce their patents whenever they become aware of a violator lest they forfeit their right to enforce the patent. The courts have seen non-enforcement of patents as a signal to the market place that the patent is in the public domain. That's why lawyers write cease and  desist orders in seemingly silly cases- as when Planet Hollywood's lawyers sent a C and D to a similarly named one-man restaurant of no particular notice - they HAVE to or they lose their right to enforce their IP monopoly. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no escaping patents in countries which permit them. If you want to sell software and not run the risk of a nuclear bomb going off under your chair, er I mean a   software patent lawsuit, then you need to NOT sell into market which permit them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The countries I know of that explicitly  don't permit them are&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The Philippines&lt;/li&gt;&#xA;&lt;li&gt;India&lt;/li&gt;&#xA;&lt;li&gt;New Zealand&lt;/li&gt;&#xA;&lt;li&gt;The EU (I think this is still true).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You need to sell into those countries and never mind the US., AU, Japan, South Korea and sorry to say Canada.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember, the US is a plutocracy not a democracy, wherein whoever has money writes the laws to unfairly bias the market in their favor. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;M$, Google, Amazon, etc etc know that not having the tens of millions of dollars each patent lawsuit requires for defense is a barrier to entrance for small innovative companies against whom they could not otherwise  compete. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You cannot protect yourself  against a patent lawsuit happening, you cannot afford to defend against it. What you can do is hope it doesn't happen to you. Alternatively, if hoping a lawyer doesn't take everything you've worked for away from you, you can vote with your feet and elect to differentially reward those countries which are not plutocracies by offering the fruits of your labor to their  free and open markets. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's your choice. &lt;/p&gt;&#xA;" OwnerUserId="9180" LastEditorUserId="9180" LastEditorDisplayName="" LastEditDate="2010-12-05T19:41:28.213" LastActivityDate="2010-12-05T19:41:28.213" CommentCount="3" />
  <row Id="23958" PostTypeId="2" ParentId="23942" CreationDate="2010-12-05T18:55:44.243" Score="0" ViewCount="" Body="&lt;p&gt;There are quite a few visual programming languages. A phone system I managed for a large call center was programmed using drag and drop modules. My uncle developed a Just-In-Time system for designing manufacturing lines that was completely drag and drop and that was 20 years ago.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've even played a robot combat game on the PS1 that used a drag and drop programming language.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-05T18:55:44.243" CommentCount="2" />
  <row Id="23960" PostTypeId="2" ParentId="23885" CreationDate="2010-12-05T19:05:42.937" Score="2" ViewCount="" Body="&lt;p&gt;Actually, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0932633439&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Peopleware&lt;/em&gt;&lt;/a&gt; chapter 4 discusses this.  People put their pride into things that they build.  The authors argue that it is important to let builders create things up to their standards of excellence even if the market will allow for less quality.  The reason being that forcing people to put out a product that's below their standard of quality undermines their motivation, which ultimately has a bigger impact on their ability to work quickly than anything else.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-05T19:05:42.937" />
  <row Id="23961" PostTypeId="2" ParentId="23845" CreationDate="2010-12-05T19:17:13.517" Score="1" ViewCount="" Body="&lt;p&gt;This may be a case of &quot;one size does not fit all&quot;. You've made your style work for the projects you've been on, so who's to argue with that? However, the critics you are reading here and on SO may be working on bigger projects, or on projects that require complex coordination between the team members.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your development style could become a problem if you were ever involved in larger projects involving cooperation between multiple developers. It's hard to schedule it, it's hard to track your progress, and there's no way for you fellow programmers to plan the bit of their work that depend on knowing what your bit of work is doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may be interested in reading &lt;a href=&quot;http://www.dreamingincode.com/&quot; rel=&quot;nofollow&quot;&gt;Dreaming in Code&lt;/a&gt; to see what can happen when a large project adopts a development style similar to yours.&lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-12-05T19:17:13.517" CommentCount="1" />
  <row Id="23962" PostTypeId="1" AcceptedAnswerId="23966" CreationDate="2010-12-05T19:23:11.970" Score="1" ViewCount="275" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/3272/job-hopping-is-it-a-problem&quot;&gt;Job hopping, is it a problem?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Question on behalf of my best friend. I have completed 2 years of my professional life as a web developer in which I switched jobs twice and currently I am working in number the third company. I switched my first company after 7 months and next after 10 months and now I have worked almost 7 month in my current company.  If I have a very good opportunity for a new job should I consider it and switch my job or should I work here for at least minimum of one year? &lt;/p&gt;&#xA;" OwnerUserId="8760" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-06T00:27:00.580" LastActivityDate="2010-12-06T01:54:55.150" ClosedDate="2010-12-06T12:13:01.463" Title="Planning of frequently switching jobs" Tags="&lt;career-advice&gt;" AnswerCount="3" CommentCount="3" />
  <row Id="23963" PostTypeId="2" ParentId="23962" CreationDate="2010-12-05T19:36:45.440" Score="2" ViewCount="" Body="&lt;p&gt;It depends on the type of work you do and the industry you're in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're a contractor, then changing contracts every 3 months is normally a bad sign.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have any big gaps in your work history, that's also often a warning sign.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Changing jobs once a year or so, is generally quite acceptable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So your friend falls in the inbetween stage, where as long as he can justify the changes to each new employer, it shouldn't be a problem, and may not even be questioned.&lt;/p&gt;&#xA;" OwnerUserId="1104" LastActivityDate="2010-12-05T19:36:45.440" CommentCount="2" />
  <row Id="23964" PostTypeId="2" ParentId="23944" CreationDate="2010-12-05T19:37:38.180" Score="2" ViewCount="" Body="&lt;p&gt;Never, because it's still one of the simplest languages to write a compiler for that is still readable, on new hardware. Having a simple language allows you to discern bugs in code, compiler and hardware easily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, it's basically what you start with on most hardware projects. Then, you evolve your compiler and give it C++ or a VM/interpreter written in C++/C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then again, I could be wrong. (I've seen Pong in a Haskell-ish dialect compile directly to FPGA (input: keyboard data&amp;amp;clock, output: vga's rgb :).&lt;/p&gt;&#xA;" OwnerUserId="3917" LastActivityDate="2010-12-05T19:37:38.180" CommentCount="7" />
  <row Id="23965" PostTypeId="1" CreationDate="2010-12-05T20:01:09.800" Score="14" ViewCount="1477" Body="&lt;p&gt;The question refers to what programming language(s) still used today to build new stuff (anything from small to large projects) and not maintain legacy code. Why do you think it will die or become obsolete in the near future? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Considering that the lifespan of a language is considerably long, near future would have to be more then five, but probably not more then ten, years.&lt;/p&gt;&#xA;" OwnerUserId="9184" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-11T15:22:46.400" LastActivityDate="2010-12-16T20:37:03.510" ClosedDate="2010-12-28T14:37:29.990" Title="What programming language still in use today will die in the near future?" Tags="&lt;programming-languages&gt;&lt;future&gt;" AnswerCount="11" CommentCount="6" FavoriteCount="2" />
  <row Id="23966" PostTypeId="2" ParentId="23962" CreationDate="2010-12-05T20:01:12.840" Score="5" ViewCount="" Body="&lt;p&gt;There is no simple answer to this. In any given case, if a truly exceptional opportunity presents itself, then you probably should take it. You should balance this against the fact that your current employer may feel like they've wasted time and money on you, that hiring you was a mistake, and they may not be inclined to work with you in the future. You have to ask yourself if you are ever likely to want to work for the current employer again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a long term issue. If you consistently leave jobs after less than a year, it may eventually hurt your long term career prospects, but it depends on the details of why you leave. It could be that you are a very talented programmer. You fill the role of a hired gun: you come in, you solve the tough problems, and you move on to the next opportunity. If you are a very talented programmer this job hopping can lead to a very rewarding and lucrative career. However, in my experience, job hopping more typically indicates that you are terrible at choosing jobs, and that are you deluding your self about the &quot;exceptional opportunities&quot; that are always popping up. You may just be chasing novelty, or fleeing from your screw-ups. You generally won't be able to keep this up very long. Word gets around and you'll find that you aren't getting interviews, or only getting interviews for short-term code-monkey work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You friend will have to apply some self-examination to figure out which category they are in.&lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-12-05T20:01:12.840" />
  <row Id="23967" PostTypeId="2" ParentId="23965" CreationDate="2010-12-05T20:03:06.297" Score="10" ViewCount="" Body="&lt;p&gt;From the way Oracle's been behaving lately, it sure looks like the future of &lt;strong&gt;Java&lt;/strong&gt; is up in the air...&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-05T20:03:06.297" CommentCount="7" />
  <row Id="23968" PostTypeId="2" ParentId="23944" CreationDate="2010-12-05T20:09:27.357" Score="27" ViewCount="" Body="&lt;p&gt;Never.  C describes an abstraction level very close to a CPU.  Anything needing to be at that level is a prime candidate for C.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-05T20:09:27.357" CommentCount="12" />
  <row Id="23970" PostTypeId="2" ParentId="23965" CreationDate="2010-12-05T20:21:44.713" Score="-2" ViewCount="" Body="&lt;p&gt;HTML4 should eventually go away replaced by XHTML and HTML5.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-05T20:21:44.713" CommentCount="5" />
  <row Id="23971" PostTypeId="2" ParentId="23845" CreationDate="2010-12-05T20:24:00.880" Score="0" ViewCount="" Body="&lt;p&gt;Plenty of reassurance that your method isn't wrong, but let me add some personal experience. I started off your way, but in the meantime I learnt the benefit of planning beforehand at least part of the general structure, and this for a number of reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;biggest extra is that it's easier to see which code can be reused if worked around a bit. I often write a piece of code that, while writing, suddenly seems useful for another part in the general scheme I have hanging next to my screen (drawn on paper in a only-readible-for-me-style).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Having a scheme allows you to refactor not only the code, but the scheme as well. Sometimes I'm busy writing a class that suddenly appears useful for some other part in the scheme as well. As a result the scheme becomes simpler when the project runs on&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Every time I update that scheme as well with required input and given output of functions/methods, and available slots in classes. This goes faster for reusing bits: I don't have to dive in the code every time to check what exactly goes in and out. Even if it's in the comments, I still have to browse to get the comments up&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So actually, I use your method as well. I just start, try out, refactor, try out again, change another bit and so on, but my cycle includes the scheme as well. And when that's done, I add the information for the next one that works on that code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mind you, this is for projects where I work on alone. If you work with more people on the same code, planning ahead is not only logic, it's essential. But I guess you know that already.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And as others said: this is &lt;em&gt;my&lt;/em&gt;  way, your mileage may vary.&lt;/p&gt;&#xA;" OwnerUserId="7268" LastActivityDate="2010-12-05T20:24:00.880" />
  <row Id="23972" PostTypeId="2" ParentId="23965" CreationDate="2010-12-05T20:25:57.750" Score="23" ViewCount="" Body="&lt;p&gt;Visual Basic 6. There will be a day when a new version of Windows no longer supports it.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-05T20:25:57.750" CommentCount="9" />
  <row Id="23973" PostTypeId="2" ParentId="23965" CreationDate="2010-12-05T20:31:08.383" Score="40" ViewCount="" Body="&lt;h1&gt;None&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I don't think anything currently in use will die or become obsolete in the next five to ten years.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Languages Don't Die&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Look at Lisp, COBOL, Perl, Fortran. These are old languages that still see use today. I don't believe a programing language ever stops being used or &quot;dies&quot; in that sense. It may not be under active development and improvement, but that should be seen as a sign of maturity and age rather then impending death. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-11T15:23:53.560" LastActivityDate="2010-12-11T15:23:53.560" CommentCount="5" />
  <row Id="23974" PostTypeId="1" CreationDate="2010-12-05T20:31:29.247" Score="1" ViewCount="41" Body="&lt;p&gt;Hi guys and girls,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For my final year project, I'm working on a script that will run your python program and provide a time line of events(so far working on assignments) and create a story of what happened(the changes in the variables). Based on what Exception is thrown, you can choose to use the library made available by me to help figure out what happened and how it happened. (Hopefully I explained this much better than I did on stack overflow) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question to you, besides the variables, when an error occurs/exception you cant handle occurs, what would you look through in order to try and fix the problem?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many thanks.&lt;/p&gt;&#xA;" OwnerUserId="9148" LastEditorUserId="9148" LastEditorDisplayName="" LastEditDate="2010-12-05T20:37:17.463" LastActivityDate="2010-12-05T22:50:16.707" Title="Error handling, creating time line, need help defining what aspects of the environment need tracking" Tags="&lt;programming-languages&gt;&lt;exceptions&gt;&lt;errors&gt;&lt;tracking&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="23977" PostTypeId="2" ParentId="23863" CreationDate="2010-12-05T20:57:32.340" Score="1" ViewCount="" Body="&lt;p&gt;It's hard to give a general answer to these sorts of questions because everyone has a specific example where it doesn't apply. However, from an employer perspective:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Not all degrees are created equal, so when you're job hunting as a new graduate, the name of the school and the quality of your grades are important;&lt;/li&gt;&#xA;&lt;li&gt;This is tempered by the fact that all a degree &lt;em&gt;really&lt;/em&gt; proves is that you've got the ability to learn. Sure you picked up some specific CS-related knowledge and skills (so I hopefully don't need to teach you about B-trees), and the stop sign recognition code you wrote for the engineering department's new autonomous car is interesting, but I want you to be able to write code for us, in our way, in our team.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So from my perspective, the value of the degree on your CV diminishes over time, not because of its content, but because it's been overtaken by more (hopefully) valuable work experience.&lt;/p&gt;&#xA;" OwnerUserId="9039" LastActivityDate="2010-12-05T20:57:32.340" CommentCount="1" />
  <row Id="23978" PostTypeId="2" ParentId="23942" CreationDate="2010-12-05T21:04:19.447" Score="1" ViewCount="" Body="&lt;p&gt;Every now and then someone comes up with a drag and drop programming language or design tool that is going to &quot;put an end to programming as we know it&quot; and make everyone who uses it into a programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason that none of them have actually done the job as yet and put us all out of work is that actually, no matter how much drag and drop functionality you create and no matter how user friendly you make it, the simple fact is that &lt;em&gt;programming is hard.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The real disciplines of programming are as much about knowing how to solve problems, understanding how to model processes and organise data to be usable. Even understanding what is possible with a computer at all. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is evidence (if controversial) to suggest that &lt;a href=&quot;http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html&quot; rel=&quot;nofollow&quot;&gt;some people can't be taught to think this way&lt;/a&gt; which leads me to a couple of interesting and relevant thoughts. To start with, if you can't think this way then there are lots of programmers around, so you can always hire someone to implement an idea if you have one and you think it's worth paying for. If you can work with programming logic well enough then you might as well learn a real language rather than mess around with a relatively simple drag and drop environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm thinking of general programming here. The same thing doesn't necessarily apply in a more limited DSL type scenario where drag-and-drop might be a really useful process users who are specialists within that domain rather than IT specialists.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-12-05T21:04:19.447" CommentCount="3" />
  <row Id="23979" PostTypeId="2" ParentId="23965" CreationDate="2010-12-05T21:08:14.347" Score="5" ViewCount="" Body="&lt;p&gt;There's a &lt;a href=&quot;http://stackoverflow.com/questions/822752/should-i-learn-haskell-or-f-if-i-already-know-ocaml/827594#827594&quot;&gt;very interesting SO post&lt;/a&gt; from &lt;a href=&quot;http://www.ffconsultancy.com/&quot; rel=&quot;nofollow&quot;&gt;Jon Harrop&lt;/a&gt; predicting the demise of OCaml and Haskell, crushed by the widespread availability of F#.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-12-05T21:08:14.347" CommentCount="13" />
  <row Id="23980" PostTypeId="2" ParentId="23885" CreationDate="2010-12-05T21:08:26.700" Score="3" ViewCount="" Body="&lt;p&gt;Programming is my craft, and I care about my craft. Code done poorly is an insult.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-12-05T21:08:26.700" />
  <row Id="23982" PostTypeId="2" ParentId="23885" CreationDate="2010-12-05T21:12:24.427" Score="1" ViewCount="" Body="&lt;p&gt;Zen and the Art of Motorcycle Maintenance - Best book on Quality and the search for it in life...seriously, every dev should have a copy (and read it)&lt;/p&gt;&#xA;" OwnerUserId="5532" LastActivityDate="2010-12-05T21:12:24.427" />
  <row Id="23983" PostTypeId="2" ParentId="23942" CreationDate="2010-12-05T21:23:44.197" Score="2" ViewCount="" Body="&lt;p&gt;MIT's &lt;a href=&quot;http://en.wikipedia.org/wiki/Scratch_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Scratch&lt;/a&gt; programming system is almost entirely drag-and-drop. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Google's &lt;a href=&quot;http://appinventor.googlelabs.com/about/&quot; rel=&quot;nofollow&quot;&gt;App Inventor&lt;/a&gt; seems to be similar (and credits Scratch).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't want to code anything big in either myself, but for teaching &quot;programmer thinking&quot;, Scratch is superb.  It's Real Programming, but with instant visual gratification and the &lt;a href=&quot;http://info.scratch.mit.edu/Support/Reference_Guide_1.4#ScratchBlocks&quot; rel=&quot;nofollow&quot;&gt;snap-together blocks&lt;/a&gt; avoid much of the &quot;syntax error&quot; frustration which puts off newcomers.  Trying to enthuse young kids with a python commandline doesn't cut it these days.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastEditorUserId="4966" LastEditorDisplayName="" LastEditDate="2010-12-05T21:41:42.020" LastActivityDate="2010-12-05T21:41:42.020" />
  <row Id="23984" PostTypeId="2" ParentId="11312" CreationDate="2010-12-05T21:24:59.580" Score="1" ViewCount="" Body="&lt;p&gt;The possibility to work from home!&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-12-05T21:24:59.580" CommunityOwnedDate="2010-12-05T21:24:59.580" />
  <row Id="23985" PostTypeId="2" ParentId="23944" CreationDate="2010-12-05T21:36:58.453" Score="0" ViewCount="" Body="&lt;p&gt;Languages originally implemented in C include Ruby and Python, which are both quite popular. Languages running on Java include LISP. Much of SciPy is implemented in Fortran, and both Ruby and Python can be extended with C and have ways for C code to be included inline. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as people find new things to do with old languages, or need to use things implemented in old languages, those languages will continue to be useful.&lt;/p&gt;&#xA;" OwnerUserId="6883" LastActivityDate="2010-12-05T21:36:58.453" />
  <row Id="23986" PostTypeId="1" CreationDate="2010-12-05T21:37:03.617" Score="4" ViewCount="174" Body="&lt;p&gt;In my previous job the tool chain was&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Task control:  FogBugz Development&lt;br&gt;&#xA;  Env:  Visual Studio 2008&lt;br&gt;&#xA;  Source Control: SubVersion Integrated build: CruiseControl.NET&lt;br&gt;&#xA;  Unit Tests:  Nant&lt;br&gt;&#xA;  Coverage: NCover&lt;br&gt;&#xA;  Output packaging: Zip Files&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;and some parts worked a lot better than others.  I'm in the process of setting up a new tool chain for my current company and I am interested in other peoples environments, &lt;strong&gt;and which bits have worked, and which haven't worked.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please can you include in your answers if you are a developer, tester or had task management responsibilities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I have a few answers in here, I'll add my experiences as well.  I am not expecting to accept an answer here, as I doubt there is a &quot;perfect&quot; answer&lt;/p&gt;&#xA;" OwnerUserId="8035" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-05T23:12:37.450" LastActivityDate="2011-04-05T01:24:22.200" Title="Tool chain for projects, and how well they perform over time in projects" Tags="&lt;project-management&gt;&lt;tools&gt;&lt;version-control&gt;" AnswerCount="7" FavoriteCount="2" />
  <row Id="23987" PostTypeId="2" ParentId="15292" CreationDate="2010-12-05T21:39:01.853" Score="-1" ViewCount="" Body="&lt;p&gt;A programmer needs to know three languages: C, English, and Something Else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C is very much a core language, it's close to the machine and has syntax rules that are common to several high level languages. C forces you to think about things like data structures in a very different way than Java. Also, the Python and Ruby vms are both built in C, and you can inline C into both languages when you want to boost your speed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;English is the common language of programming. Most books, technical reports, technical websites, and journal papers come out in English first, and sometimes English exclusively. Furthermore, if English isn't your first language, learning English will expand your toolkit for manipulating concepts (this goes for English speakers learning some other language as well, of course).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Something Else should be a language that isn't procedural, or isn't statically typed, or is strongly object oriented, or in some way is just fundamentally different from C. Haskell, Scala, Python, Ruby, some Lisp dialect, whatever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that, you can learn whatever your specific situation calls for, likely C# or Java.&lt;/p&gt;&#xA;" OwnerUserId="6883" LastEditorUserId="6883" LastEditorDisplayName="" LastEditDate="2011-04-07T18:47:54.703" LastActivityDate="2011-04-07T18:47:54.703" CommentCount="4" />
  <row Id="23989" PostTypeId="2" ParentId="23986" CreationDate="2010-12-05T21:46:53.633" Score="0" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;Task control: Pencil and paper (I'm the only dedicated developer)&#xA;Environment: XCode and Emacs&#xA;Source Control: Git&#xA;Testing: a bunch of sample applications I've written&#xA;Deployment: log into production, pull from Git, run make&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-05T21:46:53.633" />
  <row Id="23991" PostTypeId="2" ParentId="15292" CreationDate="2010-12-05T22:02:35.503" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://xkcd.com/378/&quot; rel=&quot;nofollow&quot;&gt;http://xkcd.com/378/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/VjOTh.png&quot; alt=&quot;Real programmers set the universal constants at the start such that the universe evolves to contain the disk with the data they want.&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alt text: Real programmers set the universal constants at the start such that the universe evolves to contain the disk with the data they want.&lt;/p&gt;&#xA;" OwnerUserId="6440" LastActivityDate="2010-12-05T22:02:35.503" CommunityOwnedDate="2010-12-05T22:02:35.503" />
  <row Id="23992" PostTypeId="2" ParentId="23986" CreationDate="2010-12-05T22:09:16.603" Score="1" ViewCount="" Body="&lt;p&gt;The company I work for uses these tools:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Task control: VersonOne and Bugzilla&#xA;Environment: GCC/G++ and Eclipse/VIM&#xA;Source control: Git&#xA;Testing: Testlink, bci and a homebrewn automated test system&#xA;Unit tests: Homebrewn unit-testing library&#xA;Building with: waf and/or automake/autoconf&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;We use the homebrewn unit-testing library because part of the product is open-source and it needs to have as few external dependencies as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bugzilla worked out just fine. But it's only a bug-tracker, not a complete task control system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The developement environment is mainly an individual decision for every developer, but they must be able to work efficiently with these tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We use waf for non-open source applications (internal mostly). It's easy to handle but not very good for applications that have to build on different platforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Testlink is for manual testing. We have only started using it a few months ago so it's too soon to tell if it's any good, but the testers seem to like it. The homegrown part is for integrating it with other company-wide systems and starting the automated tests and performance tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And Git worked out pretty well. The other devs like it since it's so easy to set up a git repository. We have a central server and every developer has a complete repository. We integrate patches to the mainline easily with our also homebrewn tool.&lt;/p&gt;&#xA;" OwnerUserId="8454" LastEditorUserId="8454" LastEditorDisplayName="" LastEditDate="2010-12-05T23:07:17.340" LastActivityDate="2010-12-05T23:07:17.340" CommentCount="2" />
  <row Id="23993" PostTypeId="2" ParentId="23942" CreationDate="2010-12-05T22:10:36.693" Score="2" ViewCount="" Body="&lt;p&gt;Dataflow programming (a.k.a. flow-based programming) can be kind of. Altough, dataflow programming is not Turing-complete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dataflow programming is the method of creating applications, when you put component instances on the scene and connect their ports, so they form a message processing network. The components can be choosen from a library, they have consumer (input) and producer (output) ports, which are ready to connect with other components' ports.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a nice example, where not even a mouse used to build a synth app, but bare hands and little cubes: &lt;a href=&quot;http://www.youtube.com/watch?v=0h-RhyopUmc&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=0h-RhyopUmc&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wikipedia articles are a good start point:&#xA;&lt;a href=&quot;http://en.wikipedia.org/wiki/Flow-based_programming&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Flow-based_programming&lt;/a&gt;&#xA;http://en.wikipedia.org/wiki/Dataflow_programming&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sound generation is a typical area of dataflow programming. There are some open source synth systems:&#xA;&lt;a href=&quot;http://www.synthedit.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.synthedit.com/&lt;/a&gt;&#xA;http://alsamodular.sourceforge.net/&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have Mac, you may have a factory pre-installed Quartz Composer: &lt;a href=&quot;http://developer.apple.com/graphicsimaging/quartz/quartzcomposer.html&quot; rel=&quot;nofollow&quot;&gt;http://developer.apple.com/graphicsimaging/quartz/quartzcomposer.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also made a DF system with a friend of mine, but we have no visual editor &lt;em&gt;yet&lt;/em&gt;, only script visualizer.&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-12-05T22:10:36.693" CommentCount="2" />
  <row Id="23994" PostTypeId="2" ParentId="23942" CreationDate="2010-12-05T22:39:19.273" Score="0" ViewCount="" Body="&lt;p&gt;This already exists, albeit possibly not in the form that you are thinking about.  Two examples are Simulink and Alice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simulink is a graphical means of assembling dynamic system simulations.  While most of the constructs are more complex than what you would usually think of as programming, things like for and if statements still can be graphically constructed.  Simulink is kinda a big deal in Aerospace applications as the government and many of the big companies do their initial designs in Simulink and then apply some type of theorem prover to the Simulink &quot;code&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alice, is a drag and drop, programming training tool for kids.  It allows kids to have fun building stories by dragging and dropping actions and objects on a sort of programming story board.&lt;/p&gt;&#xA;" OwnerUserId="5741" LastActivityDate="2010-12-05T22:39:19.273" />
  <row Id="23995" PostTypeId="2" ParentId="23986" CreationDate="2010-12-05T22:41:04.577" Score="0" ViewCount="" Body="&lt;p&gt;There could be a perfect answer for the question if you can provide some details about the hierarchy of read/write rights to the code base, kind of project, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you look at the git repo of Linux kernel for example, you see the hierarchy of read/write rights which is pretty much flat, only differentiated by trust.  But if you look at those of GCC or GDB, they are very different and have a pyramid like hierarchy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for me, I am a programmer.  I use Emacs, CVS, Make, gcc, gcov/gprof, gdb/objdump/strace, shell scripts/python for testing.  But some in my team use Vim.  We have one central code base to which some of us write.  So we use CVS.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-12-05T22:41:04.577" />
  <row Id="23996" PostTypeId="2" ParentId="23974" CreationDate="2010-12-05T22:50:16.707" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The Call Stack With Arguments&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This might be a little obvious, but a lot of my error logs just consist of functions announcing they're beginning with a listing of the args passed. As you're creating your &quot;story,&quot; make it obvious every time a function is called and display the args passed to the function.&lt;/p&gt;&#xA;" OwnerUserId="7629" LastActivityDate="2010-12-05T22:50:16.707" CommentCount="2" />
  <row Id="23997" PostTypeId="2" ParentId="23986" CreationDate="2010-12-05T22:57:43.937" Score="0" ViewCount="" Body="&lt;p&gt;Well, for a start, you want to get off Visual Studio 2008 and onto 2010, no doubt about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SubVersion may be doing the job for you - but it's definitely worth reading the first chapter of &lt;a href=&quot;http://hginit.com/&quot; rel=&quot;nofollow&quot;&gt;Joel Spolsky's Mercurial tutorial&lt;/a&gt; to see if you think it might be worth switching to a distributed version control system - it will certainly add functionality, which may or may not be compelling in your development situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And lastly, I did set up CruiseControl.NET once, and I seem to recall it being a pain in the ass. If you already have it working perfectly, you might as well stick with it. But if not, JetBrains' &lt;a href=&quot;http://www.jetbrains.com/teamcity/&quot; rel=&quot;nofollow&quot;&gt;TeamCity&lt;/a&gt; has always been very well regarded by the people I know who have used it (I haven't, myself).&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-12-05T22:57:43.937" CommentCount="1" />
  <row Id="23998" PostTypeId="2" ParentId="23986" CreationDate="2010-12-05T23:17:54.607" Score="0" ViewCount="" Body="&lt;p&gt;This is my experiences on the toolchain in the question, over 3 years on the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We found fogbugz very effective in defining tasks, task assignment and in predicting project progress.  All round, this was a strong part of the tool chain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Visual Studio 2008: Okay. Some problems with the large number of projects in the solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Source Control:  SubVersion was okay in the intial stages of the product.  However as progressed, we ended up with 5 products all from the same source code, each with different release points. The majority of the development team copy and pasted code between branches rather than merging across - and the result became bits of code being lost in branches rather than being in the trunk and merged into the branches properly.  This was a weak area of the tool chain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;CruiseControl.NET: It was okay, but adding new branches means editing config files by hand. Using Nant with it to script the build process was easy to setup, but over time as newer .NET features were added, its limitations started showing.  e.g. compiling XAML pages. I would probably find a replacement next time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unit Tests:  NUnit generally did the job. most of the developers did not really push it hard, in terms of tear ups and tear downs etc but this part did its job catching coding errors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;NCover: We found running NCover semi useful. It was more a review tool when we found a bit of work that was found lacking in QA. It was often found that code coverage of unit tests was &amp;lt;10% in poor code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Zip Files worked in our case because we were shipping an OEM product, and these files were then placed into ImageX WIM image files.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2010-12-05T23:17:54.607" />
  <row Id="23999" PostTypeId="2" ParentId="23965" CreationDate="2010-12-05T23:24:05.980" Score="-2" ViewCount="" Body="&lt;p&gt;qbasic.. i just start to coding a few minutes ago (still used) after read this question and possibly i will give up coding a few minutes later because i do not like black screen (near future)&lt;/p&gt;&#xA;" OwnerUserId="9194" LastActivityDate="2010-12-05T23:24:05.980" CommentCount="2" />
  <row Id="24000" PostTypeId="2" ParentId="23942" CreationDate="2010-12-05T23:29:26.540" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://pipes.yahoo.com/&quot; rel=&quot;nofollow&quot;&gt;Yahoo! Pipes&lt;/a&gt; is probably a perfect example of a graphical language of the type you're describing; you drag-and-drop primitives (everything from data sources that you act on, to loops and conditionals) to produce a flow of information through the system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's highly domain-specific, but that's mostly the point; Pipes is data-centric, making visualization (rather than expression) paramount. Similarly, tutorial environments like &lt;a href=&quot;http://scratch.mit.edu/&quot; rel=&quot;nofollow&quot;&gt;Scratch&lt;/a&gt; or &lt;a href=&quot;http://sprog.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Sprog!&lt;/a&gt; emphasize the visualization of what you're working on as a learning aid; data-entry efficiency is a much lower priority in that domain.&lt;/p&gt;&#xA;" OwnerUserId="2481" LastActivityDate="2010-12-05T23:29:26.540" CommentCount="1" />
  <row Id="24001" PostTypeId="2" ParentId="10651" CreationDate="2010-12-06T00:01:07.460" Score="1" ViewCount="" Body="&lt;p&gt;At my second development job there was a guy who, to this day, I think had the best job on the planet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He spent all day messing around with new technology and techniques and evaluating them to see if they had value for the business. He presented his research to the developers - who would then do the grunt work. He did a bit of architecture, but 90% analysis and problem solving.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He joined the company as an intern, and never left. So he had no formal qualifications at all and he made a ton of money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you haven't got a degree then you're going to have trouble getting your foot in the door at an interview. So maybe do what this guy did. Identify some companies that will contain research opportunities and get a developer job there. Then once you've proved yourself and you have some reputation make the transition. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have aspirations like this, then bring them up at your Review(s). As long as you are worth keeping, then your boss will try to keep you happy and fulfilled. And the more value that you add, the more they will be willing to appease you.&lt;/p&gt;&#xA;" OwnerUserId="8811" LastActivityDate="2010-12-06T00:01:07.460" />
  <row Id="24002" PostTypeId="1" AcceptedAnswerId="24004" CreationDate="2010-12-06T00:03:06.180" Score="7" ViewCount="201" Body="&lt;p&gt;I'm looking for an application to create simple diagrams for database design. I'm not looking for anything that will help create the databases, just a simple tool for a design report. I have tried Visio and Enterprise Architect, but I did not care for how it looked in Visio and had trouble with EA. I am looking for something simple like this (from Wikipedia): &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/sWJ03.png&quot; alt=&quot;Database management system - Wikipedia&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. If you know which program made the above, please tell me!&lt;br /&gt;&#xA;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="6613" LastActivityDate="2010-12-24T00:21:33.157" Title="Program to create diagram for database" Tags="&lt;software&gt;&lt;database&gt;&lt;diagrams&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="2" />
  <row Id="24003" PostTypeId="2" ParentId="18392" CreationDate="2010-12-06T00:08:03.120" Score="2" ViewCount="" Body="&lt;p&gt;It all depends on your goals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to spend more time with your spouse/kids/family, then you need to put that first. I hope you're aware that the time spent with babies is unlike when they're older/bigger and therefore less dependent, so it's worth treasuring. Once they go to nursery/daycare/school, you have a lot less influence and quality time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've got a great idea for an iOS app that could potentially earn enough to make a difference to your life, that sounds like a candidate for vacation time off work to get it done and perhaps several evenings a week where you negotiate with your spouse that you're left alone to have interrupted project time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finding a balance between these is hard, but it can be done. For example, after dropping the kids off and then going to work, do a full day with a short lunch, you could then come back to do evening routine with them. After they're in bed, you could have some time to be able to crack on with various programming projects. Obviously, your wife won't get a whole lot of your attention with this arrangement, so weekends should be reserved for quality family time, and a decent proportion of any money you make on the projects should be spent treating the family.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whatever you do though, I'd advise against giving up the day job unless your iOS app has paid off the mortgage already and you have a year's worth of savings, as the market is a rapid-moving target.&lt;/p&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-12-06T00:15:12.727" LastActivityDate="2010-12-06T00:15:12.727" CommentCount="2" />
  <row Id="24004" PostTypeId="2" ParentId="24002" CreationDate="2010-12-06T00:12:54.887" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://projects.gnome.org/dia/&quot; rel=&quot;nofollow&quot;&gt;Dia&lt;/a&gt; might be what you're looking for.  I use it to visualize classes and objects for school and it works pretty well.&lt;/p&gt;&#xA;" OwnerUserId="7073" LastActivityDate="2010-12-06T00:12:54.887" CommentCount="4" />
  <row Id="24005" PostTypeId="1" CreationDate="2010-12-06T00:16:04.930" Score="8" ViewCount="276" Body="&lt;p&gt;Does everyone track time spent on personal projects? I feel that it is valuable to know how much time (and potential money) has been put into a hobby.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am currently using &lt;a href=&quot;http://www.getharvest.com&quot; rel=&quot;nofollow&quot;&gt;harvest&lt;/a&gt; to track time.&lt;/p&gt;&#xA;" OwnerUserId="5354" LastActivityDate="2011-01-31T19:48:50.353" Title="tracking time for personal projects" Tags="&lt;productivity&gt;&lt;time-management&gt;&lt;time-tracking&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="3" />
  <row Id="24006" PostTypeId="2" ParentId="8415" CreationDate="2010-12-06T00:18:27.377" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.livescribe.com/en-us/&quot; rel=&quot;nofollow&quot;&gt;Livescribe&lt;/a&gt; might be a solution for you, aside from picking up a Bamboo or Intuous.  Even though it is pen and paper, it can create PDFs of your writings/diagrams on the computer. &lt;/p&gt;&#xA;" OwnerUserId="7073" LastActivityDate="2010-12-06T00:18:27.377" />
  <row Id="24007" PostTypeId="2" ParentId="23548" CreationDate="2010-12-06T00:19:52.100" Score="0" ViewCount="" Body="&lt;p&gt;This looks like an opportunity for you within this company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you are becoming known as someone proficient with programming, and people are coming to you for advice/input, it seems like there's a business need for programming in this company in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd recommend talking to someone in a position of authority that may be able to establish that this becomes part of your role - e.g. you head up the software development efforts, and are recognised accordingly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this is possible, you could start the educational ball rolling with a chalk-and-talk session on what is programming, why you program these office apps, etc, and introduce C#  as you do this. If this goes well, you probly want to progress to Version Control, leveraging frameworks and nUnit (or similar) soon after.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there's no opportunity available, a chalk-and-talk session is still a good option as you can disseminate the same information to a number of people, aiming for the average case, and they can then support each other going forwards.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-12-06T00:19:52.100" />
  <row Id="24008" PostTypeId="2" ParentId="23942" CreationDate="2010-12-06T00:26:38.427" Score="0" ViewCount="" Body="&lt;p&gt;Textual programming has had a nice 50 year run, but software engineering must move into the graphical realm to deal with the next level of complexity.  For example, the emergence of manycore processors and the challenges of parallel programming are pushing the threading model to its limit.  Frankly, I think that the software community is just arrogant thinking that there is something fundamentally different and special about programming that it would not be amenable to visualization like every other domain.  Like telephone operators and many other professions, the right automation technology will enable domain experts to soon collaborate in rich simulation spaces of knowledge-based systems.  The software industry is long overdue for a paradigm shift.&lt;/p&gt;&#xA;" OwnerUserId="9196" LastActivityDate="2010-12-06T00:26:38.427" />
  <row Id="24009" PostTypeId="2" ParentId="23944" CreationDate="2010-12-06T00:33:01.673" Score="1" ViewCount="" Body="&lt;p&gt;Never. C is one of those great languages that is able to provide mechanisms for low-level programming as well as high level abstractions. Sure the high level abstractions aren't as sophisticated as in other languages, such as Python, but those languages compromise their ability at at the low-level end.&lt;/p&gt;&#xA;" OwnerUserId="8392" LastActivityDate="2010-12-06T00:33:01.673" />
  <row Id="24010" PostTypeId="2" ParentId="7008" CreationDate="2010-12-06T00:46:17.580" Score="1" ViewCount="" Body="&lt;p&gt;I am no expert, but in my experience, there are several well-known attack vectors for systems:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Unvalidated user data&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is the classic buffer-overrun, SQL injection, drive-by-download mechanism and is caused by insufficient planning or education on secure coding practices. It is important to ensure developers understand how &lt;em&gt;any&lt;/em&gt; insecure code can be leveraged to exploit a zero-day attack on a computer. Just because your website doesn't do anything particularly secret/important, doesn't mean that getting root access on your webserver can't harm the other parts of the organisation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Weak security&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This can be a blend of poor security infrastructure, policy or just bad passwords. The worlds most popular password is 'password1' since most email providers started insisting on alpha-numeric passwords - previously it was 'password'. If a dictionary-based attack can guess a users' password, the policy was insufficient.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Backdoors&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some enterprising programmers leave quick-access backdoors in code in case they need to jump in and 'fix' the system. If you have any of these, deliberate or otherwise, your system is a ticking time-bomb.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What to do about it&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Here's a useful selection of podcast episodes that discuss the topic: &lt;a href=&quot;http://www.se-radio.net/?s=security&amp;amp;submit=Find&quot; rel=&quot;nofollow&quot;&gt;http://www.se-radio.net/?s=security&amp;amp;submit=Find&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Read up on some best-practices, for example &lt;a href=&quot;http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&amp;amp;field-keywords=writing+secure+code&amp;amp;x=0&amp;amp;y=0&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&amp;amp;field-keywords=writing+secure+code&amp;amp;x=0&amp;amp;y=0&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Get your code security/penetration tested.&lt;/li&gt;&#xA;&lt;li&gt;Keep up-to-date with current threats and mitigation strategies through blogs and online articles: &lt;a href=&quot;http://www.cert.org/sse/&quot; rel=&quot;nofollow&quot;&gt;http://www.cert.org/sse/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-12-06T00:46:17.580" />
  <row Id="24011" PostTypeId="2" ParentId="23944" CreationDate="2010-12-06T01:04:53.623" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Or could it be that some programming languages just never die?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That is right&lt;sup&gt;*&lt;/sup&gt;.  Other examples include COBOL, FORTRAN, LISP, Pascal, Ada (probably), and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the case of C, it is still the language of choice for some kinds of programming and for some developers.  For example, the Linux operating system is implemented in C, and that is under active development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;* For the pedants in the audience (Hi Matthew), perhaps I should say that &quot;never&quot; is an obvious  exaggeration.  When the universe reaches heat death in &lt;code&gt;10^100&lt;/code&gt; years or so, programming languages will be irrelevant.  And long before then, it is likely that the human race will have ceased to exist, or have stopped programming computers in any sense that we would recognize today.&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-12-06T10:51:09.233" LastActivityDate="2010-12-06T10:51:09.233" />
  <row Id="24012" PostTypeId="2" ParentId="23944" CreationDate="2010-12-06T01:08:44.137" Score="0" ViewCount="" Body="&lt;p&gt;The stock answer comes from the infamous statement (I don't know who it is from, but the quote is widespread)&quot; I don't know what the computer language fifty years from now will look like, but it will ba called Fortran&quot;. I think that applies to C as well. And we've seen that LISP is alive and well also.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps a related question would be approriate, &quot;What lanquages have died and been buried?&quot;.&#xA;  When I was an undergrad (early 70's) I heard a lot about SNOWBALL. Has that one died?&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-12-06T01:08:44.137" CommentCount="2" />
  <row Id="24013" PostTypeId="2" ParentId="23944" CreationDate="2010-12-06T01:31:53.010" Score="0" ViewCount="" Body="&lt;p&gt;Well within most of our lifetimes processor technology will change radically enough that the core concepts of C will be a poor match for the hardware. It won't kill C right away, as there will surely be plenty of legacy systems that are still a good fit, but eventually those too will be replaced.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C will be gone within 100 years, and will likely have lost its usefulness in all but a small-and-rapidly-shrinking percentage of legacy systems within a few decades.&lt;/p&gt;&#xA;" OwnerUserId="8076" LastActivityDate="2010-12-06T01:31:53.010" CommentCount="0" />
  <row Id="24014" PostTypeId="2" ParentId="23809" CreationDate="2010-12-06T01:52:09.793" Score="1" ViewCount="" Body="&lt;p&gt;I sort of collect programming languages.  I'm up to about a dozen, and have no intention of stopping.  Less than half of those are languages I'd consider using in production.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning many different programming languages gives you something invaluable: a feel for language design.  Once you have that, learning new languages on the fly is almost trivial, and choosing the right language for a job is second nature.  No matter what language(s) you use every day, understanding language design makes you a better coder with more insight into code.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-06T01:52:09.793" />
  <row Id="24015" PostTypeId="2" ParentId="23962" CreationDate="2010-12-06T01:54:55.150" Score="2" ViewCount="" Body="&lt;p&gt;My advice may seem a little Machiavellian - I will leave moral issues out of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have another better job lined up, then your work history isn't effecting your prospects so you should go for it. If you keep changing jobs, then you may become a less desirable employee, but that will &lt;em&gt;force&lt;/em&gt; you to stay in a job for longer - which will have the effect of making you desirable again. So it's not as big a problem as you might think. It should happen less as you get more senior and have more responsibility though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If however you've just seen a job advertised that you &lt;em&gt;might&lt;/em&gt; get, then you will be in an uncomfortable place if you have to declare your intention to leave, and then are unable to do so because someone else got the job. It will make your working relationships a bit more strained, and you will not be considered for interesting projects in case you leave suddenly in the middle of them.&lt;/p&gt;&#xA;" OwnerUserId="8811" LastActivityDate="2010-12-06T01:54:55.150" />
  <row Id="24016" PostTypeId="2" ParentId="23548" CreationDate="2010-12-06T02:08:01.590" Score="2" ViewCount="" Body="&lt;p&gt;Always relate it to something the person can understand. If they do not understand programming then:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;.NET is a collection of pre-made stuff. So its like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a whole lot of bricks already put together&lt;/li&gt;&#xA;&lt;li&gt;a pre-written agreement where you just fill in some fields&lt;/li&gt;&#xA;&lt;li&gt;buying a car instead of the individual parts that make up a car&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5354" LastActivityDate="2010-12-06T02:08:01.590" />
  <row Id="24019" PostTypeId="1" CreationDate="2010-12-06T02:27:59.777" Score="4" ViewCount="176" Body="&lt;p&gt;I've always loved Game AI. I've read about it as much as my wallet allows and implemented many different small samples - culminating in a number of interactive games in my upper years of college/university, however the stumbling block for me has always been getting things on screen. I'm not terribly great at graphics programming (I've used c++:dx/ogl, c#:xna and even winforms) but most of all, I really don't like it. It's all very cumbersome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any existing systems available (preferably for .NET) that can easily render primitive objects to the screen? An awareness of actors and physical objects would be a plus (I've worked with some .NET physics engines in the past, so I could integrate one, thus it's not a &lt;em&gt;must&lt;/em&gt; but definitely a plus).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key is that I am &lt;strong&gt;NOT&lt;/strong&gt; looking for a game engine. Far too often do they seem to want to do much more than I need and end up getting in the way of what I'm really trying to do. I don't want to have to deal with loading models, creating and applying shaders, adding lights or any of that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Really, I just need something that is aware of 3D space, and can render spheres, rectangles and triangular prisms with ambient light - preferably with built-in physics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So maybe I am looking for a game engine, but it has to be the worlds &lt;em&gt;most simple and unambitious&lt;/em&gt; game engine.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-12-06T03:35:10.873" LastActivityDate="2010-12-06T15:58:34.710" Title="Looking for a Game AI sandbox" Tags="&lt;.net&gt;&lt;game-ai&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="24021" PostTypeId="2" ParentId="23885" CreationDate="2010-12-06T02:48:37.037" Score="0" ViewCount="" Body="&lt;p&gt;If you work on something just to earn money, it's meaningless to discuss about quality, maintenance or design patterns...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But no one want to work on the fields they don't like. We are all developers. And good developers take good quality, delivery time and easy maintenance as his happiness. It's not the problem about money &amp;amp; customers anymore, it's professional pride.&lt;/p&gt;&#xA;" OwnerUserId="9202" LastActivityDate="2010-12-06T02:48:37.037" />
  <row Id="24022" PostTypeId="1" AcceptedAnswerId="24028" CreationDate="2010-12-06T03:02:04.270" Score="10" ViewCount="794" Body="&lt;p&gt;What is your one rule/maxim/motto for programmers, write in the answer below. Just make sure&lt;/p&gt;&#xA;&#xA;&lt;p&gt;a.It pertains to programming/software development&lt;/p&gt;&#xA;&#xA;&lt;p&gt;b. If not, it should at least have some relation to professional AND be funny.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;c. If not it should be really really funny&lt;/p&gt;&#xA;&#xA;&lt;p&gt;d And last but not the least it should be instructive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will start with my answer&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update: Also explain the reasoning (the why) behind each.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update1: If this question is reopened I will wait for new answer else will select one of the existing ones.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastEditorUserId="8073" LastEditorDisplayName="" LastEditDate="2010-12-06T12:33:16.323" LastActivityDate="2010-12-06T12:33:16.323" Title="Rules(Maxims) For Programmers" Tags="&lt;programming&gt;&lt;software-development&gt;" AnswerCount="18" CommentCount="18" FavoriteCount="4" />
  <row Id="24023" PostTypeId="2" ParentId="24022" CreationDate="2010-12-06T03:02:58.187" Score="12" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/There_ain%27t_no_such_thing_as_a_free_lunch&quot; rel=&quot;nofollow&quot;&gt;TINSTAAFL&lt;/a&gt;/There are no silver bullets&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-06T03:02:58.187" CommentCount="2" />
  <row Id="24024" PostTypeId="2" ParentId="24022" CreationDate="2010-12-06T03:09:10.477" Score="9" ViewCount="" Body="&lt;p&gt;When debugging, look to the most recent changes first&lt;/p&gt;&#xA;" OwnerUserId="7222" LastActivityDate="2010-12-06T03:09:10.477" />
  <row Id="24025" PostTypeId="2" ParentId="24022" CreationDate="2010-12-06T03:13:23.123" Score="10" ViewCount="" Body="&lt;p&gt;When wielding the stupid stick, be careful, you may hit yourself with it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Translation:&#xA;If you're about to go on a rampage on how bad someone's code is, there is a good chance it's something you wrote.  &lt;/p&gt;&#xA;" OwnerUserId="2758" LastActivityDate="2010-12-06T03:13:23.123" CommentCount="5" />
  <row Id="24026" PostTypeId="2" ParentId="24022" CreationDate="2010-12-06T03:21:41.313" Score="29" ViewCount="" Body="&lt;p&gt;No, you did &lt;em&gt;not&lt;/em&gt; just find a bug in the compiler.&lt;/p&gt;&#xA;" OwnerUserId="7629" LastActivityDate="2010-12-06T03:21:41.313" CommentCount="6" />
  <row Id="24028" PostTypeId="2" ParentId="24022" CreationDate="2010-12-06T03:31:36.717" Score="17" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.links.org/?p=327&quot; rel=&quot;nofollow&quot;&gt;never fix a bug you don’t understand.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-12-06T03:31:36.717" CommentCount="1" />
  <row Id="24029" PostTypeId="2" ParentId="24022" CreationDate="2010-12-06T03:33:03.093" Score="12" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/You_ain%27t_gonna_need_it&quot; rel=&quot;nofollow&quot;&gt;YAGNI / You ain't gonna need it&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-12-06T03:33:03.093" CommentCount="1" />
  <row Id="24030" PostTypeId="2" ParentId="24022" CreationDate="2010-12-06T03:33:55.503" Score="5" ViewCount="" Body="&lt;p&gt;Use the source Luke!&lt;/p&gt;&#xA;" OwnerUserId="9084" LastActivityDate="2010-12-06T03:33:55.503" CommentCount="3" />
  <row Id="24031" PostTypeId="2" ParentId="24022" CreationDate="2010-12-06T03:45:28.790" Score="17" ViewCount="" Body="&lt;p&gt;if what you're doing seems familiar, stop coding and refactor instead&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-06T03:45:28.790" CommentCount="1" />
  <row Id="24032" PostTypeId="2" ParentId="24022" CreationDate="2010-12-06T03:51:46.367" Score="7" ViewCount="" Body="&lt;p&gt;Keep It Simple and Stupid.  I use it.  I hope it has not phased out.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-12-06T03:51:46.367" CommentCount="2" />
  <row Id="24033" PostTypeId="2" ParentId="11440" CreationDate="2010-12-06T04:06:22.783" Score="1" ViewCount="" Body="&lt;p&gt;I'd focus first on creating the right &quot;posture of mind&quot;.  Once one has that, the rest is much, much easier.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Make sure the student is getting a steady diet of hacker culture.  Our lingo and our humor might &lt;em&gt;seem&lt;/em&gt; trivial to the outside observer, but they are merely tools for nudging one into a certain way of thinking.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Helping the student grow in whatever programming language he/she already knows is fine and dandy, but there comes a point when one needs to go beyond that by:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learning many languages, even some one may never use in production, because this is how one gets a feel for language design.&lt;/li&gt;&#xA;&lt;li&gt;Reading great works like The Art of Computer Programming that are about the big picture, not just a language or use case.&lt;/li&gt;&#xA;&lt;li&gt;Listening in on or taking part in the &quot;big picture&quot; decision-making process: Why are we using OO for this project and not for that?  Do we want to focus on backwards compatibility, or the cleanest, best implementation of every release, at the risk of making the migration between major releases non-trivial?&lt;/li&gt;&#xA;&lt;li&gt;Spending time around more experienced coders, seeing how they approach problems, and watching them duke it out when they don't agree.&lt;br&gt;&#xA;.  &lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Encouraging him/her to experiment with different tools and find his/her own perfect toolbox.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Sending him/her links to whatever you are reading that might be of interest (even if some of it is currently over his/her head).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Making sure he/she is well-supplied with problems of increasing difficulty, and good feedback on same.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-06T04:06:22.783" />
  <row Id="24034" PostTypeId="2" ParentId="23548" CreationDate="2010-12-06T04:15:16.707" Score="1" ViewCount="" Body="&lt;p&gt;All I say is .. &quot;its the future&quot; and the conversation moves on.&lt;/p&gt;&#xA;" OwnerUserId="5822" LastActivityDate="2010-12-06T04:15:16.707" />
  <row Id="24035" PostTypeId="2" ParentId="3282" CreationDate="2010-12-06T04:20:43.643" Score="7" ViewCount="" Body="&lt;p&gt;120,000 lines of pure FORTRAN 77 spaghetti code. Sprinkle in some undocumented OpenGL API, and the worst filename/path handling on the planet (still can't use spaces in path), developed over many years by 3-4 engineers, with &lt;em&gt;no&lt;/em&gt; formal training in how to program and there you have it.&lt;/p&gt;&#xA;" OwnerUserId="5822" LastActivityDate="2010-12-06T04:20:43.643" CommunityOwnedDate="2011-01-14T18:11:43.393" CommentCount="3" />
  <row Id="24036" PostTypeId="1" AcceptedAnswerId="24040" CreationDate="2010-12-06T04:26:20.907" Score="7" ViewCount="433" Body="&lt;p&gt;Is it must that every developer should know XML? How important is XML for a developer? Any suggestion...&lt;/p&gt;&#xA;" OwnerUserId="1522" LastActivityDate="2010-12-07T06:39:49.317" Title="How important is XML for a developer?" Tags="&lt;software-developer&gt;&lt;xml&gt;" AnswerCount="9" CommentCount="3" FavoriteCount="1" />
  <row Id="24037" PostTypeId="2" ParentId="24022" CreationDate="2010-12-06T04:29:58.970" Score="14" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Walking on water and developing&#xA;  software from a specification are easy&#xA;  if both are frozen.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Edward V. Berard&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-12-06T04:29:58.970" />
  <row Id="24038" PostTypeId="2" ParentId="24036" CreationDate="2010-12-06T05:02:33.857" Score="5" ViewCount="" Body="&lt;p&gt;It is helpful to at least know what it is and the basics of XPath. But these days JSON has taken over the data transfer format of choice for most web developers.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-12-06T05:02:33.857" CommentCount="5" />
  <row Id="24039" PostTypeId="2" ParentId="24036" CreationDate="2010-12-06T05:07:13.373" Score="3" ViewCount="" Body="&lt;p&gt;It is always good to know the different data formats like XMl, RRDBMS, CSV etc. Also it will be helpful to know basics of how it works, advantages and limitations of each. This will certainly help taking some important decisions at the design stage. In light of this I will say it is important for developers to know basics of the XML, XPATH, validations, dtd, xsl. But it will not be mandatory to know the low level implementation details. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-06T05:07:13.373" />
  <row Id="24040" PostTypeId="2" ParentId="24036" CreationDate="2010-12-06T05:23:30.837" Score="14" ViewCount="" Body="&lt;p&gt;it's only important to know it when you need it&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and when you need it, you can learn it in an hour. or less&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-06T05:23:30.837" CommentCount="7" />
  <row Id="24041" PostTypeId="2" ParentId="24005" CreationDate="2010-12-06T05:23:59.523" Score="2" ViewCount="" Body="&lt;p&gt;I am not used to track my time for my personal projects. But I do track time for my freelance projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal projects are more of experimental things. So, I don't really feel the need to track that time. But, once the personal projects starts making money, I guess it's a good idea to track the amount of time spent. &lt;/p&gt;&#xA;" OwnerUserId="9208" LastActivityDate="2010-12-06T05:23:59.523" />
  <row Id="24042" PostTypeId="2" ParentId="24022" CreationDate="2010-12-06T05:27:03.123" Score="7" ViewCount="" Body="&lt;p&gt;We aren't deploying your PC&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-12-06T05:27:03.123" CommentCount="2" />
  <row Id="24044" PostTypeId="2" ParentId="24022" CreationDate="2010-12-06T06:11:56.063" Score="4" ViewCount="" Body="&lt;p&gt;I've found a few, most of them in the &lt;strong&gt;Antipatterns&lt;/strong&gt; book, which is instructive and funny (weird combo these days). I'll put these two, which I think are the best&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Good artists imitate, mature artist steal&lt;/li&gt;&#xA;&lt;li&gt;If it ain't broken, don't fix it&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;First one tells us that there is not shame in using good ideas we see on any project, after all, we should be helping each other. Me for example, I use a lot of ideas I see in the .NET framework and port them into PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second one is what I think, one of those rules we shouldnt ever forget, if you find a piece of software with a &quot;hell made&quot; code, but it does its job, leave it alone, it works!&lt;/p&gt;&#xA;" OwnerUserId="8750" LastActivityDate="2010-12-06T06:11:56.063" CommentCount="1" />
  <row Id="24045" PostTypeId="2" ParentId="24036" CreationDate="2010-12-06T06:14:21.410" Score="3" ViewCount="" Body="&lt;p&gt;You should at least know the concept behind XML. Knowing the specifics isn't worth a damn if you don't understand &lt;em&gt;why&lt;/em&gt; it's used in the first place. XML's approach to transporting data is by encasing it in tags like so: &lt;code&gt;&amp;lt;greeting&amp;gt;hi&amp;lt;/greeting&amp;gt;&lt;/code&gt; but you're probably saying, what? Why's he all inventing HTML on me?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You know, some may not agree with me here, but I don't think it's a good idea to be calling yourself a developer and not knowing what XML is. It's just too common, too simple, and too easy to pickup any second now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, you may spend 3 minutes reading these responses. But BAM, in those three minutes, I just read the introduction to XML at w3schools: &lt;a href=&quot;http://www.w3schools.com/xml/xml_whatis.asp&quot; rel=&quot;nofollow&quot;&gt;http://www.w3schools.com/xml/xml_whatis.asp&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I can let my bosses know that, hey, if you ever need some data transported... I'm the right guy to ask (sorta). &lt;/p&gt;&#xA;" OwnerUserId="1808" LastActivityDate="2010-12-06T06:14:21.410" CommentCount="4" />
  <row Id="24046" PostTypeId="2" ParentId="24022" CreationDate="2010-12-06T06:24:51.290" Score="8" ViewCount="" Body="&lt;p&gt;Do not make changes to your code in the name of 'optimization' unless you have run a profiler and identified exactly what the bottleneck is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I had a dollar for every time someone either introduced bugs or added layers of complexity in the name of unnecessary optimization I'd have purchased Facebook by now...&lt;/p&gt;&#xA;" OwnerUserId="786" LastActivityDate="2010-12-06T06:24:51.290" />
  <row Id="24047" PostTypeId="1" AcceptedAnswerId="24063" CreationDate="2010-12-06T06:34:35.197" Score="13" ViewCount="591" Body="&lt;p&gt;I am about to start my first professional career position as a software developer, and I'm likely going to be writing a lot of Java code.  I don't know that much about what specifically I'll be writing, and besides, I have fairly broad interests when it comes to code anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For reasons not worth discussing, my last internship had me coding only for the Java 1.3 and 1.4 SDK's.  Also, my university education has focused mainly on algorithms, data structures, and other theory, not language features or libraries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, with the above in mind, what features, classes, etc. in the current version of Java (what number are we on now, anyway?) would be worth my time to read up on and why?  What have I missed since 1.4.2 that makes your life as a programmer easier?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples and stories of how you discovered a particular package or some such and put it to use would also be great.&lt;/p&gt;&#xA;" OwnerUserId="9210" LastActivityDate="2010-12-11T19:39:58.050" Title="Help me catch up on what I've missed since Java 1.4.2" Tags="&lt;java&gt;&lt;language-features&gt;" AnswerCount="10" CommentCount="1" FavoriteCount="4" />
  <row Id="24048" PostTypeId="2" ParentId="23792" CreationDate="2010-12-06T06:41:58.397" Score="2" ViewCount="" Body="&lt;p&gt;There are two things which can do wonders for ensuring a a consistent and high-bar for code quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Do Code Reviews&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should strive for every checkin -- no matter how trivial -- getting reviewed by another person on the team. No exceptions. This seems like it will get in the way at first, especially for senior developers who think they don't have anything to gain by having less experienced people review their code. However, having regular code reviews will have an immeasurable impact for every developer on the team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Define a Standard and Stick With it&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At Google we have a coding style guide for every language we use: &lt;a href=&quot;http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml&quot; rel=&quot;nofollow&quot;&gt;C++&lt;/a&gt;, &lt;a href=&quot;http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml&quot; rel=&quot;nofollow&quot;&gt;Java&lt;/a&gt;, &lt;a href=&quot;http://google-styleguide.googlecode.com/svn/trunk/pyguide.html&quot; rel=&quot;nofollow&quot;&gt;Python&lt;/a&gt;, etc. While engineers are free to disagree with the style guide, it is not optional. (And is rigorously enforced in code reviews.) As a result, the entire codebase -- hundreds of thousands of lines of code -- is very consistent.&lt;/p&gt;&#xA;" OwnerUserId="786" LastActivityDate="2010-12-06T06:41:58.397" CommentCount="1" />
  <row Id="24049" PostTypeId="2" ParentId="24022" CreationDate="2010-12-06T06:43:34.050" Score="17" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Make it correct,&lt;br&gt;&#xA;  make it clear,&lt;br&gt;&#xA;  make it concise,&lt;br&gt;&#xA;  make it fast.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;em&gt;In that order.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/wesdyer/archive/2007/03/01/immutability-purity-and-referential-transparency.aspx&quot; rel=&quot;nofollow&quot;&gt;Wes Dyer&lt;/a&gt; (I think)&lt;/p&gt;&#xA;" OwnerUserId="4285" LastActivityDate="2010-12-06T06:43:34.050" />
  <row Id="24050" PostTypeId="2" ParentId="24022" CreationDate="2010-12-06T06:53:11.270" Score="12" ViewCount="" Body="&lt;p&gt;The best code is no code. &lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-12-06T06:53:11.270" />
  <row Id="24051" PostTypeId="2" ParentId="23885" CreationDate="2010-12-06T07:06:20.847" Score="0" ViewCount="" Body="&lt;p&gt;I do the simplest thing that will work for the client on the client's budget. Anything extra is time I'm stealing from playing playmobil and lego with my 5 year old son. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If things change and the client wants a modification, I do that and charge for it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not look at long-term &quot;potential&quot; issues unless the client is paying for that, and they invariably aren't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately, simple one-page scripts with no fancy algos and no bleeding-edge dependencies mean that any changes is trivial, even 1 year down the road. &lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-12-06T07:06:20.847" />
  <row Id="24052" PostTypeId="2" ParentId="23810" CreationDate="2010-12-06T07:18:42.157" Score="16" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Things you should know&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Google wants to hire you!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The life-blood of any software company is its employees and Google is no different. It's looking to hire the best and the brightest and the people conducting the interview(s) want you to succede just as much as you do.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Google will do it's best to evaluate you as accurately as possible. It's their job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Google is a data-driven company. Hiring decisions are not decided by manager fiat. Instead, each interviewer takes extensive notes during the interview which gets combined into a packet. That packet will then get reviewed by a &lt;em&gt;separate committee&lt;/em&gt;, which will ultimately make the decision. So if you just weren't 'gelling' with one of your interviewers don't worry! What matters is how well you perform on the interview.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Skills you should have&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be sure to brush up on the following skills/techniques before your interview. Even if you don't get asked a question on these directly, reviewing them can certainly get your head into the right mindset.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Data structures&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the difference between an Array and a Linked List? A Tree and a Graph? When would you use one over the other? How would that impact speed/memory tradeoffs? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;An interview question doesn't end at a working solution. Be able to explain the runtime of your approach and what sorts of trade offs you could make. For example, &quot;if I cached everything it would take X gigs of RAM but would perform faster because...&quot;. Or, &quot;if I kept the binary tree sorted while I performed the operations X would be slower, Y would be faster, etc.&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Algorithms&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basic graph traversal algorithms, tree traversal algorithms, and two good approaches for sorting numbers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure to practice solving a non-trivial problem using Dynamic Programming. That is your ace in the hole when it comes to tough interview questions!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Hash tables&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is huge. Know everything there is to know about hash tables, from being able to implement one yourself, to knowing about hashing functions, to why the number of buckets should be a prime number. The concepts involved with hash tables are relevant to just about every area of Computer Science.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Talking points about yourself&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That first few minutes of chit-chat with the interviewer is an important time to explain any sort of experience which sets you apart. Relevant projects, significant technical accomplishments, and the like. Remember, the person conducting the interview has interviewed dozens if not hundreds of smart people just like you.  So what can you say that would surprise them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, in an interview I spoke to the interviewer about a program I wrote to play the game of Go in college. It is very difficult to write an AI for the game of Go, and I have a horrible Go-bot to prove it! The bottom line is be yourself, and not just some smart person who knows how to program.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Don't stress out too much, it's just an interview like any other. Rest assured that nobody will ask you stupid questions about manhole covers or Mt. Fuji. &lt;/p&gt;&#xA;" OwnerUserId="786" LastActivityDate="2010-12-06T07:18:42.157" />
  <row Id="24053" PostTypeId="2" ParentId="24047" CreationDate="2010-12-06T07:39:40.027" Score="9" ViewCount="" Body="&lt;p&gt;The single most important change in your day to day programming life is the introduction of &lt;em&gt;generics&lt;/em&gt; which will most likely be used in every new module you will be asked to write, and it is a confusing new syntax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generics is the mechanism allowing e.g. a &lt;code&gt;List&lt;/code&gt; to contain strings instead of naked objets, where the compiler enforces that an item to be put into the the list is a String, and it knows that when you get an item out of a list it is a String.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This makes for better programs as you avoid the explicit runtime cast to the target type (which is a frequent source of errors if you get it wrong) and the IDE can help you doing all the dirty work as it knows much more about your code than it did when it was just list of objects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Joshua Bloch has written a good introduction to Generics, which is available as the sample chapter at &lt;a href=&quot;http://java.sun.com/docs/books/effective/&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/docs/books/effective/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-12-06T14:53:24.650" LastActivityDate="2010-12-06T14:53:24.650" CommentCount="3" />
  <row Id="24054" PostTypeId="2" ParentId="23891" CreationDate="2010-12-06T07:51:47.110" Score="2" ViewCount="" Body="&lt;p&gt;I was going to reply and then I saw talonx's url so:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will just add that the alternative is using something like SOAP (there are others) which allows the developer to create his own API calls and simply define them in XML (or json or whatever) so that the client machine knows how to use it (as long as the machine also knows how to parse the xml or json or whatever document that explains it).  &lt;strong&gt;This is more custom and allows you to create your own &quot;verbs&quot; also more secure since usually data is encrypted.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;REST is already defined and universal since it's basically how the HTTP protocol works&lt;/strong&gt; and so a website that complies with that is called RESTfull.  I actually learned more about it by following the URL that talonx provided :).&lt;/p&gt;&#xA;" OwnerUserId="9050" LastEditorUserId="9050" LastEditorDisplayName="" LastEditDate="2010-12-07T03:00:21.823" LastActivityDate="2010-12-07T03:00:21.823" />
  <row Id="24055" PostTypeId="2" ParentId="24047" CreationDate="2010-12-06T08:13:09.637" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Autoboxing&lt;/strong&gt; is a nice feature introduced with Java 5. Just like in C# the compiler now makes an automatic conversion between the primitive (basic) types and their corresponding object wrapper classes (int to Integer etc) and back again. That makes working with Java Collections much less pain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;For-each&lt;/strong&gt; looping was new in Java 5, too, I think. It makes iterating over arrays (and collections) easier, because it eliminates much of the usual clutter involving the setup and management of an index variable or iterators. At example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void myMethod(Collection&amp;lt;myObjectType&amp;gt; c) {&#xA;    for (myObjectType o : c)&#xA;        o.foo();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="8316" LastActivityDate="2010-12-06T08:13:09.637" />
  <row Id="24056" PostTypeId="2" ParentId="24022" CreationDate="2010-12-06T08:13:33.557" Score="3" ViewCount="" Body="&lt;p&gt;When a rule clearly doesn't apply in a given situation, don't follow it.  Every rule has at least one exception.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-06T08:13:33.557" CommentCount="1" />
  <row Id="24057" PostTypeId="2" ParentId="23810" CreationDate="2010-12-06T08:48:42.763" Score="2" ViewCount="" Body="&lt;p&gt;If you have spent the last couple of months at careercup you can afford to relax. What happens at that moment in the interview can not be planned but better be relaxed and have the energy to last the rounds.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-12-06T08:48:42.763" />
  <row Id="24058" PostTypeId="2" ParentId="23823" CreationDate="2010-12-06T09:03:00.647" Score="-1" ViewCount="" Body="&lt;p&gt;More and more students are finding &lt;a href=&quot;http://www.wiznotes.com/&quot; rel=&quot;nofollow&quot; title=&quot;Wiznotes note taking software&quot;&gt;Wiznotes&lt;/a&gt; to be useful software for taking notes. It allows students to not only take notes, but is a productivity tool to help them learn whatever they are studying.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eli Cohen&#xA;Mesoraware (Wiznotes is a division of Mesoraware)&lt;/p&gt;&#xA;" OwnerUserId="9214" LastActivityDate="2010-12-06T09:03:00.647" />
  <row Id="24059" PostTypeId="2" ParentId="23823" CreationDate="2010-12-06T09:13:09.630" Score="4" ViewCount="" Body="&lt;h2&gt;Evernote&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Because I can use it on any device and the search is superfast.&#xA;I just do WIN+Shift+F and start typing the keyword I want to find my notes for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To add a note I just do Ctrl+Alt+N and start typing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Firefox I just click the Evernote button to add the page to my notes. (it really adds the complete page, not just the URL.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can also drag files into evernote or let it monitor a folder to automatically store new documents in the cloud.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit:&#xA;Oh yeah, there's also an &quot;Add to Evernote&quot; button in Outlook.. :-)&lt;/p&gt;&#xA;" OwnerUserId="2820" LastEditorUserId="2820" LastEditorDisplayName="" LastEditDate="2010-12-06T10:20:26.763" LastActivityDate="2010-12-06T10:20:26.763" CommentCount="2" />
  <row Id="24063" PostTypeId="2" ParentId="24047" CreationDate="2010-12-06T09:34:18.697" Score="12" ViewCount="" Body="&lt;p&gt;The changes that I consider most important are:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;&lt;p&gt;Generics (e.g. typed collections, like Set)&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Enhanced for loop (for (String s : set) {...})&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Autoboxing/unboxing (automatically convert between types like Integer to int and vice versa)&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Typesafe enums (enum is now a keyword, types can be created out of enums)&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Varargs (for printf() function, allows variable number of arguments)&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Static import (can now import static methods of a class, such as java.lang.Math)&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;Annotations&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;java.util.concurrent (Demonstrates java's concurrency)&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Also read &lt;a href=&quot;http://www.oreillynet.com/onjava/blog/2006/10/what_java_are_you_aiming_for_1.html&quot; rel=&quot;nofollow&quot;&gt;What Java are you aiming for?&lt;/a&gt;, to get a better understanding of each of the three versions.&lt;/p&gt;&#xA;" OwnerUserId="4522" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-12-06T12:27:17.013" LastActivityDate="2010-12-06T12:27:17.013" CommentCount="1" />
  <row Id="24064" PostTypeId="2" ParentId="23331" CreationDate="2010-12-06T09:48:17.537" Score="1" ViewCount="" Body="&lt;h2&gt;Angered by Sloppy Code&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Paul Graham nailed it when &lt;a href=&quot;http://www.paulgraham.com/gh.html&quot; rel=&quot;nofollow&quot;&gt;he said&lt;/a&gt; “…people who are great at something are not so much convinced of their own greatness as mystified at why everyone else seems so incompetent.”&lt;/p&gt;&#xA;" OwnerUserId="4522" LastActivityDate="2010-12-06T09:48:17.537" CommunityOwnedDate="2010-12-06T09:48:17.537" />
  <row Id="24065" PostTypeId="2" ParentId="23331" CreationDate="2010-12-06T09:51:19.580" Score="6" ViewCount="" Body="&lt;h2&gt;Attention to Detail&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;There has &lt;em&gt;never ever, ever&lt;/em&gt; been a great software developer who does not have amazing attention to detail.&lt;/p&gt;&#xA;" OwnerUserId="4522" LastActivityDate="2010-12-06T09:51:19.580" CommunityOwnedDate="2010-12-06T09:51:19.580" />
  <row Id="24066" PostTypeId="1" AcceptedAnswerId="24071" CreationDate="2010-12-06T10:07:00.133" Score="1" ViewCount="157" Body="&lt;p&gt;I have thought about a project and had everything in my mind to get started. I bought a domain and hosting, build the skin and installed dotnetnuke. I know how to create the modules (had enough modules in my head that I can develop).  It can be financially very viable for me but it has been about 6 months but I have not started. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After my day job, I go home, open the laptop after some time and try to get started.  Driving home I repeatedly say to myself that I will do this and that after getting home but long stares at the monitor are not getting me anywhere. I have a problem concentrating in my day job as well (a lot nowadays). I also want to learn core java script as I have begun to get very fond of rich interfaces and found them very attractive. (I am a .NET developer). I have tried to have fun by trying &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;http://projecteuler.net/&lt;/a&gt; but i am not able to start that as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What should I do to get these things started, especially my website? &lt;/p&gt;&#xA;" OwnerUserId="8843" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-06T12:59:12.840" LastActivityDate="2010-12-06T15:30:17.437" Title="Project Dotnetnuke module selling website problem staying motivated" Tags="&lt;career&gt;&lt;self-improvement&gt;" AnswerCount="5" CommentCount="2" />
  <row Id="24067" PostTypeId="2" ParentId="24047" CreationDate="2010-12-06T10:25:23.797" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Learning by example works for me&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a quick example of idiomatic Java 6 &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class Main {&#xA;  public static void main(String[] args) {&#xA;    // Shows a list forced to be Strings only&#xA;    // The Arrays helper uses generics to identify the return type&#xA;    // and takes varargs (...) to allow arbitary number of arguments&#xA;    List&amp;lt;String&amp;gt; genericisedList = Arrays.asList(&quot;A&quot;,&quot;B&quot;,&quot;C&quot;);&#xA;&#xA;    // Demonstrates a for:each loop (read as for each item in genericisedList)&#xA;    for (String item: genericisedList) {&#xA;      System.out.printf(&quot;Using print formatting: %s%n&quot;,item);&#xA;    }&#xA;&#xA;    // Note that the object is initialised directly with a primitive (autoboxing)&#xA;    Integer autoboxedInteger = 1;&#xA;    System.out.println(autoboxedInteger);&#xA;&#xA;  }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Don't bother with Java5, it's deprecated in respect to Java6.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next step, annotations. These just define aspects to your code that allow annotation readers to fill in boilerplate configuration for you. Consider a simple web service that uses the JAX-RS specification (it understands RESTful URIs). You don't want to bother doing all the nasty WSDL and mucking about with Axis2 etc, you want a quick result. Right, do this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// Response to URIs that start with /Service (after the application context name)&#xA;@Path(&quot;/Service&quot;)&#xA;public class WebService {&#xA;&#xA;  // Respond to GET requests within the /Service selection&#xA;  @GET&#xA;  // Specify a path matcher that takes anything and assigns it to rawPathParams&#xA;  @Path(&quot;/{rawPathParams:.*}&quot;)&#xA;  public Response service(@Context HttpServletRequest request, @PathParam(&quot;rawPathParams&quot;) String rawPathParams) {&#xA;    // Do some stuff with the raw path parameters &#xA;&#xA;    // Return a 200_OK&#xA;    return Response.status(200).build();&#xA;  }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Bang. With a little sprinkle of configuration magic in your web.xml you're off. If you're building with Maven and have the Jetty plugin configured, your project will have it's own little web server right out of the box (no fiddling about with JBoss or Tomcat for you), and the above code will respond to URIs of the form:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;GET http://localhost:8080/contextName/Service/the/raw/path/params&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Job done. &lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-06T11:19:05.387" LastActivityDate="2010-12-06T11:19:05.387" />
  <row Id="24068" PostTypeId="2" ParentId="24047" CreationDate="2010-12-06T10:27:53.543" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://download.oracle.com/javase/6/docs/api/java/util/concurrent/package-summary.html&quot; rel=&quot;nofollow&quot;&gt;java.util.concurrent&lt;/a&gt; was introduced in 1.5. The best resource for learning it is (probably) the &lt;a href=&quot;http://www.javaconcurrencyinpractice.com/&quot; rel=&quot;nofollow&quot;&gt;Java Concurrency in Practice&lt;/a&gt; book. IMHO concurrency is Java's most important competitive advantage compared to anything else so it's definitely worth knowing well.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-12-06T14:25:21.033" LastActivityDate="2010-12-06T14:25:21.033" CommentCount="4" />
  <row Id="24069" PostTypeId="2" ParentId="24047" CreationDate="2010-12-06T10:36:53.207" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Enums&lt;/strong&gt;, to replace final statics and constants and help you remove references to strings and magic numbers. An example taken from the good people at &lt;a href=&quot;http://download.oracle.com/javase/1.5.0/docs/guide/language/enums.html&quot; rel=&quot;nofollow&quot;&gt;sun/oracle&lt;/a&gt; :&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public enum Planet {&#xA;    MERCURY (3.303e+23, 2.4397e6),&#xA;    VENUS   (4.869e+24, 6.0518e6),&#xA;    EARTH   (5.976e+24, 6.37814e6),&#xA;    MARS    (6.421e+23, 3.3972e6),&#xA;    JUPITER (1.9e+27,   7.1492e7),&#xA;    SATURN  (5.688e+26, 6.0268e7),&#xA;    URANUS  (8.686e+25, 2.5559e7),&#xA;    NEPTUNE (1.024e+26, 2.4746e7),&#xA;    PLUTO   (1.27e+22,  1.137e6);&#xA;&#xA;    private final double mass;   // in kilograms&#xA;    private final double radius; // in meters&#xA;    Planet(double mass, double radius) {&#xA;        this.mass = mass;&#xA;        this.radius = radius;&#xA;    }&#xA;    public double mass()   { return mass; }&#xA;    public double radius() { return radius; }&#xA;&#xA;    // universal gravitational constant  (m3 kg-1 s-2)&#xA;    public static final double G = 6.67300E-11;&#xA;&#xA;    public double surfaceGravity() {&#xA;        return G * mass / (radius * radius);&#xA;    }&#xA;    public double surfaceWeight(double otherMass) {&#xA;        return otherMass * surfaceGravity();&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public static void main(String[] args) {&#xA;        double earthWeight = Double.parseDouble(args[0]);&#xA;        double mass = earthWeight/EARTH.surfaceGravity();&#xA;        for (Planet p : Planet.values())&#xA;           System.out.printf(&quot;Your weight on %s is %f%n&quot;,&#xA;                             p, p.surfaceWeight(mass));&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-12-06T11:52:16.903" LastActivityDate="2010-12-06T11:52:16.903" />
  <row Id="24070" PostTypeId="2" ParentId="24066" CreationDate="2010-12-06T10:47:12.547" Score="1" ViewCount="" Body="&lt;p&gt;I can only guess that you already have too much work, so doing a hobby project would only make it worse. Maybe a vacation could help. I would also consider looking for hobbies that are not computer-related, e.g. sports, dancing etc.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-06T10:47:12.547" />
  <row Id="24071" PostTypeId="2" ParentId="24066" CreationDate="2010-12-06T10:48:49.943" Score="4" ViewCount="" Body="&lt;p&gt;Instead of sitting down at your PC with the intention of starting coding, have you tried writing out a project plan and specification for what you are trying to achieve? Break down the larger project into smaller tasks and write these down. That way you will have a series of manageable chunks that you can &quot;attack&quot; and solve. The smaller the tasks, the more chance you will be able to start and finish them in one sitting. Being able to see an end-in-site is important to driving your motivation. Instead of one large, far-off goal, have a series of smaller, more achievable goals. This will then hopefully give you the impetus to carry on, as often once you start you will become more motivated as you start to see progress.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another idea would be to try a different approach to development? Maybe consider trying out &lt;a href=&quot;http://en.wikipedia.org/wiki/Test-driven_development&quot; rel=&quot;nofollow&quot;&gt;Test-drive Development&lt;/a&gt;, a way of developing that goes hand-in-hand with breaking down tasks into self-contained units that can be tackled independently.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-12-06T10:48:49.943" CommentCount="2" />
  <row Id="24072" PostTypeId="2" ParentId="24005" CreationDate="2010-12-06T10:55:39.173" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I treat my personally hobby in the same manor as my commercial work. I manage it as if I was at work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use Issues logs, bug tracking &amp;amp; source control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find this helps me keep focus on my hobby projects and see it through to completion.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-06T10:55:39.173" />
  <row Id="24073" PostTypeId="2" ParentId="24036" CreationDate="2010-12-06T11:00:50.810" Score="7" ViewCount="" Body="&lt;p&gt;A good developer should know &lt;strong&gt;when&lt;/strong&gt; it is appropriate to use XML and when it is not. This requires understanding the concepts behind it and the reasons for its use. That way you can make an informed decision on whether you need to utilise it in a specific scenario. But there's no reason to start learning the mechanics of XPATH, XSLT etc. and the finer points of syntax until you actually need to.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-12-06T11:00:50.810" />
  <row Id="24074" PostTypeId="2" ParentId="23823" CreationDate="2010-12-06T11:09:27.657" Score="1" ViewCount="" Body="&lt;p&gt;Evernote is awesome for mobile capture.  Everything from quick random ideas or if I see something I like.  I use Toodledo for all tasks.  Their iPhone app means I can add a to do item anywhere or mark it done for that matter.  Of course, it syncs w/ the web version too.  For general reference - my brother and I couldn't really find a good solution.  Google Docs was too cumbersome and didn't really manage folders very well.  We decided to pursue building our own &lt;a href=&quot;http://digipim.com&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="9220" LastActivityDate="2010-12-06T11:09:27.657" />
  <row Id="24075" PostTypeId="2" ParentId="24022" CreationDate="2010-12-06T11:17:32.030" Score="2" ViewCount="" Body="&lt;h2&gt;Coward:&lt;/h2&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Is the one who does not &lt;strong&gt;kill&lt;/strong&gt; his own bug out of fear&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-06T11:17:32.030" />
  <row Id="24076" PostTypeId="2" ParentId="23331" CreationDate="2010-12-06T11:19:01.407" Score="1" ViewCount="" Body="&lt;h2&gt;Laziness&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;, of course!&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;We lazy to manually validate 10mb+ excel file and we write a script&lt;/li&gt;&#xA;&lt;li&gt;We lazy to visit 10+ dev sites every time we surf internet, and we subscribe to RSS&lt;/li&gt;&#xA;&lt;li&gt;We lazy to visit a doctor when feel not good, and google the symptoms to find out what to do with this illness: calm down or run to doctor right now!&lt;/li&gt;&#xA;&lt;li&gt;We lazy to walk with girlfriend every evening in the park - we buy a laptop for her with installed The SIMS or unlim access to internet&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;etc.&lt;/p&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-12-06T11:19:01.407" CommunityOwnedDate="2010-12-06T11:19:01.407" />
  <row Id="24077" PostTypeId="1" CreationDate="2010-12-06T11:21:31.900" Score="22" ViewCount="1136" Body="&lt;p&gt;Are short identifiers bad? How does identifier length correlate with code comprehension? What other factors (besides code comprehension) might be of consideration when it comes to naming identifiers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just to try to keep the quality of the answers up, please note that there is &lt;a href=&quot;http://infoscience.epfl.ch/record/138586&quot; rel=&quot;nofollow&quot;&gt;some&lt;/a&gt; &lt;a href=&quot;http://evergreen.loyola.edu/chm/www/Papers/SCP2009.pdf&quot; rel=&quot;nofollow&quot;&gt;research&lt;/a&gt; on the subject already!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Curious that everyone either doesn't think length is relevant or tend to prefer larger identifiers, when both links I provided indicate large identifiers are harmful!&lt;/p&gt;&#xA;" OwnerUserId="5719" LastEditorUserId="5719" LastEditorDisplayName="" LastEditDate="2010-12-06T16:34:57.543" LastActivityDate="2011-05-10T22:24:21.190" CommunityOwnedDate="2011-01-06T21:58:42.770" Title="Are short identifiers bad?" Tags="&lt;best-practices&gt;" AnswerCount="16" CommentCount="4" FavoriteCount="4" />
  <row Id="24078" PostTypeId="2" ParentId="24077" CreationDate="2010-12-06T11:30:30.300" Score="2" ViewCount="" Body="&lt;p&gt;My thinking is that they are not &lt;em&gt;bad&lt;/em&gt; in themselves but they are uninformative unless they are very standard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So loop variables being &lt;em&gt;i, j&lt;/em&gt; and &lt;em&gt;k&lt;/em&gt; is so standard that there is no reason not to use them if you are creating an indexed loop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other place I will use a very short identifier is when I'm declaring a temporary variable that will go out of scope in a few lines time- the temporary variable from a foreach loop, for example. If it's not going to be referred to anywhere else then it's easy for anyone reading the code to see the declaration and follow what it is being used for. If it's going to be used for more than five or six lines, though, I'll be looking to give it a clearer name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond that I try to use informative length identifiers- particularly at a class level I want an identifier that you can read and get an idea of what the variable is for. If they are getting too long ( and I do see code sometimes with four or five words strung together for an identifier ) I tend to regard that as a code smell - if I need that much text to distinguish my variables are they actually a group that could be better stored in a hashmap or list? Could I be creating some kind of object to model this data more accurately? Sometimes you can't but a very long identifier is an indicator that there is something worth looking at here.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-12-06T11:30:30.300" CommunityOwnedDate="2011-01-06T21:58:42.770" />
  <row Id="24079" PostTypeId="1" CreationDate="2010-12-06T11:36:21.633" Score="2" ViewCount="103" Body="&lt;p&gt;What apsects of Java are the most diificult to learn when coming from such a background?  What common mistakes do people make ? What are the top timesaving and produtivtity increasing tricks ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you had a room of C/PHP coders who were about to start development using Java what advise would you give ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is my list of topics so far (in no particular order):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Use jodatime instead of the standard&#xA;library , and also less importantly&#xA;the guava library.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Arrays are zero indexed&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I'd also highlight the&#xA;pass-by-value/reference aspects of&#xA;Java, and the fact that&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;String s1 = new String(&quot;test&quot;); &#xA;String s2 = new String(&quot;test&quot;); &#xA;if(s1 == s2) // will be false &#xA;if(s1.equals(s2)) // will be true&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/blockquote&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Introduce the concept of design&#xA;patterns and give a quick overview.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Introduce Spring (it will be used) and the concept of&#xA;dependency injection&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Is there anything obvious I am missing.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-12-06T11:50:59.180" LastActivityDate="2010-12-06T12:58:50.003" Title="What are the common mistakes when you are a good coder in C and PHP and you start coding in Java ? What are good tips when switching ?" Tags="&lt;java&gt;&lt;php&gt;&lt;c&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="24080" PostTypeId="2" ParentId="23863" CreationDate="2010-12-06T11:36:32.240" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Separation of theory &amp;amp; Practice:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my mind, I think theory will be always relevant for example a linked list will always be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The practical aspect (in terms of specific technologies) will naturally decay as soon as newer technologies replace them.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-06T11:36:32.240" />
  <row Id="24081" PostTypeId="2" ParentId="24077" CreationDate="2010-12-06T11:38:31.493" Score="52" ViewCount="" Body="&lt;p&gt;The best &quot;rule&quot; I've heard is that name lengths should be proportional to the length of the scope of the variable. So an index &lt;code&gt;i&lt;/code&gt; is fine if the body of the loop is a few lines long, but I like to use something a little more descriptive if it gets to be longer than 15ish lines.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-12-06T11:38:31.493" CommunityOwnedDate="2011-01-06T21:58:42.770" CommentCount="11" />
  <row Id="24082" PostTypeId="2" ParentId="24077" CreationDate="2010-12-06T11:41:38.663" Score="12" ViewCount="" Body="&lt;p&gt;I will use an identifier that describes the variable, irrespective of length.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The cases of &lt;em&gt;i,j and k&lt;/em&gt; are in themselves so ubiquitous they are self describing, you automatically know they are loop indices.  You could also say the same for  :&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;code&gt;foreach loop (Strings s : myString)&lt;/code&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;However, IDE's now provide code completion tools so the only negative side effect of very long and descriptive identifiers has been removed afaik. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;I will happily add and extra word to an identifier, if its required to explain the purpose of the variable.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="3704" LastEditorDisplayName="" LastEditDate="2011-05-10T21:54:25.060" LastActivityDate="2011-05-10T21:54:25.060" CommunityOwnedDate="2011-01-06T21:58:42.770" CommentCount="6" />
  <row Id="24083" PostTypeId="2" ParentId="24077" CreationDate="2010-12-06T11:44:58.987" Score="36" ViewCount="" Body="&lt;p&gt;Each variable should have a meaning, and its name is a part of that meaning. And a very important part, since it helps the reader to understand what it is for without digging deeper into algorithm. &lt;code&gt;i&lt;/code&gt;, &lt;code&gt;j&lt;/code&gt; are obvious to be used as indices, they are short, but very informative. &lt;code&gt;bnt&lt;/code&gt; is ugly, &lt;code&gt;close&lt;/code&gt; or &lt;code&gt;closeButton&lt;/code&gt; are meaningful. So being short or long is not the most important criterion for the variable name, it should be meaningful. The meaningfulness strongly depends on the context. For example, you can give a very short name like &lt;code&gt;n&lt;/code&gt; to the local string variable which is used in a small block of the code say 10 lines and refers to the name of a property (&lt;code&gt;v&lt;/code&gt; for value is another example).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So &lt;strong&gt;variable names should be informative and it doesn't matter they short or long&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-06T11:44:58.987" CommunityOwnedDate="2011-01-06T21:58:42.770" CommentCount="3" />
  <row Id="24084" PostTypeId="2" ParentId="24036" CreationDate="2010-12-06T11:52:55.433" Score="1" ViewCount="" Body="&lt;p&gt;Until they find a better way to structure text, I will use XML! :)&lt;/p&gt;&#xA;" OwnerUserId="3814" LastActivityDate="2010-12-06T11:52:55.433" CommentCount="3" />
  <row Id="24085" PostTypeId="2" ParentId="24077" CreationDate="2010-12-06T11:56:50.643" Score="3" ViewCount="" Body="&lt;p&gt;I agree very much with the other answers here, but would like to point out one other factor that I think is often overlooked. A good name is often one that is idiomatic to the code. This can be on a language level, algorithm level or some internal idioms for the codebase at hand. The point is that while the name may mean nothing to someone that does not know the domain of the code, it may still be the best name in the given context.&lt;/p&gt;&#xA;" OwnerUserId="8718" LastActivityDate="2010-12-06T11:56:50.643" CommunityOwnedDate="2011-01-06T21:58:42.770" />
  <row Id="24086" PostTypeId="2" ParentId="10651" CreationDate="2010-12-06T12:00:16.423" Score="2" ViewCount="" Body="&lt;p&gt;Do a PhD. Then either apply for grants or jobs in the private sector.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-12-06T12:00:16.423" />
  <row Id="24087" PostTypeId="2" ParentId="24022" CreationDate="2010-12-06T12:05:11.717" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Don%27t_repeat_yourself&quot; rel=&quot;nofollow&quot;&gt;DRY&lt;/a&gt;!&lt;/p&gt;&#xA;" OwnerUserId="5014" LastActivityDate="2010-12-06T12:05:11.717" />
  <row Id="24088" PostTypeId="2" ParentId="24047" CreationDate="2010-12-06T12:12:36.097" Score="3" ViewCount="" Body="&lt;p&gt;Well, &lt;a href=&quot;http://download.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;StringBuilder&lt;/code&gt;&lt;/a&gt; helped me to speed up my program. It is an equivalent of the &lt;a href=&quot;http://download.oracle.com/javase/6/docs/api/java/lang/StringBuffer.html&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;StringBuffer&lt;/code&gt;&lt;/a&gt; without thread safety.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-06T12:12:36.097" CommentCount="3" />
  <row Id="24089" PostTypeId="2" ParentId="24079" CreationDate="2010-12-06T12:17:19.877" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The automatic garbage collecting doesn't mean that you should give up memory usage optimization.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-06T12:17:19.877" />
  <row Id="24090" PostTypeId="2" ParentId="24077" CreationDate="2010-12-06T12:23:07.237" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I struggle...&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use to always use descriptive names as identifiers, but of late I've used very short identifiers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think, it depends on the context of the code:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If your writing complex functions (algorithms), then ALWAYS use short identifiers (single characters are best)&lt;/li&gt;&#xA;&lt;li&gt;When writing Parameter values for functions use descriptive names.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I guess it depends on also how dense the code is. Sometimes having names actually makes it more difficult to read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes without names its totally cryptic!&lt;/p&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-06T12:57:04.527" LastActivityDate="2010-12-06T12:57:04.527" CommunityOwnedDate="2011-01-06T21:58:42.770" CommentCount="6" />
  <row Id="24091" PostTypeId="2" ParentId="23848" CreationDate="2010-12-06T12:56:59.970" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Tactics for engaging a senior developer in a discussion&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Pick a time when they're not busy clacking away on the keyboard (coffee machine is good)&lt;/li&gt;&#xA;&lt;li&gt;Don't be argumentative, you're not trying to disprove their approach, only to gain an overall understanding of what they consider important&lt;/li&gt;&#xA;&lt;li&gt;Build up a rapport by referring to previous question and answer sessions so that they can see that you're developing as a developer&lt;/li&gt;&#xA;&lt;li&gt;Ask their opinion on an approach you have taken with something, have it ready to show on your machine if they express an interest&lt;/li&gt;&#xA;&lt;li&gt;Keep a pile of books on your desk (and refer to them) so they can see that you are readying around your subject, ask their opinion on those books and which ones you could benefit from reading&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Above all, always be polite especially if you disagree with something. &lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-06T12:56:59.970" />
  <row Id="24092" PostTypeId="2" ParentId="24079" CreationDate="2010-12-06T12:58:50.003" Score="0" ViewCount="" Body="&lt;p&gt;The biggest thing about Java compared with the languages you are talking about is the whole deal with Object Orientation. You can get by as a C or PHP programmer working almost entirely in a procedural way and if you want to be any good at Java you need to understand Object Orientation and understand it well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can make sure they have learned that, not only will it make them better Java programmers, but it will be useful to them with any other languages they learn in future.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-12-06T12:58:50.003" CommentCount="5" />
  <row Id="24093" PostTypeId="2" ParentId="10651" CreationDate="2010-12-06T13:01:41.320" Score="1" ViewCount="" Body="&lt;p&gt;Your best shot it to get at least a masters degree.  You may get lucky, but most interesting R&amp;amp;D positions require smart people and a higher degree is like a &quot;smart persons badge&quot; to a typical HR person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You learn lots of interesting things doing a good Uni degree that are hard to pick up in a boring coding job.  And you will start learn &lt;em&gt;how&lt;/em&gt; to do the R part of R&amp;amp;D.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From there you can decide whether you are better suited to academia or industry.  A PhD is pretty much essential for an academic career, and is also useful if you want to land an R&amp;amp;D position with a top rank IT company like Google, IBM, Microsoft, Oracle and so on.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-12-06T13:01:41.320" />
  <row Id="24094" PostTypeId="2" ParentId="5267" CreationDate="2010-12-06T13:18:13.477" Score="1" ViewCount="" Body="&lt;p&gt;I hired a guy to do some work around my house a few months ago. He came highly recommended, I've seen work he's done, seemed like he knew his stuff. He made me a quote, I accepted it, I paid him part of it up front. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then he vanished. When he turned up again there was no mention of the fact that his start date had blown by without comment. When I asked him, it was all &quot;gee man you know how it is&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thing is, I would have had NO PROBLEM with him starting later than he said, if he'd just &lt;em&gt;told me&lt;/em&gt; that was what needed to happen. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Somebody on this thread said, &quot;Deadlines get missed.&quot; In my view, that's the MAIN thing deadlines do. It happens literally ALL the time. And it's only a problem if you leave people out of the loop about what to expect.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-06T13:18:13.477" />
  <row Id="24095" PostTypeId="2" ParentId="24047" CreationDate="2010-12-06T13:27:45.530" Score="2" ViewCount="" Body="&lt;p&gt;Wow that was a blast from the past! I've not used Java for 4 years now - and nothing has changed at all in that time!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a &lt;a href=&quot;http://en.wikipedia.org/wiki/Java_version_history#J2SE_5.0_.28September_30.2C_2004.29&quot; rel=&quot;nofollow&quot;&gt;list of features by version&lt;/a&gt;, but here's the important bit (plagiarised of course)...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;J2SE 5.0 (September 30, 2004)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Generics: Provides compile-time (static) type safety for collections and eliminates the need for most typecasts (type conversion).&lt;/li&gt;&#xA;&lt;li&gt;Metadata: Also called annotations; allows language constructs such as classes and methods to be tagged with additional data, which can then be processed by metadata-aware utilities. &lt;/li&gt;&#xA;&lt;li&gt;Autoboxing/unboxing: Automatic conversions between primitive types (such as int) and primitive wrapper classes (such as Integer).&lt;/li&gt;&#xA;&lt;li&gt;Enumerations: The enum keyword creates a typesafe, ordered list of values (such as Day.MONDAY, Day.TUESDAY, etc.). Previously this could only be achieved by non-typesafe constant integers or manually constructed classes (typesafe enum pattern).&lt;/li&gt;&#xA;&lt;li&gt;Swing: New skinnable look and feel, called synth.&lt;/li&gt;&#xA;&lt;li&gt;Varargs: The last parameter of a method can now be declared using a type name followed by three dots (e.g. void drawtext(String... lines)). In the calling code any number of parameters of that type can be used and they are then placed in an array to be passed to the method, or alternatively the calling code can pass an array of that type.&lt;/li&gt;&#xA;&lt;li&gt;Enhanced for each loop: The for loop syntax is extended with special syntax for iterating over each member of either an array or any Iterable, such as the standard Collection classes, using a construct of the form:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Java SE 6 (December 11, 2006)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Support for older Win9x versions dropped. Unofficially Java 6 Update 7 is the last release of Java shown to work on these versions of Windows. This is believed to be due to the major changes in Update 10.&lt;/li&gt;&#xA;&lt;li&gt;Scripting Language Support: Generic API for tight integration with scripting languages, and built-in Mozilla JavaScript Rhino integration&lt;/li&gt;&#xA;&lt;li&gt;Dramatic performance improvements for the core platform, and Swing.&lt;/li&gt;&#xA;&lt;li&gt;Improved Web Service support through JAX-WS &lt;/li&gt;&#xA;&lt;li&gt;JDBC 4.0 support.&lt;/li&gt;&#xA;&lt;li&gt;Java Compiler API an API allowing a Java program to select and invoke a Java Compiler programmatically.&lt;/li&gt;&#xA;&lt;li&gt;Upgrade of JAXB to version 2.0: Including integration of a StAX parser.&lt;/li&gt;&#xA;&lt;li&gt;Support for pluggable annotations&lt;/li&gt;&#xA;&lt;li&gt;Many GUI improvements, such as integration of SwingWorker in the API, table sorting and filtering, and true Swing double-buffering (eliminating the gray-area effect).&lt;/li&gt;&#xA;&lt;li&gt;JVM improvements include: synchronization and compiler performance optimizations, new algorithms and upgrades to existing garbage collection algorithms, and application start-up performance.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That's about it. Java SE 7.0 looks more interesting but isn't released yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Considering how many new language features and APIs have been added to C# in the last 4 years, I'm quite astonished. What's been going on at Sun/Oracle?&lt;/p&gt;&#xA;" OwnerUserId="8811" LastActivityDate="2010-12-06T13:27:45.530" CommentCount="2" />
  <row Id="24096" PostTypeId="2" ParentId="24066" CreationDate="2010-12-06T13:27:58.477" Score="2" ViewCount="" Body="&lt;p&gt;The coming home from work and coding obviously isn't working. Pick another time and/or place when you're more productive. Be honest and don't get some crazy idea about waking up at 5:00 AM and coding before work, if you can barely get your ass to work on time as it is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You take a laptop to work; try doing some on your lunch break, come in early, or leave a little later. Try a net cafe? After work, don't go straight home. Give yourself a little time to unwind. I've found an hour or two right before I go to bed can be productive; but that's just me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Create a one day programming schedule. Keep repeating this. If you feel like you could do a one week schedule, try it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find someone who would review your site. Sort of like having a training partner. They may be able to give you a reason to code something and eventually provide feedback on the site. Post your site here. We'll give you feedback.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-06T13:27:58.477" />
  <row Id="24097" PostTypeId="1" AcceptedAnswerId="24152" CreationDate="2010-12-06T13:30:56.227" Score="15" ViewCount="904" Body="&lt;p&gt;This question might make more sense to somebody having multi-threaded programming experience in Java/ C++ with some job experience in London/ Singapore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a huge market of Investment Banking development jobs with &lt;b&gt;astonishingly high salaries&lt;/b&gt; (sometimes more than &gt;100K pounds per annum). Can someone with experience as a front office/ trading developer tell what is required to land into such a job, and also what is the downside one should be ready for?&lt;/p&gt;&#xA;" OwnerUserId="9223" LastActivityDate="2011-04-08T13:42:09.300" Title="High Salaried Investment Banking Jobs for Developers — What are the pitfalls?" Tags="&lt;job-market&gt;" AnswerCount="11" CommentCount="5" FavoriteCount="3" />
  <row Id="24098" PostTypeId="2" ParentId="24077" CreationDate="2010-12-06T13:34:17.487" Score="1" ViewCount="" Body="&lt;p&gt;An observation that I have had over the years and it's less so today than it was 10 or 15 years ago.  Programmers that can't type are the one that will fight you tooth and nail over variable naming.  They are the ones with all the 1-3 letter variable names.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my advice is use a meaningful name as many commenters have said and then learn to type.  I have been considering adding a typing test to interviews, just to see where people are, but I am starting to see a lot less of the non-typers as computers become a bigger part of society.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-12-06T13:34:17.487" CommunityOwnedDate="2011-01-06T21:58:42.770" CommentCount="2" />
  <row Id="24099" PostTypeId="2" ParentId="1600" CreationDate="2010-12-06T13:37:05.257" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;When you are asking it here,&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact that you are asking it, may indicate its already time. In the end its something you need to really ask yourself truthfully.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is it that you hate most?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you tired of learning?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you feel there is no longer any challenges? &lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-06T13:37:05.257" />
  <row Id="24100" PostTypeId="2" ParentId="12216" CreationDate="2010-12-06T13:37:12.467" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Ctrl + D = Duplicate current line/selection&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.jetbrains.com/resharper/&quot; rel=&quot;nofollow&quot;&gt;ReSharper&lt;/a&gt; has it, as does &lt;a href=&quot;http://notepad-plus-plus.org/&quot; rel=&quot;nofollow&quot;&gt;Notepad++&lt;/a&gt;. I use it all the time. I totally take it for granted until I sit down at someone else's PC and they don't have ReSharper. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft seems to be shamelessly copying any innovations that ReSharper add. Visual Studio 2010 adds some stuff that ReSharper's had for ages - like the F2 rename refactor feature.&lt;/p&gt;&#xA;" OwnerUserId="8811" LastEditorUserId="8811" LastEditorDisplayName="" LastEditDate="2010-12-06T23:32:49.440" LastActivityDate="2010-12-06T23:32:49.440" CommunityOwnedDate="2011-05-26T08:44:03.797" CommentCount="3" />
  <row Id="24101" PostTypeId="2" ParentId="24005" CreationDate="2010-12-06T13:37:28.983" Score="2" ViewCount="" Body="&lt;p&gt;Time tracking is useful for determining your capacity as a programmer.  It tells you how accurate your estimating is. It is useful for forecasting future work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So this would be important if your fun programming is going to turn into something you start bidding projects based on.  If it's truly just for fun don't muck up something fun by putting in extra work you don't need.  Spend that extra 5 to 10 minutes a day writing in your blog/journal about what you did today and why it was cool.  That will have a much better payoff both personally and professionally.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-12-06T13:37:28.983" />
  <row Id="24102" PostTypeId="2" ParentId="24047" CreationDate="2010-12-06T13:38:44.830" Score="4" ViewCount="" Body="&lt;p&gt;I'll help by categorising the helpful answer from @ykombinator. His list is a list of the elements that you will use on a daily basis while doing &quot;general&quot; java development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Low impact and low difficulty:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Enhanced for loop (for (String s : set) {...})&lt;/li&gt;&#xA;&lt;li&gt;Autoboxing/unboxing (automatically convert between types like Integer to int and vice versa)&lt;/li&gt;&#xA;&lt;li&gt;Varargs (for printf() function, allows variable number of arguments)&lt;/li&gt;&#xA;&lt;li&gt;Static import (can now import static methods of a class, such as java.lang.Math)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;High Impact and medium difficulty:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Typesafe enums (enum is now a keyword, types can be created out of enums)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;High Impact and high difficulty:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Annotations&lt;/li&gt;&#xA;&lt;li&gt;Generics&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Low impact and high difficult (will only use unless you do advanced threading)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;java.util.concurrent (Demonstrates java's concurrency)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I would suggest therefore that you read through the docs/help on low impact low difficult pieces - they're easy to pick up.&#xA;Spend a lo tof time on Annotations and Generics - annotations are &lt;em&gt;very&lt;/em&gt; useful, and generics can get rather complicated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only look at the new concurrency content if you need to do threading.&lt;/p&gt;&#xA;" OwnerUserId="3735" LastActivityDate="2010-12-06T13:38:44.830" CommentCount="1" />
  <row Id="24103" PostTypeId="2" ParentId="24097" CreationDate="2010-12-06T13:39:33.443" Score="14" ViewCount="" Body="&lt;p&gt;Insane amount of politics and cut-throat competition in the name of &quot;networking&quot;. Situation becomes worse during year end when they start firing everyone to maintain the bonus pool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, you should be prepared to do a fair deal of maintenance and production support. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't mind compromising on the above for the fat pay packet, go ahead.&lt;/p&gt;&#xA;" OwnerUserId="2861" LastActivityDate="2010-12-06T13:39:33.443" />
  <row Id="24104" PostTypeId="2" ParentId="23823" CreationDate="2010-12-06T13:45:54.233" Score="1" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://moinmo.in/&quot; rel=&quot;nofollow&quot;&gt;MoinMoin&lt;/a&gt;, another wiki engine, for small notes, or links to articles I find on the web for a technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For longer bits of learning I use my blog, or well documented sample code that I stash in a Learning folder (actually a Subversion repository that I'm moving to Mercurial)&lt;/p&gt;&#xA;" OwnerUserId="2706" LastActivityDate="2010-12-06T13:45:54.233" />
  <row Id="24105" PostTypeId="1" CreationDate="2010-12-06T13:46:20.613" Score="2" ViewCount="218" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/7861/when-deciding-on-whether-or-not-to-work-for-a-new-company-what-are-your-dealbrea&quot;&gt;When deciding on whether or not to work for a new company, what are your dealbreakers?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;i.e. the non verbal clues as to whether or not you'd work somewhere&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, one alarm bell is Dilbert comics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Funny though they may be, when I seem them taped on cubicles, I see the acceptable face of petty rebellion. (my jobs/company sucks, I'm too much of a pussy to do anything about it so here's my act of defiance, F*** YEA!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are yours?&lt;/p&gt;&#xA;" OwnerUserId="160" LastActivityDate="2010-12-06T14:09:56.370" ClosedDate="2010-12-06T14:53:15.157" Title="What are your litmus tests for potential employers?" Tags="&lt;jobs&gt;&lt;interview&gt;&lt;employment&gt;&lt;employer&gt;&lt;test&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="2" />
  <row Id="24106" PostTypeId="2" ParentId="24097" CreationDate="2010-12-06T13:48:57.740" Score="2" ViewCount="" Body="&lt;p&gt;Many traders work 7am to 10pm and expect you to do the same. The twist is, they get millions every year and retire around age 40.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-12-06T13:48:57.740" CommentCount="1" />
  <row Id="24107" PostTypeId="1" AcceptedAnswerId="24110" CreationDate="2010-12-06T13:49:45.643" Score="14" ViewCount="681" Body="&lt;p&gt;Recently and quite often, people with no programming background come and say they have this great idea that can be the next big thing and that the idea(s) is worth a fortune by itself. Then as they know I'm a programmer, they ask me if I'm willing to &quot;code it up&quot; for them or find someone willing to do it for next to nothing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Judging from the enthusiasm, it's like they're drunk on their idea and that that by itself is the most important thing, but they just need a programmer. My response to them, depending on my mood and their general attitude towards what we do, is something along the lines of:&lt;br&gt;&#xA;&quot;Having the core of an idea is one thing. Developing it to the point that it becomes a platform that changes the world in which it lives is another, and you're going to be willing to pay proportionately to how big you think your idea is worth.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you been approached by these business type entrepreneurs (with no technical/developer's knowledge) with such a proposal and how do you react to them?&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2011-03-03T03:42:09.850" Title="How do you react to non-programmers with ideas of 'The Next Big Thing' ?" Tags="&lt;entrepreneurship&gt;" AnswerCount="12" CommentCount="4" FavoriteCount="1" />
  <row Id="24108" PostTypeId="2" ParentId="24005" CreationDate="2010-12-06T13:50:35.173" Score="2" ViewCount="" Body="&lt;p&gt;If you're idea of a good time is counting and tracking things, then go for it. I'd rather get lost/zoned out/lose track of time in a hobby project. Chances are you would have to code completely different, track time, bill, take requests, if you wanted to sell it. Sounds too much like work. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-06T13:50:35.173" CommentCount="1" />
  <row Id="24109" PostTypeId="2" ParentId="24105" CreationDate="2010-12-06T13:53:20.527" Score="10" ViewCount="" Body="&lt;p&gt;For me it starts during the interview.  If I can't get the interviewer to laugh then I seriously consider whether or not I want to work there.  It's not the only factor in the decision, but it is one of the hurdles.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-06T13:53:20.527" CommentCount="2" />
  <row Id="24110" PostTypeId="2" ParentId="24107" CreationDate="2010-12-06T13:55:01.850" Score="13" ViewCount="" Body="&lt;p&gt;If they are only willing to pay next to nothing, that means they really don't believe in the idea.  They just want to try a long shot and see if they get lucky.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually respond with something along the lines of &quot;you get what you pay for&quot; for development services, and if they don't want to pay anything, they aren't likely to get much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they say they'll give you stake in the company, that's a bit different, then you have to evaluate how you feel it will do as the next big thing.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-06T13:55:01.850" CommentCount="5" />
  <row Id="24111" PostTypeId="2" ParentId="24107" CreationDate="2010-12-06T13:58:57.060" Score="6" ViewCount="" Body="&lt;p&gt;If the person has a lot of domain experience, they may have more than just an idea. Now whether or not they're willing to make any type of commitment is another thing. Will they help you with design and testing and do they know anyone else in their situation that would buy it? Better yet, would they help you sell it to those people? Are they well liked in their industry?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example: A person walks into a store and notices a clerk doing a paper and pencil inventory and thinks, &quot;Wow, someone should program a smart phone app to take inventory.&quot; Another person says, &quot;I've been running a store for 10 years and nobody has built a descent smart phone app that does XYZ and I've met a lot of other store owners at conventions...&quot; This might be a person to take a little more seriously.&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2011-03-02T21:59:59.050" LastActivityDate="2011-03-02T21:59:59.050" />
  <row Id="24112" PostTypeId="2" ParentId="24097" CreationDate="2010-12-06T14:02:00.547" Score="5" ViewCount="" Body="&lt;p&gt;You have sold your soul for money.  However, souls do apparently bring in a good price.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say if you can put in the hours and tolerate the conditions, go for it.  I was never good at navigating the political BS that goes on, after about 5 years of it I took a 30% pay cut and went with somewhere I can be happy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry, I wasn't even in the high stakes investment banking, just normal banking with high-risk mortgage accounts.  Investment trading is way worse.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastEditorUserId="8451" LastEditorDisplayName="" LastEditDate="2010-12-06T14:32:59.853" LastActivityDate="2010-12-06T14:32:59.853" />
  <row Id="24113" PostTypeId="2" ParentId="24107" CreationDate="2010-12-06T14:02:12.080" Score="11" ViewCount="" Body="&lt;p&gt;I ask leading questions, try to figure out how much of their idea they actually thought through and whether or not they understand how much work will be involved or if they think of programmers as just a commodity. To a lot of people software development is magic and they treat it as a minor task item. After all, some kid wrote Facebook, so it can't be that difficult, can it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they show that they understand the problem domain, I would take them seriously, otherwise not so much.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-06T14:02:12.080" />
  <row Id="24114" PostTypeId="2" ParentId="23816" CreationDate="2010-12-06T14:03:02.360" Score="1" ViewCount="" Body="&lt;p&gt;I remember those old books. I didn't actually own one, but I do remember flipping through the pages of one at the time and thinking that the programs were a bit too simplistic. (I was into BBC Basic with inline assembler at the time). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://yois.if-legends.org/books.php&quot; rel=&quot;nofollow&quot;&gt;Ye Olde Infocomme Shoppe maintains a list of old book titles&lt;/a&gt; that may be of interest. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're thinking of writing something like this yourself, perhaps consider BBC Basic and then linking to an online BBC Basic interpreter &lt;a href=&quot;http://www.compulink.co.uk/~rrussell/bbcwin/manual/bbcwin0.html&quot; rel=&quot;nofollow&quot;&gt;or one for Windows&lt;/a&gt; which will allow you to provide simple to understand programs that can be typed in (that's important, no simple linking to an external website for instant download) and executed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll be targeting a niche market, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, if you publish this online you could have fun creating your own language and getting people to write programs for it through the browser. Your site could present problems that need to be solved using code before they can progress. This could be achieved using a similar process to the &lt;a href=&quot;http://en.wikipedia.org/wiki/International_Mathematical_Olympiad&quot; rel=&quot;nofollow&quot;&gt;Mathematics Olympics&lt;/a&gt; where unit tests verify the solutions.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-06T14:03:02.360" CommentCount="1" />
  <row Id="24115" PostTypeId="2" ParentId="24105" CreationDate="2010-12-06T14:05:05.840" Score="3" ViewCount="" Body="&lt;p&gt;For me it will be high % of people wearing ties or suits. Too much of formal environment somehow repels me. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-06T14:05:05.840" CommentCount="3" />
  <row Id="24116" PostTypeId="2" ParentId="24097" CreationDate="2010-12-06T14:08:37.153" Score="16" ViewCount="" Body="&lt;p&gt;If you're talking front office/trading developer then there's a few gotchas :).  This isn't true in all places I've seen, but there's stuff to be aware of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1.)  You need great business knowledge, if you don't have that you're not going to land that role.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2.)  You'll almost certainly be working on legacy/old/proprietary software, so think Java 1.4 or C++ with no useful helper libs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3.)  You'll probably be expected to be a whiz at concurrency and inter operating with MS office apps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4.)  The business don't care about IT, you're generally seen as a tool.  Arguments to improve process or get them to actually engage in projects usually fails &quot;I'm too busy trading - I'm not going to spend time answering your questions, having stand-ups or your other hippy crap.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5.)  Long hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pay can be great and assuming you're part of the bonus pool that can be good as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're going to do it, do yourself a favour and make sure you spend time with the broader technical community, helps keep your perspective and hopefully keeps your interest in the tech going.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-06T14:08:37.153" CommentCount="2" />
  <row Id="24117" PostTypeId="2" ParentId="24105" CreationDate="2010-12-06T14:09:12.997" Score="9" ViewCount="" Body="&lt;p&gt;For me it's the questions they ask.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If an interview revolves around asking low-detail technical questions and no other questions are being asked, then it is a really bad sign.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What other questions? What I've been up to so far, what interests and motivates me, what person I am, what I'd like to be doing, my opinions towards commons programming problems and tasks. This has to be asked. If it's not, they're looking for a code monkey even if they don't realize that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quoting Joel Spolsky:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The second worst kind of interviewer is the Quiz Show Interviewer. This is the kind of person who thinks that smart means “knows a lot of facts.” They just ask a bunch of trivia questions about programming and give points for correct answers. Just for fun, here is the worst interview question on Earth: “What’s the difference between varchar and varchar2 in Oracle 8i?” This is a terrible question. There is no possible, imaginable correlation between people that know that particular piece of trivia and people that you want to hire. Who cares what the difference is? You can find out online in about fifteen seconds! Remember, smart does not mean “knows the answer to trivia questions.” Anyway, software teams want to hire people with aptitude, not a particular skill set. Any skill set that people can bring to the job will be technologically obsolete in a couple of years, anyway, so it’s better to hire people that are going to be able to learn any new technology rather than people who happen to know how to make JDBC talk to a MySQL database right this minute.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(From &lt;a href=&quot;http://new.joelonsoftware.com/articles/GuerrillaInterviewing3.html&quot; rel=&quot;nofollow&quot;&gt;The Guerrilla Guide to Interviewing&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-06T14:09:12.997" />
  <row Id="24118" PostTypeId="2" ParentId="24105" CreationDate="2010-12-06T14:09:56.370" Score="3" ViewCount="" Body="&lt;p&gt;I went for an interview once where I saw on the bookshelf behind a senior manager's desk who was interviewing me a bunch of Dianetics (Scientology) books. I couldn't get out of there fast enough.&lt;/p&gt;&#xA;" OwnerUserId="4441" LastActivityDate="2010-12-06T14:09:56.370" CommentCount="1" />
  <row Id="24119" PostTypeId="2" ParentId="24036" CreationDate="2010-12-06T14:20:46.167" Score="1" ViewCount="" Body="&lt;p&gt;XML is a tool, and like any tool it works better for some purposes than others. There is some debate about whether XML is the best tool for the purposes it's good at. My personal opinion is that JSON and s-expressions are both better alternatives for data interchange. In any case, knowing about XML as an option is a good thing.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-06T14:20:46.167" />
  <row Id="24120" PostTypeId="2" ParentId="22907" CreationDate="2010-12-06T14:22:47.197" Score="0" ViewCount="" Body="&lt;p&gt;Books aside, and I'd agree with most of the suggestions above, I think www.blackwasp.co.uk is an excellent online resource - really well-written and clear. Perfect for all levels of developer. MSDN technical authors take note!&lt;/p&gt;&#xA;" OwnerUserId="7439" LastActivityDate="2010-12-06T14:22:47.197" />
  <row Id="24121" PostTypeId="2" ParentId="24019" CreationDate="2010-12-06T14:38:12.453" Score="0" ViewCount="" Body="&lt;p&gt;Not sure if this is considered a game engine, but MS has XNA Game Studio&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/bb200104.aspx&quot; rel=&quot;nofollow&quot;&gt;http://msdn.microsoft.com/en-us/library/bb200104.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9ac86eca-206f-4274-97f2-ef6c8b1f478f&quot; rel=&quot;nofollow&quot;&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9ac86eca-206f-4274-97f2-ef6c8b1f478f&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-06T14:38:12.453" CommentCount="4" />
  <row Id="24122" PostTypeId="2" ParentId="24107" CreationDate="2010-12-06T14:40:22.570" Score="5" ViewCount="" Body="&lt;p&gt;Turning an idea into a business is a very difficult transition.  It requires thinking about a number of intangible aspects, as well as the very important aspect of how are we going to make money off of the idea.  I would make the person come up with business plan if they are really serious.  It will help them see what holes are in their bright idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the idea is intriguing enough to me, I might even help them come up with a rough estimate of how long the idea would take to build.  They need to see what it is that they are asking for.  Their 1,000 man hour (and more) idea suddenly becomes a non-trivial thing to ask of someone to do in their spare time for little or no pay.  Sure a startup needs passion, but people have to eat as well.  Asking someone to live off their savings for three months is not reasonable.  Getting funding to pay someone to do it properly is reasonable.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-06T14:40:22.570" CommentCount="1" />
  <row Id="24124" PostTypeId="2" ParentId="24047" CreationDate="2010-12-06T14:59:08.337" Score="3" ViewCount="" Body="&lt;p&gt;Since I can't comment because I'm below 50 I'll leave an answer. It's been already mentioned but I'll repeat it again: &lt;strong&gt;Annotations!&lt;/strong&gt;&#xA;This kind of metadata became the most important thing in my years of Java experience. It well used like some frameworks do it makes the code much more concise and clean. For example, annotations can:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Convert an object into an entity &lt;em&gt;@Entity&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Convert a method into a REST service &lt;em&gt;@GET&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Explain that a method will never return null &lt;em&gt;@nonnull&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Set an object to a field for dependency injection &lt;em&gt;@inject&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And of course you can build your own annotations and know if a method, class or field is annotated using reflection.&lt;/p&gt;&#xA;" OwnerUserId="4701" LastActivityDate="2010-12-06T14:59:08.337" CommentCount="1" />
  <row Id="24125" PostTypeId="2" ParentId="966" CreationDate="2010-12-06T15:01:14.743" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Alice In Wonderland&lt;/em&gt; and &lt;em&gt;Through The Looking-Glass&lt;/em&gt;.  Read Alice's conversation with the White Knight and see if you don't come away with a deeper appreciation for indirection and reference variables!&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-06T15:01:14.743" CommunityOwnedDate="2011-01-06T15:42:27.030" />
  <row Id="24126" PostTypeId="2" ParentId="24107" CreationDate="2010-12-06T15:08:36.503" Score="4" ViewCount="" Body="&lt;p&gt;I'm getting old and cynical, I'm afraid.  I initially meet those sort of claims with the skepticism of encountering a snake-oil salesman.  Especially if that person's past endeavors have not borne fruit.  The &quot;next big thing&quot; is part research and part leap of faith.  All too often I run into folks who have the last part in spades but haven't done a lick of real research.  If I had hitched my cart to everyone who just &quot;needed a quick website&quot; or some such to be the replacement for Twitter, I'd be broke and out of a job and likely unemployable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All that gloom and doom being said, I'm very proud of my past ownership with a next big thing company that is still doing well with a great product: &lt;a href=&quot;http://www.dvdprofiler.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.dvdprofiler.com/&lt;/a&gt; .&lt;/p&gt;&#xA;" OwnerUserId="987" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-06T15:45:11.197" LastActivityDate="2010-12-06T15:45:11.197" CommentCount="2" />
  <row Id="24127" PostTypeId="2" ParentId="22146" CreationDate="2010-12-06T15:10:33.420" Score="3" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/QYXoJ.jpg&quot; alt=&quot;Design Patterns&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A must read for all programmers:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201633612&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-06T15:10:33.420" CommunityOwnedDate="2011-01-22T00:43:07.640" CommentCount="4" />
  <row Id="24128" PostTypeId="2" ParentId="24107" CreationDate="2010-12-06T15:11:57.323" Score="4" ViewCount="" Body="&lt;p&gt;The head of a computer science department recently wrote this &lt;a href=&quot;http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2010-12.html#e2010-12-01T15_45_40.htm&quot; rel=&quot;nofollow&quot;&gt;article&lt;/a&gt; about business majors who would call-in to ask if a programmer would join their projects. He writes that the value of a product comes from its execution, not just the idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another &lt;a href=&quot;http://dave.is/businesspeople.html&quot; rel=&quot;nofollow&quot;&gt;article&lt;/a&gt; also mentions that the execution is what matters and that an &quot;ideas guy&quot; is really just deadweight to a business that isn't making any sales.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best bet is to tell the non-programmer that if he's serious about building his great idea, he should:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Approach potential customers with the idea -- if he doesn't know who they are, then he can't get revenue anyway.&lt;/li&gt;&#xA;&lt;li&gt;Get them to sign a non-binding letter of interest to raise capital -- if they won't sign, then they aren't really interested.&lt;/li&gt;&#xA;&lt;li&gt;Pay developers the market rate to build the product -- if he can't convince developers to take less than the market rate, then his idea really isn't cutting edge.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-06T15:11:57.323" CommentCount="1" />
  <row Id="24129" PostTypeId="2" ParentId="23816" CreationDate="2010-12-06T15:12:33.363" Score="2" ViewCount="" Body="&lt;p&gt;Read &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0345475836&quot; rel=&quot;nofollow&quot;&gt;Gateway&lt;/a&gt; by Fred Pohl.  A good part of the novel is conversations between the protagonist and his therapist, the therapist being a very sophisticated program.  Every so often, there will be a page in the book that is some sort of BASIC-ish computer code that, if you're a techie and read it, it gives a bit of insight on how the AI therapist is thinking.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-12-06T15:12:33.363" CommentCount="3" />
  <row Id="24130" PostTypeId="1" AcceptedAnswerId="24160" CreationDate="2010-12-06T15:14:30.507" Score="0" ViewCount="271" Body="&lt;p&gt;4 Core i7 or 6 Core AMD CPU&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will having more than 4 cores provide performance benefit to a compiler?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will be using Visual Studio 2010.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll explain my situation, I'm about to build a machine that I won't be able to upgrade again in a very long time. So I want to build up the best I can, it will be used primary for software development, but I'm stuck choose over i7 and AMD Phenom II X6 1090t.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Already have 16GB Memory, SSD in my build but I'm considering getting AMD but more curious if Cores are more important for development than just CPU power.&lt;/p&gt;&#xA;" OwnerUserId="9225" LastEditorUserId="6420" LastEditorDisplayName="" LastEditDate="2010-12-06T18:41:14.303" LastActivityDate="2010-12-06T18:41:14.303" ClosedDate="2010-12-06T16:48:19.980" Title="Which CPU is better for programming" Tags="&lt;cpu&gt;" AnswerCount="3" CommentCount="10" />
  <row Id="24131" PostTypeId="1" AcceptedAnswerId="24141" CreationDate="2010-12-06T15:17:01.630" Score="6" ViewCount="246" Body="&lt;p&gt;Me and my friend were arguing, which is a past time we both share. I was wondering, if you guys could settle this argument for us. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Is it better to be the best developer on your team or the worst?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;worst doesn't mean you suck, just not the best. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope this appropriate place for this question. &lt;/p&gt;&#xA;" OwnerUserId="2446" LastActivityDate="2010-12-06T15:44:10.443" ClosedDate="2010-12-06T15:51:02.137" Title="Is it better to be the best developer on your team or the worst?" Tags="&lt;career&gt;&lt;team&gt;&lt;software-developer&gt;" AnswerCount="9" CommentCount="6" FavoriteCount="2" />
  <row Id="24132" PostTypeId="2" ParentId="24131" CreationDate="2010-12-06T15:18:46.980" Score="2" ViewCount="" Body="&lt;p&gt;I'd rather be the worst since you will then have room to improve and learn from the best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing to add, I usually don't see many &quot;best&quot; because everyone usually has something to offer.&lt;/p&gt;&#xA;" OwnerUserId="9225" LastEditorUserId="9225" LastEditorDisplayName="" LastEditDate="2010-12-06T15:30:51.757" LastActivityDate="2010-12-06T15:30:51.757" />
  <row Id="24133" PostTypeId="2" ParentId="966" CreationDate="2010-12-06T15:20:16.273" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://books.google.com/books?id=2qu8EK7ickIC&amp;amp;printsec=frontcover&amp;amp;dq=Russell+L.+Ackoff+the+art+of+problem+solving&amp;amp;source=bl&amp;amp;ots=Da0lC4iFCL&amp;amp;sig=8qJvEcpAImgeSVpFIc-ZCIuDCis&amp;amp;hl=en&amp;amp;ei=3v78TLCiA9HpOeyrlNUK&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=1&amp;amp;ved=0CBoQ6AEwAA#v=onepage&amp;amp;q&amp;amp;f=false&quot; rel=&quot;nofollow&quot;&gt;The art of problem solving&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-06T15:20:16.273" CommunityOwnedDate="2011-01-06T15:42:27.030" />
  <row Id="24134" PostTypeId="2" ParentId="24131" CreationDate="2010-12-06T15:20:31.873" Score="2" ViewCount="" Body="&lt;p&gt;Depends on whether you like learning or teaching more.&lt;/p&gt;&#xA;" OwnerUserId="5747" LastActivityDate="2010-12-06T15:20:31.873" CommentCount="1" />
  <row Id="24135" PostTypeId="2" ParentId="24131" CreationDate="2010-12-06T15:21:01.233" Score="0" ViewCount="" Body="&lt;p&gt;Somewhere in the middle. Enough potential for growth, but enough understanding to not be frustrated all the time. Assuming you care for your job.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-12-06T15:21:01.233" />
  <row Id="24136" PostTypeId="2" ParentId="24131" CreationDate="2010-12-06T15:22:10.553" Score="0" ViewCount="" Body="&lt;p&gt;Being the best is better, you are paid higher :)&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-06T15:22:10.553" CommentCount="1" />
  <row Id="24137" PostTypeId="2" ParentId="24131" CreationDate="2010-12-06T15:22:13.493" Score="6" ViewCount="" Body="&lt;p&gt;I'd actually prefer to be somewhere in the middle. That way there's still stuff to learn, but I don't feel like a total moron in comparison to everyone else on the team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I think being the worst would be a strange spot to be in far as this question is concerned -- either you learn and you are not the worst anymore, or you stay the worst, in which case you probably do suck.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-06T15:22:13.493" CommentCount="1" />
  <row Id="24138" PostTypeId="2" ParentId="24066" CreationDate="2010-12-06T15:22:20.047" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;The definition of insanity is doing&#xA;  the same thing over and over and&#xA;  expecting different results. &quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;-Benjamin Franklin&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In addition to Dan's answer (task break-up) -- I believe that it's also necessary for you to do two things: 1) Shake up your normal routine / environment 2) Leave the house.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're in a rut -- but you have got a great idea and you want to improve yourself -- that is admirable.  But you are just not getting anywhere with your current routine.  My advice is to completely shake-up your work environment and routine.  Spend just a day or two to reorganize your office and computer -- clean out garbage -- maybe re-install your OS and get everything perfect. In addition, start a couple of activities outside of programming.  Start waking up early and going for jog, follow some crazy diet, start living on a military schedule.  The point of this is to give you a fresh perspective, &quot;out with the old, in with the new&quot;.  Following &lt;em&gt;just&lt;/em&gt; a tight programming schedule or regiment might make the important work seem like self-flagellation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to get out of the house, you have to be &quot;not comfortable&quot;.  In my opinion, people seek comfort and when they get it they are tempted to stay there.  If you're sitting at home under an electric blanket, with a cup of GF international coffee, your cat on your lap, the newest game installed on your PC, and high-speed internet access to Netflix -- there are a lot of motivations there to &lt;em&gt;not&lt;/em&gt; do work.  The creative process is all about sublimating these drives -- redirecting our energies through conscious will -- to focus on what we want in the long term.  Go somewhere where there is less temptation, less comfort -- a public library, bookstore, a local college. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-12-06T15:22:20.047" />
  <row Id="24139" PostTypeId="2" ParentId="24131" CreationDate="2010-12-06T15:23:23.140" Score="1" ViewCount="" Body="&lt;p&gt;The question is in fact about being the first in the group behind or the the last in the group in front.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everyone chooses his own place. For me it's better be in the group that is in front. For there you will have an opportunity to learn and move up to the head of the group.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're in the group behind, there are two dangers:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You won't have smart people around to learn from&lt;/li&gt;&#xA;&lt;li&gt;You will sink into an illusion you're quite good. Return to the reality might be painful.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-06T15:23:23.140" />
  <row Id="24140" PostTypeId="2" ParentId="24130" CreationDate="2010-12-06T15:23:29.910" Score="5" ViewCount="" Body="&lt;p&gt;Processor speed generally will be a significant factor with compilation but you possibly need to ask yourself how much time you &lt;em&gt;really&lt;/em&gt; spend compiling and how much difference either of these two processors is likely to make to that time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm guessing that although it wouldn't have much impact on compilation, an SSD would be a better use of any extra cash in terms of improving performance across your overall workflow.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-06T15:23:29.910" />
  <row Id="24141" PostTypeId="2" ParentId="24131" CreationDate="2010-12-06T15:23:30.267" Score="7" ViewCount="" Body="&lt;p&gt;I'd like to answer this with a cheat of an answer:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd prefer to be the best developer on my team at one thing and the worst at another, with a smattering of skill levels between. This to me is the best way for a team to function, if everyone has similar strengths and weaknesses you can't learn much but if they are different then everyone works on and teaches what they are good at doing, and learns where they aren't.&lt;/p&gt;&#xA;" OwnerUserId="1760" LastEditorUserId="1760" LastEditorDisplayName="" LastEditDate="2010-12-06T15:44:10.443" LastActivityDate="2010-12-06T15:44:10.443" />
  <row Id="24142" PostTypeId="2" ParentId="24131" CreationDate="2010-12-06T15:23:45.463" Score="1" ViewCount="" Body="&lt;p&gt;It is better to be your best and fit in where providence has left you.  You cannot do any better than that.  However, sometimes competition isn't bad if it is done properly where, hopefully, resentment will not be present but rather respect.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-06T15:23:45.463" />
  <row Id="24143" PostTypeId="2" ParentId="24066" CreationDate="2010-12-06T15:30:17.437" Score="1" ViewCount="" Body="&lt;p&gt;Well, maybe you are burned out; maybe you are sick; maybe you are depressed; maybe you are just tired after work;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wrote a question on SO here for just this sort of thing because you need to realize why you program.  one it is the job you have and you like it, but why?  because you create.  You are a creative person that has no creativity left in them at the moment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than physical things you can do like exercise (which I myself and guilty of neglecting i.e. lazy), eat right (um me again, especially at the holidays), sleep right, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to understand where your motivation began, how you got it, why it is there.  Without getting too mystical, you need to reach deep down inside and understand, just don't read too much into it or you'll go crazy (like me.)  I do this with prayer and my understanding of who I am because of Who God is as found in the Bible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not know what you believe gives you your desires, hope, etc. so it will be difficult to help you find the root.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-06T15:30:17.437" />
  <row Id="24144" PostTypeId="2" ParentId="24077" CreationDate="2010-12-06T15:31:01.640" Score="9" ViewCount="" Body="&lt;p&gt;They are not as bad as the misleading identifiers. I don't mind debugging code in which the identifiers are only one letter, but the moment different naming conventions come into the picture it becomes annoying. E.g., if somewhere you see &lt;code&gt;strPersonID&lt;/code&gt;, and then somewhere else you see &lt;code&gt;s_EmployeeID&lt;/code&gt;, then it's confusing to tell if are these both strings and whether there is any difference. Also if the variables are copy-pasted (&lt;code&gt;pmapIntString = new std::map&amp;lt;int,int&amp;gt;&lt;/code&gt;) and are totally wrong, I will worry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When it comes to me, I add comments in the code for the important variables used and try to maintain the standard given in development guideline. If there is no standard then I try to maintain the same naming convention throughout the code.&lt;/p&gt;&#xA;" OwnerUserId="8820" LastEditorUserId="2107" LastEditorDisplayName="" LastEditDate="2011-05-10T22:24:21.190" LastActivityDate="2011-05-10T22:24:21.190" CommunityOwnedDate="2011-01-06T21:58:42.770" />
  <row Id="24145" PostTypeId="2" ParentId="24131" CreationDate="2010-12-06T15:38:51.900" Score="-1" ViewCount="" Body="&lt;p&gt;There is simply no best and no worst. The moment you start thinking about best and worst  all the s**ty politics start happening. I gave equal respect to everyone in the team, irrespective of their degree, university, post or experience. And I expect other team members to do same. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-06T15:38:51.900" CommentCount="1" />
  <row Id="24146" PostTypeId="2" ParentId="24077" CreationDate="2010-12-06T15:48:20.600" Score="2" ViewCount="" Body="&lt;p&gt;On the contrary, I think long identifiers are worse than short identifiers (unless you're dealing with constants).  Using &lt;code&gt;TheVariableThatHoldsTheCapacityOfMyContainerClass&lt;/code&gt; makes your code a lot more prone to errors than using &lt;code&gt;Capacity&lt;/code&gt;.  &lt;/p&gt;&#xA;" OwnerUserId="8810" LastActivityDate="2010-12-06T15:48:20.600" CommunityOwnedDate="2011-01-06T21:58:42.770" CommentCount="10" />
  <row Id="24147" PostTypeId="1" CreationDate="2010-12-06T15:49:13.840" Score="3" ViewCount="159" Body="&lt;p&gt;If you've found agile and walk into a workplace that doesn't particularly follow any methodology and they are resistant to change (as most people usually are), how would you introduce an agile methodology like scrum?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Well, I've phrased it as a hypothetical question, but it isn't.&lt;/li&gt;&#xA;&lt;li&gt;I'm not very confident about Agile myself&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6815" LastActivityDate="2010-12-06T16:24:09.773" Title="How would you introduce an agile methodology like scrum?" Tags="&lt;project-management&gt;&lt;agile&gt;&lt;changes&gt;" AnswerCount="5" CommentCount="3" />
  <row Id="24148" PostTypeId="2" ParentId="24107" CreationDate="2010-12-06T15:51:01.107" Score="1" ViewCount="" Body="&lt;p&gt;In my humble experience, it's the best to ask for a predictable payment then to expect an unpredictable win. &#xA;Even if in the long run you would like equity instead of fixed payment, this is a great way of filtering out people who are fakes. If you push the real buttons, you might even get them to say something like &quot;Why are all of you programmers like that&quot; (= he tried and failed, to fool a number of people).&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-06T15:51:01.107" />
  <row Id="24149" PostTypeId="2" ParentId="23848" CreationDate="2010-12-06T15:51:20.787" Score="1" ViewCount="" Body="&lt;p&gt;Warning:  While this may sound like a smart alec answer and does have some humor, there is a legitimate point in this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you just want to know more stuff or do you want to improve some technical skills?  There is a difference here as I'm sure everyone has a lot of personal trivia that has questionable value in the grand scheme of things.  If you want to develop your skills you will likely have to be willing to do a few things:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Assess yourself or handle feedback of an assessment - This is about knowing where you are, which can either be something you figure out yourself or have someone help you get there.  A key point here is to get to know where you are and why it may be both good and bad to be at this point.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Attempt to determine which skills need work - While this may be seen as a finding your weakness, I'd be more tempted to paint this as you want to have basic competency in some areas and this is just ensuring that.  Another way to see this is what areas do you want to improve and get better.  Finding your focus may be another way to see this.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Know how you learn and pick up stuff - Do you prefer to learn independently or as part of a group?  Do you prefer to read stuff or listen to it?  The key here is about knowing what learning style works for you which can take some trial and error.  What kinds of methods make sense to use between interactions to try to get better before getting assessed again.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Feedback on what's working and what's not - This is last on the list as this is more of a what to do a few months after you start to see if things are working our or not.  This can be the trickiest point as the key here is to see where you are better and what may not have worked as well as you'd hoped.  The flip side is to consider how well can you communicate these points as well as receive them since the relationship does have at least a couple of sides to it.  Did you pick up the new material?  If something was missed, how important was that piece?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Personality differences - Does the senior person tend to joke a lot more than you like?  Do they be overly serious in your view?  There are many relationship dynamics that can make those initial interactions annoying but there is a fine line between being assertive and stating what you feel and ramming it down the other person's throat,e.g. picture the &quot;I will not be ignored&quot; line from &quot;Fatal Attraction&quot; if you want a visual on this point.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Most of the questions above are rhetorical, but tend to highlight how to see if something is working for you or not.  The initial rules of the relationship shouldn't be that complicated at first though there is the acknowledging on each side that both of you want to be in this relationship and here is the focus for the next month or so.  I'd expect the first few months to be the hardest as this is where all kinds of crazy stuff will happen that after you get into that rhythm it may be surprising how comfortable some of it becomes.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-06T15:51:20.787" />
  <row Id="24150" PostTypeId="2" ParentId="24147" CreationDate="2010-12-06T15:52:36.870" Score="0" ViewCount="" Body="&lt;p&gt;The best way to introduce agile is to show them that their practice of waterfalling doesn't quite cut it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now if they don't have any process then investigate then prove to them that their lack of a process causes problems. Then you introduce agile as something which brings some order into chaos without tying everybody's hands with rigid processes.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-06T15:52:36.870" />
  <row Id="24151" PostTypeId="2" ParentId="24147" CreationDate="2010-12-06T15:53:23.980" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.torak.com/site/files/Introducing%20An%20Agile%20Process%20to%20an%20Organization.pdf&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Introducing an Agile&#xA;Process to an&#xA;Organization&lt;/strong&gt;&lt;/a&gt; &lt;br&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-06T15:53:23.980" CommentCount="1" />
  <row Id="24152" PostTypeId="2" ParentId="24097" CreationDate="2010-12-06T15:56:17.473" Score="7" ViewCount="" Body="&lt;p&gt;If someone just offered you $200K per annum you can have 2 reactions: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Dance with joy, accept the offer and generally believe you have arrived in life&lt;/li&gt;&#xA;&lt;li&gt;Think why the person is offering you this kind of pay before accepting&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If you are rational and opt for 2) then you should know that these are typically high pressure jobs where performance is king. If you are into trading software development, then you need to follow trading hours and these days at any hour in the day or night some exchange is open for trading. Your work hours will be odd, ability to perform 24x7x365xwhatever time you have left for yourself on earth etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Technically, being into C++ for 10 years now I can frankly tell you that coding high performance multi-threaded apps is not something everyone can do even if they are good at C++. For e.g. point me a single C++ construct that you know effectively used N cores in your system. You can't. Just for this, you need to understand CPU affinity and if you are into Linux this feature is only available after a certain kernel version number. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally, the skill level required is very high and work is gruelling. Thats why that $200K. &lt;/p&gt;&#xA;" OwnerUserId="8720" LastEditorUserId="8720" LastEditorDisplayName="" LastEditDate="2010-12-06T16:05:56.687" LastActivityDate="2010-12-06T16:05:56.687" CommentCount="2" />
  <row Id="24153" PostTypeId="2" ParentId="24147" CreationDate="2010-12-06T15:58:17.050" Score="0" ViewCount="" Body="&lt;p&gt;First, I'd inquire as to what do those that would be using this methodology think of it, what experiences have they had with it, etc. so that I can know the background of what perspective do these people have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, I'd likely see how much of a shift would something like Scrum be on this team?  Is there a way to break this down so that it isn't a big shift all at once?  Piece by piece is a good way to describe the methodology here but also contrasting this to how things are currently done is another part to this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Third, find a good Scrum Master that could help get management buy-in as well as things initially set up to give success a good chance as sometimes it isn't easy trying to get another chance to launch something.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-06T15:58:17.050" />
  <row Id="24154" PostTypeId="2" ParentId="24019" CreationDate="2010-12-06T15:58:34.710" Score="1" ViewCount="" Body="&lt;p&gt;Unity 3 is supposed to be designed in such a way that it allows you to focus on game development, rather than engine details.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://unity3d.com/unity/&quot; rel=&quot;nofollow&quot;&gt;http://unity3d.com/unity/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-06T15:58:34.710" />
  <row Id="24155" PostTypeId="2" ParentId="24036" CreationDate="2010-12-06T16:00:12.620" Score="1" ViewCount="" Body="&lt;p&gt;It's a format for data exchange thats wildly popular these days. It helps if you know it, certainly, since programs usually need to exchange data among each other.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-06T16:00:12.620" />
  <row Id="24156" PostTypeId="2" ParentId="24147" CreationDate="2010-12-06T16:12:12.937" Score="2" ViewCount="" Body="&lt;p&gt;Truth is that it is hard to be a leader and to get things started, if you don't have the power to do so (you said you were not the supervsior or boss).  First you need to have the belief that Agile, Scrum, or whatever may not be the best for you.  Maybe cowboy loner coding is best for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, you have to have a mission, small at first, but a mission.  The first mission will be for yourself - follow your agile plan so you understand it, just for a small project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Third, you have to have a mission, small at first, but a mission.  This second mission will involve you and another team member.  After that mission is complete have an honest conversation about the methodology and seeing if it works for you.  If you do guess what?  You need another mission and another person.  Talk about it again.  Eventually you'll have enough to talk to the boss.  But if you have the developers on board, you don't need the boss because everyone will be doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this latter case, the one where you are successful, I would document from the beginning to the last scenario all that you have done and the results.  I would present that to the boss and at least have a good write up for it and maybe a better raise when the time comes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't forget to document this procedure or you won't get your credit - and you deserve it if it honestly helps you and your organization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit:  this presumes you have the freedom from on high to do this.  if you don't you'll need to ask for permission unless you are very sure, in which case you'll have to ask for forgiveness.  Creativity needs freedom.  Be sure you have it or be very careful.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastEditorUserId="8802" LastEditorDisplayName="" LastEditDate="2010-12-06T16:17:23.570" LastActivityDate="2010-12-06T16:17:23.570" />
  <row Id="24157" PostTypeId="1" CreationDate="2010-12-06T16:23:34.093" Score="10" ViewCount="351" Body="&lt;p&gt;hey guys,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My younger brother is looking to start programming. He's 14, and technically-inclined, but no real experience programming. He's looking to me for guidance, and I don't feel as if my experience is enough, so I figured I'd ask here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He's more interested in web programming, but also has an interest in desktop/mobile/server applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would be a good learning path for him to take? I'm going to buy him a bunch of books for Christmas to get him started; the question is, what should he learn, and in which order?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way I see it, he needs to learn theory and code. I'd like to start him off with Python or Ruby or PHP. If he wants to get in to web, he's also going to need to learn HTML, CSS, Javascript, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Out of those three domains (Languages, Theory, Markup/Etc.), what is the best order do you think to learn in? Also, am I missing anything?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="9227" LastActivityDate="2010-12-08T00:06:45.897" Title="If you had to go back and re-learn your skill set, how would you do it?" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;self-improvement&gt;" AnswerCount="10" CommentCount="2" FavoriteCount="2" />
  <row Id="24158" PostTypeId="2" ParentId="24147" CreationDate="2010-12-06T16:24:09.773" Score="0" ViewCount="" Body="&lt;p&gt;Everyone follows a methodology. Their's probably doesn't have a standard name and may be inconsistent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If everyone is productive and likes the way things are, change is difficult (as it should be in this case). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about the problems 'agile' has solved for you. Present these privately to the leader if they address issues he/she has identified. Getting someone to accept they have a problem is usually the hardest part, so pick on the low-hanging fruit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually, they like the pieces of a methodology and find that using all aspects of it is usually what it takes to make the whole thing work. It also can save a lot of trial and error.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-06T16:24:09.773" />
  <row Id="24159" PostTypeId="1" AcceptedAnswerId="24211" CreationDate="2010-12-06T16:24:36.590" Score="5" ViewCount="420" Body="&lt;p&gt;As &lt;a href=&quot;http://programmers.stackexchange.com/questions/8973/programming-language-you-wish-you-learned-first&quot;&gt;this question&lt;/a&gt; is closed, let me do an attempt that actually meets all 6 requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At our faculty, there's for the moment a big change in the classes &quot;informatics&quot;. We used to teach Java, but this is going to be replaced with Matlab (and the class will be called &quot;Scientific Computing&quot;). Personally, I'm not in favor of that idea, because :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Matlab is not freeware, hampering the possibilities for the students to get hands-on experience. They can on campus or via VPN, but not on their own computers.&lt;/li&gt;&#xA;&lt;li&gt;&lt;s&gt;Matlab isn't even a real programming language, but a mathematical environment that excells in that but fails in anything else.&lt;/s&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;s&gt;Matlab isn't suited for general concepts of programming.&lt;/s&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;edit: these last two points seemed a bit strongly formulated. Matlab has progressed quite a bit since I last encountered it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I also had a problem with Java, as that turned out to be a real pain in the proverbial behind for many students, mainly because of the verbosity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As it's for a general course in programming, I think these points are important :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;all basic concepts of programming&lt;/li&gt;&#xA;&lt;li&gt;rather easy syntax without too much verbosity &lt;/li&gt;&#xA;&lt;li&gt;the possibility to easily program both procedurally and object oriented&lt;/li&gt;&#xA;&lt;li&gt;a short feedback loop on your programming &lt;/li&gt;&#xA;&lt;li&gt;a proven usefulness in many applications, especially in the scientific world (bioPerl, bioConductor, bioPython, bioJava, ...) so they can be used for practical work during their studies.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What's your idea about the best teaching language on a serious level (hence not the pseudo languages used in primary or secondary school, I'm talking bachelor level at university/college)?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;edited to keep the question more general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Originally I mentioned R, Python or Perl, and :&lt;/p&gt;&#xA;&#xA;&lt;p&gt;R is maybe less of a good choice as that one is a vectorized language. This is far from general, so it might be too specific. &lt;strong&gt;edit:&lt;/strong&gt; I consider it a blessing, but the argument here was that a vectorized language is not general enough for teaching purposes as people would get into trouble when moving to Perl and Python. I'm also not talking statistics education, we're talking students of level 1st bachelor. Any direction, any kind. I just added the personal experience.&lt;/p&gt;&#xA;" OwnerUserId="7268" LastEditorUserId="7268" LastEditorDisplayName="" LastEditDate="2010-12-06T19:37:54.927" LastActivityDate="2010-12-06T20:42:32.943" Title="Which programming language is the best to start learning/teaching about programming" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;teaching&gt;" AnswerCount="6" CommentCount="13" FavoriteCount="1" />
  <row Id="24160" PostTypeId="2" ParentId="24130" CreationDate="2010-12-06T16:25:02.380" Score="1" ViewCount="" Body="&lt;p&gt;Multiple cores are only used if you want to compile more than one project at a time. The compiler itself cannot use multiple cores. So having more cores available is only an advantage if you have a solution with lots of projects. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/9h3z1a69(VS.90).aspx&quot; rel=&quot;nofollow&quot;&gt;http://msdn.microsoft.com/en-us/library/9h3z1a69(VS.90).aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1197" LastActivityDate="2010-12-06T16:25:02.380" CommentCount="3" />
  <row Id="24161" PostTypeId="2" ParentId="24157" CreationDate="2010-12-06T16:30:54.833" Score="2" ViewCount="" Body="&lt;p&gt;I would go to school, if college age.&#xA;I would take it high school, if high school age.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd have a mission and adjust the curriculum accordingly at 14.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;many people will down me for this but Visual Basic .NET seems to be easier for some, just saying folks.  It appears to be that way for many not in the initiate.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-06T16:30:54.833" CommentCount="1" />
  <row Id="24162" PostTypeId="2" ParentId="24157" CreationDate="2010-12-06T16:31:07.723" Score="2" ViewCount="" Body="&lt;p&gt;web / desktop / mobile / server programming? Seems like to me, he is interested in everything. The problem is however, he's gotta start with something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many will disagree, as of course there is no &quot;right&quot; answer to this, but I'd buy him a book on Python (&lt;em&gt;Learning Python&lt;/em&gt; is thick and thorough enough to keep him busy for a long time), and it is definitely a language which will give him a good ratio of stuff I learned vs. eye candy (i.e. what can be achieved with it). It is also a good starting point for many of the above.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that, see what he favours the most of the above mentioned, and direct him further with advice in that direction.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-06T17:17:14.970" LastActivityDate="2010-12-06T17:17:14.970" />
  <row Id="24163" PostTypeId="2" ParentId="24157" CreationDate="2010-12-06T16:31:31.173" Score="1" ViewCount="" Body="&lt;p&gt;I personally wouldn't start with the hardcore theory. I'd start with practical programming intermingled with some elements of the theory. It could keep one much more motivated and not scare him off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is for instance a case with musical schools. A huge portion of students quit because they get bored with the theory and eventually lose interest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, the theory is not that good when it is learned before having gotten your hands dirty with practice. You won't know when and how to apply it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you had some theory knowledge then practiced a lot, after that a serious course in IT would push you on a different level. Otherwise the years spent in a university are just wasted on a deaf year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In that order:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Some basic theory about hardware, computer architecture and programing that hardware. Just basic.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Then develop practical things. Basic applications to keep interest. First local, then something with graphics. Web pages not yet since you would want to demonstrate the server-side programming and it is often useless without databases.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Drop him some database knowledge crops&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Interface you local application with the database. Then try web development.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Adjust the course as you go.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-06T16:42:29.017" LastActivityDate="2010-12-06T16:42:29.017" />
  <row Id="24164" PostTypeId="2" ParentId="24077" CreationDate="2010-12-06T16:32:22.833" Score="0" ViewCount="" Body="&lt;p&gt;In some applications a short variable simply cannot explain the data in the variable. Short or long is irrelevant. Using a longer variable does not make your code slower. Sure it is more effort typing out a long variable name but atleast the person who reads the code 6 months later (which may be you) will be able to make out what is happening without needing to put traces assuming that is even possible.&lt;/p&gt;&#xA;" OwnerUserId="6610" LastActivityDate="2010-12-06T16:32:22.833" CommunityOwnedDate="2011-01-06T21:58:42.770" />
  <row Id="24165" PostTypeId="2" ParentId="24159" CreationDate="2010-12-06T16:33:32.027" Score="1" ViewCount="" Body="&lt;p&gt;How is a vector-based language a bad thing?! Especially if you're teaching beginners, you should focus on getting things done rather than worry about loop indices. Plus, R already has math and statistics routines built-in, which is exactly what you want in a &quot;Scientific Computing&quot; course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have your heart set on Python, at least use the &lt;a href=&quot;http://www.scipy.org/&quot; rel=&quot;nofollow&quot;&gt;SciPy / NumPy&lt;/a&gt; libraries. These will give you math routines as well as present a vector programming interface.&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-06T16:33:32.027" CommentCount="1" />
  <row Id="24166" PostTypeId="2" ParentId="24130" CreationDate="2010-12-06T16:33:52.950" Score="0" ViewCount="" Body="&lt;p&gt;I've got the AMD 1090T, and an SSD drive.  Of the two, I only regret the SSD drive.  It's starting to fail and I have to move stuff around.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason I chose the AMD over the Intel has nothing to do with compilation.  Not many compilers make good use of the cores.  However, I do focus on multi-threaded and concurrent programming, and sometimes you just can find those hard to find concurrency bugs with a small number of cores.  The 1090T is pretty quick, so it's not my bottleneck.  My bottleneck is my SSD drive. (it's slower than the traditional drive I have with writes, and the TEMP directory is still on the SSD drive).  I'll have to figure out how to move that.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-06T16:33:52.950" />
  <row Id="24167" PostTypeId="2" ParentId="24159" CreationDate="2010-12-06T16:42:33.553" Score="1" ViewCount="" Body="&lt;p&gt;You're talking about a pretty specific environment, i.e. solving complex scientific or mathematical equations.  I don't see where teaching the class using a general computing language (java, C#, etc) would be that beneficial, as they're not going to have the required syntax or library functions you're going to need.  I don't see where teaching a particular language (or environment, like MathLab) is going to be a problem.   Don't most IDEs or environments offer student pricing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry, the question led me in the direction of that specific environment, if you're talking about a general computing environment, I'd go with teaching what is currently dominating the market to give them a feel for what is out there.  I think thats currently either Java or .Net&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-06T16:42:33.553" CommentCount="1" />
  <row Id="24168" PostTypeId="2" ParentId="24157" CreationDate="2010-12-06T16:48:40.753" Score="3" ViewCount="" Body="&lt;p&gt;I'd go with learning stuff for the mobile phone arena, that's prime real estate there.  Get him set up with an IDE that has a phone emulator, and &lt;strong&gt;get him a phone he can push the apps to&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Set him up for some real world usage and hacking, supplemented with some theory from your books to guide him.  Make sure they have good samples.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-06T16:48:40.753" CommentCount="1" />
  <row Id="24169" PostTypeId="2" ParentId="24157" CreationDate="2010-12-06T16:50:14.603" Score="2" ViewCount="" Body="&lt;p&gt;Starting with web dev is a nice idea. You can get results even if you're a true beginner, and if you mess up, it won't matter much. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say Html/CSS + Php. As Jeff stated in his comment, having his site hosted will matter, and Php hosters aren't expensive, often even free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for theory, I would simply forget it for the moment. The way I understand it, he mostly wants to have fun, and let's face it, theory isn't very fun. Besides, if he does like programming, he will have plenty of it in school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously we all care about nice code, but if he's just going to play around, what does it matter if his code is messy?&lt;/p&gt;&#xA;" OwnerUserId="6579" LastActivityDate="2010-12-06T16:50:14.603" CommentCount="1" />
  <row Id="24170" PostTypeId="1" AcceptedAnswerId="24180" CreationDate="2010-12-06T16:59:35.013" Score="5" ViewCount="157" Body="&lt;p&gt;Long time back, when I was reading my introductory programming books on (Basic, Pascal, C/C++), one thing that was emphasized is you can't become a professional programmer over night or over few weeks. It takes time to grasp programming and to apply it for solving problems and developing applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, once someone has the grasp of basic programming, the person can quickly adapt to new technologies. In recent times, the use of frameworks in application development is prevalent. Though the learning curve for framework is way smaller than that of programming, even so they too would require some time to learn. Of course, different frameworks have different complexity, hence the learning curve would vary greatly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is, should one start to do commercial projects while they are learning a particular framework, or should a demo/learning project be done first to get the hang the framework and then proceed onto real projects?&lt;/p&gt;&#xA;" OwnerUserId="1560" LastActivityDate="2010-12-06T17:58:44.997" Title="After how much experience, should one start to use a framework for serious development?" Tags="&lt;learning&gt;&lt;experience&gt;&lt;frameworks&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="24171" PostTypeId="2" ParentId="24097" CreationDate="2010-12-06T17:01:17.087" Score="2" ViewCount="" Body="&lt;p&gt;You'll enjoy working at a small software firm more, but probably won't make as much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most problems working for these firms are due to working in corporations where creating software is not their business. They're bureaucratic and see IT as an expense just like: accounting, shipping, support, HR, etc. They have stiff rules and regulations that are usually necessary to manage large numbers of people. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Considering the majority of this industry as tainted is just absurd. Not everyone caused the mess we're in nor took government bail-outs. You think working for Insurance companies, law firms, food plants, pharmaceutical, manufacturers, telecoms, government agencies, or hospitals will surround you with angels?&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-06T17:01:17.087" />
  <row Id="24172" PostTypeId="2" ParentId="24170" CreationDate="2010-12-06T17:01:21.270" Score="10" ViewCount="" Body="&lt;p&gt;When one understands the need of a framework.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-06T17:01:21.270" CommentCount="5" />
  <row Id="24173" PostTypeId="2" ParentId="24159" CreationDate="2010-12-06T17:02:26.807" Score="2" ViewCount="" Body="&lt;p&gt;When teaching well educated adults programming as a cross-curricular thing, ie. science majors, maths majors, I find that it sinks in best if you approach it from a position they are comfortable with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Introducing programming via a language orientated to the sort of tasks they face like Mathematica, R, etc, with real world problems that they are aware of the methods to solve the issue and are &lt;em&gt;aware of the need for a computerised solution&lt;/em&gt;.  That way they tend to see the point of it, the transition is not overly confusing and they start to learn basic programming concepts via a form of osmosis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they need to do something more complicated, then they can step up to something more traditionally broad in scope a lot easier than if they started there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Failing that, pick an easy to read, forgiving language with good feedback when you have made errors and easy debugging.  Students get put off by a long road to results, instant/quick gratification is key to retaining enthusiasm.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-06T17:02:26.807" />
  <row Id="24174" PostTypeId="2" ParentId="24170" CreationDate="2010-12-06T17:05:49.177" Score="3" ViewCount="" Body="&lt;p&gt;The most logical thing to do is to start using a framework when you feel the pain that the framework is supposed to reduce.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you want to do Java web programming, I would start with Servlets and JSP, and use straight JDBC to connect to the database.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It won't be long until you are tired of created repetitive Servlets, and then you know that you should learn Spring MVC or Struts 2.  And when the JDBC is causing you pain, start using Hibernate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are right that it is easier to learn a framework than a language, but I think that it can be very demoralizing to try to learn a framework that solves problems that you have never experienced.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-12-06T17:05:49.177" CommentCount="2" />
  <row Id="24176" PostTypeId="2" ParentId="23548" CreationDate="2010-12-06T17:19:06.020" Score="0" ViewCount="" Body="&lt;p&gt;If you're dealing with a business person, say it's a &quot;best practice.&quot;&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-12-06T17:19:06.020" />
  <row Id="24177" PostTypeId="2" ParentId="326" CreationDate="2010-12-06T17:23:35.247" Score="1" ViewCount="" Body="&lt;p&gt;An A4 pad has been the most useful to me for keeping track of todo lists.&#xA;Last month I started using workflowy.com which most closely offers the simplicity of that A4 pad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find workflowy scales well which a complex ui - no tabs, windows; instead, just one hierarchical list. It's pop-up menu is a little annoying to access but there is so little overhead in use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Paper still has some built-in advantages... having to copy undone items from old page to new page highlights items that should be a higher priority (ie do now/next) or struck off.&lt;/p&gt;&#xA;" OwnerUserId="9230" LastActivityDate="2010-12-06T17:23:35.247" CommunityOwnedDate="2010-12-06T17:23:35.247" />
  <row Id="24178" PostTypeId="2" ParentId="24157" CreationDate="2010-12-06T17:30:32.200" Score="2" ViewCount="" Body="&lt;p&gt;Does his high school offer classes in computer science?  For example in the United States the Advanced Placement program has a computer science class that goes through quite a bit of the basic computer science concepts (flow of control, basic object oriented development practices, loops, etc.).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was able to attend a high school that offered computer science courses for basically all 4 years (from an introductory course through to basic LIPS, MIPS, and Open GL).  I ended up testing out of the basics in college and then re-learning a lot of the other languages and topics in upper level courses.  I can tell you that 14-17 year old brain had a lot more difficulty wrapping around the theory than an 18-22 year old brain did.  Topics like recursion, pointer arithmetic, low-level programming, network topography, and functional programming took me a long time to get in high school, but the second time around in college I found them to be a breeze, perhaps because I'd already tackled them but also perhaps because of what developmental scientists have proved about the young brain - some of the abstract thinking required for higher math and CS concepts is still developing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even though it was difficult, thinking through CS starting at 14 is extremely helpful.  Doing it without teachers seems like it would have been complicated.  I would've spent time developing web pages for fun because it's what I loved to do back then (and now), but I would never have taught myself pointers, recursion, and LISP for fun at the time.&lt;/p&gt;&#xA;" OwnerUserId="7506" LastActivityDate="2010-12-06T17:30:32.200" />
  <row Id="24180" PostTypeId="2" ParentId="24170" CreationDate="2010-12-06T17:41:34.840" Score="1" ViewCount="" Body="&lt;p&gt;You should definitely do a bit of background research before you consider using a particular framework. For starters, looking into the documentation about the kind of problems the framework claims it can solve, ask people about their experience with this framework on places like stackexchange, read the reviews of the people who have used this framework. If its possible and the project's open sourced, check the download count of the project -- the more the merrier in this case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you are done with all of that, start digging in deeper. Look into the fine print like the minimum compiler and OS versions required to use this framework, dependencies on other frameworks (if any) that this framework might have, performance limitations etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing a small project and investing your time into this framework comes after all of these. &lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-06T17:41:34.840" CommentCount="2" />
  <row Id="24181" PostTypeId="2" ParentId="24077" CreationDate="2010-12-06T17:44:39.283" Score="-1" ViewCount="" Body="&lt;p&gt;I would never use identifier names with less than 4-5 characters, for example a loop variable might be Index or jIndex or kIndex depending how many inner loops I need to accomplish something, but for other names let's say a &quot;key&quot; I would use &quot;String LKey&quot; or &quot;int LKey&quot;, &quot;L&quot; for local if it's a method variable or &quot;F&quot; for private class variable, all other identifiers like other mentioned before me should explain the reason of it's existence in it's name, otherwise the &quot;identifier&quot; scope is useless isn't it?!&lt;/p&gt;&#xA;" OwnerUserId="8747" LastActivityDate="2010-12-06T17:44:39.283" CommunityOwnedDate="2011-01-06T21:58:42.770" CommentCount="7" />
  <row Id="24182" PostTypeId="2" ParentId="24157" CreationDate="2010-12-06T17:45:07.257" Score="0" ViewCount="" Body="&lt;p&gt;My logical preference based on what I know now:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Figuring out how things work now - While you state he is technically-inclined, how well does he understand how a computer works at this point?  For example, does he understand differences between mark-up and scripts?  What about writing little scripts to do this or that?  This would be my suggestion for a starting point as demystifying what we have around us is a good starting point given all of stuff that could be explored pretty freely.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Pick a language, IDE, and source control.  Now while this may seem like quite a bit to hurl at someone, these are the rather basic tools that with a little practice he may well then move on to bigger things.  Figuring out how to make a &quot;Hello World!&quot; web page that has the message embedded in JavaScript isn't a bad starting point if one wants something a bit more concrete here.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Now start adding some of the harder stuff.  How to do loops or conditions?  This isn't really that fancy yet but we're still at the understanding the building block stage here.  Lastly introduce the idea of classes and what are some ideas behind this concept.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Those would be where I'd start if someone wanted to get some basics of my skill-set.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-06T17:45:07.257" />
  <row Id="24184" PostTypeId="2" ParentId="24077" CreationDate="2010-12-06T17:53:08.667" Score="0" ViewCount="" Body="&lt;p&gt;The first paper you link to looks interesting, but its conclusion is that they found no significant evidence for or against the hypothesis that &quot;grounding hints&quot;, including meaningful variable names, help in code comprehension. The used gaze dwell time as a proxy for code comprehension which is interesting, but not a slam dunk. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm afraid I found the second paper just silly. The first problem is that the examples of long names they provide are gratuitously long, providing no extra information. I think we can all agree that making a variable name longer just to make it longer is stupid. Their example of naming a variable distance_between_abscissae rather than dx is a straw man.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More importantly, their experiment is a test of simple memorization rather than comprehension. It tests the ability of subjects to fill in missing pieces of a variable name when presented in a list with &lt;strong&gt;no&lt;/strong&gt; context. Yes, longer names are harder to memorize, but when I'm coding I don't memorize variable names, I use them to provide context. I suppose you could argue that the difficulty of remembering long variable makes code harder to write, but code is read far more often than it is written, so which activity should be optimized?&lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-12-06T17:53:08.667" CommunityOwnedDate="2011-01-06T21:58:42.770" CommentCount="1" />
  <row Id="24186" PostTypeId="2" ParentId="24170" CreationDate="2010-12-06T17:58:44.997" Score="1" ViewCount="" Body="&lt;p&gt;I think you have to use a framework with non-trivial work in order to really understand it. Of course, this will mean you go outside the lines at some points and you may have some refactoring to do later. If you have a real project, and you know which framework you are planning to use - why wait?&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-12-06T17:58:44.997" CommentCount="2" />
  <row Id="24189" PostTypeId="2" ParentId="20599" CreationDate="2010-12-06T18:14:48.097" Score="0" ViewCount="" Body="&lt;p&gt;Typically, I think of the Formula I Racing analogy for what drives innovation in an industry. The technology on those cars will eventually make it to compact cars just like fuel injection, disk breaks, safety features, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those who build massive websites end up doing the same thing. They trail blaze a lot of the new technology. They have to build it from scratch so why pay licensing fees for software we're not able to configure? That's just one influencer. There are forces from the established businesses where cutting edge technology is not required. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Someone with little IT experience can buy a Windows Server out of the box and probably get it to run. Add some accounts, figure out file sharing and now everyone has a place to clutter with their 5000 spread sheets and presentations-most of the work done with a mouse. Not ideal, but &quot;that's all we need.&quot; Internal mail? Get a local VAR to put Exchange on this box since &quot;that's all we need.&quot; Wouldn't an intranet be cool? The VAR mentions that your box came with a 'free' web server. &quot;Free? That's all we need.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Believe it or not, many of these companies grow up and buy lots of 3rd-Party app licenses and prefer that they will run on their servers; almost like it's free. They have an admin at some point that got their MS Cert. Since they're already paying someone to handle their server, they can just let them handle the next 500 servers for 'free.' They even hire their own programmers who can write apps for their servers without having to buy new ones - just like their free. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually, developers get tired of working for these companies and want to build their own web company. Find a host for .NET, &quot;that's all we need.&quot; They just hope the money they spend on the licenses saves them time in the long run.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-06T18:14:48.097" />
  <row Id="24190" PostTypeId="1" AcceptedAnswerId="24198" CreationDate="2010-12-06T18:15:55.450" Score="8" ViewCount="280" Body="&lt;p&gt;This might be a stupid question, but it's been in the back of my head for a while and I can't find a decent answer anywhere else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a teacher who says we should explicitly list each parameter with a description, even if there's only one.  This leads to a lot of repetition:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;double MyFunction(const int MyParam);&#xA;// Function: MyFunction&#xA;// Summary: Does stuff with MyParam.&#xA;// Input: int MyParam - The number to do stuff with.&#xA;// Output: MyParam with stuff done to it.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;When writing in-code documentation, how detailed are you?&lt;/p&gt;&#xA;" OwnerUserId="8810" LastActivityDate="2011-03-17T21:59:48.033" Title="Commenting/In-Code Documentation Styles" Tags="&lt;documentation&gt;&lt;comments&gt;&lt;coding-style&gt;" AnswerCount="7" />
  <row Id="24191" PostTypeId="2" ParentId="24157" CreationDate="2010-12-06T18:16:46.277" Score="5" ViewCount="" Body="&lt;h2&gt;Register him an account for &lt;a href=&quot;http://www.stackoverflow.com&quot;&gt;StackOverflow.com&lt;/a&gt; and &lt;a href=&quot;http://programmers.stackexchange.com&quot;&gt;Programmers.StackExchange.com&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;and get him into the habit of &lt;strong&gt;browsing&lt;/strong&gt; different &lt;strong&gt;questions when&lt;/strong&gt; he is &lt;strong&gt;bored&lt;/strong&gt;. Start with the hot/most popular questions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Also&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Help him come up with &lt;strong&gt;a goal&lt;/strong&gt; of something he wants &lt;strong&gt;to create&lt;/strong&gt; that is slightly beyond his reach, a simple game, an app that can send a tweet? It has to be something &lt;strong&gt;that is exciting&lt;/strong&gt;. This will help guide the topics he exposes himself to and &lt;strong&gt;provide him motivation&lt;/strong&gt; through the tangible output he creates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;And&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where possible &lt;strong&gt;don't buy books in physical form&lt;/strong&gt; &lt;em&gt;if he works well with digital print&lt;/em&gt;, I am sure one of you has an android or iphone or blackberry or ipod touch? Get the ibooks or kindle app and &lt;strong&gt;buy digital versions&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having to deal with a physical book slows the process of knowledge acquisition; the tools built into digital readers provide &lt;strong&gt;great benefits&lt;/strong&gt; to technical reading.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Note: as mentioned in the comments, there are drawbacks to digital vs printed books, so take this point with a grain of salt&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="3757" LastEditorUserId="3757" LastEditorDisplayName="" LastEditDate="2010-12-07T23:58:29.460" LastActivityDate="2010-12-07T23:58:29.460" CommentCount="2" />
  <row Id="24193" PostTypeId="2" ParentId="24190" CreationDate="2010-12-06T18:23:58.903" Score="3" ViewCount="" Body="&lt;p&gt;If it's a public API method then yes you should provide detailed documentation, especially on parameters and expected behaviour.  Many people feel that this can be relaxed for private methods/functions, YMMV.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall I prefer writing clean code (small methods/functions that do one thing and one thing well) with sensible variable names.  This makes much of your code self-documenting.  However, I certainly always document any edge cases, uses of concurrency and complex algorithms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short think of your self as a little bit worse for wear at 3am in the morning 3 months from now.  You'll be thanking yourself for your awesome public docs as opposed to figuring out what parameter (boolean flag) means...&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-06T18:23:58.903" />
  <row Id="24194" PostTypeId="2" ParentId="24190" CreationDate="2010-12-06T18:26:39.497" Score="1" ViewCount="" Body="&lt;p&gt;That's similar to how most -Doc frameworks parse in-code documentation (JavaDoc, PHPDoc, etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From Java, auto-generated by IDE:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/**&#xA; * [Description]&#xA; * @param str [Description]&#xA; * @param isCondition [Description]&#xA; * @return [Description]&#xA; */&#xA;public int testFunction(String str, boolean isCondition) {&#xA;    ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This is the same format used to generate the Documentation for the built-in language features - Example: &lt;a href=&quot;http://download.oracle.com/javase/6/docs/api/java/lang/String.html&quot; rel=&quot;nofollow&quot;&gt;http://download.oracle.com/javase/6/docs/api/java/lang/String.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This format is quite helpful because it clearly shows to any third-party user how to interface with your code.  If your functions are private methods that are only used internally, then it can be a little pointless - but I'd guess your teacher is trying to get you into a good practice until you are all experienced with making that distinction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only bit I often find somewhat redundant is the return description - Usually it's nearly identical to my method description.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-06T18:26:39.497" />
  <row Id="24196" PostTypeId="2" ParentId="24190" CreationDate="2010-12-06T18:30:13.177" Score="4" ViewCount="" Body="&lt;p&gt;Several languages have API document generation features like Ruby, Java, C# and C++ (via a command line tool).  When you think about it in that way, it makes writing the API docs much more important.  After all, it answers the question &quot;how do I do ...?&quot;  So I won't do anything repetitive like &lt;code&gt;Function: MyFunction&lt;/code&gt; when the name of the function is plain for everyone to see.  The API doc generation tools are smart enough to do that for me.  However, the following details are useful, particularly on public methods/functions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Summary (what it does and when relevant a summary of how to use it)&lt;/li&gt;&#xA;&lt;li&gt;List of parameters and what is expected&lt;/li&gt;&#xA;&lt;li&gt;What the return value (output) will be&lt;/li&gt;&#xA;&lt;li&gt;Any exceptions that can be thrown explicitly and why&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These can become useful reference tools when you are trying to debug code.  Many IDEs will also use the API docs in their tool tips as you hover over the function name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's a language without those features, the comments help, but not nearly as much.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-06T18:30:13.177" CommentCount="3" />
  <row Id="24198" PostTypeId="2" ParentId="24190" CreationDate="2010-12-06T18:33:40.520" Score="11" ViewCount="" Body="&lt;p&gt;For starters, I agree that the &quot;Function:&quot; line in your example is completely redundant. It's also been my experience that people taught in school to add that type of comment continue adding that type of comment in their production code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good comments don't repeat what's in the code. They answer the question &quot;Why?&quot; instead of &quot;What?&quot; or &quot;How?&quot; They cover expectations about the inputs, as well as how the code will behave under certain conditions. They cover why algorithm X was chosen instead of algorithm Y. In short, exactly the things that wouldn't be obvious to someone else&lt;sup&gt;1&lt;/sup&gt; from reading the code.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;&#xA;1: Someone else who is familiar with the language the code is written in. Don't write comments to teach, comment to supplement information.&#xA;&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="5621" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-06T19:47:14.420" LastActivityDate="2010-12-06T19:47:14.420" CommentCount="6" />
  <row Id="24200" PostTypeId="2" ParentId="24159" CreationDate="2010-12-06T18:39:48.463" Score="1" ViewCount="" Body="&lt;p&gt;As someone coding in Matlab on a daily basis as a researcher in biology, I do have to ask: What makes Matlab &quot;not a real language&quot; in your opinion? Its history of being good for numerical analysis? Because Matlab does fit all the requirements on your list, and the disadvantage #1 can be taken care of with a good set-up of the license server (I don't need VPN in order to use a license at home).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, I guess that, in the end, the choice of programming language should really depend on the goals of the class. If what you want is give the students an idea of what they can do with programming, Matlab is great, because it's easy to write code, easy to debug, and the documentation is excellent. Python (with SciPy/NumPy/matplotlib) could be an alternative, but is a bit harder to get into than Matlab. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this is an introductory course for &quot;general programming&quot;, after which they go on and learn a lot more programming, Matlab is not such a great choice, because students will not have learned to do declarations, they'll know nothing about pointers, and because they'll still start counting at 1.&lt;/p&gt;&#xA;" OwnerUserId="8957" LastActivityDate="2010-12-06T18:39:48.463" CommentCount="10" />
  <row Id="24205" PostTypeId="2" ParentId="23537" CreationDate="2010-12-06T19:00:05.287" Score="1" ViewCount="" Body="&lt;p&gt;Ability to do glue code -- stuff like sed, awk, utilities like sort, uniq in *NIX, Linux and general shell scripting in all other platforms.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-06T19:00:05.287" />
  <row Id="24206" PostTypeId="2" ParentId="10373" CreationDate="2010-12-06T19:01:33.380" Score="1" ViewCount="" Body="&lt;p&gt;It depends on what is the cost difference and whether it is worth my time to figure out that cost difference. If it is a matter of $10-20/month, then I surely dont think its a big deal for most people and they would prefer simplicity over cost. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if its a matter of a few hundred/thousands dollars per month, I would definitely not mind taking the time out to figure what I exactly need and what I don't. &lt;/p&gt;&#xA;" OwnerUserId="8652" LastActivityDate="2010-12-06T19:01:33.380" />
  <row Id="24207" PostTypeId="2" ParentId="23965" CreationDate="2010-12-06T19:05:23.453" Score="-2" ViewCount="" Body="&lt;p&gt;x86 and most other assembly language =)&lt;/p&gt;&#xA;" OwnerUserId="6843" LastActivityDate="2010-12-06T19:05:23.453" CommentCount="2" />
  <row Id="24208" PostTypeId="2" ParentId="16301" CreationDate="2010-12-06T19:09:31.000" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You should be able to type as fast as you can think. Maybe faster.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there is a lag between the time you think and the time you can get code onto your editor, then you have a problem. If you have to think about the keys you are typing when you are typing, you have a bigger problem. &lt;/p&gt;&#xA;" OwnerUserId="8652" LastActivityDate="2010-12-06T19:09:31.000" CommunityOwnedDate="2011-01-23T10:19:44.323" CommentCount="2" />
  <row Id="24209" PostTypeId="2" ParentId="23691" CreationDate="2010-12-06T19:24:41.013" Score="6" ViewCount="" Body="&lt;p&gt;I think a lot of it is the &lt;em&gt;illusion&lt;/em&gt; of job security most people currently have when they are employed full time.  I have not seen that full time employers are now any more loyal to there FTEs than they are to contractors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is also the administrative overhead (billing, taxes, accounting, etc, etc) of freelancing that most people don't like to deal with.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-06T19:24:41.013" CommunityOwnedDate="2011-01-13T23:31:13.497" CommentCount="1" />
  <row Id="24210" PostTypeId="2" ParentId="11637" CreationDate="2010-12-06T19:26:40.227" Score="0" ViewCount="" Body="&lt;p&gt;As per your comment&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I don't trust users not to create a&#xA;  stupid question like &quot;what is 1+1&quot; I&#xA;  don't see how this can guarantee&#xA;  security.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You don't need to guarantee security - in fact having a question like that shouldn't be a problem. Let users set the hints they need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now for ebanking, there is a juicy enough target that phishers do make good money, so if you are in the same space you could look at what some of the banks do very successfully in the anti-phishing space - &lt;a href=&quot;http://www.antiphishing.org/&quot; rel=&quot;nofollow&quot;&gt;antiphishing.org&lt;/a&gt; has some useful info, then applications like &lt;a href=&quot;http://www.trusteer.com/&quot; rel=&quot;nofollow&quot;&gt;Trusteer's Rapport&lt;/a&gt; provide further security around the connection, and for the higher value areas they use 2 factor auth, often in the form of smart cards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The solutions for various different risk and usability levels are pretty well understood, so you might find it is simpler to reuse an existing concept than redevelop - the cost of usability testing could be high!&lt;/p&gt;&#xA;" OwnerUserId="9062" LastActivityDate="2010-12-06T19:26:40.227" />
  <row Id="24211" PostTypeId="2" ParentId="24159" CreationDate="2010-12-06T19:28:03.953" Score="4" ViewCount="" Body="&lt;p&gt;If you are going to teach them how to program regardless of what it will be used for, then start with a programming language that is easy to understand.  &lt;strong&gt;Ruby or Python&lt;/strong&gt; seem like the best option right now.  They are simple in their syntax, very popular, and fairly new which guarantees they'll be available for quite some time.  They can also use them for websites and webservices with frameworks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No one really uses Basic or QBasic anymore and C while being the best in my opinion to teach a deep understanding or programming (memory management, stack, pointers, objects with C++, structures, etc.), it's too complicated and also &quot;verbose&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was taught OOP Pascal when I started and I wish they had started me with functional programming before telling me that everything needs to be an object.  I didn't grasp the difference and the advantages and disadvantages until years later.&lt;/p&gt;&#xA;" OwnerUserId="9050" LastActivityDate="2010-12-06T19:28:03.953" />
  <row Id="24212" PostTypeId="1" AcceptedAnswerId="24263" CreationDate="2010-12-06T19:35:36.850" Score="4" ViewCount="143" Body="&lt;p&gt;If yes, can you provide an example? Is it due to learning new tricks that you wouldn't learn otherwise by reading other's code? Or any other reasons as well?&lt;/p&gt;&#xA;" OwnerUserId="8652" LastActivityDate="2010-12-06T23:54:32.080" Title="Has working on open source projects helped your productivity in your day job?" Tags="&lt;productivity&gt;&lt;open-source&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="24213" PostTypeId="1" AcceptedAnswerId="24214" CreationDate="2010-12-06T19:38:31.790" Score="7" ViewCount="258" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/12572/how-do-you-maximise-the-knowledge-that-you-gain-from-a-programming-book&quot;&gt;How do you maximise the knowledge that you gain from a programming book?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I have many of them, and I have the feeling that I do not extract information from most of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please advise me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: (I like to know &lt;strong&gt;why&lt;/strong&gt;)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-06T21:26:34.963" LastActivityDate="2010-12-06T21:26:34.963" ClosedDate="2010-12-06T22:26:58.027" Title="How can I get the maximum knowledge from technical books I buy?" Tags="&lt;learning&gt;&lt;reading&gt;&lt;book&gt;" AnswerCount="6" CommentCount="10" FavoriteCount="4" />
  <row Id="24214" PostTypeId="2" ParentId="24213" CreationDate="2010-12-06T19:39:57.700" Score="20" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Read slowly&lt;/strong&gt;: Tehnical material is hard to understand as it is.  The slower and more deliberately you read, the better your chances are at understanding the material.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Read difficult sections more than once&lt;/strong&gt;: Difficult subjects aren't meant to be picked up on quickly.  This stuff isn't easy and things might require more than one read.  Plus, like watching a movie multiple times, you end up picking up facts you might have missed the first time through.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Work all of the Sample Problems&lt;/strong&gt;: Practice Practice Practice. This is the most important, you can't learn without doing in our field.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Contact the author&lt;/strong&gt;: Some authors can be suprisingly helpful and friendly (like Jon Skeet) and others won't.  Contacting the author with questions helps you both out and is encouraged.  Of course,&#xA;you should try to figure out the problem yourself first before asking for help.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Read right before going to bed&lt;/strong&gt;: All of the &lt;em&gt;Head First&lt;/em&gt; books suggest this, I guess it has something to do with the conversion of short-term memory to long-term memory in your sleep.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Read incrementally&lt;/strong&gt;: You can't read everything in one sitting, it's best to devote a little bit of time every day to make sure the knowledge has time to soak in and protect yourself from glossing over subjects.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Don't give up&lt;/strong&gt;: this stuff may be boring and tedious at times, but the key is to keep plugging away at it.  No-one becomes an expert overnight.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some technical books are designed to be read cover-to-cover and others are built as more of a reference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find the books that start you off with the basics and slowly build your understanding as the book progresses to be of the most value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might be trying to learn from a reference book when it would better suit you to find one that teaches you progressively from start to finish.&lt;/p&gt;&#xA;" OwnerUserId="2044" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-06T20:23:03.610" LastActivityDate="2010-12-06T20:23:03.610" CommentCount="9" />
  <row Id="24215" PostTypeId="2" ParentId="23691" CreationDate="2010-12-06T19:41:19.540" Score="2" ViewCount="" Body="&lt;p&gt;&lt;H2&gt;DEBT&lt;/H2&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my youth I didn't think debt was a big thing, and got into a lot of student loans.  This now means I get to work very hard to pay them off.  A startup business wouldn't provide the income I need to keep up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The SBA has shown in the past that a high percentage of businesses fail in the first five years, and one of the major reasons is &lt;strong&gt;under-capitalization&lt;/strong&gt;.   I would recommend that anyone getting into their own business make sure they can support themselves for a long period of time without any income from the business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said all that, as soon as my situation changes, I will be looking at getting back into business full-time (have had a few side ones in the past).  Even if I don't make as much as my job, the freedom is worth the cost.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastEditorUserId="1842" LastEditorDisplayName="" LastEditDate="2010-12-06T20:16:27.267" LastActivityDate="2010-12-06T20:16:27.267" CommunityOwnedDate="2011-01-13T23:31:13.497" />
  <row Id="24216" PostTypeId="2" ParentId="610" CreationDate="2010-12-06T19:47:30.550" Score="1" ViewCount="" Body="&lt;p&gt;Surprised no one mentioned keyword methods in Smalltalk, one of the languages best features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A method can have a name broken up by colons, like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Table &amp;gt;&amp;gt; atRow:column:put:&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(The &lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt; is just a documentation shorthand for showing the class that owns the method.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To call it, you'd use each part of the name as a specifier:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;aCell := DataCell new.&#xA;aTable := Table new.&#xA;aTable atRow: 3 column: 2 put: aCell&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I find it much more readable than &lt;code&gt;table.addCell(3, 2, aCell);&lt;/code&gt; even if it is a little more verbose sometimes.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-12-06T19:47:30.550" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="1" />
  <row Id="24217" PostTypeId="2" ParentId="24097" CreationDate="2010-12-06T19:50:34.807" Score="2" ViewCount="" Body="&lt;p&gt;One drawback of these types of jobs is that your ego will take a hit, since programmers are usually pretty far down the totem pole of I-bank status.  If you're working on a trading system, then the traders will be the BMOCs (big men on campus) and you will be the wimpy freshman who has to keep out of their way or risk being pushed into a locker.&lt;/p&gt;&#xA;" OwnerUserId="5415" LastActivityDate="2010-12-06T19:50:34.807" />
  <row Id="24218" PostTypeId="2" ParentId="24213" CreationDate="2010-12-06T19:51:00.377" Score="2" ViewCount="" Body="&lt;p&gt;Did you do the exercises?&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-06T19:51:00.377" CommentCount="6" />
  <row Id="24219" PostTypeId="2" ParentId="24212" CreationDate="2010-12-06T19:51:50.143" Score="3" ViewCount="" Body="&lt;p&gt;Yes, working on any kind of projects outside of work help expand your knowledge on a particular subject, allow you to network with other developers, and help you build your portfolio.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a developer, there is no reason not to have something working on the side, whether it is an open source or commercial project or even a technical blog.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I've found side projects a way to stay passionate about programming.  On your own projects you get to do whatever you want which can be exciting and a nice change from the day-to-day corporate programmer life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The more things you work on, the more you will learn and the more marketable you become.&lt;/p&gt;&#xA;" OwnerUserId="2044" LastActivityDate="2010-12-06T19:51:50.143" />
  <row Id="24220" PostTypeId="2" ParentId="23691" CreationDate="2010-12-06T19:53:03.793" Score="3" ViewCount="" Body="&lt;p&gt;In the US, health insurance is tied to your employment status. If I had a spouse who could put me on his health insurance, I could consider freelancing full time, but I could never make enough money to pay for living expenses plus private health insurance at my age. Health insurance for people over 50 is very, very expensive, I need to be part of a group policy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I did freelance in my 30's, I frankly hated it. I spent too much time on marketing and accounting and not enough time on the interesting parts. Plus I hated not knowing how much money I would have in any month (customers sometimes being slow to pay as well as variances in how much work I had), makes it hard to plan. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-06T19:53:03.793" CommunityOwnedDate="2011-01-13T23:31:13.497" CommentCount="1" />
  <row Id="24221" PostTypeId="1" AcceptedAnswerId="24222" CreationDate="2010-12-06T19:59:34.183" Score="6" ViewCount="176" Body="&lt;p&gt;Has it ever happened to you that you are a good developer but suddenly you need to lead a team or are responsible for some PM activities as well? Did you find that it affected your productivity? How did you handle it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love my job, but I sometimes feel I was much happier as a programmer and the additional burden of being a Project Manager is currently affecting my productivity as a developer. What do you guys suggest as remedies to this? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not have an alternative currently to quit from my job - basically because Im working for a startup that I co-founded.&lt;/p&gt;&#xA;" OwnerUserId="8652" LastActivityDate="2010-12-07T09:52:31.827" Title="Does double-shifting as a PM affect your developer-productivity?" Tags="&lt;productivity&gt;&lt;project-management&gt;" AnswerCount="6" CommentCount="3" />
  <row Id="24222" PostTypeId="2" ParentId="24221" CreationDate="2010-12-06T20:06:45.327" Score="3" ViewCount="" Body="&lt;p&gt;I think that it's impossible to quickly shift from PM mode to Dev mode.&#xA;I'm teamleader in my normal job and programmer for a website during the nights. &#xA;When I become teamleader I tried to keep contributing with the code, but I soon discovered that it was impossible. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The new responsibilities required me to speak with people or check emails several times in a hour, impossible to write code in that condition.&#xA;So now when I have some spare minutes at work I started to seat with someone of the team, especially with junior, and try to help him/her.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I saw that this is increasing team productivity overall probably more than if I could spend some time writing code.&lt;/p&gt;&#xA;" OwnerUserId="9115" LastActivityDate="2010-12-06T20:06:45.327" />
  <row Id="24223" PostTypeId="2" ParentId="24221" CreationDate="2010-12-06T20:07:37.573" Score="1" ViewCount="" Body="&lt;p&gt;Of course you like it better writing code, supervision is hard work.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-06T20:07:37.573" />
  <row Id="24224" PostTypeId="2" ParentId="24213" CreationDate="2010-12-06T20:10:09.610" Score="4" ViewCount="" Body="&lt;p&gt;Try a different book. Sometimes when learning a new subject, the first book doesn't really do anything for me, but after reading two or three different books on the same subject, something just clicks and I get it. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-06T20:10:09.610" CommentCount="1" />
  <row Id="24225" PostTypeId="2" ParentId="24212" CreationDate="2010-12-06T20:10:34.823" Score="2" ViewCount="" Body="&lt;p&gt;Well... not especially open source, but working for some hobby project in your free time can really help you with your coding skill and with your cv as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As example I started using python for a report generating tool in 2001 and then I was able to apply for a work in python in 2003.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It happened again with Java technologies and now I'm learning Scala...&lt;/p&gt;&#xA;" OwnerUserId="9115" LastActivityDate="2010-12-06T20:10:34.823" />
  <row Id="24226" PostTypeId="2" ParentId="24213" CreationDate="2010-12-06T20:19:39.290" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/24213/how-can-i-get-the-maximum-of-technical-books-i-buy/24214#24214&quot;&gt;Robert Greiner's answer&lt;/a&gt; pretty much covers it all, but I'd like to add another suggestion:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Return to books you've already read at some later time&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Re-reading passages while reading the book is good when trying to grasp difficult sections, but I find myself often extracting even more knowledge and insights when I return to such sections some time after having read them the first times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess the reason for this is that, in between that time, you've gained more knowledge and experience, thereby enabling you to further understand those parts. I often get an &lt;em&gt;Aha&lt;/em&gt;-moment when returning to parts which I didn't quite grasp the first time, even though I reread them many times at that point.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-12-06T20:19:39.290" />
  <row Id="24228" PostTypeId="2" ParentId="24213" CreationDate="2010-12-06T20:21:49.320" Score="3" ViewCount="" Body="&lt;p&gt;Robert's advice is excellent - for some part of the population, but I tend to run aground with it.  I find that I need to get a sense of where something is heading before I can focus on the details, and I also find it a lot easier to learn stuff when I've got a genuine reason.  (That could be because I really need to use it now, or it could be because I find it very appealing and interesting).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(This is assuming your book is a tutorial rather than a reference book).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Take a quick pass through, skim chapter headings, dip in here and there.  Survey the book without trying to take it all in.  Read fast, not slow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) What James Bach calls &quot;Plunge in and quit&quot; - jump right in to a chapter that really appeals to me and start trying something out.  This helps me decide if it's the sort of book where I'll need to fully understand earlier sections in order to get anywhere with later sections (does it build each chapter on the previous one).  If not, then pick the one that appeals the most - start reading this.  Now I read more slowly.  I may run aground quickly - if that's because I need earlier chapters, then I may go back now and read those - with the additional motivation that I &lt;em&gt;know&lt;/em&gt; why I need to understand them now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Try stuff out.  Try other books.  Find as many examples as I can - I rarely learn well from just two or three examples, and I learn almost nothing from just a single example.  Many books will only give one.  I like to have several books around so I can see several takes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you really need to figure out is whether your learning style is closer to Robert's, or mine.  It's possible that the stuff you're trying to pick up just isn't motivating enough for you right now - is it something you're using currently, or will be using soon?  Or do you just feel like you &quot;should&quot; know it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might find James Bach's &quot;Secrets of a Buccaneer Scholar&quot; worth reading - he discusses his own approach to learning in some detail, and I think even if your approach doesn't match his, you can learn a lot from how he analyses how he approaches learning new skills.&lt;/p&gt;&#xA;" OwnerUserId="8805" LastActivityDate="2010-12-06T20:21:49.320" CommentCount="1" />
  <row Id="24229" PostTypeId="1" CreationDate="2010-12-06T20:27:16.003" Score="9" ViewCount="896" Body="&lt;p&gt;I'm currently a school kid in the last 2 terms of my GCSEs (16 year old, I'm not sure of the equivelant to GCSEs in US) so I'm having to start thinking about A-level, and my current thought are Physics, Maths, Further Maths and Chemistry, in quite a bit of my free time I do/learn programming although I don't consider myself good enough to be labelled a programmer. I was wondering what paths people took to get their current programming jobs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like what subjects you took at school and how they affected what you could do later, and then what you did after education.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I'm not asking this specifically towards me, but more as general guide that could be of use to others)&lt;/p&gt;&#xA;" OwnerUserId="5199" LastEditorUserId="5199" LastEditorDisplayName="" LastEditDate="2011-01-30T16:07:27.220" LastActivityDate="2011-01-30T16:58:05.740" CommunityOwnedDate="2011-01-30T16:17:45.980" Title="How did you get your programming job?" Tags="&lt;career&gt;&lt;education&gt;" AnswerCount="21" CommentCount="9" FavoriteCount="2" />
  <row Id="24231" PostTypeId="2" ParentId="21987" CreationDate="2010-12-06T20:40:28.507" Score="9" ViewCount="" Body="&lt;p&gt;I work with Intellij (9.0.4 Ultimate) and Eclipse (Helios) every day and Intellij beats Eclipse every time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How? Because &lt;strong&gt;Intellij indexes the world&lt;/strong&gt; and everything just works intuitively. I can navigate around my code base much, much faster in Intellij. F3 (type definition) works on &lt;em&gt;everything&lt;/em&gt; - Java, JavaScript, XML, XSD, Android, Spring contexts. Refactoring works everywhere and is totally reliable (I've had issues with Eclipse messing up my source in strange ways). CTRL+G (where used) works &lt;em&gt;everywhere&lt;/em&gt;. CTRL+T (implementations) keeps track of the most common instances that I use and shows them first. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code completion and renaming suggestions are so clever that it's only when you go back to Eclipse that you realise how much it was doing for you. For example, consider reading a resource from the classpath by typing &lt;code&gt;getResourceAsStream(&quot;/&lt;/code&gt; at this point Intellij will be showing you a list of possible files that are currently available on the classpath and you can quickly drill down to the one you want. Eclipse - nope.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The (out of the box) Spring plugin for Intellij is vastly superior to SpringIDE mainly due to their code inspections. If I've missed out classes or spelled something wrong then I'm getting a red block in the corner and red ink just where the problem lies. Eclipse - a bit, sort of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall, Intellij builds up a lot of knowledge about your application and then uses that knowledge to help you write better code, faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong, I love Eclipse to bits. For the price, there is no substitute and I recommend it to my clients in the absence of Intellij. But once I'd trialled Intellij, it paid for itself within a week so I bought it, and each of the major upgrades since. I've never looked back.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-07T14:06:21.420" LastActivityDate="2010-12-07T14:06:21.420" CommentCount="4" />
  <row Id="24232" PostTypeId="2" ParentId="24229" CreationDate="2010-12-06T20:41:42.850" Score="15" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;How did you get to your programming job?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;By networking.  Not the router, cables and bits variety.  Rather, the original, human networking variety.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My point: you may be a computer geek, but don't ignore the social skills.  Man is a social creature.  Fighting that doesn't work so well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the technical side, my high school education emphasized math and science.  That led to an engineering degree.  That background and the networking I've mentioned led to my first job.  Since then, I've gotten one job without a referral.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, don't ignore the arts, history, English (or your native tongue), etc.  Focus on the math and science, but do take some time to make sure that you're a well rounded individual.  (Programming is a creative endeavor.  Those who don't know history are destined to repeat it.  So on and so forth.)&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-12-06T20:41:42.850" CommunityOwnedDate="2011-01-30T16:17:45.980" CommentCount="1" />
  <row Id="24233" PostTypeId="2" ParentId="24159" CreationDate="2010-12-06T20:42:32.943" Score="4" ViewCount="" Body="&lt;p&gt;From the shortlist I vote Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interesting alternatives (that I have at least some familiarity with) include Object Pascal, Modula 2, Ada, C#, Scheme, Objective CAML, F# and Haskell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I disagree with duros - I use C++ every day and I used C for years, but I don't see C-family languages as a good first choice. That includes Java, C# and Python - when you learn about pointers, it helps to make the pointer operations as explicit as possible - not hidden in the form of Java-like implicit references. For pointer stuff, I suggest a Pascal-family language first. Verbosity will be at least on a level with Java, though, and the lack of garbage collection is significant (not necessarily a disadvantage, but significant either way).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C and C++ I'd reject on weak typing issues - implicit casts, which aren't always a good thing for learning in particular. Also, there's oddities like &lt;code&gt;int *x, y;&lt;/code&gt; (y is an int, not a pointer-to-int) which can confuse. The comma operator probably catches &lt;em&gt;everyone&lt;/em&gt; when they write their first switch statement, not to mention forgetting &lt;code&gt;break&lt;/code&gt;. And C++ is just a huge language, with nice features true, but also with some real nasties.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The one thing that might make me rethink that - Visual C++ Express Edition is free (in the beer sense) and very good. So good that you might want to consider it for running-in-the-debugger-as-a-teaching-tool reasons. The same applies to Visual C# Express Edition, of course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most alternatives have issues in terms of convenient libraries. Python, Perl, Java and .NET languages (C# and F#) are hard to beat for that. Ruby probably belongs in that list, but I'm not very familiar with it. You may be able to work around some library issues for other languages by providing a &quot;distro&quot; of ready-built libraries with some automatic configuration, but this may involve quite a bit of work. For example there are libraries for just about anything for C++, but it takes a bit of research to select libraries, make builds of them that can link together compatibly, tell your tools where to find each library and so on. You can solve that to some degree with a &quot;use Linux&quot; policy, but the range of languages that get serious library support in Linux repositories is limited.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haskell in particular requires a very different skillset to more conventional languages, so should probably be disqualified unless you're are looking to teach that particular skillset. Other functional languages I've mentioned may also be rejected for similar reasons, though Objective CAML and F# are very plausible exceptions, capable of doing everything that conventional imperative languages can do with not-that-different syntax, but adding a range of tricks from the functional toolkit. F# also has the benefit of access to the .NET libraries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perl, I'd reject simply because I don't like the language - not entirely for subjective reasons, but I still wouldn't want to have to defend that position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So - Python probably still gets my vote, but a Pascal-family language is probably better for learning pointers (Free Pascal or GCC Ada) and Objective CAML is a very interesting alternative (as is the closely related F#).&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2010-12-06T20:42:32.943" />
  <row Id="24235" PostTypeId="2" ParentId="24213" CreationDate="2010-12-06T20:44:14.033" Score="2" ViewCount="" Body="&lt;p&gt;Well, years ago I decided that the fat/bible type books really suck so I focused on books which focus on specific issues and it has been working great ever since.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-06T20:44:14.033" />
  <row Id="24236" PostTypeId="2" ParentId="23691" CreationDate="2010-12-06T20:44:25.983" Score="3" ViewCount="" Body="&lt;p&gt;It seems to become increasingly difficult to work on projects alone.  There seems to be quite a bit of work out there, but not something I can take on alone.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most projects are becoming more and more complex, and it takes a team of developers/designers, etc.  This becomes difficult in freelance as I would have to contract out some of the work.&lt;/p&gt;&#xA;" OwnerUserId="5911" LastActivityDate="2010-12-06T20:44:25.983" CommunityOwnedDate="2011-01-13T23:31:13.497" CommentCount="1" />
  <row Id="24237" PostTypeId="2" ParentId="24229" CreationDate="2010-12-06T20:44:34.353" Score="1" ViewCount="" Body="&lt;p&gt;Employers won't be interested in the &quot;subjects&quot;. They look out for what you can do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've programmed since school then at the uni out of the curriculum of course. Then I had something to offer after graduation - if not industry experience then at least being firmly familiar with programming languages (C++ then) and the current tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't remember quite how I got my first job. Either I applied somewhere or I just put my profile on some career site (I think). Somebody found me, we had a meeting and I got the job. It was 2003 though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Practice with different things during your free time. Do personal projects, participate in open source projects, get involved in some chair projects and so on. Maybe you even get an offer through a professor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is a profession which does not exist in the time and space delimited by the office and working hours. It takes a lot of time and involvement. In a sense, it is a lifestyle.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-06T20:44:34.353" CommunityOwnedDate="2011-01-30T16:17:45.980" CommentCount="1" />
  <row Id="24238" PostTypeId="2" ParentId="24229" CreationDate="2010-12-06T20:52:03.147" Score="9" ViewCount="" Body="&lt;h2&gt;Be passionate about programming.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;If there is one single advice I can give its this. If you truly love programming and are passionate about it, if you apply yourself because you &lt;strong&gt;want&lt;/strong&gt; to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then everything else will I guarantee you &lt;strong&gt;fall into place&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use to be sceptical about this, but I found out to hold true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I went and did an MSc in Computer science because of the &lt;strong&gt;pleasure of learning&lt;/strong&gt;, I did projects because I really wanted to understand how things really worked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What has this lead to?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;During studies, I casually applied for a role in Gaming dev, I walked in and got the job, however I had make a decision to either throw away my MSc and start immediately or drop the offer. I thought hard, but in the end the knowledge was far more important to me. I declined the offer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the very day I finished my MSc, before I could write out my CV I was contacted for a job prospect. I was offered an interview, at the interview I demonstrated what I had done, and showed my passion. I passed all the tests. I was offered the job that same day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few years on, I decided to move on (in order to progress my career). Again I got contacted by another company, I did all the tests, and did a few interviews. Again I was offered a job. I am currently working there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is because I feel I demonstrated my passion for programming, by way of showing examples of my work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest that you work on projects outside of study, this will help you learn more in depth about the subjects you are learning at school/uni/work.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Never stop learning&quot; &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-06T21:04:04.383" LastActivityDate="2010-12-06T21:04:04.383" CommunityOwnedDate="2011-01-30T16:17:45.980" CommentCount="3" />
  <row Id="24240" PostTypeId="2" ParentId="24229" CreationDate="2010-12-06T21:04:04.820" Score="13" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;How did you get to your programming job?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;By getting a job doing Tech Support&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I figured I wouldn't be able to get an actual programming job until I finished up with school, so I got a part-time job doing tech-support and taking help-desk calls. I wanted something that was computer-related to show I had an interest in the field, and it looks better on a resume than an unrelated job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since tech support is sometimes slow, I started spending my spare time puting together scripts or small programs to make my job go faster. Since that freed up even more of my time, I started creating similar scripts/programs to help automate other users jobs. People started noticing, and when a programming position opened up, I applied for it and got the job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if a position hadn't opened up at the company I was working for, being able to put down that I worked with PCs and automated parts of my job to increase productivity would have been a great selling point on my resume.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have the experience, it is much easier to find a programming job. The hard part is finding one without experience.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-12-06T21:04:04.820" CommunityOwnedDate="2011-01-30T16:17:45.980" CommentCount="8" />
  <row Id="24241" PostTypeId="2" ParentId="610" CreationDate="2010-12-06T21:19:12.970" Score="1" ViewCount="" Body="&lt;p&gt;The ?: and ?. operators in Groovy. They handle any nulls that may happen during a sequence of method calls, so you can do stuff like:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;food = pizzaChain.nearestOpenPlace?.orderPizza() ?: makeSandwich()&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;..and not worry if there's still a pizza place open or not :)&lt;/p&gt;&#xA;" OwnerUserId="9240" LastActivityDate="2010-12-06T21:19:12.970" CommunityOwnedDate="2010-12-07T07:14:37.740" />
  <row Id="24242" PostTypeId="2" ParentId="610" CreationDate="2010-12-06T21:27:15.143" Score="1" ViewCount="" Body="&lt;p&gt;In R probably the vectorization in the conditions combined with index power. This allows you to do something like :&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;x &amp;lt;- 1:10 # a vector from 1 to 10&#xA;mean(x[x&amp;lt;5]) # takes the mean of all numbers smaller than 5&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This is a trivial example, it works with matrices, arrays, lists, more complex conditions as well. And it's a manyfold faster than any kind of looping structure.&lt;/p&gt;&#xA;" OwnerUserId="7268" LastActivityDate="2010-12-06T21:27:15.143" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="1" />
  <row Id="24243" PostTypeId="2" ParentId="24229" CreationDate="2010-12-06T21:29:02.990" Score="1" ViewCount="" Body="&lt;p&gt;The main points in the trajectory of my professional life:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In high school, I took 7 Grade 13 courses which included 3 Math courses, &quot;Finite Math,&quot; &quot;Calculus&quot; and &quot;Algebra &amp;amp; Geometry,&quot; and 3 Science courses, &quot;Biology,&quot; &quot;Chemistry,&quot; and &quot;Physics.&quot;  My average was 95% in those Math courses but 90% in those Science courses, so I had better scholarship offers to study Math and Computer Science over biochemistry for the first part of this story.  This would be in the spring of 1993 for this part of the story and my university choice was the &quot;University of Waterloo.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In university, I initially was in a co-op program where I did get placed at a bank in Toronto and failed horribly.  I was assigned tasks that I didn't have any idea how to do,e.g. how do you secure a laptop by swapping the &quot;Esc&quot; and &quot;Enter&quot; key functionalities in the BIOS, or was asked questions that weren't really questions like, &quot;Would you like to learn about tape backups?&quot; that I said &quot;No,&quot; but apparently that wasn't the right answer.  I lost this position about 8 weeks into it and had my choice of resign or be fired.  It was educational as this taught me to be sure I knew when I would be getting paid, what timesheets should be handled, and a few other things that I didn't know could be so bad in some work environments.  I knew I wanted to do a double major and proceeded to figure out what could work to go with Computer Science.  Pure Math was out due to the advanced Math courses that got rather hard in my third semester, Applied Math was too much physics that wasn't really abstract enough to appeal to me, Statistics and Actuarial Science was way too dry for me to study and live, so that left me with Combinatorics &amp;amp; Optimization.  I was a TA for 7 of my 9 semesters which gave me a little money each term and graduated in 1997.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About four months after graduating I finally got a job by applying for a job out in Seattle, Washington that I found through the Career Services at the university.  Apparently the CEO of this dot-com was also originally from Chatham and would home visiting family for Christmas and I went there for the interview 2 days before Christmas.  A week later, I talk to who would be my boss and that goes well enough that I move out to Seattle and work there for the following 6 years roughly.  As the dot-com goes under, I apply for jobs through various on-line sites and finally get a job over at drugstore.com through a recruiting company with 10 months left on my visa.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As my visa expired, I ended up moving back to Canada and going through various recruiters found a job for a local Application Service Provider doing Location-based Services work.  I was there for a little over 2 years and then got fired when I had some medical issues.  I attended some job fairs and that is where my application to my current job was submitted that led to interviews and ultimately my current job.  Thus, it can work to go to job fairs in some cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My main suggestion is to study what you enjoy and when it comes to finding work, be prepared to use every kind of connection you have to get something.  Then start figuring out what kind of progression you'd like and where you want to go after that first job as there are various professional development paths one can take,e.g. manager, architect, consultant, etc.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-06T21:29:02.990" CommunityOwnedDate="2011-01-30T16:17:45.980" />
  <row Id="24244" PostTypeId="2" ParentId="24229" CreationDate="2010-12-06T21:47:18.090" Score="1" ViewCount="" Body="&lt;p&gt;&lt;H2&gt;TYPING&lt;/H2&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most important class I've ever taken.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-12-06T21:47:18.090" CommunityOwnedDate="2011-01-30T16:17:45.980" CommentCount="3" />
  <row Id="24245" PostTypeId="2" ParentId="24229" CreationDate="2010-12-06T21:48:25.623" Score="2" ViewCount="" Body="&lt;p&gt;I learnt some C programming on DOS, when I was doing my PhD on Seismology/Mechanics. Later, when I gave up my PhD and started searching a job as a programmer, I got hired because of two things:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I said that I gave up my PhD just because I didn't agree with my supervisor;&lt;/li&gt;&#xA;&lt;li&gt;I said that I knew C, Basic but I would learn fast, and the interviewer asked: &quot;How long it will take for you to write a networking Client/Server multithreading application?&quot;, I said: &quot;two weeks, one to learn Java, and one to write&quot;...&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The moral of this story is that &lt;strong&gt;if you really want to become a programmer (or someone else), you will do it.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-06T21:48:25.623" CommunityOwnedDate="2011-01-30T16:17:45.980" CommentCount="1" />
  <row Id="24246" PostTypeId="2" ParentId="24229" CreationDate="2010-12-06T21:51:17.647" Score="0" ViewCount="" Body="&lt;p&gt;Networking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's how I got my job.  I was far from a 4.0 student but I knew how to talk to people, be confident in my skill set and sell ideas.  You need that - nothing wrong with hitting the books but you need to get out and talk to people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're of no use to me if you can't work in a team setting, get your thoughts across in words and speak up in meetings.&lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-12-06T21:51:17.647" CommunityOwnedDate="2011-01-30T16:17:45.980" />
  <row Id="24247" PostTypeId="2" ParentId="24221" CreationDate="2010-12-06T21:52:12.550" Score="1" ViewCount="" Body="&lt;p&gt;Yes it does. I worked at a firm where the team leader quite and a replacement was no where in site. The head of accounting started to 'manage' our group by basically let us manage ourselves and explain everything we were working on in a weekly meeting as if speaking to a 2-year-old (Including dealing with his tantrums.). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I felt I wasn't learning anything. Spending too much time on BS instead of coding. No one in our group was considered good enough to be the leader. The situation was chaos. Once the main project I was working on was near completion, I started looking for another job and found one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your goal is to be a PM, do both for awhile, but don't stick with a situation where you can't choose the path you want. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-06T21:52:12.550" CommentCount="1" />
  <row Id="24248" PostTypeId="2" ParentId="24229" CreationDate="2010-12-06T21:59:19.440" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;With my strong will power&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started my career as a web master/web page designer in big insurance company at 1996, after graduating university(CS major).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally study CGI and Java during that time(about 1 year) even if it was not really required as a job duty. Later I focused on more developer job than admin. &lt;/p&gt;&#xA;" OwnerUserId="6924" LastActivityDate="2010-12-06T21:59:19.440" CommunityOwnedDate="2011-01-30T16:17:45.980" />
  <row Id="24249" PostTypeId="2" ParentId="16301" CreationDate="2010-12-06T22:06:24.860" Score="0" ViewCount="" Body="&lt;p&gt;Great answers here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing I would add. Nothing blows out a schedule like discovering, mid-project, that whatever you're building has to be nit-for-nat equivalent to some prior product or package.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-12-06T22:06:24.860" CommunityOwnedDate="2011-01-23T10:19:44.323" />
  <row Id="24250" PostTypeId="2" ParentId="24229" CreationDate="2010-12-06T22:10:22.490" Score="1" ViewCount="" Body="&lt;p&gt;My number one skill was DEDICATION.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And luck really, don't give up, be positive and be confident.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I actually got my job out of luck, had very little college experience and no degrees, went through a job recruiter and landed the job, just had to prove myself at my work and I've done that and more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just don't be afraid to learn on the job and be prepared to get stuck sometimes, there are always others that can help you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And one of the biggest tools I use at my job is google.com :)&lt;/p&gt;&#xA;" OwnerUserId="9225" LastActivityDate="2010-12-06T22:10:22.490" CommunityOwnedDate="2011-01-30T16:17:45.980" />
  <row Id="24251" PostTypeId="2" ParentId="610" CreationDate="2010-12-06T22:12:08.490" Score="4" ViewCount="" Body="&lt;h1&gt;Python&lt;/h1&gt;&#xA;&#xA;&lt;h2&gt;Dict Comprehensions&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Someone mentioned list comprehensions, so I just wanted to add &lt;em&gt;dictionary&lt;/em&gt; comprehensions which came in Python 2.7:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; def dict_filter(cb, info):&#xA;...     return {key:info[key] for key in info if cb(key)}&#xA;... &#xA;&amp;gt;&amp;gt;&amp;gt; carson = {&quot;firstname&quot;: &quot;Carson&quot;, &quot;lastname&quot;: &quot;Myers&quot;, &quot;age&quot;: 20}&#xA;&amp;gt;&amp;gt;&amp;gt; privatize = lambda x: x in ('firstname', 'age')&#xA;&amp;gt;&amp;gt;&amp;gt; dict_filter(privatize, carson)&#xA;{'age': 20, 'firstname': 'Carson'}&#xA;&#xA;&#xA;&amp;gt;&amp;gt;&amp;gt; {a+1:chr(a+65) for a in range(26)}&#xA;{1: 'A', 2: 'B', 3: 'C', 4: 'D', 5: 'E', 6: 'F', 7: 'G', &#xA; 8: 'H', 9: 'I', 10: 'J', 11: 'K', 12: 'L', 13: 'M', 14: 'N', &#xA; 15: 'O', 16: 'P', 17: 'Q', 18: 'R', 19: 'S', 20: 'T', 21: 'U',&#xA; 22: 'V', 23: 'W', 24: 'X', 25: 'Y', 26: 'Z'}&#xA;&#xA;&#xA;&amp;gt;&amp;gt;&amp;gt; def invert(a_dict):&#xA;...     return {v:k for k, v in a_dict.iteritems()}&#xA;... &#xA;&amp;gt;&amp;gt;&amp;gt; invert({'a':1, 'b':2, 'c':3})&#xA;{1: 'a', 2: 'b', 3: 'c'}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="54" LastActivityDate="2010-12-06T22:12:08.490" CommunityOwnedDate="2010-12-07T07:14:37.740" />
  <row Id="24252" PostTypeId="1" AcceptedAnswerId="24253" CreationDate="2010-12-06T22:15:24.200" Score="7" ViewCount="383" Body="&lt;p&gt;As we all know, every software has bugs in it. It is matter of time to discover it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suppose if you just found your product has potential big issue and it was not developed by you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How would you deal with it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually speak up with some data &amp;amp; analysis even if it is not my part of code.&#xA;I am wondering if it is too offensive because I often faced on some resistance(depending on the issue), which would eventually be gone.&lt;/p&gt;&#xA;" OwnerUserId="6924" LastActivityDate="2010-12-09T19:36:12.670" Title="Diplomatically point out the obvious problem in a product" Tags="&lt;work-environment&gt;&lt;great-programmer&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="2" />
  <row Id="24253" PostTypeId="2" ParentId="24252" CreationDate="2010-12-06T22:19:30.093" Score="9" ViewCount="" Body="&lt;p&gt;For &quot;big issue not developed by you&quot; it is not up to you personally to figure out how to handle this issue, so it automatically implies you need to bring it up with your immediate superior, along with an initial estimate of the severeness of the issue.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If at all possible up front also a suggested way to fix it - preferably also with an estimate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason for this is that &quot;big issues&quot; may result in quite a bit of work to fix, and perhaps even cause schedules to slip if you need to redo a lot of testing etc.  Hence it may well be declared a &quot;known issue&quot; to the users and not fixed yet, to keep on schedule.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But to reiterate, bring the issue to the attention of your organization.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;EDIT:  Also, coorporate culture should encourage that code is not owned by an individual but everybody.  This means that it is not a blame game, but a common responsibility to find and fix.  If somebody consistently produce sub-standard code, it is time to introduce code review to catch as much as possible as early as possible.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-12-07T09:26:08.470" LastActivityDate="2010-12-07T09:26:08.470" CommentCount="5" />
  <row Id="24254" PostTypeId="2" ParentId="24252" CreationDate="2010-12-06T22:29:03.640" Score="2" ViewCount="" Body="&lt;p&gt;The first thing is to understand the genuine scale of the issue.  If an issue has existed for any period of time there is a good chance that it's not &lt;em&gt;as big&lt;/em&gt; an issue as some might make out.  I've had people bring me &quot;critical&quot; issues that have been in a live system for two years - with respect if it's been in the system with no-one reporting it for two years there is a fair chance that while potentially significant it's not that critical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that as you say a full analysis of the problem with an assessment of the consequences (impact, probability of it occurring).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then options for fixing it (ideally a range - if it's that big you may want an urgent quick fix then a more permanent resolution) with estimates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the most important thing is the tone you use to raise the issue.  It shouldn't be critical, it should be about improving things and you should be sensitive to those who've worked on the system for a while and not look to point blame.  Even if the person who wrote the bad code is there it may be that he or she had their backs to the wall on an impossible deadline and never had the chance to fix it so never assume incompetence.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-06T22:29:03.640" CommentCount="2" />
  <row Id="24255" PostTypeId="2" ParentId="16301" CreationDate="2010-12-06T22:41:42.880" Score="0" ViewCount="" Body="&lt;p&gt;For a programmer, decent knowledge of a scripting language such as Python to quickly prototype their ideas and discussing the prototype with others is invaluable.  The closer the prototype is to the actual requirement, the lesser time spent talking and more with coding, documenting, testing and supporting and maintaining/upgrading.  The actual coding becomes a simple translation from the script to the programming language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, knowledge of sed, awk, vim, emacs(preferably elisp as well), shell scripting, and a decent knowledge of all the tools available on the OS with the knowledge of when to use the tools could help losing time as well.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-12-06T22:41:42.880" CommunityOwnedDate="2011-01-23T10:19:44.323" />
  <row Id="24256" PostTypeId="2" ParentId="24252" CreationDate="2010-12-06T22:59:29.700" Score="3" ViewCount="" Body="&lt;p&gt;I have always found that pointing out or asking about things that I see as issues is a good thing. Many developers have their ego's wrapped up in their code so at times it can be uncomfortable but if you do it nicely you can gain the respect of even the person who wrote the code. One of the following will happen:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The problem will get fixed and everyone learns from it.&lt;/li&gt;&#xA;&lt;li&gt;There wasn't really a problem in the first place, you just misunderstood it. Everyone learns from your questions about it.&lt;/li&gt;&#xA;&lt;li&gt;The problem is documented but left the way it is. Everyone learns not to do it this way in the future.&lt;/li&gt;&#xA;&lt;li&gt;You get in trouble. You learn that this isn't the place you want to work.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="3697" LastActivityDate="2010-12-06T22:59:29.700" CommentCount="3" />
  <row Id="24257" PostTypeId="2" ParentId="17519" CreationDate="2010-12-06T23:00:49.730" Score="6" ViewCount="" Body="&lt;p&gt;It's pure history.  In ancient days the early cave-graphics programmers thought of the monitor (teletype? stonetype?) viewing surface as two dimensional graph paper.  In math and engineering the usual conventions for plotting data points on graph paper is: x=right, y=up.   Then one day, about a week after the invention of the silicon wheel, someone thought of 3D graphics.  When the candle-bulb of this idea blinked on above their head, for whatever reason, they choose to add Z= away from viewer.  (Ouch, my right hand hurts just imagining that.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They had no idea that someday their far descendants would become engineers, scientists, fine artists, commercial artists, animators, product designers etc and find 3D graphics useful.   All these fine modern people use right-handed coordinate systems to be consistent with each other and the more established math texts and physics conventions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is foolish to base the 3D coordinate system on the display surface.  It's the model that counts - the triangles and polygons and planes describing a house, chair, overweight green ogre or galaxy.  Nowadays we all design and model stuff in right-handed XYZ systems, and do so in terms of the model's world, even before thinking how it'll be rendered.  The camera is added at some point, possibly made to fly around in crazy ways, and it's invisible infrastructure that converts the model to pixels that within its bowels must twerk around with coordinated system transforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just to add to the confusion, some graphics libraries recognize that CRTs scan the image from top to bottom, and so have Y=down.  This is used even today in all windowing systems and windows managers - X11, fvwm, gtk+, Win31 API, etc.  How new-fangled 3D GUI systems like Clutter, Beryl etc deal with Z, is a separate issue from 3D graphics modeling. This need concern only applications programmers and GUI designers.&lt;/p&gt;&#xA;" OwnerUserId="4280" LastActivityDate="2010-12-06T23:00:49.730" CommentCount="2" />
  <row Id="24258" PostTypeId="2" ParentId="24252" CreationDate="2010-12-06T23:07:50.983" Score="1" ViewCount="" Body="&lt;p&gt;My approach if I run into what looks to me like a serious problem that falls outside my remit is to ask about it. Or try to ask a series of questions that will lead someone who already understands the code to see the problem. That way I'm not actually bumping into someone else's territory and if it's done with a bit of subtlety it's not even clear that I was aware of the problem, it's just a conversation that happens to end up with a useful outcome.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-12-06T23:07:50.983" />
  <row Id="24259" PostTypeId="2" ParentId="23809" CreationDate="2010-12-06T23:11:43.230" Score="0" ViewCount="" Body="&lt;p&gt;I guess I'll throw in my story to my own question...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do &lt;a href=&quot;http://en.wikipedia.org/wiki/6502&quot; rel=&quot;nofollow&quot;&gt;6502&lt;/a&gt; assembly, which is by most standards a bit old. Of course I only do it for game programming for the &lt;a href=&quot;http://en.wikipedia.org/wiki/Nintendo_Entertainment_System&quot; rel=&quot;nofollow&quot;&gt;NES&lt;/a&gt; which is a very interesting platform to program on. There is a small community of 6502 programmers out there and ironic as it is, we seem to be much more scientific about the 6502 and specifically the NES as a platform than the original programmers were.&lt;/p&gt;&#xA;" OwnerUserId="7007" LastActivityDate="2010-12-06T23:11:43.230" />
  <row Id="24260" PostTypeId="2" ParentId="24252" CreationDate="2010-12-06T23:22:11.700" Score="1" ViewCount="" Body="&lt;p&gt;I guess this would be much more diplomatic - Find out who the developer is (using your source control system), talk to him regarding this bug. Work together to find out if it's a bug and the severity if its left unnoticed. Then go to your supervisor along with that developer and discuss the issue and ways to solve it.&lt;/p&gt;&#xA;" OwnerUserId="9208" LastActivityDate="2010-12-06T23:22:11.700" />
  <row Id="24261" PostTypeId="2" ParentId="12216" CreationDate="2010-12-06T23:31:39.457" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;That funky error/warning/hint/suggestion navigation bar from &lt;a href=&quot;http://www.jetbrains.com/resharper/webhelp/marker-bar-and-status-indicator.html&quot; rel=&quot;nofollow&quot;&gt;ReSharper&lt;/a&gt; that gives you an overview of the state of the file.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I rely on it constantly. An error will appear as a red line on the bar. If you click the red line, it jumps directly to the offending line(s) of code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I use a version of Visual Studio that doesn't have the ReSharper plugin I feel like I have so much less visibility of the state of a file.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/TblK8.gif&quot; alt=&quot;ReSharper Marker bar and Status Indicator&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="8811" LastActivityDate="2010-12-06T23:31:39.457" CommunityOwnedDate="2011-05-26T08:44:03.797" CommentCount="2" />
  <row Id="24262" PostTypeId="2" ParentId="24252" CreationDate="2010-12-06T23:31:43.123" Score="1" ViewCount="" Body="&lt;p&gt;How about e-mailing the developer? And you can add all the diplomatic smooth-talk you like, as long as you point out the problem because neither you nor the other guy are in the office to practice politics or diplomacy, you are there to solve problems by writing software.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-06T23:31:43.123" />
  <row Id="24263" PostTypeId="2" ParentId="24212" CreationDate="2010-12-06T23:41:05.210" Score="2" ViewCount="" Body="&lt;p&gt;Absolutely.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Often, I participate in the development of open-source projects I use at work -- there's no better way to maintain expertise on something than to be one of the people who wrote it!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Coding on things unrelated to work can help one avoid tunnel-vision in programming.  By staying active in different kinds of development projects, I've avoided &quot;well...we always did it like that&quot; syndrome.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Working in open source, I've had the opportunity to receive guidance from coders far more experienced than myself; this has made me a better coder.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Working in open source, I got real-world experience managing development teams, so I was ready when I came to a leadership position at work.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Working in open source, I get exposed to new technologies earlier than I would in the workplace: when the time comes to evaluate technology Foo for use at work, I have opinions and the facts and experience to back them up.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It's just plain fun. :)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-06T23:41:05.210" CommentCount="1" />
  <row Id="24264" PostTypeId="2" ParentId="24212" CreationDate="2010-12-06T23:54:32.080" Score="1" ViewCount="" Body="&lt;p&gt;The most obvious way my work productivity has benefitted from open source is when I submit a bugfix for a bug that is preventing me from doing work.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-06T23:54:32.080" />
  <row Id="24265" PostTypeId="1" AcceptedAnswerId="24271" CreationDate="2010-12-07T00:32:31.223" Score="1" ViewCount="94" Body="&lt;p&gt;Hi!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How many machines make up the internet?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are about 4.3 billion IPs in IPv4 according to Wikipedia, and that we are about 90% capacity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But that is mostly end-users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How many servers make up the internet?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should you count boxes that double as server and client?  Yes, and could you provide a figure for this number independently?  Perhaps just an estimated overlap if there's no way to really determine this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="5904" LastActivityDate="2010-12-07T01:12:55.667" ClosedDate="2010-12-07T15:31:29.950" Title="Number of non-end user machines on the Internet?" Tags="&lt;number&gt;&lt;machines&gt;" AnswerCount="1" CommentCount="4" />
  <row Id="24266" PostTypeId="2" ParentId="24252" CreationDate="2010-12-07T00:49:45.677" Score="6" ViewCount="" Body="&lt;p&gt;I've found that the diplomatic way to point out an obvious bug is to refrain from assuming that it's an obvious bug when I point it out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I generally do when I find an issue like this is talk to the guy who wrote it in private.  I run SVN Blame to see who set it that way, then I go to him.  &quot;In file xxxx on line ###, we've got some code that does X and Y.  That sorta looks strange to me; it feels like it should do Z in this situation instead.  Now you're the one who wrote this, so is there a reason behind this or is it just an oversight?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually it was a genuine bug, and one or the other of you ends up fixing it, but sometimes there's actually a good reason for what you originally think was an &quot;obvious problem,&quot; and if you approach it this way there's a pretty good chance that you'll get a reasonable explanation for it.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-07T00:49:45.677" CommentCount="4" />
  <row Id="24267" PostTypeId="2" ParentId="24229" CreationDate="2010-12-07T00:50:33.477" Score="0" ViewCount="" Body="&lt;p&gt;In first year of secondary school I started learning PHP. I've been learning it to the end of four-year school. In last class I tried to find a student (part-time) job saying: &quot;What can i lose?&quot;. I found some privateer for who i worked as PHP programmer. I worked for him about for a year, then i found more serious company where I also worked as PHP programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then i leaved that company and found bigger one, where now i'm working as Java programmer. On interview they asked me what i want to do, and i said that i want to try myself as a desktop programmer. So first i made a website for product which I'm programming it now in Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you just need to know what you want to do, and you don't need to be afraid to tell this to your potential employer. Also you need to show him, that you are willing to learn. I think that's the key to your success. And keep pushing yourself to be more successful, to work for bigger companys. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's all in your head.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I get really bored on my work, if I'm doing a same think for too long. Maybe is like that because I'm more a research guy.&lt;/p&gt;&#xA;" OwnerUserId="9247" LastActivityDate="2010-12-07T00:50:33.477" CommunityOwnedDate="2011-01-30T16:17:45.980" />
  <row Id="24268" PostTypeId="2" ParentId="24229" CreationDate="2010-12-07T00:50:57.503" Score="0" ViewCount="" Body="&lt;p&gt;I started out in the testing department, then got moved to software development. It helps if you are a tester that writes his own code to do the testing automatically.&lt;/p&gt;&#xA;" OwnerUserId="8498" LastActivityDate="2010-12-07T00:50:57.503" CommunityOwnedDate="2011-01-30T16:17:45.980" />
  <row Id="24269" PostTypeId="2" ParentId="24229" CreationDate="2010-12-07T01:02:00.850" Score="0" ViewCount="" Body="&lt;p&gt;I got my job by proving to the interviewers that I could do the job.  If that sounds like an idealized oversimplification, maybe it kinda is, but I was lucky enough to pick a place where the interviewers are programmers from the dev team, not HR people.  I'd been playing around with programming since grade school, and with Delphi (which is what we use at my job) since high school, and I was currently in the process of building a game engine in my spare time, which is something that really takes you pretty deep into all the corners of just about any language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I saw an ad online for a job that matched my skillset and found out it was pretty close by.  For whatever reason, I've never had much luck with sending resumes or applications to people, but I've never failed to land a job after getting an actual interview, so I just walked into the office and asked if I could speak with someone about the job posting.  That was enough to get me into the manager's office for a quick technical screening, and I did well enough on that that he scheduled me for an interview a few days later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I got there, I brought my laptop along, with my game engine project on it.  I showed some of the code to the interviewers who were interested, and the ones who weren't, I just answered their questions and solved the interview puzzles, and by the end of it they were convinced that my knowledge of programming made me worth hiring, and I got an offer a few days later.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-07T01:02:00.850" CommunityOwnedDate="2011-01-30T16:17:45.980" />
  <row Id="24270" PostTypeId="1" CreationDate="2010-12-07T01:07:56.787" Score="10" ViewCount="827" Body="&lt;p&gt;I am finishing high school in several months, and I will be a couple years below the normal age of graduation at that time. After high school I intend to immediately continue on to university, but I have a number of ideas as to what I would like to learn, some being more straight-forward than others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am currently quite a competent programmer, not only by my own reckoning, but by the reckoning of some of my adult programmer acquaintances all of which are excellent programmers themselves. I am almost entirely self taught.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My reasoning for choosing to study CS (id est, in university) is that it will be easy (or at least relatively easy) to get a degree, and that this degree will help me out in life, even if it is just by being on my resume and on a plaque on my wall.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My questions are these: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Is it worth my while to study CS even&#xA;if I will know lots of the material&#xA;already and am not sure whether I&#xA;will pursue a career in computer programming? &#xA;Will it be a waste of time?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Is it possible to skip, or otherwise&#xA;avoid wasting time on, studies that&#xA;I would find redundant?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="9245" LastActivityDate="2011-02-07T17:02:55.890" ClosedDate="2010-12-27T11:44:58.357" Title="Is getting a CS degree worth my while?" Tags="&lt;career&gt;&lt;university&gt;" AnswerCount="21" CommentCount="6" FavoriteCount="3" />
  <row Id="24271" PostTypeId="2" ParentId="24265" CreationDate="2010-12-07T01:12:55.667" Score="3" ViewCount="" Body="&lt;p&gt;I can't concretely answer your question but there are some points to be aware of, and this is too long for a comment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IPv4 is 32-bit, so approximately 4.3 billion, but approximately 300 million (&lt;a href=&quot;http://en.wikipedia.org/wiki/IPv4#Addressing&quot; rel=&quot;nofollow&quot;&gt;source&lt;/a&gt;) are reserved - multicast and local networks.  So given that there are about 4 billion and the figure for remaining space - both 3% and 10% are given as recent figures according to &lt;a href=&quot;http://en.wikipedia.org/wiki/IPv4_address_exhaustion&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/IPv4_address_exhaustion&lt;/a&gt;, there are approximately 120-400 million remaining.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the 3.6-3.9 billion addresses accounted for, being allocated doesn't necessarily mean &quot;in use&quot;.  To calculate how many are actually in use, you'd probably have to get accurate figures for the biggest owners, then estimates for the average usage of the remaining classes. As you can read in those articles, the IANA and RIRs (who control the assignment of IP addresses to ISPs and other organizations and corporations) don't hand out addresses one at a time, they hand them out in &lt;strong&gt;/8&lt;/strong&gt; (2&lt;sup&gt;24&lt;/sup&gt;) blocks, in other words, 16.7 million at a time. This is the &quot;exhaustion&quot; they are talking about - when all 256 24-bit blocks are allocated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those owners then allocate IP addresses to providers on the next-level down, and so on.  Every ISP has a supply of IP addresses that are currently not assigned to any physical node.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If we even &quot;guessed&quot; at a figure of 30% unused, we'd be down to about 3 billion used IP addresses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have any source for &quot;mostly end-users&quot;?  I highly doubt that, and in fact I would guess that it's most likely the other way around, with half or more of the IP addresses being allocated to large corporations, and hosting companies.  And if that were the case, nearly all of that usage would be server-based. Here are some reasons why:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Each shared host will typically host dozens of web sites, but will have a single physical IP address for each real server (avoiding the overhead of load-balancing software).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Use of an HTTPS domain certificate requires a unique IP address (typically? always? I'm not 100% sure on the technical requirement here, but all hosts I know of require this).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Corporations typically use most of their IP addresses for servers and not for end-users.  End-users in each office will usually be grouped behind a firewall with a single IP address.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-07T01:12:55.667" CommentCount="2" />
  <row Id="24272" PostTypeId="2" ParentId="24270" CreationDate="2010-12-07T01:20:14.617" Score="6" ViewCount="" Body="&lt;p&gt;I do myself rate myself as a good programmer and I completed my Masters after gaining some industry experience after my bachelor's degree. I cannot certainly measure the amount of learning I had during this period (Master's). A degree always makes you a better person and never be a waste of time. So, I would anytime recommend you to get a degree as it's not just about a point in your resume, but something more than that. It gives enormous amount of confidence in facing the real world. I could vouch for it with my 2 college degrees!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have said that you are a competent programmer - so you could still gain some experience by doing some freelancing as that would teach you the nuances of real time work. At the same time you could pursue your CS degree and that will teach you a lot as you move along. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer your questions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;From my point of view, yes, it's definitely worth it.&lt;/li&gt;&#xA;&lt;li&gt;I cannot think of an easy short cut for the amount of learning a &quot;college degree&quot; could give you and even if there is one, I would certainly doubt the creditworthiness of it!&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Anyway, all the very best for your future endeavors!&lt;/p&gt;&#xA;" OwnerUserId="9208" LastActivityDate="2010-12-07T01:20:14.617" />
  <row Id="24273" PostTypeId="2" ParentId="24229" CreationDate="2010-12-07T01:35:31.537" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;From the UK educational system perspective, which you appear to be in:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most &lt;em&gt;good&lt;/em&gt; universities only &lt;strong&gt;&lt;em&gt;require&lt;/em&gt;&lt;/strong&gt; Maths A-Level for a computing related subject.  They would like to see good complimentary subjects to go with this, but only Pure Mathematics is truly required.  Obviously they want to see decent grades across the board, whatever you take.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They also look for experience and enthusiasm, which basically means learning a lot off your own back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you enjoy programming, by all means immerse yourself in it.  That is how I spent my teenage years, though on reflection I should have spent those immersed in girls; you live and learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you get to the job market you will find that the whole IT profession in the UK is overcrowded and therefore cut-throat.  Whether you get a job or not depends on your experience, your confidence in the interview, whether you can handle complicated questions - but above all in IT, your soft skills.  Why?  Because IT people, &lt;em&gt;especially&lt;/em&gt; programmers are often weak with social skills, language skills, business awareness and companies &lt;em&gt;need&lt;/em&gt; those skills in all employees they hire.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, technically, expose yourself to as much as you can.  Do not focus on a particular language, learn how to problem solve, how to break down something you want a computer to do in to step-by-step instructions.  Also really hit maths hard, programming and maths have a great deal in common, a computer is after all an advanced calculator, a firm grasp of that subject will hold you in good stead with any career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Bad mathematician = Bad businessman&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Socially, grow your confidence, not your arrogance, ensure your written and spoken English is as perfect as you can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For both, and here is the most important point.  Ensure attention to detail.  The number one complaint I hear about employees is not paying attention to detail, being sloppy, imprecise.  In any career it is bad, in programming, where precision is an absolute necessity, it is fatal.  When I hire, it is the thing I can not do without in a candidate.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-07T01:35:31.537" CommunityOwnedDate="2011-01-30T16:17:45.980" />
  <row Id="24274" PostTypeId="2" ParentId="24157" CreationDate="2010-12-07T01:39:10.690" Score="2" ViewCount="" Body="&lt;p&gt;I &lt;em&gt;really&lt;/em&gt; like the way that I came into programming; the only thing I can imagine changing is my access to books.  My family didn't have the money for all the books I could devour, and our small rural library didn't exactly stock tech manuals.  In the grand scheme of things, this is a small nitpick.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wholeheartedly disagree with those who say you can't learn theory at 14.  The earlier you learn the theory, the better.  I read &lt;a href=&quot;http://ur1.ca/2im3k&quot; rel=&quot;nofollow&quot;&gt;TAOCP&lt;/a&gt; at 14, though I'd already been coding a while.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best thing you can do for your brother is to give him the tools to pursue his interests, and include him in the hacker/coder community whenever possible, so he can learn the &lt;em&gt;mindset&lt;/em&gt; of a great coder.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Nudge him away from proprietary tools wherever possible.  There's so much more available to him in the open source world.  I got as good as I am largely due to the guidance I received from more experienced folks in the open source community.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you can afford to, get him a &lt;a href=&quot;http://www.safaribooksonline.com/oreilly/knowledge/?cid=201012-orm-safari-knowledgewebhome&quot; rel=&quot;nofollow&quot;&gt;Safari&lt;/a&gt; account, or help him buy books when needed.  Even lending what you already own can help.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make sure he has access to a decent desktop or laptop &lt;em&gt;and&lt;/em&gt; a server or VPS to experiment on.  If mobile apps are his thing, make sure he has a phone or demo device to work on.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Show him how to find IRC channels, mailing lists, etc. for the things he is interested in working with/on.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make sure he knows &lt;a href=&quot;http://www.catb.org/~esr/faqs/smart-questions.html&quot; rel=&quot;nofollow&quot;&gt;how to ask smart questions&lt;/a&gt; and, conversely, the particulars of a &lt;a href=&quot;http://www.binaryredneck.net/node/161&quot; rel=&quot;nofollow&quot;&gt;support leech&lt;/a&gt; so he knows what not to do.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;His first programming language isn't the most important factor.  The totality of programming languages he learns is extremely important.  One-language coders never pass a certain (relatively low) level of coding-foo.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5516" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-08T00:06:45.897" LastActivityDate="2010-12-08T00:06:45.897" CommentCount="1" />
  <row Id="24275" PostTypeId="1" CreationDate="2010-12-07T01:52:14.320" Score="6" ViewCount="527" Body="&lt;p&gt;It's the winter months in the Northern hemisphere, and my hands are freezing.  I've tried some cheap fuzzy gloves but I keep fat-fingering keys.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a specific type of glove that's good for typing and keeping warm?  Or should I give it up and buy a small space heater?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:  I'm perfectly warm, my hands are not.  I have long arms.&lt;/p&gt;&#xA;" OwnerUserId="9248" LastEditorUserId="9248" LastEditorDisplayName="" LastEditDate="2010-12-07T03:43:11.287" LastActivityDate="2010-12-07T08:29:22.787" ClosedDate="2010-12-07T09:35:08.543" Title="Keeping your hands warm / keyboarding gloves" Tags="&lt;health&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="1" />
  <row Id="24276" PostTypeId="2" ParentId="24229" CreationDate="2010-12-07T01:52:43.470" Score="0" ViewCount="" Body="&lt;p&gt;Purely by chance. I got my EE and went to work for a R&amp;amp;D company and my very first job was to create a teletype (telex) based user interface using a real time assembly scheduler. I had a great deal of help from an engineer that became my mentor and I am grateful to him to this day.&lt;/p&gt;&#xA;" OwnerUserId="7368" LastActivityDate="2010-12-07T01:52:43.470" CommunityOwnedDate="2011-01-30T16:17:45.980" />
  <row Id="24277" PostTypeId="1" CreationDate="2010-12-07T01:54:20.033" Score="1" ViewCount="201" Body="&lt;p&gt;I obtained my computer science degree 3 years ago and I've been working in non-IT related jobs for 2 years.  I've decide to go back into programming field and am currently teaching myself ASP.NET 4 with C# and I enjoy it. (Just starting it).  My current goal is to become a web programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recently resigned and would like to take a course outside. I'm deciding whether I should take a ASP.NET course or a database course. Some friends told me that it's important to learn database skills.  I found two courses that maybe useful:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;ASP.NET course:&#xA;&#xA;&#xA;&#xA;Objectives&#xA;This course provides students with solid knowledge in the .NET framework and programming skills of Microsoft ASP.NET and MS SQL to build web applications.&#xA;&#xA;Module Outlines&#xA;(1) Brief overview of Web 2.0&#xA;(2) Describe the components of .NET platform for web programming&#xA;(3) Learn how to build IIS Web Server, Virtual Web Developer (VWD) and MS SQL Database Server&#xA;(4) Understand the basic concept of C# language&#xA;(5) Understand the fundamental concept of Object Oriented Programming in C#&#xA;(6) Write simple .NET applications using C#&#xA;(7) Use ASP.NET development methodology to code dynamic web pages&#xA;(8) Use of Web controls&#xA;(9) Web form validation and website navigation&#xA;(10) Styles, Themes and Master pages&#xA;(11) Exception Handling&#xA;(12) File and Stream&#xA;(13) Learn how to use ADO.NET to access the database on the web&#xA;(14) Read data from XML files into DataSets&#xA;(15) Language-integrated Query (LINQ)&#xA;(16) Learn how to build an ecommerce mini-project integrated with Ajax and Facebook&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&quot;Oracle application development &amp;amp; administration&quot; course  :&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Part I: Database Application Development&#xA;&#xA;Front-Tier Presentation layer&#xA;• Static web site development using HTML and text editor&#xA;• HTML Basic Syntax and HTML Forms Design and Development&#xA;• JavaScript and its application on client side validation or programming&#xA;• Java Applet and its application in enriching user experience&#xA;• CSS (Cascading Style Sheets) and its application in web page design&#xA;• XML (Extensible Markup Language) and its application in&#xA;sharing structured data&#xA;• AJAX (Asynchronous JavaScript and XML) and its application in&#xA;creating rich web applications&#xA;&#xA;&#xA;Middle-Tier Business Logic Layer&#xA;• Web Server introduction and simple installation (Apache and IIS)&#xA;• 3 main Web application development platforms:&#xA;PHP, Java EE and Microsoft.NET&#xA;• Simple PHP application development and&#xA;its typical deployment situation&#xA;• Simple Java EE application development and&#xA;its typical deployment situation&#xA;• Simple ASP.NET application development and&#xA;its typical deployment situation&#xA;• Web Services and its related technologies&#xA;(SOAP, WSDL and UDDI)&#xA;&#xA;Back-Tier Database Layer&#xA;•Introducing Oracle Database 11g and its support in&#xA;creating dynamic web sites&#xA;•Retrieving Data using SQL Select Statement&#xA;•Restricting and Sorting Data&#xA;•Using Single-Row Functions to Customize Output&#xA;•Using Conversion Functions and Conditional Expressions&#xA;•Reporting Aggregated Data Using the Group Functions&#xA;•Displaying Data from Multiple Tables using Join&#xA;•Using Subqueries and SET operators&#xA;•Using DDL Statements to Create and Manage Tables&#xA;•Creating Other Schema Objects&#xA;• Simple database design and implementation in&#xA;creating a dynamic web site&#xA;&#xA;• Connecting a web page to the database through PHP&#xA;• Connecting a web page to the database through&#xA;Java Servlet and JDBC&#xA;&#xA;&#xA;&#xA;Part II: Database Application Administration&#xA;(Content from the Official Oracle Database 11g&#xA;Administration Workshop I &amp;amp; II)&#xA;&#xA;&#xA;&#xA;• Exploring the Oracle Database Architecture&#xA;• Installing the Oracle Software&#xA;• Creating an Oracle Database&#xA;• Managing the Oracle Database Instance&#xA;• Managing the ASM Instance&#xA;• Configuring the Oracle Network Environment&#xA;• Managing Database Storage Structures&#xA;• Administering User Security&#xA;• Managing Data Concurrency&#xA;• Managing Undo Data&#xA;• Implementing Oracle Database Auditing&#xA;• Database Maintenance&#xA;• Performance Management&#xA;• Backup and Recovery Concepts&#xA;• Performing Database Backups&#xA;• Performing Database Recovery&#xA;• Import and Export data&#xA;• Using the RMAN Recovery tools&#xA;• Creating Backups with RMAN&#xA;• Diagnosing the Database&#xA;• Using Flashback Technology I&#xA;• Using Flashback Technology II&#xA;• Performing Flashback Database&#xA;• Managing Memory&#xA;• Managing Database Performance&#xA;• Managing Performance by SQL Tuning&#xA;• Automating Tasks with the Scheduler&#xA;• Managing Spaces in Blocks, Segments and Database&#xA;• Duplicating the Database &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;By looking at the course outline above, I &quot;think&quot; the ASP.NET course above can be self-learned easily? (or am I wrong?)  But I'm not sure whether the oracle course above will benefit me as a Web Developer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&#xA;Oracle course: 84 hours (14 weeks course. 6 hours per week)&#xA;ASP.NET course: 30 hours (10 weeks course, 3 hours per week)&lt;/p&gt;&#xA;" OwnerUserId="9250" LastEditorUserId="9250" LastEditorDisplayName="" LastEditDate="2010-12-07T03:26:14.193" LastActivityDate="2010-12-07T16:23:50.297" Title="Web programming vs Oracle courses" Tags="&lt;programming-languages&gt;&lt;career&gt;&lt;learning&gt;&lt;web-development&gt;&lt;education&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="24278" PostTypeId="2" ParentId="24277" CreationDate="2010-12-07T02:01:26.030" Score="4" ViewCount="" Body="&lt;p&gt;The majority of ASP.NET development is done using SQL Server as a database, probably half. The rest uses a mix of the hundreds of other databases. If you are set on ASP.NET I would look at doing a SQL Server course. I think Oracles main niche is building large databases in Enterprise situations, ie the database at your bank. &lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-12-07T02:01:26.030" />
  <row Id="24279" PostTypeId="2" ParentId="24275" CreationDate="2010-12-07T02:06:47.007" Score="-1" ViewCount="" Body="&lt;p&gt;Don't code outside.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-12-07T02:06:47.007" />
  <row Id="24280" PostTypeId="2" ParentId="24270" CreationDate="2010-12-07T02:07:10.807" Score="17" ViewCount="" Body="&lt;p&gt;A teenager who thinks they know it all already... what are the odds :P&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In all seriousness though: There's a number of reasons you should.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Your accumulated knowledge thus far will help you, no doubt, but generally the knowledge you've acquired in order to be a proficient programmer won't necessarily apply to the theory you'll be learning. People with advanced degrees, who are active and interested in their career and have much more experience than you or I &lt;em&gt;still&lt;/em&gt; come to sites like this and SO every day because there's &lt;em&gt;so much more&lt;/em&gt; to learn.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;You don't just learn computer science&lt;/strong&gt;. Every university I've ever known has forced a number of elective classes beyond your comp-sci and math courses. History, law, biology, chemistry, physics, psychology, all that good stuff is there. You may find that you absolutely love it as well. I can't tell you the number of people who switched degrees after their first year because they fell in love with a different area of study.&lt;/li&gt;&#xA;&lt;li&gt;People! College/University is more than just going to school and sitting in lectures. It's also about life experiences and meeting people. You get to make friends with intelligent and like-minded individuals who are as interested in programming/computers as you are. Professors can be a wealth of knowledge and be great mentors too.&lt;/li&gt;&#xA;&lt;li&gt;There's something to be said about the parties.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Personally, I took comp-sci but would have loved software engineering more... but I also met my wife and some of my best friends in university and I'd do it all over again if I could.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-07T02:07:10.807" CommentCount="3" />
  <row Id="24281" PostTypeId="2" ParentId="24270" CreationDate="2010-12-07T02:07:43.933" Score="23" ViewCount="" Body="&lt;p&gt;A lot of people make the mistake of thinking that a CS degree is simply a manifestation of &quot;I can code in one or more languages&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While that can and probably will be what recruiters take from it, it's so much more than that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The actual organization of a computer, page replacement algorithms, the workings of TCP/IP, order of complexity, dynamic programming. There's so much more to CS than programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll be the last one to say that everything that you'll learn in those years you'll use after. However, what you will learn will not only undoubtedly make you a better programmer, but will also answer a lot of those &quot;how does this exactly work?&quot; thoughts that you've always had in your head. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its really not something that's easy to articulate unless you go through it yourself (you're probably thinking: &quot;What's this guy talking about? All those things sound boring.&quot;), and you'll probably somewhat dislike the process, but trust me, if you can... it's worth it.&lt;/p&gt;&#xA;" OwnerUserId="7356" LastActivityDate="2010-12-07T02:07:43.933" CommentCount="3" />
  <row Id="24282" PostTypeId="2" ParentId="24270" CreationDate="2010-12-07T02:08:29.570" Score="5" ViewCount="" Body="&lt;p&gt;Once long ago, I was in your position.  I started programming age 7, and by the time I was your age was fairly accomplished.  The opportunity to go straight in to the field of work was available to me, but fortunately I come from an academic background and knew the benefits of education well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I went to one of the top 10 universities internationally and was pleased to find I was amongst the most experienced and skilled there.  Yes, I knew a lot in my first year, even in my second.  &lt;strong&gt;&lt;em&gt;But&lt;/em&gt;&lt;/strong&gt; compared to the amount I was learning, and particularly the depth of refinement of my skills, &lt;strong&gt;my prior knowledge was insignifcant&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As &lt;em&gt;k25&lt;/em&gt; says, a degree changes a person.  The difference between an &quot;educated&quot; person and someone else is usually immediately obvious, not because of higher skill in their own discipline necessarily, but overall handling of themselves, their other skills which university courses boost - particularly language usage, and broadness of thought - those are what stand out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do remember that when you apply for jobs, there will be heavy competition and at least while you are young, recruiting companies want to tick boxes on CVs.  Having a qualification that says you know what you already did is important &quot;proof&quot; that you know stuff.  Now a wise recruiter would know that academic skill and real-world skill are different and a degree proves very little - but it gets noticed, particularly from a good institution.  Look at hire rates for top-flight graduates compared to non-graduates, there is a big difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is certainly not a waste of your time, do not be in a hurry to get a career.  The social side of university is usually cited as the best time of peoples' lives - do you really want to miss out on that just so you can work in a lower paid job earlier?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn what you can, while you can, from the best sources you can and &lt;strong&gt;never stop&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastEditorUserId="7990" LastEditorDisplayName="" LastEditDate="2010-12-07T02:27:32.307" LastActivityDate="2010-12-07T02:27:32.307" CommentCount="1" />
  <row Id="24283" PostTypeId="2" ParentId="24277" CreationDate="2010-12-07T02:08:54.493" Score="6" ViewCount="" Body="&lt;p&gt;The Oracle class will only benefit you if you intend to do a lot of Oracle work.  Oracle work does not equal web work (in general).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to be a web developer then you should take a class teaching web skills.  That's not to say that the Oracle skills won't be of value to you at some point, but they won't help you build your web skills.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-07T02:08:54.493" CommentCount="3" />
  <row Id="24284" PostTypeId="2" ParentId="24275" CreationDate="2010-12-07T02:10:17.080" Score="5" ViewCount="" Body="&lt;p&gt;Turn up the heat.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-07T02:10:17.080" CommentCount="9" />
  <row Id="24285" PostTypeId="1" AcceptedAnswerId="24292" CreationDate="2010-12-07T02:41:57.260" Score="2" ViewCount="135" Body="&lt;p&gt;Any good book which deals especially with LINQ? Which one you found useful?&lt;/p&gt;&#xA;" OwnerUserId="7478" LastActivityDate="2010-12-07T03:32:25.337" Title="Any good book on LINQ" Tags="&lt;learning&gt;&lt;books&gt;&lt;.net&gt;&lt;c#&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="24286" PostTypeId="2" ParentId="24275" CreationDate="2010-12-07T02:52:52.187" Score="1" ViewCount="" Body="&lt;p&gt;The best typing gloves (imo) are &lt;a href=&quot;http://www.domeind.com/contents/en-us/d7.html&quot; rel=&quot;nofollow&quot;&gt;Handeze Gloves&lt;/a&gt;. If you've ever suffered from any type of RSI pain, buy ’em—your hands and wrists will thank you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They won't help the rest of you keep warm, though, so it sounds as if you should also get yourself a heater.&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-12-07T02:52:52.187" />
  <row Id="24287" PostTypeId="2" ParentId="24275" CreationDate="2010-12-07T02:53:14.260" Score="1" ViewCount="" Body="&lt;p&gt;Pharmacies/Drugstores that sell aids for elderly people have neoprene gloves to keep old, arthritic hands warm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've used  them ( and I'm not that old).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They have the added benefit of improving circualtion&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-12-07T02:53:14.260" />
  <row Id="24288" PostTypeId="2" ParentId="24285" CreationDate="2010-12-07T02:53:39.147" Score="0" ViewCount="" Body="&lt;p&gt;I don't know of any specific book, and it depends a lot on whether you are looking for Linq To SQL or Linq to Objects or some other. They are all somewhat different.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-12-07T02:53:39.147" />
  <row Id="24289" PostTypeId="2" ParentId="24275" CreationDate="2010-12-07T02:54:05.403" Score="2" ViewCount="" Body="&lt;p&gt;get a &lt;a href=&quot;http://www.amazon.com/V8-Tools-Heated-Computer-Keyboard/dp/B000O3K93G&quot; rel=&quot;nofollow&quot;&gt;heated keyboard&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-12-07T02:54:05.403" CommentCount="2" />
  <row Id="24290" PostTypeId="2" ParentId="24270" CreationDate="2010-12-07T02:55:52.497" Score="0" ViewCount="" Body="&lt;p&gt;The second part of your question is the easiest to answer: most bachelor's programs will NOT allow you to skip any material, regardless of your existing qualifications in the subject, or how inane the course is to begin with.  You can sometimes ditch a low level elective or two via CLEP or AP exams, but expect that to be it, even if you'd like to ditch a &quot;bird course&quot; in favor of a more challenging offering in the same subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for whether a CS degree is right for you or not, that's a pretty personal question...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd guess (from almost no evidence, just the question above) that you are a reasonably intelligent &lt;a href=&quot;http://en.wikipedia.org/wiki/Polymath&quot; rel=&quot;nofollow&quot;&gt;polymath&lt;/a&gt;.  If I'm right, you have a lot more options than most folks.  Lots of us don't have degrees, and lots of us do.  (And forget what another poster said about not having a degree making you stand out.  I have no degree, and I grew up on a hog farm.  People with PhDs are sometimes shocked to learn I don't have one.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From your typical HR drone's standpoint, a degree seems to be a degree.  In other words, if you major in CS and decide to do something else for a living (that doesn't require specific licensing, like teaching) your CS degree would be just fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't just take into account the popular image of a university degree as a &quot;safe bet&quot;.  It's not (just look at all the unemployed people foundering under student loans right now).  Figure out what you, personally, would get from the particular program you are considering, and figure out what your other options are.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-07T02:55:52.497" />
  <row Id="24291" PostTypeId="2" ParentId="24157" CreationDate="2010-12-07T02:57:29.000" Score="0" ViewCount="" Body="&lt;p&gt;I never thought I'd say this, but get him &lt;a href=&quot;http://www.alice.org/index.php?page=alice3/download&quot; rel=&quot;nofollow&quot; title=&quot;Alice 3.0&quot;&gt;Alice 3.0&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hate Alice with the burning fury of a thousand suns, but it definitely does do a good job of teaching the fundamentals of programming (loops, statements, functions, etc.) when coupled with a decent tutorial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once he's solid on the basics, move on to a more practical text-based language.&lt;/p&gt;&#xA;" OwnerUserId="8810" LastActivityDate="2010-12-07T02:57:29.000" />
  <row Id="24292" PostTypeId="2" ParentId="24285" CreationDate="2010-12-07T03:05:46.997" Score="4" ViewCount="" Body="&lt;p&gt;I found &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1430226536&quot; rel=&quot;nofollow&quot;&gt;Pro Linq&lt;/a&gt; to be fairly useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/MKI9W.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-07T03:05:46.997" />
  <row Id="24293" PostTypeId="2" ParentId="24277" CreationDate="2010-12-07T03:10:22.177" Score="0" ViewCount="" Body="&lt;p&gt;Edit: Now I can provide an actual answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The 84 hours Oracle course makes approx 1½ hour per bullet point, that can't be more than an intro to all the heavy stuff, and there is way too many things in the same course. Can you imagine trying to learn 4 different programming languages at the same time? Take them one at a time, and you might actually have a chance at getting good at some of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ASP.NET course seems to be timed a bit more realistic, 30 hours surely won't make you a pro, but provided that it's a well organised course it should get you started and primed for learning more on your own. Though 3 hours a week is very little for an unemployed, I'd suggest looking for something that progresses a bit faster.&lt;/p&gt;&#xA;" OwnerUserId="8737" LastEditorUserId="8737" LastEditorDisplayName="" LastEditDate="2010-12-07T16:23:50.297" LastActivityDate="2010-12-07T16:23:50.297" CommentCount="2" />
  <row Id="24294" PostTypeId="2" ParentId="24270" CreationDate="2010-12-07T03:18:28.467" Score="5" ViewCount="" Body="&lt;p&gt;Here are some truisms about life that will help you regardless of what you decide. First, &lt;strong&gt;you don't know what you don't know&lt;/strong&gt; and second, &lt;strong&gt;there is always someone out there that is smarter than you.&lt;/strong&gt;  The great thing about CS is that many of those wonderfully smart people choose to make it their field of study and many of those wonderfully smart people make Software Engineering their profession.  If you go to a top university, you will be exposed to people and studies that at this point in your life, you can't really imagine. And, if you work for a top software company, it will happen to you again!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice to you is to take some CS classes early on in your college career.  If you find that you are passionate about the subject, stick with it and get the degree; if not, don't.  The opportunity you have at a university is to sample a lot of different things and find what you like most.&lt;/p&gt;&#xA;" OwnerUserId="9251" LastActivityDate="2010-12-07T03:18:28.467" />
  <row Id="24295" PostTypeId="2" ParentId="23537" CreationDate="2010-12-07T03:28:42.843" Score="2" ViewCount="" Body="&lt;p&gt;Close Outlook, log out of IM.&lt;/p&gt;&#xA;" OwnerUserId="9251" LastActivityDate="2010-12-07T03:28:42.843" />
  <row Id="24296" PostTypeId="2" ParentId="24270" CreationDate="2010-12-07T03:31:17.800" Score="1" ViewCount="" Body="&lt;p&gt;You say you will be graduating from highschool two years early. I take it you are a very good student. I would consider college to be an important step. If you can do some part time programming at the same time that would help to make it afordable, and also to give you some perspective on the potential uses for the stuff you are learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would avoid CS, if you think it would be an easy degree, college should be about challenging yourself intellectually as well as being exposed to other aspects of life.&#xA;Programming, can be a portion of many other professions. Just about any kind of science, or engineering needs programmers, that also know the field they work in very well. I bet similar &#xA;synergies work with things you may not even associate with programming, such as business, or&#xA;psychology. Start with some CS, but also some math, science, and whatever else you may find fascinating. Programming is usually something you do in order to make progress in other areas, rather then being an end in itself.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-12-07T03:31:17.800" />
  <row Id="24297" PostTypeId="2" ParentId="24285" CreationDate="2010-12-07T03:32:25.337" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1933988169&quot; rel=&quot;nofollow&quot;&gt;LINQ in Action&lt;/a&gt; is generally considered the best book on LINQ available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Sw5I4.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-12-07T03:32:25.337" />
  <row Id="24298" PostTypeId="2" ParentId="24275" CreationDate="2010-12-07T03:56:43.093" Score="3" ViewCount="" Body="&lt;p&gt;Wear a winter vest of some sort and a hat. You're body shunts blood away from the extremities to keep the core warm. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-07T03:56:43.093" />
  <row Id="24299" PostTypeId="2" ParentId="24270" CreationDate="2010-12-07T04:03:03.743" Score="1" ViewCount="" Body="&lt;p&gt;In my country, everything talks about academics first then follow by jobs experience. Getting a degree helps you to get pass your first screening by the HRs. Unless you have very good contacts and networks with people who are in the industries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;for your first question, do not always overestimate yourself that you know everything, there will be some parts of it you will never expect that you actually don't know it.&#xA;2. how do you know that you are wasting your time if you have never tried it? It is essential to get at least a degree in my opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To add on, everything is a risk, you need to take one step in to see if it is really suitable for you to continue your career else you be kept thinking for the rest of your lives. If you find it not suitable, just move on. change it. at least you done it and will not think again.&lt;/p&gt;&#xA;" OwnerUserId="6450" LastActivityDate="2010-12-07T04:03:03.743" />
  <row Id="24300" PostTypeId="2" ParentId="24077" CreationDate="2010-12-07T04:12:13.473" Score="0" ViewCount="" Body="&lt;p&gt;I think the ideal is that names should be descriptive &lt;em&gt;unless&lt;/em&gt;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea that names can (maybe should) be shorter - and thus by implication less descriptive - if they have limited scope is only &lt;em&gt;one&lt;/em&gt; reason to deviate from the ideal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I frequently use short names for a small number of repeatedly-referenced entities. Frequently-called app-specific subroutines, for example.&lt;/p&gt;&#xA;" OwnerUserId="9253" LastActivityDate="2010-12-07T04:12:13.473" CommunityOwnedDate="2011-01-06T21:58:42.770" />
  <row Id="24301" PostTypeId="2" ParentId="24229" CreationDate="2010-12-07T04:18:00.413" Score="0" ViewCount="" Body="&lt;p&gt;The best way of getting a programming job is to produce your own portfolio of your finished product and explain your post-mortem to the interviewer. Also read more on programming books specifically data structure algorithm is the most important. This may usually comes in handy when asked by interviewer if it is your first job.&lt;/p&gt;&#xA;" OwnerUserId="6450" LastActivityDate="2010-12-07T04:18:00.413" CommunityOwnedDate="2011-01-30T16:17:45.980" />
  <row Id="24302" PostTypeId="1" AcceptedAnswerId="24309" CreationDate="2010-12-07T04:22:51.610" Score="6" ViewCount="283" Body="&lt;p&gt;I am looking for open source projects being done in C# that are actively looking for developers and does not mind the person coming in from a C++ background. Any pointers appreciated.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-07T05:26:36.530" Title="Most Active Open Source C# Projects?" Tags="&lt;programming-languages&gt;&lt;c#&gt;&lt;c++&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="24303" PostTypeId="2" ParentId="24270" CreationDate="2010-12-07T04:35:05.407" Score="1" ViewCount="" Body="&lt;p&gt;You probably know 1st year material quite well, but i would be quite shocked if you knew 3rd or 4th level material. Perhaps it might be good for you to pick up a 3rd year book and see roughly how much of it you already know. &lt;/p&gt;&#xA;" OwnerUserId="9087" LastActivityDate="2010-12-07T04:35:05.407" />
  <row Id="24304" PostTypeId="2" ParentId="24229" CreationDate="2010-12-07T04:38:26.380" Score="0" ViewCount="" Body="&lt;p&gt;I needed income to support my rock 'n roll guitar playing, and was always good at teaching myself things, so I bought a personal computer. I learned interpreted BASIC, but it wasn't powerful enough, and jumped into assembler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Within the year I was doing demos and teaching assembler for our club at work. That lead to an offer to do data-processing. I was working on DEC Vax then IBM PCs and wanted to learn 8086 assembler so I took two weeks over Christmas vacation when everyone was out of the office and spent eight hours a day going over one of Peter Norton's assembly books.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wrote a bunch of little apps for our engineers in assembler, then bought Turbo Pascal because I was tired of how slow interpreted Microsoft Basic was. I was in charge of monthly QA charts and had to do several hundred monthly on our HP Plotter, being driven from a RBase job my previous boss had written. It took about 8 hours to run, with frequent pauses as it crunched data. I figured Turbo Pascal would be faster, but ran into some things that Pascal made too difficult, so I switched to Turbo C, and reduced the run-time to about three hours. Instead of the plotter waiting on the code, it was the code waiting on the plotter, which was the way it needed to be. That app taught me a lot about starting with primitives then building on top of them; pen-up, pen-down, move-to, get-color, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was also doing computer support for our group at the same time, which lead to supporting our LAN, then to being asked to support a different site. I did site support for many years, then lead tech support for our sales force, then desktop manager for one of our factories. I didn't enjoy the politics, and was also acting webmaster for the factory plus running our big statistical analysis system. I finally told my boss I was stretched too thin and needed to drop something. He wouldn't let me give up the statistics system, so I passed the management to someone else and did webmaster things plus the statistics. This was when Perl was coming on strong for web stuff, so I switched to using it for everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That lead to several years of building statistic reporting on the web.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From there I supported a big Java app for an airline for a couple years, plus several big Perl apps. Then I wrote spiders and web-site analysis and data mining code in Perl for five years. Ruby was starting to get a name for itself, so I started poking at it between my Perl apps. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was asked by my CEO and our tech lead to help start a new company as a co-founder, writing backend code linking our systems with our partners. I jumped into it using Ruby, eventually writing a big custom RSS aggregator, interfaces to Google's email, lots of glue code for our systems, image gateways for photo print fulfillment along with all the database development to support those things. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I'm writing in Perl and Ruby for a big networking company, creating and maintaining code for network automation. I'm having to draw on my early LAN experience, data-com, packet sniffing, plus a lot of other experience I've had over the years. &lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-12-07T04:38:26.380" CommunityOwnedDate="2011-01-30T16:17:45.980" />
  <row Id="24305" PostTypeId="2" ParentId="24302" CreationDate="2010-12-07T04:47:13.220" Score="0" ViewCount="" Body="&lt;p&gt;NHibernate is pretty active project, I am sure they will welcome help. Also SharpArchitecture.net project is always looking for help.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-12-07T04:47:13.220" />
  <row Id="24306" PostTypeId="2" ParentId="24270" CreationDate="2010-12-07T05:05:18.453" Score="1" ViewCount="" Body="&lt;p&gt;I can't answer if it's worth your while if you don't pursue a job in programming, but I feel it certainly is if you do. I was responsible for selecting college students for internships and graduating students for hire for a division of a large corporation. I only looked at resumes of CS majors. I did so because there were more than enough of them to not necessitate looking elsewhere. In the case of experienced programmers, it was the type of experience that carried the most weight. If you had the right type of experience, a degree wasn't a factor.&lt;/p&gt;&#xA;" OwnerUserId="8384" LastActivityDate="2010-12-07T05:05:18.453" />
  <row Id="24307" PostTypeId="2" ParentId="610" CreationDate="2010-12-07T05:22:07.433" Score="5" ViewCount="" Body="&lt;p&gt;I'm a big fan of postfix conditionals in perl and ruby:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;return 0 if(!$user);&#xA;return 0 if(!$user-&amp;gt;can_do_thing);&#xA;return 1;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Easy to abuse but great for readability when used properly.&lt;/p&gt;&#xA;" OwnerUserId="9084" LastActivityDate="2010-12-07T05:22:07.433" CommunityOwnedDate="2010-12-07T07:14:37.740" />
  <row Id="24308" PostTypeId="2" ParentId="20745" CreationDate="2010-12-07T05:25:10.990" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.acceleratedcpp.com/&quot; rel=&quot;nofollow&quot;&gt;Accelerated C++&lt;/a&gt; is a great introduction to C++ in less than 300 pages.  The Effective C++ books are great also.&lt;/p&gt;&#xA;" OwnerUserId="1858" LastActivityDate="2010-12-07T05:25:10.990" />
  <row Id="24309" PostTypeId="2" ParentId="24302" CreationDate="2010-12-07T05:26:36.530" Score="4" ViewCount="" Body="&lt;p&gt;There are plenty on codeplex. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codeplex.com/site/search/openings?query=&amp;amp;sortBy=DownloadCount&amp;amp;tagName=%2cC%23%2c&amp;amp;licenses=|&amp;amp;refinedSearch=true&quot; rel=&quot;nofollow&quot;&gt;http://www.codeplex.com/site/search/openings?query=&amp;amp;sortBy=DownloadCount&amp;amp;tagName=%2cC%23%2c&amp;amp;licenses=|&amp;amp;refinedSearch=true&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-12-07T05:26:36.530" />
  <row Id="24310" PostTypeId="1" AcceptedAnswerId="24311" CreationDate="2010-12-07T05:30:36.653" Score="5" ViewCount="228" Body="&lt;p&gt;Consider a drop down &quot;Duration&quot; which has 3 options &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;1. 30 days&#xA;2. 60 days&#xA;3. 90 days&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and by default 30 days will be the selected value. Does it make sense to make this dropdown mandatory? Do we really need to put a &lt;strong&gt;*&lt;/strong&gt; (Mandatory mark) for this field?&lt;/p&gt;&#xA;" OwnerUserId="156" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-07T12:37:29.440" LastActivityDate="2010-12-07T12:37:29.440" Title="Does it make sense to make a field mandatory which has a default value?" Tags="&lt;design&gt;" AnswerCount="7" CommentCount="3" />
  <row Id="24311" PostTypeId="2" ParentId="24310" CreationDate="2010-12-07T05:36:55.480" Score="7" ViewCount="" Body="&lt;p&gt;No it does not make sense.&#xA;The only context in which it could be argued to make sense is if there was a blank selection present. But having a blank selection be available for a required field with a default value doesn't make any sense. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there were no default value, then one would want a blank field and required status. As it stands, I think that that would only add confusion.&lt;/p&gt;&#xA;" OwnerUserId="2357" LastActivityDate="2010-12-07T05:36:55.480" />
  <row Id="24312" PostTypeId="1" CreationDate="2010-12-07T05:38:33.183" Score="6" ViewCount="217" Body="&lt;p&gt;From the time a job is posted, how much time should pass before I consider the position filed by someone else?&lt;/p&gt;&#xA;" OwnerUserId="969" LastActivityDate="2010-12-07T19:09:44.260" Title="How long after the release of a job listing should I consider the job listing dead?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;job-market&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="24313" PostTypeId="2" ParentId="24270" CreationDate="2010-12-07T05:48:56.793" Score="1" ViewCount="" Body="&lt;p&gt;I was a competent self-taught programmer by the time I got into college.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;College taught me about the &lt;em&gt;computer&lt;/em&gt;. I can talk unintelligently about everything from transistors to continuations at this point, as well as a smattering of history, foreign language, and obscure literature. I could not have gotten those datapoints really outside of travel and some careful reading selections.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't know what degree to take, a theoretical math degree is probably the best one. Why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a pet theory called the &quot;math ceiling theory&quot;: &lt;em&gt;People who don't know math can't learn enough to do mathematical jobs, people who do know math can do non-mathematical jobs&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example: I like information theory. I can kludge my way through the math (lots of bayesian statistics/probability). I know that for someone who doesn't know the math, they can't get it. The big greek letters scare them away. Especially if there's an integration sign sitting there looking at them... So I know that if I am wanting to pair up with someone on an information-theoretic based project, they will never get what's going on unless they can talk enough Math. So there's no reason to pair with a peer who doesn't talk Math. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most top computer scientists (not to be confused with top hackers), have a deep mathematical background. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, your average web programmer banging out biz websites and CMS customizations doesn't need math, and he'll take home a decent paycheck each week. That's OK with some people. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to directly answer your questions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Maybe consider another degree. You won't know most of a good CS program, but if software is not something you want to commit to...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;In the US, you can often challenge low-level courses or test out of others. I did. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-07T05:48:56.793" />
  <row Id="24314" PostTypeId="2" ParentId="24312" CreationDate="2010-12-07T05:54:37.777" Score="3" ViewCount="" Body="&lt;p&gt;Depends on what information has been given.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there's an application period, and that period has been exceeded, then probably yes, it's dead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there's an end date, and that's past, the probably yes, it's dead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best way to find out though, is to contact the submitter of the job, be it the recruiter, company, etc; if you really want to find out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a perfect world, job market sites would cull jobs after a certain period given a closing date, or if the poster hasn't returned to remove it themselves&lt;/p&gt;&#xA;" OwnerUserId="965" LastActivityDate="2010-12-07T05:54:37.777" CommentCount="2" />
  <row Id="24315" PostTypeId="2" ParentId="24310" CreationDate="2010-12-07T06:19:25.130" Score="3" ViewCount="" Body="&lt;p&gt;Depends on the importance of the field and not on the default value. Do you think if this field is not mandatory will give the user shock after 30 days? If yes then it should be mandatory or else it should not. My strategy is to keep minimum fields mandatory and some sufficient default value for others. Then mention in the documentation what each value does, and if something happens which value to change. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-07T06:19:25.130" />
  <row Id="24316" PostTypeId="2" ParentId="24310" CreationDate="2010-12-07T06:30:45.477" Score="4" ViewCount="" Body="&lt;p&gt;If * only means &quot;mandatory&quot; then it does not make sense, as you do not need to change the value to get the form to submit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some users might assume that if they don't add something to a form, it won't be posted on form submission. A * might then be a way of drawing their eye to an important field that will be posted on form submission, even though no action is technically &lt;em&gt;required&lt;/em&gt; for the form to submit. In that way a * is more of a &quot;this field &lt;em&gt;will affect submission&lt;/em&gt; &quot; marker than a &quot;this field &lt;em&gt;is mandatory&lt;/em&gt; &quot; marker.&lt;/p&gt;&#xA;" OwnerUserId="7629" LastActivityDate="2010-12-07T06:30:45.477" />
  <row Id="24317" PostTypeId="2" ParentId="24310" CreationDate="2010-12-07T06:35:21.337" Score="0" ViewCount="" Body="&lt;p&gt;Generally, probably not.  But if you absolutely want the user to make conscious selection, you can add something like &lt;code&gt;&amp;lt;select one&amp;gt;&lt;/code&gt; as the first option in the list and treat it as mandatory in the form's validation.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-07T06:35:21.337" />
  <row Id="24318" PostTypeId="2" ParentId="24036" CreationDate="2010-12-07T06:39:49.317" Score="0" ViewCount="" Body="&lt;p&gt;XML is like a building block for a developer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(1) In android application XML is the basic requirement to display graphical user interface.&#xA;(2) In mobile applications like for iPhone and Blkackberry developer can use web service which is in xml format. &#xA;(3) XML is easy to understand and very easy to learn.&#xA;(4) XML gives structural information to display data.&lt;/p&gt;&#xA;" OwnerUserId="9256" LastActivityDate="2010-12-07T06:39:49.317" />
  <row Id="24319" PostTypeId="2" ParentId="24312" CreationDate="2010-12-07T06:45:34.053" Score="11" ViewCount="" Body="&lt;p&gt;Never!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes job openings sit for months or years.  Other times, the new hire doesnt work out, and your resume might show up at the right time.  Or the company might plan on creating a new position, and lo and behold, your resume just happened to show up.  This is particularly true for smaller companies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If its been a long time since the posting was listed, you might consider not applying for a specific position, but it never hurts to get your resume into an employer's hands.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Heck, even if there's no job opening listed for company, if you know your skills might be usable to a particular company, send the resume in anyways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Worst case, you waste a stamp.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-07T06:45:34.053" CommentCount="4" />
  <row Id="24320" PostTypeId="2" ParentId="24310" CreationDate="2010-12-07T06:46:17.343" Score="0" ViewCount="" Body="&lt;p&gt;The two are different, but consider this, your application might require a value to be entered. However, can you guaranteee that all other applications/dba work that might connect and update to the same database will do the same. if not how would your application handle the exception.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In such cases make it mandatory at the database level to ensure consistancy and save you the headache of working out why some items cause an issue when other don't and you've only got the application front end to look at. Because another process hasn't applied the same criteria.&lt;/p&gt;&#xA;" OwnerUserId="4960" LastActivityDate="2010-12-07T06:46:17.343" />
  <row Id="24321" PostTypeId="2" ParentId="610" CreationDate="2010-12-07T07:14:37.740" Score="6" ViewCount="" Body="&lt;p&gt;I like Common Lisp macros (not sure they fit into the definition of syntax in this question). &lt;strong&gt;Macros shorten your code and lengthen your life.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-07T07:14:37.740" CommunityOwnedDate="2010-12-07T07:14:37.740" CommentCount="1" />
  <row Id="24322" PostTypeId="2" ParentId="24270" CreationDate="2010-12-07T07:15:23.017" Score="2" ViewCount="" Body="&lt;p&gt;I faced the same problem, and ended up not going for a comp sci degree.  It didnt affect my employability negatively.  Remember, while yes, you'd learn a lot with a CS degree, you'd also learn a lot with &lt;em&gt;other&lt;/em&gt; degreees.  And that other knowlege is also valuable to employers.  I would, though, make sure you get some degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I'd say is, pick something you're really interested in.  Comp Sci, Engineering, Biology, whatever.  There's nothing &lt;em&gt;wrong&lt;/em&gt; with selecting a CS degree, either.  If thats your thing, then go for it.  Also, I dont know where you are, but in the US its not unusual for students to get to college with grand plans of one major, only to discover another area of study that really grabs them, and they switch majors.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-07T07:15:23.017" />
  <row Id="24323" PostTypeId="2" ParentId="23942" CreationDate="2010-12-07T07:31:35.017" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Prograph&quot; rel=&quot;nofollow&quot;&gt;Prograph&lt;/a&gt; was a cool language that was all drag and drop. Also, Wikipedia has an article with a good sized list of &lt;a href=&quot;http://en.wikipedia.org/wiki/Visual_programming_language&quot; rel=&quot;nofollow&quot;&gt;visual languages&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-12-07T07:31:35.017" />
  <row Id="24324" PostTypeId="2" ParentId="24270" CreationDate="2010-12-07T07:40:54.623" Score="2" ViewCount="" Body="&lt;p&gt;I would suggest you read the book &quot;Gödel, Escher, Bach&quot; by Douglas Hofstaedter, as it is an accessible introduction to &lt;em&gt;SOME&lt;/em&gt; of the concepts that you will learn at a university, and also a fascinating read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is not as much about actual coding but the mindset you need to be able to understand some of the deeper concepts better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if at all possible seek the best university available to you.  There is a world of difference between mediocre and excellence, and I gather you want to be one of the best.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-07T07:40:54.623" />
  <row Id="24325" PostTypeId="2" ParentId="24270" CreationDate="2010-12-07T07:59:15.833" Score="0" ViewCount="" Body="&lt;p&gt;To answer your second question, my university had introductory programming classes and you could usually take the exam in the first three weeks. If you got a high score, you were allowed to stop attending classes and labs for that subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's worth mentioning that the introductory classes differed from one professor to the other, and that while mine were basic stuff, one of the other professors had very interesting classes that we attended /read notes from. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would talk to students who took the class in previous years and see what the level of the class was and what was studied (and ignore what they say about how useful it was - I got to use things I learned in the second semester at the end of my fourth year)&lt;/p&gt;&#xA;" OwnerUserId="3207" LastActivityDate="2010-12-07T07:59:15.833" />
  <row Id="24326" PostTypeId="1" AcceptedAnswerId="24345" CreationDate="2010-12-07T08:07:32.237" Score="0" ViewCount="188" Body="&lt;p&gt;If you had worked on 2 or more projects (as a developer) at the same time, share your experience.&lt;/p&gt;&#xA;" OwnerUserId="7656" LastActivityDate="2010-12-07T15:25:35.297" ClosedDate="2010-12-07T15:29:12.167" Title="How is it working on multi projects?" Tags="&lt;experience&gt;&lt;work&gt;&lt;time-management&gt;" AnswerCount="8" CommentCount="3" />
  <row Id="24327" PostTypeId="1" CreationDate="2010-12-07T08:12:52.307" Score="1" ViewCount="161" Body="&lt;p&gt;Do you think it has potential like iTunes or various smartphone stores? Do you think it will be worthwhile to sign up your web applications?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will you do so?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Link:  &lt;a href=&quot;https://chrome.google.com/webstore/comingsoon&quot; rel=&quot;nofollow&quot;&gt;https://chrome.google.com/webstore/comingsoon&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4852" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-12-07T18:14:52.487" LastActivityDate="2010-12-07T18:14:52.487" Title="What do you think about Chrome web store?" Tags="&lt;web-applications&gt;&lt;web-store&gt;&lt;chrome&gt;" AnswerCount="2" />
  <row Id="24328" PostTypeId="2" ParentId="24326" CreationDate="2010-12-07T08:14:57.930" Score="1" ViewCount="" Body="&lt;p&gt;It's a good experience. It enhance your time management, work management and scheduling skills. Also at the same time you may work with different people and at the different roles. It's nice learning. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-07T08:14:57.930" />
  <row Id="24329" PostTypeId="2" ParentId="24275" CreationDate="2010-12-07T08:29:22.787" Score="0" ViewCount="" Body="&lt;p&gt;Fingerless gloves seems like a good option. They are sold in different variations, but the typical &quot;market vendor&quot; solution is to simply cut the finger tips off of a pair of regular wool gloves.&lt;/p&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-12-07T08:29:22.787" />
  <row Id="24330" PostTypeId="2" ParentId="24326" CreationDate="2010-12-07T08:45:03.747" Score="3" ViewCount="" Body="&lt;p&gt;I do that all the time, and I'm still alive! (&lt;em&gt;knocking on wood&lt;/em&gt;) Just make sure you have a clear schedule when to work on one project and when on the other. Don't let project B interrupt you (too often) when you should be working on project A.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Advantages of working on more than one project at the same time:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When one project is in a tedious stage, the other project can give you little achievements to keep you happy and motivated (a big plus IMO!)&lt;/li&gt;&#xA;&lt;li&gt;You can keep in touch with different technologies, without mixing them in one project&lt;/li&gt;&#xA;&lt;li&gt;Distribution of risk - if one project takes longer or fails, the other on can still provide you with earnings&lt;/li&gt;&#xA;&lt;li&gt;Better utilization, since you can work on project B when project A is stalled because you have to wait for customer feedback or the next meeting (scheduled the day after tomorrow 15pm) before you are able to continue&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-07T08:45:03.747" />
  <row Id="24331" PostTypeId="2" ParentId="24327" CreationDate="2010-12-07T08:55:34.223" Score="0" ViewCount="" Body="&lt;p&gt;I think the Chrome web store will have some potential. Chrome adoption rates are raising, and we'll see how big a success ChromeOs will be. Maybe some users of other browsers will also use the chrome web store, but I rather doubt that their numbers will be significant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I had a web app of general interest, I definitely would sign it up, can't hurt.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-07T08:55:34.223" />
  <row Id="24332" PostTypeId="2" ParentId="24326" CreationDate="2010-12-07T08:55:58.763" Score="4" ViewCount="" Body="&lt;p&gt;I find working with different languages sometimes tricky. For example, I currently have the following projects on the go:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Migration VB6 to C# WPF&lt;/li&gt;&#xA;&lt;li&gt;Migration C# webparts from SharePoint 2007 to SPP 2010&lt;/li&gt;&#xA;&lt;li&gt;Create bundle of REST services in Java for WebSphere platform&lt;/li&gt;&#xA;&lt;li&gt;Take over responsibility for an old IE plug-in written in C++ and get running on Firefox&lt;/li&gt;&#xA;&lt;li&gt;Lotus XPages custom controls: Java, JSP, JavaScript&lt;/li&gt;&#xA;&lt;li&gt;Maintenance of Java wep apps, applets and desktop apps&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These are all currently active and I often have to switch between 2 or 3 in any given day. The similarity between Java and C# is sometimes tricky because the syntax is so similar but not identical. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I think I'm loosing it but it is all good mental exercise :-)&lt;/p&gt;&#xA;" OwnerUserId="598" LastActivityDate="2010-12-07T08:55:58.763" CommentCount="2" />
  <row Id="24333" PostTypeId="2" ParentId="24270" CreationDate="2010-12-07T09:02:21.543" Score="0" ViewCount="" Body="&lt;p&gt;I'd say go for a degree. University will teach you that there are so many things you can't possibly know.&lt;/p&gt;&#xA;" OwnerUserId="4852" LastActivityDate="2010-12-07T09:02:21.543" />
  <row Id="24335" PostTypeId="2" ParentId="24252" CreationDate="2010-12-07T09:23:19.527" Score="0" ViewCount="" Body="&lt;p&gt;If there is a significant bug I will often get the programmer and rub their face in the code while telling in a firm voice &quot;No. Bad programmer. This is not how we write code.&quot;  Make it clear to them that the software they've produced is not acceptable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it shouldn't get to this point.  Through the use of positive re-enforcement you can encourage and instill good behaviors.  A complement when they write a test, a soda treat when write clean maintainable code, these small daily rewards can help give you the programmer you've always wanted.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-07T09:23:19.527" CommentCount="1" />
  <row Id="24336" PostTypeId="2" ParentId="24221" CreationDate="2010-12-07T09:31:13.497" Score="0" ViewCount="" Body="&lt;p&gt;Delegate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've worked in a team lead role multiple times and I'm currently doing more dev management stuff.  I delegate as much as possible to particular people who I know do those tasks.  This has the dual benefit of getting those people exposure to the bigger picture of the SDLC, while preparing/judging their ability to become managers in the future.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-07T09:31:13.497" />
  <row Id="24337" PostTypeId="2" ParentId="24326" CreationDate="2010-12-07T09:41:24.527" Score="1" ViewCount="" Body="&lt;p&gt;One of the things I make sure I do is to set-up a repeatable, 'easy to get back' to build environment.  That way whenever I go back to project X all I need to do is update from version control, run the build and integration tests, check my Hudson to see what my BDD test progress is at and off I go again.  Usually my Hudson installation does this all for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also use a Kanban board to keep track of the overall projects and to visualise how they are impacted by me jumping around.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-07T09:41:24.527" />
  <row Id="24338" PostTypeId="2" ParentId="24107" CreationDate="2010-12-07T09:41:32.990" Score="8" ViewCount="" Body="&lt;p&gt;I've come to realize that I know nothing when it comes to the &quot;next big thing&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I first came across Twitter I thought IM/IRC only worse.  It will never fly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When MySpace came out I thought &quot;oh Geocities all over again&quot;.  It will never fly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I saw the commercial for the Snuggie I thought &quot;a blanket with holes or a backwards robe&quot;.  It'll never fly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't help but feel I'm somewhat left out knowing I'm not the target market.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-07T09:41:32.990" CommentCount="6" />
  <row Id="24339" PostTypeId="2" ParentId="24221" CreationDate="2010-12-07T09:42:22.097" Score="2" ViewCount="" Body="&lt;p&gt;In my experience, having both roles at the same time, in the same project, causes severe problems. As a developer, you are acutally reporting to yourself, so you are basically unmanaged. If you consider yourself a better programmer than your peers, you are likely to avoid delegating difficult tasks to them, so in addition to your PM tasks, you are also working on the most sophisticated parts of the project. Parttime, that is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few days ago, someone posted &lt;a href=&quot;http://c2.com/cgi/wiki?RealStoryAboutDeveloperTurnedManager&quot; rel=&quot;nofollow&quot;&gt;this link&lt;/a&gt;, and I think it fits here, too.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-07T09:42:22.097" CommentCount="2" />
  <row Id="24340" PostTypeId="2" ParentId="24221" CreationDate="2010-12-07T09:52:31.827" Score="1" ViewCount="" Body="&lt;p&gt;The work patterns for PM and developer are pretty badly aligned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the most parts developers need long periods of concentration where PMs tend to be dealing with things being thrown at them from all directions all the time.  As a result if you try and do the two simultaneously you're almost certain to fail.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best way to do it is disciplined time management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming a 50 / 50 split (adjust if that's not true), then I'd make mornings your PM time and afternoon's your development time.  During your development time redirect your phones to voicemail, close e-mail, disable instant messaging and so on.  Then at the end of the day check messages and e-mails for anything urgent, deal with those and then leave the rest for your next PM slot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll need to explain to your co-founder what you're doing and why and get their buy in and you're going to need to be disciplined but it is possible, so long as you don't try to do both at once.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-07T09:52:31.827" CommentCount="1" />
  <row Id="24341" PostTypeId="2" ParentId="24310" CreationDate="2010-12-07T09:54:42.307" Score="2" ViewCount="" Body="&lt;p&gt;In general, &lt;strong&gt;it doesn't&lt;/strong&gt; make sense, &lt;strong&gt;unless&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;It is possible to reject the default value, and return an empty value instead.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Adding the mandatory mark has security or other benefits.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;For example, in &lt;strong&gt;ASP.Net&lt;/strong&gt;, making a field mandatory using a validator makes the field mandatory on both the client &lt;em&gt;and the server&lt;/em&gt;. As well as providing client-side feedback if the mandatory field is not completed (not useful in your case), it also provides a measure of security on the server. The idea is that the server must reject a submission where the mandatory field has not been populated. Although this &lt;em&gt;shouldn't&lt;/em&gt; happen if you provide a default value, it &lt;strong&gt;isn't impossible&lt;/strong&gt;. Indeed, it can occur when:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The use has deliberately altered the client-side code to send invalid data back to the server&lt;/li&gt;&#xA;&lt;li&gt;The user's session has been meliciously compromised by a 3rd party (virus etc)&lt;/li&gt;&#xA;&lt;li&gt;There is a client-side programming error&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In these three cases, the server-side validator will ensure that the empty field will not be processed.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-12-07T09:54:42.307" CommentCount="4" />
  <row Id="24342" PostTypeId="1" AcceptedAnswerId="24344" CreationDate="2010-12-07T10:00:28.047" Score="8" ViewCount="366" Body="&lt;p&gt;As I programmer, I really enjoy programming games and puzzle creators/games.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find myself engineering a lot of these problems the same way and ultimately using similar technique to program them that I'm really comfortable with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To give you brief insight I like to create graphs where nodes are represented with objects. These object hold data such as coordinates, positions and of course references to other neighboring objects. I'll place them all in a data structure and make decisions on this information in a &quot;game loop&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While this is a brief example, its not exact in all situations. It's just one way I feel really comfortable with. Is this bad?&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-12-07T16:01:03.113" Title="Should I be worried if I solve a lot of my problems the same way?" Tags="&lt;software-engineering&gt;&lt;problem-solving&gt;&lt;games&gt;" AnswerCount="10" CommentCount="1" FavoriteCount="1" />
  <row Id="24343" PostTypeId="1" AcceptedAnswerId="24352" CreationDate="2010-12-07T10:01:34.443" Score="22" ViewCount="1270" Body="&lt;p&gt;Speaking as someone with an Electronic Engineering rather than Computer Science degree, what is the &lt;strong&gt;one bit&lt;/strong&gt; of computer science I should know to make me a better &lt;strong&gt;real world&lt;/strong&gt; programmer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(By real world I mean something I'm going to use and benefit from in my day to day job as a programmer - for instance I'd suggest understanding database normalisation is of more practical use than understanding a quick sort for which there are lots of libraries).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-09T16:20:21.567" Title="What is the one bit of computer science theory I should know?" Tags="&lt;learning&gt;&lt;computer-science&gt;&lt;theory&gt;" AnswerCount="18" CommentCount="8" FavoriteCount="13" />
  <row Id="24344" PostTypeId="2" ParentId="24342" CreationDate="2010-12-07T10:03:41.587" Score="14" ViewCount="" Body="&lt;p&gt;No, it's fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point of practical programming is to find solutions that will possibly be useful in many similar developments. You just found one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can't and shouldn't be creating different solutions just for the sake of them being different. But you definitely should have a critical look at your solutions each time and ask yourself if they're still good or maybe the industry has progressed since and you need to align with it accordingly.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-07T10:03:41.587" />
  <row Id="24345" PostTypeId="2" ParentId="24326" CreationDate="2010-12-07T10:06:18.070" Score="2" ViewCount="" Body="&lt;p&gt;I'm working on a dozen projects at a time, I believe the max no. of projects you can work on simultaneous is around 4-5 but it also depends on the complexity of each project, I currently work on 9 projects and only 2 has deadlines, the other 7 requires less attention because they are at the start, however I'm pretty sure I will fail(we currently talk about bringing other developers up to speed on them) to keep up as the other 7 will grow bigger and bigger.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line it depends on the developer's brain, &lt;strong&gt;how much can you take&lt;/strong&gt; and more importantly for &lt;strong&gt;how long can you keep it up&lt;/strong&gt;, I believe you cannot take more than 2 big(enterprise if you will) projects at the same time, otherwise you will eventually fail with one or all projects -- but of course this is my personal opinion(from my experience), &lt;em&gt;don't take it for granted&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="8747" LastActivityDate="2010-12-07T10:06:18.070" />
  <row Id="24346" PostTypeId="2" ParentId="24342" CreationDate="2010-12-07T10:06:36.000" Score="3" ViewCount="" Body="&lt;p&gt;Realistically in our day jobs we tend to get posed a fair number of pretty similar problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In these situations sticking with what you know can be good.  I've seen more examples of bad solutions from people implementing something they didn't understand that someone using a non-ideal technique well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you know something well the chances are you can flex it as needed and that your implementation will be solid and effective.  Those things probably won't be true from your first attempts at new techniques.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the flip side is if all you have is a hammer, everything looks like a nail.  You should be doing things to make yourself aware of alternatives and when you're perhaps pushing your favourites too far.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps pick a few non-urgent / non-critical changes and use them to get up to speed with alternative solutions?&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-07T10:06:36.000" />
  <row Id="24347" PostTypeId="2" ParentId="24343" CreationDate="2010-12-07T10:06:52.083" Score="-1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Problem Solving and the desire to continue learning!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They serve me far better than knowing quick sort and database normalization. &lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-12-07T10:06:52.083" CommentCount="3" />
  <row Id="24348" PostTypeId="2" ParentId="24343" CreationDate="2010-12-07T10:07:39.103" Score="12" ViewCount="" Body="&lt;p&gt;Learn about data structures, algorithms and complexity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not too much just to get an understanding that a machine is not a magic box with unlimited power. You can't throw anything at it and expect it to crunch it in milliseconds. It has limits you know. You need to learn to not test them out with your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also have a look at common approaches to solve particular design problems in programming. Design patterns namely. Don't worship them just take the ideas they communicate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowledge of database modeling is essential as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that it's just different programming languages, frameworks and libraries that implement or let you implement the core concepts. Pick up whatever you like and practice with those.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-07T10:15:47.760" LastActivityDate="2010-12-07T10:15:47.760" CommentCount="3" />
  <row Id="24349" PostTypeId="2" ParentId="24310" CreationDate="2010-12-07T10:14:29.477" Score="0" ViewCount="" Body="&lt;p&gt;From a code point of view no.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a UI point of view (which is how your question is phrased) I'd say &lt;strong&gt;yes&lt;/strong&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason I say this is that although it's specified, many people read &quot;mandatory&quot; as &quot;significant&quot; (how many people skim web forms only filling in the smallest amount of data?).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the specific value in the field is important you may wish to use the mandatory * to show that it shouldn't just be skimmed over but that the user should give it some consideration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus for pedants (and we're all computer programmers so that should be most of us) surely we should be saying it IS mandatory so should be marked as such, regardless of the UI component being used.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This may also protect you from the change down the line when someone says &quot;let them pick any value and replaces it with a text box&quot;.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-07T10:14:29.477" />
  <row Id="24350" PostTypeId="2" ParentId="24343" CreationDate="2010-12-07T10:15:31.663" Score="19" ViewCount="" Body="&lt;p&gt;This is a question, everyone will have a different answer on. I would say: complexity theory is the most important piece, that you don't directly learn as a programmer anyway (like algorithms and data-structures), but what may impact your work. It helps if I know, that a problem is has cubic complexity, I know that it will scale badly if the problem size is increased.&lt;/p&gt;&#xA;" OwnerUserId="7654" LastActivityDate="2010-12-07T10:15:31.663" CommentCount="4" />
  <row Id="24351" PostTypeId="2" ParentId="24342" CreationDate="2010-12-07T10:21:17.897" Score="2" ViewCount="" Body="&lt;p&gt;As long as the problem is getting solved in efficient way, there is no need to worry. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-07T10:21:17.897" />
  <row Id="24352" PostTypeId="2" ParentId="24343" CreationDate="2010-12-07T10:22:15.323" Score="45" ViewCount="" Body="&lt;p&gt;If I have to choose just one bit, which is a difficult decision, I'd say go for the &lt;strong&gt;Big O notation&lt;/strong&gt;. Understanding the implications of O(n), O(ln n), O(n²), O(2^n), O(n!) helps you to avoid a lot of expensive mistakes, the kind of which work well in the test environment but disastrously fail in production.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-07T10:22:15.323" CommentCount="5" />
  <row Id="24353" PostTypeId="1" AcceptedAnswerId="24951" CreationDate="2010-12-07T10:25:51.700" Score="17" ViewCount="731" Body="&lt;p&gt;First day at work for a new programmer.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming that the company has covered all the usual corporate stuff (benefits, paperwork, health and safety and so on), &lt;strong&gt;What are the things you should be talking a new developer through to get them up to speed and productive as soon as possible?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In additional what are the key things in making this process a success?  What have you seen work particularly well?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Edit: Added a bounty.  The current top answer is fine but I'm still thinking there is more that can be done to make a programmers first week as useful to them as possible.  Really hoping for insights from good and bad starts to jobs people have had).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-09T11:28:34.110" LastActivityDate="2010-12-17T20:51:49.353" Title="New Starter Introduction and Induction Process" Tags="&lt;development-process&gt;&lt;new-job&gt;" AnswerCount="12" CommentCount="1" FavoriteCount="11" />
  <row Id="24354" PostTypeId="2" ParentId="24353" CreationDate="2010-12-07T10:33:46.660" Score="18" ViewCount="" Body="&lt;p&gt;Some things I would expect:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Quick introduction to everyone on the team.&lt;/li&gt;&#xA;&lt;li&gt;Making sure they are comfortable with the source control system.&lt;/li&gt;&#xA;&lt;li&gt;Making sure they are familiar with the development process for instance if you use SCRUM, do they know what a stand-up is?&lt;/li&gt;&#xA;&lt;li&gt;Email address is set up.&lt;/li&gt;&#xA;&lt;li&gt;A trip to the pub at lunch to socialise with the team &lt;code&gt;:-)&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Pair programming with team members for a couple of weeks&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3543" LastEditorUserId="3543" LastEditorDisplayName="" LastEditDate="2010-12-07T11:30:29.070" LastActivityDate="2010-12-07T11:30:29.070" CommentCount="6" />
  <row Id="24355" PostTypeId="2" ParentId="24342" CreationDate="2010-12-07T10:47:12.270" Score="10" ViewCount="" Body="&lt;p&gt;If it works well, call it a design pattern. If it doesn't, but you don't know better, it's the golden hammer antipattern.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-07T10:47:12.270" CommentCount="1" />
  <row Id="24356" PostTypeId="2" ParentId="24229" CreationDate="2010-12-07T10:54:28.917" Score="0" ViewCount="" Body="&lt;p&gt;By knowing what I want to do next in my life. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I &quot;knew&quot; that I want to be a programmer (well, at the age of 13 I just wanted to be a god of computers (-. ). Somehow all this &quot;control the machine&quot; business charmed me to the point that I knew what university and what degree I want to get. Got my first PC, started playing games (-, then learned so batch scripting, burned hard drive down while investigating BIOS, etc.&#xA;In 8th grade my school introduced computer classes, so this way I got my first real programming knowledge. This is where it got interesting enough for me to get into math seriously. Did some national competitions in math, physics, programming. It got even more interesting: had no issues getting into uni with scholarship, started working in my first real programming job at the end of first term. From there on it was easy enough. The best thing - I love it! It doesn't get in a way of my social life, it's the opposite, I got to know a lot of interesting people (-.&lt;/p&gt;&#xA;" OwnerUserId="1045" LastActivityDate="2010-12-07T10:54:28.917" CommunityOwnedDate="2011-01-30T16:17:45.980" />
  <row Id="24357" PostTypeId="2" ParentId="24353" CreationDate="2010-12-07T10:57:58.707" Score="3" ViewCount="" Body="&lt;p&gt;Not sure exactly what you are asking. Hope you are not asking for the new comers to be productive from day 1. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let them understand the development setup, source control. Give the access to the important architecture level documents. Then start giving small testing assignments. Let them test the &#xA;bugs fixed by the seniors. Also slowly give them small, minor bugs to fix. Introduce them to library and let them read some good books. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:- I forgot the most important thing. If possible assign one senior to each to mentor them and answer their doubts. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-07T10:57:58.707" CommentCount="3" />
  <row Id="24358" PostTypeId="2" ParentId="21791" CreationDate="2010-12-07T11:04:30.530" Score="0" ViewCount="" Body="&lt;p&gt;My first project done completely in TDD was an open source one in 2002.&#xA;You can still find it here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://sourceforge.net/projects/camelos/&quot; rel=&quot;nofollow&quot;&gt;http://sourceforge.net/projects/camelos/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now at work I'm working mostly in TDD but not everybody in our team does, that's fine provided the wrote the tests at the end of the day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We also wrote a complete gwt-gae application using TDD for the core part.&#xA;&lt;a href=&quot;http://netnumero.appengine.com/company/mycompany&quot; rel=&quot;nofollow&quot;&gt;http://netnumero.appengine.com/company/mycompany&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I cannot release that code but I'm working on a complete example project done in TDD for GWT, that is using TDD also in the UI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As soon as I'll finish (Christmas holidays) I'll post it here&#xA;&lt;a href=&quot;https://github.com/ubertob/gwt-tdd-example&quot; rel=&quot;nofollow&quot;&gt;https://github.com/ubertob/gwt-tdd-example&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="9115" LastActivityDate="2010-12-07T11:04:30.530" />
  <row Id="24359" PostTypeId="2" ParentId="24229" CreationDate="2010-12-07T11:05:25.967" Score="1" ViewCount="" Body="&lt;p&gt;I would highly recommend looking for an &lt;strong&gt;internship&lt;/strong&gt; in your third year of university. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You get paid&lt;/li&gt;&#xA;&lt;li&gt;You learn A LOT&lt;/li&gt;&#xA;&lt;li&gt;You get real-world experience&lt;/li&gt;&#xA;&lt;li&gt;You get an extra diploma ontop of your degree&lt;/li&gt;&#xA;&lt;li&gt;It looks very nice on your CV and will improve your employment prospects by approximately one million percent.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Many universities in the UK offer these 'sandwich degree's.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;During my internship I started off on small projects and moved on to be a regular member of the team, same responsibilities as everyone else. As an added bonus, students who do an internship generally do much better in their final year at unviersity too.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-12-07T11:05:25.967" CommunityOwnedDate="2011-01-30T16:17:45.980" />
  <row Id="24360" PostTypeId="2" ParentId="24229" CreationDate="2010-12-07T11:07:21.243" Score="0" ViewCount="" Body="&lt;p&gt;I got my programming job the old-fashioned way. I went to a four-year University after doing military service. I got a BS in Computer Engineering which I think helps a lot because you get to understand computers as a system all the way down to the metal. The key is to be passionate and to have a lot of will power to get trough the tough classes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So here's my list&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Get a degree in CS or CE/EE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Know your stuff. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Know how to interview (there are great resources out there)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Know how to network&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Apply to jobs you actually want. (getting stuck doing something you don't like sucks)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Be passionate about your career. &lt;/p&gt;&#xA;" OwnerUserId="8609" LastActivityDate="2010-12-07T11:07:21.243" CommunityOwnedDate="2011-01-30T16:17:45.980" />
  <row Id="24361" PostTypeId="1" AcceptedAnswerId="24364" CreationDate="2010-12-07T11:13:56.050" Score="9" ViewCount="195" Body="&lt;p&gt;Companies acquire other companies that use different version control systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a common wisdom on how to integrate such systems together, for example using a Subverson-GIT bridge or even deciding on using just one tool over another - and how to migrate between systems?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do people use a set of criteria for such decision making, for example an equivalent to the &quot;Joel&quot; test on software development?&lt;/p&gt;&#xA;" OwnerUserId="9267" LastActivityDate="2010-12-08T10:15:28.380" Title="Method for integrating various version control systems or choosing one over others, due to mergers and acquisitions?" Tags="&lt;version-control&gt;&lt;migration&gt;" AnswerCount="4" FavoriteCount="3" />
  <row Id="24362" PostTypeId="2" ParentId="24342" CreationDate="2010-12-07T11:19:06.353" Score="2" ViewCount="" Body="&lt;p&gt;I think graph is a suitable design for designing games to represent decisions\choices. Just keep in mind that probably this can be refined and made more efficient, and this may not be the best solution for other domains.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-07T11:19:06.353" />
  <row Id="24363" PostTypeId="2" ParentId="24361" CreationDate="2010-12-07T11:36:29.253" Score="4" ViewCount="" Body="&lt;p&gt;On the managerial side, it is mainly a question of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;support&lt;/strong&gt;: will the company releasing the VCS still be there in case of trouble.&lt;br&gt;&#xA;It is sadly one of the main reason why such obsolete products like ClearCase are still considered (ClearCase being since 2003 an... &lt;em&gt;IBM&lt;/em&gt; product)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;license cost&lt;/strong&gt;: even if there are freeware alternatives, sometimes &quot;group licenses&quot; for a VCS can be negotiated or actually included within a much larger contract including servers, networks, support, etc... A global licence for this kind of product can end up costing a lot less than the public price.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;On the project side, it is also a question of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;administration&lt;/strong&gt;: on which server will you install a VCS (or many VCS if we are talking about Git, SVN, and others)? With what backup policy? What DRP (Disastry Recovery Plan)?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;local support&lt;/strong&gt;: who will take the level 1 support,? level 2?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;market knowledge&lt;/strong&gt;: are you sure to find enough developers and/or administrators with the right knowledge set to leverage this VCS and all its feature?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Freeware or not, remember a &quot;free&quot; software is free as in &quot;free speech&quot; (you are free to choose and deploy the one you want), not as in &quot;free beer&quot; (it will still cost a lot of money in server, backup, administration, support, ...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The criteria mentions above are a start to determine what VCS to keep, what to abandon.&lt;br&gt;&#xA;But in the latter case, you need to consider:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;migration strategy&lt;/strong&gt;: can you export/import a project history from one VCS to another?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;bridge strategy&lt;/strong&gt;: does it make sense to have an history in two different VCS?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;project obsolescence&lt;/strong&gt;: if a project is in maintenance/End Of Life status, it might be better to support an old VCS for a short while.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3915" LastActivityDate="2010-12-07T11:36:29.253" CommentCount="1" />
  <row Id="24364" PostTypeId="2" ParentId="24361" CreationDate="2010-12-07T11:50:21.693" Score="9" ViewCount="" Body="&lt;p&gt;To answer the migration question from personal experience of several migrations:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't be afraid to just put the current version of the software into the new source control system as the base line and work from there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The vast majority of the time you won't need the history. This means it's one less task to perform during the integration and one less thing to go wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Files/projects that are being actively developed will soon generate a new history. So when you need to find out why a change was made the chances are that the history will be in the current repository as it will be a recent change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Files/projects that were stable before the migration should (all things being equal) remain stable after the migration so you won't need to refer to the history. We found that if we had to investigate a bug in such an old file/project having the history wasn't really of any benefit. As long as you keep the old repository available for 6 months/a year you'll have the reference in such cases.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-12-07T12:04:16.083" LastActivityDate="2010-12-07T12:04:16.083" CommentCount="12" />
  <row Id="24365" PostTypeId="1" CreationDate="2010-12-07T12:49:00.160" Score="4" ViewCount="137" Body="&lt;p&gt;I recently created a Windows desktop application. I worked on it for almost one year and I decided to finally make it available for sale through my website (online payment). The app has a quite strong idea and it's very useful in the IT world, it does something quite unique (which I won't get into).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm having issues about marketing. I was quite busy with developing it and now I have no idea how to spread the word around.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How would you market your software?&lt;/p&gt;&#xA;" OwnerUserId="3306" LastActivityDate="2010-12-07T14:18:03.327" ClosedDate="2010-12-08T13:51:01.267" Title="Marketing your software" Tags="&lt;marketing&gt;" AnswerCount="3" CommentCount="5" FavoriteCount="2" />
  <row Id="24366" PostTypeId="1" CreationDate="2010-12-07T13:00:11.430" Score="0" ViewCount="451" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/62218/how-to-learn-php-effectively&quot;&gt;How to learn PHP effectively?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I'm an intermediate php programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to improve and learn advanced PHP programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently I'm learning CakePHP, but I would like to learn something besides this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What advice would you give if one wanted to learn advanced PHP?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or should I just opt to learn Zend and CakePHP instead?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What books would you recommend?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't want to end up learning CakePHP specific coding, I want to master PHP in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please help me I'm so confused! &lt;/p&gt;&#xA;" OwnerUserId="9269" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-07T14:30:55.663" LastActivityDate="2011-01-21T10:59:26.527" ClosedDate="2011-04-20T11:42:51.687" Title="how to learn advanced web programming in php" Tags="&lt;learning&gt;&lt;php&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="2" />
  <row Id="24367" PostTypeId="2" ParentId="24365" CreationDate="2010-12-07T13:05:58.537" Score="1" ViewCount="" Body="&lt;p&gt;It is a typical question on &quot;&lt;a href=&quot;http://thisweekin.com/thisweekin-startups/&quot; rel=&quot;nofollow&quot;&gt;This week in Startup&lt;/a&gt;&quot; with &lt;a href=&quot;http://thisweekinstartups.com/about-jason/&quot; rel=&quot;nofollow&quot;&gt;Jason Calacanis&lt;/a&gt; ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing is certain: just releasing, and sit back waiting for the world to discover your product won't work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Marketing means having a strong focus on the &lt;strong&gt;product&lt;/strong&gt; (as opposed to &quot;a small set of features&quot;), and that involves:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;representing the product&lt;/strong&gt;: great domain name, great design are pre-requisite&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;networking&lt;/strong&gt;: attending various conference, emailing various bloggers, droping an elevator pitch to the right people.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;spreading the word&lt;/strong&gt; on various blog, having at least a blog, and various social network for the product (Twitter, Facebook, ...).&lt;br&gt;&#xA;Also trying to release new features which are popular at the moment (i.e. which are the subject of articles in various technical publications: if you release one of those features, said publications will be very interesting in making an article about your product)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3915" LastActivityDate="2010-12-07T13:05:58.537" />
  <row Id="24368" PostTypeId="2" ParentId="24361" CreationDate="2010-12-07T13:06:00.940" Score="1" ViewCount="" Body="&lt;p&gt;Lot's of good answers. One other thing to think about is don't let team members get away with thinking switching the VC is such a big deal. There will be a setback with migration, a learning curve, etc., but if they have have too many problems, they need to question their level of ability and/or cooperation.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-07T13:06:00.940" CommentCount="2" />
  <row Id="24369" PostTypeId="2" ParentId="24366" CreationDate="2010-12-07T13:14:34.340" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Do learn to code in PHP without using external frameworks. You will learn a ton from doing that (but please don't do this for production code... People made all the mistakes before you so re-use their code).&lt;/li&gt;&#xA;&lt;li&gt;Once that's done, have a look at a ton of different frameworks. Do pet projects will all of them to try them out and learn &lt;em&gt;their ways&lt;/em&gt; of doing things. Visit &lt;a href=&quot;http://www.phpframeworks.com/&quot; rel=&quot;nofollow&quot;&gt;PHP Frameworks&lt;/a&gt; to get a good list.&lt;/li&gt;&#xA;&lt;li&gt;Move to a better server-side programming language :)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I wouldn't recommend starting with Zend when you're a beginner, or any high-level framework for that matter. You need to learn how things are done and what are the possible screw-ups and the fundamental strengths and weaknesses of the language. Then give the high-level stuff a spin for fun and to see how things are done &lt;em&gt;right&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn to use the API search box on &lt;a href=&quot;http://www.php.net/&quot; rel=&quot;nofollow&quot;&gt;PHP.net&lt;/a&gt; as a reflex. It's your life saver.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Recommended Reading:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://books.google.com/books?id=h-E1lVko-skC&quot; rel=&quot;nofollow&quot;&gt;Programming PHP&lt;/a&gt; (O'Reilly, 2006)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://books.google.com/books?id=KZoAq_mbhXAC&quot; rel=&quot;nofollow&quot;&gt;PHP Objects, Patterns, and Practice&lt;/a&gt; [3rd Ed.] (APress, 2010)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://books.google.com/books?id=IXsZAQAAIAAJ&quot; rel=&quot;nofollow&quot;&gt;PHP 5 in Practice&lt;/a&gt; (Sams, 2006)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://books.google.com/books?id=6tJAdlzjFJ0C&quot; rel=&quot;nofollow&quot;&gt;Beginning PHP and MySQL&lt;/a&gt; [3rd Ed.] (Apress, 2008)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://books.google.com/books?id=ylaQnq-2bqAC&quot; rel=&quot;nofollow&quot;&gt;Beginning PHP5, Apache, and MySQL Web Development&lt;/a&gt; (Programmer to Programmer) (Wrox, 2005)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://books.google.com/books?id=RuLm20CG0gkC&quot; rel=&quot;nofollow&quot;&gt;PHP 6 and MySQL 6 Bible&lt;/a&gt; (Wiley, 2009) (&lt;strong&gt;&lt;em&gt;CAUTION:&lt;/strong&gt; See Mchl's comments below&lt;/em&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://wikimediafoundation.org/&quot; rel=&quot;nofollow&quot;&gt;Wikimedia&lt;/a&gt;'s has a &lt;a href=&quot;http://www.wikiversity.org/&quot; rel=&quot;nofollow&quot;&gt;Wikiversity&lt;/a&gt; &lt;a href=&quot;http://en.wikiversity.org/wiki/PHP&quot; rel=&quot;nofollow&quot;&gt;PHP course&lt;/a&gt; and &lt;a href=&quot;http://www.wikibooks.org/&quot; rel=&quot;nofollow&quot;&gt;Wikibook&lt;/a&gt; on &lt;a href=&quot;http://en.wikibooks.org/wiki/Php&quot; rel=&quot;nofollow&quot;&gt;PHP Programming&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;All the books are decent, so I'd say pick the one from the publisher you usually prefer. I put the ones I enjoyed at the top. The Wikimedia content is not complete and extensive and sometimes hard to navigate, but a nice - and free - reference (which you could contribute to).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Originally I learnt PHP (in 2003) from the French - &lt;strong&gt;now inactive&lt;/strong&gt; - website &lt;a href=&quot;http://www.phpdebutant.org/&quot; rel=&quot;nofollow&quot;&gt;PHP Debutant&lt;/a&gt;. It gives an incredibly nice step-by-step introduction to the language and pinpoints some pitfalls for you. And then leads you to realize how much there is left for you to learn when you dive into web-sites and web-applications development. But if you don't read French that won't help much. Maybe a &lt;a href=&quot;http://translate.google.com/translate?js=n&amp;amp;prev=_t&amp;amp;hl=en&amp;amp;ie=UTF-8&amp;amp;layout=2&amp;amp;eotf=1&amp;amp;sl=auto&amp;amp;tl=en&amp;amp;u=http://www.phpdebutant.org/&quot; rel=&quot;nofollow&quot;&gt;Google Translated PHP-Debutant&lt;/a&gt; will be satisfying enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And this being said, books won't be enough to master PHP (or any language). Practice, over and over.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Hasten slowly, and without losing heart,&#xA;  Put your work twenty times upon the anvil&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;a href=&quot;http://en.wikiquote.org/wiki/Nicolas_Boileau-Despr%C3%A9aux&quot; rel=&quot;nofollow&quot;&gt;Nicolas Boileau-Despréaux&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2011-01-21T10:59:26.527" LastActivityDate="2011-01-21T10:59:26.527" CommentCount="8" />
  <row Id="24370" PostTypeId="2" ParentId="24327" CreationDate="2010-12-07T13:19:37.747" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Android for the desktop&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Google is attempting to rebase the mobile application eco-system on the browser. They've identified a need in the marketplace for people to get hold of web applications that meet a very specific need. In turn, developers of those applications are given a simple to use mechanism for charging their customers to use the application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Google wins on both ends like any good market maker:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It creates and manages the market so is immune to it's rises and falls and can dictate the style of permitted applications&lt;/li&gt;&#xA;&lt;li&gt;It charges commission on all transactions&lt;/li&gt;&#xA;&lt;li&gt;It can leverage other developers skills and imagination to drive traffic to their site&lt;/li&gt;&#xA;&lt;li&gt;It's a low-risk operation (if it dies, well, no biggie for them)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I imagine that uptake may be slow until developers realise that they are able to easily monetise their web applications, and that those web applications need to be small and highly targeted to solve a particular problem. At the moment, web applications are geared towards serving the needs of large organisations, this opens the door for smaller developers to be able to gain entry and, above all, exposure to a larger audience.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-07T13:19:37.747" CommentCount="1" />
  <row Id="24371" PostTypeId="2" ParentId="24343" CreationDate="2010-12-07T13:23:14.763" Score="1" ViewCount="" Body="&lt;h2&gt;Programming&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;From the Department of Mathematics and Computer Science Hobart and William Smith Colleges comes &lt;a href=&quot;http://math.hws.edu/dept/cs_courses.html&quot; rel=&quot;nofollow&quot;&gt;Computer Science 124 Introduction to Programming&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Topics include control structures,&#xA;  objects, classes, inheritance, simple&#xA;  data structures, and basic concepts of&#xA;  software development.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you can't program, you're not going very far in real world computing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, yes, I've noted that you are programmer. This is to improve your overall knowledge of programming theory and what other approaches there are available to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Is programming Computer Science as we know it?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In response to the comment from @Thomas Owens, who pointed out (quite rightly) that programming is not strictly Computer Science, I'd like to quote from &lt;a href=&quot;http://en.wikipedia.org/wiki/Computer_science&quot; rel=&quot;nofollow&quot;&gt;Wikipedia's Computer Science&lt;/a&gt; article: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;... the focus of computer science is&#xA;  more on understanding the properties&#xA;  of the programs used to implement&#xA;  software such as games and&#xA;  web-browsers, and using that&#xA;  understanding to create new programs&#xA;  or improve existing ones ...&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Thus, as I read it, by programming you are demonstrating your understanding of programming theory. This should in turn help you to create simple, elegant code that is a joy for others to work with.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-07T15:02:01.107" LastActivityDate="2010-12-07T15:02:01.107" CommentCount="7" />
  <row Id="24372" PostTypeId="2" ParentId="24365" CreationDate="2010-12-07T13:25:21.673" Score="2" ViewCount="" Body="&lt;p&gt;Congratulations on completing your software.  Now take that programming hat off and put on your promoter's hat.  You'll need to think using a different part of your brain.  You'll need to share the link to your product everywhere you go online.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll need to get the word out to potential users and expanding your network is a must...  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Start a blog about the app, cover the basics and provide some how-to articles.   &lt;/li&gt;&#xA;&lt;li&gt;Contact other bloggers in the domain the app services and ask them to take a look at it. Perhaps they can review it for you.&lt;/li&gt;&#xA;&lt;li&gt;Spread the word on Linked-In and other social sites.&lt;/li&gt;&#xA;&lt;li&gt;Join some online communities that would be serviced by your app.&lt;/li&gt;&#xA;&lt;li&gt;Join some In-person business organizations.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The bottom line is you need to talk to people everyday about your app and have them talk to people as well.  Once you get some momentum started you'll be able to focus more on method of communication that appears to work the best for your situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best of luck.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-07T13:25:21.673" />
  <row Id="24373" PostTypeId="2" ParentId="13623" CreationDate="2010-12-07T13:33:19.433" Score="1" ViewCount="" Body="&lt;p&gt;I say developers need the best development system available - but that doesn't necessarily mean the fastest. It may well mean a modern but relatively slow system with all-passive cooling, to keep noise to a minimum, for example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing - a development system should be reasonably new, and should &lt;em&gt;absolutely&lt;/em&gt; have multiple cores.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An old PC may sound attractive in a show-performance-issues-early kind of way, but a Pentium 4, for example, may actually be faster (per core) than some current chips. What that means is that by limiting a developer to using a P4 system (actually what I'm using now - though that's my personal budgeting issue)...&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You encourage the development of non-concurrent software that will not benefit from the current mainstream multi-core systems.&lt;/li&gt;&#xA;&lt;li&gt;Even if multi-thread software is developed, bugs may not be noticed (or at least not noticed early) because concurrency-related issues may not show up in testing on a single-core system.&lt;/li&gt;&#xA;&lt;li&gt;Multi-threaded software can cause serious performance issues that may get much worse with multi-core processors. One would be causing disk head thrashing (which can result in many thousands of times slower access to data) where individual threads are doing sequential access, but each to a different part of the disk. This can even go away on older slower PCs, by e.g. having two old 160GB drives instead of one 1TB drive, those threads may no longer be fighting each other for access to the same disk.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;There are also issues with PCs that are too limited to support virtual machines well - e.g. for testing in multiple platforms.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2010-12-07T13:33:19.433" CommunityOwnedDate="2010-12-07T13:33:19.433" />
  <row Id="24374" PostTypeId="2" ParentId="24343" CreationDate="2010-12-07T13:35:21.177" Score="7" ViewCount="" Body="&lt;p&gt;This is &lt;strong&gt;a bit&lt;/strong&gt; of a difficult question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All aspects of Computer science are important in one way or another.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;In terms of what you will benefit on a day to day basis, probably a generalised overview of how your code works &quot;under the hood&quot; from code to CPU.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Understanding Big O Notation is important, and also understanding how your code may be executed is also very important in real world situations.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-07T13:35:21.177" CommentCount="1" />
  <row Id="24375" PostTypeId="2" ParentId="24326" CreationDate="2010-12-07T13:38:01.423" Score="1" ViewCount="" Body="&lt;p&gt;I work in a small shop (4 windows devs) and we all have multiple projects on our plates.  I try to focus on one project at a time, but priorities tend to shift like sand, flipping between projects during the day is an absolute productivity killer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are about a bazillion articles on &lt;a href=&quot;http://www.google.com/search?q=productivity+and+multitasking&quot; rel=&quot;nofollow&quot;&gt;google&lt;/a&gt; about how multi-tasking hurts productivity.  I wouldn't recommend working on more than one project in a day if I could help it.  I'm not sure how context switching affects productivity on a longer time scale, but I'm sure it's not beneficial.  Even skipping work on a project for one day I think there would be productivity lost getting stuff back into short term memory.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-07T13:38:01.423" />
  <row Id="24376" PostTypeId="2" ParentId="24361" CreationDate="2010-12-07T13:38:12.877" Score="1" ViewCount="" Body="&lt;p&gt;Do you really have a need for integrating different systems ? In our team, each project lives in its own repository, and their histories are thus independant. We have no problem here to work with some projects under subversion and some other under mercurial, even if there are dependencies between them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you choose to migrate from one VCS to another, look at the conversion tools available. There is, from my experience, no technical reason to drop the projects' histories.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Edit&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I think I understood something, which was implicit in the question and in other answers. It's the fact that VCS are also used to manage dependencies. I know it's quite common to use VCS features like &lt;code&gt;svn:externals&lt;/code&gt; to integrate one repo (the dependency) with another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the (technical) reason our team doesn't feel the need to bridge (or integrate) our 2 different systems is that we have a separate tool to manage dependencies. Our repo don't know each other.&lt;/p&gt;&#xA;" OwnerUserId="3527" LastEditorUserId="3527" LastEditorDisplayName="" LastEditDate="2010-12-08T10:15:28.380" LastActivityDate="2010-12-08T10:15:28.380" CommentCount="2" />
  <row Id="24377" PostTypeId="2" ParentId="24343" CreationDate="2010-12-07T13:44:01.953" Score="3" ViewCount="" Body="&lt;p&gt;Competitive use cases of data structures. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are situations where a map with red-black trees is required to guarantee performance and others where you cannot use an array, again to guarantee performance. Knowing when to choose what data structure is an invaluable skill.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-07T13:44:01.953" />
  <row Id="24378" PostTypeId="1" AcceptedAnswerId="24493" CreationDate="2010-12-07T13:44:51.327" Score="6" ViewCount="556" Body="&lt;p&gt;PHP, as most of us know, has &lt;a href=&quot;http://en.wikipedia.org/wiki/Weak_typing&quot; rel=&quot;nofollow&quot;&gt;weak typing&lt;/a&gt;.  For those who don't, PHP.net says: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;PHP does not require (or support) explicit type definition in variable declaration; a variable's type is determined by the context in which the variable is used.  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Love it or hate it, PHP re-casts variables on-the-fly.  So, the following code is valid:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$var = &quot;10&quot;;&#xA;$value = 10 + $var;&#xA;var_dump($value); // int(20)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;PHP also alows you to explicitly cast a variable, like so:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$var = &quot;10&quot;;&#xA;$value = 10 + $var;&#xA;$value = (string)$value;&#xA;var_dump($value); // string(2) &quot;20&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That's all cool...  but, for the life of me, I cannot conceive of a practical reason for doing this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't have a problem with strong typing in languages that support it, like Java.  That's fine, and I completely understand it.  Also, I'm aware of&amp;mdash;and fully understand the usefulness of&amp;mdash;&lt;a href=&quot;http://php.net/manual/en/language.oop5.typehinting.php&quot; rel=&quot;nofollow&quot;&gt;type hinting&lt;/a&gt; in function parameters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem I have with type casting is explained by the above quote.  If PHP can swap types &lt;em&gt;at-will&lt;/em&gt;, it can do so even after you &lt;em&gt;force cast&lt;/em&gt; a type; and it can do so &lt;em&gt;on-the-fly&lt;/em&gt; when you need a certain type in an operation.  That makes the following valid:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$var = &quot;10&quot;;&#xA;$value = (int)$var;&#xA;$value = $value . ' TaDa!';&#xA;var_dump($value); // string(8) &quot;10 TaDa!&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So what's the point?  Can anyone show me a practical application or example of type casting&amp;mdash;&lt;strong&gt;one that would fail if type casting were not involved?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I ask this here instead of SO because I figure &lt;strong&gt;practicality&lt;/strong&gt; is too subjective.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Edit in response to Chris' comment&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Take this theoretical example of a world where user-defined type casting &lt;em&gt;makes sense in PHP&lt;/em&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You force cast variable &lt;code&gt;$foo&lt;/code&gt; as &lt;code&gt;int&lt;/code&gt; --&gt; &lt;code&gt;(int)$foo&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;You attempt to store a string value in the variable &lt;code&gt;$foo&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;PHP throws an exception!! &amp;lt;--- That would make sense.  Suddenly the reason for user defined type casting exists!&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The fact that PHP will switch things around as needed makes the point of user defined type casting vague.  For example, the following two code samples are equivalent:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// example 1&#xA;$foo = 0;&#xA;$foo = (string)$foo;&#xA;$foo = '# of Reasons for the programmer to type cast $foo as a string: ' . $foo;&#xA;&#xA;// example 2&#xA;$foo = 0;&#xA;$foo = (int)$foo;&#xA;$foo = '# of Reasons for the programmer to type cast $foo as a string: ' . $foo;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;h3&gt;UPDATE&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Guess who found himself using typecasting in a practical environment?  Yours Truly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The requirement was to display money values on a website for a restaurant menu.  The design of the site required that trailing zeros be trimmed, so that the display looked something like the following:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Menu Item 1 .............. $ 4&#xA;Menu Item 2 .............. $ 7.5&#xA;Menu Item 3 .............. $ 3&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The best way I found to do that wast to cast the variable as a float:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$price = '7.50'; // a string from the database layer.&#xA;echo 'Menu Item 2 .............. $ ' . (float)$price;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;PHP trims the float's trailing zeros, and then recasts the float as a string for concatenation.&lt;/p&gt;&#xA;" OwnerUserId="5497" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-01-28T00:11:26.947" LastActivityDate="2011-01-28T00:11:26.947" Title="Type Casting variables in PHP: Is there a practical example?" Tags="&lt;php&gt;&lt;type-system&gt;&lt;weak-typing&gt;&lt;type-casting&gt;" AnswerCount="5" CommentCount="6" FavoriteCount="1" />
  <row Id="24379" PostTypeId="2" ParentId="24342" CreationDate="2010-12-07T13:51:42.507" Score="3" ViewCount="" Body="&lt;p&gt;Good question, and I have to admit this is something that haunts me too. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When is this fine? Do a performance analysis of your code -- if you see that you are in O(log n) or O(n) or O(n log n) and as such the problem is mappable to known data structures you are generally okay. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When is this not fine? Your time or space complexity is O(n ^ 2) or worse, or the problem by definition is NP complete. In these situations you need to apply a fair bit of heuristics, apply knowledge from other domains etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quick example: In chip design, choosing how to arrange the gates in the circuit for minimal power is NP-complete. Just graphs alone won't do you much good although it's a must need. You need to read additional material, a lot of it inter-disciplinary at times and apply the knowledge in your domain. For e.g. genetic algorithms (algorithms that mimic genetic crossovers and mutation, as defined in biology 101) have a lot of application in designing hardware chips.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-07T13:51:42.507" />
  <row Id="24380" PostTypeId="2" ParentId="24342" CreationDate="2010-12-07T13:54:54.487" Score="3" ViewCount="" Body="&lt;p&gt;If you keep repeating yourself, why not create a reusable component?&lt;/p&gt;&#xA;" OwnerUserId="4852" LastActivityDate="2010-12-07T13:54:54.487" CommentCount="1" />
  <row Id="24381" PostTypeId="2" ParentId="24342" CreationDate="2010-12-07T14:10:40.103" Score="2" ViewCount="" Body="&lt;p&gt;Not necessarily, if it's a good way of solving them :) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually when working on a &quot;solution&quot;, I go for these things in order:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;simplicity,&lt;/li&gt;&#xA;&lt;li&gt;reusability,&lt;/li&gt;&#xA;&lt;li&gt;and only last performance.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Not that performance doesn't matter: I design with performance in mind, but without pushing it too far (so if I need to do to calls to a utility method like StringUtils.isEmpty or something like that in the same flow, I won't mind). If performance is then &lt;strong&gt;needed&lt;/strong&gt; (business case or user experience issue), then I go for a different approach than the simple and reusable one. Being pragmatic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Strangely though, when coding in C, I care a lot more about performance than when coding in Java... Force of habit :))&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-12-07T14:10:40.103" />
  <row Id="24382" PostTypeId="2" ParentId="23691" CreationDate="2010-12-07T14:16:41.263" Score="2" ViewCount="" Body="&lt;p&gt;For some of us, being part of a team beats being a lone ranger.&lt;/p&gt;&#xA;" OwnerUserId="8717" LastActivityDate="2010-12-07T14:16:41.263" CommunityOwnedDate="2011-01-13T23:31:13.497" />
  <row Id="24383" PostTypeId="2" ParentId="24365" CreationDate="2010-12-07T14:18:03.327" Score="1" ViewCount="" Body="&lt;p&gt;i would:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;get an education on marketing - start with &lt;a href=&quot;http://ittybiz.com&quot; rel=&quot;nofollow&quot;&gt;ittybiz.com&lt;/a&gt; and &lt;a href=&quot;http://sethgodin.com&quot; rel=&quot;nofollow&quot;&gt;sethgodin.com&lt;/a&gt; for example&lt;/li&gt;&#xA;&lt;li&gt;identify your target market and ideal customer&lt;/li&gt;&#xA;&lt;li&gt;formulate a strategy to reach them&lt;/li&gt;&#xA;&lt;li&gt;outline tactics to build relationships, educate, and close the sales once contact has been made&lt;/li&gt;&#xA;&lt;li&gt;figure out your budget&lt;/li&gt;&#xA;&lt;li&gt;make a plan&lt;/li&gt;&#xA;&lt;li&gt;execute the plan&lt;/li&gt;&#xA;&lt;li&gt;monitor the results (including testing alternate tactics, presentations, et al)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and most importantly:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;not ask programmers marketing quetions ;-)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-07T14:18:03.327" />
  <row Id="24384" PostTypeId="2" ParentId="24343" CreationDate="2010-12-07T14:19:08.723" Score="3" ViewCount="" Body="&lt;p&gt;there are only three numbers that matter:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;zero&lt;/li&gt;&#xA;&lt;li&gt;one&lt;/li&gt;&#xA;&lt;li&gt;many&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-07T14:19:08.723" CommentCount="7" />
  <row Id="24385" PostTypeId="2" ParentId="24378" CreationDate="2010-12-07T14:23:27.080" Score="2" ViewCount="" Body="&lt;p&gt;You're mixing the weak/strong and dynamic/static type concepts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP is weak and dynamic, but your problem is with the dynamic type concept.  That means, variables don't have a type, values do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A 'type casting' is an expression that produces a new value of a different type of the original; it doesn't do anything to the variable (if one is involved).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The one situation where I regularly type cast values is on numeric SQL parameters.  You're supposed to sanitize/escape any input value you insert into SQL statements, or (much better) use parameterized queries.  But, if you want some value that MUST be an integer, it's much easier to just cast it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function get_by_id ($id) {&#xA;   $id = (int)$id;&#xA;   $q = &quot;SELECT * FROM table WHERE id=$id LIMIT 1&quot;;&#xA;   ........&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;if I left out the first line, &lt;code&gt;$id&lt;/code&gt; would be an easy vector for SQL injection.  The cast makes sure that it's a harmless integer; any attempt to insert some SQL would simply result in a query for &lt;code&gt;id=0&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="6870" LastEditorUserId="6870" LastEditorDisplayName="" LastEditDate="2010-12-07T19:56:20.853" LastActivityDate="2010-12-07T19:56:20.853" CommentCount="7" />
  <row Id="24386" PostTypeId="2" ParentId="24342" CreationDate="2010-12-07T14:30:25.687" Score="1" ViewCount="" Body="&lt;p&gt;If it works, it's OK.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you worry about overrelying on one single technique, try as an exercise to come up with variations of some solved problem that would make your solution unworkable.  Extra points if you can generalize the changes to define the applicability space of your usual process.&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-12-07T14:30:25.687" />
  <row Id="24387" PostTypeId="2" ParentId="22146" CreationDate="2010-12-07T14:30:37.100" Score="2" ViewCount="" Body="&lt;p&gt;I wont't cite ones that have already been by other, so I'll add this one:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://books.google.com/books?id=_bmyEnUnfTsC&quot; rel=&quot;nofollow&quot;&gt;Concepts Techniques and Models of Computer Programming&lt;/a&gt;, by peter Van Roy and Seif Haridi&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://books.google.com/books?id=_bmyEnUnfTsC&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://i.imgur.com/dAYJg.jpg&quot; alt=&quot;Concepts Techniques and Models of Computer Programming&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The obvious problem is that it used the now (sort-of) defunct &lt;a href=&quot;http://www.mozart-oz.org/&quot; rel=&quot;nofollow&quot;&gt;Mozart Programming System&lt;/a&gt; and the amazing &lt;a href=&quot;http://en.wikipedia.org/wiki/Oz_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Oz programming language&lt;/a&gt;. Which then spawned other interesting experiments like the &lt;a href=&quot;http://www.ps.uni-saarland.de/alice/&quot; rel=&quot;nofollow&quot;&gt;Alice ML programming language&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is, however, an amazing book, both to learn computer programming and to get a deep understanding of CS concepts and a good overview of architecture concepts without using buzzwords.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A bit verbose at times, but very well written.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Maybe more of a CS theory book in the end than an enterprise architecture book, but I find its teachings very valuable to apply to industry software.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-12-07T14:44:41.170" LastActivityDate="2010-12-07T14:44:41.170" CommunityOwnedDate="2011-01-22T00:43:07.640" />
  <row Id="24389" PostTypeId="2" ParentId="22146" CreationDate="2010-12-07T14:32:43.987" Score="2" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/MHoIG.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is my number #1 choice right now. Best book about how to build (grow) application now.&lt;/p&gt;&#xA;" OwnerUserId="9115" LastActivityDate="2010-12-07T14:32:43.987" CommunityOwnedDate="2011-01-22T00:43:07.640" />
  <row Id="24390" PostTypeId="2" ParentId="22146" CreationDate="2010-12-07T14:33:52.190" Score="4" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/FKiV7.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;this would be my #2 choice. Good book on practices and good code. A bit pedantic sometimes.&lt;/p&gt;&#xA;" OwnerUserId="9115" LastActivityDate="2010-12-07T14:33:52.190" CommunityOwnedDate="2011-01-22T00:43:07.640" CommentCount="2" />
  <row Id="24393" PostTypeId="2" ParentId="24378" CreationDate="2010-12-07T14:45:21.680" Score="1" ViewCount="" Body="&lt;p&gt;One example is objects with a __toString method:&#xA;&lt;code&gt;$str = $obj-&amp;gt;__toString();&lt;/code&gt; vs&#xA;&lt;code&gt;$str = (string) $obj;&lt;/code&gt;. There is much less typing in the second, and the extra stuff is punctuation, which takes longer to type. I also think it's more readable, although others may disagree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another is making a single-element array:&#xA;&lt;code&gt;array($item);&lt;/code&gt; vs &lt;code&gt;(array) $item;&lt;/code&gt;. This will put any scalar type (integer, resource, etc.) inside an array.&lt;br&gt;&#xA;Altenatively, if &lt;code&gt;$item&lt;/code&gt; is an object, its  properties will become keys to their values. However, I do think that object-&gt;array conversion is a bit strange: private and protected properties are part of the array, and renamed. To quote the &lt;a href=&quot;http://php.net/manual/en/language.types.type-juggling.php&quot; rel=&quot;nofollow&quot;&gt;PHP documentation&lt;/a&gt;: private variables have the class name prepended to the variable name; protected variables have a '*' prepended to the variable name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another use is converting GET/POST data into appropriate types for a database. MySQL can handle this itself but I think the more ANSI-compliant servers might reject the data. The reason I only mention databases is that in most other cases, the data will have an operation performed on it according to its type at some point (i.e. int/floats will usually have calculations performed on them, etc.).&lt;/p&gt;&#xA;" OwnerUserId="912" LastActivityDate="2010-12-07T14:45:21.680" CommentCount="3" />
  <row Id="24396" PostTypeId="2" ParentId="19589" CreationDate="2010-12-07T14:54:42.577" Score="1" ViewCount="" Body="&lt;p&gt;I took the interpretation that it is a tool and did not worry about it further. Of course this only lasted a little while as Cobertura takes issue with how spring proxies and we had to switch to EMMA. If you are worried, you too can use EMMA. It is not actively developed and isn't as full featured but it is quicker and has a very open license.&lt;/p&gt;&#xA;" OwnerUserId="9274" LastActivityDate="2010-12-07T14:54:42.577" CommentCount="2" />
  <row Id="24398" PostTypeId="1" AcceptedAnswerId="24427" CreationDate="2010-12-07T14:55:28.147" Score="32" ViewCount="1584" Body="&lt;p&gt;I'm a year away from graduating from university, and I'm really looking forward to solving practical problems. Especially non-trivial ones which require a bit of research and a lot of thinking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But at the same time, that is also my greatest fear - being faced with a problem that I'm unable to solve, no matter how hard I try. And with pressure to deliver code on impending deadlines just around the corner, it does look a bit scary when viewing it from the safe playgrounds on uni (where the worst thing that can happen is that you have to redo a course or exam).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for those who have been in industry for any longer length of time, what would happen if you were told to solve a problem that you couldn't? Has it happened, and if so, what did happen? Did they just drop it and said &quot;Oh well, guess we can make do with something else&quot;? Were there consequences? Were you reprimanded, or even fired?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2011-04-09T16:55:22.410" CommunityOwnedDate="2011-04-09T16:55:22.410" Title="What happens if you're unable to solve a problem?" Tags="&lt;productivity&gt;&lt;work&gt;&lt;industry&gt;" AnswerCount="25" CommentCount="4" FavoriteCount="11" />
  <row Id="24399" PostTypeId="2" ParentId="24343" CreationDate="2010-12-07T14:58:13.713" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Systems_Development_Life_Cycle&quot; rel=&quot;nofollow&quot;&gt;Software Development Life Cycle&lt;/a&gt; is something I'd suggest knowing if you don't already.  Granted this was introduced in a second year Computer Science course and is something used repeatedly within software projects.  This can be useful to get a general idea of how does a project go from start to finish, though if you want to more in-depth there are methodologies like Waterfall or Agile that you could study to get more specific knowledge.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-07T14:58:13.713" CommentCount="2" />
  <row Id="24400" PostTypeId="2" ParentId="24398" CreationDate="2010-12-07T14:58:34.660" Score="8" ViewCount="" Body="&lt;p&gt;I'm going to have to go with a simple answer: I ask for help.  Just like others sometimes ask me for help when they're stuck trying to find a solution for something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: I should mention that I often find the solution just by describing the problem to a co-worker, or sometimes even when I start posting a question on sites like StackOverflow.&lt;/p&gt;&#xA;" OwnerUserId="3842" LastEditorUserId="3842" LastEditorDisplayName="" LastEditDate="2010-12-07T15:20:38.440" LastActivityDate="2010-12-07T15:20:38.440" CommunityOwnedDate="2011-04-09T16:55:22.410" CommentCount="1" />
  <row Id="24401" PostTypeId="2" ParentId="24398" CreationDate="2010-12-07T14:59:28.637" Score="52" ViewCount="" Body="&lt;p&gt;Two things to remember if you're stuck with a seemingly unsolvable problem:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Let other folks know you're stuck as soon as possible. It will help them to adjust the estimate in time before it's too late.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you see one way of solving a problem doesn't work - drop it before you've wasted too much time. Ask for help or try out a different approach. It's not about proving yourself hard and smart, it's about getting things done.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-07T14:59:28.637" CommunityOwnedDate="2011-04-09T16:55:22.410" CommentCount="6" />
  <row Id="24402" PostTypeId="2" ParentId="24270" CreationDate="2010-12-07T14:59:43.870" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;get a CS degree, there's more to CS than just programming&lt;/li&gt;&#xA;&lt;li&gt;investigate CLEP tests to get rid of general-education requiements&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-07T14:59:43.870" CommentCount="3" />
  <row Id="24403" PostTypeId="2" ParentId="24398" CreationDate="2010-12-07T15:00:48.327" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Look at from different angles&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've come across this many a times, usually what happens is:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;You have a problem, initially you have an idea in your head how you would solve it.&lt;/li&gt;&#xA;  &lt;li&gt;When it comes to actually implementing your solution, it turns out that is doesn't work (probably due to the weak model of the actual problem).&lt;/li&gt;&#xA;  &lt;li&gt;After struggling to solve the problem, be it more research or asking others. None of it works, the pure frustration!&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Finally you opt for what you didn't want to do -&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&quot;The Dirty Hack&quot;&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;It works, but you feel dirty...&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-07T15:00:48.327" CommunityOwnedDate="2011-04-09T16:55:22.410" CommentCount="1" />
  <row Id="24404" PostTypeId="2" ParentId="24398" CreationDate="2010-12-07T15:02:25.843" Score="21" ViewCount="" Body="&lt;p&gt;I go to &lt;a href=&quot;http://stackoverflow.com/&quot;&gt;StackOverflow&lt;/a&gt; ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But all joking aside, do not fear the unknown. Your whole career will be facing the unknown, because if you already solved it, it won't be a problem the next time.&lt;/p&gt;&#xA;" OwnerUserId="3814" LastActivityDate="2010-12-07T15:02:25.843" CommunityOwnedDate="2011-04-09T16:55:22.410" CommentCount="2" />
  <row Id="24405" PostTypeId="2" ParentId="24398" CreationDate="2010-12-07T15:02:54.517" Score="0" ViewCount="" Body="&lt;p&gt;I haven't heard of anything happening like this. First of all you are never given a problem which can not be solved at all. The problem may be hard and may take time to solve. When given a problem, you will have to tell this is the time I will require. If in your research you think that this problem really can not be solved, you have to raise a flag and tell your manager that this problem will take some more time, or is really difficult to solve. It's all about the schedule. If you promise something and will not be able to deliver then it's problem. But if you keep telling your status and concerns, it is the responsibility of manager to take care of it. He should redirect you to proper person who can help, or adjust the schedule.  &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-07T15:02:54.517" CommunityOwnedDate="2011-04-09T16:55:22.410" CommentCount="3" />
  <row Id="24406" PostTypeId="2" ParentId="24326" CreationDate="2010-12-07T15:06:47.090" Score="1" ViewCount="" Body="&lt;p&gt;Working on multiple projects at the same time is fun because there's a variety of problems to solve, you can switch it up if you need to let your mind mull something over, it lets you practice time and project management, and it can force you to create better documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it can also be tedious. You end up needing to split your time between different mindsets continually, which means that you are constantly trying and failing, or trying and barely succeeding, to get into that magical zen-like coding groove.&lt;/p&gt;&#xA;" OwnerUserId="9092" LastActivityDate="2010-12-07T15:06:47.090" />
  <row Id="24407" PostTypeId="2" ParentId="24398" CreationDate="2010-12-07T15:21:34.647" Score="1" ViewCount="" Body="&lt;p&gt;I'm not sure I'd say that I couldn't solve a problem, but there have been cases where I did give up on trying to solve a problem.  After pouring many hours into trying to fix a bug or implement some feature that I don't have an idea of how to do it, I may tell someone on my team, team leader or manager, &quot;I'm stuck on this.  What do you want me to do?&quot; so that they know where I am.  They could say, &quot;Keep at it, we think you'll get it,&quot; or &quot;Move on to something else that isn't that important,&quot; or a few other things and then I'll know what I should be doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had bugs that I didn't resolve and some features that didn't get done, sure.  While I can try to get something done, not everything is within my power to solve in a reasonable time.  A key point in this is to have communication so that your superiors know where you are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I did have a couple of times where I ran into some rather special circumstances:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;While working at a large Canadian bank in Toronto, I would be asked to do all kinds of stuff that I didn't know how to do when I was given the task.  For example, I was asked to test out this method for securing laptops where the &quot;Esc&quot; and &quot;Enter&quot; keys were swapped on boot-up and with the right key sequence the laptop would be usable again that just seemed bizarre to try to figure out, &quot;Would this work?  How do I know this would or wouldn't be OK with the users?&quot;  There were other tasks that I either just didn't have the hardware or other resources to get it done.  At the same time it was rather educational as this gave me many things to note on any future employment situation to prevent trouble.  Things like ensuring when I'm paid, how is my time tracked, and other communication issues were illustrated with great detail to me here that I haven't really forgotten.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;While working at an Application Service Provider in Calgary, I was given this project of trying to create a copy of another website within our internal application that we sold as a service.  A key point here is that I wasn't given a time line or suggestions on what part to do first, just general research and a month later I was asked for a demo just as I was having a bad reaction to some pain medication.  That reaction lasted a week that I took off of work suddenly and then the following week, I went to a Microsoft event that was kind of the last straw as I was fired the next day.  Something to note here is how I had a rather poor relationship with my boss as anytime he'd come near my area my immediate thought was, &quot;Now what's wrong?&quot; which tended to not be a rather healthy thing to have as a reaction to someone many times over.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-07T15:21:34.647" CommunityOwnedDate="2011-04-09T16:55:22.410" />
  <row Id="24408" PostTypeId="2" ParentId="24366" CreationDate="2010-12-07T15:21:46.037" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Don't learn to &lt;em&gt;use&lt;/em&gt; a framework, learn how to &lt;em&gt;write one&lt;/em&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read the user documentation and tutorials to get the basic feel, but most of all, read the source code. Figure out how and why they do what they do: how they abstract configuration and routing, how display is separated from data handling, how they handle plugins and extensions, how they handle sessions, sanitize user input, etc. If you do this for a few solid frameworks, you'll see a nice set of common concepts and also some differing opinions on how to do things. And with some of the best frameworks, you'll learn excellent OO architecture, and how it can be used in PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you're ready to start a big project, you'll probably still use a framework, of course, but you'll be much better prepared to choose and use the right framework.&lt;/p&gt;&#xA;" OwnerUserId="4926" LastActivityDate="2010-12-07T15:21:46.037" CommentCount="2" />
  <row Id="24409" PostTypeId="2" ParentId="610" CreationDate="2010-12-07T15:25:28.097" Score="1" ViewCount="" Body="&lt;h2&gt;Javascript&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I love the fact that objects are essentially dictionaries so that &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;someObject.property&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;is syntactic sugar for&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;someObject['property']&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="9092" LastActivityDate="2010-12-07T15:25:28.097" CommunityOwnedDate="2010-12-07T15:25:28.097" CommentCount="3" />
  <row Id="24410" PostTypeId="2" ParentId="24326" CreationDate="2010-12-07T15:25:35.297" Score="1" ViewCount="" Body="&lt;p&gt;A handful of years ago now, I remember being on 2 projects at once.  I had a total of 3 managers at the time as each project has its own project manager and I had an administrative manager.  My time was to be split 50/50 between the projects and so I'd often spend the first half of a day on one project and then switch to the other one on the other half a day.  One of the projects was a service pack fixing a bunch of bugs to some websites the company had re-released while the other project was transitioning some other sites into the company's order processing system.  Both were fun and took a few months in the end so it wasn't that long in a sense.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-07T15:25:35.297" />
  <row Id="24411" PostTypeId="2" ParentId="24270" CreationDate="2010-12-07T15:26:56.810" Score="2" ViewCount="" Body="&lt;p&gt;When as a young programmer interviewing the college kids wanting to work at my company I heard a prospective hire tell me about the &quot;waste of time&quot; their classes were because they were oh-so-smart, I almost always tended to vote no-hire.  It doesn't matter how smart you are.  If you are unwilling to learn from professors and your peers, you are going to be a bad team member in my organization.  The first thing you want to do, despite the praise from your adult peers, is wipe any trace of an &quot;I'm better than you&quot; attitude right out of your brain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, if you have never been in a situation where you've felt that you were only among the middle of your peers, you should absolutely be choosing to find that experience right now.  Some people are blessed enough to get it in high school, some wait until college, and a very few need to pit themselves up against the best and the brightest in the world to realize that there's always going to be someone who knows more than you in at least some area and that everyone has something to teach you.  Sounds like you haven't gotten this experience in high school, but there is likely a college out there where you will have it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When choosing a university to study computer science, you can easily choose one that will challenge you.  Find a CS department that emphasizes lasting theory over fleeting current languages.  When you leave that department you should know the things about CS that haven't changed in 30+ years cold.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On top of your CS degree, I'd suggest finding a place that offers you broad experiences in the liberal arts.  You may know how to program, but have you ever experience the connections between computer ethics and literature?  Between economics and philosophy?  Between math and history?  Finding these connections as you explore a variety of disciplines provides not only a new level of interest you can't get in high school but also expands the physical connections in your brain and makes you a more intelligent, interesting person.  This will positively impact your career no matter what you choose.&lt;/p&gt;&#xA;" OwnerUserId="7506" LastActivityDate="2010-12-07T15:26:56.810" CommentCount="1" />
  <row Id="24412" PostTypeId="1" CreationDate="2010-12-07T15:30:15.090" Score="24" ViewCount="837" Body="&lt;p&gt;I know that many of us maintain our own little personal library with tools and utilities that we use often.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had mine since I was 16 years old so it has grown to quite a considerable size. Some of the stuff I've written has since been added to the framework. I wrote my own little implementation of expression trees for use with genetic algorithms long before LINQ, which I quite like and was proud of at the time - of course its pretty useless now. But recently I have been going through it and upgrading to .NET 4.0 and re-kindled an interest. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I'm curious as to what you use your library for. Maybe we could get some cool ideas going for useful little snippets and share them amongst ourselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my questions are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you have a miscellaneous utility library?&lt;/li&gt;&#xA;&lt;li&gt;Which part are you most proud of and why?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Give an example of code if you like &lt;code&gt;:-)&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-12-09T07:58:17.930" Title="Do you have your own 'misc utils' library? What part are you most proud of?" Tags="&lt;libraries&gt;&lt;personal-projects&gt;&lt;code-reuse&gt;" AnswerCount="17" CommentCount="7" FavoriteCount="15" />
  <row Id="24413" PostTypeId="2" ParentId="24270" CreationDate="2010-12-07T15:50:27.273" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Doesn't this depend a bit on where you to study CS?  I'd imagine some schools may have more interesting stuff than others and there is also the question of what research within CS is there that may appeal to you.  If you have an interest in Computer Science then I'd say go study it but remember there may be requirements to take X % of courses outside your major so that your education is well-rounded.  Another thought here is do you want to work in academia or not as something to examine and consider.  It is a waste if you think you are above it and not realize what the experiences of university could give you along with the connections.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Depending on the school, there are ways to get around some requirements at times.  Granted I was in university 13 years ago in Waterloo, Ontario, Canada but I did have a choice of which Computer Science course to use as a starting point and some other first year Science courses had an option where at the end of the first week one could write the final exam to see if they already knew most of the material I believe.  However, sometimes taking something again can be useful to see if you really know it and can explain it to someone else that doesn't know it at all.  For example, how easily could you explain the call stack or heaps used in modern software?  How about something like P=NP?  Do you know a lot of theoretical Computer Science?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-07T15:50:27.273" />
  <row Id="24414" PostTypeId="1" CreationDate="2010-12-07T15:50:30.557" Score="2" ViewCount="148" Body="&lt;p&gt;I use mainly PHP for web development, but recently, I started thinking about using Google App Engine. It doesn't use PHP which I am already familiar with, so there will be a steeper learning curve. Probably using Python/Django. But I think it maybe worthwhile. Some advantages I see:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Focus on App/Development. No need to setup/maintain server ... no more server configs&lt;/li&gt;&#xA;&lt;li&gt;Scales automatically&lt;/li&gt;&#xA;&lt;li&gt;Pay for what you use. Free for low usage&lt;/li&gt;&#xA;&lt;li&gt;Reliable, it's Google after all&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some concerns though:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Does database with no joins pose a problem for those who used App Engine before?&lt;/li&gt;&#xA;&lt;li&gt;Do I have to upload to Google just to test? Will it be slow compared to testing locally?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What are your thoughts and opinions? Why would you use or not use App Engine?&lt;/p&gt;&#xA;" OwnerUserId="526" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2011-01-14T16:20:00.477" LastActivityDate="2011-01-14T16:20:00.477" Title="Thoughts of Cloud Development/Google App Engine" Tags="&lt;web-development&gt;&lt;google-app-engine&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="24415" PostTypeId="2" ParentId="24270" CreationDate="2010-12-07T15:52:10.563" Score="0" ViewCount="" Body="&lt;p&gt;I suggest you find a challenging program in an accredited university and apply yourself. Serious students put more pressure on themselves inside and outside of the classroom. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Getting a degree from &quot;Sluggo's Technical School&quot; isn't going to get you very far.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-07T15:52:10.563" />
  <row Id="24416" PostTypeId="1" AcceptedAnswerId="24418" CreationDate="2010-12-07T15:53:06.380" Score="2" ViewCount="243" Body="&lt;p&gt;i have a vague recollection that there is a spelling mistake in a protocol design probably HTTP that is quoted very widely but i am not able to recollect it , can you guys help&lt;/p&gt;&#xA;" OwnerUserId="7064" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2010-12-07T16:05:53.860" LastActivityDate="2010-12-07T16:05:53.860" ClosedDate="2010-12-09T13:02:40.733" Title="What is the widely known spelling mistake in the HTTP protocol?" Tags="&lt;mistakes&gt;" AnswerCount="1" />
  <row Id="24417" PostTypeId="2" ParentId="24414" CreationDate="2010-12-07T15:57:07.220" Score="1" ViewCount="" Body="&lt;p&gt;I have thought about using it many times as it is a free, scalable solution up to a point. The problem I have is that, similar to you, I don't use/know the languages that are supported. I use C#/ASP.Net and so it is a problem for me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over the past few days I've thought of learning a JVM based language (Clojure has caught my fancy) and then going from there and using GAE but I have seen many posts on other forums that mention that depending on what you are looking for, a cheap VPS host can be better than GAE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will try to find those links but I believe they are at home, so I will add them when I find them.&lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-12-07T15:57:07.220" />
  <row Id="24418" PostTypeId="2" ParentId="24416" CreationDate="2010-12-07T15:58:04.460" Score="13" ViewCount="" Body="&lt;p&gt;I believe that is &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/HTTP_referer&quot; rel=&quot;nofollow&quot;&gt;HTTP Referer&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-07T15:58:04.460" CommentCount="1" />
  <row Id="24419" PostTypeId="2" ParentId="610" CreationDate="2010-12-07T15:58:53.023" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Scala:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everything is an expression, including &lt;code&gt;if&lt;/code&gt;-&lt;code&gt;else&lt;/code&gt;, &lt;code&gt;for&lt;/code&gt;, &lt;code&gt;try&lt;/code&gt;-&lt;code&gt;catch&lt;/code&gt;, &lt;code&gt;match&lt;/code&gt;-&lt;code&gt;case&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;val status = if(on) 1 else 0&#xA;&#xA;val listDoubled = for(x &amp;lt;- list) yield 2 * x&#xA;&#xA;val str = &quot;124&quot;&#xA;val i = try { str.toInt } catch { case x =&amp;gt; -1 } &#xA;&#xA;val typeOfX: String = x match {&#xA;  case i: Int =&amp;gt; &quot;Integer&quot;&#xA;  case s: String =&amp;gt; &quot;String&quot;&#xA;  case _ =&amp;gt; &quot;Other&quot;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-12-07T15:58:53.023" CommunityOwnedDate="2010-12-07T15:58:53.023" />
  <row Id="24420" PostTypeId="2" ParentId="24342" CreationDate="2010-12-07T16:01:03.113" Score="1" ViewCount="" Body="&lt;p&gt;If you solve problem it's good. &#xA;And it's not matter what way till it not make more problems.&lt;/p&gt;&#xA;" OwnerUserId="8598" LastActivityDate="2010-12-07T16:01:03.113" />
  <row Id="24421" PostTypeId="1" AcceptedAnswerId="24433" CreationDate="2010-12-07T16:01:21.493" Score="11" ViewCount="603" Body="&lt;p&gt;I'm a consultant, and my last two engagements have been at VB.NET shops.  It's become apparent to me that these organizations have a really hard time finding FTE developers.  Have any of you observed that VB.NET developers are getting harder to find?  Any thoughts as to why?&lt;/p&gt;&#xA;" OwnerUserId="3266" LastActivityDate="2010-12-10T14:32:14.283" Title="Is it getting harder to hire VB.NET developers?" Tags="&lt;career&gt;&lt;.net&gt;&lt;holy-war&gt;&lt;hiring&gt;&lt;vb.net&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="1" />
  <row Id="24422" PostTypeId="2" ParentId="24414" CreationDate="2010-12-07T16:04:20.507" Score="2" ViewCount="" Body="&lt;p&gt;Be careful around thinking that it's reliable just because it's from Google. Computer systems do go down and GAE is no exception. One particular case is described &lt;a href=&quot;http://www.carlosble.com/2010/11/goodbye-google-app-engine-gae/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;. The reason I post this article and not any of the other ones on the same subject is that it's describing recent problems, not something from a year or two ago.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Automatic scaling and pay for what you use models can also be problematic if your app gets popular quickly. Admittedly, for many that's not really an issue, but it is something to be aware of. You can't really tell people to not come to your site because you don't have the money to pay the bill that month.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I'd probably stay away from GAE (and cloud services in general) at this point. I haven't found server configuration to be particularly cumbersome in the past (and on a shared hosting account it's not really my problem anyway) and I like staying in control of my data. If I ever hit the point where I need the scaling capabilities of the cloud providers, then I'll look into it again. Till then... cheap common hosting is better.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-07T16:04:20.507" CommentCount="4" />
  <row Id="24423" PostTypeId="2" ParentId="610" CreationDate="2010-12-07T16:11:58.003" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Scala:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pattern matching to extract data out of various structures like lists, tuples, and record types.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;val list = List(56, 1, 89, 32)&#xA;list match {&#xA;  case x1 :: x2 :: xs =&amp;gt; {&#xA;    println(&quot;First: &quot; + x1 + &quot;; Second: &quot; + x2 + &quot;; Rest: &quot; + xs)&#xA;  }&#xA;}&#xA;&#xA;val t = (3, 6, &quot;Hello&quot;)&#xA;t match {&#xA;  case (_, _, c) =&amp;gt; println(&quot;Third element of t is: &quot; + c)&#xA;}&#xA;&#xA;case class Person(&#xA;  firstName: String,&#xA;  lastName: String,&#xA;  age: Int&#xA;)&#xA;val rahul = Person(&quot;Rahul&quot;, &quot;Phulore&quot;, 20)&#xA;rahul match {&#xA;  case Person(_, surname, _) =&amp;gt; println(&quot;My surname is &quot; + surname)&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-12-07T16:11:58.003" CommunityOwnedDate="2010-12-07T16:11:58.003" CommentCount="1" />
  <row Id="24424" PostTypeId="2" ParentId="24378" CreationDate="2010-12-07T16:12:48.277" Score="1" ViewCount="" Body="&lt;p&gt;It can also be used as a quick and dirty method to ensure untrusted data isn't going to break something.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$amount = (float) $_POST['amount'];&#xA;&#xA;if( $amount &amp;gt; 0 ){&#xA;    // Do some maths&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Obviously this is flawed and also handled implicitly by the comparison operator in the if statement, but is helpful in ensuring you know exactly what your code is doing.&lt;/p&gt;&#xA;" OwnerUserId="7092" LastActivityDate="2010-12-07T16:12:48.277" />
  <row Id="24425" PostTypeId="2" ParentId="24412" CreationDate="2010-12-07T16:13:57.250" Score="3" ViewCount="" Body="&lt;p&gt;I had some date manipulations that I performed using Java, then I started using &lt;a href=&quot;http://joda-time.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;JodaTime&lt;/a&gt; as I had heard good things about it and its to be included in Java 7 (not sure if this is still the case, but even if its not it is still well worth using it imho).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It turned a 50+ line class into one line with about three chained method calls.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the curious it involved getting the date for each day of &lt;em&gt;n&lt;/em&gt; weeks past : eg the sales figure for a monday 10 weeks ago etc etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And here is part of it&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public static DateTime getDayPreviousWeek(DateTime dt, DayOfWeek dayOfWeek, int n_weeks) {&#xA;       return dt.minusWeeks(n_weeks).dayOfWeek().setCopy(dayOfWeek.getDayAsString());&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-12-07T16:42:00.210" LastActivityDate="2010-12-07T16:42:00.210" CommentCount="2" />
  <row Id="24426" PostTypeId="1" CreationDate="2010-12-07T16:15:18.357" Score="5" ViewCount="327" Body="&lt;p&gt;I just started learning ASP.NET recently.  However, I found out there are A LOT of php websites/forums out there.  Yesterday, my friend asked me to help him fix a problem on his website forum, but it's in PHP and I've no clue how to help him.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you think we should learn both asp.net and php as a web developer?  I'm just &quot;starting&quot; to learning asp.net now, if I learn PHP at the same time, would it be easily confused?  &lt;/p&gt;&#xA;" OwnerUserId="9250" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-07T16:42:46.980" LastActivityDate="2011-01-31T17:20:30.700" Title="Learning BOTH ASP.NET and PHP?" Tags="&lt;programming-languages&gt;&lt;career&gt;&lt;self-improvement&gt;&lt;education&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="1" />
  <row Id="24427" PostTypeId="2" ParentId="24398" CreationDate="2010-12-07T16:16:34.933" Score="33" ViewCount="" Body="&lt;p&gt;First of all, your fear is very healthy, and normal. Here are my musings after about 15 years in the software industry.&lt;br/&gt;&#xA;Here are some questions to ask yourself:&lt;br/&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Do you &lt;strong&gt;understand&lt;/strong&gt; the problem?&lt;/li&gt;&#xA;&lt;li&gt;Do you know that the problem is unsolvable (within your time/budget constraints)?&lt;/li&gt;&#xA;&lt;li&gt;Do you just not know how to solve the problem?&lt;/li&gt;&#xA;&lt;li&gt;Is your client/boss asking for the impossible.&lt;/li&gt;&#xA;&lt;li&gt;Is it worth it? (ROI)&lt;/li&gt;&#xA;&lt;li&gt;Is it a &lt;strong&gt;REAL&lt;/strong&gt; problem?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;1) First of all, make sure you understand the problem. There are no stupid questions.&#xA;Do you understand what your client/boss is asking you versus what they need?&lt;br/&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) This will happen. &lt;em&gt;&quot;Build me a bridge by tomorrow&quot;&lt;/em&gt;. Make sure that you know for a fact that a problem is unsolvable within your constraints. Your client/boss might be flexible on the time/budget and these can be modified to give you more time/budget.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) If the problem is understandable and the constraints are within reason, and there is technology that can solve the problem, but you just don't know enough...that's what &lt;code&gt;StackOverflow&lt;/code&gt; and the Internet is for. Make sure you do your research first. Try to ask explicit questions that have quantifiable answers. Ask your peers. Have a design session.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) This is a variant of answer number 2. It &lt;strong&gt;seems&lt;/strong&gt; like your client/boss is asking the impossible. Do some research. Never say that the problem is unsolvable, unless you know exactly why and you can clarify.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) &lt;strong&gt;ROI&lt;/strong&gt; stands for Return On Investment. This refers to an investment in time. Your Time!. Is the problem important enough to solve to warrant the amount of time it will take you to research and solve the problem. Discuss this with your client/boss&lt;/p&gt;&#xA;&#xA;&lt;p&gt;6) Is it a real problem. Clients, often times, understand what they want, but don't necessarily understand what they need. Try to understand what your Client/Boss actually needs and discuss this with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope these guidelines help you.&lt;/p&gt;&#xA;" OwnerUserId="7441" LastActivityDate="2010-12-07T16:16:34.933" CommunityOwnedDate="2011-04-09T16:55:22.410" CommentCount="2" />
  <row Id="24428" PostTypeId="2" ParentId="24426" CreationDate="2010-12-07T16:18:44.870" Score="6" ViewCount="" Body="&lt;p&gt;I know both and I don't confuse them at all. They are not very similar. Honestly, just do what you want to do. If you want to learn PHP and ASP.NET, go for it. PHP can be useful when just want to throw something together, and, thanks to various MVC frameworks that are available, it can also be cleanly used in larger projects. It's just another tool in your collection.&lt;/p&gt;&#xA;" OwnerUserId="4881" LastActivityDate="2010-12-07T16:18:44.870" CommentCount="3" />
  <row Id="24429" PostTypeId="2" ParentId="24414" CreationDate="2010-12-07T16:21:47.247" Score="1" ViewCount="" Body="&lt;p&gt;To answer your questions:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) The BigTable database is different from a relational database. You can still have references between objects. Its not just a relational database &quot;without joins&quot; - that would be broken - its a completely different kind of database system. It will have a learning curve and it is optimized for some use cases at the expense of others but I doubt you will find a use case it cannot solve for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) The SDK includes a local execution platform that is identical in interface and behavior. So no, you do not have to publish your app to test it locally.&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-12-07T16:21:47.247" />
  <row Id="24430" PostTypeId="2" ParentId="610" CreationDate="2010-12-07T16:22:26.493" Score="1" ViewCount="" Body="&lt;p&gt;When you need to construct something on the fly, it's hard to beat JavaScript's brevity.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var obj = {name: &quot;Joe&quot;, age: 23};&#xA;var list = [1,2,3,4]; // Of course, functional languages do sequences better...&#xA;var objList = [{name:&quot;Joe&quot;,age:23},{name:&quot;Fred&quot;,age:21}];&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Compared that to C#, which is a bit more verbose:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var obj = new { name = &quot;Joe&quot;, age = 23 };&#xA;var list = new [] { 1, 2, 3, 4 };&#xA;var objList = new [] { new { name = &quot;Joe&quot;, age = 23 }, new { name = &quot;Fred&quot;, age = 21 } };&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6639" LastActivityDate="2010-12-07T16:22:26.493" CommunityOwnedDate="2010-12-07T16:22:26.493" CommentCount="3" />
  <row Id="24431" PostTypeId="2" ParentId="12170" CreationDate="2010-12-07T16:24:39.897" Score="1" ViewCount="" Body="&lt;p&gt;The intent of the ExtJs license is pretty clear: if you want to distribute your software without releasing your own source code, you have to buy a commercial license.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Based on the &quot;Quid Pro Quo&quot; principle,&#xA;  if you wish to derive a commercial&#xA;  advantage by not releasing your&#xA;  application under an open source&#xA;  license, you must purchase an&#xA;  appropriate number of commercial&#xA;  licenses from Sencha. By purchasing&#xA;  commercial licenses, you are no longer&#xA;  obligated to publish your source code.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.sencha.com/products/license.php&quot; rel=&quot;nofollow&quot;&gt;http://www.sencha.com/products/license.php&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that this is about &lt;em&gt;distribution&lt;/em&gt;. If your application is an in-house application, and you are not distributing the application to the outside world, then you &lt;em&gt;don't&lt;/em&gt; need to buy a commercial license.  Notice the words &quot;releasing your application&quot; in the quote above.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With respect to using the ExtJs library for an application in which the pages will be seen by the outside world, I would contact Sencha and ask them if they consider this a form of distribution.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-07T16:30:34.757" LastActivityDate="2010-12-07T16:30:34.757" />
  <row Id="24432" PostTypeId="2" ParentId="24412" CreationDate="2010-12-07T16:30:22.307" Score="-2" ViewCount="" Body="&lt;p&gt;I wrote a small utils package when I was doing Java development in my Comp. Sci class in high school. I'm most proud of my random number generator.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/**&#xA;* Returns a random integer.&#xA;*&#xA;* @returns    int    Random integer&#xA;*/&#xA;public static int getRandom()&#xA;{&#xA;    return 4; // Chosen by a fair dice roll.&#xA;              // Guaranteed to be random.&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;http://xkcd.com/221/&quot; rel=&quot;nofollow&quot;&gt;Props to my inspiration.&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-07T16:30:22.307" CommentCount="11" />
  <row Id="24433" PostTypeId="2" ParentId="24421" CreationDate="2010-12-07T16:35:27.280" Score="28" ViewCount="" Body="&lt;p&gt;Anecdotally, if you look at any of the job boards such as Dice, you will find that the number of job postings for VB developers has remained relatively steady over time, while the number of job postings for C# developers has gradually increased.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;While this does not say anything about availability of programmers, it does suggest a gradual move in the industry from VB to C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/KYnRB.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-07T16:35:27.280" CommentCount="4" />
  <row Id="24434" PostTypeId="2" ParentId="24077" CreationDate="2010-12-07T16:35:57.157" Score="2" ViewCount="" Body="&lt;p&gt;In, and of themselves, short identifiers are not bad.  The purpose of choosing good names (short or long) is in service to code clarity.  &lt;strong&gt;Choosing identifiers in the service of code clarity is more important than meeting some minimum length requirement.&lt;/strong&gt;  In general what this means is writing slightly longer meaningful names.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-07T16:35:57.157" CommunityOwnedDate="2011-01-06T21:58:42.770" CommentCount="1" />
  <row Id="24435" PostTypeId="2" ParentId="24343" CreationDate="2010-12-07T16:36:21.600" Score="1" ViewCount="" Body="&lt;p&gt;I have to disagree with Konrad Rudolph. There is &quot;One bit&quot; of computer science you should know to make you a better &quot;real world programmer.&quot; If you take nothing else away from the answers you're getting here, at least consider this- Satisfying the requirements is NOT the same as satisfying the client! The end users will ALWAYS try to use your program in a way you never thought of or coded for. ALWAYS, ALWAYS, ALWAYS. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, in order to be a better programmer, you must first LISTEN. Listen to the client. Listen to their needs. Listen to their wants. And especially, listen to their level of &quot;techs-pertise.&quot; I can't tell you how many times I've seen a project built that was exactly what was requested, but not at all what the client actually neeeded. All because the programmer gathering the req's wasn't really listening. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something else you can take away is, unless you've got a background in UI design, get someone eles to design the UI. I can ALWAYS spot an app where the UI was designed by the programmer and not an expert. What is logical and makes sense to you will not make sense to the client. And, if your clients aren't tech saavy, (and who's are?) then your &quot;functionaly correct, but esthetically ugly&quot; solution will be met with the warmth of skunk at a dinner party.&lt;/p&gt;&#xA;" OwnerUserId="9284" LastActivityDate="2010-12-07T16:36:21.600" CommentCount="1" />
  <row Id="24436" PostTypeId="2" ParentId="24426" CreationDate="2010-12-07T16:47:46.680" Score="3" ViewCount="" Body="&lt;p&gt;This is really going to boil down to whether or not you are the type of person who can learn multiple things at a time.  If you easily get confused or distracted then it might not be such a great idea.  If the smallest syntax differences are going to send you off to a book or a website to determine which is correct for the language you're currently using, then I would think that you would probably want to learn one at a time.  If, however, your brain can compartmentalize the two then go for it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're not sure, don't be afraid to start to learn both.  If you find that you honestly cannot handle it, then just drop one until a later time.  There's no shame to knowing one language well, before you move on to another.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-07T16:47:46.680" CommentCount="1" />
  <row Id="24437" PostTypeId="2" ParentId="24426" CreationDate="2010-12-07T16:48:07.927" Score="0" ViewCount="" Body="&lt;p&gt;Php is handy, quick to develop in, and easy to learn. It's pretty common as well, so a basic knowledge is useful. I wouldn't throw a huge amount of work into it if you're not planning on using it often, but that goes for any language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for syntax, they're quite different. I don't think you'll have many issues there.&lt;/p&gt;&#xA;" OwnerUserId="9015" LastActivityDate="2010-12-07T16:48:07.927" />
  <row Id="24438" PostTypeId="2" ParentId="7337" CreationDate="2010-12-07T16:48:38.050" Score="0" ViewCount="" Body="&lt;p&gt;SQL Management Studio / Express.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seems to do pretty much what I need programming wise.&#xA;There was a really good plugin that one of my previous employers had a license for which added intellisense to SQL. Cant for the life of me remember what it was called? but was really handy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think it was called something like SQLPrompt.&lt;/p&gt;&#xA;" OwnerUserId="9285" LastActivityDate="2010-12-07T16:48:38.050" CommentCount="1" />
  <row Id="24439" PostTypeId="2" ParentId="24421" CreationDate="2010-12-07T16:49:07.430" Score="8" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;It's become apparent to me that these organizations have a really hard time finding FTE developers.&lt;/em&gt;   &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It is my belief that this is the confluence of 2 trends:  &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;.NET developers are moving towards C#, and away from VB.NET. At my office, and on the interviews I've gone on, the general attitude is that old code in VB will be moved to VB.NET while new development gets done in C#. My PHB wants code in VB.NET because he can almost understand it, while C# is too different. While you can pretty much do anything in VB.NET that you can do in C#, some things are easier in C# (like LINQ).  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Companies are far too picky looking for developers. Far too often, the employer is looking for exact matches on skillsets. Hires are expected to &quot;hit the ground running&quot; with no time to learn, and currently hired employees are not given any sort of training towards the new tasks that they probably could do.   &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If you want, I can expand either of these later when I get home. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-07T17:11:08.950" LastActivityDate="2010-12-07T17:11:08.950" CommentCount="2" />
  <row Id="24440" PostTypeId="2" ParentId="610" CreationDate="2010-12-07T16:52:06.830" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;F# forward pipe operator (&lt;code&gt;|&amp;gt;&lt;/code&gt;)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Makes code very readable than otherwise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// Without |&amp;gt;&#xA;List.filter (fun x -&amp;gt; x &amp;gt; 5) (List.map (fun x -&amp;gt; 2 * x) [1; 4; 5; 9]) &#xA;&#xA;// With |&amp;gt;&#xA;[1; 4; 5; 9] |&amp;gt; List.map (fun x -&amp;gt; 2 * x) |&amp;gt; List.filter (fun x -&amp;gt; x &amp;gt; 5)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;For those who don't know F#, above code is equivalent to following C#:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(new List&amp;lt;int&amp;gt;{1, 4, 5, 9}).Select(x =&amp;gt; 2 * x).Where(x =&amp;gt; x &amp;gt; 5);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1968" LastEditorUserId="1968" LastEditorDisplayName="" LastEditDate="2010-12-07T18:21:31.787" LastActivityDate="2010-12-07T18:21:31.787" CommunityOwnedDate="2010-12-07T16:52:06.830" CommentCount="1" />
  <row Id="24441" PostTypeId="2" ParentId="24190" CreationDate="2010-12-07T16:55:00.337" Score="0" ViewCount="" Body="&lt;p&gt;If it's in the service of Doc generation then verbose comments (although irritating) are probably a good thing.  Although you have to make it a team goal to stay on top of comments and keep them up to date.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's just the commenting style I would have issue with it.  Excessive comments can hurt code just as much as help.  I can't count the number of time I've come across comments in the code that were out of date and as a result misleading.  I usually ignore comments now and focus on reading the code and the tests of the code to understand what it does and what is the intent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would rather have clear concise code rather that is un-commented.  Give me some tests with descriptive assertions or methods and I'm happy and informed.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-07T16:55:00.337" />
  <row Id="24442" PostTypeId="2" ParentId="24426" CreationDate="2010-12-07T17:01:54.747" Score="1" ViewCount="" Body="&lt;p&gt;I don't think anyone &lt;em&gt;should&lt;/em&gt; learn both asp.net and php as a web developer.  However, if you want to learn both, learn both.  If you want to stay sealed off with just one world, that can work too.  I wouldn't say it is ideal, but then the real world often isn't ideal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this is your first programming language, be prepared for growing pains.  JavaScript in addition to a .Net language such as VB.Net or C#.Net may end up being what you'll get to know beyond those basic HTML/CSS/XML stuff that is also out there to know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for worrying about confusion, I'd be more concerned about just understanding that as you learn this will test your patience and tenacity.  If you have both then you'll be fine, otherwise this is an &lt;strong&gt;excellent&lt;/strong&gt; opportunity for growth and self-development.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-07T17:01:54.747" />
  <row Id="24443" PostTypeId="2" ParentId="24421" CreationDate="2010-12-07T17:09:06.043" Score="0" ViewCount="" Body="&lt;p&gt;Supply and demand. If they paid more, more people would invest the time to learn .NET, and they would have an easier time hiring. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that this applies to any language. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update: I have found that sometimes the number of job postings means there's more turnover, or more positions going unfilled because people don't want to do the work for the amount of money given, so the same job gets posted several times a year. Could it be?&lt;/p&gt;&#xA;" OwnerUserId="5983" LastEditorUserId="5983" LastEditorDisplayName="" LastEditDate="2010-12-08T23:12:28.390" LastActivityDate="2010-12-08T23:12:28.390" CommentCount="1" />
  <row Id="24444" PostTypeId="2" ParentId="24426" CreationDate="2010-12-07T17:10:11.730" Score="0" ViewCount="" Body="&lt;p&gt;Why do you want to learn ASP.Net should be the main question here? It seems like your friend has a problem that is dealing with PHP and thinks that you could help. Unless there is some pressing matter on why to learn ASP.Net, I would say this is a great opportunity to learn PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, I think it is difficult for many people to learn two languages at the same time that are different. I also think that spending time on two different languages would allow you learn a little bit of both but not be able to be proficient enough in both to do much in the real world. It's great that you want to learn both languages and I think you should. But I would recommend that you take your time and learn one at a time and really get into the heart of the language.&lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-12-07T17:10:11.730" CommentCount="1" />
  <row Id="24445" PostTypeId="2" ParentId="24343" CreationDate="2010-12-07T17:33:02.957" Score="2" ViewCount="" Body="&lt;p&gt;The most important thing I learned in CS (and as a developer for many years and as an architect) is the ability to break a problem down based on &lt;strong&gt;volatility&lt;/strong&gt; and not on function.  All good designs isolate and encapsulate volatility.  All good developers/architects do this intuitively even if they have not formalized it in their thinking.  A huge reason for project failure is the failure to break a problem down on the basis of volatility and encapsulate it.  A failure to encapsulate volatility inevitably leads to run away complexity and project failure.&lt;/p&gt;&#xA;" OwnerUserId="9251" LastActivityDate="2010-12-07T17:33:02.957" />
  <row Id="24446" PostTypeId="1" CreationDate="2010-12-07T17:33:34.960" Score="11" ViewCount="470" Body="&lt;p&gt;Piracy is a problem, but some companies can survive, and others cannot.  Is there a list of these companies somewhere?  I think it would make for an interesting case study.  Thanks in advance. &lt;/p&gt;&#xA;" OwnerUserId="2527" LastActivityDate="2010-12-08T08:46:59.867" ClosedDate="2010-12-08T00:20:31.657" Title="Is there a list of software companies that have gone out of business due to piracy?" Tags="&lt;piracy&gt;" AnswerCount="6" CommentCount="9" FavoriteCount="1" />
  <row Id="24447" PostTypeId="2" ParentId="24398" CreationDate="2010-12-07T17:36:26.370" Score="2" ViewCount="" Body="&lt;p&gt;I think other people nicely point out how to deal with it in a professional manner.&#xA;I would like to say how to deal with the personal feeling like frustration, fear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line is you will be FINE even if you do not resolve issues in timely manner.&#xA;Life goes on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes, the schedule would be pushed. The project would be either successful of failed.&#xA;You may be fired and then have great job. You just never know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong. &#xA;It does't mean it is OK to let the problem be there.&#xA;All we can do is doing my best and let it go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes, I think the frustration, fear not solving problem is my life as a average developer.&lt;/p&gt;&#xA;" OwnerUserId="6924" LastActivityDate="2010-12-07T17:36:26.370" CommunityOwnedDate="2011-04-09T16:55:22.410" />
  <row Id="24448" PostTypeId="2" ParentId="24421" CreationDate="2010-12-07T17:39:27.357" Score="14" ViewCount="" Body="&lt;p&gt;As a manager in a shop that must support a lot of VB.NET code, I'll say that your experience is not at all atypical. It is definitely getting harder to hire VB.NET programmers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think it is so much that there aren't plenty of people out there that can work in the language or have experience with it. A bigger factor seems to be that those programmers are increasingly looking for C# jobs and not applying to jobs that focus on VB.NET code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I really like VB.NET as a language and think it doesn't deserve the bad rep it gets just because of its ancestry. However, I am increasingly using C# on projects where I have a choice and probably would favor applying for jobs with it over VB.NET for a number of reasons including:  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Despite the fact that it makes no practical sense, C# programmers tend to command a higher salary than VB.NET programmers.&lt;br&gt;&#xA;2) Most shops that are using VB.NET do so because they are porting ASP Classic or VB6 projects to .NET. It's generally more enjoyable to work on new projects instead of deciphering old code.&lt;br&gt;&#xA;3) There is a stigma associated with programmers that use any version of VB. It is totally stupid, but that doesn't change the fact that it exists. I'm getting tired of carrying a torch for a language. If VB.NET is really just as good as C#, then the reverse is true. So what does it hurt to switch just to avoid the whole argument?&lt;/p&gt;&#xA;" OwnerUserId="287" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-12-10T14:02:40.683" LastActivityDate="2010-12-10T14:02:40.683" CommentCount="1" />
  <row Id="24449" PostTypeId="2" ParentId="24343" CreationDate="2010-12-07T17:40:05.743" Score="4" ViewCount="" Body="&lt;p&gt;Automata Theory and FSM. :-)&lt;/p&gt;&#xA;" OwnerUserId="3534" LastActivityDate="2010-12-07T17:40:05.743" />
  <row Id="24451" PostTypeId="2" ParentId="24398" CreationDate="2010-12-07T17:46:32.543" Score="0" ViewCount="" Body="&lt;p&gt;The &quot;&lt;a href=&quot;http://programmers.stackexchange.com/questions/24398/what-happens-if-youre-unable-to-solve-a-problem/24401#24401&quot;&gt;seek help&lt;/a&gt;&quot; answers are definitely correct.  It is highly unlikely that you are the first person to ever encounter a particular problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But as a though experiment, what if there is no help?  What if you must solve the problem on your own?  The most important problem solving ability is the ability to &lt;em&gt;identify&lt;/em&gt; and &lt;em&gt;challenge&lt;/em&gt; your own &lt;strong&gt;assumptions&lt;/strong&gt;.  If you can enumerate your assumptions about a problem one-by-one and eliminate each in turn, you will eventually come upon the errant assumption and new possibilities for a solution will open up as a result.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(By the way, this is also the best approach when you can't see an answer to a problem you get in a job interview.  Verbally list out your assumptions, and determine which one is wrong and then re-attack the problem.  Almost all &quot;trick questions&quot; are based upon natural yet faulty assumptions).&lt;/p&gt;&#xA;" OwnerUserId="9251" LastActivityDate="2010-12-07T17:46:32.543" CommunityOwnedDate="2011-04-09T16:55:22.410" />
  <row Id="24453" PostTypeId="2" ParentId="8758" CreationDate="2010-12-07T17:57:31.903" Score="1" ViewCount="" Body="&lt;p&gt;I worked at a company where there were several copies of a popular CAD program licensed using a keygen floating around, and the word processor, spreadsheet, and mail client programs for nearly the entire company were licensed under a single serial number.  The issue of the unlicensed software was escalated to the VP of the division, and I am unaware of who else was informed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem was promptly tabled due to disbelief that any repercussions would be faced, and the sentiment &quot;we don't have the financial capability to purchase the software at this point in time.&quot; About a year after I left the company there I read an article in the local newspaper how my previous employer had settled out of court with the BSA for a six-figure amount.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it all depends on the scale and intent of the piracy, morale of employees, and if the victim feels that litigation would recover enough money to make it worth their time.&lt;/p&gt;&#xA;" OwnerUserId="4765" LastActivityDate="2010-12-07T17:57:31.903" CommunityOwnedDate="2011-01-23T07:24:28.233" />
  <row Id="24454" PostTypeId="2" ParentId="24343" CreationDate="2010-12-07T18:07:57.093" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Halting_problem&quot; rel=&quot;nofollow&quot;&gt;The Halting Problem&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact that computer related problems exist that simply &lt;em&gt;cannot&lt;/em&gt; be solved by a computer.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-07T18:07:57.093" />
  <row Id="24455" PostTypeId="2" ParentId="24412" CreationDate="2010-12-07T18:10:40.057" Score="5" ViewCount="" Body="&lt;h1&gt;K Combinator (C#, Scala)&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I use the K combinator in Ruby quite often, mostly in folds when the folding operation is performed through a side effect rather than a return value, like in this example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;some_collection.reduce(Hash.new(0)) {|acc, el| acc[el] += 1 }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This counts how often each element occurs in &lt;code&gt;some_collection&lt;/code&gt;. Unfortunately, it doesn't actually work, since the block has to return the new value of the accumulator at each iteration, but in Ruby assignments evaluate to the assigned value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, you have to ecplicitly return the new value of the accumulator like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;some_collection.reduce(Hash.new(0)) {|acc, el| acc[el] += 1; acc }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But I find such explicit sequencing ugly in this functional-ish style using folds. The K combinator (called &lt;code&gt;Object#tap&lt;/code&gt; in Ruby) to the rescue:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;some_collection.reduce(Hash.new(0)) {|acc, el| acc.tap { acc[el] += 1 }}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I have already missed it a couple of times in C# (mostly because for some reason collection mutators such as &lt;code&gt;List.Add&lt;/code&gt; return &lt;code&gt;void&lt;/code&gt; instead of &lt;code&gt;this&lt;/code&gt;) and Scala, so I carry around this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;namespace GenericExtensions&#xA;{&#xA;    public static class GenericExtensions&#xA;    {&#xA;        public static T Tap&amp;lt;T&amp;gt;(this T o, Action&amp;lt;T&amp;gt; f)&#xA;        {&#xA;            Contract.Requires(o != null);&#xA;            Contract.Requires(f != null);&#xA;&#xA;            f(o);&#xA;            return o;&#xA;        }&#xA;&#xA;        public static T Tap&amp;lt;T&amp;gt;(this T o, Action f)&#xA;        {&#xA;            Contract.Requires(o != null);&#xA;            Contract.Requires(f != null);&#xA;&#xA;            f();&#xA;            return o;&#xA;        }&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and in Scala:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Tap[T](o: T) {&#xA;  def tap(f: T =&amp;gt; Unit) = { f(o); o }&#xA;  def tap(f: =&amp;gt; Unit) = { f; o }&#xA;}&#xA;&#xA;object Implicits { implicit def any2Tap[T](o: T) = new Tap(o) }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;h1&gt;Identity Function (Ruby)&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Something I am missing in Ruby, is a nicely named way to access the identity function. Haskell provides the identity function under the name of &lt;code&gt;id&lt;/code&gt;, Scala under the name of &lt;code&gt;identity&lt;/code&gt;. This allows one to write code like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;someCollection.groupBy(identity)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The equivalent in Ruby is&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;some_collection.group_by {|x| x }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Doesn't exactly roll off the tongue, does it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fix is&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;IDENTITY = -&amp;gt; x { x }&#xA;&#xA;some_collection.group_by(&amp;amp;IDENTITY)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;h1&gt;ForEach (.NET)&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Another sorely missing method in C#:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;namespace IEnumerableExtensions&#xA;{&#xA;    public static class IEnumerableExtensions&#xA;    {&#xA;        public static void ForEach&amp;lt;T&amp;gt;(this IEnumerable&amp;lt;T&amp;gt; xs, Action&amp;lt;T&amp;gt; f)&#xA;        {&#xA;            Contract.Requires(xs != null);&#xA;            Contract.Requires(f != null);&#xA;&#xA;           foreach (var x in xs) f(x);&#xA;        }&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1352" LastEditorUserId="1352" LastEditorDisplayName="" LastEditDate="2010-12-07T21:33:36.497" LastActivityDate="2010-12-07T21:33:36.497" CommentCount="9" />
  <row Id="24457" PostTypeId="2" ParentId="24412" CreationDate="2010-12-07T18:22:01.460" Score="2" ViewCount="" Body="&lt;p&gt;I always have a &lt;code&gt;utils&lt;/code&gt; package of some sort, even in Java, but my PHP utils collection is the most re-used. There are so many good libraries in Java, that I either already have a library included in the project or need to just design a few missing utils on my own.  PHP libraries tend to do too much for me to want to include them in my projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I kind of like this function for PHP, &lt;a href=&quot;http://stackoverflow.com/questions/2286706/php-lookup-array-contents-with-dot-syntax&quot;&gt;refined with help on StackOverflow&lt;/a&gt;...&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function getValueFromDotKey(&amp;amp;$context, $name) {&#xA;    $pieces = explode('.', $name);&#xA;    foreach ($pieces as $piece) {&#xA;        if (!is_array($context) || !array_key_exists($piece, $context)) {&#xA;            // error occurred&#xA;            return null;&#xA;        }&#xA;        $context = &amp;amp;$context[$piece];&#xA;    }&#xA;    return $context;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It is similar to Apache's BeanUtils for Java, and I use it for a similar purpose, giving form elements in a template language a single key that can get/set a nested value in a source array:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$source = array('a' =&amp;gt; array('b' =&amp;gt; 5));&#xA;&#xA;$val = getValueFromDotKey($source, 'a.b');&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Of course, being PHP, I wanted to keep the method as lightweight as possible so it isn't &lt;em&gt;quite&lt;/em&gt; as featureful as BeanUtils &lt;code&gt;;)&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-07T18:22:01.460" />
  <row Id="24458" PostTypeId="2" ParentId="24446" CreationDate="2010-12-07T18:22:20.873" Score="2" ViewCount="" Body="&lt;p&gt;On the flip side, Eagle computers went out of business because they copied part of the IBM BIOS back in the 80's.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-12-07T18:22:20.873" CommentCount="1" />
  <row Id="24459" PostTypeId="2" ParentId="24446" CreationDate="2010-12-07T18:30:25.590" Score="1" ViewCount="" Body="&lt;p&gt;Well the Amiga is well known to have been massively pirated as their was no way to limit floppy disk copy at the time, and there was a lot of games. So the piracy occured a lot even in school yards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Commodore died with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[fixed, thanks commentors] &lt;/p&gt;&#xA;" OwnerUserId="1921" LastEditorUserId="1921" LastEditorDisplayName="" LastEditDate="2010-12-08T08:46:59.867" LastActivityDate="2010-12-08T08:46:59.867" CommentCount="6" />
  <row Id="24460" PostTypeId="1" AcceptedAnswerId="24461" CreationDate="2010-12-07T18:36:24.990" Score="4" ViewCount="270" Body="&lt;p&gt;I'm totally new to the Ruby world, and I'm a bit confused with the concept of Symbols. What's the difference between Symbols and Variables? Why not just using variables?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="6651" LastActivityDate="2011-03-17T05:41:20.157" Title="In Ruby, what a Symbol really is?" Tags="&lt;ruby&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="1" />
  <row Id="24461" PostTypeId="2" ParentId="24460" CreationDate="2010-12-07T18:47:59.420" Score="11" ViewCount="" Body="&lt;p&gt;Variables and symbols are different things. A variable points to different kinds of data. In Ruby, a symbol is more like a string than a variable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Ruby, a string is mutable, whereas a symbol is immutable. That means that only one copy of a symbol needs to be created. Thus, if you have&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;x = :my_str&#xA;y = :my_str&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;:my_str&lt;/code&gt; will only be created once, and &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; point to the same area of memory. On the other hand, if you have&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;x = &quot;my_str&quot;&#xA;y = &quot;my_str&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;a string containing &lt;code&gt;my_str&lt;/code&gt; will be created &lt;em&gt;twice&lt;/em&gt;, and &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; will point to different instances.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a result, symbols are often used as the equivalent to enums in Ruby, as well as keys to a dictionary (hash).&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-12-07T18:47:59.420" CommentCount="7" />
  <row Id="24462" PostTypeId="2" ParentId="24446" CreationDate="2010-12-07T18:49:35.327" Score="1" ViewCount="" Body="&lt;p&gt;I think no otherwise successful company was ever going out of business because of piracy alone. But some already struggling companies had surely more problems because of piracy. That means also, that there will be no clear case, where you can assign the problems only to one reason, including piracy. So I think such a list you want, that all the candidates will always be in discussion, because it was maybe piracy the last drop  ... or something else.&lt;/p&gt;&#xA;" OwnerUserId="7654" LastActivityDate="2010-12-07T18:49:35.327" />
  <row Id="24463" PostTypeId="2" ParentId="24312" CreationDate="2010-12-07T18:52:38.403" Score="-1" ViewCount="" Body="&lt;p&gt;Not that you want to apply to a hundred filled jobs, but what is the downside? And besides, you shouldn't be applying to a hundred jobs anyway.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-07T18:52:38.403" CommentCount="3" />
  <row Id="24464" PostTypeId="1" AcceptedAnswerId="24469" CreationDate="2010-12-07T18:54:21.530" Score="7" ViewCount="204" Body="&lt;p&gt;My question here is relative to jobs for programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why does employer still contract programmers if today we have a lot of good commercial system avaliable on the market?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to be very clear at this point, this question is relative only to a system, more specially to ERP systems.  Maybe this question looks a little bit useless, but right now I'm working and this doubt arose to me and my boss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a few answers to my own question, but I really would like to speculate this subject a bit more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also I know, every good company needs a customized system, but ... the question is here. :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any answer will make me feel better. Thanks.&lt;/p&gt;&#xA;" OwnerUserId="6987" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-07T21:21:16.783" LastActivityDate="2011-02-26T01:29:25.073" Title="Programmer VS Commercial Systems (ERP)" Tags="&lt;erp&gt;" AnswerCount="7" FavoriteCount="3" />
  <row Id="24465" PostTypeId="2" ParentId="24398" CreationDate="2010-12-07T18:55:44.873" Score="2" ViewCount="" Body="&lt;p&gt;As others have said, communication is critical - letting people know (who will be impacted) when you're stuck: your boss, team members, clients, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A sharp co-worker once instilled upon me that success has roots in two things:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Relationships&lt;/li&gt;&#xA;&lt;li&gt;Expectations&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Having a good relationship, I suppose, is a function of good communication and setting expectations up front. &lt;/p&gt;&#xA;" OwnerUserId="9290" LastActivityDate="2010-12-07T18:55:44.873" CommunityOwnedDate="2011-04-09T16:55:22.410" CommentCount="1" />
  <row Id="24466" PostTypeId="1" AcceptedAnswerId="24472" CreationDate="2010-12-07T18:59:15.243" Score="5" ViewCount="298" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have written many database (MySQL) web apps so far but I always think my structure is kinda clumsy. I want to improve the programming/design pattern I use, hoping for some advice here. Particularly, I cannot find a structure that complements an OOP approach that encapsulates the implementation of the database (schema). I &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think my question can be best explained by example. There are 2 approaches I use now say I have an Invoice object/class:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;first is to use static member functions&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Invoice&#xA;{&#xA;   int id;&#xA;   string ref;&#xA;   int customer_id;&#xA;   date created;&#xA;   date due;&#xA;&#xA;   static id create();&#xA;   static bool update(id, field1, field2, ...);&#xA;   static bool delete(id);&#xA;   static bool get(id);&#xA;};&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The second approach is to put every thing in a database object:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Database extends ProprietaryDBConnecter, Singleton&#xA;{&#xA;   id createInvoice();&#xA;   bool updateInvoice(id, field1, field2, ...);&#xA;   bool deleteInvoice(id);&#xA;   bool getInvoice(id);&#xA;&#xA;   id createCustomer();&#xA;   bool updateCustomer(id, field1, field2, ...);&#xA;   bool deleteCustomer(id);&#xA;   bool getCustomer(id);&#xA;&#xA;   // etc...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I find that both ways the (SQL) member functions are very much unseparable from the &quot;view&quot;, in that the &quot;view&quot; determines what the classes needs to have and hence seems to break the document/view architecture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, it seems kind of inefficient for example a SELECT statement should only select what is needed, but the presence of member variables in Invoice seems to imply &quot;guaranteed data&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't know if I explained the question clearly, What are some other best approaches to this architecture/design pattern/what-it-is-known-as?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for advices&lt;/p&gt;&#xA;" OwnerUserId="9291" LastEditorUserId="9291" LastEditorDisplayName="" LastEditDate="2010-12-07T19:07:13.190" LastActivityDate="2010-12-07T20:53:13.323" Title="Best Practices: Database app programming patterns" Tags="&lt;database&gt;" AnswerCount="4" FavoriteCount="3" />
  <row Id="24467" PostTypeId="2" ParentId="24464" CreationDate="2010-12-07T19:00:21.183" Score="3" ViewCount="" Body="&lt;h2&gt;Off the Shelf Vs. Custom&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Having been partially involved on a complex ERP project I would say its simple:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Off the shelf&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prositive:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Maybe Cheaper Initially.&lt;/li&gt;&#xA;&lt;li&gt;Well tested, stable.&lt;/li&gt;&#xA;&lt;li&gt;Excellent documentation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Negative:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Generic functionality.&lt;/li&gt;&#xA;&lt;li&gt;Vendor Lock in.&lt;/li&gt;&#xA;&lt;li&gt;Total Cost Of Ownership may be higher due to license.&lt;/li&gt;&#xA;&lt;li&gt;Upgrades could break existing set up etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-07T19:00:21.183" />
  <row Id="24468" PostTypeId="2" ParentId="24464" CreationDate="2010-12-07T19:05:20.877" Score="2" ViewCount="" Body="&lt;p&gt;There is a middle ground between off-the-shelf and completely custom:  large enterprise packages are usually customizable, and getting them to actually work in a given situation can take a lot of work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means there's a lot of demand for people who can customize SAP and Peoplesoft systems, for example.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-07T19:05:20.877" CommentCount="1" />
  <row Id="24469" PostTypeId="2" ParentId="24464" CreationDate="2010-12-07T19:08:13.563" Score="4" ViewCount="" Body="&lt;p&gt;Do you realize how expensive some of those higher-end commercial systems can cost to buy in the first place?  If companies are spending hundreds of thousands if not millions of dollars, don't you think they would want someone to help them get the most out of this big purchase?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Paying for the customization is why the contractors come in and don't forget that the big guys like SAP and Oracle may well have other companies that work as &quot;System Integrators&quot; that help companies implement the system correctly at a rather high cost.  Think of this as the difference between having a personal chef cook your meals and getting them in bulk from McDonald's.  That personal chef can put in so many touches that while yes it is expensive, some people tend to believe you pay for what you get and want lots of little things that they do pay but they may be happy in the end.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-07T19:08:13.563" CommentCount="1" />
  <row Id="24470" PostTypeId="2" ParentId="24312" CreationDate="2010-12-07T19:09:44.260" Score="0" ViewCount="" Body="&lt;p&gt;Depends on the company.  A government is likely to have to post openings with a given range of application dates, and will not consider applications after the closing date.  A larger and more bureaucratic company is more likely to do much the same as a smaller and livelier one.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-07T19:09:44.260" />
  <row Id="24471" PostTypeId="2" ParentId="24446" CreationDate="2010-12-07T19:19:15.583" Score="5" ViewCount="" Body="&lt;p&gt;I don't think any company can point to piracy as a single point of failure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take for example Avast, whose antivirus product was pirated and a single licence shared on over 774,000 times - see &lt;a href=&quot;http://www.pcpro.co.uk/news/security/363379/single-software-licence-shared-774-651-times&quot; rel=&quot;nofollow&quot;&gt;Single software licence shared 774,651 times&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They took the view that people using pirated copies of their software were not &quot;criminals&quot;, but potential buyers - read the article for more about this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not saying no company has ever gone out of business due to piracy, as there almost certainly has been some, but I think piracy is only 1 out of a compounding number of factors that cause companies to collapse.&lt;/p&gt;&#xA;" OwnerUserId="55" LastActivityDate="2010-12-07T19:19:15.583" CommentCount="1" />
  <row Id="24472" PostTypeId="2" ParentId="24466" CreationDate="2010-12-07T19:27:06.140" Score="6" ViewCount="" Body="&lt;p&gt;Well I suppose that you could use an ORM. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But really, database design should NOT follow OOP priciples, it should follow database design priciples such as normalization.  And it should be designed at the database not in the application. And the data integrity rules should be enforced at the database level not by the application. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest you read some database design books and, then, read about performance tuning the database of your choice. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastEditorUserId="1093" LastEditorDisplayName="" LastEditDate="2010-12-07T20:18:35.587" LastActivityDate="2010-12-07T20:18:35.587" CommentCount="6" />
  <row Id="24473" PostTypeId="2" ParentId="24464" CreationDate="2010-12-07T19:28:07.590" Score="3" ViewCount="" Body="&lt;p&gt;I work with the team that develops Microsoft Dynamics AX. Actually, I'm in the team that makes the development tools that allow &lt;code&gt;programmers&lt;/code&gt; to extend Dynamics AX.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We provide this tools because is impossible to offer solutions that cover all our customers' needs. Depending on how much customization is needed the customer might want to hire a programmer (or a team). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In AX we have a programming language called &lt;code&gt;X++&lt;/code&gt; that requires real programming knowledge if quality code is expected or if a lot of customization is required. I assume that SAP and Oracle have similar features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, unless the out-of-the-box solution fits the customers needs - which doesn't happen for big companies -, a team of programmers is needed to customize it.&lt;/p&gt;&#xA;" OwnerUserId="782" LastEditorUserId="782" LastEditorDisplayName="" LastEditDate="2010-12-07T20:02:45.187" LastActivityDate="2010-12-07T20:02:45.187" CommentCount="1" />
  <row Id="24474" PostTypeId="2" ParentId="24412" CreationDate="2010-12-07T19:29:51.850" Score="18" ViewCount="" Body="&lt;p&gt;No. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen some nightmarish effects of a dozen developers all adding their own little &quot;util.h&quot; style libraries to projects, and have it turn into a giant mess of inconsistent function naming and behaviors. Much like PHP. So for that reason I avoid doing it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I avoid needing to do that by using programming environments that give me nearly all the tools and libraries I need up front whenever possible, such as C# and python.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-12-07T19:29:51.850" CommentCount="8" />
  <row Id="24475" PostTypeId="2" ParentId="24398" CreationDate="2010-12-07T19:38:57.473" Score="5" ViewCount="" Body="&lt;p&gt;Usually, I get someone smarter than me to fix it.  He does and he's my boss.  I feel stupid.  We move on.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-07T19:38:57.473" CommunityOwnedDate="2011-04-09T16:55:22.410" CommentCount="1" />
  <row Id="24476" PostTypeId="2" ParentId="24464" CreationDate="2010-12-07T19:49:26.147" Score="3" ViewCount="" Body="&lt;p&gt;I think if you get 80% of the functionality you need off the shelf, you're doing well. So why not stop there?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A large corporation spending millions on staffing can save a lot of money if they can get the other 20%. I worked at a firm where the billing manager interrupted the IT staff during lunch because of a billing template error. I was a little put off at first, but learned the monthly bill was for over a million dollars (Typical for this client). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many companies have too many people sitting around figuring out ways to spend other peoples money. &quot;We must have a program that dynamically changes the company logo used for internal memorandum as a new holiday approaches.&quot; And somebody builds it because that's what they want. Too bad the time wasn't spent on the billing template.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some department decides to buy the application/data silo that they see fit and then everyone wants all the data consolidated for reporting.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-07T19:49:26.147" />
  <row Id="24477" PostTypeId="2" ParentId="24412" CreationDate="2010-12-07T19:51:46.303" Score="6" ViewCount="" Body="&lt;p&gt;Of the misc code I've written, most of the good stuff is in &lt;a href=&quot;http://ccan.ozlabs.org/&quot; rel=&quot;nofollow&quot;&gt;CCAN&lt;/a&gt; now, while the rest I tend to find better versions of in existing open source projects.  I find myself writing less and less general-purpose &quot;misc&quot; code these days, in favor of writing application-specific variants of such code, or of writing general-purpose modules that I can release by themselves.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;C&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Here's a function and typedef I've used more than once.  For applications that need timing, it's hard to beat milliseconds in terms of simplicity:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#include &amp;lt;stdint.h&amp;gt;&#xA;#include &amp;lt;sys/time.h&amp;gt;&#xA;&#xA;typedef int64_t msec_t;&#xA;&#xA;static msec_t time_ms(void)&#xA;{&#xA;    struct timeval tv;&#xA;    gettimeofday(&amp;amp;tv, NULL);&#xA;    return (msec_t)tv.tv_sec * 1000 + tv.tv_usec / 1000;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And more miscellaneous C functions that I tend to use over and over (and over):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/* Remove a trailing newline, if present. */&#xA;void chomp(char *buffer)&#xA;{&#xA;    if (!*buffer)&#xA;        return;&#xA;&#xA;    while (*buffer)&#xA;        buffer++;&#xA;&#xA;    if (buffer[-1] == '\n')&#xA;        buffer[-1] = 0;&#xA;}&#xA;&#xA;/*&#xA; * Skip whitespace, update the pointer, and return it.&#xA; * Example:&#xA; *&#xA; * switch (*skipSpace(&amp;amp;s)) {&#xA; *     case '\0':&#xA; *         ...&#xA; *     case '(':&#xA; *         ...&#xA; */&#xA;const char *skipSpace(const char **sptr)&#xA;{&#xA;    const char *s = *sptr;&#xA;    while (isspace(*s))&#xA;        s++;&#xA;    *sptr = s;&#xA;    return s;&#xA;}&#xA;&#xA;/* Scramble an array of items uniformly. */&#xA;void scramble(void *base, size_t nmemb, size_t size)&#xA;{&#xA;    char *i = base;&#xA;    char *o;&#xA;    size_t sd;&#xA;    for (;nmemb&amp;gt;1;nmemb--) {&#xA;        o = i + size*(rand()%nmemb);&#xA;        for (sd=size;sd--;) {&#xA;            char tmp = *o;&#xA;            *o++ = *i;&#xA;            *i++ = tmp;&#xA;        }&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;Haskell&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haskell's &lt;code&gt;nub :: (Eq a) =&amp;gt; [a] -&amp;gt; [a]&lt;/code&gt; function is O(n²) because, by its type signature, it's only allowed to test if two elements are equal.  A simple O(n log n) alternative is &lt;code&gt;map head . group . sort&lt;/code&gt;, but it requires forcing the entire input list before producing output, whereas &lt;code&gt;nub&lt;/code&gt; can start producing output right away.  The following is an O(n log n) alternative to &lt;code&gt;nub&lt;/code&gt; that collects already-seen items in a &lt;code&gt;Data.Set&lt;/code&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;module Nub (nub') where&#xA;&#xA;import Prelude&#xA;import Data.Set (empty, member, insert)&#xA;&#xA;nub' :: Ord a =&amp;gt; [a] -&amp;gt; [a]&#xA;nub' xs = loop xs empty where&#xA;    loop [] _ = []&#xA;    loop (x:xs) set =&#xA;        if x `member` set&#xA;            then loop xs set&#xA;            else x : loop xs (insert x set)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In Haskell, I use alternatives to &lt;code&gt;sequence&lt;/code&gt;, &lt;code&gt;mapM&lt;/code&gt;, &lt;code&gt;forM&lt;/code&gt;, &lt;code&gt;replicateM&lt;/code&gt;, and &lt;code&gt;filterM&lt;/code&gt;.  These  actions each generate a list, but the list can't be used until the action completes in its entirety (if you're using a strict monad like IO).  The alternatives build the list in reverse rather than forming a tower of thunks, which I found through benchmarking to be faster, at least with GHC.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;sequence' :: Monad m =&amp;gt; [m a] -&amp;gt; m [a]&#xA;sequence' ms = loop ms [] &amp;gt;&amp;gt;= return . reverse where&#xA;    loop []     xs = return xs&#xA;    loop (m:ms) xs = do&#xA;        x &amp;lt;- m&#xA;        loop ms (x:xs)&#xA;&#xA;mapM' :: Monad m =&amp;gt; (a -&amp;gt; m b) -&amp;gt; [a] -&amp;gt; m [b]&#xA;mapM' f xs = sequence' $ map f xs&#xA;&#xA;forM' :: Monad m =&amp;gt; [a] -&amp;gt; (a -&amp;gt; m b) -&amp;gt; m [b]&#xA;forM' = flip mapM'&#xA;&#xA;replicateM' :: Monad m =&amp;gt; Int -&amp;gt; m a -&amp;gt; m [a]&#xA;replicateM' n x = sequence' (replicate n x)&#xA;&#xA;filterM' :: Monad m =&amp;gt; (a -&amp;gt; m Bool) -&amp;gt; [a] -&amp;gt; m [a]&#xA;filterM' pred xs = loop xs [] &amp;gt;&amp;gt;= return . reverse where&#xA;    loop []     xs' = return xs'&#xA;    loop (x:xs) xs' = do&#xA;        keep &amp;lt;- pred x&#xA;        loop xs (if keep then (x:xs') else xs')&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Note: &lt;code&gt;sequence_&lt;/code&gt;, &lt;code&gt;mapM_&lt;/code&gt;, &lt;code&gt;forM_&lt;/code&gt;, and &lt;code&gt;replicateM_&lt;/code&gt; functions are still a better choice if you aren't interested in the result list.&lt;/p&gt;&#xA;" OwnerUserId="3650" LastEditorUserId="3650" LastEditorDisplayName="" LastEditDate="2010-12-09T07:08:41.410" LastActivityDate="2010-12-09T07:08:41.410" CommentCount="1" />
  <row Id="24478" PostTypeId="2" ParentId="24466" CreationDate="2010-12-07T19:52:50.013" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I cannot find a structure that&#xA;  complements an OOP approach that&#xA;  encapsulates the implementation of the&#xA;  database&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Seems like you're describing the &lt;a href=&quot;http://en.wikipedia.org/wiki/Object-Relational_impedance_mismatch&quot; rel=&quot;nofollow&quot;&gt;Object-relational impedance mismatch&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are number of things that are supposed to solve this OODBMS, ORM tools, a &lt;a href=&quot;http://programmers.stackexchange.com/q/15466/162&quot;&gt;host&lt;/a&gt; of data access tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the fact that there's so many solutions leads me to believe that One True Solution™ doesn't exist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you can pick any direction you like secure in the knowledge that some people will hate it and some will love it.  &lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-12-07T19:52:50.013" CommentCount="1" />
  <row Id="24479" PostTypeId="2" ParentId="24466" CreationDate="2010-12-07T20:00:25.230" Score="-2" ViewCount="" Body="&lt;p&gt;ORMs are made for people who don't know SQL and database design. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;/me ducks&lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-12-07T20:00:25.230" CommentCount="8" />
  <row Id="24480" PostTypeId="2" ParentId="24446" CreationDate="2010-12-07T20:00:56.297" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Stac_Electronics#Microsoft_lawsuit&quot; rel=&quot;nofollow&quot;&gt;Stac Electronics&lt;/a&gt; sued the pirates and won, but couldn't ever recover.&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-12-07T20:00:56.297" CommentCount="1" />
  <row Id="24481" PostTypeId="2" ParentId="23303" CreationDate="2010-12-07T20:03:45.917" Score="1" ViewCount="" Body="&lt;p&gt;PHP has &lt;a href=&quot;http://www.php.net/manual/en/book.sqlite.php&quot; rel=&quot;nofollow&quot;&gt;SQLite&lt;/a&gt;.  &lt;a href=&quot;http://devzone.zend.com/article/760&quot; rel=&quot;nofollow&quot;&gt;More info&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5497" LastActivityDate="2010-12-07T20:03:45.917" CommunityOwnedDate="2011-02-25T12:34:54.753" CommentCount="1" />
  <row Id="24482" PostTypeId="2" ParentId="24466" CreationDate="2010-12-07T20:16:55.960" Score="2" ViewCount="" Body="&lt;p&gt;If you don't want to use an ORM wrapper, use a database that supports OOP style storage like &lt;a href=&quot;http://mongodb.org&quot; rel=&quot;nofollow&quot;&gt;MongoDB&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="162" LastEditorDisplayName="" LastEditDate="2010-12-07T20:53:13.323" LastActivityDate="2010-12-07T20:53:13.323" CommentCount="0" />
  <row Id="24483" PostTypeId="2" ParentId="23404" CreationDate="2010-12-07T20:19:50.667" Score="0" ViewCount="" Body="&lt;p&gt;Don't do anything. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just let it slide, and learn the lesson. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, don't let your personal feelings of fairness get in the way. &lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-12-07T20:19:50.667" CommentCount="2" />
  <row Id="24484" PostTypeId="1" CreationDate="2010-12-07T20:25:24.810" Score="3" ViewCount="238" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possibly Related:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/24157/if-you-had-to-go-back-and-re-learn-your-skill-set-how-would-you-do-it&quot;&gt;How would you re-learn your skill set&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have some big problems and need your help! You all are programmers and you all have once been new at the programming world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I took my exam for a year ago. Was studing .Net c#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;6 months ago I got my first job and I have to say. Its really difficult. I dont now what to do. I love programming and to learn new stuff. But I have hard time struggling at my work. How do you guys/girls learn new stuff? Im working with a new project(c#, .NET) that is really big and im the only one that need help all the time. Im trying to learn more, but it doesent help at all. Trying to understand the code, but I still dont understand it fully to write my own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really really dont want to quit becuse I really love programming and my job. But my self confidence is gone and I feel like a dumb programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What should I do? Should I quit my job and search for something else?&lt;/p&gt;&#xA;" OwnerUserId="9296" LastEditorUserId="3757" LastEditorDisplayName="" LastEditDate="2010-12-07T23:47:26.993" LastActivityDate="2010-12-07T23:47:26.993" ClosedDate="2010-12-07T21:02:49.550" Title="Need help to be a better programmer!" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;career&gt;&lt;experience&gt;" AnswerCount="4" CommentCount="5" />
  <row Id="24485" PostTypeId="1" CreationDate="2010-12-07T20:33:56.390" Score="15" ViewCount="376" Body="&lt;p&gt;A lot of web frameworks have a MVC-style layout to code and approaching problems. What are some good similar paradigms for JavaScript? I'm already using a framework (jQuery) and unobtrusive js, but that still doesn't address the problem I run into when I have more complex web apps that require a lot of javascript, I tend to just end up with a bunch of functions in a single, or possibly a few files. What's a better way to approach this?&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-12-22T05:26:33.567" Title="Design Patterns for Javascript" Tags="&lt;design-patterns&gt;&lt;javascript&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="8" />
  <row Id="24486" PostTypeId="2" ParentId="24484" CreationDate="2010-12-07T20:33:59.450" Score="3" ViewCount="" Body="&lt;p&gt;Continue ahead, try to google the answers and think a bit longer about the code you don't understand before asking for help. But do ask for help when you are stuck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All beginning is hard, but if you are persistent you will prevail. And if you really love programming, you will get there.&lt;/p&gt;&#xA;" OwnerUserId="3666" LastActivityDate="2010-12-07T20:33:59.450" />
  <row Id="24487" PostTypeId="2" ParentId="24484" CreationDate="2010-12-07T20:45:06.190" Score="0" ViewCount="" Body="&lt;p&gt;Large projects are just like that.  It takes time to understand them; you can get a general understanding of the project pretty quickly, but it often takes a considerable amount of time to have real working knowledge of the project.  Don't be discouraged.  As time goes on you'll gain mastery of it.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-12-07T20:45:06.190" />
  <row Id="24488" PostTypeId="2" ParentId="24484" CreationDate="2010-12-07T20:45:46.797" Score="0" ViewCount="" Body="&lt;p&gt;First off, programming is hard especially in the beginning. That said it sounds like your lead is failing you. You should get assignments that stretch your skill set but they should not require a ton of help. This might be because your lead either &lt;/p&gt;&#xA;&#xA;&lt;p&gt;a) doesn't have a good grasp at what you can accomplish or&lt;/p&gt;&#xA;&#xA;&lt;p&gt;b) doesn't have the right assignments to give you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This could be becuse the lead is new to it and leading is hard too especially in the beginning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best thing to do is make sure you lead knows what you can do and what you struggle with. If possible try and identify the assignments that you can do and ask for them. &lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-12-07T20:45:46.797" />
  <row Id="24489" PostTypeId="2" ParentId="24484" CreationDate="2010-12-07T20:46:26.563" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Keep the help materials close to you.&lt;/li&gt;&#xA;&lt;li&gt;Buy some books.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ask your team to recommend.&lt;/li&gt;&#xA;&lt;li&gt;Keep those books close to your desk.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Ask for your team members' understanding that you will need extra time to learn and complete a task.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Everyone has gone through this stage; if you ask frankly, they will understand.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Spend more time on it.&lt;/li&gt;&#xA;&lt;li&gt;Take note.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Find out which one works better for yourself: paper notebook, wiki, bookmarks, etc.&lt;/li&gt;&#xA;&lt;li&gt;If permitted, take some note and bring those notes with you; read it often.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Ask your team to draw a architectural diagram for you.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Your team members' understanding of the current architecture is the most important. It may be even better than a detailed, but outdated drawing.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-12-07T20:46:26.563" />
  <row Id="24490" PostTypeId="2" ParentId="13751" CreationDate="2010-12-07T20:50:22.033" Score="0" ViewCount="" Body="&lt;p&gt;If you have only been doing desktop apps or back-end code, you may find it interesting to give web programming a try.  That way you will be exposed to new technologies, which can be fun to learn and make your job more interesting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are tired of programming altogether, perhaps you might be interested in switching to a hardware or networking-related position.  Those positions seem well-suited for programmers to switch between if you have the interest.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-12-07T20:50:22.033" />
  <row Id="24491" PostTypeId="2" ParentId="24485" CreationDate="2010-12-07T20:52:29.987" Score="1" ViewCount="" Body="&lt;p&gt;This has been my experience: It's very difficult to 'design' JS stuff. The best I've been able to do is group like functions together in the same file, and only include that file where necessary. I try to follow standard coding conventions, etc when coding, but JS is so fluid that it's not always possible, especially when trying to generically manipulate page elements. I'd say just do the best you can to organize.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is an &lt;a href=&quot;http://www.hackification.com/2009/03/01/my-javascript-code-organization-journey-so-far/&quot; rel=&quot;nofollow&quot;&gt;example&lt;/a&gt; of using namespaces is JavaScript that may help you out. It makes it so your code requires only one global variable, cleaning up the global space a good bit.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-07T20:52:29.987" />
  <row Id="24492" PostTypeId="2" ParentId="24485" CreationDate="2010-12-07T20:55:58.157" Score="2" ViewCount="" Body="&lt;p&gt;Using jQuery is a great start. JavaScript in a browser augments the frontend, there isn't a MVC &quot;pattern&quot; or anything to follow. There are some &quot;best practices&quot; that help keep the code clean. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Separate functions for separate things. Bindings in one, actions in another. Make use of &lt;code&gt;this&lt;/code&gt; as well as classes for actions.&lt;/li&gt;&#xA;&lt;li&gt;Remember that JavaScript allows a great deal of flexibility, passing closures around as they are created can help simplify your bindings and lighten the code.&lt;/li&gt;&#xA;&lt;li&gt;Shield from the global scope, only expose what is necessary.&lt;/li&gt;&#xA;&lt;li&gt;Use &lt;a href=&quot;http://jslint.com/&quot; rel=&quot;nofollow&quot;&gt;JSLint&lt;/a&gt; to keep your code up to standards.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For server side / non-browser JavaScript (like Node.js) there are several &lt;a href=&quot;http://expressjs.com/&quot; rel=&quot;nofollow&quot;&gt;great frameworks&lt;/a&gt; for building off of. It might be worth while browsing through the source to see if you pick up on any thing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I moved this to a &lt;a href=&quot;http://joshuakehn.com/blog/view/28/Writing-Better-JavaScript&quot; rel=&quot;nofollow&quot;&gt;more in-depth entry for the interested&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-13T21:57:51.473" LastActivityDate="2010-12-13T21:57:51.473" CommentCount="3" />
  <row Id="24493" PostTypeId="2" ParentId="24378" CreationDate="2010-12-07T21:03:11.367" Score="7" ViewCount="" Body="&lt;p&gt;In a weakly-typed language, type-casting exists to remove ambiguity in typed operations, when otherwise the compiler/interpreter would use order or other rules to make an assumption of which operation to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Normally I would say PHP follows this pattern, but of the cases I've checked, PHP has behaved counter-intuitively in each.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are those cases, using JavaScript as a comparison language.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;String Concatentation&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Obviously this is not a problem in PHP because there are separate &lt;strong&gt;string concatenation&lt;/strong&gt; (&lt;code&gt;.&lt;/code&gt;) and addition (&lt;code&gt;+&lt;/code&gt;) operators.&lt;/p&gt;&#xA;&#xA;&lt;sup&gt;JavaScript&lt;/sup&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var a = 5;&#xA;var b = &quot;10&quot;&#xA;var incorrect = a + b; // &quot;510&quot;&#xA;var correct = a + Number(b); // 15&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;h3&gt;String Comparison&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Often in computer systems &quot;5&quot; is greater than &quot;10&quot; because it doesn't interpret it as a number.  Not so in PHP, which, even if &lt;strong&gt;both&lt;/strong&gt; are strings, realizes they are numbers and removes the need for a cast):&lt;/p&gt;&#xA;&#xA;&lt;sup&gt;JavaScript&lt;/sup&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;console.log(&quot;5&quot; &amp;gt; &quot;10&quot; ? &quot;true&quot; : &quot;false&quot;); // true&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;sup&gt;PHP&lt;/sup&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;echo &quot;5&quot; &amp;gt; &quot;10&quot; ? &quot;true&quot; : &quot;false&quot;;  // false!&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;h3&gt;Function signature typing&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;PHP implements a bare-bones type-checking on function signatures, but unfortunately it's so flawed it's probably rarely usable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I thought I might be doing something wrong, but a &lt;a href=&quot;http://www.php.net/manual/en/functions.arguments.php#98425&quot; rel=&quot;nofollow&quot;&gt;comment on the docs&lt;/a&gt; confirms that built-in types other than array cannot be used in PHP function signatures - though the error message is misleading.&lt;/p&gt;&#xA;&#xA;&lt;sup&gt;PHP&lt;/sup&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function testprint(string $a) {&#xA;    echo $a;&#xA;}&#xA;&#xA;$test = 5;&#xA;testprint((string)5); // &quot;Catchable fatal error: Argument 1 passed to testprint()&#xA;                      //  must be an instance of string, string given&quot; WTF?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And unlike any other language I know, even if you use a type it understands, null can no longer be passed to that argument (&lt;code&gt;must be an instance of array, null given&lt;/code&gt;).  How stupid.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Boolean interpretation&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;[&lt;strong&gt;Edit&lt;/strong&gt;]: This one is new. I thought of another case, and again the logic is reversed from JavaScript.&lt;/p&gt;&#xA;&#xA;&lt;sup&gt;JavaScript&lt;/sup&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;console.log(&quot;0&quot; ? &quot;true&quot; : &quot;false&quot;); // True, as expected. Non-empty string.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;sup&gt;PHP&lt;/sup&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;echo &quot;0&quot; ? &quot;true&quot; : &quot;false&quot;; // False! This one probably causes a lot of bugs.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;So in conclusion, the only useful case I can think of is... (drumroll)&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Type truncation&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;In other words, when you have a value of one type (say string) and you want to interpret it as another type (int) and you want to force it to become one of the valid set of values in that type:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$val = &quot;test&quot;;&#xA;$val2 = &quot;10&quot;;&#xA;$intval = (int)$val; // 0&#xA;$intval2 = (int)$val2; // 10&#xA;$boolval = (bool)$intval // false&#xA;$boolval2 = (bool)$intval2 // true&#xA;$props = (array)$myobject // associative array of $myobject's properties&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I can't see what upcasting (to a type that encompasses more values) would really ever gain you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So while I disagree with your proposed use of typing (you essentially are proposing &lt;a href=&quot;http://en.wikipedia.org/wiki/Type_system#Static_typing&quot; rel=&quot;nofollow&quot;&gt;static typing&lt;/a&gt;, but with the ambiguity that only if it was &lt;em&gt;force-cast&lt;/em&gt; into a type would it throw an error &amp;mdash; which would cause confusion), I think it's a good question, because apparently casting has &lt;strong&gt;very&lt;/strong&gt; little purpose in PHP.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-08T07:16:12.467" LastActivityDate="2010-12-08T07:16:12.467" CommentCount="5" />
  <row Id="24495" PostTypeId="1" AcceptedAnswerId="24510" CreationDate="2010-12-07T21:20:43.013" Score="3" ViewCount="648" Body="&lt;p&gt;I am an enterprise app programmer, mainly using Java, but now I want to move into web programming and build websites that are visited by millions of users. But what is surprising to me is that the salary level is so much different. A Java programmer seems to get a higher salary than a web programmer. Why is this so? Is it perceived that Java/enterprise applications are more difficult, thus the programmers get a higher salary?  &lt;/p&gt;&#xA;" OwnerUserId="9298" LastEditorUserId="1842" LastEditorDisplayName="" LastEditDate="2010-12-07T21:23:03.757" LastActivityDate="2011-01-02T16:37:54.623" Title="Why do enterprise app programmers get higher salaries than web programmers" Tags="&lt;career&gt;&lt;web-development&gt;&lt;enterprise-architecture&gt;" AnswerCount="9" CommentCount="8" FavoriteCount="3" />
  <row Id="24496" PostTypeId="2" ParentId="24485" CreationDate="2010-12-07T21:20:59.847" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Namespacing&lt;/strong&gt;: Don't forget to use objects as a &lt;strong&gt;pseudo-package&lt;/strong&gt; (most frameworks do this, you should also):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var YourCompany = {};&#xA;&#xA;YourCompany.util = {};&#xA;&#xA;YourCompany.util.myFunction = function() { /* ...  */ }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You don't necessarily need to set it up that way, and use whatever naming conventions you prefer, but the namespacing will help you out a lot (makes it easier on refactoring search-and-replace too, when you decide to move something).&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-07T21:20:59.847" CommentCount="2" />
  <row Id="24497" PostTypeId="2" ParentId="24398" CreationDate="2010-12-07T21:22:50.417" Score="0" ViewCount="" Body="&lt;p&gt;Find yourself a workaround&lt;/p&gt;&#xA;" OwnerUserId="8115" LastActivityDate="2010-12-07T21:22:50.417" CommunityOwnedDate="2011-04-09T16:55:22.410" />
  <row Id="24498" PostTypeId="1" CreationDate="2010-12-07T21:23:44.833" Score="6" ViewCount="705" Body="&lt;p&gt;&lt;strong&gt;I'm very interested in the &quot;evolution&quot; of a programmer.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How one starts off; understanding simple imperative style of programming and gradually over time learns newer concepts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Question:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If one was to list it down as a time line, what would this look like? &lt;/li&gt;&#xA;&lt;li&gt;Why that particular order?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Basic Example:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Imperative -&gt; OOP -&gt; Functional etc....&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Reasons why: etc.......&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;P.S&lt;/strong&gt; there is no right or wrong answer I don't think, if its based on your own experiences/objectives  that's even better&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-21T14:31:31.797" Title="From Grasshopper to Guru.." Tags="&lt;programming&gt;&lt;development&gt;" AnswerCount="8" CommentCount="5" FavoriteCount="5" />
  <row Id="24499" PostTypeId="2" ParentId="24495" CreationDate="2010-12-07T21:24:29.047" Score="2" ViewCount="" Body="&lt;p&gt;Web developers don't necessarily get paid less than enterprise app programmers. There are plenty of big, complicated, enterprise software systems that are delivered on the internet or corporate intranets. The developers of those systems can consider themselves web developers, or enterprise app developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not an either/or comparison.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-12-07T21:24:29.047" />
  <row Id="24500" PostTypeId="2" ParentId="24495" CreationDate="2010-12-07T21:28:10.680" Score="3" ViewCount="" Body="&lt;p&gt;It depends on your version of &quot;web developer&quot;. There are so many web technologies that its hard to generalize, especially since a web developer could very easily &lt;em&gt;be&lt;/em&gt; a Java developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, its likely going to come down to the rarity of the technology, the perceived value of the site to the company, and lots of other factors.&lt;/p&gt;&#xA;" OwnerUserId="5972" LastActivityDate="2010-12-07T21:28:10.680" />
  <row Id="24501" PostTypeId="2" ParentId="23404" CreationDate="2010-12-07T21:29:06.513" Score="0" ViewCount="" Body="&lt;p&gt;DO NOT TAKE DOWN THE SITE&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not if he's paying for the hosting and its under his name.  That might be construed as illegal access or hacking - resulting in the possibility of YOU facing criminal charges.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You sent a final invoice.  If he doesnt pay, take him to small claims court (or your country's equivalent).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These things happen... next time require payment upon delivery and have a written contract.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-07T21:29:06.513" />
  <row Id="24502" PostTypeId="2" ParentId="24495" CreationDate="2010-12-07T21:30:26.437" Score="1" ViewCount="" Body="&lt;p&gt;It depends on what kind of web development you do: salaries can range from $25/hour (not a real developer, people who can set up a CMS with a stock theme and enter content) to six figures per year.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-07T21:30:26.437" />
  <row Id="24503" PostTypeId="2" ParentId="24398" CreationDate="2010-12-07T21:33:26.033" Score="0" ViewCount="" Body="&lt;p&gt;There's some great advice here! My two cents worth is; Don't be overwhelmed by the BIG problem, don't forget that the exciting and challenging part of solving a problem is breaking it down into series of manageable and more importantly comprehensible sub-problems, which in turn break down again and again into smaller sub-problems. Any good programmer will typically do this on a minute by minute basis while they are creating code (using functions, methods, sub-routines etc to help reduce the overall complexity of a section of code) and this methodology typically applies to any BIG problem you face in life (not just at work).&lt;/p&gt;&#xA;" OwnerUserId="9299" LastActivityDate="2010-12-07T21:33:26.033" CommunityOwnedDate="2011-04-09T16:55:22.410" />
  <row Id="24504" PostTypeId="2" ParentId="24398" CreationDate="2010-12-07T21:33:29.123" Score="1" ViewCount="" Body="&lt;p&gt;Asking for help is really the best answer, but here's a little more that may be useful.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;So for those who have been in industry&#xA;  for any longer length of time, what&#xA;  would happen if you were told to solve&#xA;  a problem that you couldn't? Has it&#xA;  happened, and if so, what did happen?&#xA;  Did they just drop it and said &quot;Oh&#xA;  well, guess we can make do with&#xA;  something else&quot;? Were there&#xA;  consequences? Were you reprimanded, or&#xA;  even fired?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes, it's happened to me, and no, I never got reprimanded or fired for it, because...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;In industry, it's all about whether you solve problems on time and within budget, and decent managers understand that's not always possible.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What really happens is your manager says, &quot;I'd like you to do X, what do you think it will take?&quot; And you can give lots of answers. Good ones include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I've done something really similar to this, so I think it will take three weeks and $3,000 worth of testing hardware.&lt;/li&gt;&#xA;&lt;li&gt;I've something generally similar to this. So let me think about it and get back to you this afternoon.&lt;/li&gt;&#xA;&lt;li&gt;I've never done anything like this. So let me research it and get back to you tomorrow.&lt;/li&gt;&#xA;&lt;li&gt;Nobody on the planet has ever done this. If you want to look into it, it will take me two weeks to do enough experimentation to make an estimate.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It's the manager's job to decide whether and how to proceed. If they do choose to proceed, it's your job to meet your estimates, or let the manager know if there's an impediment. As long as you do that, in a reasonable company there won't be negative consequences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, there are also unreasonable companies that don't give you the time or resources to get your job done. I've worked at some of those, and everybody was handed problems that couldn't be solved within the company's constraints. One of them laid off about 98% of the programming staff within eight months, and that certainly was a consequence, but it wasn't personally directed at me, and I still consider my boss and his boss from there to be good friends.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-07T21:33:29.123" CommunityOwnedDate="2011-04-09T16:55:22.410" CommentCount="1" />
  <row Id="24505" PostTypeId="2" ParentId="24398" CreationDate="2010-12-07T21:36:58.753" Score="0" ViewCount="" Body="&lt;p&gt;It depends on what the specific problem is, obviously.  But the response can be any of :&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Find a workaround/substitution&lt;/li&gt;&#xA;&lt;li&gt;Buy a commercial solution that approximates what you want&lt;/li&gt;&#xA;&lt;li&gt;Dont give up and keep working at it &lt;em&gt;as long as you need to until you succeed&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Number 3 may require time off from the problem and revisiting it weeks or months later.  That often helps.  &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-07T21:36:58.753" CommunityOwnedDate="2011-04-09T16:55:22.410" />
  <row Id="24506" PostTypeId="2" ParentId="24495" CreationDate="2010-12-07T21:37:57.647" Score="13" ViewCount="" Body="&lt;p&gt;Assuming that you're right (which I don't think you are), a number of things could affect this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Supply vs. Demand: Are there more 'web developers' available?&lt;/li&gt;&#xA;&lt;li&gt;Perceived complexity/skill requirements: Hiring managers might think that it's more difficult to build enterprise applications.&lt;/li&gt;&#xA;&lt;li&gt;Culture: For a long time, web site creation &lt;em&gt;was&lt;/em&gt; easy (read the static html years). That allowed people with minimal education/experience to effectively develop web sites - these people potentially required, or charged, less money. That stigma could have stuck.&lt;/li&gt;&#xA;&lt;li&gt;Perceived value of the result: Some companies don't see their web presence as a significant value-add to their core business, thus they may not want to spend as much on it as something that all of their employees use. The difficulties in calculating ROI on web applications/sites can add to this effect.&lt;/li&gt;&#xA;&lt;li&gt;If, as above, the site isn't perceived as delivering core business value, then it is logically reasonable to outsource it. This potentially introduces the same effect that you see with sites like rentacoder: competing with markets that have lower costs to produce products. Conversely, much enterprise development is done in-house.&lt;/li&gt;&#xA;&lt;li&gt;Lots of people don't do in-house development but 'everyone needs a website' so there's more people in the marketplace, which means that there will be statistically more cheap people in the marketplace.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Like I said in the beginning though, I think you'll find that if you start comparing web &lt;em&gt;application&lt;/em&gt; developers to enterprise application developers, you'll see more parity amongst skills, experience, knowledge and pay.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-07T21:37:57.647" CommentCount="1" />
  <row Id="24507" PostTypeId="2" ParentId="24495" CreationDate="2010-12-07T21:42:06.523" Score="2" ViewCount="" Body="&lt;p&gt;Salary is almost always determined by supply and demand. Lots of people would love to be working on Facebook, so they pay rubbish mostly, except for the gurus who keep the site running 24x7 because they are hard to come by. For the enterprise job paying $200k it is because it is hard to find a person with the right mix of skills required. &lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-12-07T21:42:06.523" />
  <row Id="24508" PostTypeId="2" ParentId="24498" CreationDate="2010-12-07T21:49:27.150" Score="31" ViewCount="" Body="&lt;p&gt;First there is the line number, and it is good. The PRINT statement shows the path to strings and they are good. A friend shows you how to write a subroutine, and you buy them a beer for they are good. Another friend tells a dark tale of arrays and you are amazed and fearful as you conquer them. Nothing remains. You are the master of your BASIC domain. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You reach college and C is thrust upon you. All that you thought you knew is cast aside. Timorous and shaken you venture forth. Curly braces, square brackets and double equals are crushed underfoot. Binary trees and recursion fall before you as you confidently march onwards, naive in your belief that you know everything there is to know now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then your darkest nightmares are revealed to you as you stumble upon that eerie creature - the pointer. After days and nights battling with your notation (is it * or is it &amp;amp;?) suddenly a great shift occurs in your mind and you finally understand: it's just indirection. You can never go back. That door is closed to you. There is nothing more to learn. Procedural programming does it all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then your friend shows up with C++ and object oriented programming. A world you never dreamed of opens up before you and it is wonderful. Abstraction, polymorphism, inheritance and encapsulation all fold against your insatiable desire for learning. Time passes. More and more frameworks are brought in to simplify your life as you struggle to find the simplest possible way to express what you want to do. You are drowning in complexity. Aspect oriented programming seems to offer a way out, but you fall back into the quagmire.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then, just as all hope is lost, it occurs to you that all you really need is Lisp.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-07T22:39:53.053" LastActivityDate="2010-12-07T22:39:53.053" CommentCount="16" />
  <row Id="24509" PostTypeId="2" ParentId="24498" CreationDate="2010-12-07T21:54:17.600" Score="11" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Ok so this graph doesn't really communicate anything except for my lack of Gimp-fu.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/dE5KQ.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;However&lt;/strong&gt;, &lt;em&gt;since everyone is different, Id say each of these lines reflects the learning curve of at least some one.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="3757" LastActivityDate="2010-12-07T21:54:17.600" CommentCount="6" />
  <row Id="24510" PostTypeId="2" ParentId="24495" CreationDate="2010-12-07T21:58:55.867" Score="6" ViewCount="" Body="&lt;p&gt;I think this is to a large extent because &quot;Web Developer&quot; is often a misnomer title for very low end website/content management work, rather than real software development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I think a lot of people with the &quot;web developer&quot; title - even if they do real &quot;programming&quot; - are doing little more than your basic copy-and-paste-from-php.net kind of website hacking work. It's not surprising that this drags the numbers down.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastEditorUserId="5064" LastEditorDisplayName="" LastEditDate="2010-12-07T22:56:56.360" LastActivityDate="2010-12-07T22:56:56.360" />
  <row Id="24511" PostTypeId="2" ParentId="24412" CreationDate="2010-12-07T21:59:48.890" Score="1" ViewCount="" Body="&lt;p&gt;Currently, no. I had one when I was doing C, but now that I do Java, it no longer makes sense, considering all the standard libs available, plus all the goodies coming from the Apache project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the useful things in my C lib was a quick&amp;amp;dirty finite state machine implementation, which allowed the definition of a finite state machine with just two strings and an array of strings. It could be used to check strings against rules (e.g. &quot;must be 4..6 characters long, first one a letter, rest digits&quot;) , but the availability of regexes made that thingy completely pointless.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-07T21:59:48.890" />
  <row Id="24512" PostTypeId="2" ParentId="24495" CreationDate="2010-12-07T22:00:39.060" Score="2" ViewCount="" Body="&lt;p&gt;I don't know if I agree with the general question or not, but after thinking about it for a moment one thing came to my mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a large corporation we're often required to build all types of applications, web apps, web services, Windows Services, desktop apps...  That may not be true at every corporation, but it is true in the Fortune 500 company that I've worked for.  It was not uncommon for internal customers to come to us early in the year asking for an internal web site of some sort and later in the year to be asked to create some middleware service that supported some intiative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IF the OP is correct (and I would want to see some data about) this is one possible scenario on why enterprise programmers could recieve a higher pay amount.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-07T22:00:39.060" />
  <row Id="24513" PostTypeId="2" ParentId="24498" CreationDate="2010-12-07T22:01:29.840" Score="7" ViewCount="" Body="&lt;p&gt;According to &lt;a href=&quot;http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf&quot; rel=&quot;nofollow&quot;&gt;this article&lt;/a&gt; there are three semantic hurdles that novice programmers must cross.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;assignment and sequence&lt;/li&gt;&#xA;&lt;li&gt;recursion / iteration&lt;/li&gt;&#xA;&lt;li&gt;concurrency&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Jeff Atwood talked about this article &lt;a href=&quot;http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-12-07T22:01:29.840" CommentCount="2" />
  <row Id="24514" PostTypeId="2" ParentId="24366" CreationDate="2010-12-07T22:31:50.783" Score="0" ViewCount="" Body="&lt;p&gt;I'll agree with @grossvogel above. Learn to write a framework, don't learn to use one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm right where you are now, and what helps me the most are the manuals at php.net. If you have questions about a specific function in PHP, that's where you going to find the docs on what that function does, how it works, and examples on how to use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just don't give up. It's not easy at first, but it does get easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now, my favorite PHP book is &quot;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0672329166&quot; rel=&quot;nofollow&quot;&gt;PHP and MySQL Web Development&lt;/a&gt;&quot;. Check it out. It's really helpful. You don't have to read it from cover to cover, just skip around to wherever you need to.&lt;/p&gt;&#xA;" OwnerUserId="9304" LastActivityDate="2010-12-07T22:31:50.783" CommentCount="2" />
  <row Id="24515" PostTypeId="2" ParentId="1599" CreationDate="2010-12-07T22:34:53.277" Score="1" ViewCount="" Body="&lt;p&gt;Judging whether a problem really needs to be fully analyzed and debugged or whether a workaround is more in order.&lt;/p&gt;&#xA;" OwnerUserId="4526" LastActivityDate="2010-12-07T22:34:53.277" CommunityOwnedDate="2010-12-07T22:34:53.277" CommentCount="1" />
  <row Id="24516" PostTypeId="2" ParentId="24464" CreationDate="2010-12-07T22:35:23.337" Score="3" ViewCount="" Body="&lt;p&gt;good answers above; i would add that many of the ERP systems are &lt;strong&gt;ancient&lt;/strong&gt;, not all that well-structured to start with, and have incredible technical debt; this makes them very &lt;em&gt;very&lt;/em&gt; expensive and tricky to customize&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-07T22:35:23.337" CommentCount="1" />
  <row Id="24517" PostTypeId="2" ParentId="24498" CreationDate="2010-12-07T22:37:01.730" Score="5" ViewCount="" Body="&lt;p&gt;I can only tell my story; like many of my age, I started with BASIC on a homecomputer, did some machine code too (that's assembler without an actual assembler ;-); then was a big switch to Pascal, no more GOTOs, structured programming instead; that wasn't easy!&#xA;At school, I had to learn a few other languages, many of them for host systems (Cobol, PL/I etc.); in my first job, switching to C was not a big thing, coming from Pascal, just a different syntax for similar concepts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From there on, it really took me a while, like 8 years or so, to &lt;em&gt;really&lt;/em&gt; grasp object oriented programming. That was 12 years ago. Recently, with a project involving lots of JavaScript and Groovy, I've dipped my toes into functional programming too - not because of an inherent urge to learn that one too, rather because it's unavoidable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for me, the order is &lt;strong&gt;spagetti -&gt; structured -&gt; OOP -&gt; functional&lt;/strong&gt;, but that order was the result of certain events in my life, not planned.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-07T22:37:01.730" CommentCount="3" />
  <row Id="24518" PostTypeId="2" ParentId="24412" CreationDate="2010-12-07T22:43:05.420" Score="1" ViewCount="" Body="&lt;p&gt;I can't write desktop UIs now without &lt;a href=&quot;http://sourceforge.net/projects/dyndlgdemo/&quot; rel=&quot;nofollow&quot;&gt;dynamic dialogs&lt;/a&gt;, based on &lt;a href=&quot;http://stackoverflow.com/questions/371898/how-does-differential-execution-work&quot;&gt;differential execution&lt;/a&gt;.&#xA;It's a hack I stumbled on around 1985, and I've re-implemented it in various languages more times than I can remember.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-12-07T22:43:05.420" />
  <row Id="24519" PostTypeId="2" ParentId="24343" CreationDate="2010-12-07T22:49:25.837" Score="3" ViewCount="" Body="&lt;p&gt;Well, I could give you a dull answer: automata theory, and information theory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or I could tell you what I learned from a hardware consultant a long time ago:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;Good Enough&quot; isn't good enough.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-12-07T22:49:25.837" />
  <row Id="24520" PostTypeId="2" ParentId="24412" CreationDate="2010-12-07T23:21:44.750" Score="10" ViewCount="" Body="&lt;h2&gt;SmartFormat&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;My favorite utility is one I wrote - a simple string builder/formatter that makes it really easy to turn data into strings with correct grammar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, most programmers build text from a template: &#xA;&lt;code&gt;&quot;There are {0} items remaining&quot;&lt;/code&gt;&#xA;but this leads to grammatical errors: &lt;code&gt;&quot;There are 1 items remaining&quot;&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, &lt;strong&gt;SmartFormat&lt;/strong&gt; lets you write: &lt;code&gt;&quot;There {0:is|are} {0} item{0:|s} remaining&quot;&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You just replace &lt;code&gt;String.Format(...)&lt;/code&gt; with &lt;code&gt;Smart.Format(...)&lt;/code&gt; and that's it!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;strong&gt;SmartFormat&lt;/strong&gt; code is open source: &lt;a href=&quot;http://github.com/scottrippey/SmartFormat/wiki&quot; rel=&quot;nofollow&quot;&gt;http://github.com/scottrippey/SmartFormat/wiki&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9306" LastActivityDate="2010-12-07T23:21:44.750" CommentCount="6" />
  <row Id="24521" PostTypeId="2" ParentId="24498" CreationDate="2010-12-07T23:24:46.197" Score="4" ViewCount="" Body="&lt;p&gt;This would be the highlights in my progression:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Age 8: Get Commodore 64 which comes with something called BASIC that lets me tell the machine what to do,e.g. print this, add that, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Age 15: High school computer courses where some more ideas like loops, conditions and single-dimension arrays are covered.  However, as this is done in Watcom BASIC I have little experience to typing a variable other than the number, string, array that the BASIC supported.  There is some work with gates and assembler here in High school but things are still fairly simple really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Age 18: Off to university to study in Pascal on Macs in my first year.  Now I learn more about types, pointers, linked lists, etc.  There is also some Big-O introduced in both a Math class and a Computer Science class.  Next comes getting into Modula-3 on a Unix system where things are quite different.  Learning about make files, compiling, linking, etc.  Things are much more complex now but there is also a more formal process for writing a program now where I gather requirements, design a solution, implement it and then test it.  There are some run-ins with other paradigms like programming in Matlab, Maple, and Scheme.  There is also some C/C++ along with micro-C++ for Concurrency and Operating Systems courses to complete this package.  This would also be where I discover the World Wide Web and some of the basics behind Mark-up as this was around the mid-90s.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Age 22: Now into the working world of code with Microsoft tools: Visual Studio, SourceSafe, IIS, MS-SQL Server, etc.  Having a little baptism by fire, I get through my first few projects and feel competent enough to have found my footing finally.  Eventually I migrate into VBScript on classic ASP and then into C# for ASP.Net when that finally comes out.  There are also introductions to e-commerce and other stuff that I hadn't handled before in depth like version control or databases.  While there was mention of version control in my CS courses in university, my exposure with them was minimal as I recall.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Age 29: I discover design patterns which is really useful stuff to change how I do things.  I now have some templates to use when writing code and can use other solutions for as a starting point in some cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Age 30: While working on an ASP.Net 2.0 application, I research into AJAX and this adds a new set of things to my work.  It is rather cool to be able to update a web page on-the-fly and not have the browser flicker the whole page every time something is getting updated.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-07T23:24:46.197" />
  <row Id="24522" PostTypeId="2" ParentId="24398" CreationDate="2010-12-07T23:44:00.043" Score="1" ViewCount="" Body="&lt;p&gt;There are lots of different types of problems that you will be stumped on, and many have different ways to handle them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One type of problem is implementing something you haven't seen before like a strange sound API or something. In this case I'd ask on SO, seriously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another is a very large problem to solve.  This type of problem can be approached iteratively.  They tell you &quot;Implement Humongous&quot;.  You look it over and write as many steps as you can figure out.  Then you break down the complicated steps into smaller steps.  As you are forced to think about smaller steps they become clearer.  If you encounter a technical difficulty, try a test implementation and ask here if necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the more annoying problems is poorly specified requests.  They just want a thing that does &quot;x&quot; and don't tell you how it should be done.  For these a good approach is prototype an interface (typically a GUI) and let someone play with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then there are time constraints that can't be met.  This often involves modifying expectations and delivering functional prototypes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will generally find your way through things one way or another.  It's frightening but once you're in it you can pretty much always find some way through.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your best bet may be to just paint the words &quot;Don't Panic&quot; on the outside of your laptop.  And don't forget your towel.&lt;/p&gt;&#xA;" OwnerUserId="1788" LastActivityDate="2010-12-07T23:44:00.043" CommunityOwnedDate="2011-04-09T16:55:22.410" CommentCount="1" />
  <row Id="24523" PostTypeId="2" ParentId="24366" CreationDate="2010-12-07T23:50:22.457" Score="0" ViewCount="" Body="&lt;p&gt;If you ask me, advanced web programming is in a lot of cases more JavaScript than PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn one thing at a time, but remember that your toolbox is limited until you have learned to use PHP and JavaScript in conjunction.&lt;/p&gt;&#xA;" OwnerUserId="8737" LastActivityDate="2010-12-07T23:50:22.457" />
  <row Id="24525" PostTypeId="2" ParentId="24446" CreationDate="2010-12-08T00:17:15.643" Score="2" ViewCount="" Body="&lt;p&gt;It was relatively well-known the Microsoft Windows 3.x and Microsoft Office 3 through 95 were easily pirate-able, or the CD key could easily be faked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I worked at Microsoft around that time, the general consensus was that, if people rip-off Microsoft's software, they won't bother to buy the competition's, so that'll help us kill off the competition, so no need to chase after them just yet. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Businesses tended to get audited and organisations such as the Business Software Alliance made examples of big corporates found to be under-licensed, so this ensured a revenue stream from the business community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once the products were ubiquitous, the 25-digit licence keys and internet activation started. It almost seems like a deliberate strategy from the beginning, but I think that it evolved this way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't recall any Microsoft products requiring a dongle or licence key at the time, yet hardware dongles were very popular with the competition.. I forget who the competitors were...&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-12-08T00:17:15.643" />
  <row Id="24526" PostTypeId="1" CreationDate="2010-12-08T00:53:35.627" Score="4" ViewCount="167" Body="&lt;p&gt;Are there any patterns which seem sensible when designing an object oriented domain, but do not translate nicely onto a relational database schema?  If so, are there standard patterns that can be used instead?&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-12-08T06:34:15.780" Title="ORM domain design pitfalls" Tags="&lt;design-patterns&gt;&lt;object-oriented&gt;&lt;orm&gt;&lt;domain-model&gt;&lt;rdbms&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="24528" PostTypeId="1" CreationDate="2010-12-08T01:11:51.403" Score="1" ViewCount="199" Body="&lt;p&gt;Is there a standard way for email mailservers to store and retrieve messages?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do they use e.g. .eml files, relational databases, NOSQL?&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-12-08T01:45:48.103" ClosedDate="2010-12-09T13:03:08.473" Title="How does a mailserver store email?" Tags="&lt;email&gt;&lt;persistence&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="1" />
  <row Id="24529" PostTypeId="2" ParentId="24398" CreationDate="2010-12-08T01:12:12.360" Score="-1" ViewCount="" Body="&lt;p&gt;You give up all hope of ever succeeding and apply at McBurger. LOL&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Losing a course in university is pretty serious but I remember a quote from one of my favorite books&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Just remember, it's important, but it's not THAT important.&quot; &#xA;Herb Cohen&#xA;You can negotiate anything&lt;/p&gt;&#xA;" OwnerUserId="4612" LastEditorUserId="4612" LastEditorDisplayName="" LastEditDate="2010-12-08T01:18:11.233" LastActivityDate="2010-12-08T01:18:11.233" CommunityOwnedDate="2011-04-09T16:55:22.410" />
  <row Id="24530" PostTypeId="2" ParentId="24412" CreationDate="2010-12-08T01:14:18.053" Score="3" ViewCount="" Body="&lt;p&gt;I wind up implementing split/join ala Perl in languages that don't have it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also have reimplemented atoi and itoa in C more times than I want to think about (embedded systems junk).&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-08T01:14:18.053" />
  <row Id="24531" PostTypeId="2" ParentId="7516" CreationDate="2010-12-08T01:19:08.313" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.grails.org/&quot; rel=&quot;nofollow&quot;&gt;Grails&lt;/a&gt; (obviously!)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;RESTful URIs as standard&lt;/li&gt;&#xA;&lt;li&gt;GORM - domain-centric ORM framework with support for RDBMS, NOSQL or a combination of different data storage platforms&lt;/li&gt;&#xA;&lt;li&gt;Good support for RESTful WebServices.&lt;/li&gt;&#xA;&lt;li&gt;Good support for testing and unit testing including &lt;a href=&quot;http://www.grails.org/plugin/geb&quot; rel=&quot;nofollow&quot;&gt;seamless integration of browser-based functional testing&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/1359534/just-how-scalable-is-grails&quot;&gt;Scalable&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-12-08T01:19:08.313" />
  <row Id="24532" PostTypeId="2" ParentId="24485" CreationDate="2010-12-08T01:44:11.840" Score="4" ViewCount="" Body="&lt;p&gt;some people don't realize that JS is fully object oriented. You can create something that works just like a class:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function Car() {&#xA;    this.publicField = &quot;bad&quot;;&#xA;    var privateField = &quot;good&quot;;&#xA;    var self = this;&#xA;&#xA;    this.publicMethod = function() {&#xA;        alert(&quot;I can access &quot; + this.publicField + &quot; and &quot; + privateField);&#xA;    }&#xA;&#xA;    function privateMethod() {&#xA;        alert(&quot;I can access &quot; + self.publicField + &quot; and &quot; + privateField);&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;you can instantiate those classes:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var car = new Car();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and it supports &lt;a href=&quot;http://phrogz.net/js/classes/OOPinJS2.html&quot; rel=&quot;nofollow&quot;&gt;inheritance&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;function Vehicle() { /* define class */ }&#xA;&#xA;function Truck() { /* define class */ }&#xA;Truck.prototype = new Vehicle();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and can even add methods to existing classes:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Array.prototype.remove = function() {&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If you'd like to learn more about JavaScript's OO support, I highly recommend the &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596101996&quot; rel=&quot;nofollow&quot;&gt;Rhino book&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7610" LastEditorUserId="7610" LastEditorDisplayName="" LastEditDate="2010-12-08T13:59:27.530" LastActivityDate="2010-12-08T13:59:27.530" CommentCount="3" />
  <row Id="24533" PostTypeId="2" ParentId="24528" CreationDate="2010-12-08T01:45:48.103" Score="11" ViewCount="" Body="&lt;p&gt;It depends on the mailserver. Some mailservers use the mbox format. (Actually, they usually use mutually incompatible variants of the mbox format.) Some mailservers use the maildir format. Some use the maildir++ format. Some use the MIX format. Some use their own centralized, specialized database (e.g. Microsoft Exchange, Cyrus IMAP). Some store them in Berkeley DB databases. Some store them in SQL databases. I believe someone wrote a proof-of-concept mailserver that stores messages in a Git repository. I am willing to bet that Google Mail stores them in BigTable. HotMail probably stores them in SQL Server. I think Lotus Notes stores them in what would be called a NoSQL document store, if that word had existed when Notes was created. (In fact, Damien Katz, the author of CouchDB worked on Notes, and has often described CouchDB as &quot;the good bits of Notes&quot;.)&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-12-08T01:45:48.103" CommentCount="5" />
  <row Id="24535" PostTypeId="2" ParentId="19589" CreationDate="2010-12-08T01:59:52.707" Score="0" ViewCount="" Body="&lt;p&gt;I don't think there's an issue here. Cobertura instruments your code, then generates a report using that instrumentation. After that, the instrumented byte code can be thrown away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've used Cobertura as part of a maven build, and the bytecode that goes in the war file is not the instrumented bytecode (which you wouldn't want anyway since it specifically adds extra statements to your code, slightly slowing it down).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're only bound by the GPL when you &lt;em&gt;distribute&lt;/em&gt; the code. So as long as you don't ship the instrumented bytecode out somewhere (not sure why you'd ever want to do this anyway) you've got nothing to worry about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, Cobertura is being used as a tool and doesn't affect your code. Just as you wouldn't have to open source your project if you wrote it using Linux as your OS.&lt;/p&gt;&#xA;" OwnerUserId="7610" LastActivityDate="2010-12-08T01:59:52.707" />
  <row Id="24536" PostTypeId="2" ParentId="24498" CreationDate="2010-12-08T02:25:38.500" Score="7" ViewCount="" Body="&lt;p&gt;Well we all seem to be showing the pilgrim's progress... &lt;em&gt;(if you make it to the end, you deserve a medal)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 7] &lt;strong&gt;Sinclair BASIC&lt;/strong&gt;: Initially typing out one-liners from magazines and books.  Then on to writing the old &quot;10 PRINT &quot;Hello World&quot; 20 GOTO 10&quot;, and from there, little games of my own, question/answer at first, then more substantial, pixmap graphics and simple sound by age 10.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 9] &lt;strong&gt;Grass/Grasshopper&lt;/strong&gt;: BBC Computers Database and Spreadsheet software respectively.  Learn initial database design, tables/fields and spreadsheet formula functions.  Really adored these, so much power, so simply.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 11] &lt;strong&gt;BBC BASIC&lt;/strong&gt;: First at school, writing text adventure games &lt;strong&gt;&lt;em&gt;in class&lt;/em&gt;&lt;/strong&gt;, it was compulsory in my school for everyone, this is a state school, I kid you not.  Then at home on my Acorn A3000, the real work horse of my development.  Simple games, maths programs to help me with my work, basic 2D graphical games.  PROCedures and FNunctions start to come in to play, elements of reusable code.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 11] &lt;strong&gt;Logo&lt;/strong&gt;: Lisp like language, concerned with geometry primarily, a massive boon to my maths.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 13] &lt;strong&gt;Pascal&lt;/strong&gt;: First compiled language.  A slow start, as being used to interpreted languages, and having only a 100KB disc space allowance on the school system, the additional effort was a pain.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 13] &lt;strong&gt;ARM Assembler&lt;/strong&gt;: Finally starting to understand the hardware underneath.  Development of new operating system APIs, new command line utilities, etc. RISC assembler languages are beautiful.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 13] &lt;strong&gt;Acorn WIMP, in ARM Assembler&lt;/strong&gt;: First move in to GUI programming, making desktop applications.  Learning about resource files, window templates, event driven programming.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 14] &lt;strong&gt;Turbo Pascal&lt;/strong&gt;: A proper Object-Orientated language at last, took to it like a duck to water.  Started using PCs a lot more because of this, and was mainly interested in writing command line utilities.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 14] &lt;strong&gt;DOS&lt;/strong&gt;: Not basic usage, but batch file programming, very useful.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 15] &lt;strong&gt;x86 Assembler&lt;/strong&gt;: First CISC assembly language, and first foray in to interrupts and hardware control.  Usually keyboard and timer event overrides, and communications programming came along via Novell Netware and IPX/SPX packet-based communications.  So asynchronous programming came in here.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 15] &lt;strong&gt;Lego DACTA&lt;/strong&gt;: Robotic control via a LOGO/Lisp like language, first robotic control and AI like software.  Also managed to build a scanner out of lego, with working software!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 15] &lt;strong&gt;VBA&lt;/strong&gt;: Microsoft Office (v4) introduced VBA to me, first in Excel then Access.  First programmatic control of other software, first internal scripting language I was exposed to.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 15] &lt;strong&gt;SQL&lt;/strong&gt;: Jet-engine via Access, T-SQL.  All features, indexes, sub-queries, grouping, transactions, all included.  But not locking issues just yet.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 15] &lt;strong&gt;HTML/CSS&lt;/strong&gt;: First markup language, still in its infancy - really enjoyed it, but did not have web access, so on the back burner it went.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 17] &lt;strong&gt;Turbo Vision&lt;/strong&gt;: Within Turbo Pascal (and Turbo C++) there was a framework called Turbo Vision which is basically a windows environment for DOS.  Using this really advanced my OOP skills and event driven programming to a new level.  Wrote my own XMS memory library for Turbo Pascal as the 640K limit it had was too restrictive and code overlays (anyone remember them!) only help so much.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 18] &lt;strong&gt;Java&lt;/strong&gt;: Heading to university soon, have heard about wonderful fairly new OOP language called Java.  I spend a summer learning this, writing little games in Swing.  Excellent OOP exposure, but so verbose!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 18] &lt;strong&gt;Haskell&lt;/strong&gt;: Functional programming at last, possibly the most beautiful of paradigms, but underused.  New discoveries: Monads, List Comprehension, Lambda Calculus, &lt;strong&gt;Currying&lt;/strong&gt;!!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 18] &lt;strong&gt;Prolog&lt;/strong&gt;: Logic programming paradigm, facts and rules and cuts.  Very hard to comprehend at times, but fantastically powerful for certain applications.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 18] &lt;strong&gt;APL&lt;/strong&gt;: First vector-based (linear algebra primarily) language, amazingly hard to read though due to cryptic symbols that require a keyboard overlay to work with properly.  Worth checking out, still in use in financial institutions.  Possibly the most terse language I've ever seen.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 19] &lt;strong&gt;FSM / Karnaugh Maps&lt;/strong&gt;: Finite State Machines and Karnaugh maps are essential to hardware design and really help you understand step-wise logic, as used within circuitry.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 19] &lt;strong&gt;C&lt;/strong&gt;: About time.  Once I used this I stopped using Pascal as my primary compiled language.  Read K&amp;amp;R and even though I knew all of what they were talking about, it was a major change in programming quality.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 19] &lt;strong&gt;Compiler Writing/Parsing&lt;/strong&gt;: In Haskell mainly, also in C, learning how to tokenise, formal grammars, setting up parse trees, converting to assembler, static analysis to find optimisations, dead code, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 19] &lt;strong&gt;Z&lt;/strong&gt;: Formal specification language in predicate logic.  Once you have learnt this &lt;code&gt;assert()&lt;/code&gt; seems for kiddies!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 19] &lt;strong&gt;Turing Machines&lt;/strong&gt;: The fundamental basis of what constitutes a programming language.  Once you can write a program as a Turing machine, you can write anything.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 19] &lt;strong&gt;Operating System development&lt;/strong&gt;: Via MINIX, a small (mini) Linux OS - having to write compiler level drivers, learning about stack switching, process management and forking, file system design, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 19] &lt;strong&gt;Hardware Compilation, FPGA&lt;/strong&gt;: Learning how to convert code to FPGA code, NAND-gate programming.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 20] &lt;strong&gt;Perl&lt;/strong&gt;: The buck stopped here.  Read &quot;Programming Perl&quot; by Larry Wall and fell in love.  First CGI programming, proper scripting/text processing in a nice terse language, with OOP - perfect.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 20] &lt;strong&gt;PCRE (RegExp)&lt;/strong&gt;: With Perl came RegExp, and after reading &quot;Mastering Regular Expressions&quot; and becoming less scared, saw the amazing power of them.  Still a daily use item today.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 20] &lt;strong&gt;Concurrency&lt;/strong&gt;: Learnt concurrency modelling, and distributed systems techniques in Java mainly.  Semaphores, RPC, deadlock avoidance, authentication systems.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 20] &lt;strong&gt;R &amp;amp; Mathematica&lt;/strong&gt;: Advanced mathematical programming languages were now on the scene.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 20] &lt;strong&gt;C++&lt;/strong&gt;: A language I have not often used, but the first other than Java where I made heavy use of &lt;em&gt;Template-based&lt;/em&gt; (STL) like code, iterators, streams and such like.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 21] &lt;strong&gt;Scheme/Lisp&lt;/strong&gt;: Via GIMP at first, Scheme is very fun, but for some reason not used much.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 21] &lt;strong&gt;Compression / Imaging&lt;/strong&gt;: Learnt compression algorithms and image/colour representations/modelling, and video motion tracking.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 21] &lt;strong&gt;Data mining / Dynamic Programming&lt;/strong&gt;: Researched and exposed to advanced data mining methods, pattern analysis/finding, data filtering.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 21] &lt;strong&gt;Parallel Programming&lt;/strong&gt;: MPI/PVM libraries, Grid computing - this became my specialist area for a fair while.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 22] &lt;strong&gt;Encryption/Advanced Security&lt;/strong&gt;: Learning about RSA, HMAC, Kerberos, all the various identification and encryption algorithms.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 22] &lt;strong&gt;Performance Analysis&lt;/strong&gt;: Code and algorithm analysis in speed, space, anything.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 22] &lt;strong&gt;Operations Research&lt;/strong&gt;: Advanced linear algebra methods for portfolio analysis and a host of other tasks, this really expands your ability to solve difficult financial/mathematical problems.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 27] &lt;strong&gt;e-commerce&lt;/strong&gt;: Payment gateway handling, security, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 27] &lt;strong&gt;Flash&lt;/strong&gt;: Argh.  Why do people let Adobe write software?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 28] &lt;strong&gt;jQuery&lt;/strong&gt;: Web programming became dynamic, granted Javascript was around before, but until jQuery came along it was not fun or easy enough and so it took off for me.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Age 30] &lt;strong&gt;F#&lt;/strong&gt;: Back when I learnt Haskell, I dreamed of a language that mixed imperative programming with good OOP and essentially was functional.  I spent a long time thinking about it and designing it.  I found F# many years before Visual Studio 2010 came out, but did not have reason to use it sadly.  Now I do and it is flipping brilliant - for an Microsoft language that is saying something!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;There is more, of course, most languages were left out, and modern day stuff seems pointless as mostly it is just more of the same sadly once you get to the world of work.  Major paradigm shifts listed above only, and new knowledge that changed the way I thought about programming tasks.  I would mention learning PostScript, as that was quite interesting, but it is similar to Lisp, and I can not recall when I learnt it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would be interesting to put maths development alongside, so many algorithms, algebraic techniques, predicate logic, calculus, set theory, linear algebra (I've mentioned some as they are so directly applicable), geometry!  Not to mention legal training and business skills, they get used daily in consultancy within the field.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note the sparseness from 22 up, work often stifles opportunities to learn new techniques.  Though I have learnt a lot of new languages since then, few have come with new techniques.  Have there been any major new fields emerging in the last 8 years?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As few will have read this far, sorry for the length.  That was very cathartic, never listed it before like that.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastEditorUserId="7990" LastEditorDisplayName="" LastEditDate="2010-12-08T03:43:21.553" LastActivityDate="2010-12-08T03:43:21.553" CommentCount="10" />
  <row Id="24537" PostTypeId="2" ParentId="24526" CreationDate="2010-12-08T02:59:34.870" Score="3" ViewCount="" Body="&lt;p&gt;Domains which have entities where the number of attributes (properties, parameters) that can be used to describe them is potentially vast, but the number that will actually apply to a given entity is relatively modest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example of such a domain would be a medical practice, where there are a vast number of possible symptoms, but the number of symptoms that any patient might have at any given time is comparatively small.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These kinds of domains are typically represented using an &lt;a href=&quot;http://en.wikipedia.org/wiki/Entity-attribute-value_model&quot; rel=&quot;nofollow&quot;&gt;Entity-Attribute-Value (EAV)&lt;/a&gt; model.  This data representation is analogous to space-efficient methods of storing a sparse matrix, where only non-empty values are stored.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the case of a medical domain, the problem space is complicated by the fact that any given symptom or medical test can have its own set of custom attributes, just as products sold in an online store can have custom specifications.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, online stores have to deal with this problem also.  A book has a &quot;number of pages&quot; specification, while a memory module has a &quot;number of bytes&quot; specification, and the two attributes are not related at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So a set of attributes appropriate for each product is chosen from an attributes table.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;strong&gt;Attributes&lt;/strong&gt; table might look like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;AttributeID&#xA;AttributeDescription&#xA;UnitsID --&amp;gt; FK to Units table&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The &lt;strong&gt;ProductAttributes&lt;/strong&gt; table might look like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;ProductAttributeID&#xA;ProductID&#xA;AttributeID --&amp;gt; FK to Attributes table&#xA;Value&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Notice that &lt;em&gt;Number of Bytes&lt;/em&gt; and &lt;em&gt;Number of Pages&lt;/em&gt; aren't features of the database schema. Instead, they are soft-coded into the tables.  So there is no way to represent these features as part of the domain design.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-08T03:06:03.863" LastActivityDate="2010-12-08T03:06:03.863" CommentCount="3" />
  <row Id="24538" PostTypeId="1" CreationDate="2010-12-08T03:19:09.443" Score="12" ViewCount="252" Body="&lt;p&gt;I'll preface my question with a disclaimer - I am not an engineer, I'm just someone who works with them full-time, in a learning and development capacity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given that, one of the comments I get regularly from the engineers I'm tasked with developing is that they feel that they're having solutions (both technical and non-technical) for development &quot;pushed&quot; at them vs. anyone from my field consulting with them to determine what they really need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is - if you could give your company a list of the top 3-5 things they could do - in a classroom, or elsewhere - to develop meaningful skills that would help you be a better engineer, a better employee, and one more likely to STAY with the company for the long haul, what would make the cut and why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance for your responses.&lt;/p&gt;&#xA;" OwnerUserId="8644" LastEditorUserId="162" LastEditorDisplayName="" LastEditDate="2010-12-08T04:07:06.490" LastActivityDate="2011-02-21T06:22:15.510" Title="How could your company's learning/development department best serve you?" Tags="&lt;career&gt;" AnswerCount="8" CommentCount="1" FavoriteCount="1" />
  <row Id="24539" PostTypeId="2" ParentId="24538" CreationDate="2010-12-08T03:37:09.900" Score="1" ViewCount="" Body="&lt;p&gt;Provide a feedback and suggestion mechanism. Collect regular samples of what people want. Collect periodic samplings of our development goals (if any) and try to correlate these to possible courses. Use technical resources to develop your course list or lesson plans, etc when it is not in your domain and there is a high demand for a number of courses or classes on the topic.&lt;/p&gt;&#xA;" OwnerUserId="6518" LastActivityDate="2010-12-08T03:37:09.900" CommentCount="2" />
  <row Id="24540" PostTypeId="2" ParentId="610" CreationDate="2010-12-08T03:57:02.060" Score="4" ViewCount="" Body="&lt;h1&gt;Ruby Block&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Pass anonymous function as a parameter&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;# fetch names of all users&#xA;names = users.map { |user| user.name }&#xA;&#xA;# sum of array&#xA;sum = numbers.inject { |sum, value| sum + value }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="9217" LastActivityDate="2010-12-08T03:57:02.060" CommunityOwnedDate="2010-12-08T03:57:02.060" />
  <row Id="24541" PostTypeId="2" ParentId="24460" CreationDate="2010-12-08T04:05:39.277" Score="2" ViewCount="" Body="&lt;p&gt;Symbol in Ruby is basically the same thing as symbol in real world. It is used to represent or name something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Symbols are very commonly used to represent some kind of state, for example&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;order.status = :canceled&#xA;order.status = :confirmed&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You can also look at symbol as instant enum. You don't need to define a symbol, you just use it. &lt;a href=&quot;http://www.randomhacks.net/articles/2007/01/20/13-ways-of-looking-at-a-ruby-symbol&quot; rel=&quot;nofollow&quot;&gt;This article explains it in great detail.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9217" LastActivityDate="2010-12-08T04:05:39.277" CommentCount="1" />
  <row Id="24542" PostTypeId="1" AcceptedAnswerId="24544" CreationDate="2010-12-08T04:24:23.517" Score="6" ViewCount="493" Body="&lt;p&gt;Hello!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have read a lot of threads about functional programming languages lately (almost in the past year, in fact). I would really like to pick one and learn it thoroughly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Last [course] semester, I have been introduced to Scheme. I loved it. Loved the extreme simplicity of syntax, the &lt;a href=&quot;http://en.wikipedia.org/wiki/Homoiconicity&quot; rel=&quot;nofollow&quot;&gt;homoiconicity&lt;/a&gt; principle, the macros (&lt;a href=&quot;http://en.wikipedia.org/wiki/Hygienic_macro&quot; rel=&quot;nofollow&quot;&gt;hygienic&lt;/a&gt; and non-hygienic), the n-arity of procedures, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with Scheme is it's an academic language. I don't think it is really used in production environments. I don't believe either that it is particularly good to have on our resume. So, I have been looking around for alternatives. There are many of them and they somehow all seem to have a similar level of popularity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some thoughts about some other functional languages I have considered yet:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Clojure: It sounds great because it can access the Java world, it is oriented towards scalability and concurrency, but isn't the Java world on an edge right now? I already know Java pretty well, but would it be wise to add even more energy on depending on the JVM?&lt;/li&gt;&#xA;&lt;li&gt;Haskell: Looks like a very appreciated language, but from what I have read, it's also more of an academic language.&lt;/li&gt;&#xA;&lt;li&gt;Lisp: It's been around since forever. It seems to have most of what I like from Scheme. It has a big community. For what I [think I] know, it is probably the most widely used functional programming language in industry(?).&lt;/li&gt;&#xA;&lt;li&gt;F#: Didn't really consider it. I'm not a big fan of MS stuff. I don't have the money to pay for their softwares (I could have them free from university alliances, but I'm more inclined to go with community-driven solutions). Though... I guess it would be the best career-oriented choice.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Tonight, I'm leaning towards Lisp. One week ago, it was Haskell. Before that it was Clojure. In the past year, I was doing some Scheme for fun, not pushing it for the reason you know. Now I would like to get serious (about learning one, about doing real projects with it, about maybe eventually professionally working with it). My problem is I would need to learn them all in depth before being able to choose one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any advice, suggestion, food for thought, or anything, is most welcome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="6742" LastActivityDate="2010-12-08T14:14:10.573" Title="Choosing a functional programming language (for me)." Tags="&lt;programming-languages&gt;&lt;advice&gt;&lt;functional-programming&gt;&lt;language-choice&gt;&lt;personal&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="4" />
  <row Id="24543" PostTypeId="2" ParentId="24542" CreationDate="2010-12-08T04:30:00.517" Score="2" ViewCount="" Body="&lt;p&gt;It looks like you've done your homework, so you probably already know this, but Scheme is a dialect of Lisp just like Common Lisp is. If you like a lot of things about Scheme, but don't like its academic nature, try Common Lisp. According to the &lt;a href=&quot;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&quot; rel=&quot;nofollow&quot;&gt;TIOBE index&lt;/a&gt;, it's the 13th most popular language vs Scheme at position 26.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Few of the languages you've mentioned appear on the job descriptions I've seen recently, though that might just be my small sample set. I personally will be learning Haskell, even though I don't expect to use that language directly in my job. The concepts of functional programming are more valuable to me for future program designs than the direct marketability of the language itself.&lt;/p&gt;&#xA;" OwnerUserId="7629" LastEditorUserId="7629" LastEditorDisplayName="" LastEditDate="2010-12-08T04:37:42.580" LastActivityDate="2010-12-08T04:37:42.580" CommentCount="3" />
  <row Id="24544" PostTypeId="2" ParentId="24542" CreationDate="2010-12-08T04:54:29.377" Score="8" ViewCount="" Body="&lt;p&gt;Since you want a &lt;em&gt;practical&lt;/em&gt;  &amp;nbsp;language:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/eoGsy.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Notice that Haskell and Lisp are used more than the others in industry, although there has been some recent interest in Clojure and F#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But look what happens when we add Scheme to the mix:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/TrRcV.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hmm, doesn't look so much like an academic language now, does it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, the above graph is probably a lie; the word &quot;scheme&quot; can appear in help wanted ads in other contexts besides programming languages. :) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So here is another graph that is probably (a little) more representative:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/2XrMk.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to explore a really kick-ass dialect of Scheme, have a look at &lt;a href=&quot;http://racket-lang.org/&quot; rel=&quot;nofollow&quot;&gt;Racket.&lt;/a&gt;  &lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-08T05:13:08.220" LastActivityDate="2010-12-08T05:13:08.220" CommentCount="6" />
  <row Id="24545" PostTypeId="2" ParentId="24542" CreationDate="2010-12-08T04:59:30.900" Score="4" ViewCount="" Body="&lt;p&gt;I dove into Haskell for a while, but the conclusion I came to was that it was a little too academic. It was very hard to do anything practical. In a pure functional language, things like IO just don't quite fit into the model, so you have to deal with monads. I determined I would have to put in a tremendous amount of time to be just barely competent, so I moved on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did Scheme in college. Might sound trivial, but all the parens really are distracting/annoying. Hard to go back to that after using languages like Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently I have been exploring F#. It is functional, but can also be imperative and object-oriented when you want to. This, along with being able to use any .NET libraries, makes it possible to easily mix your pure functional parts with more practical things like GUIs, IO and networking. You can get a standalone version of F#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=effc5bc4-c3df-4172-ad1c-bc62935861c5&amp;amp;displaylang=en&quot; rel=&quot;nofollow&quot;&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=effc5bc4-c3df-4172-ad1c-bc62935861c5&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1197" LastActivityDate="2010-12-08T04:59:30.900" CommentCount="4" />
  <row Id="24546" PostTypeId="2" ParentId="24538" CreationDate="2010-12-08T05:20:23.597" Score="13" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Subsidize/sponsor conference attendance.&lt;/strong&gt;  Make sure devs have the opportunity for paid time off and expenses to attend tech conferences in their field -- a minimum of once per year.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Community development time&lt;/strong&gt; Let devs spend a few work hours per month on open source projects, so they can stay in touch with the development community and on top of the latest tech.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Learning lunches&lt;/strong&gt; This is when the company buys food and sets aside an extra-long lunch period for devs to eat together and take turns presenting on tech topics.  Once or twice per month is ideal.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Build a tech library.&lt;/strong&gt;  A corporate Safari subscription is a good start, but don't fail to also include classics like The Art of Computer Programming.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The thing about being a dev is that if you are &lt;em&gt;really&lt;/em&gt; good at your job, the lag time between relevant tech being created, and that tech making it in to standard corporate learning avenues, makes those traditional methods fairly useless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's more effective to provide excellent reference resources, and most importantly, opportunities to learn directly from other devs.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-08T05:20:23.597" CommentCount="8" />
  <row Id="24547" PostTypeId="2" ParentId="24398" CreationDate="2010-12-08T05:21:06.467" Score="1" ViewCount="" Body="&lt;p&gt;I follow the Polya princinple: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;If there is a problem you can't solve, then there is an easier problem you can't solve: find it.&quot; &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;George Polya&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The beauty of the principle is that at some point there will be a problem that is small enough and that you will be able to solve which, hopefully if you did things right, will allow you to bootstrap a solution to the original problem. This principle has not failed me yet.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-08T05:21:06.467" CommunityOwnedDate="2011-04-09T16:55:22.410" />
  <row Id="24548" PostTypeId="2" ParentId="24538" CreationDate="2010-12-08T05:25:08.007" Score="0" ViewCount="" Body="&lt;p&gt;I hate internal training. The best thing internal training can do is pay for external training of my choice. There is &lt;strong&gt;exceptional&lt;/strong&gt; external training out there far better than any internal training could ever hope to be. Paying for external training will both benefit the company with more skilled employees and contribute to increased retention as external training is generally considered to be a perk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Per comment:  The absolute best training I ever attended was the &lt;a href=&quot;http://idesign.net/idesign/DesktopDefault.aspx?tabindex=0&amp;amp;tabid=23&quot; rel=&quot;nofollow&quot;&gt;Architect's Master Class&lt;/a&gt;.  Period, full stop, there is none better.  I also attended Guerrilla COM when it was taught by Don Box and &lt;a href=&quot;http://www.develop.com/training-course/guerrilla-.net&quot; rel=&quot;nofollow&quot;&gt;Guerrilla .NET&lt;/a&gt; when it was taught by Mike Woodring and Keith Brown.  Believe me, you will get more out of spending a week with &lt;a href=&quot;http://idesign.net/idesign/DesktopDefault.aspx?tabindex=3&amp;amp;tabid=5&quot; rel=&quot;nofollow&quot;&gt;Juval Lowey&lt;/a&gt; than you will out of a year of internal training.&lt;/p&gt;&#xA;" OwnerUserId="9251" LastEditorUserId="9251" LastEditorDisplayName="" LastEditDate="2010-12-08T19:55:05.927" LastActivityDate="2010-12-08T19:55:05.927" CommentCount="2" />
  <row Id="24549" PostTypeId="2" ParentId="24412" CreationDate="2010-12-08T05:33:28.223" Score="2" ViewCount="" Body="&lt;p&gt;Scala standard library lacks some most commonly used higher order functions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two such functions that I need most often:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// #1: unfold&#xA;def unfold[T, R](init: T)(f: T =&amp;gt; Option[(R, T)]): List[R] = f(init) match {&#xA;  case None =&amp;gt; Nil&#xA;  case Some(r, v) =&amp;gt; r :: unfold(v)(f)&#xA;}&#xA;&#xA;// #2: zipWith&#xA;def zipWith[A, B, C](xs: List[A], ys: List[B])(f: (A, B) =&amp;gt; C): List[C] = {&#xA;  (xs, ys).zipped.map(f)&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1968" LastEditorUserId="1968" LastEditorDisplayName="" LastEditDate="2010-12-08T05:40:20.663" LastActivityDate="2010-12-08T05:40:20.663" />
  <row Id="24550" PostTypeId="2" ParentId="24542" CreationDate="2010-12-08T05:36:09.533" Score="2" ViewCount="" Body="&lt;p&gt;Actually, if you were able to implement a reasonably complex system in Scheme, you'd be fairly desirable at companies where you'd probably want to work. Earlier in my career I ran into some students who had done a fair amount of work in Scheme, and the only time it was a disadvantage was when they were unable to explain their work or didn't actually understand it well enough to implement basic data structures and algorithms within a reasonable amount of time. I always let candidates answer such questions in their preferred language; I did run into some people who thought that they were best at Scheme who managed to struggle quite a bit with things that should be easy, like adding an element to a linked list, which mystified me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you were able to &quot;get&quot; Scheme well enough to write even an average web app, that would be a pretty good selling point at most serious software companies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you were interviewing at a &quot;blub&quot; shop and the developers just thought you were weird because of your proficiency at Scheme or Haskell or F#, you probably wouldn't want to work there. In most cases, competent developers get their choice of gigs, so don't sweat &quot;practicality&quot; unless the only options you can imagine in your future are corporate. Work on being competent, flexible, and breaking down problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;College isn't about practicality. It's about creating a safe environment to explore and learn. That is, in fact, useful, even if you end up writing ordinary software for the rest of your career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, I don't see why you'd want to limit to just one of those choices so soon. You could easily get a sense of all four of the languages in about 4 weeks, then pick one to concentrate on that meshes best with your current whims. Then go back to another one of your options and try to implement something similar. Move on to something more complex, and consider your options again. Experimentation is good. Unless you're trying to make a living next month, you don't need to become a specialist yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've written some in Scheme, F#, Emacs Lisp, and Common Lisp, and read at least a bit of Haskell, at least occasionally over the last few years. I can't say I'm an expert in any of them, but each excursion into those languages has benefited me in all the other languages that I work in professionally (C#, Java, Ruby, and occasionally Boo, Perl and Python). Curiosity will build you a more enduring, fulfilling career than anything else.&lt;/p&gt;&#xA;" OwnerUserId="7080" LastActivityDate="2010-12-08T05:36:09.533" CommentCount="1" />
  <row Id="24551" PostTypeId="2" ParentId="24412" CreationDate="2010-12-08T06:01:42.117" Score="2" ViewCount="" Body="&lt;p&gt;No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do most of my coding in Java, and best practice is to reuse &quot;utils&quot; from Apache Commons libraries and similar projects.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are objective about it, there are few cases where your own &quot;utils&quot; collection will be a significant improvement on what other people have already done.  And if it is not an improvement, then your utils library is probably a waste of development time, and a nuisance / burden for future maintainers.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-12-08T06:01:42.117" />
  <row Id="24552" PostTypeId="2" ParentId="23404" CreationDate="2010-12-08T06:21:39.077" Score="0" ViewCount="" Body="&lt;p&gt;I think a call to an attorney may be premature. You may want to consult with a collection agency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They may not be able to help you with your current case, unless you have documentary evidence to support your claim (invoices and account statements may work for some agencies; signed contracts plus invoice history may be required for others). However, even if you can't find one who will help you with this one, they'll probably tell you what kind of documentation you'd need to engage them for future projects, should that ever become necessary again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do engage a collection agency, they'll probably take a cut of whatever they recover; some will simply purchase the debt at a (substantial) discount. Some of them simply add a fee that they bill to the recipient, and they may even recover interest charges. Most likely they will be meaner than you, and they'll probably be more persistent than you if they do take on the case. They're likely to be as effective as an attorney, and the cost burden will be pretty clear to you up front, whereas an attorney is more likely to bill as many hours as it takes until you give up.&lt;/p&gt;&#xA;" OwnerUserId="7080" LastActivityDate="2010-12-08T06:21:39.077" />
  <row Id="24553" PostTypeId="2" ParentId="24526" CreationDate="2010-12-08T06:34:15.780" Score="1" ViewCount="" Body="&lt;p&gt;Referencing data that can change, in a record that shouldn't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen a number of implementations that had something like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Order&#xA;    Id : int&#xA;    OrderDate : DateTime&#xA;&#xA;OrderProduct&#xA;    Id : int&#xA;    OrderId : FK of Order&#xA;    ProductId : FK of Product&#xA;    Quantity : int&#xA;    Cost : Decimal&#xA;&#xA;Product&#xA;    Id : int&#xA;    Description : string&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The code ends up looking something like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Order&#xA;{&#xA;    int Id;&#xA;    DateTime OrderDate;&#xA;    List&amp;lt;OrderProduct&amp;gt; OrderLines;&#xA;&#xA;    AddProduct(Product p, int quantity)&#xA;    {&#xA;        this.OrderLines.Add(new OrderProduct(this, p, q));&#xA;    }&#xA;}&#xA;&#xA;class OrderProduct&#xA;{&#xA;    int Id;&#xA;    Product Product;&#xA;    Order Order;&#xA;    int Quantity;&#xA;    Decimal Cost;&#xA;&#xA;    OrderProduct(Order o, Product p, int quantity)&#xA;    {&#xA;        this.Order = o;&#xA;        this.Product = p;&#xA;        this.Quantity = q;&#xA;        this.Cost = p.Cost * quantity * applicableTax;&#xA;    }&#xA;}&#xA;&#xA;class Product&#xA;{&#xA;    int Id;&#xA;    string Description;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It seems correct at first glance, the code works fine, and the data ends up being nicely normalized, and you can create and read orders correctly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Except that if you sell an order today, and you receive info from a supplier tomorrow that the description of something on the product has changed, those systems usually just update the product with the change. Now if you were to reproduce that order 2 days from now the contents of the order will have changed, and you'll be none the wiser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's some easy ways to solve this problem but I've seen it a number of times in varying degrees of severity.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-08T06:34:15.780" CommentCount="2" />
  <row Id="24554" PostTypeId="2" ParentId="24538" CreationDate="2010-12-08T06:47:10.593" Score="0" ViewCount="" Body="&lt;p&gt;One of the thing to do will be to give the developers some free time to work on their favorite technology and/or personal project in the office time. Create a forum for such ideas and let the developers share their ideas with each other. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-08T06:47:10.593" CommentCount="1" />
  <row Id="24555" PostTypeId="1" CreationDate="2010-12-08T06:56:01.703" Score="6" ViewCount="225" Body="&lt;p&gt;I have completed my post graduation in Msc(comp sci)-2010. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is  working in &quot;Classic ASP&quot; today good for me in the future?  Because I am fresher and I have learned ASP.NET 3.5 version. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please let me know your thoughts on whether it really matters to my career that it is it's old technology.&lt;/p&gt;&#xA;" OwnerUserId="9317" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-08T11:32:15.107" LastActivityDate="2011-03-11T18:57:42.413" Title="Is working in ''Classic Asp'' good for me for the future?" Tags="&lt;programming-languages&gt;&lt;.net&gt;&lt;software-developer&gt;" AnswerCount="6" />
  <row Id="24556" PostTypeId="2" ParentId="24412" CreationDate="2010-12-08T07:02:23.633" Score="5" ViewCount="" Body="&lt;p&gt;I have a Java Type Converter. It has a public signature&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public static &amp;lt;T&amp;gt; T convert(Object sourceValue, Class&amp;lt;T&amp;gt; destinationType)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and it does its best to convert the source value to the destination type. It essentially lets you do dynamic typing within a statically typed language :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's actually useful with boxed numeric types. How irritating it is that you can't put an &lt;code&gt;Integer&lt;/code&gt; to where &lt;code&gt;Long&lt;/code&gt; is expected? No problem, just convert it. Or what if your function expects a &lt;code&gt;double&lt;/code&gt;, but you have a &lt;code&gt;null&lt;/code&gt; to put there? Kaboom, a NPE. But put it through &lt;code&gt;convert&lt;/code&gt;,  and you get a &lt;code&gt;NaN&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-12-08T08:06:23.767" LastActivityDate="2010-12-08T08:06:23.767" CommentCount="2" />
  <row Id="24557" PostTypeId="2" ParentId="24412" CreationDate="2010-12-08T07:19:25.670" Score="1" ViewCount="" Body="&lt;p&gt;I found I was writing a lot of the same code in django, Do this common thing, then this common thing, and finally that common thing.  Basically get one or more items from the database, or save the results of a form.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If Each one of these things occurs just once in a view, then I can use the django generic views.  Unfortunately, those are not really composable, and I needed to do several things in sequence.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I went and wrote an even more generic views library, one that worked by first building a list of actions from relevant querysets (or whatever), and then wrapped the list into a view.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I still have to write some views by hand, but these are usually complex enough that there's not much that's reusable in them.  All of the boilerplate just lands elsewhere, either a generic view, or as a view decorator (often a decorated generic view).  This typically ends up being about 10% of the handlers I write, since some generic handler can do everything else.&lt;/p&gt;&#xA;" OwnerUserId="8656" LastActivityDate="2010-12-08T07:19:25.670" />
  <row Id="24558" PostTypeId="1" AcceptedAnswerId="24623" CreationDate="2010-12-08T07:28:37.807" Score="3" ViewCount="453" Body="&lt;p&gt;Hi,  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is just a wondering I had while reading about interpreted and compiled languages.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Ruby&lt;/strong&gt; is no doubt an interpreted language, since source code is compiled by an interpreter at the point of execution.&lt;br&gt;&#xA;On the contrary &lt;strong&gt;C&lt;/strong&gt; is a compiled language, as one have to compile the source code first according to the machine and then execute. This results is much faster execution.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now coming to &lt;strong&gt;Python&lt;/strong&gt;:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A python code (&lt;strong&gt;somefile.py&lt;/strong&gt;) when imported creates a file (&lt;strong&gt;somefile.pyc&lt;/strong&gt;) in the same directory. Let us say the import is done in a python shell or django module. After the import I change the code a bit and execute the imported functions again to find that it is still running the old code. This suggests that *.pyc files are compiled python files similar to executable created after compilation of a C file, though I can't execute *.pyc file directly.&lt;/li&gt;&#xA;&lt;li&gt;When the python file (somefile.py) is executed directly ( ./somefile.py or python somefile.py ) no .pyc file is created and the code is executed as is indicating interpreted behavior. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These suggest that a python code is compiled every time it is imported in a new process to crate a .pyc while it is interpreted when directly executed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So which type of language should I consider it as? Interpreted or Compiled?&#xA;And how does its efficiency compare to interpreted and compiled languages?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;According to wiki's &lt;a href=&quot;http://en.wikipedia.org/wiki/Interpreted_language#Languages_usually_compiled_to_a_virtual_machine_code&quot; rel=&quot;nofollow&quot;&gt;Interpreted Languages&lt;/a&gt; page it is listed as a language compiled to Virtual Machine Code, what is meant by that?&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Update&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Looking at the answers it seems that there cannot be a perfect answer to my questions. Languages are not &lt;strong&gt;only interpreted&lt;/strong&gt; or &lt;strong&gt;only compiled&lt;/strong&gt;, but there is a spectrum of possibilities between interpreting and compiling.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the answers by aufather, mipadi, Lenny222, ykombinator, comments and wiki I found out that in python's major implementations it is compiled to bytecode, which is a highly compressed and optimized representation and is machine code for a virtual machine, which is implemented not in hardware, but in the bytecode interpreter.&lt;br&gt;&#xA;Also the the languages are not interpreted or compiled, but rather language implementations either interpret or compile code.&lt;br&gt;&#xA;I also found out about &lt;a href=&quot;http://en.wikipedia.org/wiki/Just-in-time_compilation&quot; rel=&quot;nofollow&quot;&gt;Just in time compilation&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as execution speed is concerned the various benchmarks cannot be perfect and depend on context and the task which is being performed.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please tell if I am wrong in my interpretations. &lt;/p&gt;&#xA;" OwnerUserId="7572" LastEditorUserId="7572" LastEditorDisplayName="" LastEditDate="2010-12-09T04:50:02.930" LastActivityDate="2010-12-09T04:50:02.930" Title="Python Interpreted or Compiled?" Tags="&lt;programming-languages&gt;&lt;python&gt;&lt;compilers&gt;&lt;efficiency&gt;&lt;interpreters&gt;" AnswerCount="4" CommentCount="7" />
  <row Id="24559" PostTypeId="2" ParentId="24558" CreationDate="2010-12-08T07:48:18.943" Score="1" ViewCount="" Body="&lt;p&gt;Virtual Machine Code is a more compact version of the original source code (byte code). It still needs to be interpreted by a virtual machine, since it is no machine code. It's easier and faster to parse than the original code written by a human being, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some virtual machines generate machine code while interpreting the virtual machine code for the first time (just in time compilation - JIT). The following invocations will use this machine code directly, which leads to faster execution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as i know Ruby &gt;= 1.9 uses a virtual machine like Python too.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-12-08T07:48:18.943" />
  <row Id="24560" PostTypeId="2" ParentId="24558" CreationDate="2010-12-08T07:52:05.397" Score="7" ViewCount="" Body="&lt;p&gt;Python will fall under byte code interpreted. .py source code is first compiled to byte code as .pyc. This byte code can be interpreted (official CPython), or JIT compiled (PyPy). Python source code (.py) can be compiled to different byte code also like IronPython (.Net) or Jython (JVM). There are multiple implementations of Python language. The official one is a byte code interpreted one. There are byte code JIT compiled implementations too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For speed comparisons of various implementations of languages you can try &lt;a href=&quot;http://shootout.alioth.debian.org/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-12-08T07:52:05.397" CommentCount="11" />
  <row Id="24561" PostTypeId="2" ParentId="24558" CreationDate="2010-12-08T07:55:11.803" Score="2" ViewCount="" Body="&lt;p&gt;The Python runtime runs custom object code(byte code) on a virtual machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The compilation process converts source code to object code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To speed things up, the object code (or byte code, if you prefer) is stored on disk, so it can be reused the next time the program is run.&lt;/p&gt;&#xA;" OwnerUserId="4522" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-12-08T14:25:31.757" LastActivityDate="2010-12-08T14:25:31.757" />
  <row Id="24562" PostTypeId="2" ParentId="24398" CreationDate="2010-12-08T08:09:26.857" Score="0" ViewCount="" Body="&lt;p&gt;In my experiece, sometimes there's problem that you can't solve, at least in time restriction. So seeking help as soon as possible, &lt;strong&gt;after some solving effort failed you&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember the rule of thumb: always look at the reason the boss hires you. Do whatever you think you can do for the best work result, and sometimes that's an early fail report (far better than a late one).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, if you think you may find the solution, feel free to try, but give your boss estimation about the risk and the time cost. It's their problem now.&lt;/p&gt;&#xA;" OwnerUserId="9202" LastActivityDate="2010-12-08T08:09:26.857" CommunityOwnedDate="2011-04-09T16:55:22.410" />
  <row Id="24563" PostTypeId="2" ParentId="22146" CreationDate="2010-12-08T08:12:45.390" Score="1" ViewCount="" Body="&lt;p&gt;I recommend &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1861007841&quot; rel=&quot;nofollow&quot;&gt;Expert One-on-One J2EE Design and Development&lt;/a&gt;. It's a very good book about J2EE, and is the theory basement of Spring Framework.&lt;/p&gt;&#xA;" OwnerUserId="9202" LastActivityDate="2010-12-08T08:12:45.390" CommunityOwnedDate="2011-01-22T00:43:07.640" />
  <row Id="24564" PostTypeId="2" ParentId="23331" CreationDate="2010-12-08T08:20:50.680" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;To be alone&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was almost alone or loved to be alone. Looking at the screen to find an answer, and self study stuffs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its is disgusting, but I changed it.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Developers, in my experience, try to be as social as possible while avoiding all human contact.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="9112" LastActivityDate="2010-12-08T08:20:50.680" CommunityOwnedDate="2010-12-08T08:20:50.680" />
  <row Id="24565" PostTypeId="1" AcceptedAnswerId="24585" CreationDate="2010-12-08T08:27:50.017" Score="4" ViewCount="335" Body="&lt;p&gt;Ours is a software concern and we have a team structured like so: manager-&gt;team leads-&gt;team members. We are following the agile programming model and trying to develop a product in a collaborative fashion. We have daily morning meetings with team members and their team leads to discuss progress and issues. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When it comes to TL-&gt;Manager, most of the time they do not have items to discuss on a daily basis since TL goals would be for weekly plan and such. Most of the time, we just discuss about resources and it is less technical. I just want suggestions on how the manager &amp;amp; team lead interaction should be and whether the current system we have is fine. Please share your thoughts or ideas.&lt;/p&gt;&#xA;" OwnerUserId="9318" LastEditorUserId="149" LastEditorDisplayName="" LastEditDate="2010-12-08T09:28:41.513" LastActivityDate="2010-12-08T15:05:54.980" Title="How often should a manager meet with his subordinate who is a team leader?" Tags="&lt;management&gt;" AnswerCount="5" CommentCount="6" />
  <row Id="24567" PostTypeId="1" AcceptedAnswerId="24595" CreationDate="2010-12-08T08:37:03.613" Score="6" ViewCount="455" Body="&lt;p&gt;Our company is hiring C++ developers and we have to estimate applicants skills based on resumes and (usually) code samples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find it problematic to decide whether I'm realistic in my assessments. For example, there was a guy who stated two software development jobs, 5 years of experience total. He claimed that he worked in a project for porting some operating system to new hardware and one of his duties was &quot;fixing bugs in the operating system&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I open the sample and see the following:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; char buffer[someSize];&#xA; strncpy( buffer, someString, someSize );&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;obviously this code will not null-terminate the destination once the string is of length equal to or greater than &lt;code&gt;someSize&lt;/code&gt; and the program might run into undefined behavior.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now my thought goes like this: &quot;that guy claims he fixed bugs in the operating system code and now he can't properly use a simplest C runtime function... WTF???&quot; and this motivates me to write a feedback to our HR that he can only qualify for a position right above the entry level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What bothers me I can't get rid of a feeling that I'm being too harsh and demanding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can I decide if my expectations are realistic or not in such situations? &lt;/p&gt;&#xA;" OwnerUserId="587" LastActivityDate="2010-12-08T18:53:22.780" Title="How do I assess whether my expectations to the interviewees are adequate?" Tags="&lt;jobs&gt;&lt;skills&gt;&lt;resume&gt;&lt;qualifications&gt;" AnswerCount="7" CommentCount="7" FavoriteCount="3" />
  <row Id="24569" PostTypeId="2" ParentId="24412" CreationDate="2010-12-08T08:58:04.603" Score="1" ViewCount="" Body="&lt;p&gt;Yes, but only for domain-specific idioms structures (like game-objects-specific containers). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As it's simple utility tools than anything complex, I'm not proud of anything there. I'm the unique user at the moment anyway so there is nothing to be proud of.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-12-08T08:58:04.603" />
  <row Id="24570" PostTypeId="1" AcceptedAnswerId="24597" CreationDate="2010-12-08T09:16:56.887" Score="3" ViewCount="282" Body="&lt;p&gt;I must help my TL(Team Lead has experience with C# and is a beginner in Delphi) to make requirements for a Delphi Developer position. So I've start to document this. Until now the list is:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Strong OOP skills.&lt;/li&gt;&#xA;&lt;li&gt;I/O operations,streams,handle exceptions, threads, data-aware components, reports&lt;/li&gt;&#xA;&lt;li&gt;Several algorithm problems(easy/medium)    &lt;/li&gt;&#xA;&lt;li&gt;SQL selects, stored procedures, database design&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Do you have others suggestions? Which are the &quot;common sense&quot; questions for a Delphi developer? Also, do you have any suggestions for questions for a Senior Delphi Developer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: At this moment we work on Delphi 7 but we will upgrade to 2010/XE in April(I hope...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best regards,&lt;br&gt;Radu&lt;/p&gt;&#xA;" OwnerUserId="8755" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-08T13:14:58.030" LastActivityDate="2010-12-08T22:31:45.677" Title="Delphi interview - requirements" Tags="&lt;interview-questions&gt;&lt;delphi&gt;" AnswerCount="6" CommentCount="1" />
  <row Id="24571" PostTypeId="2" ParentId="24398" CreationDate="2010-12-08T09:31:27.373" Score="0" ViewCount="" Body="&lt;p&gt;If hundred-million dollar projects can fail even with experienced people, you shouldn't worry about you failing as you are still a student.&#xA;I've had a problem to work on and I found that if it is something you get stuck on - you must record every attempt you made to solve it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That helps:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Proof of attempts done to solve a problem.&lt;/li&gt;&#xA;&lt;li&gt;Recording this type of failure is important so you learn from it and don't do it again a few days later thinking it will work.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="9319" LastActivityDate="2010-12-08T09:31:27.373" CommunityOwnedDate="2011-04-09T16:55:22.410" />
  <row Id="24572" PostTypeId="2" ParentId="24412" CreationDate="2010-12-08T09:32:29.797" Score="-2" ViewCount="" Body="&lt;p&gt;I am proud of those parts, that have unambiguous names (i.e. not utils, misc, helpers, etc.) ;)&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-12-08T09:32:29.797" />
  <row Id="24573" PostTypeId="2" ParentId="24567" CreationDate="2010-12-08T09:35:56.593" Score="16" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What bothers me I can't get rid of a feeling that I'm being too harsh and demanding.&#xA;  How can I decide if my expectations are realistic or not in such situations?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If too many applicants fail (say: more than 20 in a row, many of them with good references), you are propably too harsh. But don't give up too early, because for every open job, a lot of people apply who are not really qualified, but hope to land a job anyway, with some luck somewhere in a not-to-well managed organisation where their results are unimportant as long as they look busy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I did when I was looking for new developers is that I made a test, and let my coworkers do it, as a calibration. I knew how well they performed, so after that I could say something like: Excellent people score 90%-100%, good enough people 60%-80%.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-08T09:35:56.593" CommentCount="1" />
  <row Id="24574" PostTypeId="1" AcceptedAnswerId="24579" CreationDate="2010-12-08T09:47:37.250" Score="15" ViewCount="600" Body="&lt;p&gt;I've seen the news yesterday that Java 7 and Java 8 passed but the majority &lt;a href=&quot;http://www.jroller.com/scolebourne/entry/java_se_7_8_passed,&quot; rel=&quot;nofollow&quot; title=&quot;jroller&quot;&gt;weren't very happy&lt;/a&gt;. Can anyone clarify what consequences does this have on Java and the community ? What licenses did Oracle change to be exact? A lot of people think that this might be the end of Java. Should I go ahead with learning Java or should I maybe move to .NET ? I don't have any preference as to one or the other, but I'm a bit concerned now with all this pressure surrounding the Java ecosystem. Since time is important for everyone and time is what I have less have these days I'd like some advices from the community here.&lt;/p&gt;&#xA;" OwnerUserId="9322" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-08T13:14:01.790" LastActivityDate="2010-12-18T06:38:48.007" Title="Some advice concerning Oracle and Java" Tags="&lt;java&gt;&lt;advice&gt;&lt;oracle&gt;" AnswerCount="5" CommentCount="7" FavoriteCount="5" />
  <row Id="24575" PostTypeId="2" ParentId="24555" CreationDate="2010-12-08T09:49:36.563" Score="0" ViewCount="" Body="&lt;p&gt;See, a technology by itself isn't old or new, it's the application of it which changes. Even today there are people using COBOL, and people working on mainframes. Many may consider these 2 as old but the fact is that they are still existing. But since you are asking from a career growth point of view, here's the answer. Learn ASP.NET 3.5 (and later versions) very well. Learn ASP.NET MVC. And if you want to explore more options in the area of Web development, you can explore Silverlight as well. And when I say &quot;Learn&quot; I dont mean only learn from books or learn only concepts but instead &quot;learn and practice&quot;. Create some small projects. Host them on some free hosting sites. If you make mistakes in these projects, learn from those mistakes and keep growing in both knowledge as well as experience. &lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-12-08T09:49:36.563" />
  <row Id="24576" PostTypeId="2" ParentId="24398" CreationDate="2010-12-08T09:55:53.323" Score="3" ViewCount="" Body="&lt;p&gt;It depends on the reason why you are unable...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;logically impossible: Discuss it with the one who wrote the requirements, maybe there is a misunderstanding. &lt;em&gt;Example: at one point, the spec says that the application must look and feel native on all platforms (Windows/Linux/Mac), and in another place, it says that the program must look exactly identical on all platforms&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;technically impossible: Reevaluate the tools you are working with, maybe they are not appropriate. Discuss the problem with your peers and the project manager. &lt;em&gt;Example: hard realtime requirements in an environment where garbage collection can stop the execution for an indeterminate time&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;insufficient performance: Maybe you are using the wrong algorithm, or maybe the problem is too hard (e.g. NP-hard) and the requirements doesn't take that into account. Reevaluate the algorithm you are using, maybe there is a faster way. Discuss the problem with your peers and the project manager. Consider switching to a good-enough heuristic instead of a perfect result. &lt;em&gt;Example: path optimization with dozens or even hundreds of nodes&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;you just don't know how to do it: Ask your peers, ask stackoverflow, search the internet. Contact the support of the tool/lib you are using. Discuss it with the project manager.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;it should work, but doesn't, and you have no clue why: Refactor the program to make it more testable. Consider race conditions, they are often the reason for hard-to-find bugs. Ask peers for help, four eyes see more than two. Check the internet for known bugs in the tools/libs you are using.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-08T09:55:53.323" CommunityOwnedDate="2011-04-09T16:55:22.410" />
  <row Id="24577" PostTypeId="2" ParentId="24555" CreationDate="2010-12-08T10:06:15.213" Score="10" ViewCount="" Body="&lt;p&gt;If you have a chance to decide, don't start your carreer with an old technology. It's not fun, you will not likely create anything new, only maintain existing work, and with some bad luck you will be stuck on that track, without ever having a chance to really prove yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You know ASP.NET 3.5? Look for an appropriate job!&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-08T10:06:15.213" />
  <row Id="24578" PostTypeId="1" CreationDate="2010-12-08T10:19:22.950" Score="4" ViewCount="148" Body="&lt;p&gt;There are some issues about how to manage our program designs and programming styles. I was assigned to find a solution to write reusable code - though, the programming team does not follow the rules.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would rather use MVC to perform a well structured programming style. I found out that a blueprint for next works requires a bunch of experts. The thing is that I have to do it all myself. And the worse part is that I have to use a general MVC platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I need your helps and suggestions for:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Is there a way that I can write a document for MVC - to use it in our design in Java?&lt;/li&gt;&#xA;&lt;li&gt;How can I represent it?&lt;/li&gt;&#xA;&lt;li&gt;How much work does it need?&lt;/li&gt;&#xA;&lt;li&gt;How can I connect the Model, the View, and the controller parts together?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="9112" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-08T13:13:23.257" LastActivityDate="2010-12-08T13:13:23.257" Title="MVC for our application?" Tags="&lt;java&gt;&lt;design-patterns&gt;&lt;mvc&gt;" AnswerCount="1" />
  <row Id="24579" PostTypeId="2" ParentId="24574" CreationDate="2010-12-08T10:22:46.130" Score="20" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I seen the news yesterday that Java 7&#xA;  and Java 8 passed but the majority&#xA;  weren't very happy. Can anyone clarify&#xA;  what consequences does this have on&#xA;  Java and the community?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The major consequence is that the JCP (which ratifies JSRs) is not a completely free and open place for the various stake holders in Java to agree on technical and licensing issues. Was this ever actually the case?  YMMV&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A secondary consequence is that Apache foundation will leave the JCP - so that's one part of the community who won't put their vote to Java technical standards (so the community is less well represented as a whole).  Other independent academics etc have also left the JCP, so arguably its dominated by corporations now (which only represent part of the community).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An arguably larger concern is the Google vs Oracle lawsuit, but that's headed into mediation, so I'm optimistically hoping that the two companies will settle out of court and get mobile Java moving again.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What licences did Oracle change to be&#xA;  exact?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No license were changed by Oracle.  Sun had a FOU (Field of Use) restriction on the TCK (Technical Compatibility Kit) which basically stopped a rival open source implementation of Java (Apache Harmony) from being allowed to run against the TCK and therefore call itself 'Java'.  Oracle have simply chosen to continue that stance that Sun had (which many people are upset about since Oracle voted against that stance in the past).&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A lot of people think that this might&#xA;  be the end of Java. Should I go ahead&#xA;  with learning Java or should I maybe&#xA;  move to .NET?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's absolutely not the end of Java - 10,000,000 or so developers, an incredibly diverse and vibrant community, languages on the JVM, conferences sold out in matter of days, JUGs growing, open source frameworks that don't go through the JCP have massive market share etc etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And besides, there's no compelling alternative to Java &lt;em&gt;yet&lt;/em&gt; and what ever that might be it's going to have to be easy enough for 9-10 million developers to easily transition, not too mention all of the enterprises out there (you're talking trillions of $ relying on Java).  I'm sure someone's going to weigh in here ;p&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice is to learn the technology stack that you're passionate about, both Java and .NET eco-systems are going to be around for a long time yet!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope that helps :)&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-08T10:22:46.130" CommentCount="3" />
  <row Id="24580" PostTypeId="2" ParentId="24578" CreationDate="2010-12-08T10:28:06.823" Score="6" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;MVC is just a design pattern - it's not a silver bullet.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Ask yourself:  Are you actually designing a UI?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;There are lots of MVC frameworks out there, don't re-invent the wheel!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;UML is typically used to represent the MVC structure - there's a million generic diagrams out there already&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-08T10:28:06.823" />
  <row Id="24581" PostTypeId="2" ParentId="24570" CreationDate="2010-12-08T10:29:25.640" Score="1" ViewCount="" Body="&lt;p&gt;Working with images, memory management (pointers), ports (if there is any hardware), registry and ini files (stream and files), canvas and drawing on objects, threads - maybe, GUI design.&lt;/p&gt;&#xA;" OwnerUserId="9112" LastActivityDate="2010-12-08T10:29:25.640" CommentCount="4" />
  <row Id="24582" PostTypeId="2" ParentId="24567" CreationDate="2010-12-08T11:01:48.560" Score="3" ViewCount="" Body="&lt;p&gt;Choosing who to hire, is one of the most important decisions you can make, as it will have a vast impact on how well your team performs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I think it's better to be too harsh then not harsh enough. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you are too harsh, you need to recognise that, probably after rejecting too many candidates. If this is occurring you often need to re-evaluate the advertised job spec, and your criteria for reviewing candidates.&lt;/p&gt;&#xA;" OwnerUserId="1104" LastActivityDate="2010-12-08T11:01:48.560" />
  <row Id="24583" PostTypeId="1" AcceptedAnswerId="24590" CreationDate="2010-12-08T11:22:26.023" Score="7" ViewCount="797" Body="&lt;p&gt;What is a situation while coding in C# where using pointers is a good or necessary option? I'm talking about &lt;em&gt;unsafe&lt;/em&gt; pointers.&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-08T13:12:36.457" LastActivityDate="2010-12-08T15:46:22.460" Title="Any real use of pointers in C#?" Tags="&lt;c#&gt;&lt;pointers&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="24584" PostTypeId="2" ParentId="24398" CreationDate="2010-12-08T11:28:25.487" Score="0" ViewCount="" Body="&lt;p&gt;My experience is that a fresh graduate is not thrown into the deep.&#xA;Instead, you will likely be part of a team that also includes experienced developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice would be: make use of them. When you are unsure how to tackle a problem, or if you want to know if your solution is going in the right direction, discuss this with them. And if you feel you are stuck somewhere, grab one of the experienced guys and explain your problem and ask for help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most often, just explaining your problem will reveal a solution and explaining your solution may equally reveal flaws in it.&lt;/p&gt;&#xA;" OwnerUserId="5099" LastActivityDate="2010-12-08T11:28:25.487" CommunityOwnedDate="2011-04-09T16:55:22.410" />
  <row Id="24585" PostTypeId="2" ParentId="24565" CreationDate="2010-12-08T11:34:31.187" Score="4" ViewCount="" Body="&lt;p&gt;As often as is needed.  Some projects - those where requirements might be fluid or political reasons mean that regular updates are critical - require more on-going communication than others.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a minimum I'd suggest that it would be a very odd week in which some meeting / discussion (possibly informal or in passing) wasn't needed.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly I'd suggest any sort of regular daily meeting lasting longer than a few minutes would almost certainly be over the top.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things to think about:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Regular meetings can benefit all parties - if you know when they're going to be you can plan round them and if a PM / Team Lead knows when he's getting his next update he's less likely to pester.&lt;/li&gt;&#xA;&lt;li&gt;If you have a meeting make it clear what the purpose of the meeting is so people can prepare and/or opt out (though they should always give a reason why they're opting out, not just that they don't want to be there - though that is a useful sign that the meeting isnt' being seen as productive that you might want to look at).&lt;/li&gt;&#xA;&lt;li&gt;Often the meeting time is more intrusive than the meeting length.  11am and 3pm are dreadful times for meetings as the break up the productive stretch morning or afternoon.  First thing or last thing are often better (or first thing in the afternoon).&lt;/li&gt;&#xA;&lt;li&gt;You can cover off a lot of what's covered in meetings in e-mail.  Outline a template for regular updates (and timings).  This allows the programmer / team leads to adjust the timing of the updates to their own schedule.&lt;/li&gt;&#xA;&lt;li&gt;The more people in a meeting the longer it will go on and the greater the proportion of time that is wasted.&lt;/li&gt;&#xA;&lt;li&gt;Face to face meetings to achieve things that other communications find difficult.  Whatever you do have some - just keep them small and focused.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-08T11:42:36.327" LastActivityDate="2010-12-08T11:42:36.327" CommentCount="5" />
  <row Id="24587" PostTypeId="2" ParentId="24570" CreationDate="2010-12-08T11:45:29.833" Score="2" ViewCount="" Body="&lt;p&gt;Delphi's a simpler language than C# (especially Delphi 7: no generics, for starters).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't say if you have any particular needs - UI development, or network stuff - so the given list's a pretty good all-round general development list.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One gotcha is the use of &lt;strong&gt;interfaces&lt;/strong&gt;: does the developer know how they work? That the compiler automagically generates calls to _AddRef and _Release when interfaces come in/go out of scope, and when that happens, and how to avoid reference counting if it's not wanted?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When working with &lt;strong&gt;threads&lt;/strong&gt;, is the developer aware that the Visual Component Library is not thread-safe and is assumed to run and be accessed entirely by the main application thread?&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-12-08T11:45:29.833" CommentCount="4" />
  <row Id="24588" PostTypeId="2" ParentId="24565" CreationDate="2010-12-08T11:52:33.853" Score="0" ViewCount="" Body="&lt;p&gt;I'm in the same situation: teamleader with a 8 people team and a manager.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I discuss with the manager on a daily basis, and we go together to some meetings. Most of the meetings anyway either are political and I won't participate or are strictly technical and he won't participate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got a lot of insightful information from the book &quot;The Effective Executive&quot; of P.Drucker. &lt;img src=&quot;http://i.imgur.com/L0dlq.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that in the book definition every programmer is an executive, because he have to take executive decisions.&lt;/p&gt;&#xA;" OwnerUserId="9115" LastActivityDate="2010-12-08T11:52:33.853" CommentCount="4" />
  <row Id="24589" PostTypeId="2" ParentId="24565" CreationDate="2010-12-08T12:04:28.140" Score="1" ViewCount="" Body="&lt;p&gt;The best way to provide feedback would be to use the agile practices that already exists:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Iteration demo.&lt;/strong&gt; This is where the team demonstrates actual working software and explains how the iteration went. Everyone is invited and are free to ask questions.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Big Visible Charts.&lt;/strong&gt; Progress about the current iteration should be transparent and visible for all to see, including managers. They should only have to glance at the status board to get a feeling for how things are going.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That should be enough, really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, there is no &quot;team lead&quot; role in XP or Scrum. The fundamental roles are &lt;em&gt;team members (programmers)&lt;/em&gt;, &lt;em&gt;customer (product owner)&lt;/em&gt; and &lt;em&gt;coach (scrum master)&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-12-08T12:04:28.140" />
  <row Id="24590" PostTypeId="2" ParentId="24583" CreationDate="2010-12-08T12:10:03.710" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;From the developer of C# himself:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The use of pointers is rarely required in C#, but there are some situations that require them. As examples, using an unsafe context to allow pointers is warranted by the following cases:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;Dealing with existing structures on disk&lt;/li&gt;&#xA;  &lt;li&gt;Advanced COM or Platform Invoke scenarios that involve structures with pointers in them&lt;/li&gt;&#xA;  &lt;li&gt;Performance-critical code&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The use of unsafe context in other situations is discouraged.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Specifically, an unsafe context should not be used to attempt to write C code in C#.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Caution:&lt;/strong&gt;&#xA;&quot;Code written using an unsafe context cannot be verified to be safe, so it will be executed only when the code is fully trusted. In other words, unsafe code cannot be executed in an untrusted environment. For example, you cannot run unsafe code directly from the Internet.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may go through &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa288474%28VS.71%29.aspx&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; for reference&lt;/p&gt;&#xA;" OwnerUserId="4522" LastActivityDate="2010-12-08T12:10:03.710" />
  <row Id="24591" PostTypeId="2" ParentId="23303" CreationDate="2010-12-08T12:11:58.490" Score="0" ViewCount="" Body="&lt;p&gt;Depends on the language and the platform. For instance, it is quite trivial for me to use a variety of databases while working with C, I just use the appropriate library.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A language must maintain its standard implementation, and that typically means providing the minimum amount needed for someone to be able to build whatever they want to build. Everything else becomes a library, or perhaps an extension to the language that is maintained by others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least, this is the case for languages that follow standards established by organizations such as ISO.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-08T12:11:58.490" CommunityOwnedDate="2011-02-25T12:34:54.753" />
  <row Id="24592" PostTypeId="2" ParentId="24583" CreationDate="2010-12-08T12:24:09.707" Score="4" ViewCount="" Body="&lt;p&gt;You have to remember that the designers at Microsoft are smart people and everything they add to C# has at least 1 use case. The &lt;a href=&quot;http://bitbucket.org/fparsec/main/src&quot; rel=&quot;nofollow&quot;&gt;FParsec project&lt;/a&gt; uses unsafe code to bring out every last drop of performance that C# is capable of. Take notice of the usage of &lt;code&gt;fixed&lt;/code&gt; and &lt;code&gt;stackalloc&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private char* ReadCharsFromStream(char* buffer, int maxCount, out string overhangChars) {&#xA;    Debug.Assert(maxCount &amp;gt;= 0);&#xA;    fixed (byte* byteBuffer = ByteBuffer) {&#xA;        overhangChars = null;&#xA;        try {&#xA;            while (maxCount &amp;gt;= MaxCharCountForOneByte) {// if maxCount &amp;lt; MaxCharCountForOneByte, Convert could throw&#xA;                int nBytesInByteBuffer = FillByteBuffer();&#xA;                bool flush = nBytesInByteBuffer == 0;&#xA;                int bytesUsed, charsUsed; bool completed = false;&#xA;                Decoder.Convert(byteBuffer + ByteBufferIndex, nBytesInByteBuffer,&#xA;                                buffer, maxCount, flush,&#xA;                                out bytesUsed, out charsUsed, out completed);&#xA;                ByteBufferIndex += bytesUsed; // GetChars consumed bytesUsed bytes from the byte buffer&#xA;                buffer += charsUsed;&#xA;                maxCount -= charsUsed;&#xA;                if (flush &amp;amp;&amp;amp; completed) return buffer;&#xA;            }&#xA;            if (maxCount == 0) return buffer;&#xA;&#xA;            char* cs = stackalloc char[MaxCharCountForOneByte];&#xA;            for (;;) {&#xA;                int nBytesInByteBuffer = FillByteBuffer();&#xA;                bool flush = nBytesInByteBuffer == 0;&#xA;                int bytesUsed, charsUsed; bool completed;&#xA;                Decoder.Convert(byteBuffer + ByteBufferIndex, nBytesInByteBuffer,&#xA;                                cs, MaxCharCountForOneByte, flush,&#xA;                                out bytesUsed, out charsUsed, out completed);&#xA;                ByteBufferIndex += bytesUsed;&#xA;                if (charsUsed &amp;gt; 0) {&#xA;                    int i = 0;&#xA;                    do {&#xA;                        *(buffer++) = cs[i++];&#xA;                        if (--maxCount == 0) {&#xA;                            if (i &amp;lt; charsUsed) overhangChars = new string(cs, i, charsUsed - i);&#xA;                            return buffer;&#xA;                        }&#xA;                    } while (i &amp;lt; charsUsed);&#xA;                }&#xA;                if (flush &amp;amp;&amp;amp; completed) return buffer;&#xA;            }&#xA;        } catch (DecoderFallbackException e) {&#xA;            e.Data.Add(&quot;Stream.Position&quot;, ByteIndex + e.Index);&#xA;            throw;&#xA;        }&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-12-08T12:24:09.707" CommentCount="2" />
  <row Id="24593" PostTypeId="2" ParentId="22146" CreationDate="2010-12-08T12:24:34.233" Score="2" ViewCount="" Body="&lt;p&gt;A collection classic papers every sw architect should read&#xA;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201703696&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.co.uk/Software-Fundamentals-Collected-Papers-L-Parnas/dp/0201703696/ref=sr_1_7?ie=UTF8&amp;amp;qid=1291810946&amp;amp;sr=8-7&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9325" LastActivityDate="2010-12-08T12:24:34.233" CommunityOwnedDate="2011-01-22T00:43:07.640" />
  <row Id="24594" PostTypeId="2" ParentId="24570" CreationDate="2010-12-08T12:24:45.580" Score="0" ViewCount="" Body="&lt;p&gt;In my opinion, a good developer/programmer must know how to analyze a plain text of code.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Search Google and it will show you the way! A very good skill is how how to use the search engines if you are working for a 'all-around general development list'!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Documentation! It is also a good trait if they have it. You mentioned OOP before, so, ask them to show you their past project or a resume. Writing reusable code is strongly suggested. These two are the main issues for me in the company I am working in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, count in having the sense of working with a team!&lt;/p&gt;&#xA;" OwnerUserId="9112" LastEditorUserId="9112" LastEditorDisplayName="" LastEditDate="2010-12-08T13:05:18.713" LastActivityDate="2010-12-08T13:05:18.713" />
  <row Id="24595" PostTypeId="2" ParentId="24567" CreationDate="2010-12-08T12:28:27.553" Score="11" ViewCount="" Body="&lt;p&gt;You are not being too harsh.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The sample code you posted shows a lack of attention-to-detail. Not only does this introduce an error into your product, it's a potential security issue too. If you have applicants that cannot demonstrate an understanding of 'normal' C code, they clearly do not have the skill level you are looking for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's one thing to have not-quite-optimal choice of algorithm, odd coding style or some other non-serious trait, but not demonstrating a command of the language is pretty bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the person described themselves as relatively new to the C language, then perhaps give them some other tests - for example, ask them to write a strdup() function and see if they (a) check incoming pointer, (b) check for malloc failure and (c) remember null terminator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many, many 'faker' candidates out there who'll apply for a job, get pre-processed by HR teams and some non-C-coding interview panel and may make it through a number of interview stages before having to actually demonstrate that they can actually write code. I've rejected people who emailed me excerpts of impressive-looking code as a sample of their work yet, when interviewed, were forced to admit that they didn't write that code after crashing-and-burning in a strdup()/toupper()/isalpha() whiteboard test.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To address this problem, we created a coding test, with 5 different questions, each in a different language (C, C++, JavaScript, C#, ASP.NET) and asked candidates to answer any 3. This eliminated the majority of fakers as couldn't web search for the answer to our very-specific questions, and we also didn't give the answers to agencies/HR so no chance of any help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I commend you for setting your quality bar appropriately - when you do hire someone, you'll feel assured that they're not going to have painful 'need to learn to code in C first' issues.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-12-08T12:28:27.553" CommentCount="3" />
  <row Id="24596" PostTypeId="2" ParentId="23303" CreationDate="2010-12-08T12:30:46.230" Score="3" ViewCount="" Body="&lt;p&gt;Err.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, first, you're asking why the framework the language operates in doesn't provide a database. A language is simply a means of expressing something that you want done in set grammers; it doesn't really provide services like that. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, there are several reasons.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Building an efficient database storage system is a hard problem, probably on the order of &lt;em&gt;or greater&lt;/em&gt; than building the .NET Framework (for instance). If a team tried to include a database in their framework, that would be all they ended up working on.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A database that gets load should be on its own separate machine and not in the process of the code that's accessing it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;ORMs provide a lot of the type safety and compile time checking that would be the benefit of such an action, without actually having the framework try to be a database.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That said, I guess it would be neat to include some sort of SQLite implementation within the framework that applications with smaller needs for data access could operate against. I'm not sure it would be useful in non-trivial applications, however.&lt;/p&gt;&#xA;" OwnerUserId="5972" LastActivityDate="2010-12-08T12:30:46.230" CommunityOwnedDate="2011-02-25T12:34:54.753" />
  <row Id="24597" PostTypeId="2" ParentId="24570" CreationDate="2010-12-08T12:32:50.610" Score="3" ViewCount="" Body="&lt;p&gt;Find out if he is a good general developer, give him a piece of bug riddled code and ask him to fix it, make him write some heavy algorithm, ask him to add a feature to a piece of spaghetti code (and perhaps also unspaghettify it a bit if there is time). In short, make sure that he shines at programming 101, if so, he can learn the rest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure it is nice if he know a lot of the stuff you use already, but you don't get a good coder just because you can tick a lot of points on a checklist of meta programming skills.&lt;/p&gt;&#xA;" OwnerUserId="8737" LastActivityDate="2010-12-08T12:32:50.610" />
  <row Id="24598" PostTypeId="2" ParentId="24398" CreationDate="2010-12-08T12:48:46.357" Score="0" ViewCount="" Body="&lt;p&gt;My sequence of solving problems (every next spet is performed only if the previous did not work):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Try to google&lt;/li&gt;&#xA;&lt;li&gt;Ask someone&lt;/li&gt;&#xA;&lt;li&gt;Search SO directly (bypassing Google)&lt;/li&gt;&#xA;&lt;li&gt;Think&lt;/li&gt;&#xA;&lt;li&gt;Smoke (== clear head)&lt;/li&gt;&#xA;&lt;li&gt;Ask a question on SO&lt;/li&gt;&#xA;&lt;li&gt;Wait till morning (== clear head even more)&lt;/li&gt;&#xA;&lt;li&gt;Use that dirty hack and feel bad about myself :(&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Nasty problems are solved on steps 5-6.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Really-really bad problems usually need some time (step 7 is THE solution to most 'seems-that-i-cannot-do-anything' problems). And I mean it - switch to another task for the rest of the day and try to solve the problem first thing in the morning. That does wonders.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And only then comes step 8.&lt;/p&gt;&#xA;" OwnerUserId="8628" LastActivityDate="2010-12-08T12:48:46.357" CommunityOwnedDate="2011-04-09T16:55:22.410" CommentCount="1" />
  <row Id="24599" PostTypeId="2" ParentId="24567" CreationDate="2010-12-08T12:53:26.177" Score="6" ViewCount="" Body="&lt;p&gt;I find that running your tests past your existing developers is a good measure of fairness - these are people you have the measure of and you can see how they do with the questions.  If people you know to be good developers aren't getting good scores then your test is probably too hard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously you have to make it clear to them that they won't be judged on the results as it's about developing the test, not assessing them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally though you're better off rejecting many good candidates than accepting a single bad one so if in doubt say no.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Specifically in this instance I think you're being fair but I thought I'd try and tackle the wider point.)&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-08T12:53:26.177" />
  <row Id="24600" PostTypeId="1" AcceptedAnswerId="24603" CreationDate="2010-12-08T12:58:34.357" Score="1" ViewCount="102" Body="&lt;p&gt;From the comments posted by &lt;a href=&quot;http://programmers.stackexchange.com/users/855/jeff-o&quot;&gt;Jeff O&lt;/a&gt; on &lt;a href=&quot;http://programmers.stackexchange.com/questions/22404/what-order-do-you-develop-program-layers/22446#22446&quot;&gt;answer&lt;/a&gt;, what application layer would you consider as the strongest and why? By strongest I mean it acts as the basement and makes the whole application stable.&lt;/p&gt;&#xA;" OwnerUserId="156" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-08T13:11:56.830" LastActivityDate="2010-12-08T13:11:56.830" ClosedDate="2010-12-09T13:05:03.527" Title="What application layer would you consider as the strongest and why?" Tags="&lt;development-process&gt;&lt;design&gt;&lt;applications&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="1" />
  <row Id="24601" PostTypeId="2" ParentId="24600" CreationDate="2010-12-08T13:05:13.120" Score="0" ViewCount="" Body="&lt;p&gt;The one with the most unit tests/code coverage.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-12-08T13:05:13.120" CommentCount="4" />
  <row Id="24602" PostTypeId="2" ParentId="24567" CreationDate="2010-12-08T13:06:08.580" Score="1" ViewCount="" Body="&lt;p&gt;Just to play devil's advocate, you state:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;... he worked in a project for porting some operating system to new hardware and one of his duties was &quot;fixing bugs in the operating system&quot;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;and then supply an example of bad code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, what proof do you have that he wrote that code? If his job was to port the code there's a good chance that it was written by someone else. This might be a perfect example to test his bug fixing ability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Highlight the method and use it to ask a series of questions. Which way you go depends on his answers, but start by asking him if he wrote it. If he says &quot;yes&quot; then perhaps he's not as good as he claims he is ;). If however, he says &quot;no&quot; then you can ask if he had to fix any problems in it. Again &quot;yes&quot; indicates he missed something obvious while &quot;no&quot; leads on to the next question - &quot;can you see anything wrong with it now&quot;. Ask him to talk you though what he's doing and what he's looking for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's difficult to ask these without alerting him to the fact that there is something wrong, but then a failure to spot it then becomes a bit more serious.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This also gives you a chance to assess his approach to solving problems.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-12-08T13:06:08.580" />
  <row Id="24603" PostTypeId="2" ParentId="24600" CreationDate="2010-12-08T13:09:35.713" Score="2" ViewCount="" Body="&lt;p&gt;For me it's the model.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of MVC or MVVM applications, if your model is wrong, then your whole application will fail.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, your model represents your understanding of the problem space you're working in. If you don't understand the problem space then your solution will be wrong, which will make your application unstable.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-12-08T13:09:35.713" />
  <row Id="24604" PostTypeId="2" ParentId="24574" CreationDate="2010-12-08T13:29:06.683" Score="3" ViewCount="" Body="&lt;p&gt;Better one skill too many than one skill to few ;-)&lt;/p&gt;&#xA;" OwnerUserId="598" LastActivityDate="2010-12-08T13:29:06.683" CommentCount="4" />
  <row Id="24605" PostTypeId="1" CreationDate="2010-12-08T13:34:04.740" Score="4" ViewCount="207" Body="&lt;p&gt;I'm building a small app as an interface to support functions, monitoring, web-based running of unit tests, etc. This will be checked into Subversion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to include &lt;a href=&quot;http://code.google.com/p/mcmon/&quot; rel=&quot;nofollow&quot;&gt;a third-party app&lt;/a&gt; which is also available via Subversion. Thus far I prefer to reference the remote repository to ease upgrades, particularly when I have made local modifications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I want the third-party app to be distributed alongside the parent app. Subversion externals are out, since I can't commit my local mods. &lt;code&gt;git svn&lt;/code&gt; seems like it has potential, but I'm not sure on the details. (Seems dirty to have a .git directory with svn metadata stored in an svn repository.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So how do you handle modifications to Subversion projects you can't commit to? I'm pretty open to any combination of git and svn, preferably allowing the code to live in our existing Subversion repository.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I'm currently exploring &lt;a href=&quot;http://svnbook.red-bean.com/en/1.5/svn.advanced.vendorbr.html&quot; rel=&quot;nofollow&quot;&gt;vendor branches&lt;/a&gt;, which is more convention than feature. There is a tool called &lt;a href=&quot;http://svnbook.red-bean.com/en/1.5/svn.advanced.vendorbr.html#svn.advanced.vendorbr.svn_load_dirs&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;svn_load_dirs.pl&lt;/code&gt;&lt;/a&gt; to assist with the process.&lt;/p&gt;&#xA;" OwnerUserId="444" LastEditorUserId="444" LastEditorDisplayName="" LastEditDate="2010-12-08T16:43:18.150" LastActivityDate="2010-12-22T18:45:51.817" Title="Third-party repositories in Subversion; local mods?" Tags="&lt;version-control&gt;&lt;libraries&gt;" AnswerCount="4" />
  <row Id="24606" PostTypeId="1" CreationDate="2010-12-08T13:38:23.043" Score="7" ViewCount="113" Body="&lt;p&gt;I'm implementing a referral program on a site and was wondering if there was a best practice in terms of what the referral codes should look like.  I assume since we don't want overly long referral codes, we can't just use &lt;a href=&quot;http://en.wikipedia.org/wiki/Globally_unique_identifier&quot; rel=&quot;nofollow&quot;&gt;GUID&lt;/a&gt; or anything like that, so I'll have to do checks on the referral codes generated to ensure uniqueness?&lt;/p&gt;&#xA;" OwnerUserId="93" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-08T13:53:12.210" LastActivityDate="2010-12-08T14:52:38.823" Title="Best practice for generating referral codes?" Tags="&lt;best-practices&gt;&lt;referral&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="24607" PostTypeId="1" AcceptedAnswerId="24622" CreationDate="2010-12-08T13:45:28.693" Score="7" ViewCount="126" Body="&lt;p&gt;I'm looking for a foldable keyboard in order to make using my netbook while programming less painful. Yes, some of us can put up with very small screen sizes and still be productive. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I want is something that matches the standard 101 key QWERTY layout. I want backspace, insert, home, end, arrows and shifts to be just where you would expect them to be. Ideally, it features both USB and Bluetooth for connectivity. In a wonderful world, if USB only, it would also double as a USB hub or at least give me back the port that it occupies (without using a tandem connector).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not expecting something that is smooth as graphite, just something so my fingers can continue to land where they are used to landing. The tactile responsiveness of a cheap Genius / Lexma keyboard is fine with me for this purpose. I've tried the 'micro' keyboards designed to fit into small places, but each one re-arranges the keys that I mentioned previously, making for a very frustrating experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The rubber &quot;roll up&quot; keyboards don't work well for me. I'm looking for something that folds in half to fit nicely in an average sized back pack.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-08T14:23:35.580" LastActivityDate="2010-12-08T14:23:35.580" Title="Is there a foldable keyboard that offers good tactile response?" Tags="&lt;recommendations&gt;&lt;keyboard&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="24608" PostTypeId="1" AcceptedAnswerId="24614" CreationDate="2010-12-08T13:48:40.803" Score="20" ViewCount="254" Body="&lt;p&gt;What methods / libraries / tools would people suggest for generating license keys (those lovely AAAAA-AAAAA-AAAAA-AAAAA-AAAAA things you put in when you register software)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any gotchas to look out for when implementing them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(At the moment I'm interested in this as a general thing rather than language specific so just state what language you're using if your solution is language specific). &lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-08T14:17:42.120" Title="Best Mechanism for Generating License Keys" Tags="&lt;license&gt;" AnswerCount="2" FavoriteCount="7" />
  <row Id="24609" PostTypeId="2" ParentId="1599" CreationDate="2010-12-08T13:48:43.877" Score="0" ViewCount="" Body="&lt;p&gt;When someone is speaking nonstop or just plainly annoying me, I mentally type &lt;code&gt;kill -9&lt;/code&gt; on them and smile at them.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-08T13:48:43.877" CommunityOwnedDate="2010-12-08T13:48:43.877" />
  <row Id="24610" PostTypeId="2" ParentId="24605" CreationDate="2010-12-08T13:49:34.817" Score="1" ViewCount="" Body="&lt;p&gt;I handle the situation of external repositories by creating a copy on our local repository, and by periodically merging the changes from the external repository to the local repository (i.e. &lt;code&gt;svn merge&lt;/code&gt; from external into my working copy, then commit). Thus, I can keep reasonably up-to-date on the external code, but I'm able to make (and keep) the local changes I need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, you need to make sure that you have permission to distribute a modified version of their code alongside your app.&lt;/p&gt;&#xA;" OwnerUserId="8957" LastActivityDate="2010-12-08T13:49:34.817" />
  <row Id="24612" PostTypeId="2" ParentId="24608" CreationDate="2010-12-08T13:53:37.160" Score="5" ViewCount="" Body="&lt;p&gt;This same &lt;a href=&quot;http://stackoverflow.com/questions/599837/how-to-generate-and-validate-a-software-license-key&quot;&gt;question&lt;/a&gt; was asked on SO and the accepted answer is pretty good.  The general gist is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Take the user's name&lt;/li&gt;&#xA;&lt;li&gt;Concatentate the users name and the secret key and hash with (for example) SHA1&lt;/li&gt;&#xA;&lt;li&gt;Unpack the SHA1 hash as an alphanumeric string. This is the individual user's &quot;Product Key&quot;&lt;/li&gt;&#xA;&lt;li&gt;Within the program, do the same hash, and compare with the product key. If equal, OK.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-08T13:53:37.160" />
  <row Id="24614" PostTypeId="2" ParentId="24608" CreationDate="2010-12-08T13:55:58.277" Score="13" ViewCount="" Body="&lt;p&gt;It's about the same as when storing passwords. You should have a unique secret key known only to the generator and your program. Use this key to manipulate the details (user name, password, organization, etc) and then hash it. You can then do something trivial transfer encoding in &lt;a href=&quot;http://en.wikipedia.org/wiki/Base32&quot; rel=&quot;nofollow&quot;&gt;Base32&lt;/a&gt; on the hash or simply move it to a hex string if you don't care about a format.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Any gotchas to look out for when implementing them?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Keep secrets secret and separate.  Make your implementation improvable. If someone breaks it can you easily change the implementation? One common implementation on desktop applications is to use a remote server to validate the license. This removes the possibility that someone could reverse engineer a hash or the algorithm by inspecting the application itself.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-08T14:17:42.120" LastActivityDate="2010-12-08T14:17:42.120" CommentCount="2" />
  <row Id="24615" PostTypeId="1" AcceptedAnswerId="24616" CreationDate="2010-12-08T14:00:04.393" Score="9" ViewCount="562" Body="&lt;p&gt;For Windows Development I mean.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looking over other questions there are alternatives to VS, but they seem to be web based ones, which is fine, or you could program an entire .net website in notepad, should the urge drive you to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But is there more to it than just an IDE for Windows Development? I.E. Is it possible for me to create an application in just notepad, is the compiler part of Visual Studio, or is it separate, which could be called via command line or something?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't want to not use VS, I'm happy with it, does what I need etc etc, just more a facet I'm curious about.&lt;/p&gt;&#xA;" OwnerUserId="9331" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-08T15:29:18.370" LastActivityDate="2010-12-08T15:29:18.370" Title="Is Visual Studio just an IDE?" Tags="&lt;productivity&gt;&lt;ide&gt;&lt;visual-studio&gt;" AnswerCount="3" CommentCount="8" />
  <row Id="24616" PostTypeId="2" ParentId="24615" CreationDate="2010-12-08T14:02:28.880" Score="26" ViewCount="" Body="&lt;p&gt;Compilers are available separately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For C# it would be the &lt;code&gt;csc.exe&lt;/code&gt;. You could call it from the command line any time. Pass along the name of the source files to compile, the libraries to reference, compilation option and here you go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe Visual Studio itself calls the compiler over the command line when you ask it to build your project. The build output messages you see is what the command-line compiler returns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from this Visual Studio is more than just a GUI for a compiler. It has a nice text editor, debugger, designer tools, SQL browser, also integrates with test tools, versioning control and other instrumentary (it's extendable through plug-ins). You'd be striving hard to find an equivalent product (for the Microsoft stack) with a comparable level of consolidation.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-08T15:02:04.390" LastActivityDate="2010-12-08T15:02:04.390" CommentCount="3" />
  <row Id="24617" PostTypeId="2" ParentId="24607" CreationDate="2010-12-08T14:06:17.893" Score="4" ViewCount="" Body="&lt;p&gt;This is &lt;a href=&quot;http://www.targus.com/us/product_details.aspx?sku=PA875U01X&quot; rel=&quot;nofollow&quot;&gt;one&lt;/a&gt; that I used a while back.  I borrowed it from a freind for a weekend and it worked well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/R87hX.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-08T14:06:17.893" />
  <row Id="24618" PostTypeId="2" ParentId="24615" CreationDate="2010-12-08T14:08:12.060" Score="17" ViewCount="" Body="&lt;p&gt;Not only is the compiler completely separate, so is anything else you might need to build a .net project.  Visual Studio solution and project files are just XML that is understood by MSBuild (another command line tool), which in turn calls the relevant compiler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, Visual Studio is just an IDE.  That integrates most of the individual tools that you might use during the SDLC (SQL Server, StyleCop, etc.) into a single application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's all!&lt;/p&gt;&#xA;" OwnerUserId="143" LastActivityDate="2010-12-08T14:08:12.060" />
  <row Id="24619" PostTypeId="2" ParentId="7516" CreationDate="2010-12-08T14:09:27.080" Score="-1" ViewCount="" Body="&lt;p&gt;I would go for &lt;em&gt;Pierre 303&lt;/em&gt;'s answer with a twist: &lt;strong&gt;ASP.Net MVC (possibly with nHibernate)&lt;/strong&gt;, much easier to test than plain old ASP.Net (&lt;a href=&quot;http://www.kevinwilliampang.com/2009/04/21/should-you-use-asp-net-mvc/&quot; rel=&quot;nofollow&quot;&gt;some reading&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't really used nHibernate (only HIbernate when I did Java) so my opinion is based on word of mouth from fellow developers&lt;/p&gt;&#xA;" OwnerUserId="8627" LastActivityDate="2010-12-08T14:09:27.080" />
  <row Id="24620" PostTypeId="2" ParentId="24542" CreationDate="2010-12-08T14:14:10.573" Score="2" ViewCount="" Body="&lt;p&gt;If you want to learn functional programming, you might be better served to learn Haskell first, then use whichever language you want. You can learn functional programming using the other languages, but they still allow for imperative and object-oriented code. If you write a real program in Haskell, you will learn functional programming faster because the other paradigms won't be available to fall back on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After writing your Haskell program, you will have tools like monads and techniques like point-free coding to bring to the language of your choice. The concepts seem to map especially well to Scheme.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-08T14:14:10.573" CommentCount="2" />
  <row Id="24621" PostTypeId="2" ParentId="7516" CreationDate="2010-12-08T14:16:00.207" Score="2" ViewCount="" Body="&lt;p&gt;Java, Spring and Hibernate (obviously!)&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-12-08T14:16:00.207" />
  <row Id="24622" PostTypeId="2" ParentId="24607" CreationDate="2010-12-08T14:23:05.050" Score="2" ViewCount="" Body="&lt;p&gt;While it's not foldable, the &lt;a href=&quot;http://www.apple.com/keyboard/&quot; rel=&quot;nofollow&quot;&gt;Apple Wireless Keyboard&lt;/a&gt; is a compact but full-sized keyboard with all the features you requested. I use one daily with no issues at all. If moving from a full sized keyboard a few minutes to get used to the slightly condensed size and you're off and away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/3FC24.jpg&quot; alt=&quot;Apple Wireless Keyboard&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-08T14:23:05.050" CommentCount="4" />
  <row Id="24623" PostTypeId="2" ParentId="24558" CreationDate="2010-12-08T14:39:48.787" Score="3" ViewCount="" Body="&lt;p&gt;It's worth noting that &lt;em&gt;languages&lt;/em&gt; are not interpreted or compiled, but rather language &lt;em&gt;implementations&lt;/em&gt; either interpret or compile code. You noted that Ruby is an &quot;interpreted language&quot;, but you can compile Ruby à la &lt;a href=&quot;http://www.macruby.org/&quot; rel=&quot;nofollow&quot;&gt;MacRuby&lt;/a&gt;, so it's not &lt;em&gt;always&lt;/em&gt; an interpreted language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pretty much every Python implementation consists of an interpreter (rather than a compiler). The &lt;code&gt;.pyc&lt;/code&gt; files you see are byte code for the Python virtual machine (similar to Java's &lt;code&gt;.class&lt;/code&gt; files). They are not the same as the machine code generated by a C compiler for a native machine architecture. Some Python implementations, however, do consist of a &lt;em&gt;just-in-time&lt;/em&gt; compiler that will compile Python byte code into native machine code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I say &quot;pretty much every&quot; because I don't know of any native machine compilers for Python, but I don't want to claim that none exist anywhere.)&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-12-08T14:39:48.787" CommentCount="1" />
  <row Id="24624" PostTypeId="2" ParentId="24583" CreationDate="2010-12-08T14:40:09.270" Score="6" ViewCount="" Body="&lt;p&gt;yes, there are real uses, when performance is critical and the operations are low-level&lt;/p&gt;&#xA;&#xA;&lt;p&gt;for example, i've only needed to use pointers in C# once, for image comparison. Using GetPixel on a pair of 1024x1024x32 images took 2 minutes to do the comparison (Exact match). Pinning the image memory and using pointers took less than 1 second (on the same machine of course).&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-08T14:40:09.270" CommentCount="4" />
  <row Id="24625" PostTypeId="2" ParentId="7516" CreationDate="2010-12-08T14:40:13.060" Score="0" ViewCount="" Body="&lt;p&gt;If you can experiment and you have Java experience in your team, I suggest you to try Scala.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a kind of Java++, with Java speed and compatibility but all the new cool stuff that changed programming in the last years in a way made GOF history (in a good sense).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm speaking about continuations, actors, mixins(traits), named arguments, properties, pattern matching etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All this is not for the sake of innovation but they can really improve productivity and decrease debugging time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reference webserver for Scala is Lift (appropriately :))&lt;/p&gt;&#xA;" OwnerUserId="9115" LastActivityDate="2010-12-08T14:40:13.060" CommentCount="1" />
  <row Id="24626" PostTypeId="2" ParentId="24615" CreationDate="2010-12-08T14:41:27.820" Score="13" ViewCount="" Body="&lt;p&gt;I would like to add my two cents. I would say you can't use the words &quot;just an IDE&quot;. The way you word your question it's almost that you are saying &quot;is Visual Studio just a fancy text editor?&quot;. Remember it has a debugger, tools for SQL, a visual designer, tools for mobile development, viewers for inspecting memory, etc. Visual Studio is an IDE and an IDE is a suite of development/debugging tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you got the answer you were searching for, which was compilers can be downloaded separately, but I want develpors to realize how much an IDE brings to the table. Even the ability to organize your project is a beautiful thing. I guess this soap box is more &quot;please learn the tools&quot; than anything else. You could use visual studio to debug system problems as well.&lt;/p&gt;&#xA;" OwnerUserId="9334" LastActivityDate="2010-12-08T14:41:27.820" CommentCount="2" />
  <row Id="24627" PostTypeId="2" ParentId="24565" CreationDate="2010-12-08T14:43:03.887" Score="0" ViewCount="" Body="&lt;p&gt;once per week, as per &lt;em&gt;The One-Minute Manager&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-08T14:43:03.887" />
  <row Id="24628" PostTypeId="2" ParentId="24567" CreationDate="2010-12-08T14:43:04.197" Score="2" ViewCount="" Body="&lt;p&gt;When you are preparing a code sample to give to a potential employer, you should take care to make sure it is correct and will not cause them to question your skill level. That the candidate did not do that is in indicator that he doesn't care or is not competent. Either indicates he is a bad choice for a hire. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many people make their experience sound better than it is. There are many people with years of experience out there who are still working at the entry level. Just because he was assigned to a duty, doesn't mean he did it well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal opinion is you were too nice on the guy. If he hasn't learned better in five years, he is probably not ever going to be out of the entry level category and thus is not someone I would want HR to consider as qualified at any level.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-08T14:43:04.197" />
  <row Id="24629" PostTypeId="1" CreationDate="2010-12-08T14:45:39.217" Score="7" ViewCount="242" Body="&lt;p&gt;I'm interested how programmers got started with learning .NET development. What books and blogs did you read, podcasts or videos did you watch/listened and what other resources did you use to self learn .NET development. I have to mention that while I am new to .NET I'm not new to programming in general. I've used PHP, Python for a while and Java for about 1-2 months. &lt;/p&gt;&#xA;" OwnerUserId="9322" LastActivityDate="2010-12-08T18:41:16.317" Title="How did you get started with .NET?" Tags="&lt;.net&gt;" AnswerCount="10" />
  <row Id="24630" PostTypeId="2" ParentId="24555" CreationDate="2010-12-08T14:46:43.460" Score="4" ViewCount="" Body="&lt;p&gt;AmmoQ is right, here's some supporting info:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;dice.com search for [asp OR &quot;classic asp&quot;] = 149 results&lt;/li&gt;&#xA;&lt;li&gt;dice.com search for [asp.net] = 3,852 results&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;you do the math!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-08T14:46:43.460" />
  <row Id="24631" PostTypeId="2" ParentId="24606" CreationDate="2010-12-08T14:52:38.823" Score="4" ViewCount="" Body="&lt;p&gt;I am not sure what exactly you are doing so I will give more than one solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) If you are just worried about length, you could use something called &lt;a href=&quot;http://www.singular.co.nz/blog/archive/2007/12/20/shortguid-a-shorter-and-url-friendly-guid-in-c-sharp.aspx&quot; rel=&quot;nofollow&quot;&gt;ShortGUID&lt;/a&gt;.  developed for C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) if you are looking for a more readable format which I assume you might you could use todays date/time and number count that recycles everyday. (or anything using the datetime)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) If these are referals via web you can use unique URLs like a PURL.&lt;/p&gt;&#xA;" OwnerUserId="9334" LastActivityDate="2010-12-08T14:52:38.823" CommentCount="2" />
  <row Id="24632" PostTypeId="2" ParentId="24629" CreationDate="2010-12-08T14:52:47.060" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Book: Head First C#&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/rULgl.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://oreilly.com/catalog/9780596514822&quot; rel=&quot;nofollow&quot;&gt;http://oreilly.com/catalog/9780596514822&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That should explain the basics very clearly and get you on your way.&lt;/p&gt;&#xA;" OwnerUserId="2820" LastActivityDate="2010-12-08T14:52:47.060" />
  <row Id="24633" PostTypeId="2" ParentId="24629" CreationDate="2010-12-08T14:54:29.587" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://learnvisualstudio.net&quot; rel=&quot;nofollow&quot;&gt;http://learnvisualstudio.net&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-08T14:54:29.587" />
  <row Id="24634" PostTypeId="2" ParentId="24629" CreationDate="2010-12-08T14:54:43.163" Score="6" ViewCount="" Body="&lt;p&gt;In 2002, my startup company's product had hit a dead end. It very clearly needed to have an integrated web server, and I wasn't able to find any options that really fit the bill. I couldn't use something that had a separate footprint, like Apache, and I couldn't use something that was incompatible with Windows 98/ME (like the app that eventually became Visual Studio's development server).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea of coding up a full web server in C++ made me reconsider my career choice, but on a whim, I called an old friend who was also a software engineer, and he recommended that I take a look at C# and .NET. He implied that it would give me levels of productivity that I would find truly surprising, and since he is one of the smartest people that I know, I gave it a try.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I downloaded the .NET 1.1 SDK and started coding. Just about exactly a week later, I had an HTTP 1.0 multi-threaded web server that I could integrate directly into my product. And I then immediately converted the entire code base from C and C++ to C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never looked back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Always try to learn by doing.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastEditorUserId="6393" LastEditorDisplayName="" LastEditDate="2010-12-08T15:29:58.573" LastActivityDate="2010-12-08T15:29:58.573" />
  <row Id="24635" PostTypeId="2" ParentId="24629" CreationDate="2010-12-08T14:54:48.100" Score="5" ViewCount="" Body="&lt;p&gt;When I started with .NET it was during the beta for v1.0, so not much remains.  What I would do if I was starting out now is to start with all the learning resources on &lt;a href=&quot;http://msdn.microsoft.com/en-us/bb188199&quot; rel=&quot;nofollow&quot;&gt;MSDN&lt;/a&gt;.  There are tons of How-to vidoes and sample apps.  It would be a great place to start.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-08T14:54:48.100" />
  <row Id="24636" PostTypeId="1" AcceptedAnswerId="24644" CreationDate="2010-12-08T14:58:51.407" Score="7" ViewCount="137" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a contract developer who has been brought in along with two other people to help design and build a .Net application based off of an existing Classic ASP application. What my question is, what should my mandate be? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now I'm looking through the sparse requirements and the existing application and it seems as though the client would really like us to build the new application in the exact same way (folder structure, markup, data entry, functionality, operation, etc). What concerns me is that this is the wrong way to build a new appliaction when the client keeps saying 'we want things to be fixed and made better'. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I as a contractor try to guide the client into making the right descisions; as in teach them the advantages of building in the .Net framework, using more current ways of creating web markup, and basically create a better user experience. Or should I just sit back and wait for the client to fumble along on the same path that we're now traveling?&lt;/p&gt;&#xA;" OwnerUserId="7428" LastActivityDate="2010-12-08T15:59:47.660" Title="What should a contractors mandate be?" Tags="&lt;career&gt;&lt;asp.net&gt;&lt;contracting&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="24637" PostTypeId="2" ParentId="24629" CreationDate="2010-12-08T15:00:43.870" Score="0" ViewCount="" Body="&lt;p&gt;I was in my career when .net came out. I was stuck in VB6 at the time, and people were moving to web (cold fusion mostly). ASP just didn' have it for desktop dev guy. Then cam .net i could use a C language (which i started in) and have all the bells and whistles. I remember seeing &lt;a href=&quot;http://www.youtube.com/watch?v=WRoiB_sVtgw&quot; rel=&quot;nofollow&quot;&gt;videos&lt;/a&gt; that showed where Microsoft wanted to go and the romantic developer in me fell in love.&lt;/p&gt;&#xA;" OwnerUserId="9334" LastActivityDate="2010-12-08T15:00:43.870" />
  <row Id="24638" PostTypeId="2" ParentId="24629" CreationDate="2010-12-08T15:00:58.240" Score="0" ViewCount="" Body="&lt;p&gt;I picked up a copy of &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735620598&quot; rel=&quot;nofollow&quot;&gt;Programming Visual Basic .NET&lt;/a&gt;.  It's a pretty hefty book, but it has a pretty good overview of almost all .NET topics.  I think you would still find it very useful even if you are partial to C# rather than VB.NET (as the two languages have only a few differences, and generally compile to the same bytecode.)&lt;/p&gt;&#xA;" OwnerUserId="1858" LastActivityDate="2010-12-08T15:00:58.240" />
  <row Id="24639" PostTypeId="2" ParentId="24636" CreationDate="2010-12-08T15:05:05.537" Score="1" ViewCount="" Body="&lt;p&gt;Well you need to bring up your concerns but not fight them to the death. But put your concerns in business form. Why would they care what's wrong and right. Will it save them money in the long run? What does easy to use mean? Sure it sounds great but when they hear about the hours they would save etc. they will be inclined to listen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People don't like change so go at it as a friend. Don't be condescending calling the old way crap. try to be one of them and lead them to make the decision for change.&lt;/p&gt;&#xA;" OwnerUserId="9334" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-12-08T15:45:15.027" LastActivityDate="2010-12-08T15:45:15.027" />
  <row Id="24640" PostTypeId="2" ParentId="24565" CreationDate="2010-12-08T15:05:54.980" Score="0" ViewCount="" Body="&lt;p&gt;Depends upon if you are referring to project management or personnel management. From the personnel management I've heard that most good managers will usually have a standing meeting once a week with their subordinates so there is time for to make sure everything is running smoothly and to provide an opportunity for mentor-ship.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the project management standpoint, the team leader should meet with the manager as often as is needed to keep them up to date on the status of the project. Generally having a standing meeting is a good idea as it keep the upper level management from being surprised if there is a delay in the project.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-12-08T15:05:54.980" />
  <row Id="24641" PostTypeId="2" ParentId="24538" CreationDate="2010-12-08T15:06:54.537" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Sponsor courses for professionals available from CMU etc&lt;/li&gt;&#xA;&lt;li&gt;Have the entire &lt;a href=&quot;http://ocw.mit.edu&quot; rel=&quot;nofollow&quot;&gt;MIT courseware&lt;/a&gt; and the likes downloaded on the local network&lt;/li&gt;&#xA;&lt;li&gt;Arrange for professional trainers for advanced training&lt;/li&gt;&#xA;&lt;li&gt;Get expert speakers like &lt;a href=&quot;http://cc2e.com/&quot; rel=&quot;nofollow&quot;&gt;Steve Mcconnell&lt;/a&gt; et al to talk to the engineers&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-08T15:06:54.537" CommentCount="3" />
  <row Id="24642" PostTypeId="2" ParentId="24538" CreationDate="2010-12-08T15:12:14.100" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Encourage &lt;strong&gt;lunchtime presentations&lt;/strong&gt; of technology related to what your company does &lt;em&gt;or&lt;/em&gt; new technology by and for employees.  Provide lunch.  Reward the speakers with some sort of token.&lt;/li&gt;&#xA;&lt;li&gt;Encourage &lt;strong&gt;lunchtime book discussion groups&lt;/strong&gt; going through a particular technological book with lunch provided.&lt;/li&gt;&#xA;&lt;li&gt;Sponsor employees at &lt;strong&gt;industry conferences&lt;/strong&gt;, but make sure that they are the very best that you can provide.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Do not&lt;/strong&gt; force employees to go to internal or external training that is below their level.  Ideally let team leads pick appropriate training for employees, and absolutely don't let training companies or support guys just sell you something.  I have gone to courses many times that were a waste of my company's money.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7506" LastActivityDate="2010-12-08T15:12:14.100" CommentCount="5" />
  <row Id="24643" PostTypeId="1" CreationDate="2010-12-08T15:16:46.183" Score="3" ViewCount="207" Body="&lt;p&gt;Some use this convention:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;private String event;&#xA;public getEvent() { return this.event; } &#xA;public setEvent(String value) { this.event = value; }&#xA;&#xA;private int id; &#xA;... same as above ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In some projects they define all the fields first, all static fields after (or before), all public/private variables, then the setters, getters, other methods. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which do you use and why?&lt;/p&gt;&#xA;" OwnerUserId="9322" LastEditorUserId="9322" LastEditorDisplayName="" LastEditDate="2010-12-08T15:26:01.837" LastActivityDate="2010-12-08T20:50:48.827" Title="Coding style - define fields separate or not." Tags="&lt;best-practices&gt;&lt;programming-practices&gt;" AnswerCount="6" />
  <row Id="24644" PostTypeId="2" ParentId="24636" CreationDate="2010-12-08T15:19:36.383" Score="5" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;If you want to be known as a consultant that really adds value and makes a positive change then yes you should talk to them about changing some things.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you want more job satisfaction out of your life than just bashing out code then yes you should talk to them about change, absolutely!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Definitely talk to them about the improvements in terms of their business.  Basically how does the new technology improve their business process over the old technology.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Perhaps prototype some of the new technology to them&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You &lt;em&gt;won't&lt;/em&gt; regret becoming an engaged, pro-active, professional with your clients.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disclaimer:  I'm one of those annoying believers in the &lt;a href=&quot;http://manifesto.softwarecraftsmanship.org/&quot; rel=&quot;nofollow&quot;&gt;Software Craftsmanship Manifesto&lt;/a&gt; :)&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2010-12-08T15:34:10.407" LastActivityDate="2010-12-08T15:34:10.407" CommentCount="1" />
  <row Id="24645" PostTypeId="2" ParentId="24643" CreationDate="2010-12-08T15:20:44.760" Score="5" ViewCount="" Body="&lt;p&gt;I usually keep the private variable with the getter/setter, so the relevant code is all in the same place.  &lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-08T15:20:44.760" />
  <row Id="24646" PostTypeId="2" ParentId="24629" CreationDate="2010-12-08T15:26:46.967" Score="0" ViewCount="" Body="&lt;p&gt;There are already a number of good places to get started, but here are some of the blogs I (try to) keep up with:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.4GuysFromRolla.com&quot; rel=&quot;nofollow&quot;&gt;www.4GuysFromRolla.com&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://ayende.com/blog&quot; rel=&quot;nofollow&quot;&gt;ayende.com/blog&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog&quot; rel=&quot;nofollow&quot;&gt;www.codinghorror.com/blog&lt;/a&gt; (more for entertainment, but you do learn how &lt;em&gt;not&lt;/em&gt; to do things as well)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.thejoyofcode.com&quot; rel=&quot;nofollow&quot;&gt;www.thejoyofcode.com&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-08T15:26:46.967" />
  <row Id="24647" PostTypeId="2" ParentId="24555" CreationDate="2010-12-08T15:27:34.503" Score="2" ViewCount="" Body="&lt;h2&gt;Contrarian view&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Learn old ASP as well, because you're likely to find positions for ASP.NET developers who can also maintain the old-style ASP as well.  You don't pay the bills by being a one-trick pony.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, the best way to learn old ASP is by working with it, so don't get too worked up about learning it in isolation --- you'll run across it eventually, and if you have some experience with some other web technology with less magic than ASP.NET, it won't be too hard to pick up.&lt;/p&gt;&#xA;" OwnerUserId="9328" LastActivityDate="2010-12-08T15:27:34.503" CommentCount="1" />
  <row Id="24648" PostTypeId="2" ParentId="24643" CreationDate="2010-12-08T15:29:08.167" Score="5" ViewCount="" Body="&lt;p&gt;I put all the fields, then constructors, then get/sets if any, then methods. That way you can see all of the &quot;meta&quot; object information at the same time. Most of the time, there won't be anything special to see about the get/sets, so I see no point in cluttering up the variable declarations with them.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-08T15:29:08.167" CommentCount="1" />
  <row Id="24649" PostTypeId="1" CreationDate="2010-12-08T15:33:01.110" Score="3" ViewCount="131" Body="&lt;p&gt;Recently I just started college, and while already knowing Java I'm curious as to where I want to go after college. I know there are multiple different positions a programmer can work in during their career. I'm just not sure which one I want to do. Do I want to program back-end frameworks for front end programmers to use or do I want to be the front end programmer using the framework the back-end programmers made. Do I want to program websites or mobile apps or desktop applications?! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are so many options out there and I enjoy doing them all very much I'm just not sure where I want to go in my future. If I'm wrong about any of this then feel free to correct me since I'm still young and learning. If you guys could share some experiences you've had dealing with this I'd really appreciate it. &lt;/p&gt;&#xA;" OwnerUserId="7449" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-08T15:51:50.717" LastActivityDate="2010-12-08T17:07:15.713" ClosedDate="2010-12-08T22:05:50.163" Title="How to figure out what I want to Program for?" Tags="&lt;career&gt;&lt;programming&gt;&lt;future&gt;" AnswerCount="5" />
  <row Id="24650" PostTypeId="2" ParentId="24555" CreationDate="2010-12-08T15:35:16.807" Score="1" ViewCount="" Body="&lt;p&gt;I would hate for my first job to be entirely maintaining and updating some sort of ASP application. That said, knowing how to program in ASP could be useful in supporting an older ASP application as part of a larger .NET job (perhaps helping to convert he application).&lt;/p&gt;&#xA;" OwnerUserId="5972" LastActivityDate="2010-12-08T15:35:16.807" />
  <row Id="24651" PostTypeId="2" ParentId="24649" CreationDate="2010-12-08T15:43:19.863" Score="2" ViewCount="" Body="&lt;p&gt;You will probably do a lot of things in your career, and that's the best way to find out what you like most. I've done backend, frontend, mobile programming, and also web applications. Don't think you will necessarily get stuck with your first decision.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-08T15:43:19.863" />
  <row Id="24652" PostTypeId="2" ParentId="24649" CreationDate="2010-12-08T15:44:01.203" Score="1" ViewCount="" Body="&lt;p&gt;If you enjoy them all then you'll be fine where ever you go and besides you'll probably be constantly changing what technologies/languages/frameworks you're using and where in the stack you'll be doing most of your development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1.)  Pick your first employer really carefully.  Find somewhere that has a good mentoring scheme and works with a bit of pride and passion (think software craftsmanship manifesto).  Don't forget the Joel Test!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2.)  Join your local technical community (JUG + others in your case).  Stay abreast of the industry developments and continue interacting with other excited developers.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-08T15:44:01.203" />
  <row Id="24653" PostTypeId="2" ParentId="24643" CreationDate="2010-12-08T15:45:45.120" Score="3" ViewCount="" Body="&lt;p&gt;I use what the people who have gone before me in the code base use.  Else I'm with Michael&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-08T15:45:45.120" CommentCount="1" />
  <row Id="24654" PostTypeId="2" ParentId="24583" CreationDate="2010-12-08T15:46:22.460" Score="1" ViewCount="" Body="&lt;p&gt;I once had to use pointers (in the unsafe context) in a C# based windows application that would act as an interface to a headset. This application is a user interface that would allow agents (at a call center) to control their headphone settings. This application acts as an alternate to the control panel given by the headset manufacturer. Thus, their ability to control the headsets were limited when compared to the options available. I had to use pointers because I had to use the API (a Visual C++ dll) provided by the headset manufacturer using P/Invoke.&lt;/p&gt;&#xA;" OwnerUserId="9208" LastActivityDate="2010-12-08T15:46:22.460" />
  <row Id="24655" PostTypeId="2" ParentId="24649" CreationDate="2010-12-08T15:47:27.083" Score="2" ViewCount="" Body="&lt;p&gt;You don't need to specialize during your undergraduate studies - at all.  Right now you need to focus on learning the theory.  Algorithms, data structures, computer architecture, and all of the other classes you are about to embark on will apply no matter what your programming career path is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Along the way, since you like it all, make sure your electives cover a broad range.  See if anything really clicks.  If it does, you know you've found something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you find you still like everything, welcome to the club.  One of your best options may be to work on some sort of integration team or another multi-specialization team.  That way you get to do it all over the course of a year and never stop learning.&lt;/p&gt;&#xA;" OwnerUserId="7506" LastActivityDate="2010-12-08T15:47:27.083" />
  <row Id="24656" PostTypeId="2" ParentId="24636" CreationDate="2010-12-08T15:52:27.623" Score="1" ViewCount="" Body="&lt;p&gt;Essentially your job is pretty much as per any good developer on a project:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;To deliver the project to the best of your abilities&lt;/li&gt;&#xA;&lt;li&gt;To propose improvements to technology and process as you feel appropriate (but to accept that they may not be adopted)&lt;/li&gt;&#xA;&lt;li&gt;A mentor and train others&lt;/li&gt;&#xA;&lt;li&gt;Document the work so it is supportable later (this is especially key for contractors)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;One thing that's key to remember is that you are likely to be being paid considerably more than most of the other team members and that it's key that the client feels that they're getting good value for money from you (even where this differs a little from actual value for money).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In some cases they'll want to see you coding, in others they'll see mentoring as a key part of your role.  If in doubt ask (privately rather than in a team meeting) - there's no harm in doing so and you're more likely to end up with a happy client.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-08T15:52:27.623" />
  <row Id="24657" PostTypeId="2" ParentId="24636" CreationDate="2010-12-08T15:59:47.660" Score="2" ViewCount="" Body="&lt;p&gt;Take your biggest concern and build an argument for it. Once you're satisfied you have a solid argument for your point of view, bring it to their attention and see how they react. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they are not interested in what you are saying, drop it. If they are, see what you can do to implement the change(s) quickly and easily, then bring up the next one. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It helps if your argument is something they can understand such as User Experience instead of Framework choice. Save the items they won't understand until they trust you enough to take your word for it.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-12-08T15:59:47.660" />
  <row Id="24658" PostTypeId="1" CreationDate="2010-12-08T16:04:19.340" Score="2" ViewCount="203" Body="&lt;p&gt;Recently I started learning Clojure and downloaded Clojure-Box for Windows which came with SLIME and have been fiddling around with Clojure using the &lt;a href=&quot;http://en.wikipedia.org/wiki/REPL&quot; rel=&quot;nofollow&quot;&gt;REPL&lt;/a&gt; mode. Now, I have starting learning many languages that have REPL available (F#, Python, Haskell) but have never used it until I started with Clojure and I realized how much of a help it is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was wondering how many people use REPL for the languages that have them available. If you don't use them, what is your reasoning not to? If you do use them, do you use them for testing code or just for learning languages?&lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-12-08T23:20:56.803" Title="REPL - Do You Find It Useful?" Tags="&lt;programming-languages&gt;&lt;tools&gt;" AnswerCount="6" />
  <row Id="24659" PostTypeId="2" ParentId="24574" CreationDate="2010-12-08T16:09:42.020" Score="0" ViewCount="" Body="&lt;p&gt;no company or ecosystem is perfect... java is free-er than the .NET environment that's why more used, but not total free... don't bother too much with that in your position&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and you should have a prefference (therefore go make one) or just get a job in whatever [pays better] and don't care&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-12-08T16:09:42.020" CommentCount="2" />
  <row Id="24660" PostTypeId="2" ParentId="24658" CreationDate="2010-12-08T16:10:11.563" Score="2" ViewCount="" Body="&lt;p&gt;I find the REPL very useful, especially when integrated with the text editor as in Clojure-Box or Lisp-Box. The big win is finding out right away if what you're trying to do will work properly. You can execute and test each function as you type it in instead of waiting for the entire application to compile. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-08T16:10:11.563" />
  <row Id="24661" PostTypeId="2" ParentId="24658" CreationDate="2010-12-08T16:10:29.427" Score="2" ViewCount="" Body="&lt;p&gt;Oh yes, I find them very useful. They're nice for testing out a few lines of code, to see if something really works the way you expect it to. Many languages with REPLs also make use of in-code documentation, so it can be really easy to look up an API for a class or module via the REPL.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-12-08T16:10:29.427" />
  <row Id="24662" PostTypeId="2" ParentId="24343" CreationDate="2010-12-08T16:12:48.087" Score="3" ViewCount="" Body="&lt;p&gt;You should know enough automata theory to be able to know where the problem you're dealing with falls in the hierarchy of formal languages. From that, you can figure out a few important practical uses, like why &lt;a href=&quot;http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454&quot;&gt;you shouldn't use a REGEX to parse HTML&lt;/a&gt; (HTML needs a context free grammar to describe it), and why it takes so much longer to compile C++ as opposed to Java or C# (C++ requires a Turing machine, while Java and C# can be described with context free grammars).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most important tiers of formal languages are, from weakest to strongest:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Languages that can be parsed by a finite automata, or a REGEX (REGEX implementations with backreferences are more powerful than this category, but they still can't parse everything in category 2)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Languages that can be parsed by an automata with stack memory, or a context-free grammar.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Languages that can be parsed by a Turing machine, or an automata with random access memory.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1147" LastEditorUserId="1147" LastEditorDisplayName="" LastEditDate="2010-12-09T14:37:09.567" LastActivityDate="2010-12-09T14:37:09.567" CommentCount="10" />
  <row Id="24663" PostTypeId="1" AcceptedAnswerId="24669" CreationDate="2010-12-08T16:13:49.297" Score="11" ViewCount="238" Body="&lt;p&gt;As programmers, many (most?) of us have an inner creative &quot;spark&quot;. We love thinking of new, useful ways to accomplish tasks. Many of us have even dreamed a few ideas we thought could be viable businesses, or even change the way people go about their daily routine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, many of us also work in a corporate environment where we are told which projects to work on and when to work on them. Personally, this can feel suffocating at times. If you have an idea you think could be world changing (or at least effect a lot of people), how do you get passionate about work that is dictated to you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you don't have the next &quot;big idea&quot;, many of us still want to unleash some inner creativity. How do you do this in an environment that seems to be counter-productive to that creativity?&lt;/p&gt;&#xA;" OwnerUserId="4881" LastActivityDate="2010-12-09T18:15:36.623" ClosedDate="2010-12-10T13:33:28.350" Title="How to reconcile inner creativity with the corporate environment?" Tags="&lt;inspiration&gt;&lt;corporate-culture&gt;&lt;creativity&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="1" />
  <row Id="24664" PostTypeId="1" AcceptedAnswerId="24668" CreationDate="2010-12-08T16:13:52.360" Score="4" ViewCount="149" Body="&lt;p&gt;I'm developing a web based personal project that will hopefully be used by thousands.  Obviously prior to releasing it in the wild as Beta I was wondering,  are there any communities out there that will test my web app and provide feedback?  Free would be great, but I'm open to suggestions.&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-12-20T15:00:20.977" Title="Testing of personal projects" Tags="&lt;web-development&gt;&lt;testing&gt;&lt;web-applications&gt;&lt;websites&gt;" AnswerCount="3" CommentCount="4" FavoriteCount="1" />
  <row Id="24665" PostTypeId="1" CreationDate="2010-12-08T16:13:55.940" Score="4" ViewCount="96" Body="&lt;p&gt;Scott Guthrie announced about Silverlight 5 at the Silverlight Firestarter event. Silverlight 5 is likely to be released sometime in the second half of 2011, with the beta in the first half of 2011. While his announcement about the various new forthcoming features were by and large welcomed by the community, there were/are still a considerable number of developers feeling disappointed. So what do you think are most needed features in Silverlight 5?&lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-12-20T21:18:51.123" Title="What do you think are the most needed features that ought to be in Silverlight 5?" Tags="&lt;silverlight&gt;" AnswerCount="4" FavoriteCount="0" />
  <row Id="24666" PostTypeId="2" ParentId="24663" CreationDate="2010-12-08T16:19:37.640" Score="0" ViewCount="" Body="&lt;p&gt;I think there is a balance to strike here, I have done some corporate jobs and though you can't &quot;pick&quot; the software you wnat to do you can do the software you are given in a creative way. Remember with business types it's all about the look. I hate to say it but many times i have been treated more harshly if the app wokred great but looked bad than if it looked good and had some bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, on the other hand if oyu think there is an app that has potential to help your business you will have to do it on the side and once others see what you can provide, they will trust you more to make such decisions. It's the same throughout the company usually. You have to work extra to prove yourself.&lt;/p&gt;&#xA;" OwnerUserId="9334" LastActivityDate="2010-12-08T16:19:37.640" />
  <row Id="24667" PostTypeId="2" ParentId="24665" CreationDate="2010-12-08T16:22:58.630" Score="2" ViewCount="" Body="&lt;p&gt;&lt;code&gt;#region&lt;/code&gt; directives for the XAML&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-12-08T16:22:58.630" />
  <row Id="24668" PostTypeId="2" ParentId="24664" CreationDate="2010-12-08T16:25:02.247" Score="1" ViewCount="" Body="&lt;p&gt;People here perhaps? And users at other stackexchange sites.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe also people from a non-technical background, if, as you say potentially 1000s of users, some of those are likely to be non-technical and will have different issues regarding usability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Friends? Family?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might want to think of some incentives to motivate people to test your site: rewards, founder membership etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And also a criteria to test against.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe you're already aware of the established user-acceptance testing discipline so forgive me if I've told you what you might already know so I won't say too much, except to say there are books, discussions and evangelists on the subject. O'Reilly - oreilly.com the book publish would be a good place to look for more ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check out this book: &quot;Effective UI: The Art of Building Great User Experience in Software&quot;&#xA;&lt;a href=&quot;http://oreilly.com/catalog/9780596154783/&quot; rel=&quot;nofollow&quot;&gt;http://oreilly.com/catalog/9780596154783/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9267" LastEditorUserId="9267" LastEditorDisplayName="" LastEditDate="2010-12-20T15:00:20.977" LastActivityDate="2010-12-20T15:00:20.977" />
  <row Id="24669" PostTypeId="2" ParentId="24663" CreationDate="2010-12-08T16:25:08.830" Score="18" ViewCount="" Body="&lt;p&gt;One place I worked a bunch of designers were complaining that they couldn't do great creative work when all the clients were banks and the like and the briefs were very restrictive.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the producers replied: &lt;strong&gt;&quot;Anyone can do great work when there are no constraints, the mark of those who are really talented is that they can do great work when they're heavily constrained&quot;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not a constraint, it's a challenge.  Apply your creativity to doing great work in a non-ideal situation and to produce &lt;em&gt;brilliant&lt;/em&gt; solutions to the problems in front of you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only when you're confident you're doing that consistently should you start seeing the situation as the limiting factor - until that point you're just not growing and pushing in the right directions.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-08T16:25:08.830" CommentCount="9" />
  <row Id="24670" PostTypeId="2" ParentId="24664" CreationDate="2010-12-08T16:27:01.800" Score="1" ViewCount="" Body="&lt;p&gt;Speaking from experience. Find your target audience. Find people you know, people who will be honest. You have to have a pain in the butt friend who would love to tear your app to shreds. Though this answer seems light, watching a user use your app is the most beneficial thing i have ever done. My favorite test is to sit them down and give them no instruction. Figure out what they WANT to do.&lt;/p&gt;&#xA;" OwnerUserId="9334" LastActivityDate="2010-12-08T16:27:01.800" CommentCount="1" />
  <row Id="24671" PostTypeId="1" CreationDate="2010-12-08T16:28:34.770" Score="4" ViewCount="337" Body="&lt;p&gt;Does Windows Forms Development provide good career opportunities compared to web application development for a MS.NET Developer who is new to .net?&lt;/p&gt;&#xA;" OwnerUserId="9339" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-08T16:41:55.190" LastActivityDate="2010-12-08T23:28:41.133" Title="Windows Forms Application Vs Web Application(.net web apps)" Tags="&lt;career&gt;" AnswerCount="10" />
  <row Id="24672" PostTypeId="2" ParentId="24663" CreationDate="2010-12-08T16:29:04.223" Score="1" ViewCount="" Body="&lt;p&gt;Volunteer. Do voluntary work helping others using your skills. You never know where it would lead. Help friends who aren't technical. Learn about your business, try to apply why you are employed makes you useful to them, to your own projects. Read Passionate Programmer - at oreilly.com&lt;/p&gt;&#xA;" OwnerUserId="9267" LastActivityDate="2010-12-08T16:29:04.223" />
  <row Id="24673" PostTypeId="2" ParentId="24663" CreationDate="2010-12-08T16:29:06.953" Score="3" ViewCount="" Body="&lt;p&gt;You really have only four reasonable options in order of difficulty.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Participate in communities&lt;/li&gt;&#xA;&lt;li&gt;Do your own projects on your own time.&lt;/li&gt;&#xA;&lt;li&gt;Quit your job and start your own business&lt;/li&gt;&#xA;&lt;li&gt;Get your boss to let you work on your projects you want to do.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The first two are pretty straight forward (and you're already doing the first one). The last one isn't actually as hard as it seems. The hard part is finding something you want to do. Once you've done that all you have to is follow Eric Brechner's advice given on his post &lt;a href=&quot;http://blogs.msdn.com/eric_brechner/archive/2005/08/01/august-1-2005-controlling-your-boss-for-fun-and-profit.aspx&quot; rel=&quot;nofollow&quot;&gt;Controlling your boss for fun and profit&lt;/a&gt; which breaks down to presenting the following four items&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Identify a problem &lt;/li&gt;&#xA;&lt;li&gt;Define the solution &lt;/li&gt;&#xA;&lt;li&gt;Call out Issues and their mitigations&lt;/li&gt;&#xA;&lt;li&gt;Next steps&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-12-08T16:29:06.953" />
  <row Id="24674" PostTypeId="2" ParentId="24649" CreationDate="2010-12-08T16:30:12.553" Score="0" ViewCount="" Body="&lt;p&gt;try a different perspective since with this one you didn't find a favourite place... like, how much money you want ? and go look for certifications and what they get you.&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-12-08T16:30:12.553" />
  <row Id="24675" PostTypeId="2" ParentId="24671" CreationDate="2010-12-08T16:31:07.130" Score="5" ViewCount="" Body="&lt;p&gt;play the odds; learn both&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-08T16:31:07.130" />
  <row Id="24676" PostTypeId="2" ParentId="24663" CreationDate="2010-12-08T16:36:05.127" Score="2" ViewCount="" Body="&lt;p&gt;go opensource with your idea (that, of course, if you don't care about monetizing what you develop; even with this, you can later get money by doing consulting).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;this way you will leverage time and research for your idea through a community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;seems the most accessible way to start...&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-12-08T16:36:05.127" CommentCount="2" />
  <row Id="24677" PostTypeId="2" ParentId="21782" CreationDate="2010-12-08T16:37:51.540" Score="0" ViewCount="" Body="&lt;p&gt;So I am someone who has 11+ years of experience and have done C, C++, and C#. I love all of it. There is definately the side of me that is rewrded from writing something &quot;small&quot; and concise. Nowadays I will use C on devices and out-of-the box scenarios, but mostly C#. I usually get paid to be a business developer. My reward her eis interacting with users and watching their life become easier. I get excitement from cool front-ends. So my feeling is do it all but do only what rewards you. As far as frameworks go I personally always viewed .net as a new windows API. I had trouble with MFC and such but .net was different for me. I even use .net micro for devices now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said do what rewards you (i'll keep saying it) You can always do both, front-ends in C#, back-ends in C++ but for me i try to find the right tool for the job. Whether it's C, C++, C#, F#, or javascript.&lt;/p&gt;&#xA;" OwnerUserId="9334" LastActivityDate="2010-12-08T16:37:51.540" />
  <row Id="24678" PostTypeId="2" ParentId="24671" CreationDate="2010-12-08T16:39:20.977" Score="3" ViewCount="" Body="&lt;p&gt;It depends on where you are, but around here there are jobs for both. My last job was and, to some extent, my current job is in the desktop .NET development.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-08T16:39:20.977" />
  <row Id="24680" PostTypeId="2" ParentId="24671" CreationDate="2010-12-08T16:41:24.377" Score="1" ViewCount="" Body="&lt;p&gt;There is no such thing as a career choice like that. You will be shaped by your choices throughout your career. I tend to do both but lately more web. We is easier for companies to deploy so they like it more. But I am a systems guy somewhere down in the core.&lt;/p&gt;&#xA;" OwnerUserId="9334" LastEditorUserId="162" LastEditorDisplayName="" LastEditDate="2010-12-08T17:30:51.367" LastActivityDate="2010-12-08T17:30:51.367" />
  <row Id="24681" PostTypeId="1" CreationDate="2010-12-08T16:47:06.463" Score="5" ViewCount="624" Body="&lt;p&gt;Charles Barkley was an excellent basketball player, a hall of fame, and a dream team member.  He played for the 76ers, Suns, and Rockets.  Yet he never won an NBA championship.  Some might argue this was because he was never surrounded by other players of his caliber, and in the NBA, you can't win on your own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what does this have to do with programming?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How many of you out there feel like Sir Charles?  Leading your team in every category, KLOCs, bugs fixed, systems configured...  Always the one pushing for improvements, upgrading systems, negotiating with customers...  Feeling like you are carrying the team.  Anger just under the surface.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only to retire eventually, without &quot;the ring&quot;&lt;sup&gt;1&lt;/sup&gt;.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;&#xA;1: Keep in mind, Charles never blamed his team.  He just performed at his best.&#xA;&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="2078" LastEditorUserId="5014" LastEditorDisplayName="" LastEditDate="2011-01-30T18:33:02.810" LastActivityDate="2011-01-31T04:32:20.447" Title="Charles Barkley syndrome" Tags="&lt;teamwork&gt;" AnswerCount="8" CommentCount="12" />
  <row Id="24682" PostTypeId="2" ParentId="24681" CreationDate="2010-12-08T16:49:29.083" Score="11" ViewCount="" Body="&lt;p&gt;Yes, so I left.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I'm in a group with people smarter than me and I have to try and keep up.  It's refreshing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe Barkley should have done what LeBron did and switched to a team he thought could win something.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You never know how a potential job/team change will work about before you make it, but if you are that unhappy you should find somewhere that will appreciate your skillset and passion.&lt;/p&gt;&#xA;" OwnerUserId="2044" LastActivityDate="2010-12-08T16:49:29.083" CommentCount="4" />
  <row Id="24683" PostTypeId="2" ParentId="24664" CreationDate="2010-12-08T16:49:59.037" Score="1" ViewCount="" Body="&lt;p&gt;I use three stages of testing:&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Alpha&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Alpha testing is primarily done among the developers. It sounds like you're in this stage. Here people are responsive from a technical angle, they can identify errors and know what causes them along with fix recommendations. Programmers.SE might be the crowd you're looking for here.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Beta&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Beta testing is done among your target audience. Advertise a beta period, keep it to a manageable size and have a public wiki / bug / issue tracker available. &lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Release Candidates&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;This is an optional step for developing applications. Here you would advertise to your target audience and beyond a potential release. Freeze the version number and consolidate features here. Limit work to bug fixing and minor UI issues.  &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-08T16:49:59.037" CommentCount="2" />
  <row Id="24684" PostTypeId="1" AcceptedAnswerId="24688" CreationDate="2010-12-08T16:50:03.557" Score="2" ViewCount="546" Body="&lt;p&gt;What's the point of MonoDroid as Java is THE language while developing for Android? Does C# worth that much?&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-12-08T19:13:48.973" ClosedDate="2010-12-10T12:27:18.303" Title="What's the point of MonoDroid as Java is there?" Tags="&lt;java&gt;&lt;c#&gt;&lt;monodroid&gt;" AnswerCount="2" CommentCount="7" />
  <row Id="24685" PostTypeId="2" ParentId="24671" CreationDate="2010-12-08T16:55:38.187" Score="1" ViewCount="" Body="&lt;p&gt;In .net there is less of a distinction here than you might think.  Once you get past all the presentation stuff the internals for the actual logic are the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn the internals then work wherever.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-12-08T16:55:38.187" />
  <row Id="24687" PostTypeId="2" ParentId="24681" CreationDate="2010-12-08T17:00:29.213" Score="0" ViewCount="" Body="&lt;p&gt;I have had this, but only during my non-programming related job during university but I don't think it would matter too much. It is obvious that there is always going to be one person who is better than everyone else: Its impossible to find a dev team of 10 people who have equal skills. And why would you want to? If everyone has equal skills, then no one will learn anything. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I only entered the world of work 2 years ago, but I have used the smarter people in my team to learn and to expand my own knowledge and I would hope that by learning from them, I can catch them up and take away some of the things they are better at. If one person has to carry the team, I would hope it would be to a better place where the whole team improve to (nearer) the standard of the better person. Its a big responsibility but one that is important in any dev team&lt;/p&gt;&#xA;" OwnerUserId="154" LastActivityDate="2010-12-08T17:00:29.213" />
  <row Id="24688" PostTypeId="2" ParentId="24684" CreationDate="2010-12-08T17:00:31.317" Score="15" ViewCount="" Body="&lt;p&gt;I'm pretty proficient in C#. I am not at all proficient in Java. If I needed to develop an Android app, MonoDroid would be my first choice since it means I don't have to spend time on learning Java, Android-specific Java, and pick up a different toolset before I can get to making real progress on my app. It basically would just enable me to ship faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having options when it comes to choosing a development language is a good thing.&lt;/p&gt;&#xA;" OwnerUserId="226" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2010-12-08T18:11:08.013" LastActivityDate="2010-12-08T18:11:08.013" CommentCount="1" />
  <row Id="24689" PostTypeId="2" ParentId="24649" CreationDate="2010-12-08T17:07:15.713" Score="1" ViewCount="" Body="&lt;p&gt;I agree with most of this advice. You shouldn't be specialising so early, you should learn the basics of Java as you progress in University. I know from experience that when I started learning Java, I wanted to do everything. But then when I did everything, I realised it wasn't really what I expected. I didn't really enjoy GUIs, so front-end development was out. Along with GUIs, web development was out. So now that I know GUIs aren't for me, it was a case of looking into what was left and choosing from that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I eventually went into finance working on back end processes with large data sets. It may sound boring, but it uses a considerable amount of the algorithms work I did at uni, plus it needs well performing software and an understanding of finance. The best part is there's not a GUI in site! :¬)&lt;/p&gt;&#xA;" OwnerUserId="154" LastActivityDate="2010-12-08T17:07:15.713" />
  <row Id="24690" PostTypeId="2" ParentId="24663" CreationDate="2010-12-08T17:09:14.180" Score="0" ViewCount="" Body="&lt;p&gt;do your job professionally and efficiently&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;When an actor comes to me and wants to discuss his character, I say, 'It's in the script.' If he says, 'But what's my motivation?, ' I say, 'Your salary.' &#xA;--Alfred Hitchcock&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;be creative on your own time&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: if your creative insights let you do your job more efficiently, great. Otherwise if you feel &quot;stifled&quot; and the paycheck is insufficiently motivating, find another job, or create your own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT 2: &lt;a href=&quot;http://sethgodin.typepad.com/seths_blog/2010/12/wheres-your-platform.html&quot; rel=&quot;nofollow&quot;&gt;Seth Godin&lt;/a&gt; has a relevant post on this today &lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-12-09T18:15:36.623" LastActivityDate="2010-12-09T18:15:36.623" CommentCount="3" />
  <row Id="24691" PostTypeId="1" AcceptedAnswerId="24750" CreationDate="2010-12-08T17:11:19.790" Score="12" ViewCount="595" Body="&lt;p&gt;In PHP it's &lt;code&gt;strrev()&lt;/code&gt;, in Rails it's &lt;code&gt;.reverse&lt;/code&gt;, but most languages don't have any string reverse function. Some have array reverse functions that can be used on characters. I was thinking this must be a major oversight but then it occurred to me, what would you actually use string reverse for???&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only time I can think I've seen it is in demos and lessons to turn &quot;Hello World!&quot; into &quot;!dlroW olleH&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is; Is there a use for reversing a string or is it completely pointless?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Addendum&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There have been way more answers that I had anticipated and not all of them were entirely academic. I would have put money that no one could come up with a legitimate example. I also didn't think I would learn anything new but Mark Canlas' regex suggestion is just brilliant and I look forward to the opportunity for it to prove itself. Thanks to all.&lt;/p&gt;&#xA;" OwnerUserId="6634" LastEditorUserId="6634" LastEditorDisplayName="" LastEditDate="2010-12-09T19:11:19.477" LastActivityDate="2010-12-09T19:58:11.810" Title="What do you use string reversal for?" Tags="&lt;programming-languages&gt;&lt;software-developer&gt;&lt;language-agnostic&gt;" AnswerCount="16" CommentCount="11" FavoriteCount="1" />
  <row Id="24693" PostTypeId="2" ParentId="24681" CreationDate="2010-12-08T17:11:59.623" Score="2" ViewCount="" Body="&lt;p&gt;There's always something to get better at. If you're in that situation, sometimes you can make the whole team better, too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Grow as a mentor and a coach, and you may find that those folks you led are now challenging you to keep up.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-12-08T17:11:59.623" />
  <row Id="24694" PostTypeId="2" ParentId="22265" CreationDate="2010-12-08T17:12:59.210" Score="1" ViewCount="" Body="&lt;p&gt;Since you are just getting ready to go into the work force, I'm going to point out something else. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Entry level programmers are never superstars. You can't go into a job thinking you are better than everyone else because demonstrably, you are not. You have been competing with other people at your level, so you can think, I'm better than these people, I must be a great programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But someone fresh out of school does not know what the person who has ten years of professional experience knows. You just don't know it yet. Now I admit not everyone with lots of experience is a superstar either and just being entry level doen't mean you can't be a decent programmer. It doesn't even mean you can't become a superstar with less seasoning than some other people (Well some will never be superstars, but thats OK too).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you won't have the credibilty to get your ideas implemented until you are something other than the most junior person on the team. To get that credibility, you need to be a team player. You need to learn about the business domain and how businesses operate. You need to understand that your personal needs and wants are irrelevant in the workplace most places. You are going to be hired to do a specific job and produce results. Until you have produced some of them, people will be skeptical of whatever you suggest even if you are correct. You have to walk the walk before you can talk the talk. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-08T17:12:59.210" CommentCount="2" />
  <row Id="24695" PostTypeId="2" ParentId="24691" CreationDate="2010-12-08T17:14:48.487" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I dunno maybe someone has a burning need to check for &lt;em&gt;palindrome's&lt;/em&gt;....&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think its completely useless, as there may well be situations where one needs to be able to reverse a string.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-08T17:26:53.103" LastActivityDate="2010-12-08T17:26:53.103" CommentCount="3" />
  <row Id="24696" PostTypeId="2" ParentId="24691" CreationDate="2010-12-08T17:15:45.967" Score="11" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;public bool IsPalindrome(string toCheck)&#xA;{&#xA;    return toCheck == toCheck.Reverse();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-12-08T17:15:45.967" CommentCount="5" />
  <row Id="24697" PostTypeId="2" ParentId="24538" CreationDate="2010-12-08T17:22:32.953" Score="0" ViewCount="" Body="&lt;p&gt;Here are my suggestions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Help me understand myself.  This can be tricky as well as quite costly to some degree as this is rather personalized, but the key here is to help me know what are my strengths, what kinds of things do I like to do in a professional setting, how could the company better utilize me, etc.  Note that this can be quite psychological or spiritual so some sensitivity may be required.  For example, some people may believe in a higher power that has a reason for everything that exists while others may think the bible is a book of fairy tales, just to give the extremes with most people being somewhere between the two.  Another part here is finding one's passions and interests, which may not always be easy of course.  Other areas under here could include MBTI, Enneagram, Strengths Finder, or F-Score to name a few tests one could take to try to learn more about themselves.  The self-awareness part of emotional intelligence is also here as well for another idea of how to approach this.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Let me know my path choices in the company.  For example, if I am happy being a developer, could I be one for 25 years at the company?  Do I have to find some career progression and walk down that road?  This is partially about my knowing what the company wants and could use but also about my knowing what options do I have to explore.  Some people may want to choose from a list of options rather than create their own out of thin air.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Help me find the resources to advance myself.  This is what comes after I know who I am and where I could go.  Is there a mentorship program in the company?  Are there volunteer groups that may interest me and show me that the company cares about the community around me?  What is there to help me move from where I am to where I want to be.  Another way to look at this is the question of how much assistance is there in setting goals that could be provided.  I don't want to have to come up with all of the points on my own, but I also don't want this forced upon me either.  Is there a peer recognition group?  Are there athletic or artistic groups that I may want to join?  Another side here is that beyond knowing what is out there, encouragement and emotional support may also be key points here in my attempt at personal fulfillment.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Relationships and communication development.  In a way this is covering some other areas of emotional intelligence where the point here can be to help me see what kinds of relationships do I have, how engaged am I, how well am I communicating what I do, want, or need?  A tricky part here is that while this may come across as rather &quot;girlie&quot; the reality is that I'm pretty sure this wasn't covered in my Math or Computer Science classes even though part of the nature of my existence is to have bonds with other people and share stuff.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I'll admit to going down some of these myself in terms of what I'd like from the learning and development department.  I suppose asking for a change on that development part may be asking too much, right? :)&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-08T17:22:32.953" CommentCount="1" />
  <row Id="24698" PostTypeId="2" ParentId="24691" CreationDate="2010-12-08T17:27:02.387" Score="6" ViewCount="" Body="&lt;p&gt;I've seen situations where a desktop application was talking with embedded devices and was switching byte-order endianness constantly, and data was moved around as strings. That's about it for me though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't have used strings for that application but thats just the way it was.....&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-12-08T17:27:02.387" CommentCount="1" />
  <row Id="24699" PostTypeId="2" ParentId="24681" CreationDate="2010-12-08T17:27:08.707" Score="0" ViewCount="" Body="&lt;p&gt;Teach, don't preach. It's always fun to make yourself sound smart and make other people feel dumb/inferior, but that won't help them. Some don't want to hear it, so don't waste your time on them. There will be at least one or two people willing to listen and learn. Pass on what others have passed on to you.&lt;/p&gt;&#xA;" OwnerUserId="1197" LastActivityDate="2010-12-08T17:27:08.707" CommentCount="2" />
  <row Id="24700" PostTypeId="2" ParentId="24658" CreationDate="2010-12-08T17:30:23.693" Score="2" ViewCount="" Body="&lt;p&gt;Absolutely.  I've been using GHCi (the Glasgow Haskell Compiler's REPL) quite often.  Although I think the best way to learn how to design substantial programs is by typing them in a text editor (where you can write more than one line easily), a REPL provides some major advantages:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Makes testing one-liners easy, so you can learn language features quickly:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;gt; (\xs -&amp;gt; zip xs (tail xs)) [1..10]&#xA;[(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9),(9,10)]&#xA;&amp;gt; (zip &amp;lt;*&amp;gt; tail) [1..10]&#xA;[(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9),(9,10)]&#xA;&amp;gt;&#xA;&amp;gt; sortBy (\a b -&amp;gt; compare (length a) (length b)) [&quot;ab&quot;, &quot;abc&quot;, &quot;a&quot;]&#xA;[&quot;a&quot;,&quot;ab&quot;,&quot;abc&quot;]&#xA;&amp;gt; sortBy (compare `on` length) [&quot;ab&quot;, &quot;abc&quot;, &quot;a&quot;]&#xA;[&quot;a&quot;,&quot;ab&quot;,&quot;abc&quot;]&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Provides in-console documentation:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;gt; :i &amp;lt;*&amp;gt;&#xA;class (Functor f) =&amp;gt; Applicative f where&#xA;  ...&#xA;  (&amp;lt;*&amp;gt;) :: f (a -&amp;gt; b) -&amp;gt; f a -&amp;gt; f b&#xA;  ...&#xA;    -- Defined in Control.Applicative&#xA;infixl 4 &amp;lt;*&amp;gt;&#xA;&amp;gt;&#xA;&amp;gt; :i on&#xA;on :: (b -&amp;gt; b -&amp;gt; c) -&amp;gt; (a -&amp;gt; b) -&amp;gt; a -&amp;gt; a -&amp;gt; c&#xA;      -- Defined in Data.Function&#xA;infixl 0 on&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Great for doing simple (and even not-so-simple) tasks when you'd rather not write a whole program:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;gt; -- Find longest words that don't have repeated characters.&#xA;&amp;gt;&#xA;&amp;gt; readFile &quot;/home/joey/twl06&quot; &amp;gt;&amp;gt;= mapM_ putStrLn . take 10 . reverse . sortBy (compare `on` length) . filter ((==) &amp;lt;*&amp;gt; nub) . lines&#xA;UNCOPYRIGHTABLE&#xA;DERMATOGLYPHICS&#xA;TROUBLEMAKINGS&#xA;DERMATOGLYPHIC&#xA;AMBIDEXTROUSLY&#xA;UNPROBLEMATIC&#xA;UNPREDICTABLY&#xA;TROUBLEMAKING&#xA;SUBORDINATELY&#xA;MULTIBRANCHED&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3650" LastEditorUserId="3650" LastEditorDisplayName="" LastEditDate="2010-12-08T18:34:54.873" LastActivityDate="2010-12-08T18:34:54.873" />
  <row Id="24701" PostTypeId="2" ParentId="24681" CreationDate="2010-12-08T17:32:34.817" Score="4" ViewCount="" Body="&lt;p&gt;As a (seemingly) leader in your team, you should NEVER mention to your team (or your bosses) that you don't feel like you're getting the credit you deserve. If you really want to get the credit you feel you deserve I have a semi-wild suggestion for you -&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Help out your team. Help them fix bugs, help them configure systems. When time comes, and someone says &quot;Hey, great job on getting all those bugs fixed Joe&quot; - let him take the credit. The people around you will know what truly happened and will respect you more for not playing the &quot;I/Me&quot; game. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes you're better off staying in the background and letting the team take credit for the work that was accomplished. If you're carrying the load you SHOULD NOT say as much. TEAMS succeed or fail, NOT people.&lt;/p&gt;&#xA;" OwnerUserId="9018" LastActivityDate="2010-12-08T17:32:34.817" CommentCount="2" />
  <row Id="24702" PostTypeId="1" CreationDate="2010-12-08T17:36:06.043" Score="6" ViewCount="452" Body="&lt;p&gt;I read &lt;a href=&quot;http://martinfowler.com/bliki/TeamRoom.html&quot; rel=&quot;nofollow&quot;&gt;an article by Martin Fowler talking about team rooms&lt;/a&gt;, which says that &quot;Toys are commonly found around our teams&quot; to improve creativity, as game and creativity are linked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have any toys in your team room / place of work? Which toys?&lt;/p&gt;&#xA;" OwnerUserId="9341" LastActivityDate="2010-12-09T21:44:52.793" Title="Toys to improve developers' creativity" Tags="&lt;self-improvement&gt;&lt;games&gt;&lt;creativity&gt;&lt;teamwork&gt;" AnswerCount="15" FavoriteCount="1" />
  <row Id="24703" PostTypeId="2" ParentId="24702" CreationDate="2010-12-08T17:38:41.867" Score="5" ViewCount="" Body="&lt;p&gt;Nerf weapons are great tools for relieving stress and redirecting frustration and aggression into harmless physical outlets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Classic 80's stand-up arcade games are great, too.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-12-08T17:38:41.867" CommentCount="5" />
  <row Id="24704" PostTypeId="2" ParentId="24702" CreationDate="2010-12-08T17:38:43.287" Score="4" ViewCount="" Body="&lt;h2&gt;Yo-Yo&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I'm not sure about the creativity improvement, but it is very helpful when you want to take a rest.&#xA;Also, we have ping-pong, chess, dart, but my favorite is &lt;strong&gt;yo-yo&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-08T17:38:43.287" CommentCount="2" />
  <row Id="24705" PostTypeId="2" ParentId="24658" CreationDate="2010-12-08T17:43:32.873" Score="2" ViewCount="" Body="&lt;p&gt;Once I discovered &lt;a href=&quot;http://linqpad.net/&quot; rel=&quot;nofollow&quot;&gt;LINQPad&lt;/a&gt;, my IDE usage for scratch projects and learning went way down. Although not traditional REPL, it is a scratch-pad-type interface for .NET languages and is excellent for learning and testing.  There are so many times that I just want to try something out quickly without the full-blown heavyweight development environment and REPL is perfect for that.&lt;/p&gt;&#xA;" OwnerUserId="9251" LastEditorUserId="9251" LastEditorDisplayName="" LastEditDate="2010-12-08T18:43:49.590" LastActivityDate="2010-12-08T18:43:49.590" />
  <row Id="24706" PostTypeId="2" ParentId="24702" CreationDate="2010-12-08T17:44:32.560" Score="0" ViewCount="" Body="&lt;p&gt;Our company gave us &lt;a href=&quot;http://www.thinkgeek.com/geektoys/cubegoodies/5ac8/&quot; rel=&quot;nofollow&quot;&gt;Thinking Puddy&lt;/a&gt; branding the case with our company motto/logo. Addicting to play with.&lt;/p&gt;&#xA;" OwnerUserId="9334" LastActivityDate="2010-12-08T17:44:32.560" />
  <row Id="24707" PostTypeId="2" ParentId="24671" CreationDate="2010-12-08T17:47:23.563" Score="1" ViewCount="" Body="&lt;p&gt;In today's competitive market, as a developer you have to have enough skills in your tool box that makes you attractive to companies who are looking to hire.  This means that when interviewing and presenting your resume, you must present yourself as being better than the others in the long line who are looking for work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn as much as you can.  this means not only Windows forms , but WPF, ASP.Net web forms as well as ASP.net MVC as well as other design patterns such as MVVM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Windows forms is considered by some to be old technology.  You may or may not agree, but in some cases the market decides what environments are important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been in this industry for over 25 years and every 5 years I have to re-learn everything over again, as the technology keeps on changing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good Luck&lt;/p&gt;&#xA;" OwnerUserId="9342" LastActivityDate="2010-12-08T17:47:23.563" />
  <row Id="24709" PostTypeId="2" ParentId="24629" CreationDate="2010-12-08T17:49:35.167" Score="1" ViewCount="" Body="&lt;p&gt;See this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/189225/c-books-for-developers-that-know-object-oriented-programming/575205#575205&quot;&gt;http://stackoverflow.com/questions/189225/c-books-for-developers-that-know-object-oriented-programming/575205#575205&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6300" LastActivityDate="2010-12-08T17:49:35.167" CommentCount="1" />
  <row Id="24710" PostTypeId="2" ParentId="610" CreationDate="2010-12-08T17:49:44.497" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Java&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may sound trivial, but I like foreach + generics a lot (or maybe I just hate iterators)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;List&amp;lt;String&amp;gt; list = new ArrayList&amp;lt;String&amp;gt;();&#xA;for(String element : list) {&#xA;    log(element);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;comparing to:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;List list = new ArrayList();&#xA;Iterator iter = list.iterator();&#xA;while (iter.hasNext()){&#xA;      String element = (String)iter.next();&#xA;      log(element);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="193" LastActivityDate="2010-12-08T17:49:44.497" CommunityOwnedDate="2010-12-08T17:49:44.497" />
  <row Id="24712" PostTypeId="2" ParentId="24671" CreationDate="2010-12-08T18:03:50.390" Score="0" ViewCount="" Body="&lt;p&gt;Most postings I see are for ASP.NET. Learn C# REALLY well. Learn enough VB.net so you know to use C# instead. Then start working on the web and desktop frameworks.&lt;/p&gt;&#xA;" OwnerUserId="1197" LastActivityDate="2010-12-08T18:03:50.390" CommentCount="2" />
  <row Id="24713" PostTypeId="2" ParentId="24702" CreationDate="2010-12-08T18:05:58.203" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Wire from a twisted pair&lt;/strong&gt;. Everybody in our office like to play with it. Many interesting shapes we did from a wire - Wireman, spoons, forks, a sword, octahedron, and even small computer. It's cheap (we have it from old twisted pair wired in our office), and funny.&lt;/p&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-12-08T18:05:58.203" CommentCount="2" />
  <row Id="24714" PostTypeId="2" ParentId="24691" CreationDate="2010-12-08T18:07:18.017" Score="5" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;&amp;lt;span style=&quot;unicode-bidi: bidi-override; direction:rtl;&quot;&amp;gt;&#xA;    &amp;lt;?php echo strrev($emailaddress); ?&amp;gt;&#xA;&amp;lt;/span&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Not the best solution for obfuscating an email address, since when you add it to the clipboard it's still reversed.  And, if it became popular, it would soon be detected by email scraping bots.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, it's &lt;a href=&quot;http://perishablepress.com/press/2010/08/01/best-method-for-email-obfuscation/&quot; rel=&quot;nofollow&quot;&gt;been suggested&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-08T18:07:18.017" CommentCount="3" />
  <row Id="24716" PostTypeId="2" ParentId="24702" CreationDate="2010-12-08T18:07:41.150" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.getbuckyballs.com/&quot; rel=&quot;nofollow&quot;&gt;Bucky Balls&lt;/a&gt;. Lots of cool things you do with these.&lt;/p&gt;&#xA;" OwnerUserId="190" LastActivityDate="2010-12-08T18:07:41.150" CommentCount="1" />
  <row Id="24717" PostTypeId="2" ParentId="1599" CreationDate="2010-12-08T18:08:55.457" Score="1" ViewCount="" Body="&lt;p&gt;I will answer with my bad habit below:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;now when i write to peopleWorkers i tend to use camel case and void all punctuation and add the semicolon;&lt;/p&gt;&#xA;" OwnerUserId="9334" LastActivityDate="2010-12-08T18:08:55.457" CommunityOwnedDate="2010-12-08T18:08:55.457" CommentCount="1" />
  <row Id="24718" PostTypeId="2" ParentId="24629" CreationDate="2010-12-08T18:12:34.110" Score="0" ViewCount="" Body="&lt;p&gt;I learned the same way I started learning any language. I had a task I wanted to complete and I started doing it. My first work with .NET was taking &lt;a href=&quot;http://blogs.msdn.com/b/coding4fun/archive/2007/10/02/5246528.aspx&quot; rel=&quot;nofollow&quot;&gt;this code used for managing wallpaper for multiple monitors&lt;/a&gt;, and modifying it so that while it was running it would check every minute to see if the current wallpaper was still set to the image it ultimately created. This way if my company had one of its jobs override my wallpaper with the corporate wallpaper, my modified program would change it back. After that I created a winforms app that would encrypt/decrypt strings for me provided I had an input string and the seed and could choose an encryption method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point I'm trying to make is that learning .NET is the same as learning any language: the best way to learn is to just start doing, while finding the appropriate resources needed along the way.&lt;/p&gt;&#xA;" OwnerUserId="1073" LastActivityDate="2010-12-08T18:12:34.110" />
  <row Id="24719" PostTypeId="1" CreationDate="2010-12-08T18:15:06.200" Score="0" ViewCount="316" Body="&lt;p&gt;Hi guys i would like to give me some hints about how to click a javascript button using Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My goal is to make a script that can login at my Facebook page and then post a Message at my Wall.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first part i have already done it, it logs in successfully into my Profile page. But then, in order to Write something into the field and submit it requires some Javascript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here it is my code so far [ i have change my gredentials like user, pass, composer's_id..]&#xA;Also you have to make a file &lt;strong&gt;logs.txt&lt;/strong&gt;. There the code of the Profile Source Code will be print out so you can test and search if you did it&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#coding=utf-8&#xA;import urllib, urllib2, cookielib&#xA;&#xA;user = 'YOUR_USERNAME'&#xA;passwd = 'YOUR_PASSWORD'&#xA;&#xA;file = './logs.txt'&#xA;&#xA;url_login = &quot;https://login.facebook.com/login.php?&quot;&#xA;url_action = &quot;https://login.facebook.com/login.php?login_attempt=1&quot;&#xA;url_topic = &quot;http://www.facebook.com/home.php?#!/profile.php?id=YOUR_ID_NUMBER_FOUND_FROM_SOURCE_CODE_OF_PAGE&quot;&#xA;url_index = &quot;https://login.facebook.com/login.php?&quot;&#xA;&#xA;&#xA;def login(user, password, url_action):&#xA;    cj = cookielib.LWPCookieJar()&#xA;    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())&#xA;    urllib2.install_opener(opener)&#xA;    opener.addheaders=[('Content-Type','application/x-www-form-urlencoded'),('Connection','keep-alive'),('User-Agent','Mozilla/5.0')]&#xA;    params = urllib.urlencode({'action':url_action , 'referer':url_index, 'email':user, 'pass':passwd, &#xA;                                  'loginTrue':&quot;login&quot;})&#xA;&#xA;    f = opener.open(url_action, params)&#xA;    f.close()&#xA;    f = opener.open(url_action, params)&#xA;    f.close()&#xA;    return opener&#xA;&#xA;&#xA;def make_post(opener, url_topic, post):&#xA;    url_index = &quot;http://www.facebook.com/?ref=home#!/home.php/ajax/updatestatus.php&quot;  &#xA;    params = urllib.urlencode(dict(action= url_index, enctype=&quot;multipart/form-data&quot;, status = 'Τι σκέφτεστε;',&#xA;                                    charset_test='&amp;amp;euro;,&amp;amp;acute;,€,´,水,Д,Є', fb_dtsg='xq13S',&#xA;                                    composer_id='xxxxxxxxxxxxxxxx', profile_id='xxxxxxxxxxx',&#xA;                                    target_id='0', display_context='home'))&#xA;    f = opener.open(url_topic, params)&#xA;    f.close()&#xA;&#xA;&#xA;def get_source_code( opener, url_x ):&#xA;    f = opener.open(url_x)&#xA;    data = f.read()&#xA;    print type(data)&#xA;    f.close()&#xA;    return data&#xA;&#xA;&#xA;def keep_log( data, file ):&#xA;    f = open(file, 'w')&#xA;    f.write(data)&#xA;    f.close()&#xA;&#xA;&#xA;opener = login(user, passwd, url_action)&#xA;src_code = get_source_code(opener, url_topic)&#xA;keep_log(src_code, file)&#xA;print src_code&#xA;make_post(opener, url_topic, &quot;test&quot;)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I am Greek so some part should be filled in the appropriate language if you want to try it.&lt;/p&gt;&#xA;" OwnerUserId="9343" LastActivityDate="2010-12-08T18:15:06.200" ClosedDate="2010-12-08T18:42:00.873" Title="How to submit a Javascript button through Python?" Tags="&lt;python&gt;&lt;web-applications&gt;&lt;javascript&gt;&lt;facebook&gt;" CommentCount="1" />
  <row Id="24720" PostTypeId="2" ParentId="24681" CreationDate="2010-12-08T18:15:24.093" Score="0" ViewCount="" Body="&lt;p&gt;Developers come in three flavors ... Einstein, Elvis and Mort. You know the Einsteins ... it might be you based on your question.  You know the Elvis ... he's all over twitter, posting blogs, trying to get famous from being a developer.  And, you know the Mort ... he shows up at 9:00 a.m. does a decent job and wants to go home at 5:00 p.m.  When you're Einstein, it can be very challenging dealing with Mort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/The_Mythical_Man-Month&quot; rel=&quot;nofollow&quot;&gt;Mythical Man Month&lt;/a&gt; cites a study that indicates there is as wide as a 10:1 ratio between good developers and average developers ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Within just this group the ratios between best and worst performances averaged about 10:1 on productivity measurements and an amazing 5:1 on program speed and space measurements!&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's just a fact of life in our industry that there is going to be a large disparity between the average and star performers.  To continue your metaphor, have you ever seen a pro basketball player playing against non-pros?  It's like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best thing you can do for yourself is to recognize it and embrace it. Get into Mort's head, understand him, understand what he will do and what he will not do and use it.  Be patient with Mort, teach him, teach him again, explain it, explain it again.  It's all you can do.  At the end of the day, you will probably leave your company and wind up at a Microsoft or Google or somewhere where Einsteins (and Elvi) are appreciated. &lt;/p&gt;&#xA;" OwnerUserId="9251" LastActivityDate="2010-12-08T18:15:24.093" CommentCount="2" />
  <row Id="24721" PostTypeId="2" ParentId="24702" CreationDate="2010-12-08T18:16:15.117" Score="1" ViewCount="" Body="&lt;p&gt;Toys or anything that makes you comfortable/puts you at ease probably helps creativity or any other type of higher-level thinking. There are other toys that may allow you to engage creatively - like an Etch-a-sketch. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like clay and think I am going to take some to the office tomorrow.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-08T18:16:15.117" />
  <row Id="24722" PostTypeId="1" CreationDate="2010-12-08T18:17:08.927" Score="15" ViewCount="640" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not a morning person.  I got into the habit of working from 10 to 7/8, sometimes 9.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nevertheless, many of the places I've worked for have asked for something more like 8 to 6 or 9 to 6.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, I have a real tough time getting my brain going in the morning and getting into the code.  Once I do, I can concentrate for a long time and be quite productive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's getting into the code and starting to get going with it that I have trouble with.  Sometimes I will waste time in the morning just because I can't focus on the problem (yes, I am writing this in the morning).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've put all my busy work in the morning, but as a developer, I don't have a lot of busy work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It kind of becomes a self reinforcing thing; because you don't get things done in the morning, you have to stay later.  Because you have to stay later, then its harder to get started the next morning, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do other people have trouble with this?  If so, any techniques you've learned?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="5057" LastActivityDate="2010-12-09T10:37:38.667" ClosedDate="2010-12-09T13:02:23.607" Title="Do you have any techniques to help you get started in the morning?" Tags="&lt;productivity&gt;" AnswerCount="15" CommentCount="11" FavoriteCount="7" />
  <row Id="24723" PostTypeId="2" ParentId="24485" CreationDate="2010-12-08T18:18:20.437" Score="1" ViewCount="" Body="&lt;p&gt;I'd recommend using namespacing and then a file structure that mirrors the namespace. For example, using Brad's answer, I'd have &lt;code&gt;Truck.js&lt;/code&gt;, &lt;code&gt;Car.js&lt;/code&gt; and &lt;code&gt;Vehicle.js&lt;/code&gt;. This should give you a codebase that is easier to maintain, organise and unit test. However, you should have some kind of build process which concatenates and minfies your multiple JS files ready for production.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With an organised codebase of prototypal objects you should be in a position to implement most design patterns. There are also some &lt;a href=&quot;http://books.google.com/books?id=za3vlnlWxb0C&amp;amp;printsec=frontcover&amp;amp;dq=pro+javascript+design+patterns&amp;amp;hl=en&amp;amp;src=bmrr&amp;amp;ei=G8n_TI6CAcawhQeYipmhCw&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=1&amp;amp;ved=0CCMQ6AEwAA#v=onepage&amp;amp;q&amp;amp;f=false&quot; rel=&quot;nofollow&quot;&gt;good books on this subject&lt;/a&gt;. This &lt;a href=&quot;http://developer.yahoo.com/yui/theater/video.php?v=zakas-architecture&quot; rel=&quot;nofollow&quot;&gt;presentation&lt;/a&gt; by Nicholas Zackas is also useful to get some insight in how to build good Javascript apps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, in Javascript, I think its also important to distinguish between patterns and techniques. You need to be familiar with various commonly used techniques which JS natively lacks, such as namespacing. But these are techniques not patterns; techniques which make it easier to build patterns such as those defined by the Gang of Four.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry this such a brief summary. But I'd strongly recommend the resources I mentioned to get greater insight.&lt;/p&gt;&#xA;" OwnerUserId="5723" LastActivityDate="2010-12-08T18:18:20.437" />
  <row Id="24724" PostTypeId="2" ParentId="24722" CreationDate="2010-12-08T18:21:57.590" Score="16" ViewCount="" Body="&lt;p&gt;Coffee.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No, seriously; I know it is bitter, but some of the espresso mixed drinks are actually really good. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coffee in the morning helped me adjust from the late-night/sleeping in patterns of college to the 9-5 schedule of the real world.&lt;/p&gt;&#xA;" OwnerUserId="5039" LastActivityDate="2010-12-08T18:21:57.590" CommentCount="25" />
  <row Id="24725" PostTypeId="2" ParentId="24663" CreationDate="2010-12-08T18:25:01.713" Score="1" ViewCount="" Body="&lt;p&gt;I would argue that structure doesn't impair creativity; it's instead a prerequisite. I'll explain why after a few examples.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&lt;li&gt;I used to work at an investment bank the dress code was suits and more suits. Looking at people's ties there was like walking through an art gallery.&lt;/li&gt;&#xA;&lt;li&gt;Compare a Jackson Pollock painting to a Monet.&lt;/li&gt;&lt;li&gt;Shakespeare wrote entire plays in blank verse.&lt;/li&gt;&lt;li&gt;Classical music left traditional scales and keys behind at the beginning of the 20th century. That decision almost killed it, and it was only the &quot;Pops&quot; that kept it alive.&lt;/li&gt;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Jon Hopkins had a great quote in his answer, but I think the quote doesn't go far enough. Some structure is necessary for any communication to be possible, and anything creative involves communication. So if there are no constraints at all, you're not being creative, just random. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One final point: the most common meaning of the word &quot;masterpiece&quot; is an excellent creative work of art. The original meaning is an original independent piece of work that was a rite of passage in becoming a master craftsman.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-08T18:25:01.713" />
  <row Id="24726" PostTypeId="2" ParentId="24722" CreationDate="2010-12-08T18:26:58.863" Score="6" ViewCount="" Body="&lt;p&gt;When I find myself procrastinating I start with an easy or trivial task that needs doing. Starting off with something simple eases in the brain ready for the deeper stuff that requires more thought and flow. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whenever I took college exams I always started with the easiest questions to get into a rhythm.&lt;/p&gt;&#xA;" OwnerUserId="5723" LastActivityDate="2010-12-08T18:26:58.863" CommentCount="1" />
  <row Id="24727" PostTypeId="2" ParentId="24722" CreationDate="2010-12-08T18:31:05.203" Score="5" ViewCount="" Body="&lt;p&gt;My advice would be 1. don't feel bad and 2. don't fight it.  As much as most companies would like to think of programming as similar exercise to flipping burgers all day, it's not.  When I was a developer, I spent a ton of time not developing mostly thinking and letting my active mind or my sub-conscious dwell on problems or best approaches.  I'd come in late, take coffee breaks, go on starbucks breaks.  But, when my brain wanted to code, I let it code and I was by far the most productive on the team.  Productivity is the key in our industry, not punching a clock.  Embrace what makes you productive and you will not look back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit for comments:  Agreed.  You have to find an organization and manager that &quot;get you&quot;.  But, I won't settle for the Office Space &quot;I stare at my monitor for 15 minutes.  It looks like I'm working, but I'm not.&quot;  That does not help anyone. :)&lt;/p&gt;&#xA;" OwnerUserId="9251" LastEditorUserId="9251" LastEditorDisplayName="" LastEditDate="2010-12-08T19:07:10.587" LastActivityDate="2010-12-08T19:07:10.587" CommentCount="4" />
  <row Id="24728" PostTypeId="2" ParentId="24691" CreationDate="2010-12-08T18:34:08.503" Score="0" ViewCount="" Body="&lt;p&gt;I flip phone numbers and certain strings for searches from time to time&lt;/p&gt;&#xA;" OwnerUserId="1977" LastActivityDate="2010-12-08T18:34:08.503" />
  <row Id="24729" PostTypeId="2" ParentId="24722" CreationDate="2010-12-08T18:35:29.223" Score="3" ViewCount="" Body="&lt;p&gt;I establish a routine and leave myself notes from the day before and make sure I write in the task to start with in the morning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My typical morning at work looks something like this: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Get in, get settled.&lt;/li&gt;&#xA;&lt;li&gt;Grab some coffee or tea. Coffee is preferable for flavour, but tea will do. The warm drink is the important part for me here.&lt;/li&gt;&#xA;&lt;li&gt;Read my notes from last night, see where I left off.&lt;/li&gt;&#xA;&lt;li&gt;Do whatever I thought last night would be a good idea to do next. The me from yesterday that left the note had the entire task context in her head, so she must be right. :P&lt;/li&gt;&#xA;&lt;li&gt;Just keep moving down my list of things to do from there.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It's gotten to the point that I kind of look forward to the &quot;sit down and look over my notes&quot; part of the day. It's almost as good as sitting down at home on the weekend with some RSS feeds or a newspaper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also found that listening to a dev-related podcast on the way to work can help get my brain into work mode by the time I actually get to my desk, but I leave that out of my actual routine.&lt;/p&gt;&#xA;" OwnerUserId="226" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2010-12-08T18:43:24.710" LastActivityDate="2010-12-08T18:43:24.710" />
  <row Id="24730" PostTypeId="2" ParentId="24722" CreationDate="2010-12-08T18:38:20.203" Score="2" ViewCount="" Body="&lt;p&gt;Something that has helped people is: in the evening, prepare a list of maximum 3 things to do the next morning, that way you don't have to wonder &quot;so what should I do now ?&quot; in the morning while you're only half-awake.&lt;/p&gt;&#xA;" OwnerUserId="9094" LastActivityDate="2010-12-08T18:38:20.203" />
  <row Id="24731" PostTypeId="2" ParentId="24658" CreationDate="2010-12-08T18:38:51.747" Score="1" ViewCount="" Body="&lt;p&gt;For Java with Hotspot-based virtual machines, you can update (with certain rules to obey) classes while running just by saving the revised source code in your IDE. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your main loop invokes said classes repeatedly you effectively have a simple REPL which is very helpful.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-08T18:38:51.747" />
  <row Id="24732" PostTypeId="2" ParentId="24629" CreationDate="2010-12-08T18:41:16.317" Score="1" ViewCount="" Body="&lt;p&gt;I had been doing C++ and COM for years and as .NET approached, I made my company send me to Guerrilla .NET for the week. &lt;a href=&quot;http://www.pluralsight-training.net/microsoft/&quot; rel=&quot;nofollow&quot;&gt;Pluralsight&lt;/a&gt; rocks for &lt;a href=&quot;http://www.pluralsight-training.net/microsoft/olt/courses.aspx&quot; rel=&quot;nofollow&quot;&gt;video&lt;/a&gt; and in-person training as does &lt;a href=&quot;http://www.develop.com/training-courses/dotnet&quot; rel=&quot;nofollow&quot;&gt;Developmentor&lt;/a&gt; and &lt;a href=&quot;http://www.develop.com/training-course/guerrilla-.net&quot; rel=&quot;nofollow&quot;&gt;Guerrilla .NET&lt;/a&gt;.  Neither is free, but they are like 0-100 mph in one week.  &lt;/p&gt;&#xA;" OwnerUserId="9251" LastActivityDate="2010-12-08T18:41:16.317" />
  <row Id="24733" PostTypeId="2" ParentId="24702" CreationDate="2010-12-08T18:46:01.510" Score="3" ViewCount="" Body="&lt;p&gt;I have &lt;a href=&quot;http://www.firebox.com/product/2577/M-Cube?via=ser&quot; rel=&quot;nofollow&quot;&gt;one of these&lt;/a&gt;, and it is hugely addictive to play with as it is tactile, constructive/creative yet has strange attraction behaviours. Every day I come to the office, someone in the team has made it into something rude or amusing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/8lsRw.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="572" LastEditorUserId="2815" LastEditorDisplayName="" LastEditDate="2010-12-09T19:13:48.977" LastActivityDate="2010-12-09T19:13:48.977" CommentCount="1" />
  <row Id="24734" PostTypeId="2" ParentId="24722" CreationDate="2010-12-08T18:46:36.157" Score="12" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Leave work at the end of a day with a&#xA;specific problem.&lt;/li&gt;&#xA;&lt;li&gt;Create some sort of prompt so you see&#xA;it first thing when you get to the&#xA;office the next morning.&lt;/li&gt;&#xA;&lt;li&gt;Go to bed early (I know easier said&#xA;than done.).&lt;/li&gt;&#xA;&lt;li&gt;Wake up with plenty of time to get ready for work.&lt;/li&gt;&#xA;&lt;li&gt;Eat breakfast&lt;/li&gt;&#xA;&lt;li&gt;Shower it helps wake you up, so don't do it before bed (unless so stinky you can't stand it.)&lt;/li&gt;&#xA;&lt;li&gt;Don't start caffiene intake until you are at your desk.&lt;/li&gt;&#xA;&lt;li&gt;See the problem from #1? Get to work.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Much easier if you get a routine going.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-08T18:46:36.157" />
  <row Id="24735" PostTypeId="2" ParentId="24702" CreationDate="2010-12-08T18:47:27.013" Score="0" ViewCount="" Body="&lt;p&gt;Lego would be cool. Sadly, my employer wouldn't understand.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-12-08T18:47:27.013" />
  <row Id="24736" PostTypeId="2" ParentId="24567" CreationDate="2010-12-08T18:53:22.780" Score="1" ViewCount="" Body="&lt;p&gt;Allowing a bad hire is the worst thing you can do to your company ... the worst!  It's very difficult to undo a bad hire.  Because of that, I calibrate myself to pass on some good candidates if it means keeping bad hires out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often times, I feel like I am the subject of an &lt;a href=&quot;http://en.wikipedia.org/wiki/Asch_conformity_experiments&quot; rel=&quot;nofollow&quot;&gt;Asch conformity experiment&lt;/a&gt; where everyone else says &quot;hire&quot; and I say &quot;NO!&quot;  But that's the nature of the beast, it's much easier to say &quot;yes&quot; and pass the buck than to say &quot;no&quot; and take responsibility.  Let me give you a test, which one sounds better when you say it ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&quot;I gave him the simplest memory leak I could think of, he didn't find it, but I hired him anyway.&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... or ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&quot;I gave him the simplest memory leak I could think of, he didn't find it, so I passed.&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which would you rather say to your manager?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice is to set your bar high and keep it high ... remember, you might be dealing with this guy's leaky crap-ass code if you allow him to be hired into your company!&lt;/p&gt;&#xA;" OwnerUserId="9251" LastActivityDate="2010-12-08T18:53:22.780" />
  <row Id="24737" PostTypeId="1" CreationDate="2010-12-08T18:55:06.020" Score="7" ViewCount="166" Body="&lt;p&gt;Hey guys,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm just starting to get in to web development. I'm learning Rails at the moment. I have lots of experience with various programming languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been searching for books to help me get started; I want to focus on writing clean, standards-compliant HTML and CSS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone know of any modern, standards-based resources I can use, particularly books?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="9227" LastActivityDate="2010-12-08T19:44:37.593" Title="Beginning Design as a Programmer" Tags="&lt;learning&gt;&lt;books&gt;&lt;coding&gt;&lt;html&gt;&lt;resources&gt;" AnswerCount="3" />
  <row Id="24738" PostTypeId="2" ParentId="24737" CreationDate="2010-12-08T18:57:19.437" Score="3" ViewCount="" Body="&lt;p&gt;see this question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/931557/good-books-resources-for-learning-web-programming&quot;&gt;http://stackoverflow.com/questions/931557/good-books-resources-for-learning-web-programming&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;one answer mentioned that I second is &lt;a href=&quot;http://www.w3schools.com&quot; rel=&quot;nofollow&quot;&gt;www.w3schools.com&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-08T18:57:19.437" />
  <row Id="24739" PostTypeId="2" ParentId="24702" CreationDate="2010-12-08T18:57:29.833" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;These robots are fun&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have a large collection of &lt;a href=&quot;http://www.amazon.co.uk/LEGO-8547-Mindstorms-NXT-Robot/dp/B001V7RF9U&quot; rel=&quot;nofollow&quot;&gt;Lego Mindstorm NXTs&lt;/a&gt; lying around the office. They do battle using various AI algorithms and the like. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/T6X9u.jpg&quot; alt=&quot;Lego Mindstorm NXT&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our managers actively encourage us to explore various uses for them (usually on a Friday afternoon after lunch at the pub) but we're kind of running out of ideas. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any suggestions?&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-08T19:04:15.850" LastActivityDate="2010-12-08T19:04:15.850" CommentCount="1" />
  <row Id="24740" PostTypeId="2" ParentId="24722" CreationDate="2010-12-08T18:58:40.073" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Pair Program&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your organization has to buy into it first, but a funny thing happens: you're too embarrassed to slack in front of another co-worker. So you work instead, and work hard. At the end of a full day of pair programming, I'm more tired than a full day of going solo.&lt;/p&gt;&#xA;" OwnerUserId="7610" LastActivityDate="2010-12-08T18:58:40.073" CommentCount="1" />
  <row Id="24741" PostTypeId="2" ParentId="24737" CreationDate="2010-12-08T19:01:19.160" Score="1" ViewCount="" Body="&lt;p&gt;I've found that trying to duplicate existing site designs is a great way to learn graphics and CSS techniques.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, sites like &lt;a href=&quot;http://microsoft.com&quot; rel=&quot;nofollow&quot;&gt;http://microsoft.com&lt;/a&gt; and &lt;a href=&quot;http://www.mozilla.com/en-US/&quot; rel=&quot;nofollow&quot;&gt;http://www.mozilla.com/en-US/&lt;/a&gt; are built around software products, but both do things a little differently.  Understanding what is going on here, as well as the audience they are trying to reach will help you as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find a site you like and see how well you can duplicate it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, for CSS practice &lt;a href=&quot;http://csszengarden.com&quot; rel=&quot;nofollow&quot;&gt;http://csszengarden.com&lt;/a&gt; is nice and follows the advice above.&lt;/p&gt;&#xA;" OwnerUserId="2044" LastActivityDate="2010-12-08T19:01:19.160" />
  <row Id="24742" PostTypeId="2" ParentId="24684" CreationDate="2010-12-08T19:13:48.973" Score="4" ViewCount="" Body="&lt;p&gt;Android isnt THE center of the world.  Companies have existing code bases they want to re-use, and Android simply may not be worth it to them to invest the time and effort needed to port their applications.  MonoDroid lets them do that without having to rewrite their app specifically for one platform.  MonoTouch does the same for iOS.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-08T19:13:48.973" />
  <row Id="24743" PostTypeId="2" ParentId="24691" CreationDate="2010-12-08T19:18:41.773" Score="11" ViewCount="" Body="&lt;p&gt;I have been a coder/developer/sysadmin for ~10 years and I cannot remember &lt;em&gt;ever&lt;/em&gt; needing string reversal in real life situations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only immediate use-case that I can think of is number base conversion: done naively, the procedure returns a reversed string. However, with a bit of math, you can compute upfront the amount of space needed, so you can start filling the buffer from the end.&lt;/p&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-12-08T19:18:41.773" CommentCount="1" />
  <row Id="24744" PostTypeId="2" ParentId="24691" CreationDate="2010-12-08T19:33:16.087" Score="0" ViewCount="" Body="&lt;p&gt;The only time I can recall seeing string reversal being used was a function I saw way back that used it while parsing file names, to ensure that the '.' it found in the file name was in fact the last dot that seperated the file name from extension.  ie, parsing a file name like &lt;code&gt;data.2010.12.08.dat&lt;/code&gt;, you'd reverse the string, find the first dot, subtract that position from the end of the original string, and take the substring.  I'm not saying thats the optimal way to do it, but thats what it did.  It may have been in powerbuilder, where such wierd uses of functions were common to workaround various non-obvious problems.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-08T19:33:16.087" />
  <row Id="24745" PostTypeId="2" ParentId="24737" CreationDate="2010-12-08T19:44:37.593" Score="2" ViewCount="" Body="&lt;p&gt;If your focus is clean HTML and CSS, you probably can't do any better than&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1430223979&quot; rel=&quot;nofollow&quot;&gt;CSS Mastery&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/MjN63.jpg&quot; alt=&quot;CSS Mastery cover&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's written by some of the most influential CSS experts from the last several years.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-08T19:44:37.593" />
  <row Id="24746" PostTypeId="2" ParentId="24722" CreationDate="2010-12-08T19:47:04.450" Score="1" ViewCount="" Body="&lt;p&gt;I'd be tempted to suggest seeing if you have any sleep problems as if does take you a while to get going in the morning this may be a symptom of sleep apnea which can be treated.  This is just a suggestion as I do have it and what I do to treat it has worked well for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other suggestion I'd make is to consider getting up earlier and trying to exercise to see if that helps get you going or not.  Usually I exercise around lunch time for a half hour as that is where I can use a reset that happens when I take that walk and reflect on nearly anything and everything that comes to me.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-08T19:47:04.450" />
  <row Id="24747" PostTypeId="2" ParentId="24691" CreationDate="2010-12-08T19:47:10.183" Score="6" ViewCount="" Body="&lt;h1&gt;Interviews!&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Reversing a string (in place or not) is a very common interview question for basic programming knowledge. A language lacking these built in functions would be difficult to interview for. The candidate would actually have to know something.&lt;sup&gt;1&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;&#xA;1: This is a tongue-in-cheek answer.&#xA;&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-08T19:47:10.183" />
  <row Id="24748" PostTypeId="2" ParentId="24722" CreationDate="2010-12-08T19:52:37.290" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;GYM&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although not the first choice for a stereotypical programmer, I find going to the gym before work very good for waking you up in the mornings. Not only is it good for you, but the exercise actually increases your energy levels, making you feel more awake and alert early in the morning plus with the added endorphins in your body, you'll feel better about going to work. It doesn't have to be a body-pounding routine to make Arnie look like a whimp, just 20 mins on a treadmill and maybe a rowing machine is enough give me a kick in the mornings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you suppliment this with a breakfast high in complex carbs (porridge or alpen for the Brits among us) then this will set you up for a good morning. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It doesn't even have to be the gym, just walking a little faster in the mornings or maybe cycling to work (I haven't tried this one, just a suggestion) would have the same effect.&lt;/p&gt;&#xA;" OwnerUserId="154" LastActivityDate="2010-12-08T19:52:37.290" CommentCount="5" />
  <row Id="24749" PostTypeId="2" ParentId="24643" CreationDate="2010-12-08T19:53:29.130" Score="4" ViewCount="" Body="&lt;p&gt;I follow the coding standard proposed by FxCop and checked by ReSharper (C#). Nothing like having automated tools to make sure you follow the rules :)&lt;/p&gt;&#xA;" OwnerUserId="7380" LastActivityDate="2010-12-08T19:53:29.130" />
  <row Id="24750" PostTypeId="2" ParentId="24691" CreationDate="2010-12-08T19:56:15.697" Score="14" ViewCount="" Body="&lt;h2&gt;Sexegers&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Sometimes, problems that involve regular expressions can more easily be written by having the input string reversed and tackling the problem in a different way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Technique courtesy of the man who taught me Perl.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.perlmonks.org/index.pl?node=sexeger&quot; rel=&quot;nofollow&quot;&gt;Sexeger on PerlMonks&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3119" LastActivityDate="2010-12-08T19:56:15.697" CommentCount="2" />
  <row Id="24751" PostTypeId="2" ParentId="21265" CreationDate="2010-12-08T20:03:16.950" Score="1" ViewCount="" Body="&lt;p&gt;I'd pick the guy with the 5 years experience. Depending on the course/degree the guy with 5 years in university has completed, he may have no experience of real world tools like source control, code analysis tools etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All this is extra training overhead. From personal experience, I had no idea what SVN was until I started working, this was after completing a four year Computer Science degree.&lt;/p&gt;&#xA;" OwnerUserId="1293" LastActivityDate="2010-12-08T20:03:16.950" CommentCount="1" />
  <row Id="24752" PostTypeId="2" ParentId="24702" CreationDate="2010-12-08T20:12:03.100" Score="0" ViewCount="" Body="&lt;p&gt;Quake (or if pressed some other FPS)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not really a toy, but a game.  Like Nerf listed above, great for getting out your frustrations&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-08T20:12:03.100" />
  <row Id="24754" PostTypeId="2" ParentId="21265" CreationDate="2010-12-08T20:16:04.640" Score="13" ViewCount="" Body="&lt;p&gt;I'd hire the one who got better results at the interview, which would require the candidate to write code.&lt;/p&gt;&#xA;" OwnerUserId="6843" LastActivityDate="2010-12-08T20:16:04.640" CommentCount="1" />
  <row Id="24755" PostTypeId="2" ParentId="24643" CreationDate="2010-12-08T20:22:03.127" Score="0" ViewCount="" Body="&lt;p&gt;I tend to divide my fields into two categories:  fields that get initialized right away (i.e. through a constructor, or some initialization method that is expected to be called before other operations) and fields that can be set at any time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't follow any concrete rule, but I think I tend to follow this ordering:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1:  Fields that get initialized right away&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2:  Constructors, particularly ones that initialize the fields from #1&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3:  Initialization methods that will initialize the fields from #1&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4:  get/set methods for fields from #1, if applicable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5:  Other fields that can be set at any time, along with associated get/set methods.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;6:  Methods that utilize fields.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Below is some example code that demonstrates this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Example1&#xA;{&#xA;    // First: Fields with no associated properties,&#xA;    // fields with read-only properties,&#xA;    // or fields that will be initialized up front (i.e. in a constructor or an initialization method)&#xA;    private int _Field1;&#xA;    private string _Field2;&#xA;&#xA;    // Second: Constructors&#xA;    public Example1(int field1, string field2)&#xA;    {&#xA;        _Field1 = field1;&#xA;        _Field2 = field2;&#xA;    }&#xA;&#xA;    public Example1() : this(0, null) { }&#xA;&#xA;    // Third: Methods that initialize fields&#xA;    public void InitializeWithExampleData(ExampleDataObject data)&#xA;    {&#xA;        _Field1 = data.Value1;&#xA;        _Field2 = data.Value2;&#xA;    }&#xA;&#xA;    // Fourth: Properties for all fields that were previously declared&#xA;    public int Field1&#xA;    {&#xA;        get { return _Field1; }&#xA;    }&#xA;&#xA;    public string Field2&#xA;    {&#xA;        get { return _Field2; }&#xA;    }&#xA;&#xA;    // Fifth: Other Fields along with read/write properties&#xA;    // i.e. fields that are not initialized by any constructors or methods declared above&#xA;    private int _Field3;&#xA;&#xA;    public int Field3&#xA;    {&#xA;        get { return _Field3; }&#xA;        set { _Field3 = value; }&#xA;    }&#xA;&#xA;    private string _Field4;&#xA;&#xA;    public string Field4&#xA;    {&#xA;        get { return _Field4; }&#xA;        set { _Field4 = value; }&#xA;    }&#xA;&#xA;    // Sixth: Methods that utilize fields&#xA;    public int CalculateSomethingBasedOnFieldValues()&#xA;    {&#xA;        return this.Field1 + this.Field2.Length + this.Field3;&#xA;    }&#xA;}&#xA;&#xA;struct Example2 // Immutable type example&#xA;{&#xA;    // First: Fields&#xA;    private int _Field1;&#xA;    private string _Field2;&#xA;&#xA;    // Second: Constructors (i.e. things that can write to the fields)&#xA;    public Example2(int field1, string field2)&#xA;    {&#xA;        _Field1 = field1;&#xA;        _Field2 = field2;&#xA;    }&#xA;&#xA;    public Example2(int field1)&#xA;    {&#xA;        _Field1 = field1;&#xA;        _Field2 = null;&#xA;    }&#xA;&#xA;    // Third: Properties (i.e. things that can read from the fields)&#xA;    public int Field1&#xA;    {&#xA;        get { return _Field1; }&#xA;    }&#xA;&#xA;    public string Field2&#xA;    {&#xA;        get { return _Field2; }&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;As I mentioned, I'm flexible, but I tend to do this because I think the order of the declarations tends to follow the order of operations that involve the fields, and that makes me happy inside.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, the fields are declared (i.e. memory is allocated to them).  Second, they are set, either through a constructor or an initialization method.  Third, they are read, or they are utilized by some other method to perform an operation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fields that have both a get and a set method do not clearly follow this flow, since they could be set at any time by a consumer calling the set method, which is why I tend to separate them into a different area.&lt;/p&gt;&#xA;" OwnerUserId="5486" LastEditorUserId="5486" LastEditorDisplayName="" LastEditDate="2010-12-08T20:27:35.243" LastActivityDate="2010-12-08T20:27:35.243" />
  <row Id="24756" PostTypeId="2" ParentId="24691" CreationDate="2010-12-08T20:23:07.707" Score="4" ViewCount="" Body="&lt;p&gt;ASCII isn't the best encoding for genetic information (you can pack the base types ACGT as&#xA;2bits). Pack them into an array of longlongs and you get 32 genetic &quot;letter&quot; per word. DNA&#xA;can get turned around, so you got to check a chunk of DNA against both forward are reverse copies of a test sequence. So being able to reverse a packed string of 2bit quantities can&#xA;be very useful for various sorts of genetic analysis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had as an item on a benchmark for spy agencies, how fast can you reverse the bits it a long-long (actually a very long array of long-longs). The obvious method of exchanging 2bits at a time is much slower than the less obvious methods. These are related to some of the neat&#xA;algorithms for in place array transposition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tangurena:&#xA;  The operation you refer to is called a population count. Similar desirables for bit packed data are leading and trailing zero count. There are a lot of really neat things&#xA;that one can do with bit packed data. A single operation on a longlong is 64way data parallel, so if you know what you are doing you can get incredible performance for certain types of computataions.&lt;/p&gt;&#xA;" OwnerUserId="8890" LastActivityDate="2010-12-08T20:23:07.707" CommentCount="3" />
  <row Id="24757" PostTypeId="1" CreationDate="2010-12-08T20:40:41.047" Score="0" ViewCount="68" Body="&lt;p&gt;Two website applications on two different servers each have their own login mechanism.  We have access to the source code of  both.  I want a unified login prompt created to suffice both sites. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are good ways to facilitate this?&lt;br&gt;&#xA;Looking for ideas from your experience with such things.&lt;br&gt;&#xA;Technology suggestions welcome. &lt;/p&gt;&#xA;" OwnerUserId="1381" LastEditorUserId="1381" LastEditorDisplayName="" LastEditDate="2010-12-08T23:48:07.293" LastActivityDate="2010-12-09T00:49:34.960" ClosedDate="2010-12-10T12:26:57.210" Title="Creating a Single Signon mechanism against two existing login forms in separate apps?" Tags="&lt;single-signon&gt;" AnswerCount="2" CommentCount="5" />
  <row Id="24758" PostTypeId="2" ParentId="24691" CreationDate="2010-12-08T20:41:12.440" Score="17" ViewCount="" Body="&lt;p&gt;Well, this is a tongue-in-cheek answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Back in the day&quot; I owned a Unix box, and it had an ordered dictionary file of English words, used for spell-checking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I made a new file by reversing all the words in the dictionary, sorting it, and then reversing them again. The result was a list of words sorted from right-to-left.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you searched it for a word, next to that word would be words with similar endings. So it was easy to make little poems!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can really amuse yourself when you see what rhymes with what.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-12-08T20:41:12.440" CommentCount="1" />
  <row Id="24759" PostTypeId="1" CreationDate="2010-12-08T20:42:56.947" Score="0" ViewCount="167" Body="&lt;p&gt;hi&#xA;when i execute this code nothing happen in browser but when i delete lines with star,the contents printed correctly,whats wrong??&lt;/p&gt;&#xA;&#xA;&lt;p&gt;/////////////////&lt;/p&gt;&#xA;&#xA;&lt;p&gt;$documentroot=$_SERVER['DOCUMENT_ROOT'];&#xA;$handle=fopen(&quot;$documentroot/order/order.txt&quot;,'r+');&#xA;if(!$handle) {&#xA;echo 'error opening file';&lt;/p&gt;&#xA;&#xA;&lt;p&gt;}&#xA;$content=&quot;pepsi\ncola\npeperoni&quot;;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;$write=fwrite($handle,$content); //*&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if(!$write){                     //*&lt;/p&gt;&#xA;&#xA;&lt;p&gt;echo 'error writing';          //*&lt;/p&gt;&#xA;&#xA;&lt;p&gt;}                                 //*&lt;/p&gt;&#xA;&#xA;&lt;p&gt;while(!feof($handle)) {&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$string=fgets($handle);&#xA;echo $string;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;}&lt;/p&gt;&#xA;" OwnerUserId="9269" LastEditorUserId="9269" LastEditorDisplayName="" LastEditDate="2010-12-08T21:55:11.867" LastActivityDate="2010-12-08T21:55:11.867" ClosedDate="2010-12-08T20:45:46.070" Title="fopen with fwrite problem,its funny!!" Tags="&lt;php&gt;" CommentCount="2" />
  <row Id="24760" PostTypeId="2" ParentId="24643" CreationDate="2010-12-08T20:50:48.827" Score="0" ViewCount="" Body="&lt;p&gt;I'll usually define the fields that a property works with and the specific property, then the constructors, then methods. Generally speaking private methods that are related to specific public methods will be grouped together.&lt;/p&gt;&#xA;" OwnerUserId="5972" LastActivityDate="2010-12-08T20:50:48.827" />
  <row Id="24761" PostTypeId="2" ParentId="21265" CreationDate="2010-12-08T21:01:22.940" Score="1" ViewCount="" Body="&lt;p&gt;Depends on the position.  If I need a junior developer, I'd grab the one with the degree, pay them junior developer wages for a couple years and keep an eye on them.  If they're good, they're on a fast track to bigger and better things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OTOH, if I need a senior developer who can step in, set up a build environment and start analyzing requirements, I'll hire the one with experience.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-08T21:01:22.940" />
  <row Id="24762" PostTypeId="2" ParentId="24691" CreationDate="2010-12-08T21:01:41.760" Score="5" ViewCount="" Body="&lt;h3&gt;Anything where working with the reversed string is easier.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Working with integers as strings is a lot easier if the strings are reversed.&#xA;I built some library functions for doing math with large integers and used string reversal to make the arithmetic functions simpler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Granted, I've only used it for cranking out answers on Project Euler, but still, the original premise holds.&lt;/p&gt;&#xA;" OwnerUserId="7451" LastActivityDate="2010-12-08T21:01:41.760" CommentCount="1" />
  <row Id="24763" PostTypeId="2" ParentId="24691" CreationDate="2010-12-08T21:10:54.013" Score="2" ViewCount="" Body="&lt;p&gt;In natural language processing &amp;amp; parsing, sometimes it is easier to search a string from the end to the beginning.  A string reverse would be useful for debugging, or as an alternate way to write the loop (reverse the string and then loop from index 0 to n-1).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also some languages are written right to left, so a string reverser could be used for that if you were in an environment that didn't natively recognize LTR/RTL languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A string (in some languages) is an array of chars, but it could just as well be paychecks or inventory modifications. In a loop moving across these, you might be do some calculations that should be the same regardless to what order you process them.  A perfectly cromulent unit test would be to check to see if they the calculations apply the same going forward or going backward.  This might be trivially obvious for addition, maybe not for other more opaque operations.&lt;/p&gt;&#xA;" OwnerUserId="191" LastActivityDate="2010-12-08T21:10:54.013" />
  <row Id="24764" PostTypeId="2" ParentId="24691" CreationDate="2010-12-08T21:20:37.177" Score="2" ViewCount="" Body="&lt;p&gt;Maybe low-cost multi-lingual support, for languages that use letters right-to-left (such as Arabic), instead of left-to-right. Of course you have to watch out for accent characters modifying the right character...&lt;/p&gt;&#xA;" OwnerUserId="3688" LastActivityDate="2010-12-08T21:20:37.177" />
  <row Id="24765" PostTypeId="2" ParentId="24702" CreationDate="2010-12-08T21:20:40.303" Score="0" ViewCount="" Body="&lt;p&gt;I think something that can keep you occupied without taking up too much brain power would be ideal.  Tetris is a perfect example.&lt;/p&gt;&#xA;" OwnerUserId="5837" LastActivityDate="2010-12-08T21:20:40.303" CommentCount="1" />
  <row Id="24767" PostTypeId="2" ParentId="558" CreationDate="2010-12-08T21:40:17.347" Score="1" ViewCount="" Body="&lt;p&gt;Ogilvy on Advertising: this book covers some basics of graphic design as well as a lot of common sense in making any kind of flyer, ad, etc. even if it was written way before the www era.    &lt;/p&gt;&#xA;&#xA;&lt;p&gt;More generally, browse books and magazines on graphic design, fine art, interior decoration, filmmaking - there are a lot of common design principles for making something visually attractive and making information or other content appealing.    Kind of like how electromagnetism is common to electronics, planetary science, chemistry, nuclear and other fields of physics and engineering.  &lt;/p&gt;&#xA;" OwnerUserId="4280" LastActivityDate="2010-12-08T21:40:17.347" />
  <row Id="24769" PostTypeId="2" ParentId="24663" CreationDate="2010-12-08T21:56:26.017" Score="1" ViewCount="" Body="&lt;p&gt;You can enjoy programming, do what you're told and get paid for it, and have a fulfilling life, but all those things don't have to come from your job. We've gone overboard in the notion that our job has to be everything in our life. Sometimes in order to get paid you have to do things you or anyone else doesn't want to do. Think about it; a fun job that pays lots of money is probably not hiring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be creative by finding creative ways to work within the limitations you're given. It's a matter of perspective. There isn't one redeeming quality to your company and the work you do to make it work? Most people who saved the world rarely got paid for it.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-08T21:56:26.017" CommentCount="1" />
  <row Id="24770" PostTypeId="2" ParentId="24570" CreationDate="2010-12-08T22:03:42.047" Score="3" ViewCount="" Body="&lt;p&gt;Instead of focusing on specific language features, test their actual development skills. Give them a real-world problem to solve, even if it doesn't exercise everything delphi has on offer. They can always learn in a matter of days how a feature works, but they'll have a harder time learning how to solve problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where I work we give a small development task in the form of a simple game. A one-page description specifies the rules of the game, and it's up to the developer to translate this to UI and business logic how they see fit. It's a true eye-opener, because many people that seem solid during interviews, with plenty of experience and know-how, completely fall down when faced with this task.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-12-08T22:03:42.047" />
  <row Id="24771" PostTypeId="1" AcceptedAnswerId="24773" CreationDate="2010-12-08T22:07:59.970" Score="2" ViewCount="112" Body="&lt;p&gt;Note: this question is about the general case... How things usually are. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;OK so I can download the code and mess around with it, but how do my changes make it into the project officially? Who decides what changes make it into the project, and how? Is there often a list of required changes/additions? What if I have a cool idea that is not mentioned there? How do I get it approved? And what if two people implement the same feature. Who chooses which implementation makes it into the project? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, how is the whole thing managed (in the general case)? &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-12-08T22:32:02.013" Title="How does the contribution part of &quot;contributing to an open source project&quot; take place?" Tags="&lt;open-source&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="24772" PostTypeId="2" ParentId="558" CreationDate="2010-12-08T22:15:02.600" Score="0" ViewCount="" Body="&lt;p&gt;Another good book in this space would be &lt;a href=&quot;http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&amp;amp;tid=5393&quot; rel=&quot;nofollow&quot;&gt;The Design of Everday Things.&lt;/a&gt;  It covers a lot of the practical ideas like favoring designs that lend themselves to easy usage by taking advantage of how people naturally approach a new thing.  The book isn't specifically about UI or web design, but does cover that a bit, I believe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An early example in the book is doors.  He talks about how doors with a knob or handle on one side and visible hinges are intuitive, because you know the door the will open by pushing or pulling on that side. Fancy doors with hidden hinges, push bars across the whole door, or centered knobs are tricky and require a moment of experimentation because they're operation isn't intuitive. &lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-12-08T22:15:02.600" />
  <row Id="24773" PostTypeId="2" ParentId="24771" CreationDate="2010-12-08T22:19:05.147" Score="4" ViewCount="" Body="&lt;p&gt;It really depends on the project. Generally speaking, the larger the project, the more formal the process for new contributors is. If you improve the source of a small project, a simple mail to one of the developers might be enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before you implement a new feature, you should ask them if someone is already working on that. And you should work on the very latest version available, not the latest major/stable build. Otherwise, your changes might be harder to incorporate with the current version.&#xA;I can only guess what happens when two people independently implement the same feature, either the first one wins (because nobody knows of the other version) or the decision is based on the quality of the contributions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes there is a list of todo-features, but more often, you just implement what you need for your own needs. You fix the bugs that bugger you.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-08T22:19:05.147" />
  <row Id="24774" PostTypeId="2" ParentId="558" CreationDate="2010-12-08T22:21:17.010" Score="1" ViewCount="" Body="&lt;p&gt;One tool I find invaluable in design is &lt;a href=&quot;http://colorschemedesigner.com/&quot; rel=&quot;nofollow&quot;&gt;Color Scheme Designer&lt;/a&gt;.  I typically pick a color I'd like to base the design around and then use the &quot;Analogic&quot; scheme to get a nice set of matching colors.  To me, getting the colors right is the worst part, so after that the rest is just getting a nice layout and applying the limited palette of colors.&lt;/p&gt;&#xA;" OwnerUserId="5109" LastActivityDate="2010-12-08T22:21:17.010" CommentCount="1" />
  <row Id="24775" PostTypeId="2" ParentId="24771" CreationDate="2010-12-08T22:24:03.433" Score="2" ViewCount="" Body="&lt;p&gt;Look at the files that come with the software, and anything else available like a project website.  Except for really small projects, there should be some guidelines or even hard rules.  If not, you should at least have the email address of the project owner.  As ammoQ points out, getting in touch with the owner is a good idea in any case, but you're more likely to be taken seriously if you've read the rules or guidelines.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-08T22:24:03.433" />
  <row Id="24776" PostTypeId="2" ParentId="24343" CreationDate="2010-12-08T22:24:58.167" Score="1" ViewCount="" Body="&lt;p&gt;Functional languages!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning functional languages makes you think in terms of expressions, rather than steps and named mutable states (variables). This has a significant impact on your ability to effectively deal with every-day programming problems - especially now that almost every popular language has functional features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Algorithms and complexity theory is also important, but it is somewhat less interesting in that it mostly lets you put names on stuff that you usually already knew and could deduce.&lt;/p&gt;&#xA;" OwnerUserId="8854" LastActivityDate="2010-12-08T22:24:58.167" />
  <row Id="24777" PostTypeId="2" ParentId="24757" CreationDate="2010-12-08T22:26:43.033" Score="1" ViewCount="" Body="&lt;p&gt;Depends a lot on what the authentication mechanisms are, and what the state of the source code is, as well as what resources you have etc.... I've seen all of the following occur:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One (or both) of the systems is very complete, well written, and looks easy to maintain/use/change. The other, does not. Replace the poor one with the well written one&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both of the systems are poor, but you think you can take one and quickly bring it up to par, go with that one, and replace the one on the second site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either both of the systems are very poor or you are an expert with a third, existing, authentication system, to the point where any work on them is going to take longer than replacing them with, for example, an OpenID system, or a new system written from the grounds up, then replace them both.&lt;/p&gt;&#xA;" OwnerUserId="4091" LastActivityDate="2010-12-08T22:26:43.033" />
  <row Id="24778" PostTypeId="2" ParentId="24570" CreationDate="2010-12-08T22:31:45.677" Score="1" ViewCount="" Body="&lt;p&gt;I'd go with the following points.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A thorough understanding of the Object Pascal object model.&lt;/li&gt;&#xA;&lt;li&gt;Understanding what function pointers and method pointers are, and how to use them.&lt;/li&gt;&#xA;&lt;li&gt;Familiarity with the most common classes and components of the VCL and RTL and how to use them.&lt;/li&gt;&#xA;&lt;li&gt;Understanding Delphi's exception handling, knowing what &lt;code&gt;try..except&lt;/code&gt; and &lt;code&gt;try..finally&lt;/code&gt; do, and what the difference between them is.&lt;/li&gt;&#xA;&lt;li&gt;Knowing how to use the principle of object ownership to manage memory properly.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These are the fundamentals, and IMO anyone who has these points down can master any Delphi-related topic with a minimum of trouble.  I'm specifically &lt;em&gt;not&lt;/em&gt; including SQL or database/TDataset knowledge here because it's simple enough language that a competent developer can pick it up in a couple weeks, but only if he already understands the fundamentals.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-08T22:31:45.677" CommentCount="3" />
  <row Id="24779" PostTypeId="2" ParentId="24771" CreationDate="2010-12-08T22:32:02.013" Score="0" ViewCount="" Body="&lt;p&gt;You can't go far wrong with mailing a patch for a bug fix or feature you like.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there's any documentation on how/what/where to submit be sure to follow that.&#xA;Otherwise send a patch with some description of what it does (and why that's a good thing) to the project mailing list. If there's no mailing list send it to the e-mail address listed on the website.&lt;/p&gt;&#xA;" OwnerUserId="4354" LastActivityDate="2010-12-08T22:32:02.013" />
  <row Id="24780" PostTypeId="1" AcceptedAnswerId="24781" CreationDate="2010-12-08T22:32:51.060" Score="7" ViewCount="286" Body="&lt;p&gt;If a good programmer finds himself bored, retired and/or tired of programming, are his odds of making a living as a (non-technical) writer better than average? Is writing (non-technical books) a common career alternative or choice that programmers make?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is related to: &lt;a href=&quot;http://programmers.stackexchange.com/questions/17254/do-poor-writers-make-poor-programmers&quot;&gt;Do poor writers make poor programmers?&lt;/a&gt;&#xA;It seems to be common wisdom, and a consensus here, that good writing and communication skills help (are nearly essential) when becoming a good programmer. Is the converse, though, true? &lt;/p&gt;&#xA;" OwnerUserId="4091" LastEditorUserId="4091" LastEditorDisplayName="" LastEditDate="2010-12-08T22:48:57.980" LastActivityDate="2010-12-09T10:40:07.460" Title="Do good programmers make good writers?" Tags="&lt;career&gt;&lt;writing&gt;" AnswerCount="9" CommentCount="6" FavoriteCount="1" />
  <row Id="24781" PostTypeId="2" ParentId="24780" CreationDate="2010-12-08T22:38:35.030" Score="10" ViewCount="" Body="&lt;p&gt;I don't think there's any significant correlation between programming and ability to write creatively so I expect his or her chance is pretty much precisely average.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Might also be worth noting that the average chance of becoming a successful writer and making a living from it is very low indeed. &lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-09T10:40:07.460" LastActivityDate="2010-12-09T10:40:07.460" CommentCount="2" />
  <row Id="24782" PostTypeId="2" ParentId="24780" CreationDate="2010-12-08T22:38:54.860" Score="0" ViewCount="" Body="&lt;p&gt;Anyone can't give you 100% answer but this depends on many things but i think programmers will be a poor writers for non-technical things because her live is rounding around things who  non programmer can't understand, this peoples is often have problems in communicating with other peoples not from business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I think programmer person as non-technical writer can be hard to understand to common person.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="943" LastActivityDate="2010-12-08T22:38:54.860" />
  <row Id="24783" PostTypeId="2" ParentId="24780" CreationDate="2010-12-08T22:39:43.750" Score="1" ViewCount="" Body="&lt;p&gt;Depends, but for the average programmer I'd say no.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most programmers (at least the ones I know) are not used to ambiguity. They are used to problems which can be solved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand most quality programmers are born problem solvers which requires a lot of imagination. I don't know if this translates to writing skills but maybe it helps.&lt;/p&gt;&#xA;" OwnerUserId="8454" LastActivityDate="2010-12-08T22:39:43.750" />
  <row Id="24784" PostTypeId="2" ParentId="24671" CreationDate="2010-12-08T22:45:16.783" Score="1" ViewCount="" Body="&lt;p&gt;There is a lot of temptation for a developer or company to work exlusively on the web (easier to deploy, single platform). Eventually someone wants the capability of the desktop or mobile device as well. You'll be glad you learned all three. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-08T22:45:16.783" />
  <row Id="24785" PostTypeId="2" ParentId="24780" CreationDate="2010-12-08T22:54:18.147" Score="2" ViewCount="" Body="&lt;p&gt;Only if you are compelled to sit at a keyboard and write enough until you become a good writer and/or your talent gets recognized. Not sure this profession is any more predisposed than any other. Charles Bukowski worked for the Post Office.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-08T22:54:18.147" />
  <row Id="24786" PostTypeId="2" ParentId="24780" CreationDate="2010-12-08T23:06:05.893" Score="4" ViewCount="" Body="&lt;p&gt;I would say it depends on 1) Exactly what kind of writing, and 2) The programmer's personality type. But on average, programmers probably have only a slightly better than average shot at making it as decent writers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Point by point:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Programmers might not, on average, be good at being creative and artistic, but we generally &lt;em&gt;are&lt;/em&gt; good critics and analytical thinkers. Notice for example, how many great programmers make for very good bloggers. I think we have the critical and analytical skills for writing good opinion pieces, and for writing articles on subjects we are interested in. As for completely 100% fictitious &quot;creative writing&quot;, such as writing novels or poetry, I'm not so sure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Many programmers are introverts. Introverted personality types also tend to make good writers. So I guess this point just means that a &quot;writer&quot; personality type has some correlation with the types of people who tend to be programmers - so this one is more of a correlation than a causation thing.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-12-08T23:06:05.893" CommentCount="2" />
  <row Id="24787" PostTypeId="2" ParentId="24671" CreationDate="2010-12-08T23:07:07.913" Score="0" ViewCount="" Body="&lt;p&gt;It depends on how much you want to focus on front-end development. Think of it this way, if you have a large-scale application with a rich desktop UI and a web front-end, then there will be shared classes forming the middle- and back-end layers.&lt;/p&gt;&#xA;" OwnerUserId="9358" LastActivityDate="2010-12-08T23:07:07.913" />
  <row Id="24788" PostTypeId="2" ParentId="24722" CreationDate="2010-12-08T23:18:33.090" Score="3" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Wake Up&lt;/li&gt;&#xA;&lt;li&gt;Smoke&lt;/li&gt;&#xA;&lt;li&gt;Have shower with hot &amp;amp; cold water every morning&lt;/li&gt;&#xA;&lt;li&gt;Some coffee or tea&lt;/li&gt;&#xA;&lt;li&gt;Start coding yesterday evening list&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="9272" LastActivityDate="2010-12-08T23:18:33.090" CommentCount="1" />
  <row Id="24789" PostTypeId="2" ParentId="24780" CreationDate="2010-12-08T23:18:37.990" Score="0" ViewCount="" Body="&lt;p&gt;Not necessarily, but I could see logic for good programmers making good editors.  Editing is slightly different than writing as the attention to detail and other subtleties come into play that programmers may already be used to having in their work,e.g. revising what was done like this answer at times.  Try this, try that and see what works and what doesn't though in this case it is more artistic or entertainment focused than other stuff.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-08T23:18:37.990" />
  <row Id="24790" PostTypeId="2" ParentId="24658" CreationDate="2010-12-08T23:20:56.803" Score="1" ViewCount="" Body="&lt;p&gt;I often do exploratory programming (for example to find out how to design an API). This often goes in one of two ways: either I actually use only REPL, or I use REPL to actually test manually whatever I wrote in an editor. In both cases REPL saves me huge amounts of time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, REPL is the best for throw-away programming: when you have a task that you know you probably wont perform it again: f.e. for data mining (Sage+R and Python are brilliant for that) there are cases you might never have data in the same exact format, so you'd need to write routines to import specific files.&lt;/p&gt;&#xA;" OwnerUserId="1411" LastActivityDate="2010-12-08T23:20:56.803" />
  <row Id="24791" PostTypeId="2" ParentId="24671" CreationDate="2010-12-08T23:26:12.850" Score="1" ViewCount="" Body="&lt;p&gt;MS have shifted their focus from Windows Forms to WPF, so I'd concentrate on the latter for client apps.&lt;/p&gt;&#xA;" OwnerUserId="9359" LastActivityDate="2010-12-08T23:26:12.850" CommentCount="5" />
  <row Id="24792" PostTypeId="2" ParentId="24671" CreationDate="2010-12-08T23:28:41.133" Score="3" ViewCount="" Body="&lt;p&gt;Don't be a ASP.NET or Windows Form developer, be a .NET Developer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm technically regarded as a ASP.NET &quot;Web forms developer however I've developed the follwing in the past 2 years:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Windows Form Application &lt;/li&gt;&#xA;&lt;li&gt;ASP.NET MVC&lt;/li&gt;&#xA;&lt;li&gt;ASP.NET Web Forms&lt;/li&gt;&#xA;&lt;li&gt;Windows Phone 7&lt;/li&gt;&#xA;&lt;li&gt;WPF Application&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;its best be adaptable however your core knowledge should be ASP.NET and WPF these days.&lt;/p&gt;&#xA;" OwnerUserId="4219" LastActivityDate="2010-12-08T23:28:41.133" />
  <row Id="24793" PostTypeId="1" CreationDate="2010-12-08T23:49:26.560" Score="1" ViewCount="160" Body="&lt;p&gt;I'm getting sick of all of Apache's quirks, and I'm considering starting to avoid &lt;code&gt;.htaccess&lt;/code&gt; as much as I can in favor of writing actual, predictable code. It would be easy and straightforward to emulate things like file security and rewrites, and control precisely what is and isn't inherited between directories without having to use strange, obtuse directives. Would there be any downsides to this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm talking about replacing, for example, this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;# .htaccess&#xA;RewriteCond %{HTTP_USER_AGENT} blah&#xA;RewriteRule ^(.*)$        /test$1 [R=301,L]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;with something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;# PHP, in a header file&#xA;if(strpos($_SERVER['HTTP_USER_AGENT'], 'blah') !== false)&#xA;    redirect(301, '/test' . $_SERVER['REQUEST_URI']);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;To repeat the question, &lt;strong&gt;what would be the downsides of implementing functionality in PHP which is traditionally handled by &lt;code&gt;.htaccess&lt;/code&gt;?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2276" LastEditorUserId="2276" LastEditorDisplayName="" LastEditDate="2010-12-09T01:53:47.933" LastActivityDate="2011-01-27T17:27:47.443" Title="Is it acceptable to work around Apache's .htaccess nonsense in another language?" Tags="&lt;php&gt;&lt;apache&gt;&lt;htaccess&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="1" />
  <row Id="24794" PostTypeId="2" ParentId="24793" CreationDate="2010-12-09T00:02:53.990" Score="1" ViewCount="" Body="&lt;p&gt;Performance, probably...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, the two behaviors you describe are not the same - a rewrite is not the same as a 301 redirect.&lt;/p&gt;&#xA;" OwnerUserId="5469" LastActivityDate="2010-12-09T00:02:53.990" CommentCount="2" />
  <row Id="24795" PostTypeId="2" ParentId="24793" CreationDate="2010-12-09T00:44:15.737" Score="3" ViewCount="" Body="&lt;p&gt;I have written a framework for my own use that gets rid of all rewrites but one - rewrite (not redirect) everything to a single index.php.  That index.php creates an instance of the framework controller and then tells it what paths exist in the site:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// Create paths for this site&#xA;$controller-&amp;gt;addPath('/path', 'templatename, 'MyClass::someCodeToRun');&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Of course there is more to it than that (mainly dynamic paths, nested templates, and security), but that's the basic idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is what many frameworks do, and I really recommend it - it doesn't need to come at (much) of a performance price if your framework is lightweight and you only include what you need for each path.  The only performance price is essentially the lookup table (which is just an associative array) for which path does what.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the better code organization can often end up being a performance &lt;em&gt;win&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-09T02:06:50.217" LastActivityDate="2010-12-09T02:06:50.217" CommentCount="3" />
  <row Id="24796" PostTypeId="2" ParentId="24757" CreationDate="2010-12-09T00:49:34.960" Score="1" ViewCount="" Body="&lt;p&gt;Can both applications support &quot;standard&quot; HTTP Authentication as defined by &lt;a href=&quot;http://www.faqs.org/rfcs/rfc2616.html&quot; rel=&quot;nofollow&quot;&gt;RFC2616&lt;/a&gt; et cetera.  There are dozens of SSO solutions.  As suggested, you may want to try OpenID.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-12-09T00:49:34.960" CommentCount="2" />
  <row Id="24798" PostTypeId="1" AcceptedAnswerId="24805" CreationDate="2010-12-09T01:56:43.737" Score="1" ViewCount="223" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After a burst of ranting about homework, the applicability of the classes I'm taking, and my computer science teacher, I have some questions concerning education for my career path as a developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I taught myself everything I know about programming. I've been thinking lately about the advantages of teaching myself vs. learning from a teacher. I feel I might miss some things I would normally learn. I might learn some concepts wrong, or something. After all, computer science eduction has been around longer than I have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is, I'm not learning anything new about computer science in my programming class. I put the computer programming 2 course on my schedule (it was labeled as Computer Science when I signed up for it). It turns out that it's just learning C++ and of course OOP. In fact, the CP2 students are in the same classroom at the same time as the CP2 students, except the CP1 course is a half-year class instead of full year. I thought we'd do something like data structures (other than arrays), or something I'm less experienced in. The teacher had me change my schedule to CP1, but he &quot;lets me loose&quot; to work on projects with the CP2 students while he teaches the CP1 students.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually end up helping the CP2 students with build errors and things like that after I'm done. I certainly don't mind helping them, but I'm not learning anything new, and I likely won't, seeing that AFAIK linked lists will be the most advanced concept taught (for the CP2 students; The class ends this semester for CP1, including me). Frankly, I'm not interested in copying source code from paper to screen, which is 90% of what the CP2 students do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to be learning something computer science related. I'd hate to sit around waiting for my options to catch up. I want to take classes not offered by my high school, like discrete mathematics, algorithms and data structures, or something like that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is, where can I take classes which aren't offered by my high school? Can I take college classes? (keep in mind there isn't any concurrent, AP, or distance-ed classes concerning computer science offered by my high school besides the CP1/CP2 class I'm in). Do you know any online classes I could take?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&#xA;Danny Shields&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S: I talk about my programming experience on my StackExchange profile if it helps.&lt;/p&gt;&#xA;" OwnerUserId="9357" LastActivityDate="2010-12-09T03:33:22.520" Title="As a programmer, what paths should I take concerning education?" Tags="&lt;experience&gt;&lt;self-improvement&gt;&lt;career-advice&gt;&lt;education&gt;&lt;software-engineering&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="24799" PostTypeId="2" ParentId="24665" CreationDate="2010-12-09T02:09:09.190" Score="2" ViewCount="" Body="&lt;p&gt;The ability to debug binding statements. I dont know how may times I have created a converter just to try debug into my binding statements (see method 2 here &lt;a href=&quot;http://www.wpftutorial.net/DebugDataBinding.html&quot; rel=&quot;nofollow&quot;&gt;http://www.wpftutorial.net/DebugDataBinding.html&lt;/a&gt;). Although, I believe they announced that would be in SL5 already. &lt;/p&gt;&#xA;" OwnerUserId="7446" LastActivityDate="2010-12-09T02:09:09.190" />
  <row Id="24800" PostTypeId="2" ParentId="24798" CreationDate="2010-12-09T02:12:31.880" Score="1" ViewCount="" Body="&lt;h3&gt;I know &lt;em&gt;exactly&lt;/em&gt; how you feel.&lt;/h3&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I want to be learning something computer science related. I'd hate to sit around waiting for my options to catch up. I want to take classes not offered by my high school, like discrete mathematics, algorithms and data structures, or something like that.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Sure! Lots of high schools have programs to pay for college or correspondence courses that the school doesn't offer. Even if they don't that's no reason you can't use some of the &lt;em&gt;many&lt;/em&gt; available online tutorials, white papers, specification guides, and code to increase your knowledge outside of a classroom. Now you have practical applicable experience for when you do end up taking courses.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;So my question is, where can I take classes which aren't offered by my high school? Can I take college classes? (keep in mind there isn't any concurrent, AP, or distance-ed classes concerning computer science offered by my high school besides the CP1/CP2 class I'm in). Do you know any online classes I could take?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;My high school had Intro to Computer Science (Visual Basic) and AP Computer Science (Java). Considering I took AP Comp. Sci in 8th grade it wasn't much help to take either. &lt;em&gt;This doesn't restrict you&lt;/em&gt;. What stops you from learning outside the classroom? I was brutally efficient in completing coursework to increase the amount of time I could spend learning on my own. When you get stuck you have an instructor that's probably as bored as you are teaching about Arrays vs. Linked Lists. They (normally) love to see students excel outside the course parameters. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-09T02:12:31.880" />
  <row Id="24801" PostTypeId="1" AcceptedAnswerId="24803" CreationDate="2010-12-09T02:14:07.523" Score="12" ViewCount="315" Body="&lt;p&gt;I'm making little progress on a major project.  The source is massive, many layers of objects, macaroni code, double-diamond graphs of multiple inheritance, half-baked features frozen when the original writer left, and no one knows why many pieces of it were designed the way they were.   So, I suppose any competent programmer would have some trouble figuring it all out well enough to fix bugs, finish the half-baked stuff and add new features.  But I suspect I'm going slower than a typical programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How to judge whether the source is unusually bad, and I'm just doing as well as anyone could, versus the source is typical for a project like this and I'm just slow-witted or underskilled?   &lt;/p&gt;&#xA;" OwnerUserId="4280" LastActivityDate="2010-12-09T17:43:44.967" Title="Slow Progress: Difficult Source or Me Stupid?" Tags="&lt;code-quality&gt;&lt;skills&gt;&lt;maintenance&gt;&lt;slow&gt;" AnswerCount="5" CommentCount="6" FavoriteCount="3" />
  <row Id="24802" PostTypeId="2" ParentId="24801" CreationDate="2010-12-09T02:25:25.823" Score="13" ViewCount="" Body="&lt;p&gt;First off, I would not spend too much time worrying that you might be &quot;slow-witted or underskilled.&quot; Some projects are hard to grasp, and large projects often take a while to get up to speed on. Thinking that you are &quot;stupid&quot; or not up to the task will not help you in any way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It sounds like you need help with the code, so consider your resources. Do you have access to the original coders? If they are available, they could be good resources for information. What documentation is available? If documentation is scarce, pull out a notebook and start creating your own personal documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The big idea here is that you should expect this process to take time, and the less time you spend mentally beating yourself up, the more energy you'll have to analyze the code and figure it out. Good luck!&lt;/p&gt;&#xA;" OwnerUserId="7629" LastEditorUserId="7629" LastEditorDisplayName="" LastEditDate="2010-12-09T02:31:41.620" LastActivityDate="2010-12-09T02:31:41.620" CommentCount="4" />
  <row Id="24803" PostTypeId="2" ParentId="24801" CreationDate="2010-12-09T02:42:21.140" Score="3" ViewCount="" Body="&lt;p&gt;The only way to decide that question is to acquire a lot more programmers to tackle the same issue and see if they fare better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is of course rarely practical, the task has fallen to your good self and providing you are doing the best you can on it, researching where your knowledge fails you.  Breaking it apart where the complexity foxes you and keeping whoever cares well informed of your progress.  &lt;em&gt;Then&lt;/em&gt; I would not worry and keep at it.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-09T02:42:21.140" />
  <row Id="24804" PostTypeId="1" AcceptedAnswerId="24817" CreationDate="2010-12-09T02:51:41.090" Score="12" ViewCount="469" Body="&lt;p&gt;I have a potential offer to do some work that mines data from several websites. As I've never done this before I was wondering if this is moral and / or legal?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems a bit of a gray area to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TIA&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT #1:&lt;br/&gt;&#xA;First of all, thanks for all the responses!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second: to clarify, I believe the data will be used to aggregate certain business models. For example (and this is not the use case) crawling automotive sales sites and creating a master list that is &quot;all in one place&quot;. So I don't think it will really contribute back to the sites from which the information is gathered, but it could potentially be useful to the consumer in the end. &lt;/p&gt;&#xA;" OwnerUserId="5916" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-09T23:46:08.257" LastActivityDate="2010-12-09T23:46:08.257" Title="Is Page Scraping and Data Mining Moral / Legal?" Tags="&lt;ethics&gt;" AnswerCount="6" CommentCount="10" FavoriteCount="2" />
  <row Id="24805" PostTypeId="2" ParentId="24798" CreationDate="2010-12-09T02:54:01.977" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;The problem is, I'm not learning anything new about computer science in my programming class.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Even in Germany, you don't get the &quot;CS&quot; stuff (data structures, algorithms, turing model, automatons, proofs, complexity, etc.) until grade 11. In fact, only few select schools offer CS at grade 11(-13). If you are out of luck, university (basically &quot;grade 14+&quot; in our system) is the first institution you will get real CS from.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before that, what schools do is just applied practice. Internet technologies like HTML and Javascript to make your own web page. Programming with QBASIC to drive some LEDs hooked up to the LPT port. Stuff you can get done without CS theory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's for &lt;em&gt;where&lt;/em&gt; to take classes. But that is usually not the place where the most proficient programmers emerge from. The B.Sc.s have theory, but the programs they write usually suck because they lack familiarity with pretty much all languages. Even people that just moved from M.Sc. to PhD have the problem, less, but noticable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Few, if any, delve into what is essential for programming: selected paradigms, or perhaps called patterns. I am not talking about procedural VS OOP, or imperative vs declarative. Did &lt;em&gt;any&lt;/em&gt; course ever talk about the Builder pattern? The Factory pattern? No? (I recommend &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201633612&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612&lt;/a&gt; )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What programmers should at best have is experience, and a lot of that. That does not mean they should not also have an understanding about CS concepts (the more the better), but in contrast to university exams, it is not so strictly necessary to understand everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And as I see it, the programmers being able to churn code has more practical (industrial) weight than a scientist being able to churn theory. (Conversely, a clever business that has to deal with internals of algorithms employs one of each type of person and utilizes twin programming, a.k.a. pair programming.)&lt;/p&gt;&#xA;" OwnerUserId="9367" LastActivityDate="2010-12-09T02:54:01.977" CommentCount="1" />
  <row Id="24806" PostTypeId="2" ParentId="24804" CreationDate="2010-12-09T03:04:28.193" Score="4" ViewCount="" Body="&lt;p&gt;It depends. Whether it is legal depends on the terms and conditions of the site. I would say if it is illegal then it is morally wrong, stealing is not nice. If it is legal, why not, search engines do. It could only be immoral if you overload and bring down the site.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-12-09T03:04:28.193" CommentCount="1" />
  <row Id="24807" PostTypeId="2" ParentId="24798" CreationDate="2010-12-09T03:33:22.520" Score="3" ViewCount="" Body="&lt;p&gt;Reading your question I thought you were a college student. So I'm impresed that your highschool offers as much as it does. My kids were able to take one or two courses from the local community college. The Opencourseware stuff is pretty decent -although a bit spotty. I tried&#xA;to learn garduate level Chemical Kinetics this way (for work), but was afraid I might be&#xA;missing some fundamentals, so I recommended my employer hire someone with an actual degree in the subject, rather than risking that I might program things wrongly, due do missing something fundamental. So not having a knowledgeable teacher/mentor has its problems. And I don't know how you can obtain official credit for learning. But I think it can at least get you a leg up learning wise.&#xA;   here is the URL for MITs CS course notes:&#xA;&lt;a href=&quot;http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/&quot; rel=&quot;nofollow&quot;&gt;http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I think math would be a great background. The real CS stuff contains a lot of it. I was always great at the analytic stuff, but never got graph theory, which can be important for some branches of CS. Also if you can wrangle some sort of paid programming project that would be great. In college I volunteered for a paid programming job one of the professors offered, so&#xA;I both learned, and earned at the same time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I had college to do over again, I'd spend five years, and take as much applied math as I could stand. As it was, AP credits let we whizz through in three, but I was both underprepared and burned out for grad school.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-12-09T03:33:22.520" CommentCount="1" />
  <row Id="24808" PostTypeId="1" CreationDate="2010-12-09T03:50:37.660" Score="4" ViewCount="224" Body="&lt;p&gt;What would you say is the coolest, most interesting program you have written? In my case, it was a simulation of bacteriophages interacting with E. Coli in openGL. I am looking to start a discussion that will lead myself and others to have fun experimenting with something new and exciting.&lt;/p&gt;&#xA;" OwnerUserId="9369" LastActivityDate="2010-12-10T23:52:06.263" Title="Programming Ideas To Incite Creativity" Tags="&lt;programming-languages&gt;&lt;project&gt;&lt;fun&gt;&lt;creativity&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="24809" PostTypeId="2" ParentId="24804" CreationDate="2010-12-09T04:12:47.487" Score="3" ViewCount="" Body="&lt;p&gt;in general, site-scraping is not nice&lt;/p&gt;&#xA;&#xA;&lt;p&gt;in specific, scraping google is against its terms of service&lt;/p&gt;&#xA;&#xA;&lt;p&gt;search engines are invited to scrape sites in return for search listings; would your scraping offer any benefit to the sites being scraped? if not, then it's probably not advisable&lt;/p&gt;&#xA;&#xA;&lt;p&gt;you'll have to decide though&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-09T04:12:47.487" CommentCount="4" />
  <row Id="24810" PostTypeId="2" ParentId="24722" CreationDate="2010-12-09T04:22:33.153" Score="0" ViewCount="" Body="&lt;p&gt;There are many possible solutions: You may depends on your family, co-workers, may try some time-managing tools like &lt;a href=&quot;http://www.workrave.org/&quot; rel=&quot;nofollow&quot;&gt;Workrave&lt;/a&gt;. But above all, you must know that what's your benefit in starting early in the morning; what you will get and what you will lose. If you think getting start early is better, then find out what you should do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It requires some of self-controlling, but after you can do it for a week, things will be like eating cake.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P/s: Personally, I don't like smoking, coffee... it's not very good in the long run. I recommend exerscies/ sports instead.&lt;/p&gt;&#xA;" OwnerUserId="9202" LastActivityDate="2010-12-09T04:22:33.153" />
  <row Id="24811" PostTypeId="2" ParentId="24804" CreationDate="2010-12-09T04:50:24.893" Score="2" ViewCount="" Body="&lt;p&gt;It boils down to the license, privacy statement and so on. You also need to see what country does the website reside to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, you can data mine pages that are marked Creative Commons Non-Attribute Commercial. The CC license does not require you to attribute the original creator and you can use it for commercial purposes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Websites will usually guard against private information stealing, for example not revealing emails in public and so on.&lt;/p&gt;&#xA;" OwnerUserId="117" LastActivityDate="2010-12-09T04:50:24.893" />
  <row Id="24812" PostTypeId="1" AcceptedAnswerId="24852" CreationDate="2010-12-09T04:54:01.053" Score="1" ViewCount="160" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0130092290&quot; rel=&quot;nofollow&quot;&gt;Core Servlets and Javaserver Pages: Core Technologies, Vol. 1 (2nd Edition)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can I rely on this book to learn Servlets and JSP,or is there a better book out there I should be reading instead?&lt;/p&gt;&#xA;" OwnerUserId="1725" LastEditorUserId="7521" LastEditorDisplayName="" LastEditDate="2011-04-04T22:15:13.487" LastActivityDate="2011-04-04T22:15:13.487" Title="Is this book a reliable source for beginning Java EE?" Tags="&lt;java&gt;&lt;books&gt;&lt;jsp&gt;" AnswerCount="2" />
  <row Id="24813" PostTypeId="2" ParentId="24722" CreationDate="2010-12-09T05:13:08.650" Score="0" ViewCount="" Body="&lt;p&gt;I think it's mostly about sleeping habits. These didn't really exist so much before electronics came along. Lighting and sound affect your &lt;a href=&quot;http://en.wikipedia.org/wiki/Circadian_rhythm&quot; rel=&quot;nofollow&quot;&gt;circadian rhythm&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't listen to music and stare into a bright screen all night like me, it makes going to sleep hard because these act as triggers to keep you awake.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I leave my bedroom window open, the light seems to wake me up less abruptly and I feel less tired. I usually wake up before my alarm having slept less but feeling more awake.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make your environment (light and sound) a little more natural and you'll probably sleep more normally.&lt;/p&gt;&#xA;" OwnerUserId="5678" LastActivityDate="2010-12-09T05:13:08.650" />
  <row Id="24814" PostTypeId="2" ParentId="24804" CreationDate="2010-12-09T05:17:45.483" Score="3" ViewCount="" Body="&lt;p&gt;i'm going to go against the grain here and say investigate further&lt;/p&gt;&#xA;&#xA;&lt;p&gt;isn't this what google and bing do unless i explicitly ask them not to with a robots.txt declaration?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;there are also fair-use protections for accessing content &lt;em&gt;for noncommercial use&lt;/em&gt;. indeed if you go to the EFF website today you will see &lt;a href=&quot;https://www.eff.org/deeplinks/2010/12/democratic-underground-responds-righthaven&quot; rel=&quot;nofollow&quot;&gt;just such a case&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;as a courtesy, check the robots.txt file for sites you want to crawl. if they block all search engines, it is likely they don't want to be crawled, and you &lt;em&gt;might&lt;/em&gt; want to respect that. but, if they let google and bing crawl, why not you? going further, try to be courteous and not slam sites you are crawling. rate-limit your requests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Fair_use&quot; rel=&quot;nofollow&quot;&gt;know your rights!&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6664" LastEditorUserId="6664" LastEditorDisplayName="" LastEditDate="2010-12-09T07:01:32.567" LastActivityDate="2010-12-09T07:01:32.567" CommentCount="5" />
  <row Id="24815" PostTypeId="2" ParentId="13470" CreationDate="2010-12-09T05:23:36.663" Score="0" ViewCount="" Body="&lt;p&gt;give two weeks notice. put it in writing. get all documents you need from the employer before leaving if possible. make sure you get your stuff and they get theirs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i don't think you need to give more than two weeks notice. i also don't think you need to make yourself available for technical questions after you have left, i've made that mistake before. keep it courteous, positive, but don't drag it out.&lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-12-09T05:23:36.663" />
  <row Id="24816" PostTypeId="2" ParentId="21265" CreationDate="2010-12-09T05:29:31.170" Score="1" ViewCount="" Body="&lt;p&gt;As with almost any answer to a &quot;technical&quot; question, the answer is &quot;it depends&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I hiring someone where real world, practically is the most important part?  Do I need them to lead a team and deliver on time, on budget?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you go with experience, because that sorta stuff you only learn by doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I'm hiring someone to build something that's never been built before, or come up with a whole new way of doing X, then perhaps the education is more important. Then again, most of what you learned in school will be irrelevant in a few years, save for software engineering fundamentals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again, it depends.&lt;/p&gt;&#xA;" OwnerUserId="6430" LastActivityDate="2010-12-09T05:29:31.170" />
  <row Id="24817" PostTypeId="2" ParentId="24804" CreationDate="2010-12-09T05:37:30.470" Score="13" ViewCount="" Body="&lt;p&gt;I think the ethical question here is really &quot;What will the data be used for?&quot;. I'd never write something that harvested e-mail addresses, for instance. Nor would I write something that just reproduced content, even if the license says I can. To me, that feels like littering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, if the public can get to it, I see no issue with having a program parse the information. You might be interested in studying &lt;a href=&quot;http://en.wikipedia.org/wiki/Small-world_network&quot; rel=&quot;nofollow&quot;&gt;small&lt;/a&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/Clustering_coefficient&quot; rel=&quot;nofollow&quot;&gt;world networks&lt;/a&gt; and decide to examine link relationships. You might be studying linguistics and trying to figure out how to determine literal phrases from sarcastic ones. Many web sites already offer a convenient way to get the content programmatically, via RSS/ATOM. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the commercial side, you might be writing something that lets people find a good deal on stuff they want to buy. You might be writing a program that helps a company find mentions of itself on blogs and forums.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just make sure that you:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Respect robots.txt &lt;/li&gt;&#xA;&lt;li&gt;Identify your bot properly and maintain a page that discloses its exact purpose&lt;/li&gt;&#xA;&lt;li&gt;Respect the copyright of others and adhere to their terms&lt;/li&gt;&#xA;&lt;li&gt;Don't interfere with the normal operation of someone else's computer (most likely server in this case, but a number of sites are hosted at home)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;My razor for solving ethical dilemmas is simply &quot;&lt;em&gt;If in doubt, don't.&lt;/em&gt;&quot; :)&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-09T15:57:22.670" LastActivityDate="2010-12-09T15:57:22.670" CommentCount="3" />
  <row Id="24820" PostTypeId="2" ParentId="24722" CreationDate="2010-12-09T06:07:25.657" Score="2" ViewCount="" Body="&lt;p&gt;A little bit of sexual activity can freshen you. Not the full flesh tired sex but a little of mingling-wingling in the bed. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-09T06:07:25.657" CommentCount="2" />
  <row Id="24821" PostTypeId="2" ParentId="24665" CreationDate="2010-12-09T06:07:42.540" Score="1" ViewCount="" Body="&lt;p&gt;Multi-touch in full screen mode and gesture support.&lt;/p&gt;&#xA;" OwnerUserId="9251" LastActivityDate="2010-12-09T06:07:42.540" />
  <row Id="24822" PostTypeId="2" ParentId="24808" CreationDate="2010-12-09T06:18:40.460" Score="0" ViewCount="" Body="&lt;p&gt;Two. 1) My last year project, which is in OoenGL, which combines a mesh(body) and an animated skeleton. The end result is the body doing the animation. I made Lara Croft dance. &#xA;2) The graduate level project in which I won the prize in the software competition. The software was GREPrep and will help the students to remember the meaning of words. It was a quiz kind of software. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. Kidding about Lara Croft dance. But she did walk. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-09T06:18:40.460" />
  <row Id="24823" PostTypeId="1" AcceptedAnswerId="25007" CreationDate="2010-12-09T06:36:00.833" Score="1" ViewCount="100" Body="&lt;p&gt;we ask the developers themselves to close the sprint once they completed the sprint. Just want to confirm, if it has to be closed by TL after he reviewed the tasks completion. &lt;/p&gt;&#xA;" OwnerUserId="9318" LastActivityDate="2010-12-09T19:25:33.707" Title="who should move the sprint status to complete in agile scrum model" Tags="&lt;agile&gt;&lt;sprint&gt;" AnswerCount="2" />
  <row Id="24824" PostTypeId="2" ParentId="24823" CreationDate="2010-12-09T06:57:54.887" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Product_owner#Characteristics&quot; rel=&quot;nofollow&quot;&gt;Product owner&lt;/a&gt; is responsible in our company &lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-12-09T06:57:54.887" CommentCount="2" />
  <row Id="24825" PostTypeId="2" ParentId="21265" CreationDate="2010-12-09T06:59:20.697" Score="1" ViewCount="" Body="&lt;p&gt;This depends on one more factor that if the experienced guy worked in one company or multiple companies within this 5 years. If he had worked in maximum of 1 or 2 companies, I would definitely choose the experience guys.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reasons are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;First of all, he will have work ethics. No more training needed on this case. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Practical knowledge is always better than theoretical knowledge. I am saying the same relevant field of the experience will have better knowledge than 5 years of course of the same field.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Since he did not move more companies in the 5 years, it shows his loyalty. You can invest on your money to get things done. With the fresher, you cannot expect that he will be staying if the work pressure is more or if he feels that the job is complicate.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="9318" LastActivityDate="2010-12-09T06:59:20.697" />
  <row Id="24826" PostTypeId="1" AcceptedAnswerId="24918" CreationDate="2010-12-09T07:09:20.970" Score="3" ViewCount="97" Body="&lt;p&gt;I would like to hear how you manage your emails when you get lot of emails on a day basis. Here some of the things that I follow, &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Read emails and respond for 2 hours once. I will not disturb my work for intermediate emails unless until I got the email with high priority status.&lt;/li&gt;&#xA;&lt;li&gt;Even I responded the emails, I maintain the incomplete tasks in a separate folder with follow-up tag and set reminder. I could do the proper follow up.&lt;/li&gt;&#xA;&lt;li&gt;Usually archiving emails every month and take a backup of them in DVD. Email size quota issue can be avoided. As well as it wont take much time to configure if you have less number of emails in your server if you have to move to the another machine/laptop.&lt;/li&gt;&#xA;&lt;li&gt;Created a rule to categorize the emails based on the To address and give more attention to the emails if it is directly addressed to me only.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Some of them above are not relevant or not needed for everyone. however, i feel that this is an important thing in management to have a smooth communication with higher/subordinate in any organization.&lt;/p&gt;&#xA;" OwnerUserId="9318" LastActivityDate="2010-12-09T13:37:58.473" Title="Responding or Maintaining Emails - best practice" Tags="&lt;best-practices&gt;&lt;email&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="24827" PostTypeId="1" AcceptedAnswerId="28118" CreationDate="2010-12-09T07:11:54.293" Score="5" ViewCount="344" Body="&lt;p&gt;Without getting into all the details here, I've found that I work hardest and most productively from home rather than commuting to the office.  However, I know that there are serious drawbacks to working remotely, especially when your coworkers do not.  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Have any of you found yourselves in a position where working remotely was the status quo, and not looked down upon?  &lt;/li&gt;&#xA;&lt;li&gt;Are there any major caveats to be concerned about?&lt;/li&gt;&#xA;&lt;li&gt;Did you find yourself longing for more coworker interaction?&lt;/li&gt;&#xA;&lt;li&gt;Where is a good place to do remote job hunting?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5739" LastEditorUserId="5739" LastEditorDisplayName="" LastEditDate="2010-12-19T20:00:01.600" LastActivityDate="2010-12-20T01:19:33.280" Title="Working remotely as a career objective" Tags="&lt;career&gt;&lt;work-environment&gt;&lt;job-market&gt;" AnswerCount="5" FavoriteCount="3" />
  <row Id="24828" PostTypeId="1" AcceptedAnswerId="24854" CreationDate="2010-12-09T07:13:43.303" Score="5" ViewCount="157" Body="&lt;p&gt;In an IT project:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Who should &lt;strong&gt;participate&lt;/strong&gt; in time estimation? Developer, team leader, scrum master and etc?&lt;/li&gt;&#xA;&lt;li&gt;Whose &lt;strong&gt;vote&lt;/strong&gt; should be counted most?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-12-09T11:52:05.230" LastActivityDate="2010-12-09T11:52:05.230" Title="Who should participate in time estimation?" Tags="&lt;project-management&gt;&lt;project&gt;&lt;time-management&gt;&lt;time-estimation&gt;" AnswerCount="4" CommentCount="4" />
  <row Id="24829" PostTypeId="2" ParentId="24827" CreationDate="2010-12-09T07:18:35.223" Score="2" ViewCount="" Body="&lt;p&gt;I have experienced a project where folks mostly work remotely. How ever, There still has been a practice to turn up for a few weeks every 3-4 months to meet, gel and socialize with rest of team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Working remotely is usually discouraged by manager or peer feedback when team does not know each other. Post socialization, I have see such cold response to disappear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most important would be to start working from office, ensure that the team knows each other closely and has interacted socially. I guess, post that only work output matters. &lt;/p&gt;&#xA;" OwnerUserId="5445" LastActivityDate="2010-12-09T07:18:35.223" CommentCount="1" />
  <row Id="24830" PostTypeId="2" ParentId="24780" CreationDate="2010-12-09T07:28:02.570" Score="1" ViewCount="" Body="&lt;p&gt;Actually writing creativity comes from our life, not  from technical brain (for common writing). So, seems to be no correlation between that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either good or not good programmer can be a good writer if they have strong sense of life.&lt;/p&gt;&#xA;" OwnerUserId="9371" LastActivityDate="2010-12-09T07:28:02.570" />
  <row Id="24831" PostTypeId="2" ParentId="24828" CreationDate="2010-12-09T07:28:05.887" Score="0" ViewCount="" Body="&lt;p&gt;Who or whose should participate in time estimation? Developer, team leader, scrum master and etc?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I prefer all to be there in time estimation and we do the same here&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Who or whose vote should be counted most?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Developer but still its all about team work again&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-12-09T07:28:05.887" />
  <row Id="24832" PostTypeId="2" ParentId="21756" CreationDate="2010-12-09T07:38:58.390" Score="1" ViewCount="" Body="&lt;p&gt;Am surprised that hardly anyone has mentioned one important skill: at least rudimentary business or finance skills. Considering that programming may even take you to industries dealing with financial domains and services, this skill would help you a lot. &lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-12-09T07:38:58.390" />
  <row Id="24833" PostTypeId="2" ParentId="24828" CreationDate="2010-12-09T07:40:10.577" Score="0" ViewCount="" Body="&lt;p&gt;I don't know if there's a one-size-fits-all answer to this question. Where I work, there are usually two engineers from the team that will be implementing the feature/fix that provide an estimate. So two engineers each provides a &quot;min&quot;, &quot;max&quot; and &quot;expected&quot; estimate. We would usually expect both estimates to be reasonably consistent, so if they're wildly different, then further discussion may be required (perhaps one engineer had made assumptions that the other did not, etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In our situation, nobody's &quot;vote&quot; is counted as such. We typically just average the two estimates (remember, if they're not already in the same ballpark, then we reject both and start with the discussions over again, so taking the average is not a big leap). The estimates are only estimates, after all, so they don't need to be &lt;em&gt;exact&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-09T07:40:10.577" />
  <row Id="24834" PostTypeId="1" CreationDate="2010-12-09T07:41:48.573" Score="4" ViewCount="274" Body="&lt;p&gt;I will start with one, which however did not work the way I wanted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Vendor Evaluation: &lt;br&gt;In the beginning of the project, we spent some time to do a survey of existing open-source libraries that can be used as building blocks for a larger library. Despite our efforts, there were a number of libraries which we did not come across until several months into the project. Had we found out those missed libraries earlier, we might have made our design decisions differently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Architecture Compatibility: &lt;br&gt;It was understood from the very beginning that no single library could have satisfied all requirements, so several existing libraries are needed, along with some custom implementation to fill the gaps. These libraries would have to be wrapped into a single architecture so that the users will not need to know the internal construction of the library. Efficiency (in multiple aspects; can be summarized as &quot;no CPU time, RAM nor Disk space can be wasted&quot;) was the main driving force in the architectural design; so the wrappers need to be equally efficient. In the beginning we did not know which open-source library would be &lt;em&gt;compatible&lt;/em&gt; with the design (in the sense that the wrapper does not introduce any inefficiency of its own), as that would have required some pioneering work to find out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code quality: &lt;br&gt;&#xA;One of the open-source library was about 20 years old. Another library was about 10 years old. In the prevailing thinking of open-source library, the older library is supposed to be more stable and have fewer bugs. Eventually we discovered that the opposite was true, and we ended up having to fix a number of bugs in the older library.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My original hypothesis is that &quot;Does it take a lot of intelligence to not succumb to it? Does it take a lot of experience?&quot; but after reviewing the project, I came to the conclusion that software reuse is like matchmaking - any notion of &quot;missed opportunity&quot; occurs naturally due to chance, and no amount of intentional effort will reduce missed opportunities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What does it take to not succumb to Not Invented Here syndrome, in order to achieve the highest degree of software reuse and at the same time satisfying the software requirements perfectly?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Added (2010/12/18)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the reason we missed a good candidate library was that it was ruled out very early in the process. When there are more than 10 libraries in the initial list, there is some pressure to find rules that can quickly eliminate some of the candidates, because otherwise we would have spent too much time analyzing (analysis paralysis). However, this fast-track elimination caused the undesirable effect of rejecting one good library. (just like hiring?)&lt;/p&gt;&#xA;" OwnerUserId="620" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-12-25T00:04:42.957" LastActivityDate="2010-12-25T06:48:27.080" Title="Not Invented Here - what does it take to not succumb to it?" Tags="&lt;code-reuse&gt;&lt;buy-vs-build&gt;&lt;software-evaluation&gt;" AnswerCount="5" />
  <row Id="24835" PostTypeId="2" ParentId="24808" CreationDate="2010-12-09T07:45:05.193" Score="0" ViewCount="" Body="&lt;p&gt;In first year as a CS student the task was to write a program that should manage a few common mathematical problems, like saying something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;f(x) = sin(x + 5) + cos(log(sin(x)));&#xA;print &quot;The eval is&quot; + f(5.5);&#xA;graph(f);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Also, we had to allow the user to do something like&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;g(x) = f'(x);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or, even worst:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;g(x) = f'''''(x);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Giving the fact that at the momment we had .NET in baby stage, and VS 2003 was the latest in IDE tecs, I believe the project was quite complex.... After that one, I've made MANY more projects, real life projects, but the sensation of being lost like I felt it with that one was unique. :)&lt;/p&gt;&#xA;" OwnerUserId="8750" LastActivityDate="2010-12-09T07:45:05.193" />
  <row Id="24836" PostTypeId="2" ParentId="24808" CreationDate="2010-12-09T07:46:36.650" Score="0" ViewCount="" Body="&lt;p&gt;Python interpreter in Scheme using only concepts and techniques a first-semester CS student would understand (starter code and solutions for a project).&lt;/p&gt;&#xA;" OwnerUserId="998" LastActivityDate="2010-12-09T07:46:36.650" />
  <row Id="24837" PostTypeId="2" ParentId="24343" CreationDate="2010-12-09T07:48:06.993" Score="4" ViewCount="" Body="&lt;p&gt;Yeah, This kicked me into thinking for hours. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the process, I had to remove some of the common answers given here already. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;NO LIST&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Big O(n) notation&lt;/strong&gt;. &#xA;Hard to put it here but No, we can intuitively work out inefficiencies and compare different set of procedures without having even remotely heard of asymptotic algorithmic analysis. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Functional languages&lt;/strong&gt;&#xA;No, A single family of language is just one approach to thinking about problems. Why only this bit should matter?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Halting Problem&lt;/strong&gt; &#xA;Some are just too specific and people have lived life without knowing they existed.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Listen&lt;/strong&gt;&#xA;If you are not listening then you live in world of your own. Not necessarily detrimental!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Software Development Cycle&lt;/strong&gt; &#xA;Nah! We can still bumble our way to some incredible software or solo heroic effort.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;complexity theory&lt;/strong&gt;&#xA;I guess this could be it but without all the formalisms&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;That one bit of idea from Comp Science&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I would say - &quot;&lt;strong&gt;Abstractions Abstractions Abstractions ...&lt;/strong&gt;&quot;.  Learn about it. See examples around it and learn how to build using it. It is every where. The whole of computer science, engineering and applications looks like layers upon layers of abstraction. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you know this, you start learning to look around well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you see some one using &lt;code&gt;list insertion&lt;/code&gt; in &lt;code&gt;python&lt;/code&gt; and &lt;code&gt;not append&lt;/code&gt;, you smile because you know that python lists are built using array abstraction where insertions are costly and append cheaper. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is but one example.&lt;/p&gt;&#xA;" OwnerUserId="5445" LastEditorUserId="5445" LastEditorDisplayName="" LastEditDate="2010-12-09T07:53:48.063" LastActivityDate="2010-12-09T07:53:48.063" CommentCount="2" />
  <row Id="24838" PostTypeId="2" ParentId="24412" CreationDate="2010-12-09T07:58:17.930" Score="1" ViewCount="" Body="&lt;p&gt;C++ indirect sort, based on the STL &lt;code&gt;sort&lt;/code&gt; and a functor template.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The need for indirect sorting (in which the desired output was the &lt;em&gt;permutation indexes&lt;/em&gt; that would result from sorting the data, but not the &lt;em&gt;sorted data&lt;/em&gt; itself) appeared many times in a number of projects. I always wondered why STL did not provide an implementation for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another was a C++ cyclic vector, where positive and negative indexes are modulo with the vector size (so that any integer values are valid indexes for the vector).&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-12-09T07:58:17.930" />
  <row Id="24839" PostTypeId="2" ParentId="24834" CreationDate="2010-12-09T08:02:37.557" Score="1" ViewCount="" Body="&lt;p&gt;I will typically opt for established, well tested and documented libraries provided that:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Licensing terms are agreeable and compatible with everything else I'm using&lt;/li&gt;&#xA;&lt;li&gt;The library is actively maintained&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In your case, it looks like you stumbled across some bits that simply weren't maintained any longer. That doesn't mean the code was not useful, if it provided you with a good starting point to accomplish your goals .. it just means that more effort than what was anticipated had to go into using it. Does that effort exceed what would be required to just write the library from scratch? If so, you probably made a bad call. If not, it saved you time and money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am fortunate enough to work only with open source UNIX like operating systems, so for me it is simply a question of what gets me to the final goal with the least amount of resistance, while not compromising on the project's design principles. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, I think every programmer has a tool box with lots of shelves in it. The libraries that you just fixed, for instance, can probably be re-used .. thus increasing their value to you in the long term. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, I'm currently in the process of re-inventing a few wheels .. but only because the effort it would take to work around what I don't like in what exists exceeds the effort it would take to implement something on my own. For instance, you might be coding to a very specific architecture .. and could do VERY well without a bunch of portability kruft.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm well known for going a little slow initially, while taking ample time to make sure I won't regret today's decision a few months from now. If I strongly suspect that I'll regret not just biting the bullet and implementing something from scratch, I'll happily do it.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-09T08:02:37.557" />
  <row Id="24840" PostTypeId="1" AcceptedAnswerId="24841" CreationDate="2010-12-09T08:25:22.223" Score="2" ViewCount="392" Body="&lt;p&gt;In our company developers sit in cubicles with walls painted with water-dispersion paint. Paint gets dirty over time and once they all we be repainted. Currently some cubicles are painted in nice colors like green apple and some are painted drab colors like cossack green.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess we could lobby better colors if we back our demands with serious arguments (personal preference doesn't count - employees sometime move between cubicles or just leave the company).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope there was some research showing which colors of the walls have positive impact on productivity. Is there any such research we could quote?&lt;/p&gt;&#xA;" OwnerUserId="587" LastActivityDate="2010-12-09T13:57:39.523" ClosedDate="2010-12-09T13:58:28.030" Title="Which colors to paint developers cubicles for better productivity?" Tags="&lt;work-environment&gt;&lt;office&gt;" AnswerCount="6" CommentCount="7" FavoriteCount="1" />
  <row Id="24841" PostTypeId="2" ParentId="24840" CreationDate="2010-12-09T08:32:16.993" Score="5" ViewCount="" Body="&lt;p&gt;Avoid strong colors. Fulorescent green, deep red, very bright yellow - they will cause mental fatigue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Avoid dark colors - they are depressive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Avoid white color - it's too bright and sort of pushes on you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best option is pastel colors - light but unsaturated yellow/orange seems to be the most cheerful and motivating. Not sure about pastel green - it's used in some medical facilities. Light blue is still cold. Maybe light red but it might cause some extra arousement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also avoid any patterns on the walls. They will draw attention and will serve as a distraction.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-09T09:33:04.937" LastActivityDate="2010-12-09T09:33:04.937" CommentCount="5" />
  <row Id="24842" PostTypeId="2" ParentId="24840" CreationDate="2010-12-09T08:39:26.587" Score="-5" ViewCount="" Body="&lt;p&gt;Let them hang up hustler magazines to keep motivated.  Wallpaper the walls with PORN&lt;/p&gt;&#xA;" OwnerUserId="5616" LastActivityDate="2010-12-09T08:39:26.587" CommentCount="15" />
  <row Id="24843" PostTypeId="2" ParentId="24780" CreationDate="2010-12-09T08:46:05.663" Score="0" ViewCount="" Body="&lt;p&gt;I think it would depend on the role of a programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A hardcore low-level system programmer may not necessarily be a good writer. He develops data structures and algorithms, watches for memory leaks and optimizes code efficiency. While this is probably an important part of the software, there will likely be somebody else who will put different pieces together to form a complete product. This other person will need to see the big picture and it would require other skills. Here you have a good bet he'll be able to write as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just recall all the blogs out there you have read. How many of them come from low-level programmers and how many come from those programmers who also exercise some managerial role?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing is with creative activities. A web-programmer with a design eye or a designer himself would likely have this writing trait well developed as well. In fact, a creative person with writing skills and the eye for style would unlikely take a role of a system programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, for those of use who appreciate the structure and quality in code, the style and consistency of the texts we put up will also matter. Taken from experience with the code, we also learn to recognize patterns in texts we read, notice the effect they have on us, and we ourselves adopt these writing strategies to achieve the goal we wish with out own texts.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-09T08:46:05.663" />
  <row Id="24844" PostTypeId="2" ParentId="24834" CreationDate="2010-12-09T08:53:16.113" Score="0" ViewCount="" Body="&lt;p&gt;Age of code is not as important as mainteinance of code.  If nobody cares about it now, when &lt;em&gt;did&lt;/em&gt; they?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you pick up an uncared-for project, you end up - as you've experienced - maintaining it yourself.  Search out those with a vibrant and large community.  I have had good experience with Apache Jakarta projects and somewhat with Eclipse projects, plus several individual projects.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-09T08:53:16.113" />
  <row Id="24845" PostTypeId="2" ParentId="24702" CreationDate="2010-12-09T09:03:41.437" Score="1" ViewCount="" Body="&lt;p&gt;Rubik's Cube is a good one too.&lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-12-09T09:03:41.437" />
  <row Id="24846" PostTypeId="2" ParentId="24722" CreationDate="2010-12-09T09:06:59.100" Score="0" ViewCount="" Body="&lt;p&gt;Two things work for me to get the code flowing in the morning.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Set a few (2 or 3) clear objectives.&lt;/li&gt;&#xA;&lt;li&gt;Set (short) deadlines for those objectives.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I write down this objectives. For example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fix reload crash&lt;/li&gt;&#xA;&lt;li&gt;Setup ssl on apache&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Tasks that work are those for which you have a clear idea on how to proceed and you can express them clearly. The point is not to give your brain slack to wonder how to proceed. Not all task work are suitable. But any project has lots of suitable pending tasks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lately I have been setting those two objectives as the last thing the day before. You will be surprised how effective a short self-imposed deadline is! &lt;/p&gt;&#xA;" OwnerUserId="9374" LastActivityDate="2010-12-09T09:06:59.100" />
  <row Id="24847" PostTypeId="1" AcceptedAnswerId="24848" CreationDate="2010-12-09T09:13:19.660" Score="19" ViewCount="507" Body="&lt;p&gt;I would like to ask this to my fellow programmers here , what tips will you give for a developer moving from window application developement to web application developement? Any tips..&lt;/p&gt;&#xA;" OwnerUserId="1522" LastEditorUserId="1522" LastEditorDisplayName="" LastEditDate="2010-12-13T04:20:14.623" LastActivityDate="2010-12-13T11:14:09.127" Title="Tips for developers moving from local applications development to web programming" Tags="&lt;career&gt;&lt;web-development&gt;&lt;tips&gt;" AnswerCount="6" CommentCount="5" FavoriteCount="12" />
  <row Id="24848" PostTypeId="2" ParentId="24847" CreationDate="2010-12-09T09:16:05.837" Score="29" ViewCount="" Body="&lt;p&gt;The thinking pattern for web applications is very different.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Forget stateful operation. A local application is loaded into memory and keeps there its state until it's shut down. Web applications live for the duration of a request. In-between there is nothing. There are though ways to keep some state information between the requests, we'll leave that for advanced classes.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Web applications often integrate with different services. Don't count on any of them to be alive permanently. Develop as though everything may go offline any minute.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Treat any user input as potentially hostile. It's also true for local applications but especially so in the web. Validate every user input and HTML-encode user input before displaying it on a page.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;With web applications sending traffic over the wire it begins to matter how much of it is wasted. With local applications it's usually indifferent because everything happens in the memory on the same machine. For web applications with a lot of requests coming simultaneously things like optimizing the page size, compressing the response and caching its content for a duration (1 min e.g. to lower the strain on the servers or the database) come into play.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="866" LastEditorDisplayName="" LastEditDate="2010-12-09T12:26:55.283" LastActivityDate="2010-12-09T12:26:55.283" CommentCount="25" />
  <row Id="24849" PostTypeId="2" ParentId="24840" CreationDate="2010-12-09T09:29:09.937" Score="1" ViewCount="" Body="&lt;p&gt;Its doesn't actually make any difference, any perceived effect will be a placebo.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-12-09T09:29:09.937" CommentCount="6" />
  <row Id="24850" PostTypeId="2" ParentId="24847" CreationDate="2010-12-09T09:33:14.720" Score="15" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Consider concurrency. E.g. Global variables without synchronisation are a major no-go. Requests, even from the same user withing the same session, &lt;em&gt;will&lt;/em&gt; be processed in parallel.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Keep in mind that the user can always close the browser and your application won't notice it. Don't let uncommited transactions etc. linger. If it is possible, commit every transaction immediately, i.e. within the request that started them.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Browsers have bookmarks, back buttons, forward buttons, reload buttons, history, caching - all these can cause &quot;funny&quot; effects to an unsuspecting web app. Don't trust your users not to click there. Prepare your app for the worst.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Developer Art already said it, but it can't be told often enough: Whatever comes from the user is potentially hostile. No amount of client-side-validation (e.g. JavaScript) can prevent an evil user from sending whatever he wants, including hand-crafted cookies. If you generate IDs, make sure they are extemely hard to guess. Don't allow a user with session ID 9876 to access another user's session with ID 9875 just that easily. (most frameworks will take care of that)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="6617" LastEditorDisplayName="" LastEditDate="2010-12-09T09:44:15.480" LastActivityDate="2010-12-09T09:44:15.480" CommentCount="3" />
  <row Id="24851" PostTypeId="2" ParentId="24826" CreationDate="2010-12-09T09:45:47.203" Score="0" ViewCount="" Body="&lt;p&gt;I'm actually using Google's priority inbox.  I find I can glance over at my open gmail client and then actually look at anything which is flagged as a priority.  Like you I prefer to work in blocks without having to read email every 10 seconds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I then use Gmail's labeling system to indicate which client/project/whatever the email is for, and the time I need to respond by (usually I respond immeidately).  I also use the 'star' to indicate that I'm expecting a response.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-09T09:45:47.203" CommentCount="1" />
  <row Id="24852" PostTypeId="2" ParentId="24812" CreationDate="2010-12-09T09:47:16.560" Score="2" ViewCount="" Body="&lt;p&gt;You might want to try the Head First series by Bert Bates and Kathy Sierra.  They're particularly geared towards being brain friendly (e.g. Easy to digest).&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-09T09:47:16.560" CommentCount="5" />
  <row Id="24853" PostTypeId="2" ParentId="24691" CreationDate="2010-12-09T09:47:16.907" Score="0" ViewCount="" Body="&lt;p&gt;The only real worls app I saw using the strrev was to store user passwords 'unreadable' in the database... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I can remember there is a pattern in C to use the strrev, maybe I come up with it later.&lt;/p&gt;&#xA;" OwnerUserId="9378" LastActivityDate="2010-12-09T09:47:16.907" />
  <row Id="24854" PostTypeId="2" ParentId="24828" CreationDate="2010-12-09T09:54:40.030" Score="1" ViewCount="" Body="&lt;p&gt;It's not so much about the people involved as the skills that need to be present:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;An good understanding of the problem domain - this is particularly important when the requirements are ambiguous or high level.  As a programmer who has never worked in travel to estimate work concerning ticket classes on a plane and they'll assume that there are 3 or 4 (economy, business, first etc.) but if you've worked in travel you'll know that there are dozens.  This may mean that a Business Analyst or expert user is involved, though over time developers themselves will build up this sort of knowledge.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;An understanding of the technology and the work that will be involved - usually a developer though a manager with recent experience who has the confidence of the team can often do the job.  Ideally though you get the person who will actually be doing the work as that way they're bought into the estimate.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;An understanding of the estimating process - this is key.  There needs to be an understanding of how to do a decent estimate, how to ensure it's right, check for appropriate levels of contingency, check for double counting or too much padding.  Usually a PM, development manager or senior developer will bring this, though in some processes a solid estimating template can provide the necessary guidance.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Those skills can be in one person, though sometimes they'll need three or more, but the key thing is to make sure that those skills are present, not that particular people are present.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, generally though I'd look for more than two people as you want the additional assurance that two or more people checking each others work brings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of whose vote is counted most, it doesn't work like that.  It's a discussion and a negotiation.  If a manager thinks the developers estimate is too high he needs to explain why and challenge (not pressure) the developer to justify it and they need to reach a consensus.  In the event you can't reach that agreement I would say two things from experience:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(a) Don't go with the number you &quot;want&quot;, it's just asking for trouble and what you want has no material impact on how quickly the work can be done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(b) In pretty much every case I've seen where a developer has been over ruled on an estimate, the final number has come out closer to what the developer thought than whoever was over ruling them - largely because they ignored point (a) above.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(That said in agile I believe, and certainly in XP, the rule is that the developers control the estimates and that's final.  If the users want to lower the estimates they have to change the requirement for something simpler.)&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-09T10:00:27.993" LastActivityDate="2010-12-09T10:00:27.993" />
  <row Id="24855" PostTypeId="2" ParentId="13340" CreationDate="2010-12-09T09:56:16.050" Score="0" ViewCount="" Body="&lt;p&gt;I started using it a while ago as alternative to delphi, it has some nice features, they are still low on documentation, but it looks promising, and the grid delivery thing works great, so far i hadn't faced any problem, i am using the JAVA++ thing, which also doesn't have any expalnations, does anyone have any tutorials or walkthroughs for it?&lt;/p&gt;&#xA;" OwnerUserId="9379" LastActivityDate="2010-12-09T09:56:16.050" />
  <row Id="24856" PostTypeId="2" ParentId="24780" CreationDate="2010-12-09T10:07:56.967" Score="0" ViewCount="" Body="&lt;p&gt;Though it does not follow that every good programmer has potential to be a good writer, it is possible that a person has both skills in abundance and therefore can make for a good writer. &#xA;Jon Skeet, Ben and Joseph Albahari, Pete Brown, Laurent Bugnion, Jesse Liberty, and Scott Hanselman are some examples that come to mind of people who are excellent at technology and at the same time, have the skill to translate the clarity of thought into the written word. These folks write interesting blogs, speak frequently at international tech events and have written great books.&lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-12-09T10:07:56.967" />
  <row Id="24857" PostTypeId="2" ParentId="15636" CreationDate="2010-12-09T10:21:38.437" Score="1" ViewCount="" Body="&lt;p&gt;No one seems to have mentioned security - in a coding standard you must have reference to secure code requirements (eg the use of input validation modules, disallowing known weak functions such as strcpy, error handling requirements etc)&lt;/p&gt;&#xA;" OwnerUserId="9062" LastActivityDate="2010-12-09T10:21:38.437" CommunityOwnedDate="2011-05-04T06:06:33.080" CommentCount="1" />
  <row Id="24858" PostTypeId="2" ParentId="24722" CreationDate="2010-12-09T10:37:38.667" Score="1" ViewCount="" Body="&lt;p&gt;This is how I warmup my brain every morning:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;(!)&lt;/strong&gt; breakfast&lt;/li&gt;&#xA;&lt;li&gt;not coffee (dangerous for the heart), but green tea or milk&lt;/li&gt;&#xA;&lt;li&gt;take a shower&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;(!)&lt;/strong&gt; ride to the office by bike (I have about 8 km of the way I can pass in 30 mins). Even if the weather is rainy or snowy - I have full set of bike-clothes that prevents me from moisture. So it accelerates blood and the brain really warms up perfectly. Also I don't feel &quot;tired&quot; in the morning, when other guys in the office do.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Signed with &lt;strong&gt;(!)&lt;/strong&gt; are required&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I proved to myself that this does not work:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;go to bed early&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-12-09T10:37:38.667" CommentCount="2" />
  <row Id="24859" PostTypeId="2" ParentId="15636" CreationDate="2010-12-09T10:44:36.260" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Examples.&lt;/strong&gt; Neatly arranged, non-trivial, close-to-real-world examples that make use of every rule. Comments (not necessarily part of the code) which part of the example follows which rule.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Templates.&lt;/strong&gt; Not the C++ kind, but something to copy-paste and fill with live. It's much easier to get that 24-lines boilerplate comment right when you have a reference to copy from.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-09T10:44:36.260" CommunityOwnedDate="2011-05-04T06:06:33.080" />
  <row Id="24860" PostTypeId="2" ParentId="15636" CreationDate="2010-12-09T10:45:03.390" Score="0" ViewCount="" Body="&lt;p&gt;Coding standards, when written on paper, is only so much effective.  I like it how Go is publishing its coding standard.  It has the tool &lt;code&gt;gofmt&lt;/code&gt; to format the program text to a format.  Any debate on the coding format then will simply result as a patch to the sources of &lt;code&gt;gofmt&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for what the format should have,&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;how to name variables, macros, constants, literals, functions, etc&lt;/li&gt;&#xA;&lt;li&gt;how to places {,},(,),[,] when it comes to &lt;code&gt;if&lt;/code&gt;, function body, statement blocks for any other purposes,&lt;/li&gt;&#xA;&lt;li&gt;how wide should indentations be,&lt;/li&gt;&#xA;&lt;li&gt;how many characters a line of text is allowed&lt;/li&gt;&#xA;&lt;li&gt;how many levels of indentations are allowed before the code is rejected/sent for refactoring&lt;/li&gt;&#xA;&lt;li&gt;how many lines of code is allowed per function before it is sent back for refactoring&lt;/li&gt;&#xA;&lt;li&gt;maximum number of arguments a function can take before it is sent back for refactoring&lt;/li&gt;&#xA;&lt;li&gt;A few lines of comments before a function begins explaining briefly what it does, if the body is to exceed one page of on screen code; leaving how the object is achieved to the code in the function's body&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;When I am reading others' (C language mostly) code, if variable/function names are not intuitive in the context of the project or if it exceeds five levels of indentation or functions take more than six or seven arguments or a function runs for over two or three pages on screen, it becomes very hard to read and understand the code.  When asked to do enhancements/maintenance work on it, it only adds to the difficulty.  It makes me wish &lt;code&gt;gofmt&lt;/code&gt; like program be written for every project (or even language) and every source code file be run through that program before it gets committed into the project.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-12-09T10:45:03.390" CommunityOwnedDate="2011-05-04T06:06:33.080" />
  <row Id="24862" PostTypeId="1" CreationDate="2010-12-09T10:49:42.797" Score="1" ViewCount="204" Body="&lt;p&gt;Which language or technology do you love, but you're not allowed to use it in your work environment and why?&lt;/p&gt;&#xA;" OwnerUserId="9217" LastActivityDate="2010-12-09T13:24:09.603" ClosedDate="2010-12-09T14:31:58.483" Title="What is the one language or technology you would love to work with but can't?" Tags="&lt;self-improvement&gt;&lt;technology&gt;&lt;languages&gt;" AnswerCount="11" CommentCount="2" />
  <row Id="24863" PostTypeId="2" ParentId="24862" CreationDate="2010-12-09T10:53:26.350" Score="1" ViewCount="" Body="&lt;p&gt;Silverlight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? The work environment doesn't have it, doesn't want it and is not inclined to have it in the future (though I am hopeful, optimistic as I am) . &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I love the technology for what it offers me and hence pursue hobby ideas on them. &lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-12-09T10:53:26.350" CommentCount="1" />
  <row Id="24864" PostTypeId="1" AcceptedAnswerId="24878" CreationDate="2010-12-09T10:54:20.560" Score="7" ViewCount="441" Body="&lt;p&gt;Are you using any other software to take instance note in your computer? I am using &lt;a href=&quot;http://www.fiddlertool.com/SlickRun/&quot; rel=&quot;nofollow&quot;&gt;SlickRun&lt;/a&gt; JOT tool. Quite helpful to take notes instantly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are other software too to do, please share if you also have any other like this,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Windows 7/Vista (Sticky Note)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.evernote.com/&quot; rel=&quot;nofollow&quot;&gt;EverNote&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Notepad&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://notepad-plus-plus.org/&quot; rel=&quot;nofollow&quot;&gt;Notepad++&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://office.microsoft.com/en-us/onenote/&quot; rel=&quot;nofollow&quot;&gt;Microsoft OneNote&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9318" LastEditorUserId="9318" LastEditorDisplayName="" LastEditDate="2010-12-09T17:03:19.620" LastActivityDate="2011-05-27T08:36:59.403" CommunityOwnedDate="2011-05-27T06:43:10.017" Title="What kind of software you use to take instant notes" Tags="&lt;general-purpose&gt;&lt;utilities&gt;" AnswerCount="20" CommentCount="4" FavoriteCount="3" />
  <row Id="24865" PostTypeId="2" ParentId="24862" CreationDate="2010-12-09T10:58:12.210" Score="1" ViewCount="" Body="&lt;p&gt;I'll presume this question is asked from a work/professional perspective because that &quot;can't&quot; can always be fixed with a new job or spare time. I personally wish I could spend more time in JavaScript, specifically using JQuery. I find it is very rewarding as directly impacting the user interface and experience. &lt;/p&gt;&#xA;" OwnerUserId="8309" LastActivityDate="2010-12-09T10:58:12.210" />
  <row Id="24866" PostTypeId="2" ParentId="24801" CreationDate="2010-12-09T11:06:09.730" Score="5" ViewCount="" Body="&lt;p&gt;Ever seen the learning curve. &#xA;&lt;img src=&quot;http://i.imgur.com/BgPWC.jpg&quot; alt=&quot;The learning Curce&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Theory says that initially it does take time to step up. The trick is to pass the step up point fast. If you are getting stuck regularly  then ask for the help from your manager or at least keep him/her informed about the problems you faced. As long as you are ok for schedule no issues. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-09T11:06:09.730" />
  <row Id="24867" PostTypeId="2" ParentId="24862" CreationDate="2010-12-09T11:07:40.003" Score="1" ViewCount="" Body="&lt;p&gt;I would have loved to have been an emerging FORTRAN developer in the 50's. And not just for the sharp suits!&lt;/p&gt;&#xA;" OwnerUserId="550" LastActivityDate="2010-12-09T11:07:40.003" CommentCount="2" />
  <row Id="24868" PostTypeId="2" ParentId="24862" CreationDate="2010-12-09T11:13:47.393" Score="5" ViewCount="" Body="&lt;p&gt;C++1x&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wish we had all this ten years ago. However, now I'm forced (at gun point) to write C# for a living. &lt;/p&gt;&#xA;" OwnerUserId="1512" LastActivityDate="2010-12-09T11:13:47.393" CommentCount="1" />
  <row Id="24869" PostTypeId="2" ParentId="24862" CreationDate="2010-12-09T11:14:56.987" Score="2" ViewCount="" Body="&lt;p&gt;I'd love to have a shot at Erlang.&lt;/p&gt;&#xA;" OwnerUserId="4285" LastActivityDate="2010-12-09T11:14:56.987" />
  <row Id="24870" PostTypeId="2" ParentId="24862" CreationDate="2010-12-09T11:15:12.883" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Haskell&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love to program in Haskell, it's a joy. But i can not use it at work.&#xA;Only one other colleague knows it (i forced him to learn it) and we are tied to Python for most serious scripting, because it's the extension language of a proprietary product.&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-12-09T11:22:08.353" LastActivityDate="2010-12-09T11:22:08.353" CommentCount="1" />
  <row Id="24871" PostTypeId="2" ParentId="24864" CreationDate="2010-12-09T11:16:46.887" Score="0" ViewCount="" Body="&lt;p&gt;I'm using EditPadPro (&lt;a href=&quot;http://www.just-great-software.com/&quot; rel=&quot;nofollow&quot;&gt;JGSoft&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="9381" LastActivityDate="2010-12-09T11:16:46.887" CommunityOwnedDate="2011-05-27T06:43:10.017" CommentCount="1" />
  <row Id="24872" PostTypeId="2" ParentId="24864" CreationDate="2010-12-09T11:17:03.717" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://docs.google.com&quot; rel=&quot;nofollow&quot;&gt;Google Docs&lt;/a&gt; as I can access it anywhere from my phone, and its backed up so I will never lose any notes/documents. Well I hope it is anyway, never fully read the terms and conditions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For syntax highlighting locally there are these free apps&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://notepad-plus-plus.org/&quot; rel=&quot;nofollow&quot;&gt;notepad++&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.flos-freeware.ch/notepad2.html&quot; rel=&quot;nofollow&quot;&gt;notepad2&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.pnotepad.org/&quot; rel=&quot;nofollow&quot;&gt;programmers notepad&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-12-09T11:32:10.250" LastActivityDate="2010-12-09T11:32:10.250" CommunityOwnedDate="2011-05-27T06:43:10.017" />
  <row Id="24873" PostTypeId="1" AcceptedAnswerId="24875" CreationDate="2010-12-09T11:18:44.217" Score="7" ViewCount="167" Body="&lt;p&gt;I've got some software that I wrote around 2 years ago and needs some features added to it.  I've realised that its in an awful mess - and have the urge to move everything around, tidy up etc.  I've joel on software about &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000069.html&quot; rel=&quot;nofollow&quot;&gt;not starting again&lt;/a&gt;, so whats the best way forward?&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-12-09T13:01:39.267" Title="Fixing old software" Tags="&lt;software-engineering&gt;&lt;software-development&gt;" AnswerCount="4" />
  <row Id="24874" PostTypeId="2" ParentId="24873" CreationDate="2010-12-09T11:21:40.363" Score="4" ViewCount="" Body="&lt;p&gt;Well, at least refactor enough so the new feature can be added safely. I.e. don't make it even worse. The rest depends on motivation, budget and time constraints - but be aware to fully cleaning up a mess can take longer than originaly creating it.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-09T11:21:40.363" CommentCount="1" />
  <row Id="24875" PostTypeId="2" ParentId="24873" CreationDate="2010-12-09T11:27:31.530" Score="10" ViewCount="" Body="&lt;p&gt;You have three basic options:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;If the app is &lt;em&gt;very small&lt;/em&gt; and a &lt;em&gt;real mess&lt;/em&gt;, starting again might actuall be your best bet.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Code_refactoring&quot; rel=&quot;nofollow&quot;&gt;Refactor&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Live with the mess and hack in the additional features.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Typically, option (2) is your best bet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How much refactoring you actually do will depend on the resource you put in vs the value you get out. Questions to ask will include:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What time / budget is available?&lt;/li&gt;&#xA;&lt;li&gt;How much modification do you anticipate in the future?&lt;/li&gt;&#xA;&lt;li&gt;Who else will see the code? (ie. will messy code damage your reputation?)&lt;/li&gt;&#xA;&lt;li&gt;Is anyone else expected to maintain the code?&lt;/li&gt;&#xA;&lt;li&gt;What refactoring tools are available to help you?&lt;/li&gt;&#xA;&lt;li&gt;What is your experience of refactoring?&lt;/li&gt;&#xA;&lt;li&gt;What experience will you gain from refactoring?&lt;/li&gt;&#xA;&lt;li&gt;What kinds of refactoring will give you the most benefits?&lt;/li&gt;&#xA;&lt;li&gt;What automated tests already exist? Need to be written?&lt;/li&gt;&#xA;&lt;li&gt;How much manual testing will be required?&lt;/li&gt;&#xA;&lt;li&gt;How will you feel if you leave the code as it is?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In my experience, it is &lt;em&gt;very&lt;/em&gt; easy to get into proper muddle during a refactoring session. The most important lessons that I've learned are to:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Do one thing at a time.&lt;/li&gt;&#xA;&lt;li&gt;Take small steps.&lt;/li&gt;&#xA;&lt;li&gt;Make good use of your source control (check in frequently + include comments).&lt;/li&gt;&#xA;&lt;li&gt;Make use of automated refactoring tools.&lt;/li&gt;&#xA;&lt;li&gt;Know the IDE.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1928" LastEditorUserId="1928" LastEditorDisplayName="" LastEditDate="2010-12-09T12:38:05.777" LastActivityDate="2010-12-09T12:38:05.777" CommentCount="6" />
  <row Id="24876" PostTypeId="2" ParentId="24862" CreationDate="2010-12-09T11:30:31.810" Score="2" ViewCount="" Body="&lt;p&gt;I'd love to do some Smalltalk. The problem is it just doesn't have any commercial presence and there's not a huge open source movement behind it (sadly).&lt;/p&gt;&#xA;" OwnerUserId="4850" LastActivityDate="2010-12-09T11:30:31.810" CommentCount="1" />
  <row Id="24877" PostTypeId="2" ParentId="24873" CreationDate="2010-12-09T11:42:07.527" Score="1" ViewCount="" Body="&lt;p&gt;This time while fixing the things make sure to document it. Next time you will see the code it will be much easier to recall the things. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-09T11:42:07.527" />
  <row Id="24878" PostTypeId="2" ParentId="24864" CreationDate="2010-12-09T11:44:20.377" Score="12" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://office.microsoft.com/en-us/onenote/&quot; rel=&quot;nofollow&quot;&gt;Microsoft OneNote&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has some useful features for maintaining notes as an organized notebook.&lt;/p&gt;&#xA;" OwnerUserId="29" LastActivityDate="2010-12-09T11:44:20.377" CommunityOwnedDate="2011-05-27T06:43:10.017" CommentCount="1" />
  <row Id="24879" PostTypeId="2" ParentId="24862" CreationDate="2010-12-09T11:45:58.240" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Scala&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never actually used it but the inventor of Groovy seems to love it &lt;a href=&quot;http://macstrac.blogspot.com/2009/04/scala-as-long-term-replacement-for.html&quot; rel=&quot;nofollow&quot;&gt;http://macstrac.blogspot.com/2009/04/scala-as-long-term-replacement-for.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its also mentioned in the same link as a replacment to Java. Whether thats true or not, it does have some amazing features, including being multi-paradigm, which would appeal to a lot of developers I know who would love to have functional programming elements in Java.&lt;/p&gt;&#xA;" OwnerUserId="154" LastActivityDate="2010-12-09T11:45:58.240" CommentCount="3" />
  <row Id="24880" PostTypeId="2" ParentId="24828" CreationDate="2010-12-09T11:49:34.617" Score="0" ViewCount="" Body="&lt;p&gt;A project has business requirements + deadlines coming from the top down. Those are &quot;given estimations&quot; for the first iteration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These requirements must be partitioned to the bigest tasks having 100% known cost (like &quot;enable logging&quot; = 2hours = &quot;download log4j/slf4j and plug in&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The estimation should be done at the highest possible level which already has enough technical expertise to do so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The corrected estimations must travel back up in the form &quot;business visible feature&quot; = &quot;this amount of time&quot; until they reach the business owner at appropriate leve, able to drop/change requirements or relax deadlines. Then back down. Until final convergence. In practice people tend to ignore this phase or simplify it, which in turn may create risks associated with missed deadline and opportunities. &lt;/p&gt;&#xA;" OwnerUserId="4676" LastActivityDate="2010-12-09T11:49:34.617" CommentCount="3" />
  <row Id="24881" PostTypeId="2" ParentId="4969" CreationDate="2010-12-09T11:51:50.707" Score="0" ViewCount="" Body="&lt;p&gt;I used to work on OS/2-based control systems for serious cheque processing hardware in the early 90's. Due to a customs/scheduling screw-up I had an entire month without any hardware to use, so I wrote a full Norton SysInfo clone for OS/2. &lt;/p&gt;&#xA;" OwnerUserId="9336" LastActivityDate="2010-12-09T11:51:50.707" />
  <row Id="24882" PostTypeId="2" ParentId="24801" CreationDate="2010-12-09T11:53:46.123" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Dissect it, once piece at a time&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your situation is very common, &lt;strong&gt;&quot;getting to grips&quot;&lt;/strong&gt; takes time as others have already mentioned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I find is that if you tackle it &lt;strong&gt;&quot;one piece at a time&quot;&lt;/strong&gt;, regardless of how complex a project is you will figure it out. You just have to be logical about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start of with say a button, dig through the &lt;strong&gt;source code&lt;/strong&gt;, put breakpoints, &lt;strong&gt;see step by step&lt;/strong&gt; what's going on. There is two things you need to fulfil:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The high level overview.&lt;/li&gt;&#xA;&lt;li&gt;The nitty gritty details that implement the above desired functionality.&lt;/li&gt;&#xA;&lt;li&gt;once you understand parts of it, re-factor it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-09T11:53:46.123" CommentCount="3" />
  <row Id="24883" PostTypeId="2" ParentId="24862" CreationDate="2010-12-09T12:07:38.217" Score="1" ViewCount="" Body="&lt;p&gt;I will love working on 3-D game development, but stuck doing real time data analysis instead. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-09T12:07:38.217" CommentCount="2" />
  <row Id="24884" PostTypeId="2" ParentId="24864" CreationDate="2010-12-09T12:08:43.023" Score="0" ViewCount="" Body="&lt;p&gt;gvim on windows.  &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-09T12:08:43.023" CommunityOwnedDate="2011-05-27T06:43:10.017" />
  <row Id="24885" PostTypeId="2" ParentId="4969" CreationDate="2010-12-09T12:15:53.207" Score="1" ViewCount="" Body="&lt;p&gt;I had to write a simple SFTP client for a university project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of using a pre-made library, I took the extremely long and terse &lt;a href=&quot;http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13&quot; rel=&quot;nofollow&quot;&gt;SFTP specification&lt;/a&gt; and implemented the whole protocol myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It actually worked pretty well.&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-12-09T12:15:53.207" />
  <row Id="24886" PostTypeId="1" CreationDate="2010-12-09T12:15:53.487" Score="1" ViewCount="273" Body="&lt;p&gt;So in college I started learning Php, mostly starting with the Larry Ullman books. I got a job at a company after, where I was able to learn some stuff from the higher up guys. Since then, I've done freelance stuff and sort of learned things as I needed to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm trying to figure out where to go next. I definitely want to stick with the web programming arena, and I'm enjoying concentrating on Php.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know MySQL as well, but VERY little Javascript / Ajax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also been reading a lot of OOP theory, and have a descent grasp of how it works, but it doesn't feel natural yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where should I go from here? Is it worth learning Java fort a while to really get the OOP stuff down? I took introductory Java in college, but it was only 1 semester. Or should I concentrate on some of the open source stuff (Wordpress, Drupal, JQuery, etc). How about E-commerce solutions? I have no experience with that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of my goals, I don't have much plans for big, enterprise types of projects.  I would mostly be interested in working freelance on websites of small, to medium size.  But, I would like my coding to be as sound, and well structured as can be&lt;/p&gt;&#xA;&#xA;&lt;p&gt;thanks for the help!&lt;/p&gt;&#xA;" OwnerUserId="9383" LastActivityDate="2011-04-17T10:14:21.453" Title="Php: Whats my next step?" Tags="&lt;java&gt;&lt;php&gt;&lt;object-oriented&gt;&lt;mysql&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="1" />
  <row Id="24887" PostTypeId="1" CreationDate="2010-12-09T12:27:02.743" Score="0" ViewCount="269" Body="&lt;p&gt;You may already know from my previous posts that I'm currently looking for a web development course.  After some thinking, I decided &quot;not&quot; to take pure oracle/sql course at the moment and concentrate on web development only.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FYI, I got my computer science degree 3 years ago (I know some JAVA and C++) and currently self-learning ASP.NET 4.0 with C#.  I've been working in a non-programming/non-IT related field for my last two years and have decided to switch to web programming field for good. Since I didn't work in web development field during my last 2 years, I think it would be beneficial to take some web programming classes instead of being self-taught.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Today I found three courses that seem pretty interesting and don't know which one is more suitable to me/my current situation.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Course #1 (90 hours in total)&lt;/strong&gt; covered both web design and web application development(PHP/mysql).  To me, I'm not sure whether a web programmer should know some web design as well (Web graphic, Flash etc..)...but I really don't mind learning those.  A lot of websites are PHP nowadays and of course, I don't mind learning PHP as well. However, I prefer ASP.NET.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Course #2 (24 hours in total)&lt;/strong&gt; is ASP.NET course, this course even cover ASP.NET MVC 2, some basic AJAX and silverlight.  I like ASP.NET and it seems this course is suitable for me. However, this course is only 24 hours, may be a bit of a rush.  But hey!, students will be rewarded a Microsoft Official Course certification upon completion of the course.  Quite attractive...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Course #3: (30 hours in total)&lt;/strong&gt;  AJAX! It's getting more and more popular and I don't know if this is suitable for me at my current state?  Actually it's being covered a bit in Course #2 too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Should I take Course #1 and self-learn ASP.NET + AJAX? or vice versa (take course #2 and self study web design + PHP + AJAX?).&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;For details about the three courses, see below:&lt;/em&gt;&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Course #1: Multimedia web design and web application development with PHP/MySQL (90 Hours in total, 6 hours per week&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Part One: Multimedia Web Design (57 hrs)&#xA;    Lesson 1: Introduction to Web Graphic Design&#xA;&#xA;    Lesson 2: Vector Graphic and Photo Retouching Technique&#xA;　&#xA;    Lesson 3: Image Collage and Composition Technique&#xA;　&#xA;    Lesson 4: Gif Animation Production and Graphic Optimization&#xA;　&#xA;    Lesson 5: Preparation of Web Site Layout&#xA;　&#xA;    Lesson 6: Website Hierarchy and HTML Basic&#xA;　&#xA;    Lesson 7: HTML Template Construction&#xA;　&#xA;    Lesson 8: Publish Artwork to HTML&#xA;　&#xA;    Lesson 9: Integration of Multimedia File to HTML&#xA;　&#xA;    Lesson 10: Use of Cascading Style Sheet (CSS) Lesson I&#xA;　&#xA;    Lesson 11: Use of Cascading Style Sheet (CSS) Lesson II&#xA;　&#xA;    Lesson 12: Introduction to flash animation and add interactivity to your web site&#xA;　&#xA;    Lesson 13: Knowledge of Frame, Keyframe and Blank KeyFrame&#xA;　&#xA;    Lesson 14: Tweening Animation: Motion Tweening and Shape Tweening&#xA;　&#xA;    Lesson 15: Button Basic and Event Handler&#xA;　&#xA;    Lesson 16: Using Actionscript&#xA;　&#xA;    Lesson 17: Variable, Loop and Function&#xA;　&#xA;    Lesson 18: Actionscript Based Animation&#xA;　&#xA;    Lesson 19: Flash Publishing and Embedded to HTML&#xA;　&#xA;Part Two: Interactive Application Development (33 hrs)&#xA;    Lesson 20: Introduction to PHP and server-side programming / Installation and Configuration of Apache 2 and PHP 5 on Windows platform&#xA;　&#xA;    Lesson 21: Basic PHP Syntax : Data Types, Variables, Arrays, Function and Loop&#xA;　&#xA;    Lesson 22: Introduction of Database Programming and MySQL / Installation and Configuration of MySQL 5 and related utilities&#xA;　&#xA;    Lesson 23: Implementing user authentication and authorization using cookie and session (Building a membership system)&#xA;　&#xA;    Lesson 24: SQL &amp;amp; Database Programming in PHP I (Corporate News with Content Management System)&#xA;　&#xA;    Lesson 25: SQL &amp;amp; Database Programming in PHP II (Search function, Interactive Enquiry Forms, Online Questionnaire and Hit Counter)&#xA;　&#xA;    Lesson 26: Online Product Catalogue with Content Management System&#xA;　&#xA;    Lesson 27: Shopping Cart and Payment Gateway Integration&#xA;　&#xA;    Lesson 28: Interactive Voting System and Interactive Bidding System&#xA;　&#xA;    Lesson 29: Online Forum Setup and Configuration using phpBB&#xA;　&#xA;    Lesson 30: Project Presentation&#xA;　&#xA;Assessment Method:&#xA;    Exercise (60%)&#xA;- Part One (40%)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;- Part Two (20%)&#xA;    　&#xA;        Final Project Work (40%)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;　&#xA;&lt;strong&gt;Course #2: Introduction to Web Development with Microsoft Visual Studio 2010 (24 Hours, 3 hours per week)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Module 1: Exploring Microsoft ASP.NET Web Applications in Microsoft Visual Studio 2010&#xA;This module explains the key features of Microsoft .NET Framework and Microsoft ASP.NET. It helps you view the complete Web application that you build in the labs throughout this course&#xA;&#xA;Lessons&#xA;Introduction to the .NET Framework&#xA;Overview of ASP.NET&#xA;Overview of the Lab Application&#xA;&#xA;Module 2: Creating Web Applications by Using Microsoft Visual Studio 2010 and Microsoft .NET–Based Languages&#xA;This module describes the different programming languages that are available when you develop Microsoft .NET Framework applications. It explains the fundamental aspects of writing code and creating components by using two of the .NET Framework–based languages, Microsoft Visual Basic and Microsoft Visual C#. It provides an overview of Microsoft Visual Studio 2010. It also explains how to create a simple Web application.&#xA;&#xA;Lessons&#xA;Choosing a Programming Language&#xA;Overview of Visual Studio 2010&#xA;Creating a Simple Web Application&#xA;&#xA;Lab : Creating Web Applications by Using Microsoft Visual Studio 2010 and Microsoft .NET–Based Languages&#xA;Exercise 1: Creating an ASP.NET Web Site&#xA;Exercise 2: Adding and Configuring Server Controls in Web Forms&#xA;Exercise 3: Building and Deploying an ASP.NET Web Application&#xA;&#xA;Module 3: Creating a Microsoft ASP.NET Web Form&#xA;This module explains how to create Web Forms and populate them with server controls.&#xA;&#xA;Lessons&#xA;Creating Web Forms&#xA;Adding and Configuring Server Controls in a Web Form&#xA;&#xA;Lab : Creating a Microsoft ASP.NET Web Form&#xA;Exercise 1: Creating a Web Form&#xA;Exercise 2: Adding and Configuring Server Controls in a Web Form&#xA;&#xA;Module 4: Adding Functionality to a Microsoft ASP.NET Web Form&#xA;This module describes the various methods that you can use to add code to your Microsoft ASP.NET Web application. It explains how to use Web server controls, event handlers, code-behind files, and components. In addition, it explains how to use page events, especially the Page_Load event.&#xA;&#xA;Lessons&#xA;Working with Code-Behind Files&#xA;Handling Server Control Events&#xA;Creating Classes and Components by Using Visual Studio 2010&#xA;Handling Page Events&#xA;&#xA;Lab : Adding Functionality to a Microsoft ASP.NET Web Form&#xA;Exercise 1: Implementing Code in a Web Application&#xA;Exercise 2: Creating Event Procedures&#xA;Exercise 3: Creating an Entity Component&#xA;Exercise 4: Handling Page and Control Events&#xA;&#xA;Module 5: Implementing Master Pages and User Controls&#xA;This module explains how to create and implement master pages and how to implement user controls in a Web application.&#xA;&#xA;Lessons&#xA;Creating Master Pages&#xA;Adding User Controls to an ASP.NET Web Form&#xA;&#xA;Lab : Implementing Master Pages and User Controls&#xA;Exercise 1: Adding and Applying a Master Page&#xA;Exercise 2: Converting Web Forms to Content Pages and User Controls&#xA;&#xA;Module 6: Validating User Input&#xA;This module provides an overview of user input validation. It covers information on adding, positioning, and configuring validation controls on a Web Form. In addition, it covers information on validating Web Forms.&#xA;&#xA;Lessons&#xA;Overview of User Input Validation&#xA;ASP.NET Validation Controls&#xA;Validating Web Forms&#xA;&#xA;Lab : Validating User Input&#xA;Exercise 1: Adding Validation Controls&#xA;Exercise 2: Configuring Validation Controls&#xA;Exercise 3: Adding Server-Side Validation&#xA;&#xA;Module 7: Troubleshooting Microsoft ASP.NET Web Applications&#xA;This module describes the steps required to enable tracing and debugging, including how you can use debugging and tracing in a Web application.&#xA;&#xA;Lessons&#xA;Debugging in ASP.NET&#xA;Tracing in ASP.NET&#xA;&#xA;Lab : Debugging Microsoft ASP.NET Web Applications&#xA;Exercise 1: Debugging a Web Application&#xA;Exercise 2: Tracing a Web Application&#xA;&#xA;Module 8: Managing Data in an Microsoft ASP.NET 4.0 Web Application&#xA;This module provides an overview of Microsoft ADO.NET. It explains how to programmatically work with data by using ADO.NET and how to create a connection to access the data stored in a Microsoft SQL Server database. In addition, it explains how to use the DataSet and DataReader objects to support the local data storage and data manipulation requirements of Web Forms.&#xA;&#xA;Lessons&#xA;Overview of ADO.NET&#xA;Connecting to a Database&#xA;Managing Data&#xA;&#xA;Lab : Managing Data in an ASP.NET 4.0 Web Application&#xA;Exercise 1: Connecting to a Data Source&#xA;Exercise 2: Binding a Server Control to a Data Source&#xA;Exercise 3: Modifying a Data Source&#xA;&#xA;Module 9: Managing Data Access Tasks by Using LINQ&#xA;This module explains what LINQ is and how you can use LINQ to manage both XML data and Microsoft SQL Server data in a Microsoft ASP.NET Web application by using Web Server controls and code.&#xA;&#xA;Lessons&#xA;Overview of LINQ&#xA;Managing XML Data by Using LINQ to XML&#xA;Managing SQL Data by Using LINQ to SQL and LINQ to Entities&#xA;&#xA;Lab : Managing Data Access Tasks by Using LINQ&#xA;Exercise 1: Loading Data by Using the XmlDataSource Control&#xA;Exercise 2: Displaying Data by Using LINQ to XML&#xA;Exercise 3: Saving Data by Using LINQ to Entities&#xA;&#xA;Module 10: Managing Data by Using Microsoft ASP.NET Dynamic Data&#xA;This module provides an overview of Microsoft ASP.NET Dynamic Data. It also covers information on applying ASP.NET Dynamic Data. In addition, it explains how to customize ASP.NET Dynamic Data applications.&#xA;&#xA;Lessons&#xA;Overview of ASP.NET Dynamic Data&#xA;Applying ASP.NET Dynamic Data&#xA;Customizing ASP.NET Dynamic Data Applications&#xA;&#xA;Lab : Managing Data by Using ASP.NET Dynamic Data&#xA;Exercise 1: Adding Dynamic Data to an Existing Web Site&#xA;Exercise 2: Registering LINQ to Entities by Using Dynamic Data&#xA;Exercise 3: Map, Clean and Test Solution&#xA;&#xA;Module 11: Creating a Microsoft ASP.NET Ajax-enabled Web Forms Application&#xA;This module provides an overview of Microsoft ASP.NET AJAX and explains how to create an ASP.NET AJAX application. It also introduces the ASP.NET AJAX Control Toolkit, and explains how to install the toolkit and add controls from the toolkit to a Web application.&#xA;&#xA;Lessons&#xA;Introduction to Ajax&#xA;Creating an ASP.NET Ajax Application by Using the Ajax Features for ASP.NET&#xA;Extending an ASP.NET Web Forms Application by Using the Ajax Control Toolkit&#xA;&#xA;Lab : Creating a Microsoft ASP.NET Ajax-Enabled Web Forms Application&#xA;Exercise 1: Creating a Modal About Box&#xA;Exercise 2: Customizing Dynamic Data Field Templates with Ajax Server Controls&#xA;Exercise 3: Adding the Country Import Progress Indicator&#xA;&#xA;Module 12: Consuming Microsoft Windows Communication Foundation Services&#xA;This module provides an overview of Windows Communication Foundation services. In addition, this module describes how to call a Windows Communication Foundation (WCF) service directly by using a browser and a proxy from a Web application.&#xA;&#xA;Lessons&#xA;Overview of Windows Communication Foundation Services&#xA;Calling Windows Communication Foundation Services&#xA;Working with WCF Data Services&#xA;&#xA;Lab : Consuming Windows Communication Foundation Services&#xA;Exercise 1: Creating a WCF Service Reference Proxy&#xA;Exercise 2: Calling a WCF Service Method from a Web Form&#xA;Exercise 3: Implementing WCF Data Services&#xA;&#xA;Module 13: Managing State in Web Applications&#xA;This module explains how to manage state in a Microsoft ASP.NET Web application.&#xA;&#xA;Lessons&#xA;State Management&#xA;ASP.NET Profiles&#xA;ASP.NET Caching&#xA;&#xA;Lab : Managing State in Web Applications&#xA;Exercise 1: Examining the View State&#xA;Exercise 2: Caching Countries&#xA;Exercise 3: Displaying Visitors Counter on Default Page&#xA;&#xA;Module 14: Configuring and Deploying a Microsoft ASP.NET Web Application&#xA;This module explains how to configure and deploy a Microsoft ASP.NET Web application by using the machine.config and web.config files.&#xA;&#xA;Lessons&#xA;Configuring an ASP.NET Web Application&#xA;Deploying an ASP.NET Web Application&#xA;&#xA;Lab : Configuring and Deploying a Microsoft ASP.NET Web Application&#xA;Configuring the List View Page Size and Enabling the Save Countries Button&#xA;Configuring the Visitor Counter&#xA;Deploying the Web Application&#xA;&#xA;Module 15: Securing a Microsoft ASP.NET Web Application&#xA;This module explains the various Web application security functionalities. It also covers information on the infrastructure to build and deploy various Web application security functionalities.&#xA;&#xA;Lessons&#xA;Overview of Web Application Security&#xA;Declaratively Configuring Authentication and Authorization&#xA;Working Programmatically with Authentication and Authorization&#xA;&#xA;Lab : Securing a Microsoft ASP.NET Web Application&#xA;Exercise 1: Enabling Forms Authentication&#xA;Exercise 2: Implementing Authorization&#xA;Exercise 3: Protecting Configuration File&#xA;&#xA;Module 16: Implementing Advanced Technologies Supported by Microsoft Visual Studio 2010 for Web Development&#xA;This module describes the new Visual Studio 2010 and .NET Framework 4 functionalities, changes, and enhancements for improved Web development. The module also covers how Microsoft ASP.NET MVC 2 and Microsoft Silverlight 4 fit in with .NET Framework 4 and Visual Studio 2010&#xA;&#xA;Lessons&#xA;Working with the ASP.NET MVC 2 Framework&#xA;Working with Silverlight 4&#xA;&#xA;Lab : Implementing Advanced Technologies Supported by Microsoft Visual Studio 2010 for Web Development&#xA;Exercise: Implementing a Silverlight Application&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Upon completion of Course #2 above, student will be awarded a &quot;Microsoft Official Course Certificate&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Course #3: Certificate in AJAX application (30 hours, 3 hours per week)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Chapter 1: AJAX Basics&#xA;    Introduction to AJAX&#xA;    Traditional Web Application VS AJAX Web Application&#xA;    New Web Application Development Approach&#xA;    Introduction to the XMLHttpRequest Object&#xA;    Case Study and exercise&#xA;Chapter 2: HTML Document Object Model&#xA;    Understanding HTML Document Object Model&#xA;    Accessing Nodes&#xA;　   &#xA;    Element&#xA;    Attribute&#xA;    Removing Nodes&#xA;    Creating New Nodes&#xA;    DOM Manipulation&#xA;    Case Study and exercise&#xA;Chapter 3: XML Basics&#xA;    What is XML ?&#xA;    The use of XML&#xA;    XML Benefits&#xA;    XML in Practice&#xA;　   &#xA;    Web Services&#xA;    RDF / RSS Feeds&#xA;    XML Documents&#xA;    Creating XML File&#xA;    Case Study and exercise&#xA;Chapter 4: JavaScript Basics&#xA;    Understanding JavaScript&#xA;    Syntax, Rules&#xA;    Functions&#xA;    Objects&#xA;    Case Study and exercise&#xA;Chapter 5: XML and AJAX&#xA;    Creating a DOM Document with JavaScript&#xA;    Accessing, Creating and Modifying XML Nodes&#xA;    Receiving XML Responses&#xA;    Passing XML to the Server&#xA;    Case Study and exercise&#xA;Chapter 6: JavaScript Object Notation (JSON)&#xA;    Introduction to JSON&#xA;    JSON Syntax&#xA;    JSON Parsers&#xA;    JSON Advantages and Disadvantages&#xA;    Case Study and exercise&#xA;Chapter 7: XSLT Basics&#xA;    Introduction to XSLT&#xA;    XSLT Transformations with JavaScript&#xA;    Case Study and exercise&#xA;Chapter 8: AJAX Projects I&#xA;    Creating AJAX web application I&#xA;    Hands-on projects&#xA;Chapter 9: AJAX Projects II&#xA;    Creating AJAX web application II&#xA;    Hands-on projects&#xA;Chapter 10: AJAX Projects III&#xA;    Creating AJAX web application III&#xA;    Hands-on projects &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="9250" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-09T12:53:19.060" LastActivityDate="2010-12-09T13:02:26.847" ClosedDate="2010-12-11T02:03:44.297" Title="Which web development course should I take?" Tags="&lt;programming-languages&gt;&lt;career&gt;&lt;web-development&gt;&lt;education&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="24888" PostTypeId="2" ParentId="4969" CreationDate="2010-12-09T12:29:03.840" Score="0" ViewCount="" Body="&lt;p&gt;It's a toss up:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;I wrote the control system for a machine that loads 7.62mm sniper rounds for an ammunition plant.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I wrote a control system for an automated storage/retrieval system (a big crane) that stores and retrieves 6000 lb rolls of rubber in a tire plant.  There was a PC that housed the database and was the main UI, and two PLCs, one for cell control and one on the crane (that we had a wireless link to).  There were interesting parameters, like the rolls had to be retrieved FIFO, it had to implement retries if it couldn't pick up the roll, etc.  There was a WinCE device that allowed remote requests for rolls... the forklift operators used that.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I wrote the first version of the kiosk software for &lt;a href=&quot;http://www.youtube.com/watch?v=9i-NKFCzRC0&quot; rel=&quot;nofollow&quot;&gt;this system&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-12-09T12:29:03.840" />
  <row Id="24889" PostTypeId="1" AcceptedAnswerId="24896" CreationDate="2010-12-09T12:29:45.087" Score="4" ViewCount="214" Body="&lt;p&gt;Having been hired as a developer (5-6 years experience), I suggested to my employer that I also take a formal responsibility for our work with automated testing. Basically I find it interesting and stimulating to work in TDD-like ways, and want to drive this culture in the company I work in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;But, what would you call this type of job position?&lt;/strong&gt; I would like to specialize more in automated testing and TDD, and improve my chances of getting really interesting such jobs in the long term. So what would be a good title for this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My fear is that I would eventually come off as a QA testing engineer, which I would say is misleading since I work mainly as a developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suggestions:&#xA;Software Engineer in Testing?&lt;br&gt;&#xA;Testing Architect and Developer?&lt;br&gt;&#xA;Automated Tests Developer?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anything better?&lt;/p&gt;&#xA;" OwnerUserId="8854" LastActivityDate="2010-12-13T20:44:03.453" Title="What do you call a developer with automated testing specialty?" Tags="&lt;career&gt;&lt;software-engineering&gt;&lt;testing&gt;" AnswerCount="5" CommentCount="4" />
  <row Id="24890" PostTypeId="1" CreationDate="2010-12-09T12:33:29.160" Score="5" ViewCount="113" Body="&lt;p&gt;Hello,&#xA;I am a php lover,working with php for last 2+ years also freelancing in different php producus like wordpress,joomla,drupal.I feel comfortable with php,&#xA;I tried to learn javascript and its other libraries but feeling uncomfortable.Can not become productive also.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So would any one give suggestion how i can learn the javascript?&lt;/p&gt;&#xA;" OwnerUserId="9384" LastActivityDate="2010-12-09T16:34:57.697" Title="How to become comfortable with javascript and its libraries(jQuery)?" Tags="&lt;javascript&gt;&lt;jquery&gt;" AnswerCount="4" FavoriteCount="2" />
  <row Id="24892" PostTypeId="2" ParentId="4969" CreationDate="2010-12-09T12:36:35.757" Score="2" ViewCount="" Body="&lt;p&gt;Helicopter autopilot for a helicopter game with rigidbody-based simulation! Included autohover and terrain following. Some very interesting problems related to stability and reducing &quot;time-to-settle&quot;.&lt;/p&gt;&#xA;" OwnerUserId="8854" LastActivityDate="2010-12-09T12:36:35.757" CommentCount="1" />
  <row Id="24893" PostTypeId="2" ParentId="24890" CreationDate="2010-12-09T12:39:40.463" Score="4" ViewCount="" Body="&lt;p&gt;By &lt;em&gt;practice&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Start following some of the basic tutorials on the web (w3schools is a good place to start)&lt;/li&gt;&#xA;&lt;li&gt;Join your local web development community and join their coding dojos etc&lt;/li&gt;&#xA;&lt;li&gt;Go through books like JQuery in Action&lt;/li&gt;&#xA;&lt;li&gt;Write code&lt;/li&gt;&#xA;&lt;li&gt;write code some more :)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-09T12:39:40.463" CommentCount="3" />
  <row Id="24894" PostTypeId="2" ParentId="24887" CreationDate="2010-12-09T12:42:45.233" Score="1" ViewCount="" Body="&lt;p&gt;I'd personally go for course 1 if you want to be a jack of all trades / really care about UI/Ux (User Experience) design.  Otherwise I think course 3 is valuable as it covers core technologies that will continue to be popular with 'HTML 5'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Course 2 you can self learn off a book or a company sponsored course later.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-09T12:42:45.233" />
  <row Id="24895" PostTypeId="2" ParentId="24887" CreationDate="2010-12-09T12:47:01.750" Score="0" ViewCount="" Body="&lt;p&gt;None of those you mention. I would recommend a course combining Drupal with sys admin. Buy videos from one of the publishers' sites such as O'Reilly (BTW I don't work for them.)&lt;/p&gt;&#xA;" OwnerUserId="9267" LastActivityDate="2010-12-09T12:47:01.750" />
  <row Id="24896" PostTypeId="2" ParentId="24889" CreationDate="2010-12-09T12:50:00.833" Score="9" ViewCount="" Body="&lt;h3&gt;You're still a Programmer.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;You just happen to know TDD. That's a programming skill, not an expertise. It doesn't alter your job (programming), it's just another way to approach your job which some workplaces will use and some won't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Teach yourself Agile and find a place that uses it. They will probably use unit tests and may use TDD (I don't know how many Agile development environments enforce TDD).&lt;/p&gt;&#xA;" OwnerUserId="5570" LastActivityDate="2010-12-09T12:50:00.833" />
  <row Id="24897" PostTypeId="2" ParentId="24889" CreationDate="2010-12-09T12:50:06.520" Score="2" ViewCount="" Body="&lt;p&gt;I personally just call them developer :), I prefer that all developers I work with appreciate automated tests and testing, in my mind having only one team member working on that aspect is a point of failure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll get off my 'Agile' High Horse now :)&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-09T12:50:06.520" />
  <row Id="24898" PostTypeId="2" ParentId="24834" CreationDate="2010-12-09T12:50:25.753" Score="0" ViewCount="" Body="&lt;h2&gt;Your boss's 'boot print' on your back asking you:&lt;/h2&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Is it done yet?&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-09T12:50:25.753" CommentCount="1" />
  <row Id="24899" PostTypeId="2" ParentId="24887" CreationDate="2010-12-09T12:51:31.730" Score="0" ViewCount="" Body="&lt;p&gt;You have a couple options, do you want to be jack of all trades or specialize?  If it were me, I'd start with course 2 (MVC is good to know, Microsoft's implementation is decent) and then take course 3 (Ajax is used a lot, but you never know how long something is going to last in web time).  It sounds like you've already started learning .Net, so I would stick with it.  On the flip side, there are a lot of web sites out there using PHP, so it won't hurt to know that as well.  So, to sum up, take all 3 if you have the time :)  Developers are continuously learning new things (the good ones, anyway).&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-09T12:51:31.730" />
  <row Id="24900" PostTypeId="2" ParentId="24890" CreationDate="2010-12-09T12:52:35.253" Score="1" ViewCount="" Body="&lt;p&gt;Plagiarize. If you see a nice feature done in jQuery or plain JavaSript at some other site, try to replicate it to your own. The good side in JS for learning is that the source code is always available. Try to build the feature first without looking at the source, but if and when you get stuck, you have a good place to look for pointers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This way you can get something done that you really want or like, unlike with tutorials or books which just provide some generalized examples that might or may not relate to your needs. Of course books give you the basic tools to work on, but you'll pick them up as you go if you just start coding what you like. :)&lt;/p&gt;&#xA;" OwnerUserId="5615" LastEditorUserId="5615" LastEditorDisplayName="" LastEditDate="2010-12-09T12:59:11.250" LastActivityDate="2010-12-09T12:59:11.250" />
  <row Id="24901" PostTypeId="2" ParentId="24834" CreationDate="2010-12-09T12:52:36.750" Score="3" ViewCount="" Body="&lt;p&gt;Joel wrote a nice article on this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000007.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/fog0000000007.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a quick summary, if it's part of your core business, write it yourself, if not buy it.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-09T12:52:36.750" CommentCount="2" />
  <row Id="24902" PostTypeId="2" ParentId="24889" CreationDate="2010-12-09T12:52:45.777" Score="9" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What do you call a developer with automated testing specialty?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;A &lt;em&gt;good&lt;/em&gt; developer.&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-12-09T12:52:45.777" CommentCount="1" />
  <row Id="24903" PostTypeId="2" ParentId="24890" CreationDate="2010-12-09T12:57:00.847" Score="1" ViewCount="" Body="&lt;p&gt;Some good JQuery tutorials &lt;a href=&quot;http://docs.jquery.com/Tutorials%3aGetting_Started_with_jQuery&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.  For javascript &lt;a href=&quot;http://www.w3schools.com/js/default.asp&quot; rel=&quot;nofollow&quot;&gt;w3schools&lt;/a&gt; is good, they also have a &lt;a href=&quot;http://www.w3schools.com/jquery/default.asp&quot; rel=&quot;nofollow&quot;&gt;jquery&lt;/a&gt; section.  But you have to use it yourself to become proficient and comfortable with it, so start building something with them.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-09T12:57:00.847" />
  <row Id="24904" PostTypeId="2" ParentId="24873" CreationDate="2010-12-09T13:01:39.267" Score="1" ViewCount="" Body="&lt;p&gt;It depends, is it going to cost more time maintaining it because it's a mess, or to rewrite it so it's not a mess and easily maintained.  I'm personally going through this right now, I'm converting an intranet site to ASP.Net MVC3 because the old code was a pile of crap (that I wrote) because it was &lt;em&gt;supposed&lt;/em&gt; to be disposable (yes, I should know better).  The old pile of crap is still here, and it's a headache adding features and fixing bugs.  MVC is beautiful and makes working on it actually pleasurable, so it's getting a rewrite.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-09T13:01:39.267" />
  <row Id="24905" PostTypeId="2" ParentId="24887" CreationDate="2010-12-09T13:02:26.847" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Course 2.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's why.  You've already stated how much you like ASP.NET.  You only have a bit of it under your belt.  Formalize what you've got.  Agreed that the other 2 course both provide interesting topic that you should pursue but get a good understanding of at least one, then move on to the others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you had posted that you really love PHP or AJAX then the answer would be different.  But in both of your related posts you've specifically mentioned ASP.NET and how you're teaching yourself, how much you like it and how much you'd like to learn more.  This answer is really about reflecting back at you what you told us.  If you like it and want to learn more about it, then just do it.  &lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-09T13:02:26.847" CommentCount="1" />
  <row Id="24906" PostTypeId="2" ParentId="4969" CreationDate="2010-12-09T13:02:35.287" Score="0" ViewCount="" Body="&lt;p&gt;Can't really decide for sure, though my favorite is a large scale space strategy game.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most awesome tricks I used for an Facebook-similar application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Largest success was for an general business application.&lt;/p&gt;&#xA;" OwnerUserId="4317" LastActivityDate="2010-12-09T13:02:35.287" />
  <row Id="24907" PostTypeId="2" ParentId="24889" CreationDate="2010-12-09T13:08:03.407" Score="3" ViewCount="" Body="&lt;p&gt;It may depend on what you mean by automated testing.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Until 10 years ago automated testing using tools such as WinRunner was almost exclusively a System Test discipline.  Agile and XP were in their infancy and automated unit testing wasn't common place. Generally the only automated testing going on was automated system and regression testing and this was being done within the test function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TDD, Agile and so on have obviously changed that with developers increasingly writing automated tests but there is still a divide.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TDD and agile primarily focuses on unit testing - that is testing of individual modules, classes and routines at a code level.  This is part of the developer role and - if System Testers are involved in the project - will have been completed prior to any release to the test team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Automated System Testing (which I'll call it to distinguish the two) on the other hand covers full use cases from an end user perspective and tests through the UI.  In my experience, this still remains the responsibility / remit of the test team and should do so as in large part the knowledge of what to test and how to test it (which are system test rather than developer expertise) is often more critical than how good the actual test code is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, the question is which are you doing.  If it's TDD / agile / automated unit test then you're a developer / programmer, potentially one with a specific interest in automated test and TDD which you can highlight on your resume / CV.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's the later then yes, you are moving into system testing / QA and wearing two hats.  If this is the case and you want to make your primary hat the developer one, I'd still call myself a developer but list the automated system test work amongst your skills and experience alongside your developer work.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-09T13:08:03.407" />
  <row Id="24908" PostTypeId="2" ParentId="24862" CreationDate="2010-12-09T13:08:29.547" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;.NET&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It really good, but lots of my users doesn't have it and don't want to install it.&lt;/p&gt;&#xA;" OwnerUserId="7270" LastActivityDate="2010-12-09T13:08:29.547" />
  <row Id="24909" PostTypeId="2" ParentId="24847" CreationDate="2010-12-09T13:19:18.657" Score="4" ViewCount="" Body="&lt;p&gt;You're going to write software that runs on the server (PHP or JSP or what have you), and software that runs on the client (JavaScript or ActionScript or what have you). It's important to understand the difference AND how to talk from one to the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had a guy join my team a few months ago who has lots of C# experience but no web development experience. When I showed him that he could conditionally put out different JavaScript based on the values he has in his PHP, it blew his mind. In other words, code on the server writing code to run on the browser.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-09T13:19:18.657" CommentCount="1" />
  <row Id="24910" PostTypeId="1" AcceptedAnswerId="24915" CreationDate="2010-12-09T13:21:49.073" Score="19" ViewCount="899" Body="&lt;p&gt;Having spent all morning trying to check something in - I now realise I've lost a couple of days worth of work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its happened before - and is apparently common occurrence with SourceSafe.  So what are your views, do you use it?&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-12-10T09:06:31.257" Title="Your views on SourceSafe" Tags="&lt;version-control&gt;" AnswerCount="19" CommentCount="8" FavoriteCount="2" />
  <row Id="24911" PostTypeId="2" ParentId="24862" CreationDate="2010-12-09T13:24:09.603" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Common Lisp&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to learn it and program more, but I can't, since now I'm working on a pure Java application, and partially on .NET, C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to try to implement a part of my project on F#. Half a loaf is better than none.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-09T13:24:09.603" />
  <row Id="24912" PostTypeId="2" ParentId="24910" CreationDate="2010-12-09T13:24:35.133" Score="5" ViewCount="" Body="&lt;p&gt;It's an abomination.  But still better than nothing.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-09T13:24:35.133" CommentCount="14" />
  <row Id="24913" PostTypeId="2" ParentId="24910" CreationDate="2010-12-09T13:26:16.183" Score="10" ViewCount="" Body="&lt;p&gt;We took it out of operation about a year ago.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It happened several times that what I'd checked-in on the previous evening just wasn't there the next morning. I didn't find that amusing because it looked suspiciously like I just hadn't finished my work. Since I was new to the company then it might have been dangerous to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We them moved on to the TFS and it's been operating smoothly ever since.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-09T13:45:05.660" LastActivityDate="2010-12-09T13:45:05.660" CommentCount="5" />
  <row Id="24914" PostTypeId="2" ParentId="24910" CreationDate="2010-12-09T13:30:44.893" Score="4" ViewCount="" Body="&lt;p&gt;I used it for a long time (nearly 10 years) without ever personally experiencing any issues (including within the teams I was working in though our code tended to be fairly well divided up to avoid conflicts and the like).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But there are far too many stories of data loss to keep using it when there are decent, reliable open source alternatives out there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: From the comments the message seems to be avoid anything complex (branching, merging, conflicts) and you're probably fine.  Anything more and you're heading into risky territory.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-09T14:02:38.457" LastActivityDate="2010-12-09T14:02:38.457" CommentCount="6" />
  <row Id="24915" PostTypeId="2" ParentId="24910" CreationDate="2010-12-09T13:33:18.473" Score="35" ViewCount="" Body="&lt;p&gt;My view is simple, migrate to something else ASAP. It won't take long (1-2 weeks WAG) and no matter how long the migration takes, it's easy to cost justify that to management. A little time to migrate equates to solid source control and very little chance of lost source code. Do a quick google search for &quot;source safe horror stories&quot; or similar if your boss is skeptic.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-12-09T13:33:18.473" CommentCount="5" />
  <row Id="24916" PostTypeId="2" ParentId="24910" CreationDate="2010-12-09T13:34:54.243" Score="27" ViewCount="" Body="&lt;h2&gt;Worst. SCM. Ever.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;All that is wrong in SCM is embodied in VSS. Even StarTeam is better than Source Safe. Source Safe is the Internet Explorer 1 of the version control world: entirely superceded by any other implementation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How did I use it?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My typical workflow for getting things done was&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Check out the project&lt;/li&gt;&#xA;&lt;li&gt;Lock all the files (to avoid merging with anyone 'cos that opened the unholy gates of Hell)&lt;/li&gt;&#xA;&lt;li&gt;Did my work &lt;/li&gt;&#xA;&lt;li&gt;Each day checked my changes in&lt;/li&gt;&#xA;&lt;li&gt;Checked it all back out again and fixed all the problems with integration&lt;/li&gt;&#xA;&lt;li&gt;Checked it back in&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In comparison to Subversion, the above is laughable (apart from checking you've not broken the build).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Restrictions to my team's programming practices&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are the rules the team had to work under to make it work for us. Your mileage may vary.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;One person only may edit a file (Heaven help you if they go on holiday)&lt;/li&gt;&#xA;&lt;li&gt;Do not branch it's too hard to manage&lt;/li&gt;&#xA;&lt;li&gt;Never attempt to go back to a previous revision&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What can be done?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.polarion.com/products/svn/svn_importer_features.php&quot; rel=&quot;nofollow&quot;&gt;Polarion has a good set of tools&lt;/a&gt; for migrating from the likes of Source Safe into Subversion (SVN) which is the current de facto standard within most enterprises for open source version control. Subversion does suffer from requiring a server to be available to allow checkins (unlike GIT or Mercurial which are designed for distributed offline teams). &lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-09T14:08:42.157" LastActivityDate="2010-12-09T14:08:42.157" CommentCount="6" />
  <row Id="24917" PostTypeId="2" ParentId="24353" CreationDate="2010-12-09T13:36:01.097" Score="10" ViewCount="" Body="&lt;p&gt;Make sure they have a frickin PC.  I started a contract at a nameless (&lt;em&gt;cough&lt;/em&gt; Capital One &lt;em&gt;cough&lt;/em&gt;) company and had to wait &lt;strong&gt;2 weeks&lt;/strong&gt; before I had a PC to work with.  Now reading source documentation for a product is never fun, but imagine doing that almost 8 hours a day for 2 weeks...&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-09T13:36:01.097" CommentCount="4" />
  <row Id="24918" PostTypeId="2" ParentId="24826" CreationDate="2010-12-09T13:37:58.473" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.fourhourworkweek.com/blog/2008/01/09/10-steps-to-become-an-email-ninja/&quot; rel=&quot;nofollow&quot;&gt;http://www.fourhourworkweek.com/blog/2008/01/09/10-steps-to-become-an-email-ninja/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;especially the preempt one.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-09T13:37:58.473" CommentCount="1" />
  <row Id="24919" PostTypeId="2" ParentId="24840" CreationDate="2010-12-09T13:39:18.580" Score="8" ViewCount="" Body="&lt;p&gt;Do not bother repainting the walls - cover them in whiteboards instead.  You can buy stick-on sheets of whiteboard material to do the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want your developers to be creative, giving them something to be creative on would be a good start.&lt;/p&gt;&#xA;" OwnerUserId="8732" LastActivityDate="2010-12-09T13:39:18.580" CommentCount="2" />
  <row Id="24920" PostTypeId="2" ParentId="24840" CreationDate="2010-12-09T13:49:12.640" Score="1" ViewCount="" Body="&lt;p&gt;If you're allowing them to be individualized, whatever color they want, if not, something neutral (off white) is usually acceptable.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-09T13:49:12.640" />
  <row Id="24921" PostTypeId="2" ParentId="24840" CreationDate="2010-12-09T13:57:39.523" Score="1" ViewCount="" Body="&lt;p&gt;Do a contest, the one who is more productive by the end of the trimester/year/whatever (according to some metric) will get to choose the color of the cubicles. This will guarantee an actual relationship between cubicle color and productivity (according to the metric you chose).&lt;/p&gt;&#xA;" OwnerUserId="6843" LastActivityDate="2010-12-09T13:57:39.523" />
  <row Id="24922" PostTypeId="1" AcceptedAnswerId="24928" CreationDate="2010-12-09T13:59:20.307" Score="5" ViewCount="424" Body="&lt;p&gt;The situation:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Person X, who already has a full-time job, applies to Company A. Money is good at A, but the real reason X had applied is 'cause the work at A really excites X. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next someone from the technical dept. from A calls up X, gives some assignment and holds a round of technical interview over phone. X does very well in all of it so far. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, X asks the tech guy from A &quot;What's next?&quot; The guy says we'd get back to you in 3-4 days time and then doesn't call up in the next 3-4 days. X is confused. He's got the mail-id of the tech guy but not sure if he should inquire -- this is no HR after all. In fact HR was never anywhere in this process. What should he do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;My Take&lt;/strong&gt;: Don't mail. You already have a full-time job and this shows desperation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Problem&lt;/strong&gt;: This isn't me and people tell me that some companies wait for candidate to get back just to double check their interest level. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; Thanks folks. I have upvoted a lot of answers here, all very useful. Looks like sending a mail to the engineering team is the thing to do. I am not closing this question, I'd get back to you lot once I hear from my friend how he fared after sending the mail.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; Mailing the engineering team proved very useful, they apologized for being busy and now I am told the next round is early January. Thanks a lot people!&lt;/p&gt;&#xA;" OwnerUserId="8720" LastEditorUserId="8720" LastEditorDisplayName="" LastEditDate="2010-12-18T07:59:51.697" LastActivityDate="2010-12-18T07:59:51.697" Title="How to deal with Interviews where HR is missing?" Tags="&lt;career&gt;&lt;interview&gt;" AnswerCount="10" CommentCount="2" FavoriteCount="2" />
  <row Id="24923" PostTypeId="2" ParentId="24922" CreationDate="2010-12-09T14:04:50.003" Score="18" ViewCount="" Body="&lt;p&gt;If the guy at Company A said he'd get back in touch and doesn't then a short e-mail (if that's the only contact you've got) asking for news is OK.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just keep it short and to the point. It doesn't show desperation, but a desire to move the process on - one way or the other.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-12-09T14:04:50.003" CommentCount="2" />
  <row Id="24924" PostTypeId="2" ParentId="24922" CreationDate="2010-12-09T14:06:26.487" Score="11" ViewCount="" Body="&lt;p&gt;Yes, you should mail.  Politely and professionally with no pressure just asking if there is an update and if they need any more information from you.  If you hear nothing back from that I'd give it another week and phone him (just in case the mail address is wrong).  If after that you hear nothing I'd assume it's dead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No HR involvement isn't necessarily a big deal.  Some companies don't involve HR except in the paperwork bit, and sometimes not even then.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A very small aside - companies waiting for you to chase them to show interest are idiots.  You showed interest by applying and going for an interview.  Judging a candidate on whether they chase would be a very odd measure as it could show anything from enthusiasm to desperation.  I honestly don't believe anyone is really doing this, and certainly no-one you want to work for.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-09T14:11:43.517" LastActivityDate="2010-12-09T14:11:43.517" CommentCount="1" />
  <row Id="24925" PostTypeId="2" ParentId="24922" CreationDate="2010-12-09T14:07:55.417" Score="4" ViewCount="" Body="&lt;p&gt;HR is not required in a hiring process. Since most are unqualified, they're often only an obstacle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, if the manager and the technical guys didn't like you, the presence of HR would not get you any further.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My take is to wait for their reaction. I'd expect not a play &quot;who wants whom&quot; but a professional attitude.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only situation I would contact them if I was under time pressure to accept an offer from a different company. Then before deciding to go with the company B I would have naturally wanted to know where the company A stands.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-09T14:07:55.417" />
  <row Id="24926" PostTypeId="2" ParentId="24886" CreationDate="2010-12-09T14:10:10.937" Score="5" ViewCount="" Body="&lt;p&gt;If you call yourself a web programmer you can hardly get around JavaScript, jQuery is easier than raw JavaScript, but if you want to get good I suggest you start out on raw JavaScript.&lt;/p&gt;&#xA;" OwnerUserId="8737" LastActivityDate="2010-12-09T14:10:10.937" CommentCount="1" />
  <row Id="24927" PostTypeId="2" ParentId="24886" CreationDate="2010-12-09T14:18:26.690" Score="3" ViewCount="" Body="&lt;p&gt;You should consider looking into a PHP framework. CodeIgniter is easy to learn and use. It will help you write cleaner code. It also will save you the time of writing &quot;plumbing&quot; for every single project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding OOP, PHP is probably not the best place to learn it. I would recommend downloading one of the express editions of Visual Studio (either VB.NET or C#) and building some small projects on that.&lt;/p&gt;&#xA;" OwnerUserId="4881" LastActivityDate="2010-12-09T14:18:26.690" CommentCount="2" />
  <row Id="24928" PostTypeId="2" ParentId="24922" CreationDate="2010-12-09T14:31:05.840" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;My Take: Don't mail. You already have a full-time job and this shows desperation. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've said it before, and I'll say it again: &lt;strong&gt;This is not dating&lt;/strong&gt;. You apply for a job, you do interviews, you have invested time, &lt;strong&gt;so you have all right in the world to know the result&lt;/strong&gt;. They haven't answered within the promised timeframe, so call them or mail them. Of course, don't stalk, don't call them every 30 minutes or send 200 mails per day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not at all the same situation like dating someone of the opposite sex where you have to obey a ridiculous number of unwritten complex and contradictory rules that might, or might not, lead to procreation. &quot;[Contacting] shows desperation&quot; is a term straight out of the dating dictionary, but it has no place here.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-09T14:31:05.840" CommentCount="2" />
  <row Id="24929" PostTypeId="2" ParentId="24886" CreationDate="2010-12-09T14:33:47.250" Score="0" ViewCount="" Body="&lt;p&gt;You say that you read up a lot on OOP, so your next step is writing the actual code. Picking Java is as good as picking C# for this purpose - lots of resources available online. That's really all there is to it. And make sure you persevere.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-09T14:33:47.250" CommentCount="1" />
  <row Id="24932" PostTypeId="2" ParentId="24922" CreationDate="2010-12-09T14:43:22.813" Score="5" ViewCount="" Body="&lt;p&gt;I've been in the position of the hiring manager that you describe. I also had to put out fires, write code, deal with people who can't seem to get along, settle disputes on what library to use and manage a budget. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oddly, I was also able to spend time with my family during most of those days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't be shy to give a 'bump', something like this would be appropriate. Let's assume the manager's name is Gonzo:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Hi Gonzo,&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;We had an interview two weeks ago and&#xA;  I thought that we connected quite&#xA;  well. I'm really, really eager to&#xA;  tackle [problem here] and I've given&#xA;  it considerable thought. I realize&#xA;  that you might have someone else in&#xA;  mind, I'd like to share my newest ideas with&#xA;  you before you make a decision. Would&#xA;  it be possible to schedule a short&#xA;  phone call or meeting?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I really feel that I can be an asset&#xA;  to YoYoDyne systems, and that YoYoDyne&#xA;  is my best choice for personal and&#xA;  professional growth.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Regards,&#xA;  -- Joe Q. Hacker&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You'll get one of three responses:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The position has been filled, but thank you for your enthusiasm&lt;/li&gt;&#xA;&lt;li&gt;DOH! Sorry, I meant to call you, thanks for reminding me&lt;/li&gt;&#xA;&lt;li&gt;We're still interviewing, but I'm interested in hearing what you have to say&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you don't ask, you'll never know. Many start up companies launch with a skeleton crew, where everyone wears several hats. Hiring managers are human, things fall through cracks .. the worst that they can say is 'no' if you follow up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, follow up.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-09T14:43:22.813" />
  <row Id="24933" PostTypeId="2" ParentId="24922" CreationDate="2010-12-09T14:47:27.970" Score="0" ViewCount="" Body="&lt;p&gt;Rejoice?  Seriously, I've applied to positions where the HR person was reading off of a script.  I've applied to positions where the HR person told me they weren't going to move forward because they're really looking for a &quot;C+&quot; person and I've only got &quot;C++.&quot;  Send 'em a mail, they're probably busy as hell.  &lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-12-09T14:47:27.970" />
  <row Id="24934" PostTypeId="2" ParentId="24922" CreationDate="2010-12-09T14:50:37.190" Score="0" ViewCount="" Body="&lt;p&gt;Was this an advertised position, or was it simply that the company does exciting work so person X sent them a resume?  If there wasn't a position open, the manager could be fighting to get a headcount allocation, so was reluctant to reply until everything had shaken out.  Regardless, I'd follow up with a short note.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-09T14:50:37.190" CommentCount="1" />
  <row Id="24936" PostTypeId="1" AcceptedAnswerId="28363" CreationDate="2010-12-09T14:58:05.033" Score="22" ViewCount="586" Body="&lt;p&gt;I've been developing concurrent systems for several years now, and I have a pretty good grasp on the subject despite my lack of formal training (i.e. no degree).  There's a few new languages that have become popular to at least talk about lately that are designed to make concurrency easier such as Erlang and Go.  It appears that their approach to concurrency echoes my own experience as to how to make systems scalable and take advantage of multiple cores/processors/machines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I find that there are very few tools to help visualize what you intend to do, and verify that you are at least close to your original vision.  Debugging concurrent code can be a nightmare with languages that are not designed for concurrency (like C/C++, C#, Java, etc.).  In particular, it can be near impossible to recreate conditions that happen readily on one system in your development environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what are your approaches to designing a system to deal with concurrency and parallel processing?  Examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How do you figure out what can be made concurrent vs. what has to be sequential?&lt;/li&gt;&#xA;&lt;li&gt;How do you reproduce error conditions and view what is happening as the application executes?&lt;/li&gt;&#xA;&lt;li&gt;How do you visualize the interactions between the different concurrent parts of the application?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I have my own answers for some of these, but I'd also like to learn a bit more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So far we have a lot of good input.  Many of the articles linked to are very good, and I've already read some of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal experience with concurrent programming leads me to believe you need a different mindset than you do with sequential programming.  The mental divide is probably as wide as the difference between object oriented programming and procedural programming.  I'd like this set of questions to focus more on the thought processes necessary (i.e. theory) to systematically approach the answers.  When providing more concrete answers, it helps to provide an example--something you went through personally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Goal for the Bounty&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't tell me what I should do.  I already have that under control.  Tell me what you do.  Tell me how &lt;em&gt;you&lt;/em&gt; solve these problems.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastEditorUserId="6509" LastEditorDisplayName="" LastEditDate="2010-12-17T00:16:37.067" LastActivityDate="2010-12-21T00:32:17.837" Title="Concurrency: How do you approach the design and debug the implementation?" Tags="&lt;design&gt;&lt;debugging&gt;&lt;parallelism&gt;&lt;concurrency&gt;" AnswerCount="10" CommentCount="5" FavoriteCount="11" />
  <row Id="24937" PostTypeId="2" ParentId="24910" CreationDate="2010-12-09T15:02:53.997" Score="9" ViewCount="" Body="&lt;p&gt;My view?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's better ones that are easier to use, safer to use, and are completely free. Why bother using it at all?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is one area of development where we have plenty of choice; most, or all, better than VSS.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://subversion.tigris.org/&quot; rel=&quot;nofollow&quot;&gt;Subversion&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://mercurial.selenic.com/&quot; rel=&quot;nofollow&quot;&gt;Mercurial&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://git-scm.com/&quot; rel=&quot;nofollow&quot;&gt;Git&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_revision_control_software&quot; rel=&quot;nofollow&quot;&gt;More&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-09T15:02:53.997" CommentCount="2" />
  <row Id="24938" PostTypeId="2" ParentId="24910" CreationDate="2010-12-09T15:03:26.243" Score="15" ViewCount="" Body="&lt;p&gt;Change your Source Control to &lt;strong&gt;&lt;a href=&quot;http://subversion.tigris.org/&quot; rel=&quot;nofollow&quot;&gt;SVN&lt;/a&gt;/&lt;a href=&quot;http://mercurial.selenic.com/&quot; rel=&quot;nofollow&quot;&gt;Mercurial&lt;/a&gt;/&lt;a href=&quot;http://git-scm.com/&quot; rel=&quot;nofollow&quot;&gt;Git&lt;/a&gt;&lt;/strong&gt; and never look back!&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-09T17:17:17.873" LastActivityDate="2010-12-09T17:17:17.873" CommentCount="3" />
  <row Id="24939" PostTypeId="2" ParentId="24353" CreationDate="2010-12-09T15:11:58.247" Score="1" ViewCount="" Body="&lt;p&gt;Unless this is an entry level job I would presume that the technology is understood (Java, .NET, HTML/CSS/JS), the process in use for the most part is understood (Scrum, Waterfall, Kanban) and the only need at that point is a comfort level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Becoming productive over the long haul is often a sign of being comfortable in the atmosphere. Can you be productive in an uncomfortable atmosphere? Absolutely...but a comfortable atmosphere will significantly increase the likelihood of being productive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way I believe to achieve this is through ownership. Start small...and increase that ownership as the individuals key talents begin to surface. Once the talents are noticed amongst peers; comfort will ensue. Once comfort ensues the team begins to formalize and strengthen; leading to productive team members across the board.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's like a pack of dogs in a raw sense...as a new dog is introduced you must make that dog feel comfortable to become part of the pack and to keep the pack strong and productive.&lt;/p&gt;&#xA;" OwnerUserId="3289" LastEditorUserId="3289" LastEditorDisplayName="" LastEditDate="2010-12-17T20:51:49.353" LastActivityDate="2010-12-17T20:51:49.353" />
  <row Id="24940" PostTypeId="1" AcceptedAnswerId="25039" CreationDate="2010-12-09T15:14:19.210" Score="11" ViewCount="590" Body="&lt;p&gt;I'm having a discussion with a co-worker on Linq, I'll copy here:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Co-Worker: Lets be honest here. Linq&#xA;  syntax sucks. It's confusing and&#xA;  non-intuitive. &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Me: oh come on, more&#xA;  confusing than T-SQL? &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Co-Worker: uh,&#xA;  yes. &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Me: it has the same basic&#xA;  parts, select, where, and from &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Co-Worker: Linq, to me, is a&#xA;  bastardization of relational + OO.&#xA;  Co-Worker: Don't get me wrong - it's&#xA;  incredibly powerful, but they&#xA;  repurposed SQL to use agains object&#xA;  collections.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'm of the opinion that using Linq + Lamda's is very powerful (he agrees), and also makes code easier to read (he disagrees on that point):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;pickFiles = from f in pickFolder.GetFiles(&quot;*.txt&quot;)&#xA;where ValidAuditFileName.IsMatch(f.Name)&#xA;select f;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var existing = from s in ActiveRecordLinq.AsQueryable&amp;lt;ScannedEntity&amp;gt;()&#xA;where s.FileName == f.FullName &amp;amp;&amp;amp; s.DocumentType != &quot;Unknown&quot;&#xA;select s;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or (VB code here)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;   Dim notVerified = From image In images.AsParallel&#xA;     Group Join verifyFile In verifyFolder.GetFiles(&quot;*.vfy&quot;).AsParallel.Where(&#xA;      Function(v) v.Length &amp;gt; 0&#xA;      ).AsParallel&#xA;   On image.Name.Replace(image.Extension, &quot;.vfy&quot;) Equals verifyFile.Name&#xA;     Into verifyList = Group&#xA;    From verify In verifyList.DefaultIfEmpty&#xA;    Where verify Is Nothing&#xA;    Select verify&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;To me this is clean and easy (at least easier than the alternatives) to read, what are your opinions on it?&lt;/p&gt;&#xA;" OwnerUserId="8451" LastEditorUserId="8451" LastEditorDisplayName="" LastEditDate="2010-12-09T16:21:42.063" LastActivityDate="2010-12-13T07:35:26.313" Title="Does the usage of LINQ and Lambda Expressions lead to less readable code?" Tags="&lt;programming&gt;&lt;coding-style&gt;&lt;linq&gt;&lt;lambda&gt;" AnswerCount="7" CommentCount="11" FavoriteCount="1" />
  <row Id="24941" PostTypeId="2" ParentId="24936" CreationDate="2010-12-09T15:17:10.503" Score="0" ViewCount="" Body="&lt;p&gt;Well, for the verification process, when designing a large concurrent system - I tend to test the model using &lt;a href=&quot;http://www.doc.ic.ac.uk/ltsa/&quot; rel=&quot;nofollow&quot;&gt;LTSA - Labelled Transition System Analyser&lt;/a&gt;.  It was developed by my old tutor, who is something of a veteran in the concurrency field and is Head of Computing at Imperial now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as working out what can and cannot be concurrent, there are static analysers that could show that up I believe, though I tend to just draw scheduling diagrams for critical sections, the same as you would for project management.  Then identify sections that perform the same operation repetitively.  A quick-route is just to find loops, as they tend to be the areas that benefit from parallel processing.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-09T15:17:10.503" />
  <row Id="24942" PostTypeId="2" ParentId="15636" CreationDate="2010-12-09T15:19:08.907" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Number one feature: An absolute maximum of two pages.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is something you want every developer to read and remember. You should not have to look up in the standard every time you need to write a new function (or worse a new line). So, keep it short and keep only the rules that really provides increased value to the final product.&lt;/p&gt;&#xA;" OwnerUserId="3666" LastEditorUserId="3666" LastEditorDisplayName="" LastEditDate="2010-12-09T15:48:59.297" LastActivityDate="2010-12-09T15:48:59.297" CommunityOwnedDate="2011-05-04T06:06:33.080" />
  <row Id="24944" PostTypeId="2" ParentId="15636" CreationDate="2010-12-09T15:27:54.437" Score="1" ViewCount="" Body="&lt;p&gt;As others have mentioned, code test coverage is important.  I also like to see:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Project structure.  Are the tests part of the code, or are they in a separate project/package/directory?  Does the UI code live with the back-end stuff?  If not, how is it compartmentalized?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Development process.  Write tests before code?  Does fixing broken builds take priority over development? When are code reviews done, and what should they cover?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Source code management.  What gets checked in when?  Are design docs and test plans revision-controlled?  When do you branch and when do you tag?  Do you keep previous builds, and if so how many/for how long?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Deployment standards.  How is a build packaged?  What needs to go into release notes?  How are upgrade scripts created/controlled/run?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Forget all that crap about naming conventions, formatting and how many lines can be in a function/method/module.  One rule: use whatever the existing style is in whatever it is you're editing.  If you don't like somebody's style, pick it apart in a code review.  The only exception might be the tabs-vs-spaces thing, if only because many editors/IDEs will blindly convert one to the other, and then you wind up destroying your change history because every line was changed.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-09T15:27:54.437" CommunityOwnedDate="2011-05-04T06:06:33.080" />
  <row Id="24945" PostTypeId="2" ParentId="24936" CreationDate="2010-12-09T15:28:53.217" Score="1" ViewCount="" Body="&lt;p&gt;-- My answers are MS/Visual Studio specific --&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How do you figure out what can be made concurrent vs. what has to be sequential?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's going to take domain knowledge, there's not going to be any blanket statement here to cover it.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How do you reproduce error conditions and view what is happening as the application executes?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Lots of logging, being able to turn logging on/off/up in production applications in order to catch it in production.  &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd264915.aspx&quot; rel=&quot;nofollow&quot;&gt;VS2010 Intellitrace&lt;/a&gt; is supposed to be able to help with this, but I haven't used it yet.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How do you visualize the interactions between the different concurrent parts of the application?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't have a good answer to this, would love to see one.  &lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-09T15:28:53.217" CommentCount="1" />
  <row Id="24946" PostTypeId="2" ParentId="24864" CreationDate="2010-12-09T15:33:22.937" Score="0" ViewCount="" Body="&lt;p&gt;I much prefer using a personal wiki for both short term and long term notes - &lt;a href=&quot;http://www.emacswiki.org/emacs/EmacsWikiMode&quot; rel=&quot;nofollow&quot;&gt;Emacs Wiki&lt;/a&gt; is a good option (it nicely merges read and edit modes).&lt;/p&gt;&#xA;" OwnerUserId="4091" LastActivityDate="2010-12-09T15:33:22.937" CommunityOwnedDate="2011-05-27T06:43:10.017" />
  <row Id="24947" PostTypeId="2" ParentId="12499" CreationDate="2010-12-09T15:36:59.003" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It depends entirely on your field of interest&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most normal people (non-programmers) think that &quot;higher-order function&quot; is a meaningless and useless term, but many functional programmers find ther term essential to describe a fundamental concept in their field of interest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, &lt;strong&gt;yes&lt;/strong&gt;: &quot;yobibit&quot; is both meaningful and useful if you need to talk to people about... er... yobibits. To the rest of us, however, it is - at best - &lt;strong&gt;a curiosity&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-12-09T15:36:59.003" />
  <row Id="24948" PostTypeId="2" ParentId="24922" CreationDate="2010-12-09T15:36:59.643" Score="1" ViewCount="" Body="&lt;p&gt;I recommend that you definitely email to follow up. But, follow up a day or two after the person said that they would follow up - if you're contacting before that point (3 or 4 days) then it looks desperate. In my experience a simple email with &quot;Hey, thanks for taking the time to speak with me the other day. I'm definitely interested in learning more about the position. Do you have an update on next steps?&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, like others have said, hiring managers and hr managers are often doing 4 people's jobs at the same time, so these things slip through the cracks all the time. I've found that a simple reminder like the above will work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="9393" LastActivityDate="2010-12-09T15:36:59.643" />
  <row Id="24949" PostTypeId="2" ParentId="24940" CreationDate="2010-12-09T15:42:30.653" Score="10" ViewCount="" Body="&lt;p&gt;Like anything else in the programming world, you gotta get used to the syntax, and then it is (potentially) easier to read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like anything else in the programming world, there is the potential for spaghetti code or other abuses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like anything else in the programming world, you can either do it this way or another way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like anything else in the programming world, your mileage may vary.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-12-09T15:42:30.653" />
  <row Id="24950" PostTypeId="2" ParentId="24922" CreationDate="2010-12-09T15:45:20.200" Score="0" ViewCount="" Body="&lt;p&gt;Send an e-mail asking for an update or discuss it over lunch somewhere.  A date may not be a bad idea if one wanted to get to know more about the place and other intelligence information.  X shouldn't get too emotionally invested in this though as sometimes things can happen like HR finding out and scolding the manager, the manager was sick, or any of 101 other things that could delay the news.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-09T15:45:20.200" />
  <row Id="24951" PostTypeId="2" ParentId="24353" CreationDate="2010-12-09T15:48:14.207" Score="6" ViewCount="" Body="&lt;p&gt;First make sure the week before the person reports on board that everything is set up at their desk (And that they have a desk assigned). It gives a very negative impression to get to a new job and they haven't thought about where you will be sitting or what equipment you will use. Make sure it has a chair - amazing how often chairs seem to dissapear from empty spaces. Have the PC loaded with the software the person will need. Nobody really wants to spend their first day loading software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure that the person is given the rights they need to databases, source control, etc. Make sure they have been given an email_address. Make sure they understand IT policies such as what can be loaded on their PC, what cannot be loaded, what Internet access they have and what they should not do with the Internet (we don't allow streaming video for instance), who is responsible for fixing PC problems, the contact for the help desk if you have one, etc. Talk about how you use source control, how you do the build, how you deploy etc. Talk about testing, unit testing, QA, etc. Make sure they know how you expect them to test. Talk about code review.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Introduce the person to everyone on their team and any people they will be expected to work with regularly. Make sure they know where all key things are - boss's cubicle, coffee,restrooms, copy machine, server room (if need be) etc. Make the person feel welcome and that you are happy to have him. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your application is data intensive, give them a couple hour presentation on the database structure. Use diagrams that show relationships.  This is a good opportunity to also talk about the business domain and why you need certain things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Show them where the code is and do an overview of the code structure. Open the application and show them how it works. Go through several of the main tasks including, if possible, the area you want them to start working in. Again spend some of this time talking about the business domain, the experience of the people who use the application, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Give them at least a little time to poke around through the code base and database on their own with no particular task assigned. This might make your previous explanations clearer and help them understand the whole faster than giving a small task to do the first day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If possible, assign a mentor - someone who will be the source for questions. Try to make it someone who will actually answer questions. Have the mentor and the new person pair program for a period of time. For an experienced guy this might even be a very short time - just long enough to give him some familiarity with how your team works. But for entry level, you might want to do this for longer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assign a relatively straightforward first task to all but the most experienced. Check progress daily. Make sure they are not only doing the work in the way you need it done but committing their code to the source control system according to your policies. It seems intrusive, but the least successful new hires I've ever seen are the ones that nobody watched the first couple of weeks to make sure they knew what they were doing.  Everyone's work should be coded reviewed, but even if you don't normally do so, code review all new people's work for at least three months. It is very possible that the person interviews well but doesn't work well. Make sure you take the time to know that he is working well. It's a lot easier to correct the person who forgets to save to source control the first week, than three months down the line. And for someone who doesn't learn or won't do things they way you need them done, the sooner you get them out of your team the better for everyone else. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One big mistake I've seen is assigning new people to the complex new task that will require a good understanding of the system, while leaving the old people (who understand the system as it is currently built) doing maintenance. I have never in practice seen this work out well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, the old employees resent the new person because they got the interesting task. They will often be passively unhelpful. Second, the new guy is out of his depth because he doesn't understand the systems yet. Third, because he is working on his own (or only with other new people), the work is often not checked until it is too late. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now you can assign to those tasks if you also have some experienced people working on them as well, but all new people, all new task, that requires you understand the current system (such as a redesign), bad bad choice. Even if you hired him specifically to do the new task, give him a couple of weeks of maintenance of the old system first, just to give him the understanding he needs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After the person has been working on his own for a couple of weeks, sit down with him and ask him what he thinks the organization could do better. Listen carefully - you don't have to implement everything he says, but new people often see problems that the old people are so used to working around that they no longer notice them. The perspective of the new person to an organization is critically valuable - don't forget to get it. If you are the type who will catgorically dismiss everything he says, then this step is of course counterproductive. But new people are often eager to make changes and to show how valuable they can be. This is useful energy and can help the organization move to be better.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-09T15:48:14.207" CommentCount="4" />
  <row Id="24952" PostTypeId="2" ParentId="24936" CreationDate="2010-12-09T15:51:43.690" Score="1" ViewCount="" Body="&lt;p&gt;Working in multi-threading environment is tough and needs the coding discipline. You need to follow the proper guideline for taking the lock, releasing lock, accessing global variables etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let me try to answer your question one bye one &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* How do you figure out what can be made concurrent vs. what has to be sequential?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Use concurrency for &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Polling :- need a thread to continuously poll something or send the update on regular basis. (Concepts like heart-bits, which send some data on regular interval to central server to say that I am alive.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) The operations which has heavy i/o could be made parallel. The best example is logger. The logger thread could be a separate thread. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Similar tasks on different data. If there is some task which happens on different data but very similar in nature, different threads can do this. Best example will be server requests. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And off course many others like this depending on application. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* How do you reproduce error conditions and view what is happening as the application executes?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Using logs and debug prints in the logs. Try to log also the thread id so you can see what is happening in each thread.&lt;br&gt;&#xA;One way to produce error condition is to put the deliberate delay (in debug code) in the places where you think the issue is happening, and forcefully stopping that thread. Similar things can be done in debuggers too, but I haven't done it so far.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* How do you visualize the interactions between the different concurrent parts of the application?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Put the logs in your locks, so that you will know who is locking what and when, and who has tried for lock. As I said earlier try to put thread id in the log to understand what is going on in each thread. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is just my piece of advice which is of around 3 years of working on multithread application, and hope it helps. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastEditorUserId="8820" LastEditorDisplayName="" LastEditDate="2010-12-17T07:53:48.647" LastActivityDate="2010-12-17T07:53:48.647" />
  <row Id="24953" PostTypeId="2" ParentId="24940" CreationDate="2010-12-09T15:56:29.343" Score="0" ViewCount="" Body="&lt;p&gt;Lambda Expressions leads to less readable code if queries are too long.&#xA;However it's much better than too many &lt;strong&gt;nested loops&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's better with a &lt;strong&gt;mixter of two&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Write it in Lamda if it's faster (you need it too be fast) or easier to read.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-09T15:56:29.343" CommentCount="2" />
  <row Id="24954" PostTypeId="2" ParentId="24827" CreationDate="2010-12-09T15:57:25.823" Score="3" ViewCount="" Body="&lt;p&gt;I work remotely full time, as does everyone in my company (CodeFutures). Many of us live in the same city (Denver) so we can meet face to face if needed, but thus far that's been a rare exception. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From an organizational standpoint, everybody keeps on track by communicating fairly regularly over Skype and e-mailing status reports daily which is a sort of virtual scrum. If you fall behind or are stuck, it gets noticed quickly. One of the reasons I think this works is that we avoid entry-level employees who will need direction - you are expected to find something to do and figure out how to do it without prodding. It's by far the most productive and empowering work setup I've ever been in, and I'd need a hefty pay rise to go back to an office environment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't found any serious problems thus far, and in fact I strongly prefer this to any job where I need to be present. I really don't get anything out of being at an office, and I see work as a way to make money, not to make friends, so I don't miss socialization at all. Of course, your mileage may vary - but this is my take on it. &lt;/p&gt;&#xA;" OwnerUserId="7508" LastActivityDate="2010-12-09T15:57:25.823" />
  <row Id="24955" PostTypeId="2" ParentId="24353" CreationDate="2010-12-09T15:59:10.843" Score="4" ViewCount="" Body="&lt;p&gt;I read an article somewhere where the first day on the job a programmer makes a small, and still relevant, change to an application they support, while having an existing employee there as a mentor. In doing this, they are exposed to the following things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Their workstation and some of the software installed on it.&lt;/li&gt;&#xA;&lt;li&gt;The coding structure/format of their applications there.&lt;/li&gt;&#xA;&lt;li&gt;The source control system their are using.&lt;/li&gt;&#xA;&lt;li&gt;The process one goes about migrating a change up to production (do they do it all themselves, do they contact a couple administrators, do they process a ticket, etc.&lt;/li&gt;&#xA;&lt;li&gt;The satisfaction of actually DOING something on their first day to better their work environment, even if it was simple.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If I were to start a new job, I would love to have a first day like this. You get the conceptual and the practical knowledge that will apply to your day to day duties and you have somebody there to answer any questions the new employee might have about the process.&lt;/p&gt;&#xA;" OwnerUserId="8095" LastActivityDate="2010-12-09T15:59:10.843" />
  <row Id="24957" PostTypeId="2" ParentId="24940" CreationDate="2010-12-09T16:08:24.253" Score="1" ViewCount="" Body="&lt;p&gt;I think it depends in most cases (except when doing something very bizarre) on if you mean &quot;readable&quot; as someone getting the idea of what is going on or if they can easily find all the tiny little details.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think link helps with the former, but often (especially when debugging) hurts the latter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO when I am looking at code I am unfamiliar with the former is hugely more important than the latter, so I find it much more readable.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-12-09T16:08:24.253" CommentCount="6" />
  <row Id="24958" PostTypeId="2" ParentId="24847" CreationDate="2010-12-09T16:18:30.933" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Undesrtanding the &lt;strong&gt;protocols&lt;/strong&gt;. It is usually despised but I recomend to start developing web only when you have very clear all protocols, how requests and responses work, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Understanding why &lt;strong&gt;client code, html and css are very delicated&lt;/strong&gt;: you wont be able to develop a cross-browser app if you don't get that js code, html and css are very delicated and that you have to be very carefull with what you use.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Undestanding that microsoft didn't have any browser till IE8 (maybe 9 that is still in beta), but unfortunately you have to make your site work for all &lt;strong&gt;microsofts browser attempts&lt;/strong&gt;. (Generally 6 and 7 and personally don't recomend to support lower versions).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7498" LastActivityDate="2010-12-09T16:18:30.933" CommentCount="3" />
  <row Id="24959" PostTypeId="2" ParentId="24343" CreationDate="2010-12-09T16:20:21.567" Score="0" ViewCount="" Body="&lt;p&gt;That computers are essentially pattern matchers, nothing more. Everything boils down to the Turing Machine - the classic Computer Scienceconcept of explaining pattern maching.&lt;/p&gt;&#xA;" OwnerUserId="9267" LastActivityDate="2010-12-09T16:20:21.567" />
  <row Id="24960" PostTypeId="2" ParentId="21265" CreationDate="2010-12-09T16:24:50.213" Score="-2" ViewCount="" Body="&lt;p&gt;The key point is : who can earn the +500 reputation now.&lt;/p&gt;&#xA;" OwnerUserId="9395" LastActivityDate="2010-12-09T16:24:50.213" CommentCount="3" />
  <row Id="24962" PostTypeId="2" ParentId="24890" CreationDate="2010-12-09T16:34:57.697" Score="0" ViewCount="" Body="&lt;p&gt;I wrote games in JavaScript (with no libraries) it has really been a pain to learn all the browser quirks, but I think it's worth it, and with old versions of Internet Explorer dying the problems are growing fewer.&lt;/p&gt;&#xA;" OwnerUserId="8737" LastActivityDate="2010-12-09T16:34:57.697" />
  <row Id="24963" PostTypeId="2" ParentId="24353" CreationDate="2010-12-09T16:36:42.340" Score="3" ViewCount="" Body="&lt;p&gt;This would be my suggestions from a high level perspective:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Make sure you know what kind of work you have for them to do initially -&gt; Is it building out a new system, fixing bugs, handling support requests, creating documentation, gathering requirements or testing?  I did have one place where initially I was helping to test on a project that was going out in the first few weeks I was there that was a nice starting point as that let me make a contribution without having to do days of work to get up to speed.  Just adding a new body and not having a plan for what they'll be doing is dangerous.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Ask the developer how they prefer to take in information -&gt; Do they like to pair program, read documents, watch videos of users doing things, just have someone they could IM with questions, etc.  The key here being what communication style and format works can vary from person to person though some may have a better handle on this than others.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Talk them through the regular work procedures in terms of process steps.  If they are fixing bugs, what are the steps in the process in your company's case?  What systems are to be touched, are there e-mails to be sent, etc.?  If they are putting in new features, how is this done in general?  What kinds of batch files exist to automate some of the work that is done,e.g. where I work now I have nAnt scripts to build and test code while in previous places I had scripts to get binaries and other stuff that was needed for the sites we built.  There are various ways to merge code, handle commits and other changes so don't assume too much here.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;On the general level of working there, cover the basics here.  What hours do people generally work?  Is there a need for extra time when they joined,e.g. a project has to be done in 2 months and we need new people to work an extra 10-15 hours a week to meet that deadline despite what the Mythical Man Month says about adding new people?  Are there times where everyone goes for lunch?  What kinds of social dynamics could one expect,e.g. are there a group of smokers that flock together or a group that will usually go to a local pub after work most nights?  Note that while some of this may seem general this is team specific in a sense as if all of the developers come in at 10 and the new guy(s) are there at 7, what are there to do for those first few hours alone?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I have had a few snags that I hope to never repeat:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;In university on a co-op placement, I had a position at a bank where for my first week was rather bizarre.  First, after the first day my supervisor was on holidays for the rest of that week which made it hard to know what to do from his view.  Second, the co-op student I was replacing was still around for that week but spent most of his time goofing off as he didn't have much to do at that time.  That alone would be bad but then I didn't realize that getting paid and timesheets weren't properly handled until 6 weeks into the job which lead to more than a little melt-down.  While this may be more of an HR point, do be sure that the new hire is set up correctly.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;In my first job in Calgary, where I worked spent 6 hours getting me a PC and setting it up initially.  This meant I got to spend that time reading books I brought as I was paid by the hour and I couldn't pair with my co-workers as that was thought to be a bad idea at the time.  Nothing like reading a book while waiting for stuff.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Another time I was coming back to work after having taken a break and was going to be working from home.  This meant calling the help desk for how to get the VPN set up, how to get to my box, and a few other things that just made for some brutal days on my end.  I spent the first couple of hours just trying to get to my work PC that was shut off and so someone had to turn it on so I could get to it.  I also had to adjust to a single monitor which wasn't fun.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Some other ideas:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Befriend the new person by sharing meals with them.  This may mean taking them out for lunch or dinner as a gesture of, &quot;Let's get to know each other.&quot;  This has often helped me get more comfortable in various jobs in my life.  This can be more important for the manager of the new person to do as this can help a little with productivity at least in my experience.  I know that I'll work a little harder for someone that I view as a friend than for someone where I'm just working to not get fired, which is very similar to an &quot;Office Space&quot; line that seems all too eerie now.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Be prepared for social stuff to take some time to work itself out.  People aren't friends overnight and so bonds make take time to form.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-09T16:36:42.340" />
  <row Id="24964" PostTypeId="2" ParentId="24910" CreationDate="2010-12-09T16:37:57.710" Score="0" ViewCount="" Body="&lt;p&gt;My views on VSS? Used it for a long time regularly (still used ocasionally for older components) but it's too XX century for our team: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Very unreliable&lt;/li&gt;&#xA;&lt;li&gt;Not usable branches&lt;/li&gt;&#xA;&lt;li&gt;Very poor versioning support, you have labels but (just like branches) not really usable&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm with all of the above: choose one of the waaaaay better open-source alternatives (even old CVS) or, if your company has some kind of MSDN subscription, &lt;strong&gt;TFS&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="8627" LastActivityDate="2010-12-09T16:37:57.710" />
  <row Id="24965" PostTypeId="2" ParentId="24940" CreationDate="2010-12-09T16:38:19.687" Score="1" ViewCount="" Body="&lt;p&gt;I find LINQ syntax intuitive and easy to read, especially since they put the FROM at the start where it belongs instead of in the middle like in SQL.  But IMO lambdas are confusing and make the code harder to read.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-09T16:38:19.687" CommentCount="7" />
  <row Id="24966" PostTypeId="2" ParentId="21265" CreationDate="2010-12-09T16:38:20.533" Score="2" ViewCount="" Body="&lt;p&gt;The place I'm starting at in January won't take anyone without an engineering degree (a government agency that deals with construction). It doesn't matter if you walk on water, make fish &amp;amp; chips for thousands, turn water into wine and invented the computer; no degree = no hire. It wasn't discussed at the interview, but I think I will have to get my PE.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disclaimer: I turn water into whine. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-12-09T16:38:20.533" />
  <row Id="24967" PostTypeId="2" ParentId="24936" CreationDate="2010-12-09T16:43:37.870" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;How do you figure out what can be made concurrent vs. what has to be sequential?&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Pretty much every thing you write can take advantage of concurrency especially the &quot;devide an conquer&quot; use case. A much better question is what &lt;em&gt;should be concurrent?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Joseph Albahari's &lt;a href=&quot;http://www.albahari.com/threading/&quot; rel=&quot;nofollow&quot;&gt;Threading in C#&lt;/a&gt; list five common uses. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Multithreading has many uses; here are&#xA;  the most common:&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Maintaining a responsive user interface&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;By running time-consuming&#xA;  tasks on a parallel “worker” thread,&#xA;  the main UI thread is free to continue&#xA;  processing keyboard and mouse events.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Making efficient use of an otherwise blocked CPU&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Multithreading is useful when a thread&#xA;  is awaiting a response from another&#xA;  computer or piece of hardware. While&#xA;  one thread is blocked while performing&#xA;  the task, other threads can take&#xA;  advantage of the otherwise unburdened&#xA;  computer.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Parallel programming&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Code that performs intensive&#xA;  calculations can execute faster on&#xA;  multicore or multiprocessor computers&#xA;  if the workload is shared among&#xA;  multiple threads in a&#xA;  “divide-and-conquer” strategy (see&#xA;  Part 5).&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Speculative execution&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;On multicore machines, you can&#xA;  sometimes improve performance by&#xA;  predicting something that might need&#xA;  to be done, and then doing it ahead of&#xA;  time. LINQPad uses this technique to&#xA;  speed up the creation of new queries.&#xA;  A variation is to run a number of&#xA;  different algorithms in parallel that&#xA;  all solve the same task. Whichever one&#xA;  finishes first “wins”—this is&#xA;  effective when you can’t know ahead of&#xA;  time which algorithm will execute&#xA;  fastest.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Allowing requests to be processed simultaneously&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;On a server, client requests can&#xA;  arrive concurrently and so need to be&#xA;  handled in parallel (the .NET&#xA;  Framework creates threads for this&#xA;  automatically if you use ASP.NET, WCF,&#xA;  Web Services, or Remoting). This can&#xA;  also be useful on a client (e.g.,&#xA;  handling peer-to-peer networking—or&#xA;  even multiple requests from the user).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you're not trying to do one of the above you'd probably better think real hard about it.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;How do you reproduce error conditions and view what is happening as the application executes?&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you're using .NET and you've written use cases you can use &lt;a href=&quot;http://research.microsoft.com/en-us/projects/CHESS/&quot; rel=&quot;nofollow&quot;&gt;CHESS&lt;/a&gt; which can recreate specific thread interleaving conditions which enables you to test your fix.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;How do you visualize the interactions between the different concurrent parts of the application?&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It depends on the context. For worker scenarios I think of a manager-subordinate. Manger tells the subordinate to do something and waits for status updates. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For concurrent unrelated tasks I think of elevators or cars in separate lanes of traffic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For synchronization I sometimes think of traffic lights or turn-styles. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also if you're using C# 4.0 you might want to take a look at the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd460717.aspx&quot; rel=&quot;nofollow&quot;&gt;Task Parallel Library&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-12-09T16:43:37.870" />
  <row Id="24968" PostTypeId="2" ParentId="24910" CreationDate="2010-12-09T16:50:53.430" Score="4" ViewCount="" Body="&lt;p&gt;Even MS is deprecating it in favor of TFS. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a solo or really small shop working in Visual Studio 6 or something older it is passable and better than nothing. I think there is a lot of exaggeration about how bad it was, but then it only takes one instance of losing valuable work to sour you on a product (for good reason). VSS had its place, and I credit it for at least encouraging a lot of developers who were using no SCM tool at all to get into the habit, but like many technologies it is now pretty much obsolete.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-12-09T16:50:53.430" CommentCount="3" />
  <row Id="24969" PostTypeId="2" ParentId="14706" CreationDate="2010-12-09T17:02:12.270" Score="2" ViewCount="" Body="&lt;p&gt;Let's discuss this from  a business perspective, so you can talk to your boss about business reasons why overtime on a regular basis is bad. Think of the history of the 40 hour work week. It was put into place during the industrial revolution becasue they found that tired workers cause many more accidents which cost the company money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Current managers think that it's now OK to ask to excessive hours because we are just doing desk work and it won't kill people. But what it does is make the product more expensive because tired people make many more mistakes and take longer to do things. It also tends to make the product have more bugs. It makes good developers leave and have to be replaced losing a lot of the specialized product knowledge needed for effective development. It makes products that work badly (try to design on 3 hours sleep. then look at that design after a good night's sleep) and lose market share due to their bad design. It loses customers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only job I personally ever quit with no notice and no other job waiting for me was the one where I was expected to work ridiculous amounts of overtime (11 hours was the shortest day I had the the last fours months I was there and my boss told me it was unacceptable to be unable to work three days in a row with no sleep) and one day, I just physically couldn't do it anymore. I was so tired I wrecked my car on the way out of the parking lot the day I quit. I'm lucky I didn't kill myself or someone else with that car!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I'm not saying that everyone in IT should never do overtime, there are times when it's needed and times when you are on a roll and just don't want to stop. But if the overtime is considered to be a daily expectation, that is a company to leave as soon as humanly possible or you might not survive the car crash when you are exhausted.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastEditorUserId="1093" LastEditorDisplayName="" LastEditDate="2011-01-12T19:14:34.977" LastActivityDate="2011-01-12T19:14:34.977" />
  <row Id="24970" PostTypeId="2" ParentId="24864" CreationDate="2010-12-09T17:09:11.703" Score="3" ViewCount="" Body="&lt;p&gt;A little bit different way to make personal notes: mind mapping e.g. &lt;a href=&quot;http://www.xmind.net/&quot; rel=&quot;nofollow&quot;&gt;XMind&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="9157" LastActivityDate="2010-12-09T17:09:11.703" CommunityOwnedDate="2011-05-27T06:43:10.017" />
  <row Id="24971" PostTypeId="2" ParentId="24886" CreationDate="2010-12-09T17:27:29.643" Score="0" ViewCount="" Body="&lt;p&gt;I don't think you should do just one thing, but several things.  Learn a good PHP framework.  I recommend &lt;a href=&quot;http://kohanaframework.org/&quot; rel=&quot;nofollow&quot;&gt;Kohana&lt;/a&gt;, which will also teach you MVC.  (It was branched from CodeIgniter.  See &lt;a href=&quot;http://stackoverflow.com/questions/282884/have-you-switched-from-codeigniter-to-kohana&quot;&gt;this&lt;/a&gt; question for a comparison.)  Add some JavaScript, whether &lt;a href=&quot;http://jquery.com/&quot; rel=&quot;nofollow&quot;&gt;jQuery&lt;/a&gt;  or &lt;a href=&quot;http://www.prototypejs.org/&quot; rel=&quot;nofollow&quot;&gt;Prototype&lt;/a&gt;.  To that, add some CSS, perhaps &lt;a href=&quot;http://www.yaml.de/en/&quot; rel=&quot;nofollow&quot;&gt;YAML&lt;/a&gt; to start with.  Using libraries will help you get functional faster, but I'm not sure that is your goal.  For all of these, play with them, learn how they work, customize them, experiment, and enjoy.  Having fun is the single best thing for wanting to learn even more.&lt;/p&gt;&#xA;" OwnerUserId="6978" LastEditorUserId="6978" LastEditorDisplayName="" LastEditDate="2010-12-11T05:52:17.387" LastActivityDate="2010-12-11T05:52:17.387" CommentCount="4" />
  <row Id="24972" PostTypeId="2" ParentId="24864" CreationDate="2010-12-09T17:34:19.557" Score="1" ViewCount="" Body="&lt;p&gt;After years of having notes everywhere, I started using &lt;a href=&quot;http://www.thebrain.com/&quot; rel=&quot;nofollow&quot;&gt;PersonalBrain&lt;/a&gt; a few years back. On my iPhone, I use Rainbow Notes because it can be synced to Google docs.&lt;/p&gt;&#xA;" OwnerUserId="8384" LastActivityDate="2010-12-09T17:34:19.557" CommunityOwnedDate="2011-05-27T06:43:10.017" />
  <row Id="24973" PostTypeId="2" ParentId="24864" CreationDate="2010-12-09T17:34:33.330" Score="4" ViewCount="" Body="&lt;p&gt;Personal use - &lt;strong&gt;Evernote&lt;/strong&gt;: fits me like a glove, specially the new Android version, and I have most of my stuff there; what I really miss is a solid Linux desktop client.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Work use - &lt;strong&gt;OneNote 2010&lt;/strong&gt;: my work environment is pretty much Microsoft oriented and OneNote integrates really smoothly with Outlook&lt;/p&gt;&#xA;" OwnerUserId="8627" LastActivityDate="2010-12-09T17:34:33.330" CommunityOwnedDate="2011-05-27T06:43:10.017" CommentCount="1" />
  <row Id="24974" PostTypeId="2" ParentId="24801" CreationDate="2010-12-09T17:43:44.967" Score="0" ViewCount="" Body="&lt;p&gt;How about taking a different view:  What do you need to know about this code and do you have a way to measure that?  For example, if you are trying to fix a bug, that may require a different kind of dive than if you were trying to migrate the code from one language to another,e.g. going from VBScript to C#.  If you are trying to get all the requirements out of the current code, that may take a while though I suspect most people would have that kind of problem.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-09T17:43:44.967" />
  <row Id="24975" PostTypeId="2" ParentId="24864" CreationDate="2010-12-09T17:52:00.050" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.google.com/notebook/&quot; rel=&quot;nofollow&quot; title=&quot;Google Notebook&quot;&gt;Google Notebook&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used to use evernote until i realized they wanted me to pay for extra features and wouldn't let me easily export my data into an open format.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I started using google docs - you can create a form that saves to a spreadsheet so adding a note can be done from any browser. But it's not really built to manage notes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just found out about google notebook, thanks to evernote's import feature. (I was looking for the export feature, and found instead an &quot;import from google notebook&quot; feature.)&lt;/p&gt;&#xA;" OwnerUserId="3244" LastActivityDate="2010-12-09T17:52:00.050" CommunityOwnedDate="2011-05-27T06:43:10.017" />
  <row Id="24976" PostTypeId="2" ParentId="24922" CreationDate="2010-12-09T17:53:31.933" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If this is a consulting job: Mail&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ok, you should mail no matter what kind of job it is, but I was in the same situation when I applied for a consulting company.  At contract-based companies, it's generally a good idea (and makes economic sense) to hire someone when they can immediately be put on a project.  They could just be waiting on a project to come up to hire you for, rather than say &quot;Absolutely you're hired, except we don't actually have work for you right now....can you wait a few weeks or months until something comes up?&quot;.  Most people will run if they know it will take months to place you, so there may be many tactics to hold you off.  So, if it's a consulting gig, which is always exciting work (IMHO), then send them a follow up.  They need to know that you aren't just &quot;testing the waters&quot; and that you mean business (and that you appreciate them enough to care about their decision).&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-12-09T17:53:31.933" />
  <row Id="24977" PostTypeId="2" ParentId="24910" CreationDate="2010-12-09T17:56:45.157" Score="7" ViewCount="" Body="&lt;p&gt;I may get down voted to hell on this, but ..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/c092a.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;VSS effectively puts you on dope, to the extent that you can't reconcile any sort of reality needed to realize that your now borked repo wasn't your fault.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please, don't use it, ever.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-09T18:04:28.410" LastActivityDate="2010-12-09T18:04:28.410" CommentCount="1" />
  <row Id="24978" PostTypeId="2" ParentId="24864" CreationDate="2010-12-09T17:56:48.047" Score="0" ViewCount="" Body="&lt;p&gt;Nowadays I use &lt;a href=&quot;https://catch.com/&quot; rel=&quot;nofollow&quot;&gt;Catch.com&lt;/a&gt;. It's quite simple, which is a good thing, and  works on the mobile phone too. My best ideas tend to pop up when not near the computer, so having a mobile idea jotting  tool is a must.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-12-09T17:56:48.047" CommunityOwnedDate="2011-05-27T06:43:10.017" />
  <row Id="24979" PostTypeId="2" ParentId="21265" CreationDate="2010-12-09T18:00:03.080" Score="2" ViewCount="" Body="&lt;p&gt;I wouldn't be considering them for the same position. When I was recommending recent college grads for for entry level positions, we really liked a candidate just finishing a masters in CS. Unfortunately, we, including the SVP, couldn't hire her because she also had several years work experience. That put her outside the pay category for the position. In general, a decision was made on the experience level before the job was posted and only those with that level would be considered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I mentioned in another post, the value of a CS degree is in inverse proportion to the length of work experience: very valuable with no experience and of little consequence after about ten years experience.&lt;/p&gt;&#xA;" OwnerUserId="8384" LastActivityDate="2010-12-09T18:00:03.080" />
  <row Id="24980" PostTypeId="2" ParentId="24864" CreationDate="2010-12-09T18:05:06.263" Score="0" ViewCount="" Body="&lt;p&gt;Outlook -- main advantage there being if I send myself an email, I can get it on the mobile or look it up remotely. Saving a text file doesn't have this advantage.&lt;/p&gt;&#xA;" OwnerUserId="3762" LastActivityDate="2010-12-09T18:05:06.263" CommunityOwnedDate="2011-05-27T06:43:10.017" />
  <row Id="24981" PostTypeId="2" ParentId="24864" CreationDate="2010-12-09T18:06:02.577" Score="2" ViewCount="" Body="&lt;p&gt;Not overly surprised that no one has said this yet:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A Notepad&lt;/strong&gt; - the ones made of paper&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My notes often involve diagrams, flowcharts, tons of maths - these things take a lot of time to put in to a computer program properly and most notes get scrapped.  If they are needed long term, then I will spend time in Visio, LaTeX, InDesign making it presentable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If not then:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Notepad&lt;/strong&gt; - the built-in text editor (I use pico on *nix for notes)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It occupies very little memory, loads in a split second and stores text for a short duration.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-09T18:06:02.577" CommunityOwnedDate="2011-05-27T06:43:10.017" />
  <row Id="24982" PostTypeId="1" CreationDate="2010-12-09T18:06:18.563" Score="0" ViewCount="137" Body="&lt;p&gt;I have text files that I dumped from Trac wiki. Now that we switched to Redmine I found out that Redmine wiki uses different style.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any convertor available? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know Redmine has Trac importer, but I don't have database access to Trac and I only want to convert the wiki files. I will import them by hand then.&lt;/p&gt;&#xA;" OwnerUserId="4852" LastActivityDate="2010-12-09T18:06:18.563" ClosedDate="2010-12-10T12:26:45.010" Title="Converting Trac wiki style to Redmine wiki style" Tags="&lt;trac&gt;&lt;wiki&gt;&lt;redmine&gt;" />
  <row Id="24983" PostTypeId="2" ParentId="24864" CreationDate="2010-12-09T18:09:17.827" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.zhornsoftware.co.uk/stickies/&quot; rel=&quot;nofollow&quot;&gt;Zorn Software Stickies 7.0b&lt;/a&gt; has been nice, I've been using it for quite a while.  It's free.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2010-12-09T18:09:17.827" CommunityOwnedDate="2011-05-27T06:43:10.017" />
  <row Id="24984" PostTypeId="2" ParentId="21265" CreationDate="2010-12-09T18:18:10.077" Score="2" ViewCount="" Body="&lt;p&gt;Like many others have said, it largely depends on the specifics of the position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The experienced guy will get things done a lot faster, but will plateau sooner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need a line of business app done asap, the experienced person is your guy, but if you're building a highly complex piece of engineering and they will be mentored, it seems to me the educated guy may be your best bet.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-12-09T18:18:10.077" CommentCount="2" />
  <row Id="24985" PostTypeId="2" ParentId="24910" CreationDate="2010-12-09T18:23:14.963" Score="5" ViewCount="" Body="&lt;p&gt;used it for years - it was the default solution, as it was already there. Had it bite me quite a few times, but inertia is difficult to overcome&lt;/p&gt;&#xA;&#xA;&lt;p&gt;then i had to use it remotely over VPN, and &lt;strong&gt;even minor check-ins were like stuffing a brick through a pinhole&lt;/strong&gt;. It was faster to manually find the files that changed, zip them up, email them, remote in to the source vault machine, unzip them, and check in the code from the source vault machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Switched to Mercurial. I can clone the entire source code base across the VPN in under a minute. And I no longer fear branching.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Never going back.&lt;/h1&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-09T18:23:14.963" CommentCount="2" />
  <row Id="24986" PostTypeId="2" ParentId="24864" CreationDate="2010-12-09T18:24:16.723" Score="0" ViewCount="" Body="&lt;p&gt;I would love to use software that I didn't write. However, I can't find anything I like. I need a multiple hierarchical notepad, basically. So I built one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For all note-taking usage, I use &lt;a href=&quot;http://thekbase.com&quot; rel=&quot;nofollow&quot;&gt;TheKBase&lt;/a&gt; for .Net (now on Mono, too: it uses an external editor for text files now, like Textmate or whatever). I have some other customers who also rely exclusively on my free product for note-taking for software and immense sociology knowledge bases. In fact,one of my users got some academic funding to work with the codebase a bit...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TheKBase, via external text files and another editor like NotationalVelocity, will let you sync with SimpleNote. This is still experimental, but I use it...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I still have users for the multi-user &lt;a href=&quot;http://www.kbaseweb.com&quot; rel=&quot;nofollow&quot;&gt;TheKBaseWeb&lt;/a&gt;, too, but since it's written in Flex/Flash, it's future is limited until I can make an Ajax front-end to it.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastEditorUserId="4688" LastEditorDisplayName="" LastEditDate="2010-12-09T18:59:24.443" LastActivityDate="2010-12-09T18:59:24.443" CommunityOwnedDate="2011-05-27T06:43:10.017" />
  <row Id="24987" PostTypeId="1" CreationDate="2010-12-09T18:27:35.380" Score="7" ViewCount="360" Body="&lt;p&gt;What I think about Build Numbers is that whenever a new nightly build is created, a new BUILDNUMBER is generated and assigned to that build. So for my 7.0 version application the nightly builds will be 7.0.1, 7.0.2 and so on. Is it so? Then what is the use of a REVISION after the build number? Or is the REVISION part being incremented after each nightly build? I am a little confused here... do we refer to each nightly build as a &lt;em&gt;BUILD&lt;/em&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The format is mentioned here: &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.reflection.assemblyversionattribute%28v=vs.71%29.aspx&quot; rel=&quot;nofollow&quot;&gt;AssemblyVersion - MSDN&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2361" LastEditorUserId="2361" LastEditorDisplayName="" LastEditDate="2010-12-10T16:09:21.070" LastActivityDate="2010-12-10T16:09:21.070" Title="What exactly is the build number in MAJOR.MINOR.BUILDNUMBER.REVISION" Tags="&lt;builds&gt;" AnswerCount="6" FavoriteCount="5" />
  <row Id="24988" PostTypeId="2" ParentId="24910" CreationDate="2010-12-09T18:29:48.747" Score="3" ViewCount="" Body="&lt;p&gt;After 3 years of using it, complaining off and on to my manager because of all the more advanced/rational alternatives out there, I've never really had a problem with VSS, but I've never had an option either.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;My views are that it both sucks and blows.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most annoying part about it is not it's awful versioning and confusing branching ability, but the list box on the file menu doesn't let you hit the right arrow key to expand.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Truly painful.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-12-09T18:29:48.747" CommentCount="1" />
  <row Id="24989" PostTypeId="2" ParentId="24864" CreationDate="2010-12-09T18:33:29.493" Score="1" ViewCount="" Body="&lt;p&gt;I use that sticky note thing in Gnome, not sure what it's called though.  It's really nice because it automatically saves stuff (unlike popping up a notepad) and it's intentionally used for clutter (unlike my google docs)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that, I bookmark often in Firefox and search those.  I tried using evernote to paste internet stuff but it got pretty annoying so I stopped. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-12-09T18:33:29.493" CommunityOwnedDate="2011-05-27T06:43:10.017" />
  <row Id="24990" PostTypeId="2" ParentId="24987" CreationDate="2010-12-09T18:35:31.660" Score="1" ViewCount="" Body="&lt;p&gt;A build number is usually incremented at every build so it is unique.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For simplicitys sake, some reset the build number whenever the MAJOR or MINOR numbers are bumped.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most Continuous Integration engines allow for autogenerated unique build numbers.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-09T18:35:31.660" />
  <row Id="24993" PostTypeId="2" ParentId="24987" CreationDate="2010-12-09T18:41:56.350" Score="2" ViewCount="" Body="&lt;p&gt;There are at least a couple different things that I could imagine the build number referencing:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Source control version that was release.  For example if there was a release of revision #12345, this may be tracked by having it be the build number and if it is patched that is where revisions may go up as it isn't new functionality that would increase the major or minor versions and the build number has to be remembered in case someone wants to run that build again.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Continuous integration server Identifier.  In this case, the CI server may number each build it runs and thus the build number is what a successful build gets and the revision part isn't needed in this scenario.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;There may be others that I don't know, but these are the big ones that I know when it comes to numbers on code bases.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-09T18:41:56.350" CommentCount="1" />
  <row Id="24994" PostTypeId="2" ParentId="779" CreationDate="2010-12-09T18:43:24.617" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Are you easily offended by off-color humor?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Is there anyone who thinks they are?  If I define it as humor, then I'm probably not offended, and if I'm offended, I probably didn't think it was funny or humorous.  Obviously, there are things that WOULD offend me, but I have no way of knowing if what you refer to and what I refer to are the same degree of offensiveness, and no way of asking if that's what you refer to without bringing up, by definition, an offensive topic!  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It occurred to me after a few seconds that they might want to just see how I react to interoffice disputes or something, but that question threw me off for a second. &lt;/p&gt;&#xA;" OwnerUserId="4265" LastActivityDate="2010-12-09T18:43:24.617" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="1" />
  <row Id="24995" PostTypeId="2" ParentId="24987" CreationDate="2010-12-09T18:47:53.130" Score="0" ViewCount="" Body="&lt;p&gt;It is whatever you want it to be.  I tend to use year.month.day.hhmm for my major.minor.build.revision.  If I'm producing more than one a minute, something's wrong.  you can just use a simple increment, or I've seen some elaborate generators for them.  What do &lt;em&gt;you&lt;/em&gt; want it to be.  What they need to do is make it so you get to the source used to create that output, so whatever enables you to do that.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-09T18:47:53.130" />
  <row Id="24996" PostTypeId="2" ParentId="24864" CreationDate="2010-12-09T18:50:08.620" Score="1" ViewCount="" Body="&lt;p&gt;Emacs with org-mode.&lt;/p&gt;&#xA;" OwnerUserId="6513" LastActivityDate="2010-12-09T18:50:08.620" CommunityOwnedDate="2011-05-27T06:43:10.017" />
  <row Id="24997" PostTypeId="1" AcceptedAnswerId="25001" CreationDate="2010-12-09T18:51:04.783" Score="6" ViewCount="397" Body="&lt;p&gt;What are the advantages of recursion? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some programming languages can optimize tail recursion, but, still in general terms, recursion consume more resources than regular loops.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it possible to have an iterative version of some recursive function?&lt;/p&gt;&#xA;" OwnerUserId="82" LastActivityDate="2010-12-10T07:20:31.390" Title="Can all the recursive functions be coded with iterations?" Tags="&lt;recursion&gt;&lt;advantages&gt;" AnswerCount="7" />
  <row Id="24998" PostTypeId="1" CreationDate="2010-12-09T18:52:54.357" Score="3" ViewCount="141" Body="&lt;p&gt;Hello,&#xA;I am looking for a job in the US as an Android Software Engineer, but I am not allowed to work in the US without sponsorship, and it is really screwing everything up so far.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I currently work in the US under a J-1 visa, but am only allowed to work for my current employer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What strategy should I adopt? Should I be honest and say that I require sponsorship right away, or would I have a better chance by avoiding the question until the interview?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just graduated two years ago, so I don't have anything exceptional in my resume.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks! &lt;/p&gt;&#xA;" OwnerUserId="9324" LastActivityDate="2010-12-09T21:04:54.950" ClosedDate="2010-12-10T03:13:35.173" Title="What strategy to adopt when requiring sponsorship for a job?" Tags="&lt;jobs&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="2" />
  <row Id="24999" PostTypeId="2" ParentId="18059" CreationDate="2010-12-09T18:56:26.490" Score="1" ViewCount="" Body="&lt;p&gt;Writing software is a lot like writing a big non-fiction book, or an encyclopedia.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first draft always sucks.  It can always be improved by reorganizing it, removing sections that don't need to be there, and ensuring a consistent style throughout.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whenever you have to revise, the simplest thing to do is just to add a new section, change a few words, and so on.  But as the revisions pile up, the book starts to lose its organization.  So you have to make further passes of reorganization.  If you don't, the book becomes a nonsensical jumble.&lt;/p&gt;&#xA;" OwnerUserId="778" LastActivityDate="2010-12-09T18:56:26.490" CommunityOwnedDate="2011-03-15T06:24:13.740" />
  <row Id="25000" PostTypeId="2" ParentId="24910" CreationDate="2010-12-09T18:59:10.887" Score="-1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;its default locking was slowing developers down, and no one wanted to mess with its setup&lt;/li&gt;&#xA;&lt;li&gt;it doesn't integrate with other services very well, for example a project management web application&lt;/li&gt;&#xA;&lt;li&gt;it was not going to work well with our planned CI server&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The new 2010 Team Foundation stuff was supposed to help a lot, and try to get away from the bad parts of VSS. &lt;strike&gt;But at its core it still relies on VSS&lt;/strike&gt;, which is why we moved to SVN.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;edit&lt;/strong&gt; - I understand that TFS is all new, but when testing it, multiple developers I asked had very similar feelings to it. The reason I said 'at its core' was because I remember looking at the files TFS made in my solution that looked just like those VSS made. This is from a developer standpoint, maybe not even knowing about the tech behind VSS or TFS or any other SCM. Sorry for any confusion.&lt;/p&gt;&#xA;" OwnerUserId="4052" LastEditorUserId="4052" LastEditorDisplayName="" LastEditDate="2010-12-09T21:23:41.583" LastActivityDate="2010-12-09T21:23:41.583" CommentCount="10" />
  <row Id="25001" PostTypeId="2" ParentId="24997" CreationDate="2010-12-09T18:59:10.860" Score="3" ViewCount="" Body="&lt;p&gt;Yes, you can code recursive functions as iterations.  It basically requires you to maintain the information manually that otherwise would have been taken care of by the method calling code generated by the compiler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, you need a stack where each entry is a structure containing the passed parameters and all the local variables.  You always work on the top-most entry on the stack.  If you need to call yourself, create a new entry and put on top of the stack.  When done take the topmost entry of the stack exposing the one below, and use the previously topmost entry to extract the return values and update the new topmost entry accordingly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suggest you study a compiler book to see how this is usually implemented in machine code.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-09T18:59:10.860" CommentCount="3" />
  <row Id="25002" PostTypeId="2" ParentId="24864" CreationDate="2010-12-09T19:03:18.797" Score="0" ViewCount="" Body="&lt;p&gt;I use  &lt;a href=&quot;http://simplenoteapp.com/&quot; rel=&quot;nofollow&quot;&gt;Simplenote&lt;/a&gt;. Very simple if you only need to work with shared notes. Otherwise, I use notepad/textedit and Dropbox&lt;/p&gt;&#xA;" OwnerUserId="4052" LastActivityDate="2010-12-09T19:03:18.797" CommunityOwnedDate="2011-05-27T06:43:10.017" />
  <row Id="25003" PostTypeId="2" ParentId="24997" CreationDate="2010-12-09T19:04:33.360" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/531668/&quot;&gt;http://stackoverflow.com/questions/531668/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-09T19:04:33.360" />
  <row Id="25004" PostTypeId="2" ParentId="24997" CreationDate="2010-12-09T19:05:39.263" Score="9" ViewCount="" Body="&lt;p&gt;Recursion is often a more natural way of looking at things than iteration.  For example, consider inorder traversal of a binary tree:  &lt;code&gt;inorder(left); process(); inorder(right);&lt;/code&gt; is a lot simpler than explicitly maintaining a stack.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as you don't go too deep (blowing the stack), the difference in resource use is usually trivial.  Don't worry about it in general.  Simple code is normally better than hand-optimized code, although there are exceptions.  Right is normally better than fast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any recursive algorithm can be expressed as an iterative algorithm, but you may need to keep an explicit stack (corresponding to the call stack that's handled implicitly).  After all, if you compile a recursive function, you get something that relies on manipulating a stack and looping through the function, and that's iterative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tail-recursive functions can be easily translated into loops, and don't need a stack, but that's a special case.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-09T19:05:39.263" CommentCount="9" />
  <row Id="25005" PostTypeId="2" ParentId="24997" CreationDate="2010-12-09T19:07:42.280" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What are the advantages of recursion?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Simplicity.&lt;/strong&gt; Without tail-call optimization it of course takes more resources (stack), but how would you implement, say, &lt;code&gt;deltree&lt;/code&gt; in Java without recursion? The twist is that &lt;code&gt;delete()&lt;/code&gt; can delete directories only if they're empty; here's it with recursion:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;deltree(File fileOrDirectory) {&#xA;    if (fileOrDirectory.isDirectory()) {&#xA;        for (File subFileOrDirectory : fileOrDirectory.listFiles()) {&#xA;            deltree(subFileOrDirectory);&#xA;        }&#xA;    }&#xA;    fileOrDirectory.delete();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-12-10T06:54:37.720" LastActivityDate="2010-12-10T06:54:37.720" CommentCount="3" />
  <row Id="25006" PostTypeId="2" ParentId="24997" CreationDate="2010-12-09T19:17:29.300" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What are the advantages of recursion? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Try solving the Towers of Hanoi problem iteratively.  Once you give up, take a look at the &lt;a href=&quot;http://en.wikipedia.org/wiki/Tower_of_Hanoi&quot; rel=&quot;nofollow&quot;&gt;iterative solution&lt;/a&gt; and compare it to the recursive one.  Which one is simpler?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is it possible to have an iterative version of some recursive function?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes, in principle.  However for many problems, including very common tasks, such as tree traversals, the recursive solutions are much simpler and more elegant than the iterative ones.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-12-09T19:17:29.300" />
  <row Id="25007" PostTypeId="2" ParentId="24823" CreationDate="2010-12-09T19:25:33.707" Score="3" ViewCount="" Body="&lt;p&gt;The Product Owner should be responsible for closing a verified sprint after a successful demo has been done.&#xA;The PO should check whether the stories have been &quot;done&quot; to completion in that they meet the correct acceptance criteria.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The developers can &quot;close&quot; the sprint, but the PO needs to verify the completeness of them and &quot;officially&quot; close the sprint and call it done.&lt;/p&gt;&#xA;" OwnerUserId="8874" LastActivityDate="2010-12-09T19:25:33.707" CommentCount="2" />
  <row Id="25008" PostTypeId="2" ParentId="24987" CreationDate="2010-12-09T19:28:20.913" Score="1" ViewCount="" Body="&lt;p&gt;I've only ever seen a build number as the last number in the release ID.  I'm not sure how you'd come up with a revision to a build number.  I suppose if you changed some of the non-built resources (icons, DB script, etc), maybe, but most projects I've worked on recently have all that stuff under version control as well, so the build process picks them up when making the installer/release.  I like time-stamped build numbers, although not quite as @David describes (I like major.minor.revision.HHMM).  However, where I work, we just use a sequential number that our build server generates.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-09T19:28:20.913" />
  <row Id="25009" PostTypeId="2" ParentId="24702" CreationDate="2010-12-09T19:31:27.813" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Rubik's Cube&lt;/li&gt;&#xA;&lt;li&gt;Thinking Putty&lt;/li&gt;&#xA;&lt;li&gt;Juggling Balls (I'm terrible)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/5VjpO.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="5042" LastActivityDate="2010-12-09T19:31:27.813" CommentCount="1" />
  <row Id="25010" PostTypeId="2" ParentId="24702" CreationDate="2010-12-09T19:47:37.573" Score="1" ViewCount="" Body="&lt;p&gt;A foam ball I can bounce off of the floor/wall/ceiling while I walk around thinking. For me, sitting still can be more distracting then walking around bouncing a ball. At least when I walk around I am not distracted by the Internet.&lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2010-12-09T19:47:37.573" />
  <row Id="25011" PostTypeId="2" ParentId="24997" CreationDate="2010-12-09T19:54:21.970" Score="-2" ViewCount="" Body="&lt;p&gt;I again advocate iterative functions over recursive ones. Iterative version may be longer, but it's lot easier to debug. Let's face it, most of the time will be spent in upkeeping the code, not admiring it's simplicity and shortness. :)&lt;/p&gt;&#xA;" OwnerUserId="8706" LastActivityDate="2010-12-09T19:54:21.970" CommentCount="6" />
  <row Id="25012" PostTypeId="2" ParentId="24691" CreationDate="2010-12-09T19:58:11.810" Score="1" ViewCount="" Body="&lt;p&gt;For compilers ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's amusing, but most symbols in a language will begin by a common pattern. I am not talking about Hungarian Notation here, but if you think about namespace / classes, then a lot of symbols will actually share a common &lt;strong&gt;prefix&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;myproject::SomeClass::GetFoo&#xA;myproject::SomeClass::GetBar&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The problem is, when doing a binary search, common prefixes are the worst thing you can end up with, because you'll end up comparing those prefixes over and over again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if you get a look at the strings backward, you'll see much more entropy! And then suddenly a binary search (over a Trie) gets much more powerful!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's always bugged me that C++ mangled names (by gcc) were not reversed to put the namespace LAST :)&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2010-12-09T19:58:11.810" />
  <row Id="25013" PostTypeId="1" AcceptedAnswerId="25014" CreationDate="2010-12-09T20:10:15.463" Score="10" ViewCount="440" Body="&lt;p&gt;I'm launching my new major-version-update development project, and have decided to go with a new development effort, supported by WPF 4.0. Thus, I'll be installing VS2010 Premium and Expression Studio 4 Ultimate, which are products I already have. I intend to integrate the tools into a TFS-2010-based CI environment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll be installing all this on a new copy of Windows 7. The bulk of the development will be for a WPF 4 target, and multicore computers commonly sold today. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is, which VS2010 addons or third party addons would you add to that, to ease the development process? &lt;/p&gt;&#xA;" OwnerUserId="9405" LastActivityDate="2010-12-22T08:33:57.383" Title="How would you configure a new Visual Studio 2010 machine?" Tags="&lt;visual-studio-2010&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="6" />
  <row Id="25014" PostTypeId="2" ParentId="25013" CreationDate="2010-12-09T20:18:49.700" Score="14" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.jetbrains.com/resharper/&quot; rel=&quot;nofollow&quot;&gt;ReSharper&lt;/a&gt; of course&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef&quot; rel=&quot;nofollow&quot;&gt;Productivity Power Tools&lt;/a&gt; (Solution Navigator Rocks)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://linqpad.net/&quot; rel=&quot;nofollow&quot;&gt;LinqPad&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.red-gate.com/products/reflector/&quot; rel=&quot;nofollow&quot;&gt;.NET Reflector&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://reflectoraddins.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;Code Metrics and Snippy Reflector Add-ins&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://balsamiq.com/products/mockups&quot; rel=&quot;nofollow&quot;&gt;Balsamiq Mockups&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.memprofiler.com/&quot; rel=&quot;nofollow&quot;&gt;.NET Memory Profiler&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That's a good starting list. :)&lt;/p&gt;&#xA;" OwnerUserId="9251" LastActivityDate="2010-12-09T20:18:49.700" CommentCount="3" />
  <row Id="25015" PostTypeId="2" ParentId="24987" CreationDate="2010-12-09T20:19:32.473" Score="6" ViewCount="" Body="&lt;p&gt;I've never seen it written out in that form.  Where I work, we are using the form MAJOR.MINOR.REVISION.BUILDNUMBER, where MAJOR is a major release (usually many new features or changes to the UI or underlying OS), MINOR is a minor release (perhaps some new features) on a previous major release, REVISION is usually a fix for a previous minor release (no new functionality), and BUILDNUMBER is incremented for each latest build of a revision.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, a revision may be released to QA (quality control), and they come back with an issue which requires a change.  The bug would be fixed, and released back to QA with the same REVISION number, but an incremented BUILDNUMBER.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-12-09T20:19:32.473" CommentCount="2" />
  <row Id="25016" PostTypeId="2" ParentId="14856" CreationDate="2010-12-09T20:27:23.670" Score="-8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Using const-keyword in c++&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How hard is it to understand that functions starting with &quot;Get...&quot; are normally &quot;const&quot;. Also has anyone seen evidence that compiler optimizes const-riddled code better? At least when comparing the following two later one performs faster (when optimization is enabled):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;__forceinline void test(const int a);&#xA;test(1);&#xA;test(2);&#xA;test(3);&#xA;&#xA;&#xA;template&amp;lt;int a&amp;gt;&#xA;void test();&#xA;test&amp;lt;1&amp;gt;();&#xA;test&amp;lt;2&amp;gt;();&#xA;test&amp;lt;3&amp;gt;();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="8706" LastActivityDate="2010-12-09T20:27:23.670" CommunityOwnedDate="2010-12-09T20:27:23.670" CommentCount="5" />
  <row Id="25017" PostTypeId="2" ParentId="14856" CreationDate="2010-12-09T20:32:26.740" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Using unsigned int as iterator&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When will they learn that using signed int is much safer and less bug-prone. Why is it sooo important that array index can only be positive number, that everyone is glad to overlook the the fact that 4 - 5 is 4294967295?&lt;/p&gt;&#xA;" OwnerUserId="8706" LastActivityDate="2010-12-09T20:32:26.740" CommunityOwnedDate="2010-12-09T20:32:26.740" CommentCount="6" />
  <row Id="25018" PostTypeId="2" ParentId="24987" CreationDate="2010-12-09T20:34:40.840" Score="0" ViewCount="" Body="&lt;p&gt;The revision can be used for patches of the builds. Lets say that 2 teams work on a product. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Team 1 is the major development team and produces nightly build with the following version schema 1.0.X.0, where X is incremented. Now they are at build 1.0.50.0&#xA;Team 2 is taking a build from time to time. Let's say they take the build from last week which is 1.0.43.0 and start using it. Team 1 advances to 1.0.51.0 when team 2 finds an issue in 1.0.43.0.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now team 1 will take that build (43), fix the issue and provide team 2 with the build 1.0.43.1. The fix might be also propagated in the main build, so the change will appear in 1.0.52.0.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this is clear and helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*Revision is useful when not everyone involved in the project uses the same build and you need to patch specific builds.&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2010-12-09T20:34:40.840" />
  <row Id="25019" PostTypeId="2" ParentId="24353" CreationDate="2010-12-09T20:38:13.397" Score="1" ViewCount="" Body="&lt;p&gt;On top of all things said here, for a Junior profile, I think it's fundamentals let him doing pair programming with several other programmers of the team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For an Senior profile, put him soon on trial with something hard so that the team can easily accept his authority.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most important thing is for him to accept the team and for the team accept him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As P.Drucker said: &quot;look for strength in hiring, not on weakness&quot;. So our team is build on good programmers, but some devs are really &quot;peculiar&quot;. So also for the new dev entering the team could be challenging for some days. So it's important for the TeamLeader to make sure the novice will accepted soon.&lt;/p&gt;&#xA;" OwnerUserId="9115" LastActivityDate="2010-12-09T20:38:13.397" />
  <row Id="25020" PostTypeId="2" ParentId="25013" CreationDate="2010-12-09T20:40:27.793" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.visualsvn.com/&quot; rel=&quot;nofollow&quot;&gt;VisualSVN&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or &lt;a href=&quot;http://ankhsvn.open.collab.net/&quot; rel=&quot;nofollow&quot;&gt;AnkhSVN&lt;/a&gt; (last time I used it, admittedly a couple years now, VisualSVN worked much better)&lt;/p&gt;&#xA;" OwnerUserId="6735" LastActivityDate="2010-12-09T20:40:27.793" CommentCount="2" />
  <row Id="25021" PostTypeId="2" ParentId="25013" CreationDate="2010-12-09T20:41:40.290" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.testdriven.net/&quot; rel=&quot;nofollow&quot;&gt;TestDriven.Net&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6735" LastActivityDate="2010-12-09T20:41:40.290" CommentCount="4" />
  <row Id="25022" PostTypeId="2" ParentId="24998" CreationDate="2010-12-09T21:04:54.950" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;or would I&#xA;  have a better chance by avoiding the&#xA;  question until the interview?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I guess that would get you nowhere. Even if your interview is successful, once you tell that you need sponsorship, they may not pursue the offer further(of course if you lucky they would be fine with it - but chances are low for this to happen). This is the experience of my friends (and myself), when they said that they need sponsorship after the interview. So it's always better to say immediately that you require sponsorship, so that you can save your time and their time. This is just my opinion. Sorry if you feel that this is discouraging.&lt;/p&gt;&#xA;" OwnerUserId="9208" LastActivityDate="2010-12-09T21:04:54.950" CommentCount="4" />
  <row Id="25023" PostTypeId="1" AcceptedAnswerId="25032" CreationDate="2010-12-09T21:42:44.460" Score="17" ViewCount="412" Body="&lt;p&gt;This &lt;a href=&quot;http://www.infoq.com/news/2010/12/how-to-pay-down-technical-debt&quot; rel=&quot;nofollow&quot;&gt;article on technical debt&lt;/a&gt; has some good points, including:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Working on the &quot;technical matters&quot; works best when it is driven by stories. The code base is probably in need of work everywhere, but the payoff will be received only where the code is going to be worked on for user-facing reasons. If no stories are going to pass through some crufty area, working on it is largely wasted.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Therefore, I prefer the approach of taking stories as usual (but probably fewer of them), and following the &quot;boy scout rule&quot; of leaving the campground better than you found it. In other words, wherever the stories lead us, let's write more tests, let's refactor more aggressively.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;This approach has at least these advantages:&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;maintains &quot;best sensible&quot; flow of stories;&lt;/li&gt;&#xA;  &lt;li&gt;provides help from all team talent;&lt;/li&gt;&#xA;  &lt;li&gt;provides for whole team to learn how to keep code clean;&lt;/li&gt;&#xA;  &lt;li&gt;focuses improvement exactly where it is needed;&lt;/li&gt;&#xA;  &lt;li&gt;does not waste improvement that &quot;may&quot; be needed;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've seen code quality have a very big effect on long-term productivity, so I am a believer that technical debt should be taken care of.  I think the post above makes sense, but I'm not so sure about the last two points.  I'm interested in finding out real experiences of benefits from cleaning technical debt, even if it was not related to user stories.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What positive benefits have you seen from cleaning up your code base and ridding yourself of technical debt? What methods did you use to get the work done?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-16T19:39:19.583" Title="What payoffs have you seen from taking care of technical debt?" Tags="&lt;code-quality&gt;&lt;refactoring&gt;&lt;clean-code&gt;&lt;technical-debt&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="5" />
  <row Id="25024" PostTypeId="2" ParentId="24702" CreationDate="2010-12-09T21:44:52.793" Score="0" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/3DkKh.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://www.amazon.com/Perplexus-Maze-Game-PlaSmart-Inc/dp/B002NPBT50/ref=sr_1_1?ie=UTF8&amp;amp;qid=1291930948&amp;amp;sr=8-1&quot; rel=&quot;nofollow&quot;&gt;3D Maze Ball&lt;/a&gt; really gets my creative juices flowing. We had one at my old job. Something about working on a trivial puzzle in 3D let's my brain focus on bigger problems in the background...&lt;/p&gt;&#xA;" OwnerUserId="8095" LastActivityDate="2010-12-09T21:44:52.793" />
  <row Id="25025" PostTypeId="2" ParentId="24910" CreationDate="2010-12-09T21:45:20.850" Score="0" ViewCount="" Body="&lt;p&gt;Back in the day I was saddled with SCCS under XENIX. VSS, in Visual Studio 6, for all it's failures and problems had distinct advantages. I still use it for small projects and I no longer use SCCS in any version.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-12-09T21:45:20.850" />
  <row Id="25026" PostTypeId="2" ParentId="39" CreationDate="2010-12-09T21:45:47.247" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Knowledge is proud that it knows so&#xA;  much; wisdom is humble that it knows&#xA;  no more.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;--William Cowper &lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-09T21:45:47.247" CommunityOwnedDate="2010-12-09T21:45:47.247" CommentCount="1" />
  <row Id="25027" PostTypeId="2" ParentId="24940" CreationDate="2010-12-09T21:56:27.933" Score="1" ViewCount="" Body="&lt;p&gt;I agree with you that Linq syntax is not significantly different from T-SQL. I think your coworker might really be objecting to relational stuff getting mixed in which his nice and shiny OO code. On the other hand, functional programming takes a bit of getting used to, and a willingness to get used to it. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-09T21:56:27.933" />
  <row Id="25028" PostTypeId="2" ParentId="25023" CreationDate="2010-12-09T22:01:18.990" Score="5" ViewCount="" Body="&lt;p&gt;It's been my experience that the benefits of code cleanup are most noticeable when I have to maintain code where the cleanup hasn't been done. Where the cleanup's been done, my changes consist of reading through the code, spotting the one or two places that need to be changed, and going from there. If the cleanup hasn't been done, add an initial step of reading the code a couple of times and trying to figure out what the author (sometimes me) was thinking when he wrote it.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-09T22:01:18.990" CommentCount="1" />
  <row Id="25029" PostTypeId="2" ParentId="24910" CreationDate="2010-12-09T22:02:22.683" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Using SourceSafe in a commercial operation is like heating the building by burning dollar bills.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In 2000, my eight-developer company probably lost 5-10% of its productivity because of the twice-daily-on-average corruptions of VSS databases. It was only that low because we'd gone to hourly backups.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since moving away from VSS to Perforce, svn, and git, I've never had an SCM database become corrupted.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-09T22:02:22.683" CommentCount="1" />
  <row Id="25030" PostTypeId="2" ParentId="19348" CreationDate="2010-12-09T22:06:47.437" Score="0" ViewCount="" Body="&lt;p&gt;I am late with my response, but I have a tool for you:&#xA;&lt;a href=&quot;https://sourceforge.net/apps/trac/jooq/wiki/Manual&quot; rel=&quot;nofollow&quot;&gt;https://sourceforge.net/apps/trac/jooq/wiki/Manual&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, you won't have JPA-compliance there. But if you're used to jOOQ, you don't want to &quot;go JPA&quot; anymore :-)&lt;/p&gt;&#xA;" OwnerUserId="9411" LastEditorUserId="9411" LastEditorDisplayName="" LastEditDate="2011-03-15T17:09:33.457" LastActivityDate="2011-03-15T17:09:33.457" />
  <row Id="25031" PostTypeId="2" ParentId="19348" CreationDate="2010-12-09T22:22:00.820" Score="2" ViewCount="" Body="&lt;p&gt;If you only have a small data model to worry about, why not use JDBC or a wrapper around it (e.g. Spring JDBC) to handle the boilerplate? That plus an active record architecture (objects know how to save/update themselves) on your model classes isn't that difficult to understand or maintain, and you're leaving your options very open for another tool down the road if you decide you need full ORM later. &lt;/p&gt;&#xA;" OwnerUserId="7508" LastActivityDate="2010-12-09T22:22:00.820" />
  <row Id="25032" PostTypeId="2" ParentId="25023" CreationDate="2010-12-09T22:33:45.080" Score="11" ViewCount="" Body="&lt;p&gt;I can give you one example from my experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About 10 or 12 years ago I inherited an application from a team of developers that ended up leaving the company (too long to get into here...).  The system was a large home-grown middleware report generation system.  It ran every week night and generated about 2 dozen Excel reports for senior executives of a Fortune 500 company.  When I inherited it, it took about 5-6 hours to run and during any given week would fail at least 2 nights.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was not a happy camper to be given this mess.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Initially my plan was just to stop the bleeding and fix the main cause of the failures.  After I became more comfortable with the code base, I started looking for places where I could refactor and add stability and performance.  Over the course of 2 years or so, I made many, many changes to the system.  We retired that system a couple of years ago and at that point the whole process took 45 minutes to run and hadn't generated any issues in years.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of work went into paying down the technical debt but it was well, well worth it.  It was nice not getting any phone calls in the middle of the night that the system failed.  It was nice coming into the office in the monring and seeing nothing but good news in the logs.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Aside...  After a couple of years I ran into one of the main developers of this system.  He asked me how it was doing and I told him how bad the system was.  He actually apologized and told me he knew it would be a handful to support after he left and wished he had done a better job on it).&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-09T22:33:45.080" CommentCount="1" />
  <row Id="25033" PostTypeId="1" CreationDate="2010-12-09T22:43:15.867" Score="2" ViewCount="649" Body="&lt;p&gt;Hello, I'm an experienced desktop developer who's recently begun writing iOS apps and would like to venture into Android development as well.  I've been hearing a lot of talk surrounding the Appcelerator Titanium framework lately, but I'm not sure I fully understand it's purpose.  As I understand it, it's a framework for building native mobile apps using web technologies.  If I don't have any web dev skills, are there any ways that using Appcelerator Titanium would benefit me?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for your thoughts, I'm going to continue researching this right now.&lt;/p&gt;&#xA;" OwnerUserId="7158" LastActivityDate="2011-03-05T23:16:09.550" Title="Should I still consider using Appcelerator Titanium for building mobile apps if I don't have any web dev skills?" Tags="&lt;mobile&gt;&lt;android&gt;&lt;ios&gt;" AnswerCount="6" />
  <row Id="25034" PostTypeId="2" ParentId="10424" CreationDate="2010-12-09T22:53:48.443" Score="0" ViewCount="" Body="&lt;p&gt;ORMs still pursue an idea that was dead at birth. RDBMS will be &lt;strong&gt;R&lt;/strong&gt; elational for the rest of the time. And there is no true mapping for the &quot;Relational&quot; to the &quot;Object Oriented&quot;. I don't need to repeat previous posts about the mismatch. Instead, I want to promote an alternative solution, where SQL is the main focus, and ORM is way in the background. Check out &lt;a href=&quot;https://sourceforge.net/apps/trac/jooq/wiki/Examples&quot; rel=&quot;nofollow&quot;&gt;https://sourceforge.net/apps/trac/jooq/wiki/Examples&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9411" LastActivityDate="2010-12-09T22:53:48.443" CommentCount="6" />
  <row Id="25035" PostTypeId="2" ParentId="24910" CreationDate="2010-12-09T23:02:33.943" Score="2" ViewCount="" Body="&lt;p&gt;My view on VSS ? I declined a few job offers (very well paid) because they requested &quot;VSS proficiency&quot;. And I am sure there is a couple of other people here who did the same.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-09T23:02:33.943" CommentCount="1" />
  <row Id="25036" PostTypeId="2" ParentId="24804" CreationDate="2010-12-09T23:05:47.683" Score="1" ViewCount="" Body="&lt;p&gt;For the legal part of your doubt, I think a lawyer will give you a much better advice than a dozen programmers.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-09T23:05:47.683" CommentCount="2" />
  <row Id="25037" PostTypeId="1" AcceptedAnswerId="29691" CreationDate="2010-12-09T23:10:41.330" Score="7" ViewCount="364" Body="&lt;h2&gt;Persistence in Java&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Over the past years, I have gathered experience in the field of persistence abstraction in Java, using concepts such as EJB 2.0, Hibernate, JPA and home-grown ones. They seemed to me to have a steep learning curve and lots of complexity. In addition, as a big fan of SQL, I also thought that many abstraction models provide too much abstraction over SQL, creating concepts such as &quot;criteria&quot;, &quot;predicates&quot;, &quot;restrictions&quot; that are very good concepts, but not SQL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The general idea of persistence abstraction in Java seems to be based on the Object-relational model, where RDBMS are somehow matched with the OO world. The ORM-debate has always been an emotional one, as there does not seem to exist a single solution that suits everyone - if such a solution can even exist.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;jOOQ&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;My personal preference of how to avoid ORM-related problems is to stick to the relational world. Now the choice of data model paradigm should not be the topic of discussion as it is a personal preference, or a matter of what data model best suits a concrete problem. The discussion I would like to start is around my very own persistence tool called &lt;a href=&quot;http://jooq.sourceforge.net&quot; rel=&quot;nofollow&quot;&gt;jOOQ&lt;/a&gt;. I designed jOOQ to provide most of the advantages modern persistence tools have:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A Domain Specific Language based on SQL&lt;/li&gt;&#xA;&lt;li&gt;Source code generation mapping the underlying database schema to Java&lt;/li&gt;&#xA;&lt;li&gt;Support for many RDBMS&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Adding some features that few modern persistence tools have (correct me if I'm wrong):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Support for complex SQL - unions, nested selects, self-joins, aliasing, case clauses, arithmetic expressions&lt;/li&gt;&#xA;&lt;li&gt;Support for non-standard SQL - stored procedures, UDT's, ENUMS, native functions, analytic functions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Please consider the documentation page for more details: &lt;a href=&quot;https://sourceforge.net/apps/trac/jooq/wiki/Examples&quot; rel=&quot;nofollow&quot;&gt;https://sourceforge.net/apps/trac/jooq/wiki/Examples&lt;/a&gt;. You will see that a very similar approach is implemented in Linq for C#, although Linq is not exclusively designed for SQL.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;The Question&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Now, having said that I'm a big fan of SQL, I wonder whether other developers will share my enthusiasm for jOOQ (or Linq). Is this kind of approach to persistence abstraction a viable one? What are the advantages / disadvantages you might see? How could I improve jOOQ, and what's missing in your opinion? Where did I go wrong, conceptually or practically?&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Critical but constructive answers appreciated&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I understand that the debate is an emotional one. There are many great tools out there that do similar things already. What I am interested in is critical but constructive feedback, based on your &lt;strong&gt;own experience&lt;/strong&gt; or articles you may have read.&lt;/p&gt;&#xA;" OwnerUserId="9411" LastEditorUserId="9411" LastEditorDisplayName="" LastEditDate="2010-12-11T18:40:22.847" LastActivityDate="2010-12-24T00:32:23.283" Title="What would you think about a new Java persistence tool, that's not really an ORM?" Tags="&lt;java&gt;&lt;orm&gt;&lt;database&gt;&lt;linq&gt;" AnswerCount="3" CommentCount="5" />
  <row Id="25038" PostTypeId="2" ParentId="25033" CreationDate="2010-12-09T23:11:02.233" Score="3" ViewCount="" Body="&lt;p&gt;From &lt;a href=&quot;http://www.appcelerator.com/products/&quot; rel=&quot;nofollow&quot;&gt;their intro&lt;/a&gt; (my emphasis):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Titanium lets you create native mobile, tablet and desktop application experiences using existing &lt;strong&gt;web skills&lt;/strong&gt; like Javascript, HTML, CSS, Python, Ruby, and PHP&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You say:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I don't have any web dev skills&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;So for you:&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Pros:&lt;/h3&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cross Platform&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h3&gt;Cons:&lt;/h3&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cross Platform&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In other words, if cross platform is a big deal to you and you don't otherwise have the skills, time, people, etc. to develop a cross-platform app using native languages, then it might be worth looking into.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;If&lt;/em&gt; you are prepared to deal with dependence on a platform that will always lag behind native development for new features, another layer to introduce bugs (union of bugs), fewer features (intersection of features) a poorer user experience, a smaller development community, and some amount of risk that the SDK could die off completely.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-09T23:11:02.233" CommentCount="1" />
  <row Id="25039" PostTypeId="2" ParentId="24940" CreationDate="2010-12-09T23:52:39.317" Score="20" ViewCount="" Body="&lt;p&gt;I can't find the right post anymore, but Eric Lippert (and possibly several other softies) have opined on several occasions about how Linq is &lt;strong&gt;declarative&lt;/strong&gt;, which, for several classes of problems, is far more intuitive than &lt;strong&gt;imperative&lt;/strong&gt; syntax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Linq enables you to write code that expresses the &lt;em&gt;intent&lt;/em&gt;, not the &lt;em&gt;mechanism&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You tell me which is easier to read.  This:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;IEnumerable&amp;lt;Customer&amp;gt; GetVipCustomers(IEnumerable&amp;lt;Customer&amp;gt; source)&#xA;{&#xA;    List&amp;lt;Customer&amp;gt; results = new List&amp;lt;Customer&amp;gt;();&#xA;    foreach (Customer c in source)&#xA;    {&#xA;        if (c.FirstName == &quot;Aaron&quot;)&#xA;        {&#xA;            results.Add(c);&#xA;        }&#xA;    }&#xA;    results.Sort(new LastNameComparer());&#xA;}&#xA;&#xA;class LastNameComparer : IComparer&amp;lt;Customer&amp;gt;&#xA;{&#xA;    public int Compare(Customer a, Customer b)&#xA;    {&#xA;        return x.LastName.CompareTo(b.LastName);&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Or this?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;IEnumerable&amp;lt;Customer&amp;gt; GetVipCustomers(IEnumerable&amp;lt;Customer&amp;gt; source)&#xA;{&#xA;    return from c in source&#xA;           where c.FirstName == &quot;Aaron&quot;&#xA;           orderby c.LastName&#xA;           select c;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Or even this?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;IEnumerable&amp;lt;Customer&amp;gt; GetVipCustomers(IEnumerable&amp;lt;Customer&amp;gt; source)&#xA;{&#xA;    return source.Where(c =&amp;gt; c.FirstName == &quot;Aaron&quot;).OrderBy(c =&amp;gt; c.LastName);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The first example is just a bunch of pointless boilerplate in order to obtain the simplest of results.  Anybody who thinks that it is &lt;em&gt;more&lt;/em&gt; readable than the Linq versions needs to have his head examined.  Not only that, but the first one wastes memory.  You can't even write it using &lt;code&gt;yield return&lt;/code&gt; because of the sorting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your coworker can say what he wants; personally, I think Linq has improved &lt;em&gt;my&lt;/em&gt; code readability immeasurably.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's nothing &quot;relational&quot; about Linq either.  It may have some superficial similarities to SQL but it does not attempt in any shape or form to implement relational calculus.  It's just a bunch of extensions that make it easier to query and project sequences.  &quot;Query&quot; does not mean &quot;relational&quot;, and there are in fact several non-relational databases that use SQL-like syntax.  Linq is &lt;em&gt;purely&lt;/em&gt; object-oriented, it just happens to work with relational databases through frameworks such as Linq to SQL because of some expression tree voodoo and clever design from the C# team, making anonymous functions implicitly convertible to expression trees.&lt;/p&gt;&#xA;" OwnerUserId="3249" LastEditorUserId="3249" LastEditorDisplayName="" LastEditDate="2010-12-09T23:59:49.607" LastActivityDate="2010-12-09T23:59:49.607" CommentCount="3" />
  <row Id="25040" PostTypeId="2" ParentId="25023" CreationDate="2010-12-10T00:25:24.207" Score="1" ViewCount="" Body="&lt;p&gt;Regarding the last two points: I understand where it's coming from, as explained in his &lt;a href=&quot;http://groups.yahoo.com/group/scrumdevelopment/message/49457&quot; rel=&quot;nofollow&quot;&gt;original post&lt;/a&gt; :&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;blockquote&gt;&#xA;    &lt;p&gt;Or, is it possible to reassign some developers to get these&#xA;    technical matters done, while the rest of the team continues on&#xA;    the user-oriented stuff? This may affect team velocity, but so what?&lt;/p&gt;&#xA;  &lt;/blockquote&gt;&#xA;  &#xA;  &lt;p&gt;&quot;So what&quot; equals: the product owner&#xA;  and other business-side people become&#xA;  unhappy. And when Momma's unhappy,&#xA;  everyone's unhappy.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yet, the line between what has to be done and what may be done is pretty vague. User-faced is very broad, and includes performance and occurence of errors. But in quite some cases, the underlying problem of poor performance and high occurence of errors lies deeper in the code. To say it in his words: a story might not go through a crufty area, but that crufty area can hide some nasty things that attacking the story on the cleaned-up path next to it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things that do not influence the overall performance are less interesting to clean up, but one should evaluate very carefully the influence of those points. More often than not they have an indirect influence that can be pretty substantial.&lt;/p&gt;&#xA;" OwnerUserId="7268" LastActivityDate="2010-12-10T00:25:24.207" />
  <row Id="25041" PostTypeId="2" ParentId="25037" CreationDate="2010-12-10T00:29:47.853" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2006/06/object-relational-mapping-is-the-vietnam-of-computer-science.html&quot; rel=&quot;nofollow&quot;&gt;&quot;There are a lot of magic bullets out there, and no shortage of naive developers.&quot;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No offense, it appears that you don't entirely understand what's been done in this space already and therefore are reinventing some wheels - experience would tell us all that the wheels you invent, while neat and fun, aren't likely to be nearly as good or useful as the nicely refined wheels already available.&lt;/p&gt;&#xA;" OwnerUserId="6735" LastActivityDate="2010-12-10T00:29:47.853" CommentCount="3" />
  <row Id="25042" PostTypeId="2" ParentId="25037" CreationDate="2010-12-10T00:31:24.550" Score="1" ViewCount="" Body="&lt;p&gt;If I understand your tool correctly, it maps Objects directly to a conceptual SQL framework rather than mapping Objects that implement some mapping to SQL functionality (ORM), almost like a ORM-- abstraction for greater geeky control so that you can use more SQL features ORM's usually wouldn't give you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not sure what problem you're trying to solve. Since your tool requires in-depth knowledge of SQL, wouldn't people just use, well, SQL? Is it the glue-code you're trying to get rid of? Better validation of the SQL queries through API modelling instead of simple strings?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have to admit that your JOOQ examples look like LISP versions of the SQL. Not that that is a bad thing :) and I do see some of the advanced stuff being interesting, but the advantages you list slowly disappear as you become increasingly advanced (more config, less abstract, more ingrained in the inner sanctum of the specific SQL engine, etc.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One suggestion I'd like to see that I do miss in most ORMs is a framework that can deal with Objects in a non-relational way, translating Object interactions into whatever the backend might be (SQL, NoSQL, Topic Maps, RDF, etc.) which requires caching of the &lt;strong&gt;Model&lt;/strong&gt; used rather than specifics of SQL interactions, dialects, and relational thinking. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO, of course. :)&lt;/p&gt;&#xA;" OwnerUserId="9415" LastActivityDate="2010-12-10T00:31:24.550" CommentCount="1" />
  <row Id="25043" PostTypeId="2" ParentId="24353" CreationDate="2010-12-10T01:17:06.700" Score="1" ViewCount="" Body="&lt;p&gt;By the time you've hired someone, you already know they've got the where-with-all to do the technical stuff - what's going to help them get meaningful results, is understanding WHO their customers are (internal or external), and what the customers expectations are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once your new hire understands how the team delivers to the customer, all the processes and tools you show them will be understood in context.&lt;/p&gt;&#xA;" OwnerUserId="7641" LastActivityDate="2010-12-10T01:17:06.700" />
  <row Id="25045" PostTypeId="2" ParentId="25023" CreationDate="2010-12-10T03:13:25.220" Score="1" ViewCount="" Body="&lt;p&gt;One experience I had was when I was managing a Site Performance team at my previous employer.  Every night, for a period of an hour to two hours, the website my team was monitoring would dip below acceptable performance thresholds due to a bot scraping information from the site rapidly.  The measures the team took to address this consisted of logging into a manual admin system and blocking the IP addresses which were causing the troubles.  Needless to say, this cost one member of the team hours of sleep nearly every night.  I noticed what was occurring and took the on-call BlackBerry myself for several days to see how bad it was and give my team some rest.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After a few days,  I simply went to the business owner of the team and let them know that if we did not implement an automated blocking system such that bots would have a much more difficult time affecting the performance of the site, we would likely lose some if not all of the team members due to fatigue and burnout.  They agreed, and we implemented a system which allowed us to get sleep at night.  The business owner understood that the cost of a few days or a week of development was minimal compared to the cost of hiring/training new engineers. &lt;/p&gt;&#xA;" OwnerUserId="8474" LastActivityDate="2010-12-10T03:13:25.220" />
  <row Id="25046" PostTypeId="1" AcceptedAnswerId="25085" CreationDate="2010-12-10T03:20:08.710" Score="5" ViewCount="594" Body="&lt;p&gt;I've read several books and learned through experience that optimizing code to the point where it is inscrutable, or coming up with an extremely fast but extremely complex solution to a problem is not desirable when working in teams, or even when you're working by yourself and have to understand your clever solution some time later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is, should recursion be treated in the same manner?  Does the average programmer understand recursion easily and thus one should use it with impunity, or does the average programmer not understand recursion very well and one should stay away from it for the sake of overall team productivity?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know there are simple answers of, &quot;Any programmer who doesn't understand recursion isn't worth a grain of salt, so don't worry about them&quot; but I was wondering if you all had some real world experience you would like to share that would illuminate the issue more than the opinion I just mentioned.&lt;/p&gt;&#xA;" OwnerUserId="8474" LastActivityDate="2010-12-10T19:12:31.060" Title="Is recursion an instance of being &quot;too clever&quot; when programming?" Tags="&lt;maintenance&gt;&lt;teamwork&gt;&lt;recursion&gt;" AnswerCount="7" CommentCount="1" />
  <row Id="25047" PostTypeId="2" ParentId="25046" CreationDate="2010-12-10T03:30:18.363" Score="31" ViewCount="" Body="&lt;p&gt;Some problems are naturally recursive. Coming up with an iterative solution in these cases can actually be more clunky and complex than recursive ones. A good example is any algorithm which needs to traverse a hierarchical tree structure, which is a not-uncommon task in programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TL;DR version: No.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-12-10T03:30:18.363" CommentCount="1" />
  <row Id="25048" PostTypeId="2" ParentId="25046" CreationDate="2010-12-10T03:32:18.847" Score="4" ViewCount="" Body="&lt;p&gt;I would say use recursion where it's appropriate, but always seek out ways to avoid explicit recursion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, if you find the need to manually traverse a tree structure, then yes, you should be using recursion. If someone's dumb enough to not understand a recursive tree traversal, they're going to make neither head nor tail of the iterative version.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But a better option is to use an iterator that abstracts the recursion away to the point where all you see is &quot;I perform this operation on everything in the tree&quot;.&lt;/p&gt;&#xA;" OwnerUserId="9029" LastActivityDate="2010-12-10T03:32:18.847" CommentCount="3" />
  <row Id="25049" PostTypeId="2" ParentId="25046" CreationDate="2010-12-10T03:33:36.097" Score="9" ViewCount="" Body="&lt;p&gt;Recursion is a foundational principle in most functional programming languages.  Iteration (looping) in functional languages is usually accomplished via recursion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Functional languages have seen somewhat of a renaissance lately, due to the need to elegantly handle more processor cores; functional languages help achieve this kind of concurrency by providing ways to better reason about your program without the complexity involved in locking mutable structures.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-10T15:51:19.807" LastActivityDate="2010-12-10T15:51:19.807" CommentCount="1" />
  <row Id="25050" PostTypeId="1" AcceptedAnswerId="25051" CreationDate="2010-12-10T03:38:52.883" Score="0" ViewCount="132" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/16468/conflicts-of-interest-doing-what-you-love&quot;&gt;Conflicts of interest&amp;hellip; doing what you love&amp;hellip;&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I work as a developer, and I have a fairly standard contract in that it requires intellectual property rights for what I create belong to my employer, unless they are unrelated to [the employer's] business and not developed using any company resources.  Intellectual property which does not belong to the employer can be declared (the main reason to do this is so you have something in writing that says, &quot;yes, we acknowledge that this belongs to you and not us&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recent changes at the company have led to an environment where I don't feel I'm growing as a developer.  I'm hopeful enough for improvement that I'm not ready to leave yet, but I'm also not willing to sit around and stagnate while I see whether that improvement ever comes.  So, I've decided the appropriate thing to do is go back to doing coding projects in my spare time.  This means (1) TopCoder, (2) an open source project I've had my eye on for some time, and (3) a number of iPhone projects I've been thinking about for some time (probably in sequence).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, StackExchange is not a lawyer.  However, I'm interested in the following non-legal advice*:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How much documentation of the project is appropriate, and of what kinds?  Currently I'm thinking just a copy of the annotated UI design for the iPhone projects.  I'm less sure what to do for TopCoder and the open source project I'm thinking of joining.&lt;/li&gt;&#xA;&lt;li&gt;What's the best way to present this to management, such that they don't panic and/or feel affronted?&lt;/li&gt;&#xA;&lt;li&gt;Any general advice or pitfalls you'd like to warn me of?&lt;/li&gt;&#xA;&lt;li&gt;Any comments on what it was like for those of you who've already done this?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;*Not illegal advice, please - that's an important distinction. :-)&lt;/p&gt;&#xA;" OwnerUserId="5068" LastActivityDate="2010-12-10T03:49:17.783" ClosedDate="2010-12-11T01:58:41.600" Title="How do I notify my employer of my &quot;extracurricular&quot; project plans?" Tags="&lt;career&gt;&lt;personal-projects&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="25051" PostTypeId="2" ParentId="25050" CreationDate="2010-12-10T03:49:17.783" Score="0" ViewCount="" Body="&lt;p&gt;If you're doing projects for yourself (eg: iPhone apps), and your contract doesn't vest your intellectual property to your company... there's little need to even tell them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're doing work for other people, it might be worth just asking the question to your line manager whether he thinks the company would have a problem with it. Lodging an official letter with them saying what you're doing may influence your future promotion prospects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of this goes out the window of course, if you're programming for something that will end up competing with your employer's business activities. Don't do it, it's not worth it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just remember that in any case, you should never put yourself in the situation where your out-of-work habit needs you to support it during your fulltime job's hours. It's a recipe for disaster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps :)&lt;/p&gt;&#xA;" OwnerUserId="7641" LastActivityDate="2010-12-10T03:49:17.783" />
  <row Id="25052" PostTypeId="1" AcceptedAnswerId="25545" CreationDate="2010-12-10T04:07:17.480" Score="21" ViewCount="1377" Body="&lt;p&gt;This question is inspired by &lt;a href=&quot;http://programmers.stackexchange.com/questions/17898/whats-a-nice-explanation-for-pointers&quot;&gt;What's a nice explanation for pointers?&lt;/a&gt;&lt;br&gt;&#xA;So, what can be a nice explanation of the recursion?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update:&lt;br&gt;&#xA;The idea of recursion is not very common in real world. So, it seems a bit confusing to the novice programmers. Though, I guess, they become used to the concept gradually. So, what can be a nice explanation for them to grasp the idea easily?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I expected some detailed answers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;N.B. : Even I am going to post one answer. But to be fair, it will be few hours later.&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-12-12T00:07:46.940" LastActivityDate="2011-05-28T12:09:35.140" CommunityOwnedDate="2011-03-11T22:52:58.993" Title="What's a nice explanation for recursion?" Tags="&lt;computer-science&gt;&lt;teaching&gt;&lt;intro-to-programming&gt;&lt;recursion&gt;" AnswerCount="25" CommentCount="10" FavoriteCount="12" />
  <row Id="25053" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T04:12:23.943" Score="4" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/vUmUr.gif&quot; alt=&quot;alt text&quot;&gt;(&lt;a href=&quot;http://www.toothpastefordinner.com/archives/2010/Feb/&quot; rel=&quot;nofollow&quot;&gt;toothpastefordinner.com&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also used toothpaste for dinner comics to explain &lt;a href=&quot;http://www.toothpastefordinner.com/071310/boolean-hair-logic.gif&quot; rel=&quot;nofollow&quot;&gt;bitwise operators&lt;/a&gt; to new interns.&lt;/p&gt;&#xA;" OwnerUserId="1428" LastActivityDate="2010-12-10T04:12:23.943" CommunityOwnedDate="2011-03-11T22:52:58.993" CommentCount="2" />
  <row Id="25054" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T04:18:09.963" Score="17" ViewCount="" Body="&lt;p&gt;The calling of a function from within that same function.&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2010-12-10T04:18:09.963" CommunityOwnedDate="2011-03-11T22:52:58.993" />
  <row Id="25055" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T04:18:29.180" Score="17" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;To understand recursion, you must understand recursion.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Not a bad quote. Recursion is one of those things you have to wrap your head around. There are a few decent explanations, the best involve file systems or Matryoshka dolls. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-10T04:18:29.180" CommunityOwnedDate="2011-03-11T22:52:58.993" CommentCount="1" />
  <row Id="25056" PostTypeId="1" CreationDate="2010-12-10T04:24:08.207" Score="4" ViewCount="299" Body="&lt;p&gt;Hello everyone,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm interested in better learning functional programming. To do so, it seems obvious that I should force myself to use the purest possible functional programming language. Hence, I'm here asking, more or less, for an ordering of functional programming languages according to their purity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems to me that it would be more practical to learn Lisp or Clojure (or Scheme, or Scala, etc.), but for what I've heard recently, Haskell would be very hard to beat at teaching functional programming principles to someone. I'm not sure about this yet, so &lt;strong&gt;I'm asking you:&lt;/strong&gt; which is the purest functional programming language? An ordering would be great if several are competing for the magnificent title of the purest functional programming language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="6742" LastActivityDate="2010-12-10T05:08:03.177" Title="Purest functional programming language(s)?" Tags="&lt;programming-languages&gt;&lt;functional-programming&gt;" AnswerCount="3" />
  <row Id="25057" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T04:26:21.700" Score="10" ViewCount="" Body="&lt;p&gt;Okay i am going to try to keep this simple and concise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recursive function are functions that call themselves. Recursive function consist of three things:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Logic&lt;/li&gt;&#xA;&lt;li&gt;A call to itself&lt;/li&gt;&#xA;&lt;li&gt;When to terminate.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Best ways to write recursive methods, is to think of the method that you trying to write as a simple example only handling one loop of the process you want to iterate over, then add the call to the method itself, and add when you want to terminate. Best way to learn is to practice like all things. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since this is programmers website I will refrain from writing code but here is a good &lt;a href=&quot;http://www.google.ca/#sclient=psy&amp;amp;hl=en&amp;amp;q=recursion&amp;amp;aq=f&amp;amp;aqi=&amp;amp;aql=&amp;amp;oq=&amp;amp;gs_rfai=&amp;amp;pbx=1&amp;amp;fp=b70f85f807d51e40&quot; rel=&quot;nofollow&quot;&gt;link&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if you got that joke you got what recursion means. &lt;/p&gt;&#xA;" OwnerUserId="2446" LastActivityDate="2010-12-10T04:26:21.700" CommunityOwnedDate="2011-03-11T22:52:58.993" CommentCount="4" />
  <row Id="25058" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T04:34:31.687" Score="25" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/8Muv3.jpg&quot; alt=&quot;To Do&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-12-10T04:34:31.687" CommunityOwnedDate="2011-03-11T22:52:58.993" CommentCount="3" />
  <row Id="25059" PostTypeId="2" ParentId="25046" CreationDate="2010-12-10T04:35:18.300" Score="3" ViewCount="" Body="&lt;p&gt;Recursion, is the simplest mechanism from a code cleanliness standpoint. If speed is absolutely of the essence, then perhaps you can use a 2D array of problem parameters. Spawning a daughter process is then simply appending another item to the array. I once did an assembler tridiagonal solver, that was a big deal back in the day. The context needed per instance was 8 words per level, and each subproblem was a third the size of the previous. This &quot;library&quot; was only popular because it beat the heck out of all the other implementations out there. But, that's a pretty rare situation in programming, so you needn't succumb to &quot;premature optimization&quot;, just because this solution is available. Obviously for a few things its terrible overkill, like the recursion 101 example &quot;compute the factorial&quot;. But for most apps, it is a really elegant way to eliminate source code complexity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a simple spell-checker I use for an app, (where I want to give hints about correcting minor misspellings), where I compute the &quot;distance&quot; between two strings, allowing deletions and additions are allowed. This leads to a potentially large tree structure, and the branches are trimmed as we only care about close matches. With recursion, its maybe twenty lines of code (I have both Fortran and C versions). I think it would be messy otherwise. Heck it was much easier to program/debug verify, than it was to think about that tree!&lt;/p&gt;&#xA;" OwnerUserId="8651" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-12-10T10:09:38.163" LastActivityDate="2010-12-10T10:09:38.163" />
  <row Id="25060" PostTypeId="2" ParentId="25056" CreationDate="2010-12-10T04:35:39.117" Score="0" ViewCount="" Body="&lt;p&gt;Erlang, Haskell, Scheme, Scala, Clojure, and F#&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This question would probably best you help you in your search as &lt;a href=&quot;http://stackoverflow.com/questions/2179263/which-functional-programming-language-should-i-choose-as-first-functional-program&quot;&gt;well&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="2446" LastActivityDate="2010-12-10T04:35:39.117" CommentCount="1" />
  <row Id="25061" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T04:36:02.857" Score="23" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Recursion explained by Google&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/qrT2l.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-12-10T04:36:02.857" CommunityOwnedDate="2011-03-11T22:52:58.993" CommentCount="2" />
  <row Id="25062" PostTypeId="2" ParentId="25056" CreationDate="2010-12-10T04:36:10.470" Score="5" ViewCount="" Body="&lt;p&gt;There's no scale for assessing the degree of purity of functional languages. If the language allows sideeffects it's impure, otherwise it's pure. By this definition, Haskell, Mercury, Clean etc are pure functional languages; whereas Scala, Clojure, F#, OCaml etc are impure ones.&lt;/p&gt;&#xA;" OwnerUserId="1968" LastActivityDate="2010-12-10T04:36:10.470" CommentCount="5" />
  <row Id="25063" PostTypeId="1" AcceptedAnswerId="25066" CreationDate="2010-12-10T04:44:12.820" Score="3" ViewCount="721" Body="&lt;p&gt;Recently I was being interviewed by a company and faced one question. The interviewer asked me a question and at that time I didn't know the answer but if I had been asked about just 4 months ago, I could have answered it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question was from new language that I learned just 4 months ago. But I just get overview of the language and just get started working on that. Whenever I face difficultly, I google it. That means we do not have to memorize the whole programming language book! So in that situation I felt that Google screwed my job!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not talking subjectively, Is it good to google all the time?&lt;/p&gt;&#xA;" OwnerUserId="9421" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-10T12:52:47.357" LastActivityDate="2011-05-20T16:03:34.313" Title="Google is good or bad for programmer?" Tags="&lt;self-improvement&gt;&lt;programming&gt;&lt;google&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="2" />
  <row Id="25064" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T04:45:31.057" Score="-7" ViewCount="" Body="&lt;p&gt;you texting yourself...and replying ..&lt;/p&gt;&#xA;" OwnerUserId="1368" LastActivityDate="2010-12-10T04:45:31.057" CommunityOwnedDate="2011-03-11T22:52:58.993" CommentCount="5" />
  <row Id="25065" PostTypeId="2" ParentId="25063" CreationDate="2010-12-10T04:48:58.200" Score="2" ViewCount="" Body="&lt;p&gt;It depends. If you only worked in a language for 4 months, it's not necessarily unreasonable to need to google certain things, depending on how much time you spent on the language and how experienced a developer you are. With experience, you start picking up new languages faster. In your specific situation, it's hard to say if the interviewer was too picky without knowing the question you were asked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, though, it's definitely okay to look up information online if you're stuck, but don't use the ability to do that as an excuse to stop learning and remembering important aspects of whatever language you're working in.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-10T04:48:58.200" />
  <row Id="25066" PostTypeId="2" ParentId="25063" CreationDate="2010-12-10T04:49:13.833" Score="11" ViewCount="" Body="&lt;p&gt;Well, ... human memory and instincts work faster than Google. But then again, we cannot commit everything to memory (human brain just doesn't work that way - you remember in the lower cirles only the things you need momentarily).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Google however is great as a replacement for paper books, manuals, everything really. And makes searching those (like you would in the ol' days) a breeze. So yes, it is good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But one must remember, it is just a tool - like any other. No good programmer relies on it to just pop up solutions, so he can go like that from day to day. After all, what's on Google has already been done - and understanding of matter leads to doing stuff that yet haven't.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-10T04:49:13.833" />
  <row Id="25067" PostTypeId="1" AcceptedAnswerId="25070" CreationDate="2010-12-10T04:50:36.623" Score="14" ViewCount="315" Body="&lt;p&gt;Which management book would you recommend to read for a fresh Team Leader?&lt;/p&gt;&#xA;" OwnerUserId="9318" LastEditorUserId="1020" LastEditorDisplayName="" LastEditDate="2010-12-10T09:33:24.110" LastActivityDate="2011-01-17T04:31:37.563" Title="Which management book would you recommend to read for a fresh Team Leader?" Tags="&lt;management&gt;&lt;team-leader&gt;" AnswerCount="7" FavoriteCount="6" />
  <row Id="25068" PostTypeId="2" ParentId="12499" CreationDate="2010-12-10T04:59:52.813" Score="1" ViewCount="" Body="&lt;p&gt;Well, thats roughly 10^27! We can imagine exaop/second computers (thats 10^18), so thats only about a factor of a billion away! But, realistically, if we stored one bit per atom the memory would weigh about a ton! So I don't expect we will ever get there (not in this universe ). Perhaps all the storage in the world some day may approach this number, but I can't imagine even a world beating future supercompter ever getting this much capacity.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-12-10T04:59:52.813" />
  <row Id="25069" PostTypeId="2" ParentId="25046" CreationDate="2010-12-10T05:01:35.383" Score="8" ViewCount="" Body="&lt;p&gt;Some problems, such as walking a tree structure (walking, say, an entire directory structure, as opposed to, say, searching for a specific B-Tree node), are ideally suited to using recursion; the non-recursive equivalents often simply add the complication of managing your own stack.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In these cases, recursion is the best, simplest solution and easiest to understand.&lt;/p&gt;&#xA;" OwnerUserId="4182" LastEditorUserId="4182" LastEditorDisplayName="" LastEditDate="2010-12-10T19:12:31.060" LastActivityDate="2010-12-10T19:12:31.060" />
  <row Id="25070" PostTypeId="2" ParentId="25067" CreationDate="2010-12-10T05:05:17.470" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Peopleware%3a_Productive_Projects_and_Teams&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Peopleware: Productive Projects and Teams&lt;/strong&gt;&lt;/a&gt; comes to mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first chapter of the book claims, &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;“The major problems of our work are not so much technological as sociological in nature”. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The book approaches sociological or ‘political’ problems such as team ‘jelling’, quiet in the work environment, and the high cost of turnover.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/6ebal.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="3915" LastActivityDate="2010-12-10T05:05:17.470" CommentCount="6" />
  <row Id="25071" PostTypeId="2" ParentId="25056" CreationDate="2010-12-10T05:08:03.177" Score="5" ViewCount="" Body="&lt;p&gt;Since learning is your goal, and not writing programs &lt;em&gt;per se,&lt;/em&gt; you can't get any purer than &lt;a href=&quot;http://en.wikipedia.org/wiki/Lambda_calculus&quot; rel=&quot;nofollow&quot;&gt;Lambda Calculus&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lambda Calculus was around before computers were invented. It took several skilled logicians working on it to figure out how to do subtraction (for a while it was theorized that only addition and multiplication were possible).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning how booleans and numbers and &lt;code&gt;if&lt;/code&gt; can be invented from seemingly nothing won't put more gas in your tank, but it will make your tank much bigger.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-10T05:08:03.177" CommentCount="2" />
  <row Id="25072" PostTypeId="2" ParentId="25067" CreationDate="2010-12-10T05:20:31.507" Score="2" ViewCount="" Body="&lt;p&gt;&lt;em&gt;The Mythical Man Month&lt;/em&gt; by Fred Brooks has a lot of great what-not-to-dos. That and &lt;em&gt;Peopleware&lt;/em&gt; are the two that define software project management.&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-10T05:20:31.507" CommentCount="3" />
  <row Id="25073" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T05:41:35.587" Score="6" ViewCount="" Body="&lt;p&gt;Recursion is a tool a programmer can use to invoke a function call on itself. Fibonacci sequence is the textbook example of how recursion is used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most recursive code if not all can be expressed as iterative function, but its usually messy. Good examples of other recursive programs are Data Structures such as trees, binary search tree and even quicksort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recursion is used to make code less sloppy, keep in mind it is usually slower and requires more memory.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-12-10T05:41:35.587" CommunityOwnedDate="2011-03-11T22:52:58.993" CommentCount="3" />
  <row Id="25074" PostTypeId="2" ParentId="24910" CreationDate="2010-12-10T05:42:22.727" Score="0" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Microsoft&lt;/em&gt; doesn't use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why should we?&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-12-10T05:42:22.727" />
  <row Id="25075" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T06:33:07.520" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Terminate if exit condition reached&lt;/li&gt;&#xA;&lt;li&gt;do something to alter the state of things&lt;/li&gt;&#xA;&lt;li&gt;do the work all over starting with the present state of things&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Recursion is a very concise way to express something that has to be repeated until something is reached.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-12-10T06:33:07.520" CommunityOwnedDate="2011-03-11T22:52:58.993" />
  <row Id="25076" PostTypeId="2" ParentId="24910" CreationDate="2010-12-10T06:37:18.587" Score="0" ViewCount="" Body="&lt;p&gt;I cannot figure out why everybody wants to badmouth VSS. VSS is not distributed, and distributed version control is &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;better&lt;/li&gt;&#xA;&lt;li&gt;allows for non-distributed version control in practice&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Please read &lt;a href=&quot;http://hginit.com/&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-12-10T06:37:18.587" />
  <row Id="25079" PostTypeId="2" ParentId="14856" CreationDate="2010-12-10T07:05:43.653" Score="1" ViewCount="" Body="&lt;h2&gt;Databinding&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I hate it and love it. (Depends on complexity of the project)&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-10T07:05:43.653" CommunityOwnedDate="2010-12-10T07:05:43.653" CommentCount="1" />
  <row Id="25080" PostTypeId="2" ParentId="24997" CreationDate="2010-12-10T07:20:31.390" Score="0" ViewCount="" Body="&lt;p&gt;I believe that recursion is one of those tools that a programmer &lt;strong&gt;must&lt;/strong&gt; have to live. With recursion you can &quot;think&quot; your algorithms and solve them just the way you thought about it. But, I must warn you, everybody is talking about how pretty recursion is and how much simplicity brings to the code, regarding that I have a few things to say:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;First of all, thinking the &quot;recursive way&quot; of an algorithm is not easy. Building a function like a factorial(n!) or something like Hanoi Towers is just the tip of the iceberg, and reaching the bottom requires a looong time.&lt;/li&gt;&#xA;&lt;li&gt;Don't think that recursion brings simplicity only into your code, sometimes, the iterative way is ugly and messy, but is cost effective (look into the recursive solution of the Fibonacci problem)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Having those things in mind, learn recursion! it's funny, complex and it will smash your brain!, but you'll find yourself loving it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best of luck!&lt;/p&gt;&#xA;" OwnerUserId="8750" LastActivityDate="2010-12-10T07:20:31.390" />
  <row Id="25081" PostTypeId="2" ParentId="25067" CreationDate="2010-12-10T07:30:09.943" Score="1" ViewCount="" Body="&lt;p&gt;Read &quot;The first 90 days..&quot;.. This book is indespensable..&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-12-10T07:30:09.943" />
  <row Id="25082" PostTypeId="1" AcceptedAnswerId="25117" CreationDate="2010-12-10T07:46:57.877" Score="1" ViewCount="75" Body="&lt;p&gt;My boss just let me choose what I want to do: program core that will be used by other programmers, or program applied systems that will use that core. What are pros and cons of both? What career opportunity will each one give me? What is interesting in each one?&lt;/p&gt;&#xA;" OwnerUserId="5350" LastActivityDate="2010-12-10T09:52:40.997" Title="Applied vs fundamental programming" Tags="&lt;recommendations&gt;" AnswerCount="2" />
  <row Id="25083" PostTypeId="1" CreationDate="2010-12-10T07:51:29.923" Score="0" ViewCount="57" Body="&lt;p&gt;I've heard that colleges and universities receive rights to any work you submit to them. If I plan to submit code from an open source project of mine or of websites that I currently own, does my work become theirs?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would GNU licenses protect me from this? Are there other ways to protect your IP for your code?&lt;/p&gt;&#xA;" OwnerUserId="8020" LastActivityDate="2010-12-10T09:31:38.790" ClosedDate="2010-12-11T02:01:39.447" Title="Universities and Intellectual Property on Your Work" Tags="&lt;education&gt;&lt;license&gt;&lt;university&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="25084" PostTypeId="2" ParentId="25083" CreationDate="2010-12-10T07:59:33.587" Score="1" ViewCount="" Body="&lt;p&gt;Ask your university for their policy. Until you get their policy and read it, neither you nor anyone else can make a judgement.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-12-10T07:59:33.587" />
  <row Id="25085" PostTypeId="2" ParentId="25046" CreationDate="2010-12-10T08:03:11.383" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Does the average programmer understand recursion easily and thus one should use it with impunity, or does the average programmer not understand recursion very well and one should stay away from it for the sake of overall team productivity?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'd say that the average programmer understands recursion perfectly.  Indeed, if the programmer has done a degree in Computer Science or Software Engineering it is pretty much guaranteed.  Granted, there are some very below average programmers out there, but you don't want them on your team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this case, the distinction between an average and a good programmer is knowing &lt;em&gt;when&lt;/em&gt; to use recursion and when not to.  And that depends on the problem being solved AND the language being used to solve it.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;If you are using a functional programming language, recursion is a natural and efficient solution for a wide range of problems.  (Tail recursion optimization rules!)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you are using an OO or plain procedural language, recursion can be inefficient and can be problematic due to stack overflows.  So in some cases you would choose an iterative solution rather than a recursive one.  However, in other cases, the recursive solution is so much more simple and elegant that the (possibly more efficient) iterative solution would be the &quot;too clever&quot; one.  (For example, if the problem requires backtracking, building or walking trees / graphs, etc, recursion is often simpler.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-12-10T08:03:11.383" CommentCount="1" />
  <row Id="25086" PostTypeId="1" AcceptedAnswerId="25088" CreationDate="2010-12-10T08:07:18.443" Score="1" ViewCount="266" Body="&lt;p&gt;As developer it is hard to do development if you don’t have full access to your machine. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;How do you tackle hard IT policies?&lt;/li&gt;&#xA;&lt;li&gt;What is the worst IT policy that you ever have encountered?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-10T12:46:24.650" LastActivityDate="2010-12-10T13:30:38.337" ClosedDate="2010-12-15T17:44:16.427" Title="What is the worst IT policy that you ever have encountered and how to tackle them?" Tags="&lt;work-environment&gt;&lt;software-development&gt;&lt;it-policy&gt;" AnswerCount="6" />
  <row Id="25087" PostTypeId="1" AcceptedAnswerId="25094" CreationDate="2010-12-10T08:08:25.643" Score="7" ViewCount="489" Body="&lt;p&gt;I came across this link &lt;a href=&quot;http://en.wikipedia.org/wiki/Parkinson%27s_Law&quot; rel=&quot;nofollow&quot;&gt;Parkinson Law&lt;/a&gt; where it says like &quot;Work expands so as to fill the time available for its completion.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you agree with this? If yes, how do you enforce this with the people? In our case, if we ask the people to complete the task sooner and ask them to leave, some people they feel it as demotivate. What is your opinion to avoid the demotivate feel as well as complete &amp;amp; leave from work soon?&lt;/p&gt;&#xA;" OwnerUserId="9318" LastActivityDate="2010-12-10T17:45:38.697" Title="do you allow people to work late?" Tags="&lt;parkinson-law&gt;&lt;people-management&gt;" AnswerCount="10" CommentCount="1" FavoriteCount="2" />
  <row Id="25088" PostTypeId="2" ParentId="25086" CreationDate="2010-12-10T08:13:59.193" Score="2" ViewCount="" Body="&lt;p&gt;Well... we don't have, per IT policy, administrator rights, meaning no way to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;install some software&lt;/li&gt;&#xA;&lt;li&gt;register/unregister dlls&lt;/li&gt;&#xA;&lt;li&gt;start/stop services&lt;/li&gt;&#xA;&lt;li&gt;change HKLM registry entries&lt;/li&gt;&#xA;&lt;li&gt;...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But that also forced us to come up with a set of portable application for our day-to-day development, which ease the propagation of standards (since we are packaging those tools ourselves with the right settings)&lt;/p&gt;&#xA;" OwnerUserId="3915" LastActivityDate="2010-12-10T08:13:59.193" />
  <row Id="25089" PostTypeId="2" ParentId="25063" CreationDate="2010-12-10T08:18:03.160" Score="2" ViewCount="" Body="&lt;p&gt;Having Google - or rather the web and a search engine - is a lot better than not having it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However in response to &quot;Is it good to google all the time?&quot; &lt;strong&gt;I don't think so&lt;/strong&gt; - but then again I'm relatively ancient in Computing terms (graduated in '82) and perhaps my google-fu is not the greatest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm particularly unhappy with the notion that: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Google however is great as a replacement for paper books, manuals, everything really&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;because it isn't (well not unless we renamed &quot;the web&quot; to &quot;google&quot; whilst I was asleep). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is certainly true that there is a great deal of information on the web and that a great deal of that is either a copy of or a replacement for paper books, manuals etc. It is also true that google (or bing), can be (though is not always) an excellent means to find content on the web. Problem is that there is also a lot on the web that is dated (or refers to the wrong version) or is just plain wrong and, in the case of many of the questions I ask, a lot of asking and very little answering (and those questions and less than helpful discussion threads are echoed all over the place by sites that think it helpful - or profitable - to endlessly duplicate other sites).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think there are two keys for me:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You should start with the manual - or, since those often don't exist any more, the specific help for the tools your using (local or remote). This usually covers the basics. Only when that fails do you reach for your search engine (and even then you might - probably should - have specific sites to visit first - or target to search first). Of course the manuals don't have all the answers - but for the more &quot;interesting&quot; questions finding a &lt;em&gt;good&lt;/em&gt; answer on the web can be a challenge&lt;/li&gt;&#xA;&lt;li&gt;One still needs to read books - they give you depth and insight and show you things you won't find hunting issue specific answers. Even turning the pages of a manual or browsing the VS2010 help web pages when trying to find an answer will put things in front of you that you might not otherwise have seen (and would likely dismiss as not being relevant in a web search).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;To be clear - I'm not against using google to find information on the web - I do so all the time - its the notion that its the first place one starts that worries me.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-12-10T08:18:03.160" CommentCount="2" />
  <row Id="25091" PostTypeId="1" AcceptedAnswerId="25126" CreationDate="2010-12-10T08:27:33.817" Score="6" ViewCount="366" Body="&lt;p&gt;No matter free or commercial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please give &lt;strong&gt;one&lt;/strong&gt; add-in per answer.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-10T13:31:34.950" Title="Which are Visual Studio 2010 Add-Ins that every developer should know about?" Tags="&lt;visual-studio-2010&gt;&lt;plugins&gt;" AnswerCount="9" CommentCount="3" FavoriteCount="3" />
  <row Id="25092" PostTypeId="1" AcceptedAnswerId="25514" CreationDate="2010-12-10T08:28:56.187" Score="4" ViewCount="282" Body="&lt;p&gt;We will have a team out in some period of time like every 6 month once happens and spend some time in restaurant and goes for some movies. Also, we do meet with each team in monthly once and just discuss with their completed items and some snacks and etc. Its really boring since we follow this for everytime. Without spending more money, need to have a fun and joy activities which would help to build the team and encourage them to interact with other teams too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please share your thoughts on this.&lt;/p&gt;&#xA;" OwnerUserId="9318" LastEditorUserId="9318" LastEditorDisplayName="" LastEditDate="2010-12-16T04:03:36.867" LastActivityDate="2010-12-16T04:03:36.867" Title="Interesting team building activity" Tags="&lt;management&gt;&lt;team-building&gt;&lt;activity&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="4" />
  <row Id="25093" PostTypeId="1" CreationDate="2010-12-10T08:34:07.430" Score="5" ViewCount="279" Body="&lt;p&gt;Hi there everyone!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was a &lt;a href=&quot;http://code.google.com/soc&quot; rel=&quot;nofollow&quot;&gt;Google Summer of Code&lt;/a&gt; student this year and successfully completed my project. It was an awesome learning experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just wondering, from an industry point of view - how is or how well is a Summer of Code experience viewed? I mean, if you were going to hire me, would it mean anything to you? I am just asking this since doing SoC != an internship. As a SoC student, I was a independent contractor for Google. Sure, there was proper development, but I am interested in looking at it from the experience you guys have here. Would you prefer me? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry for not revealing my name; I'd hope you understand.&lt;/p&gt;&#xA;" OwnerUserId="9427" LastActivityDate="2010-12-19T13:03:37.293" Title="Google Summer of Code Experience" Tags="&lt;experience&gt;&lt;programming&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="25094" PostTypeId="2" ParentId="25087" CreationDate="2010-12-10T08:36:57.563" Score="24" ViewCount="" Body="&lt;p&gt;As a programmer, all I want is a deadline. &quot;Has to be finished by Friday, 13th&quot;. That's all I want, that's all I need to know. I don't like it when somebody tells me how many hours to spend, or when. If I have a great day, when code pours out like water from a waterfall, I want to be able to work late. If not, I want to be able to leave early.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-10T08:36:57.563" CommentCount="2" />
  <row Id="25096" PostTypeId="2" ParentId="25093" CreationDate="2010-12-10T08:39:46.327" Score="2" ViewCount="" Body="&lt;p&gt;I think this is a great reference and if I was to hire someone, I would prefer a SoC student over someone who had an internship, all other qualities being equivalent.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-10T08:39:46.327" CommentCount="2" />
  <row Id="25097" PostTypeId="2" ParentId="25086" CreationDate="2010-12-10T08:42:55.423" Score="1" ViewCount="" Body="&lt;p&gt;Worst IT policy I've known:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All databases needed to have a name that was exactly 5 characters long. One character for the type of database (P = production, T = testing, ...), two for the customer the database was for (with an excel file mapping almost arbitrary codes to customers), and two for the software version the database was for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When asked for the reason, the answer was &quot;I once saw this policy at a big company, and I assume they know better than us how to manage databases, so we're sticking to this policy&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually bad policies are a sociology problem. It's not the processes that are at fault, it's the people that create and enforce them. Solve the human problem first, and then the policy problems will follow automatically.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-12-10T08:42:55.423" CommentCount="2" />
  <row Id="25098" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T08:47:50.407" Score="-5" ViewCount="" Body="&lt;h2&gt;Consider it done.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;To introduce recursion THIS is my theory. It's a bit like a class lecture. For learning to use recursion-&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Consider the function has been implemented already. So, you can call the function without any hesitation. But one point to note is, while defining the function, you cannot supply the same arguments when you are calling itself within. For example, if your supplied argument is n, you cannot call itself with argument n. It may be n-1, n-2 or n/2. But not n.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;In first point, I have told what you can do, not you what you have to do. Now I am telling that. Now design your function keeping in mind that you can call this function with other (usually smaller) arguments. So, call and use this function with other necessary things to complete the task. For example, to define a function for sorting n elements, you can call the function recursively to sort first n-1 elements and then put the last element(which is not among sorted portion) at the exact position by some checking. Thus the sorting is done! But there is another thing to do- error prevention.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The last thing is handling the erroneous situations. Like when you are calling the function recursively within itself, usually you are reducing some number. But for some values of arguments, those reduction become invalid. Say you are getting n and supplying n-1 in the recursive function. Then if the input is 1, the inner call may not work as it will try to supply 0(it's just an example, you have to determine the boundaries for your circumstance). So, you have do filter this situations with if-else condition checking and handle them. Most of the time the handling is VERY EASY. Sometimes you just have to skip the recursive call, nothing else. For example, while sorting, you can just skip the recursive call to sort an array when it's having only one element. Because it is already sorted.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And the recursion magic is done! Now study how the function-calling is done and functions are stacked to manage from some book and you will know HOW this really COOL MAGIC is working.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, try to solve the famous &quot;Tower of Hanoi&quot; following this three steps all by yourself. Hope you will enjoy.&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="963" LastEditorDisplayName="" LastEditDate="2010-12-11T09:59:46.527" LastActivityDate="2010-12-11T09:59:46.527" CommunityOwnedDate="2011-03-11T22:52:58.993" CommentCount="3" />
  <row Id="25100" PostTypeId="1" CreationDate="2010-12-10T08:53:10.540" Score="11" ViewCount="1233" Body="&lt;p&gt;Who has the greatest impact/influence on software developers today. The &lt;a href=&quot;http://programmers.stackexchange.com/questions/1202/who-is-the-greatest-and-most-influential-programmer-of-all-time&quot;&gt;other question&lt;/a&gt; asked for &lt;strong&gt;all time&lt;/strong&gt; achievers, and wasn't too clear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;notes&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Please do one person per Answer.&lt;/li&gt;&#xA;&lt;li&gt;This person has to be &lt;strong&gt;currently&lt;/strong&gt; active, so please refrain from &lt;em&gt;he saved a million lives in 1983!&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Please limit your votes to whoever you think would be on the &lt;strong&gt;top 10&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Consider adding the reason for you selection (or your vote) in the &lt;strong&gt;Comments&lt;/strong&gt;, not the Answer itself, since other people might recognize her for achievements different to yours.&lt;/li&gt;&#xA;&lt;li&gt;This &lt;strong&gt;doesn't have to be&lt;/strong&gt; a practicing software developer.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4032" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-02-18T08:48:21.487" LastActivityDate="2011-02-18T08:48:21.487" CommunityOwnedDate="2010-12-11T00:32:32.370" ClosedDate="2010-12-17T22:20:16.677" Title="Which individuals are having the greatest impact on software developers today?" Tags="&lt;software-development&gt;" AnswerCount="36" CommentCount="6" FavoriteCount="5" />
  <row Id="25101" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T08:58:47.007" Score="6" ViewCount="" Body="&lt;h2&gt;&lt;strong&gt;Larry Ellison&lt;/strong&gt;.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;CEO of Oracle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;His actions will decide the future of Java, maybe Android too, and thus affect many software developers.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="4032" LastEditorDisplayName="" LastEditDate="2010-12-21T21:59:00.570" LastActivityDate="2010-12-21T21:59:00.570" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="10" />
  <row Id="25102" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T08:59:06.473" Score="20" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://martinfowler.com/&quot; rel=&quot;nofollow&quot;&gt;Martin Fowler&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Big thinker&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Author of &quot;Patterns of Enterprise Application Architecture&quot;, &quot;Domain Specific Languages&quot; and many other ground breaking works that I refer to on a near-daily basis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Useful links:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://martinfowler.com/articles/enterprisePatterns.html&quot; rel=&quot;nofollow&quot;&gt;Enterprise patterns&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://martinfowler.com/articles/languageWorkbench.html&quot; rel=&quot;nofollow&quot;&gt;Domain specific languages&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://martinfowler.com/articles.html&quot; rel=&quot;nofollow&quot;&gt;Blog article summary&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-10T08:59:06.473" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="3" />
  <row Id="25103" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T09:00:02.373" Score="-5" ViewCount="" Body="&lt;h2&gt;&lt;strong&gt;Julian Assange&lt;/strong&gt;.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Definitely having the greatest effect on developers &lt;em&gt;today.&lt;/em&gt;  Will effect international law, government actions, and may even stop your visa/mastercard payment going through .&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently this answer has received 5 votes for and 5 against. Whatever you say about him, he's certainly divisive. I wonder if the voting is correlated to nationality ?&#xA;&lt;strong&gt;(edit)&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="4032" LastEditorDisplayName="" LastEditDate="2010-12-11T04:03:54.407" LastActivityDate="2010-12-11T04:03:54.407" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="23" />
  <row Id="25104" PostTypeId="2" ParentId="25092" CreationDate="2010-12-10T09:02:55.267" Score="1" ViewCount="" Body="&lt;p&gt;There are plenty of fun exercises that can be done during such occasions that can help towards team building. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some examples (these are random suggestions just off my mind, you can think of better ones if you get an idea from the below):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Write down names of some famous movie directors like Steven Speilberg etc on chits. Have repeated versions of each name. Distribute the folded chits randomly among members. Then call out each name and all the people who got a particular name will assemble together. So if you had 4 director names, this would ensure you have 4 teams now. Each team must collaborate and come up with a small good description of the director and his movies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Write down some personality traits on chits, say, &quot;has brown hair&quot; or &quot;loves color coordinated outfits&quot; or &quot;has blue eyes&quot; and distribute again randomly. The people who get the chits must identify the person whose traits are described in the chit. This exercise would give the team a good chance to know more about each other, notice things they hadn't noticed before. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;These sites may help:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://ezinearticles.com/?Our-Top-Ten-Team-Building-Exercises&amp;amp;id=955336&quot; rel=&quot;nofollow&quot;&gt;http://ezinearticles.com/?Our-Top-Ten-Team-Building-Exercises&amp;amp;id=955336&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://wilderdom.com/games/InitiativeGames.html&quot; rel=&quot;nofollow&quot;&gt;http://wilderdom.com/games/InitiativeGames.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-12-10T09:02:55.267" />
  <row Id="25105" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T09:05:30.277" Score="16" ViewCount="" Body="&lt;h1&gt;Steve Jobs&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Without him very few would program in Objective-C, and focus would be technical, not user-oriented.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-10T09:05:30.277" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="3" />
  <row Id="25106" PostTypeId="2" ParentId="24910" CreationDate="2010-12-10T09:06:31.257" Score="0" ViewCount="" Body="&lt;p&gt;Not only do you suffer from the problem of potential corruption of source (which should be argument enough for management to replace it), but you also have to live with awkward backup  and an inability to work effectively as a team on different streams of work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find another SCM (any other one) and look at how easy branching and merging can be.  Think about those times when you've had to copy files out of your VSS solution and hold them somewhere else while you went back to fix a bug on 'production' code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For kicks, just install GIT - point it at your VSS files and see how easy it is for &lt;em&gt;GASP&lt;/em&gt; two programmers to work on different parts of the same file AT THE SAME TIME, and then have the software intelligently merge your changes...  SCM tools should be more than just source backup.&lt;/p&gt;&#xA;" OwnerUserId="9428" LastActivityDate="2010-12-10T09:06:31.257" />
  <row Id="25107" PostTypeId="2" ParentId="25086" CreationDate="2010-12-10T09:07:34.427" Score="0" ViewCount="" Body="&lt;p&gt;Surprisingly, the worst policies I've ever encountered were not too strict, but too lax instead. Hardly any policies at all, with developers doing all kind of stupid things. E.g. creating and editing large stored procedures directly with TOAD in the database, without ever saving a source file (no versioning, obviously). No regular backups. No version control. Deployment of insufficiently tested new versions. And don't get me started about naming conventions, code style and similar stuff.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-10T09:07:34.427" />
  <row Id="25108" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T09:08:09.523" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Tom DeMarco&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.systemsguild.com/tdm.htm&quot; rel=&quot;nofollow&quot;&gt;http://www.systemsguild.com/tdm.htm&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Tom_DeMarco&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Tom_DeMarco&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2917" LastActivityDate="2010-12-10T09:08:09.523" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="4" />
  <row Id="25109" PostTypeId="2" ParentId="25087" CreationDate="2010-12-10T09:14:28.467" Score="1" ViewCount="" Body="&lt;p&gt;This depends on your company policy I guess. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some companies have scheduled minimum hours to be put in each day, so they would be expanding work to fill their day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why would someone feel demotivated if asked to leave early - hey I would love days like those. Dont they have families or homes to go to?&lt;/p&gt;&#xA;" OwnerUserId="1681" LastActivityDate="2010-12-10T09:14:28.467" />
  <row Id="25110" PostTypeId="2" ParentId="25086" CreationDate="2010-12-10T09:14:36.740" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Don't worry about writing decent code&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And also, the live Database/server has a completely different structure to the development set up; to be fair this is more of an oversight than a policy. &lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-12-10T09:14:36.740" />
  <row Id="25111" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T09:20:23.023" Score="0" ViewCount="" Body="&lt;p&gt;A nice explanaition of recursion is literally 'an action that reoccurs from within itself&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider a painter painting a wall, it's recursive because the action is &quot;paint a strip from ceiling to floor than scoot over a little to the right and (paint a strip from ceiling to floor than scoot over a little to the right and (paint a strip from ceiling to floor than scoot over a little to the right and ( etc )))&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;His paint() function calls itself over and over again to make up his bigger paint_wall() function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hopefully this poor painter has some kind of stop condition :)&lt;/p&gt;&#xA;" OwnerUserId="9429" LastActivityDate="2010-12-10T09:20:23.023" CommunityOwnedDate="2011-03-11T22:52:58.993" CommentCount="2" />
  <row Id="25112" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T09:28:48.220" Score="0" ViewCount="" Body="&lt;p&gt;Recursion can be used to solve a lot of counting problems. For example, say you have a group of n people at a party (n &gt; 1), and everyone shakes everyone else's hand exactly once. How many handshakes take place? You may know that the solution is C(n,2) = n(n-1)/2, but you can solve recursively as follows:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suppose there are just two people. Then (by inspection) the answer is obviously 1.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suppose you have three people. Single out one person, and note that he/she shakes hands with two other people. After that you have to count just the handshakes between the other two people. We already did that just now, and it is 1. So the answer is 2 + 1 = 3.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suppose you have n people. Following the same logic as before, it is (n-1) + (number of handshakes between n-1 people). Expanding, we get (n-1) + (n-2) + ... + 1.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Expressed as a recursive function,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;f(2) = 1&lt;br&gt;&#xA;f(n) = n-1 + f(n-1), n &gt; 2&lt;/p&gt;&#xA;" OwnerUserId="9430" LastEditorUserId="9430" LastEditorDisplayName="" LastEditDate="2010-12-10T10:40:56.987" LastActivityDate="2010-12-10T10:40:56.987" CommunityOwnedDate="2011-03-11T22:52:58.993" />
  <row Id="25113" PostTypeId="2" ParentId="25083" CreationDate="2010-12-10T09:31:38.790" Score="0" ViewCount="" Body="&lt;p&gt;Generally, if it is work you are submitting for a course - it should probably be specifically created for the purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bear in mind in some countries, as in the world of work, many universities can lay claim to intellectual property you create while you are with them - even when done out of hours.  Very much depends on your individual contract with them.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-10T09:31:38.790" />
  <row Id="25114" PostTypeId="2" ParentId="25082" CreationDate="2010-12-10T09:31:42.317" Score="1" ViewCount="" Body="&lt;p&gt;programming a core is more fun and will put u more in contact with your colleges,&#xA;although programming applications is a lot less theoretically&lt;/p&gt;&#xA;&#xA;&lt;p&gt;what are you more interested in ?&#xA;the programming challenge ( defining good structures, caching errors ect)&#xA;converting the costumers will to software &lt;/p&gt;&#xA;" OwnerUserId="9431" LastActivityDate="2010-12-10T09:31:42.317" CommentCount="1" />
  <row Id="25115" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T09:50:57.927" Score="11" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Scott_Guthrie&quot; rel=&quot;nofollow&quot;&gt;Scott Guthrie&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I think he has impact on every single &lt;strike&gt;.net&lt;/strike&gt; &lt;strong&gt;asp.net and silverlight&lt;/strong&gt; developer today. Directly or indirectly.&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="13" LastEditorDisplayName="" LastEditDate="2010-12-17T18:03:08.410" LastActivityDate="2010-12-17T18:03:08.410" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="1" />
  <row Id="25116" PostTypeId="1" CreationDate="2010-12-10T09:52:02.823" Score="6" ViewCount="457" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://wicket.apache.org/&quot; rel=&quot;nofollow&quot;&gt;Wicket&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://click.apache.org/&quot; rel=&quot;nofollow&quot;&gt;Click&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://code.google.com/webtoolkit/&quot; rel=&quot;nofollow&quot;&gt;GWT&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://vaadin.com/home&quot; rel=&quot;nofollow&quot;&gt;Vaadin&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As I understand them, these frameworks all enable gui components to be created using java (with all its benefits) without having to do lots of html/javascript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As well as considering the technical factors, I am also interested to hear if any are gaining popularity fast. Is a particular framework is becoming the &lt;em&gt;leader of the pack&lt;/em&gt;, this will also effect the decision.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-12-10T10:27:20.517" LastActivityDate="2011-01-27T21:31:59.740" Title="Which Java based web ui framework to use ?" Tags="&lt;java&gt;&lt;web-development&gt;&lt;javascript&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="3" />
  <row Id="25117" PostTypeId="2" ParentId="25082" CreationDate="2010-12-10T09:52:40.997" Score="2" ViewCount="" Body="&lt;p&gt;'Applied' programming usually means that you'll have to deal with customers (instead of users), and that you'll probably have to deal with more pressure. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another difference arises if your 'applied' programming job does not involve publishing an API.  You will then have more freedom to refactor the code, change it in various ways, than if you have to maintain the compatibility between versions.  'Core' programming, on this aspect, will mean you have to design much more carefully.&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-12-10T09:52:40.997" />
  <row Id="25118" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T09:57:42.103" Score="1" ViewCount="" Body="&lt;p&gt;The members of the &lt;a href=&quot;http://www.open-std.org/jtc1/sc22/wg21/&quot; rel=&quot;nofollow&quot;&gt;ISO/IEC JTC1/SC22/WG21&lt;/a&gt;, the C++ standards committee.&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-12-10T09:57:42.103" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="3" />
  <row Id="25119" PostTypeId="2" ParentId="25087" CreationDate="2010-12-10T09:59:28.160" Score="0" ViewCount="" Body="&lt;p&gt;On one side, good software needs a lot of communication between those who make it. So you want &lt;strong&gt;&lt;em&gt;everybody to be available to communicate with&lt;/em&gt;&lt;/strong&gt; for as long as possible each day.&lt;br&gt;&#xA;On the other side programmers are programming best when they are &lt;strong&gt;&lt;em&gt;left alone&lt;/em&gt;&lt;/strong&gt;, so you need to leave them room to be alone whenever they feel like it. Often, evenings are a good time to be left alone, but will make people turn in late and/or tired the next morning. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good manager is one who balances these two so that their team is most productive. &lt;/p&gt;&#xA;" OwnerUserId="1512" LastActivityDate="2010-12-10T09:59:28.160" />
  <row Id="25120" PostTypeId="2" ParentId="25087" CreationDate="2010-12-10T10:02:16.507" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;On working late:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a fan of the XP approach - that people should work 40 hours a week.  I think 40 hours of focused work combined with time for other interests, friends and sleep is more productive than 60 - 70 hours and nothing else.  There are occasional instances where we ask for weekend work and the like but it's two or three times a year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, programmers are adults and I let them manage their own time (so long as they're doing their minimum contracted hours).  I've politely suggested to people that they really don't need to be working late when I'm getting mails at 11pm and there's no big deadline but generally it's up to them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;On Parkinson's Law:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is oft quoted but I'm not sure too many people have really looked at it's origins and whether it's really applicable.  The phenomenon was primarily observed was the British civil service in 1958 and then in government organisations since then and related to environments where empire building and a lack of urgency were common place.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I'm not sure that that will really tell us too much about the workings of modern IT functions where there tends to be a drive for efficiency and continual pressure and deadlines which combat much of what it describes.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's probably more true in very large companies to an extent, where the necessary bureaucracy can take hold, but I don't think the motivations it talks about (essentially empire building) are things that programmers are driven by and therefore it's impact at the level where work is actually done should be minimal.  Of course projects may become mired at the analysis and management levels where those factors are applicable but that's a different thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I don't really buy it for most IT organisations as it's originally formulated.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think there are problems which lead to something which &lt;em&gt;looks like&lt;/em&gt; Parkinson's law (essentially people are given tasks which are too large, don't apply themselves at the beginning thinking they have plenty of time and then have to work like crazy at the end right up to the last minute unnecessarily), but that largely comes down to poor management (by the PM who should have set interim deadlines) and time management (by the programmer who should have buckled down at the start).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;  At Pierre's prompting this summary from what Peopleware says about Parkinson's Law from &lt;a href=&quot;http://javatroopers.com/Peopleware.html#Chapter_5&quot; rel=&quot;nofollow&quot;&gt;http://javatroopers.com/Peopleware.html#Chapter_5&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Newton's Laws have stood the test of some 200 years of subsequent study. Parkinson was a humorist, not a scientist. His &quot;law&quot; caught on because it was funny, not because it was axiomatic. His examples were observed in a fictitious British government bureaucracy, where they give little job-derived satisfaction. The simple truth is: &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Parkinson's Law almost certainly doesn't apply to your people.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Their lives are too short for loafing on the job, as that would delay the satisfaction they hanker for. They are as eager as managers to get the job done, provided they don't have to compromise their standard of quality. &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;You Wouldn't Be Saying This If You'd Ever Met Our Herb&quot; - In a healthy work environment, the reasons that some people don't perform are lack of competence, lack fo confidence, and lack of affiliation with others on the project and the project goals. They are overwhelmed by the diffculty of the work, pressure won't help, reassignment, possibly to another company might. Treating your people as Parkinsonian workers certainly won't work, it can only demean and demotivate them.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-10T13:12:27.847" LastActivityDate="2010-12-10T13:12:27.847" CommentCount="4" />
  <row Id="25121" PostTypeId="2" ParentId="25091" CreationDate="2010-12-10T10:03:30.803" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.wholetomato.com/default.asp&quot; rel=&quot;nofollow&quot;&gt;Visual Assist&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-12-10T10:03:30.803" />
  <row Id="25122" PostTypeId="2" ParentId="25087" CreationDate="2010-12-10T10:03:46.653" Score="4" ViewCount="" Body="&lt;p&gt;The real solution is to make sure that your deadlines are sensible in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The setting of deadlines should be the result of a conversation between the customer (when they want the functionality) and the developer (when they think it can be delivered by). Your role as a manager/sales person is to guide that conversation and get both sides to agree to a compromise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you get it right then you won't need to ask your developers to work late to get the job finished. Very occasionally you might get to release your product early because you underestimated - but that's really just a chance to get the next items on the list done!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There will be times when people either feel the need or have to work late to meet a deadline, but these should be few and far between.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, we don't live in an ideal world so these times are more often than we would like.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-12-10T15:38:01.363" LastActivityDate="2010-12-10T15:38:01.363" CommentCount="3" />
  <row Id="25123" PostTypeId="1" CreationDate="2010-12-10T10:07:50.750" Score="1" ViewCount="100" Body="&lt;p&gt;For the first time, our team is taking a rigorous approach to technical code QA.  We identify work to QA by picking out top level classes and QA'ing it and everything it calls or uses below it (and what they call/use etc.).  I reckon our QA code coverage to be reasonably close to 100% and its an eye opener for me in terms of improvements both in code and design as well as catching bugs early.  I'll definetly be promoting this in the future, but wondered how other teams approach techincal code QA.  Do you have a rigorous approach?  Do you aim to QA everything?  Does one or two people tend to do it or is it spread evenly about the team?  What do you look for when QA'ing?  Any thoughts appreciated!&lt;/p&gt;&#xA;" OwnerUserId="5319" LastActivityDate="2010-12-10T10:44:15.940" Title="How does your team approach technical code QA?" Tags="&lt;code-reviews&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="25124" PostTypeId="2" ParentId="25087" CreationDate="2010-12-10T10:08:56.137" Score="2" ViewCount="" Body="&lt;p&gt;Let people estimate the tasks (preferably in a group, so that they can come up with a consensus).   This will allow you to set a reasonable deadline.  Then leave them alone...&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-12-10T10:08:56.137" />
  <row Id="25125" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T10:13:47.227" Score="8" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Mark_Shuttleworth&quot; rel=&quot;nofollow&quot;&gt;Mark Shuttleworth&lt;/a&gt;&lt;/h2&gt;&#xA;" OwnerUserId="4032" LastEditorUserId="4032" LastEditorDisplayName="" LastEditDate="2010-12-10T12:24:11.890" LastActivityDate="2010-12-10T12:24:11.890" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="6" />
  <row Id="25126" PostTypeId="2" ParentId="25091" CreationDate="2010-12-10T10:15:27.350" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.jetbrains.com/resharper/&quot; rel=&quot;nofollow&quot; title=&quot;ReSharper&quot;&gt;ReSharper&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3817" LastActivityDate="2010-12-10T10:15:27.350" CommentCount="2" />
  <row Id="25127" PostTypeId="2" ParentId="25116" CreationDate="2010-12-10T10:17:15.733" Score="2" ViewCount="" Body="&lt;p&gt;1.)  Have a look at Matt Raible's comparison chart and then as he advises - take a hefty grain of salt to go with it.  In particular have a look at the different types of requirements (functional and non-functional) that he measures.  Which of those are more important to you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2.)  Pick 2-3 that seem to fit your requirements best and prototype some pages/UI/Ux/workflow with those.  Probably spend 2-3 days on each as a minimum (1 week if you can get away with it)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then decide :)&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-10T10:17:15.733" CommentCount="4" />
  <row Id="25128" PostTypeId="2" ParentId="25123" CreationDate="2010-12-10T10:22:16.980" Score="6" ViewCount="" Body="&lt;p&gt;There's a couple of things we try to do:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1.)  Code reviews can be too late.  How about some pair/peer design, peer/pair programming to begin with?!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2.)  Use static code tool analysis tools and checkstyle tools to get rid of the distracting fluff &lt;em&gt;before&lt;/em&gt; you review what's really important.  Much like reviewing an article in English, if there's a ton of spelling and grammar issues, then it's hard to review the real content.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3.)  Come up with some agreed broad idioms that you want your code to follow, e.g:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Code to interfaces&lt;/li&gt;&#xA;&lt;li&gt;SRP (Single Responsibility Principle)&lt;/li&gt;&#xA;&lt;li&gt;No re-inventing the wheel&lt;/li&gt;&#xA;&lt;li&gt;Dependency Injection of Factory lookups&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That way you can build up a list of neutrally worded design code standards that you try to adhere to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4.)  Be darn sure to make it an encouraging and neutrally worded environment, you're playing with people's fragile egos here :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I like the concept and I think we can improve it by X&quot; is better than &quot;That's just plain wrong.&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2010-12-10T10:44:15.940" LastActivityDate="2010-12-10T10:44:15.940" CommentCount="4" />
  <row Id="25129" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T10:28:12.757" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Recursive programming is the process of progressively reducing a problem in to easier to solve versions of itself.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every recursive function tends to:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;take a list to process, or some other structure, or problem domain&lt;/li&gt;&#xA;&lt;li&gt;deal with the current point/step&lt;/li&gt;&#xA;&lt;li&gt;call itself on the remainder(s)/subdomain(s)&lt;/li&gt;&#xA;&lt;li&gt;combine or use the results of the subdomain work&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;When step 2 is before 3, and when step 4 is trivial (a concatenation, sum, or nothing) this enables &lt;a href=&quot;http://en.wikipedia.org/wiki/Tail_recursion&quot; rel=&quot;nofollow&quot;&gt;tail recursion&lt;/a&gt;.  Step 2 often must come after step 3, as the results from the subdomain(s) of the problem may be needed in order to complete the current step.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take the traversal of a straight forward binary tree.  The traversal can be made in pre-order, in-order, or post-order, depending on what is required.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;   B&#xA;A     C&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Pre-order: B A C&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;traverse(tree):&#xA;    visit the node&#xA;    traverse(left)&#xA;    traverse(right)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;In-order: A B C&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;traverse(tree):&#xA;    traverse(left)&#xA;    visit the node&#xA;    traverse(right)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Post-order: A C B&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;traverse(tree):&#xA;    traverse(left)&#xA;    traverse(right)&#xA;    visit the node&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Very many recursive problems are specific cases of a &lt;a href=&quot;http://en.wikipedia.org/wiki/Map_%28higher-order_function%29&quot; rel=&quot;nofollow&quot;&gt;map&lt;/a&gt; operation, or a &lt;a href=&quot;http://en.wikipedia.org/wiki/Fold_%28higher-order_function%29&quot; rel=&quot;nofollow&quot;&gt;fold&lt;/a&gt; - understanding just these two operations can lead to significant understanding of good use-cases for recursion.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-10T10:28:12.757" CommunityOwnedDate="2011-03-11T22:52:58.993" CommentCount="3" />
  <row Id="25130" PostTypeId="2" ParentId="7592" CreationDate="2010-12-10T10:29:27.877" Score="1" ViewCount="" Body="&lt;p&gt;I install not one but several add-ins immediately:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/4b92b6ad-f563-4705-8f7b-7f85ba3cc6bb&quot; rel=&quot;nofollow&quot;&gt;Highlight all occurrences of selected word&lt;/a&gt; - works not only in C#, but for Javascript and HTML too. Very convenient to find similar vars in context&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/0696ad60-1c68-4b2a-9646-4b5f4f8f2e06&quot; rel=&quot;nofollow&quot;&gt;JSEnhancements&lt;/a&gt; - Very efficient when you work with big js files. Unfortunately, it cannot save outlining, but look stable&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef&quot; rel=&quot;nofollow&quot;&gt;Productivity Power Tools&lt;/a&gt; - for their &quot;Solution Navigator&quot;, Tabs enhancements and changed &quot;Add Reference&quot; dialog&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/d491911d-97f3-4cf6-87b0-6a2882120acf&quot; rel=&quot;nofollow&quot;&gt;VSCommands 2010&lt;/a&gt; - for their &quot;Collapse All&quot; and &quot;Group Items&quot; features&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/60297607-5fd4-4da4-97e1-3715e90c1a23&quot; rel=&quot;nofollow&quot;&gt;tangible T4 Editor&lt;/a&gt; - for convenient edit of T4 (*.tt) files&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;A big advantage of all these add-ins is that these all are free of charge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And ReSharper as well, but it is mentioned by &lt;strong&gt;FinnNk&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-12-10T10:29:27.877" />
  <row Id="25131" PostTypeId="1" AcceptedAnswerId="25179" CreationDate="2010-12-10T10:34:04.033" Score="18" ViewCount="435" Body="&lt;p&gt;So far I heard about :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Lambda calculus&lt;/li&gt;&#xA;&lt;li&gt;Lambda programming&lt;/li&gt;&#xA;&lt;li&gt;Lambda expressions&lt;/li&gt;&#xA;&lt;li&gt;Lambda functions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Which all seems to be related to functional programming...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apparently it will be integrated into C++1x, so I might better understand it now:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/C%2B%2B0x#Lambda_functions_and_expressions&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/C%2B%2B0x#Lambda_functions_and_expressions&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can somebody defines briefly what are lambdas things and give an where it can be useful ?&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2010-12-10T16:17:58.487" Title="Can somebody explain me what are lambda things in programming ?" Tags="&lt;c++&gt;&lt;functional-programming&gt;&lt;lambda&gt;" AnswerCount="2" CommentCount="5" FavoriteCount="4" />
  <row Id="25132" PostTypeId="2" ParentId="25067" CreationDate="2010-12-10T10:43:11.213" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1556159005&quot; rel=&quot;nofollow&quot;&gt;Rapid Development&lt;/a&gt; by Steve McConnell.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason I go for this over PeopleWare is that there are a few more things in here you might actually be able to implement as a team leader.  When you're a team leader (with the lack of clout that normally comes with) much of PeopleWare is largely aspirational as you're not going to be able to significantly influence working environment, salaries and recruitment and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess it depends on whether you're looking for something on development process or on management and leadership though.  While I've not read it I like the look of The First 90 Days which someone has recommended.  Alternatively I quite like &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0425098478&quot; rel=&quot;nofollow&quot;&gt;The One Minute Manager&lt;/a&gt; though plenty have issues with it (largely that it's told as a story and that it's content is obvious - which I agree with but we frequently miss the obvious so reminding ourselves from time to time is no bad thing and whatever you think of it it is at least very short).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-10T10:49:12.610" LastActivityDate="2010-12-10T10:49:12.610" CommentCount="2" />
  <row Id="25134" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T10:44:44.200" Score="3" ViewCount="" Body="&lt;p&gt;The best example that I would point you to is C Programming Language by K &amp;amp; R. In that book (and I am quoting from memory), the entry in index page for recursion (alone) lists the actual page where they talk about recursion and the index page as well. &lt;/p&gt;&#xA;" OwnerUserId="5070" LastActivityDate="2010-12-10T10:44:44.200" CommunityOwnedDate="2011-03-11T22:52:58.993" CommentCount="6" />
  <row Id="25135" PostTypeId="1" AcceptedAnswerId="25138" CreationDate="2010-12-10T10:51:38.740" Score="16" ViewCount="1232" Body="&lt;p&gt;If a coleague in your team is planning to quit his job and this may cause bad influence in the current software maintainance in your company, would you notify your boss?&lt;/p&gt;&#xA;" OwnerUserId="5934" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-10T12:31:03.263" LastActivityDate="2010-12-11T05:24:00.013" Title="If your workmate is quitting his job, would you notify your boss?" Tags="&lt;ethics&gt;" AnswerCount="11" CommentCount="6" FavoriteCount="2" />
  <row Id="25136" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T10:51:45.010" Score="19" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/q/25052/131&quot;&gt;This question&lt;/a&gt; offers a nice example. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-10T10:51:45.010" CommunityOwnedDate="2011-03-11T22:52:58.993" CommentCount="8" />
  <row Id="25138" PostTypeId="2" ParentId="25135" CreationDate="2010-12-10T11:01:19.530" Score="81" ViewCount="" Body="&lt;p&gt;I probably would not, because 1) I assume it is not your job to manage people (since you refer to your boss), 2) this is one of the best ways to undermine the trust between yourself and your other colleagues. If you're concerned about the company, go to your colleague, express your concerns (DO NOT try to talk him out of quitting -- it is his life), and politely ask him to notify the boss in due time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[re. 1): i tend to keep to myself stuff that I learn accidentally, but which is basically none of my business]&lt;/p&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-12-10T11:01:19.530" CommentCount="3" />
  <row Id="25139" PostTypeId="1" AcceptedAnswerId="25149" CreationDate="2010-12-10T11:04:44.610" Score="16" ViewCount="446" Body="&lt;p&gt;Do you think being self-educated in software development is good? Please give an example of what you have learnt successfully by yourself.&lt;/p&gt;&#xA;" OwnerUserId="9437" LastEditorUserId="1928" LastEditorDisplayName="" LastEditDate="2010-12-10T11:07:27.103" LastActivityDate="2010-12-10T19:27:04.807" Title="Efficiency of self-education" Tags="&lt;education&gt;" AnswerCount="12" FavoriteCount="5" />
  <row Id="25140" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T11:05:09.773" Score="-1" ViewCount="" Body="&lt;p&gt;It does not exist a 'nice explanation' for a novice. He must learn step by step algorithms/data structures/cycles/etc. So, in my opinion this question does not have sense. He should learn to understand pseudo code, to learn how to resolve small problems and after that to learn advanced things.You can not learn someone programming without explain the 'start' with baby steps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;best regards,&lt;br&gt;&#xA;Radu&lt;/p&gt;&#xA;" OwnerUserId="8755" LastActivityDate="2010-12-10T11:05:09.773" CommunityOwnedDate="2011-03-11T22:52:58.993" CommentCount="2" />
  <row Id="25141" PostTypeId="2" ParentId="25139" CreationDate="2010-12-10T11:08:01.693" Score="6" ViewCount="" Body="&lt;p&gt;I've learn .NET, C#, ASP.NET and ASP.NET MVC successfully by myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not like somebody was going to teach them to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Self-education is the core of programmer learning. University, colleagues, they all give you tips and hints when you need them but you still have to learn the larger part on your own. Books, blogs, articles, documentation, experimentation on your personal time, that's how you learn.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-10T11:08:01.693" />
  <row Id="25142" PostTypeId="2" ParentId="25135" CreationDate="2010-12-10T11:10:41.787" Score="18" ViewCount="" Body="&lt;p&gt;If you're worried about the effect this will have on your work going forward, talk to your colleague and find out when he'll be notifying management.  If he's planning to wait until the last minute, I'd urge him to tell them sooner, but you can't do more than that.  Ultimately this is his perogative, and if he's told you, I'd assume it was in confidence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a more proactive note, you could investigate what the standard handover procedure is, and make sure that your colleague has usefully documented any complicated knowledge that isn't shared with other people on the team.&lt;/p&gt;&#xA;" OwnerUserId="5402" LastEditorUserId="5512" LastEditorDisplayName="" LastEditDate="2010-12-10T11:11:59.837" LastActivityDate="2010-12-10T11:11:59.837" />
  <row Id="25143" PostTypeId="2" ParentId="25139" CreationDate="2010-12-10T11:11:06.570" Score="1" ViewCount="" Body="&lt;p&gt;Delphi. &#xA;I've learn Pascal in high-school and see once the IDE, like it, download some tutorials and start learning. And today, continuing the learning process. When you self-learn there are good parts and bad parts:&#xA;1) self-learning is the best method to learn, because you really understand what's happening there (good part)&#xA;2) you can make big errors by misunderstanding something/get a bad habit and then if you're continue in this manner, is very difficult to correct this.(bad part)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;best regards,&lt;br&gt;&#xA;Radu&lt;/p&gt;&#xA;" OwnerUserId="8755" LastActivityDate="2010-12-10T11:11:06.570" />
  <row Id="25144" PostTypeId="2" ParentId="25139" CreationDate="2010-12-10T11:11:15.030" Score="3" ViewCount="" Body="&lt;p&gt;I think we learn along with the job all the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've learnt Struts, Spring and a host of other open source java frameworks and even using Tomcat by myself when I was working on Java/JSP projects. The company was not going to pay for this ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And now these are the technologies I use in my work daily.&lt;/p&gt;&#xA;" OwnerUserId="1681" LastActivityDate="2010-12-10T11:11:15.030" />
  <row Id="25145" PostTypeId="2" ParentId="25139" CreationDate="2010-12-10T11:14:46.993" Score="7" ViewCount="" Body="&lt;p&gt;Generally the more you know the more self learning becomes the only efficient way to teach yourself things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Courses are great when you're just starting out as a kick start but after that you get a diminishing return for days sitting in a classroom as the course moves at the pace of the slowest participant.  Once you've got a reasonable level of experience that's almost never you so you're always going to be wasting time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Self study on the other hand allows you to pace yourself.  If you get something quickly you can skim along, if you don't understand it go back and go over it again.  If you think a topic is irrelevant you can ignore it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I've taught myself?  In terms of things I've learned from scratch: HTML, ASP, VB.NET, JavaScript, LotusScript, a bit of Python, a bit of Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in reality almost everything useful is self taught on the job.  You may learn the basics on a course but where you really learn it is using it so I'd say 95% of what I know (if not more) is self taught.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-10T11:14:46.993" CommentCount="1" />
  <row Id="25146" PostTypeId="2" ParentId="25139" CreationDate="2010-12-10T11:15:02.103" Score="3" ViewCount="" Body="&lt;p&gt;There are several aspects to self learning, the first of course being independent study where you seek knowledge and begin putting it to practical use. This could mean buying some books, studying open source code, experimenting until the wee hours of the morning or (usually) all of the above. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At some point, however, you are going to need one or several mentors to guide you through caveats, tough topics, best practices and solid engineering principles. An &lt;em&gt;efficient&lt;/em&gt; self learner will seek these mentors much sooner than later, and get his/her code in front of as many highly experienced people as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I learned BASIC, Pascal, C, PHP, rudimentary x86 assembly without taking classes, but that doesn't mean that I did not have a teacher to call upon when I needed one. So, given the fact that I learned a considerable amount from mentors that I found in the free/open source community .. I'd be hard pressed to say that I learned anything &lt;em&gt;on my own&lt;/em&gt; or &lt;em&gt;by myself&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This method of learning is the only method that works for me, reaching far beyond the study of programming.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-10T11:15:02.103" CommentCount="1" />
  <row Id="25147" PostTypeId="1" CreationDate="2010-12-10T11:16:34.583" Score="2" ViewCount="147" Body="&lt;p&gt;I studying an MCA and preparing for Oracle 10g certification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to ask you whether I should learn a programming language along side this, and if so then which one - .NET or java?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have relatively little interest in .NET.&lt;/p&gt;&#xA;" OwnerUserId="9380" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-10T11:32:59.827" LastActivityDate="2010-12-21T10:26:52.347" Title="I'm learning Oracle, is there a particular language which goes well with this?" Tags="&lt;learning&gt;&lt;programming&gt;&lt;oracle&gt;&lt;languages&gt;" AnswerCount="4" />
  <row Id="25148" PostTypeId="2" ParentId="25131" CreationDate="2010-12-10T11:16:56.893" Score="9" ViewCount="" Body="&lt;p&gt;Basically, lambda functions are functions you create &quot;on the fly&quot;. In C++1x they could be used them to improve on its support for functional programming: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;std::for_each( begin, end, [](int i){std::cout &amp;lt;&amp;lt; i;} );&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This will roughly result in code similar to this one: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;struct some_functor {&#xA;  void operator()(int i) {std::cout &amp;lt;&amp;lt; i;}&#xA;};&#xA;&#xA;std::for_each( begin, end, some_functor() );&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If you need &lt;code&gt;some_functor&lt;/code&gt; just for this one call to &lt;code&gt;std::for_each()&lt;/code&gt;, then that lambda function has several advantages over it:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;what's done in the loop is specified right where the looping function is called&lt;/li&gt;&#xA;&lt;li&gt;it relieves you from writing some of the boiler-plate code &lt;/li&gt;&#xA;&lt;li&gt;there's no functor lying around at some namespace scope that makes everyone looking at the code wondering what it is needed for&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1512" LastActivityDate="2010-12-10T11:16:56.893" />
  <row Id="25149" PostTypeId="2" ParentId="25139" CreationDate="2010-12-10T11:17:24.647" Score="25" ViewCount="" Body="&lt;p&gt;Self-education is &lt;strong&gt;not just good&lt;/strong&gt;, but &lt;strong&gt;essential&lt;/strong&gt; if you want to be an above-average developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only person responsible for your professional progress is &lt;strong&gt;you&lt;/strong&gt;. Sure, formal education, training courses, etc. can help, but at the end of the day, it is &lt;em&gt;your&lt;/em&gt; career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm fortunate enough to have benefitted from a very good education, and I have had good employers who have supported my learning in all sorts of different ways. However, &lt;strong&gt;the vast majority&lt;/strong&gt; of what I have learned about programming I have picked up myself - by reading lots and practicing more.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastEditorUserId="1928" LastEditorDisplayName="" LastEditDate="2010-12-10T14:35:11.527" LastActivityDate="2010-12-10T14:35:11.527" />
  <row Id="25150" PostTypeId="2" ParentId="25135" CreationDate="2010-12-10T11:18:39.487" Score="7" ViewCount="" Body="&lt;p&gt;No, it's not your call to make.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If he's acting unprofessionally or slacking you should tell your boss that though not the reason why, that's for your boss to speak to him about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you should assume all knowledge you have of his &lt;em&gt;possible&lt;/em&gt; plans (because until he quits that's all they are and there are plenty of instances where people have a change of heart) is in confidence and shouldn't be shared.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-10T11:31:54.587" LastActivityDate="2010-12-10T11:31:54.587" />
  <row Id="25151" PostTypeId="2" ParentId="25147" CreationDate="2010-12-10T11:21:13.680" Score="4" ViewCount="" Body="&lt;p&gt;Oracle is strategically tied with Java.  That said any popular programming language that can connect to an Oracle database is a valid choice :)&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-10T11:21:13.680" />
  <row Id="25152" PostTypeId="2" ParentId="25147" CreationDate="2010-12-10T11:27:30.363" Score="3" ViewCount="" Body="&lt;p&gt;Well you can learn a Programming language like Java + any ORM. Hibernate might be useful.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-12-10T11:27:30.363" CommentCount="1" />
  <row Id="25153" PostTypeId="2" ParentId="25135" CreationDate="2010-12-10T11:29:42.530" Score="8" ViewCount="" Body="&lt;p&gt;I would NOT. If your Manager is smart he probably knew it before you did and has already taken proactive measures to take care of it. If he doesn't know it even then it is not your business to interfere in your workmate's life. What if you tell the Manager and the guy chooses to stay back ?&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-12-10T11:29:42.530" CommentCount="1" />
  <row Id="25154" PostTypeId="1" AcceptedAnswerId="25168" CreationDate="2010-12-10T11:45:57.387" Score="37" ViewCount="547" Body="&lt;p&gt;I just read &lt;a href=&quot;http://www.joelonsoftware.com/articles/Wrong.html&quot; rel=&quot;nofollow&quot;&gt;one of Joel's articles&lt;/a&gt; in which he says:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In general, I have to admit that &lt;strong&gt;I’m a little bit scared of language features that hide things&lt;/strong&gt;. When you see the code&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;i = j * 5;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;  &#xA;  &lt;p&gt;… in C you know, at least, that j is being multiplied by five and the results stored in i. &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;But if you see that same snippet of code in C++, you don’t know anything. Nothing. &lt;strong&gt;The only way to know what’s really happening in C++ is to find out what types i and j are, something which might be declared somewhere altogether else. That’s because j might be of a type that has &lt;code&gt;operator*&lt;/code&gt; overloaded and it does something terribly witty when you try to multiply it.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(Emphasis mine.) Scared of language features that hide things? How can you be scared of that? Isn't hiding things (also known as &lt;strong&gt;abstraction&lt;/strong&gt;) one of the key ideas of object-oriented programming? Everytime you call a method &lt;code&gt;a.foo(b)&lt;/code&gt;, you don't have any idea what that might do. You have to find out what types &lt;code&gt;a&lt;/code&gt; and &lt;code&gt;b&lt;/code&gt; are, something which might be declared somewhere  altogether else. So should we do away with object-oriented programming, because it hides too much things from the programmer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And how is &lt;code&gt;j * 5&lt;/code&gt; any different from &lt;code&gt;j.multiply(5)&lt;/code&gt;, which you might have to write in a language that does not support operator overloading? Again, you would have to find out the type of &lt;code&gt;j&lt;/code&gt; and peek inside the &lt;code&gt;multiply&lt;/code&gt; method, because lo and behold, &lt;code&gt;j&lt;/code&gt; might be of a type that has a &lt;code&gt;multiply&lt;/code&gt; method that does something terribly witty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Muahaha, I'm an evil programmer that names a method &lt;code&gt;multiply&lt;/code&gt;, but what it actually does is totally obscure and non-intuitive and has absolutely nothing to do whatsoever with multiplying things.&quot; Is that a scenario we must take into consideration when designing a programming language? Then we have to abandon identifiers from programming languages on the grounds that they might be misleading!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to know what a method does, you can either glance at the documentation or peek inside the implementation. Operator overloading is just syntactic sugar, and I don't see how it changes the game at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please enlighten me.&lt;/p&gt;&#xA;" OwnerUserId="3684" LastActivityDate="2010-12-10T20:26:36.843" Title="I don't understand the arguments against operator overloading" Tags="&lt;operators&gt;&lt;overload&gt;" AnswerCount="12" CommentCount="7" FavoriteCount="3" />
  <row Id="25157" PostTypeId="2" ParentId="25154" CreationDate="2010-12-10T11:56:39.393" Score="1" ViewCount="" Body="&lt;p&gt;I suspect it has something to do with breaking expectations. I've you're used to C++, you're used to operator behavior not being dictated entirely by the language, and you won't be surprised when an operator does something odd. If you're used to languages that don't have that feature, and then see C++ code, you bring along the expectations from those other languages, and may be nastily surprised when you discover that an overloaded operator does something funky.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I think there's a difference. When you can change the behavior of the language's built-in syntax, it becomes more opaque to reason about. Languages that don't allow meta-programming are syntactically less powerful, but conceptually simpler to understand.&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-12-10T11:56:39.393" CommentCount="1" />
  <row Id="25158" PostTypeId="2" ParentId="25147" CreationDate="2010-12-10T11:58:54.733" Score="4" ViewCount="" Body="&lt;p&gt;I know it's not the coolest language on the block, but PL/SQL seems like the most appropriate programming language to complement your knowledge of Oracle, considering it's the primary language for database objects.&lt;/p&gt;&#xA;" OwnerUserId="241" LastActivityDate="2010-12-10T11:58:54.733" CommentCount="1" />
  <row Id="25159" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T12:06:49.520" Score="22" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Steve_Ballmer&quot; rel=&quot;nofollow&quot;&gt;Steve Ballmer&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;For charting Microsoft's current downward journey from being the company who defined and dominated the industry to just another (admittedly major) player.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our landscape is defined by those who fail (or at least don't sustain their performance) as much as those who succeed.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="4032" LastEditorDisplayName="" LastEditDate="2010-12-16T09:17:50.827" LastActivityDate="2010-12-16T09:17:50.827" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="5" />
  <row Id="25160" PostTypeId="2" ParentId="14842" CreationDate="2010-12-10T12:15:45.077" Score="1" ViewCount="" Body="&lt;p&gt;Well I don't have a lot of hope for C++, it is already very ambitious, and it's an hard and wide programming language, in terms of flexibility and complexity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My guess is that C++ will remain at it is, but I don't think it will evolve much, the core won't change, so nothing really interesting will come out of C++1x, but that's just my opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm more looking forward for new low-level, strong typed compiled language like Go and D, but as you can see, they don't bring much to the table, they are just trying to replace C and/or C++, but I think people should rely on C or LISP for low level, and for everything else they should rely on high level language like Python or LUA. C++ is brilliant because it does low level and high level very well, but it still looks like a lot like C (for me).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ Was very influenced by C, so I guess someone should reinvent the &quot;new C&quot; without thinking about high level paradigms, so we could start with something really different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But honestly I don't think we will have somebody genious enough to invent something comparable to C.&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2010-12-10T12:15:45.077" CommentCount="1" />
  <row Id="25161" PostTypeId="2" ParentId="25154" CreationDate="2010-12-10T12:15:59.743" Score="4" ViewCount="" Body="&lt;p&gt;I somewhat agree. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you write &lt;code&gt;multiply(j,5)&lt;/code&gt;, &lt;code&gt;j&lt;/code&gt; could be of a scalar or matrix type, making &lt;code&gt;multiply()&lt;/code&gt; more or less complex, depending on what &lt;code&gt;j&lt;/code&gt; is. However, if you abandon the idea of overloading altogether, then the function would have to be named &lt;code&gt;multiply_scalar()&lt;/code&gt; or &lt;code&gt;multiply_matrix()&lt;/code&gt; which would make it obvious what's happening underneath. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's code where many of us would prefer it one way and there's code where most of us would prefer it the other way. Most of the code, however, falls into thew middle ground between those two extremes. What you prefer there depends on your background and personal preferences. &lt;/p&gt;&#xA;" OwnerUserId="1512" LastActivityDate="2010-12-10T12:15:59.743" CommentCount="5" />
  <row Id="25162" PostTypeId="2" ParentId="25154" CreationDate="2010-12-10T12:18:23.093" Score="3" ViewCount="" Body="&lt;p&gt;In Haskell &quot;+&quot;, &quot;-&quot;, &quot;*&quot;, &quot;/&quot; etc are just (infix) functions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should you name an infix function &quot;plus&quot; as in &quot;4 plus 2&quot;? Why not, if addition is what your function does. Should you name your &quot;plus&quot; function &quot;+&quot;? Why not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the issue with so called &quot;operators&quot; are, that they mostly resemble mathematical operations and there are not many ways to interpret those and thus there are high expectations about what such a method/function/operator does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: made my point more clear&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-12-10T13:12:02.660" LastActivityDate="2010-12-10T13:12:02.660" CommentCount="1" />
  <row Id="25163" PostTypeId="1" AcceptedAnswerId="25172" CreationDate="2010-12-10T12:19:07.460" Score="2" ViewCount="128" Body="&lt;p&gt;I've been developing intranet web sites and public web sites with no big issues concerning security. There were nothing to steal and nothing to gain. Nothing to attract people to try to reach the website behind the scene. I don't talk about login &amp;amp; password but more about the security against user attacks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what's the best way to learn to secure the access to a site, to learn about common mistakes or weakness to think about ? Do I have to find a framework related to the language I use and rely on it or is there a source (book, website, ...) where I can find information about general design and tricks ?&lt;/p&gt;&#xA;" OwnerUserId="133" LastActivityDate="2010-12-10T13:02:17.363" Title="How did you learn about security in your web development ?" Tags="&lt;web-development&gt;&lt;security&gt;" AnswerCount="4" CommentCount="4" />
  <row Id="25164" PostTypeId="2" ParentId="25154" CreationDate="2010-12-10T12:20:29.907" Score="3" ViewCount="" Body="&lt;p&gt;Based on my personal experience, the Java way of allowing multiple methods, but not overloading operator, means that whenever you see an operator you know &lt;em&gt;exactly&lt;/em&gt; what it does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You do not have to see if &lt;code&gt;*&lt;/code&gt; invokes strange code but know that it is a multiply, and it behaves exactly like in the way defined by the Java Language Specification.  This means you can concentrate on the actual behaviour instead of finding out all the wicket stuff defined by the programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, prohibiting operator overload is a benefit to the &lt;em&gt;reader&lt;/em&gt;, not the &lt;em&gt;writer&lt;/em&gt;, and hence makes programs easier to maintain!&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-10T12:20:29.907" CommentCount="13" />
  <row Id="25165" PostTypeId="2" ParentId="25154" CreationDate="2010-12-10T12:22:12.203" Score="-2" ViewCount="" Body="&lt;p&gt;I think that operator overloads invite for abuse. Using operators instead of methods is so convenient, but there are only a few of operators available for overloading, so programmers might be tempted to use them for an operation that has no relation at all to the conventional meaning of that operator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, you might argue, a stupid programmer might use &quot;add&quot; as name for a function that does anything but adding. De facto, there is absolutely no motivation to do that, so nobody will. On the other hand, a programmer might overload &quot;+&quot; with an operation that doesn't add anything, just because he wants to have an operator, but no operator has a appropriate meaning, so the programmer simply picks +, and suddenly you have pluses everywhere and each one means something completely different.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-10T12:22:12.203" CommentCount="7" />
  <row Id="25166" PostTypeId="1" CreationDate="2010-12-10T12:32:42.560" Score="1" ViewCount="204" Body="&lt;p&gt;I am 30 years old with a degree in Accounting, and am finishing a course in Economics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work as programmer (or software engineer) and up until now I've been plagued with other programmer's code being of low quality. It's clunky, too clever, awfully documented, frustrating, spaghettified and sometimes unfinished (the original coder abandoned it or got fired). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been able to &quot;control&quot; some of these applications, and also extend and &quot;beautify&quot; them to some extent using languages such as .Net and Java. I'm familiar with Linux and Windows. I've done some frameworks such as Spring, Hibernate, ASP.Net, PHP, Python, SQL (of course). I've dones some remoting and a host of other bits and pieces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, given all the above, what career path should I follow? How can I improve overall?&lt;/p&gt;&#xA;" OwnerUserId="9440" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-10T13:03:56.393" LastActivityDate="2010-12-14T09:43:09.900" ClosedDate="2010-12-28T23:24:41.393" Title="Career path/advice" Tags="&lt;career-advice&gt;&lt;education&gt;" AnswerCount="5" CommentCount="7" FavoriteCount="1" />
  <row Id="25167" PostTypeId="2" ParentId="25163" CreationDate="2010-12-10T12:34:56.623" Score="1" ViewCount="" Body="&lt;p&gt;You can learn about this by yourself, but a framework would help you avoid making common mistakes and be a lot more secure. &lt;/p&gt;&#xA;" OwnerUserId="6579" LastActivityDate="2010-12-10T12:34:56.623" CommentCount="1" />
  <row Id="25168" PostTypeId="2" ParentId="25154" CreationDate="2010-12-10T12:36:55.327" Score="12" ViewCount="" Body="&lt;p&gt;Abstraction 'hides' code so you don't have to be concerned about the inner workings and often so you can't change them, but the intention was not to prevent you from looking at it. We just make assumptions about operators and like Joel said, it could be anywhere. Having a programming feature requiring all overloaded operators to be established in a specific location may help to find it, but I'm not sure it makes using it any easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't see making * do something that doesn't closely resemble multiplication any better than a function called Get_Some_Data that deletes data.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-10T12:36:55.327" CommentCount="1" />
  <row Id="25169" PostTypeId="2" ParentId="25135" CreationDate="2010-12-10T12:41:10.433" Score="1" ViewCount="" Body="&lt;p&gt;Generally no, for all the reasons already given. In a sane environment, nobody expects you to snitch on him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only possible exception might be if said coworker plans the breach his contract in a way that severely hurts your company. E.g. if he has a cancelation period of, say, 3 months, but plans to walk away without notice, it would be justified to interfere. Otherwise, just stay out.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-10T12:41:10.433" />
  <row Id="25170" PostTypeId="1" CreationDate="2010-12-10T12:42:46.797" Score="2" ViewCount="283" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am developing a simple social network website using PHP/MySQL. I want to know how much secure can I make my system using these technologies. What are the security measures I can implement? Can we use techniques like URL patterns in PHP like those in java?&lt;/p&gt;&#xA;" OwnerUserId="9442" LastActivityDate="2010-12-10T14:49:05.370" ClosedDate="2010-12-11T00:47:58.480" Title="A social network project" Tags="&lt;php&gt;&lt;mysql&gt;&lt;social-networks&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="1" />
  <row Id="25171" PostTypeId="2" ParentId="25154" CreationDate="2010-12-10T12:46:19.373" Score="1" ViewCount="" Body="&lt;p&gt;I think that overloading math operators is not the real issue with operator overloading in C++. I think overloading operators that should not rely on the context of the expression (i.e. type) is &quot;evil&quot;. E.g. overloading &lt;code&gt;,&lt;/code&gt; &lt;code&gt;[ ]&lt;/code&gt; &lt;code&gt;( )&lt;/code&gt; &lt;code&gt;-&amp;gt;&lt;/code&gt; &lt;code&gt;-&amp;gt;*&lt;/code&gt; &lt;code&gt;new&lt;/code&gt; &lt;code&gt;delete&lt;/code&gt; or even the unary &lt;code&gt;*&lt;/code&gt;. You have a certain set of expectations from those operators that should never change.&lt;/p&gt;&#xA;" OwnerUserId="135" LastActivityDate="2010-12-10T12:46:19.373" CommentCount="3" />
  <row Id="25172" PostTypeId="2" ParentId="25163" CreationDate="2010-12-10T12:47:45.270" Score="3" ViewCount="" Body="&lt;p&gt;If you're doing web development with Java, consider reading up on the Spring Security framework (&lt;a href=&quot;http://www.springbyexample.org/examples/simple-spring-security-webapp.html&quot; rel=&quot;nofollow&quot;&gt;here is a good tutorial&lt;/a&gt;). It's based on Acegi Security which was absorbed into the Spring Framework. You'll quickly learn about the key principles of securing a web application:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Never trust the client (validate everything)&lt;/li&gt;&#xA;&lt;li&gt;HTTPS is your friend&lt;/li&gt;&#xA;&lt;li&gt;Hashing passwords is a good thing&lt;/li&gt;&#xA;&lt;li&gt;Security is an aspect of your code (i.e implemented through filters and interceptors rather than directly within your business logic)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Anecdote&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I remember one client I worked with who had employed a security firm to perform penetration tests on their code. They failed badly. One quick refactor to use Spring Security and Spring MVC instead of their home-grown approach and all their issues vanished. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nothing is ever perfect, but you can make it so hard to get into your application that script kiddies give up leaving just the dedicated crackers to deal with. And for them, you'll need professional advice.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-10T12:53:02.083" LastActivityDate="2010-12-10T12:53:02.083" />
  <row Id="25173" PostTypeId="2" ParentId="14842" CreationDate="2010-12-10T12:50:34.483" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Modules&lt;/li&gt;&#xA;&lt;li&gt;Concepts&lt;/li&gt;&#xA;&lt;li&gt;Processes&lt;/li&gt;&#xA;&lt;li&gt;Filesystem&lt;/li&gt;&#xA;&lt;li&gt;(optional) Garbage Collector&lt;/li&gt;&#xA;&lt;li&gt;High level threading &quot;environnement&quot; (something like TBB but standard, that would allow using several libraries sharing the same manager of worker threads)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-12-10T12:50:34.483" />
  <row Id="25175" PostTypeId="2" ParentId="25170" CreationDate="2010-12-10T12:53:53.343" Score="1" ViewCount="" Body="&lt;p&gt;It can be secure. I would suggest using a well established framework, as the developers and community have probably spent a lot time on security so you don't have to spend days/weeks worrying about it. Also, assuming you are going to use some kid of database abstraction layer like an ORM, that will usually protect you against SQL injection.&lt;/p&gt;&#xA;" OwnerUserId="4881" LastActivityDate="2010-12-10T12:53:53.343" />
  <row Id="25176" PostTypeId="2" ParentId="25163" CreationDate="2010-12-10T13:01:16.177" Score="1" ViewCount="" Body="&lt;p&gt;There's NEVER nothing to steal. Even if the data on your site is worthless, your processing time and bandwidth is still valuable to DDOS botnet operators. If you're running a computer on the internet and you're interested in being a good citizen, you have to be interested in security.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-10T13:01:16.177" CommentCount="1" />
  <row Id="25177" PostTypeId="2" ParentId="25086" CreationDate="2010-12-10T13:01:31.017" Score="0" ViewCount="" Body="&lt;p&gt;Well, in our organization, you cannot have administrator rights on your PC. The systems guy will come and install software which you request for, but we were forced to raise separate requests with the systems team for each requirement. And, by that, we mean that if you wanted Visual Studio 2008, you raise a request. If you wanted Silverlight Tools, you have to raise a &lt;strong&gt;separate&lt;/strong&gt; request and so on. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This also means that you cannot install any of the open source software. So, I cannot install MySQL and try out a possible scenario. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still worse, Google is the only site that would work. Nothing else works. Stackoverflow is categorized under &quot;Contribution of Confidential Data Filter&quot; and is blocked!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do I hear someone say &quot;Get out of that organization! And be quick!&quot;? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Relax. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have seen/heard multiple organizations which are like this. &lt;/p&gt;&#xA;" OwnerUserId="5070" LastActivityDate="2010-12-10T13:01:31.017" CommentCount="3" />
  <row Id="25178" PostTypeId="2" ParentId="25163" CreationDate="2010-12-10T13:02:17.363" Score="2" ViewCount="" Body="&lt;p&gt;Plan for your project security before you start coding, Not after.&lt;br/&gt;&#xA;Also There are very good answers on SO on many similar questions : &lt;a href=&quot;http://stackoverflow.com/questions/2794016/what-should-every-programmer-know-about-security&quot;&gt;Like this&lt;/a&gt; and &lt;a href=&quot;http://stackoverflow.com/questions/111248/how-can-i-stay-up-to-date-on-computer-especially-software-security&quot;&gt;this&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="8372" LastActivityDate="2010-12-10T13:02:17.363" />
  <row Id="25179" PostTypeId="2" ParentId="25131" CreationDate="2010-12-10T13:02:50.187" Score="15" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Lambda calculus&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The lambda calculus is a computation model invented by Alonzo Church in the 30s. The syntax and semantics of most functional programming languages are directly or indirectly inspired by the lambda calculus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The lambda calculus in its most basic form has two operations: Abstraction (creating an (anonymous) function) and application (apply a function). Abstraction is performed using the λ operator, giving the lambda calculus its name.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Lambda expressions&lt;/li&gt;&#xA;&lt;li&gt;Lambda functions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Anonymous functions are often called &quot;lambdas&quot;, &quot;lambda functions&quot; or &quot;lambda expressions&quot; because, as I said above, λ was the symbol to create anonymous functions in the lambda calculus (and the word &lt;code&gt;lambda&lt;/code&gt; is used to create anonymous functions in many lisp-based languages for the same reason).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Lambda programming&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This is not a commonly used term, but I assume it means programming using anonymous functions or programming using higher-order functions.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;A bit more information about lambdas in C++0x, their motivation and how they relate to function pointers (a lot of this is probably a repeat of what you already know, but I hope it helps explain the motivation of lambdas and how they differ from function pointers):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Function pointers, which already existed in C, are quite useful to e.g. pass a comparison function to a sorting function. However there are limits to their usefulness:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example if you want to sort a vector of vectors by the &lt;code&gt;i&lt;/code&gt;th element of each vector (where &lt;code&gt;i&lt;/code&gt; is a run-time parameter), you can't solve this with a function pointer. A function that compares two vectors by their &lt;code&gt;i&lt;/code&gt;th element, would need to take three arguments (&lt;code&gt;i&lt;/code&gt; and the two vectors), but the sorting function would need a function taking two arguments. What we'd need is a way to somehow supply the argument &lt;code&gt;i&lt;/code&gt; to the function before passing it to the sorting function, but we can't do this with plain C functions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To solve this, C++ introduced the concept of &quot;function objects&quot; or &quot;functors&quot;. A functor is basically an object which has an &lt;code&gt;operator()&lt;/code&gt; method. Now we can define a class &lt;code&gt;CompareByIthElement&lt;/code&gt;, which takes the argument &lt;code&gt;i&lt;/code&gt; as a constructor argument and then takes the two vectors to be compared as arguments to the &lt;code&gt;operator()&lt;/code&gt; method. To sort a vector of vectors by the &lt;code&gt;i&lt;/code&gt;th element we can now create a &lt;code&gt;CompareByIthElement&lt;/code&gt; object with &lt;code&gt;i&lt;/code&gt; as an argument and then pass that object to the sorting function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since function objects are just objects and not technically functions (even though they are meant to behave like them), you can't make a function pointer point to a function object (you can of course have a pointer to a function object, but it would have a type like &lt;code&gt;CompareByIthElement&lt;/code&gt; and thus not be a function pointer).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most functions in the C++ standard library which take functions as arguments are defined using templates so that they work with function pointers as well as function objects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now to lambdas:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Defining a whole class to compare by the &lt;code&gt;i&lt;/code&gt;th element is a bit verbose if you're only ever going to use it once to sort a vector. Even in the case where you only need a function pointer, defining a named function is sub-optimal if it's only use once because a) it pollutes the namespace and b) the function is usually going to be very small and there isn't really a good reason to abstract the logic into its own function (other than that you can't have function pointers without defining a function).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to fix this lambdas were introduced. Lambdas are function objects, not function pointers. If you use a lambda literal like &lt;code&gt;[x1, x2](y1,y2){bla}&lt;/code&gt; code is generated which basically does the following:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Define a class which has two member variables (&lt;code&gt;x1&lt;/code&gt; and &lt;code&gt;x2&lt;/code&gt;) and an &lt;code&gt;operator()&lt;/code&gt; with the arguments (&lt;code&gt;y1&lt;/code&gt; and &lt;code&gt;y2&lt;/code&gt;) and the body &lt;code&gt;bla&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Create an instance of the class, setting the member variables &lt;code&gt;x1&lt;/code&gt; and &lt;code&gt;x2&lt;/code&gt; to the values of the variables &lt;code&gt;x1&lt;/code&gt; and &lt;code&gt;x2&lt;/code&gt; currently in scope.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So lambdas behave like function objects, except that you can't access the class that's generated to implement a lambda in any way other than using the lambda. Consequently any function that accepts functors as arguments (basically meaning any non-C function in the standard library), will accept lambdas, but any function only accepting function pointers will not.&lt;/p&gt;&#xA;" OwnerUserId="3446" LastEditorUserId="3446" LastEditorDisplayName="" LastEditDate="2010-12-10T16:17:58.487" LastActivityDate="2010-12-10T16:17:58.487" CommentCount="6" />
  <row Id="25180" PostTypeId="2" ParentId="25063" CreationDate="2010-12-10T13:04:42.253" Score="6" ViewCount="" Body="&lt;p&gt;For the most part it's good though I think it has bought about a deterioration in problem solving skills among many programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before the internet if you came up against a problem you'd not seen before you pretty much had no choice but to investigate and solve it yourself and if you couldn't come up with an answer them you had to work around them.  You could get help from team mates and from books but the total knowledge pool you had access to was perhaps a few dozen people at most.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What this meant was that pretty much every programmer who'd been working for a couple of years had experience working with genuinely detailed problems, often at a fairly low level and as a result had a far better understanding not only of how to address these problems, but of also how the language and tools worked because of their experiences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These days most answers are available immediately as you're probably not the first person who has come across it - 30 seconds with Google will usually get you the answer.  That's obviously great - what used to take 2 days now takes 2 minutes - but I do find more and more programmers who start floundering very quickly when Google can't provide the solution because they're simply not used to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So overall Google has made developers way more productive but in some ways I think the big problems are bigger because less people have the experience of solving them than used to be the case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because of that I'd say that if you want to be a really great developer you do need to break the Google habit to an extent, if only to make sure you're capable of solving things without it when the need arises.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;#wheniwasalad&lt;/pre&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-10T13:04:42.253" CommentCount="1" />
  <row Id="25181" PostTypeId="1" AcceptedAnswerId="25207" CreationDate="2010-12-10T13:13:16.657" Score="11" ViewCount="288" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/1371/what-are-the-warning-signs-of-impending-doom-to-watch-out-for-on-a-project&quot;&gt;What are the warning signs of impending doom to watch out for on a project?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;You've certainly worked in projects where your gut feel says it's going to #fail. But what are the specific symptoms, events or actions that you have encountered that signaled that the project has entered a death cycle (spiral, march)?&lt;/p&gt;&#xA;" OwnerUserId="5162" LastActivityDate="2010-12-13T16:03:04.137" ClosedDate="2010-12-29T14:40:40.267" Title="What are the symptoms, events or actions of a software death cycle?" Tags="&lt;project-management&gt;&lt;software&gt;&lt;deathcycle&gt;" AnswerCount="10" CommentCount="3" FavoriteCount="4" />
  <row Id="25182" PostTypeId="2" ParentId="25166" CreationDate="2010-12-10T13:14:00.573" Score="4" ViewCount="" Body="&lt;p&gt;You're working with the wrong people :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1.)  You can try to change that by getting onto the Software Craftsmanship bandwagon and holding mini coding dojos and lunchtime sessions etc&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2.)  You can leave and work in places where programmers/developers do care (places that pass the Joel test or when interviewing you talk passionately about software craftsmanship issues).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3.)  Join your local tech communities!  They're usually a hotbed of passionate, excited, driven programmers who love their craft.  It'll re-galvanise you!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of your career?  What drives you?  What do you love to do?&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-10T13:14:00.573" CommentCount="2" />
  <row Id="25184" PostTypeId="2" ParentId="25154" CreationDate="2010-12-10T13:19:09.647" Score="1" ViewCount="" Body="&lt;p&gt;One difference between overloading &lt;code&gt;a * b&lt;/code&gt; and calling &lt;code&gt;multiply(a,b)&lt;/code&gt; is that the latter can easily be grepped for. If the &lt;code&gt;multiply&lt;/code&gt; function isn't overloaded for different types then you can find out exactly what the function is going to do, without having to track through the types of &lt;code&gt;a&lt;/code&gt; and &lt;code&gt;b&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Linus Torvalds has an &lt;a href=&quot;http://www.realworldtech.com/forums/index.cfm?action=detail&amp;amp;id=110618&amp;amp;threadid=110549&amp;amp;roomid=2&quot; rel=&quot;nofollow&quot;&gt;interesting argument&lt;/a&gt; about operator overloading.  In something like linux kernel development, where most of the changes are sent via patches over email, it's important that the maintainers can understand what a patch will do with only a few lines of context around each change. If functions and operators are not overloaded then the patch can more easily be read in a context independent way, as you don't have to go through the changed file working out what all of the types are and check for overloaded operators.&lt;/p&gt;&#xA;" OwnerUserId="9446" LastActivityDate="2010-12-10T13:19:09.647" CommentCount="9" />
  <row Id="25185" PostTypeId="2" ParentId="25181" CreationDate="2010-12-10T13:19:35.053" Score="1" ViewCount="" Body="&lt;p&gt;There are loads of symptoms (burn out, overtime, frustration, silence ...) but ultimately you know this is happening when release dates are starting to slip and you are no longer able to deliver the product as often as you are supposed to.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-12-10T13:19:35.053" CommentCount="3" />
  <row Id="25186" PostTypeId="2" ParentId="25116" CreationDate="2010-12-10T13:20:36.177" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Consider why you want the leader of the pack&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's because you want to be able to easily hire someone with detailed knowledge of the framework then that a poor reason because your choice should be simple enough for anyone to pick it up quickly using in-house examples and documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's because you want a strong community, then any of the named entries on Mr Raibles site (tip of the hat to @Alison for the link) will suffice. A quick Google against any of the names you've provided will illustrate their popularity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall, you want a framework that fits well with the way that you and your team develop code. It should be quick to learn and easy to maintain. You'll be working with it day in day out so you'll need to trial it against your most common use cases and see if the other developers like it.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-10T16:10:05.047" LastActivityDate="2010-12-10T16:10:05.047" CommentCount="2" />
  <row Id="25187" PostTypeId="2" ParentId="25091" CreationDate="2010-12-10T13:20:52.947" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.devexpress.com/Products/Visual_Studio_Add-in/Coding_Assistance/&quot; rel=&quot;nofollow&quot;&gt;CodeRush&lt;/a&gt; - absolutely the best addin there is - even in a FREE FOR ALL version (&lt;a href=&quot;http://www.devexpress.com/Products/Visual_Studio_Add-in/CodeRushX/&quot; rel=&quot;nofollow&quot;&gt;CodeRush Xpress&lt;/a&gt;).&lt;/p&gt;&#xA;" OwnerUserId="4522" LastActivityDate="2010-12-10T13:20:52.947" CommentCount="1" />
  <row Id="25188" PostTypeId="1" AcceptedAnswerId="25386" CreationDate="2010-12-10T13:21:32.603" Score="7" ViewCount="353" Body="&lt;p&gt;OK, so hopefully this is a subjective enough question for Programmers, but here goes.  I am continuously broadening my knowledge of languages and software engineering practices... and I've run into something that just makes no sense to me whatsoever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In C++, class declarations include &lt;code&gt;private:&lt;/code&gt; methods and parameters in the header file, which, theoretically, is what you pass to the user to include if you make them a lib.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Objective-C, &lt;code&gt;@interface&lt;/code&gt;s do pretty much the same thing, forcing you to list your private members (at least, there's a way to get private methods in the implementation file).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From what I can tell, Java and C# allow you to provide an interface/protocol which can declare all the publicly accessible properties/methods and gives the coder the ability to hide &lt;em&gt;all&lt;/em&gt; implementation details in the implementation file.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why?  Encapsulation is one of the main principles of OOP, why do C++ and Obj-C lack this basic ability?  Is there some kind of best-practices work-around for Obj-C or C++ that hides &lt;em&gt;all&lt;/em&gt; implementation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&lt;/p&gt;&#xA;" OwnerUserId="7499" LastActivityDate="2010-12-11T00:08:02.370" Title="Why are private variables described in the publicly accessible header file?" Tags="&lt;programming-languages&gt;&lt;best-practices&gt;&lt;language-features&gt;" AnswerCount="3" CommentCount="5" />
  <row Id="25189" PostTypeId="2" ParentId="25091" CreationDate="2010-12-10T13:23:51.053" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/e5f41ad9-4edc-4912-bca3-91147db95b99&quot; rel=&quot;nofollow&quot; title=&quot;PowerCommands for Visual Studio 2010&quot;&gt;PowerCommands for Visual Studio 2010&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5808" LastActivityDate="2010-12-10T13:23:51.053" />
  <row Id="25190" PostTypeId="2" ParentId="25091" CreationDate="2010-12-10T13:24:46.027" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef&quot; rel=&quot;nofollow&quot; title=&quot;Productivity Power Tools&quot;&gt;Productivity Power Tools&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5808" LastActivityDate="2010-12-10T13:24:46.027" />
  <row Id="25191" PostTypeId="2" ParentId="25188" CreationDate="2010-12-10T13:24:51.370" Score="13" ViewCount="" Body="&lt;p&gt;Due to the design of C++, in order to create an object on the stack the compiler must know how big it is. To do this it needs to have all the fields present in the header file, as that is all that the compiler can see when the header is included.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance if you define a class&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Foo {&#xA;    public int a;&#xA;    private int b;&#xA;};&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;then &lt;code&gt;sizeof(Foo)&lt;/code&gt; is &lt;code&gt;sizeof(a) + sizeof(b)&lt;/code&gt;. If there was some mechanism to separate the private fields, then the header might contain&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Foo {&#xA;    public int a;&#xA;};&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;with &lt;code&gt;sizeof(Foo) = sizeof(a) + ???&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to really hide private data, try the pimpl idiom, with&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class FooImpl;&#xA;class Foo {&#xA;    private FooImpl* impl;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;in the header and a definition for &lt;code&gt;FooImpl&lt;/code&gt; only in &lt;code&gt;Foo&lt;/code&gt;'s implementation file.&lt;/p&gt;&#xA;" OwnerUserId="9446" LastActivityDate="2010-12-10T13:24:51.370" CommentCount="3" />
  <row Id="25192" PostTypeId="2" ParentId="25091" CreationDate="2010-12-10T13:27:15.980" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://nuget.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;NuGet&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3266" LastActivityDate="2010-12-10T13:27:15.980" />
  <row Id="25193" PostTypeId="2" ParentId="25091" CreationDate="2010-12-10T13:28:20.943" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://submain.com/products/ghostdoc.aspx&quot; rel=&quot;nofollow&quot;&gt;GhostDoc&lt;/a&gt; - It automatically generates XML documentation comments for methods and properties based on their type, parameters, name, and other contextual information.&lt;/p&gt;&#xA;" OwnerUserId="4522" LastActivityDate="2010-12-10T13:28:20.943" CommentCount="2" />
  <row Id="25194" PostTypeId="2" ParentId="25091" CreationDate="2010-12-10T13:30:14.267" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.testdriven.net/&quot; rel=&quot;nofollow&quot;&gt;TestDriven.NET&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-12-10T13:30:14.267" CommentCount="1" />
  <row Id="25195" PostTypeId="2" ParentId="25086" CreationDate="2010-12-10T13:30:38.337" Score="0" ViewCount="" Body="&lt;p&gt;A large investment bank once had a standard platform install (checked and restored as necessary at &lt;em&gt;every&lt;/em&gt; login) which included a bunch of .dlls incompatible with a friends development environment.  The policy couldn't be deactivated and there were no exemptions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He wrote his own routine that ran automatcally after login that restored and registered all the file versions he wanted.  He logged in and by the time he'd grabbed a coffee his machine and been restored to the corporate standard and then returned to his standard.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-10T13:30:38.337" CommentCount="2" />
  <row Id="25196" PostTypeId="2" ParentId="25091" CreationDate="2010-12-10T13:31:34.950" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://ankhsvn.open.collab.net/&quot; rel=&quot;nofollow&quot;&gt;Ankhsvn&lt;/a&gt; - Subversion support&lt;/p&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-12-10T13:31:34.950" />
  <row Id="25197" PostTypeId="1" AcceptedAnswerId="25209" CreationDate="2010-12-10T13:32:27.507" Score="1" ViewCount="108" Body="&lt;p&gt;I know that there should be a kind of standard for developing software but in the organization where I work for (30,000+ employees), we have a very strict framework for Java development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion such a framework is prehistoric as we are therefor running at least 10 years behind (Standard is Java 1.5 but with support 'til java 1.2).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Further the framework slows down performance, user satisfaction drops and I'm writing more boilerplate code than is good for my health :-).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any suggestions on the advantages of such a framework? What are good practices for such a framework for not running behind the facts?&lt;/p&gt;&#xA;" OwnerUserId="7335" LastActivityDate="2010-12-10T13:55:48.960" Title="How do you guys feel about organization specific frameworks?" Tags="&lt;frameworks&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="25198" PostTypeId="2" ParentId="25116" CreationDate="2010-12-10T13:35:56.163" Score="0" ViewCount="" Body="&lt;p&gt;Consider JSF 2 with facelets.  If nothing else, as it is in Java EE 6, and hence is 1) well-specified and 2) will be available and maintained for a VERY long time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you want to be an active pioneer, this might be quite good enough.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-10T13:35:56.163" />
  <row Id="25200" PostTypeId="2" ParentId="17898" CreationDate="2010-12-10T13:38:53.897" Score="0" ViewCount="" Body="&lt;p&gt;When I was in university, my professor had some really neat powerpoint slides depicting a point as a separate variable on it's own with an arrow to a memory location (represented like an array) and when we were doing Linked Lists, he would do it step-by-step, showing when the arrow changes, when the pointer is dereferenced etc..., there was no way one could not understand it within a couple of minutes. The concept itself is really easy, but doing it right or applying it in practical programs requires more practice.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-10T13:38:53.897" CommunityOwnedDate="2010-12-10T13:38:53.897" />
  <row Id="25201" PostTypeId="2" ParentId="25181" CreationDate="2010-12-10T13:39:47.207" Score="0" ViewCount="" Body="&lt;p&gt;Among another signals, there is one important warning for me (maybe I'm wrong, and it is not common): &lt;strong&gt;double-digits in the minor version like &quot;superproject version &lt;code&gt;3.16&lt;/code&gt;&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-10T13:39:47.207" CommentCount="4" />
  <row Id="25202" PostTypeId="1" CreationDate="2010-12-10T13:40:10.623" Score="2" ViewCount="215" Body="&lt;p&gt;Why is xslt used by many web applications? Can you guide me? Thanks in advance&lt;/p&gt;&#xA;" OwnerUserId="9448" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-10T13:43:03.970" LastActivityDate="2010-12-11T10:09:57.193" Title="what is the reason for using xslt?" Tags="&lt;web-applications&gt;&lt;web&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="1" />
  <row Id="25203" PostTypeId="2" ParentId="25202" CreationDate="2010-12-10T13:41:24.597" Score="8" ViewCount="" Body="&lt;p&gt;XSLT is a relatively easy way to manipulate data provided on XML-form.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The combination of easy generation of output data on XML-form, and the SQL-ish ability for the XPath queries to slice through the DOM-tree in many, many ways aggregating data is &lt;em&gt;very&lt;/em&gt; powerful.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-10T13:41:24.597" CommentCount="5" />
  <row Id="25205" PostTypeId="2" ParentId="25197" CreationDate="2010-12-10T13:43:48.780" Score="2" ViewCount="" Body="&lt;p&gt;I've seen both, organizations with specific frameworks and others without.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having a framework and strictly sticking to it means that every programmer can, at least in theory, work on any part of any project. This is a big advantage for a large organisation. There are, obviously, at least two downsides: a) at some point in time, it becomes out-dated, but you have to stick to it for all those millions of LOC that use it; b) you use it for every project, whether or not it is a good fit; so it's a golden hammer (see antipatterns)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, organisations without a framework tend to use new tools for every project, thus having a fragmented codebase that becomes hard to maintain. &quot;Oh, the 2003 project needs an update, where is the VB6 programmer? Sh*t, he left in 2007!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's no surprise that some organisations manage to implement the worst of both worlds: an outdated in-house framework for some projects, several other tools for the other projects.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-10T13:43:48.780" />
  <row Id="25206" PostTypeId="2" ParentId="22542" CreationDate="2010-12-10T13:44:08.017" Score="0" ViewCount="" Body="&lt;p&gt;Asking the question &quot;where is (programming language X) best used?&quot; is equivalent to asking &quot;which road is (car brand X) best driven on?&quot;.  The question cannot be answered.  I've used (and continue to use) Smalltalk for a wide variety of problems.  From your list, I've used Smalltalk for artificial intelligence, general purpose applications, relational database querying, text processing, matrix algorithms, and other uses (although once one has said &quot;general purpose applications&quot; one has probably covered just about everything).  I strongly suspect that Smalltalk (and just about any language out there) has been used for all the categories you mentioned.  Having said that, what has been &quot;proved&quot;?  Nothing, IMHO.  Smalltalk is a Turing-complete language and can thus be used for nearly any purpose.  Same-same for Autocoder, PL/I, COBOL, Java, C, C#, C++, FORTRAN, BASIC, Visual Basic, assembler for any particular processor, Ruby, Forth, Python, PERL, SPL, APL, Pascal, Delphi, B, BCPL, ALGOL, PL/SQL, etc, etc, etc.  And you can probably find &lt;em&gt;someone&lt;/em&gt; out there who will argue that each of the above is The Best Language for any particular purpose.  YMMV.&lt;/p&gt;&#xA;" OwnerUserId="4848" LastActivityDate="2010-12-10T13:44:08.017" />
  <row Id="25207" PostTypeId="2" ParentId="25181" CreationDate="2010-12-10T13:45:55.120" Score="7" ViewCount="" Body="&lt;p&gt;One sure sign that I've seen in my career is when management starts talking about bringing in more bodies to make up time in the schedule.  I've never actually seen more bodies on a project help.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-10T13:45:55.120" CommentCount="2" />
  <row Id="25208" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T13:46:11.587" Score="9" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/&quot; rel=&quot;nofollow&quot;&gt;Eric Lippert&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Someone this integral to the ongoing design of C# effects a ton of developers every day.&lt;/p&gt;&#xA;" OwnerUserId="3266" LastEditorUserId="4032" LastEditorDisplayName="" LastEditDate="2010-12-11T03:56:12.833" LastActivityDate="2010-12-11T03:56:12.833" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="2" />
  <row Id="25209" PostTypeId="2" ParentId="25197" CreationDate="2010-12-10T13:46:32.820" Score="4" ViewCount="" Body="&lt;p&gt;What frameworks are meant to do is to simplify, or organize software development in some way that has benefit.  Unfortunately, unless the framework evolves with new advances in the language, those advantages it affords are probably overtaken by events.  For example, 10 years ago there were a few Java frameworks, but the one that has the widest acceptance is currently Spring.  Anecdotedly, I remember hearing about Spring and thinking to myself it'll never get anywhere.  I was wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's important to understand what problem(s) the framework was intended to address.  If your organization has to support 10 year old installs of Java for whatever reason, and the framework ensures that new code will run on old VMs--that's an important advantage to the company.  However, if there are no advantages whatsoever to the old (and possibly aging) framework, then you will probably need to take some statistics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nothing speaks to managers more than numbers.  When you show them how much of your work is due to feeding the framework vs. how much time it would take to do it another way.  Perhaps it would be much less political if you were to address a specific portion of the framework that if changed would buy you another x hours of productivity during the day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Frameworks need to evolve over time just as all software does.  As new features come out in a language, the framework needs to be adapted to take advantage of them.  The Spring of today is hardly the Spring when it was originally introduced.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-10T13:46:32.820" CommentCount="1" />
  <row Id="25210" PostTypeId="2" ParentId="25181" CreationDate="2010-12-10T13:51:40.010" Score="6" ViewCount="" Body="&lt;p&gt;The most obvious sign is a high staff turnover. When everybody is looking for a new job, you probably should, too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other highly obvious sign is lack of progress. If a year has passed, and it doesn't seem like you are any closer to the target, you're doomed. This happens especially when requirements change faster than you can implement them.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-10T13:51:40.010" CommentCount="1" />
  <row Id="25211" PostTypeId="2" ParentId="25202" CreationDate="2010-12-10T13:52:03.053" Score="1" ViewCount="" Body="&lt;p&gt;Because:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It is close to the data,&lt;/li&gt;&#xA;&lt;li&gt;It is (relatively) easy to generate by meta-programming,&lt;/li&gt;&#xA;&lt;li&gt;It is (relatively) easy to teach to  the herd of monkeys editing your websites and just developing small widgets for it,&lt;/li&gt;&#xA;&lt;li&gt;It is very powerful for data transformations,&lt;/li&gt;&#xA;&lt;li&gt;It is fast to process,&lt;/li&gt;&#xA;&lt;li&gt;It is (relatively) easy to maintain.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But it can also (like many other tools):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;be written in a fairly cryptic fashion,&lt;/li&gt;&#xA;&lt;li&gt;be misused (doing everything with it, or transforming data in an overly inefficient way),&lt;/li&gt;&#xA;&lt;li&gt;be a bad reason for you to store everything in XML when other formats would do.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Personally I have used it quite a lot do develop small widgets with different configuration options and styles for websites where the presentation format changed betweens portals but used the same original data. I also often used it to transform database data to JSON data (dump DB to XML then create a JSON tree structure).&lt;/p&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-12-10T13:52:03.053" />
  <row Id="25212" PostTypeId="2" ParentId="25202" CreationDate="2010-12-10T13:52:43.350" Score="2" ViewCount="" Body="&lt;p&gt;Because it works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given that a) XML is in widespread use (from services and as a data storage format) and b) easy to generate you have a lot of data that is available or easily made available as XML.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, given that you have data in XML format the ability to render it to another format (to restructure the data or for display) using a standard &quot;tool&quot; is very useful, XSLT is the tool and it makes things fairly easy and allows you to do relatively complex things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have two use cases:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;email of an order - we have one routine to generate the XML for an order, we can use multiple templates to format the information in the order for display on screen, to be sent to a client as a confirmation, to be sent to an in house user for process and so on. Because the XSLT files are independent of the application we can make changes to those file with far more flexibility that would be available if the generation were coded into the application directly.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Production of a large directory. In this case we took the same XML and by transforming it one way were able to produce a 500 page PDF in sections complete with page numbering, table of contents, index, etc. By transforming it another way (the same XML but a set of XSLT templates and a small amount of very re-usable code) we had a website with the same information.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Its not the only way to achieve this sort of result - but it works and is widely supported.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-12-10T13:52:43.350" />
  <row Id="25213" PostTypeId="2" ParentId="25197" CreationDate="2010-12-10T13:55:48.960" Score="1" ViewCount="" Body="&lt;p&gt;Quite often organisational frameworks pop up because external frameworks &quot;weren't invented here&quot; and equally as often &quot;There's nothing that current meets our needs&quot; (which was quite common in the early days of J2EE).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The wise organisation has plans to move parts of their own internal frameworks onto industry standards (e.g.  JPA)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And/Or&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The wise organisation has plans to improved their own internal frameworks to increase developer productivity yet maintain what ever special support that is required&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And/Or&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A truly brave/enlightened organisation might open source parts or all of their framework in order to keep it up to date, relevant etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Most organisations don't do this and ammoQ's comment:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;It's no surprise that some&#xA;  organisations manage to implement the&#xA;  worst of both worlds: an outdated&#xA;  in-house framework for some projects,&#xA;  several other tools for the other&#xA;  projects.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Is very apt :)&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-10T13:55:48.960" />
  <row Id="25214" PostTypeId="2" ParentId="25202" CreationDate="2010-12-10T13:56:46.760" Score="3" ViewCount="" Body="&lt;p&gt;The first web framework (to my knowledge) that used XSLT extensively for web applications was Apache Cocoon.  It also incorporated almost every XML technology out there.  The reasoning behind the choice for the framework was two fold:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Leveraging XML helps to get closer to a semantic web, and XSLT provides a means to present that source XML to different clients (i.e. HTML, SVG, JPG, MS Excel, PDF, etc.).&lt;/li&gt;&#xA;&lt;li&gt;It helps provide a separation of concerns where the original XML represents your model, the XSLT represents your view, and &quot;actions&quot; represent your controller.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Essentially, you could create an entirely functional web site that was complete, and then dress it any way you like depending on the setting.  The ideas and concepts are powerful, but in the end, developers were required to learn a heck of a lot to become marginally useful with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it is still true that XSLT allows you much more freedom over the layout than simple HTML and CSS does.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-10T13:56:46.760" />
  <row Id="25215" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T14:08:59.727" Score="4" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Bill_Gates&quot; rel=&quot;nofollow&quot;&gt;Bill Gates&lt;/a&gt;&lt;/h2&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-12-10T14:08:59.727" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="19" />
  <row Id="25216" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T14:14:28.220" Score="2" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Douglas_Engelbart&quot; rel=&quot;nofollow&quot;&gt;Doug Engelbart&lt;/a&gt;&lt;/h2&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-12-10T14:14:28.220" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="1" />
  <row Id="25217" PostTypeId="2" ParentId="25181" CreationDate="2010-12-10T14:16:35.440" Score="4" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Everyone is physically and mentally exhausted&lt;/li&gt;&#xA;&lt;li&gt;Customers / users are clearly unhappy either about timescales or what they're seeing&lt;/li&gt;&#xA;&lt;li&gt;The originally beautiful design now feels compromised&lt;/li&gt;&#xA;&lt;li&gt;You're resigned to shipping with some relatively significant bugs that you'd really rather fix but aren't going to be able to&lt;/li&gt;&#xA;&lt;li&gt;You're remaining pride is in the act of shipping rather than what you're shipping - closer to a survivor mentality than professional pride&lt;/li&gt;&#xA;&lt;li&gt;The team is scared that there are certain things that don't work and are ignoring those sections and hoping for the best because they're scared of what might be in there&lt;/li&gt;&#xA;&lt;li&gt;Everyone is convinced that they've gone above and beyond (and they're right)&lt;/li&gt;&#xA;&lt;li&gt;People are showing signs of burnout (general pessimism, disinterest, anger)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(Cribbed from Jim McCarthy's &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1556158238&quot; rel=&quot;nofollow&quot;&gt;Dynamics of Software Development&lt;/a&gt;).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-10T14:16:35.440" CommentCount="1" />
  <row Id="25219" PostTypeId="1" CreationDate="2010-12-10T14:24:47.073" Score="2" ViewCount="123" Body="&lt;p&gt;While designing web pages using php, are there standards that should be followed? For example suppose there are two pages. First page looks like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;body&amp;gt;&#xA;&amp;lt;div&amp;gt;&#xA;&amp;lt;?php include 'page2.php';?&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;page2.php&lt;/code&gt; file looks like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?php print 'some text';?&amp;gt;&#xA;&amp;lt;/div&amp;gt;&#xA;&amp;lt;/body&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Is such designing a standard practice? Does it affect search engine results?&lt;/p&gt;&#xA;" OwnerUserId="9442" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-10T17:04:40.760" LastActivityDate="2010-12-10T17:04:40.760" Title="Web design standards" Tags="&lt;php&gt;&lt;design&gt;&lt;seo&gt;" AnswerCount="3" />
  <row Id="25220" PostTypeId="2" ParentId="25181" CreationDate="2010-12-10T14:26:27.043" Score="2" ViewCount="" Body="&lt;p&gt;When the management pulls the project into different directions simultaneously and the carriage remains still.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was once involved in a project managed by two guys. Either they didn't talk to each other or each one has some ego to resolve, but they were commandeering our work into opposite direction about each week or so. Didn't take long to realize there's never going to be any result. Gladly my participation only lasted a few months.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-10T14:26:27.043" />
  <row Id="25221" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T14:29:45.310" Score="12" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Richard_Stallman&quot; rel=&quot;nofollow&quot;&gt;Richard M Stallman&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;For creating the GPL, GNU, and more importantly, being a champion of free software.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastEditorUserId="4032" LastEditorDisplayName="" LastEditDate="2010-12-17T11:40:59.933" LastActivityDate="2010-12-17T11:40:59.933" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="6" />
  <row Id="25222" PostTypeId="2" ParentId="25219" CreationDate="2010-12-10T14:29:52.783" Score="1" ViewCount="" Body="&lt;p&gt;What matters is the response, or what gets sent to the browser / crawler. How that is done server side doesn't matter.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-10T14:29:52.783" CommentCount="2" />
  <row Id="25223" PostTypeId="2" ParentId="24421" CreationDate="2010-12-10T14:32:14.283" Score="1" ViewCount="" Body="&lt;p&gt;When programmers are trying to decide between VB or C#, one of the factors that comes up is that C# developers generally get paid more than VB devs. I think this influences programmers to choose C# over VB if given the choice. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recently got to choose between VB and C# for a project and this influenced my decision to go with C# because it seemed that experience in C# was more valuable then experience in VB.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to why they get paid more, I think it is because the people who write the paychecks look at VB code and go &quot;oh I can understand that, it must be easy&quot;, while they look at C# code and go &quot;wow, you have to be a supergenius to understand what is going on!&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-12-10T14:32:14.283" />
  <row Id="25224" PostTypeId="2" ParentId="25087" CreationDate="2010-12-10T14:34:19.880" Score="2" ViewCount="" Body="&lt;p&gt;At my current employer, deadlines are pulled out of the air without discussing them with the people who will be performing the tasks. Consequently, working late is frequently the only way to even attempt to meet the deadlines. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;disclaimer: this week, I gave notice that I'm quitting. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-12-10T14:34:19.880" CommentCount="2" />
  <row Id="25225" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T14:37:43.950" Score="22" ViewCount="" Body="&lt;h2&gt;Jeff Atwood and Joel Spolsky&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;For creating and maintaining StackOverflow&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-12-10T14:37:43.950" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="8" />
  <row Id="25226" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T14:39:44.740" Score="5" ViewCount="" Body="&lt;h2&gt;&lt;strong&gt;&lt;a href=&quot;http://www.loudthinking.com/&quot; rel=&quot;nofollow&quot;&gt;David Heinemeier Hansson&lt;/a&gt;&lt;/strong&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Creator of &lt;a href=&quot;http://rubyonrails.org/&quot; rel=&quot;nofollow&quot;&gt;Ruby on Rails&lt;/a&gt; and partner of &lt;a href=&quot;http://37signals.com/&quot; rel=&quot;nofollow&quot;&gt;37signals&lt;/a&gt;. Rails development (and the work done by his company) has been changing a lot of attitudes and practices around programming in general, but especially web development. Convention-over-configuration, testability, extensibility, simplicity in design, etc.&lt;/p&gt;&#xA;" OwnerUserId="4127" LastEditorUserId="4032" LastEditorDisplayName="" LastEditDate="2010-12-11T04:02:10.880" LastActivityDate="2010-12-11T04:02:10.880" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="1" />
  <row Id="25227" PostTypeId="2" ParentId="25170" CreationDate="2010-12-10T14:43:56.827" Score="2" ViewCount="" Body="&lt;p&gt;As general good practice, there are a couple of principles to bear in mind.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Never trust the user. They are going to try and trash your stuff. Always escape user input- if it's going into a page, sanitise any html that may be in there. If it's going into a database use prepared statements. Assume the user means you harm at all times.&lt;/li&gt;&#xA;&lt;li&gt;Never trust the browser. You can do very clever things with browsers. Don't expect cookies or headers that they send to be trustworthy. &lt;/li&gt;&#xA;&lt;li&gt;Never trust other people's code. If you are writing a system that will present an API to developers, be careful of what access you give them and make sure those restrictions are absolutely strongly enforced.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Basically, where security is involved, the more paranoid you are the safer you are likely to be. And of course secure code is only half  the battle- no point having that if your database has a default password or you're running an old and vulnerable server version...&lt;/p&gt;&#xA;" OwnerUserId="4027" LastEditorUserId="4027" LastEditorDisplayName="" LastEditDate="2010-12-10T14:49:05.370" LastActivityDate="2010-12-10T14:49:05.370" />
  <row Id="25228" PostTypeId="2" ParentId="25154" CreationDate="2010-12-10T15:02:18.457" Score="3" ViewCount="" Body="&lt;p&gt;I see two problems with operator overloading.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Overloading changes the semantics of the operator, even if that is not intended by the programmer. For example, when you overload &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;, &lt;code&gt;||&lt;/code&gt; or &lt;code&gt;,&lt;/code&gt;, you lose the sequence points that are implied by the built-in variants of these operators (as well as the short-circuiting behaviour of the logical operators). For this reason, it is better not to overload these operators, even if the language allows it.&lt;/li&gt;&#xA;&lt;li&gt;Some people see operator overloading as such a nice feature, they start to use it everywhere, even if it is not the appropriate solution. This causes other people to over-react in the other direction and warn against the use of operator overloading.&#xA;I don't agree with either group, but take the middle ground: Operator overloading should be used sparingly and only when &#xA;&lt;ul&gt;&#xA;&lt;li&gt;the overloaded operator has the natural meaning for both the domain experts and the software experts. If those two groups do not agree on the natural meaning for the operator, don't overload it.&lt;/li&gt;&#xA;&lt;li&gt;for the type(s) involved, there is no natural meaning for the operator and the immediate context (preferably same expression, but no more than a few lines) always makes it clear what the meaning is of the operator. An example of this category would be &lt;code&gt;operator&amp;lt;&amp;lt;&lt;/code&gt; for streams.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5099" LastActivityDate="2010-12-10T15:02:18.457" CommentCount="2" />
  <row Id="25229" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T15:05:56.553" Score="8" ViewCount="" Body="&lt;h2&gt;Recursion is a function that calls itself.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;How to use it, when to use it and how to avoid bad design are important to know, which requires you to try it out for yourself, and understand what happens.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most important thing you need to know is to be very careful to not get a loop that never ends. &lt;a href=&quot;http://programmers.stackexchange.com/questions/25052/a-nice-explanation-for-recursion/25058#25058&quot;&gt;The answer from pramodc84&lt;/a&gt; to your question has this fault: It never ends...&lt;br&gt;&#xA;A recursive function must always check for a condition to determine if it should call itself again or not. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most classic example to use recursion, is to work with a tree with no static limits in depth. This is a task that you must use recursion.&lt;/p&gt;&#xA;" OwnerUserId="7768" LastEditorUserId="7768" LastEditorDisplayName="" LastEditDate="2011-01-12T09:31:22.660" LastActivityDate="2011-01-12T09:31:22.660" CommunityOwnedDate="2011-03-11T22:52:58.993" CommentCount="2" />
  <row Id="25230" PostTypeId="2" ParentId="25202" CreationDate="2010-12-10T15:07:11.523" Score="2" ViewCount="" Body="&lt;p&gt;Because you can do so much with so little.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;XSLT allows you to transform a (number of) well-formed XML document(s) or fragment(s) into something else, such as:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;an HTML page to serve to the end user.&lt;/li&gt;&#xA;&lt;li&gt;an XML file for input to an external system (e.g. PDF Writer)&lt;/li&gt;&#xA;&lt;li&gt;graphics, something like SVG or another tool.&lt;/li&gt;&#xA;&lt;li&gt;a SQL/CSV/database file for import into an analytics engine&lt;/li&gt;&#xA;&lt;li&gt;source code&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You can also write &lt;strong&gt;sophisticated rules&lt;/strong&gt; to take decisions on the data in the source XML file(s) along with some parameterization. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are &lt;strong&gt;functions&lt;/strong&gt; available for processing - similar to SQLite. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;strong&gt;manipulation of hierarchical data&lt;/strong&gt; is awesome - you can have rules that match tree structures like RegEx's match text strings. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has a &lt;strong&gt;very low barrier&lt;/strong&gt; to entry - just need a text editor and a modern Browser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At one company I worked for, we developed a system where 3 well-structured XML files CustomerRequirements.xml, Specifications.xml, TestCases.xml could be run through a variety of XSLT transformations to produce:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Customer-ready Requirements Document, for customer to sign off.&lt;/li&gt;&#xA;&lt;li&gt;List of work items =&gt; agile backlog.&lt;/li&gt;&#xA;&lt;li&gt;Customer-ready (if they want it) formal Specifications Document.&lt;/li&gt;&#xA;&lt;li&gt;List of manual tests that can be run by QA team (because code now implemented)&lt;/li&gt;&#xA;&lt;li&gt;A nicely-formatted QA test sheet for QA person to do manual testing.&lt;/li&gt;&#xA;&lt;li&gt;A List of Requirements not yet implemented.&lt;/li&gt;&#xA;&lt;li&gt;Documentation on how to deploy the project, including version info, where to pick up the build, the file 'manifest', etc.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Of course, all the interesting information had to be contained in the XML files for the XSLT to be able to generate these outputs, but, with a little bit of thought, this was all made possible. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, we built the XSLT step into our build process to make sure all docs were always up-to-date.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, it encouraged the developers to contribute to the documentation because it felt more like code and lived in version control.&lt;/p&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-12-10T15:17:55.880" LastActivityDate="2010-12-10T15:17:55.880" />
  <row Id="25231" PostTypeId="2" ParentId="25219" CreationDate="2010-12-10T15:09:35.400" Score="2" ViewCount="" Body="&lt;p&gt;You generate legal HTML that way, but I wouldn't recommend it. Putting a closing tag in a different file than the opening tag makes for poor readability and error prone design. As opposed to many other dubious designs I don't see any upside of this either, you will not be able to implement some smart trick because of this practice.&lt;/p&gt;&#xA;" OwnerUserId="8737" LastActivityDate="2010-12-10T15:09:35.400" CommentCount="5" />
  <row Id="25232" PostTypeId="2" ParentId="25181" CreationDate="2010-12-10T15:10:06.847" Score="1" ViewCount="" Body="&lt;p&gt;when you receive a memo that tells you to keep your desk tidy...your project is doomed&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-10T15:10:06.847" CommentCount="2" />
  <row Id="25233" PostTypeId="1" AcceptedAnswerId="25246" CreationDate="2010-12-10T15:10:18.600" Score="3" ViewCount="447" Body="&lt;p&gt;Why don't people take interest in studying the theoritical aspects of computers (Computer Science) as compared to the practical aspects (Computer Engineering)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words why is Computer &lt;strong&gt;Science&lt;/strong&gt; less popular than Computer &lt;strong&gt;Engineering&lt;/strong&gt; ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People &lt;em&gt;generally&lt;/em&gt; don't like discussing things related Theory of Computation, Compiler Design etc but take much interest in dealing with stuffs related to Software Design(&amp;amp; development), Computer Networking etc.&#xA;Why is it so?&lt;/p&gt;&#xA;" OwnerUserId="3534" LastActivityDate="2010-12-10T17:35:16.393" Title="Computer Science vs Computer Engineering" Tags="&lt;software-engineering&gt;&lt;computer-science&gt;" AnswerCount="7" CommentCount="1" />
  <row Id="25234" PostTypeId="1" CreationDate="2010-12-10T15:14:15.883" Score="28" ViewCount="794" Body="&lt;p&gt;I have noticed a behavior in myself that I call &quot;stopping point syndrome&quot;... it means I cannot stop working until I reach a &quot;stopping point&quot; (or I become exhausted).  In other words, if I am in the zone working on getting a feature completed, I won't stop until I get it done.   If it's a bug I'm working on, this effect is even more pronounced... I won't stop until it's fixed, or at the very least, understood.  Even though I work from a laptop and have VPN and could easily go home and pick up on the work later that evening, that fact does not help me leave work... it's like I'm afraid I will die before I find the bug.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a very hard time explaining this to family members who can't figure out why I never come home from work at the same time and sometimes come home at 11 pm.  Even managers have been mystified by this, and I've noticed that most of my colleagues have no trouble working the same hours every day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone else have this problem?  Should I be worried about this and/or try to change it?  If so how?&lt;/p&gt;&#xA;" OwnerUserId="4526" LastActivityDate="2010-12-13T23:00:04.797" Title="What to do about &quot;stopping point syndrome&quot;?" Tags="&lt;work&gt;" AnswerCount="19" CommentCount="5" FavoriteCount="2" />
  <row Id="25235" PostTypeId="2" ParentId="25154" CreationDate="2010-12-10T15:16:58.517" Score="4" ViewCount="" Body="&lt;p&gt;IMHO, language features such as operator overloading give the programmer more power.  And, as we all know, with great power comes great responsibility.  Features that give you more power also give you more ways to shoot yourself in the foot, and, obviously, should be used judiciously.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, it makes perfect sense to overload the &lt;code&gt;+&lt;/code&gt; or the &lt;code&gt;*&lt;/code&gt; operator for &lt;code&gt;class Matrix&lt;/code&gt; or &lt;code&gt;class Complex&lt;/code&gt;.  Everyone will instantly know what it means.  On the other hand, to me the fact that &lt;code&gt;+&lt;/code&gt; means concatenation of strings is not at all obvious, even though Java does this as a part of the language, and STL does for &lt;code&gt;std::string&lt;/code&gt; using operator overloading.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another good example of when operator overloading makes code more clear is smart pointers in C++.  You want the smart pointers to behave like regular pointers as much as possible, so it makes perfect sense to overload the unary &lt;code&gt;*&lt;/code&gt; and &lt;code&gt;-&amp;gt;&lt;/code&gt; operators.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In essence, operator overloading is nothing more than just another way to name a function.  And there is a rule for naming functions: the name must be descriptive, making it immediately obvious what the function does.  The same exact rule applies to operator overloading.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastEditorUserId="4365" LastEditorDisplayName="" LastEditDate="2010-12-10T19:14:02.307" LastActivityDate="2010-12-10T19:14:02.307" CommentCount="9" />
  <row Id="25236" PostTypeId="2" ParentId="25234" CreationDate="2010-12-10T15:17:32.150" Score="2" ViewCount="" Body="&lt;p&gt;Yes, I have this too. Well actually as I have got older its less pronounced.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also noticed that at the end of the day, and when tired, I make more mistakes. On arrival back to work the next day the solution becomes obvious and I have to rewrite a load of code. However, it takes a fraction of the time as it was the day before.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastEditorUserId="2297" LastEditorDisplayName="" LastEditDate="2010-12-10T15:35:30.677" LastActivityDate="2010-12-10T15:35:30.677" />
  <row Id="25237" PostTypeId="2" ParentId="25139" CreationDate="2010-12-10T15:17:42.923" Score="0" ViewCount="" Body="&lt;p&gt;@Kramii is correct; programmers will have to self-educate throughout their career&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Q: What have i learned successfully by myself?&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;A: Everything&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Teaching is a myth; the teacher can only make the information available, the student must listen and decide to learn or not, and what to learn. The teacher can only show you the path. In other words &lt;em&gt;all education is fundamentally self-education&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now if you just mean 'what did you learn outside of a classroom that was useful', my answer would be&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;A: Almost Everything&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;because when I was in school the universities were in general 12-15 years behind the market in what they taught. For example, during the day the university was 'teaching' me procedural programming using PL/1, and at night I was writing an object-oriented programming language in Assembly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since then, books and google are my teachers.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-10T15:17:42.923" CommentCount="4" />
  <row Id="25238" PostTypeId="2" ParentId="25234" CreationDate="2010-12-10T15:17:59.187" Score="7" ViewCount="" Body="&lt;p&gt;I think this is normal behaviour, same here, and the best way to handle it is NOT to start a new working point if it doesn't look like you can complete until your planned departure. You surely have enough busywork to do to fill those 50 minutes, don't you?&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-10T15:17:59.187" />
  <row Id="25239" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T15:20:23.140" Score="14" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Kent_Beck&quot; rel=&quot;nofollow&quot;&gt;Kent Beck&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;CRC Cards&lt;/li&gt;&#xA;&lt;li&gt;XP/Agile/TDD&lt;/li&gt;&#xA;&lt;li&gt;JUnit&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-10T15:20:23.140" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="1" />
  <row Id="25240" PostTypeId="2" ParentId="25166" CreationDate="2010-12-10T15:20:32.347" Score="0" ViewCount="" Body="&lt;p&gt;You didn't really say what you wanted to do, so how are we suppsed to give you advice?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You mention working with bad code and having to clean it up.  If you don't like that, I'd suggest not becoming a consultant.  Often times you are brought in to work on some in house system that is failing, and when you get in there, you will see really see how bad some code was built.  And it will probably be really bad if you are brought in.  Companies only start to care if the system starts to break, they don't care if your if statements aren't aligned or if you use Hungarian notation or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You obviously like accounting and math; how about getting a job with a firm that makes accounting software or tax software.&lt;/p&gt;&#xA;" OwnerUserId="6430" LastActivityDate="2010-12-10T15:20:32.347" CommentCount="3" />
  <row Id="25241" PostTypeId="2" ParentId="25233" CreationDate="2010-12-10T15:21:04.800" Score="1" ViewCount="" Body="&lt;p&gt;Probably because the world needs more computer engineers than computer scientists. There is so much software to write... but only that many theorems to express.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-10T15:21:04.800" />
  <row Id="25242" PostTypeId="2" ParentId="25234" CreationDate="2010-12-10T15:22:28.323" Score="24" ViewCount="" Body="&lt;p&gt;Happens to me all the time.  You'll be in the zone coding away and notice the clock... time to go home, but then you tell yourself, &quot;well, as soon as I get X done&quot;.  Then the next thing that happens is... &quot;well, as soon as I get X + Y done&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To fight this, I put a note in the code that says &quot;START HERE&quot; and I leave myself a post-it of what I was working on and whatever key was important to getting it done.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The bottom line is that the programmer in me LOVES when this happens, but it's important to balance this and not let it get out of hand, escpecially if you have a family.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-10T15:22:28.323" CommentCount="1" />
  <row Id="25243" PostTypeId="2" ParentId="25234" CreationDate="2010-12-10T15:22:41.433" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It's definitely a very efficient way to work if your life revolves around work.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been through a time where I had the same problem.  I worked all the time and wouldn't stop until I came to a point where everything was tied up and I could sit down next time with a completely clean slate.  Unfortunately, if not controlled, it can cut into time with family, friends, and other hobbies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Here are some tips that helped me focus my habit into something a little more manageable:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Check in early and often.  Make smaller changes so that a stopping point is closer!&lt;/li&gt;&#xA;&lt;li&gt;Use GTD.  Working in tasks forces you to break down your work into smaller chunks, so you have more stopping points.&lt;/li&gt;&#xA;&lt;li&gt;Use and stick to your calendar.  Pen (don't pencil) in events or sleep or food or whatever into your schedule and stick to it.  Set up reminders ahead of time so you can be aware that you need to get to a stopping point soon.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-12-10T15:22:41.433" CommentCount="2" />
  <row Id="25244" PostTypeId="2" ParentId="25233" CreationDate="2010-12-10T15:24:03.153" Score="6" ViewCount="" Body="&lt;p&gt;Why do most people take more interest in cars than in engines?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why do more people care about interior design and architecture than building materials?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why do more people want to see a movie than learn about the professional film cameras?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To all but a few, the final product is always more interesting.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-10T15:24:03.153" />
  <row Id="25245" PostTypeId="2" ParentId="25233" CreationDate="2010-12-10T15:24:30.550" Score="7" ViewCount="" Body="&lt;p&gt;Most programmers prefer to write code and to build software.  Theory is fine but &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;it's all talk until the code runs&quot;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-Ward Cunningham&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-10T15:24:30.550" CommentCount="1" />
  <row Id="25246" PostTypeId="2" ParentId="25233" CreationDate="2010-12-10T15:25:30.183" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;In other words why is Computer Science less popular than Computer Engineering?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;First it is a good question if there is a sufficient offer in both. The answer will be region-dependent. I, for instance, wasn't able to get into CS even if I wanted that very much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing is that the world has more practitioners than scientists, more doers than thinkers, more craftsmen than painters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;CS vs. CE just shows that once again.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-10T15:25:30.183" CommentCount="2" />
  <row Id="25247" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T15:25:31.123" Score="2" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/James_Martin_%28author%29&quot; rel=&quot;nofollow&quot;&gt;James Martin&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;A pioneer that most of us have never heard of. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Information Engineering discipline &lt;/li&gt;&#xA;&lt;li&gt;CASE tools&lt;/li&gt;&#xA;&lt;li&gt;Rapid Application Development (RAD)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-10T15:25:31.123" CommunityOwnedDate="2010-12-11T00:32:32.370" />
  <row Id="25248" PostTypeId="2" ParentId="7592" CreationDate="2010-12-10T15:25:52.973" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/1c54d1bd-d898-4705-903f-fa4a319b50f2&quot; rel=&quot;nofollow&quot;&gt;VS10x Code Map&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really miss this plugin in rare moments when I have to use VS 2008&lt;/p&gt;&#xA;" OwnerUserId="4512" LastActivityDate="2010-12-10T15:25:52.973" />
  <row Id="25249" PostTypeId="2" ParentId="25023" CreationDate="2010-12-10T15:26:55.227" Score="4" ViewCount="" Body="&lt;p&gt;eliminating technical debt yields less technical support and a better foundation for enhancements&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;always&lt;/h1&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-10T15:26:55.227" CommentCount="4" />
  <row Id="25250" PostTypeId="2" ParentId="25139" CreationDate="2010-12-10T15:29:38.937" Score="2" ViewCount="" Body="&lt;p&gt;A couple of random ramblings on the subject...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As all others have said, you are going to have to do a lot of self-study as your career progresses.  One thing that I haven't really seen spelled out here, though, is the reality is that you will find it very difficult to find that first job without some formal education in a related field, especially in a recession.  A lot of resumes pass over the &quot;filtering desk,&quot; and if there is nothing on there with related education on it, it is likely to be passed over.  You may squeak by if you have a lot of related experience, but it depends on how closely somebody reads your resume (which, in the first round, is unfortunately not very likely).  It's unclear if this applies to you, but it will apply to somebody, I'm sure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a (somewhat) unrelated note, self-study is great, but having the time to do so is even greater (and more rare, I would argue).  We all fit it in somehow, but if you are given the opportunity to take some time each day to work on learning something, grab it and hold on with all your might.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-12-10T15:29:38.937" />
  <row Id="25251" PostTypeId="2" ParentId="25135" CreationDate="2010-12-10T15:32:12.987" Score="1" ViewCount="" Body="&lt;p&gt;Generally speaking, no. I don't think it is anyone else's business if someone wants to quit, and it is not my place to tell work. In my mind, that would be the equivalent of telling a man's wife that her husband doesn't find her attractive any more. Not my business nor my call.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, as stated above, if there were prevailing circumstances... if the employee planned to somehow attack the company on departure (delete existing code and wipe out the backups) or plan the timing in such a way as to hurt the company (make a big scene on the day a multi-million dollar client is visiting) or maybe just leaving under high pressure stakes (we have a week to get this done and don't know how we're gonna make it with the few people we have in the first place) then maybe I might drop a hint that my boss needs to talk to this co-worker about their attitude or intentions.&lt;/p&gt;&#xA;" OwnerUserId="7024" LastActivityDate="2010-12-10T15:32:12.987" />
  <row Id="25252" PostTypeId="2" ParentId="24353" CreationDate="2010-12-10T15:36:32.533" Score="1" ViewCount="" Body="&lt;p&gt;Make a slight change in the GUI design standards, and assign the new employee to implement those GUI changes for you existing programs. This way he/she will get a practical introduction to the products you develop.&lt;/p&gt;&#xA;" OwnerUserId="7768" LastActivityDate="2010-12-10T15:36:32.533" />
  <row Id="25253" PostTypeId="1" AcceptedAnswerId="25257" CreationDate="2010-12-10T15:38:42.860" Score="10" ViewCount="670" Body="&lt;p&gt;This is a follow up to questions about &lt;a href=&quot;http://programmers.stackexchange.com/questions/24780/do-good-programmers-make-good-writers&quot;&gt;programming&lt;/a&gt; and &lt;a href=&quot;http://programmers.stackexchange.com/questions/17254/do-poor-writers-make-poor-programmers&quot;&gt;writing&lt;/a&gt;, and is related to &lt;a href=&quot;http://programmers.stackexchange.com/questions/5834/what-job-is-similar-to-programmers&quot;&gt;this question&lt;/a&gt; about which career options are similar to programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are popular and/or advisable career options for a top tier programmer, assuming he has burned himself out? What would be easy to learn, different enough that he can do it without feeling the burned out effects, and is proven (other programmers have successfully transitioned)?&lt;/p&gt;&#xA;" OwnerUserId="4091" LastActivityDate="2011-01-23T07:41:01.030" Title="What are advisable career options for a burnt-out programmer?" Tags="&lt;career-advice&gt;&lt;burnout&gt;" AnswerCount="14" CommentCount="3" FavoriteCount="4" />
  <row Id="25254" PostTypeId="2" ParentId="25253" CreationDate="2010-12-10T15:40:01.920" Score="6" ViewCount="" Body="&lt;p&gt;Stay a programmer, but look for a non-stressing job. Such jobs exist, fortunately. A career change probably only creates more stress.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-10T15:40:01.920" CommentCount="2" />
  <row Id="25255" PostTypeId="2" ParentId="25253" CreationDate="2010-12-10T15:40:34.213" Score="2" ViewCount="" Body="&lt;p&gt;Do a PhD in a field of interest, change employment to a more theoretical research based role.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-12-10T15:40:34.213" CommentCount="13" />
  <row Id="25256" PostTypeId="2" ParentId="25234" CreationDate="2010-12-10T15:46:25.330" Score="0" ViewCount="" Body="&lt;p&gt;It's natural, but I think it should be fought. Typically, I'll push on long past the point where I'm generating high-quality code, and I end up spending a lot of time in the morning fixing things that looked good when I was too tired to think straight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can usually tell when I'm getting irrational about it, but it helps to have someone around to slap you if you fail to heed the warning signs.&lt;/p&gt;&#xA;" OwnerUserId="9015" LastActivityDate="2010-12-10T15:46:25.330" />
  <row Id="25257" PostTypeId="2" ParentId="25253" CreationDate="2010-12-10T15:46:32.527" Score="8" ViewCount="" Body="&lt;p&gt;QA typically doesn't pay as well, but it has its own advantages.  I once found a horrible bug on late Friday afternoon, went home, and had a relaxing weekend.  My wife said she liked me better when working QA than working programming (it wasn't quite what I wanted, but it was a lucrative contract anyway, and I needed the money).&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-10T15:46:32.527" CommentCount="4" />
  <row Id="25258" PostTypeId="2" ParentId="25253" CreationDate="2010-12-10T15:48:26.833" Score="4" ViewCount="" Body="&lt;p&gt;Take a break. Relax, travel, see different things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then start your own project. It makes a big difference when you work for yourself.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-10T15:48:26.833" CommentCount="13" />
  <row Id="25259" PostTypeId="2" ParentId="25234" CreationDate="2010-12-10T15:49:19.403" Score="5" ViewCount="" Body="&lt;p&gt;Indeed I recognize this. I can obsess over a problem all night until I just have to give up, exhausted and frustrated. &lt;strong&gt;Brain Fog&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The funny thing is that I usually manage to solve the problem &lt;strong&gt;right away&lt;/strong&gt; when I get back to work in the morning. I guess that's because my brain works much better after a good sleep.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I have learned from all this is that there is &lt;strong&gt;no point in working all nighters&lt;/strong&gt; since the brain is many times more effective when it is well rested and energized. At least for me, but I suspect this is the same for everyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also see &lt;a href=&quot;http://www.mayford.ca/xp/sustainablepace.html&quot; rel=&quot;nofollow&quot;&gt;sustainable pace&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Death_march_%28software_development%29&quot; rel=&quot;nofollow&quot;&gt;death march&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-12-10T15:49:19.403" CommentCount="1" />
  <row Id="25260" PostTypeId="2" ParentId="25181" CreationDate="2010-12-10T15:49:29.673" Score="3" ViewCount="" Body="&lt;p&gt;My first sign on one was when they asked how many hours of overtime we each would commit to for the next ten weeks and offered salaried workers a bonus for working said overtime based on the success of the project and meeting deadlines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other major signs I've seen:&#xA;Requirements defintion goes over schedule and the end date is not moved. We were behind before we can even start. They took the time away from design, so we started with no database design and no site design but expected to deliver on time by, among other things, doing imports to tables not designed and created yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When items on the critical path are being done simultaneously instead of in order. (If I'm required to use tool X and programmer A is just starting to build it, it is going to delay my task.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When managers are committing code on Thanksgiving.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you start getting emails that have a datetime stamp of later than 11 pm and earlier than 6 am.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When every question about how to handle some complexity is met with the same answer, &quot;Don't worry about that yet.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When they are still making requirements changes the day betore you go to QA or go live.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you start having daily meetings that take several hours to discuss your lack of progress. Oh that would be because I'm in meetings all day. Daily 5 minute meeting fine, daily meeting that goes over an hour, not fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the database team and the aplication team don't talk to each other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the client can't provide the promised information on time. Especially when those are data import files and you need that data in the database to check to see how the code is working.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you consider installing a stop light outside some manager's office to let you know if it is safe to approach him that day.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastEditorUserId="1093" LastEditorDisplayName="" LastEditDate="2010-12-13T16:03:04.137" LastActivityDate="2010-12-13T16:03:04.137" CommentCount="2" />
  <row Id="25261" PostTypeId="2" ParentId="25139" CreationDate="2010-12-10T15:55:10.140" Score="1" ViewCount="" Body="&lt;p&gt;You need to get the point you don't need hand holding.  You must be at the point where you can pick up a book, look at a help file, find a tutorial, etc. and learn the principals you need for your job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, you need this for any and every job, not just programming.  The medium of how you self-learn may be different but you must do it.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-10T15:55:10.140" />
  <row Id="25262" PostTypeId="2" ParentId="25046" CreationDate="2010-12-10T15:59:02.473" Score="1" ViewCount="" Body="&lt;p&gt;I understand it but I have never explicitly used it.  I think anyone that calls themselves a programmer should know or learn what it is as much as they need to know what the stack and heap are.  Hey, everyone needs to know how min/max works on tic-tac-toe, via fancy recursion.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-10T15:59:02.473" />
  <row Id="25263" PostTypeId="2" ParentId="25087" CreationDate="2010-12-10T16:00:56.310" Score="0" ViewCount="" Body="&lt;p&gt;If I allow them to come in late, I allow them to work late.  I prefer the former more than the latter, however.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-10T16:00:56.310" />
  <row Id="25264" PostTypeId="2" ParentId="25087" CreationDate="2010-12-10T16:02:46.307" Score="1" ViewCount="" Body="&lt;p&gt;I had a co-worker discuss how the introduction to a 5pm Friday code-freeze meant that half of all bugs and 80% of all commits that broke builds were made from noon to five pm Friday.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have no idea if late hours work for your group or not. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest you check your VCS commit logs and see how often are bugs introduced after 5pm. 7pm? 10pm? Compare that to how often bugs are introduced from 10am to 4pm. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check your CI server. Are commits that broke the build usually near the deadlines? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next, check how often deadlines are missed due to bugs that were introduced by people trying to get something in before the deadline.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your problems might be bigger than just &lt;em&gt;not enough time&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-12-10T16:02:46.307" />
  <row Id="25265" PostTypeId="2" ParentId="25219" CreationDate="2010-12-10T16:04:21.497" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;What you have there is idiomatic HTML generation&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No problem with that - if you're happy to maintain it. As others have said, it is the final response that is important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How can you check your response?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use the &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/60/?id=60&quot; rel=&quot;nofollow&quot;&gt;Web Developer toolbar for Firefox&lt;/a&gt;, which will manage access to these validation sites from W3C:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://validator.w3.org/&quot; rel=&quot;nofollow&quot;&gt;XHTML validator&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jigsaw.w3.org/css-validator/&quot; rel=&quot;nofollow&quot;&gt;CSS validator&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Ideally, you should target XHTML Strict but your requirements may vary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;And the search engine?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It won't see how you generate the response, it will only see the response. Search engines on the whole prefer to see well-formed, standards compliant XHTML simply because it's easier for them to parse. However, check out the &lt;a href=&quot;http://www.google.com/support/webmasters/bin/answer.py?hl=en&amp;amp;answer=35291&quot; rel=&quot;nofollow&quot;&gt;Google web master notes&lt;/a&gt; for what they look for in order to promote your site to the top of the search results. (Hint: Google wants timely, relevant content that is considered to be the definitive resource as a result of others approving it).&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-10T16:04:21.497" CommentCount="1" />
  <row Id="25266" PostTypeId="2" ParentId="25154" CreationDate="2010-12-10T16:06:17.020" Score="2" ViewCount="" Body="&lt;p&gt;Based on the other answers I've seen, I can only conclude that the real objection to operator overloading is the desire for immediately obvious code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is tragic for two reasons: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&lt;li&gt;Carried to its logical conclusion, the principle that code should be immediately obvious would have us all still coding in COBOL.&lt;/li&gt;&#xA;&lt;li&gt;You don't learn from code that is immediately obvious. You learn from code that makes sense once you take some time to think about how it works.&lt;/li&gt;&lt;/ol&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-10T16:06:17.020" />
  <row Id="25267" PostTypeId="1" CreationDate="2010-12-10T16:15:19.897" Score="2" ViewCount="365" Body="&lt;p&gt;Is there any good reason (except &quot;GCC is better&quot;) to use the MinGW win32api/headers/libs with LLVM/Clang. Suppose that in two to three years, Clang has matured enough (in C++0x and performance) that it's a competitor/replacement and has its advantages over MSVC like GCC does on some accounts. Why on earth would one want to avoid using the MS library and header implementations of the win32 API, which is freely available in the form of the Windows SDK?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="9450" LastActivityDate="2010-12-23T00:55:37.147" Title="Reason to use mingw win32 headers and libs with LLVM/Clang" Tags="&lt;windows&gt;&lt;microsoft&gt;&lt;clang&gt;" AnswerCount="2" />
  <row Id="25268" PostTypeId="2" ParentId="25234" CreationDate="2010-12-10T16:34:08.647" Score="7" ViewCount="" Body="&lt;p&gt;programming, especially debugging, consumes a lot of short-term memory. stopping before you're done wipes out the cache, and wastes a lot of time getting back to where you were.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;so this is natural, efficient, and is not something to be &quot;fought against&quot; - though it should be planned for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;one thing that helps is to take notes while you're working, and when you stop make a note of the next thing to be done&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-10T16:34:08.647" CommentCount="2" />
  <row Id="25269" PostTypeId="2" ParentId="25234" CreationDate="2010-12-10T16:35:50.277" Score="0" ViewCount="" Body="&lt;p&gt;You need to keep this under control. It seems to me that you are currently unable to break your work into manageable pieces or are unable to estimate how long something will take. So you work until it's done. Perhaps you are being too competitive or are afraid you might not get your work done on time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a vicious circle and will not help you in the long run. It could lead to exhaustion, burnout, ... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So practice breaking your work up into smaller manageable achievable tasks. Try to estimate how long each task will take. No task should take longer than a couple of hours. Give yourself plenty of time to get this right. Give yourself time for breaks. And give yourself time to enjoy, learn, appreciate and experience other aspects of life, rather than programming.&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-12-10T16:35:50.277" CommentCount="1" />
  <row Id="25270" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T16:39:41.467" Score="0" ViewCount="" Body="&lt;p&gt;In life (as opposed to in a computer programme) recursion rarely happens under our direct control, because it can be confusing to make happen. Also, perception tends to be about the side effects, rather than being functionally pure, so if recursion is happening you might not notice it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recursion does happen out here in the world though. A lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good example is (a simplified version of) the water cycle:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The sun heats the lake &lt;/li&gt;&#xA;&lt;li&gt;The water goes up into sky and forms clouds &lt;/li&gt;&#xA;&lt;li&gt;The clouds drift over to a mountain &lt;/li&gt;&#xA;&lt;li&gt;At the mountain the air becomes too cold for their moisture to be retained &lt;/li&gt;&#xA;&lt;li&gt;Rain falls&lt;/li&gt;&#xA;&lt;li&gt;A river forms&lt;/li&gt;&#xA;&lt;li&gt;The water in the river runs into the lake&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This is a cycle that causes its self to happen again. It is recursive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another place you can get recursion is in English (and human language in general). You might not recognise it at first, but the way we can generate a sentence is recursive, because the rules allow us to embed one instance of a symbol in side another instance of the same symbol. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From Steven Pinker's The Language Instinct:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;if either the girl eats ice cream or the girl eats candy then the boy eats hot dogs&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That is a whole sentence that contains other whole sentences:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;the girl eats ice cream&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;the girl eats candy&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;the boy eats hot dogs&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The act of understanding the full sentence involves understanding smaller sentences, which use the same set of mental trickery to be understood as the full sentence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To understand recursion from a programming perspective it's easiest to look at a problem that can be solved with recursion, and understand why it should be and what that means you need to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the example I will use the greatest common divisor function, or gcd for short.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have your two numbers &lt;code&gt;a&lt;/code&gt; and &lt;code&gt;b&lt;/code&gt;. To find their gcd (assuming neither is 0) you need to check if &lt;code&gt;a&lt;/code&gt; is evenly divisible into &lt;code&gt;b&lt;/code&gt;. If it is then &lt;code&gt;b&lt;/code&gt; is the gcd, otherwise you need to check for the gcd of &lt;code&gt;b&lt;/code&gt; and the remainder of &lt;code&gt;a/b&lt;/code&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should already be able to see that this is a recursive function, as you have the gcd function calling the gcd function. Just to hammer it home, here it is in c# (again, assuming 0 never gets passed in as a parameter):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int gcd(int a, int b)&#xA;{   &#xA;    if (a % b == 0) //this is a stopping condition&#xA;    {&#xA;        return b;&#xA;    }&#xA;&#xA;    return (gcd(b, a % b)); //the call to gcd here makes this function recursive&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In a programme, it is important to have a stopping condition, otherwise you function will recur forever, which will eventually cause a stack overflow!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason to use recursion here, rather than a while loop or some other iterative construct, is that as you read the code it tells you what it is doing and what will happen next, so it is easier to figure out if it is working correctly.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastEditorUserId="1069" LastEditorDisplayName="" LastEditDate="2010-12-10T16:45:30.697" LastActivityDate="2010-12-10T16:45:30.697" CommunityOwnedDate="2011-03-11T22:52:58.993" CommentCount="6" />
  <row Id="25271" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T16:41:41.203" Score="30" ViewCount="" Body="&lt;h2&gt;Larry Page and Sergey Brin&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Google are proof that application of computer science and quality engineering matter. They have raised the bar considerably on what constitutes good engineering. They have moved the internet and web applications to the next level.&lt;/p&gt;&#xA;" OwnerUserId="6891" LastEditorUserId="4032" LastEditorDisplayName="" LastEditDate="2010-12-11T21:15:02.267" LastActivityDate="2010-12-11T21:15:02.267" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="1" />
  <row Id="25272" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T16:48:29.840" Score="-1" ViewCount="" Body="&lt;h2&gt; &quot;A function that calls itself&quot;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;That's pretty much it...&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-10T16:48:29.840" CommunityOwnedDate="2011-03-11T22:52:58.993" CommentCount="3" />
  <row Id="25273" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T16:49:02.327" Score="0" ViewCount="" Body="&lt;p&gt;recursion: see recursion&lt;/p&gt;&#xA;" OwnerUserId="9469" LastActivityDate="2010-12-10T16:49:02.327" CommunityOwnedDate="2011-03-11T22:52:58.993" />
  <row Id="25275" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T16:51:21.767" Score="17" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Linus_Torvalds&quot; rel=&quot;nofollow&quot;&gt;Linus Torvalds&lt;/a&gt;&lt;/h2&gt;&#xA;" OwnerUserId="4032" LastActivityDate="2010-12-10T16:51:21.767" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="8" />
  <row Id="25276" PostTypeId="1" AcceptedAnswerId="25284" CreationDate="2010-12-10T16:54:12.077" Score="44" ViewCount="2929" Body="&lt;p&gt;I've noticed a lot of questions lately relating to different abstraction techniques, and answers saying basically that the techniques in question are &quot;too clever.&quot; I would think that part of our jobs as programmers is to determine the best solutions to the problems we are given to solve, and cleverness is helpful in doing that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is: are the people who think certain abstraction techniques are too clever opposed to cleverness &lt;em&gt;per se&lt;/em&gt;, or is there some other reason for the objection?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: &lt;a href=&quot;http://shaurz.wordpress.com/2008/03/11/haskell-style-parser-combinators-in-scheme/&quot; rel=&quot;nofollow&quot;&gt;This parser combinator&lt;/a&gt; is an example of what I would consider to be clever code. I downloaded this and looked it over for about half an hour. Then I stepped through the macro expansion on paper and saw the light. Now that I understand it, it seems much more elegant than the Haskell parser combinator.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastEditorUserId="5621" LastEditorDisplayName="" LastEditDate="2010-12-11T00:42:39.020" LastActivityDate="2011-02-08T20:15:34.070" CommunityOwnedDate="2011-01-08T19:36:34.897" Title="Why is cleverness considered harmful in programming by some people?" Tags="&lt;abstraction&gt;" AnswerCount="26" CommentCount="17" FavoriteCount="12" />
  <row Id="25277" PostTypeId="2" ParentId="25234" CreationDate="2010-12-10T16:55:16.383" Score="0" ViewCount="" Body="&lt;p&gt;I have a stopping point - it's at about 1:30am. I can stay awake past then, but there's no way I will get any work of any sort done. And I'll be worth nothing the next day unless I sleep in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I've learned to stop working after 11 and &lt;strong&gt;go to bed.&lt;/strong&gt; That way I am fresh the next day and can work steadily through the week.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-10T16:55:16.383" />
  <row Id="25278" PostTypeId="2" ParentId="25276" CreationDate="2010-12-10T16:58:33.023" Score="2" ViewCount="" Body="&lt;p&gt;If the 'clever' solution is difficult to figure out, then it shouldn't be used. For instance, if through side effects you can contract a complex calculation to one line, it's clever. But if it takes an hour for someone else to figure out what in the world you did, it's too clever.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-10T16:58:33.023" CommunityOwnedDate="2011-01-08T19:36:34.897" CommentCount="3" />
  <row Id="25280" PostTypeId="2" ParentId="25276" CreationDate="2010-12-10T16:59:27.360" Score="27" ViewCount="" Body="&lt;p&gt;The best solution is not always the most clever solution. Sometimes simple solutions are equally good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Software you always need to think in terms of maintainability. If a piece of code is too clever for someone who is going to maintain it, I would say that cleverness is not worth it.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-12-10T16:59:27.360" CommunityOwnedDate="2011-01-08T19:36:34.897" CommentCount="7" />
  <row Id="25281" PostTypeId="2" ParentId="25276" CreationDate="2010-12-10T17:02:35.863" Score="61" ViewCount="" Body="&lt;h1&gt;KISS Principle&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Keep it simple, stupid. Clever solutions are great, but often the simplest straight forward solution is best.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Brian Kernighan&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-12-14T14:10:10.827" LastActivityDate="2010-12-14T14:10:10.827" CommunityOwnedDate="2011-01-08T19:36:34.897" CommentCount="9" />
  <row Id="25282" PostTypeId="2" ParentId="25233" CreationDate="2010-12-10T17:03:44.437" Score="0" ViewCount="" Body="&lt;p&gt;As Jetti said I think your talking about Software Engineering vs Computer Science. Although I don't think you can compare the two in academia.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;CS in general is much harder to understand than basic software design principles. This is because CS is very math heavy, trying to deal with discrete logic, or trying to figure out the O() of a complex algorithm. Most people don't like to study things that are hard unless they're in school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also CS is not as applicable to the real world as software engineering. Most that write code do it for a living, so really there's no purpose of learning those complex CS theories.&lt;/p&gt;&#xA;" OwnerUserId="2538" LastActivityDate="2010-12-10T17:03:44.437" />
  <row Id="25283" PostTypeId="2" ParentId="25276" CreationDate="2010-12-10T17:06:16.337" Score="40" ViewCount="" Body="&lt;p&gt;Fools ignore complexity; pragmatists suffer it; experts avoid it; geniuses remove it.&#xA;-- Alan Perlis&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-10T17:06:16.337" CommunityOwnedDate="2011-01-08T19:36:34.897" CommentCount="2" />
  <row Id="25284" PostTypeId="2" ParentId="25276" CreationDate="2010-12-10T17:07:46.013" Score="123" ViewCount="" Body="&lt;p&gt;Simple solutions are better for long-term maintenance. And it's not always just about language familiarity. A complex line (or lines) takes time to figure out even if you're an expert in the given language. You open up a file and start reading: &quot;ok, simple, simple, got it, yep, WTF?!&quot; Your brain comes to a screeching halt and you now have to stop and decipher a complicated line. Unless there was a measurable, concrete reason for that implementation, it is &quot;too clever&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Figuring out what's going on gets progressively harder as complexity grows from a clever method to a clever class to a clever pattern. Aside from well-known approaches, you have to figure out the thought process that went into creating a &quot;clever&quot; solution, which can be quite difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I hate avoiding a pattern (when its use is justified) just because someone might not understand it. It's up to us as developers to keep learning and if we don't understand something, it's a reason to learn it, not to avoid it.&lt;/p&gt;&#xA;" OwnerUserId="226" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2010-12-10T17:21:21.697" LastActivityDate="2010-12-10T17:21:21.697" CommunityOwnedDate="2011-01-08T19:36:34.897" CommentCount="11" />
  <row Id="25285" PostTypeId="1" CreationDate="2010-12-10T17:15:53.610" Score="12" ViewCount="2067" Body="&lt;p&gt;There are quite a few different Continuous Integration (CI) frameworks out there and I'm wondering which is the most popular.  Which frameworks have you used at firms where you work?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any reason one CI framework is more popular than another - perhaps this is to do with the features it offers, things that integrate into it or maybe its just marketing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems like continuous integration is used more in the Java and .net worlds than say ruby or python.  Why is this?&lt;/p&gt;&#xA;" OwnerUserId="9470" LastEditorUserId="9470" LastEditorDisplayName="" LastEditDate="2010-12-10T17:23:16.040" LastActivityDate="2011-01-13T20:16:10.117" Title="Which Continuous Integration framework do you use and why?" Tags="&lt;java&gt;&lt;c#&gt;&lt;development-process&gt;&lt;builds&gt;" AnswerCount="11" FavoriteCount="7" />
  <row Id="25286" PostTypeId="2" ParentId="25276" CreationDate="2010-12-10T17:16:19.453" Score="16" ViewCount="" Body="&lt;p&gt;cleverness is a tool; by itself it is not harmful. It only becomes harmful in context where it is not necessary.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-10T17:16:19.453" CommunityOwnedDate="2011-01-08T19:36:34.897" CommentCount="1" />
  <row Id="25287" PostTypeId="2" ParentId="25276" CreationDate="2010-12-10T17:20:51.857" Score="3" ViewCount="" Body="&lt;p&gt;Performant, maintainable, timely and cheap are the ways I measure a solution.  I guess clever could also be part of a solution as long as it doesn't negatively affect those qualities.&lt;/p&gt;&#xA;" OwnerUserId="6398" LastActivityDate="2010-12-10T17:20:51.857" CommunityOwnedDate="2011-01-08T19:36:34.897" CommentCount="2" />
  <row Id="25288" PostTypeId="2" ParentId="25139" CreationDate="2010-12-10T17:24:27.200" Score="1" ViewCount="" Body="&lt;p&gt;I learned most of my C/C++ knowledge in class, but all of my other programming languages, all of my theory, all of my project management, and tons of other knowledge that makes me the hacker I am were self-taught.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As others have said, self-education in our industry is not just good, it's &lt;em&gt;necessary&lt;/em&gt;.  This isn't like being a plumber or baking bread: technology is always evolving, and we have to move with it or become irrelevant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's worth asking: what are the implications of this?  The best hackers aren't just code monkeys spitting out code -- we take the time to learn the big-picture stuff.  Algorithms, complexity, language design, etc. will stay with us and serve us well no matter what language we find ourselves using, or what we find ourselves using it for.  I've seen this type of hacker jump from one part of the tech industry to a completely different one, effortlessly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Too many people think the &quot;big picture&quot; concepts are above the heads of all but academics, and I strongly disagree.  When you take the time to learn them, you'll find that some are already practiced intuitively by good coders, and the rest make sense once you've become familiar with them.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-10T17:24:27.200" />
  <row Id="25289" PostTypeId="2" ParentId="25253" CreationDate="2010-12-10T17:26:52.060" Score="2" ViewCount="" Body="&lt;p&gt;Find a job as a CTO or high-level manager.  There's a lot less coding involved, but your skills are still in demand as a mentor to more junior members of the team.  You'll be stretched in a lot of new and interesting directions and still leveraging the skills you've spent your entire career amassing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, finding a job like that is easier said than done, but if you're really a top-tier programmer, you should be able to find some kind of managerial position fairly easily and work your way up from there.&lt;/p&gt;&#xA;" OwnerUserId="9475" LastActivityDate="2010-12-10T17:26:52.060" />
  <row Id="25290" PostTypeId="2" ParentId="25285" CreationDate="2010-12-10T17:28:00.257" Score="20" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://hudson-ci.org/&quot; rel=&quot;nofollow&quot;&gt;Hudson&lt;/a&gt;. Reason: It is simple (simple to install and to use) and has great flexibility. The plugins add nearly every functionality I can think of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some years ago I used &lt;a href=&quot;http://damagecontrol.codehaus.org/&quot; rel=&quot;nofollow&quot;&gt;damagecontrol&lt;/a&gt;. It was also simple to use, but hadn't the plugins. But the author decided that he would give up on the simple solution and started development of a new version, that consisted of different servers communicating with each other (what the hell?). That didn't worked well and the project was given up. I was on the search some time, but neither cruisecontrol (too complicated) or continuum really got me. Until hudson, that worked from the first moment for me.&lt;/p&gt;&#xA;" OwnerUserId="7654" LastEditorUserId="7654" LastEditorDisplayName="" LastEditDate="2010-12-10T18:11:15.740" LastActivityDate="2010-12-10T18:11:15.740" CommentCount="7" />
  <row Id="25291" PostTypeId="2" ParentId="25253" CreationDate="2010-12-10T17:30:42.370" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0151804/&quot; rel=&quot;nofollow&quot;&gt;Construction Worker&lt;/a&gt;  :)&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-12-10T17:30:42.370" CommentCount="2" />
  <row Id="25292" PostTypeId="2" ParentId="25234" CreationDate="2010-12-10T17:33:49.640" Score="2" ViewCount="" Body="&lt;p&gt;I had this problem until I got dogs (two). I have to be home by a certain time or clean up urine, might not be what your are looking for but it works as a strong motivator. I also agree I almost always find the solution to be obvious in the morning.&lt;/p&gt;&#xA;" OwnerUserId="6908" LastActivityDate="2010-12-10T17:33:49.640" />
  <row Id="25293" PostTypeId="2" ParentId="25285" CreationDate="2010-12-10T17:34:27.623" Score="5" ViewCount="" Body="&lt;p&gt;Personally, I've only ever used CruiseControl and CruiseControl.Net.  The reason for this has to do with economics.  They are reasonably stable and once you set them up, there really is little you need to do to maintain it.  The user community is usually very helpful, and it can be extended to your needs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, there are a couple commercial offerings available that I am aware of (one by JetBrains, the other by Atlassian) which offer a better set up experience and commercial support.  I've been meaning to try these offerings but really haven't had a chance yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;CI tools have a more important role to play with compiled languages than interpreted languages, but that isn't to say that the CI tool is wasted on interpreted languages.  When you have several projects that depend on each other, and you want to make sure a change doesn't accidentally break it's dependencies--CI tools are invaluable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's three general classes of problems that CI tools can help you catch:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Compile errors -- if the signature of a class changes in a way that breaks dependencies, it's best to know about it before the waining hours of a deliverable.&lt;/li&gt;&#xA;&lt;li&gt;Logic errors -- if the behavior of a class changes in a way that breaks dependencies, it's best to know about it early.  This has to be checked by some sort of automated testing, most commonly unit testing.&lt;/li&gt;&#xA;&lt;li&gt;Acceptance Testing -- if you have an automated suite of tests to run on the finished product, it's best to run them often.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Interpreted languages are not compiled, so there are no compilation errors to catch.  However, the other two problems are common enough that CI tools are useful for projects in Ruby/Python/Perl/etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key word in both the logic errors and acceptance testing points is &quot;automated&quot; testing.  If you don't have a suite of tests a machine can run, then you really are missing the greater benefits of CI tools.  Automated suites can be built up with time, so you can start small.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See this nice chart for feature comparisons of a large number of CI Tools (many of which I didn't know about):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix&quot; rel=&quot;nofollow&quot;&gt;http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6509" LastEditorUserId="6509" LastEditorDisplayName="" LastEditDate="2010-12-10T17:40:38.247" LastActivityDate="2010-12-10T17:40:38.247" CommentCount="2" />
  <row Id="25294" PostTypeId="2" ParentId="25233" CreationDate="2010-12-10T17:35:11.993" Score="0" ViewCount="" Body="&lt;p&gt;I took CE and we &lt;em&gt;did&lt;/em&gt; study compilers, operating systems, algorithms &amp;amp; data structures.  However that was only about one course per term.  The curriculum was mostly hardware (and math) related.  It was very close to an EE degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm surprised you think CE is more popular.  I always thought there were more CS grads than CE grads around.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-12-10T17:35:11.993" />
  <row Id="25295" PostTypeId="2" ParentId="25233" CreationDate="2010-12-10T17:35:16.393" Score="0" ViewCount="" Body="&lt;p&gt;I don't think the problem (if there is one) is that Computer Science is less popular than software engineering -- the problem, if any, is that those two disciplines are so often divorced from one another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An understanding of algorithms, language design, complexity theory, etc. helps one produce better quality code, and makes one's skills more portable across languages, platforms, and industry segments.  Unfortunately, a lot of software engineers feel like they are &quot;just&quot; coders, and that theory is really for academics, not practitioners.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-10T17:35:16.393" />
  <row Id="25296" PostTypeId="2" ParentId="25181" CreationDate="2010-12-10T17:41:09.930" Score="1" ViewCount="" Body="&lt;p&gt;You're &quot;90% done&quot;, the delivery is next week, but it's ok because all you have left is &quot;testing&quot;.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-12-10T17:41:09.930" CommentCount="1" />
  <row Id="25298" PostTypeId="2" ParentId="25067" CreationDate="2010-12-10T17:44:24.030" Score="2" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/PCFhC.jpg&quot; alt=&quot;Managing Humans book cover&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.managinghumans.com/pitch.html&quot; rel=&quot;nofollow&quot;&gt;Managing Humans&lt;/a&gt;, aka the collection of managerial stuff from &lt;a href=&quot;http://randsinrepose.com&quot; rel=&quot;nofollow&quot;&gt;Rands In Repose&lt;/a&gt;, is worth the read, and funny to boot. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A ton of truth concentrated down to its essence.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-12-10T17:44:24.030" />
  <row Id="25299" PostTypeId="2" ParentId="25087" CreationDate="2010-12-10T17:45:38.697" Score="0" ViewCount="" Body="&lt;p&gt;I work for a start-up company and have a vested interest in the company doing well in the form of stock options.  As such, I'm willing to put in extra time, although no one is &quot;on my back&quot; or anything like that about putting in significant extra time.  Albeit, part of their decision in hiring me in the first place is that they knew I was the type of person who would be okay with putting in extra hours in the first place, which is a mentality that all the developers here share.&lt;/p&gt;&#xA;" OwnerUserId="9476" LastActivityDate="2010-12-10T17:45:38.697" />
  <row Id="25300" PostTypeId="2" ParentId="25276" CreationDate="2010-12-10T17:49:09.270" Score="6" ViewCount="" Body="&lt;p&gt;Aside from the theory answers listed, often this gets used in the context of too clever for everyone else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Move between a top tier performance intensive team and a medium tier maintenance team sometime to see the real life differences in what is &quot;too clever&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Leaving out the theory arguments, too clever is often based on what the least skilled team members can work with reasonably, so it is very relative to the environment.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-12-10T17:49:09.270" CommunityOwnedDate="2011-01-08T19:36:34.897" CommentCount="4" />
  <row Id="25303" PostTypeId="2" ParentId="25285" CreationDate="2010-12-10T18:10:16.490" Score="6" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.jetbrains.com/teamcity/&quot; rel=&quot;nofollow&quot;&gt;TeamCity&lt;/a&gt; at work and at home. It has great support for a variety of build runners and is extensible via plugins.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not dealing with piles of XML for configuration is a huge plus in my books and the free version is sufficient for my home needs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One problem I ran into with TeamCity has to do with trying to get it to automatically version .NET assemblies. I had to set up a relatively complicated workaround, but once it was in place, it worked like a charm.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-10T18:10:16.490" CommentCount="1" />
  <row Id="25304" PostTypeId="2" ParentId="25234" CreationDate="2010-12-10T18:11:10.853" Score="2" ViewCount="" Body="&lt;p&gt;I think it happens to all programmers at times.  I think it is caused by fear.  Fear that the next day you will completely forget what you are doing now.  Then you would have to spend a lot of time going over stuff you've already gone over to find out what you left half-done.  This is very inefficient.  In my experience, most programmers &lt;em&gt;hate&lt;/em&gt; inefficiency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To combat this, take notes of where you are and what you're doing for the next day, then bribe yourself with something not at work to get yourself moving.&lt;/p&gt;&#xA;" OwnerUserId="4971" LastEditorUserId="4971" LastEditorDisplayName="" LastEditDate="2010-12-12T22:52:54.890" LastActivityDate="2010-12-12T22:52:54.890" CommentCount="6" />
  <row Id="25305" PostTypeId="1" AcceptedAnswerId="25309" CreationDate="2010-12-10T18:11:50.637" Score="5" ViewCount="147" Body="&lt;p&gt;I decided to try to contribute Firefox development, and they use Mercurial for source control. In the documentation about using Mercurial it was advised to choose a diff program and to do it before you start coding. They list a bunch of options, one of which appears to be the standard Unix/Linux diff program, which I'm somewhat familiar with via basic use. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing is, I hadn't realized that the diff program can even be an issue and I have a feeling that I won't know how to pick one until I pick the wrong one and get screwed by it somehow. So to skip this unnecessary hurdle, I'd like to ask what should I look at when choosing a diff program, and in what cases is the choice important (and in what way)? &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-12-10T19:49:54.897" Title="Choosing a diff program for Mercurial" Tags="&lt;mercurial&gt;&lt;diff&gt;" AnswerCount="3" />
  <row Id="25306" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T18:18:04.770" Score="6" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.stevemcconnell.com/&quot; rel=&quot;nofollow&quot;&gt;Steve McConnell&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;br&gt;&#xA;I can't believe nobody answered this till now. The man wrote the programmer bible: &lt;a href=&quot;http://cc2e.com/&quot; rel=&quot;nofollow&quot;&gt;Code complete&lt;/a&gt; (2nd edition :D). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;He influenced, influences and will influence any decent developer out there.&lt;/p&gt;&#xA;" OwnerUserId="7197" LastEditorUserId="7197" LastEditorDisplayName="" LastEditDate="2010-12-10T19:16:38.220" LastActivityDate="2010-12-10T19:16:38.220" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="2" />
  <row Id="25307" PostTypeId="2" ParentId="25253" CreationDate="2010-12-10T18:19:30.397" Score="0" ViewCount="" Body="&lt;p&gt;I'd recommend getting involved with an open source project in your free time. Not only does it feel good to contribute to something other people use, or that you may use, but just switching up the monotonous cycle of sit at work, code all day and go home leaving without feeling fulfilled.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can also give you a chance to branch out of your comfortable code zone, and try something new while also engaging with a new group of developers.&lt;/p&gt;&#xA;" OwnerUserId="9482" LastActivityDate="2010-12-10T18:19:30.397" CommentCount="2" />
  <row Id="25308" PostTypeId="2" ParentId="25276" CreationDate="2010-12-10T18:23:37.663" Score="0" ViewCount="" Body="&lt;p&gt;Because often people don't know a language, idioms and patterns. They could take a book and learn it, but they don't. And because of those people you should write simple code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not a cleverness. It's a knowledge.&lt;/p&gt;&#xA;" OwnerUserId="7270" LastActivityDate="2010-12-10T18:23:37.663" CommunityOwnedDate="2011-01-08T19:36:34.897" CommentCount="4" />
  <row Id="25309" PostTypeId="2" ParentId="25305" CreationDate="2010-12-10T18:25:25.987" Score="4" ViewCount="" Body="&lt;p&gt;You want a program that can display differences and navigate between them quickly and easily.  If you're using it with a VCS, especially a DVCS like Mercurial, you'll want built-in merge support as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd recommend &lt;a href=&quot;http://www.scootersoftware.com/&quot; rel=&quot;nofollow&quot;&gt;Beyond Compare&lt;/a&gt;.  It's intuitive and easy to use, they've got versions for Windows and Linux, and the Pro version (which doesn't cost all that much) has a very useful three-way merge feature.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-10T18:25:25.987" />
  <row Id="25310" PostTypeId="2" ParentId="25253" CreationDate="2010-12-10T18:25:59.420" Score="2" ViewCount="" Body="&lt;p&gt;I'm guessing your present employer would prefer to not lose you. If they don't care, that may be the problem. Consider a change to your existing position and be sincere about getting out of this funk. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try technical support, that should send you running back to programming.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-10T18:25:59.420" CommentCount="1" />
  <row Id="25311" PostTypeId="2" ParentId="25305" CreationDate="2010-12-10T18:26:56.803" Score="1" ViewCount="" Body="&lt;p&gt;For me personally, I've used two different programs, &lt;a href=&quot;http://kdiff3.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;kdiff3&lt;/a&gt; and &lt;a href=&quot;http://www.perforce.com/perforce/products/merge.html&quot; rel=&quot;nofollow&quot;&gt;p4merge&lt;/a&gt;.  I believe they both run off the unix &lt;code&gt;diff&lt;/code&gt;.  In my limited experience, you can't really go wrong with either of these diff programs as they have always produced identical results for me.  The main factor is personal preference.  The program &lt;code&gt;kdiff3&lt;/code&gt; is more configurable, but I prefer &lt;code&gt;p4merge&lt;/code&gt; when I am actually merging files (&lt;code&gt;kdiff3&lt;/code&gt; requires an additional step to start merging).  &lt;code&gt;p4merge&lt;/code&gt; has a little bit better looking interface.&lt;/p&gt;&#xA;" OwnerUserId="9485" LastActivityDate="2010-12-10T18:26:56.803" />
  <row Id="25312" PostTypeId="2" ParentId="25276" CreationDate="2010-12-10T18:31:45.790" Score="0" ViewCount="" Body="&lt;p&gt;This Is relevant but may be offensive for some: &lt;a href=&quot;http://vimeo.com/17420638&quot; rel=&quot;nofollow&quot;&gt;Why Ruby?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9401" LastEditorUserId="9401" LastEditorDisplayName="" LastEditDate="2010-12-11T01:01:21.987" LastActivityDate="2010-12-11T01:01:21.987" CommunityOwnedDate="2011-01-08T19:36:34.897" CommentCount="7" />
  <row Id="25313" PostTypeId="2" ParentId="25234" CreationDate="2010-12-10T18:31:57.037" Score="1" ViewCount="" Body="&lt;p&gt;I think it's the programmer's nature. Sometimes you may have to leave early before you start work on a new problem. With all the extra time you've put in, no need to feel guilty. Then you have to be careful not to think about it too much.  Be prepared to tackle it first thing the next morning. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-10T18:31:57.037" />
  <row Id="25314" PostTypeId="1" AcceptedAnswerId="25318" CreationDate="2010-12-10T18:33:23.950" Score="4" ViewCount="162" Body="&lt;p&gt;I'm looking around at some of my fellow programmers, and it has become apparent that we've all resigned to mediocrity because the things we want to change are no longer in our control. Nobody is motivated, and the software we work with is stale, but the decision to update it is not within our grasp, and would be a significant undertaking. Want to make modifications? Do it in your own time with no pay. Got ideas for new features? Great, give them to us with no reward, and no percentages. Most of us have checked out mentally, and the best and brightest are leaving. In this situation is there a way to re-motivate yourself (while at work), that gives you some control back, and a new sense of joy?&lt;/p&gt;&#xA;" OwnerUserId="9483" LastActivityDate="2010-12-10T19:14:11.870" Title="What do you do when you're de-motivated, and appreciation and recognition are giving way to status quo?" Tags="&lt;career&gt;&lt;culture&gt;&lt;incentives&gt;" AnswerCount="4" FavoriteCount="2" />
  <row Id="25315" PostTypeId="2" ParentId="25253" CreationDate="2010-12-10T18:34:07.910" Score="5" ViewCount="" Body="&lt;p&gt;Become a high school computer science teacher. The &lt;a href=&quot;http://csta.acm.org/&quot; rel=&quot;nofollow&quot;&gt;CSTA (Computer Science Teachers Association)&lt;/a&gt; wants to add thousands of teaching positions in the next few years. And the US needs it, as CS is increasingly being viewed by administrators as nothing more than &quot;application fluency.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the US, you'll need a teaching credential, but it can be earned in a year or so of training. A small price to pay for making a difference in the future career aspirations of our teenagers who are increasingly being lost to more &quot;glamorous&quot; fields such as accounting (seriously).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also check out &lt;a href=&quot;http://www.csedweek.org/&quot; rel=&quot;nofollow&quot;&gt;CSEdWeek&lt;/a&gt;, going on now! (Dec 6-11, 2010)&lt;/p&gt;&#xA;" OwnerUserId="3790" LastEditorUserId="3790" LastEditorDisplayName="" LastEditDate="2010-12-10T19:35:15.713" LastActivityDate="2010-12-10T19:35:15.713" CommentCount="2" />
  <row Id="25316" PostTypeId="2" ParentId="25052" CreationDate="2010-12-10T18:44:28.140" Score="-1" ViewCount="" Body="&lt;p&gt;I like to use this one:&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;How do you walk to the store?&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;If you're at the entrance to the store, simply go through it.&#xA;Otherwise, take one step, then walk the rest of the way to the store.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's critical to include three aspects:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A trivial base case&lt;/li&gt;&#xA;&lt;li&gt;Solving a small piece of the problem&lt;/li&gt;&#xA;&lt;li&gt;Solving the rest of the problem recursively&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;We actually use recursion a lot in daily life; we just don't think of it that way.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastEditorUserId="3790" LastEditorDisplayName="" LastEditDate="2011-02-18T03:17:44.097" LastActivityDate="2011-02-18T03:17:44.097" CommunityOwnedDate="2011-03-11T22:52:58.993" />
  <row Id="25317" PostTypeId="2" ParentId="25314" CreationDate="2010-12-10T18:47:18.487" Score="8" ViewCount="" Body="&lt;p&gt;I've seen this question asked, in various forms, both here and on StackOverflow.  The answer always amounts to the same thing: find another place to work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before you do that, there are two things you can do:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Examine yourself honestly, figure out if you are part of the problem, and institute some personal changes.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Bring your concerns up with someone in your chain of command who will listen.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Frankly, option 1 has the most chance of success.  Lives have been squandered trying to change &quot;the system,&quot; which is what your employer is.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-10T18:47:18.487" CommentCount="1" />
  <row Id="25318" PostTypeId="2" ParentId="25314" CreationDate="2010-12-10T18:47:51.157" Score="14" ViewCount="" Body="&lt;p&gt;hint: the best and brightest are leaving. &lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-10T18:47:51.157" CommentCount="5" />
  <row Id="25319" PostTypeId="2" ParentId="25314" CreationDate="2010-12-10T18:53:31.600" Score="0" ViewCount="" Body="&lt;p&gt;Well, does management know what the prevailing attitude is?  Are they willing to do some training or other special things that may help improve the situation?  Those would be what I'd likely dig into though do be aware that if you show too much of your hand here you may face retaliation as they may have a different perspective like, &quot;You should thankful to have a job in this economy,&quot; kind of mentality possibly.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-10T18:53:31.600" />
  <row Id="25320" PostTypeId="1" CreationDate="2010-12-10T19:00:26.680" Score="3" ViewCount="336" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/39/whats-your-favourite-quote-about-programming&quot;&gt;What&amp;#39;s your favourite quote about programming?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Which programming quotes do you keep on the wall of your cube or office so that they are always within your sight?&lt;/p&gt;&#xA;" OwnerUserId="4881" LastActivityDate="2010-12-10T23:13:52.770" ClosedDate="2010-12-11T01:57:21.180" Title="Which programming quotes do you keep on the wall of your cube or office?" Tags="&lt;programming&gt;&lt;quotes&gt;&lt;inspiration&gt;" AnswerCount="17" CommentCount="1" FavoriteCount="3" />
  <row Id="25322" PostTypeId="2" ParentId="25320" CreationDate="2010-12-10T19:03:00.060" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;To err is human, to find a bug, divine.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;                             -Robert Dunn&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-10T19:03:00.060" />
  <row Id="25323" PostTypeId="2" ParentId="25320" CreationDate="2010-12-10T19:06:04.950" Score="2" ViewCount="" Body="&lt;p&gt;&quot;&lt;strong&gt;Caution&lt;/strong&gt; - You are doing it wrong.&quot;&lt;/p&gt;&#xA;" OwnerUserId="3240" LastActivityDate="2010-12-10T19:06:04.950" />
  <row Id="25324" PostTypeId="2" ParentId="25320" CreationDate="2010-12-10T19:07:24.137" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;You can't wait for inspiration. You&#xA;  have to go after it with a club.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-Jack London&lt;/p&gt;&#xA;" OwnerUserId="3421" LastActivityDate="2010-12-10T19:07:24.137" />
  <row Id="25325" PostTypeId="2" ParentId="25253" CreationDate="2010-12-10T19:07:24.187" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;An evil mastermind&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, after so many years developing sophisticated data structures and smart algorithms, watching every variable not to leak any memory, integrating different components and systems and making little components play a big game while all the time staying behind the scenes, it would be a shame not to utilize that potential for what it was meant for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everybody can program. Some understand. Only few get to rule the world.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void ReadThisAnswer ()&#xA;{&#xA;    try&#xA;    {&#xA;        EnjoyThinHumor ();&#xA;&#xA;        VoteUp ();&#xA;    }&#xA;    catch (HumorNotImplementedException e)&#xA;    {&#xA;       VoteUpOutOfCourtesy ();&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-10T19:07:24.187" CommentCount="1" />
  <row Id="25326" PostTypeId="2" ParentId="25305" CreationDate="2010-12-10T19:11:31.903" Score="0" ViewCount="" Body="&lt;p&gt;I'm a fan of &lt;a href=&quot;http://meld.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Meld&lt;/a&gt;.  I &lt;em&gt;never&lt;/em&gt; thought I'd move to a gui diff util until Meld came along.  It's simple, supports diffing many things (revisions, directories, files, etc), can do two-way or three-way diffs, and makes manually merging files a breeze.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-10T19:11:31.903" />
  <row Id="25327" PostTypeId="2" ParentId="25314" CreationDate="2010-12-10T19:14:11.870" Score="-3" ViewCount="" Body="&lt;p&gt;You expect someone to throw you a treat every time you come up with a new idea? Is this your first job? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What coding do they let you do? Whatever it is, start doing it right and stop thinking about it in the context of the surrounding crappy code and uninspired colleagues. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then go find a better job.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-10T19:14:11.870" CommentCount="3" />
  <row Id="25328" PostTypeId="2" ParentId="25285" CreationDate="2010-12-10T19:16:22.570" Score="2" ViewCount="" Body="&lt;p&gt;I use both &lt;strong&gt;CruiseControl.NET&lt;/strong&gt; and &lt;strong&gt;Hudson&lt;/strong&gt;.  Some of my builds are on one of them and some are on the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Why?&lt;/strong&gt;  Because I am not the build engineer and he who is the build engineer set them up this way!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't have a problem with the way my builds are set up or complaints about either product.  I'm reporting to you the way the things are here, matter-of-factly and hope you appreciate this perspective!&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-12-10T19:16:22.570" />
  <row Id="25329" PostTypeId="2" ParentId="25139" CreationDate="2010-12-10T19:16:28.873" Score="0" ViewCount="" Body="&lt;p&gt;Apparently all answers agree that self-education is everything. I don't think that's completely right. A good teacher can teach you a lot and especially can teach you fast. Obviously at some point you have to take the matters into your own hands and start researching, reading, trying. Even a book is written by someone (a teacher) and tries to teach you something. That same person could be standing in the room and replying to all your questions instead of making you waste time in searching. Searching and banging your head against the wall on the other hand will make the lessons learned very valuable and unlikely to be forgotten. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Especially for starting in a new subject I think a good teacher is very very very helpful. And those who are so keen on self-education should self-educate without wikipedia, without stackoverflow, without books and without blogs ;-)&lt;/p&gt;&#xA;" OwnerUserId="8324" LastActivityDate="2010-12-10T19:16:28.873" />
  <row Id="25330" PostTypeId="2" ParentId="25320" CreationDate="2010-12-10T19:16:37.970" Score="3" ViewCount="" Body="&lt;p&gt;I have this XKCD comic taped to my monitor:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://xkcd.com/303/&quot; rel=&quot;nofollow&quot;&gt;http://xkcd.com/303/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/XPDdh.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="9491" LastEditorUserId="9491" LastEditorDisplayName="" LastEditDate="2010-12-10T19:29:19.867" LastActivityDate="2010-12-10T19:29:19.867" CommentCount="2" />
  <row Id="25331" PostTypeId="2" ParentId="25320" CreationDate="2010-12-10T19:17:38.030" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blog.objectmentor.com/articles/category/uncle-bobs-blatherings&quot; rel=&quot;nofollow&quot;&gt;Uncle Bob Martin's&lt;/a&gt; &lt;a href=&quot;http://blog.objectmentor.com/articles/2009/01/09/the-big-redesign-in-the-sky&quot; rel=&quot;nofollow&quot;&gt;Boy Scout Rule&lt;/a&gt;: &quot;Check each module in a little cleaner than when you checked it out.&quot;&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-12-10T19:17:38.030" />
  <row Id="25332" PostTypeId="2" ParentId="25320" CreationDate="2010-12-10T19:21:22.490" Score="1" ViewCount="" Body="&lt;p&gt;I used to keep the documentation for the VB6 InStr function pinned to my wall. Never being able to remember which argument went where kept me humble... &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;InStr([start, ]string1, string2[,compare])&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The InStr function syntax has these arguments:&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;&lt;strong&gt;start&lt;/strong&gt;   Optional. Numeric expression&#xA;  that sets the starting position for&#xA;  each search. If omitted, search&#xA;  begins at the first character&#xA;  position. If start contains Null, an&#xA;  error occurs. The start argument is&#xA;  required if compare is specified.&lt;/li&gt;&#xA;  &lt;li&gt;&lt;strong&gt;string1&lt;/strong&gt;     Required. String expression&#xA;  being searched.&lt;/li&gt;&#xA;  &lt;li&gt;&lt;strong&gt;string2&lt;/strong&gt;     Required. String expression&#xA;  sought.&lt;/li&gt;&#xA;  &lt;li&gt;&lt;strong&gt;compare&lt;/strong&gt;     Optional. Specifies the type&#xA;  of string comparison. If compare is&#xA;  Null, an error occurs. If compare is&#xA;  omitted, the Option Compare setting&#xA;  determines the type of comparison.&#xA;  Specify a valid LCID (LocaleID) to&#xA;  use locale-specific rules in the&#xA;  comparison.&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="155" LastActivityDate="2010-12-10T19:21:22.490" />
  <row Id="25333" PostTypeId="2" ParentId="25234" CreationDate="2010-12-10T19:26:31.937" Score="1" ViewCount="" Body="&lt;p&gt;It's great that you enjoy your work. But it's also very sad how so many people here seem to lead lives that revolve around work.&lt;/p&gt;&#xA;" OwnerUserId="9493" LastActivityDate="2010-12-10T19:26:31.937" />
  <row Id="25334" PostTypeId="2" ParentId="25139" CreationDate="2010-12-10T19:27:04.807" Score="1" ViewCount="" Body="&lt;p&gt;Self-education is necessary unless you have a generous benefactor willing to support formal training time and time again.  I've had to learn a lot of things on my own outside of a class room, to name some of the bigger ones:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;ASP and ASP.Net would be things I had to learn on the job as where I worked wanted to make the new site re-write use these and thus I had to pick this up on my own rather than in a classroom.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;IIS and MS-SQL Server would be another couple of things that I learned about as I needed and thus I'd say I was self-taught here.  While I did have co-workers that could help with questions if I got really stuck just getting my head around these was something else back in the early days of my career.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;AJAX would something a that a handful of years ago now I learned on the job in researching frameworks and trying to bring it into where I worked just before the Microsoft ASP.Net AJAX launched.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;At the same time, only doing self-education can be dangerous as not everyone wants to do everything this way.  For some people they may want more structure and not be so independent in driving their way through learning something.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-10T19:27:04.807" />
  <row Id="25335" PostTypeId="2" ParentId="25320" CreationDate="2010-12-10T19:29:53.790" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;These are your father's parentheses. Elegant weapons for a more... civilized age. &lt;em&gt;-Randall Munroe&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've got a few other choice XKCDs up too.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-12-10T19:29:53.790" />
  <row Id="25336" PostTypeId="2" ParentId="25181" CreationDate="2010-12-10T19:30:01.297" Score="0" ViewCount="" Body="&lt;p&gt;I've been in three death marches in the last five years. Here are a few things that contributed to my gut feel of impending doom.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The company decides to have junior developers design and develop new features, and assigns more expensive senior developers to fix their bugs.&lt;/li&gt;&#xA;&lt;li&gt;The company outsources critical software components to third-world companies that don't have the required domain expertise.&lt;/li&gt;&#xA;&lt;li&gt;The crunch-time cycles come so close together that peoples' health is breaking down.&lt;/li&gt;&#xA;&lt;li&gt;The pills your team lead takes to drug himself to sleep every night quit working.&lt;/li&gt;&#xA;&lt;li&gt;The client sends change orders faster than you can analyze them.&lt;/li&gt;&#xA;&lt;li&gt;You're supposed to deliver several years' work in a few weeks, but management refuses to do a feature freeze.&lt;/li&gt;&#xA;&lt;li&gt;Your hardware suppliers are clearly having trouble delivering a workable product on schedule, and the decision-makers in your company won't consider any alternatives.&lt;/li&gt;&#xA;&lt;li&gt;The prototype devices developers need so they have a ghost of a chance of meeting the probably-unrealistic schedule are taken away and given to top execs to make them feel good.&lt;/li&gt;&#xA;&lt;li&gt;Week one: &quot;Oh, crap, the code is buggy. Everybody quit doing new features and fix bugs.&quot; Week two: &quot;Oh, crap, we're not going to meet the feature schedule. Everybody quit fixing bugs and write new features.&quot; Repeat indefinitely.&lt;/li&gt;&#xA;&lt;li&gt;The development is done in one country, and QA is all done in another country half-way around the world, so a round-trip communication about a bug always requires 24 hours, and at least one of the people involved is discussing complicated technical problems in a language they're not proficient in.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-10T19:30:01.297" />
  <row Id="25337" PostTypeId="2" ParentId="25320" CreationDate="2010-12-10T19:30:59.640" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;In theory, there is no difference&#xA;  between theory and practice. But, in&#xA;  practice, there is. &lt;em&gt;-Jan L. A. van de&#xA;  Snepscheut&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(also sometimes attributed to &quot;Yogi&quot; Berra)&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-12-10T19:30:59.640" CommentCount="1" />
  <row Id="25338" PostTypeId="2" ParentId="25320" CreationDate="2010-12-10T19:33:01.840" Score="6" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/yCCJ7.png&quot; alt=&quot;Fault-tolerance&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-10T19:33:01.840" />
  <row Id="25339" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T19:36:04.097" Score="0" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Adrian_Holovaty&quot; rel=&quot;nofollow&quot;&gt;Adrian Holovaty&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Created Django&lt;/li&gt;&#xA;&lt;li&gt;Responsible for Google releasing the Google Maps API, which has seriously influenced development.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8498" LastActivityDate="2010-12-10T19:36:04.097" CommunityOwnedDate="2010-12-11T00:32:32.370" />
  <row Id="25340" PostTypeId="2" ParentId="25320" CreationDate="2010-12-10T19:37:57.590" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;The bottom line is that a lot of the&#xA;  time it's OK to create a solution that&#xA;  solves 80% of the problem.  &lt;strong&gt;Always&#xA;  remember that shipping is a feature.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;--Dare Obasanjo&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That last line (emphasis mine) always reminds me that clients can't judge (good or bad) software they don't have, and they're likely not going to even notice the stuff I obsess over in that last 20% anyways.&lt;/p&gt;&#xA;" OwnerUserId="9494" LastActivityDate="2010-12-10T19:37:57.590" />
  <row Id="25341" PostTypeId="2" ParentId="7592" CreationDate="2010-12-10T19:44:58.610" Score="1" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.viemu.com/&quot; rel=&quot;nofollow&quot;&gt;ViEmu&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Not free, but a must have if you live in Vi(m).&lt;/p&gt;&#xA;" OwnerUserId="8498" LastActivityDate="2010-12-10T19:44:58.610" />
  <row Id="25342" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T19:45:18.470" Score="3" ViewCount="" Body="&lt;p&gt;Scott Adams&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-10T19:45:18.470" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="3" />
  <row Id="25343" PostTypeId="2" ParentId="15636" CreationDate="2010-12-10T19:45:19.437" Score="1" ViewCount="" Body="&lt;p&gt;I think there are actually two things to address, and I would in fact consider them separately because they cannot be approached in the same manner, though I find both important.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The technical aspect: which aims at avoiding risky or ill-formed code (even if accepted by the compiler/interpreter)&lt;/li&gt;&#xA;&lt;li&gt;The presentation aspect: which concerns itself with making the program clear to readers&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The technical aspect I qualify of &lt;em&gt;Coding Standard&lt;/em&gt;, as do &lt;strong&gt;Herb Sutter&lt;/strong&gt; and &lt;strong&gt;Andrei Alexandrescu&lt;/strong&gt; with their &lt;em&gt;C++ Coding Standards&lt;/em&gt;. The presentation I qualify of &lt;em&gt;Coding Style&lt;/em&gt;, which includes naming convention, indentation, etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Coding Standard&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because it is purely technical, a Coding Standard can be mostly objective. As such every rule should be supported by a reason. In the book I referred to each item has:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A title, simple and to the point&lt;/li&gt;&#xA;&lt;li&gt;A summary, which explains the title&lt;/li&gt;&#xA;&lt;li&gt;A discussion, which illustrate the issue of doing otherwise and thus states the &lt;strong&gt;rationale&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;optional&lt;/em&gt; Some examples, because a good example is worth a thousand words&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;optional&lt;/em&gt; A list of exceptions for which this rule cannot be applied, sometimes with work arounds&lt;/li&gt;&#xA;&lt;li&gt;A list of references (other books, websites) that have discussed this point&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Rationale and Exceptions are very important, as they summarize the why and when.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The title shall be explicit enough that during reviews one only need to have a list of titles (cheat sheet) to work with. And obviously, group the items by category to make it easier to look out for one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sutter and Alexandrescu managed to have a list of only a hundred items, even though C++ is deemed hairy ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Coding Style&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This part is generally less objective (and can be downright subjective). The intent here is to guarantee consistency, because this helps maintainers and new comers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You do not want to enter a holy-war about which indentation or brace style is better here, there are forums for this: so in this category you do things by consensus &gt; majority vote &gt; arbitrary decision by leader(s).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For an example of formatting, see the list of options of &lt;a href=&quot;http://astyle.sourceforge.net/astyle.html&quot; rel=&quot;nofollow&quot;&gt;Artistic Style&lt;/a&gt;. Ideally, the rules should be clear and complete enough that a program could rewrite the code (though it's unlikely you'll ever code one ;) )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the naming convention, I would try to make class/types easily distinguished from variables/attributes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is also in this category that I classify the &quot;measures&quot; like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;prefer short to long methods: it's usually difficult to agree on what long is&lt;/li&gt;&#xA;&lt;li&gt;prefer early return/continue/break to reduce indentation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Misc ?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And as a final word, there is one item that is rarely, if ever, discussed in Coding Standards, perhaps because it's particular to each application: code organization. The architectural issue is perhaps the most outstanding issue, screw up on the initial design and you'll be plagued by it years from now. You should perhaps add a section for basic file handling: public/private headers, dependency management, separation of concern, interfacing with other systems or libraries...&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;But those are &lt;em&gt;nothing&lt;/em&gt; if they are not actually applied and &lt;strong&gt;enforced&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any violation should be brought up during code reviews, and no code review should be okay if a violation is outstanding:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;fix the code to match the rule&lt;/li&gt;&#xA;&lt;li&gt;fix the rule so that the code doesn't stand out any longer&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Obviously, changing a rule means getting the &quot;go ahead&quot; from the leaders.&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2010-12-10T19:45:19.437" CommunityOwnedDate="2011-05-04T06:06:33.080" />
  <row Id="25345" PostTypeId="1" CreationDate="2010-12-10T19:50:06.847" Score="5" ViewCount="163" Body="&lt;p&gt;I once loathed the thought of telling people I was a web developer because I found myself spending inordinate amounts of time trying to target browsers with inconsistent implementations of web &quot;standards.&quot;  As we now find ourselves in a world of mobile browsers and HTML5(another standard for browser designers to disregard) I wonder when will the browser wars end and the web become a place where it truly is easy to deliver an ubiquitous application with a concise and unified development experience?&lt;/p&gt;&#xA;" OwnerUserId="2283" LastActivityDate="2010-12-10T20:29:09.730" ClosedDate="2010-12-11T01:33:54.187" Title="When will the Browser Wars end?" Tags="&lt;web-development&gt;&lt;browser&gt;&lt;css&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="2" />
  <row Id="25347" PostTypeId="2" ParentId="25345" CreationDate="2010-12-10T19:53:21.207" Score="6" ViewCount="" Body="&lt;p&gt;Short answer: &lt;strong&gt;Never.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Long answer:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;As long as human nature is what it is (and that's never going to change) browser people will want to do something better than everyone else. So they're going to write tags (I know this is old, ok?) like &amp;lt; blink &gt; and &amp;lt; marquee&gt; that they know &lt;em&gt;will not work&lt;/em&gt; on other browsers, just to be &quot;different/better&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The standards are often ambiguous. Joel: &lt;a href=&quot;http://joelonsoftware.com/items/2008/03/17.html&quot; rel=&quot;nofollow&quot;&gt;Martian Headsets&lt;/a&gt;. Just because there is a &lt;strong&gt;&lt;em&gt;standard&lt;/em&gt;&lt;/strong&gt; doesn't mean that you can clearly tell what to do in every situation.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6415" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2010-12-10T20:00:14.957" LastActivityDate="2010-12-10T20:00:14.957" />
  <row Id="25348" PostTypeId="2" ParentId="15636" CreationDate="2010-12-10T19:53:37.157" Score="0" ViewCount="" Body="&lt;p&gt;I like the &lt;a href=&quot;http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml&quot; rel=&quot;nofollow&quot;&gt;Google JavaScript Style Guide&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its concise in its guidelines yet has details if you need them.&lt;/p&gt;&#xA;" OwnerUserId="5738" LastActivityDate="2010-12-10T19:53:37.157" CommunityOwnedDate="2011-05-04T06:06:33.080" />
  <row Id="25349" PostTypeId="2" ParentId="25345" CreationDate="2010-12-10T19:53:57.670" Score="1" ViewCount="" Body="&lt;p&gt;It will end when all parties begin to respect the standards and specifications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For as long as they have a hidden agenda and potentially something to win by not abiding by the rules, nothing will change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We as a community might try to effect some change by refusing to support proprietary extensions and stretch our pages to account for browser bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Supporting IE6 and the likes (if not required by business customers) only prolongs the war.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-10T19:53:57.670" />
  <row Id="25350" PostTypeId="2" ParentId="25345" CreationDate="2010-12-10T19:54:19.230" Score="2" ViewCount="" Body="&lt;h2&gt;Never&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;As long as there are major actors with their interest.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-10T19:54:19.230" />
  <row Id="25351" PostTypeId="2" ParentId="25345" CreationDate="2010-12-10T19:56:05.000" Score="3" ViewCount="" Body="&lt;p&gt;Why would you want them to end? Competition stimulates innovation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I know, I know, browser incompatibilities suck to code around...)&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-12-10T19:56:05.000" />
  <row Id="25352" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T19:58:21.427" Score="11" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www-cs-faculty.stanford.edu/~uno/&quot; rel=&quot;nofollow&quot;&gt;Donald Knuth&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Need I say more?&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-10T19:58:21.427" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="1" />
  <row Id="25353" PostTypeId="1" AcceptedAnswerId="25355" CreationDate="2010-12-10T20:02:49.083" Score="5" ViewCount="334" Body="&lt;p&gt;It seems that there is a whole mess around current JCP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quite of number of highly respected guys like Doug Lea, Tim Peierls had quit JCP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reference :&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.jroller.com/scolebourne/entry/is_the_jcp_dead&quot; rel=&quot;nofollow&quot;&gt;Is JCP dead?&lt;/a&gt; and &lt;a href=&quot;http://jcp.org/en/jsr/results?id=5111&quot; rel=&quot;nofollow&quot;&gt;Final results of the JSR Review Ballot for JSR #336&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This put Java in an unfavorable future. As a Java developer, will you still consider using Java in your next project?&lt;/p&gt;&#xA;" OwnerUserId="1877" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-12-10T20:23:28.843" LastActivityDate="2011-04-15T06:53:31.987" Title="Would you still use Java in your next project, despite the whole mess in JCP" Tags="&lt;programming-languages&gt;&lt;java&gt;" AnswerCount="8" CommentCount="1" />
  <row Id="25354" PostTypeId="2" ParentId="25285" CreationDate="2010-12-10T20:05:10.660" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://zutubi.com&quot; rel=&quot;nofollow&quot;&gt;Pulse&lt;/a&gt;. It basically Just Works, which for a busy build engineer is a big deal. They also have really excellent technical support. The main reason I love it so much is that we have 250+ projects and it handles them without a hiccup; I cannot say the same for Hudson.&lt;/p&gt;&#xA;" OwnerUserId="334" LastActivityDate="2010-12-10T20:05:10.660" />
  <row Id="25355" PostTypeId="2" ParentId="25353" CreationDate="2010-12-10T20:11:57.873" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The developer support will be around for a very long time.  The language is mature, most JVMs are very stable and fast.  I find little core necessary libraries or language features missing.  I would still choose Java over most other languages and runtimes &lt;em&gt;still&lt;/em&gt; due to its ability to sell into nearly any IT ecosystem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wait eagerly for a new cross-platform language and runtime that can support the widest customer base, but all things considered, Java still reigns supreme.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-12-10T20:11:57.873" />
  <row Id="25356" PostTypeId="2" ParentId="25353" CreationDate="2010-12-10T20:12:44.473" Score="2" ViewCount="" Body="&lt;p&gt;Yes, I would. Java is one of the most widely spread programming languages so Java will exist for a long time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think it's many languages that can compete with Java as of today. It has a huge userbase and big libraries, both standard libraries and third party libraries. It has good performance with garbage collection. And it has static typing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you look at &lt;a href=&quot;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&quot; rel=&quot;nofollow&quot;&gt;TIOBE Index&lt;/a&gt; and want a static typed object oriented language with managed memory, many good libraries and target multiple platforms. Then I think Java is still the best choice. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java is that big so it will not die even if Oracle try to kill it very hard. I think that Google will release a similar and compatible language under a different name if it get worse. It's so big that it can't die.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And it is a good language compared to many alternatives. Oracle will just make it a more commercial language than before. And C#, the best alternative is also a commercial language, so it doesn't mean that the language will die, it will just be different.&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-12-10T20:18:36.400" LastActivityDate="2010-12-10T20:18:36.400" />
  <row Id="25357" PostTypeId="2" ParentId="25345" CreationDate="2010-12-10T20:14:47.177" Score="1" ViewCount="" Body="&lt;h2&gt;Never.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;As long as they are developed by &lt;em&gt;major players&lt;/em&gt;, and &lt;em&gt;major players&lt;/em&gt; will of course be developing some technology of their own (ActiveX?) as they usually do, which others don't find so interesting, there will be &lt;em&gt;browser wars&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, one has to look at the other side as well ... what we got going on now is kind of a truce. Most of the important stuff exists in all browsers and that is important for the majority of people. So, although there will always be differences between all of them browsers, I'm hoping we'll reach a point within the next five years where the majority of users will not care what browser they're using. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a question of the common denumerator.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-10T20:14:47.177" />
  <row Id="25358" PostTypeId="2" ParentId="25320" CreationDate="2010-12-10T20:17:29.610" Score="0" ViewCount="" Body="&lt;p&gt;I used to have &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Do it. Do it right. Do it right now.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="9497" LastActivityDate="2010-12-10T20:17:29.610" />
  <row Id="25360" PostTypeId="2" ParentId="25276" CreationDate="2010-12-10T20:20:29.050" Score="1" ViewCount="" Body="&lt;p&gt;If clever code + the amount of comments required to make it understandable code &amp;lt;= simple code, then I say go for the clever code.  Every time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the problem arises when people who write &quot;clever code&quot; deliberately fail to comment it properly, because only by it being initially incomprehensible will future generations who come across it have to spend time &quot;appreciating&quot; how clever it is.&lt;/p&gt;&#xA;" OwnerUserId="8361" LastActivityDate="2010-12-10T20:20:29.050" CommunityOwnedDate="2011-01-08T19:36:34.897" CommentCount="2" />
  <row Id="25361" PostTypeId="2" ParentId="25353" CreationDate="2010-12-10T20:21:31.200" Score="2" ViewCount="" Body="&lt;p&gt;I won't use it. I don't like monsters like Oracle.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-10T20:21:31.200" CommentCount="6" />
  <row Id="25362" PostTypeId="2" ParentId="25154" CreationDate="2010-12-10T20:26:36.843" Score="0" ViewCount="" Body="&lt;p&gt;In general, I avoid using operator overloading in non-intuitive ways.  That is, if I have a numeric class, overloading * is acceptable (and encouraged).  However, if I have a class Employee, what would overloading * do?  In other words, overload operators in intuitive ways that make it easy to read and understand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Acceptable/Encouraged:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Complex&#xA;{&#xA;public:&#xA;    double r;&#xA;    double i;&#xA;&#xA;    Complex operator*(const Compex&amp;amp; rhs)&#xA;    {&#xA;        Complex result;&#xA;        result.r = (r * rhs.r) - (i * rhs.i);&#xA;        result.i = (r * rhs.i) + (i * rhs.r);&#xA;        return result;&#xA;    }&#xA;};&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Not acceptable:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Employee&#xA;{&#xA;public:&#xA;    std::string name;&#xA;    std::string address;&#xA;    std::string phone_number;&#xA;&#xA;    Employee operator* (const Employee&amp;amp; e)&#xA;    {&#xA;        // what the hell do I do here??&#xA;    }&#xA;};&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="9499" LastActivityDate="2010-12-10T20:26:36.843" />
  <row Id="25363" PostTypeId="2" ParentId="25253" CreationDate="2010-12-10T20:26:39.390" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Crime investigator&lt;/strong&gt; if you are good with debugging and enjoy the process.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-10T20:26:39.390" />
  <row Id="25364" PostTypeId="2" ParentId="25345" CreationDate="2010-12-10T20:29:09.730" Score="0" ViewCount="" Body="&lt;p&gt;When the web ceases to be a major medium for using applications.  While I don't know what would replace it, I'd like to be hopeful that at some point we evolve onto some new forms of communication that may transcend hypertext at some point.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-10T20:29:09.730" />
  <row Id="25365" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T20:32:29.087" Score="6" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Guido_van_rossum&quot; rel=&quot;nofollow&quot;&gt;Guido van Rossum&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;He created one of the most popular languages of today - that's gotta count for something.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-10T20:32:29.087" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="2" />
  <row Id="25366" PostTypeId="1" CreationDate="2010-12-10T20:35:05.163" Score="9" ViewCount="196" Body="&lt;p&gt;I really dislike the name &quot;NoSQL&quot;, because it isn't very descriptive.  It tells me what the databases &lt;em&gt;aren't&lt;/em&gt; where I'm more interested in what the databases &lt;em&gt;are&lt;/em&gt;.  I really think that this category really encompasses several categories of database.  I'm just trying to get a general idea of what job each particular database is the best tool for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few assumptions I'd like to make (and would ask you to make):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Assume that you have the capability to hire any number of brilliant engineers who are equally experienced with every database technology that has ever existed.&lt;/li&gt;&#xA;&lt;li&gt;Assume you have the technical infrastructure to support any given database (including available servers and sysadmins who can support said database).&lt;/li&gt;&#xA;&lt;li&gt;Assume that each database has the best support possible for free.&lt;/li&gt;&#xA;&lt;li&gt;Assume you have 100% buy-in from management.&lt;/li&gt;&#xA;&lt;li&gt;Assume you have an infinite amount of money to throw at the problem.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Now, I realize that the above assumptions eliminate a lot of valid considerations that are involved in choosing a database, but my focus is on figuring out what database is best for the job on a purely technical level.  So, given the above assumptions, the question is: what jobs are each database (including both SQL and NoSQL) the best tool for and why?&lt;/p&gt;&#xA;" OwnerUserId="1626" LastEditorUserId="1626" LastEditorDisplayName="" LastEditDate="2010-12-10T20:42:08.913" LastActivityDate="2010-12-31T04:38:53.590" Title="How do you decide what kind of database to use?" Tags="&lt;sql&gt;&lt;database&gt;&lt;nosql&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="3" />
  <row Id="25367" PostTypeId="2" ParentId="25320" CreationDate="2010-12-10T20:35:26.240" Score="0" ViewCount="" Body="&lt;p&gt;A senior co-worker said this years back. I don't know the real source:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;To err is human, to forgive is divine, to fix is programming.&quot;&lt;/p&gt;&#xA;" OwnerUserId="8454" LastActivityDate="2010-12-10T20:35:26.240" />
  <row Id="25368" PostTypeId="2" ParentId="25320" CreationDate="2010-12-10T20:35:59.523" Score="1" ViewCount="" Body="&lt;p&gt;A co-worker has this on his monitor: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Going the long way round expands your knowledge of the vicinity. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(Translated from German)&lt;/p&gt;&#xA;" OwnerUserId="1512" LastEditorUserId="1512" LastEditorDisplayName="" LastEditDate="2010-12-10T20:49:09.107" LastActivityDate="2010-12-10T20:49:09.107" CommentCount="2" />
  <row Id="25369" PostTypeId="1" CreationDate="2010-12-10T20:37:23.330" Score="4" ViewCount="363" Body="&lt;p&gt;I'm a self-taught programmer. I've been learning RoR since October with varying intensity (sometimes all day, sometimes nothing for several weeks). Before that I knew only Java, but knew it pretty well. I've heard so much hype about RoR and how it's supposed to make you happy, productive, etc. So far it's only made me frustrated.  I learned it out of the Agile book, and I suspect part of the difficulty might have to do with my not knowing JavaScript and CSS, and having only a shaky grasp of databases and HTML. But apparently it took me much longer to complete the project in the Agile book than other people, and I still don't remember much of it. There are some things about Rails that I just can't seem to get, e.g. when to use symbols and when NOT to, or how dynamic methods are called. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently I was given a small Rails assignment where I'm asked to make a small change to the interface. It's taken me around 25 hours and although I've made some progress in understanding the code, I still have no idea how to proceed. I can't even ask Stack Overflow because there is so much code I'll have to provide to give context. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is in the title: is RoR supposed to take a long time to learn or am I just slow? Can it be that I've been learning from the wrong book? My learning style is such that I either understand nothing or understand everything, if that makes sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="9364" LastActivityDate="2011-03-31T04:49:02.517" Title="Is Ruby on Rails supposed to have a steep learning curve or is it just me?" Tags="&lt;learning&gt;&lt;ruby-on-rails&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="25370" PostTypeId="2" ParentId="25320" CreationDate="2010-12-10T20:38:08.680" Score="1" ViewCount="" Body="&lt;p&gt;Various XKCD's, but my favorite, &lt;a href=&quot;http://xkcd.com/323/&quot; rel=&quot;nofollow&quot;&gt;The Ballmer Peak&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4052" LastActivityDate="2010-12-10T20:38:08.680" />
  <row Id="25371" PostTypeId="2" ParentId="25320" CreationDate="2010-12-10T20:39:14.077" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If anything just cannot go wrong, it will anyway&lt;/strong&gt; (from Murphy's laws).&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-10T20:39:14.077" />
  <row Id="25372" PostTypeId="1" AcceptedAnswerId="25405" CreationDate="2010-12-10T20:39:37.653" Score="2" ViewCount="121" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicates:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/9584/php-html-javascript-and-writing-good-practices&quot;&gt;PHP, HTML, Javascript and writing good practices&lt;/a&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/24737/beginning-design-as-a-programmer&quot;&gt;Beginning Design as a Programmer&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Hi, I'm sorry if someone else already asked this here, I couldn't find it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a kind of beginner. I'd like to have the best resources/books (not only free) about best practices of xhtml and css.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example: I don't want to overuse div or table. I want to learn how to use in a proper way ul, dl, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance!&lt;/p&gt;&#xA;" OwnerUserId="9398" LastEditorUserId="9398" LastEditorDisplayName="" LastEditDate="2010-12-10T22:27:45.647" LastActivityDate="2010-12-10T22:45:15.233" ClosedDate="2010-12-11T01:24:26.750" Title="Best books/resources for learning xhtml and css best practices ?" Tags="&lt;best-practices&gt;&lt;books&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="1" />
  <row Id="25373" PostTypeId="2" ParentId="25369" CreationDate="2010-12-10T20:42:17.180" Score="0" ViewCount="" Body="&lt;p&gt;I also come from a Java background, and I had a pretty difficult time learning Rails. I had all the same issues you mentioned. I found that watching &lt;a href=&quot;http://railscasts.com&quot; rel=&quot;nofollow&quot;&gt;railscasts.com&lt;/a&gt; helped out in the beginning. Just seeing how someone else did things helped me catch on and I then started doing things on my own. I haven't touched Rails since Rails 3 came out though.&lt;/p&gt;&#xA;" OwnerUserId="7682" LastActivityDate="2010-12-10T20:42:17.180" />
  <row Id="25374" PostTypeId="2" ParentId="25320" CreationDate="2010-12-10T20:44:22.950" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Fail fast, succeed sooner.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;David Kelley, IDEO&lt;/p&gt;&#xA;" OwnerUserId="7995" LastActivityDate="2010-12-10T20:44:22.950" />
  <row Id="25375" PostTypeId="2" ParentId="25366" CreationDate="2010-12-10T20:49:10.517" Score="3" ViewCount="" Body="&lt;h2&gt;SQL&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Relational object. Stable servers with fine grain control over permissions. &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;NoSQL&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Flexible storage. High scalability and sharding abilities. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-10T20:49:10.517" />
  <row Id="25376" PostTypeId="1" AcceptedAnswerId="25387" CreationDate="2010-12-10T20:49:41.447" Score="0" ViewCount="41" Body="&lt;p&gt;Either on site or off site training (no web training).  I've been Googling but have only found a few companies.  It would be nice to find something that offers reviews on various companies that provide training...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Related to &lt;a href=&quot;http://programmers.stackexchange.com/questions/25321/can-anyone-recommend-a-good-company-that-does-sql-server-training-closed&quot;&gt;Can anyone recommend a good company that does SQL Server training?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3240" LastActivityDate="2010-12-10T21:28:00.870" Title="Can anyone recommend a good resource for finding SQL Server training?" Tags="&lt;training&gt;" AnswerCount="1" CommentCount="0" FavoriteCount="1" />
  <row Id="25377" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T20:51:49.633" Score="0" ViewCount="" Body="&lt;h2&gt;Luis von Ahn&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;For harvesting human computing cycles for computer vision tasks. Was vogue several years before, but it's now happening every day, every where.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-12-10T20:51:49.633" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="2" />
  <row Id="25378" PostTypeId="2" ParentId="25366" CreationDate="2010-12-10T20:55:51.190" Score="2" ViewCount="" Body="&lt;p&gt;Relational databases (SQL) are great for data that the underlying model remains stable. Many implementations have been around for a while (Oracle, DB2, SqlServer) and are stable and secure. Also, it's very easy to find experienced people to administrate them - and database admins are a must! The programmers should not have to deal with permissions, setup, and tuning. They should be able to concentrate on programming, and let the administrators worry about keeping the database up. Relational databases are also relatively easy to query, and there are many tools out there to assist with finding data from them.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-10T20:55:51.190" />
  <row Id="25379" PostTypeId="2" ParentId="25253" CreationDate="2010-12-10T20:58:10.750" Score="5" ViewCount="" Body="&lt;p&gt;I knew a guy that planned on leaving a stressful programming job to become a high school math teacher. And then he talked to some high school math teachers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;He's still programming.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-12-10T20:58:10.750" />
  <row Id="25380" PostTypeId="2" ParentId="7592" CreationDate="2010-12-10T21:02:37.393" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://code.msdn.microsoft.com/sourceanalysis&quot; rel=&quot;nofollow&quot;&gt;Stylecop!&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once I get used to coding to the standards of the group I'm in, I hate looking at code that doesn't follow the convention.  Definitely don't want to be the one creating it.&lt;/p&gt;&#xA;" OwnerUserId="143" LastActivityDate="2010-12-10T21:02:37.393" />
  <row Id="25381" PostTypeId="2" ParentId="25369" CreationDate="2010-12-10T21:08:53.067" Score="5" ViewCount="" Body="&lt;p&gt;When you're learning Rails and your only background is Java, you're not just learning a new web framework. You're learning a new programming language as well, and one that is significantly different from Java. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may help for you to learn Ruby first and then look at Rails and its conventions. Learning what Rails does and how it does it went a lot easier for me once I no longer had to struggle to understand Ruby and could read (and write) Rails code/templates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I went through the &lt;a href=&quot;http://railstutorial.org/&quot; rel=&quot;nofollow&quot;&gt;Ruby on Rails Tutorial&lt;/a&gt; and found it very helpful. The &lt;a href=&quot;http://railstutorial.org/ruby-on-rails-tutorial-book&quot; rel=&quot;nofollow&quot;&gt;tutorial book&lt;/a&gt; is free and there is a version for Rails 2.3 and 3.0. You might also find it helpful to read up on MVC (Model-View-Controller) and web development/page lifecycle in general.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-10T21:08:53.067" />
  <row Id="25382" PostTypeId="2" ParentId="25369" CreationDate="2010-12-10T21:09:46.653" Score="6" ViewCount="" Body="&lt;p&gt;From your question, it's obvious that it is not only Rails you are trying to learn, but, at the same time you have to grasp concepts of web development, as well as databases and SQL. It's a huge task so please be patient.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, with Rails you have no choice - you have to learn both M, V and C from &lt;em&gt;MVC&lt;/em&gt;, all three at the same time, but that would be the case with any MVC framework around, with Rails being among easiest, I'd say.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you could do instead is to start with some simpler framework, such as Sinatra, until you get comfortable with basic concepts of Ruby and HTTP, and then slowly progress further towards richer presentation (views and CSS) and database-based models.&lt;/p&gt;&#xA;" OwnerUserId="7968" LastActivityDate="2010-12-10T21:09:46.653" />
  <row Id="25383" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T21:15:40.767" Score="3" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Yukihiro_Matsumoto&quot; rel=&quot;nofollow&quot;&gt;Yukihiro “matz” Matsumoto&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;creator of the Ruby language&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="4032" LastEditorDisplayName="" LastEditDate="2010-12-11T04:03:07.277" LastActivityDate="2010-12-11T04:03:07.277" CommunityOwnedDate="2010-12-11T00:32:32.370" CommentCount="2" />
  <row Id="25384" PostTypeId="1" CreationDate="2010-12-10T21:16:54.213" Score="5" ViewCount="215" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking to go back to school as a grad student in Statistics at a local college.  The trouble is some of the courses are offered either early in the morning or late afternoon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm on a full time contract now that will expire sometime next year.  I'd like to replace this with something that can accommodate school--either part time or full time with the ability to come in earlier or stay later over a three month period.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if I could afford to just go to school, I don't want to be away from practical software work.  I've worked hard building a resume and don't want a 2 year gap while I get a degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do people have suggestions or experiences in looking for jobs that are flexible?  I mean flexible in the sense that you can come in earlier on particular days, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have to take a serious salary hit for that, do a lot of people object and how do you bring it up so that you know in taking the job that you can do it?  I've considered the part time option but haven't found a lot of part time software/dba jobs.&lt;/p&gt;&#xA;" OwnerUserId="5057" LastActivityDate="2010-12-11T08:59:30.830" ClosedDate="2010-12-14T21:51:42.027" Title="Are flexible hours common? How do you go about looking for a job with flexible hours?" Tags="&lt;job-market&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="25385" PostTypeId="1" AcceptedAnswerId="25393" CreationDate="2010-12-10T21:20:59.733" Score="6" ViewCount="210" Body="&lt;p&gt;Inspired by this question:&#xA;&lt;a href=&quot;http://programmers.stackexchange.com/questions/25234/what-to-do-about-stopping-point-syndrome&quot;&gt;What to do about &quot;stopping point syndrome&quot;?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I often find myself a half hour away from knocking-off time having just wrapped up a component of my work, and facing a &quot;next piece&quot; that is going to take more than half an hour. (That's happening right now, as a matter of fact. Hence my surfing stackexchange during business hours!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you do? Launch into the new piece knowing you'll have to stop in the middle? Set it aside and twiddle your thumbs until the clock runs out?&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2011-01-23T10:29:21.050" Title="What to do about &quot;next piece syndrome&quot;?" Tags="&lt;development-process&gt;&lt;work&gt;&lt;time-management&gt;" AnswerCount="5" CommentCount="6" FavoriteCount="1" />
  <row Id="25386" PostTypeId="2" ParentId="25188" CreationDate="2010-12-10T21:22:19.733" Score="4" ViewCount="" Body="&lt;p&gt;The question is whether the compiler needs to know how large an object is.  If so, then the compiler has to know about the private members in order to count them up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Java, there's primitive types and objects, and all the objects are allocated separately, and the variables containing them are really pointers.  Therefore, since a pointer is a fixed-size object, the compiler knows how big a thing a variable represents, without knowing the actual size of the pointed-to object.  The constructor handles all of that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In C++, it's possible to have objects represented locally or on the heap.  Therefore, the compiler needs to know how big an object is, so that it can allocate a local variable or array.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes it's desirable to divide class functionality into a public interface and a private everything else, and that's where the PIMPL (Pointer to IMPLementation) technique comes in.  The class will have a pointer to a private implementation class, and the public class methods can call that.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-10T21:22:19.733" CommentCount="5" />
  <row Id="25387" PostTypeId="2" ParentId="25376" CreationDate="2010-12-10T21:28:00.870" Score="2" ViewCount="" Body="&lt;p&gt;In the US there's a fairly big company called &lt;a href=&quot;http://www.learningtree.com/training-directory/SQL-Server-Training-8.htm&quot; rel=&quot;nofollow&quot;&gt;LearningTree&lt;/a&gt; that offers Off-site, on-site and online training.  We've used them a bunch of times and have had positive experiences so far.  They do have SQL Server listed in their course directory, but I've honestly never taken any of those classes.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-10T21:28:00.870" />
  <row Id="25388" PostTypeId="2" ParentId="25276" CreationDate="2010-12-10T21:28:21.867" Score="15" ViewCount="" Body="&lt;p&gt;To quote Brian Kernighan: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="7313" LastActivityDate="2010-12-10T21:28:21.867" CommunityOwnedDate="2011-01-08T19:36:34.897" />
  <row Id="25389" PostTypeId="2" ParentId="25063" CreationDate="2010-12-10T21:29:21.007" Score="2" ViewCount="" Body="&lt;p&gt;Google as a language reference is all good in my opinion. I don't consider memorizing every piece of syntax or name of framework utilities to be a significant part of being a good programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Speaking about whole solutions found on Google - well, anyone who is interested in quality and improving themselves will take the search result as an opportunity to study and learn. I don't just copy &amp;amp; paste some big block of code from link #1. I look through 5 or 10 different ways of solving my problem. Understand them, find how they differ and why, figure out which part I don't need, see which parts makes sense to me and apply to my particular project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seeing other people's solutions is not just a boost in productivity, it's vital for my development of skills and experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I find it refreshing when I sometimes need to open up notepad and write some chunks of code, without intellisense, syntax highlighting or any help from Google.&lt;/p&gt;&#xA;" OwnerUserId="4278" LastActivityDate="2010-12-10T21:29:21.007" />
  <row Id="25390" PostTypeId="2" ParentId="25385" CreationDate="2010-12-10T21:30:48.353" Score="5" ViewCount="" Body="&lt;p&gt;Start working on the next piece.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When it's time to wrap up, find a logical place to stop (the last line of code, perhaps), save your work, write a brief note reminding yourself where you are and what you need to do next, leave it on your keyboard and go home.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-10T21:30:48.353" />
  <row Id="25391" PostTypeId="2" ParentId="25385" CreationDate="2010-12-10T21:31:50.790" Score="5" ViewCount="" Body="&lt;p&gt;Find a simple task you can do that does take a half hour or less. Update some documentation, refactor a test or two, fiddle with your dev environment config, or shoot off a few emails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, there are always dozens of tasks I put off because the big stuff takes priority. But I know they'll never happen if I don't make a little time for them.&lt;/p&gt;&#xA;" OwnerUserId="1972" LastActivityDate="2010-12-10T21:31:50.790" />
  <row Id="25392" PostTypeId="2" ParentId="25384" CreationDate="2010-12-10T21:33:27.257" Score="1" ViewCount="" Body="&lt;p&gt;Most of my jobs have had flexible hours to some extent and in the past few years I've had to use it more than ever actually.  I'd probably advocate a couple things that may help:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;In talking to recruiters explain this is likely to be a must have due to school.  Some employers may look well to someone getting a degree and wanting flexibility for that may be quite acceptable at least from what I've seen in Seattle, Washington and Calgary, Alberta.  They may know which employers would be more generous with allowing that flexibility.  This way it is known and out there before you have an interview.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you are on an interview with a company and you are near the end it may be worth bringing this situation up and see what kind of response you get.  Are they welcoming that you are doing this yourself or is there an air of, &quot;How dare you do this while we want to work all the time for us!&quot; which could be a bit of a yellow or red flag.  Don't forget that you will still be doing your regular work and that you are open to discussing if there are concerns about getting enough stuff done.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I doubt I took a serious salary hit for this and some companies may have policies like &quot;Earned Days Off&quot; where you could get a bit more slack at times if you combine this with vacation and sick days to some extent.  Having the communication that you will do the work and are open to discussing how it is going is a key point in this.  Some people may shy away from confrontation and being asked for stuff but really you want that here, or so that has been my experience.  In a way you want a company that has some maturity and honesty here which may or may not be easy to find.  Good luck.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-10T21:33:27.257" />
  <row Id="25393" PostTypeId="2" ParentId="25385" CreationDate="2010-12-10T21:44:26.093" Score="1" ViewCount="" Body="&lt;p&gt;There is also something to be said for where in your schedule are you at this point.  For example, on a Friday afternoon I may pick quite a different option than I would on a Tuesday or Wednesday where I know I'm coming back the next day to pick it up.  At the same time, starting on something can carry some initial tasks, e.g. updating the bug tracking software or creating a branch in source control, that can be good to get out of the way earlier rather than later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are likely to be some administrative things,e.g. time sheets, reflections on what got done and didn't get done, that may be worth spending that half-hour that may end up taking a bit more time than you think if you enjoy things like reflecting on how your week has gone.  &quot;&lt;a href=&quot;http://en.wikiquote.org/wiki/Ferris_Bueller%27s_Day_Off&quot; rel=&quot;nofollow&quot;&gt;Life moves pretty fast. If you don't stop and look around once in a while, you could miss it.&lt;/a&gt;&quot; as Ferris Bueller said some 24 years ago now is something else to point out here.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-10T21:44:26.093" />
  <row Id="25394" PostTypeId="2" ParentId="25276" CreationDate="2010-12-10T21:49:10.910" Score="2" ViewCount="" Body="&lt;p&gt;In my opinion, cleverness per se isn't a problem. Usually we can make confusions about &quot;clever&quot; (without sarcasm) and &quot;insightfull&quot; code. What I see as a problem, is the fact that usually the &quot;clever&quot; (with sarcasm) code contains implicit not-visible requirements, making it harder to debug and maintain along time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are several known algorithms that are clever. &lt;a href=&quot;http://en.wikipedia.org/wiki/Quicksort&quot; rel=&quot;nofollow&quot;&gt;Quicksort&lt;/a&gt; is one, IMO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Clever&quot; (with sarcasm) code usually make assumptions about variables being set and states of the system that are virtually disconnected from the &quot;clever&quot; code (as files opened previously, network connections, databases, etc...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The amount of data you have to load on your brain to maintain correctly a &quot;clever&quot; code is usually to big to have a good cost-benefit ratio.&lt;/p&gt;&#xA;" OwnerUserId="9506" LastActivityDate="2010-12-10T21:49:10.910" CommunityOwnedDate="2011-01-08T19:36:34.897" />
  <row Id="25395" PostTypeId="2" ParentId="25092" CreationDate="2010-12-10T21:54:30.953" Score="0" ViewCount="" Body="&lt;p&gt;Going to the movies is a really bad team building thing, especially for larger teams. You don't talk during the movie, and nobody gets to know anybody better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do something that forces or at least encourages communication, and try to mix the groups, so people don't just hang out with people they already know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do something genuinely fun, because if you tout it as being fun and it's really just a thinly veiled company meeting/loyalty improvement camp, it will backfire.&lt;/p&gt;&#xA;" OwnerUserId="9505" LastActivityDate="2010-12-10T21:54:30.953" />
  <row Id="25396" PostTypeId="2" ParentId="25253" CreationDate="2010-12-10T22:19:13.270" Score="2" ViewCount="" Body="&lt;p&gt;If I were in that situation, I'd go into a very different field that involves detail work, creativity, and working with things that are alive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, that might be something like growing fruits and vegetables and keeping bees on a small &quot;truck farm&quot; and selling them at farmers' markets, or woodworking. As a trained chemist, I've also considered soapmaking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used to know a programmer who'd code like mad most of the year as a contractor, and then spend the winter as a ski instructor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Richard Feynman hit burnout after WWII and having his beloved wife die, and couldn't do research. Fortunately, his department chair at Cornell told him not to worry, just teach and piddle around. One day he was in the university cafeteria and watched an athlete spin a plate on his finger, started messing around with equations around the spin, used those to invent quantum chromodynamics, and got a Nobel prize for it.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-10T22:19:13.270" />
  <row Id="25397" PostTypeId="2" ParentId="25353" CreationDate="2010-12-10T22:19:32.720" Score="0" ViewCount="" Body="&lt;p&gt;What Oracle does to Java won't matter in the short term.  All current JVMs and compilers and libraries will still be available, as well as the community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oracle's actions are, I think, likely to harm Java in the long run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I'd have no hesitation about using it for my next project, but if I depended on it I'd consider a long-term exit strategy just in case.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-10T22:19:32.720" />
  <row Id="25398" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T22:22:54.390" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Ray_Ozzie&quot; rel=&quot;nofollow&quot;&gt;&lt;h2&gt;Ray Ozzie&lt;/h2&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe the Cloud is the future of development and even though he's leaving MS, he's got Azure to point to.&lt;/p&gt;&#xA;" OwnerUserId="9251" LastActivityDate="2010-12-10T22:22:54.390" CommunityOwnedDate="2010-12-11T00:32:32.370" />
  <row Id="25399" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T22:23:19.227" Score="1" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Alan_Kay&quot; rel=&quot;nofollow&quot;&gt;Alan Kay&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;PARC researcher, inventor of Smalltalk, inspirer of OLPC&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course there can never be any &lt;em&gt;one&lt;/em&gt; most influential person, because they all influenced each other as well as us. So I'll name an important person that hasn't been mentioned yet, and might not be known by as many as the &quot;superstars&quot; already on here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alan Kay worked at Xerox PARC, where he (with others, of course) invented the Smalltalk programming language. Smalltalk was revolutionary: Completely object oriented (Java etc. inherited their inheritance model from Smalltalk), ran in a VM, reflective, with a Window- and mouse-driven IDE. In the seventies! The Smalltalk IDE's gui was later adopted by Apple, and in turn by the rest of the world. Kay went on to work for Apple after he left Xerox.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is actually still a pretty nice language, hindered only by lack of modern tools and frameworks. Objective-C is greatly inspired by it.&lt;/p&gt;&#xA;" OwnerUserId="9505" LastActivityDate="2010-12-10T22:23:19.227" CommunityOwnedDate="2010-12-11T00:32:32.370" />
  <row Id="25400" PostTypeId="2" ParentId="25267" CreationDate="2010-12-10T22:37:31.180" Score="0" ViewCount="" Body="&lt;p&gt;The only real reason I can think of is to adopt a purely &quot;Microsoft-free&quot; philosophy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can ask the writers of the mingw win32 headers, but I suspect that there might also be some copyright concerns as well.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-10T22:37:31.180" CommentCount="2" />
  <row Id="25401" PostTypeId="2" ParentId="25092" CreationDate="2010-12-10T22:39:30.383" Score="2" ViewCount="" Body="&lt;p&gt;Here would be my suggestions for what may work well for team exercises:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Competitions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://marshmallowchallenge.com/Welcome.html&quot; rel=&quot;nofollow&quot;&gt;Marshmallow Challenge&lt;/a&gt; - This is an interesting exercise if you can divide up the team into small units that try to see who can build the tallest structure.&lt;/li&gt;&#xA;&lt;li&gt;If enough people are into a particular sport or game then creating a league may work as a way to get people to have fun with each other.  A poker night may work or possibly having a table tennis tournament.  We did have an in-house Olympics once that was kind of fun as a way to relieve some stress and be silly as some of the events did cause some funny moments like when I wiped out most of the obstacle course.&lt;/li&gt;&#xA;&lt;/ol&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Volunteering - This can be tricky as you'd have to get enough people wanting to do this to get the few holdouts to be OK with the idea.  For example, you could try to get a whole team helping out in a homeless shelter making meals or just making meals of others in the community.  The idea here being the social good being done may get some to do it while others may do it just because it is different than their usual work.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Learning something new - For example have the team learn how to cook some big meal that could be fun to see what gets made in the end.  If you have a dozen people you could break this up into 2 groups of 6 that each have an entree and another part like an appetizer or dessert to make assuming you can find a place that has adequate cooking facilities to do this for an afternoon.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Exercise - If you are near some parks there could be a walk to take that may work as a general activity that may be fun and interesting for some to go and see some views while working their bodies in the process.  The sports competitions can also use this kind of idea but in this case it is just getting through a walk or something simple that may give someone some pride in themselves, like &quot;Yeah I did that!&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-10T22:39:30.383" />
  <row Id="25402" PostTypeId="2" ParentId="25285" CreationDate="2010-12-10T22:40:12.927" Score="1" ViewCount="" Body="&lt;p&gt;Our team works mainly in Python, C++ and Java. We use Buildbot for CI. We initially got started with it because it integrates with Trac and because it seemed simple and straightforward. I believe it is the CI framework of choice in the Python world.&lt;/p&gt;&#xA;" OwnerUserId="9509" LastActivityDate="2010-12-10T22:40:12.927" />
  <row Id="25403" PostTypeId="1" AcceptedAnswerId="25407" CreationDate="2010-12-10T22:42:29.560" Score="0" ViewCount="128" Body="&lt;p&gt;Hi, I thought they were 'the same' but now I realize they are not (two different sites in stackexchange).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However I don't know the differences, what does a webmaster do (and don't) and the same for a programmer (or coder or developer?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="9398" LastActivityDate="2010-12-10T22:48:37.647" Title="What are the differences between a programmer and a webmaster ?" Tags="&lt;career&gt;" AnswerCount="3" />
  <row Id="25404" PostTypeId="2" ParentId="25100" CreationDate="2010-12-10T22:43:52.850" Score="8" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Robert_Cecil_Martin&quot; rel=&quot;nofollow&quot;&gt;Robert C. Martin (aka Uncle Bob).&lt;/a&gt;&lt;/h2&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2010-12-10T22:43:52.850" CommunityOwnedDate="2010-12-11T00:32:32.370" />
  <row Id="25405" PostTypeId="2" ParentId="25372" CreationDate="2010-12-10T22:45:15.233" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321303474&quot; rel=&quot;nofollow&quot;&gt;The Zen of CSS Design&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is getting a tiny bit out of date, but it was helpful for me to learn &lt;em&gt;how&lt;/em&gt; to do design using only CSS. Most of the problems that I had early on in my knowledge of CSS was exactly how to design an entire site using CSS, and this book was a major help in getting me into a new mindset.&lt;/p&gt;&#xA;" OwnerUserId="5039" LastActivityDate="2010-12-10T22:45:15.233" />
  <row Id="25406" PostTypeId="2" ParentId="25092" CreationDate="2010-12-10T22:46:12.473" Score="2" ViewCount="" Body="&lt;p&gt;No, (as someone already mentioned) going to the movies is not really team building activity. You cannot talk to anyone (well, you can but don't :-/ and apart from watching the movie there is nothing else involved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, this will depend on what place in the world you're living in, but in my parts (Meditteranean) &lt;strong&gt;&lt;em&gt;rafting&lt;/em&gt;&lt;/strong&gt; has always been a popular team building activity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Yyxk3.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from that, we've tried &lt;strong&gt;&lt;em&gt;paintball&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/18qr1.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(unfortunatelly, she wasn't competing :-( ) and &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Vi5D2.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;rock climbing&lt;/em&gt;&lt;/strong&gt; (not everyone was enthusiastic about this at first sight though).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mind you, this kind of activity will always depend on the preferences of the team in general. Some are more con, some are more pro-sports (&lt;em&gt;advice: don't ever force anyone to something they don't wanna do&lt;/em&gt;). But in general, some kind of outdoor activity (&lt;strong&gt;&lt;em&gt;barbecuing ?&lt;/em&gt;&lt;/strong&gt;) is always a good choice. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Edit: As far as money is concerned, these activities are not that expensive anymore that half a person's salary wouldn't cover the expenses for the whole team. There are many agencies organizing them, just find one in your local area (for example, in rockclimbing you won't buy your own equipment, just rent it for a day; in rafting, one or two experienced members from the agency usually go to give you a helping hand ...)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-10T22:46:12.473" />
  <row Id="25407" PostTypeId="2" ParentId="25403" CreationDate="2010-12-10T22:46:28.020" Score="2" ViewCount="" Body="&lt;p&gt;A programmer writes code in a programming language to create software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A webmaster manages a web site, which means he handles server management, file management, database setup, updating content, communicating with users, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The two terms are not exclusive, and often they overlap.  A lot of 'webmasters' are also programmers.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The term 'webmaster' is somewhat dated, imo.  Very 1995.  &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-10T22:46:28.020" CommentCount="1" />
  <row Id="25408" PostTypeId="2" ParentId="25166" CreationDate="2010-12-10T22:47:21.160" Score="0" ViewCount="" Body="&lt;p&gt;Go work for a more challenging company with higher standards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or use your programming expertise, accounting and economic knowledge and go work for a Hedge Fund and make tons of money. Because if you write code that can squeeze cash out of the markets, no one will care if the code is written poorly (Accept you of course.).&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-10T22:47:21.160" CommentCount="1" />
  <row Id="25409" PostTypeId="2" ParentId="25403" CreationDate="2010-12-10T22:48:22.747" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A &lt;a href=&quot;http://en.wikipedia.org/wiki/Webmaster&quot; rel=&quot;nofollow&quot;&gt;webmaster&lt;/a&gt; (a blend of web and master&lt;a href=&quot;http://en.wikipedia.org/wiki/Webmaster&quot; rel=&quot;nofollow&quot;&gt;1&lt;/a&gt;), also called a web architect, web developer, site author, website administrator is a person responsible for maintaining one or many websites. The duties of the webmaster may include ensuring that the web servers, hardware and software are operating accurately, designing the website, generating and revising web pages, replying to user comments, and examining traffic through the site. Webmasters &quot;must also be well-versed in Web transaction software, payment-processing software, and security software.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;A &lt;a href=&quot;http://en.wikipedia.org/wiki/Programmer&quot; rel=&quot;nofollow&quot;&gt;programmer&lt;/a&gt;, computer programmer or coder is someone who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software. One who practices or professes a formal approach to programming may also be known as a programmer analyst. A programmer's primary computer language (C, C++, Java, Lisp, Delphi etc.) is often prefixed to the above titles, and those who work in a web environment often prefix their titles with web. The term programmer can be used to refer to a software developer, software engineer, computer scientist, or software analyst. However, members of these professions typically possess other software engineering skills, beyond programming; for this reason, the term programmer is sometimes considered an insulting or derogatory oversimplification of these other professions. This has sparked much debate amongst developers, analysts, computer scientists, programmers, and outsiders who continue to be puzzled at the subtle differences in these occupations&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-10T22:48:22.747" />
  <row Id="25410" PostTypeId="2" ParentId="25403" CreationDate="2010-12-10T22:48:37.647" Score="1" ViewCount="" Body="&lt;p&gt;While I work as a Web Developer which is a bit of both, here are the differences that I'd note:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Webmaster can imply various systems administration duties like configuring and managing servers, responding to e-mails that someone may send you about a site that &quot;Your site would rock if you had...&quot;  There is also something rather old school about this title.  This also assumes some familiarity with web server software(IIS and Apache), DNS and a few other things that are part of individuals, groups or corporations have an on-line presence.  Content management systems, blogging engines, e-mail and other web-based software may be within their realm to know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmer though doesn't imply a specific realm.  Some may program hardware or embedded systems while others may do more applications or web-based software.  A program is merely a set of instructions for a machine to perform a task, on the most basic of levels.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-10T22:48:37.647" />
  <row Id="25411" PostTypeId="2" ParentId="25166" CreationDate="2010-12-10T22:59:39.570" Score="1" ViewCount="" Body="&lt;p&gt;If you have some management aspirations, here are a few ideas:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Developer manager/director of software development - This would be the idea of being your current boss in a way as this is just going up the food chain in a way.&lt;/li&gt;&#xA;&lt;li&gt;Project Manager - This would be more in knowing how to run a project, provide estimates, handle change management, and other administrative stuff that I don't enjoy but others like to do this kind of work.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you want to stay technical here are a few options:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Developer - This is where you are but it can still be a good career and depending on if you find something to be your specialty it could be quite rewarding to find your niche.&lt;/li&gt;&#xA;&lt;li&gt;Architect - This is getting more abstract and planning though not quite as in the trenches as a developer.&lt;/li&gt;&#xA;&lt;li&gt;System administrator - This is another possibility if you like to be the one in charge of seeing that things are running fine and be that go-to person when something new is added.  This can also be database administration or network administration too just to point out that system is rather broad here.&lt;/li&gt;&#xA;&lt;li&gt;Technical support - Some people like handling user issues and finding out why something happened and isn't a bad career choice for some people that like some chaos in their day as you don't know what issues you'll have to investigate here possibly.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you want to get away from the technical system building stuff and manager, here are some other options:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Business Analyst - This would be more about talking to users to see what they want and how reasonable is it to meet that request.&lt;/li&gt;&#xA;&lt;li&gt;Quality Analyst - This is a tester but some like just testing things out and seeing what works and what doesn't.  Not everyone wants to build systems.&lt;/li&gt;&#xA;&lt;li&gt;Network Analyst - If you enjoy configuring firewalls, load balancers and other hardware in getting machines to work together.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Note that in most cases you could be an employee, consultant or entrepreneur to some extent in any of these roles so there is still flexibility in any role as I see it.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-10T22:59:39.570" />
  <row Id="25412" PostTypeId="1" AcceptedAnswerId="25437" CreationDate="2010-12-10T23:02:32.463" Score="0" ViewCount="192" Body="&lt;p&gt;&lt;a href=&quot;http://arstechnica.com/tech-policy/news/2010/08/oracle-sues-google-over-use-of-java-in-android-sdk.ars&quot; rel=&quot;nofollow&quot;&gt;Why was Google sued by Oracle?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is Java proprietary? If I want to develop applications in Java I have to buy it?&lt;/p&gt;&#xA;" OwnerUserId="1451" LastActivityDate="2010-12-11T23:00:33.813" ClosedDate="2010-12-11T02:07:16.010" Title="What was the patent that android violated?" Tags="&lt;java&gt;&lt;software-patent&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="25413" PostTypeId="2" ParentId="25385" CreationDate="2010-12-10T23:04:00.593" Score="1" ViewCount="" Body="&lt;p&gt;How important is the clock to your employer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The simple answer may be to sometimes start the new task and see it through, finishing late as a result, but sometimes just leave early. So long as you're averaging out right, and getting work done on time, starting/leaving at exactly the right time shouldn't be an issue - though there are probably core hours when you are expected to be there and available to answer questions etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is, of course, that not all employers will see it this way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if no-one is watching the clock, it's probably a good idea to watch your hours yourself, though - keep yourself from sliding down a slippery slope to trouble without noticing.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2010-12-10T23:04:00.593" />
  <row Id="25414" PostTypeId="2" ParentId="25366" CreationDate="2010-12-10T23:05:04.197" Score="5" ViewCount="" Body="&lt;p&gt;NoSQL - &lt;a href=&quot;http://highscalability.com/blog/2010/12/6/what-the-heck-are-you-actually-using-nosql-for.html&quot; rel=&quot;nofollow&quot;&gt;http://highscalability.com/blog/2010/12/6/what-the-heck-are-you-actually-using-nosql-for.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SQL - everything else.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-10T23:05:04.197" />
  <row Id="25415" PostTypeId="2" ParentId="25320" CreationDate="2010-12-10T23:13:52.770" Score="0" ViewCount="" Body="&lt;p&gt;Red, Green, Refactor, Repeat.&lt;/p&gt;&#xA;" OwnerUserId="9413" LastActivityDate="2010-12-10T23:13:52.770" />
  <row Id="25416" PostTypeId="1" AcceptedAnswerId="25417" CreationDate="2010-12-10T23:14:47.217" Score="2" ViewCount="168" Body="&lt;p&gt;The question might not be as simple as it sounds, as we have struggled with this a bit.&#xA;If there are 5 separate bugs, which can be taken care of with a single fix, then it is wasteful to take this approach. One bug might slip through the cracks, and would take away from a complete picture, or just be hidden for some time (we have several years worth of outstanding bugs, and our bug tracker sucks at searching :( ).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, if you file a bug of 100+ parts (such as help tooltips are missing from all 234 dialogs), then it should be treated as a project and be broken down. However, if it is a bug of 3-4 parts, then the developer would attempt to fix all 3 or 4 at once. This is where it gets interesting. What if the coder only fixes 3 or 3.5 out of 4? Should after testing a new bug be filed and old one closed? If yes, then this invites sloppy programming practices, where close enough is good enough. If the bug is to fail, then all of it has to be re-done and re-tested. Now ... what if part 1 is the size of a breadbox in terms of size and risk, part 2 is more like a car, part 3 is like a house, and so on :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When sizing and prioritizing this bug (I must mention that we use Scrum), the house part was not noticed - who reads anything but a bug title anyway? So, it was deemed a low hanging fruit - low effort, low risk, happy user = high reward. But, we got bitten with one of them recently. What seemed to be logically the same area, was actually code in transitional state, where we are trying to deprecate one method of doing things, or one library for creating widgets with another, new and better. The problem is that we had to release mid-conversion, so we made two very different beasts look alike. Our QA folks did not know that, are not expected to know that, and so in their mind these are all the same issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We need to be QA-friendly - not to push back too hard or too often, but also try to give a set of heuristics which would help to decide whether to file one bug or many. I suppose the problem might lie with weak tools, where splitting and merging bugs is hard to do. However, how do you deal with this stuff in general?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. In Scrum - once you committed to fixing something, it probably should be fixed. Break this rule too many times and discipline will degrade.&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-12-11T18:14:05.207" Title="Should QA file 5 separate bugs or one bug with multiple parts in it?" Tags="&lt;scrum&gt;&lt;bug-tracking&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="25417" PostTypeId="2" ParentId="25416" CreationDate="2010-12-10T23:20:20.083" Score="20" ViewCount="" Body="&lt;p&gt;5 bugs = 5 bug reports; the fact that they can all be fixed at once is not QA's concern. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;in other words, &lt;em&gt;guessing&lt;/em&gt; that all 5 bugs stem from the same problem is putting the cart ahead of the horse.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-10T23:20:20.083" CommentCount="2" />
  <row Id="25418" PostTypeId="2" ParentId="25416" CreationDate="2010-12-10T23:25:20.547" Score="0" ViewCount="" Body="&lt;p&gt;I'd go with one bug but if the initial fix covers only part of it then the question becomes should there be a new bug opened for that portion as it could be that what was thought to be fixed at once isn't realistic or something new may be introduced and thus should be a new bug.  The key is trying to figure out where is that, &quot;In this case let's make a new bug,&quot; line as it shouldn't be that every fix spawns a new bug but in some cases that may make sense to my mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My issue with 5 bug reports is that this may mean a lot of administrative overhead that isn't worthwhile as some may want each fix to be done in a separate branch which can be a bit of a waste of time to my mind.  Once there is enough experience there should be a good deal of precedence to see where that line lies.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;To give a more specific example, imagine a form that has a handful of style issues,e.g. the border doesn't align properly in IE7, in Firefox another part of the form doesn't line up correctly and a few other things that are mostly cosmetic but do cause the form to not meet the specification.  Should each issue be logged as a separate bug, which could mean a lot of duplicate work for both QA and development as each bug has to be created, screen shots attached, etc. that doesn't strike me as worthwhile if bundling these together in one bug may be better all around.  This has nothing to do with knowing what is or isn't in the code, but rather how finely to slice up things.  Some people may like to slice things into itty-bitty pieces but this may be passive-aggressive if the person does it just to piss off a developer.  For example, if someone has to have their password reset to &quot;password&quot; would you rather have a step for typing each character one by one or is it better to assume the person knows how to type consecutive characters together so that instead of being 8 steps to enter the new password it is just one.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastEditorUserId="4327" LastEditorDisplayName="" LastEditDate="2010-12-11T16:46:09.510" LastActivityDate="2010-12-11T16:46:09.510" CommentCount="1" />
  <row Id="25419" PostTypeId="2" ParentId="25412" CreationDate="2010-12-10T23:27:23.383" Score="4" ViewCount="" Body="&lt;p&gt;You do not need to worry if you are developing Java applications. The suit is about how Google have implemented the Android OS, not about applications built using Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Google have developed their own Java based object oriented application framework that uses core libraries and which runs on the Dalvik VM, which Oracle says is in breach of their IP and patents. (To paraphrase the Oracle complaint.)&lt;/p&gt;&#xA;" OwnerUserId="1069" LastEditorUserId="1069" LastEditorDisplayName="" LastEditDate="2010-12-11T23:00:33.813" LastActivityDate="2010-12-11T23:00:33.813" CommentCount="6" />
  <row Id="25420" PostTypeId="2" ParentId="25135" CreationDate="2010-12-10T23:34:54.003" Score="6" ViewCount="" Body="&lt;p&gt;Perhaps if you were in his position, you might do the same thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You know only his stated intention, which is to leave, not the reasons behind it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Gambling, parents sick, sexual abuse, drug problem, new job offer, bundle of documents destined for a brown cardboard box in the back of some Swedish hideaway,  you just don't know. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, we have a handy term that means you don't have to be in his situation to see things from his point of view.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Empathy&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a life question, not programming, and the thing about life is that you will be the one up, and eventually, the one down. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How did he look when he told you?  Like he wanted to say more?  We got it down to one phrase, and although casual it can mean the world to someone: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Y'aight?&quot;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like I said, one day you'll be the one down, regardless of his situation.  When you are, you might remember the day you went a little out of your way to show a little empathy and feel better a little better at that time.  Just a thought.&lt;/p&gt;&#xA;" OwnerUserId="8962" LastActivityDate="2010-12-10T23:34:54.003" CommentCount="2" />
  <row Id="25421" PostTypeId="2" ParentId="25135" CreationDate="2010-12-10T23:41:14.477" Score="2" ViewCount="" Body="&lt;p&gt;Definitely not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;News Flash: Programmers typically find the best jobs by &lt;strong&gt;networking&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My Advice: Do not kill your relationship with this colleague.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you keep a &lt;em&gt;good&lt;/em&gt; relationship with&#xA;this colleague, he/she can be a&#xA;source of information and a reference&#xA;going forward.&lt;/li&gt;&#xA;&lt;li&gt;If you develop a &lt;em&gt;bad&lt;/em&gt;&#xA;relationship with this colleague,&#xA;he/she could sully your name, and&#xA;hurt your chances with a prospective&#xA;employer.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1996" LastActivityDate="2010-12-10T23:41:14.477" />
  <row Id="25422" PostTypeId="2" ParentId="24808" CreationDate="2010-12-10T23:52:06.263" Score="1" ViewCount="" Body="&lt;p&gt;The coolest I have ever done?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There were two and it was 26 years ago or thereabouts ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1/ when my only programming language was a very ancestral form of BASIC (all capitals, yes), with line numbers and GOTO statements as sole control to branch to different code, I programmed a stack and recursion. That was fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2/ my proudest moment though was when years before I lay my hands on an Object Oriented language, to implement Object Oriented concepts with a language that did not know the first thing about it. Again a rather old version of Turbo Pascal, I used pointers to functions to implement a set of objects with polymorphism to build a pretty simple ray-tracer (basic shapes, textures, and basic operators: sphere, plane, box, scaling, rotating, matrix product, intersection, union, negation).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aside from that I really enjoyed learning computing through LOGO, perfect to learn the concept of recursion with fractals such as Koch's flake, the dragon...&lt;/p&gt;&#xA;" OwnerUserId="9043" LastActivityDate="2010-12-10T23:52:06.263" CommentCount="1" />
  <row Id="25423" PostTypeId="2" ParentId="25188" CreationDate="2010-12-10T23:55:01.580" Score="1" ViewCount="" Body="&lt;p&gt;This all comes down to the design choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you truly wish to hide the private implementation details of the C++ or Objective-C class, then you either provide one or more interfaces that the class supports (C++ pure virtual class, Objective-C @protocol) and/or you make the class able to construct itself by providing a static factory method or a class factory object.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason that the private variables are exposed in the header file/class declaration/@interface is that a consumer of your class might need to create a new instance of it and a &lt;code&gt;new MyClass()&lt;/code&gt; or &lt;code&gt;[[MyClass alloc]init]&lt;/code&gt; in the client code needs the compiler to understand how big a MyClass object is in order to do the allocation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java and C# also have their private variables detailed in the class - they are no exception to this, but IMO the interface paradigm is much more common with those languages. You may not have the source code in each case, but there's enough metadata in the compiled/byte-code to deduce this information. As C++ and Objective-C don't have this metadata, the only option is the actual details of the class/@interface.  In the C++ COM world, you don't expose the private variables of any classes yet can provide the header file - because the class is pure virtual. A class factory object is registered to create the actual instances too, and there's some metadata in various forms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In C++ and Objective-C, it is less work to hand out the header file compared to writing and maintaining an additional interface/@protocol file. This is one reason that you see the private implementation exposed so often.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another reason in C++ is templates - the compiler needs to know the details of the class in order to generate a version of that class specialized to the parameters provided. The size of the class's members would vary with the parameterization, so it needs to have this information.&lt;/p&gt;&#xA;" OwnerUserId="572" LastEditorUserId="572" LastEditorDisplayName="" LastEditDate="2010-12-11T00:08:02.370" LastActivityDate="2010-12-11T00:08:02.370" />
  <row Id="25425" PostTypeId="1" AcceptedAnswerId="27251" CreationDate="2010-12-11T00:13:25.123" Score="1" ViewCount="290" Body="&lt;p&gt;Hi; I'm looking to get a snapshot of Rails 3 at this point in time. We're about to start a new long term project, and I'm wondering if R3 is ready for real use. Or, if there are still a lot of bumps to be worked out. E.g. I saw questions about its compatibility with Passenger. (?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="9425" LastActivityDate="2010-12-17T07:37:59.197" Title="Is Rails 3 ready for use in production?" Tags="&lt;ruby-on-rails&gt;" AnswerCount="3" />
  <row Id="25427" PostTypeId="2" ParentId="25285" CreationDate="2010-12-11T00:31:56.540" Score="1" ViewCount="" Body="&lt;p&gt;Hudson. It's a little buggy at times, and some of the more interesting plugins don't actually work, but with a little handholding it's pretty usable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd probably use Pulse instead, but if you need to build on multiple platforms it's &gt;$5k, which is a bit much.&lt;/p&gt;&#xA;" OwnerUserId="9516" LastActivityDate="2010-12-11T00:31:56.540" />
  <row Id="25428" PostTypeId="2" ParentId="25100" CreationDate="2010-12-11T00:32:32.370" Score="2" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Martin_Odersky&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Martin Odersky&lt;/strong&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Designer/creator of Scala and Java generics, also coded the original Java compiler (or something like that).&lt;/p&gt;&#xA;" OwnerUserId="9515" LastActivityDate="2010-12-11T00:32:32.370" CommunityOwnedDate="2010-12-11T00:32:32.370" />
  <row Id="25429" PostTypeId="2" ParentId="25425" CreationDate="2010-12-11T00:43:20.080" Score="3" ViewCount="" Body="&lt;p&gt;Yes Rails 3 is ready for production. Many sites are already using it in production. The compatibility issue is because Rails 3 is using Rack, Passenger will treat Rails 3 apps as Rack apps when it sees config.ru in the application root directory. &lt;/p&gt;&#xA;" OwnerUserId="9298" LastActivityDate="2010-12-11T00:43:20.080" CommentCount="2" />
  <row Id="25430" PostTypeId="1" CreationDate="2010-12-11T00:48:15.970" Score="4" ViewCount="73" Body="&lt;p&gt;If you were to evaluate a software company for purchase, who already had&#xA;a decent product that was being licenced and generating income, what elements would you expect to see in the company to ensure that it continually produces good software? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I'm looking for details on things like, an Engineering Management System, Software Development Life Cycle, a Configuration Management Process, Customer Service Management, Employee morale. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What questions about these aspects would you ask?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the minimum you would expect?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Note that maybe my examples are NOT what should be looked at. Just guidance to get the question going.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="9518" LastActivityDate="2010-12-11T01:32:40.287" ClosedDate="2010-12-11T02:04:57.853" Title="Evaluating A Software Company For Purchase" Tags="&lt;software-engineering&gt;&lt;ideal-company&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="25431" PostTypeId="2" ParentId="25276" CreationDate="2010-12-11T00:48:54.610" Score="8" ViewCount="" Body="&lt;p&gt;&quot;Clever&quot;, when applied to code, is almost always just a euphemism for &quot;needlessly complicated&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reading good, clear, simple code is hard enough. Reading &quot;clever&quot; code is like studying latin poetry all over again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The confusion arises because &quot;clever&quot; as an attribute of a person has a completely different meaning. This case can also be seen as an example of why designing software for real people is hard: Because they are ambiguous.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And because some programmers suffer to understand the social protocols most people follow, which forbid them to directly denounce code as &quot;needlessly complicated&quot;, they may find it hard to differentiate between the two meanings of the word &lt;em&gt;clever&lt;/em&gt;. Contrary to what some may think, I think ultimately better &quot;people persons&quot; (meaning: people who have empathy and introspection and patience) make better developers. Because they know who to write for.&lt;/p&gt;&#xA;" OwnerUserId="9505" LastEditorUserId="9505" LastEditorDisplayName="" LastEditDate="2010-12-12T10:10:38.023" LastActivityDate="2010-12-12T10:10:38.023" CommunityOwnedDate="2011-01-08T19:36:34.897" CommentCount="4" />
  <row Id="25432" PostTypeId="1" AcceptedAnswerId="25459" CreationDate="2010-12-11T01:02:22.017" Score="83" ViewCount="49559" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm working at my first programming job. My boss is a very smart software engineer, and I feel &#xA;like I have very little to offer compared to him. Problem is, he is always busy, and needs someone to help him out. I feel like I'm not good enough, but I still want to succeed. I want to be a great programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What can I do to impress him?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you.&lt;/p&gt;&#xA;" OwnerUserId="9520" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-01-25T23:49:04.873" LastActivityDate="2011-01-25T23:49:04.873" ClosedDate="2010-12-28T23:24:24.623" Title="How can a new programmer impress the software engineer (boss)?" Tags="&lt;recommendations&gt;" AnswerCount="21" CommentCount="6" FavoriteCount="64" />
  <row Id="25434" PostTypeId="2" ParentId="25432" CreationDate="2010-12-11T01:06:19.910" Score="16" ViewCount="" Body="&lt;p&gt;Write clear, solid code.&lt;/p&gt;&#xA;" OwnerUserId="7222" LastActivityDate="2010-12-11T01:06:19.910" CommentCount="5" />
  <row Id="25435" PostTypeId="2" ParentId="25432" CreationDate="2010-12-11T01:09:22.823" Score="81" ViewCount="" Body="&lt;p&gt;Remember the scene in &lt;em&gt;Aladdin&lt;/em&gt; where Aladdin wants to impress Jasmine, and the genie tells him he'd do better to just focus on being himself?  Same principle here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the boss is that much better than you and you know it, he probably knows it too.  He isn't expecting any great feats of programming rock-stardom out of you.  Since this is your first job, he most likely hired you because he saw the potential to become a good coder in you.  So if you really want to impress him, &lt;strong&gt;learn.&lt;/strong&gt;  Learn the language, learn the system you're working on, learn the ins and outs and dark corners.  Focus on learning correct principles, learning them well and learning them quickly, in that order.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And remember that part of learning is copying knowledge that other people already have.  Don't be afraid to ask questions, either of your coworkers or on StackOverflow, or research things on Google.  Whatever you do, don't pretend you know something when you really don't, in an effort to avoid seeming dumb.  Any good developer will notice quickly, and that will make you look even stupider in their eyes.  Humility tends to still be considered a virtue among engineers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do a good job at that and it'll impress the boss.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-11T01:09:22.823" CommentCount="6" />
  <row Id="25436" PostTypeId="2" ParentId="25432" CreationDate="2010-12-11T01:18:21.213" Score="5" ViewCount="" Body="&lt;p&gt;@Mason is right&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;listen&lt;/li&gt;&#xA;&lt;li&gt;learn&lt;/li&gt;&#xA;&lt;li&gt;ask relevant questions at respectful intervals (e.g. twice a day, not every 5 minutes)&lt;/li&gt;&#xA;&lt;li&gt;relax and be yourself&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-11T01:18:21.213" CommentCount="4" />
  <row Id="25437" PostTypeId="2" ParentId="25412" CreationDate="2010-12-11T01:25:27.557" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Why was Google sued by Oracle?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You would have to ask Larry Ellison et al about that.  But the most likely reason is that Oracle wants Google to pay them a few billion dollars.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want more details on the legal aspects, this is one of the cases that &lt;a href=&quot;http://www.groklaw.net&quot; rel=&quot;nofollow&quot;&gt;Groklaw&lt;/a&gt; is following.  (Look at the &quot;Oracle Google&quot; entry in the menu.)  Until the case is decided, it is a matter of opinion who has the better case and who is going to win. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But either way, there is (IMO) minimal chance that this will have &lt;em&gt;any&lt;/em&gt; direct impact on Java end users or developers.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is Java proprietary?  If I want to develop applications in Java I have to buy it?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It depends on the platform.  Oracle and other folks provide various implementations of Java SE, EE, ME, etc for free for a range of platforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other implementations you may need to pay for, and may have licensing conditions attached.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The source code base for Java SE 6 and 7 has been open sourced (as OpenJDK), but there are restrictions on what you can call Java.&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-12-11T07:24:24.157" LastActivityDate="2010-12-11T07:24:24.157" />
  <row Id="25438" PostTypeId="2" ParentId="25430" CreationDate="2010-12-11T01:32:40.287" Score="2" ViewCount="" Body="&lt;p&gt;Great question. We're looking at this all the time!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We look for 5 things:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Enthusiasm - Does the team and leadership of the team LOVE what they do. Are they saturated in it and absolutely ooze their product or company. Take Apple fan-boys for example. They love Apple. You just KNOW it when you see it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Expertise - Does the team and leadership know their domain-space. Meaning, do they know their market? Are these guys thought leaders? Are they active in their community (i.e. Software development community). Are they using social media? Are they the best ruby developers working together? Even to the point if some of them are avid bloggers or writers. These guys have to continue to love their craft. Grow themselves personally for the company.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Know their Mission - Does the team and leadership share the same values and mission for the company? Could you pull any of the guys off the team and ask them what the mission and vision for their product is. You should get 100% of the same answers from any of the team members. Then you know they're working together and understand the core of their business.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Know the Plan - What is the 3-6-9-12 month plan? What iterative development plans do they have to build the next great features for the product? How are they taking community feedback and incorporating it into their next build? What are lessons learned that they have taken to heart and have learned from? Plans change, we understand that. But there has to be some plans in place.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Who are they listening to? This is the absolutely most crucial part. Working in a vacuum doesn't help a company. Who is on their board? If they don't have one, what thought leaders are they going to for advice? Who are they listening to? Who advises them on their product? Who are they leveraging to help them build the best product they can? This is crucial. A wise man once said that plans fail from lack of counsel. This is absolutely true with web development and web product development. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;**Notice we didn't talk about having a stand-out product or something that is niche. Tons of cool products come out all the time. Some have already been done. A solid team can make something that's been done before look even better. With correct strategies in place you can make the next facebook, next twitter. Why? Because your team know's it's core business and can build something great from it. It's just a matter of time before some code-savvy entrepreneurs come along and make the next facebook.&lt;/p&gt;&#xA;" OwnerUserId="8874" LastActivityDate="2010-12-11T01:32:40.287" />
  <row Id="25439" PostTypeId="2" ParentId="25100" CreationDate="2010-12-11T01:41:45.280" Score="-1" ViewCount="" Body="&lt;p&gt;Pick someone from &lt;a href=&quot;http://stackoverflow.com/users&quot;&gt;here&lt;/a&gt;, and that's who I'd vote for.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-11T01:41:45.280" CommunityOwnedDate="2010-12-11T01:41:45.280" CommentCount="1" />
  <row Id="25441" PostTypeId="2" ParentId="3849" CreationDate="2010-12-11T01:58:26.383" Score="1" ViewCount="" Body="&lt;p&gt;I don't believe that there's any single good answer to this question.  I've known far too many good programmers who were nothing alike.  Some people are just machines you can set loose on a problem and expect it to be finished in a tenth the time it would take a normal programmers.  Some people can be relied upon to write code that &lt;em&gt;never breaks&lt;/em&gt;.  Some people are good at designing good APIs (something that is a lot like flossing - everyone agrees it's a good idea, but nobody does it).  Some people are good at coming up with appropriate abstractions that make complex code so much simpler.  And still others are good at coordinating the team, keeping them focused, and driving them to get things done.  Beyond this, there are probably other possibilities that I'm not mentioning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, I'm against the idea of the &quot;one true&quot; way to be a great programmer.  Great programmers are just like anyone else - people with strengths and weaknesses.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-11T01:58:26.383" />
  <row Id="25442" PostTypeId="1" CreationDate="2010-12-11T02:03:06.640" Score="8" ViewCount="543" Body="&lt;p&gt;I don't have lots years of experience in programming, but I'm also not a really new programmer.  However, most of my experience with actually writing code has been a in a language like BASIC and in object-oriented languages.  It seems to me that the amount of experience that I have with OOP and not with other (non-BASIC-like) paradigms has left me with some dain bramage (excuse me... brain damage).  Software doesn't have to be written with OOP.  Does anyone have any suggestions of non-OO languages with as good or better methods abstraction than OOP that would be good to learn?&lt;/p&gt;&#xA;" OwnerUserId="9521" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-12-18T10:17:43.017" LastActivityDate="2010-12-19T10:19:46.240" ClosedDate="2010-12-31T15:13:20.950" Title="What non-OO language should I learn?" Tags="&lt;programming-languages&gt;&lt;object-oriented&gt;&lt;language-choice&gt;" AnswerCount="8" CommentCount="4" />
  <row Id="25443" PostTypeId="2" ParentId="25442" CreationDate="2010-12-11T02:07:50.360" Score="14" ViewCount="" Body="&lt;h3&gt;Scheme.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Get yourself a copy of &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0262011530&quot; rel=&quot;nofollow&quot;&gt;SICP&lt;/a&gt; and watch the &lt;a href=&quot;http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/&quot; rel=&quot;nofollow&quot;&gt;lectures&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It'll change your world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or:&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Haskell&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://learnyouahaskell.com/&quot; rel=&quot;nofollow&quot;&gt;Learn You a Haskell for Great Good&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will fall in love.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-12-11T02:07:50.360" CommentCount="11" />
  <row Id="25444" PostTypeId="2" ParentId="13692" CreationDate="2010-12-11T02:10:24.387" Score="0" ViewCount="" Body="&lt;p&gt;I notice that no one has posted the obligatory Kurt von Hammerstein-Equord quote, so it might as well be me:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I divide my officers into four&#xA;  classes; the clever, the lazy, the&#xA;  industrious, and the stupid. Most&#xA;  often two of these qualities come&#xA;  together. The officers who are clever&#xA;  and industrious are fitted for the&#xA;  highest staff appointments. Those who&#xA;  are stupid and lazy make up around 90%&#xA;  of every army in the world, and they&#xA;  can be used for routine work. The man&#xA;  who is clever and lazy however is for&#xA;  the very highest command; he has the&#xA;  temperament and nerves to deal with&#xA;  all situations. But whoever is stupid&#xA;  and industrious is a menace and must&#xA;  be removed immediately!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It sounds to me that you're talking about a stupid &lt;em&gt;and&lt;/em&gt; lazy programmer.  In general, they're pains but can be useful if handled appropriately (The industrious and stupid programmer is &lt;em&gt;by far&lt;/em&gt; a bigger threat!).  In fact, I agree with von Hamerstein-Equord in regards to how you can use this kind of person.  Give them the routine, dull tasks that the other programmers don't want to do.  They usually &lt;em&gt;enjoy&lt;/em&gt; this and generally aren't terribly high-maintenance for these tasks.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-11T02:10:24.387" />
  <row Id="25445" PostTypeId="2" ParentId="25442" CreationDate="2010-12-11T02:15:08.843" Score="17" ViewCount="" Body="&lt;p&gt;I agree with the functional languages, and would recommend C for learning memory management.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-11T02:15:08.843" CommentCount="1" />
  <row Id="25446" PostTypeId="2" ParentId="25276" CreationDate="2010-12-11T02:26:22.430" Score="6" ViewCount="" Body="&lt;p&gt;Most folks are focusing on cleverness from an aspect of &quot;The code requires too much deciphering to figure out what it is doing&quot; and all the bad things that go along with that such as &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;No one else can figure it out, let alone maintain it/debug it.&lt;/li&gt;&#xA;&lt;li&gt;The person who wrote doesn't even know what it does.&lt;/li&gt;&#xA;&lt;li&gt;It may actually be not all that brilliant to begin with&lt;/li&gt;&#xA;&lt;li&gt;etc....&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;All good points, but there's another negative aspect of cleverness and that is the old ego problem. This causes issues along the lines of&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Someone that is too &quot;Smart&quot; to use anyone else's solutions. Why look for what other people have done when you can invent your own way of skinning the same cat?&lt;/li&gt;&#xA;&lt;li&gt;Someone who thinks they've invented the coolest solution to a problem will often refuse to take any input.&lt;/li&gt;&#xA;&lt;li&gt;Won't let anyone modify &quot;their&quot; code even when there's obvious issues or a trivial change is needed.&lt;/li&gt;&#xA;&lt;li&gt;Somewhat conversely, they think they're smart and need to use the &quot;latest&quot; technique to prove how smart they are but fail to get a good handle on it in either personal projects or otherwise non-production code before rolling it into critical parts of the system. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;We're all guilty of too much ego sometimes, but when it gets in the way of the team it's a problem.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-12-11T02:26:22.430" CommunityOwnedDate="2011-01-08T19:36:34.897" />
  <row Id="25447" PostTypeId="2" ParentId="25432" CreationDate="2010-12-11T02:27:02.887" Score="5" ViewCount="" Body="&lt;p&gt;As Steven says, Mason is right -- focus on your own game. The thing to bear in mind is that your boss just wants you to do your own job well. He probably actually &lt;em&gt;likes&lt;/em&gt; the fact that he's better than you -- if he wasn't, he might well end up feeling insecure (bosses are human!). Right now, you're in an ideal position to learn from his experience -- don't waste time competing with him, ask his advice on things instead. If you've ever read the 48 Laws of Power, the key one is &quot;Never outshine the master&quot;.&lt;/p&gt;&#xA;" OwnerUserId="9042" LastActivityDate="2010-12-11T02:27:02.887" CommentCount="2" />
  <row Id="25449" PostTypeId="1" CreationDate="2010-12-11T02:47:32.637" Score="1" ViewCount="218" Body="&lt;p&gt;I am a college student currently trying to decide courses for my next semester, so far, my program has mainly only had Java and .NET courses to offer. I am now have a choice between COBOL and VBA. I have researched both languages and am somewhat confused, as I'm not sure how useful it is to learn VBA (and I think I could likely learn it later on by myself), while COBOL, though obviously starting to disappear supposedly has a niche-market value... Mainly wondering what people's thoughts are on which will be more useful to have as far as the marketplace goes... how hard is it to self-teach VBA? how quickly are these COBOL jobs disappearing... etc. Any info would be greatly appreciated thanks very much&lt;/p&gt;&#xA;" OwnerUserId="9524" LastActivityDate="2010-12-11T14:10:22.450" Title="Learning COBOL vs VBA?" Tags="&lt;cobol&gt;" AnswerCount="7" CommentCount="1" />
  <row Id="25450" PostTypeId="2" ParentId="25449" CreationDate="2010-12-11T02:59:59.817" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;which will be more useful to have as far as the marketplace goes&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;NEITHER&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would stick with Java or .NET or both.  If you find a need for VBA, you can pick it up pretty quickly.  I know a bunch of Cobol programmers and they're completely tied to big iron mainframes and while there is a niche for it, it's definitely a world off by itself.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-11T02:59:59.817" />
  <row Id="25451" PostTypeId="2" ParentId="25449" CreationDate="2010-12-11T03:07:27.090" Score="0" ViewCount="" Body="&lt;p&gt;I would go with COBOL. This could be because I have no experience with it. That being said, I do have experience with VBA and it is the type of thing you can just pick up along the way, especially if you are already a fairly skilled developer.&lt;/p&gt;&#xA;" OwnerUserId="7446" LastActivityDate="2010-12-11T03:07:27.090" />
  <row Id="25452" PostTypeId="2" ParentId="25449" CreationDate="2010-12-11T03:07:34.437" Score="3" ViewCount="" Body="&lt;p&gt;If it really is an either-or choice:&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;VBA&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I can't think of any good reason to learn COBOL - apart from it's general uselessness in getting an interesting job, to quote Dijkstra &quot;the use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn VBA, and you might find it useful if you decide you want to make money rather than software.&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-12-11T03:07:34.437" />
  <row Id="25453" PostTypeId="2" ParentId="25449" CreationDate="2010-12-11T03:46:42.543" Score="2" ViewCount="" Body="&lt;p&gt;choose...something else. I find it hard to believe that those are the only two choices left in a CS curriculum!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-11T03:46:42.543" CommentCount="2" />
  <row Id="25456" PostTypeId="2" ParentId="25432" CreationDate="2010-12-11T04:19:21.527" Score="7" ViewCount="" Body="&lt;p&gt;Solve Rubik's cube. The boss will know that you like challenging puzzles and will give you tough assignments. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-11T04:19:21.527" CommentCount="5" />
  <row Id="25457" PostTypeId="2" ParentId="25449" CreationDate="2010-12-11T04:26:47.167" Score="3" ViewCount="" Body="&lt;p&gt;If those &lt;em&gt;really&lt;/em&gt; are the only 2 options, go for &lt;strong&gt;COBOL&lt;/strong&gt;.  Even if you never have to write a line of production code in COBOL during your career, you may encounter COBOL programs that are being replaced.  Or you might have to read/process COBOL data files (I get that a lot).  A semester of it might not hurt.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;VBA... I cant even fathom why that'd be taught as a &lt;em&gt;college&lt;/em&gt; level course.  &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-11T04:26:47.167" CommentCount="2" />
  <row Id="25458" PostTypeId="1" AcceptedAnswerId="25555" CreationDate="2010-12-11T04:34:03.850" Score="6" ViewCount="446" Body="&lt;p&gt;Hi&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have around 8 years experience in software development. I have worked on application development all these years using C++ /win32. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I few years from now I want to become a freelancer . I tried to look into some freelance sites and I am not able to find any projects on C++/win32. I feel C++/Win32 wont help me much and I need to learn new skills . But my job require me to still work on C++ , so I cann't learn any new skills. I can still learn some new skills but without good project , it won't make any sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have shortlisted few skills&#xA;1)php&#xA;2)jquery&#xA;3)perl&#xA;4)Python&#xA;5)android&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am still confused which one to start and how to get expertise in them.Any suggestions?&lt;/p&gt;&#xA;" OwnerUserId="9472" LastEditorUserId="4711" LastEditorDisplayName="" LastEditDate="2010-12-16T23:10:13.800" LastActivityDate="2010-12-17T01:48:13.803" Title="What to learn to become freelancer?" Tags="&lt;career&gt;&lt;freelance&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="10" />
  <row Id="25459" PostTypeId="2" ParentId="25432" CreationDate="2010-12-11T04:37:12.780" Score="167" ViewCount="" Body="&lt;p&gt;Did I ever tell you about Ashton?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ashton was your classic corn-fed farm boy. His parents had been hippies who never really managed to get their acts together until his mother inherited 15 acres in a rural part of Michigan. The family moved out there, bought a couple of dairy goats, and struggled to make a living selling organic goat cheese to the yuppies at the Ann Arbor Farmer’s Market.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the time he was ten years old, Ashton had to wake up every morning at 4:00 a.m. and milk those damn goats, and it was exhausting. Ashton loved going to school because it meant he wasn’t working knee-deep in goat poop. Throughout high school, he studied his ass off, hoping that a scholarship to a good university would be his ticket out of the farm. He found college to be so much easier than farm life that he didn’t understand why everyone else didn’t get straight A’s like him. He majored in Software Engineering because he couldn’t imagine engineers ever being required to wake up at 4:00 a.m.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ashton graduated from school without knowing much about the software industry, really, so he went to the career fair, applied for three jobs, got accepted by all three, and picked the one that paid the most: something insane like $32,000 a year, working at a big furniture company in the southwestern part of the state that manufactured cubicle farms for corporations all over the world. He never wanted to see a farm again, so he was determined to make a good impression on his boss, Charlie Sherman.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“That’s not going to be easy,” his cubicle-mate, Jeff, said. “She’s something of a legend here.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“What do you mean?” he asked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Well, you remember a few years ago, when there was all that uproar about Y2K?”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ashton was probably too young. “Y2K?”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“You know, nobody expected that all the old computer programs written in the 1960s would still be running in 2000, so they only had room for two digits for the year. Instead of storing 1999, they would store 99. And then when the year flipped over on January 1st, 2000, the computer systems crashed, because they tried to fit “100” in two digits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Really? I thought that was a myth,” Ashton said.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“At every other company in the world, nothing happened,” Jeff said. “They spent billions of dollars checking every line of code. But here, of course, they’re cheap bastards, so they didn’t bother doing any testing.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Not at all?”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Zilch. Zero testing. Nada. And lo and behold, when people staggered back into work on January 2nd, not a single thing worked. They couldn’t print production schedules. They couldn’t get half of the assembly lines to even turn on. And nobody knew what shifts they were supposed to be working. The factory literally came to a standstill.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“You’re kidding,” Ashton said.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“I shit you not. The factory was totally silent. Now, Charlie, she was new then. She had been working at Microsoft, or NASA, or something... nobody could figure out why someone like her would be working in our little armpit of a company. But she sat down, and she started coding. And coding. And coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Charlie coded for nine days straight. Nine days without sleeping, without eating, some people even claimed she never went to the bathroom. She went from system to system and literally fixed all of them. It was something to behold. My God, there were &lt;em&gt;COBOL&lt;/em&gt; systems in there that needed to be fixed. The whole factory at a standstill, and Charlie is sending people to the university library in Ann Arbor to find old COBOL manuals. Assembly-line workers are standing around shivering, because even the &lt;em&gt;thermostats&lt;/em&gt; had a Y2K bug. And Charlie is drinking cup after cup of coffee and typing like a madwoman.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Wow. And she never went to the bathroom?”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Well, that part might be a &lt;em&gt;little&lt;/em&gt; bit of an exaggeration. But she really did work 24 hours for nine days straight. Anyway, on January 11th, about five minutes before the day shift is supposed to start, she comes out of her cubicle, goes to the line printer, hits a button, and boom! out comes the production schedules, and the team schedules, and everything is perfect, perfectly formatted, using a slightly smaller font so that the “2000” fits where it used to say “99,” and she’s even written a new priority optimizing system that helps them catch up with 9 days of missed production without pissing off too many customers, and all the assembly lines start running like nothing was ever wrong, and the heat comes on, and the invoices come out printed with ‘2000’ as the year instead of ‘19100,’ and after that day, nobody found a single bug.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Oh come on!” Ashton says. “Nobody writes code without bugs.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“She did. I saw it with my own eyes. The first day back they ran two days worth of cubicles without a hiccup.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ashton was dumbstruck. “That’s epic. How can I live up to that?”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“You can’t, buddy, nobody can,” Jeff said, turning back to his computer terminal, where he resumed an online flame war over who would win in a fight, Spock or Batman, which had been raging for over four months.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not one to give up, Ashton swore he would, one day, do something legendary. But the truth is, there never was another Y2K. And nobody, in that part of Michigan, gave a rat’s ass about good programming. There was almost nothing for the programmers to do, in fact. Ashton got dumb little projects assigned to him... at one point he spent three weeks working on handling a case where the sales tax in one particular county was wrong because some zip code spanned two different sales tax zones. The funny thing was, it was in some unpopulated part of New York State where nobody ever bought office cubicles, and they had never had a customer there, so his code would never run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For two years Ashton came into work enthusiastic and excited, and dying to make a difference and do something terrific and awesome, while his coworkers surfed the Internet, sent instant messages to their friends, and played computer solitaire for hours. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Jeff, his cubicle-mate, only had one responsibility: updating the weekly Excel spreadsheet indicating how many people were hurt on the job that week. Nobody ever was. Once a week, Jeff opened the spreadsheet, went to the bottom of the page, entered the date and a zero, hit save, and that was that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ashton even wrote a macro for Jeff that automated that one task. Jeff didn’t want to get caught, so he refused to install it. They weren’t on speaking terms after that. It was awkward.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the morning of his two year anniversary at the cubicle company, Ashton was driving to work when he realized something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not one line of code that he had written had ever run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not one thing he had done in two years of work made any impact on the world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And it was fucking 24 degrees in that part of Michigan, and it was gray, and smelly, and his Honda was a piece of crap, and he didn’t have any friends in town, and nothing he did mattered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As he drove down Lincoln Avenue, he saw the furniture company ahead on the left. Three flags fluttered in front of the corporate campus: an American flag, a flag of the great state of Michigan, and a white and red flag with the company logo. He got in the turning lane behind a long line of cars waiting to turn left. It always took four or five traffic light cycles, at rush hour, to make the turn, so Ashton had plenty of time to try to remember if any code he had &lt;em&gt;ever&lt;/em&gt; written was &lt;em&gt;ever&lt;/em&gt; used by &lt;em&gt;anyone&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And it hadn’t. And he fought back a tear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And instead of turning left, he went straight, almost causing an accident because he forgot that the left turn light didn’t mean you could go straight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And he drove right down Lincoln Avenue,  and got onto the Gerald Ford freeway, and he just kept driving until he got to the airport over in Grand Rapids, and he left his crappy old Honda out right in front of the terminal, knowing perfectly well it would be towed, and didn’t even close the car door, and he walked right up to the Frontier Airlines counter and he bought himself a ticket on the very next flight to San Francisco, which was leaving in 20 minutes, and he got on the plane, and he left Michigan forever.&lt;/p&gt;&#xA;" OwnerUserId="30" LastActivityDate="2010-12-11T04:37:12.780" CommentCount="40" />
  <row Id="25460" PostTypeId="2" ParentId="25442" CreationDate="2010-12-11T04:37:41.523" Score="6" ViewCount="" Body="&lt;p&gt;Choose the programming language depending on what your requirements are. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are interested in doing device driver or kernel development at some point, knowing C will be very helpful. While at it, definitely read through the Kernighan and Ritchie book. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have intentions of doing some finance stuff, knowing R will help. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to get into mainframes, begin with COBOL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scripting languages always help no matter the field -- Perl or Tcl take your pick. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, if you want to generally learn about software and appreciate the beauty of programming definitely Haskell or any other functional programming languages. Do remember that functional code takes in time to sink in, and if you are not already quite good at stuff like recursion you need to brush those up first. &lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-11T04:37:41.523" CommentCount="3" />
  <row Id="25461" PostTypeId="1" AcceptedAnswerId="25474" CreationDate="2010-12-11T04:42:15.417" Score="2" ViewCount="219" Body="&lt;p&gt;I really don't know why nobody's thought of this so far, but recruitment should be the other way round. Engineers should have some sort of a common platform where they register skills or domains they are interested in, demonstrate their capabilities and companies should take it up from there. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this is way more effective since if you are paid well to do work that you love doing, you will generally make a fine job out of it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anybody know of some recruitment platform like this? &lt;/p&gt;&#xA;" OwnerUserId="8720" LastEditorUserId="4711" LastEditorDisplayName="" LastEditDate="2010-12-16T23:09:42.973" LastActivityDate="2010-12-16T23:09:42.973" Title="Shouldn't recruitment be the other way round?" Tags="&lt;hiring&gt;&lt;recruiting&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="1" />
  <row Id="25462" PostTypeId="2" ParentId="25461" CreationDate="2010-12-11T04:47:02.027" Score="4" ViewCount="" Body="&lt;p&gt;I think that &lt;a href=&quot;http://careers.stackoverflow.com/&quot;&gt;http://careers.stackoverflow.com/&lt;/a&gt; is geared towards that.&lt;/p&gt;&#xA;" OwnerUserId="1464" LastActivityDate="2010-12-11T04:47:02.027" CommentCount="2" />
  <row Id="25463" PostTypeId="2" ParentId="25458" CreationDate="2010-12-11T05:03:08.473" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP - Yes, learning this language will make you suitable for a large number of freelance projects. May niche (and higher paying) services like WordPress customization, Drupal customization, Joomla customization will all become a possibility to you if you know PHP. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Python - This is yet another language that is popular and has a LOT of freelance jobs. It is also fun to work with. I have not taken projects that require python but I have seen many jobs on job boards, odesk.com, guru.com that require you to know python. These projects always involve developing web applications with Python using the Django web application framework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Android - It is the hottest mobile development framework available today. I would tread with caution if I were you in relying solely on this for a steady source of income . A few years ago  Symbian was the hottest mobile phone OS to program for. Now you can find not a handful of companies that use the Symbian OS. Nokia ( who owns symbian now ) has moved on to the MeeGo OS. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On to how to get expertise on these: There are dozens of books published on these topics by Packt, Apress, Wiley, O'Reilly. Investing in these books will save you much time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Nope, Not really&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;perl - Not a lot of websites today use perl. You will cannot find many projects that require you to work on perl. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;jQuery - This is just a javascript library. Knowing how to use this &lt;strong&gt;by itself&lt;/strong&gt; will not help you go full-time (assuming of course you plan on going full time). What is more important is that you know how to work with Javascript and the document object model. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My suggestion for you is to focus on web development. Learn PHP, HTML, CSS and Javascript. Learn to use jQuery. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Also Consider..&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ruby On Rails - Ruby is a programming language and Rails is a web application framework written in ruby. You will find many jobs on this as well as full time positions on the same. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Most Importantly&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is important that you NOT base your opinion solely on what answers you will get here. Go to many job boards. Here is a directory of the job boards:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://freelanceswitch.com/resources-directory/freelance-jobs/job-boards/&quot; rel=&quot;nofollow&quot;&gt;http://freelanceswitch.com/resources-directory/freelance-jobs/job-boards/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get an idea of what are the niche skills that are in demand today. You need not necessarily prepare to provide the skills that is most in demand. Determine what you can realistically do well and acquire that skill. &lt;/p&gt;&#xA;" OwnerUserId="6610" LastEditorUserId="6610" LastEditorDisplayName="" LastEditDate="2010-12-11T06:04:01.680" LastActivityDate="2010-12-11T06:04:01.680" CommentCount="2" />
  <row Id="25464" PostTypeId="2" ParentId="25135" CreationDate="2010-12-11T05:03:10.487" Score="2" ViewCount="" Body="&lt;p&gt;Absolutely not.  It's not my responsibility to manage the relationship between my co-workers and management.  What goes on between them, is between them.  What I happen to know, or not know, as a result of happenstance, is my business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And it's rare - if ever - that anything good comes from getting yourself involved in other people's business.  Even the person you think you're &quot;helping&quot; will probably think less of you for it, since you paint yourself as non-trustworthy and a meddling busy-body.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, just don't do it.&lt;/p&gt;&#xA;" OwnerUserId="7160" LastActivityDate="2010-12-11T05:03:10.487" />
  <row Id="25465" PostTypeId="2" ParentId="25432" CreationDate="2010-12-11T05:07:18.407" Score="4" ViewCount="" Body="&lt;p&gt;To my notion, the biggest asset a green programmer can bring to the table, beyond his existing technical skills, is initiative and passion.  If you show your boss that you are aggressive about learning new things, aggressive about learning your way around the company, the code-base, the tools, and your co-workers, and you show that you have a passion for what you are doing, that will impress.  Unless you're working for a horrible manager, in which case you want out anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also suggest putting &lt;em&gt;some&lt;/em&gt; focus on &quot;soft skills&quot; stuff.  Demonstrate that you aren't &lt;em&gt;just&lt;/em&gt; a geek who is useless in any sort of inter-personal interaction.  Make friends with the people in sales, marketing, support, business development, project management, etc.  Show that you are a good communicator and somebody who can work with people to get things done.&lt;/p&gt;&#xA;" OwnerUserId="7160" LastActivityDate="2010-12-11T05:07:18.407" CommentCount="2" />
  <row Id="25466" PostTypeId="2" ParentId="25100" CreationDate="2010-12-11T05:08:44.420" Score="0" ViewCount="" Body="&lt;p&gt;Michael Lopp, aka &lt;a href=&quot;http://randsinrepose.com/&quot; rel=&quot;nofollow&quot;&gt;Rands&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1464" LastEditorUserId="1464" LastEditorDisplayName="" LastEditDate="2010-12-11T05:39:25.387" LastActivityDate="2010-12-11T05:39:25.387" CommunityOwnedDate="2010-12-11T05:08:44.420" CommentCount="1" />
  <row Id="25467" PostTypeId="2" ParentId="25353" CreationDate="2010-12-11T05:12:12.723" Score="3" ViewCount="" Body="&lt;p&gt;I've been moving slowly away from &quot;Java the language&quot; anyway, but still relying on the JVM as a platform, by adopting Groovy, and starting to learn Scala and Clojure.  The recent events with Oracle and the JCP make me a &lt;em&gt;little&lt;/em&gt; less certain about the future of &quot;Java as a platform,&quot; but not to the point of dropping it (yet).  Regardless of what happens with the ASF and Harmony, OpenJDK &lt;em&gt;is&lt;/em&gt; out there, under GPL+classpath exception license, and Harmony does still exist even if it never gets TCK certification.  And with IBM and Apple seemingly on the OpenJDK bandwagon, I'm moderately optimistic that the JVM will live on in a suitable form.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, the only real action I'd take right now, is to &quot;future proof&quot; myself by starting to evaluate and learn some other platforms / languages... Erlang, Haskell, Lisp, Ocaml, whatever.  &lt;/p&gt;&#xA;" OwnerUserId="7160" LastActivityDate="2010-12-11T05:12:12.723" />
  <row Id="25468" PostTypeId="2" ParentId="25135" CreationDate="2010-12-11T05:12:27.250" Score="2" ViewCount="" Body="&lt;p&gt;Do unto others as you wish they would do unto you.  I would definitely not tell my boss in this case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also your boss's job to deal with issues like this, and not yours.  Getting involved in this way in other people's business is usually a detriment to you.&lt;/p&gt;&#xA;" OwnerUserId="9531" LastActivityDate="2010-12-11T05:12:27.250" />
  <row Id="25469" PostTypeId="2" ParentId="25458" CreationDate="2010-12-11T05:14:54.797" Score="2" ViewCount="" Body="&lt;p&gt;If you are seriously trying to get into freelancing and want to earn serious money, concentrate on the domain, and not programming languages first. For e.g. if you want to get into app development for Android, the real thing is innovating at the application level and user interface level -- coding is the last thing to do here (of course very important though).So you would definitely want to check out statistics of most selling apps, compare and contrast for what works and what does not, generally a fair bit of market research is must.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course programming languages matter, but say if you know C++ you should not have too much trouble picking up Java or C# on the job, and as you go along you'd get stronger with whatever language is used in the domain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key here is the domain itself -- each has its own problems and you are well advised to read technical journals, trade publications, IEEE and ACM papers or groups that concentrate on industry specific problems etc. &lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-11T05:14:54.797" />
  <row Id="25471" PostTypeId="2" ParentId="23965" CreationDate="2010-12-11T05:17:04.687" Score="0" ViewCount="" Body="&lt;p&gt;I agree with the sentiment expressed above, that &quot;languages don't die.&quot;  They may become steadily more and more niche, but I'd bet money that if you look hard enough, you can find new development being done in COBOL, FORTRAN, RPG, APL, and all sorts of stuff that you'd think would be dead by now.&lt;/p&gt;&#xA;" OwnerUserId="7160" LastEditorUserId="7160" LastEditorDisplayName="" LastEditDate="2010-12-16T20:37:03.510" LastActivityDate="2010-12-16T20:37:03.510" />
  <row Id="25472" PostTypeId="2" ParentId="25135" CreationDate="2010-12-11T05:24:00.013" Score="5" ViewCount="" Body="&lt;h1&gt;Clue: Mind your own business.&lt;/h1&gt;&#xA;" OwnerUserId="3787" LastActivityDate="2010-12-11T05:24:00.013" />
  <row Id="25473" PostTypeId="2" ParentId="25432" CreationDate="2010-12-11T05:32:20.960" Score="14" ViewCount="" Body="&lt;p&gt;Knock on his door. Ask him if he has any shit jobs he's been putting off that you might be able to handle. Tell him to just fire you off an email later if he doesn't have time right now.&lt;/p&gt;&#xA;" OwnerUserId="9540" LastActivityDate="2010-12-11T05:32:20.960" CommentCount="1" />
  <row Id="25474" PostTypeId="2" ParentId="25461" CreationDate="2010-12-11T05:36:24.013" Score="1" ViewCount="" Body="&lt;p&gt;I think that as you gain more and more experience and IF you network then it can happen for you more in this way. People that you've worked with in the past remember you and recommend you to other people/companies they know that have positions open. It is pretty unorganized and intangible but it seems like that is kind of what you are talking about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;careers.stackoverflow is getting there and Linked-in gets there a little too... but I it seems like you will always have the problem of finding the diamonds.&lt;/p&gt;&#xA;" OwnerUserId="3697" LastActivityDate="2010-12-11T05:36:24.013" CommentCount="2" />
  <row Id="25475" PostTypeId="1" AcceptedAnswerId="25501" CreationDate="2010-12-11T05:49:28.067" Score="3" ViewCount="262" Body="&lt;p&gt;In many English-based programming languages like C++ and JavaScript, there exist long keywords like &lt;code&gt;function&lt;/code&gt;, &lt;code&gt;namespace&lt;/code&gt;, &lt;code&gt;exception&lt;/code&gt; (in OCaml languages) and such. Do you think shorter keywords like &lt;code&gt;func&lt;/code&gt; should replace them? Why or why not? What about replacing them with digraph operators?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The long keywords we will be mainly talking about, but not limited to, are mainly from curly-brace imperative languages: &lt;code&gt;function&lt;/code&gt;, &lt;code&gt;namespace&lt;/code&gt;, &lt;code&gt;implements&lt;/code&gt;, &lt;code&gt;instanceof&lt;/code&gt; and &lt;code&gt;synchronized&lt;/code&gt; (I always misspell that).&#xA;You should also show the examples from your favourite programming language.&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-12-11T17:31:15.570" Title="Long Keywords like `function` and `namespace`" Tags="&lt;java&gt;&lt;c++&gt;&lt;javascript&gt;&lt;language-design&gt;" AnswerCount="7" CommentCount="8" />
  <row Id="25476" PostTypeId="2" ParentId="25475" CreationDate="2010-12-11T05:53:08.567" Score="3" ViewCount="" Body="&lt;p&gt;Keywords are chosen so as to reduce ambiguity while using them. Also to make the program easier to read. That's why even for a non programmer, the code makes a bit of sense.&lt;/p&gt;&#xA;" OwnerUserId="9544" LastActivityDate="2010-12-11T05:53:08.567" CommentCount="6" />
  <row Id="25477" PostTypeId="2" ParentId="25276" CreationDate="2010-12-11T05:59:34.817" Score="1" ViewCount="" Body="&lt;p&gt;Sometimes I've been so clever that I've been wrong.&lt;/p&gt;&#xA;" OwnerUserId="5493" LastActivityDate="2010-12-11T05:59:34.817" CommunityOwnedDate="2011-01-08T19:36:34.897" CommentCount="1" />
  <row Id="25478" PostTypeId="2" ParentId="25475" CreationDate="2010-12-11T06:02:15.800" Score="6" ViewCount="" Body="&lt;p&gt;This is a non-issue thanks to the auto-complete capabilities of any text editor worth programming in.  You can make a keyword named &lt;code&gt;FunctionNamespaceImplementsInstanceOfSynchronized&lt;/code&gt; for all I care.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll just hit tab.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One other thing... I don't think I've ever in my programming career come across a keyword that was long enough to annoy me.  The examples you give aren't exactly striking fear into my fingers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I really hate those damn double underscores in python.&lt;/p&gt;&#xA;" OwnerUserId="5739" LastEditorUserId="5739" LastEditorDisplayName="" LastEditDate="2010-12-11T08:22:01.127" LastActivityDate="2010-12-11T08:22:01.127" CommentCount="6" />
  <row Id="25479" PostTypeId="2" ParentId="25432" CreationDate="2010-12-11T06:02:36.970" Score="5" ViewCount="" Body="&lt;p&gt;If you want to make an impression on your boss, be honest.  At your weekly 1-1, ask him what is most important for you to focus on, and do that.  Try to understand what he thinks your role is, and do your best to fulfill it.  It is possible that he needs you to do certain tasks so he can concentrate on the stuff he is doing.  If you try hard to do the things he is doing, you might not be doing enough of your own task.  Find your spot on the team, excel at that, and then expand.   Tell him that you want to help out.  &lt;/p&gt;&#xA;" OwnerUserId="1464" LastActivityDate="2010-12-11T06:02:36.970" />
  <row Id="25480" PostTypeId="2" ParentId="25384" CreationDate="2010-12-11T06:08:18.730" Score="0" ViewCount="" Body="&lt;p&gt;If you want to attend the school and do the job at same time, part time jobs are actually best bet for you. You certainly won't get the full salary, from your job, but you will get the time for the study. The thing is that for full time employee the company may have the time requirements, that 40 hours per weak you have to be there. How you manage that 40 hours is normally upto you. You should talk to your employer at the time of selection and should give the employer full idea about this. If you are good enough, and they are smart enough they will certainly find a way. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-11T06:08:18.730" />
  <row Id="25481" PostTypeId="2" ParentId="25461" CreationDate="2010-12-11T06:08:40.103" Score="3" ViewCount="" Body="&lt;p&gt;It would be if there weren't so damn many of us.  Or is it the other way around?&lt;/p&gt;&#xA;" OwnerUserId="5739" LastActivityDate="2010-12-11T06:08:40.103" CommentCount="1" />
  <row Id="25482" PostTypeId="1" AcceptedAnswerId="25623" CreationDate="2010-12-11T06:13:07.400" Score="1" ViewCount="525" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been working for 4 years as a software engineer in .NET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to do programming in the financial industry but have been hampered by the fact that my undergrad degree is in Linguistics with a CS minor.   I was just admitted to a statistics masters program.  Unfortunately, most of their courses are during the day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've asked questions about working part time, flex hours, etc. because I'm concerned about getting a job as a software engineer again after a 2-3 year hiatus.  I'm concerned people will say my skills aren't current anymore.  I figured if I had something part time or full time, that might help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm also not sure how helpful a statistics degree will be in moving me away from general purpose development to more specialized, financial programming.  Perhaps the CFA would help more?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do people generally think highly of a statistics degree (even from a mid range school) or am I wasting my time (yes, I know this could be a duplicate--but I'm asking about statistics grad school specifically)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it going to be really difficult to get a job after a 2-3 year break from professional software?  If so, what can I do in school to help mitigate that?  I've thought about perhaps working on an open source project or a project of my own part time while in school. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, would employers view a MS in Statistics as comparable to an MS in Computer Science?  I'm right at the point where a CS degree I think would be a huge help; I'd prefer Stat, though, because it is broader...can I get the same bang with an MS in Stat as one in CS?&lt;/p&gt;&#xA;" OwnerUserId="5057" LastEditorUserId="5057" LastEditorDisplayName="" LastEditDate="2010-12-11T20:12:39.193" LastActivityDate="2010-12-11T20:12:39.193" Title="Will getting a graduate degree in statistics help my career as a software engineer?" Tags="&lt;career&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="1" />
  <row Id="25483" PostTypeId="2" ParentId="25432" CreationDate="2010-12-11T06:21:22.073" Score="10" ViewCount="" Body="&lt;p&gt;I hv been coding for over 20 years, and currently have 10 programmers working with me. I have to say that those impresses me are those that did their job well, deliver on time and with quality (less bug). communicate frequently, showing passion are all important factors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;thats about it i can share right now. ;)&lt;/p&gt;&#xA;" OwnerUserId="9548" LastActivityDate="2010-12-11T06:21:22.073" CommentCount="1" />
  <row Id="25484" PostTypeId="2" ParentId="25482" CreationDate="2010-12-11T06:21:25.893" Score="0" ViewCount="" Body="&lt;h1&gt;No&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.careeroverview.com/statistician-careers.html&quot; rel=&quot;nofollow&quot;&gt;you're probably already making more money than most statisticians&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;high-end, high-paying financial programming is not about statistics, it's about high-throughput, low-latency coding and complex event processing (CEP/ESP)&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-11T06:21:25.893" CommentCount="4" />
  <row Id="25485" PostTypeId="2" ParentId="25432" CreationDate="2010-12-11T06:47:37.727" Score="42" ViewCount="" Body="&lt;p&gt;Two words: Be reliable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your position, you weren't hired to be the smartest person on the team. You were hired for the potential you showed and because there are tasks suited for your skill level that need getting done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Show that you can live up to that trust first, and as you get a feel for the code and the company, find ways to exceed their first impression of you. The latter may take a while, but don't mistake being junior for being inferior.&lt;/p&gt;&#xA;" OwnerUserId="3973" LastActivityDate="2010-12-11T06:47:37.727" CommentCount="2" />
  <row Id="25486" PostTypeId="1" AcceptedAnswerId="25543" CreationDate="2010-12-11T06:49:03.733" Score="3" ViewCount="106" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm reading about &lt;a href=&quot;http://www.coldbox.org/about&quot; rel=&quot;nofollow&quot;&gt;ColdBox&lt;/a&gt;, and I came across this word.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what is meant by convention based framework?&lt;/p&gt;&#xA;" OwnerUserId="9421" LastActivityDate="2010-12-11T15:46:37.287" Title="What is convention based framework?" Tags="&lt;programming&gt;&lt;frameworks&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="25487" PostTypeId="1" AcceptedAnswerId="25643" CreationDate="2010-12-11T06:49:46.807" Score="5" ViewCount="292" Body="&lt;p&gt;I always hesitate when talking to professors about trying to improve the percentage of people who graduate with a CS type degree compared to the number that start out thinking that is what they want. On one hand I really do think it is important for professionals to be involved and give this feedback, on the other hand it would be better if less sub-par students ended up with CS degrees.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think every mind is built for this field and you have to be a good life long student. You have to have a high degree of patience and problem solving skills just to eek by. If you do have the &quot;right&quot; kind of brain those hard problems is what actually drives you to continue. If you just get a long list of easy problems you get bored so these people are actually not good at more repetitive jobs. I don't need to go into all the details... if you are reading this you probably know what I'm getting at.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the question is: How do you find the balance of a degree program that is accessible to enough people to be funded and considered successful but also doesn't turn out people who aren't really cut out for the job? Maybe a better question is, what metric do you use to know if the changes you are making in a degree program are making it better? I don't know that a higher graduation rate is a good metric. It seems that the feedback that you would possibly get many years later about the jobs that the graduates hold would be to delayed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've struggled with this question for a long time, mostly because I don't think there is an answer. But I thought I'd ask to see if anyone knows of any research that has actually been done on it.&lt;/p&gt;&#xA;" OwnerUserId="3697" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-12-11T09:10:54.033" LastActivityDate="2010-12-11T23:15:46.953" Title="Who can learn to program?" Tags="&lt;teaching&gt;&lt;university&gt;&lt;community&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="1" />
  <row Id="25488" PostTypeId="2" ParentId="25475" CreationDate="2010-12-11T06:57:28.410" Score="2" ViewCount="" Body="&lt;p&gt;Time to change your editor. Most editors highlights the keywords and hence it is really easy to find the spell errors. Because of this people normally didn't notice this or don't care about this. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-11T06:57:28.410" />
  <row Id="25489" PostTypeId="1" AcceptedAnswerId="25547" CreationDate="2010-12-11T06:58:06.583" Score="0" ViewCount="145" Body="&lt;p&gt;I'm currently a graduate student in Computer Science. I've had a few jobs before coming back (doing some coding for the Army while in) and working in an Oracle shop. Both jobs could be done by monkeys with a semester of computer science. I want to be a great programmer. So, right now I'm back in school working on my master in computer science and I'm looking to do my thesis in data mining and natural language processing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have limited time and right now I'm using my free time to work through Structure and Interpretation of Computer Programs, Machine Learning, OpenGL SuperBible (to learn the basics of graphics) and Cormen's Intro to Algorithms during the break before Winter quarter starts.  I'm writing most of the programming projects that go along with those books too. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does this seem like a good use of my time, or should I cut my time in half on that and start trying to do bug fixes for some open source project (I've never done open source stuff and barely have the vaguest idea of how to get started)? If you recommend open source how should I go about getting started (really, step by step would be nice, I haven't done any so far because I literally don't know how to start) or if continue studying what should I focus on?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="9545" LastEditorUserId="4711" LastEditorDisplayName="" LastEditDate="2010-12-16T23:07:54.910" LastActivityDate="2010-12-16T23:07:54.910" Title="What's more important for advancement writing lots of code (maybe only bug patches) or learning more CS?" Tags="&lt;career&gt;&lt;self-improvement&gt;&lt;experience&gt;&lt;open-source&gt;" AnswerCount="3" />
  <row Id="25490" PostTypeId="2" ParentId="25489" CreationDate="2010-12-11T07:00:33.473" Score="1" ViewCount="" Body="&lt;p&gt;Both are important. You learn a lot by reading other people's code and by having them review yours. But you also have to continue building your own design skills.&lt;/p&gt;&#xA;" OwnerUserId="3697" LastActivityDate="2010-12-11T07:00:33.473" />
  <row Id="25491" PostTypeId="1" CreationDate="2010-12-11T07:01:53.353" Score="9" ViewCount="810" Body="&lt;p&gt;Have you found any non-programming quote applies to us programmers? May be inspiring or some programming concept in a non-programming manner? There were some in &lt;a href=&quot;http://programmers.stackexchange.com/questions/39/whats-your-favourite-quote-about-programming&quot;&gt;What's your favourite quote about programming?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like the previous question-   &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;One quote per answer&lt;/strong&gt;, and please &lt;a href=&quot;http://programmers.stackexchange.com/search?q=inquestion:39+your+search+terms+here&quot;&gt;check for&#xA;  duplicates&lt;/a&gt; before posting!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-12-11T20:53:27.987" CommunityOwnedDate="2010-12-11T17:29:26.353" ClosedDate="2010-12-11T23:11:33.883" Title="Non-programming quotes for programmers?" Tags="&lt;favorite&gt;&lt;quotes&gt;" AnswerCount="34" CommentCount="3" FavoriteCount="6" />
  <row Id="25492" PostTypeId="2" ParentId="25475" CreationDate="2010-12-11T07:02:28.853" Score="1" ViewCount="" Body="&lt;p&gt;Basically it's nature and easy to spell, remember! Look at Java, i feel it seems that's English, not programming language ;)! &#xA;BTW, if you look at Python or Ruby, you will see something really short!&lt;/p&gt;&#xA;" OwnerUserId="9559" LastActivityDate="2010-12-11T07:02:28.853" CommentCount="1" />
  <row Id="25493" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T07:07:40.043" Score="21" ViewCount="" Body="&lt;p&gt;&quot;Never ascribe to malice that which can be adequately explained by stupidity.&quot;&#xA;        -- Hanlon's Razor&lt;/p&gt;&#xA;" OwnerUserId="4091" LastEditorUserId="4091" LastEditorDisplayName="" LastEditDate="2010-12-11T17:19:45.137" LastActivityDate="2010-12-11T17:19:45.137" CommunityOwnedDate="2010-12-11T17:29:26.353" CommentCount="1" />
  <row Id="25494" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T07:11:58.650" Score="10" ViewCount="" Body="&lt;p&gt;Theory and practice sometimes clash. And when that happens, theory loses. Every single time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- Linus Torvalds&lt;/p&gt;&#xA;" OwnerUserId="4091" LastActivityDate="2010-12-11T07:11:58.650" CommunityOwnedDate="2010-12-11T17:29:26.353" CommentCount="2" />
  <row Id="25495" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T07:15:51.207" Score="2" ViewCount="" Body="&lt;p&gt;Read, every day, something no one else is reading. Think, every day, something no one else is thinking. Do, every day, something no one else would be silly enough to do. It is bad for the mind to be always part of unanimity. -- Christopher Morley&lt;/p&gt;&#xA;" OwnerUserId="4091" LastActivityDate="2010-12-11T07:15:51.207" CommunityOwnedDate="2010-12-11T17:29:26.353" />
  <row Id="25496" PostTypeId="2" ParentId="25276" CreationDate="2010-12-11T07:18:58.647" Score="2" ViewCount="" Body="&lt;p&gt;I'm reminded of a quote I've seen attributed to many different people, as the good quotes often are. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To paraphrase:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Any intelligent person can make the&#xA;  simple complex, it takes a genius to&#xA;  make the complex simple.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Taking a complex idea and simplifying it so it's understandable shows the cleverness of the constructor but taking a simple idea and making it complex shows the constructor wants to be seen as clever.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-11T07:18:58.647" CommunityOwnedDate="2011-01-08T19:36:34.897" />
  <row Id="25497" PostTypeId="2" ParentId="25432" CreationDate="2010-12-11T07:19:00.113" Score="23" ViewCount="" Body="&lt;p&gt;What seems like forever ago I took an amazing job working with room full of amazing and accomplished programmers. Everyone was a rockstar, a few people from the original Macintosh team, almost half the people there had published books, it was a great place to be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I spent my first year there trying to impress everyone. I felt like I had to do somethign amazing and it drove me to learn more than I ever thought possible in a very short amount of time. In my second year I calmed down, I was a lot more confident in what I was doing, a little more vocal about my opinions, and as I looked around I grew more and more pessimistic about the actual product we were building.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That was the last year that project was fully funded. Those amazing engineers, who I still look up to today, spent 5 years and millions of dollars building framework after framework, an application platform for building on top of an application that hadn't really shipped and finally, a UI and workflow that nobody could understand, even the people that built it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Smart is overrated. Being a &quot;rockstar&quot; is overrated. It's a really easy excuse to increase your threshold for complexity. It makes you think that it's more important to re-write a working system to be &quot;cleaner&quot; instead of implementing the next thing a customer asked for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Jacob Kaplan Moss once said something to me about a programmer I won't name, he said &quot;He's too smart. He writes these really smart complicated libraries that I can't use because I'm not smart enough. Stupid people should write libraries so that stupid people can use them&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The programmers that &quot;accomplished&quot; engineers tend to snub their nose at, people that write Ruby and JavaScript and other &quot;toy&quot; languages, those people make PRODUCTS and they SHIP THEM. The code might be ugly, the architecture might not be as pure and clean as you would like, but they ship god dammit and in this industry that's what really matters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I were you I'd give up on trying to be this rockstar and focus on shipping and building product. You shouldn't judge your contribution by how clever your code is, you should judge it by how many people run it everyday and are happy.&lt;/p&gt;&#xA;" OwnerUserId="9553" LastActivityDate="2010-12-11T07:19:00.113" CommentCount="7" />
  <row Id="25498" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T07:23:19.903" Score="7" ViewCount="" Body="&lt;p&gt;&quot;Work expands so as to fill the time available for its completion.&quot; -- Parkinson's Law&lt;/p&gt;&#xA;" OwnerUserId="9544" LastActivityDate="2010-12-11T07:23:19.903" CommunityOwnedDate="2010-12-11T17:29:26.353" CommentCount="1" />
  <row Id="25499" PostTypeId="2" ParentId="2846" CreationDate="2010-12-11T07:26:25.777" Score="0" ViewCount="" Body="&lt;h1&gt;WebDNA&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;The verbosity of HTML, XML and BBCode is back!&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;[if &quot;[date %A]&quot;=&quot;Friday&quot;]&#xA;[then]&#xA;Today is the last day of work this week!&#xA;[/then]&#xA;[else]&#xA;Too bad!&#xA;[/else]&#xA;[/if]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;[append db=base.db][!]&#xA;[/!]name=Grant&amp;amp;[!]&#xA;[/!]address=1492 Street&amp;amp;[!]&#xA;[/!]zip=9000&amp;amp;[!]&#xA;[/!]date=[date][!]&#xA;[/!][/append]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Look! you use &lt;code&gt;[!][/!]&lt;/code&gt;, the comment tag to make the system ignore line breaks in code!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's even a &lt;code&gt;[math]&lt;/code&gt; tag to evaluate math expressions!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.webdna.us/&quot; rel=&quot;nofollow&quot;&gt;http://www.webdna.us/&lt;/a&gt; Browse around, and check out its syntax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, the official site said, &quot;Compared to Open Source, pricing is low enough to recoup its $65 cost in less than two development hours.&quot;, do you really agree to that statement? ASP.NET is the best templating language so far.&lt;/p&gt;&#xA;" OwnerUserId="1325" LastEditorUserId="1325" LastEditorDisplayName="" LastEditDate="2010-12-11T07:50:33.710" LastActivityDate="2010-12-11T07:50:33.710" CommunityOwnedDate="2010-12-11T07:26:25.777" />
  <row Id="25500" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T07:26:56.967" Score="8" ViewCount="" Body="&lt;p&gt;Another good one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Any person can invent a security system so clever that he or she can't imagine a way of breaking it.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- Bruce Schneier&lt;/p&gt;&#xA;" OwnerUserId="9544" LastActivityDate="2010-12-11T07:26:56.967" CommunityOwnedDate="2010-12-11T17:29:26.353" />
  <row Id="25501" PostTypeId="2" ParentId="25475" CreationDate="2010-12-11T07:27:33.607" Score="6" ViewCount="" Body="&lt;p&gt;I accept keywords like &lt;code&gt;func&lt;/code&gt; and &lt;code&gt;cons&lt;/code&gt; in functional languages, because functional languages tend to be math-like and more symbolic.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in imperative, object oriented languages, where you are telling the computer how to do something as well as what to do,  I prefer that the identifiers and keywords be whole words.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Any fool can write code that a computer can understand.  Good programmers write code that humans can understand.&lt;/em&gt;  ~Martin Fowler&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-11T07:27:33.607" CommentCount="6" />
  <row Id="25502" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T07:31:03.903" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Don't Panic&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- Hitch Hiker's Guide to the Galaxy, Douglas Adams&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*This has inspired many people to run around and scream their heads off.&lt;/p&gt;&#xA;" OwnerUserId="6440" LastActivityDate="2010-12-11T07:31:03.903" CommunityOwnedDate="2010-12-11T17:29:26.353" CommentCount="1" />
  <row Id="25503" PostTypeId="2" ParentId="25353" CreationDate="2010-12-11T07:34:41.837" Score="1" ViewCount="" Body="&lt;p&gt;As a pragmatist, yes I would consider using it in my next project.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I'd also consider other languages / platforms that had the right technical attributes AND a more open and community oriented approach to governance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I would also consider &lt;em&gt;participating&lt;/em&gt; in a well organized effort to produce such a language and platform.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-12-11T07:34:41.837" />
  <row Id="25504" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T07:36:25.657" Score="4" ViewCount="" Body="&lt;p&gt;&lt;em&gt;I really hate this darn machine;&lt;br&gt;&#xA;I wish that they would sell it.&lt;br&gt;&#xA;It won't do what I want it to,&lt;br&gt;&#xA;but only what I tell it.&lt;/em&gt;&lt;br&gt;&lt;br&gt;&#xA;~Author Unknown&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-11T07:36:25.657" CommunityOwnedDate="2010-12-11T17:29:26.353" />
  <row Id="25505" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T07:37:56.750" Score="16" ViewCount="" Body="&lt;p&gt;&quot;In theory, there is no difference between theory and practice. But, in practice, there is.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Attributed variously to Yogi Berra, Jan L. A. van de Snepscheut, and Albert Einstein&lt;/p&gt;&#xA;" OwnerUserId="9430" LastActivityDate="2010-12-11T07:37:56.750" CommunityOwnedDate="2010-12-11T17:29:26.353" CommentCount="3" />
  <row Id="25507" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T07:54:44.160" Score="2" ViewCount="" Body="&lt;p&gt;TANSTAAFL - Their ain't no such thing as a free lunch.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The acronym is most often associated with Robert Heinlein, but apparently &lt;a href=&quot;http://www.phrases.org.uk/meanings/tanstaafl.html&quot; rel=&quot;nofollow&quot;&gt;he did not originate it&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-12-11T07:54:44.160" CommunityOwnedDate="2010-12-11T17:29:26.353" />
  <row Id="25508" PostTypeId="2" ParentId="25475" CreationDate="2010-12-11T08:01:30.823" Score="1" ViewCount="" Body="&lt;p&gt;First of all, those languages of syntactical C ancestry abbreviate some keywords that are used often, while the longer keywords like &quot;namespace&quot; hardly matter... for example &quot;int&quot;, &quot;var&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Long keywords are universally understandable between languages. PL/SQL, for example, is not a curly-brace language, but the keywords spelled in full: function, procedure, package, etc.&#xA;For that reason, it should not be too hard to read a PL/SQL procedure even if you have never learned PL/SQL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once keywords are abbreviated, programs are only readable to those who know what each abbreviation means in that language. Ambiguities can arise. And programmers are encouraged to abbreviate their identifiers too, quid pro bono.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-11T08:01:30.823" />
  <row Id="25509" PostTypeId="1" AcceptedAnswerId="25703" CreationDate="2010-12-11T08:10:09.373" Score="16" ViewCount="2532" Body="&lt;p&gt;I've noted that IDE support is nowhere near as good, but the language itself supports functional programming idioms much more cleanly.&lt;/p&gt;&#xA;" OwnerUserId="9470" LastActivityDate="2010-12-27T18:55:08.217" Title="What do Java developers think of Scala?" Tags="&lt;programming-languages&gt;&lt;java&gt;&lt;language-design&gt;&lt;scala&gt;" AnswerCount="10" CommentCount="6" FavoriteCount="5" />
  <row Id="25510" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T08:10:58.997" Score="8" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Doh!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;--Homer Simpson.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Applies to my programs, anyway.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastEditorUserId="1928" LastEditorDisplayName="" LastEditDate="2010-12-11T10:10:35.027" LastActivityDate="2010-12-11T10:10:35.027" CommunityOwnedDate="2010-12-11T17:29:26.353" CommentCount="2" />
  <row Id="25511" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T08:12:48.793" Score="3" ViewCount="" Body="&lt;p&gt;You can't keep doing the same thing... and expect different results. -- Albert Einstein&lt;/p&gt;&#xA;" OwnerUserId="1928" LastEditorUserId="1928" LastEditorDisplayName="" LastEditDate="2010-12-11T17:20:29.607" LastActivityDate="2010-12-11T17:20:29.607" CommunityOwnedDate="2010-12-11T17:29:26.353" />
  <row Id="25512" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T08:29:54.190" Score="10" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Talent hits a target no one else can hit; Genius hits a target no one else can see.&lt;br&gt;&#xA;  -&lt;em&gt;Arthur Schopenhauer&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-11T08:29:54.190" CommunityOwnedDate="2010-12-11T17:29:26.353" CommentCount="2" />
  <row Id="25513" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T08:30:51.803" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;It's easier to ask forgiveness than it is to get permission.&lt;br&gt;&#xA;  -&lt;em&gt;Grace Hopper&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-11T08:30:51.803" CommunityOwnedDate="2010-12-11T17:29:26.353" />
  <row Id="25514" PostTypeId="2" ParentId="25092" CreationDate="2010-12-11T08:31:24.547" Score="2" ViewCount="" Body="&lt;p&gt;The right team building activities will depend on how well the team is currently built, since you will have different aims.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are also not going to find a single activity that will work for everyone on the team, so you are going to have to do different things.  You might have multiple activities on a single team outing, or do different single activities on two successive outings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With a team where there aren't particularly good bonds, your aim might be to highlight the interests and perspectives of the team members.  A group exercise like a &lt;a href=&quot;http://facilitation.aspirationtech.org/index.php?title=Facilitation%3aSpectrogram&quot; rel=&quot;nofollow&quot;&gt;Spectrogram&lt;/a&gt; can help people discover people with similar interests.  Basically, a statement is made, and people place themselves (physically) on a continuum from &quot;totally agree&quot; to &quot;totally disagree&quot;, and then some are asked why they are standing where they are standing, and people can move about along that continuum if they are swayed by the argument.  Another useful exercise is Strong Wind Blows - search at the above link for it and other useful facilitation information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With a team with some decent bonds in place, your aim might be to highlight the achievements or special knowledge of the team members.  You might ask two members of your team, preferably two that don't already work very well together, to prepare a presentation together on a shared area of knowledge - a programming language they both like, a shared interest in performance, or similar.  This has several opportunities:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The co-presenters have the opportunity to work together and may build mutual respect from that.&lt;/li&gt;&#xA;&lt;li&gt;The respect of the team members for those presenting may improve&lt;/li&gt;&#xA;&lt;li&gt;Non-presenting team members may discover a shared interest with those presenting&lt;/li&gt;&#xA;&lt;li&gt;The team members and the presenters may learn something new&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Getting out of the office and leaving work behind is a good idea.  You mention discussing work items and snack.  I'd recommend an approach like this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Discuss work items in the office&lt;/li&gt;&#xA;&lt;li&gt;Leave the office and rendezvousing at your entertainment location&lt;/li&gt;&#xA;&lt;li&gt;Doing a short 5-10 minute group exercise to shake off work and give people something to talk about during the day&lt;/li&gt;&#xA;&lt;li&gt;Doing something entertaining like rock climbing (in a gym, most likely), cart races, miniature golf, visiting a museum (depends on the group).  Might even split into groups to suit interests at this point.  Just make sure people can talk to each other during the activities.&lt;/li&gt;&#xA;&lt;li&gt;Have something presented (preferably not something using work examples) while snacks and drinks are available&lt;/li&gt;&#xA;&lt;li&gt;Have some food together.  Encourage random seating, subtly or overtly.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also, remember that team building is a process, not an activity.  Every time people in the team interact, it has effects on the team.  If team building activities are the only time that certain members of the team are interacting or learning about each other, it isn't going to be as effective.  This can be something as simple as sharing an IRC channel or Campfire room at work (if you have timezone differences, try Campfire, since you can see what happened while you weren't there), or more subtle - like actively sharing what you know about other team members' skills, interests, and achievements with other team members.&lt;/p&gt;&#xA;" OwnerUserId="9564" LastActivityDate="2010-12-11T08:31:24.547" />
  <row Id="25515" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T08:31:39.400" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Everything should be made as simple as possible, but not one bit simpler.&lt;br&gt;&#xA;  -&lt;em&gt;Albert Einstein&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-11T08:31:39.400" CommunityOwnedDate="2010-12-11T17:29:26.353" CommentCount="1" />
  <row Id="25516" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T08:32:02.533" Score="9" ViewCount="" Body="&lt;p&gt;&quot;A programmer will always look both to the left and to the right before crossing a one way street&quot; -- Author unknown&lt;/p&gt;&#xA;" OwnerUserId="9411" LastEditorUserId="9411" LastEditorDisplayName="" LastEditDate="2010-12-11T19:21:02.890" LastActivityDate="2010-12-11T19:21:02.890" CommunityOwnedDate="2010-12-11T17:29:26.353" CommentCount="4" />
  <row Id="25517" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T08:33:50.783" Score="2" ViewCount="" Body="&lt;p&gt;Sufficiently advanced incompetence is indistinguishable from malice.&#xA;-- &lt;a href=&quot;http://en.wikipedia.org/wiki/Clark%27s_Law&quot; rel=&quot;nofollow&quot;&gt;Clark's Law&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4099" LastActivityDate="2010-12-11T08:33:50.783" CommunityOwnedDate="2010-12-11T17:29:26.353" />
  <row Id="25518" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T08:34:39.410" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Everything that irritates us about others can lead us to an understanding of ourselves.&lt;br&gt;&#xA;  -&lt;em&gt;Carl Jung&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-11T08:34:39.410" CommunityOwnedDate="2010-12-11T17:29:26.353" />
  <row Id="25519" PostTypeId="2" ParentId="25487" CreationDate="2010-12-11T08:41:24.463" Score="3" ViewCount="" Body="&lt;p&gt;Anyone can learn to program, but not everyone can program in any domain.&lt;/p&gt;&#xA;" OwnerUserId="293" LastActivityDate="2010-12-11T08:41:24.463" CommentCount="2" />
  <row Id="25520" PostTypeId="2" ParentId="25384" CreationDate="2010-12-11T08:54:08.367" Score="0" ViewCount="" Body="&lt;p&gt;Step 1: Go hunting in Silicon Valley. If there are companies there picky about the hours developers keep, I've yet to hear about one, and most seem eager to accommodate school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your profile says you're in San Francisco. That's a good start, but I've yet to meet anyone that enjoyed commuting down the peninsula.&lt;/p&gt;&#xA;" OwnerUserId="105" LastActivityDate="2010-12-11T08:54:08.367" />
  <row Id="25521" PostTypeId="2" ParentId="25384" CreationDate="2010-12-11T08:59:30.830" Score="2" ViewCount="" Body="&lt;p&gt;As you go through the job hunting process, be up front with recruiters and potential employers. Explain that you're looking for flexibility in order to facilitate study, and that your hours will be predictable well in advance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never had a development job that expected fixed hours - nor one that expected a particular number of hours each day. At the moment, I'm expected to work an 80 hour fortnight, but how that's achieved is flexible. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a former job, one of the project managers tried to pressure me into working past 5:30pm each day. Since I was in the office at the latest by 7:45am each morning, I was already working more than the regulation 40 hours each week - so I told him (politely) to go to hell. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key I've found with making flexible hours work is predictability - make it easy for people to know when you'll be available, and when you won't. If the company uses calendars like Exchange/Outlook, book all your lectures and travel time in so that people can see them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also useful to go (a little) out of your way to make things work. For example, if I'm unavailable for an afternoon, for any reason, I usually check my work email that evening and respond to everything I can. Or, I'll make sure to get into work much earlier than usual and respond then. My goal is to make sure that the &lt;em&gt;flexibility I use&lt;/em&gt; doesn't impact on other people getting &lt;em&gt;their jobs done&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4099" LastActivityDate="2010-12-11T08:59:30.830" />
  <row Id="25523" PostTypeId="2" ParentId="25509" CreationDate="2010-12-11T09:18:24.223" Score="7" ViewCount="" Body="&lt;p&gt;Well, I think Scala is too complex. It feels like C++ in that it has a myriad of different ways of doing things. Some would call this &quot;richness&quot;, &quot;expressiveness&quot; or &quot;power&quot;, but your mileage may vary. In many real world projects you would have to artificially limit what language features you're going to use and what not, so that all developers involved could speak the same subset of the language. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For functional programming I prefer &lt;a href=&quot;http://clojure.org/&quot; rel=&quot;nofollow&quot;&gt;Clojure&lt;/a&gt;, which is way simpler than Scala.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let the holy war begin ;-)&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-12-11T09:23:46.930" LastActivityDate="2010-12-11T09:23:46.930" CommentCount="9" />
  <row Id="25524" PostTypeId="2" ParentId="25487" CreationDate="2010-12-11T09:22:01.247" Score="1" ViewCount="" Body="&lt;p&gt;To program is to instruct in a logical manner so as to achieve some desired output. In other words it is telling the computer to do some task. The only way to move forward is by practicing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just as learning English or any other language you need to start by learning the syntax (alphabet) and then move on to grammar and other constructs. The amount of time required varies depending on the complexity of the language. Coding in higher level languages like SQL, Python is &lt;em&gt;almost&lt;/em&gt; like writing English.&lt;/p&gt;&#xA;" OwnerUserId="9544" LastActivityDate="2010-12-11T09:22:01.247" />
  <row Id="25525" PostTypeId="2" ParentId="25234" CreationDate="2010-12-11T09:25:25.300" Score="0" ViewCount="" Body="&lt;p&gt;Nah, you're not alone. I have the same problem. You might want to check out the answers in the similar question I asked a while ago: &lt;a href=&quot;http://programmers.stackexchange.com/q/9991/2210&quot;&gt;What to do when the programming activity becomes a problem?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-12-11T09:25:25.300" />
  <row Id="25526" PostTypeId="1" CreationDate="2010-12-11T09:40:02.497" Score="2" ViewCount="183" Body="&lt;p&gt;We've got a reasonably good release management process.  However large parts of it are manual tasks, i.e. Promoting builds to QA, deploying builds to internal groups, tracking releases, etc.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The builds and tests are all automated with CruiseControl.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can anyone recommend some good release management / continuous deployment tools that I can use to automate the rest of our process?&lt;/p&gt;&#xA;" OwnerUserId="9584" LastActivityDate="2011-06-02T01:30:39.393" Title="Release management software" Tags="&lt;development-process&gt;" AnswerCount="3" CommentCount="5" FavoriteCount="1" />
  <row Id="25527" PostTypeId="2" ParentId="25487" CreationDate="2010-12-11T09:55:53.930" Score="1" ViewCount="" Body="&lt;p&gt;Whoever has the passion towards thinking/innovating/discovering/problem solving will be able to code&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-12-11T09:55:53.930" />
  <row Id="25528" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T09:58:22.667" Score="3" ViewCount="" Body="&lt;p&gt;&quot;Any technology, no matter how primitive, is magic to those who don't understand it.&quot; - Ambrose's Corollary&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't have the exact comic, but it's from &lt;a href=&quot;http://freefall.purrsia.com/&quot; rel=&quot;nofollow&quot;&gt;Freefall.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7789" LastActivityDate="2010-12-11T09:58:22.667" CommunityOwnedDate="2010-12-11T17:29:26.353" CommentCount="2" />
  <row Id="25529" PostTypeId="2" ParentId="25202" CreationDate="2010-12-11T10:09:57.193" Score="1" ViewCount="" Body="&lt;p&gt;It is not controlled by Larry Ellison.&lt;/p&gt;&#xA;" OwnerUserId="9588" LastActivityDate="2010-12-11T10:09:57.193" />
  <row Id="25530" PostTypeId="2" ParentId="25052" CreationDate="2010-12-11T10:14:28.720" Score="1" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/EoRCS.png&quot; alt=&quot;dumb things i gotta do today: make list&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a more serious note, a directory is a list of files and directories.&lt;/p&gt;&#xA;" OwnerUserId="3684" LastActivityDate="2010-12-11T10:14:28.720" CommunityOwnedDate="2011-03-11T22:52:58.993" CommentCount="2" />
  <row Id="25531" PostTypeId="2" ParentId="23965" CreationDate="2010-12-11T10:17:02.150" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;VB&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Visual Basic (aka Classic VB, [!VB.NET]) is probably still in use (you can still find old win32 apps) Yet perhaps its the end of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;VBA in its current form would just follow as MS Office would not have VBA engine included.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;VBScript, even microsoft.com is no longer uses it rather use standard javascript. So there are some sysadmins who have a bunch of vbscript used to maintain their servers, but perhaps this is all obscure and left-field.&lt;/p&gt;&#xA;" OwnerUserId="9587" LastActivityDate="2010-12-11T10:17:02.150" />
  <row Id="25532" PostTypeId="1" CreationDate="2010-12-11T10:21:21.663" Score="2" ViewCount="493" Body="&lt;p&gt;You all heard the news about Java and the JCP/Apache. What I don't understand is, why does this have to affect the Java market ? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, the license has changed and maybe it's moving to a be a bit more closed source but why would people think /it's/will be/ the new Cobol ? &lt;/p&gt;&#xA;" OwnerUserId="9590" LastActivityDate="2011-03-30T06:18:45.720" Title="Why are some saying that Java will be the new Cobol?" Tags="&lt;java&gt;" AnswerCount="6" CommentCount="3" />
  <row Id="25533" PostTypeId="2" ParentId="25442" CreationDate="2010-12-11T10:24:02.860" Score="1" ViewCount="" Body="&lt;p&gt;I'd go for &lt;a href=&quot;http://lua.org&quot; rel=&quot;nofollow&quot;&gt;Lua&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Good for general scripting though not bloated&lt;/li&gt;&#xA;&lt;li&gt;Really really fast for a scripting language (especially when using LuaJIT(luajit.org), take a look on shootout.alioth.debian.org&lt;/li&gt;&#xA;&lt;li&gt;Can be used to both extend C/C++ or have C/C++ extensions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9591" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-12-18T10:21:29.927" LastActivityDate="2010-12-18T10:21:29.927" />
  <row Id="25534" PostTypeId="2" ParentId="25432" CreationDate="2010-12-11T10:24:39.153" Score="3" ViewCount="" Body="&lt;p&gt;If you have the freedom to do so: Write grants, bring in some grant money from outside, or start a cooperation that has business value, with new partners that consider you a competent programmer or -at least- valueable employee.&lt;/p&gt;&#xA;" OwnerUserId="9589" LastActivityDate="2010-12-11T10:24:39.153" />
  <row Id="25535" PostTypeId="2" ParentId="492" CreationDate="2010-12-11T10:25:04.003" Score="0" ViewCount="" Body="&lt;p&gt;The more you type the less you have to look at your keyboard, its a natural process.&#xA;Thats why some people on machanical keyboards are able to use blank keys, 1 is because it look clean, 2 is more effieicent that force you to not look at the keyboard. These keyboards such as the DAS proffesional, HHKB pro2...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can use aids such as AHK, texter. &#xA;texter is only just a simple GUI based text expander made on top of AHK, simple and easy, but + AHK standalone you get more controls, such as im using the space combo script which allows me to use space bar as a modifer key,&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;eg when holding my space more than 0.2seconds than use others keys such as&lt;/li&gt;&#xA;&lt;li&gt;on the home row- --hjkl  = left, down, up, right navigation&lt;/li&gt;&#xA;&lt;li&gt;going a row up,----yuio  = back-space, undo, redo, &lt;/li&gt;&#xA;&lt;li&gt;a row down,--------bnm,. = ?('&quot;{&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and many many more upon your own liking espeialy for keys like home, end.. or any hard to reach keys, that make your hand out of the home row. such as remap the control key on capslock and another backspace combo for left hand(shift+space)&#xA;here is the thread about the space bar combo script &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;a href=&quot;http://www.autohotkey.com/forum/post-406030.html#406030&quot; rel=&quot;nofollow&quot;&gt;http://www.autohotkey.com/forum/post-406030.html#406030&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;i might put up the script im using after i finish designing my blog, visit my blog after the end of 2010 it might be there. :) &lt;/p&gt;&#xA;" OwnerUserId="9593" LastActivityDate="2010-12-11T10:25:04.003" CommunityOwnedDate="2011-03-20T20:58:56.467" CommentCount="1" />
  <row Id="25536" PostTypeId="2" ParentId="25458" CreationDate="2010-12-11T10:29:53.283" Score="-1" ViewCount="" Body="&lt;p&gt;Subscribe to the hacker news RSS feed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll get lots of links such as &lt;a href=&quot;http://ryanwaggoner.com/2010/10/how-to-become-a-freelance-web-developer/&quot; rel=&quot;nofollow&quot;&gt;this one&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Graphic Design matters most to clients, &quot;unfair but true&quot;.&lt;/p&gt;&#xA;" OwnerUserId="9589" LastActivityDate="2010-12-11T10:29:53.283" />
  <row Id="25537" PostTypeId="2" ParentId="25532" CreationDate="2010-12-11T10:32:43.143" Score="1" ViewCount="" Body="&lt;p&gt;I do not believe that the former part of the question is associated with the latter. What is going now with JCP does not have to do with the belief that Java will be the next Cobol.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The rationale for the Cobol argument has to do with tons of code written in Java that is deployed in infrastructures we use daily, which might not be able to be maintained and extended if we have a shortage of Java programmers for the same reason we have a shortage of Cobol programmers and some other arguments as well (a person more inside relevant industries might help)&lt;/p&gt;&#xA;" OwnerUserId="6059" LastActivityDate="2010-12-11T10:32:43.143" CommentCount="4" />
  <row Id="25539" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T10:51:28.423" Score="0" ViewCount="" Body="&lt;p&gt;&quot;Advanced Perl Programming&quot;, by Sriram Srinivasan, an O'Reilly book from 1997 has some great, carefully selected quotes at the beginning of each chapter. This might come in handy if you are looking for context when to use a quote or where to place it: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example at the beginning of chapter &quot;Subroutine References and Closures&quot; there is this quote&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Many are called, but few are called&#xA;  back.&#xA;  - Sister Mary Tricky&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="9589" LastActivityDate="2010-12-11T10:51:28.423" CommunityOwnedDate="2010-12-11T17:29:26.353" />
  <row Id="25540" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T10:55:19.360" Score="20" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A designer knows he has achieved&#xA;  perfection not when there is nothing&#xA;  left to add, but when there is nothing&#xA;  left to take away.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Antoine de Saint-Exupéry&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6745" LastActivityDate="2010-12-11T10:55:19.360" CommunityOwnedDate="2010-12-11T17:29:26.353" CommentCount="2" />
  <row Id="25541" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T11:05:42.613" Score="10" ViewCount="" Body="&lt;p&gt;From an &lt;a href=&quot;http://www.youtube.com/watch?v=YCLu41IpoDU&quot; rel=&quot;nofollow&quot;&gt;Aikido master&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;No movement is faster than no movement&lt;br /&gt;&#xA;- Stéphane Benedetti&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Or to put in programmer's terms, &quot;no code is faster than no code.&quot;, or &quot;no code has less bugs than no code&quot;.&lt;/p&gt;&#xA;" OwnerUserId="9601" LastActivityDate="2010-12-11T11:05:42.613" CommunityOwnedDate="2010-12-11T17:29:26.353" CommentCount="2" />
  <row Id="25542" PostTypeId="2" ParentId="25526" CreationDate="2010-12-11T11:14:07.013" Score="1" ViewCount="" Body="&lt;p&gt;I'm not too familiar with CruiseControl, but many of these manual tasks can be automated within a CI tool.  I've used Hudson in the past, but I suspect CruiseControl will do it just fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you work from trunk, create a &quot;Promote build to QA&quot; and a &quot;Deploy to internal group&quot; job, possibly with some sort of audit information.  This might call out to a Maven, Capistrano, or Fabric script (depending on your environment) to do the deed.  This doesn't require any special work - just a job that calls a shell script, possibly with some variables.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you work in feature branches, you'll need to create a &quot;Promote build to QA&quot; or &quot;Deploy to internal group&quot; action on the builds being built against your feature branch.  This might require you to make a plugin for your CI system.  You might be able to use a job like above, but the job runner will need variables (like branch name or build number).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure what you mean by tracking releases, but I've used two methods with CI tools in the past to keep track of when releases have gone out.  The first is making the release a Hudson job, which means you get a history of job runs (with output).  You can associate useful version data to the build in Hudson, so you can see at a glance which builds went out when.  The second is using a callback in your deployment process.  When the deployment is complete (or even if not), make a callback to your CI tool (or some other release tracker) that reports on the result (in Hudson, using either an external process monitor, or by triggering a build remotely).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope that helps.&lt;/p&gt;&#xA;" OwnerUserId="9564" LastActivityDate="2010-12-11T11:14:07.013" CommentCount="1" />
  <row Id="25543" PostTypeId="2" ParentId="25486" CreationDate="2010-12-11T11:23:48.013" Score="4" ViewCount="" Body="&lt;p&gt;Like BitOff mentions, it means what others &lt;a href=&quot;http://en.wikipedia.org/wiki/Convention_over_configuration&quot; rel=&quot;nofollow&quot;&gt;convention over configuration&lt;/a&gt;.  This seems to be confirmed by the ColdBox home page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, this means that instead of having configuration files describing details about a project - where to find files, which classes to instantiate, which URLs map to which classes, and so forth - the framework provides good defaults that allow you to just put the files and classes and methods in the right place and be done with it.&lt;/p&gt;&#xA;" OwnerUserId="9564" LastActivityDate="2010-12-11T11:23:48.013" />
  <row Id="25544" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T11:30:43.897" Score="11" ViewCount="" Body="&lt;h2&gt;&lt;strong&gt;The Biggest Lie Ever;;&lt;/strong&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&quot;I have read and agree to the terms of use&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-11T11:30:43.897" CommunityOwnedDate="2010-12-11T17:29:26.353" CommentCount="1" />
  <row Id="25545" PostTypeId="2" ParentId="25052" CreationDate="2010-12-11T11:33:42.723" Score="18" ViewCount="" Body="&lt;p&gt;To explain &lt;a href=&quot;http://en.wikipedia.org/wiki/Recursion&quot; rel=&quot;nofollow&quot;&gt;recursion&lt;/a&gt;, I use a combination of different explanation, usually to both try to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;explain the concept,&lt;/li&gt;&#xA;&lt;li&gt;explain why it matters,&lt;/li&gt;&#xA;&lt;li&gt;explain how to get it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For starters, &lt;a href=&quot;http://www.wolframalpha.com/input/?i=recursion&quot; rel=&quot;nofollow&quot;&gt;Wolfram|Alpha&lt;/a&gt; defines it in more simple terms than &lt;a href=&quot;http://en.wikipedia.org/wiki/Recursion&quot; rel=&quot;nofollow&quot;&gt;Wikipedia&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;An expression such that each term is generated by repeating a particular mathematical operation.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;Maths&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;If your student (or the person you explain too, from now on I'll say student) has at least some mathematical background, they've obviously already encountered recursion by studying series and their notion of &lt;a href=&quot;http://en.wiktionary.org/wiki/recursivity&quot; rel=&quot;nofollow&quot;&gt;recursivity&lt;/a&gt; and their &lt;a href=&quot;http://en.wikipedia.org/wiki/Recurrence_relation&quot; rel=&quot;nofollow&quot;&gt;recurrence relation&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A very good way to start is then to with a series and tell that it's quite simply what recursions is about:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a mathematical function...&lt;/li&gt;&#xA;&lt;li&gt;... that calls itself to compute a value corresponding to an n-th element...&lt;/li&gt;&#xA;&lt;li&gt;... and which defines some boundaries.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Usually, you either get a &quot;huh huh, whatev'&quot; at best because they still do not use it, or more likely just a very deep snore.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;Coding Examples&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;For the rest, it's actually a detailed version of what I presented in the &lt;strong&gt;Addendum&lt;/strong&gt; of &lt;a href=&quot;http://programmers.stackexchange.com/questions/17898/whats-a-nice-explanation-for-pointers/17958#17958&quot;&gt;my answer&lt;/a&gt; for the &lt;a href=&quot;http://programmers.stackexchange.com/questions/17898/whats-a-nice-explanation-for-pointers&quot;&gt;question you pointed to regarding pointers&lt;/a&gt; (bad pun).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this stage, my students usually know how to print something to the screen. Assuming we are using C, they know how to print a single char using &lt;code&gt;write&lt;/code&gt; or &lt;code&gt;printf&lt;/code&gt;. They also know about control loops.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually resort to a few repetitive and simple programming problems until they get it:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the &lt;a href=&quot;http://en.wikipedia.org/wiki/Factorial&quot; rel=&quot;nofollow&quot;&gt;factorial&lt;/a&gt; operation,&lt;/li&gt;&#xA;&lt;li&gt;an alphabet printer,&lt;/li&gt;&#xA;&lt;li&gt;a reversed alphabet printer,&lt;/li&gt;&#xA;&lt;li&gt;the &lt;a href=&quot;http://en.wikipedia.org/wiki/Exponentiation&quot; rel=&quot;nofollow&quot;&gt;exponentation&lt;/a&gt; operation,&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Factorial&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Factorial is a very simple math concept to understand, and the implementation is very close to its mathematical representation. However, they might not get it at first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/djkTw.png&quot; alt=&quot;Recursive Definition of the Factorial Operation&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Alphabets&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The alphabet version is interesting to teach them to think about the ordering of their recursive statements. Like with pointers, they will just throw lines randomly at you. The point is to bring them to the realization that a loop can be inverted by either modifying the conditions &lt;strong&gt;OR&lt;/strong&gt; by just inverting the order of the statements in your function. That's where printing the alphabet, as it's something visual for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Skip the fact that printing stuff to the output stream is a side effect for now... Let's not get too annoying on the FP-front. (But if you use a language with list support, feel free to concatenate to a list at each iteration and just print the final result. But usually I start them with C, which is unfortunately not the best for this sort of problems and concepts).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Exponentiation&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The exponention problem is slightly more difficult (for them at this stage). Obviously the concept is exactly the same as for a factorial and there is no added complexity... except that you have multiple parameters. And that is usually enough to confuse people at the beginning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's simple form:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/hrR7O.png&quot; alt=&quot;Simple Form of the Exponentiation Operation&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;can be expressed like this by recurrence:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Cd4fk.png&quot; alt=&quot;Recurrence Relation for the Exponentiation Operation&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Harder&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once these simple problems have been shown AND re-implemented in tutorials, you can give slightly more difficult (but very classic) exercises:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The &lt;a href=&quot;http://en.wikipedia.org/wiki/Fibonacci_number&quot; rel=&quot;nofollow&quot;&gt;Fibonacci&lt;/a&gt; numbers,&lt;/li&gt;&#xA;&lt;li&gt;The &lt;a href=&quot;http://en.wikipedia.org/wiki/Greatest_common_divisor&quot; rel=&quot;nofollow&quot;&gt;Greatest Common Divisor&lt;/a&gt;,&lt;/li&gt;&#xA;&lt;li&gt;The &lt;a href=&quot;http://en.wikipedia.org/wiki/Eight_queens_puzzle&quot; rel=&quot;nofollow&quot;&gt;8-Queens&lt;/a&gt; problem,&lt;/li&gt;&#xA;&lt;li&gt;The &lt;a href=&quot;http://en.wikipedia.org/wiki/Tower_of_Hanoi&quot; rel=&quot;nofollow&quot;&gt;Towers of Hanoi&lt;/a&gt; game,&lt;/li&gt;&#xA;&lt;li&gt;And if you have a graphical environment (or can provide code stubs for it or for a terminal output or they can manage that already), things like:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Koch_snowflake&quot; rel=&quot;nofollow&quot;&gt;Koch's Snow Flake Fractal&lt;/a&gt;,&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Sierpinski_triangle&quot; rel=&quot;nofollow&quot;&gt;Sierpinski's Triangle&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;And for for practical examples, consider writing:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a tree traversal algorithm,&lt;/li&gt;&#xA;&lt;li&gt;a simple mathematical expression parser.&lt;/li&gt;&#xA;&lt;li&gt;an &lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Note: Again, some of these really aren't any harder... They just approach the problem from exactly the same angle, or a slightly different one. But practice makes perfect.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;Helpers&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A Reference&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some reading never hurts. Well it will at first, and they'll feel even more lost. It's the sort of thing that grows on you and that sits in the back of your head until one day your realize that you finally get it. And then you think back of these stuff you read. The &lt;a href=&quot;http://en.wikipedia.org/wiki/Recursion&quot; rel=&quot;nofollow&quot;&gt;recursion&lt;/a&gt;,  &lt;a href=&quot;http://en.wikipedia.org/wiki/Recursion_%28computer_science%29&quot; rel=&quot;nofollow&quot;&gt;recursion in Computer Science&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Recurrence_relation&quot; rel=&quot;nofollow&quot;&gt;recurrence relation&lt;/a&gt; pages on Wikipedia would do for now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Level/Depth&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming your students do not have much coding experience, provide code stubs. After the first attempts, give them a printing function that can display the recursion level. Printing the numerical value of the level helps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Stack-as-Drawers Diagram&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Indenting a printed result (or the level's output) helps as well, as it gives another visual representation of what your program is doing, opening and closing stack contexts like drawers, or folders in a file system explorer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Recursive Acronyms&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your student is already a bit versed into computer culture, they might already use some projects/softwares with names using &lt;a href=&quot;http://en.wikipedia.org/wiki/Recursive_acronym&quot; rel=&quot;nofollow&quot;&gt;recursive acronyms&lt;/a&gt;. It's been a tradition going around for some time, especially in GNU projects. Some examples include:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recursive:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;GNU - &quot;GNU's Not Unix&quot;&lt;/li&gt;&#xA;&lt;li&gt;Nagios - &quot;Nagios Ain't Gonna Insist On Sainthood&quot;&lt;/li&gt;&#xA;&lt;li&gt;PHP - &quot;PHP Hypertext Preprocessor&quot; (and originall &quot;Personal Home Page&quot;)&lt;/li&gt;&#xA;&lt;li&gt;Wine - &quot;Wine Is Not an Emulator&quot;&lt;/li&gt;&#xA;&lt;li&gt;Zile - &quot;Zile Is Lossy Emacs&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Mutually Recursive:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;HURD - &quot;HIRD of Unix-Replacing Daemons&quot; (where HIRD is &quot;HURD of Interfaces representing Depth&quot;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Have them try to come up with their own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, there are many occurrences of recursive humor, like &lt;a href=&quot;http://www.google.com/search?q=recursion&quot; rel=&quot;nofollow&quot;&gt;Google's recursive search&lt;/a&gt; correction. &lt;a href=&quot;http://programmers.stackexchange.com/questions/25052/a-nice-explanation-for-recursion/25545#25545&quot;&gt;For more information on recursion, read this answer&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;Pitfalls and Further Learning&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Some issues that people usually struggle with and for which you need to know answers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Why, oh God Why???&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why would you do that? A good but non-obvious reason is that it is often simpler to express a problem that way. A not-so-good but obvious reason is that it often takes less typing (don't make them feel soooo l33t for just using recursion though...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some problems are decidedly easier to solve when using a recursive approach. Typically, any problem you can solve using a &lt;a href=&quot;http://en.wikipedia.org/wiki/Divide_and_conquer_algorithm&quot; rel=&quot;nofollow&quot;&gt;Divide and Conquer&lt;/a&gt; paradigm will fit a multi-branched recursion algorithm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What's N again??&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why is my &lt;code&gt;n&lt;/code&gt; or (whatever your variable's name) different every time? Beginners usually have a problem understanding what a variable and a parameter are, and how to things named &lt;code&gt;n&lt;/code&gt; in your program can have different values. So now if this value is in the control loop or recursion, that's even worse! Be nice and do not use the same variable names everywhere, and make it clear that parameters are just variables.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;End Conditions&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do I determine my end condition? That's easy, just have them say the steps out loud. For instance for the factorial start from 5, then 4, then ... until 0.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Devil is in the Details&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do not talk to early abut things like &lt;a href=&quot;http://en.wikipedia.org/wiki/Tail_call&quot; rel=&quot;nofollow&quot;&gt;tail call optimization&lt;/a&gt;. I know, I know, TCO is nice, but they don't care at first. Give them some time to wrap their heads around the process in a way that works for them. Feel free to shatter their world again later on, but give them a break.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, don't talk straight from the first lecture about the &lt;a href=&quot;http://en.wikipedia.org/wiki/Call_stack&quot; rel=&quot;nofollow&quot;&gt;call stack&lt;/a&gt; and its memory consumption and ... well... the &lt;a href=&quot;http://en.wikipedia.org/wiki/Stack_overflow&quot; rel=&quot;nofollow&quot;&gt;stack overflow&lt;/a&gt;. I often tutor students privately who show me lectures where they have 50 slides about &lt;em&gt;everything&lt;/em&gt; there's to know about recursion when they can barely write a loop correctly at this stage. That's a good example of how a reference will help &lt;em&gt;later&lt;/em&gt; but right now just &lt;em&gt;confuses&lt;/em&gt; you deeply.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But please, in due time, make it clear that there are &lt;a href=&quot;http://en.wikipedia.org/wiki/Recursion_%28computer_science%29#Recursion_versus_iteration&quot; rel=&quot;nofollow&quot;&gt;reasons to go the iterative or recursive route&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Mutual Recursion&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We've seen that functions can be recursive, and even that they can have multiple call points (8-queens, Hanoi, Fibonacci or even an exploration algorithm for a minesweeper). But what about &lt;a href=&quot;http://en.wikipedia.org/wiki/Mutual_recursion&quot; rel=&quot;nofollow&quot;&gt;mutually recursive calls&lt;/a&gt;? Start with maths here as well. &lt;code&gt;f(x) = g(x) + h(x)&lt;/code&gt; where &lt;code&gt;g(x) = f(x) + l(x)&lt;/code&gt; and &lt;code&gt;h&lt;/code&gt; and &lt;code&gt;l&lt;/code&gt; just do stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Starting with just mathematical series makes it easier to write and implement as the contract is clearly defined by the expressions. For instance, the &lt;a href=&quot;http://en.wikipedia.org/wiki/Hofstadter_sequence#Hofstadter_Female_and_Male_sequences&quot; rel=&quot;nofollow&quot;&gt;Hofstadter Female and Male Sequences&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/8dF5F.png&quot; alt=&quot;Hofstadter's Male and Female Sequences&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However in terms of code, it is to be noted that the implementation of a mutually recursive solution often leads to code duplication and should rather be streamlined into a single recursive form (See &lt;a href=&quot;http://en.wikipedia.org/wiki/Peter_Norvig&quot; rel=&quot;nofollow&quot;&gt;Peter Norvig&lt;/a&gt;'s &lt;a href=&quot;http://norvig.com/sudoku.html&quot; rel=&quot;nofollow&quot;&gt;Solving Every Sudoku Puzzle&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2011-05-28T12:09:35.140" LastActivityDate="2011-05-28T12:09:35.140" CommunityOwnedDate="2011-03-11T22:52:58.993" CommentCount="5" />
  <row Id="25546" PostTypeId="2" ParentId="25532" CreationDate="2010-12-11T11:38:13.753" Score="1" ViewCount="" Body="&lt;p&gt;IBM supports Java fully on their mainframes, meaning that Java programs there will live as long as Cobol programs has up to now. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code do not rust!  IBM does a lot of work to allow old programs to run on new hardware. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work in a place where we regularily deploy Java programs to IBM midframes.  I literally expect those programs to run for decades.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2011-03-30T06:18:45.720" LastActivityDate="2011-03-30T06:18:45.720" />
  <row Id="25547" PostTypeId="2" ParentId="25489" CreationDate="2010-12-11T11:43:43.887" Score="4" ViewCount="" Body="&lt;p&gt;The most effective way I know of becoming a good programmer is by interacting with programmers better than you - learning from what they say and write (both code and prose), and getting them to comment on what you say and write.  If you're lucky, your university environment will give you access to some of these people.  You'll need to put extra effort in - your regular university work won't be enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Contributing to an existing open source project is certainly one approach here, but don't necessarily go out of your way to contribute just for this experience.  Use an open source project (say, a library) to do something you want to do (say, implement a web application that shows off some algorithm or technique), and if you see the opportunity to improve it, try to do so.  If it is too hard, ask on the mailing lists what approach would most likely work.  On the whole, open source communities welcome new contributors, so don't worry about showing your lack of familiarity with the code base.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Programming Reddit, HackerNews, or individual blogs are great places to interact with good programmers.  Follow them for a while, reading posts and comments, and learn the rules of interaction.  Then, start commenting - asking questions, or trying to answer them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another good way to get interaction is to document your progress towards implementing something, or announcing something when you're done.  If you're interested in data mining, take a large set of data (say, the StackExchange Creative Commons dumps) and perform some sort of analysis on this.  Document your goal, the tools you used, and maybe put the code into a github repository.  Announce this on your blog, and post onto the above-mentioned locations for feedback.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck, and keep asking questions.&lt;/p&gt;&#xA;" OwnerUserId="9564" LastActivityDate="2010-12-11T11:43:43.887" CommentCount="1" />
  <row Id="25548" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T11:44:11.063" Score="9" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;You can use an eraser on the drafting&#xA;  table or a sledge hammer on the&#xA;  construction site.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;-- Frank Lloyd Wright&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2010-12-11T11:44:11.063" CommunityOwnedDate="2010-12-11T17:29:26.353" CommentCount="2" />
  <row Id="25549" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T12:39:03.963" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Logic will get you from A to B. Imagination will take you everywhere.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- &lt;strong&gt;Albert Einstein&lt;/strong&gt; &lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-11T12:39:03.963" CommunityOwnedDate="2010-12-11T17:29:26.353" />
  <row Id="25550" PostTypeId="2" ParentId="25432" CreationDate="2010-12-11T12:42:54.093" Score="7" ViewCount="" Body="&lt;p&gt;Well, I just would add this quote from gospel:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Whoever can be trusted with very little can also be trusted with much, and whoever is dishonest with very little will also be dishonest with much.&quot;&lt;/p&gt;&#xA;" OwnerUserId="2093" LastActivityDate="2010-12-11T12:42:54.093" CommentCount="1" />
  <row Id="25551" PostTypeId="2" ParentId="25489" CreationDate="2010-12-11T12:52:29.993" Score="0" ViewCount="" Body="&lt;p&gt;I think you're doing great at the moment. You have the right approach and attitude to learn a lot and fast, and to have a good retention of what you learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning CS is important, but not vital. I came from a very practical background where CS theory did not matter that much. But it does if you go into very specific fields. SO it depends what you aim at. You need a combination of a looooottttt of practice, at least some degree of theory, and a looooottttttt of interaction with other people. And not only good programmers. Working with &lt;strong&gt;bad&lt;/strong&gt; programmers is also very educative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your next step is to start teaching. You'll learn even a lot doing that. Explaining things to people makes you realize what areas are still fuzzy for you, and what you need to work on until you can consider yourself an expert (if there's such a thing).&lt;/p&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-12-11T12:52:29.993" />
  <row Id="25552" PostTypeId="1" CreationDate="2010-12-11T12:56:57.160" Score="4" ViewCount="2394" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/9042/why-do-you-hate-java-is-it-the-language-or-the-framework&quot;&gt;Why do you hate Java? Is it the language or the framework?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;From the thread &quot;Which programming language do you hate the most&quot; I've seen that Java is pretty hated taking 3rd place. The author specifies a few things that bother him but I would like to know what/why do you dislike a certain feature in Java. Also if you can please motivate your answer. One answer/post would be fine but you can post multiple answers. &lt;/p&gt;&#xA;" OwnerUserId="9590" LastActivityDate="2010-12-12T07:27:16.730" ClosedDate="2010-12-12T07:53:18.230" Title="What features do you dislike the most in Java?" Tags="&lt;java&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="0" />
  <row Id="25554" PostTypeId="2" ParentId="25552" CreationDate="2010-12-11T13:02:24.240" Score="11" ViewCount="" Body="&lt;p&gt;&lt;code&gt;java.util.Date&lt;/code&gt; is horribly broken. &lt;code&gt;java.sql.Date&lt;/code&gt; makes it even worse.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-11T13:02:24.240" CommentCount="4" />
  <row Id="25555" PostTypeId="2" ParentId="25458" CreationDate="2010-12-11T13:07:06.693" Score="4" ViewCount="" Body="&lt;p&gt;I think the particular language you're planning to use is of very little concern when becoming a freelancer. Actual programming is probably the easiest part for most people. Yes, you'll likely need to know all of the languages/frameworks you've listed (depending on exactly what kind of work you want to find: if you don't want to do mobile development then there's little point learning Android development).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The more important skills will be learning to manage your time and your clients. You can do courses to learn that kind of stuff (I did half a term of a &quot;small business&quot; course, but gave up... it focused way too much on &quot;traditional&quot; advertising for the kind of stuff I would be doing, but that's a rant for another day). Typically, you'll learn that stuff as you go, but there are plenty of websites which give good advice (the linked to in knb's answer looks pretty good).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you're currently working for another company, and doing stuff that has nothing to do with what you'll be doing as a freelancer, what you should probably be doing &lt;em&gt;now&lt;/em&gt; is:&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Build a portfolio&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;That is, start working on projects &lt;em&gt;now&lt;/em&gt;, whether for other people or for yourself, in your spare time. You'll want to have two or three completed projects to be able to show to prospective clients when you finally do quit your job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What kinds of projects you work on depends on what kind of freelancing you expect to do. If you're going to do web development, build some web sites. Even if it's just a personal blog or something you need to have something to show potential clients. If you're going to be doing mobile development, build some Android or iPhone apps, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, it's tough to work on projects in your spare time when you've already got a full-time job. But if you're getting into freelance, you'll need to be prepared for long hours anyway (at least, when you're starting out... if you're good enough, you can earn enough to do fewer hours, but I always struggle with the &quot;I could be working right now&quot; niggling feeling I get when just sitting in front of the TV relaxing :p)&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-11T13:07:06.693" />
  <row Id="25556" PostTypeId="2" ParentId="2051" CreationDate="2010-12-11T13:08:31.757" Score="2" ViewCount="" Body="&lt;p&gt;Coming late on that one but... I once worked as part of a QA team for a... let's say fairly big software project, which ultimately is part of a big telecommunications infrastructure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think big, as in really big, as in a few million people use it, to, well, communicate. Write, talk. Short distance and international stuff. That comes with billing as well to make sure it really matters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason for me working with this team was that the technical launch date was approaching, and that they were quite late on the QA and defect identification front.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One morning I show up for our stand-up meeting, and the programme manager tells us that after a review meeting with the project's executives yesterday, they've decided that instead of having the software run on Windows 32 bits servers (which was decided like 2 years ago), they wanted it to run on HP/UX 64-bits machines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No reason except that at the time 64 bits what becoming all the rate, so it must be better right? And totally justified. It was now only 2 weeks before the technical launch. Easy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We fought this dearly (and with laughter).&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="1214" LastEditorDisplayName="" LastEditDate="2011-03-10T09:42:17.113" LastActivityDate="2011-03-10T09:42:17.113" CommunityOwnedDate="2010-12-11T13:08:31.757" />
  <row Id="25557" PostTypeId="2" ParentId="25432" CreationDate="2010-12-11T13:19:09.393" Score="2" ViewCount="" Body="&lt;p&gt;Don't bother with impressing people or your bosses. Nobody is impressed by just talk. &#xA;Concentrate instead on shipping code. Ensure you are involved in projects or applications that will be used by people. More code you have in production more relevant you will be. More relevant you are to people more they will rely on you. Rest is all magic show.&lt;/p&gt;&#xA;" OwnerUserId="9631" LastActivityDate="2010-12-11T13:19:09.393" CommentCount="1" />
  <row Id="25558" PostTypeId="2" ParentId="25552" CreationDate="2010-12-11T13:45:48.733" Score="4" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;They have way too many forms of String. String, StringBuffer, StringBuilder :-(&lt;/li&gt;&#xA;&lt;li&gt;Also the Date Class is horribly wrong.&lt;/li&gt;&#xA;&lt;li&gt;There handling of Timezone is really pathetic. Keeps the developer confused that he set the Timezone in Calendar so the Time is in that Time zone or the Time zone of the running box.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-12-11T13:45:48.733" CommentCount="1" />
  <row Id="25560" PostTypeId="2" ParentId="25552" CreationDate="2010-12-11T13:53:08.277" Score="12" ViewCount="" Body="&lt;p&gt;Checked Exceptions are painful.  Example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;try {&#xA;    Thread.sleep(1000);&#xA;} catch (InteruptedException e) {&#xA;    // what should I do here?&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Handling exceptions should always be optional, since forcing the programmer to handle the exception in no way prevents the programmer from &quot;swallowing&quot; the exception with empty catch blocks.  And it clutters the code in the case where there is no reasonable action to take.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is particularly loathsome when you are prototyping or writing test code, and you really have no reason to handle defects gracefully.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastEditorUserId="5402" LastEditorDisplayName="" LastEditDate="2010-12-11T14:07:13.077" LastActivityDate="2010-12-11T14:07:13.077" CommentCount="7" />
  <row Id="25561" PostTypeId="2" ParentId="25432" CreationDate="2010-12-11T13:55:36.217" Score="1" ViewCount="" Body="&lt;p&gt;Work hard.  Do everything you're told and learn everything.  You're very lucky to work under someone who knows a lot more than you, keep working until you can catch up. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition to working hard, and succeeding in the job you're in now, I'd like to give some advice that is maybe an answer to the question you're not asking.  (It wasn't even on my radar when I got my first software job).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The internet is made by people like you.  And people like you can make money on the internet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find something you're passionate about.  Build it.  Sell it.  Be your own boss.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Open up &lt;a href=&quot;http://news.ycombinator.com&quot; rel=&quot;nofollow&quot;&gt;http://news.ycombinator.com&lt;/a&gt; and start reading the articles.  You're going to see an endless wave of stories from people like you, who had an idea, built a website and managed to make a dollar or two doing it.  It's inspiring and eye-opening there's a guy who earns a ridiculously good wage selling a bingo card generator to teachers... another guy who sold a website to google for millions.  There's a lot of other interesting technology stuff in there too.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;'Rich Dad, Poor Dad' there are places where he's got good advice.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;'The Four Hour Work Week' take this one with a grain of salt, but he does have some interesting ways of looking at work &amp;amp; life.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Keep learning from the guy you're under now. There is so much to learn in 'your first real job' that I can't even begin.  In the long run though (three, five, ten, twenty years) if you learn how to make your own money, you won't have to worry about impressing someone else.&lt;/p&gt;&#xA;" OwnerUserId="5499" LastActivityDate="2010-12-11T13:55:36.217" />
  <row Id="25562" PostTypeId="2" ParentId="25458" CreationDate="2010-12-11T13:55:39.973" Score="1" ViewCount="" Body="&lt;p&gt;I work as freelancer for over a year now. And what I found out that although having technical knowledge (languages, design pattern, etcetc) is necessary, you should understand and do also those thing, which did not have to do in companies as a coder that much. You will not have a manager, accountant, salesman, marketer. Although you might get some of those, that's a luck.. you shouldn't refuse such support if get one. So try to know more also about these things, even if you are in a company yet:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;try to &lt;em&gt;value your days&lt;/em&gt;: how could you sell your today work.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;manage&lt;/em&gt; your plan, &lt;em&gt;track&lt;/em&gt; your time&lt;/li&gt;&#xA;&lt;li&gt;try to &lt;em&gt;market yourself&lt;/em&gt;: find out a product, try to find a market for is, who could use, need your product, publish your codes to show what you can do, sell your technical abilities and also your knowledge in a concrete domain; maybe have a blog, share your results and ideas&lt;/li&gt;&#xA;&lt;li&gt;find ways to deal with customers, learn to &lt;em&gt;communicate well&lt;/em&gt; with them: customers have often unrealistic expectations, facing them with reality or kindly saying no is a virtue which is good to know&lt;/li&gt;&#xA;&lt;li&gt;have a &lt;em&gt;strategy&lt;/em&gt;: choose and stick (but not too hardheadedly) to a group of technologies which you use for solving problems in a selected domain&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So far what I see, it is a much safer feeling to be in a company, but more fun as a freelancer.&lt;/p&gt;&#xA;" OwnerUserId="8497" LastEditorUserId="8497" LastEditorDisplayName="" LastEditDate="2010-12-11T14:24:16.177" LastActivityDate="2010-12-11T14:24:16.177" />
  <row Id="25563" PostTypeId="2" ParentId="25449" CreationDate="2010-12-11T13:58:08.177" Score="0" ViewCount="" Body="&lt;p&gt;COBOL is also easy to self-teach; I've done it, and so has a former colleague without any programming experience. It would be a waste to take a class for it if you've already learned a language. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I agree with the others who said &quot;neither.&quot;&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-11T13:58:08.177" />
  <row Id="25564" PostTypeId="1" AcceptedAnswerId="25577" CreationDate="2010-12-11T14:03:31.553" Score="23" ViewCount="1119" Body="&lt;p&gt;I'm curious what senior developer means because apparently the definition doesn't mean what I thought it would. I keep seeing these teens at 22-23 years old who call themselves senior X developer or senior Y developer. To me, a senior must have 10 years or so experience in programming to call himself 'senior'. I've seen a lot of these teens here (hence the question). Am I wrong? Why?&lt;/p&gt;&#xA;" OwnerUserId="9590" LastEditorUserId="9590" LastEditorDisplayName="" LastEditDate="2010-12-11T14:41:14.813" LastActivityDate="2011-05-16T19:13:57.783" Title="When should you call yourself a senior developer?" Tags="&lt;career&gt;&lt;programming&gt;" AnswerCount="15" CommentCount="26" FavoriteCount="3" />
  <row Id="25565" PostTypeId="2" ParentId="25532" CreationDate="2010-12-11T14:08:40.140" Score="3" ViewCount="" Body="&lt;p&gt;I think it's the idea that people will not naturally be drawn to Java, preferring to try some other language that's deemed more powerful, more fun or just simply cooler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then, as with Cobol now, companies will have to spend real money to train people to maintain all the Java code that is still in production.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's always risky betting on something that the &quot;alpha-geeks&quot; are no longer interested in, but I think that that's too early to call with regards to Java.&lt;/p&gt;&#xA;" OwnerUserId="9639" LastActivityDate="2010-12-11T14:08:40.140" CommentCount="1" />
  <row Id="25566" PostTypeId="2" ParentId="25449" CreationDate="2010-12-11T14:10:22.450" Score="1" ViewCount="" Body="&lt;h2&gt;COBOL&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;In my opinion, VBA is a dead-end. There are certainly apps written using it, but none to the extent that were written using COBOL. Also, from a history-lesson point of view, it would be great to see how programming languages and systems have evolved from the days of &quot;no methods, goto everywhere&quot; COBOL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming, of course, that's the point of the course. If it's trying to teach you COBOL so that you can &quot;get a job&quot; then forget it. There's no point learning COBOL in college so that you can get a &quot;COBOL job&quot;. Anybody hiring for a COBOL and expecting new college graduates to have had exposure to COBOL is kidding themselves: they'll all be expecting to have to train you first. So I'd say there's no point wasting time learning it for that reason. But as a history lesson, sure knock yourself out!&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-11T14:10:22.450" CommentCount="1" />
  <row Id="25567" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T14:10:22.667" Score="1" ViewCount="" Body="&lt;p&gt;Practice without theory is blind; theory without practice is dead. -- Some dude&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-12-11T14:10:22.667" CommunityOwnedDate="2010-12-11T17:29:26.353" />
  <row Id="25568" PostTypeId="2" ParentId="25552" CreationDate="2010-12-11T14:10:42.963" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;call to super must be first statement in constructor&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;call to this must be first statement in constructor&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-11T14:10:42.963" CommentCount="4" />
  <row Id="25569" PostTypeId="1" CreationDate="2010-12-11T14:11:23.510" Score="16" ViewCount="1075" Body="&lt;p&gt;I am looking at this question primarily from a career point of view, so I hope you answer it accordingly. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am fairly proficient with Python, can write C++ and I am a final year student of computer science engineering I am looking to learn Haskell because I have heard a lot about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is: apart from learning it because of all the good I have heard about it, is it any good for my career? Is it used in the industry? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am curious to learn it but unless it helps me somehow in my career, I am not willing to make that change at this stage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looking for some personal experiences here. Thanks!&lt;/p&gt;&#xA;" OwnerUserId="9645" LastEditorUserId="4711" LastEditorDisplayName="" LastEditDate="2010-12-17T02:02:19.657" LastActivityDate="2011-01-08T01:09:51.373" Title="Is Haskell worth learning?" Tags="&lt;programming-languages&gt;&lt;career&gt;" AnswerCount="9" CommentCount="7" FavoriteCount="4" />
  <row Id="25570" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T14:12:26.613" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Measure twice, cut once&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've seen it attributed to William Gibson's Neuromancer, but that can't be the first time it's been mentioned. A carpenter somewhere must have come up with it.&lt;/p&gt;&#xA;" OwnerUserId="7892" LastActivityDate="2010-12-11T14:12:26.613" CommunityOwnedDate="2010-12-11T17:29:26.353" CommentCount="1" />
  <row Id="25571" PostTypeId="2" ParentId="25564" CreationDate="2010-12-11T14:13:04.943" Score="21" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&quot;When should you call yourself a senior developer?&quot;&lt;/em&gt; - &lt;strong&gt;When I started to mentor junior developers.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8360" LastEditorUserId="8360" LastEditorDisplayName="" LastEditDate="2010-12-11T14:28:23.503" LastActivityDate="2010-12-11T14:28:23.503" CommentCount="6" />
  <row Id="25572" PostTypeId="2" ParentId="25564" CreationDate="2010-12-11T14:13:32.153" Score="6" ViewCount="" Body="&lt;p&gt;I've noticed the same trend. One of the questions the other day was about a senior developer with 2-3 years' experience moving up to architect. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;You can call an acorn a tree, but that don't change what it be.&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The only logical conclusion is that &quot;senior&quot; means something else:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;relative rank, as in &quot;senior to the guy just out of college&quot;&lt;/li&gt;&#xA;&lt;li&gt;poor Spanish spellers, i.e. they meant to put señor&lt;/li&gt;&#xA;&lt;li&gt;southern spelling, as in &quot;senior butt-crack, pull up them pants&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These days, &lt;em&gt;it's just a job title&lt;/em&gt;, and may or not say anything about relative industry experience.&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-12-11T14:28:37.163" LastActivityDate="2010-12-11T14:28:37.163" CommentCount="5" />
  <row Id="25573" PostTypeId="2" ParentId="25564" CreationDate="2010-12-11T14:14:00.780" Score="1" ViewCount="" Body="&lt;p&gt;10 Years ?? You must be Kidding. Ok, how do you define 10 years ? Let us say someone started programming at the age of 15 but became proffesional at 25 ? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The industry doesn't work that way. I think different companies let people call them Senior Dev X or Y anytime between 5-8 years. A lot of seniority in the Organization doesn't come with ability alone, it has a lot to do with the initiative an individual is taking and the kind of responsibilites he is willing to share. Most of the time people with reasonable skill and strong motivation do become senior Pros.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW 22 years is not teen ;-)&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-12-11T14:14:00.780" CommentCount="4" />
  <row Id="25574" PostTypeId="2" ParentId="25564" CreationDate="2010-12-11T14:14:08.173" Score="2" ViewCount="" Body="&lt;p&gt;Maybe wait until someone else calls you Senior :)&lt;/p&gt;&#xA;" OwnerUserId="9639" LastActivityDate="2010-12-11T14:14:08.173" CommentCount="2" />
  <row Id="25575" PostTypeId="2" ParentId="25432" CreationDate="2010-12-11T14:15:35.223" Score="12" ViewCount="" Body="&lt;p&gt;Read Knuth&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(corollary: many people &lt;em&gt;have&lt;/em&gt; Knuth, but no one &lt;em&gt;reads&lt;/em&gt; Knuth)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All the &lt;em&gt;really&lt;/em&gt; good programmers I've worked with have some traits in common:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(1) Even though you don't &lt;em&gt;have&lt;/em&gt; to be good at maths to do programming, they were anyway (and they liked it)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(2) They appreciate a quality I will call 'elegance' - &lt;em&gt;not&lt;/em&gt; to be confused with brevity (!!!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(3) They are good at designing software (even if none of us can explain what good design actually is)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition, I personally find the following traits handy:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(a) enjoying solving puzzles&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(b) writing readable code&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(c) a good memory&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(d) can superficially adapt to other programming languages easily (breadth)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(e) learn your main language in depth (e.g. do the Java certification if Java is your environment (for clueless detractors that never did this but slag off certification since Microsoft's certification is (was?) really bad ... the benefit is &lt;em&gt;not&lt;/em&gt; in having the piece of paper, the benefit is in &lt;em&gt;the study&lt;/em&gt;))&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(f) given the choice of doing something simple and easy and then moving on, or something super complicated that will take weeks/months, I do the simple thing.  I like simple, since it tends towards robustness, also it is more flexible when requirements change in mid stride, and is a lot easier to communicate to other team members&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(g) if you do something you consider especially cunning, document the smeg out of it&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Someone (Djikstra?) said that debugging is twice as hard as coding, therefore if you write code that is at the limits of your ability, you are &lt;em&gt;by definition&lt;/em&gt; not smart enough to debug it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;========&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, becoming a smart/better coder is not the same as advancing your career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is really only one 'secret ingredient' required for advancing your career, and it is people skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really want to progress your &lt;em&gt;career&lt;/em&gt;, the best thing to do is to quit, and go sell cars for 6-12 months.&lt;/p&gt;&#xA;" OwnerUserId="9649" LastActivityDate="2010-12-11T14:15:35.223" CommentCount="6" />
  <row Id="25576" PostTypeId="2" ParentId="25509" CreationDate="2010-12-11T14:29:06.087" Score="4" ViewCount="" Body="&lt;p&gt;It's an excellent language that is simpler than Java in many ways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most people won't like it, Java programmer or not, for the same reasons that most people, programmers or not, don't like learning new programming languages.  I suspect that most people who learned a programming language did not even like learning that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're worried about a language being as complicated as C++, I would avoid Clojure like the plague.  Whining that Scala is more complicated than Clojure has become the fallback argument for people who are completely ignorant regarding one or both languages.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clojure has macros, which means you can alter the language's syntax as much as you want, giving you not just &quot;a myriad of different ways of doing things&quot; but an almost infinite number of ways of doing things.  And none of this new syntax the programmers are creating with the macros will be documented anywhere in the language specification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;But we can avoid using macros or regulate which ones are allowed in our code&quot;, you say.  Congratulations, you're now having &quot;to artificially limit what language features you're going to use and what not&quot;, which is exactly what the babbling idiots who are using Clojure of Scala used as their reason for avoiding Scala to begin with.&lt;/p&gt;&#xA;" OwnerUserId="9658" LastActivityDate="2010-12-11T14:29:06.087" CommentCount="5" />
  <row Id="25577" PostTypeId="2" ParentId="25564" CreationDate="2010-12-11T14:35:22.837" Score="36" ViewCount="" Body="&lt;p&gt;You can call yourself a Senior when:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You can handle the entire software development life cycle, end to end&lt;/li&gt;&#xA;&lt;li&gt;You lead others, or others look to you for guidance. &lt;/li&gt;&#xA;&lt;li&gt;You can self manage your projects&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Software development is a curious creature unlike other fields.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Sometimes, a fresh punk out of college can run circles around veterans who have 20+ years of &quot;experience&quot;. Programming is a bizarre world where &lt;strong&gt;code is king&lt;/strong&gt;.  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Some achieve the above in 2 years or less, others take 10 years.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-11T18:41:27.383" LastActivityDate="2010-12-11T18:41:27.383" CommentCount="1" />
  <row Id="25578" PostTypeId="2" ParentId="25564" CreationDate="2010-12-11T14:36:07.600" Score="0" ViewCount="" Body="&lt;p&gt;It could have something to do with money. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some companies follow a set salary plan. They can't put you in the middle of the 'Developer'-ladder, because of some given rules. But they can put you in the bottom of the 'Senior Developer'-ladder.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I find it strange if a person is given a senior title right out of college, but on the other side - who cares? I have been an 'developer' for some ten years now, and even though I get a 'senior' title when I change workplace now, it doesn't mean anything. I will still be a freshman in the new domain - at least for a while...&lt;/p&gt;&#xA;" OwnerUserId="9655" LastActivityDate="2010-12-11T14:36:07.600" />
  <row Id="25579" PostTypeId="2" ParentId="25569" CreationDate="2010-12-11T14:40:30.953" Score="13" ViewCount="" Body="&lt;p&gt;Disclaimer: I don't know Haskell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of all, learning another programming language, assuming you have the time, is always a good idea.&#xA;It is especially true, if the language uses a programming paradigm that you are not familiar with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haskell is a purely functional programming language, and my guess is you may not be familiar with functional programming, even though Python also supports it.  Learning functional programming will expand your horizons.  You will &lt;em&gt;really&lt;/em&gt; understand recursion.  You will understand the simplicity, the elegance, and the scalability that functional programming can provide.  I suggest you google &lt;em&gt;MapReduce&lt;/em&gt;, which is what allows Google's search engine to run across zillions of servers to handle bazillions of search requests, to see what the practical applications of functional programming might be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason I feel qualified to tell you all this, even though I do not know Haskell, is that I had to take a course called &quot;Programming Language Concepts&quot; during my first year of college, which used Scheme, another purely functional language.  Scheme looked very strange at first, but I have come to appreciate its elegance, and I think that made me a better programmer.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastEditorUserId="4365" LastEditorDisplayName="" LastEditDate="2010-12-11T14:48:59.203" LastActivityDate="2010-12-11T14:48:59.203" CommentCount="5" />
  <row Id="25580" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T14:44:26.340" Score="3" ViewCount="" Body="&lt;p&gt;Here's some wisdom about quote threads.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A witty saying proves nothing.&#xA;  -- Voltaire&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Nothing is so useless as a general maxim.&#xA;  -- Thomas Babington Macaulay&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Well done is better than well said.&#xA;  -- Benjamin Franklin&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3856" LastActivityDate="2010-12-11T14:44:26.340" CommunityOwnedDate="2010-12-11T17:29:26.353" CommentCount="1" />
  <row Id="25581" PostTypeId="2" ParentId="25569" CreationDate="2010-12-11T14:50:04.583" Score="5" ViewCount="" Body="&lt;p&gt;Learning Haskell will expose you to pure functional programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have not yet had decent exposure to that paradigm then it will teach you new methods of approaching software problems.  All programmers should know &lt;em&gt;at least&lt;/em&gt; one language from each paradigm, in order that they can then see a problem from all the angles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Is Haskell used much in industry?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No. It is more familiar to academics, it could be used more, but never has been.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Want to learn something very similar that is/will be?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/fsharp/default&quot; rel=&quot;nofollow&quot;&gt;Learn F#&lt;/a&gt;, it's more or less based on Haskell, with some imperative bits thrown in and is a first class language in the .NET framework as of Visual Studio 2010.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-11T14:50:04.583" CommentCount="15" />
  <row Id="25582" PostTypeId="2" ParentId="25564" CreationDate="2010-12-11T14:52:08.250" Score="2" ViewCount="" Body="&lt;p&gt;I think the best answer was given by Darknight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel the need to point out the following.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2-3 years of programming experience (working + personal together) is just not enough for one to have seen sufficient number of projects and have dealt with a sufficient amount of problems. Just won't work. You need time to let things go through your head, to reflect on your experience and to move mentally to a higher level of thinking. Doesn't happen overnight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say under 5-7 years of practice (again working + personal together) a miracle is not to expect. One might get a lot of experience with certain languages and frameworks, but not yet jump to a new level of thinking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing is the overall maturity of an individual. In my opinion it first comes closer to 30 years old. Prior to that our brain may be working at a higher clock rate, but it would be processing junk, because it lacks sufficient data in the memory to see a bigger picture. Our general life experience adds something subtle but real to the way we think and work, so to programming as one other kind of work as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal acceptance of a senior: &lt;strong&gt;somebody at least 27 y.o. with at least 7 years of practice&lt;/strong&gt;. Prior to that I'd personally be skeptical (but still open-minded, it'll just take more proof to me).&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-11T14:52:08.250" />
  <row Id="25583" PostTypeId="1" AcceptedAnswerId="25588" CreationDate="2010-12-11T14:53:20.463" Score="3" ViewCount="196" Body="&lt;p&gt;I want to know how to become an expert or pro in any particular language. I am working on Asp.Net, Asp.Net MVC, C# and JQuery and I just want to learn these things in-depth. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the steps that lead me to that place and how much time should I need for that?&lt;/p&gt;&#xA;" OwnerUserId="8760" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-11T16:52:32.997" LastActivityDate="2010-12-12T16:45:25.177" Title="How to become expert in any particular language or framework" Tags="&lt;career&gt;&lt;self-improvement&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="25584" PostTypeId="2" ParentId="25564" CreationDate="2010-12-11T14:53:20.980" Score="7" ViewCount="" Body="&lt;p&gt;When you have mentored many, and most thanked you for it years later after disagreeing with you at first, feel free to append 'Senior' to any title that you may command.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Until then, 'lead' is probably a more descriptive term.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, the term 'senior' denotes a culmination of practical experience AND wisdom when dealing with people and their arbitrary expectations. Take this scenario into consideration:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;16 programmers on a team, each with exactly 1 year more experience than the rest. This means, the 16'th programmer has 16+ years of experience. Eight of the most experienced members are tragically killed when a bus slams into a store. Would the guy with half the experience now be considered a senior developer? I'd hope not, I'd hope the company quickly replaces the voids with people of equal or more caliber than they just lost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hate to bring the term '&lt;a href=&quot;http://en.wikipedia.org/wiki/Journeyman&quot; rel=&quot;nofollow&quot;&gt;journeyman&lt;/a&gt;' into programming, but some of it applies. The term 'senior' isn't something I'd hand to anyone with less than 15 years experience, because it goes way beyond technical knowledge.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-11T15:24:09.783" LastActivityDate="2010-12-11T15:24:09.783" CommentCount="1" />
  <row Id="25585" PostTypeId="2" ParentId="25569" CreationDate="2010-12-11T14:53:52.053" Score="4" ViewCount="" Body="&lt;p&gt;Haskell is certainly used in the industry, but not as commonly as C# or Java, to say the least. So if you just want to learn it to help you get a job, it might be a waste of time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A better reason for learning Haskell is that you will become familiar with functional programming in the process. This will happen at a much faster rate with Haskell than with another functional language like F# or Scala, because the other languages will still allow you to write procedural and OO code. Haskell has a construct (do) that allows you to write what looks like imperative code, but that's just syntactic sugar. The compiler converts that to chained function calls. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another feature of Haskell is the type system. It is statically typed, but you can create your own types and operators easily, and people who are familiar with Haskell can write very expressive types, and use them to make things that shouldn't happen not even compile. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can then apply the techniques learned, where appropriate, for the rest of your career. This is not to say that you'll write Haskell code in C#. Instead you'll have the concepts you learned in your toolbox to use when needed.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-11T14:53:52.053" CommentCount="2" />
  <row Id="25586" PostTypeId="2" ParentId="25569" CreationDate="2010-12-11T14:55:11.770" Score="18" ViewCount="" Body="&lt;p&gt;I'm currently learning Haskell, because I want to write better JavaScript, Groovy, and Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haskell forces you to think functionally, as you simply cannot rely on changes of state in solving problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many modern programming languages allow for functional programming, but most programmers don't take advantage of these features, as they think in the C++/Java imperative/object-oriented paradigms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning new languages will usually be for the purpose of changing the way you think, and Haskell is a good one for thinking functionally.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-12-11T14:55:11.770" CommentCount="5" />
  <row Id="25587" PostTypeId="2" ParentId="25564" CreationDate="2010-12-11T14:57:26.950" Score="0" ViewCount="" Body="&lt;p&gt;When you look back at your previous work and realize what crap it was. And you understand that you've gotten better but there are miles to go, and that learning is forever. &lt;/p&gt;&#xA;" OwnerUserId="7892" LastActivityDate="2010-12-11T14:57:26.950" CommentCount="4" />
  <row Id="25588" PostTypeId="2" ParentId="25583" CreationDate="2010-12-11T14:57:59.477" Score="10" ViewCount="" Body="&lt;p&gt;I would rather advise to become an expert in some problem domain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Languages and frameworks are just tools. In practice you almost never need expert knowledge of them, but if you lack some domain knowledge it has a strong impact on your work.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-11T16:53:14.650" LastActivityDate="2010-12-11T16:53:14.650" CommentCount="2" />
  <row Id="25589" PostTypeId="2" ParentId="1360" CreationDate="2010-12-11T14:59:01.100" Score="0" ViewCount="" Body="&lt;p&gt;Passion :&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i love my working domain so i can focus and deliver Product,without Passion ,i dont     get involved in code development&lt;/p&gt;&#xA;" OwnerUserId="7452" LastActivityDate="2010-12-11T14:59:01.100" />
  <row Id="25590" PostTypeId="2" ParentId="23965" CreationDate="2010-12-11T15:01:11.753" Score="1" ViewCount="" Body="&lt;p&gt;I suspect &lt;a href=&quot;http://www.gnu.org/software/m4/&quot; rel=&quot;nofollow&quot;&gt;M4&lt;/a&gt; might be soon counting it's days, at least for build configuration. Projects like &lt;a href=&quot;http://www.cmake.org/&quot; rel=&quot;nofollow&quot;&gt;CMake&lt;/a&gt; and &lt;a href=&quot;http://www.scons.org/&quot; rel=&quot;nofollow&quot;&gt;SCons&lt;/a&gt; are overtaking it, and people who have never been exposed to a language that strongly resembles &lt;a href=&quot;http://en.wikipedia.org/wiki/Lisp_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;LISP&lt;/a&gt; are more and more intimidated by M4 considering that there are alternatives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note, that might not obsolete M4, It is a useful tool in many areas.. but I predict that we'll see it fall out of favor in the next 10 years when it comes to build configuration.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-11T15:13:09.077" LastActivityDate="2010-12-11T15:13:09.077" />
  <row Id="25591" PostTypeId="2" ParentId="23965" CreationDate="2010-12-11T15:26:31.467" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;MMIX&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(see &lt;a href=&quot;http://en.wikipedia.org/wiki/MMIX&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/MMIX&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since &lt;a href=&quot;http://en.wikipedia.org/wiki/Donald_Knuth&quot; rel=&quot;nofollow&quot;&gt;Donald Knuth&lt;/a&gt; is the only one who uses this language, and he has already reached the age of 72, I think it is not unlikely MMIX will &quot;die&quot; in the near future. &lt;/p&gt;&#xA;" OwnerUserId="9113" LastActivityDate="2010-12-11T15:26:31.467" />
  <row Id="25592" PostTypeId="2" ParentId="25432" CreationDate="2010-12-11T15:30:37.357" Score="1" ViewCount="" Body="&lt;p&gt;You can rarely impress people by trying to impress them.  And as long as you try to impress people, and they don't seem impressed, your frustration will grow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just do your job in a way that makes you proud of yourself. Don't worry about what anyone thinks. The only person you can make happy is you.&lt;/p&gt;&#xA;" OwnerUserId="778" LastActivityDate="2010-12-11T15:30:37.357" />
  <row Id="25593" PostTypeId="2" ParentId="25486" CreationDate="2010-12-11T15:46:37.287" Score="1" ViewCount="" Body="&lt;p&gt;It means that details that usually do not carry any semantic (that is, any meaning) are used by the framework to generate a default configuration. It is also known as &quot;convention over configuration&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, in Ruby on Rails, if you use a class named Customer, the generated database table will automatically be named &quot;customers&quot;.&lt;/p&gt;&#xA;" OwnerUserId="8307" LastActivityDate="2010-12-11T15:46:37.287" />
  <row Id="25594" PostTypeId="1" AcceptedAnswerId="25634" CreationDate="2010-12-11T16:04:16.067" Score="8" ViewCount="951" Body="&lt;p&gt;Everybody has their own coding skills and practices. I would like to know what practices other people follow.  Please describe yours.&lt;/p&gt;&#xA;" OwnerUserId="7452" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-11T17:29:43.560" LastActivityDate="2011-01-18T19:24:19.047" Title="what are best coding practices you follow for your work?" Tags="&lt;programming-practices&gt;" AnswerCount="12" CommentCount="8" FavoriteCount="7" />
  <row Id="25595" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T16:07:22.023" Score="4" ViewCount="" Body="&lt;p&gt;&quot;Live as if you were to die tomorrow. Learn as if you were to live forever.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;-Mahatma Gandhi&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="9359" LastActivityDate="2010-12-11T16:07:22.023" CommunityOwnedDate="2010-12-11T17:29:26.353" CommentCount="1" />
  <row Id="25596" PostTypeId="1" AcceptedAnswerId="25667" CreationDate="2010-12-11T16:11:09.147" Score="2" ViewCount="105" Body="&lt;p&gt;I am designing a suite of web applications that have the same base functionality. That is, they all will know how to create and operate on widgets. The differences will be in their target audience and how a user will interact with a widget. Essentially, if these applications were developed independently, there would be &lt;em&gt;a lot&lt;/em&gt; of duplicated effort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To simplify this I have thought of two solutions. I would like all of your feedback on the pros and cons for each solution, and which you would prefer.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&quot;Platform&quot; -- The idea is that there is an independent service layer, a la web services. It wouldn't be a web service, but simply a back-end for all the applications. The platform would talk to the applications via messaging or object serialization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would want to write the platform with Java, but the intention would be that the applications could be written with any web framework such as Rails, Django, Flex, or just something in Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The platform would abstract the database, so all interaction with the back-end would be done via the platform. One potential problem with this is that updating the platform will entail taking down all the applications. But at least all the applications will be consistent in regards with the back-end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like how this is cut horizontally, and that the application really only has to focus on the front-end, rather then worrying about how to organize the back-end.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&quot;Modules&quot; -- The idea is that I just write everything with Java and develop modules which would live in their own jars. Each module would represent a Guice module and each application would just include the modules they want, and create their own Injectors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This approach would make each application completely independent from each other, aside of sharing a common database. So, theoretically, it would be much easier to deploy an application in a different environment with out worrying about the platform. I would be stuck in one language environment, Java. Although, JRuby and Jython would be available. So maybe that isn't much of a concern.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I foresee it being easier to customize an application with out effecting the platform. The one con is that if I update a module, I would want to redeploy each application using that module. This would be easy with continuous integration, though.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Thank you for your time.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;In regards to Gary's answer, I've decided to take a hybrid approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm going to develop a platform, which will be the access point for the web applications to data and services. I will then modularize the platform, but all the modules will remain under a single repository with a parent POM. While I could just keep them all in a single JAR, I would like the classpath separation for development purposes, to make me/others think before requiring a module to depend on another.&lt;/p&gt;&#xA;" OwnerUserId="7426" LastEditorUserId="7426" LastEditorDisplayName="" LastEditDate="2010-12-14T22:39:29.910" LastActivityDate="2010-12-14T22:39:29.910" Title="Should I use a single platform for common services or modularize them?" Tags="&lt;java&gt;&lt;web-applications&gt;&lt;enterprise-architecture&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="25597" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T16:20:19.747" Score="0" ViewCount="" Body="&lt;p&gt;Two programming projects:&#xA;Project 1: Write a program that will output a chemical formula for a universal solvent. Caution!&#xA;complete Project 2 before creating solvent.&#xA;Project 2: Write a program that will that will output a chemical formula for a material with which to consruct a container that will hold the output of Project 1. Create container.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Ed3&lt;/p&gt;&#xA;" OwnerUserId="9676" LastActivityDate="2010-12-11T16:20:19.747" CommunityOwnedDate="2010-12-11T17:29:26.353" />
  <row Id="25598" PostTypeId="2" ParentId="25509" CreationDate="2010-12-11T16:22:18.237" Score="4" ViewCount="" Body="&lt;p&gt;About one year ago, as I became more and more frustrated about the future of my startup's products if I continued to use Java, I decided to give Scala a try. I was already programming in JavaScript and Python at the time, Ruby was also a good alternative, but I was looking for a statically typed language, preferably one that could run on the JVM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really tried to like Scala, I really did, but I found it's code utterly ugly and hard to understand. I dramatically wondered that if Scala was our best answer to Java, then I was surely screwed and sentenced to continue working with a language I didn't liked after all...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fortunately, not too long afterwards, I found out about &lt;a href=&quot;http://fantom.org/&quot; rel=&quot;nofollow&quot;&gt;Fantom&lt;/a&gt;. Oh man, did I loved it! To me, it was like american's splendor answer to german bureaucracy! It matched the requirements I was looking for in Scala, but much more &lt;a href=&quot;http://fantom.org/doc/docIntro/Tour.html&quot; rel=&quot;nofollow&quot;&gt;elegantly&lt;/a&gt;. It had &lt;a href=&quot;http://code.google.com/p/vim/source/browse/runtime/syntax/fan.vim?r=bfade53bcafb7b6d297f23ce3ba9e6a72dcb7949&quot; rel=&quot;nofollow&quot;&gt;Vim&lt;/a&gt;, &lt;a href=&quot;http://www.xored.com/fantom/fantom-installation&quot; rel=&quot;nofollow&quot;&gt;Eclipse&lt;/a&gt; and &lt;a href=&quot;http://fantomide.colar.net/home&quot; rel=&quot;nofollow&quot;&gt;Netbeans&lt;/a&gt; integration, a nice &lt;a href=&quot;http://www.talesframework.org/&quot; rel=&quot;nofollow&quot;&gt;web framework&lt;/a&gt;, mature &lt;a href=&quot;http://skyfoundry.com/skyspark#visualize&quot; rel=&quot;nofollow&quot;&gt;products&lt;/a&gt; running with it, a small but incredibly helpful &lt;a href=&quot;http://webchat.freenode.net/?channels=#fantom&quot; rel=&quot;nofollow&quot;&gt;community&lt;/a&gt;... Dynamic and Static typing! I rejoiced! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I could continue but this post is meant to be about Scala, not Fantom, so I stop here. My preference is &lt;a href=&quot;http://langref.org/fantom/solved&quot; rel=&quot;nofollow&quot;&gt;clear&lt;/a&gt;, nevertheless there's this &lt;a href=&quot;http://fantom.org/sidewalk/topic/675&quot; rel=&quot;nofollow&quot;&gt;post&lt;/a&gt; comparing the two. I never could understand why Fantom gets so little attention when compared to Scala. But apparently I'm not the only one, if you listen to this podcast [&lt;a href=&quot;http://www.basementcoders.com/media/basementcoders.com_ep24.mp3&quot; rel=&quot;nofollow&quot;&gt;mp3&lt;/a&gt;] until the end.)&lt;/p&gt;&#xA;" OwnerUserId="9672" LastEditorUserId="9672" LastEditorDisplayName="" LastEditDate="2010-12-18T13:40:01.773" LastActivityDate="2010-12-18T13:40:01.773" />
  <row Id="25599" PostTypeId="2" ParentId="25509" CreationDate="2010-12-11T16:27:53.727" Score="5" ViewCount="" Body="&lt;p&gt;When I initially dabbled with Scala 2 years ago, it looked alien and intimidating to me. At some point I discovered that the core language is actually much simpler than Java, but its syntax and semantics are so flexible that you can create new language constructs like it, even without a macro feature. I have since completely switched to Scala for all my Java projects, because it lets me write without too much boilerplate code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like Clojure, but there are situations, where the platform needs you to compile to static bytecode (Android, applets, ...) and while you can do that, in Scala, it's just there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While Scala lets you solve many problems in a functional way, I often find problems where using classes feels more natural. That makes things a bit more complex, but nowhere near the complexities and pains of C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest takeaway for me when I really started learning the language was that I could program just I did in Java, just without the noise (a little bit like when you start Groovy), but eventually you want to try to dive deeper into the power of the language - it grows with you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About the IDE question: After using Emacs for everything, all my IDE issues went away :-)&lt;/p&gt;&#xA;" OwnerUserId="1562" LastEditorUserId="1562" LastEditorDisplayName="" LastEditDate="2010-12-11T17:03:32.243" LastActivityDate="2010-12-11T17:03:32.243" />
  <row Id="25600" PostTypeId="1" AcceptedAnswerId="29784" CreationDate="2010-12-11T16:39:19.367" Score="11" ViewCount="684" Body="&lt;p&gt;I'm really hoping somebody with more experience can edit the question as per my examples of answers:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;using version control&lt;/li&gt;&#xA;&lt;li&gt;test driven development&lt;/li&gt;&#xA;&lt;li&gt;debugging code (xdebug for php)&lt;/li&gt;&#xA;&lt;li&gt;use of UML diagrams&lt;/li&gt;&#xA;&lt;li&gt;use of OOP for maintainable, reusable code&lt;/li&gt;&#xA;&lt;li&gt;use of frameworks (like Zend Framework for php) for rapid application development&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Anything else or an elaboration of what I mentioned above?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, I'm in the middle of forming a team of developers (I'm a developer myself) and I'd like some advice on how professional programmers/designers etc should work together and what standards/paradigms they should use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if anybody has any books or links on the subject I'd welcome that!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did find this which I guess satisfies what I'm looking for, or at least part thereof:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/websphere/library/techarticles/0306_perks/perks2.html&quot; rel=&quot;nofollow&quot;&gt;http://www.ibm.com/developerworks/websphere/library/techarticles/0306_perks/perks2.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9682" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-01-23T06:01:24.647" LastActivityDate="2011-01-23T06:01:24.647" Title="What would you consider best practice workflow tools for web application (PHP) development?" Tags="&lt;web-development&gt;&lt;best-practices&gt;&lt;php&gt;&lt;tools&gt;" AnswerCount="8" FavoriteCount="2" />
  <row Id="25601" PostTypeId="1" CreationDate="2010-12-11T16:40:05.897" Score="0" ViewCount="100" Body="&lt;p&gt;I am doing mca and prepraning for oracle can you tell me: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the best combination of skills?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the most common set of skills that an Oracle DBA needs?&lt;/p&gt;&#xA;" OwnerUserId="9380" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-11T16:45:31.663" LastActivityDate="2010-12-11T16:45:31.663" ClosedDate="2010-12-12T01:27:08.933" Title="what skills are needed for an Oracle DBA" Tags="&lt;oracle&gt;" CommentCount="3" />
  <row Id="25602" PostTypeId="2" ParentId="25564" CreationDate="2010-12-11T16:40:26.660" Score="1" ViewCount="" Body="&lt;p&gt;When other call you senior developer. There is no one definition. Its changes from company to company. In a well settled company freshers are given less work, and their learning curve is slow. In the startup company a fresher can take many responsibilities and learns many things in less time. I have experienced this first hand. Unfortunately it's only the other experienced people which can calculate the depth of your knowledge, by looking at the quality of your code or work. And I am sure everyone gets their title when the their time is up.&lt;br&gt;&#xA;And if you don't you change the company. :-)&lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-11T16:40:26.660" />
  <row Id="25603" PostTypeId="2" ParentId="1360" CreationDate="2010-12-11T16:51:14.387" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.lessonsoffailure.com/developers/autonomy-mastery-purpose/&quot; rel=&quot;nofollow&quot;&gt;Top Three Motivators For Developers&lt;/a&gt; has the following answer:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;It focuses on three important ideas,&#xA;  which developers already love and&#xA;  embrace:&lt;/p&gt;&#xA;  &#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;Autonomy&lt;/li&gt;&#xA;  &lt;li&gt;Mastery&lt;/li&gt;&#xA;  &lt;li&gt;Purpose&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I highly recommend watching &lt;a href=&quot;http://www.ted.com/talks/dan_pink_on_motivation.html&quot; rel=&quot;nofollow&quot;&gt;Dan Pink's TED talk about motivation&lt;/a&gt;, as I totally agree with the point of it.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-11T16:51:14.387" />
  <row Id="25604" PostTypeId="2" ParentId="25583" CreationDate="2010-12-11T17:06:18.283" Score="3" ViewCount="" Body="&lt;p&gt;@Developer Art probably has it right, but...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fundamentally you need to do two things:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Study - find a reference book or two and work your way through them undertaking all the exercies. Find the blogs for those who work at the cutting edge of your chosen tools (for example &lt;a href=&quot;http://haacked.com&quot; rel=&quot;nofollow&quot;&gt;Phil Haack&lt;/a&gt; is one you should look at for ASP.NET MVC).&lt;/li&gt;&#xA;&lt;li&gt;Apply - study is fine, but it won't make you an expert, to be come an expert you have to apply what you've learnt - to actually do it. Take the things you seen in blogs and apply them where appropriate. Since you're unlikely to be able to apply all of what you learn at work you may need to work your own projects. And of course contributing to Stackoverflow can help...&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Of the two, actually working with your tools is the key &lt;strong&gt;doing&lt;/strong&gt; rather than reading - but you're probably not going to get depth without actively going to find out what you don't know and then filling in the gaps (there is &lt;em&gt;still&lt;/em&gt; a quite staggering amount I don't know and I've been working with C# and .NET for 8 years...)&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-12-11T17:06:18.283" />
  <row Id="25605" PostTypeId="2" ParentId="880" CreationDate="2010-12-11T17:07:54.477" Score="0" ViewCount="" Body="&lt;p&gt;For portable computing, I'd go with a ThinkPad in a heartbeat.  I have an R61 and love it.  I'll probably go SSD for my next one, but ThinkPads are well-built machines that are &lt;em&gt;field serviceable&lt;/em&gt;.  They'll even give you the manual to take the thing apart.  That is worth a lot in my book, and certainly helped matters when I spilled coffee on my keyboard.&lt;/p&gt;&#xA;" OwnerUserId="773" LastActivityDate="2010-12-11T17:07:54.477" CommunityOwnedDate="2011-02-06T19:45:08.167" />
  <row Id="25606" PostTypeId="2" ParentId="25583" CreationDate="2010-12-11T17:13:04.447" Score="2" ViewCount="" Body="&lt;p&gt;Practice. Then practice some more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coincidentally this method can also be used to learn the piano, how to shoot free throws, and other spoken languages.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-12-11T17:13:04.447" />
  <row Id="25607" PostTypeId="2" ParentId="1360" CreationDate="2010-12-11T17:17:38.453" Score="0" ViewCount="" Body="&lt;p&gt;A few people have hinted at this, but I'd like to chime in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;* Test my convictions *&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Task me with rescuing a jabberwocky from the clutches of a snork that is heavily guarded by a million gosma breathing cebitubes. And then set a time limit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have no idea what the following are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;jabberwocky&lt;/li&gt;&#xA;&lt;li&gt;snork&lt;/li&gt;&#xA;&lt;li&gt;gosma&lt;/li&gt;&#xA;&lt;li&gt;cebitubes&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;... but my experience has taught me that they can't be too difficult to master. As long as the rules of the game can be transliterated into a language that I can speak, I welcome such a challenge. If not, well, learning never ends :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It isn't about the money, at least for me. Make me go buy a notebook and fill up 100 pages prior to writing a line of code, and I'm your's forever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a bit different from &quot;don't bore me&quot;, if perhaps you knew what a jabberwocky, snork, gosma and cebitube actually were :)&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-11T17:17:38.453" />
  <row Id="25608" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T17:24:13.863" Score="1" ViewCount="" Body="&lt;p&gt;&quot;A good plan, violently executed now, is better than a perfect plan next week.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;- Gen. George S. Patton&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-11T17:24:13.863" CommunityOwnedDate="2010-12-11T17:29:26.353" CommentCount="2" />
  <row Id="25609" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T17:29:26.353" Score="1" ViewCount="" Body="&lt;p&gt;My Personal favourites:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Always remember that striving and struggle precede success, even in the dictionary&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;If opportunity doesn't knock, build a door&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Inspiration has no schedule&quot;. (I use this a lot!!)&lt;/p&gt;&#xA;" OwnerUserId="1293" LastActivityDate="2010-12-11T17:29:26.353" CommunityOwnedDate="2010-12-11T17:29:26.353" />
  <row Id="25610" PostTypeId="2" ParentId="25475" CreationDate="2010-12-11T17:31:15.570" Score="4" ViewCount="" Body="&lt;p&gt;So you are proposing that we reduce code readability in exchange for saving some typing? Perhaps you might want to consider how much time you spend typing code and how much you spend reading/maintaining it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are steadfast that we need concise unreadable code, I'd suggest Perl.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-12-11T17:31:15.570" />
  <row Id="25611" PostTypeId="2" ParentId="25594" CreationDate="2010-12-11T17:40:04.223" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;CamelCase&lt;/li&gt;&#xA;&lt;li&gt;meaningful names&lt;/li&gt;&#xA;&lt;li&gt;XP/TDD/BDD&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-11T17:40:04.223" CommentCount="1" />
  <row Id="25612" PostTypeId="2" ParentId="25569" CreationDate="2010-12-11T17:52:40.793" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It will help improve your general programming skills&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I dabbled with Haskell, since then I've played with other functional languages such as F#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And it is absolutely true that being exposed to a functional way of thinking has a positive effective on you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Case in point:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After dabbling in functional style of coding I've notice that it's improved my general style of coding. I think of problems and break them up into distinct functions. I can then compose them up like Lego to solve bigger problems. Its easier to follow, its far far less verbose than how i use to code.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-11T17:52:40.793" />
  <row Id="25613" PostTypeId="2" ParentId="25416" CreationDate="2010-12-11T18:14:01.853" Score="0" ViewCount="" Body="&lt;p&gt;I agree that QA should not try to guess at the nature of the relationship between bugs.  If they find 5 bugs, open 5 bugs.  If they prove to have a common underlying cause and fix, they can be merged, or one can be made the canonical reference and the others closed, whatever.&lt;/p&gt;&#xA;" OwnerUserId="7160" LastActivityDate="2010-12-11T18:14:01.853" />
  <row Id="25614" PostTypeId="2" ParentId="25416" CreationDate="2010-12-11T18:14:05.207" Score="0" ViewCount="" Body="&lt;p&gt;In general, I agree with @Steven Lowe, but on the other hand I don't want to get 10 bug reports, one for each thing that's spelled wrong. I think that the right approach is for QA to use their heads - if they think it's likely that the things are all one big bug, they should be allowed to put them into one bug report. When the developer gets them, and finds out that some of them are one bug, and some are another, the developer can then issue a new bug report on the pieces he doesn't want to fix right now, and update the old bug report to just cover the bits that are fixed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll have to go back and forth a bit with QA on this (because they really don't know for sure when things are related and when they aren't), but I think you'll get the best result (minimum administrative overhead) by having QA use their best judgement, and backfilling in development as needed.&lt;/p&gt;&#xA;" OwnerUserId="6294" LastActivityDate="2010-12-11T18:14:05.207" CommentCount="2" />
  <row Id="25615" PostTypeId="2" ParentId="1360" CreationDate="2010-12-11T18:17:44.563" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Because its fun!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Programming is a mental playground,: with one difference, my thoughts effect the real world..&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-11T18:17:44.563" />
  <row Id="25616" PostTypeId="2" ParentId="25487" CreationDate="2010-12-11T18:20:03.063" Score="-1" ViewCount="" Body="&lt;p&gt;I think there are 10 type of people in the world. Those who can program, and those who can't. :)&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-11T18:20:03.063" CommentCount="3" />
  <row Id="25617" PostTypeId="1" CreationDate="2010-12-11T18:20:57.603" Score="9" ViewCount="637" Body="&lt;p&gt;On the Ad. section of stackoverflow, I saw a poster saying, &quot;SCRUM got u down? Get off the farm&quot;. &lt;a href=&quot;http://engine.adzerk.net/redirect/0/2567/2444/8277/7d980fcf3efe4b90a1c1ecd0969e53c8/45&quot; rel=&quot;nofollow&quot;&gt;Here&lt;/a&gt; is the Ad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I clicked the link, it brought up a page with title, &quot;Upgrade your career today&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This lead me to conclude that, SCRUM is a bad thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this really the case; if so, why is SCRUM a bad thing?&lt;/p&gt;&#xA;" OwnerUserId="1560" LastActivityDate="2010-12-15T21:31:36.003" ClosedDate="2010-12-14T20:25:30.603" Title="Is Scrum a bad thing?" Tags="&lt;project-management&gt;&lt;career-advice&gt;&lt;scrum&gt;" AnswerCount="8" CommentCount="6" />
  <row Id="25618" PostTypeId="2" ParentId="25617" CreationDate="2010-12-11T18:24:08.530" Score="7" ViewCount="" Body="&lt;p&gt;Scrum on its own isn't a bad thing.  However, like so many things in the world it is subject to interpretation and that is where problems can arise which can make some people dislike Scrum.  At least that is my opinion on it as I have seen Scrum be quite successful on some projects but can also imagine how it could be a rather bad idea in some cases.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-11T18:24:08.530" CommentCount="3" />
  <row Id="25619" PostTypeId="2" ParentId="25482" CreationDate="2010-12-11T18:25:17.070" Score="1" ViewCount="" Body="&lt;p&gt;A statistics degree will be of very little help in finding a general purpose programming job. However, it will be a great help in finding jobs as a statistical programmer. The demand for statistical programmers is not insignificant, but it is concentrated in major cities, particularly those that are major medical research centers. Are you willing to relocate? You mention wanting to do programming in the financial industry. A statistics MS with courses and/or a thesis in financial engineering and stochastic modeling might get your foot in the door with a financial firm. Again though, most of those jobs are going to be in a handful of large cities. Rather than working on a project of your own you should find a professor who has a research project that needs a programmer. That way you'll have code you can show people, and a personal reference.&lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-12-11T18:25:17.070" />
  <row Id="25620" PostTypeId="2" ParentId="25617" CreationDate="2010-12-11T18:49:36.160" Score="2" ViewCount="" Body="&lt;p&gt;Making any assumption on software engineering based on what you see in ads is not smart.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scrum, OOP, MVC, for the marketing people these are just labels to make you buy something. From time to time some labels get a lot of momentum; then the marketing people twist and screw everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is not a bad thing, it is a tool on your belt. Learn everything about your tools and you will be able to pick the right one for the job.&lt;/p&gt;&#xA;" OwnerUserId="9707" LastEditorUserId="9707" LastEditorDisplayName="" LastEditDate="2010-12-15T21:31:36.003" LastActivityDate="2010-12-15T21:31:36.003" CommentCount="3" />
  <row Id="25621" PostTypeId="2" ParentId="25564" CreationDate="2010-12-11T18:50:01.323" Score="1" ViewCount="" Body="&lt;p&gt;It's a title like many other titles. These &quot;teens&quot; on here might even have a PhD, that doesn't necessarily mean anything. But it will clearly get them a higher salary. The same applies to the Senior Developer or Senior Architect. Or the Senior Project Manager, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Considering that fact, it is better to be called &quot;Our Senior Developer&quot; by your workmates, rather than adding that title to your own card after whatever many years of experience - which I did when I had the opportunity. :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that, I'd say 10 years is a minimum (including college or other education).&lt;/p&gt;&#xA;" OwnerUserId="9411" LastActivityDate="2010-12-11T18:50:01.323" CommentCount="1" />
  <row Id="25622" PostTypeId="1" CreationDate="2010-12-11T19:01:54.193" Score="0" ViewCount="164" Body="&lt;p&gt;What are the points you may consider to target a next position/career as a software developer?&lt;br&gt;&#xA;I've been in this field for 4 years (and still enjoy it, but i continuously think about my next step)&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please advice..&lt;/p&gt;&#xA;" OwnerUserId="9701" LastActivityDate="2010-12-11T19:01:54.193" ClosedDate="2010-12-12T01:25:49.153" Title="What's the next step as software developer?" Tags="&lt;career&gt;&lt;software-development&gt;&lt;planning&gt;" CommentCount="3" />
  <row Id="25623" PostTypeId="2" ParentId="25482" CreationDate="2010-12-11T19:04:30.920" Score="0" ViewCount="" Body="&lt;p&gt;There is a difference between a job as statistician and a job as developer. &lt;strong&gt;A developer doesn’t develop new advanced statistical algorithm, he/she implements them&lt;/strong&gt;. You would have an advantage if you have some degree in statistics which may help you to understand what you are developing. But I don’t think that the company would ask you about better statistic algorithm. They go to someone with a PhD in that field.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the answer is both &lt;strong&gt;YES&lt;/strong&gt; and &lt;strong&gt;NO&lt;/strong&gt;. It all depends what you expect to gain from your degree.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-11T19:04:30.920" CommentCount="4" />
  <row Id="25624" PostTypeId="2" ParentId="25594" CreationDate="2010-12-11T19:05:12.457" Score="11" ViewCount="" Body="&lt;p&gt;The Extreme Programming coding practices. Mostly&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.extremeprogramming.org/rules/simple.html&quot; rel=&quot;nofollow&quot;&gt;Simplicity is the key&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.extremeprogramming.org/rules/refactor.html&quot; rel=&quot;nofollow&quot;&gt;Refactor mercilessly&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.extremeprogramming.org/rules/early.html&quot; rel=&quot;nofollow&quot;&gt;Never add functionality early&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9411" LastEditorUserId="9411" LastEditorDisplayName="" LastEditDate="2010-12-12T09:49:40.547" LastActivityDate="2010-12-12T09:49:40.547" CommentCount="1" />
  <row Id="25625" PostTypeId="2" ParentId="1360" CreationDate="2010-12-11T19:05:29.353" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A good leader is my top priority&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="9701" LastActivityDate="2010-12-11T19:05:29.353" />
  <row Id="25626" PostTypeId="2" ParentId="25594" CreationDate="2010-12-11T19:06:58.860" Score="1" ViewCount="" Body="&lt;p&gt;I follow what exists in whatever I'm working on. If something new, my style is pretty much the same as the &lt;a href=&quot;http://www.kernel.org/doc/Documentation/CodingStyle&quot; rel=&quot;nofollow&quot;&gt;Linux kernel&lt;/a&gt;, provided that the people I'm working with support that decision.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, I'm quite comfortable following whatever exists. Whatever annoyance that may bring, failing to pay bills is worse (they war dial you).&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-11T19:12:30.117" LastActivityDate="2010-12-11T19:12:30.117" />
  <row Id="25627" PostTypeId="2" ParentId="25617" CreationDate="2010-12-11T19:12:14.953" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It's all about to adapt the methodology to the realty.&lt;/strong&gt; Many Scrum Master do Scrum by the book and it is then it gets bad. It should be a tool that can be &lt;strong&gt;adapted&lt;/strong&gt; to the reality and &lt;strong&gt;not vice versa&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-11T19:12:14.953" CommentCount="2" />
  <row Id="25628" PostTypeId="2" ParentId="25564" CreationDate="2010-12-11T19:12:50.780" Score="0" ViewCount="" Body="&lt;p&gt;Sometimes I look at other professions and wonder why software programming doesn't standardize itself. There would be no use for this question because there would be an accepted standard to obtaining certain levels. Then I come to the realization, &quot;Who died and left them king?&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We all know that experience, education, certifications, and titles are for everyone else to get a very basic glimpse of a programmers ability. You either know what you're doing or you don't. You can either smell your own kind or you can't.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-11T19:12:50.780" />
  <row Id="25629" PostTypeId="2" ParentId="25552" CreationDate="2010-12-11T19:19:59.287" Score="2" ViewCount="" Body="&lt;p&gt;&lt;code&gt;&amp;lt;? extends T&amp;gt;&lt;/code&gt; vs &lt;code&gt;&amp;lt;? super T&amp;gt;&lt;/code&gt;. I'll never get this into my head.&lt;/p&gt;&#xA;" OwnerUserId="9411" LastActivityDate="2010-12-11T19:19:59.287" CommentCount="1" />
  <row Id="25630" PostTypeId="1" CreationDate="2010-12-11T19:24:29.693" Score="0" ViewCount="159" Body="&lt;p&gt;Hi&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My boyfriend has relative good knowledge with c++ , qt and windows api. He was working with these technologies maybe a year or year a half and have some projects behind him. But almost all jobs positions now days are in php, flash, c# and java, at least in my country.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hi tried to learn php. He was reading from book maybe a month, only two hours a day. The thing is he is not very motivated because the whole situation , sitting home around almost two years without job and just reading , seems pointless for him . &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, he is just sitting and thinking that maybe programming is not the right  job for him at all. But, the thing is he doesn't have courage to start looking another non programming job, because he does not want to quit too. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe that he can learn php if he start working hard enough ( maybe 10 hours a day ), in the next three months, not completely but  at least good enough to find some job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please can someone tell me, how much time is needed to learn php ? and maybe what to say to motivate him? because I truly believe that he can do it.&lt;/p&gt;&#xA;" OwnerUserId="9716" LastActivityDate="2010-12-11T19:36:31.780" Title="motivation for programming and learning php" Tags="&lt;learning&gt;&lt;php&gt;&lt;motivation&gt;" AnswerCount="3" />
  <row Id="25631" PostTypeId="2" ParentId="25630" CreationDate="2010-12-11T19:34:42.450" Score="1" ViewCount="" Body="&lt;p&gt;If he has experience in c++, and is competent in that language, he will find php easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thing is, php usually means web development so he will need working knowledge of html, css and javascript. All in all, could take a couple of years at least to get proficient in all of these languages AND have enough real world experience to get a job doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A better option might be to go the freelancer route. He can get immediate work for his c++ knowledge and can move into other areas like php if need be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning php 10 hours a day for 3 months will NOT put him in a position to get a decent job doing php. Senior php developers have over 5 years real world experience, with computer science degrees and such.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="9682" LastActivityDate="2010-12-11T19:34:42.450" />
  <row Id="25632" PostTypeId="2" ParentId="25630" CreationDate="2010-12-11T19:35:38.897" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Get him to build you a fun web application in one of the said technologies.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try think about something that would involve database use.&#xA;He will learn everything he needs.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-11T19:35:38.897" />
  <row Id="25633" PostTypeId="2" ParentId="25630" CreationDate="2010-12-11T19:36:31.780" Score="0" ViewCount="" Body="&lt;p&gt;It's generally not enough to know it, you need to have experience working with it. Like a writer needs experience to write the perfect story, a programmer needs experience to write the (impossibly) perfect program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I suggest he uses his C++ skills to participate in some medium/high profile open source projects (fixing certain reported bugs shouldn't be too difficult). When he has some of these on his resume, and can talk about problems faced and solved, he will be more attractive to those that hire.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And reading is generally a waste of time unless it's put to practice.&lt;/p&gt;&#xA;" OwnerUserId="3856" LastActivityDate="2010-12-11T19:36:31.780" />
  <row Id="25634" PostTypeId="2" ParentId="25594" CreationDate="2010-12-11T19:45:15.817" Score="13" ViewCount="" Body="&lt;p&gt;the first three that come to mind are: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;emphasis on descriptive naming conventions for self documenting code verses extensive comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;frequent code reviews and peer programming sessions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;white space is your friend!&lt;/p&gt;&#xA;" OwnerUserId="9719" LastEditorUserId="9719" LastEditorDisplayName="" LastEditDate="2011-01-18T19:24:19.047" LastActivityDate="2011-01-18T19:24:19.047" CommentCount="6" />
  <row Id="25635" PostTypeId="1" AcceptedAnswerId="25649" CreationDate="2010-12-11T19:49:46.123" Score="4" ViewCount="328" Body="&lt;p&gt;Beside being nice and having good overall social skills, &lt;strong&gt;how should one behave towards new colleagues before knowing them?&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: &lt;strong&gt;Is there a strategy?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example should one be:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Quiet and feel the mentality&lt;/li&gt;&#xA;&lt;li&gt;Show all your skills&lt;/li&gt;&#xA;&lt;li&gt;Just be nice&lt;/li&gt;&#xA;&lt;li&gt;Be very social and happy&lt;/li&gt;&#xA;&lt;li&gt;Work like a maniac&lt;/li&gt;&#xA;&lt;li&gt;Say yes to all work related things&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-12-11T21:35:47.420" LastActivityDate="2010-12-12T03:53:25.067" ClosedDate="2010-12-12T13:57:47.710" Title="Starting a new job, how should one act towards new colleagues?" Tags="&lt;jobs&gt;&lt;new-job&gt;&lt;colleagues&gt;" AnswerCount="4" CommentCount="9" FavoriteCount="1" />
  <row Id="25636" PostTypeId="1" AcceptedAnswerId="25661" CreationDate="2010-12-11T19:50:50.763" Score="1" ViewCount="91" Body="&lt;p&gt;The &quot;classic&quot; development artifacts are requirements documents and design specifications. But the development process includes many other non-source code artifacts: bug tracking databases, emails, wikis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What kinds of non-source code artifacts do you think are most vital to your development process? And how do you keep these documents up to date?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, are there any artifacts that you don't necessarily find useful, but have to use because it's required by the contractor or management?&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-12T09:38:24.210" Title="What kinds of non-source artifacts are vital to your development process?" Tags="&lt;development-process&gt;&lt;software-engineering&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="25637" PostTypeId="1" CreationDate="2010-12-11T19:58:43.763" Score="3" ViewCount="213" Body="&lt;p&gt;Hello,&#xA;I have just left my college after doing graduation in computer engineering,during my college life I tried to do some freelancing in local market.I succeeded in the last year and earned some small amounts based on joomla,wordpress and visual basic based job.I had some small projects on php,mysql also.&#xA;After finishing my undergrad life,I sat for an written test for post of python programmer and luckily I got the job and is working there(Its a small software firm do most of the  task in python).Day by day I have gained some experience with core python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Meanwhile an USA based web service firm called me for the interview and after finishing three steps(oral+mini coding project+final oral)they selected me(i was wondered!).And I am going to join their with in few days.There I have to work in python(based on Django framework,I know only basic of this framework).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My problem is when I started to work with python simultaneously I worked in Odesk as a wordpress,joomla,drupal,php developer.&#xA;Now a days I am feeling that I am getting &quot;Jack of all trades master of none&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My current situation is i am familiar with several popular web technologies but not an expert.I want to make myself skilled.&#xA;How should I organize myself to be a skilled web programmer?&lt;/p&gt;&#xA;" OwnerUserId="9384" LastActivityDate="2011-02-27T14:29:19.970" Title="How should I make progress further as a programmer?" Tags="&lt;best-practices&gt;&lt;skills&gt;" AnswerCount="6" CommentCount="2" />
  <row Id="25638" PostTypeId="2" ParentId="25636" CreationDate="2010-12-11T19:59:18.767" Score="1" ViewCount="" Body="&lt;h2&gt;Use Case&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Use Case is most vital for development process.&#xA;For each new use case we simply update them and relate them to the case number.&#xA;At the backend there is of course a versioning tool.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-12-12T09:27:59.350" LastActivityDate="2010-12-12T09:27:59.350" />
  <row Id="25639" PostTypeId="2" ParentId="25637" CreationDate="2010-12-11T20:07:46.087" Score="0" ViewCount="" Body="&lt;p&gt;In My opinion you should focus on one technology first for atleast couple of years gain some grip on it then if you want to learn a new technology go for it by this you will explore new things and you expand your horizon and this will help you when you are thinking of any solution or developing a new project&lt;/p&gt;&#xA;" OwnerUserId="8760" LastActivityDate="2010-12-11T20:07:46.087" />
  <row Id="25640" PostTypeId="2" ParentId="25509" CreationDate="2010-12-11T20:15:45.940" Score="3" ViewCount="" Body="&lt;p&gt;I really like the Scala library's more granular types.  It seems like the new collections library was well thought-out.  I also like how it reduces the amount of code required for simple classes, and the functional concepts it adds.  Its type inference is also very helpful.  It feels like Java without the training wheels.  After using C# for a while, Scala actually feels like a competitor, with Java still useful but being left behind.&lt;/p&gt;&#xA;" OwnerUserId="4949" LastActivityDate="2010-12-11T20:15:45.940" />
  <row Id="25641" PostTypeId="2" ParentId="25637" CreationDate="2010-12-11T20:20:57.670" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The web is too fragmented!&lt;/strong&gt; There is no true answer to what is best to learn.&#xA;Do &lt;strong&gt;market research&lt;/strong&gt; and look at what the market is demanding where you do your work.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-11T20:20:57.670" />
  <row Id="25642" PostTypeId="2" ParentId="25569" CreationDate="2010-12-11T20:24:40.197" Score="5" ViewCount="" Body="&lt;p&gt;Absolutely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning Haskell is mind-expanding. It forces you to think in a completely different way about programming and will give you greater insight into programming in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, as we make the shift to horizontally-scaled multicore systems, it's extremely likely that functional programming will become more relevant to a typical programmer's work.  It may not be Haskell that wins among the functional languages out there, but languages very like Haskell are likely to become more professionally relevant as multicore CPU's require more and more concurrency from applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Big caveat: Learning Haskell may make you less happy with conventional imperative programming, of which most programming work consists these days.  So if you decide to learn it, be on your guard for that kind of thing. :)&lt;/p&gt;&#xA;" OwnerUserId="9717" LastActivityDate="2010-12-11T20:24:40.197" CommentCount="2" />
  <row Id="25643" PostTypeId="2" ParentId="25487" CreationDate="2010-12-11T20:25:51.787" Score="7" ViewCount="" Body="&lt;p&gt;Ok, by popular demand ... Let the free market figure it out. You know, 95% of psychology majors end up doing something else. Not everyone with a CS degree/minor ends up programming, but they make better managers, analysts, project managers than those without. Do not carry the weight of the world on your shoulders. CS degree is just a piece of paper. Those with math, physics, chemistry, biology degrees go on to become programmers, and not everyone with a CS degree becomes a programmer. Without millions of kids aspiring to be the best baseball player, we would not have such great stars. The system is self-regulating.&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-12-11T20:25:51.787" />
  <row Id="25644" PostTypeId="1" AcceptedAnswerId="25940" CreationDate="2010-12-11T20:39:01.437" Score="6" ViewCount="421" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Worker_cooperative&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Worker_cooperative&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm curious whether there are, anywhere in the world, worker's cooperatives that center on a technology business that involves either programming, IT, or some sort of IT or programming related consulting or services. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The wikipedia link above is an overview of the concept. The short form explanation is that a co-op is a worker-owned business. Also there is the notion that every worker owns shares in the business. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am interested in knowing whether an example of a &quot;programmer's/IT co-op&quot; even exists. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: I am not talking about nor asking about a government-funded incubator nor any other socialized, state supported group. I also don't mean &quot;co-working&quot;, which is renting an office with other self employed people doing their own thing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mean a going, profitable IT business operating in a competitive environment that is worker-owned and run.&lt;/p&gt;&#xA;" OwnerUserId="9720" LastActivityDate="2010-12-27T18:37:41.373" Title="Are there any actual examples of profitable programmer's &quot;worker's cooperatives&quot;?" Tags="&lt;business&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="4" />
  <row Id="25645" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T20:39:55.773" Score="1" ViewCount="" Body="&lt;p&gt;&quot;If you can't explain it simply, you don't understand it well enough.&quot; &#xA;-- Albert Einstein&lt;/p&gt;&#xA;" OwnerUserId="4091" LastActivityDate="2010-12-11T20:39:55.773" CommunityOwnedDate="2010-12-11T20:39:55.773" />
  <row Id="25646" PostTypeId="2" ParentId="25569" CreationDate="2010-12-11T20:44:25.733" Score="3" ViewCount="" Body="&lt;p&gt;Unfortunately no-one has yet linked here the correct answer to this question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.xent.com/pipermail/fork/Week-of-Mon-20070219/044101.html&quot; rel=&quot;nofollow&quot;&gt;http://www.xent.com/pipermail/fork/Week-of-Mon-20070219/044101.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9728" LastActivityDate="2010-12-11T20:44:25.733" CommentCount="2" />
  <row Id="25647" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T20:51:46.130" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;All programmers are playwrights and all computers are lousy actors&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- Unix fortune cookie&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-11T20:51:46.130" CommunityOwnedDate="2010-12-11T20:51:46.130" />
  <row Id="25648" PostTypeId="2" ParentId="25491" CreationDate="2010-12-11T20:53:27.987" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Cloning is the sincerest form of flattery.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- Unix fortune cookie&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-11T20:53:27.987" CommunityOwnedDate="2010-12-11T20:53:27.987" />
  <row Id="25649" PostTypeId="2" ParentId="25635" CreationDate="2010-12-11T21:03:33.890" Score="11" ViewCount="" Body="&lt;p&gt;I think the most important thing you can do is &lt;strong&gt;listen and learn.&lt;/strong&gt; You may be technically skilled, but starting out you lack the business context necessary to fully participate in the development process.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Listen to your colleagues: try to see the how and the why of the way they approach projects and problems within the organization. &lt;/li&gt;&#xA;&lt;li&gt;Learn as much as you can on your own: Read through documentation, wikis, and (most importantly) code. I've found that most documentation is old, but still useful, as even that can give you some sense of the history of various projects. Your new co-workers will appreciate you're willingness to seek out information opposed to hitting them up with questions non-stop.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That said, don't just try to assimilate seamlessly into their established way of thinking. Bring your own ideas and don't be afraid to speak your opinions. You were hired to bring value to the company, so you'll do yourself and your teammates a disservice if you hold back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also found it helpful to go out to drinks with your co-workers... Just don't get carried away!  ;)&lt;/p&gt;&#xA;" OwnerUserId="1215" LastActivityDate="2010-12-11T21:03:33.890" CommentCount="3" />
  <row Id="25650" PostTypeId="2" ParentId="25635" CreationDate="2010-12-11T21:10:01.337" Score="1" ViewCount="" Body="&lt;p&gt;Observing the culture is an important first step as you probably will want to have a mixture of assimilation, to what you either have to accept or what works for you, and changing the culture where you work, where you may have new ideas that could help advance the team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think I'd go out of my way to show all my skills as sometimes it can be good to keep some things private especially initially.  While I'd agree with working hard initially, I wouldn't advocate going to maniacal levels as that is an easy way to reach burn out if you try to keep it up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd be courteous to colleagues in terms of greetings and departures, keep my eyes and ears open to see how do people talk, what seems important and how do things seem to flow.  I might be a little more social at first but that is part of feeling out a place to my mind.  I wouldn't default to yes on everything as that can get someone labeled as a &quot;Yes-man&quot; that isn't necessarily a good thing.  Be realistic in taking on new things and admit if something seems over your head as sometimes you may be asked to see if you can do Herculean tasks.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-11T21:10:01.337" />
  <row Id="25652" PostTypeId="1" AcceptedAnswerId="25659" CreationDate="2010-12-11T21:31:46.660" Score="11" ViewCount="521" Body="&lt;p&gt;Programming involves an enormous deal of human communication. Many companies don’t want their programmer to have the language behavior of a robot especially when they are involved in communication with stockholders.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&#xA;I edited this question since some people doesn't see the question and try to close it.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Is this a real problem? Does overall programmer tend to have this kind of disability? &lt;/li&gt;&#xA;&lt;li&gt;If this is a problem, &lt;strong&gt;what should one do to improve this disability?&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;What is your opinion? &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;With behavior of a robot I refer to disability to communicate with non-programmers.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-12-13T07:32:33.423" LastActivityDate="2010-12-13T11:54:07.897" ClosedDate="2010-12-13T17:17:08.977" Title="How can programmers improve their people skills?" Tags="&lt;skills&gt;&lt;communication&gt;&lt;non-programmers&gt;&lt;social-skills&gt;&lt;programmers&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="3" />
  <row Id="25654" PostTypeId="2" ParentId="25637" CreationDate="2010-12-11T21:40:26.323" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Build something.&lt;/strong&gt; The only way to gain more than a shallow knowledge of any programming language or framework is to build something substantial with it. You can never understand a framework or programming language until you've used it to do something big.&lt;/p&gt;&#xA;" OwnerUserId="4711" LastActivityDate="2010-12-11T21:40:26.323" CommentCount="2" />
  <row Id="25655" PostTypeId="2" ParentId="25644" CreationDate="2010-12-11T21:40:47.017" Score="0" ViewCount="" Body="&lt;p&gt;From Wikipedia:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A worker cooperative, therefore, has&#xA;  the characteristic that the majority&#xA;  of its workforce own shares, and the&#xA;  majority of shares are owned by the&#xA;  workforce&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Google.com qualifies&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Almost all Google's employees own voting shares. &lt;/li&gt;&#xA;&lt;li&gt;Most of Google's shares are owned by the employees. &lt;/li&gt;&#xA;&lt;li&gt;The management structure is shallow, with lots of autonomy for most employees (never mind the 20% time). &lt;/li&gt;&#xA;&lt;li&gt;Profit sharing is performed through bonuses and stock options, and, overall, closely matches company performance&lt;/li&gt;&#xA;&lt;li&gt;Employees are welcome and actively encouraged to migrate between teams, roles and positions within the company, taking on all any and all of the required work&lt;/li&gt;&#xA;&lt;li&gt;Food, clothing, free time, family, etc... are all actively coordinated between employees&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It may not be the most extreme example of a worker's cooperative, but it's a darn good one.&lt;/p&gt;&#xA;" OwnerUserId="4091" LastEditorUserId="4091" LastEditorDisplayName="" LastEditDate="2010-12-13T03:44:23.283" LastActivityDate="2010-12-13T03:44:23.283" CommentCount="2" />
  <row Id="25658" PostTypeId="2" ParentId="13676" CreationDate="2010-12-11T21:53:39.707" Score="0" ViewCount="" Body="&lt;p&gt;A solution such as &lt;a href=&quot;http://web.workmeter.com&quot; rel=&quot;nofollow&quot;&gt;www.workmeter.com&lt;/a&gt; could be of help, this allows the entreprise adopt a liberal policy while keeping programmers self conscious of their productivity. Allowing people handle and review their data enhances their time management self consciousness, they become aware about their online habits and tend to correct them (otherwise, as a monitoring solution, allows the manager to keep an eye on bad practices)&lt;/p&gt;&#xA;" OwnerUserId="9739" LastActivityDate="2010-12-11T21:53:39.707" CommentCount="2" />
  <row Id="25659" PostTypeId="2" ParentId="25652" CreationDate="2010-12-11T21:54:17.520" Score="15" ViewCount="" Body="&lt;p&gt;I realize this is probably odd, but I oftentimes find it easier to talk to nonprogrammers than programmers.  When talking to other programmers, they tend to want a high level of accuracy and precision in your speech.  Non-programmers are just the opposite.  They &lt;em&gt;want&lt;/em&gt; oversimplifications and broad generalizations.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-11T21:54:17.520" CommentCount="6" />
  <row Id="25660" PostTypeId="2" ParentId="25636" CreationDate="2010-12-11T22:02:44.547" Score="1" ViewCount="" Body="&lt;h2&gt;(UI Mockup) Wireframe and Compositions&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Required by contract. In order to qualify, the company needs to hire user-experience (UX), human-computer interaction (HCI), and graphic designers who can furnish those artifacts, and signed off by the DBA, in the first milestone.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-12-11T22:02:44.547" />
  <row Id="25661" PostTypeId="2" ParentId="25636" CreationDate="2010-12-11T22:03:23.843" Score="2" ViewCount="" Body="&lt;h2&gt;Source code edit history&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;(especially if linked to use case and bug tracker)&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-12-11T22:03:23.843" />
  <row Id="25662" PostTypeId="2" ParentId="21043" CreationDate="2010-12-11T22:25:31.973" Score="1" ViewCount="" Body="&lt;p&gt;I had a pair of apps rejected back when they didn't allow interpreted code inside an app.  I resubmitted them after Apple changed the SDK agreement and App store rules, and both apps were then approved with no significant changes from the ones that were rejected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had another app where they thought the name implied that there should be some UI elements that were not present.  I changed the name, resubmitted, and that app was approved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most rejections (maybe 90%) are for said to be for things obviously broken or against the published SDK/App store rules.  Someone didn't test their app sufficiently, or read the SDK rules and how Apple interprets them, carefully enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're not trying to do something dumb or sneaky, just test thoroughly, and submit one month before any deadline.  That allows one rejection for some silly mistake(s), and two 2-week review cycles (which probably allows for 2 to 3 standard deviations from the norm risk factor).&lt;/p&gt;&#xA;" OwnerUserId="9742" LastActivityDate="2010-12-11T22:25:31.973" />
  <row Id="25664" PostTypeId="2" ParentId="25644" CreationDate="2010-12-11T22:35:49.530" Score="4" ViewCount="" Body="&lt;p&gt;Motion-Twin in France, it's a small company (more than 10 employees) wich make on-line games, some of them like &quot;www.hordes.fr&quot; have relatively a lot of players.&#xA;Every employee share the same part of the company and profit is equally redistributed.&#xA;You can read an interview (sorry, automatic translation from French) where they talk about cooperative : &lt;a href=&quot;http://translate.google.fr/translate?js=n&amp;amp;prev=_t&amp;amp;hl=fr&amp;amp;ie=UTF-8&amp;amp;layout=2&amp;amp;eotf=1&amp;amp;sl=fr&amp;amp;tl=en&amp;amp;u=http%3A%2F%2Ffr.techcrunch.com%2F2008%2F08%2F14%2Ffr-motion-twin-createurs-de-labrutefr-une-startup-pas-comme-les-autres-interview%2F&quot; rel=&quot;nofollow&quot;&gt;techcrunch.fr&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9744" LastActivityDate="2010-12-11T22:35:49.530" CommentCount="2" />
  <row Id="25665" PostTypeId="1" AcceptedAnswerId="25676" CreationDate="2010-12-11T22:36:48.367" Score="0" ViewCount="180" Body="&lt;p&gt;Right now I have been working on language X for the last 2 years. I am very good at it, but language X is not popular so jobs are not readily available for it. Consequently, I am thinking to change from language X to language Y. But that means I'll be a fresher again. Is making the change worth it? Even if it means losing all the experience I have in the other language? &lt;/p&gt;&#xA;" OwnerUserId="9727" LastEditorUserId="4711" LastEditorDisplayName="" LastEditDate="2010-12-16T23:04:14.757" LastActivityDate="2010-12-16T23:04:14.757" Title="Why does changing from one language to another make a programmer fresher?" Tags="&lt;programming-languages&gt;&lt;career&gt;" AnswerCount="5" CommentCount="2" />
  <row Id="25666" PostTypeId="2" ParentId="25665" CreationDate="2010-12-11T22:39:35.807" Score="2" ViewCount="" Body="&lt;p&gt;I don't understand what's the problem. You will still be proficient in it while learning a new language (which can only be taken as an advantage).&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-12-11T22:44:54.010" LastActivityDate="2010-12-11T22:44:54.010" />
  <row Id="25667" PostTypeId="2" ParentId="25596" CreationDate="2010-12-11T22:59:17.763" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Platform&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like the idea of the platform approach, but there are a couple of points you mention that give me cause for concern. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why not make the back-end entirely stateless and RESTful? You know, have a bunch of web services that provide the necessary JSON or XML to drive the front end clients. These clients could be written in any language you like, so long as they can consume/produce the necessary intermediate representation. Implementing RESTful web services these days is trivial with JAX-RS implementations like RESTEasy just a Maven dependency away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having the platform abstract the database away is good practice simply because you want your client and your services to be as independent of each other as possible. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You mention that updates to the platform would mean taking down the whole system. Why? If you're serious about it, you'll have your live and fail-over clusters running in parallel. You upgrade your fail-over cluster and run your verification test suite on it to ensure it's up to scratch. Then you switch your load balancer to use the fail-over cluster instead of the live one (the live becoming fail-over). If your platform is truly stateless your clients operations will be uninterrupted since the DNS of your services remains the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd caution against using Java object serialization (e.g. RMI) just because of the binary API restrictions you may encounter if you decide to update the objects. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Modules&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sharing common code between modules is trivial with a build system like Maven (or Ivy if you can't leave Ant). Having a common back-end language will also reduce the learning curve for new developers. Also you'd doubtless have a large collection of template base classes to support common functions in the different back-end layers (DAOs, DTOs, BOs etc). (This is also true of the platform approach).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given that each module is separate and independent of each other you may find that if developers don't communicate effectively, code duplication will likely occur within modules. Also, bugs will be fixed in one module, but missed in another. This is especially true if you're creating multiple variations of a module to look after different clients. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, dependency injection and good design will go a long way to mitigate this, but you may find the solution more complex than if you go the platform route.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-11T22:59:17.763" CommentCount="1" />
  <row Id="25669" PostTypeId="2" ParentId="18945" CreationDate="2010-12-11T23:04:22.500" Score="3" ViewCount="" Body="&lt;p&gt;There is currently more revenue flowing through the iPhone App store than for all Android apps together, and maybe around the same number of developers for each platform.  More revenue in a market generally (but not always) means the possibility of negotiating a higher pay rate.  That may change over time, but you can track that and widen or change your specialty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For hot projects, companies pay more for top specialists, so it might be better to be really expert in one platform, either iPhone or Android, than to have only basic competence in both.&lt;/p&gt;&#xA;" OwnerUserId="9742" LastActivityDate="2010-12-11T23:04:22.500" />
  <row Id="25670" PostTypeId="1" CreationDate="2010-12-11T23:10:02.637" Score="6" ViewCount="362" Body="&lt;p&gt;Our department has been hit by some layoffs over the past year and we're running a skeleton crew.  They got rid of most of our support staff.  The remaining team members would rather worry about what others are doing rather than work as a team and figure out how to improve their own situations.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The one co-worker (who does network administration) spends long hours in the office.  Part of it is due to the workload but another part of it is due to bad time management (his own fault and management).  He'll walk past my desk and make snide remarks like &quot;working hard?&quot; and &quot;do something&quot;.  If I offer to help, he acts like he doesn't need it.  He's kind of the insecure type and likes to do everything himself and then hold it over everyone else.  I'm afraid he might end up burning out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another guy has been bitching about his workload.  He spends as much time worrying about what others are doing than getting stuff done himself.  He thinks he's too good for &quot;grunt work&quot; and wants to be a manager.  When his plate is full, he makes sure everyone else knows it when he has to do get stuff done.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're not bad guys but the stress seems to be getting to everyone.  I'm the only one left who knows how to code so a lot of time is spent on programming projects but also have support duties.  I can't get a whole lot done due to the interruptions.  The guys in the office don't consider what I'm doing to be &quot;work&quot;....and seem to think that I should be helping them with support and not programming.  So basically they think I'm supposed to work on IT support and then go back to the office to work on programming projects while they surf the internet.  I don't whine and moan and complain like everyone else does so they assume that I don't have enough to do.  So now I get to listen to snide remarks about my workload.  Management likes my projects because they save the company money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the best way to deal with this situation?&lt;/p&gt;&#xA;" OwnerUserId="9750" LastActivityDate="2010-12-12T02:46:55.917" Title="Dealing with co-workers in a stressful work environment" Tags="&lt;co-workers&gt;&lt;stress&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="25671" PostTypeId="2" ParentId="18373" CreationDate="2010-12-11T23:11:44.507" Score="0" ViewCount="" Body="&lt;p&gt;XCode compiles iOS apps &lt;strong&gt;much&lt;/strong&gt; faster on a MacBook Air, due to the SSD.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only 2 GB works just fine for iPhone sized Xcode projects (as long as you're not trying to multitask with 20 web sites open on the side).  The extra portability might allow you to comfortably develop apps in more locations (airline cattle-car class seating, tree house, etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Air can also run a large 24&quot; or 27&quot; monitor, which is really nice for iPad development.&lt;/p&gt;&#xA;" OwnerUserId="9742" LastActivityDate="2010-12-11T23:11:44.507" />
  <row Id="25672" PostTypeId="2" ParentId="25487" CreationDate="2010-12-11T23:15:46.953" Score="1" ViewCount="" Body="&lt;p&gt;A few aspects would help, I think - &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Profs who are aware of the &lt;em&gt;modern&lt;/em&gt; real world. If they are able to talk about current tech and how it fits into theoretical frameworks, that's much more relevant to history-unaware undergrads than dissections of VAXen without reference to the current tech. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Department-supported internships. If the dept can guarantee at least 2 summers of paid work with tech companies, then there's a great incentive to stick around. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Frankly, modern computer science students are much more blessed than ones living even 5-10 years ago. The ability to purchase a low-end system, and then to install a VM, and learn multiple languages, operating systems, etc, &lt;em&gt;for free&lt;/em&gt; is such an enabler, it's hard to overstate it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, the seminal people like Hopper and Knuth taught themselves without the shinies. Genius will out.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-11T23:15:46.953" />
  <row Id="25673" PostTypeId="2" ParentId="25670" CreationDate="2010-12-11T23:19:54.267" Score="1" ViewCount="" Body="&lt;p&gt;Don't care what other guys say. Talk to your boss and consider changing your job to a &lt;strong&gt;dedicated role with specific responsibility&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-11T23:19:54.267" CommentCount="9" />
  <row Id="25674" PostTypeId="2" ParentId="25670" CreationDate="2010-12-11T23:22:39.307" Score="7" ViewCount="" Body="&lt;p&gt;I suggest you remember clearly who pays your paycheck, and cater to their needs.  I'm not talking about &quot;sucking up&quot;, but genuinely caring about how you can personally be most useful to them.  Regarding the co-workers, patience and grace will take it a long way.  If you take the high road, you will stand out in due time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The company where I work has several competitors (financial software). Most of them focus on solving the problems of all the low level workers, and don't put a lot of focus on the high level management.  We, on the other hand, make the software work well for the low level people, and really, really, really focus on making it flow for the CEO/CFO level.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The end result is that out of dozens of clients, the highest level of management at these companies cannot say enough good about us, and therefore recommend us, and pay us, and recommend us, and pay us, etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recall reading a story very similar to this in the book &quot;How to Win Friends and Influence People&quot;, about a man who rose above his (similar peers) to become the most trusted employee of the company.  Wait, maybe it was &quot;Seven Habits of Highly Effective People&quot;, but regardless, I'd read both if I were you.&lt;/p&gt;&#xA;" OwnerUserId="5050" LastActivityDate="2010-12-11T23:22:39.307" CommentCount="7" />
  <row Id="25675" PostTypeId="2" ParentId="25665" CreationDate="2010-12-11T23:23:59.800" Score="0" ViewCount="" Body="&lt;p&gt;I'm going to &lt;em&gt;assume&lt;/em&gt; you meant career. A carrier is either someone who carries things(e.g., a mule), or a phone company... A good career move would be to spruce up your English...&lt;em&gt;anyway&lt;/em&gt;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Typically learning more programming languages helps you think in principles instead of language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's better to be a software engineer than a &quot;X programmer&quot;. Labor-wise, the statistics indicate &quot;X Programmer&quot; positions are decreasing and are less well paid than software engineers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;X programmers have a reputation for being bad outside of X.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;For a given value of X&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-11T23:23:59.800" />
  <row Id="25676" PostTypeId="2" ParentId="25665" CreationDate="2010-12-11T23:27:13.053" Score="11" ViewCount="" Body="&lt;p&gt;You make the false assumption that the experience you have on language x will be lost. Ever heard of the &lt;em&gt;learn a new language a year&lt;/em&gt; motto? It is based around the idea that learning new languages will result in useful experiences you can bring back to your &quot;primary&quot; (let's call it) language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your second false assumption, which results from the first one, is that you are very good at language x. Are you? Ever heard of the humble programmer? Question yourself. I suggest that knowing how to program is not simply knowing a language's syntax or some of its libraries. If you knew language x really well, that would mean you would understand its core concepts and therefore be able to reuse that understanding with language y.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After carefully reasoning about this, you may realize you need to start at the beginning of &lt;em&gt;understanding&lt;/em&gt; programming itself. In which case I recommend reading &lt;a href=&quot;http://stackoverflow.com/questions/1003940/learn-a-new-language-every-year&quot;&gt;Structure and Interpretation of Computer Programs&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ever heard of &lt;em&gt;using the right tool for the job&lt;/em&gt;? Why do you assume that you have to choose language x or language y, instead of using them as tools under your belt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C'mon, if you want to be a good programmer, be serious about it.&lt;/p&gt;&#xA;" OwnerUserId="9746" LastActivityDate="2010-12-11T23:27:13.053" CommentCount="3" />
  <row Id="25677" PostTypeId="2" ParentId="25670" CreationDate="2010-12-11T23:29:04.493" Score="1" ViewCount="" Body="&lt;p&gt;Life is too short to spend it in a miserable environment. Even in this economy, there are great companies out there dying to get a hold of talented people.&lt;/p&gt;&#xA;" OwnerUserId="9251" LastActivityDate="2010-12-11T23:29:04.493" CommentCount="6" />
  <row Id="25680" PostTypeId="2" ParentId="25665" CreationDate="2010-12-11T23:42:00.893" Score="1" ViewCount="" Body="&lt;p&gt;You won't lose &quot;all the experience&quot;. Don't be afraid to dive into more languages. Sure, libraries, idioms, etc. will be different -- don't get me wrong, you &lt;strong&gt;will&lt;/strong&gt; have to learn these and that will take more longer than a few minutes -- but unless you're out to learn a &quot;vastly different from everything else&quot; language (say, Haskell), many of the concepts that take beginners days to grok and weeks or months to get comfortable with are the same in the new language and the language(s) you already know. Flow control, algorithms, data strucutres, etc. are 95% language-agnostic. You won't be writing great Y programs after two days, but it won't take anywhere as long as becoming a decent programmer in the first place.&#xA;On the other hand, unless X and Y are extremely similar (say, Java and C# (ignoring all the neat non-OO stuff added to C# during the last versions)), you get to learn new language-agnostic concepts that can be used in other languages as well. For example, learning Haskell made me get used to recursion and recursive data structures (read: trees) - and now I'm processing XML (trees!) with Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if there were tons of great jobs for language X, you should learn more languages. As they say, when all you have is a hammer, everything looks like a nail. I.e. know many tools so you know which one is right for the job.&lt;/p&gt;&#xA;" OwnerUserId="7043" LastActivityDate="2010-12-11T23:42:00.893" />
  <row Id="25682" PostTypeId="2" ParentId="25552" CreationDate="2010-12-11T23:43:58.707" Score="5" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;null&lt;/code&gt;. With things like &lt;code&gt;Option&lt;/code&gt; types and the &lt;code&gt;Maybe&lt;/code&gt; monad this simply doesn't have any place in a modern programming language.&lt;/li&gt;&#xA;&lt;li&gt;Covariant arrays. Rips a hole in the type system so big that Java might just as well be untyped.&lt;/li&gt;&#xA;&lt;li&gt;No first-class procedures. Seriously? &lt;em&gt;Every&lt;/em&gt; serious programming language has had those since, when, 1959?&lt;/li&gt;&#xA;&lt;li&gt;~10 different types to represent the simple concept of &quot;number&quot;. None of the 10 types behaves like a number.&lt;/li&gt;&#xA;&lt;li&gt;Lying type declarations: a method declared as &lt;code&gt;int → int&lt;/code&gt; does &lt;em&gt;not&lt;/em&gt; take an &lt;code&gt;int&lt;/code&gt; and return an &lt;code&gt;int&lt;/code&gt;. Rather, it takes either an &lt;code&gt;int&lt;/code&gt; or &lt;code&gt;null&lt;/code&gt;, and in addition takes the entire global mutable state of the entire system, and returns either an &lt;code&gt;int&lt;/code&gt; or &lt;code&gt;null&lt;/code&gt; or an exception and in addition to that also returns the entire global mutable state of the system and performs arbitrary side-effects. In other words, its &lt;em&gt;actual&lt;/em&gt; type is more like &lt;code&gt;IO&amp;lt;int | null&amp;gt; → IO&amp;lt;int | null | Exception&amp;gt;&lt;/code&gt;. So, why can't I just say that?&lt;/li&gt;&#xA;&lt;li&gt;Primitives. 'nuff said.&lt;/li&gt;&#xA;&lt;li&gt;Type inference is a joke.&lt;/li&gt;&#xA;&lt;li&gt;Restrictive identifiers: if I implement matrix multiplication, why can't I do that with an operator called &lt;code&gt;⊗&lt;/code&gt; like it should be?&lt;/li&gt;&#xA;&lt;li&gt;While we are on the subject of operator overloading: it's not allowed &lt;em&gt;for programmers&lt;/em&gt; in Java, because someone might do it incorrectly. Yet, it &lt;em&gt;is&lt;/em&gt; allowed for the Java language designers, and they &lt;em&gt;do&lt;/em&gt; it incorrectly. (Hint: &lt;code&gt;+&lt;/code&gt; is commutative. String concatenation is not.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-12-11T23:43:58.707" CommentCount="2" />
  <row Id="25684" PostTypeId="2" ParentId="25665" CreationDate="2010-12-11T23:49:56.510" Score="0" ViewCount="" Body="&lt;p&gt;I'd question why you are taking this perspective.  Learning a new language and advancing how things are done is par for the course, in my opinion.  Your experience with language X can still be quite valuable as some of what you learned is probably transferable as things like problem solving may still use some of the same steps,e.g. figuring out what is cause of the issue and knowing how to use various resources around you, which can still be worth something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While there may be a change in salary, it isn't the end of the world is it?&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-11T23:49:56.510" />
  <row Id="25685" PostTypeId="2" ParentId="25509" CreationDate="2010-12-11T23:54:08.700" Score="7" ViewCount="" Body="&lt;p&gt;I like Scala for many reasons, but there is one that is often overlooked: its simplicity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scala might not be as simple as, say, Oberon, but it is quite a lot simpler than some other languages. The Scala Language Specification is ~160 pages, the Java Language Specification is ~600 (just the language, not the JVM or the libraries!), the ECMA-334 C# Language Specification (which AFAIK corresponds to a subset of Visual C# 2.0) is ~440 pages (this is without stuff like LINQ query comprehensions, lambda expressions, extension methods, generic co- and contravariance, &lt;code&gt;dynamic&lt;/code&gt;, optional arguments with default values, keyword arguments, &lt;code&gt;var&lt;/code&gt;). Even the current draft for ECMAScript 5.1 is bigger at ~210 pages. And of course my own &quot;default&quot; language, Ruby, whose current ISO Draft weighs in at ~310 pages, which only specify an almost unusably tiny subset of the intersection of Ruby 1.8.6, 1.9.1 and 1.9.2.&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-12-11T23:54:08.700" CommentCount="4" />
  <row Id="25686" PostTypeId="1" AcceptedAnswerId="25691" CreationDate="2010-12-11T23:58:46.823" Score="7" ViewCount="384" Body="&lt;p&gt;I have always been an outgoing guy, who likes to make jokes and be funny. Although this is apparent to everyone I meet, whether it be at a party or just participating in a conversation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's just who I am. Now when I was in ninth grade in a new school, where nobody knew who I was. I was trying to make friends like any other freshman would in a new school - high school no less.  So in class I would joke around talk to people trying to make friends; I used the skills I had cracking jokes making people laugh etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now when the end of the first semester rolled around our school was in the habit of highlighting the students that made it to the honor roll in front of the entire school in the gym. No they had two levels of of recognition honor roll and high honor roll. Now the usual suspects go up and claim their two minutes of fame. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then high honor roll came around, my name was called out utter silience hit my friends' faces wondering how I managed to achieve this when i am always joking around and just didn't see me as intellectual person at all. Regardless of whether or not my report card read like someone screaming for dear life (AAAAAAAAAAAAAAAAAAAA). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was always well liked and enjoyed surprising people, when they would underestimate me; I relished it in. I always enjoyed shocking people, and making them eat their words. Something I always lived with. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now after graduating I have title which designates me some respect depending on which social circles you hang in (heres looking at you designers). I am afraid that my outgoing nature is going to cost me a promotion, or management not seeing the entire person I am. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has burnt me in the past while in university working for people who only saw the light hearted joking I put forward, and putting other people in positions that I was better qualified for. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a programmer, I know my work will speak for itself but they might see the joking as irresponsible or ignorant. He lack responsibility, all the things associated with people who make jokes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I stifle myself so people see how I truly am? Or continue to wait for the opportunity to shock them, that don't always present themselves, since there is no honor roll at the end of the semester.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please and thank you,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;xoxo&#xA;Gossip Girl (just kidding)&lt;/p&gt;&#xA;" OwnerUserId="2446" LastEditorUserId="4711" LastEditorDisplayName="" LastEditDate="2010-12-16T23:03:15.133" LastActivityDate="2010-12-16T23:03:15.133" Title="Can being funny hurt your promotion opportunities?" Tags="&lt;career&gt;" AnswerCount="8" CommentCount="5" FavoriteCount="3" />
  <row Id="25687" PostTypeId="1" AcceptedAnswerId="25704" CreationDate="2010-12-12T00:12:30.833" Score="0" ViewCount="163" Body="&lt;p&gt;Hey guys and gals,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A little background before my question:&lt;/strong&gt; I am an up and coming web developer/programmer with 7 months of part time web development experience mainly utilizing perl and ASP.NET(C#).  I am graduating in a week with a B.B.A in Information Systems and a minor in Computer Science, I am dead set on making a career in development.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have an offer for a job with a small travel agency where they would like a software system of theirs completely re-written and they do not have any developers or IT workers currently employed.  I would be the only programmer, but I would have choice of technologies and languages and full reign to basically do what I want within reason and cost.  I would be the developer/business analyst/server admin.  I would also have the choice to relocate and work remotely in any location in the continental US within 3 months of my start date and the salary is good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;My question:&lt;/strong&gt;&#xA;Is this type of work a blessing or a curse?  I am not going to work here for too long so I'm not too worried about not having any assistance and I am sure I will learn a lot.  I am just worried about how I will sell this experience to another company I interview with.  The lack of the team aspect and lack of senior developers to learn from is what worries me.  Let me know what you think.&lt;/p&gt;&#xA;" OwnerUserId="9759" LastActivityDate="2010-12-12T05:07:13.517" Title="First Job and the Future" Tags="&lt;career-advice&gt;" AnswerCount="6" CommentCount="1" />
  <row Id="25688" PostTypeId="2" ParentId="25686" CreationDate="2010-12-12T00:14:12.550" Score="4" ViewCount="" Body="&lt;p&gt;Are the type to poke everyone or can you be diplomatic at work?  If the former then I think the lack of sensitivity here may cost you some promotions as part of being in management is dealing with politics, at least that is my impression from having seen various managers in my working years.  If you can be diplomatic then you may move up the food chain as this is part of being a chameleon that is required for some of the higher positions unless you manage to join a friend in a start-up to get a power position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do know Gossip Girl, think of this as the difference between being Blair and Serena.  Serena is more likely to poke everyone and get burned while Blair will hold back to get that top social spot if you want a more direct example.  Yes I watch shows marketed to teenage girls and am aware of possible flack I could get for this but I believe this situation merits revealing this part of myself in a logical and rational fashion.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Making jokes all the time can come across as someone that doesn't understand that there may be a time and place to be serious and sensitive.  The poke was in the general sense of getting a rise out of people, which may not always go over well as some may see this as an intrusion where you are forcing humor upon them.  While this may be overkill in terms of explaining my answer, I'd think for some people this may be needed.  People can have a variety of senses of humor and in some cases a joke may go over rather badly especially if there is vulgarity or nudity involved, like for example some of Kevin Smith's humor regarding various sex,drug, and bodily function jokes if you've watched &quot;Clerks&quot; or &quot;Jay and Silent Bob Strike Back.&quot;&lt;/p&gt;&#xA;" OwnerUserId="4327" LastEditorUserId="4327" LastEditorDisplayName="" LastEditDate="2010-12-12T00:30:48.457" LastActivityDate="2010-12-12T00:30:48.457" CommentCount="2" />
  <row Id="25689" PostTypeId="2" ParentId="25687" CreationDate="2010-12-12T00:14:38.103" Score="1" ViewCount="" Body="&lt;p&gt;You will learn a lot, and prospective employers will be able to see that. I would say go for it!&lt;/p&gt;&#xA;" OwnerUserId="6420" LastActivityDate="2010-12-12T00:14:38.103" />
  <row Id="25690" PostTypeId="2" ParentId="25687" CreationDate="2010-12-12T00:15:02.080" Score="1" ViewCount="" Body="&lt;p&gt;this sounds like a good thing to me.  It will be quite a learning experience for you.  Since your employer is a small shop that has no IT staff, you should follow best practices, use open source technologes, and make sure someone can pick up where you leave off.  You don' want to leave your employer in a situation where they have to redo what you did, when you move on.  The most important practice you can follow is test driven development, will make maintenance (and development for that matter), a lot easier.  Good luck!&lt;/p&gt;&#xA;" OwnerUserId="4469" LastEditorUserId="4469" LastEditorDisplayName="" LastEditDate="2010-12-12T00:33:27.780" LastActivityDate="2010-12-12T00:33:27.780" />
  <row Id="25691" PostTypeId="2" ParentId="25686" CreationDate="2010-12-12T00:16:59.583" Score="4" ViewCount="" Body="&lt;p&gt;It probably won't matter. Wouldn't for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've worked with people with or without any humor. I even worked with people with dreadful personalities, and in the end the skills matter the most. Sure that might be the one tiny thing that will make the chances of another candidate for said promotion a bit higher than yours, if you tend to push the humor a bit too far (and a bit too ... off-topic, maybe? Or always coming up at the wrong time). For instance, I had a co-worked recently ask me if my prolonged week-end in France was worth it and I had enjoyed doing nothing while they worked so hard. I sort of had to reply that it depends how he would my grand-father's death to be &quot;worth it&quot;. Matter of timing... Still, he couldn't know. (and I sort of enjoyed replying that because the look on his face really just turned it around. Definitely wouldn't blame him, it was priceless).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It won't make your promotions a complete no-go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a lot of things I'd despise more with someone than them having a sense of humor (even a bad one). Ego might be one thing. Lack of skills another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Managers will pick on a lot of weird stuff to not promote you, but cracking jokes usually isn't on the list, no. Or your boss doesn't have a sense of humor but has a stick up somewhere. I'd even understand it a bit more if they use your background or personal life as a reason, but your humor, that would be really weird.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that it also depends how high up the ladder you want to go. Customer facing people can find it a bit awkward if you say the weirdest stuff to clients (I had a boss like that once... he was so weird and wry that I couldn't work in the same room as him or I would eavesdrop on all his phone calls. But I loved him for it, quite the opposite of what you are afraid of. It was incredibly refreshing to have someone not care about a customer over-reacting to a joke or a non-PC statement just for the fun of it. Whenever he saw the potential for a wry or dry joke, he'd go for it... except when big contracts were on the table. Restrain matters a bit).&#xA;Can also be awkward if you start managing million-dollar projects and you don't show sensitivity. That's the kind of stuff that gets printed in the papers. In that case, yeah, I'd turn it down a notch.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-12-12T00:22:35.693" LastActivityDate="2010-12-12T00:22:35.693" CommentCount="3" />
  <row Id="25692" PostTypeId="2" ParentId="25687" CreationDate="2010-12-12T00:20:06.190" Score="1" ViewCount="" Body="&lt;p&gt;It's both a blessing and a curse, in my opinion.  Having so much freedom and flying solo can cut both ways to my mind.  On the one hand you have an immense amount of control and flexibility to make this what you want in a way.  The flip side to this is that putting in formal methodologies and trying to structure things may be a major uphill fight that could get quite ugly possibly as you'd likely be working with non-technical people and thus not quite blend in with other developers that are closer to a cookie-cutter style of development, which isn't necessarily a bad thing though I fear it may come across that way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can see as a learning experience to see what parts of the work you like and which you don't, then this could be quite rewarding.  Just don't hang yourself by abusing the freedom you have, okay?&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-12T00:20:06.190" />
  <row Id="25694" PostTypeId="2" ParentId="13515" CreationDate="2010-12-12T00:39:04.780" Score="0" ViewCount="" Body="&lt;p&gt;What about google apps with buzz?&lt;/p&gt;&#xA;" OwnerUserId="9739" LastActivityDate="2010-12-12T00:39:04.780" />
  <row Id="25695" PostTypeId="2" ParentId="25670" CreationDate="2010-12-12T00:40:54.107" Score="5" ViewCount="" Body="&lt;p&gt;My experience is that the &lt;em&gt;perception&lt;/em&gt; that you're not getting anything done is just as (if not more) lethal to your job as not actually getting things done.  It sounds to me like these people kept their jobs by creating that perception about other people thereby distracting attention from themselves.  Don't let them do the same to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't forget to sell yourself.  Make sure everyone knows about the work you're getting done.  Be less modest than you normally are.  And be assertive.  If someone walks by your desk with a snide comment like &quot;Working hard?&quot;, tell them to mind their own business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And lastly, start sending out resumes.  If things are this bad, there's a good chance your company will go out of business in the near future.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastEditorUserId="1626" LastEditorDisplayName="" LastEditDate="2010-12-12T02:46:55.917" LastActivityDate="2010-12-12T02:46:55.917" CommentCount="7" />
  <row Id="25696" PostTypeId="2" ParentId="25652" CreationDate="2010-12-12T00:43:07.880" Score="1" ViewCount="" Body="&lt;p&gt;Some people enjoy using vague, ambiguous language that can annoy the heck out of programmers.  Other times programmers can be overly concerned with precision and accuracy which can ruin spontaneous and humorous moments at times so the problem has two sides at least.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is extremely real as a problem.  This doesn't have a simple fix as part of the issue is that both sides may not see the problem.  While some programmers may change to blend in better, this doesn't resolve the issue completely as programmer frustration could lead to all kinds of problems.  &lt;a href=&quot;http://www.imdb.com/title/tt0151804&quot; rel=&quot;nofollow&quot;&gt;&quot;Office Space&quot;&lt;/a&gt; is a good example of seeing this though the movie is fictional, I'd imagine many developers can relate to what happens there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The extent of the problem for programmers can span the spectrum as some may have strategies to work around this and not have the problem while others could be stuck with the problem for life.  The latter group could include those with various disabilities like Asperger's syndrome, social anxiety and depression that may not be easy to manage.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-12T00:43:07.880" />
  <row Id="25697" PostTypeId="2" ParentId="18945" CreationDate="2010-12-12T00:43:55.053" Score="4" ViewCount="" Body="&lt;p&gt;iPhone development requires significantly higher initial investments, you pay with your time, nerves &amp;amp; money: Mac OS X 10.6 device + iPhone + Apple Developer Account(mandatory for even testing application on real device!) + learning that obscure Objective-C thingie + praying for getting your app accepted into Appstore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With Android you are productive almost immediately without ANY investments or stress: you can run Linux/Android on almost anything and for free, Java is a standard, optional developer account (much cheaper than Apple's, only required for publishing on Google Store). You can sell you app on your website :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, iPhone developers make from their paid apps money. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Android ones don't (yet) :-)&lt;/p&gt;&#xA;" OwnerUserId="9764" LastActivityDate="2010-12-12T00:43:55.053" CommentCount="4" />
  <row Id="25698" PostTypeId="2" ParentId="25617" CreationDate="2010-12-12T00:44:29.930" Score="6" ViewCount="" Body="&lt;p&gt;SCRUM is a valid software development process. SCRUM certification is a bad thing (if you like to put it like that). People prefer to follow recipes instead of finding their own solutions. Managers prefer one size fits all ideas instead of considering the needs of different teams, composed by different people, with different personalities, under different work constraints. So it's not a surprise that SCRUM got such a big following, and it's not a big surprise either that this causes pain and frustration to many.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is not SCRUM. Any software development process, when imposed to every team, regardless of their specific needs, would bring comparable amounts of pain and frustration. The trick to build a successful software house is to hire great people (that should go without saying) and to trust them to find ways to deliver great results. If a company uses project managers, let the project managers select and adapt the software development process to be used. Trust people, not checklists.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with SCRUM certification is that it rewards following the process by the book, which of course, it's the worst way to follow any software development process.&lt;/p&gt;&#xA;" OwnerUserId="9746" LastActivityDate="2010-12-12T00:44:29.930" CommentCount="3" />
  <row Id="25699" PostTypeId="2" ParentId="25635" CreationDate="2010-12-12T01:00:01.587" Score="6" ViewCount="" Body="&lt;p&gt;There's actually &lt;a href=&quot;http://www.spring.org.uk/2009/07/how-newcomers-can-influence-established-groups.php&quot; rel=&quot;nofollow&quot;&gt;psychological research on this&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The temptation when joining a new group is to try and make a big splash, to impress others with our critical perceptions and new ideas. On the contrary, what the present research suggests is that toeing the line in the first instance is often the best long-term strategy. Groups are hostile to criticism from newcomers and are likely to resist, dismiss or ignore it—unless you can prove your loyalty.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;One way of emphasising allegiance to a new group is by creating psychological distance from an old group. But even this might not work all the time since criticising an old group can signal a disloyal nature. Consequently newcomers to a group who want to gain influence and promote change should tread very carefully until they are well-established. Unfortunately sometimes being right just isn't enough.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-12T01:00:01.587" CommentCount="1" />
  <row Id="25700" PostTypeId="2" ParentId="991" CreationDate="2010-12-12T01:03:18.687" Score="3" ViewCount="" Body="&lt;p&gt;I'm just going to answer this part of the question, because it's the only part I could relate to:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Do you always spend a day researching new frameworks?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No. I seriously doubt that could even work... How could someone research new frameworks in just one day, before each project, and learn something relevant? It just doesn't happen that way. Instead, I spend parts of my day, every day, researching different &lt;em&gt;technology&lt;/em&gt; (not only new frameworks). Research it's not something I do when I need to. It's something I do all the time and that's already there when I need it to be there. Programming is fun, that's why I am in this business. You can't keep me from trying out different stuff every day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does a writer spend a day collecting ideas before starting a new book?&lt;/p&gt;&#xA;" OwnerUserId="9746" LastActivityDate="2010-12-12T01:03:18.687" />
  <row Id="25701" PostTypeId="2" ParentId="25637" CreationDate="2010-12-12T01:20:07.330" Score="2" ViewCount="" Body="&lt;blockquote&gt;I have just left my college...Now a days I am feeling that I am getting &quot;Jack of all trades master of none&quot;.&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You'll feel like that for about the next five years. And then you'll decide you know too much in one area and yearn to branch out into others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Welcome to the real world!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-12T01:20:07.330" CommentCount="1" />
  <row Id="25702" PostTypeId="2" ParentId="25052" CreationDate="2010-12-12T01:30:16.150" Score="3" ViewCount="" Body="&lt;p&gt;The OP said that recursion doesn't exist in the real world, but I beg to differ.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's take the real world 'operation' of cutting up a pizza. You've taken the pizza out of the oven and in order to serve it up you have to cut it in half, then cut those halves in half, then again cut those resultant halves in half.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The operation of cutting the pizza you performing again and again until you've got the result you want (the number of slices). And for arguments sake let's say that an uncut pizza is a slice itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's an example in Ruby:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;def cut_pizza(existing_slices, desired_slices)&#xA;  if existing_slices == desired_slices&#xA;    # we don't have enough slices yet to feed everyone, so&#xA;    # we're cutting the pizza slices, thus doubling their number&#xA;    new_slices = existing_slices * 2 &#xA;    # and this here is the recursive call&#xA;    cut_pizza(new_slices, desired_slices)&#xA;  else&#xA;    # we have the desired number of slices, so we return&#xA;    # here instead of continuing to recurse&#xA;    return existing_slices&#xA;  end&#xA;end&#xA;&#xA;pizza = 1 # a whole pizza, 'one slice'&#xA;cut_pizza(pizza, 8) # =&gt; we'll get 8&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So the real world operation is cutting a pizza, and the recursion is doing the same thing over and over until you have what you want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Operations you'll find that crop up that you can implement with recursive functions are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Calculating compound interest over a number of months.&lt;/li&gt;&#xA;&lt;li&gt;Looking for a file on a file system (because file systems are trees because of directories).&lt;/li&gt;&#xA;&lt;li&gt;Anything that involves working with trees in general, I guess.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I recommend writing a program to look for a file based on it's file name, and try to write a function that calls itself until it's found, the signature would look like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;find_file_by_name(file_name_we_are_looking_for, path_to_look_in)&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you could call it like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;find_file_by_name('httpd.conf', '/etc') # damn it i can never find apache's conf&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's simply programming mechanics in my opinion, a way of cleverly removing duplication. You can rewrite this by using variables, but this is a 'nicer' solution. There is nothing mysterious or difficult about it. You'll write a couple of recursive functions, it'll click and &lt;em&gt;huzzah&lt;/em&gt; another mechanical trick in your programming tool box.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Extra Credit&lt;/strong&gt; The &lt;code&gt;cut_pizza&lt;/code&gt; example above will give you a stack level too deep error if you ask it for a number of slices that isn't a power of 2 (i.e 2 or 4 or 8 or 16). Can you modify it so that if someone asks for 10 slices it wont run for ever?&lt;/p&gt;&#xA;" OwnerUserId="9766" LastEditorUserId="9766" LastEditorDisplayName="" LastEditDate="2010-12-12T02:11:52.713" LastActivityDate="2010-12-12T02:11:52.713" CommunityOwnedDate="2011-03-11T22:52:58.993" CommentCount="1" />
  <row Id="25703" PostTypeId="2" ParentId="25509" CreationDate="2010-12-12T01:49:02.580" Score="13" ViewCount="" Body="&lt;p&gt;I've been programming Scala for more than one year now, so I'll try to set myself back a year to answer this question. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Scala code is more&#xA;concise than Java code (no setter or&#xA;getter, a lot of the type information&#xA;can be inferred)&lt;/li&gt;&#xA;&lt;li&gt;The built-in support for XML literal is very appealing.&lt;/li&gt;&#xA;&lt;li&gt;Java library compatibility and interoperability is great&lt;/li&gt;&#xA;&lt;li&gt;The support for certain functional idioms is refreshing (for comprehension, closure, lambda functions, map, fold, reduce)&lt;/li&gt;&#xA;&lt;li&gt;There does not seem to be a cool feature that the language creator did not want to include&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The points above were more or less what I thought of Scala before I started to learn it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the course of a year, here is what I found out:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Buying the &lt;a href=&quot;http://www.artima.com/shop/programming_in_scala&quot; rel=&quot;nofollow&quot;&gt;staircase book&lt;/a&gt; was a great investment and has saved me hours of learning things on my own&lt;/li&gt;&#xA;&lt;li&gt;The syntax has some quirks and there was sometimes where I was really puzzled why something was not valid. The trade off is once you're familiar, the code has less clutter and is easier to read. Note that this isn't really an issue if you read rather than write code. &lt;/li&gt;&#xA;&lt;li&gt;The collection library in 2.8 is a pleasure to use. It's hard to come back to the Java one.&lt;/li&gt;&#xA;&lt;li&gt;XML literal is nice, but beyond some basic things, I had to reach out to the Java library ecosystem. It's convenient though.&lt;/li&gt;&#xA;&lt;li&gt;Using Java libraries from Scala is super easy and convenient. Using Scala classes from Java is a bit more tricky, but it works.&lt;/li&gt;&#xA;&lt;li&gt;I've switched to IntelliJ IDEA community edition and although it's not perfect it's more than good enough.&lt;/li&gt;&#xA;&lt;li&gt;The language creator really thought about the set of feature and all works really nicely together. The object oriented support is better than in Java (with the traits) and you can do functional programming.&lt;/li&gt;&#xA;&lt;li&gt;It's a language that apparently some Java developers hate with a passion. For me, it has brought back the joy of programming. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9762" LastActivityDate="2010-12-12T01:49:02.580" />
  <row Id="25704" PostTypeId="2" ParentId="25687" CreationDate="2010-12-12T02:01:09.150" Score="0" ViewCount="" Body="&lt;p&gt;I would was recently in the same position I decided to go with the company that provided team environment and senior developers. The freedom you have is a rope to choke yourself with, although its the best way to learn! 'the railings' that the senior developers are, aren't in place, so when you make mistake and you will, it will burn. No one to look over things or to bounce ideas off of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also you will only be focused on the work that you come across, with senior developers around you basically knowledge leech off them, and learn from there experiences. But again the accomplishment I feel when I finish a feature all on my own (mostly) is an unmatched feeling. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would weight things like:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;transferable skills&lt;/li&gt;&#xA;&lt;li&gt;room for growth&lt;/li&gt;&#xA;&lt;li&gt;how long term is this job?&lt;/li&gt;&#xA;&lt;li&gt;where will you be in two years with a position like this?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Goodluck!&lt;/p&gt;&#xA;" OwnerUserId="2446" LastActivityDate="2010-12-12T02:01:09.150" CommentCount="1" />
  <row Id="25705" PostTypeId="1" AcceptedAnswerId="25737" CreationDate="2010-12-12T02:08:06.040" Score="17" ViewCount="403" Body="&lt;p&gt;Do you have any funny stories about dealing with a tech recruiter?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some of mine...&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Overqualified&lt;/h2&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Excited recruiter:&lt;/strong&gt; I work at a &lt;em&gt;really great company&lt;/em&gt; and I &lt;em&gt;saw your resume&lt;/em&gt; and want you to come in for an interview on Tuesday afternoon. The job requires at&#xA;  least two years of C programming.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Me:&lt;/strong&gt; Did you see I have over twenty years of C programming experience?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Recruiter:&lt;/strong&gt; Yes, and that's &lt;em&gt;great!&lt;/em&gt; Twenty is &lt;em&gt;lots&lt;/em&gt; more than two!&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Me:&lt;/strong&gt; I think I'm probably overqualified!&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Recruiter:&lt;/strong&gt; Oh, no, you're not overqualified &lt;em&gt;at all!&lt;/em&gt; You're &lt;em&gt;perfect!&lt;/em&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Me:&lt;/strong&gt; What's the salary for this job?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Recruiter:&lt;/strong&gt; &lt;em&gt;(names a figure)&lt;/em&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Me:&lt;/strong&gt; I made over three times that last year.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Recruiter:&lt;/strong&gt; &lt;em&gt;(dead silence)&lt;/em&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Me:&lt;/strong&gt; That's what overqualified means.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;h2&gt;Dress for (Non)Success&lt;/h2&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Recruiter:&lt;/strong&gt; I've arranged an interview for 2 PM Thursday.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Me:&lt;/strong&gt; Great! What attire is suitable?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Recruiter:&lt;/strong&gt; They're very professional, so you should wear&#xA;  business formal.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That sounded odd for a Bay Area programming shop, but I figured he knew the employer and I didn't. In retrospect, I should have gone with my gut reaction, because when I showed up in a suit, I was the only person in the building even wearing a necktie. All the interviewers looked at me strangely, and I didn't even get a follow-up phone call.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;How Not To Negotiate Rates&lt;/h2&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Recruiter:&lt;/strong&gt; You're a great match for this contract, but you're too expensive. I can get cheaper people in &lt;em&gt;(common outsourcing country)&lt;/em&gt;.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Me, laughing:&lt;/strong&gt; That's great! You should call them&#xA;  right away!&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Recruiter:&lt;/strong&gt; Uh...&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Me:&lt;/strong&gt; One of the qualifications you need is unusual, I know everybody else in the world who has it, and none of us are in &lt;em&gt;(common outsourcing country)&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;They hired me at the rate I asked for.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastEditorUserId="1696" LastEditorDisplayName="" LastEditDate="2010-12-12T02:57:27.633" LastActivityDate="2010-12-12T06:49:28.560" ClosedDate="2010-12-12T07:05:47.990" Title="Funny stories about tech recruiters" Tags="&lt;fun&gt;&lt;job-market&gt;&lt;recruiting&gt;" AnswerCount="4" CommentCount="7" FavoriteCount="5" />
  <row Id="25706" PostTypeId="1" AcceptedAnswerId="25735" CreationDate="2010-12-12T02:29:25.477" Score="6" ViewCount="1151" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm interested in eventually programming for a financial company.  Unfortunately, I have a degree in linguistics with a minor in CS along with 4 years experience in .NET.  I picked .NET because I thought that it would be more used in the financial world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've heard some horror stories about badly done VBA Excel programming and being way underpaid...but then I've heard great stories about highly skilled C++ programming along with high pay (including some feedback to previous questions).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just get the impression that unless you have a MS in CS from a top 10/20 school, it might not be realistic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those of you doing programming for bankers/traders, how did you break in? &lt;/p&gt;&#xA;" OwnerUserId="5057" LastEditorUserId="4711" LastEditorDisplayName="" LastEditDate="2010-12-16T23:00:55.587" LastActivityDate="2011-03-23T20:44:02.883" Title="How do you get a high paying job programming in finance?" Tags="&lt;programming-languages&gt;&lt;career&gt;&lt;financial&gt;" AnswerCount="7" CommentCount="8" FavoriteCount="0" />
  <row Id="25707" PostTypeId="1" AcceptedAnswerId="25753" CreationDate="2010-12-12T02:32:34.980" Score="7" ViewCount="453" Body="&lt;p&gt;Hi all,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As many programmers I have worked in several languages. While of course there are some that I am more at ease than other, I do not have a real way to precisely measure my skill in a specific language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I thought of a system which allows me to help me with that. I am looking for 5 common criteria in programming languages, to which I will have a value from 1 (junior) to 4 ( Senior) to represent my skill.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I however have no real idea of the criteria I should choose for that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anybody have suggestion ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="9772" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-12-12T13:40:39.430" LastActivityDate="2010-12-12T20:01:57.893" Title="How to measure his own skill in a programming language ?" Tags="&lt;programming-languages&gt;&lt;general-purpose&gt;" AnswerCount="5" CommentCount="7" FavoriteCount="1" />
  <row Id="25708" PostTypeId="2" ParentId="25686" CreationDate="2010-12-12T02:39:11.210" Score="4" ViewCount="" Body="&lt;p&gt;humor is a great quality to posess; but it's not always appropriate to let out ;-)&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-12T02:39:11.210" />
  <row Id="25709" PostTypeId="2" ParentId="25705" CreationDate="2010-12-12T02:45:06.803" Score="7" ViewCount="" Body="&lt;p&gt;happens all the time -&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recruiter: the job requires 5 years of PowerBuilder experience&lt;br&gt;&#xA;Me: PowerBuilder was only released 2 years ago.&lt;br&gt;&#xA;Recruiter: I have to go by what the job placement sheet says&lt;br&gt;&#xA;Me: good luck with that!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...years later...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recruiter: the job requires 5 years of C# experience&lt;br&gt;&#xA;Me: C# was only released 2 years ago.&lt;br&gt;&#xA;Recruiter: really?&lt;br&gt;&#xA;Me: perhaps you should talk to the guys that wrote it. Good luck with that!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...years later...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recruiter: you're a perfect fit for this position, and the client will pay top rates&lt;br&gt;&#xA;Me: I'm only interested in telecommute contracts. My corp-to-corp rate is $$$ per hour.&lt;br&gt;&#xA;Recruiter: Well they might go for half of that, but the job is 100% on-site&lt;br&gt;&#xA;Me: good luck with that! &lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-12T02:45:06.803" CommentCount="5" />
  <row Id="25710" PostTypeId="2" ParentId="25617" CreationDate="2010-12-12T03:02:41.620" Score="4" ViewCount="" Body="&lt;p&gt;Scrum sure beats the alternative of long running projects which never see the light of day and end up with 3 solid months of working weekends, 60 hour weeks, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scrum isn't even a development methodology per se. Admittedly, it was built &lt;em&gt;for&lt;/em&gt; development, but it's possible to use it for almost any kind of project that lends itself to an iterative approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My own personal observations across multiple projects and methodologies leads me to one belief: Process adoption fails because teams attempt to adopt the process by trying to understand &lt;em&gt;what&lt;/em&gt; they should be doing and never adopt the reasons &lt;em&gt;why&lt;/em&gt; they are doing it. What is &quot;killing Scrum&quot; is mostly adoption by teams that say they are doing Scrum but in reality are doing nothing in scrum other than barely iterative development and having a backlog. They have a bad experience and end up pointing their finger at the tool and not blaming the user.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scrum is, I believe, a very workable methodology, especially for teams which have the right people to self lead/self organize. If the development team is composed of people who just want to be told what to do, I don't know how Scrum is likely to work. Personally, I hate when management is responsible for &quot;How it gets done&quot; instead of &quot;how are we doing&quot; so prefer Scrum and agile environments. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The parts I believe are most important to Scrum are available without necessarily labeling what you're doing as Scrum.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;People talking to one another instead of waving documents at one another&lt;/li&gt;&#xA;&lt;li&gt;Tight, quick feedback loops. Code never waits too long before it's being tested. &lt;/li&gt;&#xA;&lt;li&gt;Integration regularly, preferably daily or more quickly than that.&lt;/li&gt;&#xA;&lt;li&gt;Managing change by making it part of what you do rather than something that must be adjusted for. &lt;/li&gt;&#xA;&lt;li&gt;Retrospection and introspection. (real &quot;Continuous Improvement&quot;)&lt;/li&gt;&#xA;&lt;li&gt;Never looking so far ahead that you lose sight of today.&lt;/li&gt;&#xA;&lt;li&gt;Keeping overtime limited and manageable. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Anyway, that's my two cents rendered on Saturday evening while watching hoops on TV.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-12-12T03:02:41.620" />
  <row Id="25711" PostTypeId="2" ParentId="25594" CreationDate="2010-12-12T03:11:39.097" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Single_responsibility_principle&quot; rel=&quot;nofollow&quot;&gt;Single Responsibility Principle&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Meaningful names&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Avoid unnecessary comments&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write unit tests - pay special attention to boundary conditions&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using interfaces if appropriate&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Avoid meaningless try...catch&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Avoid unnecessary 'if' statements&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... List goes on! I will stop for now! &lt;/p&gt;&#xA;" OwnerUserId="9208" LastActivityDate="2010-12-12T03:11:39.097" />
  <row Id="25712" PostTypeId="2" ParentId="25644" CreationDate="2010-12-12T03:32:28.120" Score="3" ViewCount="" Body="&lt;p&gt;Autodesk, which develops AutoCAD, Maya, and a bunch of other things, pretty much started out as workers' cooperatives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can read in detail about that in co-founder John Walker's amusing and chatty collection of historical notes, &lt;a href=&quot;http://www.fourmilab.ch/autofile/www/autofile.html&quot; rel=&quot;nofollow&quot;&gt;The Autodesk File&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Autodesk started out in 1981, during the early days of microcomputers. Several programmers, most with day jobs, decided to develop a few programs, roll them out, and then jump behind whichever one seemed to sell the best. The company name, Autodesk, comes from a database for CP/M that I'm not sure ever shipped. When they showed off AutoCAD, they couldn't answer the phones or duplicate floppies fast enough, and they all quit their day jobs and became insanely rich.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-12T03:32:28.120" CommentCount="4" />
  <row Id="25713" PostTypeId="2" ParentId="25705" CreationDate="2010-12-12T03:37:38.927" Score="1" ViewCount="" Body="&lt;p&gt;Something you can try:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Program something to say random phrases (&quot;Yes&quot;, &quot;Hmmm....&quot;, &quot;Nice day, isn't it?&quot;, &quot;Yup&quot;, &quot;Uh huh&quot;, &quot;What's your favourite &lt;em&gt;_&lt;/em&gt;_?&quot;, &quot;Hold on a second&quot;), every time there's silence on the phone.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Start talking with the recruiter.&#xA;Label:&#xA;Ask a question that will take ~10 minutes to answer.&#xA;Walk away.&#xA;Come back after 10 minutes.&#xA;Goto Label&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Works with telemarketers too.&lt;/p&gt;&#xA;" OwnerUserId="6440" LastActivityDate="2010-12-12T03:37:38.927" CommunityOwnedDate="2010-12-12T03:37:38.927" CommentCount="2" />
  <row Id="25715" PostTypeId="2" ParentId="25686" CreationDate="2010-12-12T03:44:25.827" Score="16" ViewCount="" Body="&lt;p&gt;Do not change your personality for a place of employment.  This ain't 1953, you won't be there 25 years and get a gold watch.  However, you will be with &lt;em&gt;yourself&lt;/em&gt; in 25 years, so change your job to suit your personality, not the other way around.  That's the best thing about programming:  As long as we go through Keynes inspired Fed driven bubble and burst, every few years, you can make a move.&lt;/p&gt;&#xA;" OwnerUserId="8962" LastActivityDate="2010-12-12T03:44:25.827" CommentCount="1" />
  <row Id="25716" PostTypeId="2" ParentId="25637" CreationDate="2010-12-12T03:48:23.460" Score="0" ViewCount="" Body="&lt;p&gt;I guess you have to choose. I started with python, but realized that where I wanted to do was C#. Now, I'm learning C# (and Visual Studio).&lt;/p&gt;&#xA;" OwnerUserId="9520" LastActivityDate="2010-12-12T03:48:23.460" />
  <row Id="25717" PostTypeId="2" ParentId="25706" CreationDate="2010-12-12T03:49:57.627" Score="3" ViewCount="" Body="&lt;p&gt;A few years ago I had an interview for a high-paying position for a notable financial organization in Manhattan. I didn't take it the job, but here's what I learned:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Headhunters love you.&lt;/strong&gt; Find a recruiter who is familiar with open positions in financial companies. If you got good grades and went to a school with a decent Computer Science program, recruiters should be banging down your door.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Finance is high stress.&lt;/strong&gt; Be prepared for long hours and a high-stress environment. Multiple people I interviewed with had crash pads (cheap, spare apartments) close to the office for long nights.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Be prepared for the corporate environment.&lt;/strong&gt; Most people I've spoken with that have had programming jobs in this area emphasize that the culture is more of the cliché corporate ladder and less of the snazzy, small-teamed meritocracy.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Finance means stability, not innovation.&lt;/strong&gt; You won't get to play with the hottest new technology. You'll be focused on making things work and stay working. I was told, &quot;Lost packets means lost dollars.&quot; (Sounds over-the-top.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9776" LastActivityDate="2010-12-12T03:49:57.627" CommentCount="4" />
  <row Id="25718" PostTypeId="2" ParentId="25635" CreationDate="2010-12-12T03:53:25.067" Score="1" ViewCount="" Body="&lt;p&gt;In my short life I've had many jobs. With time I've learned to be myself. But, being myself is not enough if I don't decide to become a better person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Focus on being a better person. Start caring, and thinking about other people. See the world through their eyes. Listen, talk, and be nice, but respectful. Also, always set a very high standard for others, they will almost always live up to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just be yourself, because you seem to be a great person. I visited your website and enjoyed it very much. Someone who built that must be someone worth having as a friend.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck.&lt;/p&gt;&#xA;" OwnerUserId="9520" LastActivityDate="2010-12-12T03:53:25.067" CommentCount="0" />
  <row Id="25719" PostTypeId="2" ParentId="25707" CreationDate="2010-12-12T03:56:32.593" Score="8" ViewCount="" Body="&lt;p&gt;Take a look at &lt;a href=&quot;http://www.starling-software.com/employment/programmer-competency-matrix.html&quot; rel=&quot;nofollow&quot;&gt;the Programmer's competency matrix&lt;/a&gt;. It's a good all-around measure of skill, more or less.&lt;/p&gt;&#xA;" OwnerUserId="8151" LastActivityDate="2010-12-12T03:56:32.593" CommentCount="6" />
  <row Id="25720" PostTypeId="2" ParentId="25652" CreationDate="2010-12-12T04:03:57.297" Score="0" ViewCount="" Body="&lt;p&gt;It is a choice. If you are willing or have the natural ability... great be one of the people on your team that has more customer/user interaction. If you are talented at this and enjoy it that is a real asset to your team. But I don't think that everyone is cut out for it and they contribute to the team in other ways.&lt;/p&gt;&#xA;" OwnerUserId="3697" LastActivityDate="2010-12-12T04:03:57.297" />
  <row Id="25721" PostTypeId="2" ParentId="25093" CreationDate="2010-12-12T04:10:15.780" Score="2" ViewCount="" Body="&lt;p&gt;I've done both GSoC and internships, and I don't think they are easily comparable from this angle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An internship teaches shows you how companies function, lets you work in close proximity with your team, be part of a process, and learn. You get to interact with seasoned veterans that can mentor you along the way and show you how to get better, which is invaluable. It can be a good or a bad experience, but you'll learn something either way. I found it helpful to start out doing internships, because there's more guidance provided, people acknowledge the fact you are pretty new to programming. It's a two-way experience that you might not be able to obtain, purely, from GSoC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, you can't succeed in GSoC without self-discipline and self-motivation. This shows what kind of control you have over yourself, whether working remotely means you slack off, and how passionate you are about programming. It's important to companies because it reflects your work ethic. Additionally, the code is in the open, and it can serve as a testament of your skills at a certain point in time. The mentorship/guidance you receive is of a different nature, but the emphasis is on you. I appreciated the considerable freedom I had in terms of certain decisions during my GSoC project. I think it's a great way to prove yourself (to yourself, firstly).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a general opinion that open source contributions help with potential jobs; Google themselves mention that participation in GSoC helps if you apply to work for them. I think the consensus is that, by contributing to open-source, you show dedication as a programmer. (It probably helps even more if you kept contributing to whatever project you were on during GSoC, after the summer ended. I'm not in that position, but I would certainly ask a potential hire about why they did or did not continue working on their project.) You show an interest in your skill that goes beyond a paycheque, and all things considered companies prefer that. I certainly enjoy working with someone that codes it because they like to much more than I do with someone that is just trying to get rich.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In conclusion, I think GSoC is valuable, not because Google sponsors it, but rather because it's an open-source endeavour that reflects well on your interests as a programmer. I think internships can help you become a better programmer and a much better team player, and they offer a different kind of learning experience: you learn how FOSS development works in one, and how companies do in the other. &lt;strong&gt;Practice a balanced diet&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6934" LastActivityDate="2010-12-12T04:10:15.780" />
  <row Id="25722" PostTypeId="1" AcceptedAnswerId="25749" CreationDate="2010-12-12T04:11:15.233" Score="15" ViewCount="1047" Body="&lt;p&gt;Which is the most hated C++ feature that C++ programmers &lt;em&gt;can't avoid using&lt;/em&gt;?&lt;/p&gt;&#xA;" OwnerUserId="3534" LastActivityDate="2010-12-19T00:32:21.603" Title="Most hated C++ feature" Tags="&lt;programming-languages&gt;&lt;c++&gt;" AnswerCount="17" CommentCount="4" />
  <row Id="25723" PostTypeId="2" ParentId="25705" CreationDate="2010-12-12T04:11:55.273" Score="4" ViewCount="" Body="&lt;p&gt;I had a funny experience with a recruiter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I applied for an entry level C# position. A recruiter called, and let met know that he was looking for people to have available just in case something came up. In simple words, he was just wasting my time (just to make his boss think he was doing his job).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I listened to him say that, I immediately changed. No longer was he a possibility, but he was now someone who made me waste my time. I got a bit angry, but remained calm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He asked me a question that really made me angrier. A question we all loathe: &quot;If you could tell me how good you are using a scale of 1 to 10, would you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wanted to rip his heart out, and insult him, but did not. Instead, I was honest. I told him I was a 4. Still a beginner, but on my way up. He told me he was looking for someone who was at least an 8. I asked about what would such a person need to know to be an 8. He could not answer. Not only was he not a programmer, he did not know anything about programming. So he was just asking a question that he could not answer himself. I went on to talk about what I understood about programming, and he admitted that no one had ever asked him what the numbers meant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Afterwards, I sent him a very short email with the words: If you could tell me how good a person you are using a scale of 1 to 10, would you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I never received an answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are a recruiter, in any type of industry, you must know at least the basics of that industry. Otherwise, you are just a salesman who sells dreams, and delivers nightmares.&lt;/p&gt;&#xA;" OwnerUserId="9520" LastActivityDate="2010-12-12T04:11:55.273" CommentCount="2" />
  <row Id="25724" PostTypeId="2" ParentId="25686" CreationDate="2010-12-12T04:12:26.803" Score="2" ViewCount="" Body="&lt;p&gt;You are not in college any more - your work life and personal life can start to become quite different, and that is ok. By the way AAAAAAAAAA will not impress everyone. I knew someone with a photographic memory who got straight As but was not that smart. Harvard is full of kids who were #1 in their high school. There are people out there much smarter (and or harder working) than you or me. Do not be surprised.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, how you act should depend on who you interact with, sometimes you need to slow yourself down and try to match the person that you talk to - this is a subconscious demonstration of &quot;I am with you&quot;. That other person might not have much of sense of humor (in your eyes), but I think it is vital that you laugh at their jokes when it seems natural. That is just how it is. Programmers are not the most social type. Heck, you can run into some tech prodigies with half-Aspergers syndrome, I kid you not. Others might be going through a nasty divorce or cancer in a family - bound to happen to someone in a large place. Then your jokes will not be appreciated. You need to learn to adjust on a case-by-case basis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, are you an extroverted person? If so, you need to try to understand introverts. Most of the programmers are. I myself am on the introverted side, particularly when sober. Too much extroversion from someone can leave a certain impression on me; I just can't help but form one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that people who are quite loud when they talk risk being disliked by someone, particularly when they are new. It is much easier to adjust when most of your conversations are 1:1. Finally, if you want to become a [good] manager, then you will have to learn to listen, and compliment other people on their achievements and not dominate them in a discussion. Good managers get stuff done, make their subordinates feel smart and good about themselves, and are not being &quot;tall poppies&quot;. Particularly in a managerial position, caution is quite important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe I sound like someone with no balls. However, coworkers come in all shapes, sizes, from diff cultures and walks of life. All you want to do is to show up, get stuff done, not to piss anybody off, and go home and enjoy spending your paycheck on family matters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is someone at my company who is a &quot;bag of laughs&quot;. I love him for telling us how it is, and I often truly enjoy his unique non-PC humor. However, on occasion he mentions things that should not be brought up in a work place, such as women, religion. When you do joke around, make sure that it is sanitized and victim-less humor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I myself like to crack jokes, and my humor with people I know well can be aggressive, non-PC, not victim-less. I learned the hard way to not bring this explosive stuff to work. I ignore gossip, do not talk about politics or religion, discuss female colleagues with other coworkers. Reasons are a combination of pointless/offensive/dangerous.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hopefully you can see where I am coming from. Lifting everybody's mood through the right kind of humor will make you liked, but there are other approaches as well. Being too cocky or too funny or saying the wrong thing at the wrong time can make an unpleasant impression. So, learn about the people that you work with and adjust. Try to make it about them. Everyone loves positive attention.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So far you have been too focused on how smart and funny you are. That may be the case, but keep all that good stuff for the people close to you. At work be more flexible, slow down if needed. If someone just lost a relative at work, your honest, but perhaps unoriginal words of empathy would be appreciated. Your jokes would not be, if the timing is wrong. If someone is raising $ for their relative with cancer - give them a good amount like 100$ or more. This will pay off 10x or more. $100 is only 1-2 hrs of a good programmer's time.&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-12-12T04:12:26.803" />
  <row Id="25725" PostTypeId="2" ParentId="25686" CreationDate="2010-12-12T04:18:00.543" Score="1" ViewCount="" Body="&lt;p&gt;I learned the hard way. It is better to be diplomatic, and nice, than to be funny (and laugh alone).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Humor has its place, just don't let it get the best of you.&lt;/p&gt;&#xA;" OwnerUserId="9520" LastActivityDate="2010-12-12T04:18:00.543" />
  <row Id="25726" PostTypeId="2" ParentId="25687" CreationDate="2010-12-12T04:45:04.770" Score="0" ViewCount="" Body="&lt;p&gt;I was 8 months out of college when a job came along that I took which was a complete rewrite of their web app.  My only parameters were that I use symfony (for PHP). I believe overall it's been a blessing and not a curse.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had never used a PHP framework before beginning this job and I had to learn the hard way about the best practices to use with  symfony.  I did have a last resort fallback in that our sister company also has PHP programmers but they know nothing of my programming or code, so they can only give arm's-length advice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since I'm working will all non-technical people the biggest challenge is requirements creep.  Oftentimes the people requesting changes don't realize the amount of work that goes into the changes and you have to learn quickly to say &quot;no&quot;, or at least, &quot;not now&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At times the web app has been a trial by fire as I am in the same situation of dev/analyst/admin and I've learned very quickly optimization of the LAMP stack to improve server efficiency. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've gone from maintaining a site on a shared host to developing and maintaining 1 shared host site, 1 virtual private server site, 1 dedicated server site and 1 on-site remote monitoring server.   The amount of responsibility has completely blown me away as I am still only 3 years out of college now and I am vitally important to my company of 13 offices.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So as long as you can handle the stress, be able to say 'no' and have the maturity to handle your newfound responsibilities, I say go for it.  But don't be afraid to tell your boss that you need help or that you need to go to a training seminar to improve your skills.&lt;/p&gt;&#xA;" OwnerUserId="9479" LastActivityDate="2010-12-12T04:45:04.770" />
  <row Id="25727" PostTypeId="1" AcceptedAnswerId="25731" CreationDate="2010-12-12T04:46:46.323" Score="3" ViewCount="149" Body="&lt;p&gt;Hello all,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm college grad, soon to be graduating. SO i have started my job search. So my question is for New Grad who is interested in QA (API Level testing in particular). What is level of knowledge in &lt;strong&gt;JAVA&lt;/strong&gt; required? I'm not that great in Java but can rate myself 5/10.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So do companies expect candidate to have extensive coding knowledge in java or just basic java&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again if its just basic java, what concepts should i focus more on ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="17335" LastActivityDate="2010-12-12T05:18:49.080" Title="Concepts: API Level Testing" Tags="&lt;testing&gt;&lt;api&gt;" AnswerCount="1" FavoriteCount="0" />
  <row Id="25728" PostTypeId="1" AcceptedAnswerId="25730" CreationDate="2010-12-12T04:56:17.657" Score="0" ViewCount="247" Body="&lt;p&gt;More info on it here:&#xA;&lt;a href=&quot;http://en.wikipedia.org/wiki/Team_Software_Process&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Team_Software_Process&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What has your experience been?&lt;/p&gt;&#xA;" OwnerUserId="8776" LastActivityDate="2011-01-28T22:40:24.267" Title="Anybody use the Team Software Process (TSP) and/or Personal Software Process (PSP)?" Tags="&lt;development-process&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="25729" PostTypeId="2" ParentId="25687" CreationDate="2010-12-12T05:07:13.517" Score="0" ViewCount="" Body="&lt;p&gt;I think that since it is only temporary, you should live a little and have fun. Deal with your future when it gets here. For now, do your best.&lt;/p&gt;&#xA;" OwnerUserId="9520" LastActivityDate="2010-12-12T05:07:13.517" />
  <row Id="25730" PostTypeId="2" ParentId="25728" CreationDate="2010-12-12T05:10:47.663" Score="2" ViewCount="" Body="&lt;p&gt;I took a class on PSP once, but never really used it. My short elevator ride description of PSP is that it's like SCRUM with more measurements. I worry, however, that some of the extra metrics can be used to inappropriately evaluate people - e.g. to reward or punish someone for their defect density.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do like the discipline of estimation PSP pushes - I think estimation is a software development activity that has a lot of room for improvement, and I was able to measurably improve my estimation abilities throughout the course.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-12-12T05:10:47.663" CommentCount="2" />
  <row Id="25731" PostTypeId="2" ParentId="25727" CreationDate="2010-12-12T05:18:49.080" Score="3" ViewCount="" Body="&lt;p&gt;From your question, I assume that you're looking at a Java API testing gig (otherwise, java experience wouldn't make much of a difference).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have experience in another language? As far as API testing goes, the basics of testing in one language apply to another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you want to be able to do is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Look at the individual input values and identify potential problem values&lt;/li&gt;&#xA;&lt;li&gt;Understand how input parameters can interact - or where they do not interact&lt;/li&gt;&#xA;&lt;li&gt;Build a good oracle - i.e. know whether the API succeeded or not by knowing what behavior should happen &lt;em&gt;beyond&lt;/em&gt; the return value&lt;/li&gt;&#xA;&lt;li&gt;Keep usability in mind - since it's a public interface, can developers use the API to create a useful application?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Lot's more, but I'm slightly off topic on the answer. Again, the short answer is that if you are a 7-8+ on &lt;em&gt;any&lt;/em&gt; language, I think you'll be fine as a java api tester.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-12-12T05:18:49.080" CommentCount="2" />
  <row Id="25732" PostTypeId="2" ParentId="25432" CreationDate="2010-12-12T05:19:45.007" Score="6" ViewCount="" Body="&lt;p&gt;Having been a boss to programmers, I can tell you that &lt;strong&gt;nothing made me happier than when a programmer fixed a bug that I was to lazy to go fix&lt;/strong&gt;!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you can, fix his bugs for him.&lt;/p&gt;&#xA;" OwnerUserId="9780" LastEditorUserId="9780" LastEditorDisplayName="" LastEditDate="2010-12-12T05:25:38.823" LastActivityDate="2010-12-12T05:25:38.823" CommentCount="1" />
  <row Id="25733" PostTypeId="1" AcceptedAnswerId="25736" CreationDate="2010-12-12T05:28:57.220" Score="1" ViewCount="239" Body="&lt;p&gt;I just released the beta version of my app. It's basically a Visual Web Scraper, kinda like Mozenda but more powerful I believe, since you can also program it with JavaScript. I'm pretty sure there is plenty of people interested in testing it, but don't know where to start searching.&lt;/p&gt;&#xA;" OwnerUserId="9781" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-12-14T06:28:19.547" LastActivityDate="2010-12-14T06:28:19.547" Title="Where can I get people to test my software for free?" Tags="&lt;testing&gt;&lt;software-development&gt;&lt;beta&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="1" />
  <row Id="25734" PostTypeId="2" ParentId="25686" CreationDate="2010-12-12T05:29:44.113" Score="2" ViewCount="" Body="&lt;p&gt;At work, ask yourself what the point is of what you are saying at any given moment.  In theory, you are there to help a team of people create something.  SOMETIMES humor can break the ice, help the team work together better, defuse a difficult situation.  But MOST of the time humor is used to get attention, just for the sake of getting attention.  The only people who do that at work are stand up comedians.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the fact that you have a sense of humor is a good thing; it means you have more tools to use than someone who does not have a sense of humor.  If you don't use your other tools when needed, then, yes, you will just be seen as a joker.  But if you help the team to move forward in getting the work done, both with humor and humility, then you will be showing the true attributes of a leader, rather than just someone who stands out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not the humor that's killing you, it's the inappropriate use of it.&lt;/p&gt;&#xA;" OwnerUserId="2506" LastActivityDate="2010-12-12T05:29:44.113" />
  <row Id="25735" PostTypeId="2" ParentId="25706" CreationDate="2010-12-12T05:40:03.030" Score="5" ViewCount="" Body="&lt;p&gt;There are two types of programmers for a bank or hedge fund:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Back office&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They generally don't have graduate degrees, come from universities you've never heard of, and work on really horrible projects. There's lots of bureaucracy; expect to spend four hours a day debating column names in a database that may or may not be implemented. And be prepared for pay that doesn't compensate the ridiculous nonsense you'll put up with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, you're better off finding some other employer than working in the back office.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Front office&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are sometimes called &quot;quant developers&quot;. They work with quantitative researchers, or are themselves researchers. In algorithmic trading, a quant is generally the first step to becoming a trader or portfolio manager. (In discretionary trading---like exotic options and structured products---being a quant is a separate career from being a trader). Pay starts in the six figures for a junior quant and goes up to seven figures for the top traders.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for getting in, quants start on the desk immediately after school and definitely not mid-career. Many have a PhD from the most famous universities in the world; occasionally someone with an MS from a second-tier school can get in, though he'll need to have connections or convince someone to take a chance on him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Expect to become a C++ expert. Paraphrasing Mark Joshi, C++ might not be the right tool for the job, but it's the right tool to get the job. You should also expect to learn more cutting-edge software tools, like q/kdb+. You'll need to know enough statistics to get your head around time-series analysis. And expect to learn a ton about finance, particularly market microstructure and asset pricing theory.&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-12T05:40:03.030" CommentCount="4" />
  <row Id="25736" PostTypeId="2" ParentId="25733" CreationDate="2010-12-12T05:43:53.017" Score="3" ViewCount="" Body="&lt;p&gt;This is basically a sales question, when you come down to it, except you don't have to worry about asking for money.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Describe what problem your product solves. Right now your website tells me what Helium Scraper does, sort of.  But you never talk about why would I want to scrape web pages?  (yes, I can think of reasons, but you need to put those problems up there).&lt;/li&gt;&#xA;&lt;li&gt;Next show people how your product solves their problem.  Give examples.  Tell stories. Yes, even if you have to make them up, but don't lie.  Fabricate a person with a problem that your product solves.  Just don't say that your product made them millions of dollars...unless it did.&lt;/li&gt;&#xA;&lt;li&gt;Have enough of those scenarios available on your website so that if I am one of those people looking for a solution to a problem that your product can solve, if I stumble across your site I can tell that I have found the answer to my problem.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If heliumscraper sort of solves someone's problem, they'll let you know what it needs to work better.&lt;/p&gt;&#xA;" OwnerUserId="2506" LastActivityDate="2010-12-12T05:43:53.017" />
  <row Id="25737" PostTypeId="2" ParentId="25705" CreationDate="2010-12-12T06:49:28.560" Score="5" ViewCount="" Body="&lt;p&gt;Me: So I don't want to do any web development.&lt;br&gt;&#xA;Recruiter: Ok, well I've got this ASP.NET job...&lt;br&gt;&#xA;Me: Umm... no? That's web.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Later on, during an interview set up by the same recruitment firm...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interviewer: Hi I'm [name]. I see on your resume you have no ASP.NET experience.&lt;br&gt;&#xA;Me: Uh, that's because I don't want a job doing that. Is this a web job?&lt;br&gt;&#xA;Interviewer: Yes (gets a look that says &quot;they've done it to me again&quot;).&lt;br&gt;&#xA;Me: Sorry to waste your time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I felt sorry for the interviewer. She had to travel from her office to the head office to interview me, and in the end it lasted a minute.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe that recruitment firm went out of business. Can't imagine why...&lt;/p&gt;&#xA;" OwnerUserId="7961" LastActivityDate="2010-12-12T06:49:28.560" />
  <row Id="25738" PostTypeId="2" ParentId="25722" CreationDate="2010-12-12T07:23:51.067" Score="20" ViewCount="" Body="&lt;p&gt;I am no C++ expert, but this is what I find problematic:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Preprocessor Directives&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When header guard&#xA;name collisions happen, they lead to hard to understand errors for which the&#xA;compiler typically provides worse than useless diagnostics.&lt;/p&gt;&#xA;" OwnerUserId="4522" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-12-12T07:38:21.327" LastActivityDate="2010-12-12T07:38:21.327" CommentCount="15" />
  <row Id="25739" PostTypeId="2" ParentId="25552" CreationDate="2010-12-12T07:27:16.730" Score="6" ViewCount="" Body="&lt;p&gt;The lack of &lt;strong&gt;closures&lt;/strong&gt; is a large problem.  If you've got any kind of functional programming background then you'll have learned a lot of abstraction techniques that make use of many, small functions.  If you're writing many small functions then closures are really incredibly handy.  You might wish to use them for things like callbacks in some kind of event-driven programming scenario - such as GUI programming or asynchronous I/O.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Anonymous Inner Classes&lt;/strong&gt; can be used as a poor man's closure, with a single method interface.  This is a bit frustrating however, since only 'final' variables are closed into the scope of the anonymous inner class.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The choice of a &lt;strong&gt;type-erased generics&lt;/strong&gt; implementation is rather frustrating.  Reified generics in Java would have been a better long term choice - primarily because there are less weird corner cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The lack of &lt;strong&gt;Type Inference&lt;/strong&gt; also annoys me.  It can be quite useful in some circumstances, here's a contrived example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Map&amp;lt;String,Map&amp;lt;String,List&amp;lt;String&amp;gt;&amp;gt; foo = new HashMap&amp;lt;String,Map&amp;lt;String,List&amp;lt;String&amp;gt;&amp;gt;();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The really weird is that they chose to implement the generic type inference in project coin, but didn't just go for a fully blown local type inference.  In other words they've added another feature, bulking complexity, but without the power and generic nature of type inference.  Since languages such as c++ and c# have gone down the local type inference route, and scala shows its perfectly workable within the JVM type system I don't really see why project coin has pushed for such a second rate approach.  Similar to their choice of things like Automated Resource Management over simply implementing closures, and adding a single library function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(NB: Duck-Typing is a similar thing to structural subtyping in the context of dynamically typed languages)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can understand why many statically languages implement a &lt;strong&gt;nominal sub-typing&lt;/strong&gt; system on the grounds of error messages, but sometimes structural subtyping is really useful.  In c++ they support it via templates, though most compilers provide very unfriendly compile errors after a while you get more used to them.  Scala offers structural subtyping refinements - which give you the best of both worlds.  You can use nominal subtyping and get the nicer error messages, and when you want your object to be structurally subtyped you can use a refinement.  A full structural subtype would be a refinement on java.lang.Object.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general I case less about library issues, since there's usually a third party solution to any library issues, within the constraints of the language.  For example jodatime replaces java.util.Date's failure.  The above language issues aren't &lt;/p&gt;&#xA;" OwnerUserId="9470" LastActivityDate="2010-12-12T07:27:16.730" CommentCount="3" />
  <row Id="25740" PostTypeId="2" ParentId="25733" CreationDate="2010-12-12T07:47:00.053" Score="3" ViewCount="" Body="&lt;p&gt;if you pay peanuts, you get monkeys. &lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-12-12T07:47:00.053" CommentCount="1" />
  <row Id="25741" PostTypeId="2" ParentId="25569" CreationDate="2010-12-12T07:58:27.800" Score="2" ViewCount="" Body="&lt;p&gt;YES YES and YES&lt;/p&gt;&#xA;&#xA;&lt;p&gt;practically EVERY substantial trend in cutting-edge computer science is being manifested and tinkered with by haskell people. i'm not just talking functional programming...parallelism, STM, concurrency, type systems...you name it, they're probably doing it...often first!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and that isn't even addressing the mind-altering core features that haskell has had forever...laziness, partial evaluation, a type system that isn't just there to make programs faster, etc etc&lt;/p&gt;&#xA;&#xA;&lt;p&gt;warning: once you pick up the crack pipe, its hard to put down, and you'll develop a well-justified snobbery over lesser, ill-conceived languages.&lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-12-12T07:58:27.800" />
  <row Id="25742" PostTypeId="2" ParentId="25686" CreationDate="2010-12-12T08:01:41.430" Score="2" ViewCount="" Body="&lt;p&gt;If you're an outgoing, friendly guy, I cant imagine why you'd think that'd hurt promotion chances.  There arent many areas in life where that will actually hurt you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the great things about programming is that it is very results oriented.  If you are good at what you do, it'll show.  Thats primarily what managers will care about.  And if you're a social guy, the kind that everybody likes, all the better for you.  Why would you think that would hold you back?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If some of your future colleagues cant handle that you're outgoing and find humor in things... thats their loss.  Personally I've never understood humorless people.  But they are out there.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-12T08:01:41.430" />
  <row Id="25743" PostTypeId="2" ParentId="25722" CreationDate="2010-12-12T08:15:04.453" Score="6" ViewCount="" Body="&lt;p&gt;The C bit. Unfortunately that's the best bit too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clarification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;C++ is an OO language without an object model.&lt;/li&gt;&#xA;&lt;li&gt;You can mess about with objects by accessing the memory that holds them.&lt;/li&gt;&#xA;&lt;li&gt;Refactoring tools are impossible because you can't guarantee that the type of an 'object' hasn't been changed.&lt;/li&gt;&#xA;&lt;li&gt;The builtin types aren't objects.&lt;/li&gt;&#xA;&lt;li&gt;Accessing 'nil' will crash your program.&lt;/li&gt;&#xA;&lt;li&gt;C programmers think it's just like C.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Good&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;C++ would never have caught on if it wasn't so familiar to C programmers.&lt;/li&gt;&#xA;&lt;li&gt;And it's fast&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5505" LastEditorUserId="5505" LastEditorDisplayName="" LastEditDate="2010-12-12T21:34:39.480" LastActivityDate="2010-12-12T21:34:39.480" CommentCount="7" />
  <row Id="25745" PostTypeId="2" ParentId="779" CreationDate="2010-12-12T08:54:19.320" Score="3" ViewCount="" Body="&lt;p&gt;I was in a phone interview for a .NET job and the interviewer was aware that I am a fresh graduate with 6 months of part time ASP.NET(C#) experience.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;She first asked me, &quot;How come you don't list sharepoint on your resume?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I respond, &quot;Because I don't have any sharepoint experience.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;She responds, &quot;Well I thought you said you have 6 mos. of ASP.NET experience?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I respond, &quot;Correct, but I didn't utilize sharepoint at all.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;She responds, &quot;Well my client is asking for .NET Sharepoint experience, sorry.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;End of interview.&lt;/p&gt;&#xA;" OwnerUserId="9759" LastActivityDate="2010-12-12T08:54:19.320" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="2" />
  <row Id="25746" PostTypeId="2" ParentId="25722" CreationDate="2010-12-12T09:03:42.367" Score="3" ViewCount="" Body="&lt;p&gt;I only worked with C++ briefly in the 90's and i would have to say multiple inheritence. &#xA;combining several unrelated objects into one and still have a logical and consistent interface to it was too mind bogling for me. I'm much happier with single inheritence with interfaces.&lt;/p&gt;&#xA;" OwnerUserId="4960" LastActivityDate="2010-12-12T09:03:42.367" CommentCount="5" />
  <row Id="25749" PostTypeId="2" ParentId="25722" CreationDate="2010-12-12T09:22:19.577" Score="17" ViewCount="" Body="&lt;p&gt;I have learned to hate implicit conversions in every form. In the long run, they are a PITA and not worth at all the 'simplifications' they offer. Having to type a few characters more is well worth the added clarity of code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yet, I have to deal with all built-in ones and those (knowingly and unknowingly) added by class designers. &lt;/p&gt;&#xA;" OwnerUserId="1512" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-12-12T16:35:47.327" LastActivityDate="2010-12-12T16:35:47.327" CommentCount="1" />
  <row Id="25750" PostTypeId="2" ParentId="779" CreationDate="2010-12-12T09:25:36.733" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.washingtonpost.com/wp-dyn/articles/A8963-2003Apr11.html&quot; rel=&quot;nofollow&quot;&gt;Here&lt;/a&gt; are 38 more questions.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;Are you able to work overtime, evenings and weekends?&lt;/li&gt;&#xA;  &lt;li&gt;How do you feel about attending conferences with (men) (women) ?&lt;/li&gt;&#xA;  &lt;li&gt;What child care arrangements have you made?&lt;/li&gt;&#xA;  &lt;li&gt;What type of position does your spouse have?&lt;/li&gt;&#xA;  &lt;li&gt;Do you think that you can supervise (men) (women), and how do you think they will react?&lt;/li&gt;&#xA;  &lt;li&gt;This job has always been handled by a (female) (male). Do you think you can handle it?&lt;/li&gt;&#xA;  &lt;li&gt;Are you willing to put career interests before self-interests?&lt;/li&gt;&#xA;  &lt;li&gt;What are your computer skills? Would you be interested in doing some word processing?&lt;/li&gt;&#xA;  &lt;li&gt;How do you feel about women's liberation?&lt;/li&gt;&#xA;  &lt;li&gt;By the way, would you mind telling me: &quot;Just how old are you?&quot;&lt;/li&gt;&#xA;  &lt;li&gt;How do you respond to authority?&lt;/li&gt;&#xA;  &lt;li&gt;How do you define sexual harassment?&lt;/li&gt;&#xA;  &lt;li&gt;Where were you born?&lt;/li&gt;&#xA;  &lt;li&gt;What's your nationality?&lt;/li&gt;&#xA;  &lt;li&gt;Are you married, divorced, separated, or single?&lt;/li&gt;&#xA;  &lt;li&gt;Are you living with anyone?&lt;/li&gt;&#xA;  &lt;li&gt;What holidays do you celebrate?&lt;/li&gt;&#xA;  &lt;li&gt;Do you have any disabilities that affect your work?&lt;/li&gt;&#xA;  &lt;li&gt;What is your health situation like?&lt;/li&gt;&#xA;  &lt;li&gt;Have you ever been arrested?&lt;/li&gt;&#xA;  &lt;li&gt;Are you on any medications?&lt;/li&gt;&#xA;  &lt;li&gt;Do you ever abuse alcohol or drugs?&lt;/li&gt;&#xA;  &lt;li&gt;How many children do you have?&lt;/li&gt;&#xA;  &lt;li&gt;What church do you attend?&lt;/li&gt;&#xA;  &lt;li&gt;How do you think my older employees would react if I hired you?&lt;/li&gt;&#xA;  &lt;li&gt;Do you have many debts?&lt;/li&gt;&#xA;  &lt;li&gt;Do you own or rent your home?&lt;/li&gt;&#xA;  &lt;li&gt;How much insurance do you have?&lt;/li&gt;&#xA;  &lt;li&gt;How much do you weigh?&lt;/li&gt;&#xA;  &lt;li&gt;Do you plan to have any more children?&lt;/li&gt;&#xA;  &lt;li&gt;What does your spouse think about your career?&lt;/li&gt;&#xA;  &lt;li&gt;Have you ever brought a law suit against an employer?&lt;/li&gt;&#xA;  &lt;li&gt;Have you ever filed for workers' comp?&lt;/li&gt;&#xA;  &lt;li&gt;Where do you usually go on vacation?&lt;/li&gt;&#xA;  &lt;li&gt;What do you think about romance in the office?&lt;/li&gt;&#xA;  &lt;li&gt;Have you ever been sexually harassed?&lt;/li&gt;&#xA;  &lt;li&gt;Do you have plans to get married?&lt;/li&gt;&#xA;  &lt;li&gt;Tell me about your family.&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What would your past managers say about you?&lt;/li&gt;&#xA;&lt;li&gt;How do you feel about working overtime?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-12-12T20:23:57.203" LastActivityDate="2010-12-12T20:23:57.203" CommunityOwnedDate="2011-02-17T17:16:27.913" CommentCount="6" />
  <row Id="25751" PostTypeId="2" ParentId="25722" CreationDate="2010-12-12T09:32:07.793" Score="10" ViewCount="" Body="&lt;p&gt;I'm not an expert, but I find it very hard using string manipulation/processing libraries.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-12T09:32:07.793" CommentCount="5" />
  <row Id="25752" PostTypeId="2" ParentId="25636" CreationDate="2010-12-12T09:38:24.210" Score="0" ViewCount="" Body="&lt;p&gt;In my first job out of university, there were two significant non-code artifacts.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The payroll reindeer was a little stuffed toy that sat on the desk partition of the person currently responsible for maintenance of the payroll system.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The project management tool was a wooden rod, 1/2 inch square and about a foot long.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Nuff said, I think.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-12-12T09:38:24.210" CommentCount="2" />
  <row Id="25753" PostTypeId="2" ParentId="25707" CreationDate="2010-12-12T09:59:29.480" Score="6" ViewCount="" Body="&lt;p&gt;I can't imagine of a system that will allow to measure someone's skills definitely even for a particular programming language. What may you need it for? Data structures and algorithms are common, and it takes half an hour to find the appropriate data structure implementation in the standard libraries (not always true, of course). So if you know what is a linked-list, you will probably use it correctly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Moreover, criteria depend on the language, and cannot be common. Some programming languages provide more freedom to do everything you want (to shoot yourself in the foot) and some of them set boundaries you cannot go out from. So criteria vary from language to language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I need a developer to work on a web-service I want to implement using Java, I will probably hire someone who has built a complex system using django (Python) than someone how knows Java but have no experience on web-services. So here I measure the knowledge in a particular domain, not a programming language, because for this task I consider the domain knowledge more important than the implementation language.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-12T09:59:29.480" CommentCount="3" />
  <row Id="25754" PostTypeId="2" ParentId="25722" CreationDate="2010-12-12T10:00:07.420" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Uninitialized memory&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's crazy that variables and memory allocations can have random data in them. I hate when programs behave non-deterministically.&lt;/p&gt;&#xA;" OwnerUserId="8706" LastActivityDate="2010-12-12T10:00:07.420" CommentCount="8" />
  <row Id="25755" PostTypeId="2" ParentId="8445" CreationDate="2010-12-12T10:12:43.353" Score="1" ViewCount="" Body="&lt;p&gt;I was a convert as soon as I knew it was possible. It made sense to me from a 'good programming style' standpoint. There are various reasons for why it is good practice to be const correct:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Readability and understanding. If I'm reading someone else's code and a function takes a const reference as a parameter I know that the parameter is only meant to be used as a read-only variable. This is a massive win especially if the code is multi-threaded environment.&lt;/li&gt;&#xA;&lt;li&gt;The compiler can make use of the const qualifier to aid its optimization passes.&lt;/li&gt;&#xA;&lt;li&gt;Say I have an object of class A in a situation where I don't want it to change. Then the only member functions that can be called for that object are those that are const.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8392" LastActivityDate="2010-12-12T10:12:43.353" />
  <row Id="25756" PostTypeId="2" ParentId="25644" CreationDate="2010-12-12T10:21:16.013" Score="0" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://www.software.coop/&quot; rel=&quot;nofollow&quot;&gt;software.coop&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;We're a tech worker co-op providing web design, system administration, software development and other computer-related services.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4032" LastActivityDate="2010-12-12T10:21:16.013" CommentCount="4" />
  <row Id="25757" PostTypeId="2" ParentId="25733" CreationDate="2010-12-12T10:23:58.663" Score="4" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Have a free beta release.&lt;/li&gt;&#xA;&lt;li&gt;Give a free licence/reduced price to beta tester at final release.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-12-12T11:31:19.823" LastActivityDate="2010-12-12T11:31:19.823" CommentCount="1" />
  <row Id="25758" PostTypeId="2" ParentId="25733" CreationDate="2010-12-12T10:35:18.997" Score="1" ViewCount="" Body="&lt;p&gt;Try spreading the news on sites such as &lt;a href=&quot;http://news.ycombinator.com&quot; rel=&quot;nofollow&quot;&gt;HackerNews&lt;/a&gt;. You can surely find a few serious testers there.&lt;/p&gt;&#xA;" OwnerUserId="9544" LastActivityDate="2010-12-12T10:35:18.997" />
  <row Id="25759" PostTypeId="2" ParentId="25722" CreationDate="2010-12-12T10:44:01.580" Score="2" ViewCount="" Body="&lt;p&gt;From what I learnt, using unnecessary templates can make debugging hell. But they are required for abstraction.&lt;/p&gt;&#xA;" OwnerUserId="9544" LastActivityDate="2010-12-12T10:44:01.580" CommentCount="1" />
  <row Id="25760" PostTypeId="2" ParentId="25722" CreationDate="2010-12-12T10:45:44.357" Score="7" ViewCount="" Body="&lt;p&gt;None.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, I can't think of a C++ feature that would be both (1) hated and (2) unavoidable.  As C++ is a language with which many different paradigm can be used, many of its features can be avoided: you don't &lt;em&gt;have&lt;/em&gt; to use the STL, you don't even &lt;em&gt;have&lt;/em&gt; to write classes (although you're then mostly back to C, etc.&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-12-12T10:45:44.357" CommentCount="2" />
  <row Id="25761" PostTypeId="1" AcceptedAnswerId="25769" CreationDate="2010-12-12T11:12:37.513" Score="1" ViewCount="299" Body="&lt;p&gt;We're using Pivotal Tracker for our project, which lets us choose from these three point scales:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;0,1,2,3&#xA;0,2,4,8&#xA;0,1,3,5,8&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And I'm looking for a resource to help guide our decision. (After using 0,1,2,3 for two iterations, we can see where one of the others would be a lot more useful or meaningful.)&lt;/p&gt;&#xA;" OwnerUserId="9425" LastActivityDate="2011-05-13T22:02:18.697" Title="A good guide on choosing the point scale to use with Agile/SCRUM?" Tags="&lt;agile&gt;&lt;scrum&gt;" AnswerCount="3" CommentCount="8" />
  <row Id="25762" PostTypeId="1" AcceptedAnswerId="25763" CreationDate="2010-12-12T11:17:09.303" Score="2" ViewCount="317" Body="&lt;p&gt;Learning programming for the first time may be boring, especially reading a book with boring examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Is there other way to learn non-programmers programming?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example involve them in a simple game project that is fun.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-12-12T11:26:58.467" LastActivityDate="2010-12-12T18:33:23.917" Title="How to encourage a non-programmer to learn programming?" Tags="&lt;learning&gt;&lt;programming&gt;&lt;non-programmers&gt;&lt;students&gt;" AnswerCount="4" CommentCount="3" />
  <row Id="25763" PostTypeId="2" ParentId="25762" CreationDate="2010-12-12T11:24:22.153" Score="21" ViewCount="" Body="&lt;p&gt;&quot;If you want to build a ship, don't drum up people to collect wood and don't assign them tasks and work, but rather teach them to long for the endless immensity of the sea.&quot; - Antoine de Saint Exupéry&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-12-12T18:33:23.917" LastActivityDate="2010-12-12T18:33:23.917" CommentCount="4" />
  <row Id="25764" PostTypeId="2" ParentId="25762" CreationDate="2010-12-12T11:24:27.083" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;It should be fun. That doesn't mean they have to make a &quot;game&quot;; but it could be something else that's interesting. Right now, I'm teaching a non-programmer by writing a simple simulation of the Monty Hall problem.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Find tutorials that get their hands on the computer fast. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;BTW, that should be &quot;non-programmer&quot;. :-)&lt;/p&gt;&#xA;" OwnerUserId="9425" LastActivityDate="2010-12-12T11:24:27.083" />
  <row Id="25765" PostTypeId="2" ParentId="25762" CreationDate="2010-12-12T11:27:10.050" Score="1" ViewCount="" Body="&lt;p&gt;Tell them how they can relate programming to what they already know.&lt;/p&gt;&#xA;" OwnerUserId="9804" LastActivityDate="2010-12-12T11:27:10.050" />
  <row Id="25766" PostTypeId="2" ParentId="25762" CreationDate="2010-12-12T11:39:27.990" Score="2" ViewCount="" Body="&lt;p&gt;If a book is boring, it might just be that particular book and learning style. I find the Head First series is excellent for introductory programming, with fun examples and games that are interesting and engaging. Head First Programming is a great one to begin with. It uses Python, though the focus is on learning to program rather than on Python itself. The book includes puzzles and games, like arranging &quot;fridget magnets&quot; with snippets of code, using racetracks with different roads to illustrate using control statements, fill in the blanks, and so forth. There are also fun cartoons and &quot;stories&quot; to illustrate the exercises and get you engaged.&lt;/p&gt;&#xA;" OwnerUserId="7722" LastActivityDate="2010-12-12T11:39:27.990" CommentCount="1" />
  <row Id="25768" PostTypeId="2" ParentId="9842" CreationDate="2010-12-12T12:22:04.507" Score="0" ViewCount="" Body="&lt;p&gt;As suggested i think this is an implementation issue and maybe in stackexchange or some more specialised technical guys may answer better than me, but in my case i've participated in a project where we had similar requirements (and in the same sector, different countries though ;D ) we finally used Real solutions , but i'm speaking some years ago and now the project (which i left some time ago) is trying to migrate to flash as you're suggesting, and for which i also promoted while i was involved. I've realized some essays and i think that you'll be able to make out the player with just a simple video flash player control and streaming AS3 libraries, maybe you're also interested in looking at &lt;a href=&quot;http://osflash.org/red5&quot; rel=&quot;nofollow&quot;&gt;red5&lt;/a&gt; an open source flash compatible video streaming server, but what you described is , i think the typical use case of the flash video controls; VOD play,pause, rewind,... live i think that if you don't hide player's control you'll always be provided with stop functionality (but well you can also close the window, no :P )&lt;/p&gt;&#xA;" OwnerUserId="9739" LastActivityDate="2010-12-12T12:22:04.507" />
  <row Id="25769" PostTypeId="2" ParentId="25761" CreationDate="2010-12-12T12:36:27.533" Score="0" ViewCount="" Body="&lt;p&gt;Google is your friend. Seriously. It's not hard to find info about agile estimation. Try &lt;a href=&quot;http://google.com/search?q=agile+ideal+days+points&quot; rel=&quot;nofollow&quot;&gt;http://google.com/search?q=agile+ideal+days+points&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-12-12T12:36:27.533" />
  <row Id="25771" PostTypeId="1" CreationDate="2010-12-12T12:50:59.050" Score="1" ViewCount="257" Body="&lt;p&gt;I've been very interested in learning ASM for a long time now and finally decided to get to it.&#xA;The problem is I have a MacBook and most of the books teach you based on DOS/Linux or MIPS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have any good tips for starters in ASM on a Mac OS X?&lt;/p&gt;&#xA;" OwnerUserId="8271" LastActivityDate="2010-12-13T01:03:22.777" Title="ASM for Mac OS X" Tags="&lt;mac&gt;&lt;assembly&gt;" AnswerCount="2" CommentCount="9" />
  <row Id="25772" PostTypeId="2" ParentId="25771" CreationDate="2010-12-12T13:09:16.537" Score="3" ViewCount="" Body="&lt;p&gt;Hi! I think a good source of pointers for Unix asm development is available here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://asm.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;http://asm.sourceforge.net/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know to what extent they are applicable to MacOSX, but it should be a decent place to start.&lt;/p&gt;&#xA;" OwnerUserId="9808" LastActivityDate="2010-12-12T13:09:16.537" CommentCount="6" />
  <row Id="25773" PostTypeId="1" CreationDate="2010-12-12T13:41:15.780" Score="4" ViewCount="159" Body="&lt;p&gt;How do sites like Facebook and Twitter optimize their sites for massive traffic. Aside from spending big bucks on getting the best servers, what can be optimized in your code to accommodate massive traffic?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've read about caching your pages to static HTML, but that's impractical for social networking sites where the pages are constantly updated.&lt;/p&gt;&#xA;" OwnerUserId="9811" LastActivityDate="2010-12-12T14:52:08.233" Title="How big sites scale up and optimize to massive traffic?" Tags="&lt;optimization&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="3" />
  <row Id="25774" PostTypeId="2" ParentId="25432" CreationDate="2010-12-12T13:50:05.453" Score="1" ViewCount="" Body="&lt;p&gt;I liked the story posted in the answer, but it's more entertaining than a reliable answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's normal that everyone are just like you: trying to be better at what we do, that's human. But the horrible truth is that there are so little chances you will be the best at it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Concerning myself, I always feared humility concerns, because I just hate those little childish fights about who's right and who's not, and here is why.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as you are not one of the best, you are better trying to work to get more experience comparing what you know and do to what best programmers know and do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could say I compare myself to the best programmers, but that's just half right:&#xA; - I'm better comparing myself to the best, knowing that I'm just ridiculous compared to them, so that makes the principle of comparing pretty stupid and useless&#xA; - I don't consider their fame but rather what they achieved to get it, because in reality, most geniuses myths fade away when you know true fact like how business works. It doesn't change the fact they achieved great work, but remember that experience is difficult to evaluate if you think about the working conditions.&#xA; - In the end, this process avoids the competition process which is really disturbing for me and help me focusing on what is important: learning by practice, but also learning with the help of a good curiosity engine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can admire somebody all you want, thinking he is so better than all other employees or other programmers you'll meet, but you have to remember that the world is vast and that the guy you admire is in fact quite average compared to other better experienced people there are out there, so maybe you'll feel better once you've impressed him, but you'll feel the same against other people with better experience than him, so it will be all for nothing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quit this petty game and try to find more interesting subjects you might have heard about, because this engineer you are talking about is certainly busy working for something less great that you're thinking.&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2010-12-12T13:50:05.453" CommentCount="1" />
  <row Id="25775" PostTypeId="2" ParentId="25707" CreationDate="2010-12-12T13:55:21.270" Score="1" ViewCount="" Body="&lt;p&gt;The ability to read and understand any (reasonably well written) code in that language is the most important criterion to measure mastership.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ability to write code to solve any problem doesn't say much; just consider a C programmer who claims the ability to write C++. Since C is more-or-less a subset of C++, the C programmer can solve any problem by writing an appropriate C program and using the C++-compiler to compile it, so technically it's C++. Likewise, many programer learn just enough of a new language so they can apply the old idioms. &lt;em&gt;You can write FORTRAN in any language&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the same argument, LOC/hour says nothing. A programmer who writes Perl programs that look like C programs probably generates more LOC/hour than a Perl programmer who writes idiomatic Perl code.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="6617" LastEditorDisplayName="" LastEditDate="2010-12-12T19:23:29.427" LastActivityDate="2010-12-12T19:23:29.427" CommentCount="1" />
  <row Id="25776" PostTypeId="2" ParentId="25773" CreationDate="2010-12-12T13:58:49.600" Score="0" ViewCount="" Body="&lt;h2&gt;Content Delivery Network&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Facebook uses static content delivery network for serving photos and videos. Check the source of any image in facebook and you will see something like fbcdn.net.&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-12-12T13:58:49.600" CommentCount="3" />
  <row Id="25777" PostTypeId="2" ParentId="25722" CreationDate="2010-12-12T14:02:21.487" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Mixing up C and C++&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-12-12T14:02:21.487" />
  <row Id="25778" PostTypeId="2" ParentId="25722" CreationDate="2010-12-12T14:14:24.817" Score="0" ViewCount="" Body="&lt;p&gt;The fact that C and C++ are &lt;em&gt;very&lt;/em&gt; different languages.&lt;/p&gt;&#xA;" OwnerUserId="9813" LastActivityDate="2010-12-12T14:14:24.817" CommentCount="2" />
  <row Id="25779" PostTypeId="1" CreationDate="2010-12-12T14:25:00.000" Score="1" ViewCount="67" Body="&lt;p&gt;In sites like facebook or orkut or friendster what's displayed at the bottom instead of main web address like static.ak.fbcdn.net or profile.ak.fbcdn.net? Are these  different servers or they are just used to misguide the hackers?&lt;/p&gt;&#xA;" OwnerUserId="9442" LastActivityDate="2010-12-12T18:58:41.227" Title="Social networking sites static caching" Tags="&lt;browser&gt;&lt;social-networks&gt;" AnswerCount="1" />
  <row Id="25780" PostTypeId="2" ParentId="296" CreationDate="2010-12-12T14:41:34.697" Score="5" ViewCount="" Body="&lt;p&gt;Here's hoping it's Haskell.&lt;/p&gt;&#xA;" OwnerUserId="9717" LastActivityDate="2010-12-12T14:41:34.697" CommentCount="4" />
  <row Id="25781" PostTypeId="2" ParentId="25773" CreationDate="2010-12-12T14:44:18.220" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.infoq.com/presentations/Scale-at-Facebook&quot; rel=&quot;nofollow&quot;&gt;Here&lt;/a&gt; is a video and presentation describing some of the stuff the engineers at facebook did to scale up.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-12-12T14:44:18.220" />
  <row Id="25782" PostTypeId="1" AcceptedAnswerId="25854" CreationDate="2010-12-12T14:52:05.567" Score="5" ViewCount="992" Body="&lt;p&gt;I'm currently looking to move to using an IDE for web development. The options I'm considering are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Aptana Studio&lt;/li&gt;&#xA;&lt;li&gt;Coda&lt;/li&gt;&#xA;&lt;li&gt;Expresso&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Please base your answers on the following criteria, in descending order of importance:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Supports HTML, CSS, JavaScript&lt;/li&gt;&#xA;&lt;li&gt;Powerful (having good code completion, good debugger, great syntax highlighting etc)&lt;/li&gt;&#xA;&lt;li&gt;Fast and light&lt;/li&gt;&#xA;&lt;li&gt;Supports HTML5, CSS3, and major JavaScript frameworks (JQuery or YUI)&lt;/li&gt;&#xA;&lt;li&gt;Great design (both usability and aesthetics)&lt;/li&gt;&#xA;&lt;li&gt;Supports PHP, Ruby, and Python&lt;/li&gt;&#xA;&lt;li&gt;Has Git integrated&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I've updated the question to be more objective. I'm mainly looking for an answer that addresses how well each of the IDEs addresses my criteria.&lt;/p&gt;&#xA;" OwnerUserId="2243" LastEditorUserId="2243" LastEditorDisplayName="" LastEditDate="2010-12-13T00:32:03.347" LastActivityDate="2011-02-04T16:40:05.920" Title="Best IDE for HTML, CSS, and Javascript for mac" Tags="&lt;ide&gt;&lt;javascript&gt;&lt;mac&gt;&lt;html&gt;&lt;css&gt;" AnswerCount="6" FavoriteCount="4" />
  <row Id="25783" PostTypeId="2" ParentId="25773" CreationDate="2010-12-12T14:52:08.233" Score="9" ViewCount="" Body="&lt;p&gt;Facebook is a particularly extreme example of load, but in general, high-traffic sites: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;use a content delivery network (CDN) for distributing static assets (CSS and JavaScript) and media (images, videos, etc.).  &lt;/li&gt;&#xA;&lt;li&gt;use in-memory caches like Memcached whenever possible to reduce load on the database.&lt;/li&gt;&#xA;&lt;li&gt;have a load balancer that distributes traffic to a pool of web servers&lt;/li&gt;&#xA;&lt;li&gt;cache generated HTML fragments (e.g. parts of your profile page) and include them when generating a full response&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="9717" LastActivityDate="2010-12-12T14:52:08.233" CommentCount="4" />
  <row Id="25784" PostTypeId="2" ParentId="296" CreationDate="2010-12-12T14:55:12.380" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When Webapps conquer the desktop, JavaScript will be ubiquitous there, obviously. But why just keep it at the client? When substantial portions of code are written in JavaScript on the side of the client, when clients and servers exchange complex data in the JSON format, it makes more and more sense to use the same language on the server, too. The Groovy language already feels a lot like JavaScript, so all it takes is a powerful framework (similar to the JVM or .net) for JavaScript to live in; or possibly a well-done JavaScript implementation for one of those frameworks.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-12T14:55:12.380" CommentCount="4" />
  <row Id="25785" PostTypeId="2" ParentId="25722" CreationDate="2010-12-12T14:57:03.973" Score="2" ViewCount="" Body="&lt;p&gt;Templates. For me they are C++ incarnation of C strings; the idea in principle is nice, but they:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;provoke stupid overuses; I often see complex templates either carefully optimized for months or full of hacks only to handle situations that for sure will never happen&lt;/li&gt;&#xA;&lt;li&gt;make debugging a hell&lt;/li&gt;&#xA;&lt;li&gt;are static and there is no clean way to easy migrate them to a dynamic solution &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2051" LastActivityDate="2010-12-12T14:57:03.973" CommentCount="8" />
  <row Id="25786" PostTypeId="1" AcceptedAnswerId="25797" CreationDate="2010-12-12T15:44:26.703" Score="2" ViewCount="333" Body="&lt;p&gt;My guess is that OS’s such as Android will take over tablet pc’s market which in long terms will affect MS dominants in OS market.&#xA;I see this as one of the most important battles since it will affect many developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What is your opinion regarding this outcome. What should one expect in future?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-12-12T17:08:24.813" LastActivityDate="2010-12-12T22:44:11.890" ClosedDate="2010-12-14T20:21:11.383" Title="What are the consequences if Microsoft loses the smartphone battle?" Tags="&lt;windows&gt;&lt;future&gt;&lt;microsoft&gt;&lt;mobile&gt;&lt;operating-systems&gt;" AnswerCount="7" CommentCount="11" FavoriteCount="1" />
  <row Id="25787" PostTypeId="2" ParentId="25786" CreationDate="2010-12-12T15:51:52.017" Score="0" ViewCount="" Body="&lt;p&gt;A competitive market is always good. So if Microsoft stays that will be good for Android too. One more point Innovation is not a strong point of Micrososoft, they are always good at copying things. However, I dont consider Microsoft as a serious contender in the mobile market(justmy opinion), I dont like Windows in any case :-) &lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-12-12T15:51:52.017" />
  <row Id="25789" PostTypeId="2" ParentId="25761" CreationDate="2010-12-12T16:16:50.013" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&quot;Fibonacci&quot; story point scale&lt;/strong&gt; is very popular: 1, 2, 3, 5, 8 etc.  Popular &lt;strong&gt;planning poker&lt;/strong&gt; card decks (by Mountain Goat Software and Crisp) are based on it: question mark, 0, 1/2, 1, 2, 3, 5, 8, 13, 20, 40, 100, infinity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mike Cohn notes in his &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131479415&quot; rel=&quot;nofollow&quot;&gt;Agile Estimation and Planning&lt;/a&gt; book that using 1-2-4-8 instead of 1-2-3-5-8 is okay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is important to remember when applying story points on &quot;micro-sized&quot; teams: limit the maximum story size, don't &quot;mix pebbles with boulders&quot; (see more at &lt;a href=&quot;http://programmers.stackexchange.com/questions/220/agile-for-the-solo-developer/6735#6735&quot;&gt;Agile for the Solo Developer&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="464" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2011-05-13T22:02:18.697" LastActivityDate="2011-05-13T22:02:18.697" CommentCount="1" />
  <row Id="25790" PostTypeId="2" ParentId="25786" CreationDate="2010-12-12T16:25:20.013" Score="3" ViewCount="" Body="&lt;p&gt;Windows Phone 7 has a lot of potential, but the launch was a joke (at least up here in Canada), so I don't think it's going to ultimately gain a lot of traction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the same time, MS is going for a unifying experience with their devices and platforms through Xbox Live, which could be good for the general consumer market. They'll have to bust out some pretty serious advertising, though, if they want to take on iPhone and Android and break away from the Windows Mobile horrors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apple is doing similar things with the iPad and iPhone and Macs, but the amount of cash one needs to set out is typically  greater than what PCs require, so MS might have an &quot;in&quot; there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for me, I have an iPhone and will consider replacing it with a Windows Phone later, if/when the market catches up and I get out of my cellphone contract.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-12T16:25:20.013" CommentCount="1" />
  <row Id="25791" PostTypeId="2" ParentId="296" CreationDate="2010-12-12T16:32:48.810" Score="1" ViewCount="" Body="&lt;p&gt;I don't think there will be a &lt;strong&gt;new&lt;/strong&gt; big language, and I don't really hope there will be one either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everyone has its pet langauge, and some languages are more adapted to some tasks than others. I think people are gradually learning that there is no silver bullet, and that choosing a language is also part of the project: who scripts in C ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really like the fact that there are lots of languages around, each exploring new concepts or mixing existing ones. It's a sign of good health of our industry that there is so much interest in language design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I therefore find more interesting the apparition of new frameworks for language design. And I am watching LLVM's development with excitement for some time now, as it makes it &lt;em&gt;relatively&lt;/em&gt; easy to write both compilers and interpreters :)&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2010-12-12T16:32:48.810" />
  <row Id="25794" PostTypeId="2" ParentId="25617" CreationDate="2010-12-12T16:44:27.517" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;This well-known ad is a reference to the so-called &lt;em&gt;hero programmer&lt;/em&gt; culture.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This culture is generally frowned upon in the Agile community.  Agile, particularly Scrum, favors self-organizing teams, collective code ownership, open office layout, desk arrangement optimal for pair programming, conversation, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From what you can see on Fog Creek promotional materials, Fog Creek founders favor a different approach: offices with doors, no pair programming, etc.  StackOverflow Careers site seems to appeal to programmers that thrive in such environments.  The ad captures this sentiment in seven short words.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scrum is of course a legitimate approach to software development and there have been numerous successful implementations of it.  At the same time, the success of a very different approach, apparently practiced at Fog Creek, is evident, too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;ALSO&lt;/strong&gt;: &quot;Get off the farm&quot; may be a reference to &lt;a href=&quot;http://programmers.stackexchange.com/questions/25432/how-can-a-new-programmer-impress-the-software-engineer-boss/25459#25459&quot;&gt;Ashton's story&lt;/a&gt;.  It has a lot to do with farms, including a goat farm and a cubicle farm, but certainly nothing to do with Scrum.&lt;/p&gt;&#xA;" OwnerUserId="464" LastEditorUserId="464" LastEditorDisplayName="" LastEditDate="2010-12-12T17:07:22.253" LastActivityDate="2010-12-12T17:07:22.253" CommentCount="9" />
  <row Id="25795" PostTypeId="2" ParentId="25583" CreationDate="2010-12-12T16:45:25.177" Score="0" ViewCount="" Body="&lt;p&gt;In addition to some fine answers here I would say have a good blog about your language of interest? have a good contribution consistently and you are definitely half there . &lt;/p&gt;&#xA;&#xA;&lt;p&gt;start all of it from today. And you will be all there.&lt;/p&gt;&#xA;" OwnerUserId="8843" LastActivityDate="2010-12-12T16:45:25.177" />
  <row Id="25796" PostTypeId="1" AcceptedAnswerId="25850" CreationDate="2010-12-12T16:58:33.043" Score="3" ViewCount="177" Body="&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;does someone know where this quote comes from? I don't know it literally, but I know what is is about. Something like:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Writing code more than once is a waste&#xA;  of energy and creativity.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I think that it was in some article about the definition of hacking or so, but I can't find it.&lt;/p&gt;&#xA;" OwnerUserId="7114" LastActivityDate="2010-12-12T23:06:29.960" Title="Source of this quote about code reusage?" Tags="&lt;code-reuse&gt;&lt;quotes&gt;" AnswerCount="1" CommentCount="4" />
  <row Id="25797" PostTypeId="2" ParentId="25786" CreationDate="2010-12-12T16:59:36.763" Score="6" ViewCount="" Body="&lt;p&gt;Define &quot;lose&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Firstly there are currently 5 - erk no - &lt;em&gt;at least&lt;/em&gt; 6 smartphone operating systems in play:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Symbian&lt;/li&gt;&#xA;&lt;li&gt;WebOS&lt;/li&gt;&#xA;&lt;li&gt;Android&lt;/li&gt;&#xA;&lt;li&gt;iOS&lt;/li&gt;&#xA;&lt;li&gt;Windows Phone 7&lt;/li&gt;&#xA;&lt;li&gt;Blackberry&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So, the first thing to say is that in terms of the smartphone market as whole? Probably not a lot, smartphones are hugely significant because the probability exists that phones - and hence smartphones - will be way that a large chunk of the world population will gain access to the internet - if one falls then others will continue to fight for that market.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly in terms of Microsoft - well see above, there is a lower spec standard for WP7 defined in order that they can push lower cost handsets into emerging markets. Shifting their O/S gets users onto their other services - live registrations, XBox, income from apps, etc. So if MS do withdraw its going to be off the back of a huge spend - so it won't be good for Microsoft - but equally MS have a huge amount of money to spend...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One last thing - its not the &quot;mobile phone&quot; battle, its the smartphone battle.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;An additional thought:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are they likely to (have to) withdraw? I seriously doubt it. WP7 is &lt;em&gt;good&lt;/em&gt; - its currently less capable in many respects than Windows Mobile 6.5 and I think the OS is about 80% done - but what's there is a joy to use and is probably almost all of what most people want. It works. Very, well. I think that for consumers it will be there early next year. The &quot;missing&quot; features for business will be coming too they ain't sitting still. Of course everyone else is moving on too - that's what makes it fun (-: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are they likely to dominate (in terms of mindshare or anything else) like Apple? A flat &lt;strong&gt;No&lt;/strong&gt; - but they can be more than adequately successful.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-12-12T16:59:36.763" CommentCount="3" />
  <row Id="25798" PostTypeId="2" ParentId="25786" CreationDate="2010-12-12T17:05:28.397" Score="1" ViewCount="" Body="&lt;p&gt;Your specific question is about the consequence to MS's business prospects, so I'll address that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft's &quot;competitive moat&quot; is the Windows API, for which there are tons of desktop applications. They can keep charging the &lt;em&gt;tax&lt;/em&gt; for that for a long time to come since many of those applications will not be rewritten. Their troubles in the mobile space won't really impact that market.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, a lot of &lt;em&gt;new&lt;/em&gt; software will not be written particularly for the Windows API. That's not unique to mobile; we've seen this transition for some time now in the web space. On top of that, their newest development platform (.NET) is not exclusive to MS since Mono runs on other OSes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So while the MS cash cow won't be hurt for some time, they firm will have a tough time entering the newest frontier. The closest analogy I can think of at the moment is IBM's stumbles in the PC industry (ironic given how they started it) and how they've been relegated to legacy mainframes; their successful pivot in the 1990's was to become a consulting shop for enterprise customers. I don't see the same thing happening to MS.&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-12T17:05:28.397" CommentCount="1" />
  <row Id="25799" PostTypeId="2" ParentId="25786" CreationDate="2010-12-12T17:20:04.563" Score="2" ViewCount="" Body="&lt;p&gt;How it matters to developers is that the market is splitting up.  It used to be that most people developed for MS Windows, which was a real good thing for Microsoft, and put most developers in the position of competing in a vast market (some developers worked on Macintoshes just to get into a smaller market).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether Microsoft entrenches itself in the phone market is irrelevant to anybody except Microsoft investors.  What's going to happen is that there will be plenty of different types of smart phones out there, and there will be different markets.  They will be qualitatively different also:  while iOS runs on a fairly homogenous group of devices, Android runs on many different ones, and WP 7 presumably also will if it succeeds.  Pick your development environment.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-12T17:20:04.563" />
  <row Id="25800" PostTypeId="2" ParentId="25782" CreationDate="2010-12-12T17:33:49.113" Score="-2" ViewCount="" Body="&lt;p&gt;You should take some time and find the one that suits you best&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At work(Java centric) I use IntelliJ IDEA which have fabulous support for the web technologies you mentioned&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They have also created more web centric editors you might try&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.jetbrains.com/products.html&quot; rel=&quot;nofollow&quot;&gt;http://www.jetbrains.com/products.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If $$$ is a concern I would recomend guess Aptana&lt;/p&gt;&#xA;&#xA;&lt;p&gt;/Web developer&lt;/p&gt;&#xA;" OwnerUserId="9821" LastActivityDate="2010-12-12T17:33:49.113" CommentCount="2" />
  <row Id="25801" PostTypeId="2" ParentId="25782" CreationDate="2010-12-12T17:52:53.453" Score="0" ViewCount="" Body="&lt;p&gt;Coda and Espresso are indeed the two main ones. As for which of these two should you use, the real answer is simply, &quot;whichever you prefer best&quot;. Can you try them both out and see what you like before you commit?&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-12T17:52:53.453" CommentCount="1" />
  <row Id="25802" PostTypeId="2" ParentId="20745" CreationDate="2010-12-12T17:53:11.530" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blogs.windwardreports.com/davidt/2009/11/free-book-no-bugs.html&quot; rel=&quot;nofollow&quot;&gt;No Bugs!&lt;/a&gt; - It's short and the really useful part is the first 2 chapters. And it's free (click the link for a PDF of the book).&lt;/p&gt;&#xA;" OwnerUserId="9823" LastActivityDate="2010-12-12T17:53:11.530" CommentCount="1" />
  <row Id="25803" PostTypeId="2" ParentId="25722" CreationDate="2010-12-12T18:00:17.867" Score="4" ViewCount="" Body="&lt;p&gt;The whole single-dispatch class-crap. I much prefer how LISP-style &quot;classes&quot; [CLOS] work (in a nutshell: multiple-dispatch 'methods' as freestanding functions).&lt;/p&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-12-12T18:00:17.867" CommentCount="1" />
  <row Id="25804" PostTypeId="2" ParentId="25782" CreationDate="2010-12-12T18:05:38.740" Score="0" ViewCount="" Body="&lt;p&gt;You're going to be unable to find an IDE that gives you the power of individual tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can, however, create a good development environment without it being closely integrated:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Editors:&lt;/strong&gt; &lt;a href=&quot;http://code.google.com/p/macvim/&quot; rel=&quot;nofollow&quot;&gt;Vim&lt;/a&gt;, &lt;a href=&quot;http://emacsformacosx.com/&quot; rel=&quot;nofollow&quot;&gt;Emacs&lt;/a&gt;, &lt;a href=&quot;http://macromates.com/&quot; rel=&quot;nofollow&quot;&gt;TextMate&lt;/a&gt; and &lt;a href=&quot;http://www.panic.com/coda/&quot; rel=&quot;nofollow&quot;&gt;Coda&lt;/a&gt; are the leaders. I don't know much about Coda, but the completion for Emacs and TextMate is really good. Vim and GNU Emacs have pretty decent Mac integration now, and Emacs' completion is much smarter when using the &lt;a href=&quot;http://ourcomments.org/Emacs/nXhtml/doc/nxhtml.html&quot; rel=&quot;nofollow&quot;&gt;nXhtml&lt;/a&gt; package.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Environment:&lt;/strong&gt; Use &lt;a href=&quot;http://getfirebug.com/&quot; rel=&quot;nofollow&quot;&gt;Firebug for Firefox&lt;/a&gt; and use the built-in Developer Tools for Chome and IE8. Firebug Lite can be used with IE7 and earlier. You might also want to check out &lt;a href=&quot;http://www.charlesproxy.com/&quot; rel=&quot;nofollow&quot;&gt;Charles Proxy&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Git:&lt;/strong&gt; You'll be unable to match the power of using Git on the command line. Check out &lt;a href=&quot;http://gitx.frim.nl/&quot; rel=&quot;nofollow&quot;&gt;GitX.app&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="9776" LastActivityDate="2010-12-12T18:05:38.740" CommentCount="1" />
  <row Id="25805" PostTypeId="2" ParentId="296" CreationDate="2010-12-12T18:12:02.073" Score="1" ViewCount="" Body="&lt;p&gt;ask what FEATURES the language of the future will have and then narrow down the choices&lt;/p&gt;&#xA;&#xA;&lt;p&gt;for example, i can say with certainty that the &quot;language of the future&quot; will have to be amenable to straightforward parallel and concurrent programming. multicore isn't going away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;take it from there...&lt;/p&gt;&#xA;" OwnerUserId="6664" LastActivityDate="2010-12-12T18:12:02.073" />
  <row Id="25806" PostTypeId="2" ParentId="25722" CreationDate="2010-12-12T18:18:14.537" Score="6" ViewCount="" Body="&lt;p&gt;For me, easily the fact that pointers are a type but the syntax makes it look like a property of the variable name.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int x, y;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;creates two ints.  Great!&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int* x, y;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;creates ... an int pointer and an int.  WTF?!?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thus good practice is to associate the pointer with the variable name, like so:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int *x, *y;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Just plain stupid.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastEditorUserId="9771" LastEditorDisplayName="" LastEditDate="2010-12-19T00:32:21.603" LastActivityDate="2010-12-19T00:32:21.603" CommentCount="4" />
  <row Id="25807" PostTypeId="2" ParentId="25707" CreationDate="2010-12-12T18:26:58.307" Score="3" ViewCount="" Body="&lt;p&gt;At my last job we asked candidates to rate themselves on a scale from 1 to 10 as to their fluency with certain programming languages. Sadly, after interviewing them, their self assessment rarely matched up with their performance. I didn't blame them because self assessments can be difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's what we looked for during the interview:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Have they written or published a book on the language? (Instant 10/10)&lt;/li&gt;&#xA;&lt;li&gt;Do they blog about the language?&lt;/li&gt;&#xA;&lt;li&gt;Do they have any open-source projects? How good is the code there?&lt;/li&gt;&#xA;&lt;li&gt;Give them a simple interface or skeleton (e.g., linked list) and ask them to write an implementation.&lt;/li&gt;&#xA;&lt;li&gt;Ask them about threading in their language. How much do they know?&lt;/li&gt;&#xA;&lt;li&gt;Ask about a difficult problem they had to solve. How difficult is the problem they describe?&lt;/li&gt;&#xA;&lt;li&gt;Ask them how they debug the language. (&quot;I click the breakpoint button in Eclipse.&quot; &quot;I add &lt;code&gt;print&lt;/code&gt; statements.&quot; &quot;I check for memory leaks with Valgrind, but sometimes Valgrind is wrong.&quot;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Try these questions on your friends or on the most senior person you know. Sure, your answers will be relative, but you'll start to understand how to estimate depth.&lt;/p&gt;&#xA;" OwnerUserId="9776" LastActivityDate="2010-12-12T18:26:58.307" CommentCount="5" />
  <row Id="25808" PostTypeId="2" ParentId="296" CreationDate="2010-12-12T18:57:39.417" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;JavaScript, because of Chrome and Node.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, Haskell got a little exposure, Erlang is attractive because of its concurrency handling, Scala is nice because it's functional and runs on the JVM. But by &quot;big&quot; you probably mean &quot;hot&quot; — the language that gets a lot of fanboyism, that kids are rushing to learn. I say that language is JavaScript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;JavaScript is no longer considered a &quot;toy&quot; language that only does button rollovers. Despite its warts, like the prototype-based object system, functional language lovers love it because of its &lt;a href=&quot;http://en.wikipedia.org/wiki/First-class_function&quot; rel=&quot;nofollow&quot;&gt;first-class functions&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks to Google Chrome, in which a &lt;a href=&quot;http://en.wikipedia.org/wiki/Lars_Bak_%28computer_programmer%29&quot; rel=&quot;nofollow&quot;&gt;very smart man&lt;/a&gt; was hired to write the new V8 JavaScript engine, other browsers have revamped their engines. Now, a lot more computation can be done client-side, and the same language can be used for both form validation and to run &lt;a href=&quot;http://www.youtube.com/watch?v=XhMN0wlITLk&quot; rel=&quot;nofollow&quot;&gt;multiplayer Quake&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The V8 engine is the core of &lt;a href=&quot;http://nodejs.org&quot; rel=&quot;nofollow&quot;&gt;Node&lt;/a&gt;, a powerful platform which can be used to write fast server-side applications in JavaScript. With web applications you'll now be able to share code between the client and server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On top of this is JSON becoming the de facto data interchange format. Instead of being an independent serialization format, JSON just happens to be the way literals are written in JavaScript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks to these things, JavaScript has a lot of room to grow, and I'm betting that we'll start to see some really awesome solutions and frameworks come from these communities.&lt;/p&gt;&#xA;" OwnerUserId="9776" LastActivityDate="2010-12-12T18:57:39.417" CommentCount="1" />
  <row Id="25809" PostTypeId="2" ParentId="25779" CreationDate="2010-12-12T18:58:41.227" Score="1" ViewCount="" Body="&lt;p&gt;They're different servers that are optimized to deliver particular types of content. For example, if you can segregate all the static content from the dynamic content, you can use a &lt;em&gt;very&lt;/em&gt; fast specialized webserver to deliver the static content which can assume that all it does is just serve up data from files, but which can't write to any of them (in fact, you can configure the server so that it can't open any file at all for writing or overwrite any part of the program, making the server extremely hardened against attacks). Looking at the URL, I'd guess that the data is actually being served from a Content Delivery Network as well (i.e., a geographically distributed collection of identical servers).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it should be noted that &lt;em&gt;none&lt;/em&gt; of that will fool hackers. Or anyone else with web development tools. The purpose is to optimize servers for delivering particular types of content, with particular risk profiles, load patterns, etc.&lt;/p&gt;&#xA;" OwnerUserId="9673" LastActivityDate="2010-12-12T18:58:41.227" CommentCount="1" />
  <row Id="25810" PostTypeId="2" ParentId="25100" CreationDate="2010-12-12T19:11:53.030" Score="0" ViewCount="" Body="&lt;h1&gt;Randall Munroe&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;We all read &lt;a href=&quot;http://xkcd.com&quot; rel=&quot;nofollow&quot;&gt;his comics&lt;/a&gt; no matter which community we're part of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We don't even have the choice of reading them — every time he creates a good one you'll receive 60 emails an IMs telling you to read it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And the comics have begun to affect reality (&lt;a href=&quot;http://multithread.org/?q=node/108&quot; rel=&quot;nofollow&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;http://blog.xkcd.com/2008/10/08/youtube-audio-preview/&quot; rel=&quot;nofollow&quot;&gt;2&lt;/a&gt;, &lt;a href=&quot;http://blog.xkcd.com/2007/03/28/cory-doctorow-part-ii/&quot; rel=&quot;nofollow&quot;&gt;3&lt;/a&gt;, etc).&lt;/p&gt;&#xA;" OwnerUserId="9776" LastActivityDate="2010-12-12T19:11:53.030" CommunityOwnedDate="2010-12-12T19:11:53.030" />
  <row Id="25811" PostTypeId="1" CreationDate="2010-12-12T19:25:21.510" Score="3" ViewCount="197" Body="&lt;p&gt;What database features/elements are necessary for a programmer to understand in order to create non-trivial applications?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was once asked in a job interview (by a DBA) to rate my understanding of database concepts -- I thought it would be interesting to get opinions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking for basic and advanced skills, also any opinions on where developers are typically the weakest (what lack of skills or knowledge creates the most problems).  Also, is it better that developers are need-to-know, and pass more advanced work onto a DBA -- where does that &quot;line in the sand&quot; exist?&lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-12-13T06:17:59.530" Title="What list of database features/elements are necessary for a programmer to understand?" Tags="&lt;best-practices&gt;&lt;database-development&gt;" AnswerCount="6" />
  <row Id="25812" PostTypeId="1" CreationDate="2010-12-12T19:37:08.727" Score="6" ViewCount="881" Body="&lt;p&gt;(if anything!) I picked up Erlang last night again because I ran into a problem in Project Euler that I thought would be a perfect fit.  After about a short time of coding, I had a solution that was extremely simple and elegant (for something I created) -- the main function being only a few lines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is what is keeping people from adopting Erlang more? &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;For current developers, what do you feel is missing to increase adoption (libraries, language features, IDE/toolsets)?&lt;/li&gt;&#xA;&lt;li&gt;For people who tried but were turned off by the language -- what aspects were difficult to understand or missing, or did you find a functional language that was better suited for your tasks?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-12-17T07:12:30.713" Title="What's wrong with Erlang?" Tags="&lt;programming-languages&gt;&lt;erlang&gt;" AnswerCount="7" CommentCount="3" />
  <row Id="25813" PostTypeId="2" ParentId="25617" CreationDate="2010-12-12T19:38:12.437" Score="4" ViewCount="" Body="&lt;p&gt;I have been a second hand witness to one of the worst implementations of SCRUM I have ever heard of.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I company I won't name decided to embark on a multi-year project to reinvent and ultimately standardize its core product.  It's a large company with a long history of waterfall development cycles.  The company is large and successful, and the waterfall approach has served it well in terms of directing it's inertia toward working products.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, as with all things, most projects fail.  This particular company felt that failure would be a very poor outcome, it hoped that this new project would lead it into the future, and if this project were to fail it would leave the company too far behind its competitors to ever catch up.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And so a number of divisions sold management on the idea of using an agile development scheme instead, specifically SCRUM.  And so they hired a bunch of consultants to come in and train each team on the SCRUM process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And this brings me to my friend who informed me of this situation.  He, and a group of other core engineers drafted a crude plan of assigning a handful of their team to build a prototype of the project, as best as it was currently specified in this early stage (really 'just a like our current widget, but also does this and that too!'), as quickly and cheaply as possible.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you don't build prototypes before you design the product.  This is not done.  Or at least this is how the management felt on the topic.  Even when the team of engineers begged for permission to start a prototype on their own time, the were swiftly shut down.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yet, the SCRUM went on.  Instead of a backlog of real defects on a partially working prototype, they filled their backlog with design or specification tasks, instead of sprints that improved the functionality of a prototype, they logged hours of documentation written.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's now a little more than two years later, and suddenly, what was originally a ten year goal has swiftly been reduced to an expectation of an immediate deliverable.  After all, the promise of agile is that you get a deliverable much faster than waterfall.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I would say that the problem here isn't SCRUM, but really in the buy-in of agile.  If for some reason there is some restriction on actally building the product, you can't be doing agile.  At best you will just go through the motions without any benefit. This is worse than using a waterfall approach alone, because it can &lt;em&gt;look&lt;/em&gt; like agile, and thus it can suggest the results of agile, but those results are impossible.  &lt;/p&gt;&#xA;" OwnerUserId="8656" LastActivityDate="2010-12-12T19:38:12.437" />
  <row Id="25814" PostTypeId="2" ParentId="25811" CreationDate="2010-12-12T19:40:49.670" Score="1" ViewCount="" Body="&lt;p&gt;Developer ought to to know:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;SQL&lt;/li&gt;&#xA;&lt;li&gt;Performance tuning&lt;/li&gt;&#xA;&lt;li&gt;Keying and Partitioning (as far as what you can control)&lt;/li&gt;&#xA;&lt;li&gt;Application deployment&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As for what's left to the administrator:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Installation; creating the database&lt;/li&gt;&#xA;&lt;li&gt;Backup / Recovery&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You may have to understand components that are specific to your environment, like ORM and LINQ.&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-12T19:40:49.670" CommentCount="2" />
  <row Id="25815" PostTypeId="2" ParentId="25812" CreationDate="2010-12-12T19:45:27.710" Score="5" ViewCount="" Body="&lt;p&gt;Well, let me answer as someone who knows virtually nothing about Erlang.  I know Facebook uses it, and I believe it's supposed to be great for certain multithreaded applications.  Beyond that, I have no idea what the pros and cons are.  I don't know anyone who's used it, I've never heard anyone talk about it, I don't know why I should use it, and I've stumbled across very few mentions of it anywhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I suppose my answer would be that there's not a vocal community for Erlang.  People simply don't know about it, and no one's telling them.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastActivityDate="2010-12-12T19:45:27.710" CommentCount="2" />
  <row Id="25816" PostTypeId="2" ParentId="25812" CreationDate="2010-12-12T19:45:35.577" Score="4" ViewCount="" Body="&lt;p&gt;Most programmers are used to concepts in languages like C++ and Python. Erlang, Haskell, and other more advanced languages are radically different from the common paradigms and have a higher learning curve. To justify that extra work, the language has to be able to offer something new to the developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java was widely accepted because Sun marketed it as the language of the Internet. Similary Erlang would have to market itself for some other new domain, presumably cloud computing or multicore processing. So a toolset that focused on those new domains would &quot;sell&quot; the language better.&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-12T19:45:35.577" CommentCount="2" />
  <row Id="25817" PostTypeId="2" ParentId="940" CreationDate="2010-12-12T19:53:20.397" Score="0" ViewCount="" Body="&lt;p&gt;Not ClearCase, at least for a Unix/Linux system (perhaps with Windows the installer is easier).  It was easier for me to learn a new tool, Perforce, rather than upgrading our ClearCase server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I currently use Perforce at work and I like it but I have no idea if it is the best.  Setting up the command line environment and the Perforce Server is a bit awkward, but using the Visual Client is fairly easy.  I like to think the users have a fairly easy time with it for everyday tasks; it is just the initial setup takes some work.&lt;/p&gt;&#xA;" OwnerUserId="9485" LastActivityDate="2010-12-12T19:53:20.397" CommunityOwnedDate="2011-03-07T21:04:52.237" />
  <row Id="25818" PostTypeId="2" ParentId="25707" CreationDate="2010-12-12T20:01:57.893" Score="1" ViewCount="" Body="&lt;p&gt;If you can do &lt;em&gt;all&lt;/em&gt; &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt; problems correctly in language X, I would consider you to be an expert in language X.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-12T20:01:57.893" CommentCount="3" />
  <row Id="25819" PostTypeId="2" ParentId="25761" CreationDate="2010-12-12T20:02:00.420" Score="0" ViewCount="" Body="&lt;p&gt;I think what you want is something that offers enough difference with the smaller points and not that many options for larger stories, based on the fact that anything over 20 or 40 needs to be broken down anyway. This makes sure that you support finer differences for small and regular sized stories and only rough differences for larger sized stories.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When we were doing Scrum we did fine with the Fibonacci based points with 20 being the highest number that we thought would realistically fit into a sprint. If something was 40 or 100 it was basically the developers saying that the story was too large.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that I don't think it makes such a great difference. I'd prefer the Fibonacci based sequence because I've found that it works. However, what works for the team and the product you're developing is fine.&lt;/p&gt;&#xA;" OwnerUserId="7482" LastActivityDate="2010-12-12T20:02:00.420" />
  <row Id="25820" PostTypeId="2" ParentId="39" CreationDate="2010-12-12T20:13:53.623" Score="2" ViewCount="" Body="&lt;p&gt;Vision without action is a daydream. &#xA;Action without vision is a nightmare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;proverb from japan&lt;/p&gt;&#xA;" OwnerUserId="4999" LastActivityDate="2010-12-12T20:13:53.623" CommunityOwnedDate="2010-12-12T20:13:53.623" />
  <row Id="25821" PostTypeId="1" CreationDate="2010-12-12T20:14:46.883" Score="0" ViewCount="79" Body="&lt;p&gt;I've launched the site for programmers.&#xA;It is a kind of language/technology/framework independent community(or collaborative blog) with the special posts filter. The idea of this site and it's special features should be interesting for people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've tried to send invitations to some bloggers, but received no answers. It seems that it is not effective way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is AdWords can be effective? Is there any other ways to share my site with the programmers?&lt;/p&gt;&#xA;" OwnerUserId="14304" LastActivityDate="2010-12-12T20:14:46.883" ClosedDate="2010-12-12T23:25:49.527" Title="How to share site with the programmers?" Tags="&lt;web-development&gt;&lt;community&gt;" CommentCount="1" />
  <row Id="25822" PostTypeId="2" ParentId="25594" CreationDate="2010-12-12T20:15:05.243" Score="0" ViewCount="" Body="&lt;p&gt;1: Always make proper comment to your code&#xA;2: Take backup before making larger change&#xA;3: Make proper document even if it's minor change&#xA;4: Don't concentrate much on making less number of line in code.. end user can never see that. What he/she will see the speed of the execution of code which is more important for them.&lt;/p&gt;&#xA;" OwnerUserId="1474" LastActivityDate="2010-12-12T20:15:05.243" CommentCount="1" />
  <row Id="25823" PostTypeId="2" ParentId="25276" CreationDate="2010-12-12T20:20:03.070" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Clever code&quot; is any code for which the programmer had to think really hard or use some advanced skill to write it. The problem with that it disregards the need for a certain &quot;cleverness margin&quot;, best expressed by Brian W. Kernighan: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.&quot; &lt;/p&gt;&#xA;" OwnerUserId="9836" LastActivityDate="2010-12-12T20:20:03.070" CommunityOwnedDate="2011-01-08T19:36:34.897" />
  <row Id="25824" PostTypeId="2" ParentId="940" CreationDate="2010-12-12T20:25:33.770" Score="1" ViewCount="" Body="&lt;p&gt;MPW: Well, I can't really give it a review in spite of my efforts. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This was back when I was learning programming in high school, and the only really free C++ compiler to be had was Macintosh Programming Workbench, which I kept on a zip disk and popped into whichever Performa was available in the lab.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;MPW came with dozens of tools (none of which were resedit, that was a separate download), and one of them was a version control utility.  It popped open a small window with a single line of text, and you were to drag and drop your projects or files onto it.  It had no documentation that I was ever able to discover, unusual considering everything else seemed to have great docs, and so I never quite worked out how to use it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That was my first brush with VC, and the last one for a good long while.  Now I use git for everything.&lt;/p&gt;&#xA;" OwnerUserId="8656" LastActivityDate="2010-12-12T20:25:33.770" CommunityOwnedDate="2011-03-07T21:04:52.237" CommentCount="1" />
  <row Id="25825" PostTypeId="1" AcceptedAnswerId="25827" CreationDate="2010-12-12T20:35:49.190" Score="2" ViewCount="185" Body="&lt;ol&gt;&#xA;&lt;li&gt;Why do developers and end users love/hate Symbian? &lt;/li&gt;&#xA;&lt;li&gt;What makes Android so popular compared to Symbian?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-13T07:34:11.770" ClosedDate="2010-12-14T20:17:46.393" Title="Why do you love/hate Symbian?" Tags="&lt;operating-systems&gt;&lt;android&gt;&lt;symbian&gt;" AnswerCount="2" />
  <row Id="25826" PostTypeId="1" AcceptedAnswerId="25832" CreationDate="2010-12-12T20:44:45.263" Score="0" ViewCount="132" Body="&lt;p&gt;Disclaimer: I do not specialize in [desktop] GUI design, but have to do it on occasion. I have seen co-worker's dialogs worse than the once I created, and my major problem with them is that they can be unnecessarily big, and things do not line up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be more specific, I mostly do it in .Net Winforms, but occasionally with MFC(C++) as well. My simple heuristic so far is: I try to make the sizes and positions divisible by 10 ... or 5 if I have to. Something like a Label would be an exception, for it knows its own size. I find that things mostly look OK after I am done (of course there are other considerations such as grouping things intelligently, etc.), and I am satisfied because I know that every control has non-random position, and my OCD can now go back to sleep.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Somewhere at work I found a guide from MSFT about ideal spacing between things. Sorry, I do not have a source for it available. It has many rules, such as (for instance) 2 pixels between a button and a border, 3 pixels between two buttons horizontally, 4 pixels vertically, unless ... it is pretty complicated and not practical to remember. Additionally, I simply do not trust that MSFT knew much about GUI design, not until they hired an ex-apple person to help them design the ribbons for Office 2007, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What rules/heuristics do you follow? References to short articles and other links are welcome.&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-12-12T21:16:30.813" Title="Heuristics for absolutely-positioned GUI design - are multiples of 5 a good idea?" Tags="&lt;gui-design&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="25827" PostTypeId="2" ParentId="25825" CreationDate="2010-12-12T20:57:17.670" Score="3" ViewCount="" Body="&lt;p&gt;I programmed an app for the Symbian platform around 10 years ago, when it was going to be &lt;em&gt;the next big thing&lt;/em&gt;.  The native SDK is all C++ based (I believe that is still the case), and compared to other platforms, was difficult to write (and apparently &lt;a href=&quot;http://blogs.gartner.com/nick_jones/2009/12/02/why-is-symbian-application-development-so-difficult/&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;still is&lt;/em&gt;&lt;/a&gt;) due to a number of rules one had to follow to insure the code didn't leak resources and consumed as little power as possible.  Also, the development environment was fairly difficult to set up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the time, there were several brands of phones that were hosting the platform.  Now it seems it is only on Nokia devices, which no longer have much of a presence in the US.  So I think, like myself, a lot of US Symbian developers have left for greener pastures.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-12-13T00:24:37.787" LastActivityDate="2010-12-13T00:24:37.787" CommentCount="1" />
  <row Id="25828" PostTypeId="2" ParentId="25826" CreationDate="2010-12-12T21:00:21.103" Score="5" ViewCount="" Body="&lt;p&gt;Forget about &quot;nice round numbers&quot;, you will have to experiment with spacing to get something that looks nice, a fixed multiple just gets in the way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd have to say that MSFT programs do tend to look pretty polished when it comes to such details, so despite your disbelief I would guess that the guide you found is probably pretty competent. Whether the higher level interface is clever or the graphical elements look good are different questions.&lt;/p&gt;&#xA;" OwnerUserId="8737" LastActivityDate="2010-12-12T21:00:21.103" CommentCount="1" />
  <row Id="25829" PostTypeId="2" ParentId="25826" CreationDate="2010-12-12T21:02:32.770" Score="1" ViewCount="" Body="&lt;p&gt;One of the things I do is I try to avoid being put in a position where I get to decide where anything goes in the first place.  My initial interaction with GUI design was with Tcl/TK, which uses a very clever scheme of building the layout dynamically based on content (this is actually a model roughly reproduced in the CSS box model).  A line of text has a predetermined size, a button can guess it's size based on the text it contains, a box can guess its size from the number and size of the buttons it contains, and so on up to the toplevel window.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It does take some adjustment using this technique to make sure that things that should line up, do, but once you've done that, the layout suddenly becomes very fluid.  This is especially valuable when internationalizing the UI, since phrases which are longer in another language don't overrun their containers.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since most things are on the web now, this principle still crudely applies, but CSS more or less expects you to make many subtle choices about how things are spaced.  I'll usually start off by building a rough interface with no CSS.  Then I'll start integrating any of the design mockups (from photoshop/illustrator/mspaint), and add the needed CSS to get the spacing where it needs to be.  &quot;Where it needs to be&quot; mostly means what is easy to read.  Nothing trumps readability here.  &lt;/p&gt;&#xA;" OwnerUserId="8656" LastActivityDate="2010-12-12T21:02:32.770" CommentCount="1" />
  <row Id="25830" PostTypeId="2" ParentId="296" CreationDate="2010-12-12T21:10:55.540" Score="0" ViewCount="" Body="&lt;p&gt;Stephens Colebourne's answer to this question on his blog - &lt;a href=&quot;http://www.jroller.com/scolebourne/entry/the_next_big_jvm_language1&quot; rel=&quot;nofollow&quot;&gt;The Next Big JVM Language&lt;/a&gt; - is that at least in Java world it is probably Java itself. In his regard, despite multiple promising candidates like Clojure, Groovy, Scala and Fantom it seems more likely that an incompatible &quot;fixed&quot; version of the old workhorse will emerge and rule again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even though I hope his conclusion is wrong his write up is insightful and well written.&lt;/p&gt;&#xA;" OwnerUserId="9729" LastActivityDate="2010-12-12T21:10:55.540" />
  <row Id="25831" PostTypeId="2" ParentId="25825" CreationDate="2010-12-12T21:12:13.097" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;As a developer the reason I &quot;liked&quot; it is that coding in Symbian C++ gave me the feeling that I'm doing something special and exotic, full of challenges (like solving puzzles all day). Otherwise it is very clumsy. Although everything can be done in Symbian C++, it takes you twice as much time as with other platforms. A positive thing is that with Symbian, you can access pretty much anything on the phone (Want to modify some contacts or the calendar? No problem. Mess with the messages or the incoming/outgoing calls? It's possible! Create an application that runs in the background, completely hidden from the user? Consider it done). You get no such freedom with e.g. iPhone...&#xA;Now that Qt is introduced things will perhaps change, but we are still far from Android or even iPhone. The documentation was also poor compared to other platforms, but since the Symbian foundation and Qt, these are getting better.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Android: creating software is super easy compared to Symbian. The design of their class libraries and the whole development process is remarkable. From the user perspective, I guess both the hardware (for most Android phones) and the UI are superior. The N8 is the first Symbian phone that can be compared to a recent Android phone in terms of usability.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="9842" LastEditorUserId="9842" LastEditorDisplayName="" LastEditDate="2010-12-13T07:34:11.770" LastActivityDate="2010-12-13T07:34:11.770" />
  <row Id="25832" PostTypeId="2" ParentId="25826" CreationDate="2010-12-12T21:16:30.813" Score="1" ViewCount="" Body="&lt;p&gt;If you want to go the &quot;fixed spacing&quot; way, multibles of 10 are ok. Switching down to multiples of 5 is only necessary when you run out of screen real estate. In one company I'm working for, we use a framework where multiples of 10 are the default setting in the (homegrown) GUI editor. Only in very rare occasions someone has to change that. The resulting forms are not exactly aspirants for the beauty contest, but nobody has complained, either.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-12T21:16:30.813" />
  <row Id="25833" PostTypeId="2" ParentId="296" CreationDate="2010-12-12T21:19:23.910" Score="1" ViewCount="" Body="&lt;p&gt;Here's hoping its &lt;a href=&quot;http://www.scala-lang.org/&quot; rel=&quot;nofollow&quot;&gt;SCALA.&lt;/a&gt; There's been a lot of work done on the JVM and java libraries, and it would be awesome if we could continue to take advantage of them with a language that's had the opportunity to build on java. Out of Scala, clojure, and groovy, scala is currently the only one that could really stand to reach java's fame. If only apple hadn't decided to chuck it out the window for future development.&lt;/p&gt;&#xA;" OwnerUserId="1220" LastActivityDate="2010-12-12T21:19:23.910" CommentCount="1" />
  <row Id="25834" PostTypeId="2" ParentId="25594" CreationDate="2010-12-12T21:21:29.947" Score="5" ViewCount="" Body="&lt;p&gt;There's only one thing I always do.  When I'm done with a task, I commit it to version control.  &lt;code&gt;git-gui&lt;/code&gt; allows you to read all of the changes made to each file as you compose your commit meessage. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an almost religious practice, I work my way through every change I made to every file in the commit.  I explain what changed and why.  Most of the time every change can be summarized pretty clearly (&quot;Fixed bug #12345&quot;), and I don't clutter up the commit message with pointless wordy prose.  Sometimes the changes are a bit more involved, and represent conscious decisions to change how a feature works.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On occasion, I can't really remember why I made a change, or at least not well enough to explain it in words.  On those occasions, I don't commit that code.  Those changes get stashed or reverted.  If I don't understand code I just wrote well enough for this, that's a bad sign, and I don't feel guilty about discarding the time I spent on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One advantage of this that may not be so obvious is that it keeps me committing changes frequently.  Sometimes I'll look at a bit of cleverness and have to think about it for a while before I know what it does (Wrote it the previous evening, and forgot how it works by the next day).  Although I can write the summary well for what it does, but This is a good opportunity to go back and add some comments to the source that explains the how and why it does it.  &lt;/p&gt;&#xA;" OwnerUserId="8656" LastActivityDate="2010-12-12T21:21:29.947" CommentCount="1" />
  <row Id="25835" PostTypeId="2" ParentId="296" CreationDate="2010-12-12T21:43:35.510" Score="0" ViewCount="" Body="&lt;p&gt;I think Vala will make a big impression in the GNOME desktop world. If you're familiar with GLib/GObject, you may notice that with its object model and its types and its signals and so on, it seems to want to be a language. Vala is an attempt to create that language. It's similar to C#, and given that there are several major GNOME desktop apps that are currently written in C# on Mono, I think Vala could become the language of choice for GNOME.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be honest, I think we're moving away from general-purpose languages and more towards different languages for different purposes.&lt;/p&gt;&#xA;" OwnerUserId="9846" LastActivityDate="2010-12-12T21:43:35.510" />
  <row Id="25836" PostTypeId="1" AcceptedAnswerId="25897" CreationDate="2010-12-12T21:52:55.253" Score="21" ViewCount="2199" Body="&lt;p&gt;If you could ask a C++ programmer one question to measure their C++ skills, what would it be?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question I think is best is: &lt;strong&gt;Can you call &quot;delete this;&quot; inside a member function?&lt;/strong&gt; (I put this as a link so you can think it through first, then go to &lt;a href=&quot;http://blogs.windwardreports.com/davidt/2009/12/the-best-c-interview-question-ever.html&quot; rel=&quot;nofollow&quot;&gt;The Best C++ Interview Question – Ever!&lt;/a&gt; to see the correct answer.)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't ask this because I expect most people to know the answer. If they did it would not be that useful a question. I ask to see if they can work their way to the correct answer and how they do so.&lt;/p&gt;&#xA;" OwnerUserId="9823" LastActivityDate="2011-03-04T21:14:58.957" CommunityOwnedDate="2011-03-04T20:42:37.403" Title="What is the best C++ interview question?" Tags="&lt;c++&gt;&lt;interview-questions&gt;" AnswerCount="17" FavoriteCount="13" />
  <row Id="25837" PostTypeId="2" ParentId="25722" CreationDate="2010-12-12T21:56:19.323" Score="1" ViewCount="" Body="&lt;p&gt;Pointer and reference idiosyncrasy. I found to have to think extra hard tO figure out if a reference or a pointer is most appropriate. &lt;/p&gt;&#xA;" OwnerUserId="9849" LastActivityDate="2010-12-12T21:56:19.323" CommentCount="1" />
  <row Id="25838" PostTypeId="2" ParentId="25812" CreationDate="2010-12-12T21:58:37.370" Score="3" ViewCount="" Body="&lt;p&gt;Most people seem to be scared off by functional or declarative programming. I think people fear this kind of programming model because it doesn't fit how they're used to doing things in a procedural world. &quot;It's not how computers work,&quot; I hear them protest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Erlang does actually have a couple of real-world problems that make it hard to apply to things like web development: It's notoriously bad at string processing, for example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as I've been able to tell, it has more than enough libraries available to do just about any task, and a good text editor is all you really need to work with it. Exceptions and error reporting is very good. I can't find a reason for it to &lt;em&gt;not&lt;/em&gt; be popular.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-12-12T21:58:37.370" CommentCount="3" />
  <row Id="25839" PostTypeId="2" ParentId="25722" CreationDate="2010-12-12T22:01:02.210" Score="5" ViewCount="" Body="&lt;p&gt;Header files. What's the point?&lt;/p&gt;&#xA;" OwnerUserId="4852" LastActivityDate="2010-12-12T22:01:02.210" CommentCount="3" />
  <row Id="25840" PostTypeId="2" ParentId="25836" CreationDate="2010-12-12T22:05:35.273" Score="42" ViewCount="" Body="&lt;p&gt;The best C++ interview question would be a programming problem, not a quiz question.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-12T22:05:35.273" CommunityOwnedDate="2011-03-04T20:42:37.403" CommentCount="7" />
  <row Id="25841" PostTypeId="2" ParentId="25836" CreationDate="2010-12-12T22:05:45.833" Score="5" ViewCount="" Body="&lt;p&gt;That depends a lot on what kind of C++ is written at your company. (When I had to hire C++ programmers, I never asked about &lt;code&gt;delete&lt;/code&gt;, because I asked them about techniques to avoid having to write &lt;code&gt;delete&lt;/code&gt; altogether.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally, you want to hire people that write code above the level of what your team currently writes, but not too high above it, unless you want to combine this with training the team to take it to a higher level. &lt;/p&gt;&#xA;" OwnerUserId="1512" LastActivityDate="2010-12-12T22:05:45.833" CommunityOwnedDate="2011-03-04T20:42:37.403" />
  <row Id="25842" PostTypeId="2" ParentId="25836" CreationDate="2010-12-12T22:07:46.643" Score="25" ViewCount="" Body="&lt;p&gt;I would ask them what they like about C++0x. From this I could &quot;bucket&quot; them into various stereotypes:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;super old school, uses C++ compilers to compile C code&lt;/li&gt;&#xA;&lt;li&gt;old school, scared of (or sees no point to) STL, hasn't been keeping up with the changes&lt;/li&gt;&#xA;&lt;li&gt;loves lambdas, loves STL getting faster from rvalue references, big RAII fan, hot to use shared_ptr, unique_ptr etc&lt;/li&gt;&#xA;&lt;li&gt;is bitter because all the boost code written over the last few years will need to be adapted to use C++0x equivalents&lt;/li&gt;&#xA;&lt;li&gt;insane template metaprogrammer who makes my head explode while answering a relatively short question&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Chances are some of these buckets are perfect for you and some are &quot;thanks for coming in&quot;. As a question that gets you a lot of information fast, this is my winner.&lt;/p&gt;&#xA;" OwnerUserId="285" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2010-12-12T22:23:22.157" LastActivityDate="2010-12-12T22:23:22.157" CommunityOwnedDate="2011-03-04T20:42:37.403" CommentCount="3" />
  <row Id="25843" PostTypeId="2" ParentId="25786" CreationDate="2010-12-12T22:20:47.003" Score="5" ViewCount="" Body="&lt;p&gt;The biggest advantage Microsoft has is the .NET developer community. There are a lot of niche market business software companies that will have the expertise to build applications that interface with their products on a mobile phone. Companies may be willing to buy phones for employees to work with their in house apps.   &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-12T22:20:47.003" CommentCount="3" />
  <row Id="25844" PostTypeId="2" ParentId="25836" CreationDate="2010-12-12T22:28:12.517" Score="14" ViewCount="" Body="&lt;p&gt;Just for fun, I've had C++ programmers reeling with this little baby:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Why does this run into an infinite loop (and yes it's typed correctly)?&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int x=0;&#xA;while (x&amp;lt;3) {&#xA;  x = x++;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It's amazing how many get tripped up. Of course, I can't use it any more &lt;a href=&quot;http://stackoverflow.com/questions/226002/whats-the-difference-between-x-x-vs-x&quot;&gt;after it appeared on Stack Overflow&lt;/a&gt;. Mutter... mutter...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(To get the proper answer read the confession and definitely read the comments)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Added bonus question&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is the all-time classic FizzBuzz (as featured in the now-famous &lt;a href=&quot;http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html&quot; rel=&quot;nofollow&quot;&gt;Coding Horror article&lt;/a&gt;). I've never actually used it in an interview myself, but after chucking it around the development team one lunchtime the results were... um... surprisingly accurate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Confession&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was caught up on the standard &quot;x++ returns the original value&quot; response. However, the correct answer is that the behaviour is undefined because of sequence points. Nobody ever mentioned sequence points in all the times I used this until I posted it here. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been educated and I'd genuinely like to thank all those who have taken the time to comment. &lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2011-02-18T10:18:00.440" LastActivityDate="2011-02-18T10:18:00.440" CommunityOwnedDate="2011-03-04T20:42:37.403" CommentCount="19" />
  <row Id="25845" PostTypeId="2" ParentId="25836" CreationDate="2010-12-12T22:35:27.330" Score="6" ViewCount="" Body="&lt;p&gt;I believe I would ask them what else they know, or more likely give them a question in something quite different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Far too many C++ coders about who have little experience of other languages.  Narrow experience is usually restrictive.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-12T22:35:27.330" CommunityOwnedDate="2011-03-04T20:42:37.403" />
  <row Id="25846" PostTypeId="2" ParentId="25786" CreationDate="2010-12-12T22:44:11.890" Score="1" ViewCount="" Body="&lt;p&gt;IMO their biggest problem is that they apparently don't have a tablet strategy with WP7. The iPad is already there, Android mostly too. BlackBerry and WebOS are at least close... and Microsoft? They are trying to put Windows 7 on tablets, but a mouse-oriented Desktop OS and its programs IMO will never be able to deliver a satisfactory user experience on a tablet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why does it matter? Because tablets are more likely than smartphones to replace PCs for a lot of people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, IMO it doesn't matter that much whether or not WP7 fails.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-12T22:44:11.890" CommentCount="2" />
  <row Id="25847" PostTypeId="2" ParentId="25811" CreationDate="2010-12-12T22:52:39.477" Score="3" ViewCount="" Body="&lt;p&gt;Normalisation - and all the other details of how to properly structure a database, couple of random examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;That you almost always want to use a synthetic key (in my case most often an auto incrementing int called ID)&lt;/li&gt;&#xA;&lt;li&gt;That you want to store dates, times and the like as native types (or as close as you can get) &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-12-12T22:52:39.477" CommentCount="1" />
  <row Id="25849" PostTypeId="2" ParentId="25234" CreationDate="2010-12-12T23:05:50.043" Score="4" ViewCount="" Body="&lt;p&gt;I'm surprised this hasn't been mentioned yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need to stop, then &lt;strong&gt;stop&lt;/strong&gt; cold turkey, mid-line, in the middle of something easy and obvious. Your IDE will probably put some red and yellow lines everywhere saying there's an error, this is okay. Maybe make a short /* comment */ about the item you worked on prior to that line. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Save your work and exit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you come back the next day, you'll be like, &quot;oh, right, I was in the middle of X because of Y&quot; and it shouldn't be too hard to slip back into what you were working on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The last thing I worked on (minor hobby application for personal use), I would do this when I noticed the hours fly by when I was hunting bugs. When it got too late, I would think, &quot;screw this&quot; and save and exit, compilation errors be damned. Then when I'd open it again, I'd be like, &quot;errors? wtf?!1/,&quot; which would turn into, &quot;oh yeah, I was trying to test why this method was throwing an exception.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was surprisingly efficient and I plan on using this technique from now on.&lt;/p&gt;&#xA;" OwnerUserId="5624" LastActivityDate="2010-12-12T23:05:50.043" CommentCount="4" />
  <row Id="25850" PostTypeId="2" ParentId="25796" CreationDate="2010-12-12T23:06:29.960" Score="3" ViewCount="" Body="&lt;p&gt;Potentially a paraphrasing of this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A lot of modern programming focusses&#xA;  on making code reusable and modulated.&#xA;  This is clearly a good idea since&#xA;  there is no point writing code more&#xA;  than once since it is just a waste of&#xA;  time and gets pretty boring.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;from &lt;a href=&quot;http://blog.quantumstate.co.uk/reusing-code.html&quot; rel=&quot;nofollow&quot;&gt;Quantumstate's blog article &quot;Reusing Code&quot;.&lt;/a&gt; The original link fails due to a Database error, but the &lt;a href=&quot;http://webcache.googleusercontent.com/search?q=cache%3abyiG4qLtB0gJ%3ablog.quantumstate.co.uk/reusing-code.html+%22writing+code+more+than+once%22&amp;amp;cd=2&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;gl=uk&quot; rel=&quot;nofollow&quot;&gt;Google cache seems OK&lt;/a&gt; in Dec 2010.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-12T23:06:29.960" CommentCount="1" />
  <row Id="25851" PostTypeId="2" ParentId="25811" CreationDate="2010-12-12T23:16:37.403" Score="1" ViewCount="" Body="&lt;p&gt;Non-SQL Developers should know the concept or RDBMS, PK/FK/CK, normalisation, indexing, transactions, table design etc. They should have an idea of how data is stored on disk and moved to memory. I would say basic to intermediate SQL along with understanding query plans, joins  is a must too.&lt;br&gt;&#xA;Specialist SQL developers should know the whole gamut of Database topics, optmisation and advanced queries with in-depth knowledge of particular RDBMS product like Oracle etc in which they specialise.&lt;/p&gt;&#xA;" OwnerUserId="3414" LastActivityDate="2010-12-12T23:16:37.403" />
  <row Id="25852" PostTypeId="1" CreationDate="2010-12-13T00:07:24.407" Score="1" ViewCount="145" Body="&lt;p&gt;I've tried out two javascript form validation frameworks - jQuery validation, and jQuery Tools validator - and I've found both of them lacking. jQuery validation lacks the clear separation between the concepts of &quot;validating&quot; and &quot;displaying validation errors&quot;, and is highly inflexible when it comes to displaying dynamic error messages. jQuery Tools on the other hand lacks decent remote validation support (to check if a username exists for example). Even though jQuery validation supports remote validation, the built-in method requires the server to respond in a particular format. In both cases, any sort of asynchronous validation is a pain, as is defining rules for dependencies between multiple inputs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm thinking of rolling my own framework to address these shortcomings, but first I want to ask... have others experienced similar annoyances with javascript validation? What did you end up doing? What are some common validation requirements you've had which really should be catered for? And are there other, much better frameworks out there which I've missed?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking primarily at jQuery-based frameworks, though well-implemented frameworks built on other libraries can still provide some useful ideas.&lt;/p&gt;&#xA;" OwnerUserId="9860" LastEditorUserId="9860" LastEditorDisplayName="" LastEditDate="2010-12-13T01:48:11.733" LastActivityDate="2010-12-13T01:48:11.733" Title="Javascript form validation - what's lacking?" Tags="&lt;javascript&gt;&lt;validation&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="1" />
  <row Id="25853" PostTypeId="2" ParentId="25836" CreationDate="2010-12-13T00:32:33.453" Score="8" ViewCount="" Body="&lt;p&gt;The first thing to ask is a simple question about pointers.  I was astonished to see how many people who claim to know C++ or, even worse, C, are unable to answer it.  Then I would ask a simple question about virtual functions.  This combination tells you very quickly whether or not the person actually knows C++.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-12-13T00:32:33.453" CommunityOwnedDate="2011-03-04T20:42:37.403" CommentCount="1" />
  <row Id="25854" PostTypeId="2" ParentId="25782" CreationDate="2010-12-13T00:47:18.833" Score="4" ViewCount="" Body="&lt;h1&gt;Coda&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Of the three you mention I think Coda is the best buy. Espresso was (is) worthless until they integrate better. Aptana is heavy and clunky.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that Coda doesn't have a debugger or support for JS frameworks &lt;em&gt;as far as I know&lt;/em&gt;. I last used Coda at 1.5 before switching to VIM / TextMate for everything.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Comparison&lt;/h3&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A&lt;/strong&gt;: Aptana&lt;br&gt;&#xA;&lt;strong&gt;C&lt;/strong&gt;: Coda&lt;br&gt;&#xA;&lt;strong&gt;E&lt;/strong&gt;: Espresso&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Supports HTML, CSS, JavaScript &lt;strong&gt;(ACE)&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Powerful (having good code completion &lt;strong&gt;(ACE)&lt;/strong&gt;, good debugger &lt;strong&gt;(A)&lt;/strong&gt;, great syntax highlighting &lt;strong&gt;(ACE)&lt;/strong&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Fast and light &lt;strong&gt;(CE)&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Supports HTML5, CSS3 &lt;strong&gt;(AC)&lt;/strong&gt;, and major JavaScript frameworks (JQuery or YUI) &lt;strong&gt;(A?)&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Great design (both usability and aesthetics) &lt;strong&gt;(C)&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Supports PHP, Ruby, and Python &lt;strong&gt;(ACE)&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Has Git integrated &lt;strong&gt;(A?)&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;h3&gt;Thoughts&lt;/h3&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;All support HTML, CSS, and JavaScript. By support I mean offers tag closings, some formatting options, and syntax highlighting. &lt;/li&gt;&#xA;&lt;li&gt;Code completion is bad, &lt;a href=&quot;http://joshuakehn.com/blog/view/3/A-Curse-on-IDE-s&quot; rel=&quot;nofollow&quot;&gt;as are IDE's in general&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Fast and light are not indicators of good IDE's, rather they are indicators of excellent feature pruning. &lt;/li&gt;&#xA;&lt;li&gt;What specifically do you mean by HTML5 (buzzword), CSS3 (almost a buzzword)? &lt;/li&gt;&#xA;&lt;li&gt;All aren't horrible, Coda and Espresso are better then Aptana.&lt;/li&gt;&#xA;&lt;li&gt;All support to some extent these languages. &lt;/li&gt;&#xA;&lt;li&gt;None as far as I know have integrated git support, and none should. Git is best done at a command line. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-13T00:53:52.010" LastActivityDate="2010-12-13T00:53:52.010" CommentCount="7" />
  <row Id="25855" PostTypeId="2" ParentId="940" CreationDate="2010-12-13T00:49:11.713" Score="5" ViewCount="" Body="&lt;h2&gt;Team Foundation Server&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Because:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It's a &lt;em&gt;good, solid VCS&lt;/em&gt;. (I wouldn't consider it the best by any means, but it has nice extras.)&lt;/li&gt;&#xA;&lt;li&gt;Its built in task and bug tracking that integrate into Visual Studio helps me stay focued and know what I need to work on all in one place (automatically applying a check-in to a bug or task and closing it is pretty good, though you can get plugins for other systems/eclipse/etc to do this.)&lt;/li&gt;&#xA;&lt;li&gt;It integrates tasks/bug tracking/projects directly into Project Server so I rarely ever have to keep project plans or timesheets up to date.  Updates to the Project in Project Server automatically filters down as tasks into TFS and into Visual Studio for me to see automatically.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-12-13T12:40:02.457" LastActivityDate="2010-12-13T12:40:02.457" CommunityOwnedDate="2011-03-07T21:04:52.237" CommentCount="3" />
  <row Id="25856" PostTypeId="1" AcceptedAnswerId="26043" CreationDate="2010-12-13T00:56:30.113" Score="9" ViewCount="291" Body="&lt;p&gt;I'm currently reading DeMarco and Lister's Peopleware, and I've been struck (as everyone is) by their comments about noise reduction via using private offices, and the effect this has on productivity. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Private offices are probably not going to happen at my workplace, but I'm wondering if high cubicle partitions (say, 6 feet) might be nearly as good? I imagine they wouldn't deflect quite as much noise, but they would have &lt;em&gt;some&lt;/em&gt; effect. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One down-side is that the center cubicles would have less natural light. That seems quite a big downer to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd be interested to hear what peoples experiences are. &lt;/p&gt;&#xA;" OwnerUserId="8400" LastEditorUserId="14221" LastEditorDisplayName="" LastEditDate="2011-02-03T23:45:10.927" LastActivityDate="2011-02-03T23:45:10.927" Title="Are high office partitions as effective as private offices?" Tags="&lt;work-environment&gt;&lt;peopleware&gt;" AnswerCount="7" CommentCount="2" />
  <row Id="25857" PostTypeId="1" AcceptedAnswerId="25864" CreationDate="2010-12-13T00:58:50.263" Score="8" ViewCount="395" Body="&lt;p&gt;As a result of reading Peopleware, I'm thinking of sending a survey out to our programmers to determine how they feel about their office environment. One obvious question is whether the office is too noisy or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What other questions should I ask our programmers about their work environment?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll post the final survey I put together onto this thread.&lt;/p&gt;&#xA;" OwnerUserId="8400" LastEditorUserId="14221" LastEditorDisplayName="" LastEditDate="2011-02-03T23:45:44.720" LastActivityDate="2011-02-03T23:45:44.720" Title="What questions should I ask on a work environment survey?" Tags="&lt;work-environment&gt;&lt;peopleware&gt;" AnswerCount="10" CommentCount="2" />
  <row Id="25858" PostTypeId="1" AcceptedAnswerId="25865" CreationDate="2010-12-13T00:59:01.660" Score="6" ViewCount="281" Body="&lt;p&gt;I am sure I am not the only one who gets frustrated when they see a page of code littered with SQL queries. The ActiveRecord and other ORM patterns help mitigate a good amount of SQL used in a project, but in many cases of complex queries, the use of SQL is seemingly unavoidable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am looking for opinions on how SQL queries should be organized with the rest of the code (or externally to it) to keep it from being scattered all over the place? One obvious idea is the use of Views, but often Views can be a source of performance issues when dealing with multiple large indexed tables, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(If this belongs in StackOverflow let me know, but it seems subjective enough for here..)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT 1 - I am assuming you've already got it separated into the model layer&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="6518" LastEditorUserId="6518" LastEditorDisplayName="" LastEditDate="2010-12-13T01:27:23.710" LastActivityDate="2010-12-13T01:48:36.077" Title="Best way to organize SQL queries stored in your code ? (or should you?)" Tags="&lt;sql&gt;&lt;mysql&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="2" />
  <row Id="25859" PostTypeId="2" ParentId="25771" CreationDate="2010-12-13T01:03:22.777" Score="1" ViewCount="" Body="&lt;p&gt;You should be aware of some quirks for assembly in Mac OS X, specifically the requirement for 16 byte stack alignment. &lt;a href=&quot;http://www.fabiensanglard.net/macosxassembly/index.php&quot; rel=&quot;nofollow&quot;&gt;This&lt;/a&gt; is useful as far as those quirks go.&lt;/p&gt;&#xA;" OwnerUserId="9867" LastActivityDate="2010-12-13T01:03:22.777" />
  <row Id="25860" PostTypeId="2" ParentId="25856" CreationDate="2010-12-13T01:04:06.523" Score="7" ViewCount="" Body="&lt;p&gt;Sure, they have &lt;em&gt;some&lt;/em&gt; effect, but not enough for it to matter. It's still not quiet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At night, my leaky-tap isn't as noisy as the neighbour's having a party, but it still drives me just as crazy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line: it's not a fix.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-13T01:04:06.523" />
  <row Id="25861" PostTypeId="2" ParentId="25858" CreationDate="2010-12-13T01:05:27.673" Score="1" ViewCount="" Body="&lt;p&gt;Generally, having a separate model layer is the best approach.  There are a number of &lt;a href=&quot;http://martinfowler.com/eaaCatalog/&quot; rel=&quot;nofollow&quot;&gt;enterprise design patterns&lt;/a&gt; that give ways to architect this.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-13T01:05:27.673" CommentCount="3" />
  <row Id="25862" PostTypeId="2" ParentId="25857" CreationDate="2010-12-13T01:28:10.383" Score="4" ViewCount="" Body="&lt;p&gt;Are there enough whiteboards?&lt;/p&gt;&#xA;" OwnerUserId="8776" LastActivityDate="2010-12-13T01:28:10.383" CommentCount="2" />
  <row Id="25863" PostTypeId="2" ParentId="25852" CreationDate="2010-12-13T01:32:21.507" Score="1" ViewCount="" Body="&lt;p&gt;This is one of those tasks where interfacing with a framework easily takes as long time as doing it yourself. Don't write a framework, just solve your own problem and let other people do the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a validation framework is to be of any real value I'd say it would have to be built into a user management and login system.&lt;/p&gt;&#xA;" OwnerUserId="8737" LastActivityDate="2010-12-13T01:32:21.507" CommentCount="1" />
  <row Id="25864" PostTypeId="2" ParentId="25857" CreationDate="2010-12-13T01:45:50.767" Score="6" ViewCount="" Body="&lt;p&gt;You might want to try asking some of the perk/benefit questions in the following form:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&quot;If given a choice between &lt;em&gt;_&lt;/em&gt;__ and the equivalent increase in salary, which would you prefer?&quot;&lt;/strong&gt; (On a scale from 1-5)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Potential perks could be:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Better breakroom/lunchroom&lt;/li&gt;&#xA;&lt;li&gt;Free lunches&lt;/li&gt;&#xA;&lt;li&gt;Free drinks&lt;/li&gt;&#xA;&lt;li&gt;Trips to dev conferences&lt;/li&gt;&#xA;&lt;li&gt;Private offices&lt;/li&gt;&#xA;&lt;li&gt;Better conference/meeting areas&lt;/li&gt;&#xA;&lt;li&gt;Better equipment (computers/monitors/peripherals)&lt;/li&gt;&#xA;&lt;li&gt;Paid mobile phone service&lt;/li&gt;&#xA;&lt;li&gt;Paid home internet service (to facilitate telecommuting)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Every developer is different, and I've met a few who would probably rather take the cash than any of the above.  But, asking the question in this way should give you a good idea of where your developers' priorities lie in general, or where your current benefits are weak.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-13T01:45:50.767" CommentCount="1" />
  <row Id="25865" PostTypeId="2" ParentId="25858" CreationDate="2010-12-13T01:48:36.077" Score="5" ViewCount="" Body="&lt;p&gt;Hey, this is a good question.  I've been on both sides of this, and ultimately after quite a few years and a lot of projects, settled on less abstraction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, SQL is a fundamental part (in a lot of cases, the majority) of the business logic code.  If you try to separate it from the code that operates on the returned data, you are more prone to unbalance the understandability and maintainability of the code.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I look at it, reading data, processing data, writing data, searching data... they are all similar operations, and best kept in the same place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you start to sense a duplication of efforts with queries, then perhaps you need a database view or an object that can encapsulate that aspect of database access.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another tip is to actually have a good database query method.  In software I write (PostgreSQL, MySQL, SQL Server), I have ensured that the bulk of my query operations can take place as a single statement of code.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;GetValue(SQL, [transaction], [array_of_params])&#xA;GetRow(SQL, [transaction], [array_of_params])&#xA;GetRowList(SQL, [transaction], [array_of_params])&#xA;GetValueList(SQL, [transaction], [array_of_params])&#xA;Execute(SQL, [transaction], [array_of_params])&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Those are (roughly) the main function calls that I ensure are part of my &quot;connection object&quot;.  It depends on the language, what you actually implemente, but my point is to keep it really, really simple and painless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;In summary,&lt;/strong&gt; treat SQL as a native part of programming, and do not abstract for the sake of abstraction.&lt;/p&gt;&#xA;" OwnerUserId="5050" LastActivityDate="2010-12-13T01:48:36.077" CommentCount="3" />
  <row Id="25866" PostTypeId="1" CreationDate="2010-12-13T01:51:09.673" Score="2" ViewCount="304" Body="&lt;p&gt;One thing I don't like about the daily stand-up meeting is the awkwardness of its ending.  The last person says whatever he says and that's the note it ends on.  It seems very unesthetic for my tastes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm thinking of adding a short (30-60 second) piece of inspiration and/or humor to end it with.  For source material, I'm thinking quotes from famous programmers or even engineers / inventors / business people etc. but with the focus on programmers.  I'm hesitating however, because (a) I don't know where I would find the source material and (b) maybe it's just too dopey, ritualistic and bordering on the religious.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone out there do anything like this?  Is it worth it to try?  What source material would be good?&lt;/p&gt;&#xA;" OwnerUserId="4526" LastActivityDate="2010-12-13T05:40:33.417" ClosedDate="2010-12-14T20:15:03.960" Title="Inspiring / humorous quote at the end of the stand-up?" Tags="&lt;agile&gt;&lt;scrum&gt;" AnswerCount="5" CommentCount="3" />
  <row Id="25867" PostTypeId="2" ParentId="25857" CreationDate="2010-12-13T02:05:14.367" Score="0" ViewCount="" Body="&lt;p&gt;Ask if they'd prefer to build/bring in their own machine (and have to maintain it if so) or have a company-supplied machine.  I've been fortunate enough to be able to use my own laptop for work and it's been a huge productivity gain.&lt;/p&gt;&#xA;" OwnerUserId="3737" LastActivityDate="2010-12-13T02:05:14.367" />
  <row Id="25868" PostTypeId="2" ParentId="25857" CreationDate="2010-12-13T02:06:28.507" Score="5" ViewCount="" Body="&lt;p&gt;Hi CraigS,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the way you worded your question, you seem to be a manager or leader in your company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suggest you get your notes together from this thread, and rather than sending out a sterile survey, take each programmer to lunch, one at a time.  Repeat multiple times until you have gotten a true view of how things are working out for each one of them individually.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider the following two scenarios:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;I'm unhappy about X, or wish to see Y improve... My boss sends me (and everyone else) a survey for me to tick and tie and give back. But it doesn't really address the issue I am having. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I'm unhappy about X, or wish to see Y improve... My boss treats me to lunch (on the clock!), (on his credit card!), and sincerely talks to me about how things are going.  I have an opportunity to speak to him frankly about X and Y.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I take the point of view that life is about relationships, and that it is not different at home or at work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;--&lt;br&gt;&#xA;You are asking each employee to trade a significant part of their life for a paycheck.  That is the framework for this discussion (worth keeping in mind).  Within that, I would consider how you can make their time there most personally and corporately productive, enjoyable, and pleasant.  First things are first, meaning that a trip to a conference doesn't mean much if you cannot stand the idiot that is sitting 3 feet from you the other 51 weeks a year.  Soda and drinks don't help a lot when you cannot afford the dental visits that will inevitably come :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I'm rambling, I will mention that when I installed a filtered fresh ice and water dispenser at the office, it was a big hit.  I also got a convection microwave oven, and some of the guys would cook fresh chicken over lunch to put on green salads.  They enjoyed that.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A couple of things to address in your discussions could include:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Is there any strife or grief that you can resolve?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Are their desk, computer, monitor, and chair providing them with any frustration at all?  Can it be better?  (30&quot; hi res monitors are nice, by the way).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Is life working out with the job.  Or is the job standing in the way of life?  If the answer is negative, what can be done?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;For consideration.&lt;/p&gt;&#xA;" OwnerUserId="5050" LastActivityDate="2010-12-13T02:06:28.507" CommentCount="1" />
  <row Id="25869" PostTypeId="2" ParentId="25856" CreationDate="2010-12-13T02:21:59.907" Score="3" ViewCount="" Body="&lt;p&gt;Not nearly as good, but a move in the right direction for programmers.&lt;/p&gt;&#xA;" OwnerUserId="5050" LastActivityDate="2010-12-13T02:21:59.907" />
  <row Id="25870" PostTypeId="2" ParentId="25857" CreationDate="2010-12-13T02:24:14.457" Score="1" ViewCount="" Body="&lt;p&gt;To really examine this data, you'll want to ask some demographic questions (e.g., age, years of experience, highest degree obtained) and some background questions (e.g., rate your familiarity with these tools, with these design patterns; what languages do you know/use/heard of/not familiar with).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Showing the different results of your survey based on different ways of slicing your subjects can lend some insight into how people feel. For example, more senior people may have different priorities from more junior people, and you will need to take that into consideration&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also ask the programmer how they are feeling, if they are comfortable and well rested. You sometimes need to ask the same question in slightly different ways in order to adjust for variability in answers. The reason for asking for how fatigued they are is to be able to compare it with the other responses, to see if there are variations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, ask them to compare the environment with previous experiences: Describe how this is better, how the other was better. What do you like best? What do you like the least? Be sure to make those open ended questions, to get the best feedback.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assure the survey takers that their answers will be anonymous.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will want the survey questions to be on multiple pages (I assume this is a web-based survey?). You'll want to time the results, to see if people are actually reading the questions, or just clicking on boxes to finish as fast as they can (if the survey is required).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the survey is not required, you will have troubles getting enough people to take it to get any meaningful results. In that case, you may offer an incentive, or give them a chance to win something in a drawing. If you know everyone, you can ask them if they will take the survey, and when. If they commit to you in person, there's a good chance they'll actually take it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before you release it, pilot the survey on a couple of volunteers first, and ask them why they answered the questions they way they did. This can also help you find out if something was missing.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-13T02:24:14.457" CommentCount="1" />
  <row Id="25871" PostTypeId="2" ParentId="25856" CreationDate="2010-12-13T02:27:51.817" Score="10" ViewCount="" Body="&lt;p&gt;In my experience, cubicle partitions make things worse.  Now you have people nearby who are still audible but are more apt to forget there are other people around who can hear them.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-13T02:27:51.817" />
  <row Id="25872" PostTypeId="2" ParentId="25866" CreationDate="2010-12-13T02:30:33.487" Score="14" ViewCount="" Body="&lt;p&gt;A stand-up meeting should be as quick as possible. Adding a short piece of humor to the meeting may prolong it since it may entice additional off-topic conversation. At least, that's usually what happens to me and my team of interns back in the day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TL;DR: A quick and awkward stand-up is better than a fun but unproductively long one.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-12-13T02:30:33.487" CommentCount="1" />
  <row Id="25873" PostTypeId="2" ParentId="25866" CreationDate="2010-12-13T03:24:18.830" Score="1" ViewCount="" Body="&lt;p&gt;At the end of a standup say:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;So it is written, so let it be done!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;We'll all have fries with that order.&quot;&lt;/p&gt;&#xA;" OwnerUserId="8874" LastActivityDate="2010-12-13T03:24:18.830" />
  <row Id="25874" PostTypeId="2" ParentId="25857" CreationDate="2010-12-13T03:27:05.403" Score="6" ViewCount="" Body="&lt;p&gt;Would you rather work from home?&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-13T03:27:05.403" />
  <row Id="25875" PostTypeId="2" ParentId="25811" CreationDate="2010-12-13T03:29:39.633" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What database features/elements are&#xA;  necessary for a programmer to&#xA;  understand in order to create&#xA;  non-trivial applications?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The more experience with database design and normalization the better. Too little (e.g. tables failing to be 1NF)  can be just as bad a too much (EVA).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basic SQL can solve most problems anything beyond can be handled by asking questions on SO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developers should also at least know what &lt;a href=&quot;http://en.wikipedia.org/wiki/ACID&quot; rel=&quot;nofollow&quot;&gt;ACID&lt;/a&gt; stands for, with some idea of what it means.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing developers should know is that bad things sometimes happen to transactions and your application should expect every transaction to always work. Here's a quote from &lt;a href=&quot;http://blogs.msdn.com/b/ricom/archive/2007/08/31/database-performance-correctness-compostion-compromise-and-linq-too.aspx&quot; rel=&quot;nofollow&quot;&gt;an article&lt;/a&gt; by Rico Mariani  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;One Last Warning&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;If you consider what I said, about the&#xA;  natural occurrence of failures in a&#xA;  database, then you’ll soon realize&#xA;  that it is &lt;em&gt;normal&lt;/em&gt;, using Linq&#xA;  parlance, for db.SubmitChanges() to&#xA;  throw an exception from time to time.&#xA;  If you are trying to write a robust&#xA;  application with high reliability you&#xA;  need to think about that.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;In addition to obvious things like,&#xA;  “the network went down”, “the database&#xA;  went down”, there are less obvious&#xA;  things like, “there was a deadlock”,&#xA;  “there was an optimistic lock&#xA;  conflict” that can and do happen.&#xA;  Those latter two things should be&#xA;  appropriately retried because &lt;em&gt;nothing&#xA;  bad has happened&lt;/em&gt;. The strategy you&#xA;  choose, especially for cases where the&#xA;  optimistic lock failed, can have a&#xA;  profound impact on your performance&#xA;  and certainly you can’t just let those&#xA;  exceptions flow to the user. I think I&#xA;  can safely say that my mom doesn’t&#xA;  want to hear about how table X on&#xA;  connection A deadlocked with table Y&#xA;  on connection B.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;If you’ve been reading carefully then&#xA;  you’ll see that it’s also “normal” for&#xA;  a foreach operation over a Linq query&#xA;  to fail from time to time – you need a&#xA;  retry strategy for those too to be&#xA;  fully robust.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Don’t get down on Linq though, those&#xA;  problems exist with all data&#xA;  solutions, the productivity benefits&#xA;  you get from Linq will go a long way&#xA;  to helping you to add the robustness&#xA;  you need in the areas you need it.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Don’t read “too much” at once. Don’t&#xA;  write “too much” at once. Handle&#xA;  deadlocks, they’re normal. Handle&#xA;  optimistic lock failures, they’re also&#xA;  normal. You should land in the Pit of&#xA;  Success.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;As for that line in the sand? I would say Developers don't need to know anything about the physical operation,  sizing, partitioning, monitoring, (backup/restore), security, High Availability, Disaster recovery, initial setup, etc&lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-12-13T03:29:39.633" />
  <row Id="25877" PostTypeId="2" ParentId="25857" CreationDate="2010-12-13T03:45:50.237" Score="3" ViewCount="" Body="&lt;p&gt;I'm amazed nobody mentioned the &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;Joel test&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-12-13T03:45:50.237" CommentCount="1" />
  <row Id="25878" PostTypeId="2" ParentId="25782" CreationDate="2010-12-13T03:48:21.893" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Netbeans&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It fits everything apart from &quot;Fast and light&quot;. It's fast enough which is all you need.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Best tools I've seen for history and file diffs that you won't find in something&#xA;small like coda. &lt;/li&gt;&#xA;&lt;li&gt;There is a git&#xA;plugin which works really well.&lt;/li&gt;&#xA;&lt;li&gt;Auto-completion for PHP is very good,&#xA;better than eclipse based IDEs.&lt;/li&gt;&#xA;&lt;li&gt;Support for web frameworks like rails&#xA;and symfony.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You might also want to look at Komodo.&lt;/p&gt;&#xA;" OwnerUserId="5678" LastActivityDate="2010-12-13T03:48:21.893" />
  <row Id="25879" PostTypeId="2" ParentId="25836" CreationDate="2010-12-13T04:01:27.283" Score="3" ViewCount="" Body="&lt;p&gt;I don't think there is a best C++ question. C++ is such a large language, and with C++0X it's grown, that you can be in strong in a certain subdomain of the language and no little about another part of the language. A 'one shot' question will only exercise someone's knowledge of a small part of the language and risk overlooking his or her's knowledge of other aspects of the language.&lt;/p&gt;&#xA;" OwnerUserId="8392" LastActivityDate="2010-12-13T04:01:27.283" CommunityOwnedDate="2011-03-04T20:42:37.403" />
  <row Id="25880" PostTypeId="2" ParentId="25866" CreationDate="2010-12-13T04:07:21.780" Score="2" ViewCount="" Body="&lt;p&gt;At the end of a standup say:&#xA;&quot;Make it so.&quot;&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-12-13T04:07:21.780" CommentCount="2" />
  <row Id="25881" PostTypeId="2" ParentId="25234" CreationDate="2010-12-13T04:10:06.687" Score="3" ViewCount="" Body="&lt;p&gt;I used to have a little application which would reboot my computer on a timer. I'd set it for whenever I was supposed to be done by. My computer took 5 minutes to boot, which was enough of a disruption to my workflow to convince me to go home. I combined this with making sure that my outside-of-work life was as full of activities that I have trouble stopping, and am eager to start, as my work life was. It took some effort to find such activities, but it was worth it. &lt;/p&gt;&#xA;" OwnerUserId="4091" LastActivityDate="2010-12-13T04:10:06.687" />
  <row Id="25882" PostTypeId="2" ParentId="25866" CreationDate="2010-12-13T04:18:30.087" Score="1" ViewCount="" Body="&lt;p&gt;&quot;May the Force be with you!&quot;&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-12-13T04:18:30.087" />
  <row Id="25883" PostTypeId="2" ParentId="25652" CreationDate="2010-12-13T04:35:19.667" Score="5" ViewCount="" Body="&lt;p&gt;Some suggestions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Read &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0671027034&quot; rel=&quot;nofollow&quot;&gt;&quot;How to Win Friends and Influence People&quot; by Dale Carnegie&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Join a &lt;a href=&quot;http://www.toastmasters.org/&quot; rel=&quot;nofollow&quot;&gt;Toastmaster&lt;/a&gt;s group for a year.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Take college classes that require group work and class presentations.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Learn, understand and apply &lt;a href=&quot;http://wilsonlearning.com/capabilities/sem/social_styles/&quot; rel=&quot;nofollow&quot;&gt;&quot;social styles.&quot;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Understand that the users and stakeholders are your most important asset for creating quality software, because they have the usability perspective that you as a programmer lack.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="37" LastEditorDisplayName="" LastEditDate="2010-12-13T11:50:40.227" LastActivityDate="2010-12-13T11:50:40.227" CommentCount="2" />
  <row Id="25884" PostTypeId="2" ParentId="25857" CreationDate="2010-12-13T04:51:07.967" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Are there tools that would have a significant impact on your job, that you don't have? (Followup: Why can't you use them?)&lt;/li&gt;&#xA;&lt;li&gt;Have you had the opportunity within the last x months to progress or improve in your career/position?&lt;/li&gt;&#xA;&lt;li&gt;Do you respect your co-workers?&lt;/li&gt;&#xA;&lt;li&gt;Are your co-workers committed to doing good work?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-13T04:51:07.967" />
  <row Id="25885" PostTypeId="1" CreationDate="2010-12-13T04:57:20.773" Score="0" ViewCount="87" Body="&lt;p&gt;What maximum revenue can a social networking site generate? I am not talking about biggies like facebook or myspace. But a startup perhaps? What can be done to increase revenue besides marketing to get quick audience? I would also like to ask that most of the top sites have similar features then how do they make profit? Please reply.&lt;/p&gt;&#xA;" OwnerUserId="9442" LastActivityDate="2010-12-13T04:57:20.773" ClosedDate="2010-12-13T08:23:02.357" Title="Social networking sites revenue" Tags="&lt;social-networks&gt;&lt;marketing&gt;" CommentCount="3" />
  <row Id="25886" PostTypeId="2" ParentId="24353" CreationDate="2010-12-13T05:04:26.333" Score="2" ViewCount="" Body="&lt;p&gt;I have always felt that you need a good getting started document that details how to set up the development environment.  I think that the new person should have to go through and set everything up on their own mainly so that they get a better understanding of the tool set.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have also always wanted to have a few predefined exercises that every new person would have to go through.  I would want these to be designed such that they would enable a new developer to quickly get exposure to different parts of the system. I would think that there should be several that they would need to go through each taking a day or less.  The hope would be that they gain some very real experience on how the system works.  The more quality experience a developer has the better they are going to do.&lt;/p&gt;&#xA;" OwnerUserId="6944" LastActivityDate="2010-12-13T05:04:26.333" />
  <row Id="25887" PostTypeId="2" ParentId="25811" CreationDate="2010-12-13T05:19:11.740" Score="2" ViewCount="" Body="&lt;p&gt;For DBA :-&lt;br&gt;&#xA;1) Configuration change/upgrading to new version&lt;br&gt;&#xA;2) Backup and recovery  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For designer :-&lt;br&gt;&#xA;1) Normalization&lt;br&gt;&#xA;2) indexing, keys, constraints, triggers, views etc.&lt;br&gt;&#xA;3) Performance tuning, memory vs. speed&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Developer :-&lt;br&gt;&#xA;1) Basic SQL&lt;br&gt;&#xA;2) Low level connectivity (OCI,ODBC, JDBC, Hibenrate etc. depending on their field)&lt;br&gt;&#xA;3) multiple connections behavior&lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-13T05:19:11.740" />
  <row Id="25888" PostTypeId="1" AcceptedAnswerId="25890" CreationDate="2010-12-13T05:22:11.040" Score="29" ViewCount="1041" Body="&lt;p&gt;I thought I did okay in the interviews but apparently the interviewers didn't think so. Is it appropriate to ask for a reason after I have received the rejection email? After all I don't want to annoy the HR person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am a student, so not so much job hunting experience so far. Bear with me if this question sounds stupid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update: Thank everyone for your answers and comments! They are really informative and helpful to me, even though I didn't get any answer from the recruiter.  &lt;/p&gt;&#xA;" OwnerUserId="9026" LastEditorUserId="9026" LastEditorDisplayName="" LastEditDate="2010-12-15T18:09:49.547" LastActivityDate="2010-12-15T18:09:49.547" ClosedDate="2010-12-29T17:26:00.777" Title="Is it appropriate to ask for reasons after rejected after the interview?" Tags="&lt;job-interview&gt;&lt;social-skills&gt;&lt;new-job&gt;" AnswerCount="9" CommentCount="3" FavoriteCount="6" />
  <row Id="25889" PostTypeId="2" ParentId="25888" CreationDate="2010-12-13T05:24:25.810" Score="2" ViewCount="" Body="&lt;p&gt;You can definitely ask back. Nobody is stopping you. But most probably the answer will be &quot;You do not fit our requirements&quot;. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-13T05:24:25.810" CommentCount="2" />
  <row Id="25890" PostTypeId="2" ParentId="25888" CreationDate="2010-12-13T05:31:25.343" Score="24" ViewCount="" Body="&lt;p&gt;If you asked it like you just asked us, you'll have a much better shot at getting a useful answer.  Emphasize that you are new to the workforce and really value the time the interviewer spent considering you.  Ask what you lacked, perhaps that you could have predicted coming into the interview, that affected your consideration and eventual rejection.  Most importantly, don't be defensive.  You understand that the interviewer made a choice that was right by their own ends and you aren't trying change their minds.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's been my experience that about a third of interviewers, just give a cagey vibe once they've decided to reject you (or even sooner), and don't really answer any questions at all past that point.  Another third are a bit more open, and will answer some questions, but not others, especially about matters that might reveal more than really necessary about their hiring process.  the remaining third stay friendly and open for as long as you do the same, and are happy to help you in this way.&lt;/p&gt;&#xA;" OwnerUserId="8656" LastActivityDate="2010-12-13T05:31:25.343" CommentCount="2" />
  <row Id="25891" PostTypeId="2" ParentId="25866" CreationDate="2010-12-13T05:40:33.417" Score="2" ViewCount="" Body="&lt;p&gt;@Terence is correct&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would add that the participants of a stand-up meeting are a &lt;em&gt;captive audience&lt;/em&gt;, so it is &lt;strong&gt;incredibly rude*&lt;/strong&gt; to force them to listen to anything outside the stated/agreed agenda&lt;/p&gt;&#xA;&#xA;&lt;p&gt;whether it's funny, inspirational, motivational, or otherwise - that ain't what they're there for!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[* this includes paying $50 for concert tickets only to have the vocalist go off on a screed about politics; not what we paid for dude, shut up and sing!]&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-13T05:40:33.417" />
  <row Id="25892" PostTypeId="2" ParentId="25888" CreationDate="2010-12-13T05:52:15.637" Score="0" ViewCount="" Body="&lt;p&gt;My experience has been that rejection emails usually contain some kind of generic explanation, such as &quot;your skills and experience were not as good a fit for what we were looking for as some other candidates who applied for this role&quot;. If the rejection email has any substance whatsoever at all, I'd probably just leave it at that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really did get one that's &lt;em&gt;totally&lt;/em&gt; without explanation, then what &lt;strong&gt;Manoj R&lt;/strong&gt; says above is correct: you'll likely just get that generic answer added.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for whether it's appropriate: I would say it could be borderline, depending on how you do it. If there is any hint of defensiveness, or of prodding for too much detail, then it probably is a tad inappropriate. But if you genuinely approach it as a curious student, then you can probably get away with it. But the chances of getting a truly useful explanation are relatively slim, imho. Unless the interviewer/HR was an extremely friendly and informal person.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-12-13T05:52:15.637" CommentCount="2" />
  <row Id="25893" PostTypeId="2" ParentId="25811" CreationDate="2010-12-13T06:17:59.530" Score="1" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;explain plan;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You need to be able to debug your SQL. This means you need to understand what the database chooses to dó and knowing how to change it's mind. &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-13T06:17:59.530" />
  <row Id="25894" PostTypeId="2" ParentId="25836" CreationDate="2010-12-13T06:57:35.237" Score="19" ViewCount="" Body="&lt;p&gt;I am somewhat bemused as to why &quot;can you delete this?&quot; is considered to be an interesting question. Anyone who has written COM code in C++ knows that the very first thing you learn on day one of basic COM programming is how to use &quot;delete this&quot; correctly. I suppose it might be useful to determine whether, say, someone is lying on their resume about having written COM programs, but as a general knowledge C++ question, if someone couldn't answer it immediately then they are not going to be a good fit for my team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, if your goal is to come up with a question that measures C++ skills, then picking one question is the wrong way to go. &lt;em&gt;Turn it around.&lt;/em&gt; The right question to ask is:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;On a scale from one to ten, how good a C++ programmer are you?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is not the question that gets you the answer you want. Everyone says &quot;eight&quot; regardless. The question that gets you the answer you want is:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;OK, so you're an eight. What is a problem area that you think a seven would have a difficult time working with?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And &lt;em&gt;boom&lt;/em&gt;, now you've got them. If the candidate thinks that &quot;something to do with recursion&quot; or &quot;when to use a virtual destructor&quot; is the sort of thing that a seven has a hard time with, then you know that they know a little bit about recursion or destructors or whatever, and that their knowledge does not go much farther than that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That should give you much better calibration than coming up with some trivia question. If you were to force me to come up with a good single question about a fact about C++, I'd probably ask something like &quot;how would you design the semantic analyzer and code generator for the portion of a C++ compiler that deals with virtual methods called in a base class destructor?&quot;  You should ask questions that have to do with real stuff that you work on, and that the candidate is likely to work on. That's a problem I had to work on once, and I think it would give a pretty good insight into how a person designs semantic analyzers and code generators, as well as their knowledge of C++.&lt;/p&gt;&#xA;" OwnerUserId="6505" LastActivityDate="2010-12-13T06:57:35.237" CommunityOwnedDate="2011-03-04T20:42:37.403" CommentCount="2" />
  <row Id="25895" PostTypeId="1" AcceptedAnswerId="25927" CreationDate="2010-12-13T07:03:56.747" Score="8" ViewCount="359" Body="&lt;ul&gt;&#xA;&lt;li&gt;What will you use for a webpage layout? Percentage or pixels? &lt;/li&gt;&#xA;&lt;li&gt;When should one use one over the&#xA;other?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1522" LastActivityDate="2010-12-14T17:31:20.187" Title="Percentage or Pixel for layouts?" Tags="&lt;web-development&gt;&lt;design&gt;&lt;websites&gt;" AnswerCount="3" CommentCount="6" />
  <row Id="25896" PostTypeId="2" ParentId="24940" CreationDate="2010-12-13T07:19:08.230" Score="13" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Co-Worker: Lets be honest here. Linq syntax sucks. It's confusing and non-intuitive. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You can't argue with that criticism. &lt;em&gt;For your coworker, it sucks&lt;/em&gt;. We failed to design a syntax that, for them, was clear and intuitive. That's our failing, and you can pass on my apologies to your coworker. I am happy to take suggestions on how to make it better; what specifically does your coworker find confusing or unintuitive?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, you can't please everyone. My personal opinion, and the opinion of most of the people I've talked to on the subject, is that the query comprehension syntax is much more clear than the equivalent imperative syntax. Clearly not everyone agrees, but fortunately we do not require consensus of all the millions of our customers when we do language design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the subject of what is &quot;intuitive&quot; though, I am reminded of the story of the English linguist who studied many different languages and finally concluded that English was the best of all languages because &lt;em&gt;in English, the words come &lt;strong&gt;in the same order that you think them&lt;/strong&gt;.&lt;/em&gt; Unlike French, where they're constantly saying things like &quot;the dog white eats the meat red&quot;.  How hard it must be for French people to &lt;em&gt;think&lt;/em&gt; the words in the &lt;em&gt;correct&lt;/em&gt; order and then have to &lt;em&gt;say&lt;/em&gt; them in the &lt;em&gt;French&lt;/em&gt; order!  French is so unintuitive! It's amazing that the French manage to speak it. And German? where they think &quot;the dog eats the meat&quot; but then have to say &quot;the dog the meat eats&quot; !?! So unintuitive. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often what is &quot;intuitive&quot; is merely a matter of familiarity. It took me &lt;em&gt;months&lt;/em&gt; of working with LINQ before I stopped beginning my queries with the &quot;select&quot; clause.  Now it is second nature, and the SQL order seems bizarre. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which it is! The scoping rules are all messed up in SQL. Something you might want to point out to your coworker is that LINQ was carefully designed so that (1) introduction of variables and scopes happens left-to-right (*), and (2) the order that the query appears on the page is the order in which it is executed. That is, when you say&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;from c in customers where c.City == &quot;London&quot; select c.Name&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;the c appears in scope at the left, and stays in scope through the right.  And the order in which things happen are:  first &quot;customers&quot; is evaluated. Then the &quot;where&quot; is evaluated to filter the sequence. Then the filtered sequence is projected by the &quot;select&quot;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;SQL doesn't have this property. If you say&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;SELECT Name FROM Customers WHERE City = 'London'&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;then &quot;Name&quot; is brought into scope by something to its right, not to its left, and the query is executed in a completely messed up order; the middle clause is evaluated first, then the last clause, and then the first clause. That now seems crazy and unintuitive to me, having worked solely with LINQ for so long now.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;(*) Scoping rules are a bit weird in LINQ with join clauses. But other than that, scopes nest nicely.&lt;/p&gt;&#xA;" OwnerUserId="6505" LastEditorUserId="6505" LastEditorDisplayName="" LastEditDate="2010-12-13T07:35:26.313" LastActivityDate="2010-12-13T07:35:26.313" CommentCount="2" />
  <row Id="25897" PostTypeId="2" ParentId="25836" CreationDate="2010-12-13T07:35:00.873" Score="4" ViewCount="" Body="&lt;p&gt;I would ask them for the reason why virtual member function can not be used with template in C++. Of course, there is only few people who can actually answer the question immediately. But if an interviewee properly understands the core mechanics of C++(how template works in C++, how virtual function is implemented, how compiler and linker generate an executable from source code, etc.), you may get an answer with appropriate step-by-step leading questions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Added : Template virtual member function in this answer means template function that is virtual member function of some class - not a regular member function in template class. Sorry for confusing :(&lt;/p&gt;&#xA;" OwnerUserId="9884" LastEditorUserId="9884" LastEditorDisplayName="" LastEditDate="2010-12-15T05:55:36.377" LastActivityDate="2010-12-15T05:55:36.377" CommunityOwnedDate="2011-03-04T20:42:37.403" CommentCount="7" />
  <row Id="25898" PostTypeId="1" AcceptedAnswerId="25900" CreationDate="2010-12-13T07:46:42.543" Score="6" ViewCount="623" Body="&lt;p&gt;I would like to print out 10 commandments of programming on my wall.&#xA;Please give &lt;strong&gt;one commandment per answer&lt;/strong&gt;. I will finally summarize top 10 of your answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:&#xA;&lt;strong&gt;I would like to know what people in this forum thinks.&#xA;So please don't send a link!!&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T17:25:20.627" LastActivityDate="2010-12-26T17:25:20.627" ClosedDate="2010-12-13T11:37:14.627" Title="What are 10 Commandments of Programming?" Tags="&lt;programming-practices&gt;&lt;advice&gt;" AnswerCount="16" CommentCount="12" FavoriteCount="1" />
  <row Id="25899" PostTypeId="1" AcceptedAnswerId="25908" CreationDate="2010-12-13T07:50:30.573" Score="1" ViewCount="308" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicates:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/1371/what-are-the-warning-signs-of-impending-doom-to-watch-out-for-on-a-project&quot;&gt;What are the warning signs of impending doom to watch out for on a project?&lt;/a&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/25181/what-are-the-symptoms-events-or-actions-of-a-software-death-cycle&quot;&gt;What are the symptoms, events or actions of a software death cycle?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Please give &lt;strong&gt;one sign per answer&lt;/strong&gt;. I will finally summarize top 10 answers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:&#xA;&lt;strong&gt;I would like to know what people in this forum thinks.&#xA;So please don't send a link!!&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-12-13T08:09:04.310" LastActivityDate="2010-12-13T09:18:16.660" ClosedDate="2010-12-13T09:20:27.017" Title="What are Top 10 Signs That Your Software Project is Doomed?" Tags="&lt;project&gt;&lt;personal-projects&gt;" AnswerCount="6" CommentCount="6" />
  <row Id="25900" PostTypeId="2" ParentId="25898" CreationDate="2010-12-13T07:51:06.007" Score="8" ViewCount="" Body="&lt;p&gt;Thou shalt not reinvent the wheel.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-13T07:51:06.007" CommentCount="3" />
  <row Id="25901" PostTypeId="2" ParentId="25898" CreationDate="2010-12-13T07:53:03.227" Score="2" ViewCount="" Body="&lt;p&gt;Make it Work, Make it Right, Make it Fast&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(in that order)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- Kent Beck&lt;/p&gt;&#xA;&#xA;&lt;p&gt;see: &lt;a href=&quot;http://c2.com/cgi/wiki?MakeItWorkMakeItRightMakeItFast&quot; rel=&quot;nofollow&quot;&gt;http://c2.com/cgi/wiki?MakeItWorkMakeItRightMakeItFast&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9889" LastActivityDate="2010-12-13T07:53:03.227" />
  <row Id="25902" PostTypeId="1" CreationDate="2010-12-13T07:54:02.893" Score="27" ViewCount="1051" Body="&lt;p&gt;I know this isn't a technical question, but I needed to ask it of fellow programmers. I recently took a job that was sold to me as a technical BA role. I being a programmer by trade (for over 10 years c++) figured it was a step forward in my career. I didn't expect to be programming anymore, though I was told I would be in the trenches a bit. They needed someone senior to co-ordinate their suppliers and the coders they had on staff. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I found was a script kiddy job. I'm not dealing with programmers and I'm doing the kind of work I did when I started out as an intern in high school. I've mentioned the discrepancy and I was told the role would advance quickly into the role I was promissed. That was over a month ago. So now after 3 months, I was told I would be helping out as a tester and taking support calls. I think that's where I draw the line.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is. Does this tank my carreer? How do I recover? I have two kids and a wife so simply quitting without something else isn't really an option. Have I just fraked my future? Any suggestions?&lt;/p&gt;&#xA;" OwnerUserId="9890" LastEditorUserId="4711" LastEditorDisplayName="" LastEditDate="2010-12-16T23:00:38.113" LastActivityDate="2010-12-16T23:00:38.113" ClosedDate="2010-12-14T20:20:33.677" Title="If you take a crap role how do recover" Tags="&lt;career&gt;&lt;jobs&gt;" AnswerCount="10" CommentCount="7" FavoriteCount="3" />
  <row Id="25903" PostTypeId="2" ParentId="25899" CreationDate="2010-12-13T08:00:50.700" Score="1" ViewCount="" Body="&lt;p&gt;You find yourself fired.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-13T08:00:50.700" />
  <row Id="25904" PostTypeId="2" ParentId="25898" CreationDate="2010-12-13T08:02:12.757" Score="1" ViewCount="" Body="&lt;p&gt;Deliberate practice makes perfect.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-13T08:02:12.757" />
  <row Id="25905" PostTypeId="2" ParentId="25888" CreationDate="2010-12-13T08:04:17.733" Score="6" ViewCount="" Body="&lt;p&gt;Yes.  A good recruiter will give you a good answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please note the recruiter found you good enough for an interview, so it is in his/her own interest to help you improve.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-13T08:04:17.733" />
  <row Id="25906" PostTypeId="2" ParentId="25898" CreationDate="2010-12-13T08:05:28.800" Score="0" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2006/05/the-ten-commandments-of-egoless-programming.html&quot; rel=&quot;nofollow&quot;&gt;Jeff's The Ten Commandments of Egoless Programming&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&#xA;&lt;strong&gt;&lt;em&gt;&lt;a href=&quot;http://www.bothaclan.co.za/?q=node/1&quot; rel=&quot;nofollow&quot;&gt;The Programmer's 10 commandments&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-12-13T08:19:09.147" LastActivityDate="2010-12-13T08:19:09.147" CommentCount="1" />
  <row Id="25907" PostTypeId="2" ParentId="25856" CreationDate="2010-12-13T08:08:36.103" Score="0" ViewCount="" Body="&lt;p&gt;No.  You need for people to be able to talk freely without disturbing others.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-13T08:08:36.103" />
  <row Id="25908" PostTypeId="2" ParentId="25899" CreationDate="2010-12-13T08:09:40.787" Score="1" ViewCount="" Body="&lt;p&gt;Your design changed in the System Testing phase. On similar line your requirement changed in integration testing phase. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastEditorUserId="8820" LastEditorDisplayName="" LastEditDate="2010-12-13T08:52:39.127" LastActivityDate="2010-12-13T08:52:39.127" />
  <row Id="25909" PostTypeId="2" ParentId="25899" CreationDate="2010-12-13T08:11:14.627" Score="0" ViewCount="" Body="&lt;p&gt;The time estimation has been made by your manager.&lt;/p&gt;&#xA;" OwnerUserId="2820" LastActivityDate="2010-12-13T08:11:14.627" />
  <row Id="25910" PostTypeId="2" ParentId="25902" CreationDate="2010-12-13T08:17:12.857" Score="33" ViewCount="" Body="&lt;p&gt;With 10 years + of experience writing C++ code, a 3 month stint should far from tank your career. Your skills are definitely not out of date, and 3 months at a job are easy for a new employer to ignore, in the context of 10 years of experience&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start applying, as soon as possible, to other positions. Write your resume in a way which shows that you have been working, but that your most recent position is not the relevant one for the jobs that you're applying for.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you can't quit the current job, in parallel with your job search, keep pushing them to transfer you to a position that would be appropriate, and/or working internally to take on the responsibilities and work that you'd be interested in. Even if you're just handling support calls and testing, spend time, for example, writing scripts to automate testing, and trying to actually fix the problems that come up in support by looking through the code and debugging.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some serious short-term leg work should, with a bit of luck, pay off with a more appropriate job for you. Your career is not tanked, and you have not fraked your future.&lt;/p&gt;&#xA;" OwnerUserId="4091" LastActivityDate="2010-12-13T08:17:12.857" CommentCount="2" />
  <row Id="25911" PostTypeId="2" ParentId="25902" CreationDate="2010-12-13T08:17:37.060" Score="7" ViewCount="" Body="&lt;p&gt;No, it doesn't need to tank your career. Look for a new job, and when they ask about why you were there for only a few months, be straightforward and honest: the job wasn't even roughly similar to what you had been told it would be. Assuming that this really is anomalous and the rest of your career is solid, it shouldn't cause a problem at all. &lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-12-13T08:17:37.060" />
  <row Id="25912" PostTypeId="2" ParentId="25902" CreationDate="2010-12-13T08:19:15.587" Score="2" ViewCount="" Body="&lt;p&gt;Discuss with the superior your situation and let him know you want another role. Meanwhile start searching another job. If you superior does not agree and you get another job, great. If your superior agrees, great. If your superior doesn't agree and you do not get another job (With 10+ years in C++ you will most probably will not go to this situation though), stick to the current job, until you find another job. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastEditorUserId="8820" LastEditorDisplayName="" LastEditDate="2010-12-13T15:36:53.277" LastActivityDate="2010-12-13T15:36:53.277" CommentCount="2" />
  <row Id="25913" PostTypeId="2" ParentId="25898" CreationDate="2010-12-13T08:23:19.610" Score="1" ViewCount="" Body="&lt;p&gt;Thou shalt not use the 'goto' statement&lt;/p&gt;&#xA;" OwnerUserId="6495" LastActivityDate="2010-12-13T08:23:19.610" CommentCount="2" />
  <row Id="25915" PostTypeId="2" ParentId="25898" CreationDate="2010-12-13T08:41:40.360" Score="2" ViewCount="" Body="&lt;p&gt;Simple is better than complex.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-12-13T08:41:40.360" CommentCount="2" />
  <row Id="25916" PostTypeId="2" ParentId="25856" CreationDate="2010-12-13T08:44:50.347" Score="1" ViewCount="" Body="&lt;p&gt;Almost certainly no. The air vibrations (speech) will go out in all directions, also upwards at different angles, refract from the walls and the ceiling and find their way into other compartments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless every surface in the room is covered with a sound dampening material.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-13T08:44:50.347" />
  <row Id="25917" PostTypeId="1" CreationDate="2010-12-13T08:50:59.500" Score="7" ViewCount="335" Body="&lt;p&gt;I have seen C code where people used enum heavily. But all it does is confuse others. In many places plain integers can do the same thing with less ambiguity. What are the common misuses of enum?&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-13T13:40:54.830" LastActivityDate="2010-12-13T14:39:49.220" Title="What are the common misuses of &quot;enum&quot; in C?" Tags="&lt;c&gt;&lt;enum&gt;" AnswerCount="3" CommentCount="5" />
  <row Id="25918" PostTypeId="2" ParentId="25899" CreationDate="2010-12-13T08:58:18.770" Score="1" ViewCount="" Body="&lt;p&gt;project without specifications, in the middle of development, working with non-IT people whose have enormous pride(each one will tell you that he's the one who knows how the project should work), and a 'this must be done yesterday' attitude of your bosses :)&lt;/p&gt;&#xA;" OwnerUserId="8755" LastActivityDate="2010-12-13T08:58:18.770" />
  <row Id="25919" PostTypeId="2" ParentId="2516" CreationDate="2010-12-13T09:01:53.400" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Copy-paste bugs&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know - these are not &quot;the hardest&quot;, but significant too.&lt;/p&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-12-13T09:01:53.400" CommentCount="1" />
  <row Id="25920" PostTypeId="2" ParentId="2516" CreationDate="2010-12-13T09:09:32.410" Score="2" ViewCount="" Body="&lt;p&gt;In general, concurrency-dependend bugs, e.g. race conditions, can be pretty hard to find in testing and hard track down after they appear in production.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="6617" LastEditorDisplayName="" LastEditDate="2010-12-13T14:40:30.620" LastActivityDate="2010-12-13T14:40:30.620" />
  <row Id="25921" PostTypeId="2" ParentId="24847" CreationDate="2010-12-13T09:11:24.093" Score="0" ViewCount="" Body="&lt;p&gt;The most important thing to understand is that:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;It will take  longer&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-12-13T09:11:24.093" />
  <row Id="25922" PostTypeId="2" ParentId="25899" CreationDate="2010-12-13T09:16:50.183" Score="1" ViewCount="" Body="&lt;h2&gt;The &quot;release&quot; date was 10 years ago...&lt;/h2&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-13T09:16:50.183" CommentCount="1" />
  <row Id="25923" PostTypeId="2" ParentId="25899" CreationDate="2010-12-13T09:18:16.660" Score="0" ViewCount="" Body="&lt;p&gt;Parts of the code base regularly show up on &lt;a href=&quot;http://thedailywtf.com/&quot; rel=&quot;nofollow&quot;&gt;The Daily WTF&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-12-13T09:18:16.660" />
  <row Id="25924" PostTypeId="2" ParentId="39" CreationDate="2010-12-13T09:22:43.497" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;One accurate measurement is worth more&#xA;  than a thousand expert opinions.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Admiral Grace Hopper&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2913" LastActivityDate="2010-12-13T09:22:43.497" CommunityOwnedDate="2010-12-13T09:22:43.497" />
  <row Id="25927" PostTypeId="2" ParentId="25895" CreationDate="2010-12-13T09:36:28.347" Score="10" ViewCount="" Body="&lt;p&gt;What unit you use depends entirely on what you want to accomplish. The units most used in web layouts are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;px - absolute; one pixel&lt;/li&gt;&#xA;&lt;li&gt;pt - absolute; 1/72 inch, about 1.3px for screen media&lt;/li&gt;&#xA;&lt;li&gt;em - relative to parent font size; 1.0em = size of a character (width of uppercase M)&lt;/li&gt;&#xA;&lt;li&gt;% - relative to parent&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You use px for sizes that remain constant, for example a 1px border.&lt;br&gt;&#xA;You use em for sizes that should follow the font size, for example a 3.0em margin.&lt;br&gt;&#xA;You use % for sizes that should take up a percentage of the parent, for example a 50% width.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For web page layouts you normally use either pixels or percentages depending on if you want a fixed (pixel) layout or a fluid (percentage) based layout. &lt;/p&gt;&#xA;" OwnerUserId="3674" LastEditorUserId="3674" LastEditorDisplayName="" LastEditDate="2010-12-14T17:31:20.187" LastActivityDate="2010-12-14T17:31:20.187" CommentCount="5" />
  <row Id="25928" PostTypeId="2" ParentId="20745" CreationDate="2010-12-13T09:41:58.437" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://oreilly.com/catalog/9780596517748&quot; rel=&quot;nofollow&quot;&gt;JavaScript: The Good Parts&lt;/a&gt; is one of the best and also one of the slimmest programming books I have ever read.&lt;/p&gt;&#xA;" OwnerUserId="2259" LastActivityDate="2010-12-13T09:41:58.437" />
  <row Id="25929" PostTypeId="2" ParentId="25898" CreationDate="2010-12-13T09:45:10.350" Score="2" ViewCount="" Body="&lt;p&gt;Thou shalt document your code appropriately.&lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-12-13T09:45:10.350" CommentCount="1" />
  <row Id="25930" PostTypeId="1" CreationDate="2010-12-13T09:52:38.880" Score="2" ViewCount="179" Body="&lt;p&gt;What are essential things that one should consider for his first Job in big company with great place of innovation and competition  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please tell about your point of View or advice ,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks and Happy programming,&lt;/p&gt;&#xA;" OwnerUserId="7452" LastEditorUserId="4711" LastEditorDisplayName="" LastEditDate="2010-12-16T23:00:23.433" LastActivityDate="2010-12-16T23:00:23.433" ClosedDate="2010-12-14T20:22:44.863" Title="Any tips and advice for a entry level programmer with place of more competition ?" Tags="&lt;career&gt;&lt;self-improvement&gt;" AnswerCount="2" CommentCount="6" />
  <row Id="25931" PostTypeId="2" ParentId="25898" CreationDate="2010-12-13T09:54:33.497" Score="0" ViewCount="" Body="&lt;p&gt;Thou shalt debug to repent your sins (of introducing the bug).&lt;/p&gt;&#xA;" OwnerUserId="9544" LastActivityDate="2010-12-13T09:54:33.497" />
  <row Id="25932" PostTypeId="2" ParentId="25898" CreationDate="2010-12-13T10:01:20.260" Score="6" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;COMMUNICATE&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Fix bugs as early as possible&lt;/li&gt;&#xA;&lt;li&gt;Write unit-tests as early as possible&lt;/li&gt;&#xA;&lt;li&gt;Never trust that third-party API to work exactly as advertised/documented&lt;/li&gt;&#xA;&lt;li&gt;Never trust third-party library/control/widget to be flawless&lt;/li&gt;&#xA;&lt;li&gt;Always communicate all issues to the management&lt;/li&gt;&#xA;&lt;li&gt;Revise your estimates daily, discuss them with the rest of the team&lt;/li&gt;&#xA;&lt;li&gt;Follow-up on all open issues, remind people who are responsible for resolving them&lt;/li&gt;&#xA;&lt;li&gt;Expect unexpected, plan accordingly&lt;/li&gt;&#xA;&lt;li&gt;Refactor your code if you don't like it, if you don't have time, clearly indicate what you need in the comments&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7340" LastActivityDate="2010-12-13T10:01:20.260" CommentCount="3" />
  <row Id="25933" PostTypeId="2" ParentId="25644" CreationDate="2010-12-13T10:10:43.947" Score="2" ViewCount="" Body="&lt;p&gt;I'm one of &lt;a href=&quot;http://www.software.coop/&quot; rel=&quot;nofollow&quot;&gt;software.coop&lt;/a&gt;: that's our website and if you click About on our site, there's some background information, links to a case study and other co-ops we know. It needs tidying, but we're pretty busy. I think most tech-coop participants are profitable, even if some don't pay all that brilliantly yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Posted at the request of Tshepang)&lt;/p&gt;&#xA;" OwnerUserId="9895" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2010-12-27T18:37:41.373" LastActivityDate="2010-12-27T18:37:41.373" CommentCount="4" />
  <row Id="25934" PostTypeId="2" ParentId="25930" CreationDate="2010-12-13T10:17:20.343" Score="5" ViewCount="" Body="&lt;p&gt;You want to work with people who show great passion and professionalism.  Applying the &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;Joel Test&lt;/a&gt; when you interview is a good start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You also want to make sure that you're not going to be making coffee for 6 months before you touch a line of code.  Find out what they would have in store for you for your first few months of work.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-13T10:17:20.343" CommentCount="1" />
  <row Id="25935" PostTypeId="2" ParentId="25898" CreationDate="2010-12-13T10:18:23.463" Score="2" ViewCount="" Body="&lt;p&gt;Thou shalt talk (and listen!) to the end user(s)&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2010-12-13T11:05:31.773" LastActivityDate="2010-12-13T11:05:31.773" CommentCount="2" />
  <row Id="25936" PostTypeId="2" ParentId="25895" CreationDate="2010-12-13T10:23:22.050" Score="1" ViewCount="" Body="&lt;p&gt;I tend to use pixels for width declarations (which generally are fixed), but em's for height. That way the layout resizes vertically - but maintains horizontal consistency. &lt;/p&gt;&#xA;" OwnerUserId="3712" LastActivityDate="2010-12-13T10:23:22.050" />
  <row Id="25937" PostTypeId="2" ParentId="25898" CreationDate="2010-12-13T10:30:14.967" Score="1" ViewCount="" Body="&lt;p&gt;There is never a point where you stop learning.&lt;/p&gt;&#xA;" OwnerUserId="2545" LastActivityDate="2010-12-13T10:30:14.967" />
  <row Id="25938" PostTypeId="2" ParentId="25898" CreationDate="2010-12-13T10:31:21.317" Score="2" ViewCount="" Body="&lt;p&gt;There is more to programming than code.&lt;/p&gt;&#xA;" OwnerUserId="2545" LastActivityDate="2010-12-13T10:31:21.317" />
  <row Id="25939" PostTypeId="2" ParentId="25898" CreationDate="2010-12-13T10:34:24.410" Score="1" ViewCount="" Body="&lt;p&gt;Remember when to stop.&lt;/p&gt;&#xA;" OwnerUserId="4006" LastActivityDate="2010-12-13T10:34:24.410" />
  <row Id="25940" PostTypeId="2" ParentId="25644" CreationDate="2010-12-13T10:38:51.373" Score="2" ViewCount="" Body="&lt;p&gt;IT worker co-operatives (and more generally in the creative/knowledge industries) are a growing source of worker co-operatives in the UK. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.ecobee.org&quot; rel=&quot;nofollow&quot;&gt;http://www.ecobee.org&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.web.coop&quot; rel=&quot;nofollow&quot;&gt;http://www.web.coop&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.software.coop&quot; rel=&quot;nofollow&quot;&gt;http://www.software.coop&lt;/a&gt; (oh and hi MJ)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.3mules.coop&quot; rel=&quot;nofollow&quot;&gt;http://www.3mules.coop&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.atomised.coop&quot; rel=&quot;nofollow&quot;&gt;http://www.atomised.coop&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.nomad.coop&quot; rel=&quot;nofollow&quot;&gt;http://www.nomad.coop&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.netuxo.com&quot; rel=&quot;nofollow&quot;&gt;http://www.netuxo.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.mc3.coop&quot; rel=&quot;nofollow&quot;&gt;http://www.mc3.coop&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.analog.coop&quot; rel=&quot;nofollow&quot;&gt;http://www.analog.coop&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;More pure design including web:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.wave.coop&quot; rel=&quot;nofollow&quot;&gt;http://www.wave.coop&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.alpha.coop&quot; rel=&quot;nofollow&quot;&gt;http://www.alpha.coop&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.uhc.org.uk&quot; rel=&quot;nofollow&quot;&gt;http://www.uhc.org.uk&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.design.coop&quot; rel=&quot;nofollow&quot;&gt;http://www.design.coop&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Because of this growth we (at Co-operatives UK) have created a guide to help them along, if you're interested.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.creatives.uk.coop/&quot; rel=&quot;nofollow&quot;&gt;http://www.creatives.uk.coop/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9909" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2010-12-27T18:33:48.943" LastActivityDate="2010-12-27T18:33:48.943" CommentCount="3" />
  <row Id="25941" PostTypeId="2" ParentId="25652" CreationDate="2010-12-13T10:39:27.723" Score="1" ViewCount="" Body="&lt;p&gt;Is this a real problem? Does overall programmer tend to have this kind of disability?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Yes, I think that when programmers start speaking to non-programmers they will speak in terms that they are comfortable with i.e. they describe and discuss in a technical fashion. They like this, since it a sort of a comfort zone.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If this is a problem, what should one do to improve this disability?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Throw them in the deep end! Push the programmer to interact more with non-programmers, but have someone with more experience and skill present as a safety net. &lt;strong&gt;After the encounter, debrief and provide constructive feedback&lt;/strong&gt;. Wash, rinse and repeat. In time, these soft skills will improve. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2545" LastActivityDate="2010-12-13T10:39:27.723" CommentCount="2" />
  <row Id="25942" PostTypeId="2" ParentId="25902" CreationDate="2010-12-13T10:40:43.090" Score="0" ViewCount="" Body="&lt;p&gt;Start going to interviews and find a company you will be happy with. The work you're doing is unlikely to be crucial for your current employer so they will not miss you and 3 months ok for a long 'probation' period. &lt;/p&gt;&#xA;" OwnerUserId="7340" LastActivityDate="2010-12-13T10:40:43.090" />
  <row Id="25943" PostTypeId="2" ParentId="25898" CreationDate="2010-12-13T10:52:48.633" Score="1" ViewCount="" Body="&lt;p&gt;Thou shalt use version control.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-13T10:52:48.633" />
  <row Id="25944" PostTypeId="2" ParentId="25902" CreationDate="2010-12-13T10:55:11.550" Score="15" ViewCount="" Body="&lt;p&gt;If you are worried about a blemish on your CV, don't. It's part of my responsibility to hire people, and it is very clear to me that someone made a bad lateral move just by looking at the dates. In fact, depending, you might consider not listing it at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I saw someone with a &lt;em&gt;long history&lt;/em&gt; of short employment stints or an enormous and unexplained gap in their employment history, that would be a different story. For the first, I'd wonder if working for us would just be a short stepping stone for you. For the second, I'd wonder why you weren't working (did you do a stint in prison or something?, mental health break?, etc)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All I can recommend is making a clean and friendly break. Give ample notice, let them know that this simply isn't what you thought it would be when you signed on and try not to burn any bridges.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you said that you'd be taking support calls, I felt like I wanted to give you a hug. Get out of there and move on to something more interesting.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-13T14:12:03.500" LastActivityDate="2010-12-13T14:12:03.500" CommentCount="13" />
  <row Id="25945" PostTypeId="2" ParentId="25898" CreationDate="2010-12-13T11:10:14.207" Score="2" ViewCount="" Body="&lt;p&gt;Thou shalt unit test your code.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-12-13T11:10:14.207" />
  <row Id="25946" PostTypeId="2" ParentId="24847" CreationDate="2010-12-13T11:14:09.127" Score="2" ViewCount="" Body="&lt;p&gt;A lot of good suggestions have been made. To add to those:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Be aware that it won't just be humans accessing your app. Web spiders, search-engines, scrapers, robots, hostile scanners, spammers etc. will all be vying for a piece of the action. You need to code your app to appeal to the &quot;good guys&quot; (Google, Yahoo, etc) and be resilient to the &quot;bad guys&quot; (spammers, hackers etc.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Just because it looks and works OK in &lt;em&gt;your&lt;/em&gt; up-to-date browser doesn't mean it will work when someone in China accesses it in IE6. Test across as many browsers as possible and be aware that people can and will disable stuff like javascript, cookies, user-agent referrer string etc. And remember that many people now using mobile devices to browse the web. And not all of them have their locale set to &lt;strong&gt;en-us&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Pages load fast on localhost with cached assets, but don't let this fool you into thinking your app is &quot;responsive&quot; when accessed across the web on an ordinary connection. Page size (and that includes graphics, style-sheets, javascript, headers) all add up. Be aware of this.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Web applications are multi-user by default. Remember that. If there's any bottle-neck in the system you will be left with a very unresponsive application and angry users.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-12-13T11:14:09.127" />
  <row Id="25947" PostTypeId="2" ParentId="25652" CreationDate="2010-12-13T11:27:43.093" Score="1" ViewCount="" Body="&lt;p&gt;Looking at some of the answers here, they involve studying book and applying certain social styles to social situations. This is the &quot;programmers&quot; method of communication, which I believe to be the completely wrong method of solving this situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do see the communication skills of computer scientists as a problem and a problem that isn't going away. Although the social skills of some computer scientists I know are often quite &quot;unique&quot; and take some getting used to, I think the stereotype placed upon a computer scientist can prevent a social situation from developing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also don't think this problem can be solved in an analytical way. If you are trying to study social sciences and apply those to social situations, you will be thinking far too much and so you won't relax enough to have a proper conversation with someone. This problem can only be solved by going out and talking to people. Talk to people on the train, talk to people in bars or even just talk to the receptionist at work. Just practising having a normal conversation can do wonders for improving ones social skills&lt;/p&gt;&#xA;" OwnerUserId="154" LastActivityDate="2010-12-13T11:27:43.093" CommentCount="1" />
  <row Id="25949" PostTypeId="2" ParentId="25917" CreationDate="2010-12-13T11:34:04.217" Score="7" ViewCount="" Body="&lt;p&gt;One case I can think of, though haven't seen in the wild yet, is to abuse enums as a collection of disjointed integer constants:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;enum somestuff { days_in_week = 7,&#xA;                 months_in_year = 12,&#xA;                 number_of_planets = 8,&#xA;                 fingers_per_hand = 5 };&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The most pathological, innocent looking example I can imagine would be&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;enum numbers { one, two, three, four, five, six, seven, eight, nine, ten };&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;because &lt;code&gt;one&lt;/code&gt;==0, &lt;code&gt;two&lt;/code&gt;==1 etc.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-13T11:34:04.217" CommentCount="8" />
  <row Id="25950" PostTypeId="2" ParentId="25898" CreationDate="2010-12-13T11:38:10.490" Score="0" ViewCount="" Body="&lt;p&gt;Programming is a kind of non-material philosophy.&lt;/p&gt;&#xA;" OwnerUserId="9813" LastActivityDate="2010-12-13T11:38:10.490" />
  <row Id="25951" PostTypeId="2" ParentId="25652" CreationDate="2010-12-13T11:42:12.280" Score="0" ViewCount="" Body="&lt;p&gt;Yes its a real problem and once anyone felt that he has this issue he must start immediately to overcome it, &lt;BR&gt;&lt;br&gt;I was one of those people you talking about, until I decide to put a limit for the issue,&lt;br&gt; I start reading more often about &lt;code&gt;self-steam, self-confidence and social skills&lt;/code&gt; (through books websites, article and blogs)&lt;br&gt;&#xA;to be honest that didn't helped my out that much but it gave me a good head start&lt;br&gt; (how to go along with people, and find their speech interesting, how to focus more bit about relations more than machines :) ) especially for us (developers) not being amazed fast!&#xA;that included social activities meeting new people and talk about regulare issue may face them during their daily-life, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;it's really good to feel what other felt and to lestin to their life-experience, try it once and you'll be addected to it :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&#xA;one of the most good article i read about self-steam/confidence &lt;a href=&quot;http://zenhabits.net/25-killer-actions-to-boost-your-self-confidence/&quot; rel=&quot;nofollow&quot;&gt;Here&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="9701" LastActivityDate="2010-12-13T11:42:12.280" />
  <row Id="25952" PostTypeId="2" ParentId="25652" CreationDate="2010-12-13T11:54:07.897" Score="0" ViewCount="" Body="&lt;p&gt;Sometimes the notion that we should just be judged on the merits of our programming and that it isn't fair if people think less of us because of poor communication skills, social graces, appearance, etc. is what gets in the way. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I over-heard a conversation where someone with Asperger's was frustrated by the feedback from a head-hunter that clients were uncomfortable with the strange/inappropriate facial expressions this person made during interviews. Even though he didn't think this should matter, he decided to practice making appropriate facial expressions in front of a mirror. Something everyone else takes for granted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can work on general conversation and social skills, but until you come to the conclusion that life isn't fair and sometimes Marketing trumps Technology, and users really can't be expected to know how to use your software, you'll be a lot easer to get along with.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-13T11:54:07.897" />
  <row Id="25953" PostTypeId="1" AcceptedAnswerId="25956" CreationDate="2010-12-13T12:00:48.810" Score="3" ViewCount="244" Body="&lt;p&gt;Is it common for an organization to have an IT Steering Committee with no one from the IT department or anyone with a technical background to be on it? Shouldn't the VP of IT be the chairperson or at least be on it?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a programmer on staff, would this concern you and if so what would you do about it? &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-20T18:04:49.093" ClosedDate="2010-12-14T20:27:06.687" Title="IT Steering Committee with No One from IT?" Tags="&lt;politics&gt;" AnswerCount="3" CommentCount="6" />
  <row Id="25955" PostTypeId="2" ParentId="25953" CreationDate="2010-12-13T12:07:06.430" Score="1" ViewCount="" Body="&lt;p&gt;It's pretty common in the UK at least for IT to report into Finance at a board level and therefore have the Finance Director as the most senior responsible manager and the representative on these bodies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally yes, it's very concerning that there is no IT representative on this sort of steering committee, though how big an issue it is will depend on the precise role of the committee and how much it involves others outside it's core membership.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance if the head of the IT department is speaking with the committee regularly then the fact that he's not technically a member isn't such a big deal.  Similarly if it's about identifying what they want to do from a requirements perspective then again IT input while useful is not necessarily critical. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But yes, it's more common than you'd hope and in many cases my caveats above don't apply and it is indeed a long way from ideal.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-13T12:16:28.213" LastActivityDate="2010-12-13T12:16:28.213" />
  <row Id="25956" PostTypeId="2" ParentId="25953" CreationDate="2010-12-13T12:17:32.117" Score="5" ViewCount="" Body="&lt;p&gt;Any committee that has any say over where money is spent is generally, itself, under the oversight of some other committee. Committees that make fiscal commitments are typically (not) filled with people who have expertise beyond budgetary, business and other administrative areas, they rely on the expertise of sub committees for that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on the size of your organization, it may make fiscal or administrative sense to just have one committee, with at least one member being more keen on counting beans than planning the meat end of projects (or cucumber end, if you are a vegetarian).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On paper, it looks like both scenarios will achieve the same result, but that's usually not the case. The whole point of establishing a committee is to get &lt;em&gt;n&lt;/em&gt; number of votes from experts, so clearly a voting but non-expert member could be problematic. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is one of the reasons why I tend to stay at start up companies, rather than dealing with larger corporations, large NGO's and other settings where forming a 'committee' seems prudent. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-13T12:17:32.117" CommentCount="1" />
  <row Id="25957" PostTypeId="2" ParentId="25234" CreationDate="2010-12-13T12:20:55.837" Score="0" ViewCount="" Body="&lt;p&gt;Yeah, I do it all the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interestingly, the best managers I worked with were always ready to tell me to go home when I overdid it.&lt;/p&gt;&#xA;" OwnerUserId="5719" LastActivityDate="2010-12-13T12:20:55.837" />
  <row Id="25958" PostTypeId="2" ParentId="25930" CreationDate="2010-12-13T12:26:41.850" Score="4" ViewCount="" Body="&lt;p&gt;Big Company and Great Place of Innovation hardly ever go together, so I'd be wary. In most big companies, what matters for your company-career is not how skilled you are, but how charismatic, well-spoken and well-connected you are. It's all politics, politics and politics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, if you do go to a Great Place of Innovation, I'd advise being humble, have no fear of showing ignorance &lt;em&gt;coupled&lt;/em&gt; with an eagerness to learn, but, at the same time, have no compunction of putting your own ideas forward. Just be ready to be proven wrong and be a gentleman about it when it happens.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing that always work is being humble and right all the time, but that's harder to pull off, and harder still to convince others you did. :-)&lt;/p&gt;&#xA;" OwnerUserId="5719" LastActivityDate="2010-12-13T12:26:41.850" CommentCount="2" />
  <row Id="25959" PostTypeId="2" ParentId="25888" CreationDate="2010-12-13T12:32:12.277" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I thought I did okay in the&#xA;  interviews, but apparently the&#xA;  interviewers didn't think so&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&quot;Apparently&quot;? Did you already get feedback, beyond not getting hired?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bear in mind that your assessment of your performance may be entirely accurate. Someone else may just have done better. Or perhaps &quot;okay&quot; doesn't get over their particular bar; they may be looking for &quot;outstanding&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you're something exceptional, be prepared for interviews not resulting in offers to be the norm - since most companies interview multiple candidates for each role, all but one of those candidates is not going to get an offer, no matter how well (or badly) each performed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it shouldn't be a problem to request feedback from the interview process; pretty much the worst that can happen is that they don't provide it or that they take a long time to do so.&lt;/p&gt;&#xA;" OwnerUserId="4911" LastActivityDate="2010-12-13T12:32:12.277" />
  <row Id="25960" PostTypeId="2" ParentId="25888" CreationDate="2010-12-13T12:44:30.083" Score="10" ViewCount="" Body="&lt;p&gt;I usually tell people if they call. Common reasons I give are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The position was given to someone with more experience&lt;/li&gt;&#xA;&lt;li&gt;The position was given to someone who we feel would be a better fit in our team. During our interview, you didn't defend your solution to the [foo] problem very well.&lt;/li&gt;&#xA;&lt;li&gt;You missed the first interview and showed up late for the second. While you were more than qualified, I hired the candidate next in line.&lt;/li&gt;&#xA;&lt;li&gt;You are completely overqualified for the position. I brought on someone who would find it challenging.&lt;/li&gt;&#xA;&lt;li&gt;We want you, we simply can't afford you.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But, you have to be careful as well. You would be amazed at the smallest spark, the smallest mixing up of words, the smallest voice inflection that might spark a lawsuit (depending on where you are located). If you want feedback, it has to be over the phone. If you want an e-mail or a letter, it would simply say &quot;Sorry we did not select you, we'll keep your CV on file.&quot; I have to do what our legal department says.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't send out formal letters, though (HR sends out the generic one, not me). Criticism is something that should be invited. So, if not selected .. if you call and ask me, I'll let you know how you can improve for your next prospect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, of course to the best of my ability. Sometimes I hire just because I have a really good instinct about someone, even if they aren't the most experienced. In that case, unfortunately, all I have is a generic answer to give you. Something like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It was a very tough decision. You did very well in the interview, your experience is more than adequate. I don't think there's anything better you could do in the future.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There's also factors that aren't easily explained. My previous boss could not &lt;em&gt;stand&lt;/em&gt; jewelery on men. Knuth could interview and if he wore more more than a watch and a wedding band, he probably would not get hired. I don't think there's a good way to articulate that as an explanation for not hiring someone .. so no matter what they tell you, understand that personal bias does often come into play.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-13T12:50:51.230" LastActivityDate="2010-12-13T12:50:51.230" CommentCount="1" />
  <row Id="25961" PostTypeId="2" ParentId="25857" CreationDate="2010-12-13T12:45:10.393" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Would you like to have a more ergonomic mouse / keyboard / chair / desk?&quot;&lt;/p&gt;&#xA;" OwnerUserId="3543" LastActivityDate="2010-12-13T12:45:10.393" />
  <row Id="25962" PostTypeId="2" ParentId="25706" CreationDate="2010-12-13T13:00:17.557" Score="1" ViewCount="" Body="&lt;p&gt;First off, consider what you mean by &quot;finance&quot; - it's a term that encompasses several industries: insurance, asset management, retail banking, investment banking, for example, each of which offers different career paths, development opportunities, pressures, rewards and, I suppose, stress levels.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most &quot;enterprise&quot; programming work in most financial organisations is much like anywhere else: shuffling, storing and reporting data (&quot;plumbing&quot;, if you will). After a while it ceases to be exciting for some but it's necessary, valuable and can be a good place to start a career. Should you start in such a role with ambitions to move towards the sharper end, try to ensure that you're gaining expertise in appropriate technologies: C# would be more useful than COBOL in such a situation, for example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looking at that &quot;sharp&quot; end, which probably involves working in a trading environment, don't assume that you need a PhD in anything: there's plenty of front office work that doesn't involve Quants, who are largely mathematical modellers. Trading systems need to be developed and maintained, risk has to be monitored and yes, there's a lot of poorly-written Excel/VBA out there. Think of it as an opportunity to make things better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really want to work on the trading floor, good luck. It can be exciting, fun and stimulating. It can also negatively affect your work/life balance. You need to develop a thick skin (traders are not always reasonable) and a clear sense of what is &quot;good enough&quot; - there is seldom time to reach perfection before moving on to the next crisis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not saying it's a bad job - I spent nearly a decade in total working in various dealing rooms around the City, learned a lot, earned a lot and had a good time doing it. But it's most definitely not for everyone.&lt;/p&gt;&#xA;" OwnerUserId="4911" LastActivityDate="2010-12-13T13:00:17.557" />
  <row Id="25963" PostTypeId="1" AcceptedAnswerId="25967" CreationDate="2010-12-13T13:09:06.373" Score="23" ViewCount="745" Body="&lt;p&gt;Is there any hard data (studies, comparisons, not-just-gut-feel analysis) on the advantages and disadvantages of working from home?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My devs asked about e.g. working from home one day per week, the boss doesn't like it for various reasons, some of which I agree with but I think they don't necessarily apply in this case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have real offices (2..3 people each), distractions are still common. IMO it would be beneficial for focus, and with 1 day / week, there wouldn't be much loss at interaction and communication. In addition it would be a great perk, and saving the commute. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Related: &lt;a href=&quot;http://programmers.stackexchange.com/questions/4325/pros-and-cons-of-working-remotely-from-home&quot;&gt;Pros and Cons of working Remotely/from Home&lt;/a&gt;  (interesting points, but no hard facts)&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;[edit]&lt;/strong&gt; Thanks for all the feedback!&lt;br&gt;&#xA;To clarify: it's not my decision to make, I agree that there are pro's and con's depending on circumstances, and we &lt;em&gt;are&lt;/em&gt; pushing for &quot;just try it&quot;. I've asked this specific question because (a) facts are a good addition to thoughts in arguing with an engineer boss, and (b) we, as developers, should build upon facts like every respectable trade. &lt;/p&gt;&#xA;" OwnerUserId="7313" LastEditorUserId="7313" LastEditorDisplayName="" LastEditDate="2010-12-14T20:12:25.350" LastActivityDate="2011-01-26T10:08:46.073" Title="Is there any hard data on the (dis-)advantages of working from home?" Tags="&lt;work-environment&gt;&lt;efficiency&gt;" AnswerCount="8" CommentCount="14" FavoriteCount="5" />
  <row Id="25964" PostTypeId="2" ParentId="4654" CreationDate="2010-12-13T13:25:31.233" Score="0" ViewCount="" Body="&lt;p&gt;More RAM &lt;strong&gt;and&lt;/strong&gt; an x64 OS. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Evidence:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have two systems with minor HW differences that should account for 10..20% of build speed,  one running Vista x86, the other Windows 7 x64, the latter building twice as fast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've heard related advice before: using W2K / W2K3 instead of Windows 98 or XP, but didn't have a direct comparison.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;My Tests:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;VS 2008, W7 x64 system has a 4 core CPU with HT and 8GB RAM, building in 8 processes in parallel.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;An SSD (OCZ Vertex 2) does &lt;strong&gt;not&lt;/strong&gt; significantly improve build speed on repeated builds with Antivirus disabled.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;                                  SSD          HDD&#xA; 1st after boot, AV on            17:14         25:16&#xA; 2nd after boot, AV on            16:56         20:59&#xA; 3rd after boot, AV on            16:50        &#xA; 4th/3rd after boot, AV off       13:07         14:57&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(3rd line to test epeatability of results, the last line is the &quot;stable&quot; case where there's not much benefit anymore).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Memory seems not limiting: even in the more taxing release builds with full optimization, &quot;in use&quot; &amp;lt; 60%, most of the rest is on &quot;Standby&quot;, i.e. probably used as cache.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm planning to run  some more detailed tests, (different threads in parallel etc.)&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;" OwnerUserId="7313" LastActivityDate="2010-12-13T13:25:31.233" />
  <row Id="25965" PostTypeId="2" ParentId="25722" CreationDate="2010-12-13T13:29:30.730" Score="1" ViewCount="" Body="&lt;p&gt;Inheritance should have been better thought I think.&#xA;There are C++ performance losses due to multiple inheritance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't really know what compromises there could have been on the C++ language, or what could replace class inheritance, but sometime I wonder if is has such a good purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When thinking about the KISS principle, templates and high level class usage makes me wonder...&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2010-12-13T13:29:30.730" />
  <row Id="25966" PostTypeId="2" ParentId="25812" CreationDate="2010-12-13T13:40:21.897" Score="2" ViewCount="" Body="&lt;p&gt;Well Erlang seems to me like another LISP dialect or another powerful language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with such languages is that they are more on the side of the computer than on the programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By that I mean that a language NEEDS to be as concise as possible, simple for a human to understand and not too mangled.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A programming language is much like a spoken language, the simpler it is, the better it is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Esperanto is much like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make an automated machine do what you want is already hard if you think about today's computer capacities, you won't do something in ASM. The best programming languages are the one which make good code, quickly for an average programmer, and is easy enough to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You must understand that heavily multi threaded and/or clustered systems requires non-trivial programming paradigm and that common languages aren't suited for those particular uses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you have to hope, is that new concepts which are nice to understand and to use will one day find their way into common languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go is such an example.&#xA;Also remember that lambdas and pairs will be available in C++1x, with a lot of new stuff...&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2010-12-13T13:40:21.897" CommentCount="4" />
  <row Id="25967" PostTypeId="2" ParentId="25963" CreationDate="2010-12-13T13:41:38.170" Score="7" ViewCount="" Body="&lt;p&gt;There are a few but not all are current or applying exclusively to our field:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.jstor.org/stable/258127&quot; rel=&quot;nofollow&quot;&gt;Work-at-home and the quality of working life&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://linkinghub.elsevier.com/retrieve/pii/S0965856406000309&quot; rel=&quot;nofollow&quot;&gt;Substitution between working at home and out-of-home: The role of ICT and commuting costs&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.princeton.edu/anthropology/faculty/rena_lederman/pdfs/Lederman-2006-AE-IRB-article.pdf&quot; rel=&quot;nofollow&quot;&gt;The perils of working at home: IRB “mission creep” as context and content for an ethnography of disciplinary knowledges&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.statcan.ca/bsolc/english/bsolc?catno=75-001-X20070039973&quot; rel=&quot;nofollow&quot;&gt;Working at home: An update&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rphrm.curtin.edu.au/2007/issue1/satisfaction.html&quot; rel=&quot;nofollow&quot;&gt;Satisfaction and perceived productivity when professionals work from home&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.springerlink.com/index/GUH655W714744R09.pdf&quot; rel=&quot;nofollow&quot;&gt;Factors that Influence the Productivity of Software Developers in a Developer View&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.emeraldinsight.com/journals.htm?articleid=1875457&amp;amp;show=abstract&quot; rel=&quot;nofollow&quot;&gt;Restructuring workplace cultures: the ultimate work-family challenge?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;NOTE: Some of the articles appeared in journals and aren't free.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-12-13T13:41:38.170" />
  <row Id="25969" PostTypeId="1" AcceptedAnswerId="25996" CreationDate="2010-12-13T13:47:13.827" Score="27" ViewCount="887" Body="&lt;p&gt;The question is in the title &quot;Should I Bother To Develop for JavaScript Disabled?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel that my time is better spent developing for the majority? &lt;/p&gt;&#xA;" OwnerUserId="526" LastActivityDate="2011-05-26T14:08:09.500" CommunityOwnedDate="2011-05-26T14:08:09.500" Title="Should I Bother To Develop for JavaScript Disabled?" Tags="&lt;web-development&gt;&lt;javascript&gt;" AnswerCount="16" CommentCount="8" />
  <row Id="25970" PostTypeId="2" ParentId="25969" CreationDate="2010-12-13T13:48:27.697" Score="21" ViewCount="" Body="&lt;p&gt;Yes, you should.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you perceive this as something that requires extra effort, you may be doing it the other way around.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Develop your pages to work without JavaScript first then add JavaScript-based improvements, Ajax effects and so on. They will work if JS is supported/enabled, otherwise your pages will &lt;em&gt;degrade gracefully&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And please, don't develop the pages where:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;The entire content is pulled from the database by JavaScript&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The markup completely falls apart because the elements glued together and put into the right places by JavaScript not by CSS&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Links in the navigation and in the body are not functioning without JavaScript (unless it's some framework like ASP.NET which relies on JavaScript for a reason)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It's just against the spirit of the web and against the common sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. Spoken by a user of the NoScript.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-13T14:04:32.273" LastActivityDate="2010-12-13T14:04:32.273" CommunityOwnedDate="2011-05-26T14:08:09.500" CommentCount="8" />
  <row Id="25971" PostTypeId="2" ParentId="11312" CreationDate="2010-12-13T13:48:45.823" Score="3" ViewCount="" Body="&lt;p&gt;Good enough colleagues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm in a private game programming school right now, and obviously there are not enough clever people in my class, unlike the one of the same year of the last year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By clever enough I mean maturity, interests, programming experience and self-motivation to solve a problem by his own self rather than asking other student rather than the teacher.&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2010-12-13T13:48:45.823" CommunityOwnedDate="2010-12-13T13:48:45.823" />
  <row Id="25972" PostTypeId="2" ParentId="25963" CreationDate="2010-12-13T13:51:34.523" Score="7" ViewCount="" Body="&lt;p&gt;Studies and surveys on subjects such as the advantages of working from home can often end up being biased.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a recent &lt;a href=&quot;http://www.bbc.co.uk/news/business-11886404&quot; rel=&quot;nofollow&quot;&gt;BBC article&lt;/a&gt; on the subject. There's a mention of viewership of a certain show rising during snow, but that does not necessarily mean people working from home were distracted by the TV schedule.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the bottom line is building up trust with the people you interact with, whether co-workers, bosses or clients.&lt;/p&gt;&#xA;" OwnerUserId="8903" LastActivityDate="2010-12-13T13:51:34.523" CommentCount="5" />
  <row Id="25973" PostTypeId="2" ParentId="25917" CreationDate="2010-12-13T13:54:10.260" Score="4" ViewCount="" Body="&lt;p&gt;The biggest issue I've had with enumerations is them being defined twice. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;EnumZ&#xA;{&#xA;    Yes,&#xA;    No,&#xA;    Maybeso&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and someone else, with a very similar name, would have&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;EnumZee&#xA;{&#xA;    No,&#xA;    Maybeso,&#xA;    Yes&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It's not a &quot;quick catch&quot; because that's the enum you made.. right? It's something you don't really see until you're stepping through the code and see that your 'No' is coming back as zero instead of one.&lt;/p&gt;&#xA;" OwnerUserId="5286" LastEditorUserId="5286" LastEditorDisplayName="" LastEditDate="2010-12-13T14:18:48.153" LastActivityDate="2010-12-13T14:18:48.153" />
  <row Id="25974" PostTypeId="2" ParentId="25969" CreationDate="2010-12-13T13:55:45.757" Score="5" ViewCount="" Body="&lt;h1&gt;Absolutely&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;A site that doesn't work correctly without JavaScript should clearly notify the user. As much as possible should be made to work correctly without JavaScript. There are certain cases where this won't be possible, highly dynamic sites built on layers of AJAX and remote fetches are one of them. This doesn't mean that it's okay to show a blank page if I have JavaScript disabled. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Graceful degradation is extremely important, and it doesn't just apply to JavaScript, it applies to everything you code. Valid HTML markup, valid CSS, server side validation of &lt;em&gt;everything&lt;/em&gt;. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-13T13:55:45.757" CommunityOwnedDate="2011-05-26T14:08:09.500" />
  <row Id="25975" PostTypeId="1" CreationDate="2010-12-13T14:00:47.660" Score="11" ViewCount="598" Body="&lt;p&gt;What are the best programming books &lt;strong&gt;published in 2010&lt;/strong&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One book per answer  &amp;amp; upvote rather than duplicate an answer please.&lt;/p&gt;&#xA;" OwnerUserId="9927" LastActivityDate="2010-12-13T15:50:19.640" CommunityOwnedDate="2010-12-13T16:34:30.373" ClosedDate="2010-12-13T16:56:27.817" Title="Best Programming Books in 2010" Tags="&lt;books&gt;" AnswerCount="8" CommentCount="5" FavoriteCount="7" />
  <row Id="25976" PostTypeId="2" ParentId="25969" CreationDate="2010-12-13T14:01:33.947" Score="0" ViewCount="" Body="&lt;p&gt;It really depends on the requirements. What does the contract say? Is it reasonable to ask the users of your site to enable JavaScript? Can you deliver a significant portion of your site's feature set without?&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-13T14:01:33.947" CommunityOwnedDate="2011-05-26T14:08:09.500" CommentCount="1" />
  <row Id="25977" PostTypeId="2" ParentId="25969" CreationDate="2010-12-13T14:01:47.957" Score="7" ViewCount="" Body="&lt;p&gt;Personally I use the &lt;a href=&quot;http://noscript.net/&quot; rel=&quot;nofollow&quot;&gt;NoScripts&lt;/a&gt; Firefox plugin when browsing, and I encourage others to use it to. On all the family PCs I maintain NoScripts is one of the mandatory bits of software I install. I set it up with a whitelist of the basic email and banking websites along with the popular social &amp;amp; video sites and explain to them how the temporary allow works. Judging from the popularity of this plugin I think there is a pretty good portion of people who use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the very least I expect navigation functionality to work without scripts. If you have something specific like video that requires scripts then fine, but display a nice placeholder that says &quot;scripts are required to view this video&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Making your navigation rely on scripts is a big mistake though. In many cases it will make me bounce off the site in disgust. An even bigger mistake is to have part of your site or navigation just completely disappear when scripts are disabled. Unless you highlight the fact that something is missing there's a good chance I won't even notice so will just leave your site thinking it wasn't there. Also, a full screen message that just says &quot;this site requires scripts&quot; won't get you very far, I need to see some level of content before I trust you enough to allows scripts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, don't forget that it's not just desktop PCs that are browsing your site, but mobile browsers are increasingly popular. Although mobile JavaScript support is getting better it's no where near perfect so unless you are going to heavily test all the different mobile browsers I would suggest you search the mobile version of your page pretty much scriptless.&lt;/p&gt;&#xA;" OwnerUserId="134" LastActivityDate="2010-12-13T14:01:47.957" CommunityOwnedDate="2011-05-26T14:08:09.500" />
  <row Id="25978" PostTypeId="1" AcceptedAnswerId="25983" CreationDate="2010-12-13T14:08:44.907" Score="3" ViewCount="53" Body="&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In an async call pair you would rather have a BeginDoSomething &amp;amp; FinishDoSomething or PreDoingSomething &amp;amp; PostDoingSomething pair?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers&lt;/p&gt;&#xA;" OwnerUserId="9928" LastActivityDate="2010-12-13T14:17:13.887" Title="Begin and Finish or Pre and Post in async call pair?" Tags="&lt;naming-conventions&gt;&lt;naming&gt;" AnswerCount="2" />
  <row Id="25979" PostTypeId="2" ParentId="25963" CreationDate="2010-12-13T14:09:29.603" Score="4" ViewCount="" Body="&lt;p&gt;I think you might be approaching this the wrong way - walking into your bosses office and slamming down fact sheets on why it's important that you be allowed to work in your boxers is probably not going to impress anyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Jon stated, this is a trust issue, but it's also a negotiation.  You need to spend some time with your boss to understand their vantage point in this argument.  It's possible he/she's had a very negative experience previously, or heard about a negative result of this policy from their colleagues.  You need to attack first, and remember that it's all about what you can offer your boss.  Perhaps he/she is worried that you won't get your tasks done -- maybe work in a mandatory stand-up session at the beginning of the day, or convince your fellows to provide specific updates at the end of the day to show what work was completed.  Offer a one-month trial and shave a little more time off of the last estimate you gave -- you'll have to work a little harder but you &quot;should&quot; have extra time now.  If you still cannot get them to agree -- look at allowing at least one or two days a month for &quot;emergency&quot; telecommuting (snow-days, sickness, Godzilla, etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also (as stated previously) don't call it WFH (bad/soft connotation) -- it's telecommuting.&lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-12-13T14:09:29.603" CommentCount="1" />
  <row Id="25980" PostTypeId="2" ParentId="25978" CreationDate="2010-12-13T14:10:14.020" Score="0" ViewCount="" Body="&lt;p&gt;I prefer &lt;strong&gt;pre&lt;/strong&gt; and &lt;strong&gt;post&lt;/strong&gt; but those are naming conventions that are personal preference. There is not right or wrong.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-13T14:10:14.020" />
  <row Id="25981" PostTypeId="2" ParentId="25975" CreationDate="2010-12-13T14:14:23.907" Score="5" ViewCount="" Body="&lt;p&gt;I really like &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1935182471&quot; rel=&quot;nofollow&quot;&gt;C# in Depth&lt;/a&gt; by Jon Skeet for all of the C# fans out there.&lt;/p&gt;&#xA;" OwnerUserId="2044" LastActivityDate="2010-12-13T14:14:23.907" CommunityOwnedDate="2010-12-13T16:34:30.373" CommentCount="4" />
  <row Id="25982" PostTypeId="2" ParentId="25969" CreationDate="2010-12-13T14:16:04.833" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Only on mission critical functionality&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally its a good idea to &quot;degrade gracefully&quot;. However I would I would only concentrate on mission critical parts of your web application, to cater for situations when JavaScript may not be available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If its just &quot;bells &amp;amp; Whistles&quot; effects, then no don't bother. People who deliberately surf with out JavaScript will just have to make do a plain experience (hey that's their choice for not using Js)&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-13T14:16:04.833" CommunityOwnedDate="2011-05-26T14:08:09.500" />
  <row Id="25983" PostTypeId="2" ParentId="25978" CreationDate="2010-12-13T14:17:13.887" Score="2" ViewCount="" Body="&lt;p&gt;If the method &lt;strong&gt;causes&lt;/strong&gt; the async functionality &lt;strong&gt;to begin&lt;/strong&gt;, then I would call it &lt;code&gt;Begin...&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the method &lt;strong&gt;causes&lt;/strong&gt; the async functionality &lt;strong&gt;to end&lt;/strong&gt;, then I would call it &lt;code&gt;End...&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the method should be &lt;strong&gt;run before&lt;/strong&gt; the async functionality starts, then I might call it &lt;code&gt;Pre...&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the method should be &lt;strong&gt;run after&lt;/strong&gt; the async functionality ends, then I might call it &lt;code&gt;Post...&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The begin and end options seem to indicate that they cause things to happen with respect to the async function, like turning the key in the ignition, or turning it off again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The pre and post options seem to indicate that they are detached from the actual async function they surround, like closing the car door before you put your foot on the accelerator, or putting on the handbrake before exiting the car.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-12-13T14:17:13.887" CommentCount="1" />
  <row Id="25984" PostTypeId="2" ParentId="25975" CreationDate="2010-12-13T14:17:57.383" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0470292784&quot; rel=&quot;nofollow&quot;&gt;Professional ASP.NET Design Patterns&lt;/a&gt; for those that want more advanced topics for ASP .NET.&lt;/p&gt;&#xA;" OwnerUserId="2044" LastActivityDate="2010-12-13T14:17:57.383" CommunityOwnedDate="2010-12-13T16:34:30.373" />
  <row Id="25985" PostTypeId="2" ParentId="25975" CreationDate="2010-12-13T14:19:11.503" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321719638&quot; rel=&quot;nofollow&quot;&gt;CSS3: Visual QuickStart Guide (5th Edition)&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2044" LastActivityDate="2010-12-13T14:19:11.503" CommunityOwnedDate="2010-12-13T16:34:30.373" />
  <row Id="25986" PostTypeId="2" ParentId="25902" CreationDate="2010-12-13T14:19:25.710" Score="3" ViewCount="" Body="&lt;p&gt;I think it is perfectly okay to get out of a job you don't like. Don't bother if someone complains to you about a short stint or 2 in your resume, explain to them what happened. Rational explanations usually have takers.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-13T14:19:25.710" />
  <row Id="25987" PostTypeId="2" ParentId="25975" CreationDate="2010-12-13T14:20:10.263" Score="2" ViewCount="" Body="&lt;p&gt;I just started reading Martin Fowler's &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321712943&quot; rel=&quot;nofollow&quot;&gt;Domain-Specific Languages&lt;/a&gt;, and so far it looks very good.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-12-13T14:20:10.263" CommunityOwnedDate="2010-12-13T16:34:30.373" />
  <row Id="25988" PostTypeId="2" ParentId="25975" CreationDate="2010-12-13T14:20:22.907" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596808321&quot; rel=&quot;nofollow&quot;&gt;Making Software: What Really Works, and Why We Believe It&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2044" LastActivityDate="2010-12-13T14:20:22.907" CommunityOwnedDate="2010-12-13T16:34:30.373" />
  <row Id="25989" PostTypeId="2" ParentId="25963" CreationDate="2010-12-13T14:26:18.480" Score="6" ViewCount="" Body="&lt;p&gt;There may be some scientific studies...and there may not. They may or may not be indicative of &lt;em&gt;your results&lt;/em&gt;. Some people are more efficient when they telecommute, some are not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only way to know is to &lt;strong&gt;try it&lt;/strong&gt;, for a month, and see if stuff still gets done. See how the people like it. Start with one day a week. If that's good, go to two days a week. And so on. Find ways to avoid in-person meetings unless absolutely necessary. Eventually, if all goes well, you'll get to telecommuting five days a week, and you can get rid of the office expense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anecdote: when the price of gas shot through the roof after Hurricane Katrina, many firms in California instituted telecommuting as a 'temporary' measure - and found that productivity increased, moral increased, etc. (how could you not be happier and more productive if you no longer had a two-hour California commute?) so they kept doing it after gas prices went back to normal.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-13T14:26:18.480" CommentCount="2" />
  <row Id="25990" PostTypeId="2" ParentId="25888" CreationDate="2010-12-13T14:32:07.613" Score="4" ViewCount="" Body="&lt;p&gt;I just want to add that if you don't get detailed feedback, please don't take it personally, and neither should you push harder to try to get it. I'm not a recruiter or an HR person; I'm a business owner who sometimes needs to hire someone to join our firm. Here's what that process looks like for me: first, there's all kinds of calculating and number crunching to establish whether or not we really can afford to do this, including trying to guess what the market is paying at the moment, writing the job description, spreading the word, etc. Then, there's a huge wave of resumes, many from people who can't even spell the technologies they claim to know. I have too much work anyway - that's why I'm hiring - but I have to find the time to extract a short list from the pile. Then I (or if I'm lucky, someone I delegate to) must get in touch with the short list and schedule the interviews, deal with having someone on my short list already hired elsewhere, etc. Then the actual interviews, which can be kind of a blur sometimes but I take a lot of notes. Then selecting a first choice, making an offer, which might get accepted but might not. Possibly making an offer to the second choice. Finally writing to the rest saying we hired someone else. Then busy training the new person and trying to catch up on whatever backlog accumulated while I had to hire.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then candidate #3, or #7, emails and wants feedback on what was not great and what could be better and how to improve? Look, I'm a really helpful person, you can see that, I spend time here, I blog, I speak at conferences, you know? But there's a time and a place. And right after finishing an exhausting round of hiring is almost never the time. I sometimes tell people &quot;you outperformed several other candidates, but were not the highest ranked.&quot; The chances of getting more details than that are slim. It's different in a big company where they might want to keep you on file for another position. It's certainly very very different for a recruiter who wants to place you and wants to improve your interview performance. But for me (and plenty of other interviewers), it's a favour you're asking, at a time when we may not be able to grant it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I wouldn't hold it against you to ask. I just might not answer usefully.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-12-13T14:32:07.613" CommentCount="1" />
  <row Id="25991" PostTypeId="2" ParentId="25969" CreationDate="2010-12-13T14:38:58.953" Score="10" ViewCount="" Body="&lt;p&gt;For one, I disagree with the people out there who insist that everything should function without Javascript. It is nice to code to the lowest common denominator in a lot of cases (for example, I would be really pissed if my bank's site required Flash or some such nonsense.) But realistically almost everyone has Javascript enabled these days and if used properly the resulting sites can be quite spectacular and useful! (I mean, let's see how nice Google Maps is when Javascript is turned off...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, this should not absolve you from at the very least ensuring that your page fails gracefully if Javascript is not present. Never EVER leave your users staring at a half loaded, broken page with no indication as to what went wrong. Just ask yourself: Would I rather spend 2 minutes coding up a &quot;This page requires Javascript&quot; message or receive 10 emails daily from users telling me that my page is broken because they have noscript enabled? &lt;/p&gt;&#xA;" OwnerUserId="4826" LastActivityDate="2010-12-13T14:38:58.953" CommunityOwnedDate="2011-05-26T14:08:09.500" CommentCount="2" />
  <row Id="25992" PostTypeId="1" CreationDate="2010-12-13T14:39:49.293" Score="1" ViewCount="218" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/25963/is-there-any-hard-data-on-the-advantages-and-disadvantages-of-working-from-home&quot;&gt;Is there any hard data on the advantages and disadvantages of working from home?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I'm in charge of a team of programmers and IT people, but this question is more general - what kind of arguments are convincing to a non-techie management team, when it comes to convincing them that working-from-home is appropriate for my team of programmers/IT/tech-support people? What hard information can I use to back up my argument, and what kinds of hard questions should I be ready to answer once I open this topic up?&lt;/p&gt;&#xA;" OwnerUserId="4091" LastActivityDate="2010-12-13T15:24:53.907" ClosedDate="2010-12-13T15:44:41.213" Title="How do I convince my manager to let me, and my team, work from home?" Tags="&lt;work-environment&gt;&lt;management&gt;&lt;work&gt;&lt;lifestyle&gt;&lt;work-from-home&gt;" AnswerCount="3" CommentCount="7" FavoriteCount="1" />
  <row Id="25993" PostTypeId="2" ParentId="25917" CreationDate="2010-12-13T14:39:49.220" Score="0" ViewCount="" Body="&lt;p&gt;In C++ (would have posted as comment, but for the code this works better)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;enum ELength&#xA;{&#xA;   mm = -3, &#xA;   m = 0,&#xA;   km = 3,&#xA;   // ...&#xA;}&#xA;&#xA;&#xA;double operator*(double d, ELength scale)&#xA;{&#xA;   return d * pow(10, scale);&#xA;}&#xA;&#xA;// allows:&#xA;double len = 2*mm;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Another applicaiton would be qualifiers:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; enum EConstraintMode&#xA; {&#xA;    abs   = 1,&#xA;    rel   = 2,&#xA;    expand = 3,&#xA; };&#xA;&#xA;&#xA; struct Constraint&#xA; {&#xA;    EConstraintMode mode;&#xA;    int value;&#xA; }&#xA;&#xA; Constraint operator-(EConstraintMode mode, int value)&#xA; {&#xA;    Constraint c = { mode, value };&#xA;    return c;&#xA; }&#xA;&#xA; void SetConstraints(Constraint top, Constraint Left,....) { ... }&#xA;&#xA; SetConstraint(abs-12, rel-50, abs-12, rel-50);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I'm still undecided if this is wickedly cool, wickedly horrible, or both. (Wouldn't use that in production code, for that reason).&lt;/p&gt;&#xA;" OwnerUserId="7313" LastActivityDate="2010-12-13T14:39:49.220" CommentCount="1" />
  <row Id="25994" PostTypeId="2" ParentId="25812" CreationDate="2010-12-13T14:44:47.013" Score="7" ViewCount="" Body="&lt;p&gt;Erlang is very nearly a WONDERFUL language for massively concurrent systems. There are two factors that turned me away from it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first is the OTP library, which seeks to protect programmers from many of the complexities of parallel programming, at the expense of introducing a blocking metaphor that reduces the effective parallelism. Sooner or later you will find cases where using gen_server just plain stops you doing what you want to do, for no good reason other than a sort of early Apple mentality - &quot;you don't need to do that&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second problem, and to me this is far more significant, is that run-time error reporting mechanism is abysmal. Erlang's loosely-typed operation means that it is entirely possible to discover errors only at run time. Erlang then offers a fairly complex backtrace, but fails to mention which line of a file caused the program to barf. Instead, you usually get a message similar to &quot;badargs in handle_call/3&quot;. Now, handle_call is a gen_server callback function, and due to erlang's pattern-matching on function parameters to select a particular instance of handle_call, you may have a dozen or more functions that match &quot;handle_call/3&quot;. An error that would take 5 minutes to fix if you knew the line that caused the failure regularly turns into a three hour headache.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Erlang's proponents say &quot;keep your functions simple&quot; and test as you go along, but in a real world exercise doing a big system integration this problem made me decide to walk away from erlang programming until the language has matured a little.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm hoping to go back to erlang at some point - it completely fits the way I program concurrent systems - but that won't happen until the language developers climb down out of their ivory tower.&lt;/p&gt;&#xA;" OwnerUserId="9932" LastActivityDate="2010-12-13T14:44:47.013" CommentCount="4" />
  <row Id="25995" PostTypeId="2" ParentId="25992" CreationDate="2010-12-13T14:46:55.450" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Ask your manager to play a thought game..&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ask him:  &quot;If I was to move my PC to the next desk in the office, do you think I would still be able to work on this project?&quot;&lt;/li&gt;&#xA;&lt;li&gt;Ask him if he say's yes &quot;Then you agree that 'location' has no effect on the 'capability' of working on this project&quot;&lt;/li&gt;&#xA;&lt;li&gt;If he still agrees (by logic he has too) then say: &quot;Working from home is no different. Its just a different location, &lt;strong&gt;but the work is the same&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If the goods are delivered why does it matter where it is done from?&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-13T14:46:55.450" CommentCount="6" />
  <row Id="25996" PostTypeId="2" ParentId="25969" CreationDate="2010-12-13T14:51:13.547" Score="14" ViewCount="" Body="&lt;p&gt;There's a web-design philosophy known as &lt;a href=&quot;http://en.wikipedia.org/wiki/Progressive_enhancement&quot; rel=&quot;nofollow&quot;&gt;Progressive Enhancement&lt;/a&gt; which is one you should consider. The idea is you build a basic site that is usable and workable, and then you layer onto this enhancements like jQuery and browser-specific stuff to &quot;enhance&quot; it. This way you get a site that works for everybody and looks nice for the majority.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that doesn't convince you, then consider other reasons for having a site work without javascript:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;It is more SEO friendly. If your site relies on JS for content and links then chances are search-engines will be ignoring large chunks of it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Imagine you are an eCommerce site selling widgits. Now, even if only 5% of your customers disable javascript, that is a potential sales loss of 5%. Is it worth losing customers over?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't discriminate against the disabled. Relying on javascript means your site is not &lt;a href=&quot;http://www.w3.org/WAI/&quot; rel=&quot;nofollow&quot;&gt;accessible&lt;/a&gt; and, in some cases (such as government/public sector sites), you could be breaking the law by discriminating against people.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-12-13T14:51:13.547" CommunityOwnedDate="2011-05-26T14:08:09.500" CommentCount="3" />
  <row Id="25997" PostTypeId="2" ParentId="11077" CreationDate="2010-12-13T14:51:21.097" Score="6" ViewCount="" Body="&lt;p&gt;Dr. House says it is a brace:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;   O&#xA; _/|\__&#xA;   |   | &#xA;  / \} |&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-13T14:51:21.097" />
  <row Id="25998" PostTypeId="2" ParentId="25902" CreationDate="2010-12-13T14:53:01.160" Score="4" ViewCount="" Body="&lt;p&gt;It's an unfortunate fact of life that you never quite know what a job is going to be like until you arrive. Even if you made every check possible before accepting an offer, your job emphasis can change drastically if your direct manager leaves or is replaced. I think that the good employers understand this. In fact, your fellow C++ programmers might find your BA role a source of amusing stories.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I once worked with a C++ programmer who had taken six-months out as a builder!&lt;/p&gt;&#xA;" OwnerUserId="9933" LastActivityDate="2010-12-13T14:53:01.160" />
  <row Id="25999" PostTypeId="2" ParentId="6656" CreationDate="2010-12-13T15:01:19.770" Score="2" ViewCount="" Body="&lt;p&gt;I'll give my take on that one even though it's a bit late, considering I've been accustomed to both sides of the issue, really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of all, I will disagree with comments suggest to write an e-mail with a statement like &quot;this is what I think it should be like&quot;. That's a backfire waiting to happen. Present it more like &quot;from what I have read about  on , shouldn't it be more like ?&quot;. It might be useless as he/she can just discard it, but you don't try to impose your opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember that as long as you don't have a PhD or something, you're worth nothing to a lot of lecturers. Shocking, but true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus, it's better to be &lt;strong&gt;very humble&lt;/strong&gt;: what you consider bad practices may not look like it to others, and your lecturers might have their reasons for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally... preparing a class is extremely hard and takes a &lt;strong&gt;LOT&lt;/strong&gt; of work and time. Yes, there are some crappy lecturers out there. And yes there even are some lecturers that don't even like teaching and for whom it's just a job. But you also have some that are just not good at it but still &lt;strong&gt;love&lt;/strong&gt; it. Take that into consideration. These guys, with all their flaws, are still dedicating a lot of time and effort to try to contribute to your development. Preparing a good syllabus is an awful lot of effort, and I don't even talk about preparing papers, marking them, etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same way that it is very hard to come up with a research method that doesn't have any bias, it's not so easy to come up with an assessment scheme that doesn't leave room for mistakes and unfair treatment, and can accommodate the &lt;strong&gt;Very different levels&lt;/strong&gt; of skills and adaptability of the students. Sure, in a perfect world lecturers would come up with added difficulties for better students, and so on. But some of these better students might not want that (because it's, somehow, unfair: maybe they don't like the topic and just worked hard to get a good grade... and then you raise the level again just because they're performing better? argghhhh...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You think it's easy to teach until:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;you give a tutorial and a student happens to know more about a topic than you and either tricks you into a corner with a hard question, or genuinely asks about something you don't know (admit defeat and your ignorance bravely).&lt;/li&gt;&#xA;&lt;li&gt;you talk in front of a 500 person amphitheater (don't forget to take water).&lt;/li&gt;&#xA;&lt;li&gt;you have to grade the 500 papers. Or even just 20.&lt;/li&gt;&#xA;&lt;li&gt;you have to seat through an academic review meeting,&lt;/li&gt;&#xA;&lt;li&gt;you have to decide whether to fail or give a pass a student.&lt;/li&gt;&#xA;&lt;li&gt;you have to decide whether a student's conduct is cause for eviction.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So in your case, I'd say:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;do check with your classmates first to see what they think (if it's just you, then you're just more advanced. You can still discuss it with the lecturer, but it's unlikely he'll have the time to do anything special for you. He's not paid by the hour, you know)&lt;/li&gt;&#xA;&lt;li&gt;write an e-mail stating that you would hope for more complexity, and maybe to have reasons given either to the class or you personally for the points you think aren't right. Why aren't they right? Why is it done the A-way and not the B-way?&lt;/li&gt;&#xA;&lt;li&gt;follow-up with a private discussion with your teacher. The e-mail gives you a bit of distance, but coming to talk in person shows it matters and that you deal with things honestly and don't dice his class behind his back (too much).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Beware. In some cultures, teachers consider students (in university, at least) like peers already, as you may already have some very advanced knowledge in some areas. In others, not quite. They don't all expect the same level of politeness/respect/deference. Plus, some might be jerks, you never know :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be &lt;em&gt;very&lt;/em&gt; humble.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-12-13T15:01:19.770" />
  <row Id="26000" PostTypeId="2" ParentId="25963" CreationDate="2010-12-13T15:09:25.510" Score="10" ViewCount="" Body="&lt;p&gt;I used to run an IT department for a small business in Florida, where hurricane strikes were a very real threat.  After our first very-near miss, we started getting a lot of inquires from our customers about our disaster preparedness plans. So, we started looking at telecommuting as an integral part of our company's disaster preparedness. In the event of a looming hurricane, we figured that employees would start leaving town one to three days before a hurricane, and would stay out of town, or at least stay away from the office for perhaps weeks afterwards.  If we could largely run the business via telecommuting employees, then the company would survive as long as people could find internet access, which could be at a hotel, a relative's house, wireless air cards, etc.,   This tipped the business case from just &quot;provides-focus&quot; and &quot;good for moral&quot;, to &quot;essential to keeping customers&quot; and &quot;will keep the company in business.&quot;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The business continuity focus of telecommuting made it inherently easier to justify telecommuting related funds, too.  This focus also helped shift the culture of the company since upper management took a real interest the ability of the company to run in a distributed fashion.  It also removed a fundamental stress in the daily reality faced by many businesses, which is whether the business can survive a disaster.  Well, for us, a real hurricane strike would not of been pretty, or easy, but it would been survivable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This line of reasoning doesn't apply to every company, of course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW - Our shift in having a good telecommuting system also became an important employee recruiting and retention tool.  It also eased the management's conscience since we could not encourage employees to leave town, if needed,  without having a choice between safety and business operations.&lt;/p&gt;&#xA;" OwnerUserId="9937" LastActivityDate="2010-12-13T15:09:25.510" CommentCount="2" />
  <row Id="26001" PostTypeId="2" ParentId="25975" CreationDate="2010-12-13T15:11:20.547" Score="1" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Wrqcr.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321601912&quot; rel=&quot;nofollow&quot;&gt;(link to the book)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a few software companies already that can &lt;strong&gt;release on commit&lt;/strong&gt;. But this is a growing trend.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On my to-read list for 2011.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-12-13T15:11:20.547" CommunityOwnedDate="2010-12-13T16:34:30.373" />
  <row Id="26002" PostTypeId="1" CreationDate="2010-12-13T15:12:11.203" Score="0" ViewCount="123" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/282/what-are-the-best-podcasts&quot;&gt;What are the best podcasts&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;What are some really good podcasts, audio-books, etc. that focus on programming/software development that can be listened to on the road and have a lot of content?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking primarily for 2 types of content:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;informative/educational&lt;/li&gt;&#xA;&lt;li&gt;entertaining&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;... and any mix of both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to find enough quality stuff to fill 3-5 days of driving 10hrs/day.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-13T15:40:48.307" ClosedDate="2010-12-13T16:27:20.880" Title="Road trip listening material" Tags="&lt;podcasts&gt;&lt;audio-books&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="3" />
  <row Id="26003" PostTypeId="1" AcceptedAnswerId="26010" CreationDate="2010-12-13T15:16:43.383" Score="1" ViewCount="114" Body="&lt;p&gt;Currently, I am a Ruby/Rails developers. Before I was .NET developer and got MCTS in Windows Client Development. But of the time I don't touch any HTML or CSS and I don't have any experience in doing layout at all. And I feel boring doing those tasks, but for sure every web apps has to have them. To be a professional do I need to learn them again?&lt;/p&gt;&#xA;" OwnerUserId="9936" LastActivityDate="2010-12-13T15:43:50.543" Title="Career Advice: Should I relearn XHTML and CSS for my career?" Tags="&lt;web-development&gt;&lt;career-advice&gt;&lt;html&gt;&lt;css&gt;" AnswerCount="3" />
  <row Id="26004" PostTypeId="2" ParentId="25992" CreationDate="2010-12-13T15:17:47.300" Score="0" ViewCount="" Body="&lt;p&gt;Convince your manager that you've considered all the possible problems and taken reasonable steps to ensure they won't happen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, ensure that your team have allocated a place and time for work, and that their families will respect that time and space. Have some kind of system for tracking progress, and have a clear abuse-it-and-lose-it policy for the right to work at home.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This probably doesn't need to be that formal, and if you have a good team who will work well, management should become more confident over time anyway. However, recognise that management can easily be unaware of the development progress being made even in the office, so you may need some system to reassure them, clearly showing the ticking off of intermediate goals.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2010-12-13T15:17:47.300" />
  <row Id="26005" PostTypeId="2" ParentId="26002" CreationDate="2010-12-13T15:20:33.617" Score="2" ViewCount="" Body="&lt;p&gt;My Favorites (I'm primarily dotNet.  Not sure what your focus is):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Primarily Microsoft/dotNET&lt;br&gt;&#xA;Deep Fried Bytes - &lt;a href=&quot;http://feeds.feedburner.com/deepfriedbytes&quot; rel=&quot;nofollow&quot;&gt;http://feeds.feedburner.com/deepfriedbytes&lt;/a&gt;&lt;br&gt;&#xA;Hanselminutes - &lt;a href=&quot;http://feeds.feedburner.com/Hanselminutes&quot; rel=&quot;nofollow&quot;&gt;http://feeds.feedburner.com/Hanselminutes&lt;/a&gt;&lt;br&gt;&#xA;dotNET Rocks - &lt;a href=&quot;http://feeds.feedburner.com/dotnetrocks_AAC&quot; rel=&quot;nofollow&quot;&gt;http://feeds.feedburner.com/dotnetrocks_AAC&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Technology Agnostic&lt;br&gt;&#xA;Herding Code - &lt;a href=&quot;http://herdingcode.com/?feed=rss2&quot; rel=&quot;nofollow&quot;&gt;http://herdingcode.com/?feed=rss2&lt;/a&gt;&lt;br&gt;&#xA;The Thirsty Developer - &lt;a href=&quot;http://feeds.feedburner.com/ThirstyDeveloperPodcast&quot; rel=&quot;nofollow&quot;&gt;http://feeds.feedburner.com/ThirstyDeveloperPodcast&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Systems Focused - Good to stay in the loop for server admin and management.  Includes a lot of DB stuff too.  Mainly Microsoft Focused:&lt;br&gt;&#xA;RunAs Radio - &lt;a href=&quot;http://feeds.feedburner.com/RunasRadio&quot; rel=&quot;nofollow&quot;&gt;http://feeds.feedburner.com/RunasRadio&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Based off &quot;This American Life&quot;.  More stories about being a developer then anything technical.  But oh so accurate.&lt;br&gt;&#xA;This Developer's Life - &lt;a href=&quot;http://feeds.feedburner.com/ThisDevelopersLife&quot; rel=&quot;nofollow&quot;&gt;http://feeds.feedburner.com/ThisDevelopersLife&lt;/a&gt;  &lt;/p&gt;&#xA;" OwnerUserId="6318" LastActivityDate="2010-12-13T15:20:33.617" />
  <row Id="26006" PostTypeId="2" ParentId="25975" CreationDate="2010-12-13T15:21:04.457" Score="1" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://37signals.com/rework/&quot; rel=&quot;nofollow&quot;&gt;REWOR&lt;/a&gt;K&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/nhsZp.jpg&quot; alt=&quot;REWORK&quot;&gt;&#xA;&lt;a href=&quot;http://i.imgur.com/QwAkU.png&quot; rel=&quot;nofollow&quot;&gt;Bigger picture here&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Note: not exactly on programming, but...&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From &lt;a href=&quot;http://books.google.com/books?id=3oSoqGOmI4sC&quot; rel=&quot;nofollow&quot;&gt;Google Books&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;From the founders of the trailblazing&#xA;  software company 37signals, here is a&#xA;  different kind of business book – one&#xA;  that explores a new reality. Today,&#xA;  anyone can be in business. Tools that&#xA;  used to be out of reach are now easily&#xA;  accessible. Technology that cost&#xA;  thousands is now just a few bucks or&#xA;  even free. Stuff that was impossible&#xA;  just a few years ago is now simple.&#xA;  That means anyone can start a&#xA;  business. And you can do it without&#xA;  working miserable 80-hour weeks or&#xA;  depleting your life savings. You can&#xA;  start it on the side while your day&#xA;  job provides all the cash flow you&#xA;  need. Forget about business plans,&#xA;  meetings, office space – you don't&#xA;  need them.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;With its straightforward&#xA;  language and easy-is-better approach,&#xA;  Rework is the perfect playbook for&#xA;  anyone who's ever dreamed of doing it&#xA;  on their own. Hardcore entrepreneurs,&#xA;  small-business owners, people stuck in&#xA;  day jobs who want to get out, and&#xA;  artists who don't want to starve&#xA;  anymore will all find valuable&#xA;  inspiration and guidance in these&#xA;  pages. It's time to rework work.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-12-13T15:21:04.457" CommunityOwnedDate="2010-12-13T16:34:30.373" />
  <row Id="26007" PostTypeId="2" ParentId="26003" CreationDate="2010-12-13T15:21:13.473" Score="2" ViewCount="" Body="&lt;p&gt;Replace XHTML with HTML5 and I would say yes. I'm a long time .Net developer myself, and part of the benefit in the early days was that you could push a lot of the complicated work to the server and not worry about all of the JavaScript compatibility issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But now the paradigm is changing. While not perfect, things are getting a lot more unified with HTML5, jQuery and a few other languages help you not have to worry about JavaScript compatibility issues, and CSS makes the presentation a lot cleaner to work with. Even though HTML5 hasn't been finalized, it is already being used widely, and would be a safe bet to work with in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, as a programmer, you always want to be learning something new, yes? 8^D&lt;/p&gt;&#xA;" OwnerUserId="8095" LastActivityDate="2010-12-13T15:21:13.473" />
  <row Id="26008" PostTypeId="2" ParentId="25992" CreationDate="2010-12-13T15:24:53.907" Score="1" ViewCount="" Body="&lt;p&gt;Sadly, my experience has shown me that an employer is either going to be comfortable with telecommuting or not.  Most often their fears are that they won't be able to pester you on their schedule (as opposed to yours) which is most often a dealbreaker for management.  The only successful way I've found to telecommute is to work for a shop that's comfortable with remote working from the start (my current gig is this way, I've always worked from home for this company) or go high enough in the food chain somewhere else that you're setting policy (my new job is CTO :) ).&lt;/p&gt;&#xA;" OwnerUserId="9475" LastActivityDate="2010-12-13T15:24:53.907" />
  <row Id="26009" PostTypeId="2" ParentId="17305" CreationDate="2010-12-13T15:27:32.093" Score="0" ViewCount="" Body="&lt;p&gt;I only use whitespaces within a function/method to separate declarations and code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you feel the need to have some lines to separate sub-blocks of code implementing some logic, then they should be but in another function/private method. It's up to your compiler to not make that too big an overhead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;typically, in peusdo-code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;def function(arg1, argn, ...)&#xA;    INITIALIZERS&#xA;&#xA;    CODE&#xA;    BLOCK_START&#xA;        INITIALIZERS&#xA;&#xA;        CODE&#xA;    BLOCK_END&#xA;    CODE&#xA;end&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If I see useless whitespace, I usually cringe.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-12-13T15:50:55.310" LastActivityDate="2010-12-13T15:50:55.310" CommunityOwnedDate="2011-02-05T06:38:51.843" CommentCount="2" />
  <row Id="26010" PostTypeId="2" ParentId="26003" CreationDate="2010-12-13T15:28:23.297" Score="3" ViewCount="" Body="&lt;p&gt;HTML is just fundamental if the work you do touches the web in any way, shape, or form.  I would argue that its a fundamental skill for anyone in any development field, kind of the way being able to boot up and log into windows is fundamental for an office worker.  Its not necessarily relevant for your day to day work, but I wouldn't hire anyone (&lt;strong&gt;especially&lt;/strong&gt; not a rails developer) who couldn't work on HTML (e.g. views).&lt;/p&gt;&#xA;" OwnerUserId="9475" LastActivityDate="2010-12-13T15:28:23.297" />
  <row Id="26011" PostTypeId="2" ParentId="1018" CreationDate="2010-12-13T15:28:45.010" Score="0" ViewCount="" Body="&lt;p&gt;Go to the moon.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Slide_rule#Modern_form&quot; rel=&quot;nofollow&quot;&gt;NASA built everything that put Neil Armstrong on the moon&lt;/a&gt; using a slide ruler and their brains.&lt;/p&gt;&#xA;" OwnerUserId="7499" LastActivityDate="2010-12-13T15:28:45.010" />
  <row Id="26012" PostTypeId="1" AcceptedAnswerId="26020" CreationDate="2010-12-13T15:28:52.110" Score="0" ViewCount="89" Body="&lt;p&gt;I'm attending a company sponsored training event for JSF and JPA that crams 10 days of training into 5 days. I plan on getting all that I can out of the class, but there is no &quot;final exam&quot;.&lt;/p&gt;&#xA;" OwnerUserId="8369" LastActivityDate="2010-12-13T15:42:22.480" Title="Is JSF and JPA worth learning?" Tags="&lt;java&gt;&lt;jpa&gt;" AnswerCount="1" />
  <row Id="26013" PostTypeId="2" ParentId="11077" CreationDate="2010-12-13T15:29:10.267" Score="0" ViewCount="" Body="&lt;p&gt;I've always called them Curly Braces, sometimes just braces for short. Brackets are (, and square braces or square brackets are [.&lt;/p&gt;&#xA;" OwnerUserId="6630" LastActivityDate="2010-12-13T15:29:10.267" />
  <row Id="26014" PostTypeId="1" AcceptedAnswerId="26025" CreationDate="2010-12-13T15:29:56.213" Score="7" ViewCount="324" Body="&lt;p&gt;Hi Programmers,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am going to be a 12 grader next year I have done lots in computer programing and electronics and I am thinking of studying &lt;a href=&quot;http://www.flinders.edu.au/courses/undergrad/bengrmesi/&quot; rel=&quot;nofollow&quot;&gt;Robotics in University&lt;/a&gt; But I am  not sure how much programming there is going to be, and if a robotic engineer is also a programmer? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS. I really wanna study both programing and electronics.&lt;/p&gt;&#xA;" OwnerUserId="9110" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T17:24:50.763" LastActivityDate="2011-01-25T12:32:08.593" Title="Is a robotics engineer also a programmer?" Tags="&lt;career-advice&gt;&lt;robotics&gt;" AnswerCount="8" CommentCount="2" />
  <row Id="26015" PostTypeId="2" ParentId="26014" CreationDate="2010-12-13T15:34:30.743" Score="1" ViewCount="" Body="&lt;h2&gt;I highly suggest you study &lt;a href=&quot;http://en.wikipedia.org/wiki/Mechatronics&quot; rel=&quot;nofollow&quot;&gt;Mechatronics&lt;/a&gt;:&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Robotics is a blend of electronics, mechanics, and computing :)&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-13T15:34:30.743" CommentCount="6" />
  <row Id="26016" PostTypeId="2" ParentId="25888" CreationDate="2010-12-13T15:37:12.580" Score="1" ViewCount="" Body="&lt;p&gt;Don't underestimate the Thank You letter, both after having your interview, and yes, even after a rejection.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;thank you&quot; after being rejected may seem counter-intuitive.  However, you can frame it as to ask your &quot;what can I do to become a better candidate in the future?&quot; questions.  This will show your interest in improving yourself, and that you may be a better candidate in the future with a little guidance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may or may not get a response.  However, a little extra politeness like this may help you stick in the hiring managers mind, and give you a slight edge later on.  It's a small world, and you may run into the same person again, even at another company.  It may even help if the candidate they did make an offer to rejects the offer or otherwise doesn't work out.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-12-13T15:37:12.580" />
  <row Id="26017" PostTypeId="2" ParentId="6656" CreationDate="2010-12-13T15:38:42.850" Score="3" ViewCount="" Body="&lt;p&gt;Actually, as involved in teaching myself, I do appreciate it when students add some extra comments at the end of their homework, explaining why they would approach the problem in a different way than asked. Although it's more about statistics in my case, the reasoning is the same: we often give them a very specific task that might be not optimal given the data. Most of the time we indicate that ourselves, but students that realize this gain some points.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hence, I'd just add a remark to your homework describing how you would approach the problem different and why you would do it that way.&lt;/p&gt;&#xA;" OwnerUserId="7268" LastActivityDate="2010-12-13T15:38:42.850" />
  <row Id="26018" PostTypeId="2" ParentId="26002" CreationDate="2010-12-13T15:40:48.307" Score="1" ViewCount="" Body="&lt;p&gt;A few years ago I got Isaac Asimov's &quot;I Robot&quot; audio book from the library. My whole family stayed awake and listened to the whole thing in one shot from Long Island, New York, to Chicago. Very entertaining.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For informative, I visit iTunes U and pick lectures on topics of interest to me. For long trips I tend to prefer entertaining to informative.&lt;/p&gt;&#xA;" OwnerUserId="749" LastActivityDate="2010-12-13T15:40:48.307" CommentCount="1" />
  <row Id="26019" PostTypeId="2" ParentId="26014" CreationDate="2010-12-13T15:41:03.600" Score="1" ViewCount="" Body="&lt;h1&gt;&lt;strong&gt;Yes.&lt;/strong&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;However it is typically a different style of programming. I've done ladder logic which is visual programming (with pictures and symbols), but you will also use a lot of procedural programming with C, or ASM. Sometimes you get to use OOP, but not often. (This all deals with programming microcontrollers/microprocessors)&lt;/p&gt;&#xA;" OwnerUserId="3542" LastActivityDate="2010-12-13T15:41:03.600" />
  <row Id="26020" PostTypeId="2" ParentId="26012" CreationDate="2010-12-13T15:42:22.480" Score="2" ViewCount="" Body="&lt;p&gt;JPA - Yes absolutely, it's the standard underpining most Java ORM libraries out there (e.g. Hibernate).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;JSF? - Not so much, it's not seen as a dominant std (that said no web framework is the dominant std) and is expected to keep slipping in terms of mind-share and deployment (unless some radical changes are made).&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-13T15:42:22.480" />
  <row Id="26021" PostTypeId="2" ParentId="26003" CreationDate="2010-12-13T15:43:50.543" Score="1" ViewCount="" Body="&lt;p&gt;I'd say yes, learn HTML, CSS and Javascript.  If you can also take a course in Graphic and/or Ux design - even if you have a vague appreciation of the basics it'll be a massive help.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-13T15:43:50.543" />
  <row Id="26022" PostTypeId="1" CreationDate="2010-12-13T15:45:46.780" Score="2" ViewCount="149" Body="&lt;p&gt;It's that time of year again when we all go visit family, and I like to use that extra time on the road to either read or program. However I find it difficult to get into &lt;em&gt;mode&lt;/em&gt; and program effectively. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The swaying movement of the car is somewhat distracting, but more so is the slow internet (broadcast by my rooted android phone) when I go to look something up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you cope with programming on the go while riding in a car?&lt;/p&gt;&#xA;" OwnerUserId="3542" LastActivityDate="2010-12-13T19:44:03.980" ClosedDate="2010-12-14T20:20:01.573" Title="Better ways to be a Road Warrior?" Tags="&lt;programming&gt;&lt;places&gt;" AnswerCount="6" CommentCount="2" />
  <row Id="26023" PostTypeId="2" ParentId="26014" CreationDate="2010-12-13T15:47:03.397" Score="1" ViewCount="" Body="&lt;p&gt;Yes, it depends on what courses you'll take in terms of the % of the programming involved, but expect some work on the lower level languages for embedded controllers (C, assembly, various proprietary langs/APIs) and perhaps functional/AI languages for funky stuff :) (Hmmmm prolog)......&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-13T15:47:03.397" />
  <row Id="26024" PostTypeId="2" ParentId="25975" CreationDate="2010-12-13T15:50:19.640" Score="4" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/cMXa2.jpg&quot; alt=&quot;alt text&quot;&gt; &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/193435659X&quot; rel=&quot;nofollow&quot;&gt;Seven Languages in Seven Weeks&lt;/a&gt; is a great way to learn new languages and practice new ideas&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-12-13T15:50:19.640" CommunityOwnedDate="2010-12-13T16:34:30.373" CommentCount="2" />
  <row Id="26025" PostTypeId="2" ParentId="26014" CreationDate="2010-12-13T15:50:51.560" Score="9" ViewCount="" Body="&lt;p&gt;I'm a hobbyist roboticist, and robotics is a wide field, requiring many disciplines.  I suspect the general answer for what you'll do in the workplace is that it depends on the size of the company you work for.  In a smaller company, you'll be able to wear more hats.  In a large company, you'll be more specialized.  In any case, it is always valuable to understand the big picture -- if I hire you to build a better bot, and you know how to code but understand what happens with the electronics, you are definitely more valuable to me than someone who merely knows how to code; the same is true if you are an electrical or mechanical engineer and understand how what you are doing relates to the other disciplines in the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was previously a game programmer.  The question is akin to asking, &quot;I want to make video games for a living.  Can I be a game engineer and a programmer?&quot;  For a very small company (say, less than three people), you can do it all -- make art, design the game, and do the programming.  As most people can not do all those things well, in a mid-sized company, you'll either be an artist, a designer, or a programmer (or possibly a liaison of sorts, such as a technical artist).  On an even larger team, the answer to &quot;I want to program games&quot; becomes &quot;Do you want to do the front end? database? animation? artificial intelligence?  rendering?&quot; with each being its own special subfield.&lt;/p&gt;&#xA;" OwnerUserId="9150" LastActivityDate="2010-12-13T15:50:51.560" CommentCount="5" />
  <row Id="26026" PostTypeId="2" ParentId="14297" CreationDate="2010-12-13T15:51:40.023" Score="1" ViewCount="" Body="&lt;p&gt;Disgruntled comments demonstrating lack of restraint:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;//I CAN'T GET THIS F^#&lt;em&gt;&amp;amp;^ING PIECE OF&#xA;  S$^&lt;/em&gt; TO COMPILE ON M$VC&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Either they're ill-tempered or they're not experienced enough to have learned that setbacks are inevitable in programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't want to work with people like that.&lt;/p&gt;&#xA;" OwnerUserId="6385" LastActivityDate="2010-12-13T15:51:40.023" CommunityOwnedDate="2010-12-13T15:51:40.023" />
  <row Id="26027" PostTypeId="2" ParentId="26022" CreationDate="2010-12-13T15:52:03.457" Score="4" ViewCount="" Body="&lt;h1&gt;Sleeping More&lt;sup&gt; 1&lt;/sup&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;If you're not driving I would take the chance to sleep. It's better to approach work relaxed and with a clear head then forcing yourself to concentrate. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;&#xA;1. Sleeping is not recommended if you are driving. Then again, neither is programming.&#xA;&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-13T15:52:03.457" CommentCount="4" />
  <row Id="26028" PostTypeId="2" ParentId="25895" CreationDate="2010-12-13T15:52:49.320" Score="1" ViewCount="" Body="&lt;p&gt;I use relative / proportionate sizes whenever possible. I find it makes it much easier to make changes to layouts later. Also, using a size relative to a parent element means a change to the parent easily trickles down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Traditionally, using relative sizes also allowed pages to look correct in various resolutions and was especially beneficial for browser zooming or minimum font sizes. But modern browsers now handle resizing extremely well with pixel-specific layouts, even enlarging images as necessary.  So it's become less important to use relative sizes.&lt;/p&gt;&#xA;" OwnerUserId="4251" LastActivityDate="2010-12-13T15:52:49.320" />
  <row Id="26029" PostTypeId="2" ParentId="26022" CreationDate="2010-12-13T15:54:14.397" Score="0" ViewCount="" Body="&lt;p&gt;I get a lot done on the 4-hour train ride my family makes each holiday...so here are some tips:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Rely on books or ebooks, not web sites, if you are doing research -- it's just faster than the internet.&lt;/li&gt;&#xA;&lt;li&gt;Use headphones to block distracting noise.&lt;/li&gt;&#xA;&lt;li&gt;Get the kids to sleep en route.&lt;/li&gt;&#xA;&lt;li&gt;Plan ahead: choose tasks that aren't bandwidth-intensive, require multiple monitors, etc. to do efficiently.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-13T15:54:14.397" CommentCount="1" />
  <row Id="26030" PostTypeId="1" AcceptedAnswerId="26070" CreationDate="2010-12-13T15:55:00.183" Score="24" ViewCount="1264" Body="&lt;p&gt;Assume that you are working at a company as a sole developer, that is producing a single piece of software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now assume that a fantastic job with better pay is offered to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At what point in the development cycle for the project you're on is it unreasonable or uncouth to leave your current position, specifically as a sole developer on the project?&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2011-02-14T14:59:12.647" Title="At what point during a project is it unreasonable to leave?" Tags="&lt;jobs&gt;&lt;new-job&gt;&lt;quit&gt;" AnswerCount="15" CommentCount="6" FavoriteCount="5" />
  <row Id="26031" PostTypeId="2" ParentId="26030" CreationDate="2010-12-13T15:57:47.570" Score="1" ViewCount="" Body="&lt;p&gt;At that stage when your currently completed work is in no way documented yet, or the knowledge is not properly communicated to the new team members yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then again, &quot;a fantastic job with better pay&quot; won't wait forever. Make your best to preserve the knowledge in some way or the other then leave.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Optionally, you could offer to coach the new team members later as a consultant for some extra bucks.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-13T15:57:47.570" />
  <row Id="26032" PostTypeId="2" ParentId="26030" CreationDate="2010-12-13T16:00:37.117" Score="4" ViewCount="" Body="&lt;p&gt;I think if you are getting ready to go live in the next two weeks with a major project, then a good company would wait for you for a up to three weeks while you go live and handle any intial problems. After all they wouldn't want you to abandon them at that stage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No matter when you go. leave documentation so someone can pick up where you left off.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastEditorUserId="1093" LastEditorDisplayName="" LastEditDate="2010-12-13T16:40:06.787" LastActivityDate="2010-12-13T16:40:06.787" CommentCount="2" />
  <row Id="26033" PostTypeId="1" CreationDate="2010-12-13T16:03:15.963" Score="2" ViewCount="264" Body="&lt;p&gt;I'd like to get a sense for the range of complexity that algorithms fall into. I think it would be interesting and helpful for those, like me, trying to better understand how algorithms are formulated and how to deconstruct them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you offer a basic algorithm with explanation, an intermediate algorithm with explanation, and maybe an expert level one (with or without) an explanation?&lt;/p&gt;&#xA;" OwnerUserId="9856" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-13T16:34:53.720" LastActivityDate="2010-12-13T17:06:08.327" Title="An example of a beginner-level Algorithm, intermediate level Algorithm and a complex/expert level Algorithm?" Tags="&lt;algorithms&gt;" AnswerCount="2" FavoriteCount="3" />
  <row Id="26034" PostTypeId="2" ParentId="26022" CreationDate="2010-12-13T16:05:15.023" Score="2" ViewCount="" Body="&lt;p&gt;I think if my significant other was programming while I was driving, I'd probably leave him by the side of the road somewhere. This is time to spend with your family, interact with them not the computer.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-13T16:05:15.023" CommentCount="7" />
  <row Id="26035" PostTypeId="2" ParentId="14297" CreationDate="2010-12-13T16:14:02.727" Score="1" ViewCount="" Body="&lt;p&gt;For SQL:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first big indicator is the use of implied joins. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next is the use of a left join on tableB combined with a WHERE clause like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;WHERE TableB.myField = 'test'&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If you don't know that will give incorrect results then I can't trust that any query you write will give correct results.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-13T16:14:02.727" CommunityOwnedDate="2010-12-13T16:14:02.727" />
  <row Id="26036" PostTypeId="1" CreationDate="2010-12-13T16:15:22.243" Score="5" ViewCount="211" Body="&lt;p&gt;I don't mean concrete software, that you wish into open-source, but in which category of software no open-source-project exists. Maybe the answers will give some programmers inspiration for the next project.&lt;/p&gt;&#xA;" OwnerUserId="7654" LastActivityDate="2010-12-13T17:01:18.050" ClosedDate="2010-12-13T17:05:22.623" Title="Which software is missing as open source?" Tags="&lt;open-source&gt;&lt;software&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="1" />
  <row Id="26037" PostTypeId="1" AcceptedAnswerId="26046" CreationDate="2010-12-13T16:15:42.097" Score="2" ViewCount="144" Body="&lt;p&gt;How can I say more than just &quot;C++&quot; on my resume, reports or other writings, to convey clearly what kind of C++ programming I've been doing?    &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there well-defined styles of C++? (&quot;Styles&quot; might not be quite the right word.)  Examples:  using C++ as an &quot;improved C&quot; taking advantage of stronger typechecking, syntactic niceties, but little or lightweight use of classes;  using heavy OO techniques where almost everything is made into a class (and there could be different styles of that) - but staying away from templates and advanced techniques;  and heavy use of metaprogramming and every cutting edge advanced C++ feature.    I've seen code where there's such heavy use of computer science terminology and advanced features only a CS PhD would be able to understand it,  and code so clean and straightforward that EEs and physicists with modest programming skills can understand it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't about literally coding styles - fussy details about brackets, indentation, commenting and all that - but one's philosophy of what good code is, the approach to organizing it all, and degree of fanaticism or reluctance to use various major techniques, procedural vs OO vs functional and so forth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can such variations be categorized in a meaningful way?   How to name these for someone not expert at software development, with an amount of knowledge to be expected of a good executive or recruiter (never mind the PHBs)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally, there'd be a way anyone can say on their resume &quot;C++ in blah-blah style&quot; or &quot;mumbleific C++&quot; and land jobs or freelance projects in that category/style of C++.  An improved-C++ coder could avoid projects full of heavy template-bloated code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(To some extent this question may be more general than C++, but C++ being around for years and being multi-paradigm, leads to the most confusion.)&lt;/p&gt;&#xA;" OwnerUserId="4280" LastActivityDate="2010-12-13T17:32:06.683" Title="How to describe styles and approaches of C++ programming?" Tags="&lt;c++&gt;&lt;hiring&gt;&lt;resume&gt;&lt;coding-style&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="1" />
  <row Id="26038" PostTypeId="2" ParentId="26030" CreationDate="2010-12-13T16:16:19.467" Score="31" ViewCount="" Body="&lt;p&gt;You're either indispensible or not.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're the former, there's no &quot;good time&quot; to leave – but that doesn't mean you shouldn't.  Your employer should be taking steps to ensure that no single member of the team can get hit by a bus and derail the project.  If they aren't, the problem is on them, not you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're the latter, any time is a good time to leave.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In both cases, no time is any better than any other.  They'll all be equally disastrous, or merely inconvenient.  Professionally speaking I'd give them whatever you're contractually bound to, but at least 2 weeks notice (I gave my last employer 4 because they're a small shop and I felt bad about leaving a team I loved working with.)  Spend that time transferring knowledge and finishing up anything that can be neatly wrapped up in that time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The caveat to this is if you're working in a startup and you're a founder or other equally vital member of the team without whom some financing or major sales deal is going to fall through, realize that while you may not be obligated to stay, nobody's ever going to want you to be their cofounder again.&lt;/p&gt;&#xA;" OwnerUserId="9475" LastActivityDate="2010-12-13T16:16:19.467" CommentCount="1" />
  <row Id="26039" PostTypeId="2" ParentId="2516" CreationDate="2010-12-13T16:16:56.873" Score="2" ViewCount="" Body="&lt;p&gt;The hardest bug to find is the one that doesn't exist. This typically happens when you have been given an inaccurate set of requirements by management, and users expect the software to do things it was never designed to do. You'll usually get a vague bug report about the feature not working or getting broken, and only with enough detective work do you find that it's working flawless according to the specs, which were totally wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is especially time-consuming if you've inherited code from other programmers, because you're not fully aware of what features the software does and does not support.&lt;/p&gt;&#xA;" OwnerUserId="8865" LastActivityDate="2010-12-13T16:16:56.873" />
  <row Id="26040" PostTypeId="2" ParentId="26033" CreationDate="2010-12-13T16:18:56.323" Score="6" ViewCount="" Body="&lt;p&gt;From the &lt;a href=&quot;http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm&quot; rel=&quot;nofollow&quot;&gt;Programmer Competency Matrix:&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Beginner&lt;/strong&gt;&lt;br&gt;&#xA;Basic &lt;a href=&quot;http://en.wikipedia.org/wiki/Sorting_algorithm&quot; rel=&quot;nofollow&quot;&gt;sorting&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Search_algorithm&quot; rel=&quot;nofollow&quot;&gt;searching&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Linked_data_structure&quot; rel=&quot;nofollow&quot;&gt;data structure traversal&lt;/a&gt; and retrieval algorithms   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Intermediate&lt;/strong&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://en.wikipedia.org/wiki/Tree_%28data_structure%29&quot; rel=&quot;nofollow&quot;&gt;Tree&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Graph_%28data_structure%29&quot; rel=&quot;nofollow&quot;&gt;Graph&lt;/a&gt; data structures, simple &lt;a href=&quot;http://en.wikipedia.org/wiki/Greedy_algorithm&quot; rel=&quot;nofollow&quot;&gt;greedy&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Divide_and_conquer&quot; rel=&quot;nofollow&quot;&gt;divide and conquer&lt;/a&gt; algorithms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Advanced&lt;/strong&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://en.wikipedia.org/wiki/Category%3aGraph_algorithms&quot; rel=&quot;nofollow&quot;&gt;graph algorithms&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Numerical_analysis&quot; rel=&quot;nofollow&quot;&gt;numerical computation algorithms&lt;/a&gt;, etc. &lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-13T16:34:23.613" LastActivityDate="2010-12-13T16:34:23.613" CommentCount="1" />
  <row Id="26041" PostTypeId="2" ParentId="26014" CreationDate="2010-12-13T16:20:12.740" Score="2" ViewCount="" Body="&lt;p&gt;Robotics usually involves programming, although the type of programming depends on the type of robotics in use.  This is more true in research, as industrial robots at least used to be frequently programmed by having a human run it through some movements and then replaying the movements.  A robot engineer might do very little programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some programs may involve autonomous robots, in which case (if you get involved) you'll do some Artificial Intelligence work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Electronics is more questionable.  There's programming-heavy parts and no-programming parts.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-13T16:20:12.740" />
  <row Id="26042" PostTypeId="2" ParentId="26036" CreationDate="2010-12-13T16:21:04.117" Score="7" ViewCount="" Body="&lt;p&gt;The biggest lack I see are professionally made games, but that's not something that can be solved by programmers alone; it also takes graphics designers, level designers, musicians etc. to make professional games.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-13T16:21:04.117" CommentCount="5" />
  <row Id="26043" PostTypeId="2" ParentId="25856" CreationDate="2010-12-13T16:28:18.923" Score="1" ViewCount="" Body="&lt;p&gt;It depends on if you are saying 6' vs 4' or 6' vs 5'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Current office has all three, the high walls help a little over the medium...  Other than the loud talkers, I can only hear people 4 desks away in the cubes where the walls are higher than the people's heads (ours are cloth covered so that helps as well), but the 6' over the 4' make little difference.  The 3' walls might as well not exist from an acoustic point of view.  our offices are poorly done, bus still 2x as effective as the highest of the walls.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-12-13T16:28:18.923" />
  <row Id="26044" PostTypeId="2" ParentId="26036" CreationDate="2010-12-13T16:30:21.160" Score="4" ViewCount="" Body="&lt;p&gt;Something like AutoCad&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and the software for predicting the future.. Wait, there isn't a non-free solution either.. Darn!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: My point with the &quot;predicting future&quot; was that rather than thinking &lt;em&gt;What non-free software can we replicate?&lt;/em&gt; sometimes it's good to think &lt;em&gt;What kind of software doesn't exist at all, yet?&lt;/em&gt; and create something completely crazy, and new and awesome!&lt;/p&gt;&#xA;" OwnerUserId="9192" LastEditorUserId="9192" LastEditorDisplayName="" LastEditDate="2010-12-13T17:01:09.430" LastActivityDate="2010-12-13T17:01:09.430" CommentCount="9" />
  <row Id="26045" PostTypeId="2" ParentId="25856" CreationDate="2010-12-13T16:38:13.500" Score="2" ViewCount="" Body="&lt;p&gt;No, I worked with them at a prior job, they effectively do nothing.  I could still hear the person a couple cubes over clipping his nails &lt;em&gt;ick&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2431" LastActivityDate="2010-12-13T16:38:13.500" />
  <row Id="26046" PostTypeId="2" ParentId="26037" CreationDate="2010-12-13T16:42:22.670" Score="4" ViewCount="" Body="&lt;p&gt;I'd say that the domain might be more important than the coding style. The style is largely subject to convention in the target company anyway (by convention, I mean the lead architects perception of best practice ;)).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So something like &quot;C++ back-end development in a distributed high volume accounting system for a large bank&quot; would already convey a lot of information. You can also include specific libraries, like Qt. But I don't know if something like &quot;strictly object oriented&quot; or the like is actually helpful. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And don't forget the most important rule in software development: Don't be a fanatic, narrowminded twat when it comes to a certain technology/approach. I mean, as a profession, we have been fighting for years now, not to be reduced to the usual alphabet soup recruiters always use. Why limit yourself even more?&lt;/p&gt;&#xA;" OwnerUserId="9948" LastActivityDate="2010-12-13T16:42:22.670" CommentCount="1" />
  <row Id="26047" PostTypeId="2" ParentId="26033" CreationDate="2010-12-13T16:43:11.187" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Beginner&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Binary_search_algorithm&quot; rel=&quot;nofollow&quot;&gt;Binary Search&lt;/a&gt;: Locates the position of an item in a sorted array.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/AVL_tree#Insertion&quot; rel=&quot;nofollow&quot;&gt;AVL Tree Insertion&lt;/a&gt;: Insert an item in a AVL tree maintaining the subtree balancing property.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Depth-first_search&quot; rel=&quot;nofollow&quot;&gt;Depth-first Search&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Breadth-first_search&quot; rel=&quot;nofollow&quot;&gt;Breadth-first Search&lt;/a&gt;: Walk over the nodes of a Graph in DFS or BFS order.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Intermediate&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm&quot; rel=&quot;nofollow&quot;&gt;Dijkstra's Algorithm&lt;/a&gt;: Graph search algorithm that solves the single-source shortest path problem for a graph with nonnegative edge path costs, producing a shortest path tree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Longest_common_subsequence_problem&quot; rel=&quot;nofollow&quot;&gt;Longest Common Subsequence&lt;/a&gt;: Find the longest subsequence common to all sequences in a set of sequences (often just two).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Graham_scan&quot; rel=&quot;nofollow&quot;&gt;Convex Hull (Graham Scan)&lt;/a&gt;: Given a set of points, find the minimum subset of those points to cover with a convex polygon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Counting_sort&quot; rel=&quot;nofollow&quot;&gt;Counting Sort&lt;/a&gt;: Sorting algorithm of consecutive integers in O(n).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Advanced&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Range_Minimum_Query&quot; rel=&quot;nofollow&quot;&gt;Range Minimu Query&lt;/a&gt;: Given an array A[1,n] of n ordered objects (such as numbers), a Range Minimum Query (or RMQ) from i to j asks for the position of a minimum element in the sub-array A[i,j]. RMQs can be used to solve the &lt;a href=&quot;http://en.wikipedia.org/wiki/Lowest_common_ancestor&quot; rel=&quot;nofollow&quot;&gt;lowest common ancestor&lt;/a&gt; problem.&lt;/p&gt;&#xA;" OwnerUserId="8140" LastEditorUserId="8140" LastEditorDisplayName="" LastEditDate="2010-12-13T17:06:08.327" LastActivityDate="2010-12-13T17:06:08.327" CommentCount="2" />
  <row Id="26048" PostTypeId="2" ParentId="26036" CreationDate="2010-12-13T16:45:34.803" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Educational software:&lt;/strong&gt;  There's plenty for preschoolers, and plenty for university students, but not much in between.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Language learning:&lt;/strong&gt;  I keep wanting Rosetta Stone, but getting it to work on Linux is tricky at best.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;A microblogging client that doesn't suck:&lt;/strong&gt; Existing options are too integrated to a particular window manager (pulling in a ridiculous amount of new dependencies for users of other WMs), unstable, glitchy, or just don't support enough services.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scheduling/calendar software that doesn't suck:&lt;/strong&gt;  Chandler is a mess, lightning and sunbird are feature-poor and glitchy, etc.  I'm still supporting wintrash at my father's small business because Linux lacks a good way to handle scheduling service calls.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Timelining:&lt;/strong&gt; A bunch of notes, in chronological order, with a configurable number of lines and drag-and-drop re-organization.  Useful for writers.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;CLI organizational tools:&lt;/strong&gt; Notecase and Keepnote are popular hierarchical note-takers, tasque and todo manage to-do lists, rednotebook does well at daily diaries and abstract list-making, but all of these are GUI tools.  For those of us happier in a command-line environment (and who hate the excessive mousing all those apps require), CLI alternatives (other than emacs org-mode which is nice but oh-so-overkill) would be great.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Those are just a few that come to mind :)&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-13T16:45:34.803" />
  <row Id="26049" PostTypeId="2" ParentId="25902" CreationDate="2010-12-13T16:47:48.063" Score="1" ViewCount="" Body="&lt;p&gt;I think as long as you can justify each move on your CV/resume then you'll be okay. Leaving after a couple of months is fine as long as you don't do it with every job. If I was hiring, I'd be more concerned with someone staying at a job that they hated or were ill-suited for!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something similar happened to me nearly ten years ago and people &lt;em&gt;still&lt;/em&gt; occasionally ask about that four month stint. I answer now as I did back then: it just wasn't the job I thought it was going to be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't be too critical of your current employer. It may be true but being too critical sounds bad. And try to learn from it. Are there any questions you could have asked? Were there any warning signs you could have picked up on?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in short, no, your career is fine. &lt;/p&gt;&#xA;" OwnerUserId="1503" LastActivityDate="2010-12-13T16:47:48.063" CommentCount="1" />
  <row Id="26050" PostTypeId="1" CreationDate="2010-12-13T16:48:53.490" Score="0" ViewCount="72" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/1785/what-should-every-programmer-know-about-programming&quot;&gt;What should every programmer know about programming?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Hii People:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a Beginner,i d Like to ask about the main things that every programmer should aware of,&#xA;May i Know which might help me to write better code ,&lt;/p&gt;&#xA;" OwnerUserId="7452" LastActivityDate="2010-12-13T16:48:53.490" ClosedDate="2010-12-13T16:57:42.900" Title="what are the Pitfalls and Traps that every programmer should aware of?" Tags="&lt;programming-practices&gt;" CommentCount="2" />
  <row Id="26051" PostTypeId="2" ParentId="26030" CreationDate="2010-12-13T16:50:10.650" Score="0" ViewCount="" Body="&lt;p&gt;Before the point that it is documented enough relative to the quality and completeness of the code.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-13T16:50:10.650" />
  <row Id="26052" PostTypeId="2" ParentId="26022" CreationDate="2010-12-13T16:57:26.007" Score="0" ViewCount="" Body="&lt;p&gt;I'd personally spend the time catching up on podcasts, programming books etc.  I reckon it would be a more efficient use of time whilst travelling in a car (programming is just going to be awkward)&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-13T16:57:26.007" />
  <row Id="26053" PostTypeId="2" ParentId="25234" CreationDate="2010-12-13T16:58:44.757" Score="2" ViewCount="" Body="&lt;p&gt;It's the nature of programming to work on a longer time cycle compared to what most other people do.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A brick layer can plop another brick on in just a minute, and can stop anytime +/- one minute, and pick up where the work left off.  Simple steps, short time cycle.   In retail, it's a minute or two per customer.  A massage therapist works on a time cycle of an hour or two, and whatever was accomplished in the morning is independent of appointments for the afternoon.  A client may run over time, or show up early, but it's reasonable to expect to be done at a certain time give or take 10 or 20 minutes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To fly a plane solo around the world to set a new world record - that's not a stop and start kind of activity.  To land every hour or two for a snack or to frolic on a  beach makes the endeavor much less impressive. It's minimum increment of time is the whole trip, whatever number of days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's common for a software developer to start a task, build up the mental cache of facts and details, find the bug or see how to add a new feature, and retain that cache of short-term memories until done with the coding.  You can't stop on a dime timewise.  The natural time increment that you can't break up without loss is probably anywhere from an hour to ten or so, YMMV, and there are several smaller weaker stopping points along the way where some loss of mental cache would be tolerated as well as major stopping points where the task is truly done.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, our bodies tire, and one just must stop before doing more harm than good.  The old saying &quot;death is nature's way of telling you to slow down&quot; might apply.&lt;/p&gt;&#xA;" OwnerUserId="4280" LastActivityDate="2010-12-13T16:58:44.757" />
  <row Id="26054" PostTypeId="2" ParentId="26036" CreationDate="2010-12-13T17:01:18.050" Score="0" ViewCount="" Body="&lt;p&gt;Front office/back office trading systems like Calypso, Murex or FrontArena.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those systems are quite expensive to buy and you have to hire more expensive consultants to bring your installation into a usable state. This cost is payed a thousand times by companies and banks even though most of those investements provide no strategic advantage (= waste).&#xA;If there is an problem you are dependend on those software vendors or consultants, you can not fix it yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They should get to together and write anOpen Source base system.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-12-13T17:01:18.050" />
  <row Id="26055" PostTypeId="2" ParentId="25617" CreationDate="2010-12-13T17:02:21.997" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If you are asking about the ad itself:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the sentiment of the ad is that scrum/agile is not for everyone or every place.  If it is working for you great, but there are a whole lot of people that find it very unpleasant for various reasons and there are many more organizations that make it unpleasant for various reasons as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think of an add that just said &quot;not having a quiet office getting you down&quot; or &quot;not being able to play loud music at your desk getting you down&quot;.  Both would appeal to people that are currently in offices that are the opposite of what they prefer but would not appeal to the folks in the same office that prefer things the way they are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The advertiser is telling you how they work and attracting people that work that way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I think it is a fairly honest way of dealing with the matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are also plenty of places advertising that they are agile or scrum or whatever buzzword compliance you prefer if you look around on other sites that have more ads.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;If you are asking about why scrum has that perception&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scrum got very popular as a buzzworthy methodology in some enterprise businesses that are not primarily IT shops.  A whole lot of people have had a process dictated to them that is not adaptable and does not fit the current team, project, situation, etc and is generally less productive/effective than whatever they were doing before.  The fact that certification orgs started handing out scrum master certs like Halloween candy only helped to accelerate the problem in the scrum specific version.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are lots of shops (from what I see mostly businesses that ARE primarily IT) that do agile or scrum and love it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need a process that fits the team, the project(s), and the situation.  If that is waterfall good for you, if that is agile good for you, and if you are in one of the few places that actually lets you adapt whatever you call your process as you go as you need to fit the current situation then you have the best situation.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is what most of the people that are happy with whatever they have are having.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-12-13T17:02:21.997" />
  <row Id="26056" PostTypeId="2" ParentId="14297" CreationDate="2010-12-13T17:04:54.593" Score="3" ViewCount="" Body="&lt;p&gt;When there are no comments or documentation whatsoever of what the code does or is supposed to do (i.e. &quot;the code is the documentation&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Methods or variables with a number as suffix (e.g. Login2()).&lt;/p&gt;&#xA;" OwnerUserId="9946" LastEditorUserId="9946" LastEditorDisplayName="" LastEditDate="2010-12-23T09:28:23.207" LastActivityDate="2010-12-23T09:28:23.207" CommunityOwnedDate="2010-12-13T17:04:54.593" />
  <row Id="26057" PostTypeId="2" ParentId="26030" CreationDate="2010-12-13T17:10:17.440" Score="7" ViewCount="" Body="&lt;p&gt;At the point your contract forbids it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should honour your contract but beyond that you have no obligations.  This may seem harsh but I promise you that if times were tight the company would show little loyalty when it was thinking about letting people go and you need to have the same attitude.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I'd speak to the new company, explain the situation, see if they'll wait a little longer for you than they might have wanted (without you endangering the role and the relationship).  During that notice period work your socks off on the project for your existing company if you feel you owe them that but beyond that you need to think of yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The exception to this would be if the company has been very loyal to you (and by that I mean genuinely above and beyond) but I'm guessing that that isn't the case here.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-13T17:10:17.440" />
  <row Id="26058" PostTypeId="1" AcceptedAnswerId="26065" CreationDate="2010-12-13T17:12:48.360" Score="13" ViewCount="202" Body="&lt;p&gt;Does anyone practice the &quot;code review&quot; process for functional tests? Do you find it useful? The way that my current employer practices SCRUM we include functional testing as part of our &quot;must have done&quot; stuff in any given sprint.&lt;/p&gt;&#xA;" OwnerUserId="9952" LastActivityDate="2010-12-16T21:15:22.897" Title="Peer review for tests just like code reviews" Tags="&lt;scrum&gt;&lt;code-reviews&gt;&lt;quality&gt;" AnswerCount="6" CommentCount="2" />
  <row Id="26059" PostTypeId="2" ParentId="5460" CreationDate="2010-12-13T17:18:57.347" Score="1" ViewCount="" Body="&lt;p&gt;JavaScript&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't know it, you should.&#xA;I don't, I will.&lt;/p&gt;&#xA;" OwnerUserId="9956" LastActivityDate="2010-12-13T17:18:57.347" />
  <row Id="26060" PostTypeId="2" ParentId="14297" CreationDate="2010-12-13T17:19:50.923" Score="2" ViewCount="" Body="&lt;p&gt;From my Java-centric perspective:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Non-standard coding style.&lt;/li&gt;&#xA;&lt;li&gt;Non-private variables.&lt;/li&gt;&#xA;&lt;li&gt;Missing &lt;code&gt;final&lt;/code&gt; on fields.&lt;/li&gt;&#xA;&lt;li&gt;Pointless or overuse of inheritance.&lt;/li&gt;&#xA;&lt;li&gt;Huge classes or blocks of code.&lt;/li&gt;&#xA;&lt;li&gt;Too many comments (they're probably just wishful thinking anyway).&lt;/li&gt;&#xA;&lt;li&gt;Unstructured logging.&lt;/li&gt;&#xA;&lt;li&gt;Getters and setters (interfaces should be about behaviour).&lt;/li&gt;&#xA;&lt;li&gt;Duplicated data.&lt;/li&gt;&#xA;&lt;li&gt;Strange dependencies.&lt;/li&gt;&#xA;&lt;li&gt;Statics, including thread-globals.&lt;/li&gt;&#xA;&lt;li&gt;For multi-threaded code, parts of the same class that are expected to be run in different threads (notably GUI code).&lt;/li&gt;&#xA;&lt;li&gt;Dead code.&lt;/li&gt;&#xA;&lt;li&gt;String manipulation mixed in with other code.&lt;/li&gt;&#xA;&lt;li&gt;Generally mixing layers (higher level stuff, combined with iterating over an array of primitives or thread-handling, say).&lt;/li&gt;&#xA;&lt;li&gt;Any use of reflection.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;catch&lt;/code&gt; blocks without useful code (bad: comments, printf, logging or just empty).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="735" LastActivityDate="2010-12-13T17:19:50.923" CommunityOwnedDate="2010-12-13T17:19:50.923" />
  <row Id="26061" PostTypeId="2" ParentId="5460" CreationDate="2010-12-13T17:26:45.313" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;OpenGL, shaders and 3d Game Programming in general.&lt;/li&gt;&#xA;&lt;li&gt;3D rendering related algorithms, like BSP Tree and Ray Traycing.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8140" LastActivityDate="2010-12-13T17:26:45.313" />
  <row Id="26062" PostTypeId="2" ParentId="26058" CreationDate="2010-12-13T17:27:30.027" Score="1" ViewCount="" Body="&lt;p&gt;It makes perfect sense to me.  Any code you write should be looked at by someone else, even if the code is only used internally and will never be run by the customer.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastEditorUserId="4365" LastEditorDisplayName="" LastEditDate="2010-12-13T17:33:22.343" LastActivityDate="2010-12-13T17:33:22.343" />
  <row Id="26063" PostTypeId="2" ParentId="1785" CreationDate="2010-12-13T17:27:40.117" Score="1" ViewCount="" Body="&lt;p&gt;When you have to distribute an application or put a website into production outside the confines of your company, everything that you thought didn't matter, does.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-13T17:27:40.117" CommunityOwnedDate="2010-12-13T17:27:40.117" />
  <row Id="26064" PostTypeId="2" ParentId="26037" CreationDate="2010-12-13T17:32:06.683" Score="2" ViewCount="" Body="&lt;p&gt;The purpose of a resume is to get you an interview.  That means it has to have all the right buzzwords to get you past the HR, and just enough substance to get the technical manager interested in talking to you.  The technical interview is where you should discuss your coding style and design philosophy.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-12-13T17:32:06.683" CommentCount="1" />
  <row Id="26065" PostTypeId="2" ParentId="26058" CreationDate="2010-12-13T17:32:42.720" Score="2" ViewCount="" Body="&lt;p&gt;We also practice SCRUM. And the same as you, we also include functional testing as part of our definition as done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From my experience, I find it incredibly useful. We have significantly reduced the number of bugs in our code by simply forcing the functional testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A second nice thing about the code review, is it gives you another view over the actual functionality, and to make 100% sure that it is in line with what the customer/client wanted. There has been a few times when someone was going over code and functionality where the person went ... &lt;em&gt;&quot;Hang on, this is not right...&quot;&lt;/em&gt; and it turned out that the person implementing the code just misunderstood something.&lt;/p&gt;&#xA;" OwnerUserId="8478" LastActivityDate="2010-12-13T17:32:42.720" />
  <row Id="26066" PostTypeId="2" ParentId="26058" CreationDate="2010-12-13T17:32:52.513" Score="3" ViewCount="" Body="&lt;p&gt;Good heavens yes (I try not to use expletives on SO ;p).  Peer reviewing your functional tests is basically peer reviewing your requirements and analysis, it's incredibly important, and if you use a BDD language like cucumber you can involve non programmers as well!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's awesome when our end users spot issues with our functional tests and it makes them feel hugely part of the development process &quot;I can read code too!!&quot;&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-13T17:32:52.513" CommentCount="2" />
  <row Id="26067" PostTypeId="2" ParentId="26030" CreationDate="2010-12-13T17:33:28.463" Score="2" ViewCount="" Body="&lt;p&gt;I mostly agree with the statement &quot;at the point your contract forbids it.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The initial post doesn't specify whether the application is new, under development by you, or is an existing legacy application. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are &quot;numero uno&quot; on brand new development, and there are no other players, and the client is committed to the project, then my opinion is that if your employer/client has treated you correctly, you have a moral obligation to help provide a transition for them to a new resource. This means that you should at least help them interview candidates for your replacement, and you should budget some time for follow on questions from the new guy. Or some other arrangement that allows them to go forward. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason is that if you create a &quot;throwaway&quot; without offering even a life preserver to the client, and the client has given you no reason to bail such as abusing the contract, then you are making an amoral decision that most service based businesses live to regret (IE, screwing the customer.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the application is an existing legacy application, then the legalistic criteria applies, more or less. People move on, and you should give standard notice but not worry a lot about it otherwise. Your client/boss should always have a contingency plan in place for emergencies and staff losses. &lt;/p&gt;&#xA;" OwnerUserId="9720" LastActivityDate="2010-12-13T17:33:28.463" />
  <row Id="26068" PostTypeId="2" ParentId="5460" CreationDate="2010-12-13T17:35:22.623" Score="1" ViewCount="" Body="&lt;p&gt;1) Mobile development with &lt;a href=&quot;http://rhomobile.com/&quot; rel=&quot;nofollow&quot;&gt;Rhodes&lt;/a&gt; (cross-platform mobile development).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Spring + GWT2.1&lt;/p&gt;&#xA;" OwnerUserId="8478" LastActivityDate="2010-12-13T17:35:22.623" CommentCount="2" />
  <row Id="26069" PostTypeId="2" ParentId="26022" CreationDate="2010-12-13T17:35:27.900" Score="0" ViewCount="" Body="&lt;p&gt;Take advantage of the situation and educate your parents on programming. If they paid for your schooling, it's the least you could do. Have you written any software that they could be a potential user? Perfect time to watch over a user's shoulder while they use your app. Maybe have them use a site that may seem fine for a technically inclined person, but others may struggle. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they're in the field, maybe you could learn something. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-13T17:35:27.900" CommentCount="1" />
  <row Id="26070" PostTypeId="2" ParentId="26030" CreationDate="2010-12-13T17:36:53.607" Score="74" ViewCount="" Body="&lt;p&gt;At what point in your life is it unreasonable for your employer to lay you off?&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-12-13T17:36:53.607" CommentCount="4" />
  <row Id="26071" PostTypeId="2" ParentId="2260" CreationDate="2010-12-13T17:40:57.193" Score="2" ViewCount="" Body="&lt;p&gt;There are pro and contra reasons for using an alternative layout.&#xA;I am fairly proficient on both QWERTY and Dvorak layouts (typing this on a Typematrix Dvorak keyboard).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would not recommend to switch the layout for some strange reasons like gain in speed (there is none), or &quot;dislike&quot; in QWERTY.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest concern will be the hotkeys. Most hotkeys SUCK on alternative layouts. The Apple Command-QWERTY is not practital, as there are many non-Command hotkeys in virtually every App, so you have to juggle between 2 layouts in your head the whole time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, with these in mind, why DID I learn Dvorak? I thought it would be a fun excercise. It was.&lt;/p&gt;&#xA;" OwnerUserId="9956" LastEditorUserId="9956" LastEditorDisplayName="" LastEditDate="2010-12-23T15:25:58.173" LastActivityDate="2010-12-23T15:25:58.173" />
  <row Id="26072" PostTypeId="2" ParentId="26058" CreationDate="2010-12-13T17:42:46.283" Score="1" ViewCount="" Body="&lt;p&gt;With the methodologies that put so much weight in testing the review of the tests becomes much more important, possibly required, sometimes more important that the review of the code itself since it is often assumed it can be replaced with any code that meets the same automated testing outcome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reviewing that the tests are correct is one aspect, that they are complete enough and accurate/representative is also very important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Missing this point is one of the things that makes these methodologies look sloppy to outside reviewers.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-12-13T17:42:46.283" />
  <row Id="26073" PostTypeId="2" ParentId="25963" CreationDate="2010-12-13T17:46:52.060" Score="1" ViewCount="" Body="&lt;p&gt;Here is a link to an article that mentions a study commissioned by Citrix (The company that would love it if everyone worked from home.) &lt;a href=&quot;http://www.workshifting.com/2010/12/making-collaboration-work-for-the-21st-centurys-distributed-workforce-study.html&quot; rel=&quot;nofollow&quot;&gt;http://www.workshifting.com/2010/12/making-collaboration-work-for-the-21st-centurys-distributed-workforce-study.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm still looking for the study results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless of what you think of the book &quot;The 4-Hour Workweek&quot; by Timothy Ferriss (most people think the notion is preposterous), there is a chapter on strategies to get your company to let you work from home. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;suggest a trial period.&lt;/li&gt;&#xA;&lt;li&gt;Ask for a little more time than you&#xA;want so you have room to negotiate.&lt;/li&gt;&#xA;&lt;li&gt;And emphasize that this is not&#xA;engraved in stone and if the&#xA;productivity isn't there, it can be&#xA;cancelled at the boss's discretion.&lt;/li&gt;&#xA;&lt;li&gt;Get stuff done.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Make sure you are not confusing working from home with flex-time. Your boss may expect the same hours of availability. Failing to answer the home phone during 9-5, could ruin the whole thing. If you want flex-time, everyone is going to have adopt a project oriented way of tracking work and not the amount of hours. &lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2010-12-13T17:52:15.147" LastActivityDate="2010-12-13T17:52:15.147" />
  <row Id="26074" PostTypeId="2" ParentId="5460" CreationDate="2010-12-13T17:49:52.197" Score="2" ViewCount="" Body="&lt;p&gt;Functional Programming such as F#.  Seems like it would be the biggest shift from my current main language of C#.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-12-13T17:49:52.197" />
  <row Id="26075" PostTypeId="2" ParentId="26030" CreationDate="2010-12-13T17:51:37.820" Score="0" ViewCount="" Body="&lt;p&gt;If you're held responsible for the outcome of your work and your employer has stipulations about how you do your work that prevents that outcome from ever being good (or could lead to total disaster), then any time is a good time.&lt;/p&gt;&#xA;" OwnerUserId="8865" LastActivityDate="2010-12-13T17:51:37.820" />
  <row Id="26076" PostTypeId="1" CreationDate="2010-12-13T17:59:50.773" Score="22" ViewCount="1240" Body="&lt;p&gt;I think there are some tools that almost every programmers needs so I though it might be useful if we can share it, &lt;strong&gt;please Name it and give an small description of the tools and link if possible&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So here is the first one:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://winmerge.org/&quot; rel=&quot;nofollow&quot;&gt;WinMerge&lt;/a&gt; : WinMerge is an Open Source differencing and merging tool for Windows. WinMerge can compare both folders and files, presenting differences in a visual text format that is easy to understand and handle.&lt;/p&gt;&#xA;" OwnerUserId="9110" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T17:22:39.007" LastActivityDate="2010-12-26T17:22:39.007" CommunityOwnedDate="2010-12-26T17:22:39.007" ClosedDate="2010-12-15T17:21:46.670" Title="What are some handy tools in Windows that makes programmers life easy ?" Tags="&lt;tools&gt;&lt;software&gt;&lt;free-software&gt;" AnswerCount="24" CommentCount="19" FavoriteCount="18" />
  <row Id="26077" PostTypeId="2" ParentId="25722" CreationDate="2010-12-13T18:02:49.557" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Exceptions.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not arguing against them, it's just that they exist, and most programmers ignore them, but buying into them has a ripple effect that most programmers don't want to even think about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example: floating point exceptions. Does your code handle them explicitly? What happens if it doesn't? &lt;strike&gt;Most&lt;/strike&gt; &lt;em&gt;some&lt;/em&gt; programmers just put guard code to prevent divide-by-zero and then hope for the best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Overly optimistic statement corrected.&lt;/p&gt;&#xA;" OwnerUserId="8935" LastActivityDate="2010-12-13T18:02:49.557" />
  <row Id="26078" PostTypeId="2" ParentId="26076" CreationDate="2010-12-13T18:04:49.353" Score="31" ViewCount="" Body="&lt;p&gt;A text editor with code highlighting is invaluable. I like &lt;a href=&quot;http://notepad-plus-plus.org&quot; rel=&quot;nofollow&quot;&gt;Notepad++&lt;/a&gt; and &lt;a href=&quot;http://www.crimsoneditor.com&quot; rel=&quot;nofollow&quot;&gt;Crimson Editor&lt;/a&gt;. They're both open-source.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-13T18:04:49.353" CommentCount="4" />
  <row Id="26079" PostTypeId="2" ParentId="26076" CreationDate="2010-12-13T18:09:05.263" Score="4" ViewCount="" Body="&lt;p&gt;My list:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Regular expressions: how anyone gets through 4 years of CS coursework without learning this is beyond me, but they didn't really teach it beyond a brief introduction at my (admittedly 3rd tier) school, and experience with many other graduates of other schools has demonstrated that I wasn't alone.&lt;/li&gt;&#xA;&lt;li&gt;vi and/or emacs: learn how to structure your projects by getting away from an IDE.  figure out how to use a CLI debugger.  Love the terminal.&lt;/li&gt;&#xA;&lt;li&gt;ack/grep: see first item.  best way to find what you're looking for in a dense haystack.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9475" LastActivityDate="2010-12-13T18:09:05.263" CommentCount="3" />
  <row Id="26080" PostTypeId="1" AcceptedAnswerId="26091" CreationDate="2010-12-13T18:11:03.857" Score="12" ViewCount="295" Body="&lt;p&gt;Recently I attended a lecture given by &lt;a href=&quot;http://software-carpentry.org/author/greg-wilson/&quot; rel=&quot;nofollow&quot;&gt;Greg Wilson&lt;/a&gt; (Chief Scientist of Software Carpentry). From the abstract:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The idea that claims about software development practices should be based on evidence is still foreign to software developers, &#xA;  but this is finally starting to change: any academic who claims that a particular tool or practice makes software development &#xA;  faster, cheaper, or more reliable is now expected to back up that claim with some sort of empirical study.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Overall, the lecture was very informative and left me thinking quite deeply about my approach to development. In particular, I now find myself looking for citations to back up a lot of statements. Previously, I had slipped into the habit of simply repeating offered truths, with perhaps a mental note to go check up on it later. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Putting it bluntly, &lt;strong&gt;I was being gullible&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's an example taken from the lecture:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;If more than 25% of the code needs refactoring, it's quicker to rewrite it&quot;. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Sounds plausible, but is it true? Where's the study backing this up? Is it true for all languages? And so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OK, it's quite possible to take this to an extreme and not believe anything by anyone unless you have derived it yourself from&#xA;first principles. That way lies madness (or maybe mathematics ;-) ). But, if someone comes up to you with a statement along the &#xA;lines of &quot;Hey, by doing this in [pick language of moment] we'll be able to boost productivity by [pick multiple of 10]%&quot; are you &#xA;inclined to just accept it, or are you going to ask for proven evidence?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's the latter (and I hope it is) then&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;where would you go to find this evidence? &lt;/li&gt;&#xA;&lt;li&gt;how stringent would you be?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In short, if someone offers you an unverified statement, will you respond with &quot;citation needed&quot;?&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-13T18:44:33.297" LastActivityDate="2010-12-13T22:09:42.340" ClosedDate="2010-12-14T20:23:02.880" Title="If someone offers you an unverified statement regarding software development practices, do you respond with &quot;citation needed&quot;?" Tags="&lt;self-improvement&gt;&lt;development-process&gt;&lt;computer-science&gt;" AnswerCount="7" CommentCount="9" FavoriteCount="3" />
  <row Id="26082" PostTypeId="2" ParentId="25953" CreationDate="2010-12-13T18:13:56.290" Score="3" ViewCount="" Body="&lt;p&gt;Your question is akin to that of US presidency, is it OK to let an elected civilian with no military experience be in charge of the Armed Forces?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The answer to your question depends on the role of IT in your organization. Is it a cost center or profit center? Is it at the core of your business, does it support your business, or is it your business?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your company's business is manufacture widgets or dig up coal, IT is just a supporting role. Investment in IT must be balanced by risk and cost versus the profit generated from the primary business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the firm is a bank, IT IS the business, unless computing support has been divided into Mission and IT.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have worked at several places where engineers wouldn't let IT touch &lt;em&gt;their&lt;/em&gt; mission-critical servers. IT was, at those places, helpdesk for PC support and e-mail. In other places, if it has a CPU, it belongs to IT.&lt;/p&gt;&#xA;" OwnerUserId="8935" LastEditorUserId="8935" LastEditorDisplayName="" LastEditDate="2010-12-20T18:04:49.093" LastActivityDate="2010-12-20T18:04:49.093" />
  <row Id="26083" PostTypeId="2" ParentId="26076" CreationDate="2010-12-13T18:19:03.053" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.scootersoftware.com/&quot; rel=&quot;nofollow&quot;&gt;Beyond Compare&lt;/a&gt; : Commercial software for file / folders / registry comparisons. Many features that I`ve nerver found elsewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.magiciso.com/tutorials/miso-magicdisc-overview.htm&quot; rel=&quot;nofollow&quot;&gt;Magic Disc&lt;/a&gt; : Freeware to load different formats of disc images as vrtual discs. Nice to have when you`re dealing with MSDN. Alternatives : &lt;a href=&quot;http://www.daemon-tools.cc/eng/downloads&quot; rel=&quot;nofollow&quot;&gt;Daemon Tools&lt;/a&gt;, &lt;a href=&quot;http://www.slysoft.com/en/virtual-clonedrive.html&quot; rel=&quot;nofollow&quot;&gt;Virtual CloneDrive&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://wb.mysql.com/&quot; rel=&quot;nofollow&quot;&gt;MySQL Workbench&lt;/a&gt; : Decent free DB modeling tool for MySQL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;https://www.vmware.com/tryvmware/?p=player&amp;amp;lp=1&amp;amp;q=vmware&quot; rel=&quot;nofollow&quot;&gt;VMWare Player&lt;/a&gt; : Multi-OS Virtual Machines. Alternative : &lt;a href=&quot;http://www.virtualbox.org/&quot; rel=&quot;nofollow&quot;&gt;VirtualBox&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7454" LastEditorUserId="7454" LastEditorDisplayName="" LastEditDate="2010-12-14T14:44:54.953" LastActivityDate="2010-12-14T14:44:54.953" CommentCount="5" />
  <row Id="26084" PostTypeId="1" CreationDate="2010-12-13T18:21:21.337" Score="0" ViewCount="79" Body="&lt;p&gt;Hello&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have searched but I havent found anything, I know its and advanced software engineering technique, I have my app written in Java, I just want to do is in base of that app generate a file that can be opened in a similar app for concentrating all the information, I dont know how to do it, is like a export, but its not a pdf, word, excel, I hope you can help me, and if it no the corret place for asking that can you tell me where?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bye and thanks for you attention&lt;/p&gt;&#xA;" OwnerUserId="9962" LastActivityDate="2010-12-14T00:53:18.370" ClosedDate="2010-12-14T20:13:58.953" Title="how to generate a file in an application in Java that can be open in another application in Java?" Tags="&lt;java&gt;&lt;software-engineering&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="26085" PostTypeId="2" ParentId="26076" CreationDate="2010-12-13T18:24:52.713" Score="10" ViewCount="" Body="&lt;p&gt;I find that &lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyId=04D26402-3199-48A3-AFA2-2DC0B40A73B6&amp;amp;displaylang=en#Overview&quot; rel=&quot;nofollow&quot;&gt;Microsoft Virtual PC&lt;/a&gt; (or &lt;a href=&quot;http://www.microsoft.com/windows/virtual-pc/&quot; rel=&quot;nofollow&quot;&gt;Windows Virtual PC&lt;/a&gt; aka XP Mode on Windows 7) is a good tool for testing software I've written as well as installing software that I'm interested in using.  Once you're done, you can shut down the VPC and undo all the changes.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-13T18:24:52.713" CommentCount="2" />
  <row Id="26086" PostTypeId="2" ParentId="26080" CreationDate="2010-12-13T18:28:04.903" Score="4" ViewCount="" Body="&lt;p&gt;Many developers base their moment to moment decisions on experience in the trenches working with code and the customers which that code serves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When a class or method has become so fragmented by bug fixes and customer change requests that it has become unmaintainable, a developer will sometimes make the decision to rewrite it rather than refactor, under the theory that he will save time and effort over the long term, because the resulting code will be of higher quality. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This kind of experience intelligence is what HR departments call &quot;human capital.&quot; It is one of the things that makes experienced developers valuable, and one of the reasons that good companies do things to try and preserve the longevity of their people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It doesn't seem fair or even practical to ask experienced developers to come up with a study and empirical data as proof that their techniques are valid.  Experience doesn't work that way.  To the contrary, experience is something of a &quot;felt sense.&quot;  In the refactoring world, we often call it &quot;smell.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately, a statement like &quot;If more than 25% of the code needs refactoring, it's quicker to rewrite it&quot; cannot be proven to work under all circumstances, so the statement [citation-needed] is really a way to inform the dogmatic programmer who seeks to force his views on others that it's not always &quot;His Way or the Highway.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-13T18:46:07.663" LastActivityDate="2010-12-13T18:46:07.663" CommentCount="4" />
  <row Id="26087" PostTypeId="2" ParentId="26084" CreationDate="2010-12-13T18:31:49.943" Score="1" ViewCount="" Body="&lt;p&gt;You didn't mention what kind of data you were exporting, but I'll still take a whack at it. You can define a data class that implements Serializable and save it to a file that way, and then deserialize that object in another program. Or, use a proprietary file format and save to, say, a text file. Another option is to use XML to store your data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pros and cons: All of these are fairly easy to work with. Serializing is the easiest since the library does most of the work for you. However, it does not deal with changing data formats well. Changing the class invalidates data saved in the previous format. XML is probably the most flexible, since you can change the tags pretty much however you like without invalidating your data. You just need to change the lookup program to find the new tags.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-13T18:31:49.943" CommentCount="5" />
  <row Id="26088" PostTypeId="2" ParentId="26076" CreationDate="2010-12-13T18:34:46.447" Score="14" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://ccollomb.free.fr/unlocker/&quot; rel=&quot;nofollow&quot;&gt;Unlocker&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9964" LastActivityDate="2010-12-13T18:34:46.447" CommentCount="6" />
  <row Id="26089" PostTypeId="2" ParentId="26076" CreationDate="2010-12-13T18:36:01.807" Score="1" ViewCount="" Body="&lt;p&gt;My list:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Windiff/Beyond Compare.&lt;br&gt;&#xA;Tortoise SVN if you use SVN for source control&lt;br&gt;&#xA;Fiddler&lt;br&gt;&#xA;Notepad++&lt;br&gt;&#xA;KeepFocussed: For pomodoro&lt;br&gt;&#xA;Resharper (if using Visual Studio)&lt;br&gt;&#xA;PSexplorer&lt;/p&gt;&#xA;" OwnerUserId="3755" LastActivityDate="2010-12-13T18:36:01.807" />
  <row Id="26090" PostTypeId="2" ParentId="26080" CreationDate="2010-12-13T18:38:23.417" Score="1" ViewCount="" Body="&lt;p&gt;It depends. :)  When someone's statement contradicts repeated, reflected-on, and personally verified experience, then yes, I'd want to see some sort of reference of a study.  On the other hand, if someone echoes an idea you've seen and lived many times, there's not much reaction provoked (doesn't mean that the idea is infallible though).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an example, the book &quot;Code Complete&quot; cites scores of studies in each chapter to make its points, sometimes about seemingly small matters (like indentation and spacing, or variable name length).  I recall some (younger) developers whom I introduced the book to thinking that that level of detail and evidence was silly. But a few months later with more production coding experience and after a few code reviews, some of those same developers had the honesty to admit that yes, even the number of spaces in indentation does matter.  Good comments matter.  Encapsulation matters.  etc. etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other end, when a vendor claims some new IDE is 50% more productive, my first reaction is bull$%^&amp;amp;!&lt;/p&gt;&#xA;" OwnerUserId="2026" LastActivityDate="2010-12-13T18:38:23.417" CommentCount="4" />
  <row Id="26091" PostTypeId="2" ParentId="26080" CreationDate="2010-12-13T18:38:57.513" Score="3" ViewCount="" Body="&lt;p&gt;The problem with these sort of statements is that even if you had empirical evidence supporting the claim it would be very difficult to determine if the study that lead to the evidence applied to your current situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Almost everything in the profession has a caveat, or several so every improvement in one place has the likelihood of being a disservice someplace else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The folks down in the trenches know the difference through experience and generally do not have the funding/time/resources to try to prove it through a scientific study.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The folks that try to prove it through a scientific study obviously have resources to dedicate to such studies and are therefore highly likely to be selling you something so I would say that you should be even more stringently applying your own personal experience to anything that claims to be backed up by empirical research.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If someone told you &quot;If more than 2% of the code needs refactoring, it's quicker to rewrite it&quot; you would know that to be false as much as if someone told you &quot;Only if more than 98% of the code needs refactoring, it's quicker to rewrite it&quot;.  Where the actual number is depends on what you are doing and how far from ideal the current code is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea that after a certain point it is easier to do a nuclear refactor is obviously true in many cases, but the actual percentage is more of an example that you need to consider through the lens of your (team's) own experience and current situation.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-12-13T18:38:57.513" CommentCount="2" />
  <row Id="26092" PostTypeId="2" ParentId="26030" CreationDate="2010-12-13T18:41:09.397" Score="3" ViewCount="" Body="&lt;p&gt;I agree with the other points that most companies would not consider your situation if they needed to initiate layoffs but I wouldn't go overboard and just leave without any notice.  I think the best way (and what I have done) is try to put myself in their shoes and think &quot;What is a &lt;strong&gt;reasonable&lt;/strong&gt; amount of time that they would need me for?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then go to your current boss, explain the situation that you will be leaving but say that you would like to help them with a graceful transition.  Then ask him how much time they would need you for still.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If he comes back with something ridiculous like 6 months when you were thinking that 3 weeks would be appropriate then you need to hold firm and counter with your reasons why 3 weeks is appropriate and what you are planning to do in those three weeks to help ease transition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think most people would be reasonable at this offer.  Unfortunately, there are unreasonable bosses and if they are not budging at 6 months, you need to remember that you have all the leverage.  If they make valid points why you should consider staying longer than what you thought, you should take that into account but if they only want to keep you longer because &quot;it would be a hassle&quot; then I would ignore their request.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: SnOrfus, this is an incredibly subjective answer based on your situation.  Your question is lacking enough details to give an appropriate answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I am in a similar situation so I will give you my input.  I am the sole developer on a system that is in production with users yet is still being developed.  The company is not a software company.  They are building this application as a venture into software and seeing if they can sell it to existing customers.  There is no one at the company currently AFAIK that could take over from me in an instant if I left.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If tomorrow, a great opportunity came my way I would probably offer to stay on for about 4 weeks.  Here is my reasoning:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;My manager and this place has been great to work for so I would want to repay that as well as I could.  If they requested another 2 weeks, I would probably be open to staying for 6 weeks total.&lt;/li&gt;&#xA;&lt;li&gt;I think 4 weeks is plenty of time for them to initiate a hiring process and get to the point where they are close to (or already) hiring someone&lt;/li&gt;&#xA;&lt;li&gt;4 weeks would be enough time for me to document anything that is needed for turnover, fix any bugs and complete high priority feature requests&lt;/li&gt;&#xA;&lt;li&gt;4 weeks would hopefully cause some discomfort for them which will give them an opportunity to learn in the future not to solely rely on one person&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I don't know you and I assume you are a competent developer otherwise you wouldn't be the sole person on a project.  However, in my career I have sometimes overestimated my importance and role to an organization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't worry.  Life will go on for them and they will adjust.  Look out for yourself.&lt;/p&gt;&#xA;" OwnerUserId="9963" LastEditorUserId="9963" LastEditorDisplayName="" LastEditDate="2010-12-13T20:04:04.880" LastActivityDate="2010-12-13T20:04:04.880" CommentCount="3" />
  <row Id="26093" PostTypeId="2" ParentId="25902" CreationDate="2010-12-13T18:46:01.003" Score="3" ViewCount="" Body="&lt;p&gt;I once resigned from a Job I liked to take on another Job which was paying more money early in my career.  The job I took turned out to be more on the factory side of things (making sausage) than actually programming.  I didnt see it coming and I got let go for not producing enough sausage.  So dont wait too long and get out of there.&lt;/p&gt;&#xA;" OwnerUserId="9969" LastActivityDate="2010-12-13T18:46:01.003" CommentCount="1" />
  <row Id="26094" PostTypeId="2" ParentId="3851" CreationDate="2010-12-13T18:51:52.480" Score="1" ViewCount="" Body="&lt;p&gt;I think that the only way a programmer can be bad at programming is if he stops listening to what other people have to say.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is about information. One needs to keep the ears, and eyes wide open.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A programmer can only improve by hitting the books, and working hard. But, you should also focus on learning new things, not learning the same over and over (look for new experiences inside your specific field/industry).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck.&lt;/p&gt;&#xA;" OwnerUserId="9520" LastActivityDate="2010-12-13T18:51:52.480" CommunityOwnedDate="2010-12-13T18:51:52.480" />
  <row Id="26095" PostTypeId="2" ParentId="26076" CreationDate="2010-12-13T18:52:36.067" Score="7" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://logmett.com/index.php?/products/teraterm.html&quot; rel=&quot;nofollow&quot;&gt;Teraterm&lt;/a&gt;: for working with ssh/telnet/serial-port. Nice if that's all you need.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.cygwin.com/&quot; rel=&quot;nofollow&quot;&gt;Cygwin&lt;/a&gt;: to have a unix shell &amp;amp; utilities (including ssh, scp, sftp). Important for automation.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Windows_PowerShell&quot; rel=&quot;nofollow&quot;&gt;Power Shell&lt;/a&gt;: Microsoft's attempt at a sys-admin/power-user scripting language/cmd-line. Weird but powerful. May someday replace cygwin et al.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9634" LastActivityDate="2010-12-13T18:52:36.067" CommentCount="2" />
  <row Id="26096" PostTypeId="2" ParentId="26080" CreationDate="2010-12-13T18:52:54.180" Score="7" ViewCount="" Body="&lt;blockquote&gt;If someone offers you an unverified statement regarding software development practices, do you respond with “citation needed”?&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No, I post it here and see if it gets any upvotes. Social proof is better than no proof!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-13T18:52:54.180" CommentCount="5" />
  <row Id="26097" PostTypeId="2" ParentId="25432" CreationDate="2010-12-13T18:56:48.717" Score="0" ViewCount="" Body="&lt;p&gt;I have to agree with some of the others here in that you are likely to fail in your objective -- because &lt;em&gt;you are focusing on the wrong problem&lt;/em&gt;, or at least your focus is too narrow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You want to be a great programmer -- does the subjective opinion of one software engineer bestow that title and ability on you (other than Joel)?  If you focus only on impressing your boss then you are not concentrating on the work, or on improving your skills -- you are not focused on your goal of becoming a great programmer.  You are trying to be granted respect rather than earning it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's take the worst case (because programmers like to do that) -- your boss absolutely hates you for no objective reason (you wore a Patriots hat the first day, whatever).  He's just never going to have a good opinion of you. If you concentrate on completing your tasks assigned, on solving problems efficiently and elegantly, and furthering your technical skill set -- you will improve yourself -- then in the end you are the winner -- independent of what your boss thinks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ashton job was a recipe for failure not because his code went unused, but because the job provided him with no practical benefit other than safety on Maslow's hierarchy.   Was he learning new skills? No. Did his work allow him to be creative? No. Did it earn him respect? No.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being that this is your first position, it will offer you most of these properties by default.  You will have your first experiences programming professionally, you will be given new challenges both technical and non-technical.  But there will come a time when you outgrow the position or it outgrows you, and you need to be continually improving yourself so you're not caught off-guard by it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One more thing, if Ashton's going to measure his self worth merely by the amount of people using his code then I suggest he join a frequent-flier club.  The only lasting happiness in life is that which we create for ourselves.  Living strictly according to what other people's opinions of us are produces tragic and inauthentic human beings.&lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-12-13T18:56:48.717" />
  <row Id="26098" PostTypeId="2" ParentId="26080" CreationDate="2010-12-13T18:58:08.290" Score="4" ViewCount="" Body="&lt;p&gt;I think with anything you never know until you try it. Even with proof to back up a statement, it's always possible to bend facts to the benefit of your point.  That being said you shouldn't try every new thing that hits the interwebs.  Make your best judgment.  Remember, if something is sounds too good to be true it probably is.  Always ask yourself why do you need to adopt something? What do you have to gain?  Does it make sense from a business prospective?  Never blinded except something on faith.&lt;/p&gt;&#xA;" OwnerUserId="8354" LastActivityDate="2010-12-13T18:58:08.290" CommentCount="2" />
  <row Id="26099" PostTypeId="2" ParentId="26080" CreationDate="2010-12-13T18:58:58.650" Score="1" ViewCount="" Body="&lt;p&gt;Isn't that something that depends on a whole lot of intangible variables (variables that have no way of being scientifically measured)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion, they are talking about an empirical method for measuring emotions. Something that not even Spock could accomplish. =)&lt;/p&gt;&#xA;" OwnerUserId="9520" LastActivityDate="2010-12-13T18:58:58.650" CommentCount="5" />
  <row Id="26100" PostTypeId="2" ParentId="26014" CreationDate="2010-12-13T19:00:50.477" Score="1" ViewCount="" Body="&lt;p&gt;Robotics and video games are what got me into programming. So, in my opinion the answer is yes.&lt;/p&gt;&#xA;" OwnerUserId="9520" LastActivityDate="2010-12-13T19:00:50.477" CommentCount="4" />
  <row Id="26101" PostTypeId="2" ParentId="26076" CreationDate="2010-12-13T19:08:38.987" Score="7" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.nunit.org/&quot; rel=&quot;nofollow&quot;&gt;NUnit&lt;/a&gt;: Free and effective unit testing framework/application. Useful at home because I use VS express (thus no unit testing plugins).&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://tortoisehg.bitbucket.org/&quot; rel=&quot;nofollow&quot;&gt;TortoiseHG&lt;/a&gt;: I use Mercurial, and TortoiseHG is a fantastic client that is updated and works well on Windows (all versions). Includes a 64 bit version.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://filezilla-project.org/&quot; rel=&quot;nofollow&quot;&gt;FileZilla&lt;/a&gt;: Free FTP client. Works well with any FTP server.&lt;/li&gt;&#xA;&lt;li&gt;(C#)&lt;a href=&quot;http://code.msdn.microsoft.com/sourceanalysis&quot; rel=&quot;nofollow&quot;&gt;StyleCop&lt;/a&gt;: Free static analysis tool for C# code formatting.&lt;/li&gt;&#xA;&lt;li&gt;(.NEt)&lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=917023F6-D5B7-41BB-BBC0-411A7D66CF3C&quot; rel=&quot;nofollow&quot;&gt;FxCop&lt;/a&gt;: Free static analysis tool for C# code.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.virtualbox.org/&quot; rel=&quot;nofollow&quot;&gt;VirtualBox&lt;/a&gt;: Free virtualization software (ridiculously easy to use and works very well IME). Took 30 mins to get a copy of Ubuntu setup in a VM to run functional tests of a .NET app on Mono.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-13T19:08:38.987" CommentCount="1" />
  <row Id="26102" PostTypeId="2" ParentId="1785" CreationDate="2010-12-13T19:12:25.397" Score="1" ViewCount="" Body="&lt;p&gt;Documentation is very important. More so if you are building something from scratch. It helps to document your ideas before writing any code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I learned this the hard way.&lt;/p&gt;&#xA;" OwnerUserId="9520" LastActivityDate="2010-12-13T19:12:25.397" CommunityOwnedDate="2010-12-13T19:12:25.397" />
  <row Id="26103" PostTypeId="2" ParentId="26080" CreationDate="2010-12-13T19:21:06.477" Score="3" ViewCount="" Body="&lt;p&gt;The example from the lecture is a heuristic, a rule of thumb and nothing more. That should be implicitly obvious.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Heuristics are like anything else: they are subject to a certain context and dependent on any number of unstated assumptions, and their usefulness can be very non-deterministic. As much arbitrary judgement goes into finding them useful as goes into formulating them in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does that means that they are without worth? I wouldn't say so at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Heuristics are one of the approaches that we can take toward addressing NP-complete problems, and in many respects, software engineering is itself an NP-complete problem.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-12-13T19:21:06.477" CommentCount="1" />
  <row Id="26104" PostTypeId="2" ParentId="26058" CreationDate="2010-12-13T19:24:46.263" Score="1" ViewCount="" Body="&lt;p&gt;You can do pair inspections!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pair Inspections are:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A review of documents actively &amp;amp; informally as part of the authoring &amp;amp; document production cycle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reasons why this works well with testing is that:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You can frequently inspect requirements or documents with more than one pair of eyes.&lt;/li&gt;&#xA;&lt;li&gt;You can involve more than just developers: Try BA with Test Lead, BA with a PM, BA with Dev.&lt;/li&gt;&#xA;&lt;li&gt;You can set re-curing meetings as part of an Agile process – Make sure to be serious about it with solid commitments from team members.&lt;/li&gt;&#xA;&lt;li&gt;You can use these pair inspections as part of a rapport-building exercise and communication exercise with your stakeholders. Get the conversation going!&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8874" LastActivityDate="2010-12-13T19:24:46.263" />
  <row Id="26105" PostTypeId="2" ParentId="26022" CreationDate="2010-12-13T19:44:03.980" Score="2" ViewCount="" Body="&lt;p&gt;Dont.  Sit back and enjoy the ride.  Read some fiction.  Listen to music.  Look at the scenery.  Count cows.  Take advantage of that time to give your mind a break from programming.  It'll be good for you, and you'll see more of whats around you.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But... keep a paper and pen handy because once your mind relaxes, the ideas will arrive.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-13T19:44:03.980" />
  <row Id="26106" PostTypeId="2" ParentId="14914" CreationDate="2010-12-13T19:45:41.623" Score="2" ViewCount="" Body="&lt;p&gt;In Mexico, all developers are señor Developers :)&lt;/p&gt;&#xA;" OwnerUserId="2232" LastActivityDate="2010-12-13T19:45:41.623" CommentCount="1" />
  <row Id="26107" PostTypeId="1" CreationDate="2010-12-13T19:52:08.693" Score="1" ViewCount="103" Body="&lt;p&gt;(Figured this was too subjective for SO, so posting here...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have some behavior that I can implement in various ways.  At least two methods are shows in the code snippet below.  Presume that the m_well data member is correctly set somehow at object construction time.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;struct Behavior&#xA;{&#xA;    virtual bool behavesWell() { return true; }&#xA;&#xA;private:&#xA;    bool m_well;&#xA;public:&#xA;    bool behavesMemberWell() { return m_well; }&#xA;};&#xA;&#xA;struct OtherBehavior : public Behavior&#xA;{&#xA;    virtual bool behavesWell() { return false; }&#xA;};&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Obviously the one relies upon virtual dispatch, and the other merely the return of a data member.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A third, non-shown method would likely have the non-virtual public member function not return a fixed data member, but instead call a virtual - lets leave that aside for the purpose of this please.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would lead you to one or other other of these two methods of implementing functionality, such that a user of this class can interrogate an object's behavior?&lt;/p&gt;&#xA;" OwnerUserId="8668" LastEditorUserId="8668" LastEditorDisplayName="" LastEditDate="2010-12-14T00:13:38.857" LastActivityDate="2010-12-14T00:13:38.857" Title="What are your decision critera in C++ to make something a data member or virtual method?" Tags="&lt;c++&gt;" AnswerCount="4" CommentCount="4" />
  <row Id="26108" PostTypeId="1" CreationDate="2010-12-13T19:58:15.217" Score="8" ViewCount="348" Body="&lt;p&gt;A friend and I (both in college) are currently in a debate over which is better, in terms of employment opportunities, experience, and education: a Bachelors degree in both Computer Science and Software Engineering, or a Bachelors in CS with a Masters in SE?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My point of view is that I would rather go to school for 4-4.5 years to learn both sides of the field, and be out working on real projects gaining real experience, by going the double major route.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;His point of view is that it would look better to potential employers if he had a Bachelors in CS and Masters in SE. That way, when he's finally done after 4 years of CS and 2-4 of SE (depending on where he goes), he can pretty much have his choosing of what he wants to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are both in agreement on the distinction between the two degrees: CS is &quot;traditional&quot; and about the theory of algorithms, data structures, and programming, where SE is the study of the design of software and the implementation of CS theory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what's your stance on this debate? Have you gone one route or another? And most importantly, why?&lt;/p&gt;&#xA;" OwnerUserId="8823" LastActivityDate="2010-12-14T20:37:48.007" Title="Which is better: Double majoring with CS/SE or CS with a Masters in SE?" Tags="&lt;software-engineering&gt;&lt;computer-science&gt;" AnswerCount="8" FavoriteCount="1" />
  <row Id="26110" PostTypeId="2" ParentId="26107" CreationDate="2010-12-13T20:06:50.433" Score="0" ViewCount="" Body="&lt;p&gt;In your example, I would use a data member.  It's simple and straightforward.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would use a virtual method where behavior &lt;em&gt;of the function&lt;/em&gt; actually changes in the derived class.  In your example, it's still just returning a boolean, even if the value is different.  Methods to me should be accomplishing something -- computation or I/O or what have you -- not just being an obtuse interface for data.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastActivityDate="2010-12-13T20:06:50.433" />
  <row Id="26111" PostTypeId="2" ParentId="3851" CreationDate="2010-12-13T20:15:27.667" Score="0" ViewCount="" Body="&lt;p&gt;When starting a Quality Improvement program and somebody's first suggestion for how we could most dramatically improve quality is to &quot;fire Vito&quot;, then Vito is a bad programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;True Story. Vito was fired. He was beyond bad, venturing far into unethical while bordering on illegal.&lt;/p&gt;&#xA;" OwnerUserId="749" LastActivityDate="2010-12-13T20:15:27.667" CommunityOwnedDate="2010-12-13T20:15:27.667" />
  <row Id="26112" PostTypeId="2" ParentId="26108" CreationDate="2010-12-13T20:17:37.450" Score="7" ViewCount="" Body="&lt;p&gt;Personal route:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;BS in Computer Science.&lt;/li&gt;&#xA;&lt;li&gt;MS in Software Engineering.&lt;/li&gt;&#xA;&lt;li&gt;Worked full time through both.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I went the Master's route.  The reason I did wasn't because I thought it'd give me more money now or because I think it would get me more opportunities by itself.  I personally want to teach at the college level later in life, and in general, that requires at minimum a master's degree in the field.  If you aren't too concerned with academic research, teaching, or generally being able to tell others you have a master's, then I would suggest the dual major.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cons of Master's:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Expensive if you can't get employer to pay for it.&lt;/li&gt;&#xA;&lt;li&gt;You could spend that time working in the &quot;real world&quot;.&lt;/li&gt;&#xA;&lt;li&gt;Developers who have &quot;made it&quot; without a Master's will take shots at you and say you don't need a Master's to be successful.  (They're right)&lt;/li&gt;&#xA;&lt;li&gt;There's no way to possibly learn how to work on a large team at a multi-year project in an academic setting.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Pros of a Master's:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It opens doors.  Not everyone you meet who can open amazing doors in your life will be a software developer.  A Master's can sometimes give you an edge.  &lt;strong&gt;Opportunities matter.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;You get to work on sweet projects in the lab that in the real world are extremely hard to come by.  Many software projects that started in the lab at universities have eventually gone on to change the face of software.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://ryanhayes.net/blog/software-development-academic-vs-real-world-education/&quot; rel=&quot;nofollow&quot;&gt;I wrote an article earlier this year on this subject here.&lt;/a&gt;  It contains a few other things not mentioned.  Keep in mind, I worked full time during both undergrad and my master's.  Most of my success I would attribute to real world work, and most of those real world work opportunities I attribute to connections I made in school.  Your mileage may vary.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-12-13T20:17:37.450" />
  <row Id="26113" PostTypeId="2" ParentId="25969" CreationDate="2010-12-13T20:24:56.057" Score="3" ViewCount="" Body="&lt;p&gt;Can I recommend an article from &quot;A List Apart&quot;?:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.alistapart.com/articles/progressiveenhancementwithjavascript/&quot; rel=&quot;nofollow&quot;&gt;http://www.alistapart.com/articles/progressiveenhancementwithjavascript/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you combine the general approach with that article with useful tools like JQuery (or Prototype, or whatever your JavaScript framework of choice is), it's really trivial to apply the JavaScript behavior after the fact.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are serveral types of browsers out there that still do not have JavaScript or at least very limited JavaScript support.  Not to mention that rule #1 for both WCAG and section 508 compliance (accessibility for non-US folks) is that the sight does not depend on a scripting language to &lt;em&gt;function&lt;/em&gt;.  If the page reloads every time I make a change, but it still allows me to make changes it is functioning.  The AJAX layer on top of the base site makes it possible for me to do the same without the page reloads.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Top reasons I can see for supporting no JavaScript users are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Supporting folks with disabilities (screen readers, alternate input devices, etc.)&lt;/li&gt;&#xA;&lt;li&gt;Supporting security conscious people: let's face it there's bad people doing heinous things with JavaScript, so the easiest solution is to get rid of JavaScript&lt;/li&gt;&#xA;&lt;li&gt;It's the easiest way to disable ads without a plugin&lt;/li&gt;&#xA;&lt;li&gt;Mobile and embedded devices&lt;/li&gt;&#xA;&lt;li&gt;Command line browsers used to download tools on headless servers&lt;/li&gt;&#xA;&lt;li&gt;Search engine spiders only follow real links--JavaScript confuses them&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Please, if you are going to require cookies and JavaScript on your site for it to &lt;em&gt;function&lt;/em&gt;, then properly do your due diligence to avoid the following problems with the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cross-site scripting attacks&lt;/li&gt;&#xA;&lt;li&gt;3rd party user tracking&lt;/li&gt;&#xA;&lt;li&gt;Hacking/Defacement through DOM manipulation&lt;/li&gt;&#xA;&lt;li&gt;Phishing (if a script can access your DOM, it can send any information on the page to the server it was loaded from)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(And that's just the short list)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the solution isn't that hard, why not do it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, while you're at your JavaScript fiesta, don't forget to support sane keyboard navigation.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-13T20:24:56.057" CommunityOwnedDate="2011-05-26T14:08:09.500" />
  <row Id="26114" PostTypeId="2" ParentId="26108" CreationDate="2010-12-13T20:28:49.167" Score="2" ViewCount="" Body="&lt;p&gt;I'd venture that what will be best is heavily dependent on what your goals are for after college.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you know exactly what kind of jobs you want to obtain, research what is best for that particular goal (by asking people who already have the sort of positions you wish to obtain).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't know exactly what kind of jobs you want to obtain, YAGNI (you aren't going to need it - the extra education that is).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And with that I'll be the first to say, at least in my experience in my field of Line-of-Business applications, education barely makes a whit of difference in comparison to experience - from both a what/how much will I learn perspective and a how many doors will be open to me after this perspective.  That is, real job experience &gt; education.&lt;/p&gt;&#xA;" OwnerUserId="6735" LastActivityDate="2010-12-13T20:28:49.167" />
  <row Id="26115" PostTypeId="2" ParentId="26108" CreationDate="2010-12-13T20:30:05.773" Score="3" ViewCount="" Body="&lt;p&gt;I graduated from SE and I can tell you my university wouldn't allow a double major with CS, I don't see why any university would.  They are not different disciplines, they are two parts of the same one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A double major in CS and SE doesn't make any sense.  My university offered an SE option to CS students (they took a 3-course series on specification and requirements, architecture, and testing) and all SE students basically took slightly-modified CS courses in addition to those three courses.  We learned CS theory, and many of my classmates specialized in algorithms and all of that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have never encountered an employer who has cared about the difference, and very few realize there is a difference other than the name.  This is especially true in the US, where &quot;Software Engineer&quot; titles are conferred upon people who took a meaningless 1-hour certification course at a conference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're good at what you do, you can get a job in CS/SE anywhere.  The competition is not exactly fierce, there are tons of jobs available.  Get a Master's degree if you are interested in research, solving special problems, etc.  Otherwise rely on your skills and not the name of your degree.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastActivityDate="2010-12-13T20:30:05.773" CommentCount="1" />
  <row Id="26116" PostTypeId="2" ParentId="26030" CreationDate="2010-12-13T20:31:18.773" Score="2" ViewCount="" Body="&lt;p&gt;Give a notice and get ready for your new job.  There's never an unreasonable time to leave a job, and you need to do what's in your best interest.&lt;/p&gt;&#xA;" OwnerUserId="7038" LastActivityDate="2010-12-13T20:31:18.773" CommentCount="1" />
  <row Id="26117" PostTypeId="2" ParentId="26076" CreationDate="2010-12-13T20:37:17.257" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://technet.microsoft.com/en-us/sysinternals/bb896647&quot; rel=&quot;nofollow&quot;&gt;DebugView&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7270" LastActivityDate="2010-12-13T20:37:17.257" />
  <row Id="26118" PostTypeId="2" ParentId="24889" CreationDate="2010-12-13T20:44:03.453" Score="3" ViewCount="" Body="&lt;p&gt;If you are working exclusively with automated testing (e.g., writing tests and testing tools but doing little-to-no actual product development), then you are an SDET (Software Development Engineer in Test).  Otherwise, you are a developer / programmer with excellent testing experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been an SDET for 5 years.  It is a title that originated at Microsoft and is now being adopted by many other companies.  Try searching for SDET on Monster and Dice.com to see if the descriptions of what people are looking for in that role match what you want to be doing.&lt;/p&gt;&#xA;" OwnerUserId="8888" LastActivityDate="2010-12-13T20:44:03.453" CommentCount="1" />
  <row Id="26119" PostTypeId="2" ParentId="26076" CreationDate="2010-12-13T20:48:40.990" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://mh-nexus.de/en/hxd/&quot; rel=&quot;nofollow&quot;&gt;HxD&lt;/a&gt; - Hex editor that can export bytes as code blocks&lt;/p&gt;&#xA;" OwnerUserId="9979" LastActivityDate="2010-12-13T20:48:40.990" CommentCount="3" />
  <row Id="26120" PostTypeId="2" ParentId="25902" CreationDate="2010-12-13T20:51:38.570" Score="3" ViewCount="" Body="&lt;p&gt;Just be careful not to diss the current employer in interviews even though they lied to you about the job. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-13T20:51:38.570" CommentCount="2" />
  <row Id="26121" PostTypeId="2" ParentId="26076" CreationDate="2010-12-13T20:53:14.450" Score="21" ViewCount="" Body="&lt;p&gt;Tools from &lt;a href=&quot;http://technet.microsoft.com/en-us/sysinternals/default&quot; rel=&quot;nofollow&quot;&gt;Sysinternals&lt;/a&gt; (now it's &quot;Windows Sysinternals&quot;).&#xA;It's primarily designed for sys admins, but a lot of them are also very useful for developers.&#xA;Description from their site :&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Whether you’re an IT Pro or a developer, you’ll find Sysinternals utilities to help you manage, troubleshoot and diagnose your Windows systems and applications.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Complete list is &lt;a href=&quot;http://technet.microsoft.com/en-us/sysinternals/bb842062&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="9744" LastActivityDate="2010-12-13T20:53:14.450" CommentCount="1" />
  <row Id="26122" PostTypeId="2" ParentId="1785" CreationDate="2010-12-13T20:57:45.100" Score="1" ViewCount="" Body="&lt;h2&gt;Know your OS/Platform before you start coding.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;If you code Windows/Linux/Android/iOS etc. start by learning the OS.&#xA;If you target something else such as Web the same goes there.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-13T20:57:45.100" CommunityOwnedDate="2010-12-13T20:57:45.100" />
  <row Id="26123" PostTypeId="2" ParentId="26076" CreationDate="2010-12-13T20:59:57.180" Score="1" ViewCount="" Body="&lt;p&gt;Winkey. (http://www.softpedia.com/get/System/OS-Enhancements/WinKey.shtml)&#xA;Short cuts save you that little time opening your ide, or notepad in a meeting to jot something down.&lt;/p&gt;&#xA;" OwnerUserId="9981" LastActivityDate="2010-12-13T20:59:57.180" />
  <row Id="26124" PostTypeId="2" ParentId="26107" CreationDate="2010-12-13T21:00:11.650" Score="0" ViewCount="" Body="&lt;p&gt;The rule of thumb is that all your data members should be private.  There are exceptions to this rule, such as simple POD (plain old data) structs that are only passed around or stored, but more often than not it makes sense to keep all data members private.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need to give other objects access read access to a data member, then you write a getter.  If your class will not have any child classes derived from it, then there is no need to make the getter virtual.  The only time you need to make any member function virtual, is when you want to allow a derived class to override it.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-12-13T21:00:11.650" />
  <row Id="26125" PostTypeId="2" ParentId="26076" CreationDate="2010-12-13T21:07:41.670" Score="3" ViewCount="" Body="&lt;p&gt;Autohotkey. I only use Windows in a VirtualBox on a OSX host, so it keeps the keymap consistent.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-12-13T21:07:41.670" />
  <row Id="26126" PostTypeId="1" CreationDate="2010-12-13T21:18:57.747" Score="0" ViewCount="341" Body="&lt;p&gt;I have a slide-out dock panel on the left of the screen that is hidden until someone moves their mouse over to the extreme left side of the screen - at which the dock panel slides out [  using jQquery animate({left:&quot;1px&quot;}, 200) ]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When someone moves their mouse OFF of the dock, the panel slides back to the left out of sight. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I need to figure out is how to cause a delay before the panels slides out of sight. So in a working model, what would happen is the someone would &quot;accidentally&quot; move their mouse off the dock, and there would be a half second delay. During the delay if the person moves their mouse back onto the dock then the dock does not hide itself. If the person does NOT move the mouse back onto the dock within half a second, then the dock actually does slide out of site. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've tried hoverIntent, jQuery delay(), and manually written mouseleave events, but I can't make it work as described. Anybody know how? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realize I need some kind of timeout, I just can't figure out how to write it so that the above behavior happens. Please post a snippet example. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's what I think works now (so it's solved I guess) - &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;        tout = setTimeout(do_nothing, 1);&#xA;&#xA;        $(&quot;#dock li&quot;).bind('mouseenter', dock_out );&#xA;&#xA;        $(&quot;#dock li ul&quot;).bind('mouseenter', st);&#xA;        $(&quot;#dock li ul&quot;).bind('mouseleave', dock_in);&#xA;&#xA;          function st() {&#xA;                    clearTimeout(tout);&#xA;            }&#xA;&#xA;&#xA;            function dock_in_clear() {&#xA;                        $(&quot;#dock li ul&quot;).animate({left:&quot;-180px&quot;},200);&#xA;                        $(&quot;#dock li ul&quot;).css({display:&quot;none&quot;});&#xA;                        $(&quot;#dock li ul&quot;).css('z-index', '0');&#xA;            }&#xA;&#xA;&#xA;            function do_nothing() { }&#xA;&#xA;            function dock_out(){&#xA;                        $(this).find(&quot;ul&quot;).animate({left:&quot;1px&quot;},200);&#xA;                        $(this).find(&quot;ul&quot;).css({display:&quot;block&quot;});&#xA;                        $(this).find(&quot;ul&quot;).css('z-index', '0');&#xA;            }&#xA;&#xA;            function dock_in(){&#xA;                        tout  = setTimeout( dock_in_clear, 1000);&#xA;            }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Rewrite&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var tout;&#xA;&#xA;$(&quot;#dock li&quot;).bind(&quot;mouseenter&quot;, function () { dock_out(); });&#xA;$(&quot;#dock li ul&quot;).bind(&quot;mouseenter&quot;, function () { dock_clear(); });&#xA;$(&quot;#dock li ul&quot;).bind(&quot;mouseleave&quot;, function () { dock_in(); });&#xA;&#xA;function dock_clear() { clearTimeout(tout); }&#xA;&#xA;function dock_in ()&#xA;{&#xA;    tout = setTimeout(function () {&#xA;        $(&quot;#dock li ul&quot;).animate({left:&quot;-180px&quot;},200);&#xA;        $(&quot;#dock li ul&quot;).css({display:&quot;none&quot;});&#xA;        $(&quot;#dock li ul&quot;).css('z-index', '0');        &#xA;    }, 1000);&#xA;}&#xA;&#xA;function dock_out ()&#xA;{&#xA;    $(this).find(&quot;ul&quot;).animate({left:&quot;1px&quot;},200);&#xA;    $(this).find(&quot;ul&quot;).css({display:&quot;block&quot;});&#xA;    $(this).find(&quot;ul&quot;).css('z-index', '0');    &#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="9984" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-14T00:43:28.730" LastActivityDate="2010-12-14T00:43:28.730" ClosedDate="2010-12-14T00:05:33.410" Title="Javascript / jQuery / Mouseenter / Mouseleave" Tags="&lt;javascript&gt;&lt;jquery&gt;" CommentCount="7" />
  <row Id="26127" PostTypeId="2" ParentId="26076" CreationDate="2010-12-13T21:25:24.713" Score="1" ViewCount="" Body="&lt;p&gt;One handy and less known tool:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.stevemiller.net/puretext/&quot; rel=&quot;nofollow&quot;&gt;Puretext&lt;/a&gt; - copy and paste text without any formatting. Saves on much irritation.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-12-13T21:25:24.713" />
  <row Id="26128" PostTypeId="1" AcceptedAnswerId="26244" CreationDate="2010-12-13T21:52:10.023" Score="4" ViewCount="288" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/24485/design-patterns-for-javascript&quot;&gt;Design Patterns for Javascript&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;When developing client side behavior for a web application, I spend a good amount of time thinking about the best way to organize the JavaScript code I write.  I want to open the floor to see how other developers have structured or organized the JavaScript in their application.  Please provide a reason why the pattern you suggested is effective. Also, if possible, list any short comings that the pattern has and how to workaround them.&lt;/p&gt;&#xA;" OwnerUserId="8354" LastActivityDate="2010-12-14T08:19:20.140" ClosedDate="2010-12-14T20:13:29.580" Title="Effective JavaScript Organization" Tags="&lt;javascript&gt;&lt;project-structure&gt;" AnswerCount="1" CommentCount="6" FavoriteCount="1" />
  <row Id="26130" PostTypeId="2" ParentId="42" CreationDate="2010-12-13T22:14:35.223" Score="0" ViewCount="" Body="&lt;p&gt;Sometimes one just has to sit down and listen, even when we don't want to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One can only hurt the dignity of a person by not paying them attention.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your manager is a person. Treat him like one. Look at him as if he were some guy in the street. No titles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doesn't that make him someone that may need a friend, someone who may feel lonely?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you thought about it from an emotional point of view?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is he trying to convey an implicit message?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Talk to him. Just not about the problem. Ask him how is life going. He may feel appreciated and thus provide you with less work anxiety.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you considered or done this already?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If not, then why?&lt;/p&gt;&#xA;" OwnerUserId="9520" LastActivityDate="2010-12-13T22:14:35.223" />
  <row Id="26131" PostTypeId="2" ParentId="25969" CreationDate="2010-12-13T22:18:33.180" Score="0" ViewCount="" Body="&lt;p&gt;Things to consider:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;AFAIK, search engine spiders don't like Javascript.  You should have basic content and navigation without Javascript just for SEO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some websites may have rules for access by the disabled, either for legal reasons or for company policy.  That is usually best accomplished with simple HTML as opposed to Javascript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While most people surf with Javascript on nowadays, that isn't a guarantee for the future.  The web is becoming increasingly hostile, and tools like NoScript may become more popular.  Alternately, it's possible that more people will use devices with less capable browsers, although with some Android phones being fairly inexpensive this seems less likely.  Graceful degradation may be a way of future-proofing the site.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-13T22:18:33.180" CommunityOwnedDate="2011-05-26T14:08:09.500" />
  <row Id="26132" PostTypeId="2" ParentId="26108" CreationDate="2010-12-13T22:18:52.650" Score="0" ViewCount="" Body="&lt;p&gt;I did the BS in CS and MS in SE.  I went full time to school for the BS and worked while doing my MS part time.  I liked this because when you are young, going to school full-time during your bachelors allows you take electives that will make you well-rounded afterwards.  It is amazing how many times I've been in business situations where history, political science, or economics comes up and I can contribute because of my liberal education during the bachelors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Experience is more important than a formal education.  But, my master's in SE did teach me some best practices and gave me a breadth of the field so I know what someone means when they say CMMI or Earned-Value management.  May not agree with it, but I can speak to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I WISH they would do better at universities setting up education for software developers; but universities are like big ships and take a long time to turn.  Hence, they can't keep up with the pace of the IT industry.  I blogged about this &lt;a href=&quot;http://leonardwoody.com/2010/03/04/software-education-in-the-21st-century/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="8776" LastActivityDate="2010-12-13T22:18:52.650" />
  <row Id="26133" PostTypeId="2" ParentId="26107" CreationDate="2010-12-13T22:21:42.630" Score="1" ViewCount="" Body="&lt;p&gt;We've got some classes that work that way - there is a type-of function that returns something different in different subclasses.  The problem I have is that there's no good way to tell within the debugger, given a &lt;code&gt;BaseClass *&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use a member variable.  The next guy to work on the code may thank you.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-13T22:21:42.630" CommentCount="1" />
  <row Id="26134" PostTypeId="2" ParentId="779" CreationDate="2010-12-13T22:23:15.063" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;How do you &lt;em&gt;feel&lt;/em&gt; about customers?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I answered with:&lt;/strong&gt; &quot;I haven't met any.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then at the end (this question ended the interview by itself) my favorite:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;From one to ten, how would you rate yourself as a person?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;To which I replied:&lt;/strong&gt; Eleven.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Big Silence&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;He then thanked me, and I left. Ten minutes out the door I was offered my current job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now you know why I wanted to impress the guy. =)&lt;/p&gt;&#xA;" OwnerUserId="9520" LastActivityDate="2010-12-13T22:23:15.063" CommunityOwnedDate="2011-02-17T17:16:27.913" />
  <row Id="26135" PostTypeId="2" ParentId="5780" CreationDate="2010-12-13T22:24:11.423" Score="17" ViewCount="" Body="&lt;p&gt;As a female programmer, I have to say that I have rarely met resistance or discrimination from any man. Most seem happy that a girl has walked into a male-dominated arena with her head held high. Coworkers are mostly pleasant, and I've never felt held back or underpaid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I dread being asked by a woman what I do for a living. Nearly always am I either immediately ignored, told off, or receive a slight disgusted look. Or they completely misunderstand what I meant by programming and start talking about doing art for websites.&lt;/p&gt;&#xA;" OwnerUserId="9988" LastActivityDate="2010-12-13T22:24:11.423" CommunityOwnedDate="2011-01-31T19:23:00.177" CommentCount="4" />
  <row Id="26136" PostTypeId="2" ParentId="42" CreationDate="2010-12-13T22:24:47.943" Score="0" ViewCount="" Body="&lt;p&gt;Do the same thing to him.  Every time you see him, immediately start talking about his stuff regardless of whether or not you understand it or not ... &quot;Hey, I think that marketing campaign should go like foo!&quot; &quot;Hey, I think our sales team should do bar!&quot; &quot;Hey, next time you talk to your manager, you should tell him quox!&quot;  He'll start avoiding you like the plague.&lt;/p&gt;&#xA;" OwnerUserId="9251" LastActivityDate="2010-12-13T22:24:47.943" />
  <row Id="26137" PostTypeId="1" AcceptedAnswerId="26146" CreationDate="2010-12-13T22:28:29.330" Score="7" ViewCount="182" Body="&lt;p&gt;I've been taking some software design courses in the past few semesters, and while I see the benefit in a lot of the formalism, I still feel like it doesn't tell me anything about the program itself. You can't tell how the program is going to operate from the Use Case spec, even though it discusses what the program can do, and you can't tell anything about the user experience from the requirements document, even though it can include QA requirements. ...sequence diagrams are as good a description of how the software works as the call stack, in other words- very limited, highly partial view of the overall system, and a class diagram is great for describing how the system is built, but is utterly useless in helping you figure out what the software needs to be. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where in all this formalism is the bottom line- how the program looks, operates, and what experience it gives? Doesn't it make more sense to design off of that? Isn't it better to figure out how the program should work via a prototype and strive to implement it for real? &#xA;I know that I'm probably suffering from being taught engineering by theoreticians, but I got to ask, do they do this in the industry? &#xA;How do people figure out what the program actually is, not what it should conform to? Do people prototype a lot? ...or do they mostly use the formal tools like UML and I just didn't get the hang of using them yet? &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2011-01-06T04:58:20.593" Title="How common is prototyping as the first stage of development?" Tags="&lt;design&gt;&lt;software-engineering&gt;&lt;prototyping&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="1" />
  <row Id="26138" PostTypeId="2" ParentId="24270" CreationDate="2010-12-13T22:38:12.530" Score="0" ViewCount="" Body="&lt;p&gt;Is a CS degree a definite pre-requisite for getting a good job as a programmer/software developer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No, it's probably not. The majority of people who are going to end up as the most talented software developers, can probably pick up everything they need to know on the job, and with a few night courses here and there. And in their free time, writing mods for games, or hacking into xboxes, or porting their homebrew flavor of linux to the PS3. The ones who won't end up as the most extremely talented software devs, can probably get to as good a living as those who go through a CS degree, by going to a vocational college where you learn how to code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what &lt;em&gt;does&lt;/em&gt; a CS degree buy you? &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A deeper, wider understanding of how computers work - both as software, and as hardware. Nowadays that means a deeper, wider understanding of the world around you&lt;/li&gt;&#xA;&lt;li&gt;A much better chance at getting an advanced degree, and pushing the boundaries of what we've done with hardware, code, or software&lt;/li&gt;&#xA;&lt;li&gt;A much better chance to meet other people who are doing really cool things with computers, whether they are classmates, or professors, or just people who hang out at the university in their free time&lt;/li&gt;&#xA;&lt;li&gt;A chance to have school and classmates who are &lt;em&gt;much&lt;/em&gt; smarter than you are, and who may or may not be in CS&lt;/li&gt;&#xA;&lt;li&gt;For a small minority of people, a chance at a better job&lt;/li&gt;&#xA;&lt;li&gt;More time to explore life before getting into the work force&lt;/li&gt;&#xA;&lt;li&gt;A chance to learn a more diverse set of skills before going out into the world. You might not use the OS Fundamentals or Philosophy of Evil courses immediately on the job, but you will probably have a happier life with the exposure, than without&lt;/li&gt;&#xA;&lt;li&gt;Increasingly, nowadays, much better exposure to the world of startups and entrepreneurs.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4091" LastEditorUserId="4091" LastEditorDisplayName="" LastEditDate="2011-02-07T17:02:55.890" LastActivityDate="2011-02-07T17:02:55.890" />
  <row Id="26139" PostTypeId="2" ParentId="26137" CreationDate="2010-12-13T22:38:38.037" Score="1" ViewCount="" Body="&lt;p&gt;What do you mean by how the program &quot;operates&quot;?  You seem to be looking for exact implementation details in something other than the specific final implementation, which doesn't make sense.  Higher-level elements are supposed to guide implementation, not determine it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From my experience, prototyping is somewhat uncommon.  I was certainly taught it in conjunction with specification, requirements, architecture, etc. though, and it can be very useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for &quot;what the software needs to be&quot;, that IS the requirements.  You appear to be missing the entire point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interfaces are often sketched out beforehand, and use cases can be used for interface &quot;flow&quot;.  The user experience is not missing at all.  If you feel some element is missing, then do something else your professors haven't mentioned.  Design does not consist of a clear set of rules handed down from heaven.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastEditorUserId="9771" LastEditorDisplayName="" LastEditDate="2010-12-13T22:51:30.887" LastActivityDate="2010-12-13T22:51:30.887" />
  <row Id="26140" PostTypeId="2" ParentId="26137" CreationDate="2010-12-13T22:41:26.587" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;In the business world, it matters a-lot&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I too use to think that, until you hit the business world. Then its no longer simple enough to just take requirements and go forth and build.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its in business that user &quot;flow&quot; diagrams, and lo-fi prototypes really make sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How the &quot;program&quot; operates is probably the easy part. In LOB (Line Of Business) apps, most of it is just CRUD. The &lt;strong&gt;challenge&lt;/strong&gt; lies in the &lt;strong&gt;business logic and rules&lt;/strong&gt;. This is where user flow diagrams and business process flows become extremely important in order to understand and plan effectively.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-13T22:41:26.587" />
  <row Id="26141" PostTypeId="2" ParentId="24353" CreationDate="2010-12-13T22:48:06.660" Score="1" ViewCount="" Body="&lt;p&gt;I've found the single most important thing is where to find things.  In general, but specifically in the source control system.  Are there common libraries and tools that they should know about?  Are tools in one area and products in another?  How is the code for large project X broken up?  That sort of thing.  Without this it can sometimes take months for a developer to find something, and they often don't ask because they have no reason to assume something particular is in the system.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastActivityDate="2010-12-13T22:48:06.660" />
  <row Id="26142" PostTypeId="2" ParentId="25969" CreationDate="2010-12-13T22:49:43.883" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It depends on the site and who will be using it.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is the site public or is it an intranet or a site that will only be available to certain customers? You will probably encounter users without JavaScript in the public. If it will only be used by clients can you tell them you only support JavaScript enabled?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is SEO a consideration or is the entire site behind a log-in screen or SEO is it otherwise not a factor? It is much easier to optimize for search engines if there's no JavaScript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will the site ever be used on mobile browsers? Mobile browsers often have no or poor JavaScript support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should also realize that JavaScript can make it difficult for screen readers to process your site and has other potentially negative accessibility considerations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Users of text based browsers (e.g. lynx) also have little or no JavaScript support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to look at your site and your audience and decide if you need to support users who have JavaScript disabled. You also have to see if it's even possible not to use JavaScript. If you're making an advanced Web Application and need things like webcam and microphone support it may be impossible to not use JavaScript. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you decide that you need to support users without JavaScript then you can still use JavaScript. You should just make the website still functional without it. This is called progressive enhancement, it should gracefully degrade if there is no JavaScript support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you decide to require JavaScript you should notify your users (using the &lt;code&gt;&amp;lt;noscript&amp;gt;&lt;/code&gt; tag) that you are doing so.&lt;/p&gt;&#xA;" OwnerUserId="2279" LastActivityDate="2010-12-13T22:49:43.883" CommunityOwnedDate="2011-05-26T14:08:09.500" />
  <row Id="26143" PostTypeId="1" AcceptedAnswerId="26569" CreationDate="2010-12-13T22:55:48.237" Score="5" ViewCount="198" Body="&lt;p&gt;My client is looking to standardize on its &quot;helper&quot; tools suite of applications to aid developers of a very large .NET project in debugging, profiling, finding memory leaks and performance bottlenecks, etc. kinds of issues&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All developers use VS2010, target .NET 4.0, and support a large distributed system: Winform UI client (CAB framework), SQL2008 Backened, CSLA app-tier with Dataportal &amp;amp; remoting, and there is a large job-processing layer with Compute cluster pack (CCP) as well as a few dozen other peripheral technologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To give you an idea of the size, the system is probably north of 5M lines of code, has about 100 developers around the world and has been in development &amp;amp; production support for the last 5 years with this same team size.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over the years, client did not have a single strategy that revolved around profiling tools of kinds.  Client bought the tools when programmers said: &quot;oh, this looks nice to trouble-shoot this particular problem I'm having&quot;.. &#xA;So, now the client wants to standardize on a suite of tools.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What has worked so far: Ants for memory profiling.  dotTrace for performance profiling.  There is currently a serious consideration being given to CA Wiley for production monitoring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;VS2010 profiling has been deemed not good enough and not working well enough within the current system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can anyone recommend a single suite of tools that would be a good substitute for ALL the tools mentioned above?  Integration with VS2010 is a must.  All sorts of bells &amp;amp; whistles and ease-of-use and ability to drill-down into deepest levels to find the weirdest problems is required.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you for your suggestions&lt;/p&gt;&#xA;" OwnerUserId="9996" LastActivityDate="2010-12-17T01:54:45.263" Title="Debugging, performance tracing, profiling, tools, etc. - suite?" Tags="&lt;tools&gt;&lt;performance&gt;&lt;debugging&gt;&lt;profiling&gt;&lt;performance-tools&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="26144" PostTypeId="2" ParentId="25963" CreationDate="2010-12-13T22:56:23.053" Score="2" ViewCount="" Body="&lt;p&gt;Just make a google search about the rates of depression among people who spend a lot of time home.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There have been studies about the different distractions available at home (like the internet, or even sleeping) that show a direct correlation between the onset of depression, and the reduction of outside contact. Without mentioning the studies about how the loss of sunshine affects the brain and &lt;em&gt;eases&lt;/em&gt; the mind into a state where it can easily get depressed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are studies out there. Problem is most people do not pay attention to them, and they later find themselves visiting psychiatrists for no other reason than to get a fix for a problem they did not need to have in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not saying you will experience such symptoms. I assume that you are a normal, and well adjusted individual with a strong moral and principles base. So, I'm just warning you against of what possibilities may lay ahead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, how would you escape from work?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if home = work&#xA;then what?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Where would you go to escape &lt;em&gt;from&lt;/em&gt; work?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The toilet?&lt;/p&gt;&#xA;" OwnerUserId="9520" LastActivityDate="2010-12-13T22:56:23.053" CommentCount="1" />
  <row Id="26145" PostTypeId="2" ParentId="25234" CreationDate="2010-12-13T23:00:04.797" Score="0" ViewCount="" Body="&lt;p&gt;If you have a family, this is a no-brainer.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;If I leave work at 5pm, the code will be exactly as I left it when I get in tomorrow.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If I leave work at 10pm, my son will already be in bed when I get home and I won't have given him a hug or seen him show off any of the things he learnt that day.  And my wife will be cranky because she's had to work her ass off all day with no help.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But if you are single and are not overly interested in the 'social scene', then go nuts!  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep in mind though that the work you do at 9pm will probably be of a lower quality than the work you do at 9am.  Don't underestimate the advantage of being well rested and having a clear mind.&lt;/p&gt;&#xA;" OwnerUserId="4822" LastActivityDate="2010-12-13T23:00:04.797" />
  <row Id="26146" PostTypeId="2" ParentId="26137" CreationDate="2010-12-13T23:24:37.450" Score="5" ViewCount="" Body="&lt;p&gt;If we're building a GUI application we almost ALWAYS create a prototype or POC (proof-of-concept).  We'll establish what the visual vocabulary of the app will be. We usually get our client involved part way through the POC and make sure they understand what the purpose is and what they should be focusing on.  I've never been sorry that I produced a prototype.  Just be sure that you don't try to turn the prototype code into the production code, start the production code from scratch based on what you learned from the prototype.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said all that, we almost never prototype server side applications (services, middleware, etc.).  I don't really see the return on investment for that (unless you are doing some new technology and need to prove different concepts out).&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-13T23:35:58.373" LastActivityDate="2010-12-13T23:35:58.373" CommentCount="1" />
  <row Id="26147" PostTypeId="2" ParentId="26030" CreationDate="2010-12-13T23:30:45.547" Score="4" ViewCount="" Body="&lt;p&gt;If you are not under contract, you should (in theory) be able to leave at any point in time. That is what you can do. Now, on to what you should do.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;strong&gt;Don't Burn Bridges&lt;/strong&gt; - Explain to your current employer why you are leaving and that it's not personal. Be sure to give adequate notice (depending on the scope of the project 2-6 weeks) and make sure you leave on good terms. You never know when or where you might meet again.&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;strong&gt;Document, document, document&lt;/strong&gt; - If you aren't already documenting your work, shame on you. Beyond the personal help documentation affords you (&quot;WTH was I thinking when I wrote that!?&quot;), it allows your company to move on in your absence. Imagine if you died suddenly. How would your company deal with that situation? This is honestly no different (from the company's perspective. You're still breathing and getting a raise.) and they should have no problem finding a competent developer to replace you.&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;strong&gt;To Bargain or not to Bargain&lt;/strong&gt; - You may be in a situation where you are offered more money to stay with the company rather than leave. Or maybe you want to use this offer to make them understand your worth to the company. How you deal with this situation is up to you, but let me offer a few words of advice. If you do twist your current companies arm and get more money, understand that there can be repercussions of this. They might see you as someone who is not a team player and only cares about himself. This makes it so much easier to fire you.&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;strong&gt;I'll be around&lt;/strong&gt; - No matter what happens, make them aware that any help they need, you will do what you can to help them (within reason). When the new guy comes in, train him. If you're still working there, that's expected. But even after you leave, be available. &quot;Sure, I'll train the new guy. This is my hourly rate.&quot; But don't overextend yourself. If they are relying on your knowledge to complete the project and are taking advantage of you, remember that you owe them nothing and that you no longer work for them.&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&#xA;&lt;strong&gt;Sweat the small stuff&lt;/strong&gt; - Be sure they file your W2/1099 on time. If you are under any NDA's/non-competes, be sure that you have them in writing and signed when you leave. These two things are big and can come back to bite you if you forget them. I once worked at a company that did neither of these and when I got fired, I didn't have the contract I signed when I started working there. In theory, they could have modified my contract to their liking and sue me for working in their 'territory.' And pissing of the IRS is far worse than a boss scorned, I think we can all agree.&#xA;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I hope this help and keep us posted on how it goes.&lt;/p&gt;&#xA;" OwnerUserId="9997" LastActivityDate="2010-12-13T23:30:45.547" />
  <row Id="26148" PostTypeId="2" ParentId="42" CreationDate="2010-12-13T23:41:56.027" Score="2" ViewCount="" Body="&lt;p&gt;It can be very difficult, especially if the manager thinks they're a l33t h@x0r but hasn't coded anything in the last 10 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start by using &lt;a href=&quot;http://en.wikipedia.org/wiki/Active_listening&quot; rel=&quot;nofollow&quot;&gt;active listening&lt;/a&gt;.  Make sure you understand exactly what point they're trying to get across.  Rephrase it and shoot it back to them so that they know you understood them.  Sometimes this is all they really care about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they insist on some implementation, ask yourself why you're refusing them.  There has to be a reason.  It probably breaks some fundamental software design principle... usually separation of concerns.  Know your principles, and &lt;em&gt;know why they're better than the alternative&lt;/em&gt;.  Then quote the principles and explain why they should be followed in this case.  That makes the discussion academic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't figure out why you don't like what they're saying, it's a good opportunity to question your assumptions.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-12-13T23:41:56.027" />
  <row Id="26149" PostTypeId="2" ParentId="26107" CreationDate="2010-12-13T23:42:27.773" Score="1" ViewCount="" Body="&lt;p&gt;As far as I can see, you've got a couple of conflicting issues here, which may be clarified if you could tell us for what purpose you're doing this? Is the code going to be used by you/your team, or are you designing an API for consumption by others?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're just trying to design a good interface to your functionality, put yourself in the shoes of the clients of your functions - write some unit tests. If when writing the unit tests, anything seems awkward or non-obvious, your design needs improving.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your class is meant for sub-classing, then you don't want public data members, or protected data members for that matter. Data members that are private can be changed at any time without breaking the sub-classes, whereas changes to protected members (potentially) break sub-classes and changes to public data members (quite likely) break client code. It may seem tedious to have a getter/setter pair of methods to manipulate a data member, but it's worth it if you want to keep the implementation flexible and not design yourself into a corner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The virtual methods would indicate that you're considering handing the client of your class an &lt;em&gt;interface&lt;/em&gt; which would be pure virtual. If this is the case, then you can't have data members in an abstract (pure virtual) class, so that leads you to virtual methods with virtual method calls to get/set data items.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-12-13T23:42:27.773" />
  <row Id="26150" PostTypeId="2" ParentId="42" CreationDate="2010-12-13T23:45:54.193" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The problem here is that your manager obviously feels COMPETENT, when he IS NOT.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had such experience before and for me it worked if I subtly showed the guy that programming wasn't his domain. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I might go at great lengths to explain a specific piece of code, descending all the way into talking about hash tables and linked lists, big O notation etc., until his face shows that he really feels unable to follow any more of your discussion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you can pull this off you will most likely get rid of the silly questions and micromanagement.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-13T23:45:54.193" />
  <row Id="26151" PostTypeId="1" AcceptedAnswerId="26245" CreationDate="2010-12-13T23:48:53.753" Score="7" ViewCount="369" Body="&lt;p&gt;Assuming a company is proudly certified  and swears by it all the time and uses it as a huge selling point to their customers and thinks the only way of ensuring auditability for this certification is to generate an endless and redundant paper-trail that eats up at your working hours (and motivation)...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you go about changing the way they do things and introducing Kanban or Scrum progressively without breaking their whole system and still making them confident that it can still be just as auditable?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know this is possibly related to &quot;&lt;a href=&quot;http://programmers.stackexchange.com/questions/24147/how-would-you-introduce-an-agile-methodology-like-scrum&quot;&gt;How would you introduce an agile methodology like Scrum&lt;/a&gt;&quot;, but here I am wondering about ways to circumvent/work around the fact that the company imposes a certain way of managing the SDLC under the false pretense that it's the only way to have an auditable trail.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm curious about suggestions and personal experiences and anecdotes, tips &amp;amp; tricks, or hard-facts and published references.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I am curious about your inputs from various angles: from a project manager's perspective, a dev team's member, an external consultant, etc... If one one you works as an auditor, please do tell as well if you've seen this done correctly!&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-12-14T01:58:12.363" LastActivityDate="2010-12-14T10:59:36.560" Title="How would you introduce Kanban/Scrum/&lt;other agile methodology&gt; to a team in an environment where rigid non-agile methods are in use" Tags="&lt;project-management&gt;&lt;development-process&gt;&lt;software-engineering&gt;&lt;certification&gt;&lt;sdlc&gt;" AnswerCount="4" CommentCount="8" />
  <row Id="26152" PostTypeId="1" CreationDate="2010-12-13T23:55:54.647" Score="4" ViewCount="115" Body="&lt;p&gt;I am not asking about some law processing database, but about law itself. What techniques could be used in the laws to make them better? &#xA;As an example it could be variables definition before use, rules of object-oriented programming, structure...&lt;/p&gt;&#xA;" OwnerUserId="9844" LastActivityDate="2010-12-14T02:42:15.907" ClosedDate="2010-12-14T20:14:50.217" Title="What programming practices could be successfully applied in law?" Tags="&lt;technique&gt;&lt;theory&gt;" AnswerCount="3" CommentCount="4" />
  <row Id="26153" PostTypeId="2" ParentId="25969" CreationDate="2010-12-13T23:59:49.780" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;No, you shouldn't&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With two exceptions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Content you want to be search engine indexable. (That doesn't mean it has to look good - as long as the links work and the content is discoverable.)&lt;/li&gt;&#xA;&lt;li&gt;Simple mobile sites that must work on all devices. (Some BlackBerries have JS disabled by default, and many non-smart phones often don't have it at all.)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;For desktop and touch phone websites, Javascript provides an amazingly rich user experience. There is a reason all top websites make extensive use of AJAX and Javascript. All current browsers support it. Embrace it!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As someone who has sweated in the past to make an entire website work with Javascript disabled, I can assure anyone that they'll end up degrading the experience for the 99% in order to please the 1%. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rather just stick in a NOSCRIPT tag that tells those users to enable Javascript. They'll be used to it.&lt;/p&gt;&#xA;" OwnerUserId="691" LastEditorUserId="691" LastEditorDisplayName="" LastEditDate="2010-12-14T00:13:23.590" LastActivityDate="2010-12-14T00:13:23.590" CommunityOwnedDate="2011-05-26T14:08:09.500" CommentCount="1" />
  <row Id="26154" PostTypeId="2" ParentId="26152" CreationDate="2010-12-14T00:00:41.883" Score="1" ViewCount="" Body="&lt;p&gt;Well if they started codifying the law in &lt;strong&gt;Z&lt;/strong&gt; that would help get rid of the loop holes for a start!&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-14T00:00:41.883" CommentCount="4" />
  <row Id="26155" PostTypeId="1" CreationDate="2010-12-14T00:36:43.210" Score="0" ViewCount="983" Body="&lt;p&gt;What do you think of object-oriented programming vs. procedural programming (or any other paradigm that you want to talk about)?  When is one better than the other?  Why?&lt;/p&gt;&#xA;" OwnerUserId="9521" LastActivityDate="2010-12-14T18:58:17.977" ClosedDate="2010-12-14T20:40:50.377" Title="Object-Oriented Programming vs Procedural Programming/other" Tags="&lt;programming&gt;&lt;object-oriented&gt;&lt;paradigms&gt;" AnswerCount="9" CommentCount="4" FavoriteCount="1" />
  <row Id="26156" PostTypeId="1" AcceptedAnswerId="26159" CreationDate="2010-12-14T00:40:37.780" Score="3" ViewCount="195" Body="&lt;p&gt;Hello&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was wondering when some one asks you to solve an algorithmic problem, is it a good way to actually start off with Hastable, Hashset or HashMap. Normally i have heard people saying you shouldn't come up with Hashes as your first answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So how should we go about in algorithms: In-place should be given importance or make sure time complexity is best&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not trying to generalise, but still some suggestions would be helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="17335" LastActivityDate="2010-12-14T11:39:25.163" ClosedDate="2010-12-14T20:22:11.447" Title="Efficient way of Writing algorithm" Tags="&lt;algorithms&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="26157" PostTypeId="2" ParentId="26137" CreationDate="2010-12-14T00:40:49.590" Score="0" ViewCount="" Body="&lt;p&gt;My personal observation is that prototyping is given much lip service but all too often the prototype, once it is showing signs of life, is simply rebranded as 'Beta' or, even worse, v1.0.&lt;/p&gt;&#xA;" OwnerUserId="7222" LastActivityDate="2010-12-14T00:40:49.590" CommentCount="2" />
  <row Id="26159" PostTypeId="2" ParentId="26156" CreationDate="2010-12-14T00:55:11.373" Score="9" ViewCount="" Body="&lt;p&gt;This question is wildly vague.  It's much like asking &quot;How do I solve a math problem, given any math problem&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My answer is as vague and complex as the question: it depends.  Does it have to run on a machine with 64kb ram, or an 8gh machine with an i7 quad-core?  Algorithms are a &lt;strong&gt;&lt;em&gt;means&lt;/em&gt;&lt;/strong&gt; to an end.  What is the end?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For many problems, computational complexity is an overwhelming factor in algorithm.  For most day-to-day problems in the workplace, not so much.  For many problems, doing something &quot;in place&quot; with limited ram is important.  Again, for the day to day, usually not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think of your goal and just make it happen.  The simpler, the better.  On the edge, there are no rules or roadmaps to problem solving.&lt;/p&gt;&#xA;" OwnerUserId="4607" LastActivityDate="2010-12-14T00:55:11.373" />
  <row Id="26160" PostTypeId="1" CreationDate="2010-12-14T00:56:50.253" Score="7" ViewCount="89" Body="&lt;p&gt;In reference to the Chandy/Misra solution for the &lt;a href=&quot;http://en.wikipedia.org/wiki/Dining_philosophers_problem&quot; rel=&quot;nofollow&quot;&gt;Dining Philosopher's Problem&lt;/a&gt;,&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;This solution also allows for a &lt;em&gt;large degree of concurrency&lt;/em&gt;, and will solve an arbitrarily large problem.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Are there any metrics for measuring concurrency of thread-based algorithms and applications?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has this been formalized?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks =D&lt;/p&gt;&#xA;" OwnerUserId="5904" LastActivityDate="2010-12-14T06:03:20.347" ClosedDate="2010-12-14T20:29:45.750" Title="Evaluating Concurrency" Tags="&lt;concurrency&gt;&lt;multi-threaded&gt;" AnswerCount="1" CommentCount="4" />
  <row Id="26161" PostTypeId="2" ParentId="26156" CreationDate="2010-12-14T00:57:09.730" Score="4" ViewCount="" Body="&lt;p&gt;I think that the first priority has to be correctness. Focus on that in the simplest way possible and optimize from that point on if necessary.&lt;/p&gt;&#xA;" OwnerUserId="7017" LastActivityDate="2010-12-14T00:57:09.730" />
  <row Id="26162" PostTypeId="2" ParentId="26155" CreationDate="2010-12-14T00:58:23.230" Score="0" ViewCount="" Body="&lt;p&gt;OOP was invented to overcome the limitations of procedural programming - aside from legacy C code (and maybe COBOL?), and perhaps embedded software I don't know any other place where you can find procedural code these days.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-14T00:58:23.230" CommentCount="5" />
  <row Id="26163" PostTypeId="2" ParentId="26152" CreationDate="2010-12-14T00:58:38.060" Score="4" ViewCount="" Body="&lt;p&gt;Interesting question! &lt;a href=&quot;http://www.imdb.com/title/tt0118971/quotes&quot; rel=&quot;nofollow&quot;&gt;http://www.imdb.com/title/tt0118971/quotes&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our world would benefit if more lawyers had technical background. Math, physics, Computer Science could help them stick to the KISS principle &lt;strong&gt;IF THEY WANTED TO&lt;/strong&gt;. Doing the right thing is often in conflict with self-interest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because da masses are pretty dumb on average, they allow the special interests groups to sleep with lawyers and create a beast that is impossible to read, which benefits the selected few.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being an idealist for a moment, the US constitution has many smart ideas. I feel like in today's world the founding fathers would have been decent programmers. The US constitution is lean and modular. There is a defined process for creating, managing law, and amending the constitution if necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately our legal system has grown to become more heinous that the emacs text editor. I bet that the healthcare bill contains a definition of a kitchen sink as well as refrigerator in it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While the making of the law was supposed to be a slow process, and it is, out laws have grown out of proportion. They are inconsistent with the founding principles and with each other. What is needed is an annual refactoring and code review process built into the system. Less is more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would take a technical mind with a lawyers training to be able to re-factor law effectively. However, this person must not be a dreamer. Think Milton Freedman, not his son &lt;a href=&quot;http://en.wikipedia.org/wiki/Anarcho-capitalism&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Anarcho-capitalism&lt;/a&gt; is not practical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interestingly enough, Milton's grandson is a software engineer with interesting ideas: &lt;a href=&quot;http://en.wikipedia.org/wiki/Patri_Friedman&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Patri_Friedman&lt;/a&gt;&#xA;What does economics have to do with law? A lot! And this is the problem: whoever takes up a herculean task of cleaning up the mess of the system that we have, has to think through law, economics, monetary theory, inflation, foreign policy, etc., etc. Getting it right in theory is difficult enough. Getting da masses to vote for you is a whole another game.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whereas Ron Paul is a doctor, more and more programmers are bound to enter a [political arena because there are so many of them now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am pessimistic still because there are many sloppy programmers, many who make mistakes. There are many PHDs in statistics who are still &lt;a href=&quot;http://en.wikipedia.org/wiki/Fooled_by_Randomness&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Fooled_by_Randomness&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our laws should be simplified and then treated as a space shuttle - e.g. if it ain't broken, don't fix it, and test it 100 times in a lab before you send it in production, and be paranoid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Speaking of space shuttles, they blew up in the past. It took someone as smart as Richard Feynman to figure out WHY they screwed up. It takes a kind genius to rewrite the laws well. How can we find one? How can we trust that person to do it right? How do we agree on things? How do we get people to give a damn? I am pessimistic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, here is a good read, which covers evidence-based politics in one or two chapters: &lt;a href=&quot;http://en.wikipedia.org/wiki/Super_Crunchers&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Super_Crunchers&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While the author had good ideas, he himself was fooled by randomness.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My conclusion: PEOPLE (INCLUDING ME) ARE STUPID AND WILL ALWAYS FIND 999 out of 1000 WAYS TO FVCK IT UP. THERE IS NO HOPE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next time please stick to smaller (in philosophical) questions.&lt;/p&gt;&#xA;" OwnerUserId="934" LastEditorUserId="934" LastEditorDisplayName="" LastEditDate="2010-12-14T02:42:15.907" LastActivityDate="2010-12-14T02:42:15.907" CommentCount="2" />
  <row Id="26164" PostTypeId="2" ParentId="26108" CreationDate="2010-12-14T01:00:18.297" Score="3" ViewCount="" Body="&lt;p&gt;I'm about to get flamed.... but here it goes:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I say study music, art, literature, politics, and history.  Study typography, color, biology, chemistry, math, photography, and argue with hippies about &quot;what art is&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The art of software developing is an art of pattern recognition.  It's much harder to recognize patterns if you spend your whole academic life looking at one thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just don't forget to write code 6-8 hours a day.&lt;/p&gt;&#xA;" OwnerUserId="4607" LastActivityDate="2010-12-14T01:00:18.297" CommentCount="1" />
  <row Id="26165" PostTypeId="2" ParentId="25969" CreationDate="2010-12-14T01:01:04.477" Score="1" ViewCount="" Body="&lt;p&gt;On a site like this you will find many developers tell you how they have Javascript disabled so you should support progressive enhancement. In reality of the 5% of people who have Javascript disabled, 90% of them are developers and other tech geeks, they are not the general public. Most major sites do not support progressive enhancement. Have you tried to use Facebook without Javascript? They basically say go away.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-12-14T01:01:04.477" CommunityOwnedDate="2011-05-26T14:08:09.500" />
  <row Id="26166" PostTypeId="2" ParentId="26160" CreationDate="2010-12-14T01:09:21.053" Score="0" ViewCount="" Body="&lt;p&gt;Large degree of concurrency = minimal time threads spend blocked waiting for another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some methods that can be clearly shown to be better for certain applications under certain situations.  But there is no algorithm that can be shown to have a larger degree of concurrency than another independent of all other factors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowing some of the factors can help you make a decision, however.  E.g.: You have a thread that reads from a buffer and performs some operations on the data, then repeats, and another thread that does something else.  If you know that 90% of the time there will be more data in the buffer by the time the reader has finished handling the old data, and that the average wait time for the other 10% is less than the time taken by a yield and context switch, then busy waiting is a perfectly good solution -- even though it's non-optimal in 99.9% of cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But how do you time this?  It's virtually impossible to do so accurately, because introducing code to do timing alters the timing.  You can do complexity analysis, but that won't get you very far -- most solutions are going to be the same time complexity.  Counting the number of operations also won't work when you're dealing with I/O and the like.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TL;DR There are rules of thumb but no exact answers.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastEditorUserId="9771" LastEditorDisplayName="" LastEditDate="2010-12-14T06:03:20.347" LastActivityDate="2010-12-14T06:03:20.347" CommentCount="2" />
  <row Id="26167" PostTypeId="1" AcceptedAnswerId="26187" CreationDate="2010-12-14T01:20:46.370" Score="5" ViewCount="123" Body="&lt;p&gt;So, I'm sitting here, chewing on a couple of novel data structures.  I'm thinking of coding them up, but I'ven't got any professional use for them at the moment.  Nonetheless, they solve interesting problems, and deserve reference implementations.  So, I'd like to publish them, ideally in a peer-reviewed journal, so there's at least an off-chance someone will run into them and get some use out of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I can't for the life of me figure out how I'd even start to go about such a process, and none of my old professors seem to be in a position to help.  Can I get a primer on how to go about getting something published in a moderately reputable journal?&lt;/p&gt;&#xA;" OwnerUserId="10011" LastEditorUserId="10011" LastEditorDisplayName="" LastEditDate="2010-12-14T02:38:28.677" LastActivityDate="2010-12-14T12:49:42.023" Title="Publishing: Hows and Whos of Peer Reviews" Tags="&lt;self-improvement&gt;&lt;computer-science&gt;&lt;fun&gt;" AnswerCount="3" CommentCount="4" FavoriteCount="5" />
  <row Id="26168" PostTypeId="2" ParentId="26155" CreationDate="2010-12-14T01:44:09.553" Score="5" ViewCount="" Body="&lt;p&gt;Object Oriented programming was designed to overcome certain limitations in procedural programming, but the benefits of OO programming are only really apparent in large projects that grow over time, and are maintained by multiple people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OO programming emphasizes extensibility and encapsulation.  In theory, extensibility should also promote code re-use, although in reality code re-use can still be difficult even with OO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall, it's difficult to say if OO is &quot;better&quot; than procedural programming.  For example, OO is absolutely pointless for trivial programs, and languages which force you to program under an OO paradigm just get in your way when you want to do something simple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But for large, ever expanding projects that need to be maintained over time, I find that OO usually delivers on its promise.  All you need to do is wade through the source code for a large C project to appreciate the benefits of OO.  Inevitably, the designers always resort to countless macro-infested hacks to try and emulate the built-in advantages of OO programming.&lt;/p&gt;&#xA;" OwnerUserId="7733" LastEditorUserId="7733" LastEditorDisplayName="" LastEditDate="2010-12-14T01:52:51.323" LastActivityDate="2010-12-14T01:52:51.323" />
  <row Id="26169" PostTypeId="2" ParentId="26155" CreationDate="2010-12-14T01:47:44.150" Score="0" ViewCount="" Body="&lt;p&gt;Object oriented programming is a code organization and abstraction technique. It is also an attempt to keep program state in close proximity to the operations that act on it.  Procedural programming often exposes implementation details to the world, such as the data structures and algorithms used.  OOP will usually hide such details and present an abstract interface.  Procedural code can be thought of as operations that act on data structures externally, whereas OOP code involves objects manipulating their own data.&lt;/p&gt;&#xA;" OwnerUserId="4949" LastActivityDate="2010-12-14T01:47:44.150" />
  <row Id="26170" PostTypeId="2" ParentId="57" CreationDate="2010-12-14T02:16:27.807" Score="1" ViewCount="" Body="&lt;p&gt;I used to use spaces, but I've been using tabs lately purely because that's what Eclipse was set to when I finally noticed. All of the other developers on my team use Eclipse, so it made sense to standardise on tabs when we realised we'd already been using them for ages and there was no reason to bother changing to spaces. I've been surprised by how much of a non-issue it has been.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Setting the displayed tab size to 3 or 5 characters in your IDE greatly simplifies distinguishing between code sections that are indented by spaces (almost always 4 these days) and those that are indented by tab.&lt;/p&gt;&#xA;" OwnerUserId="5071" LastActivityDate="2010-12-14T02:16:27.807" CommentCount="0" />
  <row Id="26171" PostTypeId="2" ParentId="18551" CreationDate="2010-12-14T02:17:28.983" Score="4" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Warning&lt;/em&gt;:  this answer is very long and has a lot of psychobabble (which I try to explain, but still).  What can I say?  Psychology is one of my favorite subjects outside programming.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I'm an artist, mostly, though I describe myself as a artist/physicist. While I can do math, deal with words, and the &quot;logical&quot; stuff considered left-brain, it's an effort and I make mistakes, whereas I do well with and most of the time think in terms of those things associated with right-brain thinking - spatial relations, holistic big-picture context, etc. Of course all that is fuzzy, as the right-left brain theory is oversimplified and no mental activity is so simple. Yet I do sense that I fit in fine with artists, video directors, chefs, and other non-verbal thinking, creative types, while most people in &quot;IT&quot; or hardcore software engineers have minds that work differently, with attention to detail, holding many details in mind at one time, and strong rational and verbal capabilities.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is actually based on a somewhat outdated view of neuroscience.  At one point in time, scientists believed that the left brain was only responsible for logic and raw sensory data while the right brain was solely responsible for intuition and feeling.  As it turns out, the left brain is really capable of everything the right brain is and vice versa.  As someone who is &lt;em&gt;extremely&lt;/em&gt; right-brained yet logical, terrible with directions and spatial orientation, and completely devoid of any of the artistic creativity that is traditionally associated with the right brain, I can attest to this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best way to think of the difference between the left and right brain is to think of them as mirror images of each other.  To understand this, you need some background data.  A psychologist named Carl Jung came up with a personality theory in the 20s that divided up personality along a couple of dimensions.  You've probably heard of one of them: introversion vs extraversion.  I've written a &lt;a href=&quot;http://jasonmbaker.com/caring-for-your-extravert&quot; rel=&quot;nofollow&quot;&gt;couple&lt;/a&gt; &lt;a href=&quot;http://jasonmbaker.com/really-caring-for-your-introvert&quot; rel=&quot;nofollow&quot;&gt;blogposts&lt;/a&gt; on this subject, but it basically boils down to this:  introversion differentiates itself from others while extraversion focuses on how it can connect to others.  This is referred to as an &quot;attitude&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you have four different cognitive functions:  thinking, feeling, sensation, and intuition.  For simplicity's sake, let's just say that two of these functions are considered &quot;judging&quot; functions (thinking and feeling) while the other two are &quot;perceiving&quot; functions.  The judging functions make decisions.  When you're in a judging mindset, you are trying to avoid surprises.  You want to have made all of the right decisions beforehand so you don't have to adapt when surprises come along.  Because you've done so much planning in advance, you may have a tendency to become rigid and inflexible once a decision has been made.  On the other hand, a perceiving mindset tends to prefer flying by the seat of its pants and rolling with the punches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally, you combine the function and an attitude to create a (creatively named) function-attitude (introverted thinking, extraverted feeling, etc).  Peoples' conscious personalities are defined mostly by a dominant function-attitude and an auxiliary function-attitude.  Eventually, psychologists came to a consensus that there are broadly two types of people:  people whose primary two functions consist of an introverted judging function and an extraverted perceiving function, or people whose primary two functions consist of an extraverted judging function and an introverted perceiving function.  If you've ever taken the MBTI or similar personality test, the last letter tells you which category you fall into.  If you're a P, it means you're an introverted judger/extraverted perceiver and J is the other way around.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still with me thus far?  Here's where I get to what I meant by the two sides being mirror images of each other.  Nobody realized it at the time, but they were essentially building a sketch of where functionality lies in the brain.  Indeed, each of Jung's function-attitudes has been mapped to a rough location in the brain.  As it turns out, all of the P functions (introverted judging and extraverted perceiving) are on the right side of the brain and the J functions are on the left side of the brain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whenever you say that left-brained people are good at details and right-brained people are good at the &quot;big picture&quot; (although I would say &quot;whole picture&quot; would be more accurate), you're focusing on the extraverted side of things.  If a left-brained person manages a right-brained person, the lefty is going to want to know all the details about how the righty is going to do their job up front and in advance.  They want the requirements set in stone and hard deadlines decided in advance.  The righty just wants a very broad idea of what they need to do so they can fill in the details later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, note that this isn't doesn't seem to be what you are experiencing.  It seems as though the lefties' code probably wasn't terribly well thought out in advance and has some issues that could have been prevented by some forethought.  This is because when you build abstract models of things like code in your head, you're using your &lt;em&gt;introverted&lt;/em&gt; function, which works the other way around.  The righty wants to build that model in advance and do so in such a manner that it fills in all the necessary details or easily &lt;em&gt;can&lt;/em&gt; fill in all the details.  Plus, they might become rigid in terms of the best approach to take (note that you're taking a hard line on how you feel about C++'s more advance features).  The lefties' model will be more ad hoc and filled in as they go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My experience is that because of this, the lefties will accuse the righties of over-engineering everything while the righties will accuse the lefties of being too quick and dirty.  Both sides have a grain of truth to them, but only when that approach is taken to the extreme.  Here's what's funny though:  they're taking opposite approaches to achieve the same goal (that is, getting things done).  The righties want to have their model decided upon up front so they can spend less time implementing the thing and therefore getting the entire project done sooner.  The lefties want to spend less time architecting so they can get things done sooner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Incidentally, these two attitudes are reversed when it comes to project management type stuff (determining timelines, coming up with requirements, etc).  This can lead to a really confusing situation where one side is accusing the other of being too rigid while the other claims that the other side isn't planning ahead enough, and then the next argument has both sides taking the exact opposite stance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What can you do about all of this?  Nothing other than being aware of these differences and trying to accomodate the other side's view as much as possible.  The problem though is that this goes both ways.  You can understand and accomodate the lefties as much as possible, but that won't make much difference unless they're trying to return the favor.  This is always the challenge.  Not because the lefties are assholes and want to make the righties' lives miserable, but because the lefties are used to being dominant in the field of programming.  If your way of thinking was echoed by pretty much everyone else, you'd be pretty convinced you're correct too.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-14T02:17:28.983" CommentCount="2" />
  <row Id="26172" PostTypeId="2" ParentId="26155" CreationDate="2010-12-14T02:28:07.250" Score="2" ViewCount="" Body="&lt;p&gt;in procedural programming, control-flow determines state changes; the primary mode of encapsulation is functions and subprograms; data structures may or may not be supported&lt;/p&gt;&#xA;&#xA;&lt;p&gt;object-oriented programming unifies state and behavior into a single module; communication (message) patterns determine state changes&lt;/p&gt;&#xA;&#xA;&lt;p&gt;there is no &quot;better&quot;, they're just tools&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-14T02:28:07.250" />
  <row Id="26173" PostTypeId="2" ParentId="26151" CreationDate="2010-12-14T02:34:30.537" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I'd separate Scrum from Kanban first.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With Kanban - &lt;a href=&quot;http://agilemanagement.net/index.php/Blog/the_principles_of_the_kanban_method/&quot; rel=&quot;nofollow&quot;&gt;and here's a pretty good source on how to do it right&lt;/a&gt; - the principle is that you respect the exiting process when you start.  Kanban is not what you replace the existing process with, but what you apply to it.  Map it out, visualize, and set up certain conditions for gradual improvement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scrum is fundamentally different in the sense that it is something that is going to displace the existing process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A team that is used to 12-month (or longer) waterfall SDLC cycles is going to have a very hard time transitioning to Scrum.  Gradual shortening of the cycle to 6- or 3-month waterfall cycles with smaller scope could be a useful intermediate step.&lt;/p&gt;&#xA;" OwnerUserId="464" LastActivityDate="2010-12-14T02:34:30.537" />
  <row Id="26174" PostTypeId="2" ParentId="26152" CreationDate="2010-12-14T02:39:36.710" Score="2" ViewCount="" Body="&lt;p&gt;The best programming practices to apply in law - in my opinion - would be  &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(1) testability and  &#xA;(2) life-cycle management. &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(1) if a law is passed for a specific purpose, the law should include a test to measure (objectively, one would hope) whether the intended effect was achieved (and at what cost)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(2) laws are created with wild abandon, but rarely repealed. Each law should have a time-to-live, and require that is pass its tests plus explicit renewal to continue in force.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, we pass a law A to address Dire Situation X. It includes tests A1-A9 to measure its effect and calculate its actual cost. Law A expires in one year. At the end of the first year, we find that it fails all 9 tests, and costs 100 times what it was projected to cost. We let the law expire, and find another way to address Dire Situation X. Alternately, we may find that tests A3 and A7 pass (seem to have the desired effect) while A1 and A2 actually made things worse. So the law is altered to eliminate all provisions except those that support A3 and A7, and we let it run for another year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Laws are in some ways like programs, in that they are rules that change the behavior of a system. The nature of the system is &lt;em&gt;not&lt;/em&gt; similar to a deterministic computing machine, however. People can and will mess things up. Sometimes on purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specific examples abound, but are out of scope here -  that would just lead to a long rant about unintended consequences, the tendency of bureaucracies to grow regardless of performance, and other non-programming-related things.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-14T02:39:36.710" CommentCount="3" />
  <row Id="26175" PostTypeId="2" ParentId="26137" CreationDate="2010-12-14T02:47:34.347" Score="0" ViewCount="" Body="&lt;p&gt;there are two kinds of prototyping - three, actually:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;we build prototypes to refine the design and reduce risks before starting the &quot;real&quot; coding (Engineering)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;we build the project as a series of refined prototypes (Agile)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;we build a prototype and ship it as soon as it works (Cowboy)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-14T02:47:34.347" />
  <row Id="26176" PostTypeId="2" ParentId="26167" CreationDate="2010-12-14T02:50:49.650" Score="3" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;research the market; see if it's been done before, and how your ideas are different. Part of this research will help you figure out what journals may be interested in the topic, based on similar things they've published in the past. &lt;a href=&quot;http://citeseerx.ist.psu.edu/&quot; rel=&quot;nofollow&quot;&gt;Citeseerx&lt;/a&gt; is an awesome academic journal search tool.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;if the project is still a go, write the paper in the style of the journal you've selected to target&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;send it to them&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;wait&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;edit as directed&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;???&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Profit!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-14T02:50:49.650" />
  <row Id="26177" PostTypeId="2" ParentId="26137" CreationDate="2010-12-14T02:53:34.217" Score="0" ViewCount="" Body="&lt;p&gt;What you are looking for is called the spec - you can read a description of that here in one of Joel's articles&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000035.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/fog0000000035.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8652" LastActivityDate="2010-12-14T02:53:34.217" />
  <row Id="26178" PostTypeId="2" ParentId="26167" CreationDate="2010-12-14T02:57:12.127" Score="0" ViewCount="" Body="&lt;p&gt;I can't think of a moderately reputable journal of programming science, the web seems to be the primary communication channel for such stuff. For peer review, you could for instance post your idea on Stack Overflow, you won't find a lot of other places with more qualified peers ready to burn their time.&lt;/p&gt;&#xA;" OwnerUserId="8737" LastActivityDate="2010-12-14T02:57:12.127" CommentCount="6" />
  <row Id="26179" PostTypeId="1" AcceptedAnswerId="26186" CreationDate="2010-12-14T03:08:05.207" Score="16" ViewCount="659" Body="&lt;p&gt;I asked a question yesterday &lt;a href=&quot;http://programmers.stackexchange.com/questions/25969/should-i-bother-to-develop-for-javascript-disabled/25996#25996&quot;&gt;Should I Bother to Develop For JavaScript Disabled?&lt;/a&gt;. I think the consencus is: Yes, I should develop for JavaScript Disabled. Now I just want to understand why users disable JS. It seems many developers (I guess people who answered the questions are developers) disable JS. Why is that. Why do users disable JS? For security? Speed? or what?&lt;/p&gt;&#xA;" OwnerUserId="526" LastActivityDate="2011-05-29T13:11:50.820" Title="Why do people disable JavaScript?" Tags="&lt;web-development&gt;&lt;javascript&gt;" AnswerCount="9" CommentCount="5" FavoriteCount="3" />
  <row Id="26180" PostTypeId="1" CreationDate="2010-12-14T03:09:18.217" Score="6" ViewCount="258" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/23691/why-are-more-programmers-not-freelance-these-days&quot;&gt;Why are more programmers not freelance these days?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I realize there are a couple similar questions already posted, but I wanted to ask this from a different angle. With the world economy the way it is and many even having trouble finding regular 9-to-5 jobs, how viable is freelancing as a programmer these days compared to, say 1 or 3 or 7 years in the past? What would you tell someone starting to freelance in the current market?&lt;/p&gt;&#xA;" OwnerUserId="10016" LastActivityDate="2010-12-14T09:03:59.757" ClosedDate="2010-12-14T20:28:23.377" Title="Viability of freelancing these days" Tags="&lt;career&gt;&lt;jobs&gt;&lt;freelance&gt;&lt;freelancing&gt;&lt;economics&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="1" />
  <row Id="26181" PostTypeId="2" ParentId="26030" CreationDate="2010-12-14T03:09:54.843" Score="0" ViewCount="" Body="&lt;p&gt;The best single nugget of career advice I've ever heard is: &quot;Companies are not your friends.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What this means is basically that I agree with most of the other replies here - that you don't owe them anything more than what your contract stipulates. It's just business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, it's just common sense not to deliberately and maliciously drop the project on the floor in the middle of a very critical phase, if you can at all avoid it. But this really comes down to your rapport with your boss, the nature of the project, and your own perception of how big a mess your leaving will cause. There are no hard and fast rules.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-12-14T03:09:54.843" />
  <row Id="26182" PostTypeId="2" ParentId="26179" CreationDate="2010-12-14T03:11:59.990" Score="-1" ViewCount="" Body="&lt;p&gt;My experience is most developers cite security. If you are worried about Javascript security you better never leave home.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-12-14T03:11:59.990" CommentCount="8" />
  <row Id="26183" PostTypeId="2" ParentId="26030" CreationDate="2010-12-14T03:19:29.137" Score="0" ViewCount="" Body="&lt;p&gt;Contract period. Many contracts stipulate 12 weeks of notice as well, so it depends on what your contract is. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The contract will be more or less designed by the business need. Anything more you do will be a favour to the company. Anything less you do will be a favour from the company to you. &lt;/p&gt;&#xA;" OwnerUserId="8652" LastActivityDate="2010-12-14T03:19:29.137" CommentCount="4" />
  <row Id="26184" PostTypeId="2" ParentId="26179" CreationDate="2010-12-14T03:20:19.030" Score="6" ViewCount="" Body="&lt;p&gt;I disable JS for speed reasons. TechCrunch without JavaScript takes a few seconds to load with a primed cache. With JavaScript it takes almost 20 seconds, more if the cache isn't primed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lots of sites have become bloated with JavaScript, especially image galleries and commerce sites. Removing this gives you a better browsing experience in most cases.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-14T03:20:19.030" />
  <row Id="26185" PostTypeId="1" CreationDate="2010-12-14T03:29:46.957" Score="4" ViewCount="117" Body="&lt;p&gt;Do web design freelancers (I'm thinking individuals, not companies) typically do all development &lt;em&gt;and&lt;/em&gt; design work themselves? What are the options for those with a strong base in back-end web development but less with web design, color schemes, layouts, graphic design, etc.?&lt;/p&gt;&#xA;" OwnerUserId="10016" LastActivityDate="2010-12-14T05:37:44.150" Title="Freelance web development vs. design" Tags="&lt;web-development&gt;&lt;design&gt;&lt;freelance&gt;&lt;graphics&gt;" AnswerCount="4" />
  <row Id="26186" PostTypeId="2" ParentId="26179" CreationDate="2010-12-14T03:31:07.213" Score="25" ViewCount="" Body="&lt;p&gt;One disables JavaScript in a browser environment because of the following considerations:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Speed &amp;amp; Bandwidth&lt;/li&gt;&#xA;&lt;li&gt;Usability &amp;amp; Accessibility&lt;/li&gt;&#xA;&lt;li&gt;Platform Support&lt;/li&gt;&#xA;&lt;li&gt;Security&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;Speed &amp;amp; Bandwidth&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;A lot of applications use way too much JavaScript for their own good... Do you need parts of your interface to be refreshed by AJAX calls all the time? Maybe your interface feels great and fast when used with a broadband connection, but when you have to downgrade to slower connection speeds, a more streamlined interface is preferred. And switching off JavaScript is a good way of preventing dumb-struck web-apps of refreshing the world every 15 seconds or so for no good reason. (Ever looked at the amount of data Facebook sends through? It's scary. It's not only a JS-related issue though, but it's part of it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We also tend to off-load more and more of the processing to the client, and if you use minimalistic (or just outdated) hardware, it's painfully slow.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Usability &amp;amp; Accessibility&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Not all user interfaces should expressed in a dynamic fashion, and server-generated content &#xA;might be perfectly acceptable in many cases. Plus, some people simply don't want this type of interfaces. You cannot please everybody, but sometimes you have the chance to and the duty to satisfy all your users alike.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, some users have disabilities, and &lt;em&gt;thou shalt not ignore them&lt;/em&gt;, ever!!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The worst-case scenarios here, in my opinion, are government websites that try to &quot;modernize&quot; their UIs to appear more friendly to the public, but end up leaving behind a big chunk of their intended audience. Similarly, it's a pity when a university student cannot access his course's content: because he/she is blind and his screen-reader doesn't support the site, or because the site is so heavy and requires ad-hoc modern plug-ins that he/she doesn't get to install on that refurbished laptop bought on e-bay 2 years ago, or again because he/she goes back home to another country for the spring break and the local bandwidth constraints cannot cope with the payload of the site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not everybody lives in a perfect world.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Platform Support&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;This point relates to the 2 previous ones and tends to be less relevant nowadays, as browsers embed JavaScript engines that are a level of magnitude more efficient than they used to be, and this keeps getting better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there's no guarantee that all your users have the privilege of using modern browsers (either because of corporate constraints - which force us to support antediluvian browsers for no good reason, really - or other reasons which may or may not be valid). As mentioned by &quot;Matthieu M.&quot; in the comments, you need to remember that a lot of people still use lower-quality hardware, and that not everybody uses the latest and coolest smartphone. As of today, there are still a significant portion of people using phones that have embedded browsers with limited support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, as I mentioned, things do get better in this area. But then you still need to remember the previous points about bandwidth limitations if you keep polling very regularly (or your users will enjoy a nice phone bill).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's all very inter-related.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Security&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;While obviously you could think that nothing particularly dangerous can be done with JavaScript considering it runs in a browser environment, this is totally untrue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You do realize that when you visit P.SE and SO you are automatically logged in if you were logged on any other network, right? There's some JS in there. That bit is still harmless though, but it uses some concepts that can be exploited by some malevolent sites. It is completely possible for a website to use JavaScript to gather information about some things you do (or did) during your browsing session (or the past ones if you don't clear your session data every time you exit your browser or run the now common incognito/private browsing modes extensively) and then just upload them to a server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recent vulnerabilities (working in major browsers at the time) included the ability to &lt;a href=&quot;http://www.browser-watch.com/2010/07/23/safari-autofill-vulnerability/&quot; rel=&quot;nofollow&quot;&gt;gather your saved input forms data&lt;/a&gt; (by trying out combinations for you on a malevolent page and recording the suggested texts for each possible starting letter combinations, &lt;a href=&quot;http://jeremiahgrossman.blogspot.com/2010/07/i-know-who-your-name-where-you-work-and.html&quot; rel=&quot;nofollow&quot;&gt;possibly telling attackers who you are, where you work and live&lt;/a&gt;) or to &lt;a href=&quot;http://www.digitaljournal.com/article/301163&quot; rel=&quot;nofollow&quot;&gt;extract your browsing history&lt;/a&gt; and habits (&lt;a href=&quot;http://cseweb.ucsd.edu/~hovav/dist/history.pdf&quot; rel=&quot;nofollow&quot;&gt;A very clever hack doing something as simple as injecting links into the page's DOM to match the color of the link and see if it's been visited&lt;/a&gt;. You just need to do this on a big enough table of known domain names. And your browser getting faster at processing JavaScript, this type of thing gets done quickly.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus let's not forget that if your browser's security model is flawed, or the websites you visit don't protect themselves when enough against XSS attacks, then one might use JavaScript to simply tap into your open sessions on remote websites.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;JavaScript is mostly harmless... if you use it for trusted websites. Gmail. Facebook (maybe... and not even...). Google Reader. StackExchange.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But yeah sure, JavaScript cannot be that bad, right? And there are scarier things to fear online anyway. &lt;a href=&quot;https://panopticlick.eff.org/browser-uniqueness.pdf&quot; rel=&quot;nofollow&quot;&gt;Like thinking you're anonymous when you really aren't that much&lt;/a&gt;, as shown by the &lt;a href=&quot;https://panopticlick.eff.org/&quot; rel=&quot;nofollow&quot;&gt;Panopticlick&lt;/a&gt; experiment of the &lt;a href=&quot;https://www.eff.org/&quot; rel=&quot;nofollow&quot;&gt;EFF&lt;/a&gt;. Which is also partly done using JavaScript. You can even read their &lt;a href=&quot;https://panopticlick.eff.org/self-defense.php&quot; rel=&quot;nofollow&quot;&gt;reasons to disable JavaScript to avoid browser fingerprinting&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;All this being said, there might be perfectly good situations where you don't need to bother about supporting JavaScript. But if you offer a public-service website, do consider accepting both types of clients. Personally, I do think a lot of modern web-apps and websites would work just as well using the former server-generated content model with no JavaScript at all on the client side, and it would still be great and possibly a lot less consuming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your mileage may vary depending on your project.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2011-05-29T13:11:50.820" LastActivityDate="2011-05-29T13:11:50.820" CommentCount="20" />
  <row Id="26187" PostTypeId="2" ParentId="26167" CreationDate="2010-12-14T03:37:26.710" Score="2" ViewCount="" Body="&lt;p&gt;In computer science, you generally don't immediately send something to a journal. Instead, you find a conference that is relevant to your problem, and send them a write-up of your findings (usually 2-3 pages, check the papers of the last year's conference for length and style of writing). Ideally, the conference papers are peer-reviewed, so that you get at least 1-2 useful comments on your work. Then you go to the conference, and present your work. This ensures that your ideas are being spread to the people who are most likely to be interested in your work, and who are experts enough that you get a lot more interesting/useful feedback.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, if your ideas are well-received, and if you really want to have a publication in a journal, you can submit your longer and more detailed write-up there, but be patient. You will likely have to wait a while for referee comments, and then you might have to do some additional work - if the paper is not rejected, which means that you'll start over with another journal.&lt;/p&gt;&#xA;" OwnerUserId="8957" LastEditorUserId="8957" LastEditorDisplayName="" LastEditDate="2010-12-14T12:49:42.023" LastActivityDate="2010-12-14T12:49:42.023" CommentCount="2" />
  <row Id="26188" PostTypeId="1" AcceptedAnswerId="26343" CreationDate="2010-12-14T03:53:22.363" Score="3" ViewCount="139" Body="&lt;p&gt;I'm currently revising a number of document templates for my company. One thing we've never had is a formal Architecture Specification, so I'm starting to put one together. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What sort of things do you put into your architecture specs? Feel free to copy and paste a table of contents - that would be helpful. Are there any good templates already available on the web? &lt;/p&gt;&#xA;" OwnerUserId="8400" LastActivityDate="2010-12-14T14:43:02.660" Title="What do you put into an Architecture Specification?" Tags="&lt;documentation&gt;&lt;architecture&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="26189" PostTypeId="2" ParentId="25857" CreationDate="2010-12-14T03:55:18.010" Score="0" ViewCount="" Body="&lt;p&gt;I came up with the finally broad areas to ask about - &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Noise level? &lt;/li&gt;&#xA;&lt;li&gt;Artificial light? &lt;/li&gt;&#xA;&lt;li&gt;Natural light? &lt;/li&gt;&#xA;&lt;li&gt;Temperature? &lt;/li&gt;&#xA;&lt;li&gt;Desk space? &lt;/li&gt;&#xA;&lt;li&gt;Shelf space? &lt;/li&gt;&#xA;&lt;li&gt;Working area?&lt;/li&gt;&#xA;&lt;li&gt;Whiteboards? &lt;/li&gt;&#xA;&lt;li&gt;Plants? &lt;/li&gt;&#xA;&lt;li&gt;Meeting room availability? &lt;/li&gt;&#xA;&lt;li&gt;Interruptions? &lt;/li&gt;&#xA;&lt;li&gt;Toilets?&lt;/li&gt;&#xA;&lt;li&gt;Water coolers?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8400" LastActivityDate="2010-12-14T03:55:18.010" />
  <row Id="26190" PostTypeId="2" ParentId="26179" CreationDate="2010-12-14T04:00:10.587" Score="3" ViewCount="" Body="&lt;p&gt;Because browsers used to have slow JavaScript implementations and too many n00b web designers just used it for irrelevant things like button rollovers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a fast machine, with a modern browser, nobody in their right mind disables it all the time.  Which is not to say there aren't plenty of very &quot;security conscious&quot; people and others without the funds, desire, or know-how to be running a modern browser on a fast computer...  It was only recently that IE6 stopped being the most popular browser on the internet!&lt;/p&gt;&#xA;" OwnerUserId="8467" LastActivityDate="2010-12-14T04:00:10.587" CommentCount="1" />
  <row Id="26191" PostTypeId="1" AcceptedAnswerId="26203" CreationDate="2010-12-14T04:02:15.840" Score="8" ViewCount="521" Body="&lt;p&gt;I really want to ask this questions to my fellow developers here in Programmers.SE because i am hiring freshers for my company.. Even though i know some basic questions that can be asked to a fresher during interview and i want to know,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the skills you look for when hiring a fresher/newbie for developement? &lt;/p&gt;&#xA;" OwnerUserId="1522" LastEditorUserId="4711" LastEditorDisplayName="" LastEditDate="2010-12-16T23:00:09.520" LastActivityDate="2010-12-17T09:40:36.487" Title="What are the skills you look for when hiring a fresher/newbie for developement?" Tags="&lt;career&gt;&lt;skills&gt;&lt;freshers&gt;" AnswerCount="9" CommentCount="6" />
  <row Id="26192" PostTypeId="2" ParentId="26179" CreationDate="2010-12-14T04:02:47.990" Score="6" ViewCount="" Body="&lt;p&gt;I am not a web developer, and I have only a moderate understanding of the way the internet works. So this is an answer from a &lt;em&gt;user&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My experience leads me to believe many sites are simply poorly coded, whether out of laziness or ignorance: When I would view a basically &lt;em&gt;static&lt;/em&gt; web page, such as a Facebook page, my CPU usage would increase by something like 15%, and drastically more with multiple tabs. Eventually it got to the point where I would have to wait for a response after clicking a button or link and my CPU would overheat and lock up. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On many of these worst offenders (sites), nothing visible is changing and nothing interactive is happening. I could only suppose the site's code was constantly making excessive refreshes, polls, and endless loops.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This drove me to install &lt;a href=&quot;http://noscript.net/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;NoScript&lt;/strong&gt;&lt;/a&gt; to free my &lt;strong&gt;CPU usage&lt;/strong&gt; and stop browsing from becoming a frustrating chore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other wonderful add-on I use is &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/433&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;FlashBlock&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2515" LastEditorUserId="2515" LastEditorDisplayName="" LastEditDate="2010-12-14T04:08:03.090" LastActivityDate="2010-12-14T04:08:03.090" CommentCount="2" />
  <row Id="26193" PostTypeId="2" ParentId="26185" CreationDate="2010-12-14T04:19:56.063" Score="2" ViewCount="" Body="&lt;p&gt;Some people do try and do both.. and in most cases I have seen they do one well and the other... not so much.  Designing and Programming generally take two different types of people.  Often I've seen designers subcontract the programming work and focus on the designing aspects. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I consider myself formost a programmer.  I understand the basic aspects of designing web pages but I would rather let somone else deal with those details.&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-12-14T04:19:56.063" />
  <row Id="26194" PostTypeId="2" ParentId="16689" CreationDate="2010-12-14T04:21:15.100" Score="0" ViewCount="" Body="&lt;p&gt;Work at a pace you can keep up until the end.  Sacrificing your health not only is bad for you, but it is actually bad for the company, too.  The goal is to climb the whole mountain, not break your ankle sprinting the first 1,000 meters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to acknowledge reality.  At some point you might have to be willing to say &quot;no&quot;: the world will not stop spinning if the project fails...&lt;/p&gt;&#xA;" OwnerUserId="8467" LastEditorUserId="8467" LastEditorDisplayName="" LastEditDate="2010-12-14T04:33:48.733" LastActivityDate="2010-12-14T04:33:48.733" />
  <row Id="26195" PostTypeId="2" ParentId="26155" CreationDate="2010-12-14T04:23:39.227" Score="2" ViewCount="" Body="&lt;p&gt;Every approach has it's own merits and demerits. So the best approach is subjective. I have written applications using OO languages and procedural languages like C and I find both can produce maintainable and extensible code. It's the architecture and design approaches that you follow matters. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From my personal experience, It takes more time to understand OO code than a procedural code because OO code will have lot of abstractions and indirections. On the other hand, a C code has very less abstraction and you can read the code as a series of steps. Implementation of all the design patterns makes OO code really worse. This is not a problem of OO, but a problem of how you use it. &lt;a href=&quot;http://www.catb.org/~esr/&quot; rel=&quot;nofollow&quot;&gt;Eric Raymond&lt;/a&gt; tells the following in his &lt;a href=&quot;http://www.faqs.org/docs/artu/unix_and_oo.html&quot; rel=&quot;nofollow&quot;&gt;Art of unix programming&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;All OO languages show some tendency to&#xA;  suck programmers into the trap of&#xA;  excessive layering. Object frameworks&#xA;  and object browsers are not a&#xA;  substitute for good design or&#xA;  documentation, but they often get&#xA;  treated as one. Too many layers&#xA;  destroy transparency: It becomes too&#xA;  difficult to see down through them and&#xA;  mentally model what the code is&#xA;  actually doing. The Rules of&#xA;  Simplicity, Clarity, and Transparency&#xA;  get violated wholesale, and the result&#xA;  is code full of obscure bugs and&#xA;  continuing maintenance problems.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3998" LastActivityDate="2010-12-14T04:23:39.227" CommentCount="1" />
  <row Id="26196" PostTypeId="2" ParentId="26188" CreationDate="2010-12-14T04:28:16.307" Score="2" ViewCount="" Body="&lt;p&gt;How often do you see your architecture changing? Will your team religiously update the document with each refactor/new feature? Will the document last the lifetime of the project? How big is your team? Who is the audience? To what detail do you want to document?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, a team's formal architectural documents tend to fall by the wayside very quickly. When everyone on the team knows each other and the team is small, I tend to avoid these documents. They get out of date and lead new developers astray. Documents are eeevil. A solid team that openly communicates with each other trumps formal architecture docs any day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At some point such person-to-person communication cannot scale. You must now correctly chose the level of &lt;s&gt;eeevil&lt;/s&gt; documentation that applies to the size and scope of your project. Remember too much formality will mean changing the documents becomes too cumbersome. So much detail may be documented that maintaining the documents becomes onerous. You get out of date docs that stay out of date too long. Too little formality means that the team in Seatle has no idea what's going on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Medium sized teams could do well with just a wiki. Very large teams may wish to have full-time documentation staff that assist in maintaining extremely formal documentation.  At this point, documentation should be more than a convenience and the team should make it mandatory.&lt;/p&gt;&#xA;" OwnerUserId="980" LastActivityDate="2010-12-14T04:28:16.307" />
  <row Id="26197" PostTypeId="2" ParentId="26191" CreationDate="2010-12-14T04:29:01.517" Score="1" ViewCount="" Body="&lt;p&gt;I mostly check for basic programming skills and look for good aptitude. For Aptitude you can ask them to solve them some basic mathematical problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I strongly believe that a only good maths guy can be good programmer. If someone's maths is weak he cannot ever ship good code or write good algorithms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Freshers with these basic qualities can be trained and made productive in no time.&lt;/p&gt;&#xA;" OwnerUserId="10018" LastActivityDate="2010-12-14T04:29:01.517" CommentCount="1" />
  <row Id="26198" PostTypeId="2" ParentId="25276" CreationDate="2010-12-14T04:36:59.350" Score="0" ViewCount="" Body="&lt;p&gt;Because what looks like &lt;em&gt;cleverness&lt;/em&gt; to a developer in a burst of creativity can simply pass as &lt;em&gt;mess&lt;/em&gt; and just be an &lt;em&gt;unreadable&lt;/em&gt;, &lt;em&gt;unmaintainable&lt;/em&gt; block of &lt;em&gt;obscure riddles&lt;/em&gt; for others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, a nice, clever, well-performing block of riddles, but if you have the experience, you'll often realize that it will cost your business (not you, the developer) at lot more to maintain that thing on the medium- or long-term. So you prefer to calm the ardor of your fellow developers when they get carried.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Except, of course, if there's a justification for the cleverness. And if there's a good documentation that comes along with the obfuscated thing you just wrote. You did comment that clever piece of code, right? Explain it's intent, why it needs to be like, and how it behaves?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there's no justification, then it's probably just either premature optimization, over-engineering, or a YAGNI kind of problem. If it takes 15 levels of indirection to do something simple, then there's a good chance you fall under of the previous categories as well. And if it's not documented, then it's just trouble.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Great code shouldn't require the maintainer to be at 100% all the time to understand it. &#xA;Good code is clever. Great code can be almost as efficient, but better in many other aspects. Great code shouldn't require an IDE with 15 views to follow your application's design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Note: hey, I've written a few stuff I thought to be clever but that drew WTF? out of - if not my co-developers' - my manager's mouth. Have to look at it from their perspective.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-12-14T04:36:59.350" CommunityOwnedDate="2011-01-08T19:36:34.897" CommentCount="1" />
  <row Id="26199" PostTypeId="2" ParentId="26191" CreationDate="2010-12-14T04:46:59.400" Score="0" ViewCount="" Body="&lt;p&gt;Hiring someone fresh out of school is a mixed bag: university is so different than production coding, that unless the potential hire has a long record of open source contribution to show off, there's no telling if he or she will adapt to the real world, let alone how.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The up side is that one gets to introduce that newbie to real-world coding and (hopefully) mold him or her into a useful sort of coder.  &lt;em&gt;That&lt;/em&gt; is what I have in mind when evaluating this type of candidate.  I look for one who:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;has pursued opportunities to better his/her craft outside of school requirements, whether in the form of open source contributions (preferable) or personal hobby coding&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;has a logical way of approaching problems&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;groks hacker culture (or, for bosses other than me, the particular corporate culture the person is being hired in)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;is not just intelligent, but also engaged&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;responds well to correction/criticism and generally isn't someone who's ego I need to protect&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;knows how to learn on the fly, and learn independently&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-14T04:46:59.400" />
  <row Id="26200" PostTypeId="2" ParentId="26191" CreationDate="2010-12-14T04:47:57.073" Score="2" ViewCount="" Body="&lt;p&gt;For me following three are important - &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Loyalty&lt;/strong&gt; : All things can be taught to loyal people. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Commitment&lt;/strong&gt; : Does he think Job as a Mission or Drudgery. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integrity&lt;/strong&gt; : Values shape up all other skills, to differentiate one works hard to acquire rest of the skills. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;About Programming, I think the following things matter:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Problem Solving Skills (Aptitude) &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;In depth Knowledge of Programming languages&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Experience in atleast one Project in a specific language&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A good(atleast OKAY) record while pursuing Computer Science(or equivalent) education.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4522" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-12-14T06:35:12.047" LastActivityDate="2010-12-14T06:35:12.047" CommentCount="1" />
  <row Id="26201" PostTypeId="2" ParentId="26076" CreationDate="2010-12-14T04:49:21.537" Score="7" ViewCount="" Body="&lt;p&gt;How can we forget &lt;a href=&quot;http://www.wireshark.org/&quot; rel=&quot;nofollow&quot;&gt;WireShark&lt;/a&gt; and &lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=983b941d-06cb-4658-b7f6-3088333d062f&amp;amp;displaylang=en&quot; rel=&quot;nofollow&quot;&gt;Netmon&lt;/a&gt; . Using these tools to dissect into the network packets , it's just awesome while comparing your software  with other working softwares, like how they are sending data, the protocols being used and the verbs being passed ;)&lt;/p&gt;&#xA;" OwnerUserId="2167" LastActivityDate="2010-12-14T04:49:21.537" />
  <row Id="26202" PostTypeId="2" ParentId="26179" CreationDate="2010-12-14T04:50:25.530" Score="5" ViewCount="" Body="&lt;p&gt;For me it all about security.  I use noscript to allow certain websites to run javascript, while disallowing most.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end you really never know where the danger lies (&lt;a href=&quot;http://www.techspot.com/news/40884-mozilla-firefox-flaw-exploited-on-nobel-prize-website.html&quot; rel=&quot;nofollow&quot;&gt;nobel web site infected on techspot.com&lt;/a&gt;).  Many zero-day (and other) exploits use javascipt; closing this one avenue of attack feels like a step in the right direction.&lt;/p&gt;&#xA;" OwnerUserId="6513" LastEditorUserId="6513" LastEditorDisplayName="" LastEditDate="2010-12-14T14:24:42.940" LastActivityDate="2010-12-14T14:24:42.940" CommentCount="1" />
  <row Id="26203" PostTypeId="2" ParentId="26191" CreationDate="2010-12-14T04:51:32.457" Score="8" ViewCount="" Body="&lt;p&gt;First and foremost, see if the student has got a desire to learn. According to me puzzles/ English based exams are just pointless. I could probably accept testing a person's English skills, but that should not be based on a &quot;test&quot;. It should be based on how they communicate their ideas. Asking them to solve puzzles is just a hogwash. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To see their desire to learn, you could question them in various grounds. Assuming that their resume is true, look for a person who has a good skill set. Interview that student along with 2/3 people who are well-versed in those skill sets (for example C++/ C#/ Java). Normally in India, I have seen students just add C / C++ to their resume irrespective of how confident they are. To test whether they are pretty confident in C/C++, test them in its basics like pointers/related data structures. Probably you could also ask them solve simple problems, or debug a faulty piece of code etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I don't think that the student should be from computer science (neither am I). If they are from CS test them in their basics - like automata, algorithms,discrete structures, computer networks etc. etc. If they are not from CS, you could still test them in data structures, as this course is pretty much common across departments. Even if they are not from CS, based on their resume, you could ask questions related to their area of interest. And, don't just go by their grades. They are not indicators to their programming knowledge.&lt;/p&gt;&#xA;" OwnerUserId="9208" LastActivityDate="2010-12-14T04:51:32.457" />
  <row Id="26205" PostTypeId="2" ParentId="26185" CreationDate="2010-12-14T05:05:10.360" Score="3" ViewCount="" Body="&lt;p&gt;As a freelancer myself, this is what I do. I normally talk to the person who is giving me the project and get myself a designer. The designer designs the UI and provides me with all the necessary HTML, CSS etc etc. Using that as the base, I change plain vanilla HTML to server components (ASP.Net) and I start working on the design and then start development. My design methodology is mostly agile, as in freelance projects (depending upon the scale), you normally don't have separation of phases. So agile works well for me. &lt;/p&gt;&#xA;" OwnerUserId="9208" LastActivityDate="2010-12-14T05:05:10.360" />
  <row Id="26206" PostTypeId="2" ParentId="26185" CreationDate="2010-12-14T05:08:18.793" Score="1" ViewCount="" Body="&lt;p&gt;I'm up front about not doing any design work. I handle only the programming side. However, I keep all HTML seperate from the rest of the code, in easy to identify template files (e.g &lt;code&gt;header.php, footer.php, signup.php&lt;/code&gt;, etc), so its very easy for them to get a designer and have him change it without having to deal with much code.&lt;/p&gt;&#xA;" OwnerUserId="9803" LastActivityDate="2010-12-14T05:08:18.793" />
  <row Id="26210" PostTypeId="2" ParentId="26076" CreationDate="2010-12-14T05:29:42.750" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://realterm.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;RealTerm&lt;/a&gt; is a good serial terminal interface. It also supports SPI, I2C and 1-wire protocols. Very configurable.&lt;/p&gt;&#xA;" OwnerUserId="1197" LastActivityDate="2010-12-14T05:29:42.750" />
  <row Id="26211" PostTypeId="1" AcceptedAnswerId="26214" CreationDate="2010-12-14T05:35:31.970" Score="3" ViewCount="187" Body="&lt;p&gt;Most programmers (including myself) are bad at the graphics/design side of things. Many programs/websites built by programmers often don't look too appealing. However, we are good at following some basic rules/tips that can also sometimes dramatically improve the look &amp;amp; feel of a website/program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please share your favorite design tips here.&lt;/p&gt;&#xA;" OwnerUserId="9803" LastActivityDate="2010-12-14T06:13:50.730" CommunityOwnedDate="2010-12-14T15:46:33.247" ClosedDate="2010-12-14T20:14:10.280" Title="Tips for programmers to create Attractive User Interfaces" Tags="&lt;design&gt;&lt;graphics&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="6" />
  <row Id="26212" PostTypeId="2" ParentId="26185" CreationDate="2010-12-14T05:37:44.150" Score="1" ViewCount="" Body="&lt;p&gt;I typically get all of my design work sub-contracted. That is, I'll hire a designer to build a photoshop version of the site, usually getting it 90% of the way there and then either get someone to cut up that design into HTML &amp;amp; CSS, or do that myself (depending on a number of factors).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many options for getting the initial design. I tend to use the same designer that I've used in the past, but you can use sites like 99designs.com or more generic freelance sites like elance.com to find designers. I would tend to prefer the designer-specific 99designs.com, they're more expensive but the quality is generally higher.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the past, I've also sub-contracted out the HTML/CSS cutting, but I find that is more hit-and-miss than the designs themselves. I usually prefer to do the cutting myself, since I can tailor the HTML/CSS to fit better with the server-side generation of the HTML. I find that many companies which provide HTML/CSS cutting don't take tweaking or modifications into account and making changes to the layout or slight tweaks later on can be very painful. I've been burnt by that often enough - it's ended up costing me more time tweaking a badly cut design than if I had just done the whole thing from scratch - that I don't even bother much any more.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-14T05:37:44.150" />
  <row Id="26213" PostTypeId="2" ParentId="26179" CreationDate="2010-12-14T05:39:25.097" Score="15" ViewCount="" Body="&lt;p&gt;Because trusting somebody to write a funny comic strip every morning and trusting somebody to run arbitrary Turing-complete code on my computer are two &lt;em&gt;very&lt;/em&gt; different things.&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-12-14T05:39:25.097" CommentCount="4" />
  <row Id="26214" PostTypeId="2" ParentId="26211" CreationDate="2010-12-14T05:40:20.450" Score="3" ViewCount="" Body="&lt;p&gt;You have made the first step by realizing most programmers are bad at UI design. I have seen so many who swear they are great at it before turning out another dreadful multicolored abomination. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Space and size is your friend. I find developers try and squeeze too much on the screen with small fonts and group boxes/divs all squashed flush against each other. When designing a web UI a bit of liberal padding:5px works wonders.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-12-14T05:40:20.450" CommunityOwnedDate="2010-12-14T15:46:33.247" CommentCount="1" />
  <row Id="26215" PostTypeId="2" ParentId="26180" CreationDate="2010-12-14T05:40:31.103" Score="3" ViewCount="" Body="&lt;p&gt;Make sure you have connections with people that can offer you work. These can be former/current colleagues, classmates, employers. Do a great job for these people and they will recommend you to others. Having someone I know and trust recommend someone based on personal experience is a strong indicator that the person can and will deliver. I would hire that person over someone with an impressive looking resume. Your technical skill is only part of the equation. Reliability is probably more important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go to meetings of local technical groups. Talk about your specific skills and interests and learn about others. They may hear about work that doesn't match their skills, but if they know you, they can recommend you. Make sure you do the same for them if a job doesn't match your own skills or interests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't quit your day job until you have built a network of connections that is strong enough that you think it can support you for some time.&lt;/p&gt;&#xA;" OwnerUserId="1197" LastActivityDate="2010-12-14T05:40:31.103" />
  <row Id="26216" PostTypeId="2" ParentId="26191" CreationDate="2010-12-14T05:43:27.000" Score="1" ViewCount="" Body="&lt;p&gt;The most important qualities a fresher should have is the right attitude and problem solving capabilities. The right attitude can be checked by asking them the questions about the final year project. Check if the person was really involved in the project. See his/her enthusiasm. Check if the person has enthusiasm in programming. Check if he/she has participated in any competition or member of any organization. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Problem solving capabilities can be checked by asking small puzzles which can be solved using hints. More stress should be given on the way how the problem was attacked. This can also be checked by giving small programming assignment (second greatest in an array, finding stream of k consecutive zeros, or Joel's favorite number of set bits in an int) in their favorite language. Again rather than whether he/she knows the problem, the emphasis should be on how he/she is tackling the problem.  &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-14T05:43:27.000" />
  <row Id="26217" PostTypeId="2" ParentId="26076" CreationDate="2010-12-14T05:44:35.547" Score="-1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.ruby-lang.org/en/&quot; rel=&quot;nofollow&quot;&gt;Ruby&lt;/a&gt;. I know, it is a programming language, but it is really useful for writing CLI scripts to make your life easier. Plus you get to learn Ruby and be awesome ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, knowing your way around the CLI and DOS batch files helps as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then use your console-fu to kick the Tortoise(SVN|Git|Hg) habit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then wonder what to do with all your free time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Also, for web work such as cutting up or styling a site, a modeless colour picker is invaluable. My flavour of the month is Pixie (nattyware.com/pixie.php).&lt;/p&gt;&#xA;" OwnerUserId="10022" LastEditorUserId="10022" LastEditorDisplayName="" LastEditDate="2010-12-14T05:57:49.790" LastActivityDate="2010-12-14T05:57:49.790" CommentCount="2" />
  <row Id="26218" PostTypeId="2" ParentId="26180" CreationDate="2010-12-14T05:45:44.907" Score="4" ViewCount="" Body="&lt;p&gt;In my experience, I haven't noticed any decline in the &lt;em&gt;number&lt;/em&gt; of jobs being posted, however the &lt;em&gt;amount&lt;/em&gt; of money you might get paid may be less than what it used to be a few years ago. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this would be a good time to start switching towards a product based business model rather than a service based model for freelancers.&lt;/p&gt;&#xA;" OwnerUserId="9803" LastActivityDate="2010-12-14T05:45:44.907" CommentCount="3" />
  <row Id="26219" PostTypeId="2" ParentId="26191" CreationDate="2010-12-14T05:46:26.030" Score="1" ViewCount="" Body="&lt;p&gt;Since you are hiring fresher in India, my suggestion would be like following.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Resume&lt;/strong&gt; :&#xA;This will tell you their confident and clarity of their knowledge will clearly. Many people follows the template resume from Naukri or some of the websites and will put the polished words, but not about their skills. This will surely indicate that they are not capable for doing independently. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;See their &lt;strong&gt;academic score&lt;/strong&gt; from resume. If it is above 65% to 70% consistently across the all level, you can have confident that they can work consistently.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;See &lt;strong&gt;Clarity of resume&lt;/strong&gt; that how much of their own stuff they have put. Even if there is no their own stuff, it is really good than they took from the templates. Because, you need a true people than people who are making up as they are good.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Make comfortable&lt;/strong&gt; them in the interview hall first. This is very important for fresher since they will get easily tensed and they will not be able to present by themselves because of nervousness even they are good.&lt;/li&gt;&#xA;&lt;li&gt;Talk with them politely and ask questions related to their comfortable &lt;strong&gt;technical language/topic&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;You should keep one important thing in your mind that our &lt;strong&gt;education system&lt;/strong&gt;. It is not good in India in-terms of practical learning since here they concentrate only in theoritical stuffs rather than practical. It makes complex to the fresher as well as interviewer. So, you can give low priority to their interview score in technical knowledge than their personal skills and consistent academic score.&lt;/li&gt;&#xA;&lt;li&gt;Ofcourse, their &lt;strong&gt;maths(including logical) skill&lt;/strong&gt; should be good. you can ask them about their mark in all level and this will also give you a clue whether they are a good problem solver. Or else, you can ask some &lt;strong&gt;simple logical &amp;amp; puzzles&lt;/strong&gt; to determine their capability additionally.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="9318" LastActivityDate="2010-12-14T05:46:26.030" CommentCount="2" />
  <row Id="26220" PostTypeId="2" ParentId="26211" CreationDate="2010-12-14T05:55:36.277" Score="3" ViewCount="" Body="&lt;p&gt;Step 1- Read &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0789723107&quot; rel=&quot;nofollow&quot;&gt;Don't make me think&lt;/a&gt; by Steve Krug.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's #3 on Atwood's &lt;a href=&quot;http://www.codinghorror.com/blog/2004/02/recommended-reading-for-developers.html&quot; rel=&quot;nofollow&quot;&gt; Recommend Reading&lt;/a&gt; list!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Topics covered: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;User patterns &lt;/li&gt;&#xA;&lt;li&gt;Designing for scanning &lt;/li&gt;&#xA;&lt;li&gt;Wise use of copy &lt;/li&gt;&#xA;&lt;li&gt;Navigation design &lt;/li&gt;&#xA;&lt;li&gt;Home page layout &lt;/li&gt;&#xA;&lt;li&gt;Usability testing  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also, learn to look, really look, at the world around you. Why do I like that UI but hate this one? Why is it so hard to find the noodle dishes in this restaurant menu? Wow, I knew what that sign meant before I even read the words. Why was that? How come that book cover looks so wrong? Learn to take the time to think about why you react the way you do to visual elements of all kinds, and then apply this to your work. &lt;/p&gt;&#xA;" OwnerUserId="4822" LastEditorUserId="4822" LastEditorDisplayName="" LastEditDate="2010-12-14T06:01:10.177" LastActivityDate="2010-12-14T06:01:10.177" CommunityOwnedDate="2010-12-14T15:46:33.247" />
  <row Id="26221" PostTypeId="2" ParentId="26191" CreationDate="2010-12-14T05:55:39.210" Score="0" ViewCount="" Body="&lt;p&gt;I've recently done a fair bit of hiring. The first thing I'm looking for is basic coding skills. We get our agent to make them sit technical test which asks them to write some basic algorithms (and also some SQL). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they do well enough in that, we'll get them in for an interview. If they have good communication skills, and don't seem too full of themselves, it's a likely hire.&lt;/p&gt;&#xA;" OwnerUserId="8400" LastActivityDate="2010-12-14T05:55:39.210" />
  <row Id="26222" PostTypeId="2" ParentId="26076" CreationDate="2010-12-14T05:58:42.487" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.fiddlertool.com/SlickRun/&quot; rel=&quot;nofollow&quot;&gt;Slickrun&lt;/a&gt; - It will increase your productivity by accessing the software through shortcut key.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blois.us/Snoop/&quot; rel=&quot;nofollow&quot;&gt;Snoop&lt;/a&gt; - If you are WPF Developer, it is must to debug/visualize the object tree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://firstfloorsoftware.com/silverlightspy/download-silverlight-spy/&quot; rel=&quot;nofollow&quot;&gt;Silverlight Spy&lt;/a&gt; - Same as Snoop, but this is for Silverlight app.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://getfirebug.com/&quot; rel=&quot;nofollow&quot;&gt;Firebug&lt;/a&gt; - If you are web developer, this is must have tool.&lt;/p&gt;&#xA;" OwnerUserId="9318" LastActivityDate="2010-12-14T05:58:42.487" />
  <row Id="26223" PostTypeId="2" ParentId="26211" CreationDate="2010-12-14T06:01:27.913" Score="2" ViewCount="" Body="&lt;p&gt;I would have to say that researching your UI before implementing it is essential. UI design is a totally seperate field than developing. We actually have a dedicated UI specialist at our company that does all the upfront UI design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use wireframe software like &lt;a href=&quot;http://balsamiq.com/&quot; rel=&quot;nofollow&quot;&gt;Balsamiq&lt;/a&gt;, &lt;a href=&quot;http://lumzy.com/&quot; rel=&quot;nofollow&quot;&gt;Lumzy&lt;/a&gt; or &lt;a href=&quot;http://pencil.evolus.vn/en-US/Home.aspx&quot; rel=&quot;nofollow&quot;&gt;Pencil&lt;/a&gt; to create mockups of the UI. With them, you can play around until you find something that looks visually appealing, and only then start implementing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, I would say go and research the UI of websites/software that have been successful and known for their good UI. You can get a wealth of ideas from simply looking at what has already been done, and what the public finds attractive.&lt;/p&gt;&#xA;" OwnerUserId="8478" LastActivityDate="2010-12-14T06:01:27.913" CommunityOwnedDate="2010-12-14T15:46:33.247" />
  <row Id="26224" PostTypeId="2" ParentId="26211" CreationDate="2010-12-14T06:04:48.500" Score="1" ViewCount="" Body="&lt;p&gt;Yes, you are correct. Developers are not a designer. For better look and feel with proper colorings &amp;amp; layout, it should be given/designed by the Graphics designer. However the interaction and increasing the usability, developers also should aware of UI guideline.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually prefers/refer to colleague the following links which gives the better understanding about improving UI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa468595.aspx&quot; rel=&quot;nofollow&quot;&gt;How to Create the Best User Experience for Your Application&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa511260.aspx&quot; rel=&quot;nofollow&quot;&gt;Wizards&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;amp;FamilyID=e49820cb-954d-45ae-9cb3-1b9e8ea7fe8c&quot; rel=&quot;nofollow&quot;&gt;Windows User Experience Interaction Guidelines&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9318" LastActivityDate="2010-12-14T06:04:48.500" CommunityOwnedDate="2010-12-14T15:46:33.247" />
  <row Id="26225" PostTypeId="1" AcceptedAnswerId="26227" CreationDate="2010-12-14T06:10:01.397" Score="3" ViewCount="75" Body="&lt;p&gt;So, we are starting a new project soon, and there are a lot of decisions that must be made. The one I am most interested in is: &lt;strong&gt;What all do you have to take into consideration when deciding what technologies to use?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is always something that you miss and only half-way through the project do you realise, &lt;em&gt;&quot;O yeah... I should have thought about that...&quot;&lt;/em&gt;, and usually it's something that would have made you go with a different technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to hear what you guys think. Maybe get a nice comprehensive list up to help the architects everywhere to make more informed decisions.&lt;/p&gt;&#xA;" OwnerUserId="8478" LastActivityDate="2010-12-14T07:11:23.443" Title="What to look at when deciding which technologies to use on a new project?" Tags="&lt;project&gt;&lt;architecture&gt;&lt;decisions&gt;&lt;technologies&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="26226" PostTypeId="2" ParentId="26211" CreationDate="2010-12-14T06:13:50.730" Score="1" ViewCount="" Body="&lt;p&gt;Become a member of the &lt;a href=&quot;http://ui.stackexchange.com/&quot;&gt;User Interface Stack Exchange&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="73" LastActivityDate="2010-12-14T06:13:50.730" CommunityOwnedDate="2010-12-14T15:46:33.247" />
  <row Id="26227" PostTypeId="2" ParentId="26225" CreationDate="2010-12-14T06:41:06.103" Score="3" ViewCount="" Body="&lt;p&gt;Off the top of my head:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;market knowledge&lt;/strong&gt;: will you find enough people fluent in the technology? At what cost?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;scalability&lt;/strong&gt;: will it still work when your system will be used in production, with volume of data/requests that can go much higher than anticipated?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;modularity&lt;/strong&gt;: is this technology easy to replaced should the need to do so arises? or will you be &quot;hard-linked&quot; to it? Is there some component mechanism included in it (like OSGi)?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;administration&lt;/strong&gt;: what does it mean to deploy that technology (in term of servers, backups, DRP - Data Recovery Plan -, ...)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;deployment&lt;/strong&gt;: is it easy to deploy? Will you be able to make staging environment easily enough?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;parametrization&lt;/strong&gt;: how do you change its behavior? only at startup through property files? During runtime?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/users/9771/matthew-read&quot;&gt;Matthew Read&lt;/a&gt; suggests &quot;speed of development&quot;, which opens this answer to more &quot;programming language&quot; type of criteria as mentioned in this &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/cc168615.aspx&quot; rel=&quot;nofollow&quot;&gt;Microsoft technote&lt;/a&gt;.&lt;br&gt;&#xA;Here they are, still presented in a &quot;technology agnostic&quot; way (i.e. not necessary limited to &quot;programming language&quot;):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ease of learning&lt;/strong&gt;: how steep is the learning curve?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ease of understanding&lt;/strong&gt;: how well will anyone maintain a &lt;em&gt;legacy&lt;/em&gt; system based on that technology?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Speed of development&lt;/strong&gt;: how long it takes you to write code, but also how long it takes you to find a solution to the problem at hand and find the bugs?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Help with enforcement of correct code&lt;/strong&gt;: is there any tool around that technology helping you to make sure it is applied correctly?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Performance of compiled code&lt;/strong&gt;: what are the performance criteria?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Supported platform environments&lt;/strong&gt;: is your development platform the same than your integration one? your production one?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Portability&lt;/strong&gt;: do you need to recompile everything each time you change and deploy in a new platform?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fit-for-purpose&lt;/strong&gt;: is there any criteria (real time, ...) which would validate/invalidate your technology choice?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3915" LastEditorUserId="3915" LastEditorDisplayName="" LastEditDate="2010-12-14T07:11:23.443" LastActivityDate="2010-12-14T07:11:23.443" CommentCount="2" />
  <row Id="26230" PostTypeId="1" CreationDate="2010-12-14T06:50:43.320" Score="5" ViewCount="183" Body="&lt;p&gt;I'm currently a student going to an 8 month internship this January after my first year of studies and I'm planning on expanding my programming skills maybe during weekends or weeknights. For around 2-3 years, I've been learning as much as I could just because I enjoyed programming so much when I started 2 years ago. Some things I know include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;source control&lt;/li&gt;&#xA;&lt;li&gt;Java&lt;/li&gt;&#xA;&lt;li&gt;Python&lt;/li&gt;&#xA;&lt;li&gt;C&lt;/li&gt;&#xA;&lt;li&gt;C++&lt;/li&gt;&#xA;&lt;li&gt;Bash&lt;/li&gt;&#xA;&lt;li&gt;Linux&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The problem is that I only know the basics of the above, nothing in depth (except Java) and I'm wondering what would benefit me more in the future when I finish my studies. Should I learn something new? (I've been wanting to take a crack at SICP) Or should I expand on something that I know right now (I enjoy programming low level) and build something useful and big?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FWIW, I'm going to use Java(JSP, servlets) and SQL for my internship.&lt;/p&gt;&#xA;" OwnerUserId="10028" LastActivityDate="2010-12-14T08:01:55.797" Title="Should a Student be a Jack of All Trades?" Tags="&lt;learning&gt;&lt;students&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="26231" PostTypeId="2" ParentId="24270" CreationDate="2010-12-14T06:58:19.840" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I am only allowed to have one hyperlink in my post, as this is my first one. Therefore I suggest searches that will bring you to the content. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What does: Bill Gates, Michael Dell, Steve Jobs, Mark Zuckerberg, Henry Ford, Richard Branson, Larry Ellison, ... have in common? Super successful entrepreneurs, that changed the world, made billions and never finished, some never even started college. (Search: Most successful college dropouts.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It really depends on what you want to do in life. Required reading: A Student's Guide to Startups by Paul Graham: &lt;a href=&quot;http://www.paulgraham.com/mit.html&quot; rel=&quot;nofollow&quot;&gt;http://www.paulgraham.com/mit.html&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;He makes the case and is proofing with Y-Combinator, that you can do successful startups even without any college courses. Y-Combinator is not the only incubator group that you can get your idea funded. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check out Kickstarter dot com that is opening the door for you to finance and develop your dreams by convincing enough people to put down money for for the development of them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find out what makes you come alive. What the world needs are more people that are alive. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try things out, fail often and fast, it will bring you closer to your success. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck, Mark. &lt;/p&gt;&#xA;" OwnerUserId="10027" LastActivityDate="2010-12-14T06:58:19.840" CommentCount="1" />
  <row Id="26232" PostTypeId="2" ParentId="1267" CreationDate="2010-12-14T06:58:31.753" Score="0" ViewCount="" Body="&lt;p&gt;Not really, no.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Part of it is because programming is addictive, and after a while, the sense of accomplishment at the end of a project or problem starts feeling more like a cognitive itch that you'd finally scratched. My interest in &lt;a href=&quot;http://projecteuler.net&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt; is undoubtedly masochistic, especially considering I'm not very good at math.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Part of it is because I started when I was eight years old, got a diploma in &quot;computer programming&quot; when I was eleven, been given several job offers (including one from MS and another from a bank software company in France), taken part in several open source projects, study theoretical programming topics like languages and compilers on my own time -- and yet find myself struggling to finish a comp sci minor at my local university despite having more than enough credits to graduate -- because of ridiculous policy changes and obviously money-grabbing transfer restrictions. I've had the pleasure of having to take introductory comp sci courses a total of 7 times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Part of it is because the social stigma surrounding a typical mid-twenties programmer is that one must have spent their entire lives in absolute dedication to have become a programmer, and so they must be one notch inferior to everyone else in everything not-computer-related that they do -- including being an overall well-rounded person. The worst part is that the stigma is somewhat warranted in many cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Frankly though when you've been programming for 2/3 of your life for work, for school and as a hobby, you start to get sick of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I find that helping people with &lt;em&gt;their&lt;/em&gt; problems on places like StackOverflow is a lot more rewarding, which is why I want to finish university -- so that I can get a job teaching Japanese, English, music or (dear god) computer science.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;lt;/rant&gt;&lt;/p&gt;&#xA;" OwnerUserId="6385" LastEditorUserId="6385" LastEditorDisplayName="" LastEditDate="2010-12-14T07:03:40.690" LastActivityDate="2010-12-14T07:03:40.690" />
  <row Id="26233" PostTypeId="2" ParentId="26230" CreationDate="2010-12-14T07:08:25.567" Score="7" ViewCount="" Body="&lt;p&gt;It takes quite a while to achieve mastery of &lt;em&gt;anything&lt;/em&gt; and basically the primary thing you should do in your studies is to get as broad a foundation as you can possibly get.  Learn all you can!  It will never be easier to take in new stuff than while studying, because that is what educational institutions do best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest you take a closer look at&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Database theory and SQL.&lt;/li&gt;&#xA;&lt;li&gt;Prolog &lt;/li&gt;&#xA;&lt;li&gt;Functional programming: Haskell&lt;/li&gt;&#xA;&lt;li&gt;Lisp&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and many more but this is a start.  The reason why?  Read &lt;a href=&quot;http://www.paulgraham.com/avg.html&quot; rel=&quot;nofollow&quot;&gt;Paul Grahams essay on how he made a lot of money by knowing better tools than the others&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-14T07:08:25.567" CommentCount="1" />
  <row Id="26234" PostTypeId="2" ParentId="1599" CreationDate="2010-12-14T07:19:15.927" Score="-2" ViewCount="" Body="&lt;p&gt;I cant stop putting &lt;code&gt;;&lt;/code&gt; after whatever i write !!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;my lists always looks one item smaller ! these people don't like zero at all !&lt;/p&gt;&#xA;" OwnerUserId="9110" LastEditorUserId="9110" LastEditorDisplayName="" LastEditDate="2011-04-09T08:22:07.353" LastActivityDate="2011-04-09T08:22:07.353" CommunityOwnedDate="2010-12-14T07:19:15.927" CommentCount="2" />
  <row Id="26235" PostTypeId="2" ParentId="1267" CreationDate="2010-12-14T07:28:51.617" Score="0" ViewCount="" Body="&lt;p&gt;One of the things that make me continue doing programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The 'You Rock' (&lt;em&gt;there is one other term for it, usually from the world of gaming. I forgot it. If someone know it, please edit it here.&lt;/em&gt;) moment you get when after long hard hours of hardship you get the logic for a hard to crack problem and your code starts to work. That is the most fulfilling, self satisfactory and worthwhile moment of your life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now, I'm feeling one of those.&lt;/p&gt;&#xA;" OwnerUserId="6693" LastEditorUserId="6693" LastEditorDisplayName="" LastEditDate="2010-12-14T07:42:24.227" LastActivityDate="2010-12-14T07:42:24.227" />
  <row Id="26236" PostTypeId="2" ParentId="1599" CreationDate="2010-12-14T07:28:54.613" Score="0" ViewCount="" Body="&lt;p&gt;Pressing an elevator call button when the elevator is already there, as a way of acquiring a lock on the elevator to prevent a race condition.&lt;/p&gt;&#xA;" OwnerUserId="9846" LastActivityDate="2010-12-14T07:28:54.613" CommunityOwnedDate="2010-12-14T07:28:54.613" />
  <row Id="26237" PostTypeId="2" ParentId="26076" CreationDate="2010-12-14T07:47:28.590" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.chiark.greenend.org.uk/~sgtatham/putty/&quot; rel=&quot;nofollow&quot;&gt;Putty&lt;/a&gt; - ssh/scp client&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://sourceforge.net/projects/console/&quot; rel=&quot;nofollow&quot;&gt;Console&lt;/a&gt; - A nice tabbed shell, configurable, resizable, transparent windows, etc.&lt;/p&gt;&#xA;" OwnerUserId="7287" LastActivityDate="2010-12-14T07:47:28.590" />
  <row Id="26238" PostTypeId="2" ParentId="26230" CreationDate="2010-12-14T07:52:54.630" Score="3" ViewCount="" Body="&lt;p&gt;Do you REALLY know what you want to do? You might &lt;em&gt;think&lt;/em&gt; that you know - and that is good - but few of us end up doing what we started out doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use this opportunity to get exposure to as much as possible! Your horizons will never again be as wide as they are now.&lt;/p&gt;&#xA;" OwnerUserId="598" LastActivityDate="2010-12-14T07:52:54.630" />
  <row Id="26240" PostTypeId="2" ParentId="23845" CreationDate="2010-12-14T07:54:09.520" Score="2" ViewCount="" Body="&lt;p&gt;There's Good Clever and Bad Clever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good Clever -- high ratio between clever lines of code vs lines of in a non-clever alternative. 20 lines of code that saves you from writing 20000 is Extremely Good Clever. Good Clever is about saving yourself work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad Clever -- low ratio between lines of code written written vs. lines of code saved. One line of clever code that saves you from writing five lines of code is Bad Clever. Bad clever is about &quot;syntactic masturbation&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just to note: Bad Clever is almost never called &quot;Bad Clever&quot;; it will often travel under the aliases &quot;beautiful&quot;, &quot;elegant&quot;, &quot;concise&quot;, or &quot;succinct.&quot;&lt;/p&gt;&#xA;" OwnerUserId="8865" LastActivityDate="2010-12-14T07:54:09.520" CommentCount="1" />
  <row Id="26241" PostTypeId="2" ParentId="26230" CreationDate="2010-12-14T08:01:55.797" Score="0" ViewCount="" Body="&lt;p&gt;There's no easier way to learn than to find something that you truly enjoy doing, and spend time learning how to do it well. If you are producing quality work, many of the skills you learn will be cross-functional, and will apply no matter where you end up working, or with which tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would advise you to find things which are not directly already covered at work, which you find fascinating, and dive into them as deeply as you can while your interest holds. Try to build tools, or work on projects, which you can then either open source or post somewhere online for others to see, the feedback you'll get will prove very useful. And, most importantly, make sure, what ever you're doing, it's something you enjoy and care about. It is the most important part of the learning experience, I think.&lt;/p&gt;&#xA;" OwnerUserId="4091" LastActivityDate="2010-12-14T08:01:55.797" />
  <row Id="26242" PostTypeId="2" ParentId="25600" CreationDate="2010-12-14T08:13:05.417" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Version Control:&lt;/strong&gt; If on windows, TortoiseSVN is the best, most intuitive and easiest to use in my experience.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Framework:&lt;/strong&gt; &lt;a href=&quot;http://codeigniter.com/&quot; rel=&quot;nofollow&quot;&gt;CodeIgniter&lt;/a&gt;. Hands on the best web development platform for PHP.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;IDE:&lt;/strong&gt; Netbeans is the best IDE for PHP that I've used on windows.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Unit Testing:&lt;/strong&gt; There are several options, a google search will turn up many. CodeIgniter also has its own unit tester available.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Debugger:&lt;/strong&gt; Xdebug.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Javascript Library:&lt;/strong&gt; Jquery&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;FTP Program:&lt;/strong&gt; FileZilla&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Database Administration:&lt;/strong&gt; PhpMyAdmin&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Wireframing:&lt;/strong&gt; Balsimus Mockup, or use a whiteboard.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Misc:&lt;/strong&gt; Use WAMP if on windows to easily install, start, stop, &amp;amp; restart apache, mysql, and php all in one package.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also, if you are going to be a working on many different websites, and most of those websites will have some common functions like signup, login/logout, an admin section for searching users, etc, I recommend building a small project in whichever framework you choose, and using that project as the base for every new project that you start. Normally I call this project 'skeleton'. If I'm going to start working on xyz.com, I would copy skeleton directory and rename it as 'xyz.com', fill in some configuration files, and I'd have a copy of xyz.com with some of the features already working.&lt;/p&gt;&#xA;" OwnerUserId="9803" LastEditorUserId="9803" LastEditorDisplayName="" LastEditDate="2010-12-14T08:22:35.660" LastActivityDate="2010-12-14T08:22:35.660" CommentCount="5" />
  <row Id="26243" PostTypeId="1" AcceptedAnswerId="26285" CreationDate="2010-12-14T08:18:26.803" Score="25" ViewCount="1551" Body="&lt;p&gt;Clearly, two finger typing is probably a sign the developer needs work to speed up his typing (or is lying about his experience as a developer), and 60+ WPM is more than sufficient. Has anyone studied this, though? How fast do developers type, on average, and what's the &quot;normal&quot; range of typing speeds?&lt;/p&gt;&#xA;" OwnerUserId="4091" LastActivityDate="2011-03-25T14:40:57.210" CommunityOwnedDate="2011-03-25T14:40:57.210" Title="What's the &quot;normal&quot; range for typing speed for developers?" Tags="&lt;touch-typing&gt;" AnswerCount="20" CommentCount="11" FavoriteCount="4" />
  <row Id="26244" PostTypeId="2" ParentId="26128" CreationDate="2010-12-14T08:19:20.140" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;I use a javascript file in which I place some common functions, such as &lt;code&gt;rTrim()/lTrim(), length()&lt;/code&gt;, etc. I copy this file to all the projects I work on. You can call it &lt;code&gt;common.js&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;For every screen in the system that requires javascript, I create a javascript file. For example: if the sign up page needs some fancy form validation or username lookup, I create &lt;code&gt;signup.js&lt;/code&gt;. If javascript features are needed on the login page, I would create &lt;code&gt;login.js&lt;/code&gt;, and so on.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If I'm going to create an entity/class that's going to be reusable - for example, a formValidator class, or a formBuilder class, I put it in its own &lt;code&gt;.js&lt;/code&gt; file.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9803" LastActivityDate="2010-12-14T08:19:20.140" CommentCount="4" />
  <row Id="26245" PostTypeId="2" ParentId="26151" CreationDate="2010-12-14T08:25:39.810" Score="2" ViewCount="" Body="&lt;p&gt;I think it's a myth that Agile project teams don't document their applications and this is the first point of resistance you get in companies that are certified to have the best documentation as per their standards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work in an ISO-9001 certified company, but we ALSO do Scrums on a large number of our projects. In our case, the change came in from the Project Delivery heads (i.e. quite senior folks) and that's why it gets adopted - as opposed to a Project Manager or Developer trying to push in this change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One useful practice we follow is &lt;a href=&quot;http://www.agilemodeling.com/essays/documentContinuously.htm&quot; rel=&quot;nofollow&quot;&gt;Document Enough but Continuously&lt;/a&gt; . This obviously means we do not follow all the templates prescribed for the project, but there is a conscious understanding and agreement over which sections/documents are &lt;strong&gt;needed&lt;/strong&gt; vs those that are just pointless overheads.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'd then need to socialize this point of view and get the approval of the Quality group or Standards division or whatever it's called.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Agile principle is 'just enough' documentation. Can you try and push it from the Customer to express to the team how much is just enough? The project manager could talk to the customer and understand what their expectations and organizational needs are and then both document the decision and meet those expectations. If it's good enough for them (i.e. the paying customers), then it can be what you follow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they think Agile doesn't scale up to large projects, convince them it can - by decomposition and parallel effort. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In large organization, control and oversight for large programs are accomplished by running a Project Monitoring Offices (PMOs) that conduct conventional planning for costing/accounting/resource management etc - hence they demand a lot of documentation, but they can monitor progress using Agile practices (the SCRUM burn-down chart for one). They need to know how techniques such as continuous integration help them earlier rather than later, and hence it's better for everyone's productivity to get overhead docs out of the way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Agile is a set of skills that a team can learn which is largely orthogonal to our traditional technical skills. But if you add this to their existing skills, of course you can become a more effective team. Daily standups (i.e. Scrum meetings) are not going to be possible overnight - but you would have regular team meetings (say bi-weekly) at present? I'd say start by converting those into following the Scrum question agenda (not too sneakily ;) and convey to the wider team why this approach can work and does not mean lax documentation / poor standards or whatever other myths. &lt;/p&gt;&#xA;" OwnerUserId="1681" LastEditorUserId="1681" LastEditorDisplayName="" LastEditDate="2010-12-14T08:41:17.837" LastActivityDate="2010-12-14T08:41:17.837" CommentCount="2" />
  <row Id="26246" PostTypeId="2" ParentId="26243" CreationDate="2010-12-14T08:31:24.957" Score="8" ViewCount="" Body="&lt;p&gt;Why on Earth would it ever matter?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The typing time is less than 1% of the actual work. You spend the most of it &lt;em&gt;thinking&lt;/em&gt; what to type.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. Just conducted an experiment how much text I can type in in a minute. Opened the Wikipedia and grabbed the first text as a sample. Result: &lt;strong&gt;47 words per minute&lt;/strong&gt; (haven't had my coffee yet). Not that it matters anything for programming...&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-14T08:37:39.850" LastActivityDate="2010-12-14T08:37:39.850" CommunityOwnedDate="2011-03-25T14:40:57.210" CommentCount="6" />
  <row Id="26247" PostTypeId="2" ParentId="26243" CreationDate="2010-12-14T08:32:21.780" Score="31" ViewCount="" Body="&lt;p&gt;I don't believe developers that type slowly have they productivity affected so much. Before we type, we have must do another important activity: &lt;strong&gt;think&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, improving your typing speed will help a lot impressing your mother ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;40 WPM is good enough for me and 60+ is very good.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-14T09:58:18.540" LastActivityDate="2010-12-14T09:58:18.540" CommunityOwnedDate="2011-03-25T14:40:57.210" CommentCount="18" />
  <row Id="26248" PostTypeId="2" ParentId="26243" CreationDate="2010-12-14T08:39:36.813" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Stephen King recommends writing 1000 words per day. If writing were only a matter of typing, [...] we’re up to an hour.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.johndcook.com/blog/2010/12/09/does-typing-speed-matter/&quot; rel=&quot;nofollow&quot;&gt;http://www.johndcook.com/blog/2010/12/09/does-typing-speed-matter/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-12-14T08:39:36.813" CommunityOwnedDate="2011-03-25T14:40:57.210" CommentCount="3" />
  <row Id="26249" PostTypeId="1" AcceptedAnswerId="26252" CreationDate="2010-12-14T08:42:34.013" Score="4" ViewCount="253" Body="&lt;p&gt;For my business studies, I need to explore the financial side of software engineering projects, but I am rather a technical person myself. What would be good place to start? What are the important financials (net-present-value does this make sense for software?) or performance-indicators of &quot;good&quot; software projects?&#xA;What type of person in an organization I should contact?&#xA;Thanks for any help.&lt;/p&gt;&#xA;" OwnerUserId="4723" LastEditorUserId="4723" LastEditorDisplayName="" LastEditDate="2010-12-14T09:05:33.223" LastActivityDate="2010-12-14T10:08:01.540" Title="What could be a good thesis topic for software and business?" Tags="&lt;project-management&gt;&lt;project&gt;&lt;business&gt;&lt;financial&gt;" AnswerCount="2" CommentCount="0" FavoriteCount="1" />
  <row Id="26250" PostTypeId="2" ParentId="26180" CreationDate="2010-12-14T08:46:58.197" Score="3" ViewCount="" Body="&lt;p&gt;The different crisis we went trough have a common effect: &lt;a href=&quot;http://en.wikipedia.org/wiki/Natural_selection&quot; rel=&quot;nofollow&quot;&gt;Natural Selection&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It only affects weak developers a lot and strong ones just a bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's why the answer is &quot;&lt;strong&gt;don't be just a developer&lt;/strong&gt;&quot;. Be more than that. &lt;a href=&quot;http://www.codinghorror.com/blog/2004/02/about-me.html&quot; rel=&quot;nofollow&quot;&gt;Jeff Atwood&lt;/a&gt; is obviously not just a programmer. Take any top user on &lt;a href=&quot;http://stackoverflow.com/users&quot;&gt;StackOverflow&lt;/a&gt;. There is no crisis for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless your status. Being freelance by its nature will just accelerate the process of being fired if you are &lt;em&gt;just programmer&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Crisis will also affects strong ones. They will get some pressure on their daily rate, and if they are smart, they will do some efforts. But most of the time, it's not necessary if you are not &lt;em&gt;just programmer&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How to not to be just a programmer?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;a href=&quot;http://www.pragprog.com/titles/mjwti/my-job-went-to-india&quot; rel=&quot;nofollow&quot;&gt;Invest in yourself&lt;/a&gt; like you where a product.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Because it's what you are in the eye of the market in crisis or not. This is the only way to safely keep your job, regardless your status.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-14T09:03:59.757" LastActivityDate="2010-12-14T09:03:59.757" CommentCount="1" />
  <row Id="26251" PostTypeId="1" AcceptedAnswerId="26255" CreationDate="2010-12-14T08:48:49.377" Score="2" ViewCount="271" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/4384/whats-the-most-heroic-programming-task-youve-accomplished&quot;&gt;What’s the most heroic programming task you’ve accomplished?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;One of the greatest joys (and hardest things to convey to non-programmers) is the feeling of exhilaration we often get when we finally get that &quot;aha!&quot; moment working on a tough problem - then we go implement it and it works magically. I've been thinking about some of my favorite challenges and how I eventually solved them - I think it would be interesting to hear what everyone else would classify as their hardest problem solved...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Source: &lt;a href=&quot;http://stackoverflow.com/questions/336350/what-is-the-most-challenging-technical-problem-youve-solved-in-your-life/336472#336472&quot;&gt;SO question&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="1522" LastActivityDate="2010-12-14T17:11:23.563" ClosedDate="2010-12-14T20:27:46.700" Title="What is the most challenging technical problem you've solved in your life?" Tags="&lt;problem-solving&gt;&lt;lifestyle&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="26252" PostTypeId="2" ParentId="26249" CreationDate="2010-12-14T09:00:38.440" Score="6" ViewCount="" Body="&lt;p&gt;There isn't a great body of work backing up the theory/gut instinct of well run agile projects being more financially efficient than traditional waterfall (in terms of bang for your buck as it were).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the hardest tasks many of us face is persuading clients when they say &quot;Show me the scientific papers&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would be nice to be able to start pointing at some real case studies with proper scientific analysis that show how TDD for example saves on QA costs and medium to long term bug fixes in real dollars and cents.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-14T09:00:38.440" CommentCount="6" />
  <row Id="26253" PostTypeId="2" ParentId="26251" CreationDate="2010-12-14T09:00:59.063" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It's kind of hard to answer..&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is, and I'm sure others experience are the same. Whenever I think I've solved something hard, sometime later I always have to solve something harder.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess its a moving target.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think I've solved my most hardest technical problem, I struggle with it every day: Its a neural network inspired ALU.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I only worked on a tiny fraction of the problem as my MSc thesis.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-14T09:00:59.063" CommentCount="1" />
  <row Id="26254" PostTypeId="2" ParentId="26151" CreationDate="2010-12-14T09:01:58.370" Score="3" ViewCount="" Body="&lt;p&gt;Like any new thing you will try to introduce to an organization, you will face strong opposition. Are you ready to be criticized and be &lt;em&gt;the&lt;/em&gt; responsible if it fail? You have to be a strong person. That's the price to pay when expose yourself.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ask yourself why you want to use Scrum&lt;/strong&gt;. Do you need to solve a real problem? &lt;/li&gt;&#xA;&lt;li&gt;Ensure that &lt;strong&gt;YOU are committed&lt;/strong&gt; to it, because nobody will do it for you. You will be the owner of the thing. &lt;em&gt;At least until it brings positive effects in the organization&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Train yourself&lt;/strong&gt;. Books and internet is not enough. Go to a course first, or you will increase dramatically your chance to implement Scrum incorrectly. Which will probably lead your team to worse results than before&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Sell it to the team first&lt;/strong&gt;. You must have their full support, obviously&lt;/li&gt;&#xA;&lt;li&gt;Don't propose a change, &lt;strong&gt;propose a test&lt;/strong&gt;. And consider it like that. Scrum may not be suitable to your organization (or to your team)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Find a sponsor in the top management&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-14T10:46:36.843" LastActivityDate="2010-12-14T10:46:36.843" />
  <row Id="26255" PostTypeId="2" ParentId="26251" CreationDate="2010-12-14T09:04:01.773" Score="1" ViewCount="" Body="&lt;p&gt;File based connectors (File APIs, FTP and SFTP etc) are not 2 phase transaction resources.  That is, you can never guarantee that they will complete (from an ACID point of view).  So we would lose files in file transfer and have to request again from source (if it's a large and time critical file, this is a problem).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of our goals for &lt;a href=&quot;http://www.ikasan.org&quot; rel=&quot;nofollow&quot;&gt;Ikasan EIP&lt;/a&gt; is to implement FTP/SFTP as a full XAResource (just like say a JDBC driver) that supports pre-commit/commit and all of the other XAResource transactional states.  That helps us in providing a guaranteed delivery service for financials and other organisations that want it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Getting an SFTP JCA connector to pretty much work as a full XA resource (like a DB connection).  Involved a lot of understanding about concurrency, the archaic JCA spec, transaction managers, JTA/JTS and the intricacies of the Jboss class loading system.  End the end up it was the simple modelling of a transaction journal in a RDMS that cracked the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's still not quite a 'true' XAResource, but it mimics one as far as an outside Txn manager is concerned.&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2010-12-14T10:04:14.130" LastActivityDate="2010-12-14T10:04:14.130" CommentCount="1" />
  <row Id="26256" PostTypeId="1" AcceptedAnswerId="26273" CreationDate="2010-12-14T09:13:24.227" Score="5" ViewCount="514" Body="&lt;p&gt;Of course, computer salaries vary by skill, experience and location. What I'm interested in, given the former two same, how does being in specific &lt;strong&gt;cities&lt;/strong&gt; affect one's salary?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; One person would normally only know about a limited number of places in the world so I would suggest everyone writes how salaries are in their location and we make this a community wiki.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Clarification:&lt;/strong&gt; I'm not suggesting posting your own salaries but an idea as to how much people are paid generally in your city. Also I meant location to be city level and not country level.&lt;/p&gt;&#xA;" OwnerUserId="5940" LastEditorUserId="5940" LastEditorDisplayName="" LastEditDate="2010-12-14T10:01:41.453" LastActivityDate="2010-12-14T15:04:29.337" ClosedDate="2010-12-14T20:19:06.517" Title="Computer salaries around the world?" Tags="&lt;career&gt;&lt;salary&gt;&lt;job-market&gt;" AnswerCount="4" CommentCount="4" FavoriteCount="0" />
  <row Id="26257" PostTypeId="2" ParentId="26256" CreationDate="2010-12-14T09:19:15.407" Score="0" ViewCount="" Body="&lt;p&gt;I did some research on this website: &lt;a href=&quot;http://www.worldsalaries.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.worldsalaries.org/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I wouldn't rely completely on it if I was you.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-12-14T09:19:15.407" CommentCount="8" />
  <row Id="26258" PostTypeId="1" CreationDate="2010-12-14T09:25:31.450" Score="1" ViewCount="75" Body="&lt;p&gt;I have an HTML form with three fields, first name surname and mid. name and I want to save this information in a php page. The problem is I don't know how to save multiple entries in array without a connection of database.&lt;/p&gt;&#xA;" OwnerUserId="10033" LastActivityDate="2010-12-14T09:25:31.450" ClosedDate="2010-12-14T12:01:53.313" Title="How can save (multiple) entries from a html form to an array in php?" Tags="&lt;php&gt;" CommentCount="2" />
  <row Id="26260" PostTypeId="2" ParentId="26243" CreationDate="2010-12-14T09:32:05.427" Score="19" ViewCount="" Body="&lt;p&gt;It seems like I might be in the minority here but I completely disagree with the answers that it doesn't matter at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Speed (which is a product of dexterity) might not be the most important, &lt;strong&gt;but being able to touch-type is very important.&lt;/strong&gt;  &lt;em&gt;Any&lt;/em&gt; other thinking you have to do is thinking not put toward your coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You just have to pair program with a slow typer to know that it can be a productivity killer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A touch-typer should be able to type around 60 wpm (&lt;a href=&quot;http://en.wikipedia.org/wiki/Touch_typing#Training&quot; rel=&quot;nofollow&quot;&gt;source&lt;/a&gt;).  Anything less than 40 and you are definitely a hunt-and-peck typer, and that's where your productivity as a programmer is going to definitely be hurt.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-14T09:32:05.427" CommunityOwnedDate="2011-03-25T14:40:57.210" CommentCount="3" />
  <row Id="26262" PostTypeId="2" ParentId="25166" CreationDate="2010-12-14T09:43:09.900" Score="0" ViewCount="" Body="&lt;p&gt;Just I wanted to say thank you, for your answers, I had some great input.&lt;/p&gt;&#xA;" OwnerUserId="9440" LastActivityDate="2010-12-14T09:43:09.900" />
  <row Id="26263" PostTypeId="2" ParentId="26256" CreationDate="2010-12-14T09:51:40.543" Score="0" ViewCount="" Body="&lt;p&gt;I'm sure that a lot of users from here will not post theirs incoming due to fact that this is a public forum, and most of the users have a clause of confidentiality. Also, the amount is extremely different in the same country, between 2 cities. Other thing, a Java programmer is paid with X dollars, a Delphi programmer X/2 maybe, a Cobol programmer 2X, etc. So I believe you should edit the question, and make it a little clear (language/experience). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;best regards,&lt;br&gt; &#xA;Radu&lt;/p&gt;&#xA;" OwnerUserId="8755" LastActivityDate="2010-12-14T09:51:40.543" />
  <row Id="26264" PostTypeId="1" CreationDate="2010-12-14T10:02:56.393" Score="5" ViewCount="225" Body="&lt;p&gt;For the last eight years I wait for Microsoft to add the basic C++ functionality of switching back and forth between .h and .cpp files, and it keeps astonishing me it is still not supported in Visual Studio 2010. Does anyone know why they refuse to add this essential feature?  &lt;/p&gt;&#xA;" OwnerUserId="1095" LastActivityDate="2010-12-14T11:40:20.030" Title="Why isn't it possible to switch between header and cpp in Visual Studio?" Tags="&lt;c++&gt;&lt;visual-studio&gt;" AnswerCount="4" />
  <row Id="26265" PostTypeId="2" ParentId="26249" CreationDate="2010-12-14T10:08:01.540" Score="3" ViewCount="" Body="&lt;p&gt;I like Martijn's answer, but I thought I would add my own (because having a choice is good).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How about an analysis of consultancy in different scenarios.  For a reasonably-sized project (a website for a large company, for example), what are the analysis costs, what are the costs of changes in the specification, how much does fixed vs variable costing affect the overall net expendature, and what kind of long-term support is likely to be required?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For another scenario, what about if a software development organisation wants to out-source a project. What are the costs involved here vs just doing it themselves?&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-12-14T10:08:01.540" CommentCount="1" />
  <row Id="26266" PostTypeId="2" ParentId="26264" CreationDate="2010-12-14T10:14:58.883" Score="2" ViewCount="" Body="&lt;p&gt;It's easy to &lt;a href=&quot;http://www.codeproject.com/KB/macros/h_cpp_switcher.aspx&quot; rel=&quot;nofollow&quot;&gt;write a macro that does it&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-14T10:14:58.883" CommentCount="3" />
  <row Id="26268" PostTypeId="2" ParentId="26076" CreationDate="2010-12-14T10:28:44.570" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://notepad-plus-plus.org/&quot; rel=&quot;nofollow&quot;&gt;Notepad++&lt;/a&gt; : a nice, fast, configurable editor with a ton of plugins &lt;br&gt;&#xA;&lt;a href=&quot;http://ditto-cp.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Ditto&lt;/a&gt; : a nice little clipboard manager, for those times when you need to copy about multiple chunks of code &lt;br&gt;&#xA;&lt;a href=&quot;http://technet.microsoft.com/en-us/scriptcenter/dd742419.aspx&quot; rel=&quot;nofollow&quot;&gt;Powershell&lt;/a&gt;&lt;br&gt;&#xA;Everything from &lt;a href=&quot;http://www.sysinternals.com&quot; rel=&quot;nofollow&quot;&gt;http://www.sysinternals.com&lt;/a&gt;&lt;br&gt;&#xA;If you like unixy tools, then &lt;a href=&quot;http://unxutils.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;UnixUtils&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-12-14T10:28:44.570" CommentCount="1" />
  <row Id="26269" PostTypeId="2" ParentId="26243" CreationDate="2010-12-14T10:30:47.843" Score="3" ViewCount="" Body="&lt;p&gt;I'll repeat what I said on the subject over at &lt;a href=&quot;http://superuser.com/questions/120938/does-fast-typing-influence-fast-programming/120940&quot;&gt;SuperUser&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;You need to be able to touch type, otherwise a part of your attention is on the keyboard and not on the problem. Once you can touch type (even if only 40 words/minute) without thinking about it you will not gain any additional advantage while programming. After that the bottleneck is how fast you can think.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6825" LastActivityDate="2010-12-14T10:30:47.843" CommunityOwnedDate="2011-03-25T14:40:57.210" CommentCount="1" />
  <row Id="26270" PostTypeId="2" ParentId="7966" CreationDate="2010-12-14T10:36:22.807" Score="3" ViewCount="" Body="&lt;p&gt;I've had good managers and bad. These are some traits I've noted in bad managers:&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Get's out of the way so you can do your job&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;A good manager will see to it that you have the right equipment to write code.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Micro-manages the wrong details&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;This sort of manager will chew you out over failing to attach a signature to your email while ignoring the extra work you did prior to that email.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Has no interest in the development process&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;This is really a bad sign for a manager in charge of software developers. He doesn't care about investigating other development approaches, will not know what version number the next release of the software should be, will not read blogs like Joel on Software or anything related to managing developers, like Peopleware.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Thinks that he's there for me to report to&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;This sort of manager gets off on having people report to him about everything.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Misallocates time&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Given a month to deliver a development project from start to completion this manager will allocate 3/4 of the month to the design and requirements team to generate 1000 line word documents and expect the dev team to implement it all in a week. He'll also iterate on requirements until they're 'perfect', adding copious amounts of detail until the document becomes unusable. But then later on in the development process you'll find bugs in the design and requirements documentation and realize that the emphasis on trying to write the perfect document was a mistake.&lt;/p&gt;&#xA;" OwnerUserId="8392" LastActivityDate="2010-12-14T10:36:22.807" CommunityOwnedDate="2011-01-26T19:57:30.693" CommentCount="2" />
  <row Id="26271" PostTypeId="1" CreationDate="2010-12-14T10:42:33.020" Score="3" ViewCount="107" Body="&lt;p&gt;I will be leaving my current project in a few days, and as part of securing my knowledge I have been asked to add comments to the code wherever I feel that can add value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem I am running into now is that the comments I want to write are not really suitable as comments, because they do not pertain to a single entity in the code (a few lines, a function, a class or even a file), but they are more about how two or more entities interact with each other or about a feature whose implementation is spread over multiple entities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, how do you go about documenting the stuff that does not belong to a single entity but is important to know to understand the bigger picture?&lt;br&gt;&#xA;And also: Where do you document it? In the source file or in an external document?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an example, we have a client-server architecture in C (with the client and server both running on the same embedded device). To avoid flooding the server, the client has a mechanism to throttle the sending of similar requests to the server such that a request can only be sent if the previous one has been answered.&#xA;The innards of this mechanism are spread over multiple functions.&lt;br&gt;&#xA;Where would you place the documentation of such a feature, especially if the file with the functionality also has some other, unrelated, functions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: Extended the question a bit.&lt;/p&gt;&#xA;" OwnerUserId="5099" LastEditorUserId="5099" LastEditorDisplayName="" LastEditDate="2010-12-14T11:12:16.720" LastActivityDate="2010-12-20T14:24:44.707" Title="Documenting higher-level concepts" Tags="&lt;best-practices&gt;&lt;documentation&gt;" AnswerCount="4" />
  <row Id="26272" PostTypeId="2" ParentId="26271" CreationDate="2010-12-14T10:47:13.550" Score="2" ViewCount="" Body="&lt;p&gt;Describe the system through tech articles which address certain scenarios, depict problem solving ways and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Install a wiki and put the articles online so that the other team members can edit them later.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-14T10:47:13.550" CommentCount="1" />
  <row Id="26273" PostTypeId="2" ParentId="26256" CreationDate="2010-12-14T10:51:37.893" Score="3" ViewCount="" Body="&lt;p&gt;OK.  These figures are really approximate as there are massive variations based on skills, experience and so on but in the UK:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In London a programmer graduate salary ranges from £15,000pa to £50,000+pa (seriously, the merchant banks recruit at that level).  Typically it's somewhere in the low £20,000s I'd estimate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you get a few years experience £30,000 - £40,000 is probably realistic though you can get a lot more if you work at the banks, less if you're working somewhere smaller or more niche (or for the government in some cases).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An experienced development manager / PM earns around £50,000pa - £75,000pa, again more (£100,000+) in the city.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A contractor with good experience would be pulling in £50,000 - £100,000, up to £250,000 working in the city.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Note: when I say in the city I mean in the financial sector - it's a reference to the city of London which is a very specific bit of London - about one square mile - where the big banks used to be based).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Glasgow salaries are a lot lower.  A programmer graduate salary is £15,000pa - £22,000pa, typically £17,000.  A few years experience will move you into the mid £20,000s, and senior developers earn somewhere in the £30,000s depending on experience, skills and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PMs and Development Managers earn more than senior developers, nothing close to London levels.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Glasgow is probably fairly typical for large cities outside London and the South East of England, though there will obviously be variances.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Also worth noting as an aside that these cities have far lower living costs than London and the South East so while you earn less the difference in life style isn't necessarily as pronounced as you'd expect).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-14T10:51:37.893" CommentCount="4" />
  <row Id="26274" PostTypeId="2" ParentId="26264" CreationDate="2010-12-14T10:54:19.037" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.wholetomato.com/&quot; rel=&quot;nofollow&quot;&gt;Visual Assist&lt;/a&gt; does it, but also offers you to open any file in your solution which has a name that includes the substrings you give.  Extremely useful in my opinion: I always use it, but very hardly use the 'jump to header/source' command...&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-12-14T10:54:19.037" CommentCount="1" />
  <row Id="26275" PostTypeId="2" ParentId="26151" CreationDate="2010-12-14T10:59:36.560" Score="3" ViewCount="" Body="&lt;p&gt;This is almost exactly what happened at our company. We followed strict, non-agile methods. When a new Lead Technical Manager joined, who had some experience with &lt;strong&gt;SCRUM&lt;/strong&gt;, he thought it would be good to try it out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way we did it, was to take a small group of developers (and analysts) to make a pilot SCRUM team. We followed strict SCRUM methodology for about 4 months, after which the company reflected on what we have done, how we did it, analysed to data (you know, all the stuff the BA's need to do).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What they found was that the pilot was a great success. So they made another team which follows Kanban, and they too have been a great success. I think there is talk that the rest of the developers also forming SCRUM/Kanban teams.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the pilot was pivotal. It gives the &lt;em&gt;strict&lt;/em&gt; side of the business time to evaluate and see that it works first.&lt;/p&gt;&#xA;" OwnerUserId="8478" LastActivityDate="2010-12-14T10:59:36.560" />
  <row Id="26277" PostTypeId="2" ParentId="26264" CreationDate="2010-12-14T11:00:36.963" Score="1" ViewCount="" Body="&lt;p&gt;As discussions on Visual Assist shows, this feature is far from simple: which extensions are included (.c, .cpp, .cxx, .h, .hpp, .nothingatall, .inl, ...), which way you cycle through them when there are more than two, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I agree it's still a rather simple feature to implement, but it's not as simple as you think.&lt;/p&gt;&#xA;" OwnerUserId="7313" LastActivityDate="2010-12-14T11:00:36.963" />
  <row Id="26278" PostTypeId="2" ParentId="26271" CreationDate="2010-12-14T11:06:13.507" Score="3" ViewCount="" Body="&lt;p&gt;You can probably utilise simple UML diagrams to highlight the high-level concepts.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-14T11:06:13.507" CommentCount="1" />
  <row Id="26280" PostTypeId="2" ParentId="26156" CreationDate="2010-12-14T11:13:18.293" Score="1" ViewCount="" Body="&lt;p&gt;Ask the person that gives you the problem to solve what the constraints are. There are many cases where a tradeoff has to be decided between time and space.  This should be specified.&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-12-14T11:13:18.293" />
  <row Id="26281" PostTypeId="2" ParentId="26271" CreationDate="2010-12-14T11:25:35.700" Score="1" ViewCount="" Body="&lt;p&gt;I've been using &lt;a href=&quot;http://www.tiddlywiki.com/&quot; rel=&quot;nofollow&quot;&gt;TiddlyWiki&lt;/a&gt; to gather some ideas that would not necessarily make a coherent text...  This gets you a single HTML file that contains a Wiki that anyone can edit.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compared to a real Wiki, this is much easier to setup, and it can be stored in your source tree so that it 'follows' the branches and the changes between them.  On the other hand, it's not something that can be edited by several person simultaneously.&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-12-14T11:25:35.700" />
  <row Id="26282" PostTypeId="2" ParentId="26156" CreationDate="2010-12-14T11:39:25.163" Score="1" ViewCount="" Body="&lt;p&gt;If you are unsure how to solve a problem, your very first step should be to look up for existing solutions. Chances are that very clever people have already invented very clever solutions for that problem, say, 30 years ago.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the very unlikely case that no algorithm exists, a possible way to invent one is to first devise the most simple, brute-force method you can think of, then refine and optimize it until it's good enough.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-14T11:39:25.163" />
  <row Id="26283" PostTypeId="2" ParentId="26264" CreationDate="2010-12-14T11:40:20.030" Score="3" ViewCount="" Body="&lt;p&gt;I've not used Visual Studio for a few years, but IIRC the &quot;Go To Definition&quot; and  &quot;Go To Declaration&quot; functions do this (albeit badly, particularly when it comes to constructors)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I imagine that one reason for them not implementing it on a filename basis is that there is nothing about C++ that enforces a convention on the arrangement of classes in files.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;e.g.  The &quot;obvious&quot; way to arrange a class called &quot;MyClass&quot; in a C++ project is to put the class in MyClass.h and the methods in MyClass.cpp.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another, totally plausible way is to put the class definition in &quot;elephant.h&quot; and the methods in &quot;mouse.cpp&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could put all of your classes in one &quot;classes.h&quot; file and define all of your methods in one method per file.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not saying that you should arrange your projects in this way, just that you could, and that's why jumping between .cpp and .h files is implausible, unless done in the same manner in which it is already implemented.&lt;/p&gt;&#xA;" OwnerUserId="628" LastActivityDate="2010-12-14T11:40:20.030" />
  <row Id="26284" PostTypeId="1" AcceptedAnswerId="26290" CreationDate="2010-12-14T11:52:22.670" Score="10" ViewCount="270" Body="&lt;p&gt;So typically a CSV file uses a comma and the return character as it's field and line delimiters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This runs into obvious problems with text which can contain both these characters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously there are options there (escaping them) but how do people handle this?  Use different characters - pipes or tildas?  Escape them?  Not use delimited files, after all it's 2010 and we have XML now?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looking at least effort for a decent chance of not seeing problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Just to be clear, this is a question out of curiosity rather than something more solid - it's something I've come up against time and time again playing with data, always got round it but it normally feels a bit, well, dirty, and wondered what other people's experience was).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-14T15:57:48.617" Title="Best way to handle delimited files" Tags="&lt;file-structure&gt;&lt;delimited-files&gt;&lt;file-handling&gt;" AnswerCount="7" CommentCount="4" FavoriteCount="1" />
  <row Id="26285" PostTypeId="2" ParentId="26243" CreationDate="2010-12-14T11:56:34.723" Score="52" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You Must&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;be able to type without looking at the keyboard.&lt;/li&gt;&#xA;&lt;li&gt;not be thinking about where which key is which on the keyboard (most of the time).&lt;/li&gt;&#xA;&lt;li&gt;be free to watch what is happening on the screen as you type/mouse around.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;You May&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;be able to type in both &lt;strong&gt;Qwerty&lt;/strong&gt; and &lt;strong&gt;Dvorak&lt;/strong&gt;, but it is annoying when pairing and I try to use your keyboard and it is in Dvorak. ;-)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I Will&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;go mental if I have to watch and wait for you to &lt;strong&gt;hunt&lt;/strong&gt; and &lt;strong&gt;peck&lt;/strong&gt; with your two pointiest fingers.&lt;/li&gt;&#xA;&lt;li&gt;be fine if you don't bring up that I can't type quite as fast as you can.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Please&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;learn the key-bindings in the software you use &lt;strong&gt;.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;do not use the mouse to navigate to the edit menu to cut and paste.&lt;/li&gt;&#xA;&lt;li&gt;do not click the &lt;strong&gt;go&lt;/strong&gt; button in your web browser when you just finished typing in the url.&lt;/li&gt;&#xA;&lt;li&gt;find out how to move more than one character at a time when using a console/terminal&lt;/li&gt;&#xA;&lt;li&gt;on unix learn what the &lt;strong&gt;readline&lt;/strong&gt; library is and learn to recognize its presence in the different tools you already use.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;When driving a car that has a standard transmission, one should not have to look down to find where in the gear box you are going to shift gears to.  It may be acceptable to look to find reverse though.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think you need to be a fast typist, just a competent one.&lt;/p&gt;&#xA;" OwnerUserId="5796" LastActivityDate="2010-12-14T11:56:34.723" CommunityOwnedDate="2011-03-25T14:40:57.210" CommentCount="10" />
  <row Id="26286" PostTypeId="2" ParentId="26284" CreationDate="2010-12-14T11:57:25.667" Score="0" ViewCount="" Body="&lt;p&gt;Forget CSV, use &lt;strong&gt;JSON&lt;/strong&gt;. Easy to write, easy to parse. XML is &lt;em&gt;so 2005&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-14T11:57:25.667" CommentCount="9" />
  <row Id="26287" PostTypeId="2" ParentId="26284" CreationDate="2010-12-14T11:58:33.553" Score="1" ViewCount="" Body="&lt;p&gt;i usualy stick to the standard and escape them. in most programming languages there is good builtin support or a good library available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;it depends on the situation which format will be used and CSV is a reasonable format to exchange simple data format structures.&lt;/p&gt;&#xA;" OwnerUserId="6560" LastActivityDate="2010-12-14T11:58:33.553" />
  <row Id="26288" PostTypeId="2" ParentId="14705" CreationDate="2010-12-14T12:05:49.820" Score="3" ViewCount="" Body="&lt;p&gt;Personally, none of the MM softwares I tried ever were as efficient as pen and paper; however, for presenting ideas to someone else, I found that MM softwares help the serious appearance of the presentation compared to pen &amp;amp; paper (but no more than Visio or UML/Merise diagrams would).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Bonus points to the people who know Merise :D)&lt;/p&gt;&#xA;" OwnerUserId="9094" LastActivityDate="2010-12-14T12:05:49.820" />
  <row Id="26289" PostTypeId="2" ParentId="26284" CreationDate="2010-12-14T12:08:28.083" Score="2" ViewCount="" Body="&lt;p&gt;I'm assuming you have something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Foo,Baz,,,&quot;Foo,Baz&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If strings that contain the delimiter aren't quoted or escaped, you have no &lt;em&gt;real&lt;/em&gt; reliable way of parsing the file.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can, however examine the data to parse and draw conclusions like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Comma separated floats should be treated as a string&lt;/li&gt;&#xA;&lt;li&gt;If the line before or after this contains less delimiters, skip parsing this line and log it&lt;/li&gt;&#xA;&lt;li&gt;Treat ' like &quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You do have to write a parser to handle stuff like that, but it doesn't have to be complicated. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, importing massive dumps from something like Excel always results in having to go back and review some oddballs. Your challenge is to give your program &lt;em&gt;just&lt;/em&gt; enough common sense regarding the data so that it doesn't do a crazy insert. Then review what was logged and wash/rinse/repeat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I once handled an internal FAQ for a small company that used all Ubuntu workstations. A part of the FAQ gave 'shell shortcuts', and it came to me pipe delimited. Well, the &lt;em&gt;answers&lt;/em&gt; were also typically pipe delimited (i.e. grep foo | something) and not quoted or escaped. I feel that pain :)&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-14T12:14:02.870" LastActivityDate="2010-12-14T12:14:02.870" />
  <row Id="26290" PostTypeId="2" ParentId="26284" CreationDate="2010-12-14T12:11:08.083" Score="8" ViewCount="" Body="&lt;p&gt;According to &lt;a href=&quot;http://en.wikipedia.org/wiki/Comma-separated_values#Basic_rules&quot; rel=&quot;nofollow&quot;&gt;Wikipedia&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Fields with embedded commas must be enclosed within double-quote characters.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And furthermore:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Fields with embedded double-quote characters must be enclosed within double-quote characters, and each of the embedded double-quote characters must be represented by a pair of double-quote characters.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't know who invented that, but it effectively shows that &lt;strong&gt;eventually you have to escape.&lt;/strong&gt; It's the only solid solution. Everything else is just duct tape on top of duct tape: maybe works for now, but eventually you'll bump on a case where you need an exception to the exception of an exception, and it doesn't take long before your mudball of rules is way more complex than a simple escape character solution had been.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems that CSV creators first tried to avoid escaping commas by coming up with double-quoted special syntax, which allowed saving commas, but then someone wanted to save double-quote characters too, so they had to escape at that point - funnily using the double-quote as an escape character. Had they decided to escape properly in the first place, the syntax would be simpler now.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-12-14T14:44:09.783" LastActivityDate="2010-12-14T14:44:09.783" CommentCount="3" />
  <row Id="26291" PostTypeId="1" AcceptedAnswerId="26296" CreationDate="2010-12-14T12:18:27.630" Score="4" ViewCount="200" Body="&lt;p&gt;The following are the project members.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;1p Project Manager&lt;/li&gt;&#xA;&lt;li&gt;1p System Architect&lt;/li&gt;&#xA;&lt;li&gt;1p Team Lead&lt;/li&gt;&#xA;&lt;li&gt;1p Business Analyst&lt;/li&gt;&#xA;&lt;li&gt;Developers team&#xA;&lt;ol&gt;&#xA;&lt;li&gt;15p Business Developers&lt;/li&gt;&#xA;&lt;li&gt;5p GUI Developers&lt;/li&gt;&#xA;&lt;/ol&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The question:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Is it good/bad to divide a team of developers in to two groups?&lt;/li&gt;&#xA;&lt;li&gt;What are pros and cons?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-12-14T12:26:23.763" LastActivityDate="2010-12-14T13:08:53.163" ClosedDate="2010-12-15T17:42:14.070" Title="Is it good/bad to divide a team of developers in to two groups?" Tags="&lt;project-management&gt;&lt;team&gt;&lt;personality&gt;&lt;personal-project&gt;" AnswerCount="5" CommentCount="3" />
  <row Id="26292" PostTypeId="2" ParentId="26076" CreationDate="2010-12-14T12:18:41.570" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://launchy.net/&quot; rel=&quot;nofollow&quot;&gt;Launchy&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got hooked within an hour and this is honestly the very first program I install on each of my computers; however, instead of using the default option that imports every shortcut from the Start Program, I would rather advise to make a separated folder with only useful shortcuts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Way way faster than using even Windows 7's start menu to open files or run commands, and you can keep a clean desktop. If, for a given string, multiple shortcuts are possible and that you pick a different one than the first choice, it remembers it, so that makes it really intuitive: I often end up having the program already open before I finished thinking &quot;I want to open XYZ program&quot; because my hand already typed ALT + Space + one or a few letters from the name :D)&lt;/p&gt;&#xA;" OwnerUserId="9094" LastActivityDate="2010-12-14T12:18:41.570" CommentCount="1" />
  <row Id="26293" PostTypeId="2" ParentId="26243" CreationDate="2010-12-14T12:22:20.850" Score="4" ViewCount="" Body="&lt;p&gt;Id say between 50 and 60 wpm is pretty good. The speed isn't the important part though; the main point is that your typing isn't a big enough mental strain that it gets in the way of you thinking about your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A comparison:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't need to draw quickly. Even if you're a professional illustrator, you don't have to be able to bang out a detailed human figure in under ten minutes (ok, maybe during the thumbnailing phase, but the quality requirement at that point is so low that you could basically pass a scribble off as a human, as long as it conveyed the posture succinctly). Even so, you don't want your tools to be alien to you. It doesn't actually matter how quickly you can use a pencil, but it must be natural for you to do so. You can't waste any of your brain power on commanding your tool; you need all of it to conceptualize your task. To the point that until you can draw a line as naturally as you can think of one, you will not be a good illustrator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I see it as more or less the same in programming. You don't need to be up at 120wpm all day. All you need to do is get to the point that typing up a sentence, or code block, is as natural as thinking it. You can't be looking for the next key to hit, because that cognitive overhead will get in the way of your work. As people love to say; thinking is more important than typing. Why waste brain power on the typing part? Why not make it effortless and quick, and then concentrate on the &lt;strong&gt;really&lt;/strong&gt; important stuff?&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-12-14T12:22:20.850" CommunityOwnedDate="2011-03-25T14:40:57.210" />
  <row Id="26294" PostTypeId="2" ParentId="26030" CreationDate="2010-12-14T12:24:25.623" Score="4" ViewCount="" Body="&lt;p&gt;In my experience all employment contracts are &quot;at will&quot; - that is, the employer can terminate employment at any time, without notice and without cause.  As some past employers have been fond of mentioning, &quot;You have no right to a job!&quot;.  And that's fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But on the flip side employers have no rights to the continued service of their employees.  You can bail at any point if you want to, and employers should have no expectations otherwise.  If you find a &quot;better job&quot; - i.e. one which pays better; where you're not harassed for being gay/straight/male/female/short/tall/ugly/pretty/scrawny/Porky/Daffy/Bugs/Elmer/etc; where you don't get called at 2 A.M. every night; where you don't have to drive 100 miles to/from work; or whatever you consider &quot;better&quot; - perhaps including no job at all - you should take it.  &lt;em&gt;Nobody&lt;/em&gt; in a business should be indispensable - I believe it was the management guru Tom Peters who recommended immediately firing anyone considered &quot;indispensable&quot; on the grounds that they were just a problem waiting to happen, and the pain of losing said person was better to be faced now than later.  And likewise, no job is indispensable.  If there's a &quot;better&quot; offer out there, take it.  In my experience you're less likely to regret the things you've done than the things you didn't do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Share and enjoy.&lt;/p&gt;&#xA;" OwnerUserId="4848" LastActivityDate="2010-12-14T12:24:25.623" CommentCount="1" />
  <row Id="26295" PostTypeId="1" AcceptedAnswerId="26299" CreationDate="2010-12-14T12:25:01.753" Score="2" ViewCount="206" Body="&lt;p&gt;Which according to you are the top languages to watch out for in 2011 and beyond? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This &lt;a href=&quot;http://regulargeek.com/2010/12/11/9-programming-languages-to-watch-in-2011/&quot; rel=&quot;nofollow&quot;&gt;article &lt;/a&gt; talks about 9 languages to watch out for in 2011. What are your views and inputs on this?&lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-12-14T15:06:46.697" Title="Which according to you are the top languages to watch out for in 2011 and beyond?" Tags="&lt;programming-languages&gt;&lt;progr&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="1" />
  <row Id="26296" PostTypeId="2" ParentId="26291" CreationDate="2010-12-14T12:28:47.307" Score="6" ViewCount="" Body="&lt;p&gt;I would absolutely divide a team of that size into smaller groups, and potentially more than two.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main reason for doing so for me is the level of communication that goes on between that many people.  The number of lines of communication within a group of n people is n * n-1.  So 1 person has 0 lines of communication, 2 people have 2 lines of communication (1 in either direction), 3 people have 6 lines...  And 20 people have 380 lines.  As the team increases in size you're getting a near exponential increase in communications and you very rapidly get beyond the level that each individually can easily cope with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also suggest that you're venturing into a team size where lines of accountability can be muddied because tracking what 20 people are doing is a fairly major task.  With smaller teams the PM / TL give work to the team who are responsible for it and track within their own team who is doing it (though they may ask for a list of who is doing what to ensure everything has been divided out).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal experience is that teams of 5 - 8 people work best.  Communications can be efficient at that size and it's not big enough to require too much administrative overhead.  Everyone is aware of what everyone else is doing without needing to formally track it (you can hold that much information in your head which you can't do for 20 people).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can either let the teams manage themselves of you can have a senior developer within the team who takes a little more responsibility (but whichever you do don't make it a big deal).  &quot;Admin&quot; (holidays, appraisals and so on) are still handled by the TL / PM - this is just about managing the work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The precise number and composition will depend on the project you're on, how the work can be divided down, the skills needed and so on, but I'd suggest you're looking at three groups, maybe even four.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing I would say is that these teams are project teams rather than anything more permanent and people should expect to move freely between them even during a project (and it's desirable to do so to ensure best practice is being spread around).  On a social / bonding level certainly still encourage one team.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-14T12:34:54.660" LastActivityDate="2010-12-14T12:34:54.660" CommentCount="4" />
  <row Id="26297" PostTypeId="2" ParentId="26291" CreationDate="2010-12-14T12:32:40.140" Score="2" ViewCount="" Body="&lt;p&gt;I was at a place that did this, though seemingly not across the same line that you describe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We actually had a team dedicated to sales (to make smaller modifications to the product on a customer by customer basis) and a development team (to work on the core product independently of the clients using it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The pros were that the main development team didn't get so bogged down with day-to-day requests that they couldn't do their job, and the sales department got very nice turnaround times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The con was the obvious reduced communication between teams (the sales team was 4 and the main dev team was 6, so internal communication was probably helped by the split). If the sales-oriented devs resigned themselves to hacking a particular feature in manually for most clients, the main team never really heard about it (the specific example was a particular, time-consuming report that was generated manually for something like two thirds of our clients. Had the main dev team heard about this, we probably would have built it into the main product to save some time).&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-12-14T12:32:40.140" CommentCount="1" />
  <row Id="26298" PostTypeId="2" ParentId="14705" CreationDate="2010-12-14T12:34:42.947" Score="1" ViewCount="" Body="&lt;p&gt;I'm too prone to start thinking in data structures, classes, flow-control, UI, etc. to really take advantage of a mind map. Not that I just start writing code, but it just inevitably gets processed in the mind this way. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mind mapping may be more useful when you're trying to understand an unfamiliar industry or social group. There is no apparent structure, but you're able to identify all the players and start to determine how they relate to one another. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The software is really limited by current interfaces. Computers generally want to provide structure and order for things. Having a larger multiple touch screen is probably what is needed to make the software more popular. Until then they're all probably equally worthless.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-14T12:34:42.947" />
  <row Id="26299" PostTypeId="2" ParentId="26295" CreationDate="2010-12-14T12:36:07.420" Score="3" ViewCount="" Body="&lt;p&gt;Language popularity contests are always suspect. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;AFAIK, the TIOBE index is based on something like averaged search hits for &quot;[name of language] programming&quot; on various sites, which completely misses the point. By that criterion, an article titled &quot;Blub programming sucks balls&quot; is a vote for Blub and &quot;Blub++ programming has driven me insane; I just killed my dog.&quot; is a vote for Blub++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are more important things than how popular a given language is. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;According to me, Lisp (lets say Common Lisp, to be specific), Haskell and Erlang are probably going to be interesting in the next little while. Lisp because some of the concepts it was pushing back in the 70s are finally getting explored in the mainstream, Haskell because it's a highly expressive language with focus on performance (through its optimizing compiler), and Erlang because it was built for programming networks of machines rather than individual computers (which seems like it'll get more and more useful as time goes on). Other than Haskell, I doubt many would agree with this assessment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're merely talking about popularity, keep your eye on Python, Go and the .NET languages (before the Oracle thing, I'd have said Java too, but many Java devs seem to be spooked enough to jump ship lately).&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-12-14T12:46:33.760" LastActivityDate="2010-12-14T12:46:33.760" CommentCount="5" />
  <row Id="26300" PostTypeId="1" CreationDate="2010-12-14T12:38:57.167" Score="0" ViewCount="67" Body="&lt;p&gt;In my database interfacing library &lt;a href=&quot;http://jooq.sourceforge.net&quot; rel=&quot;nofollow&quot;&gt;jOOQ&lt;/a&gt;, I would like to add support for Oracle (or DB2, etc) packages. I have already implemented stored procedure/function support where every stored object is modelled as a generated Java class. For example, this stored function&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;CREATE FUNCTION f_author_exists (name VARCHAR2) RETURNS NUMBER;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;will generate a class that can be used like this (note, there are also lots of convenience methods, this example just shows the general design):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// A new &quot;function call instance&quot;. The function needs to be instanciated&#xA;// once per call&#xA;FAuthorExists f = new FAuthorExists();&#xA;&#xA;// Set the function parameters on the call instance and call it&#xA;f.setName(&quot;Paulo&quot;);&#xA;f.execute(connection);&#xA;&#xA;// Fetch the result from the function call instance&#xA;BigDecimal result = f.getReturnValue();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The reason I chose a mapping &lt;strong&gt;SQL function&lt;/strong&gt; -&gt; &lt;strong&gt;Java Class&lt;/strong&gt; is because stored procedures allow complex return values (several OUT, or IN OUT parameters) that I want to be able to fetch one by one after calling the procedure:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;p.getOutParam1();&#xA;p.getOutParam2();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now this design works fine with stored functions / procedures, where &lt;strong&gt;overloading&lt;/strong&gt; is not possible. Within Oracle's (or DB2's) packages, however, I can have several functions with the same name, like&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;CREATE PACKAGE my_package IS&#xA;  FUNCTION f_author_exists (name VARCHAR2) RETURNS NUMBER;&#xA;  FUNCTION f_author_exists (name VARCHAR2, country VARCHAR2) RETURNS NUMBER;&#xA;END my_package;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;When I generate a class per function (or procedure), I will have naming clashes with several &lt;code&gt;FAuthorExists&lt;/code&gt; Java classes. A lame solution is to add an index to the class name, such as &lt;code&gt;FAuthorExists2&lt;/code&gt;, &lt;code&gt;FAuthorExists3&lt;/code&gt;. Another lame solution is to generate some sort of hash value (or the value itself) from the parameter names/types directly into the classname, such as &lt;code&gt;FAuthorExistsVARCHAR2&lt;/code&gt;, &lt;code&gt;FAuthorExistsVARCHAR2VARCHAR2&lt;/code&gt;. Neither solution is desirable for obvious reasons. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone have a simple solution to this problem? Or maybe an Idea of a better overall design which would not produce such function name overloading issues?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any feedback appreciated!&lt;/p&gt;&#xA;" OwnerUserId="9411" LastActivityDate="2010-12-14T12:38:57.167" ClosedDate="2010-12-14T20:15:23.883" Title="Mapping between Oracle Packages and Java Packages" Tags="&lt;java&gt;&lt;code-generation&gt;&lt;stored-procedures&gt;&lt;packages&gt;" CommentCount="4" />
  <row Id="26301" PostTypeId="1" CreationDate="2010-12-14T12:40:36.310" Score="18" ViewCount="1609" Body="&lt;p&gt;If yes, where and why would you use it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If no, please provide an explanation to why C is not acceptable to you.&lt;/p&gt;&#xA;" OwnerUserId="3306" LastActivityDate="2010-12-14T20:37:29.767" Title="Would you use C, today, for a software project?" Tags="&lt;programming-languages&gt;&lt;c&gt;" AnswerCount="17" CommentCount="3" FavoriteCount="1" />
  <row Id="26302" PostTypeId="2" ParentId="26301" CreationDate="2010-12-14T12:45:07.303" Score="3" ViewCount="" Body="&lt;p&gt;Yes, but depends on project. C is very good for some low-level projects or part of biggest solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eg. For bussines logic ok, but not for user interface.&lt;/p&gt;&#xA;" OwnerUserId="943" LastActivityDate="2010-12-14T12:45:07.303" />
  <row Id="26303" PostTypeId="2" ParentId="26301" CreationDate="2010-12-14T12:45:41.217" Score="16" ViewCount="" Body="&lt;p&gt;Yes, of course. I would use C for writing performance critical pieces of system or low level communication parts. For example I would use C for writing &lt;a href=&quot;http://www.erlang.org/doc/tutorial/nif.html&quot; rel=&quot;nofollow&quot;&gt;NIFs&lt;/a&gt; in Erlang project just because it is The Right Tool(tm) for this sort of job. Or I would use C for writing similar parts (XS) in Perl project.&lt;/p&gt;&#xA;" OwnerUserId="10003" LastActivityDate="2010-12-14T12:45:41.217" />
  <row Id="26304" PostTypeId="2" ParentId="26291" CreationDate="2010-12-14T12:46:51.547" Score="1" ViewCount="" Body="&lt;p&gt;I like to put people to work on stuff that they like doing, and if that coincides with a reasonable strategy to form multiple teams, I'd surely do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't want that, however to result in two people who don't work 'so well' together leading different teams. You have to consider the personalities of everyone who will be working together, if not just the few who need to agree when it's time to merge something into a central repository.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's really hard to say without context. As a general rule, would I do it when possible? Yes .. but 'when possible' can be quite tricky.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-14T12:46:51.547" />
  <row Id="26306" PostTypeId="2" ParentId="26295" CreationDate="2010-12-14T12:59:18.493" Score="0" ViewCount="" Body="&lt;p&gt;I think, MS is going to promote and push forward &lt;strong&gt;F#&lt;/strong&gt; (they already do this AFAIU). Also, I would like to understand what is going to happen with &lt;strong&gt;Java&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-14T12:59:18.493" CommentCount="1" />
  <row Id="26307" PostTypeId="1" CreationDate="2010-12-14T13:00:37.730" Score="5" ViewCount="546" Body="&lt;p&gt;What is the best free issue tracking tool that you have used? Are any of them as good as Jira? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I am embarking on a project that I will not be paid for and which does not qualify for any of Jira's free licenses)&lt;/p&gt;&#xA;" OwnerUserId="5826" LastEditorUserId="5826" LastEditorDisplayName="" LastEditDate="2010-12-14T13:05:43.403" LastActivityDate="2011-04-27T14:04:28.633" Title="Best free alternatives to Jira" Tags="&lt;bug-tracking&gt;" AnswerCount="6" FavoriteCount="4" />
  <row Id="26308" PostTypeId="2" ParentId="26291" CreationDate="2010-12-14T13:03:19.737" Score="0" ViewCount="" Body="&lt;p&gt;I think it is better to divide teams by the projects they are doing, and not their skill/task domains. And for a developer it is good to switch between tasks (GUI - business logic) to have a better understanding of the project as a whole.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-14T13:03:19.737" />
  <row Id="26310" PostTypeId="2" ParentId="26307" CreationDate="2010-12-14T13:04:27.740" Score="0" ViewCount="" Body="&lt;p&gt;I'm liking &lt;a href=&quot;http://www.mantisbt.org/&quot; rel=&quot;nofollow&quot;&gt;Mantis&lt;/a&gt; quite a lot these days. It's simple but powerful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I played with BugZilla but it's just too complex. Every feature you'd ever dream of needing, but every single feature's button is visible all the time. Makes my head hurt.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-14T13:04:27.740" />
  <row Id="26311" PostTypeId="2" ParentId="26307" CreationDate="2010-12-14T13:05:02.080" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.redmine.org/&quot; rel=&quot;nofollow&quot;&gt;Redmine&lt;/a&gt; and &lt;a href=&quot;http://www.fogcreek.com/fogbugz/&quot; rel=&quot;nofollow&quot;&gt;Fogbugz&lt;/a&gt; both are really good. I haven't worked with Fogbugz but heard its very good and also I found that you need to pay for Fogbugz&lt;/p&gt;&#xA;" OwnerUserId="156" LastEditorUserId="156" LastEditorDisplayName="" LastEditDate="2010-12-21T06:57:26.187" LastActivityDate="2010-12-21T06:57:26.187" CommentCount="7" />
  <row Id="26312" PostTypeId="2" ParentId="26307" CreationDate="2010-12-14T13:05:02.717" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.redmine.org&quot; rel=&quot;nofollow&quot;&gt;Redmine&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4677" LastActivityDate="2010-12-14T13:05:02.717" CommentCount="1" />
  <row Id="26313" PostTypeId="2" ParentId="26291" CreationDate="2010-12-14T13:08:53.163" Score="1" ViewCount="" Body="&lt;p&gt;Yes because it's almost impossible for a team to self manage if they are too much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I counter and you listed *&lt;em&gt;2&lt;/em&gt;*3 persons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you remove the project manager that should not be a part of the team, and convert the team lead into a normal team member, you still have &lt;strong&gt;22&lt;/strong&gt; persons to &lt;em&gt;split&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A great team can be composed from 4 to 8 members.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ideal method would be to &lt;strong&gt;let your people create teams themselves&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-12-14T13:08:53.163" />
  <row Id="26314" PostTypeId="2" ParentId="1267" CreationDate="2010-12-14T13:10:39.050" Score="1" ViewCount="" Body="&lt;p&gt;I would answer both yes and no.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes:&#xA; - You can create something almost &quot;mathematically&quot;. That is very much powerful.&#xA; - Something where you brain helps you to be useful. You are irreplaceable as a programmer, apparently (but I'm not sure) a lot of people are afraid to dive into programming as people are afraid to dive into maths, so it values people with enough cerebral initiative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No:&#xA; - Physics can't be beaten, thus your programs will always be limited. (I guess this will stay like that for a long time, but I'm not so sure).&#xA; - Proprietary softwares, languages, standards etc are far from being perfect, but thing will evolve in history, but that sucks to think it will be better later and I won't be there. Stupid constraints feels like it his obligatory dumbness, and I find it awful when logics aren't straights about this.&#xA; - Computers don't solve much in our world now, despite all we can do with them. I guess there are a lot of people who doesn't understand computers and just don't like them. It sucks to see the world is organized through money where it could be organised with datas instead, it would be much more efficient and reliable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a teacher once said, even if programming hurt the mind, it will always be better than digging at the mine.&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2010-12-14T13:10:39.050" />
  <row Id="26315" PostTypeId="2" ParentId="26076" CreationDate="2010-12-14T13:13:50.570" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Editplus: Best editor ever (costs 20$ though).&lt;/li&gt;&#xA;&lt;li&gt;P4Merge: Nicer/cleaner than WinMerge and Beyondcompare (free)&lt;/li&gt;&#xA;&lt;li&gt;Powershell! Finally I get to feel 1337 on the Windowsmachines.&lt;/li&gt;&#xA;&lt;li&gt;KiTTy and WinSCP for the linux boxes&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="547" LastActivityDate="2010-12-14T13:13:50.570" />
  <row Id="26316" PostTypeId="2" ParentId="26301" CreationDate="2010-12-14T13:14:05.550" Score="36" ViewCount="" Body="&lt;h2&gt;C is a great language for System programming&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I would use C if I implemented some harware drivers. And I would use C if I implement my own Operating System kernel or my own Virtual Machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a very good language to do low-level things if you have to deal with hardware or low-level OS APIs for Windows API, Linux, Mac OS X, Solaris and so on... Embedded systems has usually good support for C with a compiler + development kit.&lt;/p&gt;&#xA;" OwnerUserId="18" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-12-14T14:40:40.740" LastActivityDate="2010-12-14T14:40:40.740" CommentCount="13" />
  <row Id="26317" PostTypeId="2" ParentId="26076" CreationDate="2010-12-14T13:17:17.293" Score="5" ViewCount="" Body="&lt;p&gt;Some tools that I wouldn't want to live without:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;IDEs&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from my main IDE (VisualStudio + SQL Server Management Studio) I also have the following installed:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.icsharpcode.net/opensource/sd/&quot; rel=&quot;nofollow&quot;&gt;Sharp Develop&lt;/a&gt;: An open source IDE for .Net development.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://netbeans.org/&quot; rel=&quot;nofollow&quot;&gt;NetBeans&lt;/a&gt;: An open source IDE for Java etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Other Editors&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The IDE isn't always appropriate for some content types:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://notepad-plus-plus.org/&quot; rel=&quot;nofollow&quot;&gt;Notepad ++&lt;/a&gt;: The &lt;em&gt;best&lt;/em&gt; text editor.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.getpaint.net/&quot; rel=&quot;nofollow&quot;&gt;Paint.Net&lt;/a&gt;: Not photoshop, but a superb (and free) bitmap editor.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Light-Weight Planning Tools&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.codeproject.com/KB/applications/todolist2.aspx&quot; rel=&quot;nofollow&quot;&gt;ToDoList&lt;/a&gt;: A todo list manager for programmers. Open source.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://freemind.sourceforge.net/wiki/index.php/Main_Page&quot; rel=&quot;nofollow&quot;&gt;Freemind&lt;/a&gt;: Free mind mapping software.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;File System Tools&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.mythicsoft.com/page.aspx?type=agentransack&amp;amp;page=home&quot; rel=&quot;nofollow&quot;&gt;Agent Ransack&lt;/a&gt;: A free file searching utility.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.slysoft.com/en/virtual-clonedrive.html&quot; rel=&quot;nofollow&quot;&gt;Virtual CloneDrive&lt;/a&gt;: A freeware tool for mounting ISO images of CDs and DVDs.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Web Tools&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.mozilla-europe.org/en/firefox/&quot; rel=&quot;nofollow&quot;&gt;Firefox&lt;/a&gt;: The &lt;em&gt;best&lt;/em&gt; browser (unless you prefer &lt;a href=&quot;http://www.google.com/chrome&quot; rel=&quot;nofollow&quot;&gt;Chrome&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://lastpass.com/&quot; rel=&quot;nofollow&quot;&gt;LastPass&lt;/a&gt;: A password manager (free edition available).&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.7-zip.org/&quot; rel=&quot;nofollow&quot;&gt;7-Zip&lt;/a&gt;: Free file archiver.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Content Viewers&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.videolan.org/vlc/&quot; rel=&quot;nofollow&quot;&gt;VLC Media Player&lt;/a&gt;: An open-source media player that &quot;plays everything&quot;... almost.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Web Development Tools&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://getfirebug.com/&quot; rel=&quot;nofollow&quot;&gt;Firebug&lt;/a&gt;: A firefox addin that enables you to edit, debug, and monitor CSS, HTML, and JavaScript live withing the browser.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=95e06cbe-4940-4218-b75d-b8856fced535&quot; rel=&quot;nofollow&quot;&gt;Internet Explorer Developer Toolbar&lt;/a&gt;: Free browser extension for Internet Explorer, provides tools for quickly creating, understanding, and troubleshooting Web pages (like Firebug but for IE).&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://projects.nikhilk.net/WebDevHelper&quot; rel=&quot;nofollow&quot;&gt;Web Development Helper&lt;/a&gt;: Free browser extension for Internet Explorer that provides a set of tools and utilities for the Web developer, esp. Ajax and ASP.NET developers.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.fiddler2.com/fiddler2/&quot; rel=&quot;nofollow&quot;&gt;Fiddler&lt;/a&gt;: Free web debugging proxy.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1928" LastEditorUserId="1928" LastEditorDisplayName="" LastEditDate="2010-12-14T13:33:32.333" LastActivityDate="2010-12-14T13:33:32.333" />
  <row Id="26318" PostTypeId="2" ParentId="26284" CreationDate="2010-12-14T13:19:43.687" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Nothing wrong with CSV up to a point&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;CSV works well for rigidly defined data that is unlikely to change format and doesn't spring many surprises on the recipient parser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a handy list of the big gotchas:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Escaping &quot;&quot;s within &quot;&quot;s (field contains field delimiter)&lt;/li&gt;&#xA;&lt;li&gt;&quot;&quot;s containing CRLFs (field contains line delimiter)&lt;/li&gt;&#xA;&lt;li&gt;Unicode (underlying text format may be insufficient)&lt;/li&gt;&#xA;&lt;li&gt;Different line terminators for different OSes (is CR or CRLF or LF or NUL?)&lt;/li&gt;&#xA;&lt;li&gt;Inline comments (line prefixed with #, //, --, ; etc)&lt;/li&gt;&#xA;&lt;li&gt;Version management (the latest version of the file contains more or less fields)&lt;/li&gt;&#xA;&lt;li&gt;Differentiating between NULL and empty data (,&quot;&quot;, is empty but ,, is null?)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;You could approach this with a meta-data header that describes how the fields should be parsed, but then you may as well just use XML. It's because of this sort of freeform CSV mess that it was invented. The XML approach just seems too heavyweight for what could, on the face of it, be a simple problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A popular alternative is the &quot;weird character delimiter&quot; strategy. This gets around a lot of the escaping issues above because you use something like a | (pipe) character for field delimiting, and a CRLF for record termination. This doesn't get around the multi-line field issue (unless you use a field counter) but you do get nicely formatted lines for humans. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall, if you're just looking for a simple way of handling this kind of file then, in the Java world, you could simply throw &lt;a href=&quot;http://opencsv.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;OpenCSV&lt;/a&gt; at it. That way you abstract away all of the problems into an established framework.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-14T13:19:43.687" />
  <row Id="26319" PostTypeId="2" ParentId="26307" CreationDate="2010-12-14T13:24:48.820" Score="3" ViewCount="" Body="&lt;p&gt;The first question is whether this is a small project with only a few users to worry about.  If the number of expected users is 10 or fewer, you qualify for the low cost but still not free option for both Atlassian Jira ($10 USD) and JetBrains YouTrack ($75).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that doesn't fit the bill, then check out this site for feature comparisons:&#xA;&lt;a href=&quot;http://en.wikipedia.org/wiki/Comparison_of_issue-tracking_systems&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Comparison_of_issue-tracking_systems&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I've used &lt;a href=&quot;http://www.redmine.org/&quot; rel=&quot;nofollow&quot;&gt;Redmine&lt;/a&gt; and &lt;a href=&quot;https://lighthouseapp.com/&quot; rel=&quot;nofollow&quot; title=&quot;Lighthouse&quot;&gt;LightHouse&lt;/a&gt;.  Others like &lt;a href=&quot;http://trac.edgewall.org/&quot; rel=&quot;nofollow&quot;&gt;Trac&lt;/a&gt;.  The good news is you can get a feel for them before you sign up.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-14T13:24:48.820" CommentCount="3" />
  <row Id="26320" PostTypeId="2" ParentId="25276" CreationDate="2010-12-14T13:27:14.023" Score="0" ViewCount="" Body="&lt;p&gt;I tend to be &lt;strong&gt;clever&lt;/strong&gt;, but I strive to be &lt;strong&gt;elegant&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Develop code &lt;strong&gt;now&lt;/strong&gt; that others will not try and avoid &lt;strong&gt;later&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5796" LastActivityDate="2010-12-14T13:27:14.023" CommunityOwnedDate="2011-01-08T19:36:34.897" />
  <row Id="26321" PostTypeId="2" ParentId="26243" CreationDate="2010-12-14T13:27:19.760" Score="6" ViewCount="" Body="&lt;p&gt;It &lt;strong&gt;does matter&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;High WPM provides:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;agility in programming and editing, changing, reformatting, restructuring text files. &lt;/li&gt;&#xA;&lt;li&gt;responsiveness and timely expressiveness in written communications (email, im etc).&lt;/li&gt;&#xA;&lt;li&gt;proof that you've been on the keyboard long enough. The truth is that no programmer is made by the books or university classes.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;To answer the OP's question, I've conducted an unofficial test between 10 programmers in a team and found that most programmers already type in 40+ and it's OK, but no exceptional programmer was typing in anything less than 65+ WPM.&lt;/p&gt;&#xA;" OwnerUserId="10046" LastActivityDate="2010-12-14T13:27:19.760" CommunityOwnedDate="2011-03-25T14:40:57.210" CommentCount="8" />
  <row Id="26322" PostTypeId="1" AcceptedAnswerId="26332" CreationDate="2010-12-14T13:32:06.743" Score="5" ViewCount="415" Body="&lt;p&gt;If you could describe your ideal development environment, what would it be? There are numerous things to take into consideration, including but not limited to:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Hardware&lt;/li&gt;&#xA;&lt;li&gt;Software (&lt;em&gt;Operating System of Choice&lt;/em&gt;, Paid vs. Free Software, ...)&lt;/li&gt;&#xA;&lt;li&gt;Physical Environment (lighting, open-plan, location, ...)&lt;/li&gt;&#xA;&lt;li&gt;An endless supply of coffee...&lt;/li&gt;&#xA;&lt;li&gt;...&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In other words, if you could tell your company what they could do to make your development experience there better, what would it be?&lt;/p&gt;&#xA;" OwnerUserId="8478" LastEditorUserId="6180" LastEditorDisplayName="" LastEditDate="2011-03-19T02:50:45.017" LastActivityDate="2011-03-19T02:50:45.017" Title="What is your favourite/ideal development environment?" Tags="&lt;work-environment&gt;&lt;software-developer&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="2" />
  <row Id="26323" PostTypeId="2" ParentId="23845" CreationDate="2010-12-14T13:32:36.187" Score="1" ViewCount="" Body="&lt;p&gt;I can definitely recognize myself in the way you describe your workflow. Here's the thing: when I started working in a group environment, almost all that stuff HAD to change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The job I've been in for about 8 months now is really my first experience at working in a team of developers on a single project. Until now, literally my whole career has been as a lone-wolf coder who didn't have to deal with all that comes with teamwork. Even when I worked in a group, it was always fairly siloed work--I had my project that was MINE, or my section of it that was MINE, etc. It was an interesting learning curve as I brought myself up to speed with a truly collaborative team work environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's the main thing I've realized: if it's not bloody obvious what you're doing, you're probably writing a colleague's next headache. Most of the &quot;process-oriented&quot; fussiness you see here has to do with the fact that many of us have BEEN the colleague with the headache. And most software process management theory has to do with minimizing that headache. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So things like planning out an agreed-upon plan ahead of time, etc... Those are about having a team on board and in sync. If you're the team, you're already in sync with yourself, and that's not really necessary.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-14T13:32:36.187" />
  <row Id="26324" PostTypeId="2" ParentId="26155" CreationDate="2010-12-14T13:35:35.353" Score="0" ViewCount="" Body="&lt;p&gt;Beware about OOP: it is not just about the language's features. You can use OOP with data structures, like it was done in Quake 3 Arena.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, about the high level subject such as inheritance and polymorphism, there are not that much useful, but are absolutely necessary for things like complex interfaces or very large software models.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember that the arrival of massively multi core processors will bring something that will be much more powerful and useful than OOP. Thanks to processes, messages, tubes and sockets, it would allow one to think in terms of simultaneous programs, datafiles and messages, thus allowing much more sub-divided applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Classes just shape your data and how you make it behave, but it is still a single program with a single stack pointer per core processor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OOP is just some kind of abstract way of better organizing your code, but it applies for ones who don't organizes it well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think OOP as being that much better because you still need to use procedural things when you code, so for me OOP is just something fancy which makes programming a little less bloated, but it doesn't really bring something that procedural programming has not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It feels much more like a constraint than something else, but it is a good constraint.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think OOP would be much MUCH powerful if it would be use in massively multi-threaded applications, but I don't really know about those kind of theorical fields.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I'm ranting nuts. Just learn OOP and use it with procedural programming. Bleh.&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2010-12-14T13:35:35.353" />
  <row Id="26325" PostTypeId="2" ParentId="26295" CreationDate="2010-12-14T13:40:14.253" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It's all about who is demanding&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People need motivation to learn languages, and without that motivation few languages are likely to become popular. Here's a quick list of the thought processes that typically apply when a developer is faced with learning a new language.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Can I easily pick this language up? (Impossible syntax implies failure)&lt;/li&gt;&#xA;&lt;li&gt;Can I use my existing knowledge with this language? (Hey, it works on the JVM/.Net, I know those libraries inside out so I'm not a noob)&lt;/li&gt;&#xA;&lt;li&gt;Will it pay the bills? (No jobs asking for this that are tele/commutable implies failure)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;But the overriding item is simply: &lt;em&gt;Who says I have to learn this, me or my boss?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's your boss then all other options are out the window - &lt;strong&gt;you will learn it&lt;/strong&gt;. If it's you, then maybe (if you're keen) or definitely (if your ongoing work depends on it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;So what does your boss want you to learn?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The hot topics today are making highly scalable concurrent web applications that (sometimes) handle large datasets and are extremely quick to change to meet market needs. Your boss will be reading the technical literature and blogs that promote the idea that his team needs to change language to remain current in the marketplace.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Enter &lt;strong&gt;functional programming&lt;/strong&gt; (F#, Erlang, Haskell, Lisp dialects) and &lt;strong&gt;data querying&lt;/strong&gt; (R) languages. &lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-14T15:06:46.697" LastActivityDate="2010-12-14T15:06:46.697" />
  <row Id="26326" PostTypeId="2" ParentId="1267" CreationDate="2010-12-14T13:45:42.250" Score="0" ViewCount="" Body="&lt;p&gt;Some parts of the profession I enjoy, mostly solving a problem in a new domain or developing a new product (version 1.0).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some parts I dislike, such as maintaining legacy code, occasionally having to work with languages I hate like PHP, and similar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in overall I can say that being one of those guys who know 'how stuff works' really makes me proud of my profession.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-14T13:45:42.250" />
  <row Id="26328" PostTypeId="2" ParentId="26243" CreationDate="2010-12-14T13:51:49.073" Score="3" ViewCount="" Body="&lt;p&gt;I know very productive programmers that do not touch type, and it doesn't affect their productivity at all.  What I think matters a great deal more is whether or not you are a &quot;mouser&quot; or a &quot;hotkeyer&quot;.  For example, it drives me insane when I pair program, and the other developer uses his mouse to start debugging, single step, advance through bookmarks, etc. etc.  How hard is it to learn F5, F10, F11, Shift-F11, etc?&lt;/p&gt;&#xA;" OwnerUserId="10048" LastActivityDate="2010-12-14T13:51:49.073" CommunityOwnedDate="2011-03-25T14:40:57.210" CommentCount="5" />
  <row Id="26329" PostTypeId="2" ParentId="26284" CreationDate="2010-12-14T13:56:57.197" Score="2" ViewCount="" Body="&lt;p&gt;CSV is still a valid format in many situations, especially since it's still got to be the easiest way for a customer to write data that needs to be imported into your application.  Few of our customers like to deal with XML, perhaps because it's very verbose and has all of those  &quot;scary&quot; angle brackets.  It's so much simpler for them to wrap their brains around a simple list of items separated by an agreed upon character, and also agree that the same character will not be allowed in the contents of a field.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, you still have to handle the input correctly and check for situations where they use invalid characters.  I've started to use FileHelpers for my CSV parsing needs.&lt;/p&gt;&#xA;" OwnerUserId="10048" LastActivityDate="2010-12-14T13:56:57.197" />
  <row Id="26330" PostTypeId="2" ParentId="26322" CreationDate="2010-12-14T14:08:01.137" Score="1" ViewCount="" Body="&lt;p&gt;Since I am a .NET developer primarily, I would have to say (and I have this already, well most of them except for maybe #5):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Nice box with plenty of memory and CPU power, two 30&quot; monitors or 3 24&quot; monitors&lt;/li&gt;&#xA;&lt;li&gt;Windows 7 x64 - Ultimate/Professioal&lt;/li&gt;&#xA;&lt;li&gt;Visual Studio 2010 for C# 4.0/ASP.NET MVC2/WPF/Linq to Entities&lt;/li&gt;&#xA;&lt;li&gt;SQL Server 2008 R2 for Database and Report Services&lt;/li&gt;&#xA;&lt;li&gt;Nice open environment with lots of smart people that love agile software development, take responsibility for their projects, etc.&lt;/li&gt;&#xA;&lt;li&gt;Coffee is good, but I am more partial to tea. Perhaps something from &lt;a href=&quot;http://www.teavana.com/&quot; rel=&quot;nofollow&quot; title=&quot;Teavana&quot;&gt;Teavana&lt;/a&gt; or the like.&lt;/li&gt;&#xA;&lt;li&gt;A kegerator :-/&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="9174" LastActivityDate="2010-12-14T14:08:01.137" />
  <row Id="26331" PostTypeId="2" ParentId="26322" CreationDate="2010-12-14T14:11:41.047" Score="-1" ViewCount="" Body="&lt;p&gt;Don't forget to have a Wii nearby with Balance Board and all known snowboarding and skateboarding games (including Shaun White's) for thinking and blowing off steam. I guess you could expand this to the newer stuff like Playstation Move or the other one by that company in Washington (something soft? I can never remember).&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-12-14T14:11:41.047" CommentCount="2" />
  <row Id="26332" PostTypeId="2" ParentId="26322" CreationDate="2010-12-14T14:12:48.397" Score="13" ViewCount="" Body="&lt;h1&gt;The office that is six steps away from my bedroom&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;On my desk, I have the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Two very large monitors&lt;/li&gt;&#xA;&lt;li&gt;A very high quality SIP phone (Polycom) featuring a do not disturb button that is left (mostly) on.&lt;/li&gt;&#xA;&lt;li&gt;All of the supplies that I'll ever need (paper, pens, notebooks, etc)&lt;/li&gt;&#xA;&lt;li&gt;Enough HW (test switches, SBC's etc) to get my job done.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Surrounding me are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;All things that I've collected that say &quot;hard work pays off&quot;&lt;/li&gt;&#xA;&lt;li&gt;A nice couch if I want a nap&lt;/li&gt;&#xA;&lt;li&gt;My own collection of books (used frequently, my sticky notes proliferate from them)&lt;/li&gt;&#xA;&lt;li&gt;A collection of rare Jazz / Blues CD's (many of which are autographed)&lt;/li&gt;&#xA;&lt;li&gt;A stereo that I can play as loud as I want (the room is mostly soundproof)&lt;/li&gt;&#xA;&lt;li&gt;Climate control that I alone control&lt;/li&gt;&#xA;&lt;li&gt;My choice of lighting&lt;/li&gt;&#xA;&lt;li&gt;A desk that elevates if I want to stand&lt;/li&gt;&#xA;&lt;li&gt;A chair that (is mostly) ergonomic. Too many knobs for tension, replacing it soon.&lt;/li&gt;&#xA;&lt;li&gt;Total control over my disruptions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Downstairs, I have&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Endless munchies, coffee and a full kitchen to cook my own food the way that I like it&lt;/li&gt;&#xA;&lt;li&gt;My kid, and she loves seeing me when she comes home from school (coinciding with my lunch break)&lt;/li&gt;&#xA;&lt;li&gt;Even more books and reference materials&lt;/li&gt;&#xA;&lt;li&gt;3 more computers if I need them&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;My morning / afternoon commute? About 4 1/2 seconds. 60 if you count the time it takes to get a cup of coffee.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Who paid for most of it? My company. While I'd have a hard time expensing a frying pan, I can get books, memory, replacement parts, a box full of office supplies, whiteboards, etc without difficulty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If not working, I never come in here. The whole point of having it is saying to my brain &quot;office means work, bedroom means sleep&quot; .. unless of course I'm using the couch, but that is reserved for strictly work related naps, or just when I need to 'not be at my desk' for a while.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if I have to work late, I'm just a few steps away from home.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-14T14:18:15.787" LastActivityDate="2010-12-14T14:18:15.787" CommentCount="3" />
  <row Id="26333" PostTypeId="2" ParentId="26243" CreationDate="2010-12-14T14:13:37.097" Score="5" ViewCount="" Body="&lt;p&gt;I think its pretty hard to compare writing code vs writing English or whatever language you speak. I probably type upwards of 80 words per minute when I am writing a document but when I'm coding I tend to go pretty slowly. I don't think its important for you to rush through your code like that personally but I do agree that learning your key bindings and shortcuts is a huge deal. If you've ever paired with someone who has no idea how to use his or her development environment you will most definitely go mental!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I knew a guy who could write SQL like he was typing a word document. It was unbelievable and looked impressive, until he coded a massive cartesian and brought the entire server down.&lt;/p&gt;&#xA;" OwnerUserId="9174" LastActivityDate="2010-12-14T14:13:37.097" CommunityOwnedDate="2011-03-25T14:40:57.210" CommentCount="1" />
  <row Id="26334" PostTypeId="2" ParentId="26322" CreationDate="2010-12-14T14:13:52.247" Score="0" ViewCount="" Body="&lt;p&gt;Shamelessly stealing off Steven Elliott Jr here.  Since I am a Java developer primarily, I would have to say:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Nice box with plenty of memory and CPU power, two 30&quot; monitors or 3 24&quot; monitors&lt;/li&gt;&#xA;&lt;li&gt;Linux/Unix&lt;/li&gt;&#xA;&lt;li&gt;Eclipse&lt;/li&gt;&#xA;&lt;li&gt;Sybase/MySql/PostGres for Database&lt;/li&gt;&#xA;&lt;li&gt;Nice open environment with lots of smart people that love agile software development, take responsibility for their projects, etc.&lt;/li&gt;&#xA;&lt;li&gt;Coffee is good&lt;/li&gt;&#xA;&lt;li&gt;Whiteboards!!&lt;/li&gt;&#xA;&lt;li&gt;aircon that doesn't suck&lt;/li&gt;&#xA;&lt;li&gt;relatively quiet&lt;/li&gt;&#xA;&lt;li&gt;Comfy chair&lt;/li&gt;&#xA;&lt;li&gt;Big desk to hold my books :)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-14T14:13:52.247" />
  <row Id="26335" PostTypeId="1" CreationDate="2010-12-14T14:14:00.390" Score="0" ViewCount="90" Body="&lt;p&gt;I'm developing a .NET application which is composed by one server and multiple clients.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the problems I've encountered is the mass of network messages to handle in order to notify clients about a server-side object (due another client interaction and whatever), and message able to instruct the server to perform actions on the common database.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some months ago, I thought that .NET reflection could be used to synchronize generic objects between connected applications. So I've developed a library which aids the synchronization between two application of a common database.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I'm asking to all of you are advices and critics about the architecture design of the library. Actually the job satisfy all my requirements, but surely there are some aspect I've ignored for proposing the library as a good distributed database system.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt; Generic Object Access&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main idea is the following: describing object accesses (method access, property access, indexed property access), it is possible to iterate over a generic object using reflection, calling methods, properties, indexers and fields.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using a list of &quot;&lt;em&gt;object accessors&lt;/em&gt;&quot;, it is possible to execute any sequence of commands on a generic object. Specifying a &quot;&lt;em&gt;root object&lt;/em&gt;&quot; (which the first &lt;em&gt;object access&lt;/em&gt; is referred to it). Successive object access are executed on the object returned by the previous object access.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this way it is possible to &quot;script&quot; an object access using reflection. Good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An object accessor could be defined as:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public abstract class ReactObjectAccessor&#xA;{&#xA;    /// &amp;lt;summary&amp;gt;&#xA;    /// Access to an object.&#xA;    /// &amp;lt;/summary&amp;gt;&#xA;    /// &amp;lt;param name=&quot;obj&quot;&amp;gt;&#xA;    /// A &amp;lt;see cref=&quot;System.Object&quot;/&amp;gt; which has to be accessed.&#xA;    /// &amp;lt;/param&amp;gt;&#xA;    /// &amp;lt;returns&amp;gt;&#xA;    /// It returns the object resulted due the object access. It actually depends on the Access implementation,&#xA;    /// but if it returns null it means that the object access cannot be iterated further.&#xA;    /// &amp;lt;/returns&amp;gt;&#xA;    public abstract object Access(object obj);&#xA;&#xA;    /// &amp;lt;summary&amp;gt;&#xA;    /// Determine whether this ReactObjectAccessor set the object field/property/indexer.&#xA;    /// &amp;lt;/summary&amp;gt;&#xA;    public abstract bool IsSetter { get; }&#xA;&#xA;    /// &amp;lt;summary&amp;gt;&#xA;    /// Get the value set to the object, in the case this ReactObjectAccessor is a setter one.&#xA;    /// &amp;lt;/summary&amp;gt;&#xA;    public abstract object SetValue { get; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A sequence of object accessors is processed sequentially. The returned object by &lt;em&gt;Access&lt;/em&gt; routine is specified as argument of the same routine of the next &lt;em&gt;ReactObjectAccess&lt;/em&gt; in the sequence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Class deriving from &lt;em&gt;ReactObjectAccess&lt;/em&gt; are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;PropertyAccessor&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;IndexedPropertyAccessor&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;MethodAccessor&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;MethodAccessor.Access&lt;/em&gt; returns the method returned value (and in the case of void, it returns null). At the end of the sequence there is (but it could not be) a setter object access.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt; Object Access Detection&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would be awesome to have an &quot;automatic/magic&quot; mechanism which inform remote clients about a database modification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To accomplish this, I defined some base object classes, which their salient characteristics are shown in the following code snippet:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class ReactEventArgs : EventArgs&#xA; {&#xA;  /// &amp;lt;summary&amp;gt;&#xA;  /// Construct ReactEventArgs for an event raised from a specific routine.&#xA;  /// &amp;lt;/summary&amp;gt;&#xA;  public ReactEventArgs(MethodBase source, params ReactObjectAccessor[] accessors)&#xA;   : this(source, Reason.Normal, accessors)&#xA;  {&#xA;&#xA;  }&#xA;&#xA;  internal ReactEventArgs(MethodBase source, Reason reason, params ReactObjectAccessor[] accessors)&#xA;  {&#xA;   mEventReason = reason;&#xA;   mEventSource = source;&#xA;   mEventAccessorData = accessors;&#xA;  }&#xA;&#xA;  /// &amp;lt;summary&amp;gt;&#xA;  /// Construct ReactEventArgs for an event raised from another event.&#xA;  /// &amp;lt;/summary&amp;gt;&#xA;  public ReactEventArgs(ReactEventArgs inner, params ReactObjectAccessor[] accessors)&#xA;  {&#xA;   mEventReason = inner.mEventReason;&#xA;   mInnerEventArgs = inner;&#xA;   mEventAccessorData = accessors;&#xA;  }&#xA;&#xA;  public enum Reason&#xA;  {&#xA;       Normal,&#xA;       Virtual,&#xA;       Fictive&#xA;  }&#xA;&#xA;  public Reason EventReason { get; }&#xA;&#xA;  public MethodBase EventSource { get; }&#xA;&#xA;  public ReactEventArgs InnerEventArgs { get;}&#xA;&#xA;  private ReactObjectAccessor[] mEventAccessorData = null;&#xA; }&#xA;&#xA;/// &amp;lt;summary&amp;gt;&#xA; /// Interface implemented by reacting objects.&#xA; /// &amp;lt;/summary&amp;gt;&#xA; public interface IReactObject : ICloneable&#xA; {&#xA;  event EventHandler&amp;lt;ReactEventArgs&amp;gt; ObjectChanged;&#xA;&#xA;&#xA;  void CopyObject(IReactObject other);&#xA; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So, the &lt;em&gt;ObjectChanged&lt;/em&gt; event say to subscribers: &quot;This object has changed becuase one or more of its properties have changed&quot;, and its event argument collect the &lt;em&gt;object accessors&lt;/em&gt; which are required for replicating the operations which has caused the event.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A typical code which notify the object changed shall look as the following snippet:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  [XmlElement(ElementName = &quot;ApplicationName&quot;, IsNullable = false)]&#xA;  public string ApplicationName&#xA;  {&#xA;   get { lock (SyncRoot) { return (mApplicationName); } }&#xA;   set {&#xA;    lock (SyncRoot) {&#xA;     if (mApplicationName != value) {&#xA;      // Store application name&#xA;      mApplicationName = value;&#xA;      // Raise relative event&#xA;      RaiseObjectChanged(new ReactEventArgs(MethodBase.GetCurrentMethod(), new ReactObjectPropertyAccessor(&quot;ApplicationName&quot;, mApplicationName)));&#xA;     }&#xA;    }&#xA;   }&#xA;  }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That is, if the object instance have set the &lt;em&gt;ApplicationName&lt;/em&gt; property, raise the &lt;em&gt;ObjectChanged&lt;/em&gt; event, specifying that for replicating the action the object property &quot;&lt;em&gt;ApplicationName&lt;/em&gt;&quot; shall be set with the value &quot;&lt;em&gt;mApplicationName&lt;/em&gt;&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can note the &lt;em&gt;ReactEventArgs&lt;/em&gt; construct which takes as argument another &lt;em&gt;ReactEventArgs&lt;/em&gt;. This is fundamental in the software design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Infact, a &lt;em&gt;IReactObject&lt;/em&gt; class, which has a property implementing &lt;em&gt;IReactObject&lt;/em&gt;, shall raise the &lt;em&gt;ObjectChanged&lt;/em&gt; event when the nested property (of type &lt;em&gt;IReactObject&lt;/em&gt;) has raised the &lt;em&gt;ObjectChanged&lt;/em&gt; event (of course, an object changes whenever one of its properties changes, building a chain of nested events).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The subscription of the inner properties deriving from &lt;em&gt;IReactObject&lt;/em&gt; is done automatically a construction time, using reflection. The central point is that the higher &lt;em&gt;ObjectChanged&lt;/em&gt; event (raised becuase another &lt;em&gt;ObjectChanged&lt;/em&gt; event) keep track of nested event arguments.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt; Collections&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In order to construct a complex data structures we application need a collection (simply a list), but which has the additional events as:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;ItemAdded&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;ItemRemoved&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;ItemChanged&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The above events follow the same logic described in the Step 2. The collection object raises the ObjectChanged event every time an items is added, removed or changed. In this way it's possible to have a collection of IReactObject which cause the event to be propagated until the root object.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Step 4&lt;/strong&gt; Remote Client Notifications&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this way it is possible to construct a generic object pattern which is used by the remote application to replicate actions on the synchronized database on server side. The beautiful thing is that the &lt;em&gt;ObjectChanged&lt;/em&gt; event is raised even on remote application, allowing to react to synchronization events.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the upper level, there is a root object which is registered by name at application level (all application shall known the root object type and name). This root object has a ObjectChanged event which is raised whenever any class instances referred by the root object (at any level), holding all object accessors required for replicating the object access on remote application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This sequence of object accessor are serialized and sent to connected remote clients, which execute the object access sequence (using &lt;em&gt;ReactObjectAccessor&lt;/em&gt; classes).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note the &lt;em&gt;ReactEventArgs.Reason.Fictive&lt;/em&gt;: calling &lt;em&gt;ReactObjectList.Clear()&lt;/em&gt; cause the raising of the event &lt;em&gt;ItemRemoved&lt;/em&gt; for each item included in the list, but it also raise a &quot;&lt;em&gt;Normal&lt;/em&gt;&quot; &lt;em&gt;ObjectChanged&lt;/em&gt; event for the method call &lt;em&gt;ReactObjectListClear()&lt;/em&gt;. This will be useful for filtering events when notifying remote clients; in the list case it will be notified only the &lt;em&gt;Clear()&lt;/em&gt; call, instead the remotion of N items.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Step 5&lt;/strong&gt; Remote Client Interaction&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Client cannot modify directly their synchronized database replica, since the operation shall be confirmed by the server which is used to synchronize concurrent client operations on the same objects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, it is sufficient to &quot;emulate&quot; the object access by raising a fake ObjectChanged event. The remote client root object raises the object changed event, which ussue the object accessors to the connected server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the case the server execute correctly the generic object access, the modification is confirmed using the synchronization mechanism, otherwise it returns an error and the client database doesn't take any modification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;virtual&quot; event raising is done using methods like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public void VirtualCallMethod(string mName, params object[] mArguments)&#xA;public void VirtualCallMethod(string mName, Type[] mArgumentsType, params object[] mArguments)&#xA;public void VirtualSetProperty(string pName, object pValue)&#xA;public void VirtualSetIndexedProperty(string pName, object pIndexer, object pValue)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The result&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is some string representation of the object accessors (i'm so proud of these logs!)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; CoreData.UnmanagedLayout.ProcessInstances.Item[b1bbf800-d2ba-4264-8121-3601def5623f].WindowTemplates.Item[a9ab710c-ba22-4446-8616-c912a72ad434].WindowGeometry.Bounds = {X=25,Y=25,Width=1024,Height=-768}&#xA; CoreData.ProcessList.Item[1e66fdb2-8540-417c-8d3e-ab1c5678a787].WindowTemplates.Item[a9ab710c-ba22-4446-8616-c912a72ad434].TemplateStatusFlags = Geometry&#xA; CoreData.UnmanagedLayout.ProcessInstances.Item[b1bbf800-d2ba-4264-8121-3601def5623f].Windows.Add(XmlWindow: Class &quot;WindowsForms10.Window.8.app.0.bf7771&quot; Caption &quot;iGecko - Videowall Manager&quot;)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I know. It is a little long to explain, and it is also an overview. I hope I was clear in exposition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I thought about what I missed, and here are my considerations:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Remote clients can access to the structure without limitations&lt;/li&gt;&#xA;&lt;li&gt;Sensible data is not filtered (i.e.: user passwords checksums are still synchronized).&lt;/li&gt;&#xA;&lt;li&gt;It would be nice to use remote object references during object access; at the moment object values are specified &quot;by value&quot; using serialization. A &quot;reference&quot; could be specified using an object access sequence, but it is actually difficult to have the root object reference to &quot;capture&quot; the access sequence.&lt;/li&gt;&#xA;&lt;li&gt;Robustness: a remote database modification without synchronization would desynchronize the two copies... and only god can say what it happens later!&lt;/li&gt;&#xA;&lt;li&gt;Memory consumption: would the subscription to many events the cause of high memory usage? Keep in ming that a single &lt;em&gt;IReactObject&lt;/em&gt; object subscribe one event for each &lt;em&gt;IReactObject&lt;/em&gt;-derived property...&lt;/li&gt;&#xA;&lt;li&gt;Debugging: sometime it is very difficoult to keep track of events nesting; client access is not monitored, indeed a client database replica modification would &quot;desynchronize&quot; the databases&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What have I missed?&lt;/p&gt;&#xA;" OwnerUserId="10049" LastActivityDate="2010-12-14T14:14:00.390" ClosedDate="2010-12-14T16:08:08.657" Title="Remote Object Synchronization Software Design" Tags="&lt;design&gt;" CommentCount="5" FavoriteCount="0" />
  <row Id="26336" PostTypeId="2" ParentId="26301" CreationDate="2010-12-14T14:14:52.027" Score="5" ViewCount="" Body="&lt;p&gt;Yes, I would use C in a severely resource-constrained embedded system. I &lt;em&gt;may&lt;/em&gt; use C++ instead because it makes it easy to promote strong interfaces between software components, but only if all engineers working on the project understand that C++ is easy to misuse leading to code size bloat (virtual functions and templates are examples of things to avoid).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also saw a C++ programmer trying to create a 10K object on a 1K stack, not a good idea.&lt;/p&gt;&#xA;" OwnerUserId="9932" LastActivityDate="2010-12-14T14:14:52.027" CommentCount="2" />
  <row Id="26337" PostTypeId="2" ParentId="26301" CreationDate="2010-12-14T14:14:58.533" Score="10" ViewCount="" Body="&lt;p&gt;Yes- Horses for courses.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-14T14:14:58.533" CommentCount="2" />
  <row Id="26338" PostTypeId="2" ParentId="25276" CreationDate="2010-12-14T14:16:54.337" Score="0" ViewCount="" Body="&lt;p&gt;This is my understanding of the issue, based on my experience and the other answers:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&lt;li&gt;Code that took cleverness to write, but comes out readable and maintainable is not considered harmful. However, most developers would not call that kind of code &quot;clever&quot;; they may use a different term like &quot;elegant&quot;. There may or may not be some debate about whether such code exists.&lt;/li&gt;&#xA;&lt;li&gt;Production code that requires significant time and effort to understand even by a seasoned developer familiar with the language is &quot;clever&quot; and considered harmful by everyone.&lt;/li&gt;&#xA;&lt;li&gt;Production code that requires significant time and effort by inexperienced developers is considered harmful by some. I've seen answers either way, and I've worked with developers who've said explicitly that they would prefer to keep everything &quot;lowest common denominator&quot;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-14T14:16:54.337" CommunityOwnedDate="2011-01-08T19:36:34.897" CommentCount="2" />
  <row Id="26339" PostTypeId="2" ParentId="26301" CreationDate="2010-12-14T14:22:08.477" Score="4" ViewCount="" Body="&lt;p&gt;I would for some projects. Definitely would if I have to implement an embedded system, say for an autonomous aircraft's controller. Might even go lower level on some parts with assembly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it fits the project, I have no problem with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to develop a web-application, hmm, probably not (or I'd need to see a very strong and fact-supported justification).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also use it from other projects mainly developed with other languages when a bottleneck has been clearly identified and an optimization can be implemented using native code. For instance, a Java solution which needs to be perform intensive computations for some advanced rendering (say, a rendering engine or something). You could default to a Java implementation if it's not a supported platform, but provide a natively compiled implementation from C for some supported platforms, and get a nice performance boost.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-12-14T14:22:08.477" CommentCount="5" />
  <row Id="26340" PostTypeId="2" ParentId="26322" CreationDate="2010-12-14T14:22:32.757" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;A macbook (13&quot;) with a large hard drive to install some FreeBSD/Linux/Windows under a VM;&lt;/li&gt;&#xA;&lt;li&gt;Fast internet connection (fast enough to not think about its speed);&lt;/li&gt;&#xA;&lt;li&gt;Software - Mac OS X, everything else under a VM (Parallels or VMWare);&lt;/li&gt;&#xA;&lt;li&gt;Location - Nukuʻalofa ( &lt;a href=&quot;http://en.wikipedia.org/wiki/Tonga&quot; rel=&quot;nofollow&quot;&gt;Tonga&lt;/a&gt; );&lt;/li&gt;&#xA;&lt;li&gt;Coffee (more Robusta than Arabica) whenever I want, launch (sushi and/or chinese food preferred);&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-14T14:22:32.757" />
  <row Id="26341" PostTypeId="2" ParentId="26301" CreationDate="2010-12-14T14:24:52.927" Score="4" ViewCount="" Body="&lt;p&gt;I work mostly with the Xen hypervisor, the assorted libraries it features and the Linux kernel. On occasion, I have to write a device driver (or re-write one so that nxx virtual machines can share a single device such as a HRNG). C is my primary language and I am quite happy with that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would I try to write a spreadsheet program using it? No way. Each tool has its applications, and I'm happy that I have many tools. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love C, but I don't try to pound screws with a hammer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If C is a sensible choice for a new project, sure. If not, I'll use something else. &lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-14T14:30:11.517" LastActivityDate="2010-12-14T14:30:11.517" />
  <row Id="26342" PostTypeId="1" CreationDate="2010-12-14T14:26:32.237" Score="5" ViewCount="142" Body="&lt;p&gt;imagine that you are working under a smart educated boss (Software Manager), but he lacks of social/People skills which affect you, your department, you and your department image that other entities saw you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What to do? since you may be judged because of him! and that negatively affect you and your career inside the company. &lt;/p&gt;&#xA;" OwnerUserId="9701" LastActivityDate="2010-12-14T14:52:21.060" ClosedDate="2010-12-14T15:39:33.347" Title="What to do if your boss lack of social/People skills which affect negatively on the department" Tags="&lt;career&gt;&lt;social-skills&gt;&lt;boss&gt;" AnswerCount="1" CommentCount="3" FavoriteCount="0" />
  <row Id="26343" PostTypeId="2" ParentId="26188" CreationDate="2010-12-14T14:28:03.453" Score="2" ViewCount="" Body="&lt;p&gt;I've modeled my Software Architecture Documents (or SADs, which is a double entendre because it is both the acronym and what developers feel after looking at them)  -- after the Rational Unified Process's &lt;a href=&quot;http://rup.hops-fp6.org/process/artifact/ar_sadoc.htm&quot; rel=&quot;nofollow&quot;&gt;Software Architecture document&lt;/a&gt; .&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It provides a good template for explaining the high-level architecture and some pointers / descriptions of what should go where.  Actually I've found the entire suite of RUP templates invaluable when used correctly (don't be afraid to edit the documents and model it after information you deem useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that -- a high level UML diagram of the overall components/packages of the system.  Then important sub-components (class diagrams), and if sufficiently complex, some sequence diagrams describing the important interactions among compontents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The important thing is maintaining a balance between usefulness, brevity, and maintainability -- don't get too caught up in unnecessary details.&lt;/p&gt;&#xA;" OwnerUserId="4662" LastEditorUserId="4662" LastEditorDisplayName="" LastEditDate="2010-12-14T14:43:02.660" LastActivityDate="2010-12-14T14:43:02.660" />
  <row Id="26344" PostTypeId="2" ParentId="26301" CreationDate="2010-12-14T14:31:37.773" Score="2" ViewCount="" Body="&lt;p&gt;if it has to be both  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;fast, and&lt;/li&gt;&#xA;&lt;li&gt;portable&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;then I use C. Maybe C++.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-14T14:31:37.773" CommentCount="14" />
  <row Id="26345" PostTypeId="2" ParentId="26301" CreationDate="2010-12-14T14:37:12.937" Score="2" ViewCount="" Body="&lt;h2&gt;Yes!&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;C is a low level language and there are situation which C is almost the only option like I use C for programing micro-controllers, or put some code together to interact with devices from classic ports like Parallel, Serial or even Modem! &lt;/p&gt;&#xA;" OwnerUserId="9110" LastEditorUserId="9110" LastEditorDisplayName="" LastEditDate="2010-12-14T19:00:15.963" LastActivityDate="2010-12-14T19:00:15.963" />
  <row Id="26346" PostTypeId="2" ParentId="26243" CreationDate="2010-12-14T14:39:03.193" Score="4" ViewCount="" Body="&lt;h1&gt;speed kills&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;and killing it so you can take it home and eat it is the goal!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;according to &lt;a href=&quot;http://play.typeracer.com/&quot; rel=&quot;nofollow&quot;&gt;TypeRacer&lt;/a&gt;, 84wpm - but I'm not warmed up yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do I spend more time thinking than typing? Of course. But I spend almost &lt;em&gt;no&lt;/em&gt; time &lt;strong&gt;thinking about typing&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-14T14:39:03.193" CommunityOwnedDate="2011-03-25T14:40:57.210" CommentCount="8" />
  <row Id="26347" PostTypeId="2" ParentId="26342" CreationDate="2010-12-14T14:52:21.060" Score="1" ViewCount="" Body="&lt;p&gt;That's a tough situation, it depends on how your boss reacts to criticism and how well you can sugar coat your critique.  Perhaps if you want to avoid directly making a comment, you can try to put him in the other person's perspective.  For instance, if an inappropriate comment is made in a meeting with an executive, and its obvious your boss doesn't get that it was inappropriate, you could say something like &quot;I don't think Mr. Y seems the joking type -- he might get the wrong impression of how serious we are&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only good advice I have is that you need to make sure that your interactions with people outside the department are of a higher quality.  When you hold yourself to a higher standard it sometimes forces people to come up to your level (or begin to begrudge you -- it depends on what type of people they are).&lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-12-14T14:52:21.060" CommentCount="2" />
  <row Id="26348" PostTypeId="2" ParentId="26243" CreationDate="2010-12-14T14:57:58.623" Score="0" ViewCount="" Body="&lt;p&gt;If typing speed would by so important each programmer would have a secretary for typing, and leaving thinking for programmers. &#xA;If you type 60+ wpm it's similar to have i porshe and said to everyone what nice car I have.. it not correlate to programmer skills. &#xA;Of course because we type a lot, most of programmers can do it quick, but it's like said that if you can't quick turn your car wheel you are bad driver.&lt;/p&gt;&#xA;" OwnerUserId="8598" LastActivityDate="2010-12-14T14:57:58.623" CommunityOwnedDate="2011-03-25T14:40:57.210" />
  <row Id="26349" PostTypeId="1" AcceptedAnswerId="26357" CreationDate="2010-12-14T15:00:11.913" Score="10" ViewCount="223" Body="&lt;p&gt;I recently &lt;a href=&quot;http://programmers.stackexchange.com/questions/26030/at-what-point-during-a-project-is-it-unreasonable-to-leave/26294#26294&quot;&gt;asked&lt;/a&gt; about leaving a position and got a lot of great answers. One of the common threads was that being around to train the new person would be expected and could go a long way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now considering that (I think) most people don't stay at a company for a long time after they've given notice, and it will take time for the company to interview/hire one - that leaves for a short amount of time to get someone up to speed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also never trained anyone before. I did a bunch of tutoring in University and College, but teaching a language/technology is far different from training someone to replace you on your job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the question is: how do you go about training someone to replace you in a, potentially, short amount of time?&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-15T09:20:26.630" Title="How do you go about training a replacement?" Tags="&lt;training&gt;&lt;new-job&gt;" AnswerCount="6" CommentCount="2" />
  <row Id="26350" PostTypeId="2" ParentId="26322" CreationDate="2010-12-14T15:01:23.143" Score="1" ViewCount="" Body="&lt;p&gt;A fast machine (including fats processor, memory, motherboard, keyboard, mouse, monitor ).&lt;br&gt;&#xA;And a nice boss.   &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-14T15:01:23.143" />
  <row Id="26351" PostTypeId="2" ParentId="25888" CreationDate="2010-12-14T15:01:34.080" Score="2" ViewCount="" Body="&lt;p&gt;It's important to be timely and ask the right person, as others have said. When you get your response email/letter/phone call, you need to ask immediately for feedback on your performance at interview. If you wait too long, the interviewers will have moved on to other people and forget the details of why you didn't get the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a variety of answers you might receive:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Inexperienced in the relevant technologies&lt;/li&gt;&#xA;&lt;li&gt;Not at the experience level they're hiring for (you're too high/low)&lt;/li&gt;&#xA;&lt;li&gt;Not a good team fit (see &lt;a href=&quot;http://programmers.stackexchange.com/questions/23215/whats-a-professional-fit-interview&quot;&gt;What's a &quot;Professional Fit&quot; interview?&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Vague nondescript brush-off answer. This is the awkward one where someone specifically didn't like something you said or did and just doesn't want you, and they're in a position of authority, so their veto counts.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Try not to get hung up on the response; there's no way you can argue the case - they have already made their decision. All you can do is to digest the feedback and do differently next time if it was something you did wrong, or interview with a different type of role if it wasn't something you did.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-12-14T15:01:34.080" />
  <row Id="26352" PostTypeId="2" ParentId="26155" CreationDate="2010-12-14T15:02:59.510" Score="0" ViewCount="" Body="&lt;p&gt;@jokoon: My thoughts are that OOP is best intended to structure the efforts of multiple programmers - or large scale projects that need maintenance over time (as mentioned above).  The reuse of code through well-formed classes that help to clarify the thought process can be critical to keeping everyone on the same train of thought.  But, a more simplistic-quick process (i.e. &quot;embedded design&quot;) seems best in a procedural C syntax (to me).  For websites today, I don't see how you can avoid OOP if for no other reason than the instantiation and instance of a session.  Yes/No?&lt;/p&gt;&#xA;" OwnerUserId="10051" LastActivityDate="2010-12-14T15:02:59.510" />
  <row Id="26353" PostTypeId="2" ParentId="26256" CreationDate="2010-12-14T15:04:29.337" Score="1" ViewCount="" Body="&lt;p&gt;In India, an entry level services job will get about 250K-300K INR. For a product company, this will range from 400K-800K INR. At about 3-4 years experience, you can expect 500K-800K in a services company, and 700K-1.2M INR in product companies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For managers/leads/architects, it goes up to 1.8M-3M INR depending upon experience, domain and profile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Services companies also have onsite opportunity where they can expect around 2M-2.5M INR.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not much difference between cities, since most of the work is concentrated on few mega cities like Bangalore, Hyderabad, Chennai, NCR etc. Lower tier cities tend to have lesser salaries mainly because big companies do not have a presence there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All salaries are per anum. 1 USD = 45 INR. 1 GBP = 71 INR.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-12-14T15:04:29.337" />
  <row Id="26354" PostTypeId="1" AcceptedAnswerId="26524" CreationDate="2010-12-14T15:10:52.577" Score="8" ViewCount="254" Body="&lt;p&gt;Almost every major industry has it's standard publications which are considered &quot;must reads&quot; in that particular field.  After spending some time on Google looking for web application publications, I've come up empty; are there any high quality web application publications available online or through print that someone can point me to?&lt;/p&gt;&#xA;" OwnerUserId="5349" LastActivityDate="2010-12-21T02:18:32.223" Title="Leading Web Application Publications" Tags="&lt;web-development&gt;&lt;best-practices&gt;&lt;web-applications&gt;&lt;industry&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="5" />
  <row Id="26355" PostTypeId="2" ParentId="25276" CreationDate="2010-12-14T15:12:32.340" Score="4" ViewCount="" Body="&lt;p&gt;Good Clever -- high ratio between clever lines of code vs lines of in a non-clever alternative. 20 lines of code that saves you from writing 20000 is Extremely Good Clever. Good Clever is about saving yourself work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad Clever -- low ratio between lines of code written written vs. lines of code saved. One line of clever code that saves you from writing five lines of code is Bad Clever. Bad clever is about &quot;syntactic masturbation&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just to note: Bad Clever is almost never called &quot;Bad Clever&quot;; it will often travel under the aliases &quot;beautiful&quot;, &quot;elegant&quot;, &quot;concise&quot;, or &quot;succinct.&quot;&lt;/p&gt;&#xA;" OwnerUserId="8865" LastActivityDate="2010-12-14T15:12:32.340" CommunityOwnedDate="2011-01-08T19:36:34.897" CommentCount="4" />
  <row Id="26356" PostTypeId="1" CreationDate="2010-12-14T15:14:16.737" Score="0" ViewCount="111" Body="&lt;p&gt;I'm an entry level programmer, should I be looking at doing certifications (MSCP, Oracle Certified Professional)?  What benefits do they offer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm particularly concerned that I cant be sure that I will remain working with the same technology that I'm currently using.&lt;/p&gt;&#xA;" OwnerUserId="7452" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-14T15:22:53.340" LastActivityDate="2010-12-14T15:22:53.340" ClosedDate="2010-12-14T15:24:05.617" Title="Certifications - what role do they play for a programmer" Tags="&lt;programming-practices&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="26357" PostTypeId="2" ParentId="26349" CreationDate="2010-12-14T15:15:41.203" Score="7" ViewCount="" Body="&lt;p&gt;Simply speaking it is impossible to fully train a new person. The knowledge of 2-3 years can not be passed to new person in 1-2 weeks. It is the responsibility of the new person to take interest and learn by himself most of the things.&lt;br&gt;&#xA;According to me you should distribute the time like this :-&lt;br&gt;&#xA;Sharing the documents and explaining them - 30%&lt;br&gt;&#xA;This will include explaining the high level, low level designs and classes etc. &#xA;Sharing the code and explaining it - 70%&lt;br&gt;&#xA;This means going through the important part of the code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In between you will have to give time to the new person, to learn the things and come up with the doubts. Your main aim should be to make the person independent, that he/she should understand what part of the code does what. You can not explain each and everything, and even if you explain it won't be much useful. The new person will have a limited capacity to understand the new system. So don't bombard with lot of things. Just explain important things. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-14T15:15:41.203" />
  <row Id="26358" PostTypeId="2" ParentId="26179" CreationDate="2010-12-14T15:17:42.060" Score="4" ViewCount="" Body="&lt;p&gt;My main reason is that it suppresses the most annoying ads.  I'd rather not use AdBlock Plus, since that can affect revenue for the sites I visit (and I've used a site or two where the terms of service said I was not to disable ads).  NoScript limits the potential obnoxiousness of ads, and I'm willing to live with the rest of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also the security consideration, and that's largely related to ads also, since any site that sells ads has to be considered potentially hostile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Moreover, I don't necessarily know a site is dodgy before I visit it.  Some people enjoy sending out links to sites, and aren't necessarily honest.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-14T15:17:42.060" CommentCount="1" />
  <row Id="26359" PostTypeId="2" ParentId="26322" CreationDate="2010-12-14T15:19:02.053" Score="4" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;A more-powerful-than-strictly-necessary box with two large monitors (28&quot; at a minimum), ergo keyboard, and decent (not loud, but clear) speakers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Some companies complain when coders ask for &quot;too powerful&quot; hardware on their working machines.  They usually have no idea how much more money they could have saved by buying what was asked for, and not paying people to stare at compiling software for so many hours.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A source-based Linux distro of my choice, managed by me, not some PFY in the IT dept.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;My &quot;best dev environment&quot; changes -- new things come out, old packages aren't what they used to be, or different projects lend themselves to different approaches.  The answer to that is control: stay away from my box and let me run it my way.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;My own office, with a real door that closes.  Plenty of desk space, ergonomic seating, a spot to keep my tea.  Someplace to keep dead-tree supplies for when I need them, and a little whiteboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Few things are more annoying than lost productivity due to others' conversations intruding upon my thoughts, people trying to look over my shoulder (especially when I'm trying to help a junior coder -- who is made more self-conscious and less likely to ask by this behavior), some schmuck knocking over my tea with his nerf rocket (yes, it's happened), or not being able to put my pen (I only use good fountain pens) down lest someone break it or walk off with it.  I need my own space.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;An endless supply of &lt;strong&gt;tea&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;The good stuff, loose leaf, an endless supply of hot water at the appropriate temperature, and a convenient place to make it.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Git for revision control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Non-distributed systems just don't cut it any more.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Company IRC channel or XMPP/MUC server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;I shouldn't have to wander around the office trying to find someone for a question with a one-word answer.  It's just not efficient.  Also, unlike face-to-face interactions, IRC/XMPP/etc have logs, so I don't have to remember what was said, I can grep for it if needed.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Access to a &quot;coder lounge&quot; with a few different types of casual seating, power everywhere (for laptops), and whiteboards for discussions/brainstorming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Great for when I need a change of scenery to get through a block, when I want to be around my fellow coders, or when I'm just sick of sitting at a desk.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Brilliant people to work with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;This should really be number one, but I started out with your questions.  If I have challenging work, and intelligent people to do it with, life is good.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Close to home.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;I do enjoy working from home for all the reasons Tim Post described and more.  I continue to telecommute whenever it's practical.  However, sometimes (like when a large part of my job is mentoring junior coders) it just doesn't work.  When that's the case, I want the shortest commute possible, and a few elements of home (like the ability to have my son join me after school and do homework at a table in my office).&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Good options to eat in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;I'd rather get done an hour sooner and get home than go out for an hour lunch, and I'm more productive when I don't have to lose momentum in the middle of something complex.  Lunch should come to me so I can keep working, and should come in suitable quality/variety to keep me from being tempted to run out.  I even brown bag it sometimes -- more often when there's a fridge available and somewhere to heat lunch up.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Finally, you'll see that unlike some others here, I don't mention space for books.  I'm trying to transition to an all-ebook library.  Searchability and portability make it worth the expense.  If TAOCP's new edition this winter isn't followed shortly by an ebook, I may tear my hair out.  It's both essential and &lt;em&gt;freaking huge&lt;/em&gt;; I'd need my own Sherpa to carry the boxed set around.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-14T15:19:02.053" CommentCount="1" />
  <row Id="26360" PostTypeId="2" ParentId="26356" CreationDate="2010-12-14T15:22:34.650" Score="2" ViewCount="" Body="&lt;p&gt;I think what you're asking is whether certifications improve your career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It depends:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some monolithic and/or (dare I say it) clueless organisations put great stock and value in certifications.  Of course this is helped by those who sell certifications :).  If you want to work for one of those organisations then yes certifications will help you get in the front door.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will certifications make you a genuinely better programmer?  I don't believe so (others may think otherwise ;p) and nor do many companies that look for the top talent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Systems certifications (e.g. Cisco) on the other hand are a completely different story...&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-14T15:22:34.650" />
  <row Id="26361" PostTypeId="2" ParentId="26243" CreationDate="2010-12-14T15:27:10.760" Score="1" ViewCount="" Body="&lt;p&gt;Depends on the language.  I'm a lot slower in PERL than I am in a C-derived language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't easily find @ or _ or $.  I know where they are, but I do have to peek.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;package S2z8N3;{&#xA;$zyp=S2z8N3;use Socket;&#xA;    (S2z8N3+w1HC$zyp)&amp;amp;&#xA;open SZzBN3,&quot;&amp;lt;$0&quot;&#xA;;while(&amp;lt;SZzBN3&amp;gt;){/\s\((.*p\))&amp;amp;/&#xA;&amp;amp;&amp;amp;(@S2zBN3=unpack$age,$1)}foreach&#xA;$zyp(@S2zBN3)&#xA;while($S2z8M3++!=$zyp-&#xA;30){$_=&amp;lt;SZz8N3&amp;gt;}/^(.)/|print $1&#xA;  ;$S2z8M3=0}s/.*//|print}sub w1HC{$age=c17&#xA;;socket(SZz8N3,PF_INET,SOCK_STREAM,getprotobyname('tcp'))&amp;amp;&amp;amp;&#xA;connect(SZz8N3,sockaddr_in(023,&quot;\022\x17\x\cv&quot;))&#xA;   ;S2zBN3|pack$age}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Would probably take me several hours to type. (Granted, its an obfuscation contest winner)&lt;/p&gt;&#xA;" OwnerUserId="3084" LastActivityDate="2010-12-14T15:27:10.760" CommunityOwnedDate="2011-03-25T14:40:57.210" CommentCount="2" />
  <row Id="26362" PostTypeId="2" ParentId="26155" CreationDate="2010-12-14T15:33:07.823" Score="0" ViewCount="" Body="&lt;p&gt;I wrote a blog post a while ago that highlights the differences between &lt;a href=&quot;http://www.virtuosimedia.com/dev/php/procedural-vs-object-oriented-programming-oop&quot; rel=&quot;nofollow&quot;&gt;OOP and Procedural Programming&lt;/a&gt; and use cases for both styles.&lt;/p&gt;&#xA;" OwnerUserId="73" LastEditorUserId="73" LastEditorDisplayName="" LastEditDate="2010-12-14T18:58:17.977" LastActivityDate="2010-12-14T18:58:17.977" />
  <row Id="26363" PostTypeId="2" ParentId="26076" CreationDate="2010-12-14T15:50:42.710" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Altap Salamander&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Win + R combination&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Combination of these two is very useful in windows, as it allows you Not to use windows. :) Altap salamander is by far the best file navigator for those who like to work on computer without using mouse. Win+R (ie Run-dialog) allows you to type and execute any programs that are located in PATH-folders. Most important folders to put in your PATH-list are desktop-folders (for current user and for &quot;All Users&quot;).&lt;/p&gt;&#xA;" OwnerUserId="8706" LastEditorUserId="8706" LastEditorDisplayName="" LastEditDate="2010-12-14T16:12:31.163" LastActivityDate="2010-12-14T16:12:31.163" />
  <row Id="26364" PostTypeId="2" ParentId="26301" CreationDate="2010-12-14T15:56:17.110" Score="15" ViewCount="" Body="&lt;p&gt;I use C professionally, nearly every day.  In fact, C is the &lt;em&gt;highest&lt;/em&gt; level language in which I regularly program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Where I use C:&lt;/strong&gt; I write low-level library code that has a requirement to be as efficient as possible.  My glue code is written in C, inner computational loops are written in assembly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Why I use C:&lt;/strong&gt; It's much simpler to handle complex argument structures and error conditions than it is in assembly, and the performance overhead for that sort of condition checking before starting the real computation is often negligible.  Because C is a simple, well-specified language, I have an easy time working with the compiler team at work to improve the code generation whenever I see compiled code with unacceptable performance hazards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Portability is another great virtue of C.  My glue code is shared across multiple hardware-specific implementations of the libraries I work on, which really simplifies bringing up support for new platforms.  Most platforms don't have a virtual machine or interpreter for the language flavor of the month.  Some platforms don't have a good C++ compiler.  There are very few platforms that lack a usable C compiler (and, since I have a good working relationship with our compiler team, I usually don't have a hard time getting the support I need).&lt;/p&gt;&#xA;" OwnerUserId="10055" LastActivityDate="2010-12-14T15:56:17.110" CommentCount="2" />
  <row Id="26365" PostTypeId="2" ParentId="26284" CreationDate="2010-12-14T15:57:48.617" Score="0" ViewCount="" Body="&lt;p&gt;Usually, what I find myself doing is getting a TSV (tab-separated values) rather than a CSV file, pull the file into Emacs and see which of a few uncommon characters it NEVER uses ($ is usually a good choice around here), and then I convert all the tabs to $.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From there, GNU AWK can be told to use $ as the field separator, and Bob's your uncle.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-12-14T15:57:48.617" />
  <row Id="26366" PostTypeId="2" ParentId="26301" CreationDate="2010-12-14T15:58:52.220" Score="4" ViewCount="" Body="&lt;p&gt;Every single language out there has a decent niche of use.  I frequently find myself implementing things in higher-level languages, and then gradually bringing them down to C-land if I need them to be higher-performance or even simply just more portable.  There are C compilers for nearly everything in existence, and if you write to an API that is universally available (such as POSIX), then it can be very useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I often tell people who are interested in learning programming today is to make sure that at &lt;em&gt;some&lt;/em&gt; point, they learn C and become comfortable with it.  You might find yourself in circumstances where you need it.  On more than one occasion, I've had to compile a tiny, statically-linked &quot;fast reboot&quot; program, and use scp to put it on a RAM disk on a server where the disk subsystem went away entirely.  (Cheap, cheap servers, no online redundancy, and only the ability to load a small program? C is the way to go.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, learning how to work in C without shooting yourself in the foot can contribute significantly to one's ability to write efficiently in other languages and environment.  At least, that has been my experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I certainly don't use it for everything, or even most things, it has its place and it's pretty much universal: so yes, I've used it in the past and will use it in the future (though I don't know when at the moment).&lt;/p&gt;&#xA;" OwnerUserId="10029" LastActivityDate="2010-12-14T15:58:52.220" />
  <row Id="26367" PostTypeId="2" ParentId="25600" CreationDate="2010-12-14T16:08:50.387" Score="0" ViewCount="" Body="&lt;p&gt;Use of UML diagram is &lt;em&gt;nice&lt;/em&gt; but is entirely optional. Any diagrams would do as long as your team understand what they mean. Trying to use standard no-one really knows well may lead to issues and lost time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend to start each page from a mockup (&lt;a href=&quot;http://balsamiq.com&quot; rel=&quot;nofollow&quot;&gt;http://balsamiq.com&lt;/a&gt;) or have your designer to draw it for you. Don't expect developers to be good at visual aesthetics and create good pages out of nowhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have someone assigned to code-review duty, if you have several seniour team members - make them do reviews in rotation (&lt;a href=&quot;http://www.reviewboard.org/&quot; rel=&quot;nofollow&quot;&gt;Review Board&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="7340" LastActivityDate="2010-12-14T16:08:50.387" />
  <row Id="26368" PostTypeId="1" AcceptedAnswerId="26380" CreationDate="2010-12-14T16:13:16.570" Score="8" ViewCount="316" Body="&lt;p&gt;I started using SVN about 9 months ago and it's been a game changer to say the least.  Although, I feel I'm still a bit lost.  I feel like there is a lot more I need to take advantage of to really step up my application development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;For example&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to be able to quarantine any volatile/major changes into some kind of 'sub-repository' or something.  I'm finding that major changes are impeding minor bug fixes that are quite urgent.  How can I push one simple update without pushing incomplete or broken code?&lt;/p&gt;&#xA;" OwnerUserId="10057" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-01-06T22:19:10.040" LastActivityDate="2011-01-06T22:19:10.040" Title="Advanced subversion techniques, what am I missing?" Tags="&lt;version-control&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="2" />
  <row Id="26369" PostTypeId="2" ParentId="26368" CreationDate="2010-12-14T16:17:29.677" Score="7" ViewCount="" Body="&lt;p&gt;You can check out code into different sandboxes instead of just taking one copy and making all your changes there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you could have a folder structure that goes something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;D:\Dev\MajorFeature1&#xA;D:\Dev\Bug12345&#xA;D:\Dev\MajorFeature2&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of those could be checked out from the same location in your SVN, e.g. &lt;code&gt;http://mysvnrepo/trunk&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This way you can commit from your bug fix sandbox without affecting feature development ones, although you'll need to run &lt;code&gt;svn update&lt;/code&gt; from other sandboxes to get the changes committed for the bug fix.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-14T16:17:29.677" />
  <row Id="26371" PostTypeId="1" CreationDate="2010-12-14T16:21:20.923" Score="6" ViewCount="334" Body="&lt;p&gt;I'm torn between two classes right now for next semester( Software Design and Advanced Computer Graphics ). I would enjoy Advanced Computer Graphics more, but I feel the software design class would help me when approaching anything I ever build for the rest of my career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel though I could just buy the book( I already have both books actually ) of the Software Design class and go through it, if I wanted. But think it would be a bit tougher to pick up the Advanced Computer Graphics class on my own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So do employers look at the graduate classes you've taken to decide if you would be a good fit or not?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think more importantly what I'm wanting to know is if I wanted to work for a high-end software company like Apple or Google would a company like that be more impressed by someone that took software engineering classes or hardcore CS classes?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll add something that I wrote below that may add to my question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which is that I'm really interested in computer graphics, but I'm more interested in actually having a better career than the one I have. I know CG is a touch field to crack in to.&lt;/p&gt;&#xA;" OwnerUserId="10058" LastEditorUserId="4711" LastEditorDisplayName="" LastEditDate="2010-12-16T22:59:20.847" LastActivityDate="2010-12-16T22:59:20.847" Title="Do employers hiring for software jobs care about the classes you took in CS masters program?" Tags="&lt;career&gt;&lt;software-engineering&gt;&lt;education&gt;" AnswerCount="10" CommentCount="1" />
  <row Id="26372" PostTypeId="2" ParentId="26155" CreationDate="2010-12-14T16:26:36.100" Score="1" ViewCount="" Body="&lt;p&gt;OO programming is supposed to be isomorphic to your natural thinking about the domain objects  you're representing in your programming. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;By way of example, imagine  you're programming the behavior of a car engine. You naturally think about that engine in terms of its individual parts and each part's  behavior.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OO let's you create objects in code that represent or &quot;encapsulate&quot; the engine parts and their behavior on a one to one basis with the real car parts themselves. This makes it easier to write your code, because in answering the question- what should this object be and how should it behave you can leverage your knowledge about what the real car part is and how  it behaves. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's more, if you want to make a second engine, you can imagine that many of the parts are the same as your previous engine. Wouldn't it be nice if you could reuse some of the knowledge you have in your first code base to code your second engine? OO makes it natural to do that also. You can create new objects for the new engine which inherit their properties from the first engine. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not as perfectly straightforward as it might seem, but the point is, OO makes it possible for a good practitioner can do this properly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the next programmer inherits your code base and has to understand it, the fact that classes correspond to real world objects gives that programmer a huge leg up on understanding the code base; he or she can leverage his or her existing knowledge about engines. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact that OO lightens the conceptual load of the programmer by permitting him or her to more easily  create code that is isomorphic to the problem domain is not surprising, since the early inspiration for  OO can be traced back to work the cognitive scientist Roger Schank's did when trying to model human mental processes using his idea of mental &quot;frames&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Frames as Schank meant them were very similar to OO objects in that they were meant to correspond to real world objects, had distinct properties and behaviors and could be inherited by other frames. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you read OO code outside of a good IDE  and what it brings to the table, it can be more challenging to understand flow of control than it is with procedural code. However, using the facilities provided by a good IDE like Jetbrain's IntelliJ  or Netbeans and perhaps with the assistance of  a good UML tool, it's possible to quickly understand flow of control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This combined with the mountain of first rate books and community support for OO makes OO preferable to procedural code in my view. &lt;/p&gt;&#xA;" OwnerUserId="9180" LastActivityDate="2010-12-14T16:26:36.100" />
  <row Id="26373" PostTypeId="2" ParentId="26371" CreationDate="2010-12-14T16:27:07.130" Score="5" ViewCount="" Body="&lt;p&gt;As with most things in life, this is a firm &lt;strong&gt;maybe&lt;/strong&gt; in that it depends where you are in your career and what sort of job you are applying for. If you are just starting in the work force and interviewing with a company that is looking for someone that will be writing a lot of graphically oriented code (i.e. a game company) than saying that you have had graphics courses a long with a some higher math course (e.g. liner algebra) would give you an edge over someone who took, say, robotics instead. However, if you are interviewing a a company that is going to have you writing a lot of business logic or accounting code then someone that has a minor in business or accounting would have an edge in the interviews.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you get past that initial first job though, employees are going to care more about what you were doing at your last job than what you took in school a couple years ago. The only exception to this might be if you want to move from a job where you are doing mostly business logic to one where you are writing that graphics code in which case the class might help you prepare a demonstration to impress an employer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the graduate level I have found that they only care about classes if they are looking for a very specific background (e.g. bioinformatics) in which case mentioning the class could get you an interview if you weren't doing that at your last job.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-12-14T16:27:07.130" CommentCount="3" />
  <row Id="26374" PostTypeId="2" ParentId="26354" CreationDate="2010-12-14T16:31:17.423" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;If you're talking .NET&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These aren't specific to webapps, but often contain a large number of articles on development in the web space:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.code-magazine.com/&quot; rel=&quot;nofollow&quot;&gt;CODE Magazine&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/magazine/default.aspx&quot; rel=&quot;nofollow&quot;&gt;MSDN Magazine&lt;/a&gt; (&lt;a href=&quot;http://msdn.microsoft.com/en-us/magazine/ee412244.aspx&quot; rel=&quot;nofollow&quot;&gt;Digital versions here&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-12-21T02:18:32.223" LastActivityDate="2010-12-21T02:18:32.223" CommentCount="1" />
  <row Id="26375" PostTypeId="1" AcceptedAnswerId="26384" CreationDate="2010-12-14T16:33:28.170" Score="7" ViewCount="157" Body="&lt;p&gt;For solo projects, do you keep your build / management tools on your local machine, or on a separate server? If the server is not guaranteed to be safer or more reliable than my own machine I struggle to see the point, but maybe I'm missing some things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that I'm not debating the value of continuous integration or having a staging environment etc.. just the question of whether it exists on separate hardware.&lt;/p&gt;&#xA;" OwnerUserId="5826" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-14T16:52:55.730" LastActivityDate="2010-12-15T09:16:23.933" Title="Separate servers vs local machine for builds, issue tracking etc on solo project" Tags="&lt;tools&gt;&lt;personal-projects&gt;" AnswerCount="5" CommentCount="3" />
  <row Id="26376" PostTypeId="2" ParentId="26371" CreationDate="2010-12-14T16:33:49.663" Score="4" ViewCount="" Body="&lt;p&gt;Do you list the classes that you took on your resume? No? Then how would they know?&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-14T16:33:49.663" CommentCount="6" />
  <row Id="26377" PostTypeId="2" ParentId="26371" CreationDate="2010-12-14T16:35:35.597" Score="2" ViewCount="" Body="&lt;p&gt;During an interview if they ask you, &quot;Do you have any experience with graphics?&quot; you could bring up the class. After you've been in the field, they'll usually want to hear about hands-on experience and not coursework and/or certification. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sounds like your preference is to use a class for subjects that are not as easy to pick up on your own. Makes sense. If the professor teaching the Software Design class is a notable member in the field and you've never had her in a class, you may want to rethink. It's not the ones who get good grades in graduate school, it's the ones that get the better recommendations by the more influential staff members.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-14T16:35:35.597" />
  <row Id="26378" PostTypeId="2" ParentId="16070" CreationDate="2010-12-14T16:35:39.007" Score="1" ViewCount="" Body="&lt;p&gt;I always think of abstraction in programming as hiding details and providing a simplified interface.  It is the main reason programmers can break down monumental tasks into manageable pieces.  With abstraction, you can create the solution to a part of the problem, including all of the gritty details, and then provide a simple interface to use the solution.  Then you can in effect &quot;forget&quot; about the details.  This is important because there is no way a person can keep all of the details of a super complex system in their minds at once.  This is not to say that the details underneath the abstraction will never have to be revisited, but for the time being, only the interface must be remembered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In programming, this simplified interface can be anything from a variable(abstracts away a group of bits and provides a simpler mathematical interface) to a function(abstracts away any amount of processing into a single line call) to a class and beyond.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, programmers' main job is to usually abstract away all the computational details and provide a simple interface like a GUI that someone who doesn't know one thing about how computers work can make use of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of the advantages of abstraction are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Allows a big problem to be broken up into manageable pieces.  When adding a person's records to a database, you don't want to have to be messing with inserting and balancing index trees on the database.  This work may have been done at some point, but now has been abstracted away and you no longer have to worry about it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Allows multiple people to work well together on a project.  I don't want to have to know all the ins-and-outs of my colleague's code.  I just want to know how to use it, what it does, and how to fit it together with my work (the interface).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Allows people who don't have the required knowledge to perform a complex task to do so.  My mom can update her facebook and people she knows all over the country can see it.  Without the abstraction of an insanely complex system to a simple web interface, there is no way she would be able to begin to do something similar (nor would I for that matter).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Abstraction can, however, have the reverse effect of making things less manageable if it is overused.  By breaking up a problem into too many small pieces, the number of interfaces you have to remember increases and it gets harder to understand what is really going on.  Like most things, a balance must be found.&lt;/p&gt;&#xA;" OwnerUserId="9941" LastActivityDate="2010-12-14T16:35:39.007" />
  <row Id="26379" PostTypeId="2" ParentId="26371" CreationDate="2010-12-14T16:37:07.430" Score="2" ViewCount="" Body="&lt;p&gt;Speaking from my own experience, employers never looked at the classes I took in my MSc program. They only looked at my resume and cover letters before deciding to invite me for interviews. MSc helped me in getting past HR quicker though. Other than that it was up to me to prove my knowledge and skills during the interview process. If you say you know something, you better be able to prove it in an interview, the fact that you took some classes proves nothing. Someone may take classes and even get good grades in them, but still know absolutely nothing about how to apply things in real life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer to your last question about wanting to work for a high-end software company, I think they will be more impressed with the skills and abilities you demonstrate during your interviews rather than a class list on a piece of paper.&lt;/p&gt;&#xA;" OwnerUserId="3262" LastActivityDate="2010-12-14T16:37:07.430" />
  <row Id="26380" PostTypeId="2" ParentId="26368" CreationDate="2010-12-14T16:38:38.387" Score="6" ViewCount="" Body="&lt;p&gt;To address your example, you have three possibilities to do that:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You can commit single files. If you use an IDE for accessing the Repository, it has most likely a view, to select or unselect single files before committing. On the command-line you type &lt;code&gt;svn commit file1 path1/file2 path2&lt;/code&gt; to commit file1, path1/file2 and every change under path2.&lt;/li&gt;&#xA;&lt;li&gt;You can make different working copies. You work on your large feature in your standard working copy and get the information about the urgent bug. You can checkout your repository to a different directory and fix the bug in this second working copy. You may even check out only a subdirectory with the component where the bug occurs. After bugfix you can commit in your second working copy without committing your work on the big feature. EDIT: That way is also described in the answer of Anna Lear.&lt;/li&gt;&#xA;&lt;li&gt;You create a branch for the work on your feature. For that you use the copy command. If you use the standard-layout for your repository (directories with the projectname and subdirectories with the names trunk, tags and branches, trunk containing the project) you can use the svn-copy-command like follows to create the branch: &lt;code&gt;svn copy svn://hostname/projectname/trunk svn://hostname/branches/branch-for-feature-X&lt;/code&gt;. Now you can switch your working copy to the new location: svn switch &lt;code&gt;svn switch svn://hostname/projectname/branches/branch-for-feature-X&lt;/code&gt;. If you switch in bugfixing mode you commit your actual changes, switch your working copy back to trunk, fix the bug and commit, and switch the working copy back to your feature-branch. If you are ready with developing the feature you can merge it back to the trunk.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;For the simple case described you will usually use #1 (I use most often), sometimes #2. Working with branches (case #3) is more complicated (&lt;a href=&quot;http://svnbook.red-bean.com/en/1.5/svn.branchmerge.html&quot; rel=&quot;nofollow&quot;&gt;read more&lt;/a&gt;), but allows for more tricks. But branches matching your description of a subrepository.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides from your example I cannot say much. There are many things about Subversion, but I don't know what you already use and what you need for your project. For learning more about SVN the SVN-Book is a great resource: &lt;a href=&quot;http://svnbook.red-bean.com/&quot; rel=&quot;nofollow&quot;&gt;http://svnbook.red-bean.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7654" LastEditorUserId="7654" LastEditorDisplayName="" LastEditDate="2011-01-06T22:15:03.803" LastActivityDate="2011-01-06T22:15:03.803" CommentCount="1" />
  <row Id="26381" PostTypeId="2" ParentId="26349" CreationDate="2010-12-14T16:40:21.123" Score="0" ViewCount="" Body="&lt;p&gt;Depending on the complexity of what you are doing training someone after you give notice can be a lost cause, and even without complexity there are an increasing number of places that just walk you out as soon as you give notice (make sure you have what is yours before giving notice), so it is often better to train your replacement(s) before you give notice.  A made-up upcoming vacation or surgery is a good excuse if you need it, but assuming you are working in a team you should be able to work that sort of stuff in a bit as you go and pass it off as keeping them in the loop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have already pulled the trigger and have a final date then making them aware of where to look for various things is probably the #1 thing that will help them get working.  When you are showing them the projects and what does what you need to make certain they have some idea of the workflow through the systems and where in the larger projects the important bits are.  You wont have time to give them much detail, but you can probably get them to a point that they know what code to pull up when they need to start sorting through a problem.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-12-14T16:40:21.123" />
  <row Id="26382" PostTypeId="2" ParentId="26371" CreationDate="2010-12-14T16:42:30.790" Score="1" ViewCount="" Body="&lt;p&gt;I know schools where the software engineering classes were considered light and fluffy and what people did to get an easy A.  I know schools where the software engineering program was far more rigorous than the computer science program and heavy on theory, theorems, and proofs.  The people who knew those programs and those schools cared quite a bit about who came out of what program, seeing {SE|CS} as {laziness|eagerness to learn} depending on their perception.  To the graduates of your school, it might matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond that, your resume needs to demonstrate that you meet the criteria of the job to get you an interview.  In your interview you need to demonstrate knowledge and passion.  Take what you think will excite your passion, give you knowledge, and help you most in your day to day.&lt;/p&gt;&#xA;" OwnerUserId="7506" LastActivityDate="2010-12-14T16:42:30.790" />
  <row Id="26383" PostTypeId="2" ParentId="26301" CreationDate="2010-12-14T16:48:40.037" Score="4" ViewCount="" Body="&lt;p&gt;Yes, I do it all the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't call any libraries, code generated from C requires no OS support. It also gives you fine control over the generated machine language. So it's great for writing drivers or other code that lives in kernel spaces, and other constrained situations like many kinds of embedded systems work. It's also the primary language for open-source projects I work with like X Windows, GTK+, and Clutter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While you can do everything in C you can in C++, often C++'s mechanisms make it quicker and easier to write code. I love OOP and the way C++ classes encapsulate functionality, and I love RAII. Careful use of automatic destructor invocation when an object goes out of scope eliminates most of the memory and resource leaks that are the bane of C programming. The STL is basically a giant library of highly optimized algorithms and data structures; if you wanted to use them from C, you'd have to write them yourself or buy them someplace.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, for reasons I don't understand, the runtime system on Linux requires a special shared object library (equivalent to DLL on Windows, dylib on Mac) to run any C++, and it's not found when you run a C program. So I can't do one of my favorite Mac and Windows tricks, which is to write a C++-based shared object with a C-based API, and call it from a C program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So here's my decision-making process:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Am I working in a constrained situation like a device driver? Use C.&lt;/li&gt;&#xA;&lt;li&gt;Am I writing a Linux library anybody else will have to use? Use C.&lt;/li&gt;&#xA;&lt;li&gt;Am I working inside code that's already written in C? Use C.&lt;/li&gt;&#xA;&lt;li&gt;Am I writing a Mac or Windows library, or a Linux library only I will use? Write the internals in C++, but only expose a C interface to avoid the fragile binary interface problem.&lt;/li&gt;&#xA;&lt;li&gt;Use C++.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;One nice thing is that because C++ can compile C, if you really need fine-grained control over the code generated for a particular situation, you can just write C for that, and C++ for the rest, and compile it all with the C++ compiler.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-14T16:48:40.037" CommentCount="2" />
  <row Id="26384" PostTypeId="2" ParentId="26375" CreationDate="2010-12-14T16:51:34.387" Score="10" ViewCount="" Body="&lt;p&gt;That depends, I would say.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pro local machine:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Works without net.&lt;/li&gt;&#xA;&lt;li&gt;Easier to maintain.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Pro separate server:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Some tools (continuous integration) may cause load that is annoying on your local machine.&lt;/li&gt;&#xA;&lt;li&gt;You can access your tools from different machines.&lt;/li&gt;&#xA;&lt;li&gt;You have a copy of your data on a different machine.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7654" LastEditorUserId="7654" LastEditorDisplayName="" LastEditDate="2010-12-15T09:16:23.933" LastActivityDate="2010-12-15T09:16:23.933" CommentCount="7" />
  <row Id="26385" PostTypeId="1" CreationDate="2010-12-14T16:54:11.893" Score="3" ViewCount="377" Body="&lt;p&gt;I have been learning Clojure and looking at Scheme and CL which introduced me to the world of prefix notation. At first I didn't like it but it is still starting to grow on me. To be honest though, there are still long calculations that are difficult for me to understand but I think that is an issue of me needing more exposure/practice and I'll get it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But that leads me to the question: Which type of notation do you prefer and why?&lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-12-15T19:25:38.123" Title="Infix vs Prefix Notation - Which do you prefer?" Tags="&lt;programming-languages&gt;&lt;notation&gt;" AnswerCount="6" CommentCount="3" />
  <row Id="26386" PostTypeId="1" AcceptedAnswerId="26389" CreationDate="2010-12-14T16:59:41.293" Score="0" ViewCount="182" Body="&lt;p&gt;&lt;strong&gt;Hii People:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i m currently developing mobile applications, i m not pretty clear with my career growth in a long term basis,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Question is i can get retain in those Mobile based development or i should get involve in other technologies too?&lt;/p&gt;&#xA;" OwnerUserId="7452" LastActivityDate="2010-12-14T18:09:53.950" Title="Career Growth on Mobile based Application Development?" Tags="&lt;career-advice&gt;" AnswerCount="3" />
  <row Id="26387" PostTypeId="2" ParentId="26386" CreationDate="2010-12-14T17:06:12.257" Score="2" ViewCount="" Body="&lt;p&gt;I would focus on what's interesting to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Noone can predict the future. Maybe you'll be a billionaire with the next mobile app. Or maybe it's a dead-end.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-12-14T17:06:12.257" />
  <row Id="26388" PostTypeId="2" ParentId="26179" CreationDate="2010-12-14T17:07:01.103" Score="3" ViewCount="" Body="&lt;p&gt;With Javascript activated any website may execute code on my Computer. I don't even know, if the particular website executes code and what it does. Even more worse, someone else may insert code without my knowledge into a normally harmless website (XSS). Recently a the well-known german computer-magazin c't made an article, taht an 16-year-old tried the online-banking-sites of the most common banks in germany. Many of them - including the biggest - were vulnerable for XSS. And you don't even notice, that your online-banking-site executes some Javascript that changes for example the target and the amount for a transaction. With disabled Javascript the XSS-attack in the context of a trusted site is useless, I don't execute the malicious code.&lt;/p&gt;&#xA;" OwnerUserId="7654" LastEditorUserId="7654" LastEditorDisplayName="" LastEditDate="2010-12-14T17:13:45.110" LastActivityDate="2010-12-14T17:13:45.110" />
  <row Id="26389" PostTypeId="2" ParentId="26386" CreationDate="2010-12-14T17:07:56.453" Score="2" ViewCount="" Body="&lt;p&gt;I don't see mobile doing anything other than growing in the future both in the personal and corporate spheres.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The technologies will obviously change and as devices get more powerful the distinction between what is a mobile device and what is not will narrow but ultimately mobile / pervasive computing is a good area to be in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a question about what platforms and technologies to work with in the short term but ultimately the skills you're developing with regard to working with smaller UIs, working within limited memory, understanding communications and bandwidth are going to remain useful and valuable for some time to come.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously having knowledge of other technologies is never a bad thing but I don't see mobile going anywhere any time soon.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-14T17:07:56.453" />
  <row Id="26390" PostTypeId="2" ParentId="26385" CreationDate="2010-12-14T17:08:55.627" Score="6" ViewCount="" Body="&lt;p&gt;I find infix notation easier to read, simply because I've been working with it ever since kindergarten.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-14T17:08:55.627" CommentCount="1" />
  <row Id="26391" PostTypeId="2" ParentId="26251" CreationDate="2010-12-14T17:11:23.563" Score="0" ViewCount="" Body="&lt;p&gt;Synchronizing two different databases (different schema for same data) behind two different systems that had two different sets of business rules (one batch and one transactional amongst other differences) with each system thinking that the other database was one of it's own clients, neither database stepping on the work currently being done in the other and the whole thing running in real time other than items blocked to queue to preserve integrity by being processed when it was next safe to do so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The beautiful part was that there was no way to know where you had left off when you first came online after the nightly processing, so the whole thing had to be resynchronized on start and you only had about 10 min to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The whole thing was heavily threaded and managed a few hundred connections to the databases under load.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Today there would be a number of ways to do this (complex triggers, biztalk, etc) that are not all that difficult, but back at the time it was a fairly novel idea and the performance was better than some of those solutions even today.  Doing it through existing tools was something a team of 6 had worked on for 9 months and this suggestions was only resurrected when 3 months out from deployment they declared their work had failed to produce a usable result.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a theory point of view the program was ugly, everything was hand tuned to its specific purpose, there were no avoidable abstractions and the sql was built to match the threaded objects.  Everything very tightly coupled.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;10 weeks from my boss saying &quot;um, remember that idea you had that we all said wouldn't work&quot; to the thing running the data processing needs of a decent sized company 20 hrs a day.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-12-14T17:11:23.563" />
  <row Id="26392" PostTypeId="1" CreationDate="2010-12-14T17:15:50.927" Score="5" ViewCount="493" Body="&lt;p&gt;Which is the more necessary for a programmer creativity or logic?&lt;/p&gt;&#xA;" OwnerUserId="9110" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T16:13:47.910" LastActivityDate="2011-05-28T11:59:36.010" ClosedDate="2010-12-14T20:18:29.297" Title="Is a great programmer creative or logical ?" Tags="&lt;problem-solving&gt;" AnswerCount="14" CommentCount="12" FavoriteCount="1" />
  <row Id="26393" PostTypeId="2" ParentId="26243" CreationDate="2010-12-14T17:17:25.763" Score="0" ViewCount="" Body="&lt;p&gt;hm, probably less than one word per minute, with five fingers. - in programming, not typing this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;there is no need to type fast while programming, iff you do not write in assembler or an assembler-frontend (=imperative language).  i prefer haskell or ocaml as strictly typed (=compile-time-error instead of bug) functional (=actually, the compiler replaces the horde of code monkeys) language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;one side-effect of those languages is, that i'm too lazy to lift my bottom from my other hand to press the shift key.&lt;/p&gt;&#xA;" OwnerUserId="7258" LastActivityDate="2010-12-14T17:17:25.763" CommunityOwnedDate="2011-03-25T14:40:57.210" CommentCount="2" />
  <row Id="26394" PostTypeId="2" ParentId="26392" CreationDate="2010-12-14T17:19:46.690" Score="17" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Logic&lt;/strong&gt; for problem-solving. &lt;strong&gt;Creative&lt;/strong&gt; for elegant design (code and UI).&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;There are dimensions to this, you want to produce software that:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;works,&lt;/li&gt;&#xA;&lt;li&gt;is efficient,&lt;/li&gt;&#xA;&lt;li&gt;is beautiful,&lt;/li&gt;&#xA;&lt;li&gt;is maintainable.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And all the elements relate to both logic and creativity, in more or less subtle ways.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2011-05-28T11:59:36.010" LastActivityDate="2011-05-28T11:59:36.010" CommentCount="5" />
  <row Id="26395" PostTypeId="2" ParentId="26392" CreationDate="2010-12-14T17:21:17.813" Score="3" ViewCount="" Body="&lt;p&gt;You can't implement anything, let alone well, without logic.  However, there comes a point in one's career where one &lt;em&gt;must&lt;/em&gt; learn to create something from nothing, rather than just implementing what's already been decided, and that can require creativity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I had to choose one, it would be logic -- but a programmer without creativity will hit a ceiling eventually.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-14T17:21:17.813" />
  <row Id="26396" PostTypeId="2" ParentId="26392" CreationDate="2010-12-14T17:29:26.583" Score="0" ViewCount="" Body="&lt;p&gt;I would say logic is more important. Developer don't need to be TOO creative: design (UI) is usually/commonly made by designers. New algorithms are developed by mathematicians. developer (as engineer) is need to implement already know algorithm/approaches/patterns for specific business case. &lt;/p&gt;&#xA;" OwnerUserId="6601" LastActivityDate="2010-12-14T17:29:26.583" />
  <row Id="26397" PostTypeId="2" ParentId="26392" CreationDate="2010-12-14T17:31:10.387" Score="4" ViewCount="" Body="&lt;p&gt;A great programmer must have both qualities. Logic is sufficient for a good programmer.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-14T17:31:10.387" />
  <row Id="26398" PostTypeId="2" ParentId="26368" CreationDate="2010-12-14T17:31:36.787" Score="3" ViewCount="" Body="&lt;p&gt;The current size of my working copy is 10GB, with more than 50.000 files.  I can have several copies for different branches, but it takes a while just to create the new copy!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When an urgent bug comes, I usually save all my changes in a patch, revert everything, work on the bug and commit, then apply the patch I saved...  Much easier and quicker than getting a fresh working copy.  If I would need to do this often, I would have two working copies: one for long-term changes, the other for bug fixes.&lt;/p&gt;&#xA;" OwnerUserId="602" LastEditorUserId="602" LastEditorDisplayName="" LastEditDate="2010-12-14T17:37:17.140" LastActivityDate="2010-12-14T17:37:17.140" CommentCount="1" />
  <row Id="26399" PostTypeId="2" ParentId="26392" CreationDate="2010-12-14T17:32:02.873" Score="18" ViewCount="" Body="&lt;p&gt;false dichotomy; any programmer, great or otherwise, must be both&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-14T17:32:02.873" CommentCount="4" />
  <row Id="26400" PostTypeId="2" ParentId="26385" CreationDate="2010-12-14T17:37:42.843" Score="2" ViewCount="" Body="&lt;p&gt;Of those two, prefix (postfix could be used the same way, but the only languages I know of that use that are PS and Forth).&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It removes the need for any kind of operator precedence and left/right associativity. Both in the sense that you don't have to think about it, and in the sense that the language implementation is slightly simpler since these forces are pre-resolved.&lt;/li&gt;&#xA;&lt;li&gt;If applied consistently, the resulting code is very close to a tree, which makes parsing easier or unnecessary (and this allows things like programmatic manipulation of that tree structure).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-12-14T17:53:28.177" LastActivityDate="2010-12-14T17:53:28.177" CommentCount="6" />
  <row Id="26401" PostTypeId="2" ParentId="26385" CreationDate="2010-12-14T17:40:20.183" Score="3" ViewCount="" Body="&lt;p&gt;Prefix, simply because operator precedence is explicit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FYI, Longer calculations (really, any chain of operations) in Clojure can be broken out using the &lt;code&gt;-&amp;gt;&lt;/code&gt; and &lt;code&gt;-&amp;gt;&amp;gt;&lt;/code&gt; macros.  e.g.:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(-&amp;gt; (get-some-value)&#xA;  inc&#xA;  (* 2)&#xA;  (max 50))&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;is the equivalent of:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(max (* (inc (get-some-value)) 2) 50)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;While the &lt;code&gt;-&amp;gt;&lt;/code&gt; macro prepends prior results to the arguments of the next expression, &lt;code&gt;-&amp;gt;&amp;gt;&lt;/code&gt; appends them.  This is typically very handy when used with functions that expect collections and seqs:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;=&amp;gt; (-&amp;gt;&amp;gt; &quot;some string we want to capitalize&quot;&#xA;     (partition-by #{\space})&#xA;     (mapcat #(cons (Character/toUpperCase (first %)) (rest %)))&#xA;     (apply str))&#xA;&quot;Some String We Want To Capitalize&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Providing facilities for easily composing simpler operations into compound ones like this is one of Clojure's big advantages.  For additional reading, check out &lt;a href=&quot;http://blog.fogus.me/2009/09/04/understanding-the-clojure-macro/&quot; rel=&quot;nofollow&quot;&gt;fogus' post on the &lt;code&gt;-&amp;gt;&lt;/code&gt; macro&lt;/a&gt;, and then his later post on the topic of &lt;a href=&quot;http://blog.fogus.me/2010/09/28/thrush-in-clojure-redux/&quot; rel=&quot;nofollow&quot;&gt;&quot;properly thrushy&quot; thrush combinators in Clojure&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="10064" LastEditorUserId="10064" LastEditorDisplayName="" LastEditDate="2010-12-14T17:47:06.577" LastActivityDate="2010-12-14T17:47:06.577" CommentCount="1" />
  <row Id="26402" PostTypeId="2" ParentId="25836" CreationDate="2010-12-14T17:42:01.093" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Tell me about the copy constructor.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3684" LastActivityDate="2010-12-14T17:42:01.093" CommunityOwnedDate="2011-03-04T20:42:37.403" CommentCount="1" />
  <row Id="26403" PostTypeId="2" ParentId="26392" CreationDate="2010-12-14T17:49:29.617" Score="2" ViewCount="" Body="&lt;p&gt;I guess you could creatively do something that is illogical and doesn't work, but what's the point? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seems like we're forced to work in a logical context but those who can do it creatively, separate themselves from the rest. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-14T17:49:29.617" />
  <row Id="26404" PostTypeId="2" ParentId="26301" CreationDate="2010-12-14T17:50:35.637" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C++&lt;/strong&gt; is portable across platforms and embedded devices like microcontrollers.&#xA;(C++ can be compiled to C, therefore microcontrollers.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;C&lt;/strong&gt; is even portable (as foreign functions) to other languages. Therefore, iff I program low-level libraries, then I want more compatibility than C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Haskell&lt;/strong&gt; is portable across platforms (ARM is coming soon) but NOT embedded devices like microcontrollers. Its speed is comparable to C and C++; but because it is functional, it uses a garbage-collector instead of an runtime-stack, therefore it can be faster and slower than C at different times (garbage-collecting) and in different situations (continuations instead of sub-routine calls).&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I choose the most abstract language possible, because the program speed does not differ but the development time and bug-rate. C and C++ differ much, but not from the point of view of Haskell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not prefer other languages, even though I know one or two hand full.&#xA;…except in a few cases, well, &lt;strong&gt;bash&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7258" LastActivityDate="2010-12-14T17:50:35.637" />
  <row Id="26405" PostTypeId="2" ParentId="6952" CreationDate="2010-12-14T17:55:32.140" Score="2" ViewCount="" Body="&lt;p&gt;I do a formal decision analysis. I have never had all solutions come up with the same value. Here is what I do:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First decide on the factors that go into making the decision things like cost, security, etc. Then have the decision makers decide how to weight each factor (by putting them in order of importance (1-5 with 5 being the most important). This is the ciritical step to getting buy in on the decision at the end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next rate each possible choice against each of those factors on a scale of 1-5 (5 being the best). Then multiply each rating by the appropriate ranking factor. Then add up the numbers. Almost always one choice will be better. If two are extremely close or tied, choose the simplest to implement or have management pick between those two.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;INcidentally if you find yourself 'fudging' the numbers to make alternative B win, then you know which one you prefer and you are also probably missing an important rating factor or you wouldn't need to 'fudge' the numbers. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-14T17:55:32.140" />
  <row Id="26406" PostTypeId="2" ParentId="26349" CreationDate="2010-12-14T17:57:17.287" Score="0" ViewCount="" Body="&lt;p&gt;You tend to quickly finish what you're doing or at least get it to some stopping point. Then the documentation/brain dump starts. I've been at places where the new hire wasn't familiar with some of the technology (Had to maintain an ASP site.). Had about enough time to explain where all the code was and how to update the site (Finding the production server itself was not hard because it sat under my desk; if that gives a little indication why I left.). &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-14T17:57:17.287" />
  <row Id="26407" PostTypeId="1" AcceptedAnswerId="26431" CreationDate="2010-12-14T18:03:36.263" Score="0" ViewCount="143" Body="&lt;p&gt;It seems to exist some statistics on when to release a software. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Beside statistics is there a rule of thumb on when to release a software? For example holidays are great for game releases but how long before holidays?&lt;/li&gt;&#xA;&lt;li&gt;How is release date decided for Games? &lt;strong&gt;Edit:&lt;/strong&gt; (Small SmartPhone, Desktop games)&lt;/li&gt;&#xA;&lt;li&gt;How is release date decided for Small Desktop Applications? (No enterprise application)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I have updated the question. Before jumping in and closing the question please give me some hint on what is bothering you so I can have a chance to clarify the question.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; I'm planning to release a Windows desktop game based on XNA. The target audience are +15 year old.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2010-12-14T20:26:09.650" LastActivityDate="2010-12-14T20:26:09.650" ClosedDate="2010-12-14T20:22:27.623" Title="How is release date decided?" Tags="&lt;software&gt;&lt;deployment&gt;&lt;games&gt;&lt;release&gt;&lt;commerce&gt;" AnswerCount="4" CommentCount="10" />
  <row Id="26408" PostTypeId="2" ParentId="26392" CreationDate="2010-12-14T18:03:53.003" Score="4" ViewCount="" Body="&lt;p&gt;None. Passion for programming should come first. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-14T18:03:53.003" CommentCount="6" />
  <row Id="26409" PostTypeId="2" ParentId="26375" CreationDate="2010-12-14T18:04:21.843" Score="1" ViewCount="" Body="&lt;p&gt;For many projects, it makes sense to have VM dedicated solely to development or for use as a staging server, especially if a complicated software configuration is necessary on the machine. Using a VM gives you the ability to switch between putting the development / staging server on a common or server machine, or putting it on your workstation machine (which can be useful if, for instance, you need to develop from a portable machine or without a network connection.&lt;/p&gt;&#xA;" OwnerUserId="9241" LastActivityDate="2010-12-14T18:04:21.843" />
  <row Id="26410" PostTypeId="2" ParentId="26386" CreationDate="2010-12-14T18:09:53.950" Score="1" ViewCount="" Body="&lt;p&gt;At the end of the day it's bits and bytes. Mobile or other industries the complexity of software and challenges of programmer are still same. Why worry? &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-14T18:09:53.950" />
  <row Id="26411" PostTypeId="2" ParentId="26392" CreationDate="2010-12-14T18:10:20.043" Score="1" ViewCount="" Body="&lt;p&gt;Mathematically adding logical options (creativity or logic): if anyone of thesis is true, overall result will be true. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The answer is - Yes!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, japanese  would tell you - Mou, which means the answer is not true nor false.&lt;/p&gt;&#xA;" OwnerUserId="9813" LastActivityDate="2010-12-14T18:10:20.043" />
  <row Id="26412" PostTypeId="2" ParentId="26385" CreationDate="2010-12-14T18:13:07.733" Score="5" ViewCount="" Body="&lt;p&gt;I have no preference. I can work well in either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not many programmers realize that prefix notation is actually the norm and infix is the oddball. After all, just about every language uses prefix notation for function/method calls. It's only a relatively small number of arithmetic and logic operators that are infix.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The more you look at our system of mathematical symbols, the more screwy you see they are. Some are infix (+, -, *), some are postfix (x&lt;sup&gt;2&lt;/sup&gt;), some prefix (tan x), some under-fix (ratios and fractions), and some overfix. It's not as simple as PEMDAS.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastEditorUserId="3790" LastEditorDisplayName="" LastEditDate="2010-12-14T20:06:59.737" LastActivityDate="2010-12-14T20:06:59.737" CommentCount="7" />
  <row Id="26413" PostTypeId="2" ParentId="26407" CreationDate="2010-12-14T18:14:25.533" Score="2" ViewCount="" Body="&lt;p&gt;Marketing throws certain erroneous assumptions laced with wishful thinking into the Arbitrarily Sooner Release Date Calculation Model (ASRDCM). It's simple. Take the amount of time anyone with development experience calculates, deduct 20% because those people always pad time on their project predictions. Then deduct another 10% since those lazy programmers will always take all the time given (This theory actually has a name but I can't remember it.).&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-14T18:14:25.533" CommentCount="3" />
  <row Id="26414" PostTypeId="2" ParentId="26243" CreationDate="2010-12-14T18:14:40.670" Score="1" ViewCount="" Body="&lt;p&gt;Personnaly, I prefer to see a slow typer and continuesly using his keyboard than a fast typer using the mouse for everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By example, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;kbd&gt;CTRL&lt;/kbd&gt;-&lt;kbd&gt;s&lt;/kbd&gt; for saving in many applications is obvious for programmers&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;kbd&gt;CTRL&lt;/kbd&gt;-&lt;kbd&gt;PageDown&lt;/kbd&gt; and &lt;kbd&gt;CTRL&lt;/kbd&gt;&lt;kbd&gt;PageUp&lt;/kbd&gt; to navigate between tabs in firefox is less obvious.&lt;/p&gt;&#xA;" OwnerUserId="7442" LastEditorUserId="7442" LastEditorDisplayName="" LastEditDate="2010-12-15T02:54:26.653" LastActivityDate="2010-12-15T02:54:26.653" CommunityOwnedDate="2011-03-25T14:40:57.210" CommentCount="3" />
  <row Id="26415" PostTypeId="2" ParentId="26392" CreationDate="2010-12-14T18:16:49.700" Score="0" ViewCount="" Body="&lt;p&gt;Both.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The outer end of creative is very close to the outer end of logical IMO.  Its a place I aim for.&lt;/p&gt;&#xA;" OwnerUserId="5738" LastActivityDate="2010-12-14T18:16:49.700" />
  <row Id="26416" PostTypeId="2" ParentId="26349" CreationDate="2010-12-14T18:17:21.383" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Point them at the wiki&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You do have one, don't you? And I'm sure you have a few team members who act as code librarians during the code reviews so that common code can be introduced (either into the company code library or to replace the custom code that the developer has just knocked together). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;No? Ah. Well, you've got a problem then.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on how much time you've got, you'll need to follow one of these plans, in order of the level of crisis:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1. Aargh! I'm leaving this afternoon&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the new guy is highly experienced in your problem domain, then just point him at the wiki and show him how to get to the relevant code in your SCM. Buy him a beer, offer your phone number if you're feeling generous and toddle off to your leaving party.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If he's not so experienced, introduce him to other members of the team who should be his primary points of contact to get an idea of how it all fits together. That's about all you've got time for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2. Got all week, but there's a lot of tidying up&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get your replacement to shadow you for the first day so you can assess their skills and try to get them doing your job as quickly as possible. Let them see how you tackle a problem, and then gradually hand over so that they are solving it and you are acting as a consultant. Build out from the core operations you do every day to the less frequent ones. Make up problems if you can. Pair program if you're able to. Get them to keep track of what you've told them in a wiki or some other networked text-based resource so they can refer to it later, and eventually turn it into proper documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3. It's the junior developer who's taking over&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They'll already have the domain knowledge and know how the team works. Start allocating them your tasks and working to build their knowledge about unfamiliar systems and processes. Concentrate on helping them get the basics down pat, with the more advanced stuff coming later as you get time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Provide basic telephone support&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming that you're leaving on good terms with the company, offer to provide them with some telephone support so they know that you're not leaving them in the lurch. If they start ringing at every hour asking bone-headed questions that could be found on the wiki then mention your competitive consultancy rates. Otherwise, the odd call here and there allows them to pick your brains and you to stay in touch with them, which could be handy when the next round of jobs comes up. &lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-14T18:17:21.383" CommentCount="1" />
  <row Id="26417" PostTypeId="2" ParentId="26407" CreationDate="2010-12-14T18:18:34.690" Score="0" ViewCount="" Body="&lt;p&gt;Games - Are we talking like &quot;Yahoo! Games&quot; or MSN Games that are Java-based and free or more like MMORPG which can be quite different?  Consoles or PC games?  Original game or expansion pack, as these can be seen as different kinds of games to some people?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even among desktop applications there are still enterprise applications and consumer applications that can be quite different.  For example, Microsoft Excel and Word may depend more on enterprise users and thus are dependent on corporate spending than consumers that may want to buy a new version of Office because they love Access so much. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a few times of year that are big in the US but I'm not sure how well these translate into other cultures:  From the day after US Thanksgiving a.k.a. Black Friday till Christmas is the busiest shopping time of year in the US and thus this is when you want to have something out at the latest.  The other side is to try to hit the &quot;Back to school&quot; time which would be mid-August to early September as when I was in school it tended to start just after Labor Day.  Course this isn't always followed but I would be aware that sometimes events can change this dramatically as I'd imagine sales of software around 9/11 may have shifted due to the magnitude of those events.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-14T18:18:34.690" />
  <row Id="26418" PostTypeId="2" ParentId="26392" CreationDate="2010-12-14T18:21:28.890" Score="0" ViewCount="" Body="&lt;p&gt;Creativity is required to identify the solution, logic is needed to implement the details.&lt;/p&gt;&#xA;" OwnerUserId="6145" LastActivityDate="2010-12-14T18:21:28.890" />
  <row Id="26419" PostTypeId="2" ParentId="26371" CreationDate="2010-12-14T18:24:32.000" Score="0" ViewCount="" Body="&lt;p&gt;I don't think Apple and Google are going to judge you by the courses you take. They will thoroughly take your interviews and then decide.   &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-14T18:24:32.000" />
  <row Id="26420" PostTypeId="2" ParentId="26392" CreationDate="2010-12-14T18:27:53.823" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;What does it mean to think logically?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are able to form a path through a complex series of decisions to arrive at a conclusion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What does it mean to think creatively?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are able to apply alternative approaches to solve complex problems in an elegant manner that pleases you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;And developers?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are human beings. We aspire to do both as well as possible.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-14T18:27:53.823" />
  <row Id="26421" PostTypeId="2" ParentId="26301" CreationDate="2010-12-14T18:36:59.873" Score="0" ViewCount="" Body="&lt;p&gt;Embedded systems frequently have no more than a few kilobytes of RAM and perhaps a couple dozen kilobytes of flash, with a processor clock rate of a few MHz. C is the only option that makes any sense in such a bare-metal environment.&lt;/p&gt;&#xA;" OwnerUserId="10066" LastActivityDate="2010-12-14T18:36:59.873" />
  <row Id="26422" PostTypeId="2" ParentId="26301" CreationDate="2010-12-14T18:39:02.987" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes, in fact I have recently!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like programming in C. I do most my programming in python, but there are times when I need fast code and I really enjoy the elegance that come from the simplicity of the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The project I'm working on now is a database, which, as you can imagine, is performance critical. At the moment I'm using C and some python, but it will eventually be predominantly, if not entirely C.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-14T18:39:02.987" />
  <row Id="26423" PostTypeId="2" ParentId="26368" CreationDate="2010-12-14T18:39:04.220" Score="3" ViewCount="" Body="&lt;p&gt;Have you looked at &lt;a href=&quot;http://svnbook.red-bean.com/en/1.1/ch04s02.html&quot; rel=&quot;nofollow&quot;&gt;Subversion Branches&lt;/a&gt; at all?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One common technique is to keep your Trunk stable, applying critical fixes as required. You then create a &lt;em&gt;branch&lt;/em&gt; for each new significant piece of work. Developers working on that project check out the branch and commit to the branch. It does not affect the Trunk until you decide to merge the branch back to the main trunk as part of your final integration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another approach is to have a branch for a particular Release, to avoid any other work accidentally being done on the trunk causing issues. You can bug-fix the 'Release Branch' as required and then fold those fixes back to the trunk when ready.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your developers can have multiple working copies checked out - the trunk and any branches - or can swap between the trunk and a particular branch with the &lt;code&gt;svn switch&lt;/code&gt; command.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not recommend having lots of 'sandbox' working copies that you keep separately checkout as (a) this prohibits collaboration with others and (b) it will be too easy to accidentally commit not-working-yet changes to the main trunk.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-12-14T18:39:04.220" />
  <row Id="26425" PostTypeId="1" CreationDate="2010-12-14T18:42:24.583" Score="7" ViewCount="279" Body="&lt;p&gt;After stumbled into this &lt;a href=&quot;http://sourceforge.net/people/helpwanted-latest.php&quot; rel=&quot;nofollow&quot;&gt;source forge&lt;/a&gt; I was wondering if there are any other &quot;richer&quot; boards for open source needed manpower projects?&lt;/p&gt;&#xA;" OwnerUserId="5260" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-12-14T20:24:28.543" LastActivityDate="2010-12-14T20:47:18.180" Title="Open-source wanted list" Tags="&lt;open-source&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="5" />
  <row Id="26426" PostTypeId="2" ParentId="16308" CreationDate="2010-12-14T18:50:21.947" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.mindtools.com/pages/article/newHTE_91.htm&quot; rel=&quot;nofollow&quot;&gt;Urgent/Important Matrix&lt;/a&gt; may be worth considering to see where does your day go.  Is it on urgent but not important stuff like unprepared meetings and interruptions?  Is it on urgent and important stuff you didn't know at the start of the day?  Just an exercise to consider where does your time go.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I'd tend to think most interesting things are important or else why are they interesting?  Just a thought.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastEditorUserId="4327" LastEditorDisplayName="" LastEditDate="2010-12-14T21:06:26.137" LastActivityDate="2010-12-14T21:06:26.137" CommentCount="1" />
  <row Id="26427" PostTypeId="2" ParentId="26425" CreationDate="2010-12-14T18:54:38.607" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codeplex.com&quot; rel=&quot;nofollow&quot;&gt;Codeplex&lt;/a&gt; has open source projects that are Windows based.&lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-12-14T18:54:38.607" CommentCount="2" />
  <row Id="26428" PostTypeId="2" ParentId="26425" CreationDate="2010-12-14T18:55:03.810" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;https://openhatch.org/&quot; rel=&quot;nofollow&quot;&gt;OpenHatch&lt;/a&gt; is a place I've signed up to recently.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-14T18:55:03.810" />
  <row Id="26429" PostTypeId="2" ParentId="22873" CreationDate="2010-12-14T18:55:56.137" Score="2" ViewCount="" Body="&lt;h2&gt;Creating!&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I don't have any toys left because I have hacked them all and made something else out of them&#xA;And as i grow up I started learning electronics when I was a 7 grader, I was hardly able to find parts But it didn't stopped me, then I started learning Computers and I was hardly understanding English that I wasn't able to use a computer without a dictionary but it didn't stop me cause I had passion for creating and knew that this will take me there one day Cause I knew you can program and make softwares and I was doing for it, then I started robotics to put my computers and electronics together but everything was too expansive cause I wasn't able to get parts in my country Afghanistan, so i had to order from other countries and even waiting for weeks didn't stopped me &lt;em&gt;why?&lt;/em&gt;    Cause &lt;strong&gt;I Love to create!&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="9110" LastEditorUserId="9110" LastEditorDisplayName="" LastEditDate="2010-12-15T04:13:00.190" LastActivityDate="2010-12-15T04:13:00.190" CommentCount="2" />
  <row Id="26430" PostTypeId="2" ParentId="1267" CreationDate="2010-12-14T18:56:57.697" Score="0" ViewCount="" Body="&lt;p&gt;Yes, it's similar to nano-technology. You construct small machines, connect those together, and let work on their own. At least in theory. In practice our programming techniques and abilities have so many limitations, that in order to achieve something even slightly useful  you get unavoidably lost in large blobs of spagetti code.&lt;/p&gt;&#xA;" OwnerUserId="8706" LastActivityDate="2010-12-14T18:56:57.697" />
  <row Id="26431" PostTypeId="2" ParentId="26407" CreationDate="2010-12-14T18:58:25.147" Score="6" ViewCount="" Body="&lt;p&gt;Well, at an un-named Fortune 500 company where I've worked it goes like this... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The business comes up with an idea, they announce it to all of their customers, including a date on when it will be available.  &lt;strong&gt;THEN&lt;/strong&gt; they contact IT and tell us about the project and the date that our customers expect it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We then scramble to get enough requirements done to figure how much we can actually deliver by the date announced.  And it always seems to be that the bigger the project, the more likely they're apt to announce to the world before they ask us for input.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-14T18:58:25.147" CommentCount="3" />
  <row Id="26432" PostTypeId="2" ParentId="16308" CreationDate="2010-12-14T19:05:44.040" Score="5" ViewCount="" Body="&lt;p&gt;Every programmer, once in a great while, has a perfect day.  You wake up 5 minutes before your alarm goes off feeling great.  Breakfast is made and on the counter, along with fresh coffee, so you can grab something and head out the door.  During your commute you hit every green light, and traffic seems to be especially light.  Contemplating the day ahead of you, you are able to fully understand the design and consequences of the task ahead of you, which has been well planned with firm requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You get to work and you find that you have no important emails, no voicemails waiting, and your co-workers are either out or in meetings that you don't have to attend.  You fire up your editor and are immediately in the zone, you can feel the structure of the code and see your data structures and algorithms fitting into place within a beautiful and cohesive whole. Thoughts flow through your hands to the keyboard, entering perfectly formed code that is elegant, maintainable, and with not a bug to be found.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;During the day you work with no interruptions, the office is quiet and you are so focused that you're never tempted to spend any time catching up on the news, blogs, etc. When you compile and run your tests, you find that everything works without a hitch, of course you knew it would, and at the end of the day you commit with no conflicts.  Glancing at the clock on your way out you realize you put in 12 hours and it felt like a brief 20 minute coding session.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That day, that perfect day, is what we assume we'll have every time we have to estimate anything.&lt;/p&gt;&#xA;" OwnerUserId="7042" LastActivityDate="2010-12-14T19:05:44.040" />
  <row Id="26433" PostTypeId="2" ParentId="26392" CreationDate="2010-12-14T19:07:04.430" Score="0" ViewCount="" Body="&lt;p&gt;Logic is more important, of course.  Without logic, you can't create logic (except by accident, which is not a good software development method).  Without creativity, you can still program, but you can only program what you've seen before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To excel you need creativity, but to even begin you need logic first.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastActivityDate="2010-12-14T19:07:04.430" />
  <row Id="26434" PostTypeId="2" ParentId="26301" CreationDate="2010-12-14T19:07:20.580" Score="1" ViewCount="" Body="&lt;p&gt;I would use C if I was writing an operating system. Since that is not going to happen in the next twenty years, unless I hit lotto and have nothing else to do but make my own awesome Linux distro, I'll probably just stick to C#, Java, Python, etc, etc. I haven't used C in a very long time but I always enjoyed using it; I think though, these days my head is so wrapped around OO if I have to go back to it it'd take me a bit to get rolling again.&lt;/p&gt;&#xA;" OwnerUserId="9174" LastActivityDate="2010-12-14T19:07:20.580" />
  <row Id="26435" PostTypeId="2" ParentId="7536" CreationDate="2010-12-14T19:16:12.223" Score="3" ViewCount="" Body="&lt;p&gt;The goal should be to make the code readable and clear. The style &lt;code&gt;int* a;&lt;/code&gt; may seem fine, but when it becomes &lt;code&gt;int* a, b;&lt;/code&gt; it implies something different than what it really is. Contrast with &lt;code&gt;int *a, b;&lt;/code&gt; and &lt;code&gt;int *a, *b;&lt;/code&gt; where each reads exactly like the way it works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The difference between &lt;code&gt;void f(int*);&lt;/code&gt; and &lt;code&gt;void f(int *);&lt;/code&gt; for readability is negligible, and I can't find myself caring much which one is used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you remember the top level goal (readability) it's easier to separate pure nitpicks from potential comprehension/maintenance problems.&lt;/p&gt;&#xA;" OwnerUserId="10363" LastActivityDate="2010-12-14T19:16:12.223" CommentCount="1" />
  <row Id="26436" PostTypeId="2" ParentId="16308" CreationDate="2010-12-14T19:16:41.397" Score="0" ViewCount="" Body="&lt;p&gt;That's a good question and one that I'm constantly pondering. I tend to think that&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it's very easy to misjudge the amount of work feature X will take.&lt;/li&gt;&#xA;&lt;li&gt;I never plan for bugs or trips to the kettle.&lt;/li&gt;&#xA;&lt;li&gt;either you get a lot done with little code or nothing done will lots and there seems to be no in between.&lt;/li&gt;&#xA;&lt;li&gt;sometimes you lose your 'zone', sometimes things need thinking through.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-14T19:16:41.397" />
  <row Id="26437" PostTypeId="2" ParentId="16308" CreationDate="2010-12-14T19:24:12.013" Score="1" ViewCount="" Body="&lt;p&gt;Because I spend too much time on Stack Overflow.&lt;/p&gt;&#xA;" OwnerUserId="3563" LastActivityDate="2010-12-14T19:24:12.013" />
  <row Id="26438" PostTypeId="1" AcceptedAnswerId="26444" CreationDate="2010-12-14T19:30:12.820" Score="13" ViewCount="341" Body="&lt;p&gt;Sometimes we have some business logic represented in the controller code of our applications. This is usually logic that differentiates what methods to call from the model and/or what arguments to pass them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another example of this is a set of utility functions that exist in the controller that may work to format or sanitize data returned from the model, according to a set of business rules.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This works, but I am wondering if its flirting with disaster. If there is business logic shared between controller and model the two layers are no longer separable, and someone inheriting the code may be confused by this unevenness in location of business logic related code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;My question is how much business logic should be allowed in the controller and in what circumstances, if any?&lt;/strong&gt; &lt;/p&gt;&#xA;" OwnerUserId="6518" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-14T19:35:07.647" LastActivityDate="2011-01-27T19:42:03.577" Title="How much business logic should be allowed to exist in the controller layer?" Tags="&lt;design-patterns&gt;&lt;mvc&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="3" />
  <row Id="26439" PostTypeId="2" ParentId="26385" CreationDate="2010-12-14T19:30:56.547" Score="0" ViewCount="" Body="&lt;p&gt;I vastly prefer to have prefix when I'm reading code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But infix when thinking about code.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-14T19:30:56.547" />
  <row Id="26440" PostTypeId="2" ParentId="1267" CreationDate="2010-12-14T19:40:08.083" Score="0" ViewCount="" Body="&lt;p&gt;Only when my boss says &quot;Good job, Dima! Good job.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It really worth to work better, faster and make less bugs :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because any work (programming, testing, drawing) is not worth if the success will not be compensated, right? By money or just words - for whom how.&lt;/p&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-12-14T19:40:08.083" />
  <row Id="26441" PostTypeId="2" ParentId="26392" CreationDate="2010-12-14T19:41:00.967" Score="0" ViewCount="" Body="&lt;p&gt;In terms of the original question, I would say logic is more necessary, because without rudimentary logical reasoning one would have a hard time programming anything, but one could get by without much creativity, just by following existing patterns.  However, creativity separates a great programmer from a merely competent one.&lt;/p&gt;&#xA;" OwnerUserId="5415" LastActivityDate="2010-12-14T19:41:00.967" />
  <row Id="26442" PostTypeId="2" ParentId="26438" CreationDate="2010-12-14T19:43:19.177" Score="4" ViewCount="" Body="&lt;p&gt;As little as possible. Preferably none.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The controller should be concerned with accepting the request, asking the correct domain service to process the request, and handing off the response to the correct view.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In that process, all of the &quot;business logic&quot; should exist in the domain services. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have functionality that takes domain objects and creates viewmodels out of them, then that can reasonably coexist with the controller. But that should be code that exists &lt;em&gt;only&lt;/em&gt; for the sake of the corresponding views. If there is a business-level rule about data sanitization, that should exist in your domain/service level (with the approriate unit tests).&lt;/p&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-12-14T19:43:19.177" />
  <row Id="26443" PostTypeId="2" ParentId="26438" CreationDate="2010-12-14T19:44:35.010" Score="3" ViewCount="" Body="&lt;p&gt;Controllers should be very light on domain logic. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Controllers should delegate tasks such as retrieving a record from the data store by way of an abstracted service/repository layer and passing data back into the data store by the same (or related) service. As for the mechanics and finer-workings between those operations, usually they belong somewhere other than the controller.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I often find myself adding small data sanitation methods to my controllers which save data back to the store and although this is an effective solution, it doesn't fit well with the intended role of the controller. Ideally, anything that will be modifying, validating, or parsing your model should occur very near to- if not within- the model itself. For example, if you need to 'clean' a model object before you store it, consider having a SanitizeInputs() method on the model or as part of the service which handles storing the model.&lt;/p&gt;&#xA;" OwnerUserId="13" LastActivityDate="2010-12-14T19:44:35.010" />
  <row Id="26444" PostTypeId="2" ParentId="26438" CreationDate="2010-12-14T19:44:41.340" Score="4" ViewCount="" Body="&lt;h2&gt;Ideally none&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;But that's not always possible. I can't give you hard numbers like 20% or 10 lines, that is subjective to the point it can't be answered. I can describe how I use design patterns and circumstances that necessitate bending them slightly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my mind it's entirely up to the purpose of the application. Building a simple REST api to post to? Forget about clean separation or even a pattern. You can churn out a working version in under an hour. Building something bigger? Probably best to work on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Building individually contained systems is the goal. If you start writing business logic that is specific to how two systems interact that is a problem. Without looking further into it I can't give an opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Design patterns are molds, some like to strictly adhere to them on the basis of principal and well-written code. Strictly adhering to a pattern probably won't give you &lt;em&gt;bad&lt;/em&gt; code, but it could take more time and cause you to write &lt;em&gt;much more&lt;/em&gt; code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Design patterns are flexible, adjust them to suit &lt;em&gt;your&lt;/em&gt; needs. Bend them too much and they break though. &lt;strong&gt;Know what you need&lt;/strong&gt; and pick a design pattern closest to that.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-14T19:44:41.340" />
  <row Id="26445" PostTypeId="2" ParentId="26407" CreationDate="2010-12-14T19:45:03.523" Score="1" ViewCount="" Body="&lt;p&gt;6d8 days for small/mid-size projects&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(6d8 x 3) weeks for large projects.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-14T19:45:03.523" />
  <row Id="26446" PostTypeId="2" ParentId="26392" CreationDate="2010-12-14T19:48:42.603" Score="1" ViewCount="" Body="&lt;p&gt;Is there no beauty in math?&lt;/p&gt;&#xA;" OwnerUserId="8802" LastEditorUserId="8802" LastEditorDisplayName="" LastEditDate="2010-12-14T19:57:04.387" LastActivityDate="2010-12-14T19:57:04.387" />
  <row Id="26447" PostTypeId="2" ParentId="26371" CreationDate="2010-12-14T19:48:55.613" Score="0" ViewCount="" Body="&lt;p&gt;Depends on what type of job you will be or already looking for. If you want to be a database designer or web applications developer, software design will be a better choice. But if you will be looking for jobs that involve developing games or develop CAD software, then the computer graphics course will be better. Hope this helps in making your decision.&lt;/p&gt;&#xA;" OwnerUserId="3432" LastActivityDate="2010-12-14T19:48:55.613" />
  <row Id="26448" PostTypeId="2" ParentId="26108" CreationDate="2010-12-14T19:52:11.430" Score="0" ViewCount="" Body="&lt;p&gt;If I were you and have enough time and money to invest in two majors, then my take will be Computer Science and Applied Mathematics. In my opinion, this should increase your chance of employment in any field.&lt;/p&gt;&#xA;" OwnerUserId="3432" LastActivityDate="2010-12-14T19:52:11.430" />
  <row Id="26449" PostTypeId="2" ParentId="26371" CreationDate="2010-12-14T20:04:04.170" Score="0" ViewCount="" Body="&lt;p&gt;If you want a great career with options, the most important thing is to stand out.  Lots of people take SE classes; lots of people take Graphics.  How can you stand out from them?  The first criterion is passion.  If you enjoy graphics, maybe you should specialize in that area.  Do new research or develop a unique algorithm.  Approach someone in the computer graphics industry and ask them about interesting unsolved problems.  If you solve one for them, you have a job, and suddenly you're the expert in that area.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastActivityDate="2010-12-14T20:04:04.170" />
  <row Id="26450" PostTypeId="2" ParentId="26243" CreationDate="2010-12-14T20:07:41.690" Score="0" ViewCount="" Body="&lt;p&gt;Hey guys i use VIM and type alot with C-X C-N =)&#xA;use vimium in browser&lt;/p&gt;&#xA;" OwnerUserId="9272" LastActivityDate="2010-12-14T20:07:41.690" CommunityOwnedDate="2011-03-25T14:40:57.210" />
  <row Id="26451" PostTypeId="2" ParentId="26371" CreationDate="2010-12-14T20:10:53.877" Score="0" ViewCount="" Body="&lt;p&gt;To be frank I think the single thing that a potential employer is most interested in, is &quot;did you graduate?&quot;.  The difference between &quot;reached my goal&quot; and &quot;had to drop out&quot; is so important, that this is the single most relevant metric.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The actual classes is less relevant, as you have demonstrated you are capable of learning by taking your education, so I would suggest that you take the ones you think are the most fun.  This will also mean you learn more, and generally be good for you.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-14T20:10:53.877" />
  <row Id="26452" PostTypeId="2" ParentId="26108" CreationDate="2010-12-14T20:11:00.520" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.ucalendar.uwaterloo.ca/0708/MATH/comp_sci.html&quot; rel=&quot;nofollow&quot;&gt;University of Waterloo Computer Science&lt;/a&gt; lists a Software Engineering option that to my mind makes more sense than seeing these as such different disciplines,i.e. SE is mostly a proper subset of CS to my mind.  That said, CS was one of my majors in university but I didn't take any practical 4th year courses but focused more on theoretical areas like Computational Complexity Theory and Symbolic Computation so I'm not sure how well I would have fared in SE courses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I didn't do a Masters primarily due to my grades coming out of my Bachelor's being just low enough that I was below was the good grad schools wanted.  My final average was 75.8% and usually 78% is required for the good schools, thus I went into the work force instead.  There wasn't the SE option for CS students in my time at Waterloo as it was just being decided as I was graduating so I can look back and wonder, &quot;Maybe I should have tried SE instead of CS,&quot; but that's in that &quot;coulda, woulda, shoulda,&quot; land that isn't very productive, in my experience.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-14T20:11:00.520" />
  <row Id="26453" PostTypeId="2" ParentId="26322" CreationDate="2010-12-14T20:18:07.247" Score="0" ViewCount="" Body="&lt;p&gt;Interesting project&#xA;and enough hardware for developing. &lt;/p&gt;&#xA;" OwnerUserId="9272" LastActivityDate="2010-12-14T20:18:07.247" />
  <row Id="26454" PostTypeId="1" AcceptedAnswerId="26457" CreationDate="2010-12-14T20:21:41.487" Score="19" ViewCount="1638" Body="&lt;p&gt;If you want to be a good developer, but start developing at the age of 26, is there any way to became a good programmer ?&lt;/p&gt;&#xA;" OwnerUserId="9272" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-12-14T21:10:02.737" LastActivityDate="2010-12-15T11:25:11.093" Title="Does it matter that you started developing at 26?" Tags="&lt;software-developer&gt;" AnswerCount="23" CommentCount="6" FavoriteCount="9" />
  <row Id="26455" PostTypeId="2" ParentId="26243" CreationDate="2010-12-14T20:21:48.473" Score="1" ViewCount="" Body="&lt;p&gt;There's no excuse for not knowing how to touch-type.  Programmers need to write email and comments and design documents, not just code.  Go spend $30 and a week on Mavis Beacon now.  And read &lt;a href=&quot;http://steve-yegge.blogspot.com/2008/09/programmings-dirtiest-little-secret.html&quot; rel=&quot;nofollow&quot;&gt;this rant called &quot;Programming's Dirtiest Little Secret&quot; by Steve Yegge&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10077" LastActivityDate="2010-12-14T20:21:48.473" CommunityOwnedDate="2011-03-25T14:40:57.210" />
  <row Id="26456" PostTypeId="2" ParentId="26454" CreationDate="2010-12-14T20:24:13.223" Score="3" ViewCount="" Body="&lt;p&gt;It all depends on how interested you are in programming and learning new technology.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Programming isn't the same as &quot;playing piano&quot;.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; Some stuff you can't get good enough at, if you haven’t started early in life. Music is one of does. &quot;good&quot; is a vague word, it's up to you how you define “good”.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-12-14T21:13:31.247" LastActivityDate="2010-12-14T21:13:31.247" CommentCount="11" />
  <row Id="26457" PostTypeId="2" ParentId="26454" CreationDate="2010-12-14T20:24:44.627" Score="49" ViewCount="" Body="&lt;p&gt;It doesn't matter how old you are when you start to do &lt;em&gt;anything&lt;/em&gt;, as long as you put effort into it and truly want to master the craft. Then you'll be good, if not great at it.&lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2010-12-14T20:24:44.627" CommentCount="3" />
  <row Id="26458" PostTypeId="2" ParentId="26454" CreationDate="2010-12-14T20:33:43.700" Score="6" ViewCount="" Body="&lt;p&gt;How old do you think you should be?  Is 26 really that old where you live?  My goodness I'm ancient.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;NO.  You are not too old at all.  Whoever says you are is dumb.  Yes, dumb.  No fancy word for it just good old dumb.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-14T20:33:43.700" CommentCount="2" />
  <row Id="26459" PostTypeId="2" ParentId="26454" CreationDate="2010-12-14T20:33:57.723" Score="26" ViewCount="" Body="&lt;p&gt;Yes. I started when I was 30 and I'm awesome.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-12-14T20:33:57.723" CommentCount="4" />
  <row Id="26460" PostTypeId="2" ParentId="26301" CreationDate="2010-12-14T20:37:29.767" Score="2" ViewCount="" Body="&lt;p&gt;Yes. I spent most of my career programming C++, but now I write most of my code in Ruby and if I need performance or access to low level stuff I write a C extension. It's the future Man!&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-12-14T20:37:29.767" CommentCount="1" />
  <row Id="26461" PostTypeId="2" ParentId="26108" CreationDate="2010-12-14T20:37:48.007" Score="0" ViewCount="" Body="&lt;p&gt;@LLWoodyiii I agree with most of what you said in your post here and your blog post, I however have an issue with one of your claims.  This might be because of vastly different curriculum or a poor quality teacher, but I know after I took discrete math in my undergrad my programming skills and ability to learn knew programming skills increased ten fold.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe you already knew all the relevant topics taught in discrete, but I have to say the month we spent on algorithms (not on the computer, mathematical algorithms) in addition to the time we spent on mathematical recursion, was a huge help to me.  After discrete I felt confident solving much tougher problems in CS and at work.  I just wanted to point that out, and I am by no means discounting your experience or calling you out, I just wanted to express my opinion.&lt;/p&gt;&#xA;" OwnerUserId="9759" LastActivityDate="2010-12-14T20:37:48.007" />
  <row Id="26462" PostTypeId="2" ParentId="26438" CreationDate="2010-12-14T20:40:04.273" Score="1" ViewCount="" Body="&lt;p&gt;From a pragmatic point of view I have found that you either end up with logic in your controller or controller behavior in your model when you are trying to do something that there is not a good pattern-compliant approach for.  Doubly so if you are writing an app that does not have a big infrastructure behind it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can go either way, but I usually try to think if the weird bit is likely to show up in more than one controller action, if so it goes in the model.  If that is unclear, I try to think if it is more &quot;fitting&quot; in one place than the other.  Failing that I usually put it in the model just to keep it out of the controller (personal preference for smaller controllers and stronger data objects, YMMV)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A third option would be to reference the utility items as a separate utility class, but that is somewhat against pattern as well in the opinion of many.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, just because you aren't strictly following a pattern you are not necessarily flirting with disaster.  Unless you really expect a significant amount of code re-use off this project I would worry a whole lot more about the project being consistent to itself (ie: don't flip-flop on where you put these bits once you pick a location) than a re-write that for some reason wants to save part of the middle of the project.  Document/comment where &amp;amp; why you deviated from the common pattern and define the expected pattern for this application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;MVC was a deviation from established patterns itself at one point.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-12-14T20:40:04.273" />
  <row Id="26463" PostTypeId="2" ParentId="26425" CreationDate="2010-12-14T20:47:18.180" Score="2" ViewCount="" Body="&lt;p&gt;Bitbucket&lt;/p&gt;&#xA;&#xA;&lt;p&gt;github&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-14T20:47:18.180" />
  <row Id="26464" PostTypeId="1" CreationDate="2010-12-14T20:51:09.067" Score="0" ViewCount="262" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/25762/how-to-encourage-a-non-programmer-to-learn-programming&quot;&gt;How to encourage a non-programmer to learn programming?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;My brother is 17 and will be graduating this year.  He's on his way to college and is a normal popular kid who does well in school, but basically only uses the computer for facebook and espn.  I think he should learn how to program and college would be a great time.  But I am not a programmer, rather I have just started to learn myself.  So from experienced programmers, how would you (or would you?) encourage a younger brother or sister to learn how to program?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifically, how would you relate the value of the skills developed beyond career opportunities and within the context of college?  Second, what would you suggest they do for the first three months of learning?  Oh, and I don't want to just tell him to take an CS intro course, where at least half of the kids probably have CS experience.&lt;/p&gt;&#xA;" OwnerUserId="9856" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-12-22T03:10:48.347" LastActivityDate="2010-12-22T03:10:48.347" ClosedDate="2010-12-14T22:46:09.793" Title="How should I encourage my 17yr old brother to start programming?" Tags="&lt;teaching&gt;&lt;motivation&gt;&lt;young-people&gt;" AnswerCount="7" CommentCount="7" />
  <row Id="26465" PostTypeId="2" ParentId="26464" CreationDate="2010-12-14T20:56:03.753" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;He's on his way to college and is a normal popular kid who does well in school, but basically only uses the computer for facebook and espn. I think he should learn how to program and college would be a great time.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;My rule of thumb for dealing with other people:  you can't change them;  you can only redirect them.  If ESPN and facebook are the only things your brother sees the computer as useful for, you probably won't be able to change that.  So instead, why not show him how he can use programming to use ESPN and facebook more effectively?  For instance, &lt;a href=&quot;http://developers.facebook.com/&quot; rel=&quot;nofollow&quot;&gt;facebook has an API&lt;/a&gt;.  Perhaps he can write a program that does something with facebook?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general though, it sounds like you have an uphill task, and he might &lt;em&gt;still&lt;/em&gt; not have any desire to learn programming.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-14T20:56:03.753" />
  <row Id="26466" PostTypeId="2" ParentId="26464" CreationDate="2010-12-14T20:57:05.310" Score="9" ViewCount="" Body="&lt;p&gt;Why would you want to encourage him to head into programming? If he isn't interested in it, then he won't enjoy it and it will be a chore. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, how to you relate programming to college/university being a great time? Learning to program is generally a solo activity which takes a person away from fun social activites which, in all honesty, are much more fun than learning to program. (I did CS at uni)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally think you shouldn't push him into programming if he doesn't want to do it. If he's going into CS, then fine, but if not then programming may not be the right skill for him to learn at this point in time.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I thought I'd clarify my programming experience at university. Learning programming is a lonely time, but once you learn to program, it can be fun. I didn't hate learning it and I certainly don't hate it now (I got a 1st in my degree and I am a software developer now) but if someone isn't going to use programming or enjoy it, there are much better things they can be doing&lt;/p&gt;&#xA;" OwnerUserId="154" LastEditorUserId="154" LastEditorDisplayName="" LastEditDate="2010-12-14T21:04:33.990" LastActivityDate="2010-12-14T21:04:33.990" />
  <row Id="26467" PostTypeId="2" ParentId="26464" CreationDate="2010-12-14T20:57:24.140" Score="4" ViewCount="" Body="&lt;p&gt;Just talk to him about it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If he shows an interest, then see if you can hook him by introducing him to some cool things you can do with it, or the high salaries that you could earn in this industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If he shows no interest, drop it. Programming is not for everyone.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-12-14T20:57:24.140" />
  <row Id="26468" PostTypeId="2" ParentId="16070" CreationDate="2010-12-14T20:58:31.720" Score="1" ViewCount="" Body="&lt;p&gt;An extra level of indirection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't want to care whether the object you're using is a &lt;code&gt;Cat&lt;/code&gt; or a &lt;code&gt;Dog&lt;/code&gt;, so you go through a virtual function table to find the right &lt;code&gt;makeNoise()&lt;/code&gt; function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure this could be applied to 'lower' and 'higher' levels as well - think of a compiler looking up the right instruction to use for a given processor or Haskell's &lt;code&gt;Monad&lt;/code&gt;s abstracting over computational effects by calling everything &lt;code&gt;return&lt;/code&gt; and &lt;code&gt;&amp;gt;&amp;gt;=&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3028" LastActivityDate="2010-12-14T20:58:31.720" />
  <row Id="26469" PostTypeId="2" ParentId="26438" CreationDate="2010-12-14T20:59:27.257" Score="1" ViewCount="" Body="&lt;p&gt;Like many other interesting concepts in programming, MVC is a powerful paradigm to bring structure and focus to a family of close or similar strategies to implement certain scenarios.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like many other programming concepts, MVC simplifies reality, discards small details and provides a crude wireframe model to follow. Like many other simplifications of reality it does it job ny bringing stucture into chaos as seen by a human mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, like many other programming concepts, MVS is just a simplification of reality. It's not perfect and it's not thorough. Which is why it is not possible to fit a real world scenario into a oversimplified model. Hence arise many questions similar to this one.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;How much logic should go into a controller?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Whether a view should contain any conditional logic?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Whether a model should contain any additional data not found directly in business entities?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These are all questions born in an attempt to adjust the code to fit the conceptual idea of MVC precisely and completely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My answer to you is don't try to. MVC provides structure. Build your application around this foundation but don't expect it to fit perfectly. There will be deviations, it's normal. Just watch to keep them under control.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-14T20:59:27.257" />
  <row Id="26470" PostTypeId="2" ParentId="26464" CreationDate="2010-12-14T21:01:56.077" Score="2" ViewCount="" Body="&lt;p&gt;I think the short answer would be you don't encourage someone to start programming. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the interest needs to exist for someone to start on the road to being a developer. If there is no interest, they won't want to do it. This can be said for any field of study or any hobby really. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had to teach students who are only taking programming classes b/c they have to, either b/c their parents told them to or b/c it's mandatory for their major, and it doesn't go well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, if you want to see if the interest exists, perhaps ask if your brother would like to help you code a game. Something small but fun. If the interest is there, then it will be an enjoyable learning experience, and if not then not much time (or money) will have been wasted. &lt;/p&gt;&#xA;" OwnerUserId="2305" LastActivityDate="2010-12-14T21:01:56.077" />
  <row Id="26471" PostTypeId="1" AcceptedAnswerId="27033" CreationDate="2010-12-14T21:08:50.553" Score="7" ViewCount="156" Body="&lt;p&gt;Does anyone know any sites that list schedules for software conferences upcoming in 2011?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm particularly interested in conferences this winter in a warm weather location :)&lt;/p&gt;&#xA;" OwnerUserId="9964" LastActivityDate="2010-12-16T19:49:23.163" ClosedDate="2011-05-23T05:07:34.677" Title="Software conference schedule?" Tags="&lt;conference&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="1" />
  <row Id="26472" PostTypeId="2" ParentId="26454" CreationDate="2010-12-14T21:11:17.570" Score="14" ViewCount="" Body="&lt;p&gt;If you want to be really good at something, put ten thousand hours or so of study and practice in.  That's about five years of full-time application.  Obviously, if you start at 26 and put in two thousand hours a year you'll be 31 by the time you've put your ten thousand hours in, but you do have to ask yourself how old you'll be in five years if you don't learn to program.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-14T21:11:17.570" CommentCount="1" />
  <row Id="26473" PostTypeId="1" CreationDate="2010-12-14T21:19:11.387" Score="3" ViewCount="150" Body="&lt;p&gt;I have an Access 03 program with a bunch of VBA code that is in use and the end user wants new functionality. I am finding it very difficult to add new functionality because my brain wants to use the most recent .NET technologies and VBA is not recent at all. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How should I go about &quot;rolling back&quot; technologies in my head to keep my frustration levels to a minimum? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also my boss said it wasn't in the budget to rewrite the project from access and vba to some sort of form and SQL combo (which I could probably pound out in a few days, which is the same amount of time that I feel that it will take me to look up and implement in the old system). &lt;/p&gt;&#xA;" OwnerUserId="6854" LastActivityDate="2010-12-14T23:15:53.607" Title="Going from cutting edge to maintaining legacy projects" Tags="&lt;learning&gt;&lt;.net&gt;&lt;technology&gt;" AnswerCount="5" CommentCount="2" />
  <row Id="26474" PostTypeId="2" ParentId="26243" CreationDate="2010-12-14T21:20:36.653" Score="0" ViewCount="" Body="&lt;p&gt;Typing is not related to programming! Belive in me, you got typing skill while chatting ;) not programming! Because you must think of logic, condition,..You think of how to make code shorter, beautiful, more secure,..Thing like that prevents you type too fast! &#xA;I gain my typing speed when chatting, writing, ....Additionally, because of &#xA;language's feature, you can type quite fast in a languages and quite slow in others!&#xA;I hears some geek guy can type 30words with thier norse ;)&lt;/p&gt;&#xA;" OwnerUserId="9559" LastActivityDate="2010-12-14T21:20:36.653" CommunityOwnedDate="2011-03-25T14:40:57.210" />
  <row Id="26475" PostTypeId="2" ParentId="26473" CreationDate="2010-12-14T21:25:16.883" Score="1" ViewCount="" Body="&lt;p&gt;Apart from imagining that you are in year 1997 and just getting your hands dirty with VBA, I don't see any other way you could fix this.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-14T21:25:16.883" />
  <row Id="26476" PostTypeId="1" AcceptedAnswerId="26483" CreationDate="2010-12-14T21:27:13.967" Score="4" ViewCount="359" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;What's the future of the popular MySQL open-source database now developed and supported by Oracle?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;MySQL becomes more successful in pushing into the enterprise, can Oracle executives resist seeing the open-source database as a threat to its own more costly offering?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In short, is MySQL still a good open-source business choice?&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-14T22:35:07.167" LastActivityDate="2010-12-15T00:48:00.117" ClosedDate="2010-12-29T20:36:16.947" Title="Is MySQL still a good open-source business choice now that Oracle owns the rights?" Tags="&lt;future&gt;&lt;oracle&gt;&lt;mysql&gt;&lt;database&gt;" AnswerCount="4" CommentCount="7" />
  <row Id="26477" PostTypeId="2" ParentId="26473" CreationDate="2010-12-14T21:32:45.313" Score="3" ViewCount="" Body="&lt;p&gt;Consider it an exercise in mental flexibility. Appreciate the chance to temporarily lower your standards, so when you come back to the most recent .net, it will be like paradise to you.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-14T21:32:45.313" />
  <row Id="26478" PostTypeId="2" ParentId="26473" CreationDate="2010-12-14T21:41:52.463" Score="3" ViewCount="" Body="&lt;p&gt;You should be able to take satisfaction and professional pride in figuring out the existing code base, adding your new functionality in a way that doesn't make the situations worse, and not breaking the existing functionality.  I have to do this all the time, back and forth between recent technology and old technology.  I've always taken satisfaction out of being able to do this well.  &lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-12-14T21:41:52.463" />
  <row Id="26479" PostTypeId="2" ParentId="26464" CreationDate="2010-12-14T21:43:30.743" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Pay Him of course! :)&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-12-14T21:43:30.743" />
  <row Id="26480" PostTypeId="2" ParentId="26454" CreationDate="2010-12-14T21:50:03.670" Score="4" ViewCount="" Body="&lt;p&gt;50 years ago, all the programmers started when they were 26 or older.  Well, some may have started a bit earlier, but none when they were children.  I'm sure some of them were good developers, because they built the foundations that we use.&lt;/p&gt;&#xA;" OwnerUserId="88" LastActivityDate="2010-12-14T21:50:03.670" CommentCount="2" />
  <row Id="26481" PostTypeId="2" ParentId="26476" CreationDate="2010-12-14T21:53:30.420" Score="1" ViewCount="" Body="&lt;p&gt;MySQL is definitely still a good open-source business choice.  It's actually quite remarkable how little control Oracle maintains over it (although that may be a side-effect of the required adjustment to buying Sun not being over).  Facebook, for example, is a huge contributor to the project and is constantly trying to improve it for enterprise use.  They've greatly improved its reliability in a distributed environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally don't think Oracle has much of an option here.  Since MySQL is open source, even if they take it offline and stop supporting it, others will continue to do so, and then they'll have another competitor.  It's in their best interest to keep it around and develop a business strategy around it, although I'm not sure they're smart enough to do so.  It's not like they can stick Google ads into query results ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope they integrate some of the great features Oracle has into it.  It wouldn't be a bad way to generate some goodwill towards them.  In any case, I think MySQL is a strong platform and will continue to be, Oracle-owned or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.forbes.com/2009/04/20/mysql-marten-mickos-technology-enterprise-tech-mysql.html&quot; rel=&quot;nofollow&quot;&gt;This Forbes article&lt;/a&gt; about the issue is interesting.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastEditorUserId="9771" LastEditorDisplayName="" LastEditDate="2010-12-15T00:48:00.117" LastActivityDate="2010-12-15T00:48:00.117" CommentCount="6" />
  <row Id="26482" PostTypeId="2" ParentId="26454" CreationDate="2010-12-14T21:54:07.733" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I firmly believe that you are never too old for anything, but would still like to provide a real life case which contradicts this belief of mine.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Contrary to conceptual answers (&quot;yes you can&quot;) most people provided here, I have had real life experience with some people who started developing software at age of 25+ and I mean real beginners, people who never studied computer architecture and programming in the past. Never wrote a line of assembly or C, they basically started off with Java and C# as the somewhat easier way of jumping the programming wagon. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as I remember none of them got past the cargo cult phase, not to mention learning about design patterns or understanding how VM did garbage collection. Their code was impossible to refactor because they often did not know how they got where they got (see cargo cult phase). Advanced language elements like events and threads remained a deep mystery for these guys. And somehow they lacked technical competence to learn things themselves. I remember they were constantly being schooled by the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually, two of them dropped the programming career after two years and another one had been struggling to this day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Note : This I did not write to discourage you. I still think this had more to do with these guys' personal traits rather than being a general case. If you can put all your efforts into it and work really hard, and constantly educate yourself (by writing actual code to solve problems), you can definitely make great progress.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-14T21:54:07.733" CommentCount="5" />
  <row Id="26483" PostTypeId="2" ParentId="26476" CreationDate="2010-12-14T21:58:08.513" Score="3" ViewCount="" Body="&lt;p&gt;I'm moving all my projects to &lt;a href=&quot;http://www.postgresql.org/&quot; rel=&quot;nofollow&quot;&gt;PostgreSQL&lt;/a&gt;. That tells you how much faith I have in Oracle. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm still using Java though, not sure what even &lt;em&gt;I&lt;/em&gt;&amp;nbsp; think about that. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-14T22:05:43.300" LastActivityDate="2010-12-14T22:05:43.300" CommentCount="1" />
  <row Id="26484" PostTypeId="2" ParentId="26473" CreationDate="2010-12-14T22:06:03.783" Score="1" ViewCount="" Body="&lt;p&gt;Turn on the Nirvana, roll up your flannel shirt's sleeves, stroke your beard and just get down to work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Kidding aside, I find it somewhat unpleasant to &quot;roll back&quot; from VS 2010 to Visual Studio for Applications.  BUT, I find it a fulfilling challenge to employ methodologies such as formal Design Patterns, Inversion of Control, automated unit testing, etc. in the older environment.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-12-14T22:06:03.783" CommentCount="1" />
  <row Id="26485" PostTypeId="2" ParentId="26471" CreationDate="2010-12-14T22:10:53.803" Score="0" ViewCount="" Body="&lt;p&gt;You can give &lt;a href=&quot;http://www.meetup.com/&quot; rel=&quot;nofollow&quot;&gt;Meetup&lt;/a&gt; a try.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, you might get better luck if you narrow your search to a specific topic and place, like Python in USA, Linux in Europe or Microsoft in Asia, since a single calendar aggregating conference dates on those three topics will certainly miss some interesting ones.&lt;/p&gt;&#xA;" OwnerUserId="8140" LastEditorUserId="8140" LastEditorDisplayName="" LastEditDate="2010-12-14T22:37:25.903" LastActivityDate="2010-12-14T22:37:25.903" />
  <row Id="26486" PostTypeId="2" ParentId="26464" CreationDate="2010-12-14T22:15:32.020" Score="1" ViewCount="" Body="&lt;p&gt;Why would you encourage him, if you yourself are a beginner in this field and cannot tell for sure if it is of sufficient interest (i.e. beyond hello world progs) to you, let alone your brother? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, if he is 17 and  just using comp for FB and ESPN..I hate to break the news but chances are he will still be using it the same way in a decade too. Most people on SO and SE sites have started programming quite early,e.g. I started at the age of 12 and I know some people who started at the age of 9.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-14T22:15:32.020" />
  <row Id="26487" PostTypeId="2" ParentId="26371" CreationDate="2010-12-14T22:19:38.797" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Do what you love, and the money will come&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I'm interviewing, I ask about what people know and what they can do, not what classes they took. I've interviewed plenty of people who have taken classes and can barely even tell me what the classes were about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you're interested in computer graphics, go for the class. You're a lot more likely to impress an interviewer with something you're interested in than something that was &quot;good for your career&quot; but bored you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you want to do CG, it's not really that hard to get into. Just write some cool demo programs, or work on a related open source project. Putting info about my CG experience in my LinkedIn profile has generated lots of recruiter calls.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-14T22:19:38.797" CommentCount="2" />
  <row Id="26489" PostTypeId="2" ParentId="26464" CreationDate="2010-12-14T22:26:18.677" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Pushing somebody to program who has neither interest nor aptitude is like force-feeding carrots to a cat.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ain't gonna end well for anybody.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-14T22:26:18.677" />
  <row Id="26490" PostTypeId="2" ParentId="26471" CreationDate="2010-12-14T22:26:20.333" Score="0" ViewCount="" Body="&lt;p&gt;I know a guy who's off to Lotusphere in next month - that's in Florida.  Also, try &lt;a href=&quot;http://www.allconferences.com/Computers/Software/&quot; rel=&quot;nofollow&quot;&gt;http://www.allconferences.com/Computers/Software/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As vz0 says, though, it might be better to narrow down to technologies you're interested in, and look at how those groups publish things like this.   Some groups maintain a Facebook account and post event details there.  HTC put everything up on their twitter feeds.  Other groups use their blogs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, Google! :)&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-12-14T22:26:20.333" CommentCount="2" />
  <row Id="26491" PostTypeId="2" ParentId="26454" CreationDate="2010-12-14T22:38:35.603" Score="2" ViewCount="" Body="&lt;p&gt;I'm 31. Just got my degree this year in Computer Science/programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All it means is that the co-workers that are the same age as me have 10'ish years of experience while I'm months in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not everyone is blessed with choosing the right profession in the first try (or second... or third). Some people don't get started &quot;right away&quot;. I'm one of those.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does that leave me at a disadvantage? Of course not. I'm eager, willing and able to learn everything some 18 year old is. It just means I don't have years of experience and I'm starting from scratch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hell... not even from scratch since I have 10 years of experience to pull from still. Even tho it's not programming, there are bits and pieces that still fit in.&lt;/p&gt;&#xA;" OwnerUserId="2536" LastActivityDate="2010-12-14T22:38:35.603" CommentCount="2" />
  <row Id="26492" PostTypeId="2" ParentId="26476" CreationDate="2010-12-14T22:49:42.080" Score="-1" ViewCount="" Body="&lt;p&gt;I'm no expert on marketing but as I see it from a public relations point of view, if Oracle kills MySQL then they will certainly get more trouble than they currently have, specially with the Open/Free Software Market (yes, it is a Market).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a technical point of view, PostgreSQL is a much better choice than MySQL. PostgreSQL was designed to be reliable and standards compliant, compromising some speed on it's way. MySQL was designed to be fast, not giving much support to some nice technical features (like subquerys).&lt;/p&gt;&#xA;" OwnerUserId="8140" LastActivityDate="2010-12-14T22:49:42.080" CommentCount="2" />
  <row Id="26493" PostTypeId="2" ParentId="26476" CreationDate="2010-12-14T22:51:57.840" Score="0" ViewCount="" Body="&lt;p&gt;Here in Brazil I do know some companies that must regularly do business with Oracle, either because of the original Sun Java Virtual Machine or because they use Oracle DBMS. General business reputation from Oracle is really bad among everyone I know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally would not trust them to maintain MySQL open or to improve MySQL codebase - less due to competition to Oracle DB, but far more because their executives seem to manage from a fear point of view, instead of a open-minded one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My guts tells me that if they could close Java and MySQL source code, they would without even blinking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is my personal feeling, not based on any market research at all.&lt;/p&gt;&#xA;" OwnerUserId="9506" LastActivityDate="2010-12-14T22:51:57.840" />
  <row Id="26494" PostTypeId="2" ParentId="26454" CreationDate="2010-12-14T22:58:20.090" Score="1" ViewCount="" Body="&lt;p&gt;It isn't all that important how late one starts to learn to program (maybe 90 might be stretching it, but...).  I've known people who started with CompSci in college at age 19 or 20 and couldn't program their way out of a wet paper bag at graduation. On the other hand, I didn't get started until a couple of years after I left the Army.  I was 36 when I got my Computer Programming Associates Degree. Been coding for 24 years now. From mainframe COBOL to .NET C# (and a few others in between). Maybe I'm an exception that proves the rule, but I've known others with similar careers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A somewhat related question (too old to code?) on StackOverflow:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/972611/old-developers-any-future&quot;&gt;http://stackoverflow.com/questions/972611/old-developers-any-future&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1351" LastActivityDate="2010-12-14T22:58:20.090" />
  <row Id="26496" PostTypeId="2" ParentId="26454" CreationDate="2010-12-14T23:10:43.990" Score="0" ViewCount="" Body="&lt;p&gt;All you need is 10,000 hours to become a master at anything. That's the only difference between a pro and an amateur.&lt;/p&gt;&#xA;" OwnerUserId="10088" LastActivityDate="2010-12-14T23:10:43.990" CommentCount="4" />
  <row Id="26497" PostTypeId="1" CreationDate="2010-12-14T23:13:40.960" Score="4" ViewCount="106" Body="&lt;p&gt;I'm fairly new to working as a programmer, at least working as a regular employee in-house for a company. I often become frustrated with my company's management style as they basically just pick out whatever random tasks catches the lead developer's fancy that day, or the day before, and give me the task (with tasks usually lasting less than 1 day). A lot of the tasks I have now are fairly small and are for adding enhancements to a web application, fixing bugs, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am bothered, however, by the fact that they don't plan ahead so as to give me an written outline of projects a few days in advance so that if, for example, I am rusty on something I can at least familiarize myself with it on my own time or at least have a more relaxed approach to the job so that everything doesn't have to be so reactionary on my part (where I can mull things during off-time over before starting work on them, etc)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess I'm just curious if this is the norm or if most development jobs value clearly laid out specifications for tasks and are able to prepare them somewhat in advance. I would be interested to hear anyone's experience / opinions, etc. Thanks&lt;/p&gt;&#xA;" OwnerUserId="10087" LastEditorUserId="10087" LastEditorDisplayName="" LastEditDate="2010-12-14T23:24:55.627" LastActivityDate="2010-12-14T23:30:07.407" Title="For in-house programmers (non-project managers), do you normally receive project instructions written out in advance?" Tags="&lt;project-management&gt;&lt;development-process&gt;&lt;project&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="26498" PostTypeId="2" ParentId="26473" CreationDate="2010-12-14T23:15:53.607" Score="0" ViewCount="" Body="&lt;p&gt;If you're good at what you do and it's your professional opinion that it would be more cost-effective to re-do it in .NET instead of struggle with VBA, then your boss should take that seriously.  If they don't then I recommend you find a new, competent boss somewhere else :)&lt;/p&gt;&#xA;" OwnerUserId="9771" LastActivityDate="2010-12-14T23:15:53.607" />
  <row Id="26499" PostTypeId="1" CreationDate="2010-12-14T23:21:06.733" Score="2" ViewCount="253" Body="&lt;p&gt;What are the tools that are most valuable to you in programming?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;constraints&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Avoid the obvious &lt;em&gt;requirements&lt;/em&gt; to do your job.  &lt;strong&gt;ex: &lt;code&gt;A Computer, the internet&lt;/code&gt;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Avoid anything too abstract (think software/non-obvious hardware)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;Bonus&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Cross-OS compatibilty&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Web-Based Tools&lt;/li&gt;&#xA;&lt;li&gt;Free Tools&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10057" LastActivityDate="2010-12-15T03:18:01.023" CommunityOwnedDate="2010-12-15T00:40:32.197" ClosedDate="2010-12-15T01:06:33.460" Title="What is in your programmers utility belt?" Tags="&lt;programming&gt;&lt;tools&gt;" AnswerCount="10" CommentCount="2" FavoriteCount="2" />
  <row Id="26500" PostTypeId="2" ParentId="26497" CreationDate="2010-12-14T23:29:54.463" Score="3" ViewCount="" Body="&lt;p&gt;No, what you have is rather rare in my experience.  Scrums tend to allow some flexibility in knowing what is coming up as the sprint has a defined set of work that is to be during it as there are planning meetings where the team decides, &quot;This is what will get done during the next sprint.&quot;  That does tend to prevent the, &quot;Oh get this done NOW!&quot; kind of dramatics usually and give some bounds on where the focus is during a sprint.  Typically, things aren't written out well and so clarifying what is requested and how much time should be spent are a couple of factors to consider with things.  For example, some bugs one could spend days getting all the cases covered thoroughly while some may accept the work that can get done in a couple of hours that covers 99% of the cases that will often happen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To take a devil's advocate position about not knowing what is coming soon, would you really want to be told one thing only to have it changed a few days later when you were just about to start working on it?  I mean imagine if you thought you'd get to work on feature X but instead support request Y takes priority and that wasn't reported until late yesterday so there wasn't a lot of time to tell you about this change until now.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-14T23:29:54.463" CommentCount="1" />
  <row Id="26501" PostTypeId="2" ParentId="26497" CreationDate="2010-12-14T23:30:07.407" Score="1" ViewCount="" Body="&lt;p&gt;No. An average task given to me isn't well defined until after I mess with it for a week, for which I need to pry the information out of whoever has it. Even then I feel hazy about what actually needed to happen.&lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2010-12-14T23:30:07.407" CommentCount="1" />
  <row Id="26502" PostTypeId="2" ParentId="26499" CreationDate="2010-12-14T23:31:52.803" Score="2" ViewCount="" Body="&lt;p&gt;The main useful tools for me are the Delphi IDE, the SQL IDE for whatever database I'm using, a SQL profiler, a SQL formatter (&lt;a href=&quot;http://www.dpriver.com/pp/sqlformat.htm&quot; rel=&quot;nofollow&quot;&gt;web-based&lt;/a&gt;), and an &lt;a href=&quot;http://delphitools.info/samplingprofiler/&quot; rel=&quot;nofollow&quot;&gt;application profiler&lt;/a&gt;.  Those, plus SO, docs, and other Internet references, tend to contain everything I need for most coding tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Occasionally I find myself needing to call upon the services of Dependency Walker as well, but not too often.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Oh, and how did I forget &lt;a href=&quot;http://www.scootersoftware.com/&quot; rel=&quot;nofollow&quot;&gt;BeyondCompare&lt;/a&gt;?&lt;/p&gt;&#xA;" OwnerUserId="935" LastEditorUserId="935" LastEditorDisplayName="" LastEditDate="2010-12-14T23:41:42.550" LastActivityDate="2010-12-14T23:41:42.550" CommunityOwnedDate="2010-12-15T00:40:32.197" CommentCount="1" />
  <row Id="26503" PostTypeId="2" ParentId="26499" CreationDate="2010-12-14T23:36:27.720" Score="4" ViewCount="" Body="&lt;h3&gt;&lt;a href=&quot;http://www.red-gate.com/products/dotnet-development/reflector/&quot; rel=&quot;nofollow&quot;&gt;Reflector.&lt;/a&gt;&lt;br&gt;&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;To explore .NET assemblies.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-14T23:36:27.720" CommunityOwnedDate="2010-12-15T00:40:32.197" />
  <row Id="26504" PostTypeId="2" ParentId="26499" CreationDate="2010-12-14T23:38:06.997" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://notepad-plus-plus.org/&quot; rel=&quot;nofollow&quot;&gt;Notepad++.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1351" LastActivityDate="2010-12-14T23:38:06.997" CommunityOwnedDate="2010-12-15T00:40:32.197" CommentCount="6" />
  <row Id="26505" PostTypeId="2" ParentId="26499" CreationDate="2010-12-14T23:39:24.317" Score="3" ViewCount="" Body="&lt;p&gt;A can of sardines, preferably in mustard sauce.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/WTkee.jpg&quot; alt=&quot;Fishy goodness&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I'm stuck on something, I take it out and stare at it, placing it in front of my keyboard to remind me what I'm working for. Mmmm...&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-12-14T23:39:24.317" CommunityOwnedDate="2010-12-15T00:40:32.197" CommentCount="2" />
  <row Id="26506" PostTypeId="2" ParentId="26499" CreationDate="2010-12-14T23:39:55.627" Score="1" ViewCount="" Body="&lt;p&gt;My programmer's utility belt? Well,&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;If I need to do some performance tuning, &lt;a href=&quot;http://stackoverflow.com/questions/375913/what-can-i-use-to-profile-c-code-in-linux/378024#378024&quot;&gt;I use random-pause.&lt;/a&gt; Yes, it's different, and yes, it works, well.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If I need to write a desktop UI, I'm spoiled. &lt;a href=&quot;http://stackoverflow.com/questions/371898/how-does-differential-execution-work&quot;&gt;I use this.&lt;/a&gt; Yes, it's &lt;em&gt;really&lt;/em&gt; different, and yes, it &lt;em&gt;really&lt;/em&gt; works.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;And I can't live without Windiff, or at least a good command-line diff program.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-12-14T23:39:55.627" CommunityOwnedDate="2010-12-15T00:40:32.197" />
  <row Id="26507" PostTypeId="2" ParentId="19408" CreationDate="2010-12-14T23:49:40.953" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://netbeans.org/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;NetBeans&lt;/strong&gt;&lt;/a&gt; is the best IDE i've ever used.  Oh yea, and it's free.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;Awesome &lt;a href=&quot;http://plugins.netbeans.org/PluginPortal/&quot; rel=&quot;nofollow&quot;&gt;Features&lt;/a&gt;:&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;Very&lt;/em&gt; extensive Code Complete (including jQuery, which is a big deal for me)&lt;/li&gt;&#xA;&lt;li&gt;Live Parsing&lt;/li&gt;&#xA;&lt;li&gt;Automated Refactoring&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://plugins.netbeans.org/PluginPortal/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Plugins&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://netbeans.org/community/index.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Huge Community&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Cross OS Support&lt;/li&gt;&#xA;&lt;li&gt;Did i mention it's free?&lt;/li&gt;&#xA;&lt;li&gt;actively interprets your code as you type it, helping to avoid any silly syntax errors.&lt;/li&gt;&#xA;&lt;li&gt;Supports code completion for &lt;strong&gt;Drupal&lt;/strong&gt; like CMSs.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Netbeans takes web-based languages (such as &lt;a href=&quot;http://netbeans.org/features/javascript/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;JavaScript&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&quot;http://netbeans.org/features/php/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;PHP&lt;/strong&gt;&lt;/a&gt;) and brings many tools commonly available in a desktop &lt;a href=&quot;http://en.wikipedia.org/wiki/Integrated_development_environment&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;IDE&lt;/strong&gt;&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="10057" LastEditorUserId="15843" LastEditorDisplayName="" LastEditDate="2011-02-05T20:54:08.650" LastActivityDate="2011-02-05T20:54:08.650" CommunityOwnedDate="2010-12-15T13:45:54.590" CommentCount="1" />
  <row Id="26508" PostTypeId="2" ParentId="19408" CreationDate="2010-12-14T23:56:09.950" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://code.google.com/chrome/devtools/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Chrome Developer Tools&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In particular the &lt;strong&gt;Audit Tab&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Google, regarding the Audit Tools&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The Audit panel is like having your&#xA;  own web optimization consultant&#xA;  sitting next to you. This panel can&#xA;  analyze a page as it loads and provide&#xA;  suggestions and optimizations for&#xA;  decreasing page load time and increase&#xA;  perceived (and real) responsiveness.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="10057" LastActivityDate="2010-12-14T23:56:09.950" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="26510" PostTypeId="2" ParentId="26499" CreationDate="2010-12-15T00:10:03.417" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://netbeans.org/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;NetBeans&lt;/strong&gt;&lt;/a&gt; is the best IDE i've ever used.  Oh yea, and it's free.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Awesome &lt;a href=&quot;http://plugins.netbeans.org/PluginPortal/&quot; rel=&quot;nofollow&quot;&gt;Features&lt;/a&gt;:&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;Very&lt;/em&gt; extensive Code Complete (including jQuery, which is a big deal for me)&lt;/li&gt;&#xA;&lt;li&gt;Live Parsing&lt;/li&gt;&#xA;&lt;li&gt;Automated Refactoring&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://plugins.netbeans.org/PluginPortal/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Plugins&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://netbeans.org/community/index.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Huge Community&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Cross OS Support&lt;/li&gt;&#xA;&lt;li&gt;Did i mention it's free?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10057" LastActivityDate="2010-12-15T00:10:03.417" CommunityOwnedDate="2010-12-15T00:40:32.197" CommentCount="3" />
  <row Id="26511" PostTypeId="2" ParentId="26499" CreationDate="2010-12-15T00:24:04.963" Score="2" ViewCount="" Body="&lt;p&gt;Emacs!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And git, though I'm not at all an expert at using it.&lt;/p&gt;&#xA;" OwnerUserId="9521" LastActivityDate="2010-12-15T00:24:04.963" CommunityOwnedDate="2010-12-15T00:40:32.197" />
  <row Id="26512" PostTypeId="2" ParentId="26471" CreationDate="2010-12-15T00:30:21.760" Score="0" ViewCount="" Body="&lt;p&gt;Not software specific, but they have a search by industry (check theme): &lt;a href=&quot;http://www.eventseye.com/&quot; rel=&quot;nofollow&quot;&gt;Event's Eye&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a UK only link also, just like the one above, it is not software specific but lets you pick an area of interest: &lt;a href=&quot;http://www.exhibitions.co.uk/&quot; rel=&quot;nofollow&quot;&gt;exhibitions.co.uk&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9043" LastActivityDate="2010-12-15T00:30:21.760" />
  <row Id="26513" PostTypeId="2" ParentId="26499" CreationDate="2010-12-15T00:57:48.617" Score="0" ViewCount="" Body="&lt;p&gt;Git, Vim and Ruby when working on my own projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Visual Studio for my current job. It actually makes working with C# better enough that I bother using it, unlike whenever I've tried using NetBeans or Eclipse with Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Web based tools:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.websequencediagrams.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.websequencediagrams.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So easy and simple to create UML sequence diagrams.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;code&gt;yuml.me&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same but for UML class, activity and use case diagrams.  Don't really like the syntax so I threw together a very rough .NET WPF project that generates the URLs for class diagrams from YAML, &lt;code&gt;github.com/Nemo157/YumlMaker&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(ran out of hyperlinks cause of my rep)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="10095" LastActivityDate="2010-12-15T00:57:48.617" CommunityOwnedDate="2010-12-15T00:57:48.617" />
  <row Id="26514" PostTypeId="2" ParentId="26499" CreationDate="2010-12-15T01:01:41.873" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ubuntu&lt;/strong&gt;, running in a VM on my laptop: has free tools for capturing websites (wget), testing http (curl --head), dissecting PDFs (pdftools), plus acting as my development environment that I easily back-up before trying an experimental upgrade.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ubuntu&lt;/strong&gt;, running on a server: reliable, easy-to-update place for apps and experiments to run.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Linode.com&lt;/strong&gt;: I can start up a new server in a few minutes, and shut it down a day later, getting charged only for the time I used. Awesome DNS capability.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Git&lt;/strong&gt;: Awesome &amp;amp; easy version control. Can add version control to an existing crazy project without disturbing it.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Github&lt;/strong&gt;: It's the best UI for version control that I've found. Private repositories are very cheap, and include per-project wiki and simple bug tracking.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Emacs&lt;/strong&gt;, &lt;strong&gt;vi&lt;/strong&gt;, &amp;amp; &lt;strong&gt;TextMate&lt;/strong&gt;: Each have their strengths.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ruby on Rails&lt;/strong&gt;: for instant &amp;amp; long-term database apps.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Apache&lt;/strong&gt;: Gives me the confidence to say &quot;we can do anything - the technical issues aren't problems&quot; to clients.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;A Mac laptop&lt;/strong&gt;: based on unix, runs VM ware, but also runs MS Office, which I need to work with some clients, and for school.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Mysql&lt;/strong&gt; and &lt;strong&gt;Sqlite&lt;/strong&gt;: Dependable, predictable data storage.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;PivotalTracker&lt;/strong&gt; for managing tasks with other techies.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Gimp&lt;/strong&gt; for graphic work, but increasingly &lt;strong&gt;Pixelmator&lt;/strong&gt; and occasionally &lt;strong&gt;ArtText2&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9425" LastEditorUserId="9425" LastEditorDisplayName="" LastEditDate="2010-12-15T01:08:19.060" LastActivityDate="2010-12-15T01:08:19.060" CommunityOwnedDate="2010-12-15T01:01:41.873" />
  <row Id="26515" PostTypeId="2" ParentId="1371" CreationDate="2010-12-15T01:02:17.990" Score="2" ViewCount="" Body="&lt;p&gt;I mentally translate &quot;Everything is fine.  We have nothing to worry about.&quot; to &quot;We're all screwed&quot; every time I hear it management say it.  You usually hear managers throw it in incidentally in unrelated meetings (&quot;Oh and by the way, everything is going fine.  There's no reason to worry!&quot;), but it's an even bigger red flag to have a meeting specifically called to say that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have yet to hear a manager say something along these lines and have it &lt;em&gt;not&lt;/em&gt; turn out to be a lie.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastEditorUserId="1626" LastEditorDisplayName="" LastEditDate="2010-12-30T22:13:21.667" LastActivityDate="2010-12-30T22:13:21.667" CommunityOwnedDate="2011-01-23T19:41:07.757" />
  <row Id="26516" PostTypeId="2" ParentId="26375" CreationDate="2010-12-15T01:07:49.543" Score="0" ViewCount="" Body="&lt;p&gt;My day job is as a solo C# developer working on a single in-house system for a small company. The system uses Mercurial for version control, with a central repository on the company file server. I have use a build server which is actually a Windows XP VM running on a Hyper-V server. I find that with this setup:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The build environment is separate from the development environment, so I can manage dependencies easier&lt;/li&gt;&#xA;&lt;li&gt;Most of the client PCs are Win XP, so I can develop on any OS (usually Win 7) but I can run all my automated and manual tests on XP, with a similar configuration to the users&lt;/li&gt;&#xA;&lt;li&gt;I develop on a 64 bit OS, but build for 32bit, and some unit tests for complicated calculations like Internal Rate of Return can fail due to architecture differences. Not necessarily an issue but it could have been.&lt;/li&gt;&#xA;&lt;li&gt;I used to have a VM running on the development machine, but that meant I couldn't run builds when working from home - now I can just RDP into the build machine&lt;/li&gt;&#xA;&lt;li&gt;Having a clean repository makes it easier to find issues like forgetting to add files to VCS. Of course just having a seperate build chain on your dev machine could achieve that as well, but it is nice to have it all in a physically seperate environment.&lt;/li&gt;&#xA;&lt;li&gt;A full build with all the tests takes about 4 minutes, and then manual tests can take some time as well. With a seperate build server I can keep working while the build looks after itself.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10022" LastActivityDate="2010-12-15T01:07:49.543" />
  <row Id="26517" PostTypeId="1" CreationDate="2010-12-15T01:08:33.553" Score="9" ViewCount="241" Body="&lt;p&gt;I work in a company where the CEO manages the product team, who mockup features and drop in the lap of developers to then implement said features. There is some iteration of course, developer's opinions are respected. But I wonder how effective this process is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Jason Calacanis just &lt;a href=&quot;http://launch.is/blog/2010/12/14/launch002-what-i-learned-from-zuckerbergs-mistakes.html&quot; rel=&quot;nofollow&quot;&gt;wrote&lt;/a&gt; :&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The Zuckerberg Doctrine: Developers&#xA;  design products with significantly&#xA;  improved speed and functionality&#xA;  compared to product managers and&#xA;  designers, outweighing potential&#xA;  mistakes and drawbacks.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;...&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Then it really hit me:&#xA;  Developer-driven startups always&#xA;  produce product faster.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;This stands to reason: our&#xA;  nontechnical people are having&#xA;  discussions and debates while&#xA;  Zuckerberg is coding his next feature.&#xA;  This is why no one has been able to&#xA;  keep up with Facebook!&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;While MySpacers debated how to iterate&#xA;  on their product, Facebook simply&#xA;  tried stuff.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Does this actually work better in practice ?&lt;/p&gt;&#xA;" OwnerUserId="940" LastActivityDate="2010-12-15T10:20:07.960" Title="Is a developer-driven product a good thing ?" Tags="&lt;development-process&gt;&lt;product-design&gt;" AnswerCount="10" CommentCount="0" FavoriteCount="3" />
  <row Id="26518" PostTypeId="2" ParentId="26517" CreationDate="2010-12-15T01:19:31.473" Score="-1" ViewCount="" Body="&lt;p&gt;(Oh gosh ... where did I just read something like &quot;I've got a great idea!  All I need is a developer.&quot;  It was within a week I think.  Anyway ... )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Great ideas are a dime a dozen.  Implementing the thing is what matters.  If the developer is the one with the great idea, he can just implement it.&lt;/p&gt;&#xA;" OwnerUserId="5493" LastActivityDate="2010-12-15T01:19:31.473" CommentCount="2" />
  <row Id="26519" PostTypeId="2" ParentId="26454" CreationDate="2010-12-15T01:20:06.657" Score="10" ViewCount="" Body="&lt;p&gt;@cyberherbalist, I'm with you! I started to learn programming when I was about 24, on a Timex Sinclair 1000 computer... fantastic piece of technology! It had 2 kB of RAM (I also bought the 32K expansion module) and it executed BASIC code from &lt;strong&gt;audio cassettes&lt;/strong&gt; -- those were the glory days. The TS-1000 was contemporary to the Commodore 64, for those of you who remember it, but much cheaper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm 52 now. My programming experience is almost all in writing web software, mostly with PHP and Coldfusion. I am not a programmer by profession, nor an amateur; I take on programming jobs from time to time. I worked for many years as a university systems analyst, and did a lot of web application development. My first and only formal training in programming: a 1st year university course in procedural WatBASIC, which I took in 1985.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I count myself a competent, even highly competent developer, in the appropriate context, but I also know there are lots of (often younger) people whose understanding of programming language goes far more deeply than mine. I don't have their formal training.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The qualities that make you a good programmer... most people don't realize that they often have nothing to do with the technology itself. To be good developers/coders, we need a logical bent, but we need to be empathic as well, able to imagine others' experience in using our work. We need to understand the importance of methodology. We need to be highly systematic, but also creative and innovative, able to imagine a sort of virtual machinery and describe it with meticulous precision in languages spoken by machines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've started a hobby programming project in PHP -- I'm writing a wiki. I've picked up CodeIgniter 2.0, an MVC app framework, because I wanted to learn a new one for PHP and CodeIgniter seems to be popular. It's certainly easy to use. I have no training in OO, because when I started, OO hardly existed -- I'm working to make the transition. As I get older I ask myself, can I keep learning? is my brain still malleable? and the answer that always comes back is, sure, just keep it exercised.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that much of what makes me a good programmer is &lt;strong&gt;aptitude&lt;/strong&gt;: how I think, the way my mind works. Keeping up skills... that can be wearing after a while -- I think I've forgotten more about computers than I know. However, the skills that make me a good programmer don't change. If you love it and it's what you want to do, if you can find a way to be doing it, that's all you need.&lt;/p&gt;&#xA;" OwnerUserId="10098" LastActivityDate="2010-12-15T01:20:06.657" CommentCount="1" />
  <row Id="26520" PostTypeId="2" ParentId="26517" CreationDate="2010-12-15T01:22:12.397" Score="6" ViewCount="" Body="&lt;p&gt;As a developer, I'd like to think that we do a better job than managers and designers.  But I don't think you can generalize.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the problems with developers doing the design is that they may not be in touch with the needs of the end users, and may not be good at asking the right people the right questions.  A manager, and particularly a good designer may be better at figuring this out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I think the more cogent thing is not the people but how they approach they approach the problem.  The approach that works is to get down and implement stuff, rather than spending endless meetings and cutting down trees to come up with the &quot;ideal&quot; design.  It is really the Agile versus Waterfall revisited.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(It should be clear that Facebook is an example of how NOT to do things too.  For instance, their cavalier approach to privacy issues is starting to get them into legal trouble ...)&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-12-15T01:22:12.397" CommentCount="3" />
  <row Id="26521" PostTypeId="2" ParentId="26517" CreationDate="2010-12-15T01:23:43.720" Score="1" ViewCount="" Body="&lt;p&gt;IMHO, I would say you are partially right. It sounds reasonable. But, this may not apply to all the products/software. So, I would put it this way. A designer should be a person with ample amount of development experience under his belt AND not just that - the person should still be coding and not not just designing.&lt;/p&gt;&#xA;" OwnerUserId="9208" LastActivityDate="2010-12-15T01:23:43.720" CommentCount="1" />
  <row Id="26522" PostTypeId="1" CreationDate="2010-12-15T01:31:19.187" Score="1" ViewCount="311" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/15107/after-having-2-years-experience-in-software-testing-is-it-worth-taking-the-risk&quot;&gt;After having 2 years experience in Software Testing, is it worth taking the risk to move to Development?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Hi,&#xA;I am a sofware test engineer with 14 months of software testing experience.Recently i got an offer in Infosys for development post.Currently working in Religare Technologies under Healthcare domain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1,I wish to know whether is it wise to take the chance or stay back and continue the work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2.Also is it possible to come back to testing field after few years or is it possible to change inside the company itself.ie.whether i can change to testing inside infosys itself.&lt;/p&gt;&#xA;" OwnerUserId="10099" LastActivityDate="2010-12-17T00:17:56.523" ClosedDate="2010-12-18T13:56:28.023" Title="Is it good to change to development with 14 months of testing experience." Tags="&lt;career-advice&gt;&lt;testing&gt;&lt;software-developer&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="26523" PostTypeId="2" ParentId="19408" CreationDate="2010-12-15T01:33:09.383" Score="1" ViewCount="" Body="&lt;p&gt;The right damn font.  The font's that come by default just don't seem that great.  It's really worth looking through all of the available fonts you can find and picking one that really suits you.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good font will allow you to work at a higher resolution and smaller point size with no eyestrain.  with that you can see more code at once, and the more you can see the faster you can work!&lt;/p&gt;&#xA;" OwnerUserId="8656" LastActivityDate="2010-12-15T01:33:09.383" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="26524" PostTypeId="2" ParentId="26354" CreationDate="2010-12-15T01:38:23.967" Score="1" ViewCount="" Body="&lt;p&gt;Good question; as one commenter pointed out, there are trade sites/magazines that focus on a technology, but like you I've not seen a publication that focuses just on web apps and their development.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two publications that have a lot of web-dev-related content and may be of interest:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://hackermonthly.com/&quot; rel=&quot;nofollow&quot;&gt;Hacker Monthly&lt;/a&gt;, which plucks out some of the most popular/best-written content from the programmer news site, &lt;a href=&quot;http://news.ycombinator.com&quot; rel=&quot;nofollow&quot;&gt;Hacker News&lt;/a&gt;, aka HN.  Since HN is run by Paul Graham of YCombinator, which mostly funds web app startups, most of the content on HN and in Hacker Monthly should at least be interesting to you.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.pragprog.com/magazines&quot; rel=&quot;nofollow&quot;&gt;PragPub&lt;/a&gt;, more generally about programming, but plenty of mentions of web development.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Hope that helps!&lt;/p&gt;&#xA;" OwnerUserId="2026" LastActivityDate="2010-12-15T01:38:23.967" />
  <row Id="26525" PostTypeId="2" ParentId="26454" CreationDate="2010-12-15T01:38:47.673" Score="1" ViewCount="" Body="&lt;p&gt;I'm 35 now, but I started at 25.  I'm fairly sure I've done my requisite 10,000 hours by now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's just a matter of being determined.  For me it was easy, because I didn't have anything to fall back on; it was succeed at this, or work at unskilled labor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I studied every evening (easier then, as I didn't have children yet).  And at every job, wherever there was the opportunity to bring in programming, I did.  I used VBA in jobs that just required basic Access database design.  I used .NET in jobs that just required VBA.  I worked a plethora of contract jobs, but this worked in my favor as I got varied experiences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After four years of programming in rather crappy jobs, I managed to get a job that paid well enough for us to make it on one income (just in time for our first kid to arrive), and things have only gotten better since then.  So all in all, ten years on, I'm happy with the outcome of starting to program at age 25.&lt;/p&gt;&#xA;" OwnerUserId="3963" LastActivityDate="2010-12-15T01:38:47.673" />
  <row Id="26526" PostTypeId="2" ParentId="26522" CreationDate="2010-12-15T01:39:51.157" Score="0" ViewCount="" Body="&lt;p&gt;If the employer knows that you were not in to development earlier and you are interested in development, yes, you could switch to development. Because if your employer knows about your experience in development, their level of expectation will be in the same range. And because of this, you have a very good chance to make it big by proving your programming abilities. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As they have already offered you this job, I guess they were pretty much convinced with your programming skills. So, I would say go for it. Choosing this is entirely your choice, because it's going to be a new learning curve. Whether its wise or not is probably not answerable, according to me at least.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And coming to your next question, moving from testing to development isn't that easy. But the reverse should not be that difficult. After you gain substantial experience in development, you could move on to testing and I guess that could even be advantageous.&lt;/p&gt;&#xA;" OwnerUserId="9208" LastActivityDate="2010-12-15T01:39:51.157" CommentCount="2" />
  <row Id="26527" PostTypeId="2" ParentId="19408" CreationDate="2010-12-15T01:41:16.287" Score="0" ViewCount="" Body="&lt;p&gt;Several testers.  Several sets of eyes will spot more errors and tell you what looks nicer.&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-12-15T01:41:16.287" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="26528" PostTypeId="2" ParentId="26375" CreationDate="2010-12-15T01:48:01.897" Score="0" ViewCount="" Body="&lt;p&gt;That depends, all my computers are set up with different tools for different languages, projects, etc.  For example, on one computer I have Django and Apache, on another I have Python, Pygame, and Tkinter, on another I have Eclipse and PHP, on yet another I have a different version of Eclipse along with the Android SDK and a few emulators.  I'm considering setting one up for RoR.  I use whichever I'm near, or sometimes I will remote-desktop into whatever computer has what I need.&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-12-15T01:48:01.897" />
  <row Id="26529" PostTypeId="1" CreationDate="2010-12-15T01:50:17.837" Score="2" ViewCount="769" Body="&lt;p&gt;I'm looking to get into application development, such as facebook or android apps and games. I am doing this for fun and to learn. But once my skills are to par I would like to have some side income from the apps,but I'm not banking on living off that (just so you know where I'm coming from and know what my end goals are). Currently I know and am familiar with php and frameworks such as cakephp and yii. But have been wanting to learn another language to broaden my horizons and be a better developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I have narrowed it down to 2 languages. Python, and Java (I can already hear people cringing at the differnce in languages I have chosen,but I have some reasons).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Python: closer to php that java. Cross platformability. Also great as a general scripting language and has many file system level benefits that php does not.cleaner syntax, readability, blah blah and the list goed on. Python will work great for cross platform apps and can be run on many OS's and is supported by facebook for app development. But no support on android (for full fledged apps).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java: a much stronger typed language, very robust community and corporate backing. Knowing java is also good for personal marketability for enterprises, if you're into that.the main benefit here is that java can write apps natively for android and the apps can be ported for web versions to play on facebook. So while I have seen many developers prefer java over the two, java has this significant advantage, where I can market my apps in both markets and in the future build more potential income. But like I said it is for fun. While money its the goal, it would be nice&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP. I'm putting this here as I know it already, and I'm sure some cases could be made for it. It obviously works great for facebook but like python does not do so well on android.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While its mostly the realm of 'application development' that appeals to me, android apps I do find fairly interesting and something that has a ton of potential to. But then again facebook has a ton more users and the apps can also potentially be more immersive (desktop vs mobile). So this is why I'm kinda stuck on what route to choose. Python for facebook and web apps, with likely faster development to production times, or java which can be developed for any of the platforms to make apps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Side note: I'm not really trying to get into 3d development,mostly 2d. And I'm also wanting to make an app with real time play (websockets, etc). Someone mentioned node,js to me for that but python seems to be more globally versatile for my goals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So,any one that does facebook or android development in either language; what do you suggest? Any input is valuable and I do appreciate. And sorry for being long winded.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; as mentioned in one of the answers, my primary goal is gaming. Although I do have some plans for non gaming apps such as general web based and desktop based ones. But gaming is my main goal with the possibility of income.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; Another consideration could be jython. Writing python code which is converted into java bytecode. This would allow the ability to do android apps using python. I could be wrong though,I'm still looking into it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update 1-26-11:&lt;/strong&gt; I recently acquired a new job which required I learn .NET using C#. Im sure some of you are cringing already but I really like the whole system and how it all works together between desktop and web development. But, as I am still interested in python very much, and after some research I have decided I will learn python as well as the IronPython implementation for .NET. But (again i know) since .Net is mostly a windows thing and not as cross-compatible as I like I will be learning &lt;a href=&quot;http://www.mono-project.com&quot; rel=&quot;nofollow&quot;&gt;Mono&lt;/a&gt; which is a cross platform implementation of .NET where I can use what I learn at work using C# and what I want to learn, Python/IronPython. So while learning and writing C#/.NET @ work will will be learning Python -&gt; Mono -&gt; Iron Python for what I want to do personally. And the benefit of them all being very closely related will help me out a lot I think. What do you guys think? I almost feel like that should be another question, but theres not much of a question. Either way your guys input was very helpful.&lt;/p&gt;&#xA;" OwnerUserId="10004" LastEditorUserId="10004" LastEditorDisplayName="" LastEditDate="2011-01-26T09:55:58.410" LastActivityDate="2011-01-26T09:55:58.410" Title="Application Development: Python or Java (or PHP)" Tags="&lt;java&gt;&lt;php&gt;&lt;python&gt;&lt;android&gt;&lt;facebook&gt;" AnswerCount="4" CommentCount="4" FavoriteCount="2" />
  <row Id="26530" PostTypeId="1" CreationDate="2010-12-15T02:01:20.607" Score="3" ViewCount="206" Body="&lt;p&gt;I've been looking at a number of OSS java projects and a number of them still have not adopted generics.  They're using raw types (e.g. &lt;code&gt;List foo&lt;/code&gt;) instead of generic types (e.g. &lt;code&gt;List&amp;lt;string&amp;gt; foo&lt;/code&gt;).  Other projects have only begun using generics in the last few years even thought they've been around for a long time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm interested to know why people and projects eschew the use of generics when there appears (to me) to be now downside in using them instead of rawtypes.  For those of you who use java, but not generics, what (if anything) would make you switch?&lt;/p&gt;&#xA;" OwnerUserId="10101" LastEditorUserId="2107" LastEditorDisplayName="" LastEditDate="2010-12-15T02:05:27.053" LastActivityDate="2010-12-15T03:18:25.067" Title="Why do some projects not use generics" Tags="&lt;java&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="26531" PostTypeId="2" ParentId="26517" CreationDate="2010-12-15T02:06:56.707" Score="0" ViewCount="" Body="&lt;p&gt;I think this is clearly the best approach to a developer-oriented product (like AWS or Visual Studio), but I'm not sure that it's clearly the better approach in general.  I mean, I usually see things happening the other way around:  developers stand around arguing the best approach while the non-technical people quickly make decisions.  Personally, I'm inclined to say the correct answer is somewhere in the middle.  There should be a product manager with the ability to set broad direction that the developers then implement.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-15T02:06:56.707" />
  <row Id="26532" PostTypeId="2" ParentId="26529" CreationDate="2010-12-15T02:16:36.380" Score="0" ViewCount="" Body="&lt;p&gt;It depends alot on what you want to do.  Do you want to: make a facebook app?  I'd guess PHP.  An Android app?  Definitely Java.  A website?  Ideally, Python with Django, but PHP is OK for that too.&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-12-15T02:16:36.380" CommentCount="6" />
  <row Id="26533" PostTypeId="2" ParentId="26530" CreationDate="2010-12-15T02:19:10.297" Score="5" ViewCount="" Body="&lt;p&gt;It's helpful, when trying to understand stuff like this, to think of each new release of a language as &lt;em&gt;a different language&lt;/em&gt;. Different features, different idioms, different users...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, the new version is a fairly easy language for users of the previous version to pick up... But some programmers - actually quite a few programmers - learn one language &lt;em&gt;and then stop&lt;/em&gt;. Whether that's K&amp;amp;R C, late-80s C++, VB5, Java 1.4, or C# 1.1... You'll find programmers, even entire shops, who learned that &lt;em&gt;one&lt;/em&gt; version of that &lt;em&gt;one&lt;/em&gt; language, bought a reference book, put it on the shelf, and then set about using it. Suggesting that they spend extra time tracking and integrating each new standard into their work is only slightly less ridiculous than suggesting that they type one-handed while juggling oranges with the other, or start using Scala - it just doesn't seem necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that in mind, read: &lt;a href=&quot;http://programmers.stackexchange.com/questions/21243/how-can-i-introduce-new-technology-to-my-team&quot;&gt;How can I introduce new technology to my team?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-12-15T02:19:10.297" CommunityOwnedDate="2010-12-15T02:23:55.890" />
  <row Id="26534" PostTypeId="2" ParentId="26522" CreationDate="2010-12-15T02:20:18.873" Score="2" ViewCount="" Body="&lt;p&gt;Crossing boundaries like this can be valuable to both teams for several reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Moving QA -&gt; Dev&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Bring real QA experience to development helps you and those around you write code/features that are have fewer kickbacks from QA.&lt;/li&gt;&#xA;&lt;li&gt;You can also help make software that is more testable.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Moving Dev -&gt; QA&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Bring real Dev experience to testing can help with implementing testing harnesses and automation.&lt;/li&gt;&#xA;&lt;li&gt;You can help communicate with the developers how to make their software more testable.&lt;/li&gt;&#xA;&lt;li&gt;You can help testers with providing better and more useful feedback to developers.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Having experience on the other side&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When you have experience working on the &lt;em&gt;other side&lt;/em&gt; you can become more useful to both.&lt;/li&gt;&#xA;&lt;li&gt;Synergy happens with insight and collaboration.  Experience helps with this.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If it turns out you don't like being a dev as much as QA person, that is fine.  I still think the experience would only make better at QA.&lt;/p&gt;&#xA;" OwnerUserId="5796" LastActivityDate="2010-12-15T02:20:18.873" />
  <row Id="26535" PostTypeId="2" ParentId="26529" CreationDate="2010-12-15T02:20:24.883" Score="2" ViewCount="" Body="&lt;p&gt;I find Python a lot more practical and comfortable.  I haven't written more than a hundred lines in Java for many years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nevertheless, if you're concerned about marketability, go with Java.  obviously it's more 'corporate minded' but my main concern is about the time to master.  With Python you can be up and running in a week or two, reasonably productive in a couple of months; Java, OTOH, needs years of practice to get really fluent.  So, it's more effective to learn it first and get a good handle on it before checking the 'easy' options on side projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(BTW, Django rocks!)&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-12-15T02:20:24.883" CommentCount="3" />
  <row Id="26536" PostTypeId="2" ParentId="26530" CreationDate="2010-12-15T02:27:54.747" Score="7" ViewCount="" Body="&lt;p&gt;Some projects have to run on older JVMs. For example, some projects might not even be able to use &lt;code&gt;assert&lt;/code&gt; yet (introduced in Java 1.4), because they still need to work on Java 1.3 JVMs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another factor is simply inertia: If code was already written, and performs fine without adding the use of generics, there's little reason to take the risk in changing the code. But today, there &lt;em&gt;are&lt;/em&gt; several automatic tools to help you migrate your Java code to use generics.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-15T02:27:54.747" CommentCount="1" />
  <row Id="26537" PostTypeId="1" AcceptedAnswerId="26539" CreationDate="2010-12-15T02:38:56.740" Score="4" ViewCount="355" Body="&lt;p&gt;Hi, have just graduated and am looking for job in the field of Software Development. Since, I like to go with application developments. Well, being a Software Engineer; Can able to survive &#xA;personal family life. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am single :) Once I get married. Will I able to spend time with my wife and kids? I see, nowadays many Software Specialists are not returning to home at nights. due to the workload. That makes their wife to scary about in someways. How the understandings will go? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you compromise your personal life?&lt;/p&gt;&#xA;" OwnerUserId="8241" LastActivityDate="2010-12-15T06:18:04.303" Title="How: Personal life of a Software Developer" Tags="&lt;software-developer&gt;&lt;personal&gt;" AnswerCount="6" FavoriteCount="3" />
  <row Id="26538" PostTypeId="2" ParentId="26517" CreationDate="2010-12-15T02:39:09.793" Score="13" ViewCount="" Body="&lt;p&gt;Products should be &lt;em&gt;customer-driven.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your customers are software developers, and you use your own product (which you should, in any case), then I suppose you can be your own best customer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But as a developer, your perspective is already compromised by what happens under the hood.  You need the customer to tell you that what you are doing with the user interface or the application workflow is goofy and doesn't make any sense.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a developer, you need to know the right questions to ask of the stakeholders so that you can combine your experience with their wants to produce the best possible product.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-15T02:39:09.793" CommentCount="4" />
  <row Id="26539" PostTypeId="2" ParentId="26537" CreationDate="2010-12-15T02:42:59.010" Score="7" ViewCount="" Body="&lt;p&gt;Find a position that has ordinary working hours.  That's what I did.  Companies where the developers work 40 to 45 hours per week are out there; you just have to find one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But during the first couple of years of your career, you may need to be willing to pay your dues by working the extra hours.  I did that too.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-15T02:42:59.010" CommentCount="4" />
  <row Id="26540" PostTypeId="2" ParentId="26530" CreationDate="2010-12-15T02:43:20.673" Score="1" ViewCount="" Body="&lt;p&gt;This may be bad form, but I'm posting an answer as a response to Macneil's answer; I'm not able to comment everywhere yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think that running on older JVMs would be the issue; my understanding is that generics were added to the language the way they were (with type erase) so that new code using generics could run on old JVMs.  That isn't to say that the same is true of asserts, though, but that isn't what the question is about anyway.&lt;/p&gt;&#xA;" OwnerUserId="9521" LastActivityDate="2010-12-15T02:43:20.673" CommentCount="2" />
  <row Id="26541" PostTypeId="2" ParentId="26454" CreationDate="2010-12-15T02:43:44.600" Score="3" ViewCount="" Body="&lt;p&gt;I started at 36, and it's working out pretty well.  There is this myth that to be a good programmer you have to have been the kid that was hacking his school's computer system in seventh grade.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In reality, things like perseverence and humility are of great value.  If you have these, can think logically and pay attention to detail, you can be a great programmer.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-12-15T02:43:44.600" />
  <row Id="26542" PostTypeId="2" ParentId="26143" CreationDate="2010-12-15T02:59:21.227" Score="1" ViewCount="" Body="&lt;p&gt;If this project already has 100 developers, why don't you survey them and find out what they like?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They should, of course, be willing to back up their opinions with intelligent arguments as to why their preferences are the best ones.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-15T02:59:21.227" CommentCount="1" />
  <row Id="26543" PostTypeId="2" ParentId="26529" CreationDate="2010-12-15T03:04:08.197" Score="0" ViewCount="" Body="&lt;p&gt;I wouldn't be able to recommend one over the other unless you know &lt;em&gt;specifically&lt;/em&gt; what you are getting into. It would be better in my opinion to take a task or project and work through it in one of these languages to get a better feel for which performs well on which tasks.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;A brief overview:&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Java&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;For creating extendable and reusable solutions. When you need fine grain detailed control over &lt;em&gt;what&lt;/em&gt; is going on this is what I would use. It is cross platform compatible and knowledge of it is usable everywhere.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;PHP&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Fast web sites that you can deploy almost anywhere. There are a few excellent PHP frameworks that can help accelerate development time as well. PHP's strength is on the web front. While you can use it to do other things it is best suited for web pages.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Python&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Excellent all purpose scripting language. Having a knowledge of Python is valuable when you want to write little (or not so little) management, deploy, configuration, and adjustment scripts. Also cross platform with &lt;em&gt;lots&lt;/em&gt; of great documentation.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-15T03:04:08.197" CommentCount="8" />
  <row Id="26544" PostTypeId="1" AcceptedAnswerId="26551" CreationDate="2010-12-15T03:12:05.850" Score="0" ViewCount="182" Body="&lt;p&gt;Is there any way to use Python to replace Flash for in browser animation, gaming, webapps, whatever?  Pretty straight-forward IMHO.  Does anyone know how to do this?&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-12-15T05:33:52.773" Title="Is there any way to use Python to replace Flash for in browser animation, gaming, whatever?" Tags="&lt;web-development&gt;&lt;python&gt;&lt;web-applications&gt;" AnswerCount="2" CommentCount="5" />
  <row Id="26545" PostTypeId="2" ParentId="26537" CreationDate="2010-12-15T03:16:22.053" Score="5" ViewCount="" Body="&lt;p&gt;My experience is that software development generally follows the same pattern as most other office professions for a given society.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The stereotypical long hours culture and massive workloads are mainly a thing of startups and the Silicon Valley culture. But you'll find that in more typical corporate roles around the world (ie what 90% of software development jobs are), the standards are &lt;em&gt;generally&lt;/em&gt; no different to any other office profession.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example: here in Australia you can generally expect a 40 hour work week, similar to most other white collar professionals. If a lot of unpaid overtime is happening, that's generally seen as a job smell, and not something you should put up with as a normal part of the profession. I get the feeling that it's the same in North America and Europe. At least &lt;em&gt;generally&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, according to your profile, you're in Singapore. And I know that SG is notorious for a long hours office culture. At any rate, if I was you I would just try to fit into whatever seems to be expected. Work out what the cultural expectations of the profession are in the place where you're working, and try to find your niche. There'll always tend to be certain roles and companies who are better at work/life balance than others. &lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-12-15T03:16:22.053" />
  <row Id="26546" PostTypeId="2" ParentId="26499" CreationDate="2010-12-15T03:18:01.023" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Diff program&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually whatever the source control package is connected up to. Currently Beyond Compare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Search program&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like FileSeek. IDEs usually do a good job of find this symbol in entire solution. However they sometimes fail miserably, which is where this comes in useful, or when I am examining a project outside of an IDE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Hex Editor&lt;/strong&gt;&#xA;Anytime you have to look at the raw values of a binary stream or file it comes in useful. I don't have a favourite.&lt;/p&gt;&#xA;" OwnerUserId="5682" LastActivityDate="2010-12-15T03:18:01.023" CommunityOwnedDate="2010-12-15T03:18:01.023" />
  <row Id="26547" PostTypeId="2" ParentId="26530" CreationDate="2010-12-15T03:18:25.067" Score="1" ViewCount="" Body="&lt;p&gt;Another answer is that some programmers don't really understand what they're doing.  Java is a very accessible language which inevitably leads to people learning it to a &quot;usable&quot; degree quickly and never progressing further.  I know as a 16-year-old I knew enough about Java too make good everyday apps, but if I hadn't kept learning I still wouldn't know what a generic was.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastActivityDate="2010-12-15T03:18:25.067" />
  <row Id="26548" PostTypeId="1" AcceptedAnswerId="26555" CreationDate="2010-12-15T03:19:59.400" Score="15" ViewCount="416" Body="&lt;p&gt;If I release some code and binaries, but I don't include any license at all with it, what are the legal terms that apply by default (in the US, where I am). I know that I automatically have copyright without doing anything, but what restrictions are there on it? If I upload my code to github and announce it as a free download / contribute at will, then are people allowed to modify and close source my work? I haven't said that they cannot, as a GPL would, but I don't feel that it would by default be acceptable to steal my work either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what can and cannot people do with code that is freely available, but has absolutely no licensing terms attached?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, I know that it would be a good idea for me to pick a license and apply it to my code soon, but I'm still curious about this.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Edit&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Thanks! So it looks like the consensus is that it starts out very restricted, and then my actions imply any further rights. If I just put software on my website with no security, it would be an infringement to download it. If I post a link to that download on a forum, then that would implicitly give permission to use it for free, but not distribute it or its derivatives (but you can modify it for your own use). If I put it on GitHub, then it is conveyed as FOSS. Again, this is probably not codified exactly in law but may be enough to be defensible in court. It's still a good idea to post a complete license to be safe.&lt;/p&gt;&#xA;" OwnerUserId="7974" LastEditorUserId="7974" LastEditorDisplayName="" LastEditDate="2010-12-15T16:01:47.510" LastActivityDate="2010-12-16T07:36:23.323" Title="What is the &quot;default&quot; software license?" Tags="&lt;open-source&gt;&lt;license&gt;&lt;legal&gt;" AnswerCount="9" CommentCount="2" FavoriteCount="2" />
  <row Id="26549" PostTypeId="2" ParentId="26537" CreationDate="2010-12-15T03:21:51.473" Score="5" ViewCount="" Body="&lt;p&gt;Decide now that work/life balance is a priority, and do whatever it takes to find it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I couldn't get it from the companies I worked for, I left.  I did consulting, then got involved with some start-ups.   Here in the US, big companies (except a few Silicon Valley players who have gotten wise) are the ones pushing for long hours and no time to have a life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the up-sides of helping to found a start-up is that you get to influence the corporate culture from the start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The more talented you are, and the more you are willing to stick up for your priorities, the more successful you will be at finding those jobs that let you still have a life.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-15T03:21:51.473" />
  <row Id="26550" PostTypeId="2" ParentId="26537" CreationDate="2010-12-15T03:23:03.007" Score="5" ViewCount="" Body="&lt;p&gt;Robert is right, there are plenty of software-writing jobs with normal hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When interviewing at new jobs, it would be good to &lt;strong&gt;find out what their overtime policies are&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they have real overtime policies that involve giving you respectable amounts of money for working late, they're probably not as likely to ask for 60-hour work weeks (though I would try to talk to other employees there to get an idea of what actually goes on).&lt;/p&gt;&#xA;" OwnerUserId="381" LastActivityDate="2010-12-15T03:23:03.007" />
  <row Id="26551" PostTypeId="2" ParentId="26544" CreationDate="2010-12-15T03:25:13.037" Score="4" ViewCount="" Body="&lt;p&gt;Pythagras' comment is basically accurate.  Python is a server-side language, like PHP or C#.  Flash is a client-side language like JavaScript.  You'd need to create a Python plug-in or translator to use it client-side. Fortunately, someone else already has: check out &lt;a href=&quot;http://www.skulpt.org/&quot; rel=&quot;nofollow&quot;&gt;Skulpt&lt;/a&gt;.  &lt;/p&gt;&#xA;" OwnerUserId="9771" LastEditorUserId="9771" LastEditorDisplayName="" LastEditDate="2010-12-15T05:33:52.773" LastActivityDate="2010-12-15T05:33:52.773" CommentCount="3" />
  <row Id="26552" PostTypeId="2" ParentId="26454" CreationDate="2010-12-15T03:31:21.017" Score="5" ViewCount="" Body="&lt;p&gt;I started at 27. I'm now closing on 40 and very few people would consider me to be a slouch. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found that for most folks, they either have the right mentality or don't for becoming good programmers. Education is needed at some point or you'll never graduate beyond script kiddie, but I found having practical experience helped a lot when it came time to get the &quot;Right&quot; piece of paper in my early 30s. As I've said before here, knowing how to write code meant I got a lot more out of my classes than if I was struggling with the concept of a for loop or what the heck the difference between ++i and i++ was.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I have a &quot;hard science&quot; degree, worked in construction in my early 20s, and generally approach programming as a craft. Thus, it's a different discipline for me, but leveraging many of the same neurons. Your desire to be excellent at what you do, how much natural brain power, problem solving, and ability to think abstractly you have will drive how well you become more than how late you start in life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But... do not undersestimate the need to get some solid theoretical background under your belt. Folks who forget or don't know the basic rule of thumbs you get such as looking at things using Big O analysis often run into trouble. Not having an idea of formal language definition will leave you stumped when looking at many technical references.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a parting comment: sometime around when I was 23-24 I looked at many of the folks I knew who were retired. The ones who had had successful careers often seemed to not have gotten started in those careers until their mid-late 20s. Saying your stuck in a career path when you're 26 would be pathetic. If you get out of university at 21, retire at 65, that leaves a roughly 44 year working career. Starting at 26 if you otherwise have the right sort of talents isn't really that much of a late start, esp when it seems most programmers shift gears into management or &quot;architecture&quot; or other path somewhere in the 10-15 year range.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-12-15T03:31:21.017" CommentCount="1" />
  <row Id="26554" PostTypeId="2" ParentId="1371" CreationDate="2010-12-15T03:43:26.757" Score="0" ViewCount="" Body="&lt;p&gt;A project, and future projects are doomed when the company decides to write an in-house &quot;framework&quot; because all the available frameworks don't fit their need perfectly.&lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2010-12-15T03:43:26.757" CommunityOwnedDate="2011-01-23T19:41:07.757" />
  <row Id="26555" PostTypeId="2" ParentId="26548" CreationDate="2010-12-15T03:44:40.813" Score="11" ViewCount="" Body="&lt;p&gt;Without a license, companies and individuals may be reluctant to use your code, because you don't grant them specific rights to do so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even when you put the code into the public domain, you are granting rights to use.  So you might as well make a statement of acceptable use that is acceptable to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without such a statement or license, there is nothing preventing people from using your code in whatever way they see fit.  There is, of course, nothing preventing bad people from violating your license, but most good people and companies will respect your terms if you tell them what those terms are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short: you should have some form of license, even if that license grants unrestricted use.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-15T03:44:40.813" CommentCount="6" />
  <row Id="26556" PostTypeId="2" ParentId="26548" CreationDate="2010-12-15T03:49:10.543" Score="0" ViewCount="" Body="&lt;p&gt;IANAL, TINLA, HAA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on the size of the posted code, most people just assume it's public domain, though that's not actually the case. (It's actually not possible to dedicate a work to the Public Domain in the US.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For small code snippets - like just a single small function or an algorithmic example - any use would be a fair use since it's too small to be considered a &quot;Work.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For larger snippets - small libraries, for example - no one can really make an assumption. Most programmers will probably assume it's free for use, but organizations will be hesitant to give it a look.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My suggestion is to just put a little preamble that summarizes the terms of use. If I want others to use it, I might simply say, &quot;This code is free for any use,&quot; and leave it at that.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-12-15T03:49:10.543" />
  <row Id="26557" PostTypeId="2" ParentId="26548" CreationDate="2010-12-15T03:51:49.233" Score="1" ViewCount="" Body="&lt;p&gt;There is no default &quot;licence&quot;, but as you said copyright does apply.  By making your software available without a statement about how it can be used, I would think a court would likely hold that you knowingly gave up your copyrights.  It would be a different story if someone took it without your consent.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastActivityDate="2010-12-15T03:51:49.233" CommentCount="2" />
  <row Id="26558" PostTypeId="1" AcceptedAnswerId="26574" CreationDate="2010-12-15T03:52:14.957" Score="5" ViewCount="2756" Body="&lt;p&gt;Recently there was an article about lazy programmers and their distaste for statically typed languages. Here's the &lt;a href=&quot;http://gnuu.org/2010/12/13/too-lazy-to-type/&quot; rel=&quot;nofollow&quot;&gt;article&lt;/a&gt; in case you're interested and the subsequent &lt;a href=&quot;http://www.reddit.com/r/programming/comments/eleif/too_lazy_to_type_are_we_really_writing_dynamic/&quot; rel=&quot;nofollow&quot;&gt;discussion on reddit&lt;/a&gt; on the merits of dynamic and static languages. You don't have to read all of the comments since it's pretty much the same argument people have been having ever since there were two different programming languages with some kind of semantic difference. I made some claims along with everyone else and I wanted to see if I could back up my claims. So here's a challenge for all the people that made claims on reddit and to anyone else that wants to participate and show off their favorite language: &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;The Challenge&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Pick your favorite language and implement a code tree that can be fed into an evaluator to yield a value. A code tree is like a binary tree minus the binary part. Each node can have an arbitrary number of children and each non-terminal node represents an operator and its children represent the arguments to be fed into their parent node's operator. Some genetic algorithms use such representations to evolve programs for solving various problems so it's not a useless academic exercise. You don't have to do anything fancy just write down the simplest possible thing that will work. To start it off here's my &lt;a href=&quot;https://gist.github.com/741576&quot; rel=&quot;nofollow&quot;&gt;entry&lt;/a&gt; in Ruby along with a simple example at the end that should be doable in any language with parametric polymorphism and another example that requires more than parametric polymorphism.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;What's the Point?&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The point is to see how people overcome polymorphism barriers in static languages. A type system by definition is all about restricting polymorphism and limiting it as much as possible. Writing general code is still possible but the type system will more than likely fight you every step of the way. Anyway, here's the ruby code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;# We want a uniform way of reducing a code tree&#xA;# so the easiest way to do that is to extend&#xA;# Object with a call method and whenever any&#xA;# object does not define it's own call method we&#xA;# assume the object is implicitly claiming it wants&#xA;# to return itself. Since Object is almost at the top&#xA;# of the hierarchy almost anything we are interested&#xA;# in will work as expected.&#xA;class Object&#xA;  def call&#xA;    self&#xA;  end&#xA;end&#xA;&#xA;# The children of an instance of a CodeTree consist either&#xA;# of more CodeTree instances or just some objects which we&#xA;# will pass to the root when it's time to reduce the tree and&#xA;# get a value out of it&#xA;class CodeTree&#xA;  def initialize(rootProc,*children)&#xA;    @root = rootProc&#xA;    @children = children || []&#xA;  end&#xA;&#xA;  def call&#xA;    @root.call(*(@children.map {|child| child.call}))&#xA;  end&#xA;end&#xA;&#xA;# trivial example:&#xA;# plus = proc {|a,b| a+b}&#xA;# codeTree = CodeTree.new(plus,1,CodeTree.new(plus,1,1))&#xA;# codeTree.call ==&gt; 1+(1+1) ==&gt; 3&#xA;#&#xA;# a bit more complicated example (the one most static languages won't be able to do):&#xA;# someProc = proc {|a,b,c,*rest| a+b.to_i+c}&#xA;# betterTree = CodeTree.new(someProc,CodeTree.new(plus,1,1),&quot;11&quot;,1,&quot;junk&quot;)&#xA;# betterTree.call ==&gt; (1+1)+&quot;11&quot;.to_i+1 ==&gt; 2+11+1 ==&gt; 14&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;h2&gt;Remarks&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Many people have pointed out how I have chosen a problem that is inherently dynamic and is in essence a meta circular interpreter for a subset of ruby. I think that is a valid point and if you want to shut me up then go and try to write an interpreter for some subset of your favorite static language without sidestepping the type system and let me know how it goes and I'll shut up if you can do it in 9 lines or less of well formatted readable code. Currently the &lt;a href=&quot;http://programmers.stackexchange.com/questions/26558/static-vs-dynamic-languages/26574#26574&quot;&gt;haskell&lt;/a&gt;, &lt;a href=&quot;http://programmers.stackexchange.com/questions/26558/static-vs-dynamic-languages/26571#26571&quot;&gt;lisp&lt;/a&gt; and &lt;a href=&quot;http://programmers.stackexchange.com/questions/26558/static-vs-dynamic-languages/26627#26627&quot;&gt;perl&lt;/a&gt; submissions are the only ones that solve the problem in the same generality as the ruby version but only one of those submissions can be called statically typed.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T14:31:04.293" LastActivityDate="2010-12-26T14:31:04.293" ClosedDate="2010-12-15T10:03:28.223" Title="Static vs Dynamic languages" Tags="&lt;programming-languages&gt;&lt;challenge&gt;&lt;dynamic-typing&gt;&lt;static-typing&gt;" AnswerCount="7" CommentCount="28" FavoriteCount="7" />
  <row Id="26559" PostTypeId="2" ParentId="26548" CreationDate="2010-12-15T03:54:08.387" Score="13" ViewCount="" Body="&lt;p&gt;The purpose of a copyright license is to give the licensee rights he would not otherwise have. Without a license, the only rights remaining are the ones guaranteed by copyright law, which are basically none.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without a license, you aren't even allowed to download the code, since that implies making a copy, which is forbidden by copyright law. You cannot distribute it, since that implies making a copy. You cannot even &lt;em&gt;run&lt;/em&gt; it, since that implies copying it into RAM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, you wrote:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If I [&amp;hellip;] announce it as a free download / contribute at will [&amp;hellip;]&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That &lt;em&gt;is&lt;/em&gt; a license. Or at least, it may or may not be construed as one.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;So what can and cannot people do with code that is freely available, but has absolutely no licensing terms attached?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Nothing. Well, almost. Nothing interesting, certainly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are certain fair use rights, that would allow someone to quote parts of the code in a scientific research paper, for example, or to make a parody (but not a satire) of your code.&lt;/p&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-12-15T03:54:08.387" CommentCount="1" />
  <row Id="26560" PostTypeId="1" CreationDate="2010-12-15T04:08:54.887" Score="2" ViewCount="381" Body="&lt;p&gt;I have a project where I will be collaborating to build a fairly simple site with some database access. I will be doing the back-end work, and my colleague will be doing the web design. The problem is that my colleague has only worked with PHP developers and I have a lot more experience in Perl. The options would be to either learn PHP while doing the project or for my colleague to learn how to design around Perl. (I guess a third option would be to decline the project because this obstacle is just too insurmountable).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the answer is to use Perl, the next question is which templating module would be easiest for my PHP-aware web designer colleague to adapt to. HTML::Mason? HTML::Template? Something else?&lt;/p&gt;&#xA;" OwnerUserId="4526" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2011-05-02T00:54:32.363" LastActivityDate="2011-05-02T00:54:32.363" Title="Which back-end web programming language to use" Tags="&lt;web-development&gt;&lt;php&gt;&lt;collaboration&gt;&lt;perl&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="26561" PostTypeId="2" ParentId="26560" CreationDate="2010-12-15T04:13:42.707" Score="16" ViewCount="" Body="&lt;p&gt;If you design your application properly, with adequate &lt;strong&gt;&lt;a href=&quot;http://www.alistapart.com/articles/separationdilemma/&quot; rel=&quot;nofollow&quot;&gt;separation of presentation and content,&lt;/a&gt;&lt;/strong&gt; you can bring in your web designer, who can provide you with the needed CSS and graphics, and it shouldn't matter what language you develop the backend in.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-15T04:13:42.707" CommentCount="1" />
  <row Id="26562" PostTypeId="1" CreationDate="2010-12-15T04:16:19.927" Score="10" ViewCount="421" Body="&lt;p&gt;I tried &lt;a href=&quot;http://trac.edgewall.org/demo-0.12/&quot; rel=&quot;nofollow&quot;&gt;trac&lt;/a&gt; but just seems to convoluted for my taste. Currently, I use a whiteboard. Does anyone have any suggestions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not need anything fancy just to be able to keep track of feature requests and bugs---my to do's really.&lt;/p&gt;&#xA;" OwnerUserId="5379" LastEditorUserId="19" LastEditorDisplayName="" LastEditDate="2010-12-17T16:00:59.713" LastActivityDate="2010-12-19T21:59:30.537" Title="Simple issue tracker for a one man developer of a web app" Tags="&lt;tools&gt;&lt;bug-tracking&gt;&lt;one-man-army&gt;" AnswerCount="11" CommentCount="3" FavoriteCount="5" />
  <row Id="26563" PostTypeId="2" ParentId="26562" CreationDate="2010-12-15T04:24:28.470" Score="12" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://fogbugz.com&quot; rel=&quot;nofollow&quot; title=&quot;FogBugz&quot;&gt;FogBugz&lt;/a&gt; is free for up to 2 users. You can keep it very simple and just track bugs and features. Or you can go in depth and do scheduling, estimating and tracking. I use it personally and have clients that also use it (pay for it) and really are happy with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also link your issues with &lt;a href=&quot;http://www.fogcreek.com/kiln/&quot; rel=&quot;nofollow&quot; title=&quot;Kiln&quot;&gt;Kiln&lt;/a&gt; if you want a place to store your source code.&lt;/p&gt;&#xA;" OwnerUserId="1197" LastActivityDate="2010-12-15T04:24:28.470" CommentCount="5" />
  <row Id="26564" PostTypeId="2" ParentId="26537" CreationDate="2010-12-15T04:26:25.007" Score="0" ViewCount="" Body="&lt;p&gt;It depends completely on how you handle the situation and your skill. However, to survive in the any kind of stream, you should invest your time for atleast 2 to 3 years in that domain and understand clearly. Then you will go into a better position in that stream and you can do well with balanced life. I mean, after you understand clearly about what you do, then only you can prioritize the work properly and can live balanced life with work and family. There are lot of companies which expects only 40 hours of work. Even there, if you fail to deliver, you should put more time and complete the work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line is you should have proper knowledge about the work, proper prioritizing the work and complete the work on time.&lt;/p&gt;&#xA;" OwnerUserId="9318" LastActivityDate="2010-12-15T04:26:25.007" />
  <row Id="26566" PostTypeId="2" ParentId="26454" CreationDate="2010-12-15T04:37:17.010" Score="5" ViewCount="" Body="&lt;p&gt;Your mental capacity does decline with age.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tried to teach my 70 year old Grandma how to program in Basic on an 8-bit computer. She never got past CLS, PRINT and using the VOICE-FA00 speech synthesizer (she had the computer recite her poems). She passed away before we got to conditional and loop statements.&lt;/p&gt;&#xA;" OwnerUserId="9693" LastActivityDate="2010-12-15T04:37:17.010" CommentCount="2" />
  <row Id="26567" PostTypeId="1" AcceptedAnswerId="26580" CreationDate="2010-12-15T04:39:51.063" Score="0" ViewCount="99" Body="&lt;p&gt;Hello all&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I worked as QA intern during my summer, i have a question when i used to run tests for product build. I used to find 3 QA environments associated with one Dev environment?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dev has 1 Environment which consisted of (Server3,Server4)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;QA has 3 Environment which consisted of (Server5 Server6), (Server25,Server26) and (Server7,Server8)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why are so many servers associated with QA environment ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDITED : DESCRIPTION ADDED&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Server3 and Server4 have production builds. Correspondingly there where six servers as stated above for performance testing environment. Every time performance test is run, Performance test lead used to run the test on 2 servers. Or he could run the test on 6 servers &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="17335" LastEditorUserId="17335" LastEditorDisplayName="" LastEditDate="2010-12-15T04:57:25.773" LastActivityDate="2010-12-15T05:56:41.883" ClosedDate="2010-12-15T11:31:54.507" Title="Why DEV environment is associated with more than one QA environments ?" Tags="&lt;testing&gt;" AnswerCount="1" CommentCount="7" />
  <row Id="26568" PostTypeId="2" ParentId="26544" CreationDate="2010-12-15T04:47:15.807" Score="1" ViewCount="" Body="&lt;p&gt;You can use &lt;a href=&quot;http://ironpython.net&quot; rel=&quot;nofollow&quot;&gt;IronPython&lt;/a&gt; (an implementation of Python on .NET) to create &lt;a href=&quot;http://silverlight.net&quot; rel=&quot;nofollow&quot;&gt;Silverlight&lt;/a&gt; applications.  Silverlight is a plug-in like Flash, and you can do essentially the same things with it (the installed base is smaller, although no-one really knows exactly what the numbers are).&lt;/p&gt;&#xA;" OwnerUserId="6673" LastActivityDate="2010-12-15T04:47:15.807" />
  <row Id="26569" PostTypeId="2" ParentId="26143" CreationDate="2010-12-15T04:48:19.197" Score="1" ViewCount="" Body="&lt;p&gt;I would recommend to stick with Redgate products since it has nice UI with good performance. They have .NET Bundle for performance &amp;amp; memory profiling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.red-gate.com/products/dotnet-development/dotnet-developer-bundle/&quot; rel=&quot;nofollow&quot;&gt;http://www.red-gate.com/products/dotnet-development/dotnet-developer-bundle/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9318" LastActivityDate="2010-12-15T04:48:19.197" CommentCount="2" />
  <row Id="26570" PostTypeId="2" ParentId="26562" CreationDate="2010-12-15T04:56:32.623" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.mantisbt.org/&quot; rel=&quot;nofollow&quot;&gt;Mantis&lt;/a&gt; might fit your needs&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-15T04:56:32.623" CommentCount="1" />
  <row Id="26571" PostTypeId="2" ParentId="26558" CreationDate="2010-12-15T05:06:04.863" Score="8" ViewCount="" Body="&lt;pre&gt;(define make-code-tree&#xA;  (lambda (f . children)&#xA;    (apply f children)))&#xA;&#xA;(make-code-tree + 1 (make-code-tree + 1 1))&#xA;; =&gt; (+ 1 (+ 1 1)) =&gt; 3&lt;/pre&gt;&#xA;" OwnerUserId="10110" LastActivityDate="2010-12-15T05:06:04.863" CommentCount="2" />
  <row Id="26572" PostTypeId="2" ParentId="16070" CreationDate="2010-12-15T05:08:19.167" Score="2" ViewCount="" Body="&lt;p&gt;Abstraction is when you ignore details deemed irrelevant in favor of those deemed relevant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Abstraction encompasses encapsulation, information hiding, and generalization. It does not encompass analogies, metaphors, or heuristics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any mathematical formalism for the concept of abstraction would itself &lt;em&gt;be&lt;/em&gt; an abstraction, as it would necessarily require the underlying thing to be abstracted into a set of mathematical properties! The category-theory notion of a &lt;a href=&quot;http://en.wikipedia.org/wiki/Morphism&quot; rel=&quot;nofollow&quot;&gt;morphism&lt;/a&gt; is probably closest to what you're looking for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Abstraction is not something you declare, it is something that you &lt;strong&gt;do&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-15T05:08:19.167" CommentCount="1" />
  <row Id="26573" PostTypeId="1" CreationDate="2010-12-15T05:14:24.697" Score="2" ViewCount="145" Body="&lt;p&gt;I am looking for a test management system that can be integrated quickly. Does anyone have any suggestions?&lt;/p&gt;&#xA;" OwnerUserId="10111" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-12-15T05:21:46.033" LastActivityDate="2011-02-09T17:54:10.387" Title="Please suggest a test management system" Tags="&lt;management&gt;&lt;testing&gt;&lt;test&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="2" />
  <row Id="26574" PostTypeId="2" ParentId="26558" CreationDate="2010-12-15T05:17:58.700" Score="3" ViewCount="" Body="&lt;p&gt;This is a pretty silly challenge-- could you elaborate on what the point is?  Anyway, here's the Haskell:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;module CodeTree where&#xA;&#xA;import Data.Dynamic&#xA;&#xA;data CodeTree = Leaf Dynamic | Branch ([Dynamic] -&amp;gt; Dynamic) [CodeTree]&#xA;&#xA;eval :: CodeTree -&amp;gt; Dynamic&#xA;eval (Leaf o)      = o&#xA;eval (Branch f os) = f $ map eval os&#xA;&#xA;plus :: [Dynamic] -&amp;gt; Dynamic&#xA;plus os = toDyn $ foldr (+) 0 $ map toInteger os&#xA;  where&#xA;    toInteger o = fromDyn o (error &quot;type error&quot; :: Integer)&#xA;&#xA;leaf :: Integer -&amp;gt; CodeTree&#xA;leaf = Leaf . toDyn&#xA;&#xA;codeTree = Branch plus [ leaf 1, Branch plus [ leaf 1, leaf 1 ] ]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="10114" LastActivityDate="2010-12-15T05:17:58.700" CommentCount="9" />
  <row Id="26575" PostTypeId="2" ParentId="19408" CreationDate="2010-12-15T05:18:29.370" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blogs.techrepublic.com.com/programming-and-development/?p=974&quot; rel=&quot;nofollow&quot;&gt;Some tool without a link&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10111" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-16T19:46:35.400" LastActivityDate="2010-12-16T19:46:35.400" CommunityOwnedDate="2010-12-15T13:45:54.590" CommentCount="1" />
  <row Id="26576" PostTypeId="2" ParentId="26558" CreationDate="2010-12-15T05:23:55.993" Score="5" ViewCount="" Body="&lt;p&gt;It's c++0x version.&#xA;I haven't given it much thinking and I'm sure it can be improved further,&#xA;but&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;g++  -std=gnu++0x -O3 -S main.cpp&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;generates:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;main:&#xA;        movl    $3, %eax&#xA;        ret&#xA;&#xA;#include &amp;lt;tuple&amp;gt;&#xA;#include &amp;lt;functional&amp;gt;&#xA;&#xA;template &amp;lt;typename ROOT, unsigned int N&amp;gt;&#xA;struct call_children {&#xA;    template&amp;lt;typename TUPLE, typename... ARGS&amp;gt;&#xA;    static typename ROOT::result_type call(const TUPLE &amp;amp; t, ARGS... args) {&#xA;        return call_children&amp;lt;ROOT, N - 1&amp;gt;::call(t, std::get&amp;lt;N - 1&amp;gt;(t)(), args...);&#xA;    }&#xA;};&#xA;&#xA;template &amp;lt;typename ROOT&amp;gt;&#xA;struct call_children&amp;lt;ROOT, 0&amp;gt; {&#xA;    template&amp;lt;typename TUPLE, typename... ARGS&amp;gt;&#xA;    static typename ROOT::result_type call(const TUPLE &amp;amp;, ARGS... args) {&#xA;        return ROOT()(args...);&#xA;    }&#xA;};&#xA;&#xA;template &amp;lt;typename ROOT, typename ...CHILDREN&amp;gt;&#xA;class CodeTree {&#xA;public:&#xA;    CodeTree(CHILDREN... children_)&#xA;        : children(children_...) { }&#xA;    typename ROOT::result_type operator()() const {&#xA;        return call_children&amp;lt;ROOT, sizeof...(CHILDREN)&amp;gt;::call(children);&#xA;    }&#xA;&#xA;private:&#xA;    std::tuple&amp;lt;CHILDREN...&amp;gt; children;&#xA;};&#xA;&#xA;template &amp;lt;typename ROOT, typename... CHILDREN&amp;gt;&#xA;CodeTree&amp;lt;ROOT, CHILDREN...&amp;gt; new_(const CHILDREN&amp;amp;... children)&#xA;{ return CodeTree&amp;lt;ROOT, CHILDREN...&amp;gt;(children...); }&#xA;&#xA;template &amp;lt;typename T&amp;gt;&#xA;struct ValueNode: public std::unary_function&amp;lt;T, T&amp;gt; {&#xA;    ValueNode(T v_) : v(v_) { }&#xA;    T operator()() const { return v; }&#xA;    T v;&#xA;};&#xA;&#xA;template &amp;lt;typename T&amp;gt;&#xA;ValueNode&amp;lt;T&amp;gt; value(T v) { return ValueNode&amp;lt;T&amp;gt;(v); }&#xA;&#xA;template &amp;lt;typename CODETREE&amp;gt;&#xA;auto evaluate(const CODETREE &amp;amp; ct) -&amp;gt; decltype(ct()) {&#xA;    return ct();&#xA;}&#xA;&#xA;int main() {&#xA;    auto codetree = new_&amp;lt;std::plus&amp;lt;int&amp;gt; &amp;gt;(value(1), new_&amp;lt;std::plus&amp;lt;int&amp;gt; &amp;gt;(value(1), value(1)));&#xA;    return evaluate(codetree);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="10115" LastActivityDate="2010-12-15T05:23:55.993" CommentCount="3" />
  <row Id="26577" PostTypeId="2" ParentId="26454" CreationDate="2010-12-15T05:32:43.997" Score="3" ViewCount="" Body="&lt;p&gt;I think it's a great age to begin to program. 26 the &lt;em&gt;only&lt;/em&gt; number in all of creation that is between a square and a cube. It's an omen, dude. Go for it. &lt;/p&gt;&#xA;" OwnerUserId="8699" LastActivityDate="2010-12-15T05:32:43.997" />
  <row Id="26578" PostTypeId="2" ParentId="26454" CreationDate="2010-12-15T05:51:25.620" Score="0" ViewCount="" Body="&lt;p&gt;This is programming and not physics. In fact, you will have upper hand going forward. You will learn the new techniques, and will develop your brain in that direction. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-15T05:51:25.620" />
  <row Id="26579" PostTypeId="2" ParentId="26454" CreationDate="2010-12-15T05:53:12.060" Score="1" ViewCount="" Body="&lt;p&gt;Well, if you want it bad enough, then yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But do remember your brain is at its peak when you are about 17, and the structures that are built with programming have to go in long before that.  Research I read long ago indicated that programming when young added something like 20 to IQ scores in the medium term, rather like learning music does, similar areas of the brain awakened.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Providing you developed your brain the right way when young, mathematically, logically and, most importantly, in terms of problem solving/engineering skills; then it is still possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those skills can come in via a lot of routes when young, but they do need to be there, as well as a natural aptitude.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good engineers are born to it, teachers too.  Something in the initial blueprint that provides the required skill set.  You can teach knowledge, you can teach techniques, you can't teach intellect; particularly the analytical intellect of the engineer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what I am saying is, if you have the underlying skill set and aptitude, then sure, it'll be harder than if you were young, but sure.  If not, any amount of cramming will not help.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-15T05:53:12.060" CommentCount="6" />
  <row Id="26580" PostTypeId="2" ParentId="26567" CreationDate="2010-12-15T05:56:41.883" Score="1" ViewCount="" Body="&lt;p&gt;The 3 server environments are probably representative of different target operating environments: Windows XP, Windows 2003 Server, Windows 7, for example. When performing QA, it is essential to demonstrate that the software will work reliably in all possible target environments. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other reason might be that they need the three environments in order to have enough equipment to perform all of their QA testing in a timely manner.  &lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-15T05:56:41.883" />
  <row Id="26583" PostTypeId="2" ParentId="26537" CreationDate="2010-12-15T06:18:04.303" Score="1" ViewCount="" Body="&lt;p&gt;My assumption is that as time goes on it will become easier to find employers who have a no-overtime, don't overwork yourself policy, as it is starting to become a trend.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a tip that may work. Become a Ruby on Rails developer and find a company that develops in Rails. Most of these companies are likely influenced by 37Signals, who's founders write books and often speak on the importance of not working long hours.&lt;/p&gt;&#xA;" OwnerUserId="10121" LastActivityDate="2010-12-15T06:18:04.303" />
  <row Id="26584" PostTypeId="2" ParentId="26454" CreationDate="2010-12-15T06:26:23.357" Score="1" ViewCount="" Body="&lt;p&gt;I've started a CS &amp;amp; AI course, the course I've been dreaming about for years, at the age of 26 and I have not been doing much programming before that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way I looked at programming back then was that programming is just a mathematics in disguise.It's a strong statement, but you will see that you can't go far without linear algebra or statistics. Knowing them will not make you a good programmer, but not knowing them will definitely make you miserable one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice to you would be learn about:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Algorithms and Data Structures, &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Compiling Techniques, &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Computer Architecture,&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;These three will lay down fundamentals on which you build everything else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good Luck. &lt;/p&gt;&#xA;" OwnerUserId="9967" LastActivityDate="2010-12-15T06:26:23.357" CommentCount="2" />
  <row Id="26585" PostTypeId="2" ParentId="25836" CreationDate="2010-12-15T06:27:01.563" Score="1" ViewCount="" Body="&lt;p&gt;I would actually present the person with a bit of code from another programming language that was object oriented and preferably not on the list of languages they know. The code should represent a simple task done in that language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point of this would not be to determine their knowledge of C++ but find out how well they understand programming. When you understand the basic concepts behind programming, then you can solve problems.&lt;/p&gt;&#xA;" OwnerUserId="10120" LastActivityDate="2010-12-15T06:27:01.563" CommunityOwnedDate="2011-03-04T20:42:37.403" />
  <row Id="26586" PostTypeId="1" AcceptedAnswerId="26589" CreationDate="2010-12-15T06:28:32.357" Score="9" ViewCount="605" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of all I'm 26 and I'm asking this question because I want to see how do you manage your time. Also I'm interested how do the programmers with a family(wife, several kids) manage their time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm asking this due the fact that I'm working aprox 7,5 hours at work (9 to 5), spent 1,5 hours on the way to/from workplace, and when I'm home I must cook/clean/etc and LEARN! And I have the impression that I don't have enough time to learn. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Did you have a period similar in your life? To want to learn another language/improve your development/other skills? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I saw here and on SO that there are a lot of peoples with +10k points, this in my mind means that they stay on blogs/forums more than 15 hours a day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;best regards,&lt;br&gt; &#xA;Radu&lt;/p&gt;&#xA;" OwnerUserId="8755" LastEditorUserId="1240" LastEditorDisplayName="" LastEditDate="2010-12-15T06:47:29.460" LastActivityDate="2010-12-15T12:25:19.420" ClosedDate="2010-12-21T09:07:19.390" Title="how do you spend your day? a day from a programmer's life" Tags="&lt;time-management&gt;" AnswerCount="8" CommentCount="5" FavoriteCount="5" />
  <row Id="26588" PostTypeId="2" ParentId="26586" CreationDate="2010-12-15T06:40:59.230" Score="1" ViewCount="" Body="&lt;p&gt;Can't agree more! ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My day looks pretty similar to yours, except I spend 2h commuting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My solution to lack of time is to sleep less ;-) and take a notebook with me on the tube. That way 'found' additional 2h for my work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS. I also don't get how people can achieve 100k points and have a life ;-)&lt;/p&gt;&#xA;" OwnerUserId="5564" LastActivityDate="2010-12-15T06:40:59.230" />
  <row Id="26589" PostTypeId="2" ParentId="26586" CreationDate="2010-12-15T06:43:17.717" Score="5" ViewCount="" Body="&lt;p&gt;I try to be home by 6:00 every night for dinner with my family. I usually help the kids with homework, play some games, and put them to bed. From 9-10:30, I do work, or read (programming, testing, or business books + catch up on blogs and SO sites). I get up at 6:30 most days, and do a bit of writing before the kids get up at 7:00, I help get them ready for school then either drop them off or head in to work and arrive around 8:30-8:45.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I often listen to audiobooks on the commute. My commute is only 20 minutes, so I don't get far, but you may get a lot of inspiration in your longer commute.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like that you see the value in learning. I think constant learning, and a passion for learning are keys to success. &lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-12-15T06:43:17.717" CommentCount="5" />
  <row Id="26591" PostTypeId="2" ParentId="26573" CreationDate="2010-12-15T07:02:13.470" Score="1" ViewCount="" Body="&lt;p&gt;Look at this comparison chart and find most appropriate yourself&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.xqual.com/qa/tools.html&quot; rel=&quot;nofollow&quot;&gt;http://www.xqual.com/qa/tools.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All the best!&lt;/p&gt;&#xA;" OwnerUserId="493" LastActivityDate="2010-12-15T07:02:13.470" CommentCount="1" />
  <row Id="26592" PostTypeId="2" ParentId="26375" CreationDate="2010-12-15T07:20:36.147" Score="2" ViewCount="" Body="&lt;p&gt;I'm primarily a C/C++ guy who does telecommute projects on Linux, Mac OS X, and Windows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All my development machines at home are on a gigabit Ethernet LAN which also includes a Linux server that doubles for source control (Perforce and git) and issue tracking/wiki (Redmine).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why have a separate server?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The more copies of the source there are, the less likely it is I'll be in pain if there's a hardware failure.&lt;/li&gt;&#xA;&lt;li&gt;My Internet firewall forwards key ports to the server, so I can travel and get to all my important stuff without compromising my LAN. I've pulled a complete set of sources onto a laptop from a Starbucks.&lt;/li&gt;&#xA;&lt;li&gt;I can keep all my development machines' sources synchronized.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It really doesn't take much horsepower to set up a Linux server to do this. I'm using a first-gen Intel iMac with a dinky hard drive and anemic CPU. It would be inadequate for most things and would probably gather dust in our crawl space, but it runs great with Ubuntu Maverick for this purpose.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-15T07:20:36.147" />
  <row Id="26593" PostTypeId="2" ParentId="26562" CreationDate="2010-12-15T07:22:33.927" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.pivotaltracker.com/&quot; rel=&quot;nofollow&quot;&gt;PivotalTracker&lt;/a&gt; is free and pretty usable. It has feature, bug and chore tracking and basic estimation support via points and velocity. You can also have multiple projects, and pick some projects to be publicly visible if you're running an OSS project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is also under constant development and support. Seriously if I could pay for it I would.&lt;/p&gt;&#xA;" OwnerUserId="10022" LastEditorUserId="10022" LastEditorDisplayName="" LastEditDate="2010-12-15T22:09:44.473" LastActivityDate="2010-12-15T22:09:44.473" />
  <row Id="26594" PostTypeId="2" ParentId="26586" CreationDate="2010-12-15T07:23:31.143" Score="1" ViewCount="" Body="&lt;p&gt;It's all about the strong will. If you are really crazy enough for something, you will find time for doing it. I too do not find time for updating my college project, but almost every night half an hour gets time to watch .... &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-15T07:23:31.143" />
  <row Id="26595" PostTypeId="2" ParentId="26558" CreationDate="2010-12-15T07:38:21.273" Score="4" ViewCount="" Body="&lt;p&gt;Your challenge isn't very interesting. Evaluating a language by implementing &quot;the simplest that could possibly work&quot; is about as useful as judging nail guns by building a birdhouse. That being said, here's a C# solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C# solution, the normal way:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class CodeTree&amp;lt;T&amp;gt;&#xA;{&#xA;    public static implicit operator CodeTree&amp;lt;T&amp;gt;(T literal)&#xA;    {&#xA;        return new CodeTree&amp;lt;int&amp;gt;(arg =&amp;gt; literal, new CodeTree&amp;lt;T&amp;gt;[0]);&#xA;    }&#xA;&#xA;    public CodeTree(Func&amp;lt;IEnumerable&amp;lt;T&amp;gt;, T&amp;gt; op, params CodeTree&amp;lt;T&amp;gt;[] children)&#xA;    {&#xA;        mOp = op;&#xA;        mChildren = children;&#xA;    }&#xA;&#xA;    public T Evaluate()&#xA;    {&#xA;        return mOp(mChildren.Select(child =&amp;gt; child.Evaluate()));&#xA;    }&#xA;&#xA;    private Func&amp;lt;IEnumerable&amp;lt;T&amp;gt;, T&amp;gt; mOp;&#xA;    private IEnumerable&amp;lt;CodeTree&amp;gt; mChildren;&#xA;}&#xA;&#xA;class Test&#xA;{&#xA;    static CodeTree&amp;lt;int&amp;gt; Add(params CodeTree&amp;lt;int&amp;gt;[] children)&#xA;    {&#xA;        return new CodeTree&amp;lt;int&amp;gt;(arg =&amp;gt; arg.Sum(), children);&#xA;    }&#xA;&#xA;    static void Main()&#xA;    {&#xA;        var tree = Add(1, Add(1, 1));&#xA;        Console.WriteLine(tree.Evaluate());&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Note that unlike the Ruby version, this will statically ensure that all of the nodes in your tree get values that they know how to evaluate. No chance of failure at runtime.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C#, the cheeky way:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Expression&amp;lt;Func&amp;lt;int&amp;gt;&amp;gt; codeTree = () =&amp;gt; 1 + (1 + 1);&#xA;Console.WriteLine(codeTree.Compile()());&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2326" LastActivityDate="2010-12-15T07:38:21.273" CommentCount="9" />
  <row Id="26596" PostTypeId="1" AcceptedAnswerId="26598" CreationDate="2010-12-15T07:42:25.507" Score="20" ViewCount="1118" Body="&lt;p&gt;I asked a question on lines of code per hour and got torn a new one.  So my matured follow-up question is this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If not lines of code, then what is a good metric by which to measure (by the hour/day/unit-of-time) the effectiveness of remote programmers?&lt;/p&gt;&#xA;" OwnerUserId="10118" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-15T09:04:58.620" LastActivityDate="2010-12-17T15:33:37.053" Title="Metric by which to hold developers accountable" Tags="&lt;productivity&gt;&lt;project-management&gt;&lt;efficiency&gt;&lt;metrics&gt;" AnswerCount="11" CommentCount="9" FavoriteCount="4" />
  <row Id="26597" PostTypeId="2" ParentId="26243" CreationDate="2010-12-15T07:51:29.637" Score="0" ViewCount="" Body="&lt;p&gt;My speed is 80 WPM, but more than half is backspace. And I can press Ctrl+Alt+Del without looking at keyboard. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-15T07:51:29.637" CommunityOwnedDate="2011-03-25T14:40:57.210" />
  <row Id="26598" PostTypeId="2" ParentId="26596" CreationDate="2010-12-15T07:55:52.943" Score="14" ViewCount="" Body="&lt;p&gt;You need an experienced developer or teamleader (who is not associated with those remote programmers) to estimate how long some task may take, and the effectiveness is measured by comparing their required time against the estimates. To be sure that the estimates are good, you could randomly pick a few tasks and have them executed by an in-house team you have under control.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="6617" LastEditorDisplayName="" LastEditDate="2010-12-15T08:47:23.043" LastActivityDate="2010-12-15T08:47:23.043" CommentCount="1" />
  <row Id="26599" PostTypeId="1" CreationDate="2010-12-15T07:55:52.913" Score="2" ViewCount="218" Body="&lt;p&gt;When I write programs I using pass by value or pass by reference always seem to be logical methods. When learning about different programming languages I came across pass by name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pass by name is a parameter passing method that waits to evaluate the parameter value until it is used. See &lt;a href=&quot;http://stackoverflow.com/questions/838079/what-is-pass-by-name-and-how-does-it-work-exactly&quot;&gt;Stack Overflow pass by name question&lt;/a&gt; for more information on the method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I would like to know is: what are some good examples and/or reasons to use pass by name and should it be re-introduced into some more modern languages.&lt;/p&gt;&#xA;" OwnerUserId="10120" LastActivityDate="2010-12-15T09:55:30.093" Title="What are some good examples of using pass by name?" Tags="&lt;programming-languages&gt;" AnswerCount="2" />
  <row Id="26600" PostTypeId="2" ParentId="26562" CreationDate="2010-12-15T08:04:38.193" Score="5" ViewCount="" Body="&lt;p&gt;You might find Excel/similar does the job for you...&lt;/p&gt;&#xA;" OwnerUserId="7082" LastActivityDate="2010-12-15T08:04:38.193" CommentCount="2" />
  <row Id="26601" PostTypeId="2" ParentId="26558" CreationDate="2010-12-15T08:05:20.157" Score="2" ViewCount="" Body="&lt;p&gt;+1 Very interesting. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After some sleep I created this  much more simpler revisted version:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; // Operator and Operand interfaces define:&#xA; // eval() and value() methods&#xA; interface Operator { Operand eval(Operator o, Operand ... args ); }&#xA; interface Operand  { int value(); }&#xA;&#xA; // Test it:&#xA; class Main { &#xA;&#xA;    // The program is an operator ( it evaluates ) &#xA;    static Operator program = new Operator() { &#xA;      public Operand eval( Operator o , Operand ... args ) { &#xA;      return o.eval( o, args );&#xA;      }&#xA;    };&#xA;&#xA;    // Plus operator, adds two operands&#xA;    static Operator plus = new Operator() { &#xA;      public Operand eval( Operator o, final Operand ... args ) { &#xA;        return new Operand(){&#xA;          public int value() {return args[0].value() + args[1].value();}&#xA;        };&#xA;      }&#xA;    };&#xA;&#xA;    // times, multiples two operands &#xA;    static Operator times = new Operator() { &#xA;      public Operand eval( Operator o, final Operand ... args ) { &#xA;        return new Operand(){&#xA;          public int value() { return args[0].value() * args[1].value(); }&#xA;        };&#xA;      }&#xA;    };&#xA;&#xA;    // Operand with value 1&#xA;    static Operand one = new Operand() { &#xA;      public int value() { return 1; }&#xA;    };&#xA;&#xA;  public static void main( String [] args ) { &#xA;    // Lets generate something simple:&#xA;    Operand two  = program.eval( plus, one, one );&#xA;    Operand four = program.eval( times, two, two );&#xA;    Operand five = program.eval( plus , four, one );&#xA;    // Lets combine them.&#xA;    System.out.println( &quot;(+ 5 (* 4 2 ) == 13 ? &quot; +(&#xA;      program.eval( plus, five, program.eval(times , four, two ) ).value() == 13&#xA;    ));&#xA;  }&#xA; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strike&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After a while, I manage to create a version very similar to your dynamic Ruby version: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Simple extends CodeTree { &#xA;    Simple( int v ) { this.value = v; }&#xA;    CodeTree call() { return this; };&#xA;}&#xA;public class CodeTree { &#xA;    int value;&#xA;    CodeTree root;&#xA;    CodeTree[] children;&#xA;&#xA;    CodeTree(){};&#xA;    CodeTree( CodeTree rootProc, CodeTree ... args ) { &#xA;        root = rootProc; children = args; &#xA;    }&#xA;&#xA;    // Default call method, which evaluates the tree&#xA;    CodeTree call() { &#xA;        root.children = map( children ); return root.call();&#xA;    }&#xA;&#xA;    // auxiliary method to map the children &#xA;    private static CodeTree [] map ( CodeTree ... args ) { &#xA;        CodeTree[] result = new CodeTree[args.length];&#xA;        int i = 0;&#xA;        for( CodeTree c : args ) { &#xA;            result[i++] = c.call();&#xA;        }&#xA;        return result;&#xA;    }&#xA;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;//Java doesn't have closures ( yet ) that's why this anonymous inner classes version looks this verbose:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Demo { &#xA;&#xA;// Some &quot;constants&quot; &#xA;&#xA;static CodeTree one   = valueOf(1);&#xA;static CodeTree three = valueOf(3);&#xA;&#xA;static CodeTree plus = &#xA;    new CodeTree() { &#xA;        CodeTree call() { &#xA;            return valueOf( children[0].call().value + children[1].call().value );&#xA;        }&#xA;    };&#xA;&#xA;static CodeTree times = &#xA;    new CodeTree() { &#xA;        CodeTree call() { &#xA;            return valueOf( children[0].call().value * children[1].call().value );&#xA;        }&#xA;    };&#xA;&#xA;static CodeTree subtract =&#xA;    new CodeTree() { &#xA;        CodeTree call() { &#xA;            return valueOf( children[0].call().value - children[1].call().value );&#xA;        }&#xA;    };&#xA;&#xA;public static void main( String [] args ) { &#xA;    System.out.println(&quot; 1 + (  1 + 1 ) == 3? &quot;+( &#xA;        code(plus, one, code( plus, one, one ) )&#xA;            .call().value == three.value&#xA;    ));&#xA;    System.out.println(&quot; 3 + (  3 * 3 ) == 12? &quot;+( &#xA;        code(plus, three, code( times, three, three ) )&#xA;            .call().value == valueOf(12).value&#xA;    ));&#xA;&#xA;    System.out.println(&quot; 12 - (  3 * 3  + ( 1 + 1 ) ) == 1? &quot;+( &#xA;        code(subtract, valueOf(12), &#xA;            code( plus , &#xA;                code( times, three, three ), &#xA;                code( plus, one, one ) ))&#xA;        .call().value == one.value&#xA;    ));&#xA;    System.exit(0);&#xA;}&#xA;&#xA;&#xA;// a bit of sugar&#xA;&#xA;&#xA; // Creates a code tree with the expression&#xA;static CodeTree code( CodeTree root, CodeTree...args ) { &#xA;    return new CodeTree( root, args );&#xA;}&#xA;// Creates a simple code tree with a value&#xA;static CodeTree valueOf( int value ) { &#xA;    return new Simple( value );&#xA;}&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Output:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$ java Demo&#xA;1 + (  1 + 1 ) == 3? true&#xA;3 + (  3 * 3 ) == 12? true&#xA;12 - (  3 * 3  + ( 1 + 1 ) ) == 1? true&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I'm pretty sure my implementation could be enhanced, but works pretty much the same as your dynamic version, which I think leaves us in the initial state of position dynamic vs. static. &#xA;&lt;/strike&gt;&lt;/p&gt;&#xA;" OwnerUserId="82" LastEditorUserId="82" LastEditorDisplayName="" LastEditDate="2010-12-16T00:29:36.493" LastActivityDate="2010-12-16T00:29:36.493" CommentCount="3" />
  <row Id="26602" PostTypeId="2" ParentId="26596" CreationDate="2010-12-15T08:18:20.420" Score="27" ViewCount="" Body="&lt;p&gt;The only metric I use is the &lt;strong&gt;amount of working software&lt;/strong&gt; he produces for a given &lt;strong&gt;amount of money&lt;/strong&gt; I invested.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless its schedule, if she/he work remotely or not, number of pauses he/she takes, methodologies she/he uses or number of working hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By &lt;strong&gt;working software&lt;/strong&gt; I mean:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;List of features defined by user/customer that meets the required quality level&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;By &lt;strong&gt;amount of money&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How much the user/customer paid for the defined features + maintenance costs&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;So it has a direct on how it is built and quality of work produced but not bound to any source code line metrics.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-15T09:58:46.753" LastActivityDate="2010-12-15T09:58:46.753" CommentCount="21" />
  <row Id="26603" PostTypeId="2" ParentId="26562" CreationDate="2010-12-15T08:27:12.177" Score="0" ViewCount="" Body="&lt;p&gt;I've tested almost every product on the market, bought a couple of them, but today the only I rely on for small projects is &lt;a href=&quot;http://trac.edgewall.org/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Trac&lt;/strong&gt;&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has the advantage to cover 95% of my needs for my tight budget of $0.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use whiteboards too, and if you are talking about index cards, &lt;strong&gt;Trac&lt;/strong&gt; has a very simple task to csv export that will helps you with that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For enterprise application I work on, I use &lt;a href=&quot;http://fr.wikipedia.org/wiki/Visual_Studio_Team_System&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Team System&lt;/strong&gt;&lt;/a&gt; (I'm in the Microsoft ecosystem). &lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-12-15T08:27:12.177" />
  <row Id="26605" PostTypeId="1" CreationDate="2010-12-15T08:39:34.357" Score="1" ViewCount="73" Body="&lt;p&gt;Say, if one would want to create a application that tracks of TV shows and episodes (because one's fed up with existing apps and wants to whip up his own), how would he be to obtain list of episodes? Should be start re-typing stuff from IMDB or Wikipedia? Is it legal to rip data off IMDB? Or is there a free list of shows and episodes somewhere? There is no need to have information about the show, just a simple list of episodes with maybe the airing date.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And what about updating this database with new episodes? Is there some giant RSS that syndicates infos about new episodes for everything?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;p.s. sorry for meta-tag, but I have no idea how to tag this&lt;/p&gt;&#xA;" OwnerUserId="8306" LastEditorUserId="8306" LastEditorDisplayName="" LastEditDate="2010-12-15T08:54:35.673" LastActivityDate="2010-12-15T08:54:35.673" ClosedDate="2010-12-15T09:27:00.777" Title="Getting a list of TV show episodes" Tags="&lt;advice&gt;" CommentCount="5" FavoriteCount="0" />
  <row Id="26606" PostTypeId="2" ParentId="26586" CreationDate="2010-12-15T08:41:26.290" Score="1" ViewCount="" Body="&lt;p&gt;If it's important you can make time for it. 1.5 hours of commute seems quite long... Do you drive? If you are on a train/bus/etc. - you could use the time to read/work/learn. If you have to drive - maybe you could arrange to work from home 1 day a week? 1.5 hours a week can be enough, for example, to learn a language in a couple of years. Also there are audiobooks and audio lectures, such as &lt;a href=&quot;http://www.teach12.com/greatcourses.aspx?ai=16281&quot; rel=&quot;nofollow&quot;&gt;The Teaching Company&lt;/a&gt; - you could learn a lot of stuff this way. 1.5 hours in a day it's like having 2 university lectures every day - it's almost like being a full time student :) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also there's weekend - you can find a couple of hours there too. &lt;/p&gt;&#xA;" OwnerUserId="10080" LastActivityDate="2010-12-15T08:41:26.290" CommentCount="2" />
  <row Id="26607" PostTypeId="2" ParentId="26548" CreationDate="2010-12-15T08:42:54.370" Score="5" ViewCount="" Body="&lt;p&gt;Explicitly mentioning the copyright in your work &lt;em&gt;was&lt;/em&gt; an obligation in the past. &lt;strong&gt;It is no more required&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the country you are in is a member of &lt;a href=&quot;http://www.wipo.int/treaties/en/ip/berne/trtdocs_wo001.html&quot; rel=&quot;nofollow&quot;&gt;berne convention&lt;/a&gt;, then it's &lt;strong&gt;automatic&lt;/strong&gt;. &lt;strong&gt;You have the full rights on your work&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only &lt;em&gt;exception&lt;/em&gt; to this is when your work is used in the context of &quot;&lt;strong&gt;fair use&lt;/strong&gt;&quot;. For example, I can copy/paste portion of text from internet or a book to illustrate what I explain. That's what I'm going to do right now, I'm fearless...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Copyright does not prohibit all copying or replication. In the United States, the fair use doctrine, codified by the Copyright Act of 1976 as 17 U.S.C. § 107, permits some copying and distribution without permission of the copyright holder or payment to same. The statute does not clearly define fair use, but instead gives four non-exclusive factors to consider in a fair use analysis.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is from WikiPedia.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, not explicitly mentioning the copyright may make some companies not very well informed on their rights &amp;amp; obligations to use your code in good faith.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You want to avoid all the paper work to force them to stop using your code, so as a general rules, even if it's not an obligation:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Add copyright statement in each source code file. Attach the full license to the project.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-12-15T08:42:54.370" />
  <row Id="26608" PostTypeId="2" ParentId="26454" CreationDate="2010-12-15T08:44:59.423" Score="1" ViewCount="" Body="&lt;p&gt;All you need is passion,and dedication then all is well,&lt;/p&gt;&#xA;" OwnerUserId="7452" LastActivityDate="2010-12-15T08:44:59.423" />
  <row Id="26609" PostTypeId="1" AcceptedAnswerId="26633" CreationDate="2010-12-15T08:49:29.247" Score="6" ViewCount="316" Body="&lt;p&gt;How do you go about teaching Delegates to new programmers? Any examples outside the programming concept that you would use to teach them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, with inheritance, you teach it as follows. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cat is an Animal. Dog is an Animal too. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, we can put the common features that all Animals have in the Animal group (read as class) and then put the specific features that Cats have in the Cat group (read as class). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a similar way (or a different way), how would you teach Delegates?&lt;/p&gt;&#xA;" OwnerUserId="5070" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T14:30:38.613" LastActivityDate="2010-12-26T14:30:38.613" Title="How to teach Delegates" Tags="&lt;teaching&gt;&lt;language-agnostic&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="5" />
  <row Id="26610" PostTypeId="2" ParentId="26596" CreationDate="2010-12-15T08:50:53.383" Score="2" ViewCount="" Body="&lt;p&gt;Some ideas:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;features implemented&lt;/li&gt;&#xA;&lt;li&gt;bugs fixed (also account for bugs later re-opened by QA)&lt;/li&gt;&#xA;&lt;li&gt;user complaints resolved (note that it's not the same as 2 - one serious bug may be pain in the neck while 100 typos may not be that important)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Also may want to track:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Code coverage by tests&lt;/li&gt;&#xA;&lt;li&gt;Code coverage by internal documentation&lt;/li&gt;&#xA;&lt;li&gt;Feature coverage by external (user) documentation&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="10080" LastActivityDate="2010-12-15T08:50:53.383" CommentCount="4" />
  <row Id="26611" PostTypeId="2" ParentId="26558" CreationDate="2010-12-15T08:56:11.223" Score="-3" ViewCount="" Body="&lt;p&gt;This functionality is built into Haskell. It's called lazyness.&lt;/p&gt;&#xA;" OwnerUserId="10129" LastActivityDate="2010-12-15T08:56:11.223" />
  <row Id="26612" PostTypeId="2" ParentId="26599" CreationDate="2010-12-15T09:06:26.123" Score="1" ViewCount="" Body="&lt;p&gt;Some of the advantages are described in &lt;a href=&quot;http://www.cs.sfu.ca/~cameron/Teaching/383/PassByName.html&quot; rel=&quot;nofollow&quot;&gt;a description of pass by name&lt;/a&gt; linked to in your linked question's answer.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;The advantages of pass-by-name are (paraphrased from the article):&lt;/h3&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It has a simple semantic model as textual substitution.&lt;/li&gt;&#xA;&lt;li&gt;Modification and re-evaluation of argument expressions has useful applications, such as Jensen's device. &lt;em&gt;(Ed: Described in the &lt;a href=&quot;http://www.cs.sfu.ca/~cameron/Teaching/383/PassByName.html&quot; rel=&quot;nofollow&quot;&gt;second section&lt;/a&gt;)&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Argument expressions are not necessarily evaluated. Here, y is not evaluated if x is false:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;boolean procedure and (x, y);&#xA;  boolean x, y;&#xA;begin&#xA;    if x then return y else return false&#xA;end;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;h3&gt;Would I use it?&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I see no reason to, even considering the advantages put forward.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd rather not even dynamically evaluate code but if I had to, anything I could do with pass-by-name I'd rather do with &lt;code&gt;eval()&lt;/code&gt; (which offers greater control and security).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pointers and short-circuit evaluation prevent expression evaluation as much as I need it, and I'm quite happy with the semantic models I use regularly.&lt;/p&gt;&#xA;" OwnerUserId="5570" LastEditorUserId="5570" LastEditorDisplayName="" LastEditDate="2010-12-15T09:55:30.093" LastActivityDate="2010-12-15T09:55:30.093" />
  <row Id="26613" PostTypeId="2" ParentId="26349" CreationDate="2010-12-15T09:09:29.227" Score="0" ViewCount="" Body="&lt;p&gt;Assuming your company doenst hire an absolute dud as your replacement then one of the key things is the domain of the applications that are being handed over. It might be a big assumption to make but you can't teach someone how to code good in a couple of weeks - they either have that down or don't, so the key thing is the domain imo.&lt;/p&gt;&#xA;" OwnerUserId="10132" LastActivityDate="2010-12-15T09:09:29.227" />
  <row Id="26614" PostTypeId="2" ParentId="26349" CreationDate="2010-12-15T09:13:17.167" Score="1" ViewCount="" Body="&lt;p&gt;Stop coding immediately. &lt;strong&gt;Let the new guy do your day-to-day job and be there to answer his questions.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no better way to learn than doing.&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-12-15T09:20:26.630" LastActivityDate="2010-12-15T09:20:26.630" />
  <row Id="26615" PostTypeId="2" ParentId="26586" CreationDate="2010-12-15T09:13:56.570" Score="1" ViewCount="" Body="&lt;p&gt;I usually can get a lot done from 9:30 to midnight, then getup at 8AM the next day. Don't make a habit of staying up late, but once in a while is OK. After that you have the weekends. Watch out though. Do not spend all of your 20's in front of the computer, you will regret it if you do.&lt;/p&gt;&#xA;" OwnerUserId="3122" LastActivityDate="2010-12-15T09:13:56.570" />
  <row Id="26616" PostTypeId="2" ParentId="26596" CreationDate="2010-12-15T09:22:34.357" Score="48" ViewCount="" Body="&lt;p&gt;In 16 years I've never actually found a workable metric of the sort you're looking for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially to be useful anything would need to be measurable, representative and ungameable (that is the system can't be played by clever developers).  There are simply too many variables within software development to make it measurable as piece work in this way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The closest you get is progress against estimates - that is how many tasks are they completing within the agreed estimates.  The trick here is (a) getting good and fair estimates and (b) understanding where estimates have been exceeded for good reasons for which the developer can not / should not be blamed (that is something was genuinely more complex than anticipated).  Ultimately if you push developers too hard you're likely to find estimates gradually creeping up to a level where they're always met not because of increased productivity but because of padded timescales.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go the other way too much in terms of the estimates (reducing them to create pressure to deliver) and you create phoney deadlines which studies have shown don't increase productivity and are likely to have an impact on team morale (see Peoplesoft for more information).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But essentially I wonder if you're looking at a slightly false problem.  Why are remote programmers different to other programmers when it comes to measuring productivity?  How do you measure the productivity of non-remote programmers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's about not trusting them to work remotely then that's basically a wider trust issue.  If you don't trust them to work from home then you either need to establish that trust, not let them work from home, or find some way of satisfying yourself that they are indeed working when they're meant to be.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-16T21:59:40.070" LastActivityDate="2010-12-16T21:59:40.070" CommentCount="4" />
  <row Id="26618" PostTypeId="2" ParentId="26586" CreationDate="2010-12-15T09:27:20.557" Score="1" ViewCount="" Body="&lt;p&gt;Fortunately, I don't have a long commute, only 20 minutes. I get up at 7am, make breakfast for my kids, shower etc. Leave home at 8am, arrive at the office at 8:15 or 8:30.&#xA;Normally, I work till 4pm, go home, do some housework, cook lunch, help my son with his homework etc. At ~10pm I moonlight; this usually takes 30mins to 2hours.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-15T09:27:20.557" />
  <row Id="26619" PostTypeId="2" ParentId="26596" CreationDate="2010-12-15T09:28:44.960" Score="2" ViewCount="" Body="&lt;p&gt;Measure in the same way as you are measured by the customer.  In terms of functional code, but on a smaller scale.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make short goals - a week or two - and see if the programmers fulfill the goals, and do so in a satisfactory way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would strongly suggest peer review of code, as this allows you to catch bad code up front.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-15T09:28:44.960" />
  <row Id="26620" PostTypeId="2" ParentId="26548" CreationDate="2010-12-15T09:33:20.053" Score="3" ViewCount="" Body="&lt;p&gt;The copyright laws vary wildly from country to country.  THis means that what is legal in one country is not in another, and using unlicensed code is a ticking bomb.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This in turn means that the code should &lt;em&gt;not&lt;/em&gt; be adopted by a team producing production code. (My personal opinion) as you never know when you reach such a situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want people to use your own code without you having any concerns about for what purpose, then consider the Apache 2.0 license.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-15T09:33:20.053" />
  <row Id="26621" PostTypeId="2" ParentId="26517" CreationDate="2010-12-15T09:43:38.240" Score="0" ViewCount="" Body="&lt;p&gt;Developer-driven software might be in most cases better than manager-driven software. Manager see the most value in features (mostly buzzwordish features) that look good on an ad or can be used in a speech. Developers see different values: performance, lesser bugs, lean design, maintainability. That leads nearly almost to better software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the best would be user-driven software. Users really know what they need, what helps them to do their real work. That would be the ideal.&lt;/p&gt;&#xA;" OwnerUserId="7654" LastActivityDate="2010-12-15T09:43:38.240" />
  <row Id="26622" PostTypeId="2" ParentId="26586" CreationDate="2010-12-15T09:47:16.403" Score="4" ViewCount="" Body="&lt;p&gt;Rough breakdown:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;1 hour washing and dressing my daughter in the morning, bathing her in the evening, possibly actually getting to play with her&lt;/li&gt;&#xA;&lt;li&gt;2 hours driving to and from work (I used to do the same on the train and walking and by preference would do so again in a heart beat - time to read and exercise beats sitting in traffic)&lt;/li&gt;&#xA;&lt;li&gt;8.5 hours at work (some days I'll get to go to the gym or the shops for routine mundane stuff during that time, other days I'll work through)&lt;/li&gt;&#xA;&lt;li&gt;3.5 hours domestic stuff (washing, dressing, getting and eating dinner, washing up, tidying the house, assorted other chores)&lt;/li&gt;&#xA;&lt;li&gt;1.5 hours unwinding (tv, gaming, reading usually)&lt;/li&gt;&#xA;&lt;li&gt;7.5 hours sleeping (less than I need)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Basically I'd say that once you have a family you lose any significant time of your own.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've listed 1.5 hours unwinding in which you could do some learning / private projects but you're not going to be using all of it (you can't go straight from that to sleeping, you're going to need some time to wind down) and you're likely to end up stressed off your head - all work and no play and all that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some weekends I'll get a few hours to do what I want but I'd say that's maybe one weekend in three and generally my choice will be to relax, sleep, spend it with friends or whatever - rarely something that's a lot like work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I don't think that this is a huge issue.  I'm very happy with my life and while I'd love to be learning more and spending more time coding, I wouldn't swap it for my family.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Places like SO and here make out that everyone is spending hours and hours a day learning new stuff and while I'm sure some are, I'm not convinced that's the norm and I think most people have a good balance of things in their lives.  Don't feel under pressure that by not spending huge amounts of your own time on these things you're unusual, you're not and it's very possible to have a good career in IT without doing so. &lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-15T10:34:43.707" LastActivityDate="2010-12-15T10:34:43.707" CommentCount="3" />
  <row Id="26623" PostTypeId="2" ParentId="26599" CreationDate="2010-12-15T09:47:24.363" Score="1" ViewCount="" Body="&lt;p&gt;Scala is an example of modern language that supports call-by-name evaluation (as well as call-by-value, which is the default). As you said, the parameter is lazily evaluated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This feature can be used for creating your own control structure. The code given by Axidos in his answer is a simple, but good example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are other examples in the book &lt;a href=&quot;http://www.artima.com/shop/programming_in_scala&quot; rel=&quot;nofollow&quot;&gt;Programming in Scala&lt;/a&gt;. I'll try to post these examples here tonight.&lt;/p&gt;&#xA;" OwnerUserId="3527" LastActivityDate="2010-12-15T09:47:24.363" />
  <row Id="26626" PostTypeId="2" ParentId="26517" CreationDate="2010-12-15T09:51:03.250" Score="0" ViewCount="" Body="&lt;p&gt;What if you produce products faster that noone wants to use?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Focusing on a single attribute (functionality, time to market, price, qualitity, etc) can make sense for a certain point in time. E.g. Apple kind of rushed the iPhone and the iPad out of the door. Quality suffered a bit but it was quite important to be first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it hurts you, if you focus on one aspect only in the long run.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-12-15T09:51:03.250" />
  <row Id="26627" PostTypeId="2" ParentId="26558" CreationDate="2010-12-15T09:58:19.793" Score="2" ViewCount="" Body="&lt;p&gt;Here is a Perl 5 version, using Moose. Since numbers are no objects in Perl 5, I had to implement my own Number class.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#!/usr/bin/perl&#xA;use 5.010;&#xA;use warnings;&#xA;&#xA;{&#xA;  package Number;&#xA;  use Moose;&#xA;&#xA;  has 'value', is =&amp;gt; 'ro', isa =&amp;gt; 'Num';&#xA;&#xA;  sub call {&#xA;    my $self = shift;&#xA;    $self-&amp;gt;value;&#xA;  }&#xA;&#xA;  no Moose;&#xA;}&#xA;&#xA;{&#xA;  package CodeTree;&#xA;  use Moose;&#xA;&#xA;  has 'root',     is =&amp;gt; 'ro', isa =&amp;gt; 'CodeRef';&#xA;  has 'children', is =&amp;gt; 'ro', isa =&amp;gt; 'ArrayRef', default =&amp;gt; sub { [] };&#xA;&#xA;  sub call {&#xA;    my $self = shift;&#xA;    $self-&amp;gt;root-&amp;gt;(map { $_-&amp;gt;call } @{ $self-&amp;gt;children });&#xA;  }&#xA;&#xA;  no Moose;&#xA;}&#xA;&#xA;my $plus = sub { my ($x, $y) = @_; $x + $y };&#xA;my $one  = Number-&amp;gt;new(value =&amp;gt; 1);&#xA;my $codetree = CodeTree-&amp;gt;new(&#xA;  root     =&amp;gt; $plus,&#xA;  children =&amp;gt; [$one, CodeTree-&amp;gt;new(root =&amp;gt; $plus, children =&amp;gt; [$one, $one])]&#xA;);&#xA;say $codetree-&amp;gt;call;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="10137" LastActivityDate="2010-12-15T09:58:19.793" />
  <row Id="26628" PostTypeId="2" ParentId="26517" CreationDate="2010-12-15T10:02:22.203" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;NO, unless it solves a real world problem&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Programmers usually love solving problems, sometimes to problems that don't yet exist :)&lt;/li&gt;&#xA;&lt;li&gt;Programmers usually make terrible GUI's, because its a secondary thought&lt;/li&gt;&#xA;&lt;li&gt;Most &lt;strong&gt;user problems&lt;/strong&gt; are not the same as &lt;strong&gt;programmer problems&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Thus programmer driven product will usually be good for other programmers, but not so good for users.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Also a Note on face-book:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Face-books success has nothing to do with its technical merits, its more of a piggy back idea that just caught on really big and snowballed. Face-book et al only happen every once in a &quot;Google Blue Moon&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;However:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If a programmer has a real &quot;user&quot; problem, one that is not a programmer problem. Then its likely that its a very good thing. If the stakeholder is also the developer &lt;strong&gt;that&lt;/strong&gt; in relation to the problem is an ideal situation for a great product solution.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-15T10:02:22.203" />
  <row Id="26629" PostTypeId="2" ParentId="26454" CreationDate="2010-12-15T10:07:34.390" Score="2" ViewCount="" Body="&lt;p&gt;Well, I am 24 and I want to be Java programmer so badly. Not only programmer, but a great one. I have a couple of years of experience in C++ but I don't like it much though. The only thing I have learnt during my lifetime is all you need is a desire, a craving for it and presence of the guts to do what is necessary. Do whatever it takes and the fortune will smile upon you. Age is of no importance. Gosh, I know a woman who moved to the USA and she had never uttered an english word before. After a year she started teaching at a university. The will is everything! Believe in yourself and remember a thousand miles road starts from the first step. Keep your chin up and never give up, mate.&lt;/p&gt;&#xA;" OwnerUserId="10136" LastActivityDate="2010-12-15T10:07:34.390" />
  <row Id="26630" PostTypeId="2" ParentId="26562" CreationDate="2010-12-15T10:11:06.057" Score="1" ViewCount="" Body="&lt;p&gt;Most bugtrackers are web applications. So, you have the choice to &lt;strong&gt;install and host your own copy&lt;/strong&gt;, or to &lt;strong&gt;subscribe to an hosting service&lt;/strong&gt;. The former can be time consuming, especially if you work alone. The latter can cost some money (there are some free hosting, and the commercial services start around 4$/month).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An alternative is to use a &lt;strong&gt;standalone bugtracker&lt;/strong&gt;. Some have a command line interface, some have GUI or web interface. &lt;a href=&quot;http://stackoverflow.com/questions/81698/task-issue-tracking-system-with-command-line-interface&quot;&gt;This SO question&lt;/a&gt; has a list of such tools. Of course, a simple spreadsheet can also be used (I personnaly prefer a text-based format).&lt;/p&gt;&#xA;" OwnerUserId="3527" LastActivityDate="2010-12-15T10:11:06.057" />
  <row Id="26631" PostTypeId="2" ParentId="26517" CreationDate="2010-12-15T10:11:31.537" Score="1" ViewCount="" Body="&lt;p&gt;Short answer: sometimes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Long Answer:&#xA;Customer-drive development works if you know who your customers are and they know what they want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developer-driven development has merit for people that don't realise they will find it useful yet. In other words, sometimes customers can't always know what they want. New Requirements can come from an existing experience of how an existing product is deficient. There weren't any customers for Facebook, Zuckerberg created a product, an answer before the question. Now established, Facebook is influenced by its customers, but before it was created and during creation, it was a developer-driven idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Customer driven development is ideal for established, perhaps mature product making money or new iterations of the product in the same market, where ignoring the customer's wishes would be highly detrimental to future income streams.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developer-driven development is a sideline, prototyping activity, falling within the Google 20% arena, whereby their developers spend 20% of their working time on own projects. &lt;/p&gt;&#xA;" OwnerUserId="9267" LastActivityDate="2010-12-15T10:11:31.537" />
  <row Id="26632" PostTypeId="2" ParentId="26517" CreationDate="2010-12-15T10:20:07.960" Score="1" ViewCount="" Body="&lt;p&gt;To design a good product, you need a lot of knowledge about the problem domain. A general-public product like facebook can be driven by developers, because it solves a problem developers have, too: How to connect and stay in touch with friends etc.&#xA;The same is even more true for products aimed at software developers: Developers know what an IDE should do and how.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But for many other problem domains, developers often just don't know enough. Even with a general insight and some experience, they will often tend to implement &lt;em&gt;cool&lt;/em&gt; features or features that are easy to implement, but do not add much value for the customer and make the product more complex. These are cases where products should be driven by domain experts.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-15T10:20:07.960" CommentCount="2" />
  <row Id="26633" PostTypeId="2" ParentId="26609" CreationDate="2010-12-15T10:23:30.647" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Using a delegate allows the programmer to encapsulate a reference to a method inside a delegate object. The delegate object can then be passed to code which can call the referenced method, without having to know at compile time which method will be invoked.&#xA;  In reality:&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Delegate object is an envelope.&#xA;In the envelope (delegate object) there is a phone number (referenced method) to an unknown person (method), the receiver of envelope (delegate object) can call that number (referenced method), now here you can tell (delegate parameter) that person to do something interesting.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-15T10:23:30.647" />
  <row Id="26634" PostTypeId="2" ParentId="26454" CreationDate="2010-12-15T10:24:36.577" Score="0" ViewCount="" Body="&lt;p&gt;For being a good programmer, you have to learn thinking. It's the &lt;em&gt;art of providing working solutions efficiently&lt;/em&gt;. I have high hopes in the idea that you can start learning things no matter how old you are. Of course youngsters who already spent years with programming have a good start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about the positive things. You've perhaps did something great in your earlier life that certainly can help your way to learn programming - and it's a life-long way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe the best advice I can give: &lt;strong&gt;dive in and enjoy&lt;/strong&gt;. Get know people like you, get know the gurus in your scene (no matter what it is), &lt;strong&gt;talk to them&lt;/strong&gt; and develop things that you like. Make them better and better in an iterative way. Probably in months you will be able to express your thoughts and questions to any developer without any issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Last thoughts: learn how to write documentation for your code and use a version control system, probably a distributed one. It will make your life easier.&lt;/p&gt;&#xA;" OwnerUserId="10138" LastActivityDate="2010-12-15T10:24:36.577" />
  <row Id="26635" PostTypeId="2" ParentId="26596" CreationDate="2010-12-15T10:42:19.213" Score="0" ViewCount="" Body="&lt;p&gt;Use a methodology, whereby the written documentation marries up to the code written. Start the week deciding on what needs to be done, get an agreement, then wait till the end of the week to see if its been done or not. Keep tasks small and measurable as in how many days. I don't think you need to measure the programmers work per say, but the agreement on what is to be delivered and when is a must for control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second part to this solution would be peer-to-peer code reviews which is backed up by some sort of Versioning system that makes who did what and when traceable. If the consensus  is that the code is good then your onto a winner, if bad, then find out why and how it could be improved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Time and motion studies are a no no as far as I am concerned, some code such as Regexes or some really hard logic can take days to develop but may only form a couple of lines of code. The only true measurement is deliverables on time, on an agreed time.  &lt;/p&gt;&#xA;" OwnerUserId="10141" LastActivityDate="2010-12-15T10:42:19.213" />
  <row Id="26636" PostTypeId="2" ParentId="26609" CreationDate="2010-12-15T10:42:47.777" Score="2" ViewCount="" Body="&lt;p&gt;It's like finding 4 cans of beer on the shelf in store. But instead of opening and drinking all of them right there you take them home. Maybe your friend will have one? Why not let him open it?&lt;/p&gt;&#xA;" OwnerUserId="1150" LastActivityDate="2010-12-15T10:42:47.777" CommentCount="2" />
  <row Id="26637" PostTypeId="2" ParentId="26573" CreationDate="2010-12-15T10:53:21.233" Score="0" ViewCount="" Body="&lt;p&gt;You might want to take a look at our test management software &lt;a href=&quot;http://www.gurock.com/testrail/&quot; rel=&quot;nofollow&quot;&gt;TestRail&lt;/a&gt;. It can usually be installed and integrated with your existing bug tracking tool (if you have one) in an hour or less, or you can try the hosted trial first. If you are looking for open source tools, you can take a look at &lt;a href=&quot;http://www.opensourcetestmanagement.com/&quot; rel=&quot;nofollow&quot;&gt;this list&lt;/a&gt;, although most of those tools are not very easy to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://www.gurock.com/images/feature/testrail-screenshot-home-v2.png&quot; /&gt;&lt;/p&gt;&#xA;" OwnerUserId="10143" LastActivityDate="2010-12-15T10:53:21.233" />
  <row Id="26638" PostTypeId="1" AcceptedAnswerId="26641" CreationDate="2010-12-15T10:58:42.570" Score="7" ViewCount="1889" Body="&lt;p&gt;Hi PB Community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;During my university career, when programming Java I mostly used NetBeans. As such, I am still quite a big fan of it. Back then Eclipse seemed a bit &lt;em&gt;&quot;sluggish&quot;&lt;/em&gt; to me (although I hear they have made leap-year improvements). Now, I see that a lot of people in the industry likes Eclipse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, at the company I work for, we use IntelliJ Idea, which I have come to love. Unfortunately, it is not open soure (and the community version does not support all technologies).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realise that this question revolves mostly around personal taste, but are there any substantial (non-personal) functionality differences between the three? If you had to choose a platform to use at a company for developing enterprise type solutions, what are the type of things you should consider when looking at the different IDEs? What does one offer that the other does not?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="8478" LastActivityDate="2010-12-15T13:00:04.353" ClosedDate="2011-03-01T22:43:46.007" Title="Netbeans vs Eclipse vs IntelliJ Idea for Java?" Tags="&lt;ide&gt;&lt;eclipse&gt;&lt;netbeans&gt;&lt;intellij&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="26639" PostTypeId="1" AcceptedAnswerId="26640" CreationDate="2010-12-15T11:00:09.540" Score="4" ViewCount="113" Body="&lt;p&gt;I'm aware of JavaOne etc but don't think I can persuade my Boss to pay for a trip to San Francisco. So I was wonder if anyone knew of, or had attended any UK based conferences for Java Developers that they would reccomend?&lt;/p&gt;&#xA;" OwnerUserId="5148" LastActivityDate="2011-03-16T14:12:20.640" Title="Any good UK Java conferences?" Tags="&lt;java&gt;&lt;conferences&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="26640" PostTypeId="2" ParentId="26639" CreationDate="2010-12-15T11:04:43.717" Score="2" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://www.meetup.com/Londonjavacommunity/&quot; rel=&quot;nofollow&quot;&gt;LJC&lt;/a&gt; organise several conferences a year, the most recent one being a very successful Open Conference.  We plan to hold more ~150 person open conferences next year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://jaxlondon.com/&quot; rel=&quot;nofollow&quot;&gt;JAX London&lt;/a&gt; is a major conference that the LJC is helping support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://qconlondon.com/&quot; rel=&quot;nofollow&quot;&gt;QCon London&lt;/a&gt; is another major conference&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-15T11:04:43.717" CommentCount="6" />
  <row Id="26641" PostTypeId="2" ParentId="26638" CreationDate="2010-12-15T11:09:34.083" Score="9" ViewCount="" Body="&lt;p&gt;Ahhhh IDE wars :).  As far as I'm concerned the &quot;I'm comfortable with IDE X and therefore I'm more productive&quot; outweighs the slight advantages that one IDE might have over another, they're all pretty much at the same level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few points:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Netbeans is more likely to get the latest JEE6 and Java 7+ support earlier than the other two if you're on the bleeding edge for those two technologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some say IntelliJ's refactoring support makes the others look like tinker toys, YMMV.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eclipse has an amazingly large eco-system of good and bad plugins.  Vendor specific versions of Eclipse tend to lock you in though.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-15T11:09:34.083" CommentCount="1" />
  <row Id="26642" PostTypeId="1" AcceptedAnswerId="26647" CreationDate="2010-12-15T11:11:52.787" Score="9" ViewCount="378" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am currently a University student on a 12 month internship, before returning to University for a final year. My questions is, how useful would it be to create a portfolio of home projects that can be used to support a CV for that firsrt graduate job? Are there any employers on here that have any thoughts on this and also what level of work should be on display? I'm thinking of going down this route to make me stand out from a lot of other candidates. As a mature graduate (34 when I graduate) I think any slight advangate is a must.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="10149" LastEditorUserId="19554" LastEditorDisplayName="" LastEditDate="2011-04-08T05:44:25.143" LastActivityDate="2011-04-08T05:44:25.143" Title="Programming Portfolio" Tags="&lt;career-advice&gt;&lt;programming&gt;&lt;portfolio&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="26643" PostTypeId="1" CreationDate="2010-12-15T11:12:25.130" Score="11" ViewCount="462" Body="&lt;p&gt;I've injured my wrist and looking over at the designer sitting across me using his pen and tablet made me think if that's something a web developer (20-40% time spent in photoshop) could use and maybe even be more efficient in the long term?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Are you a developer using pen / tablet and seriously not missing a mouse anymore? Why?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did a search and found these but they don't answer my question exactly, or in enough detail:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/146730/development-with-a-tablet-not-a-mouse&quot;&gt;Development with a tablet (dated 2008)&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/1837353/one-handed-coding-tablet-special-keyboard-one-handed-typing&quot;&gt;One handed coding with tablet&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/167/how-can-i-avoid-carpal-tunnel-syndrome#9800&quot;&gt;One guy using a tablet / pen likes it&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/762033/is-it-practical-to-program-with-your-feet&quot;&gt;Programming with feet?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.viget.com/inspire/talkin-pen-tablet-talk/&quot; rel=&quot;nofollow&quot;&gt;A designer switches to a tablet (good comments)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But what I did find I can summarise as follows:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It is easier on the wrist.&lt;/li&gt;&#xA;&lt;li&gt;There is a learning curve.&lt;/li&gt;&#xA;&lt;li&gt;For pointing intensive work (ala photoshop) it is superior.&lt;/li&gt;&#xA;&lt;li&gt;You get better at keyboard shortcuts if you're not already.&lt;/li&gt;&#xA;&lt;li&gt;You might hold the pen while you type if you find picking up / putting down harder.&lt;/li&gt;&#xA;&lt;li&gt;Tablet to screen mapping is awesome (absolute positioning, i.e. tablet corner = screen corner)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think I've almost convinced myself here :)&lt;/p&gt;&#xA;" OwnerUserId="10144" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T14:30:12.657" LastActivityDate="2010-12-26T14:30:12.657" Title="Do any programmers use a pen and tablet instead of a mouse? Is it better?" Tags="&lt;productivity&gt;&lt;web-development&gt;&lt;mouse&gt;&lt;rsi&gt;" AnswerCount="9" CommentCount="6" FavoriteCount="2" />
  <row Id="26644" PostTypeId="2" ParentId="26638" CreationDate="2010-12-15T11:13:54.053" Score="5" ViewCount="" Body="&lt;p&gt;My perception is the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;IntelliJ Idea is &quot;best&quot;, if money doesn't matter. It's more complete, more polished, more everything. You get what you pay for. But the difference is not a big one, compared to Eclipse/NetBeans.&lt;/li&gt;&#xA;&lt;li&gt;Eclipse is rather hard to set up, while NetBeans is almost there out of the box. Otherwise they're pretty much equivalent and differ only in details that are ultimately questions of taste.&lt;/li&gt;&#xA;&lt;li&gt;NetBeans is backed up by Oracle, which may or may not be a good thing. At least it means that NetBeans is guaranteed to be among the first ones to support new technologies (Java 7, JavaFX).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In the end, all of these are amazing IDEs compared to anything that existed, say, just 5 years ago.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-12-15T11:35:32.490" LastActivityDate="2010-12-15T11:35:32.490" CommentCount="3" />
  <row Id="26645" PostTypeId="2" ParentId="26573" CreationDate="2010-12-15T11:15:37.617" Score="1" ViewCount="" Body="&lt;p&gt;We use &lt;a href=&quot;http://www.teamst.org&quot; rel=&quot;nofollow&quot;&gt;Test Link&lt;/a&gt; - open source, browser based and does the job.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="2916" LastEditorDisplayName="" LastEditDate="2011-02-09T17:54:10.387" LastActivityDate="2011-02-09T17:54:10.387" />
  <row Id="26646" PostTypeId="2" ParentId="26643" CreationDate="2010-12-15T11:21:20.910" Score="4" ViewCount="" Body="&lt;p&gt;Tablets are a must-have for professional graphics designers, because they are pressure sensitive and mostly feel like a pencil to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For programmers, I don't like them (had one, but never used it except for graphics). Picking the pen up takes more time, compared to grabing the mouse. Locating the pointer on the screen also seemed more difficult, because as soon as you move the pen to the tablet, it jumps to the corresponding absolute position. All in all, tablets work fine for tasks where you work over an extended period with the pointing device alone. If you work mostly with the keyboard and only sometimes use the pointing device to do a little click, they are cumbersome to use.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-15T11:21:20.910" CommentCount="3" />
  <row Id="26647" PostTypeId="2" ParentId="26642" CreationDate="2010-12-15T11:22:24.113" Score="10" ViewCount="" Body="&lt;p&gt;I think if your home projects contributed in any way, or has source code available that the community has worked on (open-source projects), then by all means include it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you should however &lt;strong&gt;NOT&lt;/strong&gt; do is put every single little project that you did on your CV. It makes one seem desperate. If the project was quite a substantial amount of work and can be seen somewhere in the world, sure. If it is just something you hacked together, and no-one has visibility of it, no.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact that you are a mature graduate already counts in your favor (in my opinion). It shows that you have had time to really understand and get to grips with what it is in life that you want to become / achieve. Employers see this as a good thing (correct me if I'm woring), because there is less chance of you leaving after a year to persue some other direction.&lt;/p&gt;&#xA;" OwnerUserId="8478" LastActivityDate="2010-12-15T11:22:24.113" CommentCount="6" />
  <row Id="26648" PostTypeId="2" ParentId="26643" CreationDate="2010-12-15T11:24:40.023" Score="1" ViewCount="" Body="&lt;p&gt;Using a tablet does take a little getting used too, but with a little practice you will soon feel comfortable. I use my tablet for design/art work in CS4/SketchBook and the tablet is really superior for these programs. I have a tendency to switch to the mouse when programming, but I've only had my tablet for a few weeks. It's really not that hard to get used to. I would go for it if I were you. I think you made some compelling points.&lt;/p&gt;&#xA;" OwnerUserId="10152" LastActivityDate="2010-12-15T11:24:40.023" CommentCount="1" />
  <row Id="26649" PostTypeId="2" ParentId="26454" CreationDate="2010-12-15T11:25:11.093" Score="0" ViewCount="" Body="&lt;p&gt;I do believe that this is an individual thing.  I am currently 32 and started a University programming course 2 years ago. I am currently 3 months into a 12 month internship and I am more than comfortable with things such as threads and events(in answer to a previous answer).  I am currently focusing on design patterns and as my knowledge of them increases, I try to identify areas within my work where I can apply my new knowledge.  Slowly, my code is getting better and more maintainable.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you work hard enough and have the desire and enthusiasm to improve, then age is no barrier.  &lt;/p&gt;&#xA;" OwnerUserId="10149" LastActivityDate="2010-12-15T11:25:11.093" />
  <row Id="26650" PostTypeId="1" AcceptedAnswerId="26742" CreationDate="2010-12-15T11:30:34.257" Score="4" ViewCount="309" Body="&lt;p&gt;So far I've written web sites in PHP, except for a pet project of mine written in Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to start learning C# for use on the web, but I have no idea where to start. I know nothing of .Net. Are there any good tutorials or online books etc. which give a brief intro to the .Net environment (specifically C#, and specifically for the web)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not even sure what I need to install. Visual Studio I guess, but what else? Anything special, or will VS do the trick?&lt;/p&gt;&#xA;" OwnerUserId="54" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2011-04-26T14:52:33.680" LastActivityDate="2011-04-26T14:52:33.680" Title="Where can I start learning to build web applications in C#" Tags="&lt;c#&gt;&lt;web-applications&gt;&lt;tutorial&gt;" AnswerCount="5" FavoriteCount="3" />
  <row Id="26651" PostTypeId="2" ParentId="26650" CreationDate="2010-12-15T11:35:00.480" Score="3" ViewCount="" Body="&lt;p&gt;I came from a PHP background and into a new job - which was ALL .net.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I basically just dived in, head first.  I assume you've got visual studio installed?  If not go and get it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Create a new project then go Add -&gt; New Item -&gt; WebForm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Viola! You've got something that looks like HTML. Edit as you wish and hit F5 to see the changes.  From there you can use the web to work out how to place buttons, text boxes and you're on your way...&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-12-15T11:35:00.480" CommentCount="5" />
  <row Id="26652" PostTypeId="2" ParentId="26548" CreationDate="2010-12-15T11:36:35.860" Score="2" ViewCount="" Body="&lt;p&gt;One thing which may be significant is that you mention Github.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're using a free Github account that's an implicit statement that it's OpenSource.  Even if you don't include a license the fact that Github free accounts are only permitted to host OpenSource projects would almost certainly allow people to claim a reasonable expectation that that's what it was.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-15T11:36:35.860" />
  <row Id="26653" PostTypeId="2" ParentId="26643" CreationDate="2010-12-15T11:41:32.203" Score="0" ViewCount="" Body="&lt;p&gt;I had one but given the choice prefer the trackpad (or mouse). I also (given a choice) would prefer the keyboard. The mouse is slow, use it as little as possible.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-15T11:41:32.203" />
  <row Id="26654" PostTypeId="2" ParentId="26643" CreationDate="2010-12-15T11:44:03.947" Score="2" ViewCount="" Body="&lt;p&gt;I would suggest you have a look at the mousepads with the latest Apple machines.  They even have a stand alone version (which can be hacked to work with a Windows machine).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Based on my daily experiences with a Mac I would say that it is extremely useful, while being used in a completely different way from a mouse.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-15T11:44:03.947" CommentCount="1" />
  <row Id="26655" PostTypeId="2" ParentId="26650" CreationDate="2010-12-15T11:59:36.163" Score="2" ViewCount="" Body="&lt;p&gt;Hi, If you were going to use asp.net with C#, take a look at these tutorial video's from Microsoft&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.asp.net/general/videos&quot; rel=&quot;nofollow&quot;&gt;http://www.asp.net/general/videos&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10149" LastActivityDate="2010-12-15T11:59:36.163" />
  <row Id="26656" PostTypeId="1" AcceptedAnswerId="26705" CreationDate="2010-12-15T12:09:41.353" Score="7" ViewCount="585" Body="&lt;p&gt;OK, so there are quite a few people using Java these days.  But as the language nears two decades of age, it isn't exactly the coolest option out there.  Many of us are excited about dynamic languages with some functional features like Ruby or Python, even though we spend our days using Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So why is it that the adoption of Groovy has been so slow?  It seems that Groovy offers much of the benefits of Ruby and Python, but it is far easier to transition a Java shop to Groovy.  Even if performance were the concern, it seems that many would want to use Groovy for testing the production Java code.  Or use Groovy/Grails for internal apps in which performance concerns are minimal.  Or for writing one-off scripts to generate code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yet Groovy languishes outside of Tiobe's top 50 languages, for reasons that are unclear to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been using Groovy and Grails professionally for about four months, and it has been an excellent experience, such that I hate to think about going back to the Java/Spring/Hibernate model.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone have any sense on why we are not seeing more significant migration from Java to Groovy?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that I'm not asking why Java developers are still using Java for new projects.  My question is:  Why is it that most Java Developers are still not using Groovy &lt;em&gt;at all.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;  I am assuming that all good developers see the utility of dynamic typing and higher order functions &lt;em&gt;for some programming tasks.&lt;/em&gt;  (Even if it is deemed inappropriate for production code.)&lt;/p&gt;&#xA;" OwnerUserId="2329" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-12-15T13:12:31.113" LastActivityDate="2011-04-14T21:22:08.817" Title="Java devs: why not use Groovy?" Tags="&lt;programming-languages&gt;&lt;java&gt;&lt;trends&gt;&lt;groovy&gt;" AnswerCount="9" CommentCount="5" FavoriteCount="2" />
  <row Id="26657" PostTypeId="2" ParentId="26609" CreationDate="2010-12-15T12:10:59.853" Score="0" ViewCount="" Body="&lt;p&gt;Our customers tell my boss &quot;make the program run faster&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My boss might tell me or any of my colleagues &quot;make the program run faster&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;make the program run faster&quot; gets done for the customer, but the customer does not know who's doing it. They only talk to my boss.&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-12-15T14:25:14.030" LastActivityDate="2010-12-15T14:25:14.030" CommentCount="1" />
  <row Id="26658" PostTypeId="1" CreationDate="2010-12-15T12:11:35.287" Score="0" ViewCount="54" Body="&lt;p&gt;I want something to read during breaks&#xA;previously i enjoyed tintin, asterix, archie&lt;/p&gt;&#xA;" OwnerUserId="10160" LastActivityDate="2010-12-15T12:11:35.287" ClosedDate="2010-12-15T12:15:17.873" Title="which comic books or graphic novels would you recommend?" Tags="&lt;fun&gt;&lt;reading&gt;" />
  <row Id="26659" PostTypeId="2" ParentId="26656" CreationDate="2010-12-15T12:16:09.350" Score="5" ViewCount="" Body="&lt;p&gt;I'm not using Groovy because I don't see the need for it. Seeing as it is run on the JVM and I already know Java pretty well, why would I invest my time in something that is pretty much the same anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I realise that I can't be a one trick pony for my whole career. That's why I have started to learn Python. When I was looking for a new language to learn, I did think about Groovy, but the similarities to Java made me think twice. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you also have to look at what other people think of Groovy and the one point that keeps popping up when I think about Groovy is that the creator of Groovy said he wouldn't have bothered if someone has shown him Scala. I think this shows that Groovy isn't really a real alternative to Java or even a realistic addition to Java. If you want something that runs in the JVM, use Scala.&lt;/p&gt;&#xA;" OwnerUserId="154" LastActivityDate="2010-12-15T12:16:09.350" CommentCount="2" />
  <row Id="26660" PostTypeId="2" ParentId="26643" CreationDate="2010-12-15T12:17:28.100" Score="0" ViewCount="" Body="&lt;p&gt;I use it and I prefer it for all mousing operations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason is that you can set up a tablet such that its surface is bound 1:1 with your screen. This means that if your cursor is at the bottom left of the screen, and you need it at the top right, you just move your stylus up to the top right of your tablet. There's no re-positioning or multiple motions as with the mouse, which means each &quot;cache miss&quot; hurts you less.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said,&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;this is the one feature that gesture tablets (including the Wacom Pen &amp;amp; Touch when in finger mode, oddly) are still missing. As soon as someone comes out with a touchpad that supports 1:1 screen mapping, I'll switch to that.&lt;/li&gt;&#xA;&lt;li&gt;A trackball-style mouse gives you more economy of motion at the cost of a slightly reduced reaction time (you do have to keep it clean though)&gt;&lt;/li&gt;&#xA;&lt;li&gt;The keyboard is still by far faster than any pointing device, so if you can, stick to hotkeys and typing.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-12-15T12:17:28.100" />
  <row Id="26661" PostTypeId="2" ParentId="26586" CreationDate="2010-12-15T12:25:19.420" Score="2" ViewCount="" Body="&lt;p&gt;my usual day:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;8.30am: get up, take shower and grab bike&lt;br/&gt;&#xA;9am: arrive at work&lt;br/&gt;&#xA;12am-1pm: lunch + fussball&lt;br/&gt;&#xA;5.30pm-6.30: fussball&lt;br/&gt;&#xA;6.30pm: bike home + stop for groceries&lt;br/&gt;&#xA;7pm: arrive home and screw around on the pc a bit (facebook etc, maybe a game or some blogs)&lt;br/&gt;&#xA;8pm-10pmish: eat food cooked by GF + watch some tv with her&lt;br/&gt;&#xA;10pm-11pm: gaming. gf usually does some work or goes to sleep.&lt;br/&gt;&#xA;11pm-12.30: (try to) do something useful and educational (programming related)&lt;br/&gt;&#xA;12.30-2am: watch some nerd series by myself&lt;br/&gt;&#xA;2am: sleep&lt;br/&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;that's more or less a usual day.&#xA;but this sometimes shifts, when there's a cool game I'll play some more, when I'm excited about some technology I won't game, some nights I spend completely with the GF, ...&lt;/p&gt;&#xA;" OwnerUserId="2820" LastActivityDate="2010-12-15T12:25:19.420" />
  <row Id="26662" PostTypeId="2" ParentId="26656" CreationDate="2010-12-15T12:29:23.407" Score="1" ViewCount="" Body="&lt;p&gt;I am a java developer, the reasons I am not using Groovy are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's dynamically typed&lt;/li&gt;&#xA;&lt;li&gt;When I search for a job on a popular&#xA;recruitment webiste there are 11,000&#xA;Java jobs, and only 11 Groovy jobs.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-12-15T12:29:23.407" CommentCount="8" />
  <row Id="26663" PostTypeId="2" ParentId="26656" CreationDate="2010-12-15T12:30:11.660" Score="1" ViewCount="" Body="&lt;p&gt;Dynamic vs static is pretty much the compelling argument here.  There was a great shift towards dynamic languages for a while due to the 'success' (popularity) of Ruby and Rails.  Take a look at the Google trends and I believe you'll see that popularity has peaked and is dipping once more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dynamic languages aren't/weren't the silver bullet. For many of us static languages are just simply safer to use and have proven to be more scalable and robust (for now).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said I love my dynamic Groovy console that monitors my PRD runtime app server/JVM and I &lt;em&gt;firmly&lt;/em&gt; believe that [shameless plug]The Well-Grounded Java Developer[/shameless plug] of the future will use several JVM languages to their advantage.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-15T12:30:11.660" CommentCount="10" />
  <row Id="26664" PostTypeId="2" ParentId="26643" CreationDate="2010-12-15T12:33:11.857" Score="0" ViewCount="" Body="&lt;p&gt;The tablet was great for notes and diagrams. Can't see it as a keyboard replacement for  coding. I create a lot of report and there is no substitute for the mouse.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-15T12:33:11.857" CommentCount="1" />
  <row Id="26665" PostTypeId="2" ParentId="26643" CreationDate="2010-12-15T12:37:41.713" Score="5" ViewCount="" Body="&lt;p&gt;I started using a tablet (&lt;a href=&quot;http://www.wacom.com/index.html&quot; rel=&quot;nofollow&quot;&gt;Wacom&lt;/a&gt;) about 10 years ago when I started developing the first symptoms of Repetitive Stress in my right hand.  I had some experience with them prior to that in my life as an architect so switching came pretty easy for me.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm naturally left handed but use the mouse in my right hand so switching to the tablet had the added benefit of transfering some of the computer work load away from my ailing hand.  My symptoms for Repetitive Stress went away after a while but I still use the tablet on my home PC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, grabbing the pen is no different than grabbing a mouse so I don't consider it any worse or better as far as that goes.  I can easily code as fast at home as I do at work (where I use a trackball).  &lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-15T12:37:41.713" />
  <row Id="26666" PostTypeId="1" CreationDate="2010-12-15T12:50:05.237" Score="0" ViewCount="29" Body="&lt;p&gt;I enjoy the slashdot podcast which consists of text-to-speech voice (Cepstral) automatically reading the stories from the slashdot site.  Are there more podcasts like that and how to I find them?  Is there any easy way to make such podcasts myself?&lt;/p&gt;&#xA;" OwnerUserId="4526" LastActivityDate="2010-12-15T12:50:05.237" ClosedDate="2010-12-15T15:07:25.870" Title="more podcasts that use text-to-speech" Tags="&lt;podcasts&gt;" />
  <row Id="26667" PostTypeId="2" ParentId="26656" CreationDate="2010-12-15T12:53:07.227" Score="0" ViewCount="" Body="&lt;p&gt;It's somewhat an egg-and-chicken problem. A language that has little momentum gains little users, and thus has little momentum... There's lot of competition to choose from, and Groovy hasn't quite caught the attention like some others have. I think lots has to do with &lt;strong&gt;productization&lt;/strong&gt;, starting from the web site:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://groovy.codehaus.org/&quot; rel=&quot;nofollow&quot;&gt;Groovy website&lt;/a&gt;. It's in a subdomain of a German(?) open source community site (no own domain), contains some cheap-looking Google ads, and has a somewhat amateurish looks overall.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.scala-lang.org/&quot; rel=&quot;nofollow&quot;&gt;Scala website&lt;/a&gt;. Pro.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.python.org/&quot; rel=&quot;nofollow&quot;&gt;Python website&lt;/a&gt;. Pro.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.ruby-lang.org/en/&quot; rel=&quot;nofollow&quot;&gt;Ruby website&lt;/a&gt;. Pro.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jython.org/&quot; rel=&quot;nofollow&quot;&gt;Jython website&lt;/a&gt;. Cute, amateurish looks, functional but scattered documentation (a wiki), and another language that has been around for a long time but hasn't quite gained momentum. A coincidence?&lt;/li&gt;&#xA;&lt;li&gt;etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;While the superficial appearance of a web site has absolutely nothing to do with the goodness or usefulness of a language, it may have quite a lot to do with catching attention, maybe subconsciously, when there are lots of good competitors around, and the differences like &quot;which is better by some absolute measure&quot; are not obvious. Furthermore, the effect of momentum squares these differences.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-12-15T13:02:34.193" LastActivityDate="2010-12-15T13:02:34.193" CommentCount="4" />
  <row Id="26668" PostTypeId="2" ParentId="1371" CreationDate="2010-12-15T12:56:06.137" Score="1" ViewCount="" Body="&lt;p&gt;See this succinct article: &lt;a href=&quot;http://www.theregister.co.uk/2010/11/15/pm_projects_go_right/&quot; rel=&quot;nofollow&quot;&gt;When IT Projects Go Right&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An absence of any of the elements stated in the article should set alarm bells ringing:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So make sure your project has all of the following, if not then you should be concerned:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(to quote the above article:)&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&quot;The first is that they are based on a clear vision of what is to be achieved.&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&quot;The second characteristic concerns the support and commitment of the different parties involved across the business, especially senior management.&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&quot;Third is an understanding of the problems to be tackled.&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&quot;The final common characteristic is that sufficient resources and skills have been made available.&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="9267" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-16T19:46:12.823" LastActivityDate="2010-12-16T19:46:12.823" CommunityOwnedDate="2011-01-23T19:41:07.757" CommentCount="1" />
  <row Id="26669" PostTypeId="1" AcceptedAnswerId="26680" CreationDate="2010-12-15T12:59:02.747" Score="4" ViewCount="357" Body="&lt;p&gt;hii people:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me,its a Passion to me ,which i like to spend every minute in technology,design patterns,acheiving goals etc on computers now programming,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simply,could you people start posting your point?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;NOTE: I hope this is not a duplicate Question if i m not wrong!&lt;/p&gt;&#xA;" OwnerUserId="7452" LastActivityDate="2010-12-15T17:50:02.180" ClosedDate="2010-12-17T12:45:42.770" Title="Simply what does Programming means to you?" Tags="&lt;programming&gt;" AnswerCount="13" CommentCount="1" />
  <row Id="26670" PostTypeId="2" ParentId="26638" CreationDate="2010-12-15T13:00:04.353" Score="3" ViewCount="" Body="&lt;p&gt;I use both Netbeans AND Eclipse, both free, working out of same working directory since the meta files that these tools generate don't clash.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Netbeans because it is great for designing pure Java UIs in the visual designer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eclipse for everything else: development, code understanding (others' work), debugging and re-factoring as it seems to do these faster and with more features than Eclipse.&lt;/p&gt;&#xA;" OwnerUserId="9267" LastActivityDate="2010-12-15T13:00:04.353" CommentCount="1" />
  <row Id="26671" PostTypeId="2" ParentId="26669" CreationDate="2010-12-15T13:07:33.783" Score="0" ViewCount="" Body="&lt;p&gt;When people &quot;don't get&quot; programming, I usually tell them &quot;The textbook definition is 'giving instructions to computers in a form that they can interpret,' but it's really not that simple.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of those people later ask &lt;strong&gt;why&lt;/strong&gt; I do it.  Someone literally said &quot;I don't get it.  Why don't you do something fun like sports?&quot; to me once.  It can be a hobby, passion, or profession just like any other skill out there.&lt;/p&gt;&#xA;" OwnerUserId="8810" LastActivityDate="2010-12-15T13:07:33.783" CommentCount="3" />
  <row Id="26672" PostTypeId="2" ParentId="26643" CreationDate="2010-12-15T13:08:43.043" Score="1" ViewCount="" Body="&lt;p&gt;Have you tried a trackball, I use a Logitech Trackman Wheel and find it far more comfortable than a mouse, as my wrist stays stationary and all the movement is done with your thumb.&lt;/p&gt;&#xA;" OwnerUserId="8087" LastActivityDate="2010-12-15T13:08:43.043" CommentCount="2" />
  <row Id="26673" PostTypeId="1" CreationDate="2010-12-15T13:09:19.663" Score="11" ViewCount="305" Body="&lt;p&gt;I have a &quot;friend&quot;. Yes good start I know but honestly this isn't me!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically he's been working on a successful project for about 4 years now, the difficulty is the &lt;a href=&quot;http://en.wikipedia.org/wiki/Technical_debt&quot; rel=&quot;nofollow&quot;&gt;technical debt&lt;/a&gt; has caught up and he's finding it almost impossible to stop supporting the product (tweaking this and that) and actually move on with &lt;em&gt;real&lt;/em&gt; development. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've made various suggestions, log all of your time, create tickets, don't answer emails etc etc. The problem with this is that it seems to only serve as a reminder that he's not getting anything &quot;useful&quot; done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The technical debt has largely occurred because in the first instance it was a big benefit to the product, to take requests and phone calls from users and just quickly implement them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I would like to know is does anybody have any suggestions for how he might get out of this rut, a large part of which would be changing the perceptions of the users so that they don't think they can just ring and expect something to be done then and there.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's all very well saying plan better, though I understand it's very difficult to plan actual development given the requirement for support and the relative pressures from users (see above).&lt;/p&gt;&#xA;" OwnerUserId="10162" LastEditorUserId="5621" LastEditorDisplayName="" LastEditDate="2010-12-15T13:52:47.880" LastActivityDate="2011-05-20T20:06:37.337" Title="How to get out of the support rut and start repaying the technical debt!" Tags="&lt;advice&gt;&lt;users&gt;&lt;technical-debt&gt;&lt;product-management&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="5" />
  <row Id="26674" PostTypeId="2" ParentId="26669" CreationDate="2010-12-15T13:10:22.683" Score="11" ViewCount="" Body="&lt;h1&gt;A tool!&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Yes, for me programing is a tool that helps me with my passion, Creating!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simple nah ?&lt;/p&gt;&#xA;" OwnerUserId="9110" LastActivityDate="2010-12-15T13:10:22.683" CommentCount="3" />
  <row Id="26675" PostTypeId="2" ParentId="26669" CreationDate="2010-12-15T13:15:43.880" Score="1" ViewCount="" Body="&lt;p&gt;Programming is my daily bread and butter. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-15T13:15:43.880" />
  <row Id="26676" PostTypeId="2" ParentId="1" CreationDate="2010-12-15T13:21:35.770" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Here's my rule-of-thumb:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Write the code and store a short summary of the code in a separate document.&lt;/li&gt;&#xA;&lt;li&gt;Leave the code alone for several days to work on something else.&lt;/li&gt;&#xA;&lt;li&gt;Return to the code.  If you can't immediately understand what it's supposed to do, add the summary to the source file.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8810" LastActivityDate="2010-12-15T13:21:35.770" CommunityOwnedDate="2011-01-31T09:04:54.130" />
  <row Id="26677" PostTypeId="2" ParentId="26669" CreationDate="2010-12-15T13:23:28.950" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Programming is my life.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="943" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-15T13:43:58.573" LastActivityDate="2010-12-15T13:43:58.573" />
  <row Id="26678" PostTypeId="2" ParentId="26669" CreationDate="2010-12-15T13:23:43.660" Score="1" ViewCount="" Body="&lt;p&gt;It gives me food and shelter for doing stuff that I enjoy. A rare privilege, if you really think about it.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2010-12-15T13:23:43.660" />
  <row Id="26679" PostTypeId="2" ParentId="26669" CreationDate="2010-12-15T13:24:48.230" Score="0" ViewCount="" Body="&lt;p&gt;Programming is one of the best things a person can do. It is amazing. Creating a working application from nothing.&#xA;I am programming since I was 6 and love every inch of it.&lt;/p&gt;&#xA;" OwnerUserId="10165" LastActivityDate="2010-12-15T13:24:48.230" CommentCount="7" />
  <row Id="26680" PostTypeId="2" ParentId="26669" CreationDate="2010-12-15T13:28:57.233" Score="2" ViewCount="" Body="&lt;p&gt;Programming is the &lt;strong&gt;process&lt;/strong&gt; of designing, writing, testing, debugging/troubleshooting, and maintaining the source code of computer programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: To me programming is continually self development/improvement.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-12-15T15:34:28.857" LastActivityDate="2010-12-15T15:34:28.857" CommentCount="3" />
  <row Id="26681" PostTypeId="2" ParentId="24574" CreationDate="2010-12-15T13:35:37.350" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I've seen the news yesterday that Java 7 and Java 8 passed but the majority weren't very happy. Can anyone clarify what consequences does this have on Java and the community ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;My guess here is as good as anybody else's. I also listened to Oracle keynotes to Devoxx conference (&gt;3000 people, biggest Java conf in Europe) and to Jug leaders, and my opinion is that Java will be moved by Oracle in a model much closer to .NET that it was before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are good things in this as bad things, for sure it will be different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good things:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Much clearer direction and vision. Sun was missing both&lt;/li&gt;&#xA;&lt;li&gt;Stronger and more aggressive marketing for Java in the enterprise&lt;/li&gt;&#xA;&lt;li&gt;More emphasis on better performance in real world scenarios (especially with Oracle db)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Bad things:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Less &quot;openess&quot;. Java will be driven by Oracle agenda and not by the comunity.&lt;/li&gt;&#xA;&lt;li&gt;More expensive. There'll be a &quot;enterprise java&quot; that won't be free.&lt;/li&gt;&#xA;&lt;li&gt;Less 3rd party Opensource. It's logical to expect for company like Google and Ibm to reduce their effort on Java open source projects, as they would directly help a competitor (Oracle).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What licenses did Oracle change to be&#xA;  exact?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It refused to give to ASF Harmony project (a clean room implementation of Java) a free version of TCK. Actually it didn't change anything from Sun's policy and ASF was complaining since 2007. Only that now there is no hope for a solution.&#xA;At the moment project Harmony is quite useless, without TCK you're subject to Oracle lawsuits unless Oracle-Google will result in a complete discharge of Goole (unlikely).&#xA;The current TCK license in OpenJdk has several limitations, for example you cannot use on embedded or mobile and you cannot implement a subset or superset of java features.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A lot of people think that this might&#xA;  be the end of Java. Should I go ahead&#xA;  with learning Java or should I maybe&#xA;  move to .NET ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;As I said before I think that it'll be a change, but in no way the end of Java.&#xA;Also as Java will became more similar to .NET could be that it will be .NET to not be able to survive to a direct competition.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I don't have any preference as to one or the other, but I'm a bit concerned now with all this pressure surrounding the Java ecosystem. Since time is important for everyone and time is what I have less have these days I'd like some advices from the community here.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;For my part, I'm keeping an eye on Scala, Ruby and Javascript (server side). I think the future will be one of these 3, but the present is still Java.&lt;/p&gt;&#xA;" OwnerUserId="9115" LastActivityDate="2010-12-15T13:35:37.350" CommentCount="1" />
  <row Id="26682" PostTypeId="1" AcceptedAnswerId="26683" CreationDate="2010-12-15T13:39:44.880" Score="3" ViewCount="298" Body="&lt;p&gt;I have seen underscores and earmuffs (like &lt;code&gt;_good_&lt;/code&gt; or &lt;code&gt;*good*&lt;/code&gt;) frequently used in conversations among programmers. All I know is that underscores are used to denote private variables or methods in languages like C, Python etc. and  earmuffs are the preferred way of indicating that something is a global variable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do these have any other punctuational meaning when they are used outside code, in mailing lists etc? Does the highlighted word have any hidden meaning or expression added to it? Or, are they just like air quotes?&lt;/p&gt;&#xA;" OwnerUserId="2259" LastActivityDate="2010-12-15T15:28:14.620" Title="Use of underscores and earmuffs" Tags="&lt;communication&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="2" />
  <row Id="26683" PostTypeId="2" ParentId="26682" CreationDate="2010-12-15T13:41:55.220" Score="15" ViewCount="" Body="&lt;p&gt;They tend to be used for emphasis:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;No, that's *my* monkey.&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;No, that's _my_ monkey.&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Asterisks can also be used to denote an action the person is supposedly doing at the time of the comment:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;No, that's my monkey. *snatches monkey*&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Or a description to apply to the comment&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;*firmly* No, that's my monkey.&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In the examples you give though think of them as bold or italic for text that doesn't support rich text.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-15T15:28:14.620" LastActivityDate="2010-12-15T15:28:14.620" CommentCount="1" />
  <row Id="26684" PostTypeId="2" ParentId="26656" CreationDate="2010-12-15T13:44:11.527" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://repo2.maven.org/maven2/org/codehaus/groovy/groovy-all/1.7.5/&quot; rel=&quot;nofollow&quot;&gt;&lt;h1&gt;The JAR is 5MB&lt;/h1&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had problems justifying including Groovy in a couple of projects because of the sheer size of the library required.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is unfortunate, but I do understand why size is not a priority for the Groovy developers at this point.&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-12-15T13:44:11.527" CommentCount="9" />
  <row Id="26685" PostTypeId="2" ParentId="19408" CreationDate="2010-12-15T13:45:54.590" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2981&quot; rel=&quot;nofollow&quot;&gt;Zencoding&lt;/a&gt; for vim is a great plugin for HTML and CSS coding.&lt;/p&gt;&#xA;" OwnerUserId="2259" LastActivityDate="2010-12-15T13:45:54.590" CommunityOwnedDate="2010-12-15T13:45:54.590" />
  <row Id="26686" PostTypeId="2" ParentId="26669" CreationDate="2010-12-15T13:48:35.747" Score="2" ViewCount="" Body="&lt;p&gt;Good question, since it made me thinking once more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes it is just a way to earn money. Sometimes it seems to be a habit. &lt;strong&gt;But basically it is a way to create&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think, &lt;a href=&quot;http://www.paulgraham.com/hp.html&quot; rel=&quot;nofollow&quot;&gt;this article (Hackers and Painters) &lt;/a&gt; makes sense here.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-15T13:48:35.747" />
  <row Id="26687" PostTypeId="2" ParentId="26673" CreationDate="2010-12-15T13:52:05.367" Score="12" ViewCount="" Body="&lt;p&gt;Your friend's organization desperately needs someone to do change management. This person or group would take change requests and bug fixes and prioritize them according to business impact and amount of effort required. That way, tasks that are more important for the organization as a whole would be done first, as opposed to tasks that are more important for whoever is bothering your friend at the moment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: As an example of how this would work, most organizations have a severity scale. The highest severity level is a business-critical application or function that doesn't work. If there's something the business can do to work around the problem, that lowers the severity to the next level. If the application isn't business-critical, that makes the severity even lower. Requests for new enhancements are normally prioritized separately. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastEditorUserId="5621" LastEditorDisplayName="" LastEditDate="2010-12-15T14:10:39.453" LastActivityDate="2010-12-15T14:10:39.453" CommentCount="4" />
  <row Id="26688" PostTypeId="1" AcceptedAnswerId="26693" CreationDate="2010-12-15T13:54:12.693" Score="15" ViewCount="552" Body="&lt;p&gt;Lately I've seen a number of application developer job postings with a dedicated field for personal blog site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was wondering how important keeping a blog and generating tech related content is for career development? How does having one/not having one effect your potential for getting hired?&lt;/p&gt;&#xA;" OwnerUserId="9987" LastEditorUserId="4711" LastEditorDisplayName="" LastEditDate="2010-12-16T22:56:13.673" LastActivityDate="2010-12-21T22:28:49.103" Title="How important is blogging/tutorial generation to career development?" Tags="&lt;career&gt;&lt;blogs&gt;&lt;tutorial&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="3" />
  <row Id="26689" PostTypeId="2" ParentId="26596" CreationDate="2010-12-15T13:59:05.980" Score="3" ViewCount="" Body="&lt;p&gt;It certainly is possible to devise all kinds of intricate metrics to evaluate performance, but at the end of the day a significant part of your judgment has to rely on subjectivity and input from people who are close to the codebase.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, it is quite possible for some team to crank out internally hideous unmaintainable slop at a very fast rate, and this might even meet the required deadline and specification. But is the technical debt accrued from that kind of working style worse than if the team had churned out something robust and maintainable but slipped the deadline a few weeks? It depends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the purpose of the question is to resolve some type of productivity problem, I would say that &lt;strong&gt;what the manager actually does to facilitate the work of the team is as or more important than any measuring technique used to evaluate the team&lt;/strong&gt;. It is a two-way street. In other words, I am saying that metrics are fine but if you want more out of any team the ultimate question is whether or not the manager doing everything possible to ensure the team can be productive. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This goes far beyond writing a spec, finding a team, throwing the spec &quot;over the wall&quot; and clicking a stopwatch.&lt;/p&gt;&#xA;" OwnerUserId="9634" LastActivityDate="2010-12-15T13:59:05.980" CommentCount="1" />
  <row Id="26690" PostTypeId="2" ParentId="26682" CreationDate="2010-12-15T14:01:02.990" Score="5" ViewCount="" Body="&lt;p&gt;This is not something that is specific to programmers, but occurs in electronical communications in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The underscores are used to mean underlining, and the asterisks are ment to indicate an action.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;This is a _really_awesome_ feature. *clapping*&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-12-15T14:01:02.990" />
  <row Id="26691" PostTypeId="2" ParentId="26688" CreationDate="2010-12-15T14:02:06.747" Score="8" ViewCount="" Body="&lt;p&gt;Keeping a technical blog can be very helpful as it lets potential employers become familiar with your coding style and philosophy, but it's not a requirement. On the other hand, certain controversial positions may also put off potential employers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, it's probably best to keep a blog for its own sake and not just to further your career. If you're posting because you expect it to improve your chances of getting hired, that will show up in your posts.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastEditorUserId="5621" LastEditorDisplayName="" LastEditDate="2010-12-15T18:32:27.753" LastActivityDate="2010-12-15T18:32:27.753" />
  <row Id="26692" PostTypeId="2" ParentId="26688" CreationDate="2010-12-15T14:02:39.447" Score="11" ViewCount="" Body="&lt;p&gt;I find keeping a blog forces you to update frequently, which may or may not be a good thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On one hand, it might leech valuable time from the day.  On the other, it can grant you fresh perspective.  Forcing yourself to explain things in a way the outside world can understand can lead to you understanding your own code better.  It also might make you more productive, because you feel obligated to fill your blog posts with new content.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as tutorials go, I usually keep a text document on my desktop with a bunch of neat tips/tricks &lt;strong&gt;for myself&lt;/strong&gt; that I made or found on the Internet.&lt;/p&gt;&#xA;" OwnerUserId="8810" LastActivityDate="2010-12-15T14:02:39.447" CommentCount="1" />
  <row Id="26693" PostTypeId="2" ParentId="26688" CreationDate="2010-12-15T14:06:52.563" Score="30" ViewCount="" Body="&lt;p&gt;I find that it's not blogging per se that makes you a better developer, but rather it's the practice at explaining things to other people. When you write up a blog post, you generally are compelled to learn more about the subject you're talking about or at the very least to explain it coherently. If you can explain it coherently in a blog post, you can explain it coherently in person and thus your communication skills just got better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are better able to articulate your opinions and knowledge, which is a very helpful thing for career advancement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that, an up-to-date blog shows that you are active in software development and take time to learn and share knowledge with others. If you have a blog but you haven't updated it in a year, don't put it on your resume without at least resurrecting it with a regular series of posts. In terms of a direct effect on your hiring potential, having a blog might help increase your chances or lower them depending on the blog's quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the bottom line is, if you have something to say, go for it. If you don't, don't sweat it.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-15T14:06:52.563" CommentCount="1" />
  <row Id="26694" PostTypeId="2" ParentId="26688" CreationDate="2010-12-15T14:07:27.153" Score="6" ViewCount="" Body="&lt;p&gt;I find it's not so useful for the job scene (mind you I have nothing to back that up really).  But in terms of interacting with your community and your peers around the world having a blog is pretty darn valuable.  It's definitely aided in getting me getting my first book deal and being invited to speak at conferences etc, and that's despite my blog not even being really that good (to be blunt)! :)&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-15T14:07:27.153" />
  <row Id="26695" PostTypeId="2" ParentId="26682" CreationDate="2010-12-15T14:08:22.703" Score="4" ViewCount="" Body="&lt;p&gt;In short...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;*Earmuffs*&lt;/code&gt; usually denote actions, e.g. &quot;&lt;code&gt;Wow, that's pretty funny! *Laugh*&lt;/code&gt;&quot;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;_Underscores_&lt;/code&gt; usually denote underlining.  Used for emphasis.&lt;/li&gt;&#xA;&lt;li&gt;I've also seen &lt;code&gt;/slashes/&lt;/code&gt; used to either suggest &lt;em&gt;italicization&lt;/em&gt; or to refer to a 4chan board.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8810" LastEditorUserId="8810" LastEditorDisplayName="" LastEditDate="2010-12-15T14:17:43.567" LastActivityDate="2010-12-15T14:17:43.567" />
  <row Id="26696" PostTypeId="2" ParentId="8283" CreationDate="2010-12-15T14:11:01.653" Score="6" ViewCount="" Body="&lt;p&gt;My friend asked me to make him a website.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With C++.&lt;/p&gt;&#xA;" OwnerUserId="8810" LastActivityDate="2010-12-15T14:11:01.653" CommunityOwnedDate="2011-01-21T18:10:47.527" CommentCount="2" />
  <row Id="26697" PostTypeId="1" AcceptedAnswerId="26698" CreationDate="2010-12-15T14:29:37.000" Score="2" ViewCount="269" Body="&lt;p&gt;A countable noun is something you can attach a quantity to, for instance a cup, two cups, three cups.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A non-countable noun is something to which you can not attach a specific quantity without attaching another noun, for instance information.  For instance you can have information but you can't have two informations, at least not without adding a countable expression in front of them (for instance two pieces of information).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Is software a countable noun (i.e. &quot;a software&quot; is valid) or is it an uncountable noun (i.e. you should have &quot;a piece of software&quot;).&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This may or may not be about to be closed but I honestly can't think who other than programmers is better placed to judge this.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-15T14:40:53.110" ClosedDate="2010-12-15T14:53:38.093" Title="Is software a countable or an uncountable noun?" Tags="&lt;software&gt;&lt;grammar&gt;" AnswerCount="3" CommentCount="6" />
  <row Id="26698" PostTypeId="2" ParentId="26697" CreationDate="2010-12-15T14:35:21.813" Score="11" ViewCount="" Body="&lt;p&gt;I'd say uncountable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;one software, two software, just doesn't make sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where as several pieces of software ( where you are counting pieces) does.&lt;/p&gt;&#xA;" OwnerUserId="5148" LastActivityDate="2010-12-15T14:35:21.813" CommentCount="1" />
  <row Id="26699" PostTypeId="2" ParentId="26697" CreationDate="2010-12-15T14:36:04.030" Score="2" ViewCount="" Body="&lt;p&gt;Uncountable, like 'ware' and 'hardware'.&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-12-15T14:36:04.030" />
  <row Id="26700" PostTypeId="1" AcceptedAnswerId="26716" CreationDate="2010-12-15T14:36:08.367" Score="3" ViewCount="299" Body="&lt;p&gt;After a round of interviews earlier this year, which included some practical questions with access to a computer, I noticed that, at least for the applicants we were seeing, there was a high inverse correlation between quality of applicant and the explicit choice of Bing/IE as the stack for search/browsing the web. That is, a large number of applicants specifically searched for IE to use as a browser when browsing the web, and specifically used Bing as the search engine (even typing in Bing in the Google search box, before starting a search)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this just an outlier, a fluke, or is there some sort of information I can obtain from this observation? So far, my best candidates are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Yes, there is a high correlation between good programmers and choice of web browser/search engine&lt;/li&gt;&#xA;&lt;li&gt;There is some training program, or community, which advises using IE/Bing during interviews, and I just happened to run into a poor selection from that group&lt;/li&gt;&#xA;&lt;li&gt;Something else is going on, that I don't know about, but someone here might know.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So, to repeat, the question is: is there more than coincidence at work here, and, if there is, what's going on?&lt;/p&gt;&#xA;" OwnerUserId="4091" LastActivityDate="2010-12-15T17:08:31.750" Title="Is there a useful correlation between choice of web-browser/search engine and good quality programmers?" Tags="&lt;interview&gt;&lt;search-engine&gt;&lt;web-browser&gt;" AnswerCount="9" CommentCount="7" FavoriteCount="0" />
  <row Id="26701" PostTypeId="2" ParentId="26697" CreationDate="2010-12-15T14:40:53.110" Score="1" ViewCount="" Body="&lt;p&gt;Wiktionary says it's &lt;a href=&quot;http://en.wiktionary.org/wiki/software&quot; rel=&quot;nofollow&quot;&gt;uncountable&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software is an abstract idea, much like love or peace. You can't count love, but you can identify something else as &quot;love&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same applies to software. It is possible to identify or reject something as software.&lt;/p&gt;&#xA;" OwnerUserId="8140" LastActivityDate="2010-12-15T14:40:53.110" />
  <row Id="26702" PostTypeId="2" ParentId="26700" CreationDate="2010-12-15T14:43:22.827" Score="1" ViewCount="" Body="&lt;p&gt;It is a strange, but a very interesting question indeed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe there should be a correlation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good programmers strive for efficiency and quality. IE/Bing cannot provide those compared to Firefox/Google. If people don't care about those very basic things, tools in their work, chances are they won't care about their work or anything at all. And it is a known quality of a good programmer that he cares and has an own opinion of the things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is also possible that those programmers weren't web programmers. But even so, there should have seen &quot;the Internet&quot; in their practice since it's become a primary source of the information and knowledge. And then, they couldn't have missed Google and Firefox, Opera, Safari and Chrome.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-15T14:43:22.827" CommentCount="1" />
  <row Id="26703" PostTypeId="2" ParentId="26609" CreationDate="2010-12-15T14:44:49.940" Score="2" ViewCount="" Body="&lt;p&gt;a delegate is a reference to a specific object's method; it's like an I.O.U. for a function call.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-15T14:44:49.940" CommentCount="1" />
  <row Id="26704" PostTypeId="1" CreationDate="2010-12-15T14:49:16.430" Score="4" ViewCount="216" Body="&lt;p&gt;Most programmers enjoy listening to music while working, but not me. It hurts my concentration because I tend to pay attention to the music (even music without lyrics like pos-rock or classic), I just can't help it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a colleague in the next cubicle who sings along with whatever music he is listening in his headphones, and believe me, he is a really bad singer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not very loud and seems to not disturb other neighbours (most of them always wearing headphones), but it makes hard to concentrate in my programming tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've already politely asked him to stop this several times. Resorting to violence crosses my mind from time to time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I complain to HR/management or buy earplugs and forget the matter?&lt;/p&gt;&#xA;" OwnerUserId="10068" LastActivityDate="2010-12-15T15:03:07.037" ClosedDate="2010-12-15T15:07:00.350" Title="Singing dork at the neighbour cubicle" Tags="&lt;work-environment&gt;&lt;behavior&gt;" AnswerCount="4" CommentCount="4" />
  <row Id="26705" PostTypeId="2" ParentId="26656" CreationDate="2010-12-15T14:51:34.240" Score="2" ViewCount="" Body="&lt;p&gt;Here my reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;dynamic typing: Yes, it's the reason for many to prefer groovy. but static typing has it's advantages, i.e. in readability.&lt;/li&gt;&#xA;&lt;li&gt;performance: In my experience some groovy-applications are significantly slower than java-apps.&lt;/li&gt;&#xA;&lt;li&gt;PermGenSpace: We had problems with PermGenSpace-Errors using grails-webapps on Tomcat. Maybe less an Groovy and more a Grails-problem, but we develop webapps mostly.&lt;/li&gt;&#xA;&lt;li&gt;compatibility: Also an Grails-problem. We had difficulties to update an project to newer grails-versions. To setup a server with different apps, we had to go in the end with webapps with different Grails-versions.&lt;/li&gt;&#xA;&lt;li&gt;Years of experience with Java.&lt;/li&gt;&#xA;&lt;li&gt;Great tool-support for Java, lesser for groovy.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;OK, some of this is related to Grails. But developing webapps, Grails is important if you want to use Groovy.&lt;/p&gt;&#xA;" OwnerUserId="7654" LastActivityDate="2010-12-15T14:51:34.240" CommentCount="3" />
  <row Id="26706" PostTypeId="2" ParentId="26704" CreationDate="2010-12-15T14:52:08.187" Score="3" ViewCount="" Body="&lt;p&gt;Just keep reminding him.  Sounds like it's a habit your cubicle mate needs to unlearn while at the office.  That or request to move cubicles.&lt;/p&gt;&#xA;" OwnerUserId="838" LastActivityDate="2010-12-15T14:52:08.187" />
  <row Id="26707" PostTypeId="2" ParentId="26704" CreationDate="2010-12-15T14:52:25.737" Score="1" ViewCount="" Body="&lt;p&gt;Earplugs won't help. Headphones with active noise-canceling won't help either - they all let human voice through.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Talk to the management, but do not complain but explain that you need a quiet environment to concentrate&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Ask for a home-office option&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Change the job&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Advice your children to stay clear of IT. Lawyers, for instance, get private offices and their knowledge does not get devalued in 1-2 years.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-15T14:52:25.737" CommentCount="1" />
  <row Id="26708" PostTypeId="1" AcceptedAnswerId="26719" CreationDate="2010-12-15T14:57:10.570" Score="3" ViewCount="175" Body="&lt;ol&gt;&#xA;&lt;li&gt;How to explain DependencyProperty using real world analogy?&lt;/li&gt;&#xA;&lt;li&gt;Why is it needed?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T16:13:10.843" LastActivityDate="2010-12-26T16:13:10.843" Title="How to explain DependencyProperty using real world analogy?" Tags="&lt;c#&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="26709" PostTypeId="2" ParentId="26700" CreationDate="2010-12-15T14:57:23.943" Score="7" ViewCount="" Body="&lt;p&gt;People who use computers more are more likely to have encountered more than just the default browser, and therefore less likely to settle on IE as their favourite.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bear in mind as JoshL says below in the comments:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;you can't infer from this relationship that anyone with IE is a sucky programmer&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="5402" LastEditorUserId="5402" LastEditorDisplayName="" LastEditDate="2010-12-15T16:09:45.390" LastActivityDate="2010-12-15T16:09:45.390" CommentCount="6" />
  <row Id="26710" PostTypeId="2" ParentId="26700" CreationDate="2010-12-15T15:00:10.680" Score="0" ViewCount="" Body="&lt;p&gt;It's a matter of availability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't care about computers, you're going to go to a store that sells computers and buy a Windows box.  Once you've got it, you'll use IE because it's there (when I boot into W7 on my laptop, IE has a favored position on the task bar even though I rarely use it), and Bing because it's what IE uses by default.  Also, you're not going to be interested in alternative ways to do things, and will try to use what you're used to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do care about your computing environment, you will get a computer with your favored OS.  You will experiment with browsers until you find what you like, and the same with search engines.  There's no guarantee that you won't decide you like Windows, IE, and Bing, but the chance is much higher that you'll use Mac or Linux, Firefox or Safari or Opera or Chrome, or Google.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When looking for a programmer, you generally want one who likes computers and is willing to try new things.  You also are likely to interview people who you really wouldn't spend time on if you knew them better, but that's what the interview's for.  They will want to use IE and Bing disproportionately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also possible that good programmers prefer the alternatives to IE and Bing in general, but that's not necessary to explain your observations.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-15T15:00:10.680" />
  <row Id="26711" PostTypeId="2" ParentId="26682" CreationDate="2010-12-15T15:02:23.543" Score="1" ViewCount="" Body="&lt;p&gt;It is just formatting for plain-text, very simple markup:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;*something*&lt;/code&gt; smeans that text should be &lt;strong&gt;bold&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;_something_&lt;/code&gt; means underlined.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;/something/&lt;/code&gt; is &lt;em&gt;italic&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And yes, the stack exchange formatter messes them up and makes &lt;em&gt;bold&lt;/em&gt; and &lt;em&gt;underscored&lt;/em&gt; &lt;strong&gt;italic&lt;/strong&gt;, and /italic/ is &lt;em&gt;nothing&lt;/em&gt;. :)&lt;/p&gt;&#xA;" OwnerUserId="3666" LastEditorUserId="3666" LastEditorDisplayName="" LastEditDate="2010-12-15T15:14:13.123" LastActivityDate="2010-12-15T15:14:13.123" CommentCount="1" />
  <row Id="26712" PostTypeId="2" ParentId="26704" CreationDate="2010-12-15T15:02:47.757" Score="0" ViewCount="" Body="&lt;p&gt;Definitely bring it up to the management because keeping you and others productive and happy is THEIR JOB. &#xA;I know how you feel because I've had my share of &quot;singing dorks&quot; and physical violence does indeed come to mind which only proves how irritating these people can be. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask the management to either silence the &quot;singer&quot; or which might be easier, to move your desk elsewhere.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-15T15:02:47.757" />
  <row Id="26713" PostTypeId="2" ParentId="26704" CreationDate="2010-12-15T15:03:07.037" Score="3" ViewCount="" Body="&lt;p&gt;Don't talk to you superior or HR.  That is the sissy pants route.  It will only create animosity between him and you and your work environment will suffer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead, record a few minutes of him singing.  Later on, when you are casually engaged with him talking about whatnots and whosywits by the coolor, bring up how his singing interrupts you.  Make sure to do it as nicely as possible.  Mention how you don't wear ear phones so you can hear it.  And this is how it sounds, press play.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The embarrassment of hearing his own wretched voice should be enough to make him quit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember, do it nicely!  Don't act like a 4 year old and tell on him.  Don't act like a 6 year old and be mean to him.  &lt;/p&gt;&#xA;" OwnerUserId="9124" LastActivityDate="2010-12-15T15:03:07.037" CommentCount="4" />
  <row Id="26714" PostTypeId="2" ParentId="26643" CreationDate="2010-12-15T15:03:37.793" Score="1" ViewCount="" Body="&lt;p&gt;Although I wouldn't suggest using a stylus as a replacement for a mouse in general (as others have pointed out, it's great for extended drawing/graphics work, but not very usable for normal mousing), I recently replaced my old tablet with a wacom Bamboo Fun, which has a multi-touch surface built into the tablet surface, and I'd say that it, or a tablet with similar features, is perfectly usable as a mouse replacement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It basically acts like a big laptop multi-touch trackpad, although being larger I find it to actually be quite a bit more comfortable to use, and you can actually use both hands for multi-touch gestures.&lt;/p&gt;&#xA;" OwnerUserId="7042" LastActivityDate="2010-12-15T15:03:37.793" />
  <row Id="26716" PostTypeId="2" ParentId="26700" CreationDate="2010-12-15T15:08:24.687" Score="10" ViewCount="" Body="&lt;p&gt;Theorhetically there should be about as much correlation as a person's blood type and their temperament as a person.  The &lt;a href=&quot;http://en.wikipedia.org/wiki/Blood_types_in_Japanese_culture&quot; rel=&quot;nofollow&quot;&gt;blood type theory&lt;/a&gt; is pretty common in many Asian countries, to the point where that information is in the bio for important people.  It's the same type of unrelated association that brought that theory into being.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will probably see a higher incidence of IE/Bing usage among .NET developers, particularly if they've gone through any type of training.  Microsoft is very good at promoting its own products through every channel it can.  I used to believe there was an inverse proportion to a programmer's quality and the number of certificates they had, but I met a few certified Sun, Microsoft, etc. developers who were really good.  It's luck of the draw there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There may be some psychological effects going on here as well.  People who are content with the status quo will accept anything that is set before them the first time as normal.  They will feel strange and out of place by attempting anything that is not the default behavior, which would explain people actively seeking out IE and Bing--consequently leading to your observation.  It's this type of person that will not be a &lt;em&gt;good&lt;/em&gt; programmer.  They won't be able to think in ways that will improve long standing problems.  The same type of person might instinctively reach for Apple Safari if they grew up on a Mac.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, once you get outside the defaults, there are a miriad of reasons why people choose the browsers they do.  For example, for day to day browsing I choose Google Chrome due to its good security record and its very fast response.  However, for web development I choose Firefox because the dev plugins on that browser are most mature and helpful.  I'll check in IE and Chrome to ensure I'm not missing anything (covering the three most common rendering systems [Chrome and Safari share the same rendering library]).  These days, the story is getting better on both Chrome and IE 8 and up--but still not as good as Firefox.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the most useful course of action would be to ask the person why they chose the browser/search engine they did.  If the answer is along the lines of &quot;I've always used it&quot; or &quot;I don't know&quot;, there is a possibility that they might be the status quo kind of person.  Further questions will weed that out.  If they give you a reasonable explanation, it shows they are thinking about the choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Who knows, maybe there is some benefit to the IE/Bing combination we aren't aware of.  I personally doubt it, but there just may be.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-15T15:08:24.687" CommentCount="3" />
  <row Id="26717" PostTypeId="2" ParentId="26708" CreationDate="2010-12-15T15:09:17.187" Score="1" ViewCount="" Body="&lt;p&gt;From an answer to my &lt;a href=&quot;http://stackoverflow.com/questions/3727130/misunderstanding-databinding-fundamentals-and-datacontexts-long-story&quot;&gt;post on StackOverflow&lt;/a&gt; by Kent Boogart:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;In order for a property to be the target of a binding, that property must be a dependency property. WPF (and Silverlight) use dependency properties as a means for tracking changes, supporting value precedence (for animations and the like), and a bunch of other useful things. Note that I said &quot;target&quot;. The source of a binding can be any old object that supports change notification.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This small tidbit of knowledge has really helped me out.  So use it if you want to databind to properties in your custom UserControls.&lt;/p&gt;&#xA;" OwnerUserId="10048" LastActivityDate="2010-12-15T15:09:17.187" />
  <row Id="26718" PostTypeId="2" ParentId="26700" CreationDate="2010-12-15T15:10:23.227" Score="1" ViewCount="" Body="&lt;p&gt;Correlation, maybe.  But you have to dig still.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What if the candidate worked for the past 6 years at two different jobs.  Both of which locked down the environment and provided only IE as the available browser?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, you will get used to it and start to prefer it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But personally, there are a few things that will start to drop you to a thumbs down in my book.  The tools you use certainly indicate your experience as well as the lack of use of tools.  If you haven't tried and have an opinion on every free IDE (as one example) out there, then hit the road.&lt;/p&gt;&#xA;" OwnerUserId="9124" LastActivityDate="2010-12-15T15:10:23.227" CommentCount="3" />
  <row Id="26719" PostTypeId="2" ParentId="26708" CreationDate="2010-12-15T15:12:54.980" Score="3" ViewCount="" Body="&lt;p&gt;I like Dave's answer, but I will say that this is how I usually think about DependencyProperties, at least with Silverlight (I think WPF is similar):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you want to create something that can be &lt;em&gt;target&lt;/em&gt; of a binding, you want to create a class that implements INotifyPropertyChanged.&lt;/li&gt;&#xA;&lt;li&gt;If you want to create something that you can define in XAML and be bound &lt;em&gt;to&lt;/em&gt; something, you want to create a derivative of DependencyObject with DependencyProperties.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Gaining that understanding was a turning point in my ability to design things in Silverlight appropriately.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-12-15T15:12:54.980" CommentCount="2" />
  <row Id="26720" PostTypeId="2" ParentId="26609" CreationDate="2010-12-15T15:16:22.920" Score="3" ViewCount="" Body="&lt;p&gt;Well, if they have a background in C/C++, the easiest way to explain it is probably to relate them to &lt;a href=&quot;http://en.wikipedia.org/wiki/Function_pointer&quot; rel=&quot;nofollow&quot;&gt;function pointers&lt;/a&gt;.  That's how I originally thought about them when I transitioned to .NET.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-12-15T15:16:22.920" CommentCount="2" />
  <row Id="26721" PostTypeId="2" ParentId="26548" CreationDate="2010-12-15T15:16:55.400" Score="1" ViewCount="" Body="&lt;p&gt;If you provide no license, then all restrictions come from copyright law.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IANAL, but this is how I understand US law.  If you want legal advice you can rely on, find somebody competent to give it in the jurisdiction you're interested in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is possible for the copyright holder or licensee (if permitted by the license) to distribute copies.  Therefore, if I have code with no license, put it on a web site, and say &quot;Feel free to download this&quot;, you may download it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once downloaded legitimately, you have a legal copy.  You can make one backup copy, and use it as you like.  You can run it, since US copyright law allows all copies necessary to run legally acquired software.  You can, I believe, modify it for your own use (I can modify books I buy, after all).  You can transfer your copy to another person, provided you don't keep a copy on your own.  You can't legally run your copy on more than one machine at a time (although &quot;machine&quot; may be legally fuzzy here).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know if you could keep downloading copies and selling them; ask a lawyer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You would also have all &quot;fair use&quot; rights, but those are fairly limited, and apply on a case-by-case basis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't want people to use your software, don't offer it to them.  If you do want them to, come up with a license.  An OSI-certified Open Source license has the advantage that it's been vetted for problems, and there's a general understanding of what it means.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-15T15:16:55.400" />
  <row Id="26722" PostTypeId="2" ParentId="8283" CreationDate="2010-12-15T15:34:02.413" Score="6" ViewCount="" Body="&lt;p&gt;Once I was asked by an old, nearly senile man to make a program to win a lottery.&lt;br&gt;&#xA;I was like...&lt;br&gt;&#xA;&quot;Oh... (hahhahahahahahahahaha) sorry, it's just allergies, but go on...&quot;     &lt;/p&gt;&#xA;&#xA;&lt;p&gt;He showed me his &quot;theories&quot; he came up with after analyzing 20 years worth of records and that if I just made a program that followed his rules, he would pay me.&lt;br&gt;&#xA;I made the program, gave it to him, showed him it worked according to his rules, got paid, wished him good luck and told him if he ever bet too big and lost too much money, it's not my fault in any way. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;:X &lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-15T15:34:02.413" CommunityOwnedDate="2011-01-21T18:10:47.527" CommentCount="3" />
  <row Id="26723" PostTypeId="1" AcceptedAnswerId="26726" CreationDate="2010-12-15T15:41:46.137" Score="1" ViewCount="199" Body="&lt;p&gt;Unsure if I'm asking this in the right place but here goes:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Security by Obscurity&lt;/strong&gt; is the process of making data so &lt;em&gt;obscure&lt;/em&gt; it therefore becomes &lt;em&gt;secure&lt;/em&gt; as no one can read/understand it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is what is the &quot;term&quot; for deleting data in order to make sure it is secure (i.e. deleting old e-mails)? I understand deleting could be argued as obscuring the data, but is this the correct term?&lt;/p&gt;&#xA;" OwnerUserId="4630" LastActivityDate="2010-12-15T23:32:23.077" Title="Security by obscurity - whats the equivalent for deleting data?" Tags="&lt;security&gt;&lt;jargon&gt;&lt;buzzwords&gt;" AnswerCount="4" CommentCount="6" FavoriteCount="0" />
  <row Id="26724" PostTypeId="2" ParentId="8283" CreationDate="2010-12-15T15:44:33.653" Score="2" ViewCount="" Body="&lt;p&gt;8-10 years ago, we had to write &quot;a web app&quot; that did what our desktop product did in about 2 weeks. The website turned out to be almost all client-side Javascript scripting ActiveX to replicated the desktop product. The only server-side processing involved generating options for client consumption.&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-12-15T15:44:33.653" CommunityOwnedDate="2011-01-21T18:10:47.527" />
  <row Id="26725" PostTypeId="2" ParentId="26548" CreationDate="2010-12-15T15:44:55.240" Score="1" ViewCount="" Body="&lt;p&gt;I think that the legal situation is sufficiently uncertain that even a practicing lawyer couldn't give you a clear cut answer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the one hand, you as copyright holder have not explicitly granted permission to anyone to make copies.  On the other hand, it &lt;em&gt;could&lt;/em&gt; be construed that people have an implicit right to copy because you uploaded to github.  And there are various legal defenses that &lt;em&gt;might&lt;/em&gt; apply to someone that you (hypothetically) sued; e.g. &lt;a href=&quot;http://en.wikipedia.org/wiki/Laches_%28equity%29&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;laches&lt;/em&gt;&lt;/a&gt; or &lt;a href=&quot;http://en.wikipedia.org/wiki/Estoppel&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;estoppel&lt;/em&gt;&lt;/a&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either way, you are not helping anyone by not putting a license on your code.  My advice is to do the right thing and create a new release with a reputable open source license.  And if you care about protecting your IP rights on the software going forward, talk to a copyright lawyer.&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-12-16T07:36:23.323" LastActivityDate="2010-12-16T07:36:23.323" />
  <row Id="26726" PostTypeId="2" ParentId="26723" CreationDate="2010-12-15T15:46:31.750" Score="9" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Security by Obscurity is the process of making data so obscure it therefore becomes secure as no one can read/understand it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Security by Obscurity means something else. It means that your security is based on the fact that you managed to hide the encryption algorithm from the prying eyes. If it becomes public, security is gone. You should not rely on keeping the algorithms hidden, but keep your specific encryption key secret.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Deleting the data is probably the best way to make it secure. Every encryption method is potentially vulnerable. If there is nothing to encrypt, then it's perfect. No data, no problem.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;My question is what is the &quot;term&quot; for deleting data in order to make sure it is secure&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;There isn't one. But there is a strategy known as a &lt;em&gt;secure wipe&lt;/em&gt; of the data. It means that not only you delete the files from the allocation table, but also wipe out the disk surface - by writing there zeros or something else, preferably several times over.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is even a standard on how to do this properly for government organizations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the US Department of Defense, &lt;a href=&quot;http://www.zdelete.com/dod.htm&quot; rel=&quot;nofollow&quot;&gt;Standard DoD 5220.22-M / NISPOM 8-306&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;US Department of Defense in the clearing and sanitizing standard DoD 5220.22-M recommends the approach &quot;Overwrite all addressable locations with a character, its complement, then a random character and verify&quot; (see table with comments) for clearing and sanitizing information on a writable media.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Data_remanence&quot; rel=&quot;nofollow&quot;&gt;Feasibility of recovering overwritten data&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;As of November 2007, the United States Department of Defense considers overwriting acceptable for clearing magnetic media within the same security area/zone, but not as a sanitization method. Only degaussing or physical destruction is acceptable for the latter.[4]&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-15T15:54:17.690" LastActivityDate="2010-12-15T15:54:17.690" CommentCount="2" />
  <row Id="26727" PostTypeId="2" ParentId="26639" CreationDate="2010-12-15T15:47:24.207" Score="2" ViewCount="" Body="&lt;p&gt;If you can pursuade your boss to pay for a trip to Belgium you can always visit &lt;a href=&quot;http://devoxx.com&quot; rel=&quot;nofollow&quot;&gt;Devoxx (former Javapolis)&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10128" LastActivityDate="2010-12-15T15:47:24.207" CommentCount="1" />
  <row Id="26728" PostTypeId="2" ParentId="8283" CreationDate="2010-12-15T15:50:06.120" Score="4" ViewCount="" Body="&lt;p&gt;Once I was tasked with creating a 1:1 translation of Access VBA code to PL/SQL. Things went relatively well, until I found out that deep within several nested IFs and LOOPs of a procedure, it would open a yes-no-dialog and ask for another decision by the user. The best I could offer, and eventually implemented, was to add another parameter to that procedure; if it ran into that branch, it would rollback, return a special status that instructs the GUI program to ask the user, and then restart the procedure with an extra parameter.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-15T15:50:06.120" CommunityOwnedDate="2011-01-21T18:10:47.527" CommentCount="1" />
  <row Id="26729" PostTypeId="2" ParentId="26669" CreationDate="2010-12-15T15:52:06.357" Score="1" ViewCount="" Body="&lt;p&gt;Programming is about organizing the list of instructions to perform various tasks through automated systems usually though there are other interpretations.  This can mean writing an application on one machine, or building a system that spans many machines because there are so many moving pieces like an ERP or CRM that can be rather bulky in some cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the other interpretations, think about what programs a marketing person may create or recreational therapist.  This is without getting into government programs, TV programs or other constructs of services that people may call a program.  Some people may think going to boot camp is going through a program. There are also &quot;12 step&quot; programs like the various Anonymous programs for alcoholics, narcotics, over-eaters, etc.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-15T15:52:06.357" />
  <row Id="26730" PostTypeId="1" CreationDate="2010-12-15T15:55:37.067" Score="16" ViewCount="607" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicates:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/26002/road-trip-listening-material&quot;&gt;Road trip listening material&lt;/a&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/282/what-are-the-best-podcasts&quot;&gt;What are the best podcasts&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I'm going to be moving soon to a job that, in a first for me, contains a serious commute.  I'm going to have about 40 min to myself every morning and every evening in the car.  I've heard stories of people who have put that time to very good use;  a cousin of mine taught herself German, for example.  The question is:  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the best way to make use of approximately 80 minutes a day to grow your skills as a software developer?  It must be something suited to the commute;  that means no looking and hands-free.  Be as specific as possible;  if its listening to podcasts, WHICH podcasts?  Why?  Lecture series?  From where?  Audiobooks?  What are good sources?  etc.&lt;/p&gt;&#xA;" OwnerUserId="4265" LastEditorUserId="4265" LastEditorDisplayName="" LastEditDate="2010-12-15T18:04:46.917" LastActivityDate="2010-12-17T10:13:02.467" ClosedDate="2010-12-17T12:43:27.217" Title="Optimizing your Daily Commute" Tags="&lt;skills&gt;&lt;training&gt;" AnswerCount="9" CommentCount="17" FavoriteCount="6" />
  <row Id="26731" PostTypeId="2" ParentId="26642" CreationDate="2010-12-15T15:56:06.900" Score="2" ViewCount="" Body="&lt;p&gt;I agree that you should only list a personal project on your CV if it is something significant, publicly available, and is being used by other people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, once you actually get an interview, it makes perfect sense to talk about some of your personal projects.  For instance, I was once asked this question on an interview: &quot;Tell us about a design that you've come up with, that you are especially proud of.&quot;  If you have a personal project with a particularly clever design, that this would be the time to mention it.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-12-15T15:56:06.900" />
  <row Id="26732" PostTypeId="2" ParentId="26723" CreationDate="2010-12-15T15:56:13.117" Score="2" ViewCount="" Body="&lt;p&gt;Personally I'd use the phrase &quot;shredding&quot;, though this would imply a secure delete where the data isn't just deleted but overwritten, potentially multiple times using a range of patterns to ensure it can't be recovered again.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-15T15:56:13.117" />
  <row Id="26733" PostTypeId="2" ParentId="26730" CreationDate="2010-12-15T16:03:01.943" Score="12" ViewCount="" Body="&lt;p&gt;Any activity which would anyhow improve your programming skills, would require some of your mental processing power. And this will result in your loss of attention on the road. The best you don't try anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ah yes, and hands-free are forbidden in some countries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But! You can find a coworker that drives the same way. You'll be able to cut your costs double and one of you will be completely free to do whatever he wants (almost).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SAP employees in Germany for instance take active use of this option to save on costs and car wear.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-15T16:03:01.943" CommentCount="6" />
  <row Id="26734" PostTypeId="2" ParentId="19203" CreationDate="2010-12-15T16:07:14.360" Score="0" ViewCount="" Body="&lt;p&gt;I think the actual benefits are more political than technical. DI is simply an alternative to the &lt;em&gt;Service Locator&lt;/em&gt; pattern, nothing more. By itself, it does not make it easier to follow principles like SRP or OCP, or to decouple layers. Other respondents here are confusing different concepts and techniques, IMO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can achieve the same goals with respect to high cohesion and low coupling by using Service Locators, or by simply instantiating dependencies directly whenever applicable (which is most of the time).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I know many will disagree with this opinion. I will be glad to discuss concrete examples.&lt;/p&gt;&#xA;" OwnerUserId="10170" LastActivityDate="2010-12-15T16:07:14.360" CommentCount="2" />
  <row Id="26735" PostTypeId="2" ParentId="26730" CreationDate="2010-12-15T16:10:40.850" Score="14" ViewCount="" Body="&lt;p&gt;@GWL: Relax mate, you dont have to force every waking moment of your life to improve yourself as a programmer. Listen to music that can be relaxing :-) If you insist you might download a audio version of Google Tech Talks from youtube or Videos on Yahoo.developer to hear along the way.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-12-15T16:10:40.850" CommentCount="8" />
  <row Id="26736" PostTypeId="2" ParentId="26673" CreationDate="2010-12-15T16:11:25.933" Score="0" ViewCount="" Body="&lt;p&gt;The key is what kind of development methodology does he have around him to shield him to some degree?  For example, in Scrum there is the idea that what work will be done doesn't change during the sprint usually.  Thus there is some rules about what is going to be done and what may not be done right away.  The other question is to what extent does management support his wanting to not be in a support rut?  This is could also be important as an apathetic management can be a bit of a death knell for your friend's project.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-15T16:11:25.933" />
  <row Id="26737" PostTypeId="2" ParentId="15107" CreationDate="2010-12-15T16:14:37.490" Score="1" ViewCount="" Body="&lt;p&gt;The risk in staying in testing for too long is creating the perception that is all you are qualified for. Like it or not, and I certainly don't, too many companies are looking for exact fits with their hires (there was an NPR story on this a couple of weeks ago, but I can't find the link) and aren't willing to pick candidates with potential and train them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you want into development, do it at the earliest opportunity. If you keep going up the testing ladder, eventually you'll find yourself with a set of golden handcuffs that make it impractical or irresponsible to take a pay cut to move to development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, do what you want now, not later.&lt;/p&gt;&#xA;" OwnerUserId="293" LastActivityDate="2010-12-15T16:14:37.490" />
  <row Id="26738" PostTypeId="2" ParentId="26673" CreationDate="2010-12-15T16:25:24.783" Score="8" ViewCount="" Body="&lt;p&gt;Make someone else take the calls, and have the line change from&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;We'll get to that right away.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;to&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Very good suggestion. I'll create a feature request to begin work on it as soon as possible. If you'd like to follow the progress on your request, you can track it here: [link to case tracker ticket]. In the future, you can also submit requests for futures in the same way as I am here: [link to case tracker]&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's probably the simplest and most effective way to do it in my opinion. The last bit tries to reduce the stress on this person answering the calls over time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem you're seeing with the current 'priority' system is that &lt;strong&gt;when everything is a priority, nothing is a priority&lt;/strong&gt;. For that, your friend desperately needs to heed the advice of @Larry Coleman - people separate from development that manage change requests. Ideally your friend shouldn't even know about a feature request, until that separate group agreed that it should be prioritized for work. That could even be this new person who's answering the calls now that prioritizes them - as long as they understand the business, and understand the development.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-15T16:25:24.783" CommentCount="1" />
  <row Id="26739" PostTypeId="2" ParentId="26669" CreationDate="2010-12-15T16:28:52.150" Score="1" ViewCount="" Body="&lt;p&gt;A love of solving problems, trying stuff out and exploring or telescoping to see what an API, language, system or tool can do. The joy of seeing stuff work. The awareness of the virtually limitless possibilities that I've not yet had time to try and an ever increasing list of stuff to take a shot at. &lt;/p&gt;&#xA;" OwnerUserId="6630" LastActivityDate="2010-12-15T16:28:52.150" />
  <row Id="26740" PostTypeId="2" ParentId="26700" CreationDate="2010-12-15T16:31:12.867" Score="-3" ViewCount="" Body="&lt;p&gt;If he is still using IE 6 he is a crappy developer. End of Story. &lt;/p&gt;&#xA;" OwnerUserId="7748" LastActivityDate="2010-12-15T16:31:12.867" />
  <row Id="26741" PostTypeId="2" ParentId="26669" CreationDate="2010-12-15T16:33:22.843" Score="0" ViewCount="" Body="&lt;p&gt;Solving problems in a way that I enjoy.&lt;/p&gt;&#xA;" OwnerUserId="9470" LastActivityDate="2010-12-15T16:33:22.843" />
  <row Id="26742" PostTypeId="2" ParentId="26650" CreationDate="2010-12-15T16:34:52.233" Score="5" ViewCount="" Body="&lt;p&gt;There are two approaches to building ASP.net web applications: WebForms and MVC. If you are allowed any discretion at all in which to choose, let me say that you should stay the &lt;em&gt;expletive&lt;/em&gt; away from WebForms at all cost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn the MVC stuff, it's faster, more flexible, and not bogged down by ViewState and naming problems. Go here: &lt;a href=&quot;http://www.asp.net/mvc&quot; rel=&quot;nofollow&quot;&gt;Microsoft's MVC Site&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for C# itself, the language and framework can get pretty deep. I'd look at these &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa288436%28VS.71%29.aspx&quot; rel=&quot;nofollow&quot;&gt;C# Examples and Tutorials&lt;/a&gt; from the mothership to get going.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And finally, since it is unlikely that you'll need to do something that hasn't been done before (most of us are in this boat), &lt;a href=&quot;http://1code.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;The Microsoft All-In-One Code Framework&lt;/a&gt; is a truly awesome resource that has code samples that cover virtually anything you need to do in .Net. It's an underutilized resource, IMO and a treasure trove of time-savings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="293" LastActivityDate="2010-12-15T16:34:52.233" CommentCount="1" />
  <row Id="26743" PostTypeId="2" ParentId="26700" CreationDate="2010-12-15T16:36:10.327" Score="7" ViewCount="" Body="&lt;p&gt;You're trying to make an argument of the form:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;p -&gt; q &lt;/p&gt;&#xA;&#xA;&lt;p&gt;q therefore p&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ie: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;if 'they were bad programmers' (p) then 'they used IE' (q)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;someone uses IE (q) therefore they are a bad programmer (p)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is &lt;a href=&quot;http://en.wikipedia.org/wiki/Affirming_the_consequent&quot; rel=&quot;nofollow&quot;&gt;affirming the consequent&lt;/a&gt;. It's a logical fallacy, and it's a ridiculous proposal in the first place. You are not your browser. There's nothing to be obtained from this observation other than the fact that you had a bunch of bad candidates and have to better your phone screen process.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-15T16:36:10.327" CommentCount="2" />
  <row Id="26744" PostTypeId="2" ParentId="26700" CreationDate="2010-12-15T16:45:12.073" Score="0" ViewCount="" Body="&lt;p&gt;I suppose I can put up my own experience and let others infer the relationship.  I &lt;em&gt;like&lt;/em&gt; to think I'm a good developer.  And here are the browsers installed on my system:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;IE 9 Beta (32 and 64 bit)&lt;/li&gt;&#xA;&lt;li&gt;Chrome Dev. 9.0&lt;/li&gt;&#xA;&lt;li&gt;Firefox Minefield 4.08pre (64 bit)&lt;/li&gt;&#xA;&lt;li&gt;Firefox 3.6.13 (32 bit)&lt;/li&gt;&#xA;&lt;li&gt;Opera 10.63&lt;/li&gt;&#xA;&lt;li&gt;Safari 5.03&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This is because I care about web standards and want my development to look good and work proper on as many platforms as I can muster.  All being told, Chrome is my current browsing favorite due to its top-shelf performance on JavaScript-heavy sites and decent library of add-ons now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, edited to add: I will set my default search engine to Google in every case.&lt;/p&gt;&#xA;" OwnerUserId="987" LastEditorUserId="987" LastEditorDisplayName="" LastEditDate="2010-12-15T16:58:41.347" LastActivityDate="2010-12-15T16:58:41.347" />
  <row Id="26745" PostTypeId="2" ParentId="15107" CreationDate="2010-12-15T16:47:45.700" Score="0" ViewCount="" Body="&lt;p&gt;The answer lies in how you have handled your testing job itself. Did you pay attention to various configurations, did you write scripts, macros or some logical code to optimize testing or make it run on different environments. How did you evaluate, test, pass or fail the requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have done grunt work of requirements and manual testing, then being a Business Analyst would be a the direction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the focus is configuration, testing with scripts, taking a peek into the Database, then the logical step would be programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to understand that ability to read the code is necessary but not sufficient condition for becoming a coder, having said that you will get a hand of it after enough practice.&lt;/p&gt;&#xA;" OwnerUserId="10176" LastActivityDate="2010-12-15T16:47:45.700" />
  <row Id="26747" PostTypeId="1" AcceptedAnswerId="26759" CreationDate="2010-12-15T16:53:09.960" Score="11" ViewCount="411" Body="&lt;p&gt;As practicing (as much as I can at least) &quot;egoless programming&quot;, I'm focused on solving problems whoever wrote the code related (if that person don't make dangerous code) and I like to understand the problem fully to be sure to solve the source of this problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, when someone point my code to show an error, I often try to remember what was my mindset while writing the defect code and I try to explain it to the guy pointing the error to make clear what was the error source (for example when some names are badly choosen, you might use them in a way they were not intended too and with apparent success...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I do this by reflex and most of my coworkers does understand this reflex. But I also worked in companies where coworkers were in a mentality of blaming the people that made the identified problems, with or without humour (for me it have the same not-sane effect anyway).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this kind of environnement, explaining why you got to write wrong code makes others think that you're trying to build an excuse. I remarked that most non-technical people (or non domain-expert, not sure, it's only personal experience) also react exactly like that when you try to explain why you did something wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, when dealing with this kind of people/environnement, how do you manage to explain the real source of the error without looking like &quot;making an excuse&quot;? (and is it even worth trying to explain?)&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-12-16T05:27:46.653" Title="How do you explain the source of an identifed problem without making it an &quot;excuse&quot;?" Tags="&lt;communication&gt;&lt;non-programmers&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="1" />
  <row Id="26748" PostTypeId="2" ParentId="26730" CreationDate="2010-12-15T16:53:38.037" Score="3" ViewCount="" Body="&lt;p&gt;If you are in an active commute, which is that you are behind the steering wheel, then podcasts and audiobooks are your friends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generic Programming/ Tech:&#xA;&lt;a href=&quot;http://thisdeveloperslife.com/&quot; rel=&quot;nofollow&quot;&gt;http://thisdeveloperslife.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;DotNet&lt;br&gt;&#xA;&lt;a href=&quot;http://www.dotnetrocks.com/&quot; rel=&quot;nofollow&quot;&gt;Dotnetrocks&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10176" LastEditorUserId="1512" LastEditorDisplayName="" LastEditDate="2010-12-15T21:20:44.420" LastActivityDate="2010-12-15T21:20:44.420" />
  <row Id="26749" PostTypeId="2" ParentId="26747" CreationDate="2010-12-15T17:00:31.930" Score="0" ViewCount="" Body="&lt;p&gt;In many respects I don't think you can avoid this conflict.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Explaining the rationale as to how you arrived at whatever point you are at is important in understanding the &quot;big picture&quot; around the issue in many cases, but there will always be people that see this as an excuse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Selecting who you have the conversation with is the closest I have ever gotten to managing this issue.  In general that boils down to don't discuss it with the business folks and only discuss it with people that are going to be involved with the technical solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even that approach fails at times because today's wrong is often linked to a previous requirement and you get drug down that path anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general I try not to worry about it too much as if people are going to pick that as something to raise as an issue about you they are likely sufficiently motivated they will find another issue as soon as you can &quot;correct&quot; this one.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-12-15T17:00:31.930" />
  <row Id="26750" PostTypeId="2" ParentId="26747" CreationDate="2010-12-15T17:00:49.183" Score="0" ViewCount="" Body="&lt;p&gt;Take responsibility for it. Steven Covey phrases it as &lt;em&gt;response-ability:&lt;/em&gt; your ability to respond. Say what you will do in the future to prevent doing something like that again, and follow through. Overall you should be concerned about your long-term reputation, and not the immediate moment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you own up to mistakes, people will appreciate it and respect you more. It will give you more credibility when something isn't an error (or at least not your own) and &lt;em&gt;does&lt;/em&gt; need explanation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, even if not delivered well, take it as constructive feedback and thank whoever pointed out the problem. If you are unsure what they say is wrong with your code, ask follow up questions.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-15T17:00:49.183" CommentCount="2" />
  <row Id="26751" PostTypeId="2" ParentId="26650" CreationDate="2010-12-15T17:01:50.513" Score="2" ViewCount="" Body="&lt;p&gt;If you want to learn building Web Applications in C#, the best way would be screencasts. www.asp.net does have a few of them, but for quality understanding, i like www.tekpub.com.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are good number of screencasts for asp.net4, asp.net mvc2 which are the two ways of developing web appliations in .net. If you can try asp.net mvc2 because it gives more structure to the development process as well as certain amount of testability using TDD techniques.&lt;/p&gt;&#xA;" OwnerUserId="10176" LastActivityDate="2010-12-15T17:01:50.513" CommentCount="1" />
  <row Id="26752" PostTypeId="2" ParentId="26747" CreationDate="2010-12-15T17:02:06.663" Score="3" ViewCount="" Body="&lt;p&gt;I feel like the best option would be to just admit the problem and promise to fix it quickly. People in general aren't interested why and how you made a mistake, the only exception being your manager for he needs to continuously assess you professional fit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for blaming the one who made a mistake, it's in human nature and you can't help it. The best advice is to build a mental barrier and try no to take it too personally, not to let their criticism &quot;touch&quot; you. It's difficult though.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-15T17:02:06.663" />
  <row Id="26753" PostTypeId="2" ParentId="26730" CreationDate="2010-12-15T17:07:42.347" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/282/what-are-the-best-podcasts&quot;&gt;This question lists some good podcasts,&lt;/a&gt; but be warned they're something of a crapshoot in the car.  Some are made with strong enough production values that they can compete with the road noise (engine, wind, etc.), and others &lt;b&gt;really&lt;/b&gt; aren't.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tried listening to Software Engineering Radio during a lengthy road trip last month, and ... gyah.  One of the recent episodes (the JUnit one?) featured a guest who started every answer &lt;b&gt;LEANING VERY CLOSE TO THE MICROPHONE&lt;/b&gt; and then leaning away from it as he kept speaking.  If the volume was high enough for me to hear the bulk of his answer, it was literally painful &lt;b&gt;WHEN HE INEVITABLY LEANED BACK IN&lt;/B&gt;; if it was low enough for him to not hurt me, I couldn't hear what the hell he was saying.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know what precisely you do in post-production to fix problems like that, but these guys need to start doing it.  In the meantime, I went with Choice C:  dumping the episode and listening to the Savage Love podcast instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, yeah.  Podcasts are potentially good.  But you may need to experiment to find ones that work for you.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-12-15T17:07:42.347" />
  <row Id="26754" PostTypeId="2" ParentId="26700" CreationDate="2010-12-15T17:08:31.750" Score="2" ViewCount="" Body="&lt;p&gt;I think there are a lot of potential confounding variables here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Using Bing over Google could be seen as a good thing.  The general suggestion is that IE is bad because it means that the person has failed to make a choice, but the same is surely true of Google, more a defacto standard for search than IE is for browsing these days.  Someone using Bing has likely made a concious choice which suggests the sort of experimenting / assessing which is generally regarded as positive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) An increasing number of companies (we are one) mandate non-IE browsers by default for security reasons.  In this instance the logic reverses and using IE becomes the choice rather than Firefox.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) If a developer spends a lot of time developing to target a certain browser then I'd see it as a good thing that they use that browser by default.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) I suspect there is a certain anti-MS bias generally which looks down on IE and Bing which, once you'd noted this once may have lead to &lt;a href=&quot;http://en.wikipedia.org/wiki/Confirmation_bias&quot; rel=&quot;nofollow&quot;&gt;confirmation bias&lt;/a&gt;.  This needs to be excluded.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) Was the computer set up in such a way that IE was easier to find?  In the toolbar or on the desktop?  It maybe the thinking was less about which browser, how do I find the net as fast as possible?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And on top of that you'd have to find some workable metric for assessing programmers as good or bad...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a mildly interesting idle observation but I wouldn't put any stock in it and I think firming it up would be far more effort than was warranted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For what it's worth my gut feel is that search engine choice would be irrelevant (point 1 and point 4 above being significant for me), browser choice would show a weak inverse correlation between IE users and ability but nothing strong enough to usefully use. &lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-15T17:08:31.750" />
  <row Id="26755" PostTypeId="2" ParentId="26708" CreationDate="2010-12-15T17:12:54.380" Score="1" ViewCount="" Body="&lt;p&gt;For a real-world analogy, I guess I would go with a Phone Book entry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are lots of people/phone numbers in the world, but to be found by everyone you post your number in the phone book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Likewise, there are many regular properties that exist, and items that are aware of them know they exist and can use them, but a DependencyProperty is something that the entire application is aware of and can lookup when needed.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-12-15T17:12:54.380" />
  <row Id="26756" PostTypeId="2" ParentId="26669" CreationDate="2010-12-15T17:13:12.437" Score="1" ViewCount="" Body="&lt;p&gt;It's a fun hobby, a way to make some spare cash, and a way to improve myself and the world.&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-12-15T17:13:12.437" />
  <row Id="26757" PostTypeId="2" ParentId="25023" CreationDate="2010-12-15T17:13:41.900" Score="0" ViewCount="" Body="&lt;p&gt;The biggest benefit an organization will receive as a result of paying down technical debt is avoiding the compound interest.  There is an example in the blog entry below that shows how the principal amount owed on a technical debt went from $160k to $430k in just five years.  It would take a full time programmer solely dedicated to servicing that amount of debt.  That will help put it in perspective for the decision makers!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From &lt;a href=&quot;http://blog.acrowire.com/technical-debt/technical-debt-part-3-quantifying/&quot; rel=&quot;nofollow&quot;&gt;blog.acrowire.com&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="10177" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-16T19:39:19.583" LastActivityDate="2010-12-16T19:39:19.583" />
  <row Id="26758" PostTypeId="1" CreationDate="2010-12-15T17:14:06.140" Score="0" ViewCount="62" Body="&lt;p&gt;Greetings everyone, I apologize if this is not considered real programming since it is in excel but I need help and this is the most helpful place I know!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alright so I have a very large if formula in excel:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;=IF(AND(($EZ16+LF$1139)&gt;$B$1145,($EZ16+LF$1139)LF$1142),AND($FE16LF$1142),AND($FH16LF$1142),AND($FK16LF$1142),AND($FN16LF$1142),AND($FQ16LF$1142),AND($FT16LF$1142),AND($FW16LF$1142),AND($FZ16LF$1142),AND($GC16LF$1142),AND($GF16LF$1142)),FALSE,(EU16/EI16-1)),FALSE)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What can I do to it so that if it returns a div/0 error it will pass a value of 0 instead of the div/0 error?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would it be something like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;=IF(ISERROR(A1/B1),0,A1/B1)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If so how can I  add that to my current formula and not break it?&#xA;Would it be:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;=IF(ISERROR&lt;/strong&gt;(IF(AND(($EZ16+LF$1139)&gt;$B$1145,($EZ16+LF$1139)LF$1142),AND($FE16LF$1142),AND($FH16LF$1142),AND($FK16LF$1142),AND($FN16LF$1142),AND($FQ16LF$1142),AND($FT16LF$1142),AND($FW16LF$1142),AND($FZ16LF$1142),AND($GC16LF$1142),AND($GF16LF$1142)),FALSE,(EU16/EI16-1)),FALSE))**),0,IF**(AND(($EZ16+LF$1139)&gt;$B$1145,($EZ16+LF$1139)LF$1142),AND($FE16LF$1142),AND($FH16LF$1142),AND($FK16LF$1142),AND($FN16LF$1142),AND($FQ16LF$1142),AND($FT16LF$1142),AND($FW16LF$1142),AND($FZ16LF$1142),AND($GC16LF$1142),AND($GF16LF$1142)),FALSE,(EU16/EI16-1)),FALSE))&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you for the help!&lt;/p&gt;&#xA;" OwnerUserId="6650" LastActivityDate="2010-12-15T17:39:43.287" ClosedDate="2010-12-15T17:25:26.233" Title="Having a div/0 error in excel 2007 return a 0 with in a large formula." Tags="&lt;errors&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="1" />
  <row Id="26759" PostTypeId="2" ParentId="26747" CreationDate="2010-12-15T17:15:04.270" Score="9" ViewCount="" Body="&lt;p&gt;I think it's just a matter of making your words match what you are feeling inside, and putting the thing you feel most strongly (egoless problem solving) first in your response. When a coworker points out a terrible variable name, you could say &quot;I was really tired that day,&quot; or you could say &quot;You're right, that is a terrible name; I was really tired that day.&quot; or &quot;I am the one who did that; I was really tired that day.&quot; or &quot;Thanks for finding that for me; I was really tired that day.&quot; Etc. If you lead with the reason, it sounds like an excuse. If you lead with owning the mistake, thanking someone for finding it, or just agreeing with them, the reason doesn't sound like an excuse so much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a bonus, when you practise this, you will almost certainly find less need to offer the explanation for those &quot;I was tired, I didn't think anyone would use it for that, I was in a hurry&quot; situations. You can still use it for &quot;well sales never mentioned that they told the user that feature would be added, Bob didn't explain that to me properly, if Joe chose a better variable name I would have got it right, it worked until you changed the spec&quot; situations, when root cause and underlying change analysis may be needed.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-12-15T17:15:04.270" CommentCount="1" />
  <row Id="26760" PostTypeId="2" ParentId="26758" CreationDate="2010-12-15T17:18:15.043" Score="2" ViewCount="" Body="&lt;p&gt;&lt;code&gt;=IF(IsError(FORMULA), 0, FORMULA)&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="1130" LastEditorUserId="1130" LastEditorDisplayName="" LastEditDate="2010-12-15T17:39:43.287" LastActivityDate="2010-12-15T17:39:43.287" CommentCount="2" />
  <row Id="26761" PostTypeId="1" AcceptedAnswerId="26766" CreationDate="2010-12-15T17:28:02.597" Score="3" ViewCount="116" Body="&lt;p&gt;What's your opinion on summarizing the ToS?&lt;br&gt;&#xA;Example: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;[ToS here]&#xA;Basically, it means you won't sue me.&#xA;[I accept][I don't accept]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Is this good practice or will this just get you sued more?&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-12-15T17:45:17.597" Title="Summarize terms of service?" Tags="&lt;best-practices&gt;&lt;terms-of-service&gt;" AnswerCount="2" />
  <row Id="26762" PostTypeId="2" ParentId="26761" CreationDate="2010-12-15T17:30:47.480" Score="5" ViewCount="" Body="&lt;p&gt;Bad idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially it creates ambiguity about what the user is agreeing to which is a bad thing for you (assuming that you have your ToS to protect you).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something that sweeping almost certainly has no legal validity (it's too broad), so the summary offers you no additional protection and potentially just undermines the genuine content of the ToS.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-15T17:30:47.480" />
  <row Id="26763" PostTypeId="2" ParentId="26747" CreationDate="2010-12-15T17:35:48.600" Score="1" ViewCount="" Body="&lt;p&gt;Regardless, you made a mistake, so you should admit it. You may have had an infinitely small chance avoiding it, but you wrote it and it got released. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When dealing with people with no domain or technical expertise, why are you giving detailed explanations? It either sounds like an excuse or an explanation that is over their heads which they'll interpret as an excuse. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-15T17:35:48.600" />
  <row Id="26764" PostTypeId="2" ParentId="26747" CreationDate="2010-12-15T17:41:15.393" Score="1" ViewCount="" Body="&lt;p&gt;Here's what you say:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I take full responsibility. I'll do my best to correct it and not do it in the future.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What can someone say then?  They either accept what you have said and move on or they discipline you.  That's it.  It puts the onus back on them to do something or, as I said, move on.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-15T17:41:15.393" CommentCount="5" />
  <row Id="26765" PostTypeId="2" ParentId="26747" CreationDate="2010-12-15T17:42:54.037" Score="3" ViewCount="" Body="&lt;p&gt;Short answer: you don't&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Chances are that whoever is pointing out the error is not interested in why it's wrong, they just want it fixed. That fact that you want to discover why the error was made and what you can learn from it and thus improve upon is laudable, but again whoever is pointing out the error is probably not interested in hearing your internal monologue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;keep doing what you're doing, it helps you improve. But don't do it out loud in front of the user.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-15T17:42:54.037" CommentCount="11" />
  <row Id="26766" PostTypeId="2" ParentId="26761" CreationDate="2010-12-15T17:45:17.597" Score="4" ViewCount="" Body="&lt;p&gt;If you're worried about being sued, find a lawyer.  A quick consultation will cost a whole lot less than any lawsuit that comes up because you were mistaken, and that's true regardless of whether you win or lose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Moreover, if you try to write such a thing yourself, and you're not a lawyer, you're likely to screw it up in some way.  You will overstep yourself and ask the user for more than is legally permissible, or you will leave ambiguities (and the courts are likely to resolve all ambiguities against you), or provide loopholes, or some combination of the three.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A simple disclaimer of responsibility, with no button for acceptance, is the most I'd dare do without legal advice, and I'd probably copy the disclaimer on the GPLv3, almost word for word.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(There's also the question of what this is a disclaimer for.  Will it appeal to businesses or will it be recreational, or something else?  Web service or software?  There's all sorts of possibilities, and they can't all be treated the same.)&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-15T17:45:17.597" />
  <row Id="26767" PostTypeId="2" ParentId="26669" CreationDate="2010-12-15T17:50:02.180" Score="1" ViewCount="" Body="&lt;p&gt;For most non-tech people, computers are so abstract and &quot;intelligent&quot; that they tend to think programming is a skill which takes  superhuman intelligence to understand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;And I encourage this opinion whenever I can :)&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-15T17:50:02.180" />
  <row Id="26768" PostTypeId="2" ParentId="26723" CreationDate="2010-12-15T18:00:01.490" Score="0" ViewCount="" Body="&lt;p&gt;Maybe you're talking about a 'soft delete' where data are not deleted but just flagged as deleted so users can no longer access it? &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-15T18:00:01.490" />
  <row Id="26769" PostTypeId="1" AcceptedAnswerId="26821" CreationDate="2010-12-15T18:13:38.377" Score="10" ViewCount="330" Body="&lt;p&gt;I just switched from Firefox to Chrome, so what I wanna know:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any Chrome Extensions which are indispensable for a programmer?&lt;/p&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2010-12-16T04:24:14.203" ClosedDate="2010-12-17T12:45:16.547" Title="Chrome extensions every programmer should know" Tags="&lt;chrome&gt;" AnswerCount="4" CommentCount="14" FavoriteCount="10" />
  <row Id="26770" PostTypeId="2" ParentId="26723" CreationDate="2010-12-15T18:20:32.757" Score="2" ViewCount="" Body="&lt;p&gt;There are a variety of terms depending on what you're doing. In order of their chances of successful recovery these are:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1. Move to trash&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You just move the file into a generic &quot;recycle bin&quot;. You can fish it out later if you need to. Not secure at all. Perhaps this would be &quot;security by obscurity&quot; if you didn't know where the trashcan was.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2. Delete&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is usually synonymous with moving a file into a &quot;marked for overwrite&quot; state. The underlying operating system sets a flag against the file stating that it's OK to use the space occupied by this file. This overwrite may occur as a result of a system defrag operation, or maybe disk space is getting a bit tight. Often you can easily recover this type of operation using free online undelete tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3. Secure delete, wipe, shred&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This involves marking the file as in the &quot;delete&quot; operation. In addition, a process immediately overwrites the data using a random set of data. Some implementations overwrite the data many times in many different ways to ensure that it cannot be recovered by conventional tools. Depending on the strength of randomness and the manner in which the write process interacts with the underlying medium (e.g. is it magnetic tape, magnetic disk, flash memory etc) it is possible to still retrieve data through forensic techniques. Perhaps using a super-conducting quantum interference device (SQUID) or somesuch. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;4. Forensic delete&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The final word in data destruction. All trace of the data is completely removed from the medium in a manner that renders it utterly impossible for it to be reconstructed through forensic techniques. This is normally physical destruction or putting the medium of data storage out of reach (dissolved in acid, buried in a nuclear reactor, blasted into space etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope it helps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Undeleted my own answer in response to @Developer Art's comment. Somewhat apt given the context of the question, eh?&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-15T23:32:23.077" LastActivityDate="2010-12-15T23:32:23.077" CommentCount="1" />
  <row Id="26771" PostTypeId="1" AcceptedAnswerId="26800" CreationDate="2010-12-15T18:48:54.620" Score="34" ViewCount="1124" Body="&lt;p&gt;I want to go on vacation and not think about work at all but they want me to provide them a contact number in the event of an emergency (server goes down, web service malfunctions, etc). I am afraid that it will be abused (they will contact me before trying everything for example) but I also think that if I am on vacation I should not be bothered even if there is an outage. Does anyone have experience with situations like this? What's the tactful approach? Any creative solutions?&lt;/p&gt;&#xA;" OwnerUserId="785" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2010-12-15T19:53:14.570" LastActivityDate="2010-12-19T07:05:16.873" Title="How do you respond to a request for 'emergency contact information' for when you are on vacation?" Tags="&lt;vacation&gt;" AnswerCount="18" CommentCount="8" FavoriteCount="4" />
  <row Id="26772" PostTypeId="2" ParentId="26771" CreationDate="2010-12-15T18:52:54.910" Score="17" ViewCount="" Body="&lt;p&gt;Back in the day we used to get &quot;pager pay&quot; if we were to be on call.  You could try &quot;clarifying&quot; whether that's whether what they're offering. Then, assuming they just  want you to offer to have your vacation interrupted for free, tell them you will check your voice mail (on your cell, at the hotel message centre, or at home) each night, or once a week, or whatever you feel like offering, and give them that number.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are times it's handy to go on vacation into the wilderness (no cell signal) or to a country where your cell phone doesn't work.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-12-15T18:52:54.910" CommentCount="5" />
  <row Id="26774" PostTypeId="2" ParentId="26771" CreationDate="2010-12-15T19:03:34.390" Score="8" ViewCount="" Body="&lt;p&gt;I have had a few scenarios where I'm on holiday and the boss has called to ask me how to do something on a project I've been working on.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In one case I was the build guy, something broke, and I was out at lunch with my girlfriend, and the boss called.  My answer was that I was at lunch and, whatever it was, it could wait until I got back (I didn't actually ask what it was).  Any issue can wait up to an hour.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In another case I was off sick for a week, and my boss (different boss) phoned and asked how to run a tool I was in charge of.  It was obvious, and I told him that, but I told him how to do it anyway since it was 3 minutes of my time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And another case a few years back, after about 10 minutes of trying to talk things through over the phone with no progress I said it would have to wait until I got back because there's no way I'm spending all my holiday time on the phone with my boss.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice is hand over your details, but if a call lasts more than 5 minutes say &quot;look, is this likely to be resolved in the next 5 minutes?  Because if not then I'm working and I want this day back in lieu&quot;.  Likewise if they call too often.  Make it clear that it's an &lt;em&gt;emergency&lt;/em&gt; number.  To be used in &lt;em&gt;emergencies&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-12-15T19:03:34.390" CommentCount="4" />
  <row Id="26775" PostTypeId="1" AcceptedAnswerId="26778" CreationDate="2010-12-15T19:04:40.133" Score="11" ViewCount="871" Body="&lt;p&gt;With so many ORM tools for most modern languages, is there still a use case for writing and executing SQL in a program, in a language/environment that supports them?  If so why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;For clarity:&lt;/strong&gt; I'm not asking about if programmers need to know SQL, or if I should have a SQL tool on my desktop.  I'm asking specifically why I might have it &lt;em&gt;in code&lt;/em&gt; (or config, or whatever) as opposed to an ORM.&lt;/p&gt;&#xA;" OwnerUserId="4422" LastEditorUserId="4422" LastEditorDisplayName="" LastEditDate="2010-12-15T21:43:17.247" LastActivityDate="2011-01-25T22:59:05.473" CommunityOwnedDate="2011-01-25T15:25:22.513" Title="Is there still a need for writing SQL?" Tags="&lt;design&gt;&lt;sql&gt;" AnswerCount="17" CommentCount="2" FavoriteCount="1" />
  <row Id="26776" PostTypeId="2" ParentId="26596" CreationDate="2010-12-15T19:06:31.660" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Metrics work best in factories, and programmers don't work on an assembly line.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I completely understand the desire to measure productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But would you use the same metric for a family doctor and a heart surgeon? How about for Michelangelo painting the Sistine Chapel, and some guy in Mexico cranking out black velvet Elvis paintings?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Louis de Broglie wrote a doctoral thesis that was so short, the examiners were going to reject it - except de Broglie was a highly-placed aristocrat, and they needed a good excuse. So the examiners sent it to Einstein, who not only didn't reject it, he referred it to the Nobel committee, and de Broglie got the Nobel Prize in Physics for it five years later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Numerical measures work best on work that's repetitive, like casting iron or screwing bolts on car doors. But if you're repeating code that's been done before, you don't need a programmer, you just need a copy-and-paste. Programming is fundamentally a creative discipline, and productivity depends entirely on what you're doing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some days, I crank out 1000 lines of code. Today, I'm going to be fixing coordinate geometry bugs, and the code might shrink. If I had to fix a bug in a Linux kernel driver, I might spend all day on debugging, and not write a line of new code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Measuring programmer productivity is very, very, very subjective&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to know if Joe is productive, find Sally and Ralph, who know what Joe's doing and are proficient in the same areas, and ask them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best numerical system I've ever seen has been Agile's planning poker points. That's just a fancy way of asking Joe and Sally and Ralph how hard they think Joe's upcoming job is likely to be. Then you can measure points-per-week productivity for each team member. But even then, it takes a while to calibrate a team's estimations, and the numbers are fuzzy and easily thrown off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many people want productivity estimates so they can do schedule planning. It's kind of the &quot;plug it into MS Project, look at the critical path, and there's your ship date&quot; theory. I have never, ever seen that work - there are just too many unknowns. If you want that, use Waterfall, design everything up front, don't permit any change orders, and be prepared to be disappointed anyway.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-15T19:06:31.660" CommentCount="2" />
  <row Id="26777" PostTypeId="1" AcceptedAnswerId="26795" CreationDate="2010-12-15T19:09:01.970" Score="4" ViewCount="99" Body="&lt;p&gt;I have developed a web application for a client which is live to their customers. Recently, the application has been sold in such as way that it is replicated to other domain names so there are 4+ instances of the application which I am to develop and maintain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the moment, each copy of the app has it own SVN repository and when it comes to making changes to the application that effects all instances, I update one and then use Beyond Compare to merge changes over to the other copies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would it be a better solution to use svn branches to maintain a core system and to merge out to sub branches and visa versa for bugs? Each application may have changes made to it that are client specific, such as logos, colours etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are Branches the best way to go or continue to have each in their own repository and use BC to merge where necessary?&lt;/p&gt;&#xA;" OwnerUserId="10180" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T14:28:32.300" LastActivityDate="2010-12-26T14:28:32.300" Title="how to effectively manage multiple occurrences of one application" Tags="&lt;php&gt;&lt;web-applications&gt;" AnswerCount="3" CommentCount="3" />
  <row Id="26778" PostTypeId="2" ParentId="26775" CreationDate="2010-12-15T19:11:45.913" Score="24" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;You're more comfortable writing SQL to query data than you are writing procedural code.&lt;/li&gt;&#xA;&lt;li&gt;Your ORM, while beautiful to look at, generates horrifically slow SQL in some critical area.&lt;/li&gt;&#xA;&lt;li&gt;You need to take advantage of functionality exposed by your RDBMS that is not / cannot be made available through your ORM.&lt;/li&gt;&#xA;&lt;li&gt;Every time you type &lt;code&gt;SELECT * FROM...&lt;/code&gt;, God kills a kitten. And you &lt;em&gt;hate&lt;/em&gt; kittens.&lt;/li&gt;&#xA;&lt;li&gt;You aren't using an ORM, OOP, or a modern language. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-12-15T19:11:45.913" CommunityOwnedDate="2010-12-15T19:13:02.527" CommentCount="20" />
  <row Id="26779" PostTypeId="2" ParentId="26775" CreationDate="2010-12-15T19:15:21.383" Score="1" ViewCount="" Body="&lt;p&gt;If you want to use a database yourself, yes.  Most of the ORMs that I tried to use just weren't sufficient or didn't cover my database.  Besides, how are you going to troubleshoot or write custom queries that aren't covered?&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-15T19:15:21.383" CommunityOwnedDate="2011-01-25T15:25:22.513" />
  <row Id="26780" PostTypeId="2" ParentId="26775" CreationDate="2010-12-15T19:15:37.577" Score="3" ViewCount="" Body="&lt;p&gt;Sure:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Generally ORM encapsulates a lot, but in the end you should know what happens behind the scenes. This is crucial for performance and scalability. Though inside application I don't write that much SQL but I know roughly how the SQL or DDL looks like.&lt;/li&gt;&#xA;&lt;li&gt;Direct SQL is often nice to write read-only queries. Much easier as to formulate it in ORM query language and you can also limit result set (e.g. 'select id from .....').&lt;/li&gt;&#xA;&lt;li&gt;ORM should not keep you away from SQL at all. I use SQL a lot for ad-hoc queries directly on the DB-client (like mysql-client). It gives you very nice uniform interface and grouping functionalities.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10179" LastActivityDate="2010-12-15T19:15:37.577" CommunityOwnedDate="2011-01-25T15:25:22.513" />
  <row Id="26781" PostTypeId="2" ParentId="26777" CreationDate="2010-12-15T19:16:05.483" Score="0" ViewCount="" Body="&lt;p&gt;Distributed version control where you have a separate repository for each instance and commit the changes to them as needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://hginit.com/&quot; rel=&quot;nofollow&quot;&gt;http://hginit.com/&lt;/a&gt; might help understand it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We're in a similar situation and it's not something Subversion does well at all.  We're looking at Mercurial as an alternative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that's not a short term option you need to separate each instance out into core code (which can be shared) and code which can not.  This at least minimises customer specific code and makes the scale of the problem smaller.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-15T19:16:05.483" CommentCount="2" />
  <row Id="26782" PostTypeId="2" ParentId="26775" CreationDate="2010-12-15T19:16:48.597" Score="3" ViewCount="" Body="&lt;p&gt;ORMs are a tool in the programmers tool box. They have their own issues. Some examples are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Can't control sql&lt;/li&gt;&#xA;&lt;li&gt;Suffers from n+1 problem&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3421" LastActivityDate="2010-12-15T19:16:48.597" CommunityOwnedDate="2011-01-25T15:25:22.513" CommentCount="4" />
  <row Id="26783" PostTypeId="2" ParentId="26775" CreationDate="2010-12-15T19:21:25.927" Score="2" ViewCount="" Body="&lt;p&gt;If you know what you are doing you can effectively use an ORM to replace much of your CRUD type code. They are not as effective for complex things though, they are hard to performance tune (you do know that performance is one of the critical parts of database design, not emulating objects) and they are downright horrible and dangerous in the hands of someone who doesn't understand or write SQL themselves. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also want to point out that complex reporting is not easy to effectively do with an ORM. And further if you don't learn the simple SQL in the easy crud stuff, how will you ever get to the point where you can write complex SQL for reporting? I've never worked in an application that didn't have reporting needs and often quite complicated ones. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nor are ORMs useful for BI or ETL processes for the most part. Nor are they useful for database admin queries or for finding information in the audit tables and undoing a particular set of database changes. There are many many things that are still most effectively done with SQL. The application querying the database is a small portion of what needs to query it in an Enterprise environment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also see many questions about how to do something using an ORM that the poster already  knows how to do in SQL. It's nice to learn new things, but when they are causing extra time and effort with no real gain over the orginal method (and often a real loss of performance), why are you using them other than they are &quot;fashionable&quot; right now. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastEditorUserId="1093" LastEditorDisplayName="" LastEditDate="2011-01-25T19:46:22.157" LastActivityDate="2011-01-25T19:46:22.157" CommunityOwnedDate="2011-01-25T15:25:22.513" />
  <row Id="26784" PostTypeId="2" ParentId="26775" CreationDate="2010-12-15T19:22:32.857" Score="1" ViewCount="" Body="&lt;p&gt;Sometimes a client just wants a quick and easy query to return data for a report, export, datadump, etc and want to wait for an entire program be developed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, a good SQL programmer can always write faster, more efficent SQL than any ORM I have used.  Also, I have found a lot of people just have the ORM point to stored procedures - really ignoring the benefits of the ORM cause ORM's are not great for complex processes.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, when using a database like Oracle with a very rich and powerful procedure language, you can do a lot without ever needed a &quot;program&quot;.  PL/SQL on Oracle in the right hands is very fast and efficent.&lt;/p&gt;&#xA;" OwnerUserId="1789" LastActivityDate="2010-12-15T19:22:32.857" CommunityOwnedDate="2011-01-25T15:25:22.513" CommentCount="2" />
  <row Id="26785" PostTypeId="2" ParentId="26385" CreationDate="2010-12-15T19:25:38.123" Score="0" ViewCount="" Body="&lt;p&gt;I like prefix for function-like things, infix for operator-like things, postfix for property-like things, and mixfix for control-flow like things:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// prefix:&#xA;abs(-3)&#xA;sin(PI)&#xA;&#xA;// infix:&#xA;1 + 2&#xA;4 / 5&#xA;&#xA;// postfix:&#xA;list size&#xA;employee name&#xA;&#xA;// mixfix:&#xA;if a then b else c // (where if/then/else is the mixfix function)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;What I &lt;em&gt;don't&lt;/em&gt; like is languages that don't let me express things the way that reads most naturally to me. I don't like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// lisp, have to do prefix for everything:&#xA;(+ 1 2)&#xA;(if a b c)&#xA;(size list)&#xA;&#xA;// forth, have to do postfix for everything:&#xA;1 2 +&#xA;a b c if&#xA;1 + 2&#xA;4 / 5&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2326" LastActivityDate="2010-12-15T19:25:38.123" CommentCount="2" />
  <row Id="26786" PostTypeId="2" ParentId="26775" CreationDate="2010-12-15T19:25:56.130" Score="0" ViewCount="" Body="&lt;p&gt;It's still required for writing triggers and stored procedures.  Stored procedures may have fallen out of favor currently, but they're still very useful in some situations.  SQL may also be required for some particularly hairy multi-table joins.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-15T19:25:56.130" CommunityOwnedDate="2011-01-25T15:25:22.513" />
  <row Id="26787" PostTypeId="2" ParentId="26730" CreationDate="2010-12-15T19:26:54.223" Score="2" ViewCount="" Body="&lt;p&gt;I have a subscription to &lt;a href=&quot;http://www.audible.com/&quot; rel=&quot;nofollow&quot;&gt;audible.com&lt;/a&gt;.  I usually am listening to one book in my car, and another book when walking over a 2-mile route.  I vary between non-fiction books and fiction.  There are around 400 books and magazine articles listed at audible.com under the keyword computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One that I enjoyed a while back was &lt;a href=&quot;http://www.audible.com/pd/ref=sr_1_4?asin=B002UUKK3A&amp;amp;qid=1292441023&amp;amp;sr=1-4&quot; rel=&quot;nofollow&quot;&gt;ENIAC: The Triumphs and Tragedies of the World's First Computer&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-12-15T19:26:54.223" />
  <row Id="26788" PostTypeId="2" ParentId="26775" CreationDate="2010-12-15T19:29:33.210" Score="1" ViewCount="" Body="&lt;p&gt;Yes you can avoid writing SQL. But you will end up writing HQL instead (or Linq, or DQL...)!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, I'm am a big fan of ORMs, and I do think one may avoid using pure SQL most of the time. But we must remember that an ORM is just one big abstraction, and all big abstractions &lt;a href=&quot;http://www.joelonsoftware.com/articles/LeakyAbstractions.html&quot; rel=&quot;nofollow&quot;&gt;leak&lt;/a&gt;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(But about the N + 1 problem: this is lazy-loading related, and most ORM tools have some way of requesting eager-loading, thus avoiding that particular issue.)&lt;/p&gt;&#xA;" OwnerUserId="5300" LastActivityDate="2010-12-15T19:29:33.210" CommunityOwnedDate="2011-01-25T15:25:22.513" />
  <row Id="26789" PostTypeId="2" ParentId="26775" CreationDate="2010-12-15T19:33:15.167" Score="0" ViewCount="" Body="&lt;p&gt;ORM will only get you to some point. But there are cases when you have to execute a really complicated query, with complicated joins, subquery, unions, minus, analytical functions etc. That's when you need SQL. But how are you supposed to write complicated queries when you leave all simple queries to the ORM?&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-15T19:33:15.167" CommunityOwnedDate="2011-01-25T15:25:22.513" />
  <row Id="26790" PostTypeId="1" AcceptedAnswerId="26792" CreationDate="2010-12-15T19:38:39.897" Score="2" ViewCount="196" Body="&lt;p&gt;There are many relational databases in the market. &#xA;For common knowledge which ones should every developer know about? &#xA;The database may be free or commercial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Please motivate why and give one database per answer.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to get a list of 10 most popular relational databases.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-15T21:07:07.453" ClosedDate="2011-01-17T15:16:34.860" Title="Which relational databases every programmer should know about?" Tags="&lt;software&gt;&lt;database&gt;&lt;sql-server&gt;" AnswerCount="3" CommentCount="10" />
  <row Id="26791" PostTypeId="2" ParentId="15466" CreationDate="2010-12-15T19:40:16.293" Score="0" ViewCount="" Body="&lt;p&gt;This is the very nature of IT!  Things CHANGE!  In the Java world, they had the same thing...&#xA;JDBC, EJB 1.0, EJB 2.0, Hibernate, EJB 3.0 and so on.  &lt;/p&gt;&#xA;" OwnerUserId="8776" LastActivityDate="2010-12-15T19:40:16.293" CommentCount="1" />
  <row Id="26792" PostTypeId="2" ParentId="26790" CreationDate="2010-12-15T19:40:38.367" Score="1" ViewCount="" Body="&lt;p&gt;It doesn't matter, as long as you are good with one your skills will translate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some popular ones are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.microsoft.com/sqlserver/&quot; rel=&quot;nofollow&quot;&gt;MSSQL&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://sqlite.org&quot; rel=&quot;nofollow&quot;&gt;SQLite&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://mysql.com&quot; rel=&quot;nofollow&quot;&gt;MySQL&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://oracle.com&quot; rel=&quot;nofollow&quot;&gt;Oracle&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.postgresql.org/&quot; rel=&quot;nofollow&quot;&gt;PostgreSQL&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also, you might want to look at &lt;a href=&quot;http://en.wikipedia.org/wiki/Object-relational_mapping&quot; rel=&quot;nofollow&quot;&gt;Object to Relational Mapping&lt;/a&gt; tools for the language of your choice.&lt;/p&gt;&#xA;" OwnerUserId="2044" LastEditorUserId="2044" LastEditorDisplayName="" LastEditDate="2010-12-15T21:07:07.453" LastActivityDate="2010-12-15T21:07:07.453" CommentCount="2" />
  <row Id="26793" PostTypeId="1" AcceptedAnswerId="26796" CreationDate="2010-12-15T19:41:21.250" Score="4" ViewCount="409" Body="&lt;p&gt;There are many &lt;strong&gt;nosql&lt;/strong&gt; databases in the market. &#xA;For common knowledge which ones should every developer know about? &#xA;The database may be free or commercial.&#xA;&lt;strong&gt;Please motivate why and give one database per answer.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to get a list of 10 most popular nosql databases.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-16T07:27:00.713" ClosedDate="2011-01-17T15:16:12.130" Title="Which nosql databases every programmer should know about?" Tags="&lt;software&gt;&lt;database&gt;&lt;nosql&gt;" AnswerCount="6" CommentCount="29" FavoriteCount="5" />
  <row Id="26794" PostTypeId="2" ParentId="26790" CreationDate="2010-12-15T19:42:48.163" Score="-4" ViewCount="" Body="&lt;p&gt;Going by market share:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Oracle&lt;/li&gt;&#xA;&lt;li&gt;MS SQL Server&lt;/li&gt;&#xA;&lt;li&gt;MySQL&lt;/li&gt;&#xA;&lt;li&gt;IBM DB2&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8776" LastActivityDate="2010-12-15T19:42:48.163" CommentCount="2" />
  <row Id="26795" PostTypeId="2" ParentId="26777" CreationDate="2010-12-15T19:45:55.613" Score="2" ViewCount="" Body="&lt;p&gt;Its going to depend on the specifics of course, but ideally you'd want a &lt;em&gt;single&lt;/em&gt; source code base with extensions for the client specific code.  For example, you might organize the client specific code into plugins the way a content management system would.  Or use a templating system for custom GUIs.  I would try to avoid maintaining 4 sets of core code if at all possible as thats just asking for problems.  Especially if a year from now thats &lt;em&gt;10&lt;/em&gt; sets of code as you add customers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As another example, the largest PHP app I work on has an administrator interface that lets the admin enable or disable specific features.  Some are designed for single clients only, others are 'premium' features that multiple customers have upgraded to.  But its still all one code base.  During runtime, it checks based on who's logged in, and presents the user with additional functionality where applicable.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-15T19:45:55.613" CommentCount="2" />
  <row Id="26796" PostTypeId="2" ParentId="26793" CreationDate="2010-12-15T19:46:43.263" Score="6" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://www.mongodb.org/&quot; rel=&quot;nofollow&quot;&gt;MongoDB&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;MongoDB is a cross between a key / value and relational database. It offers &quot;humongous&quot; storage with high speed inserts and embedded documents. It's fast, flexible, and great to prototype in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other features:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Simple database sharding for quickly scaling out your database.&lt;/li&gt;&#xA;&lt;li&gt;JSON style storage and retrieval (actually BSON) &lt;/li&gt;&#xA;&lt;li&gt;JavaScript core, write functions and ad-hoc classes to handle your heavy lifting at the prompt&lt;/li&gt;&#xA;&lt;li&gt;Commercial support by 10gen&lt;/li&gt;&#xA;&lt;li&gt;Open source and community driven, drivers for almost everything&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What it's not: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Single server durable (changing soon!)&lt;/li&gt;&#xA;&lt;li&gt;Storing normalized data (expect repetition)&lt;/li&gt;&#xA;&lt;li&gt;For handling ultra-large documents (&gt; 4MB)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That being said MongoDB is &lt;a href=&quot;http://joshuakehn.com/blog/view/14/Moving-to-Mongo&quot; rel=&quot;nofollow&quot;&gt;one of my favorite database engines&lt;/a&gt;. You don't worry about permissions, schema, or connection details. It feels different designing with it as a backend, more like a large session then a database. This makes it great when you want the flexibility to store whatever you want and not worry about column names or relationships. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-15T19:54:13.680" LastActivityDate="2010-12-15T19:54:13.680" CommentCount="9" />
  <row Id="26797" PostTypeId="2" ParentId="26793" CreationDate="2010-12-15T19:48:00.110" Score="2" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://code.google.com/p/redis/&quot; rel=&quot;nofollow&quot;&gt;Redis&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Redis is an in-memory key / value database that can be persisted to disk and journaled. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-15T19:48:00.110" CommentCount="1" />
  <row Id="26798" PostTypeId="2" ParentId="26793" CreationDate="2010-12-15T19:54:16.030" Score="4" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://ravendb.net/&quot; rel=&quot;nofollow&quot;&gt;RavenDB&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;NoSQL database for .NET. I haven't used it personally, so here's a one-liner description from the site: Raven stores schema-less JSON documents, allows you to define indexes using Linq queries and focuses on low latency and high performance.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-15T19:54:16.030" CommentCount="6" />
  <row Id="26799" PostTypeId="2" ParentId="26793" CreationDate="2010-12-15T19:56:39.833" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Berkeley_DB&quot; rel=&quot;nofollow&quot;&gt;BerkeleyDB&lt;/a&gt;, because it has existed for a very long time and isn't a &quot;flavor of the month&quot;. It existed long before it was common practice to store your configuration settings/to-do lists in an full-fledged RDBMS.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;BDB stores arbitrary key/data pairs as byte arrays, and supports multiple data items for a single key. Berkeley DB is not a relational database. BDB can support thousands of simultaneous threads of control or concurrent processes manipulating databases as large as 256 terabytes, on a wide variety of operating systems including most Unix-like and Windows systems, and real-time operating systems.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="10076" LastActivityDate="2010-12-15T19:56:39.833" CommentCount="4" />
  <row Id="26800" PostTypeId="2" ParentId="26771" CreationDate="2010-12-15T19:58:26.300" Score="20" ViewCount="" Body="&lt;h3&gt;Hand them a phone number and a quadruple overtime rate.&lt;/h3&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;The goal here is not to make lots of money, the goal is to discourage needless annoyance. You're available, &lt;em&gt;but only if you really need me&lt;/em&gt;. The database crashed, the users are compromised, you're getting multiple DDOS waves, that's when you pick up a phone. Can't find the username for some non-critical system? &lt;strong&gt;Don't bother&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to draw a clear line on what &lt;em&gt;is&lt;/em&gt; an emergency and what is &lt;em&gt;not&lt;/em&gt;. Go over common cases and solutions prior to taking vacation. Make sure everyone is notified ahead of time so that they can run any critical systems / processes through you before you leave.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Vacation is time off. Make sure it stays that way. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-15T22:43:33.757" LastActivityDate="2010-12-15T22:43:33.757" CommentCount="3" />
  <row Id="26801" PostTypeId="1" CreationDate="2010-12-15T19:58:43.867" Score="6" ViewCount="214" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am looking for a way to give an algorithm (service) a sentence, and it will tell me if its positive context or negative or even neutral.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does such a service exist?&lt;/p&gt;&#xA;" OwnerUserId="10184" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-15T20:32:25.670" LastActivityDate="2010-12-15T20:47:13.720" Title="Natural Language Processing (NLP) open source algorithms" Tags="&lt;algorithms&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="1" />
  <row Id="26802" PostTypeId="2" ParentId="26771" CreationDate="2010-12-15T20:02:32.433" Score="42" ViewCount="" Body="&lt;p&gt;Give them a cellphone number, but tell them you might not be available over extended periods, because you don't know how good the coverage is at the place you are going to. Then switch it off whenever you don't want to be disturbed, but in case they called, call back several hours later, or the next day, or whenever you feel like it.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="6617" LastEditorDisplayName="" LastEditDate="2010-12-16T07:31:11.813" LastActivityDate="2010-12-16T07:31:11.813" CommentCount="12" />
  <row Id="26803" PostTypeId="2" ParentId="26771" CreationDate="2010-12-15T20:03:54.270" Score="5" ViewCount="" Body="&lt;p&gt;I am always willing to give my contact info to people at work.  I trust my coworkers to not call me unless it is a truly important matter.  And if it is a matter of that gravity I am willing to help.  I have even taken time out of vacations to dial into important conference calls.  But of course I had a beer in my hand when I did. :-)&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-12-15T20:03:54.270" CommentCount="6" />
  <row Id="26804" PostTypeId="2" ParentId="26609" CreationDate="2010-12-15T20:08:15.313" Score="2" ViewCount="" Body="&lt;p&gt;A delegate is like a blank cheque. You can write a cheque for bank accounts you have access to. You can give that cheque to someone else, who perhaps does not have access to that bank account. The cheque can pass hands until someone writes in an amount and cashes it in, which instructs the bank to withdraw money from that account and give it to that person. The person caching in the cheque might not even know the person who wrote the cheque or the owner of the bank account.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheque = delegate&lt;br&gt;&#xA;Bank account = delegated object&lt;br&gt;&#xA;Withdrawal = delegated method&lt;br&gt;&#xA;Transfer amount = arguments passed to the delegate&lt;br&gt;&#xA;Withdrawn money = return value from the delegate&lt;br&gt;&#xA;Writing the cheque = creating the delegate&lt;br&gt;&#xA;Passing the cheque = passing the delegate&lt;br&gt;&#xA;Caching in the cheque = activating the delegate  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unlike cheques, with delegates you can:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Activate it multiple times.&lt;/li&gt;&#xA;&lt;li&gt;Create it so that it instructs anyone to perform any action, and not only instruct a bank account to withdraw money.&lt;/li&gt;&#xA;&lt;li&gt;Depending on the delegate type, you might not be able to specify arguments, or might not get a return value&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="135" LastActivityDate="2010-12-15T20:08:15.313" />
  <row Id="26805" PostTypeId="2" ParentId="26793" CreationDate="2010-12-15T20:14:15.840" Score="0" ViewCount="" Body="&lt;p&gt;If you have&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;lots of unstructured information and/or XML data&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and you want&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;high performance and scale (100s of terabytes or more)&lt;/li&gt;&#xA;&lt;li&gt;a NoSQL document store with full ACID transactions &lt;/li&gt;&#xA;&lt;li&gt;Integrated full-text search&lt;/li&gt;&#xA;&lt;li&gt;Enterprise-class software, with professional-grade support&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;then check out &lt;a href=&quot;http://developer.marklogic.com/&quot; rel=&quot;nofollow&quot; title=&quot;MarkLogic&quot;&gt;MarkLogic&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;MarkLogic is a commercial, purpose-built database for unstructured information.  It is a NoSQL Document Store (using the XML data model) and a full-text search engine (not something bolted on the side), built from the ground up in C++. &lt;/p&gt;&#xA;" OwnerUserId="10185" LastEditorUserId="10185" LastEditorDisplayName="" LastEditDate="2010-12-15T21:51:16.993" LastActivityDate="2010-12-15T21:51:16.993" CommentCount="1" />
  <row Id="26806" PostTypeId="2" ParentId="23303" CreationDate="2010-12-15T20:21:52.263" Score="0" ViewCount="" Body="&lt;p&gt;W3C XQuery enables &lt;a href=&quot;http://developer.marklogic.com/&quot; rel=&quot;nofollow&quot;&gt;MarkLogic&lt;/a&gt; to have integrated scripting and database access in one programming language.&lt;/p&gt;&#xA;" OwnerUserId="10185" LastActivityDate="2010-12-15T20:21:52.263" CommunityOwnedDate="2011-02-25T12:34:54.753" />
  <row Id="26807" PostTypeId="2" ParentId="26609" CreationDate="2010-12-15T20:23:11.870" Score="0" ViewCount="" Body="&lt;p&gt;The best example I ever heard is a parent-teenager relationship. A teenager's friend asks her to hang out on a Friday night, but the teenager has to ask her parents (her &lt;em&gt;delegate&lt;/em&gt;) for permission first.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-12-15T20:23:11.870" />
  <row Id="26808" PostTypeId="2" ParentId="26801" CreationDate="2010-12-15T20:33:55.733" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The &lt;a href=&quot;http://opennlp.sourceforge.net/projects.html&quot; rel=&quot;nofollow&quot;&gt;OpenNLP site&lt;/a&gt; may help you&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The link refers to a long list of projects that are using OpenNLP to solve natural language processing problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, since you seem to be looking for a Sentiment and Opinion Mining application, perhaps the open source &lt;a href=&quot;http://rapid-i.com/content/view/26/201/&quot; rel=&quot;nofollow&quot;&gt;RapidMiner application&lt;/a&gt; may be of interest. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a &lt;a href=&quot;http://www.b-eye-network.com/view/9516&quot; rel=&quot;nofollow&quot;&gt;quote describing it&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The software supports a wide variety&#xA;  of clustering, classification and&#xA;  other data mining functions.&#xA;  Text-related modules include the Word&#xA;  Vector Tool (WVT), Named Entity&#xA;  Recognition (NER) and Data Stream&#xA;  plug-ins. According to Rapid-I&#xA;  cofounder and managing director Ralf&#xA;  Klinkenberg, RapidMiner responds to a&#xA;  very wide set of text-processing needs&#xA;  including news filtering, email&#xA;  routing, &lt;strong&gt;sentiment analysis and&#xA;  opinion mining&lt;/strong&gt;, and general&#xA;  information extraction. According to&#xA;  Klinkenberg, RapidMiner allows users&#xA;  to combine unstructured data (text&#xA;  documents) and structured data&#xA;  (database tables, time series data,&#xA;  audio data, etc.).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-15T20:47:13.720" LastActivityDate="2010-12-15T20:47:13.720" />
  <row Id="26809" PostTypeId="2" ParentId="26790" CreationDate="2010-12-15T20:33:57.657" Score="0" ViewCount="" Body="&lt;p&gt;Besides the big C/S databases, if you are a Windows programmer, you should definitely know this one: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;MS Access&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(ok, the database part of it is also known as the Jet engine backend, but don't be nitty).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pros: it is cheap, it is very easy to administer with the Access frontend application, it is widespread (well documented with lots of examples to find in the WWW), you don't have to setup any special services (if you need it on a network, you can utilize your file server). For single user tasks, for example where you have to do a lot of batch processing of your data, it is much faster than, for example, MS SQL server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cons: it does not scale well for many users, you have a 2GB limit per MDB file, SQL dialect is only partial standard, not ACID compliant, does no stored procedures, db security model is, well, lets say it could be improved.  &lt;/p&gt;&#xA;" OwnerUserId="9113" LastActivityDate="2010-12-15T20:33:57.657" CommentCount="2" />
  <row Id="26811" PostTypeId="2" ParentId="26769" CreationDate="2010-12-15T20:47:55.937" Score="4" ViewCount="" Body="&lt;p&gt;The Web Developer extension is a straight-across port of the Firefox web developer toolbar. Also see the &quot;view selection source&quot; extension.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once I found those things, I happily fired Firefox.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, the Chrome Dev Tools are excellent. They're not prone to just occasionally breaking and not telling you anything about anything, as Firebug often seems to do. &lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-15T20:47:55.937" CommentCount="2" />
  <row Id="26812" PostTypeId="2" ParentId="26777" CreationDate="2010-12-15T20:55:47.427" Score="2" ViewCount="" Body="&lt;p&gt;The typical approach is to have a single core, which can then be configured as needed in a separate module.   For simple cores, you can make do with if-statements based on variables in the configuration module.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For more advanced cores, you need to be able to provide customer specific code overriding standard functionality.  How exactly this happens (compile time, versus runtime) depends on what is most convenient for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you desperately need to consolidate your code in a single code base.  Otherwise the complexity will quickly overwhelm you if you get more customers.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-15T20:55:47.427" CommentCount="1" />
  <row Id="26813" PostTypeId="2" ParentId="26775" CreationDate="2010-12-15T20:56:07.893" Score="7" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Views&lt;/li&gt;&#xA;&lt;li&gt;Triggers&lt;/li&gt;&#xA;&lt;li&gt;Constraints&lt;/li&gt;&#xA;&lt;li&gt;Packages (SSIS, DTS, etc)&lt;/li&gt;&#xA;&lt;li&gt;Anytime you need to control execution flow precisely&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;ORM does not help you build, tune or automate the database.  It just gives you an alternative way to interact with the database once you have done all that stuff.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-12-15T20:56:07.893" CommunityOwnedDate="2011-01-25T15:25:22.513" CommentCount="2" />
  <row Id="26814" PostTypeId="2" ParentId="26688" CreationDate="2010-12-15T21:02:30.980" Score="4" ViewCount="" Body="&lt;p&gt;You need to &lt;em&gt;give forward&lt;/em&gt;. It's like giving back, but earlier ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the realm of marketing, it is called the Reciprocity Principle. If you give someone something, they will want to give you something back. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not trying to brag here, but this is what happened to me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started a &lt;a href=&quot;http://vancouverdata.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;data mining blog&lt;/a&gt; and &lt;a href=&quot;http://www.youtube.com/user/VancouverData&quot; rel=&quot;nofollow&quot;&gt;Youtube channel&lt;/a&gt; (almost 10,000 visitors), and because of it, I got a job lecturing at one of the best schools in Canada, was asked by the #1 data mining company to consult for them, and have people from around the world asking to give me money to show them how to do stuff. It's pretty great. Yesterday I worked with a doctor from South America to mine patient data, which might save some lives down the road. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pick a niche. Become an expert. And just give it away for free. No ads. No $100 whitepapers. Just give it away, and people will think you're smart and nice and awesome. And they will ask for your help, and offer to pay you. When you apply to a company and they ask &quot;why should we hire you?&quot; and you say &quot;because I have the number one blog on [topic x], and get x thousand hits a month, and everyone comes to me for expert advice&quot;, well that's pretty hard to argue with. &lt;/p&gt;&#xA;" OwnerUserId="10190" LastEditorUserId="10190" LastEditorDisplayName="" LastEditDate="2010-12-21T22:28:49.103" LastActivityDate="2010-12-21T22:28:49.103" />
  <row Id="26815" PostTypeId="2" ParentId="26688" CreationDate="2010-12-15T21:11:11.937" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I was wondering how important keeping&#xA;  a blog and generating tech related&#xA;  content is for career development? How&#xA;  does having one/not having one effect&#xA;  your potential for getting hired?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;having one is helpful. these days, the first thing someone does is google your name. if your name shows up in some technical areas, then +1. it's not just blogs though. it can be forums, open source version control comments, mailing lists, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;it's not hard to get started. what i do is whenever i solve a problem or have an insight on something, or even just want to comment on it, i write a little blog entry. do i think i'm saying something important or meaningful? of course not. for us non-nihilists, it's a tough mental leap to start blabbing publicly when we know that what we are saying is of little value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;there's an important flip side of this. keep personal information to a minimum. you never know what sort of thing is going to turn someone off. for example, by law (in the US), an employer can't ask if you have children. if you expose that you have 8 children on facebook, they just got around that law. something you think is innocuous today might harm you down the road. once you post it, it's there forever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;you have to judge the risk / benefit. if you think it's really important that everyone sees that picture of you mooning the senior citizens, if that's more important than getting the job you want down the road, then by all means post that picture.&lt;/p&gt;&#xA;" OwnerUserId="10189" LastActivityDate="2010-12-15T21:11:11.937" />
  <row Id="26816" PostTypeId="1" AcceptedAnswerId="26819" CreationDate="2010-12-15T21:11:55.977" Score="2" ViewCount="157" Body="&lt;p&gt;&lt;strong&gt;What are the myths about how the internet works?&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Please keep it technical, in such a way that there is a value for programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example 1:&#xA;&lt;strong&gt;Source URL is always true&lt;/strong&gt;&#xA;Many applications assume the that data packets from the IP address that packets are using. The assumption is not always true. Falsifying the IP addresses have been increasingly used today in order to disguise the sender's true identity. Fake IP addresses can also be used in DOS attacks&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example 2:&lt;strong&gt;Sent data will remain unaltered during the route&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example 1&amp;amp;2 are security issues that every server/client programmers should know about.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-12-15T21:30:48.957" LastActivityDate="2010-12-15T21:39:28.090" ClosedDate="2010-12-15T21:42:13.567" Title="What are the myths about how the internet works?" Tags="&lt;internet&gt;&lt;myth&gt;" AnswerCount="2" CommentCount="26" FavoriteCount="1" />
  <row Id="26817" PostTypeId="2" ParentId="26771" CreationDate="2010-12-15T21:14:55.250" Score="4" ViewCount="" Body="&lt;p&gt;IMO that depends (among many other things) on how much vacation you have per year. Living in Europe I have &lt;em&gt;more than one month&lt;/em&gt; of vacation each year. If I was in the US, with, say, &lt;strong&gt;&lt;em&gt;two weeks&lt;/em&gt;&lt;/strong&gt; vacation per year, I'd be &lt;strong&gt;&lt;em&gt;much less willing&lt;/em&gt;&lt;/strong&gt; to be reachable in those two weeks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I usually do is to leave a mobile phone number, indicating that I might not be reachable, but will try to get back ASAP.&lt;br&gt;&#xA;However, I'm not sure they're realizing that, if we were sharing a meal in front of the tent after a long day of hiking, I'd consider it impossible to get back right away. Likewise if I spent the day in the natural history museum with the kids.&lt;br&gt;&#xA;Taking 10mins to log in per VPN from home and have a look at something to make a guess at what it would take to fix it is different. &lt;/p&gt;&#xA;" OwnerUserId="1512" LastEditorUserId="1512" LastEditorDisplayName="" LastEditDate="2010-12-15T22:49:34.797" LastActivityDate="2010-12-15T22:49:34.797" CommentCount="4" />
  <row Id="26818" PostTypeId="2" ParentId="26775" CreationDate="2010-12-15T21:23:06.810" Score="10" ViewCount="" Body="&lt;h2&gt;Writing complex SQL&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;ORM are great for basic things. However for complex situations you will have to write SQL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So in short, there most certainly is a need for SQL and it will always remain so.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-15T21:23:06.810" CommunityOwnedDate="2011-01-25T15:25:22.513" CommentCount="1" />
  <row Id="26819" PostTypeId="2" ParentId="26816" CreationDate="2010-12-15T21:28:04.247" Score="2" ViewCount="" Body="&lt;p&gt;Here are two myths:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The internet is constructed of pipes.&lt;/li&gt;&#xA;&lt;li&gt;Al Gore invented the internet&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="9349" LastActivityDate="2010-12-15T21:28:04.247" />
  <row Id="26820" PostTypeId="2" ParentId="26775" CreationDate="2010-12-15T21:30:05.383" Score="0" ViewCount="" Body="&lt;p&gt;Even if you didn't need to write it in your code, it's pretty handy to be able to use it when you have terminal access to a database server. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, most of what makes programming a challenge is working within the restrictions that life sets us- often we &lt;em&gt;are&lt;/em&gt; working with old code, or old versions of databases and don't have the opportunity to install the latest ORM library for whatever language we are working with. In that situation you will need any tool at your disposal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The rest of the time you may not need SQL for your CRUD stuff, but there is a lot more to SQL than simple SELECT, INSERT, UPDATE and basic JOIN queries. You can do very clever things with it and although you may not use them often, it's useful to know what they are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Increasingly, I think we will find ourselves in a post SQL world, however- most of the Cloud services use non-sql table storage and for simple CRUD type work the full power of SQL is unnecessary. But that doesn't mean there will be no value in understanding it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, of course, &lt;em&gt;someone&lt;/em&gt; has to know enough to write a better ORM system if the current ones aren't up to much. It would help them if they knew SQL...&lt;/p&gt;&#xA;" OwnerUserId="4027" LastEditorUserId="4027" LastEditorDisplayName="" LastEditDate="2010-12-15T22:41:33.450" LastActivityDate="2010-12-15T22:41:33.450" CommunityOwnedDate="2011-01-25T15:25:22.513" CommentCount="1" />
  <row Id="26821" PostTypeId="2" ParentId="26769" CreationDate="2010-12-15T21:37:35.247" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://chrome.google.com/extensions/detail/ooehfcnceghcfhnilipfdmfoiaahmopc&quot; rel=&quot;nofollow&quot;&gt;Development and Coding Search&lt;/a&gt; - awesome&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You want instant documentation in almost every language? Then this is the plugin for you. &lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-15T21:37:35.247" CommentCount="1" />
  <row Id="26822" PostTypeId="2" ParentId="26816" CreationDate="2010-12-15T21:39:28.090" Score="0" ViewCount="" Body="&lt;p&gt;I've read the examples but do you understand how broadly your question could be interpreted?  Does the running out of IPv4 address space count as a myth or is it real?  &lt;a href=&quot;http://www.snopes.com/computer/internet/internet.asp&quot; rel=&quot;nofollow&quot;&gt;Snopes.com&lt;/a&gt; has lots of myths about the internet.  Myths aren't necessarily false you do realize, right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.merriam-webster.com/dictionary/myth&quot; rel=&quot;nofollow&quot;&gt;Merriam-Webster&lt;/a&gt; has these meanings of the term myth, just in case one wants a source:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;1 a: a usually traditional story of&#xA;  ostensibly historical events that&#xA;  serves to unfold part of the world&#xA;  view of a people or explain a&#xA;  practice, belief, or natural&#xA;  phenomenon &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;b : parable, allegory&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;2 a: a popular belief or tradition that has&#xA;  grown up around something or someone;&#xA;  especially: one embodying the ideals&#xA;  and institutions of a society or&#xA;  segment of society  &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;b : an unfounded or false&#xA;  notion &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;3: a person or thing having&#xA;  only an imaginary or unverifiable&#xA;  existence &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;4: the whole body of myths&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-15T21:39:28.090" />
  <row Id="26823" PostTypeId="1" CreationDate="2010-12-15T21:51:12.330" Score="2" ViewCount="251" Body="&lt;p&gt;Many books teach a programming language.  However, knowing a specific language is not the same as knowning application or GUI design nor project layout. So, attempting to make an average application fails after learning a language.  It is clear that knowing a language is not enough to make an application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you agree with what I have said, why doesn't anyone mention this instead of teaching pure language syntax and features?  Why books don't mention how to make a better application ?&lt;/p&gt;&#xA;" OwnerUserId="3664" LastEditorUserId="3664" LastEditorDisplayName="" LastEditDate="2010-12-26T20:35:08.573" LastActivityDate="2010-12-26T20:35:08.573" Title="Learning language is enough to create average applications ?" Tags="&lt;programming-languages&gt;&lt;self-improvement&gt;&lt;applications&gt;" AnswerCount="7" CommentCount="12" FavoriteCount="1" />
  <row Id="26824" PostTypeId="2" ParentId="26775" CreationDate="2010-12-15T21:54:43.620" Score="3" ViewCount="" Body="&lt;p&gt;ORMs exist due to the impedance mismatch between our common relational DB implementations and our OO language features.  They are only a bridge, yet most folks treat SQL like the Limburger cheese in the fridge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can justifiably say that you will always use your ORM or other abstracted data access layer instead of treating SQL/stored procedures/views as a first-class interface(s), then you'd likely be better off without touching SQL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In practice, I've never seen a pure-ORM project that didn't require at least SQL to query the the database for final validation.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-12-15T21:54:43.620" CommunityOwnedDate="2011-01-25T15:25:22.513" />
  <row Id="26825" PostTypeId="2" ParentId="26823" CreationDate="2010-12-15T21:55:41.323" Score="4" ViewCount="" Body="&lt;p&gt;Even knowing every language will not make you a great application developer. Design principles come into play and without experience/familiarity of those you can write all the code in  but still struggle to design a application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is why at least during my undergraduate years, the Computer Science department teaches little in specific languages and spends a significantly larger portion of time discussing algorithm design and efficiency along with design methodologies.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The end result is you graduate learning the languages you had to code in or chose to code in but you actually know how to teach yourself how to code in any language.  The design principles can be applied in any programming environment to some capacity and that is the beauty of Computer Science.  Not learning to be a  guru, learning how to learn more and knowing you need to learn more to become a guru. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(Apologize for the rant, but questions like this make me realize that my education was worth the financial cost.)&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, after re-reading your question I wanted to make one last remark.  There are plenty of great resources on design which focus less on a specific language and more on design aspects of programming.  &lt;a href=&quot;http://cc2e.com/&quot; rel=&quot;nofollow&quot;&gt;Code Complete&lt;/a&gt; is the first that comes to my mind but there are many others as well. &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-12-15T21:55:41.323" CommentCount="1" />
  <row Id="26826" PostTypeId="2" ParentId="26596" CreationDate="2010-12-15T22:01:46.853" Score="1" ViewCount="" Body="&lt;p&gt;Writing code/Programming is not like putting a hammer to a nail.  Much like &quot;writing&quot; in general, it's not something that you can apply typically metrics too - in my opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Couldn't you simply look at their check-ins, or what they've done through peer-review, code-review? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or you know, if they actually produce working code and solutions that fix problems?&lt;/p&gt;&#xA;" OwnerUserId="6430" LastActivityDate="2010-12-15T22:01:46.853" />
  <row Id="26827" PostTypeId="2" ParentId="16070" CreationDate="2010-12-15T22:02:26.153" Score="2" ViewCount="" Body="&lt;p&gt;As a way of explaining it to another person I would go the other way around, from the outcomes back:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Abstraction in computer programming is the act of generalizing something to the point that more than one similar thing can be generally treated as the same and handled the same.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you want to expand on that you can add:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Sometimes this is done to achieve polymorphic behavior (interfaces and inheritance) to cut down on repetitive code up front, other times it is done so that the inner workings of something could be replaced at a future date with a similar solution without having to alter the code on the other side of the abstracted container or wrapper, hopefully cutting down on rework in the future.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Beyond that, I think you have to start into examples...&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-12-15T22:02:26.153" />
  <row Id="26828" PostTypeId="2" ParentId="1" CreationDate="2010-12-15T22:03:06.010" Score="11" ViewCount="" Body="&lt;p&gt;In some cases, no amount of good naming, refactoring etc. can replace a comment. Just look at this real-world example (language is Groovy):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  response.contentType=&quot;text/html&quot;&#xA;  render '{&quot;success&quot;:true}'&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Looks strange, doesn't it? Probably a copy-paste-error? Cries for a bugfix?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now the same with comments:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  // DO NOT TOUCH THE FOLLOWING TWO LINES; the ExtJS UploadForm requires it exactly like that!!!&#xA;  response.contentType=&quot;text/html&quot;  // must be text/html so the browser renders the response within the invisible iframe, where ExtJS can access it&#xA;  render '{&quot;success&quot;:true}'         // ExtJS expects that, otherwise it will call the failure handler instead of the succss handler&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-15T22:03:06.010" CommunityOwnedDate="2011-01-31T09:04:54.130" CommentCount="1" />
  <row Id="26829" PostTypeId="1" CreationDate="2010-12-15T22:10:35.830" Score="4" ViewCount="430" Body="&lt;p&gt;Preference for dynamic and static typing is largely a matter of taste, and different people find them more or less suitable in different situations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is, would it be technically possible to have a statically-typed alternative to JavaScript for client-side web page augmentation etc.?&lt;/p&gt;&#xA;" OwnerUserId="5402" LastEditorUserId="5402" LastEditorDisplayName="" LastEditDate="2010-12-15T22:54:27.777" LastActivityDate="2010-12-30T21:16:10.670" Title="Would a statically typed alternative to JavaScript on webpages be practical?" Tags="&lt;javascript&gt;&lt;scripting&gt;&lt;dynamic-typing&gt;&lt;static-typing&gt;&lt;jit&gt;" AnswerCount="11" CommentCount="7" FavoriteCount="1" />
  <row Id="26830" PostTypeId="2" ParentId="26829" CreationDate="2010-12-15T22:15:02.723" Score="3" ViewCount="" Body="&lt;p&gt;In theory, you can stick any scripts on a page you want. The &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tag has a &lt;code&gt;type&lt;/code&gt; attribute, after all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only barrier is getting enough market share in terms of implementation in different browsers to make it worthwhile to use.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;So yeah, it's kind of unlikely at this point.&lt;/p&gt;&#xA;" OwnerUserId="9029" LastActivityDate="2010-12-15T22:15:02.723" CommentCount="6" />
  <row Id="26831" PostTypeId="2" ParentId="26823" CreationDate="2010-12-15T22:16:37.247" Score="0" ViewCount="" Body="&lt;p&gt;I guess since design patterns are language agnostic, when somebody writes a book for C# (for example) they would only include the meat of C# (or else a lot of it would be skimmed or just skipped by the reader). Now, there are books out there (I'm sure) that cover design patterns in C# but the majority of the people who would buy a book on a language want to learn that language and not the theory behind software engineering.&lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2010-12-15T22:16:37.247" />
  <row Id="26832" PostTypeId="2" ParentId="26562" CreationDate="2010-12-15T22:19:47.487" Score="0" ViewCount="" Body="&lt;p&gt;AgileZen is free for one person: &lt;a href=&quot;http://agilezen.com/pricing&quot; rel=&quot;nofollow&quot;&gt;http://agilezen.com/pricing&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="928" LastActivityDate="2010-12-15T22:19:47.487" />
  <row Id="26833" PostTypeId="2" ParentId="26823" CreationDate="2010-12-15T22:23:16.110" Score="6" ViewCount="" Body="&lt;p&gt;There are books on algorithms, there are books on design patterns. Many books about a programming language will also provide a step-by-step instruction on how to create a simple real-world application. Books about frameworks will definitely show you how to create  applications using those frameworks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But don't expect that any book can make real-world software development &lt;em&gt;easy&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-15T22:23:16.110" />
  <row Id="26835" PostTypeId="2" ParentId="26829" CreationDate="2010-12-15T22:34:41.323" Score="13" ViewCount="" Body="&lt;p&gt;Since it's highly unlikely that another language will find broad adoption, your best bet would be to create a statically typed version of JavaScript (i.e. a language close to java) and a preprocessor that converts that to normal JavaScript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, your script looks like that:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;script type=&quot;text/staticjavascript&quot;&amp;gt;&#xA;   String foobar(int foo, String bar) {&#xA;      String result=&quot;&quot;;&#xA;      for (int i=0; i&amp;lt;foo; i++) {&#xA;         result += bar;&#xA;      }&#xA;      return result;&#xA;   }&#xA;&amp;lt;/script&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and the preprocessor checks that every variable, function, object etc. is used correctly according to it's type, and changes the script to &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&#xA;   function foobar(foo, bar) {&#xA;      var result=&quot;&quot;;&#xA;      for (var i=0; i&amp;lt;foo; i++) {&#xA;         result += bar;&#xA;      }&#xA;      return result;&#xA;   }&#xA;&amp;lt;/script&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;which every browser can handle.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="6617" LastEditorDisplayName="" LastEditDate="2010-12-15T22:45:50.060" LastActivityDate="2010-12-15T22:45:50.060" CommentCount="5" />
  <row Id="26836" PostTypeId="2" ParentId="26562" CreationDate="2010-12-15T22:38:56.223" Score="1" ViewCount="" Body="&lt;p&gt;Jira ( $10 AUD and the proceeds go to charity.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Jira with Agile CRC card (Gereenhopper) ( $20 AUD and the proceeds go to charity.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They used to have a Jira Personal license with the catchy tagline **&quot;because you have &lt;/p&gt;&#xA;&#xA;&lt;p&gt;personal issues&quot;**&lt;/p&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-12-15T22:38:56.223" CommentCount="1" />
  <row Id="26837" PostTypeId="2" ParentId="23507" CreationDate="2010-12-15T22:40:41.470" Score="1" ViewCount="" Body="&lt;p&gt;Much of what you do in JavaScript is essentially intertwined with DOM, CSS and browser compatibility, so understanding the DOM is one of the primary requirements to mastering JavaScript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning the core features of the language, such as prototype based object orientation, anonymous functions, and more general language features such as loops, conditions etc. is the key to understanding any code that you read that isn't specifically interacting with DOM/CSS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will also need to learn the language standard library, e.g. the String and Math and other core object functions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should also study algorithms, if you wish to gain a true and complete understanding of how things are being done, and how to implement more advanced solutions, this knowledge is fundamental to understanding advanced programming, and goes beyond language specific syntax. &lt;/p&gt;&#xA;" OwnerUserId="3787" LastActivityDate="2010-12-15T22:40:41.470" />
  <row Id="26838" PostTypeId="2" ParentId="26596" CreationDate="2010-12-15T22:49:25.547" Score="1" ViewCount="" Body="&lt;p&gt;How about Rate of sales of the product/service.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I've heard it's called a commission/percentage of the gross&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People buy good products, don't they ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The business wants to sell the product ( or maybe service, same difference for this)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if that is what you want, measure it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A bit like saying people who design a car that gets good reviews &amp;amp; sells well have done a good job really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now adopt this metric and programming team will want to interact with sales guy for two reasons.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Promsing underliverable&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Not selling product to customers effectively&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4623" LastActivityDate="2010-12-15T22:49:25.547" />
  <row Id="26839" PostTypeId="2" ParentId="26829" CreationDate="2010-12-15T22:52:50.430" Score="2" ViewCount="" Body="&lt;p&gt;Would it be practical?  &lt;strong&gt;No.&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it possible?  Yes!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developing your own statically-typed alternative to JavaScript would be time-consuming, at best.  At worst, you wouldn't be able to convince any existing browsers to implement your client scripting language, and would have to write your own.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastEditorUserId="10106" LastEditorDisplayName="" LastEditDate="2010-12-30T21:16:10.670" LastActivityDate="2010-12-30T21:16:10.670" CommentCount="2" />
  <row Id="26840" PostTypeId="2" ParentId="26829" CreationDate="2010-12-15T22:55:00.913" Score="14" ViewCount="" Body="&lt;p&gt;There's certainly no technical reason such a thing couldnt exist.  There's nothing particular about client-side code that &lt;em&gt;mandates&lt;/em&gt; the use of dynamically typed languages.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-15T22:55:00.913" />
  <row Id="26841" PostTypeId="2" ParentId="26771" CreationDate="2010-12-15T22:59:27.897" Score="3" ViewCount="" Body="&lt;p&gt;I say tough luck!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your job might not be like the doctor, but even though you don't save lives, some things come attached with your career choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO the most ethical thing to do (though I understand it's difficult in many cases) is give the whatever contact number they need, clarify VERY well what they can expect from you in a holiday (availability for a major outage etc), you must manage it carefully and politely but you can avoid any abuse by stating than &lt;strong&gt;you are on you vacations&lt;/strong&gt; and this does not correspond.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I you do this, firm but gently, (normal) people get and won't bother again.&lt;/p&gt;&#xA;" OwnerUserId="5014" LastActivityDate="2010-12-15T22:59:27.897" CommentCount="1" />
  <row Id="26842" PostTypeId="1" AcceptedAnswerId="26843" CreationDate="2010-12-15T23:00:03.030" Score="4" ViewCount="80" Body="&lt;p&gt;In Database 101 you learned never to distribute the sensitive database password along with your program, since all a person has to do is reverse engineer the program, find where you actually need the original password for authentication, then echo/print that line. However when you have multiple remote programs that need to talk to a central database, what do you do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My hackish solutions used to involve PHP, tons of &lt;code&gt;GET&lt;/code&gt; variables, and JSON. I would make a request to the server with a set mode and parameters, then parse the JSON output. It was buggy, not entirely secure (only slowed an attacker down) since I didn't have any registration mechanism, hard to scale, and made all existing ORM's useless. Besides, it was attempting to reinvent SSH or SSL, not something that's too terribly smart.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's the alternative though? What other options are out there that can provide security for the database while making it easy on me?&lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-12-15T23:01:10.877" LastActivityDate="2010-12-16T22:33:48.370" Title="Best way to work easily with a database in remote programs?" Tags="&lt;database&gt;&lt;distributed-development&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="26843" PostTypeId="2" ParentId="26842" CreationDate="2010-12-15T23:04:04.570" Score="4" ViewCount="" Body="&lt;p&gt;The biggest thing I can comment on with databases and applications is to have multiple accounts.  Separate accounts for read and write access also and give these accounts the least required access to complete the given task.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You do have alternatives such as VPN's/SSH tunnels too have a more secure channel for distributed remote access to your central database.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, you should never really in your applications directly deal with the database, rather your applications should have a database abstraction layer or some sort which interacts with database.  This is one: good design, and two: a better approach as you place all the DB interaction in one place and provide your application with an API to use the database interaction layer.  &lt;/p&gt;&#xA;" OwnerUserId="136" LastActivityDate="2010-12-15T23:04:04.570" CommentCount="3" />
  <row Id="26844" PostTypeId="1" AcceptedAnswerId="26857" CreationDate="2010-12-15T23:10:57.703" Score="4" ViewCount="124" Body="&lt;p&gt;This is a viewpoint I've started to realize recently about some companies that I have worked for. They had their own software product that they developed in-house but most of the focus was on building an in-person sales team to push their product to businesses throughout the country. I figure that companies that are exclusively &quot;online&quot;, meaning that their revenue source comes from online transactions where there is no &quot;face&quot; of the company to the customer would have a different work culture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just curious if anyone has worked for both types of companies and notices a difference. I myself am hoping to get more into contract programming and figure that companies that don't have to employ a sales-force and things like that would be more focused on technology and maybe even willing to be flexible on partial telecommute, etc&lt;/p&gt;&#xA;" OwnerUserId="10087" LastActivityDate="2010-12-16T02:20:47.777" Title="Is How the Company Makes Its Money One of The Most Important Determining Factors in their work environment, culture, etc" Tags="&lt;work&gt;&lt;business&gt;&lt;sales&gt;&lt;environment&gt;" AnswerCount="4" FavoriteCount="3" />
  <row Id="26845" PostTypeId="2" ParentId="26775" CreationDate="2010-12-15T23:15:02.443" Score="0" ViewCount="" Body="&lt;p&gt;For building large scale web applications its completely unnecessary and can make things much more stressful and time wasting than they need to be. The reason for this is that any large-scale app should be making use of a memory persistence layer (in RAM) which should be memory caching parts of the DB that are frequently used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have to do things with mobile devices, etc that don't have a lot of memory to work with, where the application that is being programmed is running as a &quot;client&quot; or standalone app on a mobile device, tablet, etc than things like using SQL are still common and are important because the memory on the device is so small that you can't cache a lot of things in memory.&lt;/p&gt;&#xA;" OwnerUserId="10087" LastActivityDate="2010-12-15T23:15:02.443" CommunityOwnedDate="2011-01-25T15:25:22.513" CommentCount="2" />
  <row Id="26846" PostTypeId="2" ParentId="26609" CreationDate="2010-12-15T23:18:01.270" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Just tell it how it is.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imagine I am your boss (a fearsome prospect, I know). One day, I show up with a colleague and say to you:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;I delegate responsibility for doing&#xA;  something to this person. They are my&#xA;  delegate, and you should ask them if&#xA;  you need anything done. They may ask&#xA;  me to do it, or they may do it&#xA;  themselves. Either way, it gets done&#xA;  and you don't need to know who did&#xA;  it.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All your programmers have to do now is understand that there is a hidden reference to an object behind the presented delegate. &lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-15T23:18:01.270" />
  <row Id="26847" PostTypeId="1" AcceptedAnswerId="26850" CreationDate="2010-12-15T23:19:41.733" Score="1" ViewCount="82" Body="&lt;p&gt;Some possibilities are JSON, XML, HTML and/or Javascript fragments. &#xA;The democratic answer to this question is &quot;it depends on the situation,&quot; but I am looking for why one may be better than the others.&lt;/p&gt;&#xA;" OwnerUserId="6518" LastActivityDate="2010-12-15T23:36:28.813" Title="Best way to transport response data from an AJAX request?" Tags="&lt;ajax&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="1" />
  <row Id="26848" PostTypeId="1" CreationDate="2010-12-15T23:22:00.233" Score="7" ViewCount="485" Body="&lt;p&gt;Perhaps I'm just naive, but when I try to decipher the wall of tasks I'm targeted to do over the course of a week, I just can't help but think whoever builds the project schedule needs to get some remedial training on basic project management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I am assigned 13 tasks today, the shortest lasting .13 days (default time metric in Microsoft Project), and the longest lasting .75 days. I can't help but think that it is blatant micromanagement scheduling projects in sub 10 minute intervals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The effects of management are becoming evident in slipped tasks, resource assignment exceeding capacity by a factor of two at some points in time, and spending more time clearing tasks and figuring out what comes next than actually doing work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can I convince the project manager to create tasks with larger duration and to see the larger picture?&#xA;&lt;img src=&quot;http://i.imgur.com/pV1TT.jpg&quot; alt=&quot;Micromanagement == insane schedules?&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="4765" LastEditorUserId="4765" LastEditorDisplayName="" LastEditDate="2010-12-17T20:12:55.147" LastActivityDate="2011-01-15T05:14:44.183" Title="How to deal with project managers who micromanage?" Tags="&lt;project-management&gt;&lt;micro-management&gt;" AnswerCount="6" CommentCount="7" FavoriteCount="3" />
  <row Id="26849" PostTypeId="2" ParentId="26844" CreationDate="2010-12-15T23:23:12.930" Score="0" ViewCount="" Body="&lt;p&gt;There can be some big differences even amongst dot-coms though.  I've worked for a couple and the differences in scale and process were rather huge as the first one never even had sales of $1,000,000 while the other's quarterly revenue was over $100,000,000.  The differences were substantial yet the first dot-com was the older company, it hadn't matured in quite the same way.  In one company, a push to production was done almost any time while in the other case it is carefully scheduled, planned and organized weeks in advance.  In both cases I was part of the in-house development people that made the site perform whatever function was needed so my customers were internal initially and then the public as things got a sign-off to be released into the wild.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I've worked in a couple of other types of businesses so I've seen other kinds of work too.  Some places are closer to that start-up of, &quot;Just make it work now!&quot; mentality and others are more formal when it comes to process so that the mentality is more of a, &quot;Let's make this work well for everyone, okay?&quot;  Where I am now is rather formal about how things get done which has its advantages and disadvantages.  Every company has some kind of sales force unless you are the government, but maybe I'm a little cynical on this.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Sometimes IT can seem eerily like the old Wild West where cowboys try to run things, which at times can work but often causes a lot of trouble.  Having tons of freedom can be good and bad depending on what one wants to do with it as given enough rope, you can either tie up the bad guys or hang yourself depending on what you want to get done, know what I mean?  Hopefully that doesn't cause anyone any nightmares as I'm just trying to show that there is a range of how things can be handled.  Maybe I should put a mature subject matter warning on some of my posts. :)&lt;/p&gt;&#xA;" OwnerUserId="4327" LastEditorUserId="4327" LastEditorDisplayName="" LastEditDate="2010-12-15T23:40:49.563" LastActivityDate="2010-12-15T23:40:49.563" CommentCount="1" />
  <row Id="26850" PostTypeId="2" ParentId="26847" CreationDate="2010-12-15T23:26:10.617" Score="6" ViewCount="" Body="&lt;p&gt;I prefer &lt;strong&gt;JSON&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Many many libraries out there for it in all languages&lt;/li&gt;&#xA;&lt;li&gt;Doesn't require a complicated schema&lt;/li&gt;&#xA;&lt;li&gt;Usually can be converted into an associate array or language equivalent quite easily. This is what makes JSON in PHP so easy&lt;/li&gt;&#xA;&lt;li&gt;Compact: Not a lot of boilerplate&lt;/li&gt;&#xA;&lt;li&gt;Easy to use: XML is notoriously hard to work with in any language, while JSON is very easy, especially if your language has associate arrays&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-12-15T23:26:10.617" />
  <row Id="26851" PostTypeId="2" ParentId="26848" CreationDate="2010-12-15T23:34:17.743" Score="0" ViewCount="" Body="&lt;p&gt;Perhaps you could try to argue that there is a lot of overhead on defining and estimating tasks that are so small.  That instead of writing out all the details and estimates for 4 tasks that are each to take .125 days, it may be better to have 1 task estimated at .5 day that can be set up much faster.  Now, this does have a few caveats:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Larger estimates still have to be close to right.  If in bundling things together the estimates get less accurate this could be a problem as there is a trust that the developers want but the project manager may now want to give.  This is more about addressing a fear before the project manager has the precedence to say, &quot;Look you already messed this up before.  Why should I trust you now?&quot; with some evidence.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;That the people that look at the work done such as the Project Manager and sponsors can understand there may be a minimal difference between doing 101 tiny tasks and 10 large work items as it could be the same work at times.  Some people may view quantity as what counts and unfortunately that is where the catch comes in play here as I see it.  I'm not sure how to resolve this issue as the typical solution I'd see is trying to get the other person to see the logic which may or may not go over well.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;How technically savvy is the PM?  This can be another point as if the PM isn't that savvy, then there is a concern that this may come off as snobby or arrogant which isn't the intent as you want the freedom to do something as you see rather than being given the to-do list with 10 steps of how to do something from a to j.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Those would be the areas of concern I'd be sure to know how to handle questions he may have in wanting to put this into practice as what I think you want is fair and realistic to my mind.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-15T23:34:17.743" />
  <row Id="26852" PostTypeId="2" ParentId="26848" CreationDate="2010-12-15T23:34:42.767" Score="9" ViewCount="" Body="&lt;p&gt;Ask your manager to set priorities on each one of the tasks.  Then, agree to complete the tasks in priority order.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He won't do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could try introducing management to &lt;a href=&quot;http://en.wikipedia.org/wiki/Critical_Chain_Project_Management&quot; rel=&quot;nofollow&quot;&gt;CCPM.&lt;/a&gt;  They'll find out in a hurry that the single biggest bleeder of productivity is interruptions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But seriously, do you really think you can change that kind of mindset?  Lives have been squandered trying.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-15T23:34:42.767" CommentCount="1" />
  <row Id="26853" PostTypeId="2" ParentId="26847" CreationDate="2010-12-15T23:36:28.813" Score="2" ViewCount="" Body="&lt;p&gt;When it comes to JSON vs. XML, I also prefer JSON (see TheLQs excellent answer), but when some people prefer XML for whatever reason, I'm fine with that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Returning HTML can be okay in some situations, but I dislike it for a simple reason: it violates the MVC distribution of responsibilities; i.e. the controler does something (creating a layout) that should be up to the view.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Returning JavaScript fragments, except for the special case of JSON, is very questionable and should be avoided IMO. In my current project, I've done it once, but I consider it a bad idea and will probably refactor it soon. Doing that on a large scale creates systems that are hard to understand, difficult to debug and a nightmare to maintain.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-15T23:36:28.813" />
  <row Id="26854" PostTypeId="2" ParentId="26769" CreationDate="2010-12-15T23:46:47.833" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;https://chrome.google.com/extensions/detail/bmagokdooijbeehmkpknfglimnifench&quot; rel=&quot;nofollow&quot;&gt;Firebug Lite&lt;/a&gt; is the Chrome analog to Firebug for Firefox. It's an excellent complement to the Web Developer toolbar already mentioned.&lt;/p&gt;&#xA;" OwnerUserId="8187" LastActivityDate="2010-12-15T23:46:47.833" />
  <row Id="26855" PostTypeId="2" ParentId="26848" CreationDate="2010-12-15T23:48:50.257" Score="3" ViewCount="" Body="&lt;p&gt;.13 days @ 8 hours per day (480 minutes per day) = 62.4 minutes (just over an hour).  Planning down to one-hour tasks isn't that bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More importantly, how are the tasks getting onto the schedule in the first place?  And how are the durations being assigned?  If your project manager is coming up with the list of tasks and what the durations should be, then that's a problem.  It's your PM's job to &lt;em&gt;track&lt;/em&gt; these items, but it's the team's responsibility to come up with the list of tasks and estimates for those tasks.  Planning is a team sport.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It sounds like there are some other issues at play here also, and you may have some very valid complaints.  Have you tried talking with the PM one-on-one about your concerns?&lt;/p&gt;&#xA;" OwnerUserId="10106" LastEditorUserId="8820" LastEditorDisplayName="" LastEditDate="2010-12-16T06:16:52.723" LastActivityDate="2010-12-16T06:16:52.723" CommentCount="6" />
  <row Id="26856" PostTypeId="2" ParentId="26829" CreationDate="2010-12-16T00:02:26.750" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;My question is, would it be technically possible to have a statically-typed alternative to JavaScript for client-side web page augmentation etc.?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Sure. The &lt;a href=&quot;http://code.google.com/webtoolkit/&quot; rel=&quot;nofollow&quot;&gt;Google Web Toolkit&lt;/a&gt; compiles statically-typed Java to JavaScript... Just think of it: all the beauty and flexibility of Java, with all the performance of machine-generated JavaScript!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously though, you could do this for all sorts of languages, and many have tried (there are, or have been, compilers for C and C# as well). Whether the end result is &lt;em&gt;practical&lt;/em&gt; or not depends on what you're trying to accomplish: Google's after a consistent platform for developing very large client-side apps, and has their own JavaScript engine to boot; you may well find that adopting such a beast for hover-effects and the odd AJAX call introduces far more pain than simply learning to live with a bit of untyped code...&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-12-16T00:02:26.750" CommentCount="3" />
  <row Id="26857" PostTypeId="2" ParentId="26844" CreationDate="2010-12-16T00:10:52.420" Score="3" ViewCount="" Body="&lt;p&gt;Yes, the way the product is sold has a huge impact on the development process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In one company I worked for, the product was sold as a &quot;service&quot;, meaning all the software ran on our servers and clients connected to it via a web interface. In this company, updates were pushed to the &quot;live&quot; site sometimes within minutes of a bug being found.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We did try to stage our updates as much as possible (for example, we would advertise the fact that 3pm on Tuesdays was the &quot;maintenance time&quot; and the site might down during that time) but in reality, laziness or expedience would get the better of people and some of the guys would &lt;em&gt;never&lt;/em&gt; wait for that time to do their updates: they'd go live as soon as they were ready.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, in another company I worked for, we sold our product pre-packaged to &quot;enterprise&quot; customers (governments, banks and so on). In this case, even a simple bug fix could take &lt;em&gt;months&lt;/em&gt; to get to the customer site because they'd never go out without a round of in-house testing and they would usually get bundled into &quot;service-pack&quot; style releases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This was a much larger company as well, and while I sometimes felt rather stifled by the enormous amount of process that went into every release, it was pretty important that anything we released to the customer was good... when you're a bank, even a short down time can cost millions of dollars.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, in terms of the actual work environment, I found the latter to be rather more relaxed and flexible. When your release schedule is in the order of months, working from home a few days a week, or taking extended leave isn't such a huge problem. It might also have to do with the number of people working there (i.e. one person out of 50 is not as big a detriment as one person out of a team of three).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the downside is that there's also the temptation to stagnate somewhat, in terms of you get a little &lt;em&gt;too&lt;/em&gt; relaxed, perhaps...&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-16T00:10:52.420" />
  <row Id="26858" PostTypeId="2" ParentId="23303" CreationDate="2010-12-16T00:19:30.560" Score="1" ViewCount="" Body="&lt;p&gt;As written, the question is partly wrong, as some counterexamples above have shown.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I'd first refine the question to read, &quot;Why is a DBMS usually not integrated as a feature of a general-purpose, high-level programming languages?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is for the same reason that other software products such as operating systems, file systems, web servers, caching layers, etc. are usually not built-in. General purpose languages generally operate at a level of abstraction above that of such products . So it's reasonable for a programmer to implement a DBMS &lt;em&gt;in&lt;/em&gt; a general-purpose language, and that DBMS might even expose aspects of its parent language or a DB-specific, declarative language for use by DB programmers. But there are too many design options in writing a DBMS for it to be wise to fix them in a general-purpose programming language. If you do fix them, you wind up with a case like MUMPS, where the entanglement of the two results in an entire industry mired in a chicken-and-egg problem, stuck with an obsolete DBMS and an obsolete programming language.&lt;/p&gt;&#xA;" OwnerUserId="10202" LastActivityDate="2010-12-16T00:19:30.560" CommunityOwnedDate="2011-02-25T12:34:54.753" />
  <row Id="26859" PostTypeId="2" ParentId="26775" CreationDate="2010-12-16T00:42:39.807" Score="0" ViewCount="" Body="&lt;p&gt;The complexity and the amount of the SQL I write is not sufficient to make hooking an ORM framework in reasonable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I write SQL maybe once per month, if)&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-16T00:42:39.807" CommunityOwnedDate="2011-01-25T15:25:22.513" />
  <row Id="26860" PostTypeId="2" ParentId="26829" CreationDate="2010-12-16T01:25:03.497" Score="3" ViewCount="" Body="&lt;p&gt;It exists already.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/ActionScript&quot; rel=&quot;nofollow&quot;&gt;ActionScript 3&lt;/a&gt; (the scripting language behind Flash and Flex) is a dialect of ECMAScript that implements strong types, and you can use it in more or less the same client-side way as JavaScript (the difference being that AS3 requires a flash plugin, and is compiled). I personally try to steer away from it these days, but if you're in the &quot;static&quot; camp, give it a whirl.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That answers the principal question, and now that we have that, your secondary question becomes &quot;Is Flash practical?&quot; The answer is &quot;yes&quot;, with a few &quot;if&quot;s and &quot;but&quot;s&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;...if you need to hide your code for whatever reason.&lt;/li&gt;&#xA;&lt;li&gt;...if you want a very, very (past jQuery level) high level of interactivity&lt;/li&gt;&#xA;&lt;li&gt;...but even without HTML5, the cross-browser compatibilities are getting much better lately.&lt;/li&gt;&#xA;&lt;li&gt;...but HTML5 is coming soon.&lt;/li&gt;&#xA;&lt;li&gt;...but one of the big draws of static typing/compilation (as opposed to interpretation) is the added speed it allows through optimizations (and Flash doesn't really have very good speed, despite the type system)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-12-16T12:26:20.287" LastActivityDate="2010-12-16T12:26:20.287" />
  <row Id="26861" PostTypeId="1" AcceptedAnswerId="26864" CreationDate="2010-12-16T01:48:33.667" Score="2" ViewCount="141" Body="&lt;p&gt;I know this is bordering off topic but i'd like to know how it works on the program/technical side. How does CDDB work? when i insert my disc and use many music application it grabs all the titles and disc info and i am stunned how it does it. This disc i am listening to right now is sold by the band and does not have a publisher.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://web.archive.org/web/20101216013307/http://www.freedb.org/freedb/rock/43062107&quot; rel=&quot;nofollow&quot;&gt;http://web.archive.org/web/20101216013307/http://www.freedb.org/freedb/rock/43062107&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am wondering if that is all the data? does it simply look at the disc offsets? or is there more to it? While browsing online someone mentions hashing but i THINK that is completely BS because a few ints isnt much data to stream. Anyways i am asking for answers and not speculation.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-12-16T07:11:30.377" ClosedDate="2010-12-17T12:43:54.423" Title="How does CDDB work?" Tags="&lt;database&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="26862" PostTypeId="2" ParentId="26844" CreationDate="2010-12-16T01:54:26.203" Score="1" ViewCount="" Body="&lt;p&gt;taking the (title) question at face value, I'd have to say &lt;/p&gt;&#xA;&#xA;&lt;h1&gt;No&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;because the corporate culture reflects primarily the management style of the senior executives, regardless of whether they sell SaaS or biscuits out the back door.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-16T01:54:26.203" />
  <row Id="26863" PostTypeId="2" ParentId="26609" CreationDate="2010-12-16T02:14:41.943" Score="0" ViewCount="" Body="&lt;p&gt;If they have a background (C/C++) for it then explaining that it's a strongly typed function pointer may be sufficient albeit not 100% accurate.  I honestly felt that I really grokked them once I started working with LINQ to objects.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var results = myListOfInt.Where(x=&amp;gt;x&amp;gt; 5);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;is equivalent to&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Func&amp;lt;int, bool&amp;gt; myFunc = x=&amp;gt; x &amp;gt; 5;&#xA;var results = myListOfInt.Where(myFunc);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;is equivalent to &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class ....&#xA;{&#xA;    private bool SomeFunc(int x){ return x &amp;gt; 5}&#xA;&#xA;    public void DoSomething()&#xA;    {&#xA;        var results = myListOfInt.Where(SomeFunc);&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4819" LastActivityDate="2010-12-16T02:14:41.943" />
  <row Id="26864" PostTypeId="2" ParentId="26861" CreationDate="2010-12-16T02:15:44.643" Score="3" ViewCount="" Body="&lt;p&gt;There is &lt;a href=&quot;http://ftp.freedb.org/pub/freedb/misc/freedb_howto1.07.zip&quot; rel=&quot;nofollow&quot;&gt;a &quot;how to&quot; at the freedb website&lt;/a&gt; with the information necessary to add freedb support to an application. This explains the algorithm used.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;..the software computes a &quot;disc ID&quot;&#xA;  which is an identifier that is used to&#xA;  access the freedb.  The disc ID is an&#xA;  8-digit hexadecimal (base-16) number,&#xA;  computed using data from a CD's&#xA;  Table-of-Contents (TOC) in MSF (Minute&#xA;  Second Frame) form.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Full details of the disc ID computation, and sample C code, are in an appendix of that document.&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-12-16T02:15:44.643" />
  <row Id="26865" PostTypeId="2" ParentId="26844" CreationDate="2010-12-16T02:20:47.777" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It Depends&lt;/strong&gt; - How the company makes its money is going to have some impact on the company in that a company that relies heavily upon IT and software development for its main revenue stream is going to treat its developers much better than a company that primarily sells widgets and just has a small IT staff to maintain the internal systems. Likewise, who the company works for is going to have an impact on things. If a company works mostly for governments and its employees need to have security clearances then they are going to behave differently than those that work for a record company in Hollywood. Likewise, more &quot;mature&quot; companies (i.e. IBM) tend to have a different corporate climate than those companies that are fairly new (i.e. Google).&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-12-16T02:20:47.777" />
  <row Id="26866" PostTypeId="1" AcceptedAnswerId="26872" CreationDate="2010-12-16T02:40:38.900" Score="12" ViewCount="841" Body="&lt;p&gt;I've been thinking about this a lot lately. Right now I work at a little web company, am almost done with school, and have written an iPhone app, but I'm not sure what else I need to focus my learning energies on. I've decided I want to do software programming, so I've been actively reading everything I can get my hands on that deals with Objective-C / C++ (Cocoa, OpenGL, etc). But those are not the things I'm talking about. I know I need to &quot;master&quot; a language or two. What I'm talking about are the other &quot;things&quot;. Things such as learning and using source control, design patterns, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What thing (or things, just one per response), would you say I should concurrently be focusing on? You can consider in your answer that I'm wanting to do the aforementioned career path, but you don't have to. I just want a nice list of things to research, and actually use in my career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;NOTE:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I asked this question on Stackoverflow, and after a few good answers, it got closed, and I was told i should move it here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is the original: &lt;a href=&quot;http://stackoverflow.com/questions/4452857/what-are-the-most-necessary-non-language-specific-things-a-programmer-needs-to-kn&quot;&gt;http://stackoverflow.com/questions/4452857/what-are-the-most-necessary-non-language-specific-things-a-programmer-needs-to-kn&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing is, a lot of the answers were about people skills, which is fine, and I do agree, but I was looking more for programming specific kind of things, like, i don't know, learning Hexadecimal, or design patterns (maybe specific), etc.&lt;/p&gt;&#xA;" OwnerUserId="8641" LastEditorUserId="4711" LastEditorDisplayName="" LastEditDate="2010-12-16T22:55:53.203" LastActivityDate="2011-02-20T17:10:34.583" CommunityOwnedDate="2011-02-20T17:10:34.583" Title="What are the most necessary non-language specific things a programmer needs to know?" Tags="&lt;career&gt;" AnswerCount="24" CommentCount="0" FavoriteCount="7" />
  <row Id="26867" PostTypeId="2" ParentId="26771" CreationDate="2010-12-16T02:51:02.730" Score="1" ViewCount="" Body="&lt;p&gt;At my last job, I never had a single day off work (whether sick, or booked annual leave) without a phonecall to fix something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You get sick of that.&lt;/p&gt;&#xA;" OwnerUserId="8477" LastActivityDate="2010-12-16T02:51:02.730" />
  <row Id="26868" PostTypeId="2" ParentId="26730" CreationDate="2010-12-16T03:01:22.560" Score="5" ViewCount="" Body="&lt;p&gt;I used to commute 2.5-3 hours a day in a car, often in stop-and-go traffic, to a stressful job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Podcasts saved my sanity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I needed something I could tune out when traffic got bad, but that was engaging enough that I could focus on it and not fret about work. Music was certainly the former, but not the latter. Since I was also working 60-70 hour weeks, this was my down time, and I didn't want to listen to more stuff about programming or technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I grabbed a bunch of free podcasts that sounded fun off iTunes. Here's some of what I listened to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;The History of Rome&lt;/strong&gt; is both solidly factual and gossipy. Did you know the greatest naval loss of life in history occurred during the Second Punic War? 400,000 soldiers and sailors in one storm because the generals ignored the old salts (&quot;Eh, general, thar's a nor-easter a-fixin' ta blow.&quot; &quot;That's very nice. Now go away.&quot;) That's a fun one to bring up when you want to make a point about a dumb programming decision.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Dr. Isabelle Pafford's &lt;strong&gt;The Roman Empire&lt;/strong&gt;, which is recordings of a class she taught at UC Berkeley. A nice complement to the other, more academic but also quite lively, and is less of a march through the years, with some special-topics lectures.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A couple of language podcasts: Annik Rubens' &lt;strong&gt;Slow German&lt;/strong&gt;, to brush up my conversation skills, and an Italian course, which was new to me.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A couple of lecture series from Oxford on philosophy. They helped me realize I believe in &quot;virtue ethics&quot;, which has led me to start reading Aristotle.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Best of luck!&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-16T03:01:22.560" CommentCount="2" />
  <row Id="26869" PostTypeId="2" ParentId="23121" CreationDate="2010-12-16T03:23:09.097" Score="1" ViewCount="" Body="&lt;p&gt;Could this &lt;a href=&quot;http://realultimatepower.net&quot; rel=&quot;nofollow&quot;&gt;website&lt;/a&gt; be partly responsible ...? &lt;/p&gt;&#xA;" OwnerUserId="3787" LastActivityDate="2010-12-16T03:23:09.097" CommentCount="2" />
  <row Id="26870" PostTypeId="2" ParentId="26730" CreationDate="2010-12-16T03:25:39.253" Score="1" ViewCount="" Body="&lt;p&gt;I like to listen to &lt;a href=&quot;http://www.cbc.ca/spark/&quot; rel=&quot;nofollow&quot;&gt;CBC's Spark&lt;/a&gt; podcast.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The topics are probably not new to anyone reading this forum.  The things I find interesting is how the topics are presented.  The show is intended for a general audience without extensive technical skills so the topics are usually pretty basic.  The thing that interests me about the show is how to present technical topics to non-technical people.  Whenever I need to explain something to a business major or my girlfriend I borrow metaphors from the show.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an added bonus the host, Nora Young is actually quite pleasant and entertaining.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Last week they were talking about IPv6 and why we need it.  They used an extended but entertaining telephone metaphor during the show.  Now whenever I explain what an IP address is (to business majors) I just say: &lt;em&gt;&quot;it is like a telephone number that computers use to call each other&quot;&lt;/em&gt;.  Easy one sentence description.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why do we need IPv6?  We are running out of telephone numbers.  &lt;/p&gt;&#xA;" OwnerUserId="1364" LastActivityDate="2010-12-16T03:25:39.253" />
  <row Id="26871" PostTypeId="2" ParentId="282" CreationDate="2010-12-16T03:27:44.087" Score="1" ViewCount="" Body="&lt;p&gt;I like to listen to &lt;a href=&quot;http://www.cbc.ca/spark/&quot; rel=&quot;nofollow&quot;&gt;CBC's Spark&lt;/a&gt; podcast.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The topics are probably not new to anyone reading this forum.  The things I find interesting is how the topics are presented.  The show is intended for a general audience without extensive technical skills so the topics are usually pretty basic.  The thing that interests me about the show is how to present technical topics to non-technical people.  Whenever I need to explain something to a business major or my girlfriend I borrow metaphors from the show.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an added bonus the host, Nora Young is actually quite pleasant and entertaining.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Last week they were talking about IPv6 and why we need it.  They used an extended but entertaining telephone metaphor during the show.  Now whenever I explain what an IP address is (to business majors) I just say: &lt;em&gt;&quot;it is like a telephone number that computers use to call each other&quot;&lt;/em&gt;.  Easy one sentence description.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why do we need IPv6?  We are running out of telephone numbers.  &lt;/p&gt;&#xA;" OwnerUserId="1364" LastActivityDate="2010-12-16T03:27:44.087" CommunityOwnedDate="2010-12-21T06:02:41.540" />
  <row Id="26872" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T03:29:46.660" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Algorithm design techniques&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the most basic level, you should understand when a linear time operation is clearly inefficient, and the same goes with quadratic operations, and so on. At this level, you'd mostly be concerned about which data-structures to use (e.g. &lt;code&gt;HashMap&lt;/code&gt;s versus &lt;code&gt;List&lt;/code&gt;s, et cetera...) and how to organize your loops.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the next level, you'll be able to know how to conceptualize your problems in terms of existing solutions. For example, the &quot;obvious&quot; solution to a problem might take quadratic time, but you might be able to see how you can first sort the data (for example) and turn it into a search problem. Similarly, you might reduce a dependency solving problem to a topological sort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the more advanced level, you will be writing your own algorithms, using the techniques you've learned &lt;a href=&quot;http://en.wikibooks.org/wiki/Computer_Science%3aAlgorithms&quot; rel=&quot;nofollow&quot;&gt;by studying algorithms&lt;/a&gt;. After divide-and-conquer, for example, you'll learn techniques like dynamic programming (and memoization), network flow (and other hill-climbing techniques), and greedy algorithms. Each will require different skills. For example, some algorithms are hard to implement, but fairly easy to prove correct; while other algorithms are easy to implement, but sometimes difficult to prove correct (such as with greedy algorithms). By the way, Google technical interviews are heavy on algorithm design, including dynamic programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps in regular application programming you won't feel like you're encountering the need very often, but it's just as likely that, once you learn these techniques, you'll realize how important they can be.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-12-16T04:54:20.483" LastActivityDate="2010-12-16T04:54:20.483" CommunityOwnedDate="2011-02-20T17:10:34.583" CommentCount="3" />
  <row Id="26873" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T03:39:31.920" Score="5" ViewCount="" Body="&lt;p&gt;I'd say people and public speaking skills. Whether you have them already or not, it's going to save your career multiple times before you realize. There are some specific things you can actually do to improve them and practice, as well: from dating to joining a ToastMasters group.&lt;/p&gt;&#xA;" OwnerUserId="10210" LastActivityDate="2010-12-16T03:39:31.920" CommunityOwnedDate="2011-02-20T17:10:34.583" CommentCount="3" />
  <row Id="26874" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T03:47:32.680" Score="6" ViewCount="" Body="&lt;p&gt;That you're not perfect, that you're prone to mistakes and that &lt;em&gt;your way&lt;/em&gt; might not be the &lt;em&gt;right way&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't even describe how I feel when I find a crusty old codebase littered with things like &lt;code&gt;while (list ($key, $val) = each ($array[0]['pl_bimg_arr'])) {&lt;/code&gt; because the last programmer was too clever to use foreach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being self-critical is important.&lt;/p&gt;&#xA;" OwnerUserId="54" LastActivityDate="2010-12-16T03:47:32.680" CommunityOwnedDate="2011-02-20T17:10:34.583" CommentCount="3" />
  <row Id="26875" PostTypeId="2" ParentId="282" CreationDate="2010-12-16T04:01:57.567" Score="1" ViewCount="" Body="&lt;h3&gt;&lt;a href=&quot;http://5by5.tv/buildanalyze&quot; rel=&quot;nofollow&quot;&gt;Build and Analyze&lt;/a&gt;&lt;/h3&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A weekly news and discussion show about the world of iPhone, iPad, iOS, and mobile web development.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;A great conversational tone that covers a lot of good ground so far (4 episodes in).&lt;/p&gt;&#xA;" OwnerUserId="8076" LastActivityDate="2010-12-16T04:01:57.567" CommunityOwnedDate="2010-12-21T06:02:41.540" />
  <row Id="26876" PostTypeId="2" ParentId="26771" CreationDate="2010-12-16T04:03:01.873" Score="6" ViewCount="" Body="&lt;p&gt;Enough commiserating... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How fortunate you are that you are so vital to the continued success of your organization. They need your contact info because what you do might as well be black magic or voodoo to them, and they are totally afraid that if they can't get to you in the case of an emergency, that everything will come crashing down around their ears..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I won't lie, I originally got into this business solely for the money, and then realized how much I loved it. My first employer in systems realized how much I loved it, and exploited my work ethic for as long as they could. Until of course my quality of life became so bad, that I had to force myself to drive to work every day. Vacations? Bah! No one could take care of the system as well as I could myself! Needless to say, that didn't last very long.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This may be a bitter pill to swallow, but what has worked for me in the past is to train a backup. Depending on where you work, and the kind of people that you work with, that perfect vacation covering helper maybe right around the corner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At one place where I was a sys admin for several years, I was usually working 10-12 hour days EVERY day because I didn't have backup helper. When I finally gave in and found someone, I was shocked that they were excited to do all of those mundane tasks that I didn't have time to automate. Every single one of those tasks that I thought 'why would anyone that is non-technical want to do this?', they took care of, and asked for more. You probably won't even have to give them any money for it, they will probably do it for the thrill of being needed. Or better yet, probably for just a referral for some other job they really want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start hinting around the office that you want to train someone to be able to help you out. A good place to start is usually the head administrative assistant, or an HR manager. Tell them that you want to try to help someone out and 'see if they can rise to the occasion', and that you want to make sure that if anything happens to you that there is a contingency in place. HR people and administrative assistants eat that stuff up, they might even have someone already in mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck, your sanity isn't worth a paycheck. It's up to you to have the strength to create the work environment where you can take a vacation when you want, and not have to worry about getting called.&lt;/p&gt;&#xA;" OwnerUserId="8369" LastEditorUserId="8369" LastEditorDisplayName="" LastEditDate="2010-12-16T05:50:43.470" LastActivityDate="2010-12-16T05:50:43.470" />
  <row Id="26877" PostTypeId="2" ParentId="26848" CreationDate="2010-12-16T04:04:59.580" Score="2" ViewCount="" Body="&lt;p&gt;Sorry, but sometimes you just gotta deal with it.  Get on the PM's good side.  Sometimes &lt;em&gt;no matter what your position&lt;/em&gt; you just simply ain't gonna like for whom you're doing work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can almost guarantee you the PM has a limited budget, has been given a horribly inadequate budget to begin-with, or has a fixed # of hours that he has to meet and for which his job and his pay is accountable.  I would also bet that management like that comes down from his management chain, doubtful the PM likes to be tracking things to that level either, in fact they're probably being micromanaged to an even finer degree.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-12-16T04:04:59.580" CommentCount="1" />
  <row Id="26878" PostTypeId="2" ParentId="26771" CreationDate="2010-12-16T04:19:33.400" Score="0" ViewCount="" Body="&lt;p&gt;I give them what they want.&lt;/p&gt;&#xA;" OwnerUserId="8802" LastActivityDate="2010-12-16T04:19:33.400" CommentCount="3" />
  <row Id="26879" PostTypeId="2" ParentId="26769" CreationDate="2010-12-16T04:24:14.203" Score="1" ViewCount="" Body="&lt;p&gt;Not an extension, but very useful: You can right-click, and &quot;Inspect Element&quot; on almost anything. Try it, and see what happens!&lt;/p&gt;&#xA;" OwnerUserId="6440" LastActivityDate="2010-12-16T04:24:14.203" CommentCount="2" />
  <row Id="26880" PostTypeId="2" ParentId="11077" CreationDate="2010-12-16T04:28:40.227" Score="0" ViewCount="" Body="&lt;p&gt;I call them &lt;strong&gt;squigly braces&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-16T04:28:40.227" />
  <row Id="26881" PostTypeId="2" ParentId="26747" CreationDate="2010-12-16T04:31:46.830" Score="9" ViewCount="" Body="&lt;p&gt;These kinds of misunderstandings are common between pragmatists and idealists. The pragmatists just think, “something went wrong... who can we blame?” The idealists are already trying to figure out how to prevent that thing from going wrong ever again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ashton got into San Francisco in the afternoon. He took a SuperShuttle to Fisherman’s Wharf and, famished, went into a restaurant and ordered a big stack of pancakes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That’s when the implications of abandoning his former life in Michigan really started to sink in. He had no job, no place to sleep, his car was gone, he owed $40,000 in student loans, and had exactly $173 in his wallet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But goll-ee, they sure do have pretty waitresses in San Francisco, he thought, admiring the strawberry curls of the Molly Ringwald-lookalike standing by the front cash register. A little over five feet tall, maybe. Crazy freckles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While Ashton stared at her from across the deserted restaurant, a couple of well dressed boys came in and started talking to her. Tourists, maybe, or students? Were there any schools around here? There must be schools in San Francisco. He couldn’t hear what they were saying, but it seemed a little bit more complicated than “can we have a table and buy some pancakes please.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Molly” got out her purse and rummaged around. She gave the kids some money. The conversation continued. She tried to make a phone call; nobody answers. Eventually she opened the cash register and counted out rather a lot of money, which she gave to them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;“That’s weird,” Ashton thought, but he paid the check, and went across the street to an Internet cafe to look for an apartment on Craigslist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first thing that hit him was that the prices for apartments were insane. Back in Michigan, he was paying $475 for a really nice one bedroom, but in San Francisco, things seemed to be triple that. Without a job, he wasn’t even sure if anyone would rent to him. While he was pondering this problem, he noticed the waitress from the pancake place come out, clearly distraught. She sat down at a bus stop and started crying.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, the old Ashton would never, &lt;em&gt;never&lt;/em&gt; just go up to a random girl on the street, least of all one who was crying, but the magical spell of San Francisco somehow made him lose his inhibitions, so he bought two cups of peppermint tea, went to the bus stop, sat down next to her, and said, “I seem to have an extra cup of peppermint tea. Would you like it?”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The girl looked at him, perplexed, and then laughed a little bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“I’m sorry,” Ashton said. “I don’t usually do this. I saw you working in the IHOP, and then when I saw you out here.... Oh. I’m Ashton, by the way. With an N.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“I’m Becca,” she said. “With an M.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ashton said, “The M is silent, I assume?” They laugh a little bit. Becca sniffs. Ashton finds a handkerchief in his coat pocket, a vestige of living in a really cold climate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They start talking. It turns out Becca just got fired.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“That stupid old man. He wouldn’t listen to me! I took some money out of the register to bail out his own son, but he didn’t want to hear about it. He just assumed I stole it.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“What?”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Well, these kids came into the restaurant, they were schoolmates of Daryl, Mr. Dimitrious’s son.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“That’s the owner?”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Right. Anyway these kids seemed nice, they said that some drug dealers got pissed off at Daryl for some reason and they needed $200 to rescue him.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Rescue him from what? I don’t get it. How does that work?” Ashton asked. It didn’t sound like a real story. But maybe this was how things worked in California.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“I gave them $40 of my own, but they were very insistent that if they didn’t come up with $200, Daryl would be hurt. I couldn’t reach Mr. Dimitrious by phone, and I was scared, so I took $160 out of the register and gave it to them. But when I tried to explain that to him, he just flipped out and wouldn’t listen to me. I was trying to tell him that Daryl was in trouble, and all he wanted to talk about was that I was stealing from him. How could he fire me for trying to help his own son? What is wrong with that man?”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ashton was pretty sure Becca had just gotten scammed, but he couldn’t quite bring himself to break it to her. And even though she was visibly upset, he was really enjoying talking to her, so he dragged the conversation on. He started blabbing about how, when he was working at the furniture company in Michigan, everyone had to take a course called “Five Whys.” The idea was that every time something went wrong, you had to ask why to get the immediate cause. Then you asked why again, to figure out what caused that, and you kept doing that, about five times, until you found the root problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“So, for example, you got fired. Why? Because money was missing from the cash register. Why? Because you gave it to some kids. Why? Because they told you Daryl was in trouble. Why?”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Wait, why what?” Becca asked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Why did they tell you Daryl was in trouble?”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Becca thought for a minute. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;“I got scammed, didn’t I.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“I think maybe you did.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Becca was silent for a really, really long time. Then she started laughing, and it infected Ashton, and they were both laughing like crazy, and it felt great, after a stressful day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“You’re a total nerd,” she said. “Five whys.” He had to concur.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They were having a good time. They walked all over the North End, and they talked for hours.&#xA;He told her about being a programmer, and the furniture company, and how, in two years, not a single thing he did at work mattered, and he was sick of it, and starting a new life, and here he was, without a place to stay, on a winter night in San Francisco.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Oh gosh,” Becca said, “I know just the place. I’m living in a big shared house in Russian Hill. There’s an empty room now.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Where’s Russian Hill?” Ashton asked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“It’s not far. I’ll take you. But wait... would you mind waiting so I can go try one more time to get my job back?”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ashton was happier than he had been all day. Things really do have a way of working out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Sure!” he said, almost giddy. “Just a sec.” And he took out $160 from his wallet, leaving exactly three dollars, and he gave it to Becca, and said, “Take this, it might help you get your job back.”&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“Oh I couldn’t!” she said, but Ashton insisted, and they agreed to meet in half an hour at the Steps of Rome on Columbus Ave., where Ashton went to sit and nursed a single cup of espresso while Becca walked back towards the restaurant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And it got kind of late.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And an hour passed, then another, and the Italian waiter obviously had a crush on Ashton, so he didn’t bother him about just ordering one coffee and sitting at the table for hours, and it’s midnight, then it’s one a.m., then it’s two a.m., and the waiter finally says, “Look, I’m sorry guy, we’re closing, you have to leave.”&lt;/p&gt;&#xA;" OwnerUserId="30" LastActivityDate="2010-12-16T04:31:46.830" CommentCount="20" />
  <row Id="26882" PostTypeId="1" AcceptedAnswerId="26895" CreationDate="2010-12-16T04:32:11.417" Score="1" ViewCount="216" Body="&lt;p&gt;Hi, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;im a programmer for Desktop Applications specifically Point of Sales Software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i use VB6 with MySql in Windows Platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i wanted to change to other PL since its no longer supported.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;aside from .Net or C#.. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;want it to have something like Visual Studio, like Basic &gt; VisualBasic, i tried Python &gt; VisualPython but no good...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;any suggestions? thanks in advance.&lt;/p&gt;&#xA;" OwnerUserId="10213" LastActivityDate="2010-12-16T09:24:41.660" Title="Substitute for VB6" Tags="&lt;vb6&gt;" AnswerCount="3" CommentCount="8" />
  <row Id="26883" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T04:35:51.320" Score="6" ViewCount="" Body="&lt;p&gt;The ability to translate an abstract idea into a programmable design. It's a skill you need over and over again, and on many levels.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the very top of the design a programmer must estimate what features can reasonably be implemented given the resource constraints, which is only possible by doing a rough implementation plan. Programmers who fail at this level are typically completely oblivious to their misjudgement, since they will almost always deem a feature or project harder to implement than it would be given a better plan.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a lower level there is object and database structure planning, while that may seem to be a meta programming task it can't be done in a satisfactory manner without at least a sketchy plan for the code structure. An able programmer can make a working plan for the structure, a master programmer can make something which is simpler, faster and overall better. The difference lies in the mental method for sorting through different ideas, quickly sorting out flawed approaches and identifying improvable spots is crucial to the process. It takes a mix of intelligence and experience to master the process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the lowest level, the level where the code is actually written the problem is largely the same, except that a large amounts of tasks has already been solved and packed in libraries or taught as general patterns. It's worth gaining a deeper understanding of how these solutions work and knowing their alternatives, basically learn this well enough that you would be able to do without them. Not only does this enable a programmer to solve the odd low level problem that doesn't have a suitable library function, the understanding will also help when designing at the higher levels.&lt;/p&gt;&#xA;" OwnerUserId="8737" LastActivityDate="2010-12-16T04:35:51.320" CommunityOwnedDate="2011-02-20T17:10:34.583" CommentCount="3" />
  <row Id="26885" PostTypeId="1" CreationDate="2010-12-16T04:45:11.163" Score="3" ViewCount="111" Body="&lt;p&gt;I've always been a big fan of asynchronous messaging and pub/sub implementations, but coming from a Java background, I'm most familiar with using JMS based messaging systems, such as &lt;a href=&quot;http://community.jboss.org/wiki/jbossmq&quot; rel=&quot;nofollow&quot;&gt;JBoss MQ&lt;/a&gt;, &lt;a href=&quot;http://community.jboss.org/wiki/HornetQ&quot; rel=&quot;nofollow&quot;&gt;HornetQ&lt;/a&gt;, &lt;a href=&quot;http://activemq.apache.org/&quot; rel=&quot;nofollow&quot;&gt;ActiveMQ&lt;/a&gt;, &lt;a href=&quot;http://java.net/projects/mq&quot; rel=&quot;nofollow&quot;&gt;OpenMQ&lt;/a&gt;, etc. I've also loosely followed the discussion of &lt;a href=&quot;http://www.amqp.org/confluence/display/AMQP/Advanced+Message+Queuing+Protocol&quot; rel=&quot;nofollow&quot;&gt;AMQP&lt;/a&gt;.  But I recently became aware of the  &lt;a href=&quot;http://en.wikipedia.org/wiki/Data_Distribution_Service&quot; rel=&quot;nofollow&quot;&gt;Data Distribution Service Specification&lt;/a&gt; from the &lt;a href=&quot;http://en.wikipedia.org/wiki/Object_Management_Group&quot; rel=&quot;nofollow&quot;&gt;Object Management Group&lt;/a&gt;, and found there are a couple of open-source implementations:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.opensplice.org/cgi-bin/twiki/view/Community/WebHome&quot; rel=&quot;nofollow&quot;&gt;OpenSplice&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.ociweb.com/products/opendds&quot; rel=&quot;nofollow&quot;&gt;OpenDDS&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It sounds like this stuff is focused on the kind of high-volume scenarios one tends to associate with financial trading exchanges and what-not.  My current interest is more along the lines of notifications related to activity stream processing (think Twitter / Facebook) and am wondering if the DDS servers are worth looking into further.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Could anyone who has practical experience with this technology, and/or a deep understanding of it, comment on how useful it is, and what scenarios it is best suited for?  How does it stack up against more &quot;traditional&quot; JMS servers, and/or AMQP (or even STOMP or OpenWire, etc?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: FWIW, I found some information at &lt;a href=&quot;http://stackoverflow.com/questions/731233/activemq-or-rabbitmq-or-zeromq-or&quot;&gt;this StackOverflow thread&lt;/a&gt;.  Not a complete answer, but anybody else finding this question might also find that thread useful, hence the added link.&lt;/p&gt;&#xA;" OwnerUserId="7160" LastEditorUserId="7160" LastEditorDisplayName="" LastEditDate="2010-12-17T01:06:38.927" LastActivityDate="2011-05-22T22:56:18.373" Title="What scenarios are implementations of Object Management Group (OMG) Data Distribution Service best suited for?" Tags="&lt;async&gt;&lt;messaging&gt;&lt;jms&gt;&lt;pubsub&gt;&lt;middleware&gt;" AnswerCount="1" CommentCount="5" />
  <row Id="26886" PostTypeId="2" ParentId="26747" CreationDate="2010-12-16T05:27:46.653" Score="0" ViewCount="" Body="&lt;p&gt;Most of the times errors are there, because programmer forget to consider all the cases. Sometimes you write the code keeping one scenario in mind and then the other scenario failed. In this case if one asks your answer should be &quot;That case was not considered. Let me correct it, and we will document that whoever is touching this part of the code should code according to this case also&quot;.&lt;br&gt;&#xA;Normally making mistakes are not the issues, but repeating them is problem. Hence when someone shows you the mistake you should say, &quot;Thanks for finding that out. I will correct it, and mention it in the coding guideline.&quot;&lt;br&gt;&#xA;But if someone is continuously finding the stupid errors and if that bothers you, then every time you change the code, go to that person and tell him to check the code for errors. Some day he/she will get frustrated and stop it. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-16T05:27:46.653" CommentCount="2" />
  <row Id="26887" PostTypeId="2" ParentId="26771" CreationDate="2010-12-16T05:32:24.820" Score="0" ViewCount="" Body="&lt;p&gt;I had a job once that asked me to do a couple of technical interviews (by phone) while I was on vacation.  I didn't mind, actually.  I had some time to kill anyway, and this way I didn't have to use vacation time for those hours.&lt;/p&gt;&#xA;" OwnerUserId="3963" LastActivityDate="2010-12-16T05:32:24.820" />
  <row Id="26888" PostTypeId="2" ParentId="26771" CreationDate="2010-12-16T06:18:01.507" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;The concept of a Holiday is to NOT have to worry for that week your off!&lt;/strong&gt;&lt;br&gt;&#xA;Though centuries ago vacations could last for months, in todays rushed up digital society vacations last only one or two weeks. Comon!!! &lt;em&gt;Everything needs urgent fix&lt;/em&gt;. Yeah right! tell that to the hotel lady who is now massaging you and asking wether you prefer Mango or Cranberries baby!!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Only take the responsibility, if its your own private service/company&lt;/strong&gt;, then i can image you bring your cellular phone with you. Otherwise let the owner/boss worry and take the risk of their own service!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bon Voyage!&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/pL5C4.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="9083" LastActivityDate="2010-12-16T06:18:01.507" CommentCount="4" />
  <row Id="26889" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T06:36:19.483" Score="2" ViewCount="" Body="&lt;p&gt;Just things that are coming into my mind (other than what and others has said):-&lt;br&gt;&#xA;Database designs&lt;br&gt;&#xA;Parallel processing&lt;br&gt;&#xA;Graphs and graphs algorithms&lt;br&gt;&#xA;Object Oriented model&lt;br&gt;&#xA;Making Coffee  &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-16T06:36:19.483" CommunityOwnedDate="2011-02-20T17:10:34.583" CommentCount="1" />
  <row Id="26890" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T06:48:36.987" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Domain-specific_language&quot; rel=&quot;nofollow&quot;&gt;Domain-specific languages&lt;/a&gt; is a concept worth knowing. In some contexts it can be extremely effective in making programs really flexible (just think about all those Quake-like games, and what it would take to actually write such from scracth).&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-12-16T07:05:54.537" LastActivityDate="2010-12-16T07:05:54.537" CommunityOwnedDate="2011-02-20T17:10:34.583" />
  <row Id="26891" PostTypeId="2" ParentId="23507" CreationDate="2010-12-16T07:00:53.343" Score="3" ViewCount="" Body="&lt;p&gt;Few links for JS mastery&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;What &quot;&lt;a href=&quot;http://stackoverflow.com/questions/61088/hidden-features-of-javascript&quot;&gt;&lt;strong&gt;Hidden Features&lt;/strong&gt;&lt;/a&gt;&quot; of JavaScript do you think every programmer should know?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/1069857/advanced-javascript-interview-questions&quot;&gt;&lt;strong&gt;Advanced JavaScript&lt;/strong&gt;&lt;/a&gt; Interview Questions&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/11246/best-resources-to-learn-javascript&quot;&gt;&lt;strong&gt;Best resources&lt;/strong&gt;&lt;/a&gt; to learn JavaScript - Douglas Crockford's JavaScript videos&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/1684917/what-questions-should-a-javascript-programmer-be-able-to-answer&quot;&gt;&lt;strong&gt;What questions should a JavaScript programmer be able to answer?&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Learning &lt;a href=&quot;http://ejohn.org/apps/learn/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Advanced JavaScript&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;6 &lt;a href=&quot;http://sixrevisions.com/javascript/6-advanced-javascript-techniques-you-should-know/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Advanced JavaScript Techniques&lt;/strong&gt;&lt;/a&gt; You Should Know &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-12-16T07:00:53.343" />
  <row Id="26892" PostTypeId="1" AcceptedAnswerId="26919" CreationDate="2010-12-16T07:06:04.553" Score="11" ViewCount="424" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/15230/how-do-you-organize-your-curriculum-vitae&quot;&gt;How do you organize your curriculum vitae?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Hi PB Community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I have seen a few questions that touch on this topic, each on a small part. I thought that we should get a good consolidated article on the subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a developer / person in the information field, what should go on my CV? There are a few things that I think should be looked at here, including &lt;em&gt;(but not limited to)&lt;/em&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Past projects / experience&lt;/li&gt;&#xA;&lt;li&gt;Past companies&lt;/li&gt;&#xA;&lt;li&gt;Technologies used&lt;/li&gt;&#xA;&lt;li&gt;...&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;But, there is also a special type of CV to be considered. What does a person &lt;em&gt;fresh from university / college&lt;/em&gt; put on their CV? Obviously, if you have done some internships / work, it can go on, but one should try not to clutter it with small irrelevant things that you might have thought at university was substantial. Should I compile an online portfolio of things I have done? ...?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think? What should &lt;em&gt;(for both exprienced and non-experienced)&lt;/em&gt; go on so as to:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Give the relevant information&lt;/li&gt;&#xA;&lt;li&gt;Not clutter the CV with irrelevant things&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="8478" LastEditorUserId="4711" LastEditorDisplayName="" LastEditDate="2010-12-16T22:55:19.727" LastActivityDate="2010-12-16T22:55:19.727" ClosedDate="2010-12-18T13:55:26.103" Title="What does a person fresh from university / college put on their CV?" Tags="&lt;career&gt;&lt;interview&gt;&lt;job-interview&gt;&lt;cv&gt;&lt;student&gt;" AnswerCount="7" CommentCount="4" FavoriteCount="4" />
  <row Id="26893" PostTypeId="2" ParentId="26882" CreationDate="2010-12-16T07:08:30.697" Score="1" ViewCount="" Body="&lt;h2&gt;Delphi&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;For Windows applications, its hard to beat it.  Visual Designer, nice IDE.  Its standalone, native-code exe's dont have a dependency on a large runtime library, making apps much simpler to deploy.  Certainly a lot of people have moved to it from VB over the years.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main downsides might be that its a bit pricy if you're a 1-person or small shop, and it is currently Windows only.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-16T07:08:30.697" CommentCount="2" />
  <row Id="26894" PostTypeId="2" ParentId="26861" CreationDate="2010-12-16T07:11:30.377" Score="0" ViewCount="" Body="&lt;p&gt;Check out &lt;a href=&quot;http://www.hydrogenaudio.org/forums/&quot; rel=&quot;nofollow&quot;&gt;http://www.hydrogenaudio.org/forums/&lt;/a&gt; You will find all the answers there.&lt;/p&gt;&#xA;" OwnerUserId="3122" LastActivityDate="2010-12-16T07:11:30.377" />
  <row Id="26895" PostTypeId="2" ParentId="26882" CreationDate="2010-12-16T07:22:54.320" Score="4" ViewCount="" Body="&lt;p&gt;You mention a few different alternatives you've already tried, and according to your specification &quot;point of sales software&quot; I'm going to assume you're targeting either some vanilla strain of Windows with touchscreen, or a flavor of Windows Embedded Device.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From those specifications I'd start with:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;VB.Net&lt;/strong&gt; Probably the easiest language to pickup if your transitioning from VB6. The syntax has a pretty shallow learning curve so maintaining productivity should be fairly easy.  This will also open up a mind-boggling assortment of libraries you can utilize like NHibernate to abstract your database out of your application. Best of all the Express edition should cover most situations you'll find yourself in, so upgrading to VB.Net is cheap too.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;IronPython&lt;/strong&gt; You have a brief mention of an attempt at Python, but I'm guessing you decided against it after looking at the complexities of implementing a GUI environment on Windows.  Maybe you should look at IronPython which is the integration of Python with the .Net framework. IronPython can build your WinForms, as well as utilize pretty much any Python library you can get your hands on. This project also seems to be gaining critical mass due to the quality of the integration in Visual Studio 2010.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Delphi&lt;/strong&gt; [See GrandmasterB's Answer] My addendum is that Embarcadero Delphi 2010 contains a slew of support added for touchscreens and implementing touch and gesture events.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4765" LastActivityDate="2010-12-16T07:22:54.320" CommentCount="6" />
  <row Id="26896" PostTypeId="2" ParentId="26793" CreationDate="2010-12-16T07:27:00.713" Score="1" ViewCount="" Body="&lt;p&gt;If you want to get your feet wet in NoSQL, but don't want to invest too much effort in setting up and administering a server stack, You can play around with &lt;a href=&quot;http://labs.google.com/papers/bigtable.html&quot; rel=&quot;nofollow&quot;&gt;Google BigTable&lt;/a&gt; on Google App Engine.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pros: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;SQL-like Syntax.  I'm not sure weather that's a good thing or not, but at very least, common queries are expressed in a familiar way.&lt;/li&gt;&#xA;&lt;li&gt;Similar to relational databases, Entities have a primary key, which is a hash of it's entity type, entity group, and unique identifier.  Entities have any number of (more or less) strongly typed properties, all of which are indexable for efficient queries and can be formed into composite keys.  Only thing missing is the ability to join across multiple entity types.&lt;/li&gt;&#xA;&lt;li&gt;Scalable transactions, Arbitrary combinations of query, update, insert, delete sequences can be tied together in a single transaction.  Only limitation is all affected rows be in the same entity group.  &lt;/li&gt;&#xA;&lt;li&gt;Native ORM in Python (similar to Django, somewhat similar to SQLAlchemy) and Java.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Cons: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;SQL Like syntax... see above.&lt;/li&gt;&#xA;&lt;li&gt;Proprietary, Use it on AppEngine (For free, or paid for more capacity), or use it &lt;strong&gt;Not At All&amp;trade;&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8656" LastActivityDate="2010-12-16T07:27:00.713" />
  <row Id="26897" PostTypeId="2" ParentId="26848" CreationDate="2010-12-16T07:46:30.263" Score="4" ViewCount="" Body="&lt;p&gt;When you go to the garage, you don't tell the guy:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;please change the oil, the filters. And check the a/c system, it makes some strange noise. In addition of that do a wheel alignment check and automatic transmission flush. You have 1.23 hours and I'll pay you $97&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You ask him how much time &lt;strong&gt;he&lt;/strong&gt; will need, and how much &lt;strong&gt;he&lt;/strong&gt; will asks. Even if your are a specialist yourself knowing how much time &lt;strong&gt;he&lt;/strong&gt; should take, and how much &lt;strong&gt;he&lt;/strong&gt; should charge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you doesn't agree with the time he needs and/or the amount he charges, you go to another garage right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's pretty much the same here. Your worker, &lt;strong&gt;the specialist&lt;/strong&gt;, the one that will do the task, &lt;strong&gt;should estimate it himself&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At a team level, team should be responsible of it. To avoid too much variation in estimations between team members, a consensus based estimation methodology should be used like &lt;a href=&quot;http://www.agilehardware.com/pages/Planning-Poker.html&quot; rel=&quot;nofollow&quot;&gt;Planning Poker&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Now how to deal with your current manager?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you are able to convince him using the argument above just by telling him, you will have to work with it. Very few managers are able to &quot;change&quot; on the impulsion of their people so fast. Most of them will never change.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Each time you are assigned with tasks along with his estimations send him your figures back politely.&lt;/li&gt;&#xA;&lt;li&gt;Use evidence of your allegations by pointing past experience on tasks that takes more time than initially planned.&lt;/li&gt;&#xA;&lt;li&gt;You will have to repeat the cycle above a lot of time&lt;/li&gt;&#xA;&lt;li&gt;You will need patience, determination and courage. &lt;a href=&quot;http://en.wikipedia.org/wiki/Ivan_Pavlov&quot; rel=&quot;nofollow&quot;&gt;Ivan Pavlov&lt;/a&gt; is your friend here.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Eventually, he will change his mind and adopt the system described above.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But your manager is probably a &lt;a href=&quot;http://programmers.stackexchange.com/questions/25087/do-you-allow-people-to-work-late/25120#25120&quot;&gt;parkinsonian&lt;/a&gt;. In that case, call &lt;a href=&quot;http://programmers.stackexchange.com/questions/25432/how-can-a-new-programmer-impress-the-software-engineer-boss/25459#25459&quot;&gt;Ashton&lt;/a&gt;, and ask him for advices. Because he is probably not going to change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't worry for him after you left, he will find another &lt;a href=&quot;http://www.youtube.com/watch?v=LYlhCGng5Mk&amp;amp;feature=player_embedded#!&quot; rel=&quot;nofollow&quot;&gt;developer to abuse&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-16T08:08:44.120" LastActivityDate="2010-12-16T08:08:44.120" CommentCount="4" />
  <row Id="26898" PostTypeId="2" ParentId="282" CreationDate="2010-12-16T08:00:15.000" Score="0" ViewCount="" Body="&lt;p&gt;Here is a selection of what I hear on my 1 hour drive to work:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Lake Wobegon: Prarie Home Companion&lt;/li&gt;&#xA;&lt;li&gt;Now Show: BBC Friday Night Comedy&lt;/li&gt;&#xA;&lt;li&gt;In Our Time: BBC&lt;/li&gt;&#xA;&lt;li&gt;Daily Audio Bible&lt;/li&gt;&#xA;&lt;li&gt;Great Lives: BBC&lt;/li&gt;&#xA;&lt;li&gt;Best of Today: BBC&lt;/li&gt;&#xA;&lt;li&gt;Hanselminutes&lt;/li&gt;&#xA;&lt;li&gt;GodPod: Holy Trinity Brompton&lt;/li&gt;&#xA;&lt;li&gt;Excess Baggage: BBC&lt;/li&gt;&#xA;&lt;li&gt;Start the Week: BBC&#xA;...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="598" LastActivityDate="2010-12-16T08:00:15.000" CommunityOwnedDate="2010-12-21T06:02:41.540" />
  <row Id="26899" PostTypeId="2" ParentId="11077" CreationDate="2010-12-16T08:10:53.077" Score="0" ViewCount="" Body="&lt;p&gt;Most programmers here call it curly brace(s). Good question, I often forgot the name of that when I'm explaining.&lt;/p&gt;&#xA;" OwnerUserId="10213" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-16T19:44:22.997" LastActivityDate="2010-12-16T19:44:22.997" />
  <row Id="26900" PostTypeId="2" ParentId="26771" CreationDate="2010-12-16T08:11:54.543" Score="0" ViewCount="" Body="&lt;p&gt;Find a job where they will not abuse the emergency contact and let you relax on your holidays. If you are the only one person, who can help them, something is wrong. &lt;/p&gt;&#xA;" OwnerUserId="10233" LastEditorUserId="10233" LastEditorDisplayName="" LastEditDate="2010-12-16T08:22:52.350" LastActivityDate="2010-12-16T08:22:52.350" />
  <row Id="26901" PostTypeId="1" AcceptedAnswerId="26904" CreationDate="2010-12-16T08:17:48.530" Score="29" ViewCount="1244" Body="&lt;p&gt;I’m working on a project and my computer is quite slow. I would work more efficient and get less irritated if I get a better developer machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How can I convince my boss to give me a better developer machine?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="8820" LastEditorDisplayName="" LastEditDate="2010-12-16T09:41:28.643" LastActivityDate="2010-12-16T19:33:33.893" Title="How to convince your boss to give you a better developer machine?" Tags="&lt;boss&gt;&lt;computer&gt;&lt;machines&gt;" AnswerCount="10" CommentCount="3" FavoriteCount="9" />
  <row Id="26902" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T08:19:21.897" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Data structures.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're wondering whether you know enough about a particular structure; I'd say if you are confident you could implement one given enough time and a small number of helpful hints then you have a good understanding of it, but knowing at least the performance characteristics of data structures is invaluable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To get you started there are lists, dynamic arrays, trees (binary trees, b+/-/*trees, red-black trees etc), hash tables, skiplists, bloom filters and more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't just useful for low-level languages where these structures are implemented or used in their rawest form, but also in high level languages. Once you know that language X's list implementation is a dynamic array, you'll know that putting new items in the middle should be avoided or maybe using a set is a better fit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is at it's heart, the manipulation of data. Knowing how to efficiently store your data makes the rest of your job a whole lot easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;I don't know why the administrators can't just move questions and answers across sites.&lt;/em&gt; &lt;/p&gt;&#xA;" OwnerUserId="10037" LastEditorUserId="10037" LastEditorDisplayName="" LastEditDate="2010-12-16T08:32:43.207" LastActivityDate="2010-12-16T08:32:43.207" CommunityOwnedDate="2011-02-20T17:10:34.583" CommentCount="3" />
  <row Id="26903" PostTypeId="2" ParentId="26901" CreationDate="2010-12-16T08:21:51.527" Score="2" ViewCount="" Body="&lt;p&gt;Do a calculation about how much productivity is lost because of your slow machine. Multiply with your salary and show him that the ROI (return of investment) time for a new machine is 2 months. Add &quot;better motivation&quot; and &quot;better response times in case of emergency&quot; as reasons to buy you a decent machine.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-16T08:21:51.527" />
  <row Id="26904" PostTypeId="2" ParentId="26901" CreationDate="2010-12-16T08:25:24.223" Score="41" ViewCount="" Body="&lt;p&gt;You have to sell him the idea. The most powerful sales technique I know is &lt;a href=&quot;http://en.wikipedia.org/wiki/Solution_selling&quot; rel=&quot;nofollow&quot;&gt;Solution Selling&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Find his &lt;em&gt;pain&lt;/em&gt; related to your problem&lt;/li&gt;&#xA;&lt;li&gt;Come with a &lt;em&gt;solution&lt;/em&gt; &amp;amp; facts.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Find his pain related to your problem&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every single human on this planet has multiple pains. Most bosses pain is related to ROI. When they don't get the productivity (and then &lt;strong&gt;money&lt;/strong&gt;) they require, they suffer a lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's your target. You will have to put emphasis on that since this is what you are talking about. Your productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Come with a solution &amp;amp; facts&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You must calculate the gain on time a new machine can provide you. There are plenty article online you can find by googling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Converts the time you gain in &lt;strong&gt;money&lt;/strong&gt;. His pain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be cautious about the figures you will send to him. He could use them against you. (&lt;em&gt;see Tim's comment below)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't talk about &lt;strong&gt;your&lt;/strong&gt; problem. Talk him about &lt;strong&gt;his&lt;/strong&gt; problem.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-16T10:10:49.303" LastActivityDate="2010-12-16T10:10:49.303" CommentCount="15" />
  <row Id="26905" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T08:30:48.607" Score="1" ViewCount="" Body="&lt;p&gt;Learning how to merge code and other sorts of text like xml in source control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The tools mostly get it right, but when they fail it's up to you to do it, and I've seen too many developers who don't know how.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I blame SourceSafe.&lt;/p&gt;&#xA;" OwnerUserId="7961" LastActivityDate="2010-12-16T08:30:48.607" CommunityOwnedDate="2011-02-20T17:10:34.583" CommentCount="1" />
  <row Id="26906" PostTypeId="1" AcceptedAnswerId="26909" CreationDate="2010-12-16T08:37:57.913" Score="7" ViewCount="229" Body="&lt;p&gt;IT professionals are experts who are trusted with the IT assets of a business or organisation. As trusted professionals we have responsibilities that extend beyond things that a non-IT customer can be expected to understand or be aware of. So I think the proper relationship between an IT professional and his internal/external customers is more like that between a doctor and patient than a servant and master. Am I right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's an analogy to think about. A patient insists that his leg needs to be amputated. His doctor disagrees but the patient cannot be persuaded. Should the doctor amputate the leg just to satisfy the patient?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another analogy. A customer wants a civil engineer to build a bridge to an unsafe design. Even when the engineer explains that it is unsafe the customer doesn't believe him. Should the engineer build the bridge anyway?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the right answer in both these analogies is NO. The medical professional and engineering professional are supposed to be in a position of trust and ought to exercise their own judgement, even in the face of patient/customer disapproval. Shouldn't the same apply to IT professionals when the IT professional is qualified to make the decision but his customer is not?&lt;/p&gt;&#xA;" OwnerUserId="4250" LastActivityDate="2010-12-16T15:36:29.887" Title="What is the proper relationship between the software developer and the business customer?" Tags="&lt;project-management&gt;&lt;management&gt;&lt;professionalism&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="3" />
  <row Id="26907" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T08:49:23.687" Score="0" ViewCount="" Body="&lt;h2&gt;Operative System&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;If you are going to do desktop application then you have to learn the OS and system APIs.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-16T08:49:23.687" CommunityOwnedDate="2011-02-20T17:10:34.583" />
  <row Id="26908" PostTypeId="2" ParentId="26892" CreationDate="2010-12-16T08:55:20.573" Score="1" ViewCount="" Body="&lt;p&gt;Put in all relevant/advanced &lt;strong&gt;projects/labs&lt;/strong&gt; you have done during your study.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-16T08:55:20.573" CommentCount="1" />
  <row Id="26909" PostTypeId="2" ParentId="26906" CreationDate="2010-12-16T08:55:27.873" Score="4" ViewCount="" Body="&lt;p&gt;It's a bit more complicated than in your examples. That's because in many cases, the software developer is an expert in IT-related things (i.e. programming, database design etc.), but the business customer is an expert in the problem domain. In such cases, the proper relationship is that of two experts in different fields that work together to create a good solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, like any good craftsman, the software developer is obliged to warn the customer when the customers wants things that are inappropriate. If you ask your painter and decorator to wallpaper the bathroom, he is also obliged that this won't work out well. But when the client stubbornly insist on his bad idea, it's ok to have him sign a &quot;you have been explicitely warned&quot; form and implement what he wants (as long as there is no health risk, legal risk etc. in doing that).&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-16T08:55:27.873" CommentCount="2" />
  <row Id="26910" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T08:57:56.313" Score="1" ViewCount="" Body="&lt;h2&gt;Business Rules&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;For examples: If you are going to work at a bank as developer, learn some basic economics.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-16T08:57:56.313" CommunityOwnedDate="2011-02-20T17:10:34.583" />
  <row Id="26911" PostTypeId="2" ParentId="26906" CreationDate="2010-12-16T09:03:29.580" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Shouldn't the same apply to IT professionals when the IT professional is qualified to make the decision but his customer is not?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In my opinion &lt;strong&gt;YES!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are going to have a long relationship with your customer.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-16T09:03:29.580" />
  <row Id="26912" PostTypeId="2" ParentId="26906" CreationDate="2010-12-16T09:09:36.733" Score="1" ViewCount="" Body="&lt;p&gt;In both the doctor and engineer examples, the professional is a consultant refusing to perform a service. In an IT shop, you're not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We're employees, not consultants, so we're subject to the golden rule: he who gives us gold rules. Programmers who ignore that are being arrogant and foolish. I've heard innumerable complaints about that from businesspeople who are fed up with IT staff who won't explain their decisions to anyone outside their insular priesthood, and who blow off requests everybody outside their organization considers perfectly reasonable. I've seen IT managers sacked over that kind of thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an employee, your equivalent to a consultant refusing to perform a service is covered by a quote from Napoleon Bonaparte:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Every commander responsible for&#xA;  executing a plan that he considers bad&#xA;  or disastrous is criminal. He must&#xA;  point out the flaws, insist that it be&#xA;  changed and at last resort resign&#xA;  rather than be the instrument of the&#xA;  destruction of his own men.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You have to pick your battles. Is what you've been asked to do so heinous and unethical that you'd rather quit? If not, then either explain the problem to the stakeholders and negotiate something reasonable, or just do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And don't go doing things you haven't gotten buy-off on. People who do that are called &quot;loose cannons&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Incidentally, I have quit one job because they killed a project and I thought it was a really stupid move. A couple of months after I left, they came to agree with me, and asked me to come back as a contractor to do the project, but I was already committed elsewhere. &lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-16T09:09:36.733" CommentCount="4" />
  <row Id="26913" PostTypeId="2" ParentId="26882" CreationDate="2010-12-16T09:24:41.660" Score="8" ViewCount="" Body="&lt;h2&gt;Given your situation VB.NET&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Having created numerous EPOS's my self (the first one in VB6 coincidently. And a recent one in WPF C#4.0) , I'd highly suggest you go VB.NET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;VB6 &amp;amp; VB.NET, share the same name, but they are two very &lt;strong&gt;different things&lt;/strong&gt;. don't let the syntax similarity fool you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say use VB.NET as a bridge to get you into .NET then move onto other languages such as C#, python, Ruby, Haskell &amp;amp; F#, and finally LISP. &lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-16T09:24:41.660" CommentCount="2" />
  <row Id="26914" PostTypeId="2" ParentId="26892" CreationDate="2010-12-16T09:24:57.393" Score="1" ViewCount="" Body="&lt;p&gt;Definitely include those distributed applications for supercomputers special courses (or whatever hardcore special courses you took) - they will signal that you're really interested in software development and give you an edge.&lt;/p&gt;&#xA;" OwnerUserId="587" LastActivityDate="2010-12-16T09:24:57.393" />
  <row Id="26915" PostTypeId="2" ParentId="26906" CreationDate="2010-12-16T09:39:48.787" Score="1" ViewCount="" Body="&lt;p&gt;My suggestion in this situation will be to warn the customer in written communication and keep copy of it (e-mail, agreement anything). If the customer insists it then go ahead and do it (This is sometimes known as disagreement and commit). Just make sure that if any bad thing happens, you should be properly able to defend yourself. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-16T09:39:48.787" />
  <row Id="26916" PostTypeId="2" ParentId="26730" CreationDate="2010-12-16T09:39:58.477" Score="0" ViewCount="" Body="&lt;p&gt;If you can find a public transport route - you can then safely have your hands free and read a book. While there are many great coder podcasts, none of it really compares with reading. Or take the co-worker car-sharing idea - take it in turns...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do most of my reading on the tube (London Underground)...&lt;/p&gt;&#xA;" OwnerUserId="6630" LastActivityDate="2010-12-16T09:39:58.477" />
  <row Id="26917" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T09:41:44.683" Score="2" ViewCount="" Body="&lt;p&gt;It's been said before, but communication. And if you think you're OK at that, try communication with people who &lt;em&gt;aren't&lt;/em&gt; good at it, because you &lt;em&gt;will&lt;/em&gt; encounter them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found that empathy (not to be confused with sympathy!), that is, insight into the goals and motivations of the person (or group of persons) I'm interacting with, has helped me a lot. It makes living with your colleagues and your boss nicer, helps understand why they may not agree with you on certain things, and helps get them to agree with you - because you can argue how your benefit is also theirs, if you know what they want. This, of course, applies to much more than just the job. I think it's one of life's most valuable lessons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Understand that &lt;em&gt;nobody&lt;/em&gt; makes illogical decisions. &lt;em&gt;Ever&lt;/em&gt;. This means that if somebody decides something that seems obviously stupid to you, there is &lt;em&gt;always&lt;/em&gt; a valid (to them) and logical (to them) reason for that, which you might not be able to see from your point of view. They might not even know the reason themselves, but it's there, and you're much better off (and much more respectful) if you can acknowledge and accept that reason, and argue with it in mind, instead of trying to ignore it and arguing a point that won't ever convince them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;tl;dr:&lt;/strong&gt; Read &quot;Getting to Yes&quot; by Fisher/Ury/Patton. The title sounds like some sort of cold-hearted &quot;get what you want, don't care about the others&quot;, but it isn't. It's actually teaching you how to respect other people's motivations, which in turn makes you more successful in negotiating and communicating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, but the most important thing, IMHO: Be a good person. Be nice. Also to yourself.&lt;/p&gt;&#xA;" OwnerUserId="9505" LastActivityDate="2010-12-16T09:41:44.683" CommunityOwnedDate="2011-02-20T17:10:34.583" CommentCount="2" />
  <row Id="26918" PostTypeId="2" ParentId="26892" CreationDate="2010-12-16T09:47:43.597" Score="0" ViewCount="" Body="&lt;p&gt;I help run the (under)graduate developer community in the UK - some advice is listed on our blog (&lt;a href=&quot;http://graduatedevelopmentcommunity.wordpress.com/2010/12/03/how-to-write-a-cv/&quot; rel=&quot;nofollow&quot;&gt;this post&lt;/a&gt; in particular)&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2010-12-16T09:47:43.597" />
  <row Id="26919" PostTypeId="2" ParentId="26892" CreationDate="2010-12-16T09:55:24.883" Score="9" ViewCount="" Body="&lt;h2&gt;A CV is a marketing tool&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Back in the days, I went from zero responses to getting an interview almost every-time. This change occurred when I had a friend who's day job was writing CV's.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use to call him &lt;strong&gt;&quot;Dr.CV&quot;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;He taught me a lot.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Things you need to do:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Sell yourself!&lt;/li&gt;&#xA;&lt;li&gt;Have a title (MSc, PhD)? put this in-line with your name (i.e. highlight it).&lt;/li&gt;&#xA;&lt;li&gt;You have at most &lt;strong&gt;15 seconds&lt;/strong&gt; to impress, other-wise its going in the &lt;strong&gt;&quot;round&quot;&lt;/strong&gt; filing cabinet&lt;/li&gt;&#xA;&lt;li&gt;List your skills, make damn sure they are what they are looking for. Tailor your skill-set to their wants&lt;/li&gt;&#xA;&lt;li&gt;Backup your statements with proof. If you say you can manage to do x &lt;strong&gt;Prove it!&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Give your goal/ aim/ objective as part of your profile. Be explicit. No waffling, no big pointless words.&lt;/li&gt;&#xA;&lt;li&gt;Give enough details, but &lt;strong&gt;NOT&lt;/strong&gt; too much (think like an abstract for a thesis on each point)&lt;/li&gt;&#xA;&lt;li&gt;In summary some-one looking at it for 15 seconds can say: &lt;strong&gt;&quot;This Person Can Do X, has done Y, and can learn to do Z&quot;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-12-16T12:23:51.680" LastActivityDate="2010-12-16T12:23:51.680" />
  <row Id="26920" PostTypeId="2" ParentId="26771" CreationDate="2010-12-16T10:24:27.223" Score="1" ViewCount="" Body="&lt;p&gt;I used to be that guy... The one who the business absolutely &lt;em&gt;needs&lt;/em&gt; to have access to, and I used to &lt;em&gt;enjoy&lt;/em&gt; it.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But now, my response would be:&lt;br&gt;&#xA;Give them the number for your insurance company. Since an emergency of the magnitude required to bother you on vacation, should probably require submitting a claim to the insurance company anway. And maybe a call to the official emergency services (fire/police/ambulance) as well.&lt;br&gt;&#xA;Thats right, something better be burning or somebody died, before they interrupt your vacation.&lt;br&gt;&#xA;Sombody's worried about the information only you have? They should prepare for that &lt;em&gt;before&lt;/em&gt; you go on vacation. And make darn sure they show their appreciation - and start by &lt;em&gt;not&lt;/em&gt; bugging you on vacation.&lt;/p&gt;&#xA;" OwnerUserId="6007" LastActivityDate="2010-12-16T10:24:27.223" />
  <row Id="26921" PostTypeId="2" ParentId="26906" CreationDate="2010-12-16T10:33:14.320" Score="1" ViewCount="" Body="&lt;p&gt;Doctors take an oath to 'do no harm' and are legally required to put the best interest of the patient &lt;em&gt;first&lt;/em&gt;. A doctor that performed a needless and harmful operation (even if the patient demanded it) would be opening himself up to a malpractice suit and could lose his license.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, a civil engineer, that is responsible for a construction project, has a legal obligation to ensure that it meets all applicable building codes. As with the doctor, an engineer that does what is suggested in the question, would likely face legal action.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is very different from the situation of a software developer being asked to do something that they know is impractical. There are no legal ramifications to taking on a project, even if you know it is essentially a waste of money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, a software developer should always provide his best advice on any project. However, if the people paying the bills are unwilling to listen and insist on an unwise course of action, the developer has no moral or legal obligation to refuse.&lt;/p&gt;&#xA;" OwnerUserId="6825" LastActivityDate="2010-12-16T10:33:14.320" CommentCount="2" />
  <row Id="26922" PostTypeId="2" ParentId="26901" CreationDate="2010-12-16T10:45:31.690" Score="3" ViewCount="" Body="&lt;p&gt;I asked a similar question over on StackOverflow: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/3071035/how-to-measure-productivity-loss-from-slow-pcs-running-visual-studio&quot;&gt;How to measure productivity loss from slow PCs running Visual Studio?&lt;/a&gt;.  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It is of course specific to Visual Studio.  But the idea (&lt;em&gt;the accepted answer in that case&lt;/em&gt;) is that you come up with some numbers to which management and non-technical folk can understand.  Measure slow machines as well as fast machines in your company.  Hopefully they won't all be slow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on the size of the company, your boss (unless he/she is CFO or in charge of finance) will need to give a reasoning to his/her boss behind purchasing new equipment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you want to show is the time or money it costs the company by not upgrading to faster machines for developers.  &lt;strong&gt;Idle time&lt;/strong&gt;, time waiting for the computer to compile a solution, to return data, is generally what you'd want to look for.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're idle for 30 minutes, 1 hour, or even 2 hours per day waiting for your workstation to finish something.  It adds up over the course of a week, month, year, etc.  You will want to plot these out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, avoid using the term &quot;me&quot;.  It's not about &quot;you&quot; to a company.  It's about the company.  If things go well, may end up getting a new machine, and your boss will get credit for saving the company x amount of money.&lt;/p&gt;&#xA;" OwnerUserId="14" LastEditorUserId="14" LastEditorDisplayName="" LastEditDate="2010-12-16T19:33:33.893" LastActivityDate="2010-12-16T19:33:33.893" CommentCount="6" />
  <row Id="26923" PostTypeId="2" ParentId="26771" CreationDate="2010-12-16T10:52:03.407" Score="3" ViewCount="" Body="&lt;p&gt;Why not define backup staff that takes over your part when you are on vacation? Then, announce that only the backup people are allowed to call you. This means everybody has to &quot;mess around&quot; with the resources they have before doing that annoying call.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, I think a phone is a horrible medium for things like that. Be lazy answering calls, but take 5 minutes every day to check and reply to emails, and you will see the quality of the requests skyrock immediately (because a written mail forces the sender to re-think the situation in order to specify it in written form, and because they see they get replies as time allows).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you crash with your car, and are dead, nobody will reach you on the phone. That's why every organization should have backup staff members that can take over the job of other key players. It's not just the holiday question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that many people running from vacation phone calls LOVE being important. They are not really annoyed, they love being sought after, and they often do their part to manifest this bug as a feature in their career. This is unsincere because when they say &quot;don't call me, I am on vacation&quot; they really say &quot;I love being rare, and I improve that state all the time, because that enables me to be annoyed, and I love that too because it shows how important, and ruling I am!&quot;. Bah. The fact that it is rather easy to find backup people for 99% of even the most insane job's tasks underscores this...most &quot;heroes&quot; prefer to whine and run instead of building and living a backup solution.&lt;/p&gt;&#xA;" OwnerUserId="7714" LastActivityDate="2010-12-16T10:52:03.407" CommentCount="2" />
  <row Id="26924" PostTypeId="2" ParentId="26771" CreationDate="2010-12-16T10:53:05.433" Score="2" ViewCount="" Body="&lt;p&gt;If you feel that it's your company then give your phone number and say when they can call you - what kind of problems you can solve on holidays an what not.&#xA;If you feel that you just work for someone just give phone number, and turn it off. Because you need get better job.&lt;/p&gt;&#xA;" OwnerUserId="8598" LastActivityDate="2010-12-16T10:53:05.433" />
  <row Id="26925" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T11:03:15.703" Score="1" ViewCount="" Body="&lt;p&gt;Oh, and: Read Joel on Software. Either the blog or the book. This Joel guy not only writes fun, insightful anecdotes covering both the core and the meta of programming, he's also founded some well-regarded social web thingy I've forgotten the name of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stay curious!&lt;/p&gt;&#xA;" OwnerUserId="9505" LastActivityDate="2010-12-16T11:03:15.703" CommunityOwnedDate="2011-02-20T17:10:34.583" CommentCount="3" />
  <row Id="26927" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T11:08:57.410" Score="1" ViewCount="" Body="&lt;p&gt;I am in a very similar position, I am currently 3 months into a 12 month internship, then will return to University for my final year.  From my personal view point, I have found studying design patterns over the past couple of months to have really benefited my level of coding.  I'm not sure what you're education background is, but within my university they teach simple, and often, outdated OO principles.  What I have got from studying design patterns are things like, favour composition over inheritance, try to code to interfaces rather than implementations, etc.  It's all about writing maintainable, efficient code, which I now understand a lot more due to design patterns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend the Head First Design Patterns book if you are interested.  I did try and read the GoF book, but found it a little too abstract for my current level.&lt;/p&gt;&#xA;" OwnerUserId="10149" LastActivityDate="2010-12-16T11:08:57.410" CommunityOwnedDate="2011-02-20T17:10:34.583" CommentCount="2" />
  <row Id="26928" PostTypeId="2" ParentId="26823" CreationDate="2010-12-16T11:09:37.643" Score="0" ViewCount="" Body="&lt;p&gt;hi,its depend on what application you want to develop.. its nothing harder than learn. if you learn as much you want to develop still there is missing something. so keep learn every time.&#xA;ALL THE BEST.!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="7570" LastActivityDate="2010-12-16T11:09:37.643" />
  <row Id="26930" PostTypeId="2" ParentId="16070" CreationDate="2010-12-16T11:25:47.823" Score="0" ViewCount="" Body="&lt;p&gt;For me abstraction is something that doesn't exist &quot;literally&quot;, it's something like an idea.&#xA;If you express it mathematically, it's not abstract anymore because mathematics are a language to express what happens in your brain so it can be understood by somebody else's brain, so you can't structure your ideas, because if you do, it's not an idea anymore: you would need to understand how a brain works to express an idea model.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Abstraction is something that allows you to interpret reality into something that can be independent from it. You can abstract a beach and a dream, but the beach exists but the dream doesn't. But you could tell both exist, but it's not true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The hardest thing in abstraction is finding a way to express it so that other people can understand it so it can turn into reality. That's the toughest job, and it can't really be done alone: you have to invent a relative model that works on your ideas and that can be understood by somebody else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me abstraction in computer language should be name &quot;mathematicating&quot; the model, it's about reusing ideas that can be communicated, and it's an enormous constraint compared to what can be achieved abstractly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To put it simply, atoms are next to each others, but they don't care.&#xA;A large set of molecules organised into a human being can understand that he is next to somebody, but it can't understand how, it's just how the atoms positionned themselves into some pattern.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One object that is ruled by a concept, in general, cannot &quot;understand&quot; itself. That's why we try to believe in god and why we have an hard time understanding our brain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can I have my medal now ?&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2010-12-16T11:25:47.823" />
  <row Id="26931" PostTypeId="1" AcceptedAnswerId="27296" CreationDate="2010-12-16T11:28:51.227" Score="6" ViewCount="530" Body="&lt;p&gt;&lt;strong&gt;Background&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm currently automating some tests for a plugin for MS Office. We are creating Coded UI tests in VS 2010. I suppose I could use the &quot;&lt;em&gt;Coded UI test builder&lt;/em&gt;&quot; tool, but it does not really suit my particular case. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because of this I created my own UI Map class and extension methods for each UI Control/Map where I add different action functionality. For example press buttons or assert some UI values. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The scenarios of the test cases are in the test classes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am new in this area and also I'm new in working as a automation tester.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The question&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would people be kind enough to share their experience and advice for some good practices for test automation on desktop applications from a programming/design point of view?&lt;/p&gt;&#xA;" OwnerUserId="7656" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-17T09:23:03.233" LastActivityDate="2010-12-17T09:23:03.233" Title="UI automation patterns and best practice for desktop applications" Tags="&lt;best-practices&gt;&lt;programming-practices&gt;&lt;advice&gt;&lt;testing&gt;&lt;architecture&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="6" />
  <row Id="26932" PostTypeId="2" ParentId="26829" CreationDate="2010-12-16T11:32:30.360" Score="0" ViewCount="" Body="&lt;p&gt;It's technically possible to write client-side scripts in any scripting language that the user agent (browser) supports. In practice, the only widely supported language is JavaScript / ECMAScript. Convincing browser makers to implement and support a new language at this stage is unlikely to succeed; thus, if you wanted to use a new statically typed client-side language, you would need to either translate the new language to JavaScript, or implement an interpreter for it in JavaScript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are several projects that already do something like this; for example, &lt;a href=&quot;http://code.google.com/webtoolkit/&quot; rel=&quot;nofollow&quot;&gt;Google Web Toolkit&lt;/a&gt;, as mentioned in one of the other answers.&lt;/p&gt;&#xA;" OwnerUserId="10244" LastActivityDate="2010-12-16T11:32:30.360" />
  <row Id="26934" PostTypeId="2" ParentId="26823" CreationDate="2010-12-16T11:56:20.550" Score="0" ViewCount="" Body="&lt;p&gt;Knowledge of the rules for constructing sentences in English, that you learned from a book, can help you with communicating basic information. But will not help you in making your dialect better. Only practice, practice and practice again will make your English perfect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same with programming languages. Tutor/book can explain you syntax and language specifics, but only extra workout with the language will force you to learn algorithms, patterns and you will look for more books with such information to grow up ;)&lt;/p&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-12-16T11:56:20.550" />
  <row Id="26935" PostTypeId="2" ParentId="26823" CreationDate="2010-12-16T12:04:50.600" Score="0" ViewCount="" Body="&lt;p&gt;This is a good question!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Analogous question would be &lt;strong&gt;is learning a human language enough to create average essays?&lt;/strong&gt; Well, most people are able to write &lt;em&gt;something&lt;/em&gt;, but regardless of what &quot;average&quot; means, &lt;strong&gt;not nearly all people can write decent essays even in their mother tongue!&lt;/strong&gt; And someone like, say, Hemingway or Linus is head and shoulders above almost all us mortals. So, while learning programming languages, algorithms, etc. is of course a prerequisite for creating actual applications, it's by no means sufficient.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is mostly ignored by most schools teaching &quot;Computer Science&quot; to folks who actually want to become programmers. Or maybe the students shouldn't expect to learn programming by studying CS, but the distinction definitely isn't too clear to a layman. I'm not sure if it's clear to CS academics out there either.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-12-16T12:17:26.143" LastActivityDate="2010-12-16T12:17:26.143" />
  <row Id="26936" PostTypeId="1" CreationDate="2010-12-16T12:07:55.993" Score="0" ViewCount="144" Body="&lt;p&gt;I am working as C#.Net developer for past 18 months. What concepts in c# should I get clear and also in .NET?&lt;/p&gt;&#xA;" OwnerUserId="2384" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-12-16T12:11:40.607" LastActivityDate="2010-12-16T12:49:58.703" ClosedDate="2010-12-16T13:00:20.570" Title="What concepts should get clear for C#.Net developer with 1+ experience and for 2 + experience?" Tags="&lt;c#&gt;" AnswerCount="1" />
  <row Id="26937" PostTypeId="2" ParentId="26892" CreationDate="2010-12-16T12:29:06.327" Score="2" ViewCount="" Body="&lt;p&gt;Don't forget that as a new graduate you won't be expected to have vast amounts of experience as you will most likely be applying for junior developer roles. So don't worry if your CV looks a little &quot;thin&quot; and don't pad it out with irrelevant information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As others have answered mention the relevant projects you did and any personal projects as this will help to distinguish you from the hoard of others applying for the same position with a similar level of experience to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I would expect to happen is that you will be asked to demonstrate competence in your chosen language(s), but that's no different to applying for a job at any level.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-12-16T12:29:06.327" />
  <row Id="26938" PostTypeId="2" ParentId="26892" CreationDate="2010-12-16T12:41:50.507" Score="0" ViewCount="" Body="&lt;p&gt;Your college SHOULD have a Placement Center,that helps new grads and soon-to-be new grads hook up with their first employer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Placement Centers usually organize on-campus interviewing (at least in the U.S.), to facilitate said hooking-up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The people at the Placement Center can help you put together a CV based on your college career and experience to date.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-12-16T12:41:50.507" />
  <row Id="26939" PostTypeId="2" ParentId="26936" CreationDate="2010-12-16T12:42:44.063" Score="0" ViewCount="" Body="&lt;p&gt;Parallel programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/29eafad8%28v=VS.100%29.aspx&quot; rel=&quot;nofollow&quot;&gt;.NET Advanced Development&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="943" LastEditorUserId="943" LastEditorDisplayName="" LastEditDate="2010-12-16T12:49:58.703" LastActivityDate="2010-12-16T12:49:58.703" />
  <row Id="26940" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T12:53:32.433" Score="3" ViewCount="" Body="&lt;p&gt;The number 1 thing you will need to know as a programmer is how to co-exist in a world full of abstractions, of personal issues, of competing requirements for both your time and skills, of whiners who want to destroy your credibility.  I have come to understand that programming in a real world environment has very little to do with programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;:)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just a little food for thought.&lt;/p&gt;&#xA;" OwnerUserId="10247" LastActivityDate="2010-12-16T12:53:32.433" CommunityOwnedDate="2011-02-20T17:10:34.583" />
  <row Id="26941" PostTypeId="1" CreationDate="2010-12-16T13:25:01.427" Score="5" ViewCount="110" Body="&lt;p&gt;Are there any good legal documents out there, either free or low-cost, for essentials such as &lt;strong&gt;Limitation of Liability&lt;/strong&gt; and &lt;strong&gt;Statement of Work&lt;/strong&gt; contracts?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; I am in the USA&lt;/p&gt;&#xA;" OwnerUserId="4526" LastEditorUserId="4526" LastEditorDisplayName="" LastEditDate="2010-12-16T13:40:51.203" LastActivityDate="2010-12-16T13:40:51.203" ClosedDate="2010-12-17T12:45:56.467" Title="Legal documents for programmers?" Tags="&lt;legal&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="1" />
  <row Id="26942" PostTypeId="1" CreationDate="2010-12-16T13:26:16.220" Score="3" ViewCount="148" Body="&lt;p&gt;I thinking about how increase developer's commitment to release and create release cycle as a game for more fun in office.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Current suggestions&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Building tower from bricks&lt;/li&gt;&#xA;&lt;li&gt;Climbing on some hypothetical everest, where each camp is release stage&lt;/li&gt;&#xA;&lt;li&gt;Some badges system, like StackExchange system&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="787" LastActivityDate="2010-12-16T13:59:36.063" Title="Release cycle as a game" Tags="&lt;team&gt;&lt;teamwork&gt;&lt;release&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="1" />
  <row Id="26943" PostTypeId="2" ParentId="26941" CreationDate="2010-12-16T13:29:41.773" Score="2" ViewCount="" Body="&lt;p&gt;In my country (Austria), the professional association (&quot;Wirtschaftskammer&quot;) offers such documents (e.g. &quot;AGB&quot; = &quot;general business terms&quot;) free of charge to their members. Those texts are sane, legally sound and generally accepted.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-16T13:29:41.773" />
  <row Id="26944" PostTypeId="2" ParentId="26941" CreationDate="2010-12-16T13:30:19.700" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;In the UK there's the &lt;a href=&quot;http://www.pcg.org.uk/cms/index.php&quot; rel=&quot;nofollow&quot;&gt;Professional Contractors Guild&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They offer a wide range of professional legal documents to assist developers and contractors with the business aspect of their work. It costs some money to join, but it's worth it for the various services they provide.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-16T13:30:19.700" />
  <row Id="26945" PostTypeId="2" ParentId="26829" CreationDate="2010-12-16T13:30:57.843" Score="3" ViewCount="" Body="&lt;p&gt;Most of the benefits of statically-typed languages are realized at compile time.  If the language is going to be interpreted on the client, then a good deal of those advantages are lost.  If you compile them on the server, then you need to figure out how to get them loaded and run on the client (think ActiveX controls).  You could go with a hybrid approach (compile to some intermediate tokenized form), but then you're basically back to Java applets.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-16T13:30:57.843" CommentCount="1" />
  <row Id="26946" PostTypeId="2" ParentId="282" CreationDate="2010-12-16T13:32:12.880" Score="3" ViewCount="" Body="&lt;p&gt;The podcast of the NPR radio show &lt;a href=&quot;http://www.radiolab.org/&quot; rel=&quot;nofollow&quot;&gt;Radio Lab&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not about programming, but often addressing some fairly geeky topics. Every episode seems to contain some sort of epiphanic moment of discovery about the world around and inside me. WELL worth listening to. Their recent episode on language totally blew my mind.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-16T13:32:12.880" CommunityOwnedDate="2010-12-21T06:02:41.540" CommentCount="1" />
  <row Id="26947" PostTypeId="2" ParentId="26942" CreationDate="2010-12-16T13:33:25.517" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Hudson supports something similar&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take a look at the Hudson continuous integration server. It has &lt;a href=&quot;http://wiki.hudson-ci.org/display/HUDSON/The+Continuous+Integration+Game+plugin&quot; rel=&quot;nofollow&quot;&gt;plugins that support games&lt;/a&gt; to that developers get points for successful builds, but lose badly if they commit a broken build. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Might be better than building towers...&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-16T13:33:25.517" CommentCount="2" />
  <row Id="26948" PostTypeId="1" CreationDate="2010-12-16T13:41:38.147" Score="10" ViewCount="302" Body="&lt;p&gt;Particularly when releasing softwares related to system tweaks, programmers/developers often use this phrase &quot;USE AT YOUR OWN RISK&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it good or bad practice ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, I've included this line in one of my software program (about dialog). &lt;/p&gt;&#xA;" OwnerUserId="8619" LastActivityDate="2010-12-16T17:35:40.553" Title="Is it good or bad to use &quot;use at your own risk &quot; phrase in software?" Tags="&lt;good-practices&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="1" />
  <row Id="26949" PostTypeId="1" AcceptedAnswerId="26956" CreationDate="2010-12-16T13:42:48.850" Score="10" ViewCount="434" Body="&lt;p&gt;I watched an &lt;a href=&quot;http://www.youtube.com/watch?v=6O1gNVeaE4g&quot; rel=&quot;nofollow&quot;&gt;interesting Google Talk video&lt;/a&gt; (warning about an hour of your time) about Gamification of whatever you are doing.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's clear that the StackExchange set of sites employ quite a few of these principles.  There's something compelling about making work fun, but I wonder how many problem domains can incorporate these ideas?  They definitely apply to social applications, but is that all?  The concept of a virtual loyalty program is also quite compelling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Short description of Gamification:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a system of scoring and reward.  For example, Reputation in StackExchange is a type of scoring.  Badges are a type of reward.  The additional priviledges you gain as your reputation goes up are also a type of reward.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example of a loyalty program with no real redemption would be a promotion that a convenience store did a while back where you buy their products and get FarmVille credits in return.  No real money or goods exchange hands, and the costs to the retailer are minimal at best.  Yet it brings in real money for these virtual paybacks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Shameless use of JohnL's link: &lt;a href=&quot;http://en.wikipedia.org/wiki/Gamification&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Gamification&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt;&#xA;The speaker refers to four classes of users which seem to have become the archetypes.  They are Achievers, Socializer, Explorer, and Killers.  The Achievers would most likely apply to all of us programmers--we like to get things done.  Apparently 80% of people are socializers and like light, non-confrontational interactions.  Explorers go to every corner of a game/application to discover whatever easter eggs and hidden features they can.  Killers not only want to win, they want you to lose and get praise/status for beating you.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastEditorUserId="6509" LastEditorDisplayName="" LastEditDate="2010-12-16T15:22:49.177" LastActivityDate="2010-12-17T18:02:44.993" Title="What are your opinions on &quot;Gamification&quot;?" Tags="&lt;design&gt;&lt;business&gt;&lt;application&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="3" />
  <row Id="26950" PostTypeId="2" ParentId="26948" CreationDate="2010-12-16T13:48:26.117" Score="3" ViewCount="" Body="&lt;p&gt;If you are not willing to pay for the damage that some people could have when using your software, it's probably a good practice. Some people might be reluctant to use your software, but that's still better than being held responsible for unexpected problems your software might cause (especially when your software is free, so you cannot even stop distribution).&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-16T13:48:26.117" />
  <row Id="26952" PostTypeId="2" ParentId="26948" CreationDate="2010-12-16T13:57:00.810" Score="13" ViewCount="" Body="&lt;p&gt;It's not the phrase I'd use.  Go with:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;THIS SOFTWARE IS PROVIDED &quot;AS IS&quot; AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's legally far more specific, though it's worth noting that no disclaimer can entirely remove your obligations in law (for instance if you stuck that code on a virus it wouldn't indemnify you).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-16T13:57:00.810" CommentCount="6" />
  <row Id="26953" PostTypeId="2" ParentId="26901" CreationDate="2010-12-16T13:59:33.897" Score="12" ViewCount="" Body="&lt;p&gt;I just sent my development manager an email the other day where I timed how long it took me to restart my computer, as well as things like opening Visual Studio, compiling, etc.  Then I multiplied this by an estimate of how many times per day I do these things, then by the # of working days per year, then by our number of developers, and then finally by our normal costing rate for developer time.  The dollar amount of lost time was compelling enough for him to look into getting us better machines.  Nothing has come of it yet, but a man can dream...&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-12-16T13:59:33.897" CommentCount="3" />
  <row Id="26954" PostTypeId="2" ParentId="26942" CreationDate="2010-12-16T13:59:36.063" Score="5" ViewCount="" Body="&lt;p&gt;Can't we just have developers who understand why a proper release process is important and do it out of a sense of professional pride?&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-16T13:59:36.063" CommentCount="6" />
  <row Id="26955" PostTypeId="2" ParentId="26948" CreationDate="2010-12-16T14:00:05.883" Score="1" ViewCount="" Body="&lt;p&gt;Yes absolutely -- I mean obviously if you're offering this for public use, you need some protection from people who might point the finger at you -- even when it's their mistakes ( I know never happens right ) which might cause harm or injury.  Having this phrase in there at least will make the legal system aware that your &lt;strong&gt;intent&lt;/strong&gt; was to offer this without an express warranty as to its use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps it's a matter of what the software is actually attempting to do which makes it necessary to go further and have a lawyer look over the details -- any open source nuclear reactor management software -- you're going to want to lawyer up for that.&lt;/p&gt;&#xA;" OwnerUserId="4662" LastEditorUserId="4662" LastEditorDisplayName="" LastEditDate="2010-12-16T16:17:55.373" LastActivityDate="2010-12-16T16:17:55.373" />
  <row Id="26956" PostTypeId="2" ParentId="26949" CreationDate="2010-12-16T14:06:34.530" Score="8" ViewCount="" Body="&lt;h3&gt;It's necessary.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Look at the most popular user based (social?) sites today. Facebook, Twitter, SO / SE, LinkedIn, Reddit. What do they all have in common?&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Numbers&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;On Facebook it's how many friends you have, Twitter how many followers. SO / SE sites are a bit more explicit, they have &lt;em&gt;reputation&lt;/em&gt;. LinkedIn is a bit more obscure, they have connections. &lt;strong&gt;Its a giant dick measuring contest&lt;/strong&gt; that works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By nature we want comparison and judgment. These sites give us that and that is what keeps us coming back. Without that magic number I don't think these sites would be nearly as successful as they are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does this mean that sites &lt;em&gt;without&lt;/em&gt; a native ranking system are not worth time? No, but it does limit the attraction to being a repeat visitor. Some sites bypass this by offering an valued service. Google for searches, Wired for content, etc. &quot;Gaming&quot; the users is a very effective way of building a user base that has lots of loyalty in terms of repeat visits and contributions. Sites built on these contributions (SO / SE, Facebook, Slashdot...) do much better when they have a &lt;strong&gt;number&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-16T14:06:34.530" CommentCount="17" />
  <row Id="26957" PostTypeId="2" ParentId="26948" CreationDate="2010-12-16T14:12:24.863" Score="1" ViewCount="" Body="&lt;p&gt;What I know is that this term is mainly used to avoid the use in the mission critical software. e.g. If the software is getting used in airplane, or in factory where mistake in software can cost human life.&lt;/p&gt;&#xA;" OwnerUserId="8820" LastEditorUserId="8820" LastEditorDisplayName="" LastEditDate="2010-12-16T16:38:53.650" LastActivityDate="2010-12-16T16:38:53.650" CommentCount="3" />
  <row Id="26958" PostTypeId="2" ParentId="26949" CreationDate="2010-12-16T14:25:34.927" Score="2" ViewCount="" Body="&lt;p&gt;I suppose the dangers are that people might become more concerned with playing the game than with actually making a worthwhile contribution to the site.  This is similar to what is happening in politics -- is it truly that the most qualified leaders are getting elected or that the people who are good at manipulating and playing the game getting elected?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would be tougher to do on a technical site like Stack Overflow obviously -- where the answer is 1 or 0 (it works or it doesn't) -- but probably easier at a subjective opinion site like this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course the benefits are that the people who do contribute feel like they are getting something in return -- even if they are really getting nothing back (like playing video games).&lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-12-16T14:25:34.927" CommentCount="3" />
  <row Id="26959" PostTypeId="2" ParentId="16070" CreationDate="2010-12-16T14:38:34.330" Score="1" ViewCount="" Body="&lt;p&gt;This is something I actually wanted to blog about for a longer time, but I never got to it. Luckily, I am a rep zombie and there's even a bounty. &lt;a href=&quot;http://back2dos.wordpress.com/2010/12/16/abstraction/&quot; rel=&quot;nofollow&quot;&gt;My post turned out rather lengthy&lt;/a&gt;, but here's the essence:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Abstraction in programming is about&#xA;  understanding the essence of an object&#xA;  within a given context.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;[...]&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Abstraction is not only mistaken with&#xA;  generalization, but also with&#xA;  encapsulation, but these are the two&#xA;  orthogonal parts of information&#xA;  hiding: The service module decides&#xA;  what it is willing to show and the&#xA;  client module decides what it is&#xA;  willing to see. Encapsulation is the&#xA;  first part and abstraction the latter.&#xA;  Only both together constitute full&#xA;  information hiding.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Hope that helps.&lt;/p&gt;&#xA;" OwnerUserId="667" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-16T19:43:43.653" LastActivityDate="2010-12-16T19:43:43.653" CommentCount="1" />
  <row Id="26960" PostTypeId="2" ParentId="282" CreationDate="2010-12-16T14:44:47.957" Score="1" ViewCount="" Body="&lt;p&gt;It's not software related, but &lt;a href=&quot;http://skeptoid.com/&quot; rel=&quot;nofollow&quot;&gt;Skeptoid: Critical Analysis Podcast&lt;/a&gt; is always interesting.&lt;/p&gt;&#xA;" OwnerUserId="905" LastActivityDate="2010-12-16T14:44:47.957" CommunityOwnedDate="2010-12-21T06:02:41.540" />
  <row Id="26961" PostTypeId="2" ParentId="26949" CreationDate="2010-12-16T14:48:45.093" Score="1" ViewCount="" Body="&lt;p&gt;Another interesting perspective on gamification and commerial use/advertising etc was on fora.tv I saw it on hulu....I'll see if it's still there.  link: &lt;a href=&quot;http://www.hulu.com/watch/175583/foratv-technology-the-future-of-video-games-jesse-schells-visions-of-the-gamepocalypse&quot; rel=&quot;nofollow&quot;&gt;http://www.hulu.com/watch/175583/foratv-technology-the-future-of-video-games-jesse-schells-visions-of-the-gamepocalypse&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;interesting implications...&lt;/p&gt;&#xA;" OwnerUserId="4534" LastActivityDate="2010-12-16T14:48:45.093" />
  <row Id="26962" PostTypeId="2" ParentId="13691" CreationDate="2010-12-16T15:06:22.583" Score="1" ViewCount="" Body="&lt;p&gt;For the last year, I've been working a lot with Groovy (and Java as well, but more Groovy).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IDE integration: OK in Netbeans. Since Groovy is dynamic, don't expect the same level of IDE support like Java (Intelisense, Refactoring etc.). Some people say that InteliJ is even better, but my coworker who checked it out didn't like it. YMMV. Last time I checked, support in Eclipse was not as good as in Netbeans.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Groovy can be very easily integrated or mixed with Java. The syntax is relatively similar, so the mental switch doesn't hurt too much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Especialy when used with the Grails framework, Groovy is fun to work with (IMO). I also like the similarity to JavaScript; therefore a project that mixed Groovy on the backend with JavaScript on the client doesn't require understanding two completely different languages; in many cases, it feels more like two dialects of the same language.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-16T15:06:22.583" CommentCount="1" />
  <row Id="26964" PostTypeId="2" ParentId="25728" CreationDate="2010-12-16T15:14:28.310" Score="1" ViewCount="" Body="&lt;p&gt;I’ve taken the PSP course and have been involved in creating on-line training for it.  I’ve seen a number of successful implementations of TSP/PSP in companies – e.g. Intuit, Adobe, HP.  The premise is strong: use accurate historical data of your own performance as a developer (in terms of time and, possibly more importantly, defects), analyse it (you’re given tools to do this), and base future predictions of your performance on this (that’s the PSP), and then roll this up with the data of your team members to create projections for your team’s performance (that’s the TSP).  Where teams &quot;buy it&quot;, it’s remarkably effective at improving scheduling and reducing defect rates – there’s a lot of case studies and reports published.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Data privacy is a concern that is considered at some point by everyone who looks at the PSP.  The principle of the PSP is that your personal data is never shared.  When it’s rolled up with others' in your team, then the team can access the rolled-up data.  If you work for a company that violates this principle, then you’re likely to have put privacy concerns behind you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developers often buck at the prospect of logging time against their activities.  The key to this is an effective demonstration of the advantage of keeping a log, learning to analyse the data, and applying the lessons learnt to write less-defective code in the time you said you would.  Experiencing this is quite interesting.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have a look at:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.innerworkings.com/process&quot; rel=&quot;nofollow&quot;&gt;http://www.innerworkings.com/process&lt;/a&gt;  I'm only allowed 1 hyperlink in my post, so It'll be my own ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look also at the Web sites for the Software Engineering Institiute's TSP pages, their annual Symposium proceedings, and the Wikipedia entry for PSP (it's more comprehensive than the TSP page).&lt;/p&gt;&#xA;" OwnerUserId="10255" LastEditorUserId="10255" LastEditorDisplayName="" LastEditDate="2010-12-16T16:51:19.143" LastActivityDate="2010-12-16T16:51:19.143" CommentCount="3" />
  <row Id="26965" PostTypeId="2" ParentId="26471" CreationDate="2010-12-16T15:23:24.510" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/events/default.mspx&quot; rel=&quot;nofollow&quot;&gt;Microsoft lists all of their events&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="10256" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-16T19:38:55.200" LastActivityDate="2010-12-16T19:38:55.200" />
  <row Id="26966" PostTypeId="2" ParentId="26906" CreationDate="2010-12-16T15:24:42.060" Score="0" ViewCount="" Body="&lt;p&gt;The key difference is licensing.  Doctors and civil engineers hold professional licenses, and need them to perform their job and make their living, and they also have legal personal responsibility for more things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This can put more pressure on doctors and engineers, when pushed towards doing something that may cause them personal and professional risk, but it gives them more push-back, since they can argue that they can't do something because of professional ethics, and that they'll lose their licenses if they do.  A threat to fire a civil engineer for refusing to sign off on a plan loses force when the consequence of signing off is that the engineer will lose his or her license, and be unable to work in the field anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is connected with legal requirements.  I can't prescribe many drugs, and if I do certain things to somebody that a doctor can legally do I'd committing a crime.  Similarly, most governments around here will not permit a company to build a bridge without a licensed civil engineer approving the design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There have been proposals to license programmers, but none I'm aware of have ever gone anywhere.  It would probably be necessary to have a legal requirement to have licensed programmers to work on projects first, and that isn't happening any time soon.  There are professional organizations with codes of ethics comparable to medical or engineering codes, but without any legal force they're more like guides for personal codes of ethics.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-16T15:24:42.060" />
  <row Id="26967" PostTypeId="2" ParentId="26906" CreationDate="2010-12-16T15:36:29.887" Score="0" ViewCount="" Body="&lt;p&gt;I'm not thinking of the ethical dimension, but the proper relationship to the customer/user base can be quite variable depending upon the type of market. Where I work we have a highly technical product, and highly technical users, and the average revenue per customer is fairly high. So our business boundaries are a bit blurry: we have customers and value added resellers who act as consultants, who assist in code checkout and may even submit modules for inclusion into the software. It we were selling a mass market application this model would make no sense whatsoever.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-12-16T15:36:29.887" />
  <row Id="26968" PostTypeId="2" ParentId="26823" CreationDate="2010-12-16T15:43:44.453" Score="4" ViewCount="" Body="&lt;h2&gt;&quot;Learning how to hammer a nail, does not make a carpenter..&quot;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;But just as important, one can not begin to become a a carpenter without first learning how to hammer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Building applications is about &lt;strong&gt;problem solving&lt;/strong&gt;, you can't teach some-one how to solve problems(*), but you can &lt;strong&gt;give&lt;/strong&gt; the &lt;strong&gt;tools&lt;/strong&gt; to do it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a nutshell, learn to program first, then &lt;strong&gt;apply&lt;/strong&gt; that new found knowledge to solve problems. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write an application, no matter how bad, learn from your mistakes and re-make.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over time, just like a child that falls over while learning to walk, you will also learn through failures how to make better applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&#xA;(*) &lt;em&gt;Generalised problems yes, specific problems no.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-16T19:29:53.867" LastActivityDate="2010-12-16T19:29:53.867" />
  <row Id="26970" PostTypeId="1" AcceptedAnswerId="26971" CreationDate="2010-12-16T16:07:09.727" Score="22" ViewCount="1129" Body="&lt;p&gt;Lets say you're a web developer/programmer and you want to set up a personal portfolio site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, like most people with a full time job and a family, your time is hard to come by.  You make the choice to, instead of building your own site from scratch, implement something like WordPress or Drupal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What effect (if any) might this have on people's (potential employers/fellow developers) perception of you as a developer?&lt;/p&gt;&#xA;" OwnerUserId="9987" LastActivityDate="2010-12-17T09:39:53.210" Title="Perception of a developer that uses a pre-packaged web implementation for their personal site?" Tags="&lt;web-development&gt;&lt;blogs&gt;&lt;employment&gt;&lt;portfolio&gt;" AnswerCount="22" CommentCount="15" FavoriteCount="2" />
  <row Id="26971" PostTypeId="2" ParentId="26970" CreationDate="2010-12-16T16:09:40.550" Score="59" ViewCount="" Body="&lt;p&gt;Personally my view would be that it's a sensible thing to do, so long as the tool you choose is appropriate for the job and well implemented (that is stable and functional).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they want someone who is going to reinvent the wheel every time then perhaps they should look for someone who has hand coded something but generally this should be seen as a developer identifying a quick, easy and cheap solution to a problem and that is, surely, a good thing.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-16T16:09:40.550" CommentCount="5" />
  <row Id="26972" PostTypeId="2" ParentId="870" CreationDate="2010-12-16T16:10:03.890" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www2.research.att.com/~bs/3rd.html&quot; rel=&quot;nofollow&quot;&gt;The C++ Programming Language&lt;/a&gt; by Bjarne Stroustrup&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/fwRPA.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="3534" LastActivityDate="2010-12-16T16:10:03.890" CommunityOwnedDate="2011-01-21T21:28:48.980" CommentCount="1" />
  <row Id="26973" PostTypeId="2" ParentId="26970" CreationDate="2010-12-16T16:10:16.723" Score="19" ViewCount="" Body="&lt;p&gt;In my mind, a reasonable employer would look at it and say &quot;hey, this person is not reinventing the wheel and is familiar with available options&quot;. Or they would not think anything at all and just focus on the content of your site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're a developer applying for Drupal jobs, it makes perfect sense to use Drupal for your personal site. If you're applying for jobs that have you build a CMS from scratch, writing your own may be a good option or not, depending on how much relevant experience you already have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really wouldn't worry about it either way. Getting a site up with good content is more important than setting up the perfect framework, be it your own or someone else's.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-16T16:10:16.723" />
  <row Id="26974" PostTypeId="2" ParentId="26970" CreationDate="2010-12-16T16:13:27.423" Score="0" ViewCount="" Body="&lt;p&gt;There may be an implication of endorsement or proficiency within that technology for the first effect.  If I set up a WordPress or Drupal site as my personal site, there are a few implications to my mind:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It is good enough to use as I'm using it. &lt;em&gt;rim shot, please&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;It is within my skill set which may or may not quite be right but there would be entries to clarify this as I may be trying to learn some new framework and using this as a grand experiment.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I would think the content may trump what is used though so that if your content is awesome, it won't matter that much what was used but it could make for a talking point in an interview to say, &quot;I learned about WordPress by setting up my own site which I used to...&quot; kind of thing.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-16T16:13:27.423" />
  <row Id="26975" PostTypeId="2" ParentId="26970" CreationDate="2010-12-16T16:13:35.987" Score="3" ViewCount="" Body="&lt;p&gt;There should be absolutely no negative perception -- its should be solely about the quality of the information you're putting up.  As a matter of fact, I would question whether the time / investment in creating your own site is worth it unless you are a design firm or are building a site/blogging framework for others to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Granted, if you are trying to look for web site design work, then it is probably a good idea that your site should be a reflection of your skillset and not someone else's.&lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-12-16T16:13:35.987" />
  <row Id="26976" PostTypeId="2" ParentId="870" CreationDate="2010-12-16T16:18:54.157" Score="2" ViewCount="" Body="&lt;h1&gt;The must-have Java books:&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Effective Java&lt;/strong&gt; By Josh Bloch&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/UbhLM.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Java Concurrency in Practice&lt;/strong&gt; By Brian Goetz, et. al.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/8QvDo.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Java Puzzlers&lt;/strong&gt; By Josh Bloch, Neal Gafter&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/osTGj.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2010-12-16T16:18:54.157" CommunityOwnedDate="2011-01-21T21:28:48.980" CommentCount="1" />
  <row Id="26977" PostTypeId="2" ParentId="26901" CreationDate="2010-12-16T16:22:45.417" Score="0" ViewCount="" Body="&lt;p&gt;Buy the new one based on what you want using your money first. Do best your job, show the result to your boss. If your boss gets profit from your job, ask him to reimburse you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually do this in my lab. :-) Very fair, isn't it?&lt;/p&gt;&#xA;" OwnerUserId="9095" LastActivityDate="2010-12-16T16:22:45.417" />
  <row Id="26978" PostTypeId="2" ParentId="26970" CreationDate="2010-12-16T16:25:15.993" Score="2" ViewCount="" Body="&lt;p&gt;If your site's content is intelligent and useful, no one's going to care if it's canned.  I'm a professional Drupal consultant, and &lt;a href=&quot;http://binaryredneck.net&quot; rel=&quot;nofollow&quot;&gt;my personal blog&lt;/a&gt; is a mostly-neglected Drupal 6 install (current stable, though my work site is already going up on Drupal 7's release candidate in the next few days) with a canned theme.  Nobody cares -- they know that I don't spend time on eyecandy for my blog -- I spend time on &lt;em&gt;content&lt;/em&gt;.  Even some Drupal designers I know have tremendously ugly or obviously canned-looking blogs.  It's all about the content.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-16T16:25:15.993" CommentCount="2" />
  <row Id="26979" PostTypeId="2" ParentId="20128" CreationDate="2010-12-16T16:27:32.777" Score="-3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Bubble Sort !&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bubble sort is not as bad as &lt;a href=&quot;http://en.wikipedia.org/wiki/Bogosort&quot; rel=&quot;nofollow&quot;&gt;Bogosort&lt;/a&gt;. That is why I vote for the Bubble sort.&lt;/p&gt;&#xA;" OwnerUserId="9095" LastEditorUserId="9095" LastEditorDisplayName="" LastEditDate="2011-05-29T03:16:19.633" LastActivityDate="2011-05-29T03:16:19.633" CommunityOwnedDate="2011-02-13T09:34:31.083" CommentCount="3" />
  <row Id="26980" PostTypeId="2" ParentId="20128" CreationDate="2010-12-16T16:30:59.950" Score="-1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Brute Force Algorithm !&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many people underestimate this brute force algorithm. Actually it is mostly used to solve problems having no pattern. I love it much! &lt;/p&gt;&#xA;" OwnerUserId="9095" LastEditorUserId="9095" LastEditorDisplayName="" LastEditDate="2010-12-21T02:18:41.747" LastActivityDate="2010-12-21T02:18:41.747" CommunityOwnedDate="2011-02-13T09:34:31.083" CommentCount="4" />
  <row Id="26981" PostTypeId="2" ParentId="26892" CreationDate="2010-12-16T16:31:44.353" Score="1" ViewCount="" Body="&lt;p&gt;Don't forget to put non-programming related items that show your &quot;soft&quot; skills. Leadership or (committed) volunteer activities are a nice addition to your coding skills. You're not just a coding machine, you do need to show you're a decent human being, too. &lt;/p&gt;&#xA;" OwnerUserId="9988" LastActivityDate="2010-12-16T16:31:44.353" />
  <row Id="26982" PostTypeId="2" ParentId="26970" CreationDate="2010-12-16T16:32:48.107" Score="2" ViewCount="" Body="&lt;p&gt;I don't think using an off the shelf solution will count and a negative, but I think it would change my focus when reading the site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I came across a C++ dev's website that he had built himself using php, I would give him extra 'credit' for going out and taking the time to learning a technology. I would take the time to look at what features he had implemented and the choices he had made. It stands as an example of his work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if he had just used a pre-packaged solution I would pretty much ignore it and focus on his content.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally my website is 95% custom code using Asp.net MVC2. (My only 3rd party dependency is sharpziplib to build some zip files). That isn't because it's anything that couldn't have been done with off the shelf packages, but it's because I wanted to learn MVC and it seemed the most sensible project to undertake to help me learn it. I can honestly say my knowledge of the web and MVC has increased drastically because I made this choice.&lt;/p&gt;&#xA;" OwnerUserId="134" LastActivityDate="2010-12-16T16:32:48.107" CommentCount="2" />
  <row Id="26983" PostTypeId="2" ParentId="26970" CreationDate="2010-12-16T16:36:51.557" Score="16" ViewCount="" Body="&lt;h1&gt;Lazy&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Lazy is the first thing that comes to my mind when I see a stock WordPress install.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Frugal&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Second thing. If you have good content that plays to the strength that you're focused more on that then wasting time perfecting your own version.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Busy&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;If you're using a stock engine it's one of two things. You're stupid or you're busy. Which of those &lt;em&gt;you&lt;/em&gt; are can be told by what you are writing. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-16T16:36:51.557" CommentCount="2" />
  <row Id="26984" PostTypeId="2" ParentId="26970" CreationDate="2010-12-16T16:37:51.817" Score="1" ViewCount="" Body="&lt;p&gt;It is a very good idea to show what you can do.  If you do web frameworks, then it would be a good idea to show off those skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do anything &lt;em&gt;ELSE&lt;/em&gt; than web frameworks then demonstrate your ability to select the best building blocks to achieve your goal!   Most modern development consists of being able to do exactly this, combined with being able to write the glue, and the frosting.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-16T16:37:51.817" />
  <row Id="26985" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T16:38:02.993" Score="4" ViewCount="" Body="&lt;p&gt;Time management is an important skill. Not only being able to stay on task, but being able to estimate how long different jobs are going to take you and when you'll be able to work on them. &lt;/p&gt;&#xA;" OwnerUserId="9988" LastActivityDate="2010-12-16T16:38:02.993" CommunityOwnedDate="2011-02-20T17:10:34.583" CommentCount="2" />
  <row Id="26986" PostTypeId="2" ParentId="26901" CreationDate="2010-12-16T16:53:00.637" Score="0" ViewCount="" Body="&lt;p&gt;Do a simple trial. If you have some tasks that take a long period of time, that are repeated by other members of your team, show your boss the numbers, and have one person get a real machine. When that person is able to do so much more, then use the data from that test to prove that a new machine for everyone would be beneficial!&lt;/p&gt;&#xA;" OwnerUserId="10258" LastActivityDate="2010-12-16T16:53:00.637" />
  <row Id="26987" PostTypeId="2" ParentId="26901" CreationDate="2010-12-16T16:57:56.293" Score="1" ViewCount="" Body="&lt;p&gt;If you work at a small company or if the manager sometimes sits beside you to watch what you're doing, or if you get the opportunity to show him/her something, genuinely show how much time something is taking that shouldn't take so long in the first place. Subtly complain about the machine.&#xA;If you do it right, the person might &quot;feel&quot; it's time for a better computer. &#xA;My friend did that once and he got new monitors, keyboard, etc.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-16T16:57:56.293" CommentCount="1" />
  <row Id="26988" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T17:12:01.770" Score="1" ViewCount="" Body="&lt;p&gt;Here's a list of languages I suggest you play with: haXe, Haskell, Ruby, Scala, OCaml. They are listed in no particular order (except my favourite being the first). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning and understanding the concepts different languages promote is very helpful. What is a design pattern in some languages, is a mere language construct in others. When it's a feature, that nicely integrates in the language, you will get a much better understanding of it, and using it for modeling solution will become as natural as using a certain gramatical construct to express a thought in human language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, you may want to investigate popular frameworks existent for those languages. Try to understand their how their design works, and then why it works the way it works. Put it into relation with the languages they use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software development is mostly about looking at a problem from the right angle and finding a good way to express the solution. &lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-12-16T17:12:01.770" CommunityOwnedDate="2011-02-20T17:10:34.583" />
  <row Id="26989" PostTypeId="1" AcceptedAnswerId="27028" CreationDate="2010-12-16T17:18:06.750" Score="5" ViewCount="670" Body="&lt;p&gt;For better or worse, we're going to be using WCF as part of the back-end of a new system we are going to be building.  I'm looking for a good book to help me learn how to create such services effectively and correctly.  I came across the older version of Michele Leroux Bustamante's book, Learning WCF, but it isn't helping much for v4.  She has a new version of the book for v4, but it isn't out until January.  I picked up Juval Lowy's  Programming WCF Services and while I'm sure it is a great book, it is definitely WAY above my current knowledge level. I'm not getting anything much from it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been scoping out the offerings on Amazon, and quite frankly I can't tell which of all these books is going to be of much help.  My local Barnes and Noble currently has no other WCF books on its shelves so I cannot check some of these out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One that looked interesting was &quot;Windows Communication Foundation 4 Step by Step&quot; by John Sharp, but there's no reviews on Amazon of this, so...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I need some recommendations!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Updated to add:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was dismayed that the results here were not at all trending towards finding me a book that could be used as a beginner-style tutorial (except for Bustamante's book, which is not yet available for WCF v4).  I then found that John Sharp had written a book called &quot;Windows Communication Foundation 4 Step by Step&quot;.  I wasn't sure if this was going to be what I needed either, but a look at Amazon's user reviews for the previous edition of the book (for v3 of WCF) seemed to indicate it might work.  As I frequently do, I used Amazon's reviews to choose to buy a book at my local Barnes &amp;amp; Noble.  I'll see about reporting in this space how this book works out for me.  Thanks, everyone who responded!&lt;/p&gt;&#xA;" OwnerUserId="1351" LastEditorUserId="1351" LastEditorDisplayName="" LastEditDate="2010-12-17T17:04:43.987" LastActivityDate="2010-12-17T17:04:43.987" Title="What is the best book for learning WCF?" Tags="&lt;books&gt;&lt;wcf&gt;" AnswerCount="6" CommentCount="2" />
  <row Id="26990" PostTypeId="2" ParentId="39" CreationDate="2010-12-16T17:18:26.800" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;If you can't measure it, you can't&#xA;  improve it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;Lord Kelvin&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="10037" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-16T19:43:12.063" LastActivityDate="2010-12-16T19:43:12.063" CommunityOwnedDate="2010-12-16T17:18:26.800" />
  <row Id="26991" PostTypeId="2" ParentId="3535" CreationDate="2010-12-16T17:20:37.063" Score="1" ViewCount="" Body="&lt;p&gt;Such contract clauses are pure insanity, i accept confidentiality and such clauses, but not being able to work in competing company is just unfair and it's time someone to contra-sue such restrictive contracts. I guess if you're a VP the new company will stand behind you. No one should be able to put a restrain on your capabilities and brain. It's kinda unconstitutional. Not far ago i have seen such restrictive contract for a field that it is totally unnecessary and if not fought such contracts soon will be common. It's a very serious matter and we all should think about it, the corporate world just takes our rights every day and we just do nothing.&lt;/p&gt;&#xA;" OwnerUserId="10260" LastActivityDate="2010-12-16T17:20:37.063" />
  <row Id="26993" PostTypeId="2" ParentId="26989" CreationDate="2010-12-16T17:25:41.533" Score="5" ViewCount="" Body="&lt;p&gt;This one's a good book : &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596101627&quot; rel=&quot;nofollow&quot;&gt;Learning WCF: A Hands-on Guide&lt;/a&gt; by Michele Leroux Bustamante&#xA;&lt;img src=&quot;http://i.imgur.com/uVZFR.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Customer reviews &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596101627&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4522" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-12-16T17:32:41.900" LastActivityDate="2010-12-16T17:32:41.900" CommentCount="1" />
  <row Id="26994" PostTypeId="2" ParentId="26970" CreationDate="2010-12-16T17:28:15.733" Score="1" ViewCount="" Body="&lt;p&gt;building your own web site from scratch &lt;em&gt;for no good reason&lt;/em&gt; and then &lt;em&gt;letting it look bad&lt;/em&gt; would be two strikes...if you're applying for a web-dev job&lt;/p&gt;&#xA;&#xA;&lt;p&gt;using WordPress et al is just common sense&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: [thanks @Ben] a good-looking web site is more a function of graphic design and layout skills than programming. If your hand-crafted web site looks good that's certainly better than having it look bad, but it doesn't tell me anything about your programming skills. And a fancy-pants web site full of impressive gizmos may demonstrate amazing programming skill, but would likely illustrate utter cluelessness about user experience design (except for games, of course).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So while it may be fun to write your own CMS for your personal blog, it's probably not going to impress anybody.&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-12-16T19:48:55.037" LastActivityDate="2010-12-16T19:48:55.037" CommentCount="5" />
  <row Id="26995" PostTypeId="2" ParentId="26948" CreationDate="2010-12-16T17:35:40.553" Score="0" ViewCount="" Body="&lt;p&gt;Use a GPL style license - it's tried and tested. ( if you can ) Else better go with the long variant. &quot;Use at your own risk&quot; - is not very informative and &quot;sound scary !&quot; the long variant sounds more &quot;professional&quot;, still it depends on the type of app., if you release a packer, unpacker, scan tool whatever .. you know for nerds and geeks :) it's a safe bet to use the short phrase, but if you think that the &quot;general public&quot; may use your product than go with the styled license.&lt;/p&gt;&#xA;" OwnerUserId="10260" LastActivityDate="2010-12-16T17:35:40.553" CommentCount="1" />
  <row Id="26996" PostTypeId="2" ParentId="7565" CreationDate="2010-12-16T17:36:07.773" Score="0" ViewCount="" Body="&lt;p&gt;If you want to practice Test Driven Development and Continuous Integration, which I find to be some of the best agile practices to follow I'd look at these books:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321503627&quot; rel=&quot;nofollow&quot;&gt;Growing Object Oriented Software, Guided by Tests&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321601912&quot; rel=&quot;nofollow&quot;&gt;Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10254" LastActivityDate="2010-12-16T17:36:07.773" />
  <row Id="26998" PostTypeId="2" ParentId="26970" CreationDate="2010-12-16T17:45:55.860" Score="2" ViewCount="" Body="&lt;p&gt;I think it very much depends what you are applying for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have to hire for HTML/CSS web developers or designers sometimes.  If they have their own site, I look at the source almost straight away.  Generally it would be better if they did not tell me about a personal site unless it was self-built and they were proud of it.  Examples of work are what I would be there for, I might be interested in their political views or outside activities, but not in that form.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Non-web positions, well, it depends how well they have used the off-the-shelf package, and if it is any good.  Choosing to use poor quality products does not bode well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main point in my opinion is why have a personal site?  If you are self-employed, maybe, or looking for work there is a view for a portfolio to be useful.  But I would rather get such information sent to me with an application than going off to a website for some presentation.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-16T17:45:55.860" />
  <row Id="26999" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T17:46:19.933" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Debugging techniques&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many debugging techniques that are independent of language:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Reproducing a bug (or what to do if it can't be easily reproduced)&lt;/li&gt;&#xA;&lt;li&gt;Using a divide and conquer approach to narrow down the location of a bug&lt;/li&gt;&#xA;&lt;li&gt;Using breakpoints, stack traces, and other debugger tools&lt;/li&gt;&#xA;&lt;li&gt;Putting assertions into code&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2010-12-17T00:46:39.277" LastActivityDate="2010-12-17T00:46:39.277" CommunityOwnedDate="2011-02-20T17:10:34.583" />
  <row Id="27000" PostTypeId="2" ParentId="26901" CreationDate="2010-12-16T17:51:02.937" Score="2" ViewCount="" Body="&lt;p&gt;A lot of the answers here relate to making a business case for buying you a new workstation.  By all means, make that case.  But that shouldn't be the primary argument you should be making to your employer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The primary case should be &quot;I'm frustrated because my computer is so slow&quot;.  And I'm not just saying that out of some ideal that managers need to cater to all of their employees' desires.  I'm saying it because that's the best business case you could possibly make.  In the grand scheme of things, the cost of replacing a developer who (presumably) gets things done is by far greater than the $3-4k that they could have spent to get a new workstation.  Besides that, what percentage of your income is a new workstation?  Hopefully, it's a pretty low one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, the cost of finding and paying good software developers is the greatest cost any software company has to pay.  Buying those programmers the tools they need (or even the tools they &lt;em&gt;want&lt;/em&gt;) is tiny in comparison.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-16T17:51:02.937" />
  <row Id="27001" PostTypeId="2" ParentId="26931" CreationDate="2010-12-16T17:55:36.867" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Build functional tests from re-usable use cases&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the time comes to test your application end to end in-situ, you're performing functional testing. Typically you'll have a set of requirements that you're testing against and you'll be able to construct various use cases that represent them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an example, consider the &quot;Login as standard user&quot; use case. Your test framework fires up the application, waits for the login screen, enters some credentials, clicks the login button and verifies that the appropriate screen is now showing that login was successful. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After you've done the &quot;Login as standard user&quot; use case, you'll want to build on that to do something else, perhaps the &quot;Edit my user details&quot; use case. You won't want to repeat all the code from the &quot;Login as standard user&quot; use case, so you just make a reference to the test framework code that does that bit. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This implies that you have some kind of &lt;strong&gt;over-arching functional test&lt;/strong&gt; containing a list of use cases. These use cases contain the test framework methods to cause application behaviour (click button X) and verify the behaviour (screen turned blue).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall, you can build up a body of re-usable use cases that target specific sequences and test for specific responses, and then aggregate them into various functional tests that correlate closely with the business requirements. Once you've got that in place, then you're in a great position to &lt;strong&gt;fully automate your entire build process&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're interested in reading further &lt;a href=&quot;http://gary-rowe.com/agilestack/2010/01/26/creating-agile-functional-tests-with-selenium/&quot; rel=&quot;nofollow&quot;&gt;I've written about this approach&lt;/a&gt; elsewhere, but the article targets web applications in Java (using Maven and SeleniumRC) rather than desktop applications which you have requested.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-16T17:55:36.867" />
  <row Id="27002" PostTypeId="2" ParentId="23121" CreationDate="2010-12-16T18:05:15.913" Score="0" ViewCount="" Body="&lt;p&gt;Obviously, &lt;a href=&quot;http://vi.sualize.us/view/yumehito/8e05c7f945a1365121bbab33e1b3c7d4/&quot; rel=&quot;nofollow&quot;&gt;&gt;this&amp;lt;&lt;/a&gt; slipped past you. There's also &lt;a href=&quot;http://xkcd.com/225/&quot; rel=&quot;nofollow&quot;&gt;rumors&lt;/a&gt; Linus sleeps with nunchucks.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-12-16T18:05:15.913" />
  <row Id="27003" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T18:11:47.197" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Software_development_process&quot; rel=&quot;nofollow&quot;&gt;Software Development Process&lt;/a&gt; and understanding development methodologies like Waterfall or Agile would be another set of material to learn that could be useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't forget to pay attention to what kinds of development you like and what kinds of career aspirations you have.  Maybe you want to be a one man IT army or a one man software shop or maybe something else.  Figuring that out would also be rather valuable, or at least that is my other guess.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-16T18:11:47.197" CommunityOwnedDate="2011-02-20T17:10:34.583" />
  <row Id="27004" PostTypeId="2" ParentId="26989" CreationDate="2010-12-16T18:14:57.443" Score="0" ViewCount="" Body="&lt;p&gt;There should be enough information on &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd560536.aspx&quot; rel=&quot;nofollow&quot;&gt;MSDN&lt;/a&gt; to get you up to speed to the point where Juval's book becomes useful.  There's also a DZone &lt;a href=&quot;http://refcardz.dzone.com/refcardz/getting-started-windows-0&quot; rel=&quot;nofollow&quot;&gt;Refcard&lt;/a&gt; (#111) on WCF 4.0.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can certainly understand wanting a book (that's usually my preference too), but when you're trying to come up to speed on new tech, books tend to be second-tier resources.  Either they don't cover the latest release, or they cover pre-release or beta versions that don't match the actual release.  Not that on-line resources don't suffer from the same problems, but it's at least possible to find up-to-date info on the net.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-16T18:14:57.443" />
  <row Id="27005" PostTypeId="2" ParentId="26901" CreationDate="2010-12-16T18:23:38.903" Score="1" ViewCount="" Body="&lt;p&gt;If all else fails, use fire.&lt;/p&gt;&#xA;" OwnerUserId="10268" LastActivityDate="2010-12-16T18:23:38.903" />
  <row Id="27006" PostTypeId="2" ParentId="26901" CreationDate="2010-12-16T18:35:44.660" Score="2" ViewCount="" Body="&lt;p&gt;I have long since given up trying to convince people about the amount of computing power I need to do their bidding.  I will do things with their equipment for a short time, and then what I will often do is bring in my own system (usually, my desktop from home) and sit it next to the computer that they have.  Then I sit them down and I show them everything &quot;normal&quot; on their system, and again on my system.  My system only cost me about $500 to build, piecemeal, and it runs circles around everything that I have seen in a business environment, even a technicial business environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a sales technique, of course: the Kirby people (you know, those people that come to your home and demo their &quot;home cleaning system&quot;s to you) call this &quot;killing the old machine,&quot; and I have found that at least when it comes to the argument for a more modern, reasonably powerful workstation, or for dual-displays, it is pretty easy to &quot;win&quot; by &quot;killing the old machine,&quot; which is really about killing the perception that &quot;everything is fine because it's not broken and/or burning up in a ball of flames&quot;.&lt;/p&gt;&#xA;" OwnerUserId="10029" LastActivityDate="2010-12-16T18:35:44.660" CommentCount="6" />
  <row Id="27007" PostTypeId="2" ParentId="870" CreationDate="2010-12-16T18:42:35.943" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Object Design: Roles, Responsability and Collaborations&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Txz4E.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is by far my favorite programming book (even if it is not language dependent). In my humble opinion is the book that better presents the case on how to design objects that relate to their cousins/brothers/neighboors. A must have in any serious programmer bookshelf.&lt;/p&gt;&#xA;" OwnerUserId="6487" LastActivityDate="2010-12-16T18:42:35.943" CommunityOwnedDate="2011-01-21T21:28:48.980" />
  <row Id="27008" PostTypeId="2" ParentId="3282" CreationDate="2010-12-16T18:42:44.683" Score="1" ViewCount="" Body="&lt;p&gt;I'd have to say the scariest piece of code I ever had to maintain was this windows service... written in Visual Basic... as a control... in French.  (The company I worked for had bought a French software company for their code.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, that means that the function names were in French, the variables were in French, and the comments were in French.  It was amazing.  I would have an online translator in one browser window the whole time, translating things so I could get an idea of what they were.  As I figured out what the private methods did, I would convert their names and arguments into english, but anything that was public had to stay in French, although I did update the comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found a Visual Basic testing framework that I was able to connect the control up to so I could try automating tests and nail down what it was supposed to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually, of course, I left the company and it became someone else's problem, although I believe the whole framework was being rewritten in Java anyway.&lt;/p&gt;&#xA;" OwnerUserId="313" LastActivityDate="2010-12-16T18:42:44.683" CommunityOwnedDate="2011-01-14T18:11:43.393" />
  <row Id="27009" PostTypeId="2" ParentId="3282" CreationDate="2010-12-16T18:43:44.767" Score="1" ViewCount="" Body="&lt;p&gt;Hi there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back in 1997 I was given my first developer job which consisted of supporting an accounts package written in QuickBasic 7.1. The code for this app had many hallmarks of poor practise:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The &lt;code&gt;.bas&lt;/code&gt; files were split into not&#xA;very logical portions. Often&#xA;duplicated code had to be changed in&#xA;more then one file, which lead to&#xA;problems being reported by customers&#xA;if we missed a bit. The SOLID principles certainly did not exist at this place!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The worst example was during the time I had go through all the code to make it Y2K compliant. There were tons of places that made use of dates - calculating them, formatting them, you name it. All of this could have been placed into a separate &quot;Date Routines&quot; module, but instead, I had to spend many days changing the same patterns of date logic in hundreds of locations. Not much fun :(&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The layout of the code was difficult&#xA;to follow. Almost 99% of the time you&#xA;could guarantee that there will be&#xA;variables named such as &quot;a$&quot; in a&#xA;module. Not only that, those&#xA;variables were used for more then one&#xA;purpose. In one file, the variable&#xA;&quot;a$&quot; was an account ID and then later&#xA;a loop index helper for reading an&#xA;external file.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There were no useful comments in any file. Likely the only comments you'd get were the usual, pointless, file header comments like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; ''***************************************************************&#xA; ' Account.bas&#xA; ''***************************************************************&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I wasn't sure what the name of the file was, but thanks to this comment, I was enlightened.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Debugging problems in the code took ages. Seriously, trying to solve a particular bug could be a real MENSA challenge due to the poor code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One time, the managing director of the company was standing next to me whilst I was debugging an issue. In my frustration I asked him &quot;Who wrote this poor code?&quot;, he said &quot;It was me&quot;. You would have thought I'd feel a little awkward at that moment, but, in my mind, I was laughing my head off. Not many get the chance to tell their boss that they're a shit developer!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers.&#xA;Jas.&lt;/p&gt;&#xA;" OwnerUserId="3668" LastEditorUserId="3668" LastEditorDisplayName="" LastEditDate="2010-12-16T18:48:50.877" LastActivityDate="2010-12-16T18:48:50.877" CommunityOwnedDate="2011-01-14T18:11:43.393" />
  <row Id="27010" PostTypeId="2" ParentId="3282" CreationDate="2010-12-16T18:49:21.257" Score="2" ViewCount="" Body="&lt;p&gt;~180,000 lines of PHP code, without a single function defined.  A complete mess of cyclic include directives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And this was before PHP added the goto keyword.  I shudder to think what it would have looked like had that been available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These days it's down to &amp;lt; 80,000 lines of code with an object-oriented approach to design.  Most circular includes are gone.  Still, a good chunk of original, unmodified, duplicate code exists in the system, but it is much, much more maintainable now.&lt;/p&gt;&#xA;" OwnerUserId="10029" LastActivityDate="2010-12-16T18:49:21.257" CommunityOwnedDate="2011-01-14T18:11:43.393" />
  <row Id="27011" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T18:51:12.090" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Application Design&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the &quot;programmers&quot; I know are relatively tech savvy, meaning that they know that a pointer can be null, they understand the idea of reference / copy etc, and thus can in general implement a feature... and make a horrible mess of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being tech-savvy and knowing a language inside out is great, but you need more, you need to see a bigger picture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Design Patterns, Idioms, etc... help, but they are a mean not an end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what should you be looking after ? &lt;strong&gt;Maintainability&lt;/strong&gt;!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In order to gain maintainability you need to cut down dependencies, to prevent changes to propagate throughout the application like ripples on water.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means organizing the code and flow of the application at a meta level, which is pretty much language agnostic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately I know of no course that teaches it, it's usually won out of hands-on experience in refactoring; for those who care...&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2010-12-16T18:51:12.090" CommunityOwnedDate="2011-02-20T17:10:34.583" />
  <row Id="27012" PostTypeId="2" ParentId="23121" CreationDate="2010-12-16T18:55:34.713" Score="1" ViewCount="" Body="&lt;p&gt;I'm going to go counter to popular sentiment here. I think there is a lot of romanticizing taking place and over stretching to make the connection between ninjas and engineers. I would keep it simple as &lt;strong&gt;ninjas get in, do the job, and get out usually without being detected&lt;/strong&gt;. The only leap I would make is that in the subculture you can hear jokes about Chuck Norris versus ninjas and obviously every programmer wants to be Chuck Norris or Jack Bauer, but there is only one Chuck Norris and Jack Bauer so we can each be a (anonymous) ninja.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, &lt;em&gt;ninja&lt;/em&gt; is a term used frequently in WoW and can have negative connotations. In addition, the traditional ninja is not honorable in comparison to samurai. So with all the admirable qualities of a samurai, you would think we would see &quot;samurai programmer&quot; more often if it were the case that it's the outward perceived qualities that is being praised. This is why I subscribe to the idea that the use of &lt;em&gt;ninja&lt;/em&gt; is more to emphasize the mysterious, cloak and dagger, sneaky skills. To spin it more positively, these are the stock skills in the spy trade; rogues, intelligence, and secret agents inclusive.&lt;/p&gt;&#xA;" OwnerUserId="10296" LastEditorUserId="10296" LastEditorDisplayName="" LastEditDate="2010-12-16T19:02:29.557" LastActivityDate="2010-12-16T19:02:29.557" CommentCount="1" />
  <row Id="27013" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T18:56:31.117" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Communication&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being able to express your ideas as well as being able to listen to someone else's so that you can express theirs to someone else&lt;/p&gt;&#xA;" OwnerUserId="10295" LastActivityDate="2010-12-16T18:56:31.117" CommunityOwnedDate="2011-02-20T17:10:34.583" />
  <row Id="27014" PostTypeId="1" AcceptedAnswerId="27017" CreationDate="2010-12-16T18:57:08.247" Score="6" ViewCount="310" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/12279/is-having-your-own-website-important&quot;&gt;Is having your own website important?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I was reading the responses on &lt;a href=&quot;http://programmers.stackexchange.com/questions/26970/perception-of-a-developer-that-uses-a-pre-packaged-web-implementation-for-their-p&quot;&gt;Perception of a developer that uses a pre-packaged web implementation for their personal site?&lt;/a&gt; (My primary dev blog is WordPress, by the way: &lt;a href=&quot;http://cyberherbalist.wordpress.com&quot; rel=&quot;nofollow&quot;&gt;Cyberherbalist's Blog&lt;/a&gt; when it suddenly occured to me to wonder if it is any kind of real liability for a dev to NOT have a personal site.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I surveyed the other five members of my team and found: only one admits to having such.  They are not dummies, so this leads me to think that it isn't necessarily all that important to have a personal site or blog.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What say you?&lt;/p&gt;&#xA;" OwnerUserId="1351" LastActivityDate="2010-12-16T21:03:42.753" ClosedDate="2010-12-17T00:13:41.663" Title="Just how important is it for a dev to have a personal site?" Tags="&lt;blogs&gt;&lt;personal-projects&gt;&lt;personal-sites&gt;" AnswerCount="4" CommentCount="6" FavoriteCount="1" />
  <row Id="27015" PostTypeId="1" CreationDate="2010-12-16T18:57:38.423" Score="2" ViewCount="159" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/7966/what-traits-do-the-best-managers-youve-worked-for-have-in-common&quot;&gt;What traits do the best managers you&amp;#39;ve worked for have in common?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;When you take a new job or switch projects, what are some of the qualities you look for in your new boss? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looking back, what are some of the qualities your best bosses had? Is it something they did, said, or did NOT do that made them good?&lt;/p&gt;&#xA;" OwnerUserId="10279" LastActivityDate="2010-12-16T20:33:50.237" ClosedDate="2010-12-16T20:39:00.593" Title="What qualities do you - as a programmer - look for in a great engineering manager?" Tags="&lt;career&gt;&lt;management&gt;&lt;boss&gt;" AnswerCount="8" CommentCount="0" />
  <row Id="27016" PostTypeId="2" ParentId="26970" CreationDate="2010-12-16T19:00:09.807" Score="1" ViewCount="" Body="&lt;h2&gt;Job references are more important!&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Job references shows both your &lt;strong&gt;technical&lt;/strong&gt; and &lt;strong&gt;personal skills&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good employer seeks both qualities.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-16T19:00:09.807" />
  <row Id="27017" PostTypeId="2" ParentId="27014" CreationDate="2010-12-16T19:02:18.430" Score="9" ViewCount="" Body="&lt;p&gt;To me this is like asking &quot;Just how important is it for a writer to have an autobiography?&quot; ... &lt;strong&gt;&lt;em&gt;Not important at all.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Some will surely argue, of course, but IMHO, your work and reputation speak enough of themselves.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-16T19:02:18.430" CommentCount="2" />
  <row Id="27018" PostTypeId="2" ParentId="27015" CreationDate="2010-12-16T19:02:24.050" Score="5" ViewCount="" Body="&lt;p&gt;Most importantly, a good engineering manager should not be a micro-manager.  They should be able to trust their developers to do their jobs and the developers should be able to tell their manager when schedules are slipping without fear of reprisal.&lt;/p&gt;&#xA;" OwnerUserId="5123" LastActivityDate="2010-12-16T19:02:24.050" />
  <row Id="27019" PostTypeId="2" ParentId="27015" CreationDate="2010-12-16T19:05:39.910" Score="5" ViewCount="" Body="&lt;p&gt;A good boss is...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;one who can understand the project as well as his team does, right down to the code and technology, not just the requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;one who doesn't micromanage, but still knows exactly where the project is and who is responsible for what part. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;one who defends his team in the face of competing priorities.&lt;/p&gt;&#xA;" OwnerUserId="9988" LastActivityDate="2010-12-16T19:05:39.910" />
  <row Id="27020" PostTypeId="2" ParentId="27015" CreationDate="2010-12-16T19:08:49.050" Score="2" ViewCount="" Body="&lt;h2&gt;Responsive&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;He should have the ability to &lt;strong&gt;respond to the needs&lt;/strong&gt; of customers, staff and other stockholders.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-16T19:08:49.050" />
  <row Id="27021" PostTypeId="2" ParentId="20128" CreationDate="2010-12-16T19:10:44.413" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Timsort&quot; rel=&quot;nofollow&quot;&gt;TimSort&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is the sorting algorithm now used in &lt;a href=&quot;http://bugs.python.org/file4451/timsort.txt&quot; rel=&quot;nofollow&quot;&gt;Python&lt;/a&gt;, &lt;a href=&quot;http://hg.openjdk.java.net/jdk7/tl/jdk/rev/bfd7abda8f79&quot; rel=&quot;nofollow&quot;&gt;Java 7&lt;/a&gt; and &lt;a href=&quot;http://www.kiwidoc.com/java/l/x/android/android/5/p/java.util/c/TimSort&quot; rel=&quot;nofollow&quot;&gt;Android&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;O(N log N) worst case (does not degenerate)&lt;/li&gt;&#xA;&lt;li&gt;O(N) for almost sorted list (in fact &lt;code&gt;N-1&lt;/code&gt; exactly on already sorted list)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And the beauty of it ? It's &lt;strong&gt;stable&lt;/strong&gt;! And therefore suitable for multipass sorting according to various criterion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, if anyone has an optimized C++ implementation on hand...&lt;/p&gt;&#xA;" OwnerUserId="4853" LastEditorUserId="4853" LastEditorDisplayName="" LastEditDate="2011-05-28T12:22:24.417" LastActivityDate="2011-05-28T12:22:24.417" CommunityOwnedDate="2011-02-13T09:34:31.083" CommentCount="3" />
  <row Id="27022" PostTypeId="1" AcceptedAnswerId="27030" CreationDate="2010-12-16T19:12:35.020" Score="18" ViewCount="484" Body="&lt;p&gt;Today we got our own website design. The theme is the &quot;&lt;strong&gt;whiteboard&lt;/strong&gt;&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a big fan of them. I would like you to share with me how you use it. I'm sure I don't exploit its potential enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will really enjoy answers that will come with pictures of your own &lt;strong&gt;whiteboard&lt;/strong&gt; as an illustration ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use it as an &lt;a href=&quot;http://alistair.cockburn.us/Information+radiator&quot; rel=&quot;nofollow&quot;&gt;information radiator&lt;/a&gt; to support a light version of scrum.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/q5R8T.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you use this essential development tool?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please note that I'm also interested in people using a virtual whiteboard or even big touchscreen whiteboard emulator.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-17T07:16:34.513" LastActivityDate="2010-12-22T15:45:27.150" Title="How do you take advantage of your whiteboard in your development team?" Tags="&lt;work-environment&gt;&lt;whiteboard&gt;" AnswerCount="7" FavoriteCount="7" />
  <row Id="27023" PostTypeId="2" ParentId="27014" CreationDate="2010-12-16T19:13:41.553" Score="0" ViewCount="" Body="&lt;p&gt;It is important only for improving your writing and communicating ideas in written form skills. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-16T19:13:41.553" />
  <row Id="27024" PostTypeId="2" ParentId="39" CreationDate="2010-12-16T19:22:27.383" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;Nathaniel Borenstein&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="4553" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-16T19:39:54.060" LastActivityDate="2010-12-16T19:39:54.060" CommunityOwnedDate="2010-12-16T19:22:27.383" CommentCount="1" />
  <row Id="27025" PostTypeId="2" ParentId="27015" CreationDate="2010-12-16T19:25:29.643" Score="1" ViewCount="" Body="&lt;h1&gt;Invisible&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I believe self managed teams work better and are more happy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good manager should do &lt;strong&gt;invisible&lt;/strong&gt; things to improve the quality of work of the team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Invisible&lt;/em&gt; but &lt;strong&gt;very visible&lt;/strong&gt; when it he needs to protect the team from upper management or any external predators.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-16T19:57:32.237" LastActivityDate="2010-12-16T19:57:32.237" />
  <row Id="27026" PostTypeId="2" ParentId="26970" CreationDate="2010-12-16T19:27:51.023" Score="0" ViewCount="" Body="&lt;p&gt;It also depends on what type of job you are applying or. I don't mean web dev vs. c++ programmer I mean the difference between Google or Facebook and a code monkey position a Bank of Uncreative. If you are applying for that top notch position the more tools you know how to use well out of your big-box-o-tools the better you are in the mind of someone that's looking for the best. It shows that you know only know how to use them you are motivated to learn them and you have the drive to do it.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-16T19:27:51.023" />
  <row Id="27027" PostTypeId="2" ParentId="27014" CreationDate="2010-12-16T19:30:19.427" Score="6" ViewCount="" Body="&lt;p&gt;Having a personal or dev blog can be rewarding, but it can also be risky.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a compelling and well written dev blog, it can certainly be a positive reflection of your abilities and help build your reputation. However, it can also backfire if what you write isn't all that compelling or is too much out of date. Also, some employers might not like it if you blog too much about internal practices or technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't have a blog, you might miss out on the upside, but you also limit the liabilities.&lt;/p&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-12-16T19:30:19.427" />
  <row Id="27028" PostTypeId="2" ParentId="26989" CreationDate="2010-12-16T19:30:44.190" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735623066&quot; rel=&quot;nofollow&quot;&gt;Inside Windows Communication Foundation&lt;/a&gt; takes a ground-up approach to explaining WCF by starting with explaining channels and messages before higher-level concepts like bindings and the service model. Lowey's book mainly covers the service model so it can be difficult to understand how things fit together at first. Another good resource for WCF fundamentals is &lt;a href=&quot;http://blogs.msdn.com/b/drnick/&quot; rel=&quot;nofollow&quot;&gt;Nicholas Allen's WCF blog&lt;/a&gt; which goes into much more detail than could fit into a book.&lt;/p&gt;&#xA;" OwnerUserId="8952" LastActivityDate="2010-12-16T19:30:44.190" />
  <row Id="27029" PostTypeId="2" ParentId="26970" CreationDate="2010-12-16T19:31:36.570" Score="2" ViewCount="" Body="&lt;p&gt;The Cobbler's Children Have No Shoes&lt;/p&gt;&#xA;" OwnerUserId="4459" LastActivityDate="2010-12-16T19:31:36.570" CommentCount="1" />
  <row Id="27030" PostTypeId="2" ParentId="27022" CreationDate="2010-12-16T19:32:12.300" Score="5" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/yaYGo.jpg&quot; alt=&quot;Our Whiteboard&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In it's infancy, I'm trying to promote more use of it then how we use it currently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally you should have a whiteboard on every wall of the room with &quot;tablet&quot; whiteboards for every programmer. Cheaper then an iPad and just as effective. When explaining almost &lt;em&gt;anything&lt;/em&gt; the first place I go to is the whiteboard to visually show what I'm trying to explain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this layout we have the application's flow laid out. Then tasks for each part of the flow are added to the &quot;incomplete&quot; top box. As tasks are worked on they are moved to &quot;in progress&quot; and finally to &quot;under review.&quot; This makes it easy to work on one area, get stuck, and switch to another. It's also very visually representative of the application as a whole. Ideally I would like a task manager application setup exactly like this, or a whiteboard for each project. Currently we don't have that many whiteboards (one currently) so the most active project gets priority. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-16T19:32:12.300" CommentCount="3" />
  <row Id="27031" PostTypeId="2" ParentId="3282" CreationDate="2010-12-16T19:34:08.930" Score="1" ViewCount="" Body="&lt;p&gt;I used to work on an integrated word processor, spreadsheet, and database package that was originally written in the 1980s. A lot of the internal communication between components was done using a global &lt;code&gt;char&lt;/code&gt; array called &quot;bigbuf&quot;. If you needed to get some data from one place to some other far away place you'd find a (hopefully) unused portion of bigbuf, cast your data to a sequence of &lt;code&gt;char&lt;/code&gt;, slip them into your unused portion of bigbuf, and then pull them out twenty steps away in some other semi-related function. The code was littered with such things. And, of course, there was also &quot;smallbuf&quot; for when you couldn't find a safe place in bigbuf. The developer hired immediately before me quit after one day (but I got his nicer office).&lt;/p&gt;&#xA;" OwnerUserId="9084" LastActivityDate="2010-12-16T19:34:08.930" CommunityOwnedDate="2011-01-14T18:11:43.393" />
  <row Id="27032" PostTypeId="2" ParentId="27015" CreationDate="2010-12-16T19:39:49.240" Score="1" ViewCount="" Body="&lt;p&gt;Some of the qualities that I feel should be there in a good manager are: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Knows the abilities of each team member (probably not possible if its a very big team)&lt;/li&gt;&#xA;&lt;li&gt;Provides opportunities for all the team members&lt;/li&gt;&#xA;&lt;li&gt;Doesn't micro manage, but at the same time makes sure that team is going in the right direction (to meet the deadlines)&lt;/li&gt;&#xA;&lt;li&gt;Acts as a cushion/bridge between team members when there are differences between them to resolve those&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10304" LastActivityDate="2010-12-16T19:39:49.240" />
  <row Id="27033" PostTypeId="2" ParentId="26471" CreationDate="2010-12-16T19:49:23.163" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://lanyrd.com/&quot; rel=&quot;nofollow&quot;&gt;lanyrd.com&lt;/a&gt;&lt;/strong&gt; - the social conference directory&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a ton of software conferences and other tech related and social media related conferences listed&lt;/p&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-12-16T19:49:23.163" CommentCount="1" />
  <row Id="27034" PostTypeId="1" CreationDate="2010-12-16T19:50:45.033" Score="16" ViewCount="774" Body="&lt;p&gt;Who are some of the most influential programmers of our time and what are they famous for?&lt;/p&gt;&#xA;" OwnerUserId="3391" LastActivityDate="2010-12-16T23:03:29.090" ClosedDate="2010-12-16T23:06:53.960" Title="Who are some of the most famous programmers and what gave them their fame?" Tags="&lt;famous-people&gt;" AnswerCount="26" CommentCount="1" FavoriteCount="6" />
  <row Id="27035" PostTypeId="2" ParentId="27015" CreationDate="2010-12-16T19:51:29.250" Score="1" ViewCount="" Body="&lt;h2&gt;Fights political battles for me.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;When I'm fighting office politics with upper management, I can't get anything done.  Neither can my team.  I need my manager to fend off ridiculous decisions and requests so that I can get things done and make them look awesome.  In the end, if my team can't get things done, then my manager just looks bad.  Working together is always the best way to do things and go home on time.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-12-16T19:51:29.250" />
  <row Id="27036" PostTypeId="2" ParentId="19408" CreationDate="2010-12-16T19:52:24.803" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://code.google.com/apis/ajax/playground/&quot; rel=&quot;nofollow&quot;&gt;Google Playground code&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5014" LastActivityDate="2010-12-16T19:52:24.803" CommunityOwnedDate="2010-12-16T19:52:24.803" CommentCount="3" />
  <row Id="27037" PostTypeId="2" ParentId="27022" CreationDate="2010-12-16T19:53:15.907" Score="18" ViewCount="" Body="&lt;p&gt;I write on a whiteboard to communicate during meetings and to visually think through problems. &lt;strong&gt;I don't use it as a billboard.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take the example picture in the question: did you really need to use a whiteboard for that?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whiteboards yearn to be the dynamic center of interactive communication, not to be static bulletin boards. Using a whiteboard as a bulletin board is a waste of money - blank walls and posterboards are far cheaper.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-16T19:53:15.907" CommentCount="4" />
  <row Id="27038" PostTypeId="2" ParentId="19408" CreationDate="2010-12-16T19:54:29.810" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://validator.w3.org/&quot; rel=&quot;nofollow&quot;&gt;HTML Validator&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://jigsaw.w3.org/css-validator/&quot; rel=&quot;nofollow&quot;&gt;CSS Validator&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5014" LastActivityDate="2010-12-16T19:54:29.810" CommunityOwnedDate="2010-12-16T19:54:29.810" />
  <row Id="27039" PostTypeId="2" ParentId="19408" CreationDate="2010-12-16T19:55:14.460" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://codepad.org/&quot; rel=&quot;nofollow&quot;&gt;CodePad&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5014" LastActivityDate="2010-12-16T19:55:14.460" CommunityOwnedDate="2010-12-16T19:55:14.460" />
  <row Id="27040" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T19:55:45.863" Score="10" ViewCount="" Body="&lt;h2&gt;Bill Gates&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Of course.  For popularizing DOS, founding the most successful software business of all time, and in general writing software that propelled home computer use.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-12-16T20:01:22.657" LastActivityDate="2010-12-16T20:01:22.657" CommentCount="7" />
  <row Id="27041" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T19:56:18.380" Score="28" ViewCount="" Body="&lt;h2&gt;Donald Knuth&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;for the The Art of Computer Programming &lt;/p&gt;&#xA;" OwnerUserId="162" LastEditorUserId="162" LastEditorDisplayName="" LastEditDate="2010-12-16T20:06:32.830" LastActivityDate="2010-12-16T20:06:32.830" CommentCount="3" />
  <row Id="27042" PostTypeId="2" ParentId="19408" CreationDate="2010-12-16T19:56:56.467" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://borderradius.com/&quot; rel=&quot;nofollow&quot;&gt;Border Radius&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5014" LastActivityDate="2010-12-16T19:56:56.467" CommunityOwnedDate="2010-12-16T19:56:56.467" />
  <row Id="27043" PostTypeId="2" ParentId="19408" CreationDate="2010-12-16T19:57:34.410" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.visualjquery.com/&quot; rel=&quot;nofollow&quot;&gt;Visual jQuery&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5014" LastActivityDate="2010-12-16T19:57:34.410" CommunityOwnedDate="2010-12-16T19:57:34.410" />
  <row Id="27044" PostTypeId="2" ParentId="19408" CreationDate="2010-12-16T19:58:32.903" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.cssdesk.com/&quot; rel=&quot;nofollow&quot;&gt;CSS Sandbox&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5014" LastActivityDate="2010-12-16T19:58:32.903" CommunityOwnedDate="2010-12-16T19:58:32.903" />
  <row Id="27045" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T19:58:38.987" Score="19" ViewCount="" Body="&lt;h1&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/John_D._Carmack&quot; rel=&quot;nofollow&quot;&gt;John D. Carmack&lt;/a&gt;&lt;/strong&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Known for &lt;a href=&quot;http://en.wikipedia.org/wiki/Wolfenstein_3D&quot; rel=&quot;nofollow&quot;&gt;Wolfenstein 3D&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Doom_%28video_game%29&quot; rel=&quot;nofollow&quot;&gt;Doom&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Quake_%28video_game%29&quot; rel=&quot;nofollow&quot;&gt;Quake&lt;/a&gt;, and other games.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastEditorUserId="2471" LastEditorDisplayName="" LastEditDate="2010-12-16T20:38:29.390" LastActivityDate="2010-12-16T20:38:29.390" />
  <row Id="27046" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T19:59:27.893" Score="15" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://stackoverflow.com/users/22656/jon-skeet&quot;&gt;Jon Skeet&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;For a near 250K reputation on StackOverflow that blows everyone's mind.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-12-16T19:59:27.893" CommentCount="6" />
  <row Id="27047" PostTypeId="2" ParentId="26970" CreationDate="2010-12-16T20:00:26.757" Score="-3" ViewCount="" Body="&lt;p&gt;it says:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I SUCK AT SECURITY RELATED DESIGN&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the multitude of gaping wholes that available content management systems have, it is an indicator of someone lacking a complete understanding of the layers of security in web application development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I am a LAZY coder and I am not familiar with DB design&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you know anything about Development, you will know that developing a great CMS is extremely easy, but it is something that requires planning, a lot of typing, and a decent knowledge of DB design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I think custom solutions are a waste of time&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not every problem can be solved with the same formula, and smart developers understand that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to make it painfully clear that choosing not to roll your own, is choosing to miss out on the opportunity to show off your skills as a developer/designer; unless of course you are trying to show off you ability to work with, and implement custom widgets into, the cms of your choice.  If I were you, I would start off with a wordpress or drupal site, and then move to a custom solution to show off your skill-set.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't you want potential employers to see that you understand security, DB, and task related front-end design?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the above said, I must also state that systems like wordpress are perfect for those that want to get their ideas out fast, and for those that want to take advantage of the fact that users are used to that style of interface.  Users have come to expect interfaces to be similar, and taking advantage of a prepackaged CMS is often the better solution, if all you care about is communicating information, and the site, along with the content, is not meant to impress anyone that could be hiring you.&lt;/p&gt;&#xA;" OwnerUserId="10310" LastEditorUserId="10310" LastEditorDisplayName="" LastEditDate="2010-12-16T20:13:50.637" LastActivityDate="2010-12-16T20:13:50.637" />
  <row Id="27048" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T20:00:29.267" Score="16" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Dennis_Ritchie&quot; rel=&quot;nofollow&quot;&gt;Dennis Ritchie&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Developed C.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-16T20:00:29.267" CommentCount="3" />
  <row Id="27049" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T20:01:59.567" Score="11" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.charlespetzold.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;h1&gt;Charles Petzold&lt;/h1&gt;&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;for his frequent contributions to the community in the form of books, blogs, and presentations.&lt;/p&gt;&#xA;" OwnerUserId="1351" LastActivityDate="2010-12-16T20:01:59.567" CommentCount="1" />
  <row Id="27050" PostTypeId="2" ParentId="19408" CreationDate="2010-12-16T20:02:46.030" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://spritegen.website-performance.org/&quot; rel=&quot;nofollow&quot;&gt;CSS Sprites&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5014" LastActivityDate="2010-12-16T20:02:46.030" CommunityOwnedDate="2010-12-16T20:02:46.030" />
  <row Id="27051" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T20:03:22.147" Score="21" ViewCount="" Body="&lt;h1&gt;Linus Torvalds&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Linux kernel and git.&lt;/p&gt;&#xA;" OwnerUserId="10180" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-16T20:58:18.120" LastActivityDate="2010-12-16T20:58:18.120" CommentCount="3" />
  <row Id="27052" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T20:05:22.947" Score="14" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Yukihiro_Matsumoto&quot; rel=&quot;nofollow&quot;&gt;Yukihiro Matsumoto&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Chief designer of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Ruby_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Ruby&lt;/a&gt; programming language and its reference interpreter, &lt;a href=&quot;http://en.wikipedia.org/wiki/Ruby_MRI&quot; rel=&quot;nofollow&quot;&gt;Matz's Ruby Interpreter&lt;/a&gt; or Ruby MRI.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-12-16T20:05:22.947" CommentCount="4" />
  <row Id="27053" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T20:06:28.283" Score="21" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Ada_Lovelace&quot; rel=&quot;nofollow&quot;&gt;Ada Lovelace&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;the first programmer, for writing a program to calculate Bernoulli numbers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The gender ratio has steadily tipped more towards men since then.  Lends her name to the Ada programming language and birth year to its MIL-STD.&lt;/p&gt;&#xA;" OwnerUserId="4428" LastEditorUserId="4428" LastEditorDisplayName="" LastEditDate="2010-12-16T23:00:04.047" LastActivityDate="2010-12-16T23:00:04.047" CommentCount="2" />
  <row Id="27054" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T20:08:13.233" Score="7" ViewCount="" Body="&lt;h2&gt;Raymond Chen&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;From his not really a .net blog &lt;a href=&quot;http://blogs.msdn.com/b/oldnewthing/&quot; rel=&quot;nofollow&quot;&gt;The Old New Thing&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-12-16T20:08:13.233" />
  <row Id="27056" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T20:09:51.433" Score="11" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Anders_Hejlsberg&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Anders Hejlsberg&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;For creating Turbo Pascal, Delphi and C# and continuing to develop the latter.&lt;/p&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-12-16T20:09:51.433" />
  <row Id="27059" PostTypeId="2" ParentId="27022" CreationDate="2010-12-16T20:15:54.327" Score="1" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/0l0kb.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We don’t use a whiteboard anymore since we have started with JIRA, I send a picture that show the development phases. Two table one for development cases and one for production bugs which are prioritised high. We run a mixture of Kanban &amp;amp; Scrum. Each column can have at most x cases at the same time. Each case is signed to a person.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-16T20:15:54.327" CommentCount="2" />
  <row Id="27060" PostTypeId="2" ParentId="26970" CreationDate="2010-12-16T20:16:48.733" Score="1" ViewCount="" Body="&lt;p&gt;I think it as a more productive use of skills rather than reinventing the website, unless it is your objective to. People will not have any negative perception as long as you are  providing good content and easy navigation. One can be very innovative in using standard implementations too.&lt;/p&gt;&#xA;" OwnerUserId="10316" LastActivityDate="2010-12-16T20:16:48.733" />
  <row Id="27061" PostTypeId="2" ParentId="26970" CreationDate="2010-12-16T20:18:11.860" Score="2" ViewCount="" Body="&lt;p&gt;I'm generally a &lt;em&gt;proponent&lt;/em&gt; of 're-inventing the wheel', but I cant imagine anyone would care one way or the other if a developer's site used a canned system.  A CMS is such a mundane system when used just for things like basic blogging that I dont see what a custom built system would &lt;em&gt;really&lt;/em&gt; tell you about a developer.  This would be especially true if the developer has other more interesting projects they can show off.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-16T20:18:11.860" />
  <row Id="27062" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T20:19:09.463" Score="7" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/GvR&quot; rel=&quot;nofollow&quot;&gt;Guido van Rossum&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;creator of Python, whose &lt;a href=&quot;http://www.python.org/dev/peps/pep-0020/&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;import this&lt;/code&gt;&lt;/a&gt; Zen should be followed by everyone&lt;/p&gt;&#xA;" OwnerUserId="4428" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-12-16T22:05:18.280" LastActivityDate="2010-12-16T22:05:18.280" />
  <row Id="27064" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T20:23:40.797" Score="18" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Edsger_W._Dijkstra&quot; rel=&quot;nofollow&quot;&gt;Edsger Wybe Dijkstra&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Dijkstra Algorithm, Semaphores and much &lt;a href=&quot;http://en.wikipedia.org/wiki/Edsger_W._Dijkstra&quot; rel=&quot;nofollow&quot;&gt;more&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6118" LastActivityDate="2010-12-16T20:23:40.797" />
  <row Id="27065" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T20:24:19.127" Score="24" ViewCount="" Body="&lt;h2&gt;Alan Turing&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;For his work on  Computing machinery and intelligence, which CAPTCHA is based on&lt;/p&gt;&#xA;" OwnerUserId="162" LastEditorUserId="162" LastEditorDisplayName="" LastEditDate="2010-12-16T20:45:55.870" LastActivityDate="2010-12-16T20:45:55.870" CommentCount="3" />
  <row Id="27066" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T20:26:02.027" Score="6" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Guy_L._Steele,_Jr.&quot; rel=&quot;nofollow&quot;&gt;Guy Steele&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Best known for his contributions to the Scheme and Common Lisp languages.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-12-16T20:31:21.740" LastActivityDate="2010-12-16T20:31:21.740" CommentCount="2" />
  <row Id="27068" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T20:30:31.397" Score="13" ViewCount="" Body="&lt;h2&gt;Richard Stallman&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Ok, yeah he does some stuff for GNU and FSF and all that, but I mostly know him because he wrote (an early version of) &lt;a href=&quot;http://www.gnu.org/software/emacs/&quot; rel=&quot;nofollow&quot;&gt;my editor&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-12-16T20:30:31.397" CommentCount="3" />
  <row Id="27069" PostTypeId="2" ParentId="27015" CreationDate="2010-12-16T20:31:42.860" Score="0" ViewCount="" Body="&lt;p&gt;One who knows what they don't know.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-16T20:31:42.860" />
  <row Id="27070" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T20:33:48.380" Score="4" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Brendan_Eich&quot; rel=&quot;nofollow&quot;&gt;Brendan Eich&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Because whether you like it or not, he wrote &lt;a href=&quot;http://en.wikipedia.org/wiki/JavaScript&quot; rel=&quot;nofollow&quot;&gt;JavaScript&lt;/a&gt;, thereby directly affecting &lt;strong&gt;a lot&lt;/strong&gt; of programmers.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="2592" LastEditorDisplayName="" LastEditDate="2010-12-16T20:41:37.640" LastActivityDate="2010-12-16T20:41:37.640" CommentCount="1" />
  <row Id="27071" PostTypeId="2" ParentId="27015" CreationDate="2010-12-16T20:33:50.237" Score="0" ViewCount="" Body="&lt;p&gt;One who doesn't sign the team up for more work that can be done, and promotes the hell out of the good work that his/her employees do.&lt;/p&gt;&#xA;" OwnerUserId="10055" LastActivityDate="2010-12-16T20:33:50.237" />
  <row Id="27073" PostTypeId="5" CreationDate="2010-12-16T20:35:30.750" Score="0" ViewCount="0" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Computer_programming&quot; rel=&quot;nofollow&quot;&gt;From Wikipedia&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Computer programming (often shortened&#xA;  to &lt;strong&gt;programming&lt;/strong&gt; or coding) is the&#xA;  process of designing, writing,&#xA;  testing, debugging / troubleshooting,&#xA;  and maintaining the source code of&#xA;  computer programs. This source code is&#xA;  written in a programming language. The&#xA;  purpose of programming is to create a&#xA;  program that exhibits a certain&#xA;  desired behaviour. The process of&#xA;  writing source code often requires&#xA;  expertise in many different subjects,&#xA;  including knowledge of the application&#xA;  domain, specialized algorithms and&#xA;  formal logic.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="-1" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-16T20:35:30.750" LastActivityDate="2010-12-16T20:35:30.750" />
  <row Id="27074" PostTypeId="4" CreationDate="2010-12-16T20:35:30.750" Score="0" ViewCount="0" Body="Computer programming is the craft of transforming requirements into something that a computer can execute." OwnerUserId="-1" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-16T20:35:30.750" LastActivityDate="2010-12-16T20:35:30.750" />
  <row Id="27075" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T20:39:26.660" Score="0" ViewCount="" Body="&lt;p&gt;In the flash community:&#xA;Grant skinner, &#xA;Robert Penner,&#xA;Andre Michelle,&#xA;Eric Natzke,&#xA;and Keith Peters&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each  became popular through showing off their experiments, advising others on how to experiment, and taking part in projects that initially had no compensation in order to better themselves; thus, you could state that eventually the community at large just began to view them as experts, because they positioned themselves as experts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you give away free advice on the basics that is valuable to budding to intermediate developers in a given field, and you do it consistently, eventually you will have people looking to see what you say next.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good way to do this is to post videos, post a blog, and do anything to market yourself, while at the same time communicating useful information to people that need it, or want it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are having trouble coming up with something to blog about, then try experimenting in fields of interest to you, until you figure out something fun or useful that people might not know, or until you get to a point where you notice something that is easy to implement was difficult to understand at first because available documentation was horrible.  If you communicate desirable information easier than anyone else, you will win the war of who gets looked at first.&lt;/p&gt;&#xA;" OwnerUserId="10310" LastActivityDate="2010-12-16T20:39:26.660" />
  <row Id="27076" PostTypeId="2" ParentId="7859" CreationDate="2010-12-16T20:43:29.387" Score="1" ViewCount="" Body="&lt;p&gt;If you want to practice Test Driven Development and Continuous Integration, which I find to be some of the best agile practices to follow I'd look at these books:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321503627&quot; rel=&quot;nofollow&quot;&gt;Growing Object Oriented Software, Guided by Tests&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321601912&quot; rel=&quot;nofollow&quot;&gt;Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10254" LastActivityDate="2010-12-16T20:43:29.387" />
  <row Id="27077" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T20:45:09.633" Score="13" ViewCount="" Body="&lt;h2&gt;Larry Page and Sergey Brin&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;If you don't know who they are or what they're famous for, why don't you try googling them?&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-12-16T20:45:09.633" CommentCount="1" />
  <row Id="27078" PostTypeId="1" AcceptedAnswerId="27095" CreationDate="2010-12-16T20:54:07.453" Score="5" ViewCount="199" Body="&lt;p&gt;What is the best way to introduce applications that programmers develop to the world?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For mobile apps you have the different marketplaces, but what about non-mobile applications?  These could be web apps or desktop apps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Introduce  = distribution to the end users as well as popularize amongst the software development community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously the software that is being released would have a specific audience in mind (i.e. a community based web site or user based application versus an tool that developers could use).&lt;/p&gt;&#xA;" OwnerUserId="7456" LastEditorUserId="7456" LastEditorDisplayName="" LastEditDate="2010-12-16T21:07:38.163" LastActivityDate="2010-12-17T01:51:12.833" Title="What is the best way to introduce software created by you?" Tags="&lt;software&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="3" />
  <row Id="27079" PostTypeId="1" CreationDate="2010-12-16T20:54:30.680" Score="1" ViewCount="69" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/20636/how-many-projects-are-you-currently-developing-on&quot;&gt;How many projects are you currently developing on&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;If you're a sole developer, how many projects do you have on the go at any one time? Do you work on one per day or multiple projects per day?&lt;/p&gt;&#xA;" OwnerUserId="10180" LastActivityDate="2010-12-16T21:01:27.780" ClosedDate="2010-12-16T22:03:36.547" Title="How many projects do you have on the go at any one time?" Tags="&lt;project-management&gt;&lt;php&gt;&lt;management&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="27080" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T20:55:53.090" Score="1" ViewCount="" Body="&lt;p&gt;I've been chewing on this same question myself, and I recently came across &lt;a href=&quot;http://www.starling-software.com/employment/programmer-competency-matrix.html&quot; rel=&quot;nofollow&quot;&gt;this programmer competency matrix&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the best &quot;roadmap to competency&quot; that I've found. It lays out several dozen different skill areas and gives guidelines as to what you should be able to do at each level of proficiency. Most of the suggestions you've received in this thread show up in this roadmap at some point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used this guide to map out my year into &quot;semesters&quot; with specific focuses, with the goal of rounding out my skill set to the next level. Starting in January, for example, I'm planning to focus on advanced C# and shoring up the computer science deficits I have as a result of being self taught.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is so much to learn that I find it hard to focus on something long enough to gain some depth. It's easy to get distracted by the next shiny thing you want to learn. :) Setting up blocks of time to focus on a few subjects helps. I can put that new subject on my list for next semester instead of buying a book on it now and reading 50 pages before I bounce to something else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="10321" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-16T21:26:30.027" LastActivityDate="2010-12-16T21:26:30.027" CommunityOwnedDate="2011-02-20T17:10:34.583" CommentCount="3" />
  <row Id="27081" PostTypeId="2" ParentId="27022" CreationDate="2010-12-16T20:56:14.820" Score="12" ViewCount="" Body="&lt;p&gt;As a whiteboard?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://db.tt/NVrRMnT&quot; alt=&quot;whiteboard&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="9849" LastActivityDate="2010-12-16T20:56:14.820" />
  <row Id="27082" PostTypeId="2" ParentId="27022" CreationDate="2010-12-16T20:57:27.600" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;1. Big ones to scribble out design ideas&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whenever our team has a meeting we break out the big whiteboard and pens and start sketching out our thoughts. We don't use any formal notation (UML on a whiteboard?!), just intuitive scribbles that help people less familiar with the work rapidly grasp what we're talking about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2. Medium ones to keep track of tasks&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each team has a whiteboard at the end of their group of desks (pod). This is used to stick user story cards on a grid to show progress (sort of Scrum-Ban or Kan-Rum). As other team members stroll on by they can see what we're working on and often suggest commonality that can be brought in from other projects. Several times we've been stopped from re-implementing code that has already been written for something else but not widely disseminated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having the white boards available was an immediate hit with the teams and has definitely helped us to communicate more effectively with each other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3. A single big one with the overall server map&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We run a fairly large collection of clustered servers covering many application tiers, and having a whiteboard dedicated to showing the server and application interlinks is very handy, especially as it's near the water cooler. It gets regularly updated with changes to application deployments (version numbers etc) and helps us all to keep in touch in a way that wouldn't be as effective through a wiki or email.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry no picture available.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-16T21:33:16.040" LastActivityDate="2010-12-16T21:33:16.040" CommentCount="2" />
  <row Id="27083" PostTypeId="1" AcceptedAnswerId="27086" CreationDate="2010-12-16T20:59:27.883" Score="8" ViewCount="383" Body="&lt;p&gt;Since they exist for several fields with varying degrees of usefulness, I'm curious as to the reputation of headhunters/recruiters that focus solely on IT professionals (e.g. programmers, software engineers, CIOs, etc) when it comes to finding a new job. Are they actually useful, or is it fairly hit or miss? Does the old adage of only working with a limited number apply or can you safely give you resume/CV to several of them?&lt;/p&gt;&#xA;" OwnerUserId="2471" LastEditorUserId="2471" LastEditorDisplayName="" LastEditDate="2010-12-16T21:04:32.000" LastActivityDate="2010-12-17T04:00:48.340" Title="How useful are IT headhunters/recruiters when looking for a new job?" Tags="&lt;employment&gt;&lt;recruiting&gt;&lt;job-hunting&gt;" AnswerCount="8" FavoriteCount="1" />
  <row Id="27084" PostTypeId="2" ParentId="27079" CreationDate="2010-12-16T21:01:27.780" Score="0" ViewCount="" Body="&lt;p&gt;Personally, I have about 5 projects going.  On good days when I have time, I might work on about 3 of them.  I find it hard to transition from one project to another because once I get into [LANGUAGE]-mode it's hard for me to stop and switch.  I like to try to switch anyway though to keep me thinking about what I'm doing, how it works, and to make me transition between languages more seamlessly.&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-12-16T21:01:27.780" CommentCount="2" />
  <row Id="27085" PostTypeId="2" ParentId="27014" CreationDate="2010-12-16T21:03:42.753" Score="2" ViewCount="" Body="&lt;p&gt;I actually agree with most of the answers given so far.  You don't need one and yes it could be risky.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, to have one you could also open opportunities that don't otherwise exist.  The web is becoming more and more social so to have a site that is maintained could be a great networking tool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I would say that to have one is a good thing.  To not have one isn't detrimental yet, but it could limit you.&lt;/p&gt;&#xA;" OwnerUserId="7456" LastActivityDate="2010-12-16T21:03:42.753" />
  <row Id="27086" PostTypeId="2" ParentId="27083" CreationDate="2010-12-16T21:05:15.030" Score="12" ViewCount="" Body="&lt;p&gt;I think they can be helpful, but you have to be aware that their job isn't to find a good place for you, it's to sell you on a place that hired them to find people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't dealt with many recruiters in my career (yet?) but the ones I did come across were fairly non-technical and were just parroting vague job description details to me and making promises about the high salary potential. So I'd say it's pretty hit or miss. I wouldn't ignore recruiters and headhunters entirely -- you never know when a good opportunity might present itself -- but I would definitely be careful to not fall for the optimistic job descriptions.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-16T21:05:15.030" CommentCount="1" />
  <row Id="27087" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T21:08:19.583" Score="6" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Larry_Wall&quot; rel=&quot;nofollow&quot;&gt;Larry Wall&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Created &lt;a href=&quot;http://en.wikipedia.org/wiki/Perl&quot; rel=&quot;nofollow&quot;&gt;Perl&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;&lt;a href=&quot;http://www2.research.att.com/~bs/&quot; rel=&quot;nofollow&quot;&gt;Bjarne Stroustrup&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Created C++.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-12-16T21:08:19.583" CommentCount="2" />
  <row Id="27088" PostTypeId="2" ParentId="27078" CreationDate="2010-12-16T21:10:49.910" Score="1" ViewCount="" Body="&lt;p&gt;The best way would be to read (and apply) Geoffrey Moore's &quot;Crossing the Chasm&quot; on marketing the high-tech products.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-16T21:10:49.910" />
  <row Id="27089" PostTypeId="1" CreationDate="2010-12-16T21:13:51.077" Score="2" ViewCount="204" Body="&lt;p&gt;Hi,  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a few years professional experience in C/C++. But I also have interest in Java.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know Java quite well but I have limited &lt;strong&gt;professional&lt;/strong&gt; experience; i.e. I have been involved with Java in my job but in specific areas (web services and network programming) and for short period.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a &quot;broader knowledge&quot; of Java but it is only at &lt;strong&gt;academic&lt;/strong&gt; level (projects I did at undergraduate or Master's degree).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is the following:  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to change path and work in company with Java but I am not sure I could get a shot since in my resume my actual &lt;strong&gt;professional&lt;/strong&gt; experience with Java is limited.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was wondering if this could be somehow balanced, e.g. making some kind of project in my spare time to present my skills in a interview; is it worth pursuing? If yes, what kind of project would be good idea?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, would java certifications help on this?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any kind of input would be appreciated.&lt;br&gt;&#xA;Thank you&lt;/p&gt;&#xA;" OwnerUserId="10326" LastEditorUserId="4711" LastEditorDisplayName="" LastEditDate="2010-12-16T22:53:24.937" LastActivityDate="2010-12-17T00:17:41.750" Title="switch to a java job but with no real professional background. How?" Tags="&lt;career&gt;&lt;java&gt;&lt;self-improvement&gt;" AnswerCount="3" />
  <row Id="27090" PostTypeId="2" ParentId="26058" CreationDate="2010-12-16T21:15:22.897" Score="1" ViewCount="" Body="&lt;p&gt;We peer-review functional tests at least casually, and it is strongly encouraged at our organization to get everything code-reviewed.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend choosing your reviewer based off of your goals for the review.  Coded tests might be best reviewed by both a dev (for code quality primarily) and another tester (for test coverage primarily).  Tests with no code (using a harness, e.g., data driven tests) might be best reviewed only by another tester. Peer reviews are also a great way to encourage testers to learn from each other.&lt;/p&gt;&#xA;" OwnerUserId="8888" LastActivityDate="2010-12-16T21:15:22.897" />
  <row Id="27091" PostTypeId="1" CreationDate="2010-12-16T21:15:53.380" Score="7" ViewCount="331" Body="&lt;p&gt;I've been working as a developer for about 3 years now (straight from uni), I'm wondering, if I take a year or two out would it be impossible to get back into the industry?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I didn't get the gap year thing out of my system after uni, and I'm thinking that I should probably do it before I hit 30 (24 now), my main concern is that if I leave the industry now, I might not get back into it at all and end up working some dead end job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way I see things is, that general concepts / design patterns etc remain similar over the years, and it is mostly coding syntax / actual implementation that evolves, so it shouldn't move on dramatically.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, women developers (yes there are some out there!) take years out to have kids and still carry on with their career afterwards, so it can't be impossible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimatum : Would taking a year or two out destroy the (small) career I've built up so far?&lt;/p&gt;&#xA;" OwnerUserId="10324" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-12-16T22:15:26.250" LastActivityDate="2010-12-17T05:19:25.993" Title="If you take a year or two out from being a developer, is it really that hard to get back into it?" Tags="&lt;career&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="2" />
  <row Id="27092" PostTypeId="1" AcceptedAnswerId="27104" CreationDate="2010-12-16T21:17:24.117" Score="1" ViewCount="81" Body="&lt;p&gt;In Visual studio 2008, is there a way to get a list of classes that are not used in a project/solution?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there external tools available that can answer this question for a vs project?&lt;/p&gt;&#xA;" OwnerUserId="10257" LastActivityDate="2010-12-16T21:30:13.807" ClosedDate="2010-12-16T21:35:02.807" Title="Listing unused classes" Tags="&lt;code&gt;&lt;visual-studio&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="1" />
  <row Id="27093" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T21:18:29.090" Score="1" ViewCount="" Body="&lt;h2&gt;Tim Sweeney&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;For creating the &lt;a href=&quot;http://en.wikipedia.org/wiki/Unreal_Engine&quot; rel=&quot;nofollow&quot;&gt;Unreal Engine&lt;/a&gt; that uses &lt;a href=&quot;http://en.wikipedia.org/wiki/UnrealScript&quot; rel=&quot;nofollow&quot;&gt;UnrealScript&lt;/a&gt; (which has some really cool features, like extending the &lt;em&gt;base class&lt;/em&gt;) and for being interested in &lt;a href=&quot;http://www.haskell.org&quot; rel=&quot;nofollow&quot;&gt;Haskell&lt;/a&gt;. :)&lt;/p&gt;&#xA;" OwnerUserId="3917" LastActivityDate="2010-12-16T21:18:29.090" />
  <row Id="27094" PostTypeId="1" AcceptedAnswerId="27103" CreationDate="2010-12-16T21:19:12.393" Score="4" ViewCount="235" Body="&lt;p&gt;I realize that the more you go towards the spectrum of &quot;freelance&quot;, there is a need for a portfolio (at least for web development) but I would think that a structured contracted job (like a 3 month duration contract to hire, for example) would be a bit more professional in realizing that a professional programmer spends most of their time writing proprietary applications for companies and thus has no portfolio of these to show off.. The area where I live is not a major tech center so a lot of employers and recruiters here seem a bit less than professional when it comes to tech stuff (but it is a big U.S. city) and I get, fairly often, recruiters asking if I have a portfolio to share, etc.. Sure I have done my own projects but I don't keep them up to date and the work that I do for my current employer is my main focus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyways, I guess this is just a generalized question about how to differentiate between &quot;freelance&quot; and &quot;contract&quot; (even though I thought I had been doing so on my resume)&lt;/p&gt;&#xA;" OwnerUserId="10087" LastActivityDate="2010-12-16T21:59:39.617" Title="Should a contract programmer have a portfolio?" Tags="&lt;freelance&gt;&lt;portfolio&gt;&lt;contract&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="27095" PostTypeId="2" ParentId="27078" CreationDate="2010-12-16T21:21:39.260" Score="3" ViewCount="" Body="&lt;p&gt;Since you have a specific audience in mind, then go to that audience.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Get a booth at a convention if the community has conventions&lt;/li&gt;&#xA;&lt;li&gt;Try to give talks at conferences if the community has conferences&lt;/li&gt;&#xA;&lt;li&gt;Go to the online communities, find out the proper etiquette for promoting things to them and follow it&lt;/li&gt;&#xA;&lt;li&gt;Find a leader in that community (thinking of companies here) and try to direct sell them&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Outside of that community:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Dog-food the product and publicize the experience in a blog&lt;/li&gt;&#xA;&lt;li&gt;Work on the SEO for the product's website and try to get web-search traffic&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-16T21:21:39.260" CommentCount="1" />
  <row Id="27096" PostTypeId="1" AcceptedAnswerId="27119" CreationDate="2010-12-16T21:22:00.433" Score="5" ViewCount="121" Body="&lt;p&gt;Note: I'm not sure if this question is more suitable for Stack Overflow or Programmers.  The thought process behind putting it here was that it doesn't actually relate to coding itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I noticed a small freeware utility I have on my computer uses a couple of DLLs.  From their names (&quot;RenderAllChunks&quot; and &quot;RenderSlice&quot;), it looks like they're being used just for specific functions.  If outsourcing program-specific functions is really necessary, wouldn't it be better to just stuff them in a separate header file?  It seems quite pointless to go through all the trouble of compiling, linking and distributing DLLs just for one function.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is it bad to use shared libraries for small projects?&lt;/li&gt;&#xA;&lt;li&gt;When/why are shared libraries preferable over static libraries (or even header files)?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8810" LastEditorUserId="8810" LastEditorDisplayName="" LastEditDate="2010-12-16T23:07:42.053" LastActivityDate="2010-12-17T00:10:03.927" Title="When to Use Shared Libraries" Tags="&lt;libraries&gt;&lt;practices&gt;&lt;distribution&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="1" />
  <row Id="27097" PostTypeId="2" ParentId="27094" CreationDate="2010-12-16T21:23:05.413" Score="1" ViewCount="" Body="&lt;p&gt;For products I have built in the past there has often been marketing material and collateral produced by organisation that I bring along to interviews to show if people ask for examples of the system I have been working on.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-12-16T21:23:05.413" CommentCount="1" />
  <row Id="27098" PostTypeId="2" ParentId="27083" CreationDate="2010-12-16T21:23:41.010" Score="0" ViewCount="" Body="&lt;p&gt;They sound like real-estate agents most of the time : &quot;An exciting position...&quot;, &quot;A great role for a motivated xyz&quot;, &quot;A chance to enter industry K&quot;, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All while they seem not able to note my details properly, which results in being sent job offers totally NOT matching anything in my CV.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sincerely, they've been quite useless to me as I picked up zero jobs advertised to me by headhunters, but I suppose other people had a different experience there. &lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-16T21:23:41.010" />
  <row Id="27099" PostTypeId="2" ParentId="27094" CreationDate="2010-12-16T21:25:20.020" Score="3" ViewCount="" Body="&lt;p&gt;Its probably a good idea for every developer, contractor or not, to maintain a portfolio of the projects they've worked on so that potential clients or employers can see the types of projects a developer has worked on.  Even if the developer worked on proprietary systems, unless there's some legal restriction, there's no reason not to have a description of the project and maybe a screenshot in a portfolio.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-16T21:25:20.020" CommentCount="2" />
  <row Id="27100" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T21:27:06.813" Score="2" ViewCount="" Body="&lt;h2&gt;Jamie Zawinski&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;For swearing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also for Lucid Emacs, Netscape and XScreensaver.&lt;/p&gt;&#xA;" OwnerUserId="10268" LastActivityDate="2010-12-16T21:27:06.813" CommentCount="2" />
  <row Id="27101" PostTypeId="2" ParentId="27083" CreationDate="2010-12-16T21:28:15.267" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Some agents are brilliant, others not so&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a contractor in the UK, I deal with many agents (headhunters) on a regular basis. Almost invariably they do not have strong technical skills and it doesn't really matter. &lt;em&gt;Their business is to get their candidate to be accepted by their client&lt;/em&gt;. If they are good at their business then they will have carefully matched their clients requirements with your CV and come to the conclusion that you are worth a call. If not, then you just get a vague (automated) email inviting you to call them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What good are they?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A really good agent will build a solid lasting business relationship with you. It is usually in their interest to keep hold of good candidates that can be recycled into other positions later on (particularly true of contractors/freelancers/temp coders). And, if you continue improving your skills, that makes you much more of an asset to them because they can charge their client much more for you, and their client gets value for money. Win-win-win, really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As to whether they are useful or not, in my case they are definitely useful. They provide me with a constant stream of potential offers for my next contract and I don't have to spend &lt;em&gt;any&lt;/em&gt; time sending CVs out to random companies or cold calling. In return, they take a percentage of the value of contract (I don't see this percentage I only know my rate). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, most of my dealings with agents are non-personal, routine chats with person X from agency Y. The exceptions (and you know who you are if you're reading this ;-) ) don't hide their office number and have taken the time to build up history, repeat contracts and face to face contact. They add considerable value, and I thank them for their efforts.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-16T23:07:11.837" LastActivityDate="2010-12-16T23:07:11.837" />
  <row Id="27102" PostTypeId="2" ParentId="27096" CreationDate="2010-12-16T21:29:37.130" Score="1" ViewCount="" Body="&lt;p&gt;Particularly if you work in commercial/mass market software, its best to limit the number of external dependencies.  In my software, I only use a library when I cant compile it directly into an executable (for example, calling a c-made DLL from a Delphi program).  Limiting the number of dependencies limits the number possible problems relating to them during deployment to machines whose environment you dont control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Years ago when hard drives were small and expensive there might have been some use for using DLLs to cut down on disk space, but that age is long gone on PCs, imo.  And probably even on phones and most devices these days.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-16T21:29:37.130" />
  <row Id="27103" PostTypeId="2" ParentId="27094" CreationDate="2010-12-16T21:29:46.493" Score="7" ViewCount="" Body="&lt;p&gt;For a contractor, I would vote for &lt;strong&gt;references&lt;/strong&gt; instead or a portfolio. Unless you build websites or retail software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many of the project I worked on are confidential/internal so impossible to show. I can just name the company and describe the project (when my contract/NDA allows it). Forget about the source code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Provide the interviewer with a &lt;strong&gt;list of references&lt;/strong&gt; (bosses) to call from your previous missions. The interviewer want to know if you will be able to solve his problems.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-12-16T21:29:46.493" CommentCount="5" />
  <row Id="27104" PostTypeId="2" ParentId="27092" CreationDate="2010-12-16T21:30:13.807" Score="1" ViewCount="" Body="&lt;p&gt;I don't think there's anything built into VS2008 that'd do that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could use the &lt;a href=&quot;http://www.jetbrains.com/resharper/&quot; rel=&quot;nofollow&quot;&gt;ReSharper&lt;/a&gt; Visual Studio plugin to do a code inspection (through the &lt;code&gt;ReSharper-&amp;gt;Inspect-&amp;gt;Code Issues In Solution&lt;/code&gt; or similar options) and it will flag classes that are never instantiated under &quot;Potential Code Quality Issues&quot;. You can edit the code inspection options to increase the severity of that item to make it more visible among other potential issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alternatively, you could write a script/app that would call into a &lt;code&gt;grep&lt;/code&gt;-style program (there are a few listed in &lt;a href=&quot;http://stackoverflow.com/questions/87350/what-are-good-grep-tool-for-windows&quot;&gt;this SO question&lt;/a&gt; -- &lt;code&gt;findstr&lt;/code&gt; would likely do the job) that'd grab all the class definitions and then search for occurrences of class instantiation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either of these approaches could miss static types that are never used (since they're never instantiated), but assuming you have a relatively small number of those, you could check them manually in a pinch.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-16T21:30:13.807" />
  <row Id="27105" PostTypeId="2" ParentId="27091" CreationDate="2010-12-16T21:31:10.500" Score="1" ViewCount="" Body="&lt;p&gt;Will it be harder to find a job? Sure. An employer is likely going to prefer someone who is &lt;em&gt;working&lt;/em&gt; in the field over someone who &lt;em&gt;worked&lt;/em&gt; in the field.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But that said, it's not uncommon at all, I would think, for people to be out of work for a year while looking for a job (bad region, recession, etc.) nor is it uncommon for people to take sabbaticals.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-16T21:31:10.500" />
  <row Id="27106" PostTypeId="2" ParentId="27083" CreationDate="2010-12-16T21:31:37.583" Score="0" ViewCount="" Body="&lt;p&gt;I was placed by a recruiter in my current position. He is a specialist in programming jobs, and seems like he worked as a programmer himself. His business seems to be providing high quality candidates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He called me up and did a whole prescreening process, asking a whole lot of programming questions from the most basic to the very technical. Then once he was convinced I actually knew what I said I did, then he forwarded my details for an appropriate position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can get a recruiter like that, then yes they are very useful.&lt;/p&gt;&#xA;" OwnerUserId="5682" LastActivityDate="2010-12-16T21:31:37.583" />
  <row Id="27107" PostTypeId="2" ParentId="27094" CreationDate="2010-12-16T21:32:33.807" Score="0" ViewCount="" Body="&lt;p&gt;What to put in a portfolio may be based on the type of work you do and the publicity of that work.  It is great to show UI marketing shots of your work.  But, even when they are available, I'm not sure it always a good idea to use them.  It seems a bit lame to say &quot;It's part of this system here.  No.  That's not my UI.  My part didn't have one.  It only ran on the server.&quot;  If you have created flash, flash it.  If not, refer to it another way that doesn't promote the flash of someone else.&lt;/p&gt;&#xA;" OwnerUserId="6978" LastActivityDate="2010-12-16T21:32:33.807" CommentCount="1" />
  <row Id="27108" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T21:33:44.320" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Boolean Logic and Number Theory&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every if-statement and loop-construct you will &lt;em&gt;ever&lt;/em&gt; write will incorporate a combination of  the two. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both can be learned sufficiently by picking up a copy of a Discrete Mathematics textbook.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-16T21:33:44.320" CommunityOwnedDate="2011-02-20T17:10:34.583" CommentCount="3" />
  <row Id="27109" PostTypeId="2" ParentId="27096" CreationDate="2010-12-16T21:33:53.447" Score="4" ViewCount="" Body="&lt;p&gt;My rule is if it is a logical chunk of code that can perform a function or groups of functions that has a possibility of reuse it should be in a dll. dll Should not contain only one function or functions that can only work dependent on other functions in another dll. &lt;/p&gt;&#xA;" OwnerUserId="4553" LastActivityDate="2010-12-16T21:33:53.447" CommentCount="1" />
  <row Id="27110" PostTypeId="2" ParentId="27091" CreationDate="2010-12-16T21:34:43.953" Score="1" ViewCount="" Body="&lt;p&gt;Given that programmers need to learn new techs every X years, taking a year off does not necessarily put your career in pitfall when compared with a guy who has the pressure of everyday work with existing codebase PLUS having to learn new techs. This is all however very individual I guess.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-16T21:34:43.953" />
  <row Id="27111" PostTypeId="2" ParentId="27094" CreationDate="2010-12-16T21:35:26.707" Score="0" ViewCount="" Body="&lt;p&gt;In my opinion everyone should have a &lt;strong&gt;EDIT:&lt;/strong&gt; list of project descriptions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However if are going to have yours &lt;strong&gt;public&lt;/strong&gt; you should know that many &lt;strong&gt;companies don’t appreciate&lt;/strong&gt; that. It’s kind of &lt;strong&gt;security risk&lt;/strong&gt; in their opinion. However you are of course allowed to have that in you CV.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; I worked for a corporative that didn't want me to have their name on my homepage. However I was allowed to have references and project description in my CV. Since it was less public.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-12-16T21:59:39.617" LastActivityDate="2010-12-16T21:59:39.617" CommentCount="4" />
  <row Id="27112" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T21:37:20.137" Score="6" ViewCount="" Body="&lt;h1&gt;James Gosling&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Invented Java.&lt;/p&gt;&#xA;" OwnerUserId="3881" LastActivityDate="2010-12-16T21:37:20.137" />
  <row Id="27113" PostTypeId="2" ParentId="27078" CreationDate="2010-12-16T21:39:40.430" Score="1" ViewCount="" Body="&lt;p&gt;Advertise, Advertise, Advertise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good 'starter' is using Google AdWords.  Choose specific sites to run your ads on.  Thats a good way to target potential customers fairly cheaply.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or possibly Facebook ads, if your market is narrowed to certain interests/demographics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Press release services are good to get an initial word out, and arent too expensive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, while desktop apps dont have their 'official' marketplaces, there are such market places for desktop apps.  Be they specializing in sofware, or marketplaces targeting niche fields/hobbies that sell many types of products.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-16T21:39:40.430" />
  <row Id="27114" PostTypeId="2" ParentId="27091" CreationDate="2010-12-16T21:39:55.873" Score="13" ViewCount="" Body="&lt;p&gt;Plenty of great developers take sabbaticals. Okay, okay, &lt;strong&gt;I&lt;/strong&gt; just quit my job to take 2011 out as a self-funded sabbatical. ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But no, &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000076.html&quot; rel=&quot;nofollow&quot;&gt;seriously&lt;/a&gt;, they do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've researched this topic a lot before coming to the decision to do it myself, and these are the basic findings: No, it's not a career ending move, but it's definitely a good idea to stay in practice &lt;em&gt;and&lt;/em&gt; do something interesting during your gap year. If you take a year off to sit at home drinking beer and playing WoW, and come back and tell recruiters and hiring managers as much, it'll make you look exactly how it sounds. But if you take a year out to pursue some crazy and interesting adventure, and especially if you do something noble like volunteer work digging wells in Third World countries, then you'll be an interesting interviewee. Essentially, it pays to have a &quot;good story&quot; with some productive content, so the gap year doesn't sound like you just wanted to take time off to be lazy and do nothing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, be careful about dropping completely out of practice with programming and technology. It's true that programming is mostly concepts and state of mind (and specific syntax is mostly is just that, syntax), but you still have to be careful not to come back and be all rusty and awkward in interviews. It's probably a good idea to, at the very least, do some refresher work (in the form of personal projects or maybe open source work) in the last couple of months of your gap year. The more the better, of course. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All that said, you probably &lt;em&gt;should&lt;/em&gt; expect it to be a bit of a temporary career setback. Unless you have the reputation of a real rockstar programmer, you'll probably have to take a job that's a notch (in terms of seniority and pay) below what you could have had if you kept working and climbing the career ladder during that year. But it definitely doesn't have to be a career-&lt;em&gt;ending&lt;/em&gt; move, unless you do all of the above spectacularly wrong.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastEditorUserId="5064" LastEditorDisplayName="" LastEditDate="2010-12-17T04:46:18.627" LastActivityDate="2010-12-17T04:46:18.627" />
  <row Id="27115" PostTypeId="2" ParentId="27091" CreationDate="2010-12-16T21:41:02.130" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Would taking a year or two out destroy the (small) career I've built up so far?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Not at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;General knowledge you obtained will still be applicable in a year, in two years, in five years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Current versions of software packages will get updates, but there won't be any tremendous progress you won't be able to catch in a few weeks of focused learning. And anyway the other programmer must learn new versions one after the other. No bad thing will happen if you omit a few versions that will have deprecated by the time you return.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes it is good to take a pause and return with a fresh eye on the things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, you could always describe the time off as learning something new or pursuing your own projects.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-16T21:41:02.130" />
  <row Id="27116" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T21:41:19.307" Score="2" ViewCount="" Body="&lt;h1&gt;Jeff Atwood&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Author of Coding Horror, co-founder of Stack Overflow. Maybe not famous as a general computer evangelist, but arguably one of the most known programmers these days.&lt;/p&gt;&#xA;" OwnerUserId="7308" LastActivityDate="2010-12-16T21:41:19.307" />
  <row Id="27117" PostTypeId="2" ParentId="27091" CreationDate="2010-12-16T21:43:09.037" Score="2" ViewCount="" Body="&lt;p&gt;It depends on what you do with that time.  I was in a similar spot a few years ago, burnt out on development, looking for a career change so I went back to school for a biology degree with an eye on med school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually I took a &quot;temporary&quot; job writing software for public health that became a long-term gig, and today I'm a CTO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing I did that was smart was continuing to develop software while I was in school.  I wasn't one of those late-night hackers that worked on his pet project all the time (though I did take a summer off to work on something).  I learned Rails in that time, when it was still a young platform, and that has made all the difference for me today, having long-term experience with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line, the time off didn't hurt me.  It helped me rediscover what I liked about programming in the first place.  It also made me a more well-rounded person and developer.  Just don't waste the time and you'll do alright. (It helps to work on an open-source project or two just to have something to point at when they ask you what you've been doing the last couple of years.)&lt;/p&gt;&#xA;" OwnerUserId="9475" LastActivityDate="2010-12-16T21:43:09.037" />
  <row Id="27118" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T21:45:13.263" Score="4" ViewCount="" Body="&lt;h1&gt;Joel Spolsky&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;The genius behind Joel on Software blog, which popularized tons of great ideas in this era.&lt;/p&gt;&#xA;" OwnerUserId="7308" LastActivityDate="2010-12-16T21:45:13.263" />
  <row Id="27119" PostTypeId="2" ParentId="27096" CreationDate="2010-12-16T22:04:42.333" Score="4" ViewCount="" Body="&lt;p&gt;Dynamic libraries are good for drivers, because they use a standardized interface where the OS can hook right into the code and not bother with command line arguments and crazyness if it were an application instead.  For the same reason they're good for providing a common functionality to any program that wants to use it, such as Windows API DLLs.  Dynamic libraries should never be created for a single app, with the possible exception of plug-ins.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally dislike static libraries.  Since they're always loaded, they're taking up memory whether you're using them or not.  I suppose they're useful if you're using someone else's library and constantly making use of it in your code.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastEditorUserId="9771" LastEditorDisplayName="" LastEditDate="2010-12-17T00:10:03.927" LastActivityDate="2010-12-17T00:10:03.927" CommentCount="2" />
  <row Id="27120" PostTypeId="2" ParentId="27089" CreationDate="2010-12-16T22:04:43.287" Score="2" ViewCount="" Body="&lt;p&gt;I would say being able to demonstrate that you are a competent programmer that will be a valuable asset to their team should be your focus.  The languages you can demonstrate that competency in should be largely irrelevant.  Picking up a new language once you get on the job shouldn't be very difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's more about the &lt;em&gt;who&lt;/em&gt; and less about the &lt;em&gt;what&lt;/em&gt;, at least around here.&lt;/p&gt;&#xA;" OwnerUserId="9987" LastActivityDate="2010-12-16T22:04:43.287" CommentCount="2" />
  <row Id="27121" PostTypeId="2" ParentId="27083" CreationDate="2010-12-16T22:15:02.433" Score="1" ViewCount="" Body="&lt;p&gt;I got one job through a recruiter 12 years ago. Since then, nothing. I find them to be annoying at best. On monster.com I've noted that I prefer email, but they call. They are looking for a Python programmer, but the job turns out to be mostly C++ with a bit of Python, maybe. It's for a permanent position in London, I don't live in London and ain't gonna move, which is noted on my profile, etc, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most recruiters seem to work with a scattergun approach. They contact as many as possible, they build up a list of CV's which they want to list everything I've even done no matter how irrelevant it is for what I know. I'm a Python guru, but they want to hire me to do Java jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously there are good recruiters. They are just very far between.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-16T22:15:02.433" />
  <row Id="27122" PostTypeId="2" ParentId="27089" CreationDate="2010-12-16T22:18:42.147" Score="1" ViewCount="" Body="&lt;p&gt;Build up your skills on your free time (yeah, I know, it's hard to fins the time), be active in the community, join an open source project, go to conferences. That way you build up contacts and reputation, and somebody that need your skillset will hire you because they know that you are good even if your day job is C++.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-16T22:18:42.147" CommentCount="4" />
  <row Id="27123" PostTypeId="1" CreationDate="2010-12-16T22:22:51.250" Score="9" ViewCount="409" Body="&lt;p&gt;When I hear low-level programming, such as for drivers, embedded systems, operating systems, etc., I immediately think about C and perhaps C++. But mainly C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But what other languages are also used for these kind of tasks? Today, I mean, not what &lt;em&gt;has been&lt;/em&gt; used.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-12-17T02:01:41.143" Title="Which languages are used today for low-level programming?" Tags="&lt;programming-languages&gt;&lt;low-level&gt;" AnswerCount="6" />
  <row Id="27124" PostTypeId="2" ParentId="27123" CreationDate="2010-12-16T22:27:27.050" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.cython.org/&quot; rel=&quot;nofollow&quot;&gt;Cython&lt;/a&gt; is one example. Not for embedded systems, but for drivers and other low level programming it's used more an more in the Python world as a replacement of C. You get both a compiled Python, but also low level access and type hints for speedups.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a Python fanatic that's what I use, although admittedly very rarely and so far not in any serious context.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-16T22:27:27.050" CommentCount="1" />
  <row Id="27125" PostTypeId="2" ParentId="27123" CreationDate="2010-12-16T22:28:44.413" Score="11" ViewCount="" Body="&lt;p&gt;Normally low level programming such as driver programming is a mixture of an &lt;a href=&quot;http://en.wikipedia.org/wiki/Assembly_language&quot; rel=&quot;nofollow&quot;&gt;assembly language&lt;/a&gt; and C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The assembly language is used to talk to the hardware and C is used to talk to the kernel.&lt;/p&gt;&#xA;" OwnerUserId="5536" LastActivityDate="2010-12-16T22:28:44.413" CommentCount="3" />
  <row Id="27126" PostTypeId="2" ParentId="27123" CreationDate="2010-12-16T22:29:37.343" Score="4" ViewCount="" Body="&lt;p&gt;I did some research for 8-bit programming a little while ago (hobby related; I wanted to try building some basic electronics). Other than C and Assembly, the only languages I found mentioned favorably for these tasks were Scheme and Forth.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-12-16T22:29:37.343" />
  <row Id="27127" PostTypeId="2" ParentId="27083" CreationDate="2010-12-16T22:32:33.833" Score="1" ViewCount="" Body="&lt;p&gt;I'd say it is hit and miss.  Some recruiters have been good but just as many if not more have been lousy for me.  Course this was just in Seattle and Calgary, but in each case a limited supply is better as some agencies will be applying on the same position and getting applied twice or more will get you disqualified generally.  Thus, I'd be careful about having too many and not being aware of where your resume is going as sometimes recruiters may just try to apply you everywhere under the sun to get their commission, but this problem exists in every field where there are the a-holes that ruin it for everyone else.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-16T22:32:33.833" />
  <row Id="27128" PostTypeId="2" ParentId="26842" CreationDate="2010-12-16T22:33:48.370" Score="2" ViewCount="" Body="&lt;p&gt;Wrapping the database in a services/API layer is the most common way to do this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the most basic level provide full ORM mapping, but generally you would provide endpoints that provide different  create / update / result features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like your hackish PHP solution, only good :)&lt;/p&gt;&#xA;" OwnerUserId="3787" LastActivityDate="2010-12-16T22:33:48.370" />
  <row Id="27129" PostTypeId="1" CreationDate="2010-12-16T22:46:57.900" Score="2" ViewCount="184" Body="&lt;p&gt;I first heard this term about fifteen years ago.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My understanding is similar to that described in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Egoless_programming&quot; rel=&quot;nofollow&quot;&gt;Wikipedia article&lt;/a&gt; and a &lt;a href=&quot;http://articles.techrepublic.com.com/5100-10878_11-1045782.html&quot; rel=&quot;nofollow&quot;&gt;TechRepublic article&lt;/a&gt;: you work with your colleagues in a &quot;friendly, collegiate way in which personal feelings are put aside&quot;. It includes things like doing peer reviews with mutual respect and a desire to learn, and not feeling like you &quot;own&quot; code, so if somebody has a suggestion or says there's a bug or needs to change it, you don't get defensive about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also thought it was largely about having an attitude that makes for good relations with other programmers with the goal of improving the code. So I haven't seen it as being incompatible with taking pride in the quality of your work or feeling regret if something you did caused your customer a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, an answer to a recent question makes me think some other programmers have different understandings about &quot;egoless programming&quot;. So what is the correct definition? And what are its implications?&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-16T22:53:41.203" Title="What is &quot;egoless programming&quot;?" Tags="&lt;programming-practices&gt;&lt;behavior&gt;&lt;social-skills&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="1" />
  <row Id="27130" PostTypeId="2" ParentId="27129" CreationDate="2010-12-16T22:50:17.857" Score="4" ViewCount="" Body="&lt;p&gt;All of the above.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Egoless programming has mostly to do with how much respect you have for the programmer who comes after you, who is going to have to figure out what you did with your code so that they can maintain it, and quite possibly improve on what you did (I know, that seems inconceivable, since all the code I write is already perfect ;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also believe that egoless programmers don't take dogmatic positions about their work.  This makes them flexible enough to work in environments where their idealistic expectations may not always be so eagerly embraced or unconditionally accepted.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-16T22:50:17.857" CommentCount="1" />
  <row Id="27131" PostTypeId="2" ParentId="27129" CreationDate="2010-12-16T22:53:22.753" Score="3" ViewCount="" Body="&lt;p&gt;There isn't one correct definition as the concept of &quot;Ego&quot; is subject to great interpretation.  Depending on your psychological and spiritual beliefs there are more than a few different answers about how one can try to remove ego from their life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The implication as I understand the term is that there is a &lt;strong&gt;collective ownership&lt;/strong&gt;, so that each person on the team is working for the benefit of everyone rather than just oneself.  &quot;&lt;a href=&quot;http://www.ted.com/talks/david_logan_on_tribal_leadership.html&quot; rel=&quot;nofollow&quot;&gt;David Logan on tribal leadership&lt;/a&gt;&quot; is a TED Talk where a level 4 tribe would be the one of egoless people in a sense.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-16T22:53:22.753" />
  <row Id="27132" PostTypeId="2" ParentId="27129" CreationDate="2010-12-16T22:53:41.203" Score="3" ViewCount="" Body="&lt;p&gt;The phrase doesn't have an ISO standard meaning, so different people can legitimately mean different things by it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe it was coined by Weinburg in &lt;em&gt;The Psychology of Computer Programming&lt;/em&gt;.  He meant programming without tying any of one's ego to the code, so that it isn't &quot;your code&quot;, it's just code.  This facilitates cooperation to improve the code, the ability to accept criticism of what you've written (because it isn't directed at you), and general teamwork.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-16T22:53:41.203" CommentCount="3" />
  <row Id="27133" PostTypeId="1" AcceptedAnswerId="27550" CreationDate="2010-12-16T22:58:30.330" Score="1" ViewCount="236" Body="&lt;p&gt;I have a feeling that lately I haven't improved much as a programmer. I may have learned a few bits regarding some technologies and acquired some domain knowledge, but it isn't much. In general programming skills there has been very little that I have learned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't gotten better at reading legacy code. I still struggle with it. My design skills have not improved. I have hard time making design decisions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a limited experience of different workplaces and so I'm asking that how much does the working environment affect ones learning and what things in it specifically? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess there are things that affect ones motivation to learn, but also things that make it possible to learn. Please share your experiences.&lt;/p&gt;&#xA;" OwnerUserId="10335" LastActivityDate="2010-12-17T19:32:20.450" Title="What is a good environment for learning like?" Tags="&lt;learning&gt;&lt;self-improvement&gt;&lt;work-environment&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="27134" PostTypeId="1" AcceptedAnswerId="27138" CreationDate="2010-12-16T23:01:50.967" Score="13" ViewCount="553" Body="&lt;p&gt;As the Internet is pretty much ubiquitous, can we as developers assume that all users have Internet access? Now I don't mean that the code is written in such a way that if there is no connection then the whole program crashes due to lack of error code. What I mean is, can programs today be developed under the assumption that its users will always have access to the Internet?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may ask &quot;What do we gain by assuming that?&quot; The reason why I'm asking is because at uni we use quite a few programs which require Internet access due to the way it checks the licenses (it checks your IP address -- if it's not an address at campus, then you you're not allowed to use it). Note that the program itself should work fine without Internet access; it's just needed for license checking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt;&#xA;I'm talking about desktop applications here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT2:&lt;/strong&gt;&#xA;From some of the answers I get a feeling of being accused of exploiting the users in unethical ways. I'm &lt;em&gt;not&lt;/em&gt; endorsing what I've described in this question -- I'm just asking about it because the developers of some of the programs we use at uni have done this. Personally I think doing this is plain out stupid and wrong.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T14:26:46.373" LastActivityDate="2011-05-22T03:57:13.353" Title="Can we assume that all users today have Internet access?" Tags="&lt;internet&gt;&lt;desktop-application&gt;" AnswerCount="10" CommentCount="4" FavoriteCount="1" />
  <row Id="27135" PostTypeId="2" ParentId="27034" CreationDate="2010-12-16T23:03:29.090" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Hal Abelson&lt;/strong&gt; and &lt;strong&gt;Gerald Gay Sussman&lt;/strong&gt;, authors of &lt;em&gt;&lt;a href=&quot;http://mitpress.mit.edu/sicp/&quot; rel=&quot;nofollow&quot;&gt;Structure and Interpretation of Computer Programs&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="998" LastActivityDate="2010-12-16T23:03:29.090" />
  <row Id="27136" PostTypeId="2" ParentId="27134" CreationDate="2010-12-16T23:12:03.517" Score="1" ViewCount="" Body="&lt;p&gt;The answer is of course, it depends. If you are building software for a factory floor there is a good chance they wont have internet access. For consumer applications they most likely will.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-12-16T23:12:03.517" />
  <row Id="27137" PostTypeId="2" ParentId="25458" CreationDate="2010-12-16T23:17:11.800" Score="1" ViewCount="" Body="&lt;p&gt;Becoming a freelancer != getting your projects from a freelancing site.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-16T23:17:11.800" />
  <row Id="27138" PostTypeId="2" ParentId="27134" CreationDate="2010-12-16T23:17:15.823" Score="40" ViewCount="" Body="&lt;p&gt;Bad idea, for three reasons.  First off, even though everyone has Internet access these days, which is basically true, they don't always have it available at all times.  My primary machine is a laptop, and it's connected a lot of the time, but not when I'm on the bus, for example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, and sort of related to the first, is your method of checking.  What if a student gets a legitimate copy of the program, puts it on his laptop computer, and then goes to study with a friend who lives off-campus?  You've just introduced a heck of a false-positive condition into your license checking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Third, there's an ethical problem with the license checking in the first place.  If a person chooses to place a program on their computer, you have no right to cause their computer to treat it as invalid.  In any other context that's called hacking and it could land you in all sorts of hot water, and just because our copyright laws have been hijacked by copyright owners to make a special-case legal exemption for this scenario, that doesn't make it right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Enforcing the law is the job of law enforcement, and private individuals are highly discouraged from taking law enforcement into their own hands (vigilantism) because they tend to do it all wrong.  (Just look at the Sony rootkit!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your best course of action would be to assume that the user has an Internet connection available for features that actually require it, but not require it for features that can get by without it, and certainly don't require it just to convince the program that it's not an illegitimate copy!&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-16T23:17:15.823" CommentCount="3" />
  <row Id="27139" PostTypeId="2" ParentId="27134" CreationDate="2010-12-16T23:18:53.787" Score="4" ViewCount="" Body="&lt;p&gt;Yes in the sense that most people who work with computers can access an internet connection (so it's probably ok to distribute bug fixes through a package manager or FTP or similar).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No in the sense that most people don't necessarily have consistent, reliable, performant access to the internet all day (so assuming that each of your users can pull down 20mb/s consistently is probably a bad idea. People do also periodically use buses and airplanes where you're pretty much guaranteed a lack of connectivity).&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-12-16T23:18:53.787" />
  <row Id="27140" PostTypeId="2" ParentId="27134" CreationDate="2010-12-16T23:19:34.887" Score="2" ViewCount="" Body="&lt;p&gt;I think it's reasonable to assume that all users will have internet access &lt;em&gt;most of the time&lt;/em&gt;, or at least at install time. However, if I take my laptop with me on a plane, to a cabin in the woods, or on a boat out at sea, I would expect anything that doesn't &lt;em&gt;obviously&lt;/em&gt; require internet access to work fine.&lt;/p&gt;&#xA;" OwnerUserId="79" LastActivityDate="2010-12-16T23:19:34.887" CommentCount="1" />
  <row Id="27141" PostTypeId="2" ParentId="27133" CreationDate="2010-12-16T23:19:53.373" Score="1" ViewCount="" Body="&lt;p&gt;What area of programming interests you?  Follow your passion.  It's hard to stay motivated to learn something that you don't care anything about.  Wherever your interests lie, that's the best area to start learning more.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I have a limited experience of different workplaces and so I'm asking that how much does the working environment affect ones learning and what things in it specifically? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Some working environments can suck the motivation right out of you.  Try not to let that happen -- make sure there's at least ONE are of your job that still has an appeal.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-16T23:19:53.373" />
  <row Id="27142" PostTypeId="2" ParentId="27134" CreationDate="2010-12-16T23:20:59.643" Score="15" ViewCount="" Body="&lt;h2&gt;No!&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;All programs should consider access to the internet to be a best-case scenario, with a fallback mode for when the computer may not be connected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With so many laptops out there, and with the nature of most public wireless networks to still be pay-for-use, most laptop users are going to regularly experience conditions where they need to use their computer and their programs without a connection to the internet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As other answers have also posted, it's safe to assume that the computer will be connected at some point in the future.  Many synchronization-type apps that have an offline mode work this way.  But, as a matter of courtesy to users, &lt;strong&gt;don't operate this way unless it is a service to the user&lt;/strong&gt;.  I don't think license-checking falls into that category.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-16T23:20:59.643" />
  <row Id="27143" PostTypeId="2" ParentId="20128" CreationDate="2010-12-16T23:21:52.697" Score="1" ViewCount="" Body="&lt;p&gt;Insertion Sort&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Easy to implement, very fast on small lists and used in Merge Sort / Quicksort implementations to speed them up. It's stable, and operates in O(n) on sorted lists (when sorted in ascending order).&lt;/p&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2010-12-16T23:21:52.697" CommunityOwnedDate="2011-02-13T09:34:31.083" />
  <row Id="27144" PostTypeId="2" ParentId="27133" CreationDate="2010-12-16T23:26:05.907" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Understanding how you learn - While I can enjoy hypothetical and abstract ideas, there is something to be said for using what I know rather than just thinking I know what I know.  This is one side of the debate as if you don't know what works for you that kind of puts things into a sucky starting position.  If some learning styles suit you better, then try to stick to those as much as possible.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Understand what roles you have where you work - In terms of learning on the job, this has been rather standard for me to have to learn about something from scratch as soon as possible and sometimes this has been awesome and sometimes not so much.  A key point is to know how deeply do you know have to understand something.  I don't think I could write a C# compiler yet but I have been using the language for 8 years now.  In some cases learning how much to fix a bug can be quite different than replacing a system entirely.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Try to gauge the maturity of where you work - Is there formal structure in place so that things are rather bureaucratic or is it more like everyone can just do what they want?  How large is your development area and what kinds of specialty are there within your team?  These are just a couple of factors I'd point out that I can note the contrast in the handful of places I've worked in total.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The environment can play a role in a number of ways as some places may not want you to learn new stuff as they haven't quite extracted all that they can from what you already know possibly, though I may just be paranoid on that point.  Similarly, at the other end there can be lots of encouragement and support to learn new stuff and harness what is already out there to get things done.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-16T23:26:05.907" />
  <row Id="27145" PostTypeId="1" CreationDate="2010-12-16T23:26:28.070" Score="5" ViewCount="292" Body="&lt;p&gt;Hello!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have started playing around with Perl 5 lately, and it seems very interesting. I would like to spend some time learning it more in depth when I can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question, since Perl 6 is slowly taking place (I believe...) and is said to break backward compatibility, is this: am I better learning Perl 5 and then Perl 6, or is learning Perl 6 directly a better time investment according to you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the changes from Perl 5 to 6 are making it hard to understand Perl 5, I should certainly start with Perl 5 to be able to read &quot;old&quot; scripts, then check Perl 6. There is also the &quot;Perl 6 is not yet completely released&quot; problem. I know there's an early adopter implementation for Perl 6, but if Perl 6 isn't officially released before some more years, I'll stick to 5 for now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would certainly like some insight on this. Feel free to discuss related stuff. My interest in scripting languages is fairly new.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="6742" LastActivityDate="2011-01-01T13:37:42.707" Title="Should a newcomer to Perl learn both Perl 5 and 6?" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;perl&gt;" AnswerCount="7" CommentCount="1" />
  <row Id="27146" PostTypeId="2" ParentId="25458" CreationDate="2010-12-16T23:27:31.867" Score="3" ViewCount="" Body="&lt;p&gt;I don't understand how working in C++ application development precludes you from learning new skills and languages. Picking up a new language usually takes less than a few days for an experienced programmer as far as syntax is concerend. Why don't you start by trying to build a dynamic website for yourself. Maybe an imitation of wordpress. It's an interesting project from several perspectives. You get to learn things like PHP, SQL, JavaScript, HTML, etc. and at the end you actually will have a usable product that you built which you can later turn into a platform for showing off your work to clients.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastEditorUserId="7146" LastEditorDisplayName="" LastEditDate="2010-12-17T01:48:13.803" LastActivityDate="2010-12-17T01:48:13.803" />
  <row Id="27147" PostTypeId="1" AcceptedAnswerId="27150" CreationDate="2010-12-16T23:28:01.343" Score="9" ViewCount="653" Body="&lt;p&gt;Do you think it's worth it to use version control if you are an independent developer, and if so, why? Do you keep the repository on your own computer, or elsewhere, where it can serve as a backup?&lt;/p&gt;&#xA;" OwnerUserId="9357" LastActivityDate="2010-12-17T07:47:14.360" Title="Version control for independent developers?" Tags="&lt;version-control&gt;&lt;independent&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="5" />
  <row Id="27148" PostTypeId="1" AcceptedAnswerId="27177" CreationDate="2010-12-16T23:32:31.277" Score="1" ViewCount="222" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know its not strictly related to what people ask here but I have to ask this anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Isn't having long conversations/discussions over emails reduce one's productivity. I have joined this new company where people prefer emails &lt;strong&gt;alot&lt;/strong&gt;. It's not a big company so every one is accessible to everyone and also senior techies tend to get together for a 30 mins session every day to discuss and plan things with managers and stake holders.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think emails are great and should be used as long as they are to the point and don't waste anyone's time. In my professional experience getting or agreeing things over emails quickly becomes an endless game of ping-pong. Reaching to a conclusion often takes days just because.. oh well..not everyone has enough time to go through lengthy emails. Email subjects often become less subjective and more &lt;em&gt;&quot;re:re:re:re:fw:&quot;&lt;/em&gt;. After few &lt;em&gt;&quot;re:re's&quot;&lt;/em&gt; and &lt;em&gt;&quot;fw:fw's&quot;&lt;/em&gt; it becomes a nightmare to find what you're looking for since not every single thing in emails is a key-point so coming back to conversation after 8-9 months is like going through someone's source code writen in C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also not the best approach for discussing ideas or agreeing over things as most people tend to be more reserved in email conversations than they are in real life because it's very easy to misinterpret one's tone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the times I find it much easier and quicker to send an email saying &quot;Lets discuss thing X at xx:xx&quot; followed by a quick call at agreed time rather than dragging the issue for days (or in some cases weeks). When needed I follow up with an email saying &quot;well here's what we agreed on the phone&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also people are generally more respectful to each other and open to discussions when talking face to face or over the phone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong, emails are important and should be used whenever they are absolutely necessary. But in small/medium sized teams why is this culture (of writing long stories i.e. emails) so so important ? why don't people use tools like Basecamp, redmine, wiki's instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How would you improve your team or company's communications so people become more productive and create a friendly environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you for reading.&lt;/p&gt;&#xA;" OwnerUserId="10346" LastEditorUserId="10346" LastEditorDisplayName="" LastEditDate="2010-12-16T23:38:18.090" LastActivityDate="2010-12-17T00:40:51.453" Title="Is Emailing waste of time in Dev Teams" Tags="&lt;productivity&gt;&lt;communication&gt;&lt;teamwork&gt;" AnswerCount="3" FavoriteCount="3" />
  <row Id="27149" PostTypeId="2" ParentId="27134" CreationDate="2010-12-16T23:36:42.997" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;No&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;you can not &lt;strong&gt;assume&lt;/strong&gt; all users have internet access.&#xA;  &lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_countries_by_number_of_Internet_users&quot; rel=&quot;nofollow&quot;&gt;For basic Stats click here&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Excluding&lt;/strong&gt; web applications, a desktop application should not assume in my mind that it has internet access.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-16T23:36:42.997" CommentCount="4" />
  <row Id="27150" PostTypeId="2" ParentId="27147" CreationDate="2010-12-16T23:37:36.713" Score="23" ViewCount="" Body="&lt;p&gt;If you use decentralized source control (Mercurial or Git or Bazaar or whatever), you get advantages overs SVN/CVS that makes it easy, useful and powerful to use in cas you're indy :&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You commit locally : your project dir is your repo with FULL history. So you don't have to have a server, you commit directly in your repo, and you can have several repos in the same computer. Using a laptop that you open sometimes to continue working on your things? Great! You dont have to setup a server and if you need one later, it's easy and you just &quot;push&quot; and &quot;pull&quot; changes between repositories.&lt;/li&gt;&#xA;&lt;li&gt;It's made to ease experimentation : often you need to have an idea about a feature without polluting code. With SVN and CVS you can already use a branching system and ditch the branch if the feature is not as good as you wanted it to be. But if you want to merge the feature with the trunk version, you'll have a lot of hard to fix surprises. Git, Mercurial and Bazaar (at least) makes merges and branches really easy. You can even just duplicate a repo, work on it some time, still commit and kill it or push your changes in the main repo if you want. &lt;/li&gt;&#xA;&lt;li&gt;Flexibility of organisation : as pointed before, as you have repos that you organize as you need, it's easy to start alone and allow other peolpe to work with you by changing your organization. No organization is imposed so you just have to set it up and voilà. I often just push/pull changes between my own computers (laptop/desktop/server) and I'm still alone on my devs. I use Mercurial and that help me duplicate my work but also work on features I thought about outside on my laptop, then continue to work on other features on my desktop, then push my laptop changes on my desktop or server and merge the whole desktop+laptop and put it (as backup and future teamwork repo) on my server.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In fact, currently, you have no excuse to not use a control source tool for any project. Because their more powerful and flexible than before and scale with your needs.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-12-16T23:37:36.713" CommentCount="10" />
  <row Id="27151" PostTypeId="2" ParentId="27147" CreationDate="2010-12-16T23:38:30.383" Score="0" ViewCount="" Body="&lt;p&gt;Yes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even single developers need to sometimes see the state of their code from some past revision. And it's always a good idea to backup everything important, and that applies to all people.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-12-16T23:38:30.383" />
  <row Id="27152" PostTypeId="2" ParentId="27147" CreationDate="2010-12-16T23:39:23.450" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Why not?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a solo developer and I use BitBucket and Mercurial for my personal projects. Having the ability to revert and fork your code is just too good to pass up.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-12-16T23:39:23.450" CommentCount="5" />
  <row Id="27153" PostTypeId="2" ParentId="27147" CreationDate="2010-12-16T23:40:31.513" Score="0" ViewCount="" Body="&lt;p&gt;I find value in it, personally. My projects are all checked into git repositories (all of which I keep on multiple machines in case of a hardware failure). The most useful features are branching (so that I can run an experiment that messes with half of my codebase, and not worry about blowing anything up permanently) and reverting (which is basically just undo on steroids; in case I find that I made some mistake that is out of regular undo range).&lt;/p&gt;&#xA;" OwnerUserId="2592" LastActivityDate="2010-12-16T23:40:31.513" />
  <row Id="27154" PostTypeId="2" ParentId="27148" CreationDate="2010-12-16T23:41:24.443" Score="2" ViewCount="" Body="&lt;p&gt;I &lt;strong&gt;do&lt;/strong&gt; use emails for:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Letting my supervisor know about something that is not immediately urgent, that doesn't require discussion, so I don't have to interrupt him.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Providing an electronic record (&quot;proof&quot;) of a communication.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Disseminating documents.  The document itself might be the long story.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Reviewing a document (such as requirements) and providing detailed written feedback.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Asking clarifying questions about an email I received.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I &lt;strong&gt;&lt;em&gt;do not&lt;/em&gt;&lt;/strong&gt; use emails for:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Lengthy discussions, although I will email a summary of the discussion to the participants.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Diatribes, complaints, or anything that might come back to haunt me.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The usual abuses, like chain letters or pictures of my cat.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;It might be handy to find out what it is about the corporate culture of this particular company that they prefer emails over other forms of communication.  To me, email has very specific uses, outside of which email can become difficult because it's such a constrained medium of communication (you can't see the other person's face or read their body language).&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-16T23:51:51.610" LastActivityDate="2010-12-16T23:51:51.610" CommentCount="1" />
  <row Id="27155" PostTypeId="2" ParentId="27147" CreationDate="2010-12-16T23:41:44.977" Score="0" ViewCount="" Body="&lt;p&gt;Yes.  It is very very useful.  My friend &lt;a href=&quot;http://cocoawithlove.com&quot; rel=&quot;nofollow&quot;&gt;Matt Gallagher&lt;/a&gt; posted &lt;a href=&quot;http://cocoawithlove.com/2010/12/version-control-for-solo-mac-developers.html&quot; rel=&quot;nofollow&quot;&gt;this excellent article&lt;/a&gt; on this very subject just a few days ago to his &quot;Cocoa With Love&quot; iOS/MacOS development blog.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The article is Mac &amp;amp; Git centric but it covers the basics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may also be interested in the following StackExchange Questions (and their answers).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/10791/are-there-advantages-to-using-a-dvcs-for-a-solo-developer&quot;&gt;Are there advantages to using a dvcs for a solo developer?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/59561/what-tools-techniques-can-benefit-a-solo-developer&quot;&gt;What tools techniques can benefit a solo developer?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/2121080/git-for-a-solo-developer&quot;&gt;Git for a solo developer.&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10348" LastEditorUserId="10348" LastEditorDisplayName="" LastEditDate="2010-12-17T00:03:45.293" LastActivityDate="2010-12-17T00:03:45.293" />
  <row Id="27156" PostTypeId="2" ParentId="26970" CreationDate="2010-12-16T23:45:02.987" Score="0" ViewCount="" Body="&lt;p&gt;It doesn't matter how skilled the programmer is when you're only seeing the surface level.  The website is simply your interface with whatever the developer chose to implement.  A developer's website is meant for communication, and if it serves that purpose, then it has met the sole goal of a developer's personal site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're not going to know the skill of a developer based on the presentation of the data, unless the person is a JavaScript developer and left all of his logic and code client side.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A canned implementation with a default theme, doesn't mean the developer hasn't tweaked something on the back end to make it easier for him deliver content.  Nor does it mean the person wouldn't make your ideal employee.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Web development on a personal site level doesn't indicate anything about knowledge, skill, or abilities, especially since any real developer will be using a server side language for the bulk of their logic.  Development for a personal site is still just barely above scripting, and any technical person can do that with any number of the frameworks and languages in use today.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether the person rolled their own, or used someone else's doesn't indicate one way or another that they are capable of solving real problems or have any real knowledge of development work.  Therefore, as everyone else has indicated, their content is much more valuable in the evaluation then the platform on which it is communicated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same goes with designers, check out their work and portfolio, not the platform or theme of their site.&lt;/p&gt;&#xA;" OwnerUserId="2076" LastActivityDate="2010-12-16T23:45:02.987" />
  <row Id="27157" PostTypeId="2" ParentId="27148" CreationDate="2010-12-16T23:46:41.333" Score="2" ViewCount="" Body="&lt;p&gt;There is a flip side case to be said for e-mails being advantageous in some cases:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Introverted people may tend to prefer written communications which e-mail would be one form of that.  This allows for multiple thoughts to be expressed in one message that can be sent in bulk which can be useful to record in some situations,e.g. what work was I doing, what decisions were made about this or that, etc.  While e-mail may be abused, there are times where some people that are focused a lot on precision and accuracy in conveying thoughts may prefer e-mail with its structure, archiving, etc.  Although things like Twitter and Instant Messaging have replaced some of this need and may be more effective at times.  Think of this as some people would rather relay information through written words than verbally, which can be a strength or weakness depending on how one wants to see it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;E-mails can be good for some broadcast scenarios.  A build going into test or some other environmental deployment may be worthwhile as an e-mail that can get logged for when was this done and what changes were in it.  Another scenario here is to have an agenda for a meeting sent out before the meeting while being environmentally friendly about it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Approval and workflow management can sometimes be done through e-mail where a system will send off a notification to someone and thus a developer may know a bug was assigned to them or a manager may get an approval form to click for someone to use their vacation time, etc.  This isn't quite the broadcast case but it is the case where written records may be wanted for some situations.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-16T23:46:41.333" />
  <row Id="27158" PostTypeId="2" ParentId="27078" CreationDate="2010-12-16T23:47:13.860" Score="2" ViewCount="" Body="&lt;p&gt;Start a web site. Offer your product for sale. Have a PayPal button. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start a customer support forum where users of your product can connect with each other to use the product more effectively and improve the experience. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start a blog. Update it daily with a useful blurb about the importance of the problem you are solving, or how your software solves the problem, or how your software solves the problem better than competing solutions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start a YouTube channel about your product. Demonstrate, with a screencast or a video how it works. Show how useful it is. Make sure your YouTube channels link back to your blog and web site. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go and find articles and blogs on the internet which describe the problem you solve or its solutions. Make comments that back-link to your web site or your blog. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will take time, but you will rise to somewhere near the top for your category. &lt;/p&gt;&#xA;" OwnerUserId="10347" LastActivityDate="2010-12-16T23:47:13.860" CommentCount="1" />
  <row Id="27160" PostTypeId="2" ParentId="26866" CreationDate="2010-12-16T23:52:54.963" Score="1" ViewCount="" Body="&lt;p&gt;But programming is really more then list of languages and tools you know, it is really the personal skills and habits which separates the great programmers from the others. I recommend you read Ed Burns' &lt;a href=&quot;http://ridingthecrest.com/&quot; rel=&quot;nofollow&quot;&gt;Secrets of the Rock Star Programmers&lt;/a&gt;. It says, for example, a programmer must be aware of his ignorance. Knowing you are ignorant will always make you look for that new stuff you were missing and will constantly make you improve your programming skills.&lt;/p&gt;&#xA;" OwnerUserId="8410" LastActivityDate="2010-12-16T23:52:54.963" CommunityOwnedDate="2011-02-20T17:10:34.583" />
  <row Id="27161" PostTypeId="1" AcceptedAnswerId="27203" CreationDate="2010-12-16T23:56:03.523" Score="6" ViewCount="478" Body="&lt;p&gt;WARNING: Potential vagueness and rambling ahead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recently received my Bachelor's of Computer Science, and I'm about to embark on my first real career job as a Java software developer at a telecom company.  I also just recently started participating in StackOverflow, and it's gotten me thinking about my education, career path, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the work I've done so far in my internships was on what I'd call business logic (also, UI code).  I've experienced plenty of code that focused on solving a direct problem, web pages, and applications that run on non-PC devices but do everything through a nice API.  I've got almost no experience whatsoever with research, embedded devices, code that modifies other code, OS kernel code, device drivers, developing coding tools (analyzers, debuggers, etc.) etc. etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, my education, while highly theoretical, did seem to tend toward the problem-solving side of things.  I've gotten plenty of exposure to algorithms, networks, databases, etc., but primarily in the mode of &quot;here's how they work, learn them, use them&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love using my programming skills to solve problems.  I feel great about my skills as a beginning software engineer, especially when it comes to finding bugs in other people's business logic and UI code.  I have no plans to return to school to do Computer Science research or get a higher degree, because I'm sick of school and I don't think I'd be very good at CS research.  On the other hand, I see questions on stackoverflow about self-modifying code and other such &quot;Computer Science-y&quot; things and feel very lost but very excited about the interesting ideas and problems involved and the potential 'cool stuff' you could do with such concepts.  I also feel intimidated by the potential complexity and the time it would take to learn and experience all the various domains computer science has to offer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I destined to just be a 'programmer'? How can I (or &lt;em&gt;should&lt;/em&gt; I) begin to expand my computer science knowledge and experience beyond just problem solving to these meta-level domains?  Is it &quot;OK&quot; to just write good code, and never think about how many registers the CPU needs to execute a certain process (or whatever)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess another way to pose my question/concern is this: Once one has a good grip on writing business logic, algorithms, etc. what is the next step in one's continuing evolution as a computer scientist?  And would you look down on someone who wrote high quality business logic code but never bothered to move beyond that?&lt;/p&gt;&#xA;" OwnerUserId="9210" LastActivityDate="2011-04-12T14:55:00.753" Title="&quot;Moving beyond business logic&quot;, or &quot;Am I a programmer, or a computer scientist?&quot;" Tags="&lt;career&gt;&lt;computer-science&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="1" />
  <row Id="27162" PostTypeId="2" ParentId="27161" CreationDate="2010-12-17T00:00:52.447" Score="4" ViewCount="" Body="&lt;p&gt;Wikipedia et al. are your friend.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Self-modifying_code&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Self-modifying_code&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't need to spend thousands and go to school to learn about computer science. If you see something that interests you, dive in. Do a search, look around, try some things out. If you stop learning new things, you'll start to stagnate and lose interest in programming, and ultimately become less valuable to your profession.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may be harder to learn without a teacher, but it's not impossible. &lt;/p&gt;&#xA;" OwnerUserId="54" LastActivityDate="2010-12-17T00:00:52.447" />
  <row Id="27163" PostTypeId="2" ParentId="27134" CreationDate="2010-12-17T00:02:06.783" Score="24" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Not all users have usable internet access.  For example, outside of small and medium cities (and their suburbs) and university towns, the US has almost no broadband infrastructure.  Small town and rural users are generally on satellite or dialup (and their phone lines aren't always the best, so dialup is often below 50k/s).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Users with good internet access at home/office often operate in other places: parks, airplanes, cafes, conference venues, etc. that usually lack reliable internet access.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Many users invest in back-up power for a reason: so they don't experience down time during outages.  If you cripple your application when the internet goes down, you've just robbed them of that investment.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Internet connections fail, ISPs (or workplaces, or universities) block traffic at their own whim, home users misconfigure their NATs... it is just plain stupid to create an artificial (i.e. not a technical consequence of building the thing) point of failure in your software.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The above reasons alone are more than enough not to use the &quot;call home&quot; DRM model; but even if none of them were true, I'd still advise against it because, as Mason already tried to point out, &lt;strong&gt;&lt;em&gt;it is ethically wrong to exploit your users in this way.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't get to expose information about your users just for the sake of your own piece of mind.  You have &lt;strong&gt;no right&lt;/strong&gt; to monitor when and from where they use your software.  Doing this sort of thing violates your users' trust.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-17T00:02:06.783" CommentCount="1" />
  <row Id="27164" PostTypeId="1" AcceptedAnswerId="27208" CreationDate="2010-12-17T00:05:43.370" Score="18" ViewCount="874" Body="&lt;p&gt;If you were hired into a new company as a team lead (say a team of 10) one of the important things to do is to earn the respect of the members of the team. In the early days the new team lead may know nothing of the team culture, code base and business domain: in other words, is a complete neophyte. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How does one go about this? What are the do's and don'ts? &lt;/p&gt;&#xA;" OwnerUserId="85" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-21T05:28:26.387" LastActivityDate="2010-12-30T12:49:43.617" Title="How to earn team members respect as team lead" Tags="&lt;new-job&gt;&lt;team-leader&gt;" AnswerCount="14" CommentCount="5" FavoriteCount="6" />
  <row Id="27165" PostTypeId="2" ParentId="27161" CreationDate="2010-12-17T00:10:24.037" Score="2" ViewCount="" Body="&lt;p&gt;Most of your questions hinge on your own personal preferences.  Do you feel you need the intellectual challenge of broadening your horizons or do you feel that you would be satisfied with just pounding out business logic code?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good starting point to help discern your feelings is to dive into some programming.  Be it open source projects, pet projects, or working on the code for your job.  Doing real code that matters to someone and taking that code to production is the best experience you can have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you get into lower-level code than Java, I don't believe you'll ever need to worry about things like how many registers of a CPU to use.  Like Carson said, google what your interested in, there's a wealth of information to learn from online and once you've exhausted the online world you'll have a much better position to judge what your next step would be (i.e.- school, subject-specific books, tutors).  &lt;/p&gt;&#xA;" OwnerUserId="9479" LastActivityDate="2010-12-17T00:10:24.037" />
  <row Id="27166" PostTypeId="2" ParentId="26970" CreationDate="2010-12-17T00:10:31.663" Score="0" ViewCount="" Body="&lt;p&gt;It depends. If I was looking to see how you build something from scratch, your use of Drupal or Wordpress would not tell me anything good or bad about you. However, it does tell me that you know how to leverage the great work done by the folks who develop Drupal and Wordpress. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your ability to use leverage is always a good thing to show. &lt;/p&gt;&#xA;" OwnerUserId="10347" LastActivityDate="2010-12-17T00:10:31.663" />
  <row Id="27167" PostTypeId="2" ParentId="27089" CreationDate="2010-12-17T00:17:41.750" Score="2" ViewCount="" Body="&lt;p&gt;First, If you master C/C++ make sure the potential employer knows that. If I came across one who masters one language then I know for sure he can master any other and I may prefer hiring him despite his luck of experience in specific language. Now, making some kind of project to present in an interview is a good idea, I recommend a small GUI application which does some cool stuff, like manipulating a photo or something like that, choose something that interesting you. If you use an &lt;a href=&quot;http://java.sun.com/applets/&quot; rel=&quot;nofollow&quot;&gt;Applet&lt;/a&gt; (the easiest way to do that) then you can attach the link to it to your resume and make it work for you before the interview. Deploying it as web service will take you one step forward.&lt;/p&gt;&#xA;" OwnerUserId="8410" LastActivityDate="2010-12-17T00:17:41.750" CommentCount="1" />
  <row Id="27168" PostTypeId="2" ParentId="26522" CreationDate="2010-12-17T00:17:56.523" Score="1" ViewCount="" Body="&lt;p&gt;1) It's difficult to tell you if this particular career move is wise.  If there are no red flags about the new company or position, then I would say that you should take it if and only if you want to give it a try and are ready for the challenge of a transition to development.  Do you have any other particular concerns that are making you uncertain about this transition, besides moving between fields again later?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2)  It will almost certainly be easier to move back to a QA position from a developer position than to move to a developer position from a QA position.  You will not be locking yourself out of a testing career by taking this job.  As for moving within Infosys in particular, you should ask your recruiter or another inside contact.  Every company is different.  You should also find out if the pay scale for testers and developers is the same, as you might be able to make the transition but only with a pay cut.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do not take this job, however, you might need to do a little more work if you later decide you do want to switch to development.  Not all companies value their QA department's development skills equally, so you may have fewer companies that you can work with until you re-establish yourself as a developer again.  Moving from QA to development is definitely do-able, and getting easier as more and more companies realize the value of hiring skilled developers for testing &amp;amp; QA as well as development.  However, there are also many stories about developers taking test jobs &quot;for a while&quot; only to find that after a couple of years, they could no longer get developer jobs at their company doing anything other than testing.&lt;/p&gt;&#xA;" OwnerUserId="8888" LastActivityDate="2010-12-17T00:17:56.523" />
  <row Id="27169" PostTypeId="2" ParentId="27164" CreationDate="2010-12-17T00:19:23.593" Score="5" ViewCount="" Body="&lt;p&gt;As a leader, you are given a job to be done and a set of people and resources to do it with, and your job is to coordinate things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As &quot;a complete neophyte,&quot; you're lacking the single most important attribute of a leader: knowledge of your team.  The first thing I would do in your situation is to talk to each member of the team and get to know them.  Learn their personalities, their strengths, (particularly their specialties,) and their weaknesses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you've got an idea of what your team can do, as individual members and as a team, you should go after the job.  Figure out what it is that needs to be done, get as much domain knowledge as you can cram into your head quickly, and start breaking it up into smaller parts.  Hopefully you'll have at least one team member who's a domain expert and can help you with this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that, it's time to get to work.  Delegate certain tasks to your team members.  Contribute as much of your own effort to the work as you can without interfering with your responsibilities as a coordinator--this will help you earn the respect of the team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And remember that your main responsibility is to coordinate things.  You're not a general, barking orders to the grunts that are to be obeyed instantly and without question; you're the guide for a group of skilled professionals, a specialist who specializes in the big picture.  Your team members have their own specialties, so be willing to listen to their ideas and consult with them.  Make it clear that they're free to come to you with ideas and concerns, but also that as the leader, the buck stops with you.  Sometimes you'll have to make a decision between two seemingly-good alternatives, (or two alternatives that different team members each think is good,) and the final decision--and the responsibility for it--rests on your shoulders.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, stay out of the way as much as possible and try to make sure your team members are able to do the best work they can, and they'll love you for it.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-17T00:19:23.593" CommentCount="1" />
  <row Id="27170" PostTypeId="2" ParentId="27164" CreationDate="2010-12-17T00:19:50.120" Score="8" ViewCount="" Body="&lt;p&gt;A team lead has a few responsibilities, such as organizing the team, making sure stuff gets done on time, and representing the team to management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day, if the team lead helps the team become better, they will earn the respect.  Becoming better can be in the form of mentoring, helping with time/priority management, and produce quality software on time.  If a team lead is coming in cold, they'll have to be a quick study.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Lead be example--brow beating is counter productive in every situation&lt;/li&gt;&#xA;&lt;li&gt;Introduce any changes to process in a controlled pace&lt;/li&gt;&#xA;&lt;li&gt;Listen to and incorporate input from your team&lt;/li&gt;&#xA;&lt;li&gt;Identify one quick win to improve the team and implement it.  And do it again.&lt;/li&gt;&#xA;&lt;li&gt;Communicate clearly and ask questions often&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-17T00:19:50.120" CommentCount="1" />
  <row Id="27171" PostTypeId="2" ParentId="27134" CreationDate="2010-12-17T00:24:05.453" Score="6" ViewCount="" Body="&lt;p&gt;The short version is NO, you can't assume all users have internet access.  As others have mentioned there are a large number of people with limited or no internet access at home.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your licensing scheme should be able to handle the case that the computer the software will run on will never have access to the internet.  It is not all that unusual for corporations to have networks that are isolated from the internet (especially when dealing with security concerns).  This is especially true if you will ever want to be able to sell you software to a government agency.  The other side is how will you handle updates?  If you will want to sell to corporations/government you will have to support Enterprise rollout of the updates.&lt;/p&gt;&#xA;" OwnerUserId="4819" LastActivityDate="2010-12-17T00:24:05.453" />
  <row Id="27172" PostTypeId="2" ParentId="27161" CreationDate="2010-12-17T00:26:58.400" Score="2" ViewCount="" Body="&lt;p&gt;There's nothing wrong with being just a programmer, especially if you like programming. It not only pays the bills, but it gives you an opportunity to solve problems for people. These are both Good Things&lt;sup&gt;TM&lt;/sup&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, as Carson Myer's answer says, if you'd like to learn more about Computer Science, there's no reason why you have to continue to do it formally. With your training as an undergraduate, you have the tools and study habits necessary to learn on your own whatever you'd be interested in. If you went to graduate school, you'd be studying own your own anyway more and more the further you progressed. This way, you can study whatever you want at your own pace, without necessarily needing to spend any money. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastEditorUserId="5621" LastEditorDisplayName="" LastEditDate="2011-04-12T14:55:00.753" LastActivityDate="2011-04-12T14:55:00.753" />
  <row Id="27173" PostTypeId="1" AcceptedAnswerId="27179" CreationDate="2010-12-17T00:32:47.737" Score="5" ViewCount="303" Body="&lt;p&gt;I was scheduled to graduate a quarter extra as a CS undergrad.  This past term I completed my final courses, but missed the filing for graduation deadline, and now will be technically graduated two quarters past my fourth year at college.  I'm still kicking myself for my mistake, but at least for this second extra term I don't have any courses to take, and so am free to search for jobs and work on projects (which, admittedly I would have been doing anyways).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any disadvantages or opportunities to this situation?  On one hand, I feel that explaining this foolish mistake will look badly to future employers.  I also wouldn't be able to claim that I'm graduated with a diploma ready over the next few months.  Finally, I'm wondering if being counted as class 2011 instead of 2011 will count against me.  On the other hand, would it be possible for me to use this situation to my advantage at all?  Like looking for students-only internship positions, even though I'll be a no-time student for the next several months?&lt;/p&gt;&#xA;" OwnerUserId="10351" LastActivityDate="2010-12-17T15:28:03.253" Title="Does graduating a term later as a CS student matter?" Tags="&lt;career-advice&gt;&lt;advice&gt;&lt;resume&gt;&lt;university&gt;&lt;employer&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="2" />
  <row Id="27174" PostTypeId="2" ParentId="27173" CreationDate="2010-12-17T00:37:11.370" Score="4" ViewCount="" Body="&lt;p&gt;It doesn't matter. It is not at all uncommon for people in Engineering majors to take more than 4 years to graduate anyways. When I graduated probably fewer than 1/3 of the students took 4 years or less.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-12-17T00:37:11.370" />
  <row Id="27175" PostTypeId="2" ParentId="27173" CreationDate="2010-12-17T00:38:07.937" Score="1" ViewCount="" Body="&lt;p&gt;Not that I could picture.  I ended up doing an extra semester myself but that was because I had to get my 10 non-Math course requirement met and so I ended up taking a Macroeconomic course that summer along with a few other Math courses as I just loved the subject so much.  Thus take advantage of having some extra time to take some stuff for fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you learned from this mistake?  That would be the question and can you tell the story of what happened without being overly bitter or harsh on yourself.  If your university has a career services department I'd ask them as I imagine they may have an answer or two for you.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-17T00:38:07.937" />
  <row Id="27176" PostTypeId="2" ParentId="27147" CreationDate="2010-12-17T00:40:06.667" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Worth?? Must!&lt;/strong&gt; If you don't use Source Control then you don't control you sources, and that's bad. You can't diff you can't revert, you can't track changes - you'll spend hours trying to find out the dummy bug you just entered. It is better to have it on some backed up server, but you can also you your computer and use any backup method you find appropriate.&lt;/p&gt;&#xA;" OwnerUserId="8410" LastActivityDate="2010-12-17T00:40:06.667" CommentCount="1" />
  <row Id="27177" PostTypeId="2" ParentId="27148" CreationDate="2010-12-17T00:40:51.453" Score="6" ViewCount="" Body="&lt;p&gt;Email is great for temporary communication, scheduling, organization, and so forth - especially with calendar or to-do list integration and other nifty features.  It can be good for meta-discussions that involve a lot of opinions and shouldn't be documented as fact provided it is somehow easy to filter (e.g., email aliases for topic discussion), and can be good for quick information that doesn't need to be documented (although I prefer IM or face-to-face for this).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anything that is likely to be needed over and over again should be properly documented in an easy-to-locate spot.  Our company likes to use a wiki.  Some companies use SharePoint.  If it isn't leveraging an email feature like the calendar and will be needed again a few weeks later, generally it is better (IMO) to document it somewhere else.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To get your company to avoid using email when things should be documented, I think the thing to do is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Make sure your company has a&#xA;repository for information like this;&#xA;if not, set up a wiki or something&#xA;yourself&lt;/li&gt;&#xA;&lt;li&gt;Use the repository religiously; be a good example&lt;/li&gt;&#xA;&lt;li&gt;When others fail to use the repository of information and instead email it out, either reply-all with &quot;Should this go on the Sharepoint / wiki?&quot; if the person is normally good about this kind of thing, or put it up yourself and then send a reply-all with &quot;I put this up on the Sharepoint / wiki at [URL]&quot; if they are often forgetful.  Reply-all lets your message affect a broader spectrum of people.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;A similar approach can be taken for moving meta-discussions and &quot;fun&quot; emails to aliases. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most workplaces I've been in have rules about marking &quot;fun&quot; emails low-pri or using a particular &quot;off-topic&quot; alias - this can also clean up a lot of clutter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find long emails with lots of discussion often indicate that a meeting would be a really, really good idea.  So you could also ask if people could schedule a meeting when you see that, or (depending on company culture) just go ahead and schedule it yourself. Then make sure the notes from the meeting get posted on your information repository, and just email the link instead of the notes themselves.&lt;/p&gt;&#xA;" OwnerUserId="8888" LastActivityDate="2010-12-17T00:40:51.453" CommentCount="1" />
  <row Id="27178" PostTypeId="2" ParentId="27164" CreationDate="2010-12-17T00:43:13.097" Score="2" ViewCount="" Body="&lt;p&gt;There are 4 traits common among followers that I'd point out:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Build trust - This takes time and experiences as some people are trusting right off the bat and others can take time to open up and stuff.  The key point here is to be open and honest I'd think.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Show compassion - How well do you care about these people?  How do you show that?  Being there for them is part of this but there are a lot of other dimensions to the relationship to note here.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Provide stability - Many people don't like change and don't like adapting to new things.  Others are fine with it but you have to know people first and foremost.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Create hope - This is a funny thing that may or may not be realistic in your case.  This is about giving someone something to live for and isn't necessarily an easy thing to do.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'd also recommend looking up, &lt;a href=&quot;http://en.wikipedia.org/wiki/How_to_Win_Friends_and_Influence_People&quot; rel=&quot;nofollow&quot;&gt;&quot;How to Win Friends and Influence People,&quot;&lt;/a&gt; for more ideas about dealing with people.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-17T00:43:13.097" CommentCount="1" />
  <row Id="27179" PostTypeId="2" ParentId="27173" CreationDate="2010-12-17T00:43:51.530" Score="12" ViewCount="" Body="&lt;p&gt;As for you being &quot;Class of 2011&quot;, all you have to put on your resume when applying for jobs is the fact that you have a degree and the year 2011.  Few if any recruiters/managers/interviewers will ask you what year you started college or how long your degree took you.  There is no expectation that you will put on your resume &quot;Graduated from Blahblah U. in four years and two quarters&quot;&lt;/p&gt;&#xA;" OwnerUserId="9210" LastActivityDate="2010-12-17T00:43:51.530" />
  <row Id="27180" PostTypeId="2" ParentId="27164" CreationDate="2010-12-17T01:00:46.197" Score="2" ViewCount="" Body="&lt;p&gt;Well, I recently went through a situation just like yours. All &quot;do's&quot; listed here worked very well for me, plus one big &quot;don't&quot;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;b&gt;Don't me a menace to the people on the team. You are there to make them work better and show their values, not yours.&lt;/b&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As the leader and senior developer on a team, usually we human beings try to accomplish too much, and not delegate very well. Trust them. Even if they make mistakes. Specially if they make mistakes. This is part of their personal grown.&lt;/p&gt;&#xA;" OwnerUserId="9506" LastActivityDate="2010-12-17T01:00:46.197" CommentCount="1" />
  <row Id="27181" PostTypeId="2" ParentId="27123" CreationDate="2010-12-17T01:09:26.317" Score="1" ViewCount="" Body="&lt;p&gt;Well, I did some work on embedded systems through last years using C and &lt;a href=&quot;http://www.lua.org/&quot; rel=&quot;nofollow&quot;&gt;Lua&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check out &lt;a href=&quot;http://www.eluaproject.net&quot; rel=&quot;nofollow&quot;&gt;eLua&lt;/a&gt; as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- &#xA;EDIT: Here in Brazil we do have a &quot;new technology&quot; for Digital TV's, called &lt;a href=&quot;http://www.ginga.org.br/index_en.html&quot; rel=&quot;nofollow&quot;&gt;Ginga&lt;/a&gt;. It's really a standard, but in this standard the &lt;a href=&quot;http://www.lua.org/&quot; rel=&quot;nofollow&quot;&gt;Lua&lt;/a&gt; language is used as one source of embedded language. The other one is Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess we can cite Java as well, for some special systems like &lt;a href=&quot;http://en.wikipedia.org/wiki/Java_Card&quot; rel=&quot;nofollow&quot;&gt;JavaCards&lt;/a&gt;. If those are not embedded systems, than I don't know what embedded means... :)&lt;/p&gt;&#xA;" OwnerUserId="9506" LastActivityDate="2010-12-17T01:09:26.317" />
  <row Id="27182" PostTypeId="2" ParentId="26970" CreationDate="2010-12-17T01:12:26.627" Score="0" ViewCount="" Body="&lt;p&gt;It would say to me that you don't reinvent the wheel, that you work smarter rather than harder, and that you accept an existing excellent &lt;em&gt;free&lt;/em&gt; content management system to show off your other work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of my colleagues (who shall remain nameless) didn't get this.  It wasn't a website, but he wrote a Matlab script to check the math on his income taxes.  And you know what?  He did it wrong, and had to pay penalties/interest when the IRS caught the error.  (Why, why, &lt;em&gt;why?&lt;/em&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes the benefits to using someone else's solution as opposed to rolling your own far outweigh the disadvantages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The exception to this would be if part of the portfolio you wanted to show off was a CMS.  Then you might want to actually use it to implement your site.&lt;/p&gt;&#xA;" OwnerUserId="5493" LastActivityDate="2010-12-17T01:12:26.627" />
  <row Id="27183" PostTypeId="2" ParentId="26143" CreationDate="2010-12-17T01:13:03.537" Score="0" ViewCount="" Body="&lt;p&gt;I only have an opinion on how to find what are called &quot;bottlenecks&quot;. For on-going monitoring of performance, and for finding memory leaks, etc., I have no opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For finding performance problems, or, more positively, opportunities for optimization, profilers as a class differ widely. &lt;a href=&quot;http://stackoverflow.com/questions/4387895/if-profiler-is-not-the-answer-what-other-choices-do-we-have/4390868#4390868&quot;&gt;Here's a discussion of the issues.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since there is so much general confusion about what profilers should do, you're not going to get much agreement out of 100 programmers on how it should be done. The method I use is not a tool, but a technique, called &lt;a href=&quot;http://stackoverflow.com/questions/375913/what-can-i-use-to-profile-c-code-in-linux/378024#378024&quot;&gt;random-pausing&lt;/a&gt;. Whether people find it acceptable depends on whether they've tried it, and few have.&#xA;&lt;a href=&quot;http://stackoverflow.com/questions/2473666/tips-for-optimizing-c-net-programs/2474118#2474118&quot;&gt;Here&lt;/a&gt; &lt;a href=&quot;http://stackoverflow.com/questions/2624667/whats-a-very-easy-c-profiler-vc/2624725#2624725&quot;&gt;are&lt;/a&gt; a &lt;a href=&quot;http://stackoverflow.com/questions/266373/one-could-use-a-profiler-but-why-not-just-halt-the-program/317160#317160&quot;&gt;few&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a &lt;a href=&quot;http://stackoverflow.com/questions/926266/performance-optimization-strategies-of-last-resort/927773#927773&quot;&gt;blow-by-blow example&lt;/a&gt;, in which a speedup of 43 times was done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It works better on large systems. Or rather, large systems tend to be riddled with performance problems, which it easily finds.&#xA;The reason, in my experience, is that as software grows, both logic bugs and performance bugs creep into it.&#xA;Logic bugs demand to be fixed, but performance bugs don't, so they gradually accumulate and pile on top of each other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, what limits the speedup you can get is not technical, but personal.&#xA;When a performance bug is found and roughly quantified, it is up to the person who &quot;owns&quot; the code to perform the fix.&#xA;If they are not willing to, for example if the fix runs against a strongly-held idea, or if there is a sense of &lt;em&gt;criticism&lt;/em&gt;, then the process can stall.&#xA;In such a group, leadership skills make all the difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are certain categories of problems which it will not find, namely those in which the reason for the software being in some particular state is difficult or impossible to determine. This can happen in highly asynchronous systems where to make sense of it one has to track messages across processes. When I have to tune such a system I resort to more laborious methods which nevertheless work. For most problems, random-pausing does the trick.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So it's a good tool to have in your &quot;kit&quot;, and it's &lt;em&gt;free&lt;/em&gt; (if that's any motivation :)&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-12-17T01:38:17.587" LastActivityDate="2010-12-17T01:38:17.587" CommentCount="2" />
  <row Id="27184" PostTypeId="2" ParentId="27173" CreationDate="2010-12-17T01:15:33.143" Score="1" ViewCount="" Body="&lt;p&gt;You would probably want to check the rules for internships at a specific company to figure out if you can use the situation to your advantage in that way.  I would think a company would love to hire you as an intern when they know they'll get a chance to hire you full-time without you taking another break.  Most student interns at my university did not work while they were interns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could also look for a 6-month contract in your field (full-time job).  Just put &quot;B.S. Computer Science, XX University, expected June, 2011&quot; (adjust to fit your specific details, of course).  You might even find a contract-to-hire position with a good company.  An internship would probably be better, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't take this too seriously.  As soon as you have the paper in your hands, no one will care about you missing a deadline and you'll be able to forget all about it and move on.  So just enjoy the next six months and make the most of them.  As long as you use the time well, it will look good to an employer.  In the meantime, just explain the situation casually if it comes up, and try to otherwise give the impression of being on top of things (show up early, take notes, etc.) to offset any concerns about you being chronically disorganized.&lt;/p&gt;&#xA;" OwnerUserId="8888" LastActivityDate="2010-12-17T01:15:33.143" />
  <row Id="27185" PostTypeId="2" ParentId="27173" CreationDate="2010-12-17T01:17:59.603" Score="7" ViewCount="" Body="&lt;p&gt;Short answer: nobody cares.  Your GPA matters more than how long it took to finish, and neither of those matters as much as the fact that YOU FINISHED.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What does matter is what you did while you were in school.  Internships, research projects, open-source work, even crappy little applications that nobody but you would possibly care about make a big statement when you're trying to get that first job.  A good employer wants somebody who cares about code.  &lt;/p&gt;&#xA;" OwnerUserId="9475" LastActivityDate="2010-12-17T01:17:59.603" CommentCount="4" />
  <row Id="27186" PostTypeId="2" ParentId="27161" CreationDate="2010-12-17T01:26:20.377" Score="2" ViewCount="" Body="&lt;p&gt;Theory isn't only learned in ivory towers.  Read books, spend time hanging out with great coders, take on projects where you have to do more than implement stuff. Follow the dev lists for your favorite programming language, kernel, whatever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have no degree at all, but I'm not half bad when it comes to theory.  I learned some of it intuitively from experience coding different kinds of things in different languages, but most of it came from just talking to people smarter and/or more knowledgeable than myself every chance I get.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-17T01:26:20.377" />
  <row Id="27187" PostTypeId="2" ParentId="27078" CreationDate="2010-12-17T01:44:31.330" Score="1" ViewCount="" Body="&lt;p&gt;Go to a forum of your target audience (hopefully, something like that exists for your target crowd), be a member, socialize with other members, and tell them about the &quot;cool&quot; app/game you just made. Most likely, the people there will try it out and tell you how they find your app to be. The amount of people you'll get might be small in comparison to what the other answers here suggested, but that's something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be honest, I find this more effective than plain advertising because people tend to use apps made/used by people they're familiar with.&lt;/p&gt;&#xA;" OwnerUserId="500" LastEditorUserId="500" LastEditorDisplayName="" LastEditDate="2010-12-17T01:51:12.833" LastActivityDate="2010-12-17T01:51:12.833" />
  <row Id="27189" PostTypeId="1" AcceptedAnswerId="27201" CreationDate="2010-12-17T01:51:24.627" Score="4" ViewCount="531" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/25569/is-haskell-worth-learning&quot;&gt;Is Haskell worth learning?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I just messed with it a bit, and it seemed, not bad, but different. What is it used for? What fields? What apps are made with it, and why?&lt;/p&gt;&#xA;" OwnerUserId="8641" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-12-17T04:01:08.590" LastActivityDate="2010-12-17T14:11:14.123" ClosedDate="2010-12-17T22:19:11.857" Title="Why use Haskell?" Tags="&lt;programming-languages&gt;&lt;haskell&gt;" AnswerCount="3" CommentCount="5" />
  <row Id="27190" PostTypeId="2" ParentId="27123" CreationDate="2010-12-17T01:51:27.123" Score="1" ViewCount="" Body="&lt;p&gt;there is also VHDL&lt;/p&gt;&#xA;" OwnerUserId="10355" LastActivityDate="2010-12-17T01:51:27.123" CommentCount="4" />
  <row Id="27191" PostTypeId="2" ParentId="26143" CreationDate="2010-12-17T01:54:45.263" Score="0" ViewCount="" Body="&lt;p&gt;JetBrains (maker of Resharper) offer some profiling and coverage tools in the form of &lt;a href=&quot;http://www.jetbrains.com/profiler/&quot; rel=&quot;nofollow&quot;&gt;dotTrace&lt;/a&gt; and &lt;a href=&quot;http://www.jetbrains.com/dotcover/&quot; rel=&quot;nofollow&quot;&gt;dotCover&lt;/a&gt;. They both integrate into VS, and have been useful to me.&lt;/p&gt;&#xA;" OwnerUserId="8187" LastActivityDate="2010-12-17T01:54:45.263" />
  <row Id="27193" PostTypeId="2" ParentId="27083" CreationDate="2010-12-17T01:59:42.247" Score="2" ViewCount="" Body="&lt;p&gt;My experience from the last 23 years around San Francisco and Silicon Valley has been:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Very few recruiters have any idea about technology, or how to make a really good fit between you and an employer. They mostly look for buzzword matches between job listings and resumes.&lt;/li&gt;&#xA;&lt;li&gt;Despite that, they're a great way to get in the door lots of places that would pay no attention if you sent your resume directly.&lt;/li&gt;&#xA;&lt;li&gt;Most tech job openings are not advertised - maybe 80%. You can only find out about them through recruiters.&lt;/li&gt;&#xA;&lt;li&gt;It's normal to give your resume to many headhunters around here. In fact, if you post it to sites like DICE or Monster, they'll get it anyway.&lt;/li&gt;&#xA;&lt;li&gt;Companies often give the same opening to several headhunters. You need to insist they tell you who the company is before presenting your resume, because it can look bad if multiple recruiters submit you for the same opening.&lt;/li&gt;&#xA;&lt;li&gt;The very best recruiters usually wind up getting hired away from the job shops to work in-house for places like Google or Apple.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've found posting my resume to DICE, and a synopsis to LinkedIn, to be great ways to get recruiters to contact me with interesting opportunities. If you use DICE and you're actively looking, you want to make a little change to your resume every few weeks to get recruiters looking at it again. Some job shops will download your resume and retain it in their databases; I've gotten phone calls up to three years after deactivating my resume on DICE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This world changes frequently, and old wisdom rapidly becomes out of date. About three years ago, a friend of mine wound up back in the job market after many years, and tried to do the 1990-style approach of sending his resume to one recruiter who would take a personal interest in getting him employed. After about six months of nothing, he finally took my suggestion to post his resume on DICE. He started a new job within two weeks and was having to fend off recruiters who kept calling him for other positions.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-17T01:59:42.247" />
  <row Id="27194" PostTypeId="2" ParentId="27123" CreationDate="2010-12-17T02:01:41.143" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Ada_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Ada&lt;/a&gt; is still used in safety/mission-critical systems, as it still offers relatively unparalleled safety features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was compulsory to use Ada up until the late nineties within the DoD, and some other areas, but is no longer, so is not as heavily used as it once was.  But it can still be found in highly critical uses, avionics, nuclear power, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The modern versions have object orientation and good support for parallel processing, so is entirely useful still.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-17T02:01:41.143" CommentCount="2" />
  <row Id="27195" PostTypeId="1" CreationDate="2010-12-17T02:12:26.280" Score="15" ViewCount="698" Body="&lt;p&gt;Currently, I'm an Emacs user, (I'm used to the commands, and I work in a bunch of different languages day-to-day, one of which is Common Lisp, so it's the natural choice), but a &lt;a href=&quot;http://vimeo.com/16069687&quot; rel=&quot;nofollow&quot;&gt;recent-ish talk by Steve Yegge&lt;/a&gt; has gotten me thinking that an online editor/IDE (if done well) might provide a lot of benefits. Both in terms of tracking large code-bases, and in terms of supporting editing at the same highly-interactive level for many languages. The &lt;a href=&quot;https://bespin.mozillalabs.com//&quot; rel=&quot;nofollow&quot;&gt;Bespin&lt;/a&gt; &lt;a href=&quot;https://bespin.mozillalabs.com/docs/userguide/server_roadmap.html&quot; rel=&quot;nofollow&quot;&gt;roadmap&lt;/a&gt; makes it sound like they're going in the same direction and there are also web-based implementations of both &lt;a href=&quot;http://robrohan.com/projects/9ne/&quot; rel=&quot;nofollow&quot;&gt;Emacs&lt;/a&gt; and &lt;a href=&quot;http://gpl.internetconnection.net/vi/&quot; rel=&quot;nofollow&quot;&gt;vi&lt;/a&gt; (none of which I have any experience with).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is twofold. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, are any of these editors ready for prime-time? Meaning, are they at least on-par with desktop based editors? If not, do they reliably bring any of they benefits that a server-based implementation could support (things like fully combined VCS/editor/server-side preview/storage, real IDE-level support for many disparate languages, support for team coding/remote pair programming, etc.)? I'm more interested in experience than speculation here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, where do you see the concept going? Are editors eventually evolving into services, are they staying on the desktop, or will we get to a hybrid system that supports local editing but provide certain, cluster-friendly pieces through a network connection? Feel free to speculate on this part.&lt;/p&gt;&#xA;" OwnerUserId="2592" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-17T12:56:52.077" LastActivityDate="2011-03-04T17:03:51.347" Title="What are your thoughts on online editors?" Tags="&lt;ide&gt;&lt;future&gt;&lt;text-editor&gt;" AnswerCount="14" CommentCount="6" FavoriteCount="4" />
  <row Id="27196" PostTypeId="2" ParentId="27022" CreationDate="2010-12-17T02:17:37.907" Score="1" ViewCount="" Body="&lt;p&gt;Maybe not the answer you're looking for since a whiteboard is somewhat of an investment, but I tend to use a college notebook for everything for a few reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;With a notepad, there's a record of everything you've written, sorted in chronological order -- all your thoughts are documented for you to go back to.&lt;/li&gt;&#xA;&lt;li&gt;Unless you're in a bigger team, the text is usually big enough for 4-5 people sitting at a table to read.&lt;/li&gt;&#xA;&lt;li&gt;They're readily available at more stores than whiteboards are.&lt;/li&gt;&#xA;&lt;li&gt;They're lined, so you're inclined to keep things more neat.&lt;/li&gt;&#xA;&lt;li&gt;Something about holding a pencil to paper gets my head going (but that's probably just me).&lt;/li&gt;&#xA;&lt;li&gt;I love the semi-erased whiteboard look in the background of the new site design, but it gets really distracting when I see it on my own boards.&lt;/li&gt;&#xA;&lt;li&gt;Notepads don't smell weird.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;We bought whiteboards once... ended up asking the same question you did, until we just went back to pen/pencil/paper. Schedules and such go on Outlook or a normal gloss-paper wall calendar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry, don't have any pictures of my notebook to share off-hand :( Will post later if I can find one.&lt;/p&gt;&#xA;" OwnerUserId="6385" LastEditorUserId="6385" LastEditorDisplayName="" LastEditDate="2010-12-17T02:26:24.190" LastActivityDate="2010-12-17T02:26:24.190" />
  <row Id="27197" PostTypeId="2" ParentId="26970" CreationDate="2010-12-17T02:34:12.220" Score="0" ViewCount="" Body="&lt;p&gt;What you are asking is this:&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Would a painter hang another artist's painting in his home?&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Depends on how the personality of the painter is wished to be presented. Im not a good programmer, but I try to develop my own website, cause its so cool and i can make them really personal in a way that nothing resembles it by far far away. For me this personality thing is important, while i do appreciate other solutions, too. So the question is: would you want to express your style as a programmer with your personal website?&lt;/p&gt;&#xA;" OwnerUserId="9083" LastEditorUserId="9083" LastEditorDisplayName="" LastEditDate="2010-12-17T02:49:15.300" LastActivityDate="2010-12-17T02:49:15.300" CommentCount="2" />
  <row Id="27198" PostTypeId="2" ParentId="27145" CreationDate="2010-12-17T02:45:33.307" Score="1" ViewCount="" Body="&lt;p&gt;If you are interested in scripting style languages, I would suggest learning Python and/or Ruby instead. I first learned Perl several years ago. The main thing I learned from it is regular expressions. Most other languages that have built in regex are derivatives of the Perl implementation. But beyond that, I didn't use Perl for all that much. The main criticism of Perl is that some consider it a 'write-only' language. It is very hard to come back to old code and easily understand what was done. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's my perception that more progress is being made with Python, and Ruby (like Rails), than there is with Perl. It's always good to stretch your brain an learn a new language, but Perl probably wouldn't be a top suggestion.&lt;/p&gt;&#xA;" OwnerUserId="1197" LastActivityDate="2010-12-17T02:45:33.307" CommentCount="5" />
  <row Id="27199" PostTypeId="2" ParentId="27147" CreationDate="2010-12-17T02:45:47.717" Score="7" ViewCount="" Body="&lt;p&gt;source code control is utterly useless for independent developers, because as we all know:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;independent developers never make mistakes&lt;/li&gt;&#xA;&lt;li&gt;independent developers never go off on revisions that don't work out&lt;/li&gt;&#xA;&lt;li&gt;independent developers never have more than one version so they have no use for branches&lt;/li&gt;&#xA;&lt;li&gt;independent developers never care about what they changed yesterday or last week&lt;/li&gt;&#xA;&lt;li&gt;independent developers never, ever need backups&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Call me a &quot;dependent developer&quot;: Mercurial repositories clone easily between my desktop, laptops, USB backup drives, and bitbucket.org. I've grown dependent, and I like it that way!&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-12-17T07:47:14.360" LastActivityDate="2010-12-17T07:47:14.360" CommentCount="1" />
  <row Id="27200" PostTypeId="2" ParentId="27164" CreationDate="2010-12-17T02:48:19.743" Score="5" ViewCount="" Body="&lt;p&gt;your first day there, kick somebody's @$$, or become somebody's ... no wait, that's prison.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;show respect to earn respect, listen intently, and be yourself - but most of all, lead by being a good example&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-17T02:48:19.743" CommentCount="1" />
  <row Id="27201" PostTypeId="2" ParentId="27189" CreationDate="2010-12-17T02:53:42.860" Score="10" ViewCount="" Body="&lt;p&gt;The guys at &lt;a href=&quot;http://corp.galois.com/&quot; rel=&quot;nofollow&quot;&gt;Galois Inc&lt;/a&gt; use it for high performance, provably correct software development. They mostly do contract work for the government and using haskell gives them an edge most other shops can't claim.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-17T02:53:42.860" CommentCount="2" />
  <row Id="27202" PostTypeId="2" ParentId="27195" CreationDate="2010-12-17T02:56:42.903" Score="2" ViewCount="" Body="&lt;p&gt;Google Wave could have done that, doing online collaborative editing that is, but sadly it is soon to be rolled back.  Apache has taken Wave under its wing, hope it gets a new life from there.&lt;/p&gt;&#xA;" OwnerUserId="7706" LastActivityDate="2010-12-17T02:56:42.903" />
  <row Id="27203" PostTypeId="2" ParentId="27161" CreationDate="2010-12-17T02:57:55.693" Score="24" ViewCount="" Body="&lt;p&gt;dood, &lt;em&gt;chillax&lt;/em&gt;. you just graduated, for cryin' out loud!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if you want to feel really intimidated, &lt;a href=&quot;http://cstheory.stackexchange.com/&quot;&gt;go here&lt;/a&gt;&lt;br&gt;&#xA;if you want to feel really smart, &lt;a href=&quot;http://superuser.com/&quot;&gt;go here&lt;/a&gt;&lt;br&gt;&#xA;if you want to feel pity for those less fortunate, &lt;a href=&quot;http://serverfault.com/&quot;&gt;go here&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;college cannot possibly teach you everything, but you've got a good foundation, you know how to teach yourself, you're eager to learn, and you have an &lt;a href=&quot;http://google.com&quot; rel=&quot;nofollow&quot;&gt;Internet connection&lt;/a&gt;, so you're all set. Stay calm, make patient steady progress, and don't sweat it. Before you know it, you will be &lt;a href=&quot;http://stackoverflow.com/users/22656/jon-skeet&quot;&gt;the guru&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-17T02:57:55.693" CommentCount="2" />
  <row Id="27204" PostTypeId="2" ParentId="27164" CreationDate="2010-12-17T02:58:30.960" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Know what your team's tasks actually involve and react accordingly.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You probably lead a team of developers with diverse skills — two PHP developers, a database designer, a UI designer, some HTML developers. Get to know what's involved in their day-to-day tasks and build expectations based on what they are able to reasonably accomplish.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps your database developer reasonably needs X time to complete what amounts to 20 lines of code because the design phase scales differently than it does for your PHP developers, who can pump out 500 lines in the same time.&lt;/p&gt;&#xA;" OwnerUserId="9492" LastActivityDate="2010-12-17T02:58:30.960" />
  <row Id="27205" PostTypeId="2" ParentId="27195" CreationDate="2010-12-17T02:59:03.040" Score="36" ViewCount="" Body="&lt;p&gt;I had some thoughts on online editors, but my internet connection is down so I can't remember them.&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-17T19:02:18.410" LastActivityDate="2010-12-17T19:02:18.410" CommentCount="7" />
  <row Id="27206" PostTypeId="2" ParentId="27195" CreationDate="2010-12-17T02:59:37.550" Score="4" ViewCount="" Body="&lt;p&gt;I don't know of one that's on par with emacs yet.  There are several that could replace nano.  None have all the features you seem to be looking for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I think that online editing is going to get its period of &quot;ooh, shiny!&quot;, then fall out of use for everyone except folks with micromanaging bosses :P&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't &lt;em&gt;imagine&lt;/em&gt; working efficiently in an online editor.  I work without internet access much of the time.  I don't want the temptation to let me only copy of something reside on the server.  I don't want to have to use the same environment as everyone I work with (&lt;em&gt;somebody&lt;/em&gt; would inevitably be very uncomfortable in it).  I don't want to have to code with the knowledge that others may be watching, trying to understand -- I tend to attack multiple parts of a task in parallel, and I know that others can't always follow it.  With an online, collaborative editor I would tend to approach problems more clearly, but less efficiently.  I can't imagine that a development environment run over my internet connection could feel responsive enough when I am accustomed to an environment run on my local machine.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-17T02:59:37.550" CommentCount="1" />
  <row Id="27207" PostTypeId="1" AcceptedAnswerId="27210" CreationDate="2010-12-17T03:29:00.630" Score="36" ViewCount="3986" Body="&lt;p&gt;Python first appeared in 1991, but it was somewhat unknown until 2004, if the TIOBE rankings quantify anything meaningful.  (http://www.tiobe.com/index.php/paperinfo/tpci/Python.html)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What happened?  What caused the interest in this 13 year old language to go through the roof?  Is there a reason that Python wasn't considered a real competitor to Perl in its first decade of existence?  Is there a reason that Python didn't continue in relative obscurity for another ten years?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally think that Python is a very nice language, and I'm glad that I'm not the only one.  But it doesn't have corporate backing or a killer feature that would explain a sudden rise to relevance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone know the story?&lt;/p&gt;&#xA;" OwnerUserId="2329" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-12-17T13:24:47.563" LastActivityDate="2011-04-17T08:47:55.977" Title="Why was Python's popularity so sudden?" Tags="&lt;programming-languages&gt;&lt;python&gt;&lt;trends&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="9" />
  <row Id="27208" PostTypeId="2" ParentId="27164" CreationDate="2010-12-17T03:48:57.880" Score="14" ViewCount="" Body="&lt;p&gt;Lots of good answers already. I tried to do all these when I was a team lead.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Treat team with respect&lt;/li&gt;&#xA;&lt;li&gt;Delegate to strengths, but also give tasks that may help team members improve on weaknesses&lt;/li&gt;&#xA;&lt;li&gt;Protect the team from interruptions or distractions&lt;/li&gt;&#xA;&lt;li&gt;Be willing to educate&lt;/li&gt;&#xA;&lt;li&gt;Be willing to listen&lt;/li&gt;&#xA;&lt;li&gt;Remove roadblocks and stay out of the team's way, but also be approachable when people need help&lt;/li&gt;&#xA;&lt;li&gt;Be tactfully honest in assessing work. Some people do not respond well to even constructive criticism, but serious developers (or workers in any profession really) will want to know what to do to get better&lt;/li&gt;&#xA;&lt;li&gt;Respect the team's personal time and allow for work/life balance (telecommuting, getting out an hour early to pick up kids or make a doctor's appointment), and when times dictate overtime, be prepared to reward the team for the sacrifice. Sometimes my company would authorize me buying lunch to celebrate a milestone, but when it didn't (cheap bastards!) I did something for the team on my dollar. If the team gave extra to help make a project successful, then it was the least I could do. It doesn't have to be extravagant or expensive, but a little appreciation helps; and lack of it can sap morale.&lt;/li&gt;&#xA;&lt;li&gt;Work to be both a technical and subject matter expert. You don't have to do this, but in my experience a leader is more respected when the team members could both appreciate his/her knowledge and depend on him/her to help out when needed.&lt;/li&gt;&#xA;&lt;li&gt;Do what it takes to make the team members more successful. That means educating and removing roadblocks, mentioned above, but also pitching in with documentation that the team can use when your brain isn't around for them to use, and writing some of the specs. Great specs will make developers more efficient and self sufficient, fill in knowledge gaps, and  help them meet requirements with a minimum of later rework. Do this in conjunction with getting them to work directly with the client.&lt;/li&gt;&#xA;&lt;li&gt;Build relationships between the team and the clients. It will help with filling in the gaps on missed requirements and open doors for other feedback you might not normally get. &lt;/li&gt;&#xA;&lt;li&gt;Accept that mistakes are a part of learning&lt;/li&gt;&#xA;&lt;li&gt;Be ready to act to remove a team member that is a detriment to the team's cohesion or productivity. This is sometimes hard to do, but you will encounter people that lack the work ethic, productivity, or competence of the other team members. You can be patient to a point, but there comes a time when you may have to work with management to make a change. Truly poor team members will cost the team more time and effort. Trying too hard to be Mr. Fair and Nice can work against you if the better team members feel the underperformer is getting special treatment or is being compensated the same for lesser work.&lt;/li&gt;&#xA;&lt;li&gt;Be transparent. Communicate regularly. If you get information about the company or a recent layoff, or a merger, share it with them. People do respect honesty even though sometimes in this nutty world the opposite seems true. If you can't be honest with your subordinates, then you don't want to be a team lead, you want to be an executive.&lt;/li&gt;&#xA;&lt;li&gt;Be quick to share credit when good things happen&lt;/li&gt;&#xA;&lt;li&gt;Be prepared to take responsibility when bad things happen&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7892" LastEditorUserId="7892" LastEditorDisplayName="" LastEditDate="2010-12-30T05:48:11.207" LastActivityDate="2010-12-30T05:48:11.207" />
  <row Id="27209" PostTypeId="2" ParentId="27164" CreationDate="2010-12-17T03:50:07.163" Score="1" ViewCount="" Body="&lt;p&gt;Books on leadership tend to point to a single overarching quality of leaders:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;They do what they say they're going to do.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's more to it than that, but basically it means people consider someone a leader when that person says, &quot;we're going to do X&quot;, and X is a challenge, and then the team or organization, or whatever, ends up pulling it off.  If you do this repeatedly, people will consider you a leader.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-12-17T03:50:07.163" />
  <row Id="27210" PostTypeId="2" ParentId="27207" CreationDate="2010-12-17T03:57:13.257" Score="40" ViewCount="" Body="&lt;h1&gt;Google&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Google started using Python heavily and reinvesting in development of the language. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;But it doesn't have corporate backing or a killer feature that would explain a sudden rise to relevance.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Google is the corporate backing. As for features Python is an OOP interpreted cross platform &lt;em&gt;fast&lt;/em&gt; language. What's not to like? It's another &lt;em&gt;excellent&lt;/em&gt; tool in the toolbox.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-17T04:05:15.713" LastActivityDate="2010-12-17T04:05:15.713" CommentCount="5" />
  <row Id="27211" PostTypeId="2" ParentId="27083" CreationDate="2010-12-17T04:00:48.340" Score="0" ViewCount="" Body="&lt;p&gt;I think I agree most of the posted answers so far. My experience is that recruiters are all, of course, looking for the easy money. But they vary greatly in quality and attention to details. Some of the better ones make an effort to match you to a good fit opportunity, but the ones that come out of a cracker jack box just don't care (as someone said before, they're just matching up keywords).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, some may work for agencies that have relationships with companies and can get you opportunities you could never get from the classifieds, online sites, etc. In these cases, if they know you, they can be the human conduit that gets you in the door. They have spent time building contacts with managers and HR departments and can capitalize on that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So use them. They're most certainly going to use you.&lt;/p&gt;&#xA;" OwnerUserId="7892" LastActivityDate="2010-12-17T04:00:48.340" />
  <row Id="27212" PostTypeId="2" ParentId="27207" CreationDate="2010-12-17T04:04:13.377" Score="2" ViewCount="" Body="&lt;p&gt;Google was the reason. Only a handful of languages are mandated at Google: C++, Java, Python, Javascript, PHP?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Corporate backing is very important to a language's success. Examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;C++: AT&amp;amp;T Bell Labs&lt;/li&gt;&#xA;&lt;li&gt;Java: Sun&lt;/li&gt;&#xA;&lt;li&gt;C#: Microsoft&lt;/li&gt;&#xA;&lt;li&gt;Python: Google&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="42" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-17T04:06:35.540" LastActivityDate="2010-12-17T04:06:35.540" CommentCount="4" />
  <row Id="27213" PostTypeId="2" ParentId="27164" CreationDate="2010-12-17T04:04:42.503" Score="2" ViewCount="" Body="&lt;p&gt;Here are some actionable things that worked for me:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Do very casual &amp;amp; relaxed one-on-one meetings with everyone in the team (something like lunch, or just drop by their cubicle, go for a walk around the building, etc).  Listen more, talk less, ask questions.  Find out their strengths, desires, character traits, and &quot;soft spots&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Ask for their help.  Everyone likes to feel helpful and knowledgeable in front of their team lead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Empower your people by asking their opinions, complementing frequently but for good reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) Explain your decisions. Don't give the company line w/o in a way of a non-commital talk like C-execs do.  Be straightforward.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) Once in a role, ACTIVELY and EVERY DAY remove obstacles from your teammates&lt;/p&gt;&#xA;&#xA;&lt;p&gt;6) Address non-performers right-away.  If something is bothering them, find a way to fix it.  If they're just lazy/angry/stupid - get rid of them through your mgmt. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;7) And lastly, PREPARE your people ahead of time for changes that are about to hit the team, their work, their requirements, etc.  They need to work in a predictable environment.&lt;/p&gt;&#xA;" OwnerUserId="9996" LastActivityDate="2010-12-17T04:04:42.503" />
  <row Id="27214" PostTypeId="2" ParentId="27195" CreationDate="2010-12-17T04:06:17.573" Score="1" ViewCount="" Body="&lt;p&gt;I'm really interesting with the idea when I first saw it. I'm using &lt;a href=&quot;http://codepad.org/&quot; rel=&quot;nofollow&quot;&gt;codepad&lt;/a&gt;. It saves me lots of time when &lt;strong&gt;&lt;em&gt;experiencing&lt;/em&gt;&lt;/strong&gt; some nifty feature of new languages (such as test how array works) for learning purpose. And also, makes it easier to &lt;strong&gt;&lt;em&gt;share code&lt;/em&gt;&lt;/strong&gt; among developer community (lots of stackoverflow question includes a link to codepad). The best thing is that I &lt;strong&gt;don't need to install any compiler/server&lt;/strong&gt; to see that my php/java code work!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the bad is that I haven't seen any of those online editors support storage (writing/reading files for example).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;About the quesions:&lt;/strong&gt; I haven't seen any, but your idea is good. I think all of those are possible, except storage. May it need some other storage service, because allowing save/executing files on the process server is risky. And my company probaly won't trust the code for a public editor service, too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the future, may we developers don't need to install anything on our computer, and just use a service (within the company) to compile &amp;amp; run it. It will save lots of time for us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In spite of the fact that it's still a dream now.&lt;/p&gt;&#xA;" OwnerUserId="9202" LastEditorUserId="9202" LastEditorDisplayName="" LastEditDate="2010-12-17T04:11:20.537" LastActivityDate="2010-12-17T04:11:20.537" />
  <row Id="27215" PostTypeId="1" CreationDate="2010-12-17T04:19:57.437" Score="5" ViewCount="186" Body="&lt;p&gt;I just received my ChromeOS Notebook and have been looking around for an in-browser IDE/Text editor. I was wondering if anyone has come across any that they liked / showed potential.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to keep answers and comments away from saying things like &quot;they are all useless&quot; or &quot;what's the point&quot; or &quot;how are you going to use it when your internet goes down?&quot; Rather, I'd like to create an awesome list of editors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was going to make this a community wiki but I don't see the option... I guess I don't have enough reputation.&lt;/p&gt;&#xA;" OwnerUserId="10369" LastActivityDate="2010-12-17T07:40:47.783" Title="In-Browser code editors" Tags="&lt;ide&gt;&lt;text-editor&gt;&lt;browser&gt;&lt;html5&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="3" />
  <row Id="27216" PostTypeId="2" ParentId="27215" CreationDate="2010-12-17T04:22:01.897" Score="2" ViewCount="" Body="&lt;p&gt;I'll start with:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;https://bespin.mozillalabs.com/&quot; rel=&quot;nofollow&quot;&gt;Mozilla Bespin&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://coderun.com/ide/&quot; rel=&quot;nofollow&quot;&gt;CodeRun&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10369" LastActivityDate="2010-12-17T04:22:01.897" />
  <row Id="27217" PostTypeId="2" ParentId="27215" CreationDate="2010-12-17T04:22:06.723" Score="-1" ViewCount="" Body="&lt;p&gt;A similar on going post. &lt;a href=&quot;http://programmers.stackexchange.com/questions/27195/what-are-your-thoughts-on-online-editors&quot;&gt;Here&lt;/a&gt;&#xA;Shouldn't it be merged ?&lt;/p&gt;&#xA;" OwnerUserId="9544" LastActivityDate="2010-12-17T04:22:06.723" CommentCount="1" />
  <row Id="27218" PostTypeId="2" ParentId="27189" CreationDate="2010-12-17T04:22:47.540" Score="1" ViewCount="" Body="&lt;p&gt;It's being used (client-side, even) for iPhone games: &lt;a href=&quot;http://ipwnstudios.com/bloodknight/&quot; rel=&quot;nofollow&quot;&gt;http://ipwnstudios.com/bloodknight/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They use a C++ library to handle rendering of animations since Haskell lazy evaluation is practically random, making it unsuitable for time-dependent execution.&lt;/p&gt;&#xA;" OwnerUserId="1217" LastActivityDate="2010-12-17T04:22:47.540" />
  <row Id="27219" PostTypeId="2" ParentId="27145" CreationDate="2010-12-17T04:24:45.807" Score="2" ViewCount="" Body="&lt;p&gt;In answer to the question in the headline: yes!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you pointed out, focusing on Perl 5 is by no means a waste of your time, since the vast majority of examples, tutorials, and applications in Perl will be from the 5 branch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This said, you should certainly keep up with the Perl 6 project and its progress.  I took some time to learn Python 3 before it's first release, just so I understood what changes were being made and why.  This helped me when migrating from the 2.x codebase to 3.x.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't invest too much time learning the ins/outs of Perl 6; a deep understanding of Perl 5 will serve you better for the time being.  But once it's been released (whenever that bloody is), a basic understanding of Perl 6 will help you keep moving forward.&lt;/p&gt;&#xA;" OwnerUserId="2294" LastActivityDate="2010-12-17T04:24:45.807" />
  <row Id="27220" PostTypeId="2" ParentId="27145" CreationDate="2010-12-17T05:07:56.677" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes to Perl 5&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, go learn Ruby and even Python, but Perl is different.  And intelligent beyond reason.  Perl is one of those languages that you can learn things you never wanted and be glad you did and yet will have to re-read the Camel book every couple of years just so you don't fully mentally purge your perlisms.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perl is of alien syntax, even to the most seasoned professionals.  Personally, I believe you will expand your horizons with Perl.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perl 5 is what I consider to be Perl 1.5.  Perl 6 is what I consider Perl 2.0, maybe should even be named something different completely, so &lt;strong&gt;yes&lt;/strong&gt; both 5 and 6 are worth learning in their own right and for their own merits.  Disclaimer=I'm still struggling with Perl6 myself...&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-12-17T05:07:56.677" />
  <row Id="27221" PostTypeId="2" ParentId="27091" CreationDate="2010-12-17T05:19:25.993" Score="1" ViewCount="" Body="&lt;p&gt;The only problem is you may not want to get back anymore, otherwise it should not be harder than you learning programming for the first time.&lt;/p&gt;&#xA;" OwnerUserId="10230" LastActivityDate="2010-12-17T05:19:25.993" />
  <row Id="27222" PostTypeId="1" CreationDate="2010-12-17T05:36:04.707" Score="3" ViewCount="278" Body="&lt;p&gt;Hi everyone,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been playing around with Perl a bit lately, and I found it was possible to write awesomely short scripts to do common and not so common tasks. One thing I like a lot about it is that I don't need to write the script in a file and then run the file. I can write the short script directly at command prompt, like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$ perl -pi.bak -e &quot;s/this/that/g;s/these/those/g&quot; test.txt&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Which replaces all &quot;this&quot; and &quot;these&quot; occurrences by &quot;that&quot; and &quot;those&quot; in test.txt (and even backs up the original file).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, Perl seems to have lost a lot in popularity. I keep being suggested to use Python and Ruby instead. So here is the question: Which other scripting languages are as good as Perl at providing useful concise one-liners?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="6742" LastActivityDate="2010-12-20T01:51:56.747" Title="Scripting languages: which ones are good one-liners?" Tags="&lt;programming-languages&gt;&lt;scripting&gt;" AnswerCount="2" CommentCount="6" />
  <row Id="27223" PostTypeId="2" ParentId="27164" CreationDate="2010-12-17T05:43:26.320" Score="1" ViewCount="" Body="&lt;p&gt;Now that you have got some good answers, I will suggest to take initiative and start something new. Something like Friday free tech talk meeting, in which you can show them how to solve Rubik's cube. &#xA;It's a kind of development forum, where each member is free to talk about the technology or the product that they like, or they have worked with. Let it be open source or the personal or the college project. The idea is to create the environment where the developers will participate on their own. They can talk freely about anything in the meeting.&lt;br&gt;&#xA;In my previous company, we used to have something like this, but it was concentrated around the patents. Each person will come up with the idea, to use the product in a new way. In the meeting we will discuss the idea, their advantages, disadvantages, challenges etc.&lt;br&gt;&#xA;In the current organization there was the same idea, but somehow unfortunately it is turned into the progress meeting, revolving around the project. So that's another lesson. Developers should not be forced about anything in this forum, but rather environment should be created so they should participated on their own. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastEditorUserId="8820" LastEditorDisplayName="" LastEditDate="2010-12-21T05:20:35.840" LastActivityDate="2010-12-21T05:20:35.840" CommentCount="2" />
  <row Id="27224" PostTypeId="2" ParentId="27195" CreationDate="2010-12-17T05:47:42.913" Score="0" ViewCount="" Body="&lt;p&gt;Are they safe? I mean if I am writing code, how can I be sure that they are not saving my code on their server? And even if they are good, due to inertia, it will take them some time to be hit. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-17T05:47:42.913" />
  <row Id="27225" PostTypeId="2" ParentId="27222" CreationDate="2010-12-17T05:52:55.277" Score="1" ViewCount="" Body="&lt;p&gt;A whole page of &lt;a href=&quot;http://groovy.codehaus.org/Groovy+CLI&quot; rel=&quot;nofollow&quot;&gt;Groovy&lt;/a&gt; one-liners. Great language of the JVM.&lt;/p&gt;&#xA;" OwnerUserId="4603" LastActivityDate="2010-12-17T05:52:55.277" CommentCount="1" />
  <row Id="27226" PostTypeId="1" CreationDate="2010-12-17T05:53:30.563" Score="-1" ViewCount="135" Body="&lt;p&gt;i have done MCA. so i am asking for the qualities we need in industry after completing  mastering..&lt;/p&gt;&#xA;" OwnerUserId="7570" LastActivityDate="2010-12-17T09:27:55.367" ClosedDate="2010-12-17T22:21:45.647" Title="what qualities do we need to have when we are come out after master degree,?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;industry&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="27227" PostTypeId="1" CreationDate="2010-12-17T06:04:03.217" Score="1" ViewCount="404" Body="&lt;p&gt;There is a 1.4GB file from wikileaks that contains all the cables. It is protected with a 256bit encryption.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Out of curiosity, my question is :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;How much processing power - number of computers, memory, HD space would an endeavor to crack this take?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;What language(s) are best suited to write code for this purpose?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Edited :&lt;/b&gt;&lt;br/&gt;&#xA;&lt;li&gt;Do you think this is realistically possible with very good infrastructure (The type &#xA;that governments can afford to invest in).&lt;/li&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;li&gt;&lt;s&gt;- In your opinion, do you think govenments(read china) would have already cracked this, with their infrastructure?&lt;/s&gt;&lt;/li&gt;&lt;/p&gt;&#xA;" OwnerUserId="159" LastEditorUserId="159" LastEditorDisplayName="" LastEditDate="2010-12-25T08:34:43.577" LastActivityDate="2010-12-25T08:34:43.577" ClosedDate="2010-12-17T11:20:23.193" Title="Breaking wikileaks" Tags="&lt;encryption&gt;" AnswerCount="2" CommentCount="7" />
  <row Id="27228" PostTypeId="2" ParentId="27207" CreationDate="2010-12-17T06:07:53.723" Score="5" ViewCount="" Body="&lt;p&gt;The reshuffle in TIOBE index in 2004 is down to Google changing their search. There really isn't much you can learn from TIOBE - it's utter nonsense. I don't believe there has been any sudden jump in Python popularity. Certainly not because one copmany happens to use it internally for some of their stuff.&lt;/p&gt;&#xA;" OwnerUserId="735" LastActivityDate="2010-12-17T06:07:53.723" CommentCount="2" />
  <row Id="27229" PostTypeId="2" ParentId="27164" CreationDate="2010-12-17T06:34:19.323" Score="23" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Be a bullshit umbrella.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Management is going to pawn tasks upon you. Don't then pawn those tasks off onto your subordinates. Work to shelter your subordinates from the crap that rains from above so they can focus on getting their jobs done.&lt;/p&gt;&#xA;" OwnerUserId="5832" LastActivityDate="2010-12-17T06:34:19.323" CommentCount="4" />
  <row Id="27230" PostTypeId="1" CreationDate="2010-12-17T06:34:56.597" Score="-1" ViewCount="132" Body="&lt;p&gt;now PHP is growing very high within all other programming languages. now all the good companies having good projects in the PHP. so now PHP having a pick time in all state but specially in GUJARAT(one of the state in INDIA ) IT Industry.So whats the next Zenith point for PHP do you think..?&lt;/p&gt;&#xA;" OwnerUserId="7570" LastEditorUserId="7570" LastEditorDisplayName="" LastEditDate="2010-12-17T09:20:49.013" LastActivityDate="2010-12-17T09:20:49.013" Title="What will be the next Zenith Point for PHP..?" Tags="&lt;programming-languages&gt;&lt;php&gt;&lt;industry&gt;&lt;top-companies&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="27231" PostTypeId="1" AcceptedAnswerId="27276" CreationDate="2010-12-17T06:38:08.623" Score="11" ViewCount="684" Body="&lt;p&gt;Okay. So I'm currently trying to design an operating system, but I need ideas.  Nevermind the feasibility right now, it's just in the design phase.  If you had an OS that did whatever you wanted, what would you want it to do?  Please be specific, and no &quot;emulate unix or DOS&quot; answers. Thank you.&lt;/p&gt;&#xA;" OwnerUserId="10381" LastEditorUserId="8820" LastEditorDisplayName="" LastEditDate="2010-12-17T07:27:27.650" LastActivityDate="2010-12-17T17:17:31.733" Title="Ideal Operating System" Tags="&lt;operating-systems&gt;&lt;requirements&gt;&lt;theory&gt;" AnswerCount="14" CommentCount="1" FavoriteCount="7" />
  <row Id="27232" PostTypeId="2" ParentId="27231" CreationDate="2010-12-17T06:41:54.840" Score="3" ViewCount="" Body="&lt;p&gt;It should be free from the kind of &lt;a href=&quot;http://en.wikipedia.org/wiki/Buffer_overflow&quot; rel=&quot;nofollow&quot;&gt;buffer overruns&lt;/a&gt; that plague some operating systems (in particular, earlier versions of Windows) that make them easy targets for virus writers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For more ideas, have a look here:&#xA;&lt;a href=&quot;http://research.microsoft.com/en-us/projects/singularity/&quot; rel=&quot;nofollow&quot;&gt;http://research.microsoft.com/en-us/projects/singularity/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-17T06:50:32.663" LastActivityDate="2010-12-17T06:50:32.663" CommentCount="3" />
  <row Id="27233" PostTypeId="2" ParentId="27231" CreationDate="2010-12-17T06:42:17.737" Score="2" ViewCount="" Body="&lt;p&gt;I believe that there isn't a globally ideal operating system. If you try to please everyone's needs, you would end up with a piece of poo.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to figure out what you want your OS specializes itself, and go from there. For example, only the kernel requirements are often mutually exclusive between server, desktop and embedded (scheduling). Not to mention the surrounding native libraries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Edit:&lt;/em&gt; I do understand that there are stuff that can be done better, no matter what the intent. My point in this answer simply was: try to specialize, and you'll end up with a better OS for that purpose.&lt;/p&gt;&#xA;" OwnerUserId="10386" LastActivityDate="2010-12-17T06:42:17.737" />
  <row Id="27234" PostTypeId="2" ParentId="25812" CreationDate="2010-12-17T06:53:05.127" Score="0" ViewCount="" Body="&lt;p&gt;I believe it is a great language/application development platform that solves really hard problems very easily. But it accomplishes that through vastly different paradigms than what most programmers are currently accustomed to. Additionally, the Prolog-inspired syntax is very different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wish more developers could get past these things.&lt;/p&gt;&#xA;" OwnerUserId="10389" LastActivityDate="2010-12-17T06:53:05.127" />
  <row Id="27235" PostTypeId="2" ParentId="27230" CreationDate="2010-12-17T07:02:13.790" Score="0" ViewCount="" Body="&lt;p&gt;PHP is growing? I could be convinced, but it certainly doesn't seem like it to me. Do you have any information to back that up? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least from what I read and hear -- and granted, I have no information either -- PHP hit its zenith a year or two ago.&lt;/p&gt;&#xA;" OwnerUserId="8076" LastActivityDate="2010-12-17T07:02:13.790" />
  <row Id="27236" PostTypeId="2" ParentId="27231" CreationDate="2010-12-17T07:05:47.533" Score="1" ViewCount="" Body="&lt;p&gt;Ok, I like questions that require imagination. But it may have very least benefit for your design, really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wish an operating system that is the same for every device, from mobile, notebook, PC, or even mainframe. Users can choose whatever plugins need to be installed, based on their needs. And the install procedure must be the same and simple for every device, for example I can(by myself) install that OS on a mobile, like we used to do with Windows/Linux for PC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea may be crazy enough, but that's what I understand your question.&lt;/p&gt;&#xA;" OwnerUserId="9202" LastActivityDate="2010-12-17T07:05:47.533" />
  <row Id="27237" PostTypeId="2" ParentId="27230" CreationDate="2010-12-17T07:07:51.137" Score="2" ViewCount="" Body="&lt;p&gt;The next zenith is &lt;em&gt;Maturity&lt;/em&gt;.  Right now PHP is &lt;em&gt;the&lt;/em&gt; language of choice for CMS systems.  But when new versions of PHP are released there is a good chance that they break the very things that are making the platform popular.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a saying: don't bite the hand that feeds you.  You wouldn't find Microsoft releasing a patch to Windows that stops Office from working.  Nintendo wouldn't release a patch for Wii that breaks all the games that have been released for it etc.&lt;/p&gt;&#xA;" OwnerUserId="10408" LastActivityDate="2010-12-17T07:07:51.137" CommentCount="1" />
  <row Id="27238" PostTypeId="2" ParentId="27147" CreationDate="2010-12-17T07:08:04.007" Score="0" ViewCount="" Body="&lt;p&gt;Absolutely use source control. Then set up a build server and automate your build and testing processes. Trigger builds from your source commits of your central repo. I have been working by myself for three years in this way and it's wonderful.&lt;/p&gt;&#xA;" OwnerUserId="10384" LastActivityDate="2010-12-17T07:08:04.007" />
  <row Id="27239" PostTypeId="2" ParentId="17335" CreationDate="2010-12-17T07:08:43.147" Score="1" ViewCount="" Body="&lt;p&gt;I hesitate to bring it up, since it doesn't fit your either-or pair, but have you considered Grails?  Grails seems to combine the benefits of both your choices above.  It already runs on the JVM, so you don't need to use JRuby, and it has a CXF plugin that makes creating RESTful web services REALLY simple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main developers of Grails (G2One) are now a part of Spring, so you should feel confident of it's continued success.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.grails.org&quot; rel=&quot;nofollow&quot;&gt;http://www.grails.org&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10403" LastActivityDate="2010-12-17T07:08:43.147" CommentCount="1" />
  <row Id="27240" PostTypeId="1" AcceptedAnswerId="27243" CreationDate="2010-12-17T07:10:47.407" Score="7" ViewCount="333" Body="&lt;p&gt;I have this question since my friend told me that if we have frequent appraisal such as 4 months or 6 months once, people will be turned to a money minded. But I am thinking this in another aspect like, people will be getting feedback and boost quickly than one year appraisal. We do not need to increase the salary much. But the token advancement would help them to get some refreshment.&lt;/p&gt;&#xA;" OwnerUserId="9318" LastActivityDate="2010-12-17T15:43:17.647" Title="how often do we need to do appraisal for a developer?" Tags="&lt;appraisal&gt;&lt;general-management&gt;" AnswerCount="4" FavoriteCount="4" />
  <row Id="27241" PostTypeId="2" ParentId="25812" CreationDate="2010-12-17T07:12:30.713" Score="2" ViewCount="" Body="&lt;p&gt;I believe that people generally fear what they do not understand.  As mentioned in other posts on this question concepts in Erlang are not generally understood by developers that are used to languages like C, C++, C#, and JAVA.  Functional languages are gaining in popularity and even Erlang is gaining some traction; however none of these things matter until a huge community gets behind the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look at what happened to Ruby and its evolution following the development and release of Rails.  What Erlang needs is a Rails framework similar to lift for Scala and for some folks to build large scale web sites with it to show is usefulness outside of the telecommunications industry.&lt;/p&gt;&#xA;" OwnerUserId="10402" LastActivityDate="2010-12-17T07:12:30.713" />
  <row Id="27242" PostTypeId="2" ParentId="27231" CreationDate="2010-12-17T07:12:37.980" Score="3" ViewCount="" Body="&lt;p&gt;I was attracted to this prospect through work I was doing on embedded systems. At the time, I was theorizing on the best approach to 'set and forget' devices, such as long time data loggers that become inaccessible once deployed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This led me to finding and getting involved with the &lt;a href=&quot;http://helenos.org&quot; rel=&quot;nofollow&quot;&gt;HelenOS&lt;/a&gt; project, which aims to create (from scratch) a highly portable and modern operating system. Please note, for my purposes, a fancy window manager doesn't qualify something as 'modern', because I'd never use a window manager.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found the following items very, very interesting:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Micro kernel design&lt;/em&gt;: A monolithic kernel is the most painless route to getting a working kernel. This is why Linux was such a rapid success. No kernel is 'easy' to debug, but the monolithic approach is the easiest. But, you have cases where a single crash or bug in VFS throws an abort that can't be recovered from. HelenOS strictly discourages the introduction of a 'reincarnation' server to re-start buggy services, because the existence of one would probably hide more problems than it solves. However, the ability exists and suited my need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Elegant IPC&lt;/em&gt;: A notorious problem in micro kernel designs is the method services (such as vmm, vfs, networking, etc) use to communicate with one another. HelenOS solved this to a great extent in a way that eliminates, not hides a great deal of the complexity. Think, simply .. 'phone' and 'answerbox' that can be used synchronously or asynchronously. Sure, you have to watch out for races, but you don't have service B borking because it got a reply that was meant for service A telling it that a read just failed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Home Grown C Library&lt;/em&gt;: In addition to the standard C functions, HelenOS offered very convenient wrappers to utilize the system IPC. Additionally, a great deal of care was put into keeping things as lean as possible. The printf sub system is impressive and modern creature comforts such as a*printf() were implemented early. Any decent C programmer can quickly become productive. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Extremely Portable&lt;/em&gt;: Already ported to seven architectures, HelenOS is very portable. There was, at one time a paravirtualized Xen port that allowed HelenOS to boot as a privileged or guest operating system, with minimally invasive changes. It was the subject of a thesis, and wasn't maintained after completion, but it was accomplished.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The OS was everything I wanted to see in something more mature like Minix3, without bloat and with forward thinking. While the current interface (which I wrote) resembles something like UNIX, the system is &lt;em&gt;not&lt;/em&gt; like Unix. It could look like DOS, it could look like VMS, it could look like whatever you wanted it to look like, including your own concept of how an OS should present its features. Everything I needed was right there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since it did everything as well, or better than I could have done it, I just decided to work on it instead. It's been a while since I've been active in development, but only due to a lack of time. Lately, I spend my fifteen minute 'sanity breaks' answering questions on SE sites.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So in a short answer to your question &quot;&lt;em&gt;what would you want it to do?&lt;/em&gt;&quot;, I'd want it to be reliable and easily adapted to fit almost any need that I might have in the future, when talking about devices that I need to be able to deploy and forget about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't go trying to make a new OS at first, try to make a collection of really good decisions that also happens to boot. After that, you can take it in any direction that you want, even several at a time.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-17T07:12:37.980" />
  <row Id="27243" PostTypeId="2" ParentId="27240" CreationDate="2010-12-17T07:16:12.287" Score="17" ViewCount="" Body="&lt;p&gt;After being in management for a few years after being a developer for many years (and headed back TO development), I believe that regular, non-formal appraisal is important.  Not everyone needs this, but human nature dictates that saving this for once or twice per year is detrimental.  Everyone needs regular feedback, not only for motivational purposes, but just to help keep someone from straying too far off the path.  No one likes being kept in the dark on the value they're perceived to add (or improvements they need to make).&lt;/p&gt;&#xA;" OwnerUserId="10397" LastActivityDate="2010-12-17T07:16:12.287" CommentCount="1" />
  <row Id="27244" PostTypeId="2" ParentId="27231" CreationDate="2010-12-17T07:18:59.410" Score="0" ViewCount="" Body="&lt;p&gt;For personal computing, I would suggest checking out Smalltalk heritage and Lisp Genera. For a recent research on similar approaches, see &lt;a href=&quot;http://www.viewpointsresearch.org/html/writings.php&quot; rel=&quot;nofollow&quot;&gt;http://www.viewpointsresearch.org/html/writings.php&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10415" LastActivityDate="2010-12-17T07:18:59.410" />
  <row Id="27245" PostTypeId="2" ParentId="27227" CreationDate="2010-12-17T07:19:02.833" Score="4" ViewCount="" Body="&lt;p&gt;If the file is encrypted with 14 round AES256 (as opposed to 9 or 10 rounds), there are no known attacks. Breaking the file would then require a bruteforce.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I understand AES correctly, AES256 has 2^256 possible keys. Not sure what kind of computing power governments are packing, but bruteforcing that would be a bit ridiculous.&lt;/p&gt;&#xA;" OwnerUserId="10395" LastActivityDate="2010-12-17T07:19:02.833" CommentCount="1" />
  <row Id="27246" PostTypeId="2" ParentId="27227" CreationDate="2010-12-17T07:23:40.197" Score="7" ViewCount="" Body="&lt;p&gt;From &lt;a href=&quot;http://en.wikipedia.org/wiki/Brute_force_attack&quot; rel=&quot;nofollow&quot;&gt;Wikipedia&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;AES permits the use of 256-bit keys.&#xA;  Breaking a symmetric 256-bit key by&#xA;  brute force requires 2^128 times more&#xA;  computational power than a 128-bit&#xA;  key. A device that could check a&#xA;  billion billion (10^18) AES keys per&#xA;  second would in theory require about&#xA;  3×10^51 years to exhaust the 256-bit&#xA;  key space.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="5231" LastActivityDate="2010-12-17T07:23:40.197" CommentCount="1" />
  <row Id="27247" PostTypeId="2" ParentId="25425" CreationDate="2010-12-17T07:25:16.627" Score="0" ViewCount="" Body="&lt;p&gt;What is your current rails experience?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you have prior rails experience and you want to get something out quickly, I'd go with what you know, so Rails 2, and only port afterwards.&lt;/li&gt;&#xA;&lt;li&gt;If just starting out and no previous experience, I'd go for Rails 3. You would be better off learning the new thing immediately. There's &lt;a href=&quot;http://railstutorial.org/&quot; rel=&quot;nofollow&quot;&gt;a great rails tutorial&lt;/a&gt; out there.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm quite confident that Rails 3 is in good shape, though there's bound to be some kinks left and there is new stuff to learn which might slow you down a bit at first.&lt;/p&gt;&#xA;" OwnerUserId="10409" LastActivityDate="2010-12-17T07:25:16.627" />
  <row Id="27248" PostTypeId="2" ParentId="27231" CreationDate="2010-12-17T07:26:03.580" Score="2" ViewCount="" Body="&lt;p&gt;My suggestion is to keep the different components like file system, gui separate. So that the developers can write their own components and the users can plug in their favorites. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-17T07:26:03.580" />
  <row Id="27249" PostTypeId="2" ParentId="27164" CreationDate="2010-12-17T07:26:53.080" Score="1" ViewCount="" Body="&lt;p&gt;Some great answers here.  If I were to summarize in a sentence:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remove barriers, allow them to focus, speak their language, show trust in them (even if it leads to mistakes), and empathize.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everything else is just a means to an end.&lt;/p&gt;&#xA;" OwnerUserId="10397" LastActivityDate="2010-12-17T07:26:53.080" />
  <row Id="27250" PostTypeId="2" ParentId="27231" CreationDate="2010-12-17T07:34:00.830" Score="0" ViewCount="" Body="&lt;p&gt;I like the approach that Singularity from Microsoft Research takes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://research.microsoft.com/en-us/news/features/singularity.aspx&quot; rel=&quot;nofollow&quot;&gt;http://research.microsoft.com/en-us/news/features/singularity.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's based on the .NET CLR and works with the concept of verifiable code. Buffer overflows are not possible and a memory management mechanism like paging and separate address spaces for processes are not needed. Essentially the kernel and the applications all run in Ring 0 of CPU and the overhead of task switching is almost negligible.&lt;/p&gt;&#xA;" OwnerUserId="624" LastActivityDate="2010-12-17T07:34:00.830" />
  <row Id="27251" PostTypeId="2" ParentId="25425" CreationDate="2010-12-17T07:37:59.197" Score="2" ViewCount="" Body="&lt;p&gt;Rails 3 is very much ready for production use. It's in use on big sites like &lt;a href=&quot;http://www.shopify.com/&quot; rel=&quot;nofollow&quot;&gt;Shopify&lt;/a&gt; (you can read about their long path to Rails 3 here: &lt;a href=&quot;http://blog.shopify.com/2010/11/16/our-upgrade-to-rails-3&quot; rel=&quot;nofollow&quot;&gt;http://blog.shopify.com/2010/11/16/our-upgrade-to-rails-3&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've recently upgraded my own Rails 2.3.x app to Rails 3, and it runs fine on Passenger. I didn't encounter any compatibility problems with Passenger 3 and the &lt;a href=&quot;http://www.wego.com/&quot; rel=&quot;nofollow&quot;&gt;site&lt;/a&gt; has been running on Rails 3 + Passenger for about a month now with no problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you're starting a new project, I'd &lt;strong&gt;strongly recommend&lt;/strong&gt; you start on Rails 3 because frankly the upgrade to Rails 3 can be quite painful like Shopify's story.&lt;/p&gt;&#xA;" OwnerUserId="7955" LastActivityDate="2010-12-17T07:37:59.197" CommentCount="1" />
  <row Id="27252" PostTypeId="1" AcceptedAnswerId="33653" CreationDate="2010-12-17T07:39:27.223" Score="4" ViewCount="232" Body="&lt;p&gt;Ok, so I have a program that basically logs errors into a nosql database. Right now there is just a single model for an error and its stored as a document in the nosql database.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically I want to summarize across different errors and produce a summary of the &quot;types&quot; of errors that occured.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Traditionally in a SQL database the this normalization would work with groupings, sums and averages but in a NoSQL database I assume I need to use mapreduce.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My current model seems unfit for the task, how should I change the way I store &quot;models&quot; in order to make statistical analysis easy? Would a NoSQL database even be the right tool for this type of problem?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm storing things in Google AppEngine's BigTable, so there are some limitations to think of as well.&lt;/p&gt;&#xA;" OwnerUserId="10416" LastEditorUserId="10416" LastEditorDisplayName="" LastEditDate="2010-12-21T21:40:10.617" LastActivityDate="2011-01-04T17:40:49.977" Title="How should calculations be handled in a document database" Tags="&lt;google-app-engine&gt;&lt;nosql&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="1" />
  <row Id="27253" PostTypeId="2" ParentId="27240" CreationDate="2010-12-17T07:39:40.973" Score="0" ViewCount="" Body="&lt;p&gt;I would say once a year for an in depth cover-all-bases &amp;amp; semi-formal (i.e. documented) appraisal, plus an open-policy door that invites discussion of more immediate issues, whenever they arise.&lt;/p&gt;&#xA;" OwnerUserId="10426" LastActivityDate="2010-12-17T07:39:40.973" />
  <row Id="27254" PostTypeId="2" ParentId="27215" CreationDate="2010-12-17T07:40:47.783" Score="1" ViewCount="" Body="&lt;p&gt;I note this list from StackOverflow, but don't remember where it be.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* jsFiddle&#xA;* Snipt&#xA;* Pastie&#xA;* CodePad&#xA;* Ideone&#xA;* JS Bin&#xA;* CSSDESK&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="9202" LastActivityDate="2010-12-17T07:40:47.783" />
  <row Id="27255" PostTypeId="2" ParentId="27240" CreationDate="2010-12-17T07:42:25.487" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;They are counterproductive&lt;/strong&gt;. They are supposed to motivate your people, but in many case it does just the inverse. In some companies I've visited, it's also a way to &lt;em&gt;seek &amp;amp; destroy&lt;/em&gt; slackers! I'm against performance reviews or any individual appraisals for the following reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Appraisers (bosses of course) are biased. Personal feelings often take over. I can't be objective.&lt;/li&gt;&#xA;&lt;li&gt;When there are multiple appraisers, it's just luck because of the point above.&lt;/li&gt;&#xA;&lt;li&gt;Most employees that does is best and get a negative appraisal will become much less productive than before. It's the spiral.&lt;/li&gt;&#xA;&lt;li&gt;So it changes the target of your employees. It's not company goal anymore, it's their own and individual yearly or quarterly appraisal.&lt;/li&gt;&#xA;&lt;li&gt;This tend to create competition within departments, or worse, within teams!&lt;/li&gt;&#xA;&lt;li&gt;This tend increase individualism a lot. Which is the worse things that could happen to your company&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://championsclubcommunity.com/covey/2010/06/03/empowerment-and-performance-appraisal/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Stephen Covey&lt;/strong&gt;&lt;/a&gt;, author of the &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Seven_Habits_of_Highly_Effective_People&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;7 Habits&lt;/strong&gt;&lt;/a&gt; and more importantly the The &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0684846659&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;8th Habit&lt;/strong&gt;&lt;/a&gt; which describe the damage of yearly appraisal, once said&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;The so- called boss should become a humble servant and a helper to the employees&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In Software Development, &quot;&lt;strong&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0932633439&quot; rel=&quot;nofollow&quot;&gt;Peopleware&lt;/a&gt;&lt;/strong&gt;,&quot; by &lt;strong&gt;Tom DeMarco&lt;/strong&gt; and &lt;strong&gt;Timothy Lister&lt;/strong&gt; explains the same and propose other ways to motivate employees.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What are the &lt;code&gt;alternatives&lt;/code&gt;?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Improve the &lt;code&gt;work place&lt;/code&gt; instead of saving on it. Avoid open spaces, buy high performance machines, free drinks &amp;amp; foods&lt;/li&gt;&#xA;&lt;li&gt;Encourage &lt;code&gt;innovation&lt;/code&gt;. Your people are smarter than you think&lt;/li&gt;&#xA;&lt;li&gt;Don't cut &lt;code&gt;quality&lt;/code&gt;. Your people must be proud of what they do&lt;/li&gt;&#xA;&lt;li&gt;Abolish &lt;code&gt;overtime&lt;/code&gt;. Except in some very exceptional circonstances such as security breach that must be fixed&lt;/li&gt;&#xA;&lt;li&gt;Prefer &lt;code&gt;open minded&lt;/code&gt; people&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Your people get feedback constantly already:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;when a user/customer send them an email saying the product is just amazing&lt;/li&gt;&#xA;&lt;li&gt;when someone ask for their help&lt;/li&gt;&#xA;&lt;li&gt;when someone do his best to help them&lt;/li&gt;&#xA;&lt;li&gt;when they are exited to go to work&lt;/li&gt;&#xA;&lt;li&gt;when they know they are a part of something great&lt;/li&gt;&#xA;&lt;li&gt;when their boss trust them and sincerly think they are the professionals&lt;/li&gt;&#xA;&lt;li&gt;when their coleagues smile at them frequently&lt;/li&gt;&#xA;&lt;li&gt;when CruiseControl says &quot;All build are good&quot;&lt;/li&gt;&#xA;&lt;li&gt;when everyone is happy around them&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;When they receive bad feedback they know:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it's an opportunity to learn&lt;/li&gt;&#xA;&lt;li&gt;they really did their best, they can't please everybody&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Encourage &lt;strong&gt;efforts&lt;/strong&gt;, not performances. Creating a top performers is creating 1% of winners and 99% of loosers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Further reading on the subject: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1576752003&quot; rel=&quot;nofollow&quot;&gt;Abolishing Performance Appraisals: Why They Backfire and What to Do Instead&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-17T15:34:37.773" LastActivityDate="2010-12-17T15:34:37.773" CommentCount="3" />
  <row Id="27256" PostTypeId="2" ParentId="27231" CreationDate="2010-12-17T07:43:09.940" Score="1" ViewCount="" Body="&lt;p&gt;Handle clustering transparently, including: process migration and ad-hoc/temporary resource discovery. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;ACL-based security.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pick a paradigm and stick with it; if everything's a file, go all the way ala Plan 9, don't stop half way like unix did.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might want to read the &lt;a href=&quot;http://lwn.net/Articles/411845/&quot; rel=&quot;nofollow&quot;&gt;Ghosts of Unix Past&lt;/a&gt; series at LWN to see what OS-design patterns have worked and what haven't and why.&lt;/p&gt;&#xA;" OwnerUserId="5231" LastActivityDate="2010-12-17T07:43:09.940" />
  <row Id="27257" PostTypeId="2" ParentId="26191" CreationDate="2010-12-17T07:45:06.703" Score="0" ViewCount="" Body="&lt;p&gt;The 3 &lt;strong&gt;*I&lt;/strong&gt;*s&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Intensity&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Integrity&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Intelligence&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;" OwnerUserId="3534" LastActivityDate="2010-12-17T07:45:06.703" CommentCount="2" />
  <row Id="27258" PostTypeId="1" AcceptedAnswerId="27303" CreationDate="2010-12-17T07:48:14.550" Score="0" ViewCount="513" Body="&lt;p&gt;What is the correct way of implementing true MVC in Objective-C (Cocoa/iPhone) when the view is NOT created with Interface Builder?&lt;/p&gt;&#xA;" OwnerUserId="10429" LastActivityDate="2010-12-17T14:42:29.223" ClosedDate="2011-01-02T23:19:44.967" Title="MVC when developing in objective-C without using the Interface Builder" Tags="&lt;design-patterns&gt;&lt;mvc&gt;&lt;objective-c&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="27259" PostTypeId="2" ParentId="27207" CreationDate="2010-12-17T07:50:28.870" Score="-1" ViewCount="" Body="&lt;p&gt;There are some aspects of python that made it look, frankly, archaic. Things that made you feel like you were coding on punched cards on a mainframe. Like having indent spacing matter to code blocks. Little stuff like that caused a lot of folks to dismiss the language after a very brief look. I suspect that hurt it pretty bad in the early days. Especially in the crowd that had lived in those types of environments for years and wanted nothing but to get away from the mainframe and out to the web.&lt;/p&gt;&#xA;" OwnerUserId="10424" LastActivityDate="2010-12-17T07:50:28.870" CommentCount="3" />
  <row Id="27260" PostTypeId="1" AcceptedAnswerId="27307" CreationDate="2010-12-17T07:54:44.917" Score="15" ViewCount="514" Body="&lt;p&gt;Let’s say you estimated time for a case to be 3 days.&#xA;In day two you notice that the case is growing and new scenarios are popping up which were not counted when the time estimation where done.  The new finding leads to 2 days extra (total 5 days). This is a typical problem that you will face sooner or later as developer.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Which strategy can be used when you are going to notify project leader the new time of delivery?&lt;/li&gt;&#xA;&lt;li&gt;Often you get the question why? How do you motivate the new time of delivery?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The fact is that many projects don’t put much time on analysis &amp;amp; design during SDLC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt;&#xA;In very complex projects no matter how much reasonable time you put on Analysis &amp;amp; Design there are always surprises since the business rules are too complex. However in such cases I believe the project leader must be aware of the complexity and have right attitude when unexpected surprises comes up. The question is how to tackle project leaders who don’t understand the complexity.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-17T12:48:29.327" LastActivityDate="2010-12-17T16:10:03.000" Title="What to do when time estimation goes wrong?" Tags="&lt;project-management&gt;&lt;development-process&gt;&lt;requirements&gt;&lt;time&gt;&lt;sdlc&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="5" />
  <row Id="27261" PostTypeId="1" CreationDate="2010-12-17T07:58:14.513" Score="1" ViewCount="186" Body="&lt;p&gt;Background:  A while ago I was lamenting the lack of a decent and extensible mathematical evaluation library for Objective-C, so &lt;a href=&quot;http://github.com/davedelong/DDMathParser&quot; rel=&quot;nofollow&quot;&gt;I decided to write one&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My parser object is created with the input string, which it hands off to a tokenizer.  The parser then starts recursing through the token stream to group things by parenthetical level.  Once the tokens are grouped, the parser recurses through the groups and &quot;collapses&quot; operators.  It looks something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;1 + (2/3+7) - 4 * 5 //initial string&#xA;(1 + (2 / 3 + 7) - (4 * 5)) //grouped string (parentheses denote a group)&#xA;((1 + ((2 / 3) + 7)) - (4 * 5)) //collapsed groups (parentheses denote a group)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The collapsing works by examining all the terms in a group, finding the operator with the highest precedence, and collapsing it and its arguments into a new group.  This repeats as long as there are any operators left in the group.  It works quite well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing that feels wrong about it is the parser itself.  It feels poorly organized.  (&lt;a href=&quot;https://github.com/davedelong/DDMathParser/blob/master/DDMathParser/DDParser.m&quot; rel=&quot;nofollow&quot;&gt;See its source here&lt;/a&gt;)  There's this nebulous &quot;Term&quot; object that holds a token, other terms, or both (for a number/variable, group, or function call [respectively]).  Once things are grouped into Term objects, the root Term gets handed off to a TermResolver, which is where the collapsing takes place.  (And really, the Resolver also turns it into an Expression object, which is what will end up doing the actual evaluation)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It works well, but (like I said) it feels disorganized.  I tried to make the Term object handle its own construction (by receiving the Tokenizer as a construction parameter), but there were some really strange edge cases that made it feel too weird.  (I can have groups that are explicitly defined with parentheses, I can have groups that are implicit, and I can have some groups that can accept commas in side them, but only if there was a &quot;function&quot; token preceding the opening parenthesis, etc).  Also, the structure felt too much like a mirror of my Expression object (and its subclasses), and I got thinking that having a mirror structure smelled of duplicating effort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, my question is this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given a stream of tokens that represent a mathematical expression, how would you go about organizing them by operator precedence into the appropriate tree structure?  What classes would you use, and what would be the function/purpose of each?&lt;/p&gt;&#xA;" OwnerUserId="10410" LastActivityDate="2010-12-17T08:44:03.283" ClosedDate="2010-12-18T13:34:57.517" Title="How should I structure this code?" Tags="&lt;design-patterns&gt;&lt;algorithms&gt;&lt;math&gt;&lt;parser&gt;" AnswerCount="1" CommentCount="4" />
  <row Id="27262" PostTypeId="2" ParentId="26989" CreationDate="2010-12-17T08:00:17.027" Score="2" ViewCount="" Body="&lt;p&gt;I have read with great joy &lt;a href=&quot;http://www.bookdepository.com/book/9780596805487/Programming-WCF-Services&quot; rel=&quot;nofollow&quot;&gt;&quot;Programming WCF services&quot;&lt;/a&gt; Lowy was considered one of the leading experts ( Although I don't hear much from him now )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Als the stackoverflow question mentioned in the comments gives this book a lot of votes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It isn't an easy book and you should try to create the samples while you read, trying it reveals the nitty picky details that can get you stomped while working with WCF.&lt;/p&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2010-12-17T08:00:17.027" CommentCount="2" />
  <row Id="27263" PostTypeId="1" AcceptedAnswerId="27282" CreationDate="2010-12-17T08:04:38.727" Score="2" ViewCount="215" Body="&lt;p&gt;I'm reading Code Complete 2, and I'm at the chapter where it says to (paraphrasing) &quot;avoid programming through the interface.&quot;  Why is it bad to program &quot;through&quot; the interface?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A more concrete example: if I have a method of a class that submits a funny picture, what's wrong with it logging me in also?  Should I simply provide more &quot;helper&quot; methods that do it automatically?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would it be preferred to break it up into:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;set_login(username, password)&lt;/li&gt;&#xA;&lt;li&gt;login()&lt;/li&gt;&#xA;&lt;li&gt;submit_picture(funny_picture)&lt;/li&gt;&#xA;&lt;li&gt;easy_submit(funny_picture) # where it will log in (if not already) and submit&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10430" LastActivityDate="2010-12-17T08:35:33.623" Title="How much to &quot;automatically&quot; do?" Tags="&lt;programming-practices&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="27264" PostTypeId="1" AcceptedAnswerId="27293" CreationDate="2010-12-17T08:06:26.680" Score="37" ViewCount="1995" Body="&lt;p&gt;I've been using underscore_case for about 2 years and I recently switched to camelCase because of the new job (been using the later one for about 2 months and I still think underscore_case is better suited for large projects where there are alot of programmers involved, mainly because the code is easier to read).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now everybody at work uses camelCase because (so they say) the code looks more elegant .&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are you're thoughts about camelCase or underscore_case&lt;/p&gt;&#xA;&#xA;&lt;p&gt;p.s. please excuse my bad english&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some update first: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;platform used is PHP (but I'm not expecting strict PHP platform related answers , anybody can share their thoughts on which would be the best to use , that's why I came here in the first place)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I use camelCase just as everibody else in the team (just as most of you recomend)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;we use Zend Framework which also recommends camelCase&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some examples (related to PHP) :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Codeigniter framework recommends underscore_case , and honestly the code is easier to read .&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;ZF recomends camelCase and I'm not the only one who thinks ZF code is a tad harder to follow through.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So my question would be rephrased:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Let's take a case where you have the platform Foo which doesn't recommend any naming conventions and it's the team leader's choice to pick one. You are that team leader, why would you pick camelCase or why underscore_case? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;p.s. thanks everybody for the prompt answers so far&lt;/p&gt;&#xA;" OwnerUserId="8849" LastEditorUserId="6854" LastEditorDisplayName="" LastEditDate="2011-02-10T17:00:04.743" LastActivityDate="2011-02-10T17:00:04.743" CommunityOwnedDate="2011-01-06T21:09:02.793" Title="Naming conventions: camelCase versus underscore_case ? what are your thoughts about it?" Tags="&lt;naming-conventions&gt;" AnswerCount="24" CommentCount="6" FavoriteCount="8" />
  <row Id="27265" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T08:10:57.727" Score="15" ViewCount="" Body="&lt;p&gt;Honestly, it doesn't really matter as long as everyone on the team uses the same scheme. Chances are one or the other is more natural to you, though the real importance is readability of code in the long run and then it is crucial that everyone adheres to the same naming rules.&lt;/p&gt;&#xA;" OwnerUserId="10409" LastActivityDate="2010-12-17T08:10:57.727" CommunityOwnedDate="2011-01-06T21:09:02.793" CommentCount="1" />
  <row Id="27266" PostTypeId="2" ParentId="27260" CreationDate="2010-12-17T08:11:22.777" Score="0" ViewCount="" Body="&lt;p&gt;Let the all team know it and try to find a solution. I recommend 3 solutions, from high to low in priority:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;a. Try to find a temporary hot-fix, or a quick-around&lt;/p&gt;&#xA;&#xA;&lt;p&gt;b. The work that you can do it, do it best. After showing your excellent part of work to the client, ask for their help: we can do this, but there's some problem, and it may slow the productivity of your work... Maybe you can ask them if there is any unnecessary request/feature which can be dropped, or cut down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Propose an alternative approach for their problem maybe a good idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;c. Overtime-working&lt;/p&gt;&#xA;" OwnerUserId="9202" LastActivityDate="2010-12-17T08:11:22.777" CommentCount="2" />
  <row Id="27267" PostTypeId="2" ParentId="27145" CreationDate="2010-12-17T08:12:43.153" Score="0" ViewCount="" Body="&lt;h2&gt;Don't learn Perl 6.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;CPAN &lt;a href=&quot;http://www.cpan.org/src/README.html&quot; rel=&quot;nofollow&quot;&gt;doesn't&lt;/a&gt; even support it yet.  (I suspect it will ship with a module that allows Duke Nukem Forever to be played entirely through the use of regexes...)&lt;/p&gt;&#xA;" OwnerUserId="8467" LastActivityDate="2010-12-17T08:12:43.153" CommentCount="2" />
  <row Id="27268" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T08:14:10.483" Score="60" ViewCount="" Body="&lt;p&gt;I think you should use naming convention adopted by your platform. underscore_case will look weird in C# code, as camelCase in Ruby =)&lt;/p&gt;&#xA;" OwnerUserId="8153" LastActivityDate="2010-12-17T08:14:10.483" CommunityOwnedDate="2011-01-06T21:09:02.793" CommentCount="5" />
  <row Id="27269" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T08:16:33.487" Score="4" ViewCount="" Body="&lt;p&gt;I was taught to use camelCase at university. I've used a few different conventions over the last few years but prefer camelCase over anything else. I think I remember reading somewhere that camelCase is actually the easiest to read and understand.&lt;/p&gt;&#xA;" OwnerUserId="10442" LastActivityDate="2010-12-17T08:16:33.487" CommunityOwnedDate="2011-01-06T21:09:02.793" CommentCount="2" />
  <row Id="27270" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T08:16:57.067" Score="3" ViewCount="" Body="&lt;p&gt;At first, I agree with dafmetal. It is of the upmost importance, that you do not mix different programming styles. Doing this in one and the same file is the worst you can do IMHO. Across different files, it is distracting, but not fatal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The next thing you have to do, is at naming rules that are popular for the language that you are writing in. My C++ code for instnace, will look different than something for Python obviously (PEP8 is a nice guide here)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also use different naming conventions to refer to different things, as much as you probably use UPPER_CASE for constants (this only applies to certain languages of course), you can use this_style for local variable names, whereas you use camelCase for instance/member variables. This may not be needed when you have things such as &lt;code&gt;self&lt;/code&gt; or &lt;code&gt;this&lt;/code&gt; however.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Update&lt;/h2&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Let's take a case where you have the&#xA;  platform Foo witch doesn't recomend&#xA;  any naming conventions and it's the&#xA;  team leader's choice to pick one . You&#xA;  are that team leader , why would you&#xA;  pick camelCase or why underscore_case.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;There are no advantages for one over the other really. This matter is very subjective and once agreed upon, it will not make a difference. There are always these religuous wars about these small things. But once you have gotten adjusted to either, the discussions seems to be entirely superfluous.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To quote Alex Martelli on a very similar matter:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Sure, I do get weary, in Ruby, of&#xA;  typing the silly &quot;end&quot; at the end of&#xA;  each block (rather than just&#xA;  unindenting) -- but then I do get to&#xA;  avoid typing the equally-silly ':'&#xA;  which Python requires at the&#xA;  &lt;em&gt;start&lt;/em&gt; of each block, so that's almost a wash:-).  Other syntax&#xA;  differences such as '@foo' versus&#xA;  'self.foo', or the higher significance&#xA;  of case in Ruby vs Python, are really&#xA;  just about as irrelevant to me.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Others no doubt base their choice of&#xA;  programming languages on just such&#xA;  issues, and they generate the hottest&#xA;  debates -- but to me that's just an&#xA;  example of one of Parkinson's Laws in&#xA;  action (&lt;strong&gt;the amount on debate on an&#xA;  issue is inversely proportional to the&#xA;  issue's actual importance&lt;/strong&gt;).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/comp.lang.python/msg/028422d707512283?pli=1&quot; rel=&quot;nofollow&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are the team leader, you just go with one. Since one doesn't have any advantages over the other, you can just throw dice or pick what you like more.&lt;/p&gt;&#xA;" OwnerUserId="10445" LastEditorUserId="10445" LastEditorDisplayName="" LastEditDate="2010-12-17T08:55:15.270" LastActivityDate="2010-12-17T08:55:15.270" CommunityOwnedDate="2011-01-06T21:09:02.793" />
  <row Id="27271" PostTypeId="2" ParentId="27252" CreationDate="2010-12-17T08:18:32.243" Score="0" ViewCount="" Body="&lt;p&gt;Try to look at Hadoop &lt;a href=&quot;http://en.wikipedia.org/wiki/Hadoop&quot; rel=&quot;nofollow&quot;&gt;wikipedia&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dunno if it works with you DB.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe this post will be helpful:&lt;a href=&quot;http://groups.google.com/group/google-appengine/browse_thread/thread/1ff82c7dcfb6f5f5/9d438c034bbf7f01?pli=1&quot; rel=&quot;nofollow&quot;&gt;Mail archive&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8153" LastEditorUserId="8153" LastEditorDisplayName="" LastEditDate="2010-12-19T21:29:16.673" LastActivityDate="2010-12-19T21:29:16.673" CommentCount="2" />
  <row Id="27272" PostTypeId="2" ParentId="27260" CreationDate="2010-12-17T08:19:05.347" Score="2" ViewCount="" Body="&lt;p&gt;As soon as you see the estimate being wrong you need to raise the alarm bell. Inform those who expect the delivery about the delay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask for help from team-mates if possible. Make sure that you still deliver as high quality software as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A short-cut will most likely do more harm in the end, and everyone involved should know this. Or atleast should it be possible to explain it to them.&lt;/p&gt;&#xA;" OwnerUserId="10416" LastActivityDate="2010-12-17T08:19:05.347" />
  <row Id="27273" PostTypeId="2" ParentId="27263" CreationDate="2010-12-17T08:21:26.583" Score="2" ViewCount="" Body="&lt;p&gt;Wrong or correct it depends on the level which that code is going to be used of. What will happen, if you want to submit more than one picture? On this example, I would divide it into two levels, say, &lt;code&gt;core&lt;/code&gt; and &lt;code&gt;application&lt;/code&gt;. The core level provides basic facilities (&lt;code&gt;login(u, p)&lt;/code&gt; and &lt;code&gt;submit_data(data, type)&lt;/code&gt;), and the application layer provides helper methods. And would use them appropriately depending on the context.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-17T08:21:26.583" />
  <row Id="27274" PostTypeId="2" ParentId="23915" CreationDate="2010-12-17T08:21:32.840" Score="1" ViewCount="" Body="&lt;p&gt;I would have thought a feasibility study is part of your project management. Once that is completed you would start on your SDLC with analysis, design..etc. Or you may include pm in your SDLC according to company practice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;further to an answer, a feasibility study might include all project related costs, user acceptance, affects on company image, your ability to complete the project, time related risks etc.. &lt;/p&gt;&#xA;" OwnerUserId="10442" LastEditorUserId="10442" LastEditorDisplayName="" LastEditDate="2010-12-18T15:47:28.000" LastActivityDate="2010-12-18T15:47:28.000" />
  <row Id="27275" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T08:23:30.200" Score="7" ViewCount="" Body="&lt;p&gt;Depends on the programming language.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I consider using the case in the same boat of whether or not to use Hungarian notation:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Python: underscore_case, no Hungarian&#xA;notation &lt;/li&gt;&#xA;&lt;li&gt;C++: camelCase, Hungarian&#xA;notation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10430" LastActivityDate="2010-12-17T08:23:30.200" CommunityOwnedDate="2011-01-06T21:09:02.793" CommentCount="5" />
  <row Id="27276" PostTypeId="2" ParentId="27231" CreationDate="2010-12-17T08:24:28.493" Score="9" ViewCount="" Body="&lt;p&gt;Of course it depends on what you are to use it for, but I have some very strong opinions on how a desktop operating system should look. And first of all I would like to get rid of all the 70's ideas and attitudes that is so prevalent in todays operating systems. Why are we using files, for example? That's a throwback to the 70's where you had to make a difference between internal memory and storage. (It completely blew my mind when Plan 9 was announced, an operating system that treats &lt;em&gt;everything&lt;/em&gt; as files. It was 15 years behind it's time already when it was announced. See the first two points below.) Today we don't separate storage and memory. We use internal memory as cache for storage, and we use storage as extended virtual internal memory. This is of course completely ridiculous.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, here is what I'd like to see:&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Transparent persistence&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Simply put, if you change something, it stays changed. Or put in other ways: The hard disk is the memory. Internal memory is used only for caching the hard disk. This gives the first problem: How to address things on different hard disks. You could in theory just map address space onto different hard disks, but that wouldn't work for removable storage, which would need to be addressed as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the whole memory system needs to be based on objects, where objects have a unique identifier which goes to a table that keeps track of on which persistent resource that object currently is located. (That object could, if you write things in C, just be a big binary blob that the program gets to use as internal memory, and can malloc and dealloc things in as it wishes).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This gives you another interesting possibility. The resource doesn't have to be located on the local computer. It can be transparently located anywhere, and you can access it and modify it as if it was local. Your internal memory will be used as cache for this, so once it has been downloaded, editing is fast, and synchronization will be done in the background. Possibly your internal storage can be used as a second level of cache too. Obviously you'll need a resource locking mechanism that works in this situation.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Graphics all the way&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Come on, terminals? stdin/stdout? Yes, I like command line interfaces, but why do they have to emulate typing on paper? No, get rid of stdin/stdout and all other file like/terminal like things. The OS should be graphical from the get go. There is not one single device today that does not have bitmapped high resolution graphics. Use that.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;No windows or desktops&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;The Windowing / desktop model of GUI's seemed like a good idea in the 70's and 80'. It made sense to me. &quot;Yes, we make the computer look like a real desk, and people will know how to use it&quot;. Well, for me that started to fall apart when you threw a floppy in the trashcan to eject in on Macs. And then, i think in 1990, somebody made an environment where you had a corridor and clicked on the basement door to get to the control panel where you could change setting. That's silly. The computer is &lt;em&gt;not&lt;/em&gt; the real world. There is no reason we should impose arbitrary restrictions on things just so they behave more like the real world. Drag and drop is a good idea for reorganizing, but &lt;em&gt;not&lt;/em&gt; for doing things. OS X obsession with dragging one icon to a hard disk icon to install things is pathetic. How is that easier than pushing a button to run an install program? (because that's what happens in the background in OS X too)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ironically, Windows &lt;em&gt;1&lt;/em&gt; got it right. Every program should be full screen. If you have a big screen and want to have many programs up at the same time, you can tile them so each get a half/third/quarter of the screen. You have notification bars that can blink, and todays wide screens could easily have an area for a twitter-type waterfall of notifications that programs can share, if you like that kind of distractions. A dialog box should always block your whole program. If not, it's not a bloody dialogbox, it's an area of your software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The MDI was a bad idea, the SDI even worse. The correct answer is: Tabs. Too bad it took us 30 years to figure that out, but we did. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The UI should of course support multi touch, but not require it, I think. There is a lot of research being done today on user interfaces, check that out. Other good inspirations are the UI Ubuntu uses for it's netbook edition, it has a window manager that only allows fullscreen programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One tricky UI issue is how to manage the distributed resources you get from my first point above. It should be easy to find a resource on any computer where you have access from any other. If you forgot your phone at home, you should be able to log into your work computer and still access everything stored on your phone, without having to browse/connect/login on that phone.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;IPC and multiprocessing and such&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;The kernel obviously needs to have good support for process communication, also via networking. Distributing software is a tricky issue at best, but the OS should bend over backwards to make it easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally, processors should also be shared resources, like storage so that when you on your phone makes a heavy calculation, the phone can dump the data onto your home PC over a 4G network and ask &lt;em&gt;it&lt;/em&gt; to do it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;OK, that's all the things I can thing about ranting on right now. :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update: No, two more things:&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;An access control system based on permissions, roles and groups.&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Both Windows and Unix permission system focus mostly on files, which is limiting. Unix permission system is also limited, hard to manage and generally pretty damn stupid. A good access control system has:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Permissions: And loads of them. Software can introduce new permissions. So you have the permission to change the screen resolution and a permission to shutdown, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Roles: Roles are groups of permissions. Hence, the &quot;Root&quot; role can do anything, and the &quot;Guest&quot; role have only some permissions.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Principals: Users, except that they don't have to be people. &quot;apache&quot; is not a user, it's a software. Hence it doesn't have a user it has a principal. &quot;Lennart Regebro&quot; is user. He also has a principal, &quot;regebro&quot;. :-)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Groups: Groups are groups of principals. Hence, every principal is a member of one of more groups. Groups have roles.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Hence, the mapping goes: Principal &quot;totte&quot; is a member of the &quot;2011 students&quot; group, which has the &quot;students&quot; role and also the &quot;school band&quot; group which has the &quot;musicians&quot; role. The &quot;Students&quot; role give basic access to most things on the school network, the &quot;Musicians&quot; role also give you the permission to log into the music recording computers in the recording studio.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Always on (kinda)&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I've seen many users having trouble understanding the difference between logging out, sleeping and shutting down. These are all pretty useless. You should always be logged in (but have to enter a password to get access if you have been idle for X minutes). If no-one is using the machine, the screen turns off. If nobody is using the hard drive and processor, they turn off too. If you are running on battery, this happens faster. When battery runs out, all non-persistent memory is flushed, and the device turns off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A reboot button somewhere in the control panel could be handy, I guess. But it can be pretty well hidden.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastEditorUserId="9529" LastEditorDisplayName="" LastEditDate="2010-12-17T08:46:41.407" LastActivityDate="2010-12-17T08:46:41.407" CommentCount="24" />
  <row Id="27277" PostTypeId="2" ParentId="27195" CreationDate="2010-12-17T08:25:22.040" Score="0" ViewCount="" Body="&lt;p&gt;I like &lt;a href=&quot;http://jsbin.com/&quot; rel=&quot;nofollow&quot;&gt;JSBin&lt;/a&gt;, a collaborative Online editor. It makes collaborative coding between multiply programmers very easy, it's also a good way to present your question online for help, because you can put your snippet on it and send generated link out, the snippet is runnable, another programmers can easily tweak your code base on your snippet and revise it send you back the new generated link where you can see their correction for your problem. It even includes version control function, which are very convenient way to track updates against to your original code.&lt;/p&gt;&#xA;" OwnerUserId="7136" LastActivityDate="2010-12-17T08:25:22.040" />
  <row Id="27278" PostTypeId="2" ParentId="27263" CreationDate="2010-12-17T08:28:16.467" Score="3" ViewCount="" Body="&lt;p&gt;It's elementary, my dear Watson! Code Reuse. When you separate the task of login and sending picture, some one else can also use your login, and someone else can also use your send_picture. Moreover if you have login and send_picture separate, how difficult is it to create easy_submit? &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-17T08:28:16.467" />
  <row Id="27279" PostTypeId="2" ParentId="27260" CreationDate="2010-12-17T08:28:34.953" Score="1" ViewCount="" Body="&lt;p&gt;This happens so often that no experienced project mananger will make much of a deal of it. Just be honest about it and don't make too optimistic new estimations; when you see it will take much longer, say it. Don't say &quot;I need a bit more time&quot; on a daily basis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will have to explain to the manager: was the estimate wrong in the first place or were adverse circumstances (spent a day hunting a bug) the reason for the delay? In the first case, something is wrong with the estimation process, maybe it's too optimistic or naive. In the second case, it's a case for the buffer that was hopefully included in the project plan.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-17T08:28:34.953" />
  <row Id="27280" PostTypeId="2" ParentId="27260" CreationDate="2010-12-17T08:29:46.200" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Options:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cut features&lt;/li&gt;&#xA;&lt;li&gt;Cut quality (leave bug fixes for later)&lt;/li&gt;&#xA;&lt;li&gt;Increase productivity&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Find and remove blockers&lt;/li&gt;&#xA;&lt;li&gt;Break/rest&lt;/li&gt;&#xA;&lt;li&gt;Cut personal/sleep time&lt;/li&gt;&#xA;&lt;li&gt;Get more workforce&lt;/li&gt;&#xA;&lt;li&gt;Get better tools&lt;/li&gt;&#xA;&lt;li&gt;Training&lt;/li&gt;&#xA;&lt;li&gt;Increase motivation&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Free food&lt;/li&gt;&#xA;&lt;li&gt;[Promise of] raise/promotion/vacation/bonus/etc.&lt;/li&gt;&#xA;&lt;li&gt;Threats&lt;/li&gt;&#xA;&lt;li&gt;Improve working conditions (better hardware, furniture, etc.)&lt;/li&gt;&#xA;&lt;li&gt;Change environment - work from a coffee shop or move the whole team somewhere cool - a mountain lodge or a lake house?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10453" LastActivityDate="2010-12-17T08:29:46.200" CommentCount="2" />
  <row Id="27281" PostTypeId="2" ParentId="27133" CreationDate="2010-12-17T08:31:23.343" Score="1" ViewCount="" Body="&lt;p&gt;While the work environment helps, it's only a small factor in your growth as a developer. The single most important thing is your desire to continue learning. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All the best developers I know have one thing in common. They spend significant amounts of time outside of work to continue their education. They read software engineering books, listen to podcasts, read technical magazines. Most importantly, they work on personal coding projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This leads to an interesting scenario. These people excel at their jobs. This results in them being given the more challenging tasks. This helps them grow even more. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, put the responsibility for your education in your own hands. Not your company's.&lt;/p&gt;&#xA;" OwnerUserId="10413" LastActivityDate="2010-12-17T08:31:23.343" CommentCount="2" />
  <row Id="27282" PostTypeId="2" ParentId="27263" CreationDate="2010-12-17T08:35:33.623" Score="6" ViewCount="" Body="&lt;p&gt;In general, shorter methods are more readable and easier to test with unit tests. Even if you do not plan to reuse the login and/or submit method, breaking it down makes testing and maintenance easier.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-17T08:35:33.623" />
  <row Id="27283" PostTypeId="1" AcceptedAnswerId="27287" CreationDate="2010-12-17T08:37:18.890" Score="4" ViewCount="276" Body="&lt;p&gt;The problem is that I want to do something in my extra time but do not have any idea what to do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What can I do in that time that is related to programming?&lt;/p&gt;&#xA;" OwnerUserId="10456" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-17T12:40:45.013" LastActivityDate="2010-12-18T10:17:46.427" Title="What can I learn that is related to programming in the extra time I have ?" Tags="&lt;programming-languages&gt;" AnswerCount="8" CommentCount="6" FavoriteCount="2" />
  <row Id="27284" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T08:37:19.597" Score="7" ViewCount="" Body="&lt;p&gt;It is an interesting question, I have thought on this many times. But there is no a definite answer, I think.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Following the &quot;cultural&quot; conventions it a good choice. &quot;Cultural&quot; in this case means conventions set up in the team/company and they basically carry the language/platform conventions as well. It helps others to read/use your code easily and doesn't require additional efforts and time to get into the way of understanding your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes it is interesting to break accepted notations. One of my small projects (on Python) I used &lt;code&gt;underscored_names&lt;/code&gt; for utility functions/&quot;protected&quot; methods, and Java-style &lt;code&gt;methodNames&lt;/code&gt; for methods. My team was happy with it :)&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-17T08:37:19.597" CommunityOwnedDate="2011-01-06T21:09:02.793" />
  <row Id="27285" PostTypeId="2" ParentId="27261" CreationDate="2010-12-17T08:38:09.950" Score="1" ViewCount="" Body="&lt;p&gt;For an expression evaluator like this, you dont need to manually process order of precedence by searching through the expression.  Another approach is to convert the expression into &lt;strong&gt;infix&lt;/strong&gt; notation (aka, RPN) using the &lt;a href=&quot;http://en.wikipedia.org/wiki/Shunting_yard_algorithm&quot; rel=&quot;nofollow&quot; title=&quot;Shunting Yard Algorithm&quot;&gt;Shunting Yard Algorithm&lt;/a&gt;.  This will handle operator precedence in a very efficient manner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once converted into infix, the expression can be calculated very easily and quickly.&lt;/p&gt;&#xA;" OwnerUserId="897" LastEditorUserId="897" LastEditorDisplayName="" LastEditDate="2010-12-17T08:44:03.283" LastActivityDate="2010-12-17T08:44:03.283" CommentCount="2" />
  <row Id="27286" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T08:40:37.920" Score="4" ViewCount="" Body="&lt;p&gt;Personally, I prefer camelCase, but in some fonts I think underscores are easier to read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest that if you need to use prefixes to differentiate sets of variables, you should use a language that lets you make namespaces or objects or something to hold that information.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;myName   = 7&#xA;bobsName = 8   // :(&#xA;&#xA;me.name  = 7&#xA;bob.name = 8   // :D&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Likewise, if you need to differentiate types, why not use a language that allows them?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var intThingy = 7; // :(&#xA;&#xA;int thingy = 7;    // :)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Once you have that straight, and you're not just using the name as meta-data, then you won't have enough long names that it matters very much whether you prefer that extra keypress or not.   &lt;/p&gt;&#xA;" OwnerUserId="8467" LastEditorUserId="8467" LastEditorDisplayName="" LastEditDate="2010-12-18T21:46:01.387" LastActivityDate="2010-12-18T21:46:01.387" CommunityOwnedDate="2011-01-06T21:09:02.793" CommentCount="1" />
  <row Id="27287" PostTypeId="2" ParentId="27283" CreationDate="2010-12-17T08:43:20.623" Score="13" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Try joining an open source project.&lt;/li&gt;&#xA;&lt;li&gt;Try to implement a simple game. You&#xA;will learn a lot by doing so.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8217" LastActivityDate="2010-12-17T08:43:20.623" CommentCount="2" />
  <row Id="27288" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T08:44:40.830" Score="5" ViewCount="" Body="&lt;p&gt;As most people have mentioned - Use the existing standard. If it's a new project, use the standard for the language and frameworks you will be using.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And don't get confused, this is not about readability (which is subjective), it's about being consistent and professional. Anyone who has worked in a codebase with numerous 'standards' going on will understand.&lt;/p&gt;&#xA;" OwnerUserId="10459" LastActivityDate="2010-12-17T08:44:40.830" CommunityOwnedDate="2011-01-06T21:09:02.793" />
  <row Id="27289" PostTypeId="2" ParentId="27231" CreationDate="2010-12-17T08:47:50.793" Score="1" ViewCount="" Body="&lt;p&gt;Since you don't mention what is special with the OS you are going do design, here is a general idea: a &lt;a href=&quot;http://en.wikipedia.org/wiki/Unsupervised_learning&quot; rel=&quot;nofollow&quot;&gt;self-learning&lt;/a&gt; OS which flexibly optimizes the kernel algorithms (task switching/scheduling) depending how it is used. Do not emulate DOS, Unix, Windows or anything else, since all the general ideas of modern OSes come from MULTICS and POSIX.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-17T08:47:50.793" />
  <row Id="27290" PostTypeId="2" ParentId="27195" CreationDate="2010-12-17T08:51:19.527" Score="1" ViewCount="" Body="&lt;p&gt;I have not seen a &quot;real IDE-level support&quot;. But I like to post code snippets at &lt;a href=&quot;http://ideone.com&quot; rel=&quot;nofollow&quot;&gt;Ideone online compiler&lt;/a&gt; (yes, it supports Lisp) as it ensures my readers that the code at least compiles and let them to test it without any external tools. Using the editor online is ok while there is no other option (basic functionalities like syntax highlighting is available).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looking to the nearest future I vote for hybrid systems. In my point of view online IDEs will grow and provide step by step more and more functionality. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The nice example is also a CodeToGo iApp (as a new user I can not give a link here but this is easy googlable) - it allows to program and test snippets with mobile devices.      &lt;/p&gt;&#xA;" OwnerUserId="10454" LastEditorUserId="10454" LastEditorDisplayName="" LastEditDate="2010-12-17T18:57:04.490" LastActivityDate="2010-12-17T18:57:04.490" />
  <row Id="27291" PostTypeId="2" ParentId="27283" CreationDate="2010-12-17T08:53:55.627" Score="3" ViewCount="" Body="&lt;p&gt;You could start with a book like &quot;Hello World&quot; by Warren D. Sande. After that you should a) know if you like programming and b) have a couple of ideas on what to do next.&lt;/p&gt;&#xA;" OwnerUserId="10461" LastActivityDate="2010-12-17T08:53:55.627" CommentCount="1" />
  <row Id="27292" PostTypeId="2" ParentId="27260" CreationDate="2010-12-17T08:54:43.243" Score="2" ViewCount="" Body="&lt;p&gt;Always keep the relevant stakeholders aware of your progress, including (especially!) the fact that your estimates were overly optimistic. They won't be happy, but they'll know where the project really stands and can plan accordingly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally your list of features will have been MoSCoWed - Must, Should, Could, Won't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you're heading for overrun, cut the Coulds, then the Shoulds. Cut features so you can ship on time: your project usually doesn't live in isolation, and you going past release date means the downstream projects will now also overrun their schedule.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally you'll only have ~60% Musts. If you have to cut those you're in very deep trouble (having a very serious overrun), in which case you'll have to cut corners.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure that you give yourself enough time after release to clean up the mess made by cutting corners!&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-12-17T08:54:43.243" CommentCount="6" />
  <row Id="27293" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T08:57:16.140" Score="44" ViewCount="" Body="&lt;p&gt;I agree that it depends on the language you're using to some extent; code tends to look neater when your symbol names follow the same formatting regimen as the language's built-ins and stock libraries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But where there's a choice, I prefer underscores to camel case, for one simple reason: I find that style easier to read. Here's an example: which do you find more readable? This:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;aRatherLongSymbolName&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or this: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;a_rather_long_symbol_name&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I find the underscore version much easier to read. My brain can ignore the underscores much more easily than it can detect the lowercase/uppercase boundaries in camel case, especially where the boundaries are between glyphs that look similar to other glyphs of the opposite case, or numerals (&lt;code&gt;I/l&lt;/code&gt;, &lt;code&gt;O/0&lt;/code&gt;, &lt;code&gt;t/I&lt;/code&gt;, etc). For example, this boolean variable stores a value indicating whether or not an Igloo has been built with proper planning permission (undoubtedly a common use case for us all):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;isIllicitIgloo&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I find this version a &lt;em&gt;lot&lt;/em&gt; easier to read:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;is_illicit_igloo&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Perhaps even worse than a hard-to-read symbol name is an easy-to-misread symbol name. Good symbol names are self-documenting, which to me means that you should be able to read them and understand their meaning at a glance. (I'm sure we all read code print-outs in bed for pleasure, but occasionally we grok in haste, too.) I often find with camel case symbol names that it's easy to mis-read them and get the wrong impression of a symbol's semantics.&lt;/p&gt;&#xA;" OwnerUserId="5245" LastActivityDate="2010-12-17T08:57:16.140" CommunityOwnedDate="2011-01-06T21:09:02.793" CommentCount="9" />
  <row Id="27294" PostTypeId="2" ParentId="27283" CreationDate="2010-12-17T08:57:32.303" Score="4" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Pick up a good book about Programming(languages) and read/analyse it thoroughly.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Read Programming related &lt;strong&gt;blogs&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Implement toy apps(which will somehow help you in future).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Subscribe to various mailing lists. They definitely help you.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Watch out for online news about changes in Programming world.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4522" LastActivityDate="2010-12-17T08:57:32.303" />
  <row Id="27295" PostTypeId="2" ParentId="27283" CreationDate="2010-12-17T08:58:10.080" Score="3" ViewCount="" Body="&lt;p&gt;If you haven't already, read &lt;a href=&quot;http://www.charlespetzold.com/code/&quot; rel=&quot;nofollow&quot;&gt;Code&lt;/a&gt; by Charles Petzold. &lt;/p&gt;&#xA;" OwnerUserId="555" LastActivityDate="2010-12-17T08:58:10.080" />
  <row Id="27296" PostTypeId="2" ParentId="26931" CreationDate="2010-12-17T09:01:53.897" Score="4" ViewCount="" Body="&lt;p&gt;The best practice for UI Automation Testing is to do as little as possible. UIs change frequently, which means you're constantly having to update your automation. It's generally preferable to structure the product code in a way which allows automated testing without UI Automation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, you can't always get rid of UI Automation. You mention office so I'm assuming you're coding for Windows and using .Net. I do quite a bit in my current job. Here are some of the things I've learned. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Look at the UIAutomation libraries which were introduced in .Net 3.0. They provide an extensive and fairly simple to use library for automation. (http://msdn.microsoft.com/en-us/library/ms753107.aspx)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Download UISpy (http://msdn.microsoft.com/en-us/library/ms727247.aspx)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Make your product's UIs Automatable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;3a) If it's WPF put AutomationIDs on everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3b) Try to create distinctive control and window class names (UI Class names, not source code class name). If you don't know what I mean, load up UI Spy and start looking at windows. Notice how many windows across different apps have a class name of #32770. This is the class name for a Windows Dialog Box. Any window which extends the dialog and doesn't set it's own name, defaults to this. This causes all sorts of grief from an UI Automation standpoint.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) Avoid Thread.Sleep() statements. Try to use Waiters (see UIAutomation docs) instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) NEVER mix the test code with the UI Automation code. Create separate libraries to perform the UI Automation. Call these libraries from your tests. When the UI changes, this will make it much easier to update the automation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;6) Always register a listener for a UI Event before performing the action which would cause the event to fire. In practice, this means you'll be working with threads.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;6a) Example: don't start waiting for a Window Opened event after you have clicked a button to open the window. The window may open before the waiter is registered and never get the event. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;7) Never assume the window that just opened is the one you want. All sorts of window may open unexpectedly in Windows. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I could go on more, but this is getting a bit long.&lt;/p&gt;&#xA;" OwnerUserId="10413" LastActivityDate="2010-12-17T09:01:53.897" CommentCount="1" />
  <row Id="27297" PostTypeId="2" ParentId="26970" CreationDate="2010-12-17T09:04:57.810" Score="0" ViewCount="" Body="&lt;p&gt;I strongly agree that if you're using the right tool for the job. It will add to your appeal.&lt;/p&gt;&#xA;" OwnerUserId="2185" LastActivityDate="2010-12-17T09:04:57.810" />
  <row Id="27298" PostTypeId="2" ParentId="27226" CreationDate="2010-12-17T09:13:31.043" Score="1" ViewCount="" Body="&lt;p&gt;You need to be able to write functional and practical code. All too often Masters and PHD graduates get so steeped in theory that their coding skills become non-existent.&lt;/p&gt;&#xA;" OwnerUserId="10413" LastActivityDate="2010-12-17T09:13:31.043" />
  <row Id="27299" PostTypeId="1" AcceptedAnswerId="27342" CreationDate="2010-12-17T09:21:11.067" Score="1" ViewCount="75" Body="&lt;p&gt;I'm working on a series of inter-related but separate web applications, all situated on the same host:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Super Admin&#xA;|&#xA;---Site Network Admin&#xA;|   |&#xA;|   ---Site&#xA;|   |&#xA;|   ---Site&#xA;|   |&#xA;|   ---Site&#xA;|&#xA;---Site Network Admin&#xA;    |&#xA;    ---Site&#xA;    |&#xA;    ---Site&#xA;    |&#xA;    ---Site&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;All three will have access to the same core library (Zend Framework), and separate application libraries for each tier in the network - thus 3 applications and one library - but different configurations to support unique instances.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm interested to hear people's opinion on the best database strategy to support these applications. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the one hand, I could deploy one database, or perhaps one for each application level (i.e. 3). This has the advantage of being easy to roll out changes, but the disadvantage that users share the access burden - i.e. if one user is really hammering the database, the performance of other applications sharing the database will suffer. Another disadvantage is that any data corruption could potentially affect all end users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other, I could utilise a series of databases - one for the first two tiers to share administrative data - but separate instances for each site deployed on the network. This has the advantage that end users are isolated and thus data corruption is more easy to contain. The disadvantage is obviously the converse of the previous example - in that changes are then harder to roll out across the network. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My thinking is that it's dictated by usage vs user population. If you have low quantities of users, but they interact with the database a lot - then plan B is best. If it's the former, that you have high yields of users with low interaction rates - then plan A is best. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm interested to hear other people's thoughts as to the best approach for dealing with this situation.&lt;/p&gt;&#xA;" OwnerUserId="3712" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-12-17T17:35:15.097" LastActivityDate="2010-12-17T17:35:15.097" Title="Database strategy for connected but disparate applications" Tags="&lt;php&gt;&lt;database-development&gt;&lt;zend&gt;" AnswerCount="1" />
  <row Id="27300" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T09:23:44.290" Score="3" ViewCount="" Body="&lt;p&gt;I read several years ago that programmers who don't speak English as a first language tend to find underscore case easier to understand that camel case- but I can't find the reference, and I have no idea whether it's true. &lt;/p&gt;&#xA;" OwnerUserId="4236" LastActivityDate="2010-12-17T09:23:44.290" CommunityOwnedDate="2011-01-06T21:09:02.793" />
  <row Id="27301" PostTypeId="1" AcceptedAnswerId="27305" CreationDate="2010-12-17T09:25:17.130" Score="11" ViewCount="214" Body="&lt;p&gt;Is unit testing a 100% or not at all kind of deal?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was browsing through my old projects and started adding features, this time with unit testing.  However, is this ultimately worthless if I'm going to be re-using past components that do not have unit tests?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do I need to write unit tests for all the previous classes and not bother at all, or is it OK to only write unit tests for the new stuff I'm adding?&lt;/p&gt;&#xA;" OwnerUserId="10430" LastActivityDate="2010-12-17T18:09:55.033" Title="Writing Unit Tests in the Middle" Tags="&lt;unit-testing&gt;" AnswerCount="6" FavoriteCount="2" />
  <row Id="27302" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T09:26:10.920" Score="4" ViewCount="" Body="&lt;p&gt;I use a mix sometimes: module_FunctionName. All (non-static) functions in my modules start with a module abbreviation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example a function for sending a buffer's content on the I2C bus:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;i2c_BufferSend()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The alternative &lt;code&gt;i2c_buffer_send&lt;/code&gt; does not show a big enough separation between prefix and function name. &lt;code&gt;i2cBufferSend&lt;/code&gt; mixes in the prefix too much (there are quite a number of I2C functions in this module).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;i2c_Buffer_send&lt;/code&gt; might have been an alternative, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My answer being that you adapt to what works best for your project (your language, your SW architecture, ...), and I wanted to point out that mixing these styles might be useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;myGeneralOpinionIsThatNamesAreMuchHarderToReadInCamelCase. I_respect_the_fact_that_some_could_think_otherwise_but_I_do_not_really_understand_why.&lt;/p&gt;&#xA;" OwnerUserId="6363" LastActivityDate="2010-12-17T09:26:10.920" CommunityOwnedDate="2011-01-06T21:09:02.793" CommentCount="2" />
  <row Id="27303" PostTypeId="2" ParentId="27258" CreationDate="2010-12-17T09:26:37.970" Score="0" ViewCount="" Body="&lt;p&gt;If I understand the question correctly, you'll still have your model and controller classes. Your view, which normally would come from Interface Builder, is now being constructed in the controller. I like to call the pattern M/VC, where the view and controller are the same, but the model is still separated.&lt;/p&gt;&#xA;" OwnerUserId="10479" LastActivityDate="2010-12-17T09:26:37.970" CommentCount="1" />
  <row Id="27304" PostTypeId="2" ParentId="27226" CreationDate="2010-12-17T09:27:55.367" Score="1" ViewCount="" Body="&lt;p&gt;When working for me, I expect you to be able to talk to a customer and extract his needs from the story he tells you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also expect you to have at least a basic knowledge of relational databases, source control and GOOD communication skills. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You would also need to be able to solve small problems without consulting a senior. So no standing at my desk while shouting &quot;It doesn't work&quot;. ;-)&lt;/p&gt;&#xA;" OwnerUserId="2206" LastActivityDate="2010-12-17T09:27:55.367" />
  <row Id="27305" PostTypeId="2" ParentId="27301" CreationDate="2010-12-17T09:29:02.130" Score="11" ViewCount="" Body="&lt;p&gt;Any unit tests are better than none. So it's not an all-or-nothing deal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your case, since Test Driven Development has not been the norm - you'll wonder how the tests are of any use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You want to ensure that &lt;em&gt;any future code you write doesnt break any (current) functionality&lt;/em&gt; - and that's where your sub-cases come in handy. If the well-written tests pass, you most likely have not damaged anything.&#xA;The next developer who comes along will thank you for the tests and documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you can start with is if you have a well split up layered architecture, pick up the data access tiers and work upwards (towards UI tier) with the tests. If the project has a domain model its the most likely candidate for TDD as its likely to have most of the logic. If the service (or business logic) tier is just making a call to Domain/Data Access tier no point in doing Service tier in TDD fashion. Those are fluffy tests and not of much value. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Added to a code coverage tool like Emma - and you can steadily monitor the improvement in overall test coverage.&lt;/p&gt;&#xA;" OwnerUserId="1681" LastEditorUserId="1681" LastEditorDisplayName="" LastEditDate="2010-12-17T09:36:12.503" LastActivityDate="2010-12-17T09:36:12.503" CommentCount="1" />
  <row Id="27307" PostTypeId="2" ParentId="27260" CreationDate="2010-12-17T09:30:02.600" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Delivering Bad News&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You absolutely need to raise the matter promptly, however if you can do so in a reasonable timescale (that is a few hours, not more) you should do a bit of an impact assessment before you do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As with all bad news it's best to provide detailed information (rather than just blurt out &quot;it's going to be late&quot;) so provide as much / many of:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Revised estimates / timescales for the tasks which have slipped.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Revised estimates / timescales for future tasks which you now think, in light of knowing that some things have already over run, may take longer.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Very brief reasons why the slippage has occurred (don't spin, just the truth, but don't sound like you're making excuses).  In this case you state &quot;We estimated based on rules X and Y but they've now included Z which was never mentioned&quot;.  He may be able to use this in explaining the delay to clients and educating them on the importance of being thorough in the first place.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) If possible alternatives to bring things back on track (usually reducing scope but there may be other options - other parts of the project may be ahead of time and it may be possible to move tasks around).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember with slippages the psychological / credibility impact is culmulative.  You may be able to get away with one but the second one will be a lot tougher and the third on tougher still.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's why point 2 is important - revise not just what's already slipped but also future tasks which you now think may take longer than originally anticipated.  Slipping happen in ITs, not learning from your mistakes is a bigger sin.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Preventing Having To Deliver Bad News&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are two scenarios here:  first, you didn't do the estimates yourself in which case there's not much you can do other than to push to be involved in the estimates next time round.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, you did do the estimates yourself in which case you need to look at how to do better estimates.  For me the key phrase in the question is &lt;em&gt;&quot;there are always surprises since the business rules are too complex&quot;&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With respect, &lt;strong&gt;if it always happens, it shouldn't be a surprise&lt;/strong&gt;.  If you only ever get half of the business rules then you need to assume that in your estimates and allow for the feature creep.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can either do this by increasing the estimates for the rules you do have (it works but you're not educating anyone as to what's really happening), but better is to state with your estimates &quot;Historically the rules we get are a simplified version of what they really want.  The rules they've stated will take 3 days to implement, however we should allow another 3 days contingency for the rules that haven't been mentioned but are likely to be discovered during development and testing.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the PM questions this then you need to remind him of all the times it's been true (with examples - it's hard to argue examples) and also gently suggest that it's in his interest to deliver on time as well as yours so isn't it better to be conservative?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the bottom line: if you always underestimate because of a specific factor (in this case feature creep) then figure that into your estimates.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-17T10:01:22.700" LastActivityDate="2010-12-17T10:01:22.700" CommentCount="3" />
  <row Id="27308" PostTypeId="2" ParentId="27301" CreationDate="2010-12-17T09:30:34.117" Score="2" ViewCount="" Body="&lt;p&gt;(for the lack of commenting ability) I think it is better than not to test at all. Not every snippet needs to be tested, but only what will be used by the programmer eventually. Testing the utilitiy functions that you use internally is good, but not required if you access everything through a clean API afterwards.&lt;/p&gt;&#xA;" OwnerUserId="10445" LastActivityDate="2010-12-17T09:30:34.117" />
  <row Id="27309" PostTypeId="2" ParentId="27283" CreationDate="2010-12-17T09:34:41.253" Score="3" ViewCount="" Body="&lt;p&gt;Whenever I want to learn a new language or technique I usually write some kind of small program or website that helps me with a hobby or interest of mine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you're a reader, an application to organize your books&lt;/li&gt;&#xA;&lt;li&gt;If you're a gamer, something to help make gaming simpler&lt;/li&gt;&#xA;&lt;li&gt;If you're a cook, a recipe organizer&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Writing a program based on something you're interested in helps keep your focus on the project.&lt;/p&gt;&#xA;" OwnerUserId="1274" LastActivityDate="2010-12-17T09:34:41.253" />
  <row Id="27311" PostTypeId="2" ParentId="27301" CreationDate="2010-12-17T09:35:14.253" Score="1" ViewCount="" Body="&lt;p&gt;You can start covering your current code and, if you have some time to spend, start covering core functionality of old code. Also you can ask your PM for some extra time for that=)&lt;/p&gt;&#xA;" OwnerUserId="8153" LastActivityDate="2010-12-17T09:35:14.253" />
  <row Id="27312" PostTypeId="2" ParentId="27301" CreationDate="2010-12-17T09:35:46.107" Score="2" ViewCount="" Body="&lt;p&gt;If the old stuff has been working fine for years, creating the unit tests now is not mandatory unless you change something in the old stuff. Anyway, writing unit tests for the new parts is not at all pointless. The new parts are the ones most likely to contain bugs, and they are also the parts most likely to be changed or refactored.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-17T09:35:46.107" CommentCount="2" />
  <row Id="27313" PostTypeId="2" ParentId="6543" CreationDate="2010-12-17T09:39:15.590" Score="0" ViewCount="" Body="&lt;p&gt;My (simple) two cents:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1:&#xA;There are ORMS and there are ORMS. Some ORMS are based on Active Record, others based on Data Mapper - that in itself is a relevant consideration, but one that requires some investigation to understand the implications. In general - my experience in PHP is that ORMS support the former, few support the latter. &#xA;Active Record based ORMs seem to have one of two effects - they either de-normalise the database, or invoke a plethora of classes to support object interactions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2: &#xA;The advantage of ORMs diminish in direct correlation to the complexity of the query you need to run. When you have a nice simple relationship - i.e. Users -&gt; Posts, they can work very well. This (IMO) is why most ORMs/frameworks use examples like this. When you need to run complex queries, however, the amount of ORMQL you need to generate is comparable to the string length of a regular SQL query - but less performant owing to the object graph running the query invokes, which kind of defeats the point of abstraction. So, in a nutshell - ORM's are brilliant for the first 30-50% of your database tasks - but terrible for the last. I think this is another reason why AR is so prevalent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3:&#xA;Why hide from the database? Would you use a server side language to abstract javascript?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I mix those approaches:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;use ORM for the basics, loading &quot;users&quot;&lt;/li&gt;&#xA;&lt;li&gt;use a DAO containing several pre-baked SQL queries (i.e. selectLike, selectWhere). &lt;/li&gt;&#xA;&lt;li&gt;extend the DAO where necessary to add more specific but re-usable custom queries&lt;/li&gt;&#xA;&lt;li&gt;Provide simple database access through the DAO - i.e. $data = Dao-&gt;query(your sql string) to execute one off queries. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Having said all that, Doctrine 2 is coming out soon, which looks really interesting. &lt;/p&gt;&#xA;" OwnerUserId="3712" LastActivityDate="2010-12-17T09:39:15.590" />
  <row Id="27314" PostTypeId="2" ParentId="26970" CreationDate="2010-12-17T09:39:53.210" Score="0" ViewCount="" Body="&lt;p&gt;From everything I've read, everyone is speaking from the view of programmers and none seem to be from actual employers.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;I think most employers needing your services would not care (or more importantly even notice) if you used a stock WordPress install to run your site.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Other developers may look at it and say, &quot;&lt;em&gt;he's lazy&lt;/em&gt;,&quot; but then they will realize that they don't have the time to devote to their own projects either.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think that it's probably best to get a decent site up and running quickly with a professional looking theme and then when you get that rare off-week where you have a ton of free time, then do a complete redesign of the entire site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's just my 2&amp;cent;&lt;/p&gt;&#xA;" OwnerUserId="10480" LastActivityDate="2010-12-17T09:39:53.210" />
  <row Id="27315" PostTypeId="2" ParentId="26191" CreationDate="2010-12-17T09:40:36.487" Score="0" ViewCount="" Body="&lt;p&gt;In principle, it’s simple. You’re looking for people who are&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Smart, and&lt;/li&gt;&#xA;&lt;li&gt;Get things done.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/items/2007/06/05.html&quot; rel=&quot;nofollow&quot;&gt;The Guerrilla Guide to Interviewing by Joel Spolsky&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1502" LastActivityDate="2010-12-17T09:40:36.487" />
  <row Id="27316" PostTypeId="2" ParentId="27195" CreationDate="2010-12-17T09:48:16.660" Score="0" ViewCount="" Body="&lt;p&gt;Not quite what you're looking for, but &lt;a href=&quot;http://ares.palm.com/Ares/about.html&quot; rel=&quot;nofollow&quot;&gt;Palm's Ares IDE&lt;/a&gt; is an example of where things could be headed. Currently this is the only web IDE that I consider &quot;ready&quot; for use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think there's a confusion between web-based and remote-operation. One does not necessarily imply the other. I can imagine future IDE's that run locally but are loaded from a remote web server (with offline caching).&lt;/p&gt;&#xA;" OwnerUserId="2063" LastActivityDate="2010-12-17T09:48:16.660" />
  <row Id="27317" PostTypeId="1" CreationDate="2010-12-17T10:03:30.640" Score="1" ViewCount="225" Body="&lt;p&gt;With more and more build automation and continuous integration, software configuration/release management seems to have become fairly trivial. &#xA;In this scenraio, &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What are the growth prospects for a&#xA;full time configuration/release&#xA;managers ?   &lt;/li&gt;&#xA;&lt;li&gt;Why would anyone want to&#xA;hire a full time configuration/build&#xA;engineer ?   &lt;/li&gt;&#xA;&lt;li&gt;Also, what are some of&#xA;the areas in which configuration&#xA;managers can branch out to prevent&#xA;themselves from being redundant ?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2861" LastActivityDate="2010-12-17T17:21:37.510" Title="Is there a future for full time software configuration managers/engineers ?" Tags="&lt;career-advice&gt;&lt;software-configuration&gt;" AnswerCount="7" />
  <row Id="27318" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T10:03:49.513" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Copy the Smartest Guys&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the case of programming languages, copy the style of the developer of the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example I code C exactly as is done in K&amp;amp;R.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then when anybody tries to start a boring coding style conversation, I can tell them &quot;bring that up with Dennis Ritche and let me know what he says.&quot;&lt;/p&gt;&#xA;" OwnerUserId="5069" LastActivityDate="2010-12-17T10:03:49.513" CommunityOwnedDate="2011-01-06T21:09:02.793" CommentCount="5" />
  <row Id="27320" PostTypeId="2" ParentId="26730" CreationDate="2010-12-17T10:13:02.467" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Try to carpool with a smart coworker&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started my current job with a really long commute:  Cupertino to Emeryville, which was 103.7 miles round trip through two of Silicon Valley's biggest traffic jams.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It turned out to be a positive thing, since I found one of my experienced co-workers was close to my house, and I was his ticket onto the diamond lane if we carpooled.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I spend about 2-3 hours a day being tutored by a really smart guy with lots of experience in our work, which really helped me get started.&lt;/p&gt;&#xA;" OwnerUserId="5069" LastActivityDate="2010-12-17T10:13:02.467" />
  <row Id="27321" PostTypeId="2" ParentId="27260" CreationDate="2010-12-17T10:15:59.613" Score="0" ViewCount="" Body="&lt;p&gt;This is a common problem :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the more simple approaches is to add a buffer to any estimation you do, as unforseen problems always occur. The size of the buffer depends on the size of the team and the uncertainty of the technology and problem itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bigger teams have more people who might get sick and less people that know &quot;everything&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;New technologies are always riskier than the ones you already know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And when you see that you won't be finished on the estimated date, communicate early with the stakeholders.&#xA;Maybe you can re-prioritize stuff or delay certain features after speaking with the customer/stakeholder. &lt;/p&gt;&#xA;" OwnerUserId="10504" LastActivityDate="2010-12-17T10:15:59.613" />
  <row Id="27322" PostTypeId="2" ParentId="27317" CreationDate="2010-12-17T10:16:21.813" Score="4" ViewCount="" Body="&lt;p&gt;In the company I work for the vacancy for a Release Manager just opened up. It's being considered as one of the most important positions to fulfill.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What we are operating in though is an environment where we have 50+ applications running on 36+ (virtual) servers with 5+ teams operating on 2 or more of these applications at the same time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The release manager is responsible for coordinating all these different activities, providing each of the teams with their own dev environment (consisting of 36+ virtual servers) and migrating these changes across the different integration/staging/production environments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's quite a challenge and we're currently working towards adopting Puppet and integrating it with Maven (J2EE-shop) so that we can move towards situations where we can easily deploy an entire new dev environment for new teams and actually setup this entire 36+ server configuration for unit tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you can get yourself to the point where you can help companies organize something like this, you'd be set for quite a while.&lt;/p&gt;&#xA;" OwnerUserId="10511" LastActivityDate="2010-12-17T10:16:21.813" />
  <row Id="27323" PostTypeId="1" AcceptedAnswerId="27347" CreationDate="2010-12-17T10:19:10.813" Score="0" ViewCount="42" Body="&lt;p&gt;I can't guess the perfect title of this question, so please read my case and please help me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have 4 different products. Each is having their own site and database, means they are totally independent.&#xA;Now I want a common system that can manage &quot;contact us&quot; page inquiries.&#xA;Moreover I can pull out the contact inquires from each database. And even I should be able to send bulk mail to all of them. etc etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what kind of application is this? Is there any software available? If yes then which are those? Or do I need to create a new custom application?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please advise..&lt;/p&gt;&#xA;" OwnerUserId="9421" LastActivityDate="2010-12-17T12:24:11.460" Title="How to manage Inquiries of more than one products?" Tags="&lt;web-development&gt;&lt;design&gt;&lt;management&gt;" AnswerCount="1" />
  <row Id="27324" PostTypeId="1" CreationDate="2010-12-17T10:25:13.747" Score="24" ViewCount="1081" Body="&lt;p&gt;I find it extremely frustation to have to reach out for the shift key about  5000 times a day - I'm a programmer. There are hundreds of different types of hammers, but only a few keyboard designs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And.. more interestingly - what would a programmer specific keyboard look like ?&lt;/p&gt;&#xA;" OwnerUserId="10515" LastActivityDate="2010-12-19T01:31:57.463" Title="Why don't we have job specific Keyboards ?" Tags="&lt;keyboard&gt;" AnswerCount="23" CommentCount="21" FavoriteCount="5" />
  <row Id="27325" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T10:31:12.770" Score="12" ViewCount="" Body="&lt;p&gt;Because you will get used to them and do not want to work with a normal keyboard anymore? It's like customizing your development environment.... at some point you will get really uncomfortable when you don't have you ideally setup totally customized setup. Working on a different setup will soon lead to frustration and make you loose motivation really quick.&lt;/p&gt;&#xA;" OwnerUserId="10445" LastActivityDate="2010-12-17T10:31:12.770" CommentCount="6" />
  <row Id="27327" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T10:33:09.583" Score="1" ViewCount="" Body="&lt;p&gt;Shift and Alt-Gr cause me the most grief (on Swedish keyboards { and } are Alt-Gr-7 and Alt-Gr-0). Perhaps some kind of pedal contraption would help?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.xkeys.com/xkeys/xkfoot.php&quot; rel=&quot;nofollow&quot;&gt;http://www.xkeys.com/xkeys/xkfoot.php&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3209" LastActivityDate="2010-12-17T10:33:09.583" CommentCount="5" />
  <row Id="27328" PostTypeId="1" AcceptedAnswerId="27406" CreationDate="2010-12-17T10:38:12.373" Score="3" ViewCount="625" Body="&lt;p&gt;I've never been really convinced of the advantages that you get by switching over to RSpec from Test::Unit in Ruby on Rails (despite reading from time to time about RSpec).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is it about RSpec that most Rails project seems to be using it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(some code examples clearly indicating advantages of one over the other would be much appreciated)&lt;/p&gt;&#xA;" OwnerUserId="2563" LastActivityDate="2010-12-17T14:56:35.607" Title="RSpec vs Test::Unit in Rails" Tags="&lt;testing&gt;&lt;unit-testing&gt;&lt;ruby-on-rails&gt;" AnswerCount="2" FavoriteCount="3" />
  <row Id="27329" PostTypeId="2" ParentId="27317" CreationDate="2010-12-17T10:48:05.527" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;seems to have become fairly trivial.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In a complex environment (as in may an enterprise scale organisations) with many separate parts to the overall system. Parts coming from different parts of the organisation on different technologies for different parts of the business to different timescales coordination and tracking to ensure things keep working together is a complex and difficult task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Much of the effort is program management (in the non-MS sense: a program is a grouping of related development and deployment projects) and change management, but ensuring the right sub-systems are built together so interfaces (local or remote) mesh is part of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has never been really needed for smaller teams delivering a system without many external dependencies which is the majority of development efforts.&lt;/p&gt;&#xA;" OwnerUserId="542" LastActivityDate="2010-12-17T10:48:05.527" />
  <row Id="27330" PostTypeId="2" ParentId="27260" CreationDate="2010-12-17T10:52:15.527" Score="6" ViewCount="" Body="&lt;p&gt;Time-based estimates are guesses about the future, and that will always fail in the long run. It's a pointless battle you can't win. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Stop estimating in days&lt;/strong&gt; and start &lt;strong&gt;using relative estimation&lt;/strong&gt; instead. Here is a simple example:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Assign a number to each task. The toughest task may be 10 and the easiest task 1. &lt;/li&gt;&#xA;&lt;li&gt;Start programming to complete your tasks.&lt;/li&gt;&#xA;&lt;li&gt;After one week, stop your work and sum all completed tasks' numbers. Lets say you end up with 14. That's your weekly velocity.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Next week, repeat the process again. I bet your velocity will change, but not much. After a few weeks with this, your velocity should be pretty stable and that is what we are aiming for. Now you can start making plans with confidence. Pick tasks that sums up to your velocity and your PM can be quite certain it will be completed as promised. &lt;strong&gt;That is how you should tackle your project leaders.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-12-17T16:10:03.000" LastActivityDate="2010-12-17T16:10:03.000" CommentCount="2" />
  <row Id="27331" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T10:52:49.750" Score="8" ViewCount="" Body="&lt;p&gt;In general, I prefer camelCase.  However, that is because most of my career, I've working in languages and environments where the style guides normally recommend camelCase.  (Java, ECMAScript, C++).  You, being a PHP person, are likely to have the opposite preference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, when you go beyond threeOrFourWords, or if you use initialisms likeXmlForExample, it stops being so readable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is why emacs gives us glasses-mode.&lt;/p&gt;&#xA;" OwnerUserId="628" LastActivityDate="2010-12-17T10:52:49.750" CommunityOwnedDate="2011-01-06T21:09:02.793" CommentCount="3" />
  <row Id="27332" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T10:54:28.443" Score="8" ViewCount="" Body="&lt;p&gt;why not remap your keyboard? I have a Das Keyboard so I can remap without it getting confusing (and I have done, but only on a couple of outlying symbol keys).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it's the same reason that everyone in the British Army, regardless of where they are going, or what rank they are, gets given the same pair of boots. Sure, you can buy some Gucchi pair to make your life easier, but when you've been in the jungle 6 months and they para-drop you a new pair, they're going to be standard issue, so you'd better get used to them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can't every guarantee you're always going to have your favourite keyboard or mapping to hand when you need to work, so sticking to the standard layout will mean you're always on top-form, wherever you are.&lt;/p&gt;&#xA;" OwnerUserId="550" LastActivityDate="2010-12-17T10:54:28.443" CommentCount="2" />
  <row Id="27333" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T11:05:23.350" Score="0" ViewCount="" Body="&lt;p&gt;Having keyboard for each action will probably increase dramatically the time it will take you to search for each key. By the way, you may want to post your question here - &lt;a href=&quot;http://ui.stackexchange.com/&quot;&gt;http://ui.stackexchange.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8410" LastActivityDate="2010-12-17T11:05:23.350" CommentCount="1" />
  <row Id="27334" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T11:21:11.570" Score="9" ViewCount="" Body="&lt;p&gt;Touch typist tip:  Remap caps lock to be an additional control key (like the old sgi/solaris/etc keyboards).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It keeps you closer to the home row and goes great with vim.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I think &quot;programmer specific keyboard&quot; I immediately think kinesis ergo.  Like vim, the initial (time) investment has more than payed itself off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.kinesis-ergo.com/contoured.htm&quot; rel=&quot;nofollow&quot;&gt;http://www.kinesis-ergo.com/contoured.htm&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10528" LastActivityDate="2010-12-17T11:21:11.570" CommentCount="3" />
  <row Id="27335" PostTypeId="1" AcceptedAnswerId="27339" CreationDate="2010-12-17T11:25:30.187" Score="8" ViewCount="293" Body="&lt;p&gt;I've been reading and thinking a lot lately, and I've come to the conclusion that I maybe I should rethink my web development strategy. I'm doing a lot of on-the-fly programming, and in the 2 years I've been working on a PHP web application, what might have begun as a little tool became quite the big project. But there is a ton of &lt;em&gt;legacy&lt;/em&gt; code from me and my predecessor, snippet of code that might have make sense at the time, but now I'm questioning the usefulness of said code in the form it is actually. Furthermore so such things like unit testing and Test-Driven Development wasn't in my scope until quite recently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So how would you approach refactoring the web application? What would be the things I should look for and in which order? What about browser game versus functional web app? Would there be then difference in the approach?&lt;/p&gt;&#xA;" OwnerUserId="8594" LastActivityDate="2010-12-19T20:13:56.503" Title="How to approach refactoring an existing web application?" Tags="&lt;web-applications&gt;&lt;refactoring&gt;" AnswerCount="5" CommentCount="6" FavoriteCount="3" />
  <row Id="27336" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T11:26:05.890" Score="22" ViewCount="" Body="&lt;p&gt;I can tell you my story of when I tried Svorak (a Swedish version of Dvorak).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd heard that Dvorak is suppose to improve your typing accuracy and speed, so I decided to try it out. It took me a few months to learn and reach the same speed as I had with Qwerty. I must say that while I didn't necessarily type faster, I did type fewer mistakes. And the typing just felt more natural as I used both hands equally as much (try typing &quot;stewardess&quot; on Qwerty).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, after a year I decided to swith back to Qwerty? Why?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Whenever I had to switch and sit by someone else's computer, I would be completely handicapped as it wasn't Dvorak anymore. And Dvorak had replaced Svorak in my muscle memory so I just couldn't type it anymore. I had to resort to hunt-and-peck.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;No shortkeys any longer made sense. Just a simple copy-and-paste was difficult to do since the keys C and V don't lie on locations which make sense for such a combination.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So while the experience was interesting, I don't think using job-specific keyboards is a good idea, for the same reason as why I don't use Svorak. The keyboard layout itself was excellent, and it would probably make perfect sense if you were that lone guy in Office Space who was relocated to the basement. But when you're the only one who uses it and you have to interact with others and sometimes sit by their computers, you're screwed.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-12-17T22:02:12.697" LastActivityDate="2010-12-17T22:02:12.697" CommentCount="6" />
  <row Id="27337" PostTypeId="1" CreationDate="2010-12-17T11:27:17.210" Score="4" ViewCount="179" Body="&lt;p&gt;I can read the website blurb and be impressed by the alleged benefits, but I haven't worked anywhere or with anyone who followed the TOGAF (or any alternative) architecture framework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our organisation has declared itself dedicated to moving from what is currently a fairly shambolic design &amp;amp; development model towards something approaching a modern structured process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things like TOGAF have been mentioned as helping achieve a world-class enterprise development environment (!) but I'm convinced that no-one here really understands the real-world benefits that wholesale adoption might bring and, perhaps more importantly, the effort/pain required to achieve the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have experience in using TOGAF or similar to wrestle control in an organisation?  Do you think that use of the framework brought any benefit?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;:  For clarification TOGAF is &quot;The Open Group Architecture Framework&quot;, a detailed method and set of tools for developing an enterprise architecture.  See: &lt;a href=&quot;http://www.opengroup.org/architecture/togaf8-doc/arch/&quot; rel=&quot;nofollow&quot;&gt;http://www.opengroup.org/architecture/togaf8-doc/arch/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10485" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-17T11:58:30.527" LastActivityDate="2010-12-18T05:03:21.363" Title="Benefits of TOGAF or similar?" Tags="&lt;best-practices&gt;&lt;architecture&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="3" />
  <row Id="27338" PostTypeId="1" AcceptedAnswerId="27346" CreationDate="2010-12-17T11:39:45.767" Score="8" ViewCount="243" Body="&lt;p&gt;Doctrine and Propel both make use of single and concrete table inheritance to map object relationships. The former sees all possible fields in the class tree mapped to a single table - whereas the latter maps each class to a specific table, duplicating common fields in the inheritance hierarchy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While this facilitates the ORM apparatus, it suggests bad database design to me. Are these bad design patterns to enforce on a database?&lt;/p&gt;&#xA;" OwnerUserId="3712" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-12-17T17:33:27.580" LastActivityDate="2010-12-17T17:33:27.580" Title="Does ORM promote database de-normalisation?" Tags="&lt;database-development&gt;&lt;database&gt;&lt;orm&gt;" AnswerCount="3" />
  <row Id="27339" PostTypeId="2" ParentId="27335" CreationDate="2010-12-17T11:39:56.267" Score="6" ViewCount="" Body="&lt;p&gt;Pretty much the same way you approach any kind of legacy code. You find a piece that's testable, you write tests for it, and refactor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't find a piece readily testable, you'll need to make it testable without the safety harness of a test suite, in which case you very carefully change some almost-testable piece of code so that it is testable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code that doesn't render things to the browser - &quot;infrastructure&quot; code, models, database-touching stuff - might be a good place to start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit: UI testing:&lt;/strong&gt; With the warning that I have little experience here, a friend of mine does this: he runs some piece of HTML-generating code. Then he hacks on his code, and compares the newly-generated code against the old version (using diff; he hasn't automated all the way). Changes in the HTML means your refactoring broke.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-12-18T18:47:42.553" LastActivityDate="2010-12-18T18:47:42.553" CommentCount="4" />
  <row Id="27340" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T11:45:44.113" Score="0" ViewCount="" Body="&lt;p&gt;A god IDE like IntellJ will let you map any key to any function or any other key for that matter. &lt;/p&gt;&#xA;" OwnerUserId="9180" LastActivityDate="2010-12-17T11:45:44.113" />
  <row Id="27341" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T11:55:51.280" Score="3" ViewCount="" Body="&lt;p&gt;I personally prefer &lt;code&gt;underscore_case&lt;/code&gt; because I find it more readable, but agree with the other answerers who point out that consistency with the existing codebase is much more important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I have a counterexample for those who say &quot;follow the convention of your language and its libraries&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the past we wrote C code on Windows using &lt;code&gt;underscore_case&lt;/code&gt;, and called &lt;code&gt;PascalCase&lt;/code&gt; Win32 functions:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (one_of_our_conditions_is_true())&#xA;{&#xA;    call_one_of_our_functions();&#xA;    CallSystemFunction();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The visual distinction between our function names and Microsoft's function names was a help rather than a hindrance, as it clearly showed when the code was going into &quot;system land&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition, I was able to change my editor's syntax highlighting rules to display them in  different colours, which gave further visual clues when trying to understand unfamiliar sections of code (or even my own).&lt;/p&gt;&#xA;" OwnerUserId="4400" LastEditorUserId="4400" LastEditorDisplayName="" LastEditDate="2010-12-17T12:02:37.457" LastActivityDate="2010-12-17T12:02:37.457" CommunityOwnedDate="2011-01-06T21:09:02.793" />
  <row Id="27342" PostTypeId="2" ParentId="27299" CreationDate="2010-12-17T11:58:05.830" Score="1" ViewCount="" Body="&lt;p&gt;I think you've covered the major arguments for both scenarios very well.  There may also be some efficiency around database disk access for fewer databases (fewer and/or shorter seeks), but it shouldn't be dramatic.  Having more databases also probably means smaller memory usage for indexes as well - instead of (site_id, post_id) composite keys, you might just have (post_id) keys.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on the likelihood of project success (ie, startup vs. internal company project), I would generally suggest going with a hybrid approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At first, go with a database design that allows you to store multiple instances of your application within the same database.  This is easier in the short term in terms of administration and maintenance - you don't need to repeat manual or automatic actions over a number of databases.  This allows you to focus on being successful in developing your application for your initial sites.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you end up being successful and need more database capacity, then you can change to having multiple database servers - each database server handles multiple sites.  In the early initialisation stage of your application, you choose which database server to use based on the site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you go with the &quot;each instance has its own dedicated database&quot; approach, you will initially spend a lot of time solving the multiple database problem while you could be spending it increasing the likelihood that your project is successful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either way, make sure you have database backup and restore covered and well-understood.&lt;/p&gt;&#xA;" OwnerUserId="9564" LastActivityDate="2010-12-17T11:58:05.830" />
  <row Id="27343" PostTypeId="2" ParentId="25100" CreationDate="2010-12-17T12:10:01.140" Score="0" ViewCount="" Body="&lt;h1&gt;Randy Pausch&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;He did not influence enough of us. So I take this opportunity to publish his &lt;a href=&quot;http://www.youtube.com/watch?v=ji5_MqicxSo&quot; rel=&quot;nofollow&quot;&gt;Last Lecture&lt;/a&gt; again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That video has been viewed more than &lt;strong&gt;12 millions&lt;/strong&gt; of times. Not enough. Increment the counter.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-17T12:17:23.380" LastActivityDate="2010-12-17T12:17:23.380" CommunityOwnedDate="2010-12-17T12:10:01.140" />
  <row Id="27344" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T12:12:16.583" Score="5" ViewCount="" Body="&lt;p&gt;I really like Dylan's just-normal-dashes-as-they-are-easy-to-type-and-easy-to-read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;result-code := write-buffer(file-stream, some-string)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But I guess as this language is fairly obscure, this is kind of off-topic... :(&lt;/p&gt;&#xA;" OwnerUserId="10554" LastActivityDate="2010-12-17T12:12:16.583" CommunityOwnedDate="2011-01-06T21:09:02.793" CommentCount="2" />
  <row Id="27345" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T12:20:05.873" Score="9" ViewCount="" Body="&lt;p&gt;Truth be told, there have been some programmer specific keyboards over the years. The examples that spring to mind right away are the &lt;a href=&quot;http://www.asl.dsl.pipex.com/symbolics/photos/IO/index.html&quot; rel=&quot;nofollow&quot;&gt;Symbolics keyboard for Lisp&lt;/a&gt; as well as the keyboards that were released for working with &lt;a href=&quot;http://en.wikipedia.org/wiki/APL_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;APL&lt;/a&gt;. I'm sure there are some more examples out there, but generally the idea is that they were fairly specific to a given machine where as most developers these days work on generalist computers and have a fairly generic keyboard.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/1plVr.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Symbolics keyboard for Lisp&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-12-17T12:20:05.873" CommentCount="3" />
  <row Id="27346" PostTypeId="2" ParentId="27338" CreationDate="2010-12-17T12:23:02.553" Score="1" ViewCount="" Body="&lt;p&gt;It's impossible to say whether a particular database design is bad without knowing what the application is doing, the shape of the data, the performance expectations and so on.  While generally normalisation (to some degree) is seen as best practice, it's pretty common to denormalise areas of databases for performance reasons so good and bad are very much open for discussion without a lot more data than most people have when they start out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Add in the many approaches that can be taken to object to relational mappings and things become even more complex as the &quot;best&quot; database structure will depend on the specific object model, the level of inheritance and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By taking a one size fits all approach ORM persistence libraries will almost always produce a non-optimal database structure for any given situation and will use some things which can be seen as bad practice &lt;em&gt;for that a given situation&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You certainly could write an ORM that normalised but you'd see fairly hefty performance implications as for every insert into a main table it needed to scan the various look up tables to see if values existed, if they did obtain their keys and if they didn't carry out the relevant inserts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(When you do this by hand you can short cut some of this as you know you presented them with a drop down containing only valid value so you don't need to do these look ups, you can just use the key happy that it's going to be valid, the ORM couldn't make that assumption as it doesn't control the UI.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But what you have to remember is that they aren't aiming to optimise for database performance or data integrity, &lt;em&gt;they're optimising for development speed&lt;/em&gt;.  If the specific structure of your data is important to you then you either need to code your object / RDBMS mappings by hand, or at the very least do a detailed assessment of all the libraries available and select the one which most closely meets your needs (if one exists).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially it comes down to requirements and the trade off between well structured data, database performance and development speed.  As with many trade-offs you don't get to pick all three.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-17T12:23:02.553" CommentCount="1" />
  <row Id="27347" PostTypeId="2" ParentId="27323" CreationDate="2010-12-17T12:24:11.460" Score="2" ViewCount="" Body="&lt;p&gt;If I were working with this situation I would just write an app do what needs to be done.  It's highly unlikely that you find something out there to match your needs (or even get close).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing it yourself ensures that the correct data is being pulled from the correct field/database and delivered how/when you want it delivered.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-17T12:24:11.460" CommentCount="2" />
  <row Id="27348" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T12:36:37.453" Score="4" ViewCount="" Body="&lt;p&gt;It would look like this!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/C4VU2.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="5402" LastActivityDate="2010-12-17T12:36:37.453" CommentCount="4" />
  <row Id="27349" PostTypeId="2" ParentId="27134" CreationDate="2010-12-17T12:38:40.380" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Floating_licensing&quot; rel=&quot;nofollow&quot;&gt;Floating licensing server&lt;/a&gt; is a similar concept. I used a compiler on IBM's AIX, which constantly checked against a licensing server. It thus was slow and we finally ported the code to gcc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's fragile and annoying. I think it only makes sense for very expensive software by almost-monopolistic companies.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-12-17T12:38:40.380" />
  <row Id="27350" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T12:45:46.460" Score="0" ViewCount="" Body="&lt;p&gt;I've always been interested in attaching a second keyboard that is mapped for specific uses.   For if my normal keyboard doesnt have any extra keys for fuctions or I want to assign and label hotkeys for when I don't want to memorize the shortcuts.  Or even a keyboard sized touchscreen that can be used opposed to hunting for wherever I left the mouse (for those buttons you have to press when you dont remember the keyboard shortcut.).&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-12-17T12:45:46.460" />
  <row Id="27351" PostTypeId="2" ParentId="27338" CreationDate="2010-12-17T12:53:57.950" Score="4" ViewCount="" Body="&lt;p&gt;I don't agree that ORM promotes de-normalisation or bad database design. In fact, the worst designed databases I've seen has been done without ORM's. By making it simple to have proper relations based on  row id instead of making a relation based on the value of a random field, it rather promotes good database design. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Possibly it doesn't promote normalization, but then again an ORM where it's easy to make tables/objects and relations could almost be seen to promote that as well. It's not much more work in an ORM to make a &quot;location&quot; table with addresses and link employees to the location instead of adding the address to the employee table. But without the ORM, separating out the location means that everytime you want to access the location as well, you need to make a join.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my answer is: &lt;strong&gt;No, I don't think so&lt;/strong&gt;. It's possibly in fact other other way around, a good ORMs &lt;strong&gt;encourages&lt;/strong&gt; good database design, at least about those who have little experience.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastEditorUserId="9529" LastEditorDisplayName="" LastEditDate="2010-12-17T13:20:22.250" LastActivityDate="2010-12-17T13:20:22.250" CommentCount="1" />
  <row Id="27352" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T12:57:57.213" Score="4" ViewCount="" Body="&lt;p&gt;There are a few programmer layouts out there. The best one I found is &lt;a href=&quot;http://www.kaufmann.no/roland/dvorak/&quot; rel=&quot;nofollow&quot; title=&quot;Programmer Dvorak&quot;&gt;Programmer Dvorak&lt;/a&gt;. It's a Dvorak layout that addresses the issues you mention: shift isn't needed to type most symbols. The most common symbols used in programming (brackets, plus and equals sign, asterisk) are moved to the number row. Numbers require shift (and are alternated - odd numbers on the left half, even numbers on the right). I thought this was crazy at first, but don't mind it now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also has great multilingual support, I can type in English, Spanish and Catalan really easily with this one layout. There is a deadkey which combines the two following key presses. I.e deadkey then ' then e gives é.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason I switched was that I started getting sore wrists from typing and wanted to try Dvorak out after having read the layout keeps most-common letters close together. I then found this programmer version somewhere (I think it was SO) and decided to give it a go. It took me about a month to learn the Dvorak layout, and after 3 months I was comfortable with the strange number row layout (edit: by comfortable I mean I can touch-type numbers now - I never managed to do that with Qwerty).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After having used it for a year, I love it. Every time I use Qwerty now I'm amazed by how uncomfortable it is (especially the European Spanish layout).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the issues some people mention, I haven't had much trouble using other people's computers - I can still type Qwerty quite well. And when other people need to use my computer I just press left ctrl + shift and the layout is switched to Qwerty. One annoyance is keyboard shortcuts: I've got used to them, but it's a pain needing two hands for ctrl+c/ctrl+v.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I was learning the layout I realised I was going to need keycaps or I'd give up. I took the layout from Programmer Dvorak's homepage, inverted the colours, added the Qwerty for each key (for when other people needed to use the computer), printed it on label paper and laminated it. Here is a crappy photo of the result on my old laptop:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/FjiNZ.jpg&quot; alt=&quot;Custom ghetto key caps&quot;&gt; &lt;/p&gt;&#xA;" OwnerUserId="8105" LastEditorUserId="8105" LastEditorDisplayName="" LastEditDate="2010-12-17T13:13:30.197" LastActivityDate="2010-12-17T13:13:30.197" />
  <row Id="27353" PostTypeId="2" ParentId="25100" CreationDate="2010-12-17T13:07:04.607" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Ward_Cunningham&quot; rel=&quot;nofollow&quot;&gt;&lt;h2&gt;Ward Cunningham&lt;/h2&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Invented the wiki.&lt;/li&gt;&#xA;&lt;li&gt;Invented the Fit (Framework for Integrated Test).&lt;/li&gt;&#xA;&lt;li&gt;&#xA;He was a primary collaborator, with Kent Beck, during the development of the methodology that became XP.&#xA;&lt;li&gt;Created the Technical Debt metaphor&lt;/li&gt;&#xA;&lt;li&gt;Has an adjective, Wardish, named after him.&lt;/li&gt;&#xA;&lt;li&gt;Owns a two letter second-level domain c2.com&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10573" LastEditorUserId="4032" LastEditorDisplayName="" LastEditDate="2010-12-17T16:42:16.873" LastActivityDate="2010-12-17T16:42:16.873" CommunityOwnedDate="2010-12-17T13:07:04.607" />
  <row Id="27354" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T13:07:33.507" Score="0" ViewCount="" Body="&lt;p&gt;Say you have 100 different hammers. At first sight they are indistinguishable but they do a very different job. You need almost all of them frequently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How will your organize them? Will you use the same organisation technique everyone else use or will you shuffle them arround?&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-12-17T13:07:33.507" />
  <row Id="27355" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T13:09:12.670" Score="0" ViewCount="" Body="&lt;p&gt;The control key in emacs was a mountain to get over. So many nights with a sore pinky, but so, so worth it!&lt;/p&gt;&#xA;" OwnerUserId="8641" LastActivityDate="2010-12-17T13:09:12.670" CommentCount="1" />
  <row Id="27356" PostTypeId="1" CreationDate="2010-12-17T13:15:55.017" Score="7" ViewCount="149" Body="&lt;p&gt;When designing relational database schema for web applications, I often find a case where I end up creating a table just to contain one row, and only one row. It feels like that is the wrong way to design it, but I can't come up with anything significantly better, or that is obviously &quot;the right way to do it.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A recent example is a site that let the users manually control content on the home page. Well, there's only one home page. I created a table that had all the necessary fields to build the homepage, such as a text field for an area that contained descriptive text. A field to store the name of a big image file. Some foreign keys that point to articles that will be featured on the homepage, etc. It works, but it feels wrong to have a table with just one row. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the past I've tried many other designs, such as allowing multiple rows in the homepage table and selecting one at random. I've tried adding a boolean field named &quot;active&quot; and selecting one of the active homepages at random. I've tried forcing only one row to be active at any given time in the application logic. I've tried not even making a homepage table and having all the other items, such as articles, to have boolean fields with names like featured_on_homepage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In most cases I could build the homepage with a bunch of constants in a settings file. The main problem with the settings file is that it is under developer control. Because something like the contents of the homepage is something to be edited by the user, it has to go in the database.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On many sites, I don't have this problem because I can build things like the homepage with a query such as selecting the five newest articles. But when I have pages that are manually curated with strict requirements, it becomes tricky to model it in the database. But imagine you've got a photo table and an article table. The requirement is that the homepage will display exactly five photos, exactly three articles, and two blocks of arbitrary text manually controlled by the user. How do you model that in the database the right way?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I have this modeling problem in many other cases besides just homepages. It's just the easiest and most generally applicable example I could come up with.&lt;/p&gt;&#xA;" OwnerUserId="10569" LastActivityDate="2010-12-17T13:38:22.620" Title="Best way to model a singleton in a relational database" Tags="&lt;design-patterns&gt;&lt;database-development&gt;&lt;database&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="27357" PostTypeId="2" ParentId="27328" CreationDate="2010-12-17T13:17:11.540" Score="1" ViewCount="" Body="&lt;p&gt;Lately it seems that Cucumber has been getting more support in the Rails community.  Here's the nutshell argument I heard from an interview with RSpec's lead (from an old Ruby on Rails Podcast).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the agile community (at the time) there was a big push for Test Driven Development with the emphasis on testing first to prove you had to change something.  There was something philisophically wrong with that.  In essence, testing is a way to verify that your implementation is correct, so how do you think differently about the driving design?  RSpec's lead surmised that you &lt;em&gt;specify&lt;/em&gt; first, and wouldn't it be great if the specification also checked the results of your implementation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The simple renaming &lt;code&gt;assert&lt;/code&gt; to &lt;code&gt;should&lt;/code&gt; helps to focus the mind in the correct way to write specifications, and think about design.  However, that's only part of the equation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More importantly, since many TDD beleivers were claiming that the tests documented the design, most documentation was poor at best.  Tests are fairly opaque to non-developers unfamiliar with the language.  Even then, the design isn't immediately apparent from reading most tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So as a secondary goal, RSpec devised a way to generate written documentation from the specifications.  It's this written specification that gives RSpec an edge over simple Test::Unit for driving the design of an application.  Why write something more than once when you can document and verify design consistency at the same time?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My understanding is that Cucumber, which had the benefit of coming later and learning lessons from RSpec, does a better job of this secondary goal without losing the primary goal (ability to test the implementation from the specification).  Cucumber does this with a fairly English like API that non-programmers can reasonably grok.  They might need some help from programmers to fill in some definitions of new verification methods, but it's designed to be extensible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line is that RSpec/Cucumber shouldn't replace unit testing altogether.  They may be better suited to documenting and verifying your design--but there are several implementation tests that still need to be done, particularly with subtle bugs that derive from the implementation and not the design of the application.  It does reduce the number of tests you have to write though.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastEditorUserId="6509" LastEditorDisplayName="" LastEditDate="2010-12-17T13:35:38.083" LastActivityDate="2010-12-17T13:35:38.083" />
  <row Id="27358" PostTypeId="1" CreationDate="2010-12-17T13:23:43.417" Score="1" ViewCount="137" Body="&lt;p&gt;Hi all!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Open Google blogger uses XML templates for blogs. I want to implement same kind functionality in my asp.net mvc and asp.net applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We can use master pages and themes in asp.net applications but I need to use XML templates same like Google Blogger uses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This question is in continuation to my previous discussion : &lt;a href=&quot;http://stackoverflow.com/questions/4335797/consideration-of-points-while-started-to-build-some-open-source-applications&quot;&gt;link text&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10578" LastActivityDate="2010-12-17T13:47:29.480" Title="Implementation of XML templates in asp.net mvc and asp.net applications?" Tags="&lt;asp.net&gt;" AnswerCount="1" />
  <row Id="27359" PostTypeId="2" ParentId="27195" CreationDate="2010-12-17T13:27:18.990" Score="0" ViewCount="" Body="&lt;p&gt;It would be quite a huge investment for anyone to make a web IDE that has a feature set capable of competing with the current offerings, and I can't really think of many actual benefits to having an IDE run online, by which I presume you mean &quot;inside a browser tab&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Debugging would be complicated too -- unless you're willing to debug on a web server, and the web server's willing to let you debug on their machine, you'd still need to download a debugger -- and somehow have it link to the web IDE. That would mean two round trips for every debugger action you make -- which would certainly be annoying latency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe collaboration and interoperability would benefit, but collaboration can be solved even with current IDEs with much less effort than building a new IDE from scratch. I can't think of any technical reason that a plugin couldn't be made to have Visual Studio for instance allow multiple people to edit a single file at the same time, and there are plenty of good version management/synchronization plugins for most of the common IDEs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless this is for a brand new language or for a language that doesn't have much IDE support, I don't see any reason to rush to abandon desktop IDEs yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be honest I'm really not too fond of the whole SAAS fad. It's too early. HTML/JS are upbeat right now, but they don't seem like the right technologies to make it work for the industry in the long haul.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also worry that if there were one such popular IDE service the way there's one popular video service, patent trolls and owners of mundane copyrights will start shutting down people's projects with hardly a second thought.&lt;/p&gt;&#xA;" OwnerUserId="6385" LastEditorUserId="6385" LastEditorDisplayName="" LastEditDate="2010-12-17T13:48:55.737" LastActivityDate="2010-12-17T13:48:55.737" />
  <row Id="27360" PostTypeId="2" ParentId="27356" CreationDate="2010-12-17T13:28:30.210" Score="9" ViewCount="" Body="&lt;p&gt;One simple approach would be to save the Home Page properties in a Properties table (or call it something else) that is made up of Name &amp;amp; Value columns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HomePageProperty1    -   UserValue1&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HomePageProperty2    -   UserValue2&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may not be an ideal solution, but it is simple and flexible.  It also eliminates the table with one row scenario.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-17T13:28:30.210" CommentCount="3" />
  <row Id="27361" PostTypeId="2" ParentId="27337" CreationDate="2010-12-17T13:29:31.080" Score="1" ViewCount="" Body="&lt;p&gt;I've looked at TOGAF and my company uses &lt;em&gt;other&lt;/em&gt; architectural frameworks but I haven't seen that one in use.  I would say that these don't give you much &quot;out of the box&quot;.  But, if you use them to help structure your thinking around your system architectures, and adapt it to the particulars of your organization, it can be helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about it like this.  It is really hard to start from a blank page and say &quot;let's write up our organization's architectural framework&quot;.  Starting from TOGAF might be easier than starting from a blank page.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-12-17T13:29:31.080" />
  <row Id="27362" PostTypeId="1" AcceptedAnswerId="27372" CreationDate="2010-12-17T13:30:11.350" Score="7" ViewCount="275" Body="&lt;p&gt;As a programmer I feel it's important to continue practicing my problem-solving skills. Writing my own mini-projects is one way, but another is to try and solve problems posted online.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's easy to find interesting programming quizzes online that require applying clever algorithms to solve - &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt; is one well-known example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, in a lot of real-life projects the &lt;em&gt;design&lt;/em&gt; of the software - especially in the initial phases - has a large impact and at later stages it cannot be tweaked as easily as plain algorithms. &lt;strong&gt;I'm looking for any collection of design problems&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course these sort of problems do not have a single correct solution, but I'll be especially happy with any place that also displays pros and cons of the typical solutions that might be used to approach the problem.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Clarification&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;When I say &quot;design&quot;, I mean the abstract design of a software solution - for example what modules will there be and what are the dependencies between them, how data will flow in the program, what sort of data needs to be saved in the database, etc.. Design problems are those problems that are critical to solve in the early stages of any project, but their solution is a whiteboard diagram without a single line of code.&lt;/p&gt;&#xA;" OwnerUserId="8331" LastEditorUserId="8331" LastEditorDisplayName="" LastEditDate="2010-12-17T15:13:50.617" LastActivityDate="2010-12-17T15:20:02.547" Title="Where to find design exercises" Tags="&lt;design&gt;&lt;software-engineering&gt;" AnswerCount="4" FavoriteCount="7" />
  <row Id="27363" PostTypeId="2" ParentId="27356" CreationDate="2010-12-17T13:35:34.867" Score="0" ViewCount="" Body="&lt;p&gt;Just to add to Walter..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The property table structure should allow multiple data types.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Fileds:&#xA;PropertyName&#xA;PropertyTextValue&#xA;PropertyDateValue&#xA;PropertyNumericValue&#xA;PropertyBoolValue&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="7748" LastActivityDate="2010-12-17T13:35:34.867" CommentCount="1" />
  <row Id="27364" PostTypeId="2" ParentId="27195" CreationDate="2010-12-17T13:36:53.763" Score="3" ViewCount="" Body="&lt;p&gt;There would be important security implications. I'm used to using code hosts like github, and have to assume that they know how to keep my data safe. Should they suffer some catastrophic storage failure, that doesn't actually matter so much because I've got a clone of the repo locally. Move the IDE out onto the internet and how many developers would forget to keep local copies of their data? If your answer is that I keep my code local but my editor remote, then what exactly is the point of having the remote editor? One of the points of DVCS is that you &lt;em&gt;can&lt;/em&gt; work when your connection's offline, and now you want to take away my editor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would builds be done as part of the online service, too? If so, how is my signing (or, if you work on MS platforms, authenticode) certificate managed? Do I need to give the service my private key? How is distribution of the builds performed?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I believe that all of these issues can be solved. However I also believe that they have not all been solved, or at least that no-one has shown convincingly that a product exists that solves them. And it's important for me that they &lt;em&gt;are&lt;/em&gt; solved before I consider editing client source on a remote service.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-12-17T13:36:53.763" CommentCount="2" />
  <row Id="27365" PostTypeId="2" ParentId="27356" CreationDate="2010-12-17T13:38:22.620" Score="0" ViewCount="" Body="&lt;p&gt;You could create a table called STATIC_CONTENT and have columns for a key as well as the content, active/inactive trackers, etc.  Then, create a row with a key of &quot;HomePage&quot; and in your homepage, load the static content for that key and display it.  That way, when you have other static content (about page, contact page, etc.), you can add rows to that table.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-12-17T13:38:22.620" />
  <row Id="27367" PostTypeId="2" ParentId="27338" CreationDate="2010-12-17T13:39:46.880" Score="2" ViewCount="" Body="&lt;p&gt;As a rule of thumb, never model your data to meet the need of the developer (You can use Views or Sp for that, But not the Data Model).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Data Model should be based on the Business rules of the application and performance needs.&lt;/p&gt;&#xA;" OwnerUserId="7748" LastActivityDate="2010-12-17T13:39:46.880" />
  <row Id="27368" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T13:40:40.887" Score="2" ViewCount="" Body="&lt;p&gt;If it were down to me, I wouldn't enforce or hint at the use of any particular style because, as programmers, we whould be able to read a symbol IfItIsInCamelCase or in_underscore_space or even in_SomeOtherStyle and understand what it means. Having to spend a tiny amount of time parsing the symbol is no great overhead in the big scheme of things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, the main argument for a convention I guess is that you know upfront what the format of a function/variable name is and don't need to look it up - is it LoadXMLFile, loadXMLFile, LoadXmlFile, load_xml_file? Now, I would counter that argument by saying &quot;Get an IDE that supports intellisense style auto completion!&quot; (not always possible though). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end though, it doesn't really matter what style you use beacuse the compiler / interpreter doesn't really care. What is important is that the name is useful:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;NumberOfPrisonersReleasedByAccident&#xA;manufacturer_name&#xA;distance_EarthToMoon&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Three different styles, but you know exactly what each one does.&lt;/p&gt;&#xA;" OwnerUserId="914" LastActivityDate="2010-12-17T13:40:40.887" CommunityOwnedDate="2011-01-06T21:09:02.793" CommentCount="3" />
  <row Id="27369" PostTypeId="2" ParentId="27362" CreationDate="2010-12-17T13:41:13.493" Score="1" ViewCount="" Body="&lt;p&gt;I've heard this sort of thing referred to as &quot;programming katas.&quot; Kata is a martial arts term for a form or sequence of movements that is practiced over and over again to perfection. Do some searching for katas in your language of choice and I'll bet you'll turn up something. :)&lt;/p&gt;&#xA;" OwnerUserId="10321" LastActivityDate="2010-12-17T13:41:13.493" />
  <row Id="27372" PostTypeId="2" ParentId="27362" CreationDate="2010-12-17T13:45:03.553" Score="4" ViewCount="" Body="&lt;p&gt;How about &lt;a href=&quot;http://codekata.pragprog.com/2007/01/code_kata_backg.html#more&quot; rel=&quot;nofollow&quot;&gt;Code Kata&lt;/a&gt;. I've done a few of these, and they're fun to do, and challenging enough that there's always something to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The comments for each of the kata typically have enough information to help answer anything you get stuck on.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-12-17T13:45:03.553" CommentCount="1" />
  <row Id="27374" PostTypeId="2" ParentId="27358" CreationDate="2010-12-17T13:47:29.480" Score="1" ViewCount="" Body="&lt;p&gt;ASP.NET MVC does not impose restrictions on your responses.  Your templates can be any form of XML, XHTML, HTML, JSON, etc. that you need.  The question then comes how do you want to form the XML?  You have two options:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;System.Xml.Serialization.XmlSerializer--XML generated automatically from model, convenient but limited control&lt;/li&gt;&#xA;&lt;li&gt;Using the same template aspcx approach you would for HTML files--most control, slightly less convenient&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;My guess is that you will want to use the second option.  The second option guarantees the output of your XML will be able to comply with whatever standard you want.  In that case, your controller has one responsibility other than responding with &lt;code&gt;return View(model);&lt;/code&gt;.  That is setting the response content type correctly.  The response content type should be &lt;code&gt;text/xml&lt;/code&gt; (mime type for XML documents).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your template master will handle all the header information (xml declarations, namespace declarations, etc.), and the &lt;code&gt;&amp;lt;asp:ContentPlaceHolder ID=&quot;MainContent&quot; runat=&quot;server&quot; /&amp;gt;&lt;/code&gt; would call your specific view.  Do note that every template needs to be valid XML for this to work.  You'll have to escape certain embedded content to make sure of it.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-17T13:47:29.480" CommentCount="1" />
  <row Id="27376" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T13:50:53.850" Score="1" ViewCount="" Body="&lt;p&gt;Maybe we will start seeing job-specific keyboards being heavily used in the future with the rise of virtual keyboards - e.g. iPad.&lt;/p&gt;&#xA;" OwnerUserId="9860" LastActivityDate="2010-12-17T13:50:53.850" />
  <row Id="27377" PostTypeId="2" ParentId="27145" CreationDate="2010-12-17T14:04:52.320" Score="4" ViewCount="" Body="&lt;p&gt;Perl 5 and Perl 6 are different languages, not two versions of the same. Perl 6 is heavily inspired by Perl 5, but not exclusively. I would suggest focusing on Perl 5 for now. If you watch the community (I'd suggest the &lt;a href=&quot;http://ironman.enlightenedperl.org/&quot; rel=&quot;nofollow&quot;&gt;Planet Perl Iron Man aggregator&lt;/a&gt;, you'll also see posts and content from the Perl 6 community and can keep an eye on it. Also, many features of Perl 6 are slowly coming back to Perl 5.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also: Despite some people's hate for Perl, it's 2010 now, not 1995 anymore, and Perl has immensely moved forward, and continues to do so.&lt;/p&gt;&#xA;" OwnerUserId="10592" LastActivityDate="2010-12-17T14:04:52.320" />
  <row Id="27379" PostTypeId="1" CreationDate="2010-12-17T14:07:25.623" Score="9" ViewCount="187" Body="&lt;p&gt;We are two developers on the edge of starting new web product development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are both fans of lean start-up approach and would like to practice continuous deployment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here comes the dilemma - we are both coming from a C# / Windows background and we need to decide between:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stick to .NET and Windows, we will not waste time on learning new technologies and put all our effort in the development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Switch to Ruby on Rails and Linux which has a good reputation of fast ramp up and vast open source support. The negative side is that we will need to put a lot of effort in learning Ruby, Rails and Linux...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would you do? What other considerations should we take?&lt;/p&gt;&#xA;" OwnerUserId="10593" LastActivityDate="2011-02-27T08:30:35.713" Title="Selecting the (right?) technology and environment" Tags="&lt;programming-languages&gt;&lt;web-development&gt;&lt;agile&gt;&lt;startups&gt;&lt;lean&gt;" AnswerCount="7" CommentCount="1" />
  <row Id="27380" PostTypeId="2" ParentId="27189" CreationDate="2010-12-17T14:11:14.123" Score="3" ViewCount="" Body="&lt;p&gt;&quot;Not bad, but different&quot; isn't the usual reaction of people who try Haskell. The normal reaction is to run away screaming. Since you haven't done this, it might be worth your while to stick with it. It's really the best way to learn functional programming as the other styles aren't available. The concepts you'll learn (e.g. monads) can be carried over to other languages, so learning Haskell will be useful even if you end up using something else.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-17T14:11:14.123" />
  <row Id="27381" PostTypeId="2" ParentId="27379" CreationDate="2010-12-17T14:13:06.227" Score="9" ViewCount="" Body="&lt;p&gt;Well the leanest option is to use .NET, as the effort you spend in learning the other platform is (from the business perspective) effort wasted on not bringing the product to your customers.&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-12-17T14:13:06.227" />
  <row Id="27382" PostTypeId="2" ParentId="27379" CreationDate="2010-12-17T14:14:25.547" Score="3" ViewCount="" Body="&lt;p&gt;In a startup, play to your strengths.  I would suggest sticking with .NET technologies and see if you can get into &lt;a href=&quot;http://www.microsoft.com/bizspark/&quot; rel=&quot;nofollow&quot;&gt;Microsoft's BizSpark program&lt;/a&gt;.  That'll get you affordable licenses to the software you need, with minimal risk involved.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-12-17T14:14:25.547" CommentCount="1" />
  <row Id="27383" PostTypeId="2" ParentId="27379" CreationDate="2010-12-17T14:17:26.063" Score="2" ViewCount="" Body="&lt;p&gt;You need to consider the following factors:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) The cost of deployment on your chosen platform (there are startup licenses for .NET / Windows but you'll need to pay eventually, plus the comparative hosting / hardware costs)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) The time required to upskill (zero for .NET in this instance)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) What you're building and the suitability of the platform for that in the short term (prototype, low volume use etc.) and the long term (will it scale and indeed do you intend it to scale or is it, say, B2B in which case volumes may always be comparatively low)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My instinct is stick with what you know as you'll have plenty going on without having to learn something else, but you need to weigh up the other factors based on the specifics of your idea.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-17T14:17:26.063" />
  <row Id="27387" PostTypeId="2" ParentId="27379" CreationDate="2010-12-17T14:27:14.007" Score="-2" ViewCount="" Body="&lt;p&gt;Just do it in &lt;strong&gt;c# and dot net&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You are good at already&lt;/li&gt;&#xA;&lt;li&gt;its better than ruby on rails&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-12-17T14:27:14.007" CommentCount="2" />
  <row Id="27388" PostTypeId="1" CreationDate="2010-12-17T14:28:44.840" Score="9" ViewCount="883" Body="&lt;p&gt;&lt;a href=&quot;http://www.stlport.org/resources/StepanovUSA.html&quot; rel=&quot;nofollow&quot;&gt;According to STL author and generic programming advocate Alex Stepanov&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I think that object orientedness is almost as much of a hoax as Artificial Intelligence. I have yet to see an interesting piece of code that comes from these OO people.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That interview is from 1995. What factors might have led him to this opinion 15 years ago, and are they still relevant today?&lt;/p&gt;&#xA;" OwnerUserId="3684" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2010-12-22T19:57:51.813" LastActivityDate="2010-12-22T19:57:51.813" ClosedDate="2010-12-17T22:16:09.953" Title="What prompted Alex Stepanov to consider object-orientation a hoax?" Tags="&lt;holy-war&gt;&lt;object-oriented&gt;&lt;paradigms&gt;" AnswerCount="11" CommentCount="10" FavoriteCount="1" />
  <row Id="27389" PostTypeId="2" ParentId="27388" CreationDate="2010-12-17T14:32:06.980" Score="18" ViewCount="" Body="&lt;p&gt;No, I believe it is not a &quot;hoax&quot; - whatever that ment. It is a programming paradigm that is continually developing; a lot of nice software benefited from it, and if nothing else, that would be enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it is not a solution to all the world's problems neither (&lt;em&gt;some will surely disagree&lt;/em&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will not go through pros and cons of it, since that is a much wider topic, and besides, on SO and in some questions here even, it has already been beaten dead, revived, shot, ressurected and then hanged again. You use what is best for the job in hand.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-17T14:32:06.980" CommentCount="1" />
  <row Id="27390" PostTypeId="2" ParentId="27335" CreationDate="2010-12-17T14:32:24.090" Score="9" ViewCount="" Body="&lt;p&gt;There's a great book about this called &quot;Working Effectively with Legacy Code&quot; by Michael Feathers.  Let's face it, we all have legacy code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main thing is to test-drive the new code that you're creating.  As you have to touch other pieces of code, you'll find opportunities to get those under test as well.  It's a long slow process, but if you go about it systematically, you can really improve the overall product over time.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-17T14:32:24.090" CommentCount="2" />
  <row Id="27391" PostTypeId="2" ParentId="27317" CreationDate="2010-12-17T14:35:27.147" Score="0" ViewCount="" Body="&lt;p&gt;Disclaimer:  my environment does not have a full time release or configuration management person, so I may be missing some of the benefits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this were my full time position, I would definitely want to make sure that I had other skills in addition to this, as it seems a bit narrow to me.  It seems to be that this person should also be skilled in programming, general system/server administration, or project management to be truly useful to the organization (and to protect that person's own career).&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-17T14:35:27.147" />
  <row Id="27392" PostTypeId="2" ParentId="27388" CreationDate="2010-12-17T14:35:35.150" Score="11" ViewCount="" Body="&lt;p&gt;OO works. The proof is out there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, this concept like many others is not an ultimate solution to all programming problems. OO, functional programming, Web 2.0, TDD, whatever, they all address a family of problems and solve them well. If you apply them outside of their scope, they will fail you. You need to know how and where to use your hammer.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-17T14:49:32.367" LastActivityDate="2010-12-17T14:49:32.367" />
  <row Id="27393" PostTypeId="2" ParentId="27388" CreationDate="2010-12-17T14:37:15.120" Score="5" ViewCount="" Body="&lt;p&gt;It's not a &quot;hoax&quot; -- it is a means of abstraction done to create more maintainable and reusable code.  Of course, someone who is comfortable working at a lower level, or directly interacting with components where having such an abstraction in front of you could be a detriment to performance (operating systems) would find it useless -- it doesn't mean that it is inherently worthless.  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I find OOP philosophically unsound. It&#xA;  claims that everything is an object.&#xA;  Even if it is true it is not very&#xA;  interesting - saying that everything&#xA;  is an object is saying nothing at all.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't believe OO is about blindly saying everything is an object -- it is saying to organize your code into objects/classes so they are easier to understand and maintain. Of course &lt;strong&gt;your abstraction should fit the problem&lt;/strong&gt;, and you should not blindly go about creating objects for EVERY concept/problem you are working on -- but where it makes sense.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I find OOP methodologically wrong. It&#xA;  starts with classes. It is as if&#xA;  mathematicians would start with&#xA;  axioms. You do not start with axioms -&#xA;  you start with proofs. Only when you&#xA;  have found a bunch of related proofs,&#xA;  can you come up with axioms. You end&#xA;  with axioms. The same thing is true in&#xA;  programming: you have to start with&#xA;  interesting algorithms. Only when you&#xA;  understand them well, can you come up&#xA;  with an interface that will let them&#xA;  work.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Classes are not created -- they are grown, &lt;strong&gt;they evolve&lt;/strong&gt; as you understand more about the problem domain.  I would never claim that my classes were complete once written or self-evident -- they are not mathematical axioms.  This is why OO and things like SOLID principles are important -- of course your ideas will change as you work -- thats why it's important to shield yourself around things like OO and interfaces -- it allows your design to &lt;em&gt;be flexible and adapt to a world that is always changing.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="4662" LastEditorUserId="4662" LastEditorDisplayName="" LastEditDate="2010-12-17T15:07:44.600" LastActivityDate="2010-12-17T15:07:44.600" CommentCount="6" />
  <row Id="27394" PostTypeId="2" ParentId="27301" CreationDate="2010-12-17T14:37:33.900" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is unit testing a 100% or not at all kind of deal?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Absolutely not!  Start testing the new code you are adding.  You will see immense benefits from doing that, even if some of the older components don't have tests.  As you have to deal with one of those components, or find a bug in it, write a test.  Over time you will get more of the older code under test.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-17T14:37:33.900" />
  <row Id="27395" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T14:39:07.737" Score="1" ViewCount="" Body="&lt;p&gt;A programmer's keyboard may feature a special-char-lock, maybe?&#xA;It would work like a caps lock, but only shift the row of numbers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once the constants are set, I don't write many numbers... I'm also tired of shifting for parenthesis.&lt;/p&gt;&#xA;" OwnerUserId="6363" LastActivityDate="2010-12-17T14:39:07.737" />
  <row Id="27396" PostTypeId="2" ParentId="27231" CreationDate="2010-12-17T14:40:32.857" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Access rights per program&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to see an OS, where you give each program its own set of access rights. For example, a PDF reader should have rights to read files and to write to one single settings/preferences file. That way, who cares if it would be virus infected? It can't write anything to your disk anyway, execpt in its own settings file.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A word processor should have the rights to read/write in your data folder for that app, but not in the folders where executable files reside.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Protected file access&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, file dialogs and access should be governed by the system. A normal program should not be able to open files or read directories. It should have to ask the system to present an &quot;Open file&quot; dialog to the user, and the system should then give the program a file handle to the file the user selected. That way, the program could not just open any file and corrupt the system if virus infected.&lt;/p&gt;&#xA;" OwnerUserId="9359" LastActivityDate="2010-12-17T14:40:32.857" CommentCount="3" />
  <row Id="27397" PostTypeId="2" ParentId="27317" CreationDate="2010-12-17T14:41:17.360" Score="0" ViewCount="" Body="&lt;p&gt;With more and more build automation and continuous integration, someone has to be there to do the management.  As new projects are brought online, someone has to set them up in the CI solution.  Someone has to be the gatekeeper, someone has to set and enforce the rules, and someone has to keep up with the changes in technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on the size and complexity of your organization, this may not be a full-time position.  I think it will continue to be important.&lt;/p&gt;&#xA;" OwnerUserId="7506" LastActivityDate="2010-12-17T14:41:17.360" />
  <row Id="27398" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T14:41:29.767" Score="2" ViewCount="" Body="&lt;p&gt;Your question could be rephrased, &quot;Why don't we use keyboards that are extraordinarily well designed for programming?&quot; But that makes me ask, &quot;For what task are current keyboards well designed?&quot; The answer is none. Certainly not touch typing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;End users are oblivious to the issue as are many technical users. The small fraction who notice see it as a minor problem with no clean solutions. Combine them with the small fraction who prize standardization as the primary design concern and the set of willing voices on the topic amounts to a chorus of improvement-nay-sayers. Not only do they want the status quo for themselves, they would like you to stick with it too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the top, &amp;lt; 2% use alternate keyboard layouts. These are the people who see a problem and try to choose the best available solution even when it means lots of hard work. Ironically, when external forces banish some of these people back to the land of querty, they become the most ardent standardization evangelists.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But DVORAK offers no help for the left hand key staggering that goes against your hand. And COLEMAK is powerless to save you from the home key bumps that brute force your finger tips off center so that your little finger has one-column reaches on the left and three-column reaches on the right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same programmers who understand the rationale for normalization in a database and the DRY principle in software mostly see nothing wrong with a keyboard where every modifier key is duplicated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then there is the &amp;lt; 1% who actually go out and try to improve the situation. Kinesis Contoured, Data Hand, TypeMatrix, a dozen others. All of which are improvement in some regard, but all of which have other design problems that make them unworthy of unflinching advocacy. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line, the vast majority of us care nothing for keyboard innovation so if you want something better you'll have to make it yourself, but don't expect kudos.&lt;/p&gt;&#xA;" OwnerUserId="4675" LastActivityDate="2010-12-17T14:41:29.767" CommentCount="2" />
  <row Id="27399" PostTypeId="2" ParentId="27258" CreationDate="2010-12-17T14:42:29.223" Score="0" ViewCount="" Body="&lt;p&gt;The MVC framework you're most likely using in the programming language Objective-C is either Cocoa or Cocoa Touch. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Cocoa Touch, for instance, you'll write subclasses of UIView and subclasses of UIViewController. Those classes have concerns and functions that are specific to their functionality either as a view or as a controller.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's more flexibility (and therefore less formal structure) around the &quot;M&quot; part of the MVC framework. Could be you'll use Core Data or some wrapper classes around SQLite or some entirely custom-built data manager object. &lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-17T14:42:29.223" />
  <row Id="27400" PostTypeId="1" AcceptedAnswerId="27449" CreationDate="2010-12-17T14:45:36.410" Score="25" ViewCount="518" Body="&lt;p&gt;It is clear that the knowledge of low level stuff is very important in our work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in a situation where you're already developing commercial software on a high level, &lt;em&gt;and&lt;/em&gt; when you already have a chosen direction but don't have any assembly skill, isn't it more reasonable to focus on studying stuff related to your direction? Or is there a reason you should spend some time to learn the low-level basics anyway?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When is it too late, and when it is not? And if it is &lt;em&gt;not&lt;/em&gt; too late, then how would one go about learning optimally (in the sense of not spending excessive time to get some depth and understanding)? &lt;/p&gt;&#xA;" OwnerUserId="10598" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2010-12-17T16:45:49.053" LastActivityDate="2010-12-18T00:20:30.797" Title="Is it wise for a high level developer to spend time studying assembly?" Tags="&lt;learning&gt;&lt;focus&gt;&lt;assembly&gt;&lt;low-level&gt;" AnswerCount="11" CommentCount="1" FavoriteCount="4" />
  <row Id="27401" PostTypeId="2" ParentId="27388" CreationDate="2010-12-17T14:45:55.730" Score="3" ViewCount="" Body="&lt;h2&gt;Hoax:&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;According to the &lt;a href=&quot;http://oxforddictionaries.com/view/entry/m_en_gb0380990#m_en_gb0380990&quot; rel=&quot;nofollow&quot;&gt;Oxford Dictionary&lt;/a&gt; definition a hoax is a deliberate attempt to pass falsehood as truth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I &lt;strong&gt;absolutely do not&lt;/strong&gt; consider OOP do be a hoax according to that definition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now if the orginal author meant to say &lt;strong&gt;Hype&lt;/strong&gt; then this is up for debate, some may argue it has merits, others may disagree. &lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-17T14:45:55.730" />
  <row Id="27403" PostTypeId="2" ParentId="27388" CreationDate="2010-12-17T14:48:07.827" Score="0" ViewCount="" Body="&lt;p&gt;I would venture a guess that most of the large, complex systems today are developed using an OO model.  I know that I have written tens of thousands of lines of code in that model.  So no definitely not a hoax.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-12-17T14:48:07.827" />
  <row Id="27405" PostTypeId="2" ParentId="27400" CreationDate="2010-12-17T14:49:54.147" Score="13" ViewCount="" Body="&lt;p&gt;You don't need to learn assembly language, you just need to understand how it works. You need to know what XOR is and count in binary in your sleep, etc. But I have never needed assembly code in my work, ever. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So as you say, knowledge of low level stuff is important, but practical knowledge in assembly is not.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-17T14:49:54.147" CommentCount="2" />
  <row Id="27406" PostTypeId="2" ParentId="27328" CreationDate="2010-12-17T14:50:13.850" Score="1" ViewCount="" Body="&lt;p&gt;It's largely a matter of taste, and most testing tools worth their salt support both. My personal preference is for RSpec over Test::Unit because a) the output and layout of the tests focusses on what the object under test is supposed to do (as opposed to what the code is) and b) saying 'X should  Y' makes more sense to me than 'assert that X predicate Y'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To give you some context for the points above, here's a (pretty contrived) comparison of the output/source code of two functionally equivalent unit tests, one written using RSpec and the other using Test::Unit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Code under test&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class DeadError &amp;lt; StandardError; end&#xA;&#xA;class Dog&#xA;  def bark&#xA;    raise DeadError.new &quot;Can't bark when dead&quot; if @dead&#xA;    &quot;woof&quot;&#xA;  end&#xA;&#xA;  def die&#xA;    @dead = true&#xA;  end&#xA;end&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Test::Unit&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; require 'test/unit'&#xA;  require 'dog'&#xA;&#xA;  class DogTest &amp;lt; Test::Unit::TestCase&#xA;    def setup&#xA;      @dog = Dog.new&#xA;    end&#xA;&#xA;    def test_barks&#xA;      assert_equal &quot;woof&quot;, @dog.bark    &#xA;    end&#xA;&#xA;    def test_doesnt_bark_when_dead&#xA;      @dog.die&#xA;      assert_raises DeadError do&#xA;        @dog.bark&#xA;      end&#xA;    end&#xA;  end&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;RSpec&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;require 'rspec'&#xA;require 'dog'&#xA;&#xA;describe Dog do&#xA;  before(:all) do&#xA;    @dog = Dog.new&#xA;  end&#xA;&#xA;  context &quot;when alive&quot; do&#xA;    it &quot;barks&quot; do&#xA;      @dog.bark.should == &quot;woof&quot;&#xA;    end&#xA;  end&#xA;&#xA;  context &quot;when dead&quot; do&#xA;    before do&#xA;      @dog.die&#xA;    end&#xA;&#xA;    it &quot;raises an error when asked to bark&quot; do&#xA;      lambda { @dog.bark }.should raise_error(DeadError)&#xA;    end&#xA;  end&#xA;end&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Test::Unit output (as full as I could make it)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Ξ code/examples → ruby dog_test.rb --verbose&#xA;Loaded suite dog_test&#xA;Started&#xA;test_barks(DogTest): .&#xA;test_doesnt_bark_when_dead(DogTest): .&#xA;&#xA;Finished in 0.004937 seconds.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;RSpec output (documentation formatter)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Ξ code/examples → rspec -fd dog_spec.rb &#xA;&#xA;Dog&#xA;  when alive&#xA;    barks&#xA;  when dead&#xA;    raises an error when asked to bark&#xA;&#xA;Finished in 0.00224 seconds&#xA;2 examples, 0 failures&#xA;&#xA;2 tests, 2 assertions, 0 failures, 0 errors&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;P.S. I think Berin (previous responder) is conflating the roles of Cucumber (which grew out of the RSpec project but is independent) and RSpec. Cucumber is a tool for automated acceptance testing in a BDD style, whereas RSpec is a code library for testing which can be, and is, used at unit, integration and functional levels. Hence using RSpec doesn't preclude unit testing - it's just that you call your unit tests 'specs'.&lt;/p&gt;&#xA;" OwnerUserId="10603" LastEditorUserId="10603" LastEditorDisplayName="" LastEditDate="2010-12-17T14:56:35.607" LastActivityDate="2010-12-17T14:56:35.607" />
  <row Id="27407" PostTypeId="2" ParentId="27388" CreationDate="2010-12-17T14:51:39.497" Score="1" ViewCount="" Body="&lt;p&gt;What was deceived by the OO programmers?&lt;/p&gt;&#xA;" OwnerUserId="9095" LastActivityDate="2010-12-17T14:51:39.497" />
  <row Id="27408" PostTypeId="2" ParentId="27400" CreationDate="2010-12-17T14:54:05.503" Score="8" ViewCount="" Body="&lt;p&gt;If you truly have no low-level programming skills, I would &lt;strong&gt;highly&lt;/strong&gt; recommend learning some in your spare time. You don't need to become an expert at it; just reach some level of proficiency. You have to do a lot of the math work yourself, rather than depending on the compiler or libraries to do it for you. It will help you understand readability in programming, since most assembly instructions correspond to one processor instruction. You have to manage the complexity in slightly larger programs yourself, without the benifit of things like &lt;code&gt;if...else&lt;/code&gt;. This will help you write simpler high-level programs, because the assembly experience would have taught you how much easier it is to read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, remeber that assembly is not a language! It is a generic term, that basically means the instruction set of a processor that has been abstracted to a symbolic language. Different processors have different instruction sets, and therefore different assembly languages. When you learn 'assembly', you learn a process, not a language.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-12-17T22:14:12.500" LastActivityDate="2010-12-17T22:14:12.500" CommentCount="1" />
  <row Id="27409" PostTypeId="2" ParentId="27388" CreationDate="2010-12-17T14:54:43.033" Score="15" ViewCount="" Body="&lt;p&gt;I think Alex Stepanov was just trolling for publicity.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2010-12-17T14:54:43.033" CommentCount="2" />
  <row Id="27410" PostTypeId="1" AcceptedAnswerId="27412" CreationDate="2010-12-17T14:58:29.413" Score="0" ViewCount="209" Body="&lt;p&gt;I'm an experienced developer with .NET, and understand core computing concepts well (OOP, design patterns, etc) but would like to also learn rails.   Could someone recommend a good book based on those criteria?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&#xA;Kyle&lt;/p&gt;&#xA;" OwnerUserId="809" LastActivityDate="2010-12-17T16:20:59.110" Title="Ruby on Rails Reading Recommendation" Tags="&lt;books&gt;&lt;ruby-on-rails&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="2" />
  <row Id="27411" PostTypeId="2" ParentId="27195" CreationDate="2010-12-17T15:00:56.400" Score="0" ViewCount="" Body="&lt;p&gt;Sounds like a solution in search of a problem to me.  I'm really not willing to pay the &quot;gee whiz&quot; tax on something that's fundamental to making my living.  This sounds like it'll introduce a serious chunk of complexity for no real gain other than buzzword adoption and &quot;ooh, shiny!&quot; factor.  Requiring constant network connectivity isn't a big deal IMHO (although I recognize it's a valid concern for some), but now you're introducing lag at just about every point in the development process.  I guess I could see it for PaaS development like Salesforce, where your execution environment is hosted (and can't easily or legally be self-hosted), but not for much else.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-17T15:00:56.400" />
  <row Id="27412" PostTypeId="2" ParentId="27410" CreationDate="2010-12-17T15:02:58.637" Score="9" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://pragprog.com/titles/rails4/agile-web-development-with-rails&quot; rel=&quot;nofollow&quot;&gt;Agile Web Development with Rails&lt;/a&gt; will bring you  up to speed at a relatively rapid pace.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For learning the ins and outs of the Ruby language itself, I found &lt;a href=&quot;http://pragprog.com/titles/ruby3/programming-ruby-1-9&quot; rel=&quot;nofollow&quot;&gt;Programming Ruby 1.9&lt;/a&gt; helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Between those two books you'll know what you need to know to get going.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are looking for free and online, &lt;a href=&quot;http://railstutorial.org/&quot; rel=&quot;nofollow&quot;&gt;Ruby on Rails Tutorial&lt;/a&gt; isn't bad at all.&lt;/p&gt;&#xA;" OwnerUserId="7506" LastActivityDate="2010-12-17T15:02:58.637" CommentCount="4" />
  <row Id="27413" PostTypeId="2" ParentId="27335" CreationDate="2010-12-17T15:05:05.630" Score="-1" ViewCount="" Body="&lt;p&gt;If it's ugly enough to piss me off, it's ugly enough for me to delete the entire thing and write a drop in replacement. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll find that more often than not, it takes the same amount of time to do this, as it does to sit there and tip-toe around an unorganized and undocumented mess and caress it gently. &lt;/p&gt;&#xA;" OwnerUserId="9775" LastActivityDate="2010-12-17T15:05:05.630" CommentCount="2" />
  <row Id="27414" PostTypeId="2" ParentId="27388" CreationDate="2010-12-17T15:05:30.920" Score="4" ViewCount="" Body="&lt;h1&gt;No&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;And the premise of the question is ridiculous.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you read the interview, what is really amazing is that this fellow could write a C++ library, work directly with Stroustrup, and still not understand OOP. The example he gives would be like claiming that screwdrivers are a useless hoax because they cannot drive a nail. Or sing opera.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: in the fellow's defense, it appears that all of his OOP exposure comes from C++, which does not support interfaces - and interfaces are key for generic programming, which he is a huge proponent of. His max template example is easily modeled in OOP using interfaces (IComparable); without interfaces, not so much.&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-12-17T16:42:16.577" LastActivityDate="2010-12-17T16:42:16.577" CommentCount="4" />
  <row Id="27415" PostTypeId="2" ParentId="27362" CreationDate="2010-12-17T15:05:44.183" Score="2" ViewCount="" Body="&lt;p&gt;Start with &lt;em&gt;the&lt;/em&gt; classic design problem: KWIC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/David_Parnas&quot; rel=&quot;nofollow&quot;&gt;David Parnas&lt;/a&gt; used KWIC as an example in his classic paper on modularity: &lt;a href=&quot;http://www.cs.umd.edu/class/spring2003/cmsc838p/Design/criteria.pdf&quot; rel=&quot;nofollow&quot;&gt;On the Criteria To Be Used in Decomposing Systems into Modules&lt;/a&gt;, which everyone should probably read every 10 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;KWIC, for &lt;em&gt;key-word in context&lt;/em&gt;, is a simple &lt;a href=&quot;http://en.wikipedia.org/wiki/Key_Word_in_Context&quot; rel=&quot;nofollow&quot;&gt;indexing and sorting problem&lt;/a&gt; where you read in lines of text, and then rotate each line based on keywords (e.g., excluding &quot;the&quot;, &quot;with&quot;), adding each shift to a list you then sort. The idea is that using KWIC would be useful for generating an index for a book. At the time of his classic paper, Parnas said that an experienced programmer could solve it in one to two weeks, but &lt;a href=&quot;http://www.cs.umass.edu/~yannis/law.html&quot; rel=&quot;nofollow&quot;&gt;Yannis's Law&lt;/a&gt; states that it can now be done in one to two &lt;em&gt;hours&lt;/em&gt;. [Operating systems and standard libraries have gotten much better.]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read through Parnas's paper, and as soon as you can grok what the KWIC program is supposed to do, go and write your own as a design exercise. Then, read the rest of the paper, which discusses two different designs: Both are modular, but one achieves information hiding while the other does not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After knowing the KWIC example, you'll be able to appreciate other software design papers that use it. For example, Michael VanHilst's paper &lt;a href=&quot;http://www.cse.fau.edu/~mike/pub/fse96.pdf&quot; rel=&quot;nofollow&quot;&gt;Decoupling Change from Design&lt;/a&gt; uses it to show a really interesting design technique using C++ templates. And, so long as we are talking about C++ templates and design, read Czarnecki and Eisenecker's &lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.86.6053&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;Synthesizing Objects&lt;/a&gt; paper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Moving on from KWIC are other classic examples, such as the &lt;a href=&quot;http://wiki.laptop.org/go/Space_War&quot; rel=&quot;nofollow&quot;&gt;Spacewar example&lt;/a&gt;, which has been ported/redesigned in several languages, such as Python and &lt;a href=&quot;http://www.ibm.com/developerworks/java/library/j-ajdt/#spacewar&quot; rel=&quot;nofollow&quot;&gt;AspectJ&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, any program can be used as a design exercise, but KWIC and Spacewar are examples where you can look at several alternatives.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-17T15:05:44.183" CommentCount="1" />
  <row Id="27416" PostTypeId="1" AcceptedAnswerId="27446" CreationDate="2010-12-17T15:10:54.083" Score="4" ViewCount="74" Body="&lt;p&gt;How are libraries typically distributed?  Because they have to be compiled with the &lt;strong&gt;same compiler&lt;/strong&gt; under the &lt;strong&gt;same settings&lt;/strong&gt; as the project using it, distributing the &lt;code&gt;.dll&lt;/code&gt;, &lt;code&gt;.lib&lt;/code&gt;, etc. seems  impractical.  Is the source code just made available for download?&lt;/p&gt;&#xA;" OwnerUserId="8810" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-17T15:32:06.663" LastActivityDate="2010-12-17T15:46:40.920" Title="Distributing Libraries" Tags="&lt;c++&gt;&lt;distribution&gt;&lt;library&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="1" />
  <row Id="27417" PostTypeId="2" ParentId="27400" CreationDate="2010-12-17T15:11:00.183" Score="5" ViewCount="" Body="&lt;p&gt;You will always benefit from peaking under the covers and understanding a bit more about the what sits beneath the abstraction you are standing on top of.  As a college professor of mine stated once &quot;All good programmers understand the hardware&quot; -- you don't have to be able to create and manipulate circuits, but you should have some grasp of whats going on down there -- it will only make you better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0123744938&quot; rel=&quot;nofollow&quot;&gt;Computer Organization and Design&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-12-17T15:11:00.183" />
  <row Id="27418" PostTypeId="2" ParentId="27388" CreationDate="2010-12-17T15:16:01.817" Score="5" ViewCount="" Body="&lt;p&gt;OOP is just a specific approach to encapsulation, which was recognized as a desirable design approach at least as far back as the 1970s.  The &quot;hoax&quot; aspect is probably provoked by the insistence of too many developers that OOP should be used for everything.  For many classes of problems it's not a superior approach, and in some situation it's inferior.  Unfortunately, most schools tend to focus on just one paradigm, and OOP is the current favorite, leading to many developers who think that OOP is the &quot;one true way&quot;.  Hopefully, the current trend of interest in functional programming will broaden people's horizons.  Then maybe we can branch out into continuation programming, or deterministic logic programming, or dataflow, or...&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-17T15:16:01.817" />
  <row Id="27419" PostTypeId="2" ParentId="27317" CreationDate="2010-12-17T15:18:28.657" Score="0" ViewCount="" Body="&lt;p&gt;In the Microsoft world it will become a much more important position as the main SCM tool, Team Foundation Server, has almost doubled in size in terms of features in only two years (2008 to 2010).&lt;/p&gt;&#xA;" OwnerUserId="8776" LastActivityDate="2010-12-17T15:18:28.657" />
  <row Id="27420" PostTypeId="2" ParentId="27416" CreationDate="2010-12-17T15:18:38.163" Score="2" ViewCount="" Body="&lt;p&gt;You can distribute the .dll, there's nothing wrong with that. In .NET, when you reference a library it doesn't need to be recompiled, you can just use it as is. Plenty of projects distribute their binaries but not their source.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-17T15:18:38.163" CommentCount="2" />
  <row Id="27421" PostTypeId="2" ParentId="27362" CreationDate="2010-12-17T15:20:02.547" Score="1" ViewCount="" Body="&lt;p&gt;I agree Katas and Euler are nice for designing algorithms and practicing coding -- perhaps you can expand on them, and be a little creative and design a system around one of the problems. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, I am working on not just solving the problems of Euler to find the quickest, shortest answer, but solving them in a distributed way -- I want to set up a series of Erlang nodes in order to tackle one of the problems.  Of course, this means I have to figure out how to separate out the problem into discrete chunks and have them report back on their progress and aggregate the results together (all within a Functional Language that I'm not an expert in).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps you can design a system around solving one of these problems as a business solution -- how can you make it so that multiple &quot;customers&quot; could have access to your problem at one time, you can go through designing a client and service layer interactions, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's all about being creative and having fun.&lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-12-17T15:20:02.547" />
  <row Id="27422" PostTypeId="1" CreationDate="2010-12-17T15:21:05.680" Score="5" ViewCount="321" Body="&lt;p&gt;Hi guys, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yesterday, I read couple of chapters on ASP.NET Ajax,and jQuery from my ASP.NET 4.0 book and I found those frameworks pretty interesting and decide to learn more about it.  Today, I borrow some books from library on AJAX and Javascript.  It seems ASP.NET ajax is different from Ajax and jQuery seems like the &quot;new&quot; javascript.  Is that means I can skip javascript and learn jQUERY directly? On the other hand, the Ajax(non asp.net) book I borrow from library seems apply to the client side web programming only and looks quite difference from what I learned from ASP.NET AJAX.  If I'm a ASP.NET developer I guess I should stick with ASP.NET AJAX instead of client side AJAX right?  What about PHP? Is there a &quot;PHP AJAX&quot; similar to ASP.NET AJAX?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not that I'm &quot;lazy&quot; to learn other tools, but I just want to focus on the right ones.&#xA;Thx.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The more I going deep &lt;/p&gt;&#xA;" OwnerUserId="9250" LastActivityDate="2010-12-17T15:39:37.600" Title="Confused about ASP.NET AJAX, AJAX, jQUERY and javascript" Tags="&lt;programming-languages&gt;&lt;web-development&gt;&lt;php&gt;&lt;asp.net&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="27423" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T15:21:40.920" Score="1" ViewCount="" Body="&lt;p&gt;Check out a Kinesis keyboard: &lt;a href=&quot;http://www.kinesis-ergo.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.kinesis-ergo.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can get a foot switch for their keyboards which can be customized to be Shift, Enter, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a link to one of their foot switches: &lt;a href=&quot;http://www.kinesis-ergo.com/fs-savant-elite.htm&quot; rel=&quot;nofollow&quot;&gt;http://www.kinesis-ergo.com/fs-savant-elite.htm&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4073" LastActivityDate="2010-12-17T15:21:40.920" />
  <row Id="27424" PostTypeId="2" ParentId="27400" CreationDate="2010-12-17T15:23:44.913" Score="0" ViewCount="" Body="&lt;p&gt;I think you reach a point of diminishing returns as your career advances.  That is, you should learn assembly language early, as it leads to a better fundamental understanding of everything that comes after.  However, if you're already in the work force and have a few years of experience, you'll already have a feel for the way things work, so learning the actual nuts-and-bolts details may not provide you with as much insight.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-17T15:23:44.913" />
  <row Id="27425" PostTypeId="2" ParentId="27388" CreationDate="2010-12-17T15:24:34.643" Score="2" ViewCount="" Body="&lt;p&gt;OOP is not a hoax any more that Functional Programming, Structured Programming, NoSQL, Relational Databases, etc are hoaxes. Bottom line, if you understand what OOP is and how to write code in an object-oriented manner then you can write excellent code using that style. But there are also viable alternatives. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The real problem is when someone sees OOP as the &quot;only&quot; possible solution without considering the possibility of an alternative approach, and why one might be beneficial. For example, when programming on a resource-constrained 8 bit micro-controller, you might be better off just writing simple, straightforward code in C. Or maybe not, that is just an example - first consider the constraints / requirements / manpower for your situation and proceed from there.&lt;/p&gt;&#xA;" OwnerUserId="10365" LastActivityDate="2010-12-17T15:24:34.643" CommentCount="1" />
  <row Id="27426" PostTypeId="2" ParentId="27422" CreationDate="2010-12-17T15:26:24.550" Score="1" ViewCount="" Body="&lt;p&gt;Here's the deal in a nutshell&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(1) JQuery does not replace Javascript, It is a library that simplifies common JavaScript tasks. Any JQuery code is actually written in JavaScript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(2) AJAX is just JavaScript code that manipulates the web page client-side and often pulls content down from the server forcing a reload of the whole page. There are not multiple &quot;Versions&quot; of AJAX.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(3) Notwithsdanding #2 above. Both ASP.NET and JQuery have libraries or tools that simplify the task of creating AJAX driven websites. There are also a number of other tools that do this too. It is all the same AJAX, just different ways of generating it, or libraries encapsulating it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(4) Which library should you learn? That's mostly a preference thing. If you like using Web controls a lot and the drag-drop web development with ASP.NET you might prefer just using the ASP.NET controls to do the same. I also am an ASP.NET developer, but I prefer using JQuery because it often gives me more fine grained control, even if it can be &lt;em&gt;slightly&lt;/em&gt; more work sometimes. Also, if you learn the JQuery way, you can use it on any platform including PHP.&lt;/p&gt;&#xA;" OwnerUserId="287" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-12-17T15:32:27.120" LastActivityDate="2010-12-17T15:32:27.120" />
  <row Id="27427" PostTypeId="2" ParentId="27173" CreationDate="2010-12-17T15:28:03.253" Score="1" ViewCount="" Body="&lt;p&gt;I would say it does not matter that much. I was a student representative in the board that planned the education for a couple of engineering programs at my university. One thing we concluded was that &lt;em&gt;very few&lt;/em&gt; CS/technical/engineering students graduated &quot;in time&quot;. If the education was 4.5 years, it was very common to finish in 5-5.5 years for example and for CS students it was actually much worse than the average. (Many started working before getting their diploma and never came back though.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things I think matter more (quoting a bit from other answers here):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You finished. You actually have a degree. This maybe matters the most actually &lt;em&gt;getting&lt;/em&gt; to an interview, but many companies rather hire people with degrees than without. &lt;/li&gt;&#xA;&lt;li&gt;You actually finished your courses in time (stupid missing the graduation deadline? yes, but it's mostly a technicality).&lt;/li&gt;&#xA;&lt;li&gt;Your GPA (Grade Point Average, your grades that is)&lt;/li&gt;&#xA;&lt;li&gt;What projects you have worked with and which roles you have taken in project groups etc... (really important I've noticed) Try to show that you did actually put in work in the projects and wasn't the guy that just &quot;hitched along for the ride, doing nothing&quot;.&lt;/li&gt;&#xA;&lt;li&gt;Working with other projects/applications on the side, like open-source work, or just learning new things. Shows that you like to learn new things in general.&lt;/li&gt;&#xA;&lt;li&gt;Earlier employments such as internships, summer work etc...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As for your extra months, definitely try to use them to your advantage. Search for jobs, polish your CV, work on some interesting project. You can also take a course in some totally unrelated but still useful subject (also, it may not be as unrelated to your future work as you think). This will widen your competency and probably make you more attractive on the job market.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if an employer do ask, be honest about it and do like Ethel Evans suggested, explain what happened, that you were done with your courses and everything but it was a stupid mistake that you missed filing for graduation (it DOES come as a surprise to many students at my university that you actually have to apply for the diploma, you do not get it automatically just for being done with all the courses). As long as you don't give the impression that you are usually late with deadlines I think you will be fine. &lt;/p&gt;&#xA;" OwnerUserId="953" LastActivityDate="2010-12-17T15:28:03.253" />
  <row Id="27429" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T15:28:59.417" Score="0" ViewCount="" Body="&lt;p&gt;Whatever you use, will be more readable than NAMES-IN-ALL-CAPS with DASHES-INSTEAD-OF-UNDERSCORES. Of course, most languages won't allow such a use of minus signs anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit: That's how it looks in the C**OL language, just in case you where wondering where I saw such ugly naming standards. &lt;/p&gt;&#xA;" OwnerUserId="9359" LastEditorUserId="9359" LastEditorDisplayName="" LastEditDate="2010-12-17T22:47:48.057" LastActivityDate="2010-12-17T22:47:48.057" CommunityOwnedDate="2011-01-06T21:09:02.793" />
  <row Id="27430" PostTypeId="2" ParentId="27422" CreationDate="2010-12-17T15:29:38.620" Score="1" ViewCount="" Body="&lt;p&gt;There are many ways to do AJAX, and if you're doing ASP.NET, ASP.NET AJAX is one of those ways.  In recent years, I personally have gotten away from doing it that way in favor of jQuery and its implementation of AJAX.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If I'm a ASP.NET developer I guess I should stick with ASP.NET AJAX instead of client side AJAX right?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;ASP.NET AJAX is still client-side ajax.  Look for the (enormous) JavaScript libraries generated for you by ASP.NET AJAX (you'll see them while running in ScriptResource.axd or WebResource.axd.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is that means I can skip javascript and learn jQUERY directly? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;jQuery is just a library of JavaScript functions.  You'll still need an understanding of JavaScript to use jQuery properly.  jQuery does abstract away some tricky JavaScript, so jQuery is, in my opinion, a good way to start using and learning JavaScript (though you'd better at least know &lt;em&gt;some&lt;/em&gt; JavaScript before you start using it).&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is there a &quot;PHP AJAX&quot; similar to ASP.NET AJAX?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;There are a &lt;em&gt;lot&lt;/em&gt; of JavaScript libraries to abstract AJAX away for you.  jQuery is just one of them, but it is a very popular one, and a very robust one.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-17T15:29:38.620" />
  <row Id="27432" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T15:30:37.570" Score="0" ViewCount="" Body="&lt;p&gt;this is a bit unusual (to be answering my own question), but its probably the best way to gauge the reaction to this idea. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually Tom's response got me thinking that a combination of the Das Keyboard, with the facility to download my keyboard settings from the net would probably be the best way. similar to the way my customized gmail inbox always goes where ever i do, so should my keyboard layout and mappings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Das keyboard is usually completely blank with no key displays. The displays themselves could also be downloaded from the cloud. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We could have the best of both worlds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And this probably has a larger applicability for non-english keyboards layouts. &lt;/p&gt;&#xA;" OwnerUserId="10515" LastActivityDate="2010-12-17T15:30:37.570" />
  <row Id="27433" PostTypeId="2" ParentId="27400" CreationDate="2010-12-17T15:30:37.667" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes&lt;/strong&gt; - Continuous, life-long learning is an essential component of a career in Software development. If you are interested in continuing to learn about programming and how to improve your craft then yes, at some point you should learn assembly as it will expose you to a completely new language and way of writing code. For the same reason, I recommend experimenting with many languages / programming styles including Ruby/Python (dynamic language), Haskell/F# (pure functional language), Lisp/Scheme (functional language), etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say that it is too late if you are no longer interested in learning more about the programming craft. For example, if you have reached the point in your career where you may soon be moving on from programming into another area such as Management, Systems Engineering, Sales/Marketing, etc. If you think you might want to move into a new area in the next few years then I would focus more on the skills necessary to develop in that area, instead of on the programming craft. &lt;/p&gt;&#xA;" OwnerUserId="10365" LastEditorUserId="10365" LastEditorDisplayName="" LastEditDate="2010-12-17T15:39:51.517" LastActivityDate="2010-12-17T15:39:51.517" />
  <row Id="27434" PostTypeId="2" ParentId="27422" CreationDate="2010-12-17T15:30:50.553" Score="9" ViewCount="" Body="&lt;p&gt;This is a complicated subject but here's my attempt to distill what all of these things are and how they relate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;AJAX:&lt;/strong&gt; This is a &lt;em&gt;concept&lt;/em&gt; that involves pulling data asynchronously into a web application without reloading the entire page.  It allows for dynamic UIs such as Google Mail that act like desktop applications but run in a browser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;ASP.NET AJAX:&lt;/strong&gt; This is a library authored by Microsoft that attempts to make the AJAX concept accessible to developers that have an ASP.NET background.  It provides methods that are similar to .NET Framework methods such as String.Format and others.  It has some overlap with JQuery but they can both be used in harmony together as they have different strengths and weaknesses.  It is important to remember that this is a client-side library and doesn't actually have a dependency on ASP.NET.  You could use ASP.NET AJAX with any server-side technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;jQuery:&lt;/strong&gt; This is a library that provides a framework to make AJAX applications easy to write.  It provides a powerful selection model using a CSS-like syntax for interacting with the browser DOM.  It also abstracts away many of the differences between the different browsers and versions.  So you are almost always better off coding against jQuery as opposed to browser-specific DOM or AJAX APIs.  There is a rich ecology of jQuery plugins available which can add all sorts of powerful behavior to your web applications, without a lot of work on your part.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;JavaScript:&lt;/strong&gt; This is an interpreted language implemented by all major browsers that allows for dynamic, client-side behavior on web sites.  The language itself is pretty solid, but the different APIs that the different browsers provide make it complicated to write &quot;raw&quot; JavaScript effectively.  That is why there are all these libraries on top of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, as to the question of what you should learn as an ASP.NET developer.  I would recommend getting familiar with the functionality of both ASP.NET AJAX and jQuery.  Microsoft endorses both, and both are included with VS 2010.  They have different strengths and weaknesses and if you understand what those are you will be more effective with using them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't have to use AJAX to do ASP.NET websites, but your websites will be more powerful and more user-friendly if you do.  And if you develop a sense for when AJAX is effective and when it isn't, you will be a better web developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and stay away from UpdatePanels.  That was MS's first answer to AJAX, but they are generally bad and go against a lot of the concepts that make AJAX good.  They give you a short term benefit but in the long term they are a maintainability nightmare in my experience.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-12-17T15:30:50.553" CommentCount="4" />
  <row Id="27435" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T15:32:22.847" Score="2" ViewCount="" Body="&lt;p&gt;Because you'd get abominations like this: &#xA;&lt;img src=&quot;http://i.imgur.com/47Yub.gif&quot; alt=&quot;alt text&quot;&gt;&lt;br&gt;&#xA;Note for the perplexed: this is an APL keyboard.&lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-12-17T15:32:22.847" CommentCount="2" />
  <row Id="27436" PostTypeId="2" ParentId="26596" CreationDate="2010-12-17T15:33:37.053" Score="3" ViewCount="" Body="&lt;p&gt;Another interesting way to measure productivity would be to count automatable tests reviewed by a manager per day. The developer gets:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a point for writing an automatable test (and passing review) and adding it to the regression test suite, &lt;/li&gt;&#xA;&lt;li&gt;a point for making them pass, while not causing any other regression test failures. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The developer and manager can jointly improve the system by:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;jointly agreeing on the important areas of development and testing&lt;/li&gt;&#xA;&lt;li&gt;independently reviewing and running the test suite.&lt;/li&gt;&#xA;&lt;li&gt;deciding not to build a feature that has limited business benefit but requires lots of development and testing required to deliver that feature. (The most productive line of code is one that you decided not to write because it delivers no business benefit). &lt;/li&gt;&#xA;&lt;li&gt;partitioning the system into an architecture (such as model-view-controller) which facilitates incremental feature development without breaking the whole system. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The developer cannot game the metric because:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;redundant tests will be blocked by manager review. &lt;/li&gt;&#xA;&lt;li&gt;fine-grained tests may be blocked by manager review. &lt;/li&gt;&#xA;&lt;li&gt;fine-grained tests will improve the quality of the system. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The manager cannot game the metric because:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;rejecting too many tests will lead to developer attrition. &lt;/li&gt;&#xA;&lt;li&gt;requesting too many tests will make it hard to refuse a later deadline. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The developer cannot screw the manager because&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Each delivered unit of functionality with tests must also pass the regression suite. i.e. This forces the developer to develop carefully without breaking other code. &lt;/li&gt;&#xA;&lt;li&gt;Any claim of work must be provable by passing new tests and regression tests.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The manager cannot screw the developer because. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Each requested unit of functionality must include key test cases, and an estimate of the number of test cases needed to finish the work. &lt;/li&gt;&#xA;&lt;li&gt;It's hard to ask for an aggressive schedule and/or free overtime when you are obviously asking for a lot of work.  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Another big benefit to the manager is that he can bring on new developers and know that they will not be able to deliver code that silently breaks the system (because the regression test suite catches that). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The big downside to the manager is that it forces him to admit that his system is more complex than it seems on the 1-page description of the feature. The other downside is that the transparency of this method will make it hard to blame developers for business failure. &lt;/p&gt;&#xA;" OwnerUserId="10347" LastActivityDate="2010-12-17T15:33:37.053" />
  <row Id="27437" PostTypeId="2" ParentId="27410" CreationDate="2010-12-17T15:34:30.567" Score="1" ViewCount="" Body="&lt;p&gt;I found the Head First book on Rails to be very useful.  I come from a .NET background as well and I was able to follow the book with very little knowledge of Ruby and no knowledge of Rails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596515774&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Head-First-Rails-Learners-Companion/dp/0596515774&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-12-17T15:34:30.567" />
  <row Id="27438" PostTypeId="2" ParentId="27416" CreationDate="2010-12-17T15:34:43.657" Score="1" ViewCount="" Body="&lt;p&gt;If you are going to distribute Libraries or Applications written in C++, you will need to provide a different binary for each platform you are going to support. For example, Windows, Linux, Mac, etc. You may also need to provide different versions for each architecture, for example 32-bit Windows vs 64-bit.&lt;/p&gt;&#xA;" OwnerUserId="10365" LastActivityDate="2010-12-17T15:34:43.657" />
  <row Id="27439" PostTypeId="2" ParentId="27379" CreationDate="2010-12-17T15:36:03.843" Score="0" ViewCount="" Body="&lt;p&gt;If I were in your situation I would use technology that I best in.  We had a similar situation in my company where client demanded java and we were all .net developers. At the beginning everything was just fine, but latter on some small thing gave as such problems and in one point time frames were SciFi.&#xA;In my experience it is easy to learn new programming language and new technology, but to really know you need long time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Sorry for my bad English).&lt;/p&gt;&#xA;" OwnerUserId="10530" LastActivityDate="2010-12-17T15:36:03.843" />
  <row Id="27440" PostTypeId="2" ParentId="27317" CreationDate="2010-12-17T15:37:51.987" Score="1" ViewCount="" Body="&lt;p&gt;Based on previous experience, there is a real need for a Configuration Manager when working with Clearcase, especially when working with large, established code bases. So I would say yes, as long as you are willing to continue learning about new tools and processes, such as DVCS, newer bug systems, continuous integration, etc.&lt;/p&gt;&#xA;" OwnerUserId="10365" LastActivityDate="2010-12-17T15:37:51.987" CommentCount="1" />
  <row Id="27441" PostTypeId="2" ParentId="27422" CreationDate="2010-12-17T15:39:37.600" Score="1" ViewCount="" Body="&lt;p&gt;No, there is no PHP AJAX.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have to do client development learn first pure javascript. Then learn jQuery. If you start with just jQuery you will miss important javascript concepts and you will be basically doing cut&amp;amp;paste programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;JavaScript and jQuery are &lt;strong&gt;the&lt;/strong&gt; universal and standardized tools that can be used almost in any HTML development. PHP programmers use js+jq when doing client things, Ruby programmers use js+jq etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, as far as I know, ASP.NET AJAX is even a higher level JavScript framework that is suited to work with ASP.NET, because ASP.NET, as you probably know, is itself a pretty hight abstraction from HTML. That's why they have a specific JS things. Basically it's ment to  play well with the server-side ASP.NET components and enhance them. Also, ASP.NET AJAX started in times where it wasn't &lt;em&gt;that&lt;/em&gt; clear that jQuery will be defacto-standard. Or, it was clear, but not to Microsoft ;-) - they actually planned to create their own middle-level JS library (like jQuery is). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, I'm not a Microsoft guy and I would definitely stick to pure JavaScript + jQuery for as long as I could - if your employer/project does not exactly require ASP.NET AJAX. It will give you the most universally recognized knowledge of client-side programming.&lt;/p&gt;&#xA;" OwnerUserId="10657" LastActivityDate="2010-12-17T15:39:37.600" />
  <row Id="27442" PostTypeId="2" ParentId="27410" CreationDate="2010-12-17T15:40:47.100" Score="2" ViewCount="" Body="&lt;p&gt;Once you've grasped the basics of creating web applications with Rails and are looking for further reading, I highly recommend you check out both the &lt;a href=&quot;http://pragprog.com/titles/achbd/the-rspec-book&quot; rel=&quot;nofollow&quot;&gt;RSpec Book&lt;/a&gt; and &lt;a href=&quot;http://www.manning.com/black2/&quot; rel=&quot;nofollow&quot;&gt;The Well-Grounded Rubyist&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The former gives a great overview of behaviour-driven development with an eye to Rails, and is worth reading because the Ruby community has a strong emphasis on testing and most people are using the tools described in the RSpec book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The latter is the best book out there for getting into a Ruby mindset and developing your knowledge of the language from 'the pretty guts behind Rails' to understanding both the guts and the ethos of the language, which approaches many things with a very different perspective from C# and similar languages.&lt;/p&gt;&#xA;" OwnerUserId="10603" LastActivityDate="2010-12-17T15:40:47.100" />
  <row Id="27443" PostTypeId="2" ParentId="27240" CreationDate="2010-12-17T15:43:17.647" Score="0" ViewCount="" Body="&lt;p&gt;Formal Performance Evaluation should be separate from bi-weekly informal one-on-one and ad-hoc feedback.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Formal appraisal/performance review should be at most quarterly and this is usually where you are measured by some documented method against your Key Performance Indicators (KPI's) or objectives. The week before this happens, everyone is keen to be hero, either working late, fixing the nastiest/ugliest/hardest bugs, cleaning up mess that nobody wants to touch, etc and generally trying to look good in front of their line manager. When there's potential raises at stake, this will always happen. There are many studies of the best ways to motivate but the role of the individual will always need to be considered. Often the objectives are just used to steer away from bad/unhelpful behaviour and try to aim towards a new skill or responsibility that will be win-win for the company and the employee.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There should also be a regular one-on-one/one-to-one meeting which is an informal chat about what's been happening lately, how you feel about project, interaction with other team members, etc. This is the time to raise things like &quot;I'm finding it hard to get through to Dave&quot; where your line manager or team leader can give some insight into alternative approaches. This is best done for 10 to 15 minutes weekly (new hires) or bi-weekly (everyone else), but not less frequently as issues that come up will not be dealt with and either fester until Perf Eval time (bad) or not get addressed (also bad).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Isolated incidents where you upset/are-upset-by a colleague or do or say something that your team leader considers troublesome should be handled within 24 hours on an ad-hoc basis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This may sound like a whole load of meetings, but they should be kept short and to-the-point, keeping their value in focus.&lt;/p&gt;&#xA;" OwnerUserId="572" LastActivityDate="2010-12-17T15:43:17.647" />
  <row Id="27444" PostTypeId="1" AcceptedAnswerId="27450" CreationDate="2010-12-17T15:46:05.227" Score="5" ViewCount="755" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/26155/object-oriented-programming-vs-procedural-programming-other&quot;&gt;Object-Oriented Programming vs Procedural Programming/other&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Or just when working with a team?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a feeling that structured programming is faster to develop, and not bad to maintain if you are working alone.. But I may be wrong.&lt;/p&gt;&#xA;" OwnerUserId="7049" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T14:25:52.600" LastActivityDate="2010-12-26T14:25:52.600" ClosedDate="2010-12-18T20:21:57.697" Title="Is Object Oriented programming always the best way?" Tags="&lt;object-oriented&gt;" AnswerCount="12" CommentCount="7" FavoriteCount="1" />
  <row Id="27445" PostTypeId="2" ParentId="27410" CreationDate="2010-12-17T15:46:35.050" Score="2" ViewCount="" Body="&lt;p&gt;I recommend the online &lt;a href=&quot;http://railstutorial.org&quot; rel=&quot;nofollow&quot;&gt;Rails Tutorial&lt;/a&gt; book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also have a copy of &lt;a href=&quot;http://www.wrox.com/WileyCDA/WroxTitle/Ruby-on-Rails-for-Microsoft-Developers.productCd-0470374950.html&quot; rel=&quot;nofollow&quot;&gt;Ruby on Rails for Microsoft Developers&lt;/a&gt; and it's been pretty helpful in providing an overview of Rails, drawing parallels with ASP.NET, and giving a good introduction to web development in general.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-17T15:46:35.050" />
  <row Id="27446" PostTypeId="2" ParentId="27416" CreationDate="2010-12-17T15:46:40.920" Score="3" ViewCount="" Body="&lt;p&gt;As you noticed, distributing libraries is impractical...  You have to care about the version of the compiler (including Service Packs), the settings used to compile, etc.  We used to have 6 different ports for each version of Visual Studio: the most important difference was the Runtime Library used (/ST, /MT or /MD).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But unless you can distribute the source code, you'll have to live with this...&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-12-17T15:46:40.920" />
  <row Id="27447" PostTypeId="2" ParentId="27444" CreationDate="2010-12-17T15:48:22.103" Score="2" ViewCount="" Body="&lt;p&gt;I approach every development problem from an OO perspective, because that is what I'm used to, and I find it to be a powerful model.  I think other paradigms such as functional programming are also quite powerful, but I'm not as comfortable with them so my fallback is OO.  Even when working on a solo project, OO is quite useful.  The only time I would write some &quot;quick and dirty&quot; procedural code is for a throwaway script or a 20 line prototype or something.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-12-17T15:48:22.103" />
  <row Id="27448" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T15:48:59.623" Score="1" ViewCount="" Body="&lt;p&gt;I used to use camel/pascalcase, but I found that underscore case is just easier to read.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-17T15:48:59.623" CommunityOwnedDate="2011-01-06T21:09:02.793" CommentCount="2" />
  <row Id="27449" PostTypeId="2" ParentId="27400" CreationDate="2010-12-17T15:49:01.573" Score="27" ViewCount="" Body="&lt;p&gt;Can't believe no one has mentioned &lt;strong&gt;debugging&lt;/strong&gt;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't &lt;em&gt;written&lt;/em&gt; a line of assembly code in many years now. But I &lt;em&gt;read&lt;/em&gt; it reasonably often. High-level debugging is great when you have the source and symbol information, but when your fancy library is throwing an unhandled exception on customer machines, it's too late to require that to be included in the license...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I can still open up the disassembler and see what your high-level logic eventually ended up &lt;em&gt;doing&lt;/em&gt;, trace bad data back to its origin, find out who changed the FPU control register...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This has saved my bacon more often than I care to think about. And it's &lt;em&gt;never&lt;/em&gt; too late to learn - there are &lt;a href=&quot;http://stackoverflow.com/questions/379977/online-assembly-language-resources&quot;&gt;plenty of great references and tutorials&lt;/a&gt; out on the 'Net, and just about any program running on your machine can provide a hands-on environment.&lt;/p&gt;&#xA;" OwnerUserId="63" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2010-12-17T16:55:02.613" LastActivityDate="2010-12-17T16:55:02.613" CommentCount="6" />
  <row Id="27450" PostTypeId="2" ParentId="27444" CreationDate="2010-12-17T15:49:06.920" Score="29" ViewCount="" Body="&lt;p&gt;Nothing in software development is that absolute. OOP is &lt;em&gt;sometimes&lt;/em&gt; the best way, and it won't as a clear-cut as &quot;in a team&quot; vs &quot;solo&quot; either. Some solo projects would benefit from OOP techniques, and some team projects would be well suited for procedural development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's hard to say 100% when one would be better than another and it's definitely important to be familiar with both approaches.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-17T15:49:06.920" CommentCount="1" />
  <row Id="27451" PostTypeId="2" ParentId="27444" CreationDate="2010-12-17T15:49:32.417" Score="4" ViewCount="" Body="&lt;p&gt;I don't think team vs. individual (or even team size) is a good metric to determine whether to use OOP or not.  Other considerations such as your team (or individual) experience with OOP vs. structural programming and what the project requirements are will be far more important.&lt;/p&gt;&#xA;" OwnerUserId="1770" LastActivityDate="2010-12-17T15:49:32.417" />
  <row Id="27452" PostTypeId="2" ParentId="26989" CreationDate="2010-12-17T15:50:31.380" Score="0" ViewCount="" Body="&lt;p&gt;When we had to get up to speed on WCF last winter, we purchased every book on the market at the time. None had &quot;everything&quot; and many of our tasks ended up reading snippets from several different books and web pages. And to make matters worse, there were 2 situations where we spent a week on the phone with Microsoft trying to resolve.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the book includes a section on writing message inspectors, I strongly recommend getting a handle on that. &lt;a href=&quot;http://stackoverflow.com/questions/1441647/multiple-name-spaces-in-a-soap-fault-message-causing-faultexception-deserializati&quot;&gt;Message inspectors&lt;/a&gt; (this was one of the situations we wasted a week on the phone) are the only way that you can intercept and modify (or analyze) incoming and outgoing messages. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-12-17T15:50:31.380" CommentCount="2" />
  <row Id="27453" PostTypeId="2" ParentId="27444" CreationDate="2010-12-17T15:52:22.397" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It does not depend on the team.&lt;/strong&gt; It depends on what you are doing. I have used OO for some projects and procedural for others. Personally I feel that the bigger the project, the more benifits I gain from OO, but again you would not write driver code in any sort of OO way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may write different areas of a project in different ways as well. For instance, if you wrote a piece of software to be sold with a printer, you'd probably write the printer driver procedurally. The photo editor would probably be OO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as maintainability is concerned, in my experience it's roughly the same no matter what paradigm you use. Well written code is easily maintained and extensible - outside of any one paradigm.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-17T15:52:22.397" />
  <row Id="27454" PostTypeId="1" AcceptedAnswerId="27457" CreationDate="2010-12-17T15:55:11.160" Score="7" ViewCount="305" Body="&lt;p&gt;I have been a professional developer for just over half a year and have been amazed at how big the world really is out of college. I have continued to learn in my free time but I am wondering where should I focus?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FOCUS 1) The development stack used by my company. Quickest payoff in my day to day development. #Deepest&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FOCUS 2) A different language with the same paradigm. See if I can generalize my knowledge and way of thinking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FOCUS 3) Different language, different paradigm. Expand my borders and learn new ways to do things. #Broadest&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If anyone has a different focus feel free to put that out there.&lt;/p&gt;&#xA;" OwnerUserId="9274" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2010-12-17T16:00:00.827" LastActivityDate="2010-12-17T21:04:58.800" Title="Should I focus on being deep or broad" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;self-improvement&gt;" AnswerCount="7" FavoriteCount="0" />
  <row Id="27456" PostTypeId="1" AcceptedAnswerId="27468" CreationDate="2010-12-17T15:57:31.507" Score="0" ViewCount="137" Body="&lt;p&gt;I've messed around with some different languages pretty extensively (PHP, C++, Objective-C), and checked out a few others (Ruby, Python, ...), and was wondering what I should focus my strengths on to get a nice job in the Illinois area. I'm almost done with a 2 year associates degree, and will have ~3 years PHP/MySQL/Javascript/HTML/CSS/etc company work experience when I graduate. In addition I've written an ok selling iPhone app. I'd like to focus on software development, preferably Obj-C / Cocoa, but as I've already used web stuff so extensively, I wouldn't mind doing that, but I'm getting a bit worn out on PHP. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess my question is, what is the Illinois job market like, and is there a specific language that is &quot;hot&quot; around here? I'd hate to learn Obj-C like crazy and find out that there are no jobs other than in California.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have looked around on Monster, CB, etc, but was just wondering if anyone here had firsthand experience, or would know what would best help me land a nice job.&lt;/p&gt;&#xA;" OwnerUserId="8641" LastActivityDate="2010-12-17T16:19:56.877" ClosedDate="2010-12-17T16:25:48.513" Title="What is the Illinois programming market like?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;job-market&gt;" AnswerCount="1" CommentCount="7" />
  <row Id="27457" PostTypeId="2" ParentId="27454" CreationDate="2010-12-17T15:59:22.070" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say that you need to do both.  Start with #1 as that has the immediate payoff, and you haven't been doing this for very long.  But you definitely need to do some of #2 and #3.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastEditorUserId="10106" LastEditorDisplayName="" LastEditDate="2010-12-17T16:45:53.467" LastActivityDate="2010-12-17T16:45:53.467" CommentCount="4" />
  <row Id="27458" PostTypeId="2" ParentId="27454" CreationDate="2010-12-17T15:59:51.477" Score="7" ViewCount="" Body="&lt;p&gt;Being a specialist can make you more expensive. But job opportunities requiring that high level will be limited, both in their numbers and geographically.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being a generalist perhaps pays less but opens a wide variety of job opportunities to you, potentially around the world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also for higher level and managerial jobs it is preferred to have a person experienced in a variety of things, techniques and technologies. Knowing edges and being able to see a big picture makes you a valuable asset.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few of my ideas on the matter: &lt;a href=&quot;http://developerart.com/publications/10/going-specialist-or-generalist&quot; rel=&quot;nofollow&quot;&gt;Going specialist or generalist&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="1093" LastEditorDisplayName="" LastEditDate="2010-12-17T16:10:51.533" LastActivityDate="2010-12-17T16:10:51.533" CommentCount="1" />
  <row Id="27459" PostTypeId="2" ParentId="27444" CreationDate="2010-12-17T16:00:00.153" Score="4" ViewCount="" Body="&lt;p&gt;Use the best tool for the job. sometimes that is OOP sometimes its not.  Whether or not it is in a team setting has little to no bearing on if you are using OOP or not.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-12-17T16:00:00.153" />
  <row Id="27460" PostTypeId="2" ParentId="27444" CreationDate="2010-12-17T16:01:48.560" Score="3" ViewCount="" Body="&lt;p&gt;OOP is a tool.  It's one tool out of many that are available, and it does a very good job at dealing with most real-world programming issues, so some people tend to think it's the perfect tool for everything.  It's not, and it can be painful to have OO forced on you for situations that it doesn't apply well to.  (That's why I don't use Java.)  But it should be one tool out of several that you know how to use.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-17T16:01:48.560" />
  <row Id="27461" PostTypeId="2" ParentId="25969" CreationDate="2010-12-17T16:01:52.677" Score="1" ViewCount="" Body="&lt;p&gt;My thoughts:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using javascript will always increase the surface area for attack, not just for you, but for your customers - almost everyone I know browses with NoScript, and this includes non-technical folks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I see an online shopping site that uses javascript badly I will not buy from them. I always first browse with javascript disabled, and if a site degrades gracefully I may be interested. If it is just broken I will usually assume the programmers also don't have the capability to deliver a secure shop platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It tends to slow everything down - despite being close to a major city, my broadband is slow enough without having to wait for some marketing idea to load. If a site takes more than 5 seconds to load basic content then I won't bother unless I have a real need.&lt;/p&gt;&#xA;" OwnerUserId="9062" LastActivityDate="2010-12-17T16:01:52.677" CommunityOwnedDate="2011-05-26T14:08:09.500" />
  <row Id="27462" PostTypeId="2" ParentId="27444" CreationDate="2010-12-17T16:02:23.830" Score="8" ViewCount="" Body="&lt;h1&gt;No.&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;If you think &lt;a href=&quot;http://en.wikipedia.org/wiki/Programming_paradigm&quot; rel=&quot;nofollow&quot;&gt;any single paradigm&lt;/a&gt; is the best way for any problem at all, you are completely misunderstanding paradigms or have been exposed to a very narrow subset of problems. Each paradigm has a fundamentally different way of thinking, so each offers a completely different approach to a task. Each paradigm has tasks they're suitable or unsuitable for, and each task has a paradigm suitable for it (often several).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With OOP Google could not &lt;a href=&quot;http://www.joelonsoftware.com/items/2006/08/01.html&quot; rel=&quot;nofollow&quot;&gt;create a solution which has mindblowing implications for their scalability&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The answer is not always OOP. It's just incredibly prevalent. When all you have is a hammer, everything begins looking like a nail. You don't even consider if a screwdriver might be better and end up thinking OOP is the best option.&lt;/p&gt;&#xA;" OwnerUserId="5570" LastActivityDate="2010-12-17T16:02:23.830" />
  <row Id="27463" PostTypeId="2" ParentId="27400" CreationDate="2010-12-17T16:05:47.623" Score="1" ViewCount="" Body="&lt;p&gt;You should know what it is and what the computer is doing.  Learning something like Knuth's &lt;a href=&quot;http://en.wikipedia.org/wiki/MIX&quot; rel=&quot;nofollow&quot;&gt;MIX&lt;/a&gt; will help you.  Mostly being able to judge the efficiency of your code.  Go get the Art of Computer Programming and read it.  It will make you a smarter programmer.&lt;/p&gt;&#xA;" OwnerUserId="2717" LastActivityDate="2010-12-17T16:05:47.623" />
  <row Id="27464" PostTypeId="2" ParentId="27145" CreationDate="2010-12-17T16:11:01.950" Score="2" ViewCount="" Body="&lt;p&gt;Perl 5 is the stable line, which will probably develop on a different line than Perl 6. Perl 6 is probably going to have to figure out a new name than Perl.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perl 6 is, frankly, &lt;em&gt;awesome&lt;/em&gt;. But it's not stable enough yet for enterprise use in production (at least, from what I understand). Of course, stable in the enterprise means Perl 5.8 in my experience...&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-17T16:11:01.950" />
  <row Id="27465" PostTypeId="2" ParentId="10113" CreationDate="2010-12-17T16:13:03.513" Score="0" ViewCount="" Body="&lt;p&gt;Get and read The Art of Computer Programming.&lt;/p&gt;&#xA;" OwnerUserId="2717" LastActivityDate="2010-12-17T16:13:03.513" CommentCount="2" />
  <row Id="27466" PostTypeId="2" ParentId="10113" CreationDate="2010-12-17T16:18:50.590" Score="2" ViewCount="" Body="&lt;p&gt;I was disappointed with Code Complete.  It covers tons of stuff superficially, but nothing well enough to have a big impact on how I write code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've heard many good recommendations for Uncle Bob's Clean Code, though.  And Josh Bloch's Effective Java is important for any Java dev that knows enough to get his code to work.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-12-17T16:18:50.590" CommentCount="1" />
  <row Id="27467" PostTypeId="2" ParentId="27454" CreationDate="2010-12-17T16:19:33.930" Score="1" ViewCount="" Body="&lt;p&gt;Go ahead and learn something like Haskell or a Lisp.  Learning a functional language has really though me to decouple my code, making it simpler to debug overall.  The only problem you might encounter is that you don't want to go back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://book.realworldhaskell.org/read/&quot; rel=&quot;nofollow&quot;&gt;http://book.realworldhaskell.org/read/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://lisperati.com/haskell/&quot; rel=&quot;nofollow&quot;&gt;http://lisperati.com/haskell/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://learnyouahaskell.com/&quot; rel=&quot;nofollow&quot;&gt;http://learnyouahaskell.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2717" LastActivityDate="2010-12-17T16:19:33.930" CommentCount="2" />
  <row Id="27468" PostTypeId="2" ParentId="27456" CreationDate="2010-12-17T16:19:56.877" Score="0" ViewCount="" Body="&lt;p&gt;37signals is based in Chicago. There seems to be quite a &lt;a href=&quot;http://www.suntimes.com/technology/2770135-478/tech-web-chicago-site-builtinchicago.html&quot; rel=&quot;nofollow&quot;&gt;demand&lt;/a&gt; for Rails skills there.&lt;/p&gt;&#xA;" OwnerUserId="1197" LastActivityDate="2010-12-17T16:19:56.877" />
  <row Id="27469" PostTypeId="2" ParentId="27410" CreationDate="2010-12-17T16:20:59.110" Score="1" ViewCount="" Body="&lt;p&gt;I would recommend &lt;strong&gt;The Rails Way&lt;/strong&gt; by &lt;em&gt;Obie Fernandez&lt;/em&gt; if you're really interested in learning Rails in depth, and learn how the 'magic' happens behind the scenes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you'd like the learn just for the sake of it or create a simple app, Agile Web Development should work out just fine. &lt;/p&gt;&#xA;" OwnerUserId="8150" LastActivityDate="2010-12-17T16:20:59.110" />
  <row Id="27470" PostTypeId="2" ParentId="27231" CreationDate="2010-12-17T16:21:36.767" Score="1" ViewCount="" Body="&lt;p&gt;Single-level store.  No more differentiating between memory and disk storage, everything's Just There.  No more problems where you can't do something because there's no more space on one drive when there's 32G free on another.  Like S/38 meets ZFS storage pools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No more directories.  All files are identified by attributes, and you can dynamically group them together by shared attributes.  You should have system-defined attributes (name, size, type, creation date, last-modified date, etc.) and user-supplied attributes (project, content, description, use-by date, destroy-after date, importance, whatever).  You then define &quot;filters&quot; or &quot;selectors&quot; to identify the file or files you want to work with.  Make then nestable or chainable, so they can build on each other.  Basically a file database, instead of a fixed hierarchy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Small and fast, designed for extensibility.  It should (theoretically) be scalable from a single-core netbook or phone to a 128-core server.  Most subsystems (e.g., networking, audio, video) should be dynamically loadable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look at the OSes used in phone switches, they're small and fast.  They can also reboot (in milliseconds) without stopping any running processes.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-17T16:21:36.767" />
  <row Id="27471" PostTypeId="2" ParentId="27454" CreationDate="2010-12-17T16:22:45.300" Score="0" ViewCount="" Body="&lt;p&gt;If you really enjoy your current job, staying a long time may be a great option.  But you really should consider whether a position as a consultant could help you at this point in your career.  Having the opportunity to develop software in a variety of environments with different tech stacks over the next few years could put you in a much better position to evaluate various options later on in your career.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-12-17T16:22:45.300" />
  <row Id="27472" PostTypeId="1" AcceptedAnswerId="27476" CreationDate="2010-12-17T16:23:00.470" Score="49" ViewCount="2967" Body="&lt;p&gt;Recently we have a new developer in our team. We are getting him up to speed and he is picking it all up quite fast, but a new developer means new (foreign) coding styles and ways to solve things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It feels kinda petty to start whining about coding styles at the first three classes he codes, but how forgiving are you guys when dealing with new developers? Do you let them muddle on, and point it out later? Or do you wield the scepter of intolerance immediately?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When do you draw the line, or if not, why not?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;P.S. New guy, if you read this: you are doing great, keep up the good work ;)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've accepted the most up-voted answer, as most answers share the same message: Be nice, but tell them asap! Thanks all for the nice answers! Really appreciated it!&lt;/p&gt;&#xA;" OwnerUserId="3814" LastEditorUserId="3814" LastEditorDisplayName="" LastEditDate="2010-12-20T11:56:39.777" LastActivityDate="2010-12-20T11:56:39.777" Title="How forgiving do you need to be on new employees?" Tags="&lt;employment&gt;&lt;coding-style&gt;" AnswerCount="19" CommentCount="4" FavoriteCount="8" />
  <row Id="27473" PostTypeId="2" ParentId="27454" CreationDate="2010-12-17T16:23:22.993" Score="0" ViewCount="" Body="&lt;p&gt;I think at your stage of development, getting some depth is the first priority. I see too many people who know a little bit about a bunch of things but can't get past doing entry level work because all their knowledge is entry level. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I wanted to be a specialist, clearly, building depth is the best first choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I want to be a generalist, build breadth first (get to at least intermediate level) in one stack and then branch out to other languages. If you build some breadth first, you may find it easier to build breadth in multiple languages as you have more concepts available to you and know more of what you might want to learn. Then I would branch out a bit into something else. Then come back and build depth to the advanced level, then branch out again and learn more things that are very different from what you already know. Then expand that depth in a different area to an intermediate level, learn something else again, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Caveat - I'm a specialst so I clearly favor depth of knowledge&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-17T16:23:22.993" />
  <row Id="27474" PostTypeId="2" ParentId="27472" CreationDate="2010-12-17T16:25:59.920" Score="3" ViewCount="" Body="&lt;p&gt;I always wield the scepter of intolerance; I'm just somewhat nicer about it with new developers.  Coding standards and good programming style should not be optional, but you can use reviews for new developers as a teaching opportunity rather than simply shouting &quot;FALE!&quot;.&lt;/p&gt;&#xA;" OwnerUserId="5123" LastActivityDate="2010-12-17T16:25:59.920" CommentCount="5" />
  <row Id="27475" PostTypeId="2" ParentId="27472" CreationDate="2010-12-17T16:29:27.920" Score="7" ViewCount="" Body="&lt;p&gt;Getting things right from the beginning is going to save a lot of problems later on as otherwise someone is going to have to go through the code again to bring it in line with your standards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Praise the work that's correct but use the code review as a means of introducing and learning about your coding standards and styles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most developers will be happy to work to the house style - as long as they know what that style is.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-12-17T16:35:22.457" LastActivityDate="2010-12-17T16:35:22.457" />
  <row Id="27476" PostTypeId="2" ParentId="27472" CreationDate="2010-12-17T16:29:35.813" Score="77" ViewCount="" Body="&lt;p&gt;As a relatively new employee at my current company (less than 6 months), I'll just point out that I always prefer to be told of things like this ASAP rather than later. If I don't know that I'm doing something wrong, I'm going to continue doing it wrong and it's going to probably cause more work for others involved in the project. I don't want my team leader to have to code-review everything I write just so that he can make sure I'm following the proper formatting guidelines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you point out the inconsistencies with the style guide in a polite and reasonable manner, I don't think you'll hurt anybody's feelings. I know I certainly don't take criticism of that nature personally as long as it's presented in a way that isn't blatantly offensive. Be understanding of the fact that transition is tough - and make sure your employees can tell that you're understanding - but don't just ignore it altogether. I'm sure I speak for most new hires when I say that we &lt;strong&gt;want&lt;/strong&gt; to contribute to the team the right way, but sometimes we just fall into old habits in the beginning (or forget more nuanced style restrictions).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So in a nutshell: I'd say be positive, but don't look the other way. Most new guys really want to learn, so there's no reason not to take the opportunity to teach!&lt;/p&gt;&#xA;" OwnerUserId="3476" LastActivityDate="2010-12-17T16:29:35.813" CommentCount="11" />
  <row Id="27477" PostTypeId="2" ParentId="27472" CreationDate="2010-12-17T16:30:28.260" Score="30" ViewCount="" Body="&lt;p&gt;The longer you go letting him use his coding style the more code there will be to fix.  I'd tell him/her as soon as possible.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just make sure to make it non-personal... &quot;This is our standard, please follow it&quot; kind of thing.  And keep in mind that this new person is going through a lot right now, new team, new projects and may not even notice that the code all conforms to a coding style.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-17T16:30:28.260" />
  <row Id="27478" PostTypeId="2" ParentId="27400" CreationDate="2010-12-17T16:30:49.010" Score="0" ViewCount="" Body="&lt;p&gt;I don't know how much use studying assembly would be. But at the very least doing some programming in a language like C would be beneficial. I have recently had to do some programming in C and I have found it to be rather enlightening. C removes much of the abstraction that is present in higher level languages. Those abstractions do not come without a cost. You have to manage more of the lower level details in C, where as in a higher level language those details are being managed for you. By doing some programming in C you will have to become aware of those details. So when you are back in your everyday language, you will still have that awareness and will better appreciate what is actually happening. That should help to make you a better programmer.&lt;/p&gt;&#xA;" OwnerUserId="10680" LastActivityDate="2010-12-17T16:30:49.010" />
  <row Id="27479" PostTypeId="2" ParentId="27472" CreationDate="2010-12-17T16:31:09.693" Score="1" ViewCount="" Body="&lt;p&gt;I think it's fairest to start early and he's likely to be more responsive at that point when he's keen to impress.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You just need to do it politely and to be open to any new ideas he has that you might want to take on board (after all, you presumably recruited him because he knows some stuff right and I'm hoping you don't think you know it all...)?&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-17T16:31:09.693" CommentCount="1" />
  <row Id="27480" PostTypeId="2" ParentId="27472" CreationDate="2010-12-17T16:32:06.367" Score="6" ViewCount="" Body="&lt;p&gt;Inconsistent coding style can litter your code base if you allow this to go on.  While I would be tolerant with the matter, point out the issue to him and have him revise the offending classes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you haven't already, set up a formal coding-standards reference that is a manditory read for new developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Edit&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can say that I have, in the last 6 months, written code that does not conform to my employers coding-standards. There is a particular class that is now widely used that uses CamelCase rather that delimited_case for variables and properties; I wish I had realized I did this earlier.&lt;/p&gt;&#xA;" OwnerUserId="7048" LastEditorUserId="7048" LastEditorDisplayName="" LastEditDate="2010-12-17T17:14:31.370" LastActivityDate="2010-12-17T17:14:31.370" CommentCount="2" />
  <row Id="27481" PostTypeId="2" ParentId="27472" CreationDate="2010-12-17T16:33:16.930" Score="5" ViewCount="" Body="&lt;p&gt;As a reletively new developer myself, I would like to be told what I am doing wrong or what I could be doing better. If there is a coding standard at the company, I'd expect to be held to it. However, I'd prefer if the people pointing out my mistakes (whether in procedure or code) would do it in such a way that I don't feel that &quot;He should have known that, even though no one told him&quot; attitude.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, different people will respond better in different ways. I'm sure some respond to extremely strict &quot;get it right the first time&quot; rules, but I think most will develop best when guided to the best solution, even if it takes a few tries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: And there is a term every new developer should learn: &lt;strong&gt;REFACTOR!&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-17T16:33:16.930" />
  <row Id="27482" PostTypeId="2" ParentId="27472" CreationDate="2010-12-17T16:34:02.340" Score="0" ViewCount="" Body="&lt;p&gt;Often this is a good time to examine how much of your established guidelines still fit the possibilities of the toolset/language.  New guys will make it very obvious where you have been neglecting a possibility if they are very good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming you have done that, Tell him ASAP, Have someone pair with him or do reviews very, very often so he does not waste time writing code you are not going to accept for a style reason.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2010-12-17T16:34:02.340" />
  <row Id="27483" PostTypeId="1" AcceptedAnswerId="27489" CreationDate="2010-12-17T16:40:08.793" Score="21" ViewCount="775" Body="&lt;p&gt;(I'll get my justification for why this is on topic in early: programming books tend to have fairly specific formatting needs - code samples, tables, images and graphs - which are not common to all book types and are not necessarily well handled by eBook readers.  Similarly they're used in different ways - you often dip in and out rather than read cover to cover.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've just noticed that Don't Make Me Think by Steve Krug is available as an eBook edition for the Kindle (and presumably also for other readers) which set me thinking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are certain advantages to eBook readers for tech books - primarily that you can carry a massive library of what would be heavy physical books around very easily.  The downside is that certain eBook readers allegedly aren't particularly well equipped to cope with tables, code samples and so on and a book like Don't Make Me Think presumably makes extensive use of these sorts of things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, the question, &lt;strong&gt;what are your experiences of reading and using programming books on an eBook reader and would you recommend it?&lt;/strong&gt; I'm specifically interested in the latest generation Kindle but happy to hear about all devices - might be useful to state which one you use in the answer.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-17T16:50:08.487" LastActivityDate="2011-03-05T11:43:23.463" Title="eBook editions of programming books" Tags="&lt;reading&gt;&lt;ebook&gt;" AnswerCount="13" CommentCount="3" FavoriteCount="3" />
  <row Id="27484" PostTypeId="2" ParentId="27472" CreationDate="2010-12-17T16:41:01.800" Score="13" ViewCount="" Body="&lt;p&gt;You can tell them what they are doing wrong without being a jerk about it.  The most important part is that they guy is picking up what he needs to pick up.  Development is a team effort, and code styles are just one of the ways that teams cooperate.  There is no &quot;one&quot; way that is higher and mightier than other ways.  It's just that a team needs to know what to expect when they dive into code they haven't seen before.  My current job handed me the coding standard right away, as it was nicely written up and I had to do something while I was waiting for the paperwork process to complete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The sandwich method of delivering criticism is predictable, but it works.  Essentially, you tell the person their doing a good job (be specific), there's some minor things we do differently, and then follow up with &quot;but I really like what I see here&quot;.  Most of us are professionals, and we can deal with the fact that there are different ways of formatting code.  I've been on both ends of that conversation.  It's usually never confrontational.  It's simply the fact that we do things a little different than you are used to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used to do martial arts, and part of being an upper belt is teaching lower belts how to do things in this particualr martial arts style.  I may see several different things wrong the under belt is doing with their punch, but instead of overwhelming them with the littany of criticism I give them the top one or two things to work on at a time.  Once they've got that working, I move on to the next thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the coding style the new guy is using is vastly different from your team style, you can use that approach to get them in step quickly without making a federal case out of it.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-17T16:41:01.800" CommentCount="1" />
  <row Id="27485" PostTypeId="2" ParentId="27483" CreationDate="2010-12-17T16:46:38.320" Score="8" ViewCount="" Body="&lt;p&gt;I don't have any experience with the Kindle, but I have read tech books on a Sony PRS-505. It has been a mixed experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The principal issue was that most programming books release a PDF and call that an eBook. Those that come in an eBook-friendly format (such as ePub) are more reader-friendly. PDFs are a bit of a pain because your options are to either live with the tiny font and strain your eyes, or increase the font, but absolutely destroy code samples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've tried various converters from PDF to ePub, but they didn't work very well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I eventually settled on flipping the reader to landscape mode to squeeze some more size out of the default font settings. Biggest lesson learned: if you want to read programming books in PDF on an eReader make sure its screen has roughly the same dimensions as a PDF page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end I gave up on it, unless it's a free eBook. It's just not worth paying for a PDF that I won't be able to comfortably read when I could just buy a printed version of the book.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-17T16:46:38.320" CommentCount="4" />
  <row Id="27486" PostTypeId="1" CreationDate="2010-12-17T16:49:22.123" Score="2" ViewCount="45" Body="&lt;p&gt;I would like to start a blog about programming, and I would like the blog system to have formatting and highlighting for source code. Does anyone know some system like that?&lt;/p&gt;&#xA;" OwnerUserId="7049" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-17T16:52:00.557" LastActivityDate="2010-12-17T16:52:00.557" ClosedDate="2010-12-17T16:55:10.980" Title="Is there a weblog system with formatting for source code?" Tags="&lt;blogs&gt;" CommentCount="1" />
  <row Id="27487" PostTypeId="2" ParentId="27444" CreationDate="2010-12-17T16:50:21.433" Score="1" ViewCount="" Body="&lt;h2&gt;Hey, use but don't abuse it..&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;As others have eluded, OOP can be helpful in many circumstances. But that doesn't mean it suites &lt;strong&gt;all&lt;/strong&gt; circumstances.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-17T16:50:21.433" />
  <row Id="27488" PostTypeId="2" ParentId="27231" CreationDate="2010-12-17T16:58:20.183" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Versioning file system&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't need to expose files per se to the typical user, but you do need to have persistence that the user doesn't need to worry about.  It should, in principle, be possible to go back to any version of any file, regardless of what any application does.  In practice, this won't be possible, but some intelligent pruning will make it work well.  Combine this with some sort of auto-save facility in the app, and awareness in the app of the file system, and we've got persistence that will suit the average user.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This will have to be overrideable, since it is sometimes necessary to remove things from the disk entirely.  This should be done by overwriting the disk space with random data.  Ideally, the user and the police forensics lab should see the exact same things on the disk.  Also ideally, there will be full disk encryption.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Stay out of the user's way&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There should be no routine maintenance the user has to do.  If it's routine, automate it.  There should be no decisions the user has to make other than task-related ones.  Any question that the average user can't answer quickly is a big failure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, UAC typically asks the user whether a certain application can do a specific thing, and typically the user has no idea whether this is good or bad, and gets into the habit of clicking OK to get rid of the dialog, which is good neither for security nor the user experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Intelligent off button&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The desirable things here are instant off and saving the user configuration during off times, without confusing the user.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It shouldn't normally be necessary for the user to turn the computer off except for power purposes.  When the user needs to turn the computer off and pull the plug, it's often urgent.  Perhaps the computer needs to be unplugged and moved now, perhaps it will be closed now and put into an insulating case.  If it takes more than a few seconds to turn off, that's a failure.  If a sudden power failure is likely to hurt the system, that's a failure.  (Yes, there's some hardware design necessary here.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To complicate this, the windows and such should come back as they were, ready to be worked on.  This may require some application support.  The obvious contradictions between this and the previous paragraph are left as a exercise for the OS designer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Simple security model&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Part of this is having the OS as inherently secure as possible.  The other part is in giving the user understandable tools to manage security.  These have to be simple enough to understand, and that means pretty darn simple.  Security needs to be action-based rather than application-based, and needs to be able to rely on the system itself to be secure.  No user should ever log in as an administrator or root account.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;App store&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Applications should be available at something like the app store or Linux package repositories.  Installation should generate a set of deinstallation instructions, since we clearly can't rely on vendors to include deinstallation scripts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Easy virtualization and sandboxing&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Call it &quot;safe mode&quot; or &quot;temporary mode&quot; or something.  People are going to go to dodgy websites, and providing the very best in virtualization or chroot jails or whatever is important.  This can also be used for OS version compatibility, or even temporarily running another OS.  We need the capability for average users, and it's useful for more skilled ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Networking&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given a local group of machines, it should be possible to instantly network them and use them for extra file storage, backup, and resource sharing automatically.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-17T16:58:20.183" CommentCount="1" />
  <row Id="27489" PostTypeId="2" ParentId="27483" CreationDate="2010-12-17T17:01:39.837" Score="9" ViewCount="" Body="&lt;p&gt;I actually have &lt;em&gt;Don't Make Me Think&lt;/em&gt; for Kindle after finding it was significantly cheaper than the print version of the book. It's a pretty faithful rendering of the book, but with the default format settings, some pages break in the wrong places: Krug will be talking about a figure on one page but the figure itself will be 3 or 4 pages back. I still find it perfectly readable if you were reading it cover-to-cover.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which leads to my main issue with books like that in ebook format: I have a few other books in PDF, ePub, and Kindle format, and what I've found is that they stop being references and are really only useful for reading once. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is that it's very hard to &quot;flip&quot; through an ebook: I'm used to being able to keep my finger on one page while I quickly skim a different part of the book. With ebooks, you only get to see one page (maybe two) at a time. So it very much becomes a sequential experience: read page 1 first, then page 2, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I still prefer physical books for things I know I'm going to need to reference constantly. I really wouldn't recommend it until they figure out better ways to &quot;flip&quot; through a book: text-based search, which is the current workaround, isn't a good substitute.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-12-17T17:01:39.837" CommentCount="1" />
  <row Id="27490" PostTypeId="2" ParentId="26989" CreationDate="2010-12-17T17:01:55.160" Score="0" ViewCount="" Body="&lt;p&gt;Not a WCF book (the examples are in MSMQ and Java), but the bible for service patterns:  &lt;a href=&quot;http://www.eaipatterns.com/&quot; rel=&quot;nofollow&quot;&gt;Enterprise Integration Patterns&lt;/a&gt;, by Hohpe and Woolf.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you read this, the architecture and approach of WCF will make complete sense, and you will do a much better job of designing software in general, and you'll be able to use the full power of WCF.&lt;/p&gt;&#xA;" OwnerUserId="4198" LastActivityDate="2010-12-17T17:01:55.160" CommentCount="1" />
  <row Id="27491" PostTypeId="1" CreationDate="2010-12-17T17:04:14.300" Score="10" ViewCount="472" Body="&lt;p&gt;On a very small team, where the black box and white box testing is done by the same person, which should the tester do first?&lt;/p&gt;&#xA;" OwnerUserId="10689" LastActivityDate="2010-12-21T19:09:10.027" Title="Black box or white box testing - which do you do first?" Tags="&lt;testing&gt;" AnswerCount="11" CommentCount="1" FavoriteCount="1" />
  <row Id="27492" PostTypeId="2" ParentId="27444" CreationDate="2010-12-17T17:07:39.633" Score="0" ViewCount="" Body="&lt;p&gt;Object Oriented Programming is &lt;em&gt;a&lt;/em&gt; way.  Over the years there have been several approaches of programming have been developed for various reasons.  OOP was a practical way of thinking that was easy to teach theory, but hard to teach well.  Even today I experience code from developers using object oriented languages to do procedural code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a lot to lear from &lt;em&gt;functional&lt;/em&gt;, &lt;em&gt;procedural&lt;/em&gt;, &lt;em&gt;event-based&lt;/em&gt;, &lt;em&gt;concurrent&lt;/em&gt;, and &lt;em&gt;service&lt;/em&gt; based development languages, libraries, and approaches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In essence any problem can be divided a dozen ways, each way will lend some strength and some weakness.  The question is whether it's the right way for the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;subnote:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One reason you see OOP in corporations and such is the &lt;em&gt;promise&lt;/em&gt; of code reuse.  Code reuse translates to &quot;money we don't have to spend on development&quot; in corporate money-pusher's minds.  In practice, OOP didn't deliver nearly as well on that promise as originally hoped--but still well enough to build businesses around it.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-17T17:07:39.633" CommentCount="1" />
  <row Id="27493" PostTypeId="2" ParentId="27472" CreationDate="2010-12-17T17:10:22.187" Score="6" ViewCount="" Body="&lt;p&gt;If coding style is the only issue here, then the solution is to have a written document describing the coding guidelines, and to give it to the new employee to read on his first day on the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The coding guidelines document should clearly specify what is considered mandatory (e.g. you must have include guards, use CamelCase, begin class names with capital letters, and prefix data members with &lt;code&gt;m_&lt;/code&gt;), and what variations in personal style are acceptable (e. g. how you use spaces in an if statements: &lt;code&gt;if(condition)&lt;/code&gt; or &lt;code&gt;if (condition)&lt;/code&gt;). Or you can simply say that whatever is not explicitly specified in the document is left up to the individual.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, the guidelines must be enforced during code reviews.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This way your new employee knows what is expected up front, and the whole thing becomes a non-issue.  Otherwise, if you do not have clear written guidelines or code reviews to enforce them (and to find bugs too), then you are setting yourself up for an awkward situation.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-12-17T17:10:22.187" CommentCount="2" />
  <row Id="27494" PostTypeId="2" ParentId="27231" CreationDate="2010-12-17T17:17:31.733" Score="0" ViewCount="" Body="&lt;p&gt;I would like an operating system where files are like tables in a database. Memory can be queried transparently. Imagine typing:&lt;br/&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;SELECT * &#xA;FROM C:\My Documents\Stuff &#xA;WHERE CONTAINS(&quot;*.txt&quot;, &quot;sometext&quot;)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;just an idea : )&lt;/p&gt;&#xA;" OwnerUserId="7441" LastActivityDate="2010-12-17T17:17:31.733" CommentCount="2" />
  <row Id="27495" PostTypeId="2" ParentId="27483" CreationDate="2010-12-17T17:17:49.840" Score="1" ViewCount="" Body="&lt;p&gt;For your Kindle, you should find a publisher who publishes in Mobi format. See the bottom of my post for some recommendations. I have a Kindle too, and the Mobi-format ebooks work really well on it.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I use &lt;a href=&quot;http://www.ibisreader.com/&quot; rel=&quot;nofollow&quot;&gt;Ibis Reader&lt;/a&gt; as my main ebook reader. It's a web-based reader, which means you can use it on your computer, mobile devices, etc. (I haven't yet tried it on my Kindle, but I mean to....)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like three things in particular: navigation is easy (use left/right arrow keys, or tap the left/right margins), it has a &quot;No Distractions&quot; mode (no on-screen nav, just text), and you can bookmark pages to get back to (re Mark Trapp's answer). (You can always return to the nav if you want to jump to a specific section that you haven't got bookmarked, of course.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will also remember your last-read place, so that when you come back to the site, you will pick up where you left off, even if you're connecting from a different device.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ibis Reader supports ePub books only, and does not support Mobi, PDF, etc. However, many tech ebook publishers, especially O'Reilly and Pragmatic (and an increasing number of Pearson titles, and soon Manning too), sell most (all?) of their catalogue in all three formats, so you're all set.&lt;/p&gt;&#xA;" OwnerUserId="5167" LastActivityDate="2010-12-17T17:17:49.840" />
  <row Id="27496" PostTypeId="2" ParentId="27491" CreationDate="2010-12-17T17:20:01.863" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Black box.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;White box components are &lt;em&gt;usually&lt;/em&gt; dependent on black box components, so I would want to test the black box first and then move on to the white box.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-17T17:20:01.863" CommentCount="2" />
  <row Id="27497" PostTypeId="2" ParentId="27491" CreationDate="2010-12-17T17:20:25.900" Score="6" ViewCount="" Body="&lt;p&gt;Whatever must be most correct.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, white-box testing (i.e. testing the internals of code) should ideally be done with unit tests by the developer who wrote the code.  Unit tests would be built up over time, and part of the build process so we don't waste the poor tester's time with code we know doesn't work as it should.  Unit testing becomes more important the smaller your team is--particularly because you don't have an army of testers to shake problems out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Black-box testing (i.e. testing through the user/system interface) is typically what most testers do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All testing needs to be prioritized on how critical a function is for the finished product.  If the mission is to provide a tool to do X and the product doesn't do X, that's a big problem.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-17T17:20:25.900" CommentCount="1" />
  <row Id="27498" PostTypeId="2" ParentId="27491" CreationDate="2010-12-17T17:21:20.970" Score="2" ViewCount="" Body="&lt;p&gt;You first do white testing thinking as a coder/developer to make sure things will work fine.&#xA;Then you do black box testing usually trying to think as if you were the end user, without thinking on the internal structure of the program. Sometimes you need to think like a coder/developer even if you are doing a black testing because you might be testing an internal module that was written by another person and you dont have access to the code.&lt;/p&gt;&#xA;" OwnerUserId="8217" LastActivityDate="2010-12-17T17:21:20.970" />
  <row Id="27499" PostTypeId="2" ParentId="27317" CreationDate="2010-12-17T17:21:37.510" Score="0" ViewCount="" Body="&lt;p&gt;I personally believe that the developer of a system/feature is the most qualified person to define how their code is configured and deployed. When every person on the team shares the responsibility of creating, testing and deploying their individual work, each can more easily take over for someone else (project handoff, vacation, hit by bus, etc). CM/deploy tools which view infrastructure as code allow developers to do this with less context switching, similar to switching between writing a test and the SUT.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes there is some time which needs to be dedicated to choosing, setting up and maintaining the CM/deploy tools, but that is no different IMO than the time dedicated to maintaing the testing/CI suite. If each developer knows how the tool works (which they all should since they constantly write code for it), then maintenance is also shared. The tools which will gain in popularity are the ones which developers can rely on without lots of communication overhead. By this I mean: you don't need to work with someone else to write tests for your code, right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the role of a Release Engineer is to create these automation tools, not to  utilize them in an organization. They understand the best practices for how to ship code into a variety of environments, and can abstract the process into a form developers can easily grasp. In terms of future career growth, working for companies such as Opscode (chef) seem to be an obvious route.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Continuous Delivery is one of the topics I am most passionate about, but only to serve as making it easier for me to focus on what I am actually trying to build: a product. For context, I am viewing this from the angle of a small team or startup working on a handful of related projects which need to interact in production.&lt;/p&gt;&#xA;" OwnerUserId="10685" LastActivityDate="2010-12-17T17:21:37.510" />
  <row Id="27500" PostTypeId="2" ParentId="27324" CreationDate="2010-12-17T17:23:33.640" Score="4" ViewCount="" Body="&lt;p&gt;Such keyboard has already been made, see &lt;a href=&quot;http://www.artlebedev.com/everything/optimus/&quot; rel=&quot;nofollow&quot;&gt;Optimus Maximus&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All keys have small LED displays and are customizable in both appearance and function. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/nshXN.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Price? A real bargain at $2,400.&lt;/p&gt;&#xA;" OwnerUserId="2193" LastActivityDate="2010-12-17T17:23:33.640" CommentCount="1" />
  <row Id="27501" PostTypeId="1" CreationDate="2010-12-17T17:24:59.693" Score="7" ViewCount="207" Body="&lt;p&gt;I just wondered how many developers choose to monetarily support the open-source tools which support their business and lifestyle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Under what circumstances do you donate to an open-source project you use (or don't)?  Also, do you believe that you should donate as much to an open-source project as you would have to pay to a non-open-source alternative?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an additional point of focus, do you feel that you &lt;strong&gt;should&lt;/strong&gt; be donating to more open-source projects that you use (and/or indirectly profit from)?&lt;/p&gt;&#xA;" OwnerUserId="7048" LastEditorUserId="7048" LastEditorDisplayName="" LastEditDate="2010-12-17T17:55:46.623" LastActivityDate="2010-12-17T21:39:57.507" ClosedDate="2010-12-17T22:19:58.220" Title="Do you donate money to support open-source projects?" Tags="&lt;tools&gt;&lt;open-source&gt;" AnswerCount="4" CommentCount="6" FavoriteCount="1" />
  <row Id="27502" PostTypeId="2" ParentId="19627" CreationDate="2010-12-17T17:29:23.757" Score="2" ViewCount="" Body="&lt;p&gt;The answer by Kate Gregory is very good, but consider a different situation where a new requirement can be satisfied by a relatively small change in the existing &lt;code&gt;Invoice&lt;/code&gt; class. For example, lets say a new field must be added to the Invoice PDF. According to OCP, we should still create a new subclass, even if the new field could be added in the existing implementation by changing a few lines of code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my understanding, OCP reflects the reality of the 80's and early 90's, where projects often did not even use version control, much less had automated regression tests or the benefit of sophisticated refactoring tools. OCP was an attempt to avoid the risk of breaking code that  had been manually tested and put into production. Today, we have better ways to manage the risk of breaking working software (namely, version control systems, TDD and automated testing, and refactoring tools).&lt;/p&gt;&#xA;" OwnerUserId="10170" LastActivityDate="2010-12-17T17:29:23.757" />
  <row Id="27503" PostTypeId="2" ParentId="27501" CreationDate="2010-12-17T17:32:45.780" Score="1" ViewCount="" Body="&lt;p&gt;Well, personally, this sounds as a &quot;getting to know question&quot; and I don't think the answers will tell you much, but yes, I've donated a few times to the several open source projects whose result product I use daily. Some are not widely known (i.e. some things specific to my area of expertise), some are (Vim for example).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also once &quot;donated&quot; (if this counts as such) (note: this was a long time ago) to a project, with the polite request that they modify the licence a little bit, so I could use it in a semi-commercial environment (meaning I don't directly make money off it, but from something that comes along the way after). The author upon expressing interest in what I was doing, was more than happy to help. Glad even.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-17T17:32:45.780" />
  <row Id="27504" PostTypeId="2" ParentId="27491" CreationDate="2010-12-17T17:34:32.197" Score="1" ViewCount="" Body="&lt;p&gt;I like to start with black box testing, then use code coverage information or the debugger to figure out what I'm doing and analyze what's happening.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the real answer is &lt;em&gt;it depends&lt;/em&gt;. I'm likely to dive into the code sooner (ore even first) if I'm doing API testing, but much later if my goal is to look at some large end to end scenarios.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-12-17T17:34:32.197" />
  <row Id="27505" PostTypeId="1" CreationDate="2010-12-17T17:34:51.737" Score="1" ViewCount="260" Body="&lt;p&gt;I am writing an article about interviewing and doing some statistics on the hundreds of resumes that I go through. Pick a single worst element that characterizes what you believe is a terrible resume (eg. too many buzzwords) and cite an example (eg. C++, C#, ...). &lt;/p&gt;&#xA;" OwnerUserId="5162" LastActivityDate="2010-12-17T17:57:34.797" ClosedDate="2010-12-17T18:02:54.590" Title="What are the worst characteristics of a poorly written resume?" Tags="&lt;resume&gt;&lt;interviewing&gt;" AnswerCount="2" CommentCount="7" FavoriteCount="1" />
  <row Id="27507" PostTypeId="2" ParentId="27505" CreationDate="2010-12-17T17:39:48.650" Score="1" ViewCount="" Body="&lt;p&gt;I personally find that programmer resumes are difficult to compose.  In particular, I would say a poorly written list of skills is one of the worst characteristics, and also one of the most difficult parts to write.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As programmers, narrowing down our list of skills to a subset that will fit on a resume is extremely difficult (I find, anyway). As well, our 'level' (of understanding) for each of our skills is a spectrum that cannot be easily denoted in print.&lt;/p&gt;&#xA;" OwnerUserId="7048" LastActivityDate="2010-12-17T17:39:48.650" />
  <row Id="27508" PostTypeId="2" ParentId="27454" CreationDate="2010-12-17T17:41:26.010" Score="0" ViewCount="" Body="&lt;p&gt;Both options have their place. Focusing on the development stack used by your company will help you in your job, but learning about other technologies will help you in your career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the late 1990s, COBOL skills were in high demand by companies needing to prepare their software for the year 2000. But anyone who still knows only COBOL today will have a much harder time finding work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the same way, today's technology will be obsolete long before most of us are ready to retire, so learning new skills and technologies is essential.&lt;/p&gt;&#xA;" OwnerUserId="3869" LastActivityDate="2010-12-17T17:41:26.010" />
  <row Id="27509" PostTypeId="1" AcceptedAnswerId="27516" CreationDate="2010-12-17T17:44:36.557" Score="0" ViewCount="59" Body="&lt;p&gt;I have written a &lt;a href=&quot;https://github.com/DarwinAwardWinner/dist-zilla-plugin-readmefrompod/tree/anyformat&quot; rel=&quot;nofollow&quot;&gt;Perl module&lt;/a&gt; by starting with an existing Perl module of related functionality and modifying heavily. In fact, acccording to &lt;a href=&quot;https://github.com/DarwinAwardWinner/dist-zilla-plugin-readmefrompod/blame/anyformat/lib/Dist/Zilla/Plugin/ReadmeAnyFromPod.pm&quot; rel=&quot;nofollow&quot;&gt;git blame&lt;/a&gt; I have changed (or created) every line of non-biolerplate code in the module. Of course, I have also changed the name of the module, so if I uploaded it to CPAN, it would not directly conflict with the original module.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, despite my heavy modifications, the module is still conceptually based on its predecessor, and I would like to give credit to its authors. However, I can see how they might not appreciate having their names and emails slapped on what appears to be a new module without their knowing. So should I just put myself as the sole author and put the original module's authors in an &quot;Acknowledgements&quot; section? What is the best way to credit the original authors in my module?&lt;/p&gt;&#xA;" OwnerUserId="3640" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-17T20:28:52.923" LastActivityDate="2010-12-17T20:28:52.923" Title="What is the ettiquite for releasing a Perl module based on someone else's module?" Tags="&lt;open-source&gt;&lt;code-reuse&gt;&lt;credits&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="27510" PostTypeId="2" ParentId="27501" CreationDate="2010-12-17T17:45:03.777" Score="1" ViewCount="" Body="&lt;p&gt;I support non-profit entities that create Open Source software with donations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also pay for commercial Open Source software created and managed by companies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everyone &lt;strong&gt;should&lt;/strong&gt; support the developers who create the software they use. Then again, everyone who listens &lt;strong&gt;should&lt;/strong&gt; pledge money to their local PBS or NPR affiliate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But most people don't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Typically only &lt;strong&gt;1-2%&lt;/strong&gt; of users contribute monetarily to Open Source. Open Source businesses know this, and build their business models accordingly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those who can't pay for their Open Source software, there are other ways to give back:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Contribute patches&lt;/li&gt;&#xA;&lt;li&gt;Make good bug reports&lt;/li&gt;&#xA;&lt;li&gt;Do peer support in forums and on IRC&lt;/li&gt;&#xA;&lt;li&gt;Give credit (a bare minimum)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="10693" LastActivityDate="2010-12-17T17:45:03.777" CommentCount="4" />
  <row Id="27511" PostTypeId="2" ParentId="27505" CreationDate="2010-12-17T17:45:24.733" Score="0" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;How about this one?&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/VLGKI.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-17T17:45:24.733" CommentCount="1" />
  <row Id="27512" PostTypeId="2" ParentId="27444" CreationDate="2010-12-17T17:45:25.650" Score="0" ViewCount="" Body="&lt;p&gt;OOP is good for things you can model (like a GUI), not so good for rote data processing (like running payroll batches).  OOP was invented for writing simulations, so if you have a clear domain model, then OOP should work well.  If you're forcing your problem to fit a domain model (often apparent by the presence of &quot;god classes&quot; and a preponderance of &quot;helper&quot; or &quot;utility&quot; classes), then it's probably not appropriate.  It has little or nothing to do with team size or structure.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-17T17:45:25.650" />
  <row Id="27513" PostTypeId="1" CreationDate="2010-12-17T17:45:27.777" Score="5" ViewCount="312" Body="&lt;p&gt;Today's testing is not much like yesterday's testing. More services, more distributed systems, more automation. I want the kind of testers that are self-starters and will constantly work themselves out of the job by writing test code. What are good interview questions for the modern software tester?&lt;/p&gt;&#xA;" OwnerUserId="5162" LastActivityDate="2010-12-17T18:35:19.507" Title="What are good interview questions for a Software Tester with focus on automation?" Tags="&lt;testing&gt;&lt;interview-questions&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="27514" PostTypeId="2" ParentId="27491" CreationDate="2010-12-17T17:52:21.260" Score="0" ViewCount="" Body="&lt;p&gt;What colour's a test written before the code's written? That colour's the one I do first.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-12-17T17:52:21.260" CommentCount="3" />
  <row Id="27515" PostTypeId="2" ParentId="27501" CreationDate="2010-12-17T17:56:02.653" Score="4" ViewCount="" Body="&lt;p&gt;I donate time instead of money, in the form of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;informal &quot;advertisement&quot;/proselytism for great open-source tools&lt;/li&gt;&#xA;&lt;li&gt;bug reports&lt;/li&gt;&#xA;&lt;li&gt;new open-source code (e.g., Python modules)&lt;/li&gt;&#xA;&lt;li&gt;teaching (Python…)&lt;/li&gt;&#xA;&lt;li&gt;answers on StackOverflow&lt;/li&gt;&#xA;&lt;li&gt;etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3807" LastEditorUserId="3807" LastEditorDisplayName="" LastEditDate="2010-12-17T21:39:57.507" LastActivityDate="2010-12-17T21:39:57.507" CommentCount="1" />
  <row Id="27516" PostTypeId="2" ParentId="27509" CreationDate="2010-12-17T17:56:06.220" Score="4" ViewCount="" Body="&lt;p&gt;How about you email the author and ask them how they want to be acknowledge? The seems like the logical thing to do. Don't Perl modules include the email address of the author?&lt;/p&gt;&#xA;" OwnerUserId="10687" LastActivityDate="2010-12-17T17:56:06.220" CommentCount="1" />
  <row Id="27518" PostTypeId="1" AcceptedAnswerId="27542" CreationDate="2010-12-17T17:59:15.513" Score="11" ViewCount="963" Body="&lt;p&gt;First off, there are equally important questions for a candidate that are non-technical (do they work well with others, can they imagine a better approach, etc.). But to evaluate the technical skills, what would be your one question?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I ask because I have one. I have no idea why this question works so well. I don't even have a good theory. All I have is an incredible correlation between answering this question correctly and being a really strong programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question was suggested to me by someone I respect a lot. I replied that it seemed too easy but he suggested I try it. He's a smart &amp;amp; imaginative guy so I started asking it of people I interview. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The interview process at virtually every company I have worked at has been 3 – 4 hours long. We ask basic programming, we ask brain teasers, we have them bring in some code they are proud of and spend 45 minutes having them take us through what they did and why. And 99% of the time, getting this question right or wrong predicts if they will pass the 3 – 4 hour process. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Question: For the integers between 0 and 100 (i.e. 1, 2, 3, …, 100) – how many have the digit 7 in them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Answer at &lt;a href=&quot;http://blogs.windwardreports.com/davidt/2010/01/the-best-programming-interview-question-ever.html&quot; rel=&quot;nofollow&quot;&gt;The Best Programming Interview Question – ever!&lt;/a&gt; (so you answer it yourself before seeing the answer).&lt;/p&gt;&#xA;" OwnerUserId="9823" LastActivityDate="2011-01-19T18:16:29.763" Title="If you could ask one technical interview question, what would it be" Tags="&lt;interview-questions&gt;" AnswerCount="10" CommentCount="2" FavoriteCount="6" />
  <row Id="27519" PostTypeId="2" ParentId="27164" CreationDate="2010-12-17T17:59:45.850" Score="1" ViewCount="" Body="&lt;p&gt;This is a process that's going to take some time but it's close to optimal:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Read &lt;a href=&quot;http://www.antipatterns.com/&quot; rel=&quot;nofollow&quot;&gt;AntiPatterns&lt;/a&gt; and &lt;a href=&quot;http://www.antipatterns.com/&quot; rel=&quot;nofollow&quot;&gt;AntiPatterns in Program Management&lt;/a&gt;&lt;/strong&gt; (both are shown at that site).&lt;/li&gt;&#xA;&lt;li&gt;Commit personally to never doing any of those things.&lt;/li&gt;&#xA;&lt;li&gt;Demonstrate your commitment to your team by &lt;em&gt;actually&lt;/em&gt; never doing them.&lt;/li&gt;&#xA;&lt;li&gt;Work with your team to do the work that needs doing.&lt;/li&gt;&#xA;&lt;li&gt;Repeat steps 3 and 4.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Note the complete lack of &quot;best practices&quot; above.  There are no right answers but there are most certainly some &lt;em&gt;wrong&lt;/em&gt; ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Frankly, I think that the core of good team leadership is just learning from the mistakes of others.  If you focus on not doing things that are known to be stupid then, at a minimum, the team won't hate you with the heat of a thousand suns.&lt;/p&gt;&#xA;" OwnerUserId="10696" LastActivityDate="2010-12-17T17:59:45.850" />
  <row Id="27520" PostTypeId="2" ParentId="27513" CreationDate="2010-12-17T17:59:48.843" Score="1" ViewCount="" Body="&lt;p&gt;If we're talking web testing, then I would ask them to talk about their experience with testing tools.  Specifically these or equivalents:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/HP_QuickTest_Professional&quot; rel=&quot;nofollow&quot;&gt;HP's Quick Test Pro&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://seleniumhq.org&quot; rel=&quot;nofollow&quot;&gt;Selenium cross-browser compatibility testing framework.&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;JUnit/NUnit (not just for unit testing, but also tied in with Selenium and other tools to write automated tests that give you nice reports.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Great automated testers are great developers first, so make sure they understand code first and foremost.  In my experience there are testers who are great developers too (the ones you want) and those who think programming is too hard, so they decide to be testers (those you don't want for &lt;em&gt;automated&lt;/em&gt; testing testers).&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2010-12-17T18:21:05.947" LastActivityDate="2010-12-17T18:21:05.947" CommentCount="1" />
  <row Id="27521" PostTypeId="2" ParentId="26949" CreationDate="2010-12-17T18:02:44.993" Score="1" ViewCount="" Body="&lt;p&gt;Some great points here!  I work at BigDoor (http://www.bigdoor.com) and we see a lot of value in adding levels, badges, points, leaderboards, virtual currency and goods for websites.  Gamifying a site can increase user engagement, loyalty and monetization.  At BigDoor we offer a way to go to market faster; minimal cost (depending on audience size); the benefit of our API from several publishers vs. feedback from single implementation.  We have a great resource section of our site that details more about gamification!  Check it out, &lt;a href=&quot;http://www.bigdoor.com/resources/resources-archive&quot; rel=&quot;nofollow&quot;&gt;http://www.bigdoor.com/resources/resources-archive&lt;/a&gt;.    &lt;/p&gt;&#xA;" OwnerUserId="10703" LastActivityDate="2010-12-17T18:02:44.993" />
  <row Id="27523" PostTypeId="2" ParentId="25100" CreationDate="2010-12-17T18:05:50.280" Score="0" ViewCount="" Body="&lt;h1&gt;Alan Turing&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I'm astonished no one else has brought forth this giant of computers &amp;amp; programming.&lt;/p&gt;&#xA;" OwnerUserId="9479" LastActivityDate="2010-12-17T18:05:50.280" CommunityOwnedDate="2010-12-17T18:05:50.280" CommentCount="1" />
  <row Id="27524" PostTypeId="2" ParentId="27301" CreationDate="2010-12-17T18:09:55.033" Score="2" ViewCount="" Body="&lt;p&gt;I have worked on a very large code base which initially had no unit tests. By following a few practices we now (after several years) have most of the code base covered by tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All new code must have unit tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All changed code must have unit tests added to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way that we safely added tests to old code without breaking it is primarily to use the following basic approach:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Choose a small section of code that you need to change the functionality of.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Try to create system level integration tests to surround the code. Because of the combinatorial complexity of testing at this level, these tests will only form a &quot;smoke&quot; test to pick up major mistakes.&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Introduce the interfaces you need in order to be able to test the code you are changing.  Use Refactoring techniques consisting of sequences of very small changes which you have high confidence are correct. Try to use tool support where possible. You might do this by, for example, moving/extracting the method you are changing onto its own object. Check in your changes regularly so you can revert. Regularly peer-review how you made the changes by going through the revision control history.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to make the minimum about of changes that are required in order to break the dependancies that are preventing you from adding tests.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;Write tests to as far as possible cover the functionality of the code that you are going to change. Check in regularly and peer review all changes.&lt;/li&gt;&#xA;&lt;li&gt;Write tests for the new functionality/functionality change.&lt;/li&gt;&#xA;&lt;li&gt;Implement the functionality (this is your normal TDD cycle)&lt;/li&gt;&#xA;&lt;li&gt;Make sure to refactor the areas you have covered by the tests (red-green-refactor).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;We found that the more we did this, the easier it got. As every time you go back to the code base, it is a little bit better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have seen a massive drop in the number of bugs getting through to our QA testers. With functionality regressions being now almost unheard of, so I think it was worth the effort for us.&lt;/p&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-12-17T18:09:55.033" />
  <row Id="27525" PostTypeId="2" ParentId="24936" CreationDate="2010-12-17T18:10:08.607" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;How do you figure out what can be made concurrent vs. what has to be sequential?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I would question first whether the application (or component) will actually see a benefit from concurrent processing, or in layman's terms -- where is the bottleneck?  Concurrency will obviously not always provide a benefit for the investment it takes to make it work. If it looks like a candidate, then I would work bottom up -- trying to find the largest operation or set of operations that can do its work effectively in isolation -- I don't want to spin up threads for insignificant, cost-ineffective operations -- I'm looking for &lt;a href=&quot;http://en.wikipedia.org/wiki/Actor_model&quot; rel=&quot;nofollow&quot;&gt;Actors&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Working with Erlang I've come to absolutely love the concept of using asynchronous message passing and the actor model for concurrency -- it's intuitive, effective, and clean. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Off of &lt;a href=&quot;http://www.javaworld.com/javaworld/jw-02-2009/jw-02-actor-concurrency1.html?page=2&quot; rel=&quot;nofollow&quot;&gt;Understanding Actor Concurrency&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The actor model consists of a few key principles:&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;No shared state&lt;/li&gt;&#xA;  &lt;li&gt;Lightweight processes&lt;/li&gt;&#xA;  &lt;li&gt;Asynchronous message-passing&lt;/li&gt;&#xA;  &lt;li&gt;Mailboxes to buffer incoming messages&lt;/li&gt;&#xA;  &lt;li&gt;Mailbox processing with pattern matching&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;  &#xA;  &lt;p&gt;An actor is a process that executes a function. Here a process is a lightweight user-space thread (not to be confused with a typical heavyweight operating-system process). Actors never share state and thus never need to compete for locks for access to shared data. Instead, actors share data by sending messages that are immutable. Immutable data cannot be modified, so reads do not require a lock. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The Erlang concurrency model is easier to understand and debug than locking and shared data.  The way in which your logic is isolated makes is easy to do testing of components by passing them messages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Working with concurrent systems this is pretty much how my design worked anyway in any language -- a queue that multiple threads would pull data from, perform a simple operation and repeat or push back onto the queue.  Erlang is just enforcing immutable data structures to prevent side-effects and reducing the cost and complexity of creating new threads.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This model is not Erlang exclusive, even within the Java and .NET world there exists ways to create this -- I would look at the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/bb648752.aspx&quot; rel=&quot;nofollow&quot;&gt;Concurrency and Coordination Runtime (CCR)&lt;/a&gt; and &lt;a href=&quot;http://code.google.com/p/retlang/&quot; rel=&quot;nofollow&quot;&gt;Relang&lt;/a&gt; (there is also Jetlang for Java).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How do you reproduce error conditions and view what is happening as the application executes?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In my experience, the only thing I can have done is given a commitment to tracing / logging everything.  Every process / thread needs to have an identifier and each new unit of work needs to have a correlation id.  You need to be able to look through your logs and trace exactly what was being processed and when -- there's no magic I've seen to eliminate this.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How do you visualize the interactions between the different concurrent parts of the application?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;See above, it's ugly but it works.  The only other thing I do is to use UML sequence diagrams -- of course this is during design time -- but you can use them to verify that your components are speaking the way that you want them too.&lt;/p&gt;&#xA;" OwnerUserId="4662" LastActivityDate="2010-12-17T18:10:08.607" />
  <row Id="27526" PostTypeId="2" ParentId="27491" CreationDate="2010-12-17T18:13:31.320" Score="0" ViewCount="" Body="&lt;p&gt;Neither. I try to write good tests using my &lt;em&gt;Right BICEP&lt;/em&gt;, keeping in mind &lt;em&gt;CORRECT boundary conditions&lt;/em&gt; no matter what order they come to mind. Those are both acronyms proposed in &lt;a href=&quot;http://www.pragprog.com/titles/utc2/pragmatic-unit-testing-in-c-with-nunit&quot; rel=&quot;nofollow&quot;&gt;Pragmatic Unit Testing&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My goal is to focus on writing good tests, and not which colour to write first.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-17T18:13:31.320" CommentCount="2" />
  <row Id="27528" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T18:15:04.283" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;camelCase&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is one of the few places I will always choose 'type-ability' over readability. CamelCase is just easier to type, and being nicer to my fingers wins out over a slight readability gain for me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;assuming of course that the project does not build on an existing codebase with a different standard.&lt;/em&gt; &lt;/p&gt;&#xA;" OwnerUserId="145" LastEditorUserId="145" LastEditorDisplayName="" LastEditDate="2011-01-06T21:06:46.390" LastActivityDate="2011-01-06T21:06:46.390" CommunityOwnedDate="2011-01-06T21:09:02.793" />
  <row Id="27529" PostTypeId="1" CreationDate="2010-12-17T18:18:06.370" Score="1" ViewCount="236" Body="&lt;p&gt;I commute 45 minutes by car each way.  I've considered moving but don't really have too many options if I move closer to work.  I could move down the road but afraid that my employer would try to make me come in when needed merely because I'd be the closest to the office.  Also I'm not really too interested in living in the same town as a bunch of co-workers and running into them all the time.  The other areas nearby are either bad areas or outside my price range so that would make my commute 30 minutes.  Would it really be worth the hassle of moving to save 30 minutes each day?  I'm not sure about buying a new house/condo in case I'm ever transferred or decide to move to a new area.  Telecommuting does not seem to be an option although 4 10 hour days might be if we can get everyone to agree.  What would you guys do?&lt;/p&gt;&#xA;" OwnerUserId="9750" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-12-17T18:44:35.597" LastActivityDate="2010-12-17T18:50:41.367" ClosedDate="2010-12-17T18:56:37.443" Title="What is the longest you would commute and when is it worth moving to shorten your commute?" Tags="&lt;home&gt;&lt;telecommute&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="1" />
  <row Id="27530" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T18:19:36.183" Score="1" ViewCount="" Body="&lt;p&gt;I think it's common style problem! If you're working with Wordpress! you should use underscore! if you're working with Kohana, you should use underscore, if you're working with Drupal, use underscore too! But if you worked with Zend, CakePHP,..u should use camelCase! So far it's just a convention to make a common style between its developer! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you're using underscore you have a benefit: easy to split it for auto loading/path! Example Axcoto_Log_History should be localte in Axcoto/Log/History!&lt;/p&gt;&#xA;" OwnerUserId="9559" LastActivityDate="2010-12-17T18:19:36.183" CommunityOwnedDate="2011-01-06T21:09:02.793" />
  <row Id="27531" PostTypeId="2" ParentId="4399" CreationDate="2010-12-17T18:20:53.327" Score="1" ViewCount="" Body="&lt;p&gt;I like to review the test plans and suggest additional test cases that QA might not have thought of.  I'm not sure how that would &quot;infect the testers with my own prejudices&quot;.  &lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-17T18:20:53.327" />
  <row Id="27532" PostTypeId="2" ParentId="16070" CreationDate="2010-12-17T18:21:36.187" Score="1" ViewCount="" Body="&lt;p&gt;Interesting question. I don't know of a single definition of abstraction that is considered authoritative when it comes to programming. Though other folks have provided links to some definitions from various branches of CS theory or math; I like to think of it in a similar way to &quot;supervenience&quot; see &lt;a href=&quot;http://en.wikipedia.org/wiki/Supervenience&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Supervenience&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When we talk about abstraction in programming, we are essentially comparing two descriptions of a system. Your code is a description of a program. An abstraction of your code would also be a description of that program but at a &quot;higher&quot; level. Of course you could have an even higher level abstraction of your original abstraction (e.g. a description of the program in a high-level system architecture vs. the description from the program in its detailed design).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now what makes one description &quot;higher-level&quot; than another. The key is &quot;multiple realizability&quot; -- your abstraction of the program could be realized in many ways in many languages. Now you might say that one could produce multiple designs for a single program as well -- two people could produce two different high-level designs that both accurately describe the program. The equivalence of the realizations makes the difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When comparing programs or designs you must do so in a way that allows you do identify the key properties of the description at that level. You can get into complicated ways of saying a design is equivalent to another, but the easiest way to think about it is this -- can a single binary program satisfy the constraints of both descriptions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what makes one level of description higher than the other? Let's say that we have one level of description A (e.g. design documents) and another level of description B (e.g. source code). A is higher level than B because if A1 and A2 are two non-equivalent descriptions at level A, then realizations of those descriptions, B1 and B2 &lt;em&gt;must&lt;/em&gt; also be non-equivalent at level B. However, the reverse doesn't necessarily hold true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if I can't produce a single binary program that satisfies two distinct design documents (i.e. the constraints of those designs would contradict each other), then source code that implements those designs must be different. But on the other hand, if I take two sets of source code that couldn't possibly be compiled into the same binary program, it still could be the case that the binaries resulting from compiling those two sets of source code both satisfy the same design document. Thus the design document is an &quot;abstraction&quot; of the source code.&lt;/p&gt;&#xA;" OwnerUserId="10683" LastActivityDate="2010-12-17T18:21:36.187" CommentCount="1" />
  <row Id="27533" PostTypeId="2" ParentId="27501" CreationDate="2010-12-17T18:25:59.860" Score="4" ViewCount="" Body="&lt;p&gt;I don't know if this counts, but me and a friend founded a hacklab two years ago and with the (few) money we made doing GNU/Linux courses we donated the whole 270€ (!) to the Free Software Foundation. I felt better after that :P&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-12-17T18:25:59.860" />
  <row Id="27534" PostTypeId="2" ParentId="27529" CreationDate="2010-12-17T18:30:25.737" Score="1" ViewCount="" Body="&lt;p&gt;Make the best of the commute.  Listen to music, relax, get yourself ready for a long day at the office.  If you can find a co-worker you like and lives near you, try carpooling.  That way, every other commute you can spend doing almost what you want.  From how you worded your question, it doesn't sound(to me) like you would be happy with moving.&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-12-17T18:30:25.737" CommentCount="2" />
  <row Id="27535" PostTypeId="2" ParentId="27529" CreationDate="2010-12-17T18:31:35.113" Score="1" ViewCount="" Body="&lt;p&gt;This is highly subjective. I know people that commute an hour+ a day and are perfectly happy. I personally can't stand spending hours a day idle in the car- I currently rent an average apartment right next to work (literally, I can walk very quickly, &amp;lt; .5 mile) instead of owning a nice house 45 minutes away. It's much more expensive where I rent, and I'm overall losing equity I could be investing in a house, but it's worth my sanity.  &lt;/p&gt;&#xA;" OwnerUserId="5286" LastActivityDate="2010-12-17T18:31:35.113" CommentCount="3" />
  <row Id="27536" PostTypeId="2" ParentId="27529" CreationDate="2010-12-17T18:33:38.153" Score="0" ViewCount="" Body="&lt;p&gt;For me, the answer depends largely on your personal situation and is therefore hard to answer in absolutes. You can look at travel costs (time value and wear and tear on your vehicle--or public transportation costs), but that's not really that interesting. If nothing else, that becomes part of the whole compensation conversation when discussing salary and benefits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But for me, commuting time really comes down to time away from my family with the kicker that commute time cuts directly into prime family time. So a commute of 45 minutes means a) an hour and a half extra time away from family, b) makes it impossible to see them mid-day, and c) makes it impossible to respond in a timely manner when emergencies come up (no picking kids up from school if your spouse is unavailable and they're throwing up in the bathroom).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for me, the trade-off in family time far outweighs monetary and productive time concerns.&lt;/p&gt;&#xA;" OwnerUserId="10669" LastActivityDate="2010-12-17T18:33:38.153" />
  <row Id="27537" PostTypeId="2" ParentId="27529" CreationDate="2010-12-17T18:34:12.230" Score="0" ViewCount="" Body="&lt;p&gt;I wouldn't make any changes to your commute until you've followed through on some of the suggestions &lt;a href=&quot;http://programmers.stackexchange.com/questions/25670/dealing-with-co-workers-in-a-stressful-work-environment&quot;&gt;in your other question&lt;/a&gt;.  I think those issues need to be addressed first.&lt;/p&gt;&#xA;" OwnerUserId="5493" LastActivityDate="2010-12-17T18:34:12.230" CommentCount="1" />
  <row Id="27538" PostTypeId="2" ParentId="27513" CreationDate="2010-12-17T18:35:19.507" Score="4" ViewCount="" Body="&lt;p&gt;Beyond the technical stuff (ensuring they have the &lt;em&gt;skills&lt;/em&gt; to do the job), I tend to be most concerned with three things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Can they learn?&lt;/strong&gt; - Good testers learn quickly and make a significant effort to learn. Ask them how they learn - or to give an example of when they had to learn something quickly and what the learning allowed them to do.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Can they deal with ambiguity?&lt;/strong&gt; Testing relies a lot on figuring out how things work and the ability to ask the right clarifying questions to not head off in the wrong direction. Any sort of ambiguous question would work well for this, but I sometimes double up this with actual testing by asking &quot;How would you test {foo}?&quot; where {foo} is a web page, windows notepad, or something else small enough to discuss in full, but with enough meat where they &lt;em&gt;should&lt;/em&gt; ask questions about the context and scope.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Can they see the big picture?&lt;/strong&gt; - systems thinking - or at least a notion of seeing beyond what's right in front their faces is a good indicator of successful testing. For example, when they run into a problem, do they see it at the surface level only, or can they see how the pieces of the system interact and understand &lt;em&gt;why&lt;/em&gt; the problem happened. This, while important for debugging, is more important for isolating issues - especially intermittent issues. You may get an inkling for this from the web page question above, but any question on dealing with complexity and interaction will help get a feeling for this.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-12-17T18:35:19.507" CommentCount="3" />
  <row Id="27539" PostTypeId="2" ParentId="27529" CreationDate="2010-12-17T18:37:42.087" Score="0" ViewCount="" Body="&lt;p&gt;I just started a 1.5 hour (one way) commute. Long Island to NYC. The only reason I do it is because I am able to take the train thus my 3 hours of commute everyday turn in to 3 hours of reading and internet time. It's been a great help to catch up on things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Chances are going by car is the only option for you but remember it's not just the time but quality of the commute that matter. Have you looked in to pod casts and audible to help pass the time? They have helped me a ton now and back when I had a different job I drove to. &lt;/p&gt;&#xA;" OwnerUserId="8121" LastActivityDate="2010-12-17T18:37:42.087" CommentCount="2" />
  <row Id="27540" PostTypeId="2" ParentId="27529" CreationDate="2010-12-17T18:40:38.270" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Totally worth it.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was commuting about 45 minutes (one way).  It was bearable, but did make days pretty long.  Then we moved farther away (for a number of reasons) which jumped that commute up to an hour and 10 minutes.  That was manageable at first, but it gets old real fast.  I ended up changing jobs, and now have a 15-20 minute commute, which is infinitely less stressful on my time, car, and wallet (gas).&lt;/p&gt;&#xA;" OwnerUserId="9987" LastActivityDate="2010-12-17T18:40:38.270" />
  <row Id="27541" PostTypeId="2" ParentId="27529" CreationDate="2010-12-17T18:41:05.253" Score="1" ViewCount="" Body="&lt;p&gt;It is very subjective and extremely geographically specific. Can't be objectively answered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In small towns in Europe people might be reluctant to commute more than half an hour. A few days back I heard one woman in a train in the town of Stuttgart (Germany) surprised at her interlocutor having to travel 15 minutes in a train.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand people in large urban areas might me forced to travel an hour and a half one direction. If they live outside of the place and there is no work there in the area, they would commute 2-3 hours each direction if they can't afford an appartement directly in the city.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Totally depends on where you live.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally would prefer a quality accommodation over the commute time. If you're unhappy with your current place then of course you might as well move.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-17T18:41:05.253" />
  <row Id="27542" PostTypeId="2" ParentId="27518" CreationDate="2010-12-17T18:47:42.800" Score="9" ViewCount="" Body="&lt;p&gt;This isn't really a brain teaser like the count of sevens example and it is a bit language specific, but I've been told by some that the ability to answer this says a lot for a developers ability to design large systems:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Explain the purpose of an abstract&#xA;  class, an interface, and what the&#xA;  difference between the two is.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-12-17T18:47:42.800" CommentCount="6" />
  <row Id="27543" PostTypeId="2" ParentId="27529" CreationDate="2010-12-17T18:50:41.367" Score="0" ViewCount="" Body="&lt;p&gt;This strongly depends on how you like commuting, and what obligations you have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I dislike commuting, and would prefer to work in the same town as I live, but that is currently not an option.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you cannot avoid the commute, then if you can, then locate somebody to commute with.  Being social is much more rewarding than listening to podcasts or watching movies, and if you do not like to run into co-workers then perhaps you should consider investing in your social skills.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-17T18:50:41.367" CommentCount="2" />
  <row Id="27544" PostTypeId="2" ParentId="27472" CreationDate="2010-12-17T18:55:47.617" Score="0" ViewCount="" Body="&lt;p&gt;Anticipation is the key !&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started working in my former company two years ago. One of the most frustrating thing was getting insufficient or no information, doing things your way and learning afterwards that definitely : &quot;No, here we work differently&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are two ways I used to address this issue (there may be many others !) :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Formal approach : as a general rule I recommend having an &lt;em&gt;up-to-date&lt;/em&gt; and &lt;em&gt;clear&lt;/em&gt; &quot;welcome doc&quot; giving useful information and making your expectations clear without having to repeat yourself each time a new colleague comes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A wiki could be a good way to do this (what I later set up in my company). It also allows you to improve your own internal rules with new ideas if you want. Make sure to place it close to whatever daily accessed resource otherwise it won't be used !&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that complaining about bad results is so much easier than making your expectations clear in the first place but it's worth doing it : mistakes can still be avoided, you're not in a faulty employee/sad boss relation. I find this more efficient and also more pleasant.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Informal approach : talk to your colleagues, be curious, ask how things are done, etc. Well, communicate !&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And if some issue eventually arises, better don't wait if you can !&lt;/p&gt;&#xA;" OwnerUserId="10705" LastEditorUserId="10705" LastEditorDisplayName="" LastEditDate="2010-12-18T03:28:12.970" LastActivityDate="2010-12-18T03:28:12.970" />
  <row Id="27545" PostTypeId="2" ParentId="27491" CreationDate="2010-12-17T19:03:09.310" Score="4" ViewCount="" Body="&lt;h1&gt;Black&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Black-box testing to verify the features. White-box testing as necessary if things are broken. If all the black-box tests pass and the coverage is good, white-box testing is unnecessary.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-17T19:03:09.310" CommentCount="3" />
  <row Id="27546" PostTypeId="2" ParentId="27518" CreationDate="2010-12-17T19:16:17.560" Score="15" ViewCount="" Body="&lt;p&gt;I always ask &lt;a href=&quot;http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html&quot; rel=&quot;nofollow&quot;&gt;fizzbuzz&lt;/a&gt;. My expectation is that anyone I would want to hire should be able to solve it almost as fast as they can write on a whiteboard. When I first started asking it I thought it would be a low bar that most candidates would ace before moving on, but I've found that even developers with years of experience can sit for 10 minutes or more and sometimes need help.  I'm not looking for anything fancy either, just a correct algorithm, I'll even accept syntax errors. If I ever find someone who knows the answer already I'll count that as a pass.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those that don't know, what I ask is this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Using any language you want (even&#xA;  pseudocode), write a program or&#xA;  subroutine that prints the numbers&#xA;  from 1 to 100, each number on a line,&#xA;  except for every third number write&#xA;  &quot;fizz&quot;, for every fifth number write&#xA;  &quot;buzz&quot;, and if a number is divisible&#xA;  by both 3 and 5 write &quot;fizzbuzz&quot;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(I also ask Rob Z's question pretty much every time.)&lt;/p&gt;&#xA;" OwnerUserId="10717" LastActivityDate="2010-12-17T19:16:17.560" CommentCount="7" />
  <row Id="27547" PostTypeId="2" ParentId="27518" CreationDate="2010-12-17T19:18:16.343" Score="0" ViewCount="" Body="&lt;p&gt;I will assume the question is for a software engineer/developer/programmer position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not going to post an specific question here. But my question would be more like a practical exercise in which I could include several topics like data structures, complexity analysis, out of the box thinking among others. So I would ask the candidate:&#xA;Define an algorithm(maybe in pseudo-code) to solve X problem, and define which data structures you may use to solve it. Then argue why did you chose those data structure and what would be the complexity (Big-O notation) of your solution. And then discuss if he can improve the performance of his solution. In this way you can realize the way he thinks and solves problems and which techniques and approaches does he use.&lt;/p&gt;&#xA;" OwnerUserId="8217" LastActivityDate="2010-12-17T19:18:16.343" />
  <row Id="27548" PostTypeId="2" ParentId="27518" CreationDate="2010-12-17T19:20:04.243" Score="1" ViewCount="" Body="&lt;p&gt;One of my favorite questions was to ask to design a function for which&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;f(f(number)) == -number&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;is true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There &lt;a href=&quot;http://stackoverflow.com/questions/731832/interview-question-ffn-n&quot;&gt;is a post on SO about it&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But such a questions sometimes become too popular. Like the question about to continue the sequence:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;1&#xA;11&#xA;21&#xA;1211&#xA;111221&#xA;312211&#xA;...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Basically I consider people's approaches to the problems they don't know how to solve. &quot;I need to look at the documentation for operator precedence&quot; or something similar is a good answer as well.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastEditorUserId="8360" LastEditorDisplayName="" LastEditDate="2010-12-17T20:03:35.593" LastActivityDate="2010-12-17T20:03:35.593" CommentCount="3" />
  <row Id="27549" PostTypeId="2" ParentId="27518" CreationDate="2010-12-17T19:27:22.940" Score="5" ViewCount="" Body="&lt;p&gt;We always ask this question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write a power function (that is, &quot;calculate x to the y&quot;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Almost everyone uses a for loop at first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then we ask them to do it using recursion.  Only a few of the folks get that, though we can usually talk them through it.&lt;/p&gt;&#xA;" OwnerUserId="1435" LastActivityDate="2010-12-17T19:27:22.940" CommentCount="4" />
  <row Id="27550" PostTypeId="2" ParentId="27133" CreationDate="2010-12-17T19:32:20.450" Score="1" ViewCount="" Body="&lt;p&gt;The biggest sign that a job is good or bad for your learning is whether or not you are learning new skills on the job.  You should be picking up at &lt;em&gt;least&lt;/em&gt; two significant skills that will change your resume per year, in my opinion.  Yes, there is always boring work; but it shouldn't be your entire job for long stretches of time (but short stretches - a couple months or so - can easily happen during 'crunch' periods).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you aren't learning on the job, talk with your manager.  Maybe you are doing new things, but not recognizing them as new skills; or maybe your manager needs to re-balance workloads so you aren't always getting stuck with the familiar, easy, boring work.  It's also possible that you are learning things, but not in the direction you are willing for your career to ultimately go.  Talk, and try to find common ground.  This kind of problem can often be a win-win, so work closely with your manager to find a solution.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your job is still all non-challenging work a few months later and you have been working with your manager to get the situation to change with no results and no reasons to expect real change soon, you are not working at your level and should consider hunting for a more challenging job.  Moving on should be good for your business as well, since - if they are paying you what you are worth - they should be able to replace you with someone cheaper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, this does not go against the advice to do personal projects, read a lot, and so forth outside of work.  This can greatly accelerate your career.  However, your career should not have to become your life for you to progress at all.  You should have some career velocity even if you do just 40 hours per week and then head home to your family - at low levels, you should be getting a small promotion every 2 to 3 years with just 40 hours per week, and at high levels, you should be at least holding even (e.g., not going out-of-date).  This does depend on your team - some workplaces are so good that people just don't move on, and it can take years for a spot to open up so you can be promoted.  I'm also assuming that you are actually working as hard as you can during your 40 hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you still aren't sure how your company is doing because you simply don't have the perspective, start scheduling &quot;informational interviews&quot; with developers at other companies.  These are interviews where you just learn about that company and how they do things, and they have nothing to do with seeking a new job.  They can be a great way to get some perspective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line:  Your company (and your team) should care about your career, just as you should care about the company's growth and success.  If you don't think your employer is concerned enough about your career, &quot;Vote with your feet&quot; - that is, walk out and move to a company that will care.&lt;/p&gt;&#xA;" OwnerUserId="8888" LastActivityDate="2010-12-17T19:32:20.450" CommentCount="1" />
  <row Id="27551" PostTypeId="2" ParentId="27483" CreationDate="2010-12-17T19:45:44.970" Score="3" ViewCount="" Body="&lt;p&gt;I read a lot, and since I got my iPad, I started to use Kindle. I bought a dozen of books. I also purchased +- 5 eBook instead of the paper version before I got the iPad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After few months of intensive tests, I decided that I will stop buying electronic version in the future.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I can't give or lend them to others. I know it's also prohibited explicitly by the license. They have your name watermarked in the binary.&lt;/li&gt;&#xA;&lt;li&gt;I can't read them in my bath!&lt;/li&gt;&#xA;&lt;li&gt;It's not even practical on my desk.&lt;/li&gt;&#xA;&lt;li&gt;When I have my iPad with me, I always need to watch it in case someone try to steal it. No problem with a paper book, you can leave it on the table while you go to the restrooms.&lt;/li&gt;&#xA;&lt;li&gt;I don't know what will happens if my iPad crash. I used to buy lot of music at MSN Music (OD2 Nokia) and when they decided to shutdown, I lost all my library, and today I have no way to even know what I've purchased (site out)&lt;/li&gt;&#xA;&lt;li&gt;The +- 5 PDF ebooks I mention earlier, I lost them somewhere on a DVD or an harddrive and can't found them anymore... I can't even remember what I purchased&lt;/li&gt;&#xA;&lt;li&gt;I forget I purchased books. Since I don't see them unless I open Kindle. And when I open Kindle, I have to scroll down to see them all.&lt;/li&gt;&#xA;&lt;li&gt;And more importantly... the electronic version is sometimes more expensive than the paper version! And when it's not more expensive it's not as cheap as it should be.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And probably the more important reason I will stop buy electronic books and purchase the paper version instead is:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I really need to touch them! I like their smell. The noise it makes when you fold the pages.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-18T10:39:32.347" LastActivityDate="2010-12-18T10:39:32.347" CommentCount="4" />
  <row Id="27552" PostTypeId="2" ParentId="27195" CreationDate="2010-12-17T19:45:57.557" Score="2" ViewCount="" Body="&lt;p&gt;It's hard to get around latency. Sooner or later you're going to have to sync with the server, or risk being badly behind when you get changes. I've yet to see an editor that really does this well, especially for large files or a large set of files.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that, I don't see any problems. I'm using an online editor right now, right? It does live preview, markup, and a few auto-completion widgets that are contextually useful. Wikipedia was almost entirely written using an online editor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's no reason emacs couldn't be reimplemented in Javascript; write a small LISP compiler and you're done, right? ;) Hell, maybe someone already has.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the present trend is toward degrading gracefully depending on what capabilities you have on the device. iPad? Plenty of text editors, though no full-fledged IDE yet. I expect to see XCode there in a few years. iPhone? long-term editing is painful, but it damn well better be supported.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-12-17T19:45:57.557" />
  <row Id="27553" PostTypeId="1" AcceptedAnswerId="27556" CreationDate="2010-12-17T19:50:04.500" Score="3" ViewCount="793" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/2206/do-you-call-yourself-a-programmer-a-software-engineer-or-something-else&quot;&gt;Do you call yourself a programmer, a software engineer or something else?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Are they the same, looks like no then what is the differences ?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Software engineering&lt;/li&gt;&#xA;&lt;li&gt;Software development&lt;/li&gt;&#xA;&lt;li&gt;And programing&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;blockquote class=&quot;spoiler&quot;&gt;&#xA;  &lt;p&gt; I am not that stupid man, just confiused a bit :D&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="9110" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T14:25:21.163" LastActivityDate="2010-12-26T14:25:21.163" ClosedDate="2010-12-18T13:31:05.057" Title="software engineer vs developer vs programmer." Tags="&lt;software-engineering&gt;&lt;software-development&gt;" AnswerCount="8" CommentCount="9" FavoriteCount="1" />
  <row Id="27554" PostTypeId="2" ParentId="27553" CreationDate="2010-12-17T19:53:02.660" Score="11" ViewCount="" Body="&lt;p&gt;Technically, a programmer is more focused on the actual coding, whereas a Software Engineer is focused on the overall solution which would include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Requirements&lt;/li&gt;&#xA;&lt;li&gt;Design, including preparation of design documents&lt;/li&gt;&#xA;&lt;li&gt;Coding&lt;/li&gt;&#xA;&lt;li&gt;Documentation&lt;/li&gt;&#xA;&lt;li&gt;Test&lt;/li&gt;&#xA;&lt;li&gt;Deployment&lt;/li&gt;&#xA;&lt;li&gt;Recurring Maintenance&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In practice, in most places I would expect that the lines are blurrier than this, and that a person will not be effective if they are only writing code from day to day.&lt;/p&gt;&#xA;" OwnerUserId="10365" LastEditorUserId="10365" LastEditorDisplayName="" LastEditDate="2010-12-17T19:59:51.003" LastActivityDate="2010-12-17T19:59:51.003" CommentCount="1" />
  <row Id="27556" PostTypeId="2" ParentId="27553" CreationDate="2010-12-17T19:55:39.767" Score="20" ViewCount="" Body="&lt;p&gt;You say software engineer when people you don't know ask you what you do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You say software development when people at your company ask you what you do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You say programming when kids ask you what you do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When other programmers ask what you do, you say: I get paid to write bad code.&lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-12-17T19:55:39.767" CommentCount="1" />
  <row Id="27557" PostTypeId="2" ParentId="27388" CreationDate="2010-12-17T19:56:39.123" Score="2" ViewCount="" Body="&lt;p&gt;Alex Stepanov, from what I've seen of his code and writing, is an expert C++ programmer, but he missed a some really big things in OO that happened since C++ came out:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Interfaces&lt;/li&gt;&#xA;&lt;li&gt;Design Patterns&lt;/li&gt;&#xA;&lt;li&gt;Generics&lt;/li&gt;&#xA;&lt;li&gt;Type Inference&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;As a result, from the linked interview, it looks like his knowledge of OO is trapped in the 90's. I'm not sure he would even recognize OO as practiced today.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-17T19:56:39.123" CommentCount="7" />
  <row Id="27558" PostTypeId="2" ParentId="27472" CreationDate="2010-12-17T19:56:46.393" Score="5" ViewCount="" Body="&lt;p&gt;Personally, I think that if you are going to the exceptional expense of taking on a new staff member, then it is worth spending some initial time training them in &lt;em&gt;&quot;the way we do things here&quot;&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As the senior coder, if there is a new team member then I tend to spend a few days with them one-to-one when they first turn up.  This gives time to carefully show code style, not just syntactic and layout, but the default choices of approach the team favours, the lowdown on any internal frameworks that are in use, documentation style, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;New employees want to make a good impression, they also are terrified usually of appearing lost, or asking stupid questions.  Spending this initial time with them, intensively training them in &lt;em&gt;&quot;the way&quot;&lt;/em&gt; within your organisation disspells this.  Additionally it is an excellent way to get to know the new staff member well, which makes them feel much more a part of the team and indeed for the team to view them that way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only potential drawback is stifling potential new methods coming in that may benefit the organisation.  This can be handled via encouragement to question methods of working were they have something better, with guidance as to why certain decisions are the way they are - often the prevailing style is not quite right, but refactoring is not an immediate option for some reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In summary: &lt;strong&gt;Train them from the outset, do not let them fumble about in the dark.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-17T19:56:46.393" />
  <row Id="27559" PostTypeId="2" ParentId="27553" CreationDate="2010-12-17T19:58:39.980" Score="2" ViewCount="" Body="&lt;p&gt;Yes, they are exactly the same.  All describe a programmer.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Individual companies, though, may have specific definitions for those terms for positions in their company.  But they are meaningless outside of that company.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-17T19:58:39.980" />
  <row Id="27560" PostTypeId="1" AcceptedAnswerId="27573" CreationDate="2010-12-17T19:58:46.843" Score="1" ViewCount="322" Body="&lt;p&gt;Suppose the company who the developer starts at is a cooperative, team of 10-15 members. The company follows SDLC.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;What qualities do you think an employer seeks in a developer?&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;You are welcome to explain why the quality is important from employer’s point of view.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Here are some examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Analytic / Logical / Critical / Questioning / Methodical&lt;/li&gt;&#xA;&lt;li&gt;Team player&lt;/li&gt;&#xA;&lt;li&gt;Responsible &lt;/li&gt;&#xA;&lt;li&gt;Social&lt;/li&gt;&#xA;&lt;li&gt;Problem solver&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-18T15:33:35.460" Title="What defines a good developer from an employer’s perspective?" Tags="&lt;jobs&gt;&lt;software-developer&gt;&lt;employer&gt;" AnswerCount="7" CommentCount="5" FavoriteCount="1" />
  <row Id="27561" PostTypeId="2" ParentId="27195" CreationDate="2010-12-17T19:59:05.847" Score="1" ViewCount="" Body="&lt;p&gt;Because of the business environment I've been the last few years, I've come to the following conclusion:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The more online our workday becomes,&#xA;  the more we need to support&#xA;  disconnected users.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(I don't claim to be the first one to make that observation)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simply put: When 10% of my work requires me to be online then if I can't be online I'm still 90% effective. Flip that around and I think you'll get my point: When 90% of my work day requires me to be online then if I can't be online I'm only 10% effective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's oversimplification. In all likelihood, if 90% of your workday required you to be online, then you're probably done for if you can't be online.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the online tool can work offline, is performant, etc, then I'm fine with it. But I don't want to lose a day's worth of billing because some idiot with a backhoe just dug through the fiber line for my neighborhood. That takes me down and anyone else relying on me.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-12-17T19:59:05.847" />
  <row Id="27562" PostTypeId="2" ParentId="20080" CreationDate="2010-12-17T20:00:52.943" Score="3" ViewCount="" Body="&lt;p&gt;I think the notices on unknown elements are a design mistake in PHP. I'm not sure it's possible to fix the mistake now, but it produces a lot of boilerplate code like &lt;code&gt;if(isset($foo['abc']) &amp;amp;&amp;amp; $foo['abc'] == '123')&lt;/code&gt; - this code &lt;strong&gt;should not&lt;/strong&gt; have &lt;code&gt;isset&lt;/code&gt;, since the intent is to check if there's '123' in certain place of &lt;code&gt;$foo&lt;/code&gt; and if there's nothing there it's definitely not '123'. The only reason you have to write twice as much code there is because of this unfortunate design mistake in PHP. And notices are &lt;strong&gt;very&lt;/strong&gt; expensive in PHP, unfortunately, so just disabling them is not an option for the code where performance is a concern. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So yes, it does make the code ugly IMHO and it does annoy me. And it's not because of lack of experience - I use PHP since 1998 and I remember when there was &lt;code&gt;.php3&lt;/code&gt; extension and it meant &quot;it's not PHP 2&quot;. Maybe I am lazy :) But laziness - at least certain type of it - is a virtue for a programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, valid use of &lt;code&gt;isset&lt;/code&gt; and &lt;code&gt;empty&lt;/code&gt; - just like ones in the original post - are fine. I just think PHP is over-zealous about warnings in places where &lt;code&gt;isset/empty&lt;/code&gt; are not really needed. &lt;/p&gt;&#xA;" OwnerUserId="10080" LastActivityDate="2010-12-17T20:00:52.943" CommentCount="1" />
  <row Id="27563" PostTypeId="2" ParentId="27560" CreationDate="2010-12-17T20:01:52.803" Score="1" ViewCount="" Body="&lt;p&gt;The ability to figure our how to solve the problem without asking 10 people how to do it. Bonus points if you figure out how to find the database ERD on the intranet by yourself. &lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-12-17T20:01:52.803" CommentCount="4" />
  <row Id="27564" PostTypeId="1" CreationDate="2010-12-17T20:04:57.667" Score="65" ViewCount="9002" Body="&lt;p&gt;Since it's the holiday season now and everybody's making wishes, I wonder - which language features you would wish PHP would have added? I am interested in some practical suggestions/wishes for the language. By practical I mean:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Something that can be practically done (not: &quot;I wish PHP would guess what my code means and fix bugs for me&quot; or &quot;I wish any code would execute under 5ms&quot;)&lt;/li&gt;&#xA;&lt;li&gt;Something that doesn't require changing PHP into another language (not: &quot;I wish they'd drop $ signs and use space instead of braces&quot; or &quot;I wish PHP were compiled, statically typed and had # in it's name&quot;)&lt;/li&gt;&#xA;&lt;li&gt;Something that would not require breaking all the existing code (not: &quot;Let's rename 500 functions and change parameter order for them&quot;)&lt;/li&gt;&#xA;&lt;li&gt;Something that &lt;em&gt;does&lt;/em&gt; change the language or some interesting aspect of it (not: &quot;I wish there was extension to support for XYZ protocol&quot; or &quot;I wish bug #12345 were finally fixed&quot;)&lt;/li&gt;&#xA;&lt;li&gt;Something that is more than a rant (not: &quot;I wish PHP wouldn't suck so badly&quot;)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Anybody has any good wishes? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mod edit: &lt;a href=&quot;http://php100.wordpress.com/&quot; rel=&quot;nofollow&quot;&gt;Stanislav Malyshev&lt;/a&gt; is a core PHP developer.&lt;/p&gt;&#xA;" OwnerUserId="10080" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-12-18T14:06:27.130" LastActivityDate="2011-04-16T20:26:42.620" CommunityOwnedDate="2010-12-19T01:28:39.613" Title="What features would you like to have in PHP?" Tags="&lt;programming-languages&gt;&lt;php&gt;&lt;language-design&gt;&lt;language-features&gt;" AnswerCount="89" CommentCount="12" FavoriteCount="37" />
  <row Id="27565" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T20:05:37.553" Score="2" ViewCount="" Body="&lt;p&gt;May seem silly, but I don't like underscores because the underscore is thin, and hides in multiple line text and I miss it.  Also, in some (many) text editors and/or dev environments, when you double click on a token name to highlight it so as to copy or drag and drop it, the system will not highlight the entire token, it only highlights one portion of the token, between adjacent underscores.  That drives me nuts. &lt;/p&gt;&#xA;" OwnerUserId="10732" LastActivityDate="2010-12-17T20:05:37.553" CommunityOwnedDate="2011-01-06T21:09:02.793" />
  <row Id="27566" PostTypeId="2" ParentId="27560" CreationDate="2010-12-17T20:06:58.580" Score="5" ViewCount="" Body="&lt;p&gt;An employer should seek someone who is &lt;a href=&quot;http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html&quot; rel=&quot;nofollow&quot;&gt;Smart and Gets Things Done&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10365" LastActivityDate="2010-12-17T20:06:58.580" CommentCount="1" />
  <row Id="27567" PostTypeId="2" ParentId="27560" CreationDate="2010-12-17T20:09:11.357" Score="1" ViewCount="" Body="&lt;p&gt;I feel like the wide range of knowledge in different areas is going to be more in demand than the expert knowledge in one particular area.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not to replace five specialists with one hero and save on personnel costs, but rather desire to get a person with an ability to understand the entire landscape and see the big picture.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-17T20:09:11.357" CommentCount="1" />
  <row Id="27568" PostTypeId="2" ParentId="27509" CreationDate="2010-12-17T20:10:16.723" Score="0" ViewCount="" Body="&lt;p&gt;Since you based your work on his work, chances are you have no choice but to acknowledge him in the copyright notice. (Depending on the open source license he choosed)&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-17T20:10:16.723" />
  <row Id="27569" PostTypeId="2" ParentId="27553" CreationDate="2010-12-17T20:13:05.973" Score="1" ViewCount="" Body="&lt;p&gt;I'd argue that Software Engineer is a made up job title.  Developers aren't engineers.  Engineers have to pass tests to claim that title.  That doesn't make them &lt;strong&gt;better&lt;/strong&gt; or more respectable.  It just means they have to jump through more hoops to get to the starting point (and arguably that the entrenched professionals are better at protectionism of their job market.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developer and programmer is largely interchangeable from my perspective.  In my head, &quot;developer&quot; connotes a more well-rounded professional than &quot;programmer&quot; but in discussions with others this is far from universal.  I describe myself as a developer personally.&lt;/p&gt;&#xA;" OwnerUserId="9475" LastActivityDate="2010-12-17T20:13:05.973" CommentCount="2" />
  <row Id="27570" PostTypeId="2" ParentId="27560" CreationDate="2010-12-17T20:19:35.773" Score="6" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;someone who can work independently, but knows when to ask for help.&lt;/li&gt;&#xA;&lt;li&gt;someone who gets things done and meets deadlines.&lt;/li&gt;&#xA;&lt;li&gt;someone who shows up to required meetings.&lt;/li&gt;&#xA;&lt;li&gt;someone who fits the culture of the team/company.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-12-17T20:19:35.773" CommentCount="2" />
  <row Id="27571" PostTypeId="2" ParentId="27400" CreationDate="2010-12-17T20:21:34.720" Score="0" ViewCount="" Body="&lt;p&gt;In the Teaching profession, at least here in the UK, teachers have to be qualified far in excess of what they teach.  A Secondary (High School) teacher would be expected to have a degree in the subject they taught, and Primary (Elementary) school teachers have degrees too, and have to be proficient in all major subjects up to a good grade GCSE level (high school exit exams?, no real US wide equivalent).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? Because in order to teach something well, or indeed use something well, you have to understand it.  This requires understanding the underlying structure, the chain of decisions before the one you are working with that led to it.  In order to properly understand high level code, you must understand the layer upon which it is built, how it operates, where its strengths and weaknesses lie.  This is recursive, to understand the layer beneath, you must understand the layer beneath that as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, this is why the decent university/college courses in Computing ask for good maths ability before everything else, as that is effectively the bottom rung.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Maths -&amp;gt; Physics                -&amp;gt;&#xA;      -&amp;gt; Chemistry -&amp;gt; Materials -&amp;gt; Hardware Design -&amp;gt; Microcode      -&amp;gt; Assembler&#xA;                                                   -&amp;gt; Bus Interfaces -&amp;gt; Peripherals&#xA;&#xA;... Assembler    -&amp;gt; Low Level      -&amp;gt; High Level   -&amp;gt;&#xA;... OS / Drivers -&amp;gt; API Level      -&amp;gt; Applications -&amp;gt; User&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If you lack knowledge in these areas, then your understanding is compromised beneath it.  The closer to the level you operate another layer is, the more important it is to have a grounding in it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So: &lt;em&gt;Do you need to know assembler as a high-level coder?&lt;/em&gt; &lt;strong&gt;&amp;nbsp;It will help.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-17T20:21:34.720" />
  <row Id="27572" PostTypeId="2" ParentId="27444" CreationDate="2010-12-17T20:23:12.940" Score="0" ViewCount="" Body="&lt;p&gt;No. It is not always the right way. The end.&lt;/p&gt;&#xA;" OwnerUserId="10738" LastActivityDate="2010-12-17T20:23:12.940" />
  <row Id="27573" PostTypeId="2" ParentId="27560" CreationDate="2010-12-17T20:26:52.723" Score="9" ViewCount="" Body="&lt;p&gt;While there are tons that I probably could name, here are some of the big ones to my mind, if I try to limit the list to 10 or less:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Self-motivating - Someone that can do work without having to be threatened or coerced to do work.  This could also be seen as someone that has some drive and gets things done without requiring excessive external incentives&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Affinity for learning - Often when solving problems there will be a learning curve for a developer to pick up either the technologies used, the process used or a combination of the two.  This could also be seen as being adaptable and able to understand what is needed to get the job done.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Humility - Knowing that there are others out there that may be better with a specific skill and usually don't have a big ego that requires regular stroking.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Problem solving - This is likely to be common among developers as what is created is usually to fix something.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;System building - Does the person know how to put together various pieces to form a robust system to perform some set of tasks?  This is kind of the flip side to the problem solving in the case where the solution is something rather large and abstract possibly.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Abstract thinking - Software isn't a tangible thing and has a lot of flexibility that some people can have a hard time grasping and understanding the implications of that.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Creativity - This is more about how things get done that may require a new perspective or data structure that hasn't been used yet.  Building something out of nothing can require someone to have the vision to see it and how it'll all work in the end.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Versatility - Many of the best developers I know don't mind taking on various roles to get something done.  This may mean being a business analyst, quality analyst, architect, system administrator, project manager or something else as part of that process.  In a way this goes with the humility in terms of being effective in a company.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-17T20:26:52.723" CommentCount="1" />
  <row Id="27574" PostTypeId="2" ParentId="27564" CreationDate="2010-12-17T20:29:59.720" Score="39" ViewCount="" Body="&lt;p&gt;A language-integrated-query-engine would be great.  Sort of like what is available in .NET called LINQ.  It would help sort through massive arrays of data, and standardize database access, so that fewer SQL-injection attacks succeed.&lt;/p&gt;&#xA;" OwnerUserId="475" LastEditorUserId="5497" LastEditorDisplayName="" LastEditDate="2010-12-21T22:39:38.833" LastActivityDate="2010-12-21T22:39:38.833" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="3" />
  <row Id="27575" PostTypeId="2" ParentId="27564" CreationDate="2010-12-17T20:33:30.127" Score="6" ViewCount="" Body="&lt;p&gt;PHP suits me just fine as it is for knocking up small to medium websites; I must be a bit unimaginative, the only thing I could think of as a response to this question would be something that makes it scale better for high traffic sites.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm thinking in terms of spawning off processes to other cores, for example updating a database in one process while creating the output page in another process. A quick google search indicates that this can be simulated, but is not supported directly in php at present.&lt;/p&gt;&#xA;" OwnerUserId="9932" LastActivityDate="2010-12-17T20:33:30.127" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="2" />
  <row Id="27576" PostTypeId="2" ParentId="3199" CreationDate="2010-12-17T20:34:50.797" Score="0" ViewCount="" Body="&lt;p&gt;I prefer version numbers that assign some semantic meaning.  As long as you can use the version number to track bugs reported with a particular version to changes that occurred in the source code (and in your activity management system) then you're probably using the right method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use .NET so I'm stuck with the .NET version numbering system but I try to give semantic meaning to the numbers so with&lt;/p&gt;&#xA;&#xA;&lt;p&gt;major.minor.build.revision&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;major = (up to the project) &lt;/li&gt;&#xA;&lt;li&gt;minor =&#xA;(up to the project) &lt;/li&gt;&#xA;&lt;li&gt;build = build&#xA;number from Hudson (you could use&#xA;TeamCity or TeamBuild, etc. here)&lt;/li&gt;&#xA;&lt;li&gt;revision = subversion or bazaar&#xA;revision (depending on the project&#xA;and what its using)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;We always make sure thatt he version number is visible in some way (with our batch console-based programs its printed to console and a log file, with web apps its on the menu bar at the top usually)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This way if clients report problems we can use the version number to track if they are using the latest version and how many problems we have had with particular versions.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's all about traceability! &lt;/p&gt;&#xA;" OwnerUserId="10734" LastActivityDate="2010-12-17T20:34:50.797" />
  <row Id="27577" PostTypeId="2" ParentId="27472" CreationDate="2010-12-17T20:35:15.883" Score="4" ViewCount="" Body="&lt;p&gt;I learned when teaching that it is always better psychologically to start off with some hard rules and ease up later than to let someone think they are doing fine and have to tighten up the rules later.  If you let someone go down the wrong path for a long time, it is much harder for them to grasp why it was OK last week but not now and they will fight the change that much harder.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The new employee should be given the coding standards not expected to figure them out for himself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The manager of the employee should ask to see code as soon as possible - don't wait months before you ask to see it and should do a really picky code review. Explain what he should have done differently (and why) and then (and this is important) make him fix the problems before he is asked to work on anything else. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do this several times inthe first month and you will find you have a developer who understands and follows your standard or you have a cowboy programmer who doesn't care what the company expects, he wants to do his thing in his way and damn the team.  This guy needs to be fired as soon as possible because he will do more harm than not follow coding standards - he will program a HASKELL solution in a .net shop not because it is the best solution for the problem but just because he wants to learn HASKELL and no one else on the team can support it; he will add extra functionality the client doesn't want just because he thinks it's cool; he will refuse to do what the requirements ask for because they are using boring technology or he doesn't see the need; he will take working code and break it trying to make a change no one wanted him to make; he will fail to commit critical code to source control so no one else can touch it and on and on and on.  &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-17T20:35:15.883" />
  <row Id="27578" PostTypeId="2" ParentId="27264" CreationDate="2010-12-17T20:36:39.200" Score="4" ViewCount="" Body="&lt;h3&gt;Both!&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I do a lot of development in CakePHP, and I use either &lt;code&gt;CamelCase&lt;/code&gt; or &lt;code&gt;$underscored_vars&lt;/code&gt;, in the following fashion (even outside CakePHP Projects):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;filenames&lt;/strong&gt; &amp;mdash; &lt;code&gt;/lowercased_underscored.php&lt;/code&gt; Typical, but worth mentioning.  &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;classes&lt;/strong&gt; &amp;mdash;  &lt;code&gt;class CamelCase extends ParentObject&lt;/code&gt;.  Note that, when using &lt;code&gt;CamelCase&lt;/code&gt;, the initial character is not lowercase.  I find &lt;code&gt;camelCase&lt;/code&gt; to look &lt;em&gt;really&lt;/em&gt; weird.  &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;variables&lt;/strong&gt; &amp;mdash; &lt;code&gt;$are_variables_underscored === TRUE;&lt;/code&gt;   &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;variables that hold instances&lt;/strong&gt; &amp;mdash; &lt;code&gt;$CamelCase = new CamelCase();&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;array keys&lt;/strong&gt; &amp;mdash; &lt;code&gt;$collection['underscored_keys'];&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;constants&lt;/strong&gt; &amp;mdash; I think everyone can agree that constants should be &lt;code&gt;ALL_CAPS_AND_UNDERSCORED&lt;/code&gt;.  &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;methods&lt;/strong&gt; &amp;mdash; &lt;code&gt;$CamelCase-&amp;gt;foo_method_underscored();&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;static methods&lt;/strong&gt; &amp;mdash; &lt;code&gt;CamelCase::just_like_regular_methods();&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5497" LastActivityDate="2010-12-17T20:36:39.200" CommunityOwnedDate="2011-01-06T21:09:02.793" CommentCount="2" />
  <row Id="27580" PostTypeId="2" ParentId="27483" CreationDate="2010-12-17T20:47:45.707" Score="1" ViewCount="" Body="&lt;p&gt;I get the books readers on my PC. Some have had issues with formating, but I found Amazon will give you a prompt refund if this is the case. I've used Microsoft eReader and Adobe's reader. I thought Kindle was lacking in some technical book choices. I carry a laptop anyway on the commute so I don't need an extra device. Can get the same books on my work computer if needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I really hate is their inability to let you copy and paste. I was taking notes into Evernote and found this to be a pain.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-17T20:47:45.707" CommentCount="1" />
  <row Id="27581" PostTypeId="2" ParentId="27472" CreationDate="2010-12-17T20:49:34.193" Score="1" ViewCount="" Body="&lt;p&gt;I prefer the correction sooner rather than later school myself.  The approach though is key to my mind as you have to be careful in how to find the line of being assertive about the standards and why they are so important.  Be clear on what was incorrect, be prepared to discuss this and understand what are the lines in terms of remedying the situation.  To take your example a step further, do you have suggested name that would be better or is it just that what was used doesn't &quot;feel right&quot;?  That latter is rather vague and annoying to my mind as it could seem like I'm being asked to mind read which I don't do.  Instead, if you could say that the name should be shorter so that it isn't confusing then I can know what kind of metric to use in trying to rename things.  Find things to praise in the work so that you can sandwich the changes you want between a couple of compliments.  Sample if you like the tests and method lengths but not the length of the name: &quot;Those were some great tests you wrote but could you rename this class to something shorter?  Lastly, the methods seemed to be short and sweet just like we want thanks!&quot;  This can go over well as while you are asking for one thing, you are giving some compliments that may encourage the new developer to keep up the fine reputation you are giving them.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-17T20:49:34.193" />
  <row Id="27582" PostTypeId="1" AcceptedAnswerId="27586" CreationDate="2010-12-17T20:52:24.023" Score="5" ViewCount="505" Body="&lt;p&gt;I think “Widely used” is enough without having to specify the implementation.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Which programming language do you think will be widely used 10 years from now?&lt;/li&gt;&#xA;&lt;li&gt;Will there be a language that dominates the market?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-18T03:58:35.340" ClosedDate="2010-12-18T14:04:48.627" Title="Which programming language do you think will be widely used 10 years from now?" Tags="&lt;programming-languages&gt;&lt;future&gt;" AnswerCount="9" CommentCount="4" FavoriteCount="2" />
  <row Id="27583" PostTypeId="2" ParentId="27582" CreationDate="2010-12-17T20:55:14.533" Score="1" ViewCount="" Body="&lt;p&gt;Widely used: &lt;strong&gt;Scala&lt;/strong&gt; - to be able of using actors, software transactional memory and the familiar C style syntax, in a elegant and functional way, and also be able of keep using the extensive and mature Java libraries, are not things to be easily ignored...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, no, hardly we'll have a dominating language anywhere in the future. No  &quot;language to rule it all&quot;. The future seems to be both about very specialized languages (DSLs) and also about multi-paradigm languages too (like Scala, F# and even C# are).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, I don't think the notion of programming into a single language is possible &lt;em&gt;today&lt;/em&gt;. Everyday I'm dealing with many distinct languages (in my case, Python, C#, Linq, HQL, SQL and so forth), and I see this trend increasing each day.&lt;/p&gt;&#xA;" OwnerUserId="5300" LastEditorUserId="5300" LastEditorDisplayName="" LastEditDate="2010-12-17T21:31:50.180" LastActivityDate="2010-12-17T21:31:50.180" />
  <row Id="27584" PostTypeId="1" CreationDate="2010-12-17T20:59:53.423" Score="5" ViewCount="90" Body="&lt;p&gt;Canadian programmers may have trouble over the properties like &lt;code&gt;background-color&lt;/code&gt; vs. &lt;code&gt;background-colour&lt;/code&gt;. In reverse, a software library designed in Canada will expose things like &lt;code&gt;setTextColour&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has the spell variation problem ever bothered you? &lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-12-18T04:12:18.473" ClosedDate="2010-12-18T13:33:17.567" Title="Regional Spelling Variations" Tags="&lt;spelling&gt;" AnswerCount="8" CommentCount="1" />
  <row Id="27585" PostTypeId="2" ParentId="27582" CreationDate="2010-12-17T21:01:55.463" Score="4" ViewCount="" Body="&lt;p&gt;It's hard to make accurate predictions, but right now I would say languages which are predominantly functional will take the lead since they make writing apps for multicore processors easier then imperative langs.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-17T21:01:55.463" CommentCount="1" />
  <row Id="27586" PostTypeId="2" ParentId="27582" CreationDate="2010-12-17T21:03:01.050" Score="17" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;b&gt;JavaScript&lt;/b&gt; - We will only see more of it as HTML 5 (and its successors) extend JavaScript's functionality, frameworks such as jQuery make it easier to work with, and newer mobile devices continue to provide richer browser experiences that are increasingly JavaScript-oriented (as opposed to the &quot;mobile web&quot;).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;b&gt;Java&lt;/b&gt; - There are just too many applications written in it today; although I'd wager that the vast majority of the Java work will be maintenance...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;b&gt;C#&lt;/b&gt; - Microsoft has made such an investment in .NET that there is no way they will be moving away from the platform anytime soon, although the mobile market may force their hand.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10365" LastActivityDate="2010-12-17T21:03:01.050" CommentCount="5" />
  <row Id="27587" PostTypeId="1" CreationDate="2010-12-17T21:03:11.790" Score="0" ViewCount="99" Body="&lt;p&gt;My username is krunal. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And If i type my name in any language like Gujarati(કૃણાલ), Hindi(कृनल)  or English(krunal) in username textbox than it should allowed me to login without any specific language selection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just want to know the views of other people regarding this functionality. Is it a good to provide a login functionality like this ?&lt;/p&gt;&#xA;" OwnerUserId="9727" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T14:24:27.797" LastActivityDate="2010-12-26T14:24:27.797" Title="Can we provide a login functionality in multiple language ?" Tags="&lt;languages&gt;&lt;new-technology&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="27588" PostTypeId="2" ParentId="27584" CreationDate="2010-12-17T21:03:20.283" Score="1" ViewCount="" Body="&lt;p&gt;As long as it's well documented, who cares ? :)&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-17T21:03:20.283" CommentCount="1" />
  <row Id="27589" PostTypeId="2" ParentId="27582" CreationDate="2010-12-17T21:03:51.643" Score="5" ViewCount="" Body="&lt;p&gt;Python. The biggest snake on planet.&lt;/p&gt;&#xA;" OwnerUserId="8217" LastActivityDate="2010-12-17T21:03:51.643" CommentCount="1" />
  <row Id="27590" PostTypeId="2" ParentId="27454" CreationDate="2010-12-17T21:04:58.800" Score="5" ViewCount="" Body="&lt;p&gt;When people ask me for career advice your question is one of the first questions I ask them.  I don't think anyone can answer this question for you; I think you have to decide for yourself whether focussing on depth or breadth is more likely to meet your career goals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I last changed teams I had two opportunities: to work on the XBOX developer tools team, or to work on the C# compiler team. I realized that it came down to breadth vs depth. On the XBOX team I could work on security systems one day, audio systems the next, video, networking, hardware interfacing, you name it. Sure, some people are experts, but everyone has to know a bit about everything. On the C# compiler team I could dive into one language and one compiler and really understand the whole thing in depth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I gave it a lot of thought and decided that I was more tempermentally suited to being an expert on one thing rather than a dilettante at many. That was a good choice for me, but it might not be for you. Some people are highly successful knowing a little bit of everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice therefore is to turn the question around. Figure out what kind of person you are, and then see if your company has opportunities for someone like you. If not, find one that does.&lt;/p&gt;&#xA;" OwnerUserId="6505" LastActivityDate="2010-12-17T21:04:58.800" CommentCount="1" />
  <row Id="27591" PostTypeId="2" ParentId="27564" CreationDate="2010-12-17T21:06:25.967" Score="3" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;I'd one day like to see data type,&#xA;however -- I also like the simplicty&#xA;of not having to deal with data&#xA;types, this is a double edged sword&#xA;for me.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strike&gt;namespaces&lt;/strike&gt;!&lt;/li&gt;&#xA;&lt;li&gt;Overload function calls with different method signatures&lt;/li&gt;&#xA;&lt;li&gt;Better support for unit testing and code injection, PHPUnit is an amazing tool, as well Symfony code injection framework does wonders... however they all come with their own learning curve.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1834" LastEditorUserId="923" LastEditorDisplayName="" LastEditDate="2011-01-06T23:23:05.640" LastActivityDate="2011-01-06T23:23:05.640" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="1" />
  <row Id="27592" PostTypeId="2" ParentId="27491" CreationDate="2010-12-17T21:08:00.860" Score="1" ViewCount="" Body="&lt;p&gt;If you want to have a good test cycle, you should have different people doing &lt;b&gt;Both&lt;/b&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;A developer focused mainly on white-box testing knows what has changed in the code recently, which areas are more complex (and therefore likely to break), etc and can focus efforts appropriately in these areas most likely to introduce new defects. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;On the other hand, a QA tester focused on black-box testing can more easily approach testing like an end user. Without any internal knowledge of the code, they can take a fresh approach and are not biased by the knowledge of how different parts of the solution are implemented. They will catch bugs that the developer may have overlooked, or regressions from code changes that accidentally broke other areas of the application.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;To answer your question, the white-box testing should be done first. But you really need to have a different person doing the black box testing if you want to it to be effective.&lt;/p&gt;&#xA;" OwnerUserId="10365" LastEditorUserId="10365" LastEditorDisplayName="" LastEditDate="2010-12-17T21:15:06.427" LastActivityDate="2010-12-17T21:15:06.427" />
  <row Id="27593" PostTypeId="2" ParentId="27587" CreationDate="2010-12-17T21:08:26.493" Score="1" ViewCount="" Body="&lt;p&gt;It is not a good idea. The login name should be unique. Allowing multiple strings for logging in will lead to confusion and security issues. So I think is not worth the try.&lt;/p&gt;&#xA;" OwnerUserId="8217" LastActivityDate="2010-12-17T21:08:26.493" CommentCount="2" />
  <row Id="27594" PostTypeId="2" ParentId="27587" CreationDate="2010-12-17T21:12:19.047" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://openid.net/&quot; rel=&quot;nofollow&quot;&gt;OpenID&lt;/a&gt; would be a good start I think. It doesn't allow for multiple login names, and as Enrique said -- would be bad because of security issues. However it does give you the uniqueness of using an email address, however you have the freedom to choose whichever username you would like.&lt;/p&gt;&#xA;" OwnerUserId="1834" LastActivityDate="2010-12-17T21:12:19.047" CommentCount="2" />
  <row Id="27595" PostTypeId="2" ParentId="27584" CreationDate="2010-12-17T21:19:50.230" Score="4" ViewCount="" Body="&lt;p&gt;As a Canadian, working in the past with both British-based and America-based (though not necessarily British or American), I would say that I am pretty agnostic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I am writing a comment, I will probably use a Canadian spelling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there is a &lt;strong&gt;SetForegroundColor&lt;/strong&gt;, and I need to implement a new &lt;strong&gt;SetBackgroundXXX&lt;/strong&gt; I will not just use the &lt;strong&gt;u&lt;/strong&gt; and make it inconsistant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there were neither, I might well use the &lt;strong&gt;Colour&lt;/strong&gt; spelling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The part that actually might bother me more than a &lt;em&gt;correct&lt;/em&gt;  regional spelling, is any (or at least an odd) abbreviation like &lt;strong&gt;SetForGndClr&lt;/strong&gt; - that's worth fixing... :-)&lt;/p&gt;&#xA;" OwnerUserId="8668" LastActivityDate="2010-12-17T21:19:50.230" />
  <row Id="27596" PostTypeId="2" ParentId="27560" CreationDate="2010-12-17T21:21:42.610" Score="0" ViewCount="" Body="&lt;p&gt;All too often the belief is that a heads down do'er is what an employer appreciates. This is true to an extent however the reality is that feedback and ideas are some of the most profound and beneficial traits to an employer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Employers should be leaning on their employees and often times do; using their knowledge about varying topics to strengthen their business. When an employee remains un-engaged in the day to day business and simply accepts whatever details were passed to them without questioning the cause for the sake of the business, the employees value diminishes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;While the employee is on-time, knows when to ask questions, etc...they are still a replaceable resource. These items can be taught, ideas and creativity come from within.&lt;/p&gt;&#xA;" OwnerUserId="3289" LastActivityDate="2010-12-17T21:21:42.610" />
  <row Id="27597" PostTypeId="2" ParentId="27582" CreationDate="2010-12-17T21:23:33.490" Score="9" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;C. Because you'll need operating systems and embedded systems.&lt;/li&gt;&#xA;&lt;li&gt;Java. Even if people will not be using it too much, legacy applications will have to be maintained.&lt;/li&gt;&#xA;&lt;li&gt;C#. Because Microsoft seems to have got it right with it.&lt;/li&gt;&#xA;&lt;li&gt;Python and Ruby. Because it's fun.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also, COBOL. I mean, come on! That bastard could not be killed in all this time.&lt;/p&gt;&#xA;" OwnerUserId="8454" LastActivityDate="2010-12-17T21:23:33.490" CommentCount="1" />
  <row Id="27598" PostTypeId="2" ParentId="27587" CreationDate="2010-12-17T21:26:26.623" Score="0" ViewCount="" Body="&lt;p&gt;The closest I cna imagine is to have a database setup with a user ID's, language ID's. Have the password and user ID associated (one password only!), and then a link table with the User ID, Language ID, and then the actual username data.&#xA;Clearly a username must be unique per language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I agree also with Enrique here in that one username is good. Taking on Cosizzle's suggestion - you could definitely use OpenID. You could also make it really easy for the user and support authentication through Facebook or twitter tokens....&lt;/p&gt;&#xA;" OwnerUserId="6630" LastActivityDate="2010-12-17T21:26:26.623" />
  <row Id="27599" PostTypeId="2" ParentId="27582" CreationDate="2010-12-17T21:28:03.880" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;C++ on the system programming side (but certainly in competition with D);&lt;/li&gt;&#xA;&lt;li&gt;Python on the scripting and web sides (and used with C++)&lt;/li&gt;&#xA;&lt;li&gt;C# (.Net) on app and web sides.&lt;/li&gt;&#xA;&lt;li&gt;A variant of Java on the web server side.&lt;/li&gt;&#xA;&lt;li&gt;Something to replace Javascript in browsers (or a variant of javascript) - maybe Python or Ruby.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-12-17T21:28:03.880" CommentCount="2" />
  <row Id="27600" PostTypeId="1" AcceptedAnswerId="27615" CreationDate="2010-12-17T21:29:19.057" Score="6" ViewCount="277" Body="&lt;p&gt;I love writing unit tests and agree they are an excellent way to test code, prevent regressions, etc. However, I find myself unable to write them much as the vast majority of the code I work on day-in and day-out is application code that displays a UI to the user. Is there a good way of unit testing application code? What are the best practices here? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not looking for a specific answer such as a framework, etc. But rather, in general, how do you approach this problem?&lt;/p&gt;&#xA;" OwnerUserId="10365" LastActivityDate="2011-03-10T11:57:25.367" Title="How do you unit test Application and UI code?" Tags="&lt;best-practices&gt;&lt;unit-testing&gt;&lt;applications&gt;" AnswerCount="2" CommentCount="4" FavoriteCount="1" />
  <row Id="27601" PostTypeId="2" ParentId="27584" CreationDate="2010-12-17T21:29:28.977" Score="1" ViewCount="" Body="&lt;p&gt;Being a British based programmer, I have over the years gotten used to the fact that most API's and specs will use american spellings. It isn't just &quot;color&quot;, but Z's and S's and other things. It used to bug me, and I have known a person in management seeing code go hoping mad over US spellings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, as Jas &amp;amp; Delnan have said, good documentation and autocompletion make it easy to overlook when it is different.&lt;/p&gt;&#xA;" OwnerUserId="6630" LastActivityDate="2010-12-17T21:29:28.977" />
  <row Id="27602" PostTypeId="2" ParentId="27584" CreationDate="2010-12-17T21:30:48.727" Score="1" ViewCount="" Body="&lt;p&gt;Some APIs and graphics-related languages offer both &quot;color&quot; and &quot;colour&quot;.   POV-Ray is an example.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case, it's a trivial compiler error and a trivial fix.  For any source code one works on a lot, one gets accustomed to a particular spelling. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, even though I'm American, I read a lot of British science books as a kid.  So I sometimes write &quot;colour&quot;, &quot;behaviour&quot; etc without realizing it.  What the heck, we're all international these days :D&lt;/p&gt;&#xA;" OwnerUserId="4280" LastActivityDate="2010-12-17T21:30:48.727" />
  <row Id="27603" PostTypeId="2" ParentId="27584" CreationDate="2010-12-17T21:31:06.963" Score="0" ViewCount="" Body="&lt;p&gt;Oh, my.  This potential &quot;problem&quot; can easily be shoved into perspective when considering non-English speakers who must write software in an English-based computer language.  When a German-speaker would naturally think in terms of Hintergrundsfarbe, it must be a bit jarring to code &quot;background-color&quot;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, my native human language is English, so...&lt;/p&gt;&#xA;" OwnerUserId="1351" LastActivityDate="2010-12-17T21:31:06.963" />
  <row Id="27604" PostTypeId="2" ParentId="27584" CreationDate="2010-12-17T21:31:27.700" Score="1" ViewCount="" Body="&lt;p&gt;When I worked on a 3D graphics library we made a concious decision to use British English spellings (Colour being the obvious one) as we were a British firm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was a bit of wrench when the next generation product was written with US English spellings, but as the US was the biggest market for the software it was deemed necessary. I think Canadians and the British are more used to seeing the American spellings than vice versa so it &lt;em&gt;might&lt;/em&gt; be problem for Americans seeing the UK spelling - but that's just a guess.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As @delnan points out in his comment auto complete has gone a long way to make worrying about spelling redundant.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-12-17T21:31:27.700" />
  <row Id="27605" PostTypeId="2" ParentId="27564" CreationDate="2010-12-17T21:35:35.010" Score="0" ViewCount="" Body="&lt;p&gt;Reflection to make private properties and methods accessible without &lt;code&gt;setAccessible()&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="9987" LastActivityDate="2010-12-17T21:35:35.010" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="2" />
  <row Id="27606" PostTypeId="2" ParentId="27444" CreationDate="2010-12-17T21:36:07.337" Score="0" ViewCount="" Body="&lt;p&gt;Is &lt;strong&gt;structured&lt;/strong&gt; programming always the best way? (Don't forget that if a program is OOP, it is structured by default.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From 100 programs 90 is structured, 10 is not (maybe 99:1), from the 90 structured program 80 is OOP, 10 is not (maybe 60:30).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe, out of the 10 non-structured programs, 1 use no subroutines at all (perhaps not even flow control).&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-12-17T21:36:07.337" />
  <row Id="27607" PostTypeId="2" ParentId="27564" CreationDate="2010-12-17T21:42:13.410" Score="2" ViewCount="" Body="&lt;p&gt;Definitely method overloading using type hinting to differentiate the method signatures. Even further, I would like to see some kind of ASP.NET style &quot;attributes&quot;, so that my controller actions in a PHP MVC framework could look like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/* [HttpGet] */&#xA;public function login() {}&#xA;&#xA;/* [HttpPost] */&#xA;public function login() {}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4881" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-17T22:47:10.063" LastActivityDate="2010-12-17T22:47:10.063" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="4" />
  <row Id="27609" PostTypeId="2" ParentId="27582" CreationDate="2010-12-17T21:45:11.297" Score="1" ViewCount="" Body="&lt;p&gt;My bet is &lt;strong&gt;Ruby&lt;/strong&gt;. The language interpreters are gaining great shape nowadays, and once its&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;stability&lt;/li&gt;&#xA;&lt;li&gt;performance (both computational and enterprise-grade)&lt;/li&gt;&#xA;&lt;li&gt;and documentation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;reaches their potential, people from all kinds of organizations will rush to learn more about it.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;By enterprise-grade, I mean byte-code caches and other scalability tools.&lt;/p&gt;&#xA;" OwnerUserId="7308" LastActivityDate="2010-12-17T21:45:11.297" />
  <row Id="27610" PostTypeId="1" AcceptedAnswerId="27616" CreationDate="2010-12-17T21:48:28.877" Score="1" ViewCount="79" Body="&lt;p&gt;Does anyone know where I can find publicly available data that the government collects (for example Automotive data).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking to see what format they store it in.  Is it by web search only or do they offer it in xml or a open web service that I can hit to get the data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone know if the government allows access to the data they collect like this for everything?&lt;/p&gt;&#xA;" OwnerUserId="7456" LastActivityDate="2010-12-17T22:10:36.637" ClosedDate="2010-12-17T22:19:35.210" Title="Government Data" Tags="&lt;government&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="27611" PostTypeId="2" ParentId="27610" CreationDate="2010-12-17T21:50:20.803" Score="2" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://2010.census.gov/2010census/data/&quot; rel=&quot;nofollow&quot;&gt;US Census Data&lt;/a&gt; is in CSV format.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a comprehensive catalog of US government data and supported formats, look here: &lt;a href=&quot;http://www.data.gov/&quot; rel=&quot;nofollow&quot;&gt;http://www.data.gov/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-17T22:10:36.637" LastActivityDate="2010-12-17T22:10:36.637" />
  <row Id="27612" PostTypeId="2" ParentId="27564" CreationDate="2010-12-17T21:51:44.470" Score="16" ViewCount="" Body="&lt;p&gt;Dear Santa, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) please get rid of includes().  References to other files should be references, and not actually place the contents of one source code file into another.  Far too many PHP programmers use includes() as a type of function call rather than a means to reference a library.  This leads to all sorts of ambiguity in variable state and unstable code.  Replace this with a Perl-like 'use' command.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) please provide an &lt;em&gt;out of the box&lt;/em&gt; method of compiling a PHP application into a single distributable bytecode file or executable.  This will greatly enhance the appeal of PHP as a commercial development language.  This should be a basic component of the language.  Dont worry about the html files used for an application's GUI because...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) please get rid of the ability to embed PHP tags into HTML.  Or at least provide a 'no embed' mode.  This is an absolute mess and encourages bad design by mixing application logic and presentation together.  Developers should be using templates for display and not slapping PHP files together and hoping for the best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Signed,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;GrandmasterB&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ps: dont listen to what others here say, I've been nice all year&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-17T21:51:44.470" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="9" />
  <row Id="27613" PostTypeId="2" ParentId="27564" CreationDate="2010-12-17T21:54:21.993" Score="7" ViewCount="" Body="&lt;p&gt;I really missed that scalar types are not treated as objects, and real objects can not act like any other type or object (except for string due to __toString()).&lt;/p&gt;&#xA;" OwnerUserId="7308" LastActivityDate="2010-12-17T21:54:21.993" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="1" />
  <row Id="27614" PostTypeId="2" ParentId="27584" CreationDate="2010-12-17T21:55:11.583" Score="2" ViewCount="" Body="&lt;p&gt;As a Canadian, I &lt;em&gt;always&lt;/em&gt; use the US spelling for words in code.  After all, almost every language or framework is going to have some existing use of the words Color or Center, and you don't want to start being inconsistent by using Colour or Centre.  People might search for such words, or compound words using those base words, and you don't want to add extra confusion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, the user interface is a different story.  You always take the audience into account.  I try to use a resources file for all strings that are displayed to the user, so they could be swapped out with a different culture if necessary.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-12-17T21:55:11.583" />
  <row Id="27615" PostTypeId="2" ParentId="27600" CreationDate="2010-12-17T21:55:36.417" Score="7" ViewCount="" Body="&lt;p&gt;To test the actual user interface, &lt;a href=&quot;http://seleniumhq.org/&quot; rel=&quot;nofollow&quot;&gt;Selenium&lt;/a&gt; works well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want actual unit tests, your strategy is to push as much of the logic back from the actual user interface as possible, typically in a ViewModel object.  You can then write unit tests against the ViewModel object.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, put as little logic in the actual UI as possible, so that the unit testing can take place elsewhere.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-17T21:55:36.417" CommentCount="1" />
  <row Id="27616" PostTypeId="2" ParentId="27610" CreationDate="2010-12-17T21:59:51.117" Score="3" ViewCount="" Body="&lt;p&gt;For most governments it depends on the data. For instance, the US government is a huge organization that has probably millions of databases and each agency that lets their data be publicly accessible determines exactly what format(s) they will provide it in. I have gotten government data that was only an HTML page, csv files, pipe-delimited text files, flat files, Access databases, and on and on. Some agencies will send the data to you on request and others have to be manually picked up from their website. Some agencies are good about telling you they changed the format of their files and some, not so much. It really is like working with thousands of different clients to work with government data - it's not some huge monolith with everything provided the same way.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-17T21:59:51.117" />
  <row Id="27617" PostTypeId="2" ParentId="27610" CreationDate="2010-12-17T22:06:18.793" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://calgaryonlinestore.com/publicdata.asp&quot; rel=&quot;nofollow&quot;&gt;Public Data Catalogue&lt;/a&gt; would be Calgary's government data if you want a specific example though keep in mind that depending on what level of government you want the data may be in a different format.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-17T22:06:18.793" />
  <row Id="27618" PostTypeId="1" CreationDate="2010-12-17T22:11:11.800" Score="0" ViewCount="260" Body="&lt;p&gt;Reading &lt;a href=&quot;http://programmers.stackexchange.com/q/27324/2210&quot;&gt;this question&lt;/a&gt; made me think about something: It does not matter if the alphabets 'a' to 'z' are in any particular order -- the human mind remembers their individual positions as they are laid out on the keyboard, not how they follow within the alphabet. There have even been attempts at using layouts where the keys are laid out in alphabetical order. Needless to say, it wasn't much of a success.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the numbers on top &lt;em&gt;are&lt;/em&gt; in order (more precisely, increasing order). And they stay the same even in Dvorak (where the keys are laid out in such a way where the mostly typed characters have easiest access). In terms of programming, the numbers '0' and '1' are used far more than the others. Should they be on the strongest positions, i.e. in the middle where you can reach them with your index fingers (supposedly the &quot;strongest&quot; fingers, excluding the thumbs)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe it doesn't really matter, but should the same rule for alphabets apply to the numbers? Or would it actually be that not having them in order actually &lt;em&gt;does&lt;/em&gt; make their locations counterintuitive?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-12-18T17:50:52.213" ClosedDate="2010-12-18T13:28:47.223" Title="Why are the numbers in order on the keyboard when the alphabets are not?" Tags="&lt;keyboard&gt;&lt;keyboard-layout&gt;" AnswerCount="6" CommentCount="2" />
  <row Id="27619" PostTypeId="2" ParentId="19419" CreationDate="2010-12-17T22:12:10.897" Score="2" ViewCount="" Body="&lt;p&gt;For a comprehensive catalog of US government data and supported formats, look here: &lt;a href=&quot;http://www.data.gov/&quot; rel=&quot;nofollow&quot;&gt;http://www.data.gov/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-17T22:12:10.897" />
  <row Id="27620" PostTypeId="1" AcceptedAnswerId="27626" CreationDate="2010-12-17T22:13:04.073" Score="8" ViewCount="377" Body="&lt;p&gt;I have enjoyed what I have done in programming for the past two years, but I don't know if I can claim that I program. I write Ruby and a little C++ but I still haven't finished a proper project because what I enjoy most is learning the theory. Keep in mind that I'm only 15 and alot of my time is taken up by school (in which we don't study programming) but I'm greatly doubting that I am, in fact, a programmer, even a very beginner one. Would you say that I should stick at programming or give it up? &#xA;One thing that I really have problems with is the fact that I'm the only programmer I know and there is no-one I can discuss my ideas and designs with and that really bothers me. What are your suggestions on how I can drastically improve my will-power to program or look into a different field?&lt;/p&gt;&#xA;" OwnerUserId="8633" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-17T22:22:36.760" LastActivityDate="2010-12-18T05:54:22.153" ClosedDate="2010-12-18T13:33:54.710" Title="Is Programming For Me?" Tags="&lt;theory&gt;" AnswerCount="11" CommentCount="7" FavoriteCount="1" />
  <row Id="27621" PostTypeId="2" ParentId="27618" CreationDate="2010-12-17T22:17:54.697" Score="3" ViewCount="" Body="&lt;p&gt;The alphabetic layout of a QWERTY keyboard is somewhat arbitrary; it was arrived at by trial and error, apparently influenced somewhat by word-letter frequency.  It continues to be used today because &quot;that's how it's always been.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had always thought that the layout was deliberately designed to be inefficient, as the machines of the day could not handle really fast typing; however, that is not mentioned in the &lt;a href=&quot;http://en.wikipedia.org/wiki/QWERTY&quot; rel=&quot;nofollow&quot;&gt;Wikipedia article for QWERTY.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of note: The salespeople for the first typewriters could show off by typing the word TYPEWRITER using only the keys located on the second row.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-12-18T17:50:52.213" LastActivityDate="2010-12-18T17:50:52.213" CommentCount="6" />
  <row Id="27622" PostTypeId="2" ParentId="27618" CreationDate="2010-12-17T22:20:43.610" Score="1" ViewCount="" Body="&lt;p&gt;If you study texts (in some particular language, and this depends on the language as well) you will see that some letters have a higher frequency of showing up, than others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the contrary, if you take a randomized but large set of numbers, all numbers (digits) have pretty much all the same frequency of showing up, so sorting them in some particular (more used/less used) order would not make them more accessible.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-17T22:20:43.610" />
  <row Id="27623" PostTypeId="2" ParentId="27553" CreationDate="2010-12-17T22:24:11.137" Score="2" ViewCount="" Body="&lt;p&gt;@karmajunkie: Actually, the root meaning of 'Engineer' is 'to solve a problem'.&#xA;So 'Software Engineer' is actually the most appropriate title for anyone who solves problems via coding in some language. We generally don't regard 'programmers' as 'engineers' because programming is not considered a rigorous discipline where rules and sometimes laws (public or scientific)  dictate what can be done -- like architecture, electrical work, mechanical engineering, etc. Break the rules in these disciplines and there can be serious consequences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, the whole field of IT is still young compared to these and other disciplines. I would dare say many in the field aren't really 'engineers' in the deepest sense of having a passion to solve a problem. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally use 'Software Developer' only because it is easier to explain -- meaning you don't get into the 'engineer' debate. And 'develop' is a word that is understood -- it is usually associated with building or creating so it lends itself to defining what I do.&lt;/p&gt;&#xA;" OwnerUserId="10760" LastActivityDate="2010-12-17T22:24:11.137" CommentCount="3" />
  <row Id="27624" PostTypeId="2" ParentId="27620" CreationDate="2010-12-17T22:29:18.607" Score="8" ViewCount="" Body="&lt;p&gt;If you like programming, why not just continue to program as much or as little as you want? You're only 15, so there will be plenty of time later for labels such as &quot;programmer.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More good news: the fact that you're on this site means that you do, in fact, have people with whom you can discuss your ideas and designs (just not necessarily in the form of one of these questions). &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-17T22:29:18.607" />
  <row Id="27625" PostTypeId="2" ParentId="27620" CreationDate="2010-12-17T22:32:33.067" Score="2" ViewCount="" Body="&lt;p&gt;You are far too young to give up on any line of work, in my opinion. I didn't decide I wanted to be a professional programmer until I was in my mid 20's. Like you I was a hobbyist programmer up to that point. Though I did major in Computer Science in college (after two major changes in 3 years).&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-12-17T22:32:33.067" />
  <row Id="27626" PostTypeId="2" ParentId="27620" CreationDate="2010-12-17T22:34:53.923" Score="15" ViewCount="" Body="&lt;p&gt;A lot of us here knew that programming was for them by 15.  I know I did.  It's been what I wanted to do with my life ever since first stumbled across BASIC back in the third grade.  But if it doesn't come that naturally, that doesn't necessarily mean it's not for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not having people to study with isn't as big of a deal as it would have been back when I was your age.  The Internet is a whole lot bigger now.  High-quality free tutorials are only a Google search away, and over at StackOverflow.com you've got thousands of highly trained experts at your beck and call, eager to answer your questions and help you learn for no more reward than the chance to earn some reputation points.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for your question, &quot;I'm greatly doubting that I am, in fact, a programmer, even a very beginner one. Would you say that I should stick at programming or give it up?&quot; that's something that none of us can definitively answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At 15, I'd been playing around with code on and off for seven years, (not much serious study to be honest, since my computer access was severely limited more often than not by not having a computer at home,) and I was still barely a beginner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is just like any form of skilled work: you need years of seriously applying yourself to get proficient at it.  &lt;a href=&quot;http://norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;To be considered really good generally takes ten years.&lt;/a&gt;  As a kid who's been playing around a little for two years, of course you're not very good yet; no one would expect anything else.  Instead of asking yourself &quot;am I a good programmer,&quot; you should be asking two other questions.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&quot;How well do I understand what I'm learning?&quot;  A lot of people just don't get it.  Some very experienced developers and teachers of computer science theorize that there's an inborn aptitude for programming that some people have and others don't, and if you don't have it you'll never learn to be very good.  Whether or not that's true, there's a lot of learning to be done, and if the basics confuse you, get out now and you'll save yourself a lot of frustration.&lt;/li&gt;&#xA;&lt;li&gt;&quot;Do I like programming?&quot;  If you don't enjoy it, study something you do enjoy instead.  Do not under any circumstances go into programming because you heard it's a good way to make a lot of money.  It's a career path that requires a lot of effort, and it can be very stressful sometimes.  If you don't enjoy it, it won't be worth it.  Even the people who ended up really rich off programming didn't get started for the money.  They just started off with ideas for some fun project that they worked on for personal use, and then other people ended up liking the idea and wanting to get in on it, and eventually it turned into something huge.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-17T22:34:53.923" CommentCount="5" />
  <row Id="27627" PostTypeId="2" ParentId="27620" CreationDate="2010-12-17T22:43:49.887" Score="5" ViewCount="" Body="&lt;p&gt;I've been programming with c++ and other OOP languages for about 6 or 7 years now, professorially about 4 years -- and I still don't think I've &lt;em&gt;actually&lt;/em&gt; finished a project. I'm usually debugging legacy code, debugging bad code, or just re-writing a class I wrote last Monday.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being a programmer doesn't mean you're going to write the next Unreal engine or the next Facebook, it means that you will be solving a lot of problems, produce solutions, drink beer (when you're at age!) and have a moment of clarity that very few would understand when you finish something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't sell yourself short though, theres a &quot;sweet&quot; spot in which you want to set your goals high enough in that you're learning and being challenged, however you don't want to set them to high in that you have a shadow of doubt in which you will never reach status of &quot;master programmer&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It'll come one day, just stick with what you know, learn from your mistakes, and don't be afraid to ask for help!&lt;/p&gt;&#xA;" OwnerUserId="1834" LastActivityDate="2010-12-17T22:43:49.887" />
  <row Id="27628" PostTypeId="2" ParentId="27620" CreationDate="2010-12-17T22:46:14.260" Score="1" ViewCount="" Body="&lt;p&gt;Being just 15 you probably have too much interest going on at the moment to be able to narrow it down to a single topic like programming. Do not force anything, just keep doing what you ENJOY. In a few years time, you'll know if you want to do programming or something else, which is perfectly OK. And good luck with your future endeavors.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-17T22:46:14.260" />
  <row Id="27629" PostTypeId="1" AcceptedAnswerId="27631" CreationDate="2010-12-17T22:47:16.603" Score="10" ViewCount="616" Body="&lt;p&gt;Increasingly, I see people I respect either lashing out at C++, or lauding it for reasons that I care very little about.  I love it quite dearly for tiny things and big ones, things like SFINAE or templates as a whole, but I'm starting to become frightened of actually telling people that.  People think that the fact that I like templates means I'm an architecture astronaut, even if I use them for far more pragmatic purposes like keeping 400 lines of unmaintainable code from ever being written.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What has happened?&lt;br&gt;&#xA;Why has it happened?&lt;br&gt;&#xA;How do I avoid this stigma, if it is even real?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's important to clarify here.  I'm not trying to invite argument, I want to understand the root of this perspective, and of these kinds of feelings in general.  I'm not saying I'm right to love C++.  In fact, I worry that I am not, which drove me to post this.  When you see someone like Linus yelling furiously about the terrors of C++, you start to worry and to wonder.  I'm not sure this is a good subjective question, necessarily, but I think it might be an important one.  &lt;/p&gt;&#xA;" OwnerUserId="10011" LastEditorUserId="10011" LastEditorDisplayName="" LastEditDate="2010-12-17T23:13:48.787" LastActivityDate="2010-12-18T04:25:18.927" ClosedDate="2010-12-18T13:32:45.007" Title="I Love C++: Is this a sin?" Tags="&lt;software-engineering&gt;&lt;c++&gt;&lt;holy-war&gt;&lt;comparison&gt;" AnswerCount="9" CommentCount="12" FavoriteCount="1" />
  <row Id="27630" PostTypeId="2" ParentId="27620" CreationDate="2010-12-17T22:49:14.213" Score="1" ViewCount="" Body="&lt;p&gt;I did some programming when I was your age.  Then I spent college and grad school getting trained in physics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now what do I do most of the day?  I program!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So basically it's not something you need to decide right now, though if you're doing it now you probably at least like it a little bit.  That counts for a lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And keep visiting this site and the other StackExchange programming sites, especially StackOverflow.com.  There are a few hundred &lt;em&gt;thousand&lt;/em&gt; programmers' thoughts on programming in these places.&lt;/p&gt;&#xA;" OwnerUserId="5493" LastActivityDate="2010-12-17T22:49:14.213" />
  <row Id="27631" PostTypeId="2" ParentId="27629" CreationDate="2010-12-17T22:51:41.483" Score="11" ViewCount="" Body="&lt;p&gt;People love their favorite tools.  There's nothing wrong with that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're productive with C++.  That's a &lt;em&gt;good&lt;/em&gt; thing, not a sin.&lt;/p&gt;&#xA;" OwnerUserId="5493" LastActivityDate="2010-12-17T22:51:41.483" CommentCount="1" />
  <row Id="27632" PostTypeId="1" AcceptedAnswerId="27764" CreationDate="2010-12-17T22:56:05.910" Score="5" ViewCount="189" Body="&lt;p&gt;I'm looking at beginning some work on a cloud based application and I'd be interested to hear of anybody's experiences of pitfalls they have run into particularly from a design/architectural standpoint when working with cloud platforms. Are there any expectations that might change significantly from regular web development practice? Things that you wish you had been aware of before you got started or that might have influenced your choice of platform had you been aware of them? I realise there are significant differences between the different options out there, but I feel there are significant enough similarities to warrant asking this as a general question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any experiences with particular platforms would also good- it would be interesting to see whether others have found similar things happening on other platforms too...&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-12-18T15:24:01.100" Title="What are common pitfalls of Cloud Development that you have run into?" Tags="&lt;architecture&gt;&lt;cloud&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="1" />
  <row Id="27633" PostTypeId="1" AcceptedAnswerId="27635" CreationDate="2010-12-17T22:56:37.887" Score="5" ViewCount="223" Body="&lt;p&gt;What do you use when designing how everything in a program will work together? Do you use a program? Pencil and paper? A whiteboard? Your mind? And how do you represent these designs? UML? UML2? Something else?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if this isn't too broad, what do you usually define in your designs?&lt;/p&gt;&#xA;" OwnerUserId="9357" LastActivityDate="2010-12-18T09:08:08.830" Title="What to use for code design?" Tags="&lt;best-practices&gt;&lt;design&gt;&lt;object-oriented&gt;&lt;planning&gt;" AnswerCount="8" FavoriteCount="1" />
  <row Id="27634" PostTypeId="2" ParentId="27400" CreationDate="2010-12-17T23:02:15.900" Score="0" ViewCount="" Body="&lt;p&gt;It had been very important in my prior life as a supercompuer guru. Back then&#xA;I felt you didn't understand a machine until you had written at least several hundred lines of assembler, and tinkered with it trying to squeeze out performance. As very few programmers wanted to go that deep, it made me really indispensable. And I still have a common language when talking with HW designer types.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, really the need/benefit for this is mostly a couple of decades past. Between compiler advances, and advanced out of order execution HW there is very little scope for being able to play the hero by writing assembler any more. Although I think it useful to understanding how things work. I plan on teaching my kids (freshmen CS majors) to program in a very simplified assembler on a simple virtual machine, just so they have a feel for what goes on. Hopefully we can play with stuff like unrolling, software pipelining, caches, and prefetching, bottom loading etc. So at least they will know that at some level this stuff is going on.&lt;/p&gt;&#xA;" OwnerUserId="8890" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-12-17T23:21:13.083" LastActivityDate="2010-12-17T23:21:13.083" />
  <row Id="27635" PostTypeId="2" ParentId="27633" CreationDate="2010-12-17T23:09:35.810" Score="3" ViewCount="" Body="&lt;p&gt;I've had alot of success with just a whiteboard and Visio (or open office draw when I don't have Visio).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use Visio to draw out state diagrams, object relationship models, database designs. I usually just detail out the high level objects and their relationships to child objects using the &quot;Has A&quot; and &quot;Is A&quot; labels. I find that these types of diagrams help me in designing a flexible model that can be easily translated to objects and interfaces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The whiteboard is the perfect tool for getting your thoughts down on &quot;paper&quot; (per se), but it also allows for quick erasures because designs can change in a heartbeat. I would LOVE to work in an office with a smartboard (printable whiteboard) but they're very expensive and our company just can't afford it so we resort to taking pictures of the whiteboard and printing out the results.&lt;/p&gt;&#xA;" OwnerUserId="1274" LastActivityDate="2010-12-17T23:09:35.810" />
  <row Id="27636" PostTypeId="2" ParentId="27620" CreationDate="2010-12-17T23:10:40.540" Score="0" ViewCount="" Body="&lt;p&gt;Ell, if you have the passion and the aptitude and write code, that's enough - you're a programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For now, you could get involved in contributing code to some open-source projects. If you're willing to work on Linux and tone down your C++ to just C, I'd recommend starting &lt;a href=&quot;http://live.gnome.org/GtkLove&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; or &lt;a href=&quot;http://live.gnome.org/GnomeLove&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;. They'll be happy to have the help, there are email lists and IRC channels for discussing what you're doing, and there's an annual conference in Boston and another in Europe where you can meet cool people who won't care how old you are as long as you're friendly and contribute to the community. And you'll learn a lot. I didn't start working with those technologies until I'd been programming professionally for over 20 years, and it was an eye-opener for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also suggest you aim to get into one of the really great programming colleges or universities. You'll need really great grades in all your high school classes for the top-notch ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then when you take a class with a really knowledgeable, inspiring professor, you'll think you died and went to heaven.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-17T23:10:40.540" />
  <row Id="27637" PostTypeId="2" ParentId="27629" CreationDate="2010-12-17T23:17:58.890" Score="1" ViewCount="" Body="&lt;p&gt;Okay; so you love C++.  I am finding that I really love Python (after programming in PHP, C, and C++ for most of my programming career).  I really like C# and Vala, as well.  We like tools, operating systems, and programming languages that we are comfortable with.  There is nothing wrong with that at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd suggest that you not worry about what others will think of your choice of language/OS/toolchain and just use them and enjoy them.  Life's too short to worry about that sort of petty stuff...&lt;/p&gt;&#xA;" OwnerUserId="10029" LastActivityDate="2010-12-17T23:17:58.890" />
  <row Id="27638" PostTypeId="2" ParentId="27629" CreationDate="2010-12-17T23:27:19.653" Score="5" ViewCount="" Body="&lt;p&gt;I think the reason why liking C++ is considered a sin is because programming isn't an end unto itself.  You don't write code just to write code; you do it to produce a program that people will use.  And when people are using a program, they tend to have certain expectations of quality for it.  It's supposed to do what it says it will, do it reasonably quickly, and not have bugs or security holes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C makes writing high-quality code difficult.  It can be plenty fast, but it's far too easy to corrupt data or create bugs and security holes.  And C++ inherits all of C's flaws in those areas, plus it adds on several new layers of complexity and confusion that combine to make writing high-quality code more and more difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These days, with all the languages available, no matter what task it is you're trying to do, there's a better language available than C++, one that will make it easier to accomplish your task and produce a high-quality result.  This is why so many experienced developers consider using C++, especially for new projects, &quot;a sin.&quot;&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-17T23:27:19.653" CommentCount="3" />
  <row Id="27639" PostTypeId="2" ParentId="27553" CreationDate="2010-12-17T23:35:51.410" Score="2" ViewCount="" Body="&lt;p&gt;Software engineer is absolutely an appropriate title and does accurately describe what i do on a daily basis. By definition, I apply science and mathematics solve technical problems through code. There are no degree requirements to be an engineer, you are what you do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software developers should not be shy of the word Engineer. After all, it is a vital discipline that has been increasingly more important over the past two decades. an iPhone for example is an impressively engineered hardware device, but its of little use without equally brilliant software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that said though, I do prefer the term Developer when amongst my fellow developers or others that are in the know. However, outside of that world, i typically defer to Engineer since is a more commonly know discipline amongst the masses.&lt;/p&gt;&#xA;" OwnerUserId="10766" LastActivityDate="2010-12-17T23:35:51.410" />
  <row Id="27640" PostTypeId="2" ParentId="27633" CreationDate="2010-12-17T23:39:51.317" Score="2" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.gliffy.com/&quot; rel=&quot;nofollow&quot;&gt;gliffy&lt;/a&gt; and its browser based!!&lt;/p&gt;&#xA;" OwnerUserId="8217" LastActivityDate="2010-12-17T23:39:51.317" CommentCount="1" />
  <row Id="27641" PostTypeId="2" ParentId="27629" CreationDate="2010-12-17T23:41:38.070" Score="0" ViewCount="" Body="&lt;p&gt;It's not a sin is a &lt;strong&gt;blessing&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8217" LastActivityDate="2010-12-17T23:41:38.070" />
  <row Id="27642" PostTypeId="2" ParentId="27620" CreationDate="2010-12-17T23:45:04.443" Score="0" ViewCount="" Body="&lt;p&gt;One of my best friends had been doing some programming on the side when he was about 15 (sounds very similar to you).  Around that time he asked his parents to enrol him in an &quot;introduction to computer science&quot; class at our local university.  I think that this would help you with lots of the problems that you brought up.  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It would give you some guidance &lt;/li&gt;&#xA;&lt;li&gt;You could meet other people who are working on similar things&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also if you are planning on attending University you can start to get some of the requirements out of the way.  Most universities offer summer classes and many offer night classes.  You could see if you local school has anything like that.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My good friend who started doing some university classes while finishing high school is now going to Waterloo (arguably the best university in Canada for computer science).  He has over 60K in scholarships.  &lt;/p&gt;&#xA;" OwnerUserId="1364" LastActivityDate="2010-12-17T23:45:04.443" />
  <row Id="27643" PostTypeId="2" ParentId="27633" CreationDate="2010-12-18T00:01:13.697" Score="1" ViewCount="" Body="&lt;p&gt;mindmapping tools like mindnode for brainstorming and organizing thoughts,&#xA;Visio or Gliffy for organizing them into something formal and presentable,&#xA;Microsoft Word to writeup the text docs.&lt;/p&gt;&#xA;" OwnerUserId="6518" LastActivityDate="2010-12-18T00:01:13.697" />
  <row Id="27644" PostTypeId="1" AcceptedAnswerId="27672" CreationDate="2010-12-18T00:03:40.310" Score="8" ViewCount="259" Body="&lt;p&gt;I've been looking around lately, specifically at some of the MS tools that are available, and I'm noticing a big focus on designer tools and wizards. Not just for UI development but for everything.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Entity Framework has the modeller&lt;/li&gt;&#xA;&lt;li&gt;RIA Services has the DomainService wizard(s)&lt;/li&gt;&#xA;&lt;li&gt;Workflow has the whole workflow designer thingy... (I don't know, haven't really used it)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There's more, but I think you get the idea. There's lots of designer tools. Using some of these I find that:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;They complicate matters beyond the prescribed use cases&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(ie all of the tech demo videos)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been evaluating some of these technologies recently, and trying to work with them I end up having to dissect exactly what the designers, modellers and wizards are doing for me... otherwise I'm lost when I actually have to try to do something with whatever was created. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This ends up being a case where I have to fight the tool, or fight its output enough such that I could have just done the whole thing myself without it - and had a &lt;em&gt;much&lt;/em&gt; stronger understanding of what's going on. I find this particularly infuriating with the silverlight designer and RIA services domain service wizard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find myself asking &quot;What good is this tool if I have to figure out its inner workings or re-write half of its output in order to use it?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;They're not as fast&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The selling point of these tools is to increase productivity and this point may change over time using the tool, and doesn't necessarily apply to UI designers (though, in some cases it still does -&gt; I'm looking at you silverlight designer). I find that I can hack some code much faster than I can drag-and-drop, resize, move, whatever in a designer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The UI gets in the way of the model&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe this is just me, but when I am using anything reminiscent of a UML design tool I end up spending more time laying everything out so that my lines don't cross and so that I can see it all on the screen than modelling what I'm trying to achieve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;They're no fun&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Half of the reason that I code for a living is that I enjoy it. Clicking checkboxes and selecting comboboxes and then fixing everything that comes out isn't fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I don't appear to be alone&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The community seems to &lt;em&gt;not&lt;/em&gt; want these tools either. The best example I can think of at the moment is Entity Framework Code-First. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I ask:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Do designer tools &lt;em&gt;actually&lt;/em&gt; improve productivity?&lt;/li&gt;&#xA;&lt;li&gt;Are they fun-killers?&lt;/li&gt;&#xA;&lt;li&gt;Is 'the community' &lt;em&gt;actually&lt;/em&gt; asking for more designer tools, or are vendors just thinking we are?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2011-05-11T11:06:35.780" Title="Do designer tools degrade the programming experience?" Tags="&lt;productivity&gt;&lt;tools&gt;&lt;fun&gt;" AnswerCount="7" FavoriteCount="2" />
  <row Id="27645" PostTypeId="1" CreationDate="2010-12-18T00:09:29.367" Score="2" ViewCount="55" Body="&lt;p&gt;In my current job, I reverse communication protocols. Sometimes I need to reverse a key generation starting from a seed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you know any good online resource to get started in cryptanalysis and pseudorandom number generation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, next monday, I won't have to go to my boss and say &quot;I give up on this&quot;...&lt;/p&gt;&#xA;" OwnerUserId="87" LastActivityDate="2010-12-18T05:59:45.090" ClosedDate="2010-12-18T13:29:29.563" Title="Cryptanalysis resources" Tags="&lt;cryptography&gt;&lt;cryptanalysis&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="1" />
  <row Id="27646" PostTypeId="2" ParentId="27629" CreationDate="2010-12-18T00:10:58.383" Score="8" ViewCount="" Body="&lt;p&gt;You have discovered one of the most annoying things about computer nerds, they believe that their opinion is fact and will fight to the death (troll) anyone who disagrees. Torvalds is the king of this which is why I don't read anything he says anymore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software development is also extremely fad driven, ie. if you're not using the latest, greatest technology then you are a pariah. The 'C world' doesn't suffer this as badly as web development but it's still there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you're are happy, productive and making a living coding C++ then it doesn't matter what anyone else thinks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a big BUT though. You need to be aware of the limitations any the tool that you are using. Sure a lot of the C++ haters are just trolling but there is some substance to there complaints about it. You need to be informed about the choices you make.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I spent 10+ years as a commercial C++ developer and for most of that I too loved C++, it was a lot fun making the language do cool stuff. But as my experience grew and my perspective changed to be more economically focussed, the things that I loved C++ for became annoyances. It requires huge amounts of boiler plate code to do simple stuff, it's OO model is totally broken, there are really obscure corner cases that will bite you if you aren't carefully, etc, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So feel free to love C++ but be aware of it's limitations and you will be a better programmer.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-12-18T00:10:58.383" />
  <row Id="27647" PostTypeId="2" ParentId="27553" CreationDate="2010-12-18T00:12:29.443" Score="1" ViewCount="" Body="&lt;p&gt;There is no such thing as a software engineer. Software development isn't an engineering discipline.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-12-18T00:12:29.443" CommentCount="4" />
  <row Id="27648" PostTypeId="2" ParentId="27483" CreationDate="2010-12-18T00:14:03.937" Score="2" ViewCount="" Body="&lt;p&gt;I have the Nook Color and unfortunately it doesn't render source code very well when the books are in actual ebook formats.  But if they are in PDF format, then it is ok in landscape mode at the right zoom level.&lt;/p&gt;&#xA;" OwnerUserId="10774" LastActivityDate="2010-12-18T00:14:03.937" />
  <row Id="27649" PostTypeId="2" ParentId="27633" CreationDate="2010-12-18T00:15:46.307" Score="4" ViewCount="" Body="&lt;p&gt;A piece of paper and a pencil. &lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-12-18T00:15:46.307" CommentCount="1" />
  <row Id="27650" PostTypeId="2" ParentId="27633" CreationDate="2010-12-18T00:18:21.687" Score="0" ViewCount="" Body="&lt;p&gt;I use a whiteboard for working things out, and take a photo if I want to keep it for reference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To share with others, I draw it up with &lt;a href=&quot;http://www.simplediagrams.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.simplediagrams.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="437" LastActivityDate="2010-12-18T00:18:21.687" />
  <row Id="27651" PostTypeId="2" ParentId="27633" CreationDate="2010-12-18T00:19:09.503" Score="1" ViewCount="" Body="&lt;h2&gt;Fountain pen and ink on paper.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Currently: A &lt;a href=&quot;http://www.namiki.com/collections/pilotVanishingPoint_RA.php&quot; rel=&quot;nofollow&quot;&gt;Namiki Vanishing Point&lt;/a&gt;, some &lt;a href=&quot;http://www.noodlersink.com/&quot; rel=&quot;nofollow&quot;&gt;Noodlers ink&lt;/a&gt;, and a good bagasse (a smooth paper made from sugar cane pulp).&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-18T00:19:09.503" />
  <row Id="27652" PostTypeId="2" ParentId="27400" CreationDate="2010-12-18T00:20:30.797" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Isn't it more reasonable to focus on studying stuff related to your direction? Or is there a reason you should spend some time to learn the low-level basics anyway?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Answer:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;If you are not planning to change your direction to program embedded system there is no reason to learn assamble. Even thought that assembly is CPU depended you may learn some basics but your knowledge will be based on CPU architecture and instruction set for that CPU.&lt;/li&gt;&#xA;&lt;li&gt;Let say you code for Windows. If want to learn lower level than high level language that may benefit you current direction, I would recommend you to learn Windows I deep, Windows API, Windows memory management etc. Simply learn the OS/Platform you are coding.&lt;/li&gt;&#xA;&lt;li&gt;Improve your skills on your current high level language, such as memory management, garbage collection etc. If you want to go low level.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-18T00:20:30.797" />
  <row Id="27653" PostTypeId="2" ParentId="27644" CreationDate="2010-12-18T00:21:34.680" Score="2" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;I think it probably depends.  If you are a fairly inexperienced developer then using the design tools probably is more productive than typing it out.  I'm fairly certain that I was more productive in my early VB6 days using the designer than I would have been cranking it out by hand.  The other thing to consider is how does the technology (at least how the IDE presents it) lend itself to hand editing.  VB6 and .NET WinForms certainly don't (or rather you probably don't want to hand edit the &quot;generated&quot; code file (or portion of).  With WPF and ASP.NET I think that a fairly inexperienced developer will start with the designer but quickly graduate to editing the XAML/ASP directly.  Once you know what you are doing it's certainly faster to edit the markup directly.  Thinking back to EF v1.0, I had to edit the XML backing the designer and it sucked, I never could wrap my brain around it so I kept falling back to the designer.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Depends on if the markup is fun to work with.  WPF and ASP(.NET) can be fun.  VB6/WinForms - nope don't want to edit the generated code sections more than necessary.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I don't think the community does explicitly.  Although when learning something new the designer can make it easier to swallow in chunks of learning.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4819" LastActivityDate="2010-12-18T00:21:34.680" />
  <row Id="27654" PostTypeId="2" ParentId="27483" CreationDate="2010-12-18T00:25:11.777" Score="7" ViewCount="" Body="&lt;p&gt;Looking at the other answers, I see a lot of issues I've never come across when reading ebooks. I don't know if it's the ebooks I get, the readers I use, or the platforms I use, but I know I get much better results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[Aside: I have the Kindle, iBooks, and Google Books apps on both my iPhone and iPad. Given a choice, though, I use the freeware app &lt;a href=&quot;http://www.lexcycle.com&quot; rel=&quot;nofollow&quot;&gt;Stanza&lt;/a&gt;, which is simply &lt;em&gt;amazing&lt;/em&gt;.]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why I think tech ebooks are going to be around for the long haul:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;I'm expecting that, in the not-too-distant future, some colleges and universities will require their students to have iPads (or a similar devices). I think that higher-ed will have required texts available as ebooks both for purchase and as one-term rentals (most-likely scenario: rental with an option to buy at the end of the term).&lt;br/&gt;&lt;br/&gt;&#xA;I remember how, as a student, I had to buy and cart around a massive pile of books every quarter—and then try to re-sell them afterwards.  I would have loved to have been able to have one slim device to carry around with me instead of all those bricks. And that's not even mentioning the standing in lines at the student bookstore, swearing when the book I had to have was already sold out, or dealing with plummeting resale values—all of which will then be history.&lt;br/&gt;&lt;br/&gt;&#xA;You can't over-estimate the percentage of tech books that get sold into the education market.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Being able to annotate ebooks is great. Yes, I know I can do this on paper, but I never seem to have a pen/pencil around when I want one. And now I don't run out of room in the margins!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;With the Kindle app, I can be reading an ebook on my iPhone, and then come back home to my iPad and start reading right where I left off. The annotations go with me as well. I also like the &quot;popular highlights,&quot; which are annotations shared (anonymously) with others reading the same ebook. This is a very useful feature for tech books—if you're having trouble with an author's explanation of a topic, someone else may have annotated it for themselves with a clarification.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;While there are some poorly-formatted ebooks (tech and otherwise) out there, as time goes on, formatting is only going to get better and better. Part of the reason for the poor formatting is that publishers don't yet have a lot of ebook experience; over time, they'll either learn or get out of the business.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-12-18T00:25:11.777" CommentCount="4" />
  <row Id="27655" PostTypeId="2" ParentId="27633" CreationDate="2010-12-18T00:25:36.690" Score="0" ViewCount="" Body="&lt;p&gt;Combination of legal pads and white board for brainstorming and initial organization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use a UML tool (Enterprise Architect from Sparx) to capture the details and then generate a HTML or document report with a template.  I also capture the requirements and architecture in the UML tool so I get some nice traceability.  The code can be forward engineered from the design (although I usually reverse engineer the actual design from the code).  Any documentation can be generated from the UML.&lt;/p&gt;&#xA;" OwnerUserId="4819" LastActivityDate="2010-12-18T00:25:36.690" />
  <row Id="27656" PostTypeId="1" AcceptedAnswerId="27699" CreationDate="2010-12-18T00:27:38.300" Score="11" ViewCount="521" Body="&lt;p&gt;I am just graduating from a computer science degree (tomorrow is my last exam).  I have been thinking about job hunting this semester but I wanted to focus on my studies and part time job so I am a bit late on the job hunt.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to find a job in a city that I have very little professional network in.  &lt;strong&gt;How would you go about job hunting in a new city?&lt;/strong&gt;  I do not live there yet and I cannot easy go there so that makes finding places to apply a bit trickier.  Normally I would ask people that I studied and worked with but I have few contacts in the city I want to work in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where would you look to find jobs?  I have been using&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Craigs-list&lt;/li&gt;&#xA;&lt;li&gt;My Universities job listings (but they are mostly focused on the east coast)&lt;/li&gt;&#xA;&lt;li&gt;This government job listing page&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Anyone have any great job finding resources?&lt;/p&gt;&#xA;" OwnerUserId="1364" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2011-01-02T19:39:11.250" LastActivityDate="2011-01-04T04:22:59.990" Title="How to find entry level positions in a new city" Tags="&lt;career-advice&gt;&lt;job-market&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="8" />
  <row Id="27657" PostTypeId="2" ParentId="27644" CreationDate="2010-12-18T00:31:16.340" Score="0" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Do designer tools actually improve productivity?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They may as long as your project is &lt;em&gt;simple&lt;/em&gt; and not too complex for them. My experience you hit the wall as soon you try to implement/solve a real world problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Are they fun-killers?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;WF (Workflow) &amp;amp; WPF where fun but also killer when the VS 2008 crashed every 30min.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Is 'the community' actually asking for more designer tools, or are vendors just thinking we are?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many of tools released by MS lately seem to be desperate attempts to keep the developers. The battle is now going on in smart phone market. Who will win the hart of developers, MS, Google or Apple?&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-18T00:31:16.340" />
  <row Id="27658" PostTypeId="1" CreationDate="2010-12-18T00:31:34.827" Score="8" ViewCount="165" Body="&lt;p&gt;I am planning to use TDD a lot more than I do now. And I am also preparing a list of programming related books I want to read/work through next year. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are any of you making programming related resolutions for the coming year. Also, it would be nice if you could list your programming accomplishments for this year.&lt;/p&gt;&#xA;" OwnerUserId="3755" LastActivityDate="2010-12-18T05:49:42.393" ClosedDate="2010-12-18T06:00:46.060" Title="What are your programming related resolutions for the new year?" Tags="&lt;learning&gt;" AnswerCount="9" CommentCount="3" FavoriteCount="3" />
  <row Id="27660" PostTypeId="2" ParentId="27656" CreationDate="2010-12-18T00:43:02.137" Score="2" ViewCount="" Body="&lt;p&gt;Within Canada &lt;a href=&quot;http://www.workopolis.com/&quot; rel=&quot;nofollow&quot;&gt;Workopolis&lt;/a&gt; tends to be a good site to post one's resume or so I've found though I'm in Calgary so maybe Ontario may be different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thought would be the big contracting firms like Robert Half and other big IT firms may also work for finding jobs if you have some experience that may help in getting an initial foot in the door in a sense.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-18T00:43:02.137" />
  <row Id="27661" PostTypeId="1" AcceptedAnswerId="27676" CreationDate="2010-12-18T00:50:52.827" Score="2" ViewCount="176" Body="&lt;p&gt;I've been wondering for a while. I guess I have been adapting to the circumstances but I am in desperate need of some clearly defined workflows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ok, so say I am working with one other person and I have 2 projects come up both of equally large size with LOOSE deadlines. What should I do:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;a) turn down one, work on other&#xA;  exclusively &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;b) take both on and develop both&#xA;  simultaneously &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;c) assign one person to each project&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I have done c in the past which works fine. As a manager also, I've simply had to manage that project while I work on another. No big deal. But what is the ideal option above?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd hate to do a because I am turning down work either though deadline would permit working on both projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any input?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Following things should be taken into account:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;-) all members have same expertise in design &amp;amp; development and can&#xA;  effectively function as freelancers&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;-) timezones may not be the same so they would not be working at the same&#xA;  time&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="9682" LastActivityDate="2010-12-18T21:58:38.270" Title="as a team: multiple projects vs single project?" Tags="&lt;productivity&gt;&lt;web-development&gt;&lt;project-management&gt;" AnswerCount="3" />
  <row Id="27662" PostTypeId="2" ParentId="26650" CreationDate="2010-12-18T00:53:39.330" Score="0" ViewCount="" Body="&lt;p&gt;As an alternative to taking the Microsoft approach, take a look at the &lt;a href=&quot;http://manosdemono.net&quot; rel=&quot;nofollow&quot;&gt;Manos De Mono&lt;/a&gt; project.  Comes with a built in high performance web server.&lt;/p&gt;&#xA;" OwnerUserId="437" LastActivityDate="2010-12-18T00:53:39.330" />
  <row Id="27663" PostTypeId="2" ParentId="27658" CreationDate="2010-12-18T00:56:14.277" Score="0" ViewCount="" Body="&lt;p&gt;Resolutions for 2011&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;To learn to build RESTful WCF&#xA;Services&lt;/li&gt;&#xA;&lt;li&gt;To learn Ruby and Ruby-on-Rails&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Accomplishments for 2010&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learned how to work with ASP.NET MVC&lt;/li&gt;&#xA;&lt;li&gt;Built several apps for Windows Phone 7&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1351" LastActivityDate="2010-12-18T00:56:14.277" />
  <row Id="27664" PostTypeId="2" ParentId="27658" CreationDate="2010-12-18T01:01:28.883" Score="0" ViewCount="" Body="&lt;p&gt;In 2011 I'm going to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learn Entity Framework&lt;/li&gt;&#xA;&lt;li&gt;Begin using a continuous integration server&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This past year I:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learned LINQ&lt;/li&gt;&#xA;&lt;li&gt;Migrated from VSS to svn&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10352" LastActivityDate="2010-12-18T01:01:28.883" />
  <row Id="27665" PostTypeId="2" ParentId="27658" CreationDate="2010-12-18T01:05:30.530" Score="0" ViewCount="" Body="&lt;p&gt;Make a bigger better iOS app, actually planning before I start coding.&#xA;Look at Ruby &amp;amp; Python more.&#xA;Read some good books. Design Patters, etc&#xA;Start a Blog / Portfolio.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First and last are most important :}&lt;/p&gt;&#xA;" OwnerUserId="8641" LastActivityDate="2010-12-18T01:05:30.530" />
  <row Id="27666" PostTypeId="1" CreationDate="2010-12-18T01:07:37.283" Score="4" ViewCount="315" Body="&lt;p&gt;Perl and Python are often compared to each other (let's not forget Ruby), and almost always those discussions will come to the conclusion pretty much anything you can do in one or the other. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without going into that, I've noticed that Python however, is often used as an implementation language (uhmm, maybe the term here is incorrect technically - a language you use to, for example, enable some degree of scripting in a large application ... Tecplot, Rhinoceros etc.; these are from the scientific area; there are others surely) and Perl never (well, to my knowledge at least).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I was wondering - what makes Python more suitable for something like that? What particulars make a language more suitable to be implemented as part of a larger app. for scripting in general? Is it only that that wasn't so common 10 years ago (scripting in applications), and Python is just at its peak at the moment, ... or something else?&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-18T02:01:18.123" LastActivityDate="2010-12-18T06:59:30.437" Title="What makes Python more used as an implementation language than the others?" Tags="&lt;python&gt;&lt;scripting&gt;&lt;perl&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="1" />
  <row Id="27667" PostTypeId="2" ParentId="27629" CreationDate="2010-12-18T01:18:35.620" Score="5" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&quot;C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off.&quot;&lt;/em&gt;&#xA;-- Bjarne Stroustrup&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&quot;IMO, good C++ code is better than good C code, but bad C++ can be much, much worse than bad C code.&quot;&lt;/em&gt;&#xA;-- John Carmack&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I agree with John (and would even if he wasn't a programming god/rocket scientist). But you can understand why someone like Torvalds, whose universe revolves around open source collaboration, would want to avoid a worst case which is &quot;much, much worse&quot;. You might find it's your own leg getting blown off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think C is a lot more elegant than C++, but I can't imagine choosing it over over C++ for my own coding. I tend to use a lot of C's libraries over C++'s (streams in particular), but the extra tools and syntactical niceties of C++ are just too nice to give up.&lt;/p&gt;&#xA;" OwnerUserId="9167" LastActivityDate="2010-12-18T01:18:35.620" />
  <row Id="27668" PostTypeId="2" ParentId="27661" CreationDate="2010-12-18T01:33:25.290" Score="0" ViewCount="" Body="&lt;p&gt;With no team experience: Personally, I think b would be the worst choice as you each have to keep up with multiple projects, their requirements, recent changes, etc.  I guess it's really just a matter of preference, but I would work on one exclusively until it's done.  Then work on the other.&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-12-18T01:33:25.290" />
  <row Id="27670" PostTypeId="2" ParentId="27645" CreationDate="2010-12-18T01:45:11.300" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.nsa.gov/public_info/declass/military_cryptanalysis.shtml&quot; rel=&quot;nofollow&quot;&gt;Military Cryptanalysis&lt;/a&gt;, parts 1 through 4.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-12-18T01:45:11.300" />
  <row Id="27671" PostTypeId="1" CreationDate="2010-12-18T02:03:05.990" Score="1" ViewCount="166" Body="&lt;p&gt;Hello, &#xA;for the past 3-4 years I have only focused on JavaEE (Springsource) specific technologies. I have gotten pretty good at it and know my way around the stack. I have also gained considerable experience in ERP systems where the primary aim is to help business (ie non technical people) make or save money through use of IT. But currently I am under-employed (a graduate student and working for a startup)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I have a work opportunity coming up which requires me to work on some integration work in a larger city, but work in on PHP and Perl. Now I am no expert in these, in fact it's been ages since I coded in either. I will have to work to become good at both. And the domain is in network management (a totally differnt customer mind set)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I am getting job interviews (slowly) within my expert area.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I go for this job. I know that I will not be happy working in this but it could be a temporary thing while I look for some thing else. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: A recruiting company that I interviewed with for a Java position suggested this position to me, and I have clearly spelled out that PHP/Perl is not my cup of tea. They still think that this could be a good temp gig. I am not exactly dying for work, but full time salary would be nice for a change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What should I do? Stick my guns and become more sharp in J2EE or learn basic Perl/PHP only to leave it behind in 3-4 months.&lt;/p&gt;&#xA;" OwnerUserId="10784" LastEditorUserId="10784" LastEditorDisplayName="" LastEditDate="2011-03-21T09:26:35.040" LastActivityDate="2011-03-21T09:26:35.040" Title="Perl/PHP job (for a J2EE expert wanabe)" Tags="&lt;career&gt;&lt;java&gt;&lt;php&gt;&lt;jobs&gt;&lt;perl&gt;" AnswerCount="3" CommentCount="3" />
  <row Id="27672" PostTypeId="2" ParentId="27644" CreationDate="2010-12-18T02:05:45.707" Score="5" ViewCount="" Body="&lt;p&gt;My guess is that &lt;strong&gt;good&lt;/strong&gt; design tools do improve productivity and don't take away from &quot;fun&quot;.  However, it's only a guess because I have yet to come across a good design tool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally have not asked for design tools.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-18T02:05:45.707" CommentCount="2" />
  <row Id="27673" PostTypeId="2" ParentId="27483" CreationDate="2010-12-18T02:07:26.457" Score="1" ViewCount="" Body="&lt;p&gt;I've had a Kindle for a couple of years now (I got one just after they first came out).  I love it for reading fiction and mainstream non-fiction, but it doesn't handle technical material (figures, tables, program listings, etc.) very well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for this Christmas I've asked for a &lt;a href=&quot;http://www.amazon.com/Kindle-DX-Wireless-Reader-3G-Global/dp/B002GYWHSQ&quot; rel=&quot;nofollow&quot;&gt;Kindle DX&lt;/a&gt;, which has a much larger screen with 50% better contrast compared to my first generation device. If I get it, I still plan to use the smaller one for fiction and other light reading.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A number of technical books have been optimized for the DX.  O'Reilly now has &lt;a href=&quot;http://radar.oreilly.com/2010/09/when-we-first-started-selling.html&quot; rel=&quot;nofollow&quot;&gt;nearly 1000 books available&lt;/a&gt; for the Kindle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I've now had my new Kindle DX for a couple of months and love it.  The large screen makes all the difference when it comes to reading technical books.  PDF's display especially well -- I have been emailing all my PDF documents to my Kindle and read them there instead of on the PC.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastEditorUserId="2509" LastEditorDisplayName="" LastEditDate="2011-03-05T11:43:23.463" LastActivityDate="2011-03-05T11:43:23.463" CommentCount="2" />
  <row Id="27674" PostTypeId="2" ParentId="27658" CreationDate="2010-12-18T02:27:46.633" Score="0" ViewCount="" Body="&lt;p&gt;My resolution is to improve my vision by spending less time in front of a monitor, and exercising and drinking more.&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-12-18T02:27:46.633" CommentCount="2" />
  <row Id="27675" PostTypeId="2" ParentId="27644" CreationDate="2010-12-18T02:27:54.470" Score="1" ViewCount="" Body="&lt;p&gt;Same here, no design tool. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I design the database ERD on paper, and write a deployer that issues the &quot;create table&quot; statements, that way I can wipe and rebuild at will. Also helps for database versioning. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that 11x17 (A3) paper can be a great place to design very compelex systems. Get a good eraser and pencils (I prefer &lt;a href=&quot;http://www.staedtler.ca/graphite_pencils_accessories_ca.Staedtler?ActiveID=25007&quot; rel=&quot;nofollow&quot;&gt;Staedtler&lt;/a&gt;).&lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-12-18T02:27:54.470" />
  <row Id="27676" PostTypeId="2" ParentId="27661" CreationDate="2010-12-18T02:36:25.477" Score="1" ViewCount="" Body="&lt;p&gt;Like John said ... this is a matter of preference. If it were me I'd go after both projects because of the loose deadlines, but then again, at the time of this post, I'm in need of extra cash to do some foundation repair on my house so if I have to bust my hump on 2 projects (I.E. working a healthy amount of overtime) then I'll do it for the much needed cash. Sure juggling two projects is a headache but it's worth it in terms of profit and future business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This can also be a business building opportunity. If you get both projects and work overtime to get both of them done on time and budget, you'll impress the clients which could lead to more business and then you can hire extra devs to handle the increased workload.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once again, this is a matter of choice but if I were a small business I'd get input from the developers asking if they would mind putting in overtime (for some extra pay) and cranking out these two jobs in an attempt to further the business.&lt;/p&gt;&#xA;" OwnerUserId="1274" LastActivityDate="2010-12-18T02:36:25.477" CommentCount="2" />
  <row Id="27677" PostTypeId="2" ParentId="27629" CreationDate="2010-12-18T02:36:39.467" Score="0" ViewCount="" Body="&lt;h2&gt;If loving you is wrong, I don't wanna be right!&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;That's my attitude toward C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Great R&amp;amp;B/soul ballad from the early 70s.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Linus is a kernel-hacking god, and I respect him for that. But outside of that realm he's what's sometimes called a sidewalk supervisor: somebody who stands there watching people who know what they're doing while they work, making ignorant &quot;suggestions&quot; until they want to smack him.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-18T02:36:39.467" CommentCount="1" />
  <row Id="27678" PostTypeId="2" ParentId="24936" CreationDate="2010-12-18T02:37:02.277" Score="0" ViewCount="" Body="&lt;p&gt;My answer for this questions are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How do you figure out what can be&#xA;made concurrent vs. what has to be&#xA;sequential?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;First i need to know why should i use concurrency, because i have find out that people gets exited with the idea behind concurrency but not always think about the problem they are trying to solve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have to simulate a real life situation like queues, workflows, etc, you most likely will need to use a concurrent approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now that i know that i should use it, its time to analyze the trade off, if you have lots of proccesses, you may think about communication overhead, but if you have to new, may end up with no concurrent solution ( reanalize problem if so.)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How do you reproduce error conditions&#xA;and view what is happening as the&#xA;application executes?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm no expert on this matter but i think that for concurrent systems this is not the correct approach. A theoretical approach should be choosen, looking for  the 4 deadlock requirements on critical areas:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Non preemptiveness&lt;/li&gt;&#xA;&lt;li&gt;Hold and wait&lt;/li&gt;&#xA;&lt;li&gt;Motual exclusion&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Circular chain&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How do you visualize the interactions&#xA;between the different concurrent&#xA;parts of the application?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I try to first identify who are the participants in the interactions, then how do they communicate and with whom. Finally, graphs and interaction diagrams help me visualize. My good old whiteboard can not be beaten by any other kind of media.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-18T02:37:02.277" />
  <row Id="27679" PostTypeId="2" ParentId="27658" CreationDate="2010-12-18T02:37:54.617" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Going to learn Objective-C and coding on the Mac/iPad platform&lt;/li&gt;&#xA;&lt;li&gt;Try and pickup either Python or Ruby&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1274" LastActivityDate="2010-12-18T02:37:54.617" />
  <row Id="27680" PostTypeId="2" ParentId="27658" CreationDate="2010-12-18T02:42:32.150" Score="1" ViewCount="" Body="&lt;h2&gt;Resolutions for 2011&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learn Java &lt;/li&gt;&#xA;&lt;li&gt;Learn Doctrine for my    symfony apps&lt;/li&gt;&#xA;&lt;li&gt;Learn a bit more on    Software&#xA;Engeneering, mostly based on&lt;br&gt;&#xA;client side&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;Accomplishments for 2010&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learned how to work with symfony and&#xA;Propel MVC&lt;/li&gt;&#xA;&lt;li&gt;Made my firt applications with real user needs&lt;/li&gt;&#xA;&lt;li&gt;Dealed with lots of different kinds&#xA;of clients&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-18T02:42:32.150" />
  <row Id="27681" PostTypeId="2" ParentId="27671" CreationDate="2010-12-18T02:48:51.760" Score="3" ViewCount="" Body="&lt;p&gt;Unless you're in desperate need of more cash that the new job might offer, it seems that you have answered your own question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do not enjoy Perl/PHP and do enjoy J2EE then why would you want a job doing something you don't like to do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do what you love, you'll never have to work a day in your life.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-18T03:01:18.717" LastActivityDate="2010-12-18T03:01:18.717" CommentCount="2" />
  <row Id="27682" PostTypeId="1" CreationDate="2010-12-18T02:51:59.400" Score="7" ViewCount="332" Body="&lt;p&gt;Tools like &lt;a href=&quot;http://www.gimpel.com/html/pcl.htm&quot; rel=&quot;nofollow&quot;&gt;pc-lint&lt;/a&gt; or &lt;a href=&quot;http://www.programmingresearch.com/qac_main.html&quot; rel=&quot;nofollow&quot;&gt;QAC&lt;/a&gt; can be used to perform static code analysis on a code base.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience the static analysis often yields a huge amount of noise, i.e. warnings on things that are not real bugs but somehow violate one of the rules in a given rule set. Turning off certain rules (either for good in the rule set or via special comments in the code) can be a real cumbersome process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the real benefits of static code analysis?&lt;/p&gt;&#xA;" OwnerUserId="5646" LastActivityDate="2010-12-19T03:34:59.540" Title="What are the real benefits of static code analysis?" Tags="&lt;code-quality&gt;&lt;static-analysis&gt;" AnswerCount="7" FavoriteCount="1" />
  <row Id="27683" PostTypeId="2" ParentId="16070" CreationDate="2010-12-18T02:58:35.417" Score="0" ViewCount="" Body="&lt;p&gt;Programming abstractions are abstractions made by someone on a programatical element. Lets say you know how to build a Menu with it's items and stuff. Then someone saw that piece of code and thought, hey that could be useful in other kind of hireachy-like structures, and defined the Component Design Pattern with is an abstraction of the first piece of code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Object Oriented Design Patterns are quite a good example of what is abstraction, and i dont mean the real implementation but the way we should approach a solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, to sum up, programming abstraction is an approach that allows us understand a problem, it is the means to get something but it aint the real thing&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-18T02:58:35.417" />
  <row Id="27684" PostTypeId="2" ParentId="27553" CreationDate="2010-12-18T03:09:57.643" Score="3" ViewCount="" Body="&lt;p&gt;I couldn't help it... I was hungry and I wanted to add my two cents... :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you take this discussion out of context it greatly improves the clarity.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Sandwich Engineering - Determine the proper theories and elements required to build a sandwich&lt;/li&gt;&#xA;&lt;li&gt;Sandwich Developing - Determine the proper way to assemble the elements&lt;/li&gt;&#xA;&lt;li&gt;Sandwich Programming - Determine proper sequence, selection, and repetition of elements&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I would also like to say the person stating there is no such thing as a &quot;software engineer&quot; has never written anything substantial. Because then he would realize it requires not only engineering and discipline but “engineering discipline”.&lt;/p&gt;&#xA;" OwnerUserId="10791" LastEditorUserId="10791" LastEditorDisplayName="" LastEditDate="2010-12-18T22:25:45.750" LastActivityDate="2010-12-18T22:25:45.750" />
  <row Id="27685" PostTypeId="2" ParentId="27629" CreationDate="2010-12-18T03:12:28.390" Score="1" ViewCount="" Body="&lt;p&gt;It is neither the language nor the use of specific features that define bad coding, it takes a combination of language, feature and context to write sinful code. Furthermore it seems to take some code that is pretty dedicated to the task in order to actually make this a sin, it's easier in JavaScript, but that shouldn't surprise anyone.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Math.sin.thisisasin=function(){&#xA;    return this(1)==0.8414709848078965066525023216303&#xA;}&#xA;alert(Math.sin.thisisasin())&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Seriously though, it sounds like you need some confidence. Your own experience and judgement is invaluable, if you let other peoples opinions override it you have effectively given up on independent thought.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is not to say that other peoples advice is useless, good advice can be great for temporarily filling holes in your own experience, but don't let it stick around without questioning it's validity.&lt;/p&gt;&#xA;" OwnerUserId="8737" LastActivityDate="2010-12-18T03:12:28.390" CommentCount="2" />
  <row Id="27686" PostTypeId="1" CreationDate="2010-12-18T03:12:34.930" Score="15" ViewCount="680" Body="&lt;p&gt;What are useful metrics to capture for source code? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can metrics, like for example &lt;em&gt;(Executable?) Lines of Code&lt;/em&gt; or &lt;em&gt;Cyclomatic Complexity&lt;/em&gt; help with quality assurance or how are they beneficial in general for the software development process?&lt;/p&gt;&#xA;" OwnerUserId="5646" LastActivityDate="2011-02-28T23:19:47.007" CommunityOwnedDate="2011-02-28T23:19:47.007" Title="What are useful metrics for source code?" Tags="&lt;code-quality&gt;&lt;metrics&gt;" AnswerCount="16" CommentCount="2" FavoriteCount="3" />
  <row Id="27687" PostTypeId="2" ParentId="25067" CreationDate="2010-12-18T03:17:18.390" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.antipatterns.com/&quot; rel=&quot;nofollow&quot;&gt;AntiPatterns in Project Management&lt;/a&gt; is a wonderful list of ways to do things wrong.  It's a great list of things to avoid.  &lt;/p&gt;&#xA;" OwnerUserId="10696" LastActivityDate="2010-12-18T03:17:18.390" />
  <row Id="27688" PostTypeId="2" ParentId="16070" CreationDate="2010-12-18T03:21:34.073" Score="2" ViewCount="" Body="&lt;p&gt;It is a name given to peoples' propensity for noticing patterns.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-18T03:21:34.073" />
  <row Id="27689" PostTypeId="1" AcceptedAnswerId="27747" CreationDate="2010-12-18T03:28:20.150" Score="0" ViewCount="229" Body="&lt;p&gt;I'm currently working on a webscraper that is going to be processing about 2 million pages in total. But I'm not entirely sure how to benchmark it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently it processes about 100,000 pages in an hour at about 2mb/s.&#xA;It isn't saturating the the bandwidth of the server but I've tried a lot of ways to make it quicker but to no avail. CPU is running 50% or so on average.&lt;/p&gt;&#xA;" OwnerUserId="10794" LastActivityDate="2011-03-29T14:12:32.707" Title="What is a good speed for a webscraper?" Tags="&lt;web&gt;" AnswerCount="5" CommentCount="3" />
  <row Id="27690" PostTypeId="2" ParentId="27582" CreationDate="2010-12-18T03:30:16.873" Score="1" ViewCount="" Body="&lt;p&gt;I bet on something new(let us just call it M).&#xA;A meta language that is not compiled but translated in php/javascript/C#/...&#xA;We could acually wirte AJAX applications in one language:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//translates to a js method and a server sided script&#xA;public client String GetUsename(Token sessionToken, int userID){&#xA;    if(sessionToken.IsValid){ &#xA;    return this.Context.Users.First(x=&amp;gt;x.UserID = userID);&#xA;} &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Need support fo another language?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//tell the ide what class we port and which language we use&#xA;[port language('PHP') version('5.3')]&#xA;class System.IO.RemoteFile{&#xA;   //now that the parser knows your writting php code &#xA;  function Open($path)&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Of cause there are many obstacles to be overcome, but as perfomance is loosing more and more ground to development speed this is the logical consequence.&lt;/p&gt;&#xA;" OwnerUserId="10792" LastActivityDate="2010-12-18T03:30:16.873" />
  <row Id="27691" PostTypeId="2" ParentId="27682" CreationDate="2010-12-18T03:32:45.250" Score="4" ViewCount="" Body="&lt;p&gt;When starting out with a new language it's nice to have a coach. That's how I think of static analysis tools. I write a lot of javascript and in the beginning I picked up a few bad habits mainly because I was transferring some things from earlier languages. Javascript is pretty flexible so you can get away with pretty much anything but if I'd had jslint warning me about certain patterns I would have picked up better coding patterns right from the beginning instead of having to relearn stuff later on.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-18T03:32:45.250" />
  <row Id="27692" PostTypeId="2" ParentId="27686" CreationDate="2010-12-18T03:33:34.340" Score="3" ViewCount="" Body="&lt;p&gt;Since source code is simply a combination of sequence, selection, and repetition. If I were to describe the most optimal piece of software that we could ever reasonably expect to produce it would be as follows. Software with nearly 100% testing code coverage using the least amount of lines of code necessary to do the job and yet flexible enough to withstand changes.&lt;/p&gt;&#xA;" OwnerUserId="10791" LastActivityDate="2010-12-18T03:33:34.340" CommunityOwnedDate="2011-02-28T23:19:47.007" CommentCount="3" />
  <row Id="27693" PostTypeId="2" ParentId="27686" CreationDate="2010-12-18T03:35:00.003" Score="9" ViewCount="" Body="&lt;p&gt;Won't this &quot;source code metrics&quot; crap EVER die?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Raw source lines of code (SLOC) is the oldest, easiest, most basic metric there is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Halstead originally proposed a whole bunch of metrics.  Lots of people were having lots of fun writing measurement programs until some spoilsport did the obvious study, and demonstrated that each and every single Halstead metric was strongly directly correlated with SLOC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At that point, Halstead's metrics were abandoned, because SLOC is always easier to measure.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-12-18T03:35:00.003" CommunityOwnedDate="2011-02-28T23:19:47.007" CommentCount="3" />
  <row Id="27694" PostTypeId="2" ParentId="27686" CreationDate="2010-12-18T03:37:55.303" Score="14" ViewCount="" Body="&lt;p&gt;&quot;Measuring software productivity by lines of code is like measuring progress on an airplane by how much it weighs.&quot;- Bill Gates&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-18T03:37:55.303" CommunityOwnedDate="2011-02-28T23:19:47.007" CommentCount="4" />
  <row Id="27695" PostTypeId="2" ParentId="27618" CreationDate="2010-12-18T03:41:47.720" Score="0" ViewCount="" Body="&lt;p&gt;If you dig deeply into the history of the development of the typewriter, you will find that the QWERTY arrangement was specifically developed to SLOW DOWN touch typists, so they would type slowly enough to keep from jamming the early mechanical typewriters.  (Wikipedia is not that good a source for this kind of research, unfortunately.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That people can touch-type on that arrangement is some kind of commentary on the power of the human brain.  That there are arrangements that facilitate faster typing has been extremely well-known for decades (&lt;em&gt;cough&lt;/em&gt; Dvorak &lt;em&gt;cough&lt;/em&gt;), but the QWERTY keyboards were everywhere by the time Dvorak did his work.  (Dvorak and his students embarrassed the bleep out of the QWERTY manufacturers, by winning every typing speed competition they entered, until the rules were changed to require QWERTY keyboards.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm going to speculate that it wasn't necessary to slow down typists doing numbers, since people don't read digit strings as &quot;words&quot; and think of them as &quot;words&quot; to be touch-typed.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-12-18T03:41:47.720" />
  <row Id="27697" PostTypeId="2" ParentId="27682" CreationDate="2010-12-18T03:46:01.550" Score="2" ViewCount="" Body="&lt;p&gt;Static analyzers are basically machine-assisted code reviews. They'll point-out questionable areas that might be missed during regular testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, did the author really mean to make an assignment in this conditional?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (x = 1) {&#xA;    ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Or perhaps a rookie confuses lexical casting:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;char* number = &quot;123&quot;;&#xA;int converted = number;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Certainly static analyzers require tweaking. Then again, revision control, wikis, bug trackers, pretty printers and other tools require some set-up as well. The bigger the project, the better the reward for initial labor.&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-18T03:46:01.550" />
  <row Id="27698" PostTypeId="2" ParentId="24936" CreationDate="2010-12-18T03:47:25.300" Score="2" ViewCount="" Body="&lt;p&gt;To me is all about the data. Break your data right, and parallel processing is easy. All the problems with retention, deadlocks, and so go away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do know that this is not the only way to parallelize, but for me is far the most useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To illustrate, a (not-so-quick) story:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did work on a big financial (stock-market control) system on 2007 through 2009, and the processing volume of the data was very big. To illustrate, all calculations done to 1 single account of a client took about 1~3 seconds on their average workstation, and there were more than 30k accounts. Every night, closing the system was a big pain to the users (usually more than 6 hours processing, without any error-margin for them).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Studying the problem further revealed that we could paralelize the calculations among several computers, but we would still have a huge bottleneck on the old database server (an SQL 2000 server emulating SQL 6.5).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was pretty clear that our minimum processing packet was the calculation of single account, and the major bottleneck were the database server retention (we could see on the &quot;sp_who&quot;s several connections waiting to do the same processing). So the parallel process went like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) One single producer, responsible for either reading the database or writing on it, sequentially. No concurrency allowed here. The producer prepared a queue of jobs, for the consumers. The database belonged solely to this producer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Several consumers, on several machines. Each one of the consumers received a hole packet of data, from the queue, ready to calculate. Each deqeue operation is synchronized.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) After the calculation, each consumer sent back the data to an in-memory synchonized queue to the producer, in order to persist the data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There were several check-points, several mechanisms to assure the transactions were correctly saved (none was left behind), but the whole work was worth of it. In the end, the calculations spread among 10 computers (plus the producer/queue computer) took down the closing time os the whole system to 15 minutes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just taking away the retention problems caused by the poor concurrency management SQL 6.5 had gave us a big advantage. The rest was pretty much linear, each new computer added to the &quot;grid&quot; made the processing time down, until we reached the &quot;maximum efficiency&quot; of the sequential read/write operations on the database.&lt;/p&gt;&#xA;" OwnerUserId="9506" LastActivityDate="2010-12-18T03:47:25.300" />
  <row Id="27699" PostTypeId="2" ParentId="27656" CreationDate="2010-12-18T03:53:07.920" Score="9" ViewCount="" Body="&lt;p&gt;Some websites:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Use a search engine like &lt;a href=&quot;http://www.indeed.com/&quot; rel=&quot;nofollow&quot;&gt;Indeed&lt;/a&gt; or &lt;a href=&quot;http://www.simplyhired.com/&quot; rel=&quot;nofollow&quot;&gt;Simply Hired&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Follow social media sites; for example, Hacker News recently released their monthly &lt;a href=&quot;http://news.ycombinator.com/item?id=1957538&quot; rel=&quot;nofollow&quot;&gt;Who's Hiring&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;And of course, there's &lt;a href=&quot;http://careers.stackoverflow.com/&quot;&gt;Stack Overflow Careers&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Recruiters / head-hunters are tough since they usually expect candidates with experience, though it never hurts to ask.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, if you have a &quot;cool&quot; project that you can show off, like a mobile app or a webpage, post that on a social media site to get some exposure. Similarly if you run a blog, etc.&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-18T03:53:07.920" CommentCount="2" />
  <row Id="27700" PostTypeId="2" ParentId="27682" CreationDate="2010-12-18T03:53:41.210" Score="3" ViewCount="" Body="&lt;p&gt;I worked at a place that used a commercial static code analysis system called Coverity Prevent, and it was freaking amazing! It's really sophisticated and intelligent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We threw about 18 GB of both open-source and proprietary C and C++ code at it, and it would trace through the code paths and quickly find subtle bugs that would take a human forever to track down. It was also great at pinpointing things that would usually be Heisenbugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It ran every few days against our code base, and a nice feature was that we could tell it, &quot;This isn't really a bug,&quot; and it would remember that in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The gotcha is, Coverity is really expensive. They don't publish the costs, but I get the sense that for commercial projects, it starts in the hundreds of thousands of dollars per year. But it probably saved us having to hire a whole bunch of developers and QA staff, so on the whole our management seemed to think it was a good buy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having had that experience, I look quite favorably on static code analysis.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-18T03:53:41.210" CommentCount="1" />
  <row Id="27701" PostTypeId="2" ParentId="27582" CreationDate="2010-12-18T03:58:35.340" Score="0" ViewCount="" Body="&lt;p&gt;I would say that C will be one of the most widely studied and &quot;best bet&quot; languages even at the age of Web reign. The reason is that it teaches one to program well, be careful and most importantly, think about what they're doing. Even if it &lt;em&gt;didn't&lt;/em&gt; have many practical uses in the future, learning it would still be a highly recommended option. Things will get much more interesting when the Web is freed from the browser. When it is on the desktop, on the mobile devices, everything is in cloud... What will we use?&lt;/p&gt;&#xA;" OwnerUserId="10796" LastActivityDate="2010-12-18T03:58:35.340" />
  <row Id="27702" PostTypeId="2" ParentId="27686" CreationDate="2010-12-18T04:00:05.840" Score="5" ViewCount="" Body="&lt;p&gt;Take a look on Jeff's posts on the subject:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2006/09/a-visit-from-the-metrics-maid.html&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/2006/09/a-visit-from-the-metrics-maid.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2009/07/software-engineering-dead.html&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/2009/07/software-engineering-dead.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is an old, but good, post from Joel too, closely related to software metrics, and I strongly recommend its reading:&#xA;&lt;a href=&quot;http://www.joelonsoftware.com/items/2006/08/09.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/items/2006/08/09.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key point, for me, is this, quoting Jeff:&#xA;&lt;b&gt;&quot;Responsible use of the metrics is just as important as collecting them in the first place.&quot;&lt;/b&gt;&lt;/p&gt;&#xA;" OwnerUserId="9506" LastActivityDate="2010-12-18T04:00:05.840" CommunityOwnedDate="2011-02-28T23:19:47.007" CommentCount="1" />
  <row Id="27703" PostTypeId="2" ParentId="27618" CreationDate="2010-12-18T04:02:13.453" Score="2" ViewCount="" Body="&lt;p&gt;Everyone has heard the story of Qwerty being designed to slow typists down.  There's not necessarily any reason to believe this.  Consider this point:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;QWERTY was devised by Christopher&#xA;  Sholes, who began his&#xA;  typewriter-building experiments in&#xA;  1867. Sholes’s first keyboard used piano keys in a single row, with the&#xA;  letters in alphabetical order.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(from &lt;a href=&quot;http://webspace.webring.com/people/jm/malibu_malv/curse_qwerty.html&quot; rel=&quot;nofollow&quot;&gt;The Curse of Qwerty&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While that article asserts the same tired old story, I think it's far more likely that Sholes simply realized that three rows would work better than one, and sort of shoved the single row together into three.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look at your keyboard, after all.  Skipping A and B for the moment, you can easily type CDEFGHIJKL in sequence; they're still basically alphabetical.  Then you have MN and OP, below and above the right side.  Then you have some scattering of the remaining keys.  It's not necessary to suppose that an extraordinary amount of engineering and language analysis went into designing a layout like this.  It was merely a matter of squashing one long row of 26 keys down to three rows of 10, 9, and 7.&lt;/p&gt;&#xA;" OwnerUserId="3963" LastActivityDate="2010-12-18T04:02:13.453" />
  <row Id="27704" PostTypeId="2" ParentId="15002" CreationDate="2010-12-18T04:11:47.177" Score="-3" ViewCount="" Body="&lt;p&gt;Spend your time learning to think, solve problems, write code, and test. Everyone at one time or another has thought about having one of these... W.O.M.B.A.T's (Waste of Money, Brains, and Time). I wish good luck to JetBrains on their endeavor. However, almost without exception... everyone of these &quot;Meta&quot; languages have went the way of the dinosaur. A better way to spend your time... Write a program to autonomously drive a car that has a 99.999999% chance of arriving at the destination without an accident... :-) See now there is something that would put insurance companies out of business, make you some serious money, and solve one of the nations leading causes of death.&lt;/p&gt;&#xA;" OwnerUserId="10791" LastEditorUserId="10791" LastEditorDisplayName="" LastEditDate="2010-12-18T05:12:52.640" LastActivityDate="2010-12-18T05:12:52.640" />
  <row Id="27705" PostTypeId="2" ParentId="27584" CreationDate="2010-12-18T04:12:18.473" Score="0" ViewCount="" Body="&lt;p&gt;Canadian who uses colour and &quot;ise&quot; endings when writing prose here. When coding, I religiously adhere to the &lt;a href=&quot;http://en.wikipedia.org/wiki/Principle_of_least_astonishment&quot; rel=&quot;nofollow&quot;&gt;Principle of Least Astonishment&lt;/a&gt;. Whether we like it or not, US English is pretty much the &lt;em&gt;lingua franca&lt;/em&gt; of software development. I may use &quot;colour&quot; in the UI for Canadian users, but the API will always be &quot;color&quot; because just about anybody who will be using the API is going to expect &quot;color&quot;. &lt;/p&gt;&#xA;" OwnerUserId="2048" LastActivityDate="2010-12-18T04:12:18.473" />
  <row Id="27706" PostTypeId="2" ParentId="27483" CreationDate="2010-12-18T04:16:25.320" Score="3" ViewCount="" Body="&lt;p&gt;I use the Kindle app on an iPad pretty religiously. I have the Krug book that you'd mentioned (2nd ed.) and although I've yet to complete it, I've had no problems with  images or graphics so far. I also use iBooks quite a bit and have effectively rebuilt my O'Reilly library (not to shill, but they come out with some pretty good deals - and if you already own a dead-tree edition then the ebook only costs around $5). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's nothing quite like having an entire library of programming and reference materials at your fingertips. Occasionally you'll encounter a ebook that looks like it's been through the wringer. It's not too common but it happens. More recently it seems like I've noticed this less and less. I suppose that as the formats become a bit more standard and ubiquitous, and as the medium takes off, people seem to be putting more effort into generating better ebooks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm convinced that these little devices (Kindle, iPad, etc) are built for programming books. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: PDFs are generally a crapshoot in my experience. I have quite a collection on my device. Some a are good, most are adequate. Given a choice between a PDF and an ebook format I'd go with the ebook every time. &lt;/p&gt;&#xA;" OwnerUserId="10793" LastActivityDate="2010-12-18T04:16:25.320" />
  <row Id="27707" PostTypeId="2" ParentId="27629" CreationDate="2010-12-18T04:25:18.927" Score="3" ViewCount="" Body="&lt;p&gt;There are two kinds of languages: the kind which no one uses, and the kind which people complain about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ is particularly infuriating because it is both advanced and primitive. I have seen C++ code which compares favorably with well-written Lisp and Haskell - and I have written the &lt;em&gt;other&lt;/em&gt; kind.  The thing is, direct memory languages can do some really powerful things, and much of the time, it's not required to solve the problem at hand. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I'm going to go back to writing C for &lt;em&gt;hand-decoding variable-length instructions&lt;/em&gt;. &lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-18T04:25:18.927" />
  <row Id="27708" PostTypeId="2" ParentId="27483" CreationDate="2010-12-18T04:27:51.393" Score="1" ViewCount="" Body="&lt;p&gt;I can do with Ebooks even in PDF as long as I have a big screen - and my workstation is just fine for that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's much easier to search, jump to different sections and basically navigate the entire ebook compared to the physical counterpart. It also somehow feels less laborious than actually reading a fat physical book (at least to me!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only downside, is that I don't have a bookshelf to show off for the money that I have spent on them. &lt;/p&gt;&#xA;" OwnerUserId="8652" LastActivityDate="2010-12-18T04:27:51.393" CommentCount="1" />
  <row Id="27709" PostTypeId="2" ParentId="27686" CreationDate="2010-12-18T04:30:26.220" Score="4" ViewCount="" Body="&lt;p&gt;To the best of my knowledge, the number of bugs found directly correlates with lines of code (probably churn), modulo language, programmer, and domain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know of any other straightforward and practical metric well-correlated with bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing I'd like to do is start running the numbers for different projects I'm on - &#xA;Test Coverage :: kLOC, and then discuss &quot;perceived quality&quot; to see if there is a correlation.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-18T04:30:26.220" CommunityOwnedDate="2011-02-28T23:19:47.007" CommentCount="6" />
  <row Id="27710" PostTypeId="2" ParentId="27658" CreationDate="2010-12-18T04:43:43.627" Score="2" ViewCount="" Body="&lt;h1&gt;Resolutions for 2011&lt;/h1&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learn &lt;a href=&quot;http://www.scala-lang.org/&quot; rel=&quot;nofollow&quot;&gt;Scala&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Learn &lt;a href=&quot;http://clojure.org/&quot; rel=&quot;nofollow&quot;&gt;Clojure&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Get up to speed with &lt;a href=&quot;http://hadoop.apache.org&quot; rel=&quot;nofollow&quot;&gt;Hadoop&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Learn &lt;a href=&quot;http://mahout.apache.org&quot; rel=&quot;nofollow&quot;&gt;Mahout&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Get at least a little bit conversant with &lt;a href=&quot;http://couchdb.apache.org&quot; rel=&quot;nofollow&quot;&gt;CouchDB&lt;/a&gt;, &lt;a href=&quot;http://cassandra.apache.org&quot; rel=&quot;nofollow&quot;&gt;Cassandra&lt;/a&gt; and/or &lt;a href=&quot;http://hive.apache.org/&quot; rel=&quot;nofollow&quot;&gt;Hive&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Buy an &lt;a href=&quot;http://developer.android.com/index.html&quot; rel=&quot;nofollow&quot;&gt;Android&lt;/a&gt; based phone, and start learning to write Android apps&lt;/li&gt;&#xA;&lt;li&gt;Get started with &lt;a href=&quot;http://www.osgi.org/Links/BasicEducation&quot; rel=&quot;nofollow&quot;&gt;OSGI&lt;/a&gt; and &lt;a href=&quot;http://www.springsource.org/osgi&quot; rel=&quot;nofollow&quot;&gt;Spring Dynamic Modules&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There's other stuff I'd &lt;em&gt;like&lt;/em&gt; to do, but that stuff will probably take up what free time I have.  If there's room for anything else, I'd say:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learn &lt;a href=&quot;http://www.r-project.org/&quot; rel=&quot;nofollow&quot;&gt;R&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Learn &lt;a href=&quot;http://www.erlang.org/&quot; rel=&quot;nofollow&quot;&gt;Erlang&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Learn &lt;a href=&quot;http://www.haskell.org/&quot; rel=&quot;nofollow&quot;&gt;Haskell&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Learn &lt;a href=&quot;http://www.gprolog.org/&quot; rel=&quot;nofollow&quot;&gt;Prolog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;A lot of my &quot;resolutions&quot; for 2011, though, are not strictly programming related.  I want, for example, to go back through my old Calculus book, do a Calc refresher, and then try to teach myself linear algebra and differential equations, as well as more probability and statistics.  I'm also going to try to find some time to study formal logic a little more.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Accomplishments from 2010&lt;/h1&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Got a lot of experience with &lt;a href=&quot;http://groovy.codehaus.org&quot; rel=&quot;nofollow&quot;&gt;Groovy&lt;/a&gt; and &lt;a href=&quot;http://www.grails.org&quot; rel=&quot;nofollow&quot;&gt;Grails&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Learned to build RESTful web-services with &lt;a href=&quot;https://jersey.java.net&quot; rel=&quot;nofollow&quot;&gt;Jersey&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Learned a ton about &lt;a href=&quot;http://lucene.apache.org&quot; rel=&quot;nofollow&quot;&gt;Lucene&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Got a little into &lt;a href=&quot;http://developer.yahoo.com/yui/2/&quot; rel=&quot;nofollow&quot;&gt;YUI&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Learned at least the basics of &lt;a href=&quot;http://git-scm.com/&quot; rel=&quot;nofollow&quot;&gt;Git&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Got started with &lt;a href=&quot;http://www.jboss.org/hornetq&quot; rel=&quot;nofollow&quot;&gt;HornetQ&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Learned to setup and configure &lt;a href=&quot;http://hudson-ci.org/&quot; rel=&quot;nofollow&quot;&gt;Hudson&lt;/a&gt; for Continuous Integration.&lt;/li&gt;&#xA;&lt;li&gt;Learned a ton more about using &lt;a href=&quot;http://ant.apache.org/ivy/&quot; rel=&quot;nofollow&quot;&gt;Ivy&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Started learning &lt;a href=&quot;http://camel.apache.org/&quot; rel=&quot;nofollow&quot;&gt;Apache Camel&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7160" LastEditorUserId="7160" LastEditorDisplayName="" LastEditDate="2010-12-18T04:56:21.073" LastActivityDate="2010-12-18T04:56:21.073" />
  <row Id="27711" PostTypeId="2" ParentId="27666" CreationDate="2010-12-18T04:46:01.327" Score="5" ViewCount="" Body="&lt;p&gt;Python is pretty easy to embed and has good &lt;a href=&quot;http://docs.python.org/extending/embedding.html&quot; rel=&quot;nofollow&quot;&gt;documentation on how to do it&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, Python has a pretty approachable syntax, even for new users. Perl tends to have obtuse syntax making it less approachable for new users. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another common language for embedding is Lua. It is known to be fairly easy to embed and has low operating overhead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Python is well known and used in the Scientific community thanks to &lt;a href=&quot;http://www.scipy.org/&quot; rel=&quot;nofollow&quot;&gt;SciPy&lt;/a&gt; and &lt;a href=&quot;http://numpy.scipy.org/&quot; rel=&quot;nofollow&quot;&gt;NumPy&lt;/a&gt;, which may influence your particular observations.&lt;/p&gt;&#xA;" OwnerUserId="4277" LastActivityDate="2010-12-18T04:46:01.327" CommentCount="3" />
  <row Id="27712" PostTypeId="2" ParentId="27666" CreationDate="2010-12-18T04:50:43.617" Score="1" ViewCount="" Body="&lt;p&gt;The term you are after is &quot;embedded language&quot; or to be more verbose, &quot;application scripting language&quot; - &lt;/p&gt;&#xA;&#xA;&lt;p&gt;JavaScript and Python seem to be some of the most common of these, mainly due to the fact that there is a lot of support for embedding them, and their syntax is considered by many as simple and easy to learn.&lt;/p&gt;&#xA;" OwnerUserId="3787" LastActivityDate="2010-12-18T04:50:43.617" CommentCount="2" />
  <row Id="27713" PostTypeId="2" ParentId="27658" CreationDate="2010-12-18T04:58:45.003" Score="2" ViewCount="" Body="&lt;h1&gt;Resolutions for 2011&lt;/h1&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Continue learning Clojure&lt;/li&gt;&#xA;&lt;li&gt;Master Ruby, am currently an intermediate&lt;/li&gt;&#xA;&lt;li&gt;Use less Java (the language) for web development&lt;/li&gt;&#xA;&lt;li&gt;Release a full-scale application, which is already in the works&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2010-12-18T04:58:45.003" />
  <row Id="27714" PostTypeId="2" ParentId="27337" CreationDate="2010-12-18T05:03:21.363" Score="-1" ViewCount="" Body="&lt;p&gt;Advice: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;When you see a good move, look for a better one.&lt;br&gt;&#xA;  &lt;em&gt;~Emanuel Lasker~&lt;/em&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;A fool and his money are soon parted.&lt;br&gt;&#xA;  &lt;em&gt;~Thomas Tusser~&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="10791" LastActivityDate="2010-12-18T05:03:21.363" CommentCount="1" />
  <row Id="27715" PostTypeId="2" ParentId="19419" CreationDate="2010-12-18T05:04:31.720" Score="1" ViewCount="" Body="&lt;p&gt;Somebody asked pretty much &lt;a href=&quot;http://www.reddit.com/r/compsci/comments/e6ktk/what_are_the_best_free_data_sets/&quot; rel=&quot;nofollow&quot;&gt;the same question&lt;/a&gt; on Reddit Compsci a while back... here's what &lt;a href=&quot;http://www.reddit.com/r/compsci/comments/e6ktk/what_are_the_best_free_data_sets/c15twur&quot; rel=&quot;nofollow&quot;&gt;I had to say then&lt;/a&gt;.  I think it all still stands.&lt;/p&gt;&#xA;" OwnerUserId="7160" LastActivityDate="2010-12-18T05:04:31.720" />
  <row Id="27716" PostTypeId="2" ParentId="1454" CreationDate="2010-12-18T05:07:21.307" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.6wunderkinder.com/wunderlist/&quot; rel=&quot;nofollow&quot;&gt;Wunderlist&lt;/a&gt; is a nice, simple task manager. It's free to download, both for Windows/Mac and for iPhone. It's very simple - you can add tasks and put them in different mailboxes, set  due dates, and mark if they're &quot;Priority&quot;. It's a very bare bones task management, but it's nice because it's cross platform. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It works through the cloud, so no need to sync your phone specifically to your computer, and you can use it on multiple computers.&lt;/p&gt;&#xA;" OwnerUserId="10306" LastActivityDate="2010-12-18T05:07:21.307" />
  <row Id="27717" PostTypeId="2" ParentId="27620" CreationDate="2010-12-18T05:17:42.493" Score="0" ViewCount="" Body="&lt;p&gt;If it looks like fun, try it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's fun, keep doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's no longer fun, stop doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use these rules for most things.  I program for fun.  I'm lucky enough to get paid to do it too.&lt;/p&gt;&#xA;" OwnerUserId="10801" LastActivityDate="2010-12-18T05:17:42.493" />
  <row Id="27718" PostTypeId="2" ParentId="27472" CreationDate="2010-12-18T05:21:37.893" Score="2" ViewCount="" Body="&lt;p&gt;I'm guessing that you don't have a style guide. You should probably write one up and give it to everyone, including your veteran devs. You wouldn't risk hurting the new dev's feelings that way either, since you wouldn't be singling him out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lots of examples on Google: &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;source=hp&amp;amp;q=coding+style+guide&amp;amp;btnG=Google+Search&quot; rel=&quot;nofollow&quot;&gt;http://www.google.com/search?hl=en&amp;amp;source=hp&amp;amp;q=coding+style+guide&amp;amp;btnG=Google+Search&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6385" LastActivityDate="2010-12-18T05:21:37.893" />
  <row Id="27719" PostTypeId="1" CreationDate="2010-12-18T05:25:35.043" Score="2" ViewCount="161" Body="&lt;p&gt;eBooks are becoming a better alternative to PDF's for reading on an electronic device.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reading experience is, however, strongly influenced by the choice of reader program, and many exist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is your experience with program X on platform Y, and would you recommend it?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Edit:  This includes eBook reader programs on traditional computers.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-12-18T08:16:11.027" LastActivityDate="2010-12-18T08:16:11.027" ClosedDate="2010-12-18T12:21:10.113" Title="Which eBook reader program is to be recommended?" Tags="&lt;ebook&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="1" />
  <row Id="27720" PostTypeId="2" ParentId="27620" CreationDate="2010-12-18T05:27:13.473" Score="0" ViewCount="" Body="&lt;p&gt;I think you are asking yourself the wrong question, and even more is tackling a problem that doesn't exist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this stage of your life - you ought to follow school, hang out with your friends and find out what it is you enjoy doing in life besides that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you enjoy programming - then by all means, do program. If you don't, well then there's no point in doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know this all can sound a bit liberal, but really - this stage of your life is IMO all about finding out who it is you are. If you would rather learn how to ride a horse or sing in the church, then you should go try that instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What exactly, you will be making as a career choice later on, will hopefully become clearer once you've done what you enjoy a bit more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So all in all - is it fun, do you like solving problems this way? If so, go for it, and if not then I would stop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With all that said - by the fact that you are even here, asking this question and in this specific manner - you already sound like a programmer to me. You worry too much about things that doesn't really matter all that much and that no one else can see an issue in - just in the case of &quot;what if...&quot;.&lt;/p&gt;&#xA;" OwnerUserId="10802" LastActivityDate="2010-12-18T05:27:13.473" />
  <row Id="27721" PostTypeId="2" ParentId="27719" CreationDate="2010-12-18T05:29:38.877" Score="1" ViewCount="" Body="&lt;h1&gt;iBooks on iPhone&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;The rendering is crisp, but the display is too small in my opinion for comfortable reading over a longer period of time.  The iPhone can speak the contents out loud, in a good voice, if desired.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A minor annoyance is that just tapping doesn't go to the next page.  You need to swipe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would not recommend this combination for main reading, but it is ok as a backup lookup device.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-18T05:29:38.877" />
  <row Id="27722" PostTypeId="2" ParentId="19419" CreationDate="2010-12-18T05:33:19.903" Score="2" ViewCount="" Body="&lt;p&gt;New York City has a number of free &lt;a href=&quot;http://mta.info/developers/&quot; rel=&quot;nofollow&quot;&gt;MTA transit data feeds&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also a lot of other interesting public data sets in NYC such as restaurant health inspection data.&lt;/p&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-12-18T05:33:19.903" />
  <row Id="27723" PostTypeId="2" ParentId="27472" CreationDate="2010-12-18T05:33:39.170" Score="0" ViewCount="" Body="&lt;p&gt;Depends on how important it is to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might be discussed as part of a pair programming session where his mentor teach him how you do it in your place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, make the coding style automatic.  We use the &quot;reformat at each save&quot; facility in Eclipse, so the layout comes automatically and fixes most but the naming schemes.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-18T05:33:39.170" />
  <row Id="27724" PostTypeId="2" ParentId="27719" CreationDate="2010-12-18T05:36:43.907" Score="1" ViewCount="" Body="&lt;p&gt;Some of the guys at work have iPads and they like them. I have a Nook from Barnes and Noble. It works too. There is also a Kindle that some people like. From what I have seen... I would go with the cheapest. Although, the iPad is much more expensive it also has many more capabilities than just a eBook reader. However, if all you want to do is read an *.epub or *.pdf on the go... I like my Nook just fine.&lt;/p&gt;&#xA;" OwnerUserId="10791" LastActivityDate="2010-12-18T05:36:43.907" />
  <row Id="27725" PostTypeId="2" ParentId="27682" CreationDate="2010-12-18T05:38:47.430" Score="1" ViewCount="" Body="&lt;p&gt;In my previous company we have used the static analyzer by Parasoft. And it was believed within the team that at least 60% of the run time bugs were caught before compilation. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-18T05:38:47.430" />
  <row Id="27726" PostTypeId="1" AcceptedAnswerId="27732" CreationDate="2010-12-18T05:44:26.897" Score="17" ViewCount="788" Body="&lt;p&gt;I'm 17 and I've started programming and reading SE all day, every day.  I absolutely love it and want to program for a living, but how much is too much?  Is it unhealthy to sit at a computer all the time?  Is this just a phase?  Did this happen to you?  If so, what did you do about it?&lt;/p&gt;&#xA;" OwnerUserId="4971" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2011-04-14T17:27:41.033" LastActivityDate="2011-04-14T17:27:41.033" Title="Obsession, how much is too much?" Tags="&lt;health&gt;&lt;personal-traits&gt;" AnswerCount="16" CommentCount="8" FavoriteCount="4" />
  <row Id="27727" PostTypeId="2" ParentId="27682" CreationDate="2010-12-18T05:45:54.677" Score="0" ViewCount="" Body="&lt;p&gt;Because of the high false positive rate, you should not be using a static analysis tool (like lint or FindBugs) for each compilation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rather, it's a nice sanity check to consult &lt;strong&gt;once you have a bug and can't figure it out&lt;/strong&gt;. In that case, you can entertain the false positives, and you may have already narrowed down the possible sources of the error. For example, if you reproduce your bug without even executing some module, you can ignore what FindBugs says for them. This is particularly helpful when you are looking at a piece of code and &lt;em&gt;think&lt;/em&gt; it says one thing, whereas the compiler reads it literally (such as in Java when you have an &lt;code&gt;equals&lt;/code&gt; method that takes in the type of the class instead of &lt;code&gt;Object&lt;/code&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also have static analysis tools be a part of your development process: When a developer gets a code review, they should also run FindBugs on it. In short, it's useful, but you won't use it as often as the compiler or the text editor.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-18T05:45:54.677" />
  <row Id="27728" PostTypeId="2" ParentId="27658" CreationDate="2010-12-18T05:49:42.393" Score="0" ViewCount="" Body="&lt;p&gt;To spend less time on keyboard and more time on paper.  &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-18T05:49:42.393" />
  <row Id="27729" PostTypeId="2" ParentId="27726" CreationDate="2010-12-18T05:53:35.617" Score="0" ViewCount="" Body="&lt;p&gt;I myself spend at least 8 hours a day in front of the computer and sometimes more. Obsession is healthy if it causes you to do beneficial things. Yes, it is unhealthy to sit in front of a computer all the time and so is watching TV at least on the computer you mind might be engaged. I have no plans for changing my behavior but as with all things you will ultimately need to come to your own conclusions.&lt;/p&gt;&#xA;" OwnerUserId="10791" LastActivityDate="2010-12-18T05:53:35.617" />
  <row Id="27730" PostTypeId="2" ParentId="27620" CreationDate="2010-12-18T05:54:22.153" Score="0" ViewCount="" Body="&lt;p&gt;At 15 I too wasn't sure if I wanted to be a programmer or not, all I know is that I spent a lot of time trying to get my computer to do what I wanted it to do. I started with C++ actually, got a for dummies book that came with a compiler and wrote my first calculator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looking back, it was an absolutely horrible piece of code, but it was my first, and ever since getting that working I have just wanted to become a better and better programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately I think you are on the right track, you are already on the programmers stack exchange and I hope you are also on StackOverflow, even if it is to ask what you will later consider &quot;dumb&quot; questions, or just reading all of the questions and the answers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you know you are a programmer? When you strive to find a solution to a problem at all costs, with no regard to whether or not people are telling you it is possible or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck, you will find you calling in life, whether that is programming or not!&lt;/p&gt;&#xA;" OwnerUserId="10803" LastActivityDate="2010-12-18T05:54:22.153" />
  <row Id="27731" PostTypeId="1" AcceptedAnswerId="27738" CreationDate="2010-12-18T05:55:44.833" Score="2" ViewCount="90" Body="&lt;p&gt;I've been noticing a lot of ads for website &quot;designers&quot; (like on Craigslist) who mainly do the front-end type of work and use CMS systems like Wordpress and Joomla for light website work. I'm a &quot;real programmer&quot;, for lack of a better way to put it, not that I'm bragging but I mean that I spend all of my time working with code on custom web apps, etc and don't do graphic design, but I find it somewhat difficult to be as entrepreneurial as I would like to take on freelance projects from time to time but the clients are often concerned with the design. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm wondering if any programmers have had success partnering with designers to agree to take on projects that go outside of their scope as far as developing more custom apps than they would be able to with their CMS systems, etc. I can already see a lot of potential pitfalls in this but I think it could be a good way to be more in business for myself. I would appreciate anyone's input on this who has experience with this.&lt;/p&gt;&#xA;" OwnerUserId="10087" LastActivityDate="2010-12-18T07:45:38.207" Title="Partnering with web designers, graphic designers as a way to get freelance / contract work?" Tags="&lt;design&gt;&lt;business&gt;&lt;freelancing&gt;&lt;graphics&gt;&lt;programmers&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="27732" PostTypeId="2" ParentId="27726" CreationDate="2010-12-18T05:56:05.613" Score="34" ViewCount="" Body="&lt;p&gt;Are you &lt;em&gt;learning&lt;/em&gt;? If so, then I don't see what the problem is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, it's wise to practice moderation in all things, including moderation..&lt;/p&gt;&#xA;" OwnerUserId="37" LastActivityDate="2010-12-18T05:56:05.613" CommentCount="4" />
  <row Id="27733" PostTypeId="2" ParentId="27726" CreationDate="2010-12-18T05:56:47.293" Score="13" ViewCount="" Body="&lt;p&gt;I am 20, I program, I sit in front of the computer for 14+ hours most of the days, and I am sure this is &lt;strong&gt;not just a phase&lt;/strong&gt; for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll do this till my passion for Programming fades(which is unlikely to happen).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You spend so much of time thinking/learning Programming, that's infact very good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Follow your passion, that's what matters.&lt;/p&gt;&#xA;" OwnerUserId="4522" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-12-18T11:36:33.027" LastActivityDate="2010-12-18T11:36:33.027" CommentCount="13" />
  <row Id="27734" PostTypeId="2" ParentId="27726" CreationDate="2010-12-18T05:57:42.117" Score="0" ViewCount="" Body="&lt;p&gt;I work a standard job, and I am a programmer. I spend time in front of the computer while at work for at least 6 out of the 8 hours, and then when I get home I sit down in front of my computer again to spend another 4 or so hours that night in front of the computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do I consider it an obsession? A little bit, but it is also very beneficial, the amount of information I read helps me get better at my job and helps me challenge myself to do better and learn something new that I have not yet had any experience with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do spend time away from my computer though. I read books, I go to practice Kung Fu every other day, and I like to spend time walking around. All of those are mainly just for me to think more about what I have learned and to process the information I have just pilled into my brain.&lt;/p&gt;&#xA;" OwnerUserId="10803" LastActivityDate="2010-12-18T05:57:42.117" />
  <row Id="27736" PostTypeId="2" ParentId="27726" CreationDate="2010-12-18T06:14:42.127" Score="0" ViewCount="" Body="&lt;p&gt;You just described me, I too am 17 and plan on majoring in Computer Science in college. As Jeff said, as long as you are learning, there is no problem whatsoever. I learn at least one new thing a day just from lurking on StackOverflow/StackExchange. Whether it is a more efficient way to accomplish a task or some new framework or buzzword, I always learn something new and feel that I am making a good use of my time. I do balance it out with some other hobby to rest my eyes every hour or so.&lt;/p&gt;&#xA;" OwnerUserId="7682" LastActivityDate="2010-12-18T06:14:42.127" />
  <row Id="27737" PostTypeId="2" ParentId="27726" CreationDate="2010-12-18T06:19:47.893" Score="0" ViewCount="" Body="&lt;p&gt;It's only unhealthy if you're not putting the time you've spent on programming and reading SE sites to good use. You should try reading my question &lt;a href=&quot;http://programmers.stackexchange.com/q/10410/500&quot;&gt;here&lt;/a&gt;. It's kind of similar to yours :)&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-12-18T06:19:47.893" />
  <row Id="27738" PostTypeId="2" ParentId="27731" CreationDate="2010-12-18T06:20:29.877" Score="2" ViewCount="" Body="&lt;p&gt;&quot;Web Designers&quot; are technical artists. You are a programmer interested in how the site peforms while they are interested in how it looks and interacts with the user. I suggest looking at their portfolios. Do you like how they make sites look? Do they have a style that fits what you are looking for? If they don't have one. It may be a sign they aren't very seasoned. Also, many web designers have little knowledge of the time that is required in programming. I have found them very flakey and they often concieve of things well beyond what can be delivered because it isn't them who have to make the stuff work. However, you should pay some attention to what they say as they are closest to your target audience and the manner in which people percieve your site carries a lot of weight.&lt;/p&gt;&#xA;" OwnerUserId="10791" LastActivityDate="2010-12-18T06:20:29.877" CommentCount="2" />
  <row Id="27739" PostTypeId="2" ParentId="27726" CreationDate="2010-12-18T06:21:42.043" Score="0" ViewCount="" Body="&lt;p&gt;If you want to be a GOOD programmer, you need to learn very much, so definitely you will spend a lot of time to facing computer. Many people have this phase, spend 12+ hours per working day, event in weekend. If you have interesting on this, you do so as well. Otherwise, learn enough knowledge, and start working, until you need to learn more. Or you can find a job which needn't to refresh knowledge so frequently.&lt;br&gt;&#xA;BTW: The phase maybe persistent a very long time, depend on how much things you want to learn and do. &#xA;My suggestion is(for normal human) :&lt;br&gt;&#xA;14+ hours per working day is too much.&lt;br&gt;&#xA;12+ hours per working day is more or less acceptable, but should NOT persistent more than 5 days.&#xA;10+ hours per working day is OK.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A general rule is : If it harms to your health, that's too much.&lt;/p&gt;&#xA;" OwnerUserId="9395" LastEditorUserId="9395" LastEditorDisplayName="" LastEditDate="2010-12-18T06:29:37.033" LastActivityDate="2010-12-18T06:29:37.033" CommentCount="1" />
  <row Id="27740" PostTypeId="2" ParentId="27726" CreationDate="2010-12-18T06:36:15.547" Score="3" ViewCount="" Body="&lt;p&gt;Its probably just a phase. I did this when I first started getting into programming as a career. I was in kind of a bad situation with my career at the time and had some technical exposure before and liked it but just had never tried programming. I threw myself into it and basically worked non-stop (didn't have a job at the time) consuming tutorials, building things, etc.. I did this for probably 3 months where I would do it 16 hours a day. Basically, I wanted to get myself up to being on par for an entry level programming job and I finally did by getting some telecommute freelance work then a few months later I landed a part-time job with a regular web application company as a programmer... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After I started getting paid for it, I drastically cut down the time I spent just working on personal projects and my life is back to fairly normal now.. you should only do that sort of thing for a little while, such as when you're trying to make a real push into getting familiar with the paradigms of programming. Once you become familiar with design patterns and the basics, learning new things comes easier and can be done through reading, etc not just trial and error types of things. But doing a lot of programming work at first will give you confidence in your abilities to get a career started.&lt;/p&gt;&#xA;" OwnerUserId="10087" LastActivityDate="2010-12-18T06:36:15.547" CommentCount="1" />
  <row Id="27741" PostTypeId="2" ParentId="24574" CreationDate="2010-12-18T06:38:48.007" Score="0" ViewCount="" Body="&lt;p&gt;The future is likely a higher level of abstraction/framework.  Scala/Clojure on server and JS+markup client.  The future on the server is highly parallel and implicitly typed (not the huge legacy painful frameworks from Java/.NET).&lt;/p&gt;&#xA;" OwnerUserId="2176" LastActivityDate="2010-12-18T06:38:48.007" CommentCount="1" />
  <row Id="27742" PostTypeId="2" ParentId="27666" CreationDate="2010-12-18T06:49:49.057" Score="2" ViewCount="" Body="&lt;p&gt;If you're talking specifically about application scripting, it may simply be that Python is more approachable than Perl to a casual programmer, and thus the developer of the application decides Python would be a better experience for the application's users.  Lets face it, Perl, while powerful, can be... cryptic... at times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;VBScript is also used a lot in Windows applications for this reason.  Its something end users, not programmers, can cobble a small script together in without too much trouble.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-18T06:49:49.057" CommentCount="1" />
  <row Id="27743" PostTypeId="2" ParentId="27666" CreationDate="2010-12-18T06:59:30.437" Score="1" ViewCount="" Body="&lt;p&gt;Python is easy to embed in C programs and it is easy to add C modules to python.  Python has a lot of inroads in scientific computing with sci.py and numpy, so it is a natural fit for scientific apps.&lt;/p&gt;&#xA;" OwnerUserId="8464" LastActivityDate="2010-12-18T06:59:30.437" CommentCount="2" />
  <row Id="27744" PostTypeId="2" ParentId="27618" CreationDate="2010-12-18T07:02:38.010" Score="0" ViewCount="" Body="&lt;p&gt;All the above are sort of on the money without explaining exactly WHY.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Qwerty layout was designed for English. (Look at a French, German, etc, keyboard and you will see a range of differences).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The early, and in fact all, mechanical typewriters made up until they stopped making them use a flying letter - basically like a punch on the end of a long lever, which in turn is attached to the keyboard key.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of these are arranged to end up stamping through a ribbon onto the paper, and therefore all of these much end up &quot;punching&quot; through the ribbon at the same physical place. So when a key is pressed and held the punch is in the one and only place. It follows that you can't hold 2 keys at the same time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now the issue with this is that the TIME for the punch to fly up, strike the ribbon and fall back again will be much the same irrespective of which letter is being pressed. Press a sequence of keys too fast, and there will be the inevitable collision of punches at the point where they want to strike the ribbon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The keyboard was therefore layed out to make it slower to type than might otherwise be the case in order that the keys didn't jam. The nature of the beast was such that the mechanical arrangement itself made no difference to the time the punch is flying, so the only variable remaining to to control the (human) operator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's an apocryphal story that Qwerty was also designed to make if more difficult for females to type and this drive them away from using the newfangled machine. This story has far less credence than the mechanical issue jammed keys.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-12-18T07:02:38.010" />
  <row Id="27745" PostTypeId="2" ParentId="27618" CreationDate="2010-12-18T07:18:43.467" Score="1" ViewCount="" Body="&lt;p&gt;Actually, Sholes' design &lt;a href=&quot;http://home.earthlink.net/~dcrehr/whyqwert.html&quot; rel=&quot;nofollow&quot;&gt;allowed typists to type faster&lt;/a&gt; by avoiding collisions between typebars. Yes, there would still be an absolute limit on the minimum time between keypresses, but by moving frequent letter-pairs farther apart, the part of the typebar travel arc where collisions could occur was lessened. If, say, the &quot;t&quot; and the &quot;h&quot; were side-by-side, they would have to occupy essentially the same space for almost all of their travel time, so you'd have to wait until the &quot;t&quot; had completely retracted to its rest position before hitting the &quot;h&quot;. Yes, it was harder to learn than a straight-alphabetical arrangesment would have been, and much less efficient than anything that a ball, daisy-wheel or purely electronic application can deal with (Dvorak on an old manual typewriter would have been a disaster). &lt;/p&gt;&#xA;" OwnerUserId="2048" LastActivityDate="2010-12-18T07:18:43.467" />
  <row Id="27747" PostTypeId="2" ParentId="27689" CreationDate="2010-12-18T07:37:51.370" Score="2" ViewCount="" Body="&lt;p&gt;That means you can get a fresh copy of every page roughly every day? Is that fast enough for you? If it's not, profile and improve.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-18T07:37:51.370" CommentCount="1" />
  <row Id="27748" PostTypeId="2" ParentId="27731" CreationDate="2010-12-18T07:45:38.207" Score="0" ViewCount="" Body="&lt;p&gt;When you develop websites, most customers want those to look good. Many of them want more than their logo on to be happy. Most programmers are crappy designers, so yes, then you should partner with a designer whose work you like and whom you can communicate with. It's not harder or different that cooperating with any other non-programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And don't stop there. If you are designing a UI from scratch, find a usability expert early in the project to help you make the web application user-friendly. That's also something programmers are bad at.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also not a bad idea to find a technical write to write the documentation, if you have that. Not all customers care about getting manuals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short: Let the experts be experts in their fields, and you can concentrate on programming. The end result gets better that way.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-18T07:45:38.207" CommentCount="1" />
  <row Id="27749" PostTypeId="1" AcceptedAnswerId="27796" CreationDate="2010-12-18T07:57:10.387" Score="0" ViewCount="201" Body="&lt;p&gt;Are there specific things that you look out for before getting the team into pair programming? Obviously pairing someone who's great with C++ with another who knows ASP.NET best won't get me far, but how about someone who's great with C++ with another who knows Java best but can pick up C++ quick enough? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What else? Experience levels? Character traits? &lt;/p&gt;&#xA;" OwnerUserId="8720" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-12-23T17:45:35.857" LastActivityDate="2010-12-23T17:45:35.857" Title="Deciding factors in pair programming" Tags="&lt;productivity&gt;&lt;programming-practices&gt;&lt;agile&gt;&lt;pair-programming&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="1" />
  <row Id="27750" PostTypeId="2" ParentId="27719" CreationDate="2010-12-18T07:59:28.597" Score="1" ViewCount="" Body="&lt;p&gt;I have a Kindle (2nd Gen) but find the screen too small and the page navigation too inconvenient for programming texts though I have no problem with just normal reading on it. So I use the Kindle for Mac application for reading programming ebooks on my MBP to take advantage of the bigger screen size. If given a choice I'd choose the ebook format (mobi, epub, ect...) over PDF. Not sure why exactly, only something about the PDF presentation makes it a secondary choice as an ebook format for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The latest version of the Kindle app allows bookmarks, annotations, highlights, and notes which I find to be more than adequate for my markup needs. Reading is fairly comfortable as far as reading on computer screens go. And when a fully functioning table of contents and index is included in the ebook then I find jumping around to various sections to be tolerable though not completely satisfactory. I think this is where the iPad has an advantage because I've heard it's touch interface allows more natural movements to thumb around a book like you do with a real one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also like to add that along with the reading experience, I find the cheaper cost and instant availability of programming ebooks to have directly contributed to me expanding my programming knowledge lately. As an embedded C and Python programmer, I find it unlikely I ever would have gone out and bought a dozen books covering Ruby, Haskell, Android, Cocoa, C#, ARM and MIPS architectures in the last four months if I had to pay dead-tree pricing and actually had to go out and get them at a bookstore.&lt;/p&gt;&#xA;" OwnerUserId="10810" LastActivityDate="2010-12-18T07:59:28.597" CommentCount="1" />
  <row Id="27751" PostTypeId="2" ParentId="27719" CreationDate="2010-12-18T08:02:23.440" Score="2" ViewCount="" Body="&lt;h2&gt;iPad&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I've got both an iPhone 4 and an iPad, and have used several e-reading apps on them. What's great about the iPhone/iPad in contrast with the specialized e-readers is that you've got access to many different solutions/bookstores. Some books might only be available for the Kindle, then you've got the Kindle app. PDF's look great in iBooks, and general .epub files I usually read in Stanza. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've read a lot of fiction on my iPhone, but find the screen too small for texts with code in them. The iPad handles those beautifully.&lt;/p&gt;&#xA;" OwnerUserId="4389" LastActivityDate="2010-12-18T08:02:23.440" />
  <row Id="27752" PostTypeId="2" ParentId="27749" CreationDate="2010-12-18T08:13:39.547" Score="1" ViewCount="" Body="&lt;p&gt;Heh, since my experience on the subject is merely theoretical and I haven't actually got any first-hand experience of any agile development methods, I'll still throw my thoughts to the mill. I would believe that the best outcome from pair programming would be in such situations where the two programmers have a slight difference in their experience and skill levels and have been working in slightly different areas. The &quot;writer&quot; should have less experience than the &quot;reader&quot; to utilize the teamwork the best way. The reason is that the &quot;writer&quot; gets to learn and become much more confident with his/her code and the &quot;reader&quot; gets to share his/her experience to benefit the team and the project. At no point should they feel unequal though; I would imagine that if the &quot;reader&quot; feels less experienced and somewhat lost, then his/her efforts won't be used to their full potential. Active switching of roles, both being able to give and acquire constructive feedback is the key; it's useless to try to pair persons who can't get along that well.&lt;/p&gt;&#xA;" OwnerUserId="10796" LastActivityDate="2010-12-18T08:13:39.547" CommentCount="2" />
  <row Id="27753" PostTypeId="2" ParentId="9539" CreationDate="2010-12-18T08:13:47.550" Score="1" ViewCount="" Body="&lt;p&gt;Embedded programmers will still be coding in C, &lt;em&gt;maybe&lt;/em&gt; C++. ;) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And us crusty old-hands will still be telling newer programmers just getting into embedded architectures to 'read the assembly' to learn it.&lt;/p&gt;&#xA;" OwnerUserId="10810" LastActivityDate="2010-12-18T08:13:47.550" />
  <row Id="27754" PostTypeId="2" ParentId="27689" CreationDate="2010-12-18T08:25:30.513" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What is a good speed for a webscraper?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's impossible to answer.  It depends on many things; e.g. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How rate at which the site you are scraping can (or is willing to) handle your requests.&lt;/li&gt;&#xA;&lt;li&gt;The effective network latency and bandwidth when fetching web pages.&lt;/li&gt;&#xA;&lt;li&gt;How much work your machine has to do to process each scraped page and record the information you extracted.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you are running at 50% CPU, you may be able to do better, or you may not.  For instance, if your requests are being throttled / limited by the remote server, or if that's as fast as it can go, then you are stuck.  If you are running into network latency / bandwidth issues then you may need to upgrade your network connection ... or move to a data centre that is nearer the site you are trying to scrape.&lt;/p&gt;&#xA;" OwnerUserId="172" LastEditorUserId="172" LastEditorDisplayName="" LastEditDate="2010-12-19T06:47:54.197" LastActivityDate="2010-12-19T06:47:54.197" />
  <row Id="27755" PostTypeId="2" ParentId="27283" CreationDate="2010-12-18T08:27:28.233" Score="1" ViewCount="" Body="&lt;p&gt;I would suggest finding programming-related podcasts as a way to broaden your feel for what's out there in the programming world. I'm an embedded programmer so my world is mostly C, assembly, and Python but my favorite podcasts are Stack Overflow podcast, Herding Code, and Software Engineering Radio. Sure for most of the episodes the experience is like listening to a foreign language broadcast from a technical standpoint. But every once in a while I'll hear something, previously unknown, that'll peak my interest and prompt me to investigate it further on my own. Also I really enjoy the personalities on these shows so it also has entertainment value to me listening to coders geek out on coding topics.&lt;/p&gt;&#xA;" OwnerUserId="10810" LastActivityDate="2010-12-18T08:27:28.233" />
  <row Id="27756" PostTypeId="2" ParentId="24605" CreationDate="2010-12-18T08:36:06.707" Score="0" ViewCount="" Body="&lt;p&gt;I use Subversion and what has worked best for me, is storing third party libraries within the repository in a standardised directory structure:&lt;br/&gt;&#xA;- Library1&lt;br/&gt;&#xA;-- v1.0&lt;br/&gt;&#xA;-- v2.0&lt;br/&gt;&#xA;etc&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My goals are:&lt;br/&gt;&#xA;- ease of discovery&lt;br/&gt;&#xA;- change tracking&lt;br/&gt;&#xA;- simple checkout and build (for new Devs and Continuous Integration)&lt;br/&gt;&#xA;- having no external dependencies so you have everything required to run in the future&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a good discussion over on SO for this too:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/49196/storing-third-party-libraries-in-source-control&quot;&gt;http://stackoverflow.com/questions/49196/storing-third-party-libraries-in-source-control&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HTH!&lt;/p&gt;&#xA;" OwnerUserId="10819" LastEditorUserId="10819" LastEditorDisplayName="" LastEditDate="2010-12-18T08:49:46.117" LastActivityDate="2010-12-18T08:49:46.117" />
  <row Id="27757" PostTypeId="1" AcceptedAnswerId="27785" CreationDate="2010-12-18T08:41:42.930" Score="10" ViewCount="205" Body="&lt;p&gt;How do you sell to the company management to send developers to user conferences? For now, lets just assume we'd opt for in-country conferences as a start.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-18T12:50:30.577" Title="How do you sell the idea of sending developers to user conferences?" Tags="&lt;career&gt;&lt;conferences&gt;" AnswerCount="6" FavoriteCount="3" />
  <row Id="27758" PostTypeId="2" ParentId="27283" CreationDate="2010-12-18T08:46:20.933" Score="1" ViewCount="" Body="&lt;p&gt;Probability should be a good start because almost all big data companies use the language of probability so spending some time learning it would also open up career opportunities.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-18T08:46:20.933" />
  <row Id="27759" PostTypeId="2" ParentId="27757" CreationDate="2010-12-18T08:56:44.423" Score="0" ViewCount="" Body="&lt;p&gt;The best development happens when the developer is the user. Being your own user is just about the best way to make sure you working on the things that matter and that you give priority to fixing even relatively minor annoyances. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's not always possible, naturally. And so the next best thing is to educate the developer on the user's perspective. Conferences are one way of going this. If I were to pitch such an idea to my manager, I would definitely focus the above angle.&lt;/p&gt;&#xA;" OwnerUserId="494" LastActivityDate="2010-12-18T08:56:44.423" />
  <row Id="27760" PostTypeId="2" ParentId="27726" CreationDate="2010-12-18T08:59:47.040" Score="3" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Work no more than 10 hours a day. Leave time for other things.&lt;/li&gt;&#xA;&lt;li&gt;Always wear pants while programming. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Follow these simple rules and you'll be a guru hacker in no time.&lt;/p&gt;&#xA;" OwnerUserId="494" LastActivityDate="2010-12-18T08:59:47.040" CommentCount="3" />
  <row Id="27761" PostTypeId="2" ParentId="27686" CreationDate="2010-12-18T09:05:45.010" Score="0" ViewCount="" Body="&lt;p&gt;The smaller the commits the better, usually. This is about SCM tools, not code per-se, but it's a very measurable metric. The smaller the commit the easier it is to see each change as an atomic unit; the easier it is to revert specific changes and pin-point when things broke.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as no commit breaks the build...&lt;/p&gt;&#xA;" OwnerUserId="494" LastActivityDate="2010-12-18T09:05:45.010" CommunityOwnedDate="2011-02-28T23:19:47.007" />
  <row Id="27762" PostTypeId="2" ParentId="27633" CreationDate="2010-12-18T09:08:08.830" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://staruml.sourceforge.net/en/&quot; rel=&quot;nofollow&quot;&gt;StarUML&lt;/a&gt; is pretty nice, and free. It can be very helpful to model your design as objects and then &quot;debug&quot; your design by running it through sequence diagrams depicting all the major use-cases. This is not only good documentation, but it also uncovers design errors that are otherwise hard to catch until you reach development.&lt;/p&gt;&#xA;" OwnerUserId="494" LastActivityDate="2010-12-18T09:08:08.830" />
  <row Id="27763" PostTypeId="2" ParentId="27632" CreationDate="2010-12-18T09:12:20.000" Score="2" ViewCount="" Body="&lt;p&gt;Assume every node/machine/instance will fail often. Your architecture has to not only be tolerant of these failures but also &lt;em&gt;expect&lt;/em&gt; that they will happen frequently. So your system shouldn't only survive such incidents, it should not even be bothered by them and should (ideally) heal itself when they happen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's my experience that particular cloud instances are usually much less reliable (in all parameters) than plain old servers. Their strength lies in their numbers, and not in any particular node. So make you system distributed and redundant at its core.&lt;/p&gt;&#xA;" OwnerUserId="494" LastActivityDate="2010-12-18T09:12:20.000" />
  <row Id="27764" PostTypeId="2" ParentId="27632" CreationDate="2010-12-18T09:23:54.857" Score="7" ViewCount="" Body="&lt;p&gt;The eight fallacies of distributed computing:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Essentially everyone, when they first build a distributed application, makes the following eight assumptions. All prove to be false in the long run and all cause big trouble and painful learning experiences.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The network is reliable&lt;/li&gt;&#xA;&lt;li&gt;Latency is zero&lt;/li&gt;&#xA;&lt;li&gt;Bandwidth is infinite&lt;/li&gt;&#xA;&lt;li&gt;The network is secure&lt;/li&gt;&#xA;&lt;li&gt;Topology doesn't change&lt;/li&gt;&#xA;&lt;li&gt;There is one administrator&lt;/li&gt;&#xA;&lt;li&gt;Transport cost is zero&lt;/li&gt;&#xA;&lt;li&gt;The network is homogeneous&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;For more details, read the article by Arnon Rotem-Gal-Oz&#xA;&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://nighthacks.com/roller/jag/resource/Fallacies.html&quot; rel=&quot;nofollow&quot;&gt;http://nighthacks.com/roller/jag/resource/Fallacies.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-18T09:23:54.857" />
  <row Id="27765" PostTypeId="2" ParentId="27632" CreationDate="2010-12-18T09:38:24.203" Score="3" ViewCount="" Body="&lt;p&gt;Learn from the &lt;a href=&quot;http://techblog.netflix.com/2010/12/5-lessons-weve-learned-using-aws.html&quot; rel=&quot;nofollow&quot;&gt;Chaos Monkey&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;We’ve sometimes referred to the Netflix software architecture in AWS as our Rambo Architecture. Each system has to be able to succeed, no matter what, even all on its own. We’re designing each distributed system to expect and tolerate failure from other systems on which it depends.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;One of the first systems our engineers built in AWS is called the Chaos Monkey. &lt;strong&gt;The Chaos Monkey’s job is to randomly kill instances and services within our architecture.&lt;/strong&gt; If we aren’t constantly testing our ability to succeed despite failure, then it isn’t likely to work when it matters most – in the event of an unexpected outage.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="37" LastActivityDate="2010-12-18T09:38:24.203" CommentCount="1" />
  <row Id="27766" PostTypeId="2" ParentId="27686" CreationDate="2010-12-18T09:42:16.677" Score="3" ViewCount="" Body="&lt;p&gt;Source code metrics for quality assurance aim at two objectives:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;writing code with less bugs inside&lt;/li&gt;&#xA;&lt;li&gt;writing code for easy maintenance&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Both lead to writing code as simple as possible. This means:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;short units of code (functions, methods)&lt;/li&gt;&#xA;&lt;li&gt;few elements in each unit (arguments, local variables, statements, paths)&lt;/li&gt;&#xA;&lt;li&gt;and many other criteria more or less complex (see &lt;a href=&quot;http://en.wikipedia.org/wiki/Software_metric&quot; rel=&quot;nofollow&quot;&gt;Software metric&lt;/a&gt; in Wikipedia).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-12-18T09:42:16.677" CommunityOwnedDate="2011-02-28T23:19:47.007" />
  <row Id="27767" PostTypeId="2" ParentId="6112" CreationDate="2010-12-18T09:46:47.363" Score="2" ViewCount="" Body="&lt;p&gt;Both designer and developers can learn a lot from studying usability and information architecture concepts in a more formal way. I've been a developer since 1991, and thought I knew a lot about how to structure websites, but I took a formal graduate school course in information architecture this year, and I learned quite a lot. I also joined a local UX/IA user group, attended a large user-focused conference, and spent a good deal of time discussing the topic with designers and developers more knowledge about the topic. I am currently a web developer and spend a lot of time developing web forms, so I found Luke Wroblewski's book, &quot;Web Form Design&quot; very helpful as well.&lt;/p&gt;&#xA;" OwnerUserId="10813" LastActivityDate="2010-12-18T09:46:47.363" />
  <row Id="27768" PostTypeId="2" ParentId="14297" CreationDate="2010-12-18T09:54:31.670" Score="0" ViewCount="" Body="&lt;p&gt;As for magic numbers: they are bad if they are used in different places and changing it requires you to syncrhonise it in several places. But one number in one place isn't any worse than having one constant to denote one number that is still used in one place. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, constants might not have much place in your application. In many database apps, those things should be stored in the database as per app or per user settings. And to complete their implementation they involve this setting and a place in the ui and a note in the end user documentation... all of which is kind-a overengineering and a waste of resources if everyone is perfectly happy when the number is 5 (and 5 it is.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you can leave numbers and strings in place until there is a need to use this number outside that place. Then it is time to refactor things to a more flexible design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for strings... I know the arguments, but this is one more place there is no point in doing a one-string-to-one-constant conversion. Especially if the strings in place are coming from a constant implementation anyway (for example, imports that are generated from an outside application, and have a status-string that is short and recognisable, just like 'Overdue'.) There just isn't much point in converting the 'Overdue' to STATUS_OVERDUE when it is used in only one place anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am very much for not adding complexity if it doens't actually create needed benefits on flexibility, reuse or error checking. When you need the flexibility, code it right (the refactor thingy). But if it isn't needed... &lt;/p&gt;&#xA;" OwnerUserId="9237" LastActivityDate="2010-12-18T09:54:31.670" CommunityOwnedDate="2010-12-18T09:54:31.670" />
  <row Id="27769" PostTypeId="2" ParentId="27726" CreationDate="2010-12-18T09:55:59.183" Score="1" ViewCount="" Body="&lt;p&gt;I'm 20 too, I had a horrible job, and for weeks I needed to work from 14pm to 8am next day because the boss was from New York, and he believed in total dedication. (There were no weekends.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had my reasons to accept this tempo for some time, but barely got anything done those days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When your senses are telling you &quot;less is more&quot;, you won't need to trade more time. Look for inspiration outside of your room, spend time with your family/girlfriend.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're constantly feeding your brain, it'll eat less than in an ideal speed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you have photographic memory.&lt;/p&gt;&#xA;" OwnerUserId="7308" LastActivityDate="2010-12-18T09:55:59.183" />
  <row Id="27770" PostTypeId="2" ParentId="27726" CreationDate="2010-12-18T10:08:10.330" Score="0" ViewCount="" Body="&lt;p&gt;I think obsession is just to much when you start to realize that the things you like have happened and you dont even realize. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, take some time for yourself, tacke breakes and dont push it, i understand your passion on the matter, but things work out if you go with the flow. Remember,  life is a long way, you cant spect to live it all in 14 hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Happy programming!&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-18T10:08:10.330" />
  <row Id="27771" PostTypeId="2" ParentId="27757" CreationDate="2010-12-18T10:15:56.943" Score="0" ViewCount="" Body="&lt;p&gt;When developing, i found out the hard way that generally when a client speacks about what he/she needs, it uses terms that generally are quite ambiguos. This could be because they are repeating something they sow or they cant express their ideas just because they dont really know what they need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keeping up with the latests tecnology and computer science progress opens up our minds and increase the toolkit when dealing with complex clients, and giving the best up to date response.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-18T10:15:56.943" />
  <row Id="27772" PostTypeId="2" ParentId="27283" CreationDate="2010-12-18T10:17:46.427" Score="2" ViewCount="" Body="&lt;p&gt;If you fancy exercising your math &lt;em&gt;and&lt;/em&gt; coding skills, go and solve some &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt; problems.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-12-18T10:17:46.427" />
  <row Id="27773" PostTypeId="2" ParentId="5780" CreationDate="2010-12-18T10:17:52.043" Score="0" ViewCount="" Body="&lt;p&gt;As a woman and a programmer, I used to ask myself the same question, until I got to graduate school. Most of the people in my information systems program were women, and most were not Americans. In this country, men have historically migrated more to programming for a variety of reasons others have discussed. In many other countries, there doesn't seem to be such a difference. I'm curious to know why this might be the case. &lt;/p&gt;&#xA;" OwnerUserId="10813" LastActivityDate="2010-12-18T10:17:52.043" CommunityOwnedDate="2011-01-31T19:23:00.177" />
  <row Id="27774" PostTypeId="2" ParentId="27726" CreationDate="2010-12-18T10:19:09.943" Score="1" ViewCount="" Body="&lt;h2&gt;There is only one situation when obsession is not enough&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;As Jeff has pointed out, everything should be in moderation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However there is one situation, when &lt;strong&gt;no amount&lt;/strong&gt; of obsession is enough:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;When you trying to &lt;strong&gt;solve a problem&lt;/strong&gt;,&#xA;  that has yet to be solved by &lt;strong&gt;humanity&lt;/strong&gt;.&#xA;  It is only right and proper that one&#xA;  must think about it at all times. When&#xA;  he is &lt;strong&gt;dreaming&lt;/strong&gt; he should think about&#xA;  it. When he is walking, talking or&#xA;  breathing he's only focus should be&#xA;  that problem. It is then obsession&#xA;  becomes a &lt;strong&gt;requirement&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-18T10:31:03.083" LastActivityDate="2010-12-18T10:31:03.083" CommentCount="2" />
  <row Id="27775" PostTypeId="2" ParentId="14297" CreationDate="2010-12-18T10:22:09.827" Score="2" ViewCount="" Body="&lt;p&gt;Functions that reimplement basic functionality of the language.  For example, if you ever see a &quot;getStringLength()&quot; method in JavaScript instead of a call to the &quot;.length&quot; property of a string, you know you're in trouble.&lt;/p&gt;&#xA;" OwnerUserId="10562" LastActivityDate="2010-12-18T10:22:09.827" CommunityOwnedDate="2010-12-18T10:22:09.827" />
  <row Id="27776" PostTypeId="2" ParentId="14297" CreationDate="2010-12-18T10:34:14.877" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Putting every local variable in the&#xA;first feew lines of the method block.&#xA;Especially in conjunction with long&#xA;methods.&lt;/li&gt;&#xA;&lt;li&gt;Using boolean variables to break out of loops / skip iterations instead of just using break / continue&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2010-12-18T10:34:14.877" CommunityOwnedDate="2010-12-18T10:34:14.877" CommentCount="1" />
  <row Id="27777" PostTypeId="2" ParentId="9539" CreationDate="2010-12-18T10:38:42.283" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&quot; rel=&quot;nofollow&quot;&gt;TIOBE&lt;/a&gt; somehow goes back 25 years.  Top 3 languages in 1985: C, Ada, Lisp.  Has programming these days gotten any easier than back then ?  Not really.  Chance of real improvement in this area in the next 3 decades ?  I can't see it.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-12-18T10:38:42.283" />
  <row Id="27779" PostTypeId="2" ParentId="27483" CreationDate="2010-12-18T10:49:56.360" Score="1" ViewCount="" Body="&lt;p&gt;I've found online reading to be quite useful for reading things sequentially.  You can get the book you need NOW, and you can search in it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For references, I need a paper copy in my bookshelf, but I only need it for a fraction of the books I've read online.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-18T10:49:56.360" CommentCount="1" />
  <row Id="27780" PostTypeId="2" ParentId="27757" CreationDate="2010-12-18T10:57:09.267" Score="9" ViewCount="" Body="&lt;p&gt;First thing to do is actually &lt;strong&gt;ask&lt;/strong&gt;. There is a huge number of people just afraid to even ask something to their boss. In many case, if what you ask is reasonable, you will get it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It works for salary increase, new computer, day off, etc. &lt;strong&gt;You have much more influence than you think&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like I explain in &lt;a href=&quot;http://programmers.stackexchange.com/questions/26901/how-to-convince-your-boss-to-give-you-a-better-developer-machine/26904#26904&quot;&gt;&lt;strong&gt;this answer&lt;/strong&gt;&lt;/a&gt;, your boss must see the value in it for &lt;strong&gt;him&lt;/strong&gt;. If your boss wants you to be more productive, you will have to prove it will make your more productive. If your boss obsession is to make you happy in your work life, you will have to prove it it will be the case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Important thing to consider&lt;/code&gt;: your boss will &lt;em&gt;not allocate time to himself&lt;/em&gt; to calculate the benefits of your request himself. You have to come with a written document that supports it.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;So for your conference, calculate its total &lt;strong&gt;cost&lt;/strong&gt;. It is entrance costs + travel costs. Add how much the company loose to have you out.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Now calculate the &lt;strong&gt;benefits&lt;/strong&gt;. For conference, my proposed strategy is to compare it to training. Most bosses know the importance of trainings. The big advantage of conference is that you will see many valuable speakers for far cheaper than training. It's also an opportunity to do networking.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I would like to go to [conference] this year. This year the conference content will be very valuable to our project. It only cost a third of what we would have spent in off site training.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;As I said, the simple fact to &lt;strong&gt;ask&lt;/strong&gt; is enough in most case. &lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-18T12:50:30.577" LastActivityDate="2010-12-18T12:50:30.577" CommentCount="3" />
  <row Id="27781" PostTypeId="2" ParentId="27671" CreationDate="2010-12-18T10:59:36.540" Score="0" ViewCount="" Body="&lt;p&gt;I am in a similar position, I am going for the career advancing opportunities, screw the temp jobs. It doesn't hurt to learn more but if JavaEE is your expert area (you have experience in it) and you think you'll be happy there then you should look out for those kind of jobs. I personally wouldn't trust any recruiting company as they are concerned with simply matching you to any job you are NOT horrible at or they may have other pressures. You are the most valuable person to make that decision so just go with your instinct and HAVE A CAREER PLAN!&lt;/p&gt;&#xA;" OwnerUserId="10442" LastActivityDate="2010-12-18T10:59:36.540" />
  <row Id="27782" PostTypeId="2" ParentId="27757" CreationDate="2010-12-18T11:38:28.400" Score="0" ViewCount="" Body="&lt;p&gt;There's a bigger picture here: there seems to be an idea firmly established in OOP and XP (and &quot;agile&quot; generally) that the more your design, coders and code itself uses &lt;strong&gt;the language of the problem domain&lt;/strong&gt; (ie the language and concepts of your end users), the more chance of project success because of better communication and mutual understanding between developers and customers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your organization buys in to that fundamental principle, then going to user-domain conferences is a very natural corollary.  As is sending developers to observe users using your (and competitors') products &quot;in the field&quot;, getting basic and intermediate-level training courses in the problem domain run in-house for all developers and just generally giving learning in the problem domain field parity with &quot;coder skills&quot; learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doesn't need to be the biggest and best user-sphere conference you go to (these are generally very expensive, and overwhelming as a first exposure to the user's world).  Keep a look out for local symposium/workshop/seminar/lecture type events of your user's professional organizations and build some basic knowledge first.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-12-18T11:38:28.400" />
  <row Id="27783" PostTypeId="2" ParentId="27757" CreationDate="2010-12-18T12:08:22.580" Score="0" ViewCount="" Body="&lt;p&gt;Every developer should have a more experienced person as their daily mentor to inspire them and show them the way to become better.  For senior developers this is frequently not possible, and then conferences come in as a cheap substitute, because the speakers ARE the senior developer mentors.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-18T12:08:22.580" />
  <row Id="27785" PostTypeId="2" ParentId="27757" CreationDate="2010-12-18T12:44:29.677" Score="-1" ViewCount="" Body="&lt;p&gt;If your boss &lt;strong&gt;does not understand&lt;/strong&gt; how &lt;strong&gt;important&lt;/strong&gt; these conferences are (and I think they are more important for keeping devs up-to-date than any tutorial or a book) and you need to &quot;sell&quot; the idea, maybe it's time to move on.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-18T12:44:29.677" CommentCount="11" />
  <row Id="27786" PostTypeId="1" CreationDate="2010-12-18T13:27:13.763" Score="4" ViewCount="363" Body="&lt;p&gt;The &quot;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;Joel Test&lt;/a&gt;&quot; is an example of 12 simple yes or no questions you can ask to see how supportive a programming company is. Phrased as a similar yes/no question, &lt;strong&gt;what single quality you would want to see in a prospective employer?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please post one question per reply; and make it so that a &quot;yes&quot; answer will be a positive point to use in keeping score.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Employers should be able to use this list to see what they should implement, and employees could use it to evaluate different environments.&lt;/p&gt;&#xA;" OwnerUserId="3880" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-12-19T19:56:18.180" LastActivityDate="2010-12-19T19:56:18.180" ClosedDate="2010-12-18T18:12:45.580" Title="What criteria should be used in evaluating if a company is worth working for?" Tags="&lt;work-environment&gt;&lt;employer&gt;&lt;joel-test&gt;" AnswerCount="2" CommentCount="25" />
  <row Id="27787" PostTypeId="1" AcceptedAnswerId="27807" CreationDate="2010-12-18T13:32:25.970" Score="0" ViewCount="132" Body="&lt;p&gt;We have recently replaced binary based communication protocol with XML one (between browser based client and server). The implementation is almost complete, however I am looking for ways to improve its performance both for faster transmission and parsing. Any ideas ? Please post link along with the answer.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-23T14:58:50.843" LastActivityDate="2010-12-23T16:58:05.743" Title="Optimizing XML based protocol" Tags="&lt;design&gt;&lt;c++&gt;&lt;xml&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="27788" PostTypeId="2" ParentId="27787" CreationDate="2010-12-18T13:39:38.473" Score="0" ViewCount="" Body="&lt;p&gt;Use compression if you have the needed computing power on both ends.&lt;/p&gt;&#xA;" OwnerUserId="1402" LastActivityDate="2010-12-18T13:39:38.473" CommentCount="1" />
  <row Id="27789" PostTypeId="2" ParentId="27726" CreationDate="2010-12-18T13:43:47.360" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Obsession is a problem if it negatively affects other aspects of your life.&lt;/strong&gt; For example, if it gets in the way of you performing your job or schoolwork. If you cancel social activities with friends so that you can click on the &quot;reload&quot; button. If you forget to eat or sleep.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If any of that happens to be the case, you need to take steps toward change. And to do so you'll need to seek someone else's help.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-18T13:43:47.360" CommentCount="2" />
  <row Id="27790" PostTypeId="2" ParentId="27786" CreationDate="2010-12-18T13:52:15.883" Score="4" ViewCount="" Body="&lt;p&gt;Using the same wording as the Joel questions:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Do you encourage and support employee&#xA;  growth?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If the &lt;a href=&quot;http://www.edwardtufte.com/tufte/courses&quot; rel=&quot;nofollow&quot;&gt;Tufte seminar&lt;/a&gt; comes to town, will you reimburse employees to attend? Will you reimburse tuition for taking grad school classes? Will you bring people on-site to train in new and cutting edge areas?&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-12-18T14:00:57.947" LastActivityDate="2010-12-18T14:00:57.947" />
  <row Id="27791" PostTypeId="2" ParentId="27472" CreationDate="2010-12-18T14:06:43.693" Score="0" ViewCount="" Body="&lt;p&gt;If it's simple formatting, use a modern IDE that auto formats OR run a commit hook on our source control tool.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's different implementations, document which way is acceptable in what situations.  An example is using an iterator on a java collection versus a counter to walk a List.  Either way &quot;works&quot;, but there are subtle implications of one version versus the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Teachable moments are important.&lt;/p&gt;&#xA;" OwnerUserId="10842" LastActivityDate="2010-12-18T14:06:43.693" />
  <row Id="27792" PostTypeId="2" ParentId="27786" CreationDate="2010-12-18T14:09:06.597" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Do you have a strategy for work/life&#xA;  balance?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Do you set artificial dates without at least some basic analysis? If people do have to engage in crunch time, are there mitigating practices like comp time or overtime pay? &lt;/p&gt;&#xA;" OwnerUserId="7892" LastActivityDate="2010-12-18T14:09:06.597" CommentCount="1" />
  <row Id="27793" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T14:13:36.487" Score="91" ViewCount="" Body="&lt;p&gt;I wouldn't mind named parameters.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;getData(0, 10, filter =&amp;gt; NULL, cache =&amp;gt; true, removeDups =&amp;gt; true);&#xA;// instead of:&#xA;getData(0, 10, NULL, true, true);&#xA;&#xA;// or how about:&#xA;img(src =&amp;gt; 'blah.jpg', alt =&amp;gt; 'an albino platypus', title =&amp;gt; 'Yowza!');&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Unfortunately the PHP devs &lt;a href=&quot;http://www.php.net/~derick/meeting-notes.html#named-parameters&quot; rel=&quot;nofollow&quot;&gt;shot that idea down&lt;/a&gt; already.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-12-18T14:13:36.487" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="13" />
  <row Id="27794" PostTypeId="2" ParentId="14297" CreationDate="2010-12-18T14:40:02.713" Score="1" ViewCount="" Body="&lt;p&gt;Sometimes I see parts of a method that given all possible inputs, it would still NEVER run, so it shouldn't be there confusing people in the first place.&#xA;An example would be...&lt;br&gt;&#xA;If the method can only be called inside the context of an Admin superuser and I see something checking if the request user is not an Admin superuser... :/&lt;/p&gt;&#xA;" OwnerUserId="3922" LastEditorUserId="3922" LastEditorDisplayName="" LastEditDate="2010-12-18T20:29:37.133" LastActivityDate="2010-12-18T20:29:37.133" CommunityOwnedDate="2010-12-18T14:40:02.713" />
  <row Id="27795" PostTypeId="2" ParentId="27644" CreationDate="2010-12-18T14:45:35.767" Score="1" ViewCount="" Body="&lt;p&gt;as usual, &lt;strong&gt;it depends&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I first investigated using web services, Java had a 50-page tutorial and .NET had a wizard. Guess which one got used?&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-18T14:45:35.767" />
  <row Id="27796" PostTypeId="2" ParentId="27749" CreationDate="2010-12-18T15:09:48.413" Score="1" ViewCount="" Body="&lt;p&gt;At my last job we did a lot of pair programming.  We found it was not a good method for teaching/learning.  When we tried to use it for teaching often the pair would lag, one would get frustrated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best performance was usually from 2 people of similar skill level with sightly differing strengths, approaches and ideas.  People would develop a sense for the others strengths and weakness and would be an effective complement as a result.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We also found pairing to not be very effective for simple bugfixes, features.  Areas where the work was straightforward and simple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then again that's just my experience in one development team.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-18T15:09:48.413" />
  <row Id="27797" PostTypeId="1" CreationDate="2010-12-18T15:14:38.453" Score="6" ViewCount="235" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/21748/starting-to-be-a-team-leader&quot;&gt;Starting to be a team leader&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I am currently moving into a tech lead role in my company, and have just started my new project as tech lead for that project. That means I get to make technical decisions and to guide the direction the project is going towards. I am not a project manager though; I do not deal with customers, task assignment, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be a good tech lead, I need my team to trust me technically; I've looked at a similar question (&lt;a href=&quot;http://programmers.stackexchange.com/q/27164/2616&quot;&gt;How to earn team members respect&lt;/a&gt;) but the answers were mostly only relevant to a project manager, as that's what the question was about. How do I instil that trust into my team?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, what are the other things I need to do, other than be technically sound, to be a good tech lead?&lt;/p&gt;&#xA;" OwnerUserId="2616" LastEditorUserId="2616" LastEditorDisplayName="" LastEditDate="2010-12-18T15:22:58.933" LastActivityDate="2010-12-18T17:21:18.643" ClosedDate="2010-12-18T20:19:48.510" Title="Tips to being a good tech lead" Tags="&lt;tips&gt;&lt;tech-lead&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="3" />
  <row Id="27798" PostTypeId="1" AcceptedAnswerId="27976" CreationDate="2010-12-18T15:23:24.050" Score="9" ViewCount="657" Body="&lt;p&gt;In your opinion what should be the maximum length of function, and if there are cases which are exception to this. Also give reasoning (if any) behind the answer.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-12-23T17:44:55.703" LastActivityDate="2010-12-23T18:40:40.023" Title="What should be the maximum length of function" Tags="&lt;programming-practices&gt;&lt;coding-standards&gt;" AnswerCount="16" CommentCount="1" FavoriteCount="2" />
  <row Id="27799" PostTypeId="2" ParentId="27632" CreationDate="2010-12-18T15:24:01.100" Score="0" ViewCount="" Body="&lt;p&gt;The same pitfalls that people have on non-virtualized platforms.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Apps that don't scale horizontally.&lt;/li&gt;&#xA;&lt;li&gt;Poor algorithm choices/implementations.&lt;/li&gt;&#xA;&lt;li&gt;Absence of graceful reduction of features and performance in response to high load/ reduced resources.&lt;/li&gt;&#xA;&lt;li&gt;Ignorance of the common/likely problems on the platforms you run on and having a plan to mitigate the those risks.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-18T15:24:01.100" CommentCount="2" />
  <row Id="27800" PostTypeId="2" ParentId="27560" CreationDate="2010-12-18T15:33:35.460" Score="1" ViewCount="" Body="&lt;p&gt;From a business perspective.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ability to perform within a team.&lt;/li&gt;&#xA;&lt;li&gt;Ability to estimate and meet estimates.&lt;/li&gt;&#xA;&lt;li&gt;Ability to for consistent work and effort.&lt;/li&gt;&#xA;&lt;li&gt;Ability to communicate technical ideas to non-technical people.&lt;/li&gt;&#xA;&lt;li&gt;Experience with the technologies and problems the company has.&lt;/li&gt;&#xA;&lt;li&gt;Technical ability to get the job done in a timely fashion.&lt;/li&gt;&#xA;&lt;li&gt;Ability to learn and adapt to new technologies and environments.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-18T15:33:35.460" />
  <row Id="27801" PostTypeId="2" ParentId="27798" CreationDate="2010-12-18T15:35:02.807" Score="2" ViewCount="" Body="&lt;p&gt;Typically, I try to keep my methods/functions to what fits on the screen of a 1680x1050 monitor.  If it doesn't fit, then use helper methods/functions to parcel out the task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It helps readability on both screen and paper.&lt;/p&gt;&#xA;" OwnerUserId="7073" LastActivityDate="2010-12-18T15:35:02.807" />
  <row Id="27802" PostTypeId="2" ParentId="27798" CreationDate="2010-12-18T15:42:21.320" Score="13" ViewCount="" Body="&lt;p&gt;Depends on the language you use, but in general (and for my personal taste):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ideally&lt;/strong&gt;, less than 25 lines.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Acceptably&lt;/strong&gt;, less than 35 lines.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If it's more, then it's something I need to come back to later and rework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But &lt;strong&gt;realistically&lt;/strong&gt;, any size it needs to be when you need to deliver something and that it makes more sense on the moment to spit them out like that, makes it even easier sometimes for someone to review before shipping. (but still get back to it later).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Recently my team ran a program on our codebase: we found class with 197 methods and another with only 3 methods but one of them was 600 lines. Cute game: what's the worse of the 2 evil?)&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Now for a more zen answer... In general it's considered a good practice (TM) to quote a great man, so here goes:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Everything should be made as simple as possible, but not simpler. - A. Einstein&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;As an addendum to this, your functions should have clear names explaining their intent. Regarding comments, I usually don't comment inside a function: comments say &quot;why?&quot;, code says &quot;how?&quot;. A at the top of each function (that requires explanation) is enough. If your function is small and function names are explicit enough, then you should just need to say what you want to achieve and why. I use inline comments only for fields in some languages or on block starts for functions that break that 25-35 line rules if the intent is unclear. I use a block comment inside the code when an exceptional situations occurs (a catch block where you don't need or want to do anything should have a comment saying why, for instance).&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-12-19T10:21:01.677" LastActivityDate="2010-12-19T10:21:01.677" CommentCount="7" />
  <row Id="27803" PostTypeId="2" ParentId="27798" CreationDate="2010-12-18T15:42:55.510" Score="2" ViewCount="" Body="&lt;p&gt;for me a function is any length it needs to be. most of the time that i divide it up is when i will reuse code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;basically ill stick to the principal 'high cohesion, low coupling' and there is no constraint on length.&lt;/p&gt;&#xA;" OwnerUserId="10442" LastActivityDate="2010-12-18T15:42:55.510" />
  <row Id="27804" PostTypeId="2" ParentId="27798" CreationDate="2010-12-18T15:54:08.507" Score="5" ViewCount="" Body="&lt;p&gt;What should be the maximum height of a building? Depends on where the build is, or the height you want it to be.&lt;br&gt;&#xA;You may get different answers from different people which come from different city.&lt;br&gt;&#xA;Some script functions and kernel interrupt handlers are very long.&lt;/p&gt;&#xA;" OwnerUserId="9395" LastActivityDate="2010-12-18T15:54:08.507" />
  <row Id="27805" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T16:05:13.190" Score="42" ViewCount="" Body="&lt;p&gt;Things I would like, as a former long-time PHP apologist:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Shorter syntax for arrays. PHP arrays are one of the awesomest features of the language because of their flexibility, but it's a drag to write &lt;code&gt;some_array_method($argity, array('key' =&amp;gt; $value));&lt;/code&gt;. I believe this proposal was already eviscerated on the PHP mailing list unfortunately.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://bugs.php.net/bug.php?id=32100&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;finally&lt;/code&gt; support&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Attributes/annotations. These allow you to add custom behavior to a method in a way that allows code reuse. For example, in an MVC framework, one could define an &lt;code&gt;AuthorizeAttribute&lt;/code&gt; that would indicate that a controller or action method requires the user to be authorized. The framework itself would be responsible for looking for the attributes and acting on them accordingly. I believe PHPUnit already uses a sort of attribute by putting them in docblock comments, which can be read using reflection, but putting actual functionality in docblock comments is certainly a hack.&lt;/li&gt;&#xA;&lt;li&gt;Shorter lambda syntax. Instead of having to write &lt;code&gt;function($x){ return $x*2;}&lt;/code&gt;, maybe I could write &lt;code&gt;$x =&amp;gt; return $x*2&lt;/code&gt;, or something. This is again something just sort of makes it a drag to use this feature. For example &lt;code&gt;$results = array_filter(array(1,2,3), function($a) { return $a % 2; }):&lt;/code&gt; vs &lt;code&gt;$results = array_filter(array(1,2,3), $a =&amp;gt; return $a % 2 );&lt;/code&gt; The former just has so much more plumbing that's basically irrelevant to the actual work you're trying to accomplish.&lt;/li&gt;&#xA;&lt;li&gt;A built-in &lt;code&gt;Decimal&lt;/code&gt; (fixed-point math) that supported math operations through the normal operators would be kind of nice, since we don't have operator overloading.&lt;/li&gt;&#xA;&lt;li&gt;MOAR MAGIC METHODS. Magic methods are great. I could see PHP adding operator overloading via magic methods (I know this will basically never happen.) But in general, they provide really great ways to hook into the language and do cool things.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1664" LastActivityDate="2010-12-18T16:05:13.190" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="4" />
  <row Id="27806" PostTypeId="2" ParentId="27472" CreationDate="2010-12-18T16:18:04.320" Score="0" ViewCount="" Body="&lt;p&gt;Giving good feedback is really important, especially if coding style is bothering you and the rest of the team.  Being able to effectively tell your new guy how you expect him to code is important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often, it's much easier and more long lasting to SHOW new people what to do.  I find this is best accomplished by a week or two of pair programming with someone on your team who embodies your standards and practices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can point out when they don't follow your coding standards and write a document, but I've found pairing to be the most effective way to quickly install methodology or style in new hires.&lt;/p&gt;&#xA;" OwnerUserId="2135" LastActivityDate="2010-12-18T16:18:04.320" />
  <row Id="27807" PostTypeId="2" ParentId="27787" CreationDate="2010-12-18T16:20:20.423" Score="2" ViewCount="" Body="&lt;p&gt;I presume this is a web service and using C++ as a mod extenstions to a web server rather than writing your own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To speed up transfer you could be able to enable gzip compression on the web server, this is relatively straight forward in all modern web servers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Parsing could be sped up by:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Reducing node count - can the data being set be reduced, can some be inferred from others?&lt;/li&gt;&#xA;&lt;li&gt;If you are using a DTD/XSD, have a local copy and resolve to this rather than necessarily always pulling it from the public location. I have seen an XML library pull it from the public location each time which slowed down parsing considerably.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6094" LastActivityDate="2010-12-18T16:20:20.423" CommentCount="1" />
  <row Id="27808" PostTypeId="2" ParentId="27797" CreationDate="2010-12-18T16:20:40.970" Score="0" ViewCount="" Body="&lt;p&gt;Be very clear on your focus of the project:&#xA;Aka we are taking this path, because of these reasons. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And these aspects are most important for this project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Respect the opinion of other people. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be careful not to let technical discussion get in the way of progress, so if someone has a point he or she wants to discuss try and do it over lunch / after hours if you don't see any merits to it. &lt;/p&gt;&#xA;" OwnerUserId="10848" LastActivityDate="2010-12-18T16:20:40.970" />
  <row Id="27809" PostTypeId="2" ParentId="27798" CreationDate="2010-12-18T16:22:23.023" Score="8" ViewCount="" Body="&lt;p&gt;In my opinion, every function should be as small as possible. Each function should do only one think and do it well. That doesn't really answer the maximum length question, but it is more my feelings on the length of functions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To use the words of Uncle Bob, &lt;a href=&quot;http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop&quot; rel=&quot;nofollow&quot;&gt;&quot;Extract till you just can’t extract any more. Extract till you drop.&quot;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7446" LastActivityDate="2010-12-18T16:22:23.023" />
  <row Id="27810" PostTypeId="2" ParentId="27472" CreationDate="2010-12-18T16:25:23.023" Score="1" ViewCount="" Body="&lt;p&gt;Very good question.  You seem to be asking mostly about those things that you need to train in house.  In other words, you have a good programmer, who needs to be trained in the in house style.  Style is not something you can expect a new programmer to know.  It can only be developed with intense supervision.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the question, he appears to have completed several tasks successfully from a functional point of view, but not from a stylistic point of view.  At this stage, you need to jump in.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do not assign him any new tasks.  His primary task from now on should be to refactor the code to the in-house style.  I picture the conversation going like this: &quot;I'm pleased  with your performance. It is obvious that you have a good grasp of the code. The next step is to get you up to speed on the in-house style.  What I'd like you to do this week is to redo the last few tasks and make them conform.  To whit, your naming conventions, while perfectly acceptable in the large, do not conform to our style.  Also, we prefer X bracketing style over Y.  I'd like you to start with Class Q, and I'm assigning Programmer B to mentor you in this task. Come see me when it's done, and we'll go over the code line by line.   This may take a while, but it's like riding a bicycle, and we'll get you up to speed soon.&quot;&lt;/p&gt;&#xA;" OwnerUserId="3084" LastActivityDate="2010-12-18T16:25:23.023" />
  <row Id="27811" PostTypeId="2" ParentId="27682" CreationDate="2010-12-18T16:34:38.583" Score="1" ViewCount="" Body="&lt;p&gt;From a consultant's perspective, every static analysis tool will have some noise but not all static analyzers are created equal. Static analysis tools like Coverity, Klocwork, Grammatech have good analysis techniques that should produce more accurate results.  If you tune and tweak some more you get better results typically (after all, static analyzers have to be able to run on all different types of code from a tiny medical device to a network operating system).  Defining &quot;noise&quot; is also dependent upon your criteria for what constitutes a fix-worthy report.  On one end of the spectrum, some developers mark all reports they don't fix as &quot;false&quot; (even poorly written code that they don't have the time to fix) and on the other end, we worked with several mil-aero and med devices companies that made sure even false positives were &quot;fixed&quot; because if the code was confusing the tool, then it probably should be written more clearly so it would be more maintainable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of these tools are more central analysis focused and others are more desktop focused - although all three have features that support both.  As @Bob mentioned, they cost money.&lt;/p&gt;&#xA;" OwnerUserId="10851" LastActivityDate="2010-12-18T16:34:38.583" />
  <row Id="27812" PostTypeId="2" ParentId="27798" CreationDate="2010-12-18T16:46:00.393" Score="5" ViewCount="" Body="&lt;p&gt;A method that works for me is: Can I have a part of a longer function give a name that makes sense. I think length of a method is not that important like good naming. The method should do what the name says, no more and no less. And you should be able to give a good name. If you cannot name your method good, the code is probably not good put together.&lt;/p&gt;&#xA;" OwnerUserId="7654" LastActivityDate="2010-12-18T16:46:00.393" />
  <row Id="27813" PostTypeId="2" ParentId="27671" CreationDate="2010-12-18T16:47:23.887" Score="1" ViewCount="" Body="&lt;p&gt;It's always good to diversify and have this knowledge under your belt. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Especially if it's a finite job and not to far away go for it. &lt;/p&gt;&#xA;" OwnerUserId="10848" LastActivityDate="2010-12-18T16:47:23.887" />
  <row Id="27814" PostTypeId="1" CreationDate="2010-12-18T16:49:44.663" Score="5" ViewCount="368" Body="&lt;p&gt;I feel that thinking in too much abstract and complex things causing some psychotic problems. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know some example who were genius but suffer from some serious psychological disorders like Paul Morphy(chess grandmaster), Nicola Tesla(scientist), John Forbes Nash(mathematician), Godfrey Harold Hardy(mathematician) and others..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have also some disorders which i am thinking that programming increase it. I found myself very asocial and programming just help me to avoid myself from real life so i can get relax for a moment while keeping myself away real problems of the life. I also observed weak socializing problems in other programmers but not in all of them surprisingly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you find most of genius programmers has some strange personality like to have weak psychology or bad socializing or communication skills ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To being genius programmer does not damage socializing skills badly ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there relation between genius programmer and psychotic personality ? &lt;/p&gt;&#xA;" OwnerUserId="3664" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-23T14:58:28.490" LastActivityDate="2010-12-23T14:58:28.490" ClosedDate="2010-12-18T20:22:56.573" Title="Relation between genius programmer and psychotic?" Tags="&lt;great-programmer&gt;&lt;social-skills&gt;" AnswerCount="4" CommentCount="4" />
  <row Id="27816" PostTypeId="2" ParentId="27814" CreationDate="2010-12-18T16:55:25.140" Score="2" ViewCount="" Body="&lt;p&gt;You should work on your social/psychological problems, regardless of your career choice. Being socially inept does not make you a better programmer.&lt;/p&gt;&#xA;" OwnerUserId="9505" LastActivityDate="2010-12-18T16:55:25.140" />
  <row Id="27817" PostTypeId="2" ParentId="27814" CreationDate="2010-12-18T17:08:13.133" Score="3" ViewCount="" Body="&lt;p&gt;While fear of the unknown is compelling, fear of what you come to understand can be even more profound. This is especially true when you realize that most people are oblivious to whatever it might be that concerns you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think what you are describing is a relationship between &lt;strong&gt;&lt;em&gt;existential angst&lt;/em&gt;&lt;/strong&gt; and intelligence. While I have never seen a study on this, I am quite certain that a proportional relationship does exist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Inordinate angst does have interesting, and often terrible effects on people. However, there are many extremely smart people who don't get sucked into that vicious cycle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, we can probably be sure that intelligence amplifies personality, but I don't think intelligence alone is a recipe for abnormal behavior.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-18T17:08:13.133" />
  <row Id="27818" PostTypeId="2" ParentId="27814" CreationDate="2010-12-18T17:08:42.493" Score="1" ViewCount="" Body="&lt;p&gt;I am not sure if you are implying that strong programming credentials automatically indicate weak social skills. I know of volunteering organizations like ivolunteer.org based out of Bangalore which boast of huge number of programmers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also strongly disagree with this line of thinking that you 'escape from reality' while coding. As a matter of fact I can think of ample situations where programmers contribute to improving the reality -- think medical imaging, low power devices, smart grids, green computing. &lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-18T17:08:42.493" />
  <row Id="27819" PostTypeId="2" ParentId="27798" CreationDate="2010-12-18T17:09:27.727" Score="4" ViewCount="" Body="&lt;p&gt;As long as it needs to be to do what it needs to do, but no longer.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-18T17:09:27.727" CommentCount="2" />
  <row Id="27820" PostTypeId="2" ParentId="27797" CreationDate="2010-12-18T17:18:21.383" Score="5" ViewCount="" Body="&lt;p&gt;Trust and respect are earned through every interaction you have with your team mates.  They follow from consistency with the model that your team mates have of you in their minds.  It is also affected by the degree to which you conform to (or at least give recognition to) the values that each individual holds dear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some things you can do that should work for everyone.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Be clear about your responsibilities, and how you will interact with your team mates, and follow what you say.  That doesn't mean a once-off email - it means consistent reinforcement over time.  If things change, make sure you tell them before you start acting upon this new (to them) system.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Have consistent short retrospective-style meetings where your aim is to understand the current and continuing mindset of the team, especially barriers to a harmonious environment.  Pay particular attention to continuing barriers - try not to let these fester, or you will start to be seen as unable to keep up your part of the bargain of leadership.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Share, where not inappropriate, the types of problems that you face in your position (in particular, in representing their wants and needs to the rest of the company), so that your team mates can sympathise with you.  This makes sure that &lt;em&gt;you&lt;/em&gt; are not perceived to be the thing holding them back through either inaction or inability.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't let decisions take forever.  Decisions that take a long time become one of those festering barriers.  After hearing all arguments for a certain period of time, take a decision and stick with it, unless you subsequently see a very strong reason not to change course.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make sure that your team mates get praise for their contributions, preferably from other people in the organisation.  That means saying positive things about them to others in the organisation.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make sure you are visible in your activities and achievements.  Being in many meetings is not generally valued - code contributions and making people's lives better are.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Others require that you understand and work with individuals:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Have either formal (in which case have them consistently every week) or informal one-on-one meetings with your team mates.  Just chat for 10-20 minutes about whatever they want, although try steer off of actual programming issues (those are best handled informally - see later).  You want to understand what things are holding them back, what things they want, and what things they value.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Try to let your team mates make decisions without you getting too involved.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When faced with a decision, don't let two or more contributors go at each other via email or in meetings for too long (especially if there are many bystanders).  Rather take the discussion away from a multi-way public argument, and talk to each one individually.  Maybe have another, smaller, meeting, and then say that you're going to make the decision.  Try to make sure that nobody in the group thinks they did not get the attention they deserved either because of who they are, or because of a difference in values between them and you.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When making technical decisions, explain your reasoning in terms of the values of your team.  Do this especially for those that don't yet trust or respect you and those who hold a strong opinion towards another option.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Informally talk through code problems you're solving (even if on a non-work project) with one or two of your team mates during lunch or after hours, and actually listen to their replies.  Follow their suggestions to the conclusion of the discussion, possibly introducing a little more information to the problem to see if that sways them.  If with more than one, then let them lead the discussion as much as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This shows them that you're facing the same sorts of problems that they do, that you value them in asking them to ask you, that you value them in listening to what they say, and also helps you understand what they value (why is solution X better than solution Y - because of value A trumping value B).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Informally ask your team mates about any code problems they are solving, and let them use you as a sounding board for their problem.  Don't try solve the problem (at least initially) - ask more questions to discover alternatives and to help them decide the pros/cons of each alternative they're considering.  Even though they did not approach you, and perhaps that you did not actually provide the final solution, they will attribute the finding of the solution to your involvement, and also consider you to be more relevant to them.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9564" LastActivityDate="2010-12-18T17:18:21.383" CommentCount="1" />
  <row Id="27821" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T17:20:12.237" Score="31" ViewCount="" Body="&lt;p&gt;Make PHP truly object oriented. The &lt;code&gt;slap on another global function&lt;/code&gt; evolution of PHP needs to end.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;array_merge(array_filter(array_intersect_key($arr1, $arr2), &quot;is_int&quot;), $arr3);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This is hard for me to read. I have to make my own mental stack and sort of compile it myself. Basically it should read in the reverse. &lt;code&gt;$dog-&amp;gt;wakeup-&amp;gt;bark();&lt;/code&gt; is easy to read compared to &lt;code&gt;bark(wakeup($dog))&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$arr1-&amp;gt;array_intersect_key($arr2)-&amp;gt;array_filter(&quot;is_int&quot;)-&amp;gt;array_merge($arr3);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You've made the step towards enabling object/method support now please use it in actual core php functions. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Let's rename 500 functions and change&#xA;  parameter order for them&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Shifting this functionality to methods would enable them to be renamed using some consistently. Would it break any backwards compatibility if strings and arrays had their own methods?&lt;/p&gt;&#xA;" OwnerUserId="5678" LastActivityDate="2010-12-18T17:20:12.237" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="9" />
  <row Id="27822" PostTypeId="2" ParentId="27797" CreationDate="2010-12-18T17:21:18.643" Score="3" ViewCount="" Body="&lt;p&gt;Being a Tech lead myself there are quite a few things I will suggest: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You need to earn respect from the team based on your technical credentials and nothing else. &lt;/li&gt;&#xA;&lt;li&gt;Keep abreast of whats the latest happening in your area of work -- communications of the ACM, relevant IEEE group memberships etc will go a long way &lt;/li&gt;&#xA;&lt;li&gt;Don't give up regular coding in an effort to bolster the team&lt;/li&gt;&#xA;&lt;li&gt;Attend technical seminars both in the capacity of listener and guest speaker as appropriate. Listen to what others are doing, adopt the best practices in the industry&lt;/li&gt;&#xA;&lt;li&gt;Consider whats happening in open source in your area of work &lt;/li&gt;&#xA;&lt;li&gt;Develop a good rapport with the marketing team, see where the competition has edge and decide technical solutions that get you right up there&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Best of luck!&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-18T17:21:18.643" CommentCount="1" />
  <row Id="27823" PostTypeId="2" ParentId="27798" CreationDate="2010-12-18T17:21:24.743" Score="2" ViewCount="" Body="&lt;p&gt;I think there is a trade off.  If you have a lot of short methods, it is often harder to debug them than one long method.  If you have to jump around the editor 20 or 30 different times to trace one method call, it will be hard to keep it all in your head.  Meanwhile if there is one well written clear method, even if it is 100 lines, it is often easier to keep in your head.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The real question is why should items be in different methods, and the answer as given above is code re-use.  If you aren't re-using the code (or don't know) then it may make sense to leave it in one giant easy to follow method and then as you need to re-use it, split the parts that need re-using into smaller methods.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In reality part of good method design is making functionally cohesive methods (essentially they do one thing).  The length of the methods do not matter.  If a function does one well defined thing and is 1,000 lines than it is a good method.  If a function does 3 or 4 things and is only 15 lines, then it is a bad method...&lt;/p&gt;&#xA;" OwnerUserId="3786" LastActivityDate="2010-12-18T17:21:24.743" CommentCount="1" />
  <row Id="27824" PostTypeId="2" ParentId="27324" CreationDate="2010-12-18T17:24:42.603" Score="0" ViewCount="" Body="&lt;p&gt;Use something like &lt;a href=&quot;http://www.logitech.com/en-us/keyboards/keyboard/devices/4956&quot; rel=&quot;nofollow&quot;&gt;Logitech G-19&lt;/a&gt;. Extra, programmable/macro'able keys. Similar to the Optimus Maximus listed above, but $200 instead of $2400. (And if you can find a G-15 with 18 keys... discontinued and rare now tho)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/95JfS.png&quot; alt=&quot;alt text&quot;&gt;&#xA;G19 - $200&#xA;&lt;img src=&quot;http://i.imgur.com/XAAgJ.png&quot; alt=&quot;alt text&quot;&gt;&#xA;G110 - $100&#xA;&lt;img src=&quot;http://i.imgur.com/cdgc4.png&quot; alt=&quot;alt text&quot;&gt;&#xA;G13&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Multiple buttons on the left are programmable. Hell... you can map any key you want to something. You can setup multiple setups, automatically activate based on active program. These key's activate when WoW.exe is open... those when VS2010 is open... etc.    &lt;/p&gt;&#xA;&#xA;&lt;p&gt;G13 is a programmable setup as well that could be used to augment the keyboard with shorcuts and macros just like the extra keys on the keyboards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other companies make similar offerings if you don't like Logitech. &lt;/p&gt;&#xA;" OwnerUserId="2536" LastActivityDate="2010-12-18T17:24:42.603" />
  <row Id="27826" PostTypeId="2" ParentId="27689" CreationDate="2010-12-18T17:27:57.890" Score="2" ViewCount="" Body="&lt;p&gt;Seems like you need to go to the next level and do &lt;strong&gt;&quot;Distributed&quot; scraping&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are going to need to build your application to be able to scale out to multiple servers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The challenge will be somehow managing the the separate notes in your scraping &quot;Grid&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could look at centralised head server that dispatches work out to the nodes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other things to avoid would be two or more servers scraping the same site (this is duplication that is simply not needed).&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-18T17:27:57.890" CommentCount="4" />
  <row Id="27827" PostTypeId="1" AcceptedAnswerId="27837" CreationDate="2010-12-18T17:31:43.783" Score="6" ViewCount="210" Body="&lt;p&gt;I am trying to figure about non-technical stuff that can increase my productivity at work. I don't really have my personal cabin that's silent n all. I listen to a lot of classical music, and I do see that it helps me concentrate. So does green tea, colas are a strict no-no. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What else folks? Looking forward to interesting hat tips.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-18T19:36:41.400" ClosedDate="2010-12-18T20:22:28.180" Title="Increasing your productivity at work, the non-technical way?" Tags="&lt;career&gt;&lt;productivity&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="2" />
  <row Id="27828" PostTypeId="2" ParentId="27798" CreationDate="2010-12-18T17:35:58.303" Score="2" ViewCount="" Body="&lt;p&gt;The question should be how many things should a function do. And usually, its rare that you need a 100 lines to do &quot;one&quot; thing. Again that depends on the level from which you are looking at the code : Is hashing a password one thing? Or is hashing and saving the password one thing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say, start with saving password as one function. When you feel that hashing is different, and you refactor the code. I am no expert programmer by any means, but IMHO, the whole idea of functions begin small is that the more atomic your functions are, the higher the chance of code re-use, never having to make the same change in more than one place etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have seen SQL stored procs that run over 1000 lines. Does the number of lines of stored procs also be less than 50? I don't know, but it makes reading the code, hell. Not only do you have to keep scrolling up and down, you need to give a few lines of code a name like &quot;this does validation1&quot;, &quot;this updates in DB&quot; etc. - a work that the programmer should have done.&lt;/p&gt;&#xA;" OwnerUserId="1195" LastEditorUserId="1195" LastEditorDisplayName="" LastEditDate="2010-12-20T10:10:13.470" LastActivityDate="2010-12-20T10:10:13.470" CommentCount="1" />
  <row Id="27829" PostTypeId="2" ParentId="27827" CreationDate="2010-12-18T17:39:51.250" Score="5" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Most Important. Close your Official Email/Outlook. Write a small service that reminds you to open and close outlook every 2 hours.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Block Facebook/YouTube/Personal Mail. I personally think  Twitter is ok (guilty:D)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Find out what distracts you, and find a way to avoid that. People distract you? - try to move to a conference room. Phone calls? - Switch off the phone.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I find that soft instrumental music helps me concentrate, so does the settings of you screen - as dark as possible for me. I try to go to office 2 hours before others come, and the work I do during that time is worth 4 or 5 hours afterwards. I can concentrate if I am alone, and am not distracted if I like what I'm doing.&lt;/p&gt;&#xA;" OwnerUserId="1195" LastActivityDate="2010-12-18T17:39:51.250" CommentCount="3" />
  <row Id="27830" PostTypeId="2" ParentId="27827" CreationDate="2010-12-18T17:43:03.107" Score="1" ViewCount="" Body="&lt;p&gt;Figure out which time of day you're most productive on the coding side and guard it carefully from distractions (exit your email client; all notifications off).  Strictly save emails, talking to collaborators, background reading etc for your least productive time of day.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-12-18T17:43:03.107" CommentCount="1" />
  <row Id="27831" PostTypeId="2" ParentId="5780" CreationDate="2010-12-18T17:51:32.933" Score="0" ViewCount="" Body="&lt;p&gt;I'm a bit surprised by the question, perhaps I was under the misimpression, that&#xA;a heavily skewed gender ratio was peculiar to my particular workplace. Having done the higher education thing in the 70's, women in physics and engineering were rarities, but it seemed that quite a few ended up in compsci, and even math. I currently work at an ME software vendor, the ratio of user trainee's in class (these would be practicing MEs not programers), is maybe 15-20% women. Compared to the low single digits percent that was common when I was that age, that looks pretty good to me. I assumed programmers would have an even greater female participation ratio.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One anecdotal observation regarding my own family. I did SW as a career, not by choice, but because it was the only decent career path available to me. I wanted to avoid it -you spend most of your time struggling with complicated broken things, which isn't my idea of something which promotes mental health. In any case my wife had started out as a programmer, but her first job was very unpleasant assembly code maintenence for a now defunct computer manufacturer. She hated that and switched to technical writing and would never again consider any sort of programming. So perhaps the differential social pressure to make a high wage, even if the profession isn't that intrinsically attractive is part of the reason the schooling to profession pipeline leakrate is so skewed.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastEditorUserId="8651" LastEditorDisplayName="" LastEditDate="2010-12-18T17:59:39.217" LastActivityDate="2010-12-18T17:59:39.217" CommunityOwnedDate="2011-01-31T19:23:00.177" />
  <row Id="27832" PostTypeId="2" ParentId="27324" CreationDate="2010-12-18T17:52:21.527" Score="0" ViewCount="" Body="&lt;p&gt;One example of a job specific keyboard (not programming) is the Stenotype. This is used where a high WPM is critical, like court transcriptions for instance. It works like playing chords on a piano, so it's probably worse for shift key haters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Stenotype&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Stenotype&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5678" LastActivityDate="2010-12-18T17:52:21.527" />
  <row Id="27833" PostTypeId="2" ParentId="27827" CreationDate="2010-12-18T17:52:46.630" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Alright this might sound counter intuitive but have a social life in the real world outside the computer, that way you are saved from addiction of all that &quot;social/networking&quot; which is a big productivity killer IMO.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Again from personal experience, I find it helpful when I take breaks in between when I rest my mind that helps refreshes my mind and concentrate on the task. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-18T17:52:46.630" />
  <row Id="27835" PostTypeId="2" ParentId="27827" CreationDate="2010-12-18T17:55:24.160" Score="1" ViewCount="" Body="&lt;p&gt;Being in good physical shape can help enormously with stamina, concentration, and mood.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to define your space and surround yourself with things that, when you glance at them, help you feel cheerful. When I had a gig in an open-space bullpen with no cubicle walls and no windows, a friend made me a custom hutch for my desk, and I added hardy office plants and used outdoor pictures as my desktop background.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your work area is noisy, listen to your music over noise-cancelling headphones. Pick Internet stations without a lot of chit-chat - I like Radio Swiss Classic and Radio Paradise for that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have to do something you don't really like, use a timer. Work like crazy for a while, give yourself a timed break, then back to it. Knowing I have a break coming up helps me have the discipline to not start goofing off because I'm feeling sorry for myself.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-18T17:55:24.160" CommentCount="1" />
  <row Id="27836" PostTypeId="2" ParentId="18424" CreationDate="2010-12-18T17:56:55.693" Score="0" ViewCount="" Body="&lt;p&gt;Yeah its definitely possible but you have to have someone high up, ideally a stakeholder in the business (partner for a small company CTO for a large one, etc) who has a say in company matters and can influence the owner / CEO. Even with the inernet many software companies still rely on a large sales force to manually push their products to companies (cold calls, etc) so its possible, if they are good at sales. However, this doesn't mean it would be a good company to work for, it just depends.&lt;/p&gt;&#xA;" OwnerUserId="10087" LastActivityDate="2010-12-18T17:56:55.693" />
  <row Id="27837" PostTypeId="2" ParentId="27827" CreationDate="2010-12-18T17:57:10.100" Score="0" ViewCount="" Body="&lt;p&gt;&quot;&lt;a href=&quot;http://sourcesofinsight.com/&quot; rel=&quot;nofollow&quot;&gt;Sources of Insight&lt;/a&gt;&quot; by J.D. Meier has lots of tips that I've found useful over time like using the rule of 3.  &lt;a href=&quot;http://gettingresults.com/wiki/Main_Page&quot; rel=&quot;nofollow&quot;&gt;Getting Results|The Agile Way&lt;/a&gt; would be an on-line book that also has various ideas that may be useful.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-18T17:57:10.100" />
  <row Id="27839" PostTypeId="2" ParentId="27798" CreationDate="2010-12-18T18:08:53.427" Score="2" ViewCount="" Body="&lt;p&gt;I find it easier to keep track of what I'm doing if I can see the entire function all at once. So here's how I prefer to write functions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Short enough to fit on my monitor with a reasonable font.&lt;/li&gt;&#xA;&lt;li&gt;If it needs to be longer than #1, short enough to print on a piece of paper in a reasonable font.&lt;/li&gt;&#xA;&lt;li&gt;If it needs to be longer than #2, short enough to print 2-up on a piece of paper.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I rarely write functions longer than that. Most of those are giant C/C++ switch statements.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-18T18:08:53.427" />
  <row Id="27840" PostTypeId="2" ParentId="27749" CreationDate="2010-12-18T18:17:30.333" Score="1" ViewCount="" Body="&lt;p&gt;You shouldn't look at pair programming in what language one knows better than the other, I believe if you want a program to be done in C++ pick 2 people that are good at that, or a fast learner, the same goes to any other language/technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try looking at other assets that the two might have, they should have always different approaches, if they fight over ideas that's a good thing because from 2 good ideas a great one might be found, unless it gets ugly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also a pair should always be of people with similar skills otherwise one will be doing all the work and the other trying to catch up, worst case scenario it will take double, or more, of the time as if the best person would be doing it all alone, as he will always be explaining what he does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is from my experience at university as we always do works in teams, working with people that have similar skills, to me, has always proved to be more rewarding.&lt;/p&gt;&#xA;" OwnerUserId="10674" LastActivityDate="2010-12-18T18:17:30.333" />
  <row Id="27841" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T18:21:49.940" Score="5" ViewCount="" Body="&lt;p&gt;There are some fairly decent array functions in PHP, providing list processing capacity, with callbacks and &lt;code&gt;create_function()&lt;/code&gt; providing a basic lambda calculus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main problem with it, is that it is far too verbose in PHP, a shorthand system would be excellent, particularly where the map/reduce commands are concerned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More importantly, the list functions are not entirely complete:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;there is no &lt;code&gt;foldr&lt;/code&gt; function, &lt;code&gt;array_reduce()&lt;/code&gt; provides &lt;code&gt;foldl&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;array_map()&lt;/code&gt; should pass the key in the second argument, as &lt;code&gt;array_walk()&lt;/code&gt; does&lt;/li&gt;&#xA;&lt;li&gt;an &lt;code&gt;array_map_keys()&lt;/code&gt; could be useful for key modification&lt;/li&gt;&#xA;&lt;li&gt;list comprehension is very clunky, &lt;code&gt;range()&lt;/code&gt;, &lt;code&gt;array_fill()&lt;/code&gt; and &lt;code&gt;array_fill_keys()&lt;/code&gt; only handle so many cases, and &lt;code&gt;array_filter()&lt;/code&gt; is separate&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm not aiming to make PHP in to Haskell, but PHP is often used for list type data structure manipulation and having a full set of tools in this regard would be useful.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-18T18:21:49.940" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="1" />
  <row Id="27842" PostTypeId="2" ParentId="5780" CreationDate="2010-12-18T18:33:41.743" Score="2" ViewCount="" Body="&lt;p&gt;Simon Baron Cohen*, in &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/046500556X&quot; rel=&quot;nofollow&quot;&gt;The Essential Difference: Male And Female Brains And The Truth About Autism&lt;/a&gt;, suggests that there's a spectrum of brain masculinity/femininity, where on one end you have autism and people with generally a strong ability to analyze things systematically, and on the other end of the spectrum you have people with strong empathy. The more &quot;male&quot; the brain is (which is dependent, iirc, on hormone secretions during pregnancies, and other factors) the more it tends to be located toward the first end of the spectrum. If true, this can be a partial cause of having less women in exact sciences, engineering, and so on. There are of course other reasons, for example external social factors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Simon_Baron-Cohen&quot; rel=&quot;nofollow&quot;&gt;The author is&lt;/a&gt; professor of Developmental Psychopathology in the Departments of Psychiatry and Experimental Psychology at the University of Cambridge in the United Kingdom&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An interesting read.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Yes, it's his cousin.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="494" LastEditorUserId="494" LastEditorDisplayName="" LastEditDate="2011-02-21T16:47:42.013" LastActivityDate="2011-02-21T16:47:42.013" CommunityOwnedDate="2011-01-31T19:23:00.177" CommentCount="3" />
  <row Id="27843" PostTypeId="2" ParentId="27749" CreationDate="2010-12-18T18:38:04.180" Score="2" ViewCount="" Body="&lt;p&gt;I've found pair programming very useful for learning/teaching. But don't put a guru with a newbie, the newbie will be overwhelmed and the guru annoyed. You should have one person who knows a bit more than the other, or two persons that know different things. In that case pair programming is a very efficient way of transferring the skill set.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is IMO least useful when two programmers have worked so much together that they would solve a problem in exactly the same way if they did it separately. Then you are wasting one persons time.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-18T18:38:04.180" CommentCount="1" />
  <row Id="27844" PostTypeId="2" ParentId="27814" CreationDate="2010-12-18T18:46:51.017" Score="5" ViewCount="" Body="&lt;p&gt;Many programmers retreat into the predictable world of code to get away from the unpredictable world of real life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used to do this, and it was a really bad idea! The more I did this, the harder I found it to cope with real life. It helped wreck my business and almost wrecked my marriage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I got some therapy, and started facing life. The more I did that, the easier it got. Now, I actively look for irrational fears to face down. People who used to think I was loony now look to me for stability and support. My wife now compares me to a rock or a giant oak tree that's not easily shaken.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also now write more and better code and make way more money than when I was programming to avoid other parts of my life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you think you might have a problem with this, I urge you to deal with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Twenty years ago, a friend of mine was a brilliant C++ programmer who was consulted by the ANSI committee and recruited by Netscape. But he started retreating into technology and left his wife to deal with everything else. Then he insisted she quit dealing with anything she'd have to ask him about. He lost his job, they lost their house, and now he's 55 and doesn't code; he mostly does things like obsessively reorganize his Legos.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-18T18:46:51.017" CommentCount="1" />
  <row Id="27845" PostTypeId="2" ParentId="27483" CreationDate="2010-12-18T18:50:36.197" Score="2" ViewCount="" Body="&lt;p&gt;My experience with Adobe Reader and Nook for PC is that they are essential for travel and for going back and forth to work or class, but eReaders are not a panacea. You'll still need the hard cover as well, depending on the particular book. As you've noted, each format has its strengths and weaknesses, and using one does not preclude the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nook for PC does a terrible job of presenting screen captures (for example the screencaps in the Nook version of Morville &amp;amp; Rosenfeld's &quot;Information Architecture for the World Wide Web&quot; are awful compared to the hard copy).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's realistic to assume that many people will want both an electronic and hard copy for different situations, which is probably why some sellers now offer both as a package deal (for example, I got Luke Wroblewski's &quot;Web Form Design&quot; PDF for free when I bought the paperback).&lt;/p&gt;&#xA;" OwnerUserId="10813" LastActivityDate="2010-12-18T18:50:36.197" />
  <row Id="27846" PostTypeId="2" ParentId="27827" CreationDate="2010-12-18T18:52:53.433" Score="2" ViewCount="" Body="&lt;p&gt;Hi &lt;/p&gt;&#xA;&#xA;&lt;p&gt;one option is &lt;a href=&quot;http://www.pomodorotechnique.com/faq.html&quot; rel=&quot;nofollow&quot;&gt;Pomodoro&lt;/a&gt; Technique&lt;/p&gt;&#xA;" OwnerUserId="10727" LastActivityDate="2010-12-18T18:52:53.433" />
  <row Id="27847" PostTypeId="1" AcceptedAnswerId="27852" CreationDate="2010-12-18T18:54:18.773" Score="2" ViewCount="204" Body="&lt;p&gt;Coming from eclipse I've developed my own coding standards which I got used to. In Visual C# 2010 however, it appears that some coding standards that MS recommends are enforced in the default configuration. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;E.g.: I'm used to write conditional statements like this: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (somecondition) {&#xA;    return true;&#xA;} else {&#xA;    return false;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But the braces are forced to a newline in visual c#. Is it recommended to use that standard ?&lt;/p&gt;&#xA;" OwnerUserId="10859" LastActivityDate="2010-12-18T19:30:59.267" Title="Is it advisable to disable the Microsoft enforced coding standards in VC# 2010 ?" Tags="&lt;c#&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="27848" PostTypeId="2" ParentId="27847" CreationDate="2010-12-18T18:58:31.957" Score="7" ViewCount="" Body="&lt;p&gt;The old coding standards seem like they are from Java environment. I think it's better to stick to coding standards that the new language uses than transfers standards from language to language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will save yourself a trouble when working with someone else or taking/using existing code.&lt;/p&gt;&#xA;" OwnerUserId="4852" LastActivityDate="2010-12-18T18:58:31.957" />
  <row Id="27849" PostTypeId="2" ParentId="27847" CreationDate="2010-12-18T19:02:09.997" Score="4" ViewCount="" Body="&lt;p&gt;I resist the urge to fun of you for not simplifying that statement to &lt;code&gt;return somecondition&lt;/code&gt;, since that's clearly not what you're asking about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is one of the classic style holy wars. Personally, I prefer the C# convention because visual alignment improves readability (for me), but in practice, I adopt the convention that's most common in the development community in question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is to say, in Java, I typically start the brace on the conditional line. In C#, I start a new line. In ruby or python there are no braces needed. In Lisp, I typically follow elisp conventions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My opinion is simple: following a convention is more important than which convention you use.&lt;/p&gt;&#xA;" OwnerUserId="7080" LastActivityDate="2010-12-18T19:02:09.997" CommentCount="2" />
  <row Id="27850" PostTypeId="2" ParentId="27847" CreationDate="2010-12-18T19:05:28.593" Score="12" ViewCount="" Body="&lt;p&gt;Brace style in C# is not enforced by Visual Studio. In fact you can customize it to format source matching your style.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look under Tools &gt; Options, Text Editor &gt; C# &gt; Formatting &gt; New Lines there you'll find lots of options to control the behavior.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, you may want to consider having your coding style adapt to the style of other team members but you should not need to change the style to match the defaults in the IDE.&lt;/p&gt;&#xA;" OwnerUserId="10852" LastActivityDate="2010-12-18T19:05:28.593" />
  <row Id="27851" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T19:15:05.353" Score="11" ViewCount="" Body="&lt;p&gt;I would like to see a legit method of creating/defining CONSTANT arrays. There are a few hackish ways to simulate this kind of functionality but it would be nice if it was just a straight up feature of PHP.  It would be nice if you could create an array in a way that is similar to Java's &quot;final&quot; declaration. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I created a login system that is very quick to setup. All you have to do is change the contents of an array in a text file to specify the fields you want for user information.  Using a swath of for loops it handles everything from form generation and input sensitization, to database calls but it is all dependent on this original array.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The file with the array is locked down with permissions but once the array is moving around in the ether it is mutable. Although I feel the system is pretty secure I don't like leaving anything to chance.  A method to finalize arrays would be nice for a situation like this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;New Idea!!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ohhh, I thought of something else I would really really like in php.  I would like some kind of system to control php file operations and directory operations similar to the way .htaccess works.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The .phpaccess file should trigger some kind same domain/same origin policy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, If I were hosting many sites with virtual hosts I could have a .phpaccess file in a directory that would tell php to check the orgin of any scripts being executed which are trying to operate on my protected directory.  If the script did not come from that directory or its sub-directories then the file operations / or socket operations will be denied.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think a system like this would make virtual hosting a much safer environment.  If you could place one of these at the top of each virtual host it would lessen the chance of someone finding a way to sneak in from a neighboring virtual host.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also if it would be good to have a method of securing it in the inverse of this manner. ie, restricting the reach of scripts in a single directory to that directory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its the yin and the yang ya know!&lt;/p&gt;&#xA;" OwnerUserId="10860" LastEditorUserId="10860" LastEditorDisplayName="" LastEditDate="2010-12-26T20:37:43.890" LastActivityDate="2010-12-26T20:37:43.890" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="3" />
  <row Id="27852" PostTypeId="2" ParentId="27847" CreationDate="2010-12-18T19:18:21.370" Score="5" ViewCount="" Body="&lt;p&gt;Languages all have their own odd coding styles - I'd say it's easiest just to follow them and don't think too much about it. If everyone just follows the most common standard of the language, then no time is wasted on fighting about personal ideas of good style.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the case of C#, the programs &lt;strong&gt;StyleCop&lt;/strong&gt; and &lt;strong&gt;FxCop&lt;/strong&gt; check's your C# code and .NET binaries against some coding style guidelines defined by Microsoft.&lt;/p&gt;&#xA;" OwnerUserId="10861" LastActivityDate="2010-12-18T19:18:21.370" CommentCount="1" />
  <row Id="27853" PostTypeId="2" ParentId="27847" CreationDate="2010-12-18T19:30:59.267" Score="2" ViewCount="" Body="&lt;p&gt;When in Rome...or Redmond.  I switch back and forth between C# and Java in my job, and I use the convention of each language because, as mentioned earlier, it avoids issues when looking at other's code, or for others to read mine.&lt;/p&gt;&#xA;" OwnerUserId="2164" LastActivityDate="2010-12-18T19:30:59.267" />
  <row Id="27854" PostTypeId="2" ParentId="27827" CreationDate="2010-12-18T19:32:41.653" Score="1" ViewCount="" Body="&lt;p&gt;Work from home...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can still be available to your colleagues through phone or chat, but they're less likely to disturb you just because they happen to pass in front of your door.&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-12-18T19:32:41.653" CommentCount="2" />
  <row Id="27855" PostTypeId="2" ParentId="27827" CreationDate="2010-12-18T19:36:41.400" Score="1" ViewCount="" Body="&lt;p&gt;Coffee?  Minimizing Outlook is the biggest one for me.  The difficulty is that email is used like IM at my workplace and people expect me to respond in 5 minutes.  I felt guilty at first, but then realized they'd just call if it was actually something that needed a quick response.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do try to do a lap around the office every now and then as a break, this helps me re-focus when I sit back down.  It's better than taking a break at the desk because then I start looking at SO.&lt;/p&gt;&#xA;" OwnerUserId="2164" LastActivityDate="2010-12-18T19:36:41.400" />
  <row Id="27856" PostTypeId="2" ParentId="27335" CreationDate="2010-12-18T20:02:05.183" Score="2" ViewCount="" Body="&lt;p&gt;Before doing anything, it is best to have your project in source control. This way, you can rollback changes, or work on major changes on a seperate branch, as well as tag milestones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next, write tests for any code you plan to change. You don't need to go all out all at once, writing tests for everything. Just what you plan to be immediately working on. The theory goes that given enough time, most of the code base will be covered by tests. Note that some refactorings are &quot;safe&quot; to do without tests - these are documented in the &lt;em&gt;Legacy Code&lt;/em&gt; book mentioned earlier, and doubtless elsewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With tests in place for a section of code, change the code. Do whatever you need to, as long as the tests still pass.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even with legacy code, you can do TDD if making additions or changes. Just write tests first for your anticipated changes, see them fail, and then make the changes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some tools may be useful here. &lt;a href=&quot;http://www.ndepend.com/&quot; rel=&quot;nofollow&quot;&gt;NDepend&lt;/a&gt; can point out highly coupled code and other smells. &lt;a href=&quot;http://www.ncover.com/&quot; rel=&quot;nofollow&quot;&gt;NCover&lt;/a&gt; tracks your code coverage levels. &lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=917023F6-D5B7-41BB-BBC0-411A7D66CF3C&quot; rel=&quot;nofollow&quot;&gt;FxCop&lt;/a&gt; is essentially a code correctness checker, beyond what the compiler does. These are all useful tools to have handy for a project of any real size, especially the legacy variety.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately, it's a multi-step process. Don't try to do it all at once, just take it a bit at a time.&lt;/p&gt;&#xA;" OwnerUserId="8187" LastActivityDate="2010-12-18T20:02:05.183" />
  <row Id="27857" PostTypeId="2" ParentId="14297" CreationDate="2010-12-18T20:35:42.943" Score="1" ViewCount="" Body="&lt;p&gt;Something like this&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;x.y.z.a[b].c&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This smells like bio-hazard. This much member referencing is never ever a good sign.And yes this is a typical expression in the code I am working with.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-18T20:35:42.943" CommunityOwnedDate="2010-12-18T20:35:42.943" />
  <row Id="27858" PostTypeId="2" ParentId="25442" CreationDate="2010-12-18T20:39:07.830" Score="1" ViewCount="" Body="&lt;p&gt;I personally recommend Asembly.  Nothing makes you a better programmer than learning ASM.&lt;/p&gt;&#xA;" OwnerUserId="10381" LastActivityDate="2010-12-18T20:39:07.830" />
  <row Id="27859" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T20:39:10.530" Score="0" ViewCount="" Body="&lt;p&gt;PHP is the only one in a list of languages I regularly switch between that requires the use of &quot;$this-&gt;&quot; to call Class functions. No biggie but I wouldn't mind my code working without.&lt;/p&gt;&#xA;" OwnerUserId="10467" LastActivityDate="2010-12-18T20:39:10.530" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="6" />
  <row Id="27860" PostTypeId="1" CreationDate="2010-12-18T20:39:54.070" Score="6" ViewCount="276" Body="&lt;p&gt;If your connection to the world was out for 2-3 hours a day, could you still code? How much do you rely on the Internet, particularly for reference materials?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More to the point, &lt;strong&gt;could you lessen your dependence on the Internet if you needed to?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Experiences where you need Net access (e.g., for a repository or for deployment) are relevant, of course, but How could you be productive without access (temporarily).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[I wanted to make this a CW, but I see that's not an option here. Also, this question probably needs some fleshing out... if anyone can and wants to edit it, feel free. I was going to title this, &quot;programming on a train&quot; or &quot;programming with a spotty connection&quot; or something...]&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-12-20T05:55:50.750" Title="Spotty or No Internet Connection: Programming?" Tags="&lt;internet&gt;" AnswerCount="11" />
  <row Id="27861" PostTypeId="2" ParentId="27726" CreationDate="2010-12-18T20:42:14.287" Score="0" ViewCount="" Body="&lt;p&gt;If you want to be an expert in anything, you should put in at least 10,000 hours.  I've been programming since age 13, and I still don't think I've done enough.  Keep at it unless it's hurting the rest of your life.&lt;/p&gt;&#xA;" OwnerUserId="10381" LastActivityDate="2010-12-18T20:42:14.287" />
  <row Id="27862" PostTypeId="1" CreationDate="2010-12-18T20:46:53.947" Score="2" ViewCount="70" Body="&lt;p&gt;In our local city in the UK, there are as far as I am aware no developer conferences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am confident that our region has many professional developers as well as many graduating students whom who really benefit from a conference.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to ask the following questions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What steps or advice would one take if the task was given to set up a local developers conference?&lt;/li&gt;&#xA;&lt;li&gt;What would the costing look like? (excluding building/hosting of website(s))&lt;/li&gt;&#xA;&lt;li&gt;How would one build interest and promote this?&lt;/li&gt;&#xA;&lt;li&gt;How would I approach, Local Companies &amp;amp; Universities to collaborate with them?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm not just aiming this question to users who may have experience in setting up such conferences (but are highly welcome). Rather how would you attack this if you was tasked with this?&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-19T19:12:44.550" Title="Setting up Developers Conference" Tags="&lt;management&gt;&lt;conference&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="27863" PostTypeId="2" ParentId="27686" CreationDate="2010-12-18T20:50:39.510" Score="0" ViewCount="" Body="&lt;p&gt;Remember: All code can be reduced by at least 1 instruction.  All code has at least 1 bug.  Therefore, all code can be reduced to a single instruction which does not work.  Hope that helps!&lt;/p&gt;&#xA;" OwnerUserId="10381" LastActivityDate="2010-12-18T20:50:39.510" CommunityOwnedDate="2011-02-28T23:19:47.007" CommentCount="2" />
  <row Id="27864" PostTypeId="2" ParentId="27860" CreationDate="2010-12-18T20:52:37.860" Score="1" ViewCount="" Body="&lt;p&gt;I have that issue frequently. I use an Ethernet radio for my connection. It works well as long as nothing is blocking it, but we do have quite a bit of construction going on around us. Cranes, building painters, birds .. lots of things disrupt it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the most part, all of the documentation that I need can be accessed locally. I also keep my copies of the SO database dumps up to date as they release them, which help if you don't mind doing some queries. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the most part, if I hit something where I really need help, I can just do something else for a few hours while waiting for my connection to come back. Usually, that's only when I can't figure something out, and I need to see working code in order to be able to do so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did have a week long outage a couple of months ago, which made me re-think my idea that it was kind of silly to buy reference books since much of what is inside of them can be found on-line :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure I could become even less dependent on the internet, however minor outages don't disrupt me very much.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-18T20:52:37.860" CommentCount="1" />
  <row Id="27865" PostTypeId="2" ParentId="27860" CreationDate="2010-12-18T20:56:46.343" Score="0" ViewCount="" Body="&lt;p&gt;Yeah, download your documentation.&#xA;If doing web development, install more RAM and VMs.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-18T20:56:46.343" CommentCount="1" />
  <row Id="27866" PostTypeId="2" ParentId="27860" CreationDate="2010-12-18T21:01:03.660" Score="0" ViewCount="" Body="&lt;p&gt;I used to have a huge binder of documentation, and code snippets I thought were useful.  I dropped that noise when my 2-hour daily limit on dial-up internet usage went away.  I refer to web-based documentation solely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, I could program without easily accessible references, but I would be much slower at it.&lt;/p&gt;&#xA;" OwnerUserId="5194" LastActivityDate="2010-12-18T21:01:03.660" />
  <row Id="27867" PostTypeId="2" ParentId="27860" CreationDate="2010-12-18T21:03:21.720" Score="5" ViewCount="" Body="&lt;p&gt;I did spend about 15 years programming without a fixed internet connection, of those some 5-6 years at a professional level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So how did we do it back then? Well first of all, most development tools came with built in language, library or API references. For example Borland and Microsoft shipped IDE's with help files covering most of what was needed for development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But when Java shipped in 1995, you usually downloaded everything including the Java DOC HTML files. Nowadays I usually settle with a bookmark to the latest online JDK (Which strange enough is AD-free).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But except for documentation, depending on what kind of application you are developing, various integration scenarios may make it hard to develop outside your usual working environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But there is always stuff that has to be done that does not require a working setup. You can write unit tests, document code, do some refactoring or other maintenence tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This summer I was telecommuting and had to setup a working environment to do software development for an IPTV service without relying on a fixed high speed internet connection. I did have mobile internet but it was not able to carry IPTV streams so I had to use &lt;a href=&quot;http://tcpreplay.synfin.net/&quot; rel=&quot;nofollow&quot;&gt;tcpreplay&lt;/a&gt; and VLC to get a working test environment up and running.&lt;/p&gt;&#xA;" OwnerUserId="7098" LastActivityDate="2010-12-18T21:03:21.720" CommentCount="1" />
  <row Id="27868" PostTypeId="2" ParentId="27335" CreationDate="2010-12-18T21:10:40.793" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Yes - Web Applications are different to Web Sites &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I would treat them separately. If you have one part of your site that is simply a collection of documents (that look the same to anonymous users and logged-in users alike) - then the best method of structuring it is very different from a web app that serves dynamically different pages to each user. Split those two parts of the site up into two apps / components and tackle each part differently. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Start Using Version Control&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Once your code is under version control, you can go through and, confidently, remove all unnecessary code that you had previously kept 'just in case' etc. I don't know how I survived without version control. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Reduce the infinities&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If four different urls all point to the same resource, then the problem is much bigger. &#xA;You end up dealing with an infinite amount of urls. As soon as you can, ensure that you have an URL Normalisation policy in place. Once that is done, you can start attaching semantic meanings to URLs and be able to do reverse lookups from resource-to-url. This allows you to separate the 'web imprint' from the 'resources' of the site. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to ask yourself, &quot;given an url what is its normalised form?&quot;. Once you have got this pinned down. Then then 50,0000+ urls on your site can be reduced to say, 2,000. which is a lot easier to comprehend and manage in your mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;see: &lt;a href=&quot;http://www.sugarrae.com/be-a-normalizer-a-c14n-exterminator/&quot; rel=&quot;nofollow&quot;&gt;http://www.sugarrae.com/be-a-normalizer-a-c14n-exterminator/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Start by modelling 'what is', not 'what you want it be'&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you are tidying up a legacy site, that was not designed with best practice in mind from the start, then it is tempting to jump from 'a mess' to 'the ideal design'. I believe that you need to do it in at least two steps:  'mess' -&gt; 'well modelled legacy code' -&gt; 'ideal new code with added features'. Stop adding features. Concentrate on fixing the mess or encapsulating it behind an anti-corruption layer. Only then, can you start to change the design into something better. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;See: &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000069.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/fog0000000069.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See: &lt;a href=&quot;http://www.laputan.org/mud/&quot; rel=&quot;nofollow&quot;&gt;http://www.laputan.org/mud/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Putting it under test is a good idea. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Create a test suite / framework and start adding tests. But, its quite tricky to test some legacy code. So, don't get too hung up over it. As long as you have the framework there, &#xA;you can add tests little by little.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See: &lt;a href=&quot;http://www.simpletest.org/en/web_tester_documentation.html&quot; rel=&quot;nofollow&quot;&gt;http://www.simpletest.org/en/web_tester_documentation.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Have courage in your convictions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Most of the literature on best practices of software development is desktop-centric/Enterprise App Centric. While your site is in a mess you read these books and you can be in awe of the wisdom that exudes from them. But, do not forget that most of this best practice has been accrued in times before the web/SEO became important. You know a lot about the modern web, more than is mentioned in classic books like POEA, Gof etc. There is a lot to take from them, but do not completely discard your own experience and knowledge. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I could go on. But those are some things that I have picked when refactoring an old legacy site into a shiny new one.&lt;/p&gt;&#xA;" OwnerUserId="6720" LastEditorUserId="6720" LastEditorDisplayName="" LastEditDate="2010-12-19T20:13:56.503" LastActivityDate="2010-12-19T20:13:56.503" CommentCount="1" />
  <row Id="27870" PostTypeId="2" ParentId="15002" CreationDate="2010-12-18T21:19:00.290" Score="1" ViewCount="" Body="&lt;p&gt;I found the metaprogramming facilities in Boo and Ruby to be quite useful for building domain specific languages. Ayende Rahien's &lt;a href=&quot;http://www.manning.com/rahien/&quot; rel=&quot;nofollow&quot;&gt;Domain Specific Languages in Boo&lt;/a&gt; was helpful when I was building a DSL for test automation. It may not directly apply to JetBrain's system, but it should be helpful for understanding the potential of a flexible language infrastructure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java itself has a fair amount of boilerplate that's required in order to get anything useful done. DSLs and code generation tools can help isolate some of that cruft, if they are well-designed. I don't know Jetbrains tool well enough to tell you if it's worth learning, but understanding how to build DSLs and understanding metaprogramming in general is totally worth it. It looks like JetBrains' product occupies a niche similar to the Microsoft Visualization and Modeling SDK, but I found the Microsoft tool a bit too frustrating in my limited use of it, mostly due to the emphasis on visual tools. Since the MPS seems to do a pretty good job on focusing on the text editing experience for the generated DSL, that might be enough to convince me to dig into it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a certain subculture of developers who are cynical about any kind of meta-programming, and another subculture that is skeptical of any language X where X is not the language they are used to. Sufficiently old-school programmers may recall the 4GL movement that turned out, like many over-hyped endeavors, not to be all the vendors promised; some vendors claimed their language would let businesspeople who understand their domain write code and minimize the need for lower-level programmers. That rarely worked out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you may have some organizational resistance to using such tools, but like any tool, used effectively, it can make your team more effective and efficient.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The downside is that, unless you're already experienced doing so, building a DSL may still take you more time than building similar business logic the way you always have: in the clunky constructs of your usual language. The payoff, over time, is worth it, in my opinion. If you've worked with a system that uses metaprogramming effectively, like Rails in Ruby, you'll quickly understand how DSLs can pay off. If you've used something like Boo to build a DSL by altering the compiler pipeline (less painful than it sounds, at least in Boo), you quickly enjoy the power better ways of expressing your problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But unless you've got a team that is already in their element using such tools, you'll need to start slowly. Maybe the business rules for pricing a contract or product would benefit from a terse, easy-to-read language that allowed you to rapidly respond to changes in offerings, discounting schemes, etc. Or you could find the most tedious, repetitive coding task you have and explore whether a DSL that simplifies that task can help you.&lt;/p&gt;&#xA;" OwnerUserId="7080" LastEditorUserId="7080" LastEditorDisplayName="" LastEditDate="2010-12-18T21:58:36.980" LastActivityDate="2010-12-18T21:58:36.980" />
  <row Id="27871" PostTypeId="2" ParentId="27860" CreationDate="2010-12-18T21:19:10.727" Score="1" ViewCount="" Body="&lt;p&gt;If I find myself without an Internet Connection, I spend more time in a planning stage for my code. Make some diagrams for the more difficult things I know I will have to complete in the future. Write up lots of pseudo-code. You don't need an API for pseudo-code =).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I might also clean it up some and try to back over things I might not have implemented the way I wanted to.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-12-18T21:19:10.727" CommentCount="2" />
  <row Id="27872" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T21:29:39.193" Score="25" ViewCount="" Body="&lt;p&gt;I really wish for better unicode support out of the box. Most languages move in that direction but PHP still have strange commands littered all over.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;PHP strings are just plain byte arrays. Their content is non-portable as it is dependent on the current default encoding.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The same applies to the representation built by serialize. It contains a length-prefixed byte representation of the string without actually storing any encoding information.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Most PHP (string) functions have no clue about Unicode. For a detailed list including each function’s risk level, refer to: &lt;a href=&quot;http://www.phpwact.org/php/i18n/utf-8&quot; rel=&quot;nofollow&quot;&gt;http://www.phpwact.org/php/i18n/utf-8&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blog.ginkel.com/2010/03/php-unicode-support-or-the-lack-thereof/&quot; rel=&quot;nofollow&quot;&gt;http://blog.ginkel.com/2010/03/php-unicode-support-or-the-lack-thereof/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10870" LastActivityDate="2010-12-18T21:29:39.193" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="5" />
  <row Id="27873" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T21:30:49.807" Score="-1" ViewCount="" Body="&lt;p&gt;Being able to initialize objects directly and without having to cast an array to an object:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$my_object = object('property'=&amp;gt;'value','property2'=&amp;gt;'value2', [...]);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Instead of using &quot;new stdClass()&quot; and then setting property by property in separate lines.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastEditorUserId="10869" LastEditorDisplayName="" LastEditDate="2010-12-31T19:28:17.823" LastActivityDate="2010-12-31T19:28:17.823" CommunityOwnedDate="2010-12-19T01:28:39.613" />
  <row Id="27874" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T21:31:58.533" Score="13" ViewCount="" Body="&lt;p&gt;Normalize the global namespace with a well thought-out naming convention that makes sense to new-comers!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To quote our beloved Jeff Atwood: &lt;a href=&quot;http://www.codinghorror.com/blog/2008/05/php-sucks-but-it-doesnt-matter.html&quot; rel=&quot;nofollow&quot;&gt;PHP sucks but it doesn't matter&lt;/a&gt;!&lt;/p&gt;&#xA;" OwnerUserId="4106" LastActivityDate="2010-12-18T21:31:58.533" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="2" />
  <row Id="27875" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T21:33:31.500" Score="9" ViewCount="" Body="&lt;p&gt;My two biggest wishes as a hardcore PHP programmer:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Support finally. It's a big mess to fictionally get around this through flags or similar means.&lt;/li&gt;&#xA;&lt;li&gt;I would LOVE to see support on C#'s syntax for getters and setters. When you have lots of getters and setters a simple syntax such as C#'s is a great performance booster instead of doing it the Java way and writing getter and setter methods. Magic methods are awesome in cases where you want to create members dynamically (for instance, if you want to give a template renderer some variables to use), but are no good for normal properties on which you would like the IDE to autocomplete, know their types, and so on. this would help make code smaller and still as readable and easy to use.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="10871" LastActivityDate="2010-12-18T21:33:31.500" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="2" />
  <row Id="27876" PostTypeId="2" ParentId="27860" CreationDate="2010-12-18T21:43:24.400" Score="2" ViewCount="" Body="&lt;p&gt;I can certainly code without the Internet, but I am much more productive with it.  I work in several languages and it's simply not a good use of my brain space to memorize all the minor details of all of them.  I'd rather spend 3 seconds on a Google search to find what I need.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastActivityDate="2010-12-18T21:43:24.400" />
  <row Id="27877" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T21:51:21.397" Score="69" ViewCount="" Body="&lt;p&gt;More dereferencing:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;echo something_that_returns_array()[4];&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Others have mentioned named parameters, and shorter array syntax. I wouldn't mind shorter object syntax, as well.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$a1 = array(1, 2, 3, 4);&#xA;$a2 = [1, 2, 3, 4];&#xA;&#xA;$b1 = (object)array('name' =&amp;gt; 'foo');&#xA;$b2 = {'name' =&amp;gt; 'foo'}; // or something?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="444" LastActivityDate="2010-12-18T21:51:21.397" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="6" />
  <row Id="27878" PostTypeId="1" CreationDate="2010-12-18T21:55:08.727" Score="0" ViewCount="145" Body="&lt;p&gt;Not sure if this is the right overflow site to ask this question, but I'll try my luck here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I were to tell the border guards I was going for an interview is there a chance I wouldn't be let through? I have all the paperwork from the company I'm interviewing for that confirms it's just an interview. I also have a return ticket back to Ottawa.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="10880" LastActivityDate="2010-12-18T22:07:14.793" ClosedDate="2010-12-18T22:12:29.227" Title="Going for interview in California from Ottawa -- what to tell border guards?" Tags="&lt;jobs&gt;&lt;interview&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="27879" PostTypeId="2" ParentId="27661" CreationDate="2010-12-18T21:58:38.270" Score="0" ViewCount="" Body="&lt;p&gt;At my job I work in a small team and everyone is assigned to all projects for a couple of reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If someone gets hit by a bus, there is someone else to step in&lt;/li&gt;&#xA;&lt;li&gt;Even if all team members are equally experienced, people will still have preferences or experience for certain tasks&lt;/li&gt;&#xA;&lt;li&gt;It keeps the team more involved &lt;/li&gt;&#xA;&lt;li&gt;Context switches can improve productivity (when applied carefully)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I have to say though that sometimes I wished I had just one thing going on to focus on, and nothing else, while other times I welcome the relief of being able to have something else to do.&lt;/p&gt;&#xA;" OwnerUserId="2206" LastActivityDate="2010-12-18T21:58:38.270" />
  <row Id="27880" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T22:00:30.233" Score="0" ViewCount="" Body="&lt;p&gt;Data types like cdnicoll stated would be great. &lt;/p&gt;&#xA;" OwnerUserId="10885" LastActivityDate="2010-12-18T22:00:30.233" CommunityOwnedDate="2010-12-19T01:28:39.613" />
  <row Id="27881" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T22:00:36.387" Score="4" ViewCount="" Body="&lt;p&gt;Bring taint support up to latest version and include it in standard builds, preferably turned on in the default config &lt;a href=&quot;http://wiki.php.net/rfc/taint&quot; rel=&quot;nofollow&quot;&gt;http://wiki.php.net/rfc/taint&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="923" LastEditorUserId="923" LastEditorDisplayName="" LastEditDate="2010-12-19T09:06:01.427" LastActivityDate="2010-12-19T09:06:01.427" CommunityOwnedDate="2010-12-19T01:28:39.613" />
  <row Id="27882" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T22:03:33.243" Score="28" ViewCount="" Body="&lt;p&gt;Oh. Type hinting for primitives. That would be nice.&lt;/p&gt;&#xA;" OwnerUserId="10886" LastActivityDate="2010-12-18T22:03:33.243" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="8" />
  <row Id="27883" PostTypeId="2" ParentId="27860" CreationDate="2010-12-18T22:04:41.400" Score="12" ViewCount="" Body="&lt;p&gt;I developed for many years from South Africa where Internet connectivity was spotty at best, sometimes down for days at a time, and access to cloud services was awfully slow. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We had to just adjust our development practices to deal with it. It's still possible to be quite productive. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Keep a local source repository and development server rather than hosting them in the cloud.&lt;/li&gt;&#xA;&lt;li&gt;Install help files locally instead of accessing them online.&lt;/li&gt;&#xA;&lt;li&gt;Buy old-fashioned programming books.&lt;/li&gt;&#xA;&lt;li&gt;In an emergency, you can get online through a mobile phone's 3G/GPRS connection.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There are plenty of benefits of programming while disconnected:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;No IM's, e-mails or Youtube videos to constantly distract you while in the zone. &lt;/li&gt;&#xA;&lt;li&gt;Not always being able to copy and paste answers from the Internet forces you to memorize syntax and figure out problems, which can lead to a better understanding.&lt;/li&gt;&#xA;&lt;li&gt;It also forces you to write decent unit tests and mocks because you can't always rely on external services being available.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-12-18T22:04:41.400" CommentCount="2" />
  <row Id="27884" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T22:05:52.500" Score="25" ViewCount="" Body="&lt;p&gt;Make stings object like, with built in methods to replace the inconsistently named and parametered non-object ones. e.g.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$subject-&amp;gt;replace($search,$replace);&#xA;$string-&amp;gt;split($separator);&#xA;$string-&amp;gt;trim();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; one more thing: These methods should always expect and emit UTF-8, except for ones specifically intended to deal with encodings. If input is invalid UTF-8, an exception should be thrown, even if the output of the function wouldn't be affected by the encoding.&lt;/p&gt;&#xA;" OwnerUserId="923" LastEditorUserId="923" LastEditorDisplayName="" LastEditDate="2011-01-06T23:40:52.043" LastActivityDate="2011-01-06T23:40:52.043" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="5" />
  <row Id="27885" PostTypeId="2" ParentId="27878" CreationDate="2010-12-18T22:07:14.793" Score="7" ViewCount="" Body="&lt;p&gt;Uhm, not to sound patronizing, but have you ever traveled across the border?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Trust me, they will not be &lt;em&gt;that&lt;/em&gt; interested in you. You tell them your purpose of a trip is a business meeting, and that's it (pretty much) - they will let you through. Don't behave wierdly and dress nicely (neatly).&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-18T22:07:14.793" CommentCount="1" />
  <row Id="27886" PostTypeId="1" CreationDate="2010-12-18T22:07:29.650" Score="12" ViewCount="534" Body="&lt;p&gt;What features is Windows missing that can improve the productivity of a programmer. I know a lot of people would want some features from Linux and OSX ported or being created for Windows as well. What is missing for you ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example would be the option to have multiple workspaces. When not having the possibility to use dual monitors that can come in handy. &lt;/p&gt;&#xA;" OwnerUserId="10888" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-12-18T22:12:03.017" LastActivityDate="2010-12-20T12:17:47.073" Title="What default features is Windows missing that are required for programmers?" Tags="&lt;windows&gt;&lt;features&gt;&lt;product&gt;" AnswerCount="12" CommentCount="7" FavoriteCount="4" />
  <row Id="27887" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T22:07:57.187" Score="13" ViewCount="" Body="&lt;p&gt;An ini directive to &lt;code&gt;E_ERROR&lt;/code&gt; on undefined constants, rather than assume it's a string with &lt;code&gt;E_NOTICE&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="444" LastActivityDate="2010-12-18T22:07:57.187" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="2" />
  <row Id="27888" PostTypeId="2" ParentId="27798" CreationDate="2010-12-18T22:08:07.387" Score="1" ViewCount="" Body="&lt;p&gt;I don't put a hard line limit on anything because some functions implement algorithms that are inherently complex and any attempt to make them shorter would make the interactions between the new, shorter functions so complicated that the net result would be no reduction in simplicity.  I also don't believe that the idea that a function should only do &quot;one thing&quot; is a good guide, since &quot;one thing&quot; at a high level of abstraction can be &quot;many things&quot; at a lower level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, a function is definitely too long if its length causes subtle violations of DRY right now, and extracting part of the function into a new function or class could solve this.  A function may be too long if this isn't the case, but a function or class could easily be extracted that would make the code more modular in a way that is likely to be useful in the face of foreseeable change down the road.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-12-18T22:08:07.387" />
  <row Id="27889" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T22:08:19.003" Score="11" ViewCount="" Body="&lt;p&gt;1) Array comprehension in the style of Python list comprehension:  &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$newlist = array($x-&amp;gt;something for $x in $oldlist);&#xA;&#xA;//with short array syntax:&#xA;$newlist = [$x-&amp;gt;something for $x in $oldlist];&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;2) Short array syntax&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$newlist = [1,2,3,4,...];&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;3) Make empty() not consider the string '0' as true&lt;/p&gt;&#xA;" OwnerUserId="10883" LastActivityDate="2010-12-18T22:08:19.003" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="3" />
  <row Id="27890" PostTypeId="2" ParentId="27886" CreationDate="2010-12-18T22:08:56.070" Score="15" ViewCount="" Body="&lt;p&gt;A compiler and a useful shell.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Clarification based on the comments:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was unclear, I should have written C/C++ compiler. Compilers for C# or Fortran doesn't count, as much of the tools and libraries you need requires a C or C++ compiler. It used to be really bad, where you could not build C extensions for Python with another compiler than Microsofts, because that's what Python was compiled with, I think MinGW has solved this and you can do it with MinGW now, but that's a good reason why a standard C/C++ compiler should have been included or made available for free 20 years ago. Microsoft is only lately starting to understand the power of having an army of hobby programmers available. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't used powershell, maybe it is good. But the usefulness of bash for me is not in the shell language. The *sh family of languages are horrid beasts anyway. I even prefer batch files. ;) It's things like the command history recall and search which relatively basic in Windows, and having pipelines and such that I'm talking about (and I see powershell has pipelines, so that's good).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are things that are good in Windows too, but that's another topic. ;)&lt;/p&gt;&#xA;" OwnerUserId="9529" LastEditorUserId="9529" LastEditorDisplayName="" LastEditDate="2010-12-19T10:48:08.650" LastActivityDate="2010-12-19T10:48:08.650" CommentCount="20" />
  <row Id="27891" PostTypeId="2" ParentId="27886" CreationDate="2010-12-18T22:09:03.170" Score="0" ViewCount="" Body="&lt;p&gt;A decent shell, plus a compiler would be a good start as far as &quot;default&quot; features are concerned.&lt;/p&gt;&#xA;" OwnerUserId="8725" LastActivityDate="2010-12-18T22:09:03.170" CommentCount="4" />
  <row Id="27892" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T22:26:45.813" Score="0" ViewCount="" Body="&lt;p&gt;include better hypertext-links support, i.e. a function/class-method that can be used to change the browser's current-uri. or to create a totally new one.&#xA;using $_SERVER[ 'REQUEST_URI' ] || $_SERVER[ 'PATH_INFO' ] to understand the resource that is requested. This might make something like developing REST-apps easier.   (   according rfc's UriScheme and it's default scheme implementation, maybe make it possible to implement other UriSchemes extending the UriBase)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Provide something like a UriResource class, enabling requesting small snippets of functionality in a way that could also benefit http-requests from a client.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make a function that can be called before and after a template, enabling short-tags between those two function-calls. Between those function-calls the only variables that are made available are those passed to the first function-call( as associative array( using extract)).&#xA;This might ease template-development in php itself( no-framework framework).&#xA;The no-framework PHP MVC framework&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All in all i think the many php frameworks out there have certain similarities which could easily be integrated into php in a common way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;but whoami :)&lt;/p&gt;&#xA;" OwnerUserId="6476" LastActivityDate="2010-12-18T22:26:45.813" CommunityOwnedDate="2010-12-19T01:28:39.613" />
  <row Id="27893" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T22:30:42.847" Score="4" ViewCount="" Body="&lt;p&gt;Operator overloading:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$result = $MatrixA + $MatrixB * $MatrixC;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1117" LastActivityDate="2010-12-18T22:30:42.847" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="2" />
  <row Id="27894" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T22:32:38.633" Score="8" ViewCount="" Body="&lt;p&gt;Strings &lt;a href=&quot;https://github.com/kemo/str&quot; rel=&quot;nofollow&quot;&gt;should be objects&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6014" LastActivityDate="2010-12-18T22:32:38.633" CommunityOwnedDate="2010-12-19T01:28:39.613" />
  <row Id="27895" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T22:44:45.110" Score="5" ViewCount="" Body="&lt;p&gt;Dear Santa,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd love to see unification of Errors and Exceptions into a single concept (Exceptions). Its great to be able to catch exceptions and write them to a log, to find and fix bugs that way. But if there's something fundamentally wrong (read: PHP Error) in a codepath that is very rarely hit, there's no good way to funnel that info into that same database of issues. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please, Santa, introduce a switch in php.ini that would make all errors into exceptions - ideally, exceptions I can catch in my code. &lt;/p&gt;&#xA;" OwnerUserId="10895" LastActivityDate="2010-12-18T22:44:45.110" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="2" />
  <row Id="27896" PostTypeId="1" AcceptedAnswerId="27906" CreationDate="2010-12-18T22:48:53.920" Score="1" ViewCount="235" Body="&lt;p&gt;I've heard too much about &quot;COBOL is a language still much used today, and there's no programmers&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If so, why does COBOL not have a certification? I think it would be more motivating to study it. And either for the enterprises to find the programmers.&lt;/p&gt;&#xA;" OwnerUserId="7049" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-18T23:11:17.880" LastActivityDate="2010-12-19T18:21:12.650" Title="Why does COBOL not have a certification?" Tags="&lt;business&gt;&lt;certification&gt;&lt;cobol&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="27897" PostTypeId="2" ParentId="27886" CreationDate="2010-12-18T22:50:03.397" Score="10" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;The ability to write and run programs in various languages (C, C++, Python, Perl, Ruby ...) without having to install anything extra.&lt;/li&gt;&#xA;&lt;li&gt;Having at least one text editor with syntax highlighting installed by default.&lt;/li&gt;&#xA;&lt;li&gt;A package manager so that you can easily install extra libraries, version control systems, IDEs etc.&lt;/li&gt;&#xA;&lt;li&gt;A powerful command line interface.&lt;/li&gt;&#xA;&lt;li&gt;The ability to tweak the GUI for maximum efficiency (keyboard shortcuts, hot corners etc.)&lt;/li&gt;&#xA;&lt;li&gt;manpages&lt;/li&gt;&#xA;&lt;li&gt;Having the source code of the operating system and software packages easily available and licensed permissively so that you can reuse it.&lt;/li&gt;&#xA;&lt;li&gt;Good performance on modest hardware.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5536" LastActivityDate="2010-12-18T22:50:03.397" CommentCount="9" />
  <row Id="27898" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T22:52:28.093" Score="58" ViewCount="" Body="&lt;p&gt;After working with PHP for about 13 years, and heavily with JS for about 4, there are a couple things I think PHP would do well to borrow from JS:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) shorthand notation for Arrays and Objects. I believe this may have been discussed and shot down on Internals (so I hear – I don't like to see how the sausage is made), but I really, really find that the literal notation for arrays and objects in JS is a big productivity win. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$arr     = [1,2,3,4];&#xA;$assoc   = [foo=&amp;gt;'bar', baz=&amp;gt;'boo'];&#xA;$stdobj  = {foo-&amp;gt;'bar', baz-&amp;gt;'boo'};&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Is (IMHO) just much easier to write and cleaner than&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$arr     = array(1,2,3,4); // not too bad&#xA;$assoc   = array(&quot;foo&quot;=&amp;gt;'bar', baz=&amp;gt;'boo'); // not too bad either&#xA;$stdobj  = new stdClass; // this gets pretty rough&#xA;$stdobj-&amp;gt;foo = 'bar';&#xA;$stdobj-&amp;gt;baz = 'boo';&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I've heard that some concern about potential confusion was raised, but really, is this any more confusing than, say,  heredoc notation? At very least, making a stdClass object in PHP is verbose enough to discourage the practice, I think.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Being able to redefine previously-defined functions and methods would be really useful. It would particular simplify situations extending a class and instantiating the new class is either overly complex or impractical. I do think we should avoid redefinition of core/non-userspace functions and methods, though.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;In addition to those two, I think &lt;strong&gt;PHP &lt;em&gt;must&lt;/em&gt; transparently support unicode&lt;/strong&gt;. This is becoming more and more of a problem for developers, and the solutions currently offered in PHP are confusing and frequently non-performant. Making all standard string functionality unicode-friendly out of the box would be a massive win for PHP programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for asking!&lt;/p&gt;&#xA;" OwnerUserId="10894" LastActivityDate="2010-12-18T22:52:28.093" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="9" />
  <row Id="27899" PostTypeId="2" ParentId="27886" CreationDate="2010-12-18T22:54:56.767" Score="4" ViewCount="" Body="&lt;p&gt;I might drop &quot;required&quot; from the title as I've developed for Windows happily for almost 20 years. Of course, I've developed quite a good toolbox of utilities and tools. See &lt;a href=&quot;http://www.hanselman.com/blog/ScottHanselmans2009UltimateDeveloperAndPowerUsersToolListForWindows.aspx&quot; rel=&quot;nofollow&quot;&gt;Scott Hanselmann's list&lt;/a&gt; for starters. It's top notch and look back all the way to 2003. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, Windows 7 &lt;a href=&quot;http://technet.microsoft.com/en-us/library/dd367858%28WS.10%29.aspx&quot; rel=&quot;nofollow&quot;&gt;includes PowerShell&lt;/a&gt; which helps with the &quot;decent shell&quot; comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, It's always good to have better tools built in. Take any of the tools in Scott's list. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Realisitically, MS could certainly improve the UI of many built-in tools such as regedit, task mgr (cf. Process Monitor) and the event perf viewer tools. It would be good to have built-in support for multiple clipboards. From OSX, I'd like expose and their multi-desktop support is good. It would be nice if Windows natively (aka more easily) supported dragging text from text boxes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;XCode really sucks IMO so I would not want that on Windows. VS is much better but not built-in so maybe build-in VS Expess with an ability to upgrade. Of course, the OS footprint grows with this (like OSX's does) so there's a downside too. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;distributed gcc is very good so that would be very welcome as a built-in framework for any compiler to use (see Incredibuild for a VS solution).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would be nice if it were easier to get and use a Checked Build of the OS to find issues. Using debug cables is a bit extreme for the good info you get out of the Checked Build.  VMs may do this easily -- if so someone please comment with a link.&lt;/p&gt;&#xA;" OwnerUserId="10852" LastActivityDate="2010-12-18T22:54:56.767" CommentCount="3" />
  <row Id="27900" PostTypeId="2" ParentId="6157" CreationDate="2010-12-18T22:55:44.863" Score="5" ViewCount="" Body="&lt;p&gt;You must know how to use &lt;strong&gt;wireshark&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you write software 2010 and it is not connected to the internet in some way, or at least runs on a device inside a machine that talks to another device, then its either some legacy system or a rather strange system...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, sooner or later you sit there wandering what actually goes down the wire and then there is no other tool that can show that as good as wireshark, or tcpdump for capture and wireshark for analysis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wireshark is the equivalent for the oscilloscope/logic analayzer that engineers relied on the past 50 years.&lt;/p&gt;&#xA;" OwnerUserId="7098" LastActivityDate="2010-12-18T22:55:44.863" CommunityOwnedDate="2010-12-18T22:55:44.863" />
  <row Id="27902" PostTypeId="2" ParentId="27886" CreationDate="2010-12-18T23:14:44.723" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Copy/paste for multiple objects&lt;/li&gt;&#xA;&lt;li&gt;Paste format-free (without font/size info)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-18T23:14:44.723" CommentCount="3" />
  <row Id="27903" PostTypeId="1" AcceptedAnswerId="27907" CreationDate="2010-12-18T23:20:59.907" Score="11" ViewCount="258" Body="&lt;p&gt;I have a project I've been working on which I would like to push into a new, public Github repository as open source. After searching on StackExchange for the right license to use I've settled on the BSD license.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is: now what? Do I just need to copy the &lt;a href=&quot;http://en.wikipedia.org/wiki/BSD_licenses&quot; rel=&quot;nofollow&quot;&gt;BSD license text&lt;/a&gt; into a file called LICENSE in the root of my repository and call it good? Is that the general rule for how all open source licenses work? Or do I need to notify some other organization that I'm using this license so I can 'enforce' it if necessary?&lt;/p&gt;&#xA;" OwnerUserId="786" LastActivityDate="2010-12-20T07:46:34.417" Title="How to properly license open source software" Tags="&lt;open-source&gt;&lt;open&gt;" AnswerCount="2" CommentCount="6" FavoriteCount="3" />
  <row Id="27905" PostTypeId="2" ParentId="6157" CreationDate="2010-12-18T23:37:57.043" Score="1" ViewCount="" Body="&lt;p&gt;For Unix, strace+ltrace (aka truss, dtruss, etc.) combo is very useful to see what's a program is doing. For Windows, there's Process Monitor. Solves a lot of questions of &quot;how the hell this file got created/deleted?&quot; &lt;/p&gt;&#xA;" OwnerUserId="10080" LastActivityDate="2010-12-18T23:37:57.043" CommunityOwnedDate="2010-12-18T23:37:57.043" />
  <row Id="27906" PostTypeId="2" ParentId="27896" CreationDate="2010-12-18T23:38:31.183" Score="3" ViewCount="" Body="&lt;p&gt;Google search for &quot;COBOL Certification&quot; brings up &lt;a href=&quot;http://www.idcp.org/index.php?option=com_content&amp;amp;view=article&amp;amp;id=108&amp;amp;Itemid=74&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; and &lt;a href=&quot;http://www.iccp.org/iccpnew/outlines.html&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4526" LastActivityDate="2010-12-18T23:38:31.183" />
  <row Id="27907" PostTypeId="2" ParentId="27903" CreationDate="2010-12-18T23:39:35.723" Score="4" ViewCount="" Body="&lt;p&gt;That is sufficient to licence your work but it is normally preferable to add a small comment stating who owns the copyright and where to find the full licence text at the top of each source file.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You do not need to notify any organisation to enforce your licence if someone breaks the terms, although it will require you to take them to court.&lt;/p&gt;&#xA;" OwnerUserId="5536" LastActivityDate="2010-12-18T23:39:35.723" />
  <row Id="27908" PostTypeId="2" ParentId="27564" CreationDate="2010-12-18T23:47:38.520" Score="19" ViewCount="" Body="&lt;p&gt;1) I would love for newly instantiated objects to return &quot;$this&quot; so I can method chain, &#xA;$user = new User('john')-&gt;setLastName('Doe')-&gt;save();&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) If you've ever used ruby, and most recently node, they have a great interactive shell (IRB).  I would love for PHP to have one that was actually useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Traits/Mixins, but I hear those are on the way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) I want to second the short array $myArray = ['my', 'array'];&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) Consistent naming/order (i.e. needle haystack)&lt;/p&gt;&#xA;" OwnerUserId="10908" LastActivityDate="2010-12-18T23:47:38.520" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="4" />
  <row Id="27909" PostTypeId="1" AcceptedAnswerId="27933" CreationDate="2010-12-18T23:51:15.303" Score="8" ViewCount="271" Body="&lt;p&gt;At any given time, I usually have a bunch of ideas for weekend/side projects that I can work on. The ideas can be generally be categorized into these:&lt;br&gt;&#xA;1. Self Learning: Learning a new language/ technology/ framework&lt;br&gt;&#xA;2. Work related: Learning/Doing something that would help you at work&lt;br&gt;&#xA;3. Money: Projects that (you think) can make some money&lt;br&gt;&#xA;4. Fun/Utility projects&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are just the rough categories that I can think of and there can be more/other ways of classification. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is based on your experience what should drive the decision of what kind of project to work on. What parameters apart from the type of project should impact this decision (time, effort, money...)&lt;/p&gt;&#xA;" OwnerUserId="3755" LastActivityDate="2010-12-19T14:54:59.570" Title="How do you decide your side projects" Tags="&lt;free-time&gt;&lt;home&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="1" />
  <row Id="27910" PostTypeId="2" ParentId="27483" CreationDate="2010-12-19T00:00:25.330" Score="3" ViewCount="" Body="&lt;p&gt;I have a lot of programming books in both physical and electronic formats and I also have a Kindle (the latest 'small' version). Oh and I have a Safari subscription as well...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall I much prefer a physical book to reading on the computer screen as you have more freedom in where you can read it and also you can browse and flick through to random sections in a way you can't really with an electronic version. Of course this is all assuming you're where the book is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For electronic books you can basically divide the formats into ones that preserve page layout (e.g. PDFs) and the ones that support free reflowing (e.g. mobi). The formats that preserve page layout generally are better for books where layout is critical or where there are a lot of diagrams - programming books come in this category.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm afraid the smaller Kindle is very poor for reading technical/programming books unless they're predominantly text. PDFs on the Kindle are difficult to navigate and zooming is very clunky. There are converters to the native format but I find these generally lose most of the formatting. I suspect a good OCR program that supports PDFs as input such as ABBYY Finereader would do a better job but I've not tried it. Technical books published in mobi format are fine unless they have diagrams - often these are just as hard to zoom in on as PDFs and worse can be very low resolution bitmap versions and hence unreadable. On the other hand the Kindle is extremely good when it comes to reading books that are mostly text (such as a typical novel or something like Mythical Man Month or whatever). An added bonus is that you can read it in daylight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't personally have an iPad but these seem to be very good for reading PDFs (Safari also has an iPad app which lets you read their books provided you have an active internet connection). On the other hand you can't really use it outdoors and I don't think the screen is as clear as the Kindle's for reading a lot of text - and so I don't see much benefit over using my laptop (I have a Vaio Z so the screen is high quality and the laptop is extremely portable).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's only a matter of time before an A4 colour eBook reader comes out with electronic ink (the type of screen that the Kindle and most other eBook readers have), until then you'll need to decide where you want to compromise if you want to read ebooks away from your computer/laptop.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastEditorUserId="1362" LastEditorDisplayName="" LastEditDate="2010-12-19T00:08:20.243" LastActivityDate="2010-12-19T00:08:20.243" />
  <row Id="27911" PostTypeId="1" CreationDate="2010-12-19T00:17:33.830" Score="7" ViewCount="882" Body="&lt;p&gt;What source code in libraries, apps, utilities have you browsed that made you go &quot;wow!&quot; ? Whether it was a unique solution, a new way to approach a sticky problem or just overall design? Anything goes!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I hope answers to this question will produce a nice list of apps that contain source code worthy of learning from)&lt;/p&gt;&#xA;" OwnerUserId="10910" LastEditorUserId="10910" LastEditorDisplayName="" LastEditDate="2010-12-19T00:35:17.107" LastActivityDate="2010-12-19T21:59:18.350" ClosedDate="2010-12-19T22:25:38.150" Title="What is the most beautiful code you've ever seen?" Tags="&lt;programming-languages&gt;" AnswerCount="15" CommentCount="12" FavoriteCount="3" />
  <row Id="27913" PostTypeId="2" ParentId="27911" CreationDate="2010-12-19T00:38:32.953" Score="3" ViewCount="" Body="&lt;p&gt;The first time I experience a fluent interface (NUnit) I was in awe at how... fluent... it was. At that moment, I fell in love with fluent interfaces for certain types of libraries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This extends itself to the source code for NUnit. It can be quite nice.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-19T00:38:32.953" CommentCount="4" />
  <row Id="27915" PostTypeId="2" ParentId="27911" CreationDate="2010-12-19T00:41:14.343" Score="2" ViewCount="" Body="&lt;h2&gt;&lt;strong&gt;jQuery Framework&lt;/strong&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I find that you can learn a tremendous amount about JavaScript and indeed functional programming of the &lt;strong&gt;closure&lt;/strong&gt; variety by reading it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of the methods are very efficient indeed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://code.jquery.com/jquery-1.4.4.js&quot; rel=&quot;nofollow&quot;&gt;http://code.jquery.com/jquery-1.4.4.js&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;NB. Viewing a decent piece of software written in jQuery style, is another pleasure in itself.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-19T00:41:14.343" CommentCount="0" />
  <row Id="27916" PostTypeId="2" ParentId="27909" CreationDate="2010-12-19T00:42:45.273" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Always have a project you can work on in meetings&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I had a thing I called &quot;Meeting Lisp&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This was a lisp interpreter written in C that I hacked on intermittently over the period of a couple of years at my old job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Rules:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I could only work on it during meetings.&lt;/li&gt;&#xA;&lt;li&gt;The source had to fit on one 66-line by 80-column page.  (So I could work on it discreetly in meetings!)&lt;/li&gt;&#xA;&lt;li&gt;The code had to compile cleanly.&lt;/li&gt;&#xA;&lt;li&gt;No debugging at the computer.  Bugs had to be diagnosed and fixed at the next meeting.&lt;/li&gt;&#xA;&lt;li&gt;This include compilation errors.&lt;/li&gt;&#xA;&lt;li&gt;It had an &quot;include&quot; command, so parts of the library were in lisp and didn't count against the page limit.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I learned a lot and it was a great way to pass the time in boring meetings, so I guess it combined #2 with #1 and #4.&lt;/p&gt;&#xA;" OwnerUserId="5069" LastActivityDate="2010-12-19T00:42:45.273" CommentCount="4" />
  <row Id="27917" PostTypeId="2" ParentId="25442" CreationDate="2010-12-19T00:44:43.057" Score="1" ViewCount="" Body="&lt;p&gt;Ruby, Haskell, Lisp, Io are all good choices if you want to expand your programming repertoire.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-19T00:44:43.057" />
  <row Id="27918" PostTypeId="2" ParentId="27911" CreationDate="2010-12-19T00:54:22.573" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Lua.  the most beautiful language you can find.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Duffs_device&quot; rel=&quot;nofollow&quot;&gt;Duff's Device&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-12-19T00:54:22.573" CommentCount="5" />
  <row Id="27919" PostTypeId="2" ParentId="27911" CreationDate="2010-12-19T00:58:28.207" Score="1" ViewCount="" Body="&lt;p&gt;(Not exactly something to take as an example to follow, but more some sort of programming poetry)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was a piece from &lt;a href=&quot;http://www.ioccc.org/&quot; rel=&quot;nofollow&quot;&gt;IOCCC&lt;/a&gt;: an &lt;a href=&quot;http://www.ioccc.org/years.html#2001_herrmann2&quot; rel=&quot;nofollow&quot;&gt;ASCII art stereogram generator&lt;/a&gt;, which was &lt;a href=&quot;http://www.ioccc.org/2001/herrmann2.c&quot; rel=&quot;nofollow&quot;&gt;itself&lt;/a&gt; a stereogram.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-12-19T00:58:28.207" />
  <row Id="27922" PostTypeId="2" ParentId="27911" CreationDate="2010-12-19T01:19:45.543" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Fast_inverse_square_root&quot; rel=&quot;nofollow&quot;&gt;Fast inverse square root&lt;/a&gt;&lt;/strong&gt; by &lt;em&gt;Terje Mathisen / John Carmack&lt;/em&gt; (don't know if it counts as beautiful, but it made me &quot;wow&quot;, for sure)&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-12-19T12:23:23.010" LastActivityDate="2010-12-19T12:23:23.010" CommentCount="5" />
  <row Id="27923" PostTypeId="2" ParentId="27564" CreationDate="2010-12-19T01:28:39.613" Score="3" ViewCount="" Body="&lt;p&gt;Annotations for PHP would be great, One feature that would stand out for upcoming years.&#xA;This feature will help to write big frameworks with clean code.&lt;/p&gt;&#xA;" OwnerUserId="10916" LastActivityDate="2010-12-19T01:28:39.613" CommunityOwnedDate="2010-12-19T01:28:39.613" CommentCount="1" />
  <row Id="27924" PostTypeId="2" ParentId="27324" CreationDate="2010-12-19T01:31:57.463" Score="0" ViewCount="" Body="&lt;p&gt;I wish someone would make an ergonomic keyboard with Cr48's layout. I love the large control and alt.&lt;/p&gt;&#xA;" OwnerUserId="10758" LastActivityDate="2010-12-19T01:31:57.463" />
  <row Id="27925" PostTypeId="2" ParentId="27564" CreationDate="2010-12-19T02:00:17.767" Score="8" ViewCount="" Body="&lt;p&gt;1) Shorter array/object syntax, a la JavaScript (as previously mentioned)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Allow &lt;code&gt;const&lt;/code&gt; variables to allow the result of a calculation like &lt;code&gt;define()&lt;/code&gt; does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Chaining directly from the constructor: &lt;code&gt;new User()-&amp;gt;name('Ryan');&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) Array dereferencing: &lt;code&gt;something_that_returns_array()[4];&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) Expanded SPL support. SPL does a decent job of reimagining string and array functions (among other things) as objects. Expanding SPL could solve a lot of gripes about the language being so janky.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;6) Using &lt;code&gt;ArrayObject()&lt;/code&gt; should be as transparent as using &lt;code&gt;array()&lt;/code&gt;. You should be able to do things like &lt;code&gt;array_filter($array_object_instance)&lt;/code&gt; without doing &lt;code&gt;array_filter($array_object_instance-&amp;gt;getArrayCopy())&lt;/code&gt;. Even better, of course, would be &lt;code&gt;$array_object_instance-&amp;gt;filter()&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;7) Full-on Unicode would be nice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;8) Stop doing weird automatic type conversions. For example, you should not be able to &lt;code&gt;echo&lt;/code&gt; a SimpleXMLElement object without first explicitly typecasting it as a string. Or at least, throw something when it happens (e.g., in strict mode, or whatever mode &lt;code&gt;error_reporting(-1)&lt;/code&gt; is).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;9) Support for either multiple threads, or some sort of evented/asynchronous callbacks. This matters most when trying to upload large files via cURL. Instead of old-skool threads, something like Apple's Grand Central Dispatch would be nice. Or even something JavaScript-like where you can make async requests and define callbacks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;10) Consistent naming/order (i.e. needle haystack) would be nice, but I think this could be better solved with SPL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;11) An officially supported interactive PHP shell, like IRB. Facebook has one called &lt;code&gt;phpsh&lt;/code&gt; that was written in Python, but it lacks the polish I would like to see.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;12) For the Reflection API, add support for (a) docblock comments on constants (global &amp;amp; class), and (b) support for parsing PHPDoc-like comments into a sensible data structure. There's a PECL package called &quot;docblock&quot; that attempts to do this, but it doesn't appear that the author got very far.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: 13) I would also love to see the ability to use &lt;code&gt;!&lt;/code&gt; and &lt;code&gt;?&lt;/code&gt; in function names -- like Ruby can.&lt;/p&gt;&#xA;" OwnerUserId="10919" LastEditorUserId="10919" LastEditorDisplayName="" LastEditDate="2010-12-26T18:14:19.933" LastActivityDate="2010-12-26T18:14:19.933" CommunityOwnedDate="2010-12-19T02:00:17.767" CommentCount="1" />
  <row Id="27926" PostTypeId="2" ParentId="27564" CreationDate="2010-12-19T02:08:58.820" Score="-2" ViewCount="" Body="&lt;p&gt;I'd quite like to see a reverse usort (either as a separate function, or as an optional parameter in usort).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would do the exact same as usort, but return the array in reverse order.&lt;/p&gt;&#xA;" OwnerUserId="10920" LastActivityDate="2010-12-19T02:08:58.820" CommunityOwnedDate="2010-12-19T02:08:58.820" CommentCount="1" />
  <row Id="27927" PostTypeId="1" AcceptedAnswerId="27929" CreationDate="2010-12-19T02:28:22.577" Score="1" ViewCount="95" Body="&lt;p&gt;Afternoon,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am usually a PHP and Delphi developer and have been getting into Python lately. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am developing an app and would love to get some feedback on the code, there are few things which I would love to tidy up myself but I am sure there are other things.....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where / how is a good way to get in touch with an experienced Python dev... paying is no problem.&lt;/p&gt;&#xA;" OwnerUserId="6959" LastActivityDate="2010-12-19T05:48:53.427" Title="Python - Service, how to get a code review..." Tags="&lt;python&gt;&lt;code-reviews&gt;" AnswerCount="2" />
  <row Id="27928" PostTypeId="2" ParentId="27911" CreationDate="2010-12-19T02:30:38.537" Score="6" ViewCount="" Body="&lt;p&gt;I really love the elegance of the original &lt;strong&gt;Quicksort&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You pick a pivot at random: all of the elements less than the pivot go to the left, all of the elements greater than the pivot go to the right. Then, from the beauty of the transitivity, i.e.:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;a&lt;/em&gt; &amp;lt; &lt;em&gt;p&lt;/em&gt; and &lt;em&gt;p&lt;/em&gt; &amp;lt; &lt;em&gt;b&lt;/em&gt; implies &lt;em&gt;a&lt;/em&gt; &amp;lt; &lt;em&gt;b&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;all of those elements on the left won't ever have to be compared with all of those elements on the right. Recurse on both side and you're done.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-19T02:30:38.537" CommentCount="1" />
  <row Id="27929" PostTypeId="2" ParentId="27927" CreationDate="2010-12-19T02:31:17.707" Score="2" ViewCount="" Body="&lt;p&gt;I guess best pythonists can be found here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://mail.python.org/mailman/listinfo/python-list&quot; rel=&quot;nofollow&quot;&gt;http://mail.python.org/mailman/listinfo/python-list&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also you can try those guys:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/badges/51/python&quot;&gt;http://stackoverflow.com/badges/51/python&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9753" LastActivityDate="2010-12-19T02:31:17.707" />
  <row Id="27930" PostTypeId="2" ParentId="27798" CreationDate="2010-12-19T02:31:21.140" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Short enough to be optimized correctly&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Methods should be so short as to do exactly one thing. The reason for this is simple: so your code can be properly optimized.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a JIT-ted language like Java or C#, it is important that your methods be simple so that the JIT-compiler can produce code quickly. Longer, more complicated methods naturally require more JIT time. Also, JIT compilers only offer a handful of optimizations and only the simplest of methods benefit from this. This fact was even called out in Bill Wagner's &lt;em&gt;Effective C#&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a lower-level language, like C or C++, having short methods (maybe a dozen or so lines) is also important because that way you minimize the need for storing local variables in RAM rather than in a register. (Aka 'Register Spilling'.) Note however that in this unmanaged case, the relative cost of each function call can be pretty high.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And even in a dynamic language, like Ruby or Python, having short methods also helps out in compiler optimizations as well. In a dynamic language the more 'dynamic' a feature, the harder it is to optimize. For example, a long method which takes an X and could return an Int, Float, or String will likely perform far slower than three separate methods which each only return a single type. This is because, if the compiler knows exactly what type the function will return, it can optimize the function call site as well. (E.g., not checking for type conversions.)&lt;/p&gt;&#xA;" OwnerUserId="786" LastActivityDate="2010-12-19T02:31:21.140" />
  <row Id="27932" PostTypeId="2" ParentId="27911" CreationDate="2010-12-19T02:33:50.560" Score="3" ViewCount="" Body="&lt;p&gt;If you like functional programming, then &lt;strong&gt;Y combinator&lt;/strong&gt; is a realy a hottie :-) Scroll down at: &lt;a href=&quot;http://igstan.ro/posts/2010-12-01-deriving-the-y-combinator-in-7-easy-steps.html&quot; rel=&quot;nofollow&quot;&gt;http://igstan.ro/posts/2010-12-01-deriving-the-y-combinator-in-7-easy-steps.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10657" LastActivityDate="2010-12-19T02:33:50.560" CommentCount="2" />
  <row Id="27933" PostTypeId="2" ParentId="27909" CreationDate="2010-12-19T02:38:04.800" Score="5" ViewCount="" Body="&lt;p&gt;I actually wrote a &lt;a href=&quot;http://jasonmbaker.com/how-to-have-a-side-project&quot; rel=&quot;nofollow&quot;&gt;blogpost&lt;/a&gt; about this a while back.  To summarize, the major guidelines I try to stick to in coming up with side projects is:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Have fun&lt;/li&gt;&#xA;&lt;li&gt;Learn something&lt;/li&gt;&#xA;&lt;li&gt;Make it timeless (in other words, make it something you can come back to later)&lt;/li&gt;&#xA;&lt;li&gt;Don't limit yourself to just code (I learn a lot from my blog)&lt;/li&gt;&#xA;&lt;li&gt;Write something I'll actually use (because I personally am more likely to stick with it that way).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;To answer your question a bit more directly, I generally try to do #1 and #4 almost exclusively with my side projects.  That said, I gave having fun the number 1 spot for a reason.  If you aren't having fun, it isn't a side project.  It's work.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-19T02:38:04.800" />
  <row Id="27934" PostTypeId="2" ParentId="27886" CreationDate="2010-12-19T02:42:02.720" Score="1" ViewCount="" Body="&lt;p&gt;The Unix file processing tools (wc, sort, uniq, awk, cat, grep, find, et cetera), including-- as others have mentioned-- a good shell (e.g., bash).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In order to be productive in Windows, when I'm working with anything text related, eventually I'll need to go into the Unix command toolbox. Fortunately, &lt;a href=&quot;http://www.cygwin.com/&quot; rel=&quot;nofollow&quot;&gt;Cygwin&lt;/a&gt; is an excellent resource just for that purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, you do need to &quot;tame&quot; Cygwin to work nicely with the Windows file system; unless you override some default settings, you can get files with nasty permissions that are difficult to delete. Anything too far above the basic needs and you're better off with a VM or dual booting, but for my purposes I'm quite satisfied with Cygwin.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-19T02:42:02.720" />
  <row Id="27935" PostTypeId="1" AcceptedAnswerId="28027" CreationDate="2010-12-19T02:49:46.517" Score="2" ViewCount="302" Body="&lt;p&gt;So i just finished my first semester of college. In my intro to programming class we made a bunch of super interesting (&lt;em&gt;sarcasm&lt;/em&gt;) console applications. Any suggestions on ways other than just messing around with console applications for a beginner C++ student to improve? &lt;/p&gt;&#xA;" OwnerUserId="10922" LastActivityDate="2010-12-19T16:31:03.673" Title="Ways for beginner programmer to practice with C++" Tags="&lt;c++&gt;" AnswerCount="4" />
  <row Id="27936" PostTypeId="2" ParentId="27909" CreationDate="2010-12-19T02:55:24.693" Score="1" ViewCount="" Body="&lt;p&gt;I would say it depends greatly on how 'hobbyist' of a programmer you are. Personally, I am not. I rarely create things for 'fun' though I do love programming with or without a monetary incentive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say #1 to learn something new would determine what I worked on. Along with that, I'd say #3: something which I believe could make lots of money. 3 doesn't come up all that often as it usually requires a ton of work I don't have time to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, heaven is developing something &lt;em&gt;yourself&lt;/em&gt; and making a living off of it's distribution, thereby being in a position to completely dedicate your work to it. Isn't that what everyone wants? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I read an article the other week about a indie games programmer who developed a highly acclaimed title and he is now living off the sales comfortably while being able to apply constant updates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being paid to do something you love is bliss. It's not work. And if you also own the final product, that's a huge bonus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would also like to add, if took out #3, then the ONLY reason I would have any side projects would be #1. That is, to learn something new.&lt;/p&gt;&#xA;" OwnerUserId="9682" LastEditorUserId="9682" LastEditorDisplayName="" LastEditDate="2010-12-19T07:51:42.197" LastActivityDate="2010-12-19T07:51:42.197" CommentCount="2" />
  <row Id="27937" PostTypeId="2" ParentId="27911" CreationDate="2010-12-19T03:05:21.223" Score="1" ViewCount="" Body="&lt;p&gt;I'd probably go with Rob Pike's regular expression matcher that was given in &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596510047&quot; rel=&quot;nofollow&quot;&gt;Beautiful Code&lt;/a&gt;.  I'm retyping this by hand, so there will probably be mistakes (it does at least compile though).&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/* match:  search for regexp anywhere in the text */&#xA;int match(char *regexp, char *text)&#xA;{&#xA;    if (regexp[0] == '^')&#xA;        return matchhere(regexp+1, text);&#xA;    do{ /* must look even if string is empty */&#xA;        if (matchhere(regexp, text))&#xA;            return 1;&#xA;    } while (*text++ != '\0');&#xA;    return 0;&#xA;}&#xA;&#xA;/* matchhere: search for regexp at beginning of text */&#xA;int matchhere(char *regexp, char *text)&#xA;{&#xA;    if (regexp[0] == '\0')&#xA;        return 0;&#xA;    if (regexp[1] == '*')&#xA;        return matchstar(regexp[0], regexp+2, text);&#xA;    if (regexp[0] == '$' &amp;amp;&amp;amp; regexp[1] == '\0')&#xA;        return matchhere(regexp+1, text+1);&#xA;    if (*text!='\0' &amp;amp;&amp;amp; (regexp[0]=='.' || regexp[0]==*text))&#xA;        return matchhere(regexp+1, text+1);&#xA;}&#xA;&#xA;/* matchstar:  search for c*regexp at beginning of text */&#xA;int matchstar(int c, char *regexp, char *text)&#xA;{&#xA;    do{ /* a * matches zero or more instances */&#xA;        if (matchhere(regexp, text))&#xA;            return 1;&#xA;    } while(*text != '\0' &amp;amp;&amp;amp; (*text++ == c || c == '.'));&#xA;    return 0;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;...and that's it.  A regular expression matcher in 30 lines of code.  According to the book, Pike wrote it in under an hour.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-19T03:05:21.223" CommentCount="4" />
  <row Id="27938" PostTypeId="2" ParentId="14297" CreationDate="2010-12-19T03:16:00.330" Score="0" ViewCount="" Body="&lt;p&gt;Peephole optimizations on code that could be optimized with better structure, e.g. linear searches implemented in inline assembly when a binary search in plain C/C++/Java/C# would be appropriate (and faster).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either the person is missing some fundamental concepts, or has no sense of priorities. The latter is much more worrying.&lt;/p&gt;&#xA;" OwnerUserId="6385" LastEditorUserId="6385" LastEditorDisplayName="" LastEditDate="2010-12-19T03:26:50.653" LastActivityDate="2010-12-19T03:26:50.653" CommunityOwnedDate="2010-12-19T03:16:00.330" />
  <row Id="27939" PostTypeId="2" ParentId="27935" CreationDate="2010-12-19T03:18:26.413" Score="2" ViewCount="" Body="&lt;p&gt;Depends on what you mean by console apps, but there is nothing wrong with console applications to learn C++. It all depends on how complex they are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could try writing a gui app with something like &lt;a href=&quot;http://qt.nokia.com/&quot; rel=&quot;nofollow&quot;&gt;QT&lt;/a&gt;, but then you'll spend most of the time learning the framework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could write a game in something like OpenGL, SDL etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with C++ is that it is a huge step from simple stuff to something useful.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-12-19T03:18:26.413" CommentCount="1" />
  <row Id="27940" PostTypeId="2" ParentId="27909" CreationDate="2010-12-19T03:19:53.713" Score="0" ViewCount="" Body="&lt;p&gt;Scratch an itch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The side projects that I do are usually things I need myself. If they fit into your four categories then thats even better.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-12-19T03:19:53.713" />
  <row Id="27941" PostTypeId="2" ParentId="27682" CreationDate="2010-12-19T03:34:59.540" Score="0" ViewCount="" Body="&lt;p&gt;Static analysis can also be performed without tools, by performing manual reviews on the software code. This is often the most cost-effective way to improve code quality. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second best option is to invest for one or more high-end static analysis tools (like earlier mentioned Coverity, or KLOCwork). Since these tools perform much deeper analyses than lint, for example, the signal-to-noise ratio is much better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I consider using lint as the third option, because of the high noise level. Applying lint to an existing project can be a daunting task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general static program analysis has progressed a lot over the recent years. Current static analysis tools are capable of performing deep interprocedural analyses, an can automatically identify for example procedure pre- and post-conditions. This can be a great help for later code reviews as well.&lt;/p&gt;&#xA;" OwnerUserId="6940" LastActivityDate="2010-12-19T03:34:59.540" />
  <row Id="27942" PostTypeId="2" ParentId="27911" CreationDate="2010-12-19T03:36:22.557" Score="2" ViewCount="" Body="&lt;p&gt;Phoenix, a highly popular game for TI calculators written by Patrick Davidson, is written in the cleanest, most readable assembly code I have ever seen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Below is the game saving code from &lt;a href=&quot;http://www.ticalc.org/archives/files/fileinfo/82/8206.html&quot; rel=&quot;nofollow&quot;&gt;Phoenix 7.6 for TI-89 and TI-89 Titanium&lt;/a&gt;.  The approach is a clever hack: it stores the game state at the bottom of the stack and signs/checksums it (in case another program clobbers it).  However, the implementation is beautiful and well-commented:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;****************************************************************************&#xA;****************************************************************************&#xA;**                                                               &#xA;**  Phoenix (Game saving)&#xA;**&#xA;**  Copyright 2004 by Patrick Davidson.  This software may be freely&#xA;**  modified and/or copied with no restrictions.  There is no warranty.&#xA;**&#xA;**  by Patrick Davidson (pad@calc.org, http://pad.calc.org/)&#xA;**&#xA;**  Last updated September 14, 2004&#xA;**&#xA;****************************************************************************&#xA;****************************************************************************&#xA;&#xA;******************************************** SEARCH FOR GAME TO RESTORE&#xA;* This routine searches for a saved game in memory.  In order to avoid&#xA;* using any additional memory, Phoenix games are saved by placing them on&#xA;* the end of the stack.  As long as no other program overwrites this data,&#xA;* the saved game can be restored.  This routine first searches for the&#xA;* signature 'PhnX' indicating the presence of a saved game, and then&#xA;* checks if the version matches, and finally tests the checksum to ensure&#xA;* the data hasn't been corrupted, and then restores the game data after&#xA;* verifying its integrity.&#xA;********&#xA;&#xA;restore_game:&#xA;        lea     (a7),a4                 ; Search for saved data&#xA;loop_search:&#xA;        cmp.l   #'PhnX',(a4)    &#xA;        beq.s   found_possible_saved_game       &#xA;loop_return:&#xA;        subq.w  #2,a4   &#xA;        cmp.l   #$120,a4        &#xA;        bgt.s   loop_search     &#xA;        bra     Nothing_To_Restore      ; Start a new game&#xA;&#xA;found_possible_saved_game:&#xA;        cmp.l   #VERSION,4(a4)  &#xA;        bne.s   loop_return     &#xA;        lea     8(a4),a3                ; Test checksum&#xA;        moveq   #0,d0   &#xA;        move.w  #(data_end-data_start)/2,d1     &#xA;loop_checksum:&#xA;        add.w   (a3)+,d0        &#xA;        dbra    d1,loop_checksum        &#xA;        tst.w   d0      &#xA;        bne.s   loop_return     &#xA;&#xA;******************************************** RESTORE SAVED GAME&#xA;* Restore saved game.  Since the full stack might extend over the save&#xA;* data, the data must be copied elsewhere before it is restored.  This is&#xA;* done by copying the data to the LCD memory (only for a brief moment) and&#xA;* then allocating space on the stack and storing it in its normal location.&#xA;* After that, absolute references are relocated, and the game system is set&#xA;* up and the game is started.&#xA;********&#xA;&#xA;found_saved_game:&#xA;        move.w  #$700,d0                ; Disable all interrupts&#xA;        trap    #1      &#xA;&#xA;        subq.l  #2,a3                   ; Copy the data to LCD_MEM&#xA;        lea     LCD_MEM,a2      &#xA;        move.w  #((data_end-data_start)/2)-1,d1 &#xA;loop_restore:&#xA;        move.w  -(a3),(a2)+     &#xA;        dbra    d1,loop_restore &#xA;        clr.l   -(a3)                   ; Erase signature&#xA;&#xA;        lea     -offset(a7),a7          ; Allocate variables on stack&#xA;        lea     (a7),a5                 ; Set pointer to variables&#xA;&#xA;        lea     data_start(a5),a3       ; Copy the data back&#xA;        move.w  #((data_end-data_start)/2)-1,d1 &#xA;loop_restore2:&#xA;        move.w  -(a2),(a3)+     &#xA;        dbra    d1,loop_restore2        &#xA;&#xA;        lea     _main(pc),a0            ; Relocate absolute references&#xA;        move.l  a0,d0&#xA;        add.l   d0,xy_pointer(a5)       &#xA;&#xA;        bsr     Load_Player     &#xA;&#xA;        lea     $600000,a6              ; Allow relative port addressing&#xA;        bclr    #2,1(a6)                ; Allow writes to low memory&#xA;        move.w  #$d1,d0                 ; Set Int5 frequency to 30Hz&#xA;        bsr     Set_Speed&#xA;&#xA;        bsr     Initialize_Stuff        ; Set up initial screen&#xA;        move.l  #trigger,($74).w        ; Load custom int5 handler&#xA;&#xA;        bsr     Status_Prepare          ; Fix status display&#xA;&#xA;        bra     Pre_Main_Loop           ; Resume the game&#xA;&#xA;******************************************** SAVE THE GAME&#xA;* Saves the game.  This is essentially done by leaving the data on the&#xA;* stack.  However, it will be moved to the lowest address to decrease the&#xA;* chances it will be overwritten.  Also, a signature, version number, and&#xA;* checksum are stored to help identify and verify the data.&#xA;********&#xA;&#xA;save_game:&#xA;        tst.b   Game_Started(a5)        ; Cancel save game if it's a&#xA;        beq.s   exit_s                  ; false reading on title screen&#xA;&#xA;        move.w  #$700,d0                ; Deactivate interrupts&#xA;        trap    #1&#xA;&#xA;        lea     _main(pc),a0            ; Delocate absolute references&#xA;        move.l  a0,d0&#xA;        sub.l   d0,xy_pointer(a5)       &#xA;&#xA;        lea     (a5),a0                 ; A0 -&amp;gt; Saving position&#xA;        moveq   #0,d0                   ; D0 = checksum&#xA;&#xA;        move.l  #'PhnX',(a0)+           ; Store signature&#xA;        move.l  #VERSION,(a0)+  &#xA;&#xA;        move.w  #((data_end-data_start)/2)-1,d1 &#xA;        lea     data_start(a5),a1&#xA;&#xA;save_loop:                              ; Copy and sum data&#xA;        add.w   (a1),d0        &#xA;        move.w  (a1)+,(a0)+        &#xA;        dbra    d1,save_loop    &#xA;&#xA;        neg.w   d0                      ; Store checksum&#xA;        move.w  d0,(a0)+        &#xA;        bra     Game_Over       &#xA;&#xA;exit_s: rts     &#xA;&#xA;******************************************** MAIN PROGRAM BEGINS HERE&#xA;&#xA;Nothing_To_Restore:&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3650" LastActivityDate="2010-12-19T03:36:22.557" CommentCount="2" />
  <row Id="27943" PostTypeId="1" CreationDate="2010-12-19T04:26:21.437" Score="0" ViewCount="76" Body="&lt;p&gt;I'm interested in taking on more contract projects for programming and, although it'd be nice to find clients just in my area, I want to expand my search a bit to other areas where a company may allow me to telecommute. I'm wondering if anyone who has experience with this has noticed that whether a company would be more likely to be open to this based on if they are in a bigger city vs a smaller town.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would think that companies in smaller areas may have trouble finding programmers for some things and therefore would be more willing to outsource but maybe I am wrong. Any info is appreciated, I'm just trying to get an idea as to how to concentrate my efforts with networking with people form different areas, etc.&lt;/p&gt;&#xA;" OwnerUserId="10087" LastActivityDate="2010-12-19T07:13:22.743" Title="Are companies in certain locations (big city vs small town, etc) more likely to offer telecommute contract programming work?" Tags="&lt;contracting&gt;&lt;telecommute&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="27944" PostTypeId="1" CreationDate="2010-12-19T04:30:42.527" Score="7" ViewCount="611" Body="&lt;p&gt;Here is the situation:&#xA;Graduated from university with a CS degree (BSc), having done some C, C++, Java, Python, Oracle along the way. I did some PHP freelancing while I was at uni and carried this on into a full time job after I left. I've been working full time for around a year now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP is not really not what I want to do, and limiting my abilities and opportunities the more I follow that path. I also want to work in a larger organisation, you don't find these using PHP. Also I can't stand programming in such a poorly designed language every day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like working with web applications and there seem to be plenty of jobs around for the Microsoft stack C#, SQL Server, ASP MVC. Aside from half a semester writing C++ (command prompt) in visual studio I have no experience with Microsoft tools. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where do I begin learning which will lead to a job. Certificates (MCAD?), C#/ASP university courses. What do employers or head hunters want?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt; Hoping to get a few more responses on this one. What can I do besides creating a pet project in my spare time?&lt;/p&gt;&#xA;" OwnerUserId="5678" LastEditorUserId="5678" LastEditorDisplayName="" LastEditDate="2010-12-22T01:22:30.083" LastActivityDate="2010-12-23T23:51:44.653" Title="Changing career paths to Microsoft technologies" Tags="&lt;career&gt;&lt;c#&gt;&lt;microsoft&gt;" AnswerCount="11" CommentCount="7" FavoriteCount="2" />
  <row Id="27945" PostTypeId="2" ParentId="27911" CreationDate="2010-12-19T04:39:16.330" Score="1" ViewCount="" Body="&lt;p&gt;The event system for Zope 3. Here it is:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;subscribers = []&#xA;&#xA;def notify(event):&#xA;    &quot;&quot;&quot; Notify all subscribers of ``event``.&#xA;    &quot;&quot;&quot;&#xA;    for subscriber in subscribers:&#xA;        subscriber(event)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Sometimes, the correct solution can be astonishingly simple.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-19T04:39:16.330" />
  <row Id="27946" PostTypeId="2" ParentId="27944" CreationDate="2010-12-19T04:49:26.947" Score="9" ViewCount="" Body="&lt;p&gt;Certification is unlikely to get you any notice. Actually, your best bet may simply be to build something cool using the MS stack and throwing it up on the web, sort of like a portfolio project. Another thing would be to start answering Stack Overflow questions in C# and ASP and then apply through &lt;a href=&quot;http://careers.stackoverflow.com/&quot;&gt;SO Careers&lt;/a&gt; (I notice that you've mostly answered PHP and JS questions).&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-19T04:49:26.947" CommentCount="1" />
  <row Id="27947" PostTypeId="1" AcceptedAnswerId="27956" CreationDate="2010-12-19T04:57:35.080" Score="11" ViewCount="709" Body="&lt;p&gt;I started doing freelancing. I got my first job to create a set of reports. The business team has provided me with the sample reports and also some sample codes. My job is to query the database and generate output as pdf using iText. There are around 25 such reports with different complexities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not sure how much to charge them. Can some one please help me in this?&lt;/p&gt;&#xA;" OwnerUserId="6373" LastEditorUserId="6373" LastEditorDisplayName="" LastEditDate="2011-01-06T05:58:54.270" LastActivityDate="2011-01-06T05:58:54.270" Title="How much can I charge for this a little job?" Tags="&lt;freelance&gt;&lt;contracting&gt;&lt;pricing&gt;&lt;billing&gt;&lt;paying&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="13" />
  <row Id="27948" PostTypeId="2" ParentId="27935" CreationDate="2010-12-19T05:02:20.740" Score="2" ViewCount="" Body="&lt;p&gt;Console applications are the best ways to learn C++. And rather than learning advanced C++, better learn the data structures first. Once you learn list, tress, graph etc. then you will have much more option in console applications. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-19T05:02:20.740" />
  <row Id="27949" PostTypeId="2" ParentId="27518" CreationDate="2010-12-19T05:04:28.817" Score="9" ViewCount="" Body="&lt;p&gt;I'm somewhat militant about interviews for programmers should always have a significant amount of white board coding.  Here is the 3 part question I usually ask.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I am interested not necessarily in the&#xA;  right answer, but to understand how&#xA;  you approach problems and think. &#xA;  Therefore I want you to talk through&#xA;  what your doing and why as you write&#xA;  code.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;This is a 3 part question.  You may&#xA;  not use any string reverse builtins as&#xA;  this would make the question too&#xA;  simple.  However, feel free to&#xA;  reuse/refactor the previous function&#xA;  you wrote if you feel it is&#xA;  applicable. In each case I will give&#xA;  you input and output and you should&#xA;  write a function that fulfills the&#xA;  criteria.  In the spirit of the&#xA;  problem refrain from hardcoding the&#xA;  expected output as a return value.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;a. input: &quot;Hi my name is Bob&quot;&lt;br&gt;&#xA;  output: &quot;boB si eman ym iH&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;b. input: &quot;Hi my name is Bob&quot;&lt;br&gt;&#xA;  output: &quot;Bob is name my Hi&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;c. input: &quot;Hi my name is Bob&quot;&lt;br&gt;&#xA;  output: &quot;iH ym eman si boB&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I never write all 3 parts on the board at the same time.  I always put them on one at a time after the previous one is answered and implemented.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also often follow up each section with further questions about what to do if the their were additional requirements, how would you test it, anything else I think may be useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously these are pretty trivial functions to write, however there are a  few things that make this interesting and seems to give me a very good idea of the programmers capability.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I get a sense of their ability to communicate.&lt;/li&gt;&#xA;&lt;li&gt;I get a sense of experience based on questions they ask, and the answers I get back.&lt;/li&gt;&#xA;&lt;li&gt;It is a 3 part question because the last question is an just a call to the previous 2 functions written.  The interesting thing is how many people don't see that even with me telling they can reuse, refactor before &lt;strong&gt;each&lt;/strong&gt; part. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think the questions are simple enough (possibly even too simple) that I rarely get someone who chokes because it's an interview environment.  The choke and recovery test comes later. :)&lt;/p&gt;&#xA;" OwnerUserId="7575" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-01-19T00:23:11.387" LastActivityDate="2011-01-19T00:23:11.387" />
  <row Id="27950" PostTypeId="2" ParentId="27947" CreationDate="2010-12-19T05:05:54.743" Score="6" ViewCount="" Body="&lt;h3&gt;price = desired hourly rate * (estimated number of hours to complete * 3) + expenses&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Thats what I used to use, at least, when estimating projects. &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-19T05:05:54.743" CommentCount="7" />
  <row Id="27951" PostTypeId="2" ParentId="27886" CreationDate="2010-12-19T05:24:49.757" Score="0" ViewCount="" Body="&lt;p&gt;I agree with the other posts so to add:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I miss ssh with x forwarding vs windows remote desktop.  For those that don't know you can run a desktop program across the network but it acts like a local window. &lt;/p&gt;&#xA;" OwnerUserId="9508" LastActivityDate="2010-12-19T05:24:49.757" />
  <row Id="27952" PostTypeId="2" ParentId="14297" CreationDate="2010-12-19T05:30:02.443" Score="1" ViewCount="" Body="&lt;p&gt;Using dozens of flags instead of a state machine.&lt;/p&gt;&#xA;" OwnerUserId="5646" LastActivityDate="2010-12-19T05:30:02.443" CommunityOwnedDate="2010-12-19T05:30:02.443" />
  <row Id="27953" PostTypeId="2" ParentId="27927" CreationDate="2010-12-19T05:48:53.427" Score="1" ViewCount="" Body="&lt;p&gt;I would check to see if there is a local Python Users Group.  People on those lists are usually interested in helping out other Python developers. &lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-19T05:48:53.427" />
  <row Id="27954" PostTypeId="1" AcceptedAnswerId="27975" CreationDate="2010-12-19T05:51:37.060" Score="8" ViewCount="288" Body="&lt;p&gt;Just curious, because many developers use Flash to do many things that HTML 4 (correct me if I'm wrong) or below cannot or had a hard time doing, like for example the rounded corners (Canvass) and that Video Thing and many more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have not actually explored all of HTML5, so might as well learn it from you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;thanks.&lt;/p&gt;&#xA;" OwnerUserId="10213" LastEditorUserId="16637" LastEditorDisplayName="" LastEditDate="2011-02-12T14:38:30.123" LastActivityDate="2011-02-12T14:38:30.123" Title="Is HTML 5 good enough for developers to switch from Flash?" Tags="&lt;html5&gt;&lt;flash&gt;" AnswerCount="2" CommentCount="10" FavoriteCount="3" />
  <row Id="27955" PostTypeId="2" ParentId="27944" CreationDate="2010-12-19T05:57:25.760" Score="5" ViewCount="" Body="&lt;p&gt;Keyo, I think you should not be concentrating on what headhunters want. Frankly, if they want PHP or some language that in your opinion is even more poorly designed then will you be able to stick with it for a life time?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My suggestion is not to fall for the technology trap by just learning programming languages and techniques without any understanding of a domain. Look around a bit -- see what interests you. Could be game programming, high performance computing, device drivers, kernel development, compilers... the list goes on. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have chosen a field or 2, look into what's there in the open source domain on these areas. Contribute heavily, you would be noticed believe me.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-19T05:57:25.760" CommentCount="1" />
  <row Id="27956" PostTypeId="2" ParentId="27947" CreationDate="2010-12-19T06:04:52.243" Score="15" ViewCount="" Body="&lt;p&gt;The formula that I usually follow: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Initial Rate = Your hourly rate * worst case estimate of number of hours you'd need to finish this project + Expenses&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Expenses = Power Cost + Money transaction costs (wire, western union etc) if applicable + Any hardware or software that you needed to purchase for your work + Internet Connection Costs&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Final Rate = (1 - 0.3 * Probability of repeat business) * Initial Rate&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8720" LastEditorUserId="8720" LastEditorDisplayName="" LastEditDate="2010-12-19T08:11:56.360" LastActivityDate="2010-12-19T08:11:56.360" CommentCount="3" />
  <row Id="27957" PostTypeId="2" ParentId="27886" CreationDate="2010-12-19T06:05:08.123" Score="6" ViewCount="" Body="&lt;p&gt;BASH, sed, grep, awk, find and ssh&lt;/p&gt;&#xA;" OwnerUserId="10927" LastActivityDate="2010-12-19T06:05:08.123" CommentCount="2" />
  <row Id="27958" PostTypeId="2" ParentId="26771" CreationDate="2010-12-19T06:17:26.973" Score="1" ViewCount="" Body="&lt;p&gt;If you are really the only person who can fix their problem then they really need to rethink a lot of things. What if you quit? What if you died?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The should not need to call you.&lt;/p&gt;&#xA;" OwnerUserId="10806" LastActivityDate="2010-12-19T06:17:26.973" />
  <row Id="27960" PostTypeId="2" ParentId="24398" CreationDate="2010-12-19T06:38:03.103" Score="0" ViewCount="" Body="&lt;p&gt;Often this happens because you haven't defined the problem properly and accurately. Perhaps you're trying to solve a preconceived solution instead of the actual problem itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is only what you observe, not what you imagine. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;My bloody car won't start&quot; is a problem. &quot;The battery is flat.&quot; is a preconceived solution to the car-starting problem. Even testing the battery doesn't prove it is the only cause of the problem. Unless you have actually recharged or replaced the battery and successfully started the car then you have no proof that the battery is the cause of the problem problem. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simplify and keep simplifying. Break it down into small parts. If you can't solve those parts, smash them. You'll feel better. Then break it down into different small parts. Each one of those parts must be observable phenomenon.&lt;/p&gt;&#xA;" OwnerUserId="10806" LastActivityDate="2010-12-19T06:38:03.103" CommunityOwnedDate="2011-04-09T16:55:22.410" />
  <row Id="27961" PostTypeId="2" ParentId="26771" CreationDate="2010-12-19T07:05:16.873" Score="0" ViewCount="" Body="&lt;p&gt;'Emergency contact information'&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Type 1 response: in each case, the contacts you are giving are well-trained to handle a particular type of emergency situation. An emergency response team should consist of various professionals.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Give the building hazmat emergency contact information.&lt;/li&gt;&#xA;&lt;li&gt;Or, give your lawyer's contact information, in case you need to obtain a bail.&lt;/li&gt;&#xA;&lt;li&gt;Train a deputy officer. You should pay at least 40% of your own salary to that officer.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Type 2 response: delegate emergency power to your boss.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A robust server should be able to solve every problem by &lt;a href=&quot;http://en.wikipedia.org/wiki/Crash-only_software&quot; rel=&quot;nofollow&quot;&gt;restarting&lt;/a&gt;. To make it easier, someone should wire the restart to a &lt;a href=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/9/92/Easy_button.JPG/220px-Easy_button.JPG&quot; rel=&quot;nofollow&quot;&gt;panic button&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;If it is too difficult to restart the server, try turn off and cycle the entire building's power.&lt;/li&gt;&#xA;&lt;li&gt;Another panic button will automatically sign up a cloud service with your credit card info, and then migrate the server to the cloud. Bill your boss later.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Type 3 response: for mission-critical operations.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Insist on using Twitter for text-only communication. &lt;/li&gt;&#xA;&lt;li&gt;Set up a secret code system, for example: hard disk down = 041&lt;/li&gt;&#xA;&lt;li&gt;Meanwhile, bring a laptop with VPN and 3G worldwide roaming so that you can fix the problem remotely.&lt;/li&gt;&#xA;&lt;li&gt;Hire a local driver who is also trained as a security guard.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-12-19T07:05:16.873" />
  <row Id="27962" PostTypeId="1" AcceptedAnswerId="27964" CreationDate="2010-12-19T07:11:48.143" Score="2" ViewCount="197" Body="&lt;p&gt;Trying to look for an exciting startup that offers an excellent position is a tough call. Typical job boards would have a small number of positions related to startups, and even at that the nature of the work (at least some idea before you make a move) is hard to fathom so you really don't know if that's indeed exciting. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So folks, how do you go about it? &lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-19T14:53:45.890" Title="Best sites to look around for cool startups?" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;startups&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="5" />
  <row Id="27963" PostTypeId="2" ParentId="27943" CreationDate="2010-12-19T07:13:22.743" Score="2" ViewCount="" Body="&lt;p&gt;I've done offsite programming contracts for 3M, Adobe, Apple, Kinko's, Microsoft, Motorola, and lots of folks you've probably never heard of, including an Oscar-winning special-effects firm, and a couple of artists who got a grant from the French government.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, willingness to use telecommuting contractors has nothing to do with a company's size or location, and everything to do with corporate culture and the personalities of the decision-makers. Some companies and managers are so risk-averse they'd rather not have work done at all than let somebody do it offsite.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of my telecommute contracts have come from companies in or near a big city; that's probably because that's where most people who need programming are. But you never know - I've also done contracts for folks in small towns in Illinois and Oregon.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-19T07:13:22.743" />
  <row Id="27964" PostTypeId="2" ParentId="27962" CreationDate="2010-12-19T07:31:20.810" Score="1" ViewCount="" Body="&lt;p&gt;Most importantly, get involved in your local community. Go to startup/programming events. Meet people, make contacts and network.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Useful websites with startup job listings:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.startuply.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.startuply.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://techcofounder.com/&quot; rel=&quot;nofollow&quot;&gt;http://techcofounder.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://craigslist.org&quot; rel=&quot;nofollow&quot;&gt;http://craigslist.org&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Last resort - start your own company.&lt;/p&gt;&#xA;" OwnerUserId="1444" LastActivityDate="2010-12-19T07:31:20.810" CommentCount="1" />
  <row Id="27965" PostTypeId="2" ParentId="27564" CreationDate="2010-12-19T07:46:36.523" Score="6" ViewCount="" Body="&lt;p&gt;Any chance of moving PHP source to github?&lt;/p&gt;&#xA;" OwnerUserId="10468" LastActivityDate="2010-12-19T07:46:36.523" CommunityOwnedDate="2010-12-19T07:46:36.523" CommentCount="1" />
  <row Id="27966" PostTypeId="2" ParentId="27962" CreationDate="2010-12-19T08:32:59.993" Score="1" ViewCount="" Body="&lt;p&gt;Kickstarter is interesting and worth a look&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.kickstarter.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.kickstarter.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5245" LastActivityDate="2010-12-19T08:32:59.993" CommentCount="1" />
  <row Id="27967" PostTypeId="2" ParentId="5384" CreationDate="2010-12-19T08:42:06.227" Score="0" ViewCount="" Body="&lt;p&gt;I tell them: &quot;I am a programmer, not an administrator. You would not ask an architect to shindle your roof, either.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, this works with almost everybody, except my mother. Nowadays I just tell her to get a mac.&lt;/p&gt;&#xA;" OwnerUserId="9505" LastActivityDate="2010-12-19T08:42:06.227" CommunityOwnedDate="2010-12-19T08:42:06.227" />
  <row Id="27968" PostTypeId="2" ParentId="27947" CreationDate="2010-12-19T08:54:57.000" Score="4" ViewCount="" Body="&lt;p&gt;A very different formula to those already posted, used with great success by some people, is&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;price = whatever you think the customer is willing to pay at most&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, this formula contains a variable that is hard to determine, but I've seen cases where a customer was willing to pay €800 for a task that hardly takes an hour to complete. And similar differences on a larger scale. The task is very important for the customer, because it makes or saves him a lot of money, so he is willing to pay a lot, without considering how much it takes to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So imagine you were the business team, and your really needed those reports a.s.a.p., how much would you be willing to pay instead of looking for someone to make it cheaper? Maybe they have a budget of USD10K for those reports, so why should you make it for USD2K?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should do the other calculation, price=rate*expected hours*uncertainty factor+expenses, too; if this results in a higher price, you should reconsider doing the job at all.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-19T08:54:57.000" CommentCount="8" />
  <row Id="27969" PostTypeId="2" ParentId="13172" CreationDate="2010-12-19T09:09:31.583" Score="1" ViewCount="" Body="&lt;p&gt;A great post on how to get experience with large datasets, with access to various free large datasets &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://highscalability.com/blog/2010/12/8/how-to-get-experience-working-with-large-datasets.html&quot; rel=&quot;nofollow&quot;&gt;http://highscalability.com/blog/2010/12/8/how-to-get-experience-working-with-large-datasets.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4378" LastActivityDate="2010-12-19T09:09:31.583" />
  <row Id="27970" PostTypeId="2" ParentId="15519" CreationDate="2010-12-19T09:14:39.317" Score="1" ViewCount="" Body="&lt;p&gt;This is a topic that I have a great interest in...there are many parameters to consider when scaling your network, backend/database or the application. Its a vast topic with a multitude of scaling techniques to consider depending on the nuances of your application. You can access my slides of a presentation I did on why and how of highly scalable websites recently: &lt;a href=&quot;http://www.slideshare.net/faizanj/why-and-how-of-highly-scalable-web-sites&quot; rel=&quot;nofollow&quot;&gt;http://www.slideshare.net/faizanj/why-and-how-of-highly-scalable-web-sites&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4378" LastActivityDate="2010-12-19T09:14:39.317" />
  <row Id="27971" PostTypeId="2" ParentId="27798" CreationDate="2010-12-19T09:27:35.267" Score="1" ViewCount="" Body="&lt;p&gt;Maybe function length is not so good metric, we try to use Cyclomatic complexity, on methods too, and one of future Source Control checkin rules that CC on classes and methods must be lower than X&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For methods that X is set to 30, and that's pretty tight.&lt;/p&gt;&#xA;" OwnerUserId="4512" LastActivityDate="2010-12-19T09:27:35.267" />
  <row Id="27972" PostTypeId="2" ParentId="27886" CreationDate="2010-12-19T09:27:50.693" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The ability to change UI to different level based users knowledge.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example as developer/administrator you may need expert level on UI.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-19T09:27:50.693" />
  <row Id="27973" PostTypeId="2" ParentId="22940" CreationDate="2010-12-19T09:32:05.347" Score="0" ViewCount="" Body="&lt;p&gt;In most startups I saw formal experience means less than actual knowledge and ability to show it, along which the right type of personality. So prepare to be asked to show something of your work and demonstrate your skills. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Social networking means a lot too - since success of the startup depends a lot on having the right people, knowing somebody who can vouch for you being &quot;the right people&quot; helps. &lt;/p&gt;&#xA;" OwnerUserId="10080" LastActivityDate="2010-12-19T09:32:05.347" />
  <row Id="27974" PostTypeId="2" ParentId="27564" CreationDate="2010-12-19T09:35:45.580" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Language syntax&lt;/strong&gt;: There are some good clues in &lt;a href=&quot;http://code.google.com/p/pihipi/&quot; rel=&quot;nofollow&quot;&gt;pihipi&lt;/a&gt; and &lt;a href=&quot;http://code.google.com/p/phpreboot/&quot; rel=&quot;nofollow&quot;&gt;phpreboot&lt;/a&gt; of what developers are interested in (though phpreboot goes too far becoming JS).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Development methodology&lt;/strong&gt;: It would greatly enhance the lifespan of PHP.net if such surveys were actually taken into account. Do not make any more willy-nilly afternoon IRC session syntax decisions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Individual features&lt;/strong&gt;: Some have been mentioned before, but I'll happily burn some karma to be extra blunt here:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Unicode string type.&lt;/li&gt;&#xA;&lt;li&gt;Bigint (see Python).&lt;/li&gt;&#xA;&lt;li&gt;Runkit builtin to remove/rename/override builtin functions and classes, which aren't always that well designed.&lt;/li&gt;&#xA;&lt;li&gt;Modern OOP&#xA;&lt;ul&gt;&#xA;&lt;li&gt;multiple inheritance (instead of complexity to support seldom edge cases with clumsy traits syntax)&lt;/li&gt;&#xA;&lt;li&gt;scalars can double as objects (see Python), e.g. array() works as ArrayObject, or strings as SplString (needs usable methods, all string funcs should be available as &lt;code&gt;str::toupper()&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Deprecate the shitty shit &lt;code&gt;\&lt;/code&gt; namespace syntax&lt;/strong&gt;, fix the parser, and adopt &lt;code&gt;::&lt;/code&gt; as alternative. You know, like a real language.&lt;/li&gt;&#xA;&lt;li&gt;Any variation of LINQ (allthough I don't trust you guys do devise a sensible syntax)&lt;/li&gt;&#xA;&lt;li&gt;or XML literals.&lt;/li&gt;&#xA;&lt;li&gt;Get rid of php.ini runtime behaviour and semantic switches. It takes out some of the excitement, true, but would benefit developers and user base.&lt;/li&gt;&#xA;&lt;li&gt;Yes, magic_quotes are not gone yet.&lt;/li&gt;&#xA;&lt;li&gt;Convert Zend Engine bytecode to PBC&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Albeit, if this isn't obvious, I'd happily fund anyone else to do the latter, and kill off php.net as main implementation. &lt;code&gt;:P&lt;/code&gt;&lt;br&gt;&#xA;Oh, just noticed, it's community wiki. So there's a chance you're not actually here for the karma, but genuine interest. If so, look into the &amp;lt;b&amp;gt; issue &amp;lt;/b&amp;gt; which seriously hurts the language (directoritis).&lt;/p&gt;&#xA;" OwnerUserId="1245" LastActivityDate="2010-12-19T09:35:45.580" CommunityOwnedDate="2010-12-19T09:35:45.580" CommentCount="5" />
  <row Id="27975" PostTypeId="2" ParentId="27954" CreationDate="2010-12-19T09:40:05.203" Score="6" ViewCount="" Body="&lt;p&gt;Rounded corners and stuff like this is not what flash is meant for, and these applications will die off very soon as more advanced CSS and HTML 5 kicks in. Where Flash really has advantage now is applications with very rich GUI, non-trivial user interaction (drawing, messing around with many different elements in various ways, rich maps, etc.). Now, you could probably make most of these things in HTML 5, but since Flash has tools, libraries, widgets, experienced developers and so on, it would take time until the same is developer for HTML 5. So if you're starting the project right now you may have better luck with Flash (if you task indeed requires the power of Flash - if you just need video/some CSS, go HTML 5), but that might change in a couple of years. &lt;/p&gt;&#xA;" OwnerUserId="10080" LastActivityDate="2010-12-19T09:40:05.203" CommentCount="1" />
  <row Id="27976" PostTypeId="2" ParentId="27798" CreationDate="2010-12-19T09:45:18.400" Score="11" ViewCount="" Body="&lt;p&gt;Since I embarked on this crazy racket in 1970, I have seen exactly one module that really NEEDED to be more than one printed page (about 60 lines).  I have seen lots of modulues that were longer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For that matter, I have written modules that were longer, but they were usually large finite state machines written as big switch-statements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Part of the problem appears to be that programmers these days are not taught to modularize things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coding standards that maximize the waste of vertical space appear also to be part of the problem.  (I have YET to meet a software manager who has read Weinberg's &quot;Psychology of Computer Programming&quot;.  Weinberg points out that multiple studies have shown that programmer comprehension is essentially limited to what the programmer can see at any given instant.  If he has to scroll, or turn a page, his comprehension drops significantly: he has to remember, and abstract.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I remain convinced that a lot of the well-documented programmer productivity gains from FORTH were due to the FORTH &quot;block&quot; system for source code: modules were hard-limited to an absolute maximum of 16 lines of 64 characters.  You could factor infinitely, but you COULD NOT UNDER ANY CIRCUMSTANCES WHATSOEVER write a 17-line routine.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-12-19T09:45:18.400" CommentCount="2" />
  <row Id="27977" PostTypeId="2" ParentId="25442" CreationDate="2010-12-19T10:07:37.167" Score="1" ViewCount="" Body="&lt;p&gt;Bruce Tate recently published a book which looks promising and addresses exactly this question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://pragprog.com/titles/btlang/seven-languages-in-seven-weeks&quot; rel=&quot;nofollow&quot;&gt;Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is the list of 7 languages covered, and they are carefully chosen in order to cover the broadest set of programming paradigms:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ruby&lt;/li&gt;&#xA;&lt;li&gt;Io&lt;/li&gt;&#xA;&lt;li&gt;Prolog&lt;/li&gt;&#xA;&lt;li&gt;Scala&lt;/li&gt;&#xA;&lt;li&gt;Erlang&lt;/li&gt;&#xA;&lt;li&gt;Clojure&lt;/li&gt;&#xA;&lt;li&gt;Haskell&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7968" LastActivityDate="2010-12-19T10:07:37.167" />
  <row Id="27978" PostTypeId="2" ParentId="27954" CreationDate="2010-12-19T10:14:21.183" Score="2" ViewCount="" Body="&lt;p&gt;While it is too early to say about near future, ultimately I think I think it is HTML5 which will be the new standard, I base this hunch on the fact most of the trend-setter like Apple, Google, MS are either making HTML5 their main area of thrust or alternatively making it one of their priorities. Which is why I think we will have mature, stable and fast platform for HTML5.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-19T10:14:21.183" CommentCount="1" />
  <row Id="27979" PostTypeId="2" ParentId="25442" CreationDate="2010-12-19T10:19:46.240" Score="0" ViewCount="" Body="&lt;p&gt;After a few years of OOP you tend to think of solutions in terms of objects/classes - I suggest you learn either functio0nal programming (Erlang, F#, Haskel to name a few) or learn a new DYnamic language (Python/Ruby comes to mind).&lt;/p&gt;&#xA;" OwnerUserId="3806" LastActivityDate="2010-12-19T10:19:46.240" />
  <row Id="27980" PostTypeId="2" ParentId="27947" CreationDate="2010-12-19T10:49:36.053" Score="1" ViewCount="" Body="&lt;p&gt;Something else to consider: How much depends on the accuracy of the reports? If you're producing them and they're used for strategic planning, bonus compensation or other vital decision making, the responsibility lies on you to produce flawless and reliable numbers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider that you may not just be hired to run the actual DB query. You may be in charge of reviewing the integrity of the data at hand, if you know it or not. If the numbers fluctuate drastically all of a sudden, and it later turns out there was a reporting error somewhere upstream from where you ran your report, can you get away with simply saying 'well I ran the same report as always', or are you expected to do some additional research.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Time spend or the expertise you have isn't the only factor in pricing.&lt;/p&gt;&#xA;" OwnerUserId="3973" LastActivityDate="2010-12-19T10:49:36.053" />
  <row Id="27981" PostTypeId="2" ParentId="27564" CreationDate="2010-12-19T10:54:15.987" Score="5" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;support for enumerations (like java 1.5+)&lt;/li&gt;&#xA;&lt;li&gt;Be able to define method return types, in interfaces and classes&lt;/li&gt;&#xA;&lt;li&gt;support for annotations / metadata definition on properties and methods.&lt;/li&gt;&#xA;&lt;li&gt;be able to do strict type hinting for method scalar arguments.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10938" LastEditorUserId="10938" LastEditorDisplayName="" LastEditDate="2010-12-19T14:40:35.543" LastActivityDate="2010-12-19T14:40:35.543" CommunityOwnedDate="2010-12-19T10:54:15.987" CommentCount="1" />
  <row Id="27982" PostTypeId="1" AcceptedAnswerId="27986" CreationDate="2010-12-19T11:26:27.110" Score="2" ViewCount="197" Body="&lt;p&gt;I went to an interview last week for a junior programmer and mentioned that I have been working on a project with a buddy of mine. Tomorrow they would like to see this project in order to decide if they should hire me or not. So I was wondering:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What parts of a project are of interest to someone who has not seen the project before?&lt;/li&gt;&#xA;&lt;li&gt;What could I show that would change their perspective of me as a programmer and what I know?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The project is in C# and have been a hobby project for 6 months now. Without going into to much details:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it's a networked program&lt;/li&gt;&#xA;&lt;li&gt;it's server / client based where clients end up connecting to each others&lt;/li&gt;&#xA;&lt;li&gt;there is synchronization of data between clients&lt;/li&gt;&#xA;&lt;li&gt;we are using files to store information about the different clients, which is also being synchronized&lt;/li&gt;&#xA;&lt;li&gt;the program in whole is divided into some different projects (some which go into .dll's)&lt;/li&gt;&#xA;&lt;li&gt;the project will later handle multiple layers of displaying the data to the user (meaning cmd, a window etc..)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I have green lighted this with my buddy as well and it is ok to show. My idea was to show the shell (cmd) that we have which is working and the top layers of the hierarchy, the ones that the shell communicates directly with. These are three classes in particular, one that connects and communicates with the server, one that handles the synchronization and one that handles the objects that are being synchronized. I'll try to go into some details about how we store the objects and how this is communicated to the synchronizer class. Then discuss on a higher level of how we synchronize the data, ending with going into some detail about how this is done.&lt;br&gt;&#xA;Basically, &lt;strong&gt;start from an abstract layer and go into detail where the magic happends.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I wonder how this will be understandable for someone who has never seen our project before. How will this show that I am a better or worse programmer than my next? They are programmers so I guess they will understand the basics and be able to follow the functions and what the code do. But I know that &lt;em&gt;I&lt;/em&gt; have trouble with understanding the overall picture of a project, much less in 1-2 hours. Also, I wouldn't know how to decide if it was a good programmer or bad unless I saw some bad code. So my question is:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Is the above idea something to work on? (top &gt; bottom) &lt;/li&gt;&#xA;&lt;li&gt;Should I concentrate more on algorithms?&lt;/li&gt;&#xA;&lt;li&gt;Should I try to build a UML diagram or some other visual representation of the project? &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Any other ideas?&lt;/p&gt;&#xA;" OwnerUserId="10034" LastActivityDate="2010-12-19T22:34:45.917" Title="How to explain a project for a potential employer" Tags="&lt;c#&gt;&lt;employment&gt;&lt;presentation&gt;" AnswerCount="3" />
  <row Id="27983" PostTypeId="1" AcceptedAnswerId="27994" CreationDate="2010-12-19T11:35:07.940" Score="8" ViewCount="301" Body="&lt;p&gt;I've recently been assigned to work on a project written in &lt;a href=&quot;http://programmers.stackexchange.com/questions/2846/which-programming-language-do-you-really-hate/2851#2851&quot;&gt;PHP&lt;/a&gt;. I can't change that, and have no intention of really trying.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, this can't be an uncommon scenario. How do you motivate yourself to work on the project when the code you're looking at and producing constantly makes you want to cry?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It should be noted that this is pretty much the only on-campus job doing anything software related available at the moment, so &quot;just change jobs&quot; isn't really an option :(&lt;/p&gt;&#xA;" OwnerUserId="886" LastEditorUserId="886" LastEditorDisplayName="" LastEditDate="2010-12-19T19:38:05.800" LastActivityDate="2010-12-19T19:38:05.800" Title="What do you do when you have to work on a project using a language that you hate?" Tags="&lt;programming-languages&gt;" AnswerCount="9" CommentCount="3" FavoriteCount="1" />
  <row Id="27984" PostTypeId="2" ParentId="27982" CreationDate="2010-12-19T11:36:58.377" Score="0" ViewCount="" Body="&lt;p&gt;To be honest if you are applying for a programming position do not be at all worried about how 'technical' you get. If the interviewer does not understand to the same level or a higher level than you despite you knowing your project inside out, you should have their job!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;How will this show that I am a better or worse programmer than my next? &quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your app will speak for itself. If it's an illegible mess, providing the interviewer is NOT of the breed above, then it will appear as an illegible mess.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might be beneficial to produce a brief UML diagram (and I mean brief). Up to now though this only covers application design. I imagine they are going to want to get dirty and see the actual code. For that reason have source code ready (print out the entire app if you have to or have it handy on a laptop).&lt;/p&gt;&#xA;" OwnerUserId="9682" LastActivityDate="2010-12-19T11:36:58.377" CommentCount="2" />
  <row Id="27985" PostTypeId="1" AcceptedAnswerId="27991" CreationDate="2010-12-19T11:40:44.823" Score="8" ViewCount="261" Body="&lt;p&gt;Following on from a previous thread, it has got me interested in learning a little about Assembly programming.  Not so much for wanting to program useful apps in, just to get a feel for low level programming to better understand what is happening.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can anybody recommend any books or online resources for beginners?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="10149" LastActivityDate="2011-03-08T19:26:26.197" Title="Learning to Program in Assembly - Useful Resources" Tags="&lt;books&gt;&lt;assembly&gt;" AnswerCount="6" FavoriteCount="5" />
  <row Id="27986" PostTypeId="2" ParentId="27982" CreationDate="2010-12-19T11:40:58.817" Score="2" ViewCount="" Body="&lt;p&gt;Give a general description of the problem you're trying to solve and how you went about it. A diagram of the main pieces and how they interact will be helpful with this type of application. They're buying you and not the application. It may be something they have absolutely no use for, but want to see how well it is constructed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you start showing them your code, they should have a lot of questions and start directing what they want to see. Be prepared to identify areas that have been coded well and those that may be a work in progress. They'll probably ask how long it took to write certain sections of code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope your work looks as good or better than your buddy's ;)&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-19T11:40:58.817" CommentCount="1" />
  <row Id="27987" PostTypeId="2" ParentId="27983" CreationDate="2010-12-19T11:42:09.290" Score="1" ViewCount="" Body="&lt;p&gt;How long is the project? If is it short just grin and bear it and think if it as good resume filler. If long term I would look for another job. &lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2010-12-19T11:42:09.290" />
  <row Id="27988" PostTypeId="2" ParentId="27983" CreationDate="2010-12-19T11:43:54.270" Score="1" ViewCount="" Body="&lt;p&gt;Really? You do what you do when you HAVE to work on ANYTHING you hate. You grit your teeth, dig in and get the job done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;..or you learn to be a little more easy going!&lt;/p&gt;&#xA;" OwnerUserId="9682" LastActivityDate="2010-12-19T11:43:54.270" CommentCount="1" />
  <row Id="27989" PostTypeId="2" ParentId="27983" CreationDate="2010-12-19T11:45:23.073" Score="0" ViewCount="" Body="&lt;p&gt;If I'm building something that someone wants with a language that I feel is capable of delivering the project without too many problems, I can get over it. What worries me is when they want functionality that may not be possible/practical or it takes longer than normal. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-19T11:45:23.073" />
  <row Id="27990" PostTypeId="2" ParentId="27982" CreationDate="2010-12-19T11:46:47.110" Score="1" ViewCount="" Body="&lt;p&gt;I am a freelance developer and I think I lately have found the ideal way to &quot;talk&quot; to customers: &lt;a href=&quot;http://www.bpmn.org/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;BPMN&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally after the requirements gathering I model their whole business process and add my $0.02 with what I intend to implement. In a second session to clear up doubts I present the BPMN process (and subprocesses) and open with: &quot;this is your business process, it is modeled with a specialized notation called Business Process Modelling Notation, it is like a flow-chart but here are only two symbols you must know, circles are events (stuff that happens instantly) and squares are tasks (stuff that takes time)&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;And I totally have them there&lt;/strong&gt;; then I start explaining them how I understood it and how it will reflect in the implementation, and what are the future possibilities, and then the magic happens: customers are totally engaged in a proactive discussion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you ask me why I'd tell you that this way you can show the client/employer that you actually understood the problem, and where you didn't, he/she will have an actual opportunity to know how to tell you why, where and what is missing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try &lt;a href=&quot;http://www.bizagi.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.bizagi.com/&lt;/a&gt; as a BPMN editor, its free and the diagrams just look gorgeous. The tool actually explains you BPMN on the fly (mouse-over the pallette). Tip: make a general process and use &quot;Reusable SubProcesses&quot; in it, so that each reusable subprocess refers each other diagram you create. When you finish, export in HTML, it just looks awesome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember, BPMN is meant to describe mainly business logic, not program logic (e.g. don't diagram &quot;ifs&quot; and &quot;loops&quot; if they are not relevant to the business logic), and this makes possible to show only the relevant parts of the problem and how your software solves it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Give it a try, and good luck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S.: Check the &lt;a href=&quot;http://en.wikipedia.org/wiki/Business_Process_Modeling_Notation&quot; rel=&quot;nofollow&quot;&gt;wikipedia page&lt;/a&gt; on BPMN.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastEditorUserId="10869" LastEditorDisplayName="" LastEditDate="2010-12-19T22:34:45.917" LastActivityDate="2010-12-19T22:34:45.917" CommentCount="1" />
  <row Id="27991" PostTypeId="2" ParentId="27985" CreationDate="2010-12-19T11:56:53.840" Score="4" ViewCount="" Body="&lt;p&gt;Recommended Book : &lt;a href=&quot;http://homepage.mac.com/randyhyde/webster.cs.ucr.edu/www.artofasm.com/index.html&quot; rel=&quot;nofollow&quot;&gt;The Art of Assembly Language Programming&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also liked &lt;a href=&quot;http://www.osdata.com/topic/language/asm/asmintro.htm&quot; rel=&quot;nofollow&quot;&gt;this site&lt;/a&gt;. Nice introduction to assembly programming!&#xA;I used this site as a &lt;em&gt;reference&lt;/em&gt; while studying for my Microprocessors and Microcontrollers course.&lt;/p&gt;&#xA;" OwnerUserId="4522" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-12-19T12:08:14.670" LastActivityDate="2010-12-19T12:08:14.670" CommentCount="2" />
  <row Id="27993" PostTypeId="2" ParentId="27983" CreationDate="2010-12-19T12:01:38.517" Score="1" ViewCount="" Body="&lt;p&gt;If it's a contract or short term project, or something you'll occasionally need to support, just &lt;strong&gt;bite the bullet and do it&lt;/strong&gt;, of course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If not, then look for another job or try to explain why that language could be a hindrance on the long term (if you can).&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;In the first case, it's &lt;strong&gt;about being professional&lt;/strong&gt; and not whining about personal preferences. In the second case, it's about &lt;strong&gt;being happy with your job and life&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;If what you need is motivation, I'd say start trying to find bits and pieces you enjoy in the language, and start a personal pet project with it so you have a stronger incentive to learn it more in depth. Try to do things that you like with it. If you like TDD, focus on improving the test coverage, etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in the end, you'll have to bite the bullet.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastActivityDate="2010-12-19T12:01:38.517" />
  <row Id="27994" PostTypeId="2" ParentId="27983" CreationDate="2010-12-19T12:09:35.080" Score="3" ViewCount="" Body="&lt;p&gt;My tip would be to endure it, only if you see the benefit of &lt;strong&gt;learning&lt;/strong&gt; anything from the language and all the processes or patterns that the project uses. You might gain something from it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The alternative, if you're risk-averse enough, is to look for another job. Which is certainly a good idea if your lack of the motivation is dragged down not only because of the technology used, but by the lack of understanding for good practices from your coworkers. There should be better things to do than to have your abilities as a developer stagnate. If you're &lt;strong&gt;not learning anything&lt;/strong&gt; or gain anything from your job: get a better job. &lt;/p&gt;&#xA;" OwnerUserId="1683" LastActivityDate="2010-12-19T12:09:35.080" CommentCount="1" />
  <row Id="27995" PostTypeId="2" ParentId="27983" CreationDate="2010-12-19T12:19:12.327" Score="1" ViewCount="" Body="&lt;p&gt;If your employer makes you work regularily using tools that you &quot;hate&quot; (which is a very strong term), then perhaps you are in the wrong job?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being pragmatic is essential to profesionalism.  &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-19T12:19:12.327" />
  <row Id="27996" PostTypeId="2" ParentId="27983" CreationDate="2010-12-19T12:24:27.347" Score="0" ViewCount="" Body="&lt;p&gt;Its a learning opportunity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A couple of things spring to mind:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Firstly: how to do better in the toolset you're working with, just because what's already there is less than wonderful doesn't mean that what you produce has to be. You may even find things to like (although I struggle to remember any from Dibol...).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Secondly: weight of argument for not using that toolset in the future, if you can say that you used something in a non-trivial fashion, that it has these pros and those cons then you have a far better chance of persuading something that your negative opinion of same has value.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As a professional you have, substantially, to shut up and get on with it - the sooner its done the sooner you get back to using toys you like. That's not to say that you shouldn't express your unhappiness to your management at the start and at the end. But probably not in the middle.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-12-19T12:24:27.347" />
  <row Id="27997" PostTypeId="1" CreationDate="2010-12-19T12:28:01.513" Score="0" ViewCount="28" Body="&lt;p&gt;Are sources of email marketing data available to the public? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to see email marketing data to see what kind of content a business sends out, the frequency of sending, the number of people emailed, especially the resulting open rates and click through rates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are businesses willing to share data on their previous email marketing campaigns without divulging their contact list? I would like to use this data to create an application to help businesses create better newsletters by using this data as a benchmark, basically sharing what works and what doesn't for each industry.&lt;/p&gt;&#xA;" OwnerUserId="10180" LastActivityDate="2010-12-19T12:28:01.513" ClosedDate="2010-12-19T14:44:22.217" Title="Are there sources of email marketing data available?" Tags="&lt;email&gt;&lt;heuristics&gt;&lt;data&gt;" CommentCount="2" />
  <row Id="27998" PostTypeId="1" AcceptedAnswerId="28015" CreationDate="2010-12-19T12:46:36.980" Score="6" ViewCount="61" Body="&lt;ul&gt;&#xA;&lt;li&gt;What is your process?&lt;/li&gt;&#xA;&lt;li&gt;How do you get feedback?&lt;/li&gt;&#xA;&lt;li&gt;What software do you use? (like &lt;a href=&quot;http://www.techsmith.com/morae.asp&quot; rel=&quot;nofollow&quot;&gt;Morae&lt;/a&gt; from TechSmith)&lt;/li&gt;&#xA;&lt;li&gt;Who does them?&lt;/li&gt;&#xA;&lt;li&gt;Have you measured how it positively affected the quality of your software?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm looking for your experience on the subject. This is something I want to improve.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-19T14:33:12.310" LastActivityDate="2010-12-21T04:14:03.850" Title="How do you organize your usability testings ?" Tags="&lt;testing&gt;&lt;usability&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="28002" PostTypeId="2" ParentId="27726" CreationDate="2010-12-19T13:12:55.837" Score="1" ViewCount="" Body="&lt;p&gt;If what you're doing does not have a negative impact on your social life or health, it's not called obsession - it's called ambition and enthusiasm. And the line between the two may be very thin indeed. So know where this thin line lies - not necessarily to walk it, but to avoid stepping over it.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-12-19T13:12:55.837" />
  <row Id="28003" PostTypeId="2" ParentId="27726" CreationDate="2010-12-19T13:19:12.470" Score="1" ViewCount="" Body="&lt;p&gt;I am 32 now, and when I was seventeen, I used to sit for more than 14 hours per day. It's good to be passionate about the things you like, but you have to be careful. It's important to learn, it's important to enjoy it, but it is also really important to not lose track.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to keep in mind that you need to exercise as well, otherwise, when you reach 32, you will feel your body ache like you are 60. Apart from that, if you feel happy, and you are feeling your improving and doing useful things, keep walking...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. I failed to mention that despite being 32 I still sit for ~11hours per work day in front of the computer. Weekends I try to spend as much time as I can with my daughter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, my body aches, really... You need the exercise!&lt;/p&gt;&#xA;" OwnerUserId="3018" LastActivityDate="2010-12-19T13:19:12.470" />
  <row Id="28004" PostTypeId="2" ParentId="5384" CreationDate="2010-12-19T13:55:27.850" Score="0" ViewCount="" Body="&lt;p&gt;Parents are the only ones that I'll help.  After that I usually claim ignorance.  My only solution for slow/frozen/crashing computers is a format.  It takes a few hours and is guaranteed to fix any issues.  Most people don't like my solution though, so I don't bother&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's just not worth the time and effort, since most people presume you are doing it for free.  If you asked someone to come and paint your house, you would pay them.  If people ask for computer help, they don't expect to pay people.  If they do, it seems to be more along the lines of &quot;Here's $20 for coming over and spending 6 hours dealing with my garbage computer&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I wanted to have a tech support job, I would have gotten one for my day job.&lt;/p&gt;&#xA;" OwnerUserId="10946" LastActivityDate="2010-12-19T13:55:27.850" CommunityOwnedDate="2010-12-19T13:55:27.850" />
  <row Id="28005" PostTypeId="1" CreationDate="2010-12-19T14:04:50.207" Score="0" ViewCount="202" Body="&lt;p&gt;I have a job at a service company as a C developer and recently got an offer from sap labs as abap developer. But, as per my observations, abap though gives you a fat paycheck but it restricts your development as a programmer as you can not switch to other language. Should I switch to sap abap if I can move to other language later on or should I stick with C only. I have worked with .NET, javascript and jquery earlier and abap doesn't sound exciting enough to me.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I right in my observation? Please provide suggestions.&lt;/p&gt;&#xA;" OwnerUserId="10948" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-19T14:32:27.413" LastActivityDate="2010-12-19T16:53:03.807" Title="is abap a good choice for a c programmer" Tags="&lt;programming-languages&gt;&lt;jobs&gt;&lt;career-advice&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="28006" PostTypeId="2" ParentId="27983" CreationDate="2010-12-19T14:07:45.367" Score="2" ViewCount="" Body="&lt;p&gt;You design the programming language that you would &lt;em&gt;like&lt;/em&gt; to use, then write a compiler that outputs the language you don't like to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least, that's what these guys did:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://haXe.Org/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;haXe&lt;/strong&gt;&lt;/a&gt; targets PHP, Flash, JavaScript, C++ and Neko; maybe JVM in the future&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://JoelOnSoftware.Com/items/2006/09/01.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Wasabi&lt;/strong&gt;&lt;/a&gt; targets VBscript, JavaScript, PHP4, PHP5 and .NET&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://Scriptol.Net/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Scriptol&lt;/strong&gt;&lt;/a&gt; targets PHP and C++&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://CoffeeScript.Org/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;CoffeeScript&lt;/strong&gt;&lt;/a&gt; targets JavaScript&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1352" LastActivityDate="2010-12-19T14:07:45.367" CommentCount="2" />
  <row Id="28007" PostTypeId="2" ParentId="27909" CreationDate="2010-12-19T14:16:50.833" Score="1" ViewCount="" Body="&lt;p&gt;I've commited to the Shuffle app on Android, this is for my own usage, but it was also a learning experiences as I got to use the Android SDK for something larger than myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started an online booking system because the idea had nagged me for quite some time that hairdressers used paper books to book their customers. This was quite a learning experience as well, since it was the first I started with money making focus. It was my first experience with marketing and sales on my own. This in turn created a lot of knowledge that I find very usefull as I work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly I made a project to collect errors that occur in JavaScript functions on websites to help developers see errors that occur when their users use the site. This was born out of the need of having such a system, as I was creating JavaScript heavy sites myself for the booking system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general Learning and Utility are the ones that follow in nearly all the projects I have on the side. However the one that gives the most value back to me is the Shuffle project, as it is being used quite a lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want a side project that helps you continue commiting to it, I'd recommend getting a  project that you write for others. Something someone else wants to use, as well as you.&lt;/p&gt;&#xA;" OwnerUserId="10416" LastActivityDate="2010-12-19T14:16:50.833" />
  <row Id="28008" PostTypeId="2" ParentId="27985" CreationDate="2010-12-19T14:27:09.750" Score="1" ViewCount="" Body="&lt;p&gt;Basically, in the sense of assembly programming, you need to know the underlying architecture first, then the correspondent language, for example, with the PIC micro-controllers, you can use the compiler which the provided and the language. I use &lt;a href=&quot;http://www.mikroe.com/eng/home/index/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;this&lt;/strong&gt;&lt;/a&gt; site for referencing to PIC micro-controller tutorials.&lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2010-12-19T14:27:09.750" />
  <row Id="28009" PostTypeId="2" ParentId="27983" CreationDate="2010-12-19T14:38:53.427" Score="2" ViewCount="" Body="&lt;p&gt;Pick up your resume, and start looking for a different job. PHP is a powerful language, however its syntax is shitty and non consistent. At the same time start home project in the language you do want to work in, and if you can join an open source project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;good luck. &lt;/p&gt;&#xA;" OwnerUserId="5260" LastActivityDate="2010-12-19T14:38:53.427" />
  <row Id="28010" PostTypeId="2" ParentId="27962" CreationDate="2010-12-19T14:52:18.557" Score="1" ViewCount="" Body="&lt;p&gt;There is a monthly &lt;a href=&quot;http://news.ycombinator.com/item?id=1957538&quot; rel=&quot;nofollow&quot;&gt;Who's Hiring thread&lt;/a&gt; over on &lt;a href=&quot;http://news.ycombinator.com/news&quot; rel=&quot;nofollow&quot;&gt;Hacker News&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hacker News is a very startup focused forum.&lt;/p&gt;&#xA;" OwnerUserId="2825" LastActivityDate="2010-12-19T14:52:18.557" CommentCount="1" />
  <row Id="28011" PostTypeId="2" ParentId="27962" CreationDate="2010-12-19T14:53:45.890" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://authenticjobs.com&quot; rel=&quot;nofollow&quot;&gt;authenticjobs.com&lt;/a&gt; is a targeted job board exactly for the reasons you listed. They are mostly web jobs, but I see many good startup jobs on there. They are usually good at being more than the average dry job listing, too. It's a aite that is definitely worth a look.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-19T14:53:45.890" CommentCount="1" />
  <row Id="28012" PostTypeId="2" ParentId="27909" CreationDate="2010-12-19T14:54:59.570" Score="0" ViewCount="" Body="&lt;p&gt;I don't choose my side projects. My side projects choose me.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-19T14:54:59.570" />
  <row Id="28013" PostTypeId="2" ParentId="28005" CreationDate="2010-12-19T14:56:05.577" Score="3" ViewCount="" Body="&lt;p&gt;Just because you have couple of years of experience developing software in C, it does not mean that a company where primary development is in C# or Java will hire you. Of course, these languages do share some common data types and programming constructs but from a software design perspective C is more into procedural programming while C#/Java are OOP poster boys. So you need to do more if you fancy moving into jobs where C# or Java is more common. How do I define &lt;strong&gt;more&lt;/strong&gt;? Well, doing freelance work in C# or Java, open source coding -- basically having a portfolio of work to choose from.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To sum it up, ABAP or C should not matter. Either way you need to demonstrate to the employer &lt;strong&gt;what extra you have done to be considered for being hired in that fancy C#/Java position either way&lt;/strong&gt;. &lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-19T14:56:05.577" />
  <row Id="28014" PostTypeId="2" ParentId="27985" CreationDate="2010-12-19T15:00:45.553" Score="2" ViewCount="" Body="&lt;p&gt;Is this an academic exercise, or are you intending to use the assembly language you learn? This is pretty specialized stuff, these days. Compiler optimization has become so good, that even something like a high performance hard disk drive would typically have around 1% of its code base written in assembler. Going way down the food chain to 4bit or some 8bit processors you'll see much more assembly language being used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really want to have a go at assembly language, pick a processor that has a nice instruction set. I'm a former ARM employee so I'm probably biased, but I found that the ARM instruction set was particularly easy to learn - I was able to write an efficient FIR filter in asm on my third day at the company. ARM's semiconductor partners are shipping about a billion ARM cores per quarter these days, so it is pretty easy to find a company that is willing to use your ARM ASM expertise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are plenty of ARM eval boards available for around $50 to try your code out on - it looks like ARM Cortex M3 is going to be immensely popular. It uses ARM's Thumb2 instruction set, which is a little more obscure than plain ol' ARM32 code, but still pretty easy, and very powerful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This little board looks very cool, for 80 euros: &lt;a href=&quot;http://www.olimex.com/dev/stm32-103stk.html&quot; rel=&quot;nofollow&quot;&gt;http://www.olimex.com/dev/stm32-103stk.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9932" LastActivityDate="2010-12-19T15:00:45.553" CommentCount="1" />
  <row Id="28015" PostTypeId="2" ParentId="27998" CreationDate="2010-12-19T15:08:39.210" Score="2" ViewCount="" Body="&lt;p&gt;I use a pair process, in order to capture natural conversations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After giving your subjects a questionnaire for background, set them in front of a machine in a natural office environment and give them a task to perform. My work covers programming tools, so the subjects do pair programming, but the pair approach can work for other programs just as well. The advantage of using pairs is that they will ask each other questions and try to work out the instructions together.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using pairs is more natural than the common &quot;think out loud&quot; approach, where you tell subjects to say what they are thinking. The problem with that approach is that you won't as easily capture the metaphor that subjects use, which gives you insight into their thinking. E.g., for a compiler tool, &lt;em&gt;&quot;Oh, why is it showing that?&quot;, &quot;Hmm, I guess it's like when you are finding a match, but enter the wrong directory?&quot;&lt;/em&gt; The trick is that when subjects have to explain their confusion to each other they will have a good reason to make an honest effort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use Camtasia with microphones to capture what's on the screen and what they say. I then transcribe the session and annotate with particular actions that happened on-screen. [Camtasia is from TechSmith, the makers of Morae.] You may wish to use a camera to capture the subjects and see where they point their fingers. Going over the transcripts is much more helpful when you are trying to write up what the result might be. [Further: The writing up process itself is helpful to get you to ask the right questions, even if you aren't looking to publish your results.]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After they perform the task, ask them to describe their experience, what they think they would use the program for, what they liked, and what they would like to see improved. Getting this feedback isn't necessarily so that you take their literal suggestions to go implement them. Rather, look deeper to see what their expectations were, and if they were conceptualizing the program differently than you intended; again, to see what metaphors they used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, look at the performance of the task itself. Did they accomplish what they were supposed to? Based on what program you are testing, you may want to time how long specific tasks took them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start with a pilot test with what you believe to be a very basic task. You'd be surprised to find that even the simple tasks will take longer than you thought they might. Thus far, I've used what I've gained to change the syntax in my tool, and tweak some features here and there. But the biggest gains I've found is in how I write the tutorial and frame the tool.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-12-21T04:14:03.850" LastActivityDate="2010-12-21T04:14:03.850" />
  <row Id="28016" PostTypeId="2" ParentId="20092" CreationDate="2010-12-19T15:23:24.750" Score="1" ViewCount="" Body="&lt;p&gt;Here's an article that talks about this based on my actual experience - &lt;a href=&quot;http://opensource.com/life/10/12/corporate-change-contributing-open-source&quot; rel=&quot;nofollow&quot;&gt;http://opensource.com/life/10/12/corporate-change-contributing-open-source&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5162" LastActivityDate="2010-12-19T15:23:24.750" />
  <row Id="28017" PostTypeId="1" CreationDate="2010-12-19T15:33:32.670" Score="1" ViewCount="285" Body="&lt;p&gt;I am a programmer in a small business where the entire developer staff is me. What possible arguments would there be to get them to buy a mbp?&lt;/p&gt;&#xA;" OwnerUserId="9635" LastActivityDate="2010-12-19T18:47:55.200" Title="How do I convince my company to buy a Macbook Pro?" Tags="&lt;project-management&gt;" AnswerCount="6" CommentCount="6" />
  <row Id="28018" PostTypeId="1" CreationDate="2010-12-19T15:34:01.750" Score="5" ViewCount="99" Body="&lt;p&gt;We have a lot of unproductive discussions trying to agree on a large project's high level priorities. A PM wants more features and I want infrastructure work done so that the project doesn't fall apart. Money always wins, so in the end I tend to agree to something and then have to lie, cheat and steal to get what I want done. Nobody is happy. This negotiation strategy is not working - I'd rather have us get on the same page instead. How?&lt;/p&gt;&#xA;" OwnerUserId="5162" LastActivityDate="2010-12-20T03:04:55.467" Title="What are effective strategies for setting software project priorities?" Tags="&lt;project-management&gt;&lt;software-engineering&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="28019" PostTypeId="2" ParentId="28017" CreationDate="2010-12-19T15:41:02.573" Score="7" ViewCount="" Body="&lt;p&gt;As with any purchase you have to demonstrate that the benefits that the company gets from you working on a Mac Book Pro outweigh the costs of the purchase.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what are the benefits? Not to &lt;strong&gt;you&lt;/strong&gt; but to the company.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-12-19T15:41:02.573" CommentCount="4" />
  <row Id="28020" PostTypeId="2" ParentId="28005" CreationDate="2010-12-19T15:59:06.620" Score="3" ViewCount="" Body="&lt;p&gt;Going down the ABAP route can give you good pay and job security. It will also lock you into one platform. To be honest, ABAP is not considered the most exciting language to work with. But if this is what you are looking for, go ahead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C and ABAP have nothing in common &lt;a href=&quot;http://www.digibarn.com/collections/posters/tongues/tongues.jpg&quot; rel=&quot;nofollow&quot;&gt;afaik&lt;/a&gt;. ABAP is a &lt;em&gt;much&lt;/em&gt; higher level language (4GL), so I don't think coming from a pure C background will help you much. It's more like COBOL than anything else.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-12-19T15:59:06.620" />
  <row Id="28021" PostTypeId="2" ParentId="28018" CreationDate="2010-12-19T16:01:02.057" Score="1" ViewCount="" Body="&lt;p&gt;Given that money is ultimately the final arbiter in these things you need to demonstrate that doing &quot;more features&quot; will cost more in the long run than doing the &quot;infrastructure work&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So this would be increased development time needed to add those features already known about; increased support costs as bugs take longer to find, fix and test to ensure you've not added any new ones; and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By doing this you're putting concrete values and costs on the two activities which it's very hard to ignore.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-12-19T16:11:24.793" LastActivityDate="2010-12-19T16:11:24.793" />
  <row Id="28022" PostTypeId="2" ParentId="27985" CreationDate="2010-12-19T16:04:22.330" Score="1" ViewCount="" Body="&lt;p&gt;I always found the toughest part was hello world, which is usually just a trivial assem function called from a higherlevel languare like adding two numbers. Once you get past that hurdle it is simply a matter of adding instructions and psuedo-ops (like defining data) to your repertoire.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would second geekbrit, although I've never used ARM. A minimal architecture like that would be not only be easier, but might come closest to having a legitimate -as opposed to only a didactic purpose.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-12-19T16:04:22.330" />
  <row Id="28023" PostTypeId="2" ParentId="27935" CreationDate="2010-12-19T16:10:55.837" Score="0" ViewCount="" Body="&lt;p&gt;Find an open source project you find interesting, and contribute.  We love new contributors, and more experienced coders will be reviewing your patches and providing feedback. :)&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-19T16:10:55.837" />
  <row Id="28024" PostTypeId="2" ParentId="28017" CreationDate="2010-12-19T16:14:54.710" Score="0" ViewCount="" Body="&lt;p&gt;For .NET programming, it is recommended to use a windows based workstation laptop with Visual Studio. Nevertheless, a Mac will allow you to run Mono.&lt;/p&gt;&#xA;" OwnerUserId="10790" LastActivityDate="2010-12-19T16:14:54.710" CommentCount="1" />
  <row Id="28025" PostTypeId="2" ParentId="27947" CreationDate="2010-12-19T16:28:17.450" Score="0" ViewCount="" Body="&lt;p&gt;price = (expenses + hourlyrate *time it would take to finish*4) * 10 &#xA;for waking in  you up in the middle of the night when the company printer is out of ink and your reports don't print&lt;/p&gt;&#xA;" OwnerUserId="9635" LastActivityDate="2010-12-19T16:28:17.450" />
  <row Id="28026" PostTypeId="2" ParentId="28017" CreationDate="2010-12-19T16:29:56.887" Score="2" ViewCount="" Body="&lt;p&gt;You seem to feel at home with the Macbook Pro experience, and that's an important point for any developer. Tell your boss that you'll be more relaxed and therefore highly efficient with your favorite laptop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for .NET, you can run a Virtual Box and have Visual Studio installed in its Windows environment.&lt;/p&gt;&#xA;" OwnerUserId="8903" LastActivityDate="2010-12-19T16:29:56.887" CommentCount="1" />
  <row Id="28027" PostTypeId="2" ParentId="27935" CreationDate="2010-12-19T16:31:03.673" Score="1" ViewCount="" Body="&lt;p&gt;Know the feeling. I 'was' frustrated at the same thing. Console applications aren't very interesting what with all that string reversing, linked lists and bullsh1t &quot;traffic simulation programs&quot; (lol..), but at the same time there is no way I can argue with the other responses given.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway to answer your question, as others have suggested pick a topic your interested in. Seeing as I learned C/C++ I headed in the direction of learning GTK+ and SDL. GTK+ should give you a good start on GUI and SDL on 2D graphics (this could lead onto openGl later on). I also recommend you going over beej's guide to networking (its a free online ebook), this should give you a start on networking (I had a good buzz sending messages to a computer connected on my network :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe later with your SDL and sockets knowledge you could make a simple multi player computer game.&lt;/p&gt;&#xA;" OwnerUserId="10830" LastActivityDate="2010-12-19T16:31:03.673" />
  <row Id="28028" PostTypeId="1" AcceptedAnswerId="28150" CreationDate="2010-12-19T16:32:32.823" Score="8" ViewCount="495" Body="&lt;p&gt;&lt;em&gt;Note&lt;/em&gt;. Although there are many book related questions. I hope (and I think) that this is different from others&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have just finished reading &lt;a href=&quot;http://www.superfreakonomicsbook.com/&quot; rel=&quot;nofollow&quot;&gt;superfreakonomics&lt;/a&gt; and while it might be not be a part of any serious curricula for economics, as a layperson (about economics that is) I found it (and its &lt;a href=&quot;http://freakonomicsbook.com/&quot; rel=&quot;nofollow&quot;&gt;predecessor&lt;/a&gt;) very enlightening. What I like about the books is that they manage to stay true to its central theme and the same time engaging the readers. Are there any similar books about programming which while may not as technical as a typical textbook are engaging and at the same time able to impart a central message or theme (such as best programming practices)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One book per answer so that they can be upvoted.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-23T14:58:09.770" LastActivityDate="2010-12-23T20:55:02.930" Title="Freakogramming (or Freakonomics like book for programming)" Tags="&lt;books&gt;&lt;programming-practices&gt;" AnswerCount="8" CommentCount="10" FavoriteCount="12" />
  <row Id="28029" PostTypeId="2" ParentId="28018" CreationDate="2010-12-19T16:34:58.033" Score="2" ViewCount="" Body="&lt;p&gt;When a part of the code has become too brittle to maintain, and a new feature is going to be added that will be impacted by that code, simply factor in the cost of the maintenance and repair of that code as part of the new feature.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-19T16:34:58.033" CommentCount="3" />
  <row Id="28030" PostTypeId="2" ParentId="28018" CreationDate="2010-12-19T16:38:18.333" Score="1" ViewCount="" Body="&lt;p&gt;You should make use-cases (if you haven't done yet) and prioritize the use-cases. This allows to determine which use-cases (and therefore which features) are more important to make money as soon as possible. If you think that some use-cases are more important than others you should prove it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the marketing side always defines (or should define) features' priorities by discussing it with the development team: &quot;if use-cases 'a' requires three weeks to be implemented and use-case 'b' can be done in a week let's do 'b' although 'a' is more important&quot; or something similar, and here the development makes estimates for use-cases/features implementation.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-19T16:38:18.333" CommentCount="1" />
  <row Id="28031" PostTypeId="2" ParentId="28028" CreationDate="2010-12-19T16:39:08.623" Score="10" ViewCount="" Body="&lt;p&gt;Have a look at the &lt;a href=&quot;http://oreilly.com/store/series/headfirst.csp&quot; rel=&quot;nofollow&quot;&gt;&quot;Head-First&quot;&lt;/a&gt; series of programmer books.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Txfd5.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-19T16:39:08.623" CommentCount="4" />
  <row Id="28032" PostTypeId="2" ParentId="27911" CreationDate="2010-12-19T16:47:33.510" Score="1" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;&#xA;using namespace std;&#xA;int main(void){&#xA;   cout&amp;lt;&amp;lt;&quot;hello world :)&quot;&amp;lt;&amp;lt;endl;&#xA;   return 0;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="10830" LastActivityDate="2010-12-19T16:47:33.510" />
  <row Id="28033" PostTypeId="2" ParentId="27860" CreationDate="2010-12-19T16:49:55.180" Score="3" ViewCount="" Body="&lt;p&gt;This was a &lt;em&gt;huge&lt;/em&gt; issue for me at one point in my life.  I found myself living with my parents in a then-rural part of Illinois.  The phone lines were too old to support more than 24k dial-up; we had some pretty iffy satellite internet.  I'm a professional web developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a year, I would do my coding, and test on a LAMP stack on my laptop, then either stare at the never-ending upload, or drive across state lines to a cafe with good wifi.  In a way, I think I was more efficient than I am now, because I had to plan more.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-19T16:49:55.180" CommentCount="2" />
  <row Id="28034" PostTypeId="2" ParentId="28005" CreationDate="2010-12-19T16:53:03.807" Score="0" ViewCount="" Body="&lt;p&gt;It really depends upon what your priorities are. To me it looks like the kind of work matters to you more than compensation. From your past experience, identify which projects you enjoyed the most and try to isolate the factors that added to your joy. Your work is going to take up 1/3rd of your day for a long time to come. Choose what makes you happy. If it is money/security/stability, ABAP seems like a good choice though it will lock you in. If it is work that excites you, you seem to prefer C.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-12-19T16:53:03.807" />
  <row Id="28035" PostTypeId="1" AcceptedAnswerId="28037" CreationDate="2010-12-19T17:04:44.747" Score="20" ViewCount="474" Body="&lt;p&gt;I enjoy programming, but programming at work is just that, work. I would like to further develop my own personal interests in programming. Throughout the week I imagine myself completing a small project on the weekend or finishing up a programming related book. However, in reality I often fall short of my expectations. I often will get just one or two chapters of reading done and even less coding. In reality I will spend time surfing the net, watching television, or visiting friends and slacking off... because it is the weekend. But when Sunday evening rolls around I often reflect on my weekend and I am sorely disappointed with my use of time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is how do you maintain your productivity outside of work? I am sure some programmers could care less about programming on their free time. Although, I think the majority of programmers, especially on stackexchange, are passionate about programming.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Should I spend the weekend programming, or will I burn out and resent programming if I dedicate that much time to it? &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;How should I go about programming on my free time? Should I set a schedule? How much time should I dedicate to it? &lt;strong&gt;Most importantly how do I follow that schedule?&lt;/strong&gt; Its only human nature to procrastinate. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I know there is a lot of questions here. Feel free to answer the ones that relate to how you remained focused outside of work. I am passionate about programming but after 40 hours of programming it can be difficult to maintain that enthusiasm. &lt;/p&gt;&#xA;" OwnerUserId="1328" LastEditorUserId="1328" LastEditorDisplayName="" LastEditDate="2010-12-19T17:09:52.450" LastActivityDate="2011-02-26T16:54:34.800" Title="How do you maintain productivity outside of work? (Programming Schedule)" Tags="&lt;free-time&gt;&lt;schedule&gt;&lt;hobby&gt;&lt;professional-development&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="5" />
  <row Id="28036" PostTypeId="2" ParentId="28035" CreationDate="2010-12-19T17:10:13.613" Score="1" ViewCount="" Body="&lt;p&gt;Do you have a specific application that you would like to develop in your free time? By the sound of it, you just haven't found an interesting enough application or challenge to catch your interest yet and so you fall back to surfing the net.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suspect if you found a project that interested you enough, this topic would be a non-issue, you would just naturally work on it whenever you can.&lt;/p&gt;&#xA;" OwnerUserId="10180" LastActivityDate="2010-12-19T17:10:13.613" CommentCount="1" />
  <row Id="28037" PostTypeId="2" ParentId="28035" CreationDate="2010-12-19T17:31:38.047" Score="7" ViewCount="" Body="&lt;p&gt;Don't spend your entire weekend doing any one thing anyway, otherwise you'd simply loose interest. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming in your free time is definitely a very strong recommendation. Don't choose too many programming languages -- just 1 or max 2, and along with that choose a domain where that language is used and make sure the domain excites you as much as the language itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I don't look at it like this is a weekend and I'd spend time coding or studying. The trick is to do something (albeit small) daily. If open source is your thing, consider adding something new on an ongoing basis. If you like studying about programming, schedule some time on a regular basis where you could put your kindle (:P) or whatever to good use. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, after 10 years in the coding business I might sound a bit cynical but believe me when I tell you that life is an ongoing learning process. Age finally tells you that Newton was right when he was collecting those sea shells :). &lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-19T17:31:38.047" CommentCount="4" />
  <row Id="28039" PostTypeId="2" ParentId="28035" CreationDate="2010-12-19T17:36:47.277" Score="11" ViewCount="" Body="&lt;p&gt;Having a happy, healthy life is all about finding balance in the things you do.  Some weeks you'll find yourself coding all weekend and wonder where the weekend went.  Other weeks you'll find that you didn't even open up that book you'd plan on reading.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get too down when reality doesn't meet your expectations, life happens.  If you set small, simple, concrete goals then it will be much easier to keep your weekend programming needs moving forward.  But also set aside time for yourself... there's nothing wrong with being a couch potato every once in a while.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-19T17:36:47.277" CommentCount="1" />
  <row Id="28040" PostTypeId="2" ParentId="20476" CreationDate="2010-12-19T17:40:55.950" Score="2" ViewCount="" Body="&lt;p&gt;Well, I think the answer to this is more and more to just do Software as a Service. Desktop apps that the &quot;buyer&quot; runs locally have become really easy for people to pirate. With SAAS, there is no way to pirate it as you control the accounts, etc and they simply can't access it if they aren't in the system and current on their payments.&lt;/p&gt;&#xA;" OwnerUserId="10087" LastActivityDate="2010-12-19T17:40:55.950" CommentCount="1" />
  <row Id="28041" PostTypeId="2" ParentId="5384" CreationDate="2010-12-19T17:42:36.057" Score="0" ViewCount="" Body="&lt;p&gt;I just say &quot;I don't know anything about hardware&quot;, I just do web programming... (I do know somewhat about hardware and have built my own computers, but this usually shuts them up) or something I used to say a lot (which I believe is 100% true for Windows machines) is, the only way I know to really remove viruses and fix it completely is to backup the data, wipe the hard-drive and re-install your operating system. This usually scares them away pretty fast too&lt;/p&gt;&#xA;" OwnerUserId="10087" LastActivityDate="2010-12-19T17:42:36.057" CommunityOwnedDate="2010-12-19T17:42:36.057" CommentCount="1" />
  <row Id="28042" PostTypeId="1" CreationDate="2010-12-19T17:44:05.760" Score="4" ViewCount="215" Body="&lt;p&gt;Consider a web application with a custom search function that must display the results in a paged manner (twenty per page with up to hundreds of thousands of total results) and the ability to drill down to individual results that maintain next/previous links to navigate through the results. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Re-executing the search on each page request to get the appropriate results for that page of data can be too expensive (up to 15s per search).  Also, since the underlying data can change frequently (e.g. addition of new results), re-executing could cause the next/previous functionality to result in inconsistent behavior (e.g. the same results reappearing on a later page after having been viewed on an earlier page).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What options exist to ensure the search results can be viewed across multiple pages in a consistent manner, and what tradeoffs does each option have in terms of network, CPU, memory, and storage requirements?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: I thought caching the query search results was an obvious necessity.  The question is really asking about where to cache the result set and what tradeoffs might exist to each.  For example, storing the ids of the entities in the result set on the client, or storing the IDs of the entities themselves in the users session on the web server, or in a temporary table in the database.  I'm not looking specifically for a single solution as different scenarios may result in different approaches (and such a question would be more suited for stackoverflow.com rather than here), but more of a design comparison between the possible approaches.&lt;/p&gt;&#xA;" OwnerUserId="4273" LastEditorUserId="4273" LastEditorDisplayName="" LastEditDate="2010-12-20T16:43:54.697" LastActivityDate="2011-05-09T00:00:51.213" Title="What are solutions and tradeoffs to maintain search result consistency in a web application" Tags="&lt;design&gt;&lt;web-applications&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="2" />
  <row Id="28043" PostTypeId="2" ParentId="27862" CreationDate="2010-12-19T17:48:41.557" Score="1" ViewCount="" Body="&lt;p&gt;I get the &quot;we need to get our coders in one place to talk, teach, and share&quot; impulse, but the first step is &lt;em&gt;always&lt;/em&gt; to get to know that community and figure out what there is interest in having a conference &lt;em&gt;about&lt;/em&gt;.  A &quot;programmers' conference&quot; is too general, and thus not likely to get much interest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't feel there's enough going on in a single area of programming, you can try to get several related areas together.  For example, in 2007 when DrupalCon was less than 1/10th the size it is now, it was held in conjunction with an Open Source CMS Summit.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-19T17:48:41.557" />
  <row Id="28044" PostTypeId="2" ParentId="28028" CreationDate="2010-12-19T17:54:44.127" Score="8" ViewCount="" Body="&lt;p&gt;This one is really good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321344758&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Dont-Make-Me-Think-Usability/dp/0321344758&lt;/a&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/W5hgx.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-12-19T17:54:44.127" CommentCount="1" />
  <row Id="28045" PostTypeId="2" ParentId="28035" CreationDate="2010-12-19T17:57:21.783" Score="1" ViewCount="" Body="&lt;p&gt;Perhaps you need to adjust your expectations of yourself.  Weekends are &lt;strong&gt;supposed&lt;/strong&gt; to be fun and relaxing, so spending time with friends and the other activities you mention sound more appropriate to me than spending your whole weekend coding or reading computer books.  You have to give your brain time to recharge.  Now if a project strikes your passion and you want to spend time writing it on the weekend, go for it.  Or if a new technology interests you and you want to read a book on the subject outside of work hours, great!  But it sounds like you are trying to find better ways to force yourself to do something you don't really want to do, which is spend your weekends programming.  Give yourself permission to enjoy your weekends and leave work at the office.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-19T17:57:21.783" />
  <row Id="28046" PostTypeId="2" ParentId="28035" CreationDate="2010-12-19T18:06:59.073" Score="1" ViewCount="" Body="&lt;p&gt;Its tough, I had thought the same way but now I usually don't feel like programming outside of work, although I do read books from time to time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recommend trying to move your career in the direction of doing work on the things you like, such as if you are working on PHP (just as a random example) web apps but you really want to do Android mobile device development, maybe try to find freelance projects doing this or eventually find a job doing this (emphasize that you have plenty of programming experience and that it does translate over to this new field, when applying).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that, something I have done a little and have been wanting to do more (and will do when I have more money) is to hire one or two part-time offshore freelancers to work on projects with me (such as through Odesk). This way I can get some things going on projects that I don't have the time to work on myself and step in to do coding when I want. It takes some work to find a good offshore person to work with but it can be done, you just have to maintain a close relationship with them and do code review, etc, at least at first.&lt;/p&gt;&#xA;" OwnerUserId="10087" LastActivityDate="2010-12-19T18:06:59.073" />
  <row Id="28047" PostTypeId="1" AcceptedAnswerId="28052" CreationDate="2010-12-19T18:12:41.113" Score="6" ViewCount="190" Body="&lt;p&gt;I've been searching around for info on contract / freelance programming as far as steps to take in the initial communication with a client (someone who has contacted me regarding a project). I am wondering if anyone has links to good resources as far as what I should send them (should I send them a document outlining &quot;my process&quot;, etc?).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often the initial requirements that they send are vague and I want to immediately &quot;take charge&quot; of the process and starting asking them questions, talking about price, etc but I don't want to be too overbearing so I'm just curious if there is much out there written about this, my google searches aren't turning up much that is good about this sort of thing.&lt;/p&gt;&#xA;" OwnerUserId="10087" LastActivityDate="2010-12-20T03:46:58.880" Title="Contract / Freelance Programming, The initial communication process / sending documents to them (terms, etc)" Tags="&lt;freelance&gt;&lt;contract&gt;" AnswerCount="2" FavoriteCount="4" />
  <row Id="28048" PostTypeId="2" ParentId="27896" CreationDate="2010-12-19T18:21:12.650" Score="0" ViewCount="" Body="&lt;p&gt;Indeed why no certification for COBOL. When I first learned COBOL, thought and still think that it's file-based Database is good! It's kind of like less worries of complex database operations, just working with good old-fashion files, and stable too, which is probably why financial institutions sticks to it. And now, after about 30 years, that modern implementations of data storage  seems now to be shifting back to simplicity like JSON and XML. I'like and don't mind doing COBOL too, but like Robert said 'there's no programmers', I'm not sure any programmer can really get a COBOL job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mean, how many COBOL job postings do you see a day?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[http://www.cobug.com/][1] is one of the more complete COBOL resource site I know, but even now, there is only one job listed.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good Luck!&lt;/p&gt;&#xA;" OwnerUserId="10956" LastActivityDate="2010-12-19T18:21:12.650" />
  <row Id="28049" PostTypeId="2" ParentId="28017" CreationDate="2010-12-19T18:27:22.807" Score="2" ViewCount="" Body="&lt;p&gt;Convince your boss you need to support an iPhone application. &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-19T18:27:22.807" />
  <row Id="28050" PostTypeId="1" CreationDate="2010-12-19T18:32:28.297" Score="5" ViewCount="140" Body="&lt;p&gt;Is there any good book/tutorial/guide for programmers, which can help them to write good programming documentation/tutorials/guides?&lt;/p&gt;&#xA;" OwnerUserId="14947" LastActivityDate="2010-12-20T05:04:26.503" Title="API/Technical Writers Guide" Tags="&lt;style-guide&gt;&lt;writing&gt;&lt;api&gt;" AnswerCount="2" CommentCount="0" FavoriteCount="2" />
  <row Id="28051" PostTypeId="2" ParentId="28028" CreationDate="2010-12-19T18:39:03.237" Score="4" ViewCount="" Body="&lt;p&gt;I'm in the middle of reading &quot;&lt;a href=&quot;http://oreilly.com/catalog/9780596808327/&quot; rel=&quot;nofollow&quot;&gt;Making Software: What Really Works, and Why We Believe It&lt;/a&gt;&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/k3Xha.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm finding it very interesting so far... O'Reilly's description of it is:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Many claims are made about how certain&#xA;  tools, technologies, and practices&#xA;  improve software development. But&#xA;  which claims are verifiable, and which&#xA;  are merely wishful thinking? In this&#xA;  book, leading thinkers such as Steve&#xA;  McConnell, Barry Boehm, and Barbara&#xA;  Kitchenham offer essays that uncover&#xA;  the truth and unmask myths commonly&#xA;  held among the software development&#xA;  community. Their insights may surprise&#xA;  you.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-12-19T18:39:03.237" />
  <row Id="28052" PostTypeId="2" ParentId="28047" CreationDate="2010-12-19T18:39:58.163" Score="6" ViewCount="" Body="&lt;p&gt;Well done on having this on your radar&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) In my experience you need to approach clients with a clear idea about&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;a) You price&#xA;&#xA;b) Want you will and will not do&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;2) In addition you do need your own processes (it helps you stay sane)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that it's a question of negotiation and talking. If you are dealing with customers remotely then it's a bit harder. I have written documents that outline change control, scope, expenses etc, but it was hard not having a conversation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I don't think you should put a document in front of customer as a first step, but something short and succinct may be useful in case the client really has not clue. A simple check list for yourself might be good as well (help you understand risks and stops you being distracted during the discussions)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there is no clear requirements or scope (as you mention above) then I would attempt to make that an initiation phase (with a project initiation document at the end) that you can charge for. Depending on the project it may only be a days work, but does set the tone.&lt;/p&gt;&#xA;" OwnerUserId="10958" LastActivityDate="2010-12-19T18:39:58.163" CommentCount="2" />
  <row Id="28053" PostTypeId="2" ParentId="28017" CreationDate="2010-12-19T18:40:54.110" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Tell them what's not possible on Windows Machine (I am assuming you are using windows) and you can also run windows on macbook in case you need to run some Windows specific software.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Tell them how much it will save your time, if you will work on OS which don't have viruses, which means you will be more productive on macbook than on Windows machine.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="14947" LastEditorUserId="14947" LastEditorDisplayName="" LastEditDate="2010-12-19T18:47:55.200" LastActivityDate="2010-12-19T18:47:55.200" />
  <row Id="28054" PostTypeId="1" CreationDate="2010-12-19T18:42:52.623" Score="6" ViewCount="620" Body="&lt;p&gt;I'm interested in developing for the web and I'm curious what languages should I know besides html, css, javascript, php/python/ruby. I don't know much about c# or java to make a decision whether to learn them or not, are they used much in the field I'm interested in? &#xA;What other technologies should I look into ?&lt;/p&gt;&#xA;" OwnerUserId="10960" LastActivityDate="2011-02-15T22:23:40.623" Title="What languages should I know if I'm interested in building web applications ?" Tags="&lt;web-development&gt;" AnswerCount="10" CommentCount="2" FavoriteCount="2" />
  <row Id="28055" PostTypeId="2" ParentId="26562" CreationDate="2010-12-19T18:44:22.153" Score="2" ViewCount="" Body="&lt;p&gt;Try &lt;a href=&quot;http://fossil-scm.org/&quot; rel=&quot;nofollow&quot;&gt;Fossil&lt;/a&gt; for a one man team. It also has a wiki and version control built in which is nice -- well worth a look&lt;/p&gt;&#xA;" OwnerUserId="10958" LastActivityDate="2010-12-19T18:44:22.153" />
  <row Id="28056" PostTypeId="2" ParentId="27911" CreationDate="2010-12-19T18:45:10.140" Score="0" ViewCount="" Body="&lt;p&gt;Ah, beauty, I think is subjective. I came across this when I learned Ruby, known for being simple, concise and reflective. And loops is common concept to programmers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Someone &lt;a href=&quot;http://refactormycode.com/codes/2-ruby-simple-loop&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; asked how to make this shorter :-&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(1..10).each do |i|&#xA;  puts i&#xA;end&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And someone posted this :-&#xA;p *1..10&lt;/p&gt;&#xA;" OwnerUserId="10956" LastActivityDate="2010-12-19T18:45:10.140" />
  <row Id="28057" PostTypeId="2" ParentId="28017" CreationDate="2010-12-19T18:46:39.567" Score="0" ViewCount="" Body="&lt;p&gt;A business reason would be that it's more reliable (according to PC World's survey). You can also tell your boss that it'll make you more productive although that's more difficult to argue.&lt;/p&gt;&#xA;" OwnerUserId="10961" LastActivityDate="2010-12-19T18:46:39.567" />
  <row Id="28058" PostTypeId="2" ParentId="28054" CreationDate="2010-12-19T18:50:58.770" Score="4" ViewCount="" Body="&lt;p&gt;HTML and CSS are not programming languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Google App Engine supports Java. Microsoft IIS supports C#. If you're already familiar with html, css, js, php, python, and ruby, don't bother learning any more langauges, start programming!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to learn some SQL to interact with database.&lt;/p&gt;&#xA;" OwnerUserId="10961" LastActivityDate="2010-12-19T18:50:58.770" CommentCount="8" />
  <row Id="28059" PostTypeId="2" ParentId="27862" CreationDate="2010-12-19T18:54:16.617" Score="1" ViewCount="" Body="&lt;p&gt;Running even a small conference can be enjoyable and very worthwhile, but also complicated, a lot of work, and a big pain in the neck. For bigger ones, you should figure on putting the rest of your life on hold for months before and after, and maybe gambling everything you own. So you need to be sure you really love doing it!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My wife ran academic conferences in grad school, and I'm sure she'd never do it again. An acquaintance of mine runs the annual Hackers Conference, which only has a hundred-ish invited attendees, and at times he's had to dip into his retirement fund to cover tens of thousands of dollars of expenses and beg for donations to bail him out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many great conferences grow out of smaller meet-ups. I used to be on the board of directors for the North Texas Irish Festival, which grew out of a pub party in 1983, and had 62,000 attendees in 2010.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really want to go ahead with something like this, here's what I'd suggest:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Start a programmers' club that meets once or twice a month for a talk, perhaps in the evening at a local restaurant with a meeting room so people can enjoy dinner and a beer.&lt;/li&gt;&#xA;&lt;li&gt;After you've had dozens of people showing up regularly for a few months and you have a good idea what topics are most interesting, set up a four-hour conference on a Saturday afternoon for your club. Nothing fancy, just arrange a big room with lots of folding chairs, a projector and screen, and some folding tables for people to show off whatever they want to show off. You will quickly find out about arranging speakers, renting meeting halls and equipment, contracts and liability, financing out-of-pocket expenses before anybody pays their entrance fees, and the fact that helpful volunteers are few but many people have opinions.&lt;/li&gt;&#xA;&lt;li&gt;If that succeeds and you haven't run screaming into the night, contact Andrew Hutton. He organizes the annual Ottawa Linux Symposium, and can discuss how he runs that very large, sophisticated conference.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-19T18:54:16.617" />
  <row Id="28061" PostTypeId="2" ParentId="28035" CreationDate="2010-12-19T18:56:43.060" Score="1" ViewCount="" Body="&lt;p&gt;Another tip would be to study some &quot;new&quot; technology or concept that could benefit you and your colleagues at work. Read books and do some Proof-Of-Concept-programming with that technology. Just doing ASP.NET Web Forms development? Learn ASP.NET MVC and demonstrate it to your colleagues!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, most importantly, set a date and time and give a presentation at work on the subject. (Perhaps you can get your company to sponsor the lunch? Mine does.) I find that an excellent motivator to get some learning done in your free time.&lt;/p&gt;&#xA;" OwnerUserId="3629" LastActivityDate="2010-12-19T18:56:43.060" />
  <row Id="28062" PostTypeId="2" ParentId="8427" CreationDate="2010-12-19T18:59:06.487" Score="2" ViewCount="" Body="&lt;p&gt;I've been on ohloh for some time and to be honest I don't find it useful; and it does not seem to have much traction among the open source folks I know. I suspect it will die &lt;/p&gt;&#xA;" OwnerUserId="10958" LastActivityDate="2010-12-19T18:59:06.487" />
  <row Id="28063" PostTypeId="2" ParentId="27911" CreationDate="2010-12-19T19:08:38.107" Score="0" ViewCount="" Body="&lt;p&gt;I found this &lt;a href=&quot;http://shaurz.wordpress.com/2008/03/11/haskell-style-parser-combinators-in-scheme/&quot; rel=&quot;nofollow&quot;&gt;parser combinator&lt;/a&gt; written in Scheme to be very interesting. The code may look ugly at first, especially if you're not familiar with Scheme and macros. After I read it and expanded the macros by hand, I understood what was going on. It seems much more elegant to me than &lt;a href=&quot;http://hackage.haskell.org/package/parsec-3.0.1&quot; rel=&quot;nofollow&quot;&gt;the Haskell implementation&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-19T19:08:38.107" />
  <row Id="28064" PostTypeId="2" ParentId="27862" CreationDate="2010-12-19T19:12:44.550" Score="0" ViewCount="" Body="&lt;p&gt;I suggest contacting the Open Source Developers Conference (http://www.osdcon.org/) for some discussions.&lt;/p&gt;&#xA;" OwnerUserId="10958" LastActivityDate="2010-12-19T19:12:44.550" />
  <row Id="28065" PostTypeId="2" ParentId="28035" CreationDate="2010-12-19T19:16:54.343" Score="1" ViewCount="" Body="&lt;p&gt;If you have the freedom, you can try separating out your 'work' programming from your weekends. For example, if you are primarily .NET coder at work, look at other avenues such as Ruby on the weekends. I've found that that helps keep things separate without that little nagging feeling that you should be learning something 'for the job'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, take a look at the projects and OSS tools (if you use any) from the work week. Sometimes you can achieve both goals (learning and coding) by reading, reviewing, and participating in open source projects.  In my experience, reviewing how other projects work--especially if they're outside your comfort zone--is a fantastic way to learn while not having a predefined expectation to produce.&lt;/p&gt;&#xA;" OwnerUserId="10583" LastActivityDate="2010-12-19T19:16:54.343" CommentCount="1" />
  <row Id="28067" PostTypeId="1" CreationDate="2010-12-19T19:25:16.637" Score="3" ViewCount="143" Body="&lt;p&gt;Does anybody have information about programming processes?&#xA;I mean how programmers are thinking when they create code. It is widely known that we use mental models in programming, but what kind of mental models?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some theories for program comprehension (how to read code), but is there good research or any books of how to write code in general in a language-independent level?&#xA;Humphrey's book Discipline of Software Engineering is too general not suitable for describing programming. &lt;/p&gt;&#xA;" OwnerUserId="10965" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-23T14:57:51.407" LastActivityDate="2010-12-23T14:57:51.407" ClosedDate="2010-12-19T22:26:15.730" Title="How programs are written - about the philosophy for novices and experts?" Tags="&lt;philosophy&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="28068" PostTypeId="2" ParentId="27860" CreationDate="2010-12-19T19:26:42.753" Score="2" ViewCount="" Body="&lt;p&gt;There are lot of us that started programming before Internet. I even bet that there still are people around that, back in the days, did have spotty or no &lt;strong&gt;computer access&lt;/strong&gt; at all. I remember I used to code &lt;em&gt;in&lt;/em&gt; my notebook, paper notebook and a pencil (it was assembler, for the record). And believe me, it was not a bit less fun than it is today.&lt;/p&gt;&#xA;" OwnerUserId="7968" LastActivityDate="2010-12-19T19:26:42.753" CommentCount="1" />
  <row Id="28069" PostTypeId="2" ParentId="28054" CreationDate="2010-12-19T19:30:18.300" Score="1" ViewCount="" Body="&lt;p&gt;Except the ones you listed, Java, ASP, .NET (and hence C#) and SQL are common in the Web world. However, it seems to me that many of those who use PHP and C#/.NET/ASP are not enjoying it. Few are fanatic of these technologies if they are also proficient in something else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, you can't learn all of these properly in a reasonable amount of time. I'd recommend to test around, and stick with one web framework you like, and learn that properly first. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The one language of the above most likely to be useful in any case is SQL, so learn that first. As for choice of web framework, the obvious ones are Ruby on Rails, Django (Python), Pyramid (also Python). I don't know which exist on Java/.NET, sorry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Google App Engine is cool, and uses a sort of almost-Django by default, but Pyramid runs on it also. And you can run Java, but I don't know what restrictions there are there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, that's all the general recommendations I have. If you want me to get dogmatic I'd recommend you too use Python with Pyramid and SQLAlchemy for SQL access. But it's so much a matter of taste. :)&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-19T19:30:18.300" CommentCount="8" />
  <row Id="28070" PostTypeId="2" ParentId="28067" CreationDate="2010-12-19T19:36:49.543" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596527357&quot; rel=&quot;nofollow&quot;&gt;Head First Software Development&lt;/a&gt;. Though the examples are written in Java, it's language independent.&lt;/p&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2010-12-19T19:36:49.543" />
  <row Id="28071" PostTypeId="2" ParentId="28050" CreationDate="2010-12-19T19:48:54.983" Score="5" ViewCount="" Body="&lt;p&gt;My advice is to look at tutorials that you consider good and copy their style.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some things that generally improve documentation:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Be redundant. Repeating yourself with several examples goes against the grain of developers who like to never repeat themselves. But in documentation this is actually very important. It gives the reader more than one chance to get something.&lt;/li&gt;&#xA;&lt;li&gt;Examples. Examples. Examples.&lt;/li&gt;&#xA;&lt;li&gt;Try to put on the hat of a newbie reader every once in a while and see how it reads. You'll often find you're assuming a lot of stuff that the reader doesn't know.&lt;/li&gt;&#xA;&lt;li&gt;Good documentation is usually in an editable/wiki format, so that it can be gradually improved by readers.&lt;/li&gt;&#xA;&lt;li&gt;Humor is a good thing (e.g. &lt;a href=&quot;http://www6.uniovi.es/python/doc/essays/packages/&quot; rel=&quot;nofollow&quot;&gt;Python docs&lt;/a&gt;, especially early versions).&lt;/li&gt;&#xA;&lt;li&gt;Write for people, not machines. Programmers tend to be terse in their documentation: *(e.g. &quot;returns null upon failure&quot;). But being just a bit more verbose makes things easier to parse and more readable (e.g. &quot;The function returns NULL if if fails to open the input file&quot;).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="494" LastActivityDate="2010-12-19T19:48:54.983" />
  <row Id="28072" PostTypeId="1" CreationDate="2010-12-19T19:51:17.537" Score="1" ViewCount="135" Body="&lt;p&gt;Hello, &#xA; I am looking for websites which have list of 'real life' software bugs from software (OS software, application software, ... it can be any layer). It could be open-source or it can be code under any other model of development.  Basically I am interested in finding out sites which allow me to read code snippets which have bugs in it. Programming languages interested are C,C++,PERL. But if the s/w defects are language agnostic, and more to do with general concepts(or misuse of them rather), then it still would be helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. To check out 'bugzilla' or bug tracking links for each open-source project for this is one way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(BTW what is the url for bug tracking in Linux development(kernel related bugs, device driver related, networking layer related,...) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any pointers would be useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you,&#xA;-AD.  &lt;/p&gt;&#xA;" OwnerUserId="10969" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-12-22T02:11:16.207" LastActivityDate="2010-12-22T02:11:16.207" Title="What are sites tracking software bugs/defects?" Tags="&lt;bugs&gt;&lt;code&gt;" AnswerCount="3" />
  <row Id="28073" PostTypeId="2" ParentId="28067" CreationDate="2010-12-19T20:03:52.470" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735619670&quot; rel=&quot;nofollow&quot;&gt;Code Complete&lt;/a&gt;.  A classic for the construction of and thought processes involved in creating code.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-19T20:03:52.470" />
  <row Id="28074" PostTypeId="2" ParentId="28067" CreationDate="2010-12-19T20:08:48.583" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0932633420&quot; rel=&quot;nofollow&quot;&gt;The Psychology of Computer Programming&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2010-12-19T20:08:48.583" />
  <row Id="28075" PostTypeId="2" ParentId="28054" CreationDate="2010-12-19T20:13:41.137" Score="1" ViewCount="" Body="&lt;p&gt;Definitely check out &lt;a href=&quot;http://www.djangoproject.com/&quot; rel=&quot;nofollow&quot;&gt;Django&lt;/a&gt; if you already know Python, it's a great web app framework, really easy to get started with (there are &lt;a href=&quot;http://docs.djangoproject.com/en/1.2/intro/tutorial01/&quot; rel=&quot;nofollow&quot;&gt;tutorials on the Django website&lt;/a&gt;) and very flexible.&lt;/p&gt;&#xA;" OwnerUserId="5245" LastActivityDate="2010-12-19T20:13:41.137" CommentCount="2" />
  <row Id="28076" PostTypeId="2" ParentId="28072" CreationDate="2010-12-19T20:19:25.170" Score="1" ViewCount="" Body="&lt;p&gt;Launchpad is a good site for that: &lt;a href=&quot;https://bugs.launchpad.net/&quot; rel=&quot;nofollow&quot;&gt;https://bugs.launchpad.net/&lt;/a&gt;&#xA;It's used for Ubuntu as well as loads of OSS projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Linux Kernels bugtracking system is at &lt;a href=&quot;https://bugzilla.kernel.org/&quot; rel=&quot;nofollow&quot;&gt;https://bugzilla.kernel.org/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Github is a site to host projects too, it also has bug tracking: &lt;a href=&quot;https://github.com/&quot; rel=&quot;nofollow&quot;&gt;https://github.com/&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-19T20:19:25.170" />
  <row Id="28077" PostTypeId="2" ParentId="28067" CreationDate="2010-12-19T20:29:35.267" Score="0" ViewCount="" Body="&lt;p&gt;Research into mental models was more popular in the 80s and 90s than today. A good survey of this research is &lt;a href=&quot;http://www.sciencedirect.com/science/article/B7RNF-4S8VDB6-6/2/9a5ace2e35db9f489420a7c6867f3ac4&quot; rel=&quot;nofollow&quot;&gt;Von Mayrhauser and Vans, Program Understanding: Models and Experiments&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://www.ppig.org/&quot; rel=&quot;nofollow&quot;&gt;Psychology of Programming Interest Group&lt;/a&gt; (PPIG) has an annual workshop with research in this area.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suspect that the computer science education community probably does more research into mental models (from the point of view of teaching programming) than the software engineering research community.&lt;/p&gt;&#xA;" OwnerUserId="966" LastActivityDate="2010-12-19T20:29:35.267" />
  <row Id="28078" PostTypeId="1" AcceptedAnswerId="28087" CreationDate="2010-12-19T20:58:32.860" Score="13" ViewCount="1010" Body="&lt;p&gt;Recently I have read some articles/blogs/comments about the development and history of WPF and Silverlight. In some forums many developers and users criticize the performance of WPF applications (for example Visual Studio 2010). Actually the market share of Silverlight in comparison to Flash is not very high. At PDC 2010 Bob Muglia said something like &quot;our Silverlight strategy and focus going forward has shifted....&quot; and Microsoft wants to push HTML5 in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, Microsoft has announced HTML5 being a core part of the Windows 8 and Windows Phone 8 (&quot;Mango&quot;) platforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently I have started learning Silverlight and now I must ask myself, if I should continue investing time in learning these (in my opinions) very nice and powerful technologies!? Does they have a future? Does (Windows) desktop (client) applications have a future? Does so called &quot;Rich Internet Applications&quot; have a future? Or will HTML5 become the &quot;absolute truth&quot; in software development?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is your opinion and what do you think?&lt;/p&gt;&#xA;" OwnerUserId="10976" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2011-06-02T16:53:43.197" LastActivityDate="2011-06-02T16:57:30.810" Title="Does Silverlight have a future?" Tags="&lt;programming-languages&gt;&lt;.net&gt;&lt;wpf&gt;&lt;html5&gt;&lt;silverlight&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="1" />
  <row Id="28079" PostTypeId="2" ParentId="28054" CreationDate="2010-12-19T21:00:14.370" Score="6" ViewCount="" Body="&lt;p&gt;You will need to learn SQL at some point and it's probably better to learn it sooner rather than later. You'll need to know a thing or two about databases no matter what framework or language you work in so the effort spent on learning SQL won't be wasted. Most frameworks and languages try their best to abstract the database access layer but it varies from language to language and you won't see the unity unless you know SQL. Lately there's a push away from relational databases but it's still a good idea to learn the basics of SQL simply because many of the terms and concepts have analogs in non-relational settings as well.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastEditorUserId="7146" LastEditorDisplayName="" LastEditDate="2010-12-28T09:33:30.673" LastActivityDate="2010-12-28T09:33:30.673" CommentCount="3" />
  <row Id="28080" PostTypeId="2" ParentId="28078" CreationDate="2010-12-19T21:11:12.060" Score="5" ViewCount="" Body="&lt;p&gt;I think Silverlight is pretty much game over now (market share wise) since both Flash and Silverlight will be giving way to HTML5 in the next few years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;WPF on the other hand is likely to stick around (even though the performance concerns are valid) Windows Vista / Windows 7 are both heavily invested in WPF and it will likely be the desktop strategy for Microsoft for the next few years (at least), especially considering that VS &amp;amp; Expression are written using WPF.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, of course that's the Desktop strategy, and it's growing clear that most applications that people use day to day are going to migrate from the Desktop to the Web (if they haven't already) as HTML5 browser support becomes ubiquitous. WPF is still (arguably) the best choice for applications which require the Windows Desktop and .Net but these are likely to be niche versus web based apps which will be the mainstream.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than HTML5, mobile platforms (read: Android and iOS) are likely to be the growth areas for development for the next few years.&lt;/p&gt;&#xA;" OwnerUserId="3787" LastEditorUserId="3787" LastEditorDisplayName="" LastEditDate="2010-12-19T21:26:16.553" LastActivityDate="2010-12-19T21:26:16.553" CommentCount="5" />
  <row Id="28081" PostTypeId="2" ParentId="26562" CreationDate="2010-12-19T21:11:55.907" Score="0" ViewCount="" Body="&lt;p&gt;I use Omnifocus for my personal stuff. Issues are just tasks.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-12-19T21:11:55.907" />
  <row Id="28082" PostTypeId="2" ParentId="28028" CreationDate="2010-12-19T21:20:47.493" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735611319&quot; rel=&quot;nofollow&quot;&gt;&quot;&lt;strong&gt;Code: The Hidden Language of Computer Hardware and Software&lt;/strong&gt;&quot;&lt;/a&gt; by Charles Petzold is a great book about computers in general.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-19T21:20:47.493" />
  <row Id="28083" PostTypeId="1" CreationDate="2010-12-19T21:33:09.343" Score="0" ViewCount="41" Body="&lt;p&gt;I'm looking to move to Canada at the end of next year to work for 1-2 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My motivation is to work in a different culture in another part of the world where I can still do what I love (programming) and get to a mountain for snowboarding easily. Vancouver is top of my list at the moment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was wondering if there were any qualifications I would need or if any particular experience would help me achieve this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a bit of background I've been a website developer for 6 years, key skills being .NET, XHTML, CSS, JS and server management. I've moved up to senior developer and currently hold the role of head of digital for a design and build agency near Reading in the UK.&lt;/p&gt;&#xA;" OwnerUserId="10978" LastActivityDate="2010-12-19T21:33:09.343" ClosedDate="2010-12-19T21:44:48.863" Title="What do I need to work as a website developer in Canada?" Tags="&lt;new-job&gt;&lt;canada&gt;" />
  <row Id="28084" PostTypeId="2" ParentId="28078" CreationDate="2010-12-19T21:35:50.707" Score="3" ViewCount="" Body="&lt;p&gt;I'd say that HTML5 is valid for as long as you want to produce applications that are targeting as many possible customers as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should your application require internet access? Should it use the native cababilities of the computer? (files, monitoring, etc). Does it require sharing of information?&#xA;All of these questions and more to it guides wether or not you can or should produce your applications as a Rich Web App, or if it should be developed as a client-based application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is definitly a place for WPF applications in the future, especially in the near term. Silverlight seems to be the target for sandboxed development such as phones, but we'll see how that train goes. But at the start of any development you should look at the requirements of the application, what you want to achieve and select your technology accordingly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now however I'd like to point out that there is no reason not to learn Silverlight or WPF, even if it is not what will be the major player in 6 or 7 years. If there is one thing I can tell you for sure, then it is that technology changes. There will be a HTML6, there will be a next WPF, and you will have to learn more than one technology if you truly wish to understand the first one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just start to learn one of them, and you can always switch and take what you've learned with you to the next technology.&lt;/p&gt;&#xA;" OwnerUserId="10416" LastActivityDate="2010-12-19T21:35:50.707" />
  <row Id="28085" PostTypeId="2" ParentId="27911" CreationDate="2010-12-19T21:38:00.857" Score="0" ViewCount="" Body="&lt;p&gt;I was always impresed by the gauss type integration quadratures. Need a ridiculously accurate evaluation of a definite integral that is smooth, and&#xA;you can do it with massive overkill with little computational resource. &lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-12-19T21:38:00.857" />
  <row Id="28086" PostTypeId="2" ParentId="1483" CreationDate="2010-12-19T21:39:41.737" Score="1" ViewCount="" Body="&lt;p&gt;I'm Hungarian, working in my home country with a team consisting mostly of fellow Hungarians. We always write our code and comments in English, since that is the official language of the company anyways. In addition to that, some of our projects are open source, which really mandates that everything is in English.&lt;br&gt;&#xA;This has a funny side effect, by the way: sometimes my mind stays in &quot;English mode&quot; after work and I keep thinking in English on the way home.&lt;/p&gt;&#xA;" OwnerUserId="6514" LastActivityDate="2010-12-19T21:39:41.737" CommunityOwnedDate="2010-12-19T21:39:41.737" />
  <row Id="28087" PostTypeId="2" ParentId="28078" CreationDate="2010-12-19T21:41:41.670" Score="9" ViewCount="" Body="&lt;p&gt;Silverlight + Flash vs HTML5.  Oh boy.  There's been a TON of discussion around this one.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's focus on Silverlight (though many of the same arguments can be made for Flash).  Is it dead in Microsoft's eyes?  NO.  Just watch the recent Firestart event, specifically Scott Guthrie's keynote (Plenty of new features coming):&lt;br&gt;&#xA;&lt;a href=&quot;http://www.silverlight.net/news/events/firestarter/&quot; rel=&quot;nofollow&quot;&gt;http://www.silverlight.net/news/events/firestarter/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What it gives you:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The ability to write Internet apps (and desktop if you use Out-Of-Browser) in your favorite dotNET language, today.  &lt;/li&gt;&#xA;&lt;li&gt;Give your users highly interactive and rich interfaces across all major browsers and platforms in a consistent manner, today.  &lt;/li&gt;&#xA;&lt;li&gt;Access to advanced APIs on the client (this is a fairly weak argument as JavaScript always has new libraries being added and it is pretty awesome).  &lt;/li&gt;&#xA;&lt;li&gt;Windows 7 Phone programmability - Silverlight is one of the two primary &quot;native APIs&quot; to the WP7.  That's one device at least that you can build apps for natively.  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The downside:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mobile - There are a ton of mobile devices that Silverlight will NEVER be on.  Not gonna happen.  &lt;/li&gt;&#xA;&lt;li&gt;Microsoft - Let's face it.  Lots of people will refuse to use it just because it's Microsoft.  Some of your users will refuse to install the runtime because it's Microsoft.  It's dumb, yes, but it's a fact.  &lt;/li&gt;&#xA;&lt;li&gt;Oh there are others.  Do I really need to iterate all the down-sides?  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;HTML5 will answer many (if not all) of the downsides we can think of for Silverlight.  But what are the downsides to HTML5: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's not a finalized spec.  Yes, many browsers implement a lot of features of HTML5, but many browsers don't, or many do it in different ways.  And even if they do implement it today, there's no guarantee the spec won't change over the next few months/years.  &lt;/li&gt;&#xA;&lt;li&gt;It's not 100% ready today.  Again, there is lots of talk about what HTML5 will bring, someday.  But for a lot of stuff, it's just that.  Talk.  While some CORE stuff has been done (animation, graphics, etc), there are still a lot of pieces that are WAY up in the air and nowhere near being standardized on every implementation yet (hardware API access for devices like accelerometers for example).  You can start using some of these pieces today, but you will be locked into certain browsers, and again there is no guarantee you won't have to change your code as the spec approaches finalization.  &lt;/li&gt;&#xA;&lt;li&gt;Browser consistency - If you think HTML5 is going to be exactly the same across all browsers/devices then you are delusional.  Every browser will implement it slightly differently and you will need to have code to detect the browser and insert the appropriate &quot;interpreter&quot;.  It will be easier to detect the browser I'm sure, and I'm sure libraries will help (like JQuery does today), but it will still be an issue.  &lt;/li&gt;&#xA;&lt;li&gt;App Stores - The fact is that no one is going to buy your HTML5 app like they do with Apple apps today.  If you want user's to buy your app through an App Store then you are going to need to write to the device's native library.  Again, there's been a ton of debate around this issue, but the fact is that all modern mobile devices provide browser access and browser-based apps just don't have the appeal of a native app.  Apps built today using HTML/CSS just don't have the appeal that their native counterparts do.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The way I see it, Silverlight gives you the &quot;rich client&quot; ability today.  You don't get access to every device (especially mobile), but for certain classes of apps it's a great choice and will remain so.  HTML5 will be a serious contender very soon and I strongly encourage everyone to learn it.  You WILL need it.  &lt;/p&gt;&#xA;" OwnerUserId="6318" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2011-06-02T16:57:30.810" LastActivityDate="2011-06-02T16:57:30.810" CommentCount="4" />
  <row Id="28088" PostTypeId="2" ParentId="20476" CreationDate="2010-12-19T21:56:56.633" Score="1" ViewCount="" Body="&lt;p&gt;One thing most people forget is that lots of software is priced for countries with mature economies, like the US, Canada, Western Europe, etc. However, people in countries with far lower income (even more than ten times lower) still have to pay the same prices; with an average monthly income of $300 that $30 application doesn't seem as cheap as when you have $3000. Look at Eastern Europe, China, India, etc. for a good example of this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition to that, big companies have achieved de facto status with some software (Microsoft Windows, Office and Visual Studio, Adobe Photoshop and Dreamweaver - these are just some examples); people start using them when young (at home, school, college), thus they become familiar with them, yet they can't afford them. It's not so easy to say &quot;don't pirate it if you can't afford it&quot; when you don't know how to use other software.&lt;/p&gt;&#xA;" OwnerUserId="827" LastActivityDate="2010-12-19T21:56:56.633" CommentCount="1" />
  <row Id="28089" PostTypeId="2" ParentId="27911" CreationDate="2010-12-19T21:59:18.350" Score="1" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://en.wikipedia.org/wiki/Fork_bomb&quot; rel=&quot;nofollow&quot;&gt;shell fork bomb&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;:(){ :|: &amp;amp; };:&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-19T21:59:18.350" />
  <row Id="28090" PostTypeId="2" ParentId="26562" CreationDate="2010-12-19T21:59:30.537" Score="0" ViewCount="" Body="&lt;p&gt;The issue tracker/wiki in Google code is quite usable, and free: &lt;a href=&quot;http://code.google.com/hosting/createProject&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/hosting/createProject&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't need to store your source code with them to use it.&lt;/p&gt;&#xA;" OwnerUserId="5668" LastActivityDate="2010-12-19T21:59:30.537" />
  <row Id="28091" PostTypeId="2" ParentId="20476" CreationDate="2010-12-19T22:04:08.807" Score="0" ViewCount="" Body="&lt;p&gt;The conception that created goods should (have a moral right to be) be gratis and shared is a very nice idea-virus and has spread all over the world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software enables that conception really nicely.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-19T22:04:08.807" />
  <row Id="28092" PostTypeId="2" ParentId="28072" CreationDate="2010-12-19T22:08:47.163" Score="0" ViewCount="" Body="&lt;p&gt;While many open source projects do have bug tracking websites (Lennart's answer gives you links to some of them), I don't think you're going to find a site which &quot;allow[s] me to read code snippets which have bugs in it&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason for that is that bugs in short snippets of code are actually quite rare, and it's usually in the interaction between components where bugs are found. A bug in a short snippet of code is usually easy to spot in a code review or unit test, so they'll be picked up during the development phase and generally don't make it out into the wild.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The kinds of bugs you find in a public database are the ones that &lt;em&gt;didn't&lt;/em&gt; get spotted in a code review or unit test, and these are usually because they involve the interaction of many components, or (particularly in the case of the kernel bug list) the interaction between the software and particular hardware.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry I didn't answer your question, directly. But hopefully that explains while you might not find exactly what you're after...&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-19T22:08:47.163" CommentCount="2" />
  <row Id="28093" PostTypeId="2" ParentId="28054" CreationDate="2010-12-19T22:12:10.933" Score="2" ViewCount="" Body="&lt;p&gt;To get a quick start, you might want to look at frameworks like Ruby on Rails, Django or Grails. To use them, you need to learn Ruby, Python resp. Groovy.&#xA;Those languages are relatively easy to learn, so if you are new to web application programming, you might want to start with one of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;JavaScript, HTML, CSS are necessary in any case. You will probably need some SQL, too.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-19T22:12:10.933" CommentCount="1" />
  <row Id="28094" PostTypeId="1" AcceptedAnswerId="28096" CreationDate="2010-12-19T22:22:51.630" Score="6" ViewCount="572" Body="&lt;p&gt;I really couldn't understand what Jeff was trying to tell us by that term in the blog. I see a photo of a man who is scared too much but nothing belongs to that term as I read till now in blog. If I try to understand it purely, so it just means coding is something which is too hard or even a scary thing. But still can't understand rightly what he tried to mention for us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The things which appear in my mind is that Coding is something to be scared or or Coding is thing which makes people like a monster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What really does &quot;Coding Horror&quot; mean ? &lt;/p&gt;&#xA;" OwnerUserId="3664" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-12-23T17:43:38.823" LastActivityDate="2010-12-23T17:43:38.823" Title="What does &quot;Coding Horror&quot; mean?" Tags="&lt;blogs&gt;&lt;coding-horror&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="3" />
  <row Id="28095" PostTypeId="2" ParentId="28042" CreationDate="2010-12-19T22:27:41.353" Score="0" ViewCount="" Body="&lt;h3&gt;Make your searches immutable&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Most of the potential problems you cite can be rendered immaterial by simply &lt;em&gt;caching the results of a particular search&lt;/em&gt;.  In other words, do not re-run the search each time you display the next results page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a typical web application, a search function takes the form of a query result, where each page is delivered as it is needed, using some helper functions.  When you perform the search, you need to cache the results of the search somewhere, and deliver each page of the search as it is requested.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the Microsoft .NET world, this would be done using &lt;code&gt;Skip()&lt;/code&gt; and &lt;code&gt;Take()&lt;/code&gt; functions on a &lt;a href=&quot;http://msdn.microsoft.com/en-us/netframework/aa904594&quot; rel=&quot;nofollow&quot;&gt;Linq&lt;/a&gt; query.  The code might look something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var searchResults = from tableToSearch &#xA;                    where myConditions &#xA;                    select someFieldsToDisplay;&#xA;&#xA;var pageResults = searchResults.Skip((requestedPageNumber- 1) * resultsPerPage)&#xA;                               .Take(resultsPerPage)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So &lt;code&gt;searchResults&lt;/code&gt; becomes the record set containing the results of your search, and &lt;code&gt;pageResults&lt;/code&gt; contains the requested records from that search results for that particular page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In most applications, the freshness of the search results is a non-issue, provided you make it clear to the user that, if they want results that are newer than two or three minutes old, they can simply perform a brand new search.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-19T23:05:36.843" LastActivityDate="2010-12-19T23:05:36.843" CommentCount="4" />
  <row Id="28096" PostTypeId="2" ParentId="28094" CreationDate="2010-12-19T22:29:58.650" Score="22" ViewCount="" Body="&lt;p&gt;On Jeff's blog, &lt;a href=&quot;http://www.codinghorror.com/blog/2004/02/about-me.html&quot; rel=&quot;nofollow&quot;&gt;he explains what &quot;Coding Horror&quot; means&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;What is the meaning of 'Coding Horror'?&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;It's an image from the &lt;a href=&quot;http://www.stevemcconnell.com/&quot; rel=&quot;nofollow&quot;&gt;Steve McConnell&lt;/a&gt;&#xA;  book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735619670&quot; rel=&quot;nofollow&quot;&gt;Code Complete&lt;/a&gt; used to illustrate&#xA;  dangerous code samples.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Code Complete is my all-time favorite&#xA;  programming book, and this particular&#xA;  icon from the book left a lasting&#xA;  impression on me. I think every&#xA;  practicing software developer has&#xA;  stared down more than a few Coding&#xA;  Horrors of their own creation at one&#xA;  point or another. I asked, and Steve&#xA;  was kind enough to let me to use the&#xA;  image and the name for my blog.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I share Jeff's sentiment about the Code Complete book. I suggest that you read it if you really want to get a good feel for what a coding horror is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Jeff has &lt;a href=&quot;http://www.codinghorror.com/blog/2007/12/on-the-meaning-of-coding-horror.html&quot; rel=&quot;nofollow&quot;&gt;another blog post&lt;/a&gt; where he goes into much more detail about his usage of the &quot;Coding Horror&quot; term. It's worth reading too, but these paragraphs are especially revealing:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;One of the most striking and memorable&#xA;  things about Code Complete, even to&#xA;  this day, is that Coding Horror&#xA;  illustration in the sidebar. Every&#xA;  time I saw it on the page, I would&#xA;  chuckle. Not because of other people's&#xA;  code, mind you. Because of my own&#xA;  code. That was the revelation. You're&#xA;  an amateur developer until you realize&#xA;  that everything you write sucks.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;and&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I chose that title for my blog -- with&#xA;  explicit permission from Steve --&#xA;  because it's a clever in-joke about&#xA;  becoming a humble professional&#xA;  programmer. That's what I try to do&#xA;  here. I write to learn and explore&#xA;  topics that deal with computers and&#xA;  programming, and because I'm easily&#xA;  bored, the topics I find most&#xA;  interesting tend to apply to a wide&#xA;  audience of programmers. Maybe even&#xA;  people who don't know they're&#xA;  programmers yet. To steal a phrase&#xA;  from the talented Rich Skrenta, I blog&#xA;  to help others and also to learn. As&#xA;  it turns out both are aided by getting&#xA;  folks to actually read the stuff.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="4127" LastEditorUserId="4127" LastEditorDisplayName="" LastEditDate="2010-12-19T23:10:45.760" LastActivityDate="2010-12-19T23:10:45.760" CommentCount="1" />
  <row Id="28097" PostTypeId="2" ParentId="28035" CreationDate="2010-12-19T22:34:52.950" Score="2" ViewCount="" Body="&lt;p&gt;I find that my home programming is reasonably proportional to the amount of joy I feel going to work. When the office is a terrible drudge that makes me want to gouge my eyes out with a spork, then no programming gets done at home (and frequently I won't even turn on the computer/console to play games. When I'm in the mood/place of &quot;woo hoo! it is 6am! time to get up and rush to work!&quot; then I'm doing a lot of coding at home as well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://archives.igda.org/articles/erobinson_crunch.php&quot; rel=&quot;nofollow&quot; title=&quot;go out and play&quot;&gt;Spending too much time doing work, or work-like ventures is a path to burn out&lt;/a&gt;. Go with Walter's advice above. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I am learning a new language or framework for the office, I try to devote about 4 hours on the weekend for it. Usually it ends up being on Sunday morning-afternoon, because that's where the largest single block of time I haven't promised anyone else is located (it is also the time when some of the folks in my life are in church, so they aren't going to be calling me on the phone). &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-12-19T22:34:52.950" />
  <row Id="28098" PostTypeId="1" AcceptedAnswerId="28250" CreationDate="2010-12-19T22:36:45.790" Score="25" ViewCount="1092" Body="&lt;p&gt;Example here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/28054/what-languages-should-i-know-if-im-interested-in-building-web-applications/28058#28058&quot;&gt;What languages should I know if I'm interested in building web applications ?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, I understand that HTML and CSS are not Turing-complete.  Yes, I understand that they are declarative, not imperative languages.  But why are people always clubbed over the head with this pedantic (and arguably obvious) fact when they ask a question about these languages?&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-20T17:28:06.790" Title="Why does it matter that HTML and CSS are not programming languages?" Tags="&lt;terminology&gt;" AnswerCount="11" CommentCount="10" FavoriteCount="5" />
  <row Id="28099" PostTypeId="2" ParentId="28028" CreationDate="2010-12-19T22:40:31.450" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning&quot; rel=&quot;nofollow&quot;&gt;&quot;Pragmatic Thinking and Learning: Refactor Your Wetware&quot;&lt;/a&gt; is probably one of the most unconventional books about the nature of software development and the process of gaining software development expertise I've read (more comments &lt;a href=&quot;http://programmers.stackexchange.com/questions/10827/how-to-train-the-right-side-of-the-brain/10912#10912&quot;&gt;here&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/UE8fX.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-12-19T22:40:31.450" CommentCount="1" />
  <row Id="28100" PostTypeId="2" ParentId="28072" CreationDate="2010-12-19T22:40:55.943" Score="0" ViewCount="" Body="&lt;p&gt;Any open source project's version control system will have snippets of code with bugs in it. Just look for the commits that &lt;strong&gt;fix&lt;/strong&gt; bugs, and then examine the &quot;before&quot; version. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Open source projects also have bug tracking systems that show you the bugs that have been reported.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often, there will be links back and forth between the particular commit to version control system, and the bug report on a bug tracking system. The entry on the bug tracking system will be closed with a message saying &quot;Closed in commit #xxxxx&quot;, and the commit message will say &quot;closes bug #yyyyy&quot;. Many development teams use bug tracking software that automatically listens to the version control commits to find bug numbers, so it can keep track of what bugs were fixed and record the commit numbers in the bug tracking system. It makes the bookkeeping really foolproof!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can see a good example of this in the &lt;a href=&quot;http://redmine.ruby-lang.org/&quot; rel=&quot;nofollow&quot;&gt;Ruby interpreter's bug tracking system&lt;/a&gt;. &lt;a href=&quot;http://redmine.ruby-lang.org/issues/show/4117&quot; rel=&quot;nofollow&quot;&gt;Bug #4117&lt;/a&gt; in Ruby 1.9.x, concerning a typo in the code, was closed in &lt;a href=&quot;http://redmine.ruby-lang.org/repositories/revision/ruby-19?rev=30085&quot; rel=&quot;nofollow&quot;&gt;Commit #30085&lt;/a&gt;, which means that the broken code was:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  when &quot;--&quot;&#xA;    if opt = ARGV.shfit&#xA;      @CONF[:SCRIPT] = opt&#xA;      $0 = opt&#xA;    end&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The fixed version was&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  when &quot;--&quot;&#xA;    if opt = ARGV.shift&#xA;      @CONF[:SCRIPT] = opt&#xA;      $0 = opt&#xA;    end&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I know it's a very simple, uninteresting bug, but if you're looking for more complicated bugs (e.g. to show students), then you can use this kind of method for finding them.&lt;/p&gt;&#xA;" OwnerUserId="1961" LastActivityDate="2010-12-19T22:40:55.943" />
  <row Id="28101" PostTypeId="2" ParentId="28098" CreationDate="2010-12-19T22:47:42.210" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It doesn't matter.&lt;/strong&gt; And it's also a matter of definition. What is a programming language? Some mean that it has to be Turing-complete. Others have other definitions, that make HTML a programming language. (And in your example, they weren't even called programming languages, just languages, which they obviously are).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My recommendation: Try to ignore people who point out these kinds of pointless and in many senses even incorrect claims. It's just a variation of grammar nazi-ism. Calling HTML a programming language isn't incorrect in any meaningful sense. &lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-19T22:47:42.210" CommentCount="17" />
  <row Id="28102" PostTypeId="2" ParentId="28098" CreationDate="2010-12-19T22:49:09.873" Score="62" ViewCount="" Body="&lt;p&gt;Tell a Civil or Mechanical Engineer that you studied &quot;Software Engineering&quot; and they'll tell you that &quot;Software Engineering&quot; isn't &lt;strong&gt;real&lt;/strong&gt; engineering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tell an F-16 pilot that you fly Cessnas for fun and he'll tell you you're not a &lt;strong&gt;real&lt;/strong&gt; pilot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tell a doctor that you're a chiropractor and he'll tell you... well, let's not go there :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's mostly that people don't like the idea of their profession being infiltrated by pretenders or people who aren't really &quot;worthy&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, to be fair, it's quite clear that HTML and CSS are not &lt;em&gt;programming&lt;/em&gt; languages. They're no more programming languages that the .docx format is a programming language, and to claim that you're a programmer if all you know is HTML and CSS is certainly inaccurate. But I think some of the vehemence in the reply can be attributed to what I said above.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, in the question you linked, the questioner called HTML and CSS a &quot;language&quot;, not a &quot;programming language&quot;. HTML is a markup language and CSS is a language too (I don't know what &quot;kind&quot; of language you'd call CSS, though?), so I think it was a bit unfair to call him out for calling them &quot;languages&quot;...&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-19T22:49:09.873" CommentCount="12" />
  <row Id="28103" PostTypeId="2" ParentId="28098" CreationDate="2010-12-19T22:53:09.823" Score="6" ViewCount="" Body="&lt;p&gt;It doesn't really matter to me so much. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I presume that to those for whom it does, the distinction between HTML, CSS, XML, etc. and &lt;em&gt;Real Programming Languages™&lt;/em&gt; is kind of like the distinction between wood and paint as building materials. You can't &lt;em&gt;build&lt;/em&gt; things with paint like you can with wood, and likewise you can't &lt;em&gt;program&lt;/em&gt; with HTML like you can with an RPL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I grant you though, for some conversations, making such a distinction can be irrelevant, and therefore pedantic and annoying.&lt;/p&gt;&#xA;" OwnerUserId="4127" LastActivityDate="2010-12-19T22:53:09.823" />
  <row Id="28104" PostTypeId="2" ParentId="28098" CreationDate="2010-12-19T23:10:05.747" Score="-1" ViewCount="" Body="&lt;p&gt;HTML and CSS are not programming languages. Get Over it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However:&#xA;JavaScript is a programming language. The machine is the browser.&#xA;PHP is a programming language. The machine is a virtual one in the server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you are doing only using HTML and CSS, you are not doing any programming (although you might be doing some engineering).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you are using JavaScript, PHP, or another scripting language. You ARE doing programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for REAL programming languages. If you are operating on a machine (real one, or virtual). And are using YOUR OWN algorithms to tell the machine to do things. Then you are using a REAL programming language. &lt;/p&gt;&#xA;" OwnerUserId="10988" LastActivityDate="2010-12-19T23:10:05.747" CommentCount="18" />
  <row Id="28105" PostTypeId="2" ParentId="8427" CreationDate="2010-12-19T23:53:18.067" Score="0" ViewCount="" Body="&lt;p&gt;I use it, but it's not something I log into and mess with every often.  They've got some neat ideas, and I hope the site sticks around.  Maybe GitHub should look into buying it from it's current owners and incorporate that functionality.  Heck, GitHub should buy Freshmeat at the same time (I think FM and Ohloh are both owned by the same outfit anyway).&lt;/p&gt;&#xA;" OwnerUserId="7160" LastActivityDate="2010-12-19T23:53:18.067" />
  <row Id="28106" PostTypeId="2" ParentId="20407" CreationDate="2010-12-20T00:34:21.523" Score="2" ViewCount="" Body="&lt;p&gt;Probably not. Look at it from a different perspective:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;How many 5-digit SO users are looking/willing to accept another job for &quot;only&quot; 100K?&lt;/li&gt;&#xA;&lt;li&gt;What percentage of people looking to fill 100K jobs have ever heard of SO and if so would use it as a criteria for hiring?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Some day they may be able to make the connection between SO scores and their job &amp;amp; CV posting site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe another question would be, would you consider SO scores for hiring?&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-20T00:34:21.523" CommunityOwnedDate="2011-01-17T22:21:44.413" />
  <row Id="28107" PostTypeId="2" ParentId="24827" CreationDate="2010-12-20T00:38:03.547" Score="1" ViewCount="" Body="&lt;p&gt;I worked 100% remotely for a few months at a new company and I really enjoyed it except for a few down-sides:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(1) If you need information from someone and he isn't forthcoming, you can't just go to his desk and sit there until he answers you.  This is likely more of an issue when you are at a new company and are trying to figure out how they do things.  You need more help at the beginning to come up to speed quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(2) I find meetings to be easier when I can see the other person.  You get a surprising amount of info from body language and facial expressions that allows you to alter the conversation appropriately.  This is less of an issue if you already know the other people well.  However, it is much more important when you have a language gap with the other person and are trying to figure out if they actually understand what you are saying (and vice versa).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(3) You don't get &quot;water cooler&quot; knowledge transfer.  You don't get the quick two minute chat that keeps you up to speed with what other people are doing and with what they have learned that might be interesting and relevant to you.&lt;/p&gt;&#xA;" OwnerUserId="5342" LastActivityDate="2010-12-20T00:38:03.547" CommentCount="1" />
  <row Id="28108" PostTypeId="2" ParentId="22146" CreationDate="2010-12-20T00:40:40.083" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321552687&quot; rel=&quot;nofollow&quot;&gt;Documenting Software Architecture: Views and Beyond&lt;/a&gt; by Clements et al. from the Software Engineering Institute.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://ecx.images-amazon.com/images/I/512Fz-vNz5L._SL160_.jpg&quot; alt=&quot;Cover of Documenting Software Architecture&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="3966" LastActivityDate="2010-12-20T00:40:40.083" CommunityOwnedDate="2011-01-22T00:43:07.640" />
  <row Id="28109" PostTypeId="2" ParentId="22146" CreationDate="2010-12-20T00:43:21.360" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0984618104&quot; rel=&quot;nofollow&quot;&gt;Just Enough Software Architecture&lt;/a&gt; by George Fairbanks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://ecx.images-amazon.com/images/I/61%2BhzVm5IoL._SL160_.jpg&quot; alt=&quot;Cover of 'Just Enough Software Architecture'&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="3966" LastActivityDate="2010-12-20T00:43:21.360" CommunityOwnedDate="2011-01-22T00:43:07.640" />
  <row Id="28110" PostTypeId="1" CreationDate="2010-12-20T00:45:38.083" Score="5" ViewCount="321" Body="&lt;p&gt;I am aware of a company that owns the intellectual property of a decent software product and makes an excellent income from licensing per annum. However, the director (non technical) complains about the cost of maintaining the development team, as it eats significantly into the profit margins, and is considering outsourcing development of specific modules to other countries that charge at a lower rate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I don't think this will be a more cost effective solution in the long term. This can lead to communication breakdowns when there are problems, additionally the specifications will need to be water tight which can end up taking taking more time anyway. In my opinion, when working in teams communication is key - or is there an effective way of making this work?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are other peoples thoughts AND experiences on this matter?&lt;/p&gt;&#xA;" OwnerUserId="9518" LastActivityDate="2010-12-20T04:50:57.980" Title="Is good software expensive to develop?" Tags="&lt;outsourcing&gt;" AnswerCount="10" CommentCount="5" />
  <row Id="28111" PostTypeId="2" ParentId="28110" CreationDate="2010-12-20T00:53:11.620" Score="7" ViewCount="" Body="&lt;p&gt;My only experience of outsourcing to a company in another country will be my last. The company hired failed to complete their work on time or even remotely meet the specifications, and resulted in us having to redo the whole lot again in-house.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you can find a reliable company you can trust (i.e. you've seen/heard good things about them from other people) then maybe it's worthwhile.&lt;/p&gt;&#xA;" OwnerUserId="7756" LastActivityDate="2010-12-20T00:53:11.620" CommentCount="3" />
  <row Id="28112" PostTypeId="2" ParentId="28110" CreationDate="2010-12-20T00:54:08.340" Score="5" ViewCount="" Body="&lt;h2&gt;Yes - you get what you pay for.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;In my experience, unless your market and development needs are so dead simple they can easily be explained via email to any developer with a possible language barrier, and so dead simple that even a developer who isn't really invested in the company can still succeed at creating a quality product, then &lt;strong&gt;yes your product will suffer&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I worked at a company where we had a large local development team, and our product suffered simply because the management team poured more money and effort into sales.  Because so much effort was poured into sales, it appeared we were doing &quot;fine&quot; - but it meant to earn revenue we were bound to keep pouring money and resources into the sales process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We had a remote team but we integrated them fully into the company and they participated at the same level as our local teams. &lt;strong&gt;That's the only way it can work&lt;/strong&gt;. I was the local team leader for them and we flew out to work on site with them regularly.  We gave them company shirts and jackets just like the local teams.  After all things considered, it maybe saved us 20-30%.  If you put together a system that attempts to cut costs by more than that, your product will suffer accordingly.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-20T00:59:45.090" LastActivityDate="2010-12-20T00:59:45.090" />
  <row Id="28113" PostTypeId="1" AcceptedAnswerId="28135" CreationDate="2010-12-20T00:55:06.130" Score="5" ViewCount="186" Body="&lt;p&gt;I've just started working on a project and we're using domain-driven design (as defined by Eric Evans in &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321125215&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Domain-Driven Design: Tackling Complexity in the Heart of Software&lt;/em&gt;&lt;/a&gt;.  I believe that our project is certainly a candidate for this design pattern as Evans describes it in his book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm struggling with the idea of constantly refactoring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know refactoring is a necessity in any project and will happen inevitably as the software changes.  However, in my experience, refactoring occurs when the needs of the development team change, not as understanding of the domain changes (&quot;refactoring to greater insight&quot; as Evans calls it).  I'm most concerned with &lt;em&gt;breakthroughs&lt;/em&gt; in understanding of the domain model.  I understand making small changes, but what if a large change in the model is necessary?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's an effective way of convincing yourself (and others) you should refactor after you obtain a clearer domain model?  After all, refactoring to improve code organization or performance could be completely separate from how expressive in terms of the ubiquitous language code is. &lt;strong&gt;Sometimes it just seems like there's not enough time to refactor.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Luckily, SCRUM lends it self to refactoring.  The iterative nature of SCRUM makes it easy to build a small piece and change and it.  But over time that piece will get larger and what if you have a breakthrough after that piece is so large that it will be too difficult to change?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone worked on a project employing domain-driven design? If so, it would be great to get some insight on this one.  I'd especially like to hear some success stories, since DDD seems very difficult to get right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="7351" LastActivityDate="2011-03-06T04:53:58.190" Title="Refactoring in domain driven design" Tags="&lt;design-patterns&gt;&lt;architecture&gt;&lt;object-oriented&gt;&lt;scrum&gt;&lt;domain-driven-design&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="3" />
  <row Id="28114" PostTypeId="1" CreationDate="2010-12-20T01:03:37.913" Score="9" ViewCount="356" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I saw the angel in the marble and carved until I set him free. - Michaelangelo&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Has anyone ever had such a clear vision of what they wanted to program and it felt like it was mere keystrokes away? That the process wasn't so laborious or creative as it was being a conduit to its reality?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why is that?&lt;/p&gt;&#xA;" OwnerUserId="3119" LastActivityDate="2010-12-20T12:23:05.310" Title="Does programming ever feel like carving out an angel?" Tags="&lt;quotes&gt;" AnswerCount="12" CommentCount="4" FavoriteCount="0" />
  <row Id="28115" PostTypeId="2" ParentId="28110" CreationDate="2010-12-20T01:04:11.190" Score="8" ViewCount="" Body="&lt;p&gt;I'm sure that someone has an example of this working, but I haven't seen it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've worked in a Fortune 500 company for many years where they outsourced alot of development.  I don't have a single example in those years of an outsourced project costing less than if we had done it ourselves (in-house).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;While their programming rates were less than ours, we spent 3 times the amount of time managing the outsourced team than we do for in-house teams.  That's on top of the added time needed to have the requirements more detailed than our in-house team needs and the added time needed in QA because the code was never close to being correct.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-20T01:04:11.190" CommentCount="3" />
  <row Id="28116" PostTypeId="2" ParentId="24827" CreationDate="2010-12-20T01:05:47.473" Score="2" ViewCount="" Body="&lt;p&gt;First of all, I agree! Sometimes I work much better from home than from the office.  However, there are some days where I would much rather have my co-workers there to hash out a tough problem and it's easier to stroll over to their desk than try and grab them over IM or e-mail.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Have any of you found yourselves in a&#xA;  position where working remotely was&#xA;  the status quo, and not looked down&#xA;  upon?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes! I worked for one company where people mostly worked from home.  At the time, I thought the best way for me to interact and connect with people was to come into the office (for me, this is still the case).  The awesome thing about this though, is that &lt;strong&gt;neither working from home or coming in is frowned upon&lt;/strong&gt;.  The choice is yours, and you can pick and choose what days to come in.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Are there any major caveats to be&#xA;  concerned about?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;As I hinted on above, at a new job I feel more comfortable working in the office.  It lets met get to know other co-workers a little better.  Also, grabbing some co-workers and working something out on the whiteboard is alot easier in person.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Did you find yourself longing for more coworker interaction?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Sometimes.  It depends what I'm working on.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Where is a good place to do remote job hunting?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Not sure, but the company I mentioned above basically advertised their work-from-home policy.  I haven't seen many other companies do this, and I'm not sure the best way to go about feeling around for the work-from-home policy.&lt;/p&gt;&#xA;" OwnerUserId="7351" LastActivityDate="2010-12-20T01:05:47.473" />
  <row Id="28117" PostTypeId="2" ParentId="28098" CreationDate="2010-12-20T01:08:54.210" Score="2" ViewCount="" Body="&lt;p&gt;Not really. It's safe to say C is a programming language. Would you call someone a programmer if all they could do was print text on the screen in C?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Someone who was a great designer and understood html would be a better member to have on a team than a programmer who knew html.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-20T01:08:54.210" CommentCount="1" />
  <row Id="28118" PostTypeId="2" ParentId="24827" CreationDate="2010-12-20T01:13:54.063" Score="3" ViewCount="" Body="&lt;p&gt;I've worked at two companies so far as a 100% remote developer, and I've had mixed experiences. At the first company, all the developers were remote, with other IT and business  folks being at an office. In total, I've worked a little over 4 years completely remote. At the second company, I am the only full time remote worker. Here's what I've learned so far:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Developers&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;There are some people that will thrive working remotely, and some that will not. It doesn't take long to figure out people that fit into the latter category.&lt;/li&gt;&#xA;&lt;li&gt;Being focused and responsible is doubly important when working remotely. The internet is distracting enough at work, but when you're on your own, I've found it can sometimes take much more willpower to keep working, especially on &quot;less fun&quot; bits of work&lt;/li&gt;&#xA;&lt;li&gt;As it is with a normal office, having a quiet, distraction free place to work is a must. If there is a spouse and/or kids, there must be an agreement that in general, there shouldn't be interruptions for &quot;honey-dos&quot;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Tools&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Use Skype or any other &lt;em&gt;video&lt;/em&gt; chat service. IM and audio is nice, but I've found being able to see eachother goes a long way towards making up for the lack of physical presence.&lt;/li&gt;&#xA;&lt;li&gt;Proper project management is another thing that is doubly important when people are remote. Both companies I mentioned used some type of scrum/agile method to good effect, but the important thing is just that everyone know what they need to do and are able to do it effectively.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's also worth noting that said project management should be manageable via the web. Using a whiteboard with sticky notes for scrum is nice, but not terribly useful to remote developers.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;It might sound silly to mention, but having enough bandwidth is something that should not be overlooked. There should be plenty of bandwidth to support audio/video chat, VPN access to internal servers and databases, etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Company&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If there is a non-remote office where the majority of the team is, the corporate culture obviously plays a large role in how effective a remote worker can be.&lt;/li&gt;&#xA;&lt;li&gt;People should be available via IM throughout the work day.&lt;/li&gt;&#xA;&lt;li&gt;Make sure everyone has access to a decent screen sharing solution (I like GoToMeeting; Skype's screen sharing is dismal) for meetings where there are slides or other visual presentations&lt;/li&gt;&#xA;&lt;li&gt;Meet everyone in person at least once. I've found having a week long visit to HQ whenever someone new joins the team (remote or not) is extremely helpful for establishing a rapport.&lt;/li&gt;&#xA;&lt;li&gt;Be aware of differences in time zones - one of the companies I worked for had people working in places as far away as Portland, OR and London. When in a situation like that, it helps to ensure people establish &quot;normal&quot; working hours (the same ones every day). I'd recommend trying for at least 2-4 hours of overlapping work time between locations.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Where are these mythical &quot;remote&quot; jobs?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://careers.stackoverflow.com/&quot;&gt;careers.stackoverflow.com&lt;/a&gt; is a great place to start. There are filters for finding remote positions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Craigslist is definitely high noise, but there &lt;em&gt;are&lt;/em&gt; good positions advertised there. There is also a filter for telecommute positions. I wrote some javascript to create an OPML file of the feeds for all the major craigslist cities. Just copy the result into a text file and then you can use it to import into Google Reader or any other RSS aggregator that supports OPML.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&amp;gt;&#xA;&amp;lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; &amp;gt;&#xA;&amp;lt;head&amp;gt;&#xA;    &amp;lt;title&amp;gt;Untitled Page&amp;lt;/title&amp;gt;&#xA;    &amp;lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&#xA;&amp;lt;/head&amp;gt;&#xA;&amp;lt;body&amp;gt;&#xA;&amp;lt;input id=&quot;keyword&quot; /&amp;gt;&#xA;&amp;lt;button onclick=&quot;generate()&quot;&amp;gt;generate&amp;lt;/button&amp;gt;&#xA;&amp;lt;br /&amp;gt;&#xA;&amp;lt;textarea style=&quot;width: 1800px;height:1000px;&quot;&amp;gt;&amp;lt;/textarea&amp;gt;&#xA;&#xA;&amp;lt;script&amp;gt;&#xA;&#xA;    var cities = [&#xA;        'bellingham',&#xA;        'medford',&#xA;        'salem',&#xA;        'seattle',&#xA;        'kpr',&#xA;        'atlanta',&#xA;        'austin',&#xA;        'boston',&#xA;        'chicago',&#xA;        'dallas',&#xA;        'denver',&#xA;        'detroit',&#xA;        'houston',&#xA;        'lasvegas',&#xA;        'losangeles',&#xA;        'miami',&#xA;        'minneapolis',&#xA;        'newyork',&#xA;        'orangecounty',&#xA;        'philadelphia',&#xA;        'phoenix',&#xA;        'raleigh',&#xA;        'sacramento',&#xA;        'sandiego',&#xA;        'washingtondc',&#xA;        'sfbay'];&#xA;&#xA;    function generate() {&#xA;        var opml = '&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&amp;gt;\r\n';&#xA;        opml += '&amp;lt;opml version=&quot;1.1&quot;&amp;gt;\r\n';&#xA;        opml += '&amp;lt;body&amp;gt;\r\n';&#xA;        for (var i = 0; i &amp;lt; cities.length; i++) {&#xA;            var inetengUrl = 'http://' + cities[i] + '.craigslist.org/search/eng?query=' + $('#keyword').val() + '&amp;amp;amp;catAbbreviation=eng&amp;amp;amp;addOne=telecommuting&amp;amp;amp;format=rss';&#xA;            var softwareUrl = 'http://' + cities[i] + '.craigslist.org/search/eng?query=' + $('#keyword').val() + '&amp;amp;amp;catAbbreviation=sof&amp;amp;amp;addOne=telecommuting&amp;amp;amp;format=rss';&#xA;&#xA;            opml += '\t&amp;lt;outline text=&quot;Job Search: ' + cities[i] + ' Internet Engineer: ' + $('#keyword').val() + '&quot; count=&quot;20&quot; xmlUrl=&quot;' + inetengUrl + '&quot; /&amp;gt;\r\n';&#xA;            opml += '\t&amp;lt;outline text=&quot;Job Search: ' + cities[i] + ' Software: ' + $('#keyword').val() + '&quot; count=&quot;20&quot; xmlUrl=&quot;' + softwareUrl + '&quot; /&amp;gt;\r\n';&#xA;        }&#xA;&#xA;        opml += '&amp;lt;/body&amp;gt;\r\n'&#xA;        opml += '&amp;lt;/opml&amp;gt;\r\n';&#xA;&#xA;        $('textarea').val(opml);&#xA;    }&#xA;&amp;lt;/script&amp;gt;&#xA;&amp;lt;/body&amp;gt;&#xA;&amp;lt;/html&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1962" LastEditorUserId="1962" LastEditorDisplayName="" LastEditDate="2010-12-20T01:19:33.280" LastActivityDate="2010-12-20T01:19:33.280" CommentCount="1" />
  <row Id="28119" PostTypeId="2" ParentId="28110" CreationDate="2010-12-20T01:15:28.180" Score="10" ViewCount="" Body="&lt;p&gt;You can have quickly, you can have it cheaply, or you can have it done well. You can't have all three, and I would argue that even two out of three can be a stretch.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-20T01:15:28.180" />
  <row Id="28120" PostTypeId="2" ParentId="28110" CreationDate="2010-12-20T01:15:32.817" Score="1" ViewCount="" Body="&lt;p&gt;If you are working with a quality outsourcing team, and the management is willing to communicate and enforce acceptance criteria.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then the cost will be about the same rate as an in-house developed product.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may also get the same quality, too, if you're lucky.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I may be a little biased because my company keeps an in-house development staff, and has not outsourced any product development.  I suspect the experiences we've had with integration partners who have outsourced development had something to do with that decision.  &lt;/p&gt;&#xA;" OwnerUserId="2758" LastActivityDate="2010-12-20T01:15:32.817" />
  <row Id="28121" PostTypeId="2" ParentId="28114" CreationDate="2010-12-20T01:22:08.503" Score="2" ViewCount="" Body="&lt;p&gt;I've also heard the Michelangelo quote for David the he, &quot;Removed everything that didn't look like David.&quot; (Hope this is close enough.). To me the emphasis is having an idea or vision if you will of what you want and code until it is there. We'd all like to see ourselves as generators of ideas who can make them reality and not just some sort of conduit.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-20T01:22:08.503" />
  <row Id="28122" PostTypeId="2" ParentId="28110" CreationDate="2010-12-20T01:26:33.867" Score="1" ViewCount="" Body="&lt;p&gt;Well planned/done open source software could be your answer, because it can be highly profitable and the maintainance gets somewhat delegated to a community, but there is no recipe for success. The best advice I can give is recommending several talks about what really is open source and its shenanigans:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;How to Start an Open Source Project&quot; by Jeremy Ruston (BT) &lt;a href=&quot;http://vimeo.com/856110&quot; rel=&quot;nofollow&quot;&gt;http://vimeo.com/856110&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;&quot;Open Source is Magic&quot; by Chris DiBona (Google) &lt;a href=&quot;http://www.youtube.com/watch?v=hmZyyBVbkOQ&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=hmZyyBVbkOQ&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&quot;The Engines Of Community&quot; by Jono Bacon (Canonical) &lt;a href=&quot;http://www.youtube.com/watch?v=zKOrWubmzAY&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=zKOrWubmzAY&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&quot;Open Source Projects and Poisonous People&quot; Ben Collins-Sussman &amp;amp; Brian Fitzpatric (Google) &lt;a href=&quot;http://www.youtube.com/watch?v=ZSFDm3UYkeE&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=ZSFDm3UYkeE&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&quot;What's In It for Me? Benefits from Open Sourcing Code&quot;&lt;/strong&gt; Ben Collins-Sussman &amp;amp; Brian Fitzpatric (Google) &lt;a href=&quot;http://www.youtube.com/watch?v=ZtYJoatnHb8&amp;amp;feature=related&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=ZtYJoatnHb8&amp;amp;feature=related&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And perhaps also:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;How to Choose a Business Model&quot; by Roan Lavery (FreeAgent) &lt;a href=&quot;http://vimeo.com/5588154&quot; rel=&quot;nofollow&quot;&gt;http://vimeo.com/5588154&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The thing about open source, in my opinion, is to build something of value and interest not only to you but to all, the power of open source lies within communities. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if your boss/company is reluctant to open up the software, just isolate the specifics of your own business logic and know-how. So, what you would be doing:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Incubate an open source project with your resources&lt;/li&gt;&#xA;&lt;li&gt;Grow a community&lt;/li&gt;&#xA;&lt;li&gt;???&lt;/li&gt;&#xA;&lt;li&gt;Profit =)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Yeah, I'm serious, and &quot;???&quot; involves what ever strategies you want to pursue after you gather enough interest. With today's tools such as Github and twitter you can spread the word easier, but mind that your first impression should be interesting enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't actually want open source (&lt;strong&gt;which you must understand as a business model before implementing it, if you want to succeed&lt;/strong&gt;), you can always launch it as a service, for that check the Carsonified video, but that implies a whole lot of other things for your company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, being open source or launching it as a service are ways of making the project sustainable on the long run.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastEditorUserId="10869" LastEditorDisplayName="" LastEditDate="2010-12-20T01:44:49.530" LastActivityDate="2010-12-20T01:44:49.530" />
  <row Id="28123" PostTypeId="2" ParentId="28114" CreationDate="2010-12-20T01:29:20.877" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;No&lt;/strong&gt;, since good programming is as much (or more) about omission and simplicity than intricacy, and there is &lt;strong&gt;no end goal&lt;/strong&gt; - there's only perpetual balance between functionality and simplicity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, any type of creative process can be thought of as a &quot;conduit to reality&quot; when the creator is very in touch with their medium.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-20T01:29:20.877" CommentCount="3" />
  <row Id="28124" PostTypeId="2" ParentId="28114" CreationDate="2010-12-20T01:37:00.677" Score="0" ViewCount="" Body="&lt;p&gt;I think at least the initial phase can really feel like that, but the rest involves both curating and building upon.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-20T01:37:00.677" />
  <row Id="28125" PostTypeId="2" ParentId="28114" CreationDate="2010-12-20T01:37:18.730" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes.&lt;/strong&gt; Sometimes I have had a vision, and implemented it, and it was beautiful in it's simplicity. It's usually not anything big, but still. It feels good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why is it so unusual? Well, when it happens you usually have tried to solve the problem in various incorrect ways, but you then get the chance to do it The Right Way. But you have to fail several times first, so you know exactly how to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And in most cases the framework gets in the way for the vision in the end anyway. :-)&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-20T01:37:18.730" />
  <row Id="28126" PostTypeId="2" ParentId="28110" CreationDate="2010-12-20T01:39:16.367" Score="2" ViewCount="" Body="&lt;p&gt;In my experience, outsourcing a project aint the best solution when trying to get better margins. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At work we had something like that going on and well, as others also said, we ended up re-doing the hole thing and maintaining what was on a production server. Conclusion on the matter, it costed twice as much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My opinion on the matter is that if you are thinking about trying to make a difference about margins outsourcing developments, you might be throwing away your investment. If you think about it, the product success is a matter of things working as spected, so if you change dev-team , things could turn ugly.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-20T01:39:16.367" />
  <row Id="28127" PostTypeId="2" ParentId="28114" CreationDate="2010-12-20T01:46:56.157" Score="0" ViewCount="" Body="&lt;p&gt;Enlightment about a matter is an amazing thing, and feeling you could make it true is even better but i thing that it depends on how you live the process of creation.&#xA;  If you devote your life to making software and where totally and inexorably focus on that, i think you could be powerfully related to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Feelings are client-dependant, so it depends on each one.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-20T01:46:56.157" />
  <row Id="28128" PostTypeId="2" ParentId="28114" CreationDate="2010-12-20T01:47:38.217" Score="3" ViewCount="" Body="&lt;p&gt;I enjoy programming very much but I do not romanticize about it. Although, I can understand the excitement and satisfaction of programming I do not consider it a creative experience. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Michelangelo created great works of art that have lasted for hundreds of years. Your software will have a dramatically shorter life span. A great work is usually an expression of one artist. Software is often the product of several developers. If not initially but eventually someone at your company is going to inherit your legacy code. A great work of art can be completed, where as software is never complete. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you imagine someone adding a new chisel stroke to the &lt;a href=&quot;http://en.wikipedia.org/wiki/Angel_%28Michelangelo%29&quot; rel=&quot;nofollow&quot;&gt;Angel&lt;/a&gt;? It would be consider vandalism. &lt;/p&gt;&#xA;" OwnerUserId="1328" LastActivityDate="2010-12-20T01:47:38.217" CommentCount="1" />
  <row Id="28129" PostTypeId="1" AcceptedAnswerId="28138" CreationDate="2010-12-20T01:50:38.833" Score="5" ViewCount="381" Body="&lt;p&gt;I need to a piece of php code that goes beyond my abilities so I need to hire somebody to do it. It's not really something too long or complex so I wanted to know if there was a straightforward way to post my request and find somebody to do it for a certain amount. Does such a website exists or what's the best alternative? Anyway thanks a lot&lt;/p&gt;&#xA;" OwnerUserId="10992" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-20T02:40:05.613" LastActivityDate="2010-12-27T07:14:12.853" Title="Is there a good site to hire programmers for little projects?" Tags="&lt;hiring&gt;&lt;outsourcing&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="7" />
  <row Id="28130" PostTypeId="2" ParentId="27222" CreationDate="2010-12-20T01:51:56.747" Score="0" ViewCount="" Body="&lt;p&gt;I've just come up with one of some interest:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;awk '{pt=t; t=systime(); if ((t-pt)&amp;gt;10) {printf &quot;\x07&quot; &amp;gt; &quot;/dev/stderr&quot;}; print}'&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(replace 10 with amount of seconds wanted).&lt;br&gt;&#xA;This script is good in a pipe chain after a tail, it will beep the terminal if input is detected after more than 10 seconds after last input.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any scripting language (and in many cases the shell itself) can be used to implement this sort of simple function. Usually the best scripting language to do whatever is the one you are most conversant with - this obviously differs from programmer to programmer.&lt;/p&gt;&#xA;" OwnerUserId="9043" LastActivityDate="2010-12-20T01:51:56.747" />
  <row Id="28132" PostTypeId="2" ParentId="28018" CreationDate="2010-12-20T02:12:12.690" Score="0" ViewCount="" Body="&lt;p&gt;If you want them to think the way you think, things will never go your way. People need to feel their are listen and that they have some sort of power over the decision. So, make them feel that they have control and when that happens, ask gently and try to add infraestructure solutions to their feature requests, maybe that way their realize that it could be important to get the goal.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-20T02:12:12.690" CommentCount="2" />
  <row Id="28133" PostTypeId="2" ParentId="28129" CreationDate="2010-12-20T02:14:42.187" Score="2" ViewCount="" Body="&lt;p&gt;There's a number of such sites, however, with the experiences that myself and some friends have had as a programmer on these sites, I can't in good conscience recommend any of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My suggestion is to get better at what you do: ask questions on StackOverflow if you can't immediately figure it out.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-20T02:14:42.187" CommentCount="1" />
  <row Id="28134" PostTypeId="2" ParentId="28018" CreationDate="2010-12-20T02:19:34.727" Score="1" ViewCount="" Body="&lt;p&gt;Get the book &quot;Rework&quot; by Jason Fried: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0307463745&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Rework-Jason-Fried/dp/0307463745/ref=sr_1_1?ie=UTF8&amp;amp;qid=1292811304&amp;amp;sr=8-1&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Three main ideas here:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Launch ASAP, that will get your priorities straight&lt;/li&gt;&#xA;&lt;li&gt;Doing later means doing better&lt;/li&gt;&#xA;&lt;li&gt;Start at the epicenter (what defines your program, the example they give is that a hot dog stand wouldn't be a hot dog stand without hot dogs, even if it lacks ketchup, and all the dressings)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Really good book and lots of advice about how to get stuff done in a frugal way.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastEditorUserId="10869" LastEditorDisplayName="" LastEditDate="2010-12-20T03:04:55.467" LastActivityDate="2010-12-20T03:04:55.467" CommentCount="4" />
  <row Id="28135" PostTypeId="2" ParentId="28113" CreationDate="2010-12-20T02:22:41.057" Score="5" ViewCount="" Body="&lt;p&gt;I've been a big fan of DDD for a while (with and without the safety net of a test framework). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The whole concept and lifecycle of refactoring doesn't change because you're now using a new design methodology. If it will take significant time, it has to have proportional benefit to the project in order to get that time from management. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;With respect to doing it: in one instance, I partook in a 3 &lt;em&gt;month&lt;/em&gt; major refactoring because of a 'breakthrough' in the understanding of the domain model. It required tests to verify the current behaviour, tests to verify the expected behaviour and changes to calling code. The benefits were significant however, and allowed the business to do many more things that it needed to do before but just wasn't able to. In essence, the refactoring was essentially a 'feature'. &lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-20T02:22:41.057" CommentCount="2" />
  <row Id="28136" PostTypeId="2" ParentId="28110" CreationDate="2010-12-20T02:24:57.187" Score="5" ViewCount="" Body="&lt;p&gt;The director wants to replace some of his experienced local developers with people in a distant country whose expertise he's not competent to judge, who have no experience with the code at all, and who can't be directly supervised or mentored by anybody who does know the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been through that twice. In both cases, the inexpensive foreign firms failed to deliver on-time with adequate quality. When the local developers heard work was heading overseas, they found other jobs rather than wait to be made redundant. As the expertise hemorrhage continued, schedules slipped, critical bugs weren't fixed, customers got angry and switched to competitors, and eventually both companies folded.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There were also strange problems with communication, expectations, and culture. For instance, a foreign team wasn't checking in much code or responding to email promptly. It turned out the local IT manager got a bonus for keeping costs down, so he had the entire office on a low-speed Internet connection. Another time, third-world QA testers routinely put several wildly different bugs in the same bug report; their manager was afraid of running out of bug numbers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some teams in inexpensive places are fine. From what I hear, Red Hat seems to have a very competent team in Beijing. But they already had years of experience with people working from around the world via telecommute before they started doing that, and the folks in Beijing are Red Hat employees, not an outsourcing firm.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-20T02:24:57.187" />
  <row Id="28137" PostTypeId="2" ParentId="28018" CreationDate="2010-12-20T02:41:30.787" Score="1" ViewCount="" Body="&lt;p&gt;As duros says (I don't have enough reputation to comment yet), you should be thinking about your project in terms of things that the customer can see and evaluate.  This has several benefits not least of all their satisfaction that work is being completed so quickly.  The customer also tends to be far more involved in this approach.  For example, they will need to create the user stories.  A good format to use is this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;As a [role], I want [feature] so that I can do [a task].&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This format will give you a great deal of insight into how they want the system to work.  User stories provide a great way to stimulate discussion amongst your team about how best to implement the features.  The focus in the early stages of a project should be to get something demonstrable working so the developers will probably be able to come up with more efficient ways of implementing features than the users (who will, inevitably, want the world!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have the user stories, you typically will then assign stories points to them which act as a combined measure of difficulty and amount of time it will take to implement.  A really good system is to use the Fibonacci sequence because this prevents silly arguments between people about whether a story is a 34 or a 35.  The Fibonacci sequence is such that the larger the number, the greater the gap between it and the previous number.  So in that example, the story would either be a 34 or a 55.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have got your list of user stories, you then need to prioritise them.  Consider using the MoSCoW method.  That is, categorising your stories as either Musts, Shoulds, Coulds and Woulds.  Musts being stories that need doing soonest, shoulds next soonest and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By implementing features, you also give them a chance to provide feedback at an early stage.  If you were to spend a month writing the infrastructure and then the customer's requirements changed, you would probably have to scrap your month's work and start again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; once you have got your user stories, the developers will then take them and create tasks from them and these tasks will include the infrastructure work.  Take the following user story for example:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;As a reader of the blog, I would like to be able to register so that I can mark blogs posts as a favourite.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You could then create the following tasks:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Create a database table that maps user to blog post.&lt;/li&gt;&#xA;&lt;li&gt;Create a repository class that holds favourite posts.&lt;/li&gt;&#xA;&lt;li&gt;Create a screen which shows the user's favourite posts.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="10834" LastEditorUserId="10834" LastEditorDisplayName="" LastEditDate="2010-12-20T02:46:42.200" LastActivityDate="2010-12-20T02:46:42.200" />
  <row Id="28138" PostTypeId="2" ParentId="28129" CreationDate="2010-12-20T02:47:57.790" Score="5" ViewCount="" Body="&lt;p&gt;Check out the following sites:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.odesk.com/&quot; rel=&quot;nofollow&quot;&gt;oDesk&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.elance.com/&quot; rel=&quot;nofollow&quot;&gt;eLance&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.scriptlance.com/&quot; rel=&quot;nofollow&quot;&gt;scriptlance&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.vworker.com/&quot; rel=&quot;nofollow&quot;&gt;vWorker&lt;/a&gt; (originally rent a coder)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.rent-acoder.com/&quot; rel=&quot;nofollow&quot;&gt;Rent A Coder&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.codemonkeyforhire.com/&quot; rel=&quot;nofollow&quot;&gt;Code Monkey For Hire&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.freelancer.com/&quot; rel=&quot;nofollow&quot;&gt;FreeLancer&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I know someone that reasonable success with oDesk.&lt;/p&gt;&#xA;" OwnerUserId="1328" LastEditorUserId="1328" LastEditorDisplayName="" LastEditDate="2010-12-27T07:14:12.853" LastActivityDate="2010-12-27T07:14:12.853" CommunityOwnedDate="2010-12-20T02:53:11.047" />
  <row Id="28139" PostTypeId="1" AcceptedAnswerId="28140" CreationDate="2010-12-20T02:59:25.647" Score="20" ViewCount="1368" Body="&lt;p&gt;I'm currently in High School and trying to look into what I want to do after I graduate.  I know that I will be going to college, and that I want a degree in Computer Science, however, I'm not entirely sure where I want to go (I haven't started the application process yet).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I already have built up a decent amount of experience in programming (over the summers I have been hired to program at a local university), and I'm pretty capable of teaching myself most of the material I've come across through either books or web documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm interested in whether it is worth it to get a degree from a major, big-name computer science university for $50,000 each year, as opposed to going to a local state school for only $20,000.  For my Bachelor's degree alone, this would be $120,000 &lt;em&gt;more&lt;/em&gt; than the state school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also heard that where you get your Bachelor's doesn't matter much if you plan to get a Master's degree.  Many people recommend going somewhere like a state school for your Bachelor's, and then try to get into a more major school for your Master's.  Has anybody found any truth in this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, is going to a big name computer science school for a Bachelor's degree really worth the added expense?&lt;/p&gt;&#xA;" OwnerUserId="10994" LastActivityDate="2011-01-30T08:37:56.083" CommunityOwnedDate="2011-01-30T08:37:56.083" Title="Is a big name computer science degree worth the cost?" Tags="&lt;computer-science&gt;&lt;university&gt;&lt;degree&gt;" AnswerCount="15" CommentCount="9" FavoriteCount="5" />
  <row Id="28140" PostTypeId="2" ParentId="28139" CreationDate="2010-12-20T03:12:21.747" Score="30" ViewCount="" Body="&lt;p&gt;I'm sure that having a big name school behind your degree will probably open a few doors once you graduate but after that what will keep the doors opening up is the experience you build working and the aptitude you have for whatever domain you're working in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I graduated from a state school, had no problems getting a job out of school and no one really cared where my degree came from after that.  Now that nearly 20 years have passed since I left school, where I graduated from is really the last thing people are interested in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may also want to check this &lt;a href=&quot;http://programmers.stackexchange.com/questions/7495&quot;&gt;question&lt;/a&gt; which closely related to yours.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-20T17:56:23.140" LastActivityDate="2010-12-20T17:56:23.140" CommunityOwnedDate="2011-01-30T08:37:56.083" CommentCount="2" />
  <row Id="28141" PostTypeId="2" ParentId="28139" CreationDate="2010-12-20T03:16:57.013" Score="15" ViewCount="" Body="&lt;p&gt;If you want to work for Google or Microsoft, yes it's worth it.  Aside from that, students at say MIT have a lot more networking opportunities and have much less depressing job fairs than my university did.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-20T03:16:57.013" CommunityOwnedDate="2011-01-30T08:37:56.083" />
  <row Id="28142" PostTypeId="2" ParentId="28139" CreationDate="2010-12-20T03:17:56.017" Score="0" ViewCount="" Body="&lt;p&gt;I am not American so I don't know much about the university system over there. That said, there are two things you need to consider.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Comp Sci is a vast field and goes beyond programming. If you are interested in the field then get the degree otherwise may be sw engg. is the better option for you.&lt;/li&gt;&#xA;&lt;li&gt;if you are doing masters then you have to consider whether the big name univ is good enough education for spending the extra money, and whether the univ you do graduation from is going to affect your masters.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-20T03:17:56.017" CommunityOwnedDate="2011-01-30T08:37:56.083" />
  <row Id="28143" PostTypeId="2" ParentId="28114" CreationDate="2010-12-20T03:18:00.350" Score="3" ViewCount="" Body="&lt;p&gt;I'd just say, look at TeX.  I've never gazed at the beauty of the source, but in Don Knuth's mind one can tell he considers it a masterpiece.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is an art, and the reason you can tell it is an art is because like jazz or ballet or painting there are doodlers who don't have enough invested to make a good work and there are craftsman who devote themselves and get romantic about their work - which makes it good. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not worth it to compare the mediums or longevity, I don't think Michelangelo would have cared if his stuff was demolished after he finished it.  It's not like chefs care that their nice looking food is eaten, in fact if it's not eaten, they'd be sad. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider what an angel is, it is not a person with wings. An angel is an incorporeal spirit created by God.  You, being similarly created in the image and likeness of God have been given the ability to create something out of the stuff of angels, that is, a blank screen.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;OK, maybe it is dangerous to get romantic about programming. Anyway, good luck I like the way you think! &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-12-20T03:18:00.350" />
  <row Id="28144" PostTypeId="2" ParentId="28139" CreationDate="2010-12-20T03:30:20.767" Score="2" ViewCount="" Body="&lt;p&gt;I know that Microsoft tended to spend a lot more effort recruiting at certain big-name universities when I was there. I know that Google and a number of other high-profile companies have their favorites, as well. So that much is worth it, if you want to be doing higher-profile work straight out of the gate, or if you want to work for a startup that prizes having a certain degree of intellectual horsepower. Regardless of how misguided you may argue that presumptions about an individual's smarts based on their institution may be, there are certain starting advantages to being at a place whose reputation precedes your own. If nothing else, more companies will be trying to recruit and hire you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, more importantly, you may want to reconsider your math. Many private universities, including big-name ones, will expend far more effort on your behalf finding financial support that will make that total cost more bearable. When I applied to a state university, all of the scholarship programs they offered were my problem to investigate, discover, and separately apply for. The private university, which was also on the order of 3-4 times more expensive than the state school, immediately offered me one scholarship, and then located another when I expressed my concern that I wouldn't be able to afford the plan I was offered, a sympathetic faculty member hunted down one more. My tuition was almost, but not quite, free, and far less than the cost of the state school, by the time everything was done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So look beyond the apparent cost, and make sure that it really is as expensive as it looks before you discount it entirely. If you're an above average student, there's a lot of scholarship money available.&lt;/p&gt;&#xA;" OwnerUserId="7080" LastActivityDate="2010-12-20T03:30:20.767" CommunityOwnedDate="2011-01-30T08:37:56.083" CommentCount="1" />
  <row Id="28145" PostTypeId="2" ParentId="28114" CreationDate="2010-12-20T03:33:17.267" Score="1" ViewCount="" Body="&lt;p&gt;I actually think you're misunderstanding the quote. To me, it's saying that you might know that you're going to end up with an angel, but the exact form of the angel is discovered as you go along (this also meshes with the &quot;removed everything that didn't look like David&quot; quote).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's about not knowing from the outset exactly what will appear, adapting along the way, following the grain of the marble. What you end up with is beautiful in an organic way that's not possible when you sit down and plan everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In that respect, I think programming is quite similar. Emergent design by a skilled practitioner can lead to something beautiful. The flipside is there too: if you don't have the skill it will end up looking like you just randomly hit a stone with a hammer.&lt;/p&gt;&#xA;" OwnerUserId="5668" LastActivityDate="2010-12-20T03:33:17.267" />
  <row Id="28146" PostTypeId="2" ParentId="28139" CreationDate="2010-12-20T03:34:21.670" Score="5" ViewCount="" Body="&lt;p&gt;The thing that Joel Spolsky would tell you, because I read it in his book after I graduated from College - to my most ardent face-palm - was that the thing that employers are looking for is evidence that you were a member of some elite group.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm very confused as to what a 'big name' university is,  I went to University of Wisconsin - Madison and we're in the top ten of a lot of rankings, but it hasn't helped me to conjure up any big interviews or the clairvoyance to find the location of any hidden programming enlightenment &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, you can go to Ole MacDonald U for 5000 dollars a year and work your butt off to get a scholarship which you can prove lots of people didn't get and have the rest of your college paid for.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, you can go to Ms Pacman Community College for 4000 dollars a year work your butt off, get an internship with Dee Facto and Standard, which you can prove lots of people didn't get and you will be very well suited for GoogolSoft.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, you can go to Harvard.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you truly had the opportunity (i.e. you don't have any kids), do whatever is hardest and cruelest on your body and you will be most richly rewarded.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember your first year of college will have a big impact on your last year regardless of where you go. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2010-12-20T16:58:04.133" LastActivityDate="2010-12-20T16:58:04.133" CommunityOwnedDate="2011-01-30T08:37:56.083" CommentCount="5" />
  <row Id="28147" PostTypeId="2" ParentId="28098" CreationDate="2010-12-20T03:36:01.157" Score="1" ViewCount="" Body="&lt;p&gt;It might not be an &quot;important&quot; distinction, since arguably as much work goes in the html/css part of some websites as in the programming part.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it &lt;em&gt;is&lt;/em&gt; a significant distinction, since anybody that doesn't know what does it mean has no place in a team that does web development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a designer believes HTML is programming, let him stay designing with Adobe tools and do print-related designs; but don't believe a thing he might say about web apps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a developer thinks he's above designers because 'his' languages are Turing-complete, don't expect him to work well with designer, or that his code can be 'prettified' after it's done.&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-12-20T03:36:01.157" CommentCount="6" />
  <row Id="28148" PostTypeId="2" ParentId="28114" CreationDate="2010-12-20T03:36:14.130" Score="2" ViewCount="" Body="&lt;p&gt;An angel is almost perfection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My programs, functions never show the beauty of an angel but I strive for perfection. Little by little I get there but I never reach my goal. I always seems to be able to add more, take a little and improve from one version to another.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Perfection is attained by slow degrees; it requires the hand of time - Voltaire&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="10442" LastActivityDate="2010-12-20T03:36:14.130" />
  <row Id="28149" PostTypeId="2" ParentId="28139" CreationDate="2010-12-20T03:36:19.683" Score="1" ViewCount="" Body="&lt;p&gt;Although there are great programmers who have gone to less expensive schools or no school at all, but the odds are you will be surrounded by better developers at the big name programs. Just playing the numbers game. This is a benefit if you want to do a startup and find partners. Alumni are leading many of the companies doing the hiring. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A graduate degree is better for teaching and is not going to be a benefit if you want to be a programmer. Go for an MBA if you want to go into management. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-20T03:36:19.683" CommunityOwnedDate="2011-01-30T08:37:56.083" />
  <row Id="28150" PostTypeId="2" ParentId="28028" CreationDate="2010-12-20T03:44:46.563" Score="7" ViewCount="" Body="&lt;p&gt;Hate to plug the man on his site, but &lt;a href=&quot;http://search.barnesandnoble.com/books/product.aspx?r=1&amp;amp;isbn=9781430207535&amp;amp;cm_mmc=Google%20Product%20Search-_-Q000000630-_-Joel%20on%20Software-_-9781430207535&quot; rel=&quot;nofollow&quot;&gt;Joel on Software&lt;/a&gt; is the most Freakonomicy book about computer programming that I have yet to read.  It's pretty cohesive for being a collection of essays, a lot of it has more to do with managing programmers than programming, but it is still helpful for getting inside the programming from a different perspective like Freakonomics gets inside economics from a different perspective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, the first thing I ever read by Mr. Spolsky was him saying that a programmer should take macro and micro economics.  (unfortunately I didn't read this until I was 2 months away from my Bachelors)   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can pretty much get the whole thing from reading his website's archives, but then again you can pretty much make out parts of superfreakonomics by reading the their blog on the N.Y. Times.  &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-12-20T03:44:46.563" CommentCount="3" />
  <row Id="28151" PostTypeId="2" ParentId="28139" CreationDate="2010-12-20T03:46:28.413" Score="2" ViewCount="" Body="&lt;p&gt;Overall, I'd say that it probably doesn't matter too much, but things to consider: what the &quot;big name&quot; school is, what the &quot;local state&quot; school, and what kind of job you might be applying for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I live in Illinois, so for me a &quot;local state school&quot; could be UofI, or ISU.  Those 2 have a big academic difference in my mind.  I'm guessing it's the same in your state.  So if my son was deciding between Western Illinois, or Rose Hulman, I'd say it'd be worth the extra money for the better school (actually I'd advise he not go to Rose Hulman b/c I don't think he'd want to spend all 4 years of college surrounded by 95% guys but that's a different story).  However if the choice was between U of I and Carnegie Mellon, there might not be much difference in the education, but a big cost savings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can tell you that where I work, having a big name on the resume will help get you an interview, and will help set people's impression of you: but the interview, your social skills, and your portfolio of projects you've worked on (hopefully in your free time, not class work) will be more valuable in the long run.  It should be noted, that U of I would get grouped up with the &quot;smart schools&quot; when looking at resumes, so again while we might &quot;rank&quot; Rose Hulman above U of I, they are both in the top group of candidates, so the difference is probably not major.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do get a masters, that will probably carry more weight than you undergrad.  You can also do 2 years of community college, or 2 years of state university and then transfer to the expensive school if you feel like going that route.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most important thing for me when interviewing (aside from &quot;does this person seem like they have some social issues&quot; and &quot;does this person know what he's talking about&quot;) has to do with what that person has done outside of school.  Did they start/contribute to some open source project?  Did they start some website?  Did they try to write and sell a small application?  Most important part.  Seriously.  It sounds like you got that covered if you're in HS and your already writing stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Final personal note:  I went on scholarship to a private university that wasn't a big name.  It was a good school, well regarded, but I always felt it was beneath me, and felt almost like I had to explain to people why I went there (I paid almost nothing to go). A few years after graduating I went back to get a masters from a top academic school.  Looking back, I don't think getting the masters will really help me at any point (I was already working for myself and doing well) but I guess it made me feel a little better about myself and a little less... &quot;embarrassed&quot; is too strong of a word.... bothered?  disappointed? by my undergrad degree.  &lt;/p&gt;&#xA;" OwnerUserId="10995" LastActivityDate="2010-12-20T03:46:28.413" CommunityOwnedDate="2011-01-30T08:37:56.083" />
  <row Id="28152" PostTypeId="2" ParentId="28047" CreationDate="2010-12-20T03:46:58.880" Score="2" ViewCount="" Body="&lt;p&gt;Alec the Geek's answer is great, but I'd like to add a few things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of the documents he mentions apply to fixed-price projects, and I haven't used them since I switched to only working by the hour eight years ago. For instance, I don't use change order documents. If somebody wants a change, I just give them a ballpark estimate, and proceed if they agree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the prospect doesn't bring it up first, I insist on signing a non-disclosure agreement very early, usually after the first or second phone conversation. I also have a standard NDA if the prospect doesn't have one. Depending on what you do, that may not be important for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I have a process, I don't talk about it that way with prospects - I think it sounds pretentious. Also, sometimes clients have their own processes, and if they do, you need to fit in with those.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take version control, for example. I ask, &quot;What do you do for version control?&quot; Sometimes they say, &quot;We use X and we'll give you VPN access and a login,&quot; and then we're good to go. Or sometimes they ask, &quot;Version control? What's that&quot; and then I say, &quot;Okay, never mind, I'll send you code drops. How often do you want them?&quot; Then I use my own version control server, and they don't need to know anything more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In many ways, the most important thing is just promoting good communication. Try to be relaxed in talking with your prospect, ask lots of questions, and be genuinely concerned about helping them meet whatever need led them to contact you. Most people will value that personal touch much more than paperwork.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-20T03:46:58.880" />
  <row Id="28153" PostTypeId="1" AcceptedAnswerId="28160" CreationDate="2010-12-20T04:05:48.670" Score="3" ViewCount="430" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/1985/how-to-explain-programming-to-a-non-programmer&quot;&gt;How to explain programming to a non-programmer?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;This question is kind of like &quot;&lt;a href=&quot;http://programmers.stackexchange.com/questions/11523/explaining-technical-things-to-non-technical-people&quot;&gt;Explaining technical things to non-technical people&lt;/a&gt;,&quot; except a little more broad.  I already have trouble &lt;a href=&quot;http://programmers.stackexchange.com/questions/1985/how-to-explain-programming-to-a-non-programmer&quot;&gt;explaining programming to non-programmers&lt;/a&gt;, but even that is just a part of software engineering.  I also have trouble explaining the design of software and why it's difficult, challenging, and fun to non-techies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I especially want to know how y'all relate to friends and family (who aren't any type of engineer) when discussing your career (remember, not just programming).  I find it's hard to even explain simple things like what a software architect is, what I do every day, and why it's more than just staring at a computer for 12 hours a day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="7351" LastEditorUserId="7351" LastEditorDisplayName="" LastEditDate="2010-12-20T04:17:59.310" LastActivityDate="2010-12-20T10:38:18.860" ClosedDate="2010-12-20T12:12:06.907" Title="How do you explain your career to non-technical friends &amp; family?" Tags="&lt;career&gt;&lt;software-engineering&gt;&lt;non-programmers&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="2" />
  <row Id="28154" PostTypeId="1" AcceptedAnswerId="28158" CreationDate="2010-12-20T04:33:52.297" Score="5" ViewCount="296" Body="&lt;p&gt;This question is along the same lines as &lt;a href=&quot;http://programmers.stackexchange.com/questions/2654/what-parts-of-your-coding-standard-contribute-to-quality-code&quot;&gt;this one&lt;/a&gt;, but instead of talking about quality of code, I'm talking about the final product from the users' perspective. If you had limited time / budget, and could only guarantee one attribute of the software (other than the basic requirements) that take it from decent software to good quality software, what would you consider most important?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it having as few bugs as possible? An intuitive interface? Helpful error messages? Good technical support and documentation? If we don't want our software looking like cheap crap to our users, what should we always remember to include?&lt;/p&gt;&#xA;" OwnerUserId="7974" LastActivityDate="2010-12-20T10:05:18.230" Title="What's the most important feature of quality software?" Tags="&lt;product-features&gt;&lt;quality&gt;" AnswerCount="8" FavoriteCount="2" />
  <row Id="28155" PostTypeId="2" ParentId="28098" CreationDate="2010-12-20T04:37:09.273" Score="2" ViewCount="" Body="&lt;p&gt;You hit it on the head when you said &quot;declarative, not imperative&quot;.  Markup (be it HTML, CSS, or whatever) describes things.  The whole point of programming is to &lt;em&gt;do&lt;/em&gt; things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The skill set required to use markup is completely different than the skill set required to program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The types of problems solved by writing markup are completely different from the types of problems solved by programming.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-20T04:37:09.273" CommentCount="2" />
  <row Id="28156" PostTypeId="2" ParentId="28098" CreationDate="2010-12-20T04:38:10.843" Score="1" ViewCount="" Body="&lt;p&gt;Here's my two cents.  HTML and CSS are clearly not programming languages.  For that reason, when I see HTML or CSS on somebody's resume under &quot;Programming Languages&quot;, that simply tells me that this person does not know what he is talking about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that, no, it does not really matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, programmers generally tend to be pedantic.  That simply comes with the job.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-12-20T04:38:10.843" CommentCount="8" />
  <row Id="28157" PostTypeId="2" ParentId="28110" CreationDate="2010-12-20T04:38:21.813" Score="0" ViewCount="" Body="&lt;p&gt;Ask the dummies at Boeing who outsourced the 787, which is years behind, and 4X over budget. Good help is expensive. Cheap help is a recipe for bankruptcy. If your company is public, tell some friends to short it and your boss to go for it. They'll get rich and maybe invite you to join them on their yachts.&lt;/p&gt;&#xA;" OwnerUserId="9540" LastActivityDate="2010-12-20T04:38:21.813" />
  <row Id="28158" PostTypeId="2" ParentId="28154" CreationDate="2010-12-20T04:50:03.253" Score="11" ViewCount="" Body="&lt;p&gt;Intuitive and &lt;em&gt;attractive&lt;/em&gt; user interface.  It may seem clichéd, but there's some truth to the statement &quot;beautiful things work better.&quot;&lt;/p&gt;&#xA;" OwnerUserId="10998" LastActivityDate="2010-12-20T04:50:03.253" CommentCount="4" />
  <row Id="28159" PostTypeId="2" ParentId="28110" CreationDate="2010-12-20T04:50:57.980" Score="3" ViewCount="" Body="&lt;p&gt;For a software company, this is just plain stupid. The closest they could get to a reasonably intelligent decision would be to move the company to another location that has cheaper talent. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A software company outsourcing their software development isn't a software company anymore. I would argue that any gains earned will be short-lived, because you are creating your own competition. Once they realize that they know the product better than you, then they also realize that they don't need you anymore.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-20T04:50:57.980" />
  <row Id="28160" PostTypeId="2" ParentId="28153" CreationDate="2010-12-20T04:59:52.577" Score="13" ViewCount="" Body="&lt;p&gt;I don't. They won't understand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But then again, if you really think about it there is a good chance that you don't understand what they do either. Maybe you get what their job is, but not what they &lt;em&gt;do&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My wife is an administrative assistant (secretary, more or less). I get that she writes memos and takes notes at meetings and does financy, invoicy &lt;code&gt;stuff&lt;/code&gt; but what her day is like, what she actually &lt;em&gt;does&lt;/em&gt; at work... no idea... and I talk to her about it every day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Likewise, she understands that I write code, has seen me do it at home a fair bit, but when it comes down to it... the thought processes that go into all of that writing and the decisions that are made on a minute to minute basis are &lt;em&gt;generally&lt;/em&gt; beyond her ability (or caring) to understand in a short conversation with any degree of clarity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this is to be expected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a reason why it takes years of schooling and a lot of practice to do what we do, so that we can think in a certain way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, yes, I type all day.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-20T04:59:52.577" CommentCount="1" />
  <row Id="28161" PostTypeId="2" ParentId="28139" CreationDate="2010-12-20T05:01:42.407" Score="11" ViewCount="" Body="&lt;p&gt;Here is one big reason why going to big-name school is a good idea: connections.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you get into a big-name school, your professors are likely to be famous in their respective fields and have good connections.  They can help you get a good job after graduation, or they can help you get into a good grad school, should you choose to do that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your classmates' parents are likely to have good connections.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your classmates themselves are likely to get into high places eventually, meaning that you will have good connections.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong, if you go to a state university (and there are state universities that are very good), and if you work hard, you may very well be very successful. However, if you get into a big-name school, and you work hard, those connections will greatly increase your chances.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastEditorUserId="4365" LastEditorDisplayName="" LastEditDate="2010-12-20T17:10:20.770" LastActivityDate="2010-12-20T17:10:20.770" CommunityOwnedDate="2011-01-30T08:37:56.083" CommentCount="5" />
  <row Id="28162" PostTypeId="2" ParentId="28050" CreationDate="2010-12-20T05:04:26.503" Score="3" ViewCount="" Body="&lt;p&gt;I've been doing programming docs for about 25 years, from the Unix Programmer's Manual to Microsoft server apps. Technical documentation has a pyramid of priorities:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is it technically accurate?&#xA;This is job #1. Once you introduce something that is not correct, you lose the reader.&lt;/li&gt;&#xA;&lt;li&gt;Is it complete?&#xA;Have you documented all of the args, the return values?&#xA;Did you document all of the exceptions?&#xA;Any important gotchas? These typically go into a remarks/comments section.&#xA;For example, if a method also sets a public property to a value, tell the reader.&lt;/li&gt;&#xA;&lt;li&gt;Is it appropriate?&#xA;Is this information that the developer needs or are you just filling space?&#xA;Sometimes it is better to refer to a URL where they can learn about some technical&#xA;information than for you to attempt to paraphrase or restate it incorrectly.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;When possible, provide examples. In many cases, a developer will take a decent example and run with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Technical docs are written in the reverse order in which they typically appear. You usually write the reference section first, then a guide/cookbook section, then an introduction, and finally a tutorial if you have time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And don't forget a good editor. Much as a developer should not test and verify his own code, you should not edit your own docs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Almost all decent-sized companies have a document style guide. I even have an old AP Style Guide text from the university days. Read Strunk and White.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might even look into some community college courses. Like non-developers who do not code, non-writers have no idea how hard it is to write decent developer documentation. If you've ever stared at code you wrote 3 months ago and cannot figure out what the heck you were thinking, imagine trying to document code from someone who is no longer with the company. It's more challenging than writing the code in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be careful about humor. Depending upon your abilities, it can been misunderstood. I don't recommend it. As far as good documentation being found in a forum where anyone can change it, good luck with keeping the spammers out.&lt;/p&gt;&#xA;" OwnerUserId="9540" LastActivityDate="2010-12-20T05:04:26.503" CommentCount="1" />
  <row Id="28163" PostTypeId="2" ParentId="28153" CreationDate="2010-12-20T05:08:14.690" Score="0" ViewCount="" Body="&lt;p&gt;I make the stuff you use to do blah, or I make the stuff that makes the stuff you use work (server side).&lt;/p&gt;&#xA;" OwnerUserId="5682" LastActivityDate="2010-12-20T05:08:14.690" />
  <row Id="28164" PostTypeId="2" ParentId="28154" CreationDate="2010-12-20T05:12:27.417" Score="0" ViewCount="" Body="&lt;p&gt;IMO, providing a platform to evolve the program is the best feature a program can have. Firefox is a good example of this. They deliver a decent working product and as and when bugs are fixed, the software get updated automatically. This is very helpful for the enduser as he has the latest build always. This will also help in your case because when you get more budget and time, you can push new features easily. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the other best quality of a software product is how it handles exceptions and respond to exceptional scenarios. Most programs fails to handle this gracefully. They either get killed by unhandled excpetions or they produce meaningless error messages which confuses the user. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Creating bug free software is not a simple job. It will happen eventually as and when the program evolves. But it is programmers duty to make sure enough information is available to debug the issue. One good example of how to produce excellent error messages to user is &lt;a href=&quot;http://www.virtualbox.org/&quot; rel=&quot;nofollow&quot;&gt;VirtualBox&lt;/a&gt;. On any unexpected errors, it informs user what could have possible gone wrong with an option to contact the developers with the detailed log file for more help. &lt;/p&gt;&#xA;" OwnerUserId="3998" LastActivityDate="2010-12-20T05:12:27.417" />
  <row Id="28165" PostTypeId="2" ParentId="28153" CreationDate="2010-12-20T05:20:00.373" Score="1" ViewCount="" Body="&lt;p&gt;I start blabbing until I notice their eyes have glazed over. Then I quit.&lt;/p&gt;&#xA;" OwnerUserId="9540" LastActivityDate="2010-12-20T05:20:00.373" />
  <row Id="28166" PostTypeId="2" ParentId="27860" CreationDate="2010-12-20T05:20:06.193" Score="1" ViewCount="" Body="&lt;p&gt;I work with very limited internet whenever we go visit her folks.  As I don't speak the language of most of the discussion I bring my laptop along and I really miss having the internet always available.  These days I generally use Google in preference to the built-in documentation--I find the right answer faster that way, especially dealing with the more oddball things where the compiler documentation will get stuck focusing on the details rather than the bigger picture.&lt;/p&gt;&#xA;" OwnerUserId="5555" LastActivityDate="2010-12-20T05:20:06.193" />
  <row Id="28167" PostTypeId="2" ParentId="28098" CreationDate="2010-12-20T05:52:36.493" Score="2" ViewCount="" Body="&lt;p&gt;Programming language is a bit of an inexact term because it's a common term that is used by practitioners and the lay person as well.  Practitioners have a nuanced meaning of that term where lay person usually doesn't.  Normally their definition is if it has funny words/syntax that I don't immediately understand and programmers use it then that must be a programming language.  Not completely off the mark, but we can agree it's inexact.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Words like declarative, imperative, and turing complete are more precise terms with very specific meanings.  When you ask a question like why is HTML/CSS not a programming language you're asking for a more precise definition of what a programming language really is.  We aren't being pedantic, but trying to answer your question.  Are they the best terms to use when even if you google them it's hard to understand what they mean?  Depends.  Did you want the short or long answer. :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming languages are typically thought of being Turning-complete by programmers, but what does that mean?  It means the language can describe behavior or how to do things.  We formally call it logic.  HTML/CSS can describe there is a button located in the top right corner, or there is a table with 4 columns 5 rows, first two rows are yellow, and the bottom row has green text, and each cell in the table has 5 pixels of blank space around the content.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What HTML/CSS can't do is express the behavior or logic of what happens when you click the button.  It can't say when I click that button get the values out of that table and add them up, and write that value to a new row at the bottom of the table.  Describing behavior is roughly equivalent to Turning-complete without getting overly pedantic.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;More precisely Turing-complete means that you could implement the language in itself.  That would mean I could write a javascript program that takes a string of javascript and it could execute it (and not using the eval() function).  In fact, I can write a javascript program that could take a program written in any Turing complete language and evaluate it.  That's what it means to be Turing complete.  All languages that are Turning complete are equivalent in what programs can be expressed.  Pretty amazing revelation if you think about it.&lt;/p&gt;&#xA;" OwnerUserId="5592" LastActivityDate="2010-12-20T05:52:36.493" CommentCount="2" />
  <row Id="28168" PostTypeId="2" ParentId="27860" CreationDate="2010-12-20T05:55:50.750" Score="2" ViewCount="" Body="&lt;p&gt;For the repository: use a DVCS like git or mercurial; problem solved, commit how much you like, push when you have access.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the code manuals and APIs: get &lt;a href=&quot;http://www.mendeley.com/&quot; rel=&quot;nofollow&quot;&gt;Mendeley&lt;/a&gt;, download your manuals in PDF (or use something like &lt;a href=&quot;http://www.tenmax.com/teleport/pro/home.htm&quot; rel=&quot;nofollow&quot;&gt;Teleport pro&lt;/a&gt; and pack the files in a zip), update them regularly and keep them in sync; problem solved.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-20T05:55:50.750" />
  <row Id="28169" PostTypeId="2" ParentId="20476" CreationDate="2010-12-20T06:09:00.560" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Bootlegging doesn't deprive the vendor of a sale because I wouldn't have bought it anyway&quot; is a false argument in favor of bootlegging. When you choose not to buy X because you &quot;can't afford it,&quot; and instead buy Y (something you can afford), you have given X the value of Y.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, if you decide you can't afford Photoshop's price of, say, $500 and bootleg it, and instead buy an iPod for $100, you have effectively assigned Photoshop the value of $100 because you would have bought it had it been priced at $100. Therefore, by bootlegging Photoshop you have deprived Adobe of $100.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alternatively, you could have saved your money by not buying that iPod and a few other things so you could eventually purchase Photoshop. It's not true that you can't afford Photoshop; you just choose to &lt;em&gt;not&lt;/em&gt; afford it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the aggregate, this gives bootlegging software a real monetary value. When you and thousands of other people make conscious decisions to bootleg and use software that you supposedly can't afford and instead buy other discretionary things which you can afford, you &lt;em&gt;are&lt;/em&gt; depriving the vendor of sales, even if they aren't the full retail values.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastActivityDate="2010-12-20T06:09:00.560" />
  <row Id="28170" PostTypeId="2" ParentId="28154" CreationDate="2010-12-20T06:11:07.937" Score="3" ViewCount="" Body="&lt;h2&gt;Usability&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Any other essential feature is just an attribute of or contributes to usability (bug-free, functionality, attractiveness, etc.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is the #1 most important feature because it is what proves that your software has value. If it has value, it makes money.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-20T06:11:07.937" />
  <row Id="28171" PostTypeId="2" ParentId="28114" CreationDate="2010-12-20T06:26:54.357" Score="0" ViewCount="" Body="&lt;p&gt;&lt;H3&gt;Yes,&lt;/H3&gt; but it was only a feeling.  Then the hard work began.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-12-20T06:26:54.357" />
  <row Id="28172" PostTypeId="1" CreationDate="2010-12-20T06:28:18.723" Score="7" ViewCount="617" Body="&lt;p&gt;A lot of times &lt;a href=&quot;http://programmers.stackexchange.com/questions/28153/how-do-you-explain-your-career-to-non-technical-friends-family&quot;&gt;when I tell people what I do at work&lt;/a&gt;, I end as a joke, &quot;So yeah, I basically stare at a computer all day. What do you do?&quot;  Even though it isn't true, it's what they hear anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Others just tell people they &lt;a href=&quot;http://programmers.stackexchange.com/questions/28153/how-do-you-explain-your-career-to-non-technical-friends-family/28160#28160&quot;&gt;type all day&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of hearing what programmers &lt;em&gt;tell&lt;/em&gt; people they do, &lt;strong&gt;over a period of time where a programmer has been very productive, what does a typical day actually consist of?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(The reason I qualify &lt;em&gt;period of time&lt;/em&gt; is that I know some of the most productive days are all coding - but those days in and of themselves are not greatly important. Long term patterns are more interesting and helpful.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How much time is spent in meetings, at a whiteboard, researching, writing email, writing technical specs, or &lt;em&gt;actually programming&lt;/em&gt;? Or anything else (surfing Pr.SE - can that make you productive)?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Due to the new guidance from &lt;a href=&quot;http://blog.stackoverflow.com/2011/01/real-questions-have-answers/&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;&quot;Real Questions Have Answers&quot;&lt;/em&gt;&lt;/a&gt;, I realized what was wrong with this question before, and since I feel at it's core there is something valuable to be gained, I've rewritten it in the hopes that it can be &lt;strong&gt;&lt;em&gt;answered&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-01-22T16:26:11.283" LastActivityDate="2011-01-22T16:26:11.283" ClosedDate="2010-12-20T08:53:18.920" Title="What does a productive programmer day consist of?" Tags="&lt;productivity&gt;&lt;work&gt;&lt;time-management&gt;&lt;planning&gt;" AnswerCount="5" CommentCount="18" FavoriteCount="0" />
  <row Id="28173" PostTypeId="2" ParentId="28172" CreationDate="2010-12-20T06:33:32.603" Score="3" ViewCount="" Body="&lt;p&gt;I spend probably 1 hour a day in meetings. These would be unproductive, except I normally jot down design docs on some graph paper while the designers are arguing. I probably spend another hour a day writing specs and documentation. I probably spend another hour a day (which I count as my breaks) surfing the net, hitting up SO, or staring blankly at a wall. I spend another hour or two research (via &lt;em&gt;gasp&lt;/em&gt; google, SO, etc). In the end, I really only probably get somewhere between 4 and 5 hours of coding done a day... which I still think is a decent amount.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for when other people ask what I do, I generally tell them I spend all day thinking.&lt;/p&gt;&#xA;" OwnerUserId="7566" LastActivityDate="2010-12-20T06:33:32.603" />
  <row Id="28174" PostTypeId="1" AcceptedAnswerId="28175" CreationDate="2010-12-20T06:33:42.590" Score="4" ViewCount="153" Body="&lt;p&gt;Hello!  I'm diving into web development after ten years of desktop development and I have an idea for a Rails website that will rely on users posting short videos (5 -15 mins) they've recorded.  The website will be ad-supported and probably won't generate enough revenue to support hosting video based on how expensive I understand it to be, so the idea I had was to allow users to specify a link to the video they recorded and have posted on Youtube.  This way, YouTube funds all the resources (storage, bandwidth, etc.) needed for the videos and I simply embed them in my website.  My questions are...&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Is it worth the poor design choice to separate the user's content service provider (in this case, YouTube) from my website in order to save the money it would cost me to host the videos myself?&lt;/li&gt;&#xA;&lt;li&gt;Is there an inexpensive way for me to host the videos myself if the answer to my first question is &quot;No!&quot;?&lt;/li&gt;&#xA;&lt;li&gt;If it's not a bad idea, do you see any other potential problems with this approach?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I apologize if this question is absurd in any way, I'm still getting familiar with the workings of web businesses.  Thanks so much in advance for your wisdom, I'm going to continue researching my questions right now.&lt;/p&gt;&#xA;" OwnerUserId="7158" LastEditorUserId="7158" LastEditorDisplayName="" LastEditDate="2010-12-20T06:50:34.860" LastActivityDate="2010-12-20T09:58:32.760" Title="Is using YouTube a good, inexpensive solution to building a website that requires users to post videos?" Tags="&lt;web-development&gt;&lt;ruby-on-rails&gt;" AnswerCount="2" CommentCount="0" FavoriteCount="1" />
  <row Id="28175" PostTypeId="2" ParentId="28174" CreationDate="2010-12-20T06:41:34.757" Score="8" ViewCount="" Body="&lt;p&gt;It's definitely a good idea to offload as much hosting as you can to sites that you &lt;strong&gt;know&lt;/strong&gt; will still be around long after your website is gone (or until you make enough money to host content yourself). Your real issue is: how do you make it transparent to your users?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't really done any research into this myself but it might be worth seeing if you can embed the youtube video upload form on your own page so that the user never has to leave your site. Depending on the assumed computer competency of your users, making them create a youtube account, upload the video and then submit the link to your site is probably a bad idea.&lt;/p&gt;&#xA;" OwnerUserId="1886" LastActivityDate="2010-12-20T06:41:34.757" CommentCount="5" />
  <row Id="28176" PostTypeId="2" ParentId="28154" CreationDate="2010-12-20T06:43:05.723" Score="0" ViewCount="" Body="&lt;p&gt;If your talking about Business software it's all about &lt;strong&gt;Ease of Management&lt;/strong&gt;. At my company we work hard to get rid of any piece of software the requires too many admins.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For desktop software for me it's all about &lt;strong&gt;Stability&lt;/strong&gt;.  I hate software that crashes on me.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-20T06:43:05.723" />
  <row Id="28177" PostTypeId="2" ParentId="28139" CreationDate="2010-12-20T06:46:37.250" Score="7" ViewCount="" Body="&lt;p&gt;The degree isn't worth it, but the quality education the degree is supposed to represent is worth it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As someone who has hired people I look for ability and understanding.  Not if they went to a big name school.  &lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-20T06:46:37.250" CommunityOwnedDate="2011-01-30T08:37:56.083" />
  <row Id="28178" PostTypeId="2" ParentId="28054" CreationDate="2010-12-20T06:59:50.723" Score="1" ViewCount="" Body="&lt;p&gt;Just because no one has mentioned it yet, Flash with ActionScript 3 is a rather wide-spread solution for rich-media client-side applications. It always depends on what you want to develop. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would rather suggest that learning Java or C# now from scratch would be a bit too much and probably couldn't really help your profile. With the languages you already know, you could in theory do everything you want (with the help of a little SQL, certainly.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if you're at home in the Microsoft world, some ASP.NET stuff can't be wrong. And with C# and SilverLight, you can also do the things that you can do with Flash.&lt;/p&gt;&#xA;" OwnerUserId="10199" LastActivityDate="2010-12-20T06:59:50.723" />
  <row Id="28179" PostTypeId="2" ParentId="28139" CreationDate="2010-12-20T07:22:47.303" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes, I would say so - and it may not be as expensive as you think.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I went on a scholarship to a second-tier private school, TCU, which is now notable for its football team going to the Rose Bowl this year. I got a fine education there, and my career has been pretty successful, although I learned all my programming skills on my own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since then, I've had friends who went to Harvard, Yale, Carnegie-Mellon, MIT, Caltech, Stanford, and other big-name schools. They all laughed about the cost thing. Those schools are dead serious about making sure you can afford to go there, and have huge endowments running into the billions. If you can get in, it might cost you less than going to a state school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's easier to get into big-name schools than most people think. If your SATs and grades are good, there are things you can do to boost your chances, especially if you start before you're a senior. Contact the schools you're interested in, and they will refer you to alumni in your area who can advise you on that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You really do get a better education at those schools. Seriously. On average, the faculty is more expert, and your fellow students are smarter. You may have to work harder than at a less prestigious school, because they'll teach you information with a shovel rather than a spoon. Also, you won't be a big fish in a small pond, which can be intimidating if that's what you were in high school. But that also means you can make lots of really interesting friends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are always plenty of interesting activities around those schools. For instance, I sometimes attend an open-source conference hosted at Harvard or MIT in the autumn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you live in a state with a top-tier, exclusive state university, you can get many of these advantages by going there. Examples include UC Berkeley and the University of Texas - but not all states have those.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I could do it all over again, I would have shot for Stanford and Harvard. My parents would have freaked, but I would have been happier in the long run. I occasionally go to both universities on business, and walk around campus looking at the students and the faculty and the posters for really interesting things, and think, &quot;I was a moron for going to TCU and not here.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-20T07:22:47.303" CommunityOwnedDate="2011-01-30T08:37:56.083" />
  <row Id="28180" PostTypeId="2" ParentId="28139" CreationDate="2010-12-20T07:46:13.263" Score="2" ViewCount="" Body="&lt;p&gt;The big differentiators are these - in my opinion - &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;connections.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;professors who have done good work and aren't fleeing industry&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;funding for research (which undergrads can participate in)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;more equipment&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;better engineering cultures&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Technically, a BSCS is a BSCS. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Practically, an education is more than your classes. That's where a competitive advantage for a big-name school comes into play (thinking MIT or Stanford here). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should know that private schools sometimes offer full-ride scholarships. I &lt;em&gt;highly&lt;/em&gt; regret not applying for MIT or other private schools.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-20T07:46:13.263" CommunityOwnedDate="2011-01-30T08:37:56.083" />
  <row Id="28181" PostTypeId="2" ParentId="27903" CreationDate="2010-12-20T07:46:34.417" Score="2" ViewCount="" Body="&lt;p&gt;If you have decided on a particular license suits your needs, then putting a License.txt file in a prominent place in the distro should be sufficient.  Also, you should make sure that the github metadata for your project, Maven POM files and so on also declare the licensing in the appropriate way.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Or do I need to notify some other organization that I'm using this license so I can 'enforce' it if necessary?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It is not necessary.  Enforcement of the license is entirely your responsibility.  (Not that there is a lot to enforce .... with a BSD license.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you were prepared to use a GNU license and &lt;a href=&quot;http://www.fsf.org/licensing/assigning.html&quot; rel=&quot;nofollow&quot;&gt;assign copyright to the FSF&lt;/a&gt; (and your project is worth protecting), they would take care of enforcement of the license.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-12-20T07:46:34.417" />
  <row Id="28182" PostTypeId="2" ParentId="28172" CreationDate="2010-12-20T07:48:35.580" Score="1" ViewCount="" Body="&lt;p&gt;i spend most of my days fighting zombies, dragons, and other minions of the evil overlord. ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;really, though, i spend about 90% of my time coding. hooray for small start-ups!&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-12-20T07:48:35.580" />
  <row Id="28183" PostTypeId="2" ParentId="28139" CreationDate="2010-12-20T07:50:49.177" Score="1" ViewCount="" Body="&lt;p&gt;I would disagree with those who say that you &lt;strong&gt;need&lt;/strong&gt; a degree these days - in my opinion that's just lazy recruiting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although I have a degree (in Mechanical Engineering) I am currently studying toward my MCTS qualification and personally think that this, coupled with some good (and not neccessarily expensive) training in computer theory, would be more valuable. It took me years to clear my debts and looking back I don't feel that my degree has helped me that much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The MCTS training books are about £30 and the exams are around £90 (and I've had to buy 2 of each). I've almost completed the certification in about a year but this has by no means been a full time endevour. Compare that with the cost and time to complete a degree!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I as starting now - I'd probably invest in a training course or two and then embark on a recognized qualification such as the MCTS (or whatever floats your boat).&lt;/p&gt;&#xA;" OwnerUserId="9903" LastEditorUserId="9903" LastEditorDisplayName="" LastEditDate="2010-12-20T08:01:51.850" LastActivityDate="2010-12-20T08:01:51.850" CommunityOwnedDate="2011-01-30T08:37:56.083" CommentCount="5" />
  <row Id="28184" PostTypeId="2" ParentId="28154" CreationDate="2010-12-20T07:51:48.263" Score="1" ViewCount="" Body="&lt;p&gt;it has to do what the user needs it to do easily and quickly.  it has to be easy to use.  &lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-12-20T07:51:48.263" />
  <row Id="28185" PostTypeId="2" ParentId="28098" CreationDate="2010-12-20T07:52:06.330" Score="0" ViewCount="" Body="&lt;p&gt;I think it comes down to this - HTML &amp;amp; CSS, while complicated enough to require some savvy, are presentation languages, most suited as the format for generated reports. Therefore, people who can only do these are not considered coders. Bearing in mind that some coders have been in computing long enough to remember when the average word-processor took more command syntax to style text than HTML.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What some would call a 'real' language is that which would process data in some way to generate a report. Or something that could be used to write a game. Knowing HTML &amp;amp; CSS inside and out is a valuable skill, but it is much more so combine with knowledge of JS for front end, and Java, PHP, Perl, Ruby, Python, C/C++ or C# at the back end. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Conversely, someone who only knows one of those 'real' languages without any web front end technologies, are very much limiting their own flexibility as a coder.&lt;/p&gt;&#xA;" OwnerUserId="6630" LastActivityDate="2010-12-20T07:52:06.330" CommentCount="2" />
  <row Id="28186" PostTypeId="2" ParentId="28154" CreationDate="2010-12-20T07:52:22.663" Score="0" ViewCount="" Body="&lt;p&gt;I my mind quality is a measure of the amount of concerns of the stakeholders that are adressed by the software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general my definition maps prety well with the RUP definition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;RUP defines quality as: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;satisfies or exceeds an agreed upon set of requirements&lt;/li&gt;&#xA;&lt;li&gt;Assessed using agreed upon measures and criteria &lt;/li&gt;&#xA;&lt;li&gt;produced using an agreed upon process.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2010-12-20T07:52:22.663" />
  <row Id="28187" PostTypeId="1" AcceptedAnswerId="28211" CreationDate="2010-12-20T07:59:36.080" Score="16" ViewCount="1724" Body="&lt;p&gt;I'm working with php and sql. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that my method of implementing functions is better than what my boss proposes. Just now he explained me how to do a check on a list of email addresses, and I do not like his idea. I proposed mine which is better and quicker to implement, but he disagreed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I think I will go ahead and implement my idea, because his idea was not clear enough to me. Do you think he will be mad?&lt;/p&gt;&#xA;" OwnerUserId="10282" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-21T03:18:40.303" LastActivityDate="2011-03-16T09:57:13.390" CommunityOwnedDate="2011-03-16T09:57:13.390" Title="I believe my solution is better than my boss's, so should I ignore him?" Tags="&lt;work&gt;&lt;boss&gt;" AnswerCount="16" CommentCount="9" FavoriteCount="2" />
  <row Id="28188" PostTypeId="2" ParentId="20927" CreationDate="2010-12-20T08:02:06.670" Score="2" ViewCount="" Body="&lt;p&gt;I look for a couple of things in candidates that I have interviewed. For reason I can't describe online, we get pretty poor candidates, and I've come to expect it, so I'm pretty easy on them. Even still, I look for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Awareness of design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Show me the table structure for an address book program that has Contacts with first and last names that can have multiple Phone Numbers with a description of the number (cell/home/work/etc.)&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not looking for a UML 2.0 spec diagram here, a simple bubble diagram here is fine. As long as it's reasonable.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Knowledge of working with a database (ie. SQL)&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Write a query to get all of the phone numbers for people with the last name &quot;smith&quot;&lt;/li&gt;&#xA;&lt;li&gt;Write a query to get all of the customers in the database, and the phone numbers for the ones with the last name &quot;smith&quot;&lt;/li&gt;&#xA;&lt;/ol&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Knowledge of testing&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assume a method with the signature &lt;code&gt;public IEnumerable&amp;lt;PhoneNumber&amp;gt; GetPhoneNumbers(string lastName)&lt;/code&gt; exists that returns the results of your query from earlier. Assume that if you pass a null into the method, it throws a NullReferenceException. Write a test to demonstrate this functionality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write a test that demonstrates that GetPhoneNumbers will return a home phone number of (123)456-7890 for someone with the last name &quot;smith&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Knowledge of how to write some code&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Implement a method that will fulfill the requirements of the tests you wrote.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Considering the number and quality of the applicants we've gotten, I've interviewed everyone who's ever seriously applied. I've hired no-one.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-20T08:19:50.447" LastActivityDate="2010-12-20T08:19:50.447" CommunityOwnedDate="2011-02-15T14:41:29.790" CommentCount="2" />
  <row Id="28189" PostTypeId="2" ParentId="28187" CreationDate="2010-12-20T08:05:08.837" Score="9" ViewCount="" Body="&lt;p&gt;Your bosses job isn't to program better to you, it's to manage you. So putting aside the fact that given his apparent programming background and that he may know reasons why your solution isn't the best - show him you can take direction and he'll trust you more down the track when you come to him with better solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can almost guarantee it's your approach to telling him why he's wrong (what about saying how we can do it better?) that's stopping you from being heard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... not to say there aren't real inexperienced dicks out there :)&lt;/p&gt;&#xA;" OwnerUserId="7641" LastActivityDate="2010-12-20T08:05:08.837" CommunityOwnedDate="2011-03-16T09:57:13.390" CommentCount="0" />
  <row Id="28190" PostTypeId="2" ParentId="28187" CreationDate="2010-12-20T08:05:45.557" Score="6" ViewCount="" Body="&lt;p&gt;Yes he will be &lt;strong&gt;mad&lt;/strong&gt;. So I'd advise you to email him a reason why your method is better. And ask him for an approval for going ahead with your method. My point of &quot;email&quot; is to ensure you list down and collate all your reasons before going into any further discussion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try wording it as &quot;&lt;em&gt;I trust this method suits the project/issue&lt;/em&gt;&quot; - so unless he has a better way, he should go with you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are really sure and have enough ammo to support your view, go with &quot;&lt;em&gt;I trust this method suits the project/issue because of 1,2,3.. reasons&lt;/em&gt;&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One more personal advise - saying &quot;I am better than my boss&quot; comes across as a bit arrogant, I understand you might be angry right now - but in a professional context this wont be well appreciated. Hope your boss doesnt read this post ;)&lt;/p&gt;&#xA;" OwnerUserId="1681" LastEditorUserId="1681" LastEditorDisplayName="" LastEditDate="2010-12-20T12:02:47.037" LastActivityDate="2010-12-20T12:02:47.037" CommunityOwnedDate="2011-03-16T09:57:13.390" CommentCount="4" />
  <row Id="28191" PostTypeId="2" ParentId="28187" CreationDate="2010-12-20T08:05:55.870" Score="2" ViewCount="" Body="&lt;p&gt;It's surely a quick and easy way to get fired.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice is to implement both and &lt;strong&gt;use the one your boss wants.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;If there is a problem,&lt;/strong&gt; tell him you have a fix, and show it to him, &lt;em&gt;but don't tell him why you wrote it.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-12-20T08:05:55.870" CommunityOwnedDate="2011-03-16T09:57:13.390" CommentCount="1" />
  <row Id="28192" PostTypeId="2" ParentId="28054" CreationDate="2010-12-20T08:06:22.473" Score="0" ViewCount="" Body="&lt;p&gt;I think you should focus more on how to structure a well written website. That will follow all programming languages you'll ever learn. How should the site connect to the backend, what types of storage should you use?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically all programming langauges offer the same service, and most of them are so similar that once you learn enough you can quickly switch between them. Stop focusing on learning programming languages, they just come along for the ride. Focus on what it is you want to achieve.&lt;/p&gt;&#xA;" OwnerUserId="10416" LastActivityDate="2010-12-20T08:06:22.473" />
  <row Id="28193" PostTypeId="2" ParentId="28187" CreationDate="2010-12-20T08:07:06.510" Score="0" ViewCount="" Body="&lt;p&gt;Depends on the person. If he's reasonable enough and you show him your solution and it is better, he won't probably be mad. But if he's not, then you're in trouble.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, for the non-generic bullshit part: He is your boss. He's not there to be a better programmer but to be a better manager/leader. Maybe he has reasons you haven't considered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're a risk-taker, then go for it but don't be mad if you'll get fired. It's all a bet.&lt;/p&gt;&#xA;" OwnerUserId="8454" LastActivityDate="2010-12-20T08:07:06.510" CommunityOwnedDate="2011-03-16T09:57:13.390" />
  <row Id="28195" PostTypeId="2" ParentId="28187" CreationDate="2010-12-20T08:18:33.550" Score="6" ViewCount="" Body="&lt;p&gt;Consider that your boss needs a few things from you:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The ability to program. By all rights, unless he's a developing manager, he (hopefully) hired you hoping that you'd be better than him.&lt;/li&gt;&#xA;&lt;li&gt;The ability to work on a team: that means listening as well as explaining ideas.&lt;/li&gt;&#xA;&lt;li&gt;The ability to do what you're told. When the final word has been said, after all of the back-and-forth discussing of a problem, you're not the boss. If you try to be a hotshot when you've been told specifically not to do something, you can't be trusted.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you want to continue with the issue, you could implement your boss' idea, implement your own (on your own time if it'll take a while to do), and demonstrate them both to prove that yours is better. I'd leave the attitude in the shower when you do.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-20T08:18:33.550" CommunityOwnedDate="2011-03-16T09:57:13.390" CommentCount="1" />
  <row Id="28196" PostTypeId="2" ParentId="28187" CreationDate="2010-12-20T08:21:01.270" Score="31" ViewCount="" Body="&lt;p&gt;You say your method is &quot;quicker to implement&quot;. That rings alarm bells to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code that is quicker to implement can, very often, be hard to maintain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He is your boss. Unless you stay there for life, he's going to be living with that code for much longer than you are. Perhaps his strategy takes that fact into account.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Short answer: Insubordination is a sure-fire way to get fired. &lt;/p&gt;&#xA;" OwnerUserId="6720" LastEditorUserId="6720" LastEditorDisplayName="" LastEditDate="2010-12-20T08:54:08.937" LastActivityDate="2010-12-20T08:54:08.937" CommunityOwnedDate="2011-03-16T09:57:13.390" CommentCount="3" />
  <row Id="28197" PostTypeId="2" ParentId="28187" CreationDate="2010-12-20T08:22:51.120" Score="4" ViewCount="" Body="&lt;p&gt;Being a great developer is not just being a good coder! Part of the job is to work well with others, and collaborate with your teams and bosses. If you think that your way is better, try and explain that to him, showing him &quot;data&quot; of why it is better. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If he claims that his way is actually better, than try to keep an open mind for the case that he might be right. If he is not, and is just pulling authority over you, then you have one bad boss... (because part of being a great boss as well is collaborating with your team and managing it properly). In which case, it might not be such a bad idea to start looking around.&lt;/p&gt;&#xA;" OwnerUserId="3018" LastActivityDate="2010-12-20T08:22:51.120" CommunityOwnedDate="2011-03-16T09:57:13.390" />
  <row Id="28198" PostTypeId="2" ParentId="28187" CreationDate="2010-12-20T08:22:56.463" Score="43" ViewCount="" Body="&lt;p&gt;You are critizing &lt;strong&gt;him&lt;/strong&gt; by thinking you are better than him, instead of critizing &lt;strong&gt;his ideas&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to change that inappropriate behavior in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take the opportunity to challenge &lt;strong&gt;his ideas&lt;/strong&gt; positively by asking &lt;code&gt;&quot;why?&quot;&lt;/code&gt; enough times. If the idea is so stupid, he will eventually discover it himself by answering your questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This technique has the advantage help you understand. His idea is probably more intelligent than you think.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also &lt;code&gt;seeking to understand&lt;/code&gt; before &lt;em&gt;trying&lt;/em&gt; to be understood will help your boss disarm himself against you. When you propose someone something, its &lt;a href=&quot;http://the99percent.com/videos/5822/Seth-Godin-Quieting-the-Lizard-Brain&quot; rel=&quot;nofollow&quot;&gt;lizard brain&lt;/a&gt; will try to determine if it's a treat. His lizard brain want to him to be safe. Seeking to understand him will re-insure his archaic brain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now if you have a better proposal, I'm sure he will be more than happy to listen to you. Be prepared to be asked &lt;code&gt;&quot;why?&quot;&lt;/code&gt; enough times until he is convinced.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After all, you are the professional, that's why he hired you at the first place. He should listen to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If he is not interested by your ideas at all, there is only one thing to do: &lt;strong&gt;quit&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-20T12:36:16.247" LastActivityDate="2010-12-20T12:36:16.247" CommunityOwnedDate="2011-03-16T09:57:13.390" CommentCount="2" />
  <row Id="28199" PostTypeId="1" CreationDate="2010-12-20T08:24:51.937" Score="11" ViewCount="1600" Body="&lt;p&gt;&lt;strong&gt;Objects Never? Well, Hardly Ever&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the VIEWPOINT section of Communications of The ACM, I found an&#xA;interesting article entitled &quot;&lt;a href=&quot;http://stwww.weizmann.ac.il/g-cs/benari/articles/object-never-well-hardly-ever.pdf&quot; rel=&quot;nofollow&quot;&gt;Objects Never? Well, Hardly Ever&lt;/a&gt;&quot;.&#xA;It’s a radically different perspective than objects-first or objects-late. He suggests &quot;objects-never&quot; or maybe &quot;objects-graduate school&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The author talked about OOP and made a question about how OOP is used&#xA;in real world programming environments. He thinks that OOP is not the&#xA;dominant programming model. For example, he claims, 70% of&#xA;programmings are done for Embedded Systems where OOP is not really&#xA;suited.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When some professors in universities wants to talk about the benefits&#xA;of OOP, they talk about code-reuse. As another example, again, he&#xA;claims, this is not the real case in real world. code-reuse is harder&#xA;than what's claimed in universities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I claim that the use of OOP is not as prevalent as most people believe, that it is not as successful as its proponents claim, and, therefore, that its central place in the CS curriculum is not justified.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's interesting for me to know how people in stack-overflow think&#xA;about this? Is OOP the dominant programming model from programmers'&#xA;point of view?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: I asked this on &lt;a href=&quot;http://stackoverflow.com/questions/4487562/is-oop-the-dominant-programming-model-in-real-world&quot;&gt;StackOverflow&lt;/a&gt;, but someone suggests it should be asked here. hope to find a good result :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS2: If I should choose/learn/use just one approach, is it OOP or not? why?&lt;/p&gt;&#xA;" OwnerUserId="11006" LastEditorUserId="11006" LastEditorDisplayName="" LastEditDate="2010-12-23T09:42:43.827" LastActivityDate="2011-04-24T10:55:28.730" Title="is OOP the dominant programming model in real world?" Tags="&lt;object-oriented&gt;&lt;paradigms&gt;&lt;language-agnostic&gt;" AnswerCount="11" CommentCount="3" FavoriteCount="6" />
  <row Id="28200" PostTypeId="2" ParentId="28153" CreationDate="2010-12-20T08:30:10.123" Score="6" ViewCount="" Body="&lt;p&gt;Don't focus on your &lt;strong&gt;task&lt;/strong&gt;, programming, but on what your &lt;strong&gt;company does&lt;/strong&gt;. As SnOrfus said, they won't understand, so &lt;em&gt;they won't care&lt;/em&gt;. When they talk to you, they want everything but feeling stupid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are programmer in an utility company, say:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;I'm programmer in an utility company specialized in green energy&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you work for finance in your local gov: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;I help government find money laundering systems in quarterly declaration by developing a high performing software&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you work in a dev shop: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;I develop software to improve small businesses organization&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;After, don't talk about programming, they don't care. Talk about the &lt;strong&gt;business&lt;/strong&gt; of your company.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-12-20T08:30:10.123" />
  <row Id="28201" PostTypeId="2" ParentId="28199" CreationDate="2010-12-20T08:34:11.820" Score="15" ViewCount="" Body="&lt;p&gt;If OOP is the &lt;em&gt;only&lt;/em&gt; paradigm you know, maybe you should learn more. But really, what's OOP actually mean? Does it mean Java or C++? Does it mean Smalltalk? Does it mean settable value slots and closures? (Hi, Scheme!) Does it mean message sending? (Hi, Erlang!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, it seems an uninteresting question to ask. &quot;Is OO &lt;em&gt;useful&lt;/em&gt;?&quot; is a better question. And, well, it seems that way. (Certainly it is for me.)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-12-20T08:34:11.820" CommentCount="3" />
  <row Id="28202" PostTypeId="2" ParentId="28199" CreationDate="2010-12-20T08:37:28.723" Score="7" ViewCount="" Body="&lt;p&gt;I have not facts to follow it up, but OOP isn't the dominant programming model. Just imagine all those in-house apps developed by someone who took a visual basic course, or did some macro programming in Excel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of applications are just doing imperative programming where all logic is stacked up in a single class or view. This is probably the vast majority of internal simple applications running all over enterprises. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is nothing wrong with that, there are several ways to solve the same problem. Some better suited than others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also as you pointed out, OOP not usefull for all scenarios. There are other models as well.&lt;/p&gt;&#xA;" OwnerUserId="10416" LastActivityDate="2010-12-20T08:37:28.723" CommentCount="2" />
  <row Id="28203" PostTypeId="2" ParentId="28187" CreationDate="2010-12-20T08:37:28.840" Score="2" ViewCount="" Body="&lt;p&gt;I don't think you have the right attitude here. Thinking you are better than your boss or just thinking you are better than somebody else never helps matters. Did you tell him why you didn't like his idea or did you just say, &quot;I have a better way of doing things&quot;. Why is your idea better exactly? Is it a less convoluted algorithmically? Does it have better run-time? Is it easier to maintain? Does it use easier to understand design patterns?&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-20T08:37:28.840" CommunityOwnedDate="2011-03-16T09:57:13.390" />
  <row Id="28204" PostTypeId="2" ParentId="28199" CreationDate="2010-12-20T08:40:34.840" Score="15" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;In the VIEWPOINT section of Communications of The ACM&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you're interested in &lt;em&gt;practical programming&lt;/em&gt;, the proceedings of ACM and the likes is the last source you want to read. These are often [pseudo]-scientific publications with no application in the real world. These are quite often unorthodox opinions made for publicity, for the writer to differentiate himself from the crowd and promote his own person.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I claim that the use of OOP is not as prevalent as most people believe, that it is not as successful as its proponents claim, and, therefore, that its central place in the CS curriculum is not justified.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I tend to disagree with your point. OOP is widely spread and works just fine. By the number OOP-based projects have likely surpassed developments done with other strategies (let's speak about modern time, 15-20 years).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However OOP is not a silver bullet. It works for some developments, doesn't work for others. Just like any other approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But one thing I need to mention is that a curriculum should communicate knowledge of different approaches. If it's OOP-based, it's wrong. If it's FP-based, it's wrong. It should cover them all or don't touch this topic altogether.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. Why care about what is dominant and what is not? Just take what is suitable for the project at hand and leave the numbers to &quot;researchers&quot;.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-20T08:47:03.417" LastActivityDate="2010-12-20T08:47:03.417" CommentCount="8" />
  <row Id="28205" PostTypeId="2" ParentId="28172" CreationDate="2010-12-20T08:42:05.263" Score="9" ViewCount="" Body="&lt;p&gt;mostly i just stare at my desk...but it looks like i'm working&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: for the humor-impaired, this quote is from &lt;a href=&quot;http://www.imdb.com/title/tt0151804/&quot; rel=&quot;nofollow&quot;&gt;Office Space&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-12-22T05:21:16.627" LastActivityDate="2010-12-22T05:21:16.627" CommentCount="5" />
  <row Id="28206" PostTypeId="2" ParentId="28199" CreationDate="2010-12-20T08:44:47.693" Score="5" ViewCount="" Body="&lt;p&gt;Whether or not OOP is the dominant programming model is irrelevant, simply put different models fit different cases. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no silver bullet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What Moti Ben Ari is arguing about is an academic assertion, which is already meaningless. However, he states himself that he never found OOP to &quot;make sense&quot;, clearly it does to thousands of developers and software engineers and has been used in many many systems...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, really the point of my answer is this, what good is it to state that one model or another is dominant or not, is that then good rationale for blindly using it? Of course, it isn't.&lt;/p&gt;&#xA;" OwnerUserId="3787" LastActivityDate="2010-12-20T08:44:47.693" CommentCount="1" />
  <row Id="28207" PostTypeId="2" ParentId="28172" CreationDate="2010-12-20T08:48:05.257" Score="0" ViewCount="" Body="&lt;p&gt;coding 80%, read documentation/SO 10%, meetings 10%. For non-IT people I'm staring at my desk 100% &lt;/p&gt;&#xA;" OwnerUserId="8755" LastActivityDate="2010-12-20T08:48:05.257" />
  <row Id="28208" PostTypeId="2" ParentId="28172" CreationDate="2010-12-20T08:53:27.453" Score="1" ViewCount="" Body="&lt;p&gt;Well, a given average day will be spent as follows:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;an initial hour or so of communications, mainly emails&lt;/li&gt;&#xA;&lt;li&gt;the next 3-4 hours will be meetings, formally or informally, debating the current project with colleagues or discussing requirements/progress with management or clients&lt;/li&gt;&#xA;&lt;li&gt;then 6 hours mixed research / design / coding, what mix depends on the project complexity, but I would say research takes up the main†&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;† - &lt;em&gt;research&lt;/em&gt; is a broad church, but generally I mean investigating possible approaches to a scenario, or investigating issues with a particularly technology.  Proof of concept work is partly research, partly coding.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-20T08:53:27.453" CommentCount="2" />
  <row Id="28209" PostTypeId="2" ParentId="28187" CreationDate="2010-12-20T08:56:56.077" Score="1" ViewCount="" Body="&lt;p&gt;It seems your in conflict over something, so you have to focus on being constructive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you sincerally do not believe in his solution you should find a constructive way to tell him how you feel about it. There are a few things to consider in this. Your responsible for your delivery, but his is responsible for the team's delivery. You will have to show that your interest is that of the teams delivery and your own (that these two align).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make a list of pro's and con's with the two solutions and dicuss it with your boss in a constructive manner. Sometimes it easier to show that your or he is missing a key component of the solution with a list.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to understand what he wants, it's the end goal that is the purpose. If you get in conflict over this then your not focusing on the right goal.&lt;/p&gt;&#xA;" OwnerUserId="10416" LastActivityDate="2010-12-20T08:56:56.077" CommunityOwnedDate="2011-03-16T09:57:13.390" />
  <row Id="28211" PostTypeId="2" ParentId="28187" CreationDate="2010-12-20T09:09:57.043" Score="73" ViewCount="" Body="&lt;p&gt;Having been &quot;the boss&quot; and, as it turned out, actually better than my staff in all cases bar one - yes, he will be mad - or annoyed or frustrated and in any case, quite possibly, &lt;strong&gt;right&lt;/strong&gt; in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're genuinely better than him then you should be able to understand his proposed solution and to see why yours is better and &lt;em&gt;then&lt;/em&gt; to explain why. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you state:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;because his idea was not clear enough to me&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In which case you need to go back and understand what he wants and why and whether - as has been the case both in me making suggestions to my staff and my staff proposing solutions to me - you or he has missed something. But don't assume that he's wrong and you're right unless and until you understand what he's asking for and whether he's covering something you haven't thought of (yet).&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Oh and in the one case - he's a better programmer but he's not so good a couple of steps back from the problem where I'm better and we had great fun working together for that very reason.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-12-20T09:09:57.043" CommunityOwnedDate="2011-03-16T09:57:13.390" CommentCount="7" />
  <row Id="28212" PostTypeId="2" ParentId="28154" CreationDate="2010-12-20T09:11:42.067" Score="1" ViewCount="" Body="&lt;p&gt;Making it easy to improve. High quality software is built when you build it to allow you to cheaply take care of defects (UI/Performance/Crashes/etc). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any software will have defects, so build so that improving quality is easy and low cost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everything else will just follow from this.&lt;/p&gt;&#xA;" OwnerUserId="10416" LastActivityDate="2010-12-20T09:11:42.067" />
  <row Id="28213" PostTypeId="2" ParentId="28113" CreationDate="2010-12-20T09:26:21.127" Score="2" ViewCount="" Body="&lt;p&gt;If you get something wrong in the Domain Model its important to correct it. In my experience we missed a bit in how the domain model connects to it's different entities when we implemented some of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What this resulted in was that people used to model in ways it wasn't inteded for and thus breaks other parts of the model to try to &quot;get it to work&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As soon as you realise that there is something wrong in the domain model, change it as fast as possible. The longer it takes before you refactor it the harder it will be to change with respect to the users, whos mental models now are adapted. &lt;/p&gt;&#xA;" OwnerUserId="10416" LastActivityDate="2010-12-20T09:26:21.127" />
  <row Id="28214" PostTypeId="2" ParentId="28187" CreationDate="2010-12-20T09:36:24.497" Score="2" ViewCount="" Body="&lt;p&gt;As many answers already provided, I don't advise you to code a solution your lead hasn't approved. You first have to prove him that your solution is better in a constructive way. If he's a good manager and deeply thinks his solution is better than yours, you can expect from him to explain why. Don't forget that as manager, he may have other criteria than you to define what an efficient solution is. Maintainability or easiness of reading may be one of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, if he's a good manager, it won't be a dishonor for him to choose your solution if you have objectively succeeded in proving that it is really better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But at the end, even if you still disagree with him, don't deceive him; don't do something he will ignore. Team management is also based on trust and transparency so you could screwed up your relationship with and the team efficiency. And the team objectives should be your first priority.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the situation occurs again and again, and his choices are always bad, he shouldn't stay your boss for a long time. If it's just occasional, don't be too overproud... &lt;/p&gt;&#xA;" OwnerUserId="10977" LastActivityDate="2010-12-20T09:36:24.497" CommunityOwnedDate="2011-03-16T09:57:13.390" />
  <row Id="28215" PostTypeId="2" ParentId="487" CreationDate="2010-12-20T09:36:44.407" Score="0" ViewCount="" Body="&lt;p&gt;If I had the time, I would design a &lt;strong&gt;localizable&lt;/strong&gt; programming language that is based on Scala, so it would have most of its features, except probably for XML. My goal is to make a language that reads almost naturally in languages with a different structure than English, such as Arabic (my mother-tongue). I am thinking of the following features:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A pre-processor &lt;code&gt;#lang&lt;/code&gt; directive, used to inform the pre-processor of the human language used for programming. For example: &lt;code&gt;#lang ar&lt;/code&gt; would allow the use of the word &lt;code&gt;فئة&lt;/code&gt; instead of &lt;code&gt;class&lt;/code&gt;, &lt;code&gt;عرف&lt;/code&gt; instead of &lt;code&gt;def&lt;/code&gt;, and so on. The human-language-specific keywords would be defined in standard preprocessor files.&lt;/li&gt;&#xA;&lt;li&gt;The pre-processor would remove some optional keywords whose sole purpose is to add clarity to the code. For example, it would remove &quot;is composed of&quot; in &lt;code&gt;class MyClass is composed of {&lt;/code&gt; to become &lt;code&gt;class MyClass {&lt;/code&gt;, and remove &quot;as&quot; in &lt;code&gt;def MyMethod(x: Int) as {&lt;/code&gt; to become &lt;code&gt;def MyMethod(x: Int) {&lt;/code&gt;. In some (human) languages, this would make the code much more easier to understand, especially for students.&lt;/li&gt;&#xA;&lt;li&gt;The compiler would allow the use of prefix notation for property access. This might not make sense for most Latin-based language speakers, but for some other languages it makes perfect sense. For example, property access in Arabic is normally prefix, as in &lt;code&gt;اعرض طول اسم محمد&lt;/code&gt;, which is equivalent to &lt;code&gt;print(length(name(Mohammad)))&lt;/code&gt; in programming-English. (The parenthesis are for clarity.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I believe that these minimal changes to the pre-processor and compiler would make programming much simpler to non-English speakers.&lt;/p&gt;&#xA;" OwnerUserId="7671" LastActivityDate="2010-12-20T09:36:44.407" CommentCount="3" />
  <row Id="28216" PostTypeId="2" ParentId="28153" CreationDate="2010-12-20T09:38:57.137" Score="0" ViewCount="" Body="&lt;p&gt;Well, it is really difficult. My girlfriend tells other (non-tech) people I'm doing &#xA;&quot;something with computers in the aerospace industry&quot;. She is a teacher, so it is a lot easier for me at least to understand what she's doing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes it's annoying for me that I can't explain non-tech people what I'm doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also had &quot;arguments&quot; with my girlfriend in the past, because me or some of my engineering friends/colleagues answer questions like what we do for a living at a social gathering with one sentence like &quot;I'm an engineer&quot;. &#xA;She thinks this is kind of rude. But I and properly also my tech friends experienced in the past that most people simply don't listen, if you try to explain your career in more details. &lt;/p&gt;&#xA;" OwnerUserId="10158" LastActivityDate="2010-12-20T09:38:57.137" />
  <row Id="28217" PostTypeId="1" AcceptedAnswerId="28274" CreationDate="2010-12-20T09:39:21.690" Score="28" ViewCount="934" Body="&lt;p&gt;I am a SW developer who just turned 40 and am looking for a new job (while still employed). While I do keep up with current SW technologies and trends, the last few weeks of searching has gotten me very worried.  my CV does not create the same buzz it used to just a few years ago. I suspect it has to do with my age. I assume I will find this next job now, but what will happen afterward?  Beyond the fact that programming is the only thing I see myself working at. I am the primary breadwinner in my family and my income is critical.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The natural course for developer is to become managers and I was a manager for 2 years and found it boring and un-challenging. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another option I see is to move from actual code writing to something else but what?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is also the possibility of starting my own SW company,  but there seems to be so many of them around and even more if you consider all the people doing freelance work for dirt cheap prices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would appreciate  hearing from fellow SW developers in similar situations -  how did/do you cope with the SW developers  midlife crisis? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to thank all of you who shared your insight and experience. You made me relaise there is much I can do. And I intend  to do it!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you all&lt;/p&gt;&#xA;" OwnerUserId="11012" LastEditorUserId="11012" LastEditorDisplayName="" LastEditDate="2010-12-26T06:16:07.003" LastActivityDate="2011-04-06T13:43:26.107" Title="Career advice: what can I do to ensure I am able to provide for my family when I am past 40" Tags="&lt;career-advice&gt;" AnswerCount="12" CommentCount="8" FavoriteCount="11" />
  <row Id="28218" PostTypeId="2" ParentId="27886" CreationDate="2010-12-20T09:42:28.830" Score="0" ViewCount="" Body="&lt;p&gt;Support for longer command line arguments. You'll quickly run into issues when building complex java solutions that doesn't use Microsofts build systems.&lt;/p&gt;&#xA;" OwnerUserId="10416" LastActivityDate="2010-12-20T09:42:28.830" />
  <row Id="28219" PostTypeId="2" ParentId="28139" CreationDate="2010-12-20T09:46:01.163" Score="0" ViewCount="" Body="&lt;p&gt;$120,000 sounds like a lot of money.  (OK it &lt;em&gt;is&lt;/em&gt; a lot of money.)  But if it gets you into a $100k+ per year job within (say) 2 years of graduation, then you should be able to pay off that debt quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Are you good enough to get that 100k+ per year degree if you go to a top rank university?  (If the best you can achieve is mediocre results, then think carefully ...)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Would you be able to get that 100k+ per year job with a degree from a local state university?  (If you can get exceptional results, then maybe yes ...)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also consider whether you are going to stay in the industry (are you sure IT is the best career for you?).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And consider the option of &quot;bootstrapping&quot; by doing a first degree at the local university (with good marks), earning / saving some money in your first job, then doing a higher degree at a better university.&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-12-20T09:46:01.163" CommunityOwnedDate="2011-01-30T08:37:56.083" CommentCount="4" />
  <row Id="28220" PostTypeId="2" ParentId="28217" CreationDate="2010-12-20T09:50:12.927" Score="17" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;the natural course of for developer is to become managers, I was a manager for 2 years and found it boring and challenging.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's probably not true. Some developers quit the profession to do something else. Some hide themselves in administrations, and the vast majority of the remaining still develop today with great pleasure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to collect &lt;em&gt;facts&lt;/em&gt;. To do that you must ask the good questions to the people that interview you, or not interview you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there is an high demand for .NET in your area, and you can only code in Java, this is a good opportunity to learn .NET. &lt;code&gt;You have to market yourself like you were a product&lt;/code&gt;. In fact, you are a product. The interviews should be your &lt;code&gt;market study&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Each time I do an interview, I write down all questions I wasn't able to answer correctly. Back home, I study the subject so it won't happen again.&lt;/li&gt;&#xA;&lt;li&gt;At the end of each interview, I ask the interview what he/she thinks I could improve. I don't ask how I sucked or if I did well. I ask how I can &lt;em&gt;improve&lt;/em&gt;. So I get more generous feedback. I act on it.&lt;/li&gt;&#xA;&lt;li&gt;When I don't get interviews, I ask why! This is a great source of information too. The worse thing that could happen is that I don't get a reply to my email.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;When you discover that the market is not in phase with you anymore and you are not willing to &lt;code&gt;adapt&lt;/code&gt; yourself, it's time to quit it. Or better, &lt;em&gt;reinvent&lt;/em&gt; it by creating your own company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What about becoming a &lt;strong&gt;teacher&lt;/strong&gt;?&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-20T10:15:28.973" LastActivityDate="2010-12-20T10:15:28.973" CommentCount="3" />
  <row Id="28221" PostTypeId="2" ParentId="28174" CreationDate="2010-12-20T09:58:32.760" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is it worth the poor design choice to separate the user's content service provider (in this case, YouTube) from my website in order to save the money it would cost me to host the videos myself?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;It really depends on the purpose of your website.&lt;/strong&gt; Being dependent on YouTube means being dependent on a service that you don't control. Although YouTube is an excellent service, you have no control over what they do to the videos or the users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact that you will depend on a third party service in this way, will make your website less valuable. This is something to consider in case you would ever want to make a business out of your website.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you're not that serious, YouTube will do just fine.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is there an inexpensive way for me to host the videos myself if the answer to my first question is &quot;No!&quot;?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Probably not. First you'd need to build something that can receive them and transcode them to a format more suitable for your website. Next you'd have to host them somewhere, perhaps using Amazon S3 or a &lt;a href=&quot;http://en.wikipedia.org/wiki/Content_delivery_network&quot; rel=&quot;nofollow&quot;&gt;CDN&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1020" LastActivityDate="2010-12-20T09:58:32.760" />
  <row Id="28222" PostTypeId="2" ParentId="28217" CreationDate="2010-12-20T10:04:33.130" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;what can I do to ensure I am able to provide for my family when I am past 40&lt;/li&gt;&#xA;  &lt;li&gt;I was a manager for 2 years and found it boring and challenging&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Maybe you should try boring if the question is survival of your family?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I see two options for you:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Take some managerial role&lt;/li&gt;&#xA;&lt;li&gt;Work for your clients as a contractor. Not like a freelancer over the Internet with $3/hour, but with the personal contact and providing consultancy for you clients on-site.&lt;/li&gt;&#xA;&lt;li&gt;Start your software company and come up with a new product&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Continuing being just a programmer won't probably cut it in the long run, with all that outsourcing and cheap student services. And you actually should be doing now more than a student, right?&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-20T10:04:33.130" CommentCount="1" />
  <row Id="28223" PostTypeId="2" ParentId="28154" CreationDate="2010-12-20T10:05:18.230" Score="0" ViewCount="" Body="&lt;p&gt;The most important feature is that the customer can do what he asked. That means that is not only fulfills basic requirements, but does so in a way that the customer can understand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess we would call that &quot;Usability&quot;, which then becomes the answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The rest, like looks and features, and bugs (withing reason) can be improved afterwards. If the customer can do what he asked, he is also usually going to be happy, and more likely to ask you to make these improvements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A pretty software that doesn't help the customer do his job isn't gonna get you more work, in my experience. &lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-20T10:05:18.230" />
  <row Id="28224" PostTypeId="1" AcceptedAnswerId="28227" CreationDate="2010-12-20T10:10:40.663" Score="4" ViewCount="211" Body="&lt;p&gt;I have been developing applications without following any software development process or models, but I always concentrate on code quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As our company is a new one to this technology, we don't follow any software design principles, we will simply code and achieve goals given by client.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was too scare about that without using software models, should I be a good programmer with software knowledge when considering job in other company at senior position?&lt;/p&gt;&#xA;" OwnerUserId="7452" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T14:23:42.057" LastActivityDate="2010-12-26T14:23:42.057" ClosedDate="2010-12-28T23:24:08.210" Title="Is it important to know software development Models when promoted to Senior Position" Tags="&lt;career-advice&gt;" AnswerCount="1" CommentCount="6" FavoriteCount="1" />
  <row Id="28225" PostTypeId="2" ParentId="28153" CreationDate="2010-12-20T10:16:05.993" Score="3" ViewCount="" Body="&lt;p&gt;I'm Harry Potter. I type en weird words in complicated incantations into a file, to make magic happen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Technically inclined people, like my mother, will understand what programming is about, and in fact most people in my family does understand this on some level. But for those who don't, programming is a technology so advanced that it is indistinguishable from magic. So that's the best way to explain it. Programmers are Wizards, but not in the real world, just in the world of computers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Why does that happen?&quot; - &quot;It's automagic!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;How come it worked when you did it, but not for me?&quot; - &quot;Because I understand what happens.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can teach ordinary people to use magic too, by incantations. &quot;If you want to save your letter, press Ctrl-S every minute, you better&quot;. &quot;File-&gt;Send&quot; == &quot;Wingardium Leviosa&quot;&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-20T10:16:05.993" />
  <row Id="28226" PostTypeId="2" ParentId="27798" CreationDate="2010-12-20T10:16:41.843" Score="0" ViewCount="" Body="&lt;p&gt;Most compilers do not mind a function's length. A function should be functional, but be both easy to understand, change and reuse to human beings. Choose a length that suits you best.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-12-20T10:16:41.843" />
  <row Id="28227" PostTypeId="2" ParentId="28224" CreationDate="2010-12-20T10:22:38.903" Score="4" ViewCount="" Body="&lt;p&gt;You're describing a junior-to-mid position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those programs you've already written will need to be rewritten using better principles than &quot;achieve goals given by the client&quot;, but that's not a bad thing.  When you've done that rewrite, you will definitely be prepared for a mid position.  When you've done first-version rewrites enough times to know the software principles which make it successful, you're ready for a senior position.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-20T10:22:38.903" CommentCount="1" />
  <row Id="28228" PostTypeId="1" CreationDate="2010-12-20T10:30:16.167" Score="2" ViewCount="772" Body="&lt;p&gt;The problem: When we were sending newsletters to customers, there was no way to confirm if the customer already received the mail. So the boss decided to implement this idea:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Boss's Idea: Each time mail was being sent, do an INSERT in a db with the title of the newsletter being sent and the email address which is receving the email address. To ensure that any email address does not receive the same email twice, do a SELECT in the table and find the title of the newsletter being sent: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (title of newsletter is found)&#xA;{&#xA;  check to see of the email we are sending mail to is already present. if it does, do not send mail&#xA;} &#xA;else&#xA;{&#xA; send mail&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;MY idea: create a column called unique and mark it as UNIQUE. Each time mail was being sent, concatenate email + newsletter id and record it in the UNIQUE row. The next time we do a &quot;mysql_affected_rows&quot; check to see if our INSERT was successful, we send the mail, else, there is already a duplicate and no need to send it. &lt;/p&gt;&#xA;" OwnerUserId="10282" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-21T03:39:27.620" LastActivityDate="2010-12-21T03:39:27.620" Title="Boss solution vs Developer solution" Tags="&lt;work&gt;&lt;boss&gt;" AnswerCount="10" CommentCount="13" />
  <row Id="28229" PostTypeId="2" ParentId="28228" CreationDate="2010-12-20T10:34:39.737" Score="25" ViewCount="" Body="&lt;p&gt;Your solution may be faster and typed with lesser code, but also is somewhat of a hack or workaround. It works only exactly for this problem. Think of later extension. What if you want later output all newsletters a customer got. In your solution it is a complicated select over a part of the UNIQUE-string. I personally would prefer the solution of your boss.&lt;/p&gt;&#xA;" OwnerUserId="7654" LastActivityDate="2010-12-20T10:34:39.737" CommentCount="1" />
  <row Id="28230" PostTypeId="1" AcceptedAnswerId="28450" CreationDate="2010-12-20T10:35:39.200" Score="4" ViewCount="256" Body="&lt;p&gt;Can anyone recommend a tutorial for getting started in erlang? I'm a C/python programmer.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2011-03-17T22:33:14.113" Title="Getting started programming in erlang" Tags="&lt;erlang&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="1" />
  <row Id="28231" PostTypeId="2" ParentId="28228" CreationDate="2010-12-20T10:37:38.923" Score="45" ViewCount="" Body="&lt;p&gt;I prefer the boss solution because it's easier to comprehend. &#xA;I immediately understood it, while your own solution is less obvious. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the people that will have to maintain/alter this in the future, this is important.&lt;/p&gt;&#xA;" OwnerUserId="2820" LastActivityDate="2010-12-20T10:37:38.923" CommentCount="2" />
  <row Id="28232" PostTypeId="2" ParentId="28153" CreationDate="2010-12-20T10:38:18.860" Score="1" ViewCount="" Body="&lt;p&gt;I'm &quot;good with computers&quot; for 8 hours every day.&lt;/p&gt;&#xA;" OwnerUserId="3209" LastActivityDate="2010-12-20T10:38:18.860" />
  <row Id="28233" PostTypeId="2" ParentId="28228" CreationDate="2010-12-20T10:40:14.330" Score="2" ViewCount="" Body="&lt;p&gt;Personally, I don't like reliance on UNIQUE constraints. I'd go the SELECT way your boss proposes. It's probably easier to read, too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, you have to know the rules:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The boss is always right&lt;/li&gt;&#xA;&lt;li&gt;If the boss isn't right, apply rule #1&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-20T10:40:14.330" CommentCount="2" />
  <row Id="28234" PostTypeId="2" ParentId="27564" CreationDate="2010-12-20T10:59:37.797" Score="4" ViewCount="" Body="&lt;p&gt;Don't get rid of short open tags, specially the echo one =(. This:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?=$myvar?&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;...is way better than this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?php echo $myvar;?&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-20T10:59:37.797" CommunityOwnedDate="2010-12-20T10:59:37.797" CommentCount="6" />
  <row Id="28235" PostTypeId="2" ParentId="28217" CreationDate="2010-12-20T11:02:18.870" Score="2" ViewCount="" Body="&lt;p&gt;I was worried about this quite a while ago (see &lt;a href=&quot;http://stackoverflow.com/questions/536459/do-programmers-peak&quot;&gt;this question&lt;/a&gt; on SO). And while I am not 40 yet I do see that there is a perception that programming is a young mans game*. However this perception is wrong (on both fronts), as a more mature developer you have a ton of experience. You not only know modern techniques and methods, but you have a great breath of experience which a good employer should value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However you do have some prejudices to overcome. People will see your age and worry if your skills are up to date so overcome this by making sure you stay on top of the latest developments. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are talking about source control in SCCS people will worry, if you are talking about GIT they will see you follow industry. For example. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are talking about COBOL people will worry, if you start talking about Objective C they will be more reassured.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of these more modern methods may be faddy, but if you stop looking at the fads and trying them out you will start to be obsolete. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;*Please excuse the blatant sexism, but the perception &lt;em&gt;is&lt;/em&gt; that young men are programmers. &lt;/p&gt;&#xA;" OwnerUserId="10624" LastActivityDate="2010-12-20T11:02:18.870" CommentCount="1" />
  <row Id="28236" PostTypeId="1" CreationDate="2010-12-20T11:04:24.787" Score="0" ViewCount="110" Body="&lt;p&gt;Is it possible to install &quot;Appserv&quot;(Contain PHP, MySQL, phpmyadmin, apache web server) into a system that already has IIS, MS Sql server 2008, ASP.NET, visual studio 2010 installed?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will it cause any conflict? if yes, how can I avoid it?&lt;/p&gt;&#xA;" OwnerUserId="10825" LastActivityDate="2011-01-19T18:46:57.200" Title="Installing appserv on the same system that contains IIS/MS Sql server 2008" Tags="&lt;web-development&gt;&lt;php&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="28237" PostTypeId="2" ParentId="27491" CreationDate="2010-12-20T11:10:07.113" Score="0" ViewCount="" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;First do it white box testing&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Second go for Black box testing.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&gt; Black Box Testing&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I. The tester should check functional of the application, such Text box, Radio button, listbox, Command button,... etc.,,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;II. The tester should check non functional of the application, such logo, Image, spelling,.. etc.,,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;III. The tester should check entire flow of the application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: &#xA;To check Positive and Negative conditions.&lt;/p&gt;&#xA;" OwnerUserId="10438" LastEditorUserId="10438" LastEditorDisplayName="" LastEditDate="2010-12-20T11:15:10.930" LastActivityDate="2010-12-20T11:15:10.930" />
  <row Id="28238" PostTypeId="1" AcceptedAnswerId="28240" CreationDate="2010-12-20T11:11:24.813" Score="15" ViewCount="1811" Body="&lt;p&gt;I've often come across bugs that have been caused by using the &lt;code&gt;ELSE&lt;/code&gt; construct.  A prime example is something along the lines of:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;If (passwordCheck() == false){&#xA;    displayMessage();&#xA;}else{&#xA;    letThemIn();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;To me this screams security problem.  I know that passwordCheck is likely to be a boolean, but I wouldn't place my applications security on it. What would happen if its a string, int etc?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually try to avoid using &lt;code&gt;ELSE&lt;/code&gt;, and instead opt for two completely separate IF statements to test for what I expect.  Anything else then either gets ignored OR is specifically handled.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Surely this is a better way to prevent bugs / security issues entering your app.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you guys do it?&lt;/p&gt;&#xA;" OwnerUserId="4630" LastEditorUserId="136" LastEditorDisplayName="" LastEditDate="2010-12-20T13:03:51.293" LastActivityDate="2011-01-06T21:02:43.957" Title="Is using ELSE bad programming?" Tags="&lt;self-improvement&gt;&lt;programming-practices&gt;&lt;security&gt;" AnswerCount="12" CommentCount="19" FavoriteCount="4" />
  <row Id="28239" PostTypeId="2" ParentId="28238" CreationDate="2010-12-20T11:18:03.770" Score="4" ViewCount="" Body="&lt;p&gt;Then just replace them, &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;If (passwordCheck == true)&#xA;{&#xA;     letThemIn();&#xA;}&#xA;else&#xA;{&#xA;     displayMessage();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1262" LastActivityDate="2010-12-20T11:18:03.770" CommentCount="6" />
  <row Id="28240" PostTypeId="2" ParentId="28238" CreationDate="2010-12-20T11:18:14.457" Score="71" ViewCount="" Body="&lt;p&gt;The &lt;code&gt;else&lt;/code&gt; block should always consist of what you want the default behaviour to be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's no need to avoid them, just be careful to use them appropriately. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your example, the default state should be to not allow access. A little refactoring leaves you with:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;If (passwordCheck)&#xA;{&#xA;   letThemIn();&#xA;}&#xA;else&#xA;{&#xA;   displayMessage();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;i.e. if the password check works, let them in, otherwise it's always valid to show some error message.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can of course add additional checks to you logic by using &lt;code&gt;else if&lt;/code&gt; rather than completely separate &lt;code&gt;if&lt;/code&gt; statements.&lt;/p&gt;&#xA;" OwnerUserId="8993" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2010-12-20T13:49:02.670" LastActivityDate="2010-12-20T13:49:02.670" CommentCount="7" />
  <row Id="28241" PostTypeId="2" ParentId="28217" CreationDate="2010-12-20T11:19:44.403" Score="8" ViewCount="" Body="&lt;p&gt;A slightly different perspective than the one you asked for. I am involved in trying to recruit senior software engineering generalists. I am not looking for people with experience with any particular technology. What I want in a senior engineer is that I can put an existing codebase and a customer in front of them, and they will be able to take the right decisions to safely maximise the return the business gets from that investment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would expect a senior engineer to have a breadth of experience using different approaches to solve various problems. And have a well developed sense of how to pick between them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also expect them to have a sound understanding of software engineering principals; safety, software design, concurrency, scalability, programming techniques, algorithms, distributed systems, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing I would want a senior engineer to be involved in is as a mentor to more junior developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want a CV from a senior developer that talks about the hard stuff in software engineering; not just gives me a list of the latest technology buzz words (I already know them, I've seen a lot of CVs). Age should be an advantage as you have had time to show your versatility and underlying engineering skills. And we will pay for those skills and experience. So if you think your CV is not &quot;buzz&quot; enough, maybe focus on these other (IMO harder) areas?&lt;/p&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-12-20T11:19:44.403" CommentCount="1" />
  <row Id="28242" PostTypeId="2" ParentId="28238" CreationDate="2010-12-20T11:26:35.167" Score="13" ViewCount="" Body="&lt;p&gt;There is always an ELSE. If you write&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(foo)&#xA;  bar();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;you actually write&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(foo)&#xA;{&#xA;  bar();&#xA;}&#xA;else&#xA;{&#xA;   // do nothing&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Whatever you put in the ELSE-path is your responsibility.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-12-20T11:26:35.167" CommentCount="3" />
  <row Id="28243" PostTypeId="2" ParentId="28238" CreationDate="2010-12-20T11:29:40.203" Score="43" ViewCount="" Body="&lt;p&gt;No, there is nothing wrong with &lt;code&gt;ELSE&lt;/code&gt;. &lt;code&gt;ELSE&lt;/code&gt; is not the new &lt;code&gt;GOTO&lt;/code&gt;.&#xA;In fact, using two &lt;code&gt;IF&lt;/code&gt;s instead of &lt;code&gt;ELSE&lt;/code&gt; can lead to several problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example one:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (this(is(a(very())==complex(check())))) {&#xA;   doSomething();&#xA;}&#xA;&#xA;if (!this(is(a(very())==complex(check())))) {&#xA;   doTheOtherThing();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You see the copy-paste? It just waits for the day when you change one and forget the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example two:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;foreach(x in y) {&#xA;  if (first_time) {&#xA;    first_time = false;&#xA;    doSomething();&#xA;  }&#xA;&#xA;  if (!first_time) {&#xA;    doTheOtherThing();&#xA;  }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;As you can see, the second &lt;code&gt;IF&lt;/code&gt; will also be executed for the first item, because the condition has already changed. In real world programs, such bugs are harder to spot.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-20T11:29:40.203" CommentCount="5" />
  <row Id="28244" PostTypeId="2" ParentId="28228" CreationDate="2010-12-20T11:35:41.900" Score="14" ViewCount="" Body="&lt;p&gt;As Mnementh said. Indeed, the purpose of the database is very likely not only to prevent having mails sent twice. And the danger of hacking around this way is that you'll end up with a database full of unique columns, all for a different purpose. It's a common mistake in DB design, and one the boss rightfully avoids. So I wouldn't be so sure about your statement regarding who is the best programmer. You definitely never had to maintain/update/refactor a database where some wizzkid has been hacking away in your style.&lt;/p&gt;&#xA;" OwnerUserId="7268" LastActivityDate="2010-12-20T11:35:41.900" />
  <row Id="28245" PostTypeId="2" ParentId="28228" CreationDate="2010-12-20T11:36:13.150" Score="12" ViewCount="" Body="&lt;p&gt;My only criticism of your boss's approach is that if you ever happen to want to send a newsletter with the same title as a previous one it will not get delivered. How about using something you know will be unique (UUID per newsletter)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your solution is more fragile.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It relies on the correctness of the append operation between the two data formats;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Which would require work to be unambiguous (where does the title end and the email start?)&lt;/li&gt;&#xA;&lt;li&gt;It has to manipulate user generated data (the email address), which means you have to deal with anything the user decides to put in there.&lt;/li&gt;&#xA;&lt;li&gt;Is not very self-documenting, future maintainers would have to look at the code and the database schema to understand what the data is.&lt;/li&gt;&#xA;&lt;/ol&gt;&lt;/li&gt;&#xA;&lt;li&gt;If you do decide you want to change the way your algorithm works in the future, upgrading your database data will involve having to un-concatenate all the rows. Which is unnecessary pain. Whereas it would be comparatively easier to go from you boss's solution to your solution (or some other solution)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5404" LastEditorUserId="5404" LastEditorDisplayName="" LastEditDate="2010-12-20T11:58:33.607" LastActivityDate="2010-12-20T11:58:33.607" CommentCount="2" />
  <row Id="28246" PostTypeId="2" ParentId="28228" CreationDate="2010-12-20T11:52:36.837" Score="6" ViewCount="" Body="&lt;p&gt;First, there is no &lt;em&gt;general purpose&lt;/em&gt; way to determine if an email has been received. You can only determine if an email has been &lt;em&gt;sent&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, the way the codeblock is presented makes it appear as if you would break this conditional into two parts. No need. You would simply do a query like so:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;SELECT count(*) from newsletter_sent WHERE title = '$title' AND email = '$email'&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;There is no need to check for the title first. Also, the title of a newsletter might change. Will this affect the reliability of this solution? Most definitely. For that reason, none of the solutions are ideal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ideal solution is to assign an ID to each newsletter, whether this be obtained from a third party site (if you're using third party newsletter management) or otherwise.&lt;/p&gt;&#xA;" OwnerUserId="9682" LastActivityDate="2010-12-20T11:52:36.837" CommentCount="1" />
  <row Id="28247" PostTypeId="2" ParentId="28238" CreationDate="2010-12-20T11:54:30.583" Score="2" ViewCount="" Body="&lt;p&gt;There is nothing wrong with using ELSE. However it can lead to overly complex code that is hard to read and understand. It may indicate a bad design. It certainly indicates additional use cases that will need to be tested. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to remove ELSEs if you can - but don't be paranoid about it. Steve McConnell calls this straight line code in Code Complete. I.e. there is a simple clear path through your code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Approachs to try for your particular problem:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;use polymorphism. At the boundary to your system validate the security credentials of the user. If they are legitimate then return a session object - with access to the relevant parts of the system or throw an exception. However this could make you system more complex. So you decide what's easier to understand and maintain.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In general - the following may help to reduce ELSEs in your code:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;good requirements may reduce the need for such decisions in the code. You may not need to implement the use case (else) at all.&lt;/li&gt;&#xA;&lt;li&gt;clearer design. Maximum cohesion and minimize coupling. This ensures components are not duplicating decisions made in other components.&lt;/li&gt;&#xA;&lt;li&gt;exception handling to manage error cases.&lt;/li&gt;&#xA;&lt;li&gt;polymorphism (see example above).&lt;/li&gt;&#xA;&lt;li&gt;switch statements - these are glorified ELSEs but are better in certain situations.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-12-20T11:54:30.583" CommentCount="1" />
  <row Id="28248" PostTypeId="2" ParentId="28238" CreationDate="2010-12-20T11:54:34.780" Score="12" ViewCount="" Body="&lt;p&gt;I personally tend to avoid &lt;code&gt;else&lt;/code&gt; as much I can, but it's not for any &lt;em&gt;security&lt;/em&gt; problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When reading code, nested statements make it harder to follow the logic, because you need to remember which set of conditions will lead there. For this reason, I am a huge fan of early exit:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (checkPassword != OK) { displayMessage(); return; }&#xA;&#xA;letThemIn();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This also applies to &lt;code&gt;for&lt;/code&gt; and &lt;code&gt;while&lt;/code&gt; loops in which I will use &lt;code&gt;continue&lt;/code&gt; and &lt;code&gt;break&lt;/code&gt; whenever it avoids a level of indentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Chris Lattner says it better than I do in the &lt;a href=&quot;http://llvm.org/docs/CodingStandards.html#hl_earlyexit&quot; rel=&quot;nofollow&quot;&gt;LLVM Coding Standards&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2010-12-20T11:54:34.780" CommentCount="10" />
  <row Id="28249" PostTypeId="2" ParentId="28230" CreationDate="2010-12-20T11:54:38.120" Score="2" ViewCount="" Body="&lt;p&gt;You could start with Erlang's &quot;Getting Started&quot; PDF &lt;a href=&quot;http://www.erlang.org/download/getting_started-5.4.pdf&quot; rel=&quot;nofollow&quot;&gt;Click Here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could also try an &lt;strong&gt;online&lt;/strong&gt; Erlang here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.tryerlang.org/&quot; rel=&quot;nofollow&quot;&gt;Online Erlang&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-20T12:30:28.353" LastActivityDate="2010-12-20T12:30:28.353" />
  <row Id="28250" PostTypeId="2" ParentId="28098" CreationDate="2010-12-20T12:05:42.560" Score="25" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;What is the difference, really?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The real and important difference between a programming language and these other languages is this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;HTML and CSS describe &lt;em&gt;presentation&lt;/em&gt;,&#xA;  whereas programming languages describe&#xA;  &lt;em&gt;function&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I intend to illustrate why this difference matters, but that pedantry on this issue is sometimes misplaced.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A true story&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I once spent a few months developing a complex performance management system using a &quot;proper&quot; programming language. It automated the process of gathering data from various other systems, performed various manipulations on that data and then presented the results in a simple table.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once it was live, a senior manager saw a tool written for a similar business, and asked if we could replace what I had written using their alternative. Furthermore, he was upset that I'd spent weeks developing my solution, where this new app had been written in a matter of days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Further investigation revealed that the manager's preferred option was all presentation with no substance: there were lots of colours and icons and graphs, but there was &lt;em&gt;absolutely no logic&lt;/em&gt; behind them. All the data had to be gathered and manipulated manually. Despite the pretty interface, the application was essentially useless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm happy to say that the manager in question was persuaded that my approach was the one that met his real business needs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The importance of presentation&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is often an implication that skills in HTML, CSS etc. are somehow inferior to skills in &quot;real&quot; programming languages. &lt;strong&gt;This is a serious mistake.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my story, the senior manager felt that design was &lt;em&gt;very&lt;/em&gt; important to him, to the extent that he was initially prepared to overlook function in its favour. Now, if this were an isolated incident, I might suggest that the manager was just being silly. But it wasn't. Time and again, I've met users who are impressed by flashy graphics and whizzy widgets, but unimpressed by raw functionality and my technical achievements. I think that there are several lessons to learn here:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;People evaluate software on criteria that they understand. They often understand the difference between good-looking and ugly, but rarely appreciate technical nuances.&lt;/li&gt;&#xA;&lt;li&gt;People are fooled by appearances. This may not be a good thing, but it is a reality that we must live with.&lt;/li&gt;&#xA;&lt;li&gt;Appearances influence the way people feel about software. The way people feel about software is important to them. Indeed, people sometimes prefer software that makes them &lt;em&gt;feel&lt;/em&gt; good over software that is functionally superior. Indeed, they might well be more productive with feel-good tools than with technically superior tools. To this extent, our users are not being fooled. They are actually making a wise and thoughtful choice.&lt;/li&gt;&#xA;&lt;li&gt;As programmers, we often neglect the role of presentation as we focus on function. To some extent, this is right and proper. However, it is important to recognize that there is another dimension to our work that is important to our customers.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So, presentation-oriented languages (HTML, CSS) are important. The value added by who can use these tools effectively should not be underestimated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The importance of real programming languages&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As the OP pointed out, &quot;real&quot; programming languages are Turing Complete. As a proper sad geek, I find this sublimely fascinating. It means that, for &lt;em&gt;any&lt;/em&gt; program written in a T-C language, a functionally equivalent program can be written in &lt;em&gt;any other&lt;/em&gt; T-C language. Of course, this isn't to say that all languages are the same. The each have their strengths and weaknesses that make them more or less suitable for certain tasks. However, I/O aside, this means that all programs can be written in all true programming languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Incidentally, the important thing is T-C. The declarative vs imperative is a red-herring here. SQL, for example, is declarative but is also a proper programming language because it is T-C.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, the same isn't true of a markup language like HTML or CSS. In fact, &lt;strong&gt;there are whole classes of problem that these languages simply can't solve&lt;/strong&gt;. Where I can program &lt;em&gt;anything I want&lt;/em&gt; in a true programming language - including layout engines - it just isn't possible to achieve the same things with languages that aren't T-C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As highlighted in my story, HTML and its ilk are used to produce presentation. Real programming languages are used to produce functionality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Why are programmers pedantic about it all?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Programmers spend a great deal of time, effort and money developing their skills. People naturally value the things in which they invest (&quot;your heart is where your money is&quot;).&lt;/li&gt;&#xA;&lt;li&gt;Programmers often feel the need to justify the amount of time it takes to produce results compared to the rapid results achieved by UI designers. In order to do this, they need to draw a distinction between what the two groups actually &lt;em&gt;do&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Because employers need to apply the right people to the right jobs. Unless we clarify the (often technical) differences, managers easily make the wrong calls.&lt;/li&gt;&#xA;&lt;li&gt;Because there is a &lt;em&gt;real&lt;/em&gt; and &lt;em&gt;fundamental&lt;/em&gt; difference, as outlined above.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Is it always appropriate to be pedantic?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's face it, as programmers &lt;strong&gt;we're a naturally pedantic lot&lt;/strong&gt;. It goes with the territory. It doesn't help that many of us have been burned when non-programmers have failed to understand what we do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nevertheless (and to be honest, this goes against my natural instincts), &lt;strong&gt;I don't think we need to call people out whenever they slip over every little distinction&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The important things here are &lt;em&gt;context&lt;/em&gt;&#xA;  and &lt;em&gt;perspective&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'm told that, to a biologist, a tomato is a fruit. But when I buy them in the supermarket, I look for them amongst the veg. Why? Because the &lt;strong&gt;technical distinction doesn't matter&lt;/strong&gt; in that particular context. Moreover, the distinction would &lt;em&gt;actually get in the way&lt;/em&gt; if I daft enough to include tomatoes in a fruit salad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is the same with computer languages. There are times when the difference between programming languages and other languages really &lt;em&gt;does matter&lt;/em&gt;. Quite often, however, we can all communicate perfectly effectively when just lump them all in together. In the case of the question linked by the OP, it &lt;em&gt;really didn't matter&lt;/em&gt; what languages were true programming languages and which were not. Pointing out the distinction didn't advance the discussion in any way. Thankfully, other than adding a little noise (and becoming the stimulus for an interesting discussion!) the pedantry linked by the OP was of little consequence. At its worst, however, pedantry can stir up negative feelings and damages relationships... at least according to my wife.&lt;br&gt; :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How to deal with pedantry amongst programmers&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A preacher friend of mine once delivered a sermon entitled:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;is this a hill worth dying to be on?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;He was referring to generals who make a strategic assessment over which battles are which fighting: are the gains worth the costs?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is it really worth interrupting the flow of the discussion to make this distinction?&lt;/li&gt;&#xA;&lt;li&gt;Does my pedantry stem from a sense of arrogance or from past hurt?&lt;/li&gt;&#xA;&lt;li&gt;Do my comments value the skills of others as well a my own?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Of course, there are times when distinctions need to be made. My aim is that, when I make a contribution, it will add value to our collective endeavours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, after all, the job of a every &lt;em&gt;real&lt;/em&gt; programmer.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-20T17:28:06.790" LastActivityDate="2010-12-20T17:28:06.790" CommentCount="6" />
  <row Id="28251" PostTypeId="2" ParentId="27886" CreationDate="2010-12-20T12:05:44.157" Score="0" ViewCount="" Body="&lt;p&gt;&lt;code&gt;valgrind&lt;/code&gt; and &lt;code&gt;gcov&lt;/code&gt; ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use PowerShell when developping on windows (as a hobby) and I have installed the GnuWin32 tools (sed, awk, grep, etc...) and Python to get some easy scripting, so no issue there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I find myself hitting a wall whenever I want to inspect my program... Sure I can use the debugger (a bit) but:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;how does one spot a memory leak ?&lt;/li&gt;&#xA;&lt;li&gt;how does one identifies the memory hogs ?&lt;/li&gt;&#xA;&lt;li&gt;how does one identifies the hot spots ?&lt;/li&gt;&#xA;&lt;li&gt;how does one identifies unused / untested parts of the code ?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I have seen some tools here and there and there was a good question on &lt;a href=&quot;http://stackoverflow.com/questions/4394606/beyond-stack-sampling-c-profilers&quot;&gt;StackOverflow&lt;/a&gt; and the number of tools listed is pretty frightening... and their limitations too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Linux has been made by developers for developers, so it got a lot more developers' friendly tools :)&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2010-12-20T12:05:44.157" />
  <row Id="28252" PostTypeId="2" ParentId="28228" CreationDate="2010-12-20T12:15:55.767" Score="7" ViewCount="" Body="&lt;p&gt;Ok,&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What happens should the client change their email address? The two column solution enables a simple update to be applied&lt;/li&gt;&#xA;&lt;li&gt;Test by exception (which is what your unique method implies) is a generally considered poor, if I were to go with the concatenated string I'd still want to explicitly test for existence before doing the insert rather than throwing the data at the db and looking for something to break.&lt;/li&gt;&#xA;&lt;li&gt;And as a belt and braces check you could always have a unique constraint across both columns (assuming that is supported by MySQL).&lt;/li&gt;&#xA;&lt;li&gt;In terms of your code, you want to start with a query that says give me all the users that match my selection criteria that haven't already been sent this newsletter - again the split column facilitates this.&lt;/li&gt;&#xA;&lt;li&gt;In terms of design, I'm with @Zenph - user table (with unique ID), newsletter table (with unique ID) and NewsletterSentToUser table (NewsletterID, UserID and possibly its own unique ID 'cos that can make some things easier). Queries are a teeny bit more complex but its a lot more resilient.&lt;/li&gt;&#xA;&lt;li&gt;Oh, and in terms of reporting which user (email address) has been sent which newsletter (subject) the two column solution makes that far more elegant&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-12-20T12:15:55.767" />
  <row Id="28253" PostTypeId="2" ParentId="27886" CreationDate="2010-12-20T12:17:47.073" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Copy/paste with history function.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Luckily &lt;a href=&quot;http://bluemars.org/clipx/&quot; rel=&quot;nofollow&quot;&gt;ClipX&lt;/a&gt; offers a solution:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/twjf4.png&quot; alt=&quot;ClipX&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;PS I am not affiliated with ClipX ;)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="3814" LastActivityDate="2010-12-20T12:17:47.073" />
  <row Id="28254" PostTypeId="2" ParentId="28114" CreationDate="2010-12-20T12:20:03.327" Score="1" ViewCount="" Body="&lt;p&gt;I always see the angel initially, but somehow it always end up as a goblin along the way. :/&lt;/p&gt;&#xA;" OwnerUserId="3814" LastActivityDate="2010-12-20T12:20:03.327" />
  <row Id="28255" PostTypeId="2" ParentId="28217" CreationDate="2010-12-20T12:21:43.467" Score="0" ViewCount="" Body="&lt;p&gt;if I went to 40 that means a 21 years of development experience (assuming that my career started from age of 19 and i didn't quit development..) with this experience I can market myself as a consultant, but wait a minute! what the specialty I'll market myself consultant as? I should list one or two of my best primary roles I've fulfilled during my entire SW Development life, by this I feel I did my best for my 40's plan. otherwise starting  some kind of business you really like can help too ( like starting a supermarket..) its really a good choice I like and I'll do someday :)  &lt;/p&gt;&#xA;" OwnerUserId="9701" LastActivityDate="2010-12-20T12:21:43.467" />
  <row Id="28256" PostTypeId="2" ParentId="28114" CreationDate="2010-12-20T12:23:05.310" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Has anyone ever had such a clear vision of what they wanted to program and it felt like it was mere keystrokes away?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes, I have. But it was not about code, but about the product, its features and the impression it would have on users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes you just look at what you've accomplished and couldn't help but wonder. Has it come from my own hands? Or were they an instrument in the hands of a higher power, inspiration or a muse?&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-20T12:23:05.310" />
  <row Id="28257" PostTypeId="1" CreationDate="2010-12-20T12:24:37.363" Score="4" ViewCount="110" Body="&lt;p&gt;I'm searching for a web site to start a new open source project.&#xA;I want to start the developing of a &quot;SPORT training log&quot;.&#xA;I have some developing skill but not all I need (I dont know web coding).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone know a good starting point to meet some people, propose the software and then (in another place also) start the development all together?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I have python, c, c++ skills and a little training experience, but I want to make it in web, so I can't do all the stuff alone. I dont think I'm the only one who wants to make a training log but dont have necessary skills. I'm searching for a site to manage the idea behind a training log and get interested people to contribute in the idea and then eventualy contribute also in the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I mean is a step before actualy FOSS approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why start to code software I need if I can start global software requirements about a &quot;sport traning log&quot; and after a useful and global review, we can start all together to developt it? Why should I need to start developing the software with XYZ features and other people who need features YZQ need to start to write another one? Why not put the opensource comunity a step before in a more professional way starting an opensource project with a collaborative approach also in software requirements?&lt;/p&gt;&#xA;" OwnerUserId="7771" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-20T13:15:41.433" LastActivityDate="2010-12-20T15:26:38.343" Title="place to propose a open source project and collaborate on software requirements before start to coding." Tags="&lt;open-source&gt;&lt;startups&gt;&lt;requirements&gt;&lt;collaboration&gt;" AnswerCount="2" />
  <row Id="28258" PostTypeId="2" ParentId="28187" CreationDate="2010-12-20T12:36:36.303" Score="1" ViewCount="" Body="&lt;p&gt;My advice is to first determine if his solution is in fact better. Post the two solutions, ask SE for an unbiased opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would NEVER ignore my boss. If he has the technical know-how, then there is no harm in a healthy discussion. He pits his idea and you propose your's. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you do determine that in fact his method is inferior and he won't allow you to do the job he hired you for, quit. There is nothing worse than having a knucklehead stand over you telling you how you should do something when they clearly have no idea what they're talking about.&lt;/p&gt;&#xA;" OwnerUserId="9682" LastActivityDate="2010-12-20T12:36:36.303" CommunityOwnedDate="2011-03-16T09:57:13.390" />
  <row Id="28259" PostTypeId="2" ParentId="487" CreationDate="2010-12-20T12:36:37.927" Score="1" ViewCount="" Body="&lt;p&gt;A good language is a language which is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;easy to reason about (no obscure syntax)&lt;/li&gt;&#xA;&lt;li&gt;let you express your ideas with minimum distortion&lt;/li&gt;&#xA;&lt;li&gt;hide the nitty gritty details from you (optimization / resources management)&lt;/li&gt;&#xA;&lt;li&gt;easily parallelizable (multiple cores, distributed computing)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It's pretty hard to turn this into a list of features, but I think Functional Programming, despite not feeling &lt;em&gt;natural&lt;/em&gt;, is closer to this than imperative programming (especially in hiding the nitty gritty details)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;C-interfacing&lt;/strong&gt;: C is the lingua franca of programming languages and the number of libraries developped in C is amazing. By having an easy interface (like Python) to C, the language automatically benefits from all those libraries and it also allows to send heavy-tasks that could not be optimized enough to a close to metal language.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Distributed&lt;/strong&gt;: I like Go's take at multi-threading, with lightweight routines that the runtime dispatches on threads depending on their activity. Such a language encourages the programmer to reason about tasks and to isolate them from one another.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Garbage Collection&lt;/strong&gt;: goes without saying nowadays ;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Immutable&lt;/strong&gt;: much easier to reason about something that can never mutate, much easier to implement multithreading / distributed computing too (you only need synchronization to handle the lifetime, which is the compiler task)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Lambdas&lt;/strong&gt;: goes with first class functions I guess&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Message Passing&lt;/strong&gt;: immutability means no mutex, therefore we follow Tony Hoares' suggestion&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Modules&lt;/strong&gt;: somewhat similar to namespaces, but with better encapsulation&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Reflexion&lt;/strong&gt;: distributed computation requires serialization, which should be left to the compiler, and deserialization is more easily achieved with some form of reflexion.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Static Strong Typing&lt;/strong&gt;: the earlier an error is detected, the least it costs&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;At the moment, the language closer to this list is probably Haskell, though:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it lacks Routines: I have not seen a &lt;em&gt;natural&lt;/em&gt; way to express parallelism in Haskell yet (though it may be my ignorance...)&lt;/li&gt;&#xA;&lt;li&gt;it's got an Obscure Syntax: somehow it looks like Haskell programmers thrive on using weird operators rather than words. It may seem slick, but it doesn't help much to understand what's going on.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2010-12-20T12:36:37.927" />
  <row Id="28260" PostTypeId="2" ParentId="28238" CreationDate="2010-12-20T12:38:23.187" Score="0" ViewCount="" Body="&lt;p&gt;Saying that using &lt;code&gt;else&lt;/code&gt; when programing is bad is like saying that using &lt;code&gt;otherwise&lt;/code&gt; when speaking is bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, they can both be used in bad ways, but that doesn't mean they are to be avoided just because you made a mistake which happened to include them. I wouldn't be surprised if many bugs depended on a missing &lt;code&gt;default&lt;/code&gt; case in a &lt;code&gt;switch&lt;/code&gt; statement.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-12-20T12:38:23.187" />
  <row Id="28261" PostTypeId="2" ParentId="27491" CreationDate="2010-12-20T12:46:32.203" Score="1" ViewCount="" Body="&lt;p&gt;I would say &lt;strong&gt;Black Box&lt;/strong&gt; testing first, simply because as a proponent of TDD, the tests are written before the code (or box) exist anyway :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;White Box&lt;/em&gt; testing (as far as I understand) is more useful in a debugging mindset.&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2010-12-20T12:46:32.203" />
  <row Id="28262" PostTypeId="2" ParentId="28238" CreationDate="2010-12-20T13:00:13.807" Score="3" ViewCount="" Body="&lt;p&gt;Like Matthieu M., I prefer early exit to deeply nested else blocks... It illustrates well defensive programming (if bad conditions, no point to continue). Lot of people will disagree with us, preferring a unique exit point; it is not the point of the debate (I think).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I certainly use &lt;code&gt;else&lt;/code&gt; when it makes sense, particularly for simple, short alternatives. As said, duplicating the test is a waste of time (programmer's and CPU's), a source of confusion and, later, of bugs (when one is changed, not the other).&lt;br&gt;&#xA;Sometime, I add a comment on the &lt;code&gt;else&lt;/code&gt; part, reminding what was the condition (particularly if the &lt;code&gt;if&lt;/code&gt; part is long, eg. in legacy code) or what is the alternative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that some extreme proponents of functional programming propose to get rid entirely of &lt;code&gt;if&lt;/code&gt;, in favor of pattern matching... A bit too extreme for my taste. :-)&lt;/p&gt;&#xA;" OwnerUserId="11015" LastActivityDate="2010-12-20T13:00:13.807" CommentCount="1" />
  <row Id="28263" PostTypeId="2" ParentId="28257" CreationDate="2010-12-20T13:04:00.953" Score="1" ViewCount="" Body="&lt;p&gt;I'm not aware of such a site, and I would be very interested to know if anything like that exists. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I guess your best bet is searching for which are already doing something similar and see if/how you could work together.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could eg take pytrainer, which is not a web application but has done already quite a lot of thinking on presenting results, importing from devices/...&#xA;&lt;a href=&quot;http://sourceforge.net/projects/pytrainer/&quot; rel=&quot;nofollow&quot;&gt;http://sourceforge.net/projects/pytrainer/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or the other way around, search for logbook web software and adjust that for sports logging.&lt;/p&gt;&#xA;" OwnerUserId="11035" LastActivityDate="2010-12-20T13:04:00.953" />
  <row Id="28264" PostTypeId="2" ParentId="28238" CreationDate="2010-12-20T13:20:13.270" Score="1" ViewCount="" Body="&lt;p&gt;Your supposition about the code being a security leak may or may not be true &lt;em&gt;depending on the language&lt;/em&gt; you are using.  In C code it could be a problem (particularly because in C a boolean is just an int that is non-zero or zero)--but in most strongly typed languages (i.e. runtime type checking) if the &lt;code&gt;passwordCheck&lt;/code&gt; variable was declared as a boolean, there is no way to assign something else to it.  In fact, everything in an &lt;code&gt;if&lt;/code&gt; predicate must resolve to a boolean, whether you use the boolean operators or simply use the value.  If you managed to have another type of object bound to &lt;code&gt;passwordCheck&lt;/code&gt; the runtime would throw some type of illegal cast exception.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simple if/else constructs are much easier to read than if/if constructs--and less prone to inadvertant problems if someone tries to flip the construct.  Let's take the same example for a second:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(passwordCheck == false) {&#xA;    denyAccess();&#xA;}&#xA;&#xA;if(passwordCheck) {&#xA;    letThemIn();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The meaning of the mutually exclusive clauses you want to execute above is lost.  That's what the if/else construct conveys.  Two mutually exclusive branches of execution, where one of them will always run.  This is an important part of security--ensuring there is no way to &lt;code&gt;letThemIn&lt;/code&gt; after you've called &lt;code&gt;denyAccess&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the purpose of code clarity, and for the purpose of ensuring critical sections are most protected, they should be inside the primary clause (the &lt;code&gt;if&lt;/code&gt; part).  The default non-compliant behavior should be in the alternate clause (the &lt;code&gt;else&lt;/code&gt; part).  For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(passwordCheck) {&#xA;    letThemIn();&#xA;} else {&#xA;    denyAccess();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;NOTE: in working with different languages, I've developed a coding habbit that does help avoid the question of &quot;what if it's a string?&quot;  Essentially,  it is to put the constant first in the boolean expression.  For example, instead of checking &lt;code&gt;passwordCheck == false&lt;/code&gt; I am checking &lt;code&gt;false == passwordCheck&lt;/code&gt;.  This also avoids the accidental assignment problem possible in C++.  Using this approach, the compiler will complain if I type &lt;code&gt;=&lt;/code&gt; instead of &lt;code&gt;==&lt;/code&gt;.  In languages like Java and C#, the compiler would treat the assignment in the if clause as an error, but C++ will happily accept it.  That's why I also tend to do null checking with the &lt;code&gt;null&lt;/code&gt; first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you routinely change languages placing the constant first is very helpful.  However, on my team it is opposite the coding standard and the compiler catches those problems anyway.  It can be a hard habbit to break.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-20T13:20:13.270" />
  <row Id="28265" PostTypeId="2" ParentId="28199" CreationDate="2010-12-20T13:31:04.077" Score="1" ViewCount="" Body="&lt;p&gt;OOP is definitely one of the more dominant programming models in the real world. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lets face it, even people who design digital hardware, the chip designers themselves, are making a transition to the duo of SystemVerilog and SystemC. These are object oriented programming languages. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where would OOP not be used? Well if you are coding device drivers its hard to imagine why you'd need generic programming or multiple inheritance OR if you are doing AI functional programming techniques make it a lot easier on the head. There are loads of other situations too, suffice to say though that OOP is a pretty powerful place to be in an oligopolistic programming world.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-20T13:31:04.077" />
  <row Id="28266" PostTypeId="2" ParentId="28187" CreationDate="2010-12-20T13:35:43.483" Score="0" ViewCount="" Body="&lt;p&gt;Don't bite the hand that feeds you.&lt;br&gt;&#xA;If you think yours is better, even after exhaustive analysis, then sure, do as you believe but you will live with the consequences.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-20T13:35:43.483" CommunityOwnedDate="2011-03-16T09:57:13.390" />
  <row Id="28267" PostTypeId="2" ParentId="5259" CreationDate="2010-12-20T13:39:00.673" Score="2" ViewCount="" Body="&lt;p&gt;I think that the best way to motived him is to try to stablish realtions between what he has been doing in the past 5 years and some new language. if you tell me that he's been working with linux, knows lots of sql, c++ and stuff, i imagine that he will find Java quite frustrating, there are lots of limitations when dealing with tipes, exceptions, structures and stuff. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my advise is start with something that could be challenging but at the same time easy to start. PHP culd be the best option, because you could add 4 or 5 lines and have yourself a home page on the web, working with a database. Learning curve is much more shorter that other languages, and when he reaches a poin where he starts boring again, then add something like Symfony where you stablish a very big framework with its reatrictions and good practice code, so to polish rought edges in his style.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also try to set up an evironmanet that he is familiar, maybe install a little linux server, and let him set it up, thats also quite enjoyable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bests of luck trying to get him back on the train!&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-20T13:39:00.673" />
  <row Id="28268" PostTypeId="2" ParentId="5259" CreationDate="2010-12-20T13:48:05.957" Score="1" ViewCount="" Body="&lt;p&gt;Since he already knows the concepts, you might encourage him to use a framework like Django, Rails or Grails, so he gets results quickly and uses a state-of-the-art language (Python, Ruby reps. Groovy) and a framework without much configuration. And since the language is new to him, the dissapointment about forgotten things isn't there.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-20T13:48:05.957" />
  <row Id="28269" PostTypeId="2" ParentId="28228" CreationDate="2010-12-20T13:58:27.293" Score="3" ViewCount="" Body="&lt;p&gt;Yup, your boss's solution is a lot simpler to comprehend, more obvious, lesser prone to future error or complicated maintenance. I've come into a somewhat similar situation involving DB design and the person that oversees my work suggested I do it his way while I believed it wouldn't be necessary etc etc... Should I create a question too?&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-20T13:58:27.293" />
  <row Id="28270" PostTypeId="2" ParentId="28217" CreationDate="2010-12-20T14:00:27.913" Score="10" ViewCount="" Body="&lt;p&gt;I'm over 40 and the sole income provider for my family.  I have no concerns about being able to provide for my family for the &lt;strong&gt;&lt;em&gt;next&lt;/em&gt;&lt;/strong&gt; 20 years as a programmer.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How is that so?  I stay current.  I continuously challange myself.  I seek out people who know more than me and learn all I can from them.  Do I know everything?  Far from it. In fact, the older you get the more you realize how little you know.  Focus on the type of work that you enjoy and the languages you enjoy using, become the &quot;go-to guy&quot; for both and your skills  will always be valuable to someone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also suggest trusting yourself more.  While everyone worries at some point about the future, you've got around 20 years of experience behind you.  Trust that experience.  Those 20 years should be able to show you what you're good at and what's just not for you.  Use that knowledge and play to your strengths.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-20T14:00:27.913" CommentCount="4" />
  <row Id="28271" PostTypeId="2" ParentId="4607" CreationDate="2010-12-20T14:19:12.507" Score="3" ViewCount="" Body="&lt;p&gt;I would like to point out that nobody has explored business needs when debating whether Java is a good choice for desktop applications.  This can be a heavily weighted factor for each developer reading this question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are writing small or medium size applications to support your business/main application, and these applications need to be deployed into multiple OS environments, then yes, Java is probably your best choice.  You will be saved a great amount of overhead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples of this might be applications that perform interactive tasks on a database from a client server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, however - I do not think that a Java desktop application should be used to develop any large application because, as Mark Trapp explained, Java applications just don't FEEL native.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I hate applications that do not conform to the look and feel of my native desktop.  I remember a few years ago when a few applications I used thought they should implement a dark &quot;vista&quot; theme for me when Vista was being launched.  I was not really happy about this, to say the least.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think most people prefer when their applications fit natively into their environment, but we're willing to make sacrifices for applications that fit our needs. &lt;/p&gt;&#xA;" OwnerUserId="7048" LastActivityDate="2010-12-20T14:19:12.507" />
  <row Id="28272" PostTypeId="1" AcceptedAnswerId="28284" CreationDate="2010-12-20T14:23:27.667" Score="4" ViewCount="127" Body="&lt;p&gt;I saw the recent post about the person questioning his boss's solution (&lt;a href=&quot;http://programmers.stackexchange.com/q/28187/3922&quot;&gt;I believe my solution is better than my boss, so should I ignore him?&lt;/a&gt;) and decided to ask something similar but not as &quot;clashing&quot; as it sounded in the above link.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To put it simply and more conceptually:&lt;br&gt;&#xA;We have a web app that does phone billing for many different clients. The thing is, the person that started the project didn't consider that there are only 9999 possible phone extensions in our design (a bit naive, I know). We have come across a point where different clients's users will have to share the same &lt;code&gt;extension number&lt;/code&gt;. In the DB level, the &lt;code&gt;extension number&lt;/code&gt; is fixed as &lt;code&gt;unique&lt;/code&gt; and the &lt;code&gt;Extensions&lt;/code&gt; table has a foreign key to &lt;code&gt;Users&lt;/code&gt;.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The easiest solution as we saw was to remove this &lt;code&gt;unique&lt;/code&gt; constraint and allow &lt;code&gt;extension numbers&lt;/code&gt; to be duplicated because we can still check and validate to see which &lt;code&gt;Client&lt;/code&gt; the &lt;code&gt;User&lt;/code&gt; belongs to. However, the person that oversees my work believed it would cause future problems if we simply allowed for duplication. He suggested I create an intermediary table that links two tables together, namely &lt;code&gt;UserProfile&lt;/code&gt; (which has a foreign key to User and &lt;code&gt;Client&lt;/code&gt;) and the &lt;code&gt;Extension&lt;/code&gt; table. &#xA;Since my way seemed easier to do, I created a branch of the project to test if it works fine, which it does.&#xA;Then I started implementing the other way and came across some complications, system-wide modifications, but I still think it's doable. The person that oversees my work is a sys admin that does some programming. I'm the full-time programmer, though without much experience (still young ;)  ). It would be cool if I had some outside perspective on my dilemma?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks a lot guys.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-20T14:43:42.467" Title="Two possible solutions to a problem, DB design" Tags="&lt;boss&gt;" AnswerCount="4" />
  <row Id="28273" PostTypeId="2" ParentId="26271" CreationDate="2010-12-20T14:24:44.707" Score="1" ViewCount="" Body="&lt;p&gt;+1 for Wiki.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it is a message passing system then I suggest generating sequence diagrams to show the interaction between the different components. I have used the following website to generate diagrams from simple text so no need to fiddle with any tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.websequencediagrams.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.websequencediagrams.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing we have found useful is to ask the person leaving (you in this case) to come up with a quiz related to your area of expertise and then have a separate session to go over the questions and the answers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HTH&lt;/p&gt;&#xA;" OwnerUserId="11025" LastActivityDate="2010-12-20T14:24:44.707" />
  <row Id="28274" PostTypeId="2" ParentId="28217" CreationDate="2010-12-20T14:28:01.117" Score="13" ViewCount="" Body="&lt;p&gt;I'm 55 and, since Karl died, the sole income with no possibility of anyone else kicking in any income. I understand your fear. But don't assume it is your age that frightens people away (although truthfully there are companies that don't want to pay for experience but you are better off not getting hired by them anyway). Could be lots of other things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Part of why you aren't getting as much notice of your resume is the economy is just plain bad and there are many more people out there competing for the same jobs. So first consider how to market yourself so that you stand out in a pile of 500 resumes. What stands out most to my mind is a record of actual accomplishments, not just buzzwords (which, of course, you still need to get past HR). What also stands out is someone who networks. Go to your local user groups and get to know people in other companies, start preparing presentations for conferences, write a blog, etc. Once people get to know you, they will let you know about openings they have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may also need to consider relocating if the market in your area is bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are companies that hire over 40's, but you might want to look at larger companies. You know, and I know, that someone with experience is a better buy for the money than someone just out of college, but many smaller companies can only afford the entry level person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Becoming a specialist is also a possibility. Specialists cost more than entry level people anyway, so the comanies that hire them may be less intimidated by the amount of money an experienced person wants.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it makes you feel better, we have about 20% over 40 programmers here. And quite few of us over 50 as well.  &lt;/p&gt;&#xA;" OwnerUserId="1093" LastEditorUserId="1093" LastEditorDisplayName="" LastEditDate="2011-04-06T13:43:26.107" LastActivityDate="2011-04-06T13:43:26.107" CommentCount="1" />
  <row Id="28275" PostTypeId="2" ParentId="28217" CreationDate="2010-12-20T14:32:19.247" Score="0" ViewCount="" Body="&lt;p&gt;@Eithan: Depending on your location, you can opt for Freelancing Projects too. I do bid often even though I work full time.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-12-20T14:32:19.247" />
  <row Id="28276" PostTypeId="2" ParentId="28272" CreationDate="2010-12-20T14:32:27.983" Score="1" ViewCount="" Body="&lt;p&gt;I think that dimensionally the link table is better, because you &lt;em&gt;don't&lt;/em&gt; duplicate data. That &lt;code&gt;extension&lt;/code&gt; table will not grow at all, giving more space for the client data. However, that would require changing your queries, and if you're not using prepared statements or PL/SQL, then it would require quite afew changes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say to make the changes. It will save you time later, when another client has the same issue. I share a phone too, btw - sounds like a common scenario. If you have a good suite of automated tests, it should be easy to find problems associated with the change.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2010-12-20T14:43:12.167" LastActivityDate="2010-12-20T14:43:12.167" CommentCount="2" />
  <row Id="28277" PostTypeId="2" ParentId="28272" CreationDate="2010-12-20T14:32:47.760" Score="0" ViewCount="" Body="&lt;p&gt;I would add the &lt;code&gt;Client ID&lt;/code&gt; in the &lt;code&gt;Extensions&lt;/code&gt; table and create a unique index for &lt;code&gt;(Extension number, Client ID&lt;/code&gt;; this should avoid all problems related to completely dropping the unique constraint while making it possible to share the extension number between clients. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a bit of redundancy because the &lt;code&gt;Client&lt;/code&gt; could be found through the &lt;code&gt;User&lt;/code&gt;, too; but I think this is not much of a problem and it allows you to e.g. to remove the connection to the &lt;code&gt;User&lt;/code&gt; (i.e. the user has been fired, the extension is currently not used) without running into new problems.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-20T14:32:47.760" />
  <row Id="28278" PostTypeId="1" AcceptedAnswerId="28279" CreationDate="2010-12-20T14:33:01.557" Score="9" ViewCount="352" Body="&lt;p&gt;Over lunch, a colleague of mine, that has a manager (person in direct charge of the project) and a BOSS up top was asked to resolve one issue. The manager had arguments with the boss regarding how it should be resolved. They both agreed they would go with the manager's way. When my colleague was starting to resolve the issue, the Boss calls and said, &quot;You do it my way.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this case, what would you do?!&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-20T15:12:33.207" Title="Two bosses, both want different way of implementation" Tags="&lt;boss&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="28279" PostTypeId="2" ParentId="28278" CreationDate="2010-12-20T14:34:17.137" Score="29" ViewCount="" Body="&lt;p&gt;Report the issue to the manager, let him sort it out. Respect the chain of command!&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-20T14:34:17.137" CommentCount="7" />
  <row Id="28280" PostTypeId="2" ParentId="28278" CreationDate="2010-12-20T14:36:33.953" Score="3" ViewCount="" Body="&lt;p&gt;Definitely report it to your manager, he'll have to argue with his boss. This definitely shouldn't fall into your lap until there's an adequate and solid resolution.&lt;/p&gt;&#xA;" OwnerUserId="1274" LastActivityDate="2010-12-20T14:36:33.953" />
  <row Id="28281" PostTypeId="2" ParentId="28238" CreationDate="2010-12-20T14:37:17.267" Score="1" ViewCount="" Body="&lt;p&gt;Think of &lt;code&gt;Else&lt;/code&gt; as white-listing your application flow. You check for conditions that SHOULD allow application flow to continue, and if these are not met, then your &lt;code&gt;Else&lt;/code&gt; is executed to either resolve the problem, discontinue the application execution, or something similar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Else&lt;/code&gt; in itself is not bad, but if you use it poorly, you can see undesired effects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, in regards to your statement about&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&quot;I know that passwordCheck is likely to be a boolean, but I wouldn't place my applications security on it.&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For methods that you develop, ALWAYS return one data type. Although PHP Core is littered with code that returns two or more datatypes, this is a bad practice as it makes guesswork of function calls.  If you have to return more than one datatype, consider throwing an exception (I find this is often the reason I would want to return another data type - something went horribly, horribly wrong), or consider re-structuring your code so that you can return only one data-type.&lt;/p&gt;&#xA;" OwnerUserId="7048" LastActivityDate="2010-12-20T14:37:17.267" CommentCount="5" />
  <row Id="28282" PostTypeId="2" ParentId="28217" CreationDate="2010-12-20T14:39:14.423" Score="0" ViewCount="" Body="&lt;p&gt;Try and get a job in industry. Seriously. Or some other area where employers aren't looking for cheap code monkeys, but people who know code but also know the particular domain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Service and/or small companies are often looking for the cheapest developer out, and that pushes their bias down the pay/age scale.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Larger and more serious companies know they can find people who know programming, and they can find people who know about whatever their business is. What is REALLY hard to find is someone who can understand &lt;em&gt;both&lt;/em&gt; and - more importantly - can 'translate' between both groups of people.&lt;/p&gt;&#xA;" OwnerUserId="4285" LastActivityDate="2010-12-20T14:39:14.423" />
  <row Id="28283" PostTypeId="2" ParentId="28272" CreationDate="2010-12-20T14:42:53.727" Score="0" ViewCount="" Body="&lt;p&gt;From a database perspective, I would say he is correct.  It is better to not duplicate data, and business rules (eg: &quot;Users belonging to the same client can not have the same extension&quot;) should be enforced on the back-end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just dropping the uniqueness may be the quick and dirty solution, but in the long-run has the possibility (however unlikely) of causing issues.&lt;/p&gt;&#xA;" OwnerUserId="9987" LastActivityDate="2010-12-20T14:42:53.727" />
  <row Id="28284" PostTypeId="2" ParentId="28272" CreationDate="2010-12-20T14:43:42.467" Score="1" ViewCount="" Body="&lt;p&gt;This is a bit of an abstract answer, but I would go with the design that most closely models the business.  In your case, it seems like &lt;em&gt;in reality&lt;/em&gt;, you &lt;em&gt;do&lt;/em&gt; have situations where people share extensions, because you are modeling many distinct phone systems.  Therefore I would drop the unique constraint.  This means that extension is no longer a natural key for a person, but I don't really see that as a problem.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-12-20T14:43:42.467" CommentCount="2" />
  <row Id="28285" PostTypeId="2" ParentId="28278" CreationDate="2010-12-20T14:43:45.373" Score="2" ViewCount="" Body="&lt;p&gt;I would say this is not your problem.  Until the people above you can decide what they want to do, you have no reason to continue with the implementation. Report it to your manager, and tell him to let you know when they have sorted it out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't put your ass on the line because somebody else can't get their act together.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this goes on too long, consider getting both the manager and the boss to sign a resolution denoting how you are to continue. This will cover your ass if everything goes up in smoke.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This likely won't be required though.&lt;/p&gt;&#xA;" OwnerUserId="7048" LastActivityDate="2010-12-20T14:43:45.373" />
  <row Id="28286" PostTypeId="2" ParentId="28278" CreationDate="2010-12-20T14:46:47.240" Score="4" ViewCount="" Body="&lt;p&gt;Report this issue to your manager and ask him to decide if you continue doing it his way or the boss' way. As a followup question ask what you should do if this occurs again (and I'm guessing it will).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A little anecdote about my company: We have the same problem, different suits say different things about some implementations. We solved this by implementing one option, and only if they all agree on the same option, we would change the implementation to the final decision. In the mean time, while the suits are doing politics about the color of a button. We make it work. And 90% of the time, they just go with what already is implemented.&lt;/p&gt;&#xA;" OwnerUserId="11019" LastActivityDate="2010-12-20T14:46:47.240" CommentCount="1" />
  <row Id="28287" PostTypeId="2" ParentId="28278" CreationDate="2010-12-20T15:05:56.613" Score="2" ViewCount="" Body="&lt;p&gt;My advise is: Ask your boss a mail confirmation or a formal request about what he asked you to do, that way when things get messing you have something to hold on. If the does not what to, then report to an upper or equal authority.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This way you may save your self a lot of trouble!&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-20T15:05:56.613" CommentCount="1" />
  <row Id="28288" PostTypeId="2" ParentId="28228" CreationDate="2010-12-20T15:07:31.233" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Compromise&lt;/strong&gt;&lt;br&gt;&#xA;Why not implement your idea AND his idea... go a step further?    &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming you have a customer table with unique customer id's + customer email address... create a table with NewsletterID, NewsletterDescription.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you can make a third table that has a unique FK of CustomerID + NewsletterID.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What if customer changes email? Are you going to send all the newsletters to the new address? Are you going to change all the email address? What if you change the newsletter name to correct a typo?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your solution, it's greatly complicated by having to parse out the email to update part of one field. Same for newsletter name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In his solution, you are going to have to dance around changing email addresses and/or names in separate columns (much easier than changing a single column, but still changing what is likely to be more than is needed).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Database_normalization&quot; rel=&quot;nofollow&quot;&gt;Database Normalization&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;&#xA;You need to normalize the database to remove the need to change redundant information, specifically data that WILL change: like email's (and less likely, but still likely, newsletter names). The fact that this isn't in either option presented tells me that you both need to buy a SQL book that describes Database Normalization and read it from beginning to end.&lt;/p&gt;&#xA;" OwnerUserId="2536" LastEditorUserId="2536" LastEditorDisplayName="" LastEditDate="2010-12-20T20:46:00.780" LastActivityDate="2010-12-20T20:46:00.780" />
  <row Id="28290" PostTypeId="1" CreationDate="2010-12-20T15:13:13.627" Score="0" ViewCount="41" Body="&lt;p&gt;I'm starting to get into computer graphics and thinking that I will do a research project for my masters in cs in computer graphics. I'm wanting to find forums or an on-line community where I can connect with people on-line in this field. I'm looking for people more on the programming side of CG than the artsy side. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any suggestions?&lt;/p&gt;&#xA;" OwnerUserId="10090" LastActivityDate="2010-12-20T15:18:31.700" ClosedDate="2010-12-20T15:46:16.523" Title="Computer Graphics Forums/On-Line Communities?" Tags="&lt;graphics&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="28291" PostTypeId="2" ParentId="28290" CreationDate="2010-12-20T15:16:16.403" Score="0" ViewCount="" Body="&lt;p&gt;Well, hum... maybe you already know this one, deviantart.com?&#xA;(Although it is more on the artsy side, you really can find anything in there).&lt;/p&gt;&#xA;" OwnerUserId="6579" LastActivityDate="2010-12-20T15:16:16.403" />
  <row Id="28292" PostTypeId="2" ParentId="28290" CreationDate="2010-12-20T15:18:31.700" Score="0" ViewCount="" Body="&lt;p&gt;As an open source enthusiast, you might want to check uot &lt;a href=&quot;http://www.opengl.org/&quot; rel=&quot;nofollow&quot;&gt;OpenGL Site&lt;/a&gt; .You could find some cool stuff there!&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-20T15:18:31.700" />
  <row Id="28293" PostTypeId="2" ParentId="28257" CreationDate="2010-12-20T15:26:38.343" Score="1" ViewCount="" Body="&lt;p&gt;A little of topic butr, hey maybe you have found something greater than your main goal. What if you digg a bit more on the &quot;open source pre project site&quot;, i think that could be an amazing idea and would be more than exited to participate in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an enthuast on those matters, i would really like to have an open source place where you could share ideas and start projects in a collaborative way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like having open source intelectual right policy, so people could use those ideas to improve our every day internet experience without the fear of someone stealing whats yours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about it!&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-20T15:26:38.343" CommentCount="2" />
  <row Id="28294" PostTypeId="1" CreationDate="2010-12-20T15:27:11.010" Score="5" ViewCount="265" Body="&lt;p&gt;We have spent several months planning, testing and developing a new game. We have been trialing a host of Platforms (Java Applet, Desktop Via XNA, Flash etc) and Silverlight was pretty much our prefered choice. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the more we get into the game the more problems we face, mainly down to the communication with a server. HTTP Polling is slow and in-efficent yet the socket functionality that is now available in SL4 is only really useful for a Intranet enviroment - Unless we are missing something. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone have any opinions or experiance with this and the future of SL for Online Browser based games.&lt;/p&gt;&#xA;" OwnerUserId="11052" LastEditorUserId="11052" LastEditorDisplayName="" LastEditDate="2010-12-20T15:58:26.773" LastActivityDate="2010-12-22T18:50:35.570" Title="Has Silverlight got a future in the online Game world?" Tags="&lt;future&gt;&lt;silverlight&gt;&lt;games&gt;" AnswerCount="2" CommentCount="9" />
  <row Id="28295" PostTypeId="2" ParentId="5259" CreationDate="2010-12-20T15:29:09.427" Score="0" ViewCount="" Body="&lt;p&gt;Person who graduated in CS should perfectly know mathematics, right? So math logic, boolean algebra, functional algebra, theory of sets, and many other should not be forgotten even after years, isn't it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So give to him some programming language &lt;strong&gt;oriented on functional programming&lt;/strong&gt; (like &lt;strong&gt;F# (!)&lt;/strong&gt;, OCaml, or even Python), this will be more friendly to him and will not cause such a frustration (of course he got it, there are many so weird patterns, new designs, new frameworks, OMG!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMO, it's the same if a PHP-developer will open ASM/C++ ;)&lt;/p&gt;&#xA;" OwnerUserId="6822" LastActivityDate="2010-12-20T15:29:09.427" />
  <row Id="28296" PostTypeId="2" ParentId="5259" CreationDate="2010-12-20T15:35:51.443" Score="5" ViewCount="" Body="&lt;p&gt;He's already got a CS background.  you don't need to &quot;teach&quot; him programming.  What you need to do is give him a legitimate project to work on and mentor him in the environment of choice. Show him why for loops aren't the norm in ruby, or [insert idiom from language of choice here].  But do it in the context of solving a problem.  Build a legitimate web application, or develop some desktop application that scratches an itch of his.  Whatever the case may be, don't waste anybody's time with yet another game that nobody's ever going to actually play or by adding yet another hand-rolled blog to the world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding choice of platform, if his motivation is to get back into paying work, I'd highly recommend getting him started in Ruby and Rails – there aren't nearly enough developers in that market to satisfy the needs, so with a modicum of practice and expertise, he can find himself in a position to get a fairly well-paying job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But be aware he may just like the &quot;idea&quot; of becoming a developer again, and not so much the practice.  if that's the case, he's just wasting your time and his.&lt;/p&gt;&#xA;" OwnerUserId="9475" LastActivityDate="2010-12-20T15:35:51.443" />
  <row Id="28297" PostTypeId="2" ParentId="5259" CreationDate="2010-12-20T15:44:07.207" Score="0" ViewCount="" Body="&lt;p&gt;Make it useful!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is new technology and unknown to him.  The easiest way to get motivation is to have it do something useful and needed.  Have a look at his daily work and see if there is a place where a small tool could be helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Windows a possible thing could be a clipboard peeker (in Java 6) where you can launch a program which looks at the clipboard and show it in a window.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-20T15:44:07.207" />
  <row Id="28298" PostTypeId="2" ParentId="28217" CreationDate="2010-12-20T15:44:33.060" Score="5" ViewCount="" Body="&lt;p&gt;Elthan, I was in your position last year. Make sure your CV format is modern.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm currently 52, and like you, mostly a C++ guy. Thirteen months ago, my Silicon Valley employer laid off (made redundant) half the programming staff. I was expecting it, and was already sending out my resume, but was getting little response.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My wife finally convinced me to use one of the online services you can pay to review your resume and make suggestions. It turned out my 1995-style resume, which was mostly &quot;worked here, did this, worked there, did that&quot;, made me look like an old fuddy-duddy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, my resume starts with a prominent, formal version of, &quot;Solid track record of successful software projects, including this famous company and that famous company. Contributes to this and that open-source project. Loves to ship on time and have happy customers.&quot; The &quot;worked here and there&quot; section is much shorter, and the last half of the second page is nice quotes from managers and colleagues that are also on my LinkedIn profile, so employers can easily verify them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started sending that resume out, and was employed within two weeks with a pay increase from my previous job. I've since returned to freelance programming, and am turning away work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But don't just copy what I said. Have somebody in your area give you advice, because these things are somewhat faddish, and what's current in Silicon Valley might look quite odd elsewhere.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-20T15:44:33.060" CommentCount="2" />
  <row Id="28299" PostTypeId="2" ParentId="28187" CreationDate="2010-12-20T15:44:55.167" Score="0" ViewCount="" Body="&lt;p&gt;Let's start with the fact that it is the boss's job to make decisions, not yours. You go against those decisions behind his back and it's a quick path to being fired for cause.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can and should present your ideas before the decision is made, but once it's made, it is your job to make the decision work even if you don't agree with it. If you can't do that you will have a very short career.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-20T15:44:55.167" CommunityOwnedDate="2011-03-16T09:57:13.390" />
  <row Id="28300" PostTypeId="2" ParentId="5259" CreationDate="2010-12-20T15:46:05.650" Score="0" ViewCount="" Body="&lt;p&gt;Forget the language specifics and frameworks, for a little while, I've found that programmers in general like to solve problems.  Often text books or programming books don't present a problem or challenge that someone can get into.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get to solving problems with something like &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt;, try out different problems with different languages.  Get a feel for which ones he enjoys and then jump into the frameworks and make something.&lt;/p&gt;&#xA;" OwnerUserId="11059" LastActivityDate="2010-12-20T15:46:05.650" />
  <row Id="28301" PostTypeId="2" ParentId="28217" CreationDate="2010-12-20T15:48:17.107" Score="0" ViewCount="" Body="&lt;p&gt;I'm closing in on 50, and actually &lt;a href=&quot;http://markfreedman.com/index.php/2010/11/29/returning-to-development-from-management/&quot; rel=&quot;nofollow&quot;&gt;making a return to programming&lt;/a&gt; after being in management for a few years.  I never want to be in management again.  In the long run, I'm aiming to get back into consulting.  I don't mean just contracting (heads-down development), but &lt;em&gt;consulting&lt;/em&gt;.  But, realistically, I may have to first move into more of a leadership, employee position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe someone like you, with your experience, would be extremely valuable in such a role.  Yes, many companies are looking to build their staff with lower priced, young developers, but in my experience, the more enlightened firms are looking to augment that with one or two more experienced lead developers and architects.  The market is flooded with young, very smart developers, but I've discovered that so many of them are extremely green, and truly need direction from experienced leaders / mentors; not only to help them hone their development skills, but also to guide them in developing &lt;em&gt;soft&lt;/em&gt; skills.  As we know, soft skills tend to be a struggle for many in our field.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you want to differentiate yourself, why don't you use your experience to present at user groups and the like.  I know several people much older than us who are &lt;em&gt;extremely&lt;/em&gt; respected, knowledgeable, and in demand because they use speaking as an opportunity to not only share their experiences, but also to market themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do not give up on yourself.  This is a field with unlimited potential, and you can continue to support your family for decades to come.&lt;/p&gt;&#xA;" OwnerUserId="10397" LastActivityDate="2010-12-20T15:48:17.107" />
  <row Id="28302" PostTypeId="2" ParentId="28217" CreationDate="2010-12-20T15:49:39.760" Score="0" ViewCount="" Body="&lt;p&gt;Which management did you do: Administrative, project, or both?  There is a possibility that an alternative could be tried.  There are also technical roles such as Architect that may work if you want to do more of the big design stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for something completely different, you could try to become a consultant that works on contract positions so that you are there for a project and then &quot;move on to the next one&quot; as Jay-Z said in one of his songs.  I'm thinking of Oracle, SAP and other big systems integrations work that can take years to finish and for those with experience they can make some good money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I don't have a family, I am 35 and in some ways in a similar position to you in terms of trying to figure out where to go from here without going into straight management.  Thus I may in your position in a few years. ;)&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-20T15:49:39.760" />
  <row Id="28303" PostTypeId="2" ParentId="28199" CreationDate="2010-12-20T15:54:07.060" Score="3" ViewCount="" Body="&lt;p&gt;This is actually a difficult question to answer reliably. The biggest reason is people like me, who work in custom, in-house applications, where the code never leaves our building. Do we use OO here? I'm not saying. How many other programmers have similar jobs? They're not saying either. We do have job sites, but not all jobs are posted, and not all postings are for real jobs as opposed to recruiters trying to gather lists of names.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if I did say we use OO where I work, does that mean the traditional definition from the linked article: Objects, Classes, Inheritance? Or does it mean that I use objects primarily as a means of organizing code? Or does it mean that I really just program to interfaces and hardly use inheritance at all? I'm still not saying, but which of these really counts as OO?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not even meaningful to ask if OO is useful until the questions above have been answered, let alone dominant.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-20T15:54:07.060" CommentCount="1" />
  <row Id="28304" PostTypeId="2" ParentId="27564" CreationDate="2010-12-20T15:58:52.883" Score="0" ViewCount="" Body="&lt;p&gt;Sorry if this is repeated but there are so many comments i could not read them all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a OO software developer, i would be more than gratefull for a good and functional Static Inheritance mechanism.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-20T15:58:52.883" CommunityOwnedDate="2010-12-20T15:58:52.883" CommentCount="1" />
  <row Id="28305" PostTypeId="2" ParentId="28199" CreationDate="2010-12-20T15:59:47.470" Score="5" ViewCount="" Body="&lt;p&gt;Where are all the developers doing those &quot;70% of programmings&quot;? out of all the developers I know less than 1% are working on Embedded systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, we have 3 options: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I'm unique and all your friends really do embedded programing &lt;/li&gt;&#xA;&lt;li&gt;There are armies of developers locked in a basement somewhere doing those 70% &lt;/li&gt;&#xA;&lt;li&gt;this statistic is made up and the article is bullshit &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;unless I see some evidence that options 1 or 2 are actually true I'm going with option 3.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(BTW, I do not consider modern mobile development embedded programing, and mobile development  is often OO, after all Apple forces you to use *Objective*C to develop for the iPhone)&lt;/p&gt;&#xA;" OwnerUserId="1727" LastActivityDate="2010-12-20T15:59:47.470" CommentCount="4" />
  <row Id="28306" PostTypeId="1" AcceptedAnswerId="28309" CreationDate="2010-12-20T16:05:50.727" Score="2" ViewCount="205" Body="&lt;p&gt;If I want to unit-test some of my javascript functions, would it be more efficient (and doable) to use the already installed PHP unit-testing framework, or should I use a javascript unit-testing framework?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; It seems I have to clarify things a bit. I'm using javascript for form validation. It seems that some logic doesn't work as I want it to be, and I thought to myself that would be a good point to begin to use unit-testing (something that came to my scope only recently). I already began to use SimpleTest on a little project of mine, but never to test logic that is generated client-side. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I know that SimpleTest have the possibility to emulate a browser for example. But I was wondering what other method would they be to unit-test my form validation. While I was searching for idea, I realized that there is also unit-testing framework for javascript, but after a bit of searching on some of the SE sites, I didn't find anything about use of PHP and Javascript Framework together, so I wondered how common such a situation it was, and how do other people manage in such an environment.&lt;/p&gt;&#xA;" OwnerUserId="8594" LastEditorUserId="8594" LastEditorDisplayName="" LastEditDate="2010-12-20T16:36:40.587" LastActivityDate="2010-12-21T03:29:56.630" Title="Can I test effectively javascript functions with a PHP unit-testing framework?" Tags="&lt;best-practices&gt;&lt;php&gt;&lt;unit-testing&gt;&lt;javascript&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="28307" PostTypeId="2" ParentId="28078" CreationDate="2010-12-20T16:06:14.190" Score="2" ViewCount="" Body="&lt;p&gt;Silverlight is probably best described as Microsoft's answer to Flash.  It's the same problem domain, so what makes a good Flash game will also make a good Silverlight game.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No one really knows the future.  All I know at this moment is that not everything makes a good web-application, and not everything makes a good desktop application.  This much I do know:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;WPF will probably stick around for a while.&lt;/li&gt;&#xA;&lt;li&gt;Silverlight is in its infancy, so Microsoft is going to pimp it for a while.  I've heard rumors that it's nicer to work with than Flash, but never having messed with either, I can't say.&lt;/li&gt;&#xA;&lt;li&gt;HTML 5/CSS 3/JavaScript is supposed to be the bees knees, but won't be ready in a truly meaningful way any time this decade.  (Assuming the comittees approve it before 2020, it still needs full browser support and that takes time).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;To choose the platform you are going to pursue you need to get some fundamental answers:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Who are your customers?  (i.e. what's your target market?)&lt;/li&gt;&#xA;&lt;li&gt;Are you planning on making money?  How?&lt;/li&gt;&#xA;&lt;li&gt;What's the time-frame you expect this app to be live before you upgrade it and/or replace it?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you are looking longer than two years to get your first two versions out the door, chances are you are looking too far down the road.  Knowing your target market will help you understand if a platform is even viable.  For example, many mobile devices do not support any kind of plugin in their tiny browsers--that means not only no Silverlight, but no Flash either.  But if you are not targeting mobile devices, it doesn't matter to you.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-20T16:06:14.190" />
  <row Id="28308" PostTypeId="2" ParentId="28199" CreationDate="2010-12-20T16:09:23.453" Score="0" ViewCount="" Body="&lt;p&gt;I think that its important to differenciate a solution obtain by applying an Object Oriented Approach and a solution implemented USING the Object Oriented Paradigm.&#xA;My opinion about a good object oriente piece of software is to combine both solutions. If you think in objects and you respect the object definitions and interactions, and you problem could be adapted to use this structure, then you'll have a code that is flexible and robust. &#xA; But if you use objects to solve a code using a procedural paradigm, you'll end up with some nasty mix that wont take advantage from the Objects pros.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really prefer my code to be Object Oriented, and i've come to realize that at first it could be a bit more annoyng to create a good structure, but when dealing with flexibility and client flash requirements of today, i think it's worth the effort.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-20T16:09:23.453" />
  <row Id="28309" PostTypeId="2" ParentId="28306" CreationDate="2010-12-20T16:10:34.093" Score="3" ViewCount="" Body="&lt;h1&gt;The short answer is no.&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;You cannot &lt;em&gt;effectively&lt;/em&gt; test JavaScript with PHP.  To do it effectively, you need to use JavaScript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More than likely you will have to use a JavaScript unit testing library such as the one used for &lt;a href=&quot;http://www.prototypejs.org/&quot; rel=&quot;nofollow&quot;&gt;Prototype.js&lt;/a&gt;.  Essentially, you need to be able to execute the JavaScript in browser, and get the results of the JavaScript run.  You won't be able to do that from the server side (PHP).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unit testing frameworks are most efficient and useful when you are using the same language to test as you are to write the code in.  For that reason we have PHP unit testing frameworks, Java unit testing frameworks, C#/.Net unit testing frameworks, and yes, JavaScript unit testing frameworks.  A big part of the reason for this is that your unit tests need to examine the results of what your code is doing in the environment where it runs.  SimpleTest runs in the PHP environment, and examines to assert that your PHP functions are doing what you expect.  It doesn't run directly in the client browser, but as all PHP code it runs on the server and generates HTML output.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In order to run and test JavaScript functionality--particularly when the problem might be how a one browser implements it--you need to execute and assert functionality in JavaScript.  Now, you can roll your own JavaScript unit testing framework for your environment, or you can use one that already exists.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The JavaScript lives 100% on the client side.  That's why you didn't see anything about running JavaScript and PHP together--just as you won't find information on Java and JavaScript together (in the same context we are talking here).&lt;/p&gt;&#xA;" OwnerUserId="6509" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-20T19:30:04.047" LastActivityDate="2010-12-20T19:30:04.047" CommentCount="6" />
  <row Id="28310" PostTypeId="2" ParentId="20927" CreationDate="2010-12-20T16:20:47.520" Score="13" ViewCount="" Body="&lt;p&gt;Implement &lt;code&gt;strcpy&lt;/code&gt;, &lt;code&gt;strcmp&lt;/code&gt; and friends.&lt;/p&gt;&#xA;" OwnerUserId="3684" LastActivityDate="2010-12-20T16:20:47.520" CommunityOwnedDate="2011-02-15T14:41:29.790" CommentCount="5" />
  <row Id="28311" PostTypeId="2" ParentId="28306" CreationDate="2010-12-20T16:25:07.987" Score="0" ViewCount="" Body="&lt;p&gt;You could probably hack it in, but I can't see the end result being particularly pretty or easy to use. Are you just looking to use the PHP testing framework to report test results, or are you hoping to call the javascript via the PHP?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I'd use something like qunit; the jquery testing framework. It's very easy to use and lets you use javascript to test javascript within a browser. You can also link it into Rhino (with env.js) to allow for automated headless test runs.&lt;/p&gt;&#xA;" OwnerUserId="7092" LastActivityDate="2010-12-20T16:25:07.987" CommentCount="1" />
  <row Id="28312" PostTypeId="2" ParentId="28199" CreationDate="2010-12-20T16:31:34.280" Score="0" ViewCount="" Body="&lt;p&gt;I don't pretend to know the exact numbers, or even to make a rough guess, but there are many programming projects that do not involve OOP. I work with industrial robots. The programs tend to be fairly simple and straight forward procedural code. The actual robot operating system is even more so. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many of our &quot;tools&quot; we use are OOP based, but they run on PCs and not the robot controller. These include editors, simulations, and utilities. &lt;/p&gt;&#xA;" OwnerUserId="11043" LastActivityDate="2010-12-20T16:31:34.280" />
  <row Id="28313" PostTypeId="1" CreationDate="2010-12-20T16:35:59.837" Score="4" ViewCount="129" Body="&lt;p&gt;Are the default objects supported by &lt;code&gt;My&lt;/code&gt; keyword in VB.net is a kind of singleton? If not, what is the difference?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again is this &quot;default object&quot; feature is something useful? If yes, then why it is not implemented in other languages like C#?&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2011-01-26T02:14:09.700" Title="Are the default objects of VB a type of singleton?" Tags="&lt;vb.net&gt;&lt;singleton&gt;" AnswerCount="2" />
  <row Id="28314" PostTypeId="1" AcceptedAnswerId="28315" CreationDate="2010-12-20T16:38:18.917" Score="36" ViewCount="2318" Body="&lt;p&gt;For example, would you prefer this one-liner&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int median(int a, int b, int c)&#xA;{&#xA;    return (a&amp;lt;b) ? (b&amp;lt;c) ? b : (a&amp;lt;c) ? c : a : (a&amp;lt;c) ? a : (b&amp;lt;c) ? c : b;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or an if/else solution involving multiple return statements?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When is &lt;code&gt;?:&lt;/code&gt; appropriate, and when is it not? Should it be taught to or hidden from beginners?&lt;/p&gt;&#xA;" OwnerUserId="3684" LastActivityDate="2011-03-11T16:40:26.913" CommunityOwnedDate="2011-01-25T19:46:08.053" Title="Is the ternary operator evil?" Tags="&lt;operators&gt;&lt;conditions&gt;" AnswerCount="32" CommentCount="14" FavoriteCount="2" />
  <row Id="28315" PostTypeId="2" ParentId="28314" CreationDate="2010-12-20T16:40:07.013" Score="145" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is the ternary operator evil?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No it's a blessing.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;When is ?: appropriate?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;When it's something so simple you don't want to waste many lines for.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;and when is it not?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;When the readability and clearness of code suffers and a potential for a mistake through insufficient attention increases. With many chained operators, just like in your example.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;The litmus test is when you begin to doubt your code is easily readable and maintainable in the long run. Then don't do it.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-20T16:40:07.013" CommunityOwnedDate="2011-01-25T19:46:08.053" CommentCount="11" />
  <row Id="28316" PostTypeId="2" ParentId="28314" CreationDate="2010-12-20T16:40:36.067" Score="4" ViewCount="" Body="&lt;p&gt;There is nothing wrong with the ternary operator, but it can certainly be misused. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer whichever approach is more readable in a particular situation. There are times when nested ifs are an abomination, too.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-20T16:40:36.067" CommunityOwnedDate="2011-01-25T19:46:08.053" />
  <row Id="28317" PostTypeId="1" AcceptedAnswerId="28321" CreationDate="2010-12-20T16:40:43.383" Score="9" ViewCount="616" Body="&lt;p&gt;So I just started at a new job and inherited some old code that was not horrible, but could use a little refactoring-love.  There is a monochromatic-GUI with an unappealing UI, and in general just an outdated appeal to the software.  So they tasked me to fix one bug and gave me a few weeks to do it.  I fixed it in about a day.  My question is this.  I've got the time &amp;amp; the skill, should I take on updating the wow-factor for the GUI with the remaining time allotted to me?  If I introduce even 1 new bug, I fail at something they didn't ask for.  If I pull it off, I look like the .NET version of Chuck Norris.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, based on a conglomeration of all the excellent advice provided to me, I decided that it is OK to go rogue sometimes, but this was not one of those times.  Even though:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the changes I would be making were purely aesthetic&lt;/li&gt;&#xA;&lt;li&gt;I completely understood the ramifications of making them&lt;/li&gt;&#xA;&lt;li&gt;I would have done a mock-up, branched version for my boss (on my own time) to get his approval first&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;after some thought &amp;amp; prayer, I settled the matter with myself and made peace with laying down a good opportunity.  Almost immediately after that decision was made several managers urgently approached me with a project that they said took dire prescience over what I was working on.  Apparently they had tasked one of their star programmers to do something and after several weeks of banging his head against his cubicle, he was unable to do it.  So, as a last ditch effort, they asked they new guy if he pull it off.  Now I have all the overtime I want to complete a task that seems pretty do-able.  If I fail, I'm no better than their ace-in-the-hole programmer.  If I pull it off, I look like the .NET version of Chuck Norris.  How's that for a fortunate turn of events!&lt;/p&gt;&#xA;" OwnerUserId="5223" LastEditorUserId="5223" LastEditorDisplayName="" LastEditDate="2010-12-22T15:41:39.447" LastActivityDate="2010-12-22T15:41:39.447" Title="When is it OK to flex your skill?" Tags="&lt;productivity&gt;&lt;career-advice&gt;&lt;gui&gt;&lt;work-time&gt;&lt;product-features&gt;" AnswerCount="10" CommentCount="4" FavoriteCount="1" />
  <row Id="28318" PostTypeId="2" ParentId="28314" CreationDate="2010-12-20T16:41:34.667" Score="2" ViewCount="" Body="&lt;p&gt;In my opinion ternary operator is good and better than an if when it covers only one level. Nested conditions inside a ternary operator should be avoided!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have too much nested if / else, you may consider to reengineer your code through patterns and object oriented techniques.&lt;/p&gt;&#xA;" OwnerUserId="10134" LastActivityDate="2010-12-20T16:41:34.667" CommunityOwnedDate="2011-01-25T19:46:08.053" />
  <row Id="28319" PostTypeId="2" ParentId="28314" CreationDate="2010-12-20T16:42:40.060" Score="27" ViewCount="" Body="&lt;p&gt;I think the unnested ternary operator (i.e., a statement where it's used only once) is fine, but if you're nesting more than one, it becomes somewhat hard to read.&lt;/p&gt;&#xA;" OwnerUserId="679" LastEditorUserId="679" LastEditorDisplayName="" LastEditDate="2010-12-21T15:16:16.263" LastActivityDate="2010-12-21T15:16:16.263" CommunityOwnedDate="2011-01-25T19:46:08.053" CommentCount="1" />
  <row Id="28320" PostTypeId="2" ParentId="28314" CreationDate="2010-12-20T16:43:29.030" Score="0" ViewCount="" Body="&lt;p&gt;I like the shortness of the ternary expression. Just like &quot;if...else&quot; statements they can get difficult to read if used in excess, but most of the time they make the code easier to read.&lt;/p&gt;&#xA;" OwnerUserId="8316" LastActivityDate="2010-12-20T16:43:29.030" CommunityOwnedDate="2011-01-25T19:46:08.053" />
  <row Id="28321" PostTypeId="2" ParentId="28317" CreationDate="2010-12-20T16:44:28.173" Score="37" ViewCount="" Body="&lt;p&gt;I think you should go to them with a proposal to make the improvements and see what they say.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're going to be impressed with your productivity because of what you've done already so you've got credibility there but there may be higher priority things they want you to look at and / or consequences to changing the application (retraining for instance) that they'll want to talk through.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's early days so I'd say get the credit for the good work, make the suggestion to them for what you think you can do (and in particularly why it's beneficial to them and the users) which shows you can be proactive, then leave the decision to them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S.  Oh, and double and treble check your fix.  In your first few weeks in particular when you say you've fixed something, you want to be 100% sure.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-20T16:52:58.850" LastActivityDate="2010-12-20T16:52:58.850" CommentCount="6" />
  <row Id="28322" PostTypeId="2" ParentId="28317" CreationDate="2010-12-20T16:46:28.497" Score="9" ViewCount="" Body="&lt;p&gt;If you are looking to impress, I would go back and show that you've fixed the bug in 1 day, instead of the few weeks they've given you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Show them that you Get Stuff Done. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can of course, at the same time, suggest further potential improvements to the code base, which shows you're keen too.&lt;/p&gt;&#xA;" OwnerUserId="8993" LastEditorUserId="8993" LastEditorDisplayName="" LastEditDate="2010-12-20T17:02:55.847" LastActivityDate="2010-12-20T17:02:55.847" />
  <row Id="28323" PostTypeId="2" ParentId="28314" CreationDate="2010-12-20T16:46:40.963" Score="3" ViewCount="" Body="&lt;p&gt;Not appropriate for that code! IMO it should be used once on a line - more than that and it becomes pretty much unreadable. There may be an exception but I've not seen it yet.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-20T16:46:40.963" CommunityOwnedDate="2011-01-25T19:46:08.053" />
  <row Id="28324" PostTypeId="2" ParentId="27564" CreationDate="2010-12-20T16:48:23.887" Score="6" ViewCount="" Body="&lt;p&gt;Clean up &quot;User Contributed Notes&quot; on &lt;a href=&quot;http://php.net&quot; rel=&quot;nofollow&quot;&gt;http://php.net&lt;/a&gt;. They are a real mess sometimes, while being a great value in general.&lt;/p&gt;&#xA;" OwnerUserId="4676" LastEditorUserId="10913" LastEditorDisplayName="" LastEditDate="2010-12-21T01:38:54.463" LastActivityDate="2010-12-21T01:38:54.463" CommunityOwnedDate="2010-12-20T16:48:23.887" CommentCount="1" />
  <row Id="28325" PostTypeId="2" ParentId="28313" CreationDate="2010-12-20T16:48:43.330" Score="6" ViewCount="" Body="&lt;p&gt;It is not a Singleton.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;My&lt;/code&gt; is just a namespace containing static classes, methods and properties that point to other parts of the .NET framework, and provide some additional capabilities (e.g. &lt;code&gt;CopyDirectory&lt;/code&gt;)  Think of it as a set of shortcuts, a speed-dial of sorts.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Visual Basic &lt;a href=&quot;http://www.panopticoncentral.net/archive/2004/04/23/991.aspx&quot; rel=&quot;nofollow&quot;&gt;provides language/compiler support&lt;/a&gt; with the &lt;code&gt;My&lt;/code&gt; keyword.  You can &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms173136%28v=vs.80%29.aspx&quot; rel=&quot;nofollow&quot;&gt;use the &lt;code&gt;My&lt;/code&gt; classes in C#&lt;/a&gt; by adding a reference to Microsoft.VisualBasic.dll, but it is awkward, and not all classes are compatible with C# (they are VB specific).  In C#, unless you want some of the VB capabilities (like &quot;CopyDirectory&quot;), it is more convenient to just reference the .NET framework classes directly, IMO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Visual Basic has a somewhat different language philosophy than C# does.  Originally, VB was to be the &quot;applications&quot; language, and C# was to be the &quot;systems&quot; language.  Since then, the two languages have converged, and the feature sets of the two are almost indistinguishable, with a few notable differences (this being one, XML Literals being another).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am quite certain that, if you asked Eric Lippert or one of the other members of the C# compiler team, they would tell you that implementing new features is a tug-of-war between available resources and feature importance, and that this particular feature just never hit threshold.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Navigate The .NET Framework And Your Projects With The My Namespace&lt;/strong&gt; &lt;br&gt;&#xA;&lt;a href=&quot;http://msdn.microsoft.com/en-us/magazine/cc163680.aspx&quot; rel=&quot;nofollow&quot;&gt;http://msdn.microsoft.com/en-us/magazine/cc163680.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;My Namespace&lt;/strong&gt; &lt;br&gt; &lt;a href=&quot;http://msdn.microsoft.com/en-us/vbasic/ms789188&quot; rel=&quot;nofollow&quot;&gt;http://msdn.microsoft.com/en-us/vbasic/ms789188&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-20T18:10:58.877" LastActivityDate="2010-12-20T18:10:58.877" CommentCount="4" />
  <row Id="28326" PostTypeId="2" ParentId="28317" CreationDate="2010-12-20T16:51:26.620" Score="6" ViewCount="" Body="&lt;p&gt;Don't step into a snake pit if you can avoid it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, don't ever take the initiative to do something before you checked that with your manager/boss. Although they should be happy with it, more often than not they aren't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, when it comes down to GUI design, managers tend to discuss more over that than anything else. In quite a few cases it's the only thing they (believe to) understand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can mention your idea when you tell them the bug is fixed. But I'd just spend another day testing the bug is really fixed, and didn't introduce new ones. Just a matter of being thorough, and spending 2 days on fixing a bug instead of weeks is about just as impressive as spending 1. But you better make very sure you get the first thing on a job very right. Thoroughness has never been seen as a bad feature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might implement some extra automatic tests for the code, that should be pretty much flexing your skill as well, and it is related to your first assignment. Which would be my general answer: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;it's OK to flex your skill when the flexing can be done within the framework of the given assignment.&lt;/p&gt;&#xA;" OwnerUserId="7268" LastActivityDate="2010-12-20T16:51:26.620" CommentCount="4" />
  <row Id="28327" PostTypeId="2" ParentId="28317" CreationDate="2010-12-20T16:51:58.770" Score="16" ViewCount="" Body="&lt;p&gt;Do not change the GUI without consultation - there may be reasons why they still have a monochromatic GUI. Do you know what equipment all your users use? And users hate to have existing working systems change for what they will view as no good reason. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-20T16:51:58.770" CommentCount="2" />
  <row Id="28329" PostTypeId="2" ParentId="28314" CreationDate="2010-12-20T16:54:19.830" Score="1" ViewCount="" Body="&lt;p&gt;It has a place. I've worked at a lot of companies where the skill levels of developers range from terrible to wizard. Since the code has to be maintained, and I won't be there forever, I try to write stuff so that it looks like it belongs there (without looking at the comments with my initials, it is extremely rare for you to be able to look at code I've worked on to see where I made changes), and that someone with less skill than myself can maintain it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;While the ternary operator looks nitziffic and way cool, my experience is that line of code is going to be about impossible to maintain. At my current employer, we have products that have been shipping for almost 20 years. I wouldn't use that example anywhere. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-12-20T16:54:19.830" CommunityOwnedDate="2011-01-25T19:46:08.053" />
  <row Id="28330" PostTypeId="2" ParentId="28314" CreationDate="2010-12-20T16:58:42.167" Score="0" ViewCount="" Body="&lt;p&gt;If ... then ... else tends to emphasize the condition and therfore de-emphasize the operations being conditionally done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the ternary operator is the opposite, it tends to hide the condition and is therfore useful when the operation being done is more important than the condition itself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is the minor technical niggle, in some languages, that they aren't quite interchangeble due to one being a statement and one an expression e.g. conditionally initialising consts in C++&lt;/p&gt;&#xA;" OwnerUserId="10563" LastActivityDate="2010-12-20T16:58:42.167" CommunityOwnedDate="2011-01-25T19:46:08.053" />
  <row Id="28331" PostTypeId="1" AcceptedAnswerId="28339" CreationDate="2010-12-20T17:05:39.707" Score="23" ViewCount="779" Body="&lt;p&gt;I'm a fairly young programmer, and I work at a medium sized company's IT department. I have a coworker, and he is a really good Visual Basic 6 programmer. And I mean really good. Honestly. He can deliver working applications, containing very few bugs, in the time I need to get my first cup of coffee, and boot my machine. He is just that good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thing is, we are working with a team, and his working style is completely antiquated. He doesn't believe in versioning software (if you just make sure your code is correct, you don't need all that nonsense). Doesn't believe in deployment (I can delever a working executable. How that is deployed is for the sysadmins to figure out). Doesn't believe in abstraction. ('if you want to create a subroutine, go ahead, but don't call any subroutines from that subroutine. It gets messy that way, and the code is hard to follow. This way every one can follow every step on the way.' or 'yeah, sure you can use that library to do that for you, but that way you don't really understand what's going on') and certainly doesn't believe in OOP. (we work in VB.net)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He is so good in what he does, he can deliver applications way faster than I can. But it just doesn't work in a team. Our other teammember is quiet, and doesn't like to speak out, though he tends to agree. Our manager thinks I make valid points, but is not a programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a really hard time maintaining programs he has written, and it doesn't make for a good team atmosphere. What do you think is the best thing for me to do?&lt;/p&gt;&#xA;" OwnerUserId="11068" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-21T04:21:59.267" LastActivityDate="2010-12-21T05:39:57.127" Title="Handling my antiquated coworker" Tags="&lt;co-workers&gt;&lt;coding-style&gt;&lt;teamwork&gt;" AnswerCount="12" CommentCount="4" FavoriteCount="8" />
  <row Id="28332" PostTypeId="2" ParentId="28139" CreationDate="2010-12-20T17:06:03.207" Score="0" ViewCount="" Body="&lt;p&gt;Another factor to consider is whether or not there is a co-op program that can let you mix work terms with school terms to further your experience in the field.  This may be found at the state school or the big name school.  In my case I did go to what is a big name near me in the University of Waterloo and thus got some rather cool experiences that I'm not sure I would have had if I had gone to a school that wasn't infamous for its Computer Science program.  I was accepted and had some scholarships that helped cover some of the costs so don't forget to look at scholarships and other possible funding sources for wherever you do choose to apply.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, if you can know you plan on going on to do a Masters look into getting into a research team while you get your Bachelors as that kind of experience may be quite useful for those higher degrees like a Masters or PhD.  I just have my Bachelors but I figured this was worth mentioning.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-20T17:06:03.207" CommunityOwnedDate="2011-01-30T08:37:56.083" />
  <row Id="28333" PostTypeId="2" ParentId="28317" CreationDate="2010-12-20T17:06:29.097" Score="3" ViewCount="" Body="&lt;p&gt;First ask them - why is the UI the way it is? Is there any interest in upgrading it to be more appealing? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing to remember - now is one of the few times you have to set up their expectations. One potential issue with getting things done a lot faster than they asked you to is that next time they will think it takes only one day instead of the weeks they gave you. And one of these days you will actually need the few weeks so think carefully&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before you let them know, you are in control. Once you tell them the cat is out of the bag. &lt;/p&gt;&#xA;" OwnerUserId="7380" LastActivityDate="2010-12-20T17:06:29.097" />
  <row Id="28334" PostTypeId="2" ParentId="28331" CreationDate="2010-12-20T17:11:46.627" Score="2" ViewCount="" Body="&lt;p&gt;Talk to your manager, plain and simple like you did here. There is potential here for growth - if your coworker is good as you say he is it shouldn't take him much convincing to make him start converting to using source control and .Net with proper OO concepts.&lt;/p&gt;&#xA;" OwnerUserId="7380" LastActivityDate="2010-12-20T17:11:46.627" CommentCount="7" />
  <row Id="28335" PostTypeId="2" ParentId="28314" CreationDate="2010-12-20T17:12:50.407" Score="11" ViewCount="" Body="&lt;p&gt;When is ?: appropriate&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When it makes your code more concise and readable. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and when is it not?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When it makes your code unreadable.&lt;/li&gt;&#xA;&lt;li&gt;If you're doing it just to please a refactoring tool like ReSharper and not the person who has to maintain the code&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you have any logic or function calls inside the ternary expression, you're making it horrible to look at.&lt;/p&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-12-20T17:12:50.407" CommunityOwnedDate="2011-01-25T19:46:08.053" />
  <row Id="28336" PostTypeId="2" ParentId="28331" CreationDate="2010-12-20T17:18:00.763" Score="1" ViewCount="" Body="&lt;p&gt;I'd talk to others to get a broader picture of how things look where you are.  Perhaps there are some separations there so that his code doesn't have to mix too much with others as there is the potential to segregate him into his own area for one way that this could be handled though this is more for a higher up like a director or CIO to make rather than a developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may want to talk with him to see what kind of larger systems has he built as there are some big enterprise systems that tend to be a lot of building blocks where spaghetti code can run into the land of, &quot;Oh, that is why OOP can be good!&quot; though this does sometimes take the case where it proves quite useful to see how this can be a useful thing to have in one's toolbox.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apathy may be another suspect to see if that is why he'd reject some things that I'd consider close to fundamental in terms of how I tend to design code but then maybe I've had too much of the Kool-aid.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-20T17:18:00.763" />
  <row Id="28337" PostTypeId="2" ParentId="28331" CreationDate="2010-12-20T17:19:08.890" Score="11" ViewCount="" Body="&lt;p&gt;Don't try to change your colleague. You are describing him as someone able to deliver working software. It's probably too late to integrate it in the team either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you have two choices:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Adapt&lt;/strong&gt; yourself. Maybe with time you will be able to convince him of the utility of a source control system? You will have to increase your &lt;a href=&quot;http://www.uthscsa.edu/gme/documents/Circles.pdf&quot; rel=&quot;nofollow&quot;&gt;circle of influence&lt;/a&gt;. The more resistant to change he is, the more time you will need.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Remove yourself&lt;/strong&gt; from the &lt;code&gt;team&lt;/code&gt;. You have lot of points to justify this. Maybe you should leave it maintain its own applications alone, and dedicate yourself on new stuff.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Remove yourself&lt;/strong&gt; from the &lt;code&gt;company&lt;/code&gt;. Sometimes, this is the only solution.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-12-20T17:19:08.890" CommentCount="2" />
  <row Id="28338" PostTypeId="2" ParentId="28331" CreationDate="2010-12-20T17:19:09.123" Score="2" ViewCount="" Body="&lt;p&gt;If your manager isn't a programmer try and put it in terms that he will understand.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;We should use sourecontrol because if we don't we could have big problems recovering&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It takes me &lt;em&gt;x&lt;/em&gt; amount of time longer because he refuses to follow some fairly basic processes.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;On the other hand, make sure you don't get too caught up in perfection i.e. this is a best practice we must follow it. It's likely your co-worker has a lot to add, you might just have to nudge him in the right direction slowly.&lt;/p&gt;&#xA;" OwnerUserId="10162" LastActivityDate="2010-12-20T17:19:09.123" CommentCount="1" />
  <row Id="28339" PostTypeId="2" ParentId="28331" CreationDate="2010-12-20T17:19:25.947" Score="18" ViewCount="" Body="&lt;p&gt;This sounds like one of those &quot;He's a good guy but...&quot; where you know the truth is coming.  And the truth sounds like he isn't really that good of an engineer.  Good software isn't just about working and development speed.  It's also about the other things you mentioned - maintainability, compatibility, abstraction (for future efficiency), etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, that being said, it sounds like you have a problem developer on your hands.  What's worse for you is that he's proven and probably set in his ways. So what can you do?  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Work around him.&lt;/li&gt;&#xA;&lt;li&gt;Strive to produce your projects on as tight a schedule as he does.&lt;/li&gt;&#xA;&lt;li&gt;And if you can't, produce a &lt;strong&gt;better&lt;/strong&gt; result.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Over time those proven concepts which he dismisses will begin to pay off for you.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if you are forced to work his way, leave.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-20T17:19:25.947" CommentCount="2" />
  <row Id="28340" PostTypeId="2" ParentId="28331" CreationDate="2010-12-20T17:21:05.463" Score="2" ViewCount="" Body="&lt;p&gt;Seems like you coworker have never developed in a team. That kind of solo guru kind of partner does not allow a good group dynamic.&#xA;So tell your superior about it and try to discuss pro and cons with your partner fevor doing it. If you could do it the nicer way great, but if he declines, go up in the cahin of command&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-20T17:21:05.463" CommentCount="1" />
  <row Id="28341" PostTypeId="2" ParentId="5259" CreationDate="2010-12-20T17:21:14.707" Score="1" ViewCount="" Body="&lt;p&gt;If I had formerly worked with C++ on a regular basis, I wouldn't be very excited about working with C# or Java either. It would seem like having to drive a car with an automatic transmission when you'd prefer a manual. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The rest of the answer depends on why your friend wants to learn C# or Java. If it's just to get a job, I don't think you can expect much in the way of excitement no matter what you do. In any case, he'll need something useful (to himself) to work on to really get it.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-20T17:21:14.707" CommentCount="1" />
  <row Id="28342" PostTypeId="2" ParentId="28331" CreationDate="2010-12-20T17:29:05.867" Score="3" ViewCount="" Body="&lt;p&gt;I'll be honest, you're not painting a good picture of him. Archaic methods, hard-to-maintain software, stubborn to new ways of working, against abstraction etc etc&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From what you've said, if he is producing largely bug-free software FASTER than you are without use of reusable libraries and design patterns aimed at rapid application development then it says more about yourself, than him...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;..about him..yeh, find a way to NOT work with him and NOT be associated with his work. Seems like he has a typical selfish attitude towards his work. You can't work with someone like that, you can only observe them work and tidy up after them (like you currently are).&lt;/p&gt;&#xA;" OwnerUserId="9682" LastActivityDate="2010-12-20T17:29:05.867" CommentCount="3" />
  <row Id="28343" PostTypeId="2" ParentId="28331" CreationDate="2010-12-20T17:42:44.407" Score="5" ViewCount="" Body="&lt;p&gt;If I were you I would set up my own source control system right now.  Start using it for everything you code, and administer it so that your other team members have accounts and can access it.  Your other coworkers will likely be enthusiastic about using it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your colleague who does not believe in such practices may not be easy to persuade.  However, any code that you are forced to work with that was written by him should go into version control so that you can work with it.  When he needs access to your changes, send him a simple step by step set of instructions on how to pull your code from the repository.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't have to be combative or go above him to get him involved in more modern processes.  Sometimes just going your own way and being a leader with action is more effective than trying to convince somebody with words.  Baby-steps.  If he starts being more responsive to the version control, start refactoring subroutines and adding unit tests to protect against the changes.  Automate the tests and show him how he can access the results as soon as he makes checkins.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of times people are just resistant because they don't like change.  But if the changes are presented to them in a gradual manner and in a way that makes it easy for them to follow, often they will see the benefits very quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Above all, make it all as simple as possible for him (Keep It Simple Stupid).  Allow him to start following these practices on his own terms.  But don't let it drag you down.&lt;/p&gt;&#xA;" OwnerUserId="5739" LastActivityDate="2010-12-20T17:42:44.407" />
  <row Id="28344" PostTypeId="2" ParentId="28139" CreationDate="2010-12-20T17:45:54.423" Score="0" ViewCount="" Body="&lt;p&gt;Are you kidding me? With the TRASH I've seen some of these courses teach, employers should be using where you graduated from as a reason &lt;em&gt;not&lt;/em&gt; to hire you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope employers in the coming years begin to completely disregard your education based on where it was taught.&lt;/p&gt;&#xA;" OwnerUserId="9682" LastActivityDate="2010-12-20T17:45:54.423" CommunityOwnedDate="2011-01-30T08:37:56.083" />
  <row Id="28345" PostTypeId="2" ParentId="28314" CreationDate="2010-12-20T17:47:02.453" Score="1" ViewCount="" Body="&lt;p&gt;I do not think that the ternary operator is evil.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a gotcha that had me stumped, though.  I was a C programmer for many (10+) and in the late 1990s I moved into web based application programming.  As a web programmer, I soon ran across PHP which also has a ternary operator.  I had a bug in a PHP program which I finally traced to a line of code with a nested ternary operator.  It turns out that the PHP ternary operator associated left to right but the C ternary operator (which I was used to) associates right to left.&lt;/p&gt;&#xA;" OwnerUserId="7222" LastActivityDate="2010-12-20T17:47:02.453" CommunityOwnedDate="2011-01-25T19:46:08.053" />
  <row Id="28346" PostTypeId="1" CreationDate="2010-12-20T18:00:18.127" Score="2" ViewCount="129" Body="&lt;p&gt;We are in the process of building a web application for a client and they have inquired about owning the code for the site. We would like to issue a license agreement to the client for use of the code if we for any reason we are no longer working on the project.   We would like to have ownership of the code but allow them use wherever they see fit, the only limitation we would like to have is the sale of the code. The are a company with several employees and will only be using the application within their company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would such a license agreement look like?&lt;/p&gt;&#xA;" OwnerUserId="11073" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-20T19:38:34.243" LastActivityDate="2010-12-20T19:38:34.243" Title="Software License Web Application" Tags="&lt;web-development&gt;&lt;web-applications&gt;&lt;license&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="28347" PostTypeId="2" ParentId="28346" CreationDate="2010-12-20T18:18:30.133" Score="1" ViewCount="" Body="&lt;p&gt;They don't really want ownership of your code.  What they really want is the peace of mind they get by having the code in-house, just in case you go belly-up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;License the source code to them as a company.  They don't get resell rights, and they're not allowed to give or sell the code or any parts of it to anyone else.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure there is an additional charge for this.  It is an additional benefit, after all.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-20T18:18:30.133" CommentCount="2" />
  <row Id="28348" PostTypeId="2" ParentId="28236" CreationDate="2010-12-20T18:21:45.093" Score="1" ViewCount="" Body="&lt;p&gt;You can install as many application servers and database servers you want on one system. You just need to make sure that each application and database server uses unique ports or else you will have port conflicts. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I agree that this question should be located on StackOverflow.com and not here&lt;/p&gt;&#xA;" OwnerUserId="8354" LastActivityDate="2010-12-20T18:21:45.093" />
  <row Id="28349" PostTypeId="2" ParentId="28346" CreationDate="2010-12-20T18:22:35.840" Score="0" ViewCount="" Body="&lt;p&gt;You're going to need a custom license. Free licenses don't cover your situation, and commercial licenses can't be reused. You'll need your own. So talk to a lawyer.&lt;/p&gt;&#xA;" OwnerUserId="2406" LastActivityDate="2010-12-20T18:22:35.840" />
  <row Id="28350" PostTypeId="2" ParentId="8427" CreationDate="2010-12-20T18:26:00.653" Score="2" ViewCount="" Body="&lt;p&gt;Hi all, Ohloh now belongs to Black Duck Software as of a couple of months ago. I'm the new Product Manager for Ohloh. I've known about Ohloh for many years, and always thought the site had great potential. And to reiterate what Stephen said above, Ohloh is not a forge / project hosting site, but rather a social site. We're just getting started making some much needed improvements to Ohloh (Sprint 1 deployed last week, Sprint 2 on track for this week).&lt;/p&gt;&#xA;" OwnerUserId="11077" LastActivityDate="2010-12-20T18:26:00.653" />
  <row Id="28351" PostTypeId="1" AcceptedAnswerId="28438" CreationDate="2010-12-20T18:34:03.490" Score="3" ViewCount="258" Body="&lt;p&gt;Here is a little background information.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I have been working for Java 10 years.&lt;/li&gt;&#xA;&lt;li&gt;The product I am working on went to live about 3 years ago. Now, the product is getting stable.&lt;/li&gt;&#xA;&lt;li&gt;After all the post-product drama, I gained a lot of knowledge about Oracle &amp;amp; SQL.&#xA;People(mainly management) were desperated enough to give me deep oracle-related task over DBAs. I admit I considered becoming DBA but eventually decided to remain as a programmer.&lt;/li&gt;&#xA;&lt;li&gt;DBAs &amp;amp; Management are demanding all the DB &amp;amp; Query related task back to DBA, which makes me a bit sad. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;In short, I anticipate a lot of time next year&lt;/strong&gt;.&#xA;What would you do to improve your skillset??&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am thinking to upgrade my Java version(Not from experience though, we are using JDK1.5) to 1.6 getting certificate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any good idea from fellow developers??&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-----------Edit ---------------------&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How about data modeling for application? Do you guys think it is developer role??&lt;/p&gt;&#xA;" OwnerUserId="6924" LastEditorUserId="6924" LastEditorDisplayName="" LastEditDate="2010-12-20T21:04:07.650" LastActivityDate="2010-12-20T23:10:52.283" Title="Skillset improvement in coming new year" Tags="&lt;self-improvement&gt;&lt;great-programmer&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="1" />
  <row Id="28352" PostTypeId="1" AcceptedAnswerId="28354" CreationDate="2010-12-20T18:42:43.143" Score="4" ViewCount="135" Body="&lt;p&gt;I have an abstract class that will have many implementors. There are, of course, many places to put abstract classes in a Java package structure. Should the abstract class be in the same package as the implementors, or should it be in an &quot;abstract package&quot; package, or somewhere else? Please explain why you would place it there - I'm looking for design discussion, not just what I should do in this particular case.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2010-12-21T13:46:28.390" LastActivityDate="2010-12-21T13:46:28.390" Title="Abstract classes in package structure" Tags="&lt;java&gt;&lt;design&gt;&lt;packages&gt;" AnswerCount="1" />
  <row Id="28353" PostTypeId="2" ParentId="28351" CreationDate="2010-12-20T18:49:57.250" Score="5" ViewCount="" Body="&lt;p&gt;To me, &quot;improving your skillset&quot; has absolutely nothing to do with specific languages or technologies.  Instead, it is improving your ability to write &lt;em&gt;in general.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a metaphor:&#xA;If this field were like music (and it is), &quot;improving your skillset&quot; by getting JDK 1.6 instead of 1.5 is like learning the harmonic minor scale in the key of a.  However, if you dedicate your time to pattern recognition, fore-sight, and design, you just learn to spot a harmonic minor scale in &lt;strong&gt;&lt;em&gt;ANY&lt;/em&gt;&lt;/strong&gt; key.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Great musicians, like great software developers, aren't restricted to a set a tools.&lt;/p&gt;&#xA;" OwnerUserId="4607" LastActivityDate="2010-12-20T18:49:57.250" CommentCount="5" />
  <row Id="28354" PostTypeId="2" ParentId="28352" CreationDate="2010-12-20T18:51:15.903" Score="5" ViewCount="" Body="&lt;p&gt;I would put it (like any other class) in the package it belongs most from it's content. That mostly - but not everytime - means, that you put it in the same package as implementing classes. Sometimes you put an abstract class in the same package as some other class using this abstract class - it's part of the API of the other class. Implementing classes could be somewhere else in that case. I never use extra packages for abstract classes or other stuff like exception-classes or so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why so? I prefer to use package-structure as building a system for categorizing the content of the software, instead as using it for implementation details. The abstract-class may become later a valid non-abstract-class without breaking the API. But if I have to move it's package it would break again old code. Unnessecary I think.&lt;/p&gt;&#xA;" OwnerUserId="7654" LastActivityDate="2010-12-20T18:51:15.903" />
  <row Id="28355" PostTypeId="2" ParentId="28351" CreationDate="2010-12-20T18:55:06.810" Score="1" ViewCount="" Body="&lt;p&gt;DexterW made some good points, but if you still want to focus on expanding options for using  your current skill set, with mobile development needs (corporate as well as general public) being so hot, why don't you consider learning some Android development?  Java is the core language used for that.&lt;/p&gt;&#xA;" OwnerUserId="10397" LastActivityDate="2010-12-20T18:55:06.810" CommentCount="1" />
  <row Id="28356" PostTypeId="1" AcceptedAnswerId="28361" CreationDate="2010-12-20T19:01:55.803" Score="18" ViewCount="587" Body="&lt;p&gt;It's probably a silly question, I just hope it's not off topic, but how do you clean your Whiteboard?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got that &quot;EXPO WhiteBoard Cleaner&quot;, but there always some ghost form the last schema that remain on the board, like on this site's theme.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a magic receipt or something?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found this &lt;a href=&quot;http://rumkin.com/reference/whiteboard/cleaners.php&quot; rel=&quot;nofollow&quot;&gt;exhaustive test&lt;/a&gt; of many of the possible cleaner with whiteboard markers &lt;strong&gt;and&lt;/strong&gt; others things.&lt;/p&gt;&#xA;" OwnerUserId="19" LastEditorUserId="19" LastEditorDisplayName="" LastEditDate="2011-01-06T21:24:25.317" LastActivityDate="2011-01-06T21:24:25.317" ClosedDate="2010-12-20T22:28:14.223" Title="How to clean the Whiteboard?" Tags="&lt;whiteboard&gt;&lt;how-to&gt;" AnswerCount="11" CommentCount="5" FavoriteCount="0" />
  <row Id="28358" PostTypeId="2" ParentId="28356" CreationDate="2010-12-20T19:07:32.527" Score="10" ViewCount="" Body="&lt;p&gt;We're using normal windows glass cleaner. Results are very good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We also have some alcohol for when someone use the wrong type of markers on the white board. ;)&lt;/p&gt;&#xA;" OwnerUserId="9115" LastActivityDate="2010-12-20T19:07:32.527" CommentCount="3" />
  <row Id="28359" PostTypeId="2" ParentId="28314" CreationDate="2010-12-20T19:07:55.817" Score="6" ViewCount="" Body="&lt;p&gt;An example (IMHO) of a valid use:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;printf(&quot;Success in %d %s\n&quot;, nr_of_tries, (nr_of_tries == 1 ? &quot;try&quot; : &quot;tries&quot;));&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This results in more readable code than having 2 distinct print statements.&#xA;Nested examples depend: (understandable ? yes : no)&lt;/p&gt;&#xA;" OwnerUserId="8911" LastActivityDate="2010-12-20T19:07:55.817" CommunityOwnedDate="2011-01-25T19:46:08.053" CommentCount="2" />
  <row Id="28360" PostTypeId="2" ParentId="28356" CreationDate="2010-12-20T19:10:09.880" Score="11" ViewCount="" Body="&lt;p&gt;I've had a lot of luck using just isopropyl alcohol on marks that have been left on for months. Takes a little elbow grease but the marks come off.&lt;/p&gt;&#xA;" OwnerUserId="1274" LastActivityDate="2010-12-20T19:10:09.880" CommentCount="1" />
  <row Id="28361" PostTypeId="2" ParentId="28356" CreationDate="2010-12-20T19:15:19.247" Score="16" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://archive.meguiarsonline.com/forums/photopost/data/731/MakitaRotaryBuffer9227C.jpg&quot; alt=&quot;Rotary buffer?&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="8641" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-20T19:32:11.470" LastActivityDate="2010-12-20T19:32:11.470" CommentCount="2" />
  <row Id="28362" PostTypeId="2" ParentId="28351" CreationDate="2010-12-20T19:17:44.467" Score="2" ViewCount="" Body="&lt;p&gt;In your position I would have a very close look on &lt;a href=&quot;http://en.wikipedia.org/wiki/Java_Persistence_API&quot; rel=&quot;nofollow&quot;&gt;the JPA technology&lt;/a&gt; which is a bridge between objects and database tables.  Very few people have &lt;em&gt;both&lt;/em&gt; the hardcore Java experience, as well as the hardcore database experience needed to understand, analyze and &lt;em&gt;improve&lt;/em&gt; this layer in a production setting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally it is part of recent versions of Java EE, which makes it very relevant to a Java EE team as this is essentially the backend engine.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-20T19:17:44.467" CommentCount="2" />
  <row Id="28363" PostTypeId="2" ParentId="24936" CreationDate="2010-12-20T19:27:53.967" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I've been developing concurrent&#xA;  systems for several years now, and I&#xA;  have a pretty good grasp on the&#xA;  subject despite my lack of formal&#xA;  training (i.e. no degree). &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Many of best programmers I know didn't finish the University. &#xA;As for me I studied Philosophy.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;C/C++, C#, Java, etc.). In particular,&#xA;  it can be near impossible to recreate&#xA;  conditions that happen readily on one&#xA;  system in your development&#xA;  environment.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;yes&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;* How do you figure out what can be made concurrent vs. what has to be&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;  &#xA;  &lt;p&gt;sequential?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;we usually start with a 1000 miles high metaphor to clarify our architecture to ourselves (firstly) and to others (secondly).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When we faced that problem, we always found a way to limiting the visibility of concurrent objects to non concurrent ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lately I discovered Actors in scala and I saw that my old solutions were a kind of &quot;miniactors&quot;, much less powerful than scala ones. So my suggestion is to start from there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another suggestion is to skip as many problems as possible: for example we use centralised cache (terracotta) instead of keeping maps in memory, using inner class callbacks instead of synchronised methods, sending messages instead of writing shared memory etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With scala it's all much easier anyway.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;* How do you reproduce error conditions and view what is happening&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;  &#xA;  &lt;p&gt;as the application executes?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No real answer here. We have some unit test for concurrency and we have a load test suite to stress the application as much as we can.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;* How do you visualize the interactions between the different&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;  &#xA;  &lt;p&gt;concurrent parts of the application?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Again no real answer: we design our Metaphor on the whiteboard and we try to make sure there are no conflicts on the architectural side.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Arch here I mean the Neal Ford's definition: Sw Architecture is everything that will be very hard to change later.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;programming leads me to believe you&#xA;  need a different mindset than you do&#xA;  with sequential programming.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Maybe but for me it's simply impossible to think in a parallel way, so better design our software in a way that doesn't require parallel thinking and with clear guardrails to avoid crashes between concurrency lanes.&lt;/p&gt;&#xA;" OwnerUserId="9115" LastActivityDate="2010-12-20T19:27:53.967" />
  <row Id="28364" PostTypeId="2" ParentId="28356" CreationDate="2010-12-20T19:31:13.097" Score="0" ViewCount="" Body="&lt;p&gt;At some point, they get old and used enough that you have to &lt;strong&gt;resurface&lt;/strong&gt; them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's &lt;a href=&quot;http://www.christianschoolproducts.com/articles/2009-June/Departments/Save-Money-by-Resurfacing-Whiteboards.htm&quot; rel=&quot;nofollow&quot;&gt;one link&lt;/a&gt; that talks about it, but you can &lt;a href=&quot;http://www.google.com/search?q=resurfacing+whiteboard&amp;amp;sourceid=ie7&amp;amp;rls=com.microsoft%3aen-US&amp;amp;ie=utf8&amp;amp;oe=utf8&amp;amp;rlz=&quot; rel=&quot;nofollow&quot;&gt;Google&lt;/a&gt; for a lot of different options.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-12-20T19:31:13.097" />
  <row Id="28365" PostTypeId="2" ParentId="28356" CreationDate="2010-12-20T19:33:26.730" Score="2" ViewCount="" Body="&lt;p&gt;I had success cleaning caked-black, Sharpie-defaced white boards with xylene.  I'm guessing any nonpolar solvent (carbon tetrachloride, acetone, even alcohol) would make some progress.  Remember, though: there's no such thing as a nontoxic solvent, so keep the doors and windows open while you're working.&lt;/p&gt;&#xA;" OwnerUserId="7397" LastActivityDate="2010-12-20T19:33:26.730" CommentCount="2" />
  <row Id="28366" PostTypeId="2" ParentId="20927" CreationDate="2010-12-20T19:35:44.603" Score="16" ViewCount="" Body="&lt;p&gt;&quot;Draw for me on the whiteboard the design of the last project you worked on, without revealing me any sensitive detail.&quot;&lt;/p&gt;&#xA;" OwnerUserId="9115" LastActivityDate="2010-12-20T19:35:44.603" CommunityOwnedDate="2011-02-15T14:41:29.790" CommentCount="9" />
  <row Id="28368" PostTypeId="2" ParentId="28238" CreationDate="2010-12-20T19:46:29.530" Score="1" ViewCount="" Body="&lt;p&gt;First of all. LOL! Theres NO REASON to avoid else, at all. Its NOT bad practice in any way, shape or form.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If anything the code should be&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(!IsLoggedIn) { ShowBadLoginOrNoAccessPage(); return }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Theres no two ifs there and it has no else. This is what i do in all my apps except one in which i throw an exception. The exception is caught in my function which checks the url for the proper page to show (or alternatively i can put the catch/check in asp.net error function). It prints out a generic page that says not authorize or whatever message i use in the exception (i always check the type of exception and set the http status code).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Edit- as shown in ammoQ example two ifs is ridiculous. &lt;em&gt;Really&lt;/em&gt; else is just as good or better then an if. If anything ifs are to be avoided (although i personally dont. But i do use return and break a lot) as its been said more code paths increase the likelihood of bugs. See &lt;a href=&quot;http://www.ndepend.com/Metrics.aspx#CC&quot; rel=&quot;nofollow&quot;&gt;Cyclomatic Complexity&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Edit 2- If you are worried about if/else usage. I'll also note that my preference is to put the shortest code block at top such as &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(cond == false) {&#xA;    a()&#xA;    b()&#xA;    c()&#xA;    onetwothree()&#xA;}&#xA;else&#xA;{&#xA;    a()&#xA;    b()&#xA;    c()&#xA;    more()&#xA;    onetwothree()&#xA;    code()&#xA;    longer()&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Rather then&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(cond) &#xA;{&#xA;    a()&#xA;    b()&#xA;    c()&#xA;    more()&#xA;    onetwothree()&#xA;    code()&#xA;    longer()&#xA;}&#xA;else&#xA;{&#xA;    a()&#xA;    b()&#xA;    c()&#xA;    onetwothree()&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2528" LastEditorUserId="2528" LastEditorDisplayName="" LastEditDate="2010-12-20T19:54:54.547" LastActivityDate="2010-12-20T19:54:54.547" />
  <row Id="28369" PostTypeId="2" ParentId="28356" CreationDate="2010-12-20T19:47:25.487" Score="2" ViewCount="" Body="&lt;p&gt;Avoid using the wipes or spray as long as you can - I find that after you've used them you get more ghosting (the surface is less shiny) and you have to use them more often. Elbow grease and the regular whiteboard eraser is your best bet. While you're doing an office-wide clean, I bet you notice, as I do, that some people can't be allowed certain colours - whatever stain is most prominent on that board, do some swapping around. I'm not sure if it's about how hard they press or how fast/slow they draw, but just moving the green marker from Office A to Office B can really reduce the crappiness factor of the whiteboards in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, wash your whiteboard erasers with soap and water at least once a year, and leave them to dry thoroughly before using them again. If your office will be empty the last week of December, this is a great time to clean the boards and the erasers.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-12-20T19:47:25.487" />
  <row Id="28370" PostTypeId="2" ParentId="28317" CreationDate="2010-12-20T19:52:16.753" Score="2" ViewCount="" Body="&lt;p&gt;&quot;It's easier to get forgiveness than it is to get permission.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, if you try to get permission for all the things you need to get done, you're going to have a very unsatisfying career.  A little initiative goes a long way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides that, people love criticizing ideas.  They're not so good at criticizing results.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-20T19:52:16.753" CommentCount="1" />
  <row Id="28371" PostTypeId="2" ParentId="28356" CreationDate="2010-12-20T19:57:35.647" Score="0" ViewCount="" Body="&lt;p&gt;Acetone will work on some, but spot check it in a corner to make sure it's not also going to attack the board itself. However, any solvent (acetone, the ammonia in window cleaner, etc) will generally shorten the life of the board more quickly for the cheaper boards. I have nothing to back it up, but I suspect that because acetone is the solvent used inside most of the markers, this is what causes the ghosting you mention. Just the act of writing on it is causing the solvent to act on the board because it has a slight amount of time to act on the board before it evaporates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best answer is to erase your boards at the end of every day or every meeting. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Glass and porcelain boards are much less likely to have this problem than the much cheaper plastic surfaced boards. Unfortunately, the plastic boards are also lighter and are therefore easier to hang anywhere you want them or to use as portable boards. If they fall, they won't be hurt and won't hurt anyone either. That is unless you've gotten a plastic board with a heavy metal frame.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The plastic boards have life span and there will come a day when they can't be cleaned very well anymore because they have lost their magic coating. The answer is to deal with it or to get new ones. What follows from that is don't spend a lot of money on a plastic board.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-12-20T19:57:35.647" />
  <row Id="28372" PostTypeId="2" ParentId="28356" CreationDate="2010-12-20T19:59:31.620" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.mrclean.com/en_CA/magic-eraser.do&quot; rel=&quot;nofollow&quot;&gt;Mr Clean Magic Eraser&lt;/a&gt;. Seriously. No sprays needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For really old writing, scribble over it with a fresh marker first and then apply the eraser.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-20T19:59:31.620" CommentCount="2" />
  <row Id="28373" PostTypeId="2" ParentId="28351" CreationDate="2010-12-20T19:59:43.213" Score="1" ViewCount="" Body="&lt;p&gt;From my experience, the best way to improve yourself is to learn something completely unrelated to your everyday job, something from the other universe. As a java developer, I'd probably take a closer look at functional languages (e.g. Haskell) to improve my mindset, rather than just &quot;skillset&quot;. Another, less radical suggestion, would be to learn Scala, so that you can test out new programming paradigms without leaving your familiar IDE.&lt;/p&gt;&#xA;" OwnerUserId="9144" LastActivityDate="2010-12-20T19:59:43.213" CommentCount="1" />
  <row Id="28374" PostTypeId="2" ParentId="28317" CreationDate="2010-12-20T20:03:39.247" Score="2" ViewCount="" Body="&lt;p&gt;Go for it.  Take a couple days (&lt;em&gt;not too long&lt;/em&gt;) and tweak &lt;em&gt;part&lt;/em&gt; of the interface.  Dont use production code obviously, use its own copy/branch so you arent messing with anyone's work.  While its certainly possible that the GUI is the way it is for a specific reason, its also just as likely that its the way it is because they simply suck at GUI design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After you've made a few changes, show your manager.  Now's the fun part.  They'll either like it and not get mad, or not like it and get mad.  Either way, you'll learn what level of initiative is acceptable at that company.  If they do get mad, being relatively new, they &lt;em&gt;probably&lt;/em&gt; wont fire you because you only took a couple of days and did fix that other problem (&lt;em&gt;can you live with the risk?&lt;/em&gt;).  On the other hand, if they like it, you just got yourself some 'programmer cred'.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-20T20:03:39.247" />
  <row Id="28375" PostTypeId="2" ParentId="20927" CreationDate="2010-12-20T20:23:47.810" Score="0" ViewCount="" Body="&lt;p&gt;I usually let them sketch a block diagram of the last system they've worked on, asking about the relations between the blocks and than let them elaborate on the block they were working/in charge on. You can learn many from this exercise, like how one looks beyond his small domain, how much is it important to him to know 'where' he is acting, also you can learn about the role he was playing, was it a key or side role.&lt;/p&gt;&#xA;" OwnerUserId="8410" LastActivityDate="2010-12-20T20:23:47.810" CommunityOwnedDate="2011-02-15T14:41:29.790" />
  <row Id="28376" PostTypeId="1" CreationDate="2010-12-20T20:26:29.897" Score="3" ViewCount="219" Body="&lt;p&gt;The first abuse that comes to my mind in C is: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#define if while &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But at the same time it is extremely handy and powerful when used correctly. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something similar happens with Common Lisp macros. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why doesn't all the programming languages support macros like this and what are the alternatives? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it they are considered harmful?&lt;/p&gt;&#xA;" OwnerUserId="82" LastActivityDate="2010-12-20T20:42:40.757" Title="Is macros support in a programming language considered harmful ?" Tags="&lt;language-design&gt;&lt;c&gt;&lt;lisp&gt;&lt;macros&gt;&lt;considered-harmful&gt;" AnswerCount="3" CommentCount="3" />
  <row Id="28377" PostTypeId="1" AcceptedAnswerId="28398" CreationDate="2010-12-20T20:31:26.023" Score="6" ViewCount="437" Body="&lt;p&gt;I recently worked on a prototype of a new system using Sketchflow, and now some key stakeholders are pushing for a sketched look &amp;amp; feel in the final product. To make matters worse, the people viewing the prototype were asked to provide feedback on the sketched look &amp;amp; feel by way of a fairly leading survey question, to which 80% of the responses were positive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's for an enterprise application that will mostly be for internal clients, but is also intended to be used by some external clients.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main reasons I have for it thinking it's a bad idea are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It doesn't look polished or professional&lt;/li&gt;&#xA;&lt;li&gt;The significant effort involved in skinning an actual application in the sketched style&lt;/li&gt;&#xA;&lt;li&gt;The sketched style doesn't make efficient use of screen real-estate&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've been trying to figure out what the appeal could possibly be, and the only thing I can come up with is that people are attracted to the simplicity of it -- especially when compared with the existing system(s) it will be replacing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can anyone point me in the direction of evidence of why using a sketch look &amp;amp; feel is a bad idea? Ideally something based on UI research. I'm worried that my voice isn't going to be listened to unless I can point to something concrete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;[Edit]&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I should probably add that the difficulty of skinning the application is compounded by the fact that it is intended to be delivered as one or more Silverlight webparts in a Sharepoint site. Getting a consistent sketched look &amp;amp; feel across both technologies could be very difficult. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;[Edit]&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just in case anyone's not sure about what a Sketchflow prototype looks like (and therefore what the people in question are asking for) they're essentially asking for a production application to have a pencil-sketch wireframe look &amp;amp; feel.&lt;/p&gt;&#xA;" OwnerUserId="11086" LastEditorUserId="11086" LastEditorDisplayName="" LastEditDate="2010-12-20T23:07:02.350" LastActivityDate="2010-12-21T11:25:00.863" Title="How do I convince my users not to use a sketch UI?" Tags="&lt;mockups&gt;&lt;usability&gt;" AnswerCount="7" CommentCount="7" />
  <row Id="28378" PostTypeId="2" ParentId="28376" CreationDate="2010-12-20T20:33:17.093" Score="1" ViewCount="" Body="&lt;p&gt;I don't think there is a specific reason why they aren't supported in some languages, same as why some are case sensitive and some aren't. No real reason usually, just a decision that was made.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BUT the reason they aren't included definitely isn't security. The &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#define X Y&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;statement changes all X's to Y's at compile time. If you can change the #define statements, you could just copy/replace the source you were interested in changing and compile again.&lt;/p&gt;&#xA;" OwnerUserId="5286" LastActivityDate="2010-12-20T20:33:17.093" />
  <row Id="28379" PostTypeId="1" AcceptedAnswerId="28403" CreationDate="2010-12-20T20:33:17.353" Score="22" ViewCount="372" Body="&lt;p&gt;I am looking for a website where I can post code snippets and have them commented/reviewed by others.   Does such a site exit?&lt;/p&gt;&#xA;" OwnerUserId="602" LastEditorUserId="602" LastEditorDisplayName="" LastEditDate="2010-12-21T17:13:27.393" LastActivityDate="2011-02-22T17:44:42.903" Title="Place to have my code reviewed by others" Tags="&lt;recommendations&gt;&lt;code-reviews&gt;&lt;comments&gt;" AnswerCount="5" CommentCount="11" FavoriteCount="7" />
  <row Id="28380" PostTypeId="2" ParentId="28317" CreationDate="2010-12-20T20:33:53.487" Score="1" ViewCount="" Body="&lt;p&gt;I am in a similar boat. First I would avoid changing the GUI at all. One answer says that if you make it harder the users will hate you, I say that if you make it easier, they will hate you as well. While doing some under the hood refractors may seem like the way to go, check with your boss. Speeding up the application by 50% may be great but they will always remember that one bug you introduced that took out production for half an hour.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My suggestion is to ask your boss before you change the code. If you still want to come off as someone who takes initiative, go back and retroactively add unit tests. This will look great, help you in the future and be completely safe.&lt;/p&gt;&#xA;" OwnerUserId="9274" LastActivityDate="2010-12-20T20:33:53.487" />
  <row Id="28383" PostTypeId="2" ParentId="28379" CreationDate="2010-12-20T20:37:39.530" Score="0" ViewCount="" Body="&lt;p&gt;I've not come across anything that is specifically designed for that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The forums at &lt;a href=&quot;http://forum.codecall.net/&quot; rel=&quot;nofollow&quot;&gt;CodeCall&lt;/a&gt; are places where people ask for help with their code, so I would say it is an appropriate place to ask for comments and refactoring help.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-12-20T20:37:39.530" />
  <row Id="28384" PostTypeId="2" ParentId="28379" CreationDate="2010-12-20T20:40:04.387" Score="9" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://refactormycode.com/&quot; rel=&quot;nofollow&quot;&gt;RefactorMyCode.com&lt;/a&gt;?&#xA;I've never used it, but it looks promising.&lt;/p&gt;&#xA;" OwnerUserId="314" LastActivityDate="2010-12-20T20:40:04.387" />
  <row Id="28385" PostTypeId="2" ParentId="28376" CreationDate="2010-12-20T20:40:59.860" Score="11" ViewCount="" Body="&lt;p&gt;I am of the opinion that if a language has macros, they should be a well planned out and integral part of the &lt;em&gt;language&lt;/em&gt; and not of the &lt;em&gt;compiler&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example, Lisp's macro system is a very powerful integrated language feature and is subject to all the rules and regulations of Lisp itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Counter-example, C/C++ macro system is separate from the language and built into the compiler.  The result is that you are not limited to the constraints of your language and can create invalid code and redefine language specific keywords.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day, there are several languages that have no macro feature--but those fatures are not missed as much.  It all depends on how expressive a language is, and whether it has alternative approaches to meta-programming.  Meta-programming is just a way of ensuring that when you do X, X is done the same way all throughout the application.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-20T20:40:59.860" CommentCount="1" />
  <row Id="28386" PostTypeId="2" ParentId="28377" CreationDate="2010-12-20T20:41:21.773" Score="2" ViewCount="" Body="&lt;p&gt;I can think of a reason why it's bad from a programmer's perspective: the sketch look is used to make sure users don't confuse prototypes with the real thing. If the real thing is sketched you can't really use that for prototyping any more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a user's perspective I can't think of a reason. If they like that aesthetic and it is easy to use, then you'll have a hard time convincing them otherwise without something better.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastEditorUserId="1069" LastEditorDisplayName="" LastEditDate="2010-12-20T21:11:16.880" LastActivityDate="2010-12-20T21:11:16.880" />
  <row Id="28387" PostTypeId="2" ParentId="28376" CreationDate="2010-12-20T20:42:40.757" Score="5" ViewCount="" Body="&lt;p&gt;C macros and Lisp macros are entirely different. C macros are expanded using string substitution before any other processing is done. Lisp macros are expanded after the input text has been parsed into a syntax tree&lt;sup&gt;1&lt;/sup&gt;, and can use the entire language during expansion. With Lisp macros, you can not only do stupid things like &lt;code&gt;#define begin {&lt;/code&gt;, but you can define your own control structures, and even populate arrays at compile-time using whatever code you want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One reason for not including macros is that anything more complicated than simple string substitution can be very hard to work with in languages with C-style syntax. Another complaint about macros is that they can make code more difficult to read, which can be true if not implemented skillfully. Well-written Lisp macros can actually make the code easier to read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt;except for read macros, which are expanded during the process of creating the syntax tree.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-20T20:42:40.757" />
  <row Id="28388" PostTypeId="2" ParentId="27564" CreationDate="2010-12-20T20:48:54.323" Score="15" ViewCount="" Body="&lt;p&gt;Some three years ago I wrote down my php &quot;wishlist&quot; as a working parser for a &quot;better php&quot; language: &lt;a href=&quot;http://code.google.com/p/pihipi/&quot; rel=&quot;nofollow&quot;&gt;PiHiPi&lt;/a&gt;. This parser was meant to prove that it's possible to clean up most php gotchas without losing the spirit of the language. Here's some examples of what is possible in PiHiPi:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// all expression forms are allowed &#xA;$record  = (new get_db_class_name())-&amp;gt;query(&quot;SELECT ...&quot;)[0];&#xA;&#xA;// multiple assignments&#xA;$base, $ext = explode('.', $filename);&#xA;&#xA;// array objects and function literals&#xA;$words = [&quot;foo&quot;, &quot;bar&quot;, &quot;baz&quot;]-&amp;gt;map(strtoupper);&#xA;&#xA;// named arguments&#xA;$books-&amp;gt;insert('title' =&amp;gt; 'foo', 'author' =&amp;gt; 'bar');&#xA;&#xA;// &quot;in&quot; operator&#xA;if ($name in [&quot;admin&quot;, &quot;guest&quot;]) ...&#xA;&#xA;// &quot;is&quot; operator&#xA;if ($object is Runnable &amp;amp;&amp;amp; $id is int)... &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and so on. Note that none of these improvements breaks any existing code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides fixing the parser, here's the top 3 of my personal wishlist:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Fatal errors. I beg your pardon, but it's really a shame that scripts can be simply killed without any notice and a chance to handle the error. What would you say if your word processor simply quit to OS when you mistype a word? Or when OS simply shut down the machine when running out of memory?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Unicode. Just do it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Arbitrary precision arithmetic by default. In a scripting language we don't want to care about word lengths, overflows etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And please, please, please, fix this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$a = (object) array('name' =&amp;gt; 'foo');&#xA;echo $a; // wtf????&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="9144" LastEditorUserId="9144" LastEditorDisplayName="" LastEditDate="2010-12-20T21:01:20.523" LastActivityDate="2010-12-20T21:01:20.523" CommunityOwnedDate="2010-12-20T20:48:54.323" CommentCount="6" />
  <row Id="28389" PostTypeId="1" CreationDate="2010-12-20T20:53:32.353" Score="1" ViewCount="206" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/7305/int-i-or-int-i-or-int-i&quot;&gt;int* i; or int *i; or int * i;&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;When working in C or C++, how should pointers be declared?  Like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;char* derp;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;char *derp;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I typically use the first method, because the variable is a &lt;em&gt;character pointer&lt;/em&gt;, but I know that it can create confusion when declaring multiple variables at once:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;char* herp, derp;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;herp&lt;/code&gt; becomes a character pointer, while &lt;code&gt;derp&lt;/code&gt; is just a character.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know it often comes down to coding style, but which one is &quot;better?&quot;  Should I sacrifice clarity to eliminate potential confusion?&lt;/p&gt;&#xA;" OwnerUserId="36" LastActivityDate="2011-02-16T13:52:50.720" ClosedDate="2010-12-20T21:21:07.707" Title="Should *'s go next to the type or the variable name?" Tags="&lt;c++&gt;&lt;c&gt;&lt;coding-style&gt;&lt;pointers&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="28390" PostTypeId="2" ParentId="28377" CreationDate="2010-12-20T20:54:05.833" Score="2" ViewCount="" Body="&lt;p&gt;The skinning issue is the biggest problem for the same reason skinning is almost always a bad idea. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consult the &lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;amp;FamilyID=e49820cb-954d-45ae-9cb3-1b9e8ea7fe8c&quot; rel=&quot;nofollow&quot;&gt;tome&lt;/a&gt; and print off a few pages.  I wouldn't go into saying there is a problem with sketchiness since that's just some sort of fad and it works in Michael Cera movies. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-12-20T20:54:05.833" CommentCount="1" />
  <row Id="28391" PostTypeId="2" ParentId="28377" CreationDate="2010-12-20T20:54:59.157" Score="8" ViewCount="" Body="&lt;p&gt;Honestly if its their application and that is why they want, I would just do it their way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you wish to try and influence them otherwise, do a mockup of a different UI and show it to them along with your arguments against the sketchy UI. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try and put it in terms they'd understand. For example, instead of saying it would take significant effort to reskin the application, just tell them the design adds an additional X days/weeks to the production time. Or instead of talking about screen realestate, show them an example of how cluttered it would look compared to your alternative design. Afterall, a picture is worth a thousand words.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-12-20T20:54:59.157" />
  <row Id="28392" PostTypeId="2" ParentId="28389" CreationDate="2010-12-20T20:55:17.593" Score="2" ViewCount="" Body="&lt;p&gt;Use the first method, and put each variable declaration on its own line.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;char* herp;&#xA;char* derp;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-20T20:55:17.593" />
  <row Id="28393" PostTypeId="2" ParentId="28377" CreationDate="2010-12-20T20:57:11.570" Score="1" ViewCount="" Body="&lt;p&gt;Unless the sketched look was tested against another look and feel, you can't say with any certainty that the users were responding to the functionality rather than the aesthetics. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a larger issue, I wouldn't say that a sketched look is &lt;em&gt;a priori&lt;/em&gt; bad. It depends on the domain. I don't necessarily agree with you that it can't look polished or professional, but the real-estate issues could certainly be resolved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case, I think you're on the right track of trying to find out what is appealing to your stakeholders. The answer is in there somewhere.&lt;/p&gt;&#xA;" OwnerUserId="293" LastActivityDate="2010-12-20T20:57:11.570" />
  <row Id="28394" PostTypeId="2" ParentId="28314" CreationDate="2010-12-20T20:58:26.780" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.jetbrains.com/resharper/&quot; rel=&quot;nofollow&quot;&gt;ReSharper&lt;/a&gt; in VS.NET sometimes suggests to replace &lt;code&gt;if...else&lt;/code&gt; with the &lt;code&gt;?:&lt;/code&gt; operator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems that ReSharper suggests only if the conditions/blocks are below a certain complexity level, otherwise it sticks with &lt;code&gt;if...else&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2719" LastActivityDate="2010-12-20T20:58:26.780" CommunityOwnedDate="2011-01-25T19:46:08.053" CommentCount="1" />
  <row Id="28395" PostTypeId="2" ParentId="28389" CreationDate="2010-12-20T20:59:24.127" Score="1" ViewCount="" Body="&lt;p&gt;If you use the second method, it helps to use &lt;code&gt;char *&lt;/code&gt; exclusively elsewhere. So when casting:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;herp = (char *)foo;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You get consistent types throughout, without getting caught out in variable declarations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, this presumes that everyone follows the same coding style - this is one of those issues where everyone-doing-the-same-thing is more important than what, exactly, is being done.&lt;/p&gt;&#xA;" OwnerUserId="9029" LastActivityDate="2010-12-20T20:59:24.127" />
  <row Id="28396" PostTypeId="2" ParentId="28377" CreationDate="2010-12-20T20:59:45.763" Score="9" ViewCount="" Body="&lt;p&gt;Usually, such sketched prototypes look good as long as no-one has to use it. To convince them, implement a small part as a usable prototype, in two version, one with the sketched skin and one normal. That should be enough to show them that the sketched look is funny for one day or two, but becomes stale soon after.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this doesn't convince them, well, their problem.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-20T20:59:45.763" CommentCount="1" />
  <row Id="28397" PostTypeId="2" ParentId="28389" CreationDate="2010-12-20T21:00:16.450" Score="2" ViewCount="" Body="&lt;p&gt;In &lt;a href=&quot;http://www2.research.att.com/~bs/bs_faq2.html#whitespace&quot; rel=&quot;nofollow&quot;&gt;the C++ FAQ&lt;/a&gt;, Bjarne Stroustrup explicitly leaves this to the reader, but says that &lt;code&gt;char* p&lt;/code&gt; looks more familiar to many C++ programmers, while &lt;code&gt;char *p&lt;/code&gt; is the C style.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless a team imposes their coding style upon you, you should do what you think is best. I personally have even written software with spaces on both sides of the asterisk just because of this issue. Anyway: the fact that something is a pointer is a fact about the type, not the name.&lt;/p&gt;&#xA;" OwnerUserId="10199" LastEditorUserId="10199" LastEditorDisplayName="" LastEditDate="2011-02-16T13:52:50.720" LastActivityDate="2011-02-16T13:52:50.720" />
  <row Id="28398" PostTypeId="2" ParentId="28377" CreationDate="2010-12-20T21:00:57.370" Score="8" ViewCount="" Body="&lt;p&gt;There's a good book called &lt;em&gt;Emotional Design: Why We Love (or Hate) Everyday Things&lt;/em&gt; by Donald A. Norman.  The book provides a good framework to describe and understand the less technical aspects of design.  The short version is that there are three types of reaction to any design:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;Visceral&lt;/em&gt; - The gut reaction, it's sexy, it's polished, it's ugly.  You get the idea.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Behavioral&lt;/em&gt; - How the thing functions, or not as the case may be.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Reflective&lt;/em&gt; - How does the site make me think, react, or feel.  Recalling using the site could invoke bliss, agony, or otherwise.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I have a feeling your arguments are more on the long term &lt;em&gt;reflective&lt;/em&gt; aspects while your clients have a more &lt;em&gt;visceral&lt;/em&gt; reaction.  Simplicity is a very powerful concept, and very difficult to pull off well.  Basically you have to balance all the behavioral things the site needs to do while leaving a good impression.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To help prioritize what is most important, you need to think about how users will be interacting with the site.  If you are expecting short, passive interactions (like checking news), then visceral might be the most important.  However, if this is going to be used heavily for every day work, behavioral becomes paramount.  Lastly, if the site is going to be part of the face of the company, it really needs to reflect what the company is about.  An informal look can be quite appropriate if the company is projecting that image.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best bet is to help your client become clear about their vision for the site, and how that site may or may not affect their brand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;One additional thought&lt;/em&gt;: You are constrained by the platform you are deploying on (as noted by your first edit).  With this constraint, it is technically infeasible to do a great number of things that would otherwise be fine to do on a fresh website.  SharePoint, being a WebForms based product does not give much leeway to customize the look and feel with it's rigid CSS, mixed CSS and embedded layout, and view state embedded in the HTML.  You can always add the element about cost into your arguments.  Between that and the argument about branding (the reflective design), you just may win them over.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastEditorUserId="6509" LastEditorDisplayName="" LastEditDate="2010-12-21T11:25:00.863" LastActivityDate="2010-12-21T11:25:00.863" CommentCount="3" />
  <row Id="28399" PostTypeId="2" ParentId="28294" CreationDate="2010-12-20T21:05:40.130" Score="0" ViewCount="" Body="&lt;p&gt;Have you tried PollingDuplexHttpBinding? Or is that meant by &quot;HTTP Polling&quot;?&lt;/p&gt;&#xA;" OwnerUserId="10781" LastActivityDate="2010-12-20T21:05:40.130" CommentCount="1" />
  <row Id="28400" PostTypeId="2" ParentId="24665" CreationDate="2010-12-20T21:18:51.123" Score="1" ViewCount="" Body="&lt;p&gt;Socket Support. I mean real socket support. Or at least a way to communicate with a server that doesnt rely on HTTP.&lt;/p&gt;&#xA;" OwnerUserId="11052" LastActivityDate="2010-12-20T21:18:51.123" CommentCount="1" />
  <row Id="28401" PostTypeId="2" ParentId="28389" CreationDate="2010-12-20T21:19:03.290" Score="3" ViewCount="" Body="&lt;p&gt;I used to use &lt;code&gt;char* name&lt;/code&gt; but now I've switched to &lt;code&gt;char *name&lt;/code&gt;, and I'd recommend everyone the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because I like to think of a &quot;pointer&quot; as a &quot;variable modifier&quot;, not a part of the variable type itself - unlike &quot;unsigned&quot; for example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Id est: the variable is still a char. The fact that it's a pointer doesn't really tell me anything about the type, char is still the type.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thoughts? :)&lt;/p&gt;&#xA;" OwnerUserId="2815" LastActivityDate="2010-12-20T21:19:03.290" CommentCount="1" />
  <row Id="28402" PostTypeId="2" ParentId="28356" CreationDate="2010-12-20T21:30:08.313" Score="0" ViewCount="" Body="&lt;p&gt;Adopt the fact that the white board is not actually meant to be white. It started as white but would mostly be grey in its life time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found out any white product(all sorts of white cloth, shoes, papers) has similar issue like this but none was resolved with current technology.  &lt;/p&gt;&#xA;" OwnerUserId="6924" LastActivityDate="2010-12-20T21:30:08.313" />
  <row Id="28403" PostTypeId="2" ParentId="28379" CreationDate="2010-12-20T21:34:41.037" Score="15" ViewCount="" Body="&lt;p&gt;There's currently a StackExchange project for code reviews in preparation at &lt;a href=&quot;http://area51.stackexchange.com/proposals/11464/code-review&quot;&gt;http://area51.stackexchange.com/proposals/11464/code-review&lt;/a&gt; … maybe you want to support it, I think it will make a nice addition to the network!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: The proposal is in public beta at &lt;a href=&quot;http://codereview.stackexchange.com/&quot;&gt;http://codereview.stackexchange.com/&lt;/a&gt;!&lt;/p&gt;&#xA;" OwnerUserId="10199" LastEditorUserId="10199" LastEditorDisplayName="" LastEditDate="2011-02-22T17:44:42.903" LastActivityDate="2011-02-22T17:44:42.903" CommentCount="3" />
  <row Id="28405" PostTypeId="2" ParentId="28228" CreationDate="2010-12-20T21:39:27.120" Score="1" ViewCount="" Body="&lt;p&gt;Your boss's solution is the better of the two.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you're actually both wrong. :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each mailing (ie, title) should have a unique id.  So you need a table that tracks that.  Never rely on a title being unique like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you need a 'working' table that includes the mailing id, the email address, and a flag for whether the message is sent (integer, 0 or 1).  Before you start mailing, do a mass insert into that table &lt;em&gt;of all the addresses you intend to send to&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, your mailer will operate against that table, flipping the sent flag as it processes each message.  This way a mailing can easily be resumed if the server is interupted for some reason by simply querying those rows that do not have their sent flag set.  It also never hurts to track a timestamp of each sent email.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition, you can insert the working table's row id as part of an unsubscribe link included in each mailer, so you'll know which mailings caused people to unsubscribe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This approach allows you to handle multiple mailings (if you have multiple newsletters for example) and maintain a very detailed log of who got what email and when.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-20T21:39:27.120" CommentCount="1" />
  <row Id="28406" PostTypeId="1" CreationDate="2010-12-20T21:39:36.807" Score="13" ViewCount="733" Body="&lt;p&gt;I recently switched jobs because I was not challenged enough, the work would come in waves, and I HATED the people I worked with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am a recent college grad, May 2009, and based off the 3 internships I had, and 2 full time jobs I obtained, I am finding that employers can not keep me satisfied with the amount of work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At my new job, I like the people I work with, I am challenged, but I still do not get enough work. I hate down time. I always want to have something to work on AT LEAST 6 out of the 8 hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was surprised that my new employer actually hired me because the majority of the technologies they implement, I had minimal exposure to. I never programmed in the technologies they use outside of one class in college.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My greatest strength is that I am an extremely fast learner. I can pick up new technologies with relative ease. They gave me a project to work on by myself and I think they assumed it would take me longer to complete. Now that I finished that app, they are struggling to find something for me to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not sure if it is bad timing being close to the holidays, my manager dealing with personal issues at home, how quickly I finished the first project, or that I expect too much out of an employer? If so, what are good things to do on all this downtime?!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Thanks for all the feedback!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT 2: I am going to &quot;unaccept&quot; the answer in an effort to keep the question open. As a few people have mentioned, this is a great discussion on how to grow as a new worker in the programming field.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT 3: I am attempting to revive this question so the moderators will see the support to re-open it.&lt;/p&gt;&#xA;" OwnerUserId="11096" LastEditorUserId="11096" LastEditorDisplayName="" LastEditDate="2011-01-04T15:16:27.077" LastActivityDate="2011-01-04T15:16:27.077" ClosedDate="2010-12-21T09:11:54.317" Title="Do I expect too much work from an employer?" Tags="&lt;jobs&gt;&lt;career-advice&gt;&lt;new-job&gt;" AnswerCount="10" CommentCount="6" FavoriteCount="2" />
  <row Id="28408" PostTypeId="2" ParentId="28406" CreationDate="2010-12-20T21:47:46.430" Score="6" ViewCount="" Body="&lt;p&gt;Since my first professional programming job, I can't think of a time when I've ever not been able to find something productive to do.  Even if I'm not loaded up with projects (which I usually am), there are always more tests to write, some bit of code I've always wanted to refactor (or rewrite), or some non-development but related task that I've been putting off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps you need to spend more time with your manager finding out what your department or organization's needs are.  If the manager is too busy, talk with coworkers.  In my experience, there is always another little app somewhere that needs an update, needs to be redone, or a report that needs to be written.  Sometimes you have to talk to people and find out what needs there are, and then propose what work YOU think you should be doing.  Your manager may not have time to figure that out and assign it to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Barring that, spend your extra time learning.  Not just new technologies, but more importantly, the business domain that you're developing for, learn more about whatever it is that your boss has to do (maybe you can do some of that work), and learn the other roles that you have to interact with.  If you deal with DBAs a lot and your database skills are not great (for example), work on that.  Also learn about what kind of problems your users are having.  Do you have a help desk or someone who takes the support calls?  Find out what the common complaints are.  That will point you in a direction where you might be able to add value.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-20T21:47:46.430" CommentCount="9" />
  <row Id="28409" PostTypeId="2" ParentId="28317" CreationDate="2010-12-20T21:52:17.227" Score="1" ViewCount="" Body="&lt;p&gt;I would definitely avoid changing the GUI without permission. It might be a lot more involved than just adding some wow factor to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps you want to take on the role of documentation writer and update the manual and help files as well. Maybe there are screen shots of your application on the companies web site, now your a web developer. How about the marketing materials used by your sales department, will those be affected? Are there any automated tests driving this thing, QA won't be pleased if you screw those up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a customer can see it, don't mess with it. Any company I've worked at, there is a process for UI design involving all the stakeholders. &lt;/p&gt;&#xA;" OwnerUserId="905" LastActivityDate="2010-12-20T21:52:17.227" />
  <row Id="28410" PostTypeId="2" ParentId="28406" CreationDate="2010-12-20T21:53:11.507" Score="3" ViewCount="" Body="&lt;p&gt;The best way to get more work is to get more responsibility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may be able to convince your boss to give you more responsibility, or you may be able to take it if you see an opportunity. If you are able to anticipate what your boss will need next, that is particularly valuable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes the work is not always related to a project. There are often natural busy and slow periods with a project. However, during the slow times, it is a great opportunity to look at upgrading tools, improving development processes, or automating tasks.&lt;/p&gt;&#xA;" OwnerUserId="152" LastActivityDate="2010-12-20T21:53:11.507" />
  <row Id="28411" PostTypeId="2" ParentId="27564" CreationDate="2010-12-20T21:56:31.357" Score="-3" ViewCount="" Body="&lt;p&gt;@dukeofgaming: How do you figure having multiple styles of tags is better? It allows for looser coding standards in a project. Long tags are supported everywhere, no need to worry about configs.&lt;/p&gt;&#xA;" OwnerUserId="11097" LastActivityDate="2010-12-20T21:56:31.357" CommunityOwnedDate="2010-12-20T21:56:31.357" CommentCount="1" />
  <row Id="28412" PostTypeId="2" ParentId="28406" CreationDate="2010-12-20T21:59:21.003" Score="22" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I was surprised that my new employer&#xA;  actually hired me because the majority&#xA;  of the technologies they implement, I&#xA;  had minimal exposure to. I never&#xA;  programmed in the technologies they&#xA;  use outside of one class in college.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If that didn't cue you in to a good use of your time, I'm not quite sure what will :) I'm sure that you accomplished your task .. but are you really growing if you just wait for the next challenge?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;My greatest strength is that I am an&#xA;  extremely fast learner. I can pick up&#xA;  new technologies with relative ease.&#xA;  They gave me a project to work on by&#xA;  myself and I think they assumed it&#xA;  would take me longer to complete. Now&#xA;  that I finished that app, they are&#xA;  struggling to find something for me to&#xA;  do.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I am quite certain that you could find something to do, provided that you look hard enough and &lt;em&gt;really&lt;/em&gt; understand what you were working with. Sure, it works, it shipped, congratulations! Now, improve it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a lot like you, I can study almost anything for a very short time and make use of it. Mastery, however, requires &lt;em&gt;experience&lt;/em&gt;. Go get some, you have the opportunity and are held in high regard. I can't adequately articulate the &lt;em&gt;travesty&lt;/em&gt; of wasting such an opportunity at this point in your career.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-20T21:59:21.003" CommentCount="6" />
  <row Id="28413" PostTypeId="2" ParentId="28314" CreationDate="2010-12-20T22:07:26.747" Score="2" ViewCount="" Body="&lt;p&gt;This can be reformatted to be as nice-looking as the if/else combination:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int median(int a, int b, int c)&#xA;{&#xA;    return&#xA;        (a&amp;lt;b)&#xA;        ?&#xA;            (b&amp;lt;c)&#xA;            ? b&#xA;            :&#xA;                (a&amp;lt;c)&#xA;                ? c&#xA;                : a&#xA;        :&#xA;            (a&amp;lt;c)&#xA;            ? a&#xA;            :&#xA;                (b&amp;lt;c)&#xA;                ? c&#xA;                : b;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But the problem is that I am not really sure if I got the indentation right to represent what will actually happen. :-)&lt;/p&gt;&#xA;" OwnerUserId="5044" LastActivityDate="2010-12-20T22:07:26.747" CommunityOwnedDate="2011-01-25T19:46:08.053" CommentCount="3" />
  <row Id="28414" PostTypeId="2" ParentId="28406" CreationDate="2010-12-20T22:09:00.933" Score="8" ViewCount="" Body="&lt;p&gt;One thing I've noticed over the years is that I'm far more thorough in my work now than I was when I was right out of college.  Many of the tasks I'd perform in the past and call 'done' I'd never call 'done' now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So while its certainly possible you're just too brilliant for your bad self... I'd leave open the possibility that maybe, just maybe, that you are calling 'complete' tasks that others might not.  I've seen many a brilliant young programmer quickly 'complete' a task which, down the road, caused additional problems because the job was slapped together without the necessary diligence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But hey, if you &lt;em&gt;really&lt;/em&gt; are done with everything you need to do.... enjoy the downtime.  Answer questions on SO, learn new technologies, investigate product or feature ideas for your company... many people would love to have such a light workload, as opposed to working 50-60 hour work weeks regularly.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-20T22:09:00.933" CommentCount="1" />
  <row Id="28415" PostTypeId="2" ParentId="28406" CreationDate="2010-12-20T22:15:56.057" Score="5" ViewCount="" Body="&lt;p&gt;I have never worked &lt;em&gt;anywhere&lt;/em&gt; that didn't have a backlog of bugs and wish-list items.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are finishing your assigned work, ask your boss if you can work on any of those things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is often some really cool stuff in the wish-list bucket.&lt;/p&gt;&#xA;" OwnerUserId="5044" LastActivityDate="2010-12-20T22:15:56.057" CommentCount="3" />
  <row Id="28416" PostTypeId="2" ParentId="28356" CreationDate="2010-12-20T22:16:59.723" Score="3" ViewCount="" Body="&lt;h2&gt;Don't&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Leave it long enough and it will turn into a blackboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then use enough chalk and it will turn back to a whiteboard, then repeat. :)&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-20T22:16:59.723" />
  <row Id="28417" PostTypeId="1" CreationDate="2010-12-20T22:19:07.460" Score="4" ViewCount="524" Body="&lt;p&gt;This is not subjective, answers can be based on actual rates per hour on average. Note: this is based on freelance earnings, not employment salaries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My problem is this. I primarily code in php. I enjoy it. It pays. However, I feel I am outgrowing it and want to move onto another programming language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My main concern is that I dedicate my life to another programming language (correction, I have no life) and end up with zero prospects with only the possibility to go get a JOB. My other worry is that the contracting side is overrun with overqualified developers and not many projects. At least with php I can stand out. I'm not going to stand out if ALL I know is java and php (see below).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Advice?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen programmers with 10+ years experience in c#,python,php,java etc etc and only charging $50/hour!? I have just over 5 years experience with php and I can easily charge that now! I know it's not all about money, but c'mon.&lt;/p&gt;&#xA;" OwnerUserId="9682" LastActivityDate="2010-12-21T09:39:19.793" ClosedDate="2010-12-28T23:23:41.300" Title="As a freelancer, which programming language offers more 'buck for your lang'?" Tags="&lt;programming-languages&gt;&lt;career&gt;&lt;career-advice&gt;&lt;freelance&gt;" AnswerCount="7" CommentCount="6" FavoriteCount="2" />
  <row Id="28418" PostTypeId="2" ParentId="28406" CreationDate="2010-12-20T22:21:43.120" Score="5" ViewCount="" Body="&lt;p&gt;Whenever I've joined an in progress project, I've found that in the early going I usually found myself with less work than time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, are you sure you're doing everything that is expected of you? Are you doing the same level of testing of your work before calling it done that everyone else is? Is there some documentation that you should be doing? etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suspect that if you're still in &quot;new guy&quot; stage, it probably means you have fewer distractions. The folks who have been there are only doing 4-5 hrs of &quot;work&quot; per day because the other half of the day is meetings, dealing with stakeholders, responding to whatever needed developer level support incidents arise, etc. The new guy usually doesn't get roped into that sort of thing. The new guys also don't know the system(s) as well so aren't being given the trickier assignments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then again, maybe your manager is overbooked. The sweet spot for a manager is typically about 5 people directly reporting to the manager. If your manager has more than that, or has to do too much upward management, you're not getting the attention from them that you need. They don't see that you're idle so dragging tasks out and so not feeding you the next thing. In fact, they may be thinking &quot;Ant is taking all day to get a 4 hr task done, so I can't pile more on&quot;. Talk to your manager. Ask the rest of the team, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But let me give you my real advice: Be careful what you wish for. Those who have been around a while are full of stories of yesterday's super productive programmer turning into today's burn out because they couldn't be the hero all of the time anymore.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-12-20T22:21:43.120" />
  <row Id="28419" PostTypeId="2" ParentId="28377" CreationDate="2010-12-20T22:22:13.947" Score="0" ViewCount="" Body="&lt;p&gt;My opinion might be slightly biased in this, but I'd suggest a tool like &lt;a href=&quot;http://IntuitionHQ.com&quot; rel=&quot;nofollow&quot;&gt;http://IntuitionHQ.com&lt;/a&gt; or something of the like where you could run a very quick, simple usability test on the sketched design vs say a wireframe, or more polished looking design. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It doesn't have to be interactive, but if the numbers come back showing that one design is clearly better and more usable than the other (as per your gut instinct), the stakeholders will find it hard to argue. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We've used this method before, and it's very difficult to argue with the results of these tests. If you are interested you can check out some sample results at video.intuitionhq.com/pub/356/1.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers, and good luck with your designs.&lt;/p&gt;&#xA;" OwnerUserId="11101" LastActivityDate="2010-12-20T22:22:13.947" />
  <row Id="28420" PostTypeId="2" ParentId="28314" CreationDate="2010-12-20T22:25:38.793" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;When is  appropriate, and when is it not?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I think that when developing for a homogeneous group of people, there is no problem but when you have to deal with people that handle different levels, this kind of oneliners only introduce a further level of complexyti to the code. So, my policy on the matter is: code clear and dont explain rather than code short and explain 123123 times.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Should it be taught to or hidden from&#xA;  beginners?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I should not be taught to beginners, rather prefert them to figure it out when need emerges, so it'll be used only when necesary and not every time you need an if.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-20T22:25:38.793" CommunityOwnedDate="2011-01-25T19:46:08.053" />
  <row Id="28421" PostTypeId="2" ParentId="28356" CreationDate="2010-12-20T22:25:44.803" Score="0" ViewCount="" Body="&lt;p&gt;I've used car wax to cheaply re-surface very large whiteboards in the past. About 3 coats over the course of a day or two got the whiteboard back to brand new... make sure to do it by a window!&lt;/p&gt;&#xA;" OwnerUserId="11106" LastActivityDate="2010-12-20T22:25:44.803" />
  <row Id="28422" PostTypeId="2" ParentId="28417" CreationDate="2010-12-20T22:29:53.080" Score="3" ViewCount="" Body="&lt;p&gt;If you want to take advantage of your PHP abilities I would recommend to invest some time learning a framework, so your code abilities and the framework structure would give you more robustness and will stand out even more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice is &lt;a href=&quot;http://www.symfony-project.org/&quot; rel=&quot;nofollow&quot;&gt;Symfony&lt;/a&gt;, an amazing PHP framework.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-21T05:06:17.170" LastActivityDate="2010-12-21T05:06:17.170" CommentCount="3" />
  <row Id="28423" PostTypeId="2" ParentId="28417" CreationDate="2010-12-20T22:31:17.310" Score="1" ViewCount="" Body="&lt;p&gt;From my perspective in the world, Ruby seems to be all the rage these days. And Objective C / iOS development is pretty hot as well. Hard to give you specific numbers to expect but if you are a talented programmer I'm sure you would get much more than $50 an hour.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck.&lt;/p&gt;&#xA;" OwnerUserId="11101" LastActivityDate="2010-12-20T22:31:17.310" />
  <row Id="28424" PostTypeId="2" ParentId="28406" CreationDate="2010-12-20T22:34:27.487" Score="2" ViewCount="" Body="&lt;p&gt;you should try to get a job at M$, they LOVE young programmers like you.  Hiring them and working them till they burn out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyhow, the best way to get more to do, is to do more and to show that you CAN handle doing more.  Just be careful you don't go overboard and burnout--that does no one any good.&lt;/p&gt;&#xA;" OwnerUserId="882" LastEditorUserId="882" LastEditorDisplayName="" LastEditDate="2010-12-21T14:51:49.833" LastActivityDate="2010-12-21T14:51:49.833" />
  <row Id="28425" PostTypeId="1" AcceptedAnswerId="28429" CreationDate="2010-12-20T22:35:49.973" Score="0" ViewCount="567" Body="&lt;p&gt;I'm thinking of (hoping to) getting into the &quot;big&quot; websites industry. For a new created website, which server-side language would be better? I.e. which one should I learn?&lt;/p&gt;&#xA;" OwnerUserId="11109" LastEditorUserId="11109" LastEditorDisplayName="" LastEditDate="2010-12-20T22:44:19.060" LastActivityDate="2010-12-20T23:24:20.320" ClosedDate="2010-12-21T00:27:17.877" Title="Should I learn PHP, Python or C#?" Tags="&lt;web-development&gt;&lt;php&gt;&lt;c#&gt;&lt;websites&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="28426" PostTypeId="2" ParentId="28331" CreationDate="2010-12-20T22:36:39.833" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I've seen this before&lt;/strong&gt;, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I'm almost willing to bet: This type of guy only &lt;strong&gt;appears&lt;/strong&gt; &quot;fast&quot; because he has a set of tried and tested &quot;patterns&quot; in his head. &lt;strong&gt;99%&lt;/strong&gt; of Line of Business apps is &lt;strong&gt;CRUD&lt;/strong&gt;, basic stuff. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;He probably uses a ton of Copy &amp;amp; Paste from his own existing code (nothing wrong with that).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;But..&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The moment he encounters anything remotely complex, it falls down, why? because it no longer fits any of the basic &quot;patterns&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A little challenge...&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd create a project on the side, a complex one that really benefits from OOP and code re-use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then show him that project and ask him to implement it feature for feature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd then wager that his code will almost certainly be &lt;strong&gt;10x times larger &amp;amp; 10x uglier&lt;/strong&gt; if he had implemented it his way.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-20T22:36:39.833" CommentCount="1" />
  <row Id="28427" PostTypeId="2" ParentId="28425" CreationDate="2010-12-20T22:44:11.697" Score="0" ViewCount="" Body="&lt;p&gt;Given a clean slate, I'd say C# (but I'm biased)(*).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Then&lt;/strong&gt; I'd go learn PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its not a case of X is better than Y, they are different. They both have strengths and weaknesses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With C# (and .NET framework) you won't be limited to just the web though so keep that in mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just spotted you added Python, in that case, Python -&gt; C# -&gt; PHP (or just skip PHP ;) )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(*) &lt;em&gt;I'm mainly a C# (+ many other languages) developer, but I've dabbled with PHP&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-20T22:44:11.697" />
  <row Id="28428" PostTypeId="2" ParentId="18669" CreationDate="2010-12-20T22:45:45.550" Score="1" ViewCount="" Body="&lt;p&gt;You being saying:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The two predominant&#xA;  software-development philosophies are&#xA;  waterfall and agile.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That is false. That dichotomy has been constructed by the agile community in order to create an opponent against which to position themselves. Before agile was in vogue, people used to speak about a myriad of different approaches to building software. They still exist today, but somehow they are often lumped together into a big mess called &quot;waterfall&quot; by agile proponents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been using OPEN/Metis (www.openmetis.com) and its variants for over 10 years with great success. It is definitely not agile, and definitely not waterfall. Thousands of developers create extremely complex software for aircraft, life critical systems, banking, etc. using non-agile methods every day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So yes, of course there is a viable alternative to agile.&lt;/p&gt;&#xA;" OwnerUserId="5021" LastActivityDate="2010-12-20T22:45:45.550" CommentCount="3" />
  <row Id="28429" PostTypeId="2" ParentId="28425" CreationDate="2010-12-20T22:46:46.890" Score="0" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Warning:&lt;/em&gt; Personal opinions here...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a bit confused about the question. If you want to get into BIG websites, I think you'd better get into Java/JEE, as it is quite often the stack that will be used for enterprise web-sites with high-traffic. Not that there aren't any with PHP and C#/.Net, but if your goal is to more towards this kind of market, I'd rather get into Java/JEE to have stronger chances.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, if you really are set on having to choose between PHP and C#, I'd rather recommend you go for C#. PHP is a fun language, and you can definitely use it to develop quality websites as well, but I think you will find that C# has gotten a lot of industry traction and I see a lot of job offers for .Net based websites flourish lately. Note that I said .Net-based, not C#. A lot of them will use a combination of languages running on the .Net platform. Which can be an advantage as well, as you'll get to play with a lot of different technologies. Whether they're good or bad is another question (but, please, do have a look at F# while you're there. ;))&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also favor C# over PHP as I have preference for the language. While I'm not a big C# developer, I think the language is definitely interesting, has benefited from the years it took Java (the language, the platform, and its class-lib) to become where it is now, and has improved on top of it. And it did that incredibly fast and regularly over the last years, so that's a pretty good indicator of the industry support behind it, whereas the pull behind PHP has been going up and down for a while.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've never done any PHP though, you should have a look at it. Like I said: it's fun. For a while. If you want to get started quickly, with no frills, bells and whistles, it's probably better. It also has some very nice frameworks to build on top of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you want the &lt;strong&gt;big&lt;/strong&gt; websites/webapps, then I wouldn't go there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep an eye on the job market, see what it follows in general and in your area. &lt;a href=&quot;http://www.google.com/trends?q=php,+c%23&quot; rel=&quot;nofollow&quot;&gt;Trends&lt;/a&gt; &lt;a href=&quot;http://www.indeed.com/jobtrends?q=c%23,+java&amp;amp;l=&quot; rel=&quot;nofollow&quot;&gt;do&lt;/a&gt; &lt;a href=&quot;http://www.indeed.com/jobtrends?q=c%23,+php&amp;amp;l=&quot; rel=&quot;nofollow&quot;&gt;matter&lt;/a&gt; if you want to move towards the big sites, because if you're not creating the big site from scratch yourself, then you need to use what it uses. &lt;a href=&quot;http://www.simplyhired.com/a/salary/search/t-c%23+Developer/l-United+States/q_1-Java+Developer/l_1-United+States/q_2-PHP+Developer/l_2-United+States/q_3-Python+Developer/l_3-United+States&quot; rel=&quot;nofollow&quot;&gt;Salaries&lt;/a&gt; might matter to you too &lt;em&gt;(do look at other rankings, I just pulled these off but it takes more than just 2 minutes to come up with good values, as job titles often differ from one technology to another)&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: ahah, you added Python!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I'll start with Python, because you'll get the flexibility and ease of development of PHP, while at the same time benefiting from an arguably better language to improve your development skills. And Python does come with a herd of great frameworks as well, and achieves decent performance (though multi-threading has never been a strong point in the past). In that case, if you hesitate between the 3, I'd definitely ditch PHP (if you really have to), learn Python, and &lt;strong&gt;then&lt;/strong&gt; learn C# to look at something more heavyweight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus, Python is a good language for prototyping, so you could always start with it and then switch to another language/platform if you realize you need something more.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I think you have the right attitude by trying to ask questions and look where to start and what would be the most promising solution to use, but do not start to big. Build little by little, don't bother losing sleep over your grand designs for now and just get cranking building something simple. That's the only way to start. Like I said earlier: once you've got some perspective on all this, you can always revise your design and your approach and even switch technologies. Maybe not cost-effective, but definitely educative.&lt;/p&gt;&#xA;" OwnerUserId="3631" LastEditorUserId="3631" LastEditorDisplayName="" LastEditDate="2010-12-20T23:24:20.320" LastActivityDate="2010-12-20T23:24:20.320" CommentCount="26" />
  <row Id="28430" PostTypeId="2" ParentId="28425" CreationDate="2010-12-20T22:47:04.043" Score="-1" ViewCount="" Body="&lt;p&gt;As a PHP programmer, and a man now discovering Python, Python. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Python Python Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is amazing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, Python.&lt;/p&gt;&#xA;" OwnerUserId="8641" LastActivityDate="2010-12-20T22:47:04.043" CommentCount="1" />
  <row Id="28431" PostTypeId="2" ParentId="28379" CreationDate="2010-12-20T22:47:24.050" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://jsfiddle.net/&quot; rel=&quot;nofollow&quot;&gt;http://jsfiddle.net/&lt;/a&gt; for Javascript purpose.&lt;/p&gt;&#xA;" OwnerUserId="11111" LastActivityDate="2010-12-20T22:47:24.050" />
  <row Id="28432" PostTypeId="2" ParentId="28425" CreationDate="2010-12-20T22:53:40.800" Score="3" ViewCount="" Body="&lt;p&gt;Should you learn PHP, Python, or C#?&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Yes.&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Which you choose does not matter so much as your learning a new language does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, as one who has had extensive experience with these and others, I would suggest that PHP should be a lower priority on your list. It's not a very good language (as far as the fact that the language is riddled with surprises and confused implementations), and while it's widely-used (meaning it's useful to have learned eventually), I wouldn't recommend it for new projects. Virtually any other language would, IMO, be a better choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also completely unimportant which language you choose for a new website: Any language can be used. Any. Everything from C to Erlang to Prolog to COBOL to APL can be used for writing web applications. Not all of them are &lt;em&gt;well-suited&lt;/em&gt; to it, but they &lt;em&gt;can&lt;/em&gt; be used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you join an existing project, you'll need to know the language they're using. So it's best to learn any and all languages you might use.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-12-20T22:53:40.800" CommentCount="3" />
  <row Id="28433" PostTypeId="2" ParentId="28406" CreationDate="2010-12-20T23:00:38.640" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;c'mon the answer is easy&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You remind me of a young me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been there. I simply used my down time to learn new languages, or make mini projects. Read up on Computer Architecture (can you say 'Micro Code').&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of those &quot;mini projects&quot; was of real business value, because they become business tools/&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then when I went home, I finished a few more freelance work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the weekends I worked on my own projects, e.g. one of mine is a self hosting web server with dynamic code generation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Summary, In down time&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learn Multiple new languages&lt;/li&gt;&#xA;&lt;li&gt;Create mini projects, some that can benefit the company&lt;/li&gt;&#xA;&lt;li&gt;Re factor, or re-create existing projects.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;C'mon I think your slacking...&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-20T23:00:38.640" />
  <row Id="28434" PostTypeId="1" AcceptedAnswerId="28442" CreationDate="2010-12-20T23:00:55.677" Score="5" ViewCount="366" Body="&lt;p&gt;We are being forced to use &lt;a href=&quot;http://www.codinghorror.com/blog/2008/07/spartan-programming.html&quot; rel=&quot;nofollow&quot;&gt;Spartan&lt;/a&gt; &lt;a href=&quot;http://ssdl-wiki.cs.technion.ac.il/wiki/index.php/Spartan_programming&quot; rel=&quot;nofollow&quot;&gt;programming&lt;/a&gt; on a project, to everybody's dismay. So I get it, it makes the methods really short and it handles the simple cases first. But is it really worth the price of the code looking like something out of the Obfuscated C Code contest? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you see it being useful for something? &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2010-12-20T23:33:22.560" LastActivityDate="2010-12-21T02:41:35.547" Title="Spartan programming... What is it good for?" Tags="&lt;spartan-programming&gt;" AnswerCount="5" CommentCount="15" FavoriteCount="3" />
  <row Id="28435" PostTypeId="2" ParentId="28425" CreationDate="2010-12-20T23:01:53.397" Score="7" ViewCount="" Body="&lt;p&gt;If you want to hit the &quot;big&quot; leagues. You should learn all 3 and then some more. Don't focus on one language, because languages are merely a tool to a means. learn all the tools, then decide which one is the right one for the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How to start learning? &#xA;Say you start with python, make a little website in it.&#xA;then do the same website in C# but make a few improvements.&#xA;can you add these in phyton too?&#xA;make your website in a 3th language. and enhance. See if you can do it in your earlier learned languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you want to hit the &quot;big&quot; leagues. practice, practice and practice some more.&lt;/p&gt;&#xA;" OwnerUserId="11019" LastActivityDate="2010-12-20T23:01:53.397" />
  <row Id="28436" PostTypeId="2" ParentId="28317" CreationDate="2010-12-20T23:03:35.830" Score="6" ViewCount="" Body="&lt;p&gt;I have been both a cowboy coder and the manager in charge of cowboy coders. My advice: don't be a cowboy. Changing anything, especially UI, without understanding the impact is a dangerous thing to do. Be the reliable gun coder, not the guy who needs constant supervision to keep him on track. I've been both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You would be very surprised what people care about. &lt;/p&gt;&#xA;" OwnerUserId="10208" LastActivityDate="2010-12-20T23:03:35.830" />
  <row Id="28437" PostTypeId="2" ParentId="28434" CreationDate="2010-12-20T23:08:41.190" Score="3" ViewCount="" Body="&lt;p&gt;Here's an article that discusses the benefits of spartan programming&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://ssdl-wiki.cs.technion.ac.il/wiki/index.php/SendAnEmail_case_study&quot; rel=&quot;nofollow&quot;&gt;http://ssdl-wiki.cs.technion.ac.il/wiki/index.php/SendAnEmail_case_study&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11019" LastActivityDate="2010-12-20T23:08:41.190" CommentCount="5" />
  <row Id="28438" PostTypeId="2" ParentId="28351" CreationDate="2010-12-20T23:10:52.283" Score="2" ViewCount="" Body="&lt;p&gt;This is something that I am &lt;a href=&quot;http://stackoverflow.com/questions/1840522/how-can-developers-get-out-of-the-learning-void/1853264#1853264&quot;&gt;copying from StackOverflow&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being a programmer with that kind of experience, and wanting to learn things that take you into a new level, I strongly suggest that you study non-programming subjects that can make you a better programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are some subjects that I have studied and found extremely useful:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Cognitive psychology&lt;/strong&gt;. It explains how people perceive and communicate information; it's the basis of conceptual modelling.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Organisational theory&lt;/strong&gt;. It provides a good framework to understand the context where most information systems work.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Management &quot;science&quot; and people skills&lt;/strong&gt;. It can give you clues about the social factors and motivations that interact with software systems.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Linguistics&lt;/strong&gt;. Natural languages may be formal systems, after all, and thinking in terms of lexicon, syntax and semantics is always useful for software people.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Architecture&lt;/strong&gt; (the one making houses and buildings, not software). Its abstract nature and the use of patterns make it a great exercise for the mind.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In general, anything involving formalisms would do you good. Anything that involves people plus information together is also very useful. I think that spending time learning these things will differentiate you from other people of your same age/experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps.&lt;/p&gt;&#xA;" OwnerUserId="5021" LastActivityDate="2010-12-20T23:10:52.283" CommentCount="2" />
  <row Id="28439" PostTypeId="2" ParentId="20927" CreationDate="2010-12-20T23:19:42.360" Score="5" ViewCount="" Body="&lt;p&gt;It really depends what you are looking for, as an organisation that does a lot of dynamic web work involving images, I tend to like to ask a geometry question pertinent to the job.  In any case, I tend to ask a geometry question, as I find it a good maths test that is nice and visual and can show a candidates ability to visually present their working and methodically work through a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For advanced candidates, I occasionally give the following question:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;This image shows a crescent moon.  The width of the crescent from B to D&#xA;  is 9cm and between E and F, 5cm. C is&#xA;  the centre of the larger circle.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;a) Please calculate the area of the crescent.&#xA;  &lt;img src=&quot;http://i.imgur.com/4tJE4.png&quot; alt=&quot;Crescent Moon Maths Question&quot;&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;b) Describe the calculations necessary to resize an image to fit in to the inner circle from any given size, and position it within the circle if the centre point is known.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;For an easier question I usually give the same sort of question, but use the &quot;square within a circle within a square&quot; example.  Though this is very easy, so I would expect perfect algebra on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/ELS5k.jpg&quot; alt=&quot;Square inside a circle inside a square&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over and above that, I tend to ask them to knock up an algorithm for generating all combinations of a variable length data set.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-12-24T23:27:52.240" LastActivityDate="2010-12-24T23:27:52.240" CommunityOwnedDate="2011-02-15T14:41:29.790" CommentCount="27" />
  <row Id="28440" PostTypeId="2" ParentId="27749" CreationDate="2010-12-20T23:33:34.103" Score="0" ViewCount="" Body="&lt;p&gt;There is a book called Pair programming illuminated (ISBN 9780201745764) which describes several aspects of pair programming, among other things teaming up persons with different experience. One of the chapters are named &lt;em&gt;&quot;My Partner Is a Total Loser&quot; and Other Excess Ego Problems&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="11110" LastActivityDate="2010-12-20T23:33:34.103" />
  <row Id="28441" PostTypeId="2" ParentId="27564" CreationDate="2010-12-20T23:35:12.980" Score="2" ViewCount="" Body="&lt;p&gt;Allow to namespace a file from the include call, something like this&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;include('mytemplate.php', 'MyNamespace');&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;include 'mytemplate.php' use MyNamespace;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And start allowing us to import (&quot;use&quot;) namespaces without prefix:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;use OtherNamespace as self;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(instead of having to import each individual class in order to use it without a namespace prefix)&lt;/p&gt;&#xA;" OwnerUserId="11122" LastActivityDate="2010-12-20T23:35:12.980" CommunityOwnedDate="2010-12-20T23:35:12.980" CommentCount="1" />
  <row Id="28442" PostTypeId="2" ParentId="28434" CreationDate="2010-12-20T23:36:11.187" Score="11" ViewCount="" Body="&lt;p&gt;Many of the tenants of Spartan programming just seem like good practise to me. For example, keeping methods short, minimizing the scope of variables, minimizing the number of parameters to a method, or methods to a class, etc. These are all good things and exactly what you should be striving for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But then there's stuff like &lt;a href=&quot;http://ssdl-wiki.cs.technion.ac.il/wiki/index.php/Spartan_programming#Metrics&quot; rel=&quot;nofollow&quot;&gt;minimizing character count&lt;/a&gt;, &lt;a href=&quot;http://ssdl-wiki.cs.technion.ac.il/wiki/index.php/Token_count,_spartan_reduction_of&quot; rel=&quot;nofollow&quot;&gt;minimizing token counts&lt;/a&gt;, &lt;a href=&quot;http://ssdl-wiki.cs.technion.ac.il/wiki/index.php/Ternarization&quot; rel=&quot;nofollow&quot;&gt;ternarization&lt;/a&gt; (seriously?), etc which really make no sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think my main problem with it is exemplified by &lt;a href=&quot;http://ssdl-wiki.cs.technion.ac.il/wiki/index.php/Spartan_programming&quot; rel=&quot;nofollow&quot;&gt;this quote&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;But, spartan programming is more than just a technical coding style, in that is has a single underlying, unifying principle---minimalism and simplicity taken to extremes.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Anything &quot;taken to extremes&quot; rings alarm bells to me.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-20T23:36:11.187" CommentCount="4" />
  <row Id="28443" PostTypeId="2" ParentId="28434" CreationDate="2010-12-20T23:51:12.533" Score="2" ViewCount="" Body="&lt;p&gt;This is an accentuation Compactness of the Cs.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Correctness&lt;/li&gt;&#xA;&lt;li&gt;Completeness&lt;/li&gt;&#xA;&lt;li&gt;Compactness&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;No one cares about your code if it isn't correct.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your code isn't complete (handles every case), then there &lt;em&gt;are&lt;/em&gt; bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it isn't compact than you are wasting memory or clock cycles ( compiler optimizations aside )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note the order here is paramount. The most Compact program is rarely correct. E.G. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void main() {&#xA; return 1; &#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="10928" LastActivityDate="2010-12-20T23:51:12.533" />
  <row Id="28444" PostTypeId="2" ParentId="28434" CreationDate="2010-12-20T23:51:37.910" Score="2" ViewCount="" Body="&lt;p&gt;Now that looked disturbingly familiar. Even the minimizing on the tokens, although not taken to the extremes. I rather use fname than filename for example, out for output, x for the data input, n for counts, l for lengths and so on. lx would be length of x, ly length of y,... you get the drift.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus, as I often manipulate large datasets in scientific applications, I use the index facilities in R a lot. When I write out all those indices, the code hurts my eyes. So index becomes id, or even just i. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even more, the specific loop structures in R (the apply family) often demands of function declaration within the apply call. In those cases I always use x,y,z,... These functions are often one or two lines, so it's clear where it's coming from, and it doesn't clutter the screen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not a bad thing, as long as you have some naming conventions that are coherent through the complete code, and you supply comments to explain the more obscure variable names. In the end, it makes code more readible to me than a long train of camels hobbling over the screen.&lt;/p&gt;&#xA;" OwnerUserId="7268" LastEditorUserId="7268" LastEditorDisplayName="" LastEditDate="2010-12-21T02:04:13.380" LastActivityDate="2010-12-21T02:04:13.380" CommentCount="5" />
  <row Id="28445" PostTypeId="2" ParentId="24936" CreationDate="2010-12-21T00:05:58.590" Score="0" ViewCount="" Body="&lt;p&gt;I'll be blunt.  I adore tools.  I use lots of tools.&#xA;My first step is to lay out the intended paths for flow of state.  My next step is to try and figure out if it's worth it, or if the required flow of information will render the code serial too often.  Then, I'll try and draft some simple models.  These can range from a stack of crude toothpick sculptures to some simple similar examples in python.  Next, I look through a couple of my favorite books, like the little book of semaphores, and see if someone's already come up with a better solution to my problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I start coding.&lt;br&gt;&#xA;Just kidding.  A bit more research first.  I like to sit down with a fellow hacker, and walk through an expected execution of the program at a high level.  If questions come up, we step to a lower level.  It's important to find out if someone else can understand your solution well enough to maintain it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, I start coding.  I try to keep it very simple first.  Just the code path, nothing fancy.  Move as little state as possible.  Avoid writes.  Avoid reads that may conflict with writes.  Avoid, above all else, writes that may conflict with writes.  It's very easy to find that you have a positively toxic number of these, and that your beautiful solution is suddenly little more than a cache-thrashing serial approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good rule is to use frameworks where-ever you can.  If you're writing basic threading components yourself, like good synchronized data structures, or god-forbid, actual synchro-primitives, you are almost certainly going to blow your whole leg off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, tools.  Debugging is very hard.  I use valgrind\callgrind on linux in conjunction with PIN, and parallel studios on windows.  Do not try and debug this stuff by hand.  You probably can.  But you'll probably wish you hadn't.  Ten hours mastering some powerful tools, and some good models will save you hundreds of hours later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Above all else, work incrementally.  Work carefully.  Do not write concurrent code when tired.  Do not write it while hungry.  In fact, if you can avoid it, simply do not write it.  Concurrency is hard, and I have found that many apps that list it as a feature often ship with it as their only feature.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In summary:&lt;br&gt;&#xA;Begin:&lt;br&gt;&#xA;Think&lt;br&gt;&#xA;Talk&lt;br&gt;&#xA;Test&lt;br&gt;&#xA;Write simply&lt;br&gt;&#xA;Read&lt;br&gt;&#xA;Test&lt;br&gt;&#xA;Write&lt;br&gt;&#xA;Debug&lt;br&gt;&#xA;GOTO Begin&lt;/p&gt;&#xA;" OwnerUserId="10011" LastActivityDate="2010-12-21T00:05:58.590" />
  <row Id="28446" PostTypeId="2" ParentId="20927" CreationDate="2010-12-21T00:14:07.393" Score="2" ViewCount="" Body="&lt;p&gt;Write an algorithm for the following problem: &lt;strong&gt;Given a number &lt;em&gt;n&lt;/em&gt;, output the total number of (unique) binary trees that have &lt;em&gt;n&lt;/em&gt; nodes.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thus, for &lt;em&gt;n&lt;/em&gt;=0 and &lt;em&gt;n&lt;/em&gt;=1, the answer is 1. For &lt;em&gt;n&lt;/em&gt;=2, you have 2: the root node, and then the second node either to the left or the right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can gain insight into design techniques and to see if they think of recursion or memoization or the dynamic programming solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[See also this StackOverflow &lt;a href=&quot;http://stackoverflow.com/questions/1352776/the-possible-number-of-binary-search-trees-that-can-be-created-with-n-keys-is-giv&quot;&gt;discussion&lt;/a&gt; for the related, but different, case of binary-search trees.]&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-12-21T00:19:11.773" LastActivityDate="2010-12-21T00:19:11.773" CommunityOwnedDate="2011-02-15T14:41:29.790" CommentCount="5" />
  <row Id="28447" PostTypeId="2" ParentId="24936" CreationDate="2010-12-21T00:32:17.837" Score="1" ViewCount="" Body="&lt;p&gt;I disagree with your statement that C is not designed for concurrency. C is designed for general systems programming and enjoys a tenacity for pointing out critical decisions to be made, and will continue to do so for years to come. This is true even when the best decision might be not to use C. Additionally, concurrency in C is only as difficult as your design is complex.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I try, to the best of my ability, to implement locks with the idea that eventually, truly &lt;em&gt;practical&lt;/em&gt; lock free programming might become a reality for me. By locking, I don't mean mutual exclusion, I simply mean a process that implements safe concurrency without the need for arbitration. By practical, I mean something that is easier to port than it was to implement. I have very little formal CS training as well, but I suppose that I'm permitted to wish :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Following that, most bugs that I encounter become relatively shallow, or so completely mind boggling that I retreat to a pub. The pub becomes an attractive option only when profiling a program slows it down sufficiently to expose additional races that aren't related to what I'm trying to find.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As others have pointed out, the problem that you describe is extremely domain specific. I just try, with the best of my ability to avoid any case that might require arbitration (outside of my process) whenever possible. If that looks like it might be a regal pain, I re-evaluate the option of giving multiple threads or processes concurrent and unserialized access to something. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then again, throw 'distributed' in there and arbitration becomes a must. Do you have a specific example?&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-21T00:32:17.837" CommentCount="1" />
  <row Id="28448" PostTypeId="2" ParentId="5259" CreationDate="2010-12-21T00:35:04.543" Score="1" ViewCount="" Body="&lt;p&gt;It sounds like he's motivated to change his career, so the steps you take must build toward that goal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If he has a Bachelors now would be a good time to go back part time for a Master's. He may want to take one class at a time at first, and even retake the more difficult undergraduate classes like algorithms and operating systems. He could even retake the introductory course, particularly if it uses a language that the later courses build on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know some student who are able to work full-time and take even two master's courses a semester. At that rate, you can get a Master's degree in four years, with plenty of time to practice and be ready. With a freshly minted degree, he won't have to explain why he hasn't been programming for five years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if he just wants to polish a lost skill, and isn't looking for a career, this lack of motivation is sufficient notice that he should spend his energies elsewhere. &lt;em&gt;[I'll be happy to update this reply if any more specific information about his circumstances is available.]&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-21T00:35:04.543" CommentCount="2" />
  <row Id="28450" PostTypeId="2" ParentId="28230" CreationDate="2010-12-21T00:55:05.250" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://learnyousomeerlang.com/&quot; rel=&quot;nofollow&quot;&gt;Learn You Some Erlang&lt;/a&gt; looks good to me, although it's still only on my &quot;must read&quot; list, not on my &quot;have already read&quot; list, so I can't give you any guarantees. &lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-12-21T00:55:05.250" CommentCount="3" />
  <row Id="28451" PostTypeId="2" ParentId="5259" CreationDate="2010-12-21T00:58:14.697" Score="1" ViewCount="" Body="&lt;p&gt;Start by thinking about him as though he is a fully competent programmer, and the last time he used his programming skills was yesterday.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;If you want to convince him that Objective HaskellML++ is the language of the future, then convince him same way you'd convince someone who is &lt;em&gt;currently&lt;/em&gt; a professional C++ programmer.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you want to introduce him to a project, approach the issue (almost) the same way you would if he had quit his programming job last week to take care of his dying mother and was looking for a project to join as a hobby to keep himself fresh, and to take his mind off the situation.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Only assume he lost his skill and needs to be &quot;retrained&quot; if you realize in the course of treating him as a competent professional that he actually has forgotten something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And don't assume that C++ on Linux is outdated. There's plenty for him to do with that skill set.&lt;/p&gt;&#xA;" OwnerUserId="1961" LastEditorUserId="1961" LastEditorDisplayName="" LastEditDate="2010-12-21T03:14:40.793" LastActivityDate="2010-12-21T03:14:40.793" CommentCount="1" />
  <row Id="28452" PostTypeId="2" ParentId="28314" CreationDate="2010-12-21T01:18:02.737" Score="0" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;return (a + b + c) - max(a, b, c) - min(a, b, c); &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I was going to try to do this using ternary but figured that if you could get the max and low with ternaries than you would by definition know the median&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know this doesn't answer the question, I just thought of it and wanted to share&lt;/p&gt;&#xA;" OwnerUserId="11128" LastActivityDate="2010-12-21T01:18:02.737" CommunityOwnedDate="2011-01-25T19:46:08.053" />
  <row Id="28453" PostTypeId="1" CreationDate="2010-12-21T01:18:11.720" Score="12" ViewCount="771" Body="&lt;p&gt;I'm looking to broaden my development repertoire. Simply, if you had to pick 3-4 languages to learn that offered the most diverse variety in styles and thought processes, what would those languages be?&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2011-05-02T19:15:27.120" CommunityOwnedDate="2011-05-02T19:15:27.120" Title="What 3-4 languages provide the best variety in style?" Tags="&lt;programming-languages&gt;&lt;learning&gt;" AnswerCount="16" CommentCount="4" FavoriteCount="7" />
  <row Id="28454" PostTypeId="1" AcceptedAnswerId="28479" CreationDate="2010-12-21T01:18:41.313" Score="3" ViewCount="171" Body="&lt;p&gt;As a complete newbie, I  am curious as to what I should undertake after finishing &lt;em&gt;&lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book.html&quot; rel=&quot;nofollow&quot;&gt;Structure and Interpretation of Computer Programs&lt;/a&gt;&lt;/em&gt; (along with the MIT course). I am primarily interested in building desktop applications, and secondarily interested in web development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do I grasp the essence of desktop programming? And web?&#xA;Are there any particular books or courses that survey the various areas of programming and the tools I need to build something solid?&lt;/p&gt;&#xA;" OwnerUserId="11129" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-12-21T01:37:22.407" LastActivityDate="2010-12-21T05:33:33.590" Title="After SICP? Interested in Web and Desktop programming." Tags="&lt;learning&gt;&lt;advice&gt;&lt;intro-to-programming&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="28455" PostTypeId="2" ParentId="28453" CreationDate="2010-12-21T01:26:42.403" Score="11" ViewCount="" Body="&lt;p&gt;A hard call, but my personal selection would be:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Functional: &lt;strong&gt;Haskell&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;OOP: &lt;strong&gt;Java&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Script: &lt;strong&gt;Perl&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Logic: &lt;strong&gt;Prolog&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The choices within the categories are because they offer the most distinctive experience of the styles given within their class.  Not because they are best in their class, just furthest in to them for experience purposes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also recommend a &lt;strong&gt;Lisp/Scheme&lt;/strong&gt;, and an &lt;strong&gt;assembler&lt;/strong&gt; of some sorts.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastEditorUserId="7990" LastEditorDisplayName="" LastEditDate="2010-12-22T12:57:56.677" LastActivityDate="2010-12-22T12:57:56.677" CommunityOwnedDate="2011-05-02T19:15:27.120" CommentCount="27" />
  <row Id="28456" PostTypeId="2" ParentId="28453" CreationDate="2010-12-21T01:32:44.547" Score="15" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;Haskell / C++ / LISP / Perl&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... may Gawd help you with this one ...&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-21T01:32:44.547" CommunityOwnedDate="2011-05-02T19:15:27.120" CommentCount="4" />
  <row Id="28457" PostTypeId="1" AcceptedAnswerId="28460" CreationDate="2010-12-21T01:39:10.267" Score="4" ViewCount="635" Body="&lt;p&gt;Hi everyone, i've taking part in some conversations around here and it seems like choosing a programming language is an event like, wether you like coca-cola or pepsi, you cant like both. Sometimes its even worse, some people dont consider there are any other programming languages there expect the ones they prefere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well my question is: Is THAT important the programming language decitions? Or maybe its a marketing scheme where companies buy it and then programmes suffer it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And further more, it should not be the other way around, companies ask for general developing skills and then train their human resources to accomplish a goal ( if the problem is concurrent, then use your concurrrent skill to develop in this specific language)?&lt;/p&gt;&#xA;" OwnerUserId="10785" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-21T04:42:51.137" LastActivityDate="2010-12-21T06:58:24.143" Title="Choosing a Programming Language" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;job-market&gt;" AnswerCount="10" CommentCount="3" />
  <row Id="28458" PostTypeId="1" CreationDate="2010-12-21T01:41:00.310" Score="3" ViewCount="113" Body="&lt;p&gt;Hi All&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am in the initial stage of analyzing a platform for my startup and I am exploring both the cloud computing and web hosting before I initiate developement.  I am quite proficient in both .NET and the java platform and hence I am hoping to get your feedback for helping me with some ideas/directions.  Here are is the feature set that I am looking for &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Robust platform (must have)&lt;/li&gt;&#xA;&lt;li&gt;Persistence a.l.a {Big table/Cassandra style or RDBMS} ( must have)&lt;/li&gt;&#xA;&lt;li&gt;Message queueing frameworks like ActiveMQ (Must have)&lt;/li&gt;&#xA;&lt;li&gt;Full text search and advance features - Lucene and Solr (Must have)&lt;/li&gt;&#xA;&lt;li&gt;Memcached  (Must have)&lt;/li&gt;&#xA;&lt;li&gt;Background/Offline services (Must have)&lt;/li&gt;&#xA;&lt;li&gt;Hosted SSL (Must have)&lt;/li&gt;&#xA;&lt;li&gt;Ability to support RESTful webservices (Must have)&lt;/li&gt;&#xA;&lt;li&gt;Support for fast prototyping and deployment (Must have)&lt;/li&gt;&#xA;&lt;li&gt;Storage on file system (Nice to have)&lt;/li&gt;&#xA;&lt;li&gt;Easy administration, support for scaling, monitoring and profiling (Must have)&lt;/li&gt;&#xA;&lt;li&gt;Transparent billing and accounting (Must have)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I have looked at Google App engine and although it looks quite appealing, I don't think it supports full text search (what an irony) or messaging which would be dealbreakers for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have also looked at hosting solutions ( e.g. www.justhost.com) and they too don't offer messaging and support for indexing/full text search etc. So I am wondering what are my options.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do I need to buy own server farm and talk to my ISP?  If so, are there any ISPs that you can recommend? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please advise on how I can go about selecting an appropriate platform&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Venu&lt;/p&gt;&#xA;" OwnerUserId="11098" LastActivityDate="2011-01-22T11:53:13.727" Title="Cloud computing / web hosting solution suggestion" Tags="&lt;productivity&gt;&lt;cloud&gt;&lt;platform&gt;&lt;entrepreneurship&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="28459" PostTypeId="2" ParentId="28454" CreationDate="2010-12-21T01:41:56.800" Score="2" ViewCount="" Body="&lt;p&gt;A nice follow up and complement to &lt;em&gt;Structure and Interpretation of Computer Programs&lt;/em&gt; is &lt;em&gt;&lt;a href=&quot;http://www.htdp.org/&quot; rel=&quot;nofollow&quot;&gt;How to Design Programs&lt;/a&gt;&lt;/em&gt;, which will give you a different perspective on Scheme and help you grow as a programmer, helping you move on from the basics and work toward design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The book is by the same people responsible for PLT Scheme, which &lt;a href=&quot;http://racket-lang.org/new-name.html&quot; rel=&quot;nofollow&quot;&gt;is now called Racket&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-21T01:41:56.800" />
  <row Id="28460" PostTypeId="2" ParentId="28457" CreationDate="2010-12-21T01:44:08.963" Score="24" ViewCount="" Body="&lt;p&gt;A craftsman uses many tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;His skill set does not usually depend on the make or quality of the tools, just his ease of use with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn cooking not cutlery, poetry not pens.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-21T01:44:08.963" CommentCount="5" />
  <row Id="28461" PostTypeId="1" CreationDate="2010-12-21T01:50:35.650" Score="5" ViewCount="354" Body="&lt;p&gt;I'm studying computer science at university, and so for a long time I thought I'm a left-brainer (which I guess is the normal case for people working in the field of IT). But recently I noticed that I am in fact a right-brainer, and so I'm wondering what other right-brainers in IT do to work better and be more productive with respect to their preferred style of thinking.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-21T14:06:55.277" Title="As a right-brainer, how do I become a better software developer/computer scientist?" Tags="&lt;tips&gt;&lt;technique&gt;&lt;thinking&gt;&lt;right-brain&gt;" AnswerCount="6" CommentCount="5" />
  <row Id="28462" PostTypeId="2" ParentId="28457" CreationDate="2010-12-21T01:50:52.597" Score="2" ViewCount="" Body="&lt;p&gt;Language is a tool, in this point, THAT is not so important. but on the other hand, good language can show you the computer's world. just like c&amp;amp;c++. in my opinion, if you master c&amp;amp;c++, to learning the other language is so easy. because c &amp;amp;c++ could show u not only the thing about program language but also the thing about hardware. perhaps that is the reason why somebody call the c is pc's mother language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ps,my english is very poor. wish you get it.&lt;/p&gt;&#xA;" OwnerUserId="10252" LastActivityDate="2010-12-21T01:50:52.597" CommentCount="5" />
  <row Id="28463" PostTypeId="2" ParentId="28461" CreationDate="2010-12-21T01:54:10.767" Score="19" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;so I'm wondering what other right-brainers in IT do to work better and be more productive with respect to their preferred style of thinking&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a start, they don't think about all that pseudo-proven-left/right-brain-stuff and they concentrate on their actual work. Hard work pays off. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Talent helps (but isn't necessary).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nothing else.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-21T01:54:10.767" CommentCount="6" />
  <row Id="28464" PostTypeId="2" ParentId="28461" CreationDate="2010-12-21T01:54:43.480" Score="5" ViewCount="" Body="&lt;p&gt;Study functional programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm guessing that you normally develop in an imperative, object-oriented language like Java.  Learning a functional language will change the way you think about algorithms and computing, and will make you a better programmer the rest of your days, even if your primary language isn't a functional one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some potential language candidates: Clojure, Haskell and &lt;a href=&quot;http://racket-lang.org/&quot; rel=&quot;nofollow&quot;&gt;Racket.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-21T04:13:12.910" LastActivityDate="2010-12-21T04:13:12.910" CommentCount="3" />
  <row Id="28466" PostTypeId="2" ParentId="28457" CreationDate="2010-12-21T02:00:14.633" Score="6" ViewCount="" Body="&lt;p&gt;As many people are saying here, Programming is a state of mind, the rest are just syntax. So try and learn as many languages, concepts, and paradigms as you can, then stick to the one you're most comfortable with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being specialized in a certain technology shows your dedication in learning. Good companies usually look for people with that kind of dedication, and not just people who know the technology already because they want people who can adapt to the rapid change that's happening in our field.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the company you're applying for is really persistent in looking for someone with knowledge of the said technology, maybe you should think twice in applying for them, and look for another company who can appreciate your willingness to learn.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-12-21T02:00:14.633" CommentCount="3" />
  <row Id="28467" PostTypeId="2" ParentId="28453" CreationDate="2010-12-21T02:19:19.077" Score="9" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;C: because that's how machines work.&lt;/li&gt;&#xA;&lt;li&gt;Python (or maybe Ruby, or even Perl): dynamic scripting languages, immensely practical.&lt;/li&gt;&#xA;&lt;li&gt;JavaScript: how a great design can be atrociously implemented and still succeed.&lt;/li&gt;&#xA;&lt;li&gt;LISP or Lua: unmatched elegance, rediscover the joy of creating things of beauty.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;hum... I've left out any static, class-based, OOP like Java, C++ or C#... It's an important category; but I'd gladly trade it for any of the mentioned.  Well, not exactly, I really hate JavaScript and really like C++; but the hard lessons of the mistakes in the history of JS are really valuable.&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-12-21T02:19:19.077" CommunityOwnedDate="2011-05-02T19:15:27.120" CommentCount="6" />
  <row Id="28468" PostTypeId="1" CreationDate="2010-12-21T02:30:12.137" Score="0" ViewCount="175" Body="&lt;p&gt;How many key bindings are there in your brain? I personally use Intellij Idea as my primary IDE for development, but sometimes switch to Eclipse and Netbeans a bit, and sometimes I use Jedit,Notepad++, Emacs, Vim.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am always trying to find a perfect key bindings that I can use crossing all the editors.&#xA;What's your idea to solve this problem?&lt;/p&gt;&#xA;" OwnerUserId="11133" LastActivityDate="2010-12-21T05:36:42.777" Title="Key bindings war in my brain" Tags="&lt;programming-practices&gt;&lt;ide&gt;&lt;text-editor&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="28469" PostTypeId="2" ParentId="28314" CreationDate="2010-12-21T02:38:24.207" Score="0" ViewCount="" Body="&lt;p&gt;Anything that makes your code uglier is evil.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you use ternary to make your code cleaner then sure use it. Sometimes in like php it's great to do inline substitutions, e.g. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&quot;Hello &quot;.($Male?&quot;Mr&quot;:&quot;Ms&quot;).&quot; $Name&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That saves a few lines, and it pretty clear, but your example needs at least better formatting to be clear, and ternary isn't really good for multi-line, then you might as well use if/else.&lt;/p&gt;&#xA;" OwnerUserId="11134" LastActivityDate="2010-12-21T02:38:24.207" CommunityOwnedDate="2011-01-25T19:46:08.053" />
  <row Id="28470" PostTypeId="2" ParentId="28434" CreationDate="2010-12-21T02:41:35.547" Score="1" ViewCount="" Body="&lt;p&gt;Wow, I actually program like this, didn't know it had a name. I would say it benefits readability but more in a spatial way... meaning you don't get lost in a soup of code even if you have few lines that are kind of hard to read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I'd say that when you get used to certain constructs you find your way easier in less time than at the very start.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-21T02:41:35.547" />
  <row Id="28471" PostTypeId="2" ParentId="28468" CreationDate="2010-12-21T02:46:24.160" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Choose Vim (or I guess Emacs, if you're that kind of person)&lt;/li&gt;&#xA;&lt;li&gt;Set your bindings in everything else to mimic that.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Alternative 2.: Why are you using a separate IDE? Just stick with Vim.&lt;/p&gt;&#xA;" OwnerUserId="9029" LastActivityDate="2010-12-21T02:46:24.160" CommentCount="3" />
  <row Id="28472" PostTypeId="2" ParentId="28314" CreationDate="2010-12-21T02:47:03.700" Score="0" ViewCount="" Body="&lt;p&gt;As others said, its a blessing, but I always use parenthesis to read expressions easier:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;a = (x == y)?(&#xA;  (a&amp;gt;0)?(&#xA;    a-1&#xA;  ):(b)&#xA;):(&#xA;  (b&amp;lt;0)?(&#xA;    b+1&#xA;  ):(a)&#xA;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-21T02:47:03.700" CommunityOwnedDate="2011-01-25T19:46:08.053" />
  <row Id="28473" PostTypeId="2" ParentId="28314" CreationDate="2010-12-21T02:48:37.677" Score="0" ViewCount="" Body="&lt;p&gt;Wow! Whoever wrote this is either trying to compensate for something or is just plain evil. Was this an entry in some kind of obfuscated code contest?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As everyone else has already said code should be readable and people shouldn't have to reconstruct parts of the compiler in order to understand what a line of code is doing.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-21T02:48:37.677" CommunityOwnedDate="2011-01-25T19:46:08.053" />
  <row Id="28474" PostTypeId="2" ParentId="28453" CreationDate="2010-12-21T02:54:22.947" Score="13" ViewCount="" Body="&lt;p&gt;Some really good answers so far. I'd highly recommend checking out the book &quot;Seven Languages in Seven Weeks&quot; by Bruce Tate from Pragmatic Programmers. He goes through 7 different languages (Ruby, Io, Prolog, Clojure, Erlang, Haskell and Scala). I've been working through it myself and it gives a great intro to each language and gives you a chance to explore different programming paradigms between OO, Prototype, Declarative, Functional and a couple hybrids.&lt;/p&gt;&#xA;" OwnerUserId="3225" LastActivityDate="2010-12-21T02:54:22.947" CommunityOwnedDate="2011-05-02T19:15:27.120" CommentCount="7" />
  <row Id="28475" PostTypeId="2" ParentId="28314" CreationDate="2010-12-21T02:55:12.510" Score="0" ViewCount="" Body="&lt;p&gt;Far from being evil, the ternary operator is a godsend.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;It is most useful when you want to make a decision in a &lt;em&gt;nested&lt;/em&gt; expression.  The classic example is a function call:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;printf(&quot;I see %d evil construct%s in this program\n&quot;, n, n == 1 ? &quot;&quot; : &quot;s&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;In your particular example, the ternary is nearly gratuitous, since it is the top-level expression under a &lt;code&gt;return&lt;/code&gt;.  You can lift the conditional out to the statement level without duplicating anything other than the &lt;code&gt;return&lt;/code&gt; keyword.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;N.B. Nothing will ever make that particular algorithm for median easy to read.&lt;/p&gt;&#xA;" OwnerUserId="11136" LastActivityDate="2010-12-21T02:55:12.510" CommunityOwnedDate="2011-01-25T19:46:08.053" />
  <row Id="28476" PostTypeId="2" ParentId="28461" CreationDate="2010-12-21T03:03:24.030" Score="7" ViewCount="" Body="&lt;p&gt;This dichotomy is nonsense. There is no left brain vs right brain advantage when it comes to programming. I've been a visual thinker my entire life and I've never had any problems picking up technical matters that require a ton of logical or what people call left brain, linear, verbal thinking. Programming or any other domain that requires problem solving is all about knowing how to combine various bits and pieces of information into a coherent whole. How you go about it is absolutely irrelevant.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-21T03:03:24.030" CommentCount="1" />
  <row Id="28477" PostTypeId="2" ParentId="28461" CreationDate="2010-12-21T03:09:39.343" Score="2" ViewCount="" Body="&lt;p&gt;Become a software architect: &lt;a href=&quot;http://www.infoq.com/articles/brown-are-you-a-software-architect&quot; rel=&quot;nofollow&quot;&gt;http://www.infoq.com/articles/brown-are-you-a-software-architect&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right-brainers supposedly look at wholes, being a software architect you always have to work with the bigger picture, needing to be more creative and sometimes thinking outside the box.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-21T03:09:39.343" />
  <row Id="28478" PostTypeId="2" ParentId="28230" CreationDate="2010-12-21T03:15:25.627" Score="2" ViewCount="" Body="&lt;p&gt;The book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/193435600X&quot; rel=&quot;nofollow&quot;&gt;&quot;Programming Erlang&quot;&lt;/a&gt; written by Joe Armstrong, one of the creators of the language, is a great reference/tutorial for the language. It's easy going and assumes a person is coming from a procedural background and gently eases into various aspects of the functional/concurrent paradigm.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-21T03:15:25.627" />
  <row Id="28479" PostTypeId="2" ParentId="28454" CreationDate="2010-12-21T03:22:15.183" Score="-1" ViewCount="" Body="&lt;p&gt;The distinction between desktop and web applications is practically non-existent at this point. Most desktop application now have some kind of net connectivity and with various frameworks like Adobe Air you can develop &quot;web&quot; applications that pretend they are desktop applications. I consider myself a web developer so I can't say how you would get into desktop application development but if you want to start with web development then &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596521871&quot; rel=&quot;nofollow&quot;&gt;&quot;Learning Javascript&quot;&lt;/a&gt; by Shelley Powers should be a good starting point.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-21T03:22:15.183" />
  <row Id="28480" PostTypeId="2" ParentId="28417" CreationDate="2010-12-21T03:24:12.180" Score="2" ViewCount="" Body="&lt;p&gt;I'm currently doing three concurrent freelance gigs, primarily in C and/or C++. These range $75-95 per hour, and I'm turning down new work. I've historically gotten as much as $109 for writing C and C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To routinely get a high freelance rate, you have to:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Be a great match for somebody's needs, especially if that involves a hard-to-find skill you have&lt;/li&gt;&#xA;&lt;li&gt;Have a track record of on-time delivery with solid references&lt;/li&gt;&#xA;&lt;li&gt;Give your customers a lot of bang for their buck&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Knowing a particular computer language is part of #1, so it's necessary but not sufficient to get a high rate. I avoid competing with average C/C++ freelancers by learning hard to find, unusual, and cutting-edge technologies, and being very professional.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you what you deliver deserves a high rate, you comport yourself like you deserve it, and walk away from anybody who won't meet it, you will get it.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-21T03:24:12.180" CommentCount="4" />
  <row Id="28481" PostTypeId="2" ParentId="28306" CreationDate="2010-12-21T03:29:56.630" Score="0" ViewCount="" Body="&lt;p&gt;Why aren't you using Firebug? In particular there is an extension called &lt;a href=&quot;http://getfirebug.com/wiki/index.php/Firebug_Extensions#Firesymfony&quot; rel=&quot;nofollow&quot;&gt;Firesymfony&lt;/a&gt; that integrates PHP debugging support from the Symfony framework but there are other extensions that might be more suitable for what you are trying to do.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-21T03:29:56.630" CommentCount="1" />
  <row Id="28482" PostTypeId="2" ParentId="20128" CreationDate="2010-12-21T03:33:30.003" Score="0" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Heap_%28data_structure%29&quot; rel=&quot;nofollow&quot;&gt;heap&lt;/a&gt; data structure and its associated algorithms for heap construction and maintenance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And show some respect for quicksort. Even if it is not always the sort of choice, it is one of the fundamental algorithms in the historical development of computer science, and is a great vehicle for understanding recursion and algorithm analysis. It is beautiful, and yes, I love it.&lt;/p&gt;&#xA;" OwnerUserId="2463" LastActivityDate="2010-12-21T03:33:30.003" CommunityOwnedDate="2011-02-13T09:34:31.083" />
  <row Id="28483" PostTypeId="2" ParentId="9215" CreationDate="2010-12-21T03:42:13.123" Score="1" ViewCount="" Body="&lt;p&gt;Boss discusses a lot of things ,plans and probably new projects then asks:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;When will you get this thing done? give me a timeline.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="11140" LastActivityDate="2010-12-21T03:42:13.123" CommunityOwnedDate="2010-12-21T03:42:13.123" />
  <row Id="28484" PostTypeId="1" AcceptedAnswerId="28498" CreationDate="2010-12-21T03:52:01.960" Score="3" ViewCount="285" Body="&lt;p&gt;When is something language agnostic? Why is it called that way?&lt;/p&gt;&#xA;" OwnerUserId="8486" LastEditorUserId="8486" LastEditorDisplayName="" LastEditDate="2010-12-21T04:30:44.110" LastActivityDate="2011-04-02T02:26:15.177" Title="What is language-agnosticism and why is it called that way?" Tags="&lt;programming-languages&gt;&lt;terminology&gt;&lt;language-agnostic&gt;&lt;etymology&gt;" AnswerCount="4" CommentCount="7" />
  <row Id="28485" PostTypeId="2" ParentId="28457" CreationDate="2010-12-21T04:00:00.377" Score="-2" ViewCount="" Body="&lt;p&gt;No, no, no! Programming languages (if you will excuse the misogynistic tone) are like women. You may prefer blondes, but you can certainly appreciate a redhead or brunette.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, programming languages are nothing like women, other than they will frustrate you, keep you awake at night, and just when you think you've figured them out, along comes some random detail that messes up weeks of effort.&lt;/p&gt;&#xA;" OwnerUserId="9540" LastActivityDate="2010-12-21T04:00:00.377" CommentCount="3" />
  <row Id="28486" PostTypeId="2" ParentId="28461" CreationDate="2010-12-21T04:09:24.820" Score="5" ViewCount="" Body="&lt;p&gt;Right brain, left brain labels are very broad generalizations. They don't mean much except to pop-culture/pop-psychology blogs that want to appeal to the masses. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I suggest you focus on what you feel comfortable doing. Don't know what that is? Then you haven't done enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start doing more and you, and those working with you, will figure out if you have any actual talents. It may be discovered that you are one of the many &quot;no brainers&quot; out there. Or maybe you are a ambidextrous brainer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In sort. If you are worried about this you probably are focused on the wrong thing. &lt;/p&gt;&#xA;" OwnerUserId="5184" LastEditorUserId="5184" LastEditorDisplayName="" LastEditDate="2010-12-21T13:52:23.590" LastActivityDate="2010-12-21T13:52:23.590" />
  <row Id="28487" PostTypeId="2" ParentId="28457" CreationDate="2010-12-21T04:14:49.873" Score="1" ViewCount="" Body="&lt;p&gt;The best tool for the job, of course.  But sometimes you'll find yourself fixing a bookshelf that requires an Allen wrench because it was built with hex keys.&lt;/p&gt;&#xA;" OwnerUserId="10397" LastActivityDate="2010-12-21T04:14:49.873" />
  <row Id="28488" PostTypeId="2" ParentId="28484" CreationDate="2010-12-21T04:15:31.527" Score="3" ViewCount="" Body="&lt;p&gt;I haven't heard the term before, however, I would assume it means learning aspects of programming that are independent of any specific programming language.&lt;/p&gt;&#xA;" OwnerUserId="7682" LastActivityDate="2010-12-21T04:15:31.527" CommentCount="6" />
  <row Id="28489" PostTypeId="2" ParentId="28484" CreationDate="2010-12-21T04:23:59.280" Score="3" ViewCount="" Body="&lt;p&gt;Paradigms or features that aren't applied to only one language.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-21T04:23:59.280" />
  <row Id="28490" PostTypeId="2" ParentId="28331" CreationDate="2010-12-21T04:34:37.443" Score="2" ViewCount="" Body="&lt;p&gt;Look at this from the business side.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You take more time to produce buggier code. You produce less revenue therefore you suck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If, over time, you can reverse this then you can reverse this. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But maybe, just maybe, this antiquated programmer can actually teach you a couple of things about producing code quickly that is so bug free? Maybe his techniques are not so old school as you think?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find it suspect that somebody can produce such great code without some very good practices. You might be able to learn those practices and apply them to the &quot;best practices&quot; and trendy things that you understand.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-12-21T04:34:37.443" />
  <row Id="28491" PostTypeId="2" ParentId="28417" CreationDate="2010-12-21T04:57:42.693" Score="0" ViewCount="" Body="&lt;p&gt;a while ago i read somewhere (and unfortunately i don't know where but i DO remember that it was a reliable scource) that FORTRAN-programmers earn a lot of money. &#xA;but in general i agree that it depends on the field you are working on and on the company you are working for. if you program embedded systems in c for lockheed martin you will most probably get more than when working for a startup doing embedded c-programming. &#xA;my experience is also that you get more money for mastering languages like c/c++, FORTRAN, lisp or so rather than java, or .net languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;greetings from berlin  &lt;/p&gt;&#xA;" OwnerUserId="11083" LastActivityDate="2010-12-21T04:57:42.693" />
  <row Id="28492" PostTypeId="2" ParentId="28457" CreationDate="2010-12-21T05:02:21.387" Score="1" ViewCount="" Body="&lt;p&gt;I currently am working two jobs. One is building an application c#/wpf using MVVM framework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other is a web application with a Python backend/ javascript front end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can say, not all languages are the same. Some will push you down different architectural and design paths. If you're the sort of person who likes rigid interfaces, lots of compile time checking and knowing what will happen up front - go the C#/Java/C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you like the duck-typing, just try it and see what falls over, let's create a variable out of the ether - then Python/Javascript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The choice of language is also likely to match the choice of management style. Big, rigidly typed languages may suffer a bit under an Agile environment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really want to stretch your brain, try doing both at the same time like I am.&lt;/p&gt;&#xA;" OwnerUserId="10208" LastActivityDate="2010-12-21T05:02:21.387" />
  <row Id="28493" PostTypeId="2" ParentId="24097" CreationDate="2010-12-21T05:08:09.650" Score="1" ViewCount="" Body="&lt;p&gt;I went for a job and an investment firm, but never actually worked there.I also worked in a company that maintained share registry information for 10 years. I'm not sure if that gives me more or less experience then the comments above (a lot seems like guess work).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main thing I notices was the job looks really boring. They were interviewing to top level coders, but then getting them to do mundane work that had to absolutely work. Kinda like getting fighter pilots to fly 747s just in case something goes wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The place I was going for required a bit of travelling as well as many firms have a presence in several countries. The business rules in each country tend to be radically different so there was lots of rules to learn.&lt;/p&gt;&#xA;" OwnerUserId="10208" LastActivityDate="2010-12-21T05:08:09.650" />
  <row Id="28494" PostTypeId="2" ParentId="28457" CreationDate="2010-12-21T05:11:16.960" Score="1" ViewCount="" Body="&lt;p&gt;In the perfect world we would have all tools available to us.  Maybe I can have a bash CGI script to do a few complicated things, Perl for a few pages, PHP for some templating quick &amp;amp; dirties and let's throw in some FORTRAN for some batch maths processing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But this world ain't perfect.  A &lt;em&gt;lot&lt;/em&gt; of software needs to be sold, and supported and teams and processes put behind it.  Calculations may take 130% of CPU- and wall-clock time in Java over FORTRAN, but I've got a much more supported platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The language of choice in these worlds solves (only in part):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;All necessary business problems,&lt;/li&gt;&#xA;&lt;li&gt;A maintainable and understandable syntax (e.g. does perl fit? really?)&lt;/li&gt;&#xA;&lt;li&gt;A pool of talent both captive and contract that can be demanded-in when necessary that have core competencies in the language,&lt;/li&gt;&#xA;&lt;li&gt;Ability to throw hardware at the stack/language,&lt;/li&gt;&#xA;&lt;li&gt;Easy middleware &lt;/li&gt;&#xA;&lt;li&gt;Full connectivity support from database vendors.  Like it or not, nearly all necessary data is &lt;em&gt;eventually&lt;/em&gt; durable in a DB somewhere.&lt;/li&gt;&#xA;&lt;li&gt;Can you port the &lt;em&gt;whole&lt;/em&gt; thing to the vast majority of your customers landscapes?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Add your own list to the above.  But language choice is (unfortunately) much more about being just a tool in the toolbox.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-12-21T05:11:16.960" CommentCount="3" />
  <row Id="28495" PostTypeId="2" ParentId="28457" CreationDate="2010-12-21T05:23:04.503" Score="1" ViewCount="" Body="&lt;p&gt;Programming Languages are not too dissimilar from Natural languages in this sense. They can all get the job done, by conveying what you want - the ease of conveying something depends on the language. There are probably more words for beauty in French, than there are in Hindi; Chinese has a way of combining words to form bigger meta-words,that add power to the speaker; English is simple to pickup without gender, and all that extra jazz.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, it depends. There are entire paradigms and styles of thought to choose from. Then there is ease of learning. And finally there is the need for a good support community if one has to write larger, meaningful programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most languages are &quot;abstracted&quot; away in large projects, with a plethora of library functions, macros, templates, decorators, etc.. Lisp does this most naturally, but large projects in C-like languages tend to do this too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All said and done, learning to program, i.e., to instruct the computer -- the machine, is most important. That skill cannot be replaced.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Languages are but means to get to an end. The choice does matter, but none too much.&lt;/p&gt;&#xA;" OwnerUserId="11145" LastActivityDate="2010-12-21T05:23:04.503" />
  <row Id="28496" PostTypeId="2" ParentId="28331" CreationDate="2010-12-21T05:23:51.973" Score="1" ViewCount="" Body="&lt;p&gt;Challenge him (in a good way) to prove you otherwise, show him the cool side of the tools and practices. Don't patronize.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, perhaps he doesn't believe in versioning as an aid, but show him how branching/merging and how he can work on several experimental features without needing to have a bloat of files.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding OOP, show him some cool/complex design patterns, such as the command pattern, the task pattern and how it can save him valuable time, and all of your team .&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't have him interested in the slightest... he might be a lost case, but then again, you have the tools for your team and you to outperform him. Try to use a repository software that shows/emails commit messages your manager can see, that will bring transparency to your manager and leave your coworker out of the picture (bitbucket.org has free private repositories with unlimited space, if you use mercurial).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, don't try to convince with words but with irrefutable actions, that is the best &#xA;way to deal with stubborn people IMHO (reverse psychology works sometimes too, lol).&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-21T05:23:51.973" />
  <row Id="28497" PostTypeId="2" ParentId="28468" CreationDate="2010-12-21T05:28:54.240" Score="1" ViewCount="" Body="&lt;p&gt;According to me, you should know any one editor/IDE fully, and a little bit of everyone of the others. e.g. I know Emacs most than others, Vim a little less than emacs, and knows where to click in visual studio. Each of the editor/ide is created with certain ideas in mind and the default key bindings are the best suited for that idea. So better to learn those than to try changing those. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-21T05:28:54.240" />
  <row Id="28498" PostTypeId="2" ParentId="28484" CreationDate="2010-12-21T05:29:19.167" Score="9" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Language agnostic&lt;/em&gt; refers to aspects of programming that are independent of any specific programming language. At least, that's how I've heard it used for the last thirty years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The world &quot;agnostic&quot; is derived from the ancient Greek for &quot;don't know&quot;. So something which is &quot;language agnostic&quot; doesn't need to know about computer languages; it means the same thing as &lt;em&gt;language independent&lt;/em&gt;. Things that would be language agnostic include algorithms, or Agile, or a runtime library with bindings to many languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some Mac OS X features are &lt;em&gt;not language agnostic&lt;/em&gt;, because they're really designed to be used from Objective C, can only be used with difficulty from C or C++, and don't even have bindings for many languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There can also be a subtext to using &quot;language agnostic&quot; rather than other terms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In colloquial English, someone who says they're &quot;agnostic&quot; means they are neither religious nor an atheist: they &quot;don't know&quot; about God. This is usually verbal code for &quot;I don't like to talk about religion, so don't try to convert me.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So sometimes when people talk about being &quot;language agnostic&quot;, they're trying to stay out of arguments about what computer language is better.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastEditorUserId="9803" LastEditorDisplayName="" LastEditDate="2011-04-02T02:26:15.177" LastActivityDate="2011-04-02T02:26:15.177" CommentCount="2" />
  <row Id="28499" PostTypeId="2" ParentId="28454" CreationDate="2010-12-21T05:33:33.590" Score="3" ViewCount="" Body="&lt;p&gt;Having learnt scheme should now put you in a unique position where you can identify syntactic sugar and the key features of a language rather well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scheme is useful, but if you are looking at larger programs, you should probably have a look at Common Lisp. Though it is not that &quot;clean&quot; and &quot;academic&quot; as Scheme, it is far more powerful. (http://gigamonkeys.com/book/ is a good reference)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, like davidk01 said, you should look at JavaScript. It isn't far from scheme - very functional, very dynamic, and it enables you to write powerful web applications.(Crockford's lectures on Javascript, and his &quot;The Good parts&quot; book  are a good reference.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then again, you could go and learn a strongly typed functional language, like Haskell or OCaml. OCaml is particularly good for writing desktop applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do want to stick with Scheme, like Macnell suggested, I would suggest you to pick up Racket. It is easier to get things done with that MIT scheme.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, you could (and probably should) learn Python. It is probably the easiest language out there to pick up, and has wonderful libraries that make most tasks easy. You can write your own email client, or a program to fetch you lyrics, or any of those nice little first-desktop-apps. &quot;Dive Into Python&quot; by Mark Pilgrim is a great source.&lt;/p&gt;&#xA;" OwnerUserId="11145" LastActivityDate="2010-12-21T05:33:33.590" />
  <row Id="28500" PostTypeId="2" ParentId="28468" CreationDate="2010-12-21T05:36:42.777" Score="0" ViewCount="" Body="&lt;p&gt;Like the other posters have said, choose one of the two great editors - Vim or Emacs. I am a Vim user, and after having learnt to use vim well, I realised that the best way to keep up with this key sequence complexity is to learn to synthesize, and combine existing ones. I also use my muscle memory of vim keyboard shortcuts everywhere - I use vimperator in firefox, and xmonad as my window manager, apart from a host of other settings.&lt;/p&gt;&#xA;" OwnerUserId="11145" LastActivityDate="2010-12-21T05:36:42.777" />
  <row Id="28501" PostTypeId="2" ParentId="28331" CreationDate="2010-12-21T05:39:57.127" Score="1" ViewCount="" Body="&lt;p&gt;well, the techniques you mention are obviously good, but you also need to ask yourself whether you're pushing them as ideology.  I find that younger programmers do tend to be a bit evangelical about what they picked up in college.  remember that these techniques are good because of &lt;em&gt;outcomes&lt;/em&gt;: version control enables concurrent development, clearer tracking of design, development, testing, bugfix  stages.  if your projects really are short-term, a lot of that is simply inappropriate, and will wind up making you less agile.  it's simply not the case that best practice means using every possible best practice.  abstraction, for instance, definitely can be more a liability than an aid, at least some times.  version control makes the most sense when you have extended development timelines, complex code, multiple programmers - there's a sort of synergy, which is hard to get traction with piecemeal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the place to start is keeping an eye out for potential reuse - as projects go by, think about commonalities, or more general frameworks.  trying to get out in front of the projects would be a powerful move, and might let you work in more technique...&lt;/p&gt;&#xA;" OwnerUserId="11144" LastActivityDate="2010-12-21T05:39:57.127" />
  <row Id="28502" PostTypeId="2" ParentId="28457" CreationDate="2010-12-21T05:43:28.370" Score="1" ViewCount="" Body="&lt;p&gt;There is a gradient of opinions here: from &quot;language is a tool&quot; to &quot;Lisp is the only true programming language&quot;. And there are different aspects of a whole development cycle: tools, community, domain, strategic issues (licenses, budget,...), tactical issues(agile, problem solving,...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I, myself, definitely have opinion about syntax. &quot;Job done&quot; is not enough. I think it is ridicules to think about development (and specially programming) this way. If syntax, joy of clean design and success and fun are not important in programming (which anyway involves more that one programming language: a main player (like Java or C#) and secondary ones (JavaScript, bash or PowerShell)) then why the hell I should bother living such a horrible and hard life of a developer? Programming IS hard and if we continue to ignore the points that I'v mentioned, this industry is going to loose brain-power (I think I saw a MIT survey that showed this job has lost it's sexiness pretty much and there is a need for new labor and students do not like this domain very much).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So as may other discussions be valid, yet this issue must be resolved sooner or later. I am from the cult of Commodore 64 and Spectrum (and Sony MSX!) but there will be no more of this kind; and that's bad for this type of career and industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My obsession for a programming language bounces between Lisp and Haskell (nothing in the middle) but till that day: Scala, Clojure, F# (I do not like VM-based things much) are some pragmatic choices to be encouraged to be used. I hope Haskell and (there are others but) Gambit-C get a stable &quot;whole development cycle&quot; soon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Maybe I am wrong. But I do not think and feel so. Please enlighten me on that!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="8450" LastActivityDate="2010-12-21T05:43:28.370" CommentCount="2" />
  <row Id="28503" PostTypeId="2" ParentId="28453" CreationDate="2010-12-21T05:45:50.363" Score="22" ViewCount="" Body="&lt;p&gt;This is a very tough call, but I would pick:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;a) Haskell : Functional, Strongly Typed, Lazy Evaluation - opens your mind to a lot of things other languages do not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;b) Python : An amazing object oriented, scripting language. Easy to &quot;Get things done&quot;. Has now become my language of choice for anything that does not require super speed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;c) C: Teaches one to think close to the machine. Word align your structs, handle your own function pointers, pass around (void *)'s in your generic libraries, and know what writing platform portable code is all about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;d) Lisp: Learn to write code that writes code. Make use of its powerful macro system. Also, learn to program into your problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The close miss here would be JavaScript. Very dynamic, very functional, very useful, but knowing these four should make learning JavaScript easy - C syntax, Python like coding style, Lisp like lambda-functions-everywhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really don't think any of the others (save, maybe Ruby) are even worth knowing, except when you are forced to program in that language. C++ C#, and Java, are almost C, with an object oriented paradigm - learning Python well should teach you this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prolog is of course very different. But I think knowing Lisp and Haskell should enable you to write your own logic and data driven programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. These are the four languages I know and use on a regular basis too. I learnt them (learning them) in the order c), b), a), and d).&lt;/p&gt;&#xA;" OwnerUserId="11145" LastActivityDate="2010-12-21T05:45:50.363" CommunityOwnedDate="2011-05-02T19:15:27.120" CommentCount="7" />
  <row Id="28504" PostTypeId="2" ParentId="28406" CreationDate="2010-12-21T05:56:46.340" Score="1" ViewCount="" Body="&lt;p&gt;Enjoy all the time you have man! Do something useful. Once grown you will be begging for the free time. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-21T05:56:46.340" CommentCount="1" />
  <row Id="28505" PostTypeId="2" ParentId="282" CreationDate="2010-12-21T06:02:41.540" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.escapepod.org/&quot; rel=&quot;nofollow&quot;&gt;Escape Pod&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Science fiction short stories&lt;/p&gt;&#xA;" OwnerUserId="442" LastEditorUserId="442" LastEditorDisplayName="" LastEditDate="2010-12-21T06:12:10.317" LastActivityDate="2010-12-21T06:12:10.317" CommunityOwnedDate="2010-12-21T06:02:41.540" />
  <row Id="28506" PostTypeId="1" AcceptedAnswerId="28517" CreationDate="2010-12-21T06:06:44.517" Score="1" ViewCount="115" Body="&lt;p&gt;I use Trac, a personal wiki tool.&#xA;I use SVN Tortoise , the subversion tool&#xA;I use Outlook, Word etc&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In all these pieces of software, each time I want to type an url or an email address the software turns it into a hyperlink, suddenly altering the behaviour of the text, often treating as a single entity. (i.e a single back-space deletes the whole url, text-select leaps to select the whole url instead of single letters etc  )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its as helpful to me as the Microsoft Office paper-clip.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I the only one that gets annoyed by these things?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it is generally considered bad UI to do unexpected things. Surely its bad UI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: As Sii says below : &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Most of the time people prefer&#xA;  hyperlinks ... by default&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I suppose that is the truism that I am doubting. Is there any research or evidence to back this up?&lt;/p&gt;&#xA;" OwnerUserId="6720" LastEditorUserId="6720" LastEditorDisplayName="" LastEditDate="2010-12-21T06:38:18.107" LastActivityDate="2010-12-21T07:19:51.533" Title="Automatically turning text into hyperlinks - good or bad UI?" Tags="&lt;ui&gt;&lt;annoyances&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="0" />
  <row Id="28507" PostTypeId="1" AcceptedAnswerId="29372" CreationDate="2010-12-21T06:08:21.717" Score="1" ViewCount="525" Body="&lt;p&gt;So I'm literally just starting a start-up in the Education Industry. A very broad summary that leaves out the vast majority of the idea is that it's a true education management system, one that doesn't just act as a fancy (and very expensive) agenda but helps them along the way. And one that works with school, rather than instead of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;But my question is where could I find developers who will work for shares of the company, regardless of my age (I'm 15)?&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've begun some very minimal work on the idea itself, designed some of the Teacher Client and part of the database I can't do a whole lot very quickly, and this needs to get going fast because I'm sure there's already people out there doing something very similar. I'm aware of current solutions such as Blackboard or WebAssign and it's very different from those, however for reasons I cannot say without the other party signing a NDA&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit: Holy shit I was not expecting this many replies, after posting this question and asking around a few more places the general consensus seems to be that I should do it myself, because at this point I'm in the same boat as those business-types who have good ideas but they just need programmers, however I don't think I have the knowledge to go as far as I want with it by myself, especially in the beginning. What I was really hoping for was finding people who have some free time alongside their primary job who would want to work on an idea on the side but those kinds of people seem to be scarce. I can do this by myself but just not really quite as well as I want&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a sort-of-unrelated note to this question, could I also get some help finding some decent Software Design guides? I really don't have a structured plan at all and it's sort of been start programming and design as I go&lt;/p&gt;&#xA;" OwnerUserId="11148" LastEditorUserId="11148" LastEditorDisplayName="" LastEditDate="2010-12-23T02:06:35.830" LastActivityDate="2011-01-28T05:33:04.813" Title="Where to find Developers to work for a Start-Up with the pay being shares" Tags="&lt;education&gt;&lt;software-developer&gt;&lt;startups&gt;&lt;silverlight&gt;" AnswerCount="14" CommentCount="11" FavoriteCount="5" />
  <row Id="28509" PostTypeId="2" ParentId="28406" CreationDate="2010-12-21T06:19:04.970" Score="1" ViewCount="" Body="&lt;p&gt;Look for work at Google or M$, otherwise, go freelance... its a bumpy start but highly rewarding afterwards, from then, you can start your own company, be it a consulting one or a startup with a product, or both.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-21T06:19:04.970" />
  <row Id="28510" PostTypeId="2" ParentId="28506" CreationDate="2010-12-21T06:20:37.460" Score="0" ViewCount="" Body="&lt;p&gt;In MS-Word Right click and do &quot;Remove hyperlink&quot;. Not sure which version of Word you are using but I hope there is something similar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the time people prefer hyperlinks hence by default, the behaviour is kept so. There are ways to tweak the settings depending on your requirement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would call it sensible UI.&lt;/p&gt;&#xA;" OwnerUserId="7967" LastActivityDate="2010-12-21T06:20:37.460" CommentCount="1" />
  <row Id="28511" PostTypeId="2" ParentId="880" CreationDate="2010-12-21T06:25:56.553" Score="0" ViewCount="" Body="&lt;p&gt;There is no &quot;best&quot; computer for programming. The best machine for the job depends on what you are doing. If you are programming games or visual effects then something with a great video card would be great. If you are doing xhtml, svg, or something simple then you don't need anything too beefy.&lt;/p&gt;&#xA;" OwnerUserId="5354" LastActivityDate="2010-12-21T06:25:56.553" CommunityOwnedDate="2011-02-06T19:45:08.167" />
  <row Id="28512" PostTypeId="2" ParentId="28484" CreationDate="2010-12-21T06:28:04.900" Score="1" ViewCount="" Body="&lt;p&gt;When a solution is called &quot;language-agnostic&quot; you are literally saying that your solution &quot;doesn't believe in&quot; languages, meaning its universal or independent from language specifics (paradigms, language idioms, etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, design patterns are language-agnostic, because the way they are described the specific implementation doesn't matter as long it sticks to the whole or a subset of the pattern (v.gr. some design patterns can be implemented without OOP). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;UML is language-agnostic, BPMN is language-agnostic, ERM is language-agnostic. An algorithm in pseudo-code is language agnostic...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anything that is meant to be programmed but not described in a specific language can be called language-agnostic.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-21T06:28:04.900" />
  <row Id="28513" PostTypeId="2" ParentId="28506" CreationDate="2010-12-21T06:28:11.357" Score="0" ViewCount="" Body="&lt;p&gt;I don't know how your environment works, but in my Word '07, a backspace into a hyperlink turns it back into plaintext rather than deleting the whole thing. It's extremely convenient, and probably the default setting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially: Your environment is annoying you because your environment isn't configured in a way that suits you. Go figure! Dig into your configuration.&lt;/p&gt;&#xA;" OwnerUserId="5570" LastActivityDate="2010-12-21T06:28:11.357" CommentCount="3" />
  <row Id="28514" PostTypeId="2" ParentId="28453" CreationDate="2010-12-21T06:32:27.923" Score="5" ViewCount="" Body="&lt;p&gt;Erlang (or Lisp)&lt;br&gt;&#xA;Python (JavaScript or ActionScript (prototypal inheritance)&lt;br&gt;&#xA;C (or assembly)&lt;br&gt;&#xA;Objective C&lt;/p&gt;&#xA;" OwnerUserId="4626" LastEditorUserId="4626" LastEditorDisplayName="" LastEditDate="2010-12-22T03:52:05.047" LastActivityDate="2010-12-22T03:52:05.047" CommunityOwnedDate="2011-05-02T19:15:27.120" CommentCount="3" />
  <row Id="28515" PostTypeId="2" ParentId="28417" CreationDate="2010-12-21T06:35:47.060" Score="0" ViewCount="" Body="&lt;p&gt;PHP, JavaScript (jquery..), ActionScript (flash, flex), CSS, html (web development stack mainly), RoR seems to be the current trend. Also anything mobile app development.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-12-21T06:35:47.060" />
  <row Id="28516" PostTypeId="2" ParentId="28457" CreationDate="2010-12-21T06:51:03.373" Score="1" ViewCount="" Body="&lt;p&gt;Just like using any tool, the more you use it the more proficient you get at it. So pick your core tools and learn them well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While general comp. sci. principals apply to all languages, sometimes you need to specialize to get the maximum benefit of your lang.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A core knowledge should consist of the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;A solid performing language. C, C++, Java, Erlang, C# pick one and learn it well. This is your tool for when you have performance sensitive tasks that really do care about a few extra microseconds for processing an instruction.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A dynamic language that lets you prototype and build highly flexible applications fast without worrying about their perforamnce. Like web servers. Ruby, Python, and I may even mention PHP&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;And of course don't forget utility. For web programming there is just no way around it... Learn HTML/CSS/JS. For game programming probably some LUA.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Knowing just one language well is great. Knowing a bit more is incredible. Just remember you can't learn them all, don't try to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course each language is a tool. I would not write a web application using C. Its just horrible. I would not, however, write a processor and time constrained background data processing job which is extremely time critical and must scale on as many machines as possible in Ruby either. Each tool is a tradeoff: Time to build, performance, quality. Chose the best one for your problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said all that. If you understand concurrent programming and can quickly pick up java's way, you will learn quickly. Having a deep understanding of C.S. techniques will get you incredibly far. Granted that knowing the insides of a language can make debugging a problem that may take weeks for one, minutes for another, because of experience. So it is both important to learn a language, and to learn techniques. Because knowledge of java will never help you write a scalable program, no matter how well you memorized the java api.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally what companies look for is the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Can this person problem solve well?&lt;/li&gt;&#xA;&lt;li&gt;Does this person have the ability to code well?&lt;/li&gt;&#xA;&lt;li&gt;Does this person have a deep understanding of the language we work with?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Can this person learn our system in a reasonable amount of time&lt;/li&gt;&#xA;&lt;li&gt;Will this person play well with our system (i've seen people trying to code java in javascript despirately, it does not work and makes for ugly unmaintainable code)&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So there is no simple answer other than brush up on your core concepts and pick a language that talks to you (you like the syntax or the way it approaches problems or the job optiosn) and solves your needs, and learn it.&lt;/p&gt;&#xA;" OwnerUserId="11150" LastEditorUserId="11150" LastEditorDisplayName="" LastEditDate="2010-12-21T06:58:24.143" LastActivityDate="2010-12-21T06:58:24.143" CommentCount="3" />
  <row Id="28517" PostTypeId="2" ParentId="28506" CreationDate="2010-12-21T06:58:35.497" Score="3" ViewCount="" Body="&lt;p&gt;You're not alone. It annoys me too, &lt;em&gt;sometimes&lt;/em&gt;. For example, when I want to write something like &quot;let's meet &lt;a href=&quot;http://there@18.00&quot; rel=&quot;nofollow&quot;&gt;there@18.00&lt;/a&gt;&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But still, it's okay &lt;em&gt;almost&lt;/em&gt; always, so the compromise between &quot;do (only) what I tell you to do&quot; vs. &quot;do what I expect you to do&quot; seems to be quite reasonable. Some essential points:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Any UI behavior is a compromise.&lt;/li&gt;&#xA;&lt;li&gt;If virtually all pieces of software behave in some specific way, &lt;em&gt;deviating&lt;/em&gt; from that is annoying.&lt;/li&gt;&#xA;&lt;li&gt;Despite of 2), did Apple create their now renowed UIs by conforming to expectations?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-12-21T07:04:02.717" LastActivityDate="2010-12-21T07:04:02.717" CommentCount="2" />
  <row Id="28518" PostTypeId="2" ParentId="28314" CreationDate="2010-12-21T07:01:04.570" Score="0" ViewCount="" Body="&lt;p&gt;While nesting ternary operator, liberal use of parentheses along with some indentation will serve the dual purpose of smaller code and enhanced legibility than a code with too many if/else.&lt;/p&gt;&#xA;" OwnerUserId="11152" LastActivityDate="2010-12-21T07:01:04.570" CommunityOwnedDate="2011-01-25T19:46:08.053" />
  <row Id="28519" PostTypeId="1" CreationDate="2010-12-21T07:06:57.190" Score="5" ViewCount="259" Body="&lt;p&gt;I have some software engineering background in Java but would like to move towards web development. With no background in web programming I am considering studying for a certification and gain some more knowledge and prepare myself for potential jobs. Can you please advise if there are any certifications worth taking and if passing them gives more value to my resume? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Really appreciate your insight.&#xA;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="7895" LastActivityDate="2010-12-21T10:01:07.883" Title="Are there any well recognized Web Developer Certifications?" Tags="&lt;web-development&gt;&lt;certification&gt;&lt;training&gt;" AnswerCount="5" />
  <row Id="28520" PostTypeId="2" ParentId="28519" CreationDate="2010-12-21T07:09:04.943" Score="5" ViewCount="" Body="&lt;p&gt;I would consider taking a look at Zend's certification for PHP 5&#xA;&lt;a href=&quot;http://www.zend.com/services/certification/&quot; rel=&quot;nofollow&quot;&gt;http://www.zend.com/services/certification/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11153" LastActivityDate="2010-12-21T07:09:04.943" CommentCount="1" />
  <row Id="28521" PostTypeId="2" ParentId="28519" CreationDate="2010-12-21T07:15:19.363" Score="10" ViewCount="" Body="&lt;p&gt;In my opinion; your portfolio with the projects you have completed is better then any certificate.&lt;/p&gt;&#xA;" OwnerUserId="1262" LastActivityDate="2010-12-21T07:15:19.363" CommentCount="10" />
  <row Id="28522" PostTypeId="2" ParentId="28519" CreationDate="2010-12-21T07:19:49.467" Score="4" ViewCount="" Body="&lt;p&gt;Microsoft's MCPD in ASP.NET&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or... did you have a particular technology that you wanted to work with?&lt;/p&gt;&#xA;" OwnerUserId="8661" LastActivityDate="2010-12-21T07:19:49.467" CommentCount="2" />
  <row Id="28523" PostTypeId="2" ParentId="28506" CreationDate="2010-12-21T07:19:51.533" Score="1" ViewCount="" Body="&lt;p&gt;I love it in places where I actually want a hyperlink and despise it in places I don't. Big shock there, I'm sure. To me the dividing line is whether it makes sense for the finished document/note/whatever to have hyperlinks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In places like website comments, forums and such including this site, email, and software I'm using to generate an HTML doc for the web I love the automatic hyperlinking. When writing a letter or resume or really, any document intended for print, I despise it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me this seems stunningly obvious, though Microsoft and I clearly disagree in Word, Excel, even PowerPoint. Bleh.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;ProTip&lt;/strong&gt;: In Microsoft products, anyway, an immediate Undo will remove whatever automatic formatting was just applied. I've sadly become accustomed to typing &lt;code&gt;http://...&lt;/code&gt; &lt;strong&gt;ctrl-Z&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(Yes, I know you can change the setting, but this applies to all automatic formatting you don't want including punctuation and spelling fixes.)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="8076" LastActivityDate="2010-12-21T07:19:51.533" />
  <row Id="28524" PostTypeId="2" ParentId="28519" CreationDate="2010-12-21T07:21:38.520" Score="2" ViewCount="" Body="&lt;p&gt;Sun Certified Web Component Developer - SCWCD (not sure what the current status is though following the transfer to Oracle)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Sun_Certified_Professional&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Sun_Certified_Professional&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="598" LastActivityDate="2010-12-21T07:21:38.520" CommentCount="1" />
  <row Id="28525" PostTypeId="1" AcceptedAnswerId="28526" CreationDate="2010-12-21T07:35:38.323" Score="9" ViewCount="1207" Body="&lt;p&gt;&lt;img src=&quot;http://imgs.xkcd.com/comics/goto.png&quot; alt=&quot;XKCD 292&quot;&gt;&#xA;From &lt;a href=&quot;http://xkcd.com/292/&quot; rel=&quot;nofollow&quot;&gt;http://xkcd.com/292/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If everyone hates goto so much, why was it even invented? I used it in the past with C and Perl. Loved it. I did not care what other say about it. If it helps me get the job done, its important to me.&lt;/p&gt;&#xA;" OwnerUserId="10282" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-21T07:58:53.090" LastActivityDate="2011-04-17T06:02:34.883" CommunityOwnedDate="2011-01-09T16:41:54.697" ClosedDate="2011-04-14T11:48:39.267" Title="Do you hate goto?" Tags="&lt;programming-languages&gt;&lt;syntax&gt;" AnswerCount="21" CommentCount="6" FavoriteCount="1" />
  <row Id="28526" PostTypeId="2" ParentId="28525" CreationDate="2010-12-21T07:41:55.063" Score="17" ViewCount="" Body="&lt;p&gt;&lt;code&gt;goto&lt;/code&gt; is somewhat an equivalent of the assembler jump operator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since first programming languages were rather low-level, this assembler-concept also made its way into these languages. Then it stayed on to become sort of a historical heritage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also first days there weren't many ideas about how to program grand things (OOP etc.), people were coding programs ad-hoc. Also not much experience with post-development activities like extension, maintenance and refactoring. At the time hardly anyone had an idea &lt;code&gt;goto&lt;/code&gt; could be evil.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With time it naturally changed and people stopped using &lt;code&gt;goto&lt;/code&gt; in practice even if it were supported by the languages. Natural course of the things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These days &lt;code&gt;goto&lt;/code&gt; is mostly supported for the following reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;To provide backward-compatibility with the old codebase written in the days of unstructured programming. Many small applications and large systems written then are still in operation today, and they need to be compilable in modern versions of compilers.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Funnily enough, even modern high-level languages like C# and Java support &lt;code&gt;goto&lt;/code&gt; (in Java indirectly through labeled breaks). This is made so to facilitate migration of the old codebase to these languages and also because of 3.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Automatic code generation tools could make use of the &lt;code&gt;goto&lt;/code&gt; statements to gain on performance. If it's not the code you're supposed to look at and work with directly and the tool regenerates the code automatically behind the scenes, you probably don't need to worry about &lt;code&gt;goto&lt;/code&gt;s there.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;[Credited to Jon Purdy] Possibly to provide a mechanism for emulating certain flow-control constructs which are not supported directly by the language (like exceptions in C). Not likely that it was an explicit reason by the language designers, but it actually makes sense in retrospective. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-22T12:13:03.620" LastActivityDate="2010-12-22T12:13:03.620" CommunityOwnedDate="2011-01-09T16:41:54.697" CommentCount="14" />
  <row Id="28527" PostTypeId="2" ParentId="28314" CreationDate="2010-12-21T07:42:08.660" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;When is ?: appropriate, and when is it not?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you don't get a performance gains don’t use it since it affects the readability of your code. &lt;/li&gt;&#xA;&lt;li&gt;Use it ones, and don’t nest it.&lt;/li&gt;&#xA;&lt;li&gt;It’s harder to debug.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Should it be taught to or hidden from beginners?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doesn't matter, it's not too complex for a “beginner” to learn.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-21T07:42:08.660" CommunityOwnedDate="2011-01-25T19:46:08.053" />
  <row Id="28529" PostTypeId="2" ParentId="28525" CreationDate="2010-12-21T07:51:08.260" Score="1" ViewCount="" Body="&lt;p&gt;No, I dont. In good old QBasic days it was the way Programs are written however in modern programming languages it has pretty much lost it's sense and can be deprecated. It seems that modern day programmers would create havoc if they started using it but I believe it all depends on the ideology with which yoou have been brought up old assembler/basic programmers won't mind it and improper jumps was a basic thing they first sought when a bug happened.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-12-21T07:51:08.260" CommunityOwnedDate="2011-01-09T16:41:54.697" CommentCount="1" />
  <row Id="28530" PostTypeId="2" ParentId="28525" CreationDate="2010-12-21T07:51:51.703" Score="0" ViewCount="" Body="&lt;p&gt;When it was invented it was not such an evil. Consider coding only with check/goto and without any other conditional/loop variants. I think it must be goto which was the first, the others came later. And now that when other big playres are there, goto is finding hard to have it's place. Poor &quot;goto&quot;!. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-21T07:51:51.703" CommunityOwnedDate="2011-01-09T16:41:54.697" />
  <row Id="28531" PostTypeId="2" ParentId="28525" CreationDate="2010-12-21T07:54:13.187" Score="5" ViewCount="" Body="&lt;p&gt;It's fallen out of favor since other, more clear ways to do things have become more commonly used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ever heard the phrase &lt;strong&gt;&quot;more rope to hang yourself&quot;&lt;/strong&gt;? &amp;mdash; It's well known that the more ways there are to do something, the more likely solutions are to be confusing, especially to others.  And that means, most likely, more buggy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since the replacements for &lt;code&gt;goto&lt;/code&gt; programming (like increasingly convenient loop and method-call syntax in newer languages) have become commonplace and can accomplish just as much or more, in a clearer, possibly even more concise, way, &lt;strong&gt;&lt;code&gt;goto&lt;/code&gt; is just more rope.&lt;/strong&gt;  Keep it simple.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-21T08:00:14.307" LastActivityDate="2010-12-21T08:00:14.307" CommunityOwnedDate="2011-01-09T16:41:54.697" CommentCount="1" />
  <row Id="28532" PostTypeId="1" CreationDate="2010-12-21T07:57:42.027" Score="0" ViewCount="30" Body="&lt;p&gt;something messed up my mp3 and image library. Now, the files have correct modified data but the creation date is &lt;strong&gt;newer&lt;/strong&gt;!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That for some reason makes using robocopy to backup my library impossible (robocopy thinks files are always changing, even when they did not).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I saw some tools people wrote to let you edit via gui or even cmd line the properties of files, but all expect you to tell them the date you want to set. that will not work since I have files in different dates cross 10 years. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;i figured it is a simple powershall script to iterate over folder/sub folder and set each files creation date to be the modified date. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any poweshall wizard that can show me the way? or at least get me started?&lt;/p&gt;&#xA;" OwnerUserId="11154" LastActivityDate="2010-12-21T07:57:42.027" ClosedDate="2010-12-21T15:54:44.890" Title="powershall or other script to make files creation date = modified date" Tags="&lt;file-handling&gt;" CommentCount="1" />
  <row Id="28533" PostTypeId="2" ParentId="28507" CreationDate="2010-12-21T07:59:58.113" Score="0" ViewCount="" Body="&lt;p&gt;Even with Stock options most Startup do pay good enough. It is the hard work and Job insecurity that they want to compensate with the Stocks. Why dont you consider hiring people as free lancers to get some work done ELSE friends might help in work/money.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-12-21T07:59:58.113" />
  <row Id="28534" PostTypeId="2" ParentId="28314" CreationDate="2010-12-21T08:08:52.003" Score="7" ViewCount="" Body="&lt;p&gt;One difference that (I think) no-one has pointed out is that if-else can't return a value, whereas the ternary operator can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coming from F#, I sometimes like to use the ternary operator to mimic pattern matching. (Fortunately none of my colleagues have discovered these yet :)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;match val with&#xA;| A -&amp;gt; 1&#xA;| B -&amp;gt; 3&#xA;| _ -&amp;gt; 0&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;vs&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;return val == A ? 1 : &#xA;       val == B ? 3 : &#xA;       0;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="4285" LastEditorUserId="4285" LastEditorDisplayName="" LastEditDate="2010-12-21T14:21:43.377" LastActivityDate="2010-12-21T14:21:43.377" CommunityOwnedDate="2011-01-25T19:46:08.053" CommentCount="6" />
  <row Id="28535" PostTypeId="2" ParentId="28458" CreationDate="2010-12-21T08:12:16.483" Score="1" ViewCount="" Body="&lt;p&gt;I've used &lt;a href=&quot;http://www.microsoft.com/windowsazure/&quot; rel=&quot;nofollow&quot;&gt;Azure&lt;/a&gt; in the past and found it pretty acceptable. It meets most of the points you're after (including memcached). The only problem we had was the very long deployment time (~20 mins).&lt;/p&gt;&#xA;" OwnerUserId="680" LastActivityDate="2010-12-21T08:12:16.483" CommentCount="1" />
  <row Id="28536" PostTypeId="1" CreationDate="2010-12-21T08:15:09.043" Score="4" ViewCount="281" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which site do you think is the best site for questions and answers for a developer incase of technical questions? Good old stackoverflow seems to be losing its charm, if you go through it you will find loads and loads of questions with very few answers. In fact, most questions dont even have enough reads on them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has any new site come up which has gained recent popularity for technical questions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;thanks.&lt;/p&gt;&#xA;" OwnerUserId="672" LastEditorUserId="16637" LastEditorDisplayName="" LastEditDate="2011-02-14T00:16:14.987" LastActivityDate="2011-02-14T00:16:14.987" Title="Which is the best question and answers site ?" Tags="&lt;programming-languages&gt;&lt;qnawebsites&gt;" AnswerCount="4" CommentCount="8" />
  <row Id="28537" PostTypeId="2" ParentId="28536" CreationDate="2010-12-21T08:20:32.613" Score="5" ViewCount="" Body="&lt;p&gt;You could try your luck at &lt;a href=&quot;http://www.experts-exchange.com/&quot; rel=&quot;nofollow&quot;&gt;expert sexchange&lt;/a&gt;; there is also a &lt;a href=&quot;http://forums.thedailywtf.com/forums/19.aspx&quot; rel=&quot;nofollow&quot;&gt;Q&amp;amp;A section in the thedailywtf forums&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-21T08:20:32.613" CommentCount="7" />
  <row Id="28538" PostTypeId="2" ParentId="28525" CreationDate="2010-12-21T08:21:21.573" Score="1" ViewCount="" Body="&lt;p&gt;Its not GOTO that's hated its the consequences of using it (carelessly). It makes it too easy to do something stupid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also pretty much does for mathematical proof of correctness (my lecturer on the subject described goto as &quot;massive random leap&quot;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was there because it allowed you to do what was necessary in languages that lacked the rich control structures current available (like block statements, &quot;else&quot; and a variety of loops). Nowadays, once you get above the level of assembly languages, there's no real need, but taking things out of languages is almost impossible.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-12-21T08:21:21.573" CommunityOwnedDate="2011-01-09T16:41:54.697" />
  <row Id="28539" PostTypeId="2" ParentId="28536" CreationDate="2010-12-21T08:21:31.353" Score="9" ViewCount="" Body="&lt;p&gt;I'm sure they will find a solution to what is currently happening to StackOverflow. It's probably just temporary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best Q&amp;amp;A answer site for developers is &lt;a href=&quot;http://www.stackoverflow.com&quot;&gt;StackOverflow.com&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-12-21T08:21:31.353" CommentCount="8" />
  <row Id="28540" PostTypeId="2" ParentId="28525" CreationDate="2010-12-21T08:25:03.847" Score="3" ViewCount="" Body="&lt;p&gt;GOTO isn't evil during the initial coding, it's maintaining the code where it bites. Generally speaking code with GOTOs is only maintainable when the GOTOs are esentially mimicing the higher level looping structures. I can say from personal experience that other GOTO patterns make the code very hard to maintain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you limit yourself to mimicing these higher level loops then GOTOs are fine, but the specific loop constructs are better. This is why GOTOs have fallen into disuse as the other posters have said. They're not as good as the higher level constructs for these standard patterns, and using them for non-standard patterns is harmful.&lt;/p&gt;&#xA;" OwnerUserId="4636" LastActivityDate="2010-12-21T08:25:03.847" CommunityOwnedDate="2011-01-09T16:41:54.697" />
  <row Id="28541" PostTypeId="2" ParentId="28525" CreationDate="2010-12-21T08:31:43.120" Score="2" ViewCount="" Body="&lt;p&gt;GOTO became obsolete when structured programming was invented (according to wikipedia, that was in 1968).  Before that, it was the normal way of to control the program flow.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-21T08:31:43.120" CommunityOwnedDate="2011-01-09T16:41:54.697" CommentCount="3" />
  <row Id="28543" PostTypeId="2" ParentId="28507" CreationDate="2010-12-21T08:48:14.677" Score="0" ViewCount="" Body="&lt;p&gt;Nobody is going to consider working for just shares. Find an investor to sell shares to and then you can pay your programmers with money.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-21T08:48:14.677" />
  <row Id="28544" PostTypeId="2" ParentId="1662" CreationDate="2010-12-21T08:52:36.777" Score="0" ViewCount="" Body="&lt;p&gt;My working works is from 1PM to Night 1AM, it seems comfortable for me than a regular Morning shift Hours,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It depends on the work and clients you are working with ,i love my job so any hour is my golden period. &lt;/p&gt;&#xA;" OwnerUserId="7452" LastActivityDate="2010-12-21T08:52:36.777" />
  <row Id="28545" PostTypeId="2" ParentId="28525" CreationDate="2010-12-21T08:53:58.760" Score="3" ViewCount="" Body="&lt;p&gt;I use &lt;em&gt;goto&lt;/em&gt; for PIC micro-controllers, there is no other option other than use the goto on some situations (branching).&lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2010-12-21T08:53:58.760" CommunityOwnedDate="2011-01-09T16:41:54.697" CommentCount="2" />
  <row Id="28546" PostTypeId="1" CreationDate="2010-12-21T08:55:19.187" Score="1" ViewCount="71" Body="&lt;p&gt;I want to learn German language. I need to sell myself, so I need to learn the IT language of German. Can you recommend me german sites like DZone, Stackoverflow, theserverside or suchlike stuff? My interests are Java, SQL, Oracle, JEE, JSF, Eclipse, and so on.&lt;/p&gt;&#xA;" OwnerUserId="7998" LastActivityDate="2010-12-21T09:02:24.433" ClosedDate="2010-12-21T09:11:14.563" Title="Best IT sites in German language" Tags="&lt;websites&gt;&lt;community&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="28547" PostTypeId="1" AcceptedAnswerId="28549" CreationDate="2010-12-21T08:55:21.333" Score="2" ViewCount="89" Body="&lt;p&gt;At the moment we have:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Iphone&lt;/li&gt;&#xA;&lt;li&gt;Android&lt;/li&gt;&#xA;&lt;li&gt;J2me touch&lt;/li&gt;&#xA;&lt;li&gt;J2me non-touch&lt;/li&gt;&#xA;&lt;li&gt;J2me touch for Blackberry&lt;/li&gt;&#xA;&lt;li&gt;J2me non-touch for Blackberry&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;We were thinking of making another&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;J2me non-touch for crappy devices (because the regular non-touch is just to heavy)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The question is, can you think of any other versions of our application that we should provide to target 'ALL' mobile phones&lt;/p&gt;&#xA;" OwnerUserId="11019" LastActivityDate="2010-12-21T12:56:34.990" Title="How many applications should you provide to cover all sort of mobile phones." Tags="&lt;applications&gt;&lt;mobile&gt;" AnswerCount="3" />
  <row Id="28548" PostTypeId="2" ParentId="880" CreationDate="2010-12-21T08:56:16.243" Score="4" ViewCount="" Body="&lt;p&gt;I have so little ram that I can't run firefox and code. You'd think that would mean that I get a lot of coding done, but actually, I spend more time browsing the web.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-21T08:56:16.243" CommunityOwnedDate="2011-02-06T19:45:08.167" CommentCount="1" />
  <row Id="28549" PostTypeId="2" ParentId="28547" CreationDate="2010-12-21T08:58:18.553" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Windows Mobile 6.5&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Windows Phone 7&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Native Symbian? But maybe the J2ME version&#xA;is enough for that platform.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-21T08:58:18.553" />
  <row Id="28550" PostTypeId="2" ParentId="28546" CreationDate="2010-12-21T08:59:33.263" Score="3" ViewCount="" Body="&lt;p&gt;Those sites:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://golem.de&quot; rel=&quot;nofollow&quot;&gt;golem.de&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://heise.de&quot; rel=&quot;nofollow&quot;&gt;heise.de&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://futurezone.at&quot; rel=&quot;nofollow&quot;&gt;futurezone.at&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;are more like slashdot or engadget; AFAIK, there are no major technical sites like stackoverflow in German, because English is the lingua franca for programmers.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-21T08:59:33.263" />
  <row Id="28551" PostTypeId="1" AcceptedAnswerId="28559" CreationDate="2010-12-21T09:01:26.593" Score="5" ViewCount="329" Body="&lt;p&gt;What do you do to understand some code that you didn't write? Or code that you wrote long time ago and don't remember what it does anymore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have some technique that you go about? Do you analyze the structures first, or the public methods, or do you draw flow charts, etc.? Or do you fire up the debugger and just step through it? Or do you just ad-hoc your way through until you understand it?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-12-22T02:46:49.623" LastActivityDate="2010-12-22T02:57:59.600" Title="How do you go about understanding others' code?" Tags="&lt;code&gt;&lt;analysis&gt;" AnswerCount="14" />
  <row Id="28552" PostTypeId="2" ParentId="28546" CreationDate="2010-12-21T09:02:24.433" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://codekicker.de/&quot; rel=&quot;nofollow&quot;&gt;codekicker.de&lt;/a&gt; is something like Stackoverflow in german.&lt;/p&gt;&#xA;" OwnerUserId="7654" LastActivityDate="2010-12-21T09:02:24.433" CommentCount="3" />
  <row Id="28553" PostTypeId="1" AcceptedAnswerId="28557" CreationDate="2010-12-21T09:03:32.607" Score="2" ViewCount="143" Body="&lt;p&gt;Do you think that there is a chance that &lt;strong&gt;Silverlight&lt;/strong&gt; and &lt;strong&gt;WPF&lt;/strong&gt; will &lt;strong&gt;grow together&lt;/strong&gt; in the future and that we will have &lt;strong&gt;one framework&lt;/strong&gt; for developing desktop and rich internet/intranet applications?&lt;/p&gt;&#xA;" OwnerUserId="10976" LastEditorUserId="10976" LastEditorDisplayName="" LastEditDate="2010-12-21T09:12:27.360" LastActivityDate="2010-12-21T10:11:12.560" Title="One framework for Silverlight and WPF" Tags="&lt;c#&gt;&lt;.net&gt;&lt;microsoft&gt;&lt;silverlight&gt;&lt;wpf&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="28554" PostTypeId="2" ParentId="28525" CreationDate="2010-12-21T09:04:39.303" Score="7" ViewCount="" Body="&lt;p&gt;I use GOTO when I have several conditionals that all result in the same thing happening. This avoids repeating the same code in all:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void handle_c(char c)&#xA;{&#xA;    switch (c) {&#xA;    case 'f':&#xA;       do_something();&#xA;       do_something_else();&#xA;       goto cleanup;&#xA;&#xA;    case 'z':&#xA;       bail_out(&quot;C is Z, error&quot;); /* exits */&#xA;&#xA;    case 'g':&#xA;       test_something();&#xA;       do_lots_of_stuff();&#xA;       goto cleanup;&#xA;&#xA;    case 'q':&#xA;       variable = 42;&#xA;       break;&#xA;&#xA;    default:&#xA;       bail_out(&quot;I can't handle C!!!&quot;);&#xA;    }&#xA;&#xA;/* More business logic here that also eventually leads&#xA; * to magically freeing everything ...&#xA; */&#xA;&#xA;&#xA;cleanup:&#xA;     magically_free_everything();&#xA;&#xA;    return;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If that was 20+ cases, where 18 of them all ended in calling &lt;code&gt;magically_free_everything()&lt;/code&gt;, then I see no problem at all with using it. I don't duplicate the same line 17 times, and adding additional tasks to my 'cleanup' code is quite trivial. In this case, goto makes the code easier to maintain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just like assertions, however, this is easily abused. You should not use goto to jump all over the place. I read a book from the top of the page to the bottom, that's also how I want to read code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think &lt;em&gt;anything&lt;/em&gt; in a language is inherently evil, it all depends on how you use it.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-21T10:17:21.950" LastActivityDate="2010-12-21T10:17:21.950" CommunityOwnedDate="2011-01-09T16:41:54.697" CommentCount="5" />
  <row Id="28555" PostTypeId="2" ParentId="28551" CreationDate="2010-12-21T09:05:55.773" Score="2" ViewCount="" Body="&lt;p&gt;Usually, I analyse a simple part first, e.g. the module used to maintain a small table. This teaches me the style the other programmer is using. If I have problems understanding even that, it's either very badly written or my knowledge of the language, framework etc. is insufficient. Once I grasp the simple part, it's time to move to the more complex parts of the program.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-21T09:05:55.773" />
  <row Id="28556" PostTypeId="2" ParentId="28536" CreationDate="2010-12-21T09:09:19.517" Score="1" ViewCount="" Body="&lt;p&gt;You can find similar behavior at most QA sites focused on technical questions: easy questions are answered in the dozens where difficult questions barely get read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over at SO we have to also take into account the question's subjectiveness and validity before we even ask it. I find it quite ridiculous you can't have subjective questions. There should at least be a category for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My only other advice is to try forums based on whatever technical subject you're interested in receiving help with. Register at a few, ask the same question at a few. &lt;/p&gt;&#xA;" OwnerUserId="9682" LastActivityDate="2010-12-21T09:09:19.517" CommentCount="3" />
  <row Id="28557" PostTypeId="2" ParentId="28553" CreationDate="2010-12-21T09:09:21.657" Score="3" ViewCount="" Body="&lt;p&gt;I &quot;think&quot; it will happen, and I think it will be that Silverlight gets dropped in favour of WPF.&lt;/p&gt;&#xA;" OwnerUserId="11052" LastActivityDate="2010-12-21T09:09:21.657" CommentCount="2" />
  <row Id="28558" PostTypeId="2" ParentId="28551" CreationDate="2010-12-21T09:09:24.260" Score="1" ViewCount="" Body="&lt;p&gt;this is coming with the experience. when you're a newbie, or you jump into other programming language is a little bit difficult. &#xA;when you have several years working with a language, then is easier to understand. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;but, as a general rule, I'm firing up the debugger, and start to understand what's happening in it. also it is VERY IMPORTANT to comment your code, and to work on documented code. &lt;/p&gt;&#xA;" OwnerUserId="8755" LastActivityDate="2010-12-21T09:09:24.260" />
  <row Id="28559" PostTypeId="2" ParentId="28551" CreationDate="2010-12-21T09:09:26.020" Score="11" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Asking the author&lt;/li&gt;&#xA;&lt;li&gt;Going with the debugger through in different scenarios&lt;/li&gt;&#xA;&lt;li&gt;Saving discoveries in written form&lt;/li&gt;&#xA;&lt;li&gt;Learning by trying to add/change something and seeing where it leads&lt;/li&gt;&#xA;&lt;li&gt;Doing some pair programming with an experienced colleague or the author&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-21T09:26:49.800" LastActivityDate="2010-12-21T09:26:49.800" CommentCount="4" />
  <row Id="28560" PostTypeId="2" ParentId="28054" CreationDate="2010-12-21T09:11:49.433" Score="0" ViewCount="" Body="&lt;p&gt;If you're looking to do web applications that require many concurrent and/or long polling requests I would say you'd have to look into Erlang and/or Node.js for server side Javascript.&lt;/p&gt;&#xA;" OwnerUserId="11103" LastActivityDate="2010-12-21T09:11:49.433" />
  <row Id="28561" PostTypeId="2" ParentId="1662" CreationDate="2010-12-21T09:17:16.970" Score="2" ViewCount="" Body="&lt;p&gt;For the last two years I've been working 6.30am to 4pm. Miss the worse of the traffic, in the summer you almost have a whole extra day after work. Fortunately my employer offers this flexibility, and most of my department work pretty much the same hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also great if you have small kids (I do).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to be (or become) a 'morning' person though.&lt;/p&gt;&#xA;" OwnerUserId="4285" LastActivityDate="2010-12-21T09:17:16.970" />
  <row Id="28562" PostTypeId="2" ParentId="28551" CreationDate="2010-12-21T09:24:13.743" Score="2" ViewCount="" Body="&lt;p&gt;Good question, I don't think I have ever sat down and documented the process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess thinking about it now, I just read it:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Line by Line&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course this doesn't always work, asking the author is usually the last resort.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-21T09:24:13.743" CommentCount="2" />
  <row Id="28564" PostTypeId="2" ParentId="28417" CreationDate="2010-12-21T09:28:56.910" Score="1" ViewCount="" Body="&lt;p&gt;In the UK ATG demands a pretty packet. Of course you will have to sell your soul to get into it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/393723/difference-between-atg-and-struts/1232418#1232418&quot;&gt;http://stackoverflow.com/questions/393723/difference-between-atg-and-struts/1232418#1232418&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9935" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-21T09:39:19.793" LastActivityDate="2010-12-21T09:39:19.793" />
  <row Id="28565" PostTypeId="2" ParentId="28507" CreationDate="2010-12-21T09:29:16.680" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Find a hobbyist!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A hobbyist will do this for free and consider stock options a bonus. A hobbyist will dedicate their life to a project and sustain a completely unrelated paying job like working mcdonalds to feed themselves. I hobbyist will turn down direct payment but might accept gifts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A hobbyist will preach &quot;It's not all about the money&quot;, and although programming can be fun, it is in fact about the money. A hobbyist will spew the most useless garbage and theory based on no real world experience, but their 2 or 3 applications which output &quot;hello world&quot; in 45 different colors. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My point is, if somebody DOES agree to do work for free for what requires an extended comitted effort on their part, they're not worth it - even for free.&lt;/p&gt;&#xA;" OwnerUserId="9682" LastActivityDate="2010-12-21T09:29:16.680" CommentCount="3" />
  <row Id="28566" PostTypeId="2" ParentId="28417" CreationDate="2010-12-21T09:29:16.663" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Java&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can deliver code quickly and efficiently in Java you'll earn a daily rate near the top of the pile. You need to fully understand the enterprise stack (JMS, JMX, JAX-RS, JAX-WS, JAXB, servlets, etc) but since so many large enterprises depend on Java you'll be in a good position to earn good money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are able to introduce free and open source solutions to your clients then the money they save on license fees and unnecessary infrastructure more than makes up for a slightly higher rate for the person who is providing the technical expertise to make it happen.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-21T09:29:16.663" />
  <row Id="28567" PostTypeId="2" ParentId="28551" CreationDate="2010-12-21T09:29:19.003" Score="0" ViewCount="" Body="&lt;p&gt;How do I go about understanding others code?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, most I don't go about it at all. I only try to understand it if it doesn't work, and I'm trying to figure out if I did something wrong or &quot;the other&quot; did. And the tools I use for that is reading the code and using the debugger.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that also doesn't help, I mail the author.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-21T09:29:19.003" />
  <row Id="28568" PostTypeId="2" ParentId="28525" CreationDate="2010-12-21T09:32:14.260" Score="3" ViewCount="" Body="&lt;p&gt;I don't hate it. But Python don't have gotos, and amazingly, I've never once missed it or thought &quot;this would be much easier if I had a goto&quot;. Never.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I think that in Delphi I used it once during three years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's just not needed.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastEditorUserId="9529" LastEditorDisplayName="" LastEditDate="2011-04-13T07:33:14.560" LastActivityDate="2011-04-13T07:33:14.560" CommunityOwnedDate="2011-01-09T16:41:54.697" CommentCount="30" />
  <row Id="28569" PostTypeId="2" ParentId="28551" CreationDate="2010-12-21T09:38:51.823" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Run the programm with a simple test case&lt;/li&gt;&#xA;&lt;li&gt;Step through the code with the same test case&lt;/li&gt;&#xA;&lt;li&gt;Use more difficult test cases &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="10158" LastActivityDate="2010-12-21T09:38:51.823" />
  <row Id="28570" PostTypeId="2" ParentId="28551" CreationDate="2010-12-21T09:40:06.423" Score="0" ViewCount="" Body="&lt;p&gt;I imagine how I'd write the code and look for similarities.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-21T09:40:06.423" />
  <row Id="28571" PostTypeId="2" ParentId="28525" CreationDate="2010-12-21T09:45:56.703" Score="10" ViewCount="" Body="&lt;p&gt;i like goto and use it actively in my code. Language designers prefer to call it &quot;throw&quot; or &quot;raise&quot; nowadays, but the rationale remains the same.&lt;/p&gt;&#xA;" OwnerUserId="9144" LastActivityDate="2010-12-21T09:45:56.703" CommunityOwnedDate="2011-01-09T16:41:54.697" CommentCount="7" />
  <row Id="28572" PostTypeId="2" ParentId="25600" CreationDate="2010-12-21T09:47:43.690" Score="1" ViewCount="" Body="&lt;p&gt;I agree mostly with Click Upvote's post, however if you're working on a relatively large site I would definitely recommend using Symfony framework coupled with the Doctrine ORM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're project is due next year, I would say take the time to invest in Symfony2 and Doctrine2.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I can't stress enough the importance of developing on unix based system, Ubuntu is my preference and an all around great web server. I work primarily on windows but develop on Ubuntu running in a VMWare virtual machine on my desktop (or server when I'm at work).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for IDE I highly recommend using NuSphere PHPEd or Storm PHP, sadly like all great things they are not free.&lt;/p&gt;&#xA;" OwnerUserId="11103" LastActivityDate="2010-12-21T09:47:43.690" CommentCount="3" />
  <row Id="28573" PostTypeId="1" AcceptedAnswerId="28581" CreationDate="2010-12-21T09:48:15.727" Score="4" ViewCount="468" Body="&lt;p&gt;How do you evaluate how much you feel you ought to be paid as a junior programmer?&lt;/p&gt;&#xA;" OwnerUserId="11161" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2010-12-21T15:48:11.180" LastActivityDate="2010-12-21T16:28:31.647" Title="How do you judge if you're paid enough?" Tags="&lt;skills&gt;" AnswerCount="10" CommentCount="7" FavoriteCount="2" />
  <row Id="28574" PostTypeId="2" ParentId="28573" CreationDate="2010-12-21T09:51:12.087" Score="0" ViewCount="" Body="&lt;p&gt;Comparing it with my college/school friends working in other organizations. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-21T09:51:12.087" CommentCount="3" />
  <row Id="28575" PostTypeId="2" ParentId="28525" CreationDate="2010-12-21T09:55:34.667" Score="3" ViewCount="" Body="&lt;p&gt;I dislike the &quot;COME FROM&quot; operator in C-InterCal more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/INTERCAL#Dialects&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/INTERCAL#Dialects&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-21T09:55:34.667" CommunityOwnedDate="2011-01-09T16:41:54.697" CommentCount="1" />
  <row Id="28576" PostTypeId="2" ParentId="28507" CreationDate="2010-12-21T09:57:43.527" Score="18" ViewCount="" Body="&lt;p&gt;The correct answer to this question is: &lt;strong&gt;nowhere&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nowhere will you find anyone investing hunderds of hours without ever seeing a single penny back. Sure stock is nice, but why make yourself dependent to anyone else, when you can just ask payment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider this: do you offer the same stock options to buy your chair and desk to work at? Or when buying pens for that matter?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why insist on treating programmers worse than when you are buying a pen? Its pretty insulting to us all!&lt;/p&gt;&#xA;" OwnerUserId="3814" LastActivityDate="2010-12-21T09:57:43.527" CommentCount="3" />
  <row Id="28577" PostTypeId="2" ParentId="28519" CreationDate="2010-12-21T10:01:07.883" Score="2" ViewCount="" Body="&lt;p&gt;I understand how most people say experience is better, but I understand your position because the same people who want experience over certification are unwilling to hire someone without experience. Experience is good but when you work on a site you have a particular role and many people end up boxed in their view of a particular technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am microsoft certified for several MS technologies including ASP.NET and i'll tell you it's well worth it if you are willing to put in the effort because of how much you learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The difficult thing in learning a platform is knowing the libraries and the intricacies of that platform and thats what certification is meant to do. I have seen people with many years experience struggling with relatively simple tasks. In this industry it's important to understand whats relevant to your job and staying upto date in that particular area or else all the experience will not save you. Certification and experience is a killer combination.&lt;/p&gt;&#xA;" OwnerUserId="11161" LastActivityDate="2010-12-21T10:01:07.883" CommentCount="2" />
  <row Id="28578" PostTypeId="2" ParentId="28551" CreationDate="2010-12-21T10:01:33.070" Score="1" ViewCount="" Body="&lt;p&gt;I go through the usecases. Each use-case starts at some point and finishes at another. Start looking at the begining and follow the flow. When you've examined three or four usecases you know the structure of the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Preferably you should be writing tests when following the code, since it will help you keep a more active role in examining the code than reading it line by line.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The debugger is a great tool to follow the flow, you could make some quick tests that doesn't realy assert anything but start the code at the point you want to debug from, to get a quick starting point for the debugger.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Though depending on how comfortable you are with tests, tests might be faster to check expected results.&lt;/p&gt;&#xA;" OwnerUserId="10416" LastActivityDate="2010-12-21T10:01:33.070" />
  <row Id="28579" PostTypeId="1" CreationDate="2010-12-21T10:03:49.273" Score="26" ViewCount="1139" Body="&lt;p&gt;I wanted to ask this question, so that I can come back to it and it serve as a &lt;strong&gt;constant reminder&lt;/strong&gt; for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Through out my life, I've had milestones where I've sat down and really self evaluate myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every-time I've found something negative I've strived to put it right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of those negatives is pride or arrogance. Sadly the nature of programming has plenty of fuel to endlessly fills ones own ego.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please can you give me words of wisdom that can serve as a reminder for me to &lt;strong&gt;&quot;eat humble pie&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to keep my arrogance in check even if that arrogance is a sand grains weight.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-12-22T02:13:54.023" LastActivityDate="2010-12-22T14:46:02.450" Title="Help me learn to program with humility?" Tags="&lt;ego&gt;&lt;arrogance&gt;&lt;pride&gt;&lt;humility&gt;" AnswerCount="20" CommentCount="14" FavoriteCount="10" />
  <row Id="28580" PostTypeId="2" ParentId="28551" CreationDate="2010-12-21T10:06:22.453" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;refactoring&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the code, thus making it clearer, and in standard that ah-hock established.&lt;/p&gt;&#xA;" OwnerUserId="5260" LastActivityDate="2010-12-21T10:06:22.453" CommentCount="7" />
  <row Id="28581" PostTypeId="2" ParentId="28573" CreationDate="2010-12-21T10:07:43.253" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Ask yourself how much added value you are providing to your company&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit: Downvoters - skip to the end...&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simple formula:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How much you earn or save the company&#xA;  per year / 3 = Gross salary&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This takes into account the fact that your employer will want to exploit you (you will always be underpaid), and allows for the overheads of having an employee on the books (training, heating the office, health and safety, equipment purchase etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How to work out your added value&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some scenarios that may help with your application of the above formula. These have been left in as an illustration of thought processes, you may want to simply skip to the end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Internal software&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's assume you do some work on an internal software product that helps to automate a previously manual process. Instead of that process taking an admin worker in Accounts all day to complete, they can now do it with a click of a mouse. The admin worker is now freed up to do other work and the Accounts department don't have to hire a new person to handle that manual process. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is why they stumped up the cash from their budget to pay for you to develop this code for them in the first place. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have saved the company the &lt;em&gt;employer cost&lt;/em&gt; of a permanent admin worker - say $30,000. Therefore, you have justified your salary up to $10,000. In order to earn more, you need to provide more solutions that reduce the companies outgoings. As the company grows your contribution may affect a larger group of people, and as such your salary may increase (or you may be exploited more). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;External software&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's say you've just written a killer feature for your company's new commercial product. It retails at $3000, and the feature has caused an extra 100 units to be sold. (Your company is remarkable in that the sales force and developers get to chat freely by the water cooler). From that you deduce that your contribution was worth $300,000 to the company. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But... you didn't do it alone, did you? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The entire company exists to sell this product and everyone has made some kind of input -  from the person who came up with the idea of the feature you implemented to you doing the coding to the marketing and the salesmanship that neatly cleaved the cash from the customer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For argument's sake, let's assume that 10 other people were principal in making this feature a success. Therefore, by the formula above you justify $10,000 of your gross salary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Open-source software&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You work for free, don't you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only joking. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming that you mean that your company provides free and open-source software (e.g. Ubuntu) then your company's income is dependent on alternative revenue streams (service contracts, advertising, philanthropist funding etc). As a result, matching your contribution to your salary is going to be hard. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The final word (read first)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://delong.typepad.com/sdj/2005/04/lire_le_capital.html&quot; rel=&quot;nofollow&quot;&gt;From this article&lt;/a&gt; (provided by @Macneil) &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Using a labour theory of value is just&#xA;  a red herring&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;which essentially states that &lt;strong&gt;you will never be able to work out directly what you are worth&lt;/strong&gt; because you need to take into account a large number of contributing factors that are not available to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Realistically, you will have to compare yourself to others doing similar programming jobs &lt;em&gt;in the same country&lt;/em&gt;. The problem there is that you are averaging out your individual contributions over the entire country which means that you won't be reaching your maximum earnings potential. &lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-21T15:57:23.187" LastActivityDate="2010-12-21T15:57:23.187" CommentCount="9" />
  <row Id="28582" PostTypeId="1" AcceptedAnswerId="28639" CreationDate="2010-12-21T10:08:29.590" Score="5" ViewCount="107" Body="&lt;p&gt;My team recently inherited a project from a team where the amount of developers dropped so low they had to offload some work. One of the projects we inherited was a project littered with nested code, and awful exception handling (Exceptions were in effect handled as goto statements and thus used as a part of the normal program flow.). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All in all it was a hairy code ball someone had been coughing up for a few years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now we've been having a few team guidelines in place for quite some time, but all of the regards to the structures of objects, coding styles and what not. But we havn't covered exception handling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I'm wondering if you have any guidelines in your teams regarding exception handling, and if so how you enforce them?&lt;/p&gt;&#xA;" OwnerUserId="10416" LastActivityDate="2010-12-21T13:22:27.797" Title="Do you have any teamguidelines regarding exceptions?" Tags="&lt;team&gt;&lt;teaching&gt;&lt;documentation&gt;&lt;communication&gt;&lt;exceptions&gt;" AnswerCount="4" CommentCount="3" />
  <row Id="28583" PostTypeId="2" ParentId="28551" CreationDate="2010-12-21T10:10:00.943" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Try to fix a bug&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best possible way to get to know the code! :)&lt;/p&gt;&#xA;" OwnerUserId="3814" LastActivityDate="2010-12-21T10:10:00.943" />
  <row Id="28584" PostTypeId="2" ParentId="28553" CreationDate="2010-12-21T10:11:12.560" Score="2" ViewCount="" Body="&lt;p&gt;Since Silverlight is a lightweight implementation of WPF and .Net I think that it is not likely that they will &quot;grow togeather&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you look at Compact Framework it didn't grow togeather with .Net, and I think that if Silverlight doesn't perform well then it is most likely the case that it will be dropped just like Compact Framework is being dropped right now.&lt;/p&gt;&#xA;" OwnerUserId="10416" LastActivityDate="2010-12-21T10:11:12.560" CommentCount="4" />
  <row Id="28585" PostTypeId="1" AcceptedAnswerId="28622" CreationDate="2010-12-21T10:11:58.210" Score="1" ViewCount="323" Body="&lt;p&gt;After Heroku acquisition by SalesForce, is there any chance for Ruby being adopted in enterprise development?&lt;br&gt;&#xA;If you know any good examples already, please point to them.&lt;/p&gt;&#xA;" OwnerUserId="8153" LastActivityDate="2011-03-17T05:52:23.293" Title="Ruby and Enterprise. Any future?" Tags="&lt;ruby&gt;&lt;enterprise-development&gt;" AnswerCount="3" />
  <row Id="28586" PostTypeId="2" ParentId="28573" CreationDate="2010-12-21T10:14:24.560" Score="5" ViewCount="" Body="&lt;p&gt;I keep a nose out on the market and occasionally get some offers I listen to. They give a rough estimate around how much you could achieve in terms of payment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also if you look at consultant firms they usually have a &quot;ladder&quot; with titles such as junior, senior etc. each with a pay-level and expected performance. If you meet up at consultant firms reqruitment events every now and then you can get the chance to see what the levels are like.&lt;/p&gt;&#xA;" OwnerUserId="10416" LastActivityDate="2010-12-21T10:14:24.560" />
  <row Id="28587" PostTypeId="2" ParentId="28579" CreationDate="2010-12-21T10:16:10.813" Score="52" ViewCount="" Body="&lt;p&gt;Arrogance is just a &lt;a href=&quot;http://programmers.stackexchange.com/questions/4693/why-are-so-many-programmers-arrogant-closed&quot;&gt;common&lt;/a&gt; &lt;strong&gt;symptom&lt;/strong&gt;. The root cause is personal and bound to your history.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Arrogance usually means you are unsafe. You need your daily shoot of pride to feel good. Many people criticize other people because it's a way of saying &quot;&lt;em&gt;I'm better than them, I'm valuable&lt;/em&gt;&quot;. Getting reputation points here contribute to your pride. You are seeking them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But like anyone on this planet, &lt;code&gt;you suck&lt;/code&gt;. A lot. Probably not in programming, but you certainly suck at many things. Maybe you hide yourself to avoid being exposed to those things by cutting all social interactions and staying at home with your computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How to become less arrogant? This is simple. By exposing you to much more brilliant people than you, in others fields, as frequently as possible. The technique is called &lt;a href=&quot;http://en.wikipedia.org/wiki/Desensitization_%28psychology%29&quot; rel=&quot;nofollow&quot;&gt;desensitization&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will hurt. A lot... but you will eventually learn that everybody suck at something. And you will understand your value in this world. And will use it with &lt;strong&gt;humility&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-21T11:04:50.177" LastActivityDate="2010-12-21T11:04:50.177" CommentCount="6" />
  <row Id="28588" PostTypeId="1" AcceptedAnswerId="28593" CreationDate="2010-12-21T10:18:19.937" Score="5" ViewCount="217" Body="&lt;p&gt;As a service provider you will have to explain to customers why they should work with you. Why you are different from any other programmer. This is the unique selling proposition. Why are you an iPod and not just any other mp3 player? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We most certainly CANNOT use &quot;we deliver products on time or its free&quot; as a selling proposition or &quot;we do it in half the time as the other guy&quot; or &quot;half the price, same value&quot; are not realistic selling propositions in the IT services industry. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is, what is a &lt;em&gt;valid&lt;/em&gt; unique selling proposition? Please cite some examples&lt;/p&gt;&#xA;" OwnerUserId="6610" LastActivityDate="2010-12-21T22:44:05.540" Title="What is a programmer's unique selling proposition?" Tags="&lt;career&gt;&lt;business&gt;&lt;marketing&gt;" AnswerCount="6" />
  <row Id="28589" PostTypeId="2" ParentId="27564" CreationDate="2010-12-21T10:22:46.343" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Non blocking SQL Queries (Like insert some log, but don't wait for result of query)&lt;/li&gt;&#xA;&lt;li&gt;Parallel SQL Queries&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;just a dream&lt;/p&gt;&#xA;" OwnerUserId="11166" LastActivityDate="2010-12-21T10:22:46.343" CommunityOwnedDate="2010-12-21T10:22:46.343" CommentCount="2" />
  <row Id="28590" PostTypeId="2" ParentId="25147" CreationDate="2010-12-21T10:26:52.347" Score="0" ViewCount="" Body="&lt;p&gt;A good approach is to study Java and use the JDeveloper IDE which is intended for exactly the purpose of coding Java against the Oracle database.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.oracle.com/technetwork/jdev/index.html&quot; rel=&quot;nofollow&quot;&gt;http://www.oracle.com/technetwork/jdev/index.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-21T10:26:52.347" />
  <row Id="28591" PostTypeId="2" ParentId="28525" CreationDate="2010-12-21T10:32:11.780" Score="5" ViewCount="" Body="&lt;p&gt;GOTO was rejected because it is very easy to write &quot;spaghetti code&quot; with it - code that is difficult to follow, to debug and maintain, particularly on larger projects. But to be fair, &lt;strong&gt;you don't &lt;em&gt;have&lt;/em&gt; to write bad code&lt;/strong&gt; using GOTO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nevertheless, I have not found a worthwhile use for GOTO in &lt;em&gt;years&lt;/em&gt;. The reason &lt;em&gt;I&lt;/em&gt; don't use GOTO is that there have &lt;strong&gt;always&lt;/strong&gt; been more expressive, clearer ways of stating my intent in my chosen programming languages. To be quite fair, it is more than likely that &quot;better&quot; ways are sometimes chosen the result of convention rather than because they are intrinsically more readable. I would argue, however, that &lt;strong&gt;convention is an important aid to understandability&lt;/strong&gt;, so should be followed where there is no pressing reason not to do so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be honest, I've been following this philosophy for so long that &lt;strong&gt;I'm not even sure of the syntax&lt;/strong&gt; for GOTO in my present programming language. I'll look it up... but I doubt that I'll use it.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;For these reasons, GOTO is like a&#xA;  sword:&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;A sword is a tool. It cannot, therefore, be evil in itself.&#xA;  Nevertheless, its purose is to kill&#xA;  (or, in the case of GOTO, to break&#xA;  program flow). As such it was often&#xA;  weilded to evil purpose. Indeed, it may even be turned on its owner.&lt;/li&gt;&#xA;  &lt;li&gt;It is a legacy weapon, suited to a bygone age. As such, it is of little&#xA;  use in modern warfare. I certainly&#xA;  have no reason to weild one in my&#xA;  day-to-day duties.&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;OTOH, &lt;strong&gt;if&lt;/strong&gt; your &lt;strong&gt;peers&lt;/strong&gt; agree that you can use your sword &lt;em&gt;safely&lt;/em&gt; and &lt;em&gt;usefully&lt;/em&gt; - by which I mean that your code is easy to read, understand and maintain - then go ahead, fill your boots.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-04-17T06:02:34.883" LastActivityDate="2011-04-17T06:02:34.883" CommunityOwnedDate="2011-01-09T16:41:54.697" CommentCount="2" />
  <row Id="28592" PostTypeId="2" ParentId="28585" CreationDate="2010-12-21T10:34:29.567" Score="1" ViewCount="" Body="&lt;p&gt;the number of gems in RubyGems become greater than number of module in CPAM&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://slashdot.org/story/10/12/20/0459240/-RubyGems-Module-Count-Soon-To-Surpass-CPANs&quot; rel=&quot;nofollow&quot;&gt;http://slashdot.org/story/10/12/20/0459240/-RubyGems-Module-Count-Soon-To-Surpass-CPANs&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Ruby is use on a lot of product about cloud system like puppet or Chef. Ruby is already in enterprise.&lt;/p&gt;&#xA;" OwnerUserId="11167" LastActivityDate="2010-12-21T10:34:29.567" CommentCount="2" />
  <row Id="28593" PostTypeId="2" ParentId="28588" CreationDate="2010-12-21T10:38:24.257" Score="5" ViewCount="" Body="&lt;p&gt;If you are seeking for generic selling points, you are getting it wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to be &lt;a href=&quot;http://www.sethgodin.com/purple/chapter.html&quot; rel=&quot;nofollow&quot;&gt;different&lt;/a&gt; if you want to be seen in the crowded offering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you are not yet different, you just have identified some work ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you will be different, you will figure out what to say.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-12-21T10:38:24.257" CommentCount="3" />
  <row Id="28594" PostTypeId="2" ParentId="28588" CreationDate="2010-12-21T10:38:32.040" Score="0" ViewCount="" Body="&lt;p&gt;Unless you are looking for a job, why would you need to sell yourself as a programmer? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps you should focus on selling your &lt;strong&gt;products and services&lt;/strong&gt; instead of your &lt;strong&gt;people&lt;/strong&gt; ;)&lt;/p&gt;&#xA;" OwnerUserId="3814" LastActivityDate="2010-12-21T10:38:32.040" />
  <row Id="28595" PostTypeId="2" ParentId="28588" CreationDate="2010-12-21T10:42:23.680" Score="1" ViewCount="" Body="&lt;p&gt;My usual USP is the combination of domain knowledge and technical knowledge, e.g. &quot;Warehouse management systems&quot; with &quot;Java, C# and Oracle&quot;. If you manage to find a job that requires both, there won't be much competition.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-21T10:42:23.680" />
  <row Id="28596" PostTypeId="2" ParentId="28579" CreationDate="2010-12-21T10:44:17.997" Score="2" ViewCount="" Body="&lt;p&gt;Day to day with your coleagues, look to learn or teach rather than show off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you find something you're unfamiliar with, try to be enthusiastic about finding something new, rather than scornful due to your lack of knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even those who you may consider below you in skill will occasionally come up with some really awesome solution to a problem. You just need to aim for &quot;wow that's really cool, how'd you do that?&quot; instead of &quot;pfft I coulda done that if I'd thought of it...&quot; &lt;/p&gt;&#xA;" OwnerUserId="8993" LastActivityDate="2010-12-21T10:44:17.997" />
  <row Id="28597" PostTypeId="2" ParentId="6815" CreationDate="2010-12-21T10:47:54.280" Score="0" ViewCount="" Body="&lt;p&gt;Been there for a while. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Understand that PMs normally don't do coding. &lt;/li&gt;&#xA;&lt;li&gt;If you stick to doing both you might end up being below average in either. &lt;/li&gt;&#xA;&lt;li&gt;If you want to become a PM, fight for a position that doesn't require you to do coding.  &lt;/li&gt;&#xA;&lt;li&gt;Also, figure out if becoming a PM is really an advance in your career. Excellent engineers&#xA;might earn more than average PMs.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="9447" LastActivityDate="2010-12-21T10:47:54.280" />
  <row Id="28598" PostTypeId="2" ParentId="28588" CreationDate="2010-12-21T10:54:51.757" Score="0" ViewCount="" Body="&lt;p&gt;You fulfill qualities mentioned in this answers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/27560/what-defines-a-good-developer-from-an-employers-perspective&quot;&gt;What defines a good developer from an employer’s perspective?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-21T10:54:51.757" />
  <row Id="28599" PostTypeId="2" ParentId="28579" CreationDate="2010-12-21T11:00:18.723" Score="5" ViewCount="" Body="&lt;p&gt;Arrogance isn't self-esteem; it's actually a subconscious cover for its opposite. My preferred cure is learning. You won't be arrogant if you realize that there's always more to learn and continue to seek out new things to learn. Doing that builds &lt;em&gt;real&lt;/em&gt; self-esteem.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-21T11:00:18.723" />
  <row Id="28600" PostTypeId="2" ParentId="28551" CreationDate="2010-12-21T11:09:06.793" Score="2" ViewCount="" Body="&lt;p&gt;I use a mix of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Writing tests for it&lt;/li&gt;&#xA;&lt;li&gt;Changing it to see how it break&lt;/li&gt;&#xA;&lt;li&gt;Refactoring&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Not necessarily in this order :-) It's astonishing how much easier it becomes to understand what a piece of code does after some refactoring.&lt;/p&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-12-21T11:09:06.793" CommentCount="1" />
  <row Id="28601" PostTypeId="1" CreationDate="2010-12-21T11:09:22.373" Score="6" ViewCount="287" Body="&lt;p&gt;I am a complete starter in web development, as I know only basics of HTML and CSS, although I have a history of desktop development. What is the usual roadmap to get started in web apps, based on AJAX? We decided to use Dojo toolkit as our javascript library. Is the following a feasible map?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1-Learn basic javascript(already on it)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2-Learn what DOM is&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3-Start with Dojo documentation and examples&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4-Get into AJAX with Dojo&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Addendum: My goal is not to become a professional web developer who builds public web pages, it is not my specialty. I am trying to build an interface to an embedded product my company develops. We chose dojo mostly because it provides widgets for easy interface development. I am just trying to find out the easiest way to get this done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got several satisfactory answers and  have difficulty choosing the best.&lt;/p&gt;&#xA;" OwnerUserId="2213" LastEditorUserId="2213" LastEditorDisplayName="" LastEditDate="2010-12-22T08:39:28.947" LastActivityDate="2010-12-22T08:39:28.947" Title="What are the steps to learn AJAX based web application development?" Tags="&lt;learning&gt;&lt;web-development&gt;&lt;javascript&gt;&lt;ajax&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="28602" PostTypeId="2" ParentId="28579" CreationDate="2010-12-21T11:10:43.463" Score="15" ViewCount="" Body="&lt;p&gt;In my experience, truly great programmers are humble and primarily interested in learning from others, not boosting their own self-esteem. Programmers with &lt;a href=&quot;http://blog.workingsoftware.se/2010/12/beware-of-egomaniacs.html&quot; rel=&quot;nofollow&quot;&gt;huge egos&lt;/a&gt; usually turns out to be mediocre developers at best. This helps put things into perspective. At least for me.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-12-21T11:10:43.463" CommentCount="8" />
  <row Id="28603" PostTypeId="1" AcceptedAnswerId="28643" CreationDate="2010-12-21T11:12:29.297" Score="14" ViewCount="717" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/q/4498454/546686&quot;&gt;Exibit 1&lt;/a&gt;, &lt;a href=&quot;http://stackoverflow.com/q/4498346/546686&quot;&gt;Exibit 2&lt;/a&gt;, I guess you won't find it hard to recall other examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thing is: if there is more than one way to solve a problem, the PHP programmer (I usually browse the PHP tag on StackOverflow) will ask for help on the solution involving regular expressions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Even when&lt;/em&gt; it will be less economic, &lt;em&gt;even when&lt;/em&gt; the php manual suggests (&lt;a href=&quot;http://php.net/manual/en/function.str-replace.php&quot; rel=&quot;nofollow&quot;&gt;link&lt;/a&gt;) to use str_replace instead of any preg_* or ereg_* function when no fancy substitution rules are required.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does somebody have a clue about why this happens?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong, some of my best friends are regular expressions and I don't despise Perl. What I don't get is why there is no looking for alternatives whatsoever, even when the overkill is obvious (regex to switch strings) or the code complexity rises exponentially (regex for getting data from html &lt;em&gt;in PHP&lt;/em&gt;)&lt;/p&gt;&#xA;" OwnerUserId="11146" LastEditorUserId="11146" LastEditorDisplayName="" LastEditDate="2010-12-21T11:37:24.387" LastActivityDate="2010-12-22T00:45:08.117" Title="Why are regular expressions so morbidly attractive?" Tags="&lt;programming-practices&gt;&lt;regular-expressions&gt;" AnswerCount="16" CommentCount="1" />
  <row Id="28604" PostTypeId="2" ParentId="28579" CreationDate="2010-12-21T11:19:43.660" Score="3" ViewCount="" Body="&lt;p&gt;Keep reading stacks it will keep you humble.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-21T11:19:43.660" CommentCount="1" />
  <row Id="28605" PostTypeId="2" ParentId="28525" CreationDate="2010-12-21T11:21:22.113" Score="1" ViewCount="" Body="&lt;p&gt;&lt;code&gt;goto&lt;/code&gt; was invented so you can have loops and control structures. If you write &lt;code&gt;if(condition) { code; }&lt;/code&gt; in any language, the compiler will create a &lt;code&gt;goto&lt;/code&gt; for you:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;           ... evaluate condition ...&#xA;           iffalse skip ; // If the condition is false, goto &quot;skip&quot;&#xA;           ...code...&#xA; skip: &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Without &lt;code&gt;goto&lt;/code&gt;, programming would be impossible. The problem is &lt;em&gt;when to use it&lt;/em&gt; and &lt;em&gt;when to avoid it&lt;/em&gt;. We're human, so we stick to patterns. If something works once, we repeat. Even if the new situation is a little bit different. That lead to code which contained thousands of &lt;code&gt;goto&lt;/code&gt;s with weird conditions -&gt; a maintenance nightmare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So &lt;code&gt;goto&lt;/code&gt; as such isn't bad, it's the mis-/overuse. Certain programs like parsers are much more readable if you have &lt;code&gt;goto&lt;/code&gt; to handle errors. For almost everything else, modern languages have better solutions (like exceptions for error handling or resource tracking as in Python or C#).&lt;/p&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-12-21T11:21:22.113" CommunityOwnedDate="2011-01-09T16:41:54.697" />
  <row Id="28606" PostTypeId="2" ParentId="28582" CreationDate="2010-12-21T11:23:21.757" Score="1" ViewCount="" Body="&lt;p&gt;We don't have specific exception handling rules for our team, except the usual ones: don't use exceptions for 'normal' behavior, don't just silently swallow exceptions, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Static ananlysis may help you catch some of those (depending on the language you use) but you'll be safer with code reviews.&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-12-21T11:23:21.757" />
  <row Id="28607" PostTypeId="2" ParentId="28603" CreationDate="2010-12-21T11:24:01.227" Score="5" ViewCount="" Body="&lt;p&gt;Hmmm, I can only guess. Maybe some people have experienced that 30 lines of their code were replaced by a 20-character-long regex, so it feels wrong to them to use anything else instead when regexes can be used.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="6617" LastEditorDisplayName="" LastEditDate="2010-12-21T12:03:48.667" LastActivityDate="2010-12-21T12:03:48.667" />
  <row Id="28608" PostTypeId="2" ParentId="28601" CreationDate="2010-12-21T11:24:44.237" Score="4" ViewCount="" Body="&lt;p&gt;Here is my suggestion:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Learn basic javascript;&lt;/li&gt;&#xA;&lt;li&gt;Master html DOM;&lt;/li&gt;&#xA;&lt;li&gt;Learn advanced javascript;&lt;/li&gt;&#xA;&lt;li&gt;Try with the first experiments by calling static html documents;&lt;/li&gt;&#xA;&lt;li&gt;Learn the basics of a server-side language (as PHP). Among those basics, the fundamental ones for Ajax include methods for passing data between scripts;&lt;/li&gt;&#xA;&lt;li&gt;Try with the first experiments involving calls for dynamic data;&lt;/li&gt;&#xA;&lt;li&gt;Try with the second ones;&lt;/li&gt;&#xA;&lt;li&gt;Once you feel secure enough, chose a framework or library that will strongly reduce your development time.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="11146" LastActivityDate="2010-12-21T11:24:44.237" CommentCount="1" />
  <row Id="28609" PostTypeId="2" ParentId="24605" CreationDate="2010-12-21T11:25:59.453" Score="0" ViewCount="" Body="&lt;p&gt;I try to import all &quot;old&quot; repositories (CVS, Subversion) into a local Git or Mercurial repo. That way, I can easily track the official version, merging is much, much, much better in DCVS than in Subversion and I can branch as often as I like without any hazzle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only drawback so far is to get used to the idea to keep separate projects separate; don't try to import more than one project into a DCVS.&lt;/p&gt;&#xA;" OwnerUserId="3707" LastActivityDate="2010-12-21T11:25:59.453" />
  <row Id="28610" PostTypeId="2" ParentId="28582" CreationDate="2010-12-21T11:26:33.083" Score="1" ViewCount="" Body="&lt;p&gt;Currently we don't have explicit guidelines, mostly because nobody in my team does it wrong. (Unlike many other topics, there is a general consensus when and how exceptions should be used)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I would definitely implement them the same day I see an exception abused as a goto.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-21T11:26:33.083" />
  <row Id="28611" PostTypeId="2" ParentId="28601" CreationDate="2010-12-21T11:27:11.297" Score="1" ViewCount="" Body="&lt;p&gt;Your map is fine in my opinion, but I suggest to couple all of your steps with some little app, which contain all things you want to learn. It would be great if you will manage to make it useful not only to yourself, but your work mates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: cbrandolino roadmap is very good. But anyway, try to apply all new knowledge to something useful.&lt;/p&gt;&#xA;" OwnerUserId="8153" LastActivityDate="2010-12-21T11:27:11.297" />
  <row Id="28612" PostTypeId="2" ParentId="28603" CreationDate="2010-12-21T11:30:16.730" Score="4" ViewCount="" Body="&lt;p&gt;It fits with how some people think. I don't like them, but I have friends who seem to think in regexps. I guess the pattern matching part of their brain is more exposed than the formal logic one. :-)&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-21T11:30:16.730" CommentCount="5" />
  <row Id="28613" PostTypeId="1" AcceptedAnswerId="28621" CreationDate="2010-12-21T11:32:50.310" Score="7" ViewCount="565" Body="&lt;p&gt;I've been a software developer for 10 years. I like being a developer and no surprise I strive for sense of achievement. However, I normally find myself doing stuff that needs to get done regardles of it's my job or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My experience of various managers I've worked with shows a terrible score of like 20% of those that I find competent for the work they do. This makes me think that demand must be high for no-nonsense managers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm seriously considering a career shift from a developer position to one of those positions, but my question is: -Is it worth it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm assuming that it's more or less undestood what each of these positions mean. The question is only if an above average developer normally earns more than an average manager or not?&lt;/p&gt;&#xA;" OwnerUserId="9447" LastActivityDate="2010-12-21T14:20:00.427" Title="Software Developer vs. Project Manager vs. Product Manager" Tags="&lt;career&gt;&lt;project-management&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="3" />
  <row Id="28614" PostTypeId="2" ParentId="28603" CreationDate="2010-12-21T11:34:08.477" Score="22" ViewCount="" Body="&lt;p&gt;When the only tool you have is a regex, every problem looks like &lt;code&gt;^((?&amp;gt;[a-zA-Z\d!#$%&amp;amp;'*+\-/=?^_{|}~]+\x20*|&quot;((?=[\x01-\x7f])[^&quot;\\]|\\[\x01-\x7f])*&quot;\x20*)*(?&amp;lt;angle&amp;gt;&amp;lt;))?((?!\.)(?&amp;gt;\.?[a-zA-Z\d!#$%&amp;amp;'*+\-/=?^_{|}~]+)+|&quot;((?=[\x01-\x7f])[^&quot;\\]|\\[\x01-\x7f])*&quot;)@(((?!-)[a-zA-Z\d\-]+(?&amp;lt;!-)\.)+[a-zA-Z]{2,}|\[(((?(?&amp;lt;!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)&amp;gt;)$&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-12-21T11:34:08.477" CommentCount="8" />
  <row Id="28615" PostTypeId="2" ParentId="28613" CreationDate="2010-12-21T11:40:49.967" Score="0" ViewCount="" Body="&lt;p&gt;If you stay as a developer with the knowledge you have, you can only use two hands. But if you become a project manager you can use more hands working on the same issue.&lt;/p&gt;&#xA;" OwnerUserId="1262" LastActivityDate="2010-12-21T11:40:49.967" CommentCount="1" />
  <row Id="28616" PostTypeId="2" ParentId="28613" CreationDate="2010-12-21T11:46:13.480" Score="1" ViewCount="" Body="&lt;p&gt;Well most, atleast more than 20% managers are competent but it is difficult to understand what they do most of their times but believe me they do something useful. Also dont assume that you will walk into a Manager's role and be a great success. Most GOOD Dev's don't do that job well and are not interested in spending their time in Mgmt tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe most Managers would earn more than a Dev of same experience, not sure though it might depend on the company and Geography.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-12-21T11:46:13.480" CommentCount="1" />
  <row Id="28617" PostTypeId="2" ParentId="28613" CreationDate="2010-12-21T11:48:56.347" Score="2" ViewCount="" Body="&lt;p&gt;Technically competent managers are extremely valuable and will always rise above those without the technical background. Your technical competence will provide a communication bridge between the developers and upper management/clients. You will be able to better manage expectations and maintain a solid rapport with your team. However, this is true assuming you have the other core emotional qualities for being not only a manager but also a &lt;strong&gt;leader&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="9518" LastActivityDate="2010-12-21T11:48:56.347" CommentCount="1" />
  <row Id="28618" PostTypeId="2" ParentId="28613" CreationDate="2010-12-21T11:50:57.410" Score="0" ViewCount="" Body="&lt;p&gt;The question of whether it is worth it, can only be answered by yourself. Where do you want to go? Are you not attached to developing software?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, do not forget that in a manager position, many new and difficult responsibilities come to you. You'll have your manager wanting your team to do everything right now, and your engineers telling you it's not possible. You'll have to coach and motivate your staff. You may need to fire staff, and are responsible for new hires. You'll get a lot more involved with office politics, which can be very messy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do think overall managers and engineers sometimes have too little understanding for each other, and how they each have skills that are important. The other person's job always seems so much simpler. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, there are quite some incompetent managers out there. But that is no different for engineers, or basically any other profession. But don't expect you'll do magically better yourself :)&lt;/p&gt;&#xA;" OwnerUserId="2947" LastActivityDate="2010-12-21T11:50:57.410" />
  <row Id="28620" PostTypeId="2" ParentId="28613" CreationDate="2010-12-21T12:00:09.900" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;What work do you &lt;em&gt;want&lt;/em&gt; to do?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I started out as a developer, and over 10 years or so rose to a more senior development role and finally a first-level developer-manager position, more because that was the natural progression in my company than any conscious decision on my part.  I enjoyed the additional decision-making responsibilities as well as the opportunity to continue making software directly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After changing companies, I am now a Project Manager with far less coding skill in the technologies we use than the developers I manage have, so I don't do programming any more.  I'm continuing to enjoy the planning, organising and &quot;making things better for the future&quot; activities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that the &quot;Project Manager&quot; title &lt;em&gt;can&lt;/em&gt; mean different things in different companies: for me it's running a small, agile, cross-functional team developing one product; in other places it's developing huge multi-million-dollar projects with hundreds of staff, focusing on massive high-level risk plans and the like.  I don't think the latter sort would suit me at all, so make sure you investigate the detail of positions rather than just looking at a job title.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you secure a job that you don't really enjoy, even if it's for more money, then is that going to make you happy in the long term?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's how I would summarise each role:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Software Developer: continue creating actual software on real machines that does cool stuff&lt;/li&gt;&#xA;&lt;li&gt;Project Manager: organising other developers to produce software, and making decisions on how best to deliver it&lt;/li&gt;&#xA;&lt;li&gt;Product Manager: liaising with customers and finding out what we should build next&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Which of these makes you want to get up and go to work in the morning?  &lt;/p&gt;&#xA;" OwnerUserId="4400" LastActivityDate="2010-12-21T12:00:09.900" />
  <row Id="28621" PostTypeId="2" ParentId="28613" CreationDate="2010-12-21T12:07:16.407" Score="11" ViewCount="" Body="&lt;p&gt;Speaking as a former developer who is now a Development Manager:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first thing I'd say is that most developers don't understand how most managers spend their time.  When I left my last role (Development Manager) one of my senior developers took the position and commented to me a couple of months after taking over that he really had no idea how much stuff I was dealing with that he didn't know about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can argue that I could have been communicating it better but generally my experience is that developers really don't want to know and it doesn't make them more productive so I tend not to mention unless they ask.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I spend most of my day doing things which the developers who work for me don't know about but which keeps crap off their desks.  When crap does land on their desk it was generally unavoidable (or at least beyond my influence, see below).  I think this is why many developers think their manager does nothing or is incompetent - it's because if you're doing your job well and keeping things away from them, by definition they don't know about it and therefore tend to assume it's not happening.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, every developer who becomes a manager has views on what they're going to do to make things better, but the reality is that as a manager your influence isn't that much greater than as a developer.  Generally you can change process to some extent and so on but you're still going to be pushed by unreasonable people (or reasonable people being pushed by other unreasonable people), you're still not going to have the budget for individual offices or those kick ass machines, and you're going to be even more subject to the politics and other bollocks that developers tend to hate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What may happen is that you may understand that some of the people who were unreasonable actually aren't, that things aren't always how they seem on the ground, but when you try and convey that down to the team you're likely to be seen as part of management...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if your perception that you're going to be great and no-nonsense is based on what you're going to change and how you're going to speak truth to power then good luck with that but there's a good chance you're kidding yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are two good reasons to become a manager:  because you're interested in it (and it can be interesting and you can make a difference - just not quite as much as you think and you won't get the recognition you deserve) or for the money (&lt;strong&gt;and my very well hidden answer to your well hidden question: yes, most managers do earn more than most developers&lt;/strong&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if neither of those appeal, then stay where you are.  Seriously, I was happiest as a senior development and if money were no object that's what I'd go back to doing.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-21T12:07:16.407" CommentCount="4" />
  <row Id="28622" PostTypeId="2" ParentId="28585" CreationDate="2010-12-21T12:14:07.007" Score="3" ViewCount="" Body="&lt;p&gt;Ruby is a great language to hack together quick solutions, so it will be a part of a lot of people's toolkits. There is unlikely a &lt;em&gt;Ruby 2 Enterprise Edition&lt;/em&gt; but developers and sysadmins working for enterprises will be using Ruby. People may even be using it in tools without being particularly aware that they are doing so. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately, when it comes to software for the enterprise, the language it is written in is among the least important things on the list. Enterprises want software that works well for them. If that is written in Ruby then great. If not, then great. Why would that specific implementation detail be important to them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: I only thought of this later, but one thing Ruby does &lt;em&gt;really well&lt;/em&gt; is implementing DSLs, which are something that will perhaps increasingly be used in the Enterprise as people start to appreciate what you can do with them. So perhaps in that respect it will become more popular.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastEditorUserId="4027" LastEditorDisplayName="" LastEditDate="2010-12-21T15:29:07.187" LastActivityDate="2010-12-21T15:29:07.187" CommentCount="3" />
  <row Id="28623" PostTypeId="2" ParentId="28582" CreationDate="2010-12-21T12:27:11.133" Score="0" ViewCount="" Body="&lt;p&gt;I think that exceptions should reamin Exceptions. I think its abusive and generates overhead when using exceptions as a workflow in your code. So, keep them verbose, and use only when something unexpected happened.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: tray to avoid the most common mistackes, like not passing the connection database to a function, or things like that. But rather use them when the primaryKey does not exists and you need it to do something.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-21T12:27:11.133" />
  <row Id="28624" PostTypeId="2" ParentId="28601" CreationDate="2010-12-21T12:31:31.727" Score="0" ViewCount="" Body="&lt;p&gt;Some frameworks like GWT and Flex can be learnt as it is and you don't get any extra benefit by learning javascript.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-12-21T12:31:31.727" CommentCount="1" />
  <row Id="28625" PostTypeId="2" ParentId="28603" CreationDate="2010-12-21T12:36:12.910" Score="0" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;Why are regular expressions so morbidly attractive?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're not. They're actually ugly as hell. And incomprehensible. &#xA;They're an abomination that should be killed as soon as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, this being said, I'm going back to debugging a little Perl app. Can't help it; unfortunatelly, they're still the best tool for the job sometimes.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-12-21T20:03:53.150" LastActivityDate="2010-12-21T20:03:53.150" CommentCount="21" />
  <row Id="28626" PostTypeId="2" ParentId="25600" CreationDate="2010-12-21T12:40:34.747" Score="0" ViewCount="" Body="&lt;p&gt;When dealing with collaborative work you need:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;• using version control: i think that Git or Subversion will work out quite smooth&lt;/p&gt;&#xA;&#xA;&lt;p&gt;• test driven development: I'm starting to learn this is a must,but dont take it to extremes&lt;/p&gt;&#xA;&#xA;&lt;p&gt;• debugging code (xdebug for php): xdebug is my choice&lt;/p&gt;&#xA;&#xA;&lt;p&gt;• use of UML diagrams: This helps when everyones has a working knowledge on OO Programming and DesignPatterns, nevertheless it's always a good practice&lt;/p&gt;&#xA;&#xA;&lt;p&gt;• use of OOP for maintainable, reusable code: And FLEXIBILITY, i think this is the key aspect of OOP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;• use of frameworks (like Zend Framework for php) for rapid application development: My Advise is SYMFONY, the first php framework (aint a toolkit). It has a very big commnunity, lots of documentation, and its entirely implemented on php. I've been working with it for a year and it totally binds with OOP&lt;/p&gt;&#xA;&#xA;&lt;p&gt;• you may also need a system to track bugs, feature requests, etc. like: &lt;a href=&quot;http://www.mantisbt.org/&quot; rel=&quot;nofollow&quot;&gt;Mantis&lt;/a&gt; or &lt;a href=&quot;http://trac.edgewall.org/&quot; rel=&quot;nofollow&quot;&gt;Track&lt;/a&gt; . This sistems are quite easy and straightforward. They also let you bind your subversion and related your commits to certain features or bugs people post.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, it's always important if your going to be leading a dev-team to make small meeting periodically so everyone knows the status of the system at a certain point and maybe that way you'll be capable of planning or see how things are working.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my company i have to send an email every day telling what i've been working on and if there where any complications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best of luck!&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-21T12:40:34.747" />
  <row Id="28627" PostTypeId="2" ParentId="28603" CreationDate="2010-12-21T12:46:00.703" Score="9" ViewCount="" Body="&lt;p&gt;On the contrary. People are parrotting the &lt;em&gt;regex are evil&lt;/em&gt; meme way too often IMO. It's obvious that preg_match is overused in &lt;code&gt;php&lt;/code&gt;, but it's less obvious that it's oftentimes sensible to do so (in PHP).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would go so far and conjecture that it's yet another microoptimization in php land to use the string functions. There are many and many useful, and they are usually the better choice. But you shouldn't shun &lt;code&gt;preg_match&lt;/code&gt; in favour of multiple &lt;code&gt;strpos&lt;/code&gt; and &lt;code&gt;if&lt;/code&gt; chains. Because in practice it turns out, libpcre is often faster than PHP can execute a loop looking for string alternatives e.g.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a recent example made me realize, testing if a string is all-lowercase:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; if ($string == strtolower($string))&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Is more readble than:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; if (!preg_match(&quot;/[A-Z]/&quot;, $string))&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And you would assume the first must be faster, since it's all-PHP. But in reality the regex only looks over the string once, and can abort the negated condition as soon as it finds an uppercase letter. The strtolower() approach however looks over the string twice. First strtolower() makes a string duplicate by iterating over each letter, comparing and uppercasing it. Then the &lt;code&gt;==&lt;/code&gt; iterates over the original and the copy again, comparing them once more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So that's not an obvious case. And to be objective the first one is often faster, since you normally just compare short strings. But it's imperative to not go blindly by the assumption that PHP string functions are always advisable over regular expressions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I'm tempted to add another rant about &lt;a href=&quot;http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags&quot;&gt;@bobince's fun answer&lt;/a&gt; regarding xhtml-regexes, and how it's recently often linked in a very unhelpful manner. And the more objective answers below go ignored.)&lt;/p&gt;&#xA;" OwnerUserId="1245" LastActivityDate="2010-12-21T12:46:00.703" CommentCount="5" />
  <row Id="28628" PostTypeId="2" ParentId="28547" CreationDate="2010-12-21T12:51:18.487" Score="3" ViewCount="" Body="&lt;p&gt;Symbian. Nokia still has the biggest market share worldwide for all mobile phones&lt;/p&gt;&#xA;" OwnerUserId="10158" LastActivityDate="2010-12-21T12:51:18.487" />
  <row Id="28629" PostTypeId="2" ParentId="28547" CreationDate="2010-12-21T12:56:34.990" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;Symbian / Android / IPhone&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's it ... this gives you a very (very!!) large majority coverage. Disregard the rest ... you cannot please everybody, and it will probably be not worth the cost either (always think of the cost/benefits).&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-21T12:56:34.990" CommentCount="6" />
  <row Id="28630" PostTypeId="2" ParentId="1662" CreationDate="2010-12-21T13:01:14.363" Score="0" ViewCount="" Body="&lt;p&gt;The place I'm at is a 4-day work week but each day is 10 hours (7:30 - 5:30) - I beat the traffic on the days I'm in and it's fantastic having an extra day to do something with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The bonus of this is that we keep the same amount of holidays (20 days) but they stretch to 5 weeks.&lt;/p&gt;&#xA;" OwnerUserId="680" LastActivityDate="2010-12-21T13:01:14.363" />
  <row Id="28631" PostTypeId="2" ParentId="28603" CreationDate="2010-12-21T13:03:46.447" Score="16" ViewCount="" Body="&lt;p&gt;I think it's because:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;They are fantastically concise (when used properly) compared to the equivalent code, and&lt;/li&gt;&#xA;&lt;li&gt;They are widely supported across programming languages, so most developers are familiar with them.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5348" LastActivityDate="2010-12-21T13:03:46.447" CommentCount="1" />
  <row Id="28632" PostTypeId="1" AcceptedAnswerId="28646" CreationDate="2010-12-21T13:05:00.913" Score="5" ViewCount="92" Body="&lt;p&gt;I was reading about the js-test-driver unit-testing framework, when I found out that the guys behind the framework intend it to be &lt;a href=&quot;http://code.google.com/p/js-test-driver/wiki/XUnitCompatibility&quot; rel=&quot;nofollow&quot;&gt;integrated with an assertion framework&lt;/a&gt;. What is an assertion framework? Is it a kind of unit-testing framework? If it is the case what is specific to such frameworks?&lt;/p&gt;&#xA;" OwnerUserId="8594" LastActivityDate="2010-12-21T13:32:43.257" Title="What is an &quot;assertion framework&quot;?" Tags="&lt;unit-testing&gt;&lt;frameworks&gt;" AnswerCount="2" />
  <row Id="28633" PostTypeId="2" ParentId="28603" CreationDate="2010-12-21T13:08:57.980" Score="16" ViewCount="" Body="&lt;p&gt;In earlier phases of my career (ie. pre-PHP), I was a Perl guru, and one major aspect of Perl gurudom is mastery of regular expressions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On my current team, I'm literally the only one of us who reaches for regex before other (usually nastier) tools. Seems like to the rest of the team they're pure magic. They'll wheel over to my desk and ask for a regex that takes me literally ten seconds to put together, and then be blown away when it works. I don't know--I've worked with them so long, it's just natural at this point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the absence of regex-fluency, you're left with combinations of flow-control statements wrapping strstr and strpos statements, which gets ugly and hard to run in your head. I'd much rather craft one elegant regex than thirty lines of plodding string searching.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-21T13:08:57.980" CommentCount="4" />
  <row Id="28634" PostTypeId="2" ParentId="28603" CreationDate="2010-12-21T13:10:52.800" Score="0" ViewCount="" Body="&lt;p&gt;Man is a tool-using creature, and regular expressions are powerful tools. A nice metaphor for regular expressions is a meat slicer from a deli. If you want paper-thin slices of turkey, corned beef, etc., it's just the thing. However, you need skilled hands to use it, because you can cut yourself really badly with it and you won't feel a thing until you see the blood. What I mean by this is that the big problem with regular expressions is getting them slightly off means that you match something you shouldn't, or vice versa, and you don't find out until it causes an issue further along in the process.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastEditorUserId="5621" LastEditorDisplayName="" LastEditDate="2010-12-21T13:16:50.407" LastActivityDate="2010-12-21T13:16:50.407" />
  <row Id="28635" PostTypeId="2" ParentId="1662" CreationDate="2010-12-21T13:11:03.130" Score="2" ViewCount="" Body="&lt;p&gt;My working hours revolve around the simple idea of &lt;strong&gt;AVOIDING RUSH-HOUR&lt;/strong&gt;.&#xA;I've been lucky to have flexible hours since I started working. So for the first week, I leave home at different times to see which ones are better for the route I take. Same for leaving the company. My city has atrocious traffic jams, even if I leave home at 9AM. So my working hours are usually 10:30AM to 8PM, sometimes I stay till 9PM... &lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-21T13:11:03.130" CommentCount="1" />
  <row Id="28636" PostTypeId="2" ParentId="27564" CreationDate="2010-12-21T13:12:25.093" Score="-2" ViewCount="" Body="&lt;p&gt;@Erlango:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;search for &quot;mysqli.multi-query&quot;, &quot;mysqli.poll&quot;, &quot;mysqli.reap-async-query&quot; on php.net&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ooh, and i wish:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;strong typed collections&lt;/strong&gt; :)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;some more &quot;template engine&quot; features&lt;/strong&gt;:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;foreach (...) { case FIRST: case LAST: case EVEN ...}&lt;/p&gt;&#xA;" OwnerUserId="11188" LastActivityDate="2010-12-21T13:12:25.093" CommunityOwnedDate="2010-12-21T13:12:25.093" />
  <row Id="28637" PostTypeId="2" ParentId="28632" CreationDate="2010-12-21T13:17:16.490" Score="2" ViewCount="" Body="&lt;p&gt;JsTestDriver is primarily concerned with providing a test-runner, i.e. the way that you execute the tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It provides a built in assertion framework, which is xUnit in style. This is used to actually write the tests (e.g. assertTrue, assertEquals, etc). However, it also allows you to plugin in alternative assertion frameworks. There are currently plugins available for Unit and Jasmine, which offers BDD style assertions.&lt;/p&gt;&#xA;" OwnerUserId="11189" LastActivityDate="2010-12-21T13:17:16.490" />
  <row Id="28638" PostTypeId="2" ParentId="25600" CreationDate="2010-12-21T13:20:02.793" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Framework&lt;/strong&gt;: codeigniter, with no doubt. It has all the functionalities you might ever need, and does not force you to use any of them unless you &lt;em&gt;do&lt;/em&gt; need them;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Version control, IDE&lt;/strong&gt;: I'm pretty old-school, and I don't think my answer could really help you;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Wireframing, UML&lt;/strong&gt;: old school in this too, but really: whiteboards win. They're flexible, extensible, and support any convention you might see fit;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Database administration&lt;/strong&gt;: phpmyadmin;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Development server OS&lt;/strong&gt;: I might be banal, but: Ubuntu. Install a LAMP server in seconds; don't panic about adding new libraries (the dreaded imagick: one command, done); if you like PHP you'll probably end up working on linux server in production so it's better to start practicing. (Disclaimer: Ubuntu is not my favorite distribution).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Misc&lt;/strong&gt;: grep can be incredibly useful when debugging other poeople's code (wanna know how many controllers use a given model? Done!).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;edit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I forgot the most important thing: specs. Write &lt;em&gt;real&lt;/em&gt; specs for your project before touching any code. Have all the user interaction diagrams in mind. It will save you centuries.&lt;/p&gt;&#xA;" OwnerUserId="11146" LastActivityDate="2010-12-21T13:20:02.793" />
  <row Id="28639" PostTypeId="2" ParentId="28582" CreationDate="2010-12-21T13:22:27.797" Score="2" ViewCount="" Body="&lt;p&gt;Although they aren't official guidelines on any team I've ever been on, I feel that exceptions should only be used for truly exceptional conditions, or when you absolutely (for some reason) have to throw up your hands and let your caller (or bubble up from your current point, potentially all the way to the user) know that there's absolutely no way that a particular component can function under the current conditions and it's not possible to recover without some kind of outside (other module or user) intervention.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-12-21T13:22:27.797" />
  <row Id="28640" PostTypeId="2" ParentId="28551" CreationDate="2010-12-21T13:26:17.840" Score="1" ViewCount="" Body="&lt;p&gt;Different people have different learning styles, so you have to choose the method that works best for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first thing I do (after building the project) is read the entire code base through at least once. That gives me a general idea of where everything is. Then I choose a section to examine in more detail. Data structures would be a good place to start. Once I have a general idea of what's going on, I do the same with another portion of the code that interacts with the first. After enough iterations, I have a good sense of how the code works.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-21T13:26:17.840" />
  <row Id="28641" PostTypeId="2" ParentId="28551" CreationDate="2010-12-21T13:26:45.030" Score="1" ViewCount="" Body="&lt;p&gt;Use a white board to write out and diagram interactions between classes or methods. This can help you to see the flow of the program. Once you have the 100ft view, then start digging, tracing and debugging to find the nuances of the system.&lt;/p&gt;&#xA;" OwnerUserId="9274" LastActivityDate="2010-12-21T13:26:45.030" />
  <row Id="28642" PostTypeId="1" AcceptedAnswerId="28649" CreationDate="2010-12-21T13:28:59.093" Score="24" ViewCount="3136" Body="&lt;p&gt;I was recently in a discussion about the absolute statement &quot;It costs more in programming time to optimise software than it costs to throw hardware at a problem&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The general thought (of which I agree with) is that as an absolute statement this is wrong. There are too many variables to ever generalise in such a way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What other statements do you hear about software/programming that simply do not work as an absolute and why?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2673" LastEditorUserId="2673" LastEditorDisplayName="" LastEditDate="2010-12-22T21:57:24.583" LastActivityDate="2011-01-07T10:50:31.623" CommunityOwnedDate="2011-01-07T06:47:37.693" ClosedDate="2011-01-07T13:25:48.960" Title="Absolute statements in IT that are wrong" Tags="&lt;development-process&gt;&lt;programming-practices&gt;&lt;design&gt;&lt;quotes&gt;" AnswerCount="24" CommentCount="8" FavoriteCount="8" />
  <row Id="28643" PostTypeId="2" ParentId="28603" CreationDate="2010-12-21T13:29:45.270" Score="10" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Why are regular expressions so morbidly attractive?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Because on the subconscious level they feel like an entire smart program who can accomplish a lot on its own accord while being encompassing and self-adjusting (think patterns).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is why people immediately believe regular expressions will solve any of their text-based task, somehow not thinking it might be overkill and not realizing it might me underkill (parsing languages with it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A tiny thing containing magic power. You can't say no, can you?&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-21T13:29:45.270" CommentCount="1" />
  <row Id="28644" PostTypeId="2" ParentId="28642" CreationDate="2010-12-21T13:30:13.163" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It costs more in programming time to optimise software than it costs to throw hardware at a problem&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is adding an extra $1000 server for static content cheaper than 100 man hours to redesign an entire web app? Probably. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is 50 man hours optimising a poor processing algorithm cheaper than replacing a half million dollar core server, including full regression testing, down time, etc? Certainly. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without actually analysing the unique situation you are attempting to apply it to, there is no way of knowing.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How many man hours would it take to improve the software?&lt;/li&gt;&#xA;&lt;li&gt;How well does the existing software scale with additional hardware?&lt;/li&gt;&#xA;&lt;li&gt;What other costs are associated with new/additional hardware?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Downtime?&lt;/li&gt;&#xA;&lt;li&gt;Additional energy costs? (Including additional cooling)&lt;/li&gt;&#xA;&lt;li&gt;Additional software licenses (more servers/more cores)?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2673" LastEditorUserId="2673" LastEditorDisplayName="" LastEditDate="2010-12-21T23:04:24.800" LastActivityDate="2010-12-21T23:04:24.800" CommunityOwnedDate="2011-01-07T06:47:37.693" CommentCount="1" />
  <row Id="28645" PostTypeId="2" ParentId="28642" CreationDate="2010-12-21T13:32:02.693" Score="30" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Free software is cheaper&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You save on licenses, yes. But you're not taking into account additional wage expenses on extra man-months to make things tick. At the end of the day the TCO may be way higher.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-21T13:32:02.693" CommunityOwnedDate="2011-01-07T06:47:37.693" CommentCount="6" />
  <row Id="28646" PostTypeId="2" ParentId="28632" CreationDate="2010-12-21T13:32:43.257" Score="4" ViewCount="" Body="&lt;p&gt;An example of an Assertion Framework would be &lt;a href=&quot;http://code.google.com/p/hamcrest/&quot; rel=&quot;nofollow&quot;&gt;Hamcrest&lt;/a&gt; which was integrated into JUnit 4.  Hamcrest does not run tests, it merely provides an expressive way to write assertions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Old JUnit style equality assertion:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;assertEquals(constant, underTest);&#xA;// or for doubles&#xA;assertEquals(3.5, underTest, .001); // within 1/1000th&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Hamcrest style equality assertions:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;assertThat(underTest, Is.EqualTo(constant));&#xA;// or for doubles&#xA;assertThat(underTest, Is.EqualTo(3.5).Within(.001));&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Essentially, an assertion framework allows you to perform your assertions in an easily extensible manner.  Because the assertion framework focuses on assertions alone, it can do the job much better than a tool that has to collect and run tests as well.  NUnit has also adopted the Hamcrest approach to assertions.  You would not use Hamcrest to run your tests, merely to write the assertions.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-21T13:32:43.257" />
  <row Id="28647" PostTypeId="2" ParentId="28642" CreationDate="2010-12-21T13:34:05.970" Score="23" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&quot;premature optimization is the root of all evil&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although this one does work, it is often taken out of context (I could swear many people convenently ignore the 'premature' bit). Some people seem to read this as &quot;any optimisation is the root of all evil&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wish those people would read more of the text around that small quote:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;There is no doubt that the grail of efficiency&#xA;  leads to abuse. Programmers waste&#xA;  enormous amounts of time thinking about,&#xA;  or worrying about, the speed of noncritical&#xA;  parts of their programs, and these attempts&#xA;  at efficiency actually have a strong negative&#xA;  impact when debugging and maintenance are&#xA;  considered. We should forget about small&#xA;  efficiencies, say about 97% of the time: premature&#xA;  optimization is the root of all evil.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Yet we should not pass up our opportunities&#xA;  in that critical 3 %. A good programmer&#xA;  will not be lulled into complacency by such&#xA;  reasoning, he will be wise to look carefully&#xA;  at the critical code; but only after that code&#xA;  has been identified. It is often a mistake to&#xA;  make a priori judgments about what parts&#xA;  of a program are really critical, since the&#xA;  universal experience of programmers who&#xA;  have been using measurement tools has been&#xA;  that their intuitive guesses fail&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;~ &lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103.6084&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;Donald Knuth&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2673" LastEditorUserId="2673" LastEditorDisplayName="" LastEditDate="2010-12-21T23:04:57.110" LastActivityDate="2010-12-21T23:04:57.110" CommunityOwnedDate="2011-01-07T06:47:37.693" CommentCount="2" />
  <row Id="28648" PostTypeId="2" ParentId="28642" CreationDate="2010-12-21T13:34:44.067" Score="20" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;TDD is required and sufficient to produce a high quality product&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both are... let's put it mildly, out of touch with the reality.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-21T13:34:44.067" CommunityOwnedDate="2011-01-07T06:47:37.693" CommentCount="1" />
  <row Id="28649" PostTypeId="2" ParentId="28642" CreationDate="2010-12-21T13:37:28.403" Score="48" ViewCount="" Body="&lt;p&gt;A bit about usability:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;People will read our texts and documentation&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No, they won't. They'll click everything in circles slowly getting mad because it doesn't work.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-21T13:37:28.403" CommunityOwnedDate="2011-01-07T06:47:37.693" CommentCount="5" />
  <row Id="28650" PostTypeId="2" ParentId="28642" CreationDate="2010-12-21T13:41:26.793" Score="47" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Programmers are interchangeable&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only if you're using them as type monkeys, at 5-10% of their capacity. Then yes, they're replaceable.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-21T13:41:26.793" CommunityOwnedDate="2011-01-07T06:47:37.693" CommentCount="3" />
  <row Id="28651" PostTypeId="1" AcceptedAnswerId="28712" CreationDate="2010-12-21T13:45:21.693" Score="12" ViewCount="479" Body="&lt;p&gt;I decided to learn programming, been reading SO for few days, and I think I will start with C++, as I read some articles, I am aware of loops, arrays, program logic and objects a little and I need someone to look me over and help me with small questions I get when doing my first projects. So here is the question - where do I find such guy? I don't got any friends who program and all... I also wanted to find out what list of programs should I try for starters - guess a number, hangman and so on.&lt;/p&gt;&#xA;" OwnerUserId="11193" LastActivityDate="2010-12-21T19:52:08.480" Title="How to find programming mentor?" Tags="&lt;learning&gt;&lt;c++&gt;&lt;teaching&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="6" />
  <row Id="28652" PostTypeId="2" ParentId="28651" CreationDate="2010-12-21T13:49:13.187" Score="2" ViewCount="" Body="&lt;p&gt;Hi there, i think that forums would be the best way to find some people with expertiece on the matter. I believe you should start there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Checkout some c++ sites on google or maybe our dear friend stackoverflow, where there are lot of c++ ninjas ready to answer your questions!&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-21T13:49:13.187" />
  <row Id="28653" PostTypeId="2" ParentId="24498" CreationDate="2010-12-21T13:50:00.550" Score="0" ViewCount="" Body="&lt;p&gt;My path was:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Really imperative (Locomotive Basic, started at 7 - engineer uncle) -&gt; Procedural/OO monsters (for the way I learnt it, I mean: python, perl, php, js) -&gt; OO (c++, php) -&gt; functional (Scheme).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I could go back in time, I would force myself to learn Lisp first. &lt;em&gt;Structure and Interpretation of Computer Programs&lt;/em&gt; should be the first programming book for everyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I think about how arrogant I was before approaching it, despising people who relied on huge OO classes and copy-pasting here and there while &lt;em&gt;I&lt;/em&gt; really understood how code worked having learned some lower level languages, I feel Fremdschämen for the me that was.&lt;/p&gt;&#xA;" OwnerUserId="11146" LastEditorUserId="11146" LastEditorDisplayName="" LastEditDate="2010-12-21T14:22:04.933" LastActivityDate="2010-12-21T14:22:04.933" />
  <row Id="28654" PostTypeId="1" CreationDate="2010-12-21T13:51:14.340" Score="3" ViewCount="113" Body="&lt;p&gt;Could someone provide an overview of E-Commerce solutions for web developers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What kinds of sites are there?  How do their API's work?  Can a web developer create tools to manage products and pricing of a clients store without needing to have access to their bank information or login credentials?&lt;/p&gt;&#xA;" OwnerUserId="5349" LastActivityDate="2010-12-22T08:35:20.737" Title="E-Commerce Solutions for Web Developers" Tags="&lt;web-development&gt;&lt;web-applications&gt;&lt;e-commerce&gt;" AnswerCount="4" />
  <row Id="28655" PostTypeId="2" ParentId="28642" CreationDate="2010-12-21T13:52:03.030" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;We can reliably create a successful product by investing some money and throwing some workforce at it&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not really, if by a mere chance. You need a vision and a genuine desire to make things somehow better and your future users happier. Without that, the outcome is random.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-21T13:52:03.030" CommunityOwnedDate="2011-01-07T06:47:37.693" />
  <row Id="28656" PostTypeId="2" ParentId="28651" CreationDate="2010-12-21T13:56:45.273" Score="2" ViewCount="" Body="&lt;p&gt;You might check out your local Linux User Group (&lt;a href=&quot;http://www.linux.org/groups/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; you'll find a list), usually most of the participants are programmers - or at least perl hackers. Plus, if you tell them you're there to find a programming mentor, they'll love you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A post on craigslist might be worth a try, but I wouldn't bet on that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you're based in Germany, there is a couple of places I can suggest in particular.&lt;/p&gt;&#xA;" OwnerUserId="11146" LastActivityDate="2010-12-21T13:56:45.273" CommentCount="2" />
  <row Id="28657" PostTypeId="2" ParentId="27564" CreationDate="2010-12-21T14:02:05.750" Score="-2" ViewCount="" Body="&lt;p&gt;From Javascript:&#xA;$var = $something_empty OR $something_else;&lt;/p&gt;&#xA;" OwnerUserId="11194" LastActivityDate="2010-12-21T14:02:05.750" CommunityOwnedDate="2010-12-21T14:02:05.750" CommentCount="1" />
  <row Id="28658" PostTypeId="2" ParentId="28651" CreationDate="2010-12-21T14:02:41.880" Score="1" ViewCount="" Body="&lt;p&gt;Learning to program is an ambitious and (I think everyone on &lt;em&gt;this&lt;/em&gt; site will agree) noble cause.  However, it is a difficult one to start from scratch and learn, even with a mentor.  I think that you will find that taking at least some introductory classes to give you a base will be the best way to go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A mentor is a great idea, and I wouldn't be here 15+ years later as a coder without the guy who put up with my questions at my first &quot;real&quot; job, but in reality, one single person won't be able to give you the time and guidance you will need to become a successful programmer.  He or she will probably have a full time job (or course load) themselves.  That's not to say you shouldn't find a mentor (or mentors), just that you'll need something else as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sites like this, and online tutorials, and books, and everything else are pieces of the puzzle.  Education makes up the border pieces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not meant to discourage you; on the contrary, I think that setting realistic expectations will give you a better chance at success.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2010-12-21T14:02:41.880" />
  <row Id="28659" PostTypeId="2" ParentId="28651" CreationDate="2010-12-21T14:03:32.007" Score="5" ViewCount="" Body="&lt;p&gt;Join an open source project. You don't necessarily have to program for them either. Most projects would love to have someone help with documentation. You can look at the code and ask questions. When you fell comfortable your can start to write code for them.&lt;/p&gt;&#xA;" OwnerUserId="11043" LastActivityDate="2010-12-21T14:03:32.007" CommentCount="5" />
  <row Id="28660" PostTypeId="2" ParentId="28603" CreationDate="2010-12-21T14:04:05.267" Score="2" ViewCount="" Body="&lt;p&gt;Because you can see the whole thing at once. By being able to see the whole thing, it can be easier to work with, and that's always nice. It's sort of like the reason that many C++ programmers still use printf-type statements: It's not typesafe (though gcc at least can check types on printf statements), and it's not pretty, but boy is it compact and usable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's a simple enough regex, then they often ARE the best way to do things - their compact form and many capabilities make them perfect for certain tasks. The problem comes when you make the regex so complicated that you can't read it anymore, or when you're using a complex regex to do something that could be more quickly done via simple string operations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regex, like any other powerful tool, must be use in proper moderation - not too much, not too little. And unless performance is a big concern, a single regex may at times be quicker to write and easier to debug than a series of string operations.&lt;/p&gt;&#xA;" OwnerUserId="6294" LastActivityDate="2010-12-21T14:04:05.267" />
  <row Id="28661" PostTypeId="2" ParentId="28461" CreationDate="2010-12-21T14:06:55.277" Score="0" ViewCount="" Body="&lt;p&gt;The so called right brain / left brain is a spectrum not an absolute. Every person has a range of abilities. Today &quot;programming&quot; covers a range of activities find what area interests you and go with it.&lt;/p&gt;&#xA;" OwnerUserId="11043" LastActivityDate="2010-12-21T14:06:55.277" />
  <row Id="28662" PostTypeId="2" ParentId="28642" CreationDate="2010-12-21T14:12:44.287" Score="25" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It's going to take 5 days to do that.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It never does. &lt;/p&gt;&#xA;" OwnerUserId="7380" LastActivityDate="2010-12-21T14:12:44.287" CommunityOwnedDate="2011-01-07T06:47:37.693" CommentCount="6" />
  <row Id="28663" PostTypeId="2" ParentId="28613" CreationDate="2010-12-21T14:20:00.427" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;The question is only if an above average developer normally earns more than an average manager or not?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In my experience, above average developers earn more than average project managers.  Your mileage may vary.  I have definitely seen organizations where managers are managing technical people who make more than them.  This can vary widely, of course, and see Jon's counter example above.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-21T14:20:00.427" CommentCount="1" />
  <row Id="28664" PostTypeId="2" ParentId="28642" CreationDate="2010-12-21T14:23:50.130" Score="1" ViewCount="" Body="&lt;p&gt;It is true that one should be wary about absolutes but the statement that you quote is not a absolute statement per se but rather rule of thumb which is arguably true for many but not all cases (such as the example given by &lt;a href=&quot;http://programmers.stackexchange.com/questions/28642/absolute-statements-in-it/28644#28644&quot;&gt;Dan&lt;/a&gt;). Truth be told I can't recall any &lt;em&gt;objectionable&lt;/em&gt; statement which is considered as absolute by the programmers&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-21T14:23:50.130" CommunityOwnedDate="2011-01-07T06:47:37.693" />
  <row Id="28665" PostTypeId="2" ParentId="28642" CreationDate="2010-12-21T14:30:08.050" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Programmers are pure overhead against the company's bottom line.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe this was true back when people could substitute a general ledger notebook for a database, but in this day and age, an efficient and competent programming staff can save a company great piles of money.  Piles of money saved = piles of money earned.&lt;/p&gt;&#xA;" OwnerUserId="3266" LastActivityDate="2010-12-21T14:30:08.050" CommunityOwnedDate="2011-01-07T06:47:37.693" />
  <row Id="28666" PostTypeId="2" ParentId="24498" CreationDate="2010-12-21T14:31:31.797" Score="0" ViewCount="" Body="&lt;p&gt;I'll share mine since I think it is somewhat different. My first software project out of EE school was to implement a teletype based command user interface for a Telex switch, in assembly z80 with a home grown real time scheduler. Needless to say it was an eye opening experience. Later C then C++ then C++ with SQL (Oracle), VB5, VB6, C# and that's where I am at for now. Oddly enough, started really hard, and now well.. not so much I have to say.&lt;/p&gt;&#xA;" OwnerUserId="7380" LastActivityDate="2010-12-21T14:31:31.797" />
  <row Id="28667" PostTypeId="1" AcceptedAnswerId="28679" CreationDate="2010-12-21T14:32:09.333" Score="36" ViewCount="2558" Body="&lt;p&gt;So, there are a bunch of questions appearing asking is X evil, is Y evil.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My view is that there are no language constructs, algorithms or whatever which are evil, just ones which are badly used.  Hell, if you look hard enough there are even &lt;a href=&quot;http://stackoverflow.com/questions/245742/examples-of-good-gotos-in-c-or-c&quot;&gt;valid uses of goto&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So does absolute evil, that is something which is utterly incompatible with best practice in all instances, exist in programming?  And if so what is it?  Or is it just bad programmers not knowing when something is appropriate?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: To be clear, I'm not talking about things programmers do (such as not checking return codes or not using version control - they're choices made by bad programmers), I mean tools, languages, statements, whatever which are just bad...&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-21T14:38:39.620" LastActivityDate="2010-12-23T10:38:55.147" CommunityOwnedDate="2010-12-21T23:21:19.143" ClosedDate="2010-12-28T23:30:42.593" Title="Is anything in programming truly evil?" Tags="&lt;best-practices&gt;&lt;evil&gt;" AnswerCount="41" CommentCount="21" FavoriteCount="7" />
  <row Id="28668" PostTypeId="2" ParentId="28507" CreationDate="2010-12-21T14:32:56.550" Score="4" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Invent a time machine. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Travel&#xA;back to 1999 and the dotcom boom&#xA;when developers were willing to&#xA;accept shares of stock in lieu of&#xA;pay.  (Ask them how that worked out,&#xA;by the way).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Get a fake ID so&#xA;that your employees will think they&#xA;are working for someone old enough&#xA;to own a company with shares of stock.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="10106" LastEditorUserId="10106" LastEditorDisplayName="" LastEditDate="2010-12-21T14:59:23.200" LastActivityDate="2010-12-21T14:59:23.200" CommentCount="3" />
  <row Id="28670" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T14:34:25.160" Score="1" ViewCount="" Body="&lt;p&gt;I'm tempted to say continuations, but I think the correct answer is that there is no objective, absolute evil in programming. On the other hand, even the best tools can be abused.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-21T14:34:25.160" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="2" />
  <row Id="28671" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T14:37:19.573" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;So does absolute evil, that is something which is utterly incompatible with best practice in all instances, exist in programming?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Of course not.  It's like asking if anything in my toolbox is evil.  My hammer is a great &quot;good&quot; to me, unless my four year old gets her hands on it.&lt;/p&gt;&#xA;" OwnerUserId="3266" LastActivityDate="2010-12-21T14:37:19.573" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="1" />
  <row Id="28672" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T14:37:57.703" Score="43" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Guns dont kill people, people kill&#xA;  people.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In the same way, dev-tools are not evil, the things programmers do with them could be.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-21T14:37:57.703" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="9" />
  <row Id="28673" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T14:41:27.043" Score="59" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;There is no true evil in programming.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;lt; rant &gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason so many people think that there are evil things is that it is pounded into their heads when they first take their programming classes. &quot;Don't use goto! Always normalize your databases! Never, ever use multiple inheritance!&quot; These are hanmmered in because these &quot;evil&quot; practices are so easily abused, not because they are inherently bad. There are so few uses of them that you can get away with saying &quot;never&quot; at first. What is truly evil is saying, &quot;There is no reason to consider anything that is not a 'best practice'&quot;, because there is &lt;em&gt;always&lt;/em&gt; a place where that very way is perfect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;lt; /rant &gt;&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-21T14:41:27.043" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="7" />
  <row Id="28674" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T14:43:03.407" Score="3" ViewCount="" Body="&lt;p&gt;No tool is inherently evil. Its existence may be utterly foolish for all but a single use case but that does not make it evil. It puts the onus of deciding the proper use on the programmer.&lt;/p&gt;&#xA;" OwnerUserId="9274" LastActivityDate="2010-12-21T14:43:03.407" CommunityOwnedDate="2010-12-21T23:21:19.143" />
  <row Id="28675" PostTypeId="2" ParentId="28314" CreationDate="2010-12-21T14:46:33.127" Score="0" ViewCount="" Body="&lt;p&gt;Absolutely not evil. In fact, it's &lt;a href=&quot;http://en.wikipedia.org/wiki/Pure_function&quot; rel=&quot;nofollow&quot;&gt;pure&lt;/a&gt;, and if-then-else isn't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In functional languages like Haskell, F#, ML etc., it's the if-then-else statements that are considered evil.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason for this is that any &quot;action&quot; like an imperative if-then-else statement requires you to separate a variable declaration from its definition, and introduces &lt;a href=&quot;http://en.wikipedia.org/wiki/State_%28computer_science%29&quot; rel=&quot;nofollow&quot;&gt;state&lt;/a&gt; to your function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, in the following code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;const var x = n % 3 == 1&#xA;    ? Parity.Even&#xA;    : Parity.Odd;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;vs.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Parity x;&#xA;if (n % 3 == 1)&#xA;    x = Parity.Even;&#xA;else&#xA;    x = Parity.Odd;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The first one has two advantages aside from being shorter:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;x&lt;/code&gt; is a constant, and so offers much fewer chance of introducing bugs, and can potentially be optimized in ways the second could never be.&lt;/li&gt;&#xA;&lt;li&gt;The type is made clear by the expression, so the compiler can effortlessly infer that &lt;code&gt;x&lt;/code&gt; needs to be of type &lt;code&gt;Parity&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Confusingly, in functional languages, the ternary operator is often called if-then-else. In Haskell, you might say &lt;code&gt;x = if n mod 3 == 1 then Odd else Even&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6385" LastEditorUserId="6385" LastEditorDisplayName="" LastEditDate="2010-12-21T14:56:53.527" LastActivityDate="2010-12-21T14:56:53.527" CommunityOwnedDate="2011-01-25T19:46:08.053" CommentCount="1" />
  <row Id="28676" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T14:47:19.413" Score="14" ViewCount="" Body="&lt;p&gt;Perhaps I can flip the question around, and ask if there is anything in programming that is &lt;em&gt;absolutely&lt;/em&gt; and &lt;em&gt;perfectly&lt;/em&gt; good?  If you can't think of one thing (I know I can't), then the concept of evil is also just as muddy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are common behaviors that lead to mistakes, misunderstandings, and other general confusion--but to say that language feature X is inherently evil is to admit that you really don't understand the purpose of feature X.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are common behaviors that can save a lot of heartache and avoid some misunderstandings--but to say that language feature Y is inherently good is to admit that you don't fully understand all the implications of using feature Y.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are a people of finite understanding, and strong opinions--a dangerous combination.  Hyperbole is just a way of expressing our opinions, exagerating facts until they become fiction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nevertheless, if I can avoid behaviors that lead to problems and pursue behaviors that avoid them, I just might be a bit more productive.  At the end of the day that's what it's all about.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-21T14:47:19.413" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="5" />
  <row Id="28677" PostTypeId="2" ParentId="27564" CreationDate="2010-12-21T14:49:49.870" Score="-2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Dot-notation for OO.&lt;/strong&gt;  I can't stand &lt;code&gt;-&amp;gt;&lt;/code&gt; syntax.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-12-21T14:49:49.870" CommunityOwnedDate="2010-12-21T14:49:49.870" CommentCount="2" />
  <row Id="28678" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T14:51:18.013" Score="4" ViewCount="" Body="&lt;p&gt;Today's evil was yesterdays perfect.  It's evolution.&lt;/p&gt;&#xA;" OwnerUserId="6398" LastActivityDate="2010-12-21T14:51:18.013" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="1" />
  <row Id="28679" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T14:53:29.590" Score="31" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Magic numbers.&lt;/li&gt;&#xA;&lt;li&gt;Implicitness is inherently evil, and here's the reason why:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8865" LastActivityDate="2010-12-21T14:53:29.590" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="8" />
  <row Id="28680" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T14:53:38.477" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Everything that happens to work just by accident&lt;/strong&gt; is inherently evil.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's consider the following C program, which happens to actually work on my machine, using default compiler options:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;&#xA;int main(int argc, char *argv[]) {&#xA;   char string[10];&#xA;   int y;&#xA;   for (y=0; y&amp;lt;10; string[12]++) {&#xA;      printf(&quot;%d\n&quot;, y);   &#xA;   }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Nothing, really nothing could ever excuse the way this program increments the loop counter. It's just a undefined effect that happens to do the right thing on my machine, my compiler, my default options.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="6617" LastEditorDisplayName="" LastEditDate="2010-12-21T18:59:13.227" LastActivityDate="2010-12-21T18:59:13.227" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="6" />
  <row Id="28681" PostTypeId="2" ParentId="28525" CreationDate="2010-12-21T14:56:21.850" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I don't hate Goto&lt;/strong&gt;, it's not evil at all when used properly (even If I never happen to use it anymore as I'm in OOP environments usually), but &lt;strong&gt;it gives too much freedom to undisciplined programmer&lt;/strong&gt;: when pressed by deadlines or not really caring, &lt;em&gt;it takes descipline not to cut corners&lt;/em&gt; when not forced to (and &lt;em&gt;goto&lt;/em&gt; allows to cut so many corners), which quickly result in unmaintainnable code when this becomes a habit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, they are many other ways to turn innocent code into pure evil, Goto just happens to be in the headlights for historic reasons.&lt;/p&gt;&#xA;" OwnerUserId="9094" LastEditorUserId="9094" LastEditorDisplayName="" LastEditDate="2010-12-21T15:07:43.587" LastActivityDate="2010-12-21T15:07:43.587" CommunityOwnedDate="2011-01-09T16:41:54.697" CommentCount="1" />
  <row Id="28682" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T14:59:36.653" Score="4" ViewCount="" Body="&lt;p&gt;Not to be too serious, but ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have very myopic views of &quot;evil&quot;. People who kill lots of other people are evil. People who steal from others are evil. Every nation (that I know of) has some evil in their past. Some would like to deny it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there evil in programming? We innocent programmers might like to think &quot;not really&quot;. However, once I had a conversation with the inventor of a widely-used hierarchical database, on this very subject. Want to know who was one of the best customers? The secret police of Communist Poland.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there evil in the world now? You bet. And are they using programmers? You bet.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-12-21T14:59:36.653" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="12" />
  <row Id="28683" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T14:59:45.353" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is anything in programming truly evil?&#xA;  I mean tools, languages, statements, whatever&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Nothing on that list is evil. Here is why.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Humans were created as beings with a free will. They may use their powers to go into the dark side or embrace the light side. This choice defines what comes out of their hands.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, those tools and frameworks were created by benevolent people who were genuinely trying to make things somehow better with a good will. Consequently, their creations (either successful or not is irrelevant) do not bear the imprint of evil. At the least they are neutral, but not malicious.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then those tools come into the hands of other individuals. And whatever they do with them depends on those people. Even a debugger could be turned into an evil instrument in the hands of a hacker trying to remove the serial number check in some software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it does not redefine in any way the characteristic of the tool. They are all good. Some are more useful, some less. Some dangerous, some less. But still, they are all good and quite useful in certain scenarios.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if a programmer by a mistake misuses a tool and causes damage, the tool does not become evil. It's just a programmer mistake, lack of knowledge, ignorance, whatever. But without any evil intent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line is, all tools are good. We must love them all.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-21T14:59:45.353" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="1" />
  <row Id="28684" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T15:01:08.703" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Null is the root of Evil!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/22912/null-references-the-billion-dollar-mistake-closed&quot;&gt;Null References, The Billion Dollar Mistake&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;The Billion Dollar Mistake:&lt;/strong&gt; I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object oriented language (ALGOL W). My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn't resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years. In recent years, a number of program analysers like PREfix and PREfast in Microsoft have been used to check references, and give warnings if there is a risk they may be non-null. More recent programming languages like Spec# have introduced declarations for non-null references. This is the solution, which I rejected in 1965. C.A.R. Hoare, 2009&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-21T15:01:08.703" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="2" />
  <row Id="28685" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T15:03:19.160" Score="1" ViewCount="" Body="&lt;p&gt;There's no objective absolute evil.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with things like &lt;code&gt;GOTO&lt;/code&gt; is that it's awfully hard to USE it in a way that's not nasty. Enough so that it's hard for me sitting right here now to think of an example of GOTO that isn't code smell. But I'm willing to accept that there might be such uses, and that the problem isn't the tool itself but rather the likelihood of its abuse.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-21T15:03:19.160" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="1" />
  <row Id="28686" PostTypeId="2" ParentId="28579" CreationDate="2010-12-21T15:03:24.660" Score="4" ViewCount="" Body="&lt;p&gt;Find something &lt;strong&gt;bigger&lt;/strong&gt; than yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is usually not all that helpful to compare yourself to other people for that task.  Sure, there are programmers who are smarter than you (Turing Award winners, for example).  There are people who are more benevolent than you (Mother Teresa).  There are people who are better business people than you, better athletes than you, better musicians than you, and better artists than you.  Comparing yourself to them, though, is a recipe for ending up saying &lt;code&gt;I should be as good as that person.&lt;/code&gt;  That's not going to make you humble, it's going to make you want to cover up perceived inadequacies in some way.  One of those ways might be comparing yourself to programmers who are worse than you on your team, people who seem meaner than you, or someone who just can't catch a break.  That in turn will make you arrogant all over again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead compare yourself to something along the lines of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The higher power(s) of your religion, if you hold to one&lt;/li&gt;&#xA;&lt;li&gt;The universe, which is amazingly huge&lt;/li&gt;&#xA;&lt;li&gt;The best conception you can come up with of a good which approaches or is infinite and eternal&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The philosophical definition of true humility is honestly assessing your skills and then knowing that something or Someone out there is much greater than anything your skills could ever reach.&lt;/p&gt;&#xA;" OwnerUserId="7506" LastActivityDate="2010-12-21T15:03:24.660" CommentCount="1" />
  <row Id="28687" PostTypeId="2" ParentId="28642" CreationDate="2010-12-21T15:03:59.737" Score="20" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The only difference between programming languages is syntax.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This statement refers, of course, to Turing-equivalence and is generally used to refer to a language with features lacking in the preferred language of the person making the statement. It would be more accurate to say that syntax is a difference that results in more differences when it comes to actual coding and maintenance.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-21T15:03:59.737" CommunityOwnedDate="2011-01-07T06:47:37.693" CommentCount="2" />
  <row Id="28688" PostTypeId="2" ParentId="28314" CreationDate="2010-12-21T15:04:01.030" Score="0" ViewCount="" Body="&lt;p&gt;Can I say it? I can't manage to find this particular application of the ternary operation &lt;em&gt;evil&lt;/em&gt;: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;the operation it performs is pretty trivial, and once you went trough it once it's hardly possible some bugs will come out; &lt;/li&gt;&#xA;&lt;li&gt;what it does is clearly stated in the function name;&lt;/li&gt;&#xA;&lt;li&gt;taking &gt;1 line for something so obvious and that so clearly wouldn't be improved in the future (unless a magic median algorithm has lived undetected until now).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Please have mercy, my reputation is pretty pitiful already.&lt;/p&gt;&#xA;" OwnerUserId="11146" LastActivityDate="2010-12-21T15:04:01.030" CommunityOwnedDate="2011-01-25T19:46:08.053" />
  <row Id="28689" PostTypeId="2" ParentId="28579" CreationDate="2010-12-21T15:08:14.007" Score="0" ViewCount="" Body="&lt;p&gt;I agree with justkit's solution, &lt;em&gt;Find something &lt;strong&gt;bigger&lt;/strong&gt; than yourself&lt;/em&gt;, but not on the implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My suggestion is: try to debug Perl.&lt;/p&gt;&#xA;" OwnerUserId="11146" LastActivityDate="2010-12-21T15:08:14.007" CommentCount="1" />
  <row Id="28690" PostTypeId="2" ParentId="28507" CreationDate="2010-12-21T15:11:36.487" Score="1" ViewCount="" Body="&lt;p&gt;You're only 15. You should learn more about the world first. When you turn 16, go work in retail involving technology and develop a sense of what technology users love and hate. This will be invaluable for a startup. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And for crying out loud, enjoy your adolescence and ask out as many girls as possible.&lt;/p&gt;&#xA;" OwnerUserId="8865" LastActivityDate="2010-12-21T15:11:36.487" />
  <row Id="28691" PostTypeId="2" ParentId="28507" CreationDate="2010-12-21T15:15:00.523" Score="14" ViewCount="" Body="&lt;p&gt;The real answer is: in the mirror. Figure it out yourself - even if the business doesn't pan out, you'll have learned how to write software for your own business, and you'll be able to use that skill for the rest of your life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a programmer and software entrepreneur, and you're about the age I was when I started programming.&lt;/p&gt;&#xA;" OwnerUserId="11204" LastActivityDate="2010-12-21T15:15:00.523" CommentCount="3" />
  <row Id="28692" PostTypeId="2" ParentId="28525" CreationDate="2010-12-21T15:22:41.987" Score="8" ViewCount="" Body="&lt;p&gt;Flow control statements should mean something, and an unadorned &lt;code&gt;goto&lt;/code&gt; really doesn't.  Therefore, it's easy to write confusing code with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a large number of flow control concepts that &lt;code&gt;goto&lt;/code&gt; can make up, and modern programming languages generally have all the ones that are useful.  C++, for example, has &lt;code&gt;break&lt;/code&gt; and &lt;code&gt;continue&lt;/code&gt; for finer loop control, &lt;code&gt;switch&lt;/code&gt; for alternatives, and exceptions for error exits.  I haven't used a plain &lt;code&gt;goto&lt;/code&gt; in many years, because I haven't had to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This doesn't mean it should be removed from the language, since there's always going to be some exceptional condition that's best handled with a custom flow control construct.  It is something that should be warned against, as beginning programmers seem to develop bad habits with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd lump it in with blaming unexpected results on hypothetical compiler bugs:  you should proceed on the assumption that neither exist, particularly if you're relatively inexperienced, but there are compiler bugs and there are good uses for &lt;code&gt;goto&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-21T15:22:41.987" CommunityOwnedDate="2011-01-09T16:41:54.697" CommentCount="1" />
  <row Id="28693" PostTypeId="1" AcceptedAnswerId="28710" CreationDate="2010-12-21T15:24:57.770" Score="2" ViewCount="292" Body="&lt;p&gt;&lt;strong&gt;I am a Microsoft fan and .Net enthusiast.&lt;/strong&gt; I want to align my career in the lines of current and future .Net technologies. I have an MCTS in ASP.Net 3.5. The question is about the continuation of certifications and my career growth and maybe a different job!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I want to keep pace with future Microsoft .Net technologies.&lt;/strong&gt; My current job however doesn't allow so.So i bid to do .Net based certifications to stay abreast with latest .Net technologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My questions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What certifications should i follow next? I have MCTS .Net 3.5 WPF(Exam 70-502) and MCTS .Net 3.5 WCF(Exam 70-504) in my mind so that i can go for Silverlight development and seek jobs related to Silverlight development.&lt;/li&gt;&#xA;&lt;li&gt;What other steps i need to take in order to develop professional expertise in technologies such as WPF, WCF and Silverlight when my current employer is reluctant to shift to latest .Net technologies?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I am sure that there are a lot of people of around here who are working with .Net technologies and they have industrial experience. I being a new comer and starter in my career need to take right decision and so i am seeking help from this community in guiding me to the right path.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Expert replies are much appreciated and thanks in advance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best Regards&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Steve.&lt;/p&gt;&#xA;" OwnerUserId="11205" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-12-21T16:29:30.100" LastActivityDate="2011-01-16T21:35:47.273" Title="Role of Microsoft certifications ADO.Net, ASP.Net, WPF, WCF and Career?" Tags="&lt;career&gt;&lt;.net&gt;&lt;certification&gt;&lt;wpf&gt;&lt;wcf&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="28694" PostTypeId="2" ParentId="28579" CreationDate="2010-12-21T15:26:14.477" Score="0" ViewCount="" Body="&lt;p&gt;I am not sure how much of a counterbalance it is to arrogance, but I find in programming I am always having to learn new things. I see myself as more of a perpetual student always asking others questions and trying to overcome my ignorance of various subjects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also as a side note, letting other programmers see your code can be a vary humbling experience. If you listen and take an objective view points instead of being hyper defensive, you will see your errors and flaws, and more importantly learn how to over come them.&lt;/p&gt;&#xA;" OwnerUserId="11043" LastActivityDate="2010-12-21T15:26:14.477" />
  <row Id="28695" PostTypeId="2" ParentId="28579" CreationDate="2010-12-21T15:27:51.227" Score="3" ViewCount="" Body="&lt;p&gt;While this is taken from some great lessons that I took to heart, really:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Lesson 1. Model the Best.&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;If you want to be great at something,&#xA;  learn from the best.  Find the best of&#xA;  the best.  When I studied martial&#xA;  arts, I studied Bill Superfoot&#xA;  Wallace.  He set a bar I never would&#xA;  have imagined possible.  That’s what&#xA;  heroes do.  They inspire and they&#xA;  prove a path.  I learn from everyone&#xA;  around me.  I find their super skill,&#xA;  and they are usually more than happy&#xA;  to share what they know.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Lesson 2. Be Your Best.&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;You can’t always be THE best, but you&#xA;  can always be YOUR best.  You can’t&#xA;  ask yourself for more than that. &#xA;  Because I always modeled from the&#xA;  best, I always felt like I missed the&#xA;  mark.  I had to learn 3 things: 1)&#xA;  When you’re just starting out, you’re&#xA;  the sapling.  The might oak took time.&#xA;  2) Enjoy the journey.  3) Your best is&#xA;  not the same as somebody else’s.  I&#xA;  remember John Wooden saying in an&#xA;  interview once that the key to his&#xA;  peace of mind was knowing that he gave&#xA;  his best.  I think the key to giving&#xA;  your best, is knowing where you have&#xA;  your best to give, and playing to your&#xA;  strengths.  The thing that always&#xA;  keeps me going here is I remember that&#xA;  giving up is easy.  Forgiving yourself&#xA;  is not.  I don’t want to be on the&#xA;  rocking chair thinking, what if I gave&#xA;  just a little more.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Lesson 7. Version Your Perfection.&lt;/strong&gt;&#xA;  When you try to be your best and you&#xA;  model from excellence, it can be tough&#xA;  to set the right bar at a given point&#xA;  in time.  There’s never enough time&#xA;  and you can never be too good. &#xA;  Surprisingly, I didn’t learn one of my&#xA;  most important lessons until I joined&#xA;  Microsoft.  version your perfection. &#xA;  Focus on “good enough for now” and&#xA;  improve with each release.  Getting&#xA;  incrementally better over time is&#xA;  better than never being good enough,&#xA;  or never being ready.  I get from idea&#xA;  to done quickly, and then I improve. &#xA;  Feedback is your friend.  It’s a&#xA;  learning loop.  I’d rather get the&#xA;  learnings and results from 20 dry&#xA;  runs, than one &lt;em&gt;perfect&lt;/em&gt; run, that&#xA;  falls short.  Good enough for today,&#xA;  means I’ll be back in the batters box,&#xA;  swinging better tomorrow.  It’s this&#xA;  very lesson that let me have 10 life&#xA;  lessons for now, while I can refine&#xA;  again later, and this is a key concept&#xA;  behind my &lt;a href=&quot;http://sourcesofinsight.com/2009/06/02/you-20/&quot; rel=&quot;nofollow&quot;&gt;You 2.0 guide.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Source: &lt;a href=&quot;http://sourcesofinsight.com/2009/09/16/my-top-10-lessons-in-life/&quot; rel=&quot;nofollow&quot;&gt;My Top 10 Lessons in Life&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-21T15:27:51.227" CommentCount="2" />
  <row Id="28696" PostTypeId="2" ParentId="28507" CreationDate="2010-12-21T15:28:25.537" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Guys like you might be interested.&lt;/strong&gt; Young kids with lots of time and development enthusiasm. But I suggest you consult some real-life project manager to manage your project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But even: Even serious professional developers may be interested if the project is promising. But since they're more experienced they may get majority of the product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowing my ideas when I was young it was great to do stuff with friends. But only those with clear objectives got finished. Like a research project at school. Because we had to finish it. We decided what to do, teachers decided whether it's good enough and sort of  managed the ongoing effort. But most of the ideas we had were either looking so promising and great to us, but would not have so much market impact as we may've thought.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the main things is also that having a one of a kind, super duper product isn't destined for success. Nowadays other things are more relevant with success than just a great product.&lt;/p&gt;&#xA;" OwnerUserId="1894" LastActivityDate="2010-12-21T15:28:25.537" CommentCount="2" />
  <row Id="28697" PostTypeId="1" AcceptedAnswerId="28717" CreationDate="2010-12-21T15:28:46.493" Score="4" ViewCount="133" Body="&lt;p&gt;I have an application at work, which I started work on about 7 years ago. This was my first engagement in ASP.NET web applications, and coming from a Win32 background I had a hard time adjusting. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All this time, both the project and myself have &quot;matured&quot; and now most parts of it are well defined, properly structured and readable. However, there is a significant piece of it, that is &quot;old junk&quot;. By that I mean old obsolete code, that was not working well, or was not properly structured, which has been replaced, but left in the source files instead of being removed. I must note here, that I was not the sole developer, but did most of the coding throughout. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I want to do, is whenever I have free time at work, to remove the old obsolete and unused code. Are there any techniques/methodologies that I can use/follow in order to do this more efficiently? Any tools perhaps?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT: (clarification based on feedback)&lt;/strong&gt;&#xA;The code I am talking about is not used anywhere, and is not called from anywhere in the project. What I need is way to find out where the code resides, since we are talking about a large codebase. So something in terms of code coverage tools would help. Any suggestions for asp.net projects? (the particular case is in Web Site project form)&lt;/p&gt;&#xA;" OwnerUserId="3018" LastEditorUserId="3018" LastEditorDisplayName="" LastEditDate="2010-12-21T15:55:19.367" LastActivityDate="2010-12-21T16:25:06.547" Title="Code cleanup methods and/or code coverage tools" Tags="&lt;old-software&gt;&lt;cleaning&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="28698" PostTypeId="2" ParentId="28603" CreationDate="2010-12-21T15:29:45.707" Score="6" ViewCount="" Body="&lt;p&gt;Regular expressions are very attractive because they are the best tool for parsing a regular language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They have the following advantages:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;They are &lt;strong&gt;concise&lt;/strong&gt;. It generally takes a lot more code to parse a specific regular language using a specific algorithm that you have come up with than with a regexp.&lt;/li&gt;&#xA;&lt;li&gt;They are &lt;strong&gt;quick&lt;/strong&gt; to use. It generally takes a lot more time to write a parser for a specific regular language using a specific algorithm that you have come up with than with a regexp.&lt;/li&gt;&#xA;&lt;li&gt;They are &lt;strong&gt;easy&lt;/strong&gt;. Once you learn the set of special characters and their meanings, it is easy to compose a regexp (although a little harder to read them). Regexps are languages themselves - a useful trait because our species has evolved to be very good at language.&lt;/li&gt;&#xA;&lt;li&gt;They are &lt;strong&gt;fast&lt;/strong&gt;. Once compiled, they can match a string length &lt;code&gt;N&lt;/code&gt; in O(&lt;code&gt;N&lt;/code&gt;) time. &lt;/li&gt;&#xA;&lt;li&gt;They are &lt;strong&gt;flexible&lt;/strong&gt;. They can match any regular language and a lot of our data is expressed as a regular language.&lt;/li&gt;&#xA;&lt;li&gt;They are &lt;strong&gt;ubiquitous&lt;/strong&gt;. Most programming languages have basic regexp support - either through external libraries or embedded into the language itself. There is also not too much variation between the regexp languages themselves.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This makes them attractive for situations to which they are suited, but people may use them in contexts where they are not the best tool, because they:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Don't understand that what they are matching can't be expressed using a regexp (eg. HTML).&lt;/li&gt;&#xA;&lt;li&gt;Are lazy (in a bad way) - they know a tool and recognise that it isn't the best tool for what they are doing but it will work without problems 95% of the time and takes 95% of the effort of learning a particular parser or writing one from scratch.&lt;/li&gt;&#xA;&lt;li&gt;They are unaware that better tools exist.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5536" LastEditorUserId="5536" LastEditorDisplayName="" LastEditDate="2010-12-21T15:45:55.863" LastActivityDate="2010-12-21T15:45:55.863" CommentCount="2" />
  <row Id="28699" PostTypeId="2" ParentId="28697" CreationDate="2010-12-21T15:30:57.750" Score="3" ViewCount="" Body="&lt;p&gt;I think removing dead code broadly falls under &lt;a href=&quot;http://en.wikipedia.org/wiki/Code_refactoring&quot; rel=&quot;nofollow&quot;&gt;refactoring&lt;/a&gt;'s definition of &quot;process of changing a computer program's source code without modifying its external functional behavior in order to improve some of the nonfunctional attributes of the software&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some well-known &lt;a href=&quot;http://martinfowler.com/books.html#refactoring&quot; rel=&quot;nofollow&quot;&gt;books&lt;/a&gt; about refactoring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe a &lt;a href=&quot;http://en.wikipedia.org/wiki/Code_coverage&quot; rel=&quot;nofollow&quot;&gt;code coverage tool&lt;/a&gt; can be helpful in your special case.&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2010-12-21T15:40:09.487" LastActivityDate="2010-12-21T15:40:09.487" CommentCount="4" />
  <row Id="28700" PostTypeId="2" ParentId="28654" CreationDate="2010-12-21T15:31:10.237" Score="1" ViewCount="" Body="&lt;p&gt;Hi there, i've been digging about this for a while and i found this tools to develop e-commerce solutions, check them out:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://spreecommerce.com/&quot; rel=&quot;nofollow&quot;&gt;Spree&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.prestashop.com/&quot; rel=&quot;nofollow&quot;&gt;PrestaShop&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.instinct.co.nz/e-commerce/&quot; rel=&quot;nofollow&quot;&gt;Wordpress E-Commerce&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Hope this helps!&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-21T15:31:10.237" />
  <row Id="28701" PostTypeId="2" ParentId="28697" CreationDate="2010-12-21T15:31:28.707" Score="5" ViewCount="" Body="&lt;p&gt;Personally, if I think some code need not exist, I comment it out, then run the program to make sure it didn't make anything glitch.  If everything is fine, I delete the commented-out code.&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-12-21T15:31:28.707" CommentCount="1" />
  <row Id="28703" PostTypeId="1" AcceptedAnswerId="30727" CreationDate="2010-12-21T15:32:41.257" Score="1" ViewCount="77" Body="&lt;p&gt;Can you recommend reputable companies that offer help (consulting services, etc) in load testing (ASP.NET) web applications? We have a client looking to load test an ASP.NET application and we don't have any expertise in load testing web applications. The client is located in central Massachusetts. My employer &lt;a href=&quot;http://www.goADNET.com&quot; rel=&quot;nofollow&quot;&gt;http://www.goADNET.com&lt;/a&gt; was looking for an option besides, “I can figure out how to do it”.&lt;/p&gt;&#xA;" OwnerUserId="1763" LastEditorUserId="1763" LastEditorDisplayName="" LastEditDate="2010-12-21T16:31:02.457" LastActivityDate="2010-12-27T19:10:56.107" Title="web application load / stress testing services" Tags="&lt;consulting&gt;&lt;load-testing&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="28704" PostTypeId="2" ParentId="28693" CreationDate="2010-12-21T15:36:25.140" Score="3" ViewCount="" Body="&lt;p&gt;It's only natural as a developer to want to keep up with current technologies. However, that doesn't necessarily have to be done in the context of certification. It may not help you much to be certified in a technology that you're not currently using, and some employers may even see it as a negative. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've already mastered all of the technologies you use on a regular basis at your current position, then it may be worthwhile to look at additional certifications. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-21T15:36:25.140" CommentCount="1" />
  <row Id="28705" PostTypeId="2" ParentId="28693" CreationDate="2010-12-21T15:41:54.033" Score="6" ViewCount="" Body="&lt;p&gt;I've done a lot of hiring for our company and to be honest, certs don't carry a lot of weight for us.  If we see certs on a resume we'll make note of them, but just in passing.  What we're looking for is experience.  It doesn't have to be commercial experience (though that obviously carries more weight).  Could be your own app using the technology, or even better, get involved in an OSS project, or something like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Demonstrated experience is much weightier then book knowledge.&lt;/p&gt;&#xA;" OwnerUserId="6318" LastActivityDate="2010-12-21T15:41:54.033" />
  <row Id="28706" PostTypeId="2" ParentId="28579" CreationDate="2010-12-21T15:45:51.023" Score="9" ViewCount="" Body="&lt;p&gt;Read through some old code you wrote more than 6 months ago. If you've been in programming long enough (and stay at one place long enough), you will have the experience of saying to yourself, &quot;Who wrote this crap...Oh, I did.&quot; &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-21T15:45:51.023" CommentCount="2" />
  <row Id="28707" PostTypeId="2" ParentId="28507" CreationDate="2010-12-21T15:47:19.027" Score="5" ViewCount="" Body="&lt;p&gt;This isn't really on topic, but here goes....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why would anybody work on your project for equity?  Clearly, they'd have to expect that equity to be worth something on the average.  This means they need some reason to expect to get some money, and possibly strike it rich.  (Most good developers can get a comfortable living getting paid in money, so about the only thing a startup could offer is a chance of making millions of dollars in a reasonably short time.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you have to offer as assurance?  It isn't business experience or capitalization, obviously.  Your idea is doubtless worth less than you think it is (ideas aren't valuable without execution), and if you're unwilling to share it except under an NDA you're not recruiting anybody with it.  (NDAs aren't free, by the way, and competent people won't sign one without a good reason.  Nobody wants to sign one to hear a silly idea - and before signing they won't know if it's good - and open themselves up to later lawsuits.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only thing you've got to offer is you.  Look for people you already know who have a good opinion of you.  Your age is a problem for at least two reasons.  First, most 15-year-olds aren't very mature, and nobody wants an immature business partner.  You may well be an exception, but only people who know you will know that.  Second, you probably can't legally sign valid contracts and run a business yet, so you'll have to have a parent or guardian firmly on board.  Another possible one is that you likely don't have the experience to know if this is really a good idea or whether it's salable (and those are two separate questions).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You've been doing some work on it, and that's good.  That shows some commitment, and if it's good work it should show some of the possibilities.  You can continue working on it in your spare time.  Another thing you could do is a little market research:  find out exactly who to sell to, and how likely they are to buy.  Unfortunately for you, educational institutions can be very conservative about their software.  If you can show a working bare-bones system and some market research, you're in a much better position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, remember that startups fail most of the time.  Don't let the project interfere with graduating from high school or anything else vital.  You really don't want to wind up with a failed startup and no high school diploma.  Once you're out of high school, you can probably afford to fail, so if you still think it worthwhile you can concentrate on it more fully.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-21T15:47:19.027" CommentCount="2" />
  <row Id="28708" PostTypeId="2" ParentId="28603" CreationDate="2010-12-21T15:49:05.990" Score="1" ViewCount="" Body="&lt;p&gt;I like regular expressions in general I find them easier to read/understand than the 20 lines of code I would have to replace them with. Short regular expressions are quickly read and understood and they are relatively easy to maintain (if the expression changes you only have one line to change versus looking through the 20 lines of code to make the change). There are times where they are misused but so are many other things. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason you probably see so much abuse of them is because your browsing the PHP section of StackOverFlow as I am sure you are aware there are a lot of umm immature PHP programmers out there.&lt;/p&gt;&#xA;" OwnerUserId="9077" LastActivityDate="2010-12-21T15:49:05.990" />
  <row Id="28709" PostTypeId="2" ParentId="28573" CreationDate="2010-12-21T15:52:59.663" Score="0" ViewCount="" Body="&lt;h2&gt;Am I paid enough?&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Well. When you start asking yourself this question it often means you're not? but knowing you're not paid enough doesn't mean you should be getting more money anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hence a more important question is:&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Should I be paid more based on my experience and skills?&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Now that's a completely different question. This question you can't directly answer yourself.&lt;/p&gt;&#xA;" OwnerUserId="1894" LastActivityDate="2010-12-21T15:52:59.663" />
  <row Id="28710" PostTypeId="2" ParentId="28693" CreationDate="2010-12-21T15:54:50.163" Score="4" ViewCount="" Body="&lt;p&gt;In my opinion, the strongest reason to become certified is that it gives you a built-in goal for helping you learn a set of technologies.  Go for it, if only for that reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Silverlight?  Definitely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As mentioned in a couple of other answers here, and in my experience, it does not really differentiate a good developer from an also-ran.  Experience and other, harder to measure skills are MUCH more important when choosing who to hire.&lt;/p&gt;&#xA;" OwnerUserId="10397" LastActivityDate="2010-12-21T15:54:50.163" />
  <row Id="28711" PostTypeId="2" ParentId="28573" CreationDate="2010-12-21T15:54:58.150" Score="0" ViewCount="" Body="&lt;p&gt;UK market payments?&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;&lt;a href=&quot;http://www.jobstats.co.uk/&quot; rel=&quot;nofollow&quot;&gt;http://www.jobstats.co.uk/&lt;/a&gt;&lt;/h2&gt;&#xA;" OwnerUserId="1894" LastActivityDate="2010-12-21T15:54:58.150" />
  <row Id="28712" PostTypeId="2" ParentId="28651" CreationDate="2010-12-21T15:56:27.773" Score="8" ViewCount="" Body="&lt;p&gt;Joining an open-source project is certainly one way to get started. However, I've been using open-source software for years, and quite frankly, the quality on almost all such projects is generally in the toilet. If you learn your programming and design skills entirely from them, you'll probably pick up some very poor ones along with the good ones, with no way to tell the difference between them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you want to learn programming &lt;em&gt;for?&lt;/em&gt; The answer to that will determine what you should look for, and where. Here are some common answers, and my professional opinion on how to pursue them (keep in mind that it &lt;em&gt;is&lt;/em&gt; just opinion, though IMHO, accurate):&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Just to say that you know how to do it.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Then you don't really need a mentor, and C++ is a poor place to start. I love C++, it's my first choice for general programming, but play with another language instead. I'd suggest Python; it has a much gentler learning curve than C++, and unlike some languages (no names mentioned, I didn't wear my asbestos underwear today) you'll still learn a few useful skills in case you want to get into it further later. A lot of the concepts can translate directly to C++ if you decide to continue on that route.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Just to try it out and see if you like it.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;An open-source project might be good enough for that. Pick a program that you like, but that you've found some problems or irritations with, and offer your help to whoever is running it. Most open-source projects are open to contributions, that's generally why they're open-source in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, in that case, do &lt;em&gt;not&lt;/em&gt; try C++ as your first programming language. It's not hard to master the basics, but C++ is low-level enough that you can get some serious and very hard-to-find bugs in your programs. Unless you already know you love programming, or you're as stubborn as the proverbial ox, or have already found a mentor who can point you in the right direction, that will kill any budding interest you might have in the field. See the above answer about Python, it's better suited for that.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Because you have an idea for a specific program you want to write.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;(I don't think that the OP is in this category, I'm putting it in for later readers.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have any idea of the time required to master program design and implementation? As a hint, it's measured in years. You might be able to come up with a half-decent design after only a few months of study, if you're both smart and extremely lucky, but anyone with a little experience who has to work on it (including you, later) will wish that you'd never been born -- I speak from experience. :-) Unless the idea is so super-secret that no one else can know about it until it's done, don't bother. Hire an experienced programmer to do it for you, or if you can't afford one but still want the program badly enough, offer to partner with one -- you handle the business side and let him handle the programming part. Most good developers would prefer to be programming, so that kind of offer can be worth it to them.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Because you already know that you're fascinated by programming and want to learn more.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Then you're on exactly the right track. :-) Whether it's just as a hobby or is something you might turn into a career later, if you've got the kind of personality that finds it endlessly fascinating, the best thing you can do is to immerse yourself in it. C++ is as good a language as any, in that case, and a mentor will definitely help (and with more than just developing your skills; it can get lonely without friends who share your passion).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that describes you, then you can contact me at mentoring at oakcircle dot com and we'll see what comes of it. Put &quot;mentoring offer&quot; somewhere in the subject line or your message will go directly and automatically to the bit-bucket, unseen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Note for future readers: the offer extends to anyone who's passionately enthusiastic about designing and writing programs, especially in C++. But don't contact me for anything less, I don't have time for the merely interested.)&lt;/p&gt;&#xA;" OwnerUserId="11198" LastActivityDate="2010-12-21T15:56:27.773" />
  <row Id="28713" PostTypeId="2" ParentId="28573" CreationDate="2010-12-21T16:02:46.880" Score="2" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Get on the mailing list of a couple of reputable recruiters.  You're not &quot;actively looking&quot;, but you're &quot;keeping an eye out for interesting opportunities&quot;.  They will frequently include rate and salary information for positions in their e-mails.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Check job listing sites that quote rates or salaries.  Most listings don't publish the rates or salaries, but once in a while you'll find some.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You can also check out the Occupational Outlook Handbook published by the Dept of Labor.  Here is the page on &lt;a href=&quot;http://www.bls.gov/oco/ocos303.htm&quot; rel=&quot;nofollow&quot;&gt;Computer Software Engineers and Computer Programmers&lt;/a&gt; (see the Earnings section).  It lists average salaries, etc. but may not be specific to your geographic location, expertise, or industry.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Once you start seeing the rates for various types of positions then you'll start to see the variability that role, experience, location, and industry make in determining compensation.  From there you'll have to figure out what applies to you (and what to do next).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope that helps!&lt;/p&gt;&#xA;" OwnerUserId="831" LastActivityDate="2010-12-21T16:02:46.880" />
  <row Id="28714" PostTypeId="2" ParentId="28573" CreationDate="2010-12-21T16:08:01.980" Score="0" ViewCount="" Body="&lt;p&gt;Go to some of the salary comparison websites e.g., glassdoor.com&lt;/p&gt;&#xA;&#xA;&lt;p&gt;search for your position, and use the filter to select your experience. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The range of salary stated on the website should be a rough guide.&lt;/p&gt;&#xA;" OwnerUserId="10961" LastActivityDate="2010-12-21T16:08:01.980" />
  <row Id="28715" PostTypeId="2" ParentId="28507" CreationDate="2010-12-21T16:08:48.090" Score="0" ViewCount="" Body="&lt;p&gt;Most programmers will not work for stock option. You know it's the little things like paying the bills that prevent us to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, at age of 15 you are legally not able to act as an NDA signatory without parental consent anywhere in the world. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I'd say you either better be that new someone who is going to be admitted to a Ph.D. program at an Ivy League university at the age of 19 ( like one of the Google founders ), or get a bit of a reality check.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-21T16:08:48.090" />
  <row Id="28716" PostTypeId="2" ParentId="28573" CreationDate="2010-12-21T16:09:26.530" Score="0" ViewCount="" Body="&lt;p&gt;Find out what you enjoy doing, find out what its pays, adjust your lifestyle to match. &lt;/p&gt;&#xA;" OwnerUserId="11043" LastActivityDate="2010-12-21T16:09:26.530" />
  <row Id="28717" PostTypeId="2" ParentId="28697" CreationDate="2010-12-21T16:11:48.967" Score="2" ViewCount="" Body="&lt;p&gt;The static code analysis tools included with Visual Studio will find code &quot;with no upstream callers&quot;.  If you don't want to turn on all of the code analysis rules for your project, look for the following rules to turn on:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;CA1811: Avoid uncalled private code (Performance Rules)&lt;/li&gt;&#xA;&lt;li&gt;CA1812: Avoid uninstantiated internal classes (Performance Rules)&lt;/li&gt;&#xA;&lt;li&gt;CA1801: Review unused parameters (Usage Rules)&lt;/li&gt;&#xA;&lt;li&gt;CA1804: Remove unused locals (Performance Rules)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;No idea why some are under the Performance category and others under Usage, but these are the rules I'm aware of to find unused code in VS.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-21T16:11:48.967" CommentCount="1" />
  <row Id="28718" PostTypeId="2" ParentId="28579" CreationDate="2010-12-21T16:14:06.503" Score="1" ViewCount="" Body="&lt;p&gt;In my experience some programmers tend to be selfish (usually the arrogant ones). At the end selfish ones create a lot of problems, usual situation is: when everything is OK, they say &quot;Yes I worked hard&quot; and when something is wrong they say: &quot;It is not my problem its yours&quot;. They are &quot;unpopular&quot; and you have to remember that you are working with you team 8-10 hours a day and that you may run into a problem and the first stop is your team member. &lt;/p&gt;&#xA;" OwnerUserId="10530" LastActivityDate="2010-12-21T16:14:06.503" />
  <row Id="28719" PostTypeId="2" ParentId="28573" CreationDate="2010-12-21T16:22:32.890" Score="0" ViewCount="" Body="&lt;p&gt;This is likely to be quite a different take as this isn't looking at compensation relative to others but rather in contrast to the rest of your life.  Do you make enough to pay your bills and live a good lifestyle?  Good being rather subjective here obviously as some people can live on a shoestring and others want to make millions each year.  Another point here is to note that there are things beyond salary in terms of compensation that should also be counted though some of these can be hard to quantify such as how good is the work environment, the quality of the work being requested and personal satisfaction in doing it.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-21T16:22:32.890" />
  <row Id="28720" PostTypeId="2" ParentId="26307" CreationDate="2010-12-21T16:25:04.987" Score="1" ViewCount="" Body="&lt;p&gt;We use Trac at our company. It combines Bug-Tracker, Wiki and some other stuff and is really useful.&lt;/p&gt;&#xA;" OwnerUserId="7654" LastActivityDate="2010-12-21T16:25:04.987" />
  <row Id="28721" PostTypeId="2" ParentId="28697" CreationDate="2010-12-21T16:25:06.547" Score="2" ViewCount="" Body="&lt;p&gt;In addition to FX Cop / VS's Code Analysis (they are the same thing, one is command line, one is in the IDE) as mentioned by others, NDepend can help. It will allow you to run queries to determine all callers and callees, right on up the chain. Think of it as letting you run reports on your code. It's not the be-all and end-all, but helps you to get several steps closer to where you want to be at the least.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fundamental problem in turning to code analysis here is that public members are hard to conclusively say &quot;not used&quot; for a tool. I'm not familiar with a code analysis kit that has rules that say &quot;This bunch of assemblies represent the whole ecosystem so if a method isn't called anywhere, let me know.&quot; I guess that once you get into derived types, that gets messy for an automated static code analysis engine.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-12-21T16:25:06.547" CommentCount="1" />
  <row Id="28722" PostTypeId="1" AcceptedAnswerId="28750" CreationDate="2010-12-21T16:27:15.483" Score="2" ViewCount="307" Body="&lt;p&gt;A friend of mine (an attorney who specializes in prosecuting child porn (CP) purveyors and enthusiasts) asked me why we haven't been able to stop the transmission of child porn images on the web (via a purely technological mechanism).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My initial response detailed the seemingly innumerable methods of obfuscating the image data itself (to prevent detection): modification, digital image stenography, embedding, chunking (which appears to be a straight-forward way to mitigate Microsoft's &lt;a href=&quot;http://www.microsoft.com/presspass/features/2009/dec09/12-15PhotoDNA.mspx&quot; rel=&quot;nofollow&quot;&gt;PhotoDNA&lt;/a&gt; technology).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My friend tells me, again she is well-versed in this subject, that people who view CP tend to be &quot;collectors&quot;.  There exists a corpus of well-known and valuable images that are almost always found when someone is caught.  The National Center for Missing and Exploited Children has a database of illegal images that is apparently well maintained.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;She is less concerned with someone accidentally &quot;tripping&quot; over a CP image as she is about finding the perpetrators.  Thus, a CP-blocker browser extension, anti-virus addition, etc. aren't helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is a technological solution impossible simply because there are no legal precedent(s) (even within the US)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I should point out that I've been a commercial software dev for 14 years.  I realize that this is just another form of piracy and that criminals will always find a way to obtain data.  That said, I guess I'm a bit surprised that we haven't made more progress.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Forgetting the legal/privacy aspects for a second, it wouldn't be impossible to create a non-optional OS component that could detect CP images (both on disk and at point of display).  Yes, the OS could be hacked, and yes you could simply choose a different OS, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd love to hear your thoughts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Matt&lt;/p&gt;&#xA;" OwnerUserId="11213" LastActivityDate="2010-12-21T17:00:27.807" ClosedDate="2010-12-21T17:05:57.210" Title="Can we stop child pornography on the web?" Tags="&lt;security&gt;&lt;legal&gt;" AnswerCount="5" CommentCount="5" />
  <row Id="28723" PostTypeId="2" ParentId="28573" CreationDate="2010-12-21T16:28:31.647" Score="0" ViewCount="" Body="&lt;p&gt;Two important questions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you feel good about the amount they pay you? Does it justify the responsibility?&lt;/li&gt;&#xA;&lt;li&gt;Are you happy at work? Do they treat you well, and do you feel at home?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Compare scales all you want, these are the things that matter in the end. At other jobs you will be given other responsibilities, so you cannot really compare the other peoples salaries. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;You should be payed enough so you won't have to worry about getting paid.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me personally, it weighs both ways, when its boring at work I start looking at my salary, when its fun at work, I usually don't care how much I make because I have fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. Extra interesting movie: &lt;a href=&quot;http://www.youtube.com/watch?v=u6XAPnuFjJc&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=u6XAPnuFjJc&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3814" LastActivityDate="2010-12-21T16:28:31.647" />
  <row Id="28724" PostTypeId="2" ParentId="28654" CreationDate="2010-12-21T16:31:13.467" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.magentocommerce.com/&quot; rel=&quot;nofollow&quot;&gt;Magento&lt;/a&gt; is by far the most comprehensive open source option I've seen.  I've personally used it on a couple of projects and highly recommend it.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-12-21T16:31:13.467" CommentCount="1" />
  <row Id="28725" PostTypeId="2" ParentId="28722" CreationDate="2010-12-21T16:33:31.157" Score="12" ViewCount="" Body="&lt;p&gt;I'm all in favor of arresting and persecuting child pornography purveyors and consumers, &lt;strong&gt;&lt;em&gt;but stay the hell away from my OS.&lt;/em&gt;&lt;/strong&gt; This point is not open for debate and is non-negotiable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Law enforcement is the correct method for dealing with these horrible criminals. Installing some sort of filter in my OS is a terrible idea on many levels, one of which is technological. No one has ever come up with an efficient, predictable and reliable means for analyzing the content of complex images.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So let cops and lawyers use their God-given eyeballs to do the work.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-12-21T16:33:31.157" CommentCount="1" />
  <row Id="28726" PostTypeId="2" ParentId="28722" CreationDate="2010-12-21T16:37:21.423" Score="0" ViewCount="" Body="&lt;p&gt;It sounds like it would ultimately work in a similar manner to a virus scanner - scan every file arriving on the machine to see if it matched a known &quot;finger print&quot; based on one of these common images.  I'm guessing that you could probably even come up with algorithms that established whether an image was the same despite, say, a reduction in quality or a change in the brightness / contrast as there will still be fundamental patterns.  It might not be foolproof but I'm guessing you could get something with a pretty good hit rate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question would be how do you get it on people's machines and how do you ensure that the mechanism isn't abused (for instance set to scan for wikileaks documents)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But contrary to what you suggest, as with many problems of this nature, the technical solution is the easier part - the social and legal elements are the problem.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-21T16:52:23.493" LastActivityDate="2010-12-21T16:52:23.493" CommentCount="1" />
  <row Id="28727" PostTypeId="2" ParentId="28603" CreationDate="2010-12-21T16:37:51.250" Score="2" ViewCount="" Body="&lt;p&gt;I think the ubiquity of regex is due to the ubiquity of strings.  The string is the simplest data structure, the first one that most of us learn.  Since all of our code is written in symbolic form, it is natural for a programmer to consider modelling something in symbolic form.  But if our programming language offers any resistance when we try to extend its syntax for our clever new symbolic forms, they all end up between quotes.  The relational data model has SQL.  The XML data model has XQuery.  But what about the humble string data model?  Regex!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just yesterday, I was looking over the API for a shiny new Javascript framework that supports HTML5 game development.  It has a declarative mechanism for describing the main subsystems that your game would need.  How does one specify those features?  JSON?  Fluent dot notation?  An array?  Nope -- a string containing a comma- and whitespace-separated list of feature names.  I wonder how it parses that list... ?&lt;/p&gt;&#xA;" OwnerUserId="8176" LastActivityDate="2010-12-21T16:37:51.250" CommentCount="1" />
  <row Id="28728" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T16:38:02.107" Score="-1" ViewCount="" Body="&lt;p&gt;There are certainly evil things in the world.  A program that creates random images of pornography would certainly be an evil thing.  A worm that goes out and destroys critical infrastructure, thereby killing people, would be an evil thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's not be naive, and let some philosophical desire for there to be no evil in the world (&lt;strong&gt;thereby saving you from having to examine yourself&lt;/strong&gt;) drive us to postulate that which we desire.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-12-21T16:38:02.107" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="9" />
  <row Id="28729" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T16:39:21.343" Score="7" ViewCount="" Body="&lt;p&gt;I think skinning, auto-updaters that perpetually sit in the systray, applications that hijack file associations and other system settings, are straight evil.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Along with flash-only websites.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-12-21T16:39:21.343" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="4" />
  <row Id="28730" PostTypeId="2" ParentId="28722" CreationDate="2010-12-21T16:39:56.973" Score="0" ViewCount="" Body="&lt;p&gt;These filters should be put at a much higher level to keep them from being transmitted on the web.  You probably couldn't design one to catch everything, but you could certainly make one to catch a library of pictures.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-12-21T16:39:56.973" CommentCount="5" />
  <row Id="28731" PostTypeId="2" ParentId="1662" CreationDate="2010-12-21T16:40:34.820" Score="0" ViewCount="" Body="&lt;p&gt;I'm shocked to hear so many 9-5ers.  IT/programming/informatics work is generally a 5-9er.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-12-21T16:40:34.820" />
  <row Id="28732" PostTypeId="1" AcceptedAnswerId="28737" CreationDate="2010-12-21T16:46:01.730" Score="17" ViewCount="962" Body="&lt;p&gt;Most people I come across naturally think I'm smart because I'm a software developer.  I don't think I'm particularly smart, but instead have a more logical brain than others perhaps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So are we smart?  And do most others that aren't involved in the industry think we are?  Even network techs seem to think we are! (I wouldn't know where to go to set up an MX record for instance)&lt;/p&gt;&#xA;" OwnerUserId="4630" LastEditorUserId="4630" LastEditorDisplayName="" LastEditDate="2010-12-21T16:53:56.717" LastActivityDate="2010-12-22T00:10:03.063" Title="To be a software developer do you have to be smart?" Tags="&lt;career&gt;&lt;learning&gt;&lt;social&gt;&lt;stereotypes&gt;" AnswerCount="24" CommentCount="8" FavoriteCount="3" />
  <row Id="28733" PostTypeId="1" AcceptedAnswerId="28769" CreationDate="2010-12-21T16:48:09.930" Score="0" ViewCount="279" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/5780/why-are-there-so-few-female-programmers&quot;&gt;Why are there so few female programmers?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I have long wondered why there is such that it is a very large majority of boys who are developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think is the reason why so few girls are developers?&lt;/p&gt;&#xA;" OwnerUserId="11215" LastActivityDate="2010-12-21T19:48:38.993" ClosedDate="2010-12-21T17:13:24.483" Title="Programming, male-dominated" Tags="&lt;software-developer&gt;" AnswerCount="6" CommentCount="2" />
  <row Id="28734" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T16:49:06.547" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;So are we smart?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;We're smart but unsuitable for real world life.&lt;/em&gt; &#xA;That's what they think.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And reality? We're more logical and more trained in logic/structure than the others. We just rarely apply this training outside of the field. If one day we start to, the world - beware!&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-21T16:49:06.547" />
  <row Id="28736" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T16:51:59.393" Score="0" ViewCount="" Body="&lt;p&gt;Some programming instructions / style / conventions are very often misused to make terrible, evil if you will code, but in the hands of a master programmer they can be used in a very elegant fashion, good if you will.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand I know of nothing that can prevent incompetent or inexperienced programmers from from producing bad, evil if you will code even with the best tools, languages, and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By avoiding often misused elements, such as goto, the hope is that mediocre programmers can avoid the evil and perhaps make it somewhat easier to write good code.&lt;/p&gt;&#xA;" OwnerUserId="11043" LastActivityDate="2010-12-21T16:51:59.393" CommunityOwnedDate="2010-12-21T23:21:19.143" />
  <row Id="28737" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T16:52:09.190" Score="18" ViewCount="" Body="&lt;p&gt;Look - do you have a job in this economy? Do you have a healthy stress level and lifestyle? Do you have a good family life?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you are smart. Everything else is not relevant.&lt;/p&gt;&#xA;" OwnerUserId="7380" LastActivityDate="2010-12-21T16:52:09.190" CommentCount="1" />
  <row Id="28739" PostTypeId="2" ParentId="28722" CreationDate="2010-12-21T16:53:04.783" Score="4" ViewCount="" Body="&lt;p&gt;The same reason we can't end wars, feed the hungry or stop rapists - people who are bent on criminal activity will find a workaround to even the most sophisticated technological solutions. It takes a change in state of mind and for that devs alone are not responsible, a lot can be attributed to bad schools/social systems/corrupt govts, etc.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-21T16:53:04.783" />
  <row Id="28740" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T16:53:28.417" Score="1" ViewCount="" Body="&lt;p&gt;You don't have to be intelligent to be a developer, but like any skill, to be a &lt;strong&gt;good&lt;/strong&gt; developer you need to be intelligent and have had time to develop your technical skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Someone can be a dumb as a rock and be a good musician, but being very intelligent will go a long way towards making you a fantastic musician. It's the same for developing. Although the low intelligence threshold is probably higher.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-12-21T16:53:28.417" />
  <row Id="28742" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T16:53:59.243" Score="12" ViewCount="" Body="&lt;p&gt;It's just a stereotype stemming from &quot;nerds&quot; being the initial programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was going to say that people probably assume that since we work with complicated things (that they don't understand) that we are smart. However, mechanics need to be smart in order to work on your car, but they aren't stereotypically considered smart.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not of much real relevance, though.&lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2010-12-21T16:53:59.243" CommentCount="4" />
  <row Id="28743" PostTypeId="2" ParentId="28733" CreationDate="2010-12-21T16:55:19.587" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I have long wondered why there is such that it is a very large majority of boys who are developers.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Because the humanity is structured in that way that men like constructing things while women like caring about family. It's for-programmed in us.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-21T16:55:19.587" CommentCount="7" />
  <row Id="28744" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T16:56:02.180" Score="1" ViewCount="" Body="&lt;p&gt;I don't think that programmers are, on average, any more or less smart than any other professional class, on average. We just have a different set of knowledge stuffed in our heads, and that seems very impressive to many because of the ubiquity of software. &lt;/p&gt;&#xA;" OwnerUserId="7508" LastActivityDate="2010-12-21T16:56:02.180" />
  <row Id="28745" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T16:56:10.667" Score="7" ViewCount="" Body="&lt;p&gt;We are smart about some things.  We understand how to listen to a problem and work out a solution.  Often visualizing the solution in our heads as the problem is being described.  A lot people cant't do that and have a hard time even comprehending how that happens.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does that make us all geniuses?  My ego would like to think so, but the reality is no.  Do I know ANYTHING about brain surgery?  Or about anatomy?  Nope.  It's just the field that we've chosen is so very foreign to most people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To your point, our field requires a significant amount of logic and since that comes easy to most of us it makes us appear &quot;smart&quot;, when we're really just logical.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-21T16:56:10.667" />
  <row Id="28746" PostTypeId="2" ParentId="28588" CreationDate="2010-12-21T16:56:45.877" Score="0" ViewCount="" Body="&lt;p&gt;As a freelancer, my selling proposition is &quot;Delivers quality code on time, and doesn't have to be micromanaged.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's really all most customers care about. It works quite well; I'm fully booked.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-21T16:56:45.877" />
  <row Id="28747" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T16:57:48.470" Score="1" ViewCount="" Body="&lt;p&gt;I think we are smart, in a very focused way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I, for example, am (I hope) a good, smart programmer, an okay guitarist and a reasonably competent artist, but I'm lousy at maths and physics, and my memory for recent events can be terrible at times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, yes, I think we're smart, but we're not necessarily all-round clever.&lt;/p&gt;&#xA;" OwnerUserId="7585" LastActivityDate="2010-12-21T16:57:48.470" />
  <row Id="28748" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T16:58:18.650" Score="5" ViewCount="" Body="&lt;p&gt;Most of us are smart in the same way chess grand masters are smart. We're highly tuned to perform the task we're trained to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of us are smart in the way quantum physicists are smart. Quantum physicists have to be creative and think up new theories.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-21T16:58:18.650" />
  <row Id="28749" PostTypeId="2" ParentId="28733" CreationDate="2010-12-21T16:58:25.473" Score="0" ViewCount="" Body="&lt;p&gt;Because women have seldom been programmers. Who does a young woman look to as a role model? In the end we are strongly influenced by tradition. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do I think women can be good programmers, of course they can. I have worked with a few over the years. Some were hopeless, but then so were many men that I have worked with, most we mediocre, again like most men I work with, and maybe one or two were very good, again like most men I've worked with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over time I certainly hope more women do become programmers. &lt;/p&gt;&#xA;" OwnerUserId="11043" LastActivityDate="2010-12-21T16:58:25.473" />
  <row Id="28750" PostTypeId="2" ParentId="28722" CreationDate="2010-12-21T17:00:27.807" Score="3" ViewCount="" Body="&lt;p&gt;There is an article on on Cryptome (I think) written by someone who has been involved in the CP industry. He explains that bought CP nowadays is tending to be in the form of virtual servers containing truecrpyted drives. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The client pays for access to a server set up by the CP provider, normally in a different country to both party. They will then be given an logon credentials which they use to login over an encrypted VPN. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nothing to detect in the traffic, nothing to detect on the home PC and if set up right, no way for anyone to tell what is happening on the virtual server.&lt;/p&gt;&#xA;" OwnerUserId="7092" LastActivityDate="2010-12-21T17:00:27.807" CommentCount="2" />
  <row Id="28751" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T17:00:46.953" Score="3" ViewCount="" Body="&lt;p&gt;A baseline of intelligence is a requirement, but it's far from sufficient. And beyond a particular threshold, intelligence contributes marginally less to success. Most of it come down to &lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Practice&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Great athletes aren't great because they're in-shape. They're great because they practice. We mere mortals just think they're amazingly in-shape. (That's why non-developers might assume you're a genius, even though the same can be said about many other careers that require lots of training.)&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-21T17:00:46.953" />
  <row Id="28752" PostTypeId="2" ParentId="28733" CreationDate="2010-12-21T17:03:42.223" Score="0" ViewCount="" Body="&lt;p&gt;Society.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Girls are pushed toward artistic or &quot;social&quot; jobs.&lt;/p&gt;&#xA;" OwnerUserId="6579" LastActivityDate="2010-12-21T17:03:42.223" CommentCount="2" />
  <row Id="28753" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T17:08:11.773" Score="1" ViewCount="" Body="&lt;p&gt;My significant other tells me I'm smart with this stuff but don't have a lick of common-sense. So it all depends on how you define: smart.&lt;/p&gt;&#xA;" OwnerUserId="657" LastActivityDate="2010-12-21T17:08:11.773" />
  <row Id="28754" PostTypeId="2" ParentId="880" CreationDate="2010-12-21T17:08:25.283" Score="0" ViewCount="" Body="&lt;p&gt;I'll try to explain my thoughts on a recommended &lt;em&gt;system&lt;/em&gt;, as I don't have any particular recommendations, other than as fast, powerful, and big as you (or your employer) can afford. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a proper work area - e.g. a good quality suitable chair, and desk with adjustable keyboard height&lt;/li&gt;&#xA;&lt;li&gt;a keyboard you are comfortable with, suitable tactile (touch) and/or audible feedback for touch typing, perhaps &lt;a href=&quot;http://en.wikipedia.org/wiki/Rollover_%28key%29&quot; rel=&quot;nofollow&quot;&gt;rollover&lt;/a&gt; (n-key) &lt;a href=&quot;http://www.codinghorror.com/blog/2010/10/the-keyboard-cult.html&quot; rel=&quot;nofollow&quot;&gt;support&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;large sharp display(s) at a comfortable viewing distance, I recommend &lt;a href=&quot;http://www.codinghorror.com/blog/2010/04/three-monitors-for-every-user.html&quot; rel=&quot;nofollow&quot;&gt;maximizing screen real estate&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;given the low cost of multicore processors, one or more quad/hex-core processor with plenty of L2/L3 cache and good memory bandwidth&lt;/li&gt;&#xA;&lt;li&gt;RAM is cheap, so 2-8GB for a laptop, and 4GB minimum for a desktop and a recommendation of 8-24GB of RAM.&lt;/li&gt;&#xA;&lt;li&gt;fast hard drives with lots of storage, you can use SSD for system disks, and possibly source code, but ensure you have a very frequent backup methodology you trust as the failure rate is higher than traditional drives, other use RAID-5 or -10 with 7.2K (or 10K) RPM SATA-II/-III or SAS disks (with a off-system backup) - I dislike laptop or &quot;Green&quot; drives in this respect, great for bulk storage, but horrid speed/throughput performance &lt;/li&gt;&#xA;&lt;li&gt;a reliable system made from trust worthy components&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;At work I prefer (engineering or scientific) &quot;workstation&quot; class desktop systems over traditional &quot;office PC&quot; grade pre-built systems. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also build your own system (strongly recommend you do it at least once if you haven't before) if your employer (or yourself) is willing to do purchasing that way. Use only boring but &lt;strong&gt;reliable&lt;/strong&gt; components, I stick to motherboards from Intel, Asus, and Gigabyte. There are other perfectly fine ones, but I stick to more trusted, and reliable oriented (compare to &quot;enthusiast&quot; or gamer-oriented systems) brands and/or models for components. Also I pick RAM from brands over by manufacturers (e.g. Kingston, Crucial (Micron), Samsung) rather than resellers. Hard drives, I buy consumer oriented models for personal usage, but will pay for the models with 5-years rather than 3-year warranties, such as Western Digital's WD Caviar Black series.&lt;/p&gt;&#xA;" OwnerUserId="11206" LastActivityDate="2010-12-21T17:08:25.283" CommunityOwnedDate="2011-02-06T19:45:08.167" />
  <row Id="28755" PostTypeId="2" ParentId="28733" CreationDate="2010-12-21T17:08:53.910" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;There are less female programmers because less females choose to become programmers.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-12-21T17:08:53.910" CommentCount="8" />
  <row Id="28756" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T17:09:10.120" Score="1" ViewCount="" Body="&lt;p&gt;Everyone is a genius at something(s) and dumb as a stump in others. The real issue is finding out what you're smart at and capitalizing on it.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-12-21T17:09:10.120" />
  <row Id="28757" PostTypeId="1" AcceptedAnswerId="28770" CreationDate="2010-12-21T17:09:44.160" Score="3" ViewCount="190" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm searching a book for WPF.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've started C# development a while ago and use WPF as well. So far I could handle all the WPF tasks, but I feel my knowledge about WPF is still limited.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any recommendations?&lt;/p&gt;&#xA;" OwnerUserId="10158" LastActivityDate="2011-04-01T18:38:09.530" Title="Good book for WPF?" Tags="&lt;learning&gt;&lt;books&gt;&lt;wpf&gt;" AnswerCount="3" />
  <row Id="28758" PostTypeId="2" ParentId="28733" CreationDate="2010-12-21T17:10:39.080" Score="2" ViewCount="" Body="&lt;p&gt;I heard three theories that might carry weight.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Autism: Under this theory good programmers have autistic tendencies. Such tendencies are less common in females then males. (Both of those ideas have some statistical support) As a result, this produces a distribution of males/females that is skewed toward males.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Toys: Boys play with Lego, Girls play with dolls. (At least stereotypically) This causes different mind development and results in the boys being more able to do programming. Under this theory, girls could easily learn to program if they played with the right toys.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Social: Being into computers gets you marked as a nerd. Some people who might otherwise be into computers do not go there because of the social stigma. Perhaps males are more likely to ignore the stigma then females. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I suspect there is a little bit of truth to all these theories, and that there is more to picture then these. But I think these do go a way towards providing an explanation.&lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2010-12-21T17:10:39.080" />
  <row Id="28759" PostTypeId="1" AcceptedAnswerId="28762" CreationDate="2010-12-21T17:11:11.800" Score="10" ViewCount="145" Body="&lt;p&gt;Some programming languages (e.g. Java and C++) have language features called &quot;packages&quot; or &quot;namespaces&quot;.  How useful is it really to have namespaces?  It is possible to mark functions and classes as belonging to some particular library without using such a language feature, like the SDL does (e.g. &lt;code&gt;SDL_BlitSurface()&lt;/code&gt;).  Are namespaces not helpful enough to be worth having?  Are they useful in libraries but not in applications?  Are they useful everywhere except for in small projects?  Thoughts?&lt;/p&gt;&#xA;" OwnerUserId="9521" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-21T23:46:51.507" LastActivityDate="2010-12-22T02:42:33.000" Title="Merits of Namepsaces/Packages" Tags="&lt;organization&gt;&lt;naming&gt;&lt;packages&gt;" AnswerCount="4" />
  <row Id="28761" PostTypeId="2" ParentId="28314" CreationDate="2010-12-21T17:12:04.353" Score="3" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&quot;Evil&quot; arguments aside, in my experience I've found a high correlation between a programmer's use the ternary operator and the likelihood of his or her entire codebase being difficult to read, follow, and maintain (if not outright undocumented). If a programmer's more concerned with saving a few 1-2 character lines than someone being able to understand his or her code, then any minor confusion understanding a ternary statement is usually the tip of the iceberg. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Ternary operators attract magic numbers like s**t attracts flies.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If I was looking for an Open Source library to solve a particular problem, and I saw code such as the original poster's ternary operators in a candidate for said library, warning bells would start going off in my head and I'd start considering moving on to some other project to borrow from.&lt;/p&gt;&#xA;" OwnerUserId="8865" LastActivityDate="2010-12-21T17:12:04.353" CommunityOwnedDate="2011-01-25T19:46:08.053" />
  <row Id="28762" PostTypeId="2" ParentId="28759" CreationDate="2010-12-21T17:16:31.963" Score="11" ViewCount="" Body="&lt;p&gt;Aren't &lt;strong&gt;name prefixes&lt;/strong&gt; the same thing as &lt;strong&gt;namespacing&lt;/strong&gt;, except that it's done in a way that is less useful and more difficult to read/parse? Doesn't the question answer itself?&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-21T17:16:31.963" CommentCount="5" />
  <row Id="28763" PostTypeId="2" ParentId="28759" CreationDate="2010-12-21T17:17:25.663" Score="2" ViewCount="" Body="&lt;p&gt;I think that namespaces are a great idea. They help prevent naming conflicts by limiting the scope of a name. In Java packages, the suggested package naming convention is based on domain names, which &lt;em&gt;should&lt;/em&gt; be unique, which help prevent naming conflicts over custom libraries. Overall, they make naming a bit more unique in the broad sense, while still allowing the programmer a good bit more freedom in naming his pieces without having to follow some obscure naming convention.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2010-12-22T02:42:33.000" LastActivityDate="2010-12-22T02:42:33.000" CommentCount="3" />
  <row Id="28764" PostTypeId="1" CreationDate="2010-12-21T17:17:41.073" Score="2" ViewCount="164" Body="&lt;p&gt;I've seen that Java has &lt;em&gt;a lot&lt;/em&gt; of tools and third party libraries and you can find almost anything you need but the eco-system is fragmented and the amount of things needed to be learned in order to even consider going to a java interview are &lt;em&gt;a lot&lt;/em&gt;. That makes me wonder how much time is needed in order to learn everything. I'm not new to programming but I mostly done only web stuff in PHP (OOP) using CodeIgniter/Wordpress and I worked with Python on simple personal projects. Also, I've use MySQL and SQLite3.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also looked at C#/.NET and it &lt;em&gt;seems&lt;/em&gt; to me that the amount of things required is substantially lower than on the Java side. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To summarize: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;J2EE&lt;/li&gt;&#xA;&lt;li&gt;JSP&lt;/li&gt;&#xA;&lt;li&gt;JSF&lt;/li&gt;&#xA;&lt;li&gt;STRUTS&lt;/li&gt;&#xA;&lt;li&gt;SERVLETS&lt;/li&gt;&#xA;&lt;li&gt;JDBC&lt;/li&gt;&#xA;&lt;li&gt;JBOSS&lt;/li&gt;&#xA;&lt;li&gt;Tomcat&lt;/li&gt;&#xA;&lt;li&gt;JBPM &lt;/li&gt;&#xA;&lt;li&gt;Spring MVC&lt;/li&gt;&#xA;&lt;li&gt;Hibernate &lt;/li&gt;&#xA;&lt;li&gt;JUnit&lt;/li&gt;&#xA;&lt;li&gt;Ant/Maven&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These are the most common technologies/frameworks I've seen required on job offerings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand for .NET the most common technologies and frameworks seem to be:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;C# &lt;/li&gt;&#xA;&lt;li&gt;Asp.NET / Asp.NET MVC&lt;/li&gt;&#xA;&lt;li&gt;LINQ, &lt;/li&gt;&#xA;&lt;li&gt;Sql server&lt;/li&gt;&#xA;&lt;li&gt;JScript&lt;/li&gt;&#xA;&lt;li&gt;Oracle db&lt;/li&gt;&#xA;&lt;li&gt;NET framework &lt;/li&gt;&#xA;&lt;li&gt;VB/VB.NET&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also, the .NET world seems to be less fragmented for obvious reasons. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not a question about which technology is /better/the best/ for doing X task, it's a question about which technology (given my knowledge) is easier for me to learn in order to get a job in the field(that's my goal).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you.&lt;/p&gt;&#xA;" OwnerUserId="11218" LastActivityDate="2010-12-21T18:50:09.513" ClosedDate="2010-12-28T23:23:27.307" Title="What technology is it easier to learn given my programming experience ?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;career-advice&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="2" />
  <row Id="28765" PostTypeId="2" ParentId="28579" CreationDate="2010-12-21T17:18:44.333" Score="0" ViewCount="" Body="&lt;p&gt;Expose yourself to things you don't grasp at the instant.&lt;br&gt;&#xA;Don't ignore things as &quot;that's simple to learn&quot;. Once you try you often figure it's not.&lt;br&gt;&#xA;Watch people doing lowly, underappreciated jobs. &lt;/p&gt;&#xA;" OwnerUserId="7313" LastActivityDate="2010-12-21T17:18:44.333" />
  <row Id="28767" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T17:28:43.387" Score="4" ViewCount="" Body="&lt;p&gt;You don't have to, but it helps. Just like in any other profession.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-21T17:28:43.387" />
  <row Id="28768" PostTypeId="2" ParentId="28759" CreationDate="2010-12-21T17:29:34.517" Score="2" ViewCount="" Body="&lt;p&gt;Most (all?) languages with namespaces tend to be object oriented.  Many times a human readable name for a type is appropriate, even though there are multiple incompatible implementations.  (this brings up other issues on object oriented reuse, but that's not what this question is about).  For instance, in Java you have a Timer that is used for background UI tasks, and a Timer that is used for background application (not tied to AWT/Swing) tasks.  The namespace allows you to have these same-named objects living in different sub-APIs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason that namespaces came into existence had to do with the unreasonable task of anticipating what other developers will name their objects.  C++ introduced the concept (or at least was the first language I was exposed to with the concept), and it was helpful even though there were no guidelines on best use practices.  Java adapted the concept and added some &quot;best practices&quot; that included your company name in the namespace.  That way you only had to worry about your own company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prefixing can become pretty messy.  When do you apply it?  When do you &lt;em&gt;not&lt;/em&gt; apply it?  Do structures/classes/global methods get the prefix?  What about methods?  What about properties in the struct.  I've seen all of these things in code, although thankfully not all at once.  Namespaces provides some predictability to all of these questions, and makes it a language feature rather than a personal &quot;best practice&quot;.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-21T17:29:34.517" CommentCount="1" />
  <row Id="28769" PostTypeId="2" ParentId="28733" CreationDate="2010-12-21T17:30:58.587" Score="3" ViewCount="" Body="&lt;h3&gt;Tradition&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Historically programming has been a male dominated sector, and it takes time to change something like that. There is a strong preconception that few women are suited to be programmers, almost only based on the fact that few women are.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Culture&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Men have designed development tools for men, so they are heavily targeted at what men find interresting. That of course doesn't make it impossible for women to find them interresting, but it makes them slightly less appealing.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Actual differences&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Because of social differences rooted since we were cavemen, men and women have had different roles in society, making us train our young ones in different ways depending on their gender. There may even be genetical differences that enforce these tendences. This makes it slightly more common that men develop analytical skills, which are useful for programming. The difference itself would however only account for a slight shift in the balance, so there has to be a lot of other factors playing in.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Spiral effect&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;As with any other sector that is dominated by one gender, the domination feeds itself. The culture is built for it's majority. A more even balance would be benificial, but that means that the culture has to change to accomodate both genders. This is a hard change, and often people find that they have to change to fit into the culture instead. Examples in other sectors are male nurses and female executives, who struggle against stereotypes, and I think female programmers is in a similar place.&lt;/p&gt;&#xA;" OwnerUserId="3674" LastEditorUserId="3674" LastEditorDisplayName="" LastEditDate="2010-12-21T17:37:46.790" LastActivityDate="2010-12-21T17:37:46.790" CommentCount="7" />
  <row Id="28770" PostTypeId="2" ParentId="28757" CreationDate="2010-12-21T17:31:53.197" Score="4" ViewCount="" Body="&lt;p&gt;I can think of 2 books:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0672331195&quot; rel=&quot;nofollow&quot;&gt;WPF Unleashed&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/NixSb.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1430272058&quot; rel=&quot;nofollow&quot;&gt;WPF in C# 2010&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/H5i4f.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-21T17:31:53.197" CommentCount="2" />
  <row Id="28771" PostTypeId="2" ParentId="28764" CreationDate="2010-12-21T17:32:38.847" Score="5" ViewCount="" Body="&lt;p&gt;Don't trust &quot;requirement&quot; lists on job postings, especially not by quantity of bullet points.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Most managers/HR directors are bad at creating job postings.  The postings are dry and repetitive, list too many requirements, duties that don't make sense, and leave out the important but abstract concepts. And at the hiring I'm sure most managers aren't even thinking about how closely their candidates match the list of requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;Side note, this is the difference between a job site like &lt;a href=&quot;http://authenticjobs.com&quot; rel=&quot;nofollow&quot;&gt;authenticjobs.com&lt;/a&gt; and &lt;a href=&quot;http://monster.com&quot; rel=&quot;nofollow&quot;&gt;monster.com&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Gaining a working knowledge of one point in one list could take as much time as five points in the other list.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It's not necessary to understand all of those points (in fact some of those are kind of duplicated). They are listed that way simply to draw in candidates with certain types of experience:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tomcat/JBoss?&lt;/strong&gt; Really they just want a developer who understand Java web servers.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Struts &lt;em&gt;and&lt;/em&gt; Spring MVC?&lt;/strong&gt;  Of course they don't need a developer who knows both, they just want a developer who understand Java MVC frameworks.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Hibernate&lt;/strong&gt; isn't the only ORM out there, but it would be good for the developer to know what it is and know how an ORM works. And so on.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The bottom line is that these job postings are rough at best and are usually simply created to give the recruiter something to be able to cultivate some decent candidates through resume-searching without bugging the manager every 5 minutes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The real culling occurs in the interview process and many developers will tell you - &lt;strong&gt;it's possible to get a job in a language completely new to you, just by proving you know how to think.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2010-12-21T17:40:51.130" LastActivityDate="2010-12-21T17:40:51.130" CommentCount="2" />
  <row Id="28773" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T17:38:03.450" Score="2" ViewCount="" Body="&lt;p&gt;I have a couple theories on the matter:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;People think we are smart because we solve their problems (if i cant solve a problem and others do, then they are probably smarter)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A programmers nature is in its power of abstraction and problem solving skills. This attributes and constat practice in everyday jobs, train our brain to responder better when dealing with some kind of problems.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;How about that? It's no absolute but that's as far as i got on this one.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-21T17:38:03.450" />
  <row Id="28774" PostTypeId="2" ParentId="28759" CreationDate="2010-12-21T17:39:09.823" Score="1" ViewCount="" Body="&lt;p&gt;Namespaces/Modules/Packages are useful for avoiding name conflicts. So is name prefixing but namespaces have the added convenience of being able to import symbols into the current namespace so that you don't have to bother with the whole Namespace::*.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some languages (like Python) extend this ability by allowing you to import only specific symbols into your current module or import symbols as a different name. This is useful if you are only interested in a few classes/functions/constants or if some of the symbols conflict with symbols in your namespace but some don't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some languages (like Ruby) allow you to include the methods of a module into your class. This is useful for polymorphism and generics. For example, if you have several classes that have iterators that act in the same way, you can mix methods in to all of these classes from a separate module that provides methods to sort and filter the data in the object. This allows &lt;code&gt;has a&lt;/code&gt; relationships as well as &lt;code&gt;is a&lt;/code&gt; (inheritance) relationships .&lt;/p&gt;&#xA;" OwnerUserId="5536" LastEditorUserId="5536" LastEditorDisplayName="" LastEditDate="2010-12-21T17:44:44.590" LastActivityDate="2010-12-21T17:44:44.590" />
  <row Id="28775" PostTypeId="2" ParentId="28579" CreationDate="2010-12-21T17:44:41.200" Score="5" ViewCount="" Body="&lt;p&gt;If you really want to find humility, forget about competition.  It's the essence of pride: &quot;I want to be better than you.&quot;  That's a part of human nature, and you've really gotta work on consciously recognizing it and eliminating it from your thought patterns and your actions.  Instead, learn to recognize the strengths of others, especially those you might feel an urge to compete against, such as coworkers, and try to value them for the contributions they can bring to the team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Turn your competitive instincts inwards, instead.  Replace &quot;I want to be better than you&quot; with &quot;I want to be better than I was yesterday.&quot;  Try to be as brutally honest as you can in your assessment of how you're doing at that, and you'll find humility in no time flat. ;)&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-21T17:44:41.200" CommentCount="2" />
  <row Id="28777" PostTypeId="2" ParentId="27195" CreationDate="2010-12-21T17:54:03.553" Score="0" ViewCount="" Body="&lt;p&gt;I'm not sure we'll be seeing an 'online editor' anytime soon. By that I mean a site that is simply an instance of an editor like emacs. That sounds too generic, at least for the time being.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I believe will happen is a transition from desktop IDEs to online IDEs, hybrid at first then fully online. I can see that happening sooner on specific niches (e.g. web development) with one or two supported technologies and then slowly expanding to support more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you can see today is editors like CodeMirror and EditArea embedded in a couple of sites. There are more editors but I'm not sure there is a clear winner so far. Here's an example: &lt;a href=&quot;http://code.google.com/apis/ajax/playground/&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/apis/ajax/playground/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11219" LastActivityDate="2010-12-21T17:54:03.553" />
  <row Id="28778" PostTypeId="2" ParentId="28642" CreationDate="2010-12-21T18:02:31.020" Score="28" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Nobody over 25 can program effectively&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's probably based on the fact that teenagers are good at all-nighters, which seems to outsiders like an incredibily efficient way to program.&lt;/p&gt;&#xA;" OwnerUserId="11222" LastActivityDate="2010-12-21T18:02:31.020" CommunityOwnedDate="2011-01-07T06:47:37.693" CommentCount="4" />
  <row Id="28779" PostTypeId="2" ParentId="28764" CreationDate="2010-12-21T18:04:16.680" Score="1" ViewCount="" Body="&lt;p&gt;Techologies come and go. Today you can pick Java or Net, but tomorrow they will be replaced by some hot new tech. My advice is to focus on learning to learn. Java and Net aren't that much different after all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;J2EE is just a set of tools, containing more stuff than you will ever use on an average project. Some of them are: JSP, JSF, SERVLETS, JDBC, JUnit, JBPM. On top of that there are Web Frameworks, like Struts, Spring MVC, Seam. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hibernate is an &lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software&quot; rel=&quot;nofollow&quot;&gt;ORM&lt;/a&gt;, much like Propel or Doctrine for PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, just like Apache for running PHP scripts, you need an Application Server to actually run the applications. JBoss and Tomcat are just two of them, but there are more, ie GlassFish.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, Maven is a better Ant. Their purpose is to have a consistent way of building the source code of your project while you work on a team. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't need to learn all of them.&lt;/p&gt;&#xA;" OwnerUserId="8140" LastActivityDate="2010-12-21T18:04:16.680" />
  <row Id="28780" PostTypeId="1" AcceptedAnswerId="28782" CreationDate="2010-12-21T18:11:01.527" Score="1" ViewCount="117" Body="&lt;p&gt;I have a personal project that I'm working on although it's quite audio and graphic-intense and I was wondering if you guys had any suggestions or solutions as to how one could keep the size and memory-usage of their application to a minimum? My application is an iPhone application and, as Apple always make clear, the application is only allowed to use a certain amount of memory (in terms of performance and actual size).&lt;/p&gt;&#xA;" OwnerUserId="10964" LastActivityDate="2010-12-21T18:24:01.850" Title="How do you keep the size of your application down (memory usage and physical storage size)?" Tags="&lt;iphone&gt;" AnswerCount="2" />
  <row Id="28781" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T18:14:10.850" Score="2" ViewCount="" Body="&lt;p&gt;code in your native language (not english), write documentation in your native language. And then outsource the project to an indian company. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's evil for you!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ps: for the record, it happened, and the indians didn't found it very funny.&lt;/p&gt;&#xA;" OwnerUserId="11019" LastActivityDate="2010-12-21T18:14:10.850" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="1" />
  <row Id="28782" PostTypeId="2" ParentId="28780" CreationDate="2010-12-21T18:14:29.877" Score="1" ViewCount="" Body="&lt;p&gt;Start looking for more compression using other formats when dealing with audio and video. Also images tend to have compressed version like jpeg. But if your application need multimedia, it will be quite heavy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also maybe try asking the same on stackoverflow forums, there you may find a more expert solution&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-21T18:14:29.877" />
  <row Id="28783" PostTypeId="2" ParentId="28579" CreationDate="2010-12-21T18:15:38.460" Score="0" ViewCount="" Body="&lt;p&gt;Unless you write perfect code, every day, you should already have a constant reminder not to be arrogant. Bugs trump ego.&lt;/p&gt;&#xA;" OwnerUserId="11224" LastActivityDate="2010-12-21T18:15:38.460" />
  <row Id="28784" PostTypeId="2" ParentId="28458" CreationDate="2010-12-21T18:21:17.113" Score="1" ViewCount="" Body="&lt;p&gt;We've had good experience with Rackspace so far.  Everything is virtual and in our control. We can add servers as we need them.&lt;/p&gt;&#xA;" OwnerUserId="9987" LastActivityDate="2010-12-21T18:21:17.113" />
  <row Id="28785" PostTypeId="2" ParentId="28525" CreationDate="2010-12-21T18:23:48.560" Score="0" ViewCount="" Body="&lt;p&gt;In some areas it adds clarity. Heavily nested loops and/or conditionals are hard for a human to read even if you have decent tools and the code is properly indented. For large bulky routines, gotos for code blocks that are multiple pages of text apart make understanding easier at least to my decades of Fortran trained mind. They key is to use them sparingly. Modern lanquages (mostly) give you a choice as to which method to use. Absolutism just gets in the way of making judgements about which implementations are more appropriate for a given situation.&lt;/p&gt;&#xA;" OwnerUserId="8890" LastActivityDate="2010-12-21T18:23:48.560" CommunityOwnedDate="2011-01-09T16:41:54.697" />
  <row Id="28786" PostTypeId="2" ParentId="28780" CreationDate="2010-12-21T18:24:01.850" Score="0" ViewCount="" Body="&lt;p&gt;only load in memory what you are actively using, when done, release the resource, to free memory.&lt;/p&gt;&#xA;" OwnerUserId="11019" LastActivityDate="2010-12-21T18:24:01.850" />
  <row Id="28787" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T18:31:43.057" Score="25" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Is anything in programming truly evil?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Absolutely.  Failure to use your brain and think about what you're doing and why you're doing it is the root of &lt;em&gt;all&lt;/em&gt; programming evil.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="11225" LastActivityDate="2010-12-21T18:31:43.057" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="2" />
  <row Id="28788" PostTypeId="1" AcceptedAnswerId="28841" CreationDate="2010-12-21T18:33:17.643" Score="8" ViewCount="540" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/33816/how-to-recognize-a-good-programmer&quot;&gt;How to recognize a good programmer?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I'm looking for traits and abilities that tell if someone is a good programmer. personality traits are greatly appreciated.&lt;/p&gt;&#xA;" OwnerUserId="11019" LastActivityDate="2010-12-21T22:22:09.100" ClosedDate="2011-01-30T23:32:46.300" Title="How to identify a good programmer." Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="10" CommentCount="3" FavoriteCount="1" />
  <row Id="28789" PostTypeId="2" ParentId="4127" CreationDate="2010-12-21T18:33:40.640" Score="1" ViewCount="" Body="&lt;p&gt;I have learnt C before I've learnt Objective-C and I agree with each and every person that says you should start with Objective-C. I have found that learning C gets you in the wrong mindset as C is a procedural language. I had so many problems getting my head around encapsulation due to my C-oriented mindset - if you do go and look at encapsulation you'll notice it's not that hard to understand; just try to think of it in terms of accessing data via the procedural means - not good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend Programming in Objective-C 2.0 although in February the author is releasing the third edition (finally) that'll undoubtedly include more current applications, IDEs and whatever so it's up to you if you wait but I'm pretty sure the concepts will be more than understandable if you got it today.&lt;/p&gt;&#xA;" OwnerUserId="10964" LastActivityDate="2010-12-21T18:33:40.640" />
  <row Id="28790" PostTypeId="2" ParentId="28757" CreationDate="2010-12-21T18:34:37.283" Score="0" ViewCount="" Body="&lt;p&gt;I like:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596510373&quot; rel=&quot;nofollow&quot;&gt;Programming WPF&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/f92Ox.jpg&quot; alt=&quot;Programming WPF&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check out the recommendations on Amazon.com to get a feel for any book.&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-12-21T18:34:37.283" />
  <row Id="28791" PostTypeId="1" CreationDate="2010-12-21T18:36:46.627" Score="3" ViewCount="101" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I created a web app a while ago and would like a few people to test it, and this is the only place I could think of. Not advertising by any means.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://glorb.info&quot; rel=&quot;nofollow&quot;&gt;http://glorb.info&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Allows you to share content called &quot;Glorbits&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're wondering why it might be a little weird/unprofessional, I'm only 15 years old.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also like some feedback/opinions.&lt;/p&gt;&#xA;" OwnerUserId="8682" LastEditorUserId="8682" LastEditorDisplayName="" LastEditDate="2010-12-21T18:43:04.143" LastActivityDate="2010-12-21T18:55:13.917" ClosedDate="2010-12-21T18:55:46.147" Title="Test my web app?" Tags="&lt;testing&gt;&lt;project&gt;&lt;personal-projects&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="1" />
  <row Id="28792" PostTypeId="2" ParentId="28757" CreationDate="2010-12-21T18:39:15.483" Score="1" ViewCount="" Body="&lt;p&gt;SO had this discussion, which is still relevant: &lt;a href=&quot;http://stackoverflow.com/questions/9591/what-wpf-books-would-you-recommend&quot;&gt;http://stackoverflow.com/questions/9591/what-wpf-books-would-you-recommend&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-21T18:39:15.483" />
  <row Id="28793" PostTypeId="2" ParentId="28764" CreationDate="2010-12-21T18:40:29.553" Score="0" ViewCount="" Body="&lt;p&gt;Without trying to sound trite, I would suggest that actually the biggest difference for yourself based on your experience may be learning about &lt;em&gt;programming in the large&lt;/em&gt;, or &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201633620&quot; rel=&quot;nofollow&quot;&gt;large scale&lt;/a&gt; (enterprise) development. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the Java tools mentioned are indicative of large, complex, &lt;a href=&quot;http://java.sun.com/j2ee/overview.html&quot; rel=&quot;nofollow&quot;&gt;enterprise-scale&lt;/a&gt; systems. And I expect they might actually have software systems that use all those resources. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The trick is that many of their developers have a general or basic understanding of all those various bits, yet may be most proficient (productive) in only a few of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also understand the theory or principles, beyond just the tools. This is the different between &lt;em&gt;learning Java&lt;/em&gt; and learning about object-oriented programming language, memory management approaches, virtual machines, byte-code, just-in-time compilers, etc. The tools, any tools (PDP-11, System V, &lt;a href=&quot;http://en.wikipedia.org/wiki/Mode_X&quot; rel=&quot;nofollow&quot;&gt;ModeX&lt;/a&gt;, XOR AX, AX) will become dated, but the theory and principles remain the same (i.e. virtual machines, parallel programming were original hot many decades ago).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best of luck!&lt;/p&gt;&#xA;" OwnerUserId="11206" LastActivityDate="2010-12-21T18:40:29.553" />
  <row Id="28794" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T18:40:48.840" Score="0" ViewCount="" Body="&lt;p&gt;Programming, per se, I think, is not inherently evil. However, programming is very often a social activity, and disrespecting those around you can be very evil. People often forget that most code is going to be shared with others; mostly read, sometimes written too. Be it open source, a product that a company is releasing, or a small piece of patching up a consultant is hired for, programs are going to be read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's half the reason why so many &quot;considered harmful&quot; articles exist, or why people say &quot;never&quot;. Making life difficult for others is the very root of all evil. Isn't it?&lt;/p&gt;&#xA;" OwnerUserId="11145" LastActivityDate="2010-12-21T18:40:48.840" CommunityOwnedDate="2010-12-21T23:21:19.143" />
  <row Id="28795" PostTypeId="2" ParentId="28788" CreationDate="2010-12-21T18:42:02.443" Score="13" ViewCount="" Body="&lt;p&gt;Ask him (or her) to write some code.  See what happens.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask him (or her) to bring a sample of their code.  Don't worry about cheating, just see if they can talk intelligently about the code.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-12-21T18:42:02.443" CommentCount="1" />
  <row Id="28796" PostTypeId="2" ParentId="28788" CreationDate="2010-12-21T18:42:09.197" Score="1" ViewCount="" Body="&lt;p&gt;Try looking for a bad programmer working in a dev-team where the project product works smoothly and then you'll find a good programmer behind it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the best programmer are the ones that manage to work as a team and help things work out. And if you find someone with those skills and also do it fast, then you'll have found the very best one.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-21T18:42:09.197" />
  <row Id="28797" PostTypeId="2" ParentId="28788" CreationDate="2010-12-21T18:43:19.187" Score="4" ViewCount="" Body="&lt;p&gt;There's no hard and fast rules, thus the difficulties had by many interviewers. With that said, there are a number of traits that the programming community &lt;em&gt;seems&lt;/em&gt; to have converged on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My perspective on the discussions I've had with others in-person and online, in order of importance are as follows:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Curiosity&lt;/li&gt;&#xA;&lt;li&gt;Passion for solving problems&lt;/li&gt;&#xA;&lt;li&gt;Self-motivation&lt;/li&gt;&#xA;&lt;li&gt;Laziness&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-21T18:43:19.187" CommentCount="1" />
  <row Id="28798" PostTypeId="2" ParentId="4127" CreationDate="2010-12-21T18:44:41.460" Score="0" ViewCount="" Body="&lt;p&gt;I started by learning C first, then C++ to learn OOP. Finally I learned Objective-C shortly after. Strong knowledge in object oriented programming is helpful.&lt;/p&gt;&#xA;" OwnerUserId="8682" LastActivityDate="2010-12-21T18:44:41.460" />
  <row Id="28799" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T18:44:56.653" Score="0" ViewCount="" Body="&lt;p&gt;Nothing is really evil not even weapons, yet we sometimes consider them as such. However with weapons we usually have a certain level of respect, we are very much aware of their danger and use them with caution; however there are still people too stupid to use them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same applies to any tool, the more difficult the consequences of abusing those tools are, the more likely people are abusing them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In programming everything is more or less virtual, a program is a representation of our thought process and the long term consequences of not understanding something entirely or getting it slightly wrong are a lot harder to determine, then the immediate danger of death we are faced with when handling a gun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This makes the tools we use and have at our disposal a lot harder to use but it also gives us an easy way to measure the skill of a programmer. The knowledge of when and how to use the tools you have is crucial to become a good programmer. You can always play it safe by restricting the set of tools but just to the guy to whom everything looks like a nail, eventually you will encounter something that no amount of hitting will fix.&lt;/p&gt;&#xA;" OwnerUserId="3088" LastActivityDate="2010-12-21T18:44:56.653" CommunityOwnedDate="2010-12-21T23:21:19.143" />
  <row Id="28800" PostTypeId="2" ParentId="28764" CreationDate="2010-12-21T18:46:43.797" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The short answer:&lt;/strong&gt; You don't have to know everything in the entire stack.  It helps to become familiar enough with the name to know what it is and what problem it is supposed solve--but you don't have to &lt;em&gt;know&lt;/em&gt; it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Longer answer:&lt;/strong&gt;  Java's been around a lot longer than C#, so it's going to have more things.  C# has the benefit of learning from the (mis)steps that Java has taken, so it has optimized out some of the things you would possibly need to know in Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I've been programming Java for more than a decade, writing web applications and even a couple desktop apps.  Some things in the Java stack I've never used.  For example J2EE includes a long laundry list of component technologies from Servlets to Enterprise JavaBeans, and other connecting technologies.  While I used Servlets the entire time, as well as a few web frameworks built on top of that (in your list STRUTS, JSF, and Spring MVC are all equivalent technologies), I've never had to touch EJBs.  I hope I never need to in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd know what it's for, but don't waste your time if you aren't going to be using it for something.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-21T18:46:43.797" />
  <row Id="28801" PostTypeId="2" ParentId="28788" CreationDate="2010-12-21T18:46:49.920" Score="0" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/nOzem.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...just kidding...kind of.  Actually I've &lt;em&gt;never&lt;/em&gt; seen a programmer stereotype.  I've seen great programmers which were bodyguards/weightlifters, some that were the laziest sacks you ever saw but could code like no tomorrow, and then some that were oddly clean cut.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you've got the &lt;a href=&quot;http://blogs.microsoft.co.il/blogs/tamir/archive/2008/04/28/computer-languages-and-facial-hair-take-two.aspx&quot; rel=&quot;nofollow&quot;&gt;facial hair problem.&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;It's all about the drive to get things done, and get them done in your way.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-12-21T18:46:49.920" />
  <row Id="28802" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T18:48:51.043" Score="4" ViewCount="" Body="&lt;p&gt;I dislike the term 'smart' as it is a subjective term with no true definition. Nonetheless...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers are skilled logical problem solvers and abstract thinkers.  These qualities are generally associated with &quot;smart&quot; individuals. I like to think we are also inquisitive, whether by nature or occupational conditioning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are generic traits that are often exposed beyond our occupation into everyday life, which is why we appear &quot;smart&quot;. In many other occupations, individuals are taught very specific information and skills that are difficult to use beyond their workplace.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I think our jobs do require us to learn more on a regular basis, and at a younger age, causing us to form many more synapses in our brain than an average person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Point of interest - Synapses stop forming in our brains in early adult-hood. You will have as many (or more - synapses can die) by the time you are ~25 as you will when you are 40.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="7048" LastActivityDate="2010-12-21T18:48:51.043" CommentCount="1" />
  <row Id="28803" PostTypeId="2" ParentId="28764" CreationDate="2010-12-21T18:50:09.513" Score="1" ViewCount="" Body="&lt;p&gt;I once remember reading a job advertisement asking for a .NET developer with 5+ years experience, when .NET was only 3 years old.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the cost of trying to sound like a broken record, &quot;Technologies change. The underlying concepts rarely do.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most good software companies, be it Fog Creek, or Google, hire people who have no experience of the main language they use. The decision to hire is made purely based on the candidate's ability to think.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If all these &quot;buzzwords&quot; in advertisements bother you, I suggest you pick up one of the two languages[1], and learn how to think in them. What the language offers you today, will be the very thing tying you down tomorrow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[1]: If I had to pick one, it would be Java, given that it has existed for longer, and has a decent community built around it. Having said that, C# has been expanding along nicely, whereas Java (as a language) is developing a lot more slowly.&lt;/p&gt;&#xA;" OwnerUserId="11145" LastActivityDate="2010-12-21T18:50:09.513" />
  <row Id="28804" PostTypeId="2" ParentId="28791" CreationDate="2010-12-21T18:50:57.853" Score="0" ViewCount="" Body="&lt;p&gt;I like the idea, it really is 'content sharing simplified'. You say your only 15? I think this is quite impressive for a 15 year old to have developed. I'm not sure you're going to get many people here to test it though. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What about enlisting some friends on facebook etc. or family to test it? On the other hand, this should be a good place to get feedback, we were all young at some point, and personally, I wish a community like this existed when I was 15.&lt;/p&gt;&#xA;" OwnerUserId="1293" LastActivityDate="2010-12-21T18:50:57.853" CommentCount="1" />
  <row Id="28805" PostTypeId="2" ParentId="28791" CreationDate="2010-12-21T18:52:04.920" Score="0" ViewCount="" Body="&lt;p&gt;While your minimalistic design is attractive and appealing, you need to explain to the visitor what a Glorbit is. You invite us to go about creating a Glorbit when we don't have any idea what one is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The About link is broken.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After I click on the 'my gloribts' link, that link becomes the word 'foo'. What?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The big 'Glorb' logo at the top of every page desperately wants to be a link to your index page.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-12-21T18:52:04.920" CommentCount="1" />
  <row Id="28806" PostTypeId="2" ParentId="28788" CreationDate="2010-12-21T18:52:13.860" Score="-1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The ability to ask good questions on Stack Exchange sites.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-12-21T18:52:13.860" CommentCount="2" />
  <row Id="28807" PostTypeId="2" ParentId="28788" CreationDate="2010-12-21T18:53:28.570" Score="6" ViewCount="" Body="&lt;p&gt;Ask what programming projects they work on in their spare time.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-21T18:53:28.570" CommentCount="3" />
  <row Id="28808" PostTypeId="2" ParentId="28788" CreationDate="2010-12-21T18:55:04.660" Score="0" ViewCount="" Body="&lt;p&gt;Most people seem to agree that &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the ability to think mathematically, &lt;/li&gt;&#xA;&lt;li&gt;knowing when to think before coding, &lt;/li&gt;&#xA;&lt;li&gt;and knowing when to just bulldoze straight ahead with little thought &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;characterize a good programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have seen that all three often imply a very good programmer, but the converse isn't true. There are people who are just extremely good, without having more than two of these.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then again, there's jwz. :-)&lt;/p&gt;&#xA;" OwnerUserId="11145" LastActivityDate="2010-12-21T18:55:04.660" />
  <row Id="28809" PostTypeId="2" ParentId="28791" CreationDate="2010-12-21T18:55:13.917" Score="0" ViewCount="" Body="&lt;p&gt;it does the same thing as tinyurl/bit.ly etc etc ? Looks nice, and impressive for someone so young.&lt;/p&gt;&#xA;" OwnerUserId="2297" LastActivityDate="2010-12-21T18:55:13.917" CommentCount="1" />
  <row Id="28810" PostTypeId="2" ParentId="28642" CreationDate="2010-12-21T18:55:28.560" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Once you learn &lt;code&gt;language&lt;/code&gt; [commonly C++], all other languages are trivial to learn&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have never met a university professor who didn't genuinely believe that this statement was true. I've argued it till I was blue in the face, but they have all been insistent that the language is a simple implementation detail, and are as such, interchangeable.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-21T18:55:28.560" CommunityOwnedDate="2011-01-07T06:47:37.693" CommentCount="8" />
  <row Id="28811" PostTypeId="2" ParentId="4127" CreationDate="2010-12-21T18:56:36.600" Score="0" ViewCount="" Body="&lt;p&gt;Whenever you want to learn language X for a purpose, do it.  I haven't seen a case where it's a good idea to learn a similar language first and transition from there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to learn Objective-C, C++, C#, D, or Java, don't learn C first to make it easier.  You'll learn practices that are excellent C and bad in the other languages, and anything useful you learned with C you will learn along with the language you actually want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's probably a good thing to learn C sometime, but that's for the educational value, not as a stepping-stone to other languages.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-21T18:56:36.600" />
  <row Id="28812" PostTypeId="1" CreationDate="2010-12-21T19:01:13.750" Score="3" ViewCount="212" Body="&lt;p&gt;I have just started learning jQuery and what I've found is that there are tutorials for the basics and copy-paste tutorials for premade plugins, but nothing on how to get to that advanced level that I have found. What would you recommend as a way to learn jQuery?&lt;/p&gt;&#xA;" OwnerUserId="11230" LastActivityDate="2010-12-21T20:06:16.127" Title="What's the best way to learn jQuery?" Tags="&lt;jquery&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="2" />
  <row Id="28813" PostTypeId="2" ParentId="28812" CreationDate="2010-12-21T19:03:23.000" Score="2" ViewCount="" Body="&lt;p&gt;The best way?  Use it in an actual project.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-21T19:03:23.000" />
  <row Id="28814" PostTypeId="2" ParentId="28812" CreationDate="2010-12-21T19:05:05.677" Score="5" ViewCount="" Body="&lt;p&gt;Learn javascript first, then you'll gain an understanding of how jquery works.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-21T19:05:05.677" CommentCount="1" />
  <row Id="28815" PostTypeId="2" ParentId="28579" CreationDate="2010-12-21T19:05:19.580" Score="3" ViewCount="" Body="&lt;p&gt;How about if you give everybody a break and simply stop thinking about yourself so much?&lt;/p&gt;&#xA;" OwnerUserId="2268" LastActivityDate="2010-12-21T19:05:19.580" CommentCount="1" />
  <row Id="28816" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T19:07:09.597" Score="20" ViewCount="" Body="&lt;p&gt;Empty generic exception handlers i.e. :&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;catch(Exception ex)&#xA;{&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I don't doubt that someone can give me a valid use case - but, to be honest, its going to be seriously creative... and at the very least you need an explanation.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-12-21T19:07:09.597" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="9" />
  <row Id="28817" PostTypeId="2" ParentId="27491" CreationDate="2010-12-21T19:09:10.027" Score="1" ViewCount="" Body="&lt;p&gt;Black box testing, because you are writing tests before the code exists.  The tester needs to be developing time-consuming automatic tests in parallel with the developer writing code to be efficient on a small team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the code is already written, I would suggest you spend some time sketching out test coverage from a black-box point of view to make sure you get some time brainstorming before you clutter your brain with the actual code.  However, you can then switch to white-box and look at the code before you get too far along with actual testing to get a feel for the risky areas and to prioritize those tests you brainstormed earlier (and augment them with new tests thought up by looking at parts of the code that seem complicated or questionable).&lt;/p&gt;&#xA;" OwnerUserId="8888" LastActivityDate="2010-12-21T19:09:10.027" />
  <row Id="28818" PostTypeId="2" ParentId="28812" CreationDate="2010-12-21T19:10:36.720" Score="1" ViewCount="" Body="&lt;p&gt;Think of something interesting that you wish to make (a tab navigator, accordion, drag and drop boxes, whatever) and go for it. Keep an eye on the the &lt;a href=&quot;http://api.jquery.com/&quot; rel=&quot;nofollow&quot;&gt;api&lt;/a&gt; and become best friends with it. If you get stuck, take a look at the plethora of pre-built options for guidance.&lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2010-12-21T19:10:36.720" />
  <row Id="28819" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T19:10:58.950" Score="2" ViewCount="" Body="&lt;p&gt;Well, I thought Microsoft is/was considered evil and now recently &lt;a href=&quot;http://nighthacks.com/roller/jag/entry/the_shit_finally_hits_the&quot; rel=&quot;nofollow&quot;&gt;Oracle is the most evil thing in the world&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2719" LastActivityDate="2010-12-21T19:10:58.950" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="1" />
  <row Id="28820" PostTypeId="2" ParentId="11575" CreationDate="2010-12-21T19:24:24.620" Score="1" ViewCount="" Body="&lt;p&gt;Our team uses 3x5 cards of various colors taped to a whiteboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's big and visible, and extremely flexible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The documentation that we leave behind is a comprehensive set of unit, integration, and functional tests that explain what the software does, and demonstrate that it works.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-12-21T19:31:49.403" LastActivityDate="2010-12-21T19:31:49.403" />
  <row Id="28821" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T19:25:36.817" Score="1" ViewCount="" Body="&lt;p&gt;The only thing 'evil' is thinking that certain programming things are 'evil'.  Various approaches - use this technique, dont use that statement, use this methodology, dont use that language, use this 'best practice', etc - are &lt;strong&gt;opinions&lt;/strong&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, too many developers mistake &lt;strong&gt;opinions&lt;/strong&gt; for &lt;strong&gt;objective truth&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I cringe every time I see a question on here such as 'why is [x] considered evil?'. &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-21T19:25:36.817" CommunityOwnedDate="2010-12-21T23:21:19.143" />
  <row Id="28822" PostTypeId="2" ParentId="28812" CreationDate="2010-12-21T19:32:20.970" Score="1" ViewCount="" Body="&lt;p&gt;Step 1: write some jQuery.&#xA;Step 2: have someone who knows jQuery look at it.&#xA;Step 3: rinse, repeat.&lt;/p&gt;&#xA;" OwnerUserId="9475" LastActivityDate="2010-12-21T19:32:20.970" />
  <row Id="28823" PostTypeId="2" ParentId="28812" CreationDate="2010-12-21T19:33:42.467" Score="3" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/36XQT.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;jQuery in Action, Second Edition has the best real-world, advanced examples I have seen for learning an implementing jQuery.  Between trying to use jQuery yourself and reading this book, you will have a good foundation of jQuery knowledge.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-21T19:33:42.467" />
  <row Id="28824" PostTypeId="2" ParentId="28603" CreationDate="2010-12-21T19:34:15.990" Score="2" ViewCount="" Body="&lt;p&gt;Hmm, the current answers center too much on technical aspects, and the readability pros/cons (which &lt;em&gt;is&lt;/em&gt; an important point). So let me try to shift it a bit more onto the PHP environment/community:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PHP is Perls little &lt;strong&gt;stepsister&lt;/strong&gt;. And an integral part of Perl are regular expressions (they invented that stuff, didn't they?). Therefore it's one cause why regexps are pervasive in PHP too.&lt;/li&gt;&#xA;&lt;li&gt;The &lt;strong&gt;use case&lt;/strong&gt; of PHP is coincidentally not much unlike the use case for regular expressions. PHP is structurally used for glueing together HTML pages. And regexps work on text. (what WReach said)&lt;/li&gt;&#xA;&lt;li&gt;Micro &lt;strong&gt;optimization&lt;/strong&gt;. As mentioned before: people use regexps and/or PHP string functions frequently after perceived speed. A core problem in PHP circles, not specific to regexps.  &lt;/li&gt;&#xA;&lt;li&gt;Regular expressions are &lt;strong&gt;built-in&lt;/strong&gt;. In Python, in Java, in C#, in Ruby? there is availability, but a deterrent in having to load an extra module. And see how in PHP or Javascript where it's a core feature, the usage pattern differs. Another exhibit: CSS where it's getting more frequently used.&lt;/li&gt;&#xA;&lt;li&gt;The &lt;strong&gt;PHP manual&lt;/strong&gt; is at fault. It often is. Regular expressions are easily discoverable, and I postponed this fun fact because it's boring in its obviousness: all the damn tutorials and PHP introduction books always teach about regular expressions, but &lt;strong&gt;fail to educate&lt;/strong&gt; on use cases.&lt;/li&gt;&#xA;&lt;li&gt;The &lt;strong&gt;string API&lt;/strong&gt; in PHP was designed by the same people that brought you magic quotes and the namespace \ separator. It's encompassing, better than Java, but not glamorous in its entirety. Particularily if strings could double as objects (see Python), string functions might outdo regexps.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But that just as side notes. I believe it's anyway mostly perceptional and technical reasons that lead to overuse and/or shunning regular expressions in general. Yet PHP and its userbase has a few properties which compound it, and why we see more questions on SO about it [citation needed!] and they are &quot;morbidly attractive&quot; there.&lt;/p&gt;&#xA;" OwnerUserId="1245" LastActivityDate="2010-12-21T19:34:15.990" />
  <row Id="28825" PostTypeId="1" CreationDate="2010-12-21T19:44:38.717" Score="5" ViewCount="206" Body="&lt;p&gt;I have a library for &lt;a href=&quot;http://cran.r-project.org/&quot; rel=&quot;nofollow&quot;&gt;R (open source statistics package)&lt;/a&gt; mapped out on paper. I have started coding the different functions but I realize that I don't have the time needed to finish this in a reasonable amount of time. I know I can just throw the code up on a repo and call for others to help fill in the blanks. But I'd like to incentivize things a bit. I'm thinking about putting a bounty on each function of, say, $5-$20. There's no way that $20 would be a fair return on time for a developer to code each function. But my thought is that the cash (or Amazon gift certificates) would be an inventive for people to actually work on the project. And it would allow me to put higher bounties on the functions I am most interested in. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a few questions related to this:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Good idea? &lt;/li&gt;&#xA;&lt;li&gt;I going to make&#xA;the development work faster, or&#xA;slower? I've read &lt;a href=&quot;http://amzn.to/dQRCIb&quot; rel=&quot;nofollow&quot;&gt;Predictably&#xA;Irrational&lt;/a&gt; and I'm concerned&#xA;that by offering menial pay for&#xA;functions I might actually&#xA;disincentive developers. &lt;/li&gt;&#xA;&lt;li&gt;Are&#xA;there sites devoted to this type of&#xA;activity? Can you recommend one based on personal experience? &lt;/li&gt;&#xA;&lt;li&gt;Would you recommend a totally different approach? I'm open to ideas! &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="11232" LastEditorUserId="11232" LastEditorDisplayName="" LastEditDate="2010-12-21T20:03:15.307" LastActivityDate="2010-12-21T21:23:35.453" Title="Open Source code bounties" Tags="&lt;open-source&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="2" />
  <row Id="28827" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T19:51:48.247" Score="3" ViewCount="" Body="&lt;p&gt;Easy, IBM Rational ClearCase is an atrocity.&lt;/p&gt;&#xA;" OwnerUserId="4730" LastActivityDate="2010-12-21T19:51:48.247" CommunityOwnedDate="2010-12-21T23:21:19.143" />
  <row Id="28828" PostTypeId="2" ParentId="28651" CreationDate="2010-12-21T19:52:08.480" Score="0" ViewCount="" Body="&lt;p&gt;Just hang out with &lt;a href=&quot;http://stackoverflow.com/tags/c%2b%2b/topusers&quot;&gt;these users&lt;/a&gt;. Offer them a beer or two. Read their posts. Ask them questions.&lt;/p&gt;&#xA;" OwnerUserId="2536" LastActivityDate="2010-12-21T19:52:08.480" />
  <row Id="28829" PostTypeId="2" ParentId="28788" CreationDate="2010-12-21T19:54:26.020" Score="1" ViewCount="" Body="&lt;p&gt;I'd be tempted to walk through a practice problem at a high level and see what happens.  Do they know various algorithm ideas for solving a problem?  How to clarify the problem as most times when someone wants something there are lots of odd cases that may appear in even the easiest of programs such as writing a program to convert metric to imperial or vice versa.  There are a few response to notice:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Google can already do some conversions.  In this case you could claim some fictitious unit that Google can't handle and see what happens as some may think, &quot;Aah, this will get me out of this,&quot; that doesn't work.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do they leap into wanting to write code?  Do they cover odd cases like if someone enters X into the program?  Do they cover if this is a web form, console application, windows application, mobile application or something else?  These are all notes in terms of assumptions to watch.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The key here is to notice tones in communication and what is asked, how is it asked and why was that asked.  Is there confidence and enthusiasm?  Do they seem to have a decent answer in the end in terms of a plan?  Those are what I'd watch as this is more about general strategy than specific points to my mind.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-21T19:54:26.020" />
  <row Id="28830" PostTypeId="2" ParentId="28603" CreationDate="2010-12-21T19:55:01.317" Score="0" ViewCount="" Body="&lt;p&gt;Regular expressions are very attractive because they wield power.  You can do a very complicated piece of work in very few characters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is that the standard regular expression construct is &lt;em&gt;not&lt;/em&gt; Turing-complete which means that there are programs you simply cannot implement with a regular expression, and people don't &lt;em&gt;KNOW&lt;/em&gt; that when they are lured by the apparent power of regular expressions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This - I guess - is the reason for the jwz-quote of &quot;now they have &lt;em&gt;two&lt;/em&gt; problems&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would &lt;em&gt;guess&lt;/em&gt; that Perl regular expressions are Turing-complete, but apparently it has not been decisively proved or disproved yet.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-21T19:55:01.317" />
  <row Id="28831" PostTypeId="2" ParentId="880" CreationDate="2010-12-21T19:57:26.780" Score="0" ViewCount="" Body="&lt;p&gt;Here's my rig:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Dell Precision M4400 Laptop&lt;/li&gt;&#xA;&lt;li&gt;8gb Memory&lt;/li&gt;&#xA;&lt;li&gt;256gb SSD, 500gb SATA&lt;/li&gt;&#xA;&lt;li&gt;Intel Core2 Extreme x9100 3.06gHz&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Dual monitor setup at office, 2x 28inch 1920x1600&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can comfortably run host and 2 VM's with it. Good for mostly anything I want to do.&lt;/p&gt;&#xA;" OwnerUserId="7380" LastActivityDate="2010-12-21T19:57:26.780" CommunityOwnedDate="2011-02-06T19:45:08.167" />
  <row Id="28832" PostTypeId="2" ParentId="11575" CreationDate="2010-12-21T20:00:28.083" Score="0" ViewCount="" Body="&lt;p&gt;Google Wave is a good solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is version controlled, multiuser, remotely hosted, free, you can color code, make diagrams, export documents etc...&lt;/p&gt;&#xA;" OwnerUserId="3139" LastActivityDate="2010-12-21T20:00:28.083" CommentCount="4" />
  <row Id="28833" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T20:05:45.613" Score="1" ViewCount="" Body="&lt;p&gt;Being a software developer makes you smarter.&lt;/p&gt;&#xA;" OwnerUserId="3139" LastActivityDate="2010-12-21T20:05:45.613" CommentCount="3" />
  <row Id="28834" PostTypeId="1" CreationDate="2010-12-21T20:05:49.533" Score="3" ViewCount="416" Body="&lt;p&gt;I'm currently studying Latin at school, and what I've learned is that it's a very logical language, unlike, e.g. English. To me, I think this has contributed to my programming ability—it makes it easier for me to understand my code. Have any of you studied Latin (or another very logical language), and if so, do you also feel it helped you as a programmer?&lt;/p&gt;&#xA;" OwnerUserId="3952" LastActivityDate="2011-01-11T17:54:57.480" Title="Does knowing Latin or other logical languages contribute to being a better programmer?" Tags="&lt;spoken-languages&gt;" AnswerCount="13" CommentCount="3" FavoriteCount="2" />
  <row Id="28835" PostTypeId="2" ParentId="28812" CreationDate="2010-12-21T20:06:16.127" Score="1" ViewCount="" Body="&lt;p&gt;Take a look at &lt;a href=&quot;http://visual.jquery.com&quot; rel=&quot;nofollow&quot;&gt;visual.jquery.com&lt;/a&gt;. It's a few versions behind the most recent version - however it is a great reference for learning jQuery.&lt;/p&gt;&#xA;" OwnerUserId="9940" LastActivityDate="2010-12-21T20:06:16.127" />
  <row Id="28836" PostTypeId="1" CreationDate="2010-12-21T20:06:26.770" Score="0" ViewCount="167" Body="&lt;p&gt;I am using Lucene MultiFieldQueryParser and the implementation is as shown below&lt;/p&gt;&#xA;&#xA;&lt;p&gt;QueryParser parser = new MultiFieldQueryParser&#xA;(Version.LUCENE_30,new String[] {&quot;First Name&quot;,&quot;Middle Name&quot;,&quot;Last Name&quot;}, standardAnalyzer);&#xA;Query query = parser.parse(queryString); &lt;/p&gt;&#xA;&#xA;&lt;p&gt;and using it to find a match for the input string in my DB columns First Name, Middle Name and Last name . &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am able to get the hits with normal search and fuzzy search  - The only problem I am facing is finding which column of the three generated the hit - &#xA;Can you pls help me here - Thanks&lt;/p&gt;&#xA;" OwnerUserId="11236" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-23T14:56:52.127" LastActivityDate="2010-12-23T14:56:52.127" ClosedDate="2010-12-21T23:38:30.070" Title="Java Programming : Lucene MultiFieldQueryParser selcting the column that matched" Tags="&lt;java&gt;&lt;skills&gt;&lt;project&gt;" CommentCount="1" />
  <row Id="28838" PostTypeId="2" ParentId="28825" CreationDate="2010-12-21T20:12:06.777" Score="5" ViewCount="" Body="&lt;p&gt;Not a good idea, in my mind. None of the OSS programmers I know would respond to such a bounty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what does incentivize people? According to &lt;a href=&quot;http://www.danpink.com/&quot; rel=&quot;nofollow&quot;&gt;Dan Pink&lt;/a&gt; people are motivated by: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Autonomy&lt;/li&gt;&#xA;&lt;li&gt;Mastery&lt;/li&gt;&#xA;&lt;li&gt;Purpose&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Then to attract good programmers, find a way to provide some or all of those items.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A second approach that can be done concurrently with the first is to display a home page that tracks the progress of the project, showing the status of each of the functions along with the person who provided the function that first passed the unit tests (you do have tests, right?). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, it's been my experience that a compelling project doesn't need much help in attracting contributors. Take a look at what you are doing and if you are having a hard time attracting and keeping programmers to work on it, think about what that is telling you about the usefulness of your project.&lt;/p&gt;&#xA;" OwnerUserId="293" LastActivityDate="2010-12-21T20:12:06.777" CommentCount="1" />
  <row Id="28839" PostTypeId="2" ParentId="28834" CreationDate="2010-12-21T20:12:16.433" Score="15" ViewCount="" Body="&lt;p&gt;I did study Latin at school, and I speak a few Latin-derived languages. I wouldn't say that Latin is &quot;logical&quot;, not more than English. It is a natural (as opposed to constructed) language, and contains its irregularities and quirks as you would expect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, linguistics is a fascinating subject with some connections to programming and software development. Formal grammars are connected to grammar in natural languages, and you will discover more and more links as you study.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are interested in &quot;logical&quot; human languages, have a look at &quot;conlangs&quot;, or constructed languages. Some of them have been engineered to be &quot;perfectly logical&quot;, so to speak. Look &lt;a href=&quot;http://en.wikipedia.org/wiki/Conlang&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5021" LastActivityDate="2010-12-21T20:12:16.433" CommentCount="2" />
  <row Id="28840" PostTypeId="2" ParentId="28834" CreationDate="2010-12-21T20:14:16.637" Score="3" ViewCount="" Body="&lt;p&gt;Latin is a more &quot;regular&quot; language than English, in the sense that the rules are much more strictly followed. Does that make it any more &quot;logical&quot; in the sense of mathematical or programming logic? Not sure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But studying Latin definitely improved my understanding of English, my native language. And learning any other language inevitably improves your communication ability generally. I think that translates to writing computer programs as well.&lt;/p&gt;&#xA;" OwnerUserId="3264" LastActivityDate="2010-12-21T20:14:16.637" CommentCount="1" />
  <row Id="28841" PostTypeId="2" ParentId="28788" CreationDate="2010-12-21T20:18:25.993" Score="14" ViewCount="" Body="&lt;p&gt;If you're trying to hire a programmer, I really strongly recommend the &lt;a href=&quot;http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html&quot; rel=&quot;nofollow&quot;&gt;Guerilla guide to interviewing&lt;/a&gt; by Joel Spolsky. I don't entirely agree with it, but it gets you in the right mindset. It gave me a lot of inspiration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, you're looking for people who are smart and get things done. Someone who lacks the 'get things done' will be able to talk to you for days about software design, but will never actually get running code. Someone who lacks 'smart' will just produce crap code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get your programmer to do a simple task, like &quot;write a function in your favourite language that determines whether the first letter of a string is uppercase / the radius of a circle / ....&quot;. Everybody will succeed at this, if your CV filtering is good, but you will see some do it smoother than others. A little help remembering the exact formula for the radius of a circle is acceptable, but good programmers can do these excercices quickly. Obviously, they might make a small syntax error - we all do this every once in a while.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that step done, asserting that they are comfortable writing trivial code, go for something more complex. I have a section of real production code in which we've introduced several errors of varying complexity. It is very hard finding these on paper, in real life the compiler/interpreter would help you. But if somebody finds none or few, even with hints of &quot;the interpreter tells me 'invalid keyword at line X'&quot;, that is reason for doubt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also seen some more abstract questions being used. A page of code, in a language the applicant has high on their list, with a more abstract bug, like &quot;it crashes if the user enters a number greater than 4095&quot;. This will test their high-level analytical skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As suggested already, you can also ask them to bring some of their own code and guide you through that. You will usually notice some things being different from your own habits. Ask them about that. It's ok if they have different habits, it is more important that they can actually defend their choices with some passion and explain why they think what they did is right. This is part of the &quot;being smart&quot;. Be watchful of extreme arrogance though - you usually need someone who can also reach consensus with the team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All this added together should give you a good idea of the quality of the applicant. However, you didn't test one of the other important skills: picking up something unfamiliar, and working with it. Therefore, also watch the applicant carefully during their trial period, and assess whether they match the expected level.&lt;/p&gt;&#xA;" OwnerUserId="2947" LastActivityDate="2010-12-21T20:18:25.993" CommentCount="1" />
  <row Id="28842" PostTypeId="2" ParentId="28834" CreationDate="2010-12-21T20:25:54.220" Score="4" ViewCount="" Body="&lt;p&gt;If you start taking the linguistics side of computer programming too seriously you'll find yourself wanting to write a better language. &#xA;Which will require you to write a parser. &#xA;Which will then enable you to lay down language fundamentals.&#xA;Which enables you to write higher programming constructs. &#xA;Which will point out deficiencies in your language. &#xA;Which will lead to you re-writing your parser. &#xA;Which will eventually drive you insane in a quest to find a perfect expressive pattern to encapsulate an idea that would've just taken 15 min to write in VBA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, don't look that deeply into it.&lt;/p&gt;&#xA;" OwnerUserId="11238" LastActivityDate="2010-12-21T20:25:54.220" CommentCount="13" />
  <row Id="28843" PostTypeId="2" ParentId="21436" CreationDate="2010-12-21T20:28:28.340" Score="0" ViewCount="" Body="&lt;p&gt;I work in a team that does mostly development work, but is also responsible for existing complex systems. We've had this problem as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, we estimate our points based on the last sprint(s) and then reserve a number of points for the expected maintenance work. Should a maintenance task occur that exceeds this significantly, like a major outage, we add it as a user story and remove an existing one that has not started yet, to keep the sprint of the same size. If a major issue pops up that is less urgent, we move it into the next sprint.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, this is technically not following scrum. But the flexibility has worked well for us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have refined this reserved time by asking the team at every planning meeting whether they see reason to deviate from the standard reservation. We introduced this after doing an office move which took us much more time than we anticipated, leading to many stories not being finished.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, do not just stick to how my team or any other team does it. Pick something, and just do it. There is no way to ensure that it will work well for your team. Try, and evaluate in the retrospective. If the team is unhappy, try something different and evaluate again. All teams are different, and their needs and limitations are different as well.&lt;/p&gt;&#xA;" OwnerUserId="2947" LastActivityDate="2010-12-21T20:28:28.340" />
  <row Id="28844" PostTypeId="2" ParentId="28834" CreationDate="2010-12-21T20:31:13.983" Score="0" ViewCount="" Body="&lt;p&gt;At one time students who were interested in science or engineering were encouraged to take Latin as opposed to French or Spanish. I know personally I struggled with it. I can't deny that it help my vocabulary, but I can't see where it help me be a better programmer.&lt;/p&gt;&#xA;" OwnerUserId="11043" LastEditorUserId="11043" LastEditorDisplayName="" LastEditDate="2010-12-21T20:41:31.993" LastActivityDate="2010-12-21T20:41:31.993" CommentCount="5" />
  <row Id="28845" PostTypeId="2" ParentId="28834" CreationDate="2010-12-21T20:41:30.230" Score="1" ViewCount="" Body="&lt;p&gt;If you want to take a class in high school to help with programming take Machine Shop or Automotive Tech ed. if you school offers it.  The methods of methodically taking something apart diagnosing along the way to figure out what the problem is or how it works will be far more useful as a practical programmer than anything else you could take (non math/programming related)&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-12-21T20:41:30.230" />
  <row Id="28846" PostTypeId="2" ParentId="28834" CreationDate="2010-12-21T20:42:01.727" Score="0" ViewCount="" Body="&lt;p&gt;Maybe; I also had a similar thought that maybe knowing how to program helped me learn a second language. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This came about when I took a French class several years ago just before I went on my first trip to Paris. French certainly has its quirks, but programming is largely nouns and verbs just like language. I swear that when I deconstructed the lessons along programming lines, the language got to be much easier to learn. It's more than likely just conjecture on my part, and it could be my enthusiasm for the class and trip had as much to do with my picking it up so easily as anything. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning another language is a great mental exercise so keep at it, but as others have said, don't look too deep into this.&lt;/p&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2010-12-21T20:42:01.727" />
  <row Id="28847" PostTypeId="2" ParentId="28834" CreationDate="2010-12-21T20:42:36.547" Score="7" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;I'm currently studying Latin at school, and what I've learned is that it's a very logical language, unlike, e.g. English. To me, I think this has contributed to my programming ability—it makes it easier for me to understand my code.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't overthink things. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Have any of you studied Latin (or another very logical language), and if so, do you also feel it helped you as a programmer?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Studied? Yes.&lt;br&gt;&#xA;Helped me in my programming issues? No, not at all.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-21T20:42:36.547" CommentCount="0" />
  <row Id="28848" PostTypeId="2" ParentId="28579" CreationDate="2010-12-21T20:43:20.840" Score="0" ViewCount="" Body="&lt;p&gt;TDD some code / project. Open-source it. Ask people to comment on your tests.&lt;/p&gt;&#xA;" OwnerUserId="4373" LastActivityDate="2010-12-21T20:43:20.840" />
  <row Id="28849" PostTypeId="2" ParentId="18213" CreationDate="2010-12-21T20:43:51.200" Score="0" ViewCount="" Body="&lt;p&gt;I don't have much experience but have you looked into integrating a service like &lt;a href=&quot;http://recurly.com/&quot; rel=&quot;nofollow&quot;&gt;Recurly&lt;/a&gt; or Chargify? If so, what are your thoughts on it?&lt;/p&gt;&#xA;" OwnerUserId="11219" LastActivityDate="2010-12-21T20:43:51.200" />
  <row Id="28850" PostTypeId="2" ParentId="28825" CreationDate="2010-12-21T20:45:08.390" Score="2" ViewCount="" Body="&lt;p&gt;I remember seeing some sites during the dot com days that were basically exactly what you describe.  People would post small coding tasks they wanted done, a $ amount, and people could register to perform said task - there were some variations on that theme, but that was the basic idea.  Being fresh out of school and looking for some extra moolah I would often poke around and look for a good one to do.  The result?  I never did a single one.  Invariably I'd look at the tasks (that I could do) and do a price/performance in my head and realize it really wasn't worth my time to bother (exactly the point you make in #2).  The other problem was that almost all of them were not compelling problems - there was a reason why they were being farmed out :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I agree with KevDog that if you have a cool project &amp;amp; some decent PR (getting the word out) that people will come find you and do the work for free.  While I've never gone the mercenary route I've certainly contributed code here &amp;amp; there to OSS projects that strike my fancy.&lt;/p&gt;&#xA;" OwnerUserId="11241" LastActivityDate="2010-12-21T20:45:08.390" CommentCount="1" />
  <row Id="28851" PostTypeId="2" ParentId="20927" CreationDate="2010-12-21T20:48:02.207" Score="6" ViewCount="" Body="&lt;p&gt;We used this at one company I worked for.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We handed the candidate a piece of paper used for tracking time.  It was a real timesheet  used by one or our divisions.  We asked the candidate to walk us through the design process for creating a better time tracking tool.  No boundaries, didn't say what language etc., just want to see how good the candidate was at &quot;full lifecycle&quot;.  It gave us a real insight into how they gathered requirements.  How they structured database tables, what kind of UI they might do.  Communication skills were obviously needed for this task.  It was usually done in a room with several large white boards and lasted as long as 2 hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We hired several people using this process and if they did really well on the task they did really well for us.  If they were marginal and we decided to hire them anyway (separate topic) they were marginal programmers.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-12-21T20:48:02.207" CommunityOwnedDate="2011-02-15T14:41:29.790" />
  <row Id="28852" PostTypeId="2" ParentId="11575" CreationDate="2010-12-21T20:52:04.810" Score="2" ViewCount="" Body="&lt;p&gt;You need to ask yourself, what am I trying to accomplish.  If you are trying to get better at estimating then you need a time tracking tool.  If you just want to have your notes organized then use whatever method you are most comfortable with (I use a notebook).  Bug tracking is obviously important.  What tool depends on the size of the team, how its distributed, and if you need to report any metrics off of it.  Small co-located team can use the notecard method, a distributed team needs an electronic system.  I have used Trac, GitHub, Starteam, Excel Spreadsheets, and custom developed.  Most important thing for bugs is it has to be easy to put them in and close them.  If you are using SVN for source code, then I recommend trac because you can set it up to auto close. Github.com is good if you are using Git. &lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2010-12-21T20:52:04.810" CommentCount="2" />
  <row Id="28854" PostTypeId="2" ParentId="7217" CreationDate="2010-12-21T21:05:43.393" Score="-1" ViewCount="" Body="&lt;p&gt;No, never.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always do requirements analysis, think about architecture, design the details, and then code. Even if I work solo at home for a personal project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I would instantly fire a developer in my team if he/she were working in a cowboy style. We are engineers and have a responsibility with the customer and the users.&lt;/p&gt;&#xA;" OwnerUserId="5021" LastActivityDate="2010-12-21T21:05:43.393" CommentCount="4" />
  <row Id="28855" PostTypeId="1" AcceptedAnswerId="28857" CreationDate="2010-12-21T21:14:41.170" Score="7" ViewCount="960" Body="&lt;p&gt;I feel that there are so many people who started programming ~8 yrs old.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure enough, I did make a &lt;a href=&quot;http://web.archive.org/web/20040805095952/http://www.battlespin.tk/&quot; rel=&quot;nofollow&quot;&gt;website in HTML&lt;/a&gt; as an 8-year-old, but it's incredibly poorly coded etc etc..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So now I've started BASIC as a 14-year-old, and I've now started intensively in web development as a 15-year-old. Is it too late? When can I expect to be an 'expert?'&lt;/p&gt;&#xA;" OwnerUserId="11109" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-12-22T02:08:46.660" LastActivityDate="2010-12-28T07:55:11.143" ClosedDate="2010-12-28T23:25:57.180" Title="Is it too late to start programming?" Tags="&lt;experience&gt;&lt;career-advice&gt;" AnswerCount="24" CommentCount="12" FavoriteCount="1" />
  <row Id="28856" PostTypeId="2" ParentId="28855" CreationDate="2010-12-21T21:18:04.387" Score="1" ViewCount="" Body="&lt;p&gt;While you always hear of people creating crazy projects as 7 or 8 year olds, I would venture to say that the vast majority of people don't start programming that young. In college many of my peers just started when they were freshman (and I could be wrong, but it sounds like you are a little younger than that).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as you are willing to try to learn and willing to listen to advice, it is never to late to learn anything.&lt;/p&gt;&#xA;" OwnerUserId="7305" LastActivityDate="2010-12-21T21:18:04.387" />
  <row Id="28857" PostTypeId="2" ParentId="28855" CreationDate="2010-12-21T21:18:42.353" Score="18" ViewCount="" Body="&lt;p&gt;You are WAY ahead of the curve! Nothing to worry about. Get a good college education and have a good time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, if you do ever decide that you are an 'expert,' that is a signal from the universe that you are about to be humbled by somebody or something. Keep the curious, passionate, hungry beginner's mindeset, and you will have a long and wonderful career as a software engineer.&lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2010-12-21T21:18:42.353" CommentCount="1" />
  <row Id="28858" PostTypeId="2" ParentId="28855" CreationDate="2010-12-21T21:22:06.263" Score="10" ViewCount="" Body="&lt;p&gt;You're 15 now?  You might as well hang up your keyboard and start looking for a condo in Florida, you old geezer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I kid, I kid&lt;/strong&gt;.  I suspect most programmers didnt really start coding until they were in college/college age, and quite a few became programmers well after they were into a career.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So no, you are not too old.  You're actually at a good age to start. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When can you expect to be an expert?  Probably not before you are 25, maybe 30.  Not until you have a number of 'real world' projects under your belt.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-21T21:22:06.263" CommentCount="4" />
  <row Id="28859" PostTypeId="2" ParentId="28825" CreationDate="2010-12-21T21:23:35.453" Score="0" ViewCount="" Body="&lt;p&gt;I don't think the idea is completely out of the realm of possibility, however the cost per task paradigm doesn't work as it isn't cost effective to the developer, nor proportionally scalable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think a better system might be $/Line Of Code where said loc resides in version control for x amount of time and is not committed over for reasons of incompetence (eg. bug).&lt;/p&gt;&#xA;" OwnerUserId="7048" LastActivityDate="2010-12-21T21:23:35.453" CommentCount="2" />
  <row Id="28860" PostTypeId="2" ParentId="28855" CreationDate="2010-12-21T21:25:18.260" Score="2" ViewCount="" Body="&lt;p&gt;I'm a crusty old geezer of 36 and I transformed myself from a web developer into an iPhone developer this year. Completely turned myself inside-out, went home every day with my brain leaking out of my ears. I'm pretty sure my age didn't have anything to do with my ability to do that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think if you're starting seriously at 15, you'll &lt;em&gt;probably&lt;/em&gt; be okay. But it is one of the most (sorry) adorable questions I've seen on this site.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-21T21:25:18.260" CommentCount="1" />
  <row Id="28861" PostTypeId="2" ParentId="28855" CreationDate="2010-12-21T21:25:32.100" Score="2" ViewCount="" Body="&lt;p&gt;You did a website when you were 8, you're 15 now, and you're asking if you're too late?!?!  Geez, are you kidding me?  You have 20-60 &lt;strong&gt;years&lt;/strong&gt; to get as good as you can.  Even if you &lt;em&gt;were&lt;/em&gt; too old(which you're &lt;strong&gt;NOT!&lt;/strong&gt;), if you like it, do it.&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-12-21T21:25:32.100" />
  <row Id="28862" PostTypeId="2" ParentId="28855" CreationDate="2010-12-21T21:27:22.313" Score="0" ViewCount="" Body="&lt;p&gt;I know people who started programming (as career-changers) in their 30s and 40s. And they did pretty well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, no, it's not too late.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for when you can expect to become an &quot;expert&quot; - that's a tough one in programming. I tend to believe that the difference between a rockstar programmer and an average/mediocre programmer is mostly about motivation. I've known people who became virtually instant rockstars in their workplace as soon as they started in the field as graduates. On the flipside, there are people who work dead end code monkey jobs for decades and never really go above that &quot;code monkey&quot; stage. On the whole, I wouldn't worry about this one though. If you give it a good shot, you'll make it. If you're truly passionate about what you do, and go over and above in your motivation to do a good job, you'll become an &quot;expert&quot; of sorts, in time.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-12-21T21:27:22.313" CommentCount="1" />
  <row Id="28863" PostTypeId="2" ParentId="28855" CreationDate="2010-12-21T21:28:57.883" Score="11" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;public bool IsItTooLateToStartProgramming(Person self) {&#xA;    return  !self.StillHasPulse;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="780" LastEditorUserId="780" LastEditorDisplayName="" LastEditDate="2010-12-27T23:08:08.487" LastActivityDate="2010-12-27T23:08:08.487" CommentCount="4" />
  <row Id="28864" PostTypeId="2" ParentId="20927" CreationDate="2010-12-21T21:30:04.870" Score="4" ViewCount="" Body="&lt;p&gt;My favourite was one a friend of mine used. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Write me a function to generate/print/store the first &quot;n&quot; prime numbers and then explain how it works and how efficient it is.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It works well because:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;It's an algorithmic question so it requires the interviewee to be able to think and then explain their thinking - so you can see how their brain works.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It's language independent.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Hardly anyone gets it completely right (there's usual an edge case they miss (1 or 2 normally), or they don't handle negative numbers, so you get to see how they handle bugs and being told that they're wrong.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Most do it as a simple but very slow sieve (e.g. 80% of people will check of n is a prime by dividing n by all integers less than n), which gives you lots of scope for conversations about how they could improve the algorithm based on space/time trade offs e.g. &quot;why are you dividing a number by 4 if you already know it's not divisible by 2?&quot; or &quot;You've worked out that you only need to divide by all prime numbers less than sqrt(n), but that requires you to store those numbers somewhere, so what are the implications of that?&quot;)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;There's no need for them to get the answer right. If someone can think and explain their thinking then they're a long way down the road for being a good candidate.&lt;/p&gt;&#xA;" OwnerUserId="9039" LastEditorUserId="9039" LastEditorDisplayName="" LastEditDate="2010-12-22T19:28:15.007" LastActivityDate="2010-12-22T19:28:15.007" CommunityOwnedDate="2011-02-15T14:41:29.790" CommentCount="4" />
  <row Id="28865" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T21:32:32.510" Score="0" ViewCount="" Body="&lt;p&gt;Everything has it's own valid use, or it wouldn't be implemented. Things are called evil because people do not use it in a safe or proper manner. Consider this...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is a sword evil? Nope. Just because someone may try to use a sword in a hospital does not mean it is evil.&#xA;Is a can opener evil? Nope.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everything has it's proper use. Hence, no evil.&lt;/p&gt;&#xA;" OwnerUserId="11247" LastActivityDate="2010-12-21T21:32:32.510" CommunityOwnedDate="2010-12-21T23:21:19.143" />
  <row Id="28866" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T21:32:40.827" Score="3" ViewCount="" Body="&lt;blockquote&gt;So does absolute evil, that is something which is utterly incompatible with best practice in all instances, exist in programming? And if so what is it? &lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes; the standard C library function &lt;code&gt;gets()&lt;/code&gt;.  It's evil enough that the C standards committee has officially deprecated it, and it is expected to be gone from the next version of the standard.  The mayhem caused by that one library call is scarier than the prospect of breaking 30+ years' worth of legacy code -- &lt;em&gt;that's&lt;/em&gt; how evil it is.  &lt;/p&gt;&#xA;" OwnerUserId="11246" LastActivityDate="2010-12-21T21:32:40.827" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="2" />
  <row Id="28867" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T21:34:20.763" Score="3" ViewCount="" Body="&lt;p&gt;Though any tool can be &lt;em&gt;used&lt;/em&gt; for good and evil, some tools &lt;em&gt;are&lt;/em&gt; evil because they often surprise programmers who don't use them frequently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I consider the unsigned right shift operator (&gt;&gt;&gt;) in Java evil (surprisingly improper) when working with integers that are shorter than 32 bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Say you have a byte b with value -1.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;byte b = -1;  // binary: 1111 1111&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The unsigned right shift operator shifts zeroes into the leftmost bits. So one assumes a shift by 7 to result in 1.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;b &amp;gt;&amp;gt;&amp;gt;= 7;  // binary: 0000 0001 ?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But instead this operation does nothing at all. b is still -1.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even all of the following 25 shifts do nothing:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;byte b = -1;&#xA;for (int i = 0; i &amp;lt; 25; ++i) {&#xA;    b &amp;gt;&amp;gt;&amp;gt;= i;&#xA;    System.out.println(b); // always outputs -1&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This happens because &lt;code&gt;b&amp;gt;&amp;gt;&amp;gt;=7&lt;/code&gt; roughly translates to&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;                                  1111 1111&#xA;&#xA;1) the byte gets widened to a 32 bit int to make shifting possible&#xA;    1111 1111 1111 1111 1111 1111 1111 1111&#xA;&#xA;2) the shift happens&#xA;    0000 0001 1111 1111 1111 1111 1111 1111&#xA;&#xA;3) the resulting int gets narrowed to a byte again&#xA;                                  1111 1111&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;You would have to replace&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;b &amp;gt;&amp;gt;&amp;gt;= i;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;by&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;b = (b &amp;amp; 0xFF) &amp;gt;&amp;gt;&amp;gt; (i % 8);     // &amp;gt;&amp;gt; would also work this time&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;to make it work as 'expected'.&lt;/p&gt;&#xA;" OwnerUserId="10135" LastEditorUserId="10135" LastEditorDisplayName="" LastEditDate="2010-12-22T01:36:44.267" LastActivityDate="2010-12-22T01:36:44.267" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="4" />
  <row Id="28868" PostTypeId="2" ParentId="28834" CreationDate="2010-12-21T21:35:01.690" Score="0" ViewCount="" Body="&lt;p&gt;I studied it and I think it kind of might have slightly helped me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My native language is Italian which, despite being a neo-latin language, has little to nothing to do with Latin when it comes to grammar and syntax. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Organizing your thought in a language so different, in which you can't just start a sentence and improvise but you need to create a mental scheme of the full sentence structure before beginning to construct it, and keep it in mind when you want to add subordinates, might be a good logic/memory exercise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Might help with pointers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: correct German requires more or less the same efforts, and it's alive.&lt;/p&gt;&#xA;" OwnerUserId="11146" LastActivityDate="2010-12-21T21:35:01.690" />
  <row Id="28869" PostTypeId="2" ParentId="28855" CreationDate="2010-12-21T21:42:45.200" Score="4" ViewCount="" Body="&lt;p&gt;I didn't take my first real Computer Science class until I was 21, so no, it's definitely not too late.  You're &lt;em&gt;fine&lt;/em&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Real expertise requires doing a non-trivial amount of work; you have to figure out all the wrong ways of doing things before the right one becomes obvious.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you intend to write code for a living once you graduate high school or college, beware: nothing kills your enthusiasm for something quicker than doing it for a living.  &lt;/p&gt;&#xA;" OwnerUserId="11246" LastActivityDate="2010-12-21T21:42:45.200" />
  <row Id="28870" PostTypeId="2" ParentId="28855" CreationDate="2010-12-21T21:44:28.927" Score="2" ViewCount="" Body="&lt;p&gt;It generally takes 10,000 hours to be an expert at anything, so you better get to work.&lt;/p&gt;&#xA;" OwnerUserId="1842" LastActivityDate="2010-12-21T21:44:28.927" CommentCount="4" />
  <row Id="28871" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T21:46:30.217" Score="0" ViewCount="" Body="&lt;p&gt;Aptitude matters more than intelligence.  If you're not comfortable spending a lot of time in your own head, you can be a genius on par with Newton and still be a lousy programmer.  &lt;/p&gt;&#xA;" OwnerUserId="11246" LastActivityDate="2010-12-21T21:46:30.217" />
  <row Id="28873" PostTypeId="2" ParentId="28855" CreationDate="2010-12-21T21:48:51.937" Score="0" ViewCount="" Body="&lt;p&gt;While I tinkered with programming related activity in my teens, I didn't start programming for real until college. Since then I've managed to make a good living as a programmer, so, no, you're not too late.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it is something you are interested you should definitely pursue it. Indeed, as a teenager, you should not hesitate to explore any academic field that may hold any interest to you. &lt;/p&gt;&#xA;" OwnerUserId="6825" LastActivityDate="2010-12-21T21:48:51.937" CommentCount="1" />
  <row Id="28874" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T21:48:52.977" Score="3" ViewCount="" Body="&lt;p&gt;I know i said i wouldnt make a post but i'll write one answer. As much as everyone else says no there are no evils i'll say yes there are some absolute evils&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Setjmp.h&quot; rel=&quot;nofollow&quot;&gt;Setjmp/LongJmp&lt;/a&gt; is pure evil.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-12-21T21:48:52.977" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="10" />
  <row Id="28875" PostTypeId="2" ParentId="28855" CreationDate="2010-12-21T21:49:45.633" Score="0" ViewCount="" Body="&lt;p&gt;My Story, Most of the people I went to college with in Computer Science were in their mid 20s. Either they had a career change or finally got their act together like myself. Don't think because your not starting binary operations at 2 years old you can't be a programmer at any age. Your probably not the next Linus, Gates, Jobs or Zuckerberg (yes I included him). But just do what you want to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming isnt this magical thing that only certain people can do such as Pro-Sports. You can start when you want to!&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-12-21T21:49:45.633" />
  <row Id="28876" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T21:53:24.053" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Hard Working&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is how I like to respond to that claim. I never felt I was &quot;smart&quot;. But only hard working. I struggled through college and Math courses. Hell, no matter how hard I studied or work I could never do exceptional in my Math Courses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But hard work always paid off for me in the end.&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2010-12-21T21:53:24.053" />
  <row Id="28877" PostTypeId="1" AcceptedAnswerId="28921" CreationDate="2010-12-21T22:00:56.347" Score="0" ViewCount="101" Body="&lt;p&gt;I am coding a PHP serial access class and have been taking pointers from the PHP-serial class on Google Code (&lt;a href=&quot;http://code.google.com/p/php-serial/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;).  That class is based on PHP 4 and I'm creating a PHP 5 class that allows more functionality and is specific to some business demands I have.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no code copied and I have done all the coding.  Does the class I'm writing fall under the Google Code's GPL or am I free to select a license that I feel is appropriate?  I'm not sure of the standard that applies to licensing when you are only looking to another work for pointers.&lt;/p&gt;&#xA;" OwnerUserId="9479" LastEditorUserId="9479" LastEditorDisplayName="" LastEditDate="2011-01-02T03:18:20.760" LastActivityDate="2011-01-02T03:18:20.760" Title="using GNU GPL v2 software as pointers to solution to problem" Tags="&lt;open-source&gt;&lt;gpl&gt;&lt;license&gt;" AnswerCount="2" />
  <row Id="28878" PostTypeId="1" AcceptedAnswerId="28883" CreationDate="2010-12-21T22:02:17.593" Score="1" ViewCount="160" Body="&lt;p&gt;First off, I want to say that this is &lt;strong&gt;purely hypothetical&lt;/strong&gt;; it's just a scenario that came to mind. I am not looking for personal legal advice, but rather, I'm trying to gain a better understanding of software licensing in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suppose somebody open-sources code relating to a botnet (either the code to infect a zombie, control the zombies, or both) under some license, let's say GPL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few questions. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;First off, are botnets illegal? I don't know if it differs from country to country. I ask because if it isn't, then my question would make no sense whatsoever.&lt;/li&gt;&#xA;&lt;li&gt;Can a software license be applied to &quot;illegal&quot; software?&lt;/li&gt;&#xA;&lt;li&gt;If a person decides to take that code and violates the license terms, could the original creator take action against said person?&lt;/li&gt;&#xA;&lt;li&gt;Even if they could, &lt;em&gt;should they&lt;/em&gt;? What happens if somebody openly admits they are the creator of code that does illegal things?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5624" LastEditorUserId="5624" LastEditorDisplayName="" LastEditDate="2010-12-21T22:08:17.833" LastActivityDate="2010-12-21T22:20:35.397" Title="How would somebody uphold a license on &quot;illegal&quot; code?" Tags="&lt;open-source&gt;&lt;license&gt;&lt;legal&gt;" AnswerCount="1" CommentCount="4" />
  <row Id="28879" PostTypeId="2" ParentId="27564" CreationDate="2010-12-21T22:03:38.200" Score="1" ViewCount="" Body="&lt;p&gt;That would be nice to have the possibility to set the primitive type (bool|boolean, int|integer, float, double, string, object) of a parameter in a method as array is allowed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;current:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class HttpResponse {&#xA;public function __construct($version, $statuscode = HttpStatus::OK, HttpResponseHeaders $headers = array(), $body = '');&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;}&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;hope:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class HttpResponse { public function __construct($version, integer $statuscode = HttpStatus::OK, HttpResponseHeaders $headers = array(), string $body = ''); }&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I thought also to have an Assert static class that can be useful.&lt;/p&gt;&#xA;" OwnerUserId="11251" LastActivityDate="2010-12-21T22:03:38.200" CommunityOwnedDate="2010-12-21T22:03:38.200" />
  <row Id="28880" PostTypeId="2" ParentId="21436" CreationDate="2010-12-21T22:04:53.153" Score="0" ViewCount="" Body="&lt;p&gt;If it is a critical production issue, then you should be able to handle it directly, the chosen development methodology is irrelevant. A hotfix is not related to a regular release cycle (spints or otherwise).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd suggest fixing it in a 'fix' branche, based on the code that's currently in production.&lt;/p&gt;&#xA;" OwnerUserId="6221" LastActivityDate="2010-12-21T22:04:53.153" />
  <row Id="28881" PostTypeId="2" ParentId="28855" CreationDate="2010-12-21T22:05:28.927" Score="1" ViewCount="" Body="&lt;p&gt;It's certainly not too late to get started. Many programmers started when they were older than you are now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to be an expert, it's going to take practice. &lt;a href=&quot;http://headrush.typepad.com/creating_passionate_users/2006/03/how_to_be_an_ex.html&quot; rel=&quot;nofollow&quot;&gt;Lots of practice&lt;/a&gt;. Maybe &lt;a href=&quot;http://norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;ten years of practice&lt;/a&gt;. But don't let that scare you off. Long before you reach that point, you'll have the skills to work as a professional programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The important thing is not how old you were when you started programming, but how much time you invest in learning the craft.&lt;/p&gt;&#xA;" OwnerUserId="3869" LastActivityDate="2010-12-21T22:05:28.927" />
  <row Id="28882" PostTypeId="2" ParentId="28877" CreationDate="2010-12-21T22:05:45.383" Score="4" ViewCount="" Body="&lt;p&gt;If you just keep your work in-house (ie, don't distribute it), then you can do whatever you want with GPL software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you intend to sell your work and you have questions about licensing restrictions, you should talk to a lawyer.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Just a reminder to everyone else on Stack Exchange: There aren't many attorneys on here. The few that are aren't your attorney. Don't find-out the hard way that you're doing something wrong.&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-21T22:05:45.383" CommentCount="6" />
  <row Id="28883" PostTypeId="2" ParentId="28878" CreationDate="2010-12-21T22:20:35.397" Score="5" ViewCount="" Body="&lt;p&gt;First, I'm not a lawyer.  If you want reliable legal advice, find one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Establishing and using a botnet probably means committing felonies in most First World countries, which tend to have laws against unauthorized use of somebody else's computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, software that can be used illegally, or even software designed to do illegal things, is generally not itself illegal.  (There are exceptions; in the US, for example, software to remove certain protections may be illegal under the DMCA.)  So, let's assume we're in the US discussing software that is in violation of the DMCA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no reason why there shouldn't be a software license on such software, partly because it won't be illegal everywhere.  The copyright holder could indeed take legal action against people violating the license, although that may not go very far.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether this is wise is another matter.  Writing code that does illegal things is not itself illegal, but possession of certain software might be.  I'd rather not confess to a crime in a court document.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-21T22:20:35.397" CommentCount="2" />
  <row Id="28884" PostTypeId="2" ParentId="28788" CreationDate="2010-12-21T22:22:09.100" Score="0" ViewCount="" Body="&lt;p&gt;If you can get someone to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;passionately explain a project they've worked on&lt;/li&gt;&#xA;&lt;li&gt;objectively weigh pros and cons of various solutions, tools, patterns, whatnot...&lt;/li&gt;&#xA;&lt;li&gt;discuss problems on both a high, mid and low level&lt;/li&gt;&#xA;&lt;li&gt;reason about when to hack it and when some more architecture is called for. (a.k.a. duct-tape programmer)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;then chances are you're on to someone who've learnt enough to be useful. ;)&lt;/p&gt;&#xA;" OwnerUserId="3917" LastActivityDate="2010-12-21T22:22:09.100" />
  <row Id="28885" PostTypeId="1" AcceptedAnswerId="28892" CreationDate="2010-12-21T22:23:46.193" Score="6" ViewCount="223" Body="&lt;p&gt;Implementing threading in a program is hard, yes, however why is it that some people will not implement them even when there is an obvious need for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example: Program has to load a dataset from a database, the thing to do would be to make the connection and get the data from the database in a worker thread and then load it into the GUI, leaving the GUI thread responsive for the user.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But no, I've talked to people whom seem to think that threads are evil and bad and whatnot and one should avoid them at all costs.  I've even heard that some class instructor advised against to use of threads and therefore did not want cover their use. WHAT???&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the hardware going into multi-core, I think that we need to understand threads better and not be afraid to use them. I find it a fascinating subject personally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what are things you've heard about threading that are false? &lt;/p&gt;&#xA;" OwnerUserId="4306" LastActivityDate="2010-12-22T07:49:23.837" Title="What false ideas are there that puts people off using threads?" Tags="&lt;multi-threaded&gt;" AnswerCount="6" />
  <row Id="28886" PostTypeId="1" AcceptedAnswerId="28939" CreationDate="2010-12-21T22:30:52.380" Score="1" ViewCount="76" Body="&lt;p&gt;Coming from Windows, I used Putty a lot since it could store a list of hosts I often connect to, provide me with an easy to use double click and then spawn a terminal.  Is there a preferred solution for OSX?&lt;/p&gt;&#xA;" OwnerUserId="11253" LastActivityDate="2010-12-22T01:57:20.933" Title="What do you use to manage servers you SSH to in OS X?" Tags="&lt;osx&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="28887" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T22:31:40.363" Score="0" ViewCount="" Body="&lt;p&gt;I would not assume that non-industry people view developers as smart. Here are some points to help ground my ego:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You are a scientist, in the field of computer science. Generally perceived as part of mathmetics which is a pursuit of smart individuals. I am not smart in the eyes of other scientists (for starters think aerospace and nuclear).&lt;/li&gt;&#xA;&lt;li&gt;Scientific method can be described as trial and error (think House M.D.). More than one person has stated in philosophical terms that mistakes are good and you can expect to make a lot of them. At the same time, trial and error in real life is rarely interpreted as smart behavior by an observer. I am not smart in the eyes of my business managers, wall street brokers, and politicians -- the movers and shakers.&lt;/li&gt;&#xA;&lt;li&gt;IBM's Deep Blue and persons with Aspergers can be world class at specialized tasks. So like @dan and others suggests, smart is how you define it and with one extreme may come another. In competitive terms, professional athletes, air jocks, and military do not see me as smart, more like some desk-bound pencil neck.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I forgot to include that there are also strong opinions inside our field that a computer science degree is not necessary and that a high school education is enough. So I believe the accessibility of tools and the instant feedback loop of change-run-observe has made folks successful to the point that they can make a case for the whole college education being a complete waste. Which is like saying you don't need book smarts to be a developer.&lt;/p&gt;&#xA;" OwnerUserId="10296" LastEditorUserId="10296" LastEditorDisplayName="" LastEditDate="2010-12-21T23:14:31.123" LastActivityDate="2010-12-21T23:14:31.123" />
  <row Id="28888" PostTypeId="2" ParentId="28885" CreationDate="2010-12-21T22:34:19.040" Score="1" ViewCount="" Body="&lt;h3&gt;Threading solves all your problems&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;If you're having performance issues you should &lt;em&gt;not&lt;/em&gt; jump right to threading.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Threads are lightweight&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Threads are lightweight in tens and twenties. Spawning thousands of threads is not.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Threading is easy [Java]&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;It's easy to create threads, that doesn't mean you will benefit from it. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-21T22:34:19.040" CommentCount="5" />
  <row Id="28889" PostTypeId="2" ParentId="28886" CreationDate="2010-12-21T22:35:38.947" Score="1" ViewCount="" Body="&lt;h1&gt;SSH Keys&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Secure_Shell&quot; rel=&quot;nofollow&quot;&gt;SSH&lt;/a&gt; allows you to use a public / private key pair for a connection, negating the need for a password. Use your hosts file to remember ip addresses and opening a new connection is as easy as &lt;code&gt;ssh user@host&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-21T22:35:38.947" CommentCount="4" />
  <row Id="28890" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T22:36:21.637" Score="0" ViewCount="" Body="&lt;p&gt;Most programmers are used to studying and researching outside of work long after they leave school, which is very rare in most careers, where on-the-job training is more important - for some people, it's even just enough that we (usually) went to college and actually retained something from school. Most programmers I know are also very passionate, which is a form of smart, since you willingly become an expert in anything related. Plus we usually make a lot of money; in America, money is often seen as almost equivalent to intelligence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for whether we are, well, I look back every year and think of all the dumb things I did, and I think everyone does. I guess it all comes down to how much time you regret wasting later in life.&lt;/p&gt;&#xA;" OwnerUserId="11252" LastActivityDate="2010-12-21T22:36:21.637" />
  <row Id="28891" PostTypeId="2" ParentId="28855" CreationDate="2010-12-21T22:37:01.597" Score="1" ViewCount="" Body="&lt;p&gt;My personal opinion is that it is never too late&lt;/p&gt;&#xA;" OwnerUserId="7222" LastActivityDate="2010-12-21T22:37:01.597" />
  <row Id="28892" PostTypeId="2" ParentId="28885" CreationDate="2010-12-21T22:38:51.643" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Threading is hard&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure. It can be. However, people get this idea in their head that it's so hard, such that &lt;em&gt;they don't bother trying&lt;/em&gt; to figure it out. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not like it's impossible.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-21T22:38:51.643" CommentCount="2" />
  <row Id="28893" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T22:42:52.280" Score="0" ViewCount="" Body="&lt;p&gt;If you can read and write code and utilize it, you're probably smart. And yes, most people think programmers are smarter than average. Obviously, you don't have to be a genius. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-21T22:42:52.280" />
  <row Id="28894" PostTypeId="2" ParentId="28588" CreationDate="2010-12-21T22:44:05.540" Score="0" ViewCount="" Body="&lt;p&gt;Ask yourself why people should hire you.  If you can't come up with reasons, find another line of work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now that you do have reasons why people should hire you, look for reasons for the reasons, or at least reasons to believe the reasons.  These reasons are probably what you should use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suppose you have good domain knowledge in a field, and you can point to five years of experience working on apps in that domain.  Those five years are a selling point, or your formal study or certification in that domain field.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can do it faster than the other guy, come up with a reason for that, even a puff one like rapid deployment software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, know who you're selling to, who makes the hiring decisions and who filters applications.  &lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-21T22:44:05.540" />
  <row Id="28895" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T22:44:11.107" Score="4" ViewCount="" Body="&lt;p&gt;I'm surprised no one has floated Globals as a true evil.  No better way to be programming in an environment about which you have no idea of the parameters and virtually no control over what happens to them.  Chaos!  I have a strict ban on the use of global variables in all of my coding.&lt;/p&gt;&#xA;" OwnerUserId="11258" LastActivityDate="2010-12-21T22:44:11.107" CommunityOwnedDate="2010-12-21T23:21:19.143" CommentCount="3" />
  <row Id="28896" PostTypeId="2" ParentId="28855" CreationDate="2010-12-21T22:44:11.783" Score="2" ViewCount="" Body="&lt;p&gt;I think you're fine on age, but you maybe shouldn't go talking about how old you are online at your age...&lt;/p&gt;&#xA;" OwnerUserId="9521" LastActivityDate="2010-12-21T22:44:11.783" />
  <row Id="28897" PostTypeId="2" ParentId="28642" CreationDate="2010-12-21T22:45:24.320" Score="13" ViewCount="" Body="&lt;p&gt;&quot;&lt;strong&gt;You're not a real programmer: you're not constantly typing&lt;/strong&gt;&quot;.&#xA;At first, I hoped it was just a joke, but no, he was serious.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A short moment of unconfortable silence ensued before I proceeded to explain that thinking about the implications and weight which type of implementation to do before coding or even sketching diagrams to structure is also part of the process x_x&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, the colleague he was implicitely comparing me to is an obsessive typist: he's my best mate and a great guy, but he writes the first thing that springs in his mind and only thinks about it while he's typing, so he's hitting backspace more than half of the time: looks great to &quot;look busy&quot; when management comes around, but quite a pain to maintain the code or integrate with the rest of the application.&lt;/p&gt;&#xA;" OwnerUserId="9094" LastActivityDate="2010-12-21T22:45:24.320" CommunityOwnedDate="2011-01-07T06:47:37.693" CommentCount="3" />
  <row Id="28898" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T22:48:04.180" Score="0" ViewCount="" Body="&lt;p&gt;There's a few different parts to being smart as I see it, or at least different sides to it:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Natural brain power - This is also known as book smarts or intelligence and we all have some of this from birth, others having more of it than others.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Work ethic - This is something that can make up for brains at times as some people can just study hard enough to do well in school rather than just coast through it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Knowing how to use others to get things done - This could also be known as street smarts in possibly having an illusion of being brighter than someone really is by knowing how to play the game.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Most developers have some combination of usually at least a couple if not all 3 of these for how they are as awesome as they are to my mind.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-21T22:48:04.180" />
  <row Id="28899" PostTypeId="1" CreationDate="2010-12-21T22:49:16.257" Score="1" ViewCount="298" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/12087/what-are-great-online-code-reviews-tool-for-open-source-projects&quot;&gt;What are great online code reviews tool for Open Source projects?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We're playing with &lt;a href=&quot;http://www.r-labs.org/projects/show/codereview&quot; rel=&quot;nofollow&quot;&gt;code review plugin&lt;/a&gt; for Redmine. I don't like how it works: it tries to do its own windows, and the review is not lightweight enough, you cannot just leave a small note--each comment makes a full ticket.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you use this plugin and have some suggestions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you use for code review?&lt;/p&gt;&#xA;" OwnerUserId="1411" LastActivityDate="2010-12-23T08:01:10.587" ClosedDate="2010-12-28T18:36:51.830" Title="Code review software and Redmine's plugin" Tags="&lt;recommendations&gt;&lt;software&gt;&lt;code-reviews&gt;" AnswerCount="1" CommentCount="0" />
  <row Id="28900" PostTypeId="2" ParentId="28642" CreationDate="2010-12-21T22:53:26.067" Score="20" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Free software is useless&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often found in business circles, rarely among the programming community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often associated with the naive belief that commercial software vendors actually take responsibility for their products.  If I had a nickel for every time I've heard &quot;someone to sue&quot;, I'd get myself a much nicer home box and monitors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often also associated with the belief that nobody would do good work except for money.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-21T22:53:26.067" CommunityOwnedDate="2011-01-07T06:47:37.693" CommentCount="3" />
  <row Id="28901" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T23:00:05.430" Score="2" ViewCount="" Body="&lt;p&gt;There are lots of areas on intelligence. Software development requires a certain proficiency in some of those areas, but not all of them. Logical thinking is one, but there's also some empathy - &quot;Will others understand this code?&quot; and mental discipline - &quot;Don't repeat yourself. Use proper names.&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Note that I'm speaking about &lt;em&gt;ideal&lt;/em&gt; software developers here. There're lots of bad software developers out there with a total that lack of empathy, or without proper understanding of logic)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But to be a good programmer you don't have to excel in all the intellectual areas. For example, law students tend to be better at memory than cs students (have you seen a Law book? ... yuck!) and engineers will in general be better at pure calculus (which is, I know a subset of logical thinking). Again in general, we are usually a bit lacking when facing other human beings, compared with other more social careers, like salesmen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In conclusion: to be a &lt;em&gt;good&lt;/em&gt; software developer, you have to be smart &lt;em&gt;in certain ways&lt;/em&gt;, but not completely smart.&lt;/p&gt;&#xA;" OwnerUserId="8925" LastActivityDate="2010-12-21T23:00:05.430" />
  <row Id="28902" PostTypeId="2" ParentId="28885" CreationDate="2010-12-21T23:04:45.707" Score="3" ViewCount="" Body="&lt;p&gt;It's not the threading part that's hard but the need for synchronization and everything else that comes with using threads. In your GUI example how do you tell the main thread the dataset is ready to be accessed? Do you pass around a whole bunch of callbacks? Do you scatter a whole bunch of check variables throughout your code? In some GUI models, e.g. Silverlight, there's something called thread affinity which means you don't get to access GUI elements sitting on the main thread from other threads so you have to get out of your way to let the main thread know certain information is ready to be processed further.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't really heard any false things about threads. I've just read a whole bunch of situational case studies about synchronization being a bitch when whatever algorithm you are using isn't inherently parallel.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-21T23:04:45.707" />
  <row Id="28903" PostTypeId="2" ParentId="28855" CreationDate="2010-12-21T23:07:17.127" Score="7" ViewCount="" Body="&lt;p&gt;Go outside kid. Kick around the ball with a few of your friends.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-21T23:07:17.127" CommentCount="4" />
  <row Id="28904" PostTypeId="2" ParentId="28834" CreationDate="2010-12-21T23:10:27.497" Score="0" ViewCount="" Body="&lt;p&gt;Ya, I studied one called Logic. Didn't help as much as I thought it would.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-21T23:10:27.497" CommentCount="1" />
  <row Id="28905" PostTypeId="1" AcceptedAnswerId="28910" CreationDate="2010-12-21T23:12:06.710" Score="0" ViewCount="156" Body="&lt;p&gt;Ya know how when you watch the history channel and you see some guy talking and a little bubble comes up at the bottom of the screen and has his name and profession. And so you see the guy's name and his profession says historian. so you're like okay this is legit i will listen to him and take his words seriously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I want to know is this: Is it possible/have you ever heard of someone becoming an Internet Historian? My dream is to one day sit on the couch and watch tv and see someone who talking on the history channel and then that little bubble pops up at the bottom of the screen and it says &lt;strong&gt;Shiznits&lt;/strong&gt; &lt;em&gt;Internet Historian&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="11260" LastEditorUserId="99" LastEditorDisplayName="" LastEditDate="2010-12-22T01:22:15.950" LastActivityDate="2010-12-22T01:22:15.950" ClosedDate="2010-12-22T04:14:05.440" Title="Is it possible to be an Internet Historian For a profession?" Tags="&lt;career-advice&gt;&lt;history&gt;&lt;profession&gt;" AnswerCount="3" CommentCount="10" FavoriteCount="0" />
  <row Id="28906" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T23:21:19.143" Score="1" ViewCount="" Body="&lt;p&gt;Yes, there is plenty of evil to be had. For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Type1 variable1 = function12()&#xA;variable5 = variable1.myMethod(variable1+aGlobal);&#xA;variable2.otherMethod(anotherGlobal);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="9167" LastActivityDate="2010-12-21T23:21:19.143" CommunityOwnedDate="2010-12-21T23:21:19.143" />
  <row Id="28907" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T23:30:49.230" Score="4" ViewCount="" Body="&lt;p&gt;Copy-paste code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't itch when you are doing that, you are not a real programmer.&lt;/p&gt;&#xA;" OwnerUserId="8925" LastActivityDate="2010-12-21T23:30:49.230" CommunityOwnedDate="2010-12-21T23:30:49.230" />
  <row Id="28908" PostTypeId="2" ParentId="28855" CreationDate="2010-12-21T23:31:05.473" Score="1" ViewCount="" Body="&lt;p&gt;One of my co-workers went back to university (Computer Science) when he was 35 or so.  Hell, I started programming on a C64 when I was 14 (way back in 1984.)  Some of the people I went to university with were anywhere from 19 to 26 and a lot of them had never programmed before. So no, DEFINITELY not too late.&lt;/p&gt;&#xA;" OwnerUserId="3842" LastActivityDate="2010-12-21T23:31:05.473" />
  <row Id="28909" PostTypeId="2" ParentId="28855" CreationDate="2010-12-21T23:43:05.520" Score="1" ViewCount="" Body="&lt;p&gt;To be honest I am quite jealous. I wish I was I started programming at your age. You will be well beyond most of your peers by the time you get to college.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I remember my first computer programming class in highschool. It was business course called dataprocessing. We did all our programming in &lt;strong&gt;Q-Basic&lt;/strong&gt;. By the end of highschool we were doing &lt;strong&gt;&quot;advanced&quot;&lt;/strong&gt; programming in &lt;strong&gt;Visual Basic&lt;/strong&gt;. I remember a lot of my peers in highschool thought they were hackers. Just keep in mind its quite natural to boast at your age. I am sure your friends are misleading you about their programming skills. Hell, even in college I had peers in college that said they could complete a homework assignment &lt;strong&gt;&quot;in an hour&quot;&lt;/strong&gt;. They were also the ones that never handed in that assignment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;You seem quite humble for your age. A humble attitude will take you well beyond your peers.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1328" LastEditorUserId="1328" LastEditorDisplayName="" LastEditDate="2010-12-21T23:54:40.050" LastActivityDate="2010-12-21T23:54:40.050" CommentCount="2" />
  <row Id="28910" PostTypeId="2" ParentId="28905" CreationDate="2010-12-21T23:45:14.030" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Well, I've seen some funny questions in my time, but this one ... :-)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, it is possible that should you live long enough, and have the reputation of being knowledable in that area, you could be &lt;em&gt;presented&lt;/em&gt; as such.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, a profession? No, I don't think that's likely. For, for a profession to exist, there must be a demand for it, a wide demand, it must give a certain service to the ones learning (or produce goods...) and I just don't see internet history being all that interesting to a wider audience.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;&lt;em&gt;&lt;strong&gt;Edit, in regards to the comments posted, because the comment box is too small.&lt;/em&gt;&lt;/strong&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Several reasons why I don't think    &quot;Internet historians&quot; are gonna stuck    as a profession.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a historian to exist, an interested audience must exist. Joris mentioned a campus of, let's say, such. Now think this over; how many people were in that campus? How many is that in percentage compared to the total population?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Got it? Very small percentage indeed. (No, average people are not interested in &quot;regular history&quot;, less alone in history of &quot;computer stuff&quot;, I assure you. Never assume the majority of people think like you do (this expecially goes for technical people).).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, how many of those on campus were actually interested in that topic? Some percentage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, if you get some university to actually declare that topic and they select a professor which will teach it, do you think his learnings are going to be cost beneficial in this time where everything is viewed through that perspective? I hardly think so. Much more useful topics (in real life to people) are losing staff in this time and age.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end - not very likely that profession will exist. Hell, people are not even interested in the history of the Roman empire, or the history of their own country (which random television interviews on the street regularly prove).&lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-12-22T00:17:48.103" LastActivityDate="2010-12-22T00:17:48.103" CommentCount="10" />
  <row Id="28911" PostTypeId="2" ParentId="28667" CreationDate="2010-12-21T23:51:43.060" Score="2" ViewCount="" Body="&lt;p&gt;I'm gonna turn this around and say that while there's no absolute evil, there are tools and constructs which make it &lt;strong&gt;more plausible&lt;/strong&gt; for our feeble humans with such a &lt;a href=&quot;http://en.wikiquote.org/wiki/Edsger_Dijkstra&quot; rel=&quot;nofollow&quot;&gt;limited skull size&lt;/a&gt; to make mistakes than others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I'd say you could talk about the &lt;em&gt;evilness&lt;/em&gt; of a construct based on how likely people are to make mistakes with it. Sure you can cut bread with a knife or with a chainsaw with blades as grip, but one is more likely to cause damage than the other, even though you may be able to pull it off with enough care. &lt;/p&gt;&#xA;" OwnerUserId="3913" LastEditorUserId="3913" LastEditorDisplayName="" LastEditDate="2010-12-22T19:06:09.823" LastActivityDate="2010-12-22T19:06:09.823" CommunityOwnedDate="2010-12-21T23:51:43.060" />
  <row Id="28912" PostTypeId="2" ParentId="28732" CreationDate="2010-12-21T23:52:05.370" Score="0" ViewCount="" Body="&lt;p&gt;Can you tie your shoelaces? If you said yes then you can be a software developer. Whatever conclusions you draw about intelligence from that is up to you.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-21T23:52:05.370" />
  <row Id="28913" PostTypeId="2" ParentId="28905" CreationDate="2010-12-21T23:57:26.037" Score="0" ViewCount="" Body="&lt;p&gt;This is indeed a funny question and not because you asked about being an Internet Historian. You can be a historian in whatever subject you want, preferably something with a long history because that way you can focus on some part of it that others haven't had time to write a book about yet. I'm pretty sure that's how historians make money. They write a whole bunch of books and teach a whole bunch of boring classes using those same books.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-21T23:57:26.037" CommentCount="1" />
  <row Id="28914" PostTypeId="2" ParentId="28834" CreationDate="2010-12-21T23:58:55.810" Score="2" ViewCount="" Body="&lt;p&gt;Perhaps the most important language skills that you need for programming are the ability to be precise and the ability to express what you mean in the language that you are using.  (Not a direct answer, but maybe relevant.)&lt;/p&gt;&#xA;" OwnerUserId="9521" LastActivityDate="2010-12-21T23:58:55.810" CommentCount="1" />
  <row Id="28915" PostTypeId="2" ParentId="28905" CreationDate="2010-12-22T00:03:08.190" Score="1" ViewCount="" Body="&lt;p&gt;There are various media historians (music history, art history, even pop culture history) and there are science / technology historians. If we can have a &lt;a href=&quot;http://www.computerhistory.org/&quot; rel=&quot;nofollow&quot;&gt;Computer History Museum&lt;/a&gt; and a &lt;a href=&quot;http://www.movingimage.us/&quot; rel=&quot;nofollow&quot;&gt;Museum of the Moving Image&lt;/a&gt;, then surely we can have a &lt;em&gt;Museum of Social Media&lt;/em&gt; or whatever topic you specialize in. And besides, the &lt;a href=&quot;http://www.archive.org/web/web.php&quot; rel=&quot;nofollow&quot;&gt;Internet Archive&lt;/a&gt; is already gathering the records.&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-22T00:03:08.190" CommentCount="1" />
  <row Id="28916" PostTypeId="2" ParentId="28732" CreationDate="2010-12-22T00:10:03.063" Score="1" ViewCount="" Body="&lt;p&gt;To be a good &quot;software developer&quot; you have to understand abstraction. You not only need to understand it, but you need to live and breath it and I am not necessarily only talking about class or interface design though that is important. I am talking about the ability to take a problem and break it down or generalize it to something that is solvable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example...consider the classic problem:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A train track is 300 miles long. On one end of track, Train A leaves the station a 4PM. On the opposite end of the track, Train B leaves at 6PM. If Train A travels 45MPH and Train B 60mph, when will the meet? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Typically you see something like this&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find the rate&#xA;R = rate at which the distance between them is shrinking&#xA;R = 60MPH + 45MPR = 105MPR&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Zero the time scale &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At 6PM the trains are 300 - (45MPH)*2 = 210&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find the time they will meet &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tm = 210/105 = 2hours&lt;/p&gt;&#xA;&#xA;&lt;p&gt;6PM + 2hours = 8PM&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That in itself required some level of abstraction, but ultimately It was only solved for the given numbers. A more complete level of abstraction would solve it for any numbers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ta Time train A starts&#xA;Tb Time train b starts&#xA;Sa Speed of A&#xA;Sb Speed of B&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tm Time they meet&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tm = ((Tb - Ta)Sa / (Sa +Sb)) + Tb&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That equation represent the mathematical abstraction of word problem. Obviously, this equation is undefined for certain values. That is not really important for demonstrating my point. Now, I never have to solve this problem again. All I have to do is plug in the numbers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In software land it might look this...&#xA;int findWhenTrainsMeet(int Tb, int Ta, int Sa, int Sb)&#xA;{&#xA;    ...&#xA;}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Metaphorically, you could think the word problem as requirements document and the solution the software release. In the real world the requirements are probably not as concrete or more likely changing during the process. Creating good abstractions should minimize the surgery required for requirement changes and or feature enhancements.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The concept of abstraction is hard to fully understand and implement well, which leads to my final conclusion that yes, good software developers are indeed smart.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, just because you are a software developer by vocation does not mean that you are good. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2010-12-22T00:10:03.063" />
  <row Id="28917" PostTypeId="2" ParentId="5259" CreationDate="2010-12-22T00:18:22.087" Score="0" ViewCount="" Body="&lt;p&gt;I'd focus more on the human side, and less on the technology side.  Find out why he got back into programming in the first place, and try to give him more of that. Also, rather than speculating about why he is less motivated, &lt;strong&gt;ask him&lt;/strong&gt;.  One possibility is that he is unmotivated by practice problems, and wants something real to do.  But he is the best person to tell you that, not us.  (Unless he has an account on this site. :)&lt;/p&gt;&#xA;" OwnerUserId="4326" LastActivityDate="2010-12-22T00:18:22.087" />
  <row Id="28918" PostTypeId="2" ParentId="28642" CreationDate="2010-12-22T00:21:46.453" Score="17" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Development time is proportional to the number of developers&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a classic but it might be new to some programmers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://courses.cs.vt.edu/~cs1104/HLL/Brooks.html&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;&quot;Adding manpower to a late software project makes it later.&quot;&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-&lt;a href=&quot;http://en.wikipedia.org/wiki/The_Mythical_Man-Month&quot; rel=&quot;nofollow&quot;&gt;The Mythical Man Month&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1328" LastEditorUserId="1328" LastEditorDisplayName="" LastEditDate="2010-12-22T00:27:12.860" LastActivityDate="2010-12-22T00:27:12.860" CommunityOwnedDate="2011-01-07T06:47:37.693" />
  <row Id="28919" PostTypeId="1" AcceptedAnswerId="28974" CreationDate="2010-12-22T00:26:53.730" Score="3" ViewCount="334" Body="&lt;p&gt;What is the most &lt;strong&gt;useful word&lt;/strong&gt; &lt;em&gt;(w/ definition)&lt;/em&gt; to guide a programmer's thought stream?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;E.g.:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;&quot;Satisficing&quot;&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;em&gt;A decision-making strategy that attempts to meet criteria for adequacy, rather than to identify an optimal solution.&lt;/em&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/Satisficer&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Satisficer&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This can be:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A term that inspires your design, production, or methodology&lt;/li&gt;&#xA;&lt;li&gt;A specific model for a system you find fundamental to the way you think of a program&lt;/li&gt;&#xA;&lt;li&gt;A buzz word&lt;/li&gt;&#xA;&lt;li&gt;A recurring term that you see used in computer science textbooks&lt;/li&gt;&#xA;&lt;li&gt;An aspect of programming you find worth working for&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11266" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-23T14:56:35.497" LastActivityDate="2010-12-23T14:56:35.497" ClosedDate="2010-12-22T12:37:35.873" Title="What is 1 WORD that best highlights a productive programming mindset?" Tags="&lt;productivity&gt;" AnswerCount="14" CommentCount="3" FavoriteCount="1" />
  <row Id="28920" PostTypeId="1" AcceptedAnswerId="28945" CreationDate="2010-12-22T00:29:53.243" Score="3" ViewCount="120" Body="&lt;p&gt;I wanted to know what solutions you guys tend to do when sketch modeling on whiteboards. Since my reading on Creg Larman's very good book &lt;a href=&quot;http://www.craiglarman.com/wiki/index.php?title=Books_by_Craig_Larman#Applying_UML_and_Patterns&quot; rel=&quot;nofollow&quot;&gt;Applying UML and Patterns&lt;/a&gt;, I do my everyday business and software modeling with whiteboards. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is, I have a hard time being 'agile' and 'iterative' after the whiteboard has been erased and snapshotted. Sketching is the way to go for me but as soon as all my work is snapshotted in a digital picture, I don't find the required added value of having to either redraw it on the whiteboard, or use an UML tool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wanted to know, for those of you who favor whiteboarding over UML tools, what are your techniques? (web/desktop based softwares, hardware, materials, etc.) you employ to achieve those criterion:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Refine and iterate over past whiteboards that have been erased&lt;/li&gt;&#xA;&lt;li&gt;Collaborate remotely (not only room-to-room)&lt;/li&gt;&#xA;&lt;li&gt;Synchronize and simultaneously work on your sketches&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I have come to search for online web-based whiteboardings and I found the following which are pretty neat:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://vyew.com&quot; rel=&quot;nofollow&quot;&gt;Vyew&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://dabbleboard.com&quot; rel=&quot;nofollow&quot;&gt;Dabbleboard&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://twiddla.com&quot; rel=&quot;nofollow&quot;&gt;Twiddla&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;However, my solution seems to go over with &lt;a href=&quot;http://smarttech.com&quot; rel=&quot;nofollow&quot;&gt;Smart Technologies&lt;/a&gt;, especially with their Notebook software which is very good for whiteboarding multiple designs.&#xA;I was wondering also if some had some feedback for this application and their conferencing software as well (usage of their digital whiteboards and etc.)&lt;/p&gt;&#xA;" OwnerUserId="9417" LastActivityDate="2010-12-22T02:57:59.413" Title="What is your best whiteboarding technique when collaborating with your team?" Tags="&lt;software-development&gt;&lt;collaboration&gt;&lt;whiteboard&gt;" AnswerCount="1" FavoriteCount="2" />
  <row Id="28921" PostTypeId="2" ParentId="28877" CreationDate="2010-12-22T00:30:39.250" Score="1" ViewCount="" Body="&lt;p&gt;The GNU GPL is a source code license. The reciprocal (viral) clause only applies to derivative code. Derivative code only. It is not a patent license, and thus you can take and reimplement all ideas or algorithms. Reimplement, not verbatim code duplication. And whichever license you want to distribute your independently written code under, is up to you. Not that another FLOSS developer would mind anyway. - If you are very uneasy and want a reaffirmation, you can also contact &lt;a href=&quot;http://www.fsf.org/about/contact/email&quot; rel=&quot;nofollow&quot;&gt;info@fsf.org&lt;/a&gt; (patience).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But btw, the GNU GPL v2 is already more permissive on PHP code than on compiled languages. Unless your library was incorporated as core dependency in some proprietary/obfuscated code, it would work akin the LGPL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a side note, it's not sensible to rewrite something from PHP4 to PHP5. It's the same friggin language. If you just add syntactic sugar (private, protected, etc.) but use no real new functionality (ArrayAccess, SPLSomething, etc.) then pointless. So I hope there is really new functionality in your reimplementation.&lt;/p&gt;&#xA;" OwnerUserId="1245" LastActivityDate="2010-12-22T00:30:39.250" />
  <row Id="28922" PostTypeId="2" ParentId="28886" CreationDate="2010-12-22T00:35:46.277" Score="0" ViewCount="" Body="&lt;p&gt;Use the ssh keys that @Josh K mentions. If you have trouble with the rest, just set-up aliases in your &lt;code&gt;.bashrc&lt;/code&gt; file. Eg:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;alias prod='ssh user@production.host.com'&#xA;alias qa='ssh user@testbox.host.com'&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Then from the command line, type &lt;code&gt;qa&lt;/code&gt; and you'll be magically logged into the testbox.&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-22T00:35:46.277" />
  <row Id="28923" PostTypeId="2" ParentId="28919" CreationDate="2010-12-22T00:36:17.073" Score="4" ViewCount="" Body="&lt;h2&gt;Growth&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;A growth mindset is necessary to eliminate those hurdles you put in front of yourself. Found a good solution, but don't know the technology? Learn it. Have a particular weakness that's been plaguing you? Work on it. The world is not static, and neither are you.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-22T00:36:17.073" />
  <row Id="28924" PostTypeId="2" ParentId="18213" CreationDate="2010-12-22T00:44:23.833" Score="1" ViewCount="" Body="&lt;p&gt;The questions you have are higher level &lt;strong&gt;business&lt;/strong&gt; decisions.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;* How to handle modifications in pricing plans? Let's say quantities change, or you want to offer some free stuff.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It may be easiest to &quot;upgrade&quot; a customer's plan to the &quot;new&quot; plan at their next recurring billing.  That is, the logic around a subscription may be difficult to change mid-term - it often raises a &lt;em&gt;lot&lt;/em&gt; of questions that are difficult to answer.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;* How to handle unpaid invoices? I mean, freeze the service until the payment has been done and then resume it.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This should depend on how and in what way customers rely on your service.  With some services, an interruption is extremely detrimental (and angers your clients greatly), so there may be more reason for additional wiggle room where the service is left available while attempts at collection occur.  Billing prior to the end of the service term can help.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;* When to make the invoices? The idea is to make one invoice for the monthly fee and a second invoice for the extra services that were consumed.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Probably a safe bet.  Unless your &lt;strong&gt;business&lt;/strong&gt; makes more sense to bill at the same time each month for everything.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;* What payment methods to use? The choosen now is by bank account, and mobile phone validation with a SMS. If user doesn't pay we call that phone and ask for payment.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Use a 3rd party service, something like &lt;a href=&quot;http://www.authorize.net/&quot; rel=&quot;nofollow&quot;&gt;Authorize.Net&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6735" LastActivityDate="2010-12-22T00:44:23.833" />
  <row Id="28925" PostTypeId="2" ParentId="28919" CreationDate="2010-12-22T00:44:30.647" Score="7" ViewCount="" Body="&lt;h2&gt;Iterate&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Hard work with enough iterations will in all circumstances lead to a solution; a good enough for any practical appliance.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-22T00:44:30.647" />
  <row Id="28926" PostTypeId="2" ParentId="28603" CreationDate="2010-12-22T00:45:08.117" Score="0" ViewCount="" Body="&lt;p&gt;Because it's an efficient way to program a finite state machine, which is a powerful tool when it applies.  It's basically it's own language for programming FSMs, which is helpful if you know the language, annoying if you don't. &lt;/p&gt;&#xA;" OwnerUserId="4326" LastActivityDate="2010-12-22T00:45:08.117" />
  <row Id="28927" PostTypeId="1" AcceptedAnswerId="28932" CreationDate="2010-12-22T00:48:59.193" Score="20" ViewCount="715" Body="&lt;p&gt;Our organisation is looking to implement SMART goals for it's programmers. SMART is an acronymn for Specific Measurable Achieveable Relevant and Time-Bound. They are fairly common in large corporations. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My own prior experience with SMART goals has not been all that positive. Have other programmers found them an effective way to measure performance? What are some examples of good SMART goals for programmers (if they exist).&lt;/p&gt;&#xA;" OwnerUserId="8400" LastActivityDate="2010-12-22T16:59:40.257" Title="Are SMART goals useful for programmers?" Tags="&lt;work&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="5" />
  <row Id="28928" PostTypeId="2" ParentId="28919" CreationDate="2010-12-22T00:50:20.020" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Care&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See &lt;a href=&quot;http://programmers.stackexchange.com/questions/12334/methodologies-of-a-high-class-development-team/12415#12415&quot;&gt;Kate Gregory's eloquent answer&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="85" LastActivityDate="2010-12-22T00:50:20.020" CommentCount="1" />
  <row Id="28929" PostTypeId="1" CreationDate="2010-12-22T00:56:40.043" Score="0" ViewCount="47" Body="&lt;p&gt;Hi:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Typing in 'site:example.com' in the Google search box gives me all the sub-domains that Google has indexed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a way I can retrieve this results via Google API? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not want to use screen scrapping if possible.&lt;/p&gt;&#xA;" OwnerUserId="11267" LastActivityDate="2010-12-22T00:56:40.043" ClosedDate="2010-12-22T12:34:14.110" Title="Finding Sub-domains" Tags="&lt;python&gt;&lt;google&gt;" CommentCount="1" />
  <row Id="28930" PostTypeId="2" ParentId="28642" CreationDate="2010-12-22T00:59:33.847" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Learning a language means understanding its syntax, and is therefore trivial.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Programming language&quot; is not synonymous with &quot;spoken/written language&quot; in this way. Knowing the syntax of a programming language is equivalent to knowing the alphabet of a spoken/written language. Really learning a language involves much, much more than its syntax.&lt;/p&gt;&#xA;" OwnerUserId="3044" LastActivityDate="2010-12-22T00:59:33.847" CommunityOwnedDate="2011-01-07T06:47:37.693" CommentCount="1" />
  <row Id="28931" PostTypeId="2" ParentId="28919" CreationDate="2010-12-22T01:00:26.100" Score="1" ViewCount="" Body="&lt;p&gt;Reuse&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Avoid reinventing a bicycle. Be aware of state of art technologies, patterns and techniques in your field. Even when faced with a custom task reduce its parts to known art and focus your energy on those few parts which are truly unique.&lt;/p&gt;&#xA;" OwnerUserId="11268" LastActivityDate="2010-12-22T01:00:26.100" />
  <row Id="28932" PostTypeId="2" ParentId="28927" CreationDate="2010-12-22T01:03:07.557" Score="13" ViewCount="" Body="&lt;p&gt;In a word&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;No&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First : I've never had my projects remain stable enough that I could establish the SMART goals with any meaning. The time scales between when my roles change on a project and when perf reviews are done are just too far out of sync. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second: Measuring individual performance is a great way to create a &quot;not my job&quot; mentality and negative competition between individuals and/or the various sub teams in an organization. It's very easy to game the system and make sure you're looking out for yourself and not really helping out the entire team. We should be encouraging people to be team players, but then our organizations do the exact opposite.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of these sorts of systems are antithetical to team building. Mary Poppendieck's done a far better job of articulating this than I can ever do. &lt;a href=&quot;http://poppendieck.blogspot.com/2004/08/team-compensation.html&quot; rel=&quot;nofollow&quot;&gt;http://poppendieck.blogspot.com/2004/08/team-compensation.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-12-22T01:03:07.557" CommentCount="6" />
  <row Id="28933" PostTypeId="2" ParentId="28667" CreationDate="2010-12-22T01:03:29.593" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.parashift.com/c++-faq-lite/big-picture.html#faq-6.15&quot; rel=&quot;nofollow&quot;&gt;http://www.parashift.com/c++-faq-lite/big-picture.html#faq-6.15&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;It means such and such is something you should avoid most of the time, but not something you should avoid all the time. For example, you will end up using these &quot;evil&quot; things whenever they are &quot;the least evil of the evil alternatives.&quot; &lt;strong&gt;It's a joke, okay? Don't take it too seriously.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="6611" LastActivityDate="2010-12-22T01:03:29.593" CommunityOwnedDate="2010-12-22T01:03:29.593" />
  <row Id="28934" PostTypeId="2" ParentId="22436" CreationDate="2010-12-22T01:04:13.197" Score="0" ViewCount="" Body="&lt;p&gt;What you describe seems to violate the &lt;a href=&quot;http://en.wikipedia.org/wiki/Peter_Principle&quot; rel=&quot;nofollow&quot;&gt;Peter Principle&lt;/a&gt;, you are therefore wrong. :D&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From Wikipedia:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The Peter Principle is the principle that &quot;in a hierarchy every employee tends to rise to their level of incompetence&quot;.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;It was formulated by Dr. Laurence J. Peter and Raymond Hull in their 1969 book The Peter Principle, a humorous treatise which also introduced the &quot;salutary science of hierarchiology&quot;, &quot;inadvertently founded&quot; by Peter. It holds that in a hierarchy, members are promoted so long as they work competently. Sooner or later they are promoted to a position at which they are no longer competent (their &quot;level of incompetence&quot;), and there they remain, being unable to earn further promotions. This principle can be modelled and has theoretical validity for simulations. Peter's Corollary states that &quot;in time, every post tends to be occupied by an employee who is incompetent to carry out their duties&quot; and adds that &quot;work is accomplished by those employees who have not yet reached their level of incompetence&quot;. Managing upward is the concept of a subordinate finding ways to subtly &quot;manage&quot; superiors in order to limit the damage that they end up doing.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2100" LastActivityDate="2010-12-22T01:04:13.197" />
  <row Id="28935" PostTypeId="2" ParentId="28927" CreationDate="2010-12-22T01:11:09.387" Score="9" ViewCount="" Body="&lt;p&gt;We've used SMART goals in the large corporation where I work.  They're meaningless for the most part. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Goals come down from upper management and are lofty and abstract.  Relating them to concrete projects and development is usually a joke.  Most of the projects that come into the group come from the business and are to meet a specific business need.  So you code the project, put it in production and do an awesome job as usual.  How does that relate to a goal that someone in upper management came up with?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We do much better as a group when we come up with our own goals.  Sometimes they include training on a specific topic or implementing a new process change, something that can actually be related to what we do.  They're still not really related to the day to day operation of coding by they're at least things that help move the group foward in the corporate environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Mnementh has so correctly pointed out, my answer is based on SMART goals not being, well, SMART.  I would add to my answer that if you are a manager of programmers and want to implement SMART goals, be sure that they are SMART.  Use my mangagers' example as a way NOT to implement SMART goals.  If you don't manage programmers and someone tells you that you're now going to start using SMART goals and they end up like ours did, then understand that you've got people in upper management who likes buzz words and being able to check them off a list of things they've implemented.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-22T16:59:40.257" LastActivityDate="2010-12-22T16:59:40.257" CommentCount="3" />
  <row Id="28937" PostTypeId="2" ParentId="22436" CreationDate="2010-12-22T01:25:47.053" Score="1" ViewCount="" Body="&lt;p&gt;If you can't be replaced, you can't be promoted. Not just for programming.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-22T01:25:47.053" />
  <row Id="28939" PostTypeId="2" ParentId="28886" CreationDate="2010-12-22T01:57:20.933" Score="2" ViewCount="" Body="&lt;p&gt;If you have the keys set up already, you can create a &lt;code&gt;config&lt;/code&gt; file in the ~/.ssh directory with contents similar to this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Host myname1&#xA;  Hostname host1.example.com&#xA;  User host1_user&#xA;&#xA;Host myname2&#xA;  Hostname host2.example.com&#xA;  User host2_user&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Then from the command line you can just use:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;ssh myname1&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5348" LastActivityDate="2010-12-22T01:57:20.933" />
  <row Id="28940" PostTypeId="2" ParentId="28667" CreationDate="2010-12-22T02:04:53.563" Score="2" ViewCount="" Body="&lt;p&gt;Redundant code is very very evil.&lt;/p&gt;&#xA;" OwnerUserId="2280" LastActivityDate="2010-12-22T02:04:53.563" CommunityOwnedDate="2010-12-22T02:04:53.563" />
  <row Id="28941" PostTypeId="2" ParentId="27944" CreationDate="2010-12-22T02:05:02.807" Score="1" ViewCount="" Body="&lt;p&gt;If you want to move in that direction you want to focus on building you experience with the technologies. You can do this in a number of ways. First is to work on your own projects using the Microsoft products. Fortunately they have at least provided a number of free tools like Visual Studio express, so you can at least get your feet wet. If you do not have anything in mind that you want to work on, just find some books and read and go through any exercises or examples that they provide. You can also look to see if there are any .NET user groups in you area and start attending those and networking. If there are no user groups, maybe look for conferences near you. Thirdly see if you can find a company that makes use of multiple technologies where you can use your existing skills, but have an opportunity to be exposed to other technologies and gain some additional experience on the job. &#xA;Many of the skills you have learned will still apply regardless of the technology and language you are using. So also continue to focus on continuing to develop those skills.&lt;/p&gt;&#xA;" OwnerUserId="10680" LastActivityDate="2010-12-22T02:05:02.807" />
  <row Id="28942" PostTypeId="2" ParentId="5259" CreationDate="2010-12-22T02:11:51.040" Score="0" ViewCount="" Body="&lt;p&gt;If he 5 year's removed, he probably doesn't remember C++ that well. I think a small project to make him familiar with a language again is the best route. The problem is finding something interesting. I suggested asking him to implement a suduko puzzle solver. I think it is a fun problem that should mostly likely exercise most of the fundamental program techniques. For added intensive you two could place a wager to see who's solution is faster. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that for added complexity ask him to implement an interface to an sql database that loads n number of different puzzles and stores the total execution time for each puzzled solved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A more advance project that could both work on that I also think would be fun is some sort of simple interactive mutliplayer game over the internet. Chess or checkers for example. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also suggest having him go through the steps of loading all the tools on his computer and building make files to manage his project.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If interest is not the issue then consider the following. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that most often frustration involving learning something new stems from not knowing how to do something AND not being familiar enough with the material to know what questions to ask in order to figure out how to do it. If you really want to help him then you need to figure out what exactly is frustrating him. Is it now knowing how to use the tools? Is it struggling with syntax? Not understanding memory management? ....ect. Just strait up ask him what is frustrating. It might be everything. Once you know that then you can address the issue accordingly. Frequently people will not ask for help our fear of feeling stupid or whatever other reason that you can think of. Sometimes you just need to poke them a bit to get the root of the issue.    &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2010-12-22T02:11:51.040" />
  <row Id="28943" PostTypeId="2" ParentId="28601" CreationDate="2010-12-22T02:25:26.060" Score="4" ViewCount="" Body="&lt;p&gt;There is no one true way to learn AJAX development. The best way to get started is, well, just to get started. The absolute minimum you need to know is,&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Basic JavaScript, with an emphasis on JS scoping rules and the UI thread&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;First bookmark &lt;a href=&quot;https://developer.mozilla.org/en/JavaScript/Reference&quot; rel=&quot;nofollow&quot;&gt;https://developer.mozilla.org/en/JavaScript/Reference&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The 'A' in AJAX stands for Asynchronous, which means that you have to learn how to write callback functions (which are all closures). The scoping of JS closures can be tricky if you haven't worked with them before. Read &lt;a href=&quot;http://javascript.crockford.com/code.html&quot; rel=&quot;nofollow&quot;&gt;http://javascript.crockford.com/code.html&lt;/a&gt; on 'Function declarations' to get started and read up on situations on stackoverflow.com after that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read up on Function#apply and Function#call,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply&quot; rel=&quot;nofollow&quot;&gt;https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call&quot; rel=&quot;nofollow&quot;&gt;https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learn the basics of the DOM and CSS&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The DOM is just a big tree of nodes with properties. In combination with CSS this gives you the visual page that you see in the browser. Using JS you can add visual effects and create/remove new node structures on the fly. See  &lt;a href=&quot;http://books.mozdev.org/html/mozilla-chp-5-sect-2.html&quot; rel=&quot;nofollow&quot;&gt;http://books.mozdev.org/html/mozilla-chp-5-sect-2.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learn about DOM Events&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Events are how people interact with your page/application. Most frameworks provide helper/lib calls for handling this, but using them is pretty pointless if you don't understand the underlying behavior. &lt;a href=&quot;http://www.quirksmode.org/js/events_properties.html&quot; rel=&quot;nofollow&quot;&gt;http://www.quirksmode.org/js/events_properties.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;JavaScript is one of these 'building block' languages where the standard library provides only the basics. For example, there are no namespaces, but there are several ways in which you can usefully fake them. Every framework does it differently. Get a grip on the basics &lt;em&gt;without&lt;/em&gt; using a framework before you commit to a specific framework for a project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a lot more to learn, but this should get you started. If you want a depressingly long list of skills you need to master, try this SO question,&#xA;&lt;a href=&quot;http://stackoverflow.com/questions/72394/what-should-a-developer-know-before-building-a-public-web-site&quot;&gt;http://stackoverflow.com/questions/72394/what-should-a-developer-know-before-building-a-public-web-site&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most important thing is just to get started. Build some trivial hobby project and you'll find the most important things you need to learn fast enough.&lt;/p&gt;&#xA;" OwnerUserId="2069" LastEditorUserId="2069" LastEditorDisplayName="" LastEditDate="2010-12-22T02:33:59.737" LastActivityDate="2010-12-22T02:33:59.737" />
  <row Id="28944" PostTypeId="2" ParentId="25600" CreationDate="2010-12-22T02:25:40.147" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Version Control&lt;/strong&gt;&#xA;Since you're working in a team it's in your best interest that you go with something distributed. Your candidates are Git and Mercurial. This means your team can commit locally without breaking the project, but still track their work, then push these commits to the central server. It's also much faster and has fewer merge conflicts since the code is tracked as change sets rather than revisions. Read though the hginit guide (written by the co-founder of stack overflow no less) and you'll understand a bit more about what a DVCS is.http://hginit.com/&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should also use the repository for deployment instead of rsync or ftp.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Test Driven Development&lt;/strong&gt;&#xA;Depending on what you are doing testing can waste a lot of time. I'm not saying you should completely skip it, for smaller projects it's overhead. If you are writing a library or large long-term project, sure write tests for it. The tests will help in the maintenance phase. Be aware that TDD can't find all your bugs. There will be user experience problems, layout problems, performance problems and so on. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Debugging&lt;/strong&gt;&#xA;Xdebug is basically your only choice here. It integrates well with Netbeans. &#xA;If you feel the need to ever print variables out you should use a log file. Use the frameworks log function, this is much safer in production.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Planning / Diagrams&lt;/strong&gt;&#xA;If you are using a good framework you shouldn't need to make detailed diagrams too much. Keep it simple and work in shorter release cycles, it's easy to over-plan. The requirements and specifications of a project are bound to change so I wouldn't spend all your time on them. Remember that code IS specification at the most detailed level. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use your bug tracking tool (see below) to break the specification up into tasks which you can assign to team members. Use a central tool to document the projects, the bug tracker will probably have a wiki.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can use a tool like Mysql Workbench to design database schemas in diagrams and export them as SQL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Frameworks and OOP&lt;/strong&gt;&#xA;This is probably the most important part. Find yourself a popular framework which will support rapid development and code reuse. &#xA;Some people won't like me saying this, but a framework should dictate the way you work. It should provide structure so one developer can switch project and know exactly where the controller for a certain page is, exactly what the template variables are and how to query the model. Some frameworks allow too much flexibility here and you'll find that developers don't always use the framework in the same way. I like the python philosophy; there should be one obvious way to do everything.&#xA;This is why I like django and rails, they are quite opinionated and this means I can look at someone elses code and understand what it does. Symfony looks like the best option here, but I would checkout Rails (Ruby) and Django (python) anyway, it might be exactly what you need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many 'what framework' questions on stack overflow like this one:&#xA;&lt;a href=&quot;http://stackoverflow.com/questions/2648/what-php-framework-would-you-choose-for-a-new-application-and-why&quot;&gt;http://stackoverflow.com/questions/2648/what-php-framework-would-you-choose-for-a-new-application-and-why&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Bug Tracking&lt;/strong&gt;&#xA;Get your team a good bug tracker which is made for developers. Don't use something over simplified like basecamp. Redmine and Unfuddle are two examples of excellent bug trackers, they can also track time and integrate with your repositories. Your team should use this tool to communicate on issues rather than email or IM. It makes it easier for a new developer when there is an existing history of bugs and docs available.&#xA;This article explains exactly what any good bug tracker needs to do and why. &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000029.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/fog0000000029.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5678" LastEditorUserId="5678" LastEditorDisplayName="" LastEditDate="2010-12-22T03:18:28.657" LastActivityDate="2010-12-22T03:18:28.657" />
  <row Id="28945" PostTypeId="2" ParentId="28920" CreationDate="2010-12-22T02:57:59.413" Score="2" ViewCount="" Body="&lt;p&gt;I've used &lt;a href=&quot;http://balsamiq.com&quot; rel=&quot;nofollow&quot;&gt;balsamiq mockups&lt;/a&gt; with my team. I love the tool but hate the pain of having to be in the same room with my team with one person driving. You can save mockups and others can edit them but nothing along the lines of real-time collaboration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a great question and I hope to see some interesting answers. Twiddla seems like the most promising for my needs. If it had the ability to save and version the mockups then I'd be sold.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember Etherpad? That was mission critical for my team and I until they dropped off the face of the earth. I was really looking forward to them building some type of whiteboard app. Then I noticed that Twiddla has Etherpad integration. &lt;a href=&quot;https://github.com/ether/pad&quot; rel=&quot;nofollow&quot;&gt;The code is still around&lt;/a&gt; so I wonder if they implemented it on their own, or if its an old integration?&lt;/p&gt;&#xA;" OwnerUserId="2181" LastActivityDate="2010-12-22T02:57:59.413" CommentCount="4" />
  <row Id="28946" PostTypeId="2" ParentId="28551" CreationDate="2010-12-22T02:57:59.600" Score="1" ViewCount="" Body="&lt;p&gt;Generate/draw/read a call graph.&lt;/p&gt;&#xA;" OwnerUserId="6385" LastActivityDate="2010-12-22T02:57:59.600" />
  <row Id="28947" PostTypeId="1" AcceptedAnswerId="28975" CreationDate="2010-12-22T03:17:05.427" Score="11" ViewCount="369" Body="&lt;p&gt;In ancient history, Brendan Eich had a language design, and in today's world, JavaScript is a popular language implemented and used in many different places.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What caused the language to become popular? Was it the C-like syntax familiar to previous programmers? Did Netscape have enough control of the market to force it to be used? Or is there some deeper reason that JavaScript is popular and other languages are not?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Particularly, if you had to make a language as popular as JavaScript, what initial conditions would you need to recreate its growth in popularity?&lt;/p&gt;&#xA;" OwnerUserId="11283" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2010-12-22T03:54:20.320" LastActivityDate="2010-12-22T05:33:59.153" Title="How did JavaScript become popular?" Tags="&lt;programming-languages&gt;&lt;javascript&gt;&lt;history&gt;" AnswerCount="10" FavoriteCount="1" />
  <row Id="28948" PostTypeId="2" ParentId="28947" CreationDate="2010-12-22T03:24:16.030" Score="1" ViewCount="" Body="&lt;p&gt;Hasn't is been the only cross-browser client-side scripting language? Its popularity seems to have grown in lock-step with that of the web, which makes sense.&lt;/p&gt;&#xA;" OwnerUserId="5668" LastActivityDate="2010-12-22T03:24:16.030" />
  <row Id="28949" PostTypeId="2" ParentId="28855" CreationDate="2010-12-22T03:24:18.940" Score="0" ViewCount="" Body="&lt;p&gt;No worries, I was 15 when I started with BASIC, and now I am the most awesomest programmer ever :-)&lt;/p&gt;&#xA;" OwnerUserId="5822" LastActivityDate="2010-12-22T03:24:18.940" />
  <row Id="28950" PostTypeId="1" AcceptedAnswerId="33172" CreationDate="2010-12-22T03:24:57.443" Score="10" ViewCount="573" Body="&lt;p&gt;I'm studying Haskell for the purpose of understanding functional programming, with the expectation that I'll apply the insight that I gain in other languages (Groovy, Python, JavaScript mainly.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I choose Haskell because I had the impression that it is very purely functional, and wouldn't allow for any reliance on state.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did not choose to learn Haskell because I was interested in navigating an extremely rigid type system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is this:  Is a strong type system a necessary by-product of an extremely pure functional language, or is this an unrelated design choice particular to Haskell?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it is the latter, I'm curious what would be the most purely functional language that is dynamically typed.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not particularly opposed to strong typing, it has its place, but I'm having a hard time seeing how it benefits me in this educational endeavor.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2011-03-21T16:07:37.630" Title="Is Haskell's type system an obstacle to understanding functional programming?" Tags="&lt;learning&gt;&lt;functional-programming&gt;&lt;type-system&gt;&lt;haskell&gt;" AnswerCount="10" CommentCount="8" FavoriteCount="2" />
  <row Id="28951" PostTypeId="2" ParentId="28947" CreationDate="2010-12-22T03:26:39.717" Score="20" ViewCount="" Body="&lt;p&gt;It's pretty simple: Netscape used a JavaScript engine in their browser. If you wanted to do scripting on the web, JavaScript was &lt;strong&gt;it&lt;/strong&gt;. Internet Explorer had (and still has) both JavaScript and VBScript, but obviously if you want to work in more than just IE you have no choice but to use JavaScript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;JavaScript is a great language in its own right, but it would be nowhere near as popular today if it weren't for the fact that it's the only language you can use to script HTML.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2010-12-22T03:50:56.410" LastActivityDate="2010-12-22T03:50:56.410" CommentCount="6" />
  <row Id="28952" PostTypeId="2" ParentId="28947" CreationDate="2010-12-22T03:28:00.917" Score="-2" ViewCount="" Body="&lt;p&gt;Javascript is popular as a hack to overcome the shortcomings of HTML markup for making webpages appear like designers want them to appear. Without Javascript all webpages would look like &lt;a href=&quot;http://www.w3.org/Protocols/rfc2616/rfc2616.html&quot; rel=&quot;nofollow&quot;&gt;this - HTTP 1.1&lt;/a&gt;. Barely a step-up from the &lt;a href=&quot;http://en.wikipedia.org/wiki/File%3aFloodgap_gopher_top_menu.PNG&quot; rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; protocol.&lt;/p&gt;&#xA;" OwnerUserId="5822" LastActivityDate="2010-12-22T03:28:00.917" CommentCount="3" />
  <row Id="28953" PostTypeId="2" ParentId="28885" CreationDate="2010-12-22T03:30:11.567" Score="1" ViewCount="" Body="&lt;p&gt;If you don't want to write tests for your code, then don't use threads. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Threads are not for the typical 'copy and paste' programmer who does not understand underlying fundamentals of OS and computer architecture. Since 90% of programmers are only familiar with Java, these really are not the people who should be using threads. Java makes threads &quot;easy&quot; but I've seen a lot of programmers who just think that if they used synchronized structures there code will work in threads ....  uhm no.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, everyone needs to start somewhere, just don't make your first threading project upgrading your companies production backend server.&lt;/p&gt;&#xA;" OwnerUserId="3122" LastActivityDate="2010-12-22T03:30:11.567" />
  <row Id="28954" PostTypeId="2" ParentId="27944" CreationDate="2010-12-22T03:32:25.510" Score="3" ViewCount="" Body="&lt;p&gt;My advice: find a job as a C# developer. You don't have to have the exact skillset listed in a job ad to get a job: if you show that you're a capable developer you should be able to land a job on the assumption you'll pick up the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm talking from experience here. My background is mostly Lotus Notes and Oracle PL/SQL, with bits of .NET, Java and Adobe Flex. I decided I wanted to focus on .NET, so I went and interviewed for .NET jobs. I hadn't done any .NET in 3+ years, but now I'm up to my neck in MVC, WCF and lambdas :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically: don't under-value your existing skills, and don't be afraid to learn on the job. Really, there's no substitute for real-world dev experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: I'm also in Aus. There are opportunities if you go after them.&lt;/p&gt;&#xA;" OwnerUserId="5668" LastActivityDate="2010-12-22T03:32:25.510" CommentCount="5" />
  <row Id="28955" PostTypeId="2" ParentId="28579" CreationDate="2010-12-22T03:33:31.297" Score="4" ViewCount="" Body="&lt;p&gt;Ego != Arrogance&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I despise working with egotists, I can't deny that a certain amount of &quot;practical arrogance&quot; is necessary to being a great hacker (a great anything, really).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Ego&lt;/strong&gt; is about &lt;em&gt;image&lt;/em&gt; -- trying to puff up how you'll look to others.  It's usually a sign of a fragile sense of identity and/or a fear of failure.  An ego-ridden coder brags, name-drops, and tries to bring the focus on his/her accomplishments instead of others'.  He/she tends to try to hide mistakes, and acts threatened in the face of someone else being right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Arrogance&lt;/strong&gt; is the assumption that you can accomplish things, even terribly difficult things, sometimes in the absence of any actual evidence to support that assumption.  An arrogant coder isn't particularly attached to being right (because he/she is so sure he/she can do great things that he/she isn't terribly invested in &quot;looking good&quot;), and readily accepts others' great ideas.  He/she readily asks questions, and tackles hard problems, without fretting about whether he/she is doing it right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ego and Arrogance are antithetical to one another.  You don't feel the need to bolster your image if you are already sure you are awesome.  Arrogance, while occasionally annoying to the less-arrogant, is a pretty practical viewpoint if you think about it.  If I were unsure of myself, I'd spend more time second-guessing, and less time doing; I'd be less likely to take on difficult projects; I'd be more likely to try to prove myself by getting my own suggestions accepted even when someone else's is superior.  Arrogance is a great antidote to ego.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a better-worded explanation than I could give, check out ESR's blog post &quot;&lt;a href=&quot;http://esr.ibiblio.org/?p=1404&quot; rel=&quot;nofollow&quot;&gt;Ego is for little people&lt;/a&gt;&quot;&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-22T03:33:31.297" CommentCount="1" />
  <row Id="28956" PostTypeId="2" ParentId="28855" CreationDate="2010-12-22T03:34:15.650" Score="0" ViewCount="" Body="&lt;p&gt;When is it too late to start programming ... maybe after about 75 or 80, but I'm sure there are some people that could get really good by 85 or 90 in only 10 years.&lt;/p&gt;&#xA;" OwnerUserId="3122" LastActivityDate="2010-12-22T03:34:15.650" />
  <row Id="28957" PostTypeId="2" ParentId="28947" CreationDate="2010-12-22T03:46:13.260" Score="1" ViewCount="" Body="&lt;p&gt;I really think it has to do with its &lt;strong&gt;C-like syntax&lt;/strong&gt;. According to &lt;a href=&quot;http://en.wikipedia.org/wiki/JavaScript&quot; rel=&quot;nofollow&quot;&gt;Wikipedia&lt;/a&gt; Javascript appeared in '95. At that time &lt;strong&gt;C&lt;/strong&gt; was at an all time high and Java was the next-and-coming language. I think the syntax was really appealing (for that time) and its name association with the next big language, &lt;strong&gt;Java&lt;/strong&gt;, gave it an edge. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It allowed an easy cross over at that time for &lt;strong&gt;C&lt;/strong&gt; programmers to adapt to a dynamic language.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Programming Language    Dec 2010    Dec 2005    Dec 1995        Dec 1985&#xA;Java                    1           1           -               -&#xA;C                       2           2           1               1&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&quot; rel=&quot;nofollow&quot;&gt;Tiobe Index&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I was to recreate the success of &lt;strong&gt;Javascript&lt;/strong&gt; I would look at problems plaguing modern programmers and give them a solution with a familiar syntax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMO parallel programming is the next big problem programmers are facing. I think functional-languages really do a great job at overcoming that obstacle. If I was to create the next &lt;strong&gt;Javascript&lt;/strong&gt; I would create a functional-language with a &lt;strong&gt;common platform&lt;/strong&gt;. In addition I think it would need to be flexible enough to be a scirpting language but powerful enough to be a statically typed language, with a great framework. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although not everyone may agree, under those conditions, I think &lt;strong&gt;F#&lt;/strong&gt; may have a lot of merit in the future.&lt;/p&gt;&#xA;" OwnerUserId="1328" LastEditorUserId="1328" LastEditorDisplayName="" LastEditDate="2010-12-22T04:06:11.887" LastActivityDate="2010-12-22T04:06:11.887" CommentCount="5" />
  <row Id="28958" PostTypeId="2" ParentId="28947" CreationDate="2010-12-22T03:53:20.113" Score="0" ViewCount="" Body="&lt;p&gt;I for one think people thought Javascript had to do something with Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Like nowadays everything starts with an &quot;i&quot; )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Marketing/publicity strategy does play a significant role.&lt;/p&gt;&#xA;" OwnerUserId="7967" LastActivityDate="2010-12-22T03:53:20.113" CommentCount="1" />
  <row Id="28959" PostTypeId="2" ParentId="28642" CreationDate="2010-12-22T03:57:32.173" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;As long as we document it, no one can claim it is a bug.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been on too many projects that excuse unexpected or stupid behavior as long as we write it down somewhere.&lt;/p&gt;&#xA;" OwnerUserId="9540" LastEditorUserId="12613" LastEditorDisplayName="" LastEditDate="2011-01-07T10:50:31.623" LastActivityDate="2011-01-07T10:50:31.623" CommunityOwnedDate="2011-01-07T06:47:37.693" CommentCount="1" />
  <row Id="28960" PostTypeId="2" ParentId="27944" CreationDate="2010-12-22T04:05:32.053" Score="1" ViewCount="" Body="&lt;p&gt;Since you are really only just starting out in your career, it may not be as hard as you think to get a job using the MS technology stack with very little experience.  You just have to be willing to shoot for the junior jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've hired a lot of people, and I have different expectations of their experience based on the position I'm trying to fill.  If I'm looking at a senior or architect level role, I'd expect to see a fair amount of experience.  But not all of it has to be in the exact technology or skill set I'm looking for.  If I want someone with C# experience but they have 5 of Java and 3 of C++, I know they aren't going to have much difficulty picking up a new language.  By the way, as you get further into your career, you will quickly realize that learning a new language often isn't a big deal.  Learning all the libraries and idioms of the language is what takes time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I'm looking at a junior position, I give a lot less weight to their experience.  I really want to figure out of they have the capability to learn.  Getting your CS (or whatever) degree is a good step in that direction, because it shows that you were able to learn something.  If you have work experience in the CS field, great.  Someone thought you were smart enough to hire.  I'm going to throw some programming questions at you (maybe on paper, maybe on a whiteboard) and ask you to solve them in your favorite language.  Yes, in the language of &lt;strong&gt;your&lt;/strong&gt; choice.  What I'm trying to see is if you can work your way through a problem, and I'll be able to follow enough your whatever language you pick to see whether you got the answer right or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously if you know something about the technology the job will require, all the better.  Spend your off hours boning up on the subjects so you will at least be able to recognize the important keywords they might throw at you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To give you some more hope, I hired a guy who had some C experience but not a lot.  It was for a junior C job.  The guy was obviously smart, well spoken, and could reason through the problem.  Unfortunately, he was still a bit weak on the C side.  We said, &quot;tell you what, work on your C, come back in a couple of weeks, and we'll try this again.&quot;  He did, we asked him different questions (obviously), and he was definitely better.  Not knock it out of the park better, but a definite improvement.  We decided to hire him, and didn't regret it.  He worked hard, and when he wasn't sure, he asked questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the upshot of this long winded ramble is, if you want to change what you are working on, go for it.  Especially this early in your career.  Shoot for the jobs and see what happens.  If you can, get some feedback on where you did well, and not so well.  In the end, it will be worth it.&lt;/p&gt;&#xA;" OwnerUserId="11286" LastEditorUserId="11286" LastEditorDisplayName="" LastEditDate="2010-12-22T04:22:28.290" LastActivityDate="2010-12-22T04:22:28.290" />
  <row Id="28961" PostTypeId="2" ParentId="28950" CreationDate="2010-12-22T04:13:10.880" Score="18" ViewCount="" Body="&lt;p&gt;The most dynamically typed functional language is arguably Scheme. That said, Haskell's type system is an indicator of it's purity. It's a question of &quot;how does one measure purity?&quot;. Haskell's type system let's you easily cordon off impure actions in &lt;code&gt;IO&lt;/code&gt;. To do that, you need a static type system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But let's say Haskell's type system has nothing to do with functional programming. It would still be the height of hubris to claim that the type system wouldn't help you in this educational endeavor. Haskell's type system is rich and complex, ad all the more interesting when compared to the type systems of C++ and OCaml.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it obstacle? No, I think it is an asset. Try to consider how to deal with Haskell's laziness without &lt;code&gt;IO&lt;/code&gt; for example.&lt;/p&gt;&#xA;" OwnerUserId="9867" LastActivityDate="2010-12-22T04:13:10.880" CommentCount="1" />
  <row Id="28962" PostTypeId="2" ParentId="28947" CreationDate="2010-12-22T04:16:10.240" Score="1" ViewCount="" Body="&lt;p&gt;JavaScript became popular because of AJAX and good inspection tools such as Firebug. Of course the fact that it worked on all major browsers and was only way to do DHTML helped.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically to make even ugliest language successfull it has to be able to do really usefull thing that no other language can. Also you need to provide tools that allow programmers to really feel that they contol what language does which was not the case for javascript before firebug.&lt;/p&gt;&#xA;" OwnerUserId="11290" LastActivityDate="2010-12-22T04:16:10.240" CommentCount="1" />
  <row Id="28963" PostTypeId="2" ParentId="21169" CreationDate="2010-12-22T04:24:53.867" Score="0" ViewCount="" Body="&lt;p&gt;John Strohm made good points, and my own experiences jibe with these. I'm looking for a suitable keyboard for my mac desktop; the Apple keyboards are unsuitable.&lt;/p&gt;&#xA;" OwnerUserId="11293" LastActivityDate="2010-12-22T04:24:53.867" />
  <row Id="28964" PostTypeId="1" AcceptedAnswerId="29011" CreationDate="2010-12-22T04:27:01.947" Score="3" ViewCount="237" Body="&lt;p&gt;What are the challenges that an experienced programmer with the usual C++/UNIX background would face when trying to learn functional programming? The main motive for learning is to gain a fresh perspective, perhaps that'd help write better code. This is debatable though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should Haskell be the introductory language or Prolog or Lisp or F#? &lt;/p&gt;&#xA;" OwnerUserId="8720" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-23T14:56:11.317" LastActivityDate="2010-12-23T14:56:11.317" Title="Challenges for the experienced coder to learn functional programming?" Tags="&lt;self-improvement&gt;&lt;f#&gt;&lt;lisp&gt;&lt;haskell&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="28965" PostTypeId="2" ParentId="28885" CreationDate="2010-12-22T04:33:53.267" Score="0" ViewCount="" Body="&lt;p&gt;You will eventually loose any gains from threading because fixing crazy bugs that will arise from use of some libraries/functions that are not thread safe (what you were not aware of) will require excessive synchronization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have much higher probability of encountering bug that you will not be able to fix if you use threads then when you don't.&lt;/p&gt;&#xA;" OwnerUserId="11290" LastActivityDate="2010-12-22T04:33:53.267" CommentCount="2" />
  <row Id="28967" PostTypeId="2" ParentId="28834" CreationDate="2010-12-22T04:38:11.003" Score="0" ViewCount="" Body="&lt;p&gt;I think learning languages where tiny details make a huge difference in meaning of everything, like Polish or Chineese can make you better programmer. Logic is easy, adhering to peculiarities is not.&lt;/p&gt;&#xA;" OwnerUserId="11290" LastActivityDate="2010-12-22T04:38:11.003" />
  <row Id="28968" PostTypeId="2" ParentId="28947" CreationDate="2010-12-22T04:46:10.823" Score="0" ViewCount="" Body="&lt;p&gt;In my opinion, Javascript is popular because it is supported well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, it's the only language for both Netscape and IE in its time. After a &quot;javascript community&quot; is established and became stable, no one could ever think about &quot;another good&quot; that requires to build from scratches. They just contribute to make it better and better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to build a new popular language, the first thing I think about is that you must determine &lt;em&gt;who use that language&lt;/em&gt;. The first customers are always hard to get, and you must make your language superior to javascript in some way or another. Maybe even in a restricted field/ restricted community of programmers, for example, &quot;better/faster javascript engine for iPhone mobile&quot; may be a good choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Moreover, your language should be easy to use and customize by community, because it's the community that determine which language could survive.&lt;/p&gt;&#xA;" OwnerUserId="9202" LastActivityDate="2010-12-22T04:46:10.823" CommentCount="2" />
  <row Id="28969" PostTypeId="2" ParentId="28950" CreationDate="2010-12-22T04:46:28.280" Score="1" ViewCount="" Body="&lt;p&gt;All the languages you mentioned are dynamically typed so learning haskell is going to be pretty tough if haskell is your first exposure to static typing and functional programming in general. You're probably better off starting with Erlang which is a functional language but doesn't have the same restrictive type system as haskell.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-22T04:46:28.280" CommentCount="2" />
  <row Id="28970" PostTypeId="2" ParentId="27944" CreationDate="2010-12-22T04:46:58.697" Score="1" ViewCount="" Body="&lt;p&gt;Its always difficult to make that switch after working on a specific technology for a few years. Your day job wouldn't let you focus on learning the new technology and you wouldn't get a job on it, not at least with a same pay scale as you don't have much experience on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Gladly, making a switch to MS technologies shouldn't be too difficult as there are plenty of good resources available to learn from and plenty of jobs available for it. But, you would have to work on small projects get some real knowledge, that is the best way to learn. Not that I know too much, but whatever I have learnt is due to the challenges I faced, working on the projects. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than working on a pet project yourself, you can probably try and hookup with a developer friend, who is already working on dotnet. Ask him to assign you small tasks to assist him with his work. You can also help him find solutions to the issues he gets stuck with. That way, you would learn about the features of the language and how and when to use them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reading books is another activity that you should do, but that should always be topped up with some hands on, no use otherwise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also like to add, Certifications may look like a nice addon to your resume, but that does not really help you enhance your skills, and recruiters know that.&lt;/p&gt;&#xA;" OwnerUserId="11291" LastEditorUserId="11291" LastEditorDisplayName="" LastEditDate="2010-12-22T07:28:12.383" LastActivityDate="2010-12-22T07:28:12.383" />
  <row Id="28971" PostTypeId="2" ParentId="28927" CreationDate="2010-12-22T04:49:01.273" Score="4" ViewCount="" Body="&lt;p&gt;Yes, &lt;em&gt;if&lt;/em&gt; set correctly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If set correctly, the objectives can improve both the team and the individual people. They should be aligned to the job too and designed for the individual.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been in places where a whole DBA team has the same bland objectives, as well as high level hand me downs such as &quot;conform to global and regional KPIs as determined by the the KPI committee&quot;. Which no-one knows of course..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then again, I've been at places where the manager sets individual objectives with thought up front.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've read the Mary Poppendieck article and it isn't about SMART. &quot;The Perception of Impossibility&quot; fails &quot;Achievable&quot; for example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Objectives should be set for the individual, to share their strenghts, help rectify weaknesses, contribute to the team. Measurement is for the individual.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There should be no comparison of x vs y.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The objectives for x and y should be commensurate with their rank or position inside a system though: one does not set the same objectives for seniors and juniors. That's unfair.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some benchmark is needed to set bonus or payrises from a limited pot: should we count lines of code instead? Peer reviews?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And show me &lt;em&gt;valid&lt;/em&gt; alternatives that won't require me to change my global corporate ethos. I have no criticism of SMART: I &lt;strong&gt;do&lt;/strong&gt; have criticisms of piss poor managers...&lt;/p&gt;&#xA;" OwnerUserId="5905" LastEditorUserId="5905" LastEditorDisplayName="" LastEditDate="2010-12-22T13:47:55.407" LastActivityDate="2010-12-22T13:47:55.407" />
  <row Id="28972" PostTypeId="2" ParentId="28964" CreationDate="2010-12-22T04:49:40.103" Score="2" ViewCount="" Body="&lt;p&gt;I guess wrapping your head around Monads and all the other categorical nonsense is the biggest challenge.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-22T04:49:40.103" CommentCount="2" />
  <row Id="28973" PostTypeId="2" ParentId="27944" CreationDate="2010-12-22T04:53:19.633" Score="1" ViewCount="" Body="&lt;p&gt;As others said, w/ 1 year experience you should be able to find a new job that allows you to code in .Net. I also moved from PHP to ASP.Net/C#, but my path was different. After working in PHP for about a year, I did my Masters, interned in a company, programming primarily in .Net and then I am now working in .Net full time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Else in case your company is a startup (or not a corporation as you say), why not persuade them to start/look for ASP.Net projects too? Of course, this depends upon the fact that there are people who are proficient in managing/working in .net projects or your company should be ready to hire people w/ .net experience for the new projects? This answer may sound unrealistic too...&lt;/p&gt;&#xA;" OwnerUserId="9208" LastActivityDate="2010-12-22T04:53:19.633" CommentCount="1" />
  <row Id="28974" PostTypeId="2" ParentId="28919" CreationDate="2010-12-22T04:59:04.923" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://gmj.gallup.com/content/622/achiever.aspx&quot; rel=&quot;nofollow&quot;&gt;Achiever&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Your Achiever theme helps explain your&#xA;  drive. Achiever describes a constant&#xA;  need for achievement. You feel as if&#xA;  every day starts at zero. By the end&#xA;  of the day you must achieve something&#xA;  tangible in order to feel good about&#xA;  yourself. And by &quot;every day&quot; you mean&#xA;  every single day -- workdays,&#xA;  weekends, vacations. No matter how&#xA;  much you may feel you deserve a day of&#xA;  rest, if the day passes without some&#xA;  form of achievement, no matter how&#xA;  small, you will feel dissatisfied. You&#xA;  have an internal fire burning inside&#xA;  you. It pushes you to do more, to&#xA;  achieve more. After each&#xA;  accomplishment is reached, the fire&#xA;  dwindles for a moment, but very soon&#xA;  it rekindles itself, forcing you&#xA;  toward the next accomplishment. Your&#xA;  relentless need for achievement might&#xA;  not be logical. It might not even be&#xA;  focused. But it will always be with&#xA;  you. As an Achiever you must learn to&#xA;  live with this whisper of discontent.&#xA;  It does have its benefits. It brings&#xA;  you the energy you need to work long&#xA;  hours without burning out. It is the&#xA;  jolt you can always count on to get&#xA;  you started on new tasks, new&#xA;  challenges. It is the power supply&#xA;  that causes you to set the pace and&#xA;  define the levels of productivity for&#xA;  your work group. It is the theme that&#xA;  keeps you moving.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This could also be stated as a &quot;Get Things Done&quot; mindset.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-22T04:59:04.923" />
  <row Id="28975" PostTypeId="2" ParentId="28947" CreationDate="2010-12-22T05:01:56.463" Score="7" ViewCount="" Body="&lt;p&gt;I was commenting on an &lt;a href=&quot;http://programmers.stackexchange.com/questions/28947/how-did-javascript-become-popular/28951#28951&quot;&gt;earlier answer&lt;/a&gt;, but it was getting big, so I thought I'd spin this out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Any new language can only succeed if it capitalizes on an emerging frontier in computing.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Previous examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;C for Unix&lt;/li&gt;&#xA;&lt;li&gt;Objective-C for iOS&lt;/li&gt;&#xA;&lt;li&gt;Perl and PHP for back-end Web 1.0&lt;/li&gt;&#xA;&lt;li&gt;Python and Ruby for back-end Web 2.0&lt;/li&gt;&#xA;&lt;li&gt;Java for the back-end Internet-enabled enterprise&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;To answer your question, JavaScript was the language for Netscape Navigator back when that was the dominant browser. Specifically, it was the language for dynamic front-end development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;em&gt;next big language&lt;/em&gt; will have to solve another frontier. There still seems to be a land grab in the back-end web development space. Plus, mobile computing isn't totally solved, despite Apple's current dominance. Also, there's the emergence of multi-core and cloud computing, which is something that Erlang could capitalize on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Entrepreneurs have an expression along the lines of, &quot;find a someone on fire and sell him a fire hose&quot;. So if you want to introduce a new language, whose fire are you putting out? Every new frontier in computing brings a whole host of headaches; so supply some aspirin and you'll be golden.&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-22T05:01:56.463" CommentCount="2" />
  <row Id="28976" PostTypeId="2" ParentId="28950" CreationDate="2010-12-22T05:03:43.413" Score="1" ViewCount="" Body="&lt;p&gt;Being a &quot;functional&quot; language, means (apart from other things) that functions are first class objects in the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being a &quot;pure&quot; language means that functions are mathematical functions (as opposed to procedures) -- given the same input, they &lt;em&gt;always&lt;/em&gt; produce the same output.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A &quot;pure functional language&quot; is one where both the above hold. I am not aware of a &quot;pure-&lt;em&gt;ly&lt;/em&gt; functional language&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A strong type system is one &lt;em&gt;clean&lt;/em&gt; way of having a pure yet practical language. The types help the compiler figure out optimisations, apart form further ensuring correctness. (But, that isn't the only way -- clojure is pure, but does not have as strong a type system as Haskell.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the type system is bothering you, I would suggest you to try a more dynamic language, like Scheme, or get around to using Haskell's type inference system.&lt;/p&gt;&#xA;" OwnerUserId="11145" LastActivityDate="2010-12-22T05:03:43.413" />
  <row Id="28977" PostTypeId="2" ParentId="28947" CreationDate="2010-12-22T05:04:53.400" Score="0" ViewCount="" Body="&lt;p&gt;One tactic used initially was the name - &quot;JavaScript&quot; was intended to ride on the popularity of Java, which had then been on the rise for some while.&lt;/p&gt;&#xA;" OwnerUserId="8187" LastActivityDate="2010-12-22T05:04:53.400" />
  <row Id="28978" PostTypeId="1" AcceptedAnswerId="29342" CreationDate="2010-12-22T05:08:26.187" Score="2" ViewCount="67" Body="&lt;p&gt;Based on the &quot;featured apps&quot; section of the main page&#xA;&lt;a href=&quot;http://www.emotiv.com/index.php&quot; rel=&quot;nofollow&quot;&gt;http://www.emotiv.com/index.php&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alot of the so called &quot;mind control&quot; apps so far seem to be fairly rudimentary read/scan apps that look to profile a certain activity, or perhaps allow the user to manipulate or control an app in a way loosely analogous to using a mouse/keyboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm just wondering if anyone is currently working on something (assuming they can talk about it) that is a mind blowingly spectacular use of the Emotiv headset?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;thanks.&lt;/p&gt;&#xA;" OwnerUserId="3689" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-23T14:55:25.653" LastActivityDate="2010-12-23T14:55:25.653" Title="Is anyone actively developing software to be used with the Emotiv headset?" Tags="&lt;software-engineering&gt;&lt;mind-mapping&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="28979" PostTypeId="1" AcceptedAnswerId="29148" CreationDate="2010-12-22T05:09:57.857" Score="3" ViewCount="152" Body="&lt;p&gt;I am a PHP developer with ~3 years experience.  I want to get deeper into PHP and really understand more low level constructs/functionality.  I have mainly done frontend web dev and a little php cron jobs.  I want to learn more about stream contexts, closures, process forking, etc.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The book I've found that seems closest to this is  &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0470563125&quot; rel=&quot;nofollow&quot;&gt;Expert PHP and MySQL (Wrox)&lt;/a&gt;.  I also found &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1590598199&quot; rel=&quot;nofollow&quot;&gt;Pro PHP&lt;/a&gt;.  I know there has to be more out there but I can't seem to find anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suggestions?&lt;/p&gt;&#xA;" OwnerUserId="9479" LastActivityDate="2010-12-25T21:03:59.050" Title="good books to get deep into PHP" Tags="&lt;learning&gt;&lt;php&gt;" AnswerCount="2" FavoriteCount="2" />
  <row Id="28980" PostTypeId="2" ParentId="27944" CreationDate="2010-12-22T05:19:26.770" Score="1" ViewCount="" Body="&lt;p&gt;I think the answer is in multiple parts: skills, certifications and self-promotion/branding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Skills: &#xA;It does not sound like you know which part of the 'web' you are interested in. So pick something not too many people work with yet (because it just came out) and start playing with it using C# stack. For example, razor engine just out in MVC3 beta. Or something around Deep Zoom technology, though that is mostly tied to Silverlight :-( This will give you all the baseline skills, but also all the latest thinking and opportunities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Self-promotion/branding:&#xA;Learning newest (beta) technology is not always easy. Bugs, misunderstood features and other fun will happen along the way. Create a blog (on your own domain) to document those adventures and especially your solutions. Write little tutorial or walk through, maybe little sample projects to download for other newbies. This shows to others that you are working with latest technologies, that you are learning and that - hopefully - you can even teach something to others. If you can, create little demo portfolios to show off your work&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Certifications:&#xA;Look into things from acm.org or O'Reilly. The memberships there offer access to multiple learning courses and in some cases certifications. I don't know too much about these, but that would be my direction to investigate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The specific project in a way does not matter, but try not to reinvent the wheel (yet another CMS or Tetris clone). Either pick a simple new thing around your other hobbies to do or try helping an existing open source project. Or just redo an existing .Net demo project from Microsoft (or &lt;a href=&quot;http://www.wrox.com/WileyCDA/WroxTitle/Beginning-ASP-NET-4-in-C-and-VB.productCd-0470502215,descCd-DOWNLOAD.html&quot; rel=&quot;nofollow&quot;&gt;from a popular .Net book&lt;/a&gt;) using the newest technology and HTML5/jQuery approaches. Notice that redoing an existing specifically demo project is different from 'yet another XYZ' as you are constrained by the original demo's feature requirements and therefore can actually be compared to the original implementation as apples to apples. Also gives you a chance to point out where something is now more/less efficient/clear/readable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With open source projects, you don't have to earn commit rights to be useful, you could just pick a scenario and create sample project demonstrating a particular setup/configuration/etc. Just trying to explain it to others will teach yourself a lot too. And probably discover lots of missing information in that open source project's documentation which will teach you a lot about reading others' code to get answers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, start thinking beyond just code and more on how you can be a useful member of community even at your level of knowledge and how to make that ongoing contribution to the community more visible. The employers are looking for people who are already useful and if you start these skills early they will pay keep paying back throughout your career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers mate.&lt;/p&gt;&#xA;" OwnerUserId="2435" LastActivityDate="2010-12-22T05:19:26.770" />
  <row Id="28981" PostTypeId="2" ParentId="20927" CreationDate="2010-12-22T05:20:03.197" Score="3" ViewCount="" Body="&lt;p&gt;I don't like to use a puzzle or a design question as a whiteboard question. I prefer straightforward, simple, questions, that test the candidate's ability to write some code. My favourites are:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Write a function to reverse a singly linked list.&#xA;(It takes a while before they realise they need 3 pointers.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Given a binary tree, find the depth of the binary tree.&#xA;(This question tests their ability to write recursive code. Lets me check if they have their base case intact.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Write a procedure for binary searching an array of integers.&#xA;(Like Jon Bentley says (in Programming Pearls), many people tend to make mistakes writing binary search. One can then follow up with finding bugs, writing test cases, running through the code, etc..)&lt;/p&gt;&#xA;" OwnerUserId="11145" LastActivityDate="2010-12-22T05:20:03.197" CommunityOwnedDate="2011-02-15T14:41:29.790" CommentCount="2" />
  <row Id="28982" PostTypeId="1" CreationDate="2010-12-22T05:24:33.783" Score="1" ViewCount="110" Body="&lt;p&gt;Hello everyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is regarding the best way to find a good mobile developer in Korea, or in another country to bring to Korea. Our company is growing fast and we need some quality mobile developers to start getting our system onto mobile. The problem is, however, that in Korea, their are very few mobile developers (currently) and their pay is extremely expensive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have looked into India and other SE Asian countries and have concluded that bringing in a developer from another country may be the best choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I am worried about how to find developers that are motivated by passion/creativity instead of getting a paycheck, and am also worried about what country may provide the higher quality worker.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To clarify, we would bring in these workers from their country to Korea, and help them get settled here and working in our office.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone had any experience doing this sort of thing in America/Korea/another country?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you very much for your replies.&lt;/p&gt;&#xA;" OwnerUserId="11296" LastActivityDate="2010-12-22T06:18:38.090" ClosedDate="2010-12-22T12:39:25.360" Title="Hiring *good* Mobile Developers in/to Korea - overseas hiring question" Tags="&lt;hiring&gt;&lt;mobile&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="28983" PostTypeId="2" ParentId="24485" CreationDate="2010-12-22T05:26:33.567" Score="0" ViewCount="" Body="&lt;p&gt;Here are some &lt;a href=&quot;http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;module patterns&lt;/strong&gt;&lt;/a&gt; which include augmentation and even cross-file inheritance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also make sure to check out douglas crockfords &lt;a href=&quot;http://video.yahoo.com/watch/111593/1710507&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Javascript Lectures&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="10057" LastActivityDate="2010-12-22T05:26:33.567" />
  <row Id="28985" PostTypeId="1" AcceptedAnswerId="29040" CreationDate="2010-12-22T05:31:07.773" Score="4" ViewCount="141" Body="&lt;p&gt;I've ran into several oddities using javascripts floating point arithmetic, but I can never recall them off the top of my head!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What are some common mistakes when using JavaScript to do math?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="10057" LastActivityDate="2010-12-23T05:22:47.553" Title="Common mistakes with javascript arithmetic" Tags="&lt;javascript&gt;&lt;math&gt;&lt;mistakes&gt;" AnswerCount="2" />
  <row Id="28986" PostTypeId="2" ParentId="28919" CreationDate="2010-12-22T05:31:31.590" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Lazy&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The lazier the programmer, the more he reuses code.  The more he reuses code, the simpler it becomes.  The simpler it becomes, the easier it is to maintain.&lt;/p&gt;&#xA;" OwnerUserId="2431" LastActivityDate="2010-12-22T05:31:31.590" CommentCount="2" />
  <row Id="28987" PostTypeId="2" ParentId="28642" CreationDate="2010-12-22T05:32:25.493" Score="20" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The users know what they want/need&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the time, they really don't. They may think they do, and some may even be in the neighborhood, but they really don't. The rare few who really do know what they want can't describe it well enough for you to get it right the first time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In consulting, this is often called the &quot;presenting problem&quot;; in development, it's the 80/20 rule; in programming, it's the admonition to expect to throw away the first prototype.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Users don't really know that they want/need because they don't understand what is truly possible...and what isn't!&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="3666" LastEditorDisplayName="" LastEditDate="2011-01-07T09:15:35.290" LastActivityDate="2011-01-07T09:15:35.290" CommunityOwnedDate="2011-01-07T06:47:37.693" />
  <row Id="28988" PostTypeId="2" ParentId="28964" CreationDate="2010-12-22T05:32:35.743" Score="1" ViewCount="" Body="&lt;p&gt;I would say take a look at lisp if you want, but Haskell will be more useful for working in.  Plus Lazyness rocks.  &lt;/p&gt;&#xA;" OwnerUserId="2717" LastActivityDate="2010-12-22T05:32:35.743" CommentCount="1" />
  <row Id="28989" PostTypeId="2" ParentId="28947" CreationDate="2010-12-22T05:33:59.153" Score="1" ViewCount="" Body="&lt;p&gt;Right time, right place. And it didn't entirely suck. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the same reason facebook is winning.    &lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2010-12-22T05:33:59.153" />
  <row Id="28990" PostTypeId="2" ParentId="28964" CreationDate="2010-12-22T05:37:26.457" Score="1" ViewCount="" Body="&lt;p&gt;When you learn a different paradigm you learn a different way to approach the problem.  The challenge there is retraining yourself to not immediately go down the path of and procedural or OO solution.  For the most part I think most of your challenges will be of that nature.  The concepts and applications are pretty straightforward, getting used to it was the hard part for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a big fan of scheme which is similar to lisp.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-22T05:37:26.457" />
  <row Id="28991" PostTypeId="2" ParentId="28950" CreationDate="2010-12-22T05:38:21.247" Score="2" ViewCount="" Body="&lt;p&gt;It tells you right away when you make dumb mistakes.  This is helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As well, type inference lets you ignore the type system if you wish.&lt;/p&gt;&#xA;" OwnerUserId="2717" LastActivityDate="2010-12-22T05:38:21.247" CommentCount="2" />
  <row Id="28992" PostTypeId="1" AcceptedAnswerId="48317" CreationDate="2010-12-22T05:39:58.613" Score="2" ViewCount="187" Body="&lt;p&gt;Hi All,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than the &lt;a href=&quot;http://cassandra.apache.org/&quot; rel=&quot;nofollow&quot;&gt;main site&lt;/a&gt; for Cassandra, has anyone managed to come across some good learning resources to get a jump start into using it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks and kind regards,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Kyle&lt;/p&gt;&#xA;" OwnerUserId="7494" LastEditorUserId="7494" LastEditorDisplayName="" LastEditDate="2011-02-17T05:29:56.653" LastActivityDate="2011-02-17T06:57:58.540" Title="Best Cassandra Learning Resources" Tags="&lt;learning&gt;&lt;cassandra&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="28993" PostTypeId="2" ParentId="28601" CreationDate="2010-12-22T05:44:12.613" Score="0" ViewCount="" Body="&lt;p&gt;Postpone learning JavaScript, if you know any of Java, C, C++, C#, PHP.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Learn jQuery&lt;/li&gt;&#xA;&lt;li&gt;Profit&lt;/li&gt;&#xA;&lt;li&gt;[optional] Get to know more about basic JavaScript or try another js lib (like Dojo) if you really feel the urge.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="11290" LastActivityDate="2010-12-22T05:44:12.613" />
  <row Id="28994" PostTypeId="2" ParentId="28885" CreationDate="2010-12-22T05:51:00.397" Score="1" ViewCount="" Body="&lt;p&gt;To summarize point wise why threads are difficult to use :-&lt;br&gt;&#xA;True  Things&#xA;1) Need the synchronization, and careful design decisions about what to lock and when to lock&lt;br&gt;&#xA;2) No control on the run time flow&lt;br&gt;&#xA;3) Difficult debugging&lt;br&gt;&#xA;4) (Very few times) platform compatibility :- Libraries do exists to take care of this&lt;/p&gt;&#xA;&#xA;&lt;p&gt;False Things : -&lt;br&gt;&#xA;1) Confusing concepts of thread-safe and re-entrant functions&lt;br&gt;&#xA;2) Threads looks good on the paper but are very hard to implement  &lt;/p&gt;&#xA;" OwnerUserId="8820" LastEditorUserId="8820" LastEditorDisplayName="" LastEditDate="2010-12-22T07:49:23.837" LastActivityDate="2010-12-22T07:49:23.837" CommentCount="1" />
  <row Id="28995" PostTypeId="1" AcceptedAnswerId="29004" CreationDate="2010-12-22T05:55:13.317" Score="21" ViewCount="661" Body="&lt;p&gt;One of my friends has just completed his college degree and is ready to join the programmers' world. Today he has two offers, one with new projects every time, and another with software maintenance. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The remaining factors are not important to him, what he wants to know is which option is better? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My experience goes with second option because my first job was the maintenance one and &lt;strong&gt;I could learn how my fellow programmers made mistakes while coding&lt;/strong&gt; . But I soon switched to a new job which required me to create new project every time. I enjoyed both but I must admit that my first job has given me a more advantage today.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it's not necessary that my experience can give benefit to him. But I want to know what is general approach? If I have to give him final verdict on these two, what should I tell him?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Edit&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everybody deserves one up vote here, I am really learning a lot from you guys.&lt;/p&gt;&#xA;" OwnerUserId="9006" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-22T14:08:21.983" LastActivityDate="2011-01-11T15:39:41.453" Title="What job is better for a newbie, one that requires you to create a new program frequently, or something like software maintenance?" Tags="&lt;new-job&gt;" AnswerCount="15" FavoriteCount="4" />
  <row Id="28996" PostTypeId="2" ParentId="28982" CreationDate="2010-12-22T06:00:49.153" Score="0" ViewCount="" Body="&lt;p&gt;Motivation is irrespective of the Geography, you might find someone highly motivated in Korea/India or US it all depends on the individual. Also since you are likely to bring someone from abroad to your country the guys primary motivation will be money and that is what will bring him out of his home and away from friends/family because it is highly likely that he can get similar work in India or US.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However motivation for money is not a bad thing, I find people motivated by money highly ambitious and willing to make a positive impact.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-12-22T06:00:49.153" CommentCount="1" />
  <row Id="28997" PostTypeId="2" ParentId="28453" CreationDate="2010-12-22T06:01:05.203" Score="3" ViewCount="" Body="&lt;p&gt;Here's my take, drawn from experience of things that have progressively 'stretched' (if not blown) my mind.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Assembly - close to the metal&lt;/li&gt;&#xA;&lt;li&gt;SQL - so totally not like anything else I'd used&lt;/li&gt;&#xA;&lt;li&gt;F# - or anything functional. Again, a paradigm shift&lt;/li&gt;&#xA;&lt;li&gt;C++/Java/C# - anything in the OOP field. I'd give this one less importance only because it's what most developers already have some experience in anyway.&lt;/li&gt;&#xA;&lt;li&gt;Something 'webby' - this isn't so much about language, but getting your head round 'what happens on the server and what happens on the client'.&lt;/li&gt;&#xA;&lt;li&gt;I'd quite like to try Erlang, as it seems like yet another way of thinking your code.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That's not 3-4, sorry :)&lt;/p&gt;&#xA;" OwnerUserId="4285" LastActivityDate="2010-12-22T06:01:05.203" CommunityOwnedDate="2011-05-02T19:15:27.120" CommentCount="1" />
  <row Id="28998" PostTypeId="2" ParentId="25013" CreationDate="2010-12-22T06:01:53.720" Score="3" ViewCount="" Body="&lt;p&gt;gotta get some &lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/e5f41ad9-4edc-4912-bca3-91147db95b99&quot; rel=&quot;nofollow&quot;&gt;PowerCommands&lt;/a&gt; love&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-12-22T06:01:53.720" />
  <row Id="28999" PostTypeId="2" ParentId="28995" CreationDate="2010-12-22T06:07:00.203" Score="3" ViewCount="" Body="&lt;p&gt;I agree with your suggestion because my first job was the maintenance one and i learn a lot by reviewing the other programmers code and then when i write my own code i have couple of choices that helps me a lot, But one point that i would like to mention is that if there is a strict guidelines that one has to follow while writing code then you cannot implement your own approach which may be better if you start a new project&lt;/p&gt;&#xA;" OwnerUserId="8760" LastActivityDate="2010-12-22T06:07:00.203" CommentCount="1" />
  <row Id="29000" PostTypeId="2" ParentId="28927" CreationDate="2010-12-22T06:11:26.273" Score="2" ViewCount="" Body="&lt;p&gt;To all the people who answered NO, your Goals were probably NOT SMART enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have used them and I find them incredibly useful. You might want to try something that works for us:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Set Quarterly Goals.&lt;/li&gt;&#xA;&lt;li&gt;Set measurable goals.&lt;/li&gt;&#xA;&lt;li&gt;Set only one goal for the individual&lt;/li&gt;&#xA;&lt;li&gt;Make the individual accept the goal, if he says the Goal is too ambitious readjust till the time when both of you agree.&lt;/li&gt;&#xA;&lt;li&gt;At the End of the quarter, come up with a Boolean value. Goal achieved = true or false.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;This is extremely powerful, it creates accountability  for the Developer. The people who want to find excuses chicken out after 6 months or so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S : I can understand people down voting the answer but please drop in a relevant comment atleast I wil learn something I dont know :-)&lt;/p&gt;&#xA;" OwnerUserId="672" LastEditorUserId="672" LastEditorDisplayName="" LastEditDate="2010-12-22T12:04:56.593" LastActivityDate="2010-12-22T12:04:56.593" CommentCount="4" />
  <row Id="29001" PostTypeId="1" AcceptedAnswerId="29012" CreationDate="2010-12-22T06:13:39.453" Score="4" ViewCount="159" Body="&lt;p&gt;Hi folks,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm developing an application for Android/Java. This application is a kind of password manager, so I'm storing encrypted passwords under the hood of a master password. There are a number of encryption algorythms DES/AES/BlowFish/TwoFish and so on. My intention is to develop application which is free of commercial copyright issues. So the questions are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;If I use built-in Java encryption API's (e.g. DES/AES)- does it mean that I will be free from possible commercial interests of DES/AES alike copyright holders?&lt;/li&gt;&#xA;&lt;li&gt;Encryption algorythms sometimes are export limited, keeping in mind that I'm from Moscow/Russia - are there any implications of that fact?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Any other thoughts would be helpful.&lt;/p&gt;&#xA;" OwnerUserId="11062" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-22T13:59:13.413" LastActivityDate="2010-12-22T13:59:13.413" Title="Copyright issues with encryption algorythms" Tags="&lt;java&gt;&lt;android&gt;&lt;encryption&gt;&lt;copyright&gt;" AnswerCount="4" FavoriteCount="0" />
  <row Id="29002" PostTypeId="1" CreationDate="2010-12-22T06:14:21.420" Score="2" ViewCount="115" Body="&lt;p&gt;I'm coding a core javascript object for my web app, building in the common methods I use (and wrapping a few jQuery methods as well).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's built like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var Core = {&#xA;  baseUrl: '/',&#xA;  lang: 'en-us',&#xA;  loggedIn: false,&#xA;&#xA;  msg: function(str) {&#xA;    for (var i = 1, len = arguments.length; i &amp;lt; len; ++i) {&#xA;      str = str.replace(&quot;{&quot; + (i - 1) + &quot;}&quot;);&#xA;    }&#xA;    return str;&#xA;  },&#xA;  include: function(url, success, cache) {&#xA;    $.ajax({&#xA;      url: url,&#xA;      dataType: 'script',&#xA;      success: success,&#xA;      cache: cache !== false&#xA;    });&#xA;  },&#xA;  etc...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;msg&lt;/strong&gt; is a method to mimic C# String.Format, &lt;strong&gt;include&lt;/strong&gt; lets me asynchronously pull in scripts. There are others (&lt;strong&gt;formatDate&lt;/strong&gt;: converts datetime string to user's local time, &lt;strong&gt;getBrowser&lt;/strong&gt;: gets browser types based on feature detection, &lt;strong&gt;open&lt;/strong&gt;: opens a link in a new window, etc...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This core object lets me perform a wide array of tasks... by just calling Core.&lt;em&gt;method&lt;/em&gt;... moving nearly all of my javascript code into a .js file which can be cached. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Just out of curiosity, what sorts of common functions do you build into your sites?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="11299" LastActivityDate="2010-12-22T07:25:36.053" ClosedDate="2010-12-22T16:19:34.833" Title="What javascript/jquery methods do you routinely code into your web apps?" Tags="&lt;javascript&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="29003" PostTypeId="2" ParentId="28982" CreationDate="2010-12-22T06:18:38.090" Score="0" ViewCount="" Body="&lt;p&gt;What are the time-lines involved with the product you are looking to develop? A good developer should be able to learn what they need to write quality mobile software. So if you are having a hard time finding developers that already have the experience, you might look at developing that experience in house. To hedge against someone getting the job, staying for a couple months and leaving, you could offer a slightly lower salary than market with a defined bonus upon a certain milestone a long with a pay raise. &lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-12-22T06:18:38.090" CommentCount="3" />
  <row Id="29004" PostTypeId="2" ParentId="28995" CreationDate="2010-12-22T06:19:36.177" Score="28" ViewCount="" Body="&lt;p&gt;Maintenance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it works against a new developer to just start jumping into coding new projects from the start.  It &lt;em&gt;doesn't allow&lt;/em&gt; a developer to:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Understand the current business.&lt;/li&gt;&#xA;&lt;li&gt;Understand the current codebase and architecture to which the business is running on.&lt;/li&gt;&#xA;&lt;li&gt;Learn from past mistakes from other developers (as you stated).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;With maintenance, the developer will generally do less coding than with jumping into new projects all the time.  I think it's a mistake for junior developers to want to do only coding and lots of it when they first start their job.  It's important to get a grasp of the business with a fair amount of mentoring before the coding should even begin.  Generally, maintenance will also be difficult since the codebase will no doubt have little to no documentation, ugly bandaged code, and often times no one to explain why it was done that way.  Yes, very sad and frustrating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With new projects, the developer will likely be using newer technologies, coding standards, architecture, and the full SDLC-- and yes will likely be more fun and easier because they aren't dealing with legacy code hands on.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;But it's not just about having fun and doing what's easier&lt;/em&gt;.  The emphasis should be on &lt;strong&gt;understanding the business&lt;/strong&gt;, to develop a deep understanding of the system, and the ugly inefficient code that has been written in the past.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find it easier to work with and mentor new software developers that have a broad understanding of the business and little knowledge of the latest technologies, than with developers that understand new technologies, but never spent the time to understand the business and what broad problems we're truly trying to solve.&lt;/p&gt;&#xA;" OwnerUserId="14" LastEditorUserId="14" LastEditorDisplayName="" LastEditDate="2010-12-22T10:00:06.070" LastActivityDate="2010-12-22T10:00:06.070" CommentCount="4" />
  <row Id="29005" PostTypeId="2" ParentId="29001" CreationDate="2010-12-22T06:28:00.347" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;IMO, you will be free, it is platform owner pain to resolve those issues. However GOST algorithm is not free. &lt;/li&gt;&#xA;&lt;li&gt;As far as i know, you must licence your business in FSB if you want to work with encryption as company, dunno if it applies to individuals. GOST algorithm is export limited. But Others, you have mentioned, are not.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Anyway I'd suggest to ask good lawyer about those issues, because i haven't tracked last changes in this field.&lt;/p&gt;&#xA;" OwnerUserId="8153" LastActivityDate="2010-12-22T06:28:00.347" CommentCount="2" />
  <row Id="29006" PostTypeId="2" ParentId="29002" CreationDate="2010-12-22T06:31:27.627" Score="0" ViewCount="" Body="&lt;p&gt;From yesterday I'm using &lt;a href=&quot;http://weblogs.asp.net/zowens/archive/2010/12/20/asp-net-mvc-javascript-routing.aspx&quot; rel=&quot;nofollow&quot;&gt;JavaScript Routing&lt;/a&gt; =)&lt;/p&gt;&#xA;" OwnerUserId="8153" LastActivityDate="2010-12-22T06:31:27.627" CommentCount="1" />
  <row Id="29007" PostTypeId="2" ParentId="28992" CreationDate="2010-12-22T06:33:58.967" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://arin.me/blog/wtf-is-a-supercolumn-cassandra-data-model&quot; rel=&quot;nofollow&quot;&gt;WTF is SuperColumn&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have started from this, after that just started using API and created lots of simple tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, on what platform are you developing?&lt;/p&gt;&#xA;" OwnerUserId="8153" LastActivityDate="2010-12-22T06:33:58.967" CommentCount="2" />
  <row Id="29008" PostTypeId="2" ParentId="29001" CreationDate="2010-12-22T06:37:34.207" Score="1" ViewCount="" Body="&lt;p&gt;IMO, algorithms are not copyrighted, libraries are. But if you are using something that comes by default from JAVA, then there will not be any copyrighted issues. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-22T06:37:34.207" />
  <row Id="29009" PostTypeId="2" ParentId="25013" CreationDate="2010-12-22T06:37:44.097" Score="2" ViewCount="" Body="&lt;p&gt;Don't forget &lt;a href=&quot;http://submain.com/products/ghostdoc.aspx&quot; rel=&quot;nofollow&quot;&gt;GhostDoc&lt;/a&gt;=))&lt;/p&gt;&#xA;" OwnerUserId="8153" LastActivityDate="2010-12-22T06:37:44.097" CommentCount="3" />
  <row Id="29010" PostTypeId="2" ParentId="28995" CreationDate="2010-12-22T06:38:12.297" Score="5" ViewCount="" Body="&lt;p&gt;Maintenance may give you the most varied exposure to different areas as well as the opportunity to learn from more experienced developers.  However, it can also teach you bad habits and ugly practices if it is a crusty legacy app where many mistakes were made.  It may also lead you into accepting certain practices and patterns without knowing the reasons for them. I think a good mentor and a high level of interaction and review early on is probably the most effective thing for a new developer, regardless of the task.&lt;/p&gt;&#xA;" OwnerUserId="4949" LastActivityDate="2010-12-22T06:38:12.297" CommentCount="2" />
  <row Id="29011" PostTypeId="2" ParentId="28964" CreationDate="2010-12-22T06:44:02.173" Score="4" ViewCount="" Body="&lt;p&gt;When I started digging deep into Haskell (coming from a mostly Basic/C background), I already had a firm grasp of closures from thinking about them for months and months, and using them in JavaScript.  Whether or not this is the biggest hurdle of learning functional programming, I'm not sure, but I'd imagine they're easier to understand when state is taken out of the equation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suppose the first major hurdle for me was the syntax.  When I first took a look at the &lt;a href=&quot;http://xmonad.org/&quot; rel=&quot;nofollow&quot;&gt;xmonad&lt;/a&gt; source code, it looked quite humorous:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;-- | Set focus explicitly to window 'w' if it is managed by us, or root.&#xA;-- This happens if X notices we've moved the mouse (and perhaps moved&#xA;-- the mouse to a new screen).&#xA;focus :: Window -&amp;gt; X ()&#xA;focus w = local (\c -&amp;gt; c { mouseFocused = True }) $ withWindowSet $ \s -&amp;gt; do&#xA;    let stag = W.tag . W.workspace&#xA;        curr = stag $ W.current s&#xA;    mnew &amp;lt;- maybe (return Nothing) (fmap (fmap stag) . uncurry pointScreen)&#xA;            =&amp;lt;&amp;lt; asks mousePosition&#xA;    root &amp;lt;- asks theRoot&#xA;    case () of&#xA;        _ | W.member w s &amp;amp;&amp;amp; W.peek s /= Just w -&amp;gt; windows (W.focusWindow w)&#xA;          | Just new &amp;lt;- mnew, w == root &amp;amp;&amp;amp; curr /= new&#xA;                                               -&amp;gt; windows (W.view new)&#xA;          | otherwise                          -&amp;gt; return ()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The arrows pointing here and there, and things like &lt;code&gt;maybe (return Nothing)&lt;/code&gt;, gave me the impression that they make it up as they go, and that the syntax has zillions of operators and keywords (custom operators were a foreign concept to me).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The next hurdle was Haskell's type system.  The nice thing about this one is, if you don't quite get it, the compiler will be quick to point it out :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, monads.  I suppose my breakthroughs in understanding them were:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;do {x &amp;lt;- m; k x}&lt;/code&gt; is equivalent to &lt;code&gt;m &amp;gt;&amp;gt;= k&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Monads are merely a design pattern.  They are not given special treatment by the language (other than &lt;code&gt;do&lt;/code&gt; notation), and one does not have to understand category theory to use them.&lt;/li&gt;&#xA;&lt;li&gt;Monads, functors, etc. are all, in an abstract sense, &quot;actions&quot; yielding a &quot;thing&quot;.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;With a &lt;a href=&quot;http://hackage.haskell.org/packages/archive/base/latest/doc/html/Prelude.html#t%3aFunctor&quot; rel=&quot;nofollow&quot;&gt;Functor&lt;/a&gt;, you can apply a function to that thing, but you don't get to unwrap it (e.g. &lt;code&gt;(*5) &amp;lt;$&amp;gt; Just 2 = Just 10&lt;/code&gt;).&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://hackage.haskell.org/packages/archive/base/latest/doc/html/Control-Applicative.html#t%3aApplicative&quot; rel=&quot;nofollow&quot;&gt;An applicative functor&lt;/a&gt; lets you take two actions and apply one's result to the other's, yielding a new action (e.g. &lt;code&gt;Just (*5) &amp;lt;*&amp;gt; Just 2 = Just 10&lt;/code&gt;).  This introduces a notion of sequence, but does not allow the result of one action to influence what the next will be.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://hackage.haskell.org/packages/archive/base/latest/doc/html/Prelude.html#t%3aMonad&quot; rel=&quot;nofollow&quot;&gt;Monad&lt;/a&gt;, despite its simple definition (bind and return), can do everything an applicative functor can do and more.  Namely, monads allow the result of one action to determine the next (e.g. &lt;code&gt;getLine &amp;gt;&amp;gt;= \x -&amp;gt; if null x then return () else print (read x * 2)&lt;/code&gt;).&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As for an introductory language for functional programming, I can certainly vouch for Haskell.  Thanks to learning Haskell, I feel like I've gotten better at breaking up programs logically, even in languages like C and assembly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;PS: I didn't say anything about the transition from imperative to functional, and I probably should (to really answer the question), but I need to go to sleep.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="3650" LastActivityDate="2010-12-22T06:44:02.173" CommentCount="5" />
  <row Id="29012" PostTypeId="2" ParentId="29001" CreationDate="2010-12-22T06:47:26.337" Score="3" ViewCount="" Body="&lt;p&gt;As stated before, algorithms are not copyrighted, only individual implementations.  Algorithms can be patented, however.  You should read the licensing information for your platform to ensure that you are in the purview of their license grants.  Presuming that you are, in effect, dynamically linking to an encryption library provided by the platform, you would not be distributing any encryption software at all, merely software that makes use of an existing capability.  This may reduce some headaches for you but, as always, you should consult an attorney to get competent answers (and someone to hold accountable if the answers are wrong!).&lt;/p&gt;&#xA;" OwnerUserId="5123" LastActivityDate="2010-12-22T06:47:26.337" CommentCount="2" />
  <row Id="29013" PostTypeId="2" ParentId="28314" CreationDate="2010-12-22T06:51:11.287" Score="1" ViewCount="" Body="&lt;p&gt;That particular expression makes my eyes hurt; I'd lash out an any developer on my team that used it because it's unmaintainable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ternary operators are not evil when used well. They don't even have to be single lines; A long one that is formatted well can be very clear and easy to understand:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;return&#xA;      ( 'a' == $s ) ? 1&#xA;    : ( 'b' == $s ) ? 2&#xA;    : ( 'c' == $s ) ? 3&#xA;    :                 4;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I like that better than the equivalent if/then/else chain:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if ( 'a' == $s ) {&#xA;    $retval = 1;&#xA;}&#xA;elsif ( 'b' == $s ) {&#xA;    $retval = 2;&#xA;}&#xA;elsif ( 'c' == $s ) {&#xA;    $retval = 3;&#xA;}&#xA;else {&#xA;    $retval = 4;&#xA;}&#xA;&#xA;return $retval;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I'll reformat those into:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if    ( 'a' == $s ) { $retval = 1; }&#xA;elsif ( 'b' == $s ) { $retval = 2; }&#xA;elsif ( 'c' == $s ) { $retval = 3; }&#xA;else                { $retval = 4; }&#xA;&#xA;return $retval;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;if the conditions and assignments allow easy alignment. Still I prefer the ternary version because it's shorter and doesn't have as much noise around the conditions and assignments.&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-12-22T06:51:11.287" CommunityOwnedDate="2011-01-25T19:46:08.053" CommentCount="1" />
  <row Id="29014" PostTypeId="2" ParentId="28995" CreationDate="2010-12-22T06:55:26.207" Score="2" ViewCount="" Body="&lt;p&gt;From what I see around me, new projects are seldom given to newbies. Usually, they start with maintenance or unit testing activities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I am an exception of my own observations. I started with a project which was rewritten from scratch because of a big design failure in the first version. There, I learned most of my know-how, thanks to a privileged environment: smart people, efficient coding pratices, wise management and many other little thinks that make developers feel well considered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without such an environment I would not advocate for starting with a new project job.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2010-12-22T06:55:26.207" />
  <row Id="29015" PostTypeId="2" ParentId="28995" CreationDate="2010-12-22T07:02:15.470" Score="15" ViewCount="" Body="&lt;p&gt;Since he has the chance to choose, he should go for the job that allows him to create &lt;strong&gt;new projects&lt;/strong&gt;. It's much more fun, probably allows him to use the latest and greatest technologies, it lets him experience the complete software life cycle instead of the last phase only, and it's IMO easier for a newbie to create something from scratch instead of trying to comprehend an already written large codebase.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maintenance can be a nightmare even for an experienced programmer, and even more for a newbie. You touch something - bang - something else stops working. Coincidence? Related? Don't expect to find unit tests, up-to-date documentation etc.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-22T07:02:15.470" CommentCount="3" />
  <row Id="29016" PostTypeId="2" ParentId="29001" CreationDate="2010-12-22T07:04:59.320" Score="0" ViewCount="" Body="&lt;p&gt;IANAL. My take: You are only using what already exists on the platform. There can't be a copyright issue or patent issue or export issue for something that will be on the device whether or not your software is installed.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-22T07:04:59.320" />
  <row Id="29017" PostTypeId="2" ParentId="28964" CreationDate="2010-12-22T07:10:34.523" Score="0" ViewCount="" Body="&lt;p&gt;The best experience I had as a UNIX developer learning lisp was learning how to write emacs extensions using emacs lisp (elisp). The ability to have your text editor do anything you want is a powerful learning incentive, and you don't have to write much lisp code to get emacs to do something useful.&lt;/p&gt;&#xA;" OwnerUserId="8865" LastActivityDate="2010-12-22T07:10:34.523" />
  <row Id="29019" PostTypeId="2" ParentId="29002" CreationDate="2010-12-22T07:25:36.053" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A class to represent the values of a form or query string.&lt;/strong&gt;  It's a cross between an &lt;code&gt;Array&lt;/code&gt; and an &lt;code&gt;Object&lt;/code&gt;, since it is name/value pairs, but names don't have to be unique (they simply represent multiple values under the same name).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The data structure is just an object of name/array pairs.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var QueryMap = function() {&#xA;    this.initialize = function() {}; // Intialize from obj, arr, str, etc.&#xA;    this.add = function(key, value) {}; // Add a value with this name&#xA;    this.set = function(key, value) {}; // Set the value with this name to &#xA;    this.addMultiple = function(key, valueArr) {};&#xA;    this.getValue = function(key) {};&#xA;    this.remove = function(key) {}; // Remove all values with this key&#xA;    this.size = function() {}; // Number of values&#xA;    this.keySize = function() {}; // Number of keys&#xA;    this.parse = function(str) {}; // Parse a query string&#xA;    this.toStringPairArray = function() {}; // Return array of &quot;key=value&quot; strings&#xA;    this.toQueryString = function() {}; // toStringPairArray joined with &quot;&amp;amp;&quot;&#xA;&#xA;    initialize(arguments);&#xA;};&#xA;&#xA;QueryMap.valueOf = function(str) {}; // Parse and return new QueryMap&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Usages:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Conveniently (and robustly) get a value from &lt;code&gt;document.location.search&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Creating an AJAX URL:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var qm = new QueryMap();&#xA;for (var i in users) {&#xA;    qm.add(&quot;user&quot;, users[i].id);&#xA;}&#xA;qm.add(&quot;method&quot;, &quot;list&quot;);&#xA;qm.add(&quot;timestamp&quot;, new Date().getTime());&#xA;&#xA;&#xA;var url = action + &quot;?&quot; + qm.toQueryString();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You avoid that ugly &lt;code&gt;if (str.length &amp;gt; 0) str += '&amp;amp;';&lt;/code&gt; crap, with an class that has a clean API and more than a singular purpose.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It's also a good object to serialize a form into (rough code):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for (var i in formElements) {&#xA;    var el = formElements[i];&#xA;    var values = el.value.constructor == Array ? el.value || [el.value];&#xA;    for (var n in values) {&#xA;        qm.add(el.name, values[n]);&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-22T07:25:36.053" CommentCount="1" />
  <row Id="29020" PostTypeId="2" ParentId="28919" CreationDate="2010-12-22T07:26:40.870" Score="1" ViewCount="" Body="&lt;p&gt;Err...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Productive&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, you did ask :-)&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-12-22T07:26:40.870" />
  <row Id="29021" PostTypeId="2" ParentId="28919" CreationDate="2010-12-22T07:30:02.117" Score="0" ViewCount="" Body="&lt;h2&gt;Refactor&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Refactor your code, refactor your design, refactor your thinking.  Similar to &lt;strong&gt;iterate&lt;/strong&gt;, but remember not to just iterate additively, but to revisit the assumptions (or downright mistakes) of the past.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2010-12-22T07:30:02.117" />
  <row Id="29022" PostTypeId="2" ParentId="11312" CreationDate="2010-12-22T07:31:49.573" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A working brain is what you need the most&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Blockquote&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Everything else depends upon it&lt;/p&gt;&#xA;" OwnerUserId="4124" LastActivityDate="2010-12-22T07:31:49.573" CommunityOwnedDate="2010-12-22T07:31:49.573" />
  <row Id="29024" PostTypeId="2" ParentId="28995" CreationDate="2010-12-22T07:58:36.223" Score="3" ViewCount="" Body="&lt;p&gt;I think which job to choose depends on people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my view, each job has its pros and cons. Creating a new project maybe more fun, and you have all the rights to decide on how things done. You can choose the technology, pratice planning &amp;amp; managing the time... And it's good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if your friend experience is not enough, it will be risky. He may fail (well, the fact is that lots of projects fail). If he can accept that fact and ready to embrace risks, I think he could choose this way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The maintenance work is just more stable, and will help your friend learn much if his background is not quite good. The bad side of this, as I see, is that it is... easier. Yeah, creating a project from scratch requires lots of hard work to make it successful, than correcting what people already make.&lt;/p&gt;&#xA;" OwnerUserId="9202" LastActivityDate="2010-12-22T07:58:36.223" CommentCount="2" />
  <row Id="29025" PostTypeId="2" ParentId="28654" CreationDate="2010-12-22T08:05:22.240" Score="1" ViewCount="" Body="&lt;p&gt;There are loads of Open Source ecommerce frameworks. Some are built on PHP, others are on Java. So first, you need to pick a framework which you are comfortable coding with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have successfully used &lt;a href=&quot;http://ofbiz.apache.org/&quot; rel=&quot;nofollow&quot;&gt;Apache OFBiz&lt;/a&gt; which is java-based. &#xA;Easy to install and get in action. But there is a bit of a learning curve if you want to modify the Product Model and add custom fields.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.magentocommerce.com&quot; rel=&quot;nofollow&quot;&gt;Magento&lt;/a&gt;, &lt;a href=&quot;http://www.oscommerce.com/&quot; rel=&quot;nofollow&quot;&gt;oscommerce&lt;/a&gt; are leaders in the PHP space but I havent used either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In most cases, the ecommerce framework itself will connect to a payment gateway for credit card transactions. So you should not be storing any CC info in your database. The client will be entering their details on the 3rd party gateway website.&lt;/p&gt;&#xA;" OwnerUserId="1681" LastActivityDate="2010-12-22T08:05:22.240" />
  <row Id="29026" PostTypeId="1" CreationDate="2010-12-22T08:26:14.023" Score="0" ViewCount="101" Body="&lt;p&gt;Can PHP/mySQL handle 1,000,000 unique users onlinie at the same time? Or should we use a more powerful system like Zend? Or does it depend more on the web hosting systems like load balancing, etc?&lt;/p&gt;&#xA;" OwnerUserId="11308" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-22T13:54:03.233" LastActivityDate="2010-12-22T13:54:03.233" Title="what web system is the best to accommodate very high simultaneous web traffic?" Tags="&lt;web-development&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="29027" PostTypeId="2" ParentId="28919" CreationDate="2010-12-22T08:29:50.293" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Flow&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;is the mental state of operation in which a person in an activity is fully immersed in a feeling of energized focus, full involvement, and success in the process of the activity. (Source: wikipedia)&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-22T08:29:50.293" />
  <row Id="29028" PostTypeId="2" ParentId="27564" CreationDate="2010-12-22T08:30:51.430" Score="-5" ViewCount="" Body="&lt;p&gt;Support for java and other compiled languages.&lt;/p&gt;&#xA;" OwnerUserId="11310" LastActivityDate="2010-12-22T08:30:51.430" CommunityOwnedDate="2010-12-22T08:30:51.430" />
  <row Id="29029" PostTypeId="2" ParentId="28667" CreationDate="2010-12-22T08:33:30.590" Score="1" ViewCount="" Body="&lt;p&gt;Increasing the total cost of the system for insufficient benefit. It could be too much copying and pasting, too complex an architecture, or using pricey but ineffective commercial products. Generally speaking all software techniques are aimed at reducing the total cost of a system, and if we end up with a overly expensive system then we have done wrong.&lt;/p&gt;&#xA;" OwnerUserId="5663" LastActivityDate="2010-12-22T08:33:30.590" CommunityOwnedDate="2010-12-22T08:33:30.590" />
  <row Id="29030" PostTypeId="2" ParentId="25013" CreationDate="2010-12-22T08:33:57.383" Score="1" ViewCount="" Body="&lt;p&gt;I'd definitely recommend the &lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/465a0d53-5133-4edd-a0cd-94484fe3d853&quot; rel=&quot;nofollow&quot;&gt;All-margins&lt;/a&gt; extension, it's a rough equivalent of (the most excellent and indispensable) &lt;a href=&quot;http://www.hanselman.com/blog/IntroducingRockScroll.aspx&quot; rel=&quot;nofollow&quot;&gt;rockscroll&lt;/a&gt; in VS2005/2008 (which isn't - and apparently won't be - ported to VS2010)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/oqEGJ.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's so great about these extensions? &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You don't have to fiddle round with 'find all references' - a simple click on an identifier highlights all references (in the current file).&lt;/li&gt;&#xA;&lt;li&gt;You also see all bookmarks, breakpoints, and a rough outline of the 'shape' of the code.&lt;/li&gt;&#xA;&lt;li&gt;No more fiddly scrolling with that stupid default windows scroll bar - when I click at 90% of the way down, I want to scroll to 90% of the way down, not half way between 90% and where I am currently  &lt;code&gt;&amp;lt;/rant&amp;gt;&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4285" LastActivityDate="2010-12-22T08:33:57.383" />
  <row Id="29031" PostTypeId="2" ParentId="28654" CreationDate="2010-12-22T08:35:20.737" Score="0" ViewCount="" Body="&lt;p&gt;I would go with &lt;a href=&quot;http://www.ubercart.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.ubercart.org/&lt;/a&gt; so you get the flexibility of Drupal.&lt;/p&gt;&#xA;" OwnerUserId="5678" LastActivityDate="2010-12-22T08:35:20.737" />
  <row Id="29032" PostTypeId="1" CreationDate="2010-12-22T08:40:06.140" Score="0" ViewCount="237" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/26596/metric-by-which-to-hold-developers-accountable&quot;&gt;Metric by which to hold developers accountable&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;is there a checklist, a test, a benchmark program?&lt;/p&gt;&#xA;" OwnerUserId="11019" LastActivityDate="2010-12-22T09:16:28.830" ClosedDate="2010-12-22T11:28:22.130" Title="How do you measure programmer productivity?" Tags="&lt;productivity&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="0" />
  <row Id="29034" PostTypeId="2" ParentId="29032" CreationDate="2010-12-22T08:42:18.340" Score="2" ViewCount="" Body="&lt;p&gt;Programmers are not machines. You can't measure their productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only thing that matters is that they get things done and deliver working quality code.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;In practice you can however measure how much time it takes for different programmers to accomplish similar tasks. The estimate will work for this kind of tasks. It however will say nothing about their speed in accomplishing different tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people are good with repeating similar tasks very quickly but slow down at learning new stuff and integrating new knowledge into their work. While others might do repetitive tasks rather slower but excel at quickly learning new techniques and making the most of them.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-22T08:42:18.340" />
  <row Id="29035" PostTypeId="2" ParentId="28919" CreationDate="2010-12-22T08:43:48.607" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Coffee&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cause you're gonna need lots of it to be productive.&lt;/p&gt;&#xA;" OwnerUserId="4832" LastActivityDate="2010-12-22T08:43:48.607" />
  <row Id="29036" PostTypeId="2" ParentId="29032" CreationDate="2010-12-22T08:50:22.017" Score="0" ViewCount="" Body="&lt;p&gt;Working Software/Requirement met = Output = Productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest a checklist based on requirements/features your software requires and how many of them have been met? (based on deadlines and other factors).&lt;/p&gt;&#xA;" OwnerUserId="7967" LastActivityDate="2010-12-22T08:50:22.017" />
  <row Id="29037" PostTypeId="1" AcceptedAnswerId="29039" CreationDate="2010-12-22T08:51:17.427" Score="0" ViewCount="88" Body="&lt;p&gt;Hi everybody,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm programming a little bootloader for myself (Little project, nothing too important), and I'm now trying to access to the Hard drives controller, but unfortunatly I've no found any information on it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've googled it, and I even I've looking for informations on GNU/Grub's sources, but it seems that GRUB is working on another way that using controller or I/O Addresses (Try to detect Motherboard Controller and talk with it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you got a cool site to be able to work on this software, I take it with great interest.&lt;/p&gt;&#xA;" OwnerUserId="11245" LastActivityDate="2010-12-22T08:56:18.783" ClosedDate="2010-12-22T12:37:05.950" Title="Does anyone know how can I access throught the SATA controler of my Hard drive?" Tags="&lt;c++&gt;&lt;hardware&gt;&lt;low-level&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="29038" PostTypeId="2" ParentId="29032" CreationDate="2010-12-22T08:51:50.660" Score="3" ViewCount="" Body="&lt;p&gt;The only realistic and reasonable way to measure productivity is&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Is the goals set met on time?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In other words, does the programmer do the work expected within the expected time.  Some people work faster than others, and you can expect more of them, and some people need to do a lot on the side to be the most productive.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-22T08:51:50.660" />
  <row Id="29039" PostTypeId="2" ParentId="29037" CreationDate="2010-12-22T08:56:18.783" Score="1" ViewCount="" Body="&lt;p&gt;At bootloader time you can only use the facilities provided by the surroundings to get up and running.  For PC's the way to get started is by using BIOS routines, which is what grub does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest that you simply get the source from grub and have a very close look.  It is the best example you can get as it 1) works and 2) is very powerful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.gnu.org/software/grub/&quot; rel=&quot;nofollow&quot;&gt;http://www.gnu.org/software/grub/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want something simpler, have a look at LILO&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/LILO_(boot_loader&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/LILO_(boot_loader&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note, however, that you have very little space to put code in.  &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-22T08:56:18.783" CommentCount="4" />
  <row Id="29040" PostTypeId="2" ParentId="28985" CreationDate="2010-12-22T08:56:28.200" Score="4" ViewCount="" Body="&lt;p&gt;The common problems with javascript arithmetic relate to the use of &lt;code&gt;parseInt&lt;/code&gt;, or the lack of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not using radix when converting strings to integers:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;parseInt(&quot;0137&quot;); // 95!&#xA;parseInt(&quot;0137&quot;, 10); // 137&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Not using &lt;code&gt;parseInt&lt;/code&gt; at all with arithmetic:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var a = &quot;2&quot;;&#xA;alert(a + 5); // 25&#xA;alert(a - 5): // -3!&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Misunderstanding floating point arithmetic (applies to all languages, not just JS):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;alert(23 * 1.40 == 32.2); // false, 23 * 1.40 is represented as 32.199999999&#xA;alert((23 * 1.40).toFixed(1) == 32.2); // true&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Calculating currency with floating points may lead to rounding errors, currency values should be treated as integers (multiplied with 100) before processing.&lt;/p&gt;&#xA;" OwnerUserId="5615" LastEditorUserId="5615" LastEditorDisplayName="" LastEditDate="2010-12-22T09:10:06.950" LastActivityDate="2010-12-22T09:10:06.950" CommentCount="1" />
  <row Id="29041" PostTypeId="2" ParentId="28667" CreationDate="2010-12-22T09:00:46.927" Score="6" ViewCount="" Body="&lt;p&gt;The only thing that springs to mind is this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#DEFINE TRUE FALSE&#xA;#DEFINE FALSE TRUE&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But once again, that's just plain old misuse hehe.&lt;/p&gt;&#xA;" OwnerUserId="7494" LastActivityDate="2010-12-22T09:00:46.927" CommunityOwnedDate="2010-12-22T09:00:46.927" CommentCount="3" />
  <row Id="29042" PostTypeId="2" ParentId="29026" CreationDate="2010-12-22T09:01:28.583" Score="0" ViewCount="" Body="&lt;p&gt;In theory, PHP and MYSQL will handle an infinite connections query, it's more depending on your global Hardware infrastructure than on your software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you got a lot of HI-Perf servers with a high speed connection backbone, you'll be able to handle a lot of traffic, but, for my own experience, if you've got a website wich handle around 1Million of unique users connections, you should working on google or some other big company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On my website, we've got an average of 15000 unique connexions with a peek at 25000 during holidays time.&lt;/p&gt;&#xA;" OwnerUserId="11245" LastActivityDate="2010-12-22T09:01:28.583" CommentCount="1" />
  <row Id="29043" PostTypeId="1" CreationDate="2010-12-22T09:04:14.640" Score="0" ViewCount="204" Body="&lt;p&gt;Hi all,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Im new to ofbiz.So is my question is have any mistake forgive me for my mistakes.Im new to ofbiz so i did not know some terminologies in ofbiz.Sometimes my question is not clear because of lack of knowledge in ofbiz.So try to understand my question and give me a good solution with respect to my level.Because some solutions are in very high level cannot able to understand for me.So please give the solution with good examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My problem is i created a project inside the ofbiz/hot-deploy folder namely &quot;productionmgntSystem&quot;.Inside the folder &quot;ofbiz\hot-deploy\productionmgntSystem\webapp\productionmgntSystem&quot; i created a .ftl file namely &quot;app_details_1.ftl&quot; .The following are the coding of this file&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;html&amp;gt;&#xA;&#xA;    &amp;lt;head&amp;gt;&#xA;        &amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=ISO-8859-1&quot;&amp;gt;&#xA;        &amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;&#xA;        &amp;lt;script TYPE=&quot;TEXT/JAVASCRIPT&quot; language=&quot;&quot;JAVASCRIPT&quot;&amp;gt;&#xA;            function uploadFile()&#xA;            {&#xA;                //alert(&quot;Before calling upload.jsp&quot;);&#xA;                window.location='&amp;lt;@ofbizUrl&amp;gt;testing_service1&amp;lt;/@ofbizUrl&amp;gt;'&#xA;&#xA;            }&#xA;&#xA;        &amp;lt;/script&amp;gt;&#xA;    &amp;lt;/head&amp;gt;&#xA;        &amp;lt;!-- &amp;lt;form action=&quot;&amp;lt;@ofbizUrl&amp;gt;testing_service1&amp;lt;/@ofbizUrl&amp;gt;&quot; enctype=&quot;multipart/form-data&quot; name=&quot;app_details_frm&quot;&amp;gt; --&amp;gt;&#xA;        &amp;lt;form action=&quot;&amp;lt;@ofbizUrl&amp;gt;logout1&amp;lt;/@ofbizUrl&amp;gt;&quot; enctype=&quot;multipart/form-data&quot; name=&quot;app_details_frm&quot;&amp;gt; &#xA;        &amp;lt;center style=&quot;height: 299px; &quot;&amp;gt;&#xA;            &amp;lt;table border=&quot;0&quot; style=&quot;height: 177px; width: 788px&quot;&amp;gt;&#xA;                &amp;lt;tr style=&quot;height: 115px; &quot;&amp;gt;&#xA;                    &amp;lt;td style=&quot;width: 103px; &quot;&amp;gt;&#xA;                    &amp;lt;td style=&quot;width: 413px; &quot;&amp;gt;&amp;lt;h1&amp;gt;APPLICATION DETAILS&amp;lt;/h1&amp;gt;&#xA;                    &amp;lt;td style=&quot;width: 55px; &quot;&amp;gt;&#xA;                &amp;lt;/tr&amp;gt;&#xA;                &amp;lt;tr&amp;gt;&#xA;                    &amp;lt;td style=&quot;width: 125px; &quot;&amp;gt;Application name : &amp;lt;/td&amp;gt;&#xA;                    &amp;lt;td&amp;gt;&#xA;                        &amp;lt;input name=&quot;app_name_txt&quot; id=&quot;txt_1&quot; value=&quot; &quot; /&amp;gt;&#xA;                    &amp;lt;/td&amp;gt;&#xA;                &amp;lt;/tr&amp;gt;&#xA;                &amp;lt;tr&amp;gt;&#xA;                    &amp;lt;td style=&quot;width: 125px; &quot;&amp;gt;Excell sheet &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;: &amp;lt;/td&amp;gt;&#xA;                    &amp;lt;td&amp;gt;&#xA;                        &amp;lt;input type=&quot;file&quot; name=&quot;filename&quot;/&amp;gt;&#xA;                    &amp;lt;/td&amp;gt;&#xA;                &amp;lt;/tr&amp;gt;&#xA;                &amp;lt;tr&amp;gt;&#xA;                    &amp;lt;td&amp;gt;&#xA;                       &amp;lt;!-- &amp;lt;input type=&quot;button&quot; name=&quot;logout1_cmd&quot; value=&quot;Logout&quot; onclick=&quot;logout1()&quot;/&amp;gt; --&amp;gt;&#xA;                       &amp;lt;input type=&quot;submit&quot; name=&quot;logout_cmd&quot; value=&quot;logout&quot;/&amp;gt;&#xA;                    &amp;lt;/td&amp;gt;&#xA;                    &amp;lt;td&amp;gt;&#xA;                        &amp;lt;!-- &amp;lt;input type=&quot;submit&quot; name=&quot;upload_cmd&quot; value=&quot;Submit&quot; /&amp;gt; --&amp;gt;&#xA;                        &amp;lt;input type=&quot;button&quot; name=&quot;upload1_cmd&quot; value=&quot;Upload&quot; onclick=&quot;uploadFile()&quot;/&amp;gt;&#xA;                    &amp;lt;/td&amp;gt;                   &#xA;                &amp;lt;/tr&amp;gt;&#xA;            &amp;lt;/table&amp;gt;&#xA;        &amp;lt;/center&amp;gt;&#xA;    &amp;lt;/form&amp;gt;&#xA;&amp;lt;/html&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;the following coding is present in the file &quot;ofbiz\hot-deploy\productionmgntSystem\webapp\productionmgntSystem\WEB-INF\controller.xml&quot;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;......&#xA;.......&#xA;........&#xA;&amp;lt;request-map uri=&quot;testing_service1&quot;&amp;gt;&#xA;            &amp;lt;security https=&quot;true&quot; auth=&quot;true&quot;/&amp;gt;            &#xA;            &amp;lt;event type=&quot;java&quot; path=&quot;org.ofbiz.productionmgntSystem.web_app_req.WebServices1&quot; invoke=&quot;testingService&quot;/&amp;gt;&#xA;            &amp;lt;response name=&quot;ok&quot; type=&quot;view&quot; value=&quot;ok_view&quot;/&amp;gt;&#xA;            &amp;lt;response name=&quot;exception&quot; type=&quot;view&quot; value=&quot;exception_view&quot;/&amp;gt;         &#xA;        &amp;lt;/request-map&amp;gt;&#xA;..........&#xA;............&#xA;..........&#xA;&amp;lt;view-map name=&quot;ok_view&quot; type=&quot;ftl&quot; page=&quot;ok_view.ftl&quot;/&amp;gt;        &#xA;&amp;lt;view-map name=&quot;exception_view&quot; type=&quot;ftl&quot; page=&quot;exception_view.ftl&quot;/&amp;gt; &#xA;................&#xA;.............&#xA;.............&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The following are the coding present in the file &quot;ofbiz\hot-deploy\productionmgntSystem\src\org\ofbiz\productionmgntSystem\web_app_req\WebServices1.java&quot;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;package org.ofbiz.productionmgntSystem.web_app_req;&#xA;&#xA;import javax.servlet.http.HttpServletRequest;&#xA;import javax.servlet.http.HttpServletResponse;&#xA;import java.io.DataInputStream;&#xA;import java.io.FileOutputStream;&#xA;import java.io.IOException;&#xA;&#xA;&#xA;public class WebServices1&#xA;{&#xA;    public static String testingService(HttpServletRequest request, HttpServletResponse response)&#xA;    {&#xA;        //int i=0;&#xA;        String result=&quot;ok&quot;;&#xA;        System.out.println(&quot;\n\n\t*************************************\n\tInside WebServices1.testingService(HttpServletRequest request, HttpServletResponse response)- Start&quot;);&#xA;        String contentType=request.getContentType();&#xA;        System.out.println(&quot;\n\n\t*************************************\n\tInside WebServices1.testingService(HttpServletRequest request, HttpServletResponse response)- contentType : &quot;+contentType);&#xA;        String str=new String();&#xA;        // response.setContentType(&quot;text/html&quot;);&#xA;        //PrintWriter writer;&#xA;        if ((contentType != null) &amp;amp;&amp;amp; (contentType.indexOf(&quot;multipart/form-data&quot;) &amp;gt;= 0))&#xA;        {&#xA;            System.out.println(&quot;\n\n\t**********************************\n\tInside WebServices1.testingService(HttpServletRequest request, HttpServletResponse response) after if (contentType != null)&quot;);&#xA;            try&#xA;            {&#xA;                // writer=response.getWriter();&#xA;                System.out.println(&quot;\n\n\t**********************************\n\tInside WebServices1.testingService(HttpServletRequest request, HttpServletResponse response) - try Start&quot;);&#xA;                DataInputStream in = new DataInputStream(request.getInputStream());&#xA;                int formDataLength = request.getContentLength();&#xA;                byte dataBytes[] = new byte[formDataLength];&#xA;                int byteRead = 0;&#xA;                int totalBytesRead = 0;&#xA;&#xA;                //this loop converting the uploaded file into byte code&#xA;                while (totalBytesRead &amp;lt; formDataLength)&#xA;                {&#xA;                    byteRead = in.read(dataBytes, totalBytesRead,formDataLength);&#xA;                    totalBytesRead += byteRead;&#xA;                }&#xA;&#xA;                String file = new String(dataBytes);&#xA;                //for saving the file name&#xA;                String saveFile = file.substring(file.indexOf(&quot;filename=\&quot;&quot;) + 10);&#xA;                saveFile = saveFile.substring(0, saveFile.indexOf(&quot;\n&quot;));&#xA;                saveFile = saveFile.substring(saveFile.lastIndexOf(&quot;\\&quot;)+ 1,saveFile.indexOf(&quot;\&quot;&quot;));&#xA;                int lastIndex = contentType.lastIndexOf(&quot;=&quot;);&#xA;                String boundary = contentType.substring(lastIndex + 1,contentType.length());&#xA;                int pos;&#xA;&#xA;                //extracting the index of file&#xA;                pos = file.indexOf(&quot;filename=\&quot;&quot;);&#xA;                pos = file.indexOf(&quot;\n&quot;, pos) + 1;&#xA;                pos = file.indexOf(&quot;\n&quot;, pos) + 1;&#xA;                pos = file.indexOf(&quot;\n&quot;, pos) + 1;&#xA;                int boundaryLocation = file.indexOf(boundary, pos) - 4;&#xA;                int startPos = ((file.substring(0, pos)).getBytes()).length;&#xA;                int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length;&#xA;&#xA;                //creating a new file with the same name and writing the content in new file&#xA;                FileOutputStream fileOut = new FileOutputStream(&quot;/&quot;+saveFile);&#xA;                fileOut.write(dataBytes, startPos, (endPos - startPos));&#xA;                fileOut.flush();&#xA;                fileOut.close();&#xA;                System.out.println(&quot;\n\n\t**********************************\n\tInside WebServices1.testingService(HttpServletRequest request, HttpServletResponse response) - try End&quot;);&#xA;            }&#xA;            catch(IOException ioe)&#xA;            {&#xA;                System.out.println(&quot;\n\n\t*********************************\n\tInside WebServices1.testingService(HttpServletRequest request, HttpServletResponse response) - Catch IOException&quot;);&#xA;                //ioe.printStackTrace();&#xA;                return(&quot;exception&quot;);&#xA;            }&#xA;            catch(Exception ex)&#xA;            {&#xA;                System.out.println(&quot;\n\n\t*********************************\n\tInside WebServices1.testingService(HttpServletRequest request, HttpServletResponse response) - Catch Exception&quot;);&#xA;                return(&quot;exception&quot;);&#xA;            }&#xA;        }&#xA;        else&#xA;        {&#xA;            System.out.println(&quot;\n\n\t********************************\n\tInside WebServices1.testingService(HttpServletRequest request, HttpServletResponse response) else part&quot;);&#xA;            result=&quot;exception&quot;;&#xA;        }&#xA;        System.out.println(&quot;\n\n\t*************************************\n\tInside WebServices1.testingService(HttpServletRequest request, HttpServletResponse response)- End&quot;);&#xA;        return(result);&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I want to upload a file to the server.The file is get from user &quot;&lt;code&gt;&amp;lt;input type=&quot;file&quot;..&amp;gt;&lt;/code&gt; tag in the &quot;app_details_1.ftl&quot; file &amp;amp; it is updated into the server by using the method &quot;&lt;code&gt;testingService(HttpServletRequest request, HttpServletResponse response)&lt;/code&gt;&quot; in the class &quot;WebServices1&quot;.But the file is not uploaded. Give me a good solution for uploading a file to the server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks &amp;amp; Regards, &#xA;Sivakumar.J&lt;/p&gt;&#xA;" OwnerUserId="9377" LastActivityDate="2010-12-22T09:04:14.640" ClosedDate="2010-12-22T16:13:48.783" Title="How to Upload a file from client to server using OFBIZ?" Tags="&lt;java&gt;&lt;open-source&gt;&lt;web-applications&gt;&lt;apache&gt;" CommentCount="3" FavoriteCount="1" />
  <row Id="29044" PostTypeId="2" ParentId="28995" CreationDate="2010-12-22T09:04:30.670" Score="1" ViewCount="" Body="&lt;p&gt;My first job started with maintaining an application written by a developer who had left the company before I joined. The application was designed and developed very badly. Some examples are using Exception try and catch clauses to implement business rules, poorly designed Classes with very long methods, badly named methods, not following Java naming standard and no consistency of naming within the same application, no proper documentation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So it was really terrible experience for me. To understand the business rules, I have to trace code line by line. It's very frustrating when you know that something is horribly wrong and you know how to make it right, and yet you have no right to fix it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe someone will have his own bad experience with new project/product as well. But if I have a choice, I'd rather choose a new project. &lt;/p&gt;&#xA;" OwnerUserId="9362" LastActivityDate="2010-12-22T09:04:30.670" CommentCount="3" />
  <row Id="29045" PostTypeId="2" ParentId="29032" CreationDate="2010-12-22T09:07:42.257" Score="0" ViewCount="" Body="&lt;p&gt;I totally disagree with people saying there is no way to measure productivity etc..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;When applied to yourself:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have learnt ways to measure self improvement and productivity, and practised it casually. They are not just qualitative but also about quantity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ways to measure productivity and performance may include;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Lines of code/hr (loc/hr)&lt;/li&gt;&#xA;&lt;li&gt;Write how you felt you completed a programming task or activity, compare to other times you wrote about a similar activity in the same language&lt;/li&gt;&#xA;&lt;li&gt;write down problems you encountered with your programming. i.e Knowledge of functions, knowledge of design patterns and language syntax.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These are a a simple few which can help, if you keep your personal reviews regular and honest then they are bound to not only measure performance (to an extent) but most importantly identify areas where you can improve self performance.&lt;/p&gt;&#xA;" OwnerUserId="10442" LastActivityDate="2010-12-22T09:07:42.257" CommentCount="2" />
  <row Id="29047" PostTypeId="2" ParentId="20927" CreationDate="2010-12-22T09:15:54.820" Score="0" ViewCount="" Body="&lt;p&gt;Senior - Design the system which essentially is the factory pattern.&lt;br&gt;&#xA;Junior - explain different sorts.   &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-22T09:15:54.820" CommunityOwnedDate="2011-02-15T14:41:29.790" />
  <row Id="29048" PostTypeId="2" ParentId="29032" CreationDate="2010-12-22T09:16:28.830" Score="0" ViewCount="" Body="&lt;p&gt;If you ask such a question, you should be an manager member, and you're question is kinda stupid (no offence), it's stupid, because coding is more than just writing some words, you've got to analyse the goals, and then start to build a sort of sketch plan, when you've got a global idea on &quot;How you'll gonna do this&quot; you can start to prototype a first release.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your prototype made the basic work correctly you then can start to really code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, you can't measure your programmers productivity for a simple reason:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Sometimes they will product a lot of work because they've got a good night of sleep and then there minds are clear.&#xA;BUT sometimes they'll be completely non-productive because you push them so far with stress.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The right balance on a project wich involve programmers and basically human being, is a balance between relaxing (playtime) and hard working, we are all happy to do something huge and interesting, we're all interesting to do a job which will give us the opportunity of doing something cool and at the same time be able to working hard for it because it will really give us more skill and reflex.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really want to correctly measure your team productivity, just create a control team which is compose with programmers and they should be able to advise you if some piece of your project takes too long and why, bind this team with a monthly planning report and you should have a good idea of your productivity.&lt;/p&gt;&#xA;" OwnerUserId="11245" LastActivityDate="2010-12-22T09:16:28.830" />
  <row Id="29049" PostTypeId="1" AcceptedAnswerId="29494" CreationDate="2010-12-22T09:28:44.870" Score="3" ViewCount="59" Body="&lt;p&gt;We produce a number of analysis tools which we re-brand and customise for other businesses to include in their websites.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The tools are typically product comparison, data/trend analysis and report production (in a very particular sector). At present these tools run as a single instance in house, our clients redirect there traffic to us with a URL param specifying the client for branding and customisation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Up until now we've been using an MVC approach with XSLT views. If a customer wants customisation we add switches in the MVC and/or imports&amp;amp;override in the XSLT. This was manageable for a while but now we have so many versions and customisations for sooo many clients, getting stable builds out the door is becoming a nightmare &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are looking to move to MS asp.mvc3 with using Razor for our views but before this I am wondering are there any standard practices or patterns for developing and managing the kind of mess we are sliding towards?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers,&#xA;T&lt;/p&gt;&#xA;" OwnerUserId="9228" LastActivityDate="2010-12-23T13:47:49.107" Title="How to manage tailored/branded web tools?" Tags="&lt;web-development&gt;&lt;project-management&gt;&lt;design-patterns&gt;&lt;web-applications&gt;" AnswerCount="3" />
  <row Id="29050" PostTypeId="2" ParentId="28919" CreationDate="2010-12-22T09:30:49.673" Score="0" ViewCount="" Body="&lt;p&gt;Productive programming mindset?&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;CONCENTRATE!&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;(And stop procrastinating here)&lt;/p&gt;&#xA;" OwnerUserId="4285" LastActivityDate="2010-12-22T09:30:49.673" />
  <row Id="29051" PostTypeId="2" ParentId="29026" CreationDate="2010-12-22T09:40:39.903" Score="3" ViewCount="" Body="&lt;p&gt;If you have 1 million &lt;em&gt;simultaenous users&lt;/em&gt;, that means you'd need to be getting at least 300 million visitors a day (and close to a billion &lt;em&gt;pages&lt;/em&gt; per day)&lt;sup&gt;*&lt;/sup&gt;. When you're in those numbers, then you're Facebook or Google and at that point, it doesn't &lt;em&gt;matter&lt;/em&gt; what language or framework you used to begin with, because you're pretty much running on your own platform by the time you get that big.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember, Facebook started off with PHP and as they scaled up, eventually they ended up &lt;a href=&quot;http://developers.facebook.com/blog/post/358&quot; rel=&quot;nofollow&quot;&gt;writing a compiler&lt;/a&gt; to translate PHP into C++ code, and compile that to run on the server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, when you're just starting out, your first priority is to &lt;em&gt;become popular&lt;/em&gt;: you don't become popular overnight and you'll have plenty of time to adapt your design to scale with your popularity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;* Just back-of-an-envelope calculation...&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="2359" LastEditorUserId="2359" LastEditorDisplayName="" LastEditDate="2010-12-22T09:46:41.880" LastActivityDate="2010-12-22T09:46:41.880" />
  <row Id="29052" PostTypeId="2" ParentId="28919" CreationDate="2010-12-22T09:43:57.700" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Integrity&quot; rel=&quot;nofollow&quot;&gt;integrity&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4676" LastActivityDate="2010-12-22T09:43:57.700" />
  <row Id="29053" PostTypeId="2" ParentId="28995" CreationDate="2010-12-22T09:45:22.380" Score="1" ViewCount="" Body="&lt;p&gt;Maintenance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I think which ever job offers the most structure and guidance would actually be my deciding factor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maintenance is a good starting point because you get to see how it is done by the people who's code you are tracing through. You get to see clever things you'd never have thought of and silly/scary mistakes which in the future you will be able to sidestep.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is all invalidated if the code base is spaghetti and you spend all of your time fire-fighting and push emergency releases out the door. &lt;strong&gt;If the client has a direct line to your desk walk away.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, new development coding can be great. Learning about architecture. Feeling like you're really having input. But unless you have someone watching you closely you will end up in a world of pain.&lt;/p&gt;&#xA;" OwnerUserId="9228" LastEditorUserId="9228" LastEditorDisplayName="" LastEditDate="2010-12-22T10:06:55.023" LastActivityDate="2010-12-22T10:06:55.023" CommentCount="1" />
  <row Id="29054" PostTypeId="2" ParentId="28995" CreationDate="2010-12-22T10:01:15.467" Score="2" ViewCount="" Body="&lt;p&gt;I agree maintenance can be a huge pain, but in my experience he will learn the most with maintenance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Avoiding mistakes which lead to maintenance nightmare leads to code which is easier to change, easier to understand, easier to reuse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People who write code which is easy to change, easy to understand, easy to reuse are imho better developers than those who do not.&lt;/p&gt;&#xA;" OwnerUserId="552" LastEditorUserId="552" LastEditorDisplayName="" LastEditDate="2011-01-11T15:39:41.453" LastActivityDate="2011-01-11T15:39:41.453" CommentCount="2" />
  <row Id="29055" PostTypeId="2" ParentId="28919" CreationDate="2010-12-22T10:03:36.087" Score="1" ViewCount="" Body="&lt;p&gt;00000000 00000000 00000000 00101010. Does it need explaining?&#xA;The WORD (x86) that is the answer to life, the universe and everything ;)&lt;/p&gt;&#xA;" OwnerUserId="11318" LastEditorUserId="11318" LastEditorDisplayName="" LastEditDate="2010-12-23T12:00:10.067" LastActivityDate="2010-12-23T12:00:10.067" />
  <row Id="29056" PostTypeId="2" ParentId="28919" CreationDate="2010-12-22T10:11:09.327" Score="0" ViewCount="" Body="&lt;h1&gt;Empathy&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Empathy develops the ability to have compassion towards other beings.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Empathy for the next person who reads your code - Write code thats easier to read / reduce complexity&lt;/li&gt;&#xA;&lt;li&gt;Empathy for the user - Build something that meets their needs&lt;/li&gt;&#xA;&lt;li&gt;Empathy for the client - Understand their business, build something that creates 'wealth' and has value &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6720" LastActivityDate="2010-12-22T10:11:09.327" />
  <row Id="29057" PostTypeId="1" AcceptedAnswerId="29143" CreationDate="2010-12-22T10:15:36.133" Score="4" ViewCount="308" Body="&lt;p&gt;Unfortunately, the conflicts in the workplace have increased, which may be due to the recent changes and reorganizations over the crisis and the increased efficiency requirements. If you constantly work under pressure, there is no time to talk about how we should relate to each other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How do you deal with such conflicts?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-22T15:08:55.510" Title="How do you deal with workplace conflicts?" Tags="&lt;work-environment&gt;&lt;work&gt;&lt;co-workers&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="2" />
  <row Id="29058" PostTypeId="1" AcceptedAnswerId="29060" CreationDate="2010-12-22T10:17:28.573" Score="3" ViewCount="243" Body="&lt;p&gt;I am working on a project with a team of 4-5 people. Is it necessary to discuss the database changes with the team before implementing?  I am working on the database api's.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it better to discuss this or not? In my team are senior people. So can't I make changes myself and implement the change and explain the changes.&lt;/p&gt;&#xA;" OwnerUserId="7702" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-22T13:38:29.680" LastActivityDate="2010-12-22T22:13:09.417" Title="Is it necessary to discuss database changes" Tags="&lt;team&gt;&lt;database&gt;&lt;decisions&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="1" />
  <row Id="29059" PostTypeId="2" ParentId="28995" CreationDate="2010-12-22T10:19:17.270" Score="2" ViewCount="" Body="&lt;p&gt;On the whole I would incline towards maintenance, but it depends a lot on other factors. If you're writing new code in a company that has a stronger team, better developers to learn from and a nicer working environemnt then that is going to be the better option. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alternatively if one is in a sector that your friend would like to make their career in, that might be a better choice for the long term.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If both jobs were in the same organisation, or very similar ones, then maintenance for sure...&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-12-22T10:19:17.270" />
  <row Id="29060" PostTypeId="2" ParentId="29058" CreationDate="2010-12-22T10:19:40.293" Score="10" ViewCount="" Body="&lt;p&gt;Table structure reflects relations between your object. Such changes are quite important and should be discussed.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2010-12-22T12:02:33.490" LastActivityDate="2010-12-22T12:02:33.490" CommentCount="1" />
  <row Id="29061" PostTypeId="2" ParentId="28834" CreationDate="2010-12-22T10:22:24.707" Score="1" ViewCount="" Body="&lt;p&gt;I'm learning Latin at school and in my opinion, Latin is everything but a logical language: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Syncopated verbs: e.g.: &lt;code&gt;amavisse&lt;/code&gt; can become &lt;code&gt;amasse&lt;/code&gt; and mean exactly the same&lt;/li&gt;&#xA;&lt;li&gt;Verbs which look the same, but represent a different time: &lt;code&gt;tegeris&lt;/code&gt; looks just the same as &lt;code&gt;tegeris&lt;/code&gt; while in one of the cases it's ind. A. fut. s. 2e s. and in the other case ind. P. praes. 2e s.&lt;/li&gt;&#xA;&lt;li&gt;Figures of speech: for example brevitas. A style commonly used by Iulius Caesar. It basically comes down to leaving out some 'obvious' words. If you do that in a programming language, I think you might be not so happy.&lt;/li&gt;&#xA;&lt;li&gt;Free arrangement of words: sentences can be constructed with the words in a free order, but mind, not arbitrary. &lt;code&gt;Puella pulchra est&lt;/code&gt; is basically the same as &lt;code&gt;Pulchra est puella&lt;/code&gt;. The only difference is that in the second sentence the writer wants to underline how beautiful the girl is.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These are just a few examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have people in my class who are really good at latin, but never would be good at programming. In my opinion the only thing that can make you a better programmer is mathematics. &lt;/p&gt;&#xA;" OwnerUserId="11317" LastEditorUserId="2471" LastEditorDisplayName="" LastEditDate="2011-01-11T17:54:57.480" LastActivityDate="2011-01-11T17:54:57.480" CommentCount="2" />
  <row Id="29062" PostTypeId="1" CreationDate="2010-12-22T10:23:56.680" Score="4" ViewCount="572" Body="&lt;p&gt;Following on from &lt;a href=&quot;http://programmers.stackexchange.com/questions/28927&quot;&gt;this question&lt;/a&gt;, I wondered if folk might be able to suggest some samples of what might be considered a &quot;good&quot; objective in a periodic review cycle for a programmer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's define SMART from the most popular definitions in the &lt;a href=&quot;http://en.wikipedia.org/wiki/SMART_criteria&quot; rel=&quot;nofollow&quot;&gt;Wikipedia entry&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Specific&lt;/li&gt;&#xA;&lt;li&gt;Measurable&lt;/li&gt;&#xA;&lt;li&gt;Attainable&lt;/li&gt;&#xA;&lt;li&gt;Relevant&lt;/li&gt;&#xA;&lt;li&gt;Time-bound&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4911" LastActivityDate="2011-04-07T22:53:11.947" Title="What is an example of a good SMART objective for a programmer?" Tags="&lt;management&gt;&lt;work&gt;&lt;objectives&gt;&lt;smart&gt;&lt;review&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="29063" PostTypeId="2" ParentId="28927" CreationDate="2010-12-22T10:24:58.270" Score="3" ViewCount="" Body="&lt;p&gt;SMART-type objective-setting &lt;em&gt;can&lt;/em&gt; be useful in a programming context &lt;em&gt;but&lt;/em&gt; it has to be done intelligently or, as pointed out in other answers, it's likely to be time-wasting (or worse).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To get useful objectives, it helps to agree what the SMART acronym will mean: a &lt;a href=&quot;http://www.google.comk/search?q=smart+objectives&quot; rel=&quot;nofollow&quot;&gt;quick Google search&lt;/a&gt; found &lt;a href=&quot;http://en.wikipedia.org/wiki/SMART_criteria&quot; rel=&quot;nofollow&quot;&gt;varying definitions&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;S: seems to have consensus at Specific (although there's some disagreement about what that means)&lt;/li&gt;&#xA;&lt;li&gt;M: Meaningful and Motivational are&#xA;alternatives to the more common&#xA;Measurable&lt;/li&gt;&#xA;&lt;li&gt;A: seems most often to&#xA;represent Achievable, but I've also&#xA;seen Agreed-upon&lt;/li&gt;&#xA;&lt;li&gt;R: depending where&#xA;you look, you can find Realistic,&#xA;Relevant, Results-focused&lt;/li&gt;&#xA;&lt;li&gt;T seems always to reference Time, although&#xA;the emphasis varies&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So first, both sides of the objective-setting negotiation should be working from a common understanding of the process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next, the overall goals for the organisation, division, group, team (or whatever hierarchy is relevant) need to be explained and understood. At that point it should be possible for the individual (IMO, goals have to be set at the individual level to be worthwhile) to be able to agree on a small number of objectives that should inform that person's activities going forward.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it ends there, it's still been a waste of everyone's time. Objectives need to be reviewed and adjusted regularly - where achieved, the possible need to set new objectives should be considered, where not achieved, reasons should be identified and corrective action prescribed where necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everyone concerned should be aware that this kind of exercise is not worthwhile if it's not taken seriously, or perhaps more algorithmically, the value to be extracted is proportional to the effort put in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might be instructive to see what people think might be useful/worthwhile SMART objectives. &lt;a href=&quot;http://programmers.stackexchange.com/questions/29062&quot;&gt;I've put up a question here&lt;/a&gt;...&lt;/p&gt;&#xA;" OwnerUserId="4911" LastActivityDate="2010-12-22T10:24:58.270" />
  <row Id="29064" PostTypeId="2" ParentId="28579" CreationDate="2010-12-22T10:26:20.123" Score="0" ViewCount="" Body="&lt;p&gt;Start reading some blogs by smarter people than you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reading Eric Lippert certainly keeps me in my place. Especially when he says things like &quot;&lt;a href=&quot;http://stackoverflow.com/questions/1195068/the-net-reactive-framework-iobservable-and-linq-over-events/1196605#1196605&quot;&gt;those guys are far smarter than me&lt;/a&gt;&quot;. &lt;/p&gt;&#xA;" OwnerUserId="4285" LastActivityDate="2010-12-22T10:26:20.123" />
  <row Id="29065" PostTypeId="2" ParentId="29058" CreationDate="2010-12-22T10:29:57.117" Score="3" ViewCount="" Body="&lt;p&gt;I dont think this is only related to database changes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are not the Senior Architect or Database Programmer in your team, any changes you make to design &amp;amp; implementation of code or SQL or DB tables or any other artifacts, should be reviewed and approved by other team members - either peers or seniors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you hesitant to do this? Is there no formal review process already in place?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your case, it depends on what impact the changes have. Are you making a small change like the length of a single VARCHAR2 column or adding new columns to the table which need buy-in from the front-end developers too? &#xA;In any case, I'd say discussion is better than not doing so - and regretting later&lt;/p&gt;&#xA;" OwnerUserId="1681" LastEditorUserId="1681" LastEditorDisplayName="" LastEditDate="2010-12-22T11:00:56.277" LastActivityDate="2010-12-22T11:00:56.277" CommentCount="2" />
  <row Id="29066" PostTypeId="2" ParentId="16436" CreationDate="2010-12-22T10:47:26.250" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Ration of hours spent on support issues against development?&lt;/li&gt;&#xA;&lt;li&gt;What new things will I learn?&lt;/li&gt;&#xA;&lt;li&gt;How clean is your code-base? How fragmented (branching in repository)?&lt;/li&gt;&#xA;&lt;li&gt;What's your automated test coverage percentage?&lt;/li&gt;&#xA;&lt;li&gt;Do you use Lotus notes?&lt;/li&gt;&#xA;&lt;li&gt;Which source code control system do you use?&lt;/li&gt;&#xA;&lt;li&gt;Can I use my favourite IDE (Intellij-IDEA for me)?&lt;/li&gt;&#xA;&lt;li&gt;Do you have continuous integration on the project?&lt;/li&gt;&#xA;&lt;li&gt;What is your deployment process?&lt;/li&gt;&#xA;&lt;li&gt;How agile are you?&lt;/li&gt;&#xA;&lt;li&gt;Both pigs and chickens at the standup?&lt;/li&gt;&#xA;&lt;li&gt;Who are your customers?&lt;/li&gt;&#xA;&lt;li&gt;Developer's kit? Dual 19&quot; monitors? Local admin rights?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2010-12-22T10:47:26.250" CommunityOwnedDate="2011-01-28T12:13:01.007" CommentCount="1" />
  <row Id="29067" PostTypeId="2" ParentId="29058" CreationDate="2010-12-22T10:50:01.867" Score="0" ViewCount="" Body="&lt;p&gt;As pointed out by others before, its definitely better to discuss. This is especially true in case of database changes. Database, being pretty much the lowest layer, means that any changes to it ( both additions but especially modifications) can potentially have the GREATEST impact to the developers on the team. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A formal review process is a MUST (and preferable this has to be done by the data architect / dba  / someone who owns the schema ) but even if that is in place, i would still recommend a discussion with team members about data especially schema changes before hand. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;People with a broader technical / domain / application understanding than you might be easily able to point out pitfalls / need / changes to your approach at an earlier stage than a review saving you time and effort (if they are right) &lt;/p&gt;&#xA;" OwnerUserId="2226" LastActivityDate="2010-12-22T10:50:01.867" />
  <row Id="29068" PostTypeId="2" ParentId="5727" CreationDate="2010-12-22T10:52:21.507" Score="5" ViewCount="" Body="&lt;p&gt;Always call the library routines provided, unless you have very, very good reason not to do so (and you need to &lt;em&gt;document&lt;/em&gt; why it is so).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is because sorting algorithms are hard to get absolutely right.   There was a bug in the Java quicksort with very large datasets, which was identified, fixed and delivered to customers by Sun, so you didn't have to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also the default sort in Java 7 has been upgraded to a newer, better sort.  Also for free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless the default sort is &lt;em&gt;provably&lt;/em&gt; not good enough for you, stick with it.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-12-22T13:22:35.197" LastActivityDate="2010-12-22T13:22:35.197" />
  <row Id="29069" PostTypeId="2" ParentId="29058" CreationDate="2010-12-22T10:55:43.510" Score="2" ViewCount="" Body="&lt;p&gt;I don't think there will be a good general answer. It really depends on whether the work of other team members will be affected by what you do or not (although I tend to think changes of the database structure will affect other code). If the database design and API is solely your responsibility, then the least you should do is INFORM people of changes that may affect them. If you are not sure about the effects, ASK the team members so you will be able to judge the trade-offs and make the best (re)design decision - the team as a whole will benefit from it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there are other people being allowed to make changes to the database or share your responsibility there will be a need to COORDINATE everything. You can call this DISCUSSION, but I don't see anything bad in it, unless your team's way to discuss things is perceived as an unjust judgement/criticism of your work. If this is the case I'd understand why you feel uncomfortable with it. But the way to solve this is not to think about what to discuss and what not, but to change the &quot;how&quot; to discuss and to change the team spirit. &lt;/p&gt;&#xA;" OwnerUserId="8316" LastActivityDate="2010-12-22T10:55:43.510" CommentCount="3" />
  <row Id="29070" PostTypeId="2" ParentId="29057" CreationDate="2010-12-22T11:03:46.113" Score="1" ViewCount="" Body="&lt;p&gt;The onus should be on the management (Project Managers / Team Leads) to ensure that a cordial working atmosphere is maintained. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not trying to say that it is solely their responsibility but it is definitely an important facet of their overall role. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, especially during reorganizations, it is the inherent loss of security that people feel that results in conflicts more than anything else. Of course, some of it is justified due to the actual changes but a lot of it is due perceived changes / rumours about changes that are usually rampant in such a scenario. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any person is a team management role should ensure that they have as much open communication as possible with individual members and with the entire team to share the facts available to them (to share). Communicating changes that are taking place openly in a team meeting, explaining the pro's and con's, having discussions with the team about their impacts usually goes to long way in clarifying the changes and alleviating atleast the insecurity that arises due to lack of knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, in such scenarios, there will be changes that are inherently incompatible with the best interests of some people and in such cases, I have usually found that it is best to &#xA;openly talk to those people and let them know where they stand. Doing things in an open and straight forward manner and making their options clear to them is usually a very tough thing to do but again thats part of the job of being a people manager&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Individuals, on their end, contribute best in such scenarios by showing restraint. Especially when it comes to relying on information that may or may not necessarily be true.&#xA;Individuals taking actions based on half baked information from unreliable sources is probably the cause of the most harm in such situations and a cause of great unrest.&lt;/p&gt;&#xA;" OwnerUserId="2226" LastActivityDate="2010-12-22T11:03:46.113" />
  <row Id="29071" PostTypeId="2" ParentId="29062" CreationDate="2010-12-22T11:07:22.943" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Implementation of X module within&#xA;  +-10% of the estimated time (40 hours) within 5% range of 10 defects/KLOC&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It is specific -  as long as &quot;Implementation&quot; has an accepted meaning across the team. &#xA;Usually it refers to &quot;Coding + Unit Testing&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is Measurable - you can measure defects, effort and time&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Achievable - As long as estimate is based on previous actuals from similar modules / expert judgement, it should be achieveable&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Relevant - Its specifically talking about a particular module&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Time Bound - I think there could be an end - date added to it to make it explicit.&#xA;However usually in projects where people multi-task on different things at the same time, thats a lot more difficult to do. But as long as the tasks are prioritized correctly, it shouldnt really be an issue not having an end date in it&lt;/p&gt;&#xA;" OwnerUserId="2226" LastActivityDate="2010-12-22T11:07:22.943" CommentCount="5" />
  <row Id="29072" PostTypeId="1" CreationDate="2010-12-22T11:09:46.877" Score="3" ViewCount="113" Body="&lt;p&gt;Can somebody please tell me in simple words what exactly is ant build file and maven build file?&lt;/p&gt;&#xA;" OwnerUserId="4197" LastActivityDate="2010-12-22T12:20:53.067" Title="What is ant build file and maven build file?" Tags="&lt;java&gt;&lt;apache&gt;" AnswerCount="2" />
  <row Id="29073" PostTypeId="2" ParentId="29072" CreationDate="2010-12-22T11:13:36.267" Score="4" ViewCount="" Body="&lt;p&gt;They are XML files that describe how to build and package software (usually Java software).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ant files are used by the &lt;a href=&quot;http://ant.apache.org&quot; rel=&quot;nofollow&quot;&gt;Ant&lt;/a&gt; tool, which provides more flexible, free-form builds.  An Ant build file is much like a program in its own right (only encoded as verbose XML).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;POM files are used by &lt;a href=&quot;http://maven.apache.org&quot; rel=&quot;nofollow&quot;&gt;Maven&lt;/a&gt;, which has a different philosophy and imposes more structure.  The Maven approach is more declarative than Ant.  Writing a Maven build is less like writing a procedural program to build the software.&lt;/p&gt;&#xA;" OwnerUserId="25" LastEditorUserId="25" LastEditorDisplayName="" LastEditDate="2010-12-22T11:24:10.933" LastActivityDate="2010-12-22T11:24:10.933" CommentCount="3" />
  <row Id="29074" PostTypeId="2" ParentId="28995" CreationDate="2010-12-22T11:33:00.893" Score="1" ViewCount="" Body="&lt;p&gt;On Maintenance you will learn to read other people code. Learn from their good practices and refrain from their bad practices. You will need to know the big picture to fix bugs. On the other hand you will have problem to change some of the system design since if it is a system with customers you will have to consider how your changes will affect them. Although maintenance is frustrating sometimes I think you will learn more as a newbie. Make sure that there are new products on the horizon so that if you will prove yourself as a maintenace engineer you won't be stuck in this position.&lt;/p&gt;&#xA;" OwnerUserId="5730" LastActivityDate="2010-12-22T11:33:00.893" />
  <row Id="29075" PostTypeId="1" AcceptedAnswerId="29086" CreationDate="2010-12-22T11:38:40.803" Score="26" ViewCount="961" Body="&lt;p&gt;Yes yes, I am aware that &lt;code&gt;'\n'&lt;/code&gt; writes a newline in UNIX while for Windows there is the two character sequence: &lt;code&gt;'\r\n'&lt;/code&gt;. All this is very nice in theory, but my question is &lt;strong&gt;&lt;em&gt;why&lt;/em&gt;&lt;/strong&gt;? Why the carriage return character is extra in Windows? If UNIX can do it in &lt;code&gt;\n&lt;/code&gt; why does it take Windows two characters to do this? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am reading David Beazley's Python book and he says:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;For example, on Windows, writing the&#xA;  character '\n' actually outputs the&#xA;  two- character sequence '\r\n' (and&#xA;  when reading the file back, '\r\n' is&#xA;  translated back into a single '\n'&#xA;  character).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Why the extra effort? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will be honest. I have known the difference for a long time but have never bothered to ask WHY. I hope that is answered today.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for your time.&lt;/p&gt;&#xA;" OwnerUserId="11323" LastActivityDate="2011-02-20T09:10:33.927" Title="Difference between '\n' and '\r\n'" Tags="&lt;windows&gt;&lt;linux&gt;&lt;file-handling&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="3" />
  <row Id="29076" PostTypeId="2" ParentId="16527" CreationDate="2010-12-22T11:39:03.800" Score="0" ViewCount="" Body="&lt;p&gt;@Gary &#xA;sry for replying late....was busy with exams...I talked to my professor and he in fact agreed to whatever u said...But he raised couple of points to which i had no answer &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(i)Our senior batch has already done some work in Struts 1.3 and we have to reuse their work..(now i seriously don't know whether we can do that with springs) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(ii) He feels, as beginners we should start with a more simpler framework like struts 2, cuz Springs is tougher to learn for us beginners!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would be great if you can clear these doubts...&lt;/p&gt;&#xA;" OwnerUserId="4197" LastActivityDate="2010-12-22T11:39:03.800" CommentCount="2" />
  <row Id="29077" PostTypeId="2" ParentId="29075" CreationDate="2010-12-22T11:40:50.170" Score="4" ViewCount="" Body="&lt;p&gt;Historically, line feed meant that the platen - the roller on which you type - rotated one line, causing text to appear on the next line... but in the next column.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Carriage return meant &quot;return the bit with which you type to the beginning of the line&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Windows uses CR+LF because MS-DOS did, because CP/M did, because it made sense for serial lines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unix copied its \n convention because Multics did.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suspect if you dig far enough back, you'll find a political disagreement between implementors!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(You left out the extra fun bit, where Mac convention is (or used to be) to just use CR to separate lines. And now Unicode also has its own line separator, U+2028!)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2010-12-22T12:15:30.967" LastActivityDate="2010-12-22T12:15:30.967" CommentCount="3" />
  <row Id="29078" PostTypeId="2" ParentId="29075" CreationDate="2010-12-22T11:45:05.017" Score="11" ViewCount="" Body="&lt;p&gt;As far as I'm aware this harks back to the days of typewriters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;\r&lt;/code&gt; is carriage return, which is what moves where you are typing on the page back to the left (or right if that is your culture)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;\n&lt;/code&gt; is new line, which moves your paper up a line.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing only one of these on a typewriter would put you in the wrong place to start writing a new line of text.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When computers came about I guess some people kept the old model, but others realised that it wasn't necessary and encapsulated a full newline as one character.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-12-22T11:45:05.017" CommentCount="9" />
  <row Id="29079" PostTypeId="2" ParentId="2260" CreationDate="2010-12-22T11:51:49.743" Score="0" ViewCount="" Body="&lt;p&gt;I've been using programmer dvorak for five or six years now. I program in C++ and find the syntax layout really, really useful.&#xA;My QWERTY typing speed suffered for a few months, but I switch back and forth regularly, so I was soon back up to speed. Stick it out.&#xA;I've never used a physical dvorak keyboard; I just had a printout of the layout on my desk in case I got lost. I can now mentally switch between touch-typing qwerty, programmer dvorak, and regular dvorak without significant penalty.&#xA;Go me!&lt;/p&gt;&#xA;" OwnerUserId="5133" LastActivityDate="2010-12-22T11:51:49.743" />
  <row Id="29080" PostTypeId="2" ParentId="29075" CreationDate="2010-12-22T11:54:23.560" Score="4" ViewCount="" Body="&lt;p&gt;The reason the conventions hold on their various systems (\n on unix type systems, \r\n on Windows, etc) is that once you've picked a convention you CAN'T change it without breaking a bunch of people's files. And that's generally frowned upon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unix-type systems were developed (very early days) using various models of teletype, and at some point someone decided the equipment should carriage return when it did a line feed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Windows came from DOS, so for Windows the question really is: Why did DOS use this cr/lf sequence? I'm guessing it has something to do with CP/M, where DOS has some of it's roots. Again, specific models of teletype may have played a role.&lt;/p&gt;&#xA;" OwnerUserId="6294" LastActivityDate="2010-12-22T11:54:23.560" CommentCount="3" />
  <row Id="29081" PostTypeId="2" ParentId="28995" CreationDate="2010-12-22T11:59:04.843" Score="9" ViewCount="" Body="&lt;p&gt;If the goal is strictly &lt;strong&gt;learning&lt;/strong&gt;, then maintenance may be better. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if one has a &lt;em&gt;choice&lt;/em&gt;, then working on &lt;strong&gt;new projects&lt;/strong&gt; win hands down:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;More fun&lt;/li&gt;&#xA;&lt;li&gt;Less stressful&lt;/li&gt;&#xA;&lt;li&gt;More productive (i.e. more visible results with less effort)&lt;/li&gt;&#xA;&lt;li&gt;Results are more visible. This leads to quicker promotions, more resume-worthy items. While you may &lt;em&gt;technically&lt;/em&gt; know less, your career could be progressing faster. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some advice may be biased, since us old hands feel it's appropriate for newbies to scrub the deck for a few months... we did this, and so should you. People also tend to rationalize by attributing more value than warranted to painful experiences.&lt;/p&gt;&#xA;" OwnerUserId="2193" LastActivityDate="2010-12-22T11:59:04.843" CommentCount="2" />
  <row Id="29082" PostTypeId="2" ParentId="28579" CreationDate="2010-12-22T12:00:33.710" Score="0" ViewCount="" Body="&lt;p&gt;If I'm really any good, I'll keep improving. If that happens, my future self will look back and see my present flaws. If I am arrogant now, I will look back and call myself a fool. If you think about it, I'm my own best defence against conceit.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-12-22T12:00:33.710" />
  <row Id="29083" PostTypeId="2" ParentId="27564" CreationDate="2010-12-22T12:07:38.493" Score="0" ViewCount="" Body="&lt;p&gt;Hi,&#xA;I like the php progress and scalability in the recent days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The new features introduced in java have only make the things complex rather then making it simple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;request 1: &#xA;db-connection-pool facility as additional library.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;request 2: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am asking for the reverse ajax or comet programming or RTMP facility as a built in library.These are already developed for .net,java, python and perl by dojo foundation&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have similar things in php but not a complete solution.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Also there is support for observer pattern in  SPL. but not properly documented.  &lt;/li&gt;&#xA;&lt;li&gt;Xajax framework (good but it requires redesign the application) &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;bye for now.&lt;/p&gt;&#xA;" OwnerUserId="11325" LastActivityDate="2010-12-22T12:07:38.493" CommunityOwnedDate="2010-12-22T12:07:38.493" />
  <row Id="29084" PostTypeId="2" ParentId="29062" CreationDate="2010-12-22T12:08:18.520" Score="13" ViewCount="" Body="&lt;p&gt;I have come to realize that SMART goals are best used when people have a deficiency they need to correct, and are not so good for times you want people to grow or go from good to great. If someone is not doing timesheets, for example, and this is hurting the company because you sometimes have to delay invoicing, you could have a smart goal like &quot;over the next 6 weeks, at least 5 weeks' timesheets will be completed by 10am of the next Monday morning.&quot; 6 weeks later you have a true or false; the developer made it or missed it. Either the new habit is in place or you get to decide if you want to still employ someone who doesn't mind delaying your invoicing. Works for people who have other bad habits too: &quot;over the next two weeks, at least 75% of your checkins will have a checkin comment that follows the checkin guidelines (link to internal document).&quot; Again you have a nice crisp did/didn't at the end of that short time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where I find these constructs less helpful is when the timeframe lengthens, when the achievement you want is fuzzy (learn a language, be more helpful), or when it's ok if the goal is not achieved (you may value certifications, but if someone failed their test you probably wouldn't take disciplinary action.) Suddenly all the benefits of the smart goal fall away. Don't try to use them for anything other than corrective actions, and they're easy to write, they help the developer get up to the expected level, and they're easy to test for when the time's up. Having trouble writing them means they're not the right tool for this goal.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-12-22T12:08:18.520" CommentCount="3" />
  <row Id="29086" PostTypeId="2" ParentId="29075" CreationDate="2010-12-22T12:10:26.010" Score="43" ViewCount="" Body="&lt;p&gt;Backward compatibility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Windows is backward compatible with MS-DOS (aggressively so, even) and MS-DOS used the CR-LF convention because MS-DOS was compatible with CP/M-80 (somewhat by accident) which used the CR-LF convention because that was how you drove a printer (because printers were originally computer controlled typewriters).   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Printers have a separate command to move the paper up one line, and a separate command for moving the printer head back to the left margin.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's why.  And, yes, it is an annoyance, but it is part of the package deal that allowed MS-DOS to win over CP/M, and Windows 95 to win over all the other GUI's on top of DOS, and Windows XP to take over from Windows 98.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Note: Modern laser printers still have these commands because they too are backwards compatible with earlier printers - HP in particular do this well)&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2011-02-20T09:10:33.927" LastActivityDate="2011-02-20T09:10:33.927" CommentCount="7" />
  <row Id="29087" PostTypeId="2" ParentId="29057" CreationDate="2010-12-22T12:13:46.273" Score="1" ViewCount="" Body="&lt;p&gt;Answers to &lt;a href=&quot;http://programmers.stackexchange.com/questions/25670/dealing-with-co-workers-in-a-stressful-work-environment&quot;&gt;this question&lt;/a&gt; might help you too.&lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-12-22T12:13:46.273" />
  <row Id="29088" PostTypeId="2" ParentId="29072" CreationDate="2010-12-22T12:20:53.067" Score="0" ViewCount="" Body="&lt;p&gt;They're just like any other build files (NAnt, make, ...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They describe the steps taken to produce some kind of artifact - an executable file, a test run, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The build file will describe how to create a clean build environment, what to compile, where the dependencies are that you need to compile, where to put the executables, DLLs, and the like, any additional programs you need to execute (like running your testrunner on your project, or instrumenting your code so a coverage tool can analyse your test coverage).&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-12-22T12:20:53.067" />
  <row Id="29089" PostTypeId="2" ParentId="1262" CreationDate="2010-12-22T12:21:46.503" Score="7" ViewCount="" Body="&lt;p&gt;For me the &lt;code&gt;:global&lt;/code&gt; command is a killer app.  It will execute arbitrary vim commands on any line that matches (or does not match) a regex.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some examples:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The default behaviour is to list out every line that matches, so:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;:g/TODO:/&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;will list every line that contains the text &quot;TODO:&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;change 'Mickey' to 'Minnie' on any line that also contains the word 'Mouse'&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;:g/Mouse/ s/Mickey/Minnie/&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The commands can have their own range, so this will delete from every line with &quot;TODO:&quot; to the next blank line:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;:g/TODO:/ .,/^$/ d&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use :g! to execute on every line that does NOT match the regex, e.g. to replace &quot;emacs&quot; with &quot;vim&quot; except on lines that contain the word &quot;sucks&quot;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;:g!/sucks/ s/emacs/vim/&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="8732" LastActivityDate="2010-12-22T12:21:46.503" CommentCount="1" />
  <row Id="29090" PostTypeId="2" ParentId="28579" CreationDate="2010-12-22T12:36:33.917" Score="2" ViewCount="" Body="&lt;p&gt;The word pride actually has two meanings. One is being too proud to do something, the other means being proud of what you have done.&lt;br&gt;&#xA;In the end, they do kind of mean the same, because the first means to be too proud of yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A big problem is, that people take everything personally, because they are too concerned with themselves. This is one reason, why critisism is generally not well accepted, even if it an act of pure honesty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is nothing wrong about being proud of things you accomplished. But being proud of yourself can easily become one. Your self is not really an accomplishment. &quot;All&quot; you can achieve in that &quot;field&quot; is having tried to do things right and having tried to get better at that. And to &quot;just&quot; be a good person. You won't neccessarily always get credit for it, but it is something, you can definitely be proud of. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am proud about some things I did, satisfied with some, sorry for some and some I am ashamed of. But apart from a few exceptions, I use none of these to measure my personal value. I use quite a few of them to measure my competence (or incompetence), which is at best losely coupled with my self-esteem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When it comes to professional conflicts, it is important to have a clear picture of ones skills and experience. Not about how you'd like to be or would like others to think of you. It is important to try seeing your competence and that of your peers the way they are. Being overly humble risks your competence being unused, which can effectly mean a negative impact on the final result. Being overly confident goes just as wrong, but I suppose that's no news.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ego is a weird thing. It is a picture of ourself, built up for us and others to believe in, to achieve higher social status. This is a very instinctive process, that can do a lot of damage. It is a simple drive evolution has given us (that appearently prooved fit). There is nothing wrong in satisfying such &quot;lowly&quot; needs, i.e. pleasing your ego, having a good meal (or doing the kind of thing that happens rarely to programmers :D).&lt;br&gt;&#xA;What you must not do, is letting such drives guide your decision against your conscience and the best of your knowledge. You should not satisfy your need for social recognition at the cost of others or the community in question. But you shouldn't feel bad for longing for it or for accepting it, when you deserve it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I am trying to say is, I don't think you should try being a coding monk. The idea is nice, but I don't think it can work, especially in a world as ours.&lt;br&gt;&#xA;Thrive for excellence and superiority (over yourself and even peers and mentors), but not by attributing less value to the work of others, but by becoming better youself. Understand people in your entourage as a valuable source of knowledge and as a fine measure to reflect upon your own personal progress. The more people you truly respect, the easier it is to get feedback that you can rely on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And don't forget, that above all, we are human beings. Our life is short, our knowledge limited. Don't take things too serious.&lt;/p&gt;&#xA;" OwnerUserId="667" LastEditorUserId="667" LastEditorDisplayName="" LastEditDate="2010-12-22T14:46:02.450" LastActivityDate="2010-12-22T14:46:02.450" />
  <row Id="29091" PostTypeId="2" ParentId="28950" CreationDate="2010-12-22T12:45:35.140" Score="8" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I'm curious what would be the most purely functional language that is dynamically typed.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Erlang probably. In Erlang all variables are immutable and there are no mutable data structures other than the process dictionary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can still do IO whenever you want and message passing is referentially transparent either, so it's not entirely pure. But it's definitely close to being purely functional than e.g. scheme.&lt;/p&gt;&#xA;" OwnerUserId="3446" LastActivityDate="2010-12-22T12:45:35.140" CommentCount="1" />
  <row Id="29092" PostTypeId="2" ParentId="28927" CreationDate="2010-12-22T12:45:52.807" Score="1" ViewCount="" Body="&lt;p&gt;SMART is an acronym to remember some criteria for better goals. So introducing SMART means, your management has to make better following this principle. Without SMART management would set goals anyways, but they would be more likely to difficult. So, for programmers should come no change, the management has to change it's style to implement SMART. And if they do right, your work as a programmer can become easier, because the direction of the project is more clear, timeframes are set and so on. If management doesn't do it right, not much will change.&lt;/p&gt;&#xA;" OwnerUserId="7654" LastActivityDate="2010-12-22T12:45:52.807" />
  <row Id="29094" PostTypeId="2" ParentId="29058" CreationDate="2010-12-22T12:57:01.690" Score="0" ViewCount="" Body="&lt;p&gt;This seems as a design change. This must be done in the design phase. This should get reviewed in the design review.&lt;br&gt;&#xA;So my short answer is Yes. Get it reviewed as early as possible. Because if it is not reviewed and someone else has created yet, that person is surely going to get pissed. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastEditorUserId="8820" LastEditorDisplayName="" LastEditDate="2010-12-22T13:14:31.243" LastActivityDate="2010-12-22T13:14:31.243" CommentCount="2" />
  <row Id="29095" PostTypeId="2" ParentId="29058" CreationDate="2010-12-22T13:04:23.433" Score="1" ViewCount="" Body="&lt;p&gt;Depends what you mean by &quot;discuss&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If by &quot;discuss&quot; you mean &quot;debate&quot; or &quot;design by committee&quot;, I say no. The developer who is the owner of a section of an application gets to say what the schema looks like. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If, instead of &quot;discussing&quot; database changes, you change the database and not let anybody know until their code fails, I say yes, &quot;discussion&quot; is critical.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-22T13:04:23.433" CommentCount="2" />
  <row Id="29096" PostTypeId="1" CreationDate="2010-12-22T13:08:22.397" Score="3" ViewCount="354" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/57507/how-to-become-more-productive-in-design-and-programming&quot;&gt;How to become more productive in design and programming&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;tools, attitudes, workflow ...&lt;/p&gt;&#xA;" OwnerUserId="11019" LastActivityDate="2010-12-22T13:59:47.800" ClosedDate="2011-05-23T00:45:03.913" Title="How to become a more productive programmer?" Tags="&lt;productivity&gt;" AnswerCount="0" CommentCount="0" FavoriteCount="0" />
  <row Id="29097" PostTypeId="2" ParentId="57507" CreationDate="2010-12-22T13:14:30.010" Score="2" ViewCount="" Body="&lt;p&gt;Most important steps:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;use version control&lt;/li&gt;&#xA;&lt;li&gt;use automatic buildfiles&lt;/li&gt;&#xA;&lt;li&gt;use versioning (every program-state that goes to other persons get a version-number and a tag in version-control to restore it later to reproduce problems)&lt;/li&gt;&#xA;&lt;li&gt;use automatic testing (tests are running without input from user)&lt;/li&gt;&#xA;&lt;li&gt;make daily builds or better use continuous integration&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7654" LastActivityDate="2010-12-22T13:14:30.010" />
  <row Id="29098" PostTypeId="2" ParentId="28453" CreationDate="2010-12-22T13:15:22.183" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Assembly Language&lt;/strong&gt; - makes it easy to &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0123704901&quot; rel=&quot;nofollow&quot;&gt;reason about computer architecture&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;C&lt;/strong&gt; - Low level language that gives you much control of memory and hardware. A good fit for writing a Operating System.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Java&lt;/strong&gt; - Object oriented language that runs on multiple platforms without recompilations.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Erlang&lt;/strong&gt; - Concurrent language where you can create millions of &quot;processes&quot; on your machine, and easyli scale out to a hole cluster. Do concurrent without threads and shared memory - with asynchronous message passing. See &lt;a href=&quot;http://www.infoq.com/presentations/erlang-software-for-a-concurrent-world&quot; rel=&quot;nofollow&quot;&gt;Erlang - software for a concurrent world&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;F#&lt;/strong&gt; - Functional programming in a static typed language with type inference.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="18" LastActivityDate="2010-12-22T13:15:22.183" CommunityOwnedDate="2011-05-02T19:15:27.120" CommentCount="1" />
  <row Id="29099" PostTypeId="2" ParentId="57507" CreationDate="2010-12-22T13:20:28.320" Score="8" ViewCount="" Body="&lt;p&gt;I suggest you three things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/23537/whats-your-favorite-productivity-tip-hack&quot;&gt;Practice&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/16301/tips-for-working-fast/&quot;&gt;Practice&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;and &lt;a href=&quot;http://programmers.stackexchange.com/questions/22222/techniques-and-methods-to-improve-and-speedup-development&quot;&gt;Practice&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(click on each links)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-22T13:59:47.800" LastActivityDate="2010-12-22T13:59:47.800" />
  <row Id="29100" PostTypeId="2" ParentId="57507" CreationDate="2010-12-22T13:21:28.363" Score="2" ViewCount="" Body="&lt;p&gt;Workflow - By automating as much as possible. Build, deploy, configure, install, test, version, branch as much as possible.&lt;br&gt;&#xA;Attitude - humble, hungry, passionate, cool, thinker, open minded&lt;br&gt;&#xA;Tools - Best editors in the world, version app, test suite, static analyzer, dynamic analyzer, monitor, keyboard, chair, table, internet connection&lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-22T13:21:28.363" CommentCount="1" />
  <row Id="29101" PostTypeId="2" ParentId="28453" CreationDate="2010-12-22T13:23:48.053" Score="5" ViewCount="" Body="&lt;p&gt;I would choose Assembly Language, Haskell and Prolog for the reasons already stated and add Eiffel (great OO language) and SQL (if that counts as a programming language).&lt;/p&gt;&#xA;" OwnerUserId="11237" LastActivityDate="2010-12-22T13:23:48.053" CommunityOwnedDate="2011-05-02T19:15:27.120" CommentCount="1" />
  <row Id="29102" PostTypeId="2" ParentId="57507" CreationDate="2010-12-22T13:24:27.680" Score="4" ViewCount="" Body="&lt;p&gt;Don't hang out on Programmers... code!&lt;/p&gt;&#xA;" OwnerUserId="9521" LastActivityDate="2010-12-22T13:24:27.680" />
  <row Id="29103" PostTypeId="2" ParentId="57507" CreationDate="2010-12-22T13:26:19.167" Score="2" ViewCount="" Body="&lt;p&gt;Answer: Time&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is a skill like any other.  To become more proficient, you must spend more time doing it.  There is no magical thing that will let you develop the skills without investing time.&lt;/p&gt;&#xA;" OwnerUserId="11225" LastActivityDate="2010-12-22T13:26:19.167" />
  <row Id="29104" PostTypeId="2" ParentId="5727" CreationDate="2010-12-22T13:27:23.883" Score="1" ViewCount="" Body="&lt;p&gt;At a conference once I heard a nice story about this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At Microsoft someone was writing a VB app (c. VB 3) and mailed a bunch of people saying that he had a load of values and he wanted them to appear in the combobox in order, how should he go about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everyone dived for their old computer science text books, looking up highly efficient routines and porting them to Visual Basic and mailing them to him.  One guys just mailed back &quot;how many values in the combobox?&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;About 50&quot; came the reply.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Just set the sorted property to TRUE&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In 99.9999% of instances sorting is best done using a library, control or in the SQL select as the performance difference between the library routine and anything you write will be negligible and the effort and maintenance overhead will massively outweigh the consequences.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-22T13:27:23.883" />
  <row Id="29105" PostTypeId="2" ParentId="2260" CreationDate="2010-12-22T13:36:52.490" Score="0" ViewCount="" Body="&lt;p&gt;I have a Microsoft Natural keyboard at home and at work, on which I type using regular (non-programmer) Dvorak, and when using regular straight keyboards I type QWERTY (even on my own netbook, which I could easily change).  That way, I have an easy muscle-switch between layouts and I don't annoy anyone by having Dvorak on a computer they're trying to use.  I don't find that having shortcut keys in a different place is too much of a hassle; I just got used to it.&lt;/p&gt;&#xA;" OwnerUserId="1086" LastActivityDate="2010-12-22T13:36:52.490" />
  <row Id="29106" PostTypeId="2" ParentId="21082" CreationDate="2010-12-22T13:38:06.283" Score="1" ViewCount="" Body="&lt;p&gt;Another obscure &quot;algorithm&quot; is &lt;a href=&quot;http://www.dangermouse.net/esoteric/intelligentdesignsort.html&quot; rel=&quot;nofollow&quot;&gt;Intelligent Design Sort&lt;/a&gt; - but no algorithm is faster or has less memory consumption :)&lt;/p&gt;&#xA;" OwnerUserId="11237" LastActivityDate="2010-12-22T13:38:06.283" />
  <row Id="29107" PostTypeId="2" ParentId="29049" CreationDate="2010-12-22T13:39:29.647" Score="0" ViewCount="" Body="&lt;p&gt;Depends, what's the real problem with the system you have now?  Why are builds unstable?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sounds like your team needs to &lt;strong&gt;Get Organized.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would start with documenting everything.  Every current build and every change for every customer and customization.  Before changing anything, &lt;em&gt;consult the documentation&lt;/em&gt;. Make sure your changes don't break the system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's quite possible moving to an entirely new set up is the best way to achieve organization and stability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;hr&gt;&#xA;&lt;em&gt;Reminds me of a company in Genoa I spoke with once...&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="9987" LastActivityDate="2010-12-22T13:39:29.647" />
  <row Id="29108" PostTypeId="2" ParentId="29057" CreationDate="2010-12-22T13:42:09.713" Score="1" ViewCount="" Body="&lt;p&gt;It is easier said than done but it all starts with you. If you treat others the way you want to be treated the environment will change. If not as a whole, at least for you. During a conflict try to see things from the point of view of the other person as well as yours. It will help you understand the conflict root cause.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If changing your attitude does not help then @Jose's suggestion is the best advice: &quot;update your CV and move on&quot;.&lt;/p&gt;&#xA;" OwnerUserId="11219" LastActivityDate="2010-12-22T13:42:09.713" />
  <row Id="29109" PostTypeId="1" AcceptedAnswerId="29136" CreationDate="2010-12-22T13:49:24.783" Score="50" ViewCount="17485" Body="&lt;p&gt;As a linux (server side) developer, I don't know where and why should I use C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I'm going to performance, the first and last choice is C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When &quot;performance&quot; isn't the main issue, programming languages like perl and python would be good choices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Almost all of open source applications I know in this area has been written in C, perl and python, bash script, awk and even php, but no one goes to use C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not discussing about some other areas like GUI or Web application, I'm just talking about Linux and about CLI and daemons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any satisfiable reason to use C++?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="11006" LastEditorUserId="11006" LastEditorDisplayName="" LastEditDate="2010-12-22T13:51:51.410" LastActivityDate="2011-03-31T16:51:55.080" Title="Is there any reason to use C++ instead of C, Perl, Python, etc?" Tags="&lt;programming-languages&gt;&lt;c++&gt;&lt;c&gt;&lt;linux&gt;&lt;perl&gt;" AnswerCount="22" CommentCount="3" FavoriteCount="25" />
  <row Id="29110" PostTypeId="2" ParentId="57507" CreationDate="2010-12-22T13:51:13.330" Score="7" ViewCount="" Body="&lt;p&gt;Cut the internet connection :)&lt;/p&gt;&#xA;" OwnerUserId="10158" LastActivityDate="2010-12-22T13:51:13.330" CommentCount="1" />
  <row Id="29112" PostTypeId="2" ParentId="29109" CreationDate="2010-12-22T13:55:27.260" Score="11" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918&quot; rel=&quot;nofollow&quot;&gt;According to Linus&lt;/a&gt;, no.&lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2010-12-22T13:55:27.260" CommentCount="12" />
  <row Id="29113" PostTypeId="1" CreationDate="2010-12-22T13:57:35.303" Score="2" ViewCount="132" Body="&lt;p&gt;I do mainly .NET work so I assume that the framework is all fine and that.  But have there been reports of various tools like .NET Reflector and the like not working properly with Win 7?  This is a company-wide thing so there isn't much I can do about it, but once everything is reinstalled I'm hoping to not find anything shocking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers.&lt;/p&gt;&#xA;" OwnerUserId="6574" LastActivityDate="2010-12-22T15:48:41.793" Title="Upgrading from XP Pro to Win 7, anything I should worry about?" Tags="&lt;.net&gt;&lt;windows&gt;&lt;environment&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="1" />
  <row Id="29114" PostTypeId="2" ParentId="29075" CreationDate="2010-12-22T13:59:14.293" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Newline#History&quot; rel=&quot;nofollow&quot;&gt;History of the Newline Character&lt;/a&gt; (Wikipedia):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;ASCII was developed simultaneously by the ISO and the ASA, the predecessor organization to ANSI. During the period of 1963–1968, the ISO draft standards supported the use of either CR+LF or LF alone as a newline, while the ASA drafts supported only CR+LF.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The sequence CR+LF was in common use on many early computer systems that had adopted teletype machines, typically an ASR33, as a console device, because this sequence was required to position those printers at the start of a new line. On these systems, text was often routinely composed to be compatible with these printers, since the concept of device drivers hiding such hardware details from the application was not yet well developed; applications had to talk directly to the teletype machine and follow its conventions.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The separation of the two functions concealed the fact that the print head could not return from the far right to the beginning of the next line in one-character time. That is why the sequence was always sent with the CR first. In fact, it was often necessary to send extra characters (extraneous CRs or NULs, which are ignored) to give the print head time to move to the left margin.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Even after teletypes were replaced by computer terminals with higher baud rates, many operating systems still supported automatic sending of these fill characters, for compatibility with cheaper terminals that required multiple character times to scroll the display.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;MS-DOS (1981) adopted CP/M's CR+LF; CP/M's use of CR+LF made sense for using computer terminals via serial lines. This convention was inherited by Microsoft's later Windows operating system.&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The Multics operating system began development in 1964 and used LF alone as its newline. Unix followed the Multics practice, and later systems followed Unix.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="7048" LastActivityDate="2010-12-22T13:59:14.293" />
  <row Id="29115" PostTypeId="2" ParentId="29109" CreationDate="2010-12-22T14:01:51.870" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;https://github.com/facebook/hiphop-php&quot; rel=&quot;nofollow&quot;&gt;According to Facebook&lt;/a&gt;, maybe.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-12-22T14:01:51.870" />
  <row Id="29116" PostTypeId="2" ParentId="29109" CreationDate="2010-12-22T14:06:16.250" Score="7" ViewCount="" Body="&lt;p&gt;I don't think there's any compelling reason to use C++. If you want to do OO programming, you can use Python instead and write the parts that need fast performance in C. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-22T14:06:16.250" CommentCount="4" />
  <row Id="29117" PostTypeId="2" ParentId="29113" CreationDate="2010-12-22T14:06:24.037" Score="3" ViewCount="" Body="&lt;p&gt;I've been developing on Windows 7 for the better part of the year and haven't had any problems. You will need to reinstall your applications, since there is no graceful upgrade from XP to Win7, but your documents (from &quot;My Documents&quot;) and such will be preserved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're going from 32-bit to 64-bit at the same time, you might need to watch out for assembly versions. Some things (such as SQLite) have separate 32- and 64-bit builds. Other than that, it's business as usual.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, one more thing: the C: drive is now more protected than it used to be. You can't freely write to Program Files and user permissions are more closely observed. If your application needs administrative rights, you will either need to ensure that it asks for them on startup or disable UAC on your machine for testing, depending on what target platforms you support. I also tend to keep my files and code off of C: just to further avoid potential permission issues.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-22T14:06:24.037" CommentCount="1" />
  <row Id="29118" PostTypeId="1" CreationDate="2010-12-22T14:08:43.723" Score="9" ViewCount="444" Body="&lt;p&gt;I am embarrassed to admit that, despite working on the same technology for over 3 years, I can't really answer most of the questions asked on Stack Overflow for the same. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I know so far is gained out of working on different projects within this period, and I haven't taken any formal training/course on the specific technology. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What can I do to sharpen my skills and improve my rank in the developer fraternity?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition to the tips on improving, what can I do to verify that I am making good progress? SO reputation is good, but can't be used as a benchmark... can it?&lt;/p&gt;&#xA;" OwnerUserId="11291" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-23T14:54:53.830" LastActivityDate="2010-12-23T14:54:53.830" ClosedDate="2010-12-22T14:35:52.387" Title="I can't answer very many questions on Stack Overflow. How can I improve?" Tags="&lt;experience&gt;&lt;skills&gt;&lt;tips&gt;&lt;stackoverflow&gt;" AnswerCount="5" CommentCount="10" />
  <row Id="29119" PostTypeId="2" ParentId="29113" CreationDate="2010-12-22T14:09:51.537" Score="1" ViewCount="" Body="&lt;p&gt;My primary problem has been in upgrading to 64-bit Windows that it does not support the old Windows API's anymore, making some of our legacy software break.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The XP Mode available for download is nice, but does not run Java programs well on multi-monitor computers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Except for that, Windows 7 has been a very pleasant experience.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-22T14:09:51.537" />
  <row Id="29120" PostTypeId="2" ParentId="29113" CreationDate="2010-12-22T14:10:13.460" Score="5" ViewCount="" Body="&lt;p&gt;I've been using Windows 7 since the beta - about two years, I guess. There are two separate issues here - will the apps you like to use still work for you, and will the apps you're writing work? For the first, by now the answer is generally yes, if you're on the latest version. For example, Visual Studio 2010 is UAC-aware and well-integrated with the Windows 7 taskbar. Visual Studio 2008, not so much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the apps you're writing, the stackoverflow Windows-7 and UAC tags are going to be your friend. Lots of people have been through this and there are lots of great answers waiting to be read.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-12-22T14:10:13.460" CommentCount="2" />
  <row Id="29121" PostTypeId="1" AcceptedAnswerId="29126" CreationDate="2010-12-22T14:11:01.777" Score="4" ViewCount="115" Body="&lt;p&gt;I've developed some software within my company and we have agreed that the future of the work is to open source it into the public domain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there an official contact procedure to contact the Apache Software Foundation, apache.org, to propose a new project?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looking at apache.org I've not been able to find a contact email or enquiry form, so I've resorted to searching lists of people involved in Apache projects and by chance some of them have blogs which may have a contact facility. Seems a bit haphazard way to make an important proposal about a new project, to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm considering Apache as an Open Source Software (OSS) organisation first because &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the project is based on existing Apache libraries and is therefore a practical business problem demonstration applying those libraries, existing on the same open source platform is mutually beneficial - for example library updates may be easier, the project may be easier to find as a related project&lt;/li&gt;&#xA;&lt;li&gt;Apache Software License appears to be the most suitable license to use, given that the libraries that the project uses use the same and that ASL seems to be more flexible and pragmatic than GPL and possibly attracts more developers including those with commercial motivation&lt;/li&gt;&#xA;&lt;li&gt;Java-based: the project is Java based and Apache is a large, possibly even the largest, independent non-profit open source supporter of Java.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I would consider other platforms too and if so would want to know how to contact them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Background Reading&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been researching how to Open Source, some notable references so far: (but so far not seen how to contact an OSS organisation once you are nearly ready to publish)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://oreilly.com/catalog/9780596517960/toc.html?CMP=ILC-search_spot1&amp;amp;ATT=intel-property-book&quot; rel=&quot;nofollow&quot;&gt;http://oreilly.com/catalog/9780596517960/toc.html?CMP=ILC-search_spot1&amp;amp;ATT=intel-property-book&lt;/a&gt;  - book describes all the major OSS licenses and industry stories&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://producingoss.com/&quot; rel=&quot;nofollow&quot;&gt;http://producingoss.com/&lt;/a&gt; - general advice&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/3813613/looking-for-case-studies-of-managing-open-sourcing-code-from-a-company&quot;&gt;http://stackoverflow.com/questions/3813613/looking-for-case-studies-of-managing-open-sourcing-code-from-a-company&lt;/a&gt;  - my post about how others did it&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/1914104/how-to-license-code-source-but-keep-control-of-it/1914145#1914145&quot;&gt;http://stackoverflow.com/questions/1914104/how-to-license-code-source-but-keep-control-of-it/1914145#1914145&lt;/a&gt;  - I got the accepted answer here&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9267" LastActivityDate="2010-12-22T14:45:51.413" Title="How to contact an open-source organisation (e.g. Apache) about a new project?" Tags="&lt;open-source&gt;&lt;organization&gt;&lt;how-to&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="29122" PostTypeId="2" ParentId="29118" CreationDate="2010-12-22T14:13:05.170" Score="11" ViewCount="" Body="&lt;p&gt;Read the answers given, and learn from them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then consider how you can improve your hands-on experience with your new knowledge, and then deliberate practice until you know it better.  Using it in shipping code is the best approach to learn it well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Repeat as necessary.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-22T14:13:05.170" CommentCount="6" />
  <row Id="29123" PostTypeId="2" ParentId="29113" CreationDate="2010-12-22T14:13:28.740" Score="0" ViewCount="" Body="&lt;p&gt;Main issue we've encountered is that you can't run visual studio 2003.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means a couple of our old legacy apps get debugged on an old XP machine. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There may be ways around this, like using an xp virtual machine, or windows 7 xp mode, but we've yet to need it enough to spend time sorting it out.&lt;/p&gt;&#xA;" OwnerUserId="8993" LastActivityDate="2010-12-22T14:13:28.740" />
  <row Id="29124" PostTypeId="2" ParentId="29118" CreationDate="2010-12-22T14:14:04.830" Score="1" ViewCount="" Body="&lt;p&gt;There are many great resources on-line for people who want to start working with open technologies like the web, or start programming using C/C++, Java, PHP or what have you. If you don't have the opportunity to learn by doing in your workplace, then I highly recommend setting out to do small personal projects in different disciplines during your spare time. It's both fun and educational!&lt;/p&gt;&#xA;" OwnerUserId="3336" LastActivityDate="2010-12-22T14:14:04.830" />
  <row Id="29125" PostTypeId="2" ParentId="28995" CreationDate="2010-12-22T14:14:52.890" Score="2" ViewCount="" Body="&lt;p&gt;First of all you need a &lt;em&gt;mentor&lt;/em&gt; in order to ensure that there is more experienced persons than yourself on the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then a combination of the two under close guidance by the mentor will probably be the best way to learn how new code is written and old code is maintained.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no better eyeopener than maintaining your own code, so you need some of that rather quickly.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-22T14:14:52.890" />
  <row Id="29126" PostTypeId="2" ParentId="29121" CreationDate="2010-12-22T14:16:24.543" Score="7" ViewCount="" Body="&lt;p&gt;From &lt;a href=&quot;http://incubator.apache.org/&quot; rel=&quot;nofollow&quot;&gt;http://incubator.apache.org/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The Incubator project is the entry path&#xA;  into The Apache Software Foundation&#xA;  (ASF) for projects and codebases&#xA;  wishing to become part of the&#xA;  Foundation's efforts. All code&#xA;  donations from external organisations&#xA;  and existing external projects wishing&#xA;  to join Apache enter through the&#xA;  Incubator.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Java projects usually end up under the Jakarta umbrella.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-22T14:16:24.543" CommentCount="2" />
  <row Id="29127" PostTypeId="2" ParentId="29118" CreationDate="2010-12-22T14:17:10.937" Score="4" ViewCount="" Body="&lt;p&gt;This really is a &lt;a href=&quot;http://meta.stackoverflow.com/&quot;&gt;meta.stackoverflow&lt;/a&gt; question, but regardless....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the better things you can do is actually just READ stackoverflow.  There are a lot of informative questions/answers here that will teach you new things.  I spend more of my time reading than I do posting answers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you do know an answer, don't be afraid to give it a go though. Type up a descriptive answer and click &quot;Post Your Answer&quot;; don't worry about being the first to reply - worry about posting the best answer you can.&lt;/p&gt;&#xA;" OwnerUserId="7048" LastEditorUserId="7048" LastEditorDisplayName="" LastEditDate="2010-12-22T22:10:32.740" LastActivityDate="2010-12-22T22:10:32.740" CommentCount="8" />
  <row Id="29128" PostTypeId="2" ParentId="8684" CreationDate="2010-12-22T14:19:24.103" Score="1" ViewCount="" Body="&lt;p&gt;Dublin, Ireland. Several major software companies have their European headquarters located here, including:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Microsoft&lt;/li&gt;&#xA;&lt;li&gt;Google&lt;/li&gt;&#xA;&lt;li&gt;Facebook&lt;/li&gt;&#xA;&lt;li&gt;eBay&lt;/li&gt;&#xA;&lt;li&gt;Amazon&lt;/li&gt;&#xA;&lt;li&gt;PayPal&lt;/li&gt;&#xA;&lt;li&gt;Yahoo!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2448" LastActivityDate="2010-12-22T14:19:24.103" CommunityOwnedDate="2010-12-22T14:19:24.103" />
  <row Id="29129" PostTypeId="2" ParentId="29118" CreationDate="2010-12-22T14:21:04.537" Score="1" ViewCount="" Body="&lt;p&gt;Keep writing code. We can learn from just reading, but even as good as SO is you need to write code not just read about it.&lt;/p&gt;&#xA;" OwnerUserId="11043" LastActivityDate="2010-12-22T14:21:04.537" CommentCount="1" />
  <row Id="29130" PostTypeId="2" ParentId="29118" CreationDate="2010-12-22T14:32:52.547" Score="5" ViewCount="" Body="&lt;h2&gt;Ask questions first&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;When i first started learning JavaScript I would do nothing but ask questions.  And when I'd see a question I might be able to answer someone else would rock out an answer before I could even think about the question!  If you are having trouble answering questions, you don't know your tools good enough yet (or your just not a fast typer =P).&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Tags&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;It's all about providing yourself with an easy means of filtering through the questions you have no business answering.  My &quot;Interesting&quot; tags are the ones I am the strongest in, while ignored tags filter out common questions for languages I dont know.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Well formatted answers&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Note my tag-lines and well organized answer.  It really helps to have grammatically (ironically i misspelled this haha) answers that area nice and easy to read.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Speed&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The faster you get your answer in, the more likely you are to get upvotes/accepts.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;The Holy Grail&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Become a better programmer.  This is the most broad statement I can think of when it comes to answering Q's on SO.  But it's true... the more you know, the more you can answer and the faster you can answer.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;(edit)&lt;/strong&gt; *note line break and emboldened edit - makes it easy to read =P&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://jsfiddle.net/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;jsfiddle&lt;/strong&gt;&lt;/a&gt; is indispensable for me testing javascript code.  You can even spoof ajax requests!  But other than that try I can't help much (I develop in JavaScript).&lt;/p&gt;&#xA;" OwnerUserId="10057" LastEditorUserId="10057" LastEditorDisplayName="" LastEditDate="2010-12-22T14:38:30.437" LastActivityDate="2010-12-22T14:38:30.437" CommentCount="1" />
  <row Id="29131" PostTypeId="2" ParentId="28667" CreationDate="2010-12-22T14:33:30.533" Score="1" ViewCount="" Body="&lt;p&gt;I think there are evil things in programming, but I don't use the term pejoratively.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Evil is when code pretends to behave in one way, but in reality behaves in a very different fashion, and in a way that hurts a unenlightened rational programmer.  I often refer to this as a type of &quot;&lt;a href=&quot;http://ftp.sunet.se/jargon/html/magic-story.html&quot; rel=&quot;nofollow&quot;&gt;Magic&lt;/a&gt;.&quot;  Magic is anything who's functionality is &quot;hidden&quot; from the programmer, and it comes in different styles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example: in Scheme the functions &quot;car&quot; and &quot;cdr&quot; could be implemented using functions only, however, they are not.  Instead they are implemented at a lower level imperatively because that runs faster on most computers.  I'd call this &quot;white magic.&quot;  Its not evil, but its definitely magic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By comparison the unique number NAN in Javascript is not equal to any other number... even itself.  This is &quot;black magic.&quot; I don't want to get into a discussion of why you have NAN in Javascript (or why you have both Infinity and NaN), but you can see why a such a simple concept would be useful to a language with only floating point numbers.  However, having a constant number which cannot be tested for in the same way as other constant numbers is not something one would expect.  Fortunately Javascript provides isNAN to help solve this issue, but if you are unaware of NaN's unique property you might write the following code and get burned:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(x == NaN) &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or if you're clever you might try the following with the same results&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(x === NaN)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I joking refer to this as getting &quot;mana burned&quot; (it is magic afterall...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realize there are good reasons why you want things which are not numbers to be automatically equal to themselves, but you have to remember that for IEEE floating point numbers NaN has a specific bit sequence and it is similar to other numbers in this respect.  If you treat Javascript NaN the way you might treat an IEEE floating point NaN you are liable to get burned.  This is both deceptive and frustrating, the former being the reason I refer to this as &lt;strong&gt;Evil&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then again, its possible people think otherwise...&lt;/p&gt;&#xA;" OwnerUserId="539" LastActivityDate="2010-12-22T14:33:30.533" CommunityOwnedDate="2010-12-22T14:33:30.533" CommentCount="1" />
  <row Id="29132" PostTypeId="1" AcceptedAnswerId="29142" CreationDate="2010-12-22T14:37:29.470" Score="1" ViewCount="242" Body="&lt;p&gt;I have to do an economic viability analysis for an iPhone app and I do not know if you could help me in some questions like &lt;a href=&quot;http://itunes.apple.com/us/app/spend-free-personal-budgeting/id287502168?mt=8&quot; rel=&quot;nofollow&quot;&gt;link text&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How can I estimating an iPhone application development costs?&lt;/li&gt;&#xA;&lt;li&gt;Cost per hour of a programmer?&lt;/li&gt;&#xA;&lt;li&gt;Time that 1 programmer takes in doing an app similar to “Spend Free - Personal Budgeting” link text supposing that it has experience in Java but is rookie in the world of development of aplicaiones for iPhone (neither Objective-C nor Cocoa Touch knows …)&lt;/li&gt;&#xA;&lt;li&gt;Time in integration testing?&lt;/li&gt;&#xA;&lt;li&gt;Return on investment (ROI)?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Where can I find information?&lt;/p&gt;&#xA;" OwnerUserId="11335" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-12-24T03:37:32.597" LastActivityDate="2010-12-24T03:37:32.597" Title="economic viability analysis for an iPhone app" Tags="&lt;iphone&gt;&lt;analysis&gt;" AnswerCount="4" CommentCount="4" FavoriteCount="1" />
  <row Id="29133" PostTypeId="2" ParentId="8684" CreationDate="2010-12-22T14:42:08.220" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;User Groups&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm from Chicago (I'm not there right now currently), but I went to a lot of user groups, meetups, and networking events in and around the city.  Very often during or after the event, individuals would say their companies was hiring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some examples of Chicago user groups I attended:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://chicagoalt.net/Home&quot; rel=&quot;nofollow&quot;&gt;Chicago Alt.net&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://chicagoruby.org/&quot; rel=&quot;nofollow&quot;&gt;Chicago Ruby&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://chicagoandroid.com/&quot; rel=&quot;nofollow&quot;&gt;Chicago Android&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So besides getting a little educated on a topic you may be interested in, you can do some networking and find a job at a very cool company.  Another good resource would be &lt;a href=&quot;http://meetup.com/&quot; rel=&quot;nofollow&quot;&gt;Meetup.com&lt;/a&gt;.  Just search by city and technology of interest to find something you like, and go.  Generally they should be free or very cheap to get into.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, just &lt;em&gt;pick any city&lt;/em&gt; and &lt;em&gt;find&lt;/em&gt; the local user groups and meetups, and &lt;em&gt;attend&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="14" LastEditorUserId="14" LastEditorDisplayName="" LastEditDate="2010-12-22T15:37:34.637" LastActivityDate="2010-12-22T15:37:34.637" CommunityOwnedDate="2010-12-22T14:42:08.220" />
  <row Id="29134" PostTypeId="2" ParentId="21082" CreationDate="2010-12-22T14:44:22.680" Score="1" ViewCount="" Body="&lt;p&gt;I once did an in vector registers bubble sort in CRAY assembler. The machine&#xA;had a double shift instruction, which allowed you to shift the contents of a&#xA;vector register up/down by one word. Put the every other point in two vector registers, then you could do a full bubble sort without ever having to make another memory reference until you are done. Except for the N**2 nature of bubble sort it was efficient.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also once needed to do a floating point sort of a length 4 vector as fast as possible for a single sort. Did it by table lookup (the sign bit of A2-A1 is one bit, sign of A3-A1 forms another bit ..., then you look up the permutation vector in a table. It was actually the fastest solution I could come up with. Doesn't work well on modern architectures though, the floating and integer units are too separated.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-12-22T14:44:22.680" CommentCount="2" />
  <row Id="29135" PostTypeId="2" ParentId="29121" CreationDate="2010-12-22T14:45:51.413" Score="1" ViewCount="" Body="&lt;p&gt;You don't need the ASF unless your software competes against expensive, profitable, and  proprietary software. Then the ASF will help you ensure that you and your organization will be able to fight copyright and patent lawsuits resulting from open-sourcing your software. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;First you have to figure out intellectual property ownership. For copyright ownership, you &amp;amp; your company can choose between either you, your company, you and your company, or the public domain that owns the copyright. You need to figure out patents. You need to know if your software has any novel ideas that you have patented. You also need to know if your software implements ideas from other patents. You also need to know if there are any novel but unpatented ideas in your software. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, you have to figure out a license. With public domain, no license is needed, except in jurisdictions which don't recognize public domain. Don't put it in the public domain if there are existing patents that you are unwilling to license for free, or if others have patents against your software.  If your software implements specific patents that you either don't want to release or you don't own, then release your code  under BSD, MIT, or GPLv2. If your software has specific patents which you also own and are willing to license for free to people who take, use, or distribute your software, then use Apache 2.0 or GPLv3. If you want to make your software free for businesses to embed without them giving up their linked proprietary code, then use Apache 2.0, BSD or MIT. If you want the software and its derivatives to always be free to be studied and improved by everybody, use GPLv2 or GPLv3. There are other licenses too, but this covers the common cases. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thirdly, you have to release your code. I recommend releasing it on github.com. You could also use sourceforge.net, freshmeat.net, and other such places. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fourthly, you have to build a developer and user community around the code. It needs to get to the point where there are people who are willing to take your code and run with it and without you. The first step is to build a community is to get many people to contribute to the code base, and make sure that each of their names is on the list of copyright owners. That way it will become impossible for a single entity to &quot;take the code proprietary&quot;. (It has happened). The second step to building a community is that your code then needs a wiki for users. It may also need a professional support organization so that people can pay for professional support and integration of your application into their systems. &lt;/p&gt;&#xA;" OwnerUserId="10347" LastActivityDate="2010-12-22T14:45:51.413" CommentCount="9" />
  <row Id="29136" PostTypeId="2" ParentId="29109" CreationDate="2010-12-22T14:47:03.900" Score="117" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;When I'm going to performance, the first and last choice is C.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And that’s where you should back up. Now, I cannot, &lt;em&gt;at all&lt;/em&gt;, speak for server development. Perhaps there is indeed no compelling reason to prefer C++ over the alternatives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But generally speaking, the reason to use C++ rather than other languages is indeed performance. The reason for that is that C++ offers a means of abstraction that has, unlike &lt;em&gt;all&lt;/em&gt; other languages that I know, &lt;em&gt;no&lt;/em&gt; performance overhead at runtime.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This allows writing very efficient code that &lt;em&gt;still&lt;/em&gt; has a very high abstraction level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider the usual abstractions: virtual functions, function pointers, and the PIMPL idiom. All of these rely on indirection that is at runtime resolved by pointer arithmetic. In other words, it incurs a performance cost (however small that may be).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++, on the other hand, offers an indirection mechanism that incurs &lt;em&gt;no&lt;/em&gt; (performance) cost: templates. (This advantage is paid for with a (sometimes hugely) increased compile time.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider the example of a generic sort function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In C, the function &lt;code&gt;qsort&lt;/code&gt; takes a function pointer that implements the logic by which elements are ordered relative to one another. Java’s &lt;code&gt;Arrays.sort&lt;/code&gt; function comes in several variants; one of them sorts arbitrary objects and requires a &lt;code&gt;Comparator&lt;/code&gt; object be passed to it that works much like the function pointer in C’s &lt;code&gt;qsort&lt;/code&gt;. But there are several more overloads for the “native” Java types. And each of them has an own copy of the &lt;code&gt;sort&lt;/code&gt; method – a horrible code duplication.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java illustrates a general dichotomy here: &lt;strong&gt;either you have code duplication or you incur a runtime overhead.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In C++, the &lt;code&gt;sort&lt;/code&gt; function works much like &lt;code&gt;qsort&lt;/code&gt; in C, with one small but fundamental difference: the comparator that is passed into the function is a &lt;em&gt;template&lt;/em&gt; parameter. That means that its call can be &lt;em&gt;inlined&lt;/em&gt;. No indirection is necessary to compare two objects. In a tight loop (as is the case here) this can actually make a substantial difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not surprisingly, the C++ &lt;code&gt;sort&lt;/code&gt; function outperforms C’s &lt;code&gt;sort&lt;/code&gt; even if the underlying algorithm is the same. This is especially noticeable when the actual comparison logic is cheap.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I am &lt;em&gt;not&lt;/em&gt; saying that C++ is a priori more efficient than C (or other languages), nor that it a priori offers a higher abstraction. What it does offer is an abstraction that is very high and incredibly cheap at the same time so that you often don’t need to choose between efficient and reusable code.&lt;/p&gt;&#xA;" OwnerUserId="2366" LastEditorUserId="2366" LastEditorDisplayName="" LastEditDate="2010-12-23T11:12:59.737" LastActivityDate="2010-12-23T11:12:59.737" CommentCount="31" />
  <row Id="29137" PostTypeId="1" AcceptedAnswerId="29141" CreationDate="2010-12-22T14:49:50.633" Score="5" ViewCount="161" Body="&lt;p&gt;I'm primarily an ASP.NET developer and the single thing i've been introduced to in recent years that has had the most dramatic impact on the quality of the code I write has learning how to use IoC containers to manage dependencies between different layers of the application efficiently. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've recently made it my hobby to learn Ruby (and Rails) for personal projects, and I love the language so far. However, one of the things i've noticed from the various tutorials and references i've been using, has been that there has been no mention yet of using IoC. This is in stark contrast to .NET where it is (and where it isn't, should be) drummed into developers at an early stage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I appreciate that one reason why dependency injection may not be necessary in Ruby, is that everything in a class is public and virtual so open to modification so it's not really needed in order to write good unit tests. But there are of course many other benefits to using IoC containers such as the decoupling options this brings, managing object creation and lifetime etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is dependency injection used in Ruby? If not, why is this not an issue?&lt;/p&gt;&#xA;" OwnerUserId="562" LastActivityDate="2010-12-22T15:16:12.133" Title="Do Ruby (and other dynamic language) programmers use IoC / Dependency Injection?" Tags="&lt;design-patterns&gt;&lt;ruby&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="29138" PostTypeId="2" ParentId="29075" CreationDate="2010-12-22T14:51:06.437" Score="2" ViewCount="" Body="&lt;p&gt;What is it with people asking &quot;why can Unix do &lt;code&gt;\n&lt;/code&gt; and not Windows&quot;? It's such a strange question.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The OS has almost nothing to do with it. It's more a matter of how apps, libraries, protocols and file formats deal with things. Other than where the OS reads/writes text-based configuration or command line commands, it makes no sense to fault the OS.&lt;/li&gt;&#xA;&lt;li&gt;Most Windows apps &lt;em&gt;can&lt;/em&gt; read both &lt;code&gt;\n&lt;/code&gt; and &lt;code&gt;\r\n&lt;/code&gt; just fine. They also output &lt;code&gt;\r\n&lt;/code&gt; so that everyone's happy. A program doesn't simply &quot;do&quot; either &lt;code&gt;\n&lt;/code&gt; or &lt;code&gt;\r\n&lt;/code&gt; --  it &lt;em&gt;accepts&lt;/em&gt; one, the other, or both, and &lt;em&gt;outputs&lt;/em&gt; one, the other, or both.&lt;/li&gt;&#xA;&lt;li&gt;As a programmer this should really almost &lt;em&gt;never&lt;/em&gt; bother you. Practically every language/platform has facilities to write the correct end-line and read most robustly. The only time I've had to deal with the problem was when I wrote an &lt;a href=&quot;http://www.codeproject.com/KB/IP/minihttpd.aspx&quot; rel=&quot;nofollow&quot;&gt;HTTP server&lt;/a&gt; -- and it was because a certain browser (hint: the next most popular browser after IE) was doing &lt;code&gt;\n&lt;/code&gt; instead of &lt;a href=&quot;http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.1&quot; rel=&quot;nofollow&quot;&gt;the correct&lt;/a&gt; &lt;code&gt;\r\n&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;A much more pertinent question is, why do so many modern Unix apps output only &lt;code&gt;\n&lt;/code&gt; fully knowing that there are some protocols and programs that don't like it?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6385" LastEditorUserId="6385" LastEditorDisplayName="" LastEditDate="2010-12-22T14:58:33.327" LastActivityDate="2010-12-22T14:58:33.327" CommentCount="1" />
  <row Id="29139" PostTypeId="2" ParentId="29058" CreationDate="2010-12-22T14:59:17.627" Score="0" ViewCount="" Body="&lt;p&gt;Don't you have team meetings?  Daily scrums or weekly status get-togethers or anything?  This is the kind of thing I'd expect to be raised in these meetings.  It doesn't sound like the changes are so significant that they require fair warning, but they're presumably important enough to warrant changes to the API, so people should definitely be informed.  Does your team use a wiki?  If so, then maybe create a page that lists database changes and the date they were made.  Alternately, if you're using a bug reporting system, you could create a &quot;change&quot; or &quot;improvement&quot;-class issue and describe the change there.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-22T14:59:17.627" />
  <row Id="29140" PostTypeId="2" ParentId="29109" CreationDate="2010-12-22T14:59:56.370" Score="16" ViewCount="" Body="&lt;p&gt;C++ is about as fast as C (some things are faster, some slower), and it offers better abstractions and organization.  Classes work similarly to primitive types, allowing large amounts of code to be used without being held in mind.  Operator overloading and templates make it possible to write code that functions better if data representations change.  Exceptions can allow easier error-handling.  The compiler can be used to check more stuff at compile-time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The price you pay for this is a fairly nasty learning curve, and it's easier to make subtle mistakes in it than most other languages I'm familiar with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I can't tell whether it would be worthwhile for you to learn it for what you're doing now.  You can certainly get by with combinations of Python or Perl and C, but C++ offers both abstraction and performance in one hard-to-get-used-to package.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-22T14:59:56.370" />
  <row Id="29141" PostTypeId="2" ParentId="29137" CreationDate="2010-12-22T15:01:11.040" Score="6" ViewCount="" Body="&lt;p&gt;Inversion of Control is still a concept that applies well. You don't need to be doing dependency injection to apply IoC, although in .NET they do tend to go together often.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The big drive behind dependency injection in .NET is avoiding depending on concrete implementations. In Ruby, as you mentioned, things are much more open and you can replace implementation of a class at run time, so there's much less need to create &quot;interfaces&quot; and explicitly inject dependencies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can be argued that interfaces and IoC/DI aren't strictly necessary in .NET either (even when it comes to testing -- there are mocking frameworks that will allow you to eliminate the need to interface everything under the sun), but it's more pronounced in Ruby.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-22T15:01:11.040" />
  <row Id="29142" PostTypeId="2" ParentId="29132" CreationDate="2010-12-22T15:01:34.833" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://felttip.tumblr.com/post/2350294498/so-you-want-to-hire-an-ios-developer&quot; rel=&quot;nofollow&quot;&gt;http://felttip.tumblr.com/post/2350294498/so-you-want-to-hire-an-ios-developer&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is a pretty good post on the costs / timescales for developing an iPhone app.  The TL;DR version:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;An iPhone developer costs $200 - $1000 an hour - obviously cheaper developers will take longer so it'll even out and you'll likely end up with something worse.  (This seems high but it tallies with other figures I've seen)&lt;/li&gt;&#xA;&lt;li&gt;All in a good developer would likely need about 2 months elapsed time to get a good app to a shippable state&lt;/li&gt;&#xA;&lt;li&gt;The likely cost is therefore about $100,000 to $150,000.  The absolute minimum he thinks is feasible is around $30,000.  (He assumes only half the time he might spend is chargeable if you're questioning the calculations).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There was another really good article on the over revenue which I can't find now but essentially it boiled down to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;There are plenty of stories of people spending a few hours on an app and making thousands but again, these aren't typical.&lt;/li&gt;&#xA;&lt;li&gt;The majorly profitable apps make the headlines but they are not the norm.&lt;/li&gt;&#xA;&lt;li&gt;The average application does not even come close to covering it's costs at commercial rates (see above) therefore the ROI is negative.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I can't remember the precise figure but the number of apps which are profitable at commercial rates (that is paying for the development rather than doing it as a hobby) was less than 20%.  I'll try and dig it out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's another interest piece (actually a reddit Q&amp;amp;A) from a guy who has developed for both iPhone and Android:  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.reddit.com/r/IAmA/comments/caq8f/iama_developer_who_sells_the_same_app_both_in_the/&quot; rel=&quot;nofollow&quot;&gt;http://www.reddit.com/r/IAmA/comments/caq8f/iama_developer_who_sells_the_same_app_both_in_the/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S.  Spend is a cracking application.  I use it all the time - the paid version (59p - woo).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-22T15:07:21.690" LastActivityDate="2010-12-22T15:07:21.690" CommentCount="2" />
  <row Id="29143" PostTypeId="2" ParentId="29057" CreationDate="2010-12-22T15:08:55.510" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.kilmann.com/conflict.html&quot; rel=&quot;nofollow&quot;&gt;Thomas-Kilmann Conflict Mode Instrument&lt;/a&gt; lists 5 different methods for resolving conflict for those wanting some ideas on how one could resolve things:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Competing&lt;/em&gt;&lt;/strong&gt; is assertive and uncooperative—an individual pursues&#xA;  his own concerns at the other person's&#xA;  expense. This is a power-oriented mode&#xA;  in which you use whatever power seems&#xA;  appropriate to win your own&#xA;  position—your ability to argue, your&#xA;  rank, or economic sanctions. Competing&#xA;  means &quot;standing up for your rights,&quot;&#xA;  defending a position which you believe&#xA;  is correct, or simply trying to win.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Accommodating&lt;/em&gt;&lt;/strong&gt; is unassertive and cooperative—the&#xA;  complete opposite of competing. When&#xA;  accommodating, the individual neglects&#xA;  his own concerns to satisfy the&#xA;  concerns of the other person; there is&#xA;  an element of self-sacrifice in this&#xA;  mode. Accommodating might take the&#xA;  form of selfless generosity or&#xA;  charity, obeying another person's&#xA;  order when you would prefer not to, or&#xA;  yielding to another's point of view.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Avoiding&lt;/em&gt;&lt;/strong&gt; is unassertive and uncooperative—the person neither&#xA;  pursues his own concerns nor those of&#xA;  the other individual. Thus he does not&#xA;  deal with the conflict. Avoiding might&#xA;  take the form of diplomatically&#xA;  sidestepping an issue, postponing an&#xA;  issue until a better time, or simply&#xA;  withdrawing from a threatening&#xA;  situation.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Collaborating&lt;/em&gt;&lt;/strong&gt; is both assertive and cooperative—the complete&#xA;  opposite of avoiding. Collaborating&#xA;  involves an attempt to work with&#xA;  others to find some solution that&#xA;  fully satisfies their concerns. It&#xA;  means digging into an issue to&#xA;  pinpoint the underlying needs and&#xA;  wants of the two individuals.&#xA;  Collaborating between two persons&#xA;  might take the form of exploring a&#xA;  disagreement to learn from each&#xA;  other's insights or trying to find a&#xA;  creative solution to an interpersonal&#xA;  problem.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Compromising&lt;/em&gt;&lt;/strong&gt; is moderate in both assertiveness and&#xA;  cooperativeness. The objective is to&#xA;  find some expedient, mutually&#xA;  acceptable solution that partially&#xA;  satisfies both parties. It falls&#xA;  intermediate between competing and&#xA;  accommodating. Compromising gives up&#xA;  more than competing but less than&#xA;  accommodating. Likewise, it addresses&#xA;  an issue more directly than avoiding,&#xA;  but does not explore it in as much&#xA;  depth as collaborating. In some&#xA;  situations, compromising might mean&#xA;  splitting the difference between the&#xA;  two positions, exchanging concessions,&#xA;  or seeking a quick middle-ground&#xA;  solution.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Another point is whether or not there are policies or procedures for some disputes as there can be rather legitimate cases where some people may disagree over something that requires someone to step in and adjudicate.  Testers and developers over an ambiguous requirement or developers that may have different views on coding conventions like how many spaces should a tab represent or should brace brackets go on their own line or be in the same line as an if or else to give a couple of easy examples.  In other cases it may just be worthwhile to be the bigger person and not take the bait in the case of trivial disputes like a which is the better condiment of ketchup or mustard that really isn't likely to have an earth shattering resolution.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-22T15:08:55.510" CommentCount="1" />
  <row Id="29144" PostTypeId="1" CreationDate="2010-12-22T15:16:08.890" Score="6" ViewCount="211" Body="&lt;p&gt;So, I've been out of school for about three years and have been steadily trying to find my niche in the technical world. I first was all about Java, mostly because that was the language I learned at my first job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then the iPhone SDK came out and I had to try my hand at creating a mobile app. I've actually never released anything, because I would get to a point of saying this app isn't going to work. I actually did learn a good bit about software development on these projects though. More about why they failed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I'm going back to grad school and getting into computer graphics/game design/game development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also, have an interest in really improving my software development skills through reading extra books and just building stuff. I can also focus on software engineering in grad school if I choose. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I think about my goals in my career they are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Become a software developer for a company I respect and would love to build products for( Apple, Google, Facebook etc...)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Become an indie software developer and build my own apps. These apps could range from utility apps to games. I've also have taken some HCI classes that would help with this.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Learn as much as I can about computer graphics. Maybe even do research in CG in grad school( thinking of doing research in real-time ray-tracing) and try to have a career in CG. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;As you can see, I'm all over the place. I don't think I'm barely at the intermediate level in terms of the technologies I've used( Java, Cocoa, Objective-C, C/C++) because I move on to new things to fast. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know I need to focus on one area so that I can improve that area, but I feel like a kid in a candy store and I don't know which candy I want to eat first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone else had this problem before?&lt;/p&gt;&#xA;" OwnerUserId="10090" LastEditorUserId="10090" LastEditorDisplayName="" LastEditDate="2010-12-22T15:23:35.000" LastActivityDate="2010-12-22T16:55:32.703" ClosedDate="2010-12-23T12:18:02.617" Title="programming ADD" Tags="&lt;career&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="1" />
  <row Id="29145" PostTypeId="2" ParentId="29137" CreationDate="2010-12-22T15:16:12.133" Score="3" ViewCount="" Body="&lt;p&gt;Dependency Injection is less important in dynamic languages because they &lt;em&gt;are&lt;/em&gt; dynamic- you can change your code whenever you want so you don't have to plan ahead for potentially changing dependencies. There are easier ways to achieve IoC in a language like Ruby.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://fabiokung.com/2010/05/06/ruby-and-dependency-injection-in-a-dynamic-world/&quot; rel=&quot;nofollow&quot;&gt;Fabio Kung on this topic&lt;/a&gt; which refers to &lt;a href=&quot;http://weblog.jamisbuck.org/2008/11/9/legos-play-doh-and-programming&quot; rel=&quot;nofollow&quot;&gt;Jamis Buck on the same thing&lt;/a&gt; - those give a bit of depth.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-12-22T15:16:12.133" />
  <row Id="29146" PostTypeId="2" ParentId="29113" CreationDate="2010-12-22T15:17:48.297" Score="0" ViewCount="" Body="&lt;p&gt;Three different places, three flavors of Windows 7. All web development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Computer one was a Core i5 with 4 gigs ram, windows 7 professional. All work development was actually done in a virtual machine running VS2005 which was transfered over to the machine and added under XP mode. With the full screen display and ability to drag and drop across desktops it was actually very difficult to tell when you went from one OS to the other. No issues here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Computer two was a 64bit version dual core machine with 7 professional. Ran on the bare metal with VS2008. Only issue I had in the beginning was running asp.net web applications off of IIS7 when the application was not in the WWWroot folder. This really just needs a little configuration on permissions. Everything else worked like a charm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Last computer, 64bit AMD chip with 3gigs ram, 7 Enterprise. Again VS2008 and again just the issue with IIS7. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second two computers all had a version of source control (SVN or SourceSafe), SQL Express and other utilities. (Downloaded most item with the Microsoft Web Platform Installer).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;64bit/multi-core cpu's and lots of ram make a huge difference in feel. I down grade the UAC security of 7 so that it doesn't bug me about everything and the user has to be the admin of the machine (really no different from other OS's).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck and hope this helps you some.&lt;/p&gt;&#xA;" OwnerUserId="7428" LastActivityDate="2010-12-22T15:17:48.297" />
  <row Id="29147" PostTypeId="2" ParentId="29049" CreationDate="2010-12-22T15:17:49.607" Score="0" ViewCount="" Body="&lt;p&gt;This may not be the answer you're looking for, but are you sure you are attacking the root cause of your problem? It sounds a bit like you are trying to solve a symptom. I get the feeling there is a much deeper issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest investing half an hour with your team into the &lt;a href=&quot;http://en.wikipedia.org/wiki/5_Whys&quot; rel=&quot;nofollow&quot;&gt;5 Whys&lt;/a&gt; to get closer to the root cause. The results are often revealing and surprising, and allow you to better solve the problem instead of just the symptom. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you know what the real root cause of your issue is, you can look, with the team, at ways to solve it. Nobody is better at tracing the problem and thinking about fixes than the team, as they experience and work with this all the time. It can be hard to find the right solution - try your best and always retrospect to see whether you can do better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(That said, there's obviously nothing wrong with looking for inspiration for solutions outside the team.)&lt;/p&gt;&#xA;" OwnerUserId="2947" LastActivityDate="2010-12-22T15:17:49.607" />
  <row Id="29148" PostTypeId="2" ParentId="28979" CreationDate="2010-12-22T15:20:05.903" Score="0" ViewCount="" Body="&lt;p&gt;I want to suggest something else entirely: Become accustomed to learning from non-book resources. First of all, the three things you have mentioned in your question that you want to learn more about differ substantially. &lt;a href=&quot;http://www.php.net/manual/en/stream.contexts.php&quot; rel=&quot;nofollow&quot;&gt;Stream contexts&lt;/a&gt; are part of the core php API, and can be thought of as a &quot;framework feature&quot;. &lt;a href=&quot;http://php.net/manual/en/functions.anonymous.php&quot; rel=&quot;nofollow&quot;&gt;Closures&lt;/a&gt; are a &quot;language feature&quot; (just another name for anonymous functions, really). Finally, &lt;a href=&quot;http://www.electrictoolbox.com/article/php/process-forking/&quot; rel=&quot;nofollow&quot;&gt;process forking&lt;/a&gt; is more of an &quot;OS feature&quot;, mostly available in *NIX flavor OS'es.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what kind of book (with less than 1000s of pages) would include meaningful insights for these topics? I haven't read &quot;Expert PHP and MySQL&quot; but the name suggests that its focus is on something else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I want to suggest that you start reading the &lt;a href=&quot;http://www.php.net/manual/en/langref.php&quot; rel=&quot;nofollow&quot;&gt;PHP language reference&lt;/a&gt;. It has all the details about all the topics there are. If some general computer science terms are unknown to you, you ask a question on SO or read up on it on wikipedia. If you find a topic in the reference that you don't understand or don't see the point of, you skip it, but make a mental note of the topic's existence so that you can return to it at a later time. The pro's of this approach are that you yourself can choose the focus of your study and do not have to rely on finding a book that covers your immediate interests. Furthermore, online documentation is usually more up-to-date than books, and online docs are also free. Granted, this approach takes a little getting used to and maybe also requires better analytical skills, but in the long run it is a much faster way to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Afterall, in todays market, who has the time to wait for a book to arrive?&lt;/p&gt;&#xA;" OwnerUserId="10152" LastActivityDate="2010-12-22T15:20:05.903" />
  <row Id="29149" PostTypeId="1" CreationDate="2010-12-22T15:21:59.913" Score="6" ViewCount="385" Body="&lt;p&gt;So as both a full-time programmer and hobbyist as well (developing my own things for personal use and maybe to sell one day), I feel that me purchasing a big white board to hang in my room at home or something would be very useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone here have one as well, to use for high level designs (UML, Architecture, etc.) and things like very early UI mockups, etc.?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you guys do have them, which ones have you bought? I can't seem to pin one that would be good for home use and I'm not sure of the pricing/other things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="7753" LastActivityDate="2010-12-23T09:10:19.523" Title="White Boards -- Who Uses Them?" Tags="&lt;design&gt;&lt;whiteboard&gt;" AnswerCount="13" CommentCount="5" FavoriteCount="3" />
  <row Id="29150" PostTypeId="2" ParentId="29144" CreationDate="2010-12-22T15:28:14.500" Score="3" ViewCount="" Body="&lt;p&gt;Yes, I have had this problem and it's important to bounce around like this and try new technologies. However if you want to accomplish anything worthwhile you need to stay focused on a particular toolset for a good length of time. A great way to do this is to start a project and see it through to completion. For example, build an iPhone game and see it through to a point where you can release it on the app store. By doing so you will learn Objective-C, graphics programming, etc. By working on a project you will force yourself to pick up the important stuff as you go along, and you will be able to motivate yourself to see it though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course you can do other things while you are working on your project (such as going to school or having a full time job)...&lt;/p&gt;&#xA;" OwnerUserId="10365" LastActivityDate="2010-12-22T15:28:14.500" />
  <row Id="29151" PostTypeId="2" ParentId="29149" CreationDate="2010-12-22T15:32:32.860" Score="6" ViewCount="" Body="&lt;p&gt;I find they are most useful for discussing technical issues with other people. Sometimes it is better to draw a diagram, make a list, etc than to just talk through a problem. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So... installing one at your home may not be much help if its only going to be you that is working at that location. If that is the case you might consider investing in a few notebooks instead. That way it gives you the same benefits of working things out visually, but you can keep track of old notes. Plus, if you are the only person working there, you don't need to draw up big diagrams where everyone can see them.&lt;/p&gt;&#xA;" OwnerUserId="10365" LastEditorUserId="10365" LastEditorDisplayName="" LastEditDate="2010-12-22T16:32:01.770" LastActivityDate="2010-12-22T16:32:01.770" CommentCount="2" />
  <row Id="29152" PostTypeId="2" ParentId="29149" CreationDate="2010-12-22T15:32:37.010" Score="2" ViewCount="" Body="&lt;p&gt;I don't tend to use a white-board when working alone, but as a communication / collaboration tool when working with others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some use them as Kanban boards, and for other similar tracking purposes as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As such, if I was working in a one-person shop, I would not likely put one up.&lt;/p&gt;&#xA;" OwnerUserId="8668" LastActivityDate="2010-12-22T15:32:37.010" CommentCount="1" />
  <row Id="29153" PostTypeId="2" ParentId="29144" CreationDate="2010-12-22T15:33:01.253" Score="4" ViewCount="" Body="&lt;p&gt;To me, what you describe is not a problem at all. I know the saying &quot;Jack of all trades, master of none&quot;, and while it holds some truth, in my opinion it should be taken lightly in the computer science world. In CS the different trades(technologies) are heavily intertwined, and not being a jack of many trades will definitely make it harder for you to become a master of anything too. So given your (presumably) relatively young age, I would encourage you to keep playing around with different technologies. When you get a paid job you will have more than enough time to dive deeper into a specific technology. But when that time comes, knowing about a wide range of technologies/languages will make it a lot easier for you to see a bigger picture and come up with new ideas.&lt;/p&gt;&#xA;" OwnerUserId="10152" LastActivityDate="2010-12-22T15:33:01.253" />
  <row Id="29154" PostTypeId="2" ParentId="29149" CreationDate="2010-12-22T15:33:35.513" Score="1" ViewCount="" Body="&lt;p&gt;I definitely make use of a whiteboard at home and at work. I don't know brand names specifically but at work we tend to have rather large boards (6 feet wide by about 4 feet tall) and they cost several hundred dollars. At home I have a smaller board (4 x 3 feet) that I picked up at my local office supply store for about $30-$40.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been told you can use a product called &quot;showerboard&quot; from a local hardware store. It comes in large sheets but I'm not sure how good it is with the markers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another option you could use is a piece of glass (ex: in the move &quot;A beautiful mind&quot;). You could paint the glass white on one side. I actually did this on a small scale for a gaming table I built, works very well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for uses ... I use my whiteboard at home as a design station for home/side projects, I write reminders to myself and little notes. The whiteboard at work is used primarily as a design studio. When we gather as a team to go over a project we lay our designs out on the whitebaord and we can easily tweak them without going through alot of trouble. When we're all done we take a picture with a digital camera and save/print it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you had a &quot;smartboard&quot; you could print whatever you wrote on it but smartboards cost a pretty penny more so they're not practical at home and are only generally affordable by companies of a decent size.&lt;/p&gt;&#xA;" OwnerUserId="1274" LastActivityDate="2010-12-22T15:33:35.513" CommentCount="4" />
  <row Id="29155" PostTypeId="2" ParentId="28453" CreationDate="2010-12-22T15:33:47.243" Score="4" ViewCount="" Body="&lt;p&gt;This is a problem, but I'm going to jump on the OP's comment about broadening experience, and assume that the OP is familiar with mainstream-style programming languages already (with C-style syntax and OO).  Also, I'm only going to include languages I've been exposed to (which leaves out the excellent concurrent language suggestions).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Common Lisp is a surprisingly useful language.  The fact that programs are written in parse-tree format allows a great deal of flexibility.  Make sure you learn to use macros, which are nothing like C-style macros.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haskell is good for pure functionality and a strict type system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prolog is a decent language, and a different paradigm.  (Personally, I don't like it, but I certainly didn't waste the time I spent learning it.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Forth is an unusual programming language, fun to play with and instructive in how a language can be built.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are other languages I'd like to list, had I room and experience with them.  Smalltalk and Erlang sound like excellent choices, but I've never done anything with either of them.  Tcl is unusual, although I hated the way it made my brain feel.  Assembler is good for giving a feel as to what a computer is really doing, although I hate x86 for its layered-on complexity and would prefer to use another processor, if only in simulation (the ones I've used were IBM 370, Control Data 6x00 and follow-ons, Z80, Knuth's MIX, 6809, and a little 68000).&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-22T15:33:47.243" CommunityOwnedDate="2011-05-02T19:15:27.120" CommentCount="3" />
  <row Id="29156" PostTypeId="1" CreationDate="2010-12-22T15:35:30.667" Score="1" ViewCount="236" Body="&lt;p&gt;It's been 10 good years since the original &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;Joel Test&lt;/a&gt; was published. In most part of the world (except where I work), software development has seen dramatic changes and paradigm shifts in many aspects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are several nice &lt;a href=&quot;http://programmers.stackexchange.com/questions/tagged/joel-test&quot;&gt;discussions&lt;/a&gt; here, but I feel like the classic deserves a little bit update. Whether Joel the Apostle notices this or not, it would be a fun exercise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to propose an updated list (with 2 new items), with styled text indicating change to the original and some notes. Please add/remove/comment with your answers.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Do you use &lt;strong&gt;distributed&lt;/strong&gt; source control?&lt;/li&gt;&#xA;&lt;li&gt;Can you make a build in one step?&lt;/li&gt;&#xA;&lt;li&gt;Do you &lt;strong&gt;do continuous integration&lt;/strong&gt; &lt;strike&gt;make daily builds&lt;/strike&gt;?&lt;/li&gt;&#xA;&lt;li&gt;Do you have an &lt;strong&gt;integrated&lt;/strong&gt; bug database? (#1)&lt;/li&gt;&#xA;&lt;li&gt;Do you fix &lt;strong&gt;severe&lt;/strong&gt; bugs before writing new code?&lt;/li&gt;&#xA;&lt;li&gt;Do you have an up-to-date schedule &lt;strong&gt;that developers actually use&lt;/strong&gt;? (#2)&lt;/li&gt;&#xA;&lt;li&gt;Do you have a &lt;strong&gt;traceable&lt;/strong&gt; spec? (#3)&lt;/li&gt;&#xA;&lt;li&gt;Do programmers have &lt;strong&gt;nice&lt;/strong&gt; and quiet working conditions? (#4)&lt;/li&gt;&#xA;&lt;li&gt;Do you use the best tools (&lt;em&gt;hardware and software&lt;/em&gt;) money can buy? (#4)&lt;/li&gt;&#xA;&lt;li&gt;Do you have testers?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Do you have short test cycles?&lt;/strong&gt; (#5)&lt;/li&gt;&#xA;&lt;li&gt;Do new candidates &lt;strong&gt;type&lt;/strong&gt; &lt;strike&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2008/11/we-are-typists-first-programmers-second.html&quot; rel=&quot;nofollow&quot;&gt;write&lt;/a&gt;&lt;/strike&gt; code during their interview?&lt;/li&gt;&#xA;&lt;li&gt;Do you do hallway usability testing?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Are your products built on automatable/scriptable platforms?&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Notes:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Bug database should be integrated with the rest of workflow, especially source control.&lt;/li&gt;&#xA;&lt;li&gt;A schedule that's only seen by non-technical project managers is worthless even if it's up-to-minute.&lt;/li&gt;&#xA;&lt;li&gt;Traceability means that you can trace a spec down to schedule, code submission, tests, etc.&lt;/li&gt;&#xA;&lt;li&gt;Re The &lt;a href=&quot;http://www.codinghorror.com/blog/2006/08/the-programmers-bill-of-rights.html&quot; rel=&quot;nofollow&quot;&gt;Programmer's Bill of Rights&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;This would be implied if the answer to &quot;do you do CI&quot; is yes, but you can have short test cycles even without full CI.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2467" LastActivityDate="2010-12-22T15:48:30.563" ClosedDate="2010-12-22T16:21:39.543" Title="The Joel Test, updated" Tags="&lt;best-practices&gt;&lt;joel-test&gt;" AnswerCount="1" CommentCount="13" />
  <row Id="29157" PostTypeId="2" ParentId="29149" CreationDate="2010-12-22T15:35:52.123" Score="2" ViewCount="" Body="&lt;p&gt;I use them for high level quick sketches in the beginning, even if it's only me working on something. Beyond that they tend not to get used.&lt;/p&gt;&#xA;" OwnerUserId="5148" LastActivityDate="2010-12-22T15:35:52.123" />
  <row Id="29158" PostTypeId="2" ParentId="29149" CreationDate="2010-12-22T15:36:08.060" Score="2" ViewCount="" Body="&lt;p&gt;I miss my whiteboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We used to be in a small room with a small 3-4 person team, a whiteboard and a door.  Some of our best designs were created on that whiteboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then they moved us into an open plan area with no privacy, no whiteboard and too much noise.  Surprise, surprise productivity and morale has dropped  :-(&lt;/p&gt;&#xA;" OwnerUserId="7585" LastEditorUserId="7585" LastEditorDisplayName="" LastEditDate="2010-12-23T09:01:40.610" LastActivityDate="2010-12-23T09:01:40.610" CommentCount="1" />
  <row Id="29159" PostTypeId="2" ParentId="27564" CreationDate="2010-12-22T15:36:44.917" Score="-2" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;I would like to see a greater&#xA;adoption of the mysqli interface&#xA;among programmers, and I think that&#xA;making sure that there was an&#xA;equivalent mysqli function for each&#xA;previously established mysql&#xA;function would help.&lt;/li&gt;&#xA;&lt;li&gt;I would like to be able to define&#xA;class constants directly in the&#xA;constructor like:&#xA;&lt;code&gt;__constructor($this-&amp;gt;var=FALSE);&lt;/code&gt; vs &lt;code&gt;__constructor($var=FALSE){if($var!=FALSE){$this-&amp;gt;var=$var;}}&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="11338" LastEditorUserId="11338" LastEditorDisplayName="" LastEditDate="2010-12-22T19:18:23.097" LastActivityDate="2010-12-22T19:18:23.097" CommunityOwnedDate="2010-12-22T15:36:44.917" CommentCount="2" />
  <row Id="29160" PostTypeId="2" ParentId="29144" CreationDate="2010-12-22T15:38:47.503" Score="2" ViewCount="" Body="&lt;p&gt;Instead of changing my programming ADD, throughout the course of my career so far I have fed it.  I have taken jobs which allow me to touch large parts of the code base of my product.  My jobs allow me to span languages, application paradigms, and alternate between development and integration.  Meanwhile I satisfied my thirst for technologies that I could not learn on the job during a part-time master's degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you have so many interests, it is possible that many things that relate to those core interests (which appear to relate to the front end as opposed to the back end) will appeal to you.  Figure out your core set of interests - graphics, web, databases, server-side work, embedded programming, all of the above - and &lt;strong&gt;find a job that lets you touch as many as possible in a year&lt;/strong&gt;.  Take that job.  Love it.&lt;/p&gt;&#xA;" OwnerUserId="7506" LastActivityDate="2010-12-22T15:38:47.503" />
  <row Id="29161" PostTypeId="2" ParentId="21082" CreationDate="2010-12-22T15:40:51.717" Score="2" ViewCount="" Body="&lt;p&gt;For my data structures class I had to (explicitly) prove the correctness of &lt;a href=&quot;http://en.wikipedia.org/wiki/Stooge_sort&quot; rel=&quot;nofollow&quot;&gt;Stooge sort&lt;/a&gt;. It has a running time of O(n^{log 3 / log 1.5}) = O(n^2.7095...).&lt;/p&gt;&#xA;" OwnerUserId="7649" LastActivityDate="2010-12-22T15:40:51.717" />
  <row Id="29162" PostTypeId="2" ParentId="29149" CreationDate="2010-12-22T15:43:28.183" Score="0" ViewCount="" Body="&lt;p&gt;I forget the specific name, but if you go to any hardware store you should be able to pick up big (4'x8') slabs of plastic white wall coverings, for bathrooms and the like.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They work well as whiteboards, are huge, and are way cheaper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We had several in our dorm room in college for our bigger projects. I miss them now at work.&#xA;&lt;hr&gt;&#xA;Alternatively I used to have a female co-worker that was fairly artsy.  She would get a big poster frame and put fancy but mono-chromatic patterned paper/cloth behind it.  Then used the frame as a whiteboard.&lt;/p&gt;&#xA;" OwnerUserId="9987" LastActivityDate="2010-12-22T15:43:28.183" CommentCount="2" />
  <row Id="29163" PostTypeId="2" ParentId="27022" CreationDate="2010-12-22T15:45:27.150" Score="2" ViewCount="" Body="&lt;p&gt;Whileboards are like wikis; they encourage low-impact collaboration. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because they don't have history, it's easy to destroy state. Electronic whiteboards help record state, but make it slightly harder and more intimidating to contribute because the 'in print' nature of the display make it feel more permanent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We use whiteboards to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;brainstorm design ideas&lt;/li&gt;&#xA;&lt;li&gt;move ideas from stickies to drawn designs&lt;/li&gt;&#xA;&lt;li&gt;help explain complex concepts&lt;/li&gt;&#xA;&lt;li&gt;draw out design alternatives (UI or architectural)&lt;/li&gt;&#xA;&lt;li&gt;draw large sketches to help explore a design space&lt;/li&gt;&#xA;&lt;li&gt;as mixed media surfaces (like the one shown above) for sorting and marking up stickies or information generated in some other way (e.g. printed-out screenshots)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This can be using the in-office whiteboards or the ones in the conference rooms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We also have whiteboards outside our offices that are more like the ones in college dorms--places to leave notes and messages to each other.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-12-22T15:45:27.150" />
  <row Id="29164" PostTypeId="2" ParentId="28927" CreationDate="2010-12-22T15:45:36.410" Score="1" ViewCount="" Body="&lt;p&gt;There's plenty of research to show that programmers will do an excellent job at whatever criteria are presented to them, at the cost of other possible goals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means that they will do well at achieving specific and measurable goals, and less well at anything not specifically listed.  That means you have to be extremely careful at setting goals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't want to set lines of code as a goal.  Trust me.  Setting bugs fixed leads to writing buggy code to begin with.  Asking for bug fixes in existing code will result in very liberal definitions of &quot;bug&quot; (and maybe &quot;fix&quot;).  (Also, the &quot;achievable&quot; part depends on how buggy the code was.)  Asking for feature completeness in a certain time, well....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you want your programmers to do is to write useful stuff in a reasonable period of time with good code quality, and enhance and modify it while maintaining code quality.  I've never seen specific and measurable goals that would be good criteria myself.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-22T15:45:36.410" />
  <row Id="29165" PostTypeId="2" ParentId="29109" CreationDate="2010-12-22T15:47:17.430" Score="23" ViewCount="" Body="&lt;blockquote&gt;Is there any satisfiable reason to use C++?&lt;/blockquote&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Templates and the STL.  You trade a little build time (and some potentially incomprehensible error messages) for a &lt;em&gt;lot&lt;/em&gt; of useful abstraction and labor-saving tools, with no appreciable run-time performance hit (although the binary footprint may be a little larger).  &#xA;&lt;br&gt;&lt;br&gt;&#xA;It takes a while to wrap your head around (took me a couple of years before it clicked), but once you do it can make life a &lt;em&gt;lot&lt;/em&gt; simpler.  &#xA;&lt;li&gt;Text processing in C++ is &lt;em&gt;orders of magnitude&lt;/em&gt; less painful than it is in C.  &#xA;&lt;/ol&gt;&#xA;" OwnerUserId="11246" LastActivityDate="2010-12-22T15:47:17.430" CommentCount="10" />
  <row Id="29166" PostTypeId="2" ParentId="29156" CreationDate="2010-12-22T15:48:30.563" Score="2" ViewCount="" Body="&lt;p&gt;I like the original! This one seems specific. That one was general.  &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-22T15:48:30.563" />
  <row Id="29167" PostTypeId="1" CreationDate="2010-12-22T15:48:32.670" Score="0" ViewCount="85" Body="&lt;p&gt;I am anticipating a battle over Subversion repositories: currently we have a single web application that was checked in as 3 main projects and 2 reports projects (when I started 6 months ago), is now up to 7 projects, and is expected to grow further.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is obvious to me that this is &lt;strong&gt;just not right&lt;/strong&gt;, that a compiled executable cannot cross a version-control boundary if you want to make reasonable use of the version-control system. It's impossible to have a single checkin for a single feature, and that seems essential to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I feel like I'm hand-waving when I try to explain this. Does anyone have any references, for Subversion or in general, that lays out this principle and has some authority behind it? I've done some searching and am just not coming up with what I need.&lt;/p&gt;&#xA;" OwnerUserId="9183" LastActivityDate="2010-12-22T21:33:44.653" Title="Need repository layout references" Tags="&lt;version-control&gt;&lt;software-development&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="1" />
  <row Id="29168" PostTypeId="2" ParentId="29113" CreationDate="2010-12-22T15:48:41.793" Score="2" ViewCount="" Body="&lt;p&gt;For me IIS 5+ to IIS7 was a big jump. You might want to consider that. :)&lt;/p&gt;&#xA;" OwnerUserId="11291" LastActivityDate="2010-12-22T15:48:41.793" CommentCount="1" />
  <row Id="29169" PostTypeId="2" ParentId="29144" CreationDate="2010-12-22T15:50:07.770" Score="3" ViewCount="" Body="&lt;p&gt;Absolutely have had this problem.  I think it's extremely common in our field.  There are so many shiny toys.  I try to limit my focus to three technologies at a time (just one is impossible and impractical).  But here is a daily strategy I'm trying to use to focus:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I try to focus continuously for an hour on a technology (iPhone development, for example).&lt;/li&gt;&#xA;&lt;li&gt;I take at least a half hour break with something non-technical.&lt;/li&gt;&#xA;&lt;li&gt;Focus for an hour on another, unrelated, but less taxing technology (eg: jQuery).&lt;/li&gt;&#xA;&lt;li&gt;Take a non-tech break.&lt;/li&gt;&#xA;&lt;li&gt;Focus for an hour on a challenging technology (eg: ASP.NET MVC).&lt;/li&gt;&#xA;&lt;li&gt;Wind-down time, and review.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Sometimes I'll do step 1 and 2 early in the morning (iPhone and exercise), step 3 during lunch (jQuery followed by food), and step 5 at night (MVC, then family time).  I like to review in my mind what I learned right before bed.  I kind of hope some of it then absorbs better during sleep.  Hey -- who knows?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, make it fit into your lifestyle.  But bottom line is, I think trying to learn too much at a time will be ineffective and frustrating.  This feels like a good balance for me.  I struggled with this for years.&lt;/p&gt;&#xA;" OwnerUserId="10397" LastActivityDate="2010-12-22T15:50:07.770" CommentCount="1" />
  <row Id="29170" PostTypeId="1" AcceptedAnswerId="29205" CreationDate="2010-12-22T15:50:21.793" Score="18" ViewCount="1045" Body="&lt;p&gt;I have seen some programmers tweaking their code over and over again not only to make it 'work good', but also to make it 'look good'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMO, 'clean code' is actually a compliment indicating your code is elegant, perfectly understandable and maintainable. And the difference comes out when you have to choose between an aesthetically appealing code vs. code that's stressful to look at. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, how many of you actually write 'clean code'? Is it a good practice? What are the other benefits or drawbacks of this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; I came across the term 'girl-code' &lt;a href=&quot;http://headrush.typepad.com/photos/uncategorized/girlcode.jpg&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4522" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-12-22T16:07:43.103" LastActivityDate="2010-12-24T01:50:57.920" Title="Do you actually write 'clean-code'?" Tags="&lt;productivity&gt;&lt;best-practices&gt;" AnswerCount="19" CommentCount="18" FavoriteCount="7" />
  <row Id="29172" PostTypeId="2" ParentId="29170" CreationDate="2010-12-22T15:55:48.573" Score="1" ViewCount="" Body="&lt;p&gt;I just write clean code and put comments that make others understand it.. simply :)&lt;/p&gt;&#xA;" OwnerUserId="9701" LastActivityDate="2010-12-22T15:55:48.573" />
  <row Id="29173" PostTypeId="2" ParentId="29170" CreationDate="2010-12-22T15:55:50.150" Score="1" ViewCount="" Body="&lt;p&gt;I admit to doing that; and the benefit is not getting annoyed every time I see it. I guess it's also easier to read, and therefore bugs become more obvious; but the real reason is that I can't stand ugly code.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-22T15:55:50.150" />
  <row Id="29174" PostTypeId="2" ParentId="29170" CreationDate="2010-12-22T15:55:51.943" Score="16" ViewCount="" Body="&lt;p&gt;You must ensure that your code is very readable, clean and maintainable. That's what all programmers &lt;strong&gt;must&lt;/strong&gt; do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you are talking about &lt;code&gt;over styling&lt;/code&gt; (like that term better that &lt;em&gt;girl-code&lt;/em&gt;) which serves nothing but the ego of its author.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen many developers in the past so proud of their creation (you know, like in the restrooms ;)), they spent hours cleaning and polishing their code. Some of them were so meticulous than they ensured that the correct white spaces between members were respected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;It's too much.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I fight that kind of behavior counterproductive. In a &lt;em&gt;professional&lt;/em&gt; context, you must be &lt;em&gt;professional&lt;/em&gt;. You can get your satisfaction by writing clean, very readable and maintainable code and talking with happy users or colleagues.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-22T17:12:11.113" LastActivityDate="2010-12-22T17:12:11.113" CommentCount="12" />
  <row Id="29175" PostTypeId="2" ParentId="29170" CreationDate="2010-12-22T15:56:14.143" Score="2" ViewCount="" Body="&lt;p&gt;I am not sure &quot;looking good&quot; and being &quot;elegant, perfectly understandable and maintainable&quot; is equivalent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I try to write code, that is &quot;elegant, perfectly understandable and maintainable&quot;. I do refactor my own code to better match those criteria.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't see any drawbacks, except the resulting cost in time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For code to &quot;look good&quot;, there are plenty of automated tools, that will properly indent and space everything as you wish.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-12-22T15:56:14.143" CommentCount="1" />
  <row Id="29176" PostTypeId="2" ParentId="27564" CreationDate="2010-12-22T15:57:14.253" Score="-2" ViewCount="" Body="&lt;p&gt;I would like to have an &lt;strong&gt;NOT&lt;/strong&gt; operator in PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if(not empty($variable)) &#xA;[vs] &#xA;if(!empty())&lt;/p&gt;&#xA;" OwnerUserId="11339" LastActivityDate="2010-12-22T15:57:14.253" CommunityOwnedDate="2010-12-22T15:57:14.253" />
  <row Id="29177" PostTypeId="1" AcceptedAnswerId="29200" CreationDate="2010-12-22T15:57:28.337" Score="29" ViewCount="922" Body="&lt;p&gt;So, we've all heard of &lt;a href=&quot;http://www.codinghorror.com/blog/2006/08/the-programmers-bill-of-rights.html&quot; rel=&quot;nofollow&quot;&gt;The Programmers Bill of Rights&lt;/a&gt; and XP has a similar concept.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a common complaint these days that we hear a lot about people's rights but not so much about their responsibilities, so what should be on the programmers bill of responsibilities.  That is things that they should do, which they may find unpalatable, but that which separate programmers acting professionally and responsibly, from those who do not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm primarily interested in the unpalatable ones and the ones which tend not to happen.  That is the ones that programmers tend to shirk and avoid, rather than the ones which 90% of programmers actually want to do (such as always refactor and use source control).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, &lt;strong&gt;what should be on the Programmers Bill of Responsibilities?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-24T13:32:22.440" Title="The Programmers Bill of Responsibilities" Tags="&lt;best-practices&gt;&lt;development-process&gt;" AnswerCount="17" CommentCount="4" FavoriteCount="8" />
  <row Id="29178" PostTypeId="2" ParentId="28667" CreationDate="2010-12-22T15:59:14.330" Score="4" ViewCount="" Body="&lt;p&gt;I personally find Donald Knuth's phrase: &quot;premature optimization is the root of all evil&quot; as the first evil thing in programming. In an expirienced point of view (that says that i have failed for this).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, the phrase says something like: Don't try to understand the problem in a particular enviroment, particular PC or set of users before you get in deep into the problem.&lt;/p&gt;&#xA;" OwnerUserId="11341" LastActivityDate="2010-12-22T15:59:14.330" CommunityOwnedDate="2010-12-22T15:59:14.330" />
  <row Id="29179" PostTypeId="2" ParentId="29170" CreationDate="2010-12-22T16:01:49.173" Score="6" ViewCount="" Body="&lt;p&gt;I don't think I like the term &quot;girl code&quot; but clean code = maintainable code.  Anything less is unprofessional.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a general rule, I consider then next developer that has to look at my mess.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of the time it is me...several months later...when I don't remember how it works...and I have even less time to make a change.&lt;/p&gt;&#xA;" OwnerUserId="6398" LastActivityDate="2010-12-22T16:01:49.173" />
  <row Id="29180" PostTypeId="2" ParentId="29177" CreationDate="2010-12-22T16:03:38.897" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A programmer is responsible for converting user stories in the product backlog into working and shippable software increments&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's why managers should ensure that they have everything to their goal.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-22T16:17:32.270" LastActivityDate="2010-12-22T16:17:32.270" />
  <row Id="29181" PostTypeId="2" ParentId="29170" CreationDate="2010-12-22T16:04:16.177" Score="1" ViewCount="" Body="&lt;p&gt;I just write my code, following the company standards.  if i want it prettied up, i can run it through a code beautifier.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2010-12-22T16:04:16.177" CommentCount="4" />
  <row Id="29182" PostTypeId="2" ParentId="29109" CreationDate="2010-12-22T16:04:18.233" Score="10" ViewCount="" Body="&lt;p&gt;I regard C++ as a language of the 90's, a language of a bygone era.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back then it was big because it offered higher-level language constructs and mechanisms at a lower cost in terms of performance. It was the universal tool for developing everything from address book applications to avionics software, and that inspired the OO craze. OOP solved hunger and AIDS, and yes, I blame C++ for trying to brainwash me in the late 90's when I first started programming that any non-OO language isn't worth learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now that hardware has advanced so much and newer, modern languages have appeared, I fail to see C++ remaining a relevant choice for most application programming except for computationally intensive software where you still need some abstraction (games, physics simulations, CAD systems, etc.). Even the latter can be avoided if you write a compact, modular engine in C and have higher-level application logic delegated to a neat scripting language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need to go down to the metal use C sanely, and when you need to go high-level, do it in a modern language that doesn't advertise encapsulation while you can freely alter each byte through a pointer.&lt;/p&gt;&#xA;" OwnerUserId="7938" LastEditorUserId="7938" LastEditorDisplayName="" LastEditDate="2010-12-22T20:12:11.963" LastActivityDate="2010-12-22T20:12:11.963" CommentCount="8" />
  <row Id="29183" PostTypeId="2" ParentId="28995" CreationDate="2010-12-22T16:05:13.600" Score="1" ViewCount="" Body="&lt;p&gt;It totally depends on the work place environment. I personally started out as a developer on our product right out of the gate, but I had a great mentor. Looking back I can see that at first he selected small projects that didn't have that much impact if any on the main product and were certainly not on the critical path in terms completion time.  During each project I was asked to come up with informal design documents that were reviewed together. We also conducted code reviews. I enjoyed this  methodology because it allowed me attempt design and implementation with my own knowledge first. After that my mentor would point out issues or problem areas and then I could go back and fix them. As project got more involved I learned more about the system as whole. I believe actually going through the steps and making the newb mistakes by myself under supervision was a superior way to learn, but you NEED to have a mentor that is willing to take you under his/her wing for at least the first year or so. It might even be as many as 2 or 3 years before you can really be consider an equal contributor. I learned more in my first 3 years in industry then probably all of H.s and College combined.  &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2010-12-22T16:05:13.600" />
  <row Id="29184" PostTypeId="2" ParentId="29177" CreationDate="2010-12-22T16:06:10.387" Score="33" ViewCount="" Body="&lt;p&gt;Every programmer should make their code readable by others.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-22T16:06:10.387" CommentCount="5" />
  <row Id="29185" PostTypeId="2" ParentId="29177" CreationDate="2010-12-22T16:06:16.097" Score="2" ViewCount="" Body="&lt;p&gt;1) Explain clearly that a solution to any problem is going to have trade offs between performance, cost, time, and quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2)Complete relevant documentation, be they releases notes or test plans. (documentation will vary with company type and size)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3)Request the correct tools for their job (so many just moan about it but never approach their boss with a reasonable case for getting what they need)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... Others no doubt to follow.&lt;/p&gt;&#xA;" OwnerUserId="5148" LastActivityDate="2010-12-22T16:06:16.097" />
  <row Id="29186" PostTypeId="2" ParentId="20927" CreationDate="2010-12-22T16:08:18.583" Score="2" ViewCount="" Body="&lt;p&gt;You have a bowl with 200 fish in it. Of these fish 99% are not guppies. How many fish should you remove so that 2% of what remains are guppies. Show your work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is about confusing requirements. It is said this way to change perspectives multiple times during the same question. It is meant to see if they can figure out what is really going on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You would be surprised how many people get it wrong.&lt;/p&gt;&#xA;" OwnerUserId="2078" LastActivityDate="2010-12-22T16:08:18.583" CommunityOwnedDate="2011-02-15T14:41:29.790" CommentCount="3" />
  <row Id="29187" PostTypeId="2" ParentId="29177" CreationDate="2010-12-22T16:09:11.387" Score="2" ViewCount="" Body="&lt;p&gt;Question anything - A programmer should have the responsibility to inquire on anything that a system may be required to do or handle.  This can include asking what users may see as silly questions as there are various sites devoted to showing just what users can be capable of doing.  &lt;a href=&quot;http://thedailywtf.com/Default.aspx&quot; rel=&quot;nofollow&quot;&gt;Daily WTF&lt;/a&gt; and &lt;a href=&quot;http://www.computerworld.com/sharktank/sharktank_latest.jsp&quot; rel=&quot;nofollow&quot;&gt;SharkTank&lt;/a&gt; being a couple of examples though I'm sure there are others.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-22T16:09:11.387" />
  <row Id="29188" PostTypeId="2" ParentId="29170" CreationDate="2010-12-22T16:12:24.147" Score="0" ViewCount="" Body="&lt;p&gt;Refactoring your code to make it elegant makes it easier to read, and easier to maintain. Even minor things such as aligning your variable assignments:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int foo    = 1;&#xA;int bar    = 2;&#xA;int foobar = 3;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;is easier to read than&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int foo = 1;&#xA;int bar = 2;&#xA;int foobar = 3;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;which means it's easier to skim over when you're debugging later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, in PHP you're allowed any number of random code blocks. I use these to group logical tasks:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// do x&#xA;{&#xA;    // ...&#xA;}&#xA;&#xA;// do y&#xA;{&#xA;    // ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This adds clear definition to relevant code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Edit&lt;/em&gt;: As an added bonus, it's easy to preceed one of those logical code blocks with an &lt;code&gt;if (false)&lt;/code&gt; if you want to skip over it temporarily.&lt;/p&gt;&#xA;" OwnerUserId="7048" LastActivityDate="2010-12-22T16:12:24.147" CommentCount="4" />
  <row Id="29189" PostTypeId="2" ParentId="29177" CreationDate="2010-12-22T16:13:31.167" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;A Programmer's responsibility is to create software that satisfies the needs of the requirements, analysis, design, and specifications as set in any contracts between the programmer and the client.&lt;/li&gt;&#xA;  &lt;li&gt;A Programmer's responsibility is to create software that is economical, reliable, and works efficiently on real machines.  &lt;/li&gt;&#xA;  &lt;li&gt;A Programmer's responsibility is to work as efficiently, ethically, and with as much integrity as they can and conduct themselves with utmost professionalism. &lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Some of that applies to &quot;A Programming &lt;em&gt;Company&lt;/em&gt;'s&quot; Responsibilities. &lt;/p&gt;&#xA;" OwnerUserId="7499" LastActivityDate="2010-12-22T16:13:31.167" />
  <row Id="29190" PostTypeId="2" ParentId="29177" CreationDate="2010-12-22T16:19:06.843" Score="15" ViewCount="" Body="&lt;p&gt;The programmer is responsible for the privacy and security of all user provided data. Especially passwords, credit card numbers, email addresses, and physical location.&lt;/p&gt;&#xA;" OwnerUserId="3542" LastActivityDate="2010-12-22T16:19:06.843" CommentCount="7" />
  <row Id="29191" PostTypeId="1" AcceptedAnswerId="30740" CreationDate="2010-12-22T16:25:56.723" Score="2" ViewCount="140" Body="&lt;p&gt;What principles does your software engineering or development organization follow? I am very interested in seeing a list of principles from someone who works at a company where these principles are discussed, published, followed, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The closest I have seen to a principles-based engineering organization are companies which are agile and follow the &lt;a href=&quot;http://agilemanifesto.org/principles.html&quot; rel=&quot;nofollow&quot;&gt;agile principles&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a list of Marick's values/challenges: &lt;a href=&quot;http://www.agilejourneyman.com/2010/02/4-challenges-and-5-guiding-values-of.html&quot; rel=&quot;nofollow&quot;&gt;http://www.agilejourneyman.com/2010/02/4-challenges-and-5-guiding-values-of.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am looking for pointers to more stuff like this.  Ideally, I'd like to hear from people who have actually implemented a principles-based approach in their organization.&lt;/p&gt;&#xA;" OwnerUserId="11347" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2010-12-27T22:06:05.833" LastActivityDate="2010-12-27T22:06:05.833" Title="What principles does your software engineering or development organization follow?" Tags="&lt;culture&gt;" AnswerCount="2" CommentCount="0" FavoriteCount="2" />
  <row Id="29192" PostTypeId="2" ParentId="29170" CreationDate="2010-12-22T16:28:48.580" Score="10" ViewCount="" Body="&lt;p&gt;Honestly it depends. I like how everyone spouts the party line about how &quot;anything less than clean well documented code is a sheer travesty!&quot; but I work in a business with ridiculous deployment cycles and zero oversite: I do the best I can, but I write so much code its extremely difficult to write the clean perfect code that everyone else &lt;em&gt;claims&lt;/em&gt; they write.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I try to do is write code that can be easily maintained by someone who has roughly my ability. I comment the tricky parts, I name the programs, variables, and classes friendly names, I deploy, I move on. I don't have time to do anything else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I feel a bit guilty about it, but not very. You should see some of the horrors I deal with on a daily basis. Decades of custom code in obscure languages with zero documentation. One of my coworkers develops exclusively in VB6 and deploys cryptically named binaries all over the place. The woman I replaced programmed exclusively in &lt;a href=&quot;http://en.wikipedia.org/wiki/IBM_RPG&quot; rel=&quot;nofollow&quot;&gt;RPG&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's just extremely difficult for me to believe, as much horrible crap as I've seen in my years as a programmer, that &lt;em&gt;everyone&lt;/em&gt; only generates clean code. &lt;/p&gt;&#xA;" OwnerUserId="9015" LastActivityDate="2010-12-22T16:28:48.580" CommentCount="2" />
  <row Id="29193" PostTypeId="2" ParentId="29109" CreationDate="2010-12-22T16:29:45.583" Score="4" ViewCount="" Body="&lt;p&gt;I only consider C++ because of STL.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-22T16:29:45.583" CommentCount="4" />
  <row Id="29194" PostTypeId="2" ParentId="27564" CreationDate="2010-12-22T16:30:10.367" Score="-2" ViewCount="" Body="&lt;p&gt;mysql_fetch_all&#xA;If current you have todo loop the array and then assign to array.What if no need to loop and just post then json..&#xA;or any resources of link database output to json without looping.&lt;/p&gt;&#xA;" OwnerUserId="11348" LastActivityDate="2010-12-22T16:30:10.367" CommunityOwnedDate="2010-12-22T16:30:10.367" />
  <row Id="29195" PostTypeId="2" ParentId="29149" CreationDate="2010-12-22T16:39:36.630" Score="1" ViewCount="" Body="&lt;p&gt;I use the whiteboard for everything. It seems to help me work through problems much more easily and I find myself thinking about ideas much deeper when using a whiteboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're put off by the prices of large whiteboards, they have paint that you can use to cover an entire wall. Then you're able to simply draw on the walls. I haven't done it myself but a co-worker has and he swears by it. &lt;a href=&quot;http://www.rustoleum.com/cbgproduct.asp?pid=128&quot; rel=&quot;nofollow&quot;&gt;Here&lt;/a&gt; is an example.&lt;/p&gt;&#xA;" OwnerUserId="5286" LastActivityDate="2010-12-22T16:39:36.630" CommentCount="1" />
  <row Id="29196" PostTypeId="2" ParentId="29149" CreationDate="2010-12-22T16:41:54.103" Score="0" ViewCount="" Body="&lt;p&gt;I use a white board just about every day, but then I teach programming!&lt;/p&gt;&#xA;" OwnerUserId="11043" LastActivityDate="2010-12-22T16:41:54.103" />
  <row Id="29197" PostTypeId="2" ParentId="27564" CreationDate="2010-12-22T16:50:10.800" Score="-6" ViewCount="" Body="&lt;p&gt;New Function:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;echo automaticallyMakeWebSiteThatMakesMyBossHappyAndLetsMePlayBlackOps();&lt;/p&gt;&#xA;" OwnerUserId="11349" LastActivityDate="2010-12-22T16:50:10.800" CommunityOwnedDate="2010-12-22T16:50:10.800" />
  <row Id="29199" PostTypeId="2" ParentId="28927" CreationDate="2010-12-22T16:52:58.533" Score="1" ViewCount="" Body="&lt;p&gt;as a performance framework, SMART is only as effective as how closely u r aligned with ur direct manager and his/her own objectives. sometimes for u to get SMART, u have to get DUMB first - make ur objectives Doable, Understandable, Manageable &amp;amp; Beneficial for HIM/HER, as strange as that might sound.&lt;/p&gt;&#xA;" OwnerUserId="11350" LastActivityDate="2010-12-22T16:52:58.533" />
  <row Id="29200" PostTypeId="2" ParentId="29177" CreationDate="2010-12-22T16:53:32.603" Score="24" ViewCount="" Body="&lt;p&gt;A programmer has the responsibility to push back poor requirements instead of blindly implementing them. This includes telling clients that what they want is more expensive than other options or has a particular set of risks. It also includes communicating bad news in a professional way - not screaming, calling people stupid, implying they are stupid or other childish behavior. If he pushes back, he should have a set of reasons (more than, &quot;I don't like SQL Server and won't use it&quot;) and an alternative plan to present.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the programmer also has the responsibility  of accepting decisions and using tools or designs they may not like if their pushback was not accepted. If a report was requested in SSRS, delivering it in Crystal Reports (which the client may not have) is unacceptable. If a .net solution was required, delivering it in Haskell is unacceptable. If no one else on the team uses a tool or language that you want to use, it is unprofessional to use it if management doesn't agree that it is the best tool for the particular job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A programmer has the responsibility to test his work. (This shouldn't be the only test, but no professional programmer should send out code he has not tested.) This includes testing even the branches of the code you don't expect to hit very often. If you have a set of nested IFs, test all possible routes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A programmer has the responsibility to handle errors and exceptions gracefully and to write error messages that the user will see that are professional and neutral not jokes or insulting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A programmer has the responsibility to protect private data, protect the proprietary code he writes for the company and to protect the users from catastrophe (even self inflicted catastrophe) from their use of the application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A programmer has the responsibility to make sure his code is maintainable and is in source control. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A programmer has the responsibility to coordinate with others to make sure his changes do not adversely affect what they are doing.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A programmer has the responsibility to recommend the best choice &lt;strong&gt;for the client&lt;/strong&gt; of tools or languages in the design phase not the tool/language he wants to play with and learn. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A programmer has the responsibility to work with all the appropriate personnel for a project including the ones he does not like. It is not your job to like people, it is your job to work with them and be polite.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A programmer has the responsibility to produce a product that does what was specified in a reasonable time-frame. If the time-frame is not going to be met, he or she has the responsibility to inform management of that as soon as it is known. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A programmer has the responsibility to let project management know about impediments to getting the job done. They can't fix what they don't know about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A programmer has the responsibility to do the whole task not just the fun, interesting parts. Every job has some boring parts, they still need to be done. This includes things like timesheets and adding discussion items to project management software. It includes things like documentation, code review, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A programmer has the responsibility to learn the business domain he is supporting not just programming concepts. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A programmer has the responsibility to keep his skills up-to-date.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When a programmer messes up, he has the responsibility to do all in his power to fix the problems as soon as humanly possible. This may include bearing the bad news to management rather than trying to hide that you just deleted a critical table in the production database.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A programmer has the same responsibilities of any other worker - to show up on time, to work the hours contracted, to request vacation time in advance, to answer phone and email messages (heck to read their emails), to fill in required forms for HR, etc.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-22T19:41:34.860" LastActivityDate="2010-12-22T19:41:34.860" CommentCount="5" />
  <row Id="29201" PostTypeId="2" ParentId="29144" CreationDate="2010-12-22T16:55:32.703" Score="0" ViewCount="" Body="&lt;p&gt;Programming reinvents itself every few years. I originally learn on punch cards and teletype systems. I haven't used one lately. If you ever stop learn new things that it the time to worry.&lt;/p&gt;&#xA;" OwnerUserId="11043" LastActivityDate="2010-12-22T16:55:32.703" />
  <row Id="29202" PostTypeId="1" AcceptedAnswerId="29208" CreationDate="2010-12-22T16:59:32.763" Score="10" ViewCount="345" Body="&lt;p&gt;I have been looking around for resources that discuss about mentors, including questions in the stackexchange network. I see that the general response has been to join open source projects and/or check out local user groups if there exists any. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are we sure that joining open source project can get me a mentor? It can grab eyeballs, yes, if the project is exciting enough but a mentor? I am not so sure. What do you guys think?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, I'd want my mentor to be in a specific domain as opposed to just being a coding wizard and that makes the search even more difficult. Suggestions? &lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2011-02-16T15:03:26.907" Title="Where to find a mentor?" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;mentor&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="5" />
  <row Id="29203" PostTypeId="2" ParentId="29202" CreationDate="2010-12-22T17:06:26.207" Score="3" ViewCount="" Body="&lt;p&gt;Open source projects are great at getting feedback on specific code you've added and potentially new ways to do things, but as you figured out, that probably won't amount to a mentor relationship.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd suggest what you've already mentioned and that is user groups.  User groups usually gather fairly frequently so you can get actual face time with potential mentors.  This face time can allow for a quicker, easier flow of communication.  Will it guarantee that everyone is in the same domain? No, but you have to start somewhere.  If you find someone who has a lot of experience, they may still be able to help you with your domain, just based on other experiences they've had.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-22T17:06:26.207" />
  <row Id="29204" PostTypeId="1" AcceptedAnswerId="29266" CreationDate="2010-12-22T17:07:41.367" Score="2" ViewCount="269" Body="&lt;p&gt;I bought in to agile methodology, continuous build and integration, pair programming.&#xA;Looking around for responses that add to my learning curve in 2011.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Please do add any links/urls that helped you.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-12-23T13:58:46.250" LastActivityDate="2010-12-23T13:58:46.250" Title="What are the top 3 trends to follow in software development you succumbed to?" Tags="&lt;software-development&gt;&lt;trends&gt;" AnswerCount="3" FavoriteCount="3" />
  <row Id="29205" PostTypeId="2" ParentId="29170" CreationDate="2010-12-22T17:08:18.103" Score="12" ViewCount="" Body="&lt;p&gt;I would argue that &lt;strong&gt;many of us do not write clean code&lt;/strong&gt;.  And generally, &lt;em&gt;that's not our job&lt;/em&gt;.  Our job as software developers is to deliver a product that works, on time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am reminded of Joel Spolsky's blog post: &lt;a href=&quot;http://www.joelonsoftware.com/items/2009/09/23.html&quot; rel=&quot;nofollow&quot;&gt;The Duct Tape Programmer&lt;/a&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;He quotes from &lt;a href=&quot;http://codersatwork.com/&quot; rel=&quot;nofollow&quot;&gt;Coders at Work&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;At the end of the day, ship the&#xA;  fucking thing! It’s great to rewrite&#xA;  your code and make it cleaner and by&#xA;  the third time it’ll actually be&#xA;  pretty. But that’s not the&#xA;  point—you’re not here to write code;&#xA;  you’re here to ship products. - Jamie Zawinsky&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I am also reminded of &lt;a href=&quot;http://blog.objectmentor.com/articles/2009/09/24/the-duct-tape-programmer&quot; rel=&quot;nofollow&quot;&gt;Robert Martin's blog response&lt;/a&gt;: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;So. Be smart. Be clean. Be simple.&#xA;  Ship! And keep a small roll of duct&#xA;  tape at the ready, and don’t be afraid&#xA;  to use it. - Uncle Bob&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If the code a developer write happens to be clean AND work (is deliverable), so be it, good for everyone.  But if a developer is tinkering around trying to make clean and readable code at the expense of being able to deliver it timely, then that's bad.  Make it work, use duct tape, ship it.  You can refactor it later and make it super gorgeous and efficient.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, it's good practice to write clean code, but never at the expense of being able to deliver.  The benefit of delivering a duct-taped product on time, far outweighs the benefits of clean code that was never finished and delivered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good chunk of code I've come across isn't clean.  Some are downright ugly.  But they were all released and used in production.  Some may say that it's unprofessional to write messy code.  I disagree.  The professional thing is to deliver code that works, whether it's clean or messy.  The developer must do the best he/she can, given whatever time that was allocated before delivery.  Then, go back to clean up-- that's professional.  Hopefully the code delivered isn't pure duct tape, and is 'clean-enough'.&lt;/p&gt;&#xA;" OwnerUserId="14" LastEditorUserId="14" LastEditorDisplayName="" LastEditDate="2010-12-23T01:45:18.350" LastActivityDate="2010-12-23T01:45:18.350" CommentCount="8" />
  <row Id="29206" PostTypeId="2" ParentId="22162" CreationDate="2010-12-22T17:10:46.793" Score="0" ViewCount="" Body="&lt;p&gt;I wrote a simple profiling class that I can use to profile any method or method call (1 page). It log its results via log4j. It is intrusive - you have to add the relevant calls to the code that you wish to profile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's simple, effective and always present in the code. So if the customer is having a performance issue then I/they can just grep the logs for the required information. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It works on any JVM. Is is not a memory hog. It does not need any administration or security privileges (e.g. access to open ports) to run. It is not a performance hog. It does not require a special IDE or tool to run.&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-12-22T17:10:46.793" />
  <row Id="29207" PostTypeId="2" ParentId="27564" CreationDate="2010-12-22T17:12:33.923" Score="-2" ViewCount="" Body="&lt;p&gt;Safe null operator like ?.  maybe: ?-&gt; ;) &lt;/p&gt;&#xA;" OwnerUserId="11355" LastActivityDate="2010-12-22T17:12:33.923" CommunityOwnedDate="2010-12-22T17:12:33.923" />
  <row Id="29208" PostTypeId="2" ParentId="29202" CreationDate="2010-12-22T17:13:01.253" Score="4" ViewCount="" Body="&lt;p&gt;What are you expecting from a mentor?  The suggestions of an open source project or local user group are designed to be more about networking and finding someone that is a few steps further along what you want to be so that they can help guide you in a way.  Think of it as trying to learn to cook from Jamie Oliver or Gordon Ramsay, it may be quite entertaining and useful at the end of the day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on your expectations it may be easy or amazingly hard to find a mentor.  If you are expecting someone that can read your mind and give you step by step the secrets to being awesome in a year or less then that may not be realistic.  At the same time, if you want to find someone that can do some things better than you this may not be so hard to do possibly.  So first figure out what are your expectations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, now that you know what you want, you have to find it.  This may well be quite hard as it isn't like there are many places devoted to showcasing developers using their skills like we have the arts in Canada and the U.S. which is why the suggestion was given I'd imagine.  &lt;a href=&quot;http://www.mentornet.net/documents/about/programs/one_on_one.aspx&quot; rel=&quot;nofollow&quot;&gt;MentorNet&lt;/a&gt; would be an example of a program that may work though I haven't tried it, I did research it a while back and didn't think it was for me and what I wanted.  Another thought here is how well do your friends and family know of what you want here?  They may know someone or some place that may assist you if you ask.  While this isn't a comprehensive answer, what you ask is kind of vague and so hopefully you can add more to this and then I'll follow-up once you give some more details of what you want and how you want it as this isn't Burger King but we could try to work it that way.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;C++ server side component experts may be rather hard to find.  Are there any nearby post-secondary institutions?  Those may have someone that has those skills that may be shifting into something else as a possible idea.  Good luck on finding that mentor.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastEditorUserId="4327" LastEditorDisplayName="" LastEditDate="2010-12-22T17:28:09.463" LastActivityDate="2010-12-22T17:28:09.463" CommentCount="1" />
  <row Id="29209" PostTypeId="2" ParentId="29204" CreationDate="2010-12-22T17:16:33.557" Score="1" ViewCount="" Body="&lt;p&gt;Iterative development, refactoring, test driven development, continuous build and integration and object orientation are all trends that have benefited me considerably. &lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-12-22T17:16:33.557" CommentCount="1" />
  <row Id="29210" PostTypeId="2" ParentId="29204" CreationDate="2010-12-22T17:26:05.090" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Agile&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;TDD&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Aggresive refactoring.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-22T17:26:05.090" CommentCount="2" />
  <row Id="29211" PostTypeId="2" ParentId="29109" CreationDate="2010-12-22T17:27:59.857" Score="4" ViewCount="" Body="&lt;p&gt;The C++ I use is called C with classes!&lt;/p&gt;&#xA;" OwnerUserId="11357" LastActivityDate="2010-12-22T17:27:59.857" CommentCount="5" />
  <row Id="29212" PostTypeId="1" AcceptedAnswerId="29320" CreationDate="2010-12-22T17:30:32.370" Score="11" ViewCount="557" Body="&lt;p&gt;Especially when writing new code from scratch in C, I find myself writing code for hours, even days without running the compiler for anything but an occasional syntax check.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to write bigger chunks of code carefully and test thoroughly only when I'm convinced that the code does what it's supposed to do by analysing the flow in my head. Don't get me wrong - I wouldn't write 1000 lines without testing at all (that would be gambling), but I would write a whole subroutine and test it (and fix it if necessary) after I think I'm finished.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other side, I've seen mostly newbies that run &amp;amp; test their code after every line they enter in the editor and think that debuggers can be a substitute for carefulness and sanity. I consider this to be a lot of distraction once you've learned the language syntax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think is the right balance between the two approaches? Of course the first one requires more experience, but does it affect productivity positively or negatively? Does the second one help you spot errors at a finer level?&lt;/p&gt;&#xA;" OwnerUserId="7938" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-23T14:54:17.340" LastActivityDate="2010-12-23T14:54:17.340" Title="How often do you run &amp; test your code while programming?" Tags="&lt;productivity&gt;&lt;testing&gt;&lt;coding&gt;" AnswerCount="12" CommentCount="3" FavoriteCount="4" />
  <row Id="29213" PostTypeId="1" CreationDate="2010-03-01T13:25:52.857" Score="48" ViewCount="297" Body="&lt;p&gt;I think my career has entered a vicious circle which I would like to exit: I am best at what I hate most. And because I am good at that, I always receive that kind of assignments, and I do them as  expected or even better. Which makes me more of an expert and brings me more similar tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My &quot;expertise&quot; is what (I think) every programmer hates: legacy systems. I can very quickly learn systems, and modify them, migrate them, extract web services from them whatever (without breaking them). Never to develop more functionality or to solve interesting or original problems. Just have that work with Java 1.4, or convert it into a rest-full service or support oracle too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel (and I am told) that I am highly regarded and very helpful to my company. But I hate what I do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What would you do in my place?&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-22T17:34:01.530" CommunityOwnedDate="2010-03-01T13:27:09.717" ClosedDate="2010-12-30T11:18:29.850" Title="Career advice: I am best at what I hate most" Tags="&lt;career&gt;&lt;legacy&gt;&lt;employment&gt;" AnswerCount="12" CommentCount="7" FavoriteCount="3" />
  <row Id="29214" PostTypeId="2" ParentId="29213" CreationDate="2010-03-01T13:28:24.037" Score="9" ViewCount="" Body="&lt;p&gt;Use your unique expertise and qualifications as leverage to work on the things you really want to do. If your company thinks you're so valuable, then they won't hesitate to keep you happy by letting you work on things that you're good at &lt;strong&gt;and&lt;/strong&gt; which are valuable to the organization.&lt;/p&gt;&#xA;" OwnerUserId="15979" LastActivityDate="2010-12-22T17:34:01.530" CommunityOwnedDate="2010-03-01T13:28:24.037" />
  <row Id="29215" PostTypeId="2" ParentId="29213" CreationDate="2010-03-01T13:29:47.403" Score="38" ViewCount="" Body="&lt;p&gt;Talk to your boss and tell him how you feel. Ask him to slowly migrate to another field (that interests you), otherwise you would burn out and the both of you will come out with a loss.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-22T17:34:01.530" CommunityOwnedDate="2010-03-01T13:29:47.403" CommentCount="4" />
  <row Id="29216" PostTypeId="2" ParentId="29213" CreationDate="2010-03-01T13:29:58.260" Score="2" ViewCount="" Body="&lt;p&gt;Talk to your boss and let him know you'd like a chance to be more creative.  If you're valuable and your company/boss has any sort of management skills whatsoever, they should realize that you being happy is going to make you more productive.  You might want to volunteer to train others in the skills that make you successful, making it easier for them to free you up for other work.&lt;/p&gt;&#xA;" OwnerUserId="3114" LastActivityDate="2010-12-22T17:34:01.530" CommunityOwnedDate="2010-03-01T13:29:58.260" />
  <row Id="29217" PostTypeId="2" ParentId="29213" CreationDate="2010-03-01T13:31:10.960" Score="3" ViewCount="" Body="&lt;p&gt;People wish to pay more for what they hate to do theirself. So, you can ask for bigger salary (it's always pleasant).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also participate in different communities and take part in development some open source applications.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-22T17:34:01.530" CommunityOwnedDate="2010-03-01T13:31:10.960" CommentCount="0" />
  <row Id="29218" PostTypeId="2" ParentId="29213" CreationDate="2010-03-01T13:31:44.000" Score="1" ViewCount="" Body="&lt;p&gt;This might not work if you are an employee in a company, but if you are running your own company, then make your hourly rate so high (for the kind of work you dislike) that less people are willing to pay for it. Then even if you get more that kind of work, at least a better pay can compensate for it and maybe you can feel a bit more happy. :)&lt;/p&gt;&#xA;" OwnerUserId="16862" LastActivityDate="2010-12-22T17:34:01.530" CommunityOwnedDate="2010-03-01T13:31:44.000" />
  <row Id="29219" PostTypeId="2" ParentId="29213" CreationDate="2010-03-01T13:32:28.710" Score="8" ViewCount="" Body="&lt;p&gt;I have a friend that likes to say,&quot;That is why they call it work&quot;.  Not helpful I know :)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would find something that interested me and spend my evenings getting good at it.  This comes from personal experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, if you are making good money I would suggest saving every penny you can so that you can afford to take time off if needed during a job change.  Nothing holds you back like not being able to pay the bills.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-22T17:34:01.530" CommunityOwnedDate="2010-03-01T13:32:28.710" CommentCount="2" />
  <row Id="29220" PostTypeId="2" ParentId="29213" CreationDate="2010-03-01T13:57:42.417" Score="17" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Yesterday, I was filling my tax form.&#xA;  I hate that. Until I made a mistake,&#xA;  and the number wouldn't nicely sum up&#xA;  anymore. I had then to solve a problem -- I suddenly loved my tax form!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;All that to say, that what most engineers like is to &lt;em&gt;solve&lt;/em&gt; problems. You then have two directions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Make legacy system &lt;em&gt;your&lt;/em&gt; challenge&lt;/strong&gt;. There is always a challenge and migrating legacy system is an interesting problem to solve. Not the same problem as writing fresh code, but still a problem, which can be extremely complicated, by the way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To turn it into something really challenging, go above your initial assignment. Can you devise a methodology for your company, define best-practices, quality control, ... &lt;em&gt;something&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is obviously something to do in your company about legacy system migration, given that you have this task frequently. Make it &lt;em&gt;your&lt;/em&gt; challenge, and provide a comprehensive solution for it. Discuss with management to widen the horizon about this particular recurring problem of legacy migration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I learned to love stuff I never though I would, such as database, testing, etc. as soon as I had a wider responsibility about it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Do something else&lt;/strong&gt;. If you are really unsatisfying and/or management is not open to any other form of assignment other than &quot;do this&quot;, well, you better change your work.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2010-12-22T17:34:01.530" CommunityOwnedDate="2010-03-01T13:57:42.417" CommentCount="2" />
  <row Id="29221" PostTypeId="2" ParentId="29213" CreationDate="2010-03-01T14:00:59.697" Score="3" ViewCount="" Body="&lt;p&gt;Take up a hobby to put work in perspective. In this economy, a job that pays the bills is a really good thing. If it's not a wonderful job, go looking for wonderful elsewhere. Like, volunteer to help people who don't have a job at all. That might add some perspective. Or, take up a musical instrument, or build a folly in your back yard.&lt;/p&gt;&#xA;" OwnerUserId="1403" LastActivityDate="2010-12-22T17:34:01.530" CommunityOwnedDate="2010-03-01T14:00:59.697" />
  <row Id="29222" PostTypeId="2" ParentId="29213" CreationDate="2010-03-01T14:12:49.100" Score="4" ViewCount="" Body="&lt;p&gt;It sounds like you are a master Refactorer! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a vital skill for a modern programmer, and can be very rewarding when you see a pile of junk being transformed into a work of art by your own hands. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The time will come when you are given that massively important project that was going hugely wrong and it will be up to you to steer it from the brink of destruction. Songs will be written about how you singlehandedly fought the demons of deliquent coding and saved the project!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps you could change your perspective. Hone your skill. Learn in detail what makes bad code bad and good code good. This will turn you into a master coder which will serve you very well when you come to writing new code, the opportunity will arise in due course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="1724" LastActivityDate="2010-12-22T17:34:01.530" CommunityOwnedDate="2010-03-01T14:12:49.100" CommentCount="2" />
  <row Id="29223" PostTypeId="2" ParentId="29213" CreationDate="2010-03-01T15:35:51.887" Score="4" ViewCount="" Body="&lt;p&gt;Do you know what you like the most?  Do you know where you want to be?  Those are where I'd start, which is slightly different than going straight to your boss who may ask, &quot;Where do you want to be?&quot; and if you don't have an answer right away, it may not work out so well.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-22T17:34:01.530" CommunityOwnedDate="2010-03-01T15:35:51.887" />
  <row Id="29224" PostTypeId="2" ParentId="29213" CreationDate="2010-03-01T15:49:31.513" Score="2" ViewCount="" Body="&lt;p&gt;I won't offer any advice but I will tell you a story.  Once upon a time there was a woman that hated her work and found it really tedious and boring.  Ohters doing the same work, both colleagues and competitors also found this work unchallenging and many of these people found something more interesting to do.  Over time there were less and less people with credible experience of this work.  Now this woman works 2 days a month for huge sums of money as nobody else can convincingly claim to be experienced enough to warrant the fees.  &lt;/p&gt;&#xA;" LastActivityDate="2010-12-22T17:34:01.530" CommunityOwnedDate="2010-03-01T15:49:31.513" CommentCount="1" />
  <row Id="29225" PostTypeId="2" ParentId="29213" CreationDate="2010-03-21T09:17:15.563" Score="0" ViewCount="" Body="&lt;p&gt;If your customers want you to do something you are good at but don't like, use that to &lt;strong&gt;negotiate a better situation&lt;/strong&gt; for yourself: make sure you get more pay and more time off, so that you can afford to do what pleases you and recharge your batteries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could include in that time off (whether weeks of leave, or merely reduced working hours) time for &lt;strong&gt;work on &lt;a href=&quot;http://fsf.org/&quot; rel=&quot;nofollow&quot;&gt;free software&lt;/a&gt; projects&lt;/strong&gt; that will build up your skills &lt;em&gt;and&lt;/em&gt; give you a track record to use when it's finally time to apply for a job in your newly-acquired area of competence.&lt;/p&gt;&#xA;" OwnerUserId="23421" LastActivityDate="2010-12-22T17:34:01.530" CommunityOwnedDate="2010-03-21T09:17:15.563" />
  <row Id="29226" PostTypeId="2" ParentId="28667" CreationDate="2010-12-22T17:35:09.207" Score="1" ViewCount="" Body="&lt;p&gt;Visible side-effects in unexpected places.&lt;br&gt;&#xA;In .Net, examples would be &lt;code&gt;ToString()&lt;/code&gt;, &lt;code&gt;Equals()&lt;/code&gt; / &lt;code&gt;GetHashCode()&lt;/code&gt;, property getters, and implicit conversions.&lt;br&gt;&#xA;(To be clear, I'm talking about something more than lazy instantiation or logging code)&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;throw new Exception(ex.Message);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/2999298/difference-between-throw-and-throw-new-exception/2999314#2999314&quot;&gt;&lt;em&gt;Explanation&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11358" LastEditorUserId="11358" LastEditorDisplayName="" LastEditDate="2010-12-22T17:42:43.943" LastActivityDate="2010-12-22T17:42:43.943" CommunityOwnedDate="2010-12-22T17:35:09.207" />
  <row Id="29227" PostTypeId="2" ParentId="1262" CreationDate="2010-12-22T17:36:16.787" Score="0" ViewCount="" Body="&lt;p&gt;Did you know that there is a &lt;a href=&quot;http://www.viplugin.com/&quot; rel=&quot;nofollow&quot;&gt;vi plugin for eclipse&lt;/a&gt;? It costs 15 euro (20ish US$) but it is &lt;strong&gt;so&lt;/strong&gt; worth. No more &lt;code&gt;dd&lt;/code&gt; in the middle of a document, and missing all the tiny useful things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps a bit off topic but I thought it was worth pointing out.  &lt;/p&gt;&#xA;" OwnerUserId="1697" LastActivityDate="2010-12-22T17:36:16.787" />
  <row Id="29228" PostTypeId="1" CreationDate="2010-12-22T17:36:41.903" Score="2" ViewCount="109" Body="&lt;p&gt;I would like to start studying Actionscript and would like to find few books about p2p and communications between flash objects on different computers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will be glad if some actionscript guru will suggest some. ;)&lt;/p&gt;&#xA;" OwnerUserId="11359" LastActivityDate="2010-12-31T05:28:57.193" Title="Good books for Actionscript 3.0" Tags="&lt;actionscript&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="2" />
  <row Id="29229" PostTypeId="2" ParentId="29177" CreationDate="2010-12-22T17:37:02.607" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;The programmer should know and use the core libraries and platform used.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Specially when the programmer comes from other platform/language. Is terrible to find the programmer struggling for something the core library provide or to misuse the platform advantage due to ignorance.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;The programmer should create self documenting code&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It's very important to have the code documented for other to use, but when it comes to maintainability, self documenting code may literally save hours and hours of frustration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance compare: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// validates if is leap year&#xA;if(  year % 4 == 0 &amp;amp;&amp;amp; (year % 100 != 0 || year % 400 == 0) ) { &#xA;     doSomethingWithFebruary();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;to &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if( isLeapYear( year ) ) { &#xA;    doSomethingWithFebruary();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="82" LastEditorUserId="82" LastEditorDisplayName="" LastEditDate="2010-12-22T19:04:55.027" LastActivityDate="2010-12-22T19:04:55.027" />
  <row Id="29230" PostTypeId="2" ParentId="6755" CreationDate="2010-12-22T17:44:36.703" Score="0" ViewCount="" Body="&lt;p&gt;Since I switched to C# from VB6, I haven't had a single instance where I have needed to use a &lt;code&gt;goto&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In VB6, I only ever used Goto for error handling (On Error Goto).&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-22T17:44:36.703" />
  <row Id="29231" PostTypeId="2" ParentId="29109" CreationDate="2010-12-22T17:48:07.623" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're looking for executable efficiency, you're down to C or C++, so I'll focus on that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even before templates were common, I preferred using C++ over C for the kinds of executables you discuss as early as the mid 90s for two very simple reasons: &lt;a href=&quot;http://en.wikipedia.org/wiki/C%2B%2B#Polymorphism&quot; rel=&quot;nofollow&quot;&gt;object polymorphism&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization&quot; rel=&quot;nofollow&quot;&gt;RAII&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've used polymorphic C++ objects for all kinds of interesting things. For instance, I was working on an embedded Linux system with frame buffer overlays on OMAP and XScale ARM CPUs. The two hardware architectures have different overlay features with very different APIs. I used a common virtual &quot;Overlay&quot; base class to expose an idealized view of overlays, and then wrote &quot;OmapOverlay&quot; and &quot;XScaleOverlay&quot; classes which were instantiated appropriately at runtime, depending on which architecture the code detected it was running on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To oversimplify, RAII is the idea that you allocate resources connected to an object during the object's constructor, or maybe later on in the object's lifetime, and the resources get deallocated or released in the object's destructor. That's really nice in C++, because objects which are automatic variables are destructed when they go out of scope. For someone who's equally competent in C and C++, it's far easier to avoid resource and memory leaks in C++. You also don't see much C++ code with the very common C meme of a label at the end of a function preceding a bunch of calls to free(), and various goto's in the function block jumping there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm fully aware that you can do all these things with C - it's just a lot more work, way more lines of code, and what you wind up with is a lot uglier and often harder to understand. There's polymorphism code all through the X server internals, and man, is it fugly and weird and frequently hard to trace through.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also do a lot of work with GNOME technologies like GTK+ and Clutter, all of which are written in C using the GObject system. GObject is like the C++ object system with the nice cover taken off and all the ugly internals exposed, and it usually requires a half-dozen lines of code to do what a one-line C++ method call would do. I'm currently writing some ClutterActors, and while the math is really interesting, I'm constantly thinking, &quot;This would all be so much more succinct and comprehensible in C++&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also often think, &quot;You know, if I were writing this in C++ instead of C, I'd be out in the living room watching Mythbusters with my wife instead of sitting in my office at 9 PM.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-22T17:48:07.623" CommentCount="1" />
  <row Id="29232" PostTypeId="2" ParentId="29202" CreationDate="2010-12-22T17:50:58.070" Score="4" ViewCount="" Body="&lt;p&gt;To find a mentor, don't look for a mentor.  Try to improve yourself in specific ways.  If you work hard enough at getting better, you will both find that you come in contact with like-minded folks, and find that you have something in common with those people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Users groups are the likely place to find a mentor, but no one wants to help someone that is there thinking &quot;I'm looking for a mentor.&quot;  But if you are there thinking: &quot;I'd love it if someone could help me learn to write good JavaScript unit tests,&quot; or &quot;I'd love to pair with someone and test-drive a kata in Clojure,&quot; sooner or later you will find someone that shares your interests and is a little farther along.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-12-22T17:50:58.070" />
  <row Id="29233" PostTypeId="2" ParentId="29212" CreationDate="2010-12-22T17:53:39.720" Score="43" ViewCount="" Body="&lt;p&gt;Personally, I must work in small chunks because I am not smart enough to keep hours worth of coding in my biological L1 cache. Because of my limited capabilities, I write small, cohesive methods and design objects to have very loose coupling. More powerful tools and languages make it easier to code longer without building, but there is still a limit for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My preference is to write a small piece, verify that it works as I expect. Then, in theory, I am free to forget about the details of that piece and treat it as a black box as much possible.&lt;/p&gt;&#xA;" OwnerUserId="1965" LastActivityDate="2010-12-22T17:53:39.720" CommentCount="4" />
  <row Id="29234" PostTypeId="1" CreationDate="2010-12-22T18:01:27.157" Score="6" ViewCount="358" Body="&lt;p&gt;There's been a lot of enthusiasm about JRuby, Jython, Groovy, and now Scala and Clojure as the language to be the successor to Java on the JVM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But currently only Groovy and Scala are in the TIOBE top 100, and none are in the top 50.  Is there any reason to think that any of this bunch will ever gain significant adoption?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is not primarily about TIOBE, but about any evidence that you might see that could indicate that one of these languages could get significant backing that goes beyond the enthusiasts.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-12-22T18:46:47.053" LastActivityDate="2011-03-18T05:10:53.123" Title="Is there any evidence that one of the current alternate JVM languages might catch on?" Tags="&lt;programming-languages&gt;&lt;jvm&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="1" />
  <row Id="29235" PostTypeId="2" ParentId="29177" CreationDate="2010-12-22T18:05:31.633" Score="10" ViewCount="" Body="&lt;p&gt;A programmer has the responsibility to respect the system his program will be running on.  After development and testing is finished, the program will be deployed to be used for its intended purpose, and that usually involves other people running it on their computers.  The programmer needs to keep this in mind: his program is running on &lt;strong&gt;someone else's property&lt;/strong&gt;, not their own, and needs to behave itself as a guest in their home instead of barging in like it owns the place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, his program should not:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;change global settings without the user's consent. (Including &lt;a href=&quot;http://en.wikipedia.org/wiki/DLL_hell&quot; rel=&quot;nofollow&quot;&gt;shared library management issues&lt;/a&gt;.)&lt;/li&gt;&#xA;&lt;li&gt;delete or modify data that belongs to the user or to another program without the user's consent.&lt;/li&gt;&#xA;&lt;li&gt;update itself without the user's consent.&lt;/li&gt;&#xA;&lt;li&gt;make itself difficult to uninstall.&lt;/li&gt;&#xA;&lt;li&gt;make itself difficult to shut down.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/4587/what-ethical-problems-realistically-arise-in-programming/4591#4591&quot;&gt;disable itself or interfere in any way with proper functioning of the computer if the program is unable to pass some fallible license check&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;assume that it is the only significant program running on the system and hog system resources accordingly. (Exceptions can be made for actual single-tasking machines, of course, or for programs that the user could be reasonably expected to run alone, such as heavy fullscreen games.)&lt;/li&gt;&#xA;&lt;li&gt;jump out in front of the user with a popup window while the user is doing other things in other programs.  (I'm looking at you, Yahoo Messenger!)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="935" LastEditorUserId="935" LastEditorDisplayName="" LastEditDate="2010-12-22T18:14:27.400" LastActivityDate="2010-12-22T18:14:27.400" CommentCount="7" />
  <row Id="29236" PostTypeId="2" ParentId="29212" CreationDate="2010-12-22T18:08:24.763" Score="1" ViewCount="" Body="&lt;p&gt;How often I run and test code depends on what language I'm working with at the time. If I'm coding a stored procedure, I'll usually wait until everything's there. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if I'm coding in Lisp, I'll try each function after I type it in. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I'm coding in Haskell, I'll typically do a compile after each function to catch any type errors, and run the code after everything's done.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-22T18:08:24.763" />
  <row Id="29237" PostTypeId="2" ParentId="29170" CreationDate="2010-12-22T18:15:23.670" Score="2" ViewCount="" Body="&lt;p&gt;I try to write &quot;clean code&quot; in the Bob Martin sense (e.g. OO design). There is &lt;strong&gt;great&lt;/strong&gt; value in writing clean code. It is much more maintainable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I let ReSharper make it &quot;pretty code&quot; for me. (e.g. alignment, line breaks, etc) There is &lt;strong&gt;good&lt;/strong&gt; value in writing pretty code. But there are diminishing returns. Some prettification makes it a bit more maintainable due to ease of reading.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you feel that neatly lining up huge blocks of code is necessary to make it readable, then the problem is your freakin huge block of code! It's too big. I see many examples of people taking great pains to prettify some very poorly designed code. It's like putting sprinkles on a dog turd.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I didn't have ReSharper, I would still have clean code, but it wouldn't be quite as pretty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think I should spend more than ~5% of my coding time in prettifying. Which means the more powerful my editor and the more proficient I am with it, the more prettification I can do.&lt;/p&gt;&#xA;" OwnerUserId="1965" LastActivityDate="2010-12-22T18:15:23.670" />
  <row Id="29238" PostTypeId="2" ParentId="29234" CreationDate="2010-12-22T18:15:49.063" Score="4" ViewCount="" Body="&lt;p&gt;I can remember when Perl, Python and Ruby didn't have any significant backing beyond the enthusiasts, and I'm not sure anyone could have predicted their success. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, good things tend to happen once you get enough enthusiasts. Libraries get written and polished, and so does documentation. Over time, the language becomes &quot;batteries included&quot; because the army of enthusiasts codes up everything they happen to need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only time will tell if what happened with Perl, Python and Ruby will happen to the JVM languages. The ability to predict such a thing would probably be better applied to the stock market. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-22T18:15:49.063" CommentCount="1" />
  <row Id="29239" PostTypeId="2" ParentId="29212" CreationDate="2010-12-22T18:17:11.403" Score="14" ViewCount="" Body="&lt;p&gt;I like to write my test &lt;em&gt;before&lt;/em&gt; I write my implementation code.  I like this for three reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Writing my test code before hand helps me think through how my code should be used.  It helps me think of edge cases that I didn't think of when I was originally designing my program.&lt;/li&gt;&#xA;&lt;li&gt;I know I am finished writing implementation code when all of my test cases pass.&lt;/li&gt;&#xA;&lt;li&gt;Getting into the habit of writing tests before code also has the added effect of being able to prove that your code has not added any new bugs (assuming you've written good test cases).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="11364" LastEditorUserId="11364" LastEditorDisplayName="" LastEditDate="2010-12-22T18:42:38.010" LastActivityDate="2010-12-22T18:42:38.010" CommentCount="8" />
  <row Id="29240" PostTypeId="2" ParentId="29202" CreationDate="2010-12-22T18:23:17.340" Score="0" ViewCount="" Body="&lt;p&gt;If you work in a company setting you could look for a mentor there. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for an open source project, I doubt you will find a mentor for a project you create, but you might find one at a project they created.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't forget that they mentor needs to get something from this arrangement also. They are spending their valuable time helping you. Be prepared to do some work for them in exchange.&lt;/p&gt;&#xA;" OwnerUserId="11043" LastActivityDate="2010-12-22T18:23:17.340" />
  <row Id="29241" PostTypeId="2" ParentId="29234" CreationDate="2010-12-22T18:26:52.690" Score="5" ViewCount="" Body="&lt;p&gt;Arguably, the TIOBE index isn’t a good criterion. Also, arguably some languages have already caught on. Scala and Clojure in particular seem to stick out (at least on Stack Overlflow).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I actually expect Scala to gain quite a bit on Java in the next few years. Remember, it takes many years for languages to really gain traction and most of these alternative languages haven’t been around for that long.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java also has gained a few image problems in the past few months (and admittedly this may be short-lived) due to Oracle’s changes in Java politics. This is a big chance for alternative languages to distinguish themselves as worthy alternatives.&lt;/p&gt;&#xA;" OwnerUserId="2366" LastActivityDate="2010-12-22T18:26:52.690" />
  <row Id="29242" PostTypeId="2" ParentId="29170" CreationDate="2010-12-22T18:31:01.260" Score="2" ViewCount="" Body="&lt;p&gt;Just avoid &quot;vanity code&quot;. There are plenty of developers out there that do things purely out of vanity (or due to an OCD) and nothing else. My panties really get twisted with those people.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-12-22T18:31:01.260" CommentCount="1" />
  <row Id="29243" PostTypeId="2" ParentId="29234" CreationDate="2010-12-22T18:34:07.550" Score="0" ViewCount="" Body="&lt;p&gt;I've been using Groovy for more than a year now, and it definitely has it's place. But it's not at all a replacement for Java, but a complement. It's a dynamic scripting language that shares some of its syntax with Java, but only on the surface. You get duck typing and similar features of dynamic languages, but on the other hand, you lose most of the compile time checks Java offers. It's also significantely slower.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-22T18:34:07.550" />
  <row Id="29244" PostTypeId="1" CreationDate="2010-12-22T18:36:14.863" Score="0" ViewCount="283" Body="&lt;p&gt;I am buying a Nokia 5230, and wanted to know if there existed any text editors with syntax highlighting features for it? The more customizable, the better, as I program in many different languages, some of which are not even known to the public.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just to clarify, this is for writing code &lt;em&gt;on the phone&lt;/em&gt;, not writing code &lt;em&gt;for&lt;/em&gt; the platform. Basically I want to be able to jot down code ideas, do some scripting etc. on the go. Things that you can do on a bus, and don't need to do in isolation at home/your office.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So basically, what I'm after is a text editor that allows me to do that easily on my Nokia 5230. The phone runs Symbian s60v5, by the way. Also, if you know of other on-phone development tools that are worth getting, please let me know.&lt;/p&gt;&#xA;" OwnerUserId="11363" LastActivityDate="2011-01-23T22:57:34.667" Title="Good text editor w/syntax highlighting for symbian phones?" Tags="&lt;text-editor&gt;&lt;mobile&gt;&lt;development&gt;&lt;symbian&gt;&lt;syntax-highlight&gt;" AnswerCount="2" />
  <row Id="29245" PostTypeId="2" ParentId="24605" CreationDate="2010-12-22T18:45:51.817" Score="2" ViewCount="" Body="&lt;p&gt;Piston is ideal for this -&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://piston.rubyforge.org/&quot; rel=&quot;nofollow&quot;&gt;http://piston.rubyforge.org/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It stores the external code in the SVN respository, can easily show differences between your code and the vendor branch, and handles updating as well.&lt;/p&gt;&#xA;" OwnerUserId="11372" LastActivityDate="2010-12-22T18:45:51.817" CommentCount="1" />
  <row Id="29246" PostTypeId="2" ParentId="22541" CreationDate="2010-12-22T18:50:03.067" Score="1" ViewCount="" Body="&lt;p&gt;Read about Rust and Clay experimental languages.&lt;/p&gt;&#xA;" OwnerUserId="11345" LastActivityDate="2010-12-22T18:50:03.067" />
  <row Id="29247" PostTypeId="2" ParentId="29244" CreationDate="2010-12-22T18:50:32.457" Score="2" ViewCount="" Body="&lt;h1&gt;None&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;You're acting under the impression that editing on a phone is worth doing. &lt;strong&gt;It's not&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have tried, multiple times, to find a decent text editor for iOS / Android. I haven't found it. Nothing reviews well either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Main points are clumsy UI, the very small space you have available (especially when you clutter it with a keyboard), poor processing speeds, and horrific file managing. It's a completely different experience from a dedicated keyboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now if you could link (Bluetooth?) a keyboard to it then I believe some of these applications could make headway. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-22T18:50:32.457" CommentCount="7" />
  <row Id="29248" PostTypeId="2" ParentId="28294" CreationDate="2010-12-22T18:50:35.570" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Why Sockets?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you leave the realm of HTTP, you're going to start to run into a host of connectivity issues around NATs, HTTP Proxies, etc.  You should be able to get the performance you need out of a persistent HTTP connection to the server so this is less a question of 'can I get sockets' and more of 'can I get better HTTP performance' imho.  There's a well known problem with Silverlight 4 that the HTTP performance is below par.  They are looking at &lt;a href=&quot;http://www.microsoft.com/silverlight/future/&quot; rel=&quot;nofollow&quot;&gt;improving this in Silverlight 5&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've not attempted to write a low latency Silverlight game using a persistent HTTP connection, so it may be that the programming model prevents this.  The concept is to create a Client HTTP Request and then get both the RequestStream and ResponseStream.  Keep both of them open and send your messages up &amp;amp; down without closing the streams.  You'll need to do your own parsing of messages and have a framing format that describes when one message ends and another starts.  We've had framing protocols around for a long time, a good example of one is the &lt;a href=&quot;http://www.tcpipguide.com/free/t_SerialLineInternetProtocolSLIP-2.htm&quot; rel=&quot;nofollow&quot;&gt;SLIP protocol&lt;/a&gt; (Serial Line TCP/IP, used to send TCP/IP traffic over serial lines / modems in the days before DSL/Cable Modems).  Using this approach, the overhead compared to a basic TCP connection is practically nothing because you're not sending a HTTP header per message so you're getting the performance of a TCP socket.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd love to know if you try this approach whether it works out for you.  Unfortunately, I don't have enough free time to prototype it out right now.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-12-22T18:50:35.570" CommentCount="1" />
  <row Id="29249" PostTypeId="2" ParentId="27564" CreationDate="2010-12-22T18:53:12.550" Score="0" ViewCount="" Body="&lt;p&gt;Add Exceptions instead of producing E_WARNING... It's very annoying that I can't use something such as:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;try{&#xA;   $f = fopen('asd', 'r');&#xA;   flock($f, LOCK_SH);&#xA;&#xA;   while(!feof($f)){&#xA;       echo fread($f, 512);&#xA;   }&#xA;&#xA;   fclose($f);&#xA;&#xA;}catch(IOException $ex){&#xA;   echo 'Oops, something wrong: '.$ex-&amp;gt;getCode();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Of course, currently is not much practical but it's very annoying to receive:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;WARNING&lt;/p&gt;&#xA;&#xA;&lt;p&gt;WARNING&lt;/p&gt;&#xA;&#xA;&lt;p&gt;WARNING&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and I can't control the flow of code without writing my own error_handler and string sniffing which error has been produced (permission, incorrect filename or anything else; I don't mind about other sources of errors here) in order to throw correct exception.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope I haven't to explain why it's important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP became Object-Oriented an amount time ago and we, programmers who use PHP, are looking forward for OO features, not introducing &quot;goto&quot;... When I found out it really happend, I thought it was an April Fool's day.&lt;/p&gt;&#xA;" OwnerUserId="11370" LastActivityDate="2010-12-22T18:53:12.550" CommunityOwnedDate="2010-12-22T18:53:12.550" CommentCount="1" />
  <row Id="29250" PostTypeId="2" ParentId="29191" CreationDate="2010-12-22T18:57:45.460" Score="2" ViewCount="" Body="&lt;p&gt;Probably the best list I've ever found is from Joel Spolsky.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;The Joel Test&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11351" LastActivityDate="2010-12-22T18:57:45.460" CommentCount="1" />
  <row Id="29251" PostTypeId="2" ParentId="29202" CreationDate="2010-12-22T19:03:37.913" Score="3" ViewCount="" Body="&lt;p&gt;The types of people who make really good mentors usually have a dozen or so juniors yapping for their time at any given moment.  So, &quot;finding&quot; the right mentor is just the beginning, you also have to make mentoring you more attractive/rewarding than mentoring somebody else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, step one is to join communities where you are likely to meet good mentors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Step two is to become a worthwhile mentee.  Some things that I, personally, look for in a mentee are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Intelligence near, equal to, or greater than my own.&lt;/li&gt;&#xA;&lt;li&gt;Interest in the things I have to offer and enjoy teaching.&lt;/li&gt;&#xA;&lt;li&gt;Compatibility of personality (i.e. we get along well, enjoy talking to one another).&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Willingness to be valuable to the project/community I'm mentoring him/her in, by:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Writing Code&lt;/li&gt;&#xA;&lt;li&gt;Writing Documentation&lt;/li&gt;&#xA;&lt;li&gt;Doing scut work like issue queue triage, cleaning up comments, etc.&lt;/li&gt;&#xA;&lt;li&gt;Helping out less experienced contributors&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Compatibility with my usual workflow.&lt;/li&gt;&#xA;&lt;li&gt;Ability to teach &lt;em&gt;me&lt;/em&gt; things.  Being more experienced than someone doesn't preclude learning from them.  The best mentee has a knack for asking the right questions, or a fresh viewpoint, or some experience from outside my areas of knowledge from which I can learn.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-22T19:03:37.913" />
  <row Id="29252" PostTypeId="2" ParentId="29177" CreationDate="2010-12-22T19:07:13.343" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Don't make the user lose their work.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is harder than it sounds... work is more than just &quot;data in a file&quot;... it's any time that the user has spent with your software.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, if the user filled out your 30-field form with 29 valid items and 1 invalid one, don't clear all his valid data to complain about the 1 invalid one (heck, don't even clear the invalid one... maybe it's long and just requires a minor correction, or the user won't remember what it was before if you clear it)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A non-obvious but important example is what Windows and practically every other &quot;file manager&quot; software gets wrong.... if I spent a half hour carefully Ctrl-Click'ing to select a set of files and I accidentally do Click instead of Ctrl-Click, it should not clear all my previously selected files, making me start over.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another one that they got wrong... if I accidentally hit Ctrl-A (instead of Ctrl-S right next door), it should not lose my place in the file and put the cursor at the beginning.... I call finding the right place in the file &quot;work&quot; which the program has &quot;lost&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yet another: TortoiseSVN's &quot;commit&quot; dialog has a long list of files.  Before hitting &quot;Commit&quot;, you can go down the list of files, double-clicking on each one to see its changes in a 2nd dialog.  To do this quickly I sometimes use the keyboard only, hitting &lt;code&gt;&amp;lt;Esc&amp;gt;&lt;/code&gt; to close the 2nd dialog and go back to the 1st.  If I accidentally hit &lt;code&gt;&amp;lt;Esc&amp;gt;&lt;/code&gt;&#xA;twice, it also closes the 1st dialog, which results in me forgetting which file I was up to.&lt;/p&gt;&#xA;" OwnerUserId="4526" LastEditorUserId="4526" LastEditorDisplayName="" LastEditDate="2010-12-24T13:32:22.440" LastActivityDate="2010-12-24T13:32:22.440" CommentCount="6" />
  <row Id="29253" PostTypeId="2" ParentId="29212" CreationDate="2010-12-22T19:20:38.930" Score="0" ViewCount="" Body="&lt;p&gt;For me ;-&lt;br&gt;&#xA;Short timeline (not much time to think)- write code, compile, test. debug&lt;br&gt;&#xA;Sufficient time - while(done) {write small code, compile}, test, debug   &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-22T19:20:38.930" CommentCount="2" />
  <row Id="29254" PostTypeId="2" ParentId="29109" CreationDate="2010-12-22T19:24:12.657" Score="20" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization&quot; rel=&quot;nofollow&quot;&gt;RAII&lt;/a&gt; for teh win baby.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously deterministic destruction in C++ makes code much clearer and safer with no overhead whatsoever.&lt;/p&gt;&#xA;" OwnerUserId="2898" LastActivityDate="2010-12-22T19:24:12.657" />
  <row Id="29255" PostTypeId="2" ParentId="29177" CreationDate="2010-12-22T19:27:29.353" Score="2" ViewCount="" Body="&lt;p&gt;Programming is a profession, not a skill.  This means that a programmer has the responsibility to stay current in his field on the latest tools, techniques, and technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This may mean pushing back to managers to give time to allow for continuous learning and training, or doing it on your own time.&lt;/p&gt;&#xA;" OwnerUserId="11376" LastActivityDate="2010-12-22T19:27:29.353" />
  <row Id="29257" PostTypeId="2" ParentId="22541" CreationDate="2010-12-22T19:31:22.157" Score="-4" ViewCount="" Body="&lt;p&gt;In my view, the nearest alternative to C++ is probably Ada. The Ada 95 revision introduced object-oriented features, which work a lot like a class, but are spelled slightly different. The tag in a tagged type does the job of a virtual pointer (maybe the same thing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ada generics aren't as powerful as C++ templates, but they also aren't bloat-prone. I increasingly believe that the right way to do &quot;metaprogramming&quot; beyond what an Ada-style generic can support is to write a domain-specific language that generates the code for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Importantly, Ada, like C++, doesn't do garbage collection. The problem is (as far as I remember) it doesn't have RAII through timely destructors either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, it's important to have a non-garbage-collected system programming language option. I don't believe that garbage collection is worse in general, but I &lt;em&gt;do&lt;/em&gt; believe that garbage-collected and C++-style RAII are mutually incompatible approaches that each have their own advantages and disadvantages. &lt;code&gt;with&lt;/code&gt; blocks aren't a magic fix for RAII in garbage collected languages because the &lt;code&gt;with&lt;/code&gt; block must be applied manually every time - it isn't automated in the way that a C++ destructor is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what I hope for is a language that has been cleaned up relative to C++, doesn't support templates (which is metaprogramming done in a functional/declarative way that is completely different to the rest of C++), but will have generics. It may have a less brace-y and more Wirth-y syntax, though these days that seems unlikely. It will preserve is C++-style RAII, and it will not do garbage collection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since at least one down-voter left a comment, I now at least have something to base a defence on. So...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this answer, I compared and contrasted C++ with Ada. I did not at any point claim that Ada was a replacement for C++. The point of the comparison was &lt;em&gt;only&lt;/em&gt; that Ada and C++ are languages that cover a lot of similar semantic ground, so it's worth considering what each gets right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some real problems with C family syntax, particularly in C++. Context sensitivity in the grammar is a real problem. One effect of this issue - tools are much harder to write for C++ than for the relatively-cleaned-up C# and Java, and tools even for those are harder to write than for something in the Pascal family.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note - this is in no way related to whether you use braces or begin/end. That is a total irrelevance in language design terms. Part of my final paragraph was intended as a joke, but I guess that people don't get it. However, there is a common joke about languages being automatically popular if they use braces - I'm pretty sure I've seen it told relative to ML and Lisp as well as, of course, Delphi. In Delphi, IIRC, it's a bit of a sore point since the main original designers of Delphi deserted for Microsoft and the bracey language C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think the &quot;Phosphorus - a popular Lisp&quot; joke repeats the braces thing, but it's a fun read too - and the base-your-parentheses-on-XML bit is genius.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you think C is a beautiful language, OK. Of course back in the days of the Pascal vs. C jihad, both sides knew absolutely beyond doubt that the other language was ugly. The few remaining Delphi users will still tell you that Pascal (or at least Object Pascal) is much more beautiful than C-family languages. Modula 2 is much cleaner than Pascal, but C++ compared with C is ugly as sin. That was one of the reasons Java was developed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One source of ugliness is the Simula-hacked-into-C thing. C++ is an early experiment that's still here. Other languages have learned from the C++ example of how to build Simula-like features into a C family language, and have done better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another source of ugliness is templates - a compile-time sublanguage with a broken functional paradigm that's a complete mismatch for the rest of the language. It wouldn't be quite so bad if Stroustrup had got Concepts into C++0x, but at the very least we'll have to wait longer for that - and it won't fix the basic paradigm-mismatch issue anyway. There's not many languages that force you to write the same basic algorithm in two completely different ways, depending on whether you want them evaluated at compile-time or at run-time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's further ugliness in the context-sensitivity of the language. In C, that isn't so bad - a matter of personal preference - but C++ is a much more complex language where that context sensitivity causes more issues. This is one area where Pascal family languages do far better than C family languages - the grammars are context-free. My answer to another question is vaguely relevant here...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/1712274/why-do-a-lot-of-programming-languages-put-the-type-after-the-variable-name/1712497#1712497&quot;&gt;http://stackoverflow.com/questions/1712274/why-do-a-lot-of-programming-languages-put-the-type-after-the-variable-name/1712497#1712497&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the assumption that my &quot;don't do garbage collection&quot; is a cause of downvotes, there are plenty of good quality garbage collected languages already. That's a good thing, but there's no need for yet another garbage collected language. Non-GC languages are neglected these days, though, and there's still a place for them. IMO, the sad thing is that there's few if any languages that adopt the best of C++, tidying up the worst, without switching over to garbage collection.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastEditorUserId="8709" LastEditorDisplayName="" LastEditDate="2011-02-28T04:17:39.383" LastActivityDate="2011-02-28T04:17:39.383" CommentCount="7" />
  <row Id="29258" PostTypeId="2" ParentId="29177" CreationDate="2010-12-22T19:33:53.700" Score="2" ViewCount="" Body="&lt;p&gt;Here is my proposal.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;A programmer should require the working conditions exposed in the Programmer's Bill of right, in order not to lower the standards for the position.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;(For &quot;programmer&quot; I mean &quot;programmer&quot;, not &quot;weekend hacker&quot;, so all the standard thing a programmer should do are implied.)&lt;/p&gt;&#xA;" OwnerUserId="11146" LastActivityDate="2010-12-22T19:33:53.700" />
  <row Id="29259" PostTypeId="2" ParentId="20927" CreationDate="2010-12-22T19:34:42.903" Score="2" ViewCount="" Body="&lt;p&gt;If I were to interview a software developer, I'd ask him to design a software and describe hardware requirements to remove duplicate entries from an arbitrarily large file containing a full name on each line. I leave some parts of the problem description ambigous purposefully. Then I challenge him to see if he understands analysing and clarifying requirements, different trade-offs, data structures and algorithms, I/O (secondary storage), software and hardware technologies, scalability, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it is a small yet challenging problem, revealing applicant's knowledge and abilities in many computing areas.&lt;/p&gt;&#xA;" OwnerUserId="11345" LastActivityDate="2010-12-22T19:34:42.903" CommunityOwnedDate="2011-02-15T14:41:29.790" />
  <row Id="29260" PostTypeId="2" ParentId="29177" CreationDate="2010-12-22T19:35:41.043" Score="6" ViewCount="" Body="&lt;p&gt;From the &lt;a href=&quot;http://manifesto.softwarecraftsmanship.org/&quot; rel=&quot;nofollow&quot;&gt;Manifesto for Software Craftsman&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;blockquote&gt;&#xA;    &lt;p&gt;As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work we have come to value:&lt;/p&gt;&#xA;    &#xA;    &lt;ul&gt;&#xA;    &lt;li&gt;&lt;p&gt;Not only working software, but also well-crafted software&lt;/p&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;p&gt;Not only responding to change, but also steadily adding value&lt;/p&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;p&gt;Not only individuals and interactions, but also a community of professionals&lt;/p&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;p&gt;Not only customer collaboration, but also productive partnerships&lt;/p&gt;&lt;/li&gt;&#xA;    &lt;/ul&gt;&#xA;    &#xA;    &lt;p&gt;That is, in pursuit of the items on the left we have found the items on the right to be indispensable.&lt;/p&gt;&#xA;  &lt;/blockquote&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-12-22T19:35:41.043" />
  <row Id="29261" PostTypeId="2" ParentId="29132" CreationDate="2010-12-22T19:41:44.840" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;ROI can be a gamble.  Around half the entire revenue of the App store goes to the top 1% in Paid app popularity, and around half of all Paid apps don't sell at on any particular day.  Over 80% of Paid iOS apps are said to make less than $10 (USD) per day.   Assume you can produce an app that climbs into the top 10% for a year or two, how much would you invest for a return of $10 to $100 per day?  How much under the PV (present value) of that cash flow would you want to target expenses for the risks involved?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Marketing.  You left out marketing costs.  Marketing costs (and time investment) can have a larger effect on ROI than development costs.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="9742" LastActivityDate="2010-12-22T19:41:44.840" />
  <row Id="29262" PostTypeId="2" ParentId="27252" CreationDate="2010-12-22T19:42:43.517" Score="0" ViewCount="" Body="&lt;p&gt;Why not simply add a classification column to the table?  Something like &quot;errorType:ReallyBadError&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you 'map' to the errorType, and 'reduce' with, for example, a 'Sum' function.&lt;/p&gt;&#xA;" OwnerUserId="11376" LastActivityDate="2010-12-22T19:42:43.517" CommentCount="1" />
  <row Id="29263" PostTypeId="2" ParentId="29170" CreationDate="2010-12-22T19:46:58.830" Score="2" ViewCount="" Body="&lt;p&gt;I think &quot;clean code&quot; should be as clean or cleaner than how you used to write on your physics/engineering/math exams. If it's too messy, the grader won't understand your work and will probably mark it wrong even if it's right. &lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-22T19:46:58.830" />
  <row Id="29264" PostTypeId="2" ParentId="29177" CreationDate="2010-12-22T19:48:50.530" Score="4" ViewCount="" Body="&lt;p&gt;Have a look in the mirror and possibly recognize the &lt;a href=&quot;http://developerart.com/publications/17/worst-qualities-of-a-programmer&quot; rel=&quot;nofollow&quot;&gt;Worst qualities of a programmer&lt;/a&gt; in himself. Then work on eliminating them each day.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Not learning anything new&lt;/li&gt;&#xA;&lt;li&gt;Not seeking to extend your skills&lt;/li&gt;&#xA;&lt;li&gt;Not being open for new, sticking to old habits&lt;/li&gt;&#xA;&lt;li&gt;Not caring about the quality of your work&lt;/li&gt;&#xA;&lt;li&gt;Not seeking to improve the quality of your work&lt;/li&gt;&#xA;&lt;li&gt;Being a 9-to-5 worker with no passion&lt;/li&gt;&#xA;&lt;li&gt;Not having own opinion of the things&lt;/li&gt;&#xA;&lt;li&gt;Accepting others' opinion without questioning&lt;/li&gt;&#xA;&lt;li&gt;Believing you've learnt it all&lt;/li&gt;&#xA;&lt;li&gt;Not tolerating any criticism&lt;/li&gt;&#xA;&lt;li&gt;Not listening to external input&lt;/li&gt;&#xA;&lt;li&gt;Being ego-centric, know-it-all individual&lt;/li&gt;&#xA;&lt;li&gt;Having a negative personality and criticizing other people&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-22T19:56:49.270" LastActivityDate="2010-12-22T19:56:49.270" CommentCount="1" />
  <row Id="29265" PostTypeId="2" ParentId="20581" CreationDate="2010-12-22T20:03:56.083" Score="0" ViewCount="" Body="&lt;p&gt;For &quot;fun&quot; I'd say pick a language that forces you to think differently.  For example, in school the programming language taught was C++.  However, a required functional programming course was taught in Scheme.  I did not care for Scheme itself, but I did gain a great understanding about recursion afterwards.  It also helped me learn to think in a programming language-agnostic way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Python offers a functional approach to programming as well as procedural.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For what it's worth, I'd say that programming is less about knowing an API and more about being able to understand a problem and different ways of solving it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you tried the &lt;a href=&quot;http://codekata.pragprog.com/&quot; rel=&quot;nofollow&quot;&gt;Code Katas&lt;/a&gt;?  They are a fun challenge!&lt;/p&gt;&#xA;" OwnerUserId="11364" LastActivityDate="2010-12-22T20:03:56.083" />
  <row Id="29266" PostTypeId="2" ParentId="29204" CreationDate="2010-12-22T20:08:20.130" Score="6" ViewCount="" Body="&lt;p&gt;I'll add IOC (&lt;a href=&quot;http://martinfowler.com/bliki/InversionOfControl.html&quot; rel=&quot;nofollow&quot;&gt;Inversion of Control&lt;/a&gt;), &lt;a href=&quot;http://c2.com/cgi/wiki?DeclarativeProgramming&quot; rel=&quot;nofollow&quot;&gt;Declarative&lt;/a&gt;-style (like LINQ), and &lt;a href=&quot;http://en.wikipedia.org/wiki/Fluent_interface&quot; rel=&quot;nofollow&quot;&gt;Fluent&lt;/a&gt; programming style.&lt;/p&gt;&#xA;" OwnerUserId="11376" LastEditorUserId="11376" LastEditorDisplayName="" LastEditDate="2010-12-22T20:16:22.663" LastActivityDate="2010-12-22T20:16:22.663" CommentCount="1" />
  <row Id="29267" PostTypeId="2" ParentId="29177" CreationDate="2010-12-22T20:09:04.503" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;5 precepts of the programmer's guild&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1.) check in his/her code weekly and on holidays.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2.) provide for the needs of the programming community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3.) read at least one programming book per year. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;4.) go to at least one programming conference per year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5.) own up to your mistakes.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-12-22T20:09:04.503" CommentCount="2" />
  <row Id="29268" PostTypeId="1" AcceptedAnswerId="29272" CreationDate="2010-12-22T20:14:30.077" Score="6" ViewCount="489" Body="&lt;p&gt;Quick question about TFS - &#xA;Do you guys check-in bin/debug folders into TFS? &#xA;(if so, why?)&#xA;Since the content of those folders are dynamically generated is it better to leave them out so that the programmer will not run into read-only issues?&lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2011-01-11T19:21:48.933" Title="Do you check in bin or debug folders (and dlls) into your TFS?" Tags="&lt;tfs&gt;" AnswerCount="8" CommentCount="1" />
  <row Id="29269" PostTypeId="2" ParentId="29149" CreationDate="2010-12-22T20:15:23.577" Score="1" ViewCount="" Body="&lt;p&gt;I found a glass top from a coffee table at a garage sale.  I made a couple of brackets and screwed it to the wall in my office, and that's what I use.  My office walls are a light yellow, so most markers show up pretty well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I considered building something with a piece of plywood and some white ceramic tile, but I found the piece of glass first.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-22T20:15:23.577" />
  <row Id="29270" PostTypeId="2" ParentId="29268" CreationDate="2010-12-22T20:20:36.140" Score="0" ViewCount="" Body="&lt;p&gt;I hesitate to check any non-text file into source control. Especially ones that should be generated by the developer. I also like to keep other binary files, such as images and PDFs, zipped up and stored elsewhere for each tag/release.&lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2010-12-22T20:20:36.140" />
  <row Id="29271" PostTypeId="2" ParentId="29268" CreationDate="2010-12-22T20:20:45.433" Score="2" ViewCount="" Body="&lt;p&gt;We check-in the contents of the bin directories as part of our Change Request process.  To avoid the read-only issues, we copy the contents to a separate folder and check them in from there.  Our corporate policy requires that all binaries that go to production are checked-in separately from the source.  It's not the best solution but it works and it does give us the exact files that are in production.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-22T20:20:45.433" CommentCount="2" />
  <row Id="29272" PostTypeId="2" ParentId="29268" CreationDate="2010-12-22T20:36:54.413" Score="9" ViewCount="" Body="&lt;p&gt;As a general rule, source control is best used for source only, and generated files are not source.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are exceptions.  Sometimes (using Visual Studio) you might want to keep the .pdb file for reading minidumps.  Sometimes you can't duplicate a toolchain, so that you can't necessarily recreate generated files accurately.  In these cases, you're primarily interested in doing this for released software, not for every VCS change, and in any case these can easily reside in versioned folders.  (These are typically binary files, anyway, and don't have comprehensible changes from one version to another, and don't benefit all that much from being in a VCS.)&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-22T20:36:54.413" CommentCount="2" />
  <row Id="29274" PostTypeId="2" ParentId="29149" CreationDate="2010-12-22T20:40:18.970" Score="0" ViewCount="" Body="&lt;p&gt;I have a small paper sized white board that I use constantly.  I use it for high level designs, quick calculations, unit testing, etc.  It is very useful and more environmentally friendly because I was going through a lot of paper before I had my white board.  I find the smaller desk white board is more convenient because you can bring it with you if you need to show someone something.&lt;/p&gt;&#xA;" OwnerUserId="3092" LastActivityDate="2010-12-22T20:40:18.970" />
  <row Id="29275" PostTypeId="2" ParentId="29268" CreationDate="2010-12-22T20:40:37.377" Score="0" ViewCount="" Body="&lt;p&gt;No, but our in house project control tool does automatically, which annoys the heck out of me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My solution is to mark all the files in release and debug as writable and when TFS complains I tell it to ignore the files, so I never have a problem with a build failing.&lt;/p&gt;&#xA;" OwnerUserId="5682" LastActivityDate="2010-12-22T20:40:37.377" />
  <row Id="29276" PostTypeId="2" ParentId="20581" CreationDate="2010-12-22T20:43:05.503" Score="0" ViewCount="" Body="&lt;p&gt;If you are after a job, check your local job sites. I ran a query on seek.com.au for IT jobs in Melbourne for various languages and got:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;C# - 237&#xA;Java - 820&#xA;Python - 22&#xA;Ruby - 50 (almost all required Java as well)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;My experiences with the C# market: The language is only part of it. People will ask for C# + ASP.NET + MVC + Entity framework + + +. If you don't have all of them, it can be tricky to get an interview. Sometimes it is worse, they will ask for specific versions on tools with a minimum x years experience. Sometimes it is impossible, they will ask for you to have been working with the technology longer than it has existed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am currently coding in C# and Python (two separate jobs). I prefer C#. As for environments, the limited C# freebee environment still is better than Eclipse (IMHO).&lt;/p&gt;&#xA;" OwnerUserId="10208" LastActivityDate="2010-12-22T20:43:05.503" />
  <row Id="29277" PostTypeId="2" ParentId="29268" CreationDate="2010-12-22T20:55:51.443" Score="5" ViewCount="" Body="&lt;p&gt;Simple answer? No. Don't do it! I can't think of many reasons not to, but no reason why you would want to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only time I can think you would check in a dll is if it's from a third party library that you don't expect every developer to have installed to build. But even still, that's not located in the bin folder.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said I did work at one company that required that each deploy package be put into source control, but that was so that we could track the various builds we gave to our client and could easily roll back if we had to. &lt;/p&gt;&#xA;" OwnerUserId="2305" LastActivityDate="2010-12-22T20:55:51.443" />
  <row Id="29278" PostTypeId="2" ParentId="28667" CreationDate="2010-12-22T20:56:21.770" Score="0" ViewCount="" Body="&lt;p&gt;I agree with the &lt;a href=&quot;http://www.parashift.com/c++-faq-lite/big-picture.html#faq-6.16&quot; rel=&quot;nofollow&quot;&gt;c++ FAQ&lt;/a&gt; on this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;[6.16] Will I sometimes use any so-called &quot;evil&quot; constructs?&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Of course you will!&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;One size does not fit all. Stop. Right now, take out a fine-point marker and write on the inside of your glasses: Software Development Is Decision Making. &quot;Think&quot; is not a four-letter word. There are very few &quot;never...&quot; and &quot;always...&quot; rules in software — rules that you can apply without thinking — rules that always work in all situations in all markets — one-size-fits-all rules.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;In plain English, you will have to make decisions, and the quality of your decisions will affect the business value of your software. Software development is not mostly about slavishly following rules; it is a matter of thinking and making tradeoffs and choosing. And sometimes you will have to choose between a bunch of bad options. When that happens, the best you can hope for is to choose the least bad of the alternatives, the lesser of the &quot;evils.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;You will occasionally use approaches and techniques labeled as &quot;evil.&quot; If that makes you uncomfortable, mentally change the word &quot;evil&quot; to &quot;frequently undesirable&quot; (but don't quit your day job to become an author: milquetoast terms like that put people to sleep :-)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-22T20:56:21.770" CommunityOwnedDate="2010-12-22T20:56:21.770" />
  <row Id="29279" PostTypeId="2" ParentId="29268" CreationDate="2010-12-22T20:57:42.503" Score="0" ViewCount="" Body="&lt;p&gt;I avoid entering them into source control. They're redundant information, the binaries can be built by the source code in that revision. Additionally, the source code is always up to date, the builds may not be on commit.&lt;/p&gt;&#xA;" OwnerUserId="3542" LastActivityDate="2010-12-22T20:57:42.503" />
  <row Id="29280" PostTypeId="1" AcceptedAnswerId="29285" CreationDate="2010-12-22T21:03:12.073" Score="8" ViewCount="739" Body="&lt;p&gt;Is coding important to be good at computer science? Should one implement the algorithm to know it well ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I remember one cs professor's idiom that &quot;&lt;strong&gt;I never code&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="11390" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-12-23T14:40:05.857" LastActivityDate="2010-12-23T14:40:05.857" Title="is coding important ?" Tags="&lt;computer-science&gt;&lt;coding&gt;" AnswerCount="15" CommentCount="8" FavoriteCount="3" />
  <row Id="29281" PostTypeId="2" ParentId="29280" CreationDate="2010-12-22T21:11:54.637" Score="3" ViewCount="" Body="&lt;p&gt;Sounds like hes more of a discrete mathematics kind of guy... just into the math and theory behind computer science. Take what these types of professors have to say with a grain of salt.&lt;/p&gt;&#xA;" OwnerUserId="11392" LastActivityDate="2010-12-22T21:11:54.637" CommentCount="5" />
  <row Id="29282" PostTypeId="2" ParentId="29280" CreationDate="2010-12-22T21:13:56.180" Score="12" ViewCount="" Body="&lt;p&gt;If you're talking about being a pure Computer Science academic specializing in abstract, foundational Computer Science concepts, then not necessarily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To bend an analogy: this is a bit like asking if every rocket scientist at NASA should have to fly in space to be a &quot;good rocket scientist&quot;. Of course not. Being an astronaut is part of the space flight industry, and a very hands-on part, but it doesn't mean that ground scientists aren't just as important in their own way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, it's probably a good idea to APPLY the algorithm he created, if not actually write it in a real programming language. In this sense, you can think of algorithm design as a branch of mathematics.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-12-22T21:13:56.180" CommentCount="12" />
  <row Id="29283" PostTypeId="2" ParentId="29268" CreationDate="2010-12-22T21:17:01.213" Score="0" ViewCount="" Body="&lt;p&gt;We do not check in the bin folder into TFS.  As you have probably noticed, if you do that, every time any developer builds the solution, they will be checking out the bin folder.  Not good.  However there are libraries that the project needs in order to compile and run, and our rule is that any project should be able to be opened from source control, and it should compile and run.  So what we do is create a &quot;BinRef&quot; folder for any DLLs that the project must have reference to, and create the Project References to the copy in the BinRef folder.  The BinRef folder &lt;em&gt;is&lt;/em&gt; checked in to TFS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other advantage to this approach is that BinRef is always at the root level of the web project.  If my project lives in &lt;code&gt;C:\Projects\Marcie\SomeProjectCategory\ProjectA&lt;/code&gt; and I create a reference to a DLL that sits in &lt;code&gt;C:\DLLsThatILike&lt;/code&gt;, the reference will end up looking something like &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;\..\..\..\NiceThing.dll&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;.  You may keep your project files in &lt;code&gt;C:\ProjectA&lt;/code&gt; which means that the project reference to NiceThing will blow up on your machine.  Hopefully people aren't doing references this way, but I've seen it happen.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-22T21:17:01.213" />
  <row Id="29284" PostTypeId="2" ParentId="29109" CreationDate="2010-12-22T21:21:33.193" Score="0" ViewCount="" Body="&lt;p&gt;Linux ? What about &quot;object oriented pascal&quot; or &quot;D&quot; ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suggestions:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.lazarus.freepascal.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.lazarus.freepascal.org/&lt;/a&gt;&#xA;http://www.digitalmars.com/d/&lt;/p&gt;&#xA;" OwnerUserId="11394" LastActivityDate="2010-12-22T21:21:33.193" CommentCount="1" />
  <row Id="29285" PostTypeId="2" ParentId="29280" CreationDate="2010-12-22T21:23:33.297" Score="28" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You won't really know the algorithm &lt;em&gt;well&lt;/em&gt; until you code it.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1842" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-12-23T02:14:51.703" LastActivityDate="2010-12-23T02:14:51.703" CommentCount="7" />
  <row Id="29286" PostTypeId="2" ParentId="29280" CreationDate="2010-12-22T21:28:17.337" Score="19" ViewCount="" Body="&lt;p&gt;Coding is not important to your professor, but you need to keep in mind that he is not paid to DO things.  He is paid to SAY things (and WRITE things.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a former math professor, so I understand this dynamic well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to follow his path, and to be a theoretical computer scientist, then yes, coding is of lesser importance.  But if you do, remember to maintain humility, knowing that your salary is paid by resources earned by those that chose to DO things.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-12-22T21:28:17.337" CommentCount="4" />
  <row Id="29287" PostTypeId="2" ParentId="35" CreationDate="2010-12-22T21:28:55.757" Score="2" ViewCount="" Body="&lt;p&gt;I like my women the way I like my filesystems - FAT, and 32.&lt;/p&gt;&#xA;" OwnerUserId="8883" LastActivityDate="2010-12-22T21:28:55.757" CommunityOwnedDate="2010-12-22T21:28:55.757" />
  <row Id="29288" PostTypeId="2" ParentId="29280" CreationDate="2010-12-22T21:30:07.833" Score="2" ViewCount="" Body="&lt;p&gt;This is like asking if all English professors should be capable of writing movies, TV series, novels, plays and poems to my mind.  Similarly, imagine a Math professor that never uses numbers for an equally outlandish idea.  That is to say that there are some basic elements that do give coding some importance in being able to teach basic Computer Science.  Thus the professor should know basic language syntax and how to write programs as sophisticated as the courses that the professor is teaching.  If the professor is teaching about compiler design and never wrote a compiler before, this would be a major problem.  Imagine a chef cooking a cake that has never cooked or ate a cake previously.  Aye carumba.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I can see some advantages to implementing an algorithm to know it, I doubt it is a requirement.  After all, one could wonder how far down the rabbit hole of implementation does one go in understanding how an algorithm is implemented?  For example does someone have to take any algorithm and implement it under various paradigms like procedural, Object-oriented, and functional programming to really know it?  Do they have to know how compilers translate all the code and move the bits around on an electron-by-electron level to be rather pedantic about it.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&quot;I never code,&quot; does have an implication of containing the past as well as present tense in a way though.  There can also be an implicit assumption of &quot;coding&quot; as a lowly thing that is below the professor for another way to view the statement that can carry a rather negative tone to it that may not go over well in some circles.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastEditorUserId="4327" LastEditorDisplayName="" LastEditDate="2010-12-22T22:40:08.630" LastActivityDate="2010-12-22T22:40:08.630" CommentCount="5" />
  <row Id="29289" PostTypeId="2" ParentId="29280" CreationDate="2010-12-22T21:30:17.833" Score="1" ViewCount="" Body="&lt;p&gt;Despite being a professional software developer, I got a degree in Mechanical Engineering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can be a good mechanical designer with very little experience building and machining parts, leaving that job to machinists. But knowing how to build and machine parts will make you a significantly better engineer, because you can predict difficulties involved with fabricating and assembling whatever you are designing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same goes for software. A &quot;coder&quot; is a machinist or technician, while a software engineer is, well, the engineer. For many places, one person does both jobs. It's not impossible, and for some very abstract issues, a &quot;engineering only&quot; position might work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But for the vast majority, there is absolutely no benefit from refusing to code. &lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-12-22T21:30:17.833" CommentCount="1" />
  <row Id="29290" PostTypeId="2" ParentId="29212" CreationDate="2010-12-22T21:32:01.207" Score="3" ViewCount="" Body="&lt;p&gt;I run and test my code as often as is necessary.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-22T21:32:01.207" />
  <row Id="29291" PostTypeId="2" ParentId="29234" CreationDate="2010-12-22T21:33:09.970" Score="0" ViewCount="" Body="&lt;p&gt;Alternate JVM Languages could get a significant boost on Android now that the &lt;a href=&quot;http://google-opensource.blogspot.com/2009/06/introducing-android-scripting.html&quot; rel=&quot;nofollow&quot;&gt;Android Scripting Environment&lt;/a&gt; is available.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-22T21:33:09.970" />
  <row Id="29292" PostTypeId="2" ParentId="29167" CreationDate="2010-12-22T21:33:44.653" Score="1" ViewCount="" Body="&lt;p&gt;You should take a look at the svn red-book, if you havent already. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://svnbook.red-bean.com/&quot; rel=&quot;nofollow&quot;&gt;http://svnbook.red-bean.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifically &lt;a href=&quot;http://svnbook.red-bean.com/en/1.5/svn.reposadmin.planning.html#svn.reposadmin.projects.chooselayout&quot; rel=&quot;nofollow&quot; title=&quot;Planning Your Repository Organization&quot;&gt;Planning Your Repository Organization&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4330" LastActivityDate="2010-12-22T21:33:44.653" CommentCount="2" />
  <row Id="29293" PostTypeId="2" ParentId="29132" CreationDate="2010-12-22T21:33:47.310" Score="0" ViewCount="" Body="&lt;p&gt;A friend of mine had a custom Iphone app made.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;cost - about £100,000&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2 weeks work for a team of 5&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have no idea if they thought it was a 'good deal'.&lt;/p&gt;&#xA;" OwnerUserId="6720" LastActivityDate="2010-12-22T21:33:47.310" />
  <row Id="29294" PostTypeId="2" ParentId="29280" CreationDate="2010-12-22T21:35:51.090" Score="2" ViewCount="" Body="&lt;p&gt;You can get away with understanding the theory only but I always found I understood algorithms and such 1000x better after having coded them (Bubble sort vs. Quicksort for example, it is great to know the Big-O but seeing it in practice with large data-sets gives you a certain real world appreciation for measuring computational complexity).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One interesting thing I have found is the more you study the theoretical aspets of computer science the easier coding becomes.  At some point you stop thinking of things in a particular language but rather see them just as the broader concepts of computer sience.&lt;/p&gt;&#xA;" OwnerUserId="11536" LastEditorUserId="11536" LastEditorDisplayName="" LastEditDate="2010-12-22T21:50:42.657" LastActivityDate="2010-12-22T21:50:42.657" />
  <row Id="29295" PostTypeId="2" ParentId="29177" CreationDate="2010-12-22T21:40:57.373" Score="1" ViewCount="" Body="&lt;p&gt;I'll add &quot;always document any assumptions made&quot; to the list. :-)&lt;/p&gt;&#xA;" OwnerUserId="8080" LastActivityDate="2010-12-22T21:40:57.373" CommentCount="2" />
  <row Id="29296" PostTypeId="2" ParentId="29280" CreationDate="2010-12-22T21:42:52.213" Score="3" ViewCount="" Body="&lt;p&gt;Depends on the subfield the professor is in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anybody competent in numerical analysis is probably a Fortran whiz.  Any AI professor will code in Lisp or Prolog or something like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In some of the more mathematical areas, there really isn't a need to code.  I'd still be a touch suspicious, myself.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-22T21:42:52.213" />
  <row Id="29297" PostTypeId="2" ParentId="29280" CreationDate="2010-12-22T21:48:18.133" Score="2" ViewCount="" Body="&lt;p&gt;I would have to say &lt;strong&gt;&quot;Logic is important&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1134" LastActivityDate="2010-12-22T21:48:18.133" CommentCount="1" />
  <row Id="29298" PostTypeId="2" ParentId="29170" CreationDate="2010-12-22T21:49:28.657" Score="1" ViewCount="" Body="&lt;p&gt;I write code that attempts to solve the given problem in the most efficient and theorertically 'elegant' way.  In that sense only it is clean.  If it happens to be 'pretty' when I am done, so be it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I have found in my limited experiences is that when people complain about 'clean-code', the ugliness is usually a result of a terrible solution rather than coding convention.&lt;/p&gt;&#xA;" OwnerUserId="11536" LastActivityDate="2010-12-22T21:49:28.657" />
  <row Id="29299" PostTypeId="2" ParentId="29280" CreationDate="2010-12-22T21:53:16.723" Score="-5" ViewCount="" Body="&lt;p&gt;I've got another idiom for your professor:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Those who can, do, those who can't, teach.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;imo, talk is cheap.  Anyone can endlessly jabber on about 'theory' and call it 'computer science'.  But until its put into actual practice, theory isnt very useful because there's no way to validate it.  I'd take a prof's opinion about something &lt;em&gt;much more seriously&lt;/em&gt; if I knew he's actually &lt;em&gt;solved&lt;/em&gt; a particular problem in code than if he's just regurgitating 'theory' which may or may not have any supporting evidence to &lt;em&gt;back up&lt;/em&gt; his point of view.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-22T21:53:16.723" CommentCount="19" />
  <row Id="29300" PostTypeId="2" ParentId="29170" CreationDate="2010-12-22T21:58:49.273" Score="4" ViewCount="" Body="&lt;p&gt;If by 'clean code' you mean do I go out of my way to make sure the code is as clear as possible?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Heck yes.&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The cleaner, clearer the code, the easier it is to maintain, and thus saves you time in the long run.  Dont look at clean code as vanity, look at it as an &lt;em&gt;investment&lt;/em&gt; in saving future effort and time.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-22T21:58:49.273" />
  <row Id="29301" PostTypeId="2" ParentId="29212" CreationDate="2010-12-22T22:00:37.093" Score="0" ViewCount="" Body="&lt;p&gt;I write just enough code to get test to green.&#xA;That means I run test every few minutes. That's my C++ style. However in Ruby I use autotest, so every time I hit save I get tests feedback via nice popup. I don't even stop writing code, it just happens in background.&lt;/p&gt;&#xA;" OwnerUserId="11398" LastActivityDate="2010-12-22T22:00:37.093" />
  <row Id="29302" PostTypeId="1" AcceptedAnswerId="29309" CreationDate="2010-12-22T15:58:00.303" Score="6" ViewCount="290" Body="&lt;p&gt;Why ISO/ANSI didn't standardize C++ at the binary level? There are many portability issues with C++, which is only because of lack of it's standardization at the binary level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Don_Box&quot; rel=&quot;nofollow&quot;&gt;Don Box&lt;/a&gt; writes, (quoting from his book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201634465&quot; rel=&quot;nofollow&quot;&gt;Essential COM&lt;/a&gt;, chapter &lt;em&gt;COM As A Better C++&lt;/em&gt;)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;h1&gt;C++ and Portability&lt;/h1&gt;&#xA;  &#xA;  &lt;p&gt;&lt;br/&gt;&#xA;  Once the decision is made to&#xA;  distribute a C++ class as a DLL, one&#xA;  is faced with one of &lt;strong&gt;the fundamental&#xA;  weaknesses of C++&lt;/strong&gt;, that is, &lt;strong&gt;lack of&#xA;  standardization at the binary level&lt;/strong&gt;.&#xA;  Although the ISO/ANSI C++ Draft&#xA;  Working Paper attempts to codify which&#xA;  programs will compile and what the&#xA;  semantic effects of running them will&#xA;  be, it makes no attempt to standardize&#xA;  the binary runtime model of C++. The&#xA;  first time this problem will become&#xA;  evident is when a client tries to link&#xA;  against the FastString DLL's import library from&#xA;  a C++ developement environment &lt;em&gt;other&#xA;  than&lt;/em&gt; the one used to build the&#xA;  FastString DLL.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Are there more benefits Or loss of this lack of binary standardization? &lt;/p&gt;&#xA;" OwnerUserId="9020" LastActivityDate="2011-01-10T23:54:40.073" Title="C++ : Lack of Standardization at the Binary Level" Tags="&lt;c++&gt;&lt;dll&gt;&lt;ansi&gt;&lt;lib&gt;&lt;iso&gt;" AnswerCount="8" CommentCount="7" />
  <row Id="29303" PostTypeId="2" ParentId="29302" CreationDate="2010-12-22T16:01:30.990" Score="4" ViewCount="" Body="&lt;p&gt;Cross-platform and cross-compiler compatibility were not the primary goals behind C and C++. They were born in an era, and intended for purposes for which platform-specific and compiler-specific minimizations of time and space were crucial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From Stroustrup's &quot;The Design and Evolution of C++&quot;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;The explicit aim was to match C in&#xA;  terms of run-time, code compactness&#xA;  and data compactness. ... The ideal -&#xA;  which was achieved - was that C with&#xA;  Classes could be used for whatever C&#xA;  could be used for.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1755" LastActivityDate="2010-12-22T22:01:27.213" CommentCount="1" />
  <row Id="29304" PostTypeId="2" ParentId="29302" CreationDate="2010-12-22T16:03:38.930" Score="0" ViewCount="" Body="&lt;p&gt;I don't know why it doesn't standardize on a binary level.  But I know what I do about it.  On Windows I declare function extern &quot;C&quot; BOOL WINAPI.  (Of course replace BOOL with whatever type the function is.) And they are exported cleanly.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-22T22:01:27.213" CommentCount="1" />
  <row Id="29305" PostTypeId="2" ParentId="29302" CreationDate="2010-12-22T16:08:03.733" Score="1" ViewCount="" Body="&lt;p&gt;As Andy said cross platform compatibility wasn't a big goal, whereas broad platform and hardware implementation was a goal, with the net result that you can write conforming implementations for a very wide selection of systems. Binary standardization would have made this practically unachievable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C compatibility was also important and would have significantly complicated this. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There has subsequently been some efforts to &lt;a href=&quot;http://www.codesourcery.com/public/cxx-abi/&quot; rel=&quot;nofollow&quot;&gt;standardise the ABI&lt;/a&gt; for a subset of implementations.&lt;/p&gt;&#xA;" OwnerUserId="6904" LastActivityDate="2010-12-22T22:01:27.213" CommentCount="1" />
  <row Id="29306" PostTypeId="2" ParentId="29302" CreationDate="2010-12-22T16:08:29.307" Score="3" ViewCount="" Body="&lt;p&gt;The aim of ISO/ANSI was to standardize the C++ language, issue that seems to be complex enough to require &lt;em&gt;years&lt;/em&gt; to have an update of the language standards and compiler support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The binary compatibility is much more complex, given that the binaries need to run on different CPUs' architectures and different OS environments.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-22T22:01:27.213" CommentCount="2" />
  <row Id="29307" PostTypeId="2" ParentId="29302" CreationDate="2010-12-22T16:10:57.417" Score="2" ViewCount="" Body="&lt;p&gt;It's not a bug, it's a feature! This gives implementors freedom to optimize their implementation at the binary level. The little-endian i386 and its offspring are not the only CPUs that have or do exist.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-22T22:01:27.213" />
  <row Id="29308" PostTypeId="2" ParentId="29302" CreationDate="2010-12-22T16:42:28.537" Score="3" ViewCount="" Body="&lt;p&gt;The problem described in the quotation is caused by the quite deliberate avoidance of standardisation of symbol-name mangling schemes (I think &quot;&lt;em&gt;standardisation at the binary level&lt;/em&gt;&quot; is a misleading phrase in this respect although the issue is related to a compiler's &lt;em&gt;Application Binary Interface&lt;/em&gt; (ABI).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ encodes a function or data object's signature and type information, and its class/namespace membership into the symbol-name, and different compilers are allowed to use different schemes.  Consequently a symbol in a static library, DLL, or object file will not link with code compiled using a different compiler (or possibly even a different version of the same compiler).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The issue is described and explained probably better than I can &lt;a href=&quot;http://en.wikipedia.org/wiki/Name_mangling#Name_mangling_in_C.2B.2B&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;, with examples of schemes used by different compilers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reasons for the deliberate lack of standardisation are also explained &lt;a href=&quot;http://en.wikipedia.org/wiki/Name_mangling#Standardised_name_mangling_in_C.2B.2B&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-22T22:01:27.213" />
  <row Id="29309" PostTypeId="2" ParentId="29302" CreationDate="2010-12-22T16:45:18.457" Score="8" ViewCount="" Body="&lt;p&gt;Languages with binary-compatible compiled form are a relatively new phase[*], for example the JVM and .NET runtimes. C and C++ compilers usually emit native code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The advantage is that there is no need for a JIT, or a bytecode interpreter, or a VM, or any other such thing. For example, you can't write the bootstrap code that runs at machine startup as nice, portable Java bytecode, unless perhaps the machine can natively execute Java bytecode, or you have some kind of converter from Java to a non-binary-compatible native executable code (in theory: not sure this can be recommended in practice for bootstrap code). You could write it in C++, more or less, albeit not &lt;em&gt;portable&lt;/em&gt; C++ even at the source level, since it will do a lot of messing with magic hardware addresses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The disadvantage is that of course native code only runs at all on the architecture it was compiled for, and the executables can only be loaded by a loader that understands their executable format, and only link with and call into other executables for the same architecture &lt;em&gt;and&lt;/em&gt; ABI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you get that far, linking two executables together will only actually work correctly as long as: (a) you don't violate the One Definition Rule, which is easy to do if they were compiled with different compilers/options/whatever, such that they were using different definitions of the same class (either in a header, or because they each statically linked against different implementations); and (b) all relevant implementation details such as structure layout are identical according to the compiler options in force when each was compiled.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the C++ standard to define all of this would remove a lot of the freedoms currently available to implementers. Implementers are &lt;em&gt;using&lt;/em&gt; those freedoms, especially when writing very low-level code in C++ (and C, which has the same issue).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to write something that looks a bit like C++, for a binary-portable target, there's C++/CLI, which targets .NET, and Mono so that you can (hopefully) run .NET elsewhere than Windows. I think it's possible to persuade MS's compiler to produce pure CIL assemblies that will run on Mono.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are also potentially things that can be done with for example LLVM to create a binary-portable C or C++ environment. I don't know that any widespread example has emerged, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But these all rely on fixing a lot of things that the C++ makes implementation-dependent (such as the sizes of types). Then the environment that understands the portable binaries, must be available on the system where the code is to run. By allowing non-portable binaries, C and C++ can go places where portable binaries can't, and that's why the standard doesn't say anything at all about binaries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then on any given platform, implementations usually &lt;em&gt;still&lt;/em&gt; don't provide binary compatibility between different sets of options, although the standard isn't stopping them. If Don Box doesn't like that Microsoft's compilers can produce incompatible binaries from the same source, according to compiler options, then it's the compiler team he needs to complain about. The C++ language does not &lt;em&gt;forbid&lt;/em&gt; a compiler or an OS from pinning down all the necessary details, so once you limit yourself to Windows it's not a fundamental problem with C++. Microsoft has &lt;em&gt;chosen&lt;/em&gt; not to do so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The differences often manifest as one more thing that you can get wrong and crash your program, but there may be considerable gains to be made in efficiency between, for example, incompatible debug vs release versions of a dll.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[*] I'm not sure when the idea was first invented, probably 1642 or something, but their current popularity is relatively new, compared to the time when C++ committed to the design decisions which prevent it defining binary-portability.&lt;/p&gt;&#xA;" OwnerUserId="18658" LastActivityDate="2010-12-22T22:01:27.213" CommentCount="1" />
  <row Id="29310" PostTypeId="1" AcceptedAnswerId="29312" CreationDate="2010-12-22T22:01:36.483" Score="5" ViewCount="246" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/14744/i-dont-know-c-and-why-should-i-learn-it/14747#14747&quot;&gt;This&lt;/a&gt; reply to the question &quot;I don't know C. And why should I learn it?&quot; has me interested in learning C. What is a good self-instruction program (textbook/website/OpenCourseWare, etc.) for someone who already has lots of experience in high-level languages?&lt;/p&gt;&#xA;" OwnerUserId="7010" LastActivityDate="2010-12-23T01:05:26.497" Title="Intro to C for an experienced programmer" Tags="&lt;learning&gt;&lt;c&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="29311" PostTypeId="1" CreationDate="2010-12-22T22:01:55.877" Score="1" ViewCount="300" Body="&lt;p&gt;I've worked hard on these articles, covering delegates, callbacks, LINQ to Objects, etc. and I very much appreciate feedback so I know if I'm on the right track and should write more or back up and reconsider what I'm doing.  Be brutal. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was new to C#, anything.Net and even OO in 2009 when I picked up and became motivated by Steve Sanderson's little MVC Preview book.  (Subsequently, I've also enjoyed Jon Skeet and Jeffry Richter.) The articles I've written attempt to demystify certain language features by revealing a bit of what the compiler is doing, nothing more than what Skeet and Richter do.  The C# 3.0 compiler offers ways for us to write expressive code but in so doing, hides what's going on. I sure was confused.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are no ads or anything on this site - it's my own, written in MVC, hosted at Godaddy.  The site has a comments feature. Thanks much.&lt;/p&gt;&#xA;" OwnerUserId="11404" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-12-24T19:36:43.377" LastActivityDate="2010-12-24T19:36:43.377" ClosedDate="2010-12-23T11:13:40.743" Title="Are My C# Articles any Good?" Tags="&lt;c#&gt;&lt;tutorial&gt;" AnswerCount="1" CommentCount="4" FavoriteCount="1" />
  <row Id="29312" PostTypeId="2" ParentId="29310" CreationDate="2010-12-22T22:03:28.467" Score="17" ViewCount="" Body="&lt;p&gt;This is a clichéd answer, but my intro to C programming was Kernighan and Richie's &lt;em&gt;The C Programming Language&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2010-12-22T22:03:28.467" CommentCount="5" />
  <row Id="29313" PostTypeId="1" CreationDate="2010-12-22T22:03:59.753" Score="8" ViewCount="145" Body="&lt;p&gt;At work, we've been doing lunchtime book clubs for a while. So far we've done:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Clean Code&lt;/li&gt;&#xA;&lt;li&gt;Working Effectively with Legacy Code&lt;/li&gt;&#xA;&lt;li&gt;The Pragmatic Programmer&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;We read a chapter per week, and one person is assigned to present over the content and help facilitate discussion.  Of the three, we've probably had the most success with The Pragmatic Programmer. It seems like the more technically complicated the content was, the more people tended to drop out as the book went along.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to do a technically-heavy book like SICP or Java Concurrency in Practice, but I don't know of good ways to make this work with the format we're currently doing. What advice do you have?&lt;/p&gt;&#xA;" OwnerUserId="11399" LastActivityDate="2010-12-23T20:01:42.823" Title="What's the best way to run a technical book club?" Tags="&lt;learning&gt;&lt;books&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="4" />
  <row Id="29314" PostTypeId="2" ParentId="29280" CreationDate="2010-12-22T22:05:23.567" Score="16" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Computer Science is no more about computers than astronomy is about telescopes&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;&amp;mdash; Edsger Dijkstra&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to agree.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-23T04:38:53.780" LastActivityDate="2010-12-23T04:38:53.780" CommentCount="10" />
  <row Id="29315" PostTypeId="2" ParentId="29313" CreationDate="2010-12-22T22:07:10.527" Score="0" ViewCount="" Body="&lt;p&gt;Maybe every once in a while change the meeting format, where someone takes on a technical topic to present to the group.&lt;/p&gt;&#xA;" OwnerUserId="11404" LastActivityDate="2010-12-22T22:07:10.527" />
  <row Id="29316" PostTypeId="2" ParentId="29313" CreationDate="2010-12-22T22:11:46.950" Score="2" ViewCount="" Body="&lt;p&gt;What I like to do in a book club is find practical application - or examples of practical application of the concepts in the book. Instead of asking someone to present, ask multiple people (or anyone who wants to volunteer) to come up with relevant examples of the concepts in the book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, when you read the chapter in the pragmatic programmer about broken windows (I know you read this one already, but since &lt;em&gt;everyone&lt;/em&gt; has read this book, it's a good example), ask for examples of broken windows in your own source code - or examples of broken windows on code the team is familiar with. For me, the connection between ideas that look good on paper and real examples do a ton to drive the points home.&lt;/p&gt;&#xA;" OwnerUserId="1240" LastActivityDate="2010-12-22T22:11:46.950" />
  <row Id="29317" PostTypeId="2" ParentId="22363" CreationDate="2010-12-22T22:12:46.310" Score="0" ViewCount="" Body="&lt;p&gt;There are two cases of rules I have seen. In most cases the rule itself is not very volatile (almost fixed) but the data on which decision is taken can be changed by business users. In this case simple design patterns to encapsulate each rule with reading the reference data from DataBase is usually sufficient. Then provide a frontend to change the rules reference data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other cases where the rule logic itself can be changed dynamically. One approach would be to use IronPython or other dynamic languages (in .Net 4) to implement the rules and load them dynamically at execution time. This is a compromise as you will still require programmers to change the rules.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really want rules to be editable by business users then creating DSL for your business domain is an approach to be taken. This is a complex undertaking though.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally using Workflow or BizTalk can help if the rules fit into transformation/orchestration patterns.&lt;/p&gt;&#xA;" OwnerUserId="3414" LastActivityDate="2010-12-22T22:12:46.310" />
  <row Id="29318" PostTypeId="2" ParentId="29058" CreationDate="2010-12-22T22:13:09.417" Score="0" ViewCount="" Body="&lt;p&gt;&lt;em&gt;iff&lt;/em&gt; you own the API &lt;em&gt;and&lt;/em&gt; your changes dó not affect others, Then I would consider you to have free hands in doing what is neccesary to dó your job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A's soon as your changes influence others it becomes a team issue. &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-22T22:13:09.417" />
  <row Id="29319" PostTypeId="2" ParentId="29280" CreationDate="2010-12-22T22:14:43.300" Score="1" ViewCount="" Body="&lt;p&gt;Unless you're contemplating and end to the halting problem, there's always a use for coding in every aspect of Computer Science. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only CS class I took with absolutely no programming was theory. I'd imagine there are plenty of physicists out there who say, &quot;I never experiment&quot; but they're probably also the ones who say, &quot;I never discover anything&quot;.  And I'd be surprised if they care. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-12-22T22:14:43.300" CommentCount="2" />
  <row Id="29320" PostTypeId="2" ParentId="29212" CreationDate="2010-12-22T22:15:44.250" Score="3" ViewCount="" Body="&lt;p&gt;It REALLY depends on the aspect of the project you're working on.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;When I do anything with OpenGL (which works like a state machine), I constantly compile and run to make sure that I didn't accidentally screw up anything. Setting one value without remembering to reset it at the end of a function can easily make the application render only a black screen.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;For larger scale &quot;under the hood&quot; development, I try to get as many tests as possible beforehand. Since the tests can more easily tell me what broke, I can go a while without having to wait for the typically long compile.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;For UX design, I use some sort of visual designer, which always looks the way it will run (or close to it). It is essentially always compiling the design code.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11403" LastActivityDate="2010-12-22T22:15:44.250" />
  <row Id="29321" PostTypeId="2" ParentId="29212" CreationDate="2010-12-22T22:18:53.327" Score="0" ViewCount="" Body="&lt;p&gt;Thrice an hour, whether it needs it or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We do test-first programming and commit only working code to the VCS.  The smolderbot goes and checks out the repo every 20 minutes and runs the test suite.  Any failures are immediately mailed to the entire programming team for immediate fixing.&lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-12-22T22:18:53.327" />
  <row Id="29322" PostTypeId="2" ParentId="16436" CreationDate="2010-12-22T22:22:22.967" Score="1" ViewCount="" Body="&lt;p&gt;If you don't have legitimate questions before you walk in, and I mean questions that you honestly came up with yourself, not asked for on the Internet because you don't want to look like a chump, then you haven't done a good enough job researching the company and positions.  &lt;/p&gt;&#xA;" OwnerUserId="4887" LastActivityDate="2010-12-22T22:22:22.967" CommunityOwnedDate="2011-01-28T12:13:01.007" CommentCount="1" />
  <row Id="29323" PostTypeId="2" ParentId="29170" CreationDate="2010-12-22T22:27:52.210" Score="7" ViewCount="" Body="&lt;p&gt;Would any of us buy a car if we know that under the hood it all messy and hard to troubleshoot,maintain or fix and it takes more resources to run than it should?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why should it be any different for a piece of software?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just because the end users cannot look under the hood does not mean they will never know it. Sooner or latter it will show up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;answering the question &quot;Do you actually write 'clean-code'?&quot; -- Oh, Yeah.!&lt;/p&gt;&#xA;" OwnerUserId="11407" LastActivityDate="2010-12-22T22:27:52.210" />
  <row Id="29324" PostTypeId="2" ParentId="29310" CreationDate="2010-12-22T22:28:35.393" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.cs.cf.ac.uk/Dave/C/&quot; rel=&quot;nofollow&quot;&gt;Marshall's Unix Programming in C&lt;/a&gt; is the best online tutorial I've found.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-12-22T22:28:35.393" />
  <row Id="29325" PostTypeId="2" ParentId="29149" CreationDate="2010-12-22T22:29:24.333" Score="1" ViewCount="" Body="&lt;p&gt;I use a large full length mirror instead of a white board, mainly because it was already present in the room.   I use it mainly for diagrams to think about, as well as TODO lists.  It also helps me stay on my diet. &lt;/p&gt;&#xA;" OwnerUserId="11406" LastActivityDate="2010-12-22T22:29:24.333" CommentCount="2" />
  <row Id="29329" PostTypeId="2" ParentId="29212" CreationDate="2010-12-22T22:42:29.103" Score="0" ViewCount="" Body="&lt;p&gt;I test for each coding concept. Sometimes this is a function or class and sometimes it is nothing more than an if statement. Once the concept works, go on to the next one.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-12-22T22:42:29.103" />
  <row Id="29330" PostTypeId="2" ParentId="29109" CreationDate="2010-12-22T22:47:58.857" Score="1" ViewCount="" Body="&lt;p&gt;I learned C++, because the best job offer I received required it. &lt;/p&gt;&#xA;" OwnerUserId="11413" LastActivityDate="2010-12-22T22:47:58.857" />
  <row Id="29332" PostTypeId="2" ParentId="29109" CreationDate="2010-12-22T23:00:26.567" Score="1" ViewCount="" Body="&lt;p&gt;The thing to keep in mind while choosing a language, is what benefit you will get from using it, and how long it will take to get it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main idea between languages like python and perl is to do more with less man time, but with more cpu time. In fact you will spend more time coding a python or perl script than it will be executed, but you get my point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The advantage of C/C++ is that they are fast, but at a cost of syntax and strong typing: you have to do a lot of thing yourself so that the computer has not to choose it at compile time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you make a code, some lines will be ran a lot more than others, and those lines are the one that pose a problem. On the other hand, all the rest of the code, the one you spent a lot of time on, is executed much much less often.&#xA;You might have heard it, but it is the infamous 80/20 rule, and you won't be able to bypass such rule.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The solution to this problem, is to use an easier language (by easier I mean more developer friendly: less typing, lazy interpretation, a lot of preexisting routines and stuff, etc.) to do all your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will do it so quickly compared to if you would have done it with C or C++, it would have taken much more brain ache.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your program will be slow, but with a profiler, you isolate the part which are ran 80% of the time, and you do them with C or C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By prorgamming this way, you saved a lot of time, and your program is as efficient, as much fast, has much less chances to leak memory, and you saved time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scripting languages were designed to be on the side of the developer, but optimisation is still possible. Of course you can be a design pattern magician or a STL voodoo or even a lisp warrior, and maybe an haskell monk. But languages makes us talk to computers, languages are not made for us to BE computers !&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2010-12-22T23:00:26.567" />
  <row Id="29333" PostTypeId="2" ParentId="29109" CreationDate="2010-12-22T23:00:29.570" Score="4" ViewCount="" Body="&lt;p&gt;Is there a reason to use C++?  Certainly.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people &lt;strong&gt;might simply prefer&lt;/strong&gt; using C++ over other options.  Asking if there's a reason to use C++ is like asking why we need to have hundreds of flavors of ice cream.  Not everyone likes simply sticking with Vanilla.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If developers already are very competent with C++, the question for them may not be 'why use it?', but rather 'why not?'.  There seems to be this trendy anti-C++ thing going on in SO right now, but believe it or not, not everyone subscribes to that.  Some people may simply like C++ better than the other languages. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does C++ &lt;em&gt;need&lt;/em&gt; to be used for apps?  Of course not.  But this same exact question can also be asked for any other language.  There are very, very few cases where a particular languages needs to be used for an application.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-22T23:00:29.570" />
  <row Id="29334" PostTypeId="1" AcceptedAnswerId="29335" CreationDate="2010-12-22T23:01:13.290" Score="10" ViewCount="157" Body="&lt;p&gt;If you have a product that has been in the market for a long time, but it is still in active development daily - how often should the manuals be updated? If your users are constantly updated to the bleeding edge version due to the fact that your organization sees fit that the latest bug fixes are always in the shipped version. Meaning, you could fix a bug one day and next day it is hitting production.&lt;/p&gt;&#xA;" OwnerUserId="4459" LastActivityDate="2010-12-24T11:48:50.817" Title="Manuals - How Up To Date?" Tags="&lt;manuals&gt;&lt;production&gt;" AnswerCount="6" CommentCount="2" />
  <row Id="29335" PostTypeId="2" ParentId="29334" CreationDate="2010-12-22T23:04:14.707" Score="4" ViewCount="" Body="&lt;p&gt;I would update the manual:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;For each major release, and&lt;/li&gt;&#xA;&lt;li&gt;When important new features become stable and mature enough that you know they're not going to change every five minutes.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-22T23:04:14.707" />
  <row Id="29336" PostTypeId="2" ParentId="28899" CreationDate="2010-12-22T23:11:58.027" Score="1" ViewCount="" Body="&lt;p&gt;We just leave comments in the source - like &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//todo code review change this code to work like X&#xA;... bad code here ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;IntelliJ does amazing things with todos in comments with clever custom filters, but any text editor will let you search for a specific string. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Any VCS will let you see what revisions have been made when and by whom - the reviewer can look at a particular branch, or at everything since a particular date, or everything by a particular person, for example. Post review, the reviewer commits her comments to the repository. This doesn't give you a &quot;per feature&quot; view of code changes, but I don't think that's necessarily a bad thing, since typically code problems will come out where someone makes a change and doesn't consider the consequences on somebody else's code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's up to each dev to find the comments that the reviewer has left in their own code and change the code that they were responsible for. Set a time by which the code should be clear of all &quot;todo code review&quot; items.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless there's a significant amount of work to be done over a period of time for a particular refactor I wouldn't want to know about it in the issue tracking software, especially if you're just talking formatting things.&lt;/p&gt;&#xA;" OwnerUserId="5826" LastEditorUserId="5826" LastEditorDisplayName="" LastEditDate="2010-12-23T08:01:10.587" LastActivityDate="2010-12-23T08:01:10.587" CommentCount="4" />
  <row Id="29339" PostTypeId="1" CreationDate="2010-12-22T23:23:00.557" Score="1" ViewCount="87" Body="&lt;p&gt;Hi everyone,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm going to be an intern soon at a bank (this is my first software related job) and I was told that I'm going to be working mostly with:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Java (I already know SE)&lt;/li&gt;&#xA;&lt;li&gt;WebSphere&lt;/li&gt;&#xA;&lt;li&gt;DB2&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I saw &lt;a href=&quot;http://www.reddit.com/r/programming/comments/enngw/creator_of_websphere_considers_it_his_biggest/&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; thread at reddit recently and let's just say I cringed a bit while reading the comments. I'm currently going through Head First JSP &amp;amp; Servlet and using tomcat as container to get myself ahead a bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to know your experience regarding working with the above technologies. Is WebSphere really that bad of a server? or is it just the typical reddit hate for Java?&lt;/p&gt;&#xA;" OwnerUserId="10028" LastActivityDate="2010-12-23T02:57:43.680" Title="Experiences with WebSphere?" Tags="&lt;java&gt;&lt;experience&gt;&lt;web-applications&gt;&lt;db2&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="29340" PostTypeId="2" ParentId="29334" CreationDate="2010-12-22T23:31:12.220" Score="3" ViewCount="" Body="&lt;p&gt;update the (PDF) manual any time that a code change would alter the instructions in the manual - just make updating the manual part of the release process&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if the users rely on the manual to tell them how to use the product, and the product changes, then it's only common sense that the relevant section(s) of the manual should also change&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-22T23:31:12.220" CommentCount="3" />
  <row Id="29341" PostTypeId="2" ParentId="29310" CreationDate="2010-12-22T23:35:57.393" Score="1" ViewCount="" Body="&lt;p&gt;Leendert Ammeraal's &quot;C For Programmers&quot;, while VERY dated now (15 years old or more) is by far the best thing I have ever seen along these lines.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-12-22T23:35:57.393" />
  <row Id="29342" PostTypeId="2" ParentId="28978" CreationDate="2010-12-22T23:56:30.357" Score="1" ViewCount="" Body="&lt;p&gt;Sure. have a look.  The software shown in this video will be out shortly as soon as testing and refining is finished.  It's called EmoLens and it uses the Emotiv EPOC headset to detect emotions and tag Flickr photographs with them.  Note the emotions shown being detected in the video (Happy/Sad/Anger/Fear) have been changed to (Interesting/Happy/Funny):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=E9_XZlHoSp0&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=E9_XZlHoSp0&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm the author.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;roschler&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11421" LastActivityDate="2010-12-22T23:56:30.357" CommentCount="1" />
  <row Id="29343" PostTypeId="2" ParentId="22158" CreationDate="2010-12-23T00:47:05.880" Score="1" ViewCount="" Body="&lt;p&gt;I'm using it for the &lt;a href=&quot;http://bugs.python.org&quot; rel=&quot;nofollow&quot;&gt;Python bug tracker&lt;/a&gt;. We have the customization &lt;a href=&quot;http://svn.python.org/projects/tracker/instances/python-dev/&quot; rel=&quot;nofollow&quot;&gt;publically available&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition, I also use it for students to submit exercises (assignments are somewhat similar to components/milestones; solutions are similar to bug reports, except for access control). However, the code for this is not public.&lt;/p&gt;&#xA;" OwnerUserId="10846" LastActivityDate="2010-12-23T00:47:05.880" CommentCount="1" />
  <row Id="29344" PostTypeId="1" CreationDate="2010-12-23T00:47:12.680" Score="5" ViewCount="414" Body="&lt;p&gt;Is there any just-in-time compiler out there for compiled languages, such as C and C++? (The first names that come to mind are Clang and LLVM! But I don't think they currently support it.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Explanation:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the software could benefit from runtime profiling feedback and aggressively optimized recompilation of hotspots at runtime, even for compiled-to-machine languages like C and C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Profile-guided optimization does a similar job, but with the difference a JIT would be more flexible in different environments. In PGO you run your binary prior to releasing it. After you released it, it would use no environment/input feedbacks collected at runtime. So if the input pattern is changed, it is probe to performance penalty. But JIT works well even in that conditions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However I think it is controversial wether the JIT compiling performance benefit outweights its own overhead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: Grammar&lt;/p&gt;&#xA;" OwnerUserId="11345" LastEditorUserId="11345" LastEditorDisplayName="" LastEditDate="2010-12-23T02:08:23.280" LastActivityDate="2010-12-27T02:42:33.887" Title="JIT compiler for C, C++, and the likes" Tags="&lt;c++&gt;&lt;performance&gt;&lt;compilers&gt;&lt;optimization&gt;&lt;jit&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="29345" PostTypeId="2" ParentId="25267" CreationDate="2010-12-23T00:55:37.147" Score="1" ViewCount="" Body="&lt;p&gt;One reason for the MingW header files to exist is certainly copyright: while they are &quot;free as in beer&quot;, you are not allowed to redistribute them. Neither could the LLVM authors redistribute them, instead, every LLVM/Clang user would have to download them on their own. So it would be reasonable for Clang to provide a set of header files, and it would then be reasonable to use the MingW code as a starting point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition, another reason for the MingW header files to exist (IIRC) is that the SDK headers use C extensions that were not supported by gcc. They may be supported now, so that reason may have gone.&lt;/p&gt;&#xA;" OwnerUserId="10846" LastActivityDate="2010-12-23T00:55:37.147" />
  <row Id="29346" PostTypeId="2" ParentId="29149" CreationDate="2010-12-23T01:01:57.997" Score="0" ViewCount="" Body="&lt;p&gt;A white board is probably the most important collaboration tool available to people physically together.  The key reason is that it allows you to easily draw what you think of so others can read it, and then they can draw etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I would like every flat surface in our offices to be whiteboards, but others disagree.  Hence the office I sit in have a single whiteboard, with space around it allowing for impromptu meetings, which has proven to work very well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I consider a whiteboard to be essential in our daily work.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-23T01:01:57.997" />
  <row Id="29347" PostTypeId="2" ParentId="29310" CreationDate="2010-12-23T01:05:26.497" Score="1" ViewCount="" Body="&lt;p&gt;If your goal truly is to understand what goes on under the hood, then perhaps, instead of learning C and writing a toy program in it, you instead look at a C &lt;strong&gt;compiler&lt;/strong&gt; and understand how that works.  As far as compilers go, a C compiler is one of the simplest, as the language doesn't have all that many high-level features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for which compiler, I would take a simple compiler with an easy to understand machine architecture, so you're not mucking about too much with x86 instructions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd suggest the &lt;a href=&quot;http://pages.cs.wisc.edu/~lenz/compiler.html&quot; rel=&quot;nofollow&quot;&gt;C-- compiler&lt;/a&gt; (written in Java) which outputs &lt;a href=&quot;http://www.eecs.harvard.edu/~ellard/Courses/cs50-asm.pdf&quot; rel=&quot;nofollow&quot;&gt;MIPS&lt;/a&gt; assembly.&lt;/p&gt;&#xA;" OwnerUserId="11376" LastActivityDate="2010-12-23T01:05:26.497" />
  <row Id="29348" PostTypeId="2" ParentId="29344" CreationDate="2010-12-23T01:09:35.477" Score="-1" ViewCount="" Body="&lt;p&gt;I don't believe that a JIT compiler would ever outperform GCC. The reason is that there is no real need to invest crazy amounts of resources just to be slightly faster and more flexible under different conditions than GCC, it's easier to spend the money on hardware. I mean; look 5-10 years ahead and there is much less demand for C or C++, and even today people advice others to not learn them as their glory days have been said to be long gone by then, which I agree with, even though C is the only language I know. Though, in theory, I don't know what kind of gains would a well optimized JIT compiler give; GCC does damn good job already. Sure, things can and should be faster but I don't realistically see any plausible fast JIT compilers for C/C++ or even D. Just not worth the effort.&lt;/p&gt;&#xA;" OwnerUserId="10796" LastActivityDate="2010-12-23T01:09:35.477" CommentCount="1" />
  <row Id="29349" PostTypeId="2" ParentId="26829" CreationDate="2010-12-23T01:36:12.103" Score="1" ViewCount="" Body="&lt;p&gt;Maybe you find your answer here: &lt;a href=&quot;http://stackoverflow.com/questions/86426/why-require-javascript-rather-than-supporting-a-standard-browser-virtual-machine&quot;&gt;http://stackoverflow.com/questions/86426/why-require-javascript-rather-than-supporting-a-standard-browser-virtual-machine&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: In my opinion more recent answers are more insightful despite their lower score.&lt;/p&gt;&#xA;" OwnerUserId="11345" LastActivityDate="2010-12-23T01:36:12.103" />
  <row Id="29350" PostTypeId="2" ParentId="29311" CreationDate="2010-12-23T01:37:09.327" Score="5" ViewCount="" Body="&lt;p&gt;I'm going to assume this isn't just advertising, and you really want some honest feedback on your articles.  As a teacher of programming, the biggest problem that people have learning about programming is that most sources &lt;em&gt;explain&lt;/em&gt; instead of &lt;em&gt;teach&lt;/em&gt;.  Your blog does a decent job of taking something that your learned through books and through experimentation, that you found cool, and summarizing and explaining that concept.  The problem with that though is that it doesn't do much for someone who hasn't already learned it.&#xA;If you have never used extension methods before, why would you start now?  In what cases are they a better solution than other methods and design patterns?  What problems does using them solve, and can you evolve a solution to a real problem that has an extension method (in the non-trivial case where you're not just extending a third-party library)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are answers to these questions, and these answers will make the difference between a popular blog and one that is simply redundant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example for you, perhaps for your next blog post, is to consider 'var' in C#.  I've found it to be quite useful when refactoring interfaces.  If two bits of code share an overlapping, but not complete interface, the interface segregation principle states that one should derive sub-interfaces for each client, and send each only the minimal interface needed.  When obtaining a variable from an object or interface, it's often stored in a local variable for code convenience and clarity.  when doing one, one must specify the type.  However, refactoring the interface would require modifying such clients to use the new sub-interface type.  With 'var' the client code doesn't specify the type, thus no changes need to be made to client(user) code, only the objects that produce those values.&lt;/p&gt;&#xA;" OwnerUserId="11376" LastActivityDate="2010-12-23T01:37:09.327" CommentCount="1" />
  <row Id="29351" PostTypeId="2" ParentId="29234" CreationDate="2010-12-23T01:56:39.457" Score="-1" ViewCount="" Body="&lt;p&gt;You're assuming that Java will decline (or is it declining already?).  Maybe it will, maybe not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But at the same time, you're assuming both JVM and the Java libraries would survive (since none of these languages have any advantage without both).  How could that happen?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;hum.... I think what I think is that both Scala and Groovy might grow but stay forever under the Java shadow, or die with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other languages mentioned are just reimplementations, maybe one of them could be as popular as the main one; but if Java declines, it would return &lt;em&gt;very&lt;/em&gt; quickly to the main platform, or a newer bytecode (LLVM? Parrot? CLR?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clojure seems to be in-betwen, it might be popular in a Java-friendly world; without Java, it could either die, or influence other Lisp variants without JVM dependency.  But i don't think it has any desirable feature over more mainline Lisps beyond JVM compatibility (which is a big drag, IMHO)&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-12-23T01:56:39.457" />
  <row Id="29352" PostTypeId="2" ParentId="29170" CreationDate="2010-12-23T01:57:58.257" Score="1" ViewCount="" Body="&lt;p&gt;I would say I make an effort to write cleaner code, but that can change because of time constraints or if I'm working on something difficult. It tends to get messy when focusing on making it work. Then I'll go back and clean up as I review it. If you return to code and have to spend too much time refreshing your memory, you didn't comment it enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clean code is good but like everything else, it just needs to be clean enough. Indenting 5 lines of code 4 spaces and one line 5 spaces doesn't increase the reading difficulty. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-23T01:57:58.257" />
  <row Id="29353" PostTypeId="2" ParentId="17824" CreationDate="2010-12-23T02:01:29.263" Score="0" ViewCount="" Body="&lt;p&gt;Give &lt;a href=&quot;http://boost-spirit.com/home/&quot; rel=&quot;nofollow&quot;&gt;Boost.Spirit&lt;/a&gt; Qi a shot.&lt;/p&gt;&#xA;" OwnerUserId="11345" LastActivityDate="2010-12-23T02:01:29.263" />
  <row Id="29354" PostTypeId="2" ParentId="29339" CreationDate="2010-12-23T02:02:32.853" Score="2" ViewCount="" Body="&lt;p&gt;That link you provided is pretty accurate.  If it's software and it came from IBM and it's not running on a mainframe then watch out.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work for a large corporation and we're pretty much an IBM shop, IBM mainframe, AIX, WebSphere, MQ Series, Domino/Notes and we pretty much have a permanent IBM team in our building supporting all their crappy software.  I'm on the .NET side of our shop but all of my Java co-workers complain endlessly about WebSphere.  My own experience with the MQ API's is a nightmare and don't get me started on Lotus Notes (worst app EVER written).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IBM is not a software company, unless you're a mainframer STAY AWAY!!  &lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-23T02:02:32.853" CommentCount="4" />
  <row Id="29355" PostTypeId="2" ParentId="29344" CreationDate="2010-12-23T02:20:24.007" Score="4" ViewCount="" Body="&lt;p&gt;C++/CLI is jitted. Granted, C++/CLI is &lt;em&gt;not&lt;/em&gt; C++ but it is pretty close. That said Microsoft's JIT doesn't do the super clever/cute kinds of runtime behavior based optimizations you're asking about, at least not to my knowledge. So this really doesn't help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://nestedvm.ibex.org/&quot; rel=&quot;nofollow&quot;&gt;http://nestedvm.ibex.org/&lt;/a&gt; turns MIPS into Java bytecode which would then be jitted. The problem with this approach from your question is that you throw away a lot of the useful information by the time it gets to the JIT.&lt;/p&gt;&#xA;" OwnerUserId="9867" LastActivityDate="2010-12-23T02:20:24.007" />
  <row Id="29356" PostTypeId="2" ParentId="29280" CreationDate="2010-12-23T02:48:03.213" Score="0" ViewCount="" Body="&lt;p&gt;As a Computer Science student i think that at first it's better to understand concepts that involve software development. Once you have learned the idea behind software and how does it interacts with a computer, then is time to start coding and dealing with specific implementation problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is just like &quot;Software Exceptions&quot;, at first you only deal with them because you did something that was not allowed to do. Then when you learn them, start doing the same with your code so to make it more verbose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well i think that people who dont care about concepts like those programmers who use Exceptions as a normal workflow in their applications. They know HOW but dont really get WHY.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-23T02:48:03.213" />
  <row Id="29357" PostTypeId="2" ParentId="29339" CreationDate="2010-12-23T02:56:19.120" Score="1" ViewCount="" Body="&lt;p&gt;Nothing wrong with WebSphere at all. Used it plenty of times in our company (large, public). Of course I haven't deployed much on it in recent years so my last experience was with version 5.2 if memory serves. Not sure what they are up to now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally its a J2EE container, so it will behave as most do. If you have specific performance concerns or need a particular service, then you may want to clarify.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you use IBM's Rational Developer (formerly WSAD, and still based on Eclipse, which IBM wrote, so its pretty much the same as Eclipse), then it should come with built in WebSphere test environments installed, so you can run/deploy your code right on your dev pc.&lt;/p&gt;&#xA;" OwnerUserId="11432" LastActivityDate="2010-12-23T02:56:19.120" />
  <row Id="29358" PostTypeId="2" ParentId="29339" CreationDate="2010-12-23T02:57:43.680" Score="2" ViewCount="" Body="&lt;p&gt;WebSphere is as simple or as complex as you want to make it.  If all you're doing is stuff that could just as easily run on Tomcat (which accounts for 90% of what is actually done on WebSphere), you have nothing to worry about at all.&lt;/p&gt;&#xA;" OwnerUserId="7999" LastActivityDate="2010-12-23T02:57:43.680" />
  <row Id="29359" PostTypeId="1" CreationDate="2010-12-23T02:58:18.837" Score="8" ViewCount="392" Body="&lt;p&gt;I'm just wondering about the future of it all. IMHO, there are 4 forces that define where technology goes: Microsoft, Apple, Google, Adobe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It looks like in Apple's iPhone/iPad iADs can now be programmed in HTML5. So does that mean HTML5 will eventually replace objective-c? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, Microsoft has now shifted it's focus from WPF/Silverlight to HTML5 and I assume Visual Studio 2011 will be all about tooling support for HTML5. Because that's what Microsoft do. (Tools). In a few months IE9 the last major browser will support HTML5.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly Adobe is getting on the HTML5 bandwagon and allows to export flash content to HTML5 in their latest tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And we all know how much in bed Google is with html5. Heck, their latest Operating System (Chrome OS) is nothing but a big fat web browser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apps for Mobile (i.e., iPhone, Android, WM7) are very hard for a company to program especially for many different devices (each with their own language) so I'm assuming this won't last too long. I.e., HTML5 will be the unifying language. Which is somewhat sad for app developers because now users will be able to play the &quot;cool&quot; html5 apps for free on the web and it'll be hard to charge for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So are strongly-typed languages really doomed, and in the future, say 5-10 years, will client side programming only be in HTML5? Will all of us become javascript programmers? :) Because the signs are sure pointing that way...&lt;/p&gt;&#xA;" OwnerUserId="11433" LastEditorUserId="11433" LastEditorDisplayName="" LastEditDate="2010-12-23T03:10:07.930" LastActivityDate="2010-12-23T13:56:48.660" Title="Will HTML5/JS Eventually Replace All Client Side Languages?" Tags="&lt;programming-languages&gt;&lt;client&gt;&lt;html5&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="3" />
  <row Id="29360" PostTypeId="2" ParentId="28507" CreationDate="2010-12-23T03:00:00.387" Score="1" ViewCount="" Body="&lt;p&gt;You should look into Techcofounder.com and startupfly.com&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also post it in craigslist forums for software development&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your passion for beginning a start up is very commendable, but please understand that the programming folks will be investing a lot of of their time and energy into it. If you think paying by stocks is worth it, you need to think this through and through. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have a business plan ready and by that I mean a good old fashioned one where you have technical and financial milestones in place, who heads sales and how do you differ from competition, how do you intend to go about funding, diluting plans, exit strategies etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do not approach people if you have not thought through this far.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-23T03:00:00.387" />
  <row Id="29361" PostTypeId="2" ParentId="29334" CreationDate="2010-12-23T03:06:26.043" Score="1" ViewCount="" Body="&lt;p&gt;In my organization, we typically have 3 kinds of releases: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Engineering Release -- basically hot fix for some specific customer or some feature only a particular customer has requested on an immediate basis. &lt;/li&gt;&#xA;&lt;li&gt;Minor Release -- bug fixes, incremental support&lt;/li&gt;&#xA;&lt;li&gt;Major Release -- new feature support etc.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;By definition, Major Release must have the relevant documentation in place both online and offline. Our tracking system ensures that documentation is very much a part of the checklist. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Minor releases need documentation only on anything new that has been added at the user perception level. So if you've included yet another heuristic that might reduce time complexity in some specific scenarios it may or may not be a significant call to put it in the pdf.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Engineering releases could do without documentation. Some informal use notes should be good enough to get started.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-23T03:06:26.043" />
  <row Id="29362" PostTypeId="2" ParentId="28507" CreationDate="2010-12-23T03:25:01.380" Score="0" ViewCount="" Body="&lt;p&gt;If its shares of a different company (already trading on an exchange), they'll probably work :).. But thats just equivalent to cash anyways.&lt;/p&gt;&#xA;" OwnerUserId="8652" LastActivityDate="2010-12-23T03:25:01.380" />
  <row Id="29363" PostTypeId="2" ParentId="29359" CreationDate="2010-12-23T03:34:36.207" Score="3" ViewCount="" Body="&lt;p&gt;Yes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's why. Apps are comprised of user interface code and back-end data. User interface code is run in HTML5/CSS3/Javascript. Back-end code can be proprietary and run in whichever language. Furthermore, jQTouch and similar libraries can be used to emulate iPhone-like UIs but open-source and written in Javascript/HTML5/CSS. jQTouch has shown that if the browser gives JS programmers access to the UI events of the device, JS programmers will emulate whichever UI style that is in fashion for the same platform. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Javascript programmers will be more in demand than ever. In a model-view-controller architecture, the model and controller are in the back-end, but the view code is best written in the browser. i.e. HTML5, Javascript, CSS. And you need to write JS code to access the back-end data, especially with heavy AJAX code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The productivity gains will all go to the dynamic interpreted languages. As processors get faster and faster, programmer coding productivity, sysadmin productivity, and app-admin productivity are stronger influences on overall productivity. You simply don't have to worry about how fast your programming language's VM or compiler performs anymore. You need to worry more now about how much it costs to provision and support your app.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most stand-alone apps are not that great in my opinion. Just like there are few great stand-alone PC apps, and the best ones are being transformed into web apps. It is actually better to give away the HTML/JS/CSS client app for free and charge a monthly fee for access to the back-end data and business logic. Programmers will do better selling subscriptions than one-shot apps. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW have a look at this &lt;a href=&quot;http://www.youtube.com/watch?v=DZSZIfhzc3A&quot; rel=&quot;nofollow&quot;&gt;video on writing a part of a standalone web app&lt;/a&gt; on a Webkit browser. It is interesting...&lt;/p&gt;&#xA;" OwnerUserId="10347" LastActivityDate="2010-12-23T03:34:36.207" CommentCount="2" />
  <row Id="29364" PostTypeId="2" ParentId="29170" CreationDate="2010-12-23T03:37:31.833" Score="1" ViewCount="" Body="&lt;p&gt;I think it is dependent on what you are doing. If I'm writing a proof-of-concept application then I'm basically cowboy-coding my ass off and not looking back. If I'm working on an application that I'm actually going to be working on for a while, then I make sure I code it well enough as well as making it understandable a month from now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that styling your code is a bit iffy. As some above have said, your job is to make a product, not formatted code but I would say at the very least one should stick with a defined style of commenting and coding things. I would hate to see half of the variables camel cased and the other half Hungarian.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But also, it depends on what you mean by 'clean-code'.&lt;/p&gt;&#xA;" OwnerUserId="7007" LastActivityDate="2010-12-23T03:37:31.833" />
  <row Id="29366" PostTypeId="2" ParentId="29334" CreationDate="2010-12-23T03:56:21.387" Score="2" ViewCount="" Body="&lt;p&gt;In 2010 are we still referring to printed documentation?  Why? ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In all seriousness, documentation (either &quot;F1&quot; application help, PDF, or online documentation) should be part of every single release.  Zero excuses.  It's that simple to &quot;publish.&quot;  As a matter of fact, IMO, there is no excuse for not updating the documentation on a regular basis (online and PDF), even in between releases, as soon as issues are known and corrected.  It doesn't need the same level of QA -- not even close.&lt;/p&gt;&#xA;" OwnerUserId="10397" LastActivityDate="2010-12-23T03:56:21.387" />
  <row Id="29367" PostTypeId="1" AcceptedAnswerId="29411" CreationDate="2010-12-23T03:59:24.973" Score="3" ViewCount="317" Body="&lt;p&gt;For your proprietary projects at work?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Problems I can imagine are: more dlls (can be a problem when for example you have to include a big dll but you only need few functions in that library), a lot of license statements you have to take care of when releasing your product, the reliability of the library, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any other potential problems? What is your opinion?&#xA;(info: I'm using .NET at work)&lt;/p&gt;&#xA;" OwnerUserId="8486" LastActivityDate="2010-12-30T11:30:51.500" Title="Is using a lot of free third party library a good thing?" Tags="&lt;.net&gt;&lt;free-software&gt;&lt;third-party-libraries&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="0" />
  <row Id="29368" PostTypeId="2" ParentId="29367" CreationDate="2010-12-23T04:02:23.483" Score="11" ViewCount="" Body="&lt;p&gt;Use libraries that are stable. What would the alternative be anyway? Rewriting the code from scratch?&lt;/p&gt;&#xA;" OwnerUserId="10088" LastActivityDate="2010-12-23T04:02:23.483" />
  <row Id="29369" PostTypeId="2" ParentId="7181" CreationDate="2010-12-23T04:03:53.370" Score="5" ViewCount="" Body="&lt;h1&gt;Use it&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Internalizing how relational databases work is difficult for a lot of people - but it's very valuable.  As you work with SQL more, it will work its way into your brain.  Keep pushing yourself.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;When something seems odd, investigate&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;In Chrome, I set up this search engine so all I have to do is type &quot;m [search query]&quot; to search the docs (dev.mysql.com's search sucks): {google:baseURL}search?{google:RLZ}{google:acceptedSuggestion}{google:originalQueryForSuggestion}sourceid=chrome&amp;amp;ie={inputEncoding}&amp;amp;q=site:dev.mysql.com/doc/refman/5.1/en+%s&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the docs don't have an answer, pop into #mysql on freenode and see if someone can provide some insight.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Read!&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Once you understand how relational databases do their thing, you'll want to know a bit more about what MySQL is doing with those magical queries you're writing.  I would highly recommend &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596101716&quot; rel=&quot;nofollow&quot;&gt;High Performance MySQL&lt;/a&gt; - it's very worth your time.&lt;/p&gt;&#xA;" OwnerUserId="381" LastActivityDate="2010-12-23T04:03:53.370" CommentCount="2" />
  <row Id="29370" PostTypeId="2" ParentId="29280" CreationDate="2010-12-23T04:08:26.833" Score="8" ViewCount="" Body="&lt;p&gt;Coding is not super important to be a true computer scientist. And thinking in code can constrain thinking as they seek to develop useful abstract concepts. Most excellent coders do not have the intellectual chops to analyze complex algorithms, or develop concepts such as programming languages, advanced searching and sorting  algorithms, finite automata theory, distributed computing theory, R-Trees,  fault-tolerance protocols, reliable communication protocols, digital signal processing algorithms, cryptographic theory, performance analysis and optimization, efficient caching, map-reduce, reliable security protocols etc. Excellent coders and computer engineers can usually use these theories in the systems that they are trying to build and do it quite effectively, but that is really the realm of the computer systems engineer or computer programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coding is critically important to being a computer programmer. Understanding how to encode the useful abstract concepts produced by the computer scientists into working code is also useful. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One big problem in computer science is that they often have to find solutions to math problems that have little utility in solving today's programming problems. Even if they coded a solution, nobody would really be able to use it. Think about digital signal processing theory. It was invented by folks like Fourier, Hilbert and Shannon, but the application to computerized DSP problems was not widely possible until about 20 years ago. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The big problem in computer education is that most people taught by computer scientists will not become computer scientists. But too many computer scientists don't get this. Coding may not be important to them, but if you are in their class, it is almost certainly going to be important to you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another big problem in computer education is that many true computer scientists lack the industrial experience to be useful in teaching software development. They are essentially trying to teach something that they really don't know. That causes them to lose credibility. Things that are important in an industrial setting just don't often register with some of these computer scientists. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The long and the short, coding is important for most people who become &quot;computer scientists&quot; because most of those people will become computer programmers and computer system engineers. &lt;/p&gt;&#xA;" OwnerUserId="10347" LastActivityDate="2010-12-23T04:08:26.833" CommentCount="1" />
  <row Id="29371" PostTypeId="2" ParentId="29359" CreationDate="2010-12-23T04:08:47.737" Score="7" ViewCount="" Body="&lt;p&gt;I think it's misguided to suggest that HTML5/JS will replace &lt;em&gt;ALL&lt;/em&gt; client-side languages.  Will a lot of applications go that way in future years?  Yes, probably.  Will all of them?  No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other major point to note is that the landscape is constantly changing.  HTML5 is a great technology that promises to solve a lot of the issues developers are currently having when trying to write applications that work cross-platform.  Sure, HTML5/JS can solve many of those problems, but the landscape will change and a new set of problems will crop up.  HTML5 will eventually seem dated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In 10 years, ask yourself whether HTML5/JS was the solution to all the problems and I can all but guarantee the answer will be no.  In 20 years the question itself will probably seem ridiculous.&lt;/p&gt;&#xA;" OwnerUserId="91" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-23T13:56:48.660" LastActivityDate="2010-12-23T13:56:48.660" CommentCount="1" />
  <row Id="29372" PostTypeId="2" ParentId="28507" CreationDate="2010-12-23T04:17:26.543" Score="6" ViewCount="" Body="&lt;p&gt;Like many others have said: nowhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;But it doesn't end there.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really want to make it work, then there are steps you can take:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1. Build A Prototype&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something that shows what your system is capable of. Doesn't have to be pretty. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2. Make A Business Plan&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Figure out how you're going to market the product, &lt;em&gt;who&lt;/em&gt; you're going to market it to, and how much you can feasibly charge for it considering your target market. &lt;strong&gt;Lots&lt;/strong&gt; of banks have business plan builders on their websites for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3. Seek Venture Capital&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think banks and, investment firms (like &lt;a href=&quot;http://ycombinator.com/&quot; rel=&quot;nofollow&quot;&gt;ycombinator&lt;/a&gt;). Note that nearly every investment company will require a very detailed business plan to even let you walk in the door - and the still might not read it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm fortunate to be friends with a number of successful entrepreneurs (3, two of which became multi-millionaires, and the other isn't that rich, but wants for nothing). All of them went through the process of writing their business plans whether or not they were seeking funding. It can take a year or more to write a detailed business plan.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;4. Pay Programmers With Your VC Funding&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's really the best way to go about it. The benefit is that, through making your business plan you will be forced to take a good strong look at what your idea &lt;em&gt;really&lt;/em&gt; is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, if you do get VC funding, you're off to the races. Most VCs will also have people that will help with parts of running a company (and usually take a higher share of the company).&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-12-23T04:30:47.127" LastActivityDate="2010-12-23T04:30:47.127" CommentCount="1" />
  <row Id="29373" PostTypeId="2" ParentId="29367" CreationDate="2010-12-23T04:55:58.473" Score="4" ViewCount="" Body="&lt;p&gt;It's good as long as you have good management on it. As you concern, it may take time to harness other works, and bad libraries sometimes even produce unexpected results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I try to use the popular library that have a huge community. So when there's a problem, I can ask provider/other users for support.&lt;/p&gt;&#xA;" OwnerUserId="9202" LastActivityDate="2010-12-23T04:55:58.473" />
  <row Id="29374" PostTypeId="2" ParentId="29109" CreationDate="2010-12-23T05:21:59.833" Score="1" ViewCount="" Body="&lt;p&gt;No, not at all. If you dont need the performance and there is a lib you can use the other language then dont bother with C/C++. I only do it nowadays when i target embedded systems that cant (easily?) run languages. Sometimes i use C because i am writing a plugin but really no.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However i wouldnt use python, perl, etc to avoid using C. My preference is actually C# because i like a good lib (which is a strength of .NET) and i like statically typed languages. Boo is a good alternative. But really haskell, ocaml, D, ML and such are all fine.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastEditorUserId="2528" LastEditorDisplayName="" LastEditDate="2010-12-23T09:02:37.910" LastActivityDate="2010-12-23T09:02:37.910" CommentCount="4" />
  <row Id="29375" PostTypeId="2" ParentId="28985" CreationDate="2010-12-23T05:22:47.553" Score="3" ViewCount="" Body="&lt;p&gt;A common mistake (although with strings &amp;amp; integers, not floats) is forgetting that JavaScript doesn't have strong typing. So you can run into situations where:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var myVar = 7;       // 7&#xA;myVar += 5;          // 12&#xA;&#xA;var myVar = &quot;7&quot;;     // 7&#xA;myVar += 5;          // 75&#xA;&#xA;var myVar = &quot;cat&quot;;   // cat&#xA;myVar += 5;          // cat5&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;All of these are perfectly valid statements in JavaScript. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it gets weirder, because while &quot;7&quot; and &quot;cat&quot; are both strings, not all strings are treated the same:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var myVar = 77;&#xA;parseInt(myVar);     // 77&#xA;&#xA;var myVar = &quot;77&quot;;&#xA;parseInt(myVar);     // 77&#xA;&#xA;var myVar = &quot;cat&quot;;&#xA;parseInt(myVar);     // NaN&#xA;&#xA;var myVar = &quot;77cat&quot;;&#xA;parseInt(myVar);     // 77&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Not to mention that (as @Tatu wrote):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var myVar = &quot;077&quot;;&#xA;parseInt(myVar);     // 63&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-12-23T05:22:47.553" />
  <row Id="29376" PostTypeId="2" ParentId="29280" CreationDate="2010-12-23T05:25:31.303" Score="2" ViewCount="" Body="&lt;p&gt;Your professor may be right a bit, in that to be a professor you don't need to code, but knows much about the theory. But that will not work outside the university perimeters. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-23T05:25:31.303" />
  <row Id="29377" PostTypeId="2" ParentId="7181" CreationDate="2010-12-23T05:29:53.373" Score="1" ViewCount="" Body="&lt;p&gt;In my opinion to learn SQL (and this is really for what you're asking, MySQL-specifics can come later), you should remove yourself from the &lt;em&gt;control flow&lt;/em&gt; of PHP-style programming.  Think specifically in the paradigm of declarative languages:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SQL defines WHAT you want, not how to do it. If you can try mentally removing the latter, the former will follow in time.  Abstract this layer in your mind and let MySQL (or Oracle or whatever) worry about &lt;em&gt;how&lt;/em&gt;.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Application logic can occur in SQL vs procedural/OO code in PHP.  For instance when making queries to the database for something, you can consistently join in a user table and maybe a permissions table to ensure the proper rights instead of making multiple pre-queries.  Inserting can be done through a similar selection (&lt;code&gt;insert into ... select ...&lt;/code&gt;) instead of named values to ensure data validation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, I highly recommend focusing on the &lt;em&gt;Codd primatives&lt;/em&gt; and understanding selection, projection, joining, union, and difference.  At the end of the day, the concepts are straight-forward and you can likely accomplish 80% of what you want to do through them.  The rest can follow.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-12-23T05:29:53.373" CommentCount="1" />
  <row Id="29378" PostTypeId="2" ParentId="29359" CreationDate="2010-12-23T05:29:55.837" Score="0" ViewCount="" Body="&lt;p&gt;Javascript is a very poor programming language. Translation from statically typed programming languages, such as Java with GWT, is becoming increasingly common. Javascript might become the same kind of unifying language as assembler — you can write in it directly, but rarely is it a good idea.&lt;/p&gt;&#xA;" OwnerUserId="11440" LastActivityDate="2010-12-23T05:29:55.837" CommentCount="2" />
  <row Id="29379" PostTypeId="2" ParentId="22516" CreationDate="2010-12-23T05:30:43.730" Score="2" ViewCount="" Body="&lt;p&gt;Glenford Myers's book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0471043281&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;The Art of Software Testing&lt;/em&gt;&lt;/a&gt; has a simple but well principled rule for this: Testing is complete when you have stopped finding bugs. Or, more practically, when the rate at which you find new bugs greatly slows down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bugs tend to &quot;cluster&quot; in certain modules and certain functions: The moment you find a bug in one, you know that you should look in it further for more bugs. To find bugs, you can &lt;a href=&quot;http://programmers.stackexchange.com/questions/192/is-test-coverage-an-adequate-measure-of-code-quality/14660#14660&quot;&gt;use the techniques&lt;/a&gt; of blackbox testing, whitebox testing, and mutation testing. &lt;strong&gt;As long as you are finding bugs, you know that your testing process is working!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To visualize your progress, chart the number of bugs your team has found per day. If the chart slopes down, then you know the techniques your team is using aren't going to find them anyway. Of course, if you believe your techniques aren't up to par, then please read Myers's book an apply the principles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, there is a chance that you might just be short of missing a new patch of bugs, and the rate of finding bugs would have greatly increased had you continued testing for a little bit more. However, if you believe your techniques are sound, this is unlikely.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-23T05:30:43.730" CommentCount="1" />
  <row Id="29380" PostTypeId="2" ParentId="29367" CreationDate="2010-12-23T05:43:22.920" Score="4" ViewCount="" Body="&lt;p&gt;IMO third party libraries are very good thing, but I have a rule that can use only libraries that have source code. On my previous job we used Delphi and that policy saved our butts so many times since many Delphi 3rd party vendors went out of the business, you never know.&lt;/p&gt;&#xA;" OwnerUserId="4512" LastActivityDate="2010-12-23T05:43:22.920" CommentCount="1" />
  <row Id="29381" PostTypeId="2" ParentId="13341" CreationDate="2010-12-23T05:46:02.870" Score="1" ViewCount="" Body="&lt;p&gt;This is not a &quot;hardcopy&quot; solution, but I think it would be exactly what you need: It won't take pixels away from you, but it can help give you a realistic idea of what you've been up to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can implement this yourself or use a package like &lt;a href=&quot;http://www.timesnapper.com/&quot; rel=&quot;nofollow&quot;&gt;TimeSnapper&lt;/a&gt; or &lt;a href=&quot;http://www.rescuetime.com/tour&quot; rel=&quot;nofollow&quot;&gt;RescueTime&lt;/a&gt;. Set up a program to take a random snapshot of your screen. For example, it might take one every 7 to 12 minutes; it's important that it's random so you don't try to synchronize with it. Then, at the end of the day--or week-- look at the screen shots (around 48 or so) and see what you were up to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This technique also works surprisingly well if you randomly go between tasks frequently. Over a long enough time period, you're still getting a very realistic picture of what you're up to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Warning! If you do this, you might find out how much time you spend on StackExchange!&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-12-25T02:02:54.900" LastActivityDate="2010-12-25T02:02:54.900" />
  <row Id="29384" PostTypeId="2" ParentId="28667" CreationDate="2010-12-23T06:09:57.100" Score="0" ViewCount="" Body="&lt;p&gt;When the deadline is near, and requirements change, design changes, and you spend 16 hours in office, that is evil. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastEditorUserId="8820" LastEditorDisplayName="" LastEditDate="2010-12-23T10:38:55.147" LastActivityDate="2010-12-23T10:38:55.147" CommunityOwnedDate="2010-12-23T06:09:57.100" />
  <row Id="29385" PostTypeId="2" ParentId="29109" CreationDate="2010-12-23T06:19:06.283" Score="2" ViewCount="" Body="&lt;p&gt;The where and why are usually going to be:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;familiarity&lt;/li&gt;&#xA;&lt;li&gt;desired language features&lt;/li&gt;&#xA;&lt;li&gt;specific libraries you want to use&lt;/li&gt;&#xA;&lt;li&gt;performance requirements&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For server side programming you can often choose from a myriad of different languages, compiled or interpreted.  Usually the choice of language is driven by which platform you or your team will be most effective on.  Or if you don't yet have a team, the availability of skills in the market.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a side note I don't really understand deciding to use C/C++ based on performance (only) since many scripting languages are extensible with C/C++.  You get the benefit of a rapid development language coupled with the ability to migrate the slow portions into C/C++ extensions.  Certainly if your doing systems programming where every op counts it's understandable, but in most app development I don't get it.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastEditorUserId="7575" LastEditorDisplayName="" LastEditDate="2011-03-31T16:51:55.080" LastActivityDate="2011-03-31T16:51:55.080" CommentCount="1" />
  <row Id="29386" PostTypeId="2" ParentId="29367" CreationDate="2010-12-23T06:27:15.450" Score="0" ViewCount="" Body="&lt;p&gt;Using alot of quality libraries (free or not) is always a good thing.  It saves time and money.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-23T06:27:15.450" />
  <row Id="29387" PostTypeId="2" ParentId="29359" CreationDate="2010-12-23T06:29:09.167" Score="0" ViewCount="" Body="&lt;p&gt;It also depends on the skill of majority of developers and the tools they use. The technology giants you mention can drive a technology based on the tools they provide. For example, people say HTML5 is Flash killer but I feel thats just too far away there are many Flash developers and it is a daunting task to shift their skills to JavaScript. What eventually happens the skill remains same but output becomes different. In this case, Adobe comes out with HTML5 conversion tool.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, you have to think about performance of client applications. Where it is necessary, platform specific tool will be utilized. Takes games and iOS apps for example. I know WebGL is coming out good but I feel people still use C to create games. Or they'll create a game language that creates high performance games. Apple initially wanted only webapps but when developers saw the wonders of Cocoa they jumped on it to create classy apps. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To sum it up, there will always be new tools/language/technologies that'll always be &lt;em&gt;cooler&lt;/em&gt; than the current ones. &lt;/p&gt;&#xA;" OwnerUserId="11443" LastActivityDate="2010-12-23T06:29:09.167" />
  <row Id="29388" PostTypeId="2" ParentId="29313" CreationDate="2010-12-23T06:32:26.633" Score="1" ViewCount="" Body="&lt;p&gt;When dealing with technical details I like to try them myself so that I can tackle problems and overcome them. Therefore I think that if you would like to whet the appetite of your programmers with some technical stuff you should present the cool stuff regarding this subject and point them to the book that you want them to read. This is what Microsoft doing on PDC or other conferences. They put the cool stuff and give you some resources to read more. Hope that helps.&lt;/p&gt;&#xA;" OwnerUserId="5730" LastActivityDate="2010-12-23T06:32:26.633" />
  <row Id="29389" PostTypeId="2" ParentId="29212" CreationDate="2010-12-23T06:37:47.890" Score="0" ViewCount="" Body="&lt;p&gt;I try and write tests before the code.  I run my tests at least twice before a commit.  It then runs again with the Continous Integration server.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-23T06:37:47.890" />
  <row Id="29390" PostTypeId="2" ParentId="29334" CreationDate="2010-12-23T06:53:13.960" Score="0" ViewCount="" Body="&lt;p&gt;The documentation should by in sync with whatever software you are shipping to a customer. Any other mis-match is going to give you problems. And if you don't have a writer on staff, try contractors. Once you find one you like, keep him on retainer.&lt;/p&gt;&#xA;" OwnerUserId="9540" LastActivityDate="2010-12-23T06:53:13.960" />
  <row Id="29391" PostTypeId="1" AcceptedAnswerId="29399" CreationDate="2010-12-23T07:03:02.167" Score="5" ViewCount="338" Body="&lt;p&gt;I've been programming for a while and I think I write clean code. But I do this by hacking away, tinkering and testing things until I feel good about the functionality, and then coming in and refactoring, refactoring, refactoring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to write mostly in PHP, Java, and C. Are there any good books that will help me learn to visualize things better and not code everything as if in an infinite REPL loop?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="11446" LastEditorUserId="8820" LastEditorDisplayName="" LastEditDate="2011-01-05T05:41:14.353" LastActivityDate="2011-01-05T05:41:14.353" Title="Are there any good books on how to design software?" Tags="&lt;php&gt;&lt;design&gt;&lt;books&gt;&lt;c&gt;" AnswerCount="6" FavoriteCount="4" />
  <row Id="29392" PostTypeId="2" ParentId="29391" CreationDate="2010-12-23T07:06:13.767" Score="5" ViewCount="" Body="&lt;p&gt;Since you've stated in another comment that you're more interested in system architecture, perhaps you'll be more interested in &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321127420&quot; rel=&quot;nofollow&quot;&gt;Patterns of Enterprise Application Architecture by Martin Fowler&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However when it comes to coding I'll still recommend this book: &lt;a href=&quot;http://cc2e.com/&quot; rel=&quot;nofollow&quot;&gt;Code Complete 2nd Edition by Steve McConnel&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2960" LastEditorUserId="2960" LastEditorDisplayName="" LastEditDate="2010-12-23T07:22:15.340" LastActivityDate="2010-12-23T07:22:15.340" CommentCount="2" />
  <row Id="29393" PostTypeId="2" ParentId="29212" CreationDate="2010-12-23T07:06:47.933" Score="1" ViewCount="" Body="&lt;p&gt;I compile &amp;amp; test if one of the following conditions is satisfied:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Last compile was 15 minutes ago&lt;/li&gt;&#xA;&lt;li&gt;Last compile was 25 lines ago&lt;/li&gt;&#xA;&lt;li&gt;New function/subroutine has been implemented&lt;/li&gt;&#xA;&lt;li&gt;Major change&lt;/li&gt;&#xA;&lt;li&gt;New feature (or a bug disguised as a feature)&lt;/li&gt;&#xA;&lt;li&gt;Bug fix (removed a &quot;feature&quot;)&lt;/li&gt;&#xA;&lt;li&gt;I'm Bored&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6440" LastActivityDate="2010-12-23T07:06:47.933" />
  <row Id="29394" PostTypeId="2" ParentId="29359" CreationDate="2010-12-23T07:06:49.177" Score="0" ViewCount="" Body="&lt;p&gt;Not all but probably most. Maybe javascript can become fast enough to replace &lt;a href=&quot;http://www.slavasoft.com/hashcalc/index.htm&quot; rel=&quot;nofollow&quot;&gt;HashCalc&lt;/a&gt; but theres no web alternative to VLC (browsers wont support all those codecs). I doubt webbrowsers will let me access any file i want or store a recent file list (without a 'is this ok to access' everytime i click on the recent file) and i dont like the idea of distributing apps that are 99% web browsers (several mb) with my 100kb of code when it comes to cases where code breaks bc browsers are not backward compatible with the html or i need a variant/slight modification of webkit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-edit- also i like static languages rather then dynamic but i am assuming i can use a good language with LLVM which should be supported by the browser.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastEditorUserId="2528" LastEditorDisplayName="" LastEditDate="2010-12-23T07:12:29.080" LastActivityDate="2010-12-23T07:12:29.080" />
  <row Id="29396" PostTypeId="1" CreationDate="2010-12-23T07:13:18.910" Score="3" ViewCount="231" Body="&lt;p&gt;I gotten interested in web-development lately. I am still a student. I learnt basics of HTML, CSS and JavaScript. Then I thought I should improve my server side scripting. So I am learning Struts2 and I am doing better there. Now I have decided I should finally put my skill to some use. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my friend and I have decided to come up with a fun website for our class. But now I am realizing that, though I know server-side scripting to a good extent (not great, just good considering I am a beginner), I am nowhere near good in the basic elements viz. HTML, CSS and JavaScript. I mean, I can't do cool stuff with it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am aware of &lt;a href=&quot;http://www.w3schools.com/&quot; rel=&quot;nofollow&quot;&gt;w3schools&lt;/a&gt;, but it would be great if you can point out a more intuitive place where I can learn to do all the cool stuff in a short time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of the problems I am facing are:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) How should I design the basic layout of my website?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) How can I use 3rd party APIs like that of Facebook graph?&lt;/p&gt;&#xA;" OwnerUserId="4197" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-23T13:49:03.537" LastActivityDate="2010-12-23T13:49:03.537" Title="Where to master HTML, CSS and Javascript?" Tags="&lt;web-development&gt;&lt;javascript&gt;&lt;websites&gt;&lt;html&gt;&lt;css&gt;" AnswerCount="4" FavoriteCount="3" />
  <row Id="29397" PostTypeId="2" ParentId="29391" CreationDate="2010-12-23T07:13:22.963" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.pragprog.com/the-pragmatic-programmer&quot; rel=&quot;nofollow&quot;&gt;The Pragmatic Programmer&lt;/a&gt; is excellent and highly readable. Might not get to the nitty-gritty that you want though.&lt;/p&gt;&#xA;" OwnerUserId="11447" LastActivityDate="2010-12-23T07:13:22.963" />
  <row Id="29398" PostTypeId="2" ParentId="29391" CreationDate="2010-12-23T07:19:56.253" Score="0" ViewCount="" Body="&lt;p&gt;On Java there are the Blueprints, like &lt;a href=&quot;http://java.sun.com/developer/releases/petstore/&quot; rel=&quot;nofollow&quot;&gt;the Petstore&lt;/a&gt;. Beyond that there are tons of books on java architecture, including the excellent and free The J2EE Architects Handbook (from 2006, but most of it still applies well).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On PHP and C, while I don't know, I'd study some of the big frameworks, like Zend for PHP. Any big open source system written for your platform will help you understand architecture.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-12-23T07:19:56.253" />
  <row Id="29399" PostTypeId="2" ParentId="29391" CreationDate="2010-12-23T07:27:58.853" Score="1" ViewCount="" Body="&lt;p&gt;You can try &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201362988&quot; rel=&quot;nofollow&quot;&gt;Design of Design&lt;/a&gt; recommended by &lt;a href=&quot;http://www.joelonsoftware.com/items/2010/03/31b.html&quot; rel=&quot;nofollow&quot;&gt;Joel&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-23T07:27:58.853" CommentCount="1" />
  <row Id="29400" PostTypeId="2" ParentId="29396" CreationDate="2010-12-23T07:28:12.217" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;How should I design the basic layout&#xA;  of my website?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Consider using a CSS template &lt;a href=&quot;http://www.freecsstemplates.org/&quot; rel=&quot;nofollow&quot;&gt;like the ones here&lt;/a&gt; to build your website.  You can always take the template apart to see how it works.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How can I use 3rd party APIs like that&#xA;  of Facebook graph?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Facebook Graph is a REST API.  You hand it a prefabricated URL, and it returns a result to you in &lt;a href=&quot;http://www.json.org/&quot; rel=&quot;nofollow&quot;&gt;JSON.&lt;/a&gt;  There is a &lt;a href=&quot;http://developers.facebook.com/docs/reference/javascript/&quot; rel=&quot;nofollow&quot;&gt;JavaScript SDK for Facebook&lt;/a&gt; that you can use to access Facebook data using the &lt;a href=&quot;http://developers.facebook.com/docs/reference/api/&quot; rel=&quot;nofollow&quot;&gt;Facebook Graph API.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-23T07:35:12.447" LastActivityDate="2010-12-23T07:35:12.447" />
  <row Id="29401" PostTypeId="2" ParentId="29109" CreationDate="2010-12-23T07:31:37.347" Score="0" ViewCount="" Body="&lt;p&gt;There's actually a single answer to all questions formed like this. The best reason to use tech X instead of tech Y (where X and Y are roughly on the same level [like just about all contemporary programming languages are]) is because you already know X and don't know Y.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(but after Haskell arrived, there has been no reason to use anything else)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="11450" LastActivityDate="2010-12-23T07:31:37.347" />
  <row Id="29402" PostTypeId="2" ParentId="29391" CreationDate="2010-12-23T07:39:43.977" Score="0" ViewCount="" Body="&lt;p&gt;you'll want to be consistent, naming vars, functions etc.. this will stop you from going back and refactoring names. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may also want to stay consistent with spaces, line breaks etc.. maybe keep vars 2 line breaks away or whatever you prefer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;reading code written by others will also give you hints as to what you find most readable or easy on the eye and you may want to borrow from their style. i have done this many times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;also, refactoring is not always bad, it shows you constantly want to improve your code. if you are refactoring too much it might indicate that you have not thought about how you are going to write something or solve a problem. and i would hope you are also improving interaction between methods and classes as well during this stage.&lt;/p&gt;&#xA;" OwnerUserId="10442" LastActivityDate="2010-12-23T07:39:43.977" />
  <row Id="29403" PostTypeId="2" ParentId="29396" CreationDate="2010-12-23T07:43:46.870" Score="1" ViewCount="" Body="&lt;p&gt;Have look on Head First Web Design.&lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2010-12-23T07:43:46.870" />
  <row Id="29405" PostTypeId="2" ParentId="29109" CreationDate="2010-12-23T08:31:29.153" Score="4" ViewCount="" Body="&lt;p&gt;I'm surprised nobody has mentioned this yet, but C++ introduced us to &lt;a href=&quot;http://en.wikipedia.org/wiki/Reference_%28C%2B%2B%29&quot; rel=&quot;nofollow&quot;&gt;references&lt;/a&gt;, which almost solve all of the problems and pitfalls of pointers:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void ModifyVar(int&amp;amp; var)&#xA;{&#xA;    var = 5;&#xA;}&#xA;&#xA;int test = 4;&#xA;ModifyVar(test);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Instead of:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void ModifyVar(int * var)&#xA;{&#xA;    *var = 5;&#xA;}&#xA;&#xA;int test = 4;&#xA;ModifyVar(&amp;amp;test);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Much safer and easier too... and without the overhead of passing-by-value.&lt;/p&gt;&#xA;" OwnerUserId="231" LastActivityDate="2010-12-23T08:31:29.153" CommentCount="6" />
  <row Id="29406" PostTypeId="2" ParentId="29109" CreationDate="2010-12-23T08:46:46.847" Score="0" ViewCount="" Body="&lt;p&gt;C++ vs Python vs Perl can't be judged easily. Depends on the project and requirements.&#xA;C++ has an arsenal of utils long ago, running in many platforms. But it is painfull to start walking through streams for just passing String to Integer and reverse.&#xA;C++ on the other hand, has an awful deal with dependencies on libraries. Once you compile something in gcc X or msvc Y, then you can't rely that the code will run by the next version of those tools. The same hell is on windows, the same hell is on unix too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perl, takes its power from u*x world but especially as a regex tool. This is what it is used most of the time. Along with some pretty serious tools that even Java can't do it in a normal way ( check out how to upload a file to a web server ), perl is &quot;just do it&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Python, is easy. Is flexible. Dynamic language. So easy that you can send to a function an integer, the script expects string, yet you can have result! Unexpected though, but result. So it needs programmer to be very cautious. IDLE offers some debugging but when you have telneted to a system, or sshed in 3 levels down and you wanna find your problem, debugger won't be there to stand next to you. But, it can do some great math work fast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java...an ecosystem of buzzwords, alien technologies, big words and when you want to just upload a file to webserver, you find that you can do it only if the server has jsp.&#xA;If you want to call system libraries or system functions like monitoring you find that you have to dig out a lot. And perhaps to reach JNI and ok...you think then...&quot;Why, Lord?&quot;&#xA;Apart from that, great tool for business suites, and multithreading, I liked it a lot.&#xA;Fast to make a program and show to your CV &quot;Oh I know that technology too&quot; and your wanna be boss, be amazed! Even though, the technology might not be that needed...(ok, folks, I hate Spring....)&lt;/p&gt;&#xA;" OwnerUserId="9440" LastActivityDate="2010-12-23T08:46:46.847" />
  <row Id="29407" PostTypeId="2" ParentId="29396" CreationDate="2010-12-23T08:54:00.020" Score="1" ViewCount="" Body="&lt;p&gt;Depends what you mean by &quot;mastering&quot;, learning all the nitty gritty details is one thing and getting up a site is another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;If you're into the nitty gritty implementation...&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can get the basics down using the other posts but eventually you'll have to deal with cross-browser compatibility. I reference &lt;a href=&quot;http://www.quirksmode.org/compatibility.html&quot; rel=&quot;nofollow&quot;&gt;quirksmode&lt;/a&gt; on a very frequent basis. Which is particularly useful when you have to deal with wondering why something doesn't look write in certain browsers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a wealth of sites that you'll have to reference to figure out why/what something renders the way it does. It's usually a little more involved, but is where you tend to lean towards when developing a web application (especially where security is a concern).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, this is where I spend most of my time and use tools like &lt;a href=&quot;http://code.google.com/webtoolkit/&quot; rel=&quot;nofollow&quot;&gt;Google Web Toolkit&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;If you're into it just for the design...&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might want to check out from frameworks, this will get you over the technical humps and get you to design. Here are a few that come to mind that I like to use/used for simple sites:&#xA;CSS frameworks:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.blueprintcss.org/&quot; rel=&quot;nofollow&quot;&gt;Blueprint&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://960.gs&quot; rel=&quot;nofollow&quot;&gt;Grid 960&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;JavaScript frameworks:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jquery.org/&quot; rel=&quot;nofollow&quot;&gt;jQuery&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.prototypejs.org/&quot; rel=&quot;nofollow&quot;&gt;Prototype&lt;/a&gt; (Used to use)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://mootools.net/&quot; rel=&quot;nofollow&quot;&gt;Mootools&lt;/a&gt; (Used to use)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://script.aculo.us/&quot; rel=&quot;nofollow&quot;&gt;Scriptaculous&lt;/a&gt; (Used to use)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You can set up your own mini web development server by using a fully fledged development environment using an all-in-one kit such as [BitNami stacks] or &lt;a href=&quot;http://bitnami.org/&quot; rel=&quot;nofollow&quot;&gt;9&lt;/a&gt;[LAMP/WAMP]&lt;a href=&quot;http://www.wampserver.com/en/&quot; rel=&quot;nofollow&quot;&gt;10&lt;/a&gt; down to simple web servers like &lt;a href=&quot;http://www.ritlabs.com/en/products/tinyweb/&quot; rel=&quot;nofollow&quot;&gt;TinyWeb&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="11458" LastActivityDate="2010-12-23T08:54:00.020" />
  <row Id="29409" PostTypeId="2" ParentId="29396" CreationDate="2010-12-23T09:06:07.577" Score="1" ViewCount="" Body="&lt;p&gt;Well,first things first,&#xA;There's no single source of mastery and no tutorial is good enough for mastering any technology. It's only through working on live projects and continous series of error, recovery and result analysis in different situations that you gain sucessive experience and expertise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;now what remains is learning the language syntax and for that w3schools is a very good site for html and css. it explains almost all the tags in a very presentable manner. For javascript and related techs like ajax and jquery google is the best book you'll ever have. becoz no single book will ever answer all your javascript queries in a single volume.&#xA;gook luck.&lt;/p&gt;&#xA;" OwnerUserId="11460" LastActivityDate="2010-12-23T09:06:07.577" />
  <row Id="29410" PostTypeId="2" ParentId="29149" CreationDate="2010-12-23T09:10:19.523" Score="0" ViewCount="" Body="&lt;p&gt;Shoot, I buy myself a whiteboard just so I look productive.&lt;/p&gt;&#xA;" OwnerUserId="11270" LastActivityDate="2010-12-23T09:10:19.523" />
  <row Id="29411" PostTypeId="2" ParentId="29367" CreationDate="2010-12-23T09:20:52.637" Score="14" ViewCount="" Body="&lt;p&gt;Why you should always &lt;em&gt;&lt;code&gt;consider&lt;/code&gt;&lt;/em&gt; an existing library over the complete rewrite your fellow developer is proposing, usually because it will be “better”:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Authors are experts in the domain&lt;/strong&gt; covered by the library. This ensure that you will get perfect implementation. A good example is SharpMap. The authors are experts in geospacial softwares.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;They will be more stable&lt;/strong&gt; than your own as it is used by hundred if not multiple thousands of other users. You will certainly encounter problems, but most of them have already been encountered by others and fixed by authors. If they don't fix them, it's a good opportunity for you to contribute!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;You will learn&lt;/strong&gt; from others code or design. Many popular libraries are written by top notch developers and usually put in light good coding practices and design. You will learn by using them.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Save tons of money&lt;/strong&gt;. The equivalent of hundred if not thousands man days of work for free or at the very worst one man day.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Get premium support&lt;/strong&gt;. Paid libraries usually comes with free support from top notch developers you can contact 24h a day. Many developers of free libraries also provide that level of support. Exposing your team to those developers with be beneficial for them.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;New features will appears automatically without efforts&lt;/strong&gt; in your product. If you are using the reporting engine from vendor X, and vendor X releases the new feature Y. You will be able to provide that Y feature to your customer at no cost, with very low effort. You can then consider the authors of your libraries as other teams working for you, for free or very little money!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Unless your are an expert in the domain, you have thousands of users, you have nothing to learn from otehrs, you have tons of money, you don't need any support and you have plenty of resources, &lt;strong&gt;there is no reason to reinvent the wheel&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In response to Lenny's comment below, I will use this fact: when reporters asked &lt;a href=&quot;http://en.wikipedia.org/wiki/Alan_Shepard&quot; rel=&quot;nofollow&quot;&gt;Shepard&lt;/a&gt; what he thought about as he sat atop the Redstone rocket, waiting for liftoff, he had replied,&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The fact that every part of this ship was built by the low bidder&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Do you think NASA would have been able to send men to the moon if they tried to build the components of their rocket themselves?&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-23T09:43:06.063" LastActivityDate="2010-12-23T09:43:06.063" CommentCount="9" />
  <row Id="29412" PostTypeId="2" ParentId="29334" CreationDate="2010-12-23T09:35:42.700" Score="2" ViewCount="" Body="&lt;p&gt;I assume you are talking about end user documentation. Writing documentation is a pain in the @$$ and while I've developed some technique to convince me the inverse, I still have problems with that. This is how I try to manage it:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Integrate the update of the documentation in your DoD (&lt;a href=&quot;http://www.scrumalliance.org/articles/105-what-is-definition-of-done-dod&quot; rel=&quot;nofollow&quot;&gt;Definition of done&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This will ensure that your documentation will be up to date at the end of each user story completion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is the definition of done we wrote. I tried to keep the original formattings, so you get the idea. It's an A4 page put on the whiteboard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;---------- 8&amp;lt; ------------ Cut Here ------------ 8&amp;lt; ----------&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;The not negotiable&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Definition of “Done”&lt;/h3&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Code with 80% unit test coverage, committed in repository&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Screenshots if applicable (1024x728, 395x281, 170x121 &amp;amp; 729x329) &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Feature descriptions if applicable (50 chars, 100 chars) &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Full end user documentation &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;What's new file properly updated&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;---------- 8&amp;lt; ------------ Cut Here ------------ 8&amp;lt; ----------&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course you can add a review process in the documentation. We have that since none of us are native English speakers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the advantage of the Definition of Done like this is that your product is potentially shippable at the end of &lt;strong&gt;each&lt;/strong&gt; user story completion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use this technique in combination with &lt;a href=&quot;http://the99percent.com/videos/5822/Seth-Godin-Quieting-the-Lizard-Brain&quot; rel=&quot;nofollow&quot;&gt;this one&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-24T11:48:50.817" LastActivityDate="2010-12-24T11:48:50.817" />
  <row Id="29413" PostTypeId="2" ParentId="29367" CreationDate="2010-12-23T09:39:45.927" Score="3" ViewCount="" Body="&lt;p&gt;Using 3rd party libraries is almost always a good thing. But sometimes, when I would only need one little helper method, I look at how the 3rd party lib implements it, and then implement it myself to limit dependencies (if I'm allowed to do so).&lt;/p&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2010-12-23T09:39:45.927" />
  <row Id="29414" PostTypeId="1" CreationDate="2010-12-23T09:41:44.223" Score="0" ViewCount="216" Body="&lt;p&gt;I'm creating a ecommerce web applicaiton using PHP and MYSQL(MYISAM). I want to know how to speed up my queries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a products table with over a million records with following columns:&#xA;id (int, primary), catid(int), usrid (int), title (int), description (int), status (enum), date(datetime).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently I split this one table into multiple tables based on the product categories(catid), thinking that it might reduce the load on the server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I need to fetch results from these tables combined with the following sets of conditions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;results matching a usrid and status. (to fetch a users products)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;results matching status and title or description (eg: for product search)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Now currently I have to use UNION to fetch results from these all tables combined which is slowing down the permormance also I can't apply the LIMIT to the combined result set.&#xA;I thought of creating an index on all these columns to speed up the searching but this might slow down the INSERTS and UPDATES. I'm begining to think that splitting the table was not a good idea in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to know the best approach to optimize the data retrieval in such a situation.&#xA;I'm open to new database schema proposals as well.&lt;/p&gt;&#xA;" OwnerUserId="11460" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-23T13:43:24.543" LastActivityDate="2010-12-23T13:43:24.543" Title="mysql optimization for a large database" Tags="&lt;php&gt;&lt;database&gt;&lt;mysql&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="1" />
  <row Id="29415" PostTypeId="2" ParentId="29109" CreationDate="2010-12-23T09:42:19.467" Score="2" ViewCount="" Body="&lt;p&gt;I'm just switching from C to C++ and I think the gain is considerable, even if you don't have a need for Templates and OOP.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Better memory management&lt;/li&gt;&#xA;&lt;li&gt;Stronger type system&lt;/li&gt;&#xA;&lt;li&gt;A better standard library&lt;/li&gt;&#xA;&lt;li&gt;Namespaces&lt;/li&gt;&#xA;&lt;li&gt;...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2010-12-23T09:42:19.467" />
  <row Id="29416" PostTypeId="2" ParentId="29212" CreationDate="2010-12-23T09:48:14.163" Score="1" ViewCount="" Body="&lt;p&gt;For me it's not about how much I write. I can write thousands of lines of simple code without having to test it. But when I'm writing more difficult code I tend to test each function individually after having written a cohesive set of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes though, seeing your code running is a huge motivational boost, when you haven't run anything in a while it's good to see it working.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-23T09:48:14.163" />
  <row Id="29417" PostTypeId="2" ParentId="29414" CreationDate="2010-12-23T09:50:36.697" Score="1" ViewCount="" Body="&lt;p&gt;The first question that comes to mind are: what are your indices? You basically need an index on every field you use for referencing ('join on...'), selecting ('where ...') or ordering ('order by'). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you create an index for cat_id, the performance should be better than unioning on a table split by cat_id.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use 'explain' to see what the query actually does, and see if you can minimize full table scans by setting appropriate indices.&lt;/p&gt;&#xA;" OwnerUserId="9237" LastActivityDate="2010-12-23T09:50:36.697" CommentCount="2" />
  <row Id="29418" PostTypeId="2" ParentId="26829" CreationDate="2010-12-23T09:58:07.207" Score="0" ViewCount="" Body="&lt;p&gt;Given you have no hope in getting all browsers that are used in the real world to support a new language; the language will have to compile down to jscript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As all the examples of the web are in jscript, the language should mostly look like jscript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think there is scope with have a “sub set” of jscript that is check by a static checker but is also valid jscript.  E.g:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;All variables must have a comment that say there types before the first usage.&lt;/li&gt;&#xA;&lt;li&gt;All usages of variables must be valid with the above.&lt;/li&gt;&#xA;&lt;li&gt;Functions/class may not be used if they have not be declared in a comment#&lt;/li&gt;&#xA;&lt;li&gt;A comment at the top of the js file must list all other js files that it depends on.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1114" LastActivityDate="2010-12-23T09:58:07.207" />
  <row Id="29419" PostTypeId="2" ParentId="26829" CreationDate="2010-12-23T10:21:17.357" Score="0" ViewCount="" Body="&lt;p&gt;You can use languages such as haXe to write your code in a statically typed manner and export it to javascript. JavaScript is becoming very fast, so it is sufficient as an output language. Trying to enforce a statically typed language as a web standard is near to impossible. &lt;a href=&quot;http://www.ecmascript.org/es4/spec/overview.pdf&quot; rel=&quot;nofollow&quot;&gt;Attempts to introduce static typing into JavaScript&lt;/a&gt; have failed for reasons to broad to discuss.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-12-23T10:21:17.357" />
  <row Id="29420" PostTypeId="2" ParentId="29344" CreationDate="2010-12-23T10:27:34.460" Score="0" ViewCount="" Body="&lt;p&gt;Firstly, I assume you'd want a tracing jit rather than a method jit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best approach to take would be compiling the code to llvm IR, then adding in tracing code, before producing a native executable. Once a code block becomes sufficiently well used and once enough information about the &lt;strong&gt;values&lt;/strong&gt; (not the types like in dynamic languages) of variables has been collected then the code can be recompiled (from the IR) with guards based on values of the variables.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I seem to remember there was some progress on making a c/c++ jit in clang under the name libclang.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastEditorUserId="10037" LastEditorDisplayName="" LastEditDate="2010-12-24T08:28:11.360" LastActivityDate="2010-12-24T08:28:11.360" CommentCount="2" />
  <row Id="29421" PostTypeId="1" AcceptedAnswerId="29468" CreationDate="2010-12-23T10:53:54.987" Score="1" ViewCount="69" Body="&lt;p&gt;I have a &lt;code&gt;User&lt;/code&gt; class which needs to load data from a variety of sources, e.g. the main user database, WordPress user metadata, authorizations from another app, etc. For the sake of organization, I want to separate out those different data loaders into their own classes. Calls to &lt;code&gt;$user-&amp;gt;get_name()&lt;/code&gt; would appropriately delegate down to whatever backend object provides this information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How might this look in PHP? Is there a name for this pattern? (And hopefully it's not an anti-pattern.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can anticipate people suggesting some embedded objects, like &lt;code&gt;$user-&amp;gt;wordpress&lt;/code&gt; as an interface to the WordPress loader. I have an additional complicating factor, that not all users are present in all of our data stores. My loaders are able to identify if they understand and have data for a given username/id, and they're loaded into the &lt;code&gt;User&lt;/code&gt; object with a priority level. A given identifier may only trigger a subset of data loaders, so &lt;code&gt;$user-&amp;gt;get_name()&lt;/code&gt; essentially is a consistent interface to user data, wherever it's stored.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm evaluating my setup in an effort to make things more testable, and I believe this is an appropriate first step.&lt;/p&gt;&#xA;" OwnerUserId="444" LastActivityDate="2010-12-23T19:10:26.627" Title="PHP objects with configurable data interfaces" Tags="&lt;php&gt;&lt;design-patterns&gt;&lt;object-oriented&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="29422" PostTypeId="1" CreationDate="2010-12-23T11:01:57.040" Score="7" ViewCount="392" Body="&lt;p&gt;In the answer for one question someone wrote that &lt;code&gt;assembly is not a language, it's a process&lt;/code&gt;. I tend to agree, since the assembly &quot;language&quot; is dependent on the architecture it will run on, which may differ quite a bit from one CPU to another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you've written assembly for one architecture, does that mean you can include it in the CV under merely &lt;code&gt;assembly&lt;/code&gt; along with the other programming languages? Or do you explicitly say that you've written assembly for that particular architecture?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; Changed 'dabbled' to 'written'. English isn't my native language and I misunderstood the term, thinking it meant that you've used it a lot instead of just a bit.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-12-23T13:33:18.207" LastActivityDate="2010-12-23T21:50:38.727" Title="Should I include `assembly` as programming language in the CV?" Tags="&lt;programming-languages&gt;&lt;cv&gt;&lt;assembly&gt;" AnswerCount="7" FavoriteCount="1" />
  <row Id="29423" PostTypeId="2" ParentId="29422" CreationDate="2010-12-23T11:06:31.140" Score="2" ViewCount="" Body="&lt;p&gt;Write assembler and include the particular CPU architecture. Otherwise you give indication that you didn't understand assembler.&#xA;Also consider to including assembler if it's &lt;strong&gt;relevant&lt;/strong&gt; for new job.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastActivityDate="2010-12-23T11:06:31.140" />
  <row Id="29424" PostTypeId="1" AcceptedAnswerId="29516" CreationDate="2010-12-23T11:10:49.513" Score="2" ViewCount="191" Body="&lt;p&gt;Yeah I understand that these two things&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;XML / XSLT / XPATH&lt;/li&gt;&#xA;&lt;li&gt;Asynchoronous Programming&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;may not be related to one another. I need to ask is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;a) &lt;strong&gt;When a C#.Net Developer-job is advertised saying, &quot;the following skill is required as mentioned in 1 and 2&quot;, then what does it actually mean?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;b) &lt;strong&gt;Lets say i need to master these two topics (1 and 2). What do i need to do to accomplish that skill? if there are some books for intermediates that actually teach that stuff with practical scenarios and case studies then please suggest some.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Answers are much appreciated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S: &lt;em&gt;I have worked xml packet crafting for message exchange over the network, developed some amateur xml parsers for some projects and done message exchange for a client server based messaging system using asynchronous calls. But i really need to know and learn what the companies are looking for when they write these things(1 and 2) as requirement in their job advertisment.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Aggregate skills required for the specific job were:&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ASP.NET 2.0 --OK&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Web Services  and .Net Remoting --OK&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;XML / XSLT / XPATH -----------------??????&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Asynchoronous Programming ------------??????&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;Windows Services --OK&lt;/li&gt;&#xA;&lt;li&gt;Javascript/XML/AJAX --OK&lt;/li&gt;&#xA;&lt;li&gt;Microsoft Silverlight/WPF --OK&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;So firstly&lt;/strong&gt;, its clear that AJAX is not related to Asynchronous programming (in this very specific context) as it is written as a &lt;strong&gt;separate&lt;/strong&gt; required skill (and i hope that its not a mere redundancy). In normal cases, my deductions would have been the same like Asynchronous programming means working with AJAX (Asynchronous JavaScript with XML).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Secondly&lt;/strong&gt; making a web service in C# does not require any &lt;strong&gt;extensive&lt;/strong&gt; experience with &lt;strong&gt;XSLT&lt;/strong&gt;. Infact exposing functions from a dll (encapsulating business logic) is the most simplest of any task with web services in C#. I wonder if there is some extra skill or experience that is needed???&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;If the answer could be elaborated in the light of this new information then it would be highly appreciated.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Steve.&lt;/p&gt;&#xA;" OwnerUserId="11205" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2010-12-23T14:39:21.473" LastActivityDate="2010-12-23T14:57:49.333" Title="What is meant by XML / XSLT / XPATH and Asynchoronous Programming?" Tags="&lt;books&gt;&lt;career-advice&gt;&lt;xml&gt;&lt;async&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="29425" PostTypeId="2" ParentId="29422" CreationDate="2010-12-23T11:12:38.967" Score="4" ViewCount="" Body="&lt;p&gt;I'd file that somehow under 'architecture experience', perhaps something like this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Successfully ported (kernel or&#xA;  subsystem) to [arch], in depth&#xA;  knowledge of [arch] assembly.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'd be quite concise in your 'goals' area, explicitly indicating what you hope to work with. It would suck if you got hired, then got handed a stack of ageing junk that had to be ported. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-23T11:12:38.967" />
  <row Id="29426" PostTypeId="2" ParentId="29062" CreationDate="2010-12-23T11:20:52.843" Score="2" ViewCount="" Body="&lt;p&gt;Since I'm about to go into an objective-setting conversation with my boss, I thought I'd add a few examples that are similar to some I'm considering suggesting for myself:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Increase test coverage for code in Project X to at least 95% by March 31st.&lt;/li&gt;&#xA;&lt;li&gt;Complete and distribute first draft of Project Y Architecture document by April 30th&lt;/li&gt;&#xA;&lt;li&gt;Collect review comments for architecture document, update where necessary and issue v1.-0 of document by June 30th&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I expect additional work to materialise within the times I've specified (it always has before, after all) and that work may have an effect on the &quot;Timely&quot; aspect in particular. That shouldn't be a problem: objectives should be reviewed regularly to make sure that they continue to meet the &quot;Achievable&quot; criterion. I'll need to make sure that I keep my manager in the loop on this - nobody likes unpleasant year-end surprises...&lt;/p&gt;&#xA;" OwnerUserId="4911" LastActivityDate="2010-12-23T11:20:52.843" />
  <row Id="29427" PostTypeId="2" ParentId="29422" CreationDate="2010-12-23T11:23:22.533" Score="12" ViewCount="" Body="&lt;p&gt;Maybe I'm being pedantic, but &quot;assembler&quot; isn't a programming language, it is a piece of software for translating assembly instruction mnemonics into opcodes for a particular processor. If you want to say you know &lt;em&gt;assembly language&lt;/em&gt;, list Assembly Language for XXX processor in your CV.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-12-23T11:23:22.533" CommentCount="3" />
  <row Id="29428" PostTypeId="1" CreationDate="2010-12-23T11:24:24.703" Score="3" ViewCount="217" Body="&lt;p&gt;I've been always interested, out of the pure self-amusement, in the history of open software used today:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;who were the people which started it and what were the reasons to start&lt;/li&gt;&#xA;&lt;li&gt;what were design decisions at the start&lt;/li&gt;&#xA;&lt;li&gt;how software evolved over the time&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Specifically, I'm interested in following software:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;GCC&lt;/li&gt;&#xA;&lt;li&gt;X&lt;/li&gt;&#xA;&lt;li&gt;Linux kernel&lt;/li&gt;&#xA;&lt;li&gt;Java&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Of course, there is plenty of information in Internet to google for, but I thought it would be nice to have list of interesting resources at this site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope some of visitors of this site have similar interest and can share a link or two they found particularly amusing/interesting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To make this entry more question-like, here's straight question: what are the most interesting/amusing links about history of open source software?&lt;/p&gt;&#xA;" OwnerUserId="6424" LastEditorUserId="6424" LastEditorDisplayName="" LastEditDate="2010-12-23T17:45:27.797" LastActivityDate="2011-01-04T02:52:34.087" Title="History of open source software" Tags="&lt;open-source&gt;&lt;history&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="6" />
  <row Id="29429" PostTypeId="1" AcceptedAnswerId="29451" CreationDate="2010-12-23T11:38:40.857" Score="2" ViewCount="271" Body="&lt;p&gt;I have finished my master degree and came out during the Recession period (Extreme Recession). I couldn't get any software related jobs for around one and half years. After that, I got one job and am successfully riding that job. Now I have one plus year of experience in the mobile field (iPhone).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is that time break a barrier for my career future? Could I enter into a MNC (multi-national corporation)? How would a top level company consider my break for the recession? Please give me your valuable thoughts.&lt;/p&gt;&#xA;" OwnerUserId="9795" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-23T13:35:18.233" LastActivityDate="2010-12-23T16:05:05.553" ClosedDate="2010-12-28T23:23:10.300" Title="Career Advice: Does Break in career affects for getting a job into MNC?" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;job-market&gt;" AnswerCount="4" CommentCount="4" />
  <row Id="29430" PostTypeId="1" CreationDate="2010-12-23T11:40:19.313" Score="28" ViewCount="1493" Body="&lt;p&gt;When i feel i am stressed i used to read this quote,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&quot;Many of life's failures are people who &#xA;did not realize how close they were &#xA;to success when they gave up.&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any Motivational quote that keeps you running? &lt;/p&gt;&#xA;" OwnerUserId="1522" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-29T09:37:58.220" LastActivityDate="2011-01-03T14:11:55.937" CommunityOwnedDate="2010-12-23T21:13:10.957" ClosedDate="2010-12-24T01:11:56.393" Title="Best Motivational Quote that keeps you running" Tags="&lt;career&gt;&lt;motivation&gt;&lt;quotes&gt;" AnswerCount="33" CommentCount="10" FavoriteCount="21" />
  <row Id="29431" PostTypeId="2" ParentId="16436" CreationDate="2010-12-23T11:41:35.770" Score="2" ViewCount="" Body="&lt;p&gt;I ask about the build/deploy process. I also make it a point to ask the tech guy. This gives me many insights into the company culture and the developer skill level and maturity. Stuff that tells the tale:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is every step automated?&lt;/li&gt;&#xA;&lt;li&gt;Do they write tests?&lt;/li&gt;&#xA;&lt;li&gt;What tools do they use?&lt;/li&gt;&#xA;&lt;li&gt;Heck, do they even use source control?&lt;/li&gt;&#xA;&lt;li&gt;How often they deploy to production? That's the best way to tell if somebody claiming to be oh-so-agile really is.&lt;/li&gt;&#xA;&lt;li&gt;How do they fix bugs and push fixes to production?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I draw tons of conclusions from answers to the above. And I love it how everybody shares as many juicy details as possible since, superficially, that looks like a tech question to ask.&lt;/p&gt;&#xA;" OwnerUserId="9663" LastActivityDate="2010-12-23T11:41:35.770" CommunityOwnedDate="2011-01-28T12:13:01.007" />
  <row Id="29432" PostTypeId="2" ParentId="29428" CreationDate="2010-12-23T11:42:12.343" Score="2" ViewCount="" Body="&lt;p&gt;You will like this movie&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/OxZUd.jpg&quot; alt=&quot;Revolution OS&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://video.google.com/videoplay?docid=7707585592627775409#&quot; rel=&quot;nofollow&quot;&gt;http://video.google.com/videoplay?docid=7707585592627775409#&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1541" LastActivityDate="2010-12-23T11:42:12.343" />
  <row Id="29433" PostTypeId="1" CreationDate="2010-12-23T11:43:54.363" Score="22" ViewCount="342" Body="&lt;p&gt;I'm currently doing a code review and one of the things I'm noticing are the number of exceptions where the exception message just seems to reiterate &lt;em&gt;where&lt;/em&gt; the exception occurred. e.g.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;throw new Exception(&quot;BulletListControl: CreateChildControls failed.&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;All three items in this message I can work out from the rest of the exception. I know the class and method from the stack trace and I know it failed (because I've got an exception).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It got me thinking about what message I put in exception messages. First I create an exception class, if one does not already exist, for the general reason (e.g. &lt;code&gt;PropertyNotFoundException&lt;/code&gt; - the &lt;em&gt;why&lt;/em&gt;), and then when I throw it the message indicates what went wrong (e.g. &quot;Unable to find property 'IDontExist' on Node 1234&quot; - the &lt;em&gt;what&lt;/em&gt;). The where is in the &lt;code&gt;StackTrace&lt;/code&gt;. The &lt;em&gt;when&lt;/em&gt; may end up in the log (if applicable). The &lt;em&gt;how&lt;/em&gt; is for the developer to work out (and fix)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have any other tips for throwing exceptions? Specifically with regard to the creating new types and the exception message.&lt;/p&gt;&#xA;" OwnerUserId="1083" LastActivityDate="2010-12-24T14:23:25.870" Title="How to write a good exception message" Tags="&lt;best-practices&gt;&lt;exceptions&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="4" />
  <row Id="29434" PostTypeId="1" CreationDate="2010-12-23T11:45:31.857" Score="1" ViewCount="146" Body="&lt;p&gt;Hi all,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have seen a couple of questions like this one and scanned through the answers but somehow the replies were not satisfactory or practical. So i wondered maybe people who have gone through it and may suggest a better approach for the preparation of this exam.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;My goal is actually NOT merely to pass that exam&lt;/strong&gt;. I intend to actually master the skill. I have been into asp.net web development for approximately 1.5 years and I want to study something that really improves &quot;Design and Development Skills&quot; in Web Development in general and asp.net to be specific which i can put to use and build upon that.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Please suggest a book that teaches professional Asp.Net design and development skills and approaches to quality development by taking through practice design scenarios and their solutions and through various case studies that involve design problems and their implemented solutions.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have found the Micorosoft training kits to be fairly interesting and helpful as these tend to increase knowledge. I have utilized a lot of things after getting a good explanation of things from the training kits. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, as far as &lt;strong&gt;Microsoft Training Kit for 70-564 is concerned&lt;/strong&gt;, there are &lt;strong&gt;not&lt;/strong&gt; a lot of good reviews about it. What i have read and searched on the net , the &lt;strong&gt;reviews on amazon and various forums&lt;/strong&gt;, &lt;strong&gt;stack-exchange&lt;/strong&gt; and &lt;strong&gt;experts-exchange&lt;/strong&gt;, were more inclined to the conclusion that &quot;&lt;strong&gt;Microsoft Training Kit for Exam 70-564 is not good. Its is not good as compared to other kits from Microsoft, like as compared to the training kit of Exam 70-562 or others&lt;/strong&gt;.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So i was looking for a proper book containing examples from &lt;strong&gt;practical world scenarios&lt;/strong&gt; and &lt;strong&gt;case studies&lt;/strong&gt; from which i can not only learn but also master the skills before wasting money of Microsoft Training Kit for Exam 70-564.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Waiting for experts to provide a suitable advice.&lt;/p&gt;&#xA;" OwnerUserId="11205" LastEditorUserId="11205" LastEditorDisplayName="" LastEditDate="2010-12-23T18:05:45.403" LastActivityDate="2011-01-10T13:44:05.943" Title="What is the best book for the preparation of MCPD Exam 70-564 (Designing and Developing ASP.NET 3.5 Applications)?" Tags="&lt;web-development&gt;&lt;design&gt;&lt;design-patterns&gt;&lt;skills&gt;&lt;asp.net&gt;" AnswerCount="1" CommentCount="4" FavoriteCount="2" />
  <row Id="29435" PostTypeId="2" ParentId="20581" CreationDate="2010-12-23T11:45:39.837" Score="0" ViewCount="" Body="&lt;p&gt;If you're using Windows, I would recommend C#. There are great frameworks and tools for many situations.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Windows Desktop: Windows Forms, WPF&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;With WPF you can create nice UIs easily. Most of other UI frameworks (for java, python, etc.) are oldschool and ugly.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Web: ASP.NET (MVC), Silverlight&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You can find ASP.NET hosting for only $3/month. Only PHP hosting is easier to find and cheaper. Java/Ruby/Python hosting might be harder to find/expensive.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Mobile: Windows 7 Phone&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Only if you have Windows Phone though.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Games: XNA&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;There are many game frameworks for other languages too, but XNA is quite good and powerful.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Robotics: Netduino&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Netduino boards are cheap and based on the popular arduino platform.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;THE tool: Visual Studio (Express),&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;A very good IDE. Even the free express versions are good.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Cross platform: Mono&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Windows, Linux, Mac. There might be better frameworks. But if you don't need to go cross platform that often, Mono gets the job done.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Jobs:&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;C# may not be the most popular, but still there are plenty of jobs (top 5 atleast).&lt;/p&gt;&#xA;" OwnerUserId="11472" LastActivityDate="2010-12-23T11:45:39.837" />
  <row Id="29436" PostTypeId="1" AcceptedAnswerId="29450" CreationDate="2010-12-23T11:48:46.120" Score="7" ViewCount="421" Body="&lt;p&gt;We're about to go live with a new version of our system. It's getting really close to Christmas. I work in a very small company. Everyone will be on leave or sporadically available over the next week or so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've argued with my boss that this is very risky and that we should go live in the new year when everyone is back and when we can provide full support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He is unflinching - he argues that we need to go live sooner - so that we can get new users and more revenue which we need. The number of new users will be minor amount over the next week or so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There has been a decent amount of system testing performed on the system. However a new live system, in my experience, needs a lot of care and attention in the first few days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I being pessimistic or realistic?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update - January: The system did not go live over Christmas. Ongoing system testing revealed various problems. So no support issues to deal with. Still preparing for release... &lt;/p&gt;&#xA;" OwnerUserId="6891" LastEditorUserId="6891" LastEditorDisplayName="" LastEditDate="2011-01-04T12:37:23.617" LastActivityDate="2011-01-04T12:37:23.617" Title="Is it a bad idea to release software on the night before Christmas?" Tags="&lt;support&gt;" AnswerCount="11" CommentCount="6" />
  <row Id="29437" PostTypeId="2" ParentId="29429" CreationDate="2010-12-23T11:49:22.477" Score="1" ViewCount="" Body="&lt;p&gt;In most cases, when there is a substantial break in any resume, people will end up asking you for the reason behind it in the interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether this particular recession was enough to justify a 1.5 years break, is something that depends on factors like the timing of your graduation and even what part of the world you  were in etc etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that as long as you are able to give a justifiable reason which is acceptable, it does not really affect your chances overall for any opportunity. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;More importantly, most interviewers will want to know what you did with that time and how well did you use it to learn / improve on your knowledge related to the job that you are applying for. How well you used that time is usually one important consideration when it comes to talking with candidates with a break in their resume&lt;/p&gt;&#xA;" OwnerUserId="2226" LastActivityDate="2010-12-23T11:49:22.477" CommentCount="0" />
  <row Id="29438" PostTypeId="2" ParentId="29436" CreationDate="2010-12-23T11:51:30.173" Score="0" ViewCount="" Body="&lt;p&gt;Realistic. Every client my company has goes into code freeze at least a week before Christmas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only balancing factor I can offer you is that over the christmas period your load will probably be low and the system could survive.&lt;/p&gt;&#xA;" OwnerUserId="5148" LastActivityDate="2010-12-23T11:51:30.173" />
  <row Id="29440" PostTypeId="2" ParentId="67" CreationDate="2010-12-23T11:55:11.397" Score="0" ViewCount="" Body="&lt;p&gt;check this list from Stack Overflow:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/5119/what-are-the-best-rss-feeds-for-programmers-developers&quot;&gt;RSS feeds for programmers developers&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6368" LastActivityDate="2010-12-23T11:55:11.397" CommunityOwnedDate="2010-12-23T11:55:11.397" />
  <row Id="29441" PostTypeId="2" ParentId="29436" CreationDate="2010-12-23T11:55:15.520" Score="3" ViewCount="" Body="&lt;p&gt;Yes, a new system does require a bit more care and attentions in order to flush out the last few bugs that may not have been caught during testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your business is really needing the new users then the answer is a business decision.  If the system breaks, or performs less than optimally, how much will the reputation damage the company over the additional revenue from new customers. If the potential damage is higher than the income from potential customers then I'd say wait until after when you do have the time to nurse the system if need be.&lt;/p&gt;&#xA;" OwnerUserId="1083" LastActivityDate="2010-12-23T11:55:15.520" />
  <row Id="29442" PostTypeId="2" ParentId="29436" CreationDate="2010-12-23T11:56:51.617" Score="4" ViewCount="" Body="&lt;p&gt;Depends on the target market and what your software does. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For eg: If your software is retailing products that could potentially be sold as christmas / new year gifts, then waiting till the new year could result in a major lost opportunity. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The holiday season (Oct end - Dec) is one of the most productive times of the year for retailers atleast in the US. The amount of revenues earned by retailers on some days (usually known internally as black days - atleast by the IT) sometimes outstrips revenues of other months by comparision&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In such a case, the risk (of loss of rep / system not working as expected etc etc) COULD ALL still possibly be worth the potential gains to be had for the business.&lt;/p&gt;&#xA;" OwnerUserId="2226" LastActivityDate="2010-12-23T11:56:51.617" CommentCount="2" />
  <row Id="29443" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T11:57:05.153" Score="10" ViewCount="" Body="&lt;p&gt;There are a lot, but I'm sharing this one,&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Don't wait for something big to occur.&#xA;  Start where you are, with what you&#xA;  have, and that will always lead you&#xA;  into something greater. - Mary Manin&#xA;  Morrissey&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Another one ,&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Nothing can stop the man with the&#xA;  right mental attitude from achieving&#xA;  his goal; nothing on earth can help&#xA;  the man with the wrong mental&#xA;  attitude.&#xA;  -Thomas Jefferson&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="10935" LastEditorUserId="10935" LastEditorDisplayName="" LastEditDate="2010-12-23T12:05:17.863" LastActivityDate="2010-12-23T12:05:17.863" CommunityOwnedDate="2010-12-23T21:13:10.957" />
  <row Id="29444" PostTypeId="2" ParentId="29422" CreationDate="2010-12-23T11:57:43.503" Score="6" ViewCount="" Body="&lt;p&gt;I think the question about whether it's technically a language is a little irrelevant, though it never hurts to be accurate (so yes include the specific architecture if you do list it and probably put Assembly Language rather than Assembler, though I'd personally read the later as a reasonable shorthand rather than a mistake to be penalised).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The things I'd make sure I was thinking about more than this are:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) The main thing:  &lt;strong&gt;will it help you get the job in question?&lt;/strong&gt;  You should tweak your CV depending on the role and for each one ask yourself does this make me look a better candidate &lt;em&gt;for this position&lt;/em&gt;.  There's no absolute, it's dependent and the job in question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) &lt;strong&gt;Are you happy to be asked questions about it in an interview?&lt;/strong&gt;  Is your knowledge current and up to a good standard?  Basically if you put it on your CV it's fair game for questions so make sure you're happy with that and that you feel however you do choose to present it represents your level of knowledge correctly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) And following on from that, &lt;strong&gt;where to put it?&lt;/strong&gt;  Given that you say you've dabbled maybe the best solution is in an Other Interests section you can say &quot;I have a wide interest in technology and have spent my own time investigating a range of languages and platforms outside my core skills set including 6800 (or whatever) Assembly Language.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-23T11:57:43.503" CommentCount="1" />
  <row Id="29445" PostTypeId="2" ParentId="14297" CreationDate="2010-12-23T11:57:54.110" Score="0" ViewCount="" Body="&lt;p&gt;Using a hidden object in the user interface (eg, a textbox) to store a value rather than define a properly-scoped and -typed variable.&lt;/p&gt;&#xA;" OwnerUserId="1548" LastActivityDate="2010-12-23T11:57:54.110" CommunityOwnedDate="2010-12-23T11:57:54.110" />
  <row Id="29446" PostTypeId="2" ParentId="29424" CreationDate="2010-12-23T12:00:05.403" Score="2" ViewCount="" Body="&lt;p&gt;AJAX (Asynchronous JavaScript and XML) describes both of your bullet points. So it might have been better for the job description to say that outright. XSLT and XPath are just ways to use/structure/interact with the XML DOM.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;When a C#.Net Developer-job is advertised saying, &quot;the following skill is required as mentioned in 1 and 2&quot;, then what does it actually mean?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Sounds like they're gearing towards someone to write a web application, namely a C# web service. Given the 2 strong implications, this position looks like it'll have a lot of responsibility.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Lets say i need to master these two topics (1 and 2). What do i need to do to accomplish that skill? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'm not a .NET developer, but here is a source I would go to if I were switching languages: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.c-sharpcorner.com/articles/articlelisting.aspx?sectionid=1&amp;amp;subsectionid=133&quot; rel=&quot;nofollow&quot;&gt;http://www.c-sharpcorner.com/articles/articlelisting.aspx?sectionid=1&amp;amp;subsectionid=133&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Short answer&lt;/strong&gt;: Web services are an advanced topic since essentially it's an API (Application Programming Interface) -- so it's &lt;strong&gt;crucial&lt;/strong&gt; the person who writes the API has ample development experience since it will be used by other developers (which we'll use to interact ).&lt;/p&gt;&#xA;" OwnerUserId="11458" LastEditorUserId="11458" LastEditorDisplayName="" LastEditDate="2010-12-23T12:10:27.030" LastActivityDate="2010-12-23T12:10:27.030" CommentCount="1" />
  <row Id="29447" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T12:02:25.043" Score="6" ViewCount="" Body="&lt;p&gt;&quot;The world doesn't owe you anything.  It was here first.&quot;  - sort of means: deal with it&lt;/p&gt;&#xA;" OwnerUserId="2657" LastActivityDate="2010-12-23T12:02:25.043" CommunityOwnedDate="2010-12-23T21:13:10.957" />
  <row Id="29448" PostTypeId="2" ParentId="29436" CreationDate="2010-12-23T12:06:01.837" Score="1" ViewCount="" Body="&lt;p&gt;Did you think about Support ? What if your released Product is buggy and it brings down the customers infrastructure down, will their be sufficient people to give support to your customers. Many companies actually defer from a release just before the holiday season.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-12-23T12:06:01.837" />
  <row Id="29449" PostTypeId="2" ParentId="29436" CreationDate="2010-12-23T12:06:37.943" Score="3" ViewCount="" Body="&lt;p&gt;It's risky, so it's mostly a matter of whether you want to take the risk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes it works just fine, but if it doesn't, and there is noone there who can fix the problems or even roll back to the previous version, you will be worse off than not doing the release.&lt;/p&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-12-23T12:06:37.943" />
  <row Id="29450" PostTypeId="2" ParentId="29436" CreationDate="2010-12-23T12:08:33.693" Score="10" ViewCount="" Body="&lt;p&gt;Yes, it's bad idea to release software before Christmas. I would hope it's been through some testing so the tires have been kicked a bit, but QA will still suffer due to the timing of the release. Speaking from experience, I've been forced into that position many times and it has &lt;em&gt;never&lt;/em&gt; turned out well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending how many customers are impact by it will largely determine how bad it'll really be. Worst case scenario (mine), it impacts a lot of people and you get a call at 3AM Christmas Day (relayed many times by someone overseas [who doesn't celebrate Christmas, this will most likely go through your manager]) to fix it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do understand business decisions sometimes and they're not very rational at times. But management (lower levels) are usually cornered and have to make hasty decisions; so when faced with the question, &quot;Do you want it done right or fast?&quot; -- they'll usually choose the latter.&lt;/p&gt;&#xA;" OwnerUserId="11458" LastActivityDate="2010-12-23T12:08:33.693" />
  <row Id="29451" PostTypeId="2" ParentId="29429" CreationDate="2010-12-23T12:09:38.060" Score="4" ViewCount="" Body="&lt;p&gt;Generally once you're in work breaks before that point cease to be a big deal.  I think this is especially true in this case as your gap occurred during a period where the job market was tough and immediately after college.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The times I'd worry about gaps were:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Where the reason for leaving the job immediately prior to the gap raised questions - so if someone quit a good job without something to go to that would be interesting.  Not necessarily bad, there could be good reasons, but I'd ask about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Where they occurred during times the market was good.  Again, there might be good reasons for this (personal, professional, whatever) but you'd ask about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Where there are lots of them.  Even if they occur during recessions or there are reasons, you'd be concerned about someone who always got laid off during recessions and failed to find something else, or frequently took career breaks (mainly because you'd wonder how long they'd stick around).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) And most of all, where the person wasn't doing anything useful with the time they weren't working.  Good things to do: improve your skills, work in any job (shows desire to work).  Bad things to do: watch daytime TV.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So it's a case by case basis but your situation doesn't sound bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As regards multi-nationals - in some cases their standards are lower than smaller companies so I don't think there would be a specific difference though that may depend on the company and the country.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-23T12:56:46.503" LastActivityDate="2010-12-23T12:56:46.503" />
  <row Id="29452" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T12:10:02.397" Score="5" ViewCount="" Body="&lt;p&gt;This one especially helps on those bad days&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Accept that some days you are the pigeon and some days the statue&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2226" LastActivityDate="2010-12-23T12:10:02.397" CommunityOwnedDate="2010-12-23T21:13:10.957" CommentCount="3" />
  <row Id="29453" PostTypeId="2" ParentId="14297" CreationDate="2010-12-23T12:13:26.060" Score="0" ViewCount="" Body="&lt;p&gt;The use of the &lt;code&gt;synchronized&lt;/code&gt; keyword in Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not that there is anything wrong with using &lt;code&gt;synchronized&lt;/code&gt; when it is used right. But in the code I work with, it seems that every time someone tries to write threadsafe code, they get it wrong. So I know that if I see this keyword, I have to be extra carefull about the reste of the code ...&lt;/p&gt;&#xA;" OwnerUserId="2248" LastActivityDate="2010-12-23T12:13:26.060" CommunityOwnedDate="2010-12-23T12:13:26.060" />
  <row Id="29454" PostTypeId="2" ParentId="29436" CreationDate="2010-12-23T12:13:55.473" Score="0" ViewCount="" Body="&lt;p&gt;Yes, it is risky and not worth doing.&lt;/p&gt;&#xA;" OwnerUserId="607" LastActivityDate="2010-12-23T12:13:55.473" CommentCount="2" />
  <row Id="29455" PostTypeId="2" ParentId="29433" CreationDate="2010-12-23T12:14:52.190" Score="6" ViewCount="" Body="&lt;p&gt;I'll direct my answer more to what comes after an exception: what's it good for and how should software behave, what should your users do with the exception?  A great technique I came across early in my career was to always report problems and errors in 3 parts: context, problem &amp;amp; solution.  Using this dicipline changes error handling enormously and makes the software vastly better for the operators to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a few examples.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Context: Saving connection pooling configuration changes to disk.&#xA;Problem: Write permission denied on file '/xxx/yyy'.&#xA;Solution: Grant write permission to the file.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In this case, the operator knows exactly what to do and to which file must be affected.  They also know that the connection pooling changes didn't take and should be repeated.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Context: Sending email to 'abc@xyz.com' regarding 'Blah'.&#xA;Problem: SMTP connection refused by server 'mail.xyz.com'.&#xA;Solution: Contact the mail server administrator to report a service problem.  The email will be sent later. You may want to tell 'abc@xyz.com' about this problem.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I write server side systems and my operators are generally tech savvy first line support.  I would write the messages differently for desktop software that have a different audience but include the same information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Several wonderful things happen if one uses this technique.  The software developer is often best placed to know how to solve the problems in their own code so encoding solutions in this way as you write the code is of massive benefit to end users who are at a disadvantage finding solutions since they are often missing information about what exactly the software was doing.  Anyone who has ever read an Oracle error message will know what I mean.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second wonderful thing that comes to mind is when you find yourself trying to describe a solution in your exception and you're writing &quot;Check X and if A then B else C&quot;.  This is a very clear and obvious sign that your exception is being checked in the wrong place.  You the programmer have the capacity to compare things in code so &lt;strong&gt;&quot;if&quot;&lt;/strong&gt; statements should be run in code, why involve the user in something that can be automated?  Chances are it's from deeper in the code and someone has done the lazy thing and thrown IOException from any number of methods and caught potential errors from all of them in a block of calling code that cannot adequately describe what went wrong, what the &lt;em&gt;specific&lt;/em&gt; context is and how to fix it.  This encourages you to write finer grain errors, catch and handle them in the right place in your code so that you can articulate properly the steps the operator should take.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At one company we had top notch operators who got to know the software really well and kept their own &quot;run book&quot; that augmented our error reporting and suggested solutions.  To recognise this the software started including wiki links to the run book in exceptions so that a basic explanation was available as well as links to more advanced discussion and observations by the operators over time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've had the dicipline to try this technique, it becomes much more obvious what you should name your exceptions in code when creating your own.  &lt;strong&gt;NonRecoverableConfigurationReadFailedException&lt;/strong&gt; becomes a bit of shorthand for what you're about to describe more fully to the operator.  I like being verbose and I think that will be easier for the next developer who touches my code to interpret.&lt;/p&gt;&#xA;" OwnerUserId="9951" LastEditorUserId="9951" LastEditorDisplayName="" LastEditDate="2010-12-24T14:23:25.870" LastActivityDate="2010-12-24T14:23:25.870" CommentCount="2" />
  <row Id="29457" PostTypeId="2" ParentId="20040" CreationDate="2010-12-23T12:16:58.787" Score="3" ViewCount="" Body="&lt;p&gt;Never, ever be afraid of long names.  Other than for visual controls (where I still rather archaically use three letter prefixes of the btn variety to avoid confusion between the controls and the fields that back them) I never use abbreviations and try to make all my names as useful as possible - if that means they're long then so be it.  With copy &amp;amp; paste and code complete it's not like I ever type them again anyway  :-)&lt;/p&gt;&#xA;" OwnerUserId="7585" LastActivityDate="2010-12-23T12:16:58.787" />
  <row Id="29458" PostTypeId="2" ParentId="29436" CreationDate="2010-12-23T12:19:30.907" Score="1" ViewCount="" Body="&lt;p&gt;I think nobody can stress enough how unrealistic is this. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On Christmas people are on vacations, support will be on minimum, even if everyone on your company is there, other people that you depend on, like your network provider will not. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remind your boss the Murphy law: &lt;a href=&quot;http://en.wikipedia.org/wiki/Murphy%27s_law&quot; rel=&quot;nofollow&quot;&gt;&quot;Anything that can go wrong, will go wrong&quot;&lt;/a&gt; There is a reason that this law exists :D&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even though you don't say what type of system is this, if it should be live on Christmas then it is already too late and if it doesn't matter consider that the people that will use it are already on vacations so they probably won't mind if you delay it one more week.&lt;/p&gt;&#xA;" OwnerUserId="11478" LastEditorUserId="1093" LastEditorDisplayName="" LastEditDate="2010-12-23T14:17:03.730" LastActivityDate="2010-12-23T14:17:03.730" CommentCount="2" />
  <row Id="29459" PostTypeId="2" ParentId="17183" CreationDate="2010-12-23T12:25:23.640" Score="2" ViewCount="" Body="&lt;p&gt;If they're running Windows, depending what you're looking for (when I deal with thick-client [desktop] applications) I generally have them send me system information which Microsoft makes super easy. This is only useful for getting the system information, client configurations, registry settings, et al.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Windows XP/Windows 7:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Start &gt; Run &gt; msinfo32 (or msinfo32.exe)&lt;/li&gt;&#xA;&lt;li&gt;File &gt; Save As (This will save it as a .nfo&gt; so you can view it using the same viewer on your system) &lt;strong&gt;or&lt;/strong&gt; File &gt; Export (Text) which is not so easily readable&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;This allows you to take a lot of things into account that generally everyone forgets to mention (like environment variables).&lt;/p&gt;&#xA;" OwnerUserId="11458" LastEditorUserId="11458" LastEditorDisplayName="" LastEditDate="2011-04-27T10:26:52.247" LastActivityDate="2011-04-27T10:26:52.247" />
  <row Id="29460" PostTypeId="2" ParentId="29433" CreationDate="2010-12-23T12:26:12.347" Score="0" ViewCount="" Body="&lt;p&gt;Don't create new types if you can help it. They can cause extra confusion, complexity and lead to more code to maintain. They may make your code had to extend. Designing an exception hierarchy requires a lot of though and testing. It's not an after thought. It's often best to use the built in language exception hierarchy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The content of the exception message dependents on the receiver of the message - so you have to put yourself in that person's shoes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A support engineer will need to be able to identify the source of the error as quickly as possible. Include a short descriptive string plus any data that can help troubleshoot the issue. Always include the stack trace - if you can - this will be the only true source of information. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Presenting errors to general users of your system depends on the type of the error: if the user can fix the problem, by providing different input for example, then a concise descriptive message is required. If the user can't fix the problem, then it's best to state an error has occurred and log/send an error to support (using guidelines above). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also - don't throw up a big &quot;HALT ERROR!&quot; icon. It's an error - it's not the end of the world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So in summary: think about the actors and use cases for your system. Place yourself in those user's shoes. Be helpful. Be nice. Think about this up front in your system design. From the perspective of your users - these exception cases and how the system handles them, are just as important as the normal cases in your system. &lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-12-23T12:26:12.347" CommentCount="1" />
  <row Id="29461" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T12:32:55.753" Score="19" ViewCount="" Body="&lt;p&gt;My all-time classic (AFAIK from Confucius). You can always break up the task you're facing into small manageable pieces:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A journey of a thousand miles begins with a single step.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8316" LastActivityDate="2010-12-23T12:32:55.753" CommunityOwnedDate="2010-12-23T21:13:10.957" CommentCount="4" />
  <row Id="29462" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T12:34:15.730" Score="14" ViewCount="" Body="&lt;p&gt;If it was easy, anyone could do it.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-12-23T12:34:15.730" CommunityOwnedDate="2010-12-23T21:13:10.957" />
  <row Id="29463" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T12:36:52.910" Score="2" ViewCount="" Body="&lt;p&gt;&quot;Things don't happen &lt;strong&gt;to&lt;/strong&gt; you, they happen &lt;strong&gt;for&lt;/strong&gt; you.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Our greatest glory is not in never falling, but in rising every time we fall.&quot;&lt;/p&gt;&#xA;" OwnerUserId="11458" LastActivityDate="2010-12-23T12:36:52.910" CommunityOwnedDate="2010-12-23T21:13:10.957" />
  <row Id="29464" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T12:40:41.467" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Next job will be better...&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-23T12:40:41.467" CommunityOwnedDate="2010-12-23T21:13:10.957" CommentCount="4" />
  <row Id="29465" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T12:42:10.500" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.urbandictionary.com/define.php?term=every%20day%27s%20a%20school%20day&quot; rel=&quot;nofollow&quot;&gt;Every day's a school day&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Always true..&lt;/p&gt;&#xA;" OwnerUserId="140" LastActivityDate="2010-12-23T12:42:10.500" CommunityOwnedDate="2010-12-23T21:13:10.957" />
  <row Id="29466" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T12:44:48.610" Score="5" ViewCount="" Body="&lt;p&gt;If you are stressed - remember:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;To go faster, slow down. Everybody who knows about orbital mechanics understands that.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scott Cherf&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2010-12-23T12:44:48.610" CommunityOwnedDate="2010-12-23T21:13:10.957" CommentCount="1" />
  <row Id="29467" PostTypeId="2" ParentId="29433" CreationDate="2010-12-23T12:55:30.243" Score="4" ViewCount="" Body="&lt;p&gt;As a general rule, &lt;strong&gt;an exception should help developers pinpoint the cause&lt;/strong&gt; by giving useful information (expected values, actual value, possible causes/solution, etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;New exception types should be created when none of the built-in types make sense&lt;/strong&gt;. A specific type enables other developers to catch a specific exception and handle it. If the developer would know how to handle your exception but the type is &lt;code&gt;Exception&lt;/code&gt;, he won't be able to handle it properly.&lt;/p&gt;&#xA;" OwnerUserId="220" LastActivityDate="2010-12-23T12:55:30.243" CommentCount="1" />
  <row Id="29468" PostTypeId="2" ParentId="29421" CreationDate="2010-12-23T12:56:20.447" Score="2" ViewCount="" Body="&lt;p&gt;Hey maybe you could implement a Composite pattern, looking something like:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/UN2Qq.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The component execute() method could call al its datasources and so on till you reach a basicDatasource witch may have another hireachy, representing each source.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now back to you needs, the get_name() function could look like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public function get_name()&#xA;{&#xA;  $datasource = $this-&amp;gt;getDataSourcesForName();&#xA;  return $datasource-&amp;gt;execute();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Also a strategy patter may apply.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps!&lt;/p&gt;&#xA;" OwnerUserId="10785" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-23T19:10:26.627" LastActivityDate="2010-12-23T19:10:26.627" />
  <row Id="29469" PostTypeId="1" AcceptedAnswerId="29473" CreationDate="2010-12-23T12:56:32.857" Score="7" ViewCount="165" Body="&lt;p&gt;What type of captcha will you recommend? I am looking mainly at usability, ease of use (development too), relatively secure&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Usability&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that those captcha with very curly words/numbers are sometimes too unreadable. What I start to see in many applications are simple calculations &quot;Whats 5 + 15&quot;. seems simple, but that should be easily crackable by bots, i'd expect?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Security&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not working on a very secure app, u know just general web apps like project management, forums etc type apps. So I don't require hard core security which I think will be overkill and just mess up the code. I prefer something minimalistic &amp;amp; easy to use&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I read about honey pot method too. Where I have a input thats hidden by css. The theory is that bots will fill up all fields. How true is that? That is simple to implement least intrusive, user does not need to do anything. Does it mean that I can just have that without captcha?&lt;/p&gt;&#xA;" OwnerUserId="526" LastActivityDate="2010-12-23T22:14:03.877" Title="What type of captcha will you recommend?" Tags="&lt;security&gt;&lt;captcha&gt;&lt;anti-bot&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="29470" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T13:03:59.897" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Even Impossible says I'm possible&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-12-23T13:03:59.897" CommunityOwnedDate="2010-12-23T21:13:10.957" CommentCount="1" />
  <row Id="29471" PostTypeId="2" ParentId="20040" CreationDate="2010-12-23T13:11:26.383" Score="0" ViewCount="" Body="&lt;p&gt;not being familiar with Blackberry stuff this may be completely unsuitable, but I tend to just use a name, as the type system will tell you what it actually is. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Button back;&#xA;Button forward; &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Controversial I know.&lt;/p&gt;&#xA;" OwnerUserId="9935" LastActivityDate="2010-12-23T13:11:26.383" />
  <row Id="29472" PostTypeId="2" ParentId="29469" CreationDate="2010-12-23T13:11:41.267" Score="3" ViewCount="" Body="&lt;p&gt;There is no 100% secure protection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All captchas can be cracked. Did you know for instance that there are firms in India which specialize in offering manforce to crack captchas?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are also tricks like embedding your captchas as frames into other pages which invite their users to solve it to get access to interesting pictures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suggest you relax and make it simple. Try the following options one by one.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Integrate with &lt;a href=&quot;http://akismet.com&quot; rel=&quot;nofollow&quot;&gt;Akismet&lt;/a&gt; service&lt;/li&gt;&#xA;&lt;li&gt;Change the POST Url for your pages to something different. Bots will usually post to the same page Url, and if you won't accept such sumbissions it will keep bots out.&lt;/li&gt;&#xA;&lt;li&gt;Add a honeypot solution&lt;/li&gt;&#xA;&lt;li&gt;If 1, 2, 3 fail, add a captcha&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-23T13:11:41.267" CommentCount="3" />
  <row Id="29473" PostTypeId="2" ParentId="29469" CreationDate="2010-12-23T13:12:21.390" Score="5" ViewCount="" Body="&lt;p&gt;As you said, the &lt;a href=&quot;http://haacked.com/archive/2007/09/11/honeypot-captcha.aspx&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;honeypot captcha&lt;/strong&gt;&lt;/a&gt; is a good option, it's invisible to users and works in a lot of cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another very good option is &lt;a href=&quot;http://www.google.com/recaptcha&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;reCaptcha&lt;/strong&gt;&lt;/a&gt; which is almost always easy enough to read.&lt;/p&gt;&#xA;" OwnerUserId="220" LastActivityDate="2010-12-23T13:12:21.390" CommentCount="5" />
  <row Id="29474" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T13:15:20.937" Score="33" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&quot;If a pretty poster and a cute saying are all it takes to motivate you, you probably have a very easy job. The kind robots will be doing soon.&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;:)&lt;/p&gt;&#xA;" OwnerUserId="7454" LastActivityDate="2010-12-23T13:15:20.937" CommunityOwnedDate="2010-12-23T21:13:10.957" CommentCount="2" />
  <row Id="29475" PostTypeId="2" ParentId="29109" CreationDate="2010-12-23T13:19:58.107" Score="9" ViewCount="" Body="&lt;p&gt;I see way too many C programmers that hate C++. It took me quite some time (years) to slowly understand what is good and what is bad about it. I think the best way to phrase it is this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Less code, no run-time overhead, more safety.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The less code we write, the better. This quickly becomes clear in all engineers that strive for excellence. You fix a bug in one place, not many - you express an algorithm once, and re-use it in many places, etc. Greeks even have a saying, traced back to the ancient Spartans: &quot;to say something in less words, means that you are wise about it&quot;. And the fact of the matter, is that &lt;em&gt;when used correctly&lt;/em&gt;, C++ allows you to express yourself in far less code than C, without costing runtime speed, while being more safe (i.e. catching more errors at compile-time) than C is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a simplified example from my &lt;a href=&quot;http://users.softlab.ece.ntua.gr/~ttsiod/renderer.html&quot; rel=&quot;nofollow&quot;&gt;renderer&lt;/a&gt;: When interpolating pixel values across a triangle's scanline, I have to start from a X coordinate x1, and reach a X coordinate x2 (from the left to the right side of a triangle). And across each step, across each pixel I pass over, I have to interpolate values.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I interpolate the ambient light that reaches the pixel:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  typedef struct tagPixelDataAmbient {&#xA;    int x;&#xA;    float ambientLight;&#xA;  } PixelDataAmbient;&#xA;&#xA;  ...&#xA;  // inner loop&#xA;  currentPixel.ambientLight += dv;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;When I interpolate the color (called &quot;Gouraud&quot; shading, where the &quot;red&quot;, &quot;green&quot; and &quot;blue&quot; fields are interpolated by a step value at each pixel):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  typedef struct tagPixelDataGouraud {&#xA;    int x;&#xA;    float red;&#xA;    float green;&#xA;    float blue;  // The RGB color interpolated per pixel&#xA;  } PixelDataGouraud;&#xA;&#xA;  ...&#xA;  // inner loop&#xA;  currentPixel.red += dred;&#xA;  currentPixel.green += dgreen;&#xA;  currentPixel.blue += dblue;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;When I render in &quot;Phong&quot; shading, I no longer interpolate  an intensity (ambientLight) or a color (red/green/blue) - I interpolate a normal vector (nx,ny,nz) and at each step, I have to re-calculate the lighting equation, based on the interpolated normal vector: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  typedef struct tagPixelDataPhong {&#xA;    int x;&#xA;    float nX;&#xA;    float nY;&#xA;    float nZ; // The normal vector interpolated per pixel&#xA;  } PixelDataPhong;&#xA;&#xA;  ...&#xA;  // inner loop&#xA;  currentPixel.nX += dx;&#xA;  currentPixel.nY += dy;&#xA;  currentPixel.nZ += dz;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now, the first instinct of C programmers would be &quot;heck, write 3 functions that interpolate the values, and call them depending on the set mode&quot;. &#xA;First of all, this means that I have a type problem - what do I work with? Are my pixels PixelDataAmbient? PixelDataGouraud? PixelDataPhong? Oh, wait, the efficient C programmer says, use a union!&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  typedef union tagSuperPixel {&#xA;    PixelDataAmbient a;&#xA;    PixelDataGouraud g;&#xA;    PixelDataPhong   p;&#xA;  } SuperPixel;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;..and then, you have a function...&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  RasterizeTriangleScanline(&#xA;    enum mode, // { ambient, gouraud, phong }&#xA;    SuperPixel left,&#xA;    SuperPixel right)&#xA;  {&#xA;    int i,j;&#xA;    if (mode == ambient) {&#xA;      // handle pixels as ambient...&#xA;      int steps = right.a.x - left.a.x;&#xA;      float dv = (right.a.ambientLight - left.a.ambientLight)/steps;&#xA;      float currentIntensity = left.a.ambientLight;&#xA;      for (i=left.a.x; i&amp;lt;right.a.x; i++) {&#xA;        WorkOnPixelAmbient(i, dv);&#xA;        currentIntensity+=dv;&#xA;      }&#xA;    } else if (mode == gouraud) {&#xA;      // handle pixels as gouraud...&#xA;      int steps = right.g.x - left.g.x;&#xA;      float dred = (right.g.red - left.g.red)/steps;&#xA;      float dgreen = (right.g.green - left.a.green)/steps;&#xA;      float dblue = (right.g.blue - left.g.blue)/steps;&#xA;      float currentRed = left.g.red;&#xA;      float currentGreen = left.g.green;&#xA;      float currentBlue = left.g.blue;&#xA;      for (j=left.g.x; i&amp;lt;right.g.x; j++) {&#xA;        WorkOnPixelGouraud(j, currentRed, currentBlue, currentGreen);&#xA;        currentRed+=dred;&#xA;        currentGreen+=dgreen;&#xA;        currentBlue+=dblue;&#xA;      }&#xA;...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Do you feel the chaos slipping in? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of all, one typo is all that is needed to crash my code, since the compiler will never stop me in the &quot;Gouraud&quot; section of the function, to actually access the &quot;.a.&quot; (ambient) values. A bug not caught by the C type system (i.e. during compilation), means a bug that manifests at run-time, and will require debugging. Did you notice that I am accessing left.a.green in the calculation of &quot;dgreen&quot;? The compiler surely didn't tell you so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, there is repetition everywhere - the for loop is there for as many times as there are rendering modes, we keep doing &quot;right minus left divided by steps&quot;. Ugly, and error-prone. Did you notice I compare using &quot;i&quot; in the Gouraud loop, when I should have used &quot;j&quot;? The compiler is again, silent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What about the if/else/ ladder for the modes? What if I add a new rendering mode, in 3 weeks? Will I remember to handle the new mode in all the &quot;if mode==&quot; in all my code?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now compare the above ugliness, with this set of C++ structs and a template function:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  struct CommonPixelData {&#xA;    int x;&#xA;  };&#xA;  struct AmbientPixelData : CommonPixelData {&#xA;    float ambientLight;&#xA;  };&#xA;  struct GouraudPixelData : CommonPixelData {&#xA;    float red;&#xA;    float green;&#xA;    float blue;  // The RGB color interpolated per pixel&#xA;  };&#xA;  struct PhongPixelData : CommonPixelData {&#xA;    float nX;&#xA;    float nY;&#xA;    float nZ; // The normal vector interpolated per pixel&#xA;  };&#xA;&#xA;  template &amp;lt;class PixelData&amp;gt;&#xA;  RasterizeTriangleScanline(&#xA;    PixelData left,&#xA;    PixelData right)&#xA;  {&#xA;    PixelData interpolated = left;&#xA;    PixelData step = right;&#xA;    step -= left;&#xA;    step /= int(right.x - left.x); // divide by pixel span&#xA;    for(int i=left.x; i&amp;lt;right.x; i++) {&#xA;      WorkOnPixel&amp;lt;PixelData&amp;gt;(interpolated);&#xA;      interpolated += step;&#xA;    }&#xA;  }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now look at this. We no longer make a union type-soup: we have specific types per each mode. They re-use their common stuff (the &quot;x&quot; field) by inheriting from a base class (CommonPixelData). And the template makes the compiler CREATE (that is, code-generate) the 3 different functions we would have written ourselves in C, but at the same time, being very strict about the types! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our loop in the template cannot goof and access invalid fields - the compiler will bark if we do. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The template performs the common work (the loop, increasing by &quot;step&quot; in each time), and can do so in a manner that simply CANT cause runtime errors. The interpolation per type (AmbientPixelData, GouraudPixelData, PhongPixelData) is done with the operator+=() that we will add in the structs - which basically dictate &lt;em&gt;how&lt;/em&gt; each type is interpolated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And do you see what we did with WorkOnPixel? We want to do different work per type? we simply call a template specialization:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void WorkOnPixel&amp;lt;AmbientPixelData&amp;gt;(AmbientPixelData&amp;amp; p)&#xA;{&#xA;  // use the p.ambientLight field&#xA;}&#xA;&#xA;&#xA;void WorkOnPixel&amp;lt;GouraudPixelData&amp;gt;(GouraudPixelData&amp;amp; p)&#xA;{&#xA;  // use the p.red/green/blue fields&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That is - the function to call, is decided based on the type. At compile-time!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To rephrase it again: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;we minimize the code (via the template), re-using common parts, &lt;/li&gt;&#xA;&lt;li&gt;we don't use ugly hacks, we keep a strict type system, so that the compiler can check us at all times.&lt;/li&gt;&#xA;&lt;li&gt;and best of all: none of what we did has ANY runtime impact. This code will run JUST as fast as the equivalent C code - in fact, if the C code was using function pointers to call the various WorkOnPixel versions, the C++ code will be FASTER than C, because the compiler will inline the type-specific WorkOnPixel template specialization call!&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Less code, no run-time overhead, more safety.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does this mean that C++ is the be-all and end-all of languages? Of course not. You still have to measure trade-offs. Ignorant people will use C++ when they should have written a bash/Perl/Python script. Trigger-happy C++ newbies will create deep nested classes with virtual multiple inheritance before you can stop them and send them packing. They will use complex Boost meta-programming before realizing that this is not necessary. They will STILL use char*,strcmp and macros, instead of std::string and templates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But this says nothing more than... watch who you work with. There is no language to shield you from incompetent users (no, not even Java).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep studying and using C++ - just don't overdesign.&lt;/p&gt;&#xA;" OwnerUserId="11481" LastEditorUserId="11481" LastEditorDisplayName="" LastEditDate="2010-12-23T13:27:33.047" LastActivityDate="2010-12-23T13:27:33.047" CommentCount="3" />
  <row Id="29476" PostTypeId="2" ParentId="29414" CreationDate="2010-12-23T13:20:53.490" Score="1" ViewCount="" Body="&lt;p&gt;Have you used &lt;code&gt;EXPLAIN&lt;/code&gt; on your query? It can tell you exactly where the query is spending its time. The output from that is kind of arcane the first time you see it; it's probably worth spending some time with the documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Odds are good you want to add indexes to your tables. As I said in the comment on @Inca's answer, it's a trade-off that's usually worth it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Little lesson in good indexing: There's a property of database indexes called &quot;Cardinality&quot;. Cardinality could be said to be the &quot;uniqueness&quot; of a index. If you have an auto-incrementing primary key, that's a highly cardinal index. A query for a particular number gets you a very small (1, in fact) number of rows. An index on customer last name is much less cardinal because a query for &quot;Smith&quot; gets you many more rows. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You want your indexes to be used in order of descending cardinality. Usually the MySQL query optimizer does a good job of this on its own, but if you do EXPLAIN and see stupid index-ordering, you can sometimes squeak better performance by hinting at the index order. See the MySQL docs for the syntax of that.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-23T13:20:53.490" />
  <row Id="29477" PostTypeId="2" ParentId="29422" CreationDate="2010-12-23T13:23:50.367" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I wouldn't put &quot;assembler&quot; for the&#xA;  same reason I wouldn't put &quot;compiler&quot;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Although I must admit I'm not sure I would want to include anything in which I have just &quot;dabbled&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, my CV does include &quot;6502 assembly language&quot;. Interestingly, I don't expect to write for the 6502 again any time soon (I am primarily C# programmer these days) but I include it because it communicates interesting things about me and my experience:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It indicates that I know how these computer things actually work at a fairly low level. This means I understand what is going on when I write high-level code, and this knowledge is still useful for solving problems and debugging code.&lt;/li&gt;&#xA;&lt;li&gt;It suggests that I know about techniques for memory management, optimisation, but-twiddling etc. that are often lost on programmers who have not dealt with things at this level.&lt;/li&gt;&#xA;&lt;li&gt;It shows that I've been around a while, with a wealth of experience as a developer.&lt;/li&gt;&#xA;&lt;li&gt;It suggests that I can still get the job done even when my modern tools let me down (as they do sometimes).&lt;/li&gt;&#xA;&lt;li&gt;It often elicits interest at interview.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;This last point is key. I have had interesting and beneficial conversations at interview based on my mention of the 6502, typically where the interviewer has also programmed in assembly language (of any kind, but particularly 6502). This certainly hasn't done me any harm, and might well have helped me secure my present position.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastEditorUserId="1928" LastEditorDisplayName="" LastEditDate="2010-12-23T14:40:09.443" LastActivityDate="2010-12-23T14:40:09.443" CommentCount="1" />
  <row Id="29478" PostTypeId="2" ParentId="29177" CreationDate="2010-12-23T13:24:42.067" Score="0" ViewCount="" Body="&lt;p&gt;A programmer should not do or implement anything which is unethical or illegal, such as write viruses or hack others' systems (unless it is to discover security holes and then &lt;em&gt;inform&lt;/em&gt; the victim about it and what he or she can do to avoid this from being exploited by any malicious hackers).&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-12-23T13:24:42.067" />
  <row Id="29479" PostTypeId="2" ParentId="29422" CreationDate="2010-12-23T13:24:45.483" Score="1" ViewCount="" Body="&lt;p&gt;In your resume, you should typically have a section for programming languages, another one for assembly languages (of course if you know assembly language that is) etc. Here's an example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Technical Credentials:&lt;/strong&gt;&lt;br&gt;&#xA;&lt;strong&gt;Programming Languages:&lt;/strong&gt; Algol, COBOL, Pascal, Lisp&lt;br&gt;&#xA;&lt;strong&gt;Assembly Languages:&lt;/strong&gt; x86, x86-64&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just make sure you can defend what you have written in your CV. If you have done specific projects using an assembly language, list it out clearly under a &lt;strong&gt;Project Details&lt;/strong&gt; section. I'd also recommend that you mention some of the more important instructions that you've used.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-23T13:24:45.483" />
  <row Id="29480" PostTypeId="2" ParentId="29469" CreationDate="2010-12-23T13:27:11.460" Score="1" ViewCount="" Body="&lt;p&gt;Something like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/ywmw5.png&quot; alt=&quot;Captcha humor&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-23T13:27:11.460" CommentCount="3" />
  <row Id="29481" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T13:27:32.490" Score="14" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Don’t say you don’t have enough time.&#xA;  You have exactly the same number of&#xA;  hours per day that were given to Helen&#xA;  Keller, Pasteur, Michaelangelo, Mother&#xA;  Teresea, Leonardo da Vinci, Thomas&#xA;  Jefferson, and Albert Einstein.” –&#xA;  &lt;strong&gt;Life’s Little Instruction Book&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;That one motivates me every time...&lt;/p&gt;&#xA;" OwnerUserId="7885" LastActivityDate="2010-12-23T13:27:32.490" CommunityOwnedDate="2010-12-23T21:13:10.957" CommentCount="2" />
  <row Id="29482" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T13:32:07.037" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&quot;The cheque is in the mail&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="3817" LastActivityDate="2010-12-23T13:32:07.037" CommunityOwnedDate="2010-12-23T21:13:10.957" />
  <row Id="29483" PostTypeId="1" AcceptedAnswerId="29487" CreationDate="2010-12-23T13:33:18.680" Score="0" ViewCount="43" Body="&lt;p&gt;Hi, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are something out of box to generate time expiring in php? &#xA;For example I need to control the access to the system, I was thinking something to verify every first day of every month, and do this in my code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it is not 100% safety, since another programmer can remove this line code that verify. Then I thought is it possible, to verify in another server, if the monthly time expire or not? and return the message to the user if the copy expired or not? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the best to way to create a licensing features for time expiry?&#xA;or I really need to get inside IonCube (Compiled Code Encoding) for example?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the best practice?&lt;/p&gt;&#xA;" OwnerUserId="6987" LastActivityDate="2010-12-23T14:30:02.693" Title="Features to generate time expiring" Tags="&lt;license&gt;&lt;hidden-features&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="29484" PostTypeId="2" ParentId="29436" CreationDate="2010-12-23T13:37:19.600" Score="1" ViewCount="" Body="&lt;p&gt;You are being realistic--it is a big risk.  However, you can deal with an manage risk.  Risk and opportunity are two sides of the same coin.  If you avoid something risky, you are giving up an opportunity.  The reverse is also true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't have to be super formal with this, but the process is pretty straight forward.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;List the things that can go wrong&lt;/li&gt;&#xA;&lt;li&gt;List the things that can go right (i.e. potential for more revenue)&lt;/li&gt;&#xA;&lt;li&gt;Do a quick assessment to see what you can do to make things less wrong (the big word is risk mitigation)&lt;/li&gt;&#xA;&lt;li&gt;Do a quick assessment to see what you can do to make things more right (the big word is risk avoidance)&lt;/li&gt;&#xA;&lt;li&gt;Do a quick assessment to identify what has to happen if things do go wrong (i.e. the cost of recovery)&lt;/li&gt;&#xA;&lt;li&gt;Put the plan in action&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Essentially the big process folks (like IEEE, CMMI, etc.) will have you convert all these things to money.  Basically if the cost of things going wrong outweigh the payoff if things go right, it may or may not be worth it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It sounds like the manager is willing to accept the risk.  Remember that it is his hide on the line, even more than yours.  I can appreciate a manager that is willing to make a decision and abide by it.  However, you might be able to do some things to make it a little less risky.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know nothing of your company's business.  There may be a strategic reason you are not aware of for the strict go-live date.  In contracting, meeting a date with a less than perfect system may be critical to releasing more money from the client to finish things correctly and get follow on work.  There are business implications going on here.  In short, the business risk of not releasing by Christmas may outweigh the risk of things going wrong with the release.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-23T13:37:19.600" />
  <row Id="29485" PostTypeId="1" AcceptedAnswerId="29622" CreationDate="2010-12-23T13:39:05.067" Score="11" ViewCount="562" Body="&lt;p&gt;Hi.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wanted to know whether you think and audio background is just a distraction or could be of some help while programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, it works like this: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;when I'm writing pseudocode, or implementing procedures that are very clear in my mind in a language I can write without looking up docs, having music playing in the background (very straightforward electronics, mostly) helps me a lot: it kind of gives some rhythm to my coding and, if the procedures are trivial, avoids the distractions that boredom can cause.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I incur in a problem, or I have to try to fix a bug, instead, it just distracts me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if the song is really regular and I know it well enough not to cause me to focus on it, it eliminates unexpected environmental noise that sometimes make me waste precious seconds before I can concentrate on the code again.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Guidelines checklist: 1 ok, 2 I hope; 3 I suppose; 4 Definitely; 5 I would like that to happen; 6 Doch (English should implement a way to disambiguate double negatives in answers)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="11146" LastActivityDate="2010-12-24T01:20:44.647" ClosedDate="2010-12-24T01:31:33.857" Title="Does music increase your productivity?" Tags="&lt;productivity&gt;" AnswerCount="12" CommentCount="9" FavoriteCount="2" />
  <row Id="29486" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T13:39:25.980" Score="11" ViewCount="" Body="&lt;p&gt;&lt;b&gt;Focused, hard work is the real key to success. Keep your eyes on the goal, and just keep taking the next step towards completing it. If you aren't sure which way to do something, do it both ways and see which works better&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;John Carmack&#xA;&lt;hr /&gt;&#xA;To me, this really sums up what it takes to be successful in programming, if not your career in general.&lt;/p&gt;&#xA;" OwnerUserId="10365" LastEditorUserId="10365" LastEditorDisplayName="" LastEditDate="2010-12-23T14:25:24.240" LastActivityDate="2010-12-23T14:25:24.240" CommunityOwnedDate="2010-12-23T21:13:10.957" CommentCount="1" />
  <row Id="29487" PostTypeId="2" ParentId="29483" CreationDate="2010-12-23T13:40:07.227" Score="1" ViewCount="" Body="&lt;p&gt;What first comes to mind is a web validation, each time the users logs in. So , when you make the package, your first write a line with a request to a page of yours with a license-number and that way check consistency. Also, from your site, you should check that if a license has not registered any activity in, lets say a month, then ask for explanations to the people who bought it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps, it aint bullet proof but cuold work!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After the commend and reading some internet articles i found some nice php obfuscators OpenSource. Read &lt;a href=&quot;http://www.seocompany.ca/software/free-encryption-software.html&quot; rel=&quot;nofollow&quot;&gt;this article&lt;/a&gt; and see for yourself. This will avoid removing the line of code.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastEditorUserId="10785" LastEditorDisplayName="" LastEditDate="2010-12-23T14:30:02.693" LastActivityDate="2010-12-23T14:30:02.693" CommentCount="1" />
  <row Id="29488" PostTypeId="1" AcceptedAnswerId="29512" CreationDate="2010-12-23T13:40:44.577" Score="11" ViewCount="394" Body="&lt;p&gt;I'm working on a large project and I would like to put together some technical documentation for other members of the team and for new programmers joining the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What sort of documentation should I have? Just &lt;code&gt;///&lt;/code&gt; code comments or some other file(s) explaining the architechure and class design? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never really done documentation except the occasional word doc to go with smaller apps, and I think this project is too large to doc in a single word file.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-12-27T05:00:07.010" Title="What does your Technical Documentation look like?" Tags="&lt;best-practices&gt;&lt;documentation&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="3" />
  <row Id="29489" PostTypeId="2" ParentId="29485" CreationDate="2010-12-23T13:41:49.333" Score="2" ViewCount="" Body="&lt;p&gt;As you said, it all depends on whether you can focus better with or without the music. If I am in an environment that is noisy then I find music does help, although generally I prefer not to listen to music while working on code.&lt;/p&gt;&#xA;" OwnerUserId="10365" LastActivityDate="2010-12-23T13:41:49.333" />
  <row Id="29490" PostTypeId="2" ParentId="29488" CreationDate="2010-12-23T13:42:49.680" Score="2" ViewCount="" Body="&lt;p&gt;I would strongly recommend you to go through &lt;a href=&quot;http://www.doxygen.org&quot; rel=&quot;nofollow&quot;&gt;doxygen&lt;/a&gt; and edit your source files appropriately. Then run doxygen and it'd generate enough technical documentation like class hierarchy etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact make doxygen a part of the build process, and keep following the commenting convention as you go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just the architecture and class design alone is not good enough for big projects. Here's the minimum: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Please document global variables. No exceptions. &lt;/li&gt;&#xA;&lt;li&gt;If a function is modifying anything other than its inputs, please specify the same.&lt;/li&gt;&#xA;&lt;li&gt;Any non-trivial stuff that some routine is doing. Particularly, if you are implementing some complex algorithm, include a reference to that algorithm url or paper. &lt;/li&gt;&#xA;&lt;li&gt;Known hacks that you put in and had promised yourself to fix it over the weekend.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8720" LastEditorUserId="8720" LastEditorDisplayName="" LastEditDate="2010-12-23T13:47:57.180" LastActivityDate="2010-12-23T13:47:57.180" CommentCount="2" />
  <row Id="29491" PostTypeId="2" ParentId="14744" CreationDate="2010-12-23T13:43:59.690" Score="1" ViewCount="" Body="&lt;p&gt;I guess this is progress.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Twenty years ago, the conventional wisdom was that you had to learn assembler in order to understand what you were gaining from higher-level languages like C (which is why I had to take an assembler class in college using VAX Macro; &lt;em&gt;guess&lt;/em&gt; how useful that turned out to be upon graduating).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a superstition that because C is somewhat hard to learn and that it provides almost &lt;em&gt;no&lt;/em&gt; abstractions (pointers and byte streams are pretty much it), learning it will somehow make you a better programmer or give you greater insight into how things work at the hardware level.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not (necessarily) true.  Standard C doesn't get you any closer to the metal than any other 3GL (Pascal, Fortran, etc.).  Some C &lt;em&gt;implementations&lt;/em&gt; may provide hooks that give you greater access to some areas, but in general naked pointers are about as close as you get, which isn't close at all.  You cannot directly access registers or status words, for example.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, it all comes down to opcodes and addressing modes, so if you're &lt;em&gt;really&lt;/em&gt; interested in how things work at the lower level, you'd be better served learning assembler over C.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;By itself, learning C will not (necessarily) make you a better programmer.  It will definitely give you an appreciation for actual string types and standardized container libraries, though.  &lt;/p&gt;&#xA;" OwnerUserId="11246" LastActivityDate="2010-12-23T13:43:59.690" />
  <row Id="29492" PostTypeId="2" ParentId="29485" CreationDate="2010-12-23T13:44:30.500" Score="4" ViewCount="" Body="&lt;p&gt;In my case when i listen to music using noice canceling headphones it helps me concentrate a lot. When the melody is regular, it feels like being in a bubble.&#xA;I dont have an office for my own so it could get quite crowded in there.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-23T13:44:30.500" />
  <row Id="29493" PostTypeId="2" ParentId="29488" CreationDate="2010-12-23T13:47:01.720" Score="0" ViewCount="" Body="&lt;p&gt;It depends who do you write the documentation for. If you write it for mates programmers, it should probably be documentation in the code, let them be commentaries or more formal doxygen-like documentation. On the other hand, if your manager or customer wants to know technical details, a list of classes and what they do won't tell them much. So in that case you might want to consider having diagrams, as well as high-level description. For end-users, you probably want some FAQ, user manual and tool tips (in case of GUI application).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the company I work, we have no customers, and no user manuals whatsoever. But we do have both high-level documentation with rationale, goals, abstract architecture etc., we have documents with network topology, latency metrics etc. And, of course, we document the code (using Doxygen) and trips&amp;amp;tricks in our corporate Wiki. Aside from that, we have JIRA where you can find who is working on what, what has been done and what actions performed.&lt;/p&gt;&#xA;" OwnerUserId="11408" LastActivityDate="2010-12-23T13:47:01.720" CommentCount="2" />
  <row Id="29494" PostTypeId="2" ParentId="29049" CreationDate="2010-12-23T13:47:49.107" Score="2" ViewCount="" Body="&lt;p&gt;If switching views causes application stability issue, you've coupled the view to the business logic too tightly. This also creates testing issues because of the view permutations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This leads me to think that the Model-View-&lt;strong&gt;Presenter&lt;/strong&gt; (MVP) pattern would suit your development needs better. You can read up on 2 derivations of them on Martin Fowler's site:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://martinfowler.com/eaaDev/SupervisingPresenter.html&quot; rel=&quot;nofollow&quot;&gt;Supervising Presenter&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://martinfowler.com/eaaDev/PassiveScreen.html&quot; rel=&quot;nofollow&quot;&gt;Passive View&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You won't be able to achieve what you want overnight, but hopefully with some planning and foresight you'll get most of the way there in a couple release cycles. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also look into good continuous integration practices/tools.&lt;/p&gt;&#xA;" OwnerUserId="11458" LastActivityDate="2010-12-23T13:47:49.107" />
  <row Id="29495" PostTypeId="2" ParentId="29429" CreationDate="2010-12-23T13:49:37.903" Score="1" ViewCount="" Body="&lt;p&gt;MNC's will take your interviews, and most probably will decide whether to consider this or not after the interviews. There could be genuine reasons for a break in the job. If you sound too good in the technical interviews, i don't think they will bother some break. But if you are intermediate, then to compare another candidate with you, they may consider this point.  &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-23T13:49:37.903" />
  <row Id="29496" PostTypeId="1" AcceptedAnswerId="29509" CreationDate="2010-12-23T13:50:29.390" Score="2" ViewCount="145" Body="&lt;p&gt;Are there some recomendations on Open Source or Free &lt;strong&gt;PHP Encoder&lt;/strong&gt; systems?&#xA;Is something available?&lt;/p&gt;&#xA;" OwnerUserId="6987" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-23T14:00:34.957" LastActivityDate="2010-12-24T07:54:47.657" Title="Open Source PHP Encoder" Tags="&lt;php&gt;&lt;recommendations&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="1" />
  <row Id="29497" PostTypeId="2" ParentId="29485" CreationDate="2010-12-23T13:54:16.300" Score="3" ViewCount="" Body="&lt;p&gt;It depends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you ask me, listening to &lt;a href=&quot;http://www.youtube.com/watch?v=-KXk_8_8oLY&quot; rel=&quot;nofollow&quot;&gt;Pandit Ravishankar&lt;/a&gt; on my noise cancelling headphones definitely cuts me off from whats happening in the outside world. Concentration booster, big time.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-23T13:54:16.300" CommentCount="1" />
  <row Id="29498" PostTypeId="2" ParentId="29496" CreationDate="2010-12-23T14:02:02.847" Score="1" ViewCount="" Body="&lt;p&gt;Don't fool yourself. &lt;a href=&quot;http://stackoverflow.com/questions/232736/code-obfuscator-for-php&quot;&gt;You don't need an encoder&lt;/a&gt;. If you still feel like it, there is a &lt;a href=&quot;http://www.raizlabs.com/software/phpobfuscator/&quot; rel=&quot;nofollow&quot;&gt;Raiz Labs PHP Obfuscator&lt;/a&gt;. Any many others, just use Google.&lt;/p&gt;&#xA;" OwnerUserId="11408" LastActivityDate="2010-12-23T14:02:02.847" CommentCount="1" />
  <row Id="29499" PostTypeId="2" ParentId="18945" CreationDate="2010-12-23T14:03:17.327" Score="3" ViewCount="" Body="&lt;p&gt;I have a pretty successful Android app on the market and I've been working on the iPhone version for a month or so now, getting it ready for submission to Apple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I would definitely pursue both platforms. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The publishing process is certainly much easier for Android, but aside from that they are similar environments, despite the different languages involved (Objective-C vs Java).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an experienced Java developer I was a bit resistant to learning Objective-C at first, but once I dove in, it turns out its pretty easy. Probably easier going from Java to Objective-C than the other way around, but hard to say for sure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't forget about design. Probably the hardest thing about app development is the design (look and feel), not the code. The code is easy. Making it look good and deliver a great user experience is difficult (at least for programmer types). So make sure you have a good designer to work with, otherwise all the great code will go to waste. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I spent a bit more time worrying about design for the iPhone version, in part because of fears of being rejected for not following Apple's UI guidelines. So make sure you read those up front, and follow the patterns that Apple uses and suggests.&lt;/p&gt;&#xA;" OwnerUserId="11432" LastActivityDate="2010-12-23T14:03:17.327" />
  <row Id="29500" PostTypeId="2" ParentId="29485" CreationDate="2010-12-23T14:06:30.067" Score="1" ViewCount="" Body="&lt;p&gt;Personally, without music I find it very hard to get &quot;in the zone.&quot;&#xA;&lt;hr&gt;&#xA;...which has been a problem lately.  Internet Radio sites are blocked, we're allowed to listen to headphones but my phone/mp3 player bricked about a week ago and has yet to be replaced. :(.  Generic office background noise does not conduce good work.&lt;/p&gt;&#xA;" OwnerUserId="9987" LastActivityDate="2010-12-23T14:06:30.067" />
  <row Id="29501" PostTypeId="2" ParentId="29485" CreationDate="2010-12-23T14:09:19.453" Score="2" ViewCount="" Body="&lt;p&gt;Definitely. I listen to a lot of music, it's my main passion outside of computer-related stuff. I find non-vocal music to be the least distracting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't use sound cancelling headphones- my music is just loud enough for me to ignore the managerial murmurings from the other room, and people having impromptu meetings at a desk next to me, but it's quiet enough for me to be able to hear people when they want to get my attention.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only time I find it distracting is when I'm fixing something super-critical. The rest of the time it helps me get into, and stay in the zone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit: I tend to listen to late night shows on the bbc iplayer, or stuff from various music hosting sites like soundcloud.&lt;/p&gt;&#xA;" OwnerUserId="8993" LastActivityDate="2010-12-23T14:09:19.453" />
  <row Id="29502" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T14:09:45.257" Score="2" ViewCount="" Body="&lt;p&gt;There are many good answers here, and I would like to add the following: &lt;strong&gt;&quot;Promise is debt&quot;&lt;/strong&gt; or &lt;strong&gt;&quot;I promised and I must deliver it&quot;&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-23T14:09:45.257" CommunityOwnedDate="2010-12-23T21:13:10.957" />
  <row Id="29504" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T14:13:02.587" Score="-1" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;Who moved my cheese?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Who_Moved_My_Cheese%3F&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Who_Moved_My_Cheese%3F&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9987" LastActivityDate="2010-12-23T14:13:02.587" CommunityOwnedDate="2010-12-23T21:13:10.957" />
  <row Id="29505" PostTypeId="2" ParentId="29488" CreationDate="2010-12-23T14:19:08.397" Score="0" ViewCount="" Body="&lt;p&gt;Following are the documents I will recommend. Even if you put the comments in the code, I feel that you should know something about what the code is doing before going to code. &#xA;1) Use case documents/Detailed Requirements&lt;br&gt;&#xA;2) Design Document&lt;br&gt;&#xA;3) Unit test case documents&lt;br&gt;&#xA;4) Integration test documents  &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-23T14:19:08.397" />
  <row Id="29506" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T14:20:11.287" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If life were easy, it wouldn't be any fun&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="11485" LastActivityDate="2010-12-23T14:20:11.287" CommunityOwnedDate="2010-12-23T21:13:10.957" />
  <row Id="29507" PostTypeId="1" CreationDate="2010-12-23T14:20:19.673" Score="4" ViewCount="112" Body="&lt;p&gt;As you all know AFS quit the JCP and the things between them and Oracle are not going so smooth. Not only that, Oracle is cooking some enterprise level JVMs. With all of these happening, I think it proves that Java is moving to a more closed-source environment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm curious if this will affect all those apache projects built around Java, e.g. Tomcat, Ant, Maven, Derby, Jackrabbit, just to name a few. Will these projects be in danger of disappearing due to the conflicts revolving around Java? Why? &lt;/p&gt;&#xA;" OwnerUserId="11488" LastActivityDate="2010-12-23T17:46:49.530" Title="Is the AFS going to continue supporting all their java projects in the future?" Tags="&lt;java&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="29508" PostTypeId="2" ParentId="28199" CreationDate="2010-12-23T14:24:29.380" Score="2" ViewCount="" Body="&lt;p&gt;Of course it is, because it's the latest buzzword that management has latched on to.  It also offers better encapsulation and abstraction that imperative programming, so I think the leap from oop to whatever comes next might take even longer than imperative to oop took.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;PS2: If I should choose/learn/use just one approach, is it OOP or not? why?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you're only going to learn one you should pick a different field.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should learn about types and encapsulation and all of the other benefits of OOP, and then learn how to accomplish those same things using a functional style of programming.&lt;/p&gt;&#xA;" OwnerUserId="9658" LastActivityDate="2010-12-23T14:24:29.380" CommentCount="1" />
  <row Id="29509" PostTypeId="2" ParentId="29496" CreationDate="2010-12-23T14:27:47.037" Score="1" ViewCount="" Body="&lt;p&gt;Obfuscating PHP just makes it difficult for the casual observer to study the code. It will not keep someone who is determined at bay for very long. Granted, the unobfuscated version they're able to produce might not match your code line by line, but it will be close enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only reason I could see to use one would be to ensure that people did not short circuit a licensing check, however even that is trivial to accomplish in most cases. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recommend just trusting your customers, or build offerings that are designed to be delivered mostly, if not entirely &lt;em&gt;as a service&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, you can try actually &lt;em&gt;compiling&lt;/em&gt; your PHP apps into native executables that work via FCGI dispatch or come complete with an embedded web server. Tools to help you do that are the PHP Compiler (phpcompiler.org) and Roadsend.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, you won't stop someone who is determined to modify their copy, or study how it works. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-23T14:27:47.037" CommentCount="2" />
  <row Id="29510" PostTypeId="2" ParentId="29436" CreationDate="2010-12-23T14:34:25.330" Score="8" ViewCount="" Body="&lt;p&gt;I used to tell clients that it's an old web developer's superstition that going live on a Friday dooms the project to financial failure. Nobody buys from a site that went live on a Friday.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A surprising number of them believed me.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-23T14:34:25.330" CommentCount="1" />
  <row Id="29511" PostTypeId="2" ParentId="29436" CreationDate="2010-12-23T14:42:38.087" Score="0" ViewCount="" Body="&lt;p&gt;Surprisingly, this is the strategy, some people accept. The reason is no one will be there to test the software or to accept it. You will look good on paper saying that &quot;Release before christmas.&quot; If bugs will found out, it will be after the Christmas. Your customer can also be happy because they can work straight directly after the Christmas. I am not saying this is a good strategy. But I have heard of this strategy from a colleague who was handling our third-party softwares. Not sure if this was about the major release or beta release. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-23T14:42:38.087" />
  <row Id="29512" PostTypeId="2" ParentId="29488" CreationDate="2010-12-23T14:48:11.390" Score="6" ViewCount="" Body="&lt;p&gt;I have written - and benefited from - the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Architecture documents that explain either the system or an individual component as a whole. These are great for new hires to read to get the &quot;big picture&quot; on how your stuff works. Typically these contain high-level diagrams that explain how different parts of the system communicate with one another, along with an explanation of each component of the system, what its role is, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Formal design documents; when writing these, each is prepared with a specific feature in mind, and goes through a formal review process. Although these do not always stay up-to-date years down the road, they give good insight into each individual feature. This documentation lists the formal requirements, data flow diagrams, class diagrams, and details the modifications to the system by technical area (database, middleware, user interface, etc). It may be difficult (if not impossible) to write these after-the-fact, though. Your best bet with these documents is to include them as part of your development process, if it makes sense for your team.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Comments in the code that can be transformed into API documentation, such as JavaDoc. These are good to have for reference, to explain things at a much lower level.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You may not be the one preparing these, but they can be useful as well:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;User Manuals, Guides, etc - For a new hire, these can be helpful to get a different perspective on how the actual product is indented to be used by your customers.&lt;/li&gt;&#xA;&lt;li&gt;Test plans - Very tedious to read and more &quot;interactive documentation&quot;, but sometimes the best way for a new hire to learn is to run through the test cases on an actual system.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Requirements documents may also be helpful depending on how well they are written, although honestly I have found other forms of documentation more useful for understanding how the system works. Requirements documents are better for driving your design efforts.&lt;/p&gt;&#xA;" OwnerUserId="10365" LastEditorUserId="10365" LastEditorDisplayName="" LastEditDate="2010-12-23T14:54:42.917" LastActivityDate="2010-12-23T14:54:42.917" CommentCount="5" />
  <row Id="29513" PostTypeId="1" CreationDate="2010-12-23T14:53:56.530" Score="36" ViewCount="941" Body="&lt;p&gt;Its common knowledge in programming that reinventing the wheel is bad or &lt;em&gt;evil&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;But why is that?&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not suggesting that it's good. I believe it to be wrong. However, I once read an article that said, if someone is doing something wrong (programming wise) explain to them why its wrong, if you can't, then maybe you should be asking yourself if it is really wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;That leads me to this question:&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I see someone is clearly reinventing the wheel by building their own method of something that is already built into the language/framework. First, for arguments sake, lets assume that their method is just as efficient as the built in method. Also the developer, aware of the built in method, prefers his own method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Why should he use the built in one over his own?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1785" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-23T15:10:33.403" LastActivityDate="2010-12-24T18:45:51.010" Title="Is reinventing the wheel really all that bad?" Tags="&lt;reinventing-the-wheel&gt;" AnswerCount="20" CommentCount="6" FavoriteCount="7" />
  <row Id="29514" PostTypeId="1" AcceptedAnswerId="29594" CreationDate="2010-12-23T14:54:58.370" Score="2" ViewCount="92" Body="&lt;p&gt;Let's say that we have an application, with two (or more) different versions. E.g. Professional and Lite editions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would be the best way to keep the source under version control (DVCS in particular). The assumption here is that some or most of the code is common, but the Professional edition has some extra code as well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would be the optimum way of versioning the code with a system like git or Mercurial? &lt;/p&gt;&#xA;" OwnerUserId="3018" LastActivityDate="2010-12-23T17:36:36.220" Title="DVCS and different versions of the same Product" Tags="&lt;version-control&gt;&lt;dvcs&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="29515" PostTypeId="2" ParentId="29424" CreationDate="2010-12-23T14:56:52.503" Score="1" ViewCount="" Body="&lt;p&gt;I'd take anything in a computer job description written by an non-technical HR person with a grain of salt (if not an entire shaker of the stuff).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Asynchronous&quot; in this context is nebulous. It could mean &quot;non-blocking I/O&quot; or &quot;multithreaded&quot;. For all you know, they might be putting Ajax on there for buzzword value and then putting asynchronous also on there when they're meaning the exact same thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps the XSLT part is for view-layer transformations. Or perhaps they're taking raw SOAP calls and transforming them into JSON on the fly using XSLT. Or maybe it's just another buzzword they thought to put on the requirement list.&lt;/p&gt;&#xA;" OwnerUserId="8865" LastActivityDate="2010-12-23T14:56:52.503" CommentCount="1" />
  <row Id="29516" PostTypeId="2" ParentId="29424" CreationDate="2010-12-23T14:57:49.333" Score="1" ViewCount="" Body="&lt;p&gt;Well, I can't speak to the job requirement that you're staring at, but we have a similar situation (at the job I'm leaving at the end of this month) that could probably be described much like your advert (although we use .NET 3.5, and use flash instead of silverlight). Without getting into too much details, many government forms are now electronically filed via XML. The validation rules are generally XPATH expressions, and in some cases we use XSLT to transform our internal schema to the government's schema. The government's schema usually changes annually due to changes in regulations and statutes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since one of our products is a collaborative workflow website, when the filings are completed, they get queued up to be filed electronically. Since the government's website is frequently down (they outsourced it to a 3rd party), we have to set up an asynchronous service (running as a windows service) that polls their site and submits the filing when it can. Also, since it can take up to 24 hours to get a response as to whether the filing was good or not, we have to poll their service from time to time. So there could be an asynchronous requirement like this in your job posting. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Lets say i need to master these two topics (1 and 2). What do i need to do to accomplish that skill? if there are some books for intermediates that actually teach that stuff with practical scenarios and case studies then please suggest some.&lt;/em&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't think there are any single books that combine both topics at the same time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not fond of our home-grown asynch system as I think it should have been replaced with a much more sturdy framework such as BizTalk. If you need your messages to get there, and guarantee that they get there once and only once, you ought to look into message queuing (MSMQ, MQ or BizTalk). BizTalk excels at converting one XML schema to another (as one common usage is transforming one set of XML to others - including EDI). &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-12-23T14:57:49.333" CommentCount="1" />
  <row Id="29517" PostTypeId="2" ParentId="29513" CreationDate="2010-12-23T14:58:10.487" Score="1" ViewCount="" Body="&lt;p&gt;Maybe it's just as efficient, but is it as robust? I think the most compelling reason to use a library over rolling your own is that the framework has so many people using it that they can find and fix bugs quickly. In-house developed library, while they may provide just as much (or more) functionality, cannot compete with a library with millions of users to provide testing in pretty much every use-case. You just can't beat that kind of testing in-house.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-23T14:58:10.487" />
  <row Id="29518" PostTypeId="2" ParentId="29513" CreationDate="2010-12-23T14:58:36.010" Score="5" ViewCount="" Body="&lt;p&gt;Often I use my own because I built it before I discovered the pre-existing one, and I am too lazy to go find and replace every instance. Also, I fully understand my own method while I might not understand a pre-existing one. And finally, because I do not fully understand the pre-existing one I cannot verify that it does absolutely everything that my current one does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a lot to code, and I don't get a lot of time to go back and re-code something unless it impacts production.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, one asp web app that is still used today has a fully functional chart which displays data in a tabular format and allows sorting/editing, however it is not a datagrid. It was built a few years back when I was first learning asp.net and didn't know of datagrids. I am kind of scared of the code since I have no clue what I was doing back then, but it works, is accurate, is easy to modify, doesn't crash, and the users love it&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-12-23T14:58:36.010" CommentCount="2" />
  <row Id="29519" PostTypeId="2" ParentId="29513" CreationDate="2010-12-23T15:00:01.440" Score="18" ViewCount="" Body="&lt;p&gt;I think the case of a developer knowingly reinventing the wheel &quot;because he prefers his own method&quot; is pretty rare. Mostly it's done out of ignorance, and sometimes out of stubbornness. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it all that bad? Yes. Why? Because the existing wheel has most likely been crafted over time and has already been tested in lots of circumstances and against lots of different kinds of data. The developer(s) of the existing wheel have already encountered the edge-cases and difficulties that the reinventor can't even imagine yet.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-23T15:00:01.440" CommentCount="4" />
  <row Id="29520" PostTypeId="2" ParentId="29513" CreationDate="2010-12-23T15:02:13.553" Score="8" ViewCount="" Body="&lt;p&gt;There are two sorts of efficiency - processing / speed (that is how quickly it executes) which it may match and development speed which it almost certainly won't.  That's the first reason - &lt;strong&gt;for any problem of reasonable complexity where existing solutions are available it will almost certainly be faster to research and implement an existing library than to code your own&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second reason is that &lt;strong&gt;the existing library (assuming it's mature) is tested and is proven to work&lt;/strong&gt; - probably in a far wider range of scenarios than a developer and a test team will be able to put a newly written routine through and this comes at zero effort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thirdly, it's way easier to support.  Not only does &lt;strong&gt;someone else supports and improves it&lt;/strong&gt; (whoever wrote the library / component), but &lt;strong&gt;it's far more likely that other developers will be familiar with it and be able to understand and maintain the code going forward&lt;/strong&gt;, all of which minimises on-going costs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And all that assumes functional equivalence, which isn't normally the case.  Frequently libraries will offer functionality which you would find useful but could never justify building in, all of which is suddenly available for free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are reasons to roll your own - largely where you want to do something the built in function can't do and where there is a genuine advantage to be gained by doing so, or where the readily available options aren't mature - but they're less common than many developers would have you believe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, why would you want to spend your time solving problems that have already been solved?  Yes it's a great way to learn but you shouldn't be doing that at the cost of the right solution for production code which is what I'm assuming we're talking about.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-23T16:00:37.773" LastActivityDate="2010-12-23T16:00:37.773" CommentCount="6" />
  <row Id="29521" PostTypeId="2" ParentId="29513" CreationDate="2010-12-23T15:02:14.087" Score="2" ViewCount="" Body="&lt;p&gt;If there's a working component &lt;em&gt;that does what you need&lt;/em&gt; then why spend the time writing and debugging your own version? Similarly, if you've already written code to fulfill a similar function previously, why re-write it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Joel wrote &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000007.html&quot; rel=&quot;nofollow&quot;&gt;an article&lt;/a&gt; on Not-invented-here that speaks volumes about when re-writing code and software isn't and isn't useful.&lt;/p&gt;&#xA;" OwnerUserId="372" LastActivityDate="2010-12-23T15:02:14.087" CommentCount="1" />
  <row Id="29522" PostTypeId="2" ParentId="29514" CreationDate="2010-12-23T15:03:58.983" Score="1" ViewCount="" Body="&lt;p&gt;Not much idea about the git or Mercurial. The common feeling is you should have common part in one branch, and other versions in separate branches. When you are building, your build should be intelligent enough to check out code from appropriate branches and compile. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastEditorUserId="8820" LastEditorDisplayName="" LastEditDate="2010-12-23T17:25:32.237" LastActivityDate="2010-12-23T17:25:32.237" CommentCount="0" />
  <row Id="29523" PostTypeId="2" ParentId="29513" CreationDate="2010-12-23T15:04:35.273" Score="8" ViewCount="" Body="&lt;p&gt;Square wheels have to be reinvented. Efforts that suck have to be duplicated. Maybe there's a lack of documentation for the method, and the other programmer feels it's easier just writing their own rather than trying to figure it out. Maybe the way the method is being called is awkward and doesn't fit into the idiom of the programming language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just ask him what the deficiency is.&lt;/p&gt;&#xA;" OwnerUserId="8865" LastActivityDate="2010-12-23T15:04:35.273" CommentCount="1" />
  <row Id="29524" PostTypeId="2" ParentId="29513" CreationDate="2010-12-23T15:07:54.500" Score="10" ViewCount="" Body="&lt;h2&gt;Depends..&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;As with everything, its about context:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Its Good when:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Framework or library is too heavy, and you only require limited functionality. Rolling your own extremely light-weight version that suites your requirement is a better approach.&lt;/li&gt;&#xA;&lt;li&gt;When you want to understand and learn something complex, rolling you own makes sense.&lt;/li&gt;&#xA;&lt;li&gt;You have something different to offer, something others implementations do not have. May be a new twist, new feature etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Its Bad when:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Functionality already exists and is known to be stable and well known (popular).&lt;/li&gt;&#xA;&lt;li&gt;Your version adds nothing new.&lt;/li&gt;&#xA;&lt;li&gt;Your version introduces bugs or constraints.&lt;/li&gt;&#xA;&lt;li&gt;Your version is missing features.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-23T15:07:54.500" CommentCount="1" />
  <row Id="29525" PostTypeId="2" ParentId="20581" CreationDate="2010-12-23T15:08:01.113" Score="0" ViewCount="" Body="&lt;p&gt;for work &lt;strong&gt;PHP&lt;/strong&gt; is good too, even better than python / ruby.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(&lt;em&gt;note&lt;/em&gt;: the language is not better, but the opportunities are).&lt;/p&gt;&#xA;" OwnerUserId="10134" LastActivityDate="2010-12-23T15:08:01.113" />
  <row Id="29526" PostTypeId="2" ParentId="28028" CreationDate="2010-12-23T15:10:31.097" Score="3" ViewCount="" Body="&lt;p&gt;I think &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Mythical_Man-Month&quot; rel=&quot;nofollow&quot;&gt;The Mythical Man Month&lt;/a&gt; is the original of all such books in programming.  After all, it is where &lt;a href=&quot;http://en.wikipedia.org/wiki/Brooks%27s_law&quot; rel=&quot;nofollow&quot;&gt;Brooks's Law&lt;/a&gt; was first proposed.&lt;/p&gt;&#xA;" OwnerUserId="7506" LastActivityDate="2010-12-23T15:10:31.097" CommentCount="2" />
  <row Id="29527" PostTypeId="2" ParentId="29513" CreationDate="2010-12-23T15:10:48.433" Score="26" ViewCount="" Body="&lt;p&gt;As I've once posted on StackOverflow, reinventing the wheel is &lt;b&gt;often a very good choice&lt;/b&gt;, contrary to popular belief. The main advantage is that you've got &lt;b&gt;full control&lt;/b&gt; over the software, which is often essential. For a full discussion, &lt;a href=&quot;http://stackoverflow.com/questions/18428/what-considerations-should-be-made-before-reinventing-the-wheel/1951913#1951913&quot;&gt;see my original post&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1095" LastEditorUserId="1095" LastEditorDisplayName="" LastEditDate="2010-12-23T15:19:04.323" LastActivityDate="2010-12-23T15:19:04.323" CommentCount="15" />
  <row Id="29528" PostTypeId="2" ParentId="29513" CreationDate="2010-12-23T15:16:51.650" Score="7" ViewCount="" Body="&lt;p&gt;One useful reason to reinvent the wheel is for learning purposes -- but I'd recommend doing it on your own time.  As more pre-canned solutions become available, and more levels of abstraction is provided, we become a lot more productive.  We can focus on the business problem rather than the generic stuff that's been tweaked time and again.  BUT, for that reason, you can sharpen your skills and learn a lot by trying to re-implement a solution on your own.  Just not necessarily for production use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One other thing -- if a concern is dependency on a third party library from a company that may disappear, make sure there's an option to get the source code, or at least a couple of other choices out there to fall back on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, if you do choose to implement your own, avoid doing this for cryptography or other security-related functionality.  Established (and fully tested) tools are available for that, and in this day and age, it is wayyyyyy too risky to roll your own.  That is never worth it, and it's scary that I still hear about teams doing this.&lt;/p&gt;&#xA;" OwnerUserId="10397" LastActivityDate="2010-12-23T15:16:51.650" CommentCount="3" />
  <row Id="29529" PostTypeId="2" ParentId="20581" CreationDate="2010-12-23T15:20:16.133" Score="0" ViewCount="" Body="&lt;p&gt;My choices are -&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Job - C#&lt;br /&gt;&#xA;Fun - Ruby and PHP&lt;/p&gt;&#xA;" OwnerUserId="9208" LastActivityDate="2010-12-23T15:20:16.133" />
  <row Id="29530" PostTypeId="2" ParentId="29485" CreationDate="2010-12-23T15:20:42.107" Score="1" ViewCount="" Body="&lt;p&gt;This is a case of sometimes fierce debate at work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;I&lt;/em&gt; work better with certain kinds of music - either light stuff, classical, or metal. (Death/black/extreme metal also acts as a very effective sound barrier when played through headphones.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But others here in the office cannot help concentrating on the music rather than programming.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-12-23T15:20:42.107" />
  <row Id="29531" PostTypeId="1" AcceptedAnswerId="30089" CreationDate="2010-12-23T15:25:04.380" Score="7" ViewCount="629" Body="&lt;p&gt;I love learning new programming languages but I often have a hard time coming up with exercises and project ideas to put what I read and learn into practice. There are plenty of simple &quot;Hello World&quot; exercises as well as overly academic/math based exercises but what I really want is some a bit more practical. Any ideas?&lt;/p&gt;&#xA;" OwnerUserId="11494" LastActivityDate="2011-04-21T07:42:20.890" Title="What are some good programming exercises/projects to help me learn new languages?" Tags="&lt;learning&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="9" />
  <row Id="29532" PostTypeId="2" ParentId="29485" CreationDate="2010-12-23T15:27:37.207" Score="1" ViewCount="" Body="&lt;p&gt;I find its easier to code with music I know and like, but harder to code with music I either dislike or don't know. It comes down to maintaining focus, its easier when the music fits a regular pattern and consumes the background noise from the office and the brain.&lt;/p&gt;&#xA;" OwnerUserId="7092" LastActivityDate="2010-12-23T15:27:37.207" />
  <row Id="29533" PostTypeId="2" ParentId="29513" CreationDate="2010-12-23T15:28:06.397" Score="3" ViewCount="" Body="&lt;p&gt;Reinventing the wheel can be a great way to learn how something works - and I recommend reinventing for just that purpose on your own time - but when writing an application why reinvent if there are well established solutions that already do the same thing? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I would never write JavaScript code from scratch; instead I would start with jQuery and build my applications on top of that framework.&lt;/p&gt;&#xA;" OwnerUserId="10365" LastActivityDate="2010-12-23T15:28:06.397" />
  <row Id="29534" PostTypeId="1" AcceptedAnswerId="29537" CreationDate="2010-12-23T15:28:26.207" Score="13" ViewCount="556" Body="&lt;p&gt;Along with the other qualities should a programmer need good debugging skills? If I have an applicant who was not able to find the error in the given program, but was able to solve all puzzles and programs, should I consider him for the job? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT :- The puzzles are normal red,blue and red-blue balls like. The programs are like  finding continuous k zeros in an array. The debugging program is something which fails because of condition which should be &gt;=, but instead is &gt;. Everything is on paper. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastEditorUserId="8820" LastEditorDisplayName="" LastEditDate="2010-12-24T05:06:52.750" LastActivityDate="2010-12-24T05:06:52.750" Title="Are debugging skills important to become a good programmer?" Tags="&lt;debugging&gt;" AnswerCount="13" CommentCount="10" FavoriteCount="3" />
  <row Id="29535" PostTypeId="2" ParentId="29514" CreationDate="2010-12-23T15:31:04.453" Score="2" ViewCount="" Body="&lt;p&gt;Whether it is with a DVCS or a CVCS (centralized), the idea is to define two &quot;modules&quot; (set of files) with:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;one being the common code&lt;/li&gt;&#xA;&lt;li&gt;the other being the features for the &quot;pro&quot; version&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Then you can organize them as sub-repos (Mercurial) or submodules (Git)&lt;br&gt;&#xA;(or &quot;external&quot; with SVN&quot;, or...)&lt;/p&gt;&#xA;" OwnerUserId="3915" LastActivityDate="2010-12-23T15:31:04.453" />
  <row Id="29536" PostTypeId="2" ParentId="29485" CreationDate="2010-12-23T15:31:10.023" Score="4" ViewCount="" Body="&lt;p&gt;I think we should be the ones who sing while programming and I agree with G.K. Chesterton who wrote in Tremendous Trifles nearly 100 years ago:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If reapers sing while reaping, why&#xA;  should not auditors sing while&#xA;  auditing and bankers while banking? If&#xA;  there are songs for all the separate&#xA;  things that have to be done in a boat,&#xA;  why are there not songs for all the&#xA;  separate things that have to be done&#xA;  in a bank? As the train from Dover&#xA;  flew through the Kentish gardens, I&#xA;  tried to write a few songs suitable&#xA;  for commercial gentlemen. Thus, the&#xA;  work of bank clerks when casting up&#xA;  columns might begin with a thundering&#xA;  chorus in praise of Simple Addition.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;Up my lads and lift the ledgers,&#xA;  sleep and ease are o'er. Hear the&#xA;  Stars of Morning shouting: 'Two and&#xA;  Two are four.' Though the creeds and&#xA;  realms are reeling, though the&#xA;  sophists roar, Though we weep and pawn&#xA;  our watches, Two and Two are Four.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;There's a run upon the Bank--Stand&#xA;  away! For the Manager's a crank and&#xA;  the Secretary drank,   and the Upper&#xA;  Tooting Bank&#xA;            Turns to bay! Stand close: there is a run On the Bank. Of our&#xA;  ship, our royal one, let the ringing&#xA;  legend run,   that she fired with&#xA;  every gun&#xA;            Ere she sank.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That would increase our productivity the same way sailor's songs increase their productivity.  If gets everyone on the same page and directs our goals to a common point. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-12-23T15:31:10.023" CommentCount="2" />
  <row Id="29537" PostTypeId="2" ParentId="29534" CreationDate="2010-12-23T15:32:53.547" Score="24" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Yes its very important&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About that particular candidate, it is possible that s/he was not familiar enough with code-base x to debug it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good problem solver should be able to debug, as all that is usually required is to have a very logical method/approach.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-23T15:32:53.547" />
  <row Id="29538" PostTypeId="2" ParentId="29534" CreationDate="2010-12-23T15:36:20.347" Score="12" ViewCount="" Body="&lt;p&gt;If you can't debug you're pretty much not a programmer at all, let alone a good one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Debugging is a real, practical application of not only technical skills but also analysis ability and thought processes.  As a result I'd rate it as a far more useful and relevant test than whiteboard or interview questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless the job you've got involves spending all day answering theory questions, you need someone who can apply whatever skills they've got. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you do need to do though is ask yourself was it a fair test of debugging ability - could they run the code, put in break points and so on in the same way they would in the real world?  What sort of error was it?  Is it something the compiler would pick up and flag (in which case it's a pretty pointless question as they'd never need to spot it)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it was just written on paper then it's basically just a detailed reading test and that's an even more abstract skill than your average technical interview question and I'd argue, pretty much worthless.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-23T15:36:20.347" CommentCount="1" />
  <row Id="29539" PostTypeId="2" ParentId="29534" CreationDate="2010-12-23T15:36:23.513" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Along with the other qualities should a programmer need good debugging skills?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Debugging code is a part of problem solving.  I've never encountered a developer who wrote perfect code and zero bugs.  A developer will be either debugging his/her code, or someone else's.  It's a necessity.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;should I consider him for the job?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Maybe, it depends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not being able to debug a program in an interview probably shouldn't be a dealbreaker if the applicant was able to complete all other puzzles and programs in the interview.  It really depends on the depth and breath of the interview.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How much debugging does the the position entail?  If a lot, then maybe more weight should be put into how well an applicant can answer the debugging question.  But since you only mentioned that one debugging question was asked, it doesn't seem like it is.&lt;/p&gt;&#xA;" OwnerUserId="14" LastActivityDate="2010-12-23T15:36:23.513" CommentCount="1" />
  <row Id="29540" PostTypeId="1" AcceptedAnswerId="29545" CreationDate="2010-12-23T15:36:37.960" Score="2" ViewCount="91" Body="&lt;p&gt;I'm looking for other options for maintaining my personal JavaScript namespace.  The problem I'm having boils down code &lt;em&gt;Organization&lt;/em&gt; Vs. &lt;em&gt;Performance&lt;/em&gt;.  I would simply LOVE to be able to separate major sections of my code into a more &quot;traditional&quot; style.  But I haven't because if I were to do that I would probably quadruple the amount of HTTP requests I send out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially I am including two different js files.  &lt;code&gt;jQUery/jQueryUI/my namespace&lt;/code&gt; in one and my implementation in the other.  Great for performance in my web-apps... but looking at my JavaScript source makes me scared, confused, and horrified all at the same time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What am I missing here?&lt;/p&gt;&#xA;" OwnerUserId="10057" LastActivityDate="2010-12-23T15:41:02.663" Title="Alternative methods for maintaining JavaScript source" Tags="&lt;javascript&gt;&lt;performance&gt;&lt;code-organization&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="29541" PostTypeId="2" ParentId="29534" CreationDate="2010-12-23T15:36:41.250" Score="6" ViewCount="" Body="&lt;p&gt;Unless the developer can write clean code all the time (absolutely impossible), and only work on &quot;green field&quot; projects (will never be the case), then yes, debugging skills are absolutely essential.  Absolutely.  I've had experience with developers who just didn't like to debug, so they got lazy, and threw code over the wall to QA for them to test.  But those developers don't last very long at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software development is a craft and a problem solving skill.  Those problems include both the business problems, and problems with their (and other's) code.  By the way, many maintenance projects are specifically about fixing bugs, so debugging is an absolutely essential skill.&lt;/p&gt;&#xA;" OwnerUserId="10397" LastActivityDate="2010-12-23T15:36:41.250" CommentCount="1" />
  <row Id="29542" PostTypeId="2" ParentId="29531" CreationDate="2010-12-23T15:37:30.670" Score="5" ViewCount="" Body="&lt;p&gt;Implementing a text adventure game is a great exercise. It helps you learn about the language's data structures, I/O and string handling. It is easily extendable, and if you want, you can make it graphical later on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you just want to learn GUI work in the language, make a graphical calculator. You can make it as complex as you like. You can't really do 3d or game type work on it of course, but it's a good project to familiarize yourself with the basic GUI operations - creating elements and interacting with them.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-23T15:37:30.670" CommentCount="2" />
  <row Id="29543" PostTypeId="2" ParentId="29534" CreationDate="2010-12-23T15:37:47.083" Score="7" ViewCount="" Body="&lt;p&gt;Main hiring rule - in any doubt say no.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need to implement alot of new code for cheap - you can get that guy, but personally I would continue searching.&lt;/p&gt;&#xA;" OwnerUserId="11497" LastActivityDate="2010-12-23T15:37:47.083" CommentCount="1" />
  <row Id="29545" PostTypeId="2" ParentId="29540" CreationDate="2010-12-23T15:41:02.663" Score="4" ViewCount="" Body="&lt;p&gt;Split the difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When developing separate out the source files. You will have a large number of HTTP requests and lots of files.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When deploying compile the source into one JavaScript file. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-23T15:41:02.663" />
  <row Id="29546" PostTypeId="2" ParentId="29513" CreationDate="2010-12-23T15:41:18.840" Score="3" ViewCount="" Body="&lt;p&gt;My personal rule of thumb:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reinventing the wheel is good when you're just learning.  If you have a deadline, you may want to use existing wheels.&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-12-23T15:41:18.840" />
  <row Id="29547" PostTypeId="2" ParentId="29531" CreationDate="2010-12-23T15:43:05.343" Score="3" ViewCount="" Body="&lt;p&gt;Games.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on the kind of game and it's complexity, you will certainly explore the greatest part of the language features just by making one complete, from the compilation to the display manipulation to the input management etc. Even if it's a text game.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's even better is that most little games developpements will easily motivate you to do more because building something fun is a positive feedback.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-12-23T15:43:05.343" CommentCount="2" />
  <row Id="29548" PostTypeId="2" ParentId="29531" CreationDate="2010-12-23T15:46:52.770" Score="2" ViewCount="" Body="&lt;p&gt;Some nice exercises can be found at:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://codingdojo.org/cgi-bin/wiki.pl?KataCatalogue&quot; rel=&quot;nofollow&quot;&gt;http://codingdojo.org/cgi-bin/wiki.pl?KataCatalogue&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also usually start with implementing various sorting algorithms.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-12-23T15:46:52.770" />
  <row Id="29549" PostTypeId="2" ParentId="29433" CreationDate="2010-12-23T15:55:55.920" Score="1" ViewCount="" Body="&lt;p&gt;The things you want to be looking for to &quot;add&quot; to the exception are those elements of data that are not inherent in the exception or the stack trace. Whether those are part of the &quot;message&quot; or need to be attached when logged is an interesting question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you've already noted, the exception proably tells you what, the stacktrace probably tells you where but the &quot;why&quot; may be more involved (should be, one would hope) than just going to peer at a line or two and saying &quot;doh! Of course&quot;. This is even more true when logging errors in production code - I've all too often been bitten by bad data thats found its way into a live system that doesn't exist in our test systems. Somethig as simple as knowing what the ID is of the record in the database that's causing (or contributing) to the error can save significant amounts of time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So... Either listed or, for .NET, added to the logged exceptions data collection (c.f. @Plip!):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Parameters (this can get a bit interesting - you can't add to the data collection if it won't serialize and sometimes a single parameter can be surprisingly complex)&lt;/li&gt;&#xA;&lt;li&gt;The additional data returned by ADO.NET or Linq to SQL or similar (this can also get a bit interesting!).&lt;/li&gt;&#xA;&lt;li&gt;Whatever else might not be apparent.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some things, of course, you won't know you need until you don't have them in your initial error report/log. Some things you don't realise you can get until you find you need them.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-12-23T15:55:55.920" />
  <row Id="29550" PostTypeId="1" AcceptedAnswerId="29568" CreationDate="2010-12-23T15:58:11.873" Score="9" ViewCount="248" Body="&lt;p&gt;Hi dear fellows,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm currently mentoring a small team of 4 junior dev in small software company. They are very smart and often achieve their tasks with a high-quality job but I'm sure they still can do better - actually I have exactly the same feeling for myself :) -. Besides some of them are more &quot;junior&quot; than other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I would like to find of a funny way to improve their CS skills (design, coding, testing, algorithmic...) in addition to the experience they acquire in their daily work. For instance, I was thinking of setting up weekly sessions, not longer than 2 hours, where we could get together to work on challenging CS exercises. A bit like a coding dojo.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure the team would enjoy that but is it really a good idea? Would it be efficient in a professional context? They already spend all their week to code so how should I organize that in order for them to get some benefits? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any feedback welcome !&lt;/p&gt;&#xA;" OwnerUserId="10977" LastActivityDate="2010-12-27T04:54:45.690" Title="How to keep a team well-trained?" Tags="&lt;learning&gt;&lt;team&gt;&lt;skills&gt;" AnswerCount="8" CommentCount="1" FavoriteCount="3" />
  <row Id="29551" PostTypeId="2" ParentId="29534" CreationDate="2010-12-23T15:58:47.457" Score="1" ViewCount="" Body="&lt;p&gt;A good part of programming problem-solving, and to solve a problem you have to know the core-problem not just symptoms or inconsistencies. Debugging is the art of identifying the core-problem.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;identify the core-problem&lt;/li&gt;&#xA;&lt;li&gt;better able to visualize the flow&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and many more.&lt;/p&gt;&#xA;" OwnerUserId="10176" LastActivityDate="2010-12-23T15:58:47.457" />
  <row Id="29552" PostTypeId="2" ParentId="29469" CreationDate="2010-12-23T16:00:05.240" Score="-1" ViewCount="" Body="&lt;p&gt;I would recommend no captcha.&#xA;You should care about spammers, not your users.&lt;/p&gt;&#xA;" OwnerUserId="11497" LastActivityDate="2010-12-23T16:00:05.240" />
  <row Id="29553" PostTypeId="1" AcceptedAnswerId="29562" CreationDate="2010-12-23T16:03:11.060" Score="14" ViewCount="304" Body="&lt;p&gt;Should error messages ever be presented to an end user and if so what rules or advice should you have about what should be in them?&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-23T18:49:20.153" Title="Under what circumstances should error messages be presented to the user?" Tags="&lt;errors&gt;&lt;error-messages&gt;" AnswerCount="9" CommentCount="2" FavoriteCount="3" />
  <row Id="29554" PostTypeId="2" ParentId="29429" CreationDate="2010-12-23T16:05:05.553" Score="1" ViewCount="" Body="&lt;p&gt;Does it matter? Yes, there are many companies that would not hire a person with break. Is it detrimental, absolutely No. Your first job is the difficult to get, but if you can just AVOID flashing the gap.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have gone through similar phase few years ago, but it only got better since as I have piled more relevant experience.&lt;/p&gt;&#xA;" OwnerUserId="10176" LastActivityDate="2010-12-23T16:05:05.553" />
  <row Id="29556" PostTypeId="2" ParentId="29550" CreationDate="2010-12-23T16:07:00.810" Score="1" ViewCount="" Body="&lt;p&gt;People may well have their own ideas about how they want to learn. Personally I would rather take a course or work on a project in my own time - and have done both. If everyone on the team is OK with the training sessions then go for it, as long as the people on your team will not start to treat it like &quot;work&quot; over time...&lt;/p&gt;&#xA;" OwnerUserId="10365" LastActivityDate="2010-12-23T16:07:00.810" CommentCount="2" />
  <row Id="29557" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T16:07:42.210" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A bend in the road is not the end of&#xA;  the road&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="120" LastActivityDate="2010-12-23T16:07:42.210" CommunityOwnedDate="2010-12-23T21:13:10.957" />
  <row Id="29558" PostTypeId="2" ParentId="29553" CreationDate="2010-12-23T16:10:16.110" Score="3" ViewCount="" Body="&lt;p&gt;Error messages should be presented to the user if:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The user initiated the error condition (for example, &lt;code&gt;&quot;you did not include a password on the input form&quot;&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;The user can do something about the error condition (for example, &lt;code&gt;&quot;there is no network connection&quot;&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;A critical error has occurred that the application cannot recover from (for example, &lt;code&gt;&quot;the database is corrupt&quot;&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10365" LastEditorUserId="10365" LastEditorDisplayName="" LastEditDate="2010-12-23T16:48:41.430" LastActivityDate="2010-12-23T16:48:41.430" CommentCount="6" />
  <row Id="29559" PostTypeId="2" ParentId="29170" CreationDate="2010-12-23T16:11:39.810" Score="1" ViewCount="" Body="&lt;p&gt;Too much of anything is never any good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, an important thing to bear in mind with &quot;unclean&quot; code is that it can easily lead to &quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Broken_windows_theory&quot; rel=&quot;nofollow&quot;&gt;broken windows&lt;/a&gt;&quot;. If the code is very poorly formatted I think many people new to the code base might feel less inclined to do a good job with maintenance and evolution causing a downward spiral that might eventually affect the working condition of the software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore maintaining a certain level of cleanliness in the code is beneficial to more than just your fellow developers. Don't spend too much time on it (~5 % has been mentioned). Learn to use the tools of your craft to automate manual tasks (code formatting in this case). Take responsibility for what you do and always do what you feel is most beneficial to your company/customers/users.&lt;/p&gt;&#xA;" OwnerUserId="3629" LastActivityDate="2010-12-23T16:11:39.810" />
  <row Id="29560" PostTypeId="2" ParentId="29553" CreationDate="2010-12-23T16:11:44.793" Score="1" ViewCount="" Body="&lt;p&gt;Errors should be presented to the user when he/she can do something about, along with suggested course of action even if it is to be &quot;call this number&quot; or &quot;click on this link to report the issue&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never present the user with an error that is meaningless or does not offer a course of action.&lt;/p&gt;&#xA;" OwnerUserId="7380" LastActivityDate="2010-12-23T16:11:44.793" CommentCount="1" />
  <row Id="29561" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T16:12:21.853" Score="4" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;&quot;Life is what happens when you make other plans.&quot;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, don't feel like the universe is picking on you.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-23T16:12:21.853" CommunityOwnedDate="2010-12-23T21:13:10.957" CommentCount="1" />
  <row Id="29562" PostTypeId="2" ParentId="29553" CreationDate="2010-12-23T16:14:24.883" Score="15" ViewCount="" Body="&lt;h1&gt;Yes&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Error messages (when needed) should be presented to the user.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What rules or advice should you have about what should be in them?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Present an error to the user when:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;What they need to know. Don't include errors that they won't understand. &lt;em&gt;&quot;SQL connection failed&quot;&lt;/em&gt; is not a good error. &lt;em&gt;&quot;There was an error saving your appointment.&lt;/em&gt;&quot; is much better.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They can fix it. &lt;em&gt;&quot;You didn't include a date for your appointment.&quot;&lt;/em&gt; is a solvable error.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They expect something to happen. Don't fail silently when they are expecting something. Acknowledge the user action at the very least, and at best provide an appropriate error.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-23T16:14:24.883" CommentCount="5" />
  <row Id="29563" PostTypeId="2" ParentId="29553" CreationDate="2010-12-23T16:15:43.930" Score="1" ViewCount="" Body="&lt;p&gt;I like to be able to tell users if there is a problem with their environment or configuration that is going to stop the software from working and if possible suggest how to address it. You can't always know why you will fail, but environment problems are one of the more common things you run into with PCs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Users should always know somehow if there is a problem that means they can't do the task they are trying to do. You might not term it in the same way as you would for your own use, but you need to let them know that something has happened. Ideally you want to offer the facility to automatically notify the developer that the problem has occurred as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The third situation is if they have made a mistake - left a field empty, put the wrong format of data into a field and so on - that they can rectify for themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The error messages always need to make it clear what has happened and what the user can do to sort it, or what they need to do to make the best of it.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-12-23T16:15:43.930" />
  <row Id="29564" PostTypeId="2" ParentId="9481" CreationDate="2010-12-23T16:15:57.387" Score="2" ViewCount="" Body="&lt;p&gt;&lt;em&gt;I've said this a few times in comments, but I think it merits an answer.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the UK we do have unions for software engineers/programmers.  The primary one is &lt;a href=&quot;http://www.unitetheunion.org/&quot; rel=&quot;nofollow&quot;&gt;Unite&lt;/a&gt;, which has the primary engineering union as a constituent.  The sector for computing workers is &lt;a href=&quot;http://www.unitetheunion.org/sectors/it__communications.aspx&quot; rel=&quot;nofollow&quot;&gt;IT &amp;amp; Communications&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The union situation in the UK is complex and now relatively few people are union members because of a lot of power being cut from the unions in the 80s, due to anti-union political policies and a few unions setting a bad example, which allowed the mood for changes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To stay strong, most of the old unions merged together and have continued to do so for some time.  When I was born, most engineers were part of the AEU, the Amalgamated Engineering Union, this merged with the electricians to become the &lt;a href=&quot;http://www.unitetheunion.org/about_us/history/history_of_aeeu.aspx&quot; rel=&quot;nofollow&quot;&gt;AEEU&lt;/a&gt; in 1992.  The AEEU merged with the MSF (Management, Science and Finance) union in 2001 to become Amicus.  UNIFI (Union for the Finance Industry) and the GPMU (Graphics, Paper and Media Union) merged in to Amicus in 2004, and in 2007 the T &amp;amp; G (Transport and General Workers) merged in and the name was changed to Unite.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is still strong anti-union feeling in the country, particularly from the professional classes, who mistakenly believe that the primary purpose of the union is to bleed companies dry by forcing up wages and striking.  This is not the case.  The primary responsibility of a modern union is to protect their workers from malpractice by their employers.  This is usually in the form of free legal protection for defending members against illegal working practices, unfair/wrongful dismissal cases, health &amp;amp; safety issues, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the cost of being a member, the ability to get expert lawyers involved for free on your behalf when the &lt;em&gt;*&lt;/em&gt;* hits the fan is a life saver.  One of my ex-colleagues is presently taking an old employer to court over unfair dismissal claims.  He was always highly anti-union and is now having to pay out an immense amount of money to take highly disreputable people to court who have huge wallets.  Bet he wishes he had paid the £10.96 a month.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Most professionals, instead of joining &quot;unions&quot;, join pseudo-unions in the form of professional membership bodies.  The primary organisation in the UK for programmers is the &lt;a href=&quot;http://www.bcs.org/&quot; rel=&quot;nofollow&quot;&gt;BCS (The British Computing Society)&lt;/a&gt;.  Becoming a professional member of this body gives a degree of recognition, requires accreditation via exams, and gives post-nominal letters.  The body also provides many networking opportunities via a wide variety of groups that meet frequently for talks and discussions.  The organisation is also has Royal Charter, so can issue &lt;a href=&quot;http://en.wikipedia.org/wiki/Chartered_%28Professional%29&quot; rel=&quot;nofollow&quot;&gt;Chartered status&lt;/a&gt; to &lt;a href=&quot;http://en.wikipedia.org/wiki/Chartered_IT_Professional&quot; rel=&quot;nofollow&quot;&gt;IT professionals&lt;/a&gt;, or indeed engineers as they can award the &lt;a href=&quot;http://en.wikipedia.org/wiki/Chartered_Engineer&quot; rel=&quot;nofollow&quot;&gt;Chartered Engineer&lt;/a&gt; status.  I believe there are equivalent organisations in the US and other domains.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many professions also have regulatory bodies, which are usually compulsory membership and function like unions in part.  Doctors in the UK have to be registered with the &lt;a href=&quot;http://www.gmc-uk.org/&quot; rel=&quot;nofollow&quot;&gt;General Medical Council (GMC)&lt;/a&gt;, and are usually members of the medical union, the &lt;a href=&quot;http://www.bma.org.uk/&quot; rel=&quot;nofollow&quot;&gt;British Medical Association (BMA)&lt;/a&gt;.  So it is not only teachers that are professionals and unionised.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;To summarise, joining a union is possible for programmers and is highly advisable unless you have total blind faith that your working career will always be free from any potential legal situation.  It is not all about the masses against the classes, it is just common sense to protect yourself and the family that depend upon your job.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-23T16:15:57.387" CommentCount="1" />
  <row Id="29565" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T16:20:06.560" Score="10" ViewCount="" Body="&lt;p&gt;I like the poem/gruk by Piet Hein, called THE ROAD TO WISDOM:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;The road to wisdom? -- Well, it's plain&#xA;and simple to express:&#xA;Err&#xA;and err&#xA;and err again&#xA;but less&#xA;and less&#xA;and less.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If memory serves, Donald Knuth had an affinity for this piece as well (that's how I learned of it).&lt;/p&gt;&#xA;" OwnerUserId="11502" LastActivityDate="2010-12-23T16:20:06.560" CommunityOwnedDate="2010-12-23T21:13:10.957" CommentCount="2" />
  <row Id="29566" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T16:20:34.517" Score="6" ViewCount="" Body="&lt;p&gt;Beware of the lollipop of mediocrity, once you lick it, you will suck forever.&lt;/p&gt;&#xA;" OwnerUserId="905" LastActivityDate="2010-12-23T16:20:34.517" CommunityOwnedDate="2010-12-23T21:13:10.957" />
  <row Id="29567" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T16:21:11.980" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Any sufficiently advanced technology is indistinguishable from magic. (Arthur C. Clarke)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Go and do some magic!&lt;/p&gt;&#xA;" OwnerUserId="3629" LastActivityDate="2010-12-23T16:21:11.980" CommunityOwnedDate="2010-12-23T21:13:10.957" CommentCount="1" />
  <row Id="29568" PostTypeId="2" ParentId="29550" CreationDate="2010-12-23T16:23:40.123" Score="7" ViewCount="" Body="&lt;p&gt;Here are some ideas&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Book club, read the books like Pragmatic Programmer or other career centric stuff.&lt;/li&gt;&#xA;&lt;li&gt;Coding Dojo, you can start with a simple problem outside of project and then extend it to the Project or otherwise if you may choose.&lt;/li&gt;&#xA;&lt;li&gt;Retrospectives or feedback meeting, for getting ideas from the group itself to improve the project development in which every one participates&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A user group meeting in which a designated person presents this would improve the presentation/soft skills of the team&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;once in a while doing a non-work related task like going to Dave &amp;amp; Busters to have a fun friday or sorts.. to improve team chemistry&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Any of the tasks or meeting should be less than 45mins just to have the entire group interested. Any thing that goes beyond and hour will completely fall on to the shoulders of the presenter or leader of the group.&lt;/p&gt;&#xA;" OwnerUserId="10176" LastActivityDate="2010-12-23T16:23:40.123" CommentCount="1" />
  <row Id="29569" PostTypeId="2" ParentId="29553" CreationDate="2010-12-23T16:30:03.903" Score="1" ViewCount="" Body="&lt;p&gt;You should present error messages to the user &lt;strong&gt;if he/she can do something about it&lt;/strong&gt;. Either by allowing sending a bug report before quitting, or by deciding the way to go after a specific kind of error, one that have different possible resolutions that the user knows better the context.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't break the user experience if you can/until you have to.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastEditorUserId="1921" LastEditorDisplayName="" LastEditDate="2010-12-23T16:43:32.337" LastActivityDate="2010-12-23T16:43:32.337" />
  <row Id="29570" PostTypeId="2" ParentId="29553" CreationDate="2010-12-23T16:30:44.370" Score="2" ViewCount="" Body="&lt;p&gt;I think it's quite important to show some kind of user-level message when exceptions raices up, this way they have something to report to a supervisor, the dev team could have some more information and bug tracking could be done a lot faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The detail on the message should depend on the environment the app is running, from totally verbose in dev env to &quot;There was a problem saving a profile, please contact your supervisor&quot; on a prod env.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-23T16:30:44.370" />
  <row Id="29571" PostTypeId="2" ParentId="20927" CreationDate="2010-12-23T16:36:16.223" Score="3" ViewCount="" Body="&lt;p&gt;The best &lt;strong&gt;FizzBuzz&lt;/strong&gt; answers I've seen are:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;SQL Server 2008&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;;WITH mil AS (&#xA; SELECT TOP 100 ROW_NUMBER() OVER ( ORDER BY c.column_id ) [n]&#xA; FROM master.sys.all_columns as c&#xA; CROSS JOIN master.sys.all_columns as c2&#xA;)                &#xA; SELECT CASE WHEN n  % 3 = 0 THEN&#xA;             CASE WHEN n  % 5 = 0 THEN 'FizzBuzz' ELSE 'Fizz' END&#xA;        WHEN n % 5 = 0 THEN 'Buzz'&#xA;        ELSE CAST(n AS char(6))&#xA;     END + CHAR(13)&#xA; FROM mil&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;C# (simple)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;foreach (int number in Enumerable.Range(1, 100))&#xA;{&#xA;    bool isDivisibleBy3 = (number % 3) == 0;&#xA;    bool isDivisibleBy5 = (number % 5) == 0;&#xA;&#xA;    if (isDivisibleBy3)&#xA;         Console.Write(&quot;Fizz&quot;);&#xA;&#xA;    if (isDivisibleBy5)&#xA;         Console.Write(&quot;Buzz&quot;);&#xA;&#xA;    if (!isDivisibleBy3 &amp;amp;&amp;amp; !isDivisibleBy5)&#xA;         Console.Write(number);&#xA;&#xA;    Console.WriteLine();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;C# (clever)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; Enumerable&#xA;  .Range(1, 100)&#xA;  .Select(i =&amp;gt;&#xA;    i % 15 == 0 ? &quot;FizzBuzz&quot; :&#xA;    i % 5 == 0 ? &quot;Buzz&quot; :&#xA;    i % 3 == 0 ? &quot;Fizz&quot; :&#xA;    i.ToString())&#xA;  .ToList()&#xA;  .ForEach(s =&amp;gt; Console.WriteLine(s));&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="11503" LastEditorUserId="11503" LastEditorDisplayName="" LastEditDate="2011-01-12T14:24:52.007" LastActivityDate="2011-01-12T14:24:52.007" CommunityOwnedDate="2011-02-15T14:41:29.790" CommentCount="2" />
  <row Id="29572" PostTypeId="2" ParentId="29550" CreationDate="2010-12-23T16:36:46.977" Score="1" ViewCount="" Body="&lt;p&gt;I think that the only way to keep a team well-trained is to hire developers that want to continue learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it isn't coming from inside, it won't yield lasting results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;if they do desire to learn, then whether team learning activities are effective or not will depend mainly on interests and learning styles.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-12-23T16:36:46.977" />
  <row Id="29573" PostTypeId="2" ParentId="29550" CreationDate="2010-12-23T16:48:39.823" Score="0" ViewCount="" Body="&lt;p&gt;I think the dojo system sound cool, and allow them to proceed at home if they want to. Adding some kind of reward could be useful but you might emphasys cometition and i dont think to much of that any good for teamwork. &#xA;Anyway, an amazing place to go look for computer problems its &lt;a href=&quot;http://www.spoj.pl/tutorials/&quot; rel=&quot;nofollow&quot;&gt;Sphere Online Judge&lt;/a&gt;. It defines a problem, a set of expected results and lets you upload a file with the solution to the problem. If you get it right, you points go up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck with that!&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-23T16:48:39.823" />
  <row Id="29574" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T16:50:07.683" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The harder you work, the luckier you get.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that this says it all :-)&lt;/p&gt;&#xA;" OwnerUserId="7923" LastActivityDate="2010-12-23T16:50:07.683" CommunityOwnedDate="2010-12-23T21:13:10.957" />
  <row Id="29575" PostTypeId="2" ParentId="27787" CreationDate="2010-12-23T16:58:05.743" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Were I you, I'd avoid premature optimization, and just make sure The Damn Thing Works when deployed to your users. You can optimize later if it's an issue.&lt;/li&gt;&#xA;&lt;li&gt;Binary for text is an engineering tradeoff. You gave up performance to get portability and human-readableness. Equivalent Exchange and all that. You could just accept the engineering tradeoff and move on to other things.&lt;/li&gt;&#xA;&lt;li&gt;Keep the binary fat-client implementation around to satisfy the few people who do complain about performance. And when they complain, tell 'em to use the client.&lt;/li&gt;&#xA;&lt;li&gt;As a last resort, kill all whitespace between tags and shorten tag names. Use default namespaces to avoid extraneous prefixes.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8865" LastActivityDate="2010-12-23T16:58:05.743" />
  <row Id="29576" PostTypeId="2" ParentId="29531" CreationDate="2010-12-23T16:59:01.940" Score="4" ViewCount="" Body="&lt;p&gt;I feel it is a language-dependant question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ruby: &lt;a href=&quot;http://rubykoans.com/&quot; rel=&quot;nofollow&quot;&gt;Ruby Koans&lt;/a&gt; and &lt;a href=&quot;http://railsforzombies.org&quot; rel=&quot;nofollow&quot;&gt;Rails for Zombies&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Python: &lt;a href=&quot;http://www.pythonchallenge.com/&quot; rel=&quot;nofollow&quot;&gt;Python Challenge&lt;/a&gt;??? Also &quot;Thinking in Python&quot; (jump-starts you into explaining that the python paradigm is different)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;General answer, I would give one of the many programming challenges sites, but those will not get you into the specific language's mentality. I worked a bit with Astalavista Hacking Challenges (&lt;a href=&quot;http://www.astalavista.com/index.php?app=hackingchallenge&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;) with the language that I wanted to learn at that given point.&lt;/p&gt;&#xA;" OwnerUserId="6059" LastEditorUserId="6059" LastEditorDisplayName="" LastEditDate="2010-12-26T08:27:02.597" LastActivityDate="2010-12-26T08:27:02.597" CommentCount="4" />
  <row Id="29577" PostTypeId="2" ParentId="29534" CreationDate="2010-12-23T17:04:32.053" Score="3" ViewCount="" Body="&lt;p&gt;I'd keep in mind that there are lots of &quot;interview question&quot;-type web sites, and it's entirely possible to study for a great many questions and puzzles.  One thing you &lt;em&gt;can't&lt;/em&gt; study for is debugging code you've never seen before.  Either you've written enough code that you know how to debug or you haven't.  If it's an entry-level position I wouldn't rule the candidate out, but if they claim to have experience with the language and can't debug code in it, it certainly raises a red flag.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-23T17:04:32.053" />
  <row Id="29578" PostTypeId="2" ParentId="29507" CreationDate="2010-12-23T17:08:16.747" Score="1" ViewCount="" Body="&lt;p&gt;AFS' conflict with Oracle centers on &quot;Field of Use&quot; restrictions that Oracle placed on &lt;a href=&quot;http://en.wikipedia.org/wiki/Technology_Compatibility_Kit&quot; rel=&quot;nofollow&quot;&gt;Technology Compatibility Kits&lt;/a&gt; for the Java language.   As I understand it, the TCK's are only licensed for use under the GPL, which effectively bars Apache from a license under their own terms (the Apache license is not GPL compatible).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not the first time this battle has been fought.  &lt;a href=&quot;http://www.apache.org/jcp/sunopenletter.html&quot; rel=&quot;nofollow&quot;&gt;It was fought in 2007 with Sun as well.&lt;/a&gt;  More info &lt;a href=&quot;http://www.apache.org/jcp/sunopenletterfaq.html&quot; rel=&quot;nofollow&quot;&gt;here.&lt;/a&gt;  As far as I can tell, this issue was never satisfactorily resolved.  But Apache is still around, and all of their software products are still here and being vigorously maintained and enthusiastically used in software projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that the lack of a license for the TCK does not bar the unrestricted use of the Java language for Apache products, and Oracle offers a TCK that can be used to prove Java compatibility.  Apache merely wants their own, unrestricted implementation of the TCK (called &quot;&lt;a href=&quot;http://harmony.apache.org/&quot; rel=&quot;nofollow&quot;&gt;Harmony&lt;/a&gt;&quot;).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the JSR voted to move forward with Java SE 7/8, &lt;a href=&quot;http://www.jroller.com/scolebourne/entry/java_se_7_8_passed&quot; rel=&quot;nofollow&quot;&gt;they did so begrudgingly&lt;/a&gt;, and on the technical merits only.  Most of the members are unhappy with Oracle's &quot;Field of Use&quot; restrictions on the TCK.  This kind of thing illustrates why it takes so long for the Java language to get new features.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I don't think the changes to [the&#xA;  license agreement for TCK] would have&#xA;  any practical difference from what&#xA;  they were under Sun's leadership. Sun&#xA;  didn't remove the restrictions on the&#xA;  TCK and showed no intention of&#xA;  changing their mind. The new license&#xA;  wording just clarifies what it is that&#xA;  they are prohibiting (basically a&#xA;  third-party open-source implementation&#xA;  of the Java platform). &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;So this is exactly as it was before,&#xA;  only specified more clearly. So, yes,&#xA;  the Java SE specification is not&#xA;  entirely open, and it never has been. &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Somehow, this rebellion broke out only&#xA;  after Sun's acquisition. It seems to&#xA;  me that the reason is that Oracle just&#xA;  seems an annoying organisation (which&#xA;  it definitely is), and Larry Ellison&#xA;  seems like an annoying guy (which he&#xA;  probably is). Also, Oracle is just too&#xA;  powerful. IBM and Google like the Java&#xA;  leader to be weak. Sun was. Oracle&#xA;  isn't. That's the only reason this is&#xA;  all happening now.  &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I don't think this&#xA;  affects the Java user community that&#xA;  much. We have the OpenJDK, and&#xA;  commodity Java products have never&#xA;  made much use of Harmony. This only&#xA;  affects huge companies that want to&#xA;  distribute their own Java platform&#xA;  without licensing it from Oracle.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;a href=&quot;http://www.jroller.com/scolebourne/entry/java_se_7_8_passed#comment-1291735615000&quot; rel=&quot;nofollow&quot;&gt;http://www.jroller.com/scolebourne/entry/java_se_7_8_passed#comment-1291735615000&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-23T17:39:13.273" LastActivityDate="2010-12-23T17:39:13.273" />
  <row Id="29579" PostTypeId="2" ParentId="27944" CreationDate="2010-12-23T17:12:24.537" Score="0" ViewCount="" Body="&lt;p&gt;I've successfully made technology jumps more than once in my career.  The first project I worked on was a ColdFusion application (just think of everything wrong with PHP, magnify it, and now you have ColdFusion).  I hated that application, which was driven to loathing when I had to deploy it on a hardened Solaris box.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We had to come up with a tool to do some background processing, which is something ColdFusion definitely wasn't up to the task on.  Since it was a small company, and I wanted to learn Java, I wrote the utility in Java.  I learned a &lt;em&gt;lot&lt;/em&gt; about programming in the process.  I also built up my reputation for getting the job done right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since Java was object oriented, and I had exposure to C++, was asked to maintain some of that company's C++ applications.  Again a technology shift.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a while I went back to Java on both the desktop and the server.  That paid my bills for a good &lt;em&gt;long&lt;/em&gt; time.  Recently, I had another technology shift to the .Net stack.  The knowledge that I built up regarding application design and problem solving is what landed me the job even though I hadn't written one line of C# code.  C# was similar enough to Java I picked it up to a level where I could be useful while I was waiting on HR paperwork to go through.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day, you have to demonstrate that you have technology skills outside the pidgeon-hole where you feel you are now.  That demonstration is most effective with a working application or utility.  The more people who can see that application, the better.  However, as my last transition demonstrates, you don't have to have that application to land a job.  You have to know how to solve problems in a way that's compatible with the company's technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I'm sitting in the interviewer's position, certificates don't really impress me.  The reason is that I have had 50/50 luck with certified developers.  Some were really good, and some were really bad.  There was no appreciable trend either way so it's a non-issue.  What's more important is how well you can understand problems and articulate solutions.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-23T17:12:24.537" />
  <row Id="29580" PostTypeId="1" CreationDate="2009-04-04T01:27:07.613" Score="7" ViewCount="5200" Body="&lt;p&gt;What are your thoughts on being a Software Engineer vs a Network Engineer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been on the software field for almost 10 years now and although I still have a great deal of fun (and challenges), I am starting to think it could be better on the &quot;other&quot; side. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not to degrade network engineers (i know there are many great ones out there), it seems  (in general) their job is easier, the learning curve from average to good is not as steep, job is less stressful and pay is better on average.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think as software developer I could make the switch to networking and still enjoy working with computers and feel productive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I spend an enormous amount of time learning about software, practices, new technologies, new patters, etc...I think I could spend a much smaller amount of time learning about networking and be just as &quot;good&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your thoughts? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not about making easy money. Networking and Software are closely related, I love computers and programming, but if I can work with both, make more money and have less stress in my life and can spend more time with my family, then I am willing to consider a change and hence I am looking for advice that Do or Don't support this view.&lt;/p&gt;&#xA;" OwnerUserId="20809" LastActivityDate="2011-03-29T18:27:06.877" Title="Software vs Network Engineer (Salary, Difficulty, Learning, Happiness)" Tags="&lt;networking&gt;&lt;career&gt;&lt;salary&gt;" AnswerCount="13" CommentCount="4" FavoriteCount="1" />
  <row Id="29581" PostTypeId="2" ParentId="29580" CreationDate="2009-04-04T01:39:17.053" Score="11" ViewCount="" Body="&lt;p&gt;I used to work (as an programmer) for an ISP and thus got to see the everyday life of network administrators up close.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, the grass is not greener on the other side :)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;We have to put up with libraries that lack documentation and/or are buggy. They have to put up with devices that lack documentation and/or are buggy.&lt;/li&gt;&#xA;&lt;li&gt;Sometimes we have to put in a long evening (the kind that lasts until the next morning) in order to fix some critical bug. They have the same, people call them in the middle of night when something goes wrong (well, at least more often than us developers).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;... and so on, and so forth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;About learning curve: Technologies on the networking scene change as fast as different programming languages and approaches do. If you don't want to be a entry-level technician that does all the menial labor, then you have to put in about the same amount of time as us developers just to keep up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you really find that the spark is gone, then by all means you should consider switching. The worst case scenario is that you'll end up as a developer who has a lot of knowledge about networking, and that isn't a bad thing.&lt;/p&gt;&#xA;" OwnerUserId="22889" LastActivityDate="2010-12-23T17:17:49.393" CommentCount="3" />
  <row Id="29582" PostTypeId="2" ParentId="29580" CreationDate="2009-04-04T02:49:01.283" Score="11" ViewCount="" Body="&lt;p&gt;I think that if you are just looking for a job that is easier and pays more, you could certainly do better than network engineer. For instance, it takes very little technical knowledge to be a drug dealer. All you have to do is find a good supplier (not as hard as one might think) and you can easily make tens of thousands of dollars a week. I've even known kids in high school that did this. If you're really enterprising and do your market research, you can even make that amount in a weekend (by, for instance, buying some meth in California and selling it in Illinois at 400% cost). Or, better yet, you can be a spammer and probably make even more money without the risk of going to jail or being robbed at gunpoint.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My point is, there are a lot of easy ways to make money. Heck, even USPS drivers make $100k/year. But there are probably better ways of selecting a career than searching for the least challenging occupation with the highest pay. I mean, that's why there was a flood of CS students and IT professionals in the mid-90s because of the dot-com and IT boom. Everyone thought that CS/IT meant easy money. But if you're not actually interested in your field of work and don't enjoy what you do, then it will be hard for you to compete in that field. So after the dot-com bubble burst those people who only went into CS/IT for the money began blaming outsourcing for not being able to find work, when in reality there is still great demand for highly skilled CS professionals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rather than trying to find a career which requires the least amount of learning, maybe it would be wiser to find a career in which you actually enjoy learning the skills and acquiring the knowledge you need to perform your job. Or perhaps you don't even need that drastic of a career change. Maybe you just need to find a different work environment to revive your passion for your work. For instance, being a software engineer in the financial industry is not going to be quite the same experience as being a software engineer at a young web start-up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's kinda funny actually. I'm considering changing jobs myself at the moment, but for the exact opposite reason--I don't find my work challenging at all (I do graphic design and web development at an independent record label). I just don't feel like I'm achieving much personal growth where I am, and there aren't many opportunities for advancement at my current place of employment. I think if I found more challenging work, I wouldn't be as bored with work as I currently am. But that's just me.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-23T17:17:49.393" CommentCount="4" />
  <row Id="29583" PostTypeId="2" ParentId="29580" CreationDate="2009-04-04T15:53:58.263" Score="6" ViewCount="" Body="&lt;p&gt;It's all about &lt;strong&gt;&quot;having fun&quot;&lt;/strong&gt;, you should choose and go with the one you enjoy potentially not with the one that you think it's easier, or pays slightly more. You don't wanna spend your life in a job you don't enjoy because you can 5K extra every year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly network engineering is quite stressful job, they are the first people who is going to be told off when something is wrong (generally at least once per month). &lt;/p&gt;&#xA;" OwnerUserId="11401" LastActivityDate="2010-12-23T17:17:49.393" CommentCount="1" />
  <row Id="29584" PostTypeId="2" ParentId="29580" CreationDate="2009-04-07T14:29:38.830" Score="7" ViewCount="" Body="&lt;p&gt;Networking is far more stressful than software development. You are on the front line of the production systems and when something goes wrong you can't leave until it is fixed. You will be paged frequently at 3 am and expected to go to the office and not only fix what is wrong, but stay the whole normal work day after (on two hours or less sleep). If something breaks on Friday 10 minutes before quitting time and you have plans that evening, forget the plans, you are staying until the something wrong is fixed, often through the whole night. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-23T17:17:49.393" CommentCount="2" />
  <row Id="29585" PostTypeId="2" ParentId="29580" CreationDate="2009-07-19T14:12:22.050" Score="2" ViewCount="" Body="&lt;p&gt;Network engineering isn't necessarily more stressful...it all depends on the company. Sure, if you're one of a few network engineers responsible for maintaining the production environment and an incident gets escalated from NOC to your team, then you may find yourself working late into the morning. But if all you do is help design and implement the network landscape and aren't part of a team that handles outages, then it's not too stressful. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-23T17:17:49.393" CommentCount="1" />
  <row Id="29586" PostTypeId="2" ParentId="29580" CreationDate="2009-10-13T10:24:09.893" Score="5" ViewCount="" Body="&lt;p&gt;Having worked on both sides of that line, the first thing that comes to my mind is that I've never once been asked to be on-call as a programmer, but I've never known an admin who wasn't on call at least one week in six.  A good friend was one of the three top net admins for a major national (US) grocery chain and frequently got paged with things like &quot;Yes, we know the area around our Florida data center has just been evacuated because of the approaching hurricane.  You &lt;em&gt;will&lt;/em&gt; connect remotely from halfway across the country and keep those servers on-line while the storm goes by, even if the data center is hit directly.&quot;  I still wonder how they expected him to deal with any hardware failures with no hands on the scene; fortunately, there weren't any that time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My general impression is that programmers tend to get paid better, though I can't say I really looked at that aspect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the things I loved most about the admin side is that, on a typical day, I'd be doing ten different and largely unrelated things and I'd get to work in the morning not knowing what half of them would be, whereas, on the programming side, it would be the same project from the time I walked in the door until the time I went home, for weeks or months at a time.  (My main reason for going to admin was boredom with the lack of variety in my programming work.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you may have gathered from the last point, my experience has been that programming involves deep, but narrowly-focused knowledge of a specific topic and set of technologies, while admin tends to turn into shallow knowledge of just about &lt;em&gt;everything&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="12435" LastActivityDate="2010-12-23T17:17:49.393" CommentCount="1" />
  <row Id="29587" PostTypeId="2" ParentId="29580" CreationDate="2010-11-06T03:49:26.043" Score="1" ViewCount="" Body="&lt;p&gt;In my view, both the jobs are not very much different. For eg: lets say a task of developing OSPF for S/w Engg and Implementing OSPF for a medium to large enterprise on N/w Engg side.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i) Both the tasks requires a true professional to understand the algorithm and its working model&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ii) S/w Engg develops a design document and so does the N/W Engg.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;iii) S/w Engg will code the algorithm on C/C++ syntax where as N/w engg will program the devices based on IOS/JUNOS syntax. I would expect people to say C/C++ is tougher but in my view anything would be easier if you have mastered it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;iv) If there is a bug either during testing phase / during production, the responsible Engineer should troubleshoot &amp;amp; fix the issue. Likewise, N/w Engg should handle the network performance / other issues, isolate them and fix it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;v) Both the job profiles evolve rapidly and demand more. Engineers should keep on updating themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, Software Engg is a glamorous profile similar to Movie Actor &amp;amp; Actresses whereas N/w professionals are nothing but people behind the camera.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-23T17:17:49.393" />
  <row Id="29588" PostTypeId="2" ParentId="29507" CreationDate="2010-12-23T17:20:58.983" Score="1" ViewCount="" Body="&lt;p&gt;The problem is not with the projects &lt;em&gt;using&lt;/em&gt; java (like those you mention), but the projects &lt;em&gt;implementing&lt;/em&gt; Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way to be certain you do it correctly is to run the TCK with your implementation and be told what works correctly and what not.  If the Java implementation passes the TCK correctly, it can be called Java-compatible.  If it doesn't it cannot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Problem is that the &lt;em&gt;intent&lt;/em&gt; for others to be able to implement the Java Language Specification cannot be &lt;em&gt;verified&lt;/em&gt; unless they have a license to the TCK.  Apache has asked for a TCK license for free, but this has silently been denied by first Sun and then Oracle.  This is most likely because the engineers who knew that the best way to make software is to help each others worked towards Open Source, but the decision makers have denied for the potentially money making technologies to be opened up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What all this means is - in MY opinion - that it has finally been clearly shown without any doubt that Java is a proprietary Oracle technology, and not a free open source technology.  This does not imply any changes for the libraries under the Apache umbrella, unless if Apache itself decides to boycott Java which I belive is very unlikely, only for the Apache Harmony Java implementation.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2010-12-23T17:46:49.530" LastActivityDate="2010-12-23T17:46:49.530" />
  <row Id="29589" PostTypeId="2" ParentId="29534" CreationDate="2010-12-23T17:21:34.583" Score="2" ViewCount="" Body="&lt;p&gt;The major difference I've seen between junior programmers and senior programmers is their skill at debugging. Skill at debugging is something that only comes with practice and experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, think of a strange bug where a Java program works fine on the console in interactive mode, but fails when you try to use a Unix pipe for the same input. If you've encountered this problem before, you might check to be sure that &lt;code&gt;new Scanner(System.in)&lt;/code&gt; is only called once; the bug being that it consumes the buffer when piped, but obviously not when in interactive mode. I would expect a more senior programmer to identify this bug faster. Perhaps because they've experienced it before, or because they've had other issues with buffering in the past.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for puzzle solving and writing new code, while experience is important, this is something where a junior-level programmer can perhaps perform just as well as, or even better than, a more senior programmer. &lt;strong&gt;That is, intelligence and skill can have a larger effect, which is independent of experience.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are in a position to invest in a junior programmer, who may have new ideas and can help the team &quot;gel,&quot; and they seem fine writing new code, go ahead and hire them. If you are looking for a senior-level programmer, then this lack of debugging skill may be a major warning sign: They might have ten years experience that only amounts to experiencing the first-year ten times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a side note, there are ways to become better at debugging without having 10 years of experience first. I recommend Andres Zeller's book &lt;em&gt;&lt;a href=&quot;http://www.whyprogramsfail.com/&quot; rel=&quot;nofollow&quot;&gt;Why Programs Fail: A Guide to Systematic Debugging&lt;/a&gt;&lt;/em&gt; as a way to learn scientific principles and to better understand how to reproduce, find, and fix failures.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-23T17:21:34.583" CommentCount="2" />
  <row Id="29590" PostTypeId="2" ParentId="29507" CreationDate="2010-12-23T17:22:09.187" Score="1" ViewCount="" Body="&lt;p&gt;I think what Apache is doing is waiting for the community to pick up on OpenJDK - they want that to be the future of Java instead of Oracle. This is a very mature decision from Apache and I really respect them for this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java is just a language. It's silly for Apache to change languages because they're having issues with one implementation they were using (Oracle's).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So yes, they will definitely continue writing things in Java, and I'm pretty sure OpenJDK will be the next big thing for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a quote from Jim Jagielski (&lt;em&gt;Co-Founder, Chairman, Apache Software Foundation&lt;/em&gt;) on his &lt;a href=&quot;http://www.jimjag.com/imo/index.php?/archives/242-The-JCP-Is-Dead.html&quot; rel=&quot;nofollow&quot;&gt;blog-post&lt;/a&gt; about JCP's death and a new future that should be driven by the community:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;But maybe, from this death, a new,&#xA;  true community process might arise&#xA;  somewhere, with a different collection&#xA;  of people, one with no entity &quot;more&#xA;  equal than others&quot;. That is something&#xA;  I think the ASF would be quite&#xA;  interested in seeing.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's great to see these kind of &lt;em&gt;radical&lt;/em&gt; changes happening in software. I wish they would happen in the government system as well, because sometimes things need to change.&lt;/p&gt;&#xA;" OwnerUserId="3306" LastEditorUserId="3306" LastEditorDisplayName="" LastEditDate="2010-12-23T17:31:14.807" LastActivityDate="2010-12-23T17:31:14.807" />
  <row Id="29591" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T17:24:34.893" Score="5" ViewCount="" Body="&lt;p&gt;Before enlightenment, chop wood, carry water. After enlightenment, chop wood, carry water.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-23T17:24:34.893" CommunityOwnedDate="2010-12-23T21:13:10.957" />
  <row Id="29592" PostTypeId="2" ParentId="29534" CreationDate="2010-12-23T17:30:27.867" Score="2" ViewCount="" Body="&lt;p&gt;It depends on your environment. If you play sodoku and other puzzles all day, perhaps it would be a good candidate. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If however, you sometimes have bugs in your code, or it doesn't always perform exactly as expected I suggest you get someone good at troubleshooting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hire for what you need, not some ideal of what a programmer should be.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-12-23T17:30:27.867" />
  <row Id="29593" PostTypeId="2" ParentId="29550" CreationDate="2010-12-23T17:31:11.097" Score="1" ViewCount="" Body="&lt;p&gt;There's a number of skills we need as developers that aren't necessarily directly related to code.  One example is presenting, and explaining technical things to non-technical people in a way they can understand.  Something that can be effective while you are getting your team up to where you want them is to give something like homework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each week, you give your guys a problem to work through.  To keep it most beneficial to the company keep the problems to something relevant to what you are working on.  Preferably some pain point you haven't figured out the solution to yourself yet.  Each of your junior members would take turns presenting (preferably one a week) while you play the role of the client.  Essentially, you have two goals with this approach:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The act of teaching/presenting requires the guy on the floor to have a deeper knowledge than just doing exercises.  It's an indirect, yet very effective way to teach someone a topic.&lt;/li&gt;&#xA;&lt;li&gt;If they can convince you that it is a good idea, they might be able to convince a client the same thing.  Make sure you throw in questions that make them think about the business impact of what they are proposing.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Of course, start each session with a reminder that you are going to ask pointed questions--and the purpose is not to be mean, but to prepare them for a tough client.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-23T17:31:11.097" />
  <row Id="29594" PostTypeId="2" ParentId="29514" CreationDate="2010-12-23T17:36:36.220" Score="5" ViewCount="" Body="&lt;p&gt;Use the modularity of your language to organize a &lt;a href=&quot;http://www.sei.cmu.edu/productlines/tools/index.cfm&quot; rel=&quot;nofollow&quot;&gt;software product line&lt;/a&gt;, rather than the version control system. Quite simply, the merge process is not something you want to be a regular part of building your products. Rather, &lt;strong&gt;the design of your product should already take this into account&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By accounting for the software product family at the design level, this will also make it much clearer to developers what the variation points are: the variation points will be obvious in the design, rather than implied as source code differences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This will ease developer testing as well: Any modifications you make should be tested on both products. You won't want to be making the same change twice, or constantly merging and undoing changes as they occur.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Review the literature on software product lines to see the best practices for your language. Using these techniques, you can create a third &quot;product&quot; that is streamlined for testing. For example, using dependency injection can be your mechanism for both testing and for having variants of the same program.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-23T17:36:36.220" CommentCount="1" />
  <row Id="29596" PostTypeId="1" AcceptedAnswerId="29597" CreationDate="2010-12-23T18:10:54.273" Score="10" ViewCount="355" Body="&lt;p&gt;From a few other questions here, it seems like the suggested route to learn Dvorak is just to do it, and while I have a couple weeks of vacation I'm using, it might be a good time to give it a whirl, so I'm not totally useless at 4 WPM when I go back to work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, in a few weeks would I severely damage my QWERTY knowledge or would it still be hanging around?  Should I switch back to QWERTY occasionally while learning Dvorak?&lt;/p&gt;&#xA;" OwnerUserId="4428" LastActivityDate="2010-12-24T00:00:04.570" Title="If I immerse myself in Dvorak, will I forget QWERTY?" Tags="&lt;keyboard-layout&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="2" />
  <row Id="29597" PostTypeId="2" ParentId="29596" CreationDate="2010-12-23T18:15:37.267" Score="7" ViewCount="" Body="&lt;p&gt;I've never switched to Dvorak but I do use a combination of US and UK keyboard on Windows, OSX and Ubuntu. When switching between them I generally make a few mistakes and then I'm fine. The longer I've been in a different environment, the more mistakes I'll make during that process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should have used QWERTY for long enough by now for it to be like riding a bike, you might be a bit wobbly if you haven't done it for a while but you'll soon be speeding along like before.&lt;/p&gt;&#xA;" OwnerUserId="10449" LastActivityDate="2010-12-23T18:15:37.267" CommentCount="2" />
  <row Id="29598" PostTypeId="2" ParentId="29553" CreationDate="2010-12-23T18:31:07.370" Score="1" ViewCount="" Body="&lt;p&gt;Yes, errors should be reported. Consider the situation where the user inputs the wrong password and was bot able to log in. Imagine what if the application instead of giving error, &quot;Wrong password or username&quot; simply gets back to the original password asking screen. The user will certainly get confused saying &quot;Huh.., what did just happen?&quot;.&lt;br&gt;&#xA;Report every possible error that can occur and which the user can understand. Also think about what the information should be displayed. Think about the support. If the user after getting error, comes back asking why the error, then the support should be able to answer. For this there should be enough information in the error. This information need not be shown to the user, but must be somewhere in the logs. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-23T18:31:07.370" />
  <row Id="29599" PostTypeId="2" ParentId="29553" CreationDate="2010-12-23T18:37:03.163" Score="1" ViewCount="" Body="&lt;p&gt;You should always present a problem to a user in easily understandable words based on information provided by the underlying architecture.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;The file could not be saved to this location.  You must save it to another location&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should &lt;em&gt;also&lt;/em&gt; allow for the user to access the full error messages and forward them to the development team, but do not do it up front.  This can be very helpful in a phone support situation.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-23T18:37:03.163" />
  <row Id="29600" PostTypeId="2" ParentId="27798" CreationDate="2010-12-23T18:40:40.023" Score="0" ViewCount="" Body="&lt;p&gt;My general rule is that a function should fit on the screen.  There are only three cases I have found that tend to violate this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1)  Dispatch functions.  In the old days these were common but most of them are replaced with object inheritance these days.  Objects only work inside your program, though, and thus you'll still see occasional dispatch functions when dealing with data arriving from elsewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2)  Functions that do a whole bunch of steps to accomplish a goal and where the steps lack a good subdivision.  You end up with a function that simply calls a long list of other functions in order.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3)  Like #2 but where the individual steps are so small that they are simply inlined rather than called separately.&lt;/p&gt;&#xA;" OwnerUserId="5555" LastActivityDate="2010-12-23T18:40:40.023" />
  <row Id="29601" PostTypeId="1" AcceptedAnswerId="29745" CreationDate="2010-12-23T18:47:38.207" Score="2" ViewCount="224" Body="&lt;p&gt;Once I found a link to a great blog post outlining what to expect/giving guidelines what to do in the first 90 days at a new company. The blog contained many more interesting articles about the business of software development, which I would like to read, but I just cant find the link anymore. I forgot to bookmark it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The article I am looking for was something like &quot;90 days&quot; or so, but I cant remember exactly and google didnt turn up anything useful. Does anyone know which blog I am looking for? &lt;/p&gt;&#xA;" OwnerUserId="2689" LastActivityDate="2010-12-24T08:52:02.677" Title="first 90 days of a new hire - searching for blog post" Tags="&lt;career&gt;&lt;business&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="29602" PostTypeId="2" ParentId="29553" CreationDate="2010-12-23T18:49:20.153" Score="0" ViewCount="" Body="&lt;p&gt;My advice, code-wise, is to &lt;strong&gt;never&lt;/strong&gt; swallow errors/exceptions, and never catch general exceptions. Catch only specific ones that you know are possible (for example, array &quot;out of bounds&quot; errors) and handle them accordingly, giving the user some type of feedback as per @&lt;a href=&quot;http://programmers.stackexchange.com/questions/29553/under-what-circumstances-should-error-messages-be-presented-to-the-user/29562#29562&quot;&gt;Josh K's answer&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there are times where it's probably better to swallow errors. Something stupid like a user opens a file used by your app and prematurely kills the program, causing some type of file handling error -- your application is closing, it offers no benefit to deal with it. In this case, you still shouldn't just ignore it, just dump the problem to an error log and if the user has a problem, you can refer to that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's also another point: record your application's errors with an error log. Fairly simple to do and could save you dozens of headaches in the future. Just take precautions to make sure it doesn't balloon up to 20 GB in size. &lt;/p&gt;&#xA;" OwnerUserId="5624" LastActivityDate="2010-12-23T18:49:20.153" />
  <row Id="29603" PostTypeId="2" ParentId="29531" CreationDate="2010-12-23T18:58:21.157" Score="1" ViewCount="" Body="&lt;p&gt;I find that taking old course work, or work I've done in another language and refactoring the code into the new language. This helps because the logic for 90% of whatever i'm working on takes the most time. Refactoring something I've already done removes a large part of the logic and allows me to focus on the language itself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As well -- each time your write that project it keeps getting better and better! I think I've rewritten my Blackjack game (originally written in Java) about 4 or 5 times now! (c++, php/ajax, c, and c#)!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Out of curiosity what language are you now trying to learn?&lt;/p&gt;&#xA;" OwnerUserId="1834" LastActivityDate="2010-12-23T18:58:21.157" CommentCount="2" />
  <row Id="29604" PostTypeId="2" ParentId="29596" CreationDate="2010-12-23T18:58:32.223" Score="1" ViewCount="" Body="&lt;p&gt;From personal experience: no. Once you've learned both proficiently, you can freely switch back and forth (in fact strangely enough my QWERTY speed increased after I learned Dvorak), though it may take a while (say 10-20 minutes) before you're typing without mistakes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And as for &quot;Should I switch back to QWERTY occasionally while learning Dvorak&quot;, it's really least painful if you don't. That's why vacation is a good time to learn Dvorak, when you don't &lt;em&gt;need&lt;/em&gt; to type so much that QWERTY becomes essential.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Random remarks: The biggest pain with switching to Dvorak is not the typing but all the keyboard shortcuts that are in your muscle memory: either relearn shortcuts, or do something so that it's very easy to switch to QWERTY when you need a keyboard shortcut. Also, I don't see a significant speed gain with Dvorak, but my fingers do hurt less.)&lt;/p&gt;&#xA;" OwnerUserId="3220" LastActivityDate="2010-12-23T18:58:32.223" />
  <row Id="29606" PostTypeId="2" ParentId="29596" CreationDate="2010-12-23T19:06:35.507" Score="1" ViewCount="" Body="&lt;p&gt;If you change occasionally, say typing on QWERTY every few weeks or months, you can expect a 2-10 minute &quot;warm up&quot; period where you are slow. Perhaps you will need to look down, but you can type with 10 fingers, and look away after a few minutes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you change frequently, every few days or every few hours, then you should have no problem and should be able to switch instantly, full speed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do find that there is a visual element, so if you can only type QWERTY or Dvorak in certain specific graphical or environmental conditions, it will help with the switch. What I mean by this is if you want to type QWERTY and Dvorak in this same text box, your brain and muscles need to remember two full keyboard layouts with zero external support. If you type QWERTY at work on Mac with desktop background A while listening to music B, and then type Dvorak at home on a Windows box in a different environment, you'll have an easier time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another example: I can only recall certain passwords when I am looking at the page where I need to enter them. I cannot recall them typing in a blank text document without the small peripheral graphical cues.&lt;/p&gt;&#xA;" OwnerUserId="5008" LastActivityDate="2010-12-23T19:06:35.507" CommentCount="2" />
  <row Id="29607" PostTypeId="2" ParentId="29596" CreationDate="2010-12-23T19:08:10.340" Score="3" ViewCount="" Body="&lt;p&gt;I think that if you immerse yourself in one single layout (Dvorak in your case), you will forget the others; but if you use several regulary, then it won't be a problem.&lt;/p&gt;&#xA;" OwnerUserId="9094" LastActivityDate="2010-12-23T19:08:10.340" CommentCount="2" />
  <row Id="29609" PostTypeId="2" ParentId="29485" CreationDate="2010-12-23T19:15:09.980" Score="1" ViewCount="" Body="&lt;p&gt;I started listening to Soma.fm. They have some stations with easy-going, lounge kind of music. It doesn't distract but keeps you going.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-23T19:15:09.980" />
  <row Id="29611" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T19:22:06.867" Score="2" ViewCount="" Body="&lt;p&gt;Sometimes, I find myself having to chant &lt;strong&gt;NMP&lt;/strong&gt; when I look at particularly bad code I can't afford to fix, because it doesn't hurt the customer.  NMP, of course, means not my problem.  But I think it'd be better if I chanted &lt;strong&gt;No-OP&lt;/strong&gt; which &lt;em&gt;of course&lt;/em&gt; means Not Our Problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For actual motivation, I tend to remember this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; function search( key : typekey; var r : dataarray ) : integer;&#xA; var high, j, low : integer;&#xA;&#xA; begin&#xA; low := 1;&#xA; high := n;&#xA; while (r[high].k &amp;gt;= key) and (key &amp;gt; r[low].k) do&#xA;      begin&#xA;      j := trunc( (key-r[low].k) / (r[high].k-r[low].k) *&#xA;                     (high-low) ) + low;&#xA;      if      key &amp;gt; r[j].k then low  := j+1&#xA;      else if key &amp;lt; r[j].k then high := j-1&#xA;                           else low  := j&#xA;      end;&#xA; if r[low].k = key then search := low  {*** found(r[low]) ***}&#xA;                   else search := -1;  {*** notfound(key) ***}&#xA; end;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It does three things:  Reminds me I'm not a Pascal programmer, that considering the average cases as well as the worst is important, and that knowing about your data is knowing about your solution.&lt;/p&gt;&#xA;" OwnerUserId="10011" LastActivityDate="2010-12-23T19:22:06.867" CommunityOwnedDate="2010-12-23T21:13:10.957" CommentCount="2" />
  <row Id="29613" PostTypeId="2" ParentId="29513" CreationDate="2010-12-23T19:37:28.960" Score="2" ViewCount="" Body="&lt;p&gt;Reinventing the wheel is a great way to learn how a wheel works, but it is not a good way to build a car.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-12-23T19:37:28.960" />
  <row Id="29614" PostTypeId="1" AcceptedAnswerId="29617" CreationDate="2010-12-23T19:38:28.427" Score="12" ViewCount="433" Body="&lt;p&gt;Programming always required to learn new concepts, paradigms, features and technologies and I always have been failed at first attempt to understand new concept what i encounter. I start to blame and humiliate myself without remember before how i understood new concept which i hadn't understand it before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can hardly stop to tell myself &quot;why i cant understand ? Am i stupid or idiot ? Yes, i am stuppiiddddd!!!&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What your inner voice tells if you can not understand new concept after spend long time till been tired or hopeless ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you handle your self-esteem in such situations ?&lt;/p&gt;&#xA;" OwnerUserId="3664" LastEditorUserId="3664" LastEditorDisplayName="" LastEditDate="2010-12-30T13:33:42.823" LastActivityDate="2010-12-30T13:47:24.997" Title="What are you telling yourself if you can't understand new concept, paradigm, feature ... ?" Tags="&lt;self-improvement&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="2" />
  <row Id="29616" PostTypeId="2" ParentId="27944" CreationDate="2010-12-23T19:46:50.573" Score="1" ViewCount="" Body="&lt;p&gt;Since you already have PHP experience many of the web development skills you acquired will be of great use, if you move asp.net web development. I personally prefer asp.net mvc because it is more structured and Microsoft almost recommends it over Web Forms. So your CSS, JavaScript and HTML etc skills will not be lost in this transition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend certification, with a word of caution that a certification does not entitle you with any thing. But, it would be a proof that you have understanding of asp.net/microsoft stack. You can easily justify your job search in microsoft technologies. On the top, a Certification preparation will expose lot of concepts to you. Getting a certification is better than sitting and biting nails, unless you have a interesting pet project in asp.net or anyother tool in microsoft stack.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are employed by a company they do expect you to be productive the level varies but the whole idea is now how proficient are you in Microsoft stack? I personally like www.tekpub.com  for lot of good screen casts and the good work of Rob Conrey, for dissecting things into simple understandable units of tutorials. This would expediate your learning process. I would strongly recommend that even though it has a monthly membership which is nominal if you live in OECD nations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Got to amazon and chase the books on asp.net/microsoft.net typically choose a book with 5-star rating and commit yourself. Last but not the least, learn to install all the required software Visual Studio, SQL Server and other things required on your personal computer (express edition should be fine). Do that by yourself, either by searching internet or a book. This is very important skill, that would be handy and simple in most cases, but there are some lessons that can be learned there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least ensure you have implemented that little shopping cart or blog-engine mini-project to see how the whole thing falls into place.&lt;/p&gt;&#xA;" OwnerUserId="10176" LastActivityDate="2010-12-23T19:46:50.573" />
  <row Id="29617" PostTypeId="2" ParentId="29614" CreationDate="2010-12-23T19:47:04.077" Score="23" ViewCount="" Body="&lt;p&gt;Personally, everything is an analogy away. And if I don't understand something, it's probably because I haven't been shown the right concept to bridge me over to the Land of Understand. I usually keep scouring around for different tutorials and eventually one of them will take a different turn than the previous tutorials did that I didn't grok. Then I'll go back and read all of them and finally piece it together. And then rage why the other tutorials didn't present it the same way.&lt;/p&gt;&#xA;" OwnerUserId="3119" LastActivityDate="2010-12-23T19:47:04.077" CommentCount="4" />
  <row Id="29618" PostTypeId="2" ParentId="29614" CreationDate="2010-12-23T19:50:11.687" Score="2" ViewCount="" Body="&lt;p&gt;That simply means you still don't have enough experience in that one specific area. As we acquire experience we start mapping concepts from other areas which helps us understand the new concepts faster.&#xA;Don't beat yourself over it. Just keep pushing, ask a friend, etc... You're learning and that is a great.&lt;/p&gt;&#xA;" OwnerUserId="11219" LastActivityDate="2010-12-23T19:50:11.687" />
  <row Id="29619" PostTypeId="2" ParentId="29513" CreationDate="2010-12-23T19:54:17.720" Score="0" ViewCount="" Body="&lt;p&gt;Well, his own method being as efficient as framework would be pretty rare because most frameworks still have bugs and no framework can give you an out of the box solution. Most programmers who can't think will never try to write anything at the framework level; they will just search Google for a ready-made solution. Any wise programmer will first see if there is a free framework that has the functionality he needs, and then write the solution himself if there isn't. Sometimes it is way too difficult to explain the current project situtation and the developer is the best judge. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reinventing the wheel is not bad, it is a statement made by lazy people to avoid working hard. Even framework writers do reinvent; the entire .Net framework was reinvented to do what COM was offering. &lt;/p&gt;&#xA;" OwnerUserId="11520" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2010-12-23T20:19:15.503" LastActivityDate="2010-12-23T20:19:15.503" />
  <row Id="29620" PostTypeId="2" ParentId="5259" CreationDate="2010-12-23T19:54:20.963" Score="0" ViewCount="" Body="&lt;p&gt;I can relate in so many ways.  He may appear not to be motivated because he may have hit some walls (the &quot;&lt;a href=&quot;http://www.squidoo.com/thedipbook&quot; rel=&quot;nofollow&quot;&gt;dip&lt;/a&gt;&quot;?) when trying to get back into it.  The inferiority complex kicks in.  If possible, I'd recommend he help out a friend (you?) on a side project (option #2 that you stated).  But the project has to have a real goal, and not just be an exercise, otherwise focus can quickly disappear.  If the friend is aware of his situation, maybe he wouldn't be afraid to let his vulnerabilities show, and won't feel as funny asking (what he may believe are dumb) questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm on a similar path right now, and started &lt;a href=&quot;http://markfreedman.com/index.php/2010/09/11/the-re-education-of-a-software-developer/&quot; rel=&quot;nofollow&quot;&gt;writing about it&lt;/a&gt;.  Then &lt;a href=&quot;http://markfreedman.com/index.php/2010/09/12/re-education-action-plan-the-lessons/&quot; rel=&quot;nofollow&quot;&gt;I put together a sort of game plan&lt;/a&gt; (I've deviated from it a bit, but this may help as well). &lt;/p&gt;&#xA;" OwnerUserId="10397" LastActivityDate="2010-12-23T19:54:20.963" />
  <row Id="29621" PostTypeId="2" ParentId="5259" CreationDate="2010-12-23T19:56:26.680" Score="2" ViewCount="" Body="&lt;p&gt;I'll approach this a little differently. Most of the answers here address the &quot;what&quot; of teaching catch-up to a dormant programmer. Most of that &quot;what&quot; is a specific programming language or programming paradigm. But Skarab asked &quot;how&quot;, which is a different question altogether. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is how:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- If he's done a lot with C++, Linux, and mySQL, but moved away from it, find out why. It could be that he became tired of the way those technologies constrain problem-solving techniques. Perhaps he doesn't want to do precisely that any longer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- Find out what the learner &lt;em&gt;means&lt;/em&gt; when he says he needs to re-learn programming. What you're looking for his his &quot;happy thought&quot;: the thing that motivates him to action.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clearly from the question, approaching it with a new but similar language like C# or Java isn't it. &lt;em&gt;Find out what he wants to do with his programming&lt;/em&gt;, then you'll have a hook for the next thing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- Upon learning the &quot;happy thought&quot;, identify the best computer languages or technologies for the kind of thing he wants to do. F#, Ruby, Python, C#, VB, and Java, and all the other languages mentioned here are means to that end, not ends in themselves. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- Share precisely one of these technologies with him. Don't complicate things by introducing them all. The last thing a dormant programmer needs is a laundry list of all the things that have been released in the last 24 months followed by a question about which one he wants. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;-- locate a &lt;em&gt;very small&lt;/em&gt; project or task which introduces &lt;em&gt;one&lt;/em&gt; or &lt;em&gt;two&lt;/em&gt; new concepts which directly inform his &quot;happy thought&quot;, and then demonstrate those concepts for him. Tie it in with what he wants to ultimately do. Note that this is harder for you than just throwing out a new language, because you'll probably have to write these demos. The signal-to-noise ratio on blogs and other online resources is so high that google searches are slowly becoming useless, and no technology vendor (aside from &lt;em&gt;maybe&lt;/em&gt; Apple and &lt;em&gt;maybe&lt;/em&gt; some departments at Google) has written a cogent demo in something like 13 years. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So in that sense your second option is more appropriate. The language of choice and the platform of choice will follow behind what he wants to do. Eventually, he'll be able to follow along with the rest of us at places like Stack Overflow and not feel for a moment that he's lost something except that happy thought.&lt;/p&gt;&#xA;" OwnerUserId="9405" LastActivityDate="2010-12-23T19:56:26.680" CommentCount="1" />
  <row Id="29622" PostTypeId="2" ParentId="29485" CreationDate="2010-12-23T20:01:19.703" Score="3" ViewCount="" Body="&lt;h2&gt;Prelude&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Well, my boss just just plugged in two servers on the other side of an un-insulated drywall wall, and there are 4 more to turn on. Right now, I'm glad I bought a pair of noise canceling headphones.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally I think programmers should be setup into teams that work in private rooms.  This gives us a quiet environment that can help us concentrate, and fellow programmers that we can talk through an issue with without distracting other programmers whom are not concerned with the issue.  Alas that is an ideal world though.  &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Answer&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;As per the exact question, I use noise canceling headphones with music when I'm not working through anything particularly complicated.  If I really need to focus however, I turn the music off and just let the noise-canceling effect do it's job. Gives me a reasonably quite atmosphere to think.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I've read that there have been studies that show that music without lyrics is far less distracting than music with them. This might be something that some people would like to explore.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;In Closing&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I think whether you listen to music or not, a decent pair of electronic noise canceling headphones are one of the best investments you could ever make.  They are more comfortable, as well as more manageable than earplugs.&lt;/p&gt;&#xA;" OwnerUserId="7048" LastActivityDate="2010-12-23T20:01:19.703" CommentCount="2" />
  <row Id="29623" PostTypeId="2" ParentId="29313" CreationDate="2010-12-23T20:01:42.823" Score="0" ViewCount="" Body="&lt;p&gt;My personal take on technical heavy books is daily discussion. I understand from a bookclub standpoint that is difficult, but how about making your group take the challenge of acing a certification exam. Having it confined to say 4 weeks of prep, that is the fun of engaging in technical stuff. In that case you would not need an entire village, the group end up with a handful of motivated people and would really filter itself out in a week. Trust me, this is how you can challenge yourself and the team.&lt;/p&gt;&#xA;" OwnerUserId="10176" LastActivityDate="2010-12-23T20:01:42.823" />
  <row Id="29625" PostTypeId="2" ParentId="29485" CreationDate="2010-12-23T20:11:49.613" Score="1" ViewCount="" Body="&lt;p&gt;I prefer either white noise - such as the 'music' of servers humming in the background - or a consistent level of talk, from either radio or TV.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I dont like programming or working with music in the background.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-23T20:11:49.613" CommentCount="1" />
  <row Id="29626" PostTypeId="2" ParentId="29513" CreationDate="2010-12-23T20:11:59.037" Score="3" ViewCount="" Body="&lt;p&gt;In general, I avoid reinventing the wheel if the functionality I desire, or something approximating it, exists in the &lt;em&gt;standard library&lt;/em&gt; of the language I use.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if I have to incorporate third party libraries, it's a judgment call depending on how widely used and esteemed the library is.  I mean, are we talking about &lt;a href=&quot;http://www.boost.org/&quot; rel=&quot;nofollow&quot;&gt;Boost&lt;/a&gt; or Bob's Kick-ass String-Parsing Tools 1.0?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if the library is generally well-known and highly-esteemed throughout the industry, it's still a third-party &lt;em&gt;dependency&lt;/em&gt;.  Programmers generally place significant emphasis on the virtues of code reuse, while often glossing over the danger of dependencies.  A project with too many third-party dependencies is likely to fall apart in the long run as it slowly devolves into a maintenance nightmare.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So leveraging existing code is &lt;em&gt;good&lt;/em&gt; - but dependencies are &lt;em&gt;bad&lt;/em&gt;.  Unfortunately, these two statements are at odds with each other, so the trick is trying to find the right balance.  That's why you need to identify &lt;em&gt;acceptable&lt;/em&gt; dependencies.  As I said, anything in the Standard Library of the language is most likely an acceptable dependency.  Moving on from there, libraries which are highly regarded throughout the industry are also generally acceptable (like Boost for C++, or jQuery for Javascript) - but they are still &lt;em&gt;less&lt;/em&gt; desirable than the Standard Library because they &lt;em&gt;do&lt;/em&gt; tend to be less stable than standardized libraries.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for libraries which are relatively unknown, (e.g. the latest upload on SourceForge) these are extremely risky dependencies, and I would generally recommend avoiding these in production code, unless you are familiar enough with the source code to maintain them yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So it's really all a balancing act.  But the point is that just blindly saying &quot;Code reuse good! Reinventing wheel bad!&quot; is a dangerous attitude.  The benefits of leveraging third-party code &lt;em&gt;must&lt;/em&gt; be weighed against the disadvantages of introducing dependencies.&lt;/p&gt;&#xA;" OwnerUserId="7733" LastEditorUserId="7733" LastEditorDisplayName="" LastEditDate="2010-12-24T13:08:49.100" LastActivityDate="2010-12-24T13:08:49.100" CommentCount="1" />
  <row Id="29627" PostTypeId="1" AcceptedAnswerId="29631" CreationDate="2010-12-23T20:17:17.923" Score="2" ViewCount="193" Body="&lt;p&gt;I'm gettings started with GitHub and I have no clue what I'm doing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is an SSH key? What should I be setting as my key? Do I make it up? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm on OSX&lt;/p&gt;&#xA;" OwnerUserId="67" LastEditorUserId="67" LastEditorDisplayName="" LastEditDate="2010-12-23T20:35:06.853" LastActivityDate="2010-12-23T20:59:38.017" Title="What should my GitHub SSH key be?" Tags="&lt;version-control&gt;&lt;github&gt;&lt;ssh&gt;&lt;svn&gt;" AnswerCount="3" CommentCount="5" />
  <row Id="29628" PostTypeId="2" ParentId="29513" CreationDate="2010-12-23T20:19:26.663" Score="4" ViewCount="" Body="&lt;p&gt;Of course reinventing the wheel on a whim, out of ignorance and arrogance can be a bad thing, but IMHO the pendulum has swung too far.  There's a tremendous advantage to having a wheel that does &lt;em&gt;exactly&lt;/em&gt; what you want &lt;em&gt;and nothing more&lt;/em&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often when I look at an existing wheel, it either does way more than I need it to, suffers from the &lt;a href=&quot;http://en.wikipedia.org/wiki/Inner_platform_effect&quot; rel=&quot;nofollow&quot;&gt;inner platform effect,&lt;/a&gt; and is thus unnecessarily complex, or it is missing some key feature that I do need and that would be difficult to implement on top of what's already there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, using existing wheels often adds constraints to my project that I don't want.  For example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The existing wheel requires a different language and/or programming style than I would otherwise prefer to use.  &lt;/li&gt;&#xA;&lt;li&gt;The existing wheel only works with the legacy version of a language (for example, Python 2 instead of Python 3).  &lt;/li&gt;&#xA;&lt;li&gt;Where there are tradeoffs between efficiency, flexibility and simplicity the existing wheel makes choices that are suboptimal for my use case.  (I've been known to reinvent even functionality from libraries that I originally wrote myself in these cases.  Usually it's because I wrote the library version of the function to be generic and reasonably efficient, when I currently need something that's very fast in my specific case.)&lt;/li&gt;&#xA;&lt;li&gt;The existing wheel has tons of legacy cruft that's totally useless in the case of new code but makes life difficult nonetheless (for example, a Java library I use that forces me to use its crappy container classes because it was written before generics, etc.).  &lt;/li&gt;&#xA;&lt;li&gt;The way the existing wheel models the problem is completely different than what's convenient for my use case.  (For example, maybe it's convenient for me to have a directed graph represented by node objects and references but the existing wheel uses an adjacency matrix or vice-versa.  Maybe it's convenient for me to lay my data out in column major order, but the existing wheel insists on row major or vice-versa.)  &lt;/li&gt;&#xA;&lt;li&gt;The library adds a massive, brittle dependency that would be a major hassle to get up and running everywhere I want to deploy my code, when all I need is a small subset of its features.  On the other hand, in this case I sometimes just extract the feature I want into a new, smaller library or just copy/paste if the library is open source and the codebase makes doing so sufficiently simple.  (I've even done this with relatively large libraries I've written myself, not just other people's.)&lt;/li&gt;&#xA;&lt;li&gt;The existing wheel attempts to be pedantically compliant with some standard that is both inconvenient and irrelevant for my use case.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1468" LastEditorUserId="1468" LastEditorDisplayName="" LastEditDate="2010-12-24T18:45:51.010" LastActivityDate="2010-12-24T18:45:51.010" />
  <row Id="29629" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T20:21:33.503" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It can't rain all the time..&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="74" LastActivityDate="2010-12-23T20:21:33.503" CommunityOwnedDate="2010-12-23T21:13:10.957" />
  <row Id="29630" PostTypeId="2" ParentId="29614" CreationDate="2010-12-23T20:22:44.020" Score="12" ViewCount="" Body="&lt;p&gt;If you don't understand a problem, there is an easier problem that you don't understand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find that problem, and solve it.  Then try your original problem again, and see if you are ready for it.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-12-23T20:22:44.020" CommentCount="4" />
  <row Id="29631" PostTypeId="2" ParentId="29627" CreationDate="2010-12-23T20:28:05.857" Score="5" ViewCount="" Body="&lt;p&gt;If you have Linux (or msysGit or Cygwin):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Go to directory &lt;code&gt;~./ssh&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Check if you already have this file: &lt;code&gt;id_dsa.pub&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;2a. If not, create using this command: &lt;code&gt;ssh-keygen -C &quot;name@email.com&quot; -t rsa&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Get the content of this file (&lt;code&gt;cat id_dsa.pub&lt;/code&gt;) and just copy and paste to GitHub.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;That is it.&lt;/p&gt;&#xA;" OwnerUserId="11523" LastActivityDate="2010-12-23T20:28:05.857" CommentCount="3" />
  <row Id="29632" PostTypeId="2" ParentId="29534" CreationDate="2010-12-23T20:32:47.950" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;should a programmer need good debugging skills?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes. That said, I would ask you to consider the methodology in the interview (i.e. quiz / test-style) less than perfect (okay, flawed) in that many people find code on paper a strange, unfamiliar experience. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since &lt;strong&gt;debugging&lt;/strong&gt; is a &lt;strong&gt;process&lt;/strong&gt;, not the answer or result (e.g. &lt;em&gt;the mistake&lt;/em&gt;), I would suggest using an interactive dialogue or discussion as a better means for assessing a candidates debugging abilities. While most people use an informal ad hoc system of debugging, good candidates will have a similar pattern in general, of asking questions to gain understanding the system or assumptions, and requirements, then isolate the problem (often divide and conquer), and methodically compare the code to the requirements, and evaluate expected input/output, rather than a &lt;em&gt;willy-nilly&lt;/em&gt; changing a bunch of things at once haphazardly until it works. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also express reservations about puzzle problems during interviews, particularly in written form, as if the candidate doesn't have the right assumptions of framework of reference (the &lt;em&gt;trick&lt;/em&gt;), the puzzle maybe unsolvable to them. I.e. Many interview puzzles suffer from having a single correct path, whereas life is complicated and the most creative thinkings are the ones who take surprisingly novel approaches to solve a problem that may not worked with a given particular pre-cooked puzzle, with an expected solution. It's like expecting all trumpet players to play jazz. This can be managed by asking the question as a non-confrontational (pressure can confound creativity) interactive discussion. Again, to me, the answer is secondary to see a good thought process being expressed. You will likely need to ask them to think out loud, but this tends to be more productive in my experience. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't read or evaluated Zeller's &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0123745152&quot; rel=&quot;nofollow&quot;&gt;Why Programs Fail&lt;/a&gt;, but I can recommend &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0814474578&quot; rel=&quot;nofollow&quot;&gt;Debugging&lt;/a&gt; by Agans as a short, quick read that can help solidify the ad-hoc debugging process into a more structured, concrete, and organized effort, which can help to be more efficient at debugging. Also print out a copy, and hang it at your cubicle or workaround, the &lt;a href=&quot;http://www.debuggingrules.com/Poster_download.html&quot; rel=&quot;nofollow&quot;&gt;Debugging Rules poster&lt;/a&gt;, it's a perfect reminder for those bad days where nothing seems to go right. I have few bad days, and spend less time actively debugging (read: &lt;em&gt;scratching my head in confusion&lt;/em&gt;) by trying to follow them in spirit if not in letter.&lt;/p&gt;&#xA;" OwnerUserId="11206" LastActivityDate="2010-12-23T20:32:47.950" CommentCount="1" />
  <row Id="29633" PostTypeId="2" ParentId="28642" CreationDate="2010-12-23T20:34:20.470" Score="4" ViewCount="" Body="&lt;p&gt;My software is perfectly secure. &lt;/p&gt;&#xA;" OwnerUserId="11525" LastActivityDate="2010-12-23T20:34:20.470" CommunityOwnedDate="2011-01-07T06:47:37.693" />
  <row Id="29634" PostTypeId="2" ParentId="29596" CreationDate="2010-12-23T20:42:42.633" Score="0" ViewCount="" Body="&lt;p&gt;I learned touch typing in high school on a manual typewriter. Today all of my keyboards are the same (5) because I have a terrible time with different configurations. I have used Dvorak on a few occasions and found that it was great for screwing me up. Yes once the groundwork is done, Dvorak is faster, but I would need to change all of my systems to conform and, since I also do installations, I would need to change all of the systems that I access and that would mess with everyone else.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-12-23T20:42:42.633" />
  <row Id="29635" PostTypeId="1" AcceptedAnswerId="29637" CreationDate="2010-12-23T20:52:39.440" Score="12" ViewCount="347" Body="&lt;p&gt;I've been working for a contractor who brings in some good projects, but they are all fixed-price and often fixed-time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a result he always has me making a quote over loose requirements, which never fails to bring a lot of tension due to feature creep.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He claims he'd never get a contract if he couldn't agree on a price with his clients first, but as far as I'm concerned I don't wanna go through another project under these terms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any argument I could make to have him pay me by the hour, or should I just suck less at estimating ?&lt;/p&gt;&#xA;" OwnerUserId="2115" LastActivityDate="2011-01-18T21:38:45.500" Title="Are there any arguments that can make a contractor reconsider working on fixed price ?" Tags="&lt;project-management&gt;&lt;agile&gt;&lt;contracting&gt;&lt;freelancing&gt;" AnswerCount="9" FavoriteCount="2" />
  <row Id="29636" PostTypeId="2" ParentId="29627" CreationDate="2010-12-23T20:53:52.107" Score="0" ViewCount="" Body="&lt;p&gt;The Linux tips with ssh-keygen will most definitely work in OSX on the command line.  With that, Adriano's method should work fine. Remember to paste the pub key and not the other.&lt;/p&gt;&#xA;" OwnerUserId="6630" LastActivityDate="2010-12-23T20:53:52.107" />
  <row Id="29637" PostTypeId="2" ParentId="29635" CreationDate="2010-12-23T20:54:59.970" Score="8" ViewCount="" Body="&lt;p&gt;The problem here is not the fixed price of project - it's the loose requirements. If you can pressure him to give you a more firmly defined spec, your time estimation will get better.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-23T20:54:59.970" CommentCount="13" />
  <row Id="29638" PostTypeId="2" ParentId="28028" CreationDate="2010-12-23T20:55:02.930" Score="1" ViewCount="" Body="&lt;p&gt;My vote would be for far too uncommon early work by &lt;a href=&quot;http://en.wikipedia.org/wiki/Robert_L._Glass&quot; rel=&quot;nofollow&quot;&gt;Robert L. Glass&lt;/a&gt;'s &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0686236092&quot; rel=&quot;nofollow&quot;&gt;Universal Elixir and Other Computing Projects Which Failed&lt;/a&gt;, Glass has written several books and tons of articles on the subject, but that book (and a few similar booklet sized collections of stories) is entertaining, while still being educational and short enough to provoke interest and hopefully understanding for a member of the general public, or perhaps the curious student who doesn't know what software development experience looks like (it's messy, does involves people if you hope to make it a career or livelihood, but at least your clothes don't smell funny from working with bad code). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I first read it as a kid in the 1980s, but the lessons are about mistakes we still make today as an industry and as a profession. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also suggest the Mythical Man-Month by Fred Brooks as a classic book that more people should read, and required reading for any new programmers or anyone working with programmers.&lt;/p&gt;&#xA;" OwnerUserId="11206" LastActivityDate="2010-12-23T20:55:02.930" />
  <row Id="29639" PostTypeId="2" ParentId="29635" CreationDate="2010-12-23T20:57:51.717" Score="3" ViewCount="" Body="&lt;p&gt;This is one of the major reasons for the emergence of the agile movement. Using the Scrum + XP combination is one way to present a fair alternative to this relatively common - fixed time or fixed price with variable requirements situation.&lt;/p&gt;&#xA;" OwnerUserId="6630" LastActivityDate="2010-12-23T20:57:51.717" />
  <row Id="29640" PostTypeId="2" ParentId="29627" CreationDate="2010-12-23T20:59:38.017" Score="4" ViewCount="" Body="&lt;p&gt;To answer your first question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For this purpose, think of SSH as a method of secure communication, using cryptography.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For most cryptographic algorithms, it would be necessary for you and GitHub to agree on a key separately, which is in general impractical.  Therefore, SSH uses a class of cryptographic algorithms called &quot;public key&quot; or &quot;asymmetric&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea is that you have two keys, such that what is encrypted by one is decrypted by the other, and it isn't computationally feasible to calculate one from the other.  There really weren't that many algorithms that worked, last I looked, but they existed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, you have to generate the keys, randomly, and you call one your public key and one your private.  You send your public key to GitHub, or anybody else that wants it.  (Much of this is all handled automatically, given the right software.)  Then GitHub can send you information secretly by encrypting it with your public key, and only you can decrypt it.  GitHub will, similarly, send you a public key so you can send secret messages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In practice, these ciphers are inefficient, so what you send back and forth is keys for efficient cryptographic algorithms.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-23T20:59:38.017" CommentCount="1" />
  <row Id="29641" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T21:01:13.303" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Don't F**k Up&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used that once when a team said they could have the new version ready in 10 days for a trade show. They immediately asked if they could get t-shirts that said that &amp;amp; went on to do a superb job delivering a system with zero bugs (that we hit) at the show.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ps - After they pulled it off I got them t-shirts that say &quot;didn't f**k up&quot; - and they love them.&lt;/p&gt;&#xA;" OwnerUserId="9823" LastActivityDate="2010-12-23T21:01:13.303" CommunityOwnedDate="2010-12-23T21:13:10.957" />
  <row Id="29642" PostTypeId="2" ParentId="29635" CreationDate="2010-12-23T21:09:28.403" Score="1" ViewCount="" Body="&lt;p&gt;If you can show that what you did falls under the &quot;loose requirements&quot; under any (preferably your) interpretation then any clarification becomes a change request, subject to new estimates and new effort and new payments. Then it falls over your client's shoulder the responsibility to come up with crispier requirements.&lt;/p&gt;&#xA;" OwnerUserId="7380" LastActivityDate="2010-12-23T21:09:28.403" />
  <row Id="29643" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T21:09:41.890" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;If you're going through hell, keep going!&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I have not failed. I've just found&#xA;  10,000 ways that won't work - Edison&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Opportunity is missed by most people&#xA;  because it is dressed in overalls and&#xA;  looks like work. - Edison&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Some people dream of success... while&#xA;  others wake up and work hard at it.`&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="11528" LastActivityDate="2010-12-23T21:09:41.890" CommunityOwnedDate="2010-12-23T21:13:10.957" CommentCount="4" />
  <row Id="29644" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T21:13:10.957" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Don't Panic&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;- Douglas Adams, Hitch Hiker's Guide to the Galaxy&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="6440" LastActivityDate="2010-12-23T21:13:10.957" CommunityOwnedDate="2010-12-23T21:13:10.957" />
  <row Id="29645" PostTypeId="2" ParentId="29635" CreationDate="2010-12-23T21:14:05.747" Score="2" ViewCount="" Body="&lt;p&gt;Could you just ask if you could be paid by the hour?  All my consulting contracts were hourly wage, no matter what the terms with the client were.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alternately, firm up the requirements yourself and present that to the client as part of the agreement.  That way, you get to bill additional for feature creep.  Any contract that says you'll get paid $X for an amount of work the client gets to increase more or less arbitrarily is a disaster waiting to happen.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-23T21:14:05.747" CommentCount="3" />
  <row Id="29647" PostTypeId="2" ParentId="29614" CreationDate="2010-12-23T21:23:09.663" Score="0" ViewCount="" Body="&lt;p&gt;There are lot of 3-letter techniques, which are big nothings. Some time ago, I was depressed, if I didn't understand a new one at first sight, but now I know, I was just confused, because the new stuff is just &lt;em&gt;too simple and trivial&lt;/em&gt;, but I was anticipated something new and vibrant. Okay, it's only 99% of cases, for the rest 1% I'm trying to find a good article of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example: when I was jumped into JS programming, it was complete dark for me, what does a JavaScript framework do. I have had a pre-conception, and it was good, but I needed a confirmation, and I wanted to understand it more deep. I've visited lot of framework's homepage, but the darkness didn't go away. After a week(!) of googling, I felt myself very dumb. I'm an ulrasenior, and I couldn't even &lt;strong&gt;found&lt;/strong&gt; a f. document in a trendy programming topic! Then, I've found DomAssistant, which has excellent documentation. I've felt statisfaction just reading the first sentence.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The idea of DOMAssistant is to provide&#xA;  a simpler and more consistent way to&#xA;  script against the Document Object&#xA;  Model (DOM) in web browsers. The idea&#xA;  is that everything starts with the&#xA;  element(s) in question, selected&#xA;  through id or CSS selectors, and then&#xA;  perform various methods on it, such as&#xA;  adding or removing classes, events&#xA;  etc.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Example code:&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;$(&quot;#container input[type=text]&quot;);&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;$(&quot;#navigation a&quot;).addEvent(&quot;click&quot;,&#xA;  myFunc);&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;$(&quot;#news-list&quot;).load(&quot;updated-news.php&quot;);&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Clear scope, definition 2. Precise examples! 3. On the opening page!!! And the light came to my mind.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So, if you can't understand, maybe only the documentation is poor.&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-12-23T21:23:09.663" />
  <row Id="29648" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T21:26:51.407" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Press The Easy Button&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.google.com/search?btnG=1&amp;amp;pws=0&amp;amp;q=That+was+easy!&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://i.imgur.com/KyuQ7.jpg&quot; alt=&quot;That was easy!&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6440" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-01-03T14:11:55.937" LastActivityDate="2011-01-03T14:11:55.937" CommunityOwnedDate="2010-12-23T21:26:51.407" />
  <row Id="29649" PostTypeId="2" ParentId="29635" CreationDate="2010-12-23T21:27:54.823" Score="0" ViewCount="" Body="&lt;p&gt;Assuming you're the full time employee of this contractor. Show him how much money he's losing by not accounting for scope-creep.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the contractor is sub-contracting you, tell him you can only work by the hour, and be honest with why. (That is, the requirements are not well defined, you might not be paid for all of the work you might end up doing.  Also you might save the contractor money if it goes faster than expected.)&lt;/p&gt;&#xA;" OwnerUserId="9987" LastActivityDate="2010-12-23T21:27:54.823" />
  <row Id="29650" PostTypeId="2" ParentId="29635" CreationDate="2010-12-23T21:30:31.887" Score="4" ViewCount="" Body="&lt;p&gt;When working alone you really can't win in a fixed-price + fixed-time project. You have no ability to increase capacity apart from working late nights and weekends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience &quot;loose requirements&quot; based estimates only become larger and larger when you add detail, never smaller. Keep asking for details until you feel safe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Discussions about high level requirements and what's included and what's not are easily won when push comes to shove, client is usually drawing the short end of the stick here. Your business relationship may suffer though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sad thing about this construct is that everything you build tends to be the lowest possible quality needed to satisfy the high level requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(yeah so you can logon with a password, you never said you wanted a separate logon for each user...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With fixed-price I would just waterfall, big-design-upfront, the thing. Have the contractor sign based on a full detail stack of papers, then build.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To improve your estimates you could just double or triple whatever you think you need, this might be more realistic but may price you out of the market.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scrum's velocity tracking may prove to be useful to get a grip on your own estimates and how they pan out compared to actual time needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you want to speculate on the fixed-price looking for a healthy profit I would really prefer to just get payed by the hour. This keeps risk at the contractors side. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Estimates are a guess not a promise.&lt;/p&gt;&#xA;" OwnerUserId="3309" LastActivityDate="2010-12-23T21:30:31.887" />
  <row Id="29651" PostTypeId="2" ParentId="29534" CreationDate="2010-12-23T21:32:32.667" Score="0" ViewCount="" Body="&lt;p&gt;I have such coding style, which requires miminal debugging. When I'm finished with 3 lines of code, I run it, and test it, often printing out a couple of variables. In the cases, when I got unwanted result or behavior, I put many dumps in my code - instead of debugging. I use real debugger very rare. Strange, but true.&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-12-23T21:32:32.667" />
  <row Id="29652" PostTypeId="2" ParentId="29534" CreationDate="2010-12-23T21:33:25.893" Score="1" ViewCount="" Body="&lt;p&gt;I would say the debugging is essential, unless the programmer is so good that he never makes any mistakes. I'm not convinced that that is impossible, but I can't imagine it with current popular languages and tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I dislike the concept of being put on the spot like that in an interview. If the candidate is nervous (and who isn't), he/she could draw a blank wheras as a programmer he may be able to routinely handle such problems. Then, if it was a well known interview or comp-sci test problem the candidate might know the result by rote, but not have the ability to think his way through a novel problem. Also if the candidate isn't familiar with the language, he is going to have to struggle. Many bugs are difficult because a good programmer knows what he meant to type, and his brain takes shortcuts while reading code. I can't find C style&#xA;use of = where == should have been used by inspection, because I know what the intent was, and my brain will take a parsing shortcut reading it.&lt;/p&gt;&#xA;" OwnerUserId="8890" LastActivityDate="2010-12-23T21:33:25.893" />
  <row Id="29653" PostTypeId="2" ParentId="29596" CreationDate="2010-12-23T21:41:34.203" Score="1" ViewCount="" Body="&lt;h1&gt;Td;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Long answer:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you start, expect your typing speed to be halved for a few weeks.  Fortunately, the majority of time spent programming (or writing in general) is thinking and research, not typing, so this shouldn't be too big a problem.  In fact, when I was learning Dvorak, one thing I noticed is that it curbed my tendency to babble in online discussions :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Yes&lt;/strong&gt;, you will get the layouts mixed up.  However, the damage isn't permanent.  If you type solely in Dvorak for a month, then go back to QWERTY, there will be a period of recovery (perhaps a few days at most), but it won't take long to gain all your speed back.&lt;/p&gt;&#xA;" OwnerUserId="3650" LastActivityDate="2010-12-23T21:41:34.203" />
  <row Id="29654" PostTypeId="2" ParentId="29614" CreationDate="2010-12-23T21:50:19.333" Score="-2" ViewCount="" Body="&lt;p&gt;Even if you've never met someone smarter than you - and chances are you have - it's highly improbable that you're the smartest. And even if you're smartest, there's probably someone who has more luck than you and will stumble on correct combination of keywords which you have to type in Google to get to the right answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, learn to live with your limited mental resources and remember that endurance and perseverance are generally more important than smarts and usually make all the difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, sometimes all the perseverance in the world won't help you. There are some problems which simply require greater intelligence than you posses. There are also problems which nobody in all of the human history was able to solve because they require greater intelligence than anyone living or dead has ever had. And a lot of problems are probably unsolvable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember that it's not about you and your ego, it's about solving a problem at hand. If you lack discipline to think about problem instead of you, get over yourself and train your mind to keep your emotions in check.&lt;/p&gt;&#xA;" OwnerUserId="7203" LastActivityDate="2010-12-23T21:50:19.333" CommentCount="2" />
  <row Id="29655" PostTypeId="2" ParentId="29422" CreationDate="2010-12-23T21:50:38.727" Score="1" ViewCount="" Body="&lt;p&gt;I think there are different nearly orthogonal reasons for writing assembler, and there may not be much commonality other than being passable conversant in the assembler language. Examples would include:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(1) Creating world beating performance for imporatnt math kernels. Knows math, the computer architecture, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(2) Wrote lots of assembler in order to debug new hardware. May know little about the performance characteristics of the given machine, but knows a heck of a lot about hardware verification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(3) Can read compiler generated assembler as a tool for debugging.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(4) Can use assembler to get at HW features unsupported by higher level languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(5) Writes compiler backends, and looks at generated assembler in order to tweak code generation/optimization algorithms as part of the compiler team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, I think the correlation in skills among these distinct tasks is probably not very high. Hire someone with experience and demonstrated skill at task M for a job that requires task N, and you may be seriously dissapointed in the results.&lt;/p&gt;&#xA;" OwnerUserId="8890" LastActivityDate="2010-12-23T21:50:38.727" />
  <row Id="29656" PostTypeId="2" ParentId="2240" CreationDate="2010-12-23T21:52:58.063" Score="0" ViewCount="" Body="&lt;p&gt;I think that the &lt;a href=&quot;http://www.industriallogic.com/xp/refactoring/&quot; rel=&quot;nofollow&quot;&gt;Refactoring to Patterns&lt;/a&gt; can be useful simply because it describes how certain desing / code can be refactored towards patterns in the GoF book. This may help to overcome the initial learning curve. Oh and it also contemplates on 'Pattern-happiness' :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may also find the first three volumes of Pattern-Oriented Software Architecture to be a good read.&lt;/p&gt;&#xA;" OwnerUserId="11344" LastActivityDate="2010-12-23T21:52:58.063" />
  <row Id="29657" PostTypeId="1" CreationDate="2010-12-23T21:55:33.287" Score="6" ViewCount="261" Body="&lt;p&gt;I came across something like this in an open-source project. Methods that modify instance attributes return a reference to the instance. Would you trust code that is written like this? &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Foo(object):&#xA;&#xA;  def __init__(self):&#xA;    self.myattr = 0&#xA;&#xA;  def bar(self):&#xA;    self.myattr += 1&#xA;    return self&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="8460" LastActivityDate="2010-12-23T23:09:44.313" Title="Purpose of `return self` from a class method?" Tags="&lt;python&gt;" AnswerCount="2" CommentCount="4" />
  <row Id="29658" PostTypeId="2" ParentId="29550" CreationDate="2010-12-23T21:56:24.163" Score="0" ViewCount="" Body="&lt;p&gt;As a manager or senior I would strive to keep throwing up challenges in the 'real' work. Try give people things to work on that are a little bit out of their league or at least challenges them. Send in one of their peers to help out and tutor if needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After someone finished something, challenge them to try a new/different approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coach them at figuring things out on the spot instead of working around stuff they don't know how to do yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Integrate learning into the work itself, side projects for learning tend to get skipped with deadlines on the horizon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes directly stating a need for a given expertize can help as a motivator.&lt;/p&gt;&#xA;" OwnerUserId="3309" LastActivityDate="2010-12-23T21:56:24.163" />
  <row Id="29659" PostTypeId="2" ParentId="28642" CreationDate="2010-12-23T22:01:17.887" Score="3" ViewCount="" Body="&lt;p&gt;One of my favorites:&lt;br&gt;&#xA;* usually after application crashes for unknown reason&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Nope, it's not cause of my code. Definitely.&lt;/code&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;...&lt;/p&gt;&#xA;" OwnerUserId="11530" LastActivityDate="2010-12-23T22:01:17.887" CommunityOwnedDate="2011-01-07T06:47:37.693" CommentCount="1" />
  <row Id="29660" PostTypeId="2" ParentId="29469" CreationDate="2010-12-23T22:02:48.330" Score="0" ViewCount="" Body="&lt;p&gt;Consider trying Confident CAPTCHA -- a free, picture-based captcha. You can see a demo of it here: &lt;a href=&quot;http://demo.confidenttechnologies.com/captcha/&quot; rel=&quot;nofollow&quot;&gt;http://demo.confidenttechnologies.com/captcha/&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All the user has to do is follow the instructions to click on specific pictures. They don't have to decipher hard-to-read words or solve math problems. Plus, it's very secure against bots because computer vision is not advanced enough for bots to understand the instructions and intelligently identify the subject matter of the photos. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let us know what you think of it. We're interested in hearing your feedback.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="11531" LastActivityDate="2010-12-23T22:02:48.330" CommentCount="1" />
  <row Id="29661" PostTypeId="2" ParentId="29657" CreationDate="2010-12-23T22:07:20.420" Score="22" ViewCount="" Body="&lt;p&gt;It's to allow chaining.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var Car = function () {&#xA;    return {&#xA;        gas : 0,&#xA;        miles : 0,&#xA;        drive : function (d) {&#xA;            this.miles += d;&#xA;            this.gas -= d;&#xA;            return this;&#xA;        },&#xA;        fill : function (g) {&#xA;            this.gas += g;&#xA;            return this;&#xA;        },&#xA;    };&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now you can say:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var c = Car();&#xA;c.fill(100).drive(50);&#xA;c.miles =&amp;gt; 50;&#xA;c.gas =&amp;gt; 50;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-23T22:07:20.420" />
  <row Id="29662" PostTypeId="2" ParentId="29596" CreationDate="2010-12-23T22:10:11.853" Score="0" ViewCount="" Body="&lt;p&gt;While I was learning Svorak (Swedish version of Dvorak), there was a period when I could switch between the two quite easily. However, as I became more proficient in Svorak, I used Qwerty less and less and eventually I could not make the switch anymore.  However it did take me considerably less time to relearn Qwerty than it took me to learn Svorak.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you want to maintain the two and be able to switch between them, I would recommend that you type a bit of Qwerty every now and then while learning Dvorak. This will keep the Qwerty layout in your fingertips and prevent it from being completely replaced by Dvorak. If you only type Dvorak, like I did when learning it, I believe you will forget it, too.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2010-12-23T22:10:11.853" />
  <row Id="29663" PostTypeId="2" ParentId="28642" CreationDate="2010-12-23T22:11:22.993" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Splitting and branching a product will make maintenance more efficient.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen this one burn companies very badly several times in my career. It's very tempting to think that different things will break in the slightly different, specialised versions of products, so that teams working in their own specialized &quot;bubbles&quot; can efficiently maintain their own stuff. But more often than not, this just leads to a mess where the same things have to be fixed in every separate branch, and inter-team communication and integration becomes a nightmare.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also: this development model often leads to the &quot;Mythical Man Month&quot; thing happening.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-12-23T22:11:22.993" CommunityOwnedDate="2011-01-07T06:47:37.693" CommentCount="1" />
  <row Id="29664" PostTypeId="2" ParentId="29469" CreationDate="2010-12-23T22:14:03.877" Score="0" ViewCount="" Body="&lt;p&gt;I've had very good results simply asking a question on the registration form that visitors in your domain can all answer, but someone outside the domain &lt;em&gt;cant&lt;/em&gt;.  For example, &lt;code&gt;'whats the name of the head coach of last year's league champions?'&lt;/code&gt;, or &lt;code&gt;'whats the last name of the author of [some popular book]?'&lt;/code&gt;, or &lt;code&gt;'whats the nickname for the company's cafeteria?'&lt;/code&gt;.  Bots cant break those, and non-English (or whatever language you are using) speakers generally cant translate them well enough or arent familiar enough with the context to be able to answer them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This of course assumes there is some binding element (employer, hobby, interests) that all your visitors share.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally speaking, if these are home grown apps you wont likely get a lot of attention from spammers unless your site is really big as they'll go after the more common packages since there's more of them (and thus a better payoff to writing a script to automate logins).&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-23T22:14:03.877" />
  <row Id="29665" PostTypeId="1" AcceptedAnswerId="29669" CreationDate="2010-12-23T22:16:14.313" Score="2" ViewCount="76" Body="&lt;p&gt;My team and I have designed a simple, affordable conceptual modelling language as part or a larger research project. This language is aimed to end users with little or no training in information technologies. It allows them to create class models using basic constructs such as classes, attributes, associations, and the like.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The language is working nicely, but we are considering whether we should add multivalued attributes to it. In the OO paradigm, attributes are usually considered to be single-valued, i.e. they can take a value on each instance of a class, or they can be null, but they can never take multiple simultaneous values. However, some situations in certain application domains call for multivalued attributes. For example, imagine a Garment class with a Colour attribute. That attribute may as well be multivalued, since garments can be multi-coloured: the shirt I'm wearing as type this is white and purple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, very few approaches to OO conceptual modelling use multivalued attributes, and none of them are mainstream as far as I know. I seem to recall reading that multivalued attributes are not a good way to model things, but I can't recall a sound reason, and I can't think of one, and I refuse to accept this at face value. In addition, most of the work I know of about multivalued attributes is at the database level rather than at the conceptual modelling level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, my question is: Do you think that multivalued attributes make sense in a conceptual modelling language? Can you point me to any books, papers or other sources that discuss this? Thank you.&lt;/p&gt;&#xA;" OwnerUserId="5021" LastActivityDate="2010-12-23T23:41:04.897" Title="Should I use multivalued attributes in conceptual modelling?" Tags="&lt;object-oriented&gt;&lt;attributes&gt;&lt;modeling&gt;" AnswerCount="1" />
  <row Id="29666" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T22:16:40.347" Score="0" ViewCount="" Body="&lt;p&gt;When you don't create things, you become defined by your tastes rather than ability.  Your tastes only narrow and exclude people.  so create.&#xA;- Why the Lucky Stiff&lt;/p&gt;&#xA;" OwnerUserId="7274" LastActivityDate="2010-12-23T22:16:40.347" CommunityOwnedDate="2010-12-23T22:16:40.347" />
  <row Id="29667" PostTypeId="2" ParentId="29430" CreationDate="2010-12-23T22:17:53.640" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Perfection is achieved not when you&#xA;  have nothing more to add, but when you&#xA;  have nothing left to take away.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Antoine de Saint Exupéry&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The motto of the &lt;a href=&quot;http://perlgolf.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Perl Golf competition&lt;/a&gt; but more generally a nice reminder of the value of simplicity.&lt;/p&gt;&#xA;" OwnerUserId="5245" LastActivityDate="2010-12-23T22:17:53.640" CommunityOwnedDate="2010-12-23T22:17:53.640" />
  <row Id="29668" PostTypeId="2" ParentId="29513" CreationDate="2010-12-23T22:18:36.530" Score="2" ViewCount="" Body="&lt;p&gt;I currently work for a bunch of cheapskates.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the decision is made between &quot;build or buy&quot;, instead of making a rational decision based on economics, the managers chose to &quot;build.&quot; This means that instead of paying a few thousand dollars for a component or tool, we spend man-months building our own. Purchasing a wheel from another company costs money which comes out of the budget - which counts against mismanagerial year-end bonuses. Programmers' time is free and therefore does not count against year-end bonuses (with the additional benefit of dinging the programmers for not getting everything done &quot;on time&quot;), therefore &lt;em&gt;a reinvented wheel is a free wheel&lt;/em&gt;.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a rational company, the cost vs benefits of purchasing wheels made by others vs reinventing one's own wheels would be based on short-term and long term costs, as well as opportunity costs lost because one can't be making new widgets while one is reinventing wheels. Every day you spend reinventing the wheel is another day you cannot write something new.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://docs.google.com/viewer?a=v&amp;amp;q=cache%3akaTrJVKKR7gJ%3awww.cis.gsu.edu/~emclean/Build%2520vs%2520Buy.ppt+build+vs+buy&amp;amp;hl=en&amp;amp;gl=us&amp;amp;pid=bl&amp;amp;srcid=ADGEESh2dAzQjGXjZqWa0IQqKZ0FDBVCCH0kINboZ0Qo_3HetQBt5MN-nFTa6X-ilea2HIOe0xy1QUAOtDAv54NRf8OIO47N8an-qWBd-1YgZyLiR-G-iCt5Sl_KtELMRwBYdwJQOiJL&amp;amp;sig=AHIEtbSDzrgKodWn3nRX6DQcpQx7Sd1kXA&quot; rel=&quot;nofollow&quot;&gt;Presentation on build vs buy&lt;/a&gt;.&lt;br&gt;&#xA;&lt;a href=&quot;http://www.infoworld.com/print/20676&quot; rel=&quot;nofollow&quot;&gt;Article on build vs buy&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;If I see someone is clearly reinventing the wheel by building their own method of something that is already built into the language/framework. First, for arguments sake, lets assume that their method is just as efficient as the built in method. Also the developer, aware of the built in method, prefers his own method.&lt;/em&gt;  &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;em&gt;Why should he use the built in one over his own?&lt;/em&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The built-in version will have had a lot more people banging away on it - thus finding and fixing more bugs than your homebrew code can ever have. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, when your local developer leaves, and &lt;em&gt;someone else&lt;/em&gt; has to maintain the code he wrote, it is going to get totally refactored out and replaced with what is in the framework. I know this will happen because my current employer has code that has been migrated to newer versions of VB over the years (the oldest product has been on the market for about 20 years) and this is what has happened. The developer with the longest employment in my office has been here 17 years. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-12-23T22:18:36.530" CommentCount="2" />
  <row Id="29669" PostTypeId="2" ParentId="29665" CreationDate="2010-12-23T22:28:34.803" Score="1" ViewCount="" Body="&lt;p&gt;Sure, I use MV attributes every day. I work with a Multi-valued database called &lt;a href=&quot;http://rs.com/u2&quot; rel=&quot;nofollow&quot;&gt;Unidata&lt;/a&gt;. These types of databases violate First Normal Form.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;MV is easier to understand for the average hunter and you can still normalize it out to join tables under the hood if needed.&lt;/p&gt;&#xA;" OwnerUserId="2673" LastEditorUserId="2673" LastEditorDisplayName="" LastEditDate="2010-12-23T23:41:04.897" LastActivityDate="2010-12-23T23:41:04.897" CommentCount="3" />
  <row Id="29671" PostTypeId="1" AcceptedAnswerId="29675" CreationDate="2010-12-23T22:34:52.837" Score="8" ViewCount="370" Body="&lt;p&gt;I have been contracted to modify an application for a software company and the source code is quite frankly, a mess. It's not commented much and the author is inconsistent with coding conventions. The guy seems experienced , but his style isn't great.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you suggest doing to get the project done properly and to make thing easier?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I didn't mean to say &lt;em&gt;rewrite&lt;/em&gt;, I've been hired to modify the the UI in a certain part of an app. I don't think that the client cares so much abut what I do to the source code , so long as it works and so long as it's decent quality code. That said, I've expanded some &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;if(condition) ? TrueResult : FalseResult;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;for readability. While I don't think those particularly make bad code, there is an inconsistency in the style throughout the code and a few &quot;left over&quot; constants that don't seem to be used anywhere. There are also some arbitrary numbers where constants would Have been wise for readability's sake.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not as bad as I initially had thought, but I still have some questions for the original developer. &lt;/p&gt;&#xA;" OwnerUserId="67" LastEditorUserId="67" LastEditorDisplayName="" LastEditDate="2010-12-24T16:42:32.100" LastActivityDate="2010-12-24T16:42:32.100" Title="What to do with bad source code?" Tags="&lt;experience&gt;&lt;coding-standards&gt;&lt;contracting&gt;&lt;source&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="1" />
  <row Id="29672" PostTypeId="2" ParentId="29671" CreationDate="2010-12-23T22:51:51.443" Score="3" ViewCount="" Body="&lt;p&gt;If you've really been hired to &lt;em&gt;rewrite&lt;/em&gt; it, take what bits you can salvage and start from scratch.&lt;/p&gt;&#xA;" OwnerUserId="9521" LastActivityDate="2010-12-23T22:51:51.443" CommentCount="1" />
  <row Id="29673" PostTypeId="2" ParentId="29671" CreationDate="2010-12-23T22:52:29.680" Score="4" ViewCount="" Body="&lt;p&gt;Depends a lot on just how bad the source is, it also depends on the language, or at least the original developers idiom. (It's possible to make a mess in any language.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's possible to write tests for some (or all) of the existing functions, then get a suite of tests in place and try to refactor from that point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are dealing with giant/multiple responsibility functions, poor access control (ie. global variables) and other similar horrors, try to assess the payoff of either refactoring or taking a top-down approach to the application. Often you will find that there is a tipping point between refactoring existing code, and re-implementing the solution from the top-down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you do have to start from the top-down, you should make yourself as familiar as possible with the existing code base, as there may be salvageable code, but certainly be as clean as is practical in creating the new version.&lt;/p&gt;&#xA;" OwnerUserId="3787" LastActivityDate="2010-12-23T22:52:29.680" CommentCount="2" />
  <row Id="29674" PostTypeId="2" ParentId="29671" CreationDate="2010-12-23T22:53:02.580" Score="1" ViewCount="" Body="&lt;p&gt;Rewrite from scratch? There's a little bit too little information in your post about the constraints you are working under. Compare how much work it would be to continue with the current code, compared to rewriting from scratch. Rewriting is easily underestimated though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When thinking about a rewrite from scratch, also have a look at &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000069.html&quot; rel=&quot;nofollow&quot;&gt;Joel Spolsky's&lt;/a&gt; article, saying &quot;code does not rust&quot;. Reusing someone else's code is harder than writing it yourself, making it easy to complain about someone else's code and say it must be rewritten.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, there are many cases where the existing code is just a crime against humanity and should be replaced.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also suggest that, if possible, the original author joins or is at least involved in the rewrite effort. Providing that they are willing to learn. The original author knows why things were done in certain ways and what walls you may run into. Involving them may help the result become better and help them to learn to write better code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Picking specifically on a lack of comments: that is not always a bad sign. I believe code should be completely self-explanatory in an ideal world, therefore not need comments. So every time I write a comment in some code, I ask myself: is there any reasonable way to change this code, so that the comment is obsolete?&lt;/p&gt;&#xA;" OwnerUserId="2947" LastActivityDate="2010-12-23T22:53:02.580" CommentCount="1" />
  <row Id="29675" PostTypeId="2" ParentId="29671" CreationDate="2010-12-23T22:59:55.130" Score="13" ViewCount="" Body="&lt;p&gt;If you are a contractor, you write the new code as the customer wants and do not do anything with code the customer do not want you to touch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Discuss it carefully with the customer to be certain that you are fully agreed.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might well be cheaper for the customer to have some more code in the style you disagree with, instead of a major rewrite, and if you do a good job you might be contracted again for working towards what you envision.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-23T22:59:55.130" CommentCount="1" />
  <row Id="29676" PostTypeId="2" ParentId="29513" CreationDate="2010-12-23T23:07:27.700" Score="2" ViewCount="" Body="&lt;p&gt;The thing about re-inventing the wheel is that sometimes there's no standard, off-the-shelf wheel that will do what you need. There's a lot of good wheels out there, in a lot of sizes, colors, materials, and modes of construction. But some days you just have to have a really light-weight wheel that's green anodized aluminum, and no one makes one. In that case, you HAVE to make your own. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now that's not to say that you should make your own wheels for every project - most things can use standard parts and be better for it. But every now and then, you find that the standard parts just don't work, so you make your own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most important thing is knowing WHEN to make your own. You have to have a good idea of what the standard parts can do, and what they can't, before you start designing your own.&lt;/p&gt;&#xA;" OwnerUserId="6294" LastActivityDate="2010-12-23T23:07:27.700" />
  <row Id="29677" PostTypeId="2" ParentId="29550" CreationDate="2010-12-23T23:07:49.887" Score="1" ViewCount="" Body="&lt;p&gt;Give them 3 hours a week to research/hack on whatever they are interested in for programming. Ideally this would be more, but I think 3 hours is a good start. It could be all in one chunk, it could be broken down into little 30 minute segments along the way. It sounds like these programmers are motivated enough that they would be able to keep things in check.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But allowing them to explorer their own fields of interest will come back to help the team as well. One person that really likes data may look into and write a small app using a NoSQL solution that could help a project that comes up a few months down the line. Another person might right a small utility app for a trivial need (such as parsing log files) that becomes a staple app in your team. Even the knowledge gained from reading up on what the big companies are doing can help evaluate options for the next project that comes up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We're in an environment that is ever changing, and each member of your team I'm sure brings something unique to the table, so give them the opportunity to expand on their own terms. They'll be appreciative that they haven't been forced into something (even though all intentions are good) and you'll get a good diversity of feedback.&lt;/p&gt;&#xA;" OwnerUserId="8095" LastActivityDate="2010-12-23T23:07:49.887" />
  <row Id="29678" PostTypeId="2" ParentId="28642" CreationDate="2010-12-23T23:08:54.050" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;There is no such thing as bug free code.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure this will seem controversial, but there are plenty of scripts and small projects out there that have 0 bugs. But of course, that won't be the code you're writing right now, or that project that's about to go live ;)&lt;/p&gt;&#xA;" OwnerUserId="3787" LastActivityDate="2010-12-23T23:08:54.050" CommunityOwnedDate="2011-01-07T06:47:37.693" CommentCount="3" />
  <row Id="29679" PostTypeId="2" ParentId="29657" CreationDate="2010-12-23T23:09:44.313" Score="1" ViewCount="" Body="&lt;p&gt;In Smalltalk, every method that doesn't explicitly return something, has an implicit &quot;return self&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's because (a) having every method return something makes the computing model more uniform and (b) it's very useful having methods return self. Josh K gives a nice example.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-12-23T23:09:44.313" CommentCount="1" />
  <row Id="29680" PostTypeId="1" CreationDate="2010-12-23T23:31:16.883" Score="5" ViewCount="178" Body="&lt;p&gt;This is somewhat related to another &lt;a href=&quot;http://programmers.stackexchange.com/questions/29635/are-there-any-arguments-that-can-make-a-contractor-reconsider-working-on-fixed-pr&quot;&gt;question&lt;/a&gt; i just asked, but I'm freelancing &lt;strong&gt;solo and remotely&lt;/strong&gt; for a contractor who is to project management, what big ball of mud is to code, so to speak.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been thinking a lot about working on a proposition to deal with his projects in a truly agile way. As I see it, this would involve several client-friendly and web-based apps :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;basecamp for communication&lt;/li&gt;&#xA;&lt;li&gt;github as a repository&lt;/li&gt;&#xA;&lt;li&gt;pivotal tracker for user-stories and as a display of work in progress&lt;/li&gt;&#xA;&lt;li&gt;some tool to gather acceptance tests (will upvote suggestions !)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've done a fair bit of reading on agile, and all good resources put much emphasis on the importance of communication in the team, to the point they are &lt;em&gt;discouraging agile for non-colocated teams&lt;/em&gt;.&#xA;Being the only programmer this seemed less of an issue, but as I'll rarely meet the client (if at all), &lt;strong&gt;I'm worried the communication may not be effective enough to enable this kind of management&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit : Other people on the team would include :&lt;br&gt;&#xA;- customers (business people)&lt;br&gt;&#xA;- product manager (my client's client)&lt;br&gt;&#xA;- project manager (my client)&lt;br&gt;&#xA;- ui designer&lt;/p&gt;&#xA;" OwnerUserId="2115" LastEditorUserId="2115" LastEditorDisplayName="" LastEditDate="2010-12-24T14:29:43.033" LastActivityDate="2011-01-27T13:50:31.260" Title="Is remote agile sustainable ?" Tags="&lt;project-management&gt;&lt;agile&gt;&lt;web-applications&gt;&lt;freelance&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="1" />
  <row Id="29681" PostTypeId="2" ParentId="29680" CreationDate="2010-12-23T23:44:15.017" Score="2" ViewCount="" Body="&lt;p&gt;I've worked on a few projects that used a remote agile development strategy, with varying results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The experience level of the team is the key factor, if everyone involved is competent with this strategy and the tools (or can become competent quickly) Then it's a sustainable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problems of remote work are often due to lack of communication, both 'face-to-face' and poor use of project tracking tools and SCM/VCS.  The most successful agile projects I've worked on remotely involved the following.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Daily face-to-face / VOIP morning scrum style meetings.&lt;/li&gt;&#xA;&lt;li&gt;Clear iteration plans (this is heavily reliant on a good project manager, plus good, communicative developers.)&lt;/li&gt;&#xA;&lt;li&gt;Automation tools such as continuous integration / build servers.&lt;/li&gt;&#xA;&lt;li&gt;Diligent use of project tracking tools (and the quality thereof.)&lt;/li&gt;&#xA;&lt;li&gt;Cohesive use of VCS/SCM with a well understood team strategy for commit and branching.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Good project tracking tools I'd recommend are Redmine, TargetProcess and Jira. My experiences with TargetProcess were particularly effective, mostly due to the competency level of the PM on those projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A great team is without doubt the fundamental key to success on remote (and frankly any) projects, in close second are the tools used to facilitate the project management and development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One other point, if pairs of developers can work colocal then there is a definite benefit over solo developers, in terms of motivation and of course, continuous code-review.&lt;/p&gt;&#xA;" OwnerUserId="3787" LastEditorUserId="3787" LastEditorDisplayName="" LastEditDate="2010-12-23T23:58:01.527" LastActivityDate="2010-12-23T23:58:01.527" CommentCount="3" />
  <row Id="29682" PostTypeId="1" AcceptedAnswerId="29684" CreationDate="2010-12-23T23:50:25.463" Score="2" ViewCount="154" Body="&lt;p&gt;Do you think that these days it makes sense to focus one's software engineering career around the IBM mainframe systems?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let me be more specific about the context.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming itself is done in C, C++ and Java but is closely related to the mainframe environment and in case of C and C++ development to the platform itself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The learning curve related to the environment, platform, tools of trade and so on is several years - like you are starting to sort of get it after 3 years and achieve some level of seniority after maybe 5 years - experience may vary of course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The concern is one may end up being 'expert' in something no one wants...&lt;/p&gt;&#xA;" OwnerUserId="11344" LastActivityDate="2010-12-24T02:17:53.717" Title="Does it make sense to focus career around mainframes?" Tags="&lt;career-advice&gt;&lt;mainframe&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="29683" PostTypeId="2" ParentId="27944" CreationDate="2010-12-23T23:51:44.653" Score="1" ViewCount="" Body="&lt;p&gt;You don't like PHP, so avoiding jobs in that area is pretty easy. Lot's of jobs in the web/Microsoft area, but are these the types of companies you want to work for? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are three types of jobs:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Software / Web Service Company&lt;/li&gt;&#xA;&lt;li&gt;Consultancy&lt;/li&gt;&#xA;&lt;li&gt;Company in some other industry that want to hire in-house programmers.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Not sure #1 does a lot of C#, but you'll have to find that out for yourself. Have you considered Python or Ruby? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have a job, so you shouldn't be too desperate. Pick a company you want to work for and see what they require. With your education and experience, self-study is the best option. Shouldn't be too hard convincing employers you know what you're doing and are capable of picking up new languages. There are no definitive paths; be prepared to sell your skills.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-23T23:51:44.653" />
  <row Id="29684" PostTypeId="2" ParentId="29682" CreationDate="2010-12-23T23:57:10.873" Score="1" ViewCount="" Body="&lt;p&gt;Just because you've &quot;only&quot; developed for IBM mainframes in: C, C++ and Java do you really think you'd be excluded from other platforms? You may find yourself needing both in many job situations. If you enjoy the work, I see no reason not to stick with it, but be open to other opportunities when given the chance.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-23T23:57:10.873" />
  <row Id="29686" PostTypeId="2" ParentId="29596" CreationDate="2010-12-24T00:00:04.570" Score="2" ViewCount="" Body="&lt;p&gt;I have been using a Kinesis Ergo Pro keyboard for Dvorak typing, and &quot;regular&quot; keyboards for UK, US, northern European as well as Asian layouts. The fact that I used a radically different keyboard to write Dvorak has resulted in no confusion between Dvorak and Qwerty; perhaps something like this might work also for you? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Downside is that I cannot type Dvorak on a flat keyboard, nor can I use the Kinesis in Qwerty mode. But this really does not matter. For me learning Dvorak also increased typing speed in Qwerty.&lt;/p&gt;&#xA;" OwnerUserId="6940" LastActivityDate="2010-12-24T00:00:04.570" CommentCount="1" />
  <row Id="29687" PostTypeId="2" ParentId="29635" CreationDate="2010-12-24T00:15:24.413" Score="8" ViewCount="" Body="&lt;p&gt;I refuse to work on a fixed-bid project, for most of the reasons you listed.  It ain't just you — fixed-bid work is antithetical to an agile process (which is also the way I work.) If the contractor you work for insists on bidding out his projects as fixed-bid, then let him take on the risk.  If you're good at what you do, there are plenty of other places to go work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically everyone sucks at estimating.  Unless you've done a project that was &lt;em&gt;substantially&lt;/em&gt; similar at least a couple of times, you're not estimating, you're guessing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;also, he's wrong about not getting a contract without a fixed bid. If he can't, the problem isn't the fixed-bid vs hourly, its the salesman.  I've worked for a roster of clients on an hourly basis.  The key is to give them frequent communications about what you're doing and what its costing them, and make them understand that the tradeoffs are budget vs features— you can hit a budget, but they have to give on features sometimes.&lt;/p&gt;&#xA;" OwnerUserId="9475" LastEditorUserId="9475" LastEditorDisplayName="" LastEditDate="2010-12-28T16:43:56.203" LastActivityDate="2010-12-28T16:43:56.203" CommentCount="1" />
  <row Id="29688" PostTypeId="2" ParentId="29391" CreationDate="2010-12-24T00:18:52.820" Score="-1" ViewCount="" Body="&lt;p&gt;In my experience, when learning architecture nothing beats bugfixing/debugging applications someone else wrote and talking to other programmers. The best way to learn is to code and own a part of big application, and then expand your knowledge to include other parts of application.&lt;/p&gt;&#xA;" OwnerUserId="7203" LastActivityDate="2010-12-24T00:18:52.820" CommentCount="2" />
  <row Id="29689" PostTypeId="2" ParentId="24002" CreationDate="2010-12-24T00:21:33.157" Score="0" ViewCount="" Body="&lt;p&gt;SSMS comes with diagram designer tool (if you are looking for microsoft solution)&lt;/p&gt;&#xA;" OwnerUserId="11017" LastActivityDate="2010-12-24T00:21:33.157" />
  <row Id="29690" PostTypeId="2" ParentId="29430" CreationDate="2010-12-24T00:21:47.700" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Making money for a living should be a job for robots... And I don't know about you, but I'm going to build one!&quot;&lt;/p&gt;&#xA;" OwnerUserId="11540" LastActivityDate="2010-12-24T00:21:47.700" CommunityOwnedDate="2010-12-24T00:21:47.700" />
  <row Id="29691" PostTypeId="2" ParentId="25037" CreationDate="2010-12-24T00:32:23.283" Score="3" ViewCount="" Body="&lt;p&gt;I think you're on the right track and should continue with your solution.  Some of the previous criticism is overly harsh, but some valid points are made.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I too have searched long and hard for a full-featured ORM solution that would fit my needs, but every solution I looked at came up short.  Each has its pros and cons but none really did everything that I wanted.  I agree with your criticism of these solutions - namely that they generally are complex and have a steep learning curve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The top contender would have to be the de facto standard, Hibernate.  It is full-featured, robust and well-tested.  I respect it and appreciate it for what it is.  Now, at the risk of offending half the programming community, I must also say that it is a bloated and complex piece of non-performant code.  I've spent a fair amount of time poking around in its bowels, trying to debug and understand it, and I was not impressed with what I saw.  Having said that, I would still recommend it as the starting point for anyone looking for a good ORM.  It excels at simple CRUD, but I would not use it for performant bulk queries, such as data mining or number crunching.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, my application is more of the number crunching variety (though there is some CRUD too), so I decided to roll my own.  I knew from the start that it would be sub par compared to the other solutions out there, but it would be good enough and give me the performance I needed.  Now here's the really great part: it looks very much like your solution!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is what I think you did most right: You stated your underlying beliefs as a kind of mission statement, and those beliefs are correct.  I've obviously spent a fair amount of time thinking about this problem too, and it is a difficult one to solve.  But as time goes on, I think the programming community comes to understand it better, and we will create better solutions.  Kudos to all previous efforts (especially Hibernate), but I think we can do better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your solution better refines the problem, but it only solves part of it.  I think that a layered approach may give us everything we want.  What you have come up with/ IMO, is the foundation layer.  As you have suggested, I think this layer is best automatically generated based on a database schema.  It should be a very simple relational object model that maps directly onto the database and no more.  You're right that data persists much longer than code, so at this level, data should drive code and not vice versa.  It would support CRUD as well as performant bulk querying.  I would probably implement some kind of L1 cache at this layer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the thing that other ORM solutions excel at is the ability to define your objects in a manner that does not depend so much on the actual structure of the underlying database.  For this functionality, I would create another layer.  By necessity this layer becomes more abstract, hopefully simpler (at the expense of lost functionality), and builds on the previous layer.  It might utilize an L2 cache.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm open to having more layers, but the key point for me is that by providing multiple entry points into the library, you can fulfill every need.  For those that want a simple CRUD solution that maps directly to objects of their choosing, they can build on the top layer.  For those looking for something more powerful and performant but willing to incur the added complexity, they can plug into the lower layer.  I would not create a special query language, but instead would expose your query builder object for this purpose.  And since the code is layered, that functionality naturally exists without special pass-through.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you do have an understanding of the space and aren't reinventing the wheel but rather have hit a slightly different niche.  And frankly, this is a wheel that could use improvement anyway.  You face an uphill battle contending against powerhouses of the past, but if your solution is good, and I think it's heading that way, then it will gain popularity on its own merits.&lt;/p&gt;&#xA;" OwnerUserId="11541" LastActivityDate="2010-12-24T00:32:23.283" CommentCount="1" />
  <row Id="29692" PostTypeId="1" AcceptedAnswerId="29694" CreationDate="2010-12-24T00:48:20.250" Score="4" ViewCount="371" Body="&lt;p&gt;Always when the term RAII is used, people are actually talking about deconstruction instead of initialisation ... I think I have a basic understanding what it might mean but I'm not quite sure. Also: is C++ the only RAII language? What about Java or C#/.NET? or is C++/CLI not RAII anymore?&lt;/p&gt;&#xA;" OwnerUserId="10199" LastActivityDate="2010-12-24T06:09:31.533" Title="What's RAII? Examples?" Tags="&lt;c++&gt;" AnswerCount="2" />
  <row Id="29693" PostTypeId="2" ParentId="29614" CreationDate="2010-12-24T00:51:00.170" Score="4" ViewCount="" Body="&lt;p&gt;If I don't understand something I find someone who does and tell them to explain it to me.  Once it's been explained I cement my understanding by playing with the concept for a bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I almost never think I'm stupid just because I seen plenty of smart people miss completely obvious things.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-24T00:51:00.170" />
  <row Id="29694" PostTypeId="2" ParentId="29692" CreationDate="2010-12-24T01:03:34.520" Score="10" ViewCount="" Body="&lt;p&gt;Resource Acquisition Is Initialization means that objects should look after themselves as a complete package and not expect other code to tell an instance &quot;hey by the way, you're going to be cleaned up soon - please tidy up now.&quot; It does usually mean there is something meaningful in the destructor. It also means you write a class specifically to manage resources, knowing that under certain hard-to-predict circumstances, like exceptions being thrown, you can count on destructors executing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Say you want to write some code where you're going to change the windows cursor to a wait (hourglass, donut-of-not-working, etc) cursor, do your stuff, and then change it back. And say also that &quot;do your stuff&quot; might throw an exception. The RAII way of doing that would be to make a class whose ctor set the cursor to wait, whose one &quot;real&quot; method did whatever it was you wanted done, and whose dtor set the cursor back. Resources (in this case the cursor state) are tied to the scope of an object. When you acquire the resource you initialize an object. You can count on the object getting destructed if exceptions are thrown, and that means you can count on getting to clean up the resource.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using RAII well means you don't need &lt;code&gt;finally&lt;/code&gt;. Of course, it relies on deterministic destruction, which you can't have in Java. You can get a sort of deterministic destruction in C# and VB.NET with &lt;code&gt;using&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2010-12-24T01:03:34.520" CommentCount="3" />
  <row Id="29695" PostTypeId="2" ParentId="20927" CreationDate="2010-12-24T01:17:26.013" Score="0" ViewCount="" Body="&lt;p&gt;I have a few favourites, but here are a couple that nearly always come up. Most of the time I'm doing final round technical (C++) interviews so favour longer and more open questions which lead to new areas of interest. There's no 'right' answer, just an opening to other conversation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Implementing a basic shared pointer, explanations of where there's deficiencies compared to tr1 or boost's shared pointers in their implementation, how it should be used etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) A code review. For experienced hires we expect them to be able to confidently review some provided code for design problems, errors, coding horrors and potential maintainability problems. Also, of course, how they'd fix it; and sometimes how they'd give that message to the junior developer they're shooting down.&lt;/p&gt;&#xA;" OwnerUserId="11485" LastActivityDate="2010-12-24T01:17:26.013" CommunityOwnedDate="2011-02-15T14:41:29.790" />
  <row Id="29696" PostTypeId="2" ParentId="29485" CreationDate="2010-12-24T01:20:44.647" Score="2" ViewCount="" Body="&lt;p&gt;Well, some call it &quot;muzak&quot;. Productive music is not a new concept and it being used from centuries ago (yes, centuries).&#xA;Personally what works for me for working as a programmer is lounge music. Specially, I program everyday with &lt;a href=&quot;http://somafm.com/play/groovesalad&quot; rel=&quot;nofollow&quot;&gt;Groove Salad&lt;/a&gt; on and on all day long. It helps me a lot to focus 'n flow! Very recommended for programming.&#xA;Bye.&lt;/p&gt;&#xA;" OwnerUserId="11543" LastActivityDate="2010-12-24T01:20:44.647" />
  <row Id="29697" PostTypeId="1" CreationDate="2010-12-24T01:47:39.820" Score="2" ViewCount="150" Body="&lt;p&gt;I find myself reluctant to read code without syntax highlighting.  On an almost daily basis, I end up downloading or copy-pasting large blocks of code from a browser window into vim just for the sake of seeing it in color.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a more elegant solution?  is there a plugin for firefox or chrome that allows me to apply syntax highlighting to any page?&lt;/p&gt;&#xA;" OwnerUserId="8656" LastActivityDate="2010-12-24T14:22:45.777" Title="browser syntax highlighting" Tags="&lt;syntax-highlight&gt;&lt;web-browser&gt;" AnswerCount="4" />
  <row Id="29698" PostTypeId="2" ParentId="29697" CreationDate="2010-12-24T01:50:42.793" Score="1" ViewCount="" Body="&lt;p&gt;You could try &lt;a href=&quot;http://userscripts.org/scripts/show/7982&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; from user scripts&lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-12-24T01:50:42.793" CommentCount="1" />
  <row Id="29699" PostTypeId="2" ParentId="29170" CreationDate="2010-12-24T01:50:57.920" Score="0" ViewCount="" Body="&lt;p&gt;I like code to be readable, but the most important thing is consistency. For me that means consistency with naming conventions &lt;em&gt;and&lt;/em&gt; spacing between functions, parenthesis on the same line or the next line of the if statement, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, there are times when someone programs something with a consistent code style and it still drives me insane. Especially code that doesn't &quot;breath&quot;. For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void function1(){&#xA;    //whatever code&#xA;}&#xA;int fooBar(){&#xA;    //whatever else&#xA;}&#xA;Foo* someOtherFooBar(int value){&#xA;    if(value){&#xA;        //do something&#xA;    }&#xA;    return ...;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Well... It looks worse with Objective-C methods, and with lots and lots of nested if statements, and lines much longer than 80 characters. But it still annoys me :)&lt;/p&gt;&#xA;" OwnerUserId="9357" LastActivityDate="2010-12-24T01:50:57.920" />
  <row Id="29700" PostTypeId="2" ParentId="29534" CreationDate="2010-12-24T01:54:50.823" Score="1" ViewCount="" Body="&lt;p&gt;I'd add a little more to the situation in pointing out the error and see what reaction the person has.  Are they overly dramatic about the, &quot;D'oh! I'm an idiot, that was so dumb...&quot; type, overly apathetic in the, &quot;Yeah, whatever dude,&quot; camp, or was there active listening on what was wrong with some kind of apology or remark to denote that they get that they messed up something they should have resolved?  Just something to think about in future situations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To debug in a &lt;em&gt;timely&lt;/em&gt; fashion is a great skill.  This is a bit different than giving someone a problem where it gets fixed when it gets fixed.  Sometimes there has to be aggressive measures taken to save the system which should be acknowledged as I'd imagine most companies wouldn't like to have sales halted for weeks while someone fixes a bug in the accounting software the company uses.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-24T01:54:50.823" />
  <row Id="29701" PostTypeId="2" ParentId="29697" CreationDate="2010-12-24T02:00:42.033" Score="0" ViewCount="" Body="&lt;p&gt;There are so many syntax highlighters, check this one from &lt;a href=&quot;http://code.google.com/p/syntaxhighlighter/&quot; rel=&quot;nofollow&quot;&gt;Google&lt;/a&gt;. If you want more details, have a Google search.&lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2010-12-24T02:00:42.033" CommentCount="1" />
  <row Id="29702" PostTypeId="2" ParentId="5233" CreationDate="2010-12-24T02:11:35.107" Score="0" ViewCount="" Body="&lt;p&gt;As I know, a degree will be very useful for your job huntting in the first two or three years. After that, it doesn't that much mattar. Though , I am telling the situation in China I live.&lt;/p&gt;&#xA;" OwnerUserId="11307" LastActivityDate="2010-12-24T02:11:35.107" />
  <row Id="29703" PostTypeId="2" ParentId="29682" CreationDate="2010-12-24T02:17:53.717" Score="1" ViewCount="" Body="&lt;p&gt;It all depends on at least three key factors:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Your career goals (short, medium and long term - assuming you have an idea of what you want);&lt;/li&gt;&#xA;&lt;li&gt;The industry you are in and the direction it will likely take in the coming future (to match with your career milestones);&lt;/li&gt;&#xA;&lt;li&gt;What transferable skills you can actually sell when one road comes to an end and you're looking for the next step.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Personally I became an expert in Air Traffic Control software systems. More specifically in requirements writing, validation, training and operational support. Pretty specialised stuff. To add to this I was intimately linked to the technology we used (mainframes) - at least in my ex-employer's eyes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I loved it all to bits, and I suppose I could have tried to milk it some more, but I would have had to move to places I did not necessarily want to go or make other significant compromises (though a few options nearly worked that would have been fab, only they did not materialise). So I found myself pretty darn cornered with only limited options to move elsewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That was just over 5 years ago and it still feels tough today. I have since had three different places of employments altogether. One in electronic trading performance testing, one in electrical &amp;amp; digital test bench design for aircraft engine control certification, and lately joined the banking sector for a quality assurance role. All of these moves have felt like side steps (parallel moves), I have yet to find the next step for a real career progression. This is partly due to the economic situation, partly due to the fact that I moved countries twice but also because I don't know what I really want next.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you know what you want next, go hell for leather, enjoy the ride, make sure you do the right thing to position yourself for the next step and you'll be fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If like me you have a general unease about being labelled, are not quite sure what the next step should be, then the question becomes harder. If you look forward to being the expert for a while, then do it, it can be very satisfying. However be aware that some day it may end badly. So continue watching your steps, take time to discover other avenues while being that expert. Keep yourself interested in other roles, network... and be one step ahead of where your industry is going - or become such a good expert that you'll be the last one standing for the few systems remaining that will continue needing care for a while. I've seen a Data General expert milk it to retirement very happily indeed. Till now I never really planned my career (I graduated 19 years ago), though I could afford to be quite picky about which jobs to accept, so I guess this is akin to sailing with knowledge of the prevailing winds in your immediate surroundings. Whereas career planning would be sailing with knowing more of the wind forecasts and a good navigation system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To conclude on a subjective note, if it was me today I would not go into the mainframe business. But there are so many factors to take into consideration that you must take an enlightened decision with your full set of conditions. Besides nothing stops you from trying for a while and changing mid way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hoping this helps.&lt;/p&gt;&#xA;" OwnerUserId="9043" LastActivityDate="2010-12-24T02:17:53.717" />
  <row Id="29704" PostTypeId="2" ParentId="29614" CreationDate="2010-12-24T02:20:45.920" Score="6" ViewCount="" Body="&lt;p&gt;This is more a question of psychology than programming.  When Freud spoke of defense mechanisms, this is essentially what he was talking about:  mechanisms that protect your self-image when it is threatened.  Some of them are considered more mature and healthy than others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Defence_mechanism&quot; rel=&quot;nofollow&quot;&gt;defense mechanisms&lt;/a&gt; you want to avoid (and that come up frequently in my experience):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;rationalization&lt;/strong&gt; - &quot;I can't understand this concept because it is just too complex.&quot;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;idealization&lt;/strong&gt; - &quot;The people who came up with this concept are just so much smarter than me.  I can't understand it no matter how hard I try.&quot;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;projection&lt;/strong&gt; - &quot;The people who came up with this concept just don't know enough about the subject matter to make the concept any good.&quot;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;reaction formation&lt;/strong&gt; - &quot;I'm just too smart for this.&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Rationalization is one that I especially see a lot in programmers.  We have a tendency to assume that not understanding something means that it is complex, which isn't necessarily true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, here are some of the more healthy defense mechanisms that work for me:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;altruism&lt;/strong&gt; - Once you've mastered the concept, write a blog post about it to explain it to others or explain it to your team.  Using your struggles to help others is a good self-image booster.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;humor&lt;/strong&gt; - Make jokes about your problems.  This makes the concepts seem less threatening without avoiding them altogether.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;identification&lt;/strong&gt; - Find someone you think is really good at this and model your approach on theirs.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;anticipation&lt;/strong&gt; - Budget time to learn concepts in advance so that you don't have to rush yourself into understanding them.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;sublimination&lt;/strong&gt; - Channel your thoughts into more positive ones.  Start exercising or pick up a new hobby.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;thought suppression&lt;/strong&gt; - Whenever you find yourself saying &quot;I'm so stupid...&quot; suppress that thought and move back to the subject at hand.  This is surprisingly effective.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-24T02:20:45.920" />
  <row Id="29705" PostTypeId="2" ParentId="29697" CreationDate="2010-12-24T02:49:59.337" Score="0" ViewCount="" Body="&lt;p&gt;For Firefox, I would recommend Mozilla Lab's &lt;a href=&quot;http://mozillalabs.com/ubiquity/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Ubiquity add-on&lt;/strong&gt;&lt;/a&gt;, &quot;an experimental interface based on natural language input&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Syntax highlighting is only one of the many useful commands that comes with the add-on, and as a programmer, I think the command line-like interface should be easy to learn and use. &lt;/p&gt;&#xA;" OwnerUserId="1395" LastActivityDate="2010-12-24T02:49:59.337" />
  <row Id="29706" PostTypeId="2" ParentId="29671" CreationDate="2010-12-24T03:00:51.800" Score="0" ViewCount="" Body="&lt;p&gt;I've been doing that same thing but unfortunately i had to mantain the code while i'm rewritting it. &#xA; So my advise is, try to understand the work flow and find the &quot;use units&quot; (logic units that interact with each other to generate the workflow). Once you undesrtand one of them, replace the code with your own, test if it does the same thing and then go to the next one.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-24T03:00:51.800" />
  <row Id="29707" PostTypeId="1" AcceptedAnswerId="34317" CreationDate="2010-12-24T03:23:06.420" Score="5" ViewCount="243" Body="&lt;p&gt;I have been working with MEF for about 2 weeks. I started thinking about what MEF is for, researching to find out how to use MEF, and finally implementing a Host with 3 modules. The contracts are proving to be easy to grasp and the modules are easily managed.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although MEF has a very practical use, I am wondering to what extent? I mean, &lt;em&gt;is everyone going to be rewriting existing applications for extensibility?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, that sounds, and is insanely impractical. Rhetorically speaking: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;how is MEF affecting the current&#xA;trends in programming?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;have you begun looking for&#xA;opportunities to use MEF?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;have you begun planning a major&#xA;re-write of an existing app that may&#xA;benefit from extensibility?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That said, my questions are:&lt;br&gt;&#xA;&lt;strong&gt;&lt;em&gt;how do I know when I should plan a new project with extensibility?&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&#xA;&lt;strong&gt;&lt;em&gt;how will I know if an existing project needs to be re-written for extensibility?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Is anyone using MEF?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8031" LastEditorUserId="6591" LastEditorDisplayName="" LastEditDate="2010-12-25T16:07:55.947" LastActivityDate="2011-01-13T18:04:31.683" Title="How are you using the Managed Extensibility Framework?" Tags="&lt;.net&gt;&lt;frameworks&gt;&lt;mef&gt;" AnswerCount="3" />
  <row Id="29708" PostTypeId="2" ParentId="29132" CreationDate="2010-12-24T03:23:37.153" Score="-2" ViewCount="" Body="&lt;p&gt;42 is the answer to all of your questions.&lt;/p&gt;&#xA;" OwnerUserId="9540" LastActivityDate="2010-12-24T03:23:37.153" />
  <row Id="29709" PostTypeId="1" AcceptedAnswerId="29711" CreationDate="2010-12-24T03:26:46.323" Score="6" ViewCount="269" Body="&lt;p&gt;Hi all, its been some time that i've been thinking about creating something that could help the web community and leave some mark, but the problem that there are no ideas poping out of my head. So 2 questions comes to my mind:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, how did projects like Twitter, Google or any other big project that had changed our way of living in the internet get started?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, do we have to force it or just keep doing what we do best and wait to that idea that could change things?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While writting this question, one quote come to mind:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Imagination is more important than knowledge&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Albert Einstein&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="10785" LastEditorUserId="10785" LastEditorDisplayName="" LastEditDate="2010-12-24T20:36:02.303" LastActivityDate="2011-03-02T06:44:20.263" Title="Innovation on CS" Tags="&lt;creativity&gt;&lt;innovation&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="4" />
  <row Id="29710" PostTypeId="2" ParentId="29513" CreationDate="2010-12-24T03:49:09.883" Score="1" ViewCount="" Body="&lt;p&gt;Being &quot;bad&quot; or even &quot;evil&quot; is rather strong words.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As always there are reasons for choosing a personal implementation over a built-in one.  In the old days a C program might encounter bugs in the runtime library, and therefore simply &lt;em&gt;have to&lt;/em&gt; provide its own implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This doesn't apply for Java programs as the JVM is very strictly defined, but some algorithms are still very hard to get right.  For instance Joshua Bloch describes how the deceivingly simple binary search algorithm in the Java runtime library contained a bug, which it took nine years to surface:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html&quot; rel=&quot;nofollow&quot;&gt;http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was found, fixed and distributed in future Java distributions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you use the builtin binary search you just saved time and money by having Sun do the hard work finding, fixing and distributing this bugfix.  You can leverage their work just by saying &quot;you need at least Java 6 update 10&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you use your own implementation - which would very likely contain this error too - you first need the bug to manifest itself.  Given that this particular one only shows on LARGE datasets, it is bound to happen in production somewhere, meaning at least one of your customers will be affected and most likely loose real money while you find, fix and distribute the bugfix.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, it is perfectly valid to prefer your own implementation, but the reason better be really good, as it is bound to be more expensive than leveraging the work of others.  &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-24T03:49:09.883" CommentCount="4" />
  <row Id="29711" PostTypeId="2" ParentId="29709" CreationDate="2010-12-24T04:00:58.697" Score="11" ViewCount="" Body="&lt;p&gt;A lot of innovations come from the creator's need to scratch his own itch. So worry about solving your own problem (or at worst your friends' problems) rather than solving some vague and anonymous Internet user's problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Novelists say that writer's block means you haven't read enough. So why not start by doing what's already been done and see what comes of it? Take a small-scale Internet product you &lt;em&gt;actually use&lt;/em&gt; (not big like Google or Facebook) and see if you can reimplement it. That may seem counter-productive and maybe even reinventing the wheel, but you'll get a better appreciation of what went into the product. And you might even come-up with a better solution. (Note: this is exactly what first-year grad students do to discover their thesis topic.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And going back to scratching your own itch, is there anything that's really painful for you in your job or hobbies? A manual process that you haven't been able to automate because of inadequate software tools? A data set that's too large or too heterogenous to process properly?&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-24T04:00:58.697" CommentCount="3" />
  <row Id="29712" PostTypeId="2" ParentId="29428" CreationDate="2010-12-24T04:13:21.970" Score="6" ViewCount="" Body="&lt;p&gt;These books are highly regarded:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://oreilly.com/catalog/0636920010227&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Hackers&lt;/em&gt;&lt;/a&gt;&lt;br&gt;&#xA;by Steven Levy&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://oreilly.com/catalog/9781565925823/&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Open Sources: Voices from the Open Source Revolution&lt;/em&gt;&lt;/a&gt;&lt;br&gt;&#xA;by Chris DiBona and Sam Ockman&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://oreilly.com/catalog/9780596008024&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Open Sources 2.0: The Continuing Evolution&lt;/em&gt;&lt;/a&gt;&lt;br&gt;&#xA;by Chris DiBona, Mark Stone, and Danese Cooper&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://oreilly.com/catalog/9780596001087/&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;The Cathedral &amp;amp; the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary&lt;/em&gt;&lt;/a&gt;&lt;br&gt;&#xA;by Eric S. Raymond&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-12-24T04:13:21.970" CommentCount="1" />
  <row Id="29713" PostTypeId="2" ParentId="29709" CreationDate="2010-12-24T04:21:14.730" Score="3" ViewCount="" Body="&lt;p&gt;I think it is much more difficult to set out to &quot;leave some mark&quot;. If you do that you will automatically throw out some good ideas just because you may not think they will have a wide impact.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it is best to immerse yourself in an arena that you are interested in and keep your mind open. Learn why things are done the way they are and when you experience pain recognize that and practice brainstorming ways you could improve the process. Even if you start out by making some small improvement that is practice that your brain will use in the future. If you train your brain to recognize &quot;opportunities&quot; and practice thinking of solutions you will find that the ideas come naturally.&lt;/p&gt;&#xA;" OwnerUserId="3697" LastEditorUserId="3697" LastEditorDisplayName="" LastEditDate="2010-12-24T06:10:25.083" LastActivityDate="2010-12-24T06:10:25.083" CommentCount="1" />
  <row Id="29714" PostTypeId="2" ParentId="29709" CreationDate="2010-12-24T04:33:47.517" Score="1" ViewCount="" Body="&lt;p&gt;In my view, it's enthusiasm in your work that makes the difference. Everyone can imagine, but only those who are ready to devote for their dreams can succeed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, the team that do Facebook, Twitter must really &lt;strong&gt;love&lt;/strong&gt; what they do. In the beginning, with out the love for creation of the biggest social network, I think Mark Zukernberg may end up a developer in Microsoft/ Google.&lt;/p&gt;&#xA;" OwnerUserId="9202" LastActivityDate="2010-12-24T04:33:47.517" />
  <row Id="29715" PostTypeId="2" ParentId="29513" CreationDate="2010-12-24T04:50:18.840" Score="0" ViewCount="" Body="&lt;p&gt;Whether or not to re-invent the wheel is a cost/benefit thing. Costs are fairly obvious...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It takes a lot of time to do the reinventing.&lt;/li&gt;&#xA;&lt;li&gt;It takes even more time to document what you have invented.&lt;/li&gt;&#xA;&lt;li&gt;You cannot hire people who already understand what you have invented.&lt;/li&gt;&#xA;&lt;li&gt;It is all too easy to reinvent something badly, causing ongoing costs for the problems caused by the bad design.&lt;/li&gt;&#xA;&lt;li&gt;New code means new bugs. Old code has usually had most bugs removed already, and may have subtle workarounds to issues you're not aware of and therefore cannot work around in the new design.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The last is important - there's a blog post somewhere warning about the tendency to &quot;throw the old code away and start from scratch&quot; on the basis that a lot of the old cruft you don't understand is actually essential bugfixes. There's a cautionary tale about Netscape, IIRC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The advantages can be...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The ability to add features that existing libraries don't have. For example, I have containers that &quot;maintain&quot; their iterator/cursor instances. Insertions and deletions don't invalidate iterators. An iterator pointing into a vector will continue to point to the same item (not the same index) irrespective of inserts and deletes earlier in the vector. You simply cannot do that with standard C++ containers.&lt;/li&gt;&#xA;&lt;li&gt;A more specialised design targeting your particular requirements and respecting your priorities (but beware the tendency toward the inner-platform effect).&lt;/li&gt;&#xA;&lt;li&gt;Complete control - some third party cannot decide to redesign the API in a way that means you have to rewrite half your application.&lt;/li&gt;&#xA;&lt;li&gt;Complete understanding - you have designed it that way, so you hopefully fully understand how and why you did so.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;EDIT&lt;/strong&gt; You can learn the lessons from other libraries without being caught in the same traps by being selective about how you imitate them.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;One thing - using a third-party library can count as reinventing the wheel. If you already have your own ancient, well used, well tested library, think carefully before discarding it to use a third-party library instead. It may well be a good idea in the long run - but there can be a huge amount of work and a lot of nasty surprises (from subtle semantic differences between the libraries) before you get there. For example, consider the effect of me switching from my own containers to standard library ones. A naive translation of calling code wouldn't allow for the fact that the standard library containers don't maintain their iterators. Cases where I save an iterator for later as a &quot;bookmark&quot; couldn't be implemented using a simple translation at all - I'd need some non-trivial alternative means of indicating bookmark positions.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastEditorUserId="8709" LastEditorDisplayName="" LastEditDate="2010-12-24T05:40:07.293" LastActivityDate="2010-12-24T05:40:07.293" />
  <row Id="29716" PostTypeId="2" ParentId="29709" CreationDate="2010-12-24T04:53:13.860" Score="1" ViewCount="" Body="&lt;p&gt;Research projects in university would be the answer to some things like Google or Yahoo! at Standford while Berkeley has its place in origins like BSD.  The University of Waterloo had an instrumental role in creating Research in Motion who are known for creating all those Blackberry smartphones.  I'm sure one could look at various big schools and note various companies that were started near them though not all became world dominating firms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Research departments of some companies can also produce some interesting results if you look into Bell Labs or Xerox PARC for how some other innovations came to be.  This is another way to look at your question in terms of where else is various cutting-edge research in CS done and I can picture somewhere within Microsoft or Google that there may be something coming soon but I don't know what that would be.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-24T04:53:13.860" CommentCount="2" />
  <row Id="29717" PostTypeId="1" AcceptedAnswerId="29759" CreationDate="2010-12-24T05:16:50.193" Score="2" ViewCount="231" Body="&lt;p&gt;Long ago I have worked with Java EE with my sql and Oracle, but now I am working in mobile technologies. In my experience i have encountered two type of data storage (the third is file but I tend to avoid it), the data base and other is -what I refer is- raw storage. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many applications use database with sql, but in mobile development we use persistent storage in which objects stored directly in memory. My experience says persistent storage is relatively faster and easy to program than traditional SQL approach, and especially in mobile development community I met some fellow programmers who try to avoid SQLITE if persistent storage is feasible. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any possibilities that php and .net web developers can adopt this kind of storage technologies? (I have heard that Java EE has hibernate that has some similar concept but haven't got time to go in depth).&lt;/p&gt;&#xA;" OwnerUserId="9006" LastEditorUserId="8820" LastEditorDisplayName="" LastEditDate="2010-12-24T14:37:04.000" LastActivityDate="2010-12-24T14:37:04.000" Title="Future of database: SQL will be there or will be replaced by some other technologies?" Tags="&lt;future&gt;&lt;database&gt;&lt;sql&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="29718" PostTypeId="2" ParentId="29709" CreationDate="2010-12-24T05:18:56.243" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=NugRZGDbPFU&quot; rel=&quot;nofollow&quot;&gt;Please see this white board animation on youtube&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-24T05:18:56.243" CommentCount="2" />
  <row Id="29719" PostTypeId="2" ParentId="29717" CreationDate="2010-12-24T05:31:07.493" Score="2" ViewCount="" Body="&lt;p&gt;Persistent storage is not the alternative to the database. Database topic is much vast than just storing the data. You are right in that mobile applications may not need databases. But considering the other web applications, I don't see the databases will be out of the picture at all. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastEditorUserId="8820" LastEditorDisplayName="" LastEditDate="2010-12-24T14:35:06.340" LastActivityDate="2010-12-24T14:35:06.340" CommentCount="3" />
  <row Id="29720" PostTypeId="1" AcceptedAnswerId="29771" CreationDate="2010-12-24T06:01:42.743" Score="2" ViewCount="100" Body="&lt;p&gt;&lt;em&gt;Please note that I'm moving my original question from StackOverflow to here, because I think it's more on-topic here&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I'm working on an idea and I'll go into a brief overview of that but my question is, What are some good web frameworks for this situation? I have some experience in the following languages:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;C# &lt;/li&gt;&#xA;&lt;li&gt;Python&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I have considerably more experience in C# than Python, however I am expecting to learn new things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My idea is this, a completely web-based community-oriented Education Management System that focuses on making students and teachers day-to-day lives easier. For students it will provide a centralized place for them to do homework, study for tests, and reinforce concepts learned previously in class. For teachers it will give them a centralized place to handle assignments, attendance, homework, tests, and all other major parts of classroom management. All of that, but in a community-oriented fashion. Everything a teacher does is shared and open to constructive criticism, allowing other teachers to use their assignments/tests and for students or other teachers to comment, rate and criticize their assignments. This encourages an environment of openness that will allow teacher's to focus on teaching and student's to focus on learning. And that community wouldn't be limited to one school or school-district, this system would be completely school-independent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Also note that I have no problem with hearing constructive criticism on this idea, however I would prefer if this post was more focused on my question.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have somewhat explored about the following options:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Django &lt;/li&gt;&#xA;&lt;li&gt;ASP.NET &lt;/li&gt;&#xA;&lt;li&gt;Ruby on Rails&lt;/li&gt;&#xA;&lt;li&gt;Silverlight&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;(1) I have Django installed and I played with it for a little bit, I really like how easy setting up databases are and how it handles the database completely for you. I don't really know how to use it very well and I don't quite understand the Model-View-Controller paradigm(?) for it yet but I haven't thought about it much. I also like the fact that it uses Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(2) I don't really like Visual Studio for developing in ASP.NET, I hate the way the web-designer works and it just feels clunky and old. I like the server-side development part though. I don't like how expensive ASP.NET and overall Visual Studio is, even if I do get it for free for now using DreamSpark&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(3) I haven't been able to explore much with this, I could not get Rails (or maybe Ruby) properly installed. I first installed it within RadRails and that didn't work so I uninstalled RadRails and then installed the latest version of Ruby off the official Windows Installer and then installed Ruby on Rails through gem and even after all that it still didn't work, so I installed Netbeans and attempted to use it there but it still did not work&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(4) I like Silverlight in some extents, I've played with this one the most, it's very similar to WPF (which I've used the most) in a lot of ways but I don't like how database connectivity works, at least in comparison to Django. I also dislike how expensive everything with Microsoft is, even if I get it for free for now with DreamSpark.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I would like to hear some suggestions from experienced web-developers as to what I should use and why, or at least what some good options are for my scenario&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your help would be very appreciated&lt;/p&gt;&#xA;" OwnerUserId="11148" LastActivityDate="2010-12-24T11:42:06.680" Title="Web Framework for Education Management System" Tags="&lt;web-development&gt;&lt;web-applications&gt;" AnswerCount="2" CommentCount="6" FavoriteCount="1" />
  <row Id="29721" PostTypeId="2" ParentId="29692" CreationDate="2010-12-24T06:09:31.533" Score="1" ViewCount="" Body="&lt;p&gt;RAII is partly about deciding when an object becomes responsible for its own cleanup - the rule being that the object becomes responsible if and when its constructor initialisation completes. The symmetry of initialisation and cleanup, constructor and destructor, means the two have close ties to each other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One point of RAII is to ensure exception safety - that the application remains self-consistent when exceptions are thrown. At first sight this is trivial - when an exception causes a scope to exit, the local variables in that scope need to be destructed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But what happens if the exception throw occurs within a constructor?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, the object hasn't been fully constructed, so cannot be safely destructed. The constructor should have try blocks as needed to ensure that any necessary cleanups are done before the exception is propogated. Once the exception propogates outside the scope where the object was constructed, there will be no destructor call, because the object wasn't constructed in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider in particular the constructors for member data inside the object being destructed. If one of those throws an exception, your main constructor code won't run at all - but some code that forms an implicit part of that constructor will have. Any members that have been successfully constructed will be automatically destructed. Any members that were not constructed (including the one that threw the exception) aren't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So basically, RAII is a policy that ensures that anything that gets fully constructed will get destructed in a timely way, particularly in the presence of exception throws, and that any object either gets fully constructed or it isn't (there are no half-constructed objects that you can't know how to safely clean up). Resources that are allocated are also freed. And a lot of the work is automated, so the programmer doesn't have to worry too much about it.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2010-12-24T06:09:31.533" />
  <row Id="29722" PostTypeId="1" AcceptedAnswerId="29770" CreationDate="2010-12-24T06:36:07.553" Score="8" ViewCount="713" Body="&lt;p&gt;I have a young lecturer friend who is going to teach the undergraduate C++ course in CS. He asked me for some suggestions regarding how the course should be organized. Now I am asking you. I have seen many trends in universities which leads to a nasty experience of C++. So, please suggest from a professional programmer's point of view.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For your information, the students going to take the course, have taken course like &quot;Introduction to programming with C&quot; in previous semester.&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2011-01-02T02:07:22.237" LastActivityDate="2011-05-09T21:01:37.000" Title="Which topics should be covered in a basic undergraduate C++ course?" Tags="&lt;c++&gt;&lt;education&gt;&lt;teaching&gt;&lt;object-oriented&gt;&lt;intro-to-programming&gt;" AnswerCount="13" FavoriteCount="4" />
  <row Id="29723" PostTypeId="2" ParentId="29717" CreationDate="2010-12-24T06:39:22.680" Score="0" ViewCount="" Body="&lt;p&gt;The new kind of database management system is commonly called a key/value store. In fact, no official name yet exists, so you may see it referred to as document-oriented, Internet-facing, attribute-oriented,  distributed database (although this can be relational also), sharded sorted arrays,  distributed hash table, and key/value database. While each of these names point to specific traits of this new approach, they are all variations on one theme, which we'll call key/value databases.&lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2010-12-24T06:39:22.680" />
  <row Id="29724" PostTypeId="1" AcceptedAnswerId="33326" CreationDate="2010-12-24T06:45:30.527" Score="1" ViewCount="98" Body="&lt;p&gt;As I am developing database api for a project.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I am developing commands for getting data from database.&lt;/li&gt;&#xA;&lt;li&gt;e.g. i have one gib table so command for that is &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;getgib name  alias limit fields&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;if user pass the name e.g. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;getgib rahul &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;than it will return all the gib data whose name is like rahul.&#xA;if alias  is given than it will return the all the gib owned by the user whose alias(userid) given .&#xA;So i want to design the commands.&#xA;limit : is to limit the record in query,&#xA;fields : is the extra fields i want to add in the select query .&lt;/p&gt;&#xA;&#xA;&lt;p&gt;so as now commands are set but now&#xA;Question 1 : i want the gibs by the gibid , so how to make this or any suggestion to improve my command is welcome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Question 2 : if user don't want to specify the name , and he  want only the gibs by providing alias then at this what separator at the place of name i should used.&lt;/p&gt;&#xA;" OwnerUserId="7702" LastEditorUserId="6617" LastEditorDisplayName="" LastEditDate="2011-01-03T13:36:23.307" LastActivityDate="2011-01-03T13:36:23.307" Title="database api commands" Tags="&lt;php&gt;&lt;design&gt;&lt;database&gt;&lt;api&gt;" AnswerCount="1" CommentCount="3" FavoriteCount="1" />
  <row Id="29725" PostTypeId="1" AcceptedAnswerId="29765" CreationDate="2010-12-24T06:48:21.507" Score="2" ViewCount="564" Body="&lt;p&gt;In order to make a choice for future what will be good Java or C Sharp? Now a days there are many jobs in C# and many clients are moving towards .Net(as MS is providing support).&#xA;I have heard that Java is very slow as compare to C#.&#xA;I have worked in C++ and VB but now i want go for Java or .Net its getting quite complex to decide help me out here.&#xA;Thanks&lt;/p&gt;&#xA;" OwnerUserId="11558" LastEditorUserId="8575" LastEditorDisplayName="" LastEditDate="2010-12-29T06:36:47.713" LastActivityDate="2010-12-29T12:58:55.870" Title="C# and Java as a career path" Tags="&lt;programming-languages&gt;" AnswerCount="9" CommentCount="7" />
  <row Id="29726" PostTypeId="1" CreationDate="2010-12-24T07:11:46.323" Score="5" ViewCount="165" Body="&lt;p&gt;Just when I generated a GUID, I found some hyphens in between the character and also at specified intervals&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;8b55fec7-c987-4e7b-abad-16e5aaea9b53&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Is there any story behind this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; My intention is to remove those hyphens as I am adding this GUID to a filename and our filename should only be aplhanumeric.&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-12-24T08:00:59.023" Title="Any reason behind hyphens in a GUID?" Tags="&lt;c#&gt;&lt;guid&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="1" />
  <row Id="29727" PostTypeId="2" ParentId="29722" CreationDate="2010-12-24T07:20:46.373" Score="-1" ViewCount="" Body="&lt;p&gt;The first and foremost, start with the pointers. Yes, I understand that this will be covered in C class, but unless pointer concept is clear the students are not going to understand the later topics. Approximately this is how I will go about it.&lt;br&gt;&#xA;1) Pointers&lt;br&gt;&#xA;2) Reference&lt;br&gt;&#xA;3) Code reuse&lt;br&gt;&#xA;4) Objects&lt;br&gt;&#xA;5) Classes&lt;br&gt;&#xA;.&#xA;.&#xA;.&lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-24T07:20:46.373" CommentCount="9" />
  <row Id="29731" PostTypeId="2" ParentId="29725" CreationDate="2010-12-24T07:48:18.413" Score="3" ViewCount="" Body="&lt;p&gt;There's plenty of work for talented developers in pretty much any development platform, especially C# and Java. They are both well supported by large communities and have excellent tool support. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Truly I don't think anyone can honestly say you will have a better carreer if you pick one or the other, so you might as well flip a coin. &lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-12-24T07:48:18.413" CommentCount="5" />
  <row Id="29732" PostTypeId="2" ParentId="19191" CreationDate="2010-12-24T07:52:35.663" Score="0" ViewCount="" Body="&lt;p&gt;If you mean PHP itself, you have &lt;a href=&quot;http://svn.php.net/viewvc/phpdoc/&quot; rel=&quot;nofollow&quot;&gt;phpdoc&lt;/a&gt;, it's all docbook XML.&lt;/p&gt;&#xA;" OwnerUserId="10080" LastActivityDate="2010-12-24T07:52:35.663" />
  <row Id="29733" PostTypeId="2" ParentId="29496" CreationDate="2010-12-24T07:54:47.657" Score="1" ViewCount="" Body="&lt;p&gt;If what you look for is a compiler, not encoder, check out &lt;a href=&quot;https://github.com/facebook/hiphop-php&quot; rel=&quot;nofollow&quot;&gt;hiphop&lt;/a&gt;. Otherwise, it is rather hard to write an encoder that would sufficiently hide details about your PHP script, so don't put high hopes in obfuscators beings secure or making your code un-recoverable.&lt;/p&gt;&#xA;" OwnerUserId="10080" LastActivityDate="2010-12-24T07:54:47.657" />
  <row Id="29734" PostTypeId="2" ParentId="29614" CreationDate="2010-12-24T07:56:48.620" Score="4" ViewCount="" Body="&lt;p&gt;I remind myself of something my father had on his wall in college -- (as far as I can tell, he originated the quote...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;No concept is so difficult that it cannot be conquered by the repeated attacks of an ordinary mind.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This can be encouraging to those of us with ordinary minds.&lt;/p&gt;&#xA;" OwnerUserId="1435" LastActivityDate="2010-12-24T07:56:48.620" CommentCount="2" />
  <row Id="29735" PostTypeId="2" ParentId="29722" CreationDate="2010-12-24T07:57:28.293" Score="0" ViewCount="" Body="&lt;p&gt;Pointers and Objects. Can't go wrong with that.&#xA;Also make sure they get plenty of lab practice.&lt;/p&gt;&#xA;" OwnerUserId="8783" LastActivityDate="2010-12-24T07:57:28.293" CommentCount="4" />
  <row Id="29736" PostTypeId="2" ParentId="29726" CreationDate="2010-12-24T07:58:24.767" Score="5" ViewCount="" Body="&lt;p&gt;The hyphens are always placed at the same position, so you won't lose any information (or unique-ness) by removing them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;See &lt;a href=&quot;http://stackoverflow.com/questions/3557382/why-do-guids-and-uuids-have-hyphens-in-them&quot;&gt;http://stackoverflow.com/questions/3557382/why-do-guids-and-uuids-have-hyphens-in-them&lt;/a&gt; for a detailed explanation.&lt;/p&gt;&#xA;" OwnerUserId="1922" LastActivityDate="2010-12-24T07:58:24.767" />
  <row Id="29737" PostTypeId="2" ParentId="29726" CreationDate="2010-12-24T08:00:59.023" Score="5" ViewCount="" Body="&lt;p&gt;Long sequences are very hard to parse for humans, hence the hyphens. But &lt;a href=&quot;http://en.wikipedia.org/wiki/Globally_unique_identifier&quot; rel=&quot;nofollow&quot;&gt;GUID itself&lt;/a&gt; is just a number, so you can drop them. &lt;/p&gt;&#xA;" OwnerUserId="10080" LastActivityDate="2010-12-24T08:00:59.023" />
  <row Id="29738" PostTypeId="1" CreationDate="2010-12-24T08:09:41.670" Score="2" ViewCount="884" Body="&lt;p&gt;Hi there,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i am .net developer and been using WPF, and ASP.NET MVC. I was hoping to pass some kind of certification exam - i thought it was about time. There seems to be 4 exams but i am unable to find the differences. Microsoft gives some kind of description but it seems very simple and doesn't explain the differences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the 4 exams appear to be MCPD, MCAD, MCSD, MTA&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i suppose 1 is harder than the other?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also i was wondering if the exams have been updated for vs 2010 / .net 4 / silverlight 4 etc?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I didn't really want to do .net 3.5 and vs 2008 for example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is advisable for revising the exams, books, or similar? any advise ... mock exams?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and is there a time limit and when you start and finish?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance for any advice or help.&lt;/p&gt;&#xA;" OwnerUserId="11561" LastActivityDate="2010-12-25T03:40:04.017" Title=".NET Certification: MCPD, MCAD, MCSD, MTA differences? difficulty? VS 2010/.net 4 ready?" Tags="&lt;c#&gt;&lt;.net&gt;&lt;certification&gt;" AnswerCount="5" FavoriteCount="0" />
  <row Id="29739" PostTypeId="2" ParentId="29738" CreationDate="2010-12-24T08:19:20.060" Score="-2" ViewCount="" Body="&lt;p&gt;Yes there is a time limit. More than you need. They aren't very difficult. It's all based on theory and most professionals can pass them without studying.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is why I put very low value in those certifications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can buy the exams with questions &amp;amp; answers from &lt;a href=&quot;http://www.testking.com/&quot; rel=&quot;nofollow&quot;&gt;TestKing&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-12-24T08:19:20.060" CommentCount="2" />
  <row Id="29740" PostTypeId="2" ParentId="29738" CreationDate="2010-12-24T08:27:47.903" Score="2" ViewCount="" Body="&lt;p&gt;Both MCAD and MCSD are certifications for older versions of the .NET framework (.NET 1.1 to the best of my memory)&#xA;MCAD was kind of a stepping stone to MCSD - 3 exams were needed to get a MCAD and another additional 2 papers would help you attain MCSD (the additional papers were related mostly to MS products like SQL / Biztalk etc)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;MCPD papers were earlier targeted towards .NET 3.5 (EDIT: I checked the &lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/mcpd.aspx#vs2010&quot; rel=&quot;nofollow&quot;&gt;MS site&lt;/a&gt; and this set of certifications have been upgraded for .NET 4.0. Basically, what it looks like is that now there is a separate set of MCPD papers targeted to .net 2.0 / 3.5 / 4.0). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;MCPD-EA is supposed to be the closest equivalent to the erstwhile MCSD certification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The MTA is new to me. Based on what i read from the MS site, seems to be an entry level certification. The MS site says&#xA;&lt;em&gt;Help demonstrate your knowledge of technology fundamentals by earning a Microsoft Technology Associate (MTA) certification. Earning the MTA certification can help you stand out when you submit college and internship applications by helping to prove your commitment &#xA;and understanding of a variety of entry-level technology concepts&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The MCSD/ MCPD exams are all time bound - usually around 60 mins but it can vary.&#xA;The number of questions also usually varies for the different exams.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding the resources, usually, there is an entire series of  MS press books -called &lt;a href=&quot;http://www.microsoft.com/mspress/findabook/list/subject_category_t.aspx&quot; rel=&quot;nofollow&quot;&gt;Self paced training kits&lt;/a&gt; one for each exam - these books are not indepth but they are useful to gauge the scope of the topics that are usually covered for each exam. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for preparation / difficulty, it is subjective. &#xA;Based on my experience, these exams focus more on breadth rather than depth and hence cover a &lt;strong&gt;wide&lt;/strong&gt; variety of topics and personally, i found it worthwhile to use the self paced training kit as a reference and specifically look up certain topics like deployment / tools  etc for which my practical knowledge was largely superficial&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding the validity of these exams, frankly, i would take it with a pinch of salt.&#xA;There are just too many sites out there selling the question + answers for these (and most other) certifications and largely, seeing one of these certifications listed on a potential candidate's resume means nothing to me. &lt;/p&gt;&#xA;" OwnerUserId="2226" LastEditorUserId="2226" LastEditorDisplayName="" LastEditDate="2010-12-24T08:41:57.520" LastActivityDate="2010-12-24T08:41:57.520" CommentCount="1" />
  <row Id="29741" PostTypeId="2" ParentId="29738" CreationDate="2010-12-24T08:33:32.287" Score="7" ViewCount="" Body="&lt;h1&gt;&lt;strong&gt;Difference between MCPD, MCAD, MCA/MCM&lt;/strong&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/mcad.aspx#tab2&quot; rel=&quot;nofollow&quot;&gt;MCPD&lt;/a&gt; is thing that you should go for being a .Net Developer&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Path is: MCP &gt; &lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/mcts.aspx#tab2&quot; rel=&quot;nofollow&quot;&gt;MCTS&lt;/a&gt; &gt; MCPD&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;There is no specific certification for Silverlight. you need to do certifications for WPF + WCF instead.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;MCTS: .NET Framework 3.5 Windows Communication Foundation Applications&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* Exam 70-536&#xA;  and&#xA;* Exam 70-503&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;MCTS: .NET Framework 3.5 Windows Presentation Foundation Applications&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* Exam 70-536&#xA;  and&#xA;* Exam 70-502&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/mcts.aspx#tab2&quot; rel=&quot;nofollow&quot;&gt;MCTS:&lt;/a&gt; is more focussed on development Technologies like Dot Net Framework 2.0, 3.5 and 4 and technologies like Desktop development, ADO.net, WPF, WCF etc. YOu should be following the path MCP &gt; &lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/mcts.aspx#tab2&quot; rel=&quot;nofollow&quot;&gt;MCTS&lt;/a&gt; &gt; MCPD&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will need to 70-536  .Net Framework 2.0 Application Development Foundation. This will make you an MCP. Then you can choose &lt;strong&gt;any&lt;/strong&gt; MCTS Certification that may either relate to Web Development or Desktop Development, Distributed Application Development, Windows Development or more. Then after the completion of MCTS in one more (at least one) you will need to go for MCPD for that specific MCTS you have completed.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;*      Windows technologies&#xA;*      Microsoft Visual Studio and Microsoft .NET Framework technologies&#xA;*      Microsoft SQL Server technologies&#xA;*      Microsoft Office System technologies &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(including Office SharePoint Server and Office Project Server)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;*      Microsoft Exchange Server technology&#xA;*      Other technologies&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;MCPD Certifications are more closely related to software development using .Net Technologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/mcpd.aspx#vs2010&quot; rel=&quot;nofollow&quot;&gt;MCPD on Microsoft Visual Studio 2010&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/mcpd.aspx#vs2008&quot; rel=&quot;nofollow&quot;&gt;MCPD on Microsoft Visual Studio 2008&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/mcpd.aspx#vs2005&quot; rel=&quot;nofollow&quot;&gt;MCPD on Microsoft Visual Studio 2005&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/mcpd.aspx#sp2010&quot; rel=&quot;nofollow&quot;&gt;MCPD on Microsoft SharePoint 2010&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/mcad.aspx#tab2&quot; rel=&quot;nofollow&quot;&gt;MCAD&lt;/a&gt; contain mostly retired exams. You may call these Legacy Certification program.You should not be going for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/mcsd.aspx#tab2&quot; rel=&quot;nofollow&quot;&gt;MCSD&lt;/a&gt; is a retired certifications program. You should not go for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no such thing as MTA i guess. You probably meant MCA (Microsoft Certified Architect). This program is currently limited to certification related to the following MS Solutions.&#xA;Microsoft currently offers three MCA certifications:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* MCA: Microsoft Exchange Server&#xA;* MCA: Microsoft SQL Server&#xA;* MCA: Windows Server: Directory&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Microsoft plans to extend the MCA certifications to include two other technologies:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* MCA: Microsoft Office Communications Server&#xA;* MCA: Microsoft Office SharePoint Server&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;h1&gt;&lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/architect.aspx#tab3&quot; rel=&quot;nofollow&quot;&gt;Steps to Become MCA&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/master.aspx#tab2&quot; rel=&quot;nofollow&quot;&gt;MCM&lt;/a&gt; is Solution Specific. Not strictly related to coding or development from scratch. Its about being able to develop solutions out of Microsoft solutions like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;MCM: Microsoft Exchange Server 2010&lt;/li&gt;&#xA;&lt;li&gt;MCM: Microsoft Lync Server 2010&lt;/li&gt;&#xA;&lt;li&gt;MCM: Microsoft SharePoint Server 2010&lt;/li&gt;&#xA;&lt;li&gt;MCM: Microsoft SQL Server 2008&lt;/li&gt;&#xA;&lt;li&gt;MCM: Windows Server 2008 R2: Director&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h1&gt;&lt;strong&gt;Preparations&lt;/strong&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Microsoft provides Self-Paced Training Kits for almost all of of its Exams.&#xA;Various third party sites also sell sample test papers. You may google them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Mostly the exams are easy if you have experience of 2-3 years in development using .Net technologies.&lt;/em&gt; You may start here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/mspress/books/9469.aspx&quot; rel=&quot;nofollow&quot;&gt;MCTS Self-Paced Training Kit (Exam 70-536): Microsoft® .NET Framework 2.0 Foundation&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;&lt;strong&gt;Difficult Level between each&lt;/strong&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Not all of them are strictly related to one another except MCP, MTS, MCPD and MCM. They are not hard at all if you relevant experience. If you dont i suggest that you go through the relevant &lt;strong&gt;Self-Paced Training kit&lt;/strong&gt; from Microsoft.&lt;/p&gt;&#xA;" OwnerUserId="11205" LastEditorUserId="11205" LastEditorDisplayName="" LastEditDate="2010-12-24T08:57:49.817" LastActivityDate="2010-12-24T08:57:49.817" CommentCount="2" />
  <row Id="29742" PostTypeId="1" AcceptedAnswerId="29768" CreationDate="2010-12-24T08:43:13.120" Score="5" ViewCount="218" Body="&lt;p&gt;I am a Junior developer, just landing in a job after completing my Masters.  I'm not clear on what positions or roles I could possibly be in after five years?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So My Question is,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What kind of positions can an Entry level programmer like me seek in 5 years?&lt;/p&gt;&#xA;" OwnerUserId="7452" LastEditorUserId="1842" LastEditorDisplayName="" LastEditDate="2010-12-24T09:51:23.713" LastActivityDate="2010-12-24T11:50:13.343" Title="What kind of positions could a beginning developer expect to qualify for in five years?" Tags="&lt;career&gt;" AnswerCount="4" CommentCount="4" />
  <row Id="29743" PostTypeId="1" CreationDate="2010-12-24T08:47:32.387" Score="6" ViewCount="550" Body="&lt;p&gt;I'm coming from PHP and Python background with little knowledge of C, I have done many web based application now I'm thinking of Desktop application for windows platform.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A friend told me to go for Delphi and others are saying C# is the best, well, what I'm looking for is&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Simplicity&lt;/li&gt;&#xA;&lt;li&gt;Productivity&lt;/li&gt;&#xA;&lt;li&gt;Good API documentation&lt;/li&gt;&#xA;&lt;li&gt;Speed&lt;/li&gt;&#xA;&lt;li&gt;Drag and Drop&lt;/li&gt;&#xA;&lt;li&gt;Multi threading &amp;amp; Good Network API&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="11565" LastEditorUserId="935" LastEditorDisplayName="" LastEditDate="2010-12-24T12:36:25.163" LastActivityDate="2010-12-24T13:36:01.593" Title="Delphi vs C# for GUI programming" Tags="&lt;c#&gt;&lt;delphi&gt;" AnswerCount="3" />
  <row Id="29744" PostTypeId="2" ParentId="29743" CreationDate="2010-12-24T08:50:08.730" Score="2" ViewCount="" Body="&lt;p&gt;C# generally is going to have a larger user base, more development in the future, and the tools for RAD development through Visual Studio are unbelievable.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The syntax will be similar to that you used in PHP and C.&lt;/li&gt;&#xA;&lt;li&gt;Visual Studio with its tools and IntelliSense is extremely productive.&lt;/li&gt;&#xA;&lt;li&gt;MSDN&lt;/li&gt;&#xA;&lt;li&gt;Again, VS tools + Intellisense, but speed really comes from a familiarity of your language and its features.&lt;/li&gt;&#xA;&lt;li&gt;VS designer for WinForms, WPF.&lt;/li&gt;&#xA;&lt;li&gt;System.Threading and System.Net&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I do not have much experience with Delphi, and I am just speaking about my experiences with C# in general.  Where I work, I have extremely tight deadlines envisioned by non-programmers, and I am able to pump out line of business desktop applications extremely fast.  In the last three weeks, I went from specification to deployment on two winforms LOB applications.  The productivity for GUI development in C# with VS is just crazy.&lt;/p&gt;&#xA;" OwnerUserId="11099" LastEditorUserId="11099" LastEditorDisplayName="" LastEditDate="2010-12-24T08:59:28.830" LastActivityDate="2010-12-24T08:59:28.830" CommentCount="3" />
  <row Id="29745" PostTypeId="2" ParentId="29601" CreationDate="2010-12-24T08:52:02.677" Score="3" ViewCount="" Body="&lt;p&gt;My guess is that you're referring to &lt;a href=&quot;http://www.randsinrepose.com/archives/2007/01/03/ninety_days.html&quot; rel=&quot;nofollow&quot;&gt;this post&lt;/a&gt; on the &lt;a href=&quot;http://www.randsinrepose.com/&quot; rel=&quot;nofollow&quot;&gt;Rands In Repose&lt;/a&gt; blog.&lt;/p&gt;&#xA;" OwnerUserId="9564" LastActivityDate="2010-12-24T08:52:02.677" />
  <row Id="29746" PostTypeId="2" ParentId="1483" CreationDate="2010-12-24T08:53:07.303" Score="0" ViewCount="" Body="&lt;p&gt;I'm a Chinese and we write code in English while we write the comments in Chinese.&lt;/p&gt;&#xA;" OwnerUserId="11562" LastActivityDate="2010-12-24T08:53:07.303" CommunityOwnedDate="2010-12-24T08:53:07.303" />
  <row Id="29747" PostTypeId="2" ParentId="29742" CreationDate="2010-12-24T08:54:02.057" Score="4" ViewCount="" Body="&lt;p&gt;In 5 years you can become a solid programmer with aspiration to seniority if you spend the time wise.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-24T08:54:02.057" CommentCount="1" />
  <row Id="29748" PostTypeId="2" ParentId="29725" CreationDate="2010-12-24T09:03:04.797" Score="1" ViewCount="" Body="&lt;p&gt;For Java:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Extremely innovative community&#xA;pushing the boundary on what is&#xA;possible with 3rd-party libraries and&#xA;frameworks &lt;/li&gt;&#xA;&lt;li&gt;Android and Java ME = 2-0&#xA;on the mobile platform (Windows Phone&#xA;7 is not yet an option) &lt;/li&gt;&#xA;&lt;li&gt;&quot;Openness&quot;&#xA;(although this is under threat from&#xA;Oracle) &lt;/li&gt;&#xA;&lt;li&gt;Strong backwards&#xA;compatibility means that legacy code&#xA;will be out there basically forever&lt;/li&gt;&#xA;&lt;li&gt;Greater range of developer tools&lt;/li&gt;&#xA;&lt;li&gt;Free&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For C#: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Less obsession about backwards compatibility means that it's easier for MS to add new features and probably more fun to work with for developers&lt;/li&gt;&#xA;&lt;li&gt;Corollary to the above: ahead of Java in the core language features&lt;/li&gt;&#xA;&lt;li&gt;Way ahead on the desktop front (if you like Windows).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If I were starting my career now, I would probably go for C#, but it's close. Knowing what I do now though, I would be careful about sticking to anything for too long. You may find yourself in a position where you can't switch to whatever the new hotness is because you've spent too much time mucking about with the languages of the 1990s and 2000s. It could well be that whatever the next big corporate language is has already been invented, and you might wake up one morning and find yourself ten years behind.&lt;/p&gt;&#xA;" OwnerUserId="5826" LastEditorUserId="5826" LastEditorDisplayName="" LastEditDate="2010-12-24T09:15:09.097" LastActivityDate="2010-12-24T09:15:09.097" CommentCount="1" />
  <row Id="29749" PostTypeId="2" ParentId="29725" CreationDate="2010-12-24T09:09:06.130" Score="-1" ViewCount="" Body="&lt;p&gt;I am just being plain straight-&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Go for C#&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;and you will not regret IMHO.&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-12-24T09:09:06.130" CommentCount="4" />
  <row Id="29750" PostTypeId="2" ParentId="29720" CreationDate="2010-12-24T09:14:51.113" Score="0" ViewCount="" Body="&lt;p&gt;First off, I'm biased, python is the greatest imperative language ever designed and if you don't agree, you haven't used it enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got into web development through Django and I've found Django is perfect for writing the kinds of sites it was designed for - publishing sites. If you want to write Yet More Blogging Software™, or you're starting out and writing something fairly simple you cannot beat it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, ultimately it is inflexible. I've found the templates, orm, forms and authentication system all to be inflexible. The other problem is that because it is so monolithic, it is difficult to just substitute in more suited components.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I'd suggest against Django, but that doesn't mean you should give up on MVC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did look a little at the other python frameworks and found there weren't any that won me over. So in order to do web development, I've actually been rolling my own framework, it's easy to find good components in pypi, but I wouldn't suggest this either, it's a lot of work. In the future when it's more polished, I'm going to open-source it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But for now, I'm not sure I can think of anything I can really recommend.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-24T09:14:51.113" />
  <row Id="29751" PostTypeId="2" ParentId="1745" CreationDate="2010-12-24T09:18:39.813" Score="1" ViewCount="" Body="&lt;p&gt;That writing software is actually about writing code.&lt;/p&gt;&#xA;" OwnerUserId="11342" LastActivityDate="2010-12-24T09:18:39.813" CommunityOwnedDate="2010-12-24T09:18:39.813" CommentCount="1" />
  <row Id="29752" PostTypeId="2" ParentId="10462" CreationDate="2010-12-24T09:35:33.813" Score="1" ViewCount="" Body="&lt;p&gt;You are right that the GUIs of Hardware tools today are really bad compared to software tools. Why? Two reasons: first there are a lot more software engineers than hardware design engineers (say a hundred to one). If you are going to build a development tool and make money from it, your better guess is to aim for software tools.&#xA;Second, if software people don't like the software they use, they just build new software to build better software. (are you still with me?) They have the means, motive and opportunity to build better software tools, and so they do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now for a solution: having lived between the software and the hardware world, I have noticed the same thing you have. I founded a company, Sigasi, and usability is key to us. Established companies may or may not shift their attention to user-centric software, but some of the younger companies are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Philippe Faes&#xA;&lt;a href=&quot;http://www.sigasi.com&quot; rel=&quot;nofollow&quot;&gt;www.sigasi.com&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9238" LastActivityDate="2010-12-24T09:35:33.813" />
  <row Id="29753" PostTypeId="1" AcceptedAnswerId="29755" CreationDate="2010-12-24T09:38:23.620" Score="2" ViewCount="190" Body="&lt;p&gt;I am looking for ways to verify the user in order to reset their passwords. 2 commonly used ones:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Email verification&lt;/li&gt;&#xA;&lt;li&gt;Secret question&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I wonder which will you recommend? I am trying to avoid having to use email at all (users wont need to provide emails, most hosts limit emails sent). But Secret Question alone seems alittle unsecure. What do you think?&lt;/p&gt;&#xA;" OwnerUserId="526" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-24T14:16:22.870" LastActivityDate="2010-12-24T14:17:45.193" Title="What type of Password Reset/Forgot Password (verification) mechanism would you recommend" Tags="&lt;recommendations&gt;&lt;passwords&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="29754" PostTypeId="2" ParentId="29753" CreationDate="2010-12-24T09:41:47.743" Score="5" ViewCount="" Body="&lt;p&gt;For Earth sake, do not use secret questions. In a week I usually have no idea what I could have answered there less in a year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Email verification will do just fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And never send the password in plain text per email. Never even store the password, store a hash of it.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-24T09:41:47.743" CommentCount="1" />
  <row Id="29755" PostTypeId="2" ParentId="29753" CreationDate="2010-12-24T09:45:37.177" Score="6" ViewCount="" Body="&lt;p&gt;Personally, secret questions annoy me a lot. The predefined questions are either so easy, that someone could simply google and/or guess the answer. Or the question are so obscure, that I don't know the right answer and give a fake one (which leads to problems if you really try to recover your password)...really I can't remember the name of my teacher in 1st grade!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Worse, if you let the users defined there own question and answer they will do really, really dumb stuff (like putting the password in the question!).&lt;/p&gt;&#xA;" OwnerUserId="1402" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-24T14:17:45.193" LastActivityDate="2010-12-24T14:17:45.193" />
  <row Id="29756" PostTypeId="2" ParentId="29753" CreationDate="2010-12-24T09:50:48.013" Score="0" ViewCount="" Body="&lt;p&gt;Use email verification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Secret Question approach has multiple problems.&lt;br&gt;&#xA;I may have forgotten the answer&lt;br&gt;&#xA;I would have spelled the answer differently (with a leading upper case word, and that programmer would have forgotten a &lt;code&gt;equalsIgnorecase&lt;/code&gt;)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The actual problem is that the user forgot the password. And the secret question approach wants him to remember 4 other things since he forgot something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many users end up taking a screenshot of the question answer screen for future reference - the very purpose of the password is lost.&lt;/p&gt;&#xA;" OwnerUserId="2902" LastActivityDate="2010-12-24T09:50:48.013" />
  <row Id="29757" PostTypeId="2" ParentId="29725" CreationDate="2010-12-24T09:51:18.930" Score="0" ViewCount="" Body="&lt;p&gt;It depends where you are now, but to me it's a matter of personal taste.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started my career 4 years ago, and I had the opportunity to do both Java and C#, and as of now I spent equal time on each. My personal choice lies with C# as I'm more generally interested in the .NET world as a whole. I don't know why, it's a guts feeling I have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a lot more than just the programming language itself, there is all the community and all the products that revolves around the platform. If you try both (and actually work with both), you will get invaluable experience that can be leveraged later as a great asset (I crossed a lot of people that only did .NET or only did Java). Doing both will lead you to a position where you know what you talk about and give you a lot of insight if you have to make them work together at some point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my advice, based on what I did, is to try both and see which one you prefer. Don't base you choice on the current market.&lt;/p&gt;&#xA;" OwnerUserId="5452" LastActivityDate="2010-12-24T09:51:18.930" CommentCount="4" />
  <row Id="29758" PostTypeId="2" ParentId="27564" CreationDate="2010-12-24T09:57:48.297" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;lexical scope for lambdas (using another keyword then function)&#xA;(or block syntax to create an proper lexical scope?)&lt;/li&gt;&#xA;&lt;li&gt;make lambdas in object properties callable&lt;/li&gt;&#xA;&lt;li&gt;always imply semicolon with lambda closing braces&lt;/li&gt;&#xA;&lt;li&gt;fucking add use() for normal functions!!&lt;/li&gt;&#xA;&lt;li&gt;traits&lt;/li&gt;&#xA;&lt;li&gt;ability to intercept instanceof / is_a()&lt;/li&gt;&#xA;&lt;li&gt;generators&lt;/li&gt;&#xA;&lt;li&gt;open up Exception for runtime modification&lt;/li&gt;&#xA;&lt;li&gt;a function to check against interfaces without implementing it&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11569" LastEditorUserId="11569" LastEditorDisplayName="" LastEditDate="2010-12-24T15:45:18.717" LastActivityDate="2010-12-24T15:45:18.717" CommunityOwnedDate="2010-12-24T09:57:48.297" />
  <row Id="29759" PostTypeId="2" ParentId="29717" CreationDate="2010-12-24T10:02:40.087" Score="4" ViewCount="" Body="&lt;p&gt;Not any time soon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently we are witnessing a wave of &quot;NoSQL&quot; storages (key-value, document oriented etc), but they are not, generally speaking, an alternative to traditional, relational based databases, but rather a complementary. In other words, right tool for the right job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SQL is, although dated, ugly and non-standardized, still unsurpassed in efficiency for relational data retrieval. Or, it might be, as lot of ORMs offer some syntax that eventually translates to SQL, but not enough to be replaced entirely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for mobile development, I don't have much experience, I did some minor development on Android and SQLite there is really fine for storing data, offering sufficient subset of full blown SQL we use on bigger databases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, knowing that SQL is ubiquitous, efficient, and relatively simple to learn and use, I don't see it disappearing any time soon.&lt;/p&gt;&#xA;" OwnerUserId="7968" LastEditorUserId="7968" LastEditorDisplayName="" LastEditDate="2010-12-24T10:20:41.527" LastActivityDate="2010-12-24T10:20:41.527" />
  <row Id="29760" PostTypeId="2" ParentId="29725" CreationDate="2010-12-24T10:34:30.310" Score="2" ViewCount="" Body="&lt;p&gt;It is a difficult choice. My criteria would be:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C#&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Both the language and core framework regularly updated and enhanced&lt;/li&gt;&#xA;&lt;li&gt;Core language more advanced&lt;/li&gt;&#xA;&lt;li&gt;Has the weight of Microsoft behind it&lt;/li&gt;&#xA;&lt;li&gt;Very strong for windows desktop development&lt;/li&gt;&#xA;&lt;li&gt;Good libraries for distributed applications&lt;/li&gt;&#xA;&lt;li&gt;Everyone uses the same basic tools (Visual Studio + .Net framework)&lt;/li&gt;&#xA;&lt;li&gt;Easier migration path from VB6 (via VB.Net)&lt;/li&gt;&#xA;&lt;li&gt;I get the impression that the market for C# skills is growing faster than that for Java (but I might be mistaken, especially as Android is gaining so much ground).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Java:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;More stable core platform&lt;/li&gt;&#xA;&lt;li&gt;Lower cost development tools (free!)&lt;/li&gt;&#xA;&lt;li&gt;Lower cost hosting for web applications (you don't need Windows servers)&lt;/li&gt;&#xA;&lt;li&gt;Wider choice of IDE and other tools&lt;/li&gt;&#xA;&lt;li&gt;Better cross-platform support&lt;/li&gt;&#xA;&lt;li&gt;Community quicker to embrace new techniques and methodologies&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For my money, I'd choose C#. I must admit that I'm biased, however: I have limited experience with Java, have have been .Net developer for some years, and I'm not really bothered about targeting non-Microsoft platforms (because my employer isn't).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day, however, I don't really think that Java development and C# development are that different. Whichever you choose, I am sure you will have a long and lucrative career.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-12-24T10:34:30.310" CommentCount="1" />
  <row Id="29761" PostTypeId="2" ParentId="29753" CreationDate="2010-12-24T10:40:12.753" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Email verification is good enough for most applications&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may not be perfect but most people expect and accept this kind of approach. Overall, a good process is as follows&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;User clicks &quot;Forgot password&quot;&lt;/li&gt;&#xA;&lt;li&gt;System generates a one-time token (UUID), stores it in the database marking it as new&lt;/li&gt;&#xA;&lt;li&gt;Email containing a HTTPS password reset link with the UUID sent to user email account. This is the weakness because it assumes that the user is authorised by their access to their email account, not the secret information you previously shared. &lt;/li&gt;&#xA;&lt;li&gt;User clicks the link and the system verifies that the UUID is unused &lt;/li&gt;&#xA;&lt;li&gt;Assuming all is well, the user is taken through the password reset process, which first marks the UUID as used and then accepts password updates.&lt;/li&gt;&#xA;&lt;li&gt;The password is salted and hashed and then stored in the database. The plaintext version of the password is never persisted. &lt;em&gt;Ever.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Valuable data?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the data you are trying to protect is much more valuable (tax returns, bank details etc) then you need a stricter implicit authorisation process (see step 3 previously). This is usually in the form of a letter containing the UUID (usually hidden within a tamperproof envelope). The user is then expected to activate the password reset process and manually enter the UUID.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Extreme data&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, if the above is not enough then you're into the realms of identity management. You'll be breaking out the proof of address, driving license, passport, birth certificate, personal references and all the other frippery necessary to establish beyond reasonable doubt that the user is who they say they are. And then you proceed to step 5.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-24T10:40:12.753" />
  <row Id="29762" PostTypeId="2" ParentId="29717" CreationDate="2010-12-24T10:48:29.330" Score="2" ViewCount="" Body="&lt;p&gt;I would be great, if MUMPS-style database should come back somehow. It's a pure btree optimized for speed and storage space. It was used in the age when a 20 MHz machine were run with 1 MByte of memory and 20 Mbyte of disk for 35 users (using serial terminals).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The M database is an unbalanced tree, where programs can:&#xA;- set a node (in any point, even under non-existing node, parents will be created too),&#xA;- read a node,&#xA;- get info from a node (has data, has child),&#xA;- get next siebling of an index (it's used to get first and check for last).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, other words, it's a key-value database with node hierarchy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's all. Object Model can be implemented with that kind of structure, if we need to tag it with trendy buzzwords.&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-12-24T10:48:29.330" />
  <row Id="29763" PostTypeId="2" ParentId="29743" CreationDate="2010-12-24T10:49:57.347" Score="3" ViewCount="" Body="&lt;p&gt;When I was at uni, I was taught programming with Delphi. I am a bit rusty, but I am currently reading through a lot of Delphi code to port it to a C# application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I much prefer the OO with functional leanings of C# over the procedural with OO leanings of Delphi. You should consider how you prefer to code when choosing between them. I don't think there is much in it when it comes to simplicity - just what you find easier. The same goes for productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of RAD (rapid application development) there is not much between winforms and Delphi GUI design. They remind me of each other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;WPF on the other hand is something I prefer over both for its declarative style.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think there is much difference between the quality and coverage of vendor provided documentation for either C# or Delphi. I think that you will find more non-vendor information about C#, but that could just be because I've not really searched for much in the way of Delphi.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've not had to do any threaded programming with Delphi, and any networking I did was years ago and I can't remember.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The .NET libraries for parallel processing, events and other threading work are good. So you won't be missing out there. There is a great deal of support when it comes to networking, so again highly recommended.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall I would go with C#/.NET. This is partly because of WPF, but also I prefer the code I write in C#. As far as I'm aware delphi doesn't have anything like Linq, which I find invaluable.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2010-12-24T10:49:57.347" CommentCount="9" />
  <row Id="29764" PostTypeId="1" AcceptedAnswerId="29772" CreationDate="2010-12-24T11:06:04.940" Score="2" ViewCount="299" Body="&lt;p&gt;What do you think are the most basic concepts a programmer should focus on, independent of any programming terms? (&quot;programming terms&quot; in the sense of language/database/design/etc.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT : It is said that for OOP based development, programmer needs to be aware of Basics of OOPs ! I just want to know, what are the basics concepts of whole world of programming ! Not specific to &quot;OOPs&quot; !&lt;/p&gt;&#xA;&#xA;&lt;p&gt;eg. How variable stored within memory &amp;amp; this thing is different then the types of variable...!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Meaning, to know programming without knowledge of programming !!!&lt;/p&gt;&#xA;" OwnerUserId="11020" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-12-24T15:04:26.523" LastActivityDate="2010-12-24T15:24:31.980" ClosedDate="2010-12-24T16:37:53.677" Title="What are the Basic Concepts of Programming?" Tags="&lt;terminology&gt;&lt;intro-to-programming&gt;" AnswerCount="9" CommentCount="3" FavoriteCount="1" />
  <row Id="29765" PostTypeId="2" ParentId="29725" CreationDate="2010-12-24T11:10:08.280" Score="1" ViewCount="" Body="&lt;p&gt;The first thing you need to learn when needing to make these kind of decisions, is to actually investigate things for yourself, instead of just relying on what other people say.  The reason for this is naturally because this is what you are expected to do in your future professional life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Saying &quot;Java is slow compared to X&quot; literally begs for you actually controlling it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But to give you an idea of what you basically need to choose between:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;C# is primarily used for server side and desktop application on Windows.&lt;/li&gt;&#xA;&lt;li&gt;Java is primarily used for server side applications where platform independence is important.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This is the really major differences.  Except for those C# and Java are quite similar.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-24T11:10:08.280" CommentCount="7" />
  <row Id="29766" PostTypeId="2" ParentId="29742" CreationDate="2010-12-24T11:10:37.063" Score="1" ViewCount="" Body="&lt;p&gt;It very much depends on you and what sort of company you are in. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you stay as a developer then you should have built a solid body of experience across most areas of software development, i.e. application development, bug fixing, specification writing etc. At this point you are probably going to be a useful member of a development team who is pushing towards a senior role.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may be though that you discover that you have a natural talent for other areas within IT and you can strike out into hardware, analysis or project management. This can be particularly true if you work for a smaller company where there is a need for people to be able to take on multiple roles or if you work for an organisations that likes to give people responsibility at an early stage of their career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, at this early stage I'd suggest that you should probably not worry too much about whats going to happen in five years time and just remember to make sure you have fun and enjoy what you've got to do today!&lt;/p&gt;&#xA;" OwnerUserId="11570" LastActivityDate="2010-12-24T11:10:37.063" />
  <row Id="29767" PostTypeId="2" ParentId="29742" CreationDate="2010-12-24T11:13:04.140" Score="0" ViewCount="" Body="&lt;p&gt;Have a fine fight with Technology... No way how much more you can grow up... But, have an enough confidence with the development... May you will be a good researcher with a specific technology OR that you will be in management... Depending on your interest !&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be Master of Something, but Be Aware of Everything !!!! Henceforth,&#xA;No need to follow the Way, the way will follow You !!!!&lt;/p&gt;&#xA;" OwnerUserId="11020" LastEditorUserId="11020" LastEditorDisplayName="" LastEditDate="2010-12-24T11:50:13.343" LastActivityDate="2010-12-24T11:50:13.343" CommentCount="2" />
  <row Id="29768" PostTypeId="2" ParentId="29742" CreationDate="2010-12-24T11:24:03.417" Score="8" ViewCount="" Body="&lt;p&gt;It depends how much effort you put into your studies &lt;strong&gt;after&lt;/strong&gt; graduating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I graduated 5.5 years ago and I have studied more since then than I did at university. I've read a lots of books on software development, process management and people management. I also follow a large number of blogs, participant in discussions on twitter, mailing lists, Stack Overflow, reddit and now here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say I spent the first 2-3 years getting a solid grounding in software development as a whole. I have deliberately focused on language agnostic books, you should generally get a good enough education in your working language from working in it, your outside studies should focus on a more rounded world view. During this time I taught myself and then my colleagues test-driven development, set up continuous integration and all that good stuff. Do not forget to pass your knowledge on, it not only makes your company improve it helps you internalise what you've learnt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After these largely technology based studies I started to take more of an interest in process and managing as I wanted to move upwards and wanted to hit the ground running.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you get in the habit of continuing your studies, it's quite easy. You get to chose the subject matter depending on either your interests or your aspirations so you always have a motivation to read and absorb the text.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm now in a position of chief engineer reporting to the technical director and overseeing the efforts of the development teams. I know many people with much more experience than me that haven't got further than being standard team member, these people have rarely studied since they graduated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also recommend looking out for your career stagnating. I started off in a small company and value my time learning the ropes there. However, there was not much of a path for progression as all the required positions were filled once I'd become a senior developer. Because of this I changed to my current company where I had the scope to achieve my current position.&lt;/p&gt;&#xA;" OwnerUserId="10449" LastActivityDate="2010-12-24T11:24:03.417" CommentCount="1" />
  <row Id="29769" PostTypeId="2" ParentId="1785" CreationDate="2010-12-24T11:38:31.213" Score="0" ViewCount="" Body="&lt;p&gt;Be &lt;em&gt;Master&lt;/em&gt; of &lt;strong&gt;Something&lt;/strong&gt;, but&#xA;Be &lt;em&gt;Aware&lt;/em&gt; of &lt;strong&gt;Everything&lt;/strong&gt; !!!!&lt;/p&gt;&#xA;" OwnerUserId="11020" LastEditorUserId="11020" LastEditorDisplayName="" LastEditDate="2010-12-24T11:47:47.307" LastActivityDate="2010-12-24T11:47:47.307" CommunityOwnedDate="2010-12-24T11:38:31.213" />
  <row Id="29770" PostTypeId="2" ParentId="29722" CreationDate="2010-12-24T11:39:30.177" Score="15" ViewCount="" Body="&lt;p&gt;Bjarne Stroustrup wrote a book recently that's devoted to teaching C++.  It emphasizes STL's algorithms and data-structures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www2.research.att.com/~bs/programming.html&quot; rel=&quot;nofollow&quot;&gt;http://www2.research.att.com/~bs/programming.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-12-24T11:39:30.177" CommentCount="1" />
  <row Id="29771" PostTypeId="2" ParentId="29720" CreationDate="2010-12-24T11:42:06.680" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Coding too soon?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you're just starting out with an idea, it is best to not spend much time coding. @Bitoff is absolutely right in his comments guiding you towards just putting together a prototype that shows how the different user stories work. How do students pick up new work? How does a teacher get rewarded for their contributions? How do I manage password resets? How do I manage online payments? And so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This kind of design can be done using pencil and paper sketches that show how a user (either a teacher, student or admin) works their way through the system. You don't need a line of code. You don't need a framework. You just need to convince your significant other that you're not wasting your time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How much control do you want?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now comes the decision point. You need to decide how much control over the web application you want: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Complete control. You and your team wrote it all (apart from the open source libraries - Spring, Hibernate etc). &lt;/li&gt;&#xA;&lt;li&gt;Configuration control. You and your team obtained a framework (Django, Joomla, Silverlight, Flex, etc) and configured it to meet your needs, mostly, with some clunkiness but, hey?&lt;/li&gt;&#xA;&lt;li&gt;No control. You've outsourced the whole technical development side to a software house and they did all the technical stuff leaving you to concentrate on the business side.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Given that this is a programmers forum, I'll assume you go for option 1. I know I would, but that's because I have a lot of experience with web application development and I can put something together very rapidly. However, there are compelling business arguments to go for options 2 or 3 depending on how you see your business plan developing and your own desire for technical ability. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Create the business and persistence layers first&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the point where you are happy that you have a design that works, then you should be able to knock up a simple prototype quickly because you've already thought through the difficulties. This implies that you are coding in a language with which you are familiar. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At their core, most languages allow for very rapid development, and it's only when the web tier is introduced that a great dump of complexity occurs. So keep it simple: create an integration test (a unit test that interacts with many entities) that demonstrates a simple user story and build out from there. Your code will follow your integration test and you will see how the different entities start to interact. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Design it all to be stateless.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means that you don't hold anything over to use next time a function is called. Each time you call a function it only knows about what you have passed into it and nothing else. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over time you will build up a suite of integration tests and will have a complete business domain and perhaps as far as a persistence domain as well. You will have a database model that works efficiently for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will also have sharpened your skills in your chosen language enough so that you are prepared for the onslaught that is the web tier. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Build the web tier&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you start building up the web tier, you will thank your lucky stars that you designed for stateless operation, because it should all just click together nicely. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your web tier will probably work under a Model-View-Controller pattern so that your Controller receives the web request, processes it by handing over to your business domain in some manner, and then receives back a Model containing data that is then presented as XHTML, JSON, XML or something by the View in the response.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this point you are in the realms of user experience design, and so you need to make sure that you have some input from a professional graphic designer. They will help you to rapidly overcome front end design issues that could put people off from trying your site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Work with a language you like and have experience in&lt;/li&gt;&#xA;&lt;li&gt;Choose free and open source frameworks and development tools to avoid a) large costs later should you scale up and b) re-inventing the wheel&lt;/li&gt;&#xA;&lt;li&gt;Build your business and persistence tiers first&lt;/li&gt;&#xA;&lt;li&gt;Sketch out your web front end and get a professional to do it right&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Best of luck with your project.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-24T11:42:06.680" />
  <row Id="29772" PostTypeId="2" ParentId="29764" CreationDate="2010-12-24T11:43:46.747" Score="7" ViewCount="" Body="&lt;p&gt;Every programmer must understand boolean logic and control structures, such as for loops, while loops, if/thens, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are the simplest aspects of most programming languages, but the ones that are used to build every thing else. &lt;/p&gt;&#xA;" OwnerUserId="7446" LastActivityDate="2010-12-24T11:43:46.747" />
  <row Id="29773" PostTypeId="2" ParentId="29764" CreationDate="2010-12-24T11:47:38.530" Score="1" ViewCount="" Body="&lt;p&gt;Algorithms, logic, syntax of the language which we use.&lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2010-12-24T11:47:38.530" CommentCount="0" />
  <row Id="29774" PostTypeId="2" ParentId="29764" CreationDate="2010-12-24T11:47:54.037" Score="3" ViewCount="" Body="&lt;p&gt;The concept of variables, assigning values to them, comparing them and so on would be right up there I'd suggest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without that control structures don't work, meaningful logic won't be possible (I guess you could compare TRUE with TRUE) and so on.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-24T11:47:54.037" CommentCount="3" />
  <row Id="29775" PostTypeId="2" ParentId="29764" CreationDate="2010-12-24T11:51:58.133" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Understanding Assignation&lt;/li&gt;&#xA;&lt;li&gt;Clear Expression&lt;/li&gt;&#xA;&lt;li&gt;Understanding Consequences&lt;/li&gt;&#xA;&lt;li&gt;Complexity Management&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-12-24T11:51:58.133" />
  <row Id="29776" PostTypeId="2" ParentId="29764" CreationDate="2010-12-24T11:54:52.483" Score="1" ViewCount="" Body="&lt;p&gt;I had this discussion a while back and came to the conclusion there are five things that a programer needs to learn to program in any language:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Input (user input, reading a file)&lt;/li&gt;&#xA;&lt;li&gt;Loops (&lt;code&gt;for...next&lt;/code&gt;, &lt;code&gt;while...wend&lt;/code&gt;,&#xA;&lt;code&gt;do...loop&lt;/code&gt;, &lt;code&gt;repeat with...end repeat&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Conditionals (&lt;code&gt;if...else...end if&lt;/code&gt;,&#xA;&lt;code&gt;select case...end select&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Output (on-screen logging, writing to a file)&lt;/li&gt;&#xA;&lt;li&gt;Subroutines/Functions/Methods with arguments and returned values&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;One could add in the ability to &quot;create, manage, and delete objects&quot;, but not all languages are OO so that would be optional. Either way, whenever I need to learn a new language, I focus on those five things, and I find that I can generally pick it up fairly quickly and get on with my day.&lt;/p&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2010-12-24T11:54:52.483" CommentCount="2" />
  <row Id="29777" PostTypeId="1" AcceptedAnswerId="29778" CreationDate="2010-12-24T11:57:40.797" Score="1" ViewCount="99" Body="&lt;p&gt;It's Christmas eve here, and we're not very busy, but I can't head home yet. Any suggestions what I can do to polish the (Java, Spring) codebase ? Something that's simple and easy and not too taxing on the holiday head.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-24T14:08:06.350" ClosedDate="2010-12-25T17:00:26.670" Title="polishing code for the holidays" Tags="&lt;java&gt;&lt;spring&gt;&lt;clean-code&gt;" AnswerCount="3" />
  <row Id="29778" PostTypeId="2" ParentId="29777" CreationDate="2010-12-24T12:04:27.393" Score="4" ViewCount="" Body="&lt;p&gt;Well, over here we're doing our bit by checking the news blogs, eating, drinking and listening to music. And my co-worker is alseep under the desk (no, really).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I wouldn't worry too much. To be honest, it's almost certainly actually too dangerous for you to be doing anything at all with code right now, so enjoy the enforced code-freeze.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Merry Christmas!&lt;/p&gt;&#xA;" OwnerUserId="550" LastActivityDate="2010-12-24T12:04:27.393" CommentCount="1" />
  <row Id="29779" PostTypeId="2" ParentId="29671" CreationDate="2010-12-24T12:07:46.937" Score="-1" ViewCount="" Body="&lt;p&gt;Delete old code and just &lt;em&gt;rewrite&lt;/em&gt; it.&lt;/p&gt;&#xA;" OwnerUserId="11313" LastActivityDate="2010-12-24T12:07:46.937" />
  <row Id="29780" PostTypeId="2" ParentId="29777" CreationDate="2010-12-24T12:17:10.600" Score="0" ViewCount="" Body="&lt;p&gt;Head into the bug database and pick off a few of the simpler low priority things that no-one ever gets round to.  I'm assuming that you (like most people) never quite get round to the Joel test rule where all bugs are fixed before you write new code and have a backlog of &quot;unimportant&quot; things.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-24T12:17:10.600" />
  <row Id="29781" PostTypeId="2" ParentId="29764" CreationDate="2010-12-24T12:19:30.507" Score="3" ViewCount="" Body="&lt;p&gt;I would say that concepts are language dependent. Things that are useful for imperative languages may not be applicable to functional programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I think the basic concept is problem solving, and solve them efficiently in a language of your choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To illustrate my point, this is a Quick sort implementation in Standard ML&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;(*Quick sort in SML. *) &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;(*AUTHOR: Bo Tian (bt288 at cam.ac.uk) *) &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;(*LICENSE: Creative Commons Attribution 3.0 Unported *)  &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;(* &lt;a href=&quot;http://creativecommons.org/licenses/by/3.0/&quot; rel=&quot;nofollow&quot;&gt;http://creativecommons.org/licenses/by/3.0/&lt;/a&gt;*)&lt;br&gt;&#xA;  fun qsort [] = []&lt;br&gt;&#xA;  |   qsort [x] = [x]&lt;br&gt;&#xA;  |   qsort (x::xs) =&lt;br&gt;&#xA;          let fun qs (a, left, right, [])= qsort(left) @ a::qsort(right)&lt;br&gt;&#xA;              |   qs (a, left, right, y::ys) =  &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;               if (y&amp;lt;a) then qs(a, y::left, right, ys)  &#xA;               else qs(a, left, y::right, ys);  &#xA;    in qs(x,[],[],xs)  &#xA;    end;  &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And this is a sample of Quick sort in C++&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;void quickSort(int arr[], int left,&#xA;  int right) {&#xA;        int i = left, j = right;&#xA;        int tmp;&#xA;        int pivot = arr[(left + right) / 2];&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  /* partition */&#xA;  while (i &amp;lt;= j) {&#xA;        while (arr[i] &amp;lt; pivot)&#xA;              i++;&#xA;        while (arr[j] &amp;gt; pivot)&#xA;              j--;&#xA;        if (i &amp;lt;= j) {&#xA;              tmp = arr[i];&#xA;              arr[i] = arr[j];&#xA;              arr[j] = tmp;&#xA;              i++;&#xA;              j--;&#xA;        }&#xA;  };&#xA;&#xA;  /* recursion */&#xA;  if (left &amp;lt; j)&#xA;        quickSort(arr, left, j);&#xA;  if (i &amp;lt; right)&#xA;        quickSort(arr, i, right); }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's quite difficult to find common features other than the identical algorithm.&lt;/p&gt;&#xA;" OwnerUserId="10961" LastEditorUserId="10961" LastEditorDisplayName="" LastEditDate="2010-12-24T12:26:12.377" LastActivityDate="2010-12-24T12:26:12.377" CommentCount="2" />
  <row Id="29782" PostTypeId="1" AcceptedAnswerId="29810" CreationDate="2010-12-24T12:21:52.190" Score="0" ViewCount="123" Body="&lt;p&gt;I am novice developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While development is going on, we come across different error issues. However for the novice of programming, it is always hard to directly understand them &amp;amp; solve them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe, errors are generally related to typing error OR data structure error OR run-time memory error - which is related to hardware OR else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How to elaborate and solve those errors very fast ?&lt;/p&gt;&#xA;" OwnerUserId="11020" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-24T14:10:25.250" LastActivityDate="2010-12-24T19:08:17.530" Title="How to Solve an Error ?" Tags="&lt;debugging&gt;&lt;errors&gt;" AnswerCount="6" CommentCount="4" />
  <row Id="29783" PostTypeId="1" CreationDate="2010-12-24T12:33:20.220" Score="4" ViewCount="186" Body="&lt;p&gt;I'm currently studying in the UK, but I'd like to cross the ocean after graduation. Assuming that I get an interview, how would it be conducted?&lt;/p&gt;&#xA;" OwnerUserId="10961" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-24T14:04:31.933" LastActivityDate="2010-12-24T15:09:27.343" Title="How do American tech companies interview overseas applicants?" Tags="&lt;interview&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="29784" PostTypeId="2" ParentId="25600" CreationDate="2010-12-24T12:41:18.563" Score="2" ViewCount="" Body="&lt;h3&gt;using version control&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;SVN is very common, but mercurial is more handsome, powerful and has solid gui support.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;test driven development&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;well, if you do unit testing you're already on the winning side. for tools, it's a matter of choice. testing has to be as easy as possible, thats the reason why i ditched PHPUnit for SimpleTest.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;debugging code&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;with unit tests you will hardly need xdebug. i use xdebug usually for profiling only. (check out KCachegrind btw)&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;use of UML diagrams&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;the biggest problem with everything that reflects code logic is that it is a lot of manual work to keep in sync. you can automate some tasks, but it's not that useful, because you usually wanna use uml before you have anything. the other problem is that diagram tools are much harder to use than pen and paper or a whiteboard. use uml if you have to communicate a problem with multiple developers or if you need an abstraction for yourself. (&quot;dia&quot; is a nice free tool. also mind mapping tools are very handy for brainstorming, some can actually compete with pen and paper.)&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;use of OOP for maintainable, reusable code&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;well, oop works out to some degree. :) &#xA;one good advice: composition &gt; inheritance. inheritance is an powerful tool to reuse on the first sight, but maintenance and loose coupling will suffer for it. second good advice: maintenance &gt; reuse. an abstract system can be very powerful, but also hard to maintain.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;use of frameworks (like Zend Framework for php) for rapid application development&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;RAD is a good thing to get your app out early. but some components - especially ORM - will shoot your feet, at least if it comes to scalability. the major problem here is that you tie your domain logic to work with objects, which becomes very hard to factor out if you need a pure scalable database optimized solution. be aware of that and encourage your developers to utilize the database without high level abstraction layers. database abstraction is a myth, orm is a lie.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;KISS&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;newcomers usually wanna apply all those best practices around, set up coding standards, use all the nice tool chains, whatever. it works out for some developers, but some will run into an mental blockade if things a too strict. unit testing and scm is really a must have, but someone new to unit testing really needs to learn it's value before he loves it. don't overdo, apply practices step by step and see how it works out.&#xA;KISS also boils down to code. sometimes the best way to solve a hard problem, is to solve it wrong. you need a &lt;em&gt;six degrees of separation&lt;/em&gt; algorithm? just choose some friends at random. you can create a complete application around it, with wrong logic. if the customer eventually decides to to ditch it, everyone saved a lot of money.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;agile&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;learn about agile methodologies, extreme programming, scrum, etc. there are many books out there. any book will make your team better, but it's the best to get every teammate into it.&lt;/p&gt;&#xA;" OwnerUserId="11569" LastActivityDate="2010-12-24T12:41:18.563" CommentCount="1" />
  <row Id="29785" PostTypeId="1" AcceptedAnswerId="29798" CreationDate="2010-12-24T12:42:09.870" Score="0" ViewCount="160" Body="&lt;p&gt;Can programming become language-independent? Will we always program in English? Will we ever be able to program in our local languages? Is there any research that addresses the matter? Are there any such developments?&lt;/p&gt;&#xA;" OwnerUserId="11020" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T14:22:07.487" LastActivityDate="2010-12-26T14:22:07.487" Title="The present and future of programming in local languages" Tags="&lt;programming-languages&gt;&lt;languages&gt;" AnswerCount="5" CommentCount="2" />
  <row Id="29787" PostTypeId="2" ParentId="29722" CreationDate="2010-12-24T12:46:19.807" Score="1" ViewCount="" Body="&lt;p&gt;I recently took a 8 lecture course on C/C++, the syllabus is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Introduction to the C language. Background and goals of C. Types and variables. Expressions and statements. Functions. Multiple compilation units. [1 lecture]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Further C concepts. Preprocessor. Pointers and pointer arithmetic. Data structures. Dynamic memory management. Examples. [2 lectures]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Introduction to C++. Goals of C++. Differences between C and C++. References versus pointers. Overloading functions. [1 lecture]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Objects in C++. Classes and structs. Operator overloading. Virtual functions. Multiple inheritance. Virtual base classes. Examples. [2 lectures]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Further C++ concepts. Exceptions. Templates and meta-programming. Java Native Interface (JNI). Examples. [2 lectures]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.cl.cam.ac.uk/teaching/1011/CST/node32.html&quot; rel=&quot;nofollow&quot;&gt;http://www.cl.cam.ac.uk/teaching/1011/CST/node32.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Since the students already took a lesson in C, it would be nice to not repeat the same things (basics, pointers etc.) and teach features of C++ like class, STL, templates.&lt;/p&gt;&#xA;" OwnerUserId="10961" LastActivityDate="2010-12-24T12:46:19.807" CommentCount="3" />
  <row Id="29788" PostTypeId="1" AcceptedAnswerId="29830" CreationDate="2010-12-24T12:53:45.150" Score="12" ViewCount="371" Body="&lt;p&gt;So there is a question about &lt;a href=&quot;http://programmers.stackexchange.com/questions/6395/how-do-you-dive-into-large-code-bases&quot;&gt;understanding code&lt;/a&gt;. Mine is a similar problem. It started when I joined my current org. and like I always do at beginning I tried to get a feel of the code starting from high up and working my way down to details. Only, there is no detail, or to be more precise I have not been able to discern any design to the this &lt;a href=&quot;http://en.wikipedia.org/wiki/Big_ball_of_mud&quot; rel=&quot;nofollow&quot;&gt;big ball of mudness&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Application is riddled with duplicate/unnecessary data, there is no attempt at encapsulation or abstraction  or hierarchy with same code copied in multiple classes/modules for the same functionality (of course this means that the duplicated code is out of sync everywhere). Majority of the code concerns the manipulation of POD style classes entirely obscuring business logic in between, DAOs are horribly mutated.To illustrate following is a typical statement in the code&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;W.X[Y].Z = A.B.C[D]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;To summarize the code is to OO programming, sorry make it any programming, what &lt;a href=&quot;http://en.wikipedia.org/wiki/A_Nightmare_on_Elm_Street_%28franchise%29&quot; rel=&quot;nofollow&quot;&gt;Freddy was/is to teens at Elm street&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I would like to gradually refactor this insanity away, but I for that I must somehow get a hook on the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is, does anyone know of any systematic approach to this situation , or do I have to hack till I get the job done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update: Just to add some additional information. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Ours is a new team so we can't talk to anyone who is familiar.&lt;/li&gt;&#xA;&lt;li&gt;I have switched to a new domain as a result I am not familiar with it.&lt;/li&gt;&#xA;&lt;li&gt;We don't have any direct interaction with the customer.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8073" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T14:21:24.553" LastActivityDate="2010-12-26T14:21:24.553" Title="How do you dive into a big ball of mud?" Tags="&lt;design&gt;&lt;programming-practices&gt;&lt;architecture&gt;&lt;bad-code&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="5" />
  <row Id="29789" PostTypeId="2" ParentId="29722" CreationDate="2010-12-24T12:58:28.087" Score="9" ViewCount="" Body="&lt;p&gt;Start with high level concepts, so the students can make correct, interesting programs in a reasonable amount of time. For example, introduce vectors, iterators and algorithms early on, and defer discussing arrays and pointers until very late in the course. This is exactly the approach taken by Bjarne Stroustrup, the inventor of C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you absolutely should &lt;em&gt;not&lt;/em&gt; do is start with plain C, then go to &quot;C with classes&quot;, and cover the STL in the last lecture. Many books have taken that approach which gives a warped impression of what C++ is.&lt;/p&gt;&#xA;" OwnerUserId="3684" LastActivityDate="2010-12-24T12:58:28.087" CommentCount="2" />
  <row Id="29790" PostTypeId="2" ParentId="29782" CreationDate="2010-12-24T12:58:43.623" Score="2" ViewCount="" Body="&lt;p&gt;A lot, rather &lt;strong&gt;&lt;em&gt;most&lt;/em&gt;&lt;/strong&gt; of what you do as a programmer is debugging. You are either debugging your code or someone else's. As a novice, you don't want to focus on faster. You need to focus on detail, organization, and correctness:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Study the details. Don't just debug, seek to know &lt;em&gt;why&lt;/em&gt; something isn't working.&lt;/li&gt;&#xA;&lt;li&gt;Well-organized code makes maintenance and debugging much easier.&lt;/li&gt;&#xA;&lt;li&gt;Be correct in usage: just throwing code together to save time never does.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Additionally, ask questions...ask, ask, ask. The speed at which you debug is not near as important as your skill at resolving the bug once found. Speed will come over time; however, accuracy should be your primary concern.&lt;/p&gt;&#xA;" OwnerUserId="8031" LastActivityDate="2010-12-24T12:58:43.623" CommentCount="1" />
  <row Id="29791" PostTypeId="2" ParentId="29782" CreationDate="2010-12-24T12:59:57.313" Score="0" ViewCount="" Body="&lt;p&gt;Having an intelligent IDE and learning how to use a debugger, I'd say. Without these basic things, you are probably either hopelessly executing code in your head and seeing if it works, or inserting trace statements all over the place. This can make debugging simple mistakes take forever, when, in a better environment, it would be pointed out to you in glowing red before you even ran the project (or shortly thereafter).&lt;/p&gt;&#xA;" OwnerUserId="54" LastActivityDate="2010-12-24T12:59:57.313" />
  <row Id="29792" PostTypeId="1" AcceptedAnswerId="29805" CreationDate="2010-12-24T13:08:57.900" Score="12" ViewCount="536" Body="&lt;p&gt;Do you think it makes sense to enforce that every member of a team must use the same IDE?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance all engineers that are already on the team use IDE X. Two new engineers come and want to use IDE Y instead because that's what they have been using for several years now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you have any experience with &quot;mixed IDE&quot; teams? If so what is it?&lt;/p&gt;&#xA;" OwnerUserId="11344" LastActivityDate="2010-12-27T15:16:35.603" Title="Should every member of a team use the same IDE?" Tags="&lt;ide&gt;&lt;teamwork&gt;" AnswerCount="11" FavoriteCount="2" />
  <row Id="29793" PostTypeId="2" ParentId="29614" CreationDate="2010-12-24T13:09:37.270" Score="1" ViewCount="" Body="&lt;p&gt;I think &quot;Finally, programming is interesting again!&quot; and search the Internet for tutorials. The last time that happened was when I stumbled upon monads. Many programmers hit a brick wall when they read about monads for the first time, because it is unlike every other concept you have encountered so far as a programmer, especially if you're new to functional programming.&lt;/p&gt;&#xA;" OwnerUserId="3684" LastActivityDate="2010-12-24T13:09:37.270" />
  <row Id="29794" PostTypeId="2" ParentId="29792" CreationDate="2010-12-24T13:13:29.783" Score="0" ViewCount="" Body="&lt;p&gt;Well yes I have some experiecne in that regards being a part of mixed windows/unix &amp;amp; c++/java team. I think this is not an issue provided either everyone is comfortable working with the other IDE or there is never going to be a situation when anyone who is not familiar with IDE Y needs to work on the other guy's (that is the guy with IDE Y) system. &lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-24T13:13:29.783" />
  <row Id="29795" PostTypeId="2" ParentId="29792" CreationDate="2010-12-24T13:16:26.440" Score="0" ViewCount="" Body="&lt;p&gt;If everyone wants to, that's fine, but different people might want to use different editors/IDEs.  I wouldn't really want people to force me to use an editor other than my preferred one if I were working on something big with a team, and I doubt I'm alone.  People may be most happy with the situation if you don't force them to use a particular editor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, Emacs!&lt;/p&gt;&#xA;" OwnerUserId="9521" LastActivityDate="2010-12-24T13:16:26.440" />
  <row Id="29796" PostTypeId="2" ParentId="29792" CreationDate="2010-12-24T13:16:45.190" Score="2" ViewCount="" Body="&lt;p&gt;It would make no sense at all to force every developer of Linux kernel to use the same IDE (or use any IDE at all).&lt;/p&gt;&#xA;" OwnerUserId="10961" LastActivityDate="2010-12-24T13:16:45.190" />
  <row Id="29797" PostTypeId="2" ParentId="29614" CreationDate="2010-12-24T13:19:55.923" Score="0" ViewCount="" Body="&lt;p&gt;Practice makes perfect. Read more, practice more until you understand. It's okay to take longer than others.&lt;/p&gt;&#xA;" OwnerUserId="10961" LastActivityDate="2010-12-24T13:19:55.923" />
  <row Id="29798" PostTypeId="2" ParentId="29785" CreationDate="2010-12-24T13:21:10.960" Score="5" ViewCount="" Body="&lt;p&gt;There have been attempts to introduce programming language flavors translated into a local spoken language around the globe. They however never came to be more than experiments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some customer-oriented languages are localized like Excel macros language. But these are really end-user oriented.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers will always need something universally understood. For now it is English.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Will we ever be able to program in a language other than English?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Unlikely. For a simple reason there is no advantage to it. The programming language itself, there is not that much linguistic content within so it's possible for everyone to learn a few English keywords.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the rest has to be understood worldwide non-ambiguously. Compiler output, error messages, documentation for tools and libraries. It's important for worldwide knowledge sharing and exchange.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, in the times of globalization and distributed teams there has to be the one and only language for comments in code, documentation and collaboration.  Tech articles, blogs, books. International conferences. People need to understand each other otherwise things get unnecessarily complicated.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-24T13:26:35.590" LastActivityDate="2010-12-24T13:26:35.590" />
  <row Id="29799" PostTypeId="2" ParentId="29783" CreationDate="2010-12-24T13:23:12.420" Score="3" ViewCount="" Body="&lt;p&gt;It may depend on the company.  In my experience (of two well-known US tech companies), it will generally involve:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;One or two recruiter phone calls capturing various bits of information about what you consider to be your skills, experience, and goals/expectations, possibly with some very basic test questions.&lt;/li&gt;&#xA;&lt;li&gt;Two or three tech phone screens of between 45 minutes and an hour, with one or two people on the phone.  May use screen sharing or collaborative editing to share problems and solutions.&lt;/li&gt;&#xA;&lt;li&gt;4-6 hours of in-person interviews at an appropriate office (usually, they'll cover all travel and accommodation expenses)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;10-20 minutes with a recruiter, tour of the offices&lt;/li&gt;&#xA;&lt;li&gt;Four to six interviews of between 45 minutes and an hour, one at a time.  Mixture of just talking and problem solving on whiteboards.&lt;/li&gt;&#xA;&lt;li&gt;Lunch with a recruiter, one of your interviewers, or a separate person, usually focused on assessing cultural fit.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Anywhere between a work-day and two weeks for interviewers to discuss, or present to a hiring group, and for a decision to be made.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9564" LastEditorUserId="9564" LastEditorDisplayName="" LastEditDate="2010-12-24T15:09:27.343" LastActivityDate="2010-12-24T15:09:27.343" CommentCount="5" />
  <row Id="29800" PostTypeId="2" ParentId="29785" CreationDate="2010-12-24T13:26:18.220" Score="1" ViewCount="" Body="&lt;p&gt;As a matter of fact, programming already is as &quot;language independent&quot; (I suppose you wanted to say &quot;natural language...&quot;) as it gets. You see out of 3-4 thousand languages spoken today on Earth, it only depends on one major natural language, that is English. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imagine what would it look like if the dozens of major programming languages in use today were based on Swahili, French, Swedish, Russian, Slovak, Bosnian, Hungarian, Spanish, Catalonian...? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How would anyone not understanding these languages (all are admittedly by far harder than English in grammar) be able to make even a modest career advance, or just keep one self up-to-date. English today is what Latin used to be 2,000 years ago. Actually I dare say it delivers the promise of Esperanto without the hassle of reinventing the whe.. err.. the language.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-24T13:26:18.220" />
  <row Id="29801" PostTypeId="2" ParentId="29788" CreationDate="2010-12-24T13:32:37.350" Score="11" ViewCount="" Body="&lt;p&gt;Your situation is actually common. Anyone having to walk into a new job where there is existing code to work with is going to deal with some element of it. If the system is a really nasty legacy system, then it is very much like what you've described. Of course, there is never any current documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was worried that anything I could suggest would be a duplication of the other question that you linked to. But there are a couple things I didn't see in that thread that might help if you didn't know of them already.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, many have recommended &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131177052&quot; rel=&quot;nofollow&quot;&gt;Working Effectively with Legacy Code&lt;/a&gt; by Michael Feathers. This is indeed a good book, with useful chapters like &quot;I can't get this class into a test harness&quot; or &quot;My application has no structure&quot; though sometimes Feathers can only offer more sympathy than solution. In particular, the book and its examples are largely geared to curly braces languages. If you are working with gnarled SQL procedures it may not be quite as useful. I think the chapter, &quot;I don't understand this code well enough to change it,&quot; speaks to your issue. Feathers mentions here the obvious things like taking notes and marking up listings, but also makes a good point that you can delete unused code if you have source control. Lots of people leave commented sections of code in place, but that often isn't of help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next, I think your suggested approach is certainly a good step. You have to understand first at a high level what the purpose of the code is. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As the other question thread said: Definitely work with a mentor or someone on the team if you have to get questions answered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, take the opportunity to support the code if defects are revealed (though sometimes you don't have to volunteer for this...the defect will find you!). Users can explain what they use the software for and how the defect is affecting them. That can often be a very useful bit of knowledge when trying to understand the meaning of the software. In addition, going into the code with a purposeful target to attack can sometimes help focus you when facing &quot;the beast.&quot;&lt;/p&gt;&#xA;" OwnerUserId="7892" LastActivityDate="2010-12-24T13:32:37.350" CommentCount="1" />
  <row Id="29802" PostTypeId="2" ParentId="29792" CreationDate="2010-12-24T13:34:13.983" Score="3" ViewCount="" Body="&lt;p&gt;If your team relies on certain plugins available only to certain IDEs, then it only makes sense to unify everyone under the same development platform. I also find it easier to help someone with a development issue if they have the same IDE as me, whereas if I'm to read someones screen with an unfamiliar interface it'll take a bit longer.&lt;/p&gt;&#xA;" OwnerUserId="11524" LastActivityDate="2010-12-24T13:34:13.983" CommentCount="1" />
  <row Id="29803" PostTypeId="2" ParentId="29743" CreationDate="2010-12-24T13:36:01.593" Score="10" ViewCount="" Body="&lt;p&gt;Delphi, definitely:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Simplicity - Delphi's syntax is based on Pascal, which was explicitly designed to be easy to learn, &lt;a href=&quot;http://tech.turbu-rpg.com/85/learning-delphi-a-true-storyhttp%3A//tech.turbu-rpg.com/85/learning-delphi-a-true-story&quot; rel=&quot;nofollow&quot;&gt;and it can deliver on that promise.&lt;/a&gt; C#'s is based on the C family, which... well... was &lt;em&gt;not&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Productivity - Delphi is a descendant of Turbo Pascal, and it still has the fastest compiler known to man, &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000023.html&quot; rel=&quot;nofollow&quot;&gt;which will boost your productivity enormously.&lt;/a&gt;  Plus it has the debugger Visual Studio wishes its debugger will be like when it grows up.  Especially in the latest version of Delphi, debugging is much easier.&lt;/li&gt;&#xA;&lt;li&gt;Good API documentation - &quot;API&quot; is a pretty vague word these days, encompassing all sorts of things.  I assume you mean libraries, and here it's sort of a tossup. Both the .NET framework and the Delphi standard libraries have good online documentation and mediocre, difficult-to-use offline documentation. (A consequence of the Delphi team choosing to use the same horrible help system as Visual Studio, which they will hopefully move away from in the next version.)&lt;/li&gt;&#xA;&lt;li&gt;Speed - Delphi wins easily.  It compiles to native code (faster execution and &lt;em&gt;much&lt;/em&gt; faster startup because there's no JIT phase,) and it doesn't use managed pointers so object access is faster and less cache-unfriendly.&lt;/li&gt;&#xA;&lt;li&gt;Drag and Drop - A built-in feature of the VCL.&lt;/li&gt;&#xA;&lt;li&gt;Multi threading - Delphi has a built in thread class, but if you want to do complex things with concurrency there are better options. Primoz Gabrijelcic, a Delphi community member, has been working on &lt;a href=&quot;http://code.google.com/p/omnithreadlibrary/&quot; rel=&quot;nofollow&quot;&gt;an excellent concurrency library&lt;/a&gt; that I've helped contribute to.  It provides high-level support for common threading goals such as task pooling, parallel FOR loops and multi-stage pipeline processes.&lt;/li&gt;&#xA;&lt;li&gt;Good Network API - Delphi ships with Indy, a mature open-source library that makes Internet connections easy to set up and manage.  We use it at work to provide the communications layer for an industry-leading app that you've probably never heard of unless you work in broadcast media.&lt;/li&gt;&#xA;&lt;li&gt;Deployment - This wasn't on your list, but it's worth mentioning.  There are still systems out there that don't have the .NET framework preinstalled.  By default, Delphi compiles its standard library into the EXE, then uses a smartlinker to remove parts you don't use, resulting in small EXEs that don't have dependencies on massive runtime libraries weighing in at hundreds of MBs that your users will have to download and install separately.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-24T13:36:01.593" CommentCount="5" />
  <row Id="29804" PostTypeId="2" ParentId="29792" CreationDate="2010-12-24T13:44:43.133" Score="1" ViewCount="" Body="&lt;p&gt;I don't have experience with mixed IDEs, unless you count a commercial IDE with occasional supplementing by a text editor &quot;multiple IDEs,&quot; but I can think of a couple pros and cons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pros&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Each developer can be most productive with what they know best&lt;/li&gt;&#xA;&lt;li&gt;Some IDEs may provide an advantage over others (one might be better at refactoring, another might be better at providing coding aids, others might be better with data integration, whatever). Using a blend might allow your team to capitalize on that.&lt;/li&gt;&#xA;&lt;li&gt;You'll have a bit of a hedge against the possibility that one of the IDEs goes defunct.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Cons&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Licensing issues. If there are multiple commercial IDEs involved, maybe it's more expensive. At the least, it could be more to keep track of.&lt;/li&gt;&#xA;&lt;li&gt;Licensing issues 2. If there are frameworks or plug-ins that are licensed by IDE or langauge, will this be a problem?&lt;/li&gt;&#xA;&lt;li&gt;As Dszordan mentioned, certain plug ins may not be compatible with the different IDEs. &lt;/li&gt;&#xA;&lt;li&gt;If the IDEs have code generation components or style formatting engines that do things differently, this might cause some confusion.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7892" LastActivityDate="2010-12-24T13:44:43.133" />
  <row Id="29805" PostTypeId="2" ParentId="29792" CreationDate="2010-12-24T13:48:42.687" Score="34" ViewCount="" Body="&lt;p&gt;Provided the 'official' build system (as used by the Continuous Build servers) is the same for all, I don't see any reason why each member of the team could not choose the tools he wants...&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2010-12-24T13:48:42.687" CommentCount="7" />
  <row Id="29806" PostTypeId="2" ParentId="29785" CreationDate="2010-12-24T13:58:39.633" Score="0" ViewCount="" Body="&lt;p&gt;Answer to philosophical part of your question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You think and you program in abstract categories and ideas, neither in English, nor in Java or C++. All those are just mediators. English, as Jas mentioined is his answer, is a the most convenient because most programmers speak or understand it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Answer to technical part of your question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Classic compiler consists of language-specific frontend, language-agnostic optimizer, and hardware-specific backend. Once you create a consistent and efficient natural language frontend (say, for GCC), the compiler will be able to generate the code. The neuance is, once such parser is developed, programmers won't be needed any longer. Only managers (to manage computers). But the complexity of natural language recognition domain is so high that I hope the problem won't be solved any time soon.&lt;/p&gt;&#xA;" OwnerUserId="4676" LastActivityDate="2010-12-24T13:58:39.633" />
  <row Id="29807" PostTypeId="2" ParentId="29785" CreationDate="2010-12-24T14:04:17.533" Score="0" ViewCount="" Body="&lt;p&gt;English is the lingua franca of programming, like Latin for doctors. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider why you want alternative keywords and then consider what you Will have to give up.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-24T14:04:17.533" />
  <row Id="29808" PostTypeId="2" ParentId="29792" CreationDate="2010-12-24T14:05:18.850" Score="2" ViewCount="" Body="&lt;p&gt;One downside is that when pairing you can't swap the keyboard between you as fluently. Between mainstream IDEs this is probably not a huge problem, but if one person is used to Eclipse while the other is used to vim, there is going to be a mismatch. The Eclipse user may well be entirely unable to use vim, while the vim user (that's me ;) spends a lot of time cursing under their breath at the horrible slowness of using vanilla Eclipse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I'd still much rather use vim myself. Provided your pair are happy with just one of you &quot;driving&quot; for extended periods it works OK.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I know there are plugins to make Eclipse work like vi, but I'm talking about pairing where I go and sit with someone who has Eclipse working as they like it, so they won't be installing that plugin.&lt;/p&gt;&#xA;" OwnerUserId="3271" LastActivityDate="2010-12-24T14:05:18.850" />
  <row Id="29809" PostTypeId="2" ParentId="29777" CreationDate="2010-12-24T14:08:06.350" Score="0" ViewCount="" Body="&lt;p&gt;Around here, we did a production deployment yesterday. I have nothing exciting to do for the half day that I'm in the office.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just enjoy!&lt;/p&gt;&#xA;" OwnerUserId="7048" LastActivityDate="2010-12-24T14:08:06.350" />
  <row Id="29810" PostTypeId="2" ParentId="29782" CreationDate="2010-12-24T14:17:53.600" Score="5" ViewCount="" Body="&lt;p&gt;My thoughts:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think many errors are related to typing errors.  Typos will generally not produce stuff that will compile so rarely produces anything that gets even as far as unit testing, let alone beyond that.  Those few that do are generally very easy to spot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In 16 years in development the only issues that I've seen which were caused by a hardware fault were so major (i.e. system / sub-system down) that it was instantly obvious and was picked up by the sysadmins.  Once it makes it as far as the programmer I'd suggest that you remove the possibility of hardware error from your mind until you see some very very strong evidence to suggest that that's the case as generally it's so unlikely you shouldn't waste time thinking about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Errors fall into three categories:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Misunderstandings - that is the system is working correctly but someone has misunderstood what it's meant to do.  The best way to find out if this is the case is to get as much information as possible, ideally by speaking to someone who has actually seen the error and ask what they saw and what they expected to see.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Configuration Errors - while there are very few errors which are caused by hardware errors, there are plenty caused by machines being set up differently as far as software configuration goes.  This is particularly likely if you can't reproduce the error on your development set up which is likely to be pretty non-standard because of the assorted tools you've got installed and changes you've made to be productive.  The best thing to do here is to have a development test environment which is a clone of production and try and reproduce the error on there.  Once you have you can start comparing that environment to the ones where it works and see what the differences are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Code Errors - the code is out and out wrong.  There are common problems (not checking return values or badly handled errors, incorrect loops and checks - for instance not checking the final record in an array or collection because the developer got confused about whether it ended at i or i-1) but exactly how common they are varies from project to project and in any case, they're easy enough to spot by walking the code.  The main things I'd say here are make sure you can reproduce the error (this may involved getting details of a specific record where the error occurs from the user) and walk the code line by line.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Broadly speaking I'd suggest the following hints:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) &lt;strong&gt;Own the problem&lt;/strong&gt;.  It's your problem and you need to fix it regardless of what it is or who originally caused it.  This may involve you looking into things that aren't your area of specialisation but it that's what it takes, that's what you do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) &lt;strong&gt;Speak to the user&lt;/strong&gt;.  The thing which slows down problem resolution the most in my experience is bad information so cut that out by going straight to the user and find out what's happening.  Have them walk you through it, what they did, what they saw, what they expected to see.  Ask if it happens all the time or just some of the time.  If it's just some of the time ask them about patterns, get details of specific records where it occurs.  Question everything and assume nothing.  And when I say speak to them, I mean speak to them - you'll find out more than through some e-mail conversation and you'll do so far far faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) &lt;strong&gt;Reproduce the problem&lt;/strong&gt;.  Don't guess at the solution, reproduce it, it's the only way of knowing you've really found what's happening.  Walk the code step by step and see what's actually happening.  This may involve reproducing the environment or getting a copy of the database - if you have to, that's what you do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) &lt;strong&gt;Be realistic&lt;/strong&gt;.  It's not a hardware problem and you've not found a problem with the compiler.  Once you've worked out it's a real problem (that is that the user is not mistaken about what it's meant to be doing) and you've reproduced it, by far the most likely issue is that the code is wrong so don't kid yourself otherwise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) &lt;strong&gt;Fix the root problem, not the symptom&lt;/strong&gt;.  If they say everything is out by 1, don't just subtract 1 from everything, find out WHY it was out by 1 and fix that.  If you only fix the symptom, you will see the problem again.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-24T14:17:53.600" CommentCount="1" />
  <row Id="29811" PostTypeId="2" ParentId="29792" CreationDate="2010-12-24T14:19:21.993" Score="2" ViewCount="" Body="&lt;p&gt;There is a reason for which this can be forced. Simply consider visual studio and emacs/vim. As on windows visual studio will add an extra \r at the end of the line. This mess up with the display in emacs/vim. Also the tabs create problem. The problem with us is that we developers work in Linux but our software architecture is comfortable in visual studio. He once curses us saying that we do not format the file properly. But then when he found that this is because of the default setting issue, we all agreed to the same format.&lt;br&gt;&#xA;If anyone force me to use particular IDE, I will not feel bad. Whatever is good for the team I will respect that and will compromise accordingly. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-24T14:19:21.993" CommentCount="1" />
  <row Id="29812" PostTypeId="2" ParentId="29697" CreationDate="2010-12-24T14:22:45.777" Score="1" ViewCount="" Body="&lt;p&gt;Chrome plugin: &lt;a href=&quot;https://chrome.google.com/webstore/detail/cgjalgdhmbpaacnnejmodfinclbdgaci&quot; rel=&quot;nofollow&quot;&gt;https://chrome.google.com/webstore/detail/cgjalgdhmbpaacnnejmodfinclbdgaci&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7048" LastActivityDate="2010-12-24T14:22:45.777" CommentCount="1" />
  <row Id="29813" PostTypeId="2" ParentId="29782" CreationDate="2010-12-24T14:26:06.023" Score="0" ViewCount="" Body="&lt;p&gt;Since this is a question asked in general terms, I will try to make my answer as broad as possible. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Solving an error involves answering two questions assuming you are familiar with the development language/platform/technology&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What &lt;strong&gt;does&lt;/strong&gt; the code do ?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The answer to this can be found both from the top first by code comprehension (either manually or using tools) and from the bottom by good old debugging. What is more important is to religiously document any  incrementally knowledge thus gained in a easy to understand format and gradually construct a model in your mind.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What &lt;strong&gt;should&lt;/strong&gt; the code do ?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The answer to this can be found from the existing documentation of the product as well that of technology, platform and language , discussion with colleagues and the end users, and from the knowledge gained and model constructed in the first step.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Solving error is a matter of aligning 1. with 2.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-24T14:26:06.023" />
  <row Id="29814" PostTypeId="2" ParentId="29782" CreationDate="2010-12-24T14:31:50.277" Score="0" ViewCount="" Body="&lt;p&gt;Logging , Debugging, and Experience. With these you will eventually get there. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2010-12-24T14:31:50.277" />
  <row Id="29815" PostTypeId="2" ParentId="29764" CreationDate="2010-12-24T14:41:25.723" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Algorithms_%2B_Data_Structures_%3D_Programs&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Algorithms + Data Structures = Programs&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7733" LastActivityDate="2010-12-24T14:41:25.723" />
  <row Id="29816" PostTypeId="2" ParentId="29792" CreationDate="2010-12-24T14:47:32.680" Score="0" ViewCount="" Body="&lt;p&gt;Sounds a bit like &quot;we used this at my old job&quot;. Well, they aren't at their old job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it doesn't affect your tool chain or source control plug.ins, then maybe yes. Then again, can the two new folk demonstrate a clear benefit? Have they used your IDE?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, I have no patience with this nonsense unless there is a good case for it. They aren't at their old job: it couldn't have been that good for them to want to leave. Was using the other IDE the only highlight in ther old job: if so, they should STFU and be grateful..&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-12-24T14:47:32.680" CommentCount="1" />
  <row Id="29817" PostTypeId="2" ParentId="29722" CreationDate="2010-12-24T14:50:52.103" Score="3" ViewCount="" Body="&lt;p&gt;I like &lt;a href=&quot;http://programmers.stackexchange.com/questions/29722/which-points-should-be-covered-in-basic-bachelors-level-c-course/29770#29770&quot;&gt;Xavier's anwser&lt;/a&gt;.&#xA;Accelerated C++ is another good approach on the subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In all cases, don't assume the standard library is an advanced topic, or anything that doesn't deserve more than being in the appendices. No. The standard library is as important as the core langage itself. You won't have correctly taught the language if you have ignored these parts, or the RAII.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunatelly your students will have already seen the C before: they may think the C++ is just a continuation of the C and thus miss important differences.&lt;/p&gt;&#xA;" OwnerUserId="11576" LastActivityDate="2010-12-24T14:50:52.103" />
  <row Id="29818" PostTypeId="2" ParentId="29788" CreationDate="2010-12-24T14:55:56.247" Score="1" ViewCount="" Body="&lt;p&gt;This happens a lot. Until I started to work on an open source platform I don't think I ever started a job which didn't start out with an admission that the code had some 'quirks'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can get a long way with a step debugger and a lot of tenacity. Unfortunately often it takes time and experience to learn a particular big ball of mud and even then after years there can still be some subsystem which crops up which nobody has any knowledge of. &lt;/p&gt;&#xA;" OwnerUserId="10624" LastActivityDate="2010-12-24T14:55:56.247" />
  <row Id="29819" PostTypeId="1" CreationDate="2010-12-24T14:57:16.313" Score="0" ViewCount="165" Body="&lt;p&gt;Hi all&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My Questions are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;What is the difference between Windows Communication Foundation Service and a simple Web Service in .Net Framework?&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;What a WCF Service can do which a .Net Web Service cant? In other words, what are the limitation of .net web services which were overcome in WCF Services?&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I understand that WCF are REST based and .Net web services are SOAP based&lt;/strong&gt;. But i need to know more than that. How a developer will make a design decision whether to developer a web Service or a wcf service?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Detailed comments are appreciated from .Net Developers&lt;/p&gt;&#xA;" OwnerUserId="11205" LastActivityDate="2010-12-24T17:06:16.530" Title="What is the difference between WCF Service and a simple web Service in developing using .Net Framework?" Tags="&lt;design&gt;&lt;asp.net&gt;&lt;decisions&gt;&lt;wcf&gt;&lt;web-services&gt;" AnswerCount="2" />
  <row Id="29820" PostTypeId="2" ParentId="29680" CreationDate="2010-12-24T15:03:53.650" Score="0" ViewCount="" Body="&lt;p&gt;I have found that it can work well with everyone remote or everyone co located. If you have a mixture, the co located people will tend to communicate in ways which leave the remote people in the dark. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instant messaging and/or irc can be great for remote teams. As it keep an always on means of communication with a log of what has been said for people to catch up on&lt;/p&gt;&#xA;" OwnerUserId="10624" LastActivityDate="2010-12-24T15:03:53.650" />
  <row Id="29821" PostTypeId="1" AcceptedAnswerId="29822" CreationDate="2010-12-24T15:06:14.523" Score="0" ViewCount="79" Body="&lt;p&gt;i have created a small web-app and want to deploy it. I have used struts2 and mysql for the database.. the problem is that i do not have a static ip to run the app on my machine. Can anyone suggest me hosting services that host java pages and mysql..... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since this is a project i am doing not for money i would prefer free servers even if they are allow for a short period of time&lt;/p&gt;&#xA;" OwnerUserId="8819" LastEditorUserId="8819" LastEditorDisplayName="" LastEditDate="2010-12-24T15:13:19.133" LastActivityDate="2010-12-24T15:51:09.693" Title="Launching web-app with database without static ip" Tags="&lt;web-development&gt;&lt;database-development&gt;&lt;mysql&gt;" AnswerCount="2" />
  <row Id="29822" PostTypeId="2" ParentId="29821" CreationDate="2010-12-24T15:19:02.107" Score="2" ViewCount="" Body="&lt;p&gt;what about takint a &lt;a href=&quot;http://www.dyndns.com&quot; rel=&quot;nofollow&quot;&gt;DynDns&lt;/a&gt; account?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a Dynamic DNS Service which consists of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;An executable which runs on your PC and sends notifications to DNS Server of your current IP&lt;/li&gt;&#xA;&lt;li&gt;The Dynamic Server&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You url would consist then of a subdomain of dyndns which ever you choose. Take a look !&lt;/p&gt;&#xA;" OwnerUserId="2093" LastActivityDate="2010-12-24T15:19:02.107" CommentCount="3" />
  <row Id="29823" PostTypeId="2" ParentId="29513" CreationDate="2010-12-24T15:20:31.047" Score="0" ViewCount="" Body="&lt;p&gt;I recently &lt;a href=&quot;http://icodeforfood.com/2010/12/19/inventing-a-better-wheel/&quot; rel=&quot;nofollow&quot;&gt;blogged my thoughts&lt;/a&gt; on this topic. To summarize:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;It's &lt;strong&gt;almost always&lt;/strong&gt; evil to build your own, especially true if its a function thats built into the language. But if you're evaluating an immature / questionably-maintained / badly-documented framework you found on the Internet against the possibility of writing your own, it could be a no-brainer.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I think &lt;em&gt;reinventing the wheel&lt;/em&gt; is a pretty awful analogy for a software anti-pattern. It implies that the original solution can never be improved upon. That is nonsense. The so-called wheel can become obsolete overnight, or its owners could stop maintaining it. The wheel has a different value at each system where it's used. So, it's often entirely possible to invent a better wheel.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;One major benefit of making your own framework is that you won't have to take responsibility for someone else's bugs. (This is &lt;a href=&quot;http://highscalability.com/amazon-architecture&quot; rel=&quot;nofollow&quot;&gt;Amazon's philosophy&lt;/a&gt;.) Think of it this way: which of these is better to tell a customer? -&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Our website broke. It was someone else's fault, and we've logged a bug with its creator. There is nothing we can do about it except wait. We'll keep you updated.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;Our website broke, and we were able to fix it immediately.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="691" LastActivityDate="2010-12-24T15:20:31.047" />
  <row Id="29824" PostTypeId="2" ParentId="29764" CreationDate="2010-12-24T15:21:33.960" Score="0" ViewCount="" Body="&lt;p&gt;Being able to decompose problems into small, manageable chunks which can be implemented piece by piece to eventually solve the larger problem.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-12-24T15:21:33.960" />
  <row Id="29825" PostTypeId="2" ParentId="29764" CreationDate="2010-12-24T15:24:31.980" Score="0" ViewCount="" Body="&lt;p&gt;The concept of &lt;strong&gt;Evaluation&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="11577" LastActivityDate="2010-12-24T15:24:31.980" />
  <row Id="29826" PostTypeId="2" ParentId="29819" CreationDate="2010-12-24T15:25:58.250" Score="1" ViewCount="" Body="&lt;p&gt;The major difference is that things like binding are configurable through the config files - you can change from http to tcp or anything else just by editing your config. Same with a lot of parameters (buffer sizes etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is absolutely no reason to create simple web services if you have the option of using WCF.&lt;/p&gt;&#xA;" OwnerUserId="7380" LastActivityDate="2010-12-24T15:25:58.250" CommentCount="1" />
  <row Id="29827" PostTypeId="2" ParentId="27564" CreationDate="2010-12-24T15:26:50.713" Score="-3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;BEING ABLE TO REDECLARE FUNCTIONS!&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In python you can redeclare functions, because they act just like variables.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;mysql_query=debug_mysql_query&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and being able to point to a single function within an object:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;my_function=obj(&quot;passed to the constructor&quot;).some_func&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;REMOVE GOTO&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't believe they added this train wreak.  This quite possibly the worst addition to PHP. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a side note they are removing &lt;code&gt;magic_quotes_gpc&lt;/code&gt; and &lt;code&gt;register_globals&lt;/code&gt;  Which is a wonderful thing.&lt;/p&gt;&#xA;" OwnerUserId="4877" LastEditorUserId="4877" LastEditorDisplayName="" LastEditDate="2010-12-24T15:46:46.967" LastActivityDate="2010-12-24T15:46:46.967" CommunityOwnedDate="2010-12-24T15:26:50.713" CommentCount="4" />
  <row Id="29828" PostTypeId="2" ParentId="27564" CreationDate="2010-12-24T15:43:47.080" Score="0" ViewCount="" Body="&lt;p&gt;Array functions accepting iterators!&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$o = new CoolIterator(); &#xA;asort($o);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5351" LastActivityDate="2010-12-24T15:43:47.080" CommunityOwnedDate="2010-12-24T15:43:47.080" CommentCount="3" />
  <row Id="29829" PostTypeId="2" ParentId="29821" CreationDate="2010-12-24T15:51:09.693" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://free.hostingjava.it/index.do&quot; rel=&quot;nofollow&quot;&gt;Hosting Java&lt;/a&gt;, it's free for basic account. Have a try.&lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2010-12-24T15:51:09.693" />
  <row Id="29830" PostTypeId="2" ParentId="29788" CreationDate="2010-12-24T15:54:57.240" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Do I have to hack till I get the job&#xA;  done&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;To a large extent, yes (sorry).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Approaches you might consider:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Try to find out what the code is supposed to do, in business terms.&lt;/li&gt;&#xA;&lt;li&gt;Read all the documentation that exists, no matter how bad it is.&lt;/li&gt;&#xA;&lt;li&gt;Talk to anyone who might know &lt;em&gt;something&lt;/em&gt; about the code.&lt;/li&gt;&#xA;&lt;li&gt;Step through the code in the debugger.&lt;/li&gt;&#xA;&lt;li&gt;Introduce small changes and see what breaks.&lt;/li&gt;&#xA;&lt;li&gt;Make small changes to the code to make it clearer.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Some of the things I do to clarify code are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Add comments to explain what I think it might do&lt;/li&gt;&#xA;&lt;li&gt;Change variable names to make them clearer (using a refactoring tool)&lt;/li&gt;&#xA;&lt;li&gt;Using a tool that highlights all the uses of a particular symbol&lt;/li&gt;&#xA;&lt;li&gt;Reducing clutter in the code - commented out code, meaningless comments, pointless variable initializations and so forth.&lt;/li&gt;&#xA;&lt;li&gt;Change the code to use current code conventions (again using refactoring tools)&lt;/li&gt;&#xA;&lt;li&gt;Start to extract functionality into meaningful routines&lt;/li&gt;&#xA;&lt;li&gt;Start to add tests where possible (not often possible)&lt;/li&gt;&#xA;&lt;li&gt;Getting rid of magic numbers&lt;/li&gt;&#xA;&lt;li&gt;Reducing duplication where possible&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;... and whatever other simple improvements you can make.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Gradually, the meaning behind it all should become clearer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the place to start? Start with what you do know. I suggest inputs and outputs. You can often get a handle on what these are supposed to be and what they are used for. Follow data through the application and see where it goes and how it is changed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the problems I have with all this is motivation - it can be a real slog. It helps me to think of the whole business as a puzzle, and to celebrate the progress that I'm making, no matter how small.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2010-12-24T15:54:57.240" CommentCount="2" />
  <row Id="29831" PostTypeId="1" CreationDate="2010-12-24T16:12:19.380" Score="11" ViewCount="273" Body="&lt;p&gt;For enterprise windows-based solutions, .NET is the best choice sometimes. How is Mono looked at by the enterprises who have to use Linux (or rather prefer to use Linux) ? Assuming that the developers aren't a problem and they are familiar with .NET/Mono and other possible competitors such as Java.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would a medium/large company run Mono on their servers as opposite to technologies such as Java? Do you know of any such company ? &lt;/p&gt;&#xA;" OwnerUserId="2849" LastActivityDate="2010-12-24T17:53:55.080" Title="Does Mono have a place in the enterprise world?" Tags="&lt;.net&gt;&lt;mono&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="29832" PostTypeId="1" CreationDate="2010-12-24T16:22:03.787" Score="5" ViewCount="260" Body="&lt;p&gt;What is the bug workflow on your agile/Scrum team?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is ours:&#xA;- If the bug is related to a story in the current sprint, we fix it.&#xA;- If the bug is not related to a story in the current sprint and it is not critical, it is sent to the product owner for prioritization.&#xA;- If the bug is not related to a story in the sprint and it is critical, we fix it.&lt;/p&gt;&#xA;" OwnerUserId="11347" LastActivityDate="2011-05-19T03:49:15.910" Title="What is the bug workflow on your agile/Scrum team?" Tags="&lt;agile&gt;&lt;bugs&gt;&lt;scrum&gt;&lt;workflows&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="1" />
  <row Id="29833" PostTypeId="2" ParentId="29831" CreationDate="2010-12-24T16:30:50.550" Score="5" ViewCount="" Body="&lt;p&gt;My company develops a major mostly-.NET desktop application and releases Linux versions running on Mono, so I would say yes, there is definitely a place for Mono in enterprise Windows-based solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We package Mono with the installation of our application, not requiring the users to install it separately (and this way we control the version, too).&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-24T16:30:50.550" />
  <row Id="29834" PostTypeId="2" ParentId="29831" CreationDate="2010-12-24T16:31:20.220" Score="8" ViewCount="" Body="&lt;p&gt;We used it in the large corporation where I work.  We didn't plan on it from the start of the project but it just worked out that way.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We had an internal project that we developed in .NET, once we got into UAT, the business owner wanted to open the app up to some customers as well as the internal staff.  The majority of our external (DMZ) servers are Linux based and the Windows servers that are in the DMZ weren't a good fit (too close to capacity).  Instead of buying new hardware someone suggested running the app on Mono.  We spent a couple of days doing our own testing and then released the app to QA, then UAT.  We had no issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If we had been given the requirement at the start of the project, we may not have chosen to write it in .NET, but this was one nice outcome to a very, very late requirement change.  Now we're pretty confident that if it came up again we could successfully deploy to Mono (although I would think eventually we'd have to tweak some code, I think we just got lucky).&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-24T17:48:09.030" LastActivityDate="2010-12-24T17:48:09.030" />
  <row Id="29835" PostTypeId="2" ParentId="29832" CreationDate="2010-12-24T16:33:13.917" Score="1" ViewCount="" Body="&lt;p&gt;We do ongoing defect work. Similar to your setup, if there is a critical issue related to current work, we fix it as part of the work. After all, can't call a story &quot;done&quot; if there's a defect related to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For other bugs, we generally fix them as time allows. If there are pressing issues, we pull back some stories and spend time on bug fixes before getting back to normal feature work.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-24T16:33:13.917" />
  <row Id="29836" PostTypeId="2" ParentId="29832" CreationDate="2010-12-24T16:40:24.687" Score="4" ViewCount="" Body="&lt;p&gt;Anything related to work in the current sprint is fixed, we don't even consider them bugs and do not write them up as such. We only consider something a bug if it is part of something we already considered Done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When a new bug arises, we add it to the backlog and it get prioritized by our stakeholders. If we have time remaining in a sprint, we tend to tackle easier bugs that may have lower priority but are something we can complete in the time remaining.&lt;/p&gt;&#xA;" OwnerUserId="7446" LastActivityDate="2010-12-24T16:40:24.687" CommentCount="1" />
  <row Id="29838" PostTypeId="2" ParentId="29831" CreationDate="2010-12-24T16:50:20.953" Score="3" ViewCount="" Body="&lt;p&gt;I think the main concern many corporates would have is the license issues between Mono and Microsoft. My understanding is that while Microsoft have formally agreed that Mono can use the core .NET technologies, but outside that, including about of very commonly used stuff, is more of a grey area legally with Microsoft stating no firm position on it one way or the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That obviously leaves open the possibility that down the line they'll demand license fees or just sue for patent violation. It's unlikely that either would happen from the way they're behaving right now but most corporates don't like that sort of uncertainty, particularly not when it comes with potential liabilities and costs attached.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2010-12-24T16:50:20.953" CommentCount="2" />
  <row Id="29839" PostTypeId="1" CreationDate="2010-12-24T16:53:42.220" Score="8" ViewCount="309" Body="&lt;p&gt;How useful is it to measure &lt;a href=&quot;http://en.wikipedia.org/wiki/Function_points&quot; rel=&quot;nofollow&quot;&gt;function points&lt;/a&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We use function points at my new job.  I've heard of function points but haven't had any training or experience... but I don't have much confidence in things that cannot be explained succinctly.&lt;/p&gt;&#xA;" OwnerUserId="11583" LastActivityDate="2010-12-28T01:25:37.360" Title="How useful are function points?" Tags="&lt;project-management&gt;&lt;documentation&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="3" />
  <row Id="29840" PostTypeId="2" ParentId="29819" CreationDate="2010-12-24T17:06:16.530" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;What a WCF Service can do which a .Net Web Service cant?&lt;/em&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;One of the things we learned (the hard way) was that WCF lets you modify messages before they are transmitted or after they are received. We had an issue where nothing we were able to do to deserialize fault messages was working, so we had to create a message handler to inspect incoming messages for faults and then throw the relevant exception. &lt;a href=&quot;http://stackoverflow.com/questions/1441647/multiple-name-spaces-in-a-soap-fault-message-causing-faultexception-deserializati&quot;&gt;Sample&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-12-24T17:06:16.530" />
  <row Id="29841" PostTypeId="2" ParentId="29831" CreationDate="2010-12-24T17:23:12.963" Score="7" ViewCount="" Body="&lt;p&gt;I haven't used mono commercially, but I use it privately, because I work in a Windows company, but privately am a Linux user (so I can reuse what I do at work).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall, I agree with Miguel de Icaza who says:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;25 % of .NET applications work out of the box with mono &lt;/li&gt;&#xA;  &lt;li&gt;another 25% can be made to work within a day or less &lt;/li&gt;&#xA;  &lt;li&gt;further 25% can be made to work within a week &lt;/li&gt;&#xA;  &lt;li&gt;The last 25% require a complete rewrite of the application&#xA;  (WinForms/COM)&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Mono works fairly well, but there are some problems:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;VB.NET support only for .NET &amp;lt;= 2.0&lt;/li&gt;&#xA;  &lt;li&gt;Windows authentication not implemented&lt;/li&gt;&#xA;  &lt;li&gt;WPF not implemented&lt;/li&gt;&#xA;  &lt;li&gt;WCF support incomplete&lt;/li&gt;&#xA;  &lt;li&gt;Entity Framework not implemented and no plans to implement&lt;/li&gt;&#xA;  &lt;li&gt;&quot;ASP.NET Web Parts&quot; not implemented&lt;/li&gt;&#xA;  &lt;li&gt;No COM-interop support&lt;/li&gt;&#xA;  &lt;li&gt;Sybase connection for version 15.5 (latest) doesn't work&lt;/li&gt;&#xA;  &lt;li&gt;Bugs and incompleteness in the C# class library (e.g. XML was buggy in mono &amp;lt; 2.6)&lt;/li&gt;&#xA;  &lt;li&gt;The Linux web-browser control requires GTK#&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Then the minor problems:&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;Windows Forms work, but aren't always rendered properly&lt;/li&gt;&#xA;  &lt;li&gt;MonoDevelop can't design windows forms&lt;/li&gt;&#xA;  &lt;li&gt;MonoDevelop 'step through' debugging doesn't really work&lt;/li&gt;&#xA;  &lt;li&gt;Mono-Service crashes after 5 hours...&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Form what I can say:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;WebServices function excellently&lt;/li&gt;&#xA;  &lt;li&gt;If you run a WebApplication, it works fairly well (if it doesn't use&#xA;  WebParts).&lt;/li&gt;&#xA;  &lt;li&gt;If you run WindowsForms, it won't always look very nice (to say the least).&lt;/li&gt;&#xA;  &lt;li&gt;There is no working equivalent for Microsoft Reporting Service&#xA;  (FYIreporting is the closest thing to&#xA;  it, but it's slow, buggy and very&#xA;  incomplete, plus no activity since&#xA;  more than a year)&lt;/li&gt;&#xA;  &lt;li&gt;You will experience problems if you need to create Word or Excel&#xA;  documents.&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you want to develop .NET on Linux&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;You could develop ASP.NET there (debugging &amp;amp; step through works very&#xA;  badly) &lt;/li&gt;&#xA;  &lt;li&gt;You can't really develop WinForms on Linux&lt;/li&gt;&#xA;  &lt;li&gt;You need to use GTK# instead of WinForms&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In other words: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;Mono has it's place in running web applications and WebServices and&#xA;  MailServers. &lt;/li&gt;&#xA;  &lt;li&gt;But it's not viable to run WindowsForms applications, you need to&#xA;  write applications with GTK#&lt;/li&gt;&#xA;  &lt;li&gt;It lacks a reporting solution and MS file format support (or working&#xA;  libraries therefore)&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="5531" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-24T17:53:55.080" LastActivityDate="2010-12-24T17:53:55.080" CommentCount="1" />
  <row Id="29842" PostTypeId="2" ParentId="29785" CreationDate="2010-12-24T17:28:52.753" Score="0" ViewCount="" Body="&lt;p&gt;I think it is very hard to program without the english keywords / functionnames and also, without the concepts they bring. Because many of the concepts are learned from English resources. Finding a translation will not make things easier, because you have to learn the concepts anyway. When working with a local flavor of Excel, I couldn't for example get used to something different than 'if'. Because 'if' is across all programming languages and is hardwired into my brain by now. ('If' being a simplistic version. But it goes to memory allocation of cpu cycles - those are domain specific terms so they are new for anyone who doesn't know the domain, and those who know it will know the english terms anyway.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I do not think that you are only programming abstract principles. When writing applications or datamodels, you relate to 'the real world', and then it makes sense to pick names that describe what they relate to out there, and sometimes, those concepts are only useful in your own language because they refer (for example) to legal terms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So some point or other, languages will cross.&lt;/p&gt;&#xA;" OwnerUserId="9237" LastActivityDate="2010-12-24T17:28:52.753" />
  <row Id="29843" PostTypeId="2" ParentId="29831" CreationDate="2010-12-24T17:46:34.313" Score="1" ViewCount="" Body="&lt;p&gt;I don't think there's much space for Mono there:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java is already established platform on Linux, with huge community and abundance of enterprise quality libraries and tools, both commercial and open-source. I don't see any reason to pick Mono over Java when starting new project targeting Linux (or Mac), unless there's some specific circumstance (see Walter's answer).&lt;/p&gt;&#xA;" OwnerUserId="7968" LastActivityDate="2010-12-24T17:46:34.313" CommentCount="2" />
  <row Id="29845" PostTypeId="1" CreationDate="2010-12-24T18:23:30.997" Score="2" ViewCount="234" Body="&lt;p&gt;Example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You create an abstract class for Ajax actions. Different Ajax actions will all extend this class.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Problem:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Do you name the class AjaxAction or AbstractAjaxAction?&lt;/li&gt;&#xA;&lt;li&gt;When you create subclasses, do you name them:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Action&lt;/li&gt;&#xA;&lt;li&gt;AjaxAction&lt;/li&gt;&#xA;&lt;li&gt;Just name them what they are&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I have not been able to find what the &quot;official&quot; convention is. I don't see a need for the &quot;Abstract&quot; prefix or any &lt;em&gt;required&lt;/em&gt; naming convention in the subclasses. (It may fit anyway, depending.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there an official convention? Could you link me to it? And what are your opinions on this subject?&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-25T00:12:18.940" Title="Java abstract class naming" Tags="&lt;java&gt;&lt;naming-conventions&gt;" AnswerCount="3" />
  <row Id="29846" PostTypeId="2" ParentId="29792" CreationDate="2010-12-24T18:39:33.793" Score="-2" ViewCount="" Body="&lt;p&gt;YES! &#xA;Enforce singleton IDE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It makes problems when the project dependency change. if one introduce a new dependency to the project, then every one will waste time to introduce that new dependency, and some might fail and waste time on that process. HUGE WASTE OF TIME.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;there should be a REALLY good justification to add a different IDE to the team, meaning the saved time should surpass the time dedicated to migrate the system to different IDEs&lt;/p&gt;&#xA;" OwnerUserId="5260" LastActivityDate="2010-12-24T18:39:33.793" />
  <row Id="29847" PostTypeId="2" ParentId="29845" CreationDate="2010-12-24T18:50:41.927" Score="2" ViewCount="" Body="&lt;p&gt;I would name the abstract class &lt;code&gt;AjaxActionBase&lt;/code&gt; and suffix child classes with either 'Action' or 'AjaxAction', whichever ended up more naturally readable for the actions I needed to create.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-24T18:50:41.927" />
  <row Id="29848" PostTypeId="1" AcceptedAnswerId="29942" CreationDate="2010-12-24T19:02:47.283" Score="0" ViewCount="200" Body="&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm implementing a method that temporarily sets an index to a specific value, and when called again, sets it back to the previous value.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;eq::Canvas *canvas = getCanvases()[0]; // TODO: current canvas?  BUG WARNING XXX&#xA;&#xA;// Init to invalid indices.&#xA;static uint prior_index = EQ_ID_INVALID;&#xA;static uint calibration_index = EQ_ID_INVALID;&#xA;&#xA;// if calibration index hasn't been set, set it now.&#xA;if (calibration_index &amp;gt; EQ_ID_MAX) {&#xA;    for (uint i = 0; i &amp;lt; getLayouts().size(); i++) {&#xA;        if (getLayouts()[i]-&amp;gt;getName().compare(&quot;calibration&quot;) == 0 ) {                  calibration_index = i;&#xA;        }&#xA;    }&#xA;}&#xA;&#xA;// if it is currently the calbration, set to prior index&#xA;if (canvas-&amp;gt;getActiveLayoutIndex() == calibration_index) {&#xA;    canvas-&amp;gt;useLayout(prior_index);&#xA;&#xA;// if we are not calibrating, store current index and set to calibration.&#xA;} else if (calibration_index &amp;lt;= EQ_ID_MAX) {&#xA;    prior_index = canvas-&amp;gt;getActiveLayoutIndex();&#xA;    canvas-&amp;gt;useLayout(calibration_index);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(Obj-C++)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code works fine, but I'm wondering whether &lt;code&gt;prior_index&lt;/code&gt; and &lt;code&gt;calibration_index&lt;/code&gt; should be class members, or are they fine being static method variables? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What pitfalls could I encounter doing it this way?  Should I do it another way, and why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&lt;/p&gt;&#xA;" OwnerUserId="7499" LastActivityDate="2010-12-25T09:42:32.457" ClosedDate="2010-12-25T16:59:54.270" Title="Static Method Variables vs Class Members" Tags="&lt;best-practices&gt;&lt;variables&gt;&lt;static&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="29849" PostTypeId="2" ParentId="29782" CreationDate="2010-12-24T19:08:17.530" Score="0" ViewCount="" Body="&lt;p&gt;I have to disagree with the need or usefulness of a debugger. In any multi-threaded environment a debugger is next to useless especially in an embedded platform. printf FTW!! For a novice programmer my suggestion would be start keeping a list of common mistakes you make. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&#xA;Are you checking all your return values? &#xA;Are you checking for boundary conditions?&#xA;Are you initializing all your variables?&#xA;Are you checking for NULL before dereferencing a pointer?&#xA;Are you validating all you input parameters?&#xA;Are your linked list insertions and deletions correct?&#xA;Do you have the correct protection mechanisms around shared data/resources. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After you gain more experience knowing where to start looking for problems become more intuitive. I think the hardest part about being a novice program is lack of knowledge/experience with the platform they start working on. I used to be amazed when a more senior developer would look at a bug that I was working on and solve it 10mins after I had worked on it for 2 days. They were not any smarter than me, but the knowledge of how the system worked including how different subsystems interacted allowed them to make an educated hypothesis about what was going on based on the behavior of the bug. I can not stress enough how helpful it is to know as much about the platform that you are working as you can. Know your limits and do not be afraid to ask the more senior people for help. Also, if they do happen to help you make SURE that you have them explain exactly what was going on and make SURE that YOU understand what was causing the bug. Each bug is another opportunity to learn more about the platform that you are working on. The more you know the easy it is to debug.  &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2010-12-24T19:08:17.530" />
  <row Id="29850" PostTypeId="2" ParentId="29848" CreationDate="2010-12-24T19:09:55.513" Score="1" ViewCount="" Body="&lt;p&gt;Shouldn't matter.  I don't know Obj-C++, but in C that would work just fine.  It also completely encapsulates the variables.&lt;/p&gt;&#xA;" OwnerUserId="9521" LastActivityDate="2010-12-24T19:09:55.513" CommentCount="1" />
  <row Id="29851" PostTypeId="2" ParentId="1890" CreationDate="2010-12-24T19:10:21.863" Score="0" ViewCount="" Body="&lt;p&gt;You need to give a more specific example, but:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;private int count&lt;/code&gt;, &lt;code&gt;private int badFileCount&lt;/code&gt;, &lt;code&gt;private static readonly int ReconnectAttemptsLimit&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, you get all this &lt;strong&gt;FREE&lt;/strong&gt; when you install and start using the latest and greatest &lt;code&gt;MSFT Stylecop&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-12-24T19:10:21.863" />
  <row Id="29852" PostTypeId="1" AcceptedAnswerId="29863" CreationDate="2010-12-24T19:13:14.817" Score="12" ViewCount="293" Body="&lt;p&gt;&lt;strong&gt;Does it happen only to me or is this familiar to you too?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's like this: You have to create something; a module, a feature, an entire application... whatever. It is something interesting that you have never done before, it is challenging.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you start to think how you are going to do it. You draw some sketches. You write some prototypes to test your ideas. You are putting different pieces together to get the complete view.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You finally end up with a design that you like, something that is simple, clear to everybody, easy maintainable... you name it. You covered every base, you thought of everything. You know that you are going to have this class and that file and that database schema. Configure this here, adapt this other thingy there etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But now, after everything is settled, you have to sit down and actually write the code for it. And is not challenging anymore.... Been there, done that! Writing the code now is just &quot;formalities&quot; and makes it look like re-iterating what you've just finished.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At my previous job I sometimes got away with it because someone else did the coding based on my specifications, but at my new gig I'm in charge of the entire process so I have to do this too ('cause I get payed to do it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I have a pet project I'm working on at home, after work and there is just me and no one is paying me to do it. I do the creative work and then when time comes to write it down I just don't feel like it (lets browse the web a little, see what's new on &lt;a href=&quot;http://programmers.stackexchange.com/&quot;&gt;P.SE&lt;/a&gt;, on &lt;a href=&quot;http://stackoverflow.com/&quot;&gt;SO&lt;/a&gt; etc). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just want to move to the next challenging thing, and then to the next, and the next...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does this happen to you too? How do you deal with it? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you convince yourself to go in and write the freaking code?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll take any answer.&lt;/p&gt;&#xA;" OwnerUserId="7197" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-12-24T20:03:37.943" LastActivityDate="2010-12-24T23:14:59.760" Title="Motivating yourself to actually write the code after you've designed something" Tags="&lt;coding&gt;&lt;motivation&gt;&lt;personal-projects&gt;&lt;writing&gt;&lt;creativity&gt;" AnswerCount="9" CommentCount="3" FavoriteCount="4" />
  <row Id="29853" PostTypeId="2" ParentId="29852" CreationDate="2010-12-24T19:21:29.900" Score="1" ViewCount="" Body="&lt;p&gt;It's definitely not just you! I'm actually putting a project off right now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Nobody can motivate you but yourself.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Create a realistic time-line and challenge yourself to complete each section on time. You have nothing to show for projects if they never get passed the design phase.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-24T19:21:29.900" />
  <row Id="29854" PostTypeId="2" ParentId="29852" CreationDate="2010-12-24T19:24:45.950" Score="2" ViewCount="" Body="&lt;p&gt;I can definitely relate to that.  I love taking on the challenge of things I haven't encountered, but I have a hard time starting working on anything that I have already solved.  The biggest thing I do is just force myself to sit down with a goal of getting X done and functioning.  Usually once I get going I end up having fun and get more than done than I set out in the first place, but if I don't force a goal, ill just drft for hours.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm also with you in that this happens more at home on sidework than in the office.  I don't know if its more distractions, being burnt from work or what...&lt;/p&gt;&#xA;" OwnerUserId="11099" LastActivityDate="2010-12-24T19:24:45.950" />
  <row Id="29855" PostTypeId="2" ParentId="29852" CreationDate="2010-12-24T19:33:22.440" Score="2" ViewCount="" Body="&lt;p&gt;I do certainly understand your frustration as I've been through it myself before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Despite fearing some flames from the community as I know this isn't a great approach, I'll share my approach for &lt;em&gt;side projects&lt;/em&gt; with you. Please note that this method works for me and I use it on medium/long term projects, I wouldn't do it for something small (as I usually have the motivation to finish it in one go).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Grab the whole project and break it into 'packages', each one consisting of parts that are going to interact with each other often. Then divide each package into small pieces (think a few hours max) that you can design and code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally you'd be able to complete each piece in whatever time you allocate for your side project for a day but that's not required (depends on the person).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I don't set myself up with an estimated timeframe for each piece because I just get dissapointed and demotivated once I fail that estimate, hence, I do not recommend that. Take your time but don't take too long either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now each small piece gets all of the stages in your normal development process, designing, testing, implementation and whatever else you need to do. The idea is to give each piece a good kick-start but not a full blown finishing touch, yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This keeps my motivation up because I know that after a couple hours of actual coding boring stuff I'll have more designing to do (yummy). Don't let yourself stray from your goals, just keep doing that dreadful task and it'll soon be over and done with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After you've been through all of the pieces, look at the package. See how it works, what's it doing, review the &lt;em&gt;whole&lt;/em&gt; package again. I'm sure there will be changes and tweaks, do those now. Keep the most vital information in your mind as you will need it when working on all the other packages. Keep notes too, they help a lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go through each package and keep remembering all the others you did before, how is the new code you're writing going to interact with stuff you wrote a week ago? Don't be afraid to lookup stuff you've already written and maybe forgot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, when you're all out of packages, I usually let it go for a few days, give myself a rest and focus on something else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Normally I'm itching to go back and start interwining the packages and do some playful testing, there's not that much more code to write and the goal is near, that's motivation enough for me then.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps you with your endeavours.&lt;/p&gt;&#xA;" OwnerUserId="11592" LastActivityDate="2010-12-24T19:33:22.440" />
  <row Id="29856" PostTypeId="2" ParentId="20927" CreationDate="2010-12-24T19:38:25.090" Score="2" ViewCount="" Body="&lt;p&gt;&lt;code&gt;Implement function/method(on c/c++/c# whatever), which calculates n-th item of Fibonacci sequence&lt;/code&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many guys could stuck on this. &#xA;If some solution is given - usually it uses recursion. &#xA;After that:  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Implement the same via 'for'-loop&lt;/code&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can't tell you, how many fellows fail to complete both tasks - 50% of candidates.&lt;br&gt;&#xA;That's why I like it :)&lt;/p&gt;&#xA;" OwnerUserId="11530" LastActivityDate="2010-12-24T19:38:25.090" CommunityOwnedDate="2011-02-15T14:41:29.790" CommentCount="3" />
  <row Id="29857" PostTypeId="2" ParentId="29852" CreationDate="2010-12-24T19:49:58.693" Score="3" ViewCount="" Body="&lt;h2&gt;You need rapid prototyping, at home.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;When you apply the same level of professional rigor on a private personal project, it easily results in over-engineering. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is perfectly acceptable to set a high standard for a personal project, but you must understand that you may not have enough resources (coding hours, in addition to your 8 hours of daily work) to make progress on the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the most essential goal in your pet project? To prove the usefulness of one of your insights? If this is the case, then trim down the project until it becomes a &lt;em&gt;proof-of-concept&lt;/em&gt; project. Then, use rapid prototyping so that you can accomplish more with less coding time.&lt;/p&gt;&#xA;" OwnerUserId="620" LastEditorUserId="620" LastEditorDisplayName="" LastEditDate="2010-12-24T20:00:12.697" LastActivityDate="2010-12-24T20:00:12.697" />
  <row Id="29858" PostTypeId="2" ParentId="29839" CreationDate="2010-12-24T19:50:08.203" Score="0" ViewCount="" Body="&lt;p&gt;When dealing with the scope of a project, generally it is better to use a measure of Function Points rather than &lt;a href=&quot;http://en.wikipedia.org/wiki/Source_lines_of_code&quot; rel=&quot;nofollow&quot;&gt;Lines of Code&lt;/a&gt;.  Because software projects can have upwards of millions of LOC (including LOC in libraries) the number becomes relatively meaningless.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you measure LOC if you're calling functionality from libraries?  Do you include LOC from libraries?  If you don't include LOC from libraries, does your boss not thing you're writing enough LOC?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally, it is better to say &quot;I completed XXX functionality&quot; rather than &quot;I wrote XXX lines of code&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I suggest you see for yourself.  &lt;a href=&quot;http://groups.engin.umd.umich.edu/CIS/course.des/cis525/js/f00/harvey/FP_Calc.html&quot; rel=&quot;nofollow&quot;&gt;Is it easier for you to estimate Function Points&lt;/a&gt; or Lines of Code?  Plug those results into the &lt;a href=&quot;http://csse.usc.edu/tools/COCOMOII.php&quot; rel=&quot;nofollow&quot;&gt;COCOMO II model&lt;/a&gt;, and see which is easier to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, this &lt;a href=&quot;ftp://ftp.usc.edu/pub/soft_engineering/COCOMOII/cocomo99.0/modelman.pdf&quot; rel=&quot;nofollow&quot;&gt;COCOMO II Manual&lt;/a&gt; gives a detailed description of Function Points and LOC around page 11.  Hopefully that's enough for you to go on.&lt;/p&gt;&#xA;" OwnerUserId="7499" LastActivityDate="2010-12-24T19:50:08.203" />
  <row Id="29859" PostTypeId="2" ParentId="29852" CreationDate="2010-12-24T19:56:24.500" Score="5" ViewCount="" Body="&lt;p&gt;I guess it's just me, but I have the opposite problem.  I usually have trouble thinking of all the details before I start writing the code and actually run into the relevant issues.  Realistically, I usually have only a vague design in my head when I start coding something.  My big challenge is getting myself to think of all the details and have a design upfront.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2010-12-24T19:56:24.500" CommentCount="2" />
  <row Id="29860" PostTypeId="2" ParentId="29845" CreationDate="2010-12-24T20:01:59.993" Score="6" ViewCount="" Body="&lt;p&gt;Choose &lt;em&gt;something&lt;/em&gt;, and be consistent. Whether you use the suffix &lt;code&gt;Base&lt;/code&gt; to indicate an intended base class, or the prefix &lt;code&gt;Abstract&lt;/code&gt;, just be consistent about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are as many opinions on this kind of thing as there are, well, programmers. My opinion, for what it's worth, as that consistency in naming, within a project (or development group or whatever) is more important than any specific naming scheme.&lt;/p&gt;&#xA;" OwnerUserId="11596" LastActivityDate="2010-12-24T20:01:59.993" />
  <row Id="29861" PostTypeId="2" ParentId="29832" CreationDate="2010-12-24T20:13:33.110" Score="1" ViewCount="" Body="&lt;p&gt;I always thought a bug is just a story that already has a failing test, thus it's better defined than the typical first draft of stories for features. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you are convinced that bugs are stories, you treat them as you would other stories in regards to estimations and priorities.&lt;/p&gt;&#xA;" OwnerUserId="11587" LastActivityDate="2010-12-24T20:13:33.110" />
  <row Id="29862" PostTypeId="2" ParentId="1890" CreationDate="2010-12-24T20:19:47.700" Score="0" ViewCount="" Body="&lt;p&gt;I have ReSharper name my variables, not only mine but everyone else does this as well. There is a great amount of consistency trough the project.&lt;/p&gt;&#xA;" OwnerUserId="9635" LastActivityDate="2010-12-24T20:19:47.700" />
  <row Id="29863" PostTypeId="2" ParentId="29852" CreationDate="2010-12-24T20:25:00.500" Score="2" ViewCount="" Body="&lt;p&gt;If the challenge for you is in designing and not implementing, maybe you need a different motivating factor:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's a pet project (not for work), I actually look forward to seeing it come alive, so designing it isn't enough for me.  When you come up with your own pet projects, what's the goal?  Is it for something you need to use?  If so, you can use that as the motivation for implementing it.  To see it work.  To provide the functionality you were looking to get out of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you planning on making it available for others?  A motivating factor could be seeing them benefit from the final product.  They're not going to get the utility out of it if it's just in design mode.  And if you plan on marketing it, use the fact that nobody is going to pay for your pet project while it's stuck in design mode, as a motivating factor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I work on my own thing, I take a more iterative approach than I could at work -- I don't worry about all the details before generating something.  It may take longer, but 1) since it's only for me (or for someone who doesn't even know it exists in any form yet), then I have the flexibility to experiment and take my time.  2) I spend a bunch of cycles refactoring and learning better ways of doing things.  On my own dime, figuratively speaking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately, though, isn't the real satisfaction in seeing something come to life out of thin air?  That's what does it for me.  If that doesn't do it for you, unless your motivation is the final product, then I'm not sure I understand why you want to work on the pet project at all.  If designing is what juices you, and you do that at work, you seem to already get the satisfaction you're looking for.&lt;/p&gt;&#xA;" OwnerUserId="10397" LastActivityDate="2010-12-24T20:25:00.500" />
  <row Id="29864" PostTypeId="2" ParentId="29832" CreationDate="2010-12-24T20:36:25.640" Score="1" ViewCount="" Body="&lt;p&gt;I think the best way to approach this is to determine what you actually want to consider a Bug first. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of developers will not consider something that isn't working as intended that they are currently working on as not a bug, because it is honestly not a bug. If you are currently working on something and it still has defects then the specific bug isn't actually complete so there isn't an actual defect. The inverse applies to completed work, if you have determined that something is complete and ready for testing/release/production and you later find a defect in the code or use then you definitely have a bug. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My company uses the following methodology to determine when a bug should be corrected:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the bug is critical then it is added to the current sprint related to that product, at the appropriate priority. Typically we plan in approximately 10% extra time to allow for this into a sprint, as well as having the extra things that we don't actually plan on completing but if we have no bugs or something was completed faster than we expected we can then complete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a bug isn't critical then we simply add it to the backlog and normally complete it in the next sprint.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;why this is the ideal flow there is some obvious leak to it, and sometimes things that aren't 'critical' from a programming perspective may need to be completed immediately if management decides that it needs to be completed earlier than we think it should be completed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In an aside I think that the best thing to do is to pick a structure and then stick with it. Some of the biggest losses to productivity start occurring when you start doing things without structure. Once you start degrading your structure it is very easy for it to go all downhill.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That may have overly answered your question, but those are just my thoughts on how these things should be handled.&lt;/p&gt;&#xA;" OwnerUserId="1760" LastActivityDate="2010-12-24T20:36:25.640" />
  <row Id="29865" PostTypeId="1" CreationDate="2010-12-24T20:38:37.810" Score="1" ViewCount="133" Body="&lt;p&gt;I am software engineer living in Poland and I would like to relocate abroad. I was thinking about Australia or Canada and I would like to do that in the next 6 - 9 months. Could you give me some advice about what should I focus at and what is important in that process?&lt;/p&gt;&#xA;" OwnerUserId="9753" LastActivityDate="2010-12-25T04:32:04.557" ClosedDate="2010-12-25T16:59:39.323" Title="Relocating from Poland" Tags="&lt;jobs&gt;" AnswerCount="1" CommentCount="4" />
  <row Id="29866" PostTypeId="1" CreationDate="2010-12-24T21:00:48.250" Score="1" ViewCount="310" Body="&lt;p&gt;Hey... its XMAS Eve and something is bugging me... yes, I have work on my mind even when I am on holiday. The vast amount of frameworks available for PHP now use MVC. Even ASP.net has its own MVC module.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can see the attraction of MVC, I really can and I use it frequently. The only downside that I can see is that you have to fire up the whole system to execute a page request. Depending on your task this can be a little wasteful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the question. In a professional environment is this the only way to use PHP nowadays or are their other design methods which have alternative benefits?&lt;/p&gt;&#xA;" OwnerUserId="11598" LastActivityDate="2010-12-28T19:44:48.773" Title="Is MVC now the only way to write PHP?" Tags="&lt;php&gt;&lt;mvc&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="29867" PostTypeId="2" ParentId="29866" CreationDate="2010-12-24T21:03:22.933" Score="0" ViewCount="" Body="&lt;p&gt;The thing to think about is not whether using an MVC framework is justified, it's &lt;strong&gt;maintainability&lt;/strong&gt;. Sure, it may be small now, but will it always be?&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-24T21:03:22.933" CommentCount="2" />
  <row Id="29868" PostTypeId="2" ParentId="29848" CreationDate="2010-12-24T21:15:09.893" Score="0" ViewCount="" Body="&lt;p&gt;Would use of static vars in this manner introduce potential race condition?&lt;/p&gt;&#xA;" OwnerUserId="9793" LastActivityDate="2010-12-24T21:15:09.893" CommentCount="2" />
  <row Id="29869" PostTypeId="2" ParentId="29852" CreationDate="2010-12-24T21:18:57.603" Score="2" ViewCount="" Body="&lt;p&gt;I think problem is in incorrect goal. It look like that you set goal &quot;design system&quot;. And then you do it well, and goal is reached. So one suggestion is to set another goal &quot;implement system&quot;, but then it is more related to motivation and how you do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is one other way that worked for me well: set initial goal as &quot;deliver system to specific users&quot; instead of &quot;design system&quot; or &quot;make system&quot;. In this way, you won't be satisfied, until users get something valuable. And you do it well from beginning (including testing and other modern fancy stuff). &lt;/p&gt;&#xA;" OwnerUserId="4784" LastActivityDate="2010-12-24T21:18:57.603" />
  <row Id="29870" PostTypeId="1" CreationDate="2010-12-24T21:33:05.097" Score="7" ViewCount="383" Body="&lt;p&gt;So, we've got a product, written in Perl. Mind you, it's &lt;em&gt;good&lt;/em&gt; Perl, pretty well object-oriented, with a strong functional-programming influence, extensive test suites, and it's an agile environment doing Extreme Programming with elements of Scrum.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We also have about 4 open headcount that we're trying to fill sooner rather than later, and we've historically had trouble filling even just one or two. I've been taking a look at the sort of candidates that our existing postings seem to be attracting, and they're not particularly impressive. Most of them have a background in QA automation or something similar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We know that we can take good OO software engineers who know Python or Ruby or even just C++/Java and bring them up to speed quickly enough. We're pretty good at being able to pitch the actual job itself to qualified candidates if we have their ear. What we're not good at, it seems, is attracting these people to our postings in the first place.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What sort of things can we do to market ourselves to these engineers?&lt;/li&gt;&#xA;&lt;li&gt;What sort of things should we be careful to avoid in job postings and the like?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(The posting is omitted since I don't want to get in any trouble by doing an end-run around the job-board. Also, our current in-house recruiter isn't helping much.... rumors are his days are numbered and I'm not at all surprised...)&lt;/p&gt;&#xA;" OwnerUserId="2348" LastActivityDate="2010-12-25T03:32:57.627" Title="How do you look for programmers when your project's not in a particularly popular language?" Tags="&lt;hiring&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="2" />
  <row Id="29871" PostTypeId="2" ParentId="29870" CreationDate="2010-12-24T21:44:56.173" Score="4" ViewCount="" Body="&lt;p&gt;Consider the nearest Perl Users Group.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-24T21:44:56.173" CommentCount="1" />
  <row Id="29872" PostTypeId="2" ParentId="29870" CreationDate="2010-12-24T21:48:04.377" Score="2" ViewCount="" Body="&lt;p&gt;Emphasize more on the nature and impact of your project, but less on the language itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of the QA Automation candidates may actually fit in your project. You may be able to devise a strategy that can identify the right one. With that strategy in mind, you will not need to reject them on the basis of backgrounds.&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-12-24T21:48:04.377" CommentCount="1" />
  <row Id="29873" PostTypeId="2" ParentId="29866" CreationDate="2010-12-24T21:50:41.003" Score="1" ViewCount="" Body="&lt;p&gt;Well there are a lot of other approaches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;MVC is just popular because it suits most situations (or better said can be used in most situations) and has established itself as a de-facto standard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What can be said is that every programming/design pattern - or more specific architectural - depends on some classification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those are often (of course they can be devided further):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;User Interface (pretty images, forms etc)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Application (your application logic and stuff that needs to be secured from the client - ak lot of that can often be done in the user inteface, eg. by javascript)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Database - self explaining&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Infrastructure (very basic stuff like hard disk, server systems, network etc.)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Of course there is always the naive, procedural straight-forward approach but also a lot fo other patterns that can link and structure the access and controlling to these basic layers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mvc is one of them. But here are some example of others:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Model_View_ViewModel&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Model_View_ViewModel&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Model_View_Presenter&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Model_View_Presenter&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/140098/is-mvc-ars-preferable-to-classic-mvc-to-prevent-overloading&quot;&gt;http://stackoverflow.com/questions/140098/is-mvc-ars-preferable-to-classic-mvc-to-prevent-overloading&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And here a lot more:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="3594" LastActivityDate="2010-12-24T21:50:41.003" CommentCount="1" />
  <row Id="29874" PostTypeId="2" ParentId="29788" CreationDate="2010-12-24T22:02:33.277" Score="0" ViewCount="" Body="&lt;p&gt;I done so much... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is my current approach for situations when there is &quot;something working&quot;, and you need to make it &quot;work in some other way&quot;.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Get goals, that system should solve (if they not written) - write it. Ask manager, other employees, even former if they available. Ask customer or search any piece of documentation.&lt;/li&gt;&#xA;&lt;li&gt;Get specificatio. If it not exist - write it. It is not worth to ask someone for it, as if it is not exist, then you are in situation when other don't care much. So only way to write own (later it will be much easier refer to it).&lt;/li&gt;&#xA;&lt;li&gt;Get design. Not exist - write it. Try to refer to any documents and source code as much as possible. &lt;/li&gt;&#xA;&lt;li&gt;Write detailed design to part that you need to change. &lt;/li&gt;&#xA;&lt;li&gt;Define how you test it. So you could be sure that old and new code work in same way.&lt;/li&gt;&#xA;&lt;li&gt;make system be able to be build in one step. And test with old code. Put it to SVC if it is not already.&lt;/li&gt;&#xA;&lt;li&gt;Implement changes. Not earlier. &lt;/li&gt;&#xA;&lt;li&gt;verify after a month or so, that nothing is broken.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;One more optional todo that may require between each step: f off manager (project owner) who tell you that &quot;these changes should be done already yesterday&quot;. After few projects, he may even start helping to get specs and docs in advance. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But usually (especially for scripts) it just not possible in business scope (cost will be too high, while value will be to low). One option is not to do any changes, until critical mass reached, and system goes off from production (e.g. new system will come) or management decided that all these is worth to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: I remember one code that were used for 5 clients with different settings. And each change (new feature) were required thinking of &quot;what parts are used&quot;, and &quot;what configuration clients have&quot; so not to brake anything, and not to copypaste code. Putting their settings to project cvs, and writing specs, reduces this thinking time almost to 0.&lt;/p&gt;&#xA;" OwnerUserId="4784" LastActivityDate="2010-12-24T22:02:33.277" CommentCount="2" />
  <row Id="29875" PostTypeId="2" ParentId="9723" CreationDate="2010-12-24T22:16:24.517" Score="3" ViewCount="" Body="&lt;p&gt;I worked with a physically-disabled programmer and the only problem we had was with evacuation during fire drills. We had a special chair-type unit designed to work on stairs. During a drill someone would act as stand-in for the guy and get in the chair and another person would handle wheeling this person to stairs and negotiating 3 flights. The reason we didn't actually take the guy during a drill was the risk of injuring him in just a drill - going down the stairs was a bit rough on a person's back. &lt;/p&gt;&#xA;" OwnerUserId="11603" LastActivityDate="2010-12-24T22:16:24.517" />
  <row Id="29876" PostTypeId="2" ParentId="29852" CreationDate="2010-12-24T22:26:01.423" Score="0" ViewCount="" Body="&lt;p&gt;Apart from being indeed a matter of motivation, I think that a part of the solution can be found in combining the designing and the coding process. That's how I do it mostly. Basically it comes down to implement the basics of your design when you thought of that, and then move to the next step. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eg : If I have designed my basic classes, I write them out and run some tests on it. Then I have designed an underlying database, I set it up and test it out. Next I have the methods and functions I need for getting everything in/out of the database, I go on that. The testing is done more easily as I have my basic classes ready already. And when I finally come to design the user interface, I have already a whole set of code ready to play around with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now this assumes you also design in blocks that are linked through interfaces. I don't know the expensive word for it, as I'm not a programmer by education, but you know what I mean.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps.&lt;/p&gt;&#xA;" OwnerUserId="7268" LastActivityDate="2010-12-24T22:26:01.423" />
  <row Id="29877" PostTypeId="2" ParentId="29870" CreationDate="2010-12-24T22:31:52.967" Score="3" ViewCount="" Body="&lt;p&gt;Are you restricted by your geographic location? Are you only trying to attract people from within a certain area. If you have a specific skillset requirement, you may need to cast a broad net. You don't specify how you're seeking people. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you allow work-from-home? If not, why not. What is it about your development that can't be done remotely. Maybe you could have someone on-site for a few weeks and then let them go home. That would expand considerably the people that might be interested in working for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do your postings reflect that you value these skills. That you're pro-active in supporting education and knowledge. That you encourage activity on forums, user-groups, etc. That your enterprise understands and promotes the value of expertise?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And of course, what are the rates you're paying. Too often I see that companies don't adequately value a specialist skill-set. Rather than valuing what cost-benefit the company may attract from that resource(person) they just think of what pay scale a programmer should fall into. But if your company can earn big $ from what that person produces, review the pay scale! (If I make or save your company $500K per year, what percentage of that am I worth?).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, if you're not attracting the right people, you need to look inward first.&lt;/p&gt;&#xA;" OwnerUserId="11603" LastActivityDate="2010-12-24T22:31:52.967" CommentCount="1" />
  <row Id="29878" PostTypeId="1" CreationDate="2010-12-24T22:41:51.477" Score="5" ViewCount="295" Body="&lt;p&gt;Im thinking about switching to linux (since I dont play games at PC anymore).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know how to use desktop and bash, but I heard there is a lot of cool stuff you can do with linux that you cant with windows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So programming-wise what linux offers me that windows cant?(except faster reading/writing to a lot of files)&lt;/p&gt;&#xA;" OwnerUserId="929" LastActivityDate="2010-12-24T23:33:24.047" ClosedDate="2010-12-26T17:56:10.430" Title="What cool programming things can you do on linux?" Tags="&lt;linux&gt;&lt;features&gt;" AnswerCount="3" FavoriteCount="4" />
  <row Id="29879" PostTypeId="2" ParentId="29738" CreationDate="2010-12-24T22:43:50.813" Score="1" ViewCount="" Body="&lt;p&gt;I'm a bit shocked and disappointed from the answer Pierre303 has given here. I feel it's completely beside the truth. I will tell you this, if you dont study for these examns you will fail. This is especially true for the introductory examn 70-536. You will need to know a lot of technical details. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now the value of these examns is certainly up for debate. Personally I feel there is no substitute for experience but if you have the knowledge then get the certification. It's not all saying but it does count for something. &lt;/p&gt;&#xA;" OwnerUserId="7376" LastActivityDate="2010-12-24T22:43:50.813" />
  <row Id="29880" PostTypeId="2" ParentId="9723" CreationDate="2010-12-24T23:03:36.420" Score="2" ViewCount="" Body="&lt;p&gt;There is always a risk. I have heard backroom chats where candidate characteristics are discussed &quot;off the record&quot; (might get married/pregnant). Like someone else mentioned, most likely a blessing to be skipped by such places.&lt;/p&gt;&#xA;" OwnerUserId="9793" LastActivityDate="2010-12-24T23:03:36.420" />
  <row Id="29881" PostTypeId="2" ParentId="29852" CreationDate="2010-12-24T23:14:59.760" Score="2" ViewCount="" Body="&lt;p&gt;I have &lt;em&gt;always&lt;/em&gt; found that the original assumptions did not hold entirely and more or less of the original design had to be changed based on experience gathered while doing the actual implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you consider your design to be absolutely infallible and perfect after drawing some boxes, but before actually trying it out, I would consider you a perfect candidate for some project implementations. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Shipping is a feature.  If you don't go the whole distance, you are just an architect.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-24T23:14:59.760" CommentCount="3" />
  <row Id="29882" PostTypeId="2" ParentId="27564" CreationDate="2010-12-24T23:17:28.933" Score="1" ViewCount="" Body="&lt;p&gt;I really would like to have annotations.. afaik that RFC has been dropped.&lt;/p&gt;&#xA;" OwnerUserId="11605" LastActivityDate="2010-12-24T23:17:28.933" CommunityOwnedDate="2010-12-24T23:17:28.933" />
  <row Id="29883" PostTypeId="2" ParentId="9723" CreationDate="2010-12-24T23:24:41.403" Score="2" ViewCount="" Body="&lt;p&gt;Recenty I read a blog from a well-known blogger where he stated he couldnt take a programmer seriously if he wasnt a good typist. Now I dont recall his exact words and I guess he probably meant, if you type code a lot it's a given you also learn to type fast and well. But I would be interested to see his answer to this one.&lt;/p&gt;&#xA;" OwnerUserId="7376" LastActivityDate="2010-12-24T23:24:41.403" CommentCount="4" />
  <row Id="29884" PostTypeId="2" ParentId="29878" CreationDate="2010-12-24T23:28:37.743" Score="0" ViewCount="" Body="&lt;p&gt;The 'time' command. When I did my programming in windows I always had to implement some kind of timing functionality in my programs to measure the efficiency. Not anymore! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Git being natively supported really helps me now as well. I always wanted to use git with windows, but it didn't feel right in a Windows development environment. Switching to Linux allows my to use all the command line version management tools I could't use on Windows.&lt;/p&gt;&#xA;" OwnerUserId="7682" LastActivityDate="2010-12-24T23:28:37.743" CommentCount="1" />
  <row Id="29885" PostTypeId="2" ParentId="29878" CreationDate="2010-12-24T23:28:47.133" Score="0" ViewCount="" Body="&lt;p&gt;Theoretically, anything that can be done on one operating system can be done on another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And since most of Linux's tools are open source, they can be ported to Windows and Mac as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you do get from Linux is an open source OS, a better security model, better kernel.&lt;/p&gt;&#xA;" OwnerUserId="10961" LastActivityDate="2010-12-24T23:28:47.133" CommentCount="4" />
  <row Id="29886" PostTypeId="2" ParentId="2730" CreationDate="2010-12-24T23:31:23.687" Score="2" ViewCount="" Body="&lt;p&gt;Automatic multi-threaded model that's easy to use and safe!&lt;/p&gt;&#xA;" OwnerUserId="10961" LastActivityDate="2010-12-24T23:31:23.687" CommentCount="1" />
  <row Id="29887" PostTypeId="2" ParentId="29878" CreationDate="2010-12-24T23:33:24.047" Score="5" ViewCount="" Body="&lt;p&gt;Compilers, interpreters and other tools for a wider variety of programming languages than you ever thought existed - all available through the distro repository.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Development libraries and other tools of a wide variety from the same repository.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Access to complete source code and documentation for &lt;em&gt;almost&lt;/em&gt;&lt;sup&gt;1&lt;/sup&gt; every program and library that you can download.... &lt;em&gt;from the same repository.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, of course, all of this is free, in every sense of the word.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, for the use of shell scripts, there are a variety of commands and special files that collect or provide all of the functionality and data for which you would otherwise have to buy a $30 program to get half of the features in a broken graphical interface. Searching and scanning files, &quot;finding&quot; files on the system, complex text processing, a wide range of inter-networking tools, and almost everything else you will ever need... installed by default&lt;sup&gt;2&lt;/sup&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt; There are often a few closed-source programs available in the distro repository, but these are usually clearly labeled.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;2&lt;/sup&gt; There are a few useful tools that aren't installed by default, but they're not often needed for common tasks.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-12-24T23:33:24.047" CommentCount="1" />
  <row Id="29888" PostTypeId="2" ParentId="9723" CreationDate="2010-12-24T23:51:19.853" Score="0" ViewCount="" Body="&lt;p&gt;When I was at university, there was a girl on my course (Computing) who had deformity in her arms from thalidomide, and only had short protrusions from her shoulders with I think two fingers on each.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;She could type, not overly fast, and in an odd manner, but she got by.  Very bright girl, definitely an accomplished programmer, made no odds to her, or anyone else really.  Once you get over the initial double-take, which is inevitable, you forget about it.  Think she works for some major international now, IBM, or such like.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-24T23:51:19.853" />
  <row Id="29889" PostTypeId="2" ParentId="14162" CreationDate="2010-12-24T23:56:14.110" Score="1" ViewCount="" Body="&lt;p&gt;I use my own &lt;a href=&quot;http://www.thekbase.com&quot; rel=&quot;nofollow&quot;&gt;TheKBase&lt;/a&gt; (since I'm on OSX, I use it on .Net in a virtual machine or Mono, depending on my mood). For one concurrent user only, but: It allow for multiple hierarchies, so it goes from task manager to information manager missing no steps in between. Plus it's open source on &lt;a href=&quot;https://github.com/drosenstark/KBase&quot; rel=&quot;nofollow&quot;&gt;Github&lt;/a&gt; and free (that's obvious, I guess).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the curious, instructions are &lt;a href=&quot;http://thekbase.wetpaint.com/page/TheKBase+Desktop+Help&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-12-24T23:56:14.110" />
  <row Id="29890" PostTypeId="2" ParentId="29845" CreationDate="2010-12-25T00:12:18.940" Score="4" ViewCount="" Body="&lt;p&gt;When possible, I try to leave implementation details out of names, including a prefix/suffix for an abstract class or interface.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One place to look for guidance/inspiration on naming is the Java API. I can't think of any parts that use the prefix (with a huge exception being the Collections API, which uses the Abstract prefix heavily). The following search will yield some pretty good examples:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;a href=&quot;http://www.google.com/search?q=%22public%20abstract%20class%22%20at%20download.oracle.com/javase/6&quot; rel=&quot;nofollow&quot;&gt;&quot;public abstract class&quot; at download.oracle.com/javase/6&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You'll find abstract classes are named something abstract and concrete subclasses are named something more concrete. For example, abstract class &lt;code&gt;Reader&lt;/code&gt; has concrete subclasses &lt;code&gt;BufferedReader&lt;/code&gt;, &lt;code&gt;StringReader&lt;/code&gt;, &lt;code&gt;InputStreamReader&lt;/code&gt;, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since your concrete subclasses are just more specific versions of your abstract class, it is intent revealing to choose your names in the same way. In your example, I would name the abstract class &lt;code&gt;AjaxAction&lt;/code&gt; and use that in the names for the concrete subclasses (&lt;code&gt;SpecificAjaxAction&lt;/code&gt;).&lt;/p&gt;&#xA;" OwnerUserId="7852" LastActivityDate="2010-12-25T00:12:18.940" />
  <row Id="29891" PostTypeId="2" ParentId="9723" CreationDate="2010-12-25T00:15:46.080" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Hm, he/she only has one hand.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In most countries around the world, this sort of  &quot;criteria&quot; is actually ILLEGAL (it's in the same basket as discriminating based on race, eye-color, religion, etc.), and person who suspected that he/she wasn't hired merely because of their physical disability could go to an employment tribunal and press charges against the employer. &lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-25T00:15:46.080" />
  <row Id="29892" PostTypeId="2" ParentId="9723" CreationDate="2010-12-25T00:22:01.803" Score="1" ViewCount="" Body="&lt;p&gt;I have been on the receiving end of this once before. I am disabled, but not in a way that affects my programming ability. I was openly discriminated against at an interview for a programmer position when the disability was brought to light. It really shouldn't have been an issue, but it was made into a blocker. I was sent on my way without even having had the interview.&lt;/p&gt;&#xA;" OwnerUserId="8187" LastActivityDate="2010-12-25T00:22:01.803" CommentCount="1" />
  <row Id="29894" PostTypeId="2" ParentId="27564" CreationDate="2010-12-25T01:19:46.203" Score="2" ViewCount="" Body="&lt;p&gt;Generators. As in Python, with yield.&lt;/p&gt;&#xA;" OwnerUserId="5351" LastActivityDate="2010-12-25T01:19:46.203" CommunityOwnedDate="2010-12-25T01:19:46.203" CommentCount="5" />
  <row Id="29895" PostTypeId="2" ParentId="27564" CreationDate="2010-12-25T01:24:00.393" Score="2" ViewCount="" Body="&lt;p&gt;Ability to throw exceptions in __destructor or __toString. And, really, is there any explanation why it is not possible?&lt;/p&gt;&#xA;" OwnerUserId="5351" LastActivityDate="2010-12-25T01:24:00.393" CommunityOwnedDate="2010-12-25T01:24:00.393" CommentCount="3" />
  <row Id="29896" PostTypeId="1" CreationDate="2010-12-25T01:39:12.283" Score="6" ViewCount="436" Body="&lt;p&gt;Now that it's the end of the year, is there a particular piece of code you wrote during 2010 that you found extremely worthy, amusing, or simply extraordinary?&lt;/p&gt;&#xA;" LastActivityDate="2010-12-25T12:29:24.633" ClosedDate="2010-12-26T17:56:31.770" Title="What is the BEST piece of code your wrote in 2010?" Tags="&lt;fun&gt;" AnswerCount="9" CommentCount="2" FavoriteCount="1" />
  <row Id="29897" PostTypeId="2" ParentId="29896" CreationDate="2010-12-25T01:48:19.533" Score="11" ViewCount="" Body="&lt;p&gt;None, because in my attempts to write software that make &lt;a href=&quot;http://www.codinghorror.com/blog/2007/02/because-they-all-suck.html&quot; rel=&quot;nofollow&quot;&gt;computers suck&lt;/a&gt; less, 99% of what I write &lt;a href=&quot;http://www.codinghorror.com/blog/2006/03/sucking-less-every-year.html&quot; rel=&quot;nofollow&quot;&gt;is crap&lt;/a&gt;. The other 1% is still crap, but it's less crappy than the other 99%. Mind you, it's perfectly functional crap, but &lt;a href=&quot;http://www.codinghorror.com/blog/2004/10/we-make-shitty-software-with-bugs.html&quot; rel=&quot;nofollow&quot;&gt;it's crap&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;But if I had to pick, &lt;a href=&quot;http://stackoverflow.com/questions/4298408/5-years-later-is-there-something-better-than-the-fastest-possible-c-delegates/4300544#4300544&quot;&gt;my answer to this Stack Overflow question&lt;/a&gt; (and the related &lt;a href=&quot;http://www.codeproject.com/KB/cpp/CPPCallback.aspx&quot; rel=&quot;nofollow&quot;&gt;Code Project article&lt;/a&gt; that I wrote) is a contender, simply because I find it rather useful.&lt;/p&gt;&#xA;" OwnerUserId="5695" LastEditorUserId="5695" LastEditorDisplayName="" LastEditDate="2010-12-25T01:55:58.937" LastActivityDate="2010-12-25T01:55:58.937" CommentCount="1" />
  <row Id="29898" PostTypeId="1" CreationDate="2010-12-25T02:34:54.127" Score="9" ViewCount="311" Body="&lt;p&gt;Hello everyone. To start, I humbly apologize for the massive size of this question. Please feel free to comment and just leave some feedback, anything is appreciated. I hope this is the right place to ask such questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A little about me, I'm 25 years old and live in Portugal, where I was born and raised. I'm starting my Computer Science degree this year (due to a lot of factors I was unable to do so sooner) and plan to finish in 2013, if all goes well. My English skills are excellent, both written and spoken.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My technical background isn't amazing. I started around 2004 with PHP and have been doing it ever since. I've developed in other languages as well, namely, Actionscript 3 and Java (for Android and BlackBerry platforms). Also some Python and C# although these were mostly for pet projects and never made it onto any sort of production environment. I've studied object oriented designs and patterns, I've read books on assembly to get a better understanding of how software actually works (registers, memory addresses, cpu cycles, etc) among many other things that I've actually forgotten (and am very ashamed of that fact).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ever since I started working I've worked from home, usually to employers in the US, and have had some good experiences and some very bad ones too. This is currently a big part of my problem, as I'll detail a bit below. For the last two+ years I've been working for a top 500 e-commerce website (in 2008) where I am the single(!) programmer on the team, along with a web designer who coordinates most of my work. I also take care of some system administration tasks on a cluster of about 8 servers. It was good at the start, lots of movtivation, new things to learn, etc. Some long hours but I didn't care, I was doing what I love, getting paid reasonably for it and that's all that mattered to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Despite the fact that the code is 100% custom, things are scattered everywhere, absolute lack of documentation, coupled with the lack of source control, lack of testing (nor a QA team) and many other things, I kept going and presented results every time. Eventually, I just couldn't live without source control and implemented it but I still hear from my co-worker (who does graphics) complaints every single day. However, there's things going on that I just can't stand anymore. The need for more and more features without having any regard for old and highly deprecated code (there's stuff in there from 2003), the absolute lack of a spec and constant requirement changes (including pulling the plug on features when they're live) and, last but not least, the fact that we score 1/12 in the Joel Test. Can you guess what the one point is? Source control. Which I imposed on them. Oh and I'm on call 24/7, big mistake.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm considering leaving but I want to move on to another job where I can use different technologies or languages, and not debugging SQL for a 10 year old database schema that I absolutely cannot change or creating HTML forms on a daily basis. Or at least gain the knowledge to get a better job in the future, once I finish my college degree. Before you ask, I don't want to go into management. I absolutely love coding (designing, finding bottlenecks, solving problems, improving functionality and performance, etc) and anything that takes me away from it simply wouldn't be a good fit. Maybe when I'm old and forgetful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I lack the confidence to apply for other types of jobs unless they're junior positions, which I'm not sure if there are many for remote workers. If you're going to say I need some local office experience, I do have some. I've worked locally before and it wasn't a problem, except for the fact that the pay was horrible and I highly disliked the working conditions. I've also been in the US a few times working in office my current company, no problems whatsoever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I ask for help. As noted above, I work remotely (I don't qualify for a US work visa without a college degreee) so that shuts down &lt;strong&gt;a lot&lt;/strong&gt; of the possibilities I find. Working locally is really not an option because the pay is too low and I don't think people have a strong understanding of how software development works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So a few key questions are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I'm a good learner, is there something that I should absolutely learn that will give me the edge in applying for a job?&lt;/li&gt;&#xA;&lt;li&gt;Should I hold off from getting a job and complete my Computer Science degree, learning more in the process (I value real world experience a lot more than theory though) ?&lt;/li&gt;&#xA;&lt;li&gt;Is there a real market for people with my skill set, working remotely? Why can't I ever find any jobs? Am I looking in the wrong places?&lt;/li&gt;&#xA;&lt;li&gt;What kind of skills would you require a remote programmer to have if you were to ever hire one? And why?&lt;/li&gt;&#xA;&lt;li&gt;Can you convince people that remote is an option they can rely on or is this bad because then if they accept, they'll feel like they've already done you a favor and expect more in return?&lt;/li&gt;&#xA;&lt;li&gt;I never was the kind of person who logs off at 5:01 when your work schedule is 9 - 5, I stay as long as it's needed. Is this bad practice because people will start expecting this behaviour?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I'm sorry if this looks like a giant rant or complaint, it seems to have grown on me, I don't even see it anymore. I'm very confused on what to do and have been thinking about this for days straight. I am looking for thoughts and opinions, any and all are welcome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you for reading and for your input.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After thinking about it some more, a good idea seems to be to leave my current job, continue my education and learn everything else I can in the process. Doing projects with different programming languages seem to be a good way of gaining intrinsic knowledge of how they work and how to use them properly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My concern is that I still need some income to put food on my table. I'm leaning towards a part time job that allows me to dwelve into alternative technologies, even if it doesn't pay much (just gets me through the month). This will likely build a resume and with the background I already have, it seems to be the best choice. But alas, the remote worker problem bites me once again, it's hard to find full time jobs, let alone part-time ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you all much for your opinions so far.&lt;/p&gt;&#xA;" OwnerUserId="11592" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T14:20:53.120" LastActivityDate="2010-12-26T16:28:37.130" ClosedDate="2010-12-28T00:33:32.203" Title="Direction for a lost remotely employed self-taught programmer" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;off-shore&gt;" AnswerCount="4" CommentCount="5" FavoriteCount="3" />
  <row Id="29899" PostTypeId="2" ParentId="29848" CreationDate="2010-12-25T02:36:59.693" Score="2" ViewCount="" Body="&lt;p&gt;One thing that would concern me is that those static variables are shared across all instances of your class object. In other words there are not individual instances of those variables for each instance of the class. This could be a potential problem regardless of multi or single threaded applications. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example &lt;/p&gt;&#xA;&#xA;&lt;p&gt;class Whatever&#xA;{&#xA;int doSomething()&#xA;{&#xA;static int k = 0;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;++k;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;return k;&#xA;}&#xA;};&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whatever a:&#xA;Whatever b:&#xA;int      value;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;value = a.doSomething();&lt;/p&gt;&#xA;&#xA;&lt;p&gt;//value = 1&lt;/p&gt;&#xA;&#xA;&lt;p&gt;value b.doSomething();&lt;/p&gt;&#xA;&#xA;&lt;p&gt;//value = 2&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not sure if this is the behavior you intended, but I have a feeling that it is not. ;)&lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2010-12-25T02:36:59.693" />
  <row Id="29900" PostTypeId="2" ParentId="29738" CreationDate="2010-12-25T03:08:42.760" Score="0" ViewCount="" Body="&lt;p&gt;I've taken the .NET 1.1, 2, 3.5 and 4 exams. The general progression that I've experienced is that the 4 exams are about 1/2 of the material from 3.5 and the remainder are all the new bits. Without a ton of experience with LINQ and Entity Framework, I don't think you'll pass the .NET 4 exams without a lot of studying. Furthermore, both .NET 4 versions of the MCPD require passing the WCF exam, which I'm rather weak at (and the folks I know personally are weaker at WCF than I am). &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;the 4 exams appear to be MCPD, MCAD, MCSD, MTA&lt;/em&gt; &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The current scheme is MCP -&gt; MCTS -&gt; MCPD.  MCP requires passing a single exam on any subject. MCTS (technical specialist) is generally 1 to 2 exams. MCPD (professional developer) typically starts from an MCTS and adds 1 to 2 more exams. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The MCSD (solution developer) and MCAD (application developer) exams are retired, so if you didn't pass them before April 2009, you can't get this cert. Don't sweat it. Exams on a technology tend to get retired when the technology gets end-of-lifed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;Master&quot; level certifications are breathtakingly expensive. Plan on spending $18k (this doesn't count hotel for 2 weeks) for the at-Microsoft-campus portion of the certification. You will also need to have passed many other certification exams as prerequisites. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;I didn't really want to do .net 3.5 and vs 2008 for example.&lt;/em&gt; &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you can pass &lt;a href=&quot;http://www.microsoft.com/learning/en/us/Exam.aspx?ID=70-513&amp;amp;Locale=en-us&quot; rel=&quot;nofollow&quot;&gt;70-513&lt;/a&gt;, go ahead with 4 and skip 3.5. As I've already passed a bunch of 3.5 and 4 exams, I plan to finish my 3.5 Enterprise MCPD before I complete my 4 MCPDs. If you are a strong .NET developer, I'd recommend taking the 3.5 exams. The exams for upgrading from one version of .NET to the next are extremely hard and full of &lt;a href=&quot;http://www.style.org/unladenswallow/&quot; rel=&quot;nofollow&quot;&gt;trivia&lt;/a&gt;. My advice is to avoid them. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;and is there a time limit and when you start and finish?&lt;/em&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;They are proctored exams at your local &lt;a href=&quot;http://www.prometric.com/&quot; rel=&quot;nofollow&quot;&gt;Prometric&lt;/a&gt; facility. Some are open on Saturdays, which the my favorite one is. They have a time limit of about 90 minutes per exam (betas generally allocate 2h 30m for them as they have a lot more questions - you're also testing the test when you take the beta exam). The typical Microsoft certifications start with 70. Beta exams start with 71. Student priced exams (requires your college student ID) start with 72. If there is a student priced exam, it tends to run $55, with the regular &quot;grown up&quot; price being $125. Be on the look out for special deals, as there are frequently &quot;second shot&quot; promotions that offer you a free retake if you fail the exam. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;What is advisable for revising the exams, books, or similar? any advise ... mock exams?&lt;/em&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You can purchase mock exams from Transcender. While they don't ask the questions that will be on the exam, they will challenge you on the same material that is on the exam. I generally don't study for the exams as I find the questions tend to be more along the lines of &quot;if you use the stuff, you will know the answers.&quot; Yes, there are some places that sell &quot;brain dumps&quot; but I don't use them. I find that when something is new, watch the &lt;a href=&quot;http://channel9.msdn.com/&quot; rel=&quot;nofollow&quot;&gt;Channel 9&lt;/a&gt; videos as there can frequently be questions from them on the exam. This tactic is rather &quot;iffy&quot; as there are a lot of videos on Channel 9 that have nothing to do with certs.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than companies participating in the &lt;a href=&quot;https://partner.microsoft.com/&quot; rel=&quot;nofollow&quot;&gt;Partner program&lt;/a&gt;, I've found that very few people care about Microsoft certifications. Partners need a certain amount of certified people depending on what tier they are and what specialization they are. My current employer (I'm leaving at the end of the month) offers a bonus for passing each test and they get several hundred thousand dollars in free software for participating. Many people I've met think that certifications are as worthless as college degrees, so don't expect it to open new doors for you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disclaimer: my MCSD is from the creaky old days of Visual Studio 6. I also tend to get invited to beta exams, which I'm reasonably successful at passing (and probably more important from Microsoft's view - I find errors in the exam questions). I am also a bit of an exam slut, so if I get a free beta exam, I'm taking it. Also I tend to take some exams just for s---s &amp;amp; giggles. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastEditorUserId="6591" LastEditorDisplayName="" LastEditDate="2010-12-25T03:40:04.017" LastActivityDate="2010-12-25T03:40:04.017" />
  <row Id="29902" PostTypeId="2" ParentId="29870" CreationDate="2010-12-25T03:32:57.627" Score="2" ViewCount="" Body="&lt;p&gt;hmmm...I can only tell you how I've &lt;em&gt;gotten&lt;/em&gt; Perl jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First time, I monitored the perljobs mailing list (jobs.perl.org) until a job in my area came up. I applied and got it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second time, I went to indeed.com and did a search on &quot;perl&quot;. I found an opening in my area, applied, and got it.&lt;/p&gt;&#xA;" OwnerUserId="11615" LastActivityDate="2010-12-25T03:32:57.627" CommentCount="1" />
  <row Id="29903" PostTypeId="2" ParentId="29896" CreationDate="2010-12-25T03:43:29.680" Score="0" ViewCount="" Body="&lt;p&gt;I just finished working on some stuff at work that calls Python code from C# through IronPython. I don't know if I'd call it the best thing I've written all year, but it's kinda neat:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;myclass.py:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class MyClass:&#xA;    def add(self, val1, val2):&#xA;        return val1 + val2&#xA;&#xA;    def __init__(self):&#xA;        pass #do some stuff here, eventually&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;MyClass.cs:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;using IronPython;&#xA;using IronPython.Hosting;&#xA;using Microsoft.Scripting;&#xA;using Microsoft.Scripting.Hosting;&#xA;&#xA;public class MyClass &#xA;{&#xA;    public void PrintResult() &#xA;    {&#xA;        var engine = Python.CreateEngine();&#xA;&#xA;        var searchPaths = engine.GetSearchPaths();&#xA;        // do more stuff here to add a path to CPython's lib folder, or else&#xA;        // you don't get to use fun things like the 'os' module.&#xA;        engine.SetSearchPaths(searchPaths);&#xA;&#xA;        var source = engine.CreateScriptSourceFromFile(&quot;myclass.py&quot;);&#xA;        var scope = engine.CreateScope();&#xA;        source.Execute(scope);&#xA;&#xA;        var classRef = scope.GetVariable(&quot;MyClass&quot;);&#xA;        var classInstance = scope.Engine.Operations.Invoke(classRef);&#xA;&#xA;        var method = scope.Engine.Operations.GetMember(classInstance, &quot;add&quot;);&#xA;        var result = scope.Engine.Operations.Invoke(method, 2, 3);&#xA;&#xA;        Console.WriteLine(&quot;Result is {0}&quot;, result); // it's 5!&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-25T03:43:29.680" />
  <row Id="29904" PostTypeId="2" ParentId="27564" CreationDate="2010-12-25T04:09:31.123" Score="-2" ViewCount="" Body="&lt;p&gt;destroy($object) - nullify object and all references (it can be a PITA chasing some object through all places where it is referenced). Optionnaly, access to list of all references to given object / var (maybe some extension of Reflection?)&lt;/p&gt;&#xA;" OwnerUserId="5351" LastActivityDate="2010-12-25T04:09:31.123" CommunityOwnedDate="2010-12-25T04:09:31.123" />
  <row Id="29905" PostTypeId="2" ParentId="29898" CreationDate="2010-12-25T04:18:11.440" Score="5" ViewCount="" Body="&lt;p&gt;I my advice to you is to finish your degree. You cite that you value real world experience more than theory, and that is precisely the reason &lt;em&gt;why&lt;/em&gt; I think you'd get a lot of benefit from finishing your degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that said, look for the courses to fill gaps in your background, and pick your electives based on what you know you should know, and not necessarily what is most interesting or easy.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-25T04:18:11.440" />
  <row Id="29906" PostTypeId="2" ParentId="29898" CreationDate="2010-12-25T04:22:10.150" Score="0" ViewCount="" Body="&lt;p&gt;The really good news is that you are only 25 with significant experience already, so there isn't much that can go wrong with your kind of attitude.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My very subjective opinion is:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Can't really say anything about your first point. Just cultivate what your clients are looking for. I suppose being a good DBA always sells well. But in your predicament (remote worker) being well rounded should be an advantage.&lt;/li&gt;&#xA;&lt;li&gt;19 years of experience make me value real world experience a hell of a lot more than education. That said I still believe strongly that education not only opens doors, but forces you to explore avenues that you would not have thought about. But you are a mature student, so use your experience to choose the relevant avenues to explore and find a focus to stick to. That way you should be able to manage studies (that can more easily be remote nowadays) and accept a new job.&lt;/li&gt;&#xA;&lt;li&gt;Can't help. Never worked remotely, never hired a remote worker. When I left my second last employer to change countries, they knew my worth and my work ethics, they understandably declined my suggestion for me to work remotely simply because nothing can replace face to face exchanges in the office. Remote working may be good for some, not for most.&lt;/li&gt;&#xA;&lt;li&gt;Never done that, probably never will. But if I were to try I would need to check strong references for communication skills, work ethics, honesty, value for money (compare with India), efficiency and absolutely knowing the area of expertise that the contract requires.&lt;/li&gt;&#xA;&lt;li&gt;A strong salesman will convince anyone to buy (short-term view). A good salesman will only sell to people who will find value in your product (long-term view, word of mouth sales...). So yes you can convince, but you really only want to convince someone who will make a significant gain as a result.&lt;/li&gt;&#xA;&lt;li&gt;I believe that time is money, so if you can do the job in the time allocated you must be good. The problem with clocking is that usually this is not compatible with being efficient. I personally value my own time so much that at the end of the week or month I even up the hours I am supposed to be paid for. But some days or weeks I may work a lot more, while others quite a bit less. Depending on pressures, workload, availability and my own sense of being efficient or not. If I have a bad day I may as well make it short and do something else, I'm not efficient anyway. I figure an intelligent employer values that sort of flexibility.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;These are only my two cents worth. Make it your own or not, I just hope it helps trigger the right questions in you to find your own path.&lt;/p&gt;&#xA;" OwnerUserId="9043" LastActivityDate="2010-12-25T04:22:10.150" CommentCount="2" />
  <row Id="29907" PostTypeId="2" ParentId="27564" CreationDate="2010-12-25T04:22:31.107" Score="1" ViewCount="" Body="&lt;p&gt;support for type hinting for all types, and _toXXX magic methods for every type possible. (php common usage drifts IMHO rather to limit type juggling /with some exceptions, such like convertion float&amp;lt;-&gt;int/)&lt;/p&gt;&#xA;" OwnerUserId="5351" LastActivityDate="2010-12-25T04:22:31.107" CommunityOwnedDate="2010-12-25T04:22:31.107" />
  <row Id="29909" PostTypeId="2" ParentId="29865" CreationDate="2010-12-25T04:32:04.557" Score="4" ViewCount="" Body="&lt;p&gt;I moved to Canada and talked with many people who moved to Canada, so I can say a little bit about this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First learn about and get to know the culture that you intend to move to. It is likely quite different from your own in ways you don't suspect. Most particularly work relationships, how you even apply for work, how you build a network of contacts, the way people interact, the way hierarchy functions, standard expectations, who does the asking...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second wherever you go you will have options for travel and work visa, temporary work visa and permanent work visa. While it is slow (1 to 4 years) to get a full permanent visa, it can be worth it as once you have that there are virtually no restrictions on what employer you can work for and it makes it easy for the employer. Anything linked with travel or temporary visas will generally be tied to a unique employer or have other strong restrictions. Get to know the system before you move, otherwise you might end up wasting a lot of time and resources for no gain.&lt;/p&gt;&#xA;" OwnerUserId="9043" LastActivityDate="2010-12-25T04:32:04.557" CommentCount="1" />
  <row Id="29910" PostTypeId="2" ParentId="2730" CreationDate="2010-12-25T05:21:11.063" Score="0" ViewCount="" Body="&lt;p&gt;Multiple inheritance. That would complete C# for me. There have been countless instances where it would have made my design far simpler.&lt;/p&gt;&#xA;" OwnerUserId="11616" LastActivityDate="2010-12-25T05:21:11.063" CommentCount="4" />
  <row Id="29911" PostTypeId="2" ParentId="29788" CreationDate="2010-12-25T05:22:40.923" Score="0" ViewCount="" Body="&lt;p&gt;I'd encourage you to write unit tests before you change anything in the ball of mud.  And &lt;em&gt;only&lt;/em&gt; change enough of the code at the time to make the tests pass.  As you refactor, add unit tests before hand so you know that the business functionality hasn't been busted by refactoring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is pair programming an option?  Having another person to bounce ideas off is a great idea to deal with that amount of nasty.&lt;/p&gt;&#xA;" OwnerUserId="11364" LastActivityDate="2010-12-25T05:22:40.923" CommentCount="2" />
  <row Id="29912" PostTypeId="1" CreationDate="2010-12-24T21:27:33.307" Score="20" ViewCount="852" Body="&lt;p&gt;I'm CTO of a software firm with a large existing codebase (all C#) and a sizable engineering team.  I can see how certain parts of the code would be far easier to write in F#, resulting in faster development time, fewer bugs, easier parallel implementations, etc., basically overall productivity gains for my team.  However, I can also see several productivity pitfalls of introducing F#, namely:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Everyone has to learn F#, and it's not as trivial as switching from, say, Java to C#.  Team members that have not learned F# will be unable to work on F# parts of the codebase.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) The pool of hireable F# programmers, as of now (Dec 2010) is non-existent.  Search various software engineer resume databases for &quot;F#&quot;, way less than 1% of resumes contain the keyword.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Community support as of now (Dec 2010) is less available.  You can google almost any problem in C# and find someone that has already dealt with it, not so with F#.  Third party tool support (NUnit, Resharper etc) is also sketchy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realize that this is a bit Catch-22, i.e. if people like me don't use F# then the community and tools will never materialize, etc.  But, I've got a company to run, and I can be cutting edge but not bleeding edge.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any other pitfalls I'm not considering?  Or anyone care to rebut the pitfalls I've mentioned?  I think this is an important discussion and would love to hear your counter-arguments in this public forum that may do a lot to increase F# adoption by industry. Thanks.&lt;/p&gt;&#xA;" OwnerUserId="11638" LastActivityDate="2011-05-03T18:37:59.110" CommunityOwnedDate="2010-12-25T00:08:51.537" Title="Real world pitfalls of introducing F# into a large codebase and engineering team" Tags="&lt;f#&gt;&lt;software-engineering&gt;&lt;real-world&gt;&lt;c#-to-f#&gt;" AnswerCount="8" CommentCount="8" FavoriteCount="2" />
  <row Id="29913" PostTypeId="2" ParentId="29912" CreationDate="2010-12-24T21:33:47.750" Score="14" ViewCount="" Body="&lt;p&gt;Search resumes for other functional languages such as Scheme, Lisp or Haskell.  A lot of people learn these in school and have them on their resumes; I'm sure many of them wouldn't mind learning F#.  I have Scheme in my resume even though I never used it after school and a job involving F# would probably get my attention too.&lt;/p&gt;&#xA;" OwnerUserId="11814" LastEditorUserId="11814" LastEditorDisplayName="" LastEditDate="2011-01-11T19:11:45.087" LastActivityDate="2011-01-11T19:11:45.087" CommunityOwnedDate="2010-12-25T00:08:51.537" CommentCount="14" />
  <row Id="29914" PostTypeId="2" ParentId="29912" CreationDate="2010-12-24T21:35:56.987" Score="1" ViewCount="" Body="&lt;p&gt;The main problem is always maintainability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would love to code in Scheme, but the next maintainer would probably want to hunt me down and torture me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: This question does belong on &lt;a href=&quot;http://programmers.stackexchange.com/&quot;&gt;http://programmers.stackexchange.com/&lt;/a&gt;.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-25T05:55:43.043" CommunityOwnedDate="2010-12-24T21:37:00.777" CommentCount="1" />
  <row Id="29915" PostTypeId="2" ParentId="29912" CreationDate="2010-12-24T22:57:23.943" Score="4" ViewCount="" Body="&lt;p&gt;As you recognize in your first point, your programmers who don't know F# can't work on the F# part of your codebase.  However, you don't need to rewrite your whole codebase in F# to gain advantages from using it - just rewrite the parts where you would see the biggest benefit.  The fact that F# interoperates really well with C# should make it relatively easy to carve out certain parts and create F# assemblies out of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you had your engineers working on a traditional 3-tier application, you probably wouldn't insist that they all needed to have a deep knowledge of SQL, HTML, Javascript, CSS, etc.  Instead, you'd naturally have some specialists working on different parts of the application.  Therefore, I don't think that adding a new language for one part of your application should be too big of a hurdle.  Furthermore, you can use coding standards and other practices to try to make sure that your F# code is &lt;em&gt;readable&lt;/em&gt; even by engineers without a deep F# background.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-25T05:55:43.043" CommunityOwnedDate="2010-12-25T00:08:51.537" CommentCount="1" />
  <row Id="29916" PostTypeId="2" ParentId="29912" CreationDate="2010-12-25T00:04:31.790" Score="3" ViewCount="" Body="&lt;p&gt;1) Learning a functional language will increase someones overall ability as a programmer however this only applies to those who want to learn and improve. Not every programmer wants to become better nor do they want change in their work environment (know your team.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) I can't argue with this.  You will have to pay for the 6 month learning curve of any new language however already knowing .net libraries eliminates the extra years required to learn new libraries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Community support while smaller than C# does have quite a few highly skilled active F# developers posting on the web.  Don't forget that most language support is library support and there is great support for .NET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thousand pound gorilla here is risk management.  &quot;I can be cutting edge but not bleeding edge.&quot;  I'd argue that F# is not bleeding edge.  It has been released with VS2010 and is directly supported by Microsoft.  Bleeding edge is &quot;beta&quot; and a disclaimer from Microsoft saying something about not being responsible for anything.&lt;/p&gt;&#xA;" OwnerUserId="11748" LastActivityDate="2010-12-25T05:55:43.043" CommunityOwnedDate="2010-12-25T00:08:51.537" CommentCount="1" />
  <row Id="29917" PostTypeId="2" ParentId="29788" CreationDate="2010-12-25T05:59:05.477" Score="0" ViewCount="" Body="&lt;p&gt;Here is a procedure we use for eliminating duplicates.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;select a standard comment prefix for duplicates (we use &lt;code&gt;[dupe]&lt;/code&gt; right after the comment marker;&lt;/li&gt;&#xA;&lt;li&gt;write specs with your teams about names to use for the duplicate procedure;&lt;/li&gt;&#xA;&lt;li&gt;first round: everybody takes some files, and adds &lt;code&gt;[dupe][procedure_arbitrary_name]&lt;/code&gt; before the duplicated procedure;&lt;/li&gt;&#xA;&lt;li&gt;second round: everybody takes a procedure, or a subset of procedure, and assigns a value indicating the order of likeability of the different same-purpose implementations (the string will then be: &lt;code&gt;[dupe][procedure_arbitrary_name][n]&lt;/code&gt;);&lt;/li&gt;&#xA;&lt;li&gt;third round: the responsible for each procedure rewrites it in the relevant class;&lt;/li&gt;&#xA;&lt;li&gt;fourth round: &lt;code&gt;grep&lt;/code&gt; happy!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11146" LastActivityDate="2010-12-25T05:59:05.477" />
  <row Id="29918" PostTypeId="1" AcceptedAnswerId="30299" CreationDate="2010-12-25T06:09:24.430" Score="6" ViewCount="413" Body="&lt;p&gt;I'm looking for a good book about Servlets and JSP for beginners. So far, the only book I know and have read is &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596005407&quot; rel=&quot;nofollow&quot;&gt;Head First Servlets &amp;amp; JSP&lt;/a&gt;, but it's focused more on the SCWCD exam rather than the specifics on building stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking for a book that has a lot of examples on building stuff. Any suggestions?&lt;/p&gt;&#xA;" OwnerUserId="500" LastEditorUserId="500" LastEditorDisplayName="" LastEditDate="2010-12-26T06:18:29.857" LastActivityDate="2011-01-06T19:49:26.783" Title="What are some good books on Java Servlets and JSP?" Tags="&lt;java&gt;&lt;recommendations&gt;&lt;books&gt;" AnswerCount="7" FavoriteCount="2" />
  <row Id="29919" PostTypeId="2" ParentId="29918" CreationDate="2010-12-25T06:11:15.317" Score="1" ViewCount="" Body="&lt;p&gt;Specifications of &lt;a href=&quot;http://jcp.org/aboutJava/communityprocess/final/jsr154/index.html&quot; rel=&quot;nofollow&quot;&gt;Servlets&lt;/a&gt; and &lt;a href=&quot;http://jcp.org/aboutJava/communityprocess/final/jsr152/&quot; rel=&quot;nofollow&quot;&gt;JSP&lt;/a&gt;. And, official &lt;a href=&quot;http://www.coderanch.com/forums&quot; rel=&quot;nofollow&quot;&gt;forum&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2010-12-25T06:11:15.317" />
  <row Id="29921" PostTypeId="1" AcceptedAnswerId="29968" CreationDate="2010-12-25T06:40:44.030" Score="4" ViewCount="304" Body="&lt;p&gt;Thought of learning Qt. Need help from experienced ones out here. How should I begin. Some good books to refer. Some good tutorials to learn... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: Also which is the good IDE available out there for Qt programming. One that gives inline help, auto completion,indentation... I am using Debian Lenny&lt;/p&gt;&#xA;" OwnerUserId="11617" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T14:19:41.780" LastActivityDate="2010-12-27T12:20:50.573" Title="Beginner need help on learning Qt programming" Tags="&lt;programming-languages&gt;&lt;programming-practices&gt;&lt;qt&gt;&lt;ebook&gt;" AnswerCount="3" CommentCount="4" FavoriteCount="2" />
  <row Id="29922" PostTypeId="1" AcceptedAnswerId="29989" CreationDate="2010-12-25T06:43:21.883" Score="3" ViewCount="112" Body="&lt;p&gt;Hello there, I've been dabbling with c++/SDL and I'm quite keen on learning OpenGL. So my question being - what are some good introductory books/guides to OpenGl?. I know about &lt;a href=&quot;http://nehe.gamedev.net/&quot; rel=&quot;nofollow&quot;&gt;NEHE&lt;/a&gt; but I would prefer to stay clear of the winApi. That is my only requirement, and of course the language must be C/C++.&lt;/p&gt;&#xA;" OwnerUserId="10830" LastActivityDate="2010-12-25T18:12:39.943" Title="Recommendation for an introductory OpenGl Book" Tags="&lt;books&gt;&lt;recommendations&gt;&lt;c++&gt;&lt;cross-platform&gt;&lt;opengl&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="29923" PostTypeId="2" ParentId="29896" CreationDate="2010-12-25T06:43:29.550" Score="0" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;class NSIndexSet&#xA;include Enumerable&#xA;&#xA;def each&#xA;    i = self.firstIndex&#xA;    until i == NSNotFound&#xA;       yield i&#xA;       i = self.indexGreaterThanIndex(i)&#xA;    end&#xA;end&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;end&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-12-25T06:43:29.550" />
  <row Id="29924" PostTypeId="1" CreationDate="2010-12-25T06:45:41.810" Score="6" ViewCount="435" Body="&lt;p&gt;I would like to get in to web development. I don't have much knowledge about this line of profession, but on my day job I am a fairly good Java/C++ programmer, so I am familiar with computers, programming, OOP and whatever comes with programming abilities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the technology you think I should start learning (both client and server) and why?&lt;/p&gt;&#xA;" OwnerUserId="11619" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2011-04-28T14:58:31.213" LastActivityDate="2011-04-28T17:33:31.197" Title="What should I learn to be able to do web development in Java?" Tags="&lt;programming-languages&gt;&lt;java&gt;&lt;web-development&gt;&lt;professional-development&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="3" />
  <row Id="29925" PostTypeId="2" ParentId="24834" CreationDate="2010-12-25T06:48:27.080" Score="0" ViewCount="" Body="&lt;p&gt;I had a team member who was adamant that we should write our system (a 3D engine) from scratch despite the fact that we had identified an engine that the team was familiar with and would mostly do. I took him aside and ask him if he was ready to take full responsibility for the failure of the project if he was unable to deliver his engine on time. He was not.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-12-25T06:48:27.080" />
  <row Id="29926" PostTypeId="1" AcceptedAnswerId="29937" CreationDate="2010-12-25T07:00:15.997" Score="8" ViewCount="635" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/5384/how-do-you-deal-with-people-who-ask-you-to-fix-their-computer&quot;&gt;How do you deal with people who ask you to fix their computer?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;should we, as programmers, know how to repair a computer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;but friend of a friend of a friend of mine come asking if we can repair his computer without any effort. because he is convinced that this is our specialty. that's annoying.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm going to say &quot;I don't know, I never have that problem. you should ask google&quot;&lt;/p&gt;&#xA;" OwnerUserId="11618" LastEditorUserId="11618" LastEditorDisplayName="" LastEditDate="2010-12-25T11:33:00.593" LastActivityDate="2010-12-25T13:29:54.680" ClosedDate="2010-12-25T21:07:34.930" Title="how to say: &quot;no. I am not a computer repairman&quot;" Tags="&lt;job-definition&gt;&lt;computer&gt;" AnswerCount="11" CommentCount="7" />
  <row Id="29927" PostTypeId="2" ParentId="29926" CreationDate="2010-12-25T07:05:16.053" Score="3" ViewCount="" Body="&lt;p&gt;Do a pilot should know how to build/repair a plane?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll say &lt;strong&gt;I don't know&lt;/strong&gt; and advice him to contact a specialist  in that field&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2010-12-25T07:05:16.053" />
  <row Id="29928" PostTypeId="2" ParentId="29926" CreationDate="2010-12-25T07:05:36.333" Score="22" ViewCount="" Body="&lt;p&gt;More often than not, the answers to such philosophical questions are found on xkcd&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suggest you show the friend of a friend in question the following, enlightening diagram:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/YvP4S.png&quot; alt=&quot;'Hey Megan, it's your father. How do I print out a flowchart?'&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="11146" LastActivityDate="2010-12-25T07:05:36.333" CommentCount="5" />
  <row Id="29929" PostTypeId="2" ParentId="29896" CreationDate="2010-12-25T07:19:27.577" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;My Best 2010 Refactoring&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my current role I write a little new code, but more often I work on existing code. A nice refactoring was in a MS SQL Server T-SQL stored procedure. I took a routine that had about 15 variables, procedural and conditional logic, and cursors and replaced it with a CTE (Common Table Expression). It did all the same work without any variables, a lower cost profile, and in about one fifth the amount of code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;My Best 2010 Non-code&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for new stuff, the best thing was actually the code I DIDN'T write. We had a request for a scheduled process. The analyst initially took verbatim the user request that it be run on a schedule with all kinds of holiday exceptions (don't run it on a non-business day according to a US banking calendar, but run it the next day, unless that was also a non-business day, then run it on the day before, and so on). Yes, it could have been written, but I worked with the business analyst to reveal that this complicated date logic was not a business requirement but actually just an artifact of the way the process operated when humans did it manually. Since the machines are always running and never out of the office, we just scheduled it to run daily. Simpler, cleaner, and shorter. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Sometimes it's not about what you add, but what you can take away.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="7892" LastActivityDate="2010-12-25T07:19:27.577" CommentCount="1" />
  <row Id="29930" PostTypeId="2" ParentId="29926" CreationDate="2010-12-25T07:19:59.360" Score="17" ViewCount="" Body="&lt;p&gt;This is how I explain it:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;IT&quot; is a very big field. When&#xA;  &quot;someone works in IT&quot;, it is like&#xA;  &quot;someone who works in healthcare&quot;. If&#xA;  you have a dentist friend, you don't&#xA;  expect them to be able to fix your&#xA;  feet - you go to a podiatrist!&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Just because I work in &quot;IT&quot;, it&#xA;  doesn't mean that I automatically know&#xA;  everything about every computer&#xA;  problem. I only know about some very&#xA;  specialized things. Different computer&#xA;  programs and different computer&#xA;  problems are totally different - just&#xA;  as different as different&#xA;  specializations in health care. It's&#xA;  not that I don't want to help you,&#xA;  it's that very often things really are&#xA;  completely out of my specialty.&#xA;  Imagine you are asking a podiatrist&#xA;  about a tooth ache!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This works pretty well. It's a bit of a long story. But for people such as family and friends who are always around you, it pays to explain the full deal. If you explain it well and it really sinks in, you can pretty much get out of being the extended family &quot;computer goto guy&quot;. Eventually. :)&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-12-25T07:19:59.360" />
  <row Id="29931" PostTypeId="2" ParentId="2730" CreationDate="2010-12-25T07:31:58.393" Score="1" ViewCount="" Body="&lt;p&gt;A little off topic, but I'd really like an open-source functional synchronous dataflow language.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-25T07:31:58.393" />
  <row Id="29932" PostTypeId="2" ParentId="29926" CreationDate="2010-12-25T07:40:28.410" Score="1" ViewCount="" Body="&lt;p&gt;Anwar, you may have answered your own question. Say, &quot;No, I'm not a computer repairman.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they really want more details and you don't have time to give a nice long explanation like Guzica's, then explain that you work in software and not hardware, and that while related, they are not the same discipline.&lt;/p&gt;&#xA;" OwnerUserId="7892" LastActivityDate="2010-12-25T07:40:28.410" CommentCount="1" />
  <row Id="29933" PostTypeId="1" CreationDate="2010-12-25T07:42:40.173" Score="1" ViewCount="214" Body="&lt;p&gt;I am working as a SAP consultant for an off-shoring company in India for about 6 months now.  My work mainly involves writing a small amount of ABAP code and sometimes fixing some problems.  The work I do is not the most exciting of the jobs that I had imagined and I'd like to change my career and persue something more technical.  I need a little advice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update : I have a computer Science Background, i can program using Python , Java. I might not be that good but i can learn the skill on the job , but seems like here in a non programming job ( there is not much programming involved with ERP packages i guess they are more about the domain knowledge).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My biggest fear is that one year down the line people will only want to hire me for SAP jobs , because thats what i've been working on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My resume is located at &lt;a href=&quot;https://docs.google.com/document/d/1XRtkJO2X9Wp6xIt7mS_TVstaM_hah48askGkfsLB50A/edit?hl=en&amp;amp;authkey=CNXF37MN&quot; rel=&quot;nofollow&quot;&gt;https://docs.google.com/document/d/1XRtkJO2X9Wp6xIt7mS_TVstaM_hah48askGkfsLB50A/edit?hl=en&amp;amp;authkey=CNXF37MN&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7064" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2010-12-25T23:08:28.143" LastActivityDate="2010-12-25T23:08:28.143" Title="Career advice needed" Tags="&lt;career&gt;&lt;python&gt;&lt;sap&gt;" AnswerCount="3" CommentCount="4" />
  <row Id="29934" PostTypeId="2" ParentId="29924" CreationDate="2010-12-25T07:43:47.970" Score="0" ViewCount="" Body="&lt;p&gt;It's not like that, core Java has got its own application areas. Since you know Java you can go for &lt;a href=&quot;http://en.wikipedia.org/wiki/JavaServer_Pages&quot; rel=&quot;nofollow&quot;&gt;JSP&lt;/a&gt;. It will be good for server side programming. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;.NET is another good choice. Using (ASP.NET + C#/VB.NET) you can create dynamic pages.&lt;/p&gt;&#xA;" OwnerUserId="11558" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-02T13:30:53.893" LastActivityDate="2011-02-02T13:30:53.893" CommentCount="3" />
  <row Id="29935" PostTypeId="2" ParentId="29896" CreationDate="2010-12-25T07:49:37.527" Score="0" ViewCount="" Body="&lt;p&gt;I think this is mine:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/4482050/python-converting-monday-tuesday-wednesday-to-monday-to-wednesday/4484708#4484708&quot;&gt;http://stackoverflow.com/questions/4482050/python-converting-monday-tuesday-wednesday-to-monday-to-wednesday/4484708#4484708&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not because it was difficult to write, just because it was fun to write.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastEditorUserId="10037" LastEditorDisplayName="" LastEditDate="2010-12-25T09:14:57.327" LastActivityDate="2010-12-25T09:14:57.327" />
  <row Id="29936" PostTypeId="2" ParentId="29896" CreationDate="2010-12-25T08:06:22.437" Score="0" ViewCount="" Body="&lt;p&gt;I guess mine is &lt;a href=&quot;http://cherryblossomweb.de/2010/09/25/a-2d-k-means-cluster-analysis-function-in-php/&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;, a k-means cluster analysis function. It's not great quality code, but I think it will be very useful to many: surprisingly (maps!) a PHP implementation of that procedure wasn't around yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I particularly like it because it's utterly legible, and it can be a fine subject to analyse for a programmer who can't get recursion yet.&lt;/p&gt;&#xA;" OwnerUserId="11146" LastActivityDate="2010-12-25T08:06:22.437" />
  <row Id="29937" PostTypeId="2" ParentId="29926" CreationDate="2010-12-25T08:11:07.960" Score="18" ViewCount="" Body="&lt;p&gt;I've ordered a tshirt with the following:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Don't ask me to fix your computer. I'm a software engineer; I break computers.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The other trick is to quote them your hourly rate for ad hoc work and ask them to ring you the next day when you have your diary and can schedule an appointment. Most people back off really fast then, and the few that don't become customers, not favours.&lt;/p&gt;&#xA;" OwnerUserId="415" LastActivityDate="2010-12-25T08:11:07.960" CommentCount="2" />
  <row Id="29938" PostTypeId="1" CreationDate="2010-12-25T08:21:55.580" Score="1" ViewCount="90" Body="&lt;p&gt;I have a database in mysql(version 5.0). I have to transfer the database to some other machine. How am i supposed to that. In ms-sql you have database and log files which can be copies but i could not find something similar in mysql.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing i can do is run the sql script on the other machine but that would lead to data loss which is not desired. Please help&lt;/p&gt;&#xA;" OwnerUserId="8819" LastActivityDate="2010-12-25T15:42:08.997" ClosedDate="2010-12-25T16:58:19.107" Title="transferring databases on mysql from one machine to another." Tags="&lt;sql&gt;&lt;mysql&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="29939" PostTypeId="2" ParentId="29924" CreationDate="2010-12-25T08:26:30.367" Score="0" ViewCount="" Body="&lt;p&gt;For web applications, basically you need to know the basic Servlets/JSPs, and these days, there are lot of frameworks, like Struts 2, Spring.&lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2010-12-25T08:26:30.367" CommentCount="3" />
  <row Id="29940" PostTypeId="2" ParentId="29898" CreationDate="2010-12-25T08:33:49.487" Score="2" ViewCount="" Body="&lt;p&gt;Complete your degree. You'll really enjoy it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't let it get you down, with your attitude, you will go far. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And your english is indeed excellent. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, charge a lot, and charge US rates. Charge at least $60/hour, but maybe 70 or 80. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;People will give you less &quot;simple and repetitive&quot; work that way. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On convincing people to do remote work: have impeccable integrity. Charge fairly to the customer, and practice the art of perfect remote communication (email, skype, IM, etc)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have a twitter account and tweet about interesting computer stuff you are doing. Other programmers will find you. Engage with them; develop your network that way. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You seem to have the right kind of attitude. Maybe start your own company?&lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-12-25T08:33:49.487" CommentCount="2" />
  <row Id="29941" PostTypeId="2" ParentId="29896" CreationDate="2010-12-25T09:38:01.740" Score="1" ViewCount="" Body="&lt;p&gt;I'd say this handful of functions I wrote in a Python project of mine. This first part reads file paths from a sqlite3 database formatted like &lt;code&gt;some/directory/to/a_file.txt&lt;/code&gt; and puts it into a big data structure:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;def _sort_into_directories(files):&#xA;    root_directory = ({}, [])&#xA;    for file in files:&#xA;        file_directory = file.user_directory.strip('/').split('/')&#xA;        #MUST use copy of file_directory or it will be modified&#xA;        _ensure_directory_exists(root_directory, file_directory[:])&#xA;&#xA;        #same thing&#xA;        _add_file_to(file_directory[:], file, root_directory)&#xA;&#xA;    return root_directory&#xA;&#xA;&#xA;&#xA;def _ensure_directory_exists(directories, file_directory):&#xA;    if len(file_directory) == 0 or file_directory == ['']:&#xA;        return&#xA;&#xA;    bottom_directory = file_directory.pop(0)&#xA;    if bottom_directory not in directories[0]:&#xA;        directories[0][bottom_directory] = ({}, [])&#xA;&#xA;    _ensure_directory_exists(directories[0][bottom_directory], file_directory)&#xA;&#xA;&#xA;def _add_file_to(file_directory, file, directories):&#xA;&#xA;    if len(file_directory) == 0 or file_directory == ['']:&#xA;         directories[1].append(file)&#xA;         return&#xA;&#xA;    bottom_directory = file_directory.pop(0)&#xA;    _add_file_to(file_directory, file, directories[0][bottom_directory])&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And this generator is used by a mako template. It gets things like &lt;code&gt;{'type': 'directory', 'name': &quot;blah&quot;}&lt;/code&gt; and inserts HTML accordingly (for directories: &lt;code&gt;&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt;&amp;lt;ul&amp;gt;&lt;/code&gt;, for files: &lt;code&gt;&amp;lt;li&amp;gt;name&amp;lt;/li&amp;gt;&lt;/code&gt;, for end: &lt;code&gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;/code&gt;).&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    #files: list of file paths from database&#xA;    def file_generator(files):&#xA;&#xA;        yield {'type': 'directory', 'name': '/'}&#xA;&#xA;        for result in _get_next(files):&#xA;            yield result&#xA;&#xA;&#xA;    def _get_next(directory):&#xA;&#xA;        for result in _iterate_directories(directory):&#xA;            if result['type'] == &quot;end&quot;:&#xA;                return&#xA;            yield result&#xA;&#xA;&#xA;    def _iterate_directories(directory):&#xA;        directories = sorted(directory[0].keys())&#xA;&#xA;        #loop through sorted subdirectories&#xA;        for dir_name in directories:&#xA;            yield {'type': 'directory', 'name': '/' + dir_name}&#xA;&#xA;            #see if subdirectory has subdirectories&#xA;            if len(directory[0][dir_name][0]) &amp;gt; 0:&#xA;                for result in _get_next(directory[0][dir_name]):&#xA;                    yield result&#xA;&#xA;            #loop through this subdirectory's files&#xA;            files = sorted(directory[0][dir_name][1], key=lambda f: f.filename)&#xA;            for file in files:&#xA;                yield {'type': 'file', 'file': file}&#xA;&#xA;            yield {'type': 'end_directory'}&#xA;&#xA;        yield {'type': 'end'}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;There's probably a better way to do it. But I &lt;em&gt;loved&lt;/em&gt; writing it, and I'll be damned if I'm not happy with the result. This is probably unreadable due to lack of syntax highlighting (for me at least). Oh well.&lt;/p&gt;&#xA;" OwnerUserId="54" LastEditorUserId="54" LastEditorDisplayName="" LastEditDate="2010-12-25T12:29:24.633" LastActivityDate="2010-12-25T12:29:24.633" />
  <row Id="29942" PostTypeId="2" ParentId="29848" CreationDate="2010-12-25T09:42:32.457" Score="0" ViewCount="" Body="&lt;p&gt;There's a big difference between class member, static class members and static method variables.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's no right or wrong here, it just depends on what you're trying to do.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Class member: The value will change in the instance of the object on each call. This means it will just change the object's state.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Static method variables: The value of the variables are only linked to the method's scope. This means they will change on each call, but will affect anyone who uses the method. Even if you have 3 object that use the method, they will affect each-other.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Static class members: The value of the variables are linked to the class type. Like static method variables, it will affect all objects of the class. There are 2 main differences: A. The variables are visible outside of the method's scope. B. It's a different concept... Static method variables can exist in a function that's not related to a class, and therefor affect any piece of code that calls that function, and not just objects of some class type.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="11625" LastActivityDate="2010-12-25T09:42:32.457" />
  <row Id="29943" PostTypeId="2" ParentId="29926" CreationDate="2010-12-25T10:00:05.073" Score="1" ViewCount="" Body="&lt;p&gt;You can always say:  &quot;The only way to be &lt;em&gt;certain&lt;/em&gt; the problem doesn't come back is to wipe everything and reinstall the operating system.  Please make a backup of the things you want to save first.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-25T10:00:05.073" CommentCount="1" />
  <row Id="29944" PostTypeId="2" ParentId="29938" CreationDate="2010-12-25T10:07:59.460" Score="2" ViewCount="" Body="&lt;p&gt;1) Backup the database on the first machine then 2) restore the database on the second.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simple, effective, safe.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;To be clear - since apparently its not obvious?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I assumed that the live application will be shutdown during the course of the transfer and reconfigured to point to the new server.&lt;/p&gt;&#xA;" OwnerUserId="866" LastEditorUserId="866" LastEditorDisplayName="" LastEditDate="2010-12-25T15:42:08.997" LastActivityDate="2010-12-25T15:42:08.997" CommentCount="7" />
  <row Id="29945" PostTypeId="2" ParentId="29912" CreationDate="2010-12-25T10:39:06.820" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I've contemplated this exact situation.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;This is what I plan for my team:&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Mix C# with F#, this can be done by using C# for the majority of the code-base. Where heavy &lt;strong&gt;data processing&lt;/strong&gt; is required, write the associated functions in F# and put it inside a dll, or reference it. &lt;a href=&quot;http://stackoverflow.com/questions/478531/call-f-code-from-c&quot;&gt;Example here&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Slowly re-factor your existing code-base in the above fashion.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Not all code&lt;/strong&gt; has to be functional.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Get your team to learn the &lt;strong&gt;basics&lt;/strong&gt; of Haskell, LISP over the &lt;strong&gt;weekends&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Get them to learn F#, by trying to solve &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;Euler Project&lt;/a&gt; puzzles (that helped me a lot when I was learning F#). Again this should be something done say over the week end, or during work time if you want set a day aside for &quot;training&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-25T10:44:19.730" LastActivityDate="2010-12-25T10:44:19.730" CommunityOwnedDate="2010-12-25T10:39:06.820" CommentCount="2" />
  <row Id="29946" PostTypeId="2" ParentId="4671" CreationDate="2010-12-25T10:42:28.790" Score="4" ViewCount="" Body="&lt;p&gt;After 3 days of coding-rush for some reason I pressed on source-control GUI &lt;code&gt;&quot;Revert&quot;&lt;/code&gt;  instead of &lt;code&gt;Check-in&lt;/code&gt; ... Than started to look on slowly increasing progress bar and its window title &lt;code&gt;Reverting changes&lt;/code&gt;... reverting... hm... what? no, stop! aaa! Cancel, cancel, cancel!!!&lt;br&gt;&#xA;Was too late =)  &lt;/p&gt;&#xA;" OwnerUserId="11530" LastActivityDate="2010-12-25T10:42:28.790" CommunityOwnedDate="2011-01-11T04:02:16.833" CommentCount="2" />
  <row Id="29947" PostTypeId="2" ParentId="29866" CreationDate="2010-12-25T10:47:00.900" Score="0" ViewCount="" Body="&lt;p&gt;MVC is usually the most natural way of separating concerns in medium to large web applications. Nobody says you have to do it that way. If your domain suggests another way of separating the application into manageable pieces then you should do it that way. Chances are high though that you'll settle on a variation of the MVC pattern if you separate the application logic properly.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-25T10:47:00.900" />
  <row Id="29948" PostTypeId="2" ParentId="29933" CreationDate="2010-12-25T10:50:18.117" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://careers.stackoverflow.com/&quot;&gt;http://careers.stackoverflow.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8372" LastActivityDate="2010-12-25T10:50:18.117" />
  <row Id="29949" PostTypeId="2" ParentId="29926" CreationDate="2010-12-25T10:56:49.330" Score="2" ViewCount="" Body="&lt;p&gt;fool : &quot;since you are a programmer, would you please fix my computer?&quot;&lt;br/&gt;&#xA;me : &quot;NO&quot;.&lt;br/&gt;&#xA;very simple.&lt;/p&gt;&#xA;" OwnerUserId="8372" LastActivityDate="2010-12-25T10:56:49.330" CommentCount="1" />
  <row Id="29951" PostTypeId="2" ParentId="29926" CreationDate="2010-12-25T11:22:56.780" Score="4" ViewCount="" Body="&lt;p&gt;I tend to go with the following Dijkstra quote:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Computer science is no more about computers than astronomy is about telescopes.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-12-25T11:22:56.780" CommentCount="2" />
  <row Id="29952" PostTypeId="2" ParentId="29921" CreationDate="2010-12-25T11:26:09.447" Score="2" ViewCount="" Body="&lt;p&gt;I always found the tutorials on the Qt/Troll/Nokia site very helpful, and I know other people with the same experience.&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-12-25T11:26:09.447" />
  <row Id="29953" PostTypeId="2" ParentId="29933" CreationDate="2010-12-25T11:27:13.200" Score="1" ViewCount="" Body="&lt;p&gt;What you need to do is something for you to decide. Take a break (the long weekend?) and think what exactly what you want to do. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Come back here and ask us &quot;This is what I want to do. How do I go about achieving this?&quot; and I am sure people here will guide you appropriately. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a (rather, weak) plan. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;If you want to do something more technically, learn a language. There are zillions of them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/vcsharp/aa336809&quot; rel=&quot;nofollow&quot;&gt;C#&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.java.com/&quot; rel=&quot;nofollow&quot;&gt;Java&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.python.org/&quot; rel=&quot;nofollow&quot;&gt;Python&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Start writing some programs. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Start contributing to Open Source Projects&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Write a great resume&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Get the job you want&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Most importantly, enjoy what you are doing (this does not require knowledge or a great IQ, just plain attitude change!)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Hope this helps!&lt;/p&gt;&#xA;" OwnerUserId="5070" LastEditorUserId="5070" LastEditorDisplayName="" LastEditDate="2010-12-25T12:56:20.677" LastActivityDate="2010-12-25T12:56:20.677" />
  <row Id="29954" PostTypeId="2" ParentId="4671" CreationDate="2010-12-25T11:40:30.103" Score="1" ViewCount="" Body="&lt;p&gt;I have created many variables like this by accident:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;pubic int foo;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I still snigger to myself, I can't help my puerile sense of humour.&lt;/p&gt;&#xA;" OwnerUserId="10067" LastActivityDate="2010-12-25T11:40:30.103" CommunityOwnedDate="2011-01-11T04:02:16.833" CommentCount="3" />
  <row Id="29955" PostTypeId="2" ParentId="29921" CreationDate="2010-12-25T11:44:06.067" Score="0" ViewCount="" Body="&lt;p&gt;As Peter said QT tutorials &amp;amp; online documentation are always the places you should start. In addition you can also go to QT forums. Most importantly once you start coding you should download QT source code so that you can debug and explore it.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-25T11:44:06.067" />
  <row Id="29956" PostTypeId="2" ParentId="29896" CreationDate="2010-12-25T12:01:15.523" Score="0" ViewCount="" Body="&lt;p&gt;I'm not a professional programmer, merely someone who like to do a bit of coding and self taught on C# to a fairly basic level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have produced 1 app for my company that amongst other things does some data binding with data logged from a machine we manufacture. The following code snippet is not the best bit of code, a killer class or function, or even remotely interesting to look in itself at but turning this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;this._setLogBindingSource.DataSource = this._setList;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;into this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (this._setList.Count &amp;gt; 0) this._setLogBindingSource.DataSource = this._setList;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;...fixed a bug that was throwing an IndexOutOfRangeException with  the message &lt;em&gt;&quot;Index -1 does not have a value.&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finding the cause and figuring out &lt;em&gt;why&lt;/em&gt; it was doing what it was doing was a moment of great satisfaction, and a definite &quot;eureka&quot; moment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Such an innocuous bit of code, but caused me world of pain!&lt;/p&gt;&#xA;" OwnerUserId="10067" LastActivityDate="2010-12-25T12:01:15.523" />
  <row Id="29957" PostTypeId="2" ParentId="29926" CreationDate="2010-12-25T12:06:27.817" Score="4" ViewCount="" Body="&lt;p&gt;There is also the chance that wearing this T-shirt might be a first line of defense:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/PwuLc.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hands there is &lt;a href=&quot;http://www.teachparentstech.org/&quot; rel=&quot;nofollow&quot;&gt;Teach Parents Tech&lt;/a&gt; from Google with lots of videos, which might help pointing people to.&lt;/p&gt;&#xA;" OwnerUserId="2719" LastActivityDate="2010-12-25T12:06:27.817" />
  <row Id="29958" PostTypeId="2" ParentId="29896" CreationDate="2010-12-25T12:23:34.300" Score="0" ViewCount="" Body="&lt;p&gt;What I like most are tiny code snippets that help me and (others) often. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On such thing is a small simple &lt;code&gt;IDisposable&lt;/code&gt; implementing &lt;a href=&quot;http://www.codeproject.com/KB/cs/ZetaTemporaryFileCreator.aspx&quot; rel=&quot;nofollow&quot;&gt;class to write a string to a file and then delete it again&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The usage is a 3 liner and helped me in several projects since then.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;using ( var tfc = new ZetaTemporaryFileCreator( &#xA;    &quot;Some text to write to the file.&quot; ) )&#xA;{&#xA;    // ...Do some operations on the file...&#xA;    myFunctionThatOperatesOnAFileRatherThanOnInMemoryData( &#xA;        tfc.FilePath );&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Very short but very handy (at least to me). So this is my &quot;code of the year&quot;.&lt;/p&gt;&#xA;" OwnerUserId="2719" LastActivityDate="2010-12-25T12:23:34.300" />
  <row Id="29959" PostTypeId="1" CreationDate="2010-12-25T05:44:57.077" Score="2" ViewCount="279" Body="&lt;p&gt;I've been looking for a way to multi-task easier so I can program faster.Is tehre any tricks you use to keep an Open Mind while programming?&lt;/p&gt;&#xA;" LastEditorUserId="2366" LastEditorDisplayName="" LastEditDate="2010-12-25T15:36:56.603" LastActivityDate="2010-12-26T11:09:04.240" Title="How do you keep an open mind while programming?" Tags="&lt;productivity&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="0" />
  <row Id="29960" PostTypeId="2" ParentId="29933" CreationDate="2010-12-25T12:32:06.613" Score="0" ViewCount="" Body="&lt;p&gt;In addition to what Kanini suggested, either you should have a background of CS/SE or professional experience or industry standard certification or (India specific) you should be from a reputable institution.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-25T12:32:06.613" />
  <row Id="29961" PostTypeId="2" ParentId="29959" CreationDate="2010-12-25T13:12:11.773" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Don't try to multi-task&lt;/strong&gt;. It will do nothing but slow you down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Human brain &lt;em&gt;is not&lt;/em&gt; able to focus on two different things at the same time effectively. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many scientists &lt;a href=&quot;http://www.pbs.org/wgbh/pages/frontline/digitalnation/interviews/nass.html&quot; rel=&quot;nofollow&quot;&gt;claim&lt;/a&gt; it's &lt;a href=&quot;http://news.stanford.edu/news/2009/august24/multitask-research-study-082409.html&quot; rel=&quot;nofollow&quot;&gt;impossible&lt;/a&gt; to multi-task. Some think &lt;a href=&quot;http://www.thenewatlantis.com/docLib/20080605_TNA20Rosen.pdf&quot; rel=&quot;nofollow&quot;&gt;it is&lt;/a&gt; if brain is properly trained. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course you can do some &lt;code&gt;automatic mode&lt;/code&gt; thinking tasks like driving or walking while thinking about the meaning of &lt;a href=&quot;http://thelostnumbers.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;4 8 15 16 23 42&lt;/strong&gt;&lt;/a&gt;. Automatic mode uses a different part of the brain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many people have lot of difficulties to stay focused on one thing and they tend to believe that what is happening in their mind is &lt;code&gt;multi-tasking&lt;/code&gt;. Your mind will often try to focus on different things as it is &lt;em&gt;triggered&lt;/em&gt;... you see table, you think about new year's eve preparations, you hear a specific sound, it reminds you another thing, you smell something familiar, you mind switch again. It is not &lt;code&gt;multi-tasking&lt;/code&gt;, it is &lt;strong&gt;sequential thinking&lt;/strong&gt; combined with some &lt;em&gt;automatic task&lt;/em&gt; (walking, driving and even reading without retaining the information).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since it's sequential, you are actually doing &lt;strong&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/2006/09/the-multi-tasking-myth.html&quot; rel=&quot;nofollow&quot;&gt;task-switching&lt;/a&gt;&lt;/strong&gt;, very different from &lt;code&gt;multi-tasking&lt;/code&gt;. Each time you change, there is a &lt;strong&gt;cost&lt;/strong&gt;. And at the end of the day, you must &lt;strong&gt;pay the bill&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It takes a lot of time to train your brain to limit that &lt;code&gt;automatic switching&lt;/code&gt;. So &lt;strong&gt;wanting to multi-task&lt;/strong&gt; is the last thing you want to do to &lt;strong&gt;stay open minded&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-25T13:25:13.227" LastActivityDate="2010-12-25T13:25:13.227" CommentCount="3" />
  <row Id="29962" PostTypeId="2" ParentId="29926" CreationDate="2010-12-25T13:29:33.400" Score="0" ViewCount="" Body="&lt;p&gt;[cliché]&lt;br&gt;&#xA;&quot;Well no. I don't know about that. But I can delete everything and install Linux if that is your wish.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously there are side-effects. But more often than not this will stop the bothering. Otherwise it's just 10 minutes of effort. Whereafter you'll be either hero, or barred from future support bugging.&lt;/p&gt;&#xA;" OwnerUserId="1245" LastActivityDate="2010-12-25T13:29:33.400" />
  <row Id="29963" PostTypeId="2" ParentId="29926" CreationDate="2010-12-25T13:29:54.680" Score="9" ViewCount="" Body="&lt;p&gt;There are really two questions here.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Should a programmer know how to fix&#xA;or maintain a computer? &lt;/li&gt;&#xA;&lt;li&gt;If you do&#xA;know how to fix a computer, does&#xA;that give everyone else the right to&#xA;ask you for help?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Here are my answers:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I believe so.  The computer is the tool of our trade, and its maintenance is not that complicated compared to, say, that of an airplane.  So a programmer should know how do basic things like install or troubleshoot an OS, install a hard disc or memory, install peripherals, etc, just like a violin player should be able to tune his violin, or a trumpet player should know how to oil the valves of his trumpet.&lt;/li&gt;&#xA;&lt;li&gt;That depends on who's asking and how&#xA;time-consuming it is.  If you are a&#xA;programmer, you are probably acting&#xA;as the IT guy for your friends and&#xA;family already.  If somebody you've&#xA;just met at a party asks you to take&#xA;a look at his computer, that's like&#xA;asking a doctor you've just met at a&#xA;party to take a look at your rash.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;On the other hand, believe it or not, there are people out there who realize that fixing or maintaining their computer takes time and effort, and who are willing to pay for it.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2010-12-25T13:29:54.680" CommentCount="5" />
  <row Id="29964" PostTypeId="1" CreationDate="2010-12-25T13:30:41.507" Score="0" ViewCount="58" Body="&lt;p&gt;I want to change the font size and style of the selected text in a text box.The font sizes and names are showed in two  combo boxes and i have to select the font size or style from combo boxes.i also want to cut,copy,paste and delete the selected text but i am unable to get the code about how can I select the text on the text box.My application is in web and I am using c sharp language.can anyone please help me????&lt;/p&gt;&#xA;" OwnerUserId="9181" LastActivityDate="2010-12-25T13:30:41.507" ClosedDate="2010-12-25T16:59:20.727" Title="How can I cut,copy,paste,delete and change the font size and name of the selected text from a textbox using c sharpin my web application?" Tags="&lt;web-applications&gt;" CommentCount="1" />
  <row Id="29965" PostTypeId="2" ParentId="27564" CreationDate="2010-12-25T14:00:08.673" Score="1" ViewCount="" Body="&lt;p&gt;and, obviously, get_shutdown_functions() and unregister_shutdown_function(). Currently there is no way to acces that. And more generally, some abstract support for callback stacking - something to unify spl_autoloads, shutdown functions, error handlers (currently not stackable, but maybe...) etc. Kind of register_callback($callback, $stack) and so on , with some predefined stacks ('autoload', 'shutdown', 'error' ...) called by php or by user itself.&lt;/p&gt;&#xA;" OwnerUserId="5351" LastEditorUserId="5351" LastEditorDisplayName="" LastEditDate="2010-12-25T20:03:55.850" LastActivityDate="2010-12-25T20:03:55.850" CommunityOwnedDate="2010-12-25T14:00:08.673" />
  <row Id="29966" PostTypeId="2" ParentId="29938" CreationDate="2010-12-25T14:02:15.853" Score="0" ViewCount="" Body="&lt;p&gt;If all the tables in the database are MyISAM, you can simply scp them over to the new server and fire up mysql (ensure both servers are down though).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there are some InnoDB or other architectural dependant engine, you should use &lt;code&gt;mysqldump&lt;/code&gt; to export a database or a handful of tables into a file, transfer that over and load it with &lt;code&gt;mysql -p &amp;lt; dump.sql&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, depending on how much data you have in each row, you might need to tweak &lt;code&gt;max_allowed_packet&lt;/code&gt; in MySQL's config (or set it for a single session in a query).&lt;/p&gt;&#xA;" OwnerUserId="11592" LastActivityDate="2010-12-25T14:02:15.853" />
  <row Id="29967" PostTypeId="2" ParentId="29938" CreationDate="2010-12-25T14:15:19.823" Score="0" ViewCount="" Body="&lt;p&gt;Judging from your question it seems you are a beginner at this, and for a beginner the simplest way to do it is by using a backup/restore application with a GUI. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can use &lt;a href=&quot;http://dev.mysql.com/downloads/gui-tools/5.0.html&quot; rel=&quot;nofollow&quot;&gt;MySQL GUI Tools&lt;/a&gt; for that. You will be interested in the &lt;a href=&quot;http://dev.mysql.com/doc/administrator/en/index.html&quot; rel=&quot;nofollow&quot;&gt;MySQL Administrator&lt;/a&gt;. See chapters &lt;a href=&quot;http://dev.mysql.com/doc/administrator/en/mysql-administrator-backup.html&quot; rel=&quot;nofollow&quot;&gt;16&lt;/a&gt; and &lt;a href=&quot;http://dev.mysql.com/doc/administrator/en/mysql-administrator-restore.html&quot; rel=&quot;nofollow&quot;&gt;17&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="7197" LastActivityDate="2010-12-25T14:15:19.823" />
  <row Id="29968" PostTypeId="2" ParentId="29921" CreationDate="2010-12-25T14:16:41.243" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131872494&quot; rel=&quot;nofollow&quot;&gt;C++ GUI Programming with Qt 4&lt;/a&gt;  passed at one time through my hands. From what few days I had it, it seemed like a nice book; it's style of writing (explaining things) suited me very much. Your mileage may vary, but worth checking out nevertheless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/gEIaQ.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, two more advanced ones as suggested by &lt;strong&gt;&lt;em&gt;Martin Beckett&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;Jestin Joy&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321635906&quot; rel=&quot;nofollow&quot;&gt;Advanced Qt Programming: Creating Great Software with C++ and Qt 4 (Prentice Hall Open Source Software Development Series)&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/u2cQY.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1593271476&quot; rel=&quot;nofollow&quot;&gt;The Book of Qt 4: The Art of Building Qt Applications&lt;/a&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/29NeV.jpg&quot; alt=&quot;alt text&quot;&gt;  &lt;/p&gt;&#xA;" OwnerUserId="2439" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-12-27T12:20:50.573" LastActivityDate="2010-12-27T12:20:50.573" CommentCount="3" />
  <row Id="29969" PostTypeId="2" ParentId="29959" CreationDate="2010-12-25T14:29:20.177" Score="0" ViewCount="" Body="&lt;p&gt;As Pierre answered, the brain can't multi-task, and as he also pointed out, you are in fact looking to be more effective while task-switching.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Task-switching, again, is hard to do since as programmers we need time to get &quot;in the zone&quot; and if we are interrupted (phone rings, someone asks us for an information etc) we loose focus and drop everything on the floor. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that, we again need time to get &quot;in the zone&quot;. Repeat this a couple of times and you end up at the end of the day with the crappy feeling that you wasted the entire day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding task-switching, there was a &lt;a href=&quot;http://stackoverflow.com/questions/3118358/whats-the-most-efficient-way-for-a-developer-to-switch-between-tasks/&quot;&gt;related question asked on SO&lt;/a&gt; for how a developer can be more efficient at it. See if it helps in your given situation.&lt;/p&gt;&#xA;" OwnerUserId="7197" LastEditorUserId="7197" LastEditorDisplayName="" LastEditDate="2010-12-26T11:09:04.240" LastActivityDate="2010-12-26T11:09:04.240" />
  <row Id="29970" PostTypeId="2" ParentId="29959" CreationDate="2010-12-25T14:40:43.133" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Multitasking will only make you slower.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;First you have the problem with context switches (overhead) when jumping between projects. It takes an awful lot of time for us to change focus and each additional project makes it even worse. After a while you just end up spinning your wheels, effectively doing nothing. This is shown in the graph below.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/xeuOg.jpg&quot; alt=&quot;Context Switching Costs&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imagine you are working on several projects at the same time. The total completion time for all projects is the same no matter if you work on them in small chunks or completing them one at a time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/8q65G.jpg&quot; alt=&quot;Multi projects&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compared with working and completing one project at a time:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/JIGz3.jpg&quot; alt=&quot;One project at a time&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That looks fine, but the real deal is that you can deliver project 1 and 2 much earlier, and get more feedback and $$$. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, the last image does &lt;strong&gt;not&lt;/strong&gt; take the cost of context switching into account, which would have made the case against multitasking even more solid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Images are taken from &lt;a href=&quot;http://www.infoq.com/articles/multitasking-problems&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; excellent article)&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-12-25T14:40:43.133" CommentCount="1" />
  <row Id="29972" PostTypeId="1" AcceptedAnswerId="29993" CreationDate="2010-12-25T15:38:57.053" Score="3" ViewCount="185" Body="&lt;p&gt;Hi all,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Please help me understand what important features I've missed in Python since my last experience on 2.4 version.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I should choose a framework/language for my upcoming project, which will be time/memory critical and cross-platform, I'm choosing between Java and Python, and before that I want to make sure that I'm not judging Python 2.4.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any help is appreciated.&lt;/p&gt;&#xA;" OwnerUserId="8360" LastActivityDate="2010-12-25T18:31:19.847" Title="What have I missed in Python since version 2.4?" Tags="&lt;python&gt;&lt;language-features&gt;" AnswerCount="3" />
  <row Id="29973" PostTypeId="1" CreationDate="2010-12-25T15:52:13.963" Score="5" ViewCount="467" Body="&lt;p&gt;I don't know if you guys are familiar with this, but a lot of people (or maybe just my friends) think Programmers are bad spellers... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be frank, I am one of them. But i was wondering if its worth stereotyping ....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not claiming all programmers are bad spellers, but maybe a significant percentage...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you guys have to say about this?&lt;/p&gt;&#xA;" OwnerUserId="1272" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T14:16:33.813" LastActivityDate="2010-12-26T14:16:33.813" ClosedDate="2010-12-26T03:17:06.900" Title="Are Programmars bad spellars?" Tags="&lt;stereotypes&gt;&lt;spelling&gt;" AnswerCount="16" CommentCount="8" />
  <row Id="29974" PostTypeId="2" ParentId="29972" CreationDate="2010-12-25T15:52:59.557" Score="3" ViewCount="" Body="&lt;h2&gt;Ordered Dictionaries&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;in Python 3.1&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regular Python dictionaries iterate over key/value pairs in arbitrary order. Over the years, a number of authors have written alternative implementations that remember the order that the keys were originally inserted. Based on the experiences from those implementations, a new &lt;em&gt;collections.OrderedDict&lt;/em&gt; class has been introduced.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;em&gt;OrderedDict&lt;/em&gt; API is substantially the same as regular dictionaries but will iterate over keys and values in a guaranteed order depending on when a key was first inserted. If a new entry overwrites an existing entry, the original insertion position is left unchanged. Deleting an entry and reinserting it will move it to the end.&lt;/p&gt;&#xA;" OwnerUserId="4522" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-12-25T16:10:43.903" LastActivityDate="2010-12-25T16:10:43.903" CommentCount="1" />
  <row Id="29975" PostTypeId="2" ParentId="29973" CreationDate="2010-12-25T16:01:12.283" Score="26" ViewCount="" Body="&lt;p&gt;Absolutely not! Communication is a very crucial aspect of being a programmer. Being a terrible speller makes you seem unprofessional and it will often be viewed as a measure of your skill.&lt;/p&gt;&#xA;" OwnerUserId="7007" LastActivityDate="2010-12-25T16:01:12.283" CommentCount="3" />
  <row Id="29976" PostTypeId="2" ParentId="29973" CreationDate="2010-12-25T16:17:41.337" Score="0" ViewCount="" Body="&lt;p&gt;Despite English being my second language, which gives me a bit of slack usually, I don't think any good programmer would have bad typing skills. I strive to acheive the same level of expertise both in English and in programming, since they're so interwined toguether.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whenever you want to get a point across, provide a short and concise explanation of a problem, discuss methodologies with other programmers and any sort of communication outside of your team, proper spelling and grammer is of the utmost importance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, if you don't put your effort in communicating properly, you're not putting enough effort into programming properly, since communication is a big part of programming as well. People will frown or even turn you down if you display a weak ability to spell and thus, communicate effectively.&lt;/p&gt;&#xA;" OwnerUserId="11592" LastActivityDate="2010-12-25T16:17:41.337" CommentCount="2" />
  <row Id="29977" PostTypeId="2" ParentId="29973" CreationDate="2010-12-25T16:21:44.677" Score="2" ViewCount="" Body="&lt;p&gt;I love the irony of the title :-D&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the question, I never witnessed that personally, they seem to be in average as good/bad spellers as non-programmers.&lt;/p&gt;&#xA;" OwnerUserId="9094" LastEditorUserId="9094" LastEditorDisplayName="" LastEditDate="2010-12-25T16:27:53.677" LastActivityDate="2010-12-25T16:27:53.677" />
  <row Id="29978" PostTypeId="2" ParentId="5384" CreationDate="2010-12-25T16:22:42.353" Score="-2" ViewCount="" Body="&lt;p&gt;Ask $10 for half an hour spent infront of their computer trying to fix it.&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2010-12-25T16:22:42.353" CommunityOwnedDate="2010-12-25T16:22:42.353" />
  <row Id="29979" PostTypeId="2" ParentId="29972" CreationDate="2010-12-25T16:23:41.283" Score="2" ViewCount="" Body="&lt;p&gt;One of the big annoyances when I tried Python 3.0 was that:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;print &quot;Hello world!&quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;had been changed to:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;print(&quot;Hello world!&quot;)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Ugh.&lt;/p&gt;&#xA;" OwnerUserId="11592" LastActivityDate="2010-12-25T16:23:41.283" CommentCount="5" />
  <row Id="29980" PostTypeId="2" ParentId="29973" CreationDate="2010-12-25T16:24:58.467" Score="8" ViewCount="" Body="&lt;p&gt;I'm not sure that programmers are bad spellers per se, more likely prone to typo's because of the time spent at the keyboard perhaps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I do find that programming languages are. I &lt;em&gt;always&lt;/em&gt; see references to &lt;strong&gt;colour&lt;/strong&gt; spelled like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Color&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;;)&lt;/p&gt;&#xA;" OwnerUserId="10067" LastActivityDate="2010-12-25T16:24:58.467" CommentCount="9" />
  <row Id="29981" PostTypeId="2" ParentId="14705" CreationDate="2010-12-25T16:28:53.183" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;How can mind mapping help programmer in his thought process?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Mind maps are great at providing a hierarchical overview over a concept by splitting the concept in its parts/details. So a mind map might help when you have a problem with several possible solutions and you want to &quot;explore&quot; the solutions (by using one big mind map that contains all solutions, or with one mind map for each solution).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I like mind maps and use them quite often, so I suggest to try them out. However, I they don't help you, try something different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I only know FreeMind, and I like it, although it is not perfect.&lt;/p&gt;&#xA;" OwnerUserId="11237" LastEditorUserId="11237" LastEditorDisplayName="" LastEditDate="2010-12-25T16:34:34.817" LastActivityDate="2010-12-25T16:34:34.817" />
  <row Id="29982" PostTypeId="2" ParentId="29973" CreationDate="2010-12-25T16:45:50.907" Score="0" ViewCount="" Body="&lt;p&gt;As ever, it depends. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lots of people have problems with English, programmers or not. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in programming languages, the compiler tends to be a really good spell checker. So in the end we all end up being pretty good spellers!&lt;/p&gt;&#xA;" OwnerUserId="7892" LastActivityDate="2010-12-25T16:45:50.907" />
  <row Id="29983" PostTypeId="2" ParentId="29973" CreationDate="2010-12-25T16:58:20.807" Score="3" ViewCount="" Body="&lt;p&gt;I think that it is common for individuals (mostly men) that lean toward math/science early in school to fall into the stereotype &quot;boys are good at math, girls are good at English&quot;. The fact that software is a male dominate field coincidentally may make it appear like a lot of programmers are bad at English/Spelling. I can tell you from personal experience as a Teacher's Assistance in college that a lot of engineering students are terrible at writing, some are embarrassingly terrible. It is a real problem that clearly demonstrates a big fault in our education system. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As other have already said, you NEED communication skills. If you know you have an issue with spelling, grammar or just a simple command of the English language then I suggested finding someone that can proof read you documents and/or emails before you submit them formally. It really wouldn't hurt to take a technical writing course at a local community college either.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally struggle with silly grammar mistake all the time. To counteract this I have three methods of proof reading. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Never send the document immediately after writing it. At the very least put it down for an hour and come back later. I prefer to come back the next day if that is possible. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Change the layout/format of the document and print a hard copy to read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Read the document out loud. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2010-12-25T16:58:20.807" CommentCount="2" />
  <row Id="29984" PostTypeId="2" ParentId="29973" CreationDate="2010-12-25T17:00:32.017" Score="0" ViewCount="" Body="&lt;p&gt;It would mostly depend on the personality type.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is some correlation, the probability of a programmer being a bad speller is higher. But it's the same with many technical professions. People who like to build things are stronger with the engineering part but have weaker relationships with all that is exterior, not-functional but relates to appearance, style, art and beauty. A human language belongs with the second group.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A hardcore programmer, a techie, a geek may well be a &quot;bad speller&quot;. Either through a weaker command of the language or through negligence, not attributing that much value to the appearance of the communication for he deems it unimportant, even if only subconsciously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More diverse personalities with a gene for creativity and design will also have an appreciation for a human language, its beauty and style. Then it is only natural they will have a much better command of the language, correct spelling being an integral part of it.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-25T17:09:23.600" LastActivityDate="2010-12-25T17:09:23.600" />
  <row Id="29985" PostTypeId="2" ParentId="29973" CreationDate="2010-12-25T17:00:59.510" Score="1" ViewCount="" Body="&lt;p&gt;I've always made a point of spell checking everything. Netbeans has a spell checker for comments so that isn't too much of a problem. I think I'm okay, maybe slightly below average.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;English is a language with more exceptions than rules, so some words are hard to spell.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We had this saying &quot;Heross&quot; around the office, because my boss made a typo 'Heros' (Heroes) on a production website logo. I've made the exact same mistake myself.&lt;/p&gt;&#xA;" OwnerUserId="5678" LastActivityDate="2010-12-25T17:00:59.510" />
  <row Id="29986" PostTypeId="2" ParentId="29973" CreationDate="2010-12-25T17:06:05.353" Score="0" ViewCount="" Body="&lt;p&gt;Bad spelling is most typically associated with poor grammar. I don't believe poor spelling and grammar are characteristics that can be used to stereotype any specific group of people or profession.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Spelling and grammar are disciplines that require attention to detail and an extensive knowledge of a language. If the language in question is not the natural language, then there are other barriers (familiarities and characteristics) that must be overcome.&lt;/p&gt;&#xA;" OwnerUserId="8031" LastActivityDate="2010-12-25T17:06:05.353" />
  <row Id="29987" PostTypeId="2" ParentId="29973" CreationDate="2010-12-25T17:17:16.023" Score="0" ViewCount="" Body="&lt;p&gt;While I have seen some programmers that were less than stellar spellers, I'm not sure they are the majority.  I'd like to think the attention to detail that most programmers have can be applied to language and thus particularly in written communications spelling errors can be rare.  L33tspeak though may introduce a new level of complexity but this shouldn't be inferred as bastardizing the English language.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-25T17:17:16.023" />
  <row Id="29988" PostTypeId="2" ParentId="20240" CreationDate="2010-12-25T17:42:26.590" Score="1" ViewCount="" Body="&lt;p&gt;I really have to sing praise for &lt;a href=&quot;http://phpactiverecord.org&quot; rel=&quot;nofollow&quot; title=&quot;PHP.ActiveRecord&quot;&gt;PHP.ActiveRecord&lt;/a&gt;.  It's nearly a direct clone from Rails' ActiveRecord ORM.  It has been nothing but awesome for me an is relatively painless to integrate into modern frameworks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both developers are regularly available on their support forums to give help to those in need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a brilliant project and I highly recommend it - especially if you're from a Rails background.&lt;/p&gt;&#xA;" OwnerUserId="4423" LastActivityDate="2010-12-25T17:42:26.590" CommentCount="1" />
  <row Id="29989" PostTypeId="2" ParentId="29922" CreationDate="2010-12-25T18:12:39.943" Score="2" ViewCount="" Body="&lt;p&gt;The only two books that anyone would probably recommend are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321712617&quot; rel=&quot;nofollow&quot;&gt;The OpenGL SuperBible&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321552628&quot; rel=&quot;nofollow&quot;&gt;The &quot;Red Book&quot;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The Red Book is the official OpenGL specification, and is written in the form of a tutorial. The current edition is (I believe) 7th Edition, which covers OpenGL 3.0 and 3.1. It is a must to own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The SuperBible is a slightly friendlier tutorial. The current edition, the 5th, covers OpenGL up to 3.3, and introduces the methods for working with the modern OpenGL 3.0+ programmable pipeline. Previous editions cover the &quot;old-style&quot; fixed-function pipeline. The difference is major.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-12-25T18:12:39.943" />
  <row Id="29990" PostTypeId="2" ParentId="14705" CreationDate="2010-12-25T18:18:20.283" Score="0" ViewCount="" Body="&lt;p&gt;I keep an excel sheet with major features mapped out on the first column ... Sub features on the next column and so on. Mind mapping slows you down. Good for customer wow effect though. But then I just use it as a slide made specifically for this.&lt;/p&gt;&#xA;" OwnerUserId="8867" LastActivityDate="2010-12-25T18:18:20.283" />
  <row Id="29991" PostTypeId="1" AcceptedAnswerId="30009" CreationDate="2010-12-25T18:25:38.297" Score="0" ViewCount="180" Body="&lt;p&gt;This is as simple and less vague as i can make it, so please and try to help me out. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;By this, meaning i want to:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;1) Input an audio track (Anaglod)&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;2) Using the micro controllers ADC&#xA;  convert it to a digital output &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;3) Then Have the&#xA;  microcontollers/boards timer sample&#xA;  the data at selected intervuls. &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;4) Tell the board to take the &quot;Sampled&#xA;  audio track&quot; and now sample it at a&#xA;  rate of 2B, ( B meaning the highest&#xA;  frequency.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;F= Frequency&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;F(Hz=1/s)  E.x. 100Hz = 1000 (Cyc/sec)&#xA;  F(s)= 1/(2f)&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Example problem: 1000 hz = Highest&#xA;  frequency 1/2(1000hz) = 1/2000 =&#xA;  5x10(-3) sec/cyc or a sampling rate of&#xA;  5ms&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;5) Spit it back at the boards ADC and&#xA;  convert it back to analog, thus the&#xA;  out-put is a perfect reconstruction of&#xA;  the initial audio track.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Using Fourier Analysis i will determine the highest frequency at which i will sample the track at. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However in theory it sounds easy enough and straight forward, but what i need is to program this in C and utilize my msp430 chip/Experimenters board to sample the track. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Im going to be using Texas Instruments CCS and Octave for my programming and debugging. &#xA;&lt;a href=&quot;http://focus.ti.com/docs/toolsw/folders/print/msp-exp430f5438.html&quot; rel=&quot;nofollow&quot;&gt;http://focus.ti.com/docs/toolsw/folders/print/msp-exp430f5438.html&lt;/a&gt; This is my board that i will be using.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Questions:&#xA;Is c the right language for this? Can i get any examples of how to sample the tack at nyquist frequency using C? What code in C will tell the board to utilize the ADC component? And any recommended information that is similar or that will help me on this project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for reading. &lt;/p&gt;&#xA;" OwnerUserId="11635" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T14:19:24.637" LastActivityDate="2010-12-26T14:19:24.637" ClosedDate="2010-12-26T03:16:34.857" Title="How would i sample an audio tract at nyquist frequency using C/C++ and a micro-controller?" Tags="&lt;advice&gt;&lt;project&gt;&lt;c&gt;&lt;hardware&gt;" AnswerCount="2" CommentCount="3" />
  <row Id="29992" PostTypeId="1" CreationDate="2010-12-25T18:24:46.453" Score="0" ViewCount="384" Body="&lt;p&gt;I am persuing MCA second year and I am confused about to choose the career path that .net or Java, instead that I have knowledge about Java.&lt;/p&gt;&#xA;" LastEditorUserId="18" LastEditorDisplayName="" LastEditDate="2010-12-26T12:13:14.713" LastActivityDate="2010-12-26T12:13:14.713" ClosedDate="2010-12-26T17:56:50.023" Title="What is the best career option in india Java or .net?" Tags="&lt;java&gt;&lt;career-advice&gt;&lt;.net&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="29993" PostTypeId="2" ParentId="29972" CreationDate="2010-12-25T18:31:19.847" Score="7" ViewCount="" Body="&lt;p&gt;You could look at the &quot;what's new in Python x.y&quot; documents released since 2.4. Some changes I really appreciate and use regularily:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;try&lt;/code&gt;/&lt;code&gt;except&lt;/code&gt;/&lt;code&gt;finally&lt;/code&gt; - seems like this was half-assed prior to 2.5 (in that &lt;code&gt;except&lt;/code&gt; and &lt;code&gt;finally&lt;/code&gt; were mutually exclusive)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;with&lt;/code&gt; statement for deterministic cleanup. Basically, it outsources any cleanup (like closing files or other resources) in &lt;code&gt;finally&lt;/code&gt; to the object in use. Example:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    with open('path', 'mode') as f:&#xA;        # use f&#xA;    # at this point, the file is closed, no matter what happens&#xA;    #(well, except interpreter crash ;))&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://docs.python.org/tutorial/inputoutput.html#fancier-output-formatting&quot; rel=&quot;nofollow&quot;&gt;new string formatting&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;In Python 3, many functions now return iterators instead of lists (builtin &lt;code&gt;.+&lt;/code&gt; replaced with &lt;code&gt;itertools.i\1&lt;/code&gt;, &lt;code&gt;dict.iterkeys()&lt;/code&gt; and friends replace &lt;code&gt;dict.keys()&lt;/code&gt; and friends, &lt;code&gt;xrange&lt;/code&gt; replaces &lt;code&gt;range&lt;/code&gt;, etc). This can greatly reduce memory usage and is generally very neat :)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;/&lt;/code&gt; always returns a float. Use &lt;code&gt;//&lt;/code&gt; for integer/truncating division&lt;/li&gt;&#xA;&lt;li&gt;Python 3 always uses unicode by default; there is &lt;code&gt;bytes&lt;/code&gt; for when you actually want to work with bytes or a single-byte encoding.&lt;/li&gt;&#xA;&lt;li&gt;Also, a whole lot of shiny, very useful libraries (both stdlib and third party)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7043" LastActivityDate="2010-12-25T18:31:19.847" CommentCount="1" />
  <row Id="29994" PostTypeId="2" ParentId="29992" CreationDate="2010-12-25T18:35:07.223" Score="3" ViewCount="" Body="&lt;p&gt;I strongly believe this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are very very good at what you do, no matter what the field of your endeavor, you will be able to ply your trade and find customers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMO, both options currently have very good prospects, their own challenges, and a huge existing customer base, so you really cannot go wrong with either choice.&lt;/p&gt;&#xA;" OwnerUserId="4535" LastActivityDate="2010-12-25T18:35:07.223" />
  <row Id="29995" PostTypeId="2" ParentId="29973" CreationDate="2010-12-25T18:36:27.207" Score="0" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Some&lt;/em&gt; programmers might operate in the mode &quot;compiles, works, done&quot;, whereas English spelling in comments, program output, and documentation is harder to check automatically.  Of course editors can help, but then you need to put work and dedication into it.  It is one of the things that divides the code monkeys from the craftspersons.&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-12-25T18:36:27.207" />
  <row Id="29996" PostTypeId="2" ParentId="25532" CreationDate="2010-12-25T18:39:46.483" Score="6" ViewCount="" Body="&lt;p&gt;Cobol was largely used by businesses.  It wasn't a particularly nice language, but there was good money in programming it.  Ultimately it went into decline and isn't used much these days. Describing Java as the New Cobol is a disapproving/dismissive phrase which IMHO tends to come from developers who would rather be programming nicer languages like ruby, php, perl or the like. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I am not so hung up on how pretty/fun my code is, but rather how useful/valuable it is. When I was younger, the former was more important to me. Java is more the later, but thats the way I like it now I have over 20 years programming experience. ;)&lt;/p&gt;&#xA;" OwnerUserId="11636" LastActivityDate="2010-12-25T18:39:46.483" CommentCount="1" />
  <row Id="29997" PostTypeId="2" ParentId="29991" CreationDate="2010-12-25T18:41:51.943" Score="-1" ViewCount="" Body="&lt;p&gt;C is right language (if it isnt, then the next best would be the assembly language of the board Processor)&#xA;You need to decide what part of the above 5 points will be done in H/w by the board and what do you want to do in S/W&#xA;Read(or search on Web) a bit of Kernel/Device-Driver Programming to see how simple character drivers are written&#xA;Hope fully your task shouldnt be much different from it.&lt;/p&gt;&#xA;" OwnerUserId="3672" LastActivityDate="2010-12-25T18:41:51.943" CommentCount="1" />
  <row Id="29999" PostTypeId="1" AcceptedAnswerId="30012" CreationDate="2010-12-25T19:20:19.023" Score="6" ViewCount="175" Body="&lt;p&gt;Hi, i work for a company that primarily build java applications and i'm trying to convince everybody to stop checking-in binary files (dependencies and final products) into SCM. They know it is a bad practice but they consider it a lesser evil and they think that &quot;it works&quot; and it is not really a problem even when many people know about Maven and other tools for building besides Ant. Both PMs and programmers (around 50 people) are ready to listen any argument against and even acknowledge that it is a waste of backup space but i want to be really convincing because the habit change would involve a lot of effort. What arguments do you use to support a change? Thanks in advance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Ok, make sense to make a disctintion between files that almost do not change, like dependencies, and generated files. Even so, i'm interested in reasons against the latter.&lt;/p&gt;&#xA;" OwnerUserId="1969" LastEditorUserId="1969" LastEditorDisplayName="" LastEditDate="2010-12-26T04:01:37.613" LastActivityDate="2010-12-26T04:01:37.613" Title="Arguments againts checking-in binary files into SCMs" Tags="&lt;java&gt;&lt;best-practices&gt;&lt;builds&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="30000" PostTypeId="2" ParentId="25532" CreationDate="2010-12-25T19:58:43.857" Score="1" ViewCount="" Body="&lt;p&gt;Because it's a lowest-common-denominator language used by businesses. &lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-25T19:58:43.857" />
  <row Id="30001" PostTypeId="2" ParentId="27564" CreationDate="2010-12-25T20:00:35.620" Score="1" ViewCount="" Body="&lt;p&gt;adding object wrappers for extensions using resources (curl, ftp, gd2 ... ). Like &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; $oFtp = new Ftp();&#xA;&#xA; $oFtp-&amp;gt;connect();&#xA;&#xA; $oFtp-&amp;gt;close();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5351" LastActivityDate="2010-12-25T20:00:35.620" CommunityOwnedDate="2010-12-25T20:00:35.620" CommentCount="2" />
  <row Id="30002" PostTypeId="2" ParentId="27564" CreationDate="2010-12-25T20:11:03.670" Score="3" ViewCount="" Body="&lt;p&gt;I would like to see an &lt;code&gt;else&lt;/code&gt; clause for &lt;code&gt;while&lt;/code&gt;, &lt;code&gt;for&lt;/code&gt;, and &lt;code&gt;foreach&lt;/code&gt;. E.g.:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;while (/*condition*/) {&#xA;   /* display each result */&#xA;}&#xA;else {&#xA;   /* condition was never true; display &quot;no results found&quot; message */&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The &lt;code&gt;else&lt;/code&gt; block is only executed if the condition for the &lt;code&gt;while&lt;/code&gt; was &lt;em&gt;never&lt;/em&gt; true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This would make it so you wouldn't need to keep track of Boolean flags, and perhaps it could help you think about boundary cases and possible error conditions.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-25T20:11:03.670" CommunityOwnedDate="2010-12-25T20:11:03.670" CommentCount="4" />
  <row Id="30003" PostTypeId="2" ParentId="25532" CreationDate="2010-12-25T20:14:43.103" Score="3" ViewCount="" Body="&lt;p&gt;There are a billions lines of written on &lt;code&gt;cobol&lt;/code&gt; that works on production and does money-related  operations. Rewriting &lt;code&gt;cobol&lt;/code&gt;-written systems(or even its parts) is too hard and too risky. That's why dead &lt;code&gt;cobol&lt;/code&gt; is still alive :) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently I'm working at internal-scale bank and observe very similar situation with &lt;code&gt;java&lt;/code&gt; - so many trade-systems are  written on &lt;code&gt;java&lt;/code&gt;, can't tell you. These trade-(and other banking stuff)-systems will live for a very long time and &lt;code&gt;java&lt;/code&gt; with them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;hr/&gt;&#xA;p.s. it seems to me, that in approximately 30-50 years we'll have specific class of kind a &lt;code&gt;cobol&lt;/code&gt;-like languages: dead still alive and working(for instance - &lt;code&gt;cobol&lt;/code&gt;, &lt;code&gt;java&lt;/code&gt;, etc ...).&#xA;&lt;hr/&gt;&#xA;disclaimer: despite of I've written word &lt;code&gt;dead&lt;/code&gt; near &lt;code&gt;cobol&lt;/code&gt; and &lt;code&gt;java&lt;/code&gt; many times I'm not against them, what's more - they deserve respect, IMHO, for stable work on production for years.&#xA;&lt;hr/&gt;&#xA;p.p.s. if you're reading this sentence - thank you for reading post to the end :)&lt;/p&gt;&#xA;" OwnerUserId="11530" LastActivityDate="2010-12-25T20:14:43.103" CommentCount="1" />
  <row Id="30004" PostTypeId="1" CreationDate="2010-12-25T20:40:41.780" Score="2" ViewCount="108" Body="&lt;p&gt;I'm brazilian and I want to learn how to develop a game in some college or something like that, but I don't know any place here to learn it. Here is not that good either to develop games, as we don't have many companies to do that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I was thinking about working in some place else, while I study it. What I really want to know is, a good place to learn, and a country that developers are well payed to be able to pay my course and still have money to do something else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a Java programmer, still learning a lot, but I want to do it later. A few years from now.&lt;/p&gt;&#xA;" OwnerUserId="11640" LastActivityDate="2010-12-25T20:42:16.507" Title="Where is a good place to learn how to develop games?" Tags="&lt;career&gt;&lt;java&gt;&lt;software-development&gt;&lt;games&gt;" AnswerCount="1" />
  <row Id="30005" PostTypeId="2" ParentId="30004" CreationDate="2010-12-25T20:42:16.507" Score="3" ViewCount="" Body="&lt;p&gt;How about &lt;a href=&quot;http://gamedev.stackexchange.com/&quot;&gt;http://gamedev.stackexchange.com/&lt;/a&gt; ?&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-12-25T20:42:16.507" CommentCount="1" />
  <row Id="30006" PostTypeId="2" ParentId="28979" CreationDate="2010-12-25T21:03:59.050" Score="0" ViewCount="" Body="&lt;p&gt;I kind of agree that learning php is usually not learned by books. But, there are many people who learn better by reading a book for some reasons (me included). I believe that the market is not mature enough. I would suggest something like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://headfirstlabs.com/books/hfphp/&quot; rel=&quot;nofollow&quot;&gt;Head first labs, php book&lt;/a&gt; (I have not read it but everything from the head first series is great)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and honestly difficult on thinking something else...&lt;/p&gt;&#xA;" OwnerUserId="6059" LastActivityDate="2010-12-25T21:03:59.050" />
  <row Id="30007" PostTypeId="2" ParentId="29999" CreationDate="2010-12-25T21:06:32.107" Score="0" ViewCount="" Body="&lt;p&gt;Seems redundant to include both source and object files (source files are obviously required). In addition to just being unnecessary, the object files can take-up a lot of space. If your firm is using a distributed SCM (Git, Hg, Bzr) then those binary files must be copied and stored among all the developers. &lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-25T21:06:32.107" />
  <row Id="30008" PostTypeId="2" ParentId="29973" CreationDate="2010-12-25T21:19:48.690" Score="0" ViewCount="" Body="&lt;p&gt;Enhance your spelling by lot of practising, say, don't skip the document writing job.&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-12-25T21:19:48.690" />
  <row Id="30009" PostTypeId="2" ParentId="29991" CreationDate="2010-12-25T21:23:00.777" Score="1" ViewCount="" Body="&lt;p&gt;You can find some code examples at:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;index:&lt;br&gt;&#xA;http:// focus.ti.com/mcu/docs/mcuprodcodeexamples.tsp?sectionId=96&amp;amp;tabId=1468&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;using the real-time-clock library:&lt;br&gt;&#xA;http:// focus.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber=slaa290&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;on using timers of msp430 (with code samples)&lt;br&gt;&#xA;&lt;a href=&quot;https://docs.google.com/viewer?url=http://focus.ti.com/lit/ml/slap113/slap113.pdf&quot; rel=&quot;nofollow&quot;&gt;https://docs.google.com/viewer?url=http://focus.ti.com/lit/ml/slap113/slap113.pdf&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;actually googling should be able to help you out more with code examples since SA/SO seems to have fewer embedded programmers&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the intent, I can think of two ways to do this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Your method:&#xA;   Initially sample the audio track at highest possible rate(uC clock rate).&lt;br&gt;&#xA;   Do a Fourier analysis, find nyquist frequency.&lt;br&gt;&#xA;   However, this requires you to have the entire audio-track beforehand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) In case your audio track is continuously streamed, you can adaptively increase the sampling frequency whenever the difference between two successive ADC inputs increase by more than 1 bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;pseudo-code for 2):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;nyq_freq = 20000    // since its an audio track, no use of freq. above 20 KHz?&#xA;freq_step = x       // the smallest unit by which freq. can inc/dec&#xA;&#xA;c_amplitude = read_adc()&#xA;p_amplitude = c_amplitude&#xA;&#xA;set_samp_timer ( nyq_freq )&#xA;&#xA;on every samp_timer update:&#xA;  store (amplitude+nyq_freq as a packet)&#xA;  c_amplitude = read_adc()&#xA;  if abs(c_amplitude-p_amplitude) &amp;gt; 1-bit&#xA;    nyq_freq += freq_step&#xA;    update_samp_timer ( nyq_freq )&#xA;  p_amplitude = c_amplitude&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Sorry if I stated something very obvious/stupid, it's been a while since I've done any embedded stuff.. :-)&lt;/p&gt;&#xA;" OwnerUserId="11643" LastActivityDate="2010-12-25T21:23:00.777" CommentCount="5" />
  <row Id="30010" PostTypeId="2" ParentId="1483" CreationDate="2010-12-25T21:53:33.857" Score="1" ViewCount="" Body="&lt;p&gt;I am Indonesian currently living in Kuwait. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the first year of my computer science studies, I used &lt;em&gt;Bahasa&lt;/em&gt; for almost everything except &lt;code&gt;int main()&lt;/code&gt;. But I noticed that some of us code in english already.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of our programming books are in english. I find it very difficult to find words in &lt;em&gt;Bahasa&lt;/em&gt; that are equivalent for programming terms. So instead of using half-english-half-bahasa language, I (and most of my friends) started to make every possible effort to code in english.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my first working experience in Jakarta, Indonesia, I was obliged to code in english.&lt;/p&gt;&#xA;" OwnerUserId="11618" LastActivityDate="2010-12-25T21:53:33.857" CommunityOwnedDate="2010-12-25T21:53:33.857" />
  <row Id="30011" PostTypeId="2" ParentId="39" CreationDate="2010-12-25T22:02:55.217" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Don't code today what you can't debug tomorrow&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;from this &lt;a href=&quot;http://ariya.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;blog&lt;/a&gt;'s title&lt;/p&gt;&#xA;" OwnerUserId="11618" LastActivityDate="2010-12-25T22:02:55.217" CommunityOwnedDate="2010-12-25T22:02:55.217" />
  <row Id="30012" PostTypeId="2" ParentId="29999" CreationDate="2010-12-25T22:03:58.870" Score="3" ViewCount="" Body="&lt;p&gt;Storage space is cheap, and so that's not a very convincing argument for why you should or shouldn't check files in.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead, You can appeal to the purpose of SCM.  Each file that is tracked by SCM represents some need to manage the parallel, distributed changes your team is doing.  None of that is really apparent until two team members try to change the same file.  Resolving those changes is what SCM is really for, preventing accidental overwrite of another dev's work, and hopefully, automating the process of merging those changes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Merging binary files is usually a real challenge, because there's no sane way for a generic merge tool to guess how a merged binary file should work.  It can't know enough about how the indexes or offset pointers in the file work unless specially designed to recognize that particular file type.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That means it's up to the dev to merge the binary file by hand, and then tell the SCM that the file has been so merged.  Since it's a dev doing it, the merge may not really cover all of the changes of both prior check-ins, and since the file is binary, there's no automated way to verify the merge.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For binary formats that really represent project sources, such as art assets, this is an unfortunate, but neccesary step.  However, build outputs aren't sources.  There's no need to merge them, because the sources can be merged and a resulting build output can be regenerated.  Tracking and managing these changes is 100% waste.  It wastes the SCM's resources, though not terribly much, but it also wastes developer time getting past the spurious merge failures.  Developer time is very expensive, and anything that puts it to waste is a cancer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, there is a particular case where the build outputs should be archived.  Any version of the project that has ever been shipped or deployed should probably be retained, indefinitely.   Having an exact, byte for byte copy of the actual build that a customer is having issues with can make supporting that customer much easier, since you will have the exact version he has.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That backup probably shouldn't be in the same repository as the source code, since they will generally follow different schedules and have basically different structures.&lt;/p&gt;&#xA;" OwnerUserId="8656" LastActivityDate="2010-12-25T22:03:58.870" />
  <row Id="30013" PostTypeId="2" ParentId="1483" CreationDate="2010-12-25T22:06:38.383" Score="1" ViewCount="" Body="&lt;p&gt;I am from Denmark, and even though many of the technical terms translates nicely to danish, it is the norm to use the english terms (though some tend to ONLY use the danish terms, but I guess you see them everywhere).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I code in English; Meaning that all my comments, my variables, classes and so on, are in English. I do this because it makes it so much easier. If I want to make my code public, everybody can read and understand the program. If I am going to help out a friend with a code-example, I don't have to translate the comments beforehand.&lt;/p&gt;&#xA;" OwnerUserId="7689" LastActivityDate="2010-12-25T22:06:38.383" CommunityOwnedDate="2010-12-25T22:06:38.383" />
  <row Id="30014" PostTypeId="2" ParentId="29973" CreationDate="2010-12-25T22:12:33.043" Score="0" ViewCount="" Body="&lt;p&gt;I think Pemdas is right on the money!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I, myself, am pretty good at spelling (in Danish atleast), but when I was in municipal primary and lower secondary school I wasn't really digging math the first couple of years, and therefore I didn't &quot;ditch&quot; Danish early on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But looking at some of my colleagues, I can see a difference in spelling. Some of them are really bad at spelling.&lt;/p&gt;&#xA;" OwnerUserId="7689" LastActivityDate="2010-12-25T22:12:33.043" />
  <row Id="30015" PostTypeId="2" ParentId="14705" CreationDate="2010-12-25T22:15:50.513" Score="0" ViewCount="" Body="&lt;p&gt;I don't use software for mind mapping. I've tried, but it takes to much of my time. I spend more time looking for symbols, setting it up nicely and such.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead I just use a piece of paper, or, even better, a whiteboard and perhaps some post-its.&lt;/p&gt;&#xA;" OwnerUserId="7689" LastActivityDate="2010-12-25T22:15:50.513" />
  <row Id="30016" PostTypeId="1" AcceptedAnswerId="30022" CreationDate="2010-12-25T22:38:28.263" Score="6" ViewCount="282" Body="&lt;p&gt;As it were, I do enjoy programming in assembly. I know that as a rule, assembly is platform specific so 'x' assembly will not help me if I had to work with 'y' machines. That said, how common are (at least competent) assembly programmers and how in demand are they?&lt;/p&gt;&#xA;" OwnerUserId="7007" LastActivityDate="2010-12-26T18:31:23.750" Title="Assembly &amp; The Programming Field" Tags="&lt;job-market&gt;&lt;assembly&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="1" />
  <row Id="30017" PostTypeId="2" ParentId="29973" CreationDate="2010-12-25T22:44:46.733" Score="0" ViewCount="" Body="&lt;p&gt;I think, most programmers are &lt;strong&gt;not natural english speakers&lt;/strong&gt;, therefore neither good spellers nor pronunciat…ors at all. And because of GB!=US, of course, they are confused writers. Spelling bees are pretty strange, from the perspective of non-english speakers: Alphabetizing is usually easy, but the pronunciation?!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But maybe that's only me.&lt;/p&gt;&#xA;" OwnerUserId="7258" LastActivityDate="2010-12-25T22:44:46.733" CommentCount="1" />
  <row Id="30018" PostTypeId="1" CreationDate="2010-12-25T22:41:33.903" Score="4" ViewCount="395" Body="&lt;p&gt;&lt;strong&gt;Will my career be perpetually haunted by my crappy first job?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let me explain further.  In a few months I'll be finishing my PhD in &lt;em&gt;math&lt;/em&gt; and I plan to pursue a career in software development instead.  I've been programming off and on since I was 11 or so, and really love it.  I went to college with the intention of majoring in CS but ended up doing math instead.  Ten years later I want to put all this abstract nonsense to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There will be obstacles.  At the moment, the only language I can honestly say I'm extremely fluent in is Java (I'm working on a few projects in Java right now).  At one time I did a LOT of BASIC, C, and a touch of assembly.  I wrote all sorts of games (2d/3d/text adventures) art programs, randomized music programs, ... the kind of stuff kids like.  But, that was a long time ago.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now, my knowledge is a lot deeper than it is wide.  Others competing for similar jobs will likely be able list a lot more acronyms of technologies they're familiar with.  They'll also be able to claim much longer working times with those technologies.  Common sense suggests this will make it harder for me to get some of the more challenging and interesting jobs I really want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;In mathematics reputation is large part of the game: It is unlikely that you will ever get professorship at a school better than your first post doc (it happens to be sure, but not often).  Is the same kind of thing true in software?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Put differently, should I try to hang out as an academic (where I really am a pro) until I manage to train myself more thoroughly?  Or, should I do what I really want to do: carpe that diem by the horns, pay my dues, and take the best industry offer I get.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="11646" LastActivityDate="2010-12-26T04:37:39.593" Title="Will accepting &quot;low end&quot; first software job hurt my chances at a dream job later?" Tags="&lt;math&gt;&lt;career&gt;&lt;jobs&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="1" />
  <row Id="30019" PostTypeId="2" ParentId="30018" CreationDate="2010-12-25T22:50:36.623" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;In mathematics reputation is large part of the game. Is the same kind of thing true in software?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In business, reputation and that kind of limited career path does not exist.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Common sense suggests this will make it harder for me to get some of the more challenging and interesting jobs I really want.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Correct.  However, your first job has almost no bearing on subsequent jobs.  There's no &quot;prestige&quot; factor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just get any job that pays the rent.  Then, when you have different skills, get another job.  Programming is simply technical skills applied to a particular business domain.  The general &quot;progression&quot; is -- perhaps -- from programmer to team leader or project manager.  But even then, many of us have been programmers for 30 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any sensible employer is happy to find the right skills or find the right business domain or possibly find both.  &lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2010-12-25T22:50:36.623" />
  <row Id="30020" PostTypeId="2" ParentId="29973" CreationDate="2010-12-25T22:52:53.330" Score="0" ViewCount="" Body="&lt;p&gt;I am absolutely not a bad speller. I speak/read/write native English, however.&lt;/p&gt;&#xA;" OwnerUserId="11647" LastActivityDate="2010-12-25T22:52:53.330" />
  <row Id="30021" PostTypeId="2" ParentId="30018" CreationDate="2010-12-25T23:05:53.377" Score="3" ViewCount="" Body="&lt;p&gt;I asked the original question, but it was migrated before I had an account over here. :-(&lt;/p&gt;&#xA;&#xA;&lt;p&gt;@Belisarius  Actually, depending on the branch of math &quot;abstract nonsense&quot; is a well accepted affectionate term.  (Especially in category theory.)  I'm a HUGE fan math of all varieties.  I didn't mean to give the wrong impression.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;p.s.  I know this is an abuse of the answer form (because I don't have the reputation). but I thought the idea was worth conveying.&lt;/p&gt;&#xA;" OwnerUserId="11646" LastActivityDate="2010-12-25T23:05:53.377" CommentCount="1" />
  <row Id="30022" PostTypeId="2" ParentId="30016" CreationDate="2010-12-25T23:06:52.363" Score="5" ViewCount="" Body="&lt;p&gt;Assembly seems like an awesome skill to have but a rare skill to use. While it certainly proves that you've got something going (knowing how software really works is good value in my opinion), I doubt many companies still use it on a regular basis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you feel you have a good grasp of assembly, move on to another language, such as C, C++, C# or maybe Java (what to choose is a whole new topic). This will help you get a much broader spectrum of skills that are more likely to be in demand rather than &lt;em&gt;just&lt;/em&gt; assembly.&lt;/p&gt;&#xA;" OwnerUserId="11592" LastActivityDate="2010-12-25T23:06:52.363" CommentCount="3" />
  <row Id="30023" PostTypeId="2" ParentId="29999" CreationDate="2010-12-25T23:09:19.163" Score="1" ViewCount="" Body="&lt;p&gt;One of the primary advantages of using SCMs is that you can reconstruct your system from anytime in the past. So there is no point is storing your final build in your SCM because you can just check out the revision number and build it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You mention dependencies...&#xA;Your SCM should be set up so that you can do a clean checkout to a new machine (with dev environment), hit build and you should be able to build your system without needing to install anything else. So keeping binary dependencies in your SCM is a good idea. Libraries rarely change so they won't take up much room.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Almost no one does this.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastEditorUserId="5185" LastEditorDisplayName="" LastEditDate="2010-12-25T23:34:29.067" LastActivityDate="2010-12-25T23:34:29.067" CommentCount="2" />
  <row Id="30024" PostTypeId="2" ParentId="29999" CreationDate="2010-12-25T23:31:03.993" Score="6" ViewCount="" Body="&lt;p&gt;Dependencies, even in binary form, should be checked in so that when someone else pulls down the project, it just works. The main concern is not the type of file, but how the file is created. The rule of thumb that I use is that if it can be generated using another file, it doesn't get checked in - this means automatically generated documentation, binary files that I create, and so on.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-12-25T23:31:03.993" />
  <row Id="30025" PostTypeId="2" ParentId="30018" CreationDate="2010-12-25T23:39:51.950" Score="5" ViewCount="" Body="&lt;p&gt;You're wielding a lot more know-how than you are aware of. With a PhD in Mathematics, you can land a great job in some core discipline, like graphics libraries or sound processing, AI algorithms etc. &#xA;Of course - don't even think about applying at small software shops, they mostly need undereducated code-monkeys, instead try landing a job at the more established companies. Or launch a startup and solve a real problem with &lt;em&gt;abstract nonsense&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-25T23:39:51.950" CommentCount="7" />
  <row Id="30026" PostTypeId="2" ParentId="30016" CreationDate="2010-12-25T23:45:58.710" Score="2" ViewCount="" Body="&lt;p&gt;Assembly by itself probably won't get you a job.  If you're a C or C++ programmer, it can be majorly helpful to know it because you can examine the disassembly of a function and see how it's &lt;em&gt;really&lt;/em&gt; working.  If you work in a higher-level language, it falls more under the &quot;nice to know, but not directly useful&quot; category.  This is because the way that higher-level programs get turned into machine instructions becomes much more complex.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-25T23:45:58.710" />
  <row Id="30027" PostTypeId="2" ParentId="39" CreationDate="2010-12-26T00:03:20.533" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;The best indication of software&#xA;  quality is consistent indentation&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I read this when I was following up footnotes in &lt;a href=&quot;http://mitpress.mit.edu/sicp/&quot; rel=&quot;nofollow&quot;&gt;SICP&lt;/a&gt; once but I've not been able to find it since, so a) I can't attribute it and b) I am writing from memory, and more than likely paraphrasing. I have, however, found it to be true.&lt;/p&gt;&#xA;" OwnerUserId="1078" LastActivityDate="2010-12-26T00:03:20.533" CommunityOwnedDate="2010-12-26T00:03:20.533" CommentCount="1" />
  <row Id="30028" PostTypeId="2" ParentId="30016" CreationDate="2010-12-26T00:15:14.633" Score="1" ViewCount="" Body="&lt;p&gt;A programmer can produce about the same number of lines of debugged production code per day regardless of the language.   It takes more lines of code to do the same thing in assembly than in most other languages, so you are per definition less productive in assembly than in most other languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means that there must be additional requirements that offset this, where I've heard of the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Embedded systems with very little memory, where the human can make better code allowing it to do things that might not otherwise be possible.&lt;/li&gt;&#xA;&lt;li&gt;Graphics card drivers, where you need extremely optimized code to get the best performance out of the card.  &lt;/li&gt;&#xA;&lt;li&gt;Chrome V8 - &lt;a href=&quot;http://www.google.dk/intl/en/jobs/software-engineer-aarhus/index.html&quot; rel=&quot;nofollow&quot;&gt;http://www.google.dk/intl/en/jobs/software-engineer-aarhus/index.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Java HotSpot JVM.  You need to know the code generated&#xA;(and any other compiler job).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You may want to consider looking at contributing work for some of the new cpu's coming up to a compiler, like gcc.  &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-26T00:15:14.633" CommentCount="3" />
  <row Id="30029" PostTypeId="1" CreationDate="2010-12-26T00:41:31.950" Score="3" ViewCount="219" Body="&lt;p&gt;For instance, non-vertically aligned:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Name:   Hamt&#xA;Version:  0.1.0&#xA;Cabal-Version:  &amp;gt;= 1.2&#xA;License:  BSD3&#xA;Author:  Jason Baker&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Or vertically aligned:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Name:           Hamt&#xA;Version:        0.1.0&#xA;Cabal-Version:  &amp;gt;= 1.2&#xA;License:        BSD3&#xA;Author:         Jason Baker&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Which do you prefer and why?&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2011-01-27T02:44:04.457" Title="Vertical alignment: yea or nay?" Tags="&lt;code-layout&gt;&lt;whitespace&gt;&lt;coding-conventions&gt;" AnswerCount="6" FavoriteCount="0" />
  <row Id="30030" PostTypeId="2" ParentId="30029" CreationDate="2010-12-26T00:43:19.247" Score="9" ViewCount="" Body="&lt;p&gt;Personally, I'm of the opinion that the second version of the code is marginally more readable, but I don't think that maintaining it makes up for that readability.  Therefore, I'd only use the second version of this example if I was fairly certain that the code wouldn't change.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-26T00:43:19.247" CommentCount="2" />
  <row Id="30031" PostTypeId="1" AcceptedAnswerId="30034" CreationDate="2010-12-26T00:45:47.393" Score="3" ViewCount="232" Body="&lt;p&gt;Hello...we are about to start on a Web Development project (the planning starts early 2011). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do we choose HTML5/JS over Silverlight?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any applications which now run on HTML5? Samples?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A simple Google Search led me &lt;a href=&quot;http://blog.elctech.com/2010/04/02/interesting-html5-projects-that-further-prove-flash-is-on-its-way-out/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;. Those look great (especially the Star Wars one!), but they are not what you call proper applications as such. &lt;/p&gt;&#xA;" OwnerUserId="5070" LastActivityDate="2010-12-26T13:46:40.480" Title="Starting on Web Project now - Do we choose HTML5/JS over Silverlight?" Tags="&lt;silverlight&gt;&lt;html5&gt;" AnswerCount="5" CommentCount="3" />
  <row Id="30032" PostTypeId="2" ParentId="29918" CreationDate="2010-12-26T01:06:25.800" Score="1" ViewCount="" Body="&lt;p&gt;I would recommend Murach's Java Servlets and JSP. It has tons of examples. &#xA;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1890774448&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Murachs-Java-Servlets-JSP-2nd/dp/1890774448/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1292984397&amp;amp;sr=8-1&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11658" LastActivityDate="2010-12-26T01:06:25.800" CommentCount="1" />
  <row Id="30033" PostTypeId="2" ParentId="30029" CreationDate="2010-12-26T01:11:53.357" Score="4" ViewCount="" Body="&lt;p&gt;I prefer the first one, but without the tabs (which I guess the blanks are); just one blank space instead. To me that's easier to read when the data is not &quot;similar&quot;, as in the given case. It also makes it more difficult (while editing such data) to &quot;misread a row&quot;, i.e. when you have three rows with let's say, version numbers. And then while editing one, you accidentally edit another in it's place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the data is similar, however, it makes perfect sense to put it in columns as in your second example (only there is it not similar, but you get the point).&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-26T01:11:53.357" />
  <row Id="30034" PostTypeId="2" ParentId="30031" CreationDate="2010-12-26T01:16:59.550" Score="3" ViewCount="" Body="&lt;p&gt;If you are going to write most of your app from scratch and have developers with very good skills and motivation to mess with unstable specifications and browser quirks in exchange for doing cool things that nobody did before - go HTML5.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If on the other hand you prefer to build on top of what others build, use advanced tools and ready-made widgets and prefer getting things done sooner rather than later, no matter if a little ugly, and want to have a wide choice of developers be available to you - you may want to go with more established technologies, like Flash or Silverlight. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also depends on if there are some existing tools and libraries in the area you are targeting or you are opening an entirely new topic. &lt;/p&gt;&#xA;" OwnerUserId="10080" LastActivityDate="2010-12-26T01:16:59.550" />
  <row Id="30035" PostTypeId="1" AcceptedAnswerId="30039" CreationDate="2010-12-26T01:21:54.087" Score="5" ViewCount="249" Body="&lt;p&gt;&lt;a href=&quot;http://cc2e.com/&quot; rel=&quot;nofollow&quot;&gt;Code Complete&lt;/a&gt; has some good, sensible discussion about code at the design level (i.e. discussion of how to design classes).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any books that give a similar treatment to relational database design?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I’m looking for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;practical&lt;/li&gt;&#xA;&lt;li&gt;non-religious&lt;/li&gt;&#xA;&lt;li&gt;about database design, as opposed to SQL query design&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3329" LastEditorUserId="3329" LastEditorDisplayName="" LastEditDate="2010-12-26T10:10:50.617" LastActivityDate="2010-12-26T10:14:24.577" CommunityOwnedDate="2010-12-26T16:13:18.783" Title="What are some good books on relational database design?" Tags="&lt;recommendations&gt;&lt;design&gt;&lt;books&gt;&lt;database&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="2" />
  <row Id="30036" PostTypeId="2" ParentId="27564" CreationDate="2010-12-26T01:29:20.370" Score="1" ViewCount="" Body="&lt;p&gt;My first two annoyances has not to do with PHP, but with its implied usage conventions. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;'The file name extension' for library code (e.g. PEAR/Horde/Zend/etc.) should end on &lt;code&gt;.phps&lt;/code&gt; instead of &lt;code&gt;.php&lt;/code&gt;. The benefit of this is that it clearly separates code to run and code to include, as well as that optionally all (your) code is pretty readable/browsable from the server. As a bonus, &lt;code&gt;spl_filename_extensions()&lt;/code&gt; can be used in your autoloader for other's convenience.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The convention (in the documents) is that &lt;code&gt;::&lt;/code&gt; is used for both static as well instance methods, I would be thankfull if they would use &lt;code&gt;::&lt;/code&gt; for static and &lt;code&gt;-&amp;gt;&lt;/code&gt; for instance stuff. As a good convention there still will be room for error concerning interpretation, but it's at least more clear.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;To name a few, I would also like to see the following:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Reflection*'s getDocComment (or perhaps another variant of the name or argument) should be more liberal and also get just the first comments (until space) above the mentioned type. In other words: I don't like the verbose (read: line eating) doccomment while I really just want to be able to provide the bare minimum in any kind of commenttype: &lt;code&gt;//&lt;/code&gt;, &lt;code&gt;#&lt;/code&gt;, or &lt;code&gt;/* ... */&lt;/code&gt;. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;List of used namespaces, e.g. &lt;code&gt;getdefinednamespaces()&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The behaviour of 'undefined constants' should be changable by an ini directive, e.g. an empty string or fatal error. Nevertheless, it should never be implicitly transformed to a string! (it's like the ; in javascript).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The constant &lt;code&gt;__CLASS__&lt;/code&gt; should also automatically work like this (called statically) &lt;code&gt;stdClass::__CLASS__ == '\stdClass'&lt;/code&gt;. In other words, instead of referring to a class by a string, I want to use a class and its magic constant &lt;code&gt;__CLASS__&lt;/code&gt; to refer to it. (yes it is an idefix)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Type casting and magic methods &lt;code&gt;__fromType($instancetype)&lt;/code&gt; and &lt;code&gt;__toType($type)&lt;/code&gt;. So an object can be casted to an integer: &lt;code&gt;$y = (int) $x&lt;/code&gt;  or to another object &lt;code&gt;$y = (BeanWrap) $x&lt;/code&gt;. Nevertheless, an implementation of this means that of the twelve available casts which cover eight different types, the names of these casts can not be used as classnames (e.g. int, binary, boolean) anymore. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="11652" LastActivityDate="2010-12-26T01:29:20.370" CommunityOwnedDate="2010-12-26T01:29:20.370" CommentCount="2" />
  <row Id="30037" PostTypeId="2" ParentId="30018" CreationDate="2010-12-26T01:33:50.293" Score="2" ViewCount="" Body="&lt;p&gt;Programming is a fast changing field, and for this reason, while it is important what do you know now, it is equally important what you can learn and how fast can you adapt to the changing environment and solve problems given tools at hand. Of course, there are jobs that require just the knowledge of a very specific narrow field and just translating from specs to code without thinking - but with PhD and programming background you can do much better. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So don't fear if you don't have enough acronyms - companies that value talent (and there are such companies out there) do not assign very high premium to these - it's more like &quot;he worked with ABC-XYZ, so he can start right now&quot; vs. &quot;he is a smart person so he can get productive with ABC-XYZ in a month&quot;. Smart companies are after good people, so a month (probably much less, I just take arbitrary time period) that you may have to take to learn particular acronyms won't matter too much if you're a match otherwise. Seek the job in companies that match your math background and don't care too much about the acronyms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Where&lt;/em&gt; you worked before only matters as far as &lt;em&gt;what&lt;/em&gt; you have done there - i.e. if you worked at some exciting place, next question would be &quot;what you did there?&quot; - and if you did something cool or relevant, it's a plus, if not - well, it doesn't matter. If you did something cool, it doesn't matter how the company you did it for is called. If you didn't, what matters is how good you are - and from your background, I think you have good chances. &lt;/p&gt;&#xA;" OwnerUserId="10080" LastActivityDate="2010-12-26T01:33:50.293" CommentCount="1" />
  <row Id="30038" PostTypeId="2" ParentId="30016" CreationDate="2010-12-26T01:34:36.667" Score="0" ViewCount="" Body="&lt;p&gt;I think one should know assembly for the system you normally work on but it's very rare to actually write in it.  Mostly it's something you need to be able to read to understand what's going on at times.&lt;/p&gt;&#xA;" OwnerUserId="5555" LastActivityDate="2010-12-26T01:34:36.667" />
  <row Id="30039" PostTypeId="2" ParentId="30035" CreationDate="2010-12-26T01:58:37.030" Score="1" ViewCount="" Body="&lt;p&gt;As recommended in &lt;a href=&quot;http://programmers.stackexchange.com/questions/18181/how-do-you-approach-database-design/18262#18262&quot;&gt;this answer to a similar question&lt;/a&gt;, I’m currently looking at &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201752840&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Database Design for Mere Mortals&lt;/em&gt; (2nd Edition), by Michael Hernandez&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It looks like just the thing. His writing style is a bit wordy for my taste, but he specifically limits the scope to logical design of a relational database, with a very practical bias.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other recommendations welcome though.&lt;/p&gt;&#xA;" OwnerUserId="3329" LastEditorUserId="3329" LastEditorDisplayName="" LastEditDate="2010-12-26T10:14:24.577" LastActivityDate="2010-12-26T10:14:24.577" CommunityOwnedDate="2010-12-26T16:13:18.783" />
  <row Id="30040" PostTypeId="2" ParentId="30035" CreationDate="2010-12-26T02:32:28.427" Score="0" ViewCount="" Body="&lt;p&gt;I recommend &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0126853525&quot; rel=&quot;nofollow&quot;&gt;Database Modeling and Design: Logical Design, 4th Edition (The Morgan Kaufmann Series in Data Management Systems)&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2010-12-26T02:32:28.427" CommunityOwnedDate="2010-12-26T16:13:18.783" />
  <row Id="30041" PostTypeId="2" ParentId="30018" CreationDate="2010-12-26T02:42:53.093" Score="1" ViewCount="" Body="&lt;p&gt;I would say look for a job you will actually enjoy doing. A crappy job (does not matter if first or last) will not help you since it will be hard to give your best at it.&#xA;Just look for a company and product you respect and in the cover letter/interview explain how your math and CS skills can help them improve their product.&lt;/p&gt;&#xA;" OwnerUserId="11219" LastActivityDate="2010-12-26T02:42:53.093" />
  <row Id="30042" PostTypeId="2" ParentId="29973" CreationDate="2010-12-26T02:52:13.557" Score="0" ViewCount="" Body="&lt;p&gt;My best friend, who is studying Computer Engineering and whom I have tutored extensively in programming, is dyslexic. Writing and spelling are difficult for him, but he more than makes up for it with his excellent critical thinking skills. And since programming isn't &lt;em&gt;exactly&lt;/em&gt; like ordinary writing, he actually tends to make fewer spelling errors while programming: those errors he does make are typically minor clerical details that a good compiler catches easily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So whether programmers in general are bad spellers is moot; if this guy can do it, so can you. I know English orthography sucks, but spelling reform is impossible, so for now we just have to deal with it.&lt;/p&gt;&#xA;" OwnerUserId="2107" LastActivityDate="2010-12-26T02:52:13.557" />
  <row Id="30043" PostTypeId="2" ParentId="30016" CreationDate="2010-12-26T02:57:28.497" Score="2" ViewCount="" Body="&lt;p&gt;It gives you a deep understanding, how the low level system working, basically, the language may differ to platform to platform, but, you easily adopt to another language, because, you have the deep understanding in low level programming.&lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2010-12-26T02:57:28.497" />
  <row Id="30044" PostTypeId="2" ParentId="30029" CreationDate="2010-12-26T03:05:05.937" Score="5" ViewCount="" Body="&lt;p&gt;Unfortunately being a style question, this is very subjective and you will likely have many conflicting results. Moreover, the style to use depends heavily on your usage of TABs or spaces.&#xA;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#xA;As for my two cents, I prefer a variation of the second version. I like this best:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Name            : Hamt&#xA;Version         : 0.1.0&#xA;Cabal-Version   : &amp;gt;= 1.2&#xA;License         : BSD3&#xA;Author          : Jason Baker&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It is the most readable and easy to use version that I have tried. The only real downside is that I have to figure out what the widest field is, and sometimes end up having to expand all of them when one is too wide (this usually only happens with CSS). However there are a few points that need to be considered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, I usually prefer TABs as opposed to spaces, however the actual TAB setting varies; for example, I am accustomed to 4-space TABs for C(++) code or HTML and 2-space TABs for Pascal or Assembler code, whereas for some things like CSS, I have no preference for the TAB width. This variation complicates things enough, but then the editor I use throws in its own complications. Some editors let you set per-language TAB settings, but some don't (even some that have different profiles).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can avoid this complication by forgoing TABs in favor of spaces. Since code is usually in a fixed-width font, using spaces works fine, whereas if you are formatting fields in a form, resumé, or other non-code text and are using a proportional font, you'll need TABs to keep things aligned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer TABs in general because even with fixed-width code, I find it frustrating to have to cursor through several spaces for each TAB. I recall that the old Borland IDEs had an option to cursor through TABs (specifically entire lengths of whitespace) as a single entity instead of as two, four, etc. spaces. That made it practical to insert TABs as spaces while making cursor navigation easy and fast. Unfortunately I have not seen any modern, Windows editors that can do that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, whether or not others will be using your code plays a big factor in the choice of style. I am usually the only one who uses my code, so I can format everything according to my taste without regard to the editors or settings of others. If you are working with others, you will need to take them into account as they will need to consider you.&#xA;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#xA;In summary, readability is good and very desirable, however the settings and editors you and others that need to use the code will be important when making the decision. If you are alone, you may as well just use the format that is most readable. You may need to get used to using it, but it will likely pay off in the long run, especially when you need to come back to code you wrote a while back: readability is as important as comments in understanding what the code does. If you work with others, then you will want to work together to set out some sort of design guide for use by the team.&lt;/p&gt;&#xA;" OwnerUserId="11670" LastActivityDate="2010-12-26T03:05:05.937" />
  <row Id="30045" PostTypeId="2" ParentId="30031" CreationDate="2010-12-26T03:08:26.850" Score="0" ViewCount="" Body="&lt;p&gt;That depends on what user platforms you're targetting. Do you want to limit your users to only Windows and Mac? If so, Silverlight might be one answer, as Silverlight is only supported for Windows and Mac.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want a broader audience, HTML5 is the way to go. However, you need to consider the fact that &lt;a href=&quot;http://www.webmonkey.com/2010/08/is-your-browser-ready-for-html5/&quot; rel=&quot;nofollow&quot;&gt;all browsers are not HTML5 compliant/compatible yet&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, to play safe, I suggest coding using HTML4 and gathering your userbase statistics and once enough have started using browsers supporting HTML5, then start upgrading your design to HTML5.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, did you consider if some of your users will be browsing your site from a mobile phone?&lt;/p&gt;&#xA;" OwnerUserId="11671" LastEditorUserId="11671" LastEditorDisplayName="" LastEditDate="2010-12-26T03:20:41.067" LastActivityDate="2010-12-26T03:20:41.067" CommentCount="2" />
  <row Id="30046" PostTypeId="1" AcceptedAnswerId="30053" CreationDate="2010-12-26T03:08:39.197" Score="3" ViewCount="125" Body="&lt;p&gt;is there any main  differences between them , should we ignore performance &amp;amp; good UI in research applications and focus on the proof of concept? or should we treat it more like product development?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i would love to know your opinions&lt;/p&gt;&#xA;" OwnerUserId="10963" LastActivityDate="2010-12-27T20:01:09.503" Title="developing for research vs developing a product" Tags="&lt;software-development&gt;&lt;research&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="1" />
  <row Id="30047" PostTypeId="2" ParentId="30035" CreationDate="2010-12-26T03:14:43.053" Score="0" ViewCount="" Body="&lt;p&gt;I'm a newbie in this area, but so far I've liked 'SQL and Relational Theory.'&#xA;&lt;a href=&quot;http://oreilly.com/catalog/9780596523084&quot; rel=&quot;nofollow&quot;&gt;http://oreilly.com/catalog/9780596523084&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11581" LastActivityDate="2010-12-26T03:14:43.053" CommunityOwnedDate="2010-12-26T16:13:18.783" />
  <row Id="30048" PostTypeId="1" CreationDate="2010-12-26T03:28:00.857" Score="1" ViewCount="208" Body="&lt;p&gt;I've been reading up on GUI frameworks including WPF, GTK and Cocoa (UIKit). I don't really do anything related to Windows (I'm a Mac and Linux guy) or .NET, but I'd like to be able to throw together GUIs for various operating systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are in the enviable position now of having high level scripting languages that work with all of the major GUI toolkits. If you are doing Linux GUI programming, you could use GTK in C, but why not just use PyGTK (or PyQt). Similarly, for Java, one can use JRuby. For Mac, there's MacRuby. And on .NET, there's IronRuby. This is all fine and good, and if you are building a serious project, there are tradeoffs that you might encounter when deciding whether to, say, build a WPF app in C# or in IronRuby, or whether you are going to use PyGTK or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The subjective question I have is: what about learning those frameworks? Are there strong reasons why one should or should not learn something like WPF or Cocoa in a language one is familiar with rather than having to learn a new language as well?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not saying you should never learn the language. If you are building Windows applications and you don't know C#, that might be a bit of a problem. But do you think it is okay to learn the framework first? This is both a general question and a specific question. I've used some Cocoa classes from Ruby and Python using things like PyObjC and there always seems to be an impedance mismatch because of the way Objective C libraries get built.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Experiences and strong opinions welcome!&lt;/p&gt;&#xA;" OwnerUserId="258" LastActivityDate="2010-12-28T16:26:30.273" Title="Learning frameworks without learning languages" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;frameworks&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="30049" PostTypeId="1" CreationDate="2010-12-26T03:38:31.243" Score="3" ViewCount="298" Body="&lt;p&gt;I am currently working on a HP-UX platform and my role as a prod support team member involves mostly to write shell scripts. But I want to branch out into core systems programming in unix. A quick search on the internet threw no &quot;unix systems programming jobs&quot; in my area. I'm confused as what to do. I really would like to continue with unix as my core competency, but unix jobs are mostly of sys admin/ prod support type, of which I do not want a part of. Can anyone of you give me an informed advice on the career oppurtinities that await unix professionals??&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any advice would be appreciated.&lt;/p&gt;&#xA;" OwnerUserId="11678" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T14:08:03.447" LastActivityDate="2010-12-28T22:10:31.117" ClosedDate="2010-12-28T23:22:46.807" Title="unix career in programming" Tags="&lt;career-advice&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="1" />
  <row Id="30050" PostTypeId="2" ParentId="30029" CreationDate="2010-12-26T04:07:49.717" Score="3" ViewCount="" Body="&lt;p&gt;I prefer a hybrid:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Name    : Hamt&#xA;Version : 0.1.0&#xA;Cabal-Version :  &amp;gt;= 1.2&#xA;License : BSD3&#xA;Author  : Jason Baker&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Which is essentially number 2 with exceptions for occasional lines that are longer than the surrounding lines - to prevent the majority of lines being spaced far over.&lt;/p&gt;&#xA;" OwnerUserId="4677" LastActivityDate="2010-12-26T04:07:49.717" />
  <row Id="30051" PostTypeId="2" ParentId="30035" CreationDate="2010-12-26T04:07:54.957" Score="0" ViewCount="" Body="&lt;p&gt;The usual set text on relational database design is &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321197844&quot; rel=&quot;nofollow&quot;&gt;An Introduction to Database Systems, by C. J. Date&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's quite the whalebeater, but will tell you just about anything you could care to know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321197844&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://i.imgur.com/GcC7E.jpg&quot; alt=&quot;An Introduction to Database Systems, C. J. Date&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-26T04:07:54.957" CommunityOwnedDate="2010-12-26T16:13:18.783" />
  <row Id="30052" PostTypeId="2" ParentId="30048" CreationDate="2010-12-26T04:18:35.123" Score="0" ViewCount="" Body="&lt;p&gt;If your only purpose is to create cross-platform GUI then I don't see any problem with learning only framework and not the specific languages, provided the framework is truly cross platform.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-26T04:18:35.123" />
  <row Id="30053" PostTypeId="2" ParentId="30046" CreationDate="2010-12-26T04:27:35.620" Score="2" ViewCount="" Body="&lt;p&gt;Development for research probably may mean you are developing for some very specific purpose (i.e. may be algorithm, UI, database etc.), in that case you should focus on that only, however if your research pertains to whole domain (social, gaming) then that does imply you have to develop as you would have developed for any product. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A second difference may be since products have tighter schedule so development for product means rather tighter iteration for design, implementation and testing, this may not be the case for research though.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-26T04:27:35.620" />
  <row Id="30054" PostTypeId="2" ParentId="30035" CreationDate="2010-12-26T04:35:06.090" Score="3" ViewCount="" Body="&lt;p&gt;This is going to sound completely off-beat, but this is a serious recommendation:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1593271905&quot; rel=&quot;nofollow&quot;&gt;The Manga Guide to Databases&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/CmK06.jpg&quot; alt=&quot;Manga Guide to Databases&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you finish laughing: It's actually a very well-written introduction to relational database design, in the form of a Japanese serial comic book. If you like comic books at all (or Japanese Manga in particular), you will enjoy this book. Or, if there's a child in your life to whom you want to give a head start, all the better. :)&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-12-26T04:35:06.090" CommunityOwnedDate="2010-12-26T16:13:18.783" CommentCount="1" />
  <row Id="30055" PostTypeId="2" ParentId="30018" CreationDate="2010-12-26T04:37:39.593" Score="1" ViewCount="" Body="&lt;p&gt;To reiterate what Jas said, &lt;strong&gt;play to your strength&lt;/strong&gt;, which is a solid background in maths, depending on your specific area of specialization in Maths, you can start with a job in the particular domain which requires that specific knowledge (Graphics, Gaming, Enterprise, Data Warehousing etc.), once you are there you can gradually &lt;strong&gt;broaden&lt;/strong&gt; you knowledge base and get familiar with different technologies.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-26T04:37:39.593" />
  <row Id="30056" PostTypeId="2" ParentId="30035" CreationDate="2010-12-26T04:38:56.287" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321122267&quot; rel=&quot;nofollow&quot;&gt;Fundamentals of Database Systems&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://ecx.images-amazon.com/images/I/41E8F7T9YZL._SL500_AA300_.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1373" LastActivityDate="2010-12-26T04:38:56.287" CommunityOwnedDate="2010-12-26T16:13:18.783" />
  <row Id="30057" PostTypeId="1" AcceptedAnswerId="33430" CreationDate="2010-12-26T05:03:42.667" Score="3" ViewCount="91" Body="&lt;p&gt;This question is a narrowing-down of these related questions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/7000/how-much-effort-should-we-spend-to-programming-for-multiple-cores&quot;&gt;How much effort should we spend to programming for multiple cores?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/24936/concurrency-how-do-you-approach-the-design-and-debug-the-implementation&quot;&gt;Concurrency: How do you approach the design and debug the implementation?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Given that each user's computers may have different performance characteristics with respect to calculations, memory, disk I/O bandwidth and network I/O bandwidth, and that it is difficult to implement an automated self-tuning system in your software, how much configurability should we give to the end-users so that they can find ways (by trial-and-error?) to improve our software's efficiency?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If we give users the ability to change these settings, how do we give visual feedback to users so they can measure the performance changes?&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2011-01-03T19:53:40.343" Title="How much configurability to give to users regarding concurrency?" Tags="&lt;optimization&gt;&lt;concurrency&gt;&lt;configuration&gt;&lt;user-control&gt;" AnswerCount="2" FavoriteCount="3" />
  <row Id="30058" PostTypeId="1" CreationDate="2010-12-25T08:42:31.127" Score="19" ViewCount="401" Body="&lt;p&gt;I am learning some haskell on my spare time. After some basic syntax learning, I really like to see some good blog articles. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Could somebody in the community give a list of haskell blogs to follow?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks. &lt;/p&gt;&#xA;" LastActivityDate="2011-02-26T18:41:34.007" CommunityOwnedDate="2010-12-25T16:30:57.087" Title="What haskell blogs do you follow?" Tags="&lt;haskell&gt;&lt;blogs&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="11" />
  <row Id="30059" PostTypeId="2" ParentId="30058" CreationDate="2010-12-25T08:47:21.340" Score="7" ViewCount="" Body="&lt;p&gt;Planet Haskell is the obvious one:&lt;br&gt;&#xA;&lt;a href=&quot;http://planet.haskell.org/&quot; rel=&quot;nofollow&quot;&gt;http://planet.haskell.org/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It aggregates tens if not a hundred Haskell related blogs.&lt;/p&gt;&#xA;" OwnerUserId="4339" LastActivityDate="2010-12-26T05:07:34.253" CommunityOwnedDate="2010-12-25T16:30:57.087" />
  <row Id="30060" PostTypeId="2" ParentId="30058" CreationDate="2010-12-25T08:50:48.170" Score="3" ViewCount="" Body="&lt;p&gt;Ezyang is pretty good:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blog.ezyang.com/&quot; rel=&quot;nofollow&quot;&gt;http://blog.ezyang.com/&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-26T05:07:34.253" CommunityOwnedDate="2010-12-25T16:30:57.087" />
  <row Id="30061" PostTypeId="2" ParentId="30058" CreationDate="2010-12-25T11:36:20.863" Score="15" ViewCount="" Body="&lt;h2&gt;Aggregators&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://planet.haskell.org/&quot; rel=&quot;nofollow&quot;&gt;Planet Haskell&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.reddit.com/r/haskell&quot; rel=&quot;nofollow&quot;&gt;Haskell Subreddit&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;Particular blogs&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blog.sigfpe.com/&quot; rel=&quot;nofollow&quot;&gt;A Neighborhood of Infinity&lt;/a&gt; – Recreational mathematics in Haskell.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blog.ezyang.com/&quot; rel=&quot;nofollow&quot;&gt;Inside T5&lt;/a&gt; – Logical underpinnings.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://corp.galois.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Galois Blog&lt;/a&gt; – Commercial applications of Haskell. Their &lt;a href=&quot;http://vimeo.com/channels/galois&quot; rel=&quot;nofollow&quot;&gt;Vimeo channel&lt;/a&gt; has excellent talks on it.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://wadler.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;Wadler's Blog&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://mainisusuallyafunction.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;main is usually a function&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://neilmitchell.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;Neil Mitchell's Haskell Blog&lt;/a&gt; – Not updated so frequently anymore but the archive has interesting stuff in it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11709" LastActivityDate="2010-12-26T05:07:34.253" CommunityOwnedDate="2010-12-25T11:36:20.863" CommentCount="0" />
  <row Id="30062" PostTypeId="2" ParentId="30046" CreationDate="2010-12-26T05:24:44.967" Score="2" ViewCount="" Body="&lt;p&gt;In research projects, participants must vow to &quot;leave no stones unturned&quot;, which means every possible direction must be explored, as long as doing so is within the team's capabilities. In order to explore as many directions as possible, research teams rely on rapid prototyping (using languages and platforms designed for that purpose) as well as borrowed code (by collaborating with other researchers in related fields) to produce proof-of-concepts that validate or refute the team's hypotheses. There is a tight feedback loop between discovering problems (often an abstract one) and prototyping a quick solution to that problem. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The research team's focus is on &lt;em&gt;generating knowledge and useful recipes&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;During the productization development of research projects:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The prototypes must be re-implemented using languages and platforms suitable for commercial use. The re-implementation must be brought up to good quality and good performance.&lt;/li&gt;&#xA;&lt;li&gt;All borrowed code must be removed, substituted or re-implemented, so that intellectual properties are not infringed.&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If there are problems (algorithm shortcomings) which are identified during the research project, &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Firstly, it is wrong for the productization team to try to &quot;continue&quot; the research work. They are hired to develop and &lt;strong&gt;ship&lt;/strong&gt; a product. They are paid according to a different business cost model, and &quot;doing research&quot; invalidates that model and also their pay grade.&lt;/li&gt;&#xA;&lt;li&gt;Instead, the productization team should find ways to workaround the problem, and/or find ways to communicate that problem to the end-users (through GUI modifications, rearranging User Interactions, or Documentation).&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The productization team's focus is on &lt;em&gt;developing and shipping a product&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="620" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-27T20:01:09.503" LastActivityDate="2010-12-27T20:01:09.503" />
  <row Id="30063" PostTypeId="2" ParentId="30035" CreationDate="2010-12-26T05:34:18.223" Score="1" ViewCount="" Body="&lt;p&gt;I have two words for you: &lt;a href=&quot;http://www.amazon.com/gp/search/ref=sr_tc_2_0?rh=i%3astripbooks,k%3aJoe+Celko&amp;amp;keywords=Joe+Celko&amp;amp;ie=UTF8&amp;amp;qid=1293341537&amp;amp;sr=8-2-ent&amp;amp;field-contributor_id=B000ARBFVQ&quot; rel=&quot;nofollow&quot;&gt;Joe Celko&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9251" LastActivityDate="2010-12-26T05:34:18.223" CommunityOwnedDate="2010-12-26T16:13:18.783" />
  <row Id="30064" PostTypeId="2" ParentId="30057" CreationDate="2010-12-26T05:46:54.303" Score="3" ViewCount="" Body="&lt;p&gt;I don't think that giving the user control over these options is a good idea. Of course this depends on the software and target user demographic, but I can't imagine a common application where the average user is interested in tweaking that sort of stuff. They just want the application to work. Incrementally adjusting performance options through trial and error is probably too much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have performance problems, fix them. If you don't, don't worry about it and don't complicate the app and potentially confuse the user with options they may don't understand. You could open yourself up to a lot of support tickets along the lines of &quot;I changed some options and now your application is too slow. Fix it.&quot;, if they even admit that they changed any settings.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-26T05:46:54.303" CommentCount="1" />
  <row Id="30065" PostTypeId="2" ParentId="30048" CreationDate="2010-12-26T05:49:11.057" Score="2" ViewCount="" Body="&lt;p&gt;Yes, there is nothing wrong with it as such. The only problem I can see is that all of the sample code, tutorials and documentation, etc will likely be in the frameworks &quot;native&quot; language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, you can use PyGTK, but the main GTK documentation is tailored to the C API. So you should be able to learn the basics of it using the Python samples, but anything more complicated and you're likely going to need at least a passing knowledge of C in order to be able to read the documentation, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you don't need to be a C guru just to be able to read the documentation...&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-26T05:49:11.057" CommentCount="2" />
  <row Id="30066" PostTypeId="2" ParentId="30031" CreationDate="2010-12-26T06:03:51.343" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A simple Google Search led me here. Those look great (especially the Star Wars one!), but they are not what you call proper applications as such.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What would you call &quot;proper applications?&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is what you need to ask yourself before you commit to a language set.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Notice: I've never done work with Silverlight. &lt;a href=&quot;http://joshuakehn.com/blog/tagged/html5/javascript&quot; rel=&quot;nofollow&quot;&gt;Plus I might be a bit HTML5 biased&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Silverlight&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Flash-like Microsoft product. Requires a plug-in. Might require other Microsoft tools for development. &lt;/p&gt;&#xA;&#xA;&lt;h3&gt;HTML5&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;HTML5 is a buzzword for a suite of new technologies that encourage fast, involved, web based applications. There is &lt;a href=&quot;http://www.modernizr.com/&quot; rel=&quot;nofollow&quot;&gt;easy feature detection&lt;/a&gt; available as well as &lt;a href=&quot;http://jquery.com/&quot; rel=&quot;nofollow&quot;&gt;libraries to help&lt;/a&gt; split the difference between older browsers and newer ones. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2010-12-26T06:03:51.343" CommentCount="3" />
  <row Id="30067" PostTypeId="2" ParentId="30016" CreationDate="2010-12-26T06:19:10.077" Score="0" ViewCount="" Body="&lt;p&gt;As some others have said, assembly language is a good way to learn the architecture of various processors, and get an idea of what is easy for a CPU to do and what is more difficult.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Older complex instruction set computer (CISC) architectures tend to be more amenable to be programmed by hand in assembly, where as newer reduced instruction set computer (RISC) architectures more are geared toward compiler generated code.  Once you have learned a CISC instruction set, or a RISC one, you will find others of the same type are pretty similar and are easy to pick up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Twenty-five years ago, when good compilers were less common, most microcontrollers were programmed in assembly code.  Nowadays, it is much more common for them to be programmed in C.  But it is sometimes still useful to be able to debug at the assembly level, stepping through the individual instructions.  Also, it is sometimes still necessary to program in assembly when writing software such as a task-switcher for a real-time operating system (RTOS) where one has to manipulate the stack directly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So having programmed in assembly is a good thing to know, particularly if you have any interest in getting into embedded systems programming, but don't expect to be doing a lot of it&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2010-12-26T06:19:10.077" />
  <row Id="30068" PostTypeId="2" ParentId="30048" CreationDate="2010-12-26T06:20:44.220" Score="0" ViewCount="" Body="&lt;p&gt;If you are productive in a certain language and that language offers bindings to some library written in another language I don't see what the point is of learning an entirely new language just so you can use the library. What matters about the library is the interface and that's not going to change no matter what language you are using.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-26T06:20:44.220" />
  <row Id="30069" PostTypeId="2" ParentId="28950" CreationDate="2010-12-26T06:23:48.497" Score="1" ViewCount="" Body="&lt;p&gt;By &quot;pure&quot; I assume you mean &quot;that favors immutability&quot;&#xA;Check out Pure (https://code.google.com/p/pure-lang/), Clojure, Scheme.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would think people would be attracted to Haskell because of its type system, rather than find it an obstacle. It's extremely powerful and clever people even use it to encode computations !&lt;/p&gt;&#xA;" OwnerUserId="11688" LastActivityDate="2010-12-26T06:23:48.497" />
  <row Id="30071" PostTypeId="2" ParentId="30049" CreationDate="2010-12-26T06:29:23.963" Score="2" ViewCount="" Body="&lt;p&gt;I agree with Anna Lear's comment, that you could aim for C/C++ programming. As for opportunities that you specifically want, it will be a good idea to provide consulting over the Internet. There are excellent freelancing sites out there.&lt;/p&gt;&#xA;" OwnerUserId="8903" LastActivityDate="2010-12-26T06:29:23.963" />
  <row Id="30072" PostTypeId="2" ParentId="29992" CreationDate="2010-12-26T06:40:36.557" Score="1" ViewCount="" Body="&lt;p&gt;Mahesh, you need to choose a domain that you like and want to work in. Choice of programming languages follow next. If you really don't enjoy business X, would you be interested in doing software for use by business X despite all the love in the world for Java or C# that the software needs to be built with? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, programming language expertise is very crucial and knowing Java or C# is great. But you need to choose a set of domains which broadly interest you, and within that choose specific avenues which make use of Java or C#.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-26T06:40:36.557" />
  <row Id="30073" PostTypeId="1" AcceptedAnswerId="30077" CreationDate="2010-12-26T06:56:51.490" Score="2" ViewCount="105" Body="&lt;p&gt;So I'm designing an Education Management System(&lt;a href=&quot;http://jantire.wordpress.com/project-backpack/&quot; rel=&quot;nofollow&quot;&gt;more info&lt;/a&gt;)and I'm wondering if I should be creating the Use Cases or the Class Diagrams first?&lt;/p&gt;&#xA;" OwnerUserId="11148" LastActivityDate="2010-12-26T07:19:38.440" Title="Should I create Use Cases or create Class Diagrams first?" Tags="&lt;uml&gt;" AnswerCount="2" />
  <row Id="30075" PostTypeId="1" CreationDate="2010-12-26T07:11:12.583" Score="4" ViewCount="701" Body="&lt;p&gt;Hi Everyone!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a sophomore in college majoring in Computer Science and Math. I have always loved programming. I started programming in C when I was nine years old and over the years I've picked up Visual Basic, C#, Java, C++, JavaScript, Objective-C, Python, Ruby, elementary Haskell and elementary Erlang, and I learned Perl back in the day which I've mostly forgotten.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have not done much network programming. I have done CGI programming, but that was about six/seven years ago. I've done some socket programming and written (school) programs to do interprocess communication, which I understood and liked. I'm taking a course on client/server programming and another one on network security next semester, which I am really looking forward to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm seeking advice on how to proceed with future learning. I've mostly done application (mobile and desktop) development, not much of web development. I'd like to pick up some web development this coming semester. Since I know Ruby and Python, should I start by learning Django and/or Rails? Any other suggestions on starting web development? I have a good understanding of HTML and CSS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I'd also like to know how hard it is to pick up and be good (read: productive) in functional programming languages coming from a purely structured/object oriented background? I've been reading up on Erlang and Haskell, and I'd like to know your opinions on whether it's worth my time trying to learn them. What about Lisp, Scheme and other functional languages?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any help/ideas would be really appreciated.&lt;/p&gt;&#xA;" OwnerUserId="11689" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2010-12-26T19:44:18.507" LastActivityDate="2010-12-27T18:53:53.957" ClosedDate="2010-12-27T18:59:40.040" Title="Advice for a computer science sophomore in college?" Tags="&lt;web-development&gt;&lt;career-advice&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="1" />
  <row Id="30076" PostTypeId="1" AcceptedAnswerId="30087" CreationDate="2010-12-26T07:13:10.493" Score="10" ViewCount="452" Body="&lt;p&gt;Is registration login using email a better idea than username to identify the user?&lt;/p&gt;&#xA;" OwnerUserId="526" LastActivityDate="2011-06-04T18:47:13.097" Title="Login using email or username?" Tags="&lt;recommendations&gt;" AnswerCount="10" CommentCount="4" FavoriteCount="1" />
  <row Id="30077" PostTypeId="2" ParentId="30073" CreationDate="2010-12-26T07:17:29.693" Score="3" ViewCount="" Body="&lt;p&gt;You should be first defining how the tool you are creating is going to look, feel, and be used by your users/customers. That is what dictates how your software will be architected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People use your software, not computers, so design how people will interact with it first. If you design around how software components should fit together, your user interface will be made for robots, not human beings. &lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-12-26T07:17:29.693" />
  <row Id="30078" PostTypeId="2" ParentId="30073" CreationDate="2010-12-26T07:19:38.440" Score="2" ViewCount="" Body="&lt;p&gt;Always create Use Cases first. However the detail with which use-cases are worked out depends on your familiarity/comfort with the domain, if you have worked within the domain before initially you can keep your use-cases brief and expand it later on along with the development.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-26T07:19:38.440" CommentCount="2" />
  <row Id="30079" PostTypeId="2" ParentId="30076" CreationDate="2010-12-26T07:22:15.790" Score="1" ViewCount="" Body="&lt;p&gt;Does the site allow social interaction with others who will see the name? If so, let the user chose a username. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, use the email address. It will be one less thing for the user to remember.  &lt;/p&gt;&#xA;" OwnerUserId="9022" LastActivityDate="2010-12-26T07:22:15.790" />
  <row Id="30080" PostTypeId="2" ParentId="30076" CreationDate="2010-12-26T07:31:59.697" Score="5" ViewCount="" Body="&lt;p&gt;I think you should allow both user name and email for login (I think this is the system they have with &lt;a href=&quot;http://disqus.com/&quot; rel=&quot;nofollow&quot;&gt;disqus&lt;/a&gt;), of course you should only display user name to others as pointed out by Matthew.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Added. Or you can go for OpenID (highly recommended), which is emerging as a sort of &lt;a href=&quot;http://www.codinghorror.com/blog/2010/11/your-internet-drivers-license.html&quot; rel=&quot;nofollow&quot;&gt;internet driver's license&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastEditorUserId="8073" LastEditorDisplayName="" LastEditDate="2010-12-26T11:47:58.247" LastActivityDate="2010-12-26T11:47:58.247" />
  <row Id="30081" PostTypeId="2" ParentId="30076" CreationDate="2010-12-26T07:44:23.290" Score="0" ViewCount="" Body="&lt;p&gt;Most people like to keep the username and email a bit separate, because their email address may contain personal data. Therefore, it's a good idea to allow the user to choose a username.&lt;/p&gt;&#xA;" OwnerUserId="8682" LastActivityDate="2010-12-26T07:44:23.290" CommentCount="2" />
  <row Id="30082" PostTypeId="2" ParentId="30031" CreationDate="2010-12-26T07:47:27.440" Score="1" ViewCount="" Body="&lt;p&gt;Definitely HTML5. HTML5 all the way. The amount of users is much, much larger. Plus, compatibility is not that big of a problem with HTML5. Some good HTMl5 examples can be found here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.apple.com/html5/&quot; rel=&quot;nofollow&quot;&gt;http://www.apple.com/html5/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8682" LastActivityDate="2010-12-26T07:47:27.440" />
  <row Id="30083" PostTypeId="2" ParentId="29959" CreationDate="2010-12-26T07:52:04.113" Score="0" ViewCount="" Body="&lt;p&gt;How to keep an open mind? Allow yourself to try new technologies.&lt;/p&gt;&#xA;" OwnerUserId="8682" LastActivityDate="2010-12-26T07:52:04.113" />
  <row Id="30084" PostTypeId="2" ParentId="30076" CreationDate="2010-12-26T08:00:23.813" Score="25" ViewCount="" Body="&lt;p&gt;Consider OpenID. But if you don't want to use that, the plus for user name is that it isn't linked to a specific email. The plus for email is they won't have to remember what they used for a user name. &lt;/p&gt;&#xA;" OwnerUserId="3697" LastEditorUserId="3697" LastEditorDisplayName="" LastEditDate="2011-06-04T16:17:02.573" LastActivityDate="2011-06-04T16:17:02.573" CommentCount="3" />
  <row Id="30085" PostTypeId="2" ParentId="30029" CreationDate="2010-12-26T08:08:26.713" Score="2" ViewCount="" Body="&lt;p&gt;Saves time when you just do it like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Name: Hamt&#xA;Version: 0.1.0&#xA;Cabal-Version: &amp;gt;= 1.2&#xA;License: BSD3&#xA;Author: Jason Baker&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Isn't too hard to read either.&lt;/p&gt;&#xA;" OwnerUserId="8682" LastActivityDate="2010-12-26T08:08:26.713" />
  <row Id="30086" PostTypeId="2" ParentId="30076" CreationDate="2010-12-26T08:31:39.333" Score="1" ViewCount="" Body="&lt;p&gt;There are situations where either has advantages over the other. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think let the users take the call here so you should think about including both the options. If the login name is the same as the email then you select an additional check-box/radio-button etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sites like monster allow for login with either the username or email-id. Check their interface out.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-26T08:31:39.333" />
  <row Id="30087" PostTypeId="2" ParentId="30076" CreationDate="2010-12-26T08:44:45.067" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Login name&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Email address was never meant to be a means of identification, but a means of communication&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If a user is logging in before somebody's eyes, then their email address will be revealed which is quite bad. If a login name is revealed, it's not a big deal.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do not automatically turn the login name into a public display name. They're two completely different things. Let the user specify the display name separately. Bonus points, let the user freely edit both the login name and a display name later.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2011-06-04T16:32:44.237" LastActivityDate="2011-06-04T16:32:44.237" CommentCount="10" />
  <row Id="30088" PostTypeId="2" ParentId="30076" CreationDate="2010-12-26T09:07:19.023" Score="1" ViewCount="" Body="&lt;p&gt;There are several reasons to prefer username over email (it would be an abuse of the concept of email, a bystander could read your address - not that I would care the slightest, but some could) etc, but I think the advantages still win:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;With an email address for login you can have any user name (too short, too long, with spaces and caps you won't have to remember, with special symbols, you name it);&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You already have to remember a password for every site, remembering a paired username is really too much to ask;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;People should be able to change usernames;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;In some cases (for instance, a music bands community) a user could manage more accounts - should he have an extra login for each and any? Should he have an username to manage all of them? Which one? Nobody will ever see it, anyway;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;People may want to change usernames.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;That said, &lt;strong&gt;the solution&lt;/strong&gt; is using 3rd party authentication services, in particular OpenID: if you're such a hardcore h4X0r not to have an account in any of the supported platforms (google, facebook, twitter, anything) then you probably have your own OpenID server.&lt;/p&gt;&#xA;" OwnerUserId="11146" LastActivityDate="2010-12-26T09:07:19.023" />
  <row Id="30089" PostTypeId="2" ParentId="29531" CreationDate="2010-12-26T09:13:33.327" Score="4" ViewCount="" Body="&lt;p&gt;Very easy: a sudoku;&#xA;Average: Game Of Life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, you might want to check out facebook's engineering puzzles (&lt;a href=&quot;http://www.facebook.com/careers/puzzles.php&quot; rel=&quot;nofollow&quot;&gt;http://www.facebook.com/careers/puzzles.php&lt;/a&gt;): they have the great advantage to tell you immediately whether your solution is accepted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't go for text adventures, instead: the procedures to apply are four, and you'll have to apply them over and over. You actually &lt;em&gt;learn&lt;/em&gt; to program by solving new problems, instead.&lt;/p&gt;&#xA;" OwnerUserId="11146" LastEditorUserId="10126" LastEditorDisplayName="" LastEditDate="2011-04-21T07:42:20.890" LastActivityDate="2011-04-21T07:42:20.890" CommentCount="2" />
  <row Id="30090" PostTypeId="2" ParentId="30076" CreationDate="2010-12-26T09:15:29.037" Score="1" ViewCount="" Body="&lt;p&gt;Just use email address. Screw separation of concerns; I already have way too many user names.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could do both if you want, but you risk confusing people with non-standard UI if you're not careful. (This is a downside of OpenID.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, don't be an idiot like Gawker and neglect to &lt;a href=&quot;http://en.wikipedia.org/wiki/Salt_%28cryptography%29&quot; rel=&quot;nofollow&quot;&gt;salt&lt;/a&gt; your passwords.&lt;/p&gt;&#xA;" OwnerUserId="6385" LastEditorUserId="6385" LastEditorDisplayName="" LastEditDate="2010-12-26T09:33:28.373" LastActivityDate="2010-12-26T09:33:28.373" />
  <row Id="30091" PostTypeId="1" CreationDate="2010-12-26T09:30:32.570" Score="6" ViewCount="219" Body="&lt;p&gt;It seems as though whenever I take an extended break from programming&amp;mdash;whether to pursue other interests or simply because I fall out of the habit for a while&amp;mdash;I invariably find that when I return to a project and set to coding, I come with an abundance of new ideas, novel approaches, and just plain better code. It may be because I have a lot of other creative interests besides programming, and my mind likes to find correlation and crossover between them, so while I'm doing one thing, in the back of my mind I'm usually also applying it to another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what's your experience? Do you ever return from a break (whether intentional or not) feeling not only refreshed, but also somehow &lt;em&gt;noticeably improved?&lt;/em&gt; Is it actually the norm?&lt;/p&gt;&#xA;" OwnerUserId="2107" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T14:18:12.717" LastActivityDate="2010-12-27T18:39:05.350" Title="When returning from a period of not programming, do you find you've improved?" Tags="&lt;productivity&gt;&lt;self-improvement&gt;" AnswerCount="5" CommentCount="4" />
  <row Id="30092" PostTypeId="2" ParentId="30091" CreationDate="2010-12-26T10:20:03.607" Score="3" ViewCount="" Body="&lt;p&gt;I do think that small breaks / periods of not programming can be useful, as they will clear you mind and take you away from the annoyances of programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do, however, find longer periods of not programming to be quite the opposite. I have found that if I have several months of not programming, then I &quot;suck&quot; (In lack of better word) at it when I return.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even though I have 6-7 years of experience with PHP, then when I started working again a couple of months ago, after a break for several months, where I focused on my study, I had to &quot;get back to it&quot;, before I could really work again, which put me right back to the annoyances of programming, and therefore I didn't get much out of my &quot;break&quot;.&lt;/p&gt;&#xA;" OwnerUserId="7689" LastActivityDate="2010-12-26T10:20:03.607" />
  <row Id="30093" PostTypeId="2" ParentId="39" CreationDate="2010-12-26T10:58:16.540" Score="1" ViewCount="" Body="&lt;p&gt;XML is like violence - if it doesn’t solve your problems, you are not using enough of it.&lt;/p&gt;&#xA;" OwnerUserId="11707" LastActivityDate="2010-12-26T10:58:16.540" CommunityOwnedDate="2010-12-26T10:58:16.540" CommentCount="1" />
  <row Id="30094" PostTypeId="2" ParentId="30075" CreationDate="2010-12-26T11:09:45.233" Score="0" ViewCount="" Body="&lt;p&gt;I personally come from a similar background and experiences. The following is my opinion on a few different web languages+frameworks. YMMV, and other people can feel free to correct me where they see fit :) It's been quite a while since I've worked with a few of these.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I originally started with PHP+MySQL because it was so pervasive at the time, and the only other option was using perl/cgi which I didn't like. PHP syntax is similar to C++ so you should be able to at least understand it if you decide to go that route, and their documentation is absolutely awesome. Learned a great deal by just reading or searching through it for whatever I wanted to do. It's still a great way to make sites right now, and has a good mature backing behind it. Pros? Huge community, lots of documentation, tons of libraries to pull from, and supported on just about every webhost. Cons? The PHP language can be quite odd at times with their implementation of some things, and it's a nice language AND framework to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have yet to try Ruby On Rails, but I have dabbled with Python+Django a bit and it's quite nice. We use it at our university here to introduce students to web programming, so it's definitely a good place to start since you already know the language. Ruby On Rails looks pretty good from what I've read, but no experience with it myself. Pros? You know ruby/python so you only have to learn the framework, and the frameworks nicely follow the MVC pattern. I love MVC :) Cons? Uhh can't really think of anything big. I'm not sure if performance is an issue with the languages, but since you're just starting out it doesn't really matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently I've started using ASP .NET MVC for work, with C# as the language. Pros? You have all the .net libraries available so you can do some cool stuff with integrating (for example) office or other windows apps directly into your website. As the name implies, it also follows the MVC pattern (though there are versions of ASP.NET that don't). You have your choice of two languages: C# and VB.NET. You already know both, so only need to learn the framework. Cons? Probably the highest cost entry barrier unless you can get the visual studio IDE from school (MSDNAA) or maybe &lt;a href=&quot;https://www.dreamspark.com/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Dreamspark&lt;/a&gt;. I loathe IIS and MsSQL. I've had so many aggravating issues with each that just seem silly at times. Probably the worst documentation of the listed frameworks. It's almost always a mission to find out how to do things. Luckily, I've only rarely had to do this. A lot of it is pretty intuitive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then on the functional programming side of things: I personally started with Scheme and then moved to Haskell. I took me a while (a week or two) to get my head into thinking like a functional programmer, but once I did things were a lot smoother. I'll try and compare the two and you can choose for yourself:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scheme's syntax can get very...tiresome. I hate the use of parenthesis everywhere and very often I was worried about where/how my parenthesis were placed while I was writing my code. Absolutely horrible! Haskell on the other hand, is much easier to read. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haskell follows lambda calculus very closely, so depending on your thoughts about that you may or may not prefer it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haskell is strongly typed, scheme isn't. I prefer Scheme for that, but this is entirely a personal thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's all I can think of for now. By all means, do your own research and see what you think of each of the frameworks/languages for yourself too. I hope this helped choose a bit though :)&lt;/p&gt;&#xA;" OwnerUserId="7606" LastActivityDate="2010-12-26T11:09:45.233" CommentCount="1" />
  <row Id="30095" PostTypeId="2" ParentId="989" CreationDate="2010-12-26T11:19:49.150" Score="0" ViewCount="" Body="&lt;p&gt;If you're willing to consider a commercial product, take a look at &lt;a href=&quot;http://www.GibraltarSoftware.com&quot; rel=&quot;nofollow&quot;&gt;GIBRALTAR&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It works with any .NET program&lt;/li&gt;&#xA;&lt;li&gt;Logs exception details like ELMAH&lt;/li&gt;&#xA;&lt;li&gt;Works with log4net, NLog, or own logging API.&lt;/li&gt;&#xA;&lt;li&gt;Collects windows performance counters like PerfMon&lt;/li&gt;&#xA;&lt;li&gt;Collects application usage metrics like PreEmptive's Runtime Intelligence Service&lt;/li&gt;&#xA;&lt;li&gt;Uses PostSharp aspect-oriented program (AOP) to let you instrument your programs declaratively.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11708" LastActivityDate="2010-12-26T11:19:49.150" />
  <row Id="30096" PostTypeId="1" AcceptedAnswerId="30224" CreationDate="2010-12-26T11:52:31.863" Score="1" ViewCount="209" Body="&lt;p&gt;Hi!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I need a subversion repository for a couple of projects I'm working on with friends/colleagues, in particular one that:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Is cheap;&lt;/li&gt;&#xA;&lt;li&gt;Has an high data storage/transfer limit;&lt;/li&gt;&#xA;&lt;li&gt;Does not have unlimited users (they would be ~10);&lt;/li&gt;&#xA;&lt;li&gt;Does not have public anonymous co capabilities (I don't mind them, but usually they have an influence on the cost).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Why don't you just install an SVN server on a machine of yours?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because the remote ones host stuff that is vital to clients, while those we have at home are a mess already.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Distributed versioning systems?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're cool and everything, but everybody (in the subset &quot;people-I-would-work-with&quot; knows how to use subversion - and really, the easier the better.&lt;/p&gt;&#xA;" OwnerUserId="11146" LastActivityDate="2010-12-27T11:45:23.583" Title="SVN repository host for pet projects." Tags="&lt;tips&gt;&lt;svn&gt;" AnswerCount="7" CommentCount="3" />
  <row Id="30098" PostTypeId="2" ParentId="15468" CreationDate="2010-12-26T12:12:11.517" Score="7" ViewCount="" Body="&lt;p&gt;I hate that Python can’t distinguish between declaration and usage of a variable. You don’t need static typing to make that happen. It would just be nice to have a way to say “this is a variable that I deliberately declare, and I &lt;em&gt;intend&lt;/em&gt; to introduce a new name, this is not a typo”.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, I usually use Python variables in a write-once style, that is, I treat variables as being immutable and don’t modify them after their first assignment. Thanks to features such as list comprehension, this is actually incredibly easy and makes the code flow more easy to follow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I can’t document that fact. Nothing in Python prevents me form overwriting or reusing variables.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In summary, I’d like to have two keywords in the language: &lt;code&gt;var&lt;/code&gt; and &lt;code&gt;let&lt;/code&gt;. If I write to a variable not declared by either of those, Python should raise an error. Furthermore, &lt;code&gt;let&lt;/code&gt; declares variables as read-only, while &lt;code&gt;var&lt;/code&gt; variables are “normal”.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider this example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;x = 42    # Error: Variable `x` undeclared&#xA;&#xA;var x = 1 # OK: Declares `x` and assigns a value.&#xA;x = 42    # OK: `x` is declared and mutable.&#xA;&#xA;var x = 2 # Error: Redeclaration of existing variable `x`&#xA;&#xA;let y     # Error: Declaration of read-only variable `x` without value&#xA;let y = 5 # OK: Declares `y` as read-only and assigns a value.&#xA;&#xA;y = 23    # Error: Variable `y` is read-only&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Notice that the types are still implicit (but &lt;code&gt;let&lt;/code&gt; variables are for all intents and purposes statically typed since they cannot be rebound to a new value, while &lt;code&gt;var&lt;/code&gt; variables may still be dynamically typed).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, all method arguments should automatically be &lt;code&gt;let&lt;/code&gt;, i.e. they should be read-only. There’s in general no good reason to modify a parameter, except for the following idiom:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;def foo(bar = None):&#xA;    if bar == None: bar = [1, 2, 3]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This could be replaced by a slightly different idiom:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;def foo(bar = None):&#xA;    let mybar = bar or [1, 2, 3]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2366" LastActivityDate="2010-12-26T12:12:11.517" CommentCount="1" />
  <row Id="30099" PostTypeId="2" ParentId="30096" CreationDate="2010-12-26T12:47:11.743" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://code.google.com/hosting/&quot; rel=&quot;nofollow&quot;&gt;Google Code Project Hosting&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's free and it's perfect if you're using SVN or Mercurial. It doesn't allow you to make private repositories though.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-12-26T12:47:11.743" CommentCount="3" />
  <row Id="30100" PostTypeId="2" ParentId="15468" CreationDate="2010-12-26T13:05:49.860" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;The performance is not good, but is improving with pypy,&lt;/li&gt;&#xA;&lt;li&gt;The GIL prevents the use of threading to speed up code, (although this is usually a premature optimization),&lt;/li&gt;&#xA;&lt;li&gt;It's only useful for application programming,&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;But it has some great redeeming features:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It's perfect for RAD,&lt;/li&gt;&#xA;&lt;li&gt;It's easy to interface with C (and for C to embed a python interpreter),&lt;/li&gt;&#xA;&lt;li&gt;It's very readable,&lt;/li&gt;&#xA;&lt;li&gt;It's easy to learn,&lt;/li&gt;&#xA;&lt;li&gt;It's well documented,&lt;/li&gt;&#xA;&lt;li&gt;Batteries really are included, it's standard library is huge and pypi contains modules for practically everything,&lt;/li&gt;&#xA;&lt;li&gt;It has a healthy community.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-26T13:05:49.860" CommentCount="2" />
  <row Id="30101" PostTypeId="1" CreationDate="2010-12-26T13:15:22.640" Score="5" ViewCount="328" Body="&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;everybody knows, that PHP have a problems with Unicode. Version 6 is effectively abandoned, because of Unicode implementation difficulties. But I wonder if anyone knows what are the &lt;strong&gt;exact&lt;/strong&gt; reasons? Architecture/design problems, performance concerns, community problems (I bet not), something other ... ? &lt;/p&gt;&#xA;" OwnerUserId="5351" LastActivityDate="2011-01-19T14:30:44.253" Title="why exactly php can't have full unicode support" Tags="&lt;php&gt;&lt;open-source&gt;&lt;architecture&gt;&lt;language-design&gt;&lt;unicode&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="30102" PostTypeId="2" ParentId="30091" CreationDate="2010-12-26T13:24:58.103" Score="1" ViewCount="" Body="&lt;p&gt;My experience is that the basic mechanics of programming - or to be really explicit &lt;strong&gt;coding&lt;/strong&gt; are something you need to practice continuously to keep you sharp.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a large chunk of time mostly spent dealing with development at a higher level than the IDE I found that when doing anything other than bug hunts or quick hacky fixes I did not perform at a level I know myself to be capable of mostly because I'm not remembering the trivial almost automatic things without concious effort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At a higher level, in terms of &quot;inspiration&quot;, don't know... but certainly I'd never assert that any absence I've had has left me noticeably improved (though I don't know if, in, erm, about 30 years now, I have a really extended time - more than 3 weeks - genuinely 100% away from programming!)&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-12-26T13:24:58.103" />
  <row Id="30103" PostTypeId="1" AcceptedAnswerId="30106" CreationDate="2010-12-26T13:33:11.413" Score="3" ViewCount="263" Body="&lt;p&gt;I was trying to do some C++ coding that can send files from my laptop to my webmail account. It took me about 10 minutes to realize that there is no easy way to do this. Look into these links: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;GMAIL: &lt;a href=&quot;http://code.google.com/apis/gmail/oauth/code.html&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/apis/gmail/oauth/code.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;YAHOO: &lt;a href=&quot;http://developer.yahoo.com/mail/&quot; rel=&quot;nofollow&quot;&gt;http://developer.yahoo.com/mail/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I am trying to understand why PHP or Python or Java support exist but no C++. No flame wars, I love all programming languages and their creators equally but I am curious to understand the logic behind such implementation choices.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T14:18:44.043" LastActivityDate="2010-12-26T21:56:33.480" Title="Why no developer API in C++ for Google or Yahoo mail?" Tags="&lt;c++&gt;&lt;email&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="2" />
  <row Id="30104" PostTypeId="2" ParentId="30031" CreationDate="2010-12-26T13:46:40.480" Score="2" ViewCount="" Body="&lt;p&gt;You have a notebook or desktop machine with Windows, am I right? But there are some other sort of machines:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;netbooks, wich runs non-Windows operating sytem, see Chrome OS,&lt;/li&gt;&#xA;&lt;li&gt;Android or iOS &lt;strong&gt;tablets&lt;/strong&gt;,&lt;/li&gt;&#xA;&lt;li&gt;smartphones (iPhone, Android, Palm webOS).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you choose SilverLight, your program will never run on these machines. &lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-12-26T13:46:40.480" CommentCount="1" />
  <row Id="30105" PostTypeId="2" ParentId="1483" CreationDate="2010-12-26T13:47:37.097" Score="0" ViewCount="" Body="&lt;p&gt;I have always coded in English, also i never wanted to code like this either:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;क = 1;&#xA;कुल = 0;&#xA;जब तक क छोटा है 10 से  {&#xA;    कुल += क;&#xA;}&#xA;छापो कुल&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;कार्य खाली मुख्य ( )      अंक समय       लिखें &quot;Enter current time&quot;    &#xA;     पढें समय        अगर [ समय &amp;lt; 12 ]    &#xA;        लिखें &quot;Good Morning&quot;    &#xA;  वरनाअगर [ समय &amp;gt;= 12 और समय &amp;lt; 16 ]    &#xA;           लिखें &quot;Good Afternoon&quot;    &#xA;  वरना              लिखें &quot;Good Evening&quot;    &#xA;  खत्म अगर    &#xA;खत्म कार्य&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2586" LastActivityDate="2010-12-26T13:47:37.097" CommunityOwnedDate="2010-12-26T13:47:37.097" />
  <row Id="30106" PostTypeId="2" ParentId="30103" CreationDate="2010-12-26T14:01:40.063" Score="1" ViewCount="" Body="&lt;p&gt;C++ has its strengths and weaknesses. One weakness is that its library is very thin. Email involves a lot of protocols, HTTP/S, SMTP, POP3, IMAP, etc. I don't see how you can support these protocols easily in a standardized way with C++.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2010-12-26T14:01:40.063" CommentCount="1" />
  <row Id="30107" PostTypeId="2" ParentId="30103" CreationDate="2010-12-26T14:02:31.420" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Hypothesis&lt;/strong&gt;: because web APIs are primarily used to integrate their respective services with other web applications. Therefore it is logical to conclude those other services are written in some web-relevant languages. C++ is not one of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway APIs here do not seem to be language-specific. They're just offering you a bunch of client libraries out of courtesy, not for all possible languages, but for a narrow selection of the most requested ones. If there isn't one for your needs, nothing prevents you from writing your own client library - maybe even publishing it to make people's lives better. Or maybe there is already one - just google for it.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-26T14:02:31.420" CommentCount="1" />
  <row Id="30108" PostTypeId="2" ParentId="30103" CreationDate="2010-12-26T14:07:17.677" Score="1" ViewCount="" Body="&lt;p&gt;This is really a summing up of Developer Art's Point:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Nobody (with few exceptions) should write web applications in C++!&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-26T14:07:17.677" CommentCount="4" />
  <row Id="30109" PostTypeId="2" ParentId="30075" CreationDate="2010-12-26T14:10:58.307" Score="3" ViewCount="" Body="&lt;p&gt;Instead of learning a 20th language, try to do someting else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Domain&lt;/strong&gt;: let's explore a brand new domain; robotics, image recognition, compiler techniques, stock exchange, 3D graphics, time management, text editor, whatsoever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Architecture&lt;/strong&gt;: it's more language-dependant, but I'm sure you will find unexplored areas; functional programming, cloud computing, javascript frameworks, MVC frameworks, p2p communication, massive multithreading, dataflow programming, NonSQL, mobile apps, collaboration tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My picks are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;modular home automation system (domain) based on dataflow arhitecture (architecture) for embedded computers (architecture);&lt;/li&gt;&#xA;&lt;li&gt;collaborative spreadsheet (architecture) for demand planning (domain) based on PHP+MySQL with AJAX frontend (architecture).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Dataflow systems will change your thinking about programming. Writing a spreadsheet (it's also a kind of dataflow system) is ultimate fun, it's wonderful when you enter a number into a cell, and your system then recalculates the sheet.&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-12-26T14:10:58.307" CommentCount="1" />
  <row Id="30110" PostTypeId="1" CreationDate="2010-12-26T14:14:54.420" Score="1" ViewCount="126" Body="&lt;p&gt;I'm doing some research on the best GUI toolkit to use for future products at the company. We're talking about a fairly large organizations with quite a bit of code and a complete rewrite project in planning. Don't ask.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, I'm trying to create a list relevant parameters to judge the toolkits. What would you use to drive the comparison?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's what I've got so far:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Maturity&lt;/li&gt;&#xA;&lt;li&gt;Ease of development&lt;/li&gt;&#xA;&lt;li&gt;Ease of prototyping&lt;/li&gt;&#xA;&lt;li&gt;Ease of maintenance&lt;/li&gt;&#xA;&lt;li&gt;Size of hiring pool&lt;/li&gt;&#xA;&lt;li&gt;Available knowledge at the company&lt;/li&gt;&#xA;&lt;li&gt;Training costs&lt;/li&gt;&#xA;&lt;li&gt;Community size&lt;/li&gt;&#xA;&lt;li&gt;Community level of expertise (how hard to find good answers to complex problems)&lt;/li&gt;&#xA;&lt;li&gt;Amount of expert-level books available&lt;/li&gt;&#xA;&lt;li&gt;Ability to interface to other technologies&lt;/li&gt;&#xA;&lt;li&gt;Deployment considerations&lt;/li&gt;&#xA;&lt;li&gt;Visual aesthetics&lt;/li&gt;&#xA;&lt;li&gt;Ability to access OS resources&lt;/li&gt;&#xA;&lt;li&gt;Multiple monitor support (something that might come in handy in our particular application)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11716" LastActivityDate="2010-12-27T04:03:47.793" Title="What parameters to use to compare GUI frameworks / toolkits?" Tags="&lt;frameworks&gt;&lt;comparison&gt;&lt;gui&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="30111" PostTypeId="2" ParentId="30091" CreationDate="2010-12-26T14:40:21.887" Score="0" ViewCount="" Body="&lt;p&gt;Depends on the nature of the break. If it is because of meetings, annual reviews, documentation, user training, etc., I may not come back as fresh as a true vacation. Returning with the feeling of needing to catch-up may provide motivation/kick-in-the-pants, but doesn't usually help come up with new ideas/creativity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is merit to keeping sharp and being in the habit of coding regularly. A lay-off may make it difficult to get back into the grind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My preference is to work aggressively if I know there is a time to take a break ahead.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-26T14:40:21.887" />
  <row Id="30112" PostTypeId="2" ParentId="30075" CreationDate="2010-12-26T14:53:47.470" Score="5" ViewCount="" Body="&lt;p&gt;I think you already have a huge number of languages and have demonstrated that learning new ones is easy for you. Its time to start training your weaknesses as well as your strengths. A quote I remember, but can't attribute &quot;A good athlete trains his strengths, a great athlete trains his weaknesses&quot;. I'd consider adding software engineering and/or computational science theory rather than simply piling up more languages.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-12-26T14:53:47.470" CommentCount="1" />
  <row Id="30113" PostTypeId="2" ParentId="30096" CreationDate="2010-12-26T16:19:12.380" Score="0" ViewCount="" Body="&lt;p&gt;I have been using a $20/mo &lt;a href=&quot;http://kb.mediatemple.net/questions/143/Using+Subversion&quot; rel=&quot;nofollow&quot;&gt;media temple account with an SVN setup&lt;/a&gt; . Prior to this setup I had a self-hosted option like you.&lt;/p&gt;&#xA;" OwnerUserId="9793" LastActivityDate="2010-12-26T16:19:12.380" />
  <row Id="30114" PostTypeId="2" ParentId="29898" CreationDate="2010-12-26T16:28:37.130" Score="1" ViewCount="" Body="&lt;p&gt;The good news: you're not as bad off as you think.  Most good developers are self-taught.  Most of us who've followed the &quot;non-traditional&quot; path have found ourselves stuck, at one time or another, on a really bad project, with poor practices and worse code.  Professional development-wise, my advice to you is to find a good team you can attach yourself to and have mentors who can show you what a good development process looks like. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;With regards to your current employment, you can't help someone who won't help themselves.  Don't work yourself to the bone trying to achieve a goal they clearly don't have.  I was on a similar kind of project years ago—I worked myself into quite a depression trying to please the customer and never seeming to achieve my goals.  My problem was mainly not having the professional development at the time to know what resources I needed to succeed.  Even if I had though, the customer wouldn't have wanted to commit the resources to the project.  The end result was an unhappy project and an unhappy developer who suffered for years from confidence problems that limited my professional options.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer your questions directly:&#xA;1) Ruby on Rails is a skillset that's in very high demand right now.  If you want a remote job, one of the best ways is learning a skillset that is in high enough demand that local workers can't fill all the jobs, which is the case with RoR right now.  As the enterprise adopts RoR more, you'll see more and more Ruby jobs on odesk and friends.  While you're doing that, though, look to the future and learn a skillset that is experiemental.  Call it a bet—you're betting that in the future this skill is going to meet some unfilled need.  Right now I'm learning functional languages, which are poised to make a big comeback as some of the attributes of functional languages are well-suited to highly-scalable applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Finishing a degree is a good thing.  Whether you really benefit from it is another question. I never learned anything in the course of working on my CS degree I hadn't already learned (which is why I eventually dropped out and joined the workforce.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) yes.  look in places like odesk and join some job mailing lists for the skillsets you're best at and just start casting a wider net.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) English (you're ok there), communication skills, reliability, and delivering quality code.  I also require my teams to use behavior-driven development using either tests I've written for them, or with tests they've developed and I've approved.  If you want one general skill that will serve you well, BDD/TDD is a good one to pick.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5.) this is the art of negotiation.  don't waste your time trying to convince someone to hire you remotely—there's plenty of employers who are looking for remotes already.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;6.) its bad practice for a lot of reasons.  its one thing to stay late when you've got a critical bug that's costing money every minute its in place.  But learn to distinguish those from workplace theater, where you're just working late so someone will see you and think you're more dedicated, or you fool yourself into conflating inefficiency with dedication.  Get a good development process, with realistic deliverables and schedule, and you won't need to stay late.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;good luck!&lt;/p&gt;&#xA;" OwnerUserId="9475" LastActivityDate="2010-12-26T16:28:37.130" CommentCount="3" />
  <row Id="30115" PostTypeId="2" ParentId="14580" CreationDate="2010-12-26T16:44:06.513" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Algorithms of the intelligent web&quot; (AIW) has excellent coverage of the fundamentals for search, recommendations, clustering (grouping), and classification. Alag's book is broader in scope but doesn't have the depth of AIW.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The AIW book refers to code that was written specifically for the book. So, the whole code base is very clean, the API well structured, and the code &quot;speaks out&quot; the algorithms. On the other hand, Alag's book relies on existing open source projects and therefore the code base is much larger than that of AIW.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In conclusion, if you want to understand well the algorithms of search and recommendation engines or the mechanics of creating groups and placing instances in appropriate classes then AIW is the book for you. If you want to gain a broad exposure in available APIs then Alag's book is probably a better choice.&lt;/p&gt;&#xA;" OwnerUserId="11725" LastActivityDate="2010-12-26T16:44:06.513" />
  <row Id="30116" PostTypeId="1" AcceptedAnswerId="30125" CreationDate="2010-12-26T16:44:54.267" Score="7" ViewCount="223" Body="&lt;p&gt;I'm seeing that the open source solutions are growing rapidly &amp;amp; many companies use them now.  What do you think the future for commercial products or solutions will be?&lt;/p&gt;&#xA;" OwnerUserId="10963" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T17:21:21.693" LastActivityDate="2010-12-27T14:47:01.007" Title="the future of commercial products" Tags="&lt;open-source&gt;&lt;product&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="1" />
  <row Id="30117" PostTypeId="2" ParentId="30096" CreationDate="2010-12-26T16:54:38.717" Score="0" ViewCount="" Body="&lt;p&gt;You could create an EC2 instance and install SVN in it. If you do not have many users and you do not store terabytes of data this should be really affordable since you get most of it free for one year; so, in effect, your cost will depend on the size of your data and the bandwidth needs that you have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers.&lt;/p&gt;&#xA;" OwnerUserId="11725" LastActivityDate="2010-12-26T16:54:38.717" CommentCount="2" />
  <row Id="30118" PostTypeId="2" ParentId="272" CreationDate="2010-12-26T16:56:14.890" Score="0" ViewCount="" Body="&lt;p&gt;Software engineer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the big wins I've had are to do with not writing software - either advising not to start projects which are too far from the company's core discipline, ensuring good source control and automated testing praxis, preventing duplication with cross-team buddies, or doing clever stuff with generative programming. &lt;/p&gt;&#xA;" OwnerUserId="1145" LastActivityDate="2010-12-26T16:56:14.890" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="30119" PostTypeId="2" ParentId="30116" CreationDate="2010-12-26T16:57:51.377" Score="2" ViewCount="" Body="&lt;p&gt;While there are some open source products which are indeed popular and professionally developed, I don't think that they pose any challenge to commercial mode of development, in fact I foresee some sort growth of some sort of hybrid model where we  have an open source product at the core which is used to generate revenue either by customization, support, consultancy or downstream development. In fact I see bigger threat to commercial development from collapse of IP regime.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-26T16:57:51.377" CommentCount="2" />
  <row Id="30120" PostTypeId="2" ParentId="272" CreationDate="2010-12-26T17:01:49.080" Score="0" ViewCount="" Body="&lt;p&gt;As a programmer (web developer) I say &quot;I make things like Google Search, Yahoo Search, Facebook, Flickr...&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What? .... At least it stops the 'incredibly bored, programmer stereotype facial expressions'  you usually get when you say 'I'm a programmer' to people :P&lt;/p&gt;&#xA;" OwnerUserId="7885" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-27T15:07:35.627" LastActivityDate="2011-01-27T15:07:35.627" CommunityOwnedDate="2010-12-26T17:01:49.080" />
  <row Id="30121" PostTypeId="2" ParentId="30091" CreationDate="2010-12-26T17:04:30.967" Score="1" ViewCount="" Body="&lt;p&gt;Not really. I find that coding is something you have to continually keep doing to maintain and improve. On a long break I actually often revert to bad habits. It's only when I come across some of my previous code (before the long break) that I realise just how good I was back then.&lt;/p&gt;&#xA;" OwnerUserId="7885" LastActivityDate="2010-12-26T17:04:30.967" />
  <row Id="30122" PostTypeId="2" ParentId="30091" CreationDate="2010-12-26T17:06:01.433" Score="1" ViewCount="" Body="&lt;p&gt;I never felt my general skillset &lt;em&gt;improved&lt;/em&gt; after a break (thinking about it, improving a skill without practice seems rather hard), but it's definitely so that after a break of some days/weeks my mind was clearer and it was easier focusing and seeing both the big picture and small implementation details at the same time. In other words, I'd come up with better code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if the break is too long (say months), it's the other way around: then I have to get used to it again before acquiring the same level as before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, the above is true for almost everything I (and likely, almost everybody) do that requires some sort of training of the mind: snowboarding, bmx, board games, puzzels, ... and even sex.&lt;/p&gt;&#xA;" OwnerUserId="3660" LastActivityDate="2010-12-26T17:06:01.433" CommentCount="3" />
  <row Id="30123" PostTypeId="2" ParentId="30076" CreationDate="2010-12-26T17:07:01.960" Score="2" ViewCount="" Body="&lt;p&gt;Email definitely. Look, users already have it bad enough with a bajillion user/pass to remember for other sites. Most sites do use the Email Address for the username, so just go with that and make your users life easier...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OpenID ftw... if your willing to invest time to get it setup, I think there is $$ involved to but I could be wrong?&lt;/p&gt;&#xA;" OwnerUserId="7885" LastActivityDate="2010-12-26T17:07:01.960" />
  <row Id="30124" PostTypeId="2" ParentId="30116" CreationDate="2010-12-26T17:07:26.067" Score="8" ViewCount="" Body="&lt;p&gt;I think what you really mean is &lt;em&gt;proprietary&lt;/em&gt; products. There are a great many commercial &lt;em&gt;and&lt;/em&gt; open source products on the market.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Barring some kind of idealistic unification in world cultures, I think that the law of supply and demand will continue to hold. If your product is proprietary but more feature rich and stable than free / open source products, you will continue to find a market for decades to come.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the trend will start to shift when it is 'safe to assume (tm)' that most computer users are also somewhat knowledgeable when it comes to programming. I don't see that happening for generations, however.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now, most computer users (perhaps I'm dangerously generalizing here, forgive me if I am) want to &lt;em&gt;share&lt;/em&gt; their programs. When people begin demanding that they be able to modify their software to do what they want it to do with the same enthusiasm that sharing received, well ... we'll see.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also think we have yet to see the tip of the iceberg when it comes to what SAAS is going to do to market wide. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, I predict that the innovation that we'll see over the next 60 years will pale only in comparison to the subsequent litigation that results. Your question comes into play when software is not designed in a court of law.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-26T19:58:31.350" LastActivityDate="2010-12-26T19:58:31.350" />
  <row Id="30125" PostTypeId="2" ParentId="30116" CreationDate="2010-12-26T17:07:56.500" Score="12" ViewCount="" Body="&lt;p&gt;There isn't enough developers in the world to develop all the software companies need worldwide.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is &lt;strong&gt;a lot&lt;/strong&gt; of room for both commercial and FOSS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The future of commercial software is not compromised. It will just evolve. Just like music and news market.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Natural_selection&quot; rel=&quot;nofollow&quot;&gt;Natural selection&lt;/a&gt; will occur as usual. Only species (companies) which adapt to their environment (the market) will survive. The ones will strong &lt;em&gt;resistance to change&lt;/em&gt; will eventually die.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-26T20:03:26.917" LastActivityDate="2010-12-26T20:03:26.917" CommentCount="4" />
  <row Id="30126" PostTypeId="2" ParentId="27564" CreationDate="2010-12-26T17:14:09.847" Score="0" ViewCount="" Body="&lt;p&gt;make a point in php process execution which stops output to browser. i.e. flush, but with guarantee browser does not waiting for any other output. In that way one could make expensive logging queries or whatever after response was sent.&lt;/p&gt;&#xA;" OwnerUserId="11166" LastActivityDate="2010-12-26T17:14:09.847" CommunityOwnedDate="2010-12-26T17:14:09.847" />
  <row Id="30127" PostTypeId="1" CreationDate="2010-12-26T17:27:23.110" Score="0" ViewCount="336" Body="&lt;p&gt;I'm a CS student (BSc. degree) and it's my senior year so I'll need to do a mandatory graduation project. A friend and I just realized we are about to miss the project proposal submission deadline so we went out there researching... One of the professors (our future-project-supervisor) recommended us to team up and submit a single project with strong roots, as our only chance to fit-in this semester's quota. (we were already pretty late to consult him and most supervisors are almost at their full-quota).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, his research area mainly focuses on image processing, virtual reality, computer vision/graphics so he went ahead and recommended us to find some project ideas that would work as an iPhone app. Thing is, we have no development experience on Macs but have plenty of Java, C#, C and Ruby experience...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I am looking for interesting iPhone app ideas that would be appropriate as a graduation project. Go ahead and fire away your ideas and comments, they are much appreciated.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="11728" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-26T17:33:39.703" LastActivityDate="2010-12-26T17:48:42.087" ClosedDate="2010-12-27T14:56:25.037" Title="iOS App Ideas for a graduation project" Tags="&lt;university&gt;&lt;iphone&gt;&lt;ios&gt;" AnswerCount="1" />
  <row Id="30129" PostTypeId="2" ParentId="12672" CreationDate="2010-12-26T17:39:07.570" Score="3" ViewCount="" Body="&lt;p&gt;We do them exceptionally.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;For fixes during development, we are making sure that no fix is done without knowing the root cause. However:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Exceptionally the search for the root cause will start to take too long or stall AND there is a tough deadline,&lt;/li&gt;&#xA;&lt;li&gt;Exceptionally code changes to fix the root cause are tactically not feasible (change will take too long and deadline approaching)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In those cases we opt of &quot;bandage&quot; fixes. We then open internal defects to address the root cause. Yes, more often than not these internal defects are treated with very low priority.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;For fixes in the maintenance stream, we are making sure that no fix is done without knowing the root cause. However:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Very exceptionally the search for the root cause will stall,&lt;/li&gt;&#xA;&lt;li&gt;Exceptionally it can occur that fixing the root cause is tactically not feasible (change is non trivial and customer needed the fix yesterday). &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In those cases we opt for &quot;bandage&quot; temporary fix first and once customer is happy we work on the proper fix and only then the defect is resolved.&lt;/p&gt;&#xA;" OwnerUserId="11344" LastEditorUserId="11344" LastEditorDisplayName="" LastEditDate="2010-12-26T17:48:48.483" LastActivityDate="2010-12-26T17:48:48.483" CommunityOwnedDate="2010-12-26T17:39:07.570" />
  <row Id="30130" PostTypeId="2" ParentId="30075" CreationDate="2010-12-26T17:43:34.103" Score="1" ViewCount="" Body="&lt;p&gt;The first thing that you need to understand is that there is a big difference between a programmer and a software engineer. There is also a difference between a software engineer and a software architect. These jobs correspond to different levels of abstraction (and maturity) in building software systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should you choose to follow our profession, it is very likely that you will start with the equivalent of a &quot;programmer&quot;'s job and rise through the ranks, as you gain more experience -- experience that is not limited just to technology, as you will learn later in life! Nevertheless, now (in college), you can prepare for all the stages of your future evolution; not just the first one. If you start with a firm and broad base then you will be ready to take on any challenge that comes your way. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems that you have learned how to program in more than one languages, and covered both procedural and OO styles. If the need arises, you will be able to learn the next &quot;grand&quot; language fairly easily -- I had a solid HPC background with F90, C, and C++ and I was able to learn Java, practically, over a weekend.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You next steps should include one or more of the following:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;High-level:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Philosophy and/or epistemology; not who said what but rather how do you begin to ask the right questions on any given subject.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Study systems engineering -- how are software systems connected together? how should they be structured? What is the risk associated with a system? How can you measure it? What are the innate properties of a system (e.g. complexity, stability, etc.)?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Distributed computing technologies (e.g. distributed file systems, grids, hadoop)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Cloud computing technologies (e.g. VMWare product family, EC2, GAE, Azure)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5 Design patterns&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Low-level:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;In the real world, it is hard to tell what percentage of jobs correspond to functional programming (partly or exclusively). Nevertheless, it is reasonable to assume that it is quite low. The TIOBE Programming Community index is an indicator of the popularity of programming languages. If you use that as a guide then your skill set covers about 50% of the market. Functional languages are used in niche areas and I know financial companies that use Ocaml. In conclusion, if you want to learn a bit of functional programming then this is the right place and time for you. However, omitting it shouldn't hurt your ability to get a job.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Objective-C is used on Macs and all the iOS systems. Cocoa is written in Objective-C. In conjunction with writing apps for iPads/iPhones, you have a promising landscape there.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Work hard and stay focused, success will follow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best wishes.&lt;/p&gt;&#xA;" OwnerUserId="11725" LastActivityDate="2010-12-26T17:43:34.103" CommentCount="1" />
  <row Id="30131" PostTypeId="2" ParentId="30127" CreationDate="2010-12-26T17:48:42.087" Score="0" ViewCount="" Body="&lt;p&gt;If you have some cash(99$) for &lt;a href=&quot;http://monotouch.net/News/post.aspx?id=f344a79c-7b85-4e7e-ae7e-c400ffa2a2fc&quot; rel=&quot;nofollow&quot;&gt;MonoTouch&lt;/a&gt;, you can try to create a simple game, port something from NES/SNES as academic project. It is fun and also covers CS disciplines quite good.&lt;/p&gt;&#xA;" OwnerUserId="8153" LastActivityDate="2010-12-26T17:48:42.087" CommentCount="2" />
  <row Id="30132" PostTypeId="2" ParentId="29924" CreationDate="2010-12-26T17:51:44.080" Score="0" ViewCount="" Body="&lt;p&gt;Start here: &lt;a href=&quot;http://www.w3schools.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.w3schools.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some keywords: html, javascript, jsp, servlet, ajax, jdbc.&lt;/p&gt;&#xA;" OwnerUserId="11249" LastActivityDate="2010-12-26T17:51:44.080" CommentCount="2" />
  <row Id="30133" PostTypeId="2" ParentId="29924" CreationDate="2010-12-26T18:15:14.310" Score="0" ViewCount="" Body="&lt;p&gt;I don't know much about Java. But I think, &lt;strong&gt;ASP.NET MVC&lt;/strong&gt; is a good choice for an OOP developer. And for the client side, CSS and JavaScript have no alternatives.&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-02-02T13:32:18.997" LastActivityDate="2011-02-02T13:32:18.997" CommentCount="2" />
  <row Id="30134" PostTypeId="1" AcceptedAnswerId="30139" CreationDate="2010-12-26T18:15:29.090" Score="12" ViewCount="591" Body="&lt;p&gt;Within the same budget, which do you think would be the best boost to productivity for general web development : An SSD as boot drive, or a second screen ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I currently use a 16.4&quot; laptop with full HD screen and 7200 RPM HDD&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: In light of the answers so far, I add that I work at home and while I have a home office with a proper desk, I'm just as often coding sitting on the sofa in the living room. &lt;/p&gt;&#xA;" OwnerUserId="3984" LastEditorUserId="3984" LastEditorDisplayName="" LastEditDate="2010-12-26T19:54:34.817" LastActivityDate="2010-12-27T03:46:45.443" Title="Best boost to productivity : SSD or second screen ?" Tags="&lt;productivity&gt;&lt;recommendations&gt;&lt;hardware&gt;&lt;monitor&gt;" AnswerCount="8" CommentCount="5" FavoriteCount="1" />
  <row Id="30135" PostTypeId="1" AcceptedAnswerId="30148" CreationDate="2010-12-26T18:15:50.613" Score="19" ViewCount="1049" Body="&lt;p&gt;One of my professors says &quot;the syntax is the UI of a programming language&quot;, languages like Ruby have great readability and it's growing, but we see a lot of programmers productive with C\C++, so as programmers does it really matter that the syntax should be acceptable?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would love to know your opinion on that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disclaimer: I'm not trying to start an argument. I thought this is a good topic of discussion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Update: this turns out to be a good topic. I'm glad you are all participating in it, there will be more good questions to come.&lt;/p&gt;&#xA;" OwnerUserId="10963" LastEditorUserId="-1" LastEditorDisplayName="" LastEditDate="2011-01-31T19:59:00.403" LastActivityDate="2011-02-01T01:21:23.327" Title="Does syntax really matter in a programming language?" Tags="&lt;programming-languages&gt;&lt;syntax&gt;" AnswerCount="15" CommentCount="14" FavoriteCount="5" />
  <row Id="30136" PostTypeId="2" ParentId="30135" CreationDate="2010-12-26T18:23:35.160" Score="0" ViewCount="" Body="&lt;p&gt;I don't think it matters beyond personal preference.  All things (performance, capabilities, etc) being equal then I can see why one would put greater weight on a language syntax but choosing to pass over the performance of languages like c/c++ or any other language better suited for the job simply because of syntax would seem like a bad idea all around.&lt;/p&gt;&#xA;" OwnerUserId="11536" LastEditorUserId="11536" LastEditorDisplayName="" LastEditDate="2010-12-26T19:36:53.720" LastActivityDate="2010-12-26T19:36:53.720" CommentCount="1" />
  <row Id="30137" PostTypeId="2" ParentId="30016" CreationDate="2010-12-26T18:31:23.750" Score="1" ViewCount="" Body="&lt;p&gt;I doubt you will find that many pure 'assembly' programmers these days but for malware analysis/vulnerability research knowledge of assembly is very much required.&lt;/p&gt;&#xA;" OwnerUserId="11536" LastActivityDate="2010-12-26T18:31:23.750" />
  <row Id="30139" PostTypeId="2" ParentId="30134" CreationDate="2010-12-26T18:45:43.623" Score="34" ViewCount="" Body="&lt;p&gt;Second screen, no other answer possible. Booting you make once a day, so you can  gain 1 minute, + maybe a few minutes in filesystem access (depending of your files usage). Switching between windows, searching some closed (or not) window behind others consumes more time (you are making it multipe times / hour; according to &lt;a href=&quot;http://blog.rescuetime.com/2010/05/04/startling-data-are-men-32-more-productive-than-women/&quot; rel=&quot;nofollow&quot;&gt;RescueTime&lt;/a&gt;  &quot;On average men switch windows 53 times per hour, compared to women who clocked in at 45 per hour&quot;.)&lt;/p&gt;&#xA;" OwnerUserId="5351" LastEditorUserId="5351" LastEditorDisplayName="" LastEditDate="2010-12-26T18:56:31.393" LastActivityDate="2010-12-26T18:56:31.393" CommentCount="2" />
  <row Id="30140" PostTypeId="1" AcceptedAnswerId="30327" CreationDate="2010-12-26T18:59:29.580" Score="1" ViewCount="238" Body="&lt;p&gt;I want to obfuscate all the webpages of my website. I Googled through some free tools like HTML and Javascript obfuscation but don't know how effective they are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of all, does it makes sense to obfuscate a webpage that could comprise of variety of codes like Javascript, PHP etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, how effective is this method and please recommend some free nice tools.&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2010-12-27T15:40:34.237" Title="Entire webpage obfuscation." Tags="&lt;security&gt;&lt;obfuscation&gt;" AnswerCount="2" CommentCount="13" FavoriteCount="1" />
  <row Id="30141" PostTypeId="2" ParentId="30075" CreationDate="2010-12-26T19:04:58.420" Score="0" ViewCount="" Body="&lt;p&gt;I only have 1 piece of advice for sophmores who can code.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Get an internship.&lt;/h1&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-26T19:04:58.420" CommentCount="1" />
  <row Id="30142" PostTypeId="2" ParentId="30134" CreationDate="2010-12-26T19:06:01.693" Score="1" ViewCount="" Body="&lt;p&gt;Two monitors + SSD for compilation drive.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-26T19:06:01.693" CommentCount="3" />
  <row Id="30143" PostTypeId="2" ParentId="30135" CreationDate="2010-12-26T19:23:38.733" Score="5" ViewCount="" Body="&lt;p&gt;I believe your professor is referring to &lt;a href=&quot;http://en.wikipedia.org/wiki/Syntactic_sugar&quot; rel=&quot;nofollow&quot;&gt;Syntactic sugar&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Syntactic sugar is a computer science term that refers to syntax within a programming language that is designed to make things easier to read or to express, while &lt;em&gt;alternative ways of expressing them exist&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;So what your professor is implying, is that whatever code/syntax written in one programming language, can be expressed in other languages just the same-- or even the same language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Robert Martin, pulling from &lt;a href=&quot;http://en.wikipedia.org/wiki/Structured_program_theorem&quot; rel=&quot;nofollow&quot;&gt;Structured Programming theorem&lt;/a&gt;, abstracted what programmers fundamentally do with programming languages at his keynote at &lt;a href=&quot;http://www.youtube.com/watch?v=mslMLp5bQD0&quot; rel=&quot;nofollow&quot;&gt;RailsConf 2010: Robert Martin&lt;/a&gt; (youTube video, see after 14 minute mark, although I recommend the whole thing):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Sequence (assignment)&lt;/li&gt;&#xA;&lt;li&gt;Selection (if statements) &lt;/li&gt;&#xA;&lt;li&gt;Iteration (do-loops)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That is all programmers do, from one programming language to another, just in a different syntax or user interface (UI).  This is what I'm guessing your professor was getting at, if he/she is speaking abstractly about programming languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So in &lt;em&gt;essence&lt;/em&gt;, &lt;strong&gt;syntax doesn't matter&lt;/strong&gt;.  But if you want to be specific, then obviously certain languages and syntax are better suited for certain tasks than others, whereby you could argue that syntax matters.&lt;/p&gt;&#xA;" OwnerUserId="14" LastEditorUserId="14" LastEditorDisplayName="" LastEditDate="2010-12-27T03:23:46.580" LastActivityDate="2010-12-27T03:23:46.580" CommentCount="5" />
  <row Id="30144" PostTypeId="2" ParentId="30135" CreationDate="2010-12-26T19:28:16.383" Score="-2" ViewCount="" Body="&lt;p&gt;I apologize, because I am really just to tired to eleborate this answer, but to put it simply: syntax as such doesn't matter. The semantics you can express through it matter.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-12-26T19:28:16.383" CommentCount="4" />
  <row Id="30145" PostTypeId="2" ParentId="30135" CreationDate="2010-12-26T19:28:58.873" Score="0" ViewCount="" Body="&lt;p&gt;Without syntax, we would not have a common &lt;em&gt;&quot;template&quot;&lt;/em&gt; from which to communicate, at a human level, the intent of a block of code. Syntax provides a common &lt;em&gt;framework&lt;/em&gt; from which compilers can be standardized; methods can be shared; maintenance can be simplified.&lt;/p&gt;&#xA;" OwnerUserId="8031" LastActivityDate="2010-12-26T19:28:58.873" CommentCount="1" />
  <row Id="30146" PostTypeId="2" ParentId="30134" CreationDate="2010-12-26T19:35:55.253" Score="2" ViewCount="" Body="&lt;p&gt;I have both an SSD and a second screen. I barely use the second screen, my main screen is big enough for me. A cheap SSD where the (huge) codebase resides made git operations a breeze and compilation faster, and the computer in general more responsive. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you're using a notebook with a 16&quot; screen and probably your codebase is not as huge; in your setting one more screen (preferably 20&quot; or bigger) should be a better choice. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I'd consider an ergonomic keyboard (mine is MS Natural 4000). Typing gets somehow faster, and you get far less strain in the hands.&lt;/p&gt;&#xA;" OwnerUserId="11732" LastActivityDate="2010-12-26T19:35:55.253" CommentCount="2" />
  <row Id="30147" PostTypeId="2" ParentId="30135" CreationDate="2010-12-26T19:48:24.777" Score="7" ViewCount="" Body="&lt;p&gt;In practice I think it does matter. Readability has already been discussed above. Another issue might be how many keystrokes are neded to express an idea/algotithm? Yet another issue is how easy it is for simple typos to be hard for the human eye to catch, and how much mischief they can cause.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also found it useful in some contexts to analyze, and/or to generate fragments of code via another computer program. The difficulty of parsing the&#xA;language, and/or generating correct code then directly impacts how much effort is required to create/maintain such tools.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-12-26T19:48:24.777" CommentCount="2" />
  <row Id="30148" PostTypeId="2" ParentId="30135" CreationDate="2010-12-26T19:53:54.817" Score="36" ViewCount="" Body="&lt;p&gt;Yes it does. &#xA;If you're in doubt, take &lt;a href=&quot;http://en.wikipedia.org/wiki/APL_language#Syntax&quot; rel=&quot;nofollow&quot;&gt;APL&lt;/a&gt;, or &lt;a href=&quot;http://en.wikipedia.org/wiki/J_%28programming_language%29#Examples&quot; rel=&quot;nofollow&quot;&gt;J&lt;/a&gt;, or &lt;a href=&quot;http://en.wikipedia.org/wiki/Brainfuck#Examples&quot; rel=&quot;nofollow&quot;&gt;Brainfuck&lt;/a&gt;, or even plain and simple Lisp or Forth, and try to understand any not entirely trivial program on it. Then compare to e.g. Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then compare the same Python (or Ruby, or even C#) to things like &lt;a href=&quot;http://en.wikipedia.org/wiki/Cobol#Syntactic_features&quot; rel=&quot;nofollow&quot;&gt;Cobol&lt;/a&gt; or VB6.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not trying to say that hairy syntax is bad and natural-language-like syntax is good in &lt;em&gt;all&lt;/em&gt; circumstances. But obvoiusly syntax &lt;em&gt;does&lt;/em&gt; make a huge difference. All in all, everithing you can write in the most beautiful programming language you can also write as a Turing machine program — but you usually don't want to, do you?&lt;/p&gt;&#xA;" OwnerUserId="11732" LastEditorUserId="11732" LastEditorDisplayName="" LastEditDate="2010-12-26T20:22:56.743" LastActivityDate="2010-12-26T20:22:56.743" CommentCount="17" />
  <row Id="30149" PostTypeId="2" ParentId="30134" CreationDate="2010-12-26T20:11:54.857" Score="1" ViewCount="" Body="&lt;p&gt;I have two screens, and have no productivity increase from the second one. Having a big screen is useful, but once you have that the smaller (in my case laptop) second screen is not an additional boost. Also beware that if you use one screen for email/twitter/irc, it can actually lower your productivity as you get distracted, compared with hiding those windows behind your editor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SSD is useful if you have software that requires a lot of reading from disk when loading/compiling. I work with Plone, and when you have a copy of a customer site with a 3GB database loading can be slow. An SSD speeds that up and so helps in that case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your software doesn't require a lot of disk reads/writes for each compile/reload cycle, then an SSD isn't that useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found more productivity increases in using things like &lt;a href=&quot;http://www.pomodorotechnique.com/&quot; rel=&quot;nofollow&quot;&gt;Pomodoro&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-26T20:11:54.857" />
  <row Id="30150" PostTypeId="2" ParentId="30135" CreationDate="2010-12-26T20:30:31.650" Score="0" ViewCount="" Body="&lt;p&gt;Yes, syntax matters, although really only for readability. Compare:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for i in range(10):&#xA;   print(i)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(Yeah that's Python)&#xA;with &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;FOR(i&amp;lt;-RNG-&amp;lt;10){PRN&amp;lt;-i}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(Yeah, that's a language I just made up)&#xA;Both would do exactly the same thing, in the same way, but the syntax is different, and Python is easier to read. So yes, syntax definitely matters. Even &quot;syntactical sugar&quot; matters.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; @property&#xA; def year(self):&#xA;     return self._date.year&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Is easier to read than &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; def year(self):&#xA;     return self._date.year&#xA; year = property(year)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-26T20:30:31.650" />
  <row Id="30151" PostTypeId="2" ParentId="12672" CreationDate="2010-12-26T20:38:51.967" Score="2" ViewCount="" Body="&lt;p&gt;Disambiguation.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Given a particular bug, there is considerable difficulty in objectively defining whether a particular fix is a &quot;bandage&quot; because: one's &quot;correct solution&quot; may be another person's &quot;bandage&quot;.&lt;/li&gt;&#xA;&lt;li&gt;So, I use the following definition: to fix a defect in a manner that is less elegant and less well-studied than I wish I would have done professionally.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;First, regarding the &lt;em&gt;frequency&lt;/em&gt; of &quot;bandage&quot; fixes: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;New code: almost none.&lt;/li&gt;&#xA;&lt;li&gt;Old code: &#xA;&lt;ul&gt;&#xA;&lt;li&gt;You will find some, although they are usually written elegantly enough &lt;i&gt;(see &quot;data-driven mitigation&quot; below)&lt;/i&gt; that they don't look like bandages and will survive all code reviews.&lt;/li&gt;&#xA;&lt;li&gt;Also pay attention to the &quot;invisible bandage&quot;: simply don't call that function. With the lack of code, there is not even a trace of hint that a bug exists.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Old code with many external dependencies: &#xA;&lt;ul&gt;&#xA;&lt;li&gt;Almost full of it.&lt;/li&gt;&#xA;&lt;li&gt;It was almost always written for an obsolete version of the dependency, and nobody really read the dependency's &quot;release notes&quot; before updating the dependency to a new version.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Second, my advice:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the bug happens in a development team's own source code:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fix it in a professional way. (If you fix it, you own it.)&lt;/li&gt;&#xA;&lt;li&gt;When under time pressure, do the best things you can - which requires you to:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Look at the potential impact on the end-user: of the bug itself, and of the proposed fix, in order to decide whether to accept the fix.&lt;/li&gt;&#xA;&lt;li&gt;Study related code snippets (using the history info from your source code management tool), and discuss with your coworkers (but don't occupy too much of their time), until you have well understood the problem and the solution.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Always track the bug with a &lt;strong&gt;defect tracking system&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If the bug happens in another team's source code:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Push that team to fix their bug.&lt;/li&gt;&#xA;&lt;li&gt;Always file that bug with the other team's &lt;strong&gt;defect tracking system&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If the bug happens in another company's (or no company's) product:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In this case, duct-tape fixes (or &lt;em&gt;data-driven workarounds&lt;/em&gt;) might be the only way to fix the bug.&lt;/li&gt;&#xA;&lt;li&gt;If it is open source, file that bug with &lt;em&gt;some (possibly public)&lt;/em&gt; &lt;strong&gt;defect tracking system&lt;/strong&gt; anyway, so that someone can look into it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-12-26T20:38:51.967" />
  <row Id="30152" PostTypeId="2" ParentId="30135" CreationDate="2010-12-26T20:45:52.583" Score="4" ViewCount="" Body="&lt;p&gt;Syntax does matter, and I can give you two supporting examples: Dylan, which is a Lisp with a more conventional syntax, and Liskell, which is Haskell with Lisp-like syntax. In each case, a variant of the language was proposed that had exactly the same semantics, but radically different syntax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the case of Dylan, it was thought that dropping s-expressions in favor of something more conventional would help attract a wider range of programmers. It turned out that syntax wasn't the only thing preventing programmers from using Lisp. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the case of Liskell, it was thought that using s-expressions would allow for easier use of macros. It turned out that macros really aren't necessary in Haskell, so that experiment didn't work either. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's the thing: if syntax didn't matter to anybody, neither experiment would have been tried.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastEditorUserId="5621" LastEditorDisplayName="" LastEditDate="2011-02-01T01:11:07.673" LastActivityDate="2011-02-01T01:11:07.673" CommentCount="6" />
  <row Id="30153" PostTypeId="1" CreationDate="2010-12-26T20:53:05.593" Score="-1" ViewCount="154" Body="&lt;p&gt;I am trying to learn visual basic. I used to program in gw-basic and have trouble learning vb.net by reading and googling all the time. It takes so much time to find the answers to my programming problems and even then i do not understand the why it have to be done that way. I have beginners questions like finding childwindows using enumwindow. Then googling for hours and hours i do not seem to grasp it (must be my old age). I would like to get someone i could learn from by asking questions about what i want to program and learn from it. not to just finish the program but to learn and understand it too. Someone who dont find questions stupid to ask as i try to build my understanding of the visual basic environment. I hope to communicate by using skype voice or chat or other direct means when time permits it.&lt;/p&gt;&#xA;" OwnerUserId="11734" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-04-12T21:31:09.803" LastActivityDate="2011-04-12T21:31:09.803" ClosedDate="2010-12-26T21:58:14.370" Title="visual basic coach needed" Tags="&lt;learning&gt;&lt;programming&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="30154" PostTypeId="1" AcceptedAnswerId="30166" CreationDate="2010-12-26T19:37:09.177" Score="4" ViewCount="235" Body="&lt;p&gt;I see mostly everyone distinguishes between being a Software Engineer and being in IT on the jobs sections of their site. What is the distinction?&lt;/p&gt;&#xA;" OwnerUserId="5940" LastActivityDate="2010-12-26T22:48:32.880" Title="Difference between Software Engineering and IT?" Tags="&lt;language-agnostic&gt;&lt;career&gt;&lt;difference&gt;" AnswerCount="3" CommentCount="3" />
  <row Id="30155" PostTypeId="2" ParentId="30154" CreationDate="2010-12-26T19:44:39.183" Score="3" ViewCount="" Body="&lt;p&gt;In my country, to be an IT, it's required to study informatics in general for 2 years.. but to be an engineer , you must study for 5 years at least, technically... the software engineer is somemone who not only writes programs, but he takes in mind security, portability and reusibility, but an IT can only be specialized in either security,portability or reusability.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-26T20:55:14.540" />
  <row Id="30156" PostTypeId="2" ParentId="30135" CreationDate="2010-12-26T21:11:10.103" Score="3" ViewCount="" Body="&lt;p&gt;Yes and no.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a couple different aspects to syntax.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;readability &lt;/li&gt;&#xA;&lt;li&gt;expressivity &lt;/li&gt;&#xA;&lt;li&gt;parsability&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Readability has already been mentioned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Expressivity is an interesting case. I'm going to use function-passing as an example, because it's sort of an inflection point of semantic/syntactic pain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's take C++ for example. I can create a first-order function after this fashion:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class funcClass&#xA;{&#xA;  int operator()(int);&#xA;}&#xA;funcClass fun;&#xA;&#xA;void run_func(funcClass fun)&#xA;{&#xA;   fun();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This particular idiom is commonly used in Stepanov's &lt;em&gt;Elements of Programming&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I can mimic it in Common Lisp with something like &lt;em&gt;this&lt;/em&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(defun myfunc() )&#xA;&#xA;(defun run_func(fun)&#xA;  (fun))&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Or, in Perl - &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;   sub myfunc&#xA;   {&#xA;   }&#xA;&#xA;   sub run_func&#xA;   {&#xA;      my $func = shift;&#xA;      $func-&amp;gt;();          #syntax may be a little off.&#xA;   }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Or, in Python - &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;def myfunc():&#xA;    pass&#xA;&#xA;def run_func(f):&#xA;    f()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;These all have - essentially - the same semantic content, although the C++ example carries some type metadata. Which language expresses the idea of passing a higher-order function the best? Common Lisp barely makes a syntactical variation. C++ requires a class to be created just to 'carry' the function. Perl is pretty straightforward about making some level of differentiation. So is Python. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which approach best suits the problem domain? Which approach best can express the thoughts in your head with the least 'impedance mismatch'?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Parsability is - in my mind- a big deal. In particular, I refer to the ability of the IDE to parse and chop the language without making errors. Reformatting is useful. Token-delimited languages tend to parse well - ruby/c/pascal, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider though - major systems of all sorts have been created with every serious language to solve real-world issues. Although syntax is a barrier to express some things, it is a work-around-able barrier. Turing equivalence and all that.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-26T21:11:10.103" />
  <row Id="30159" PostTypeId="2" ParentId="30135" CreationDate="2010-12-26T21:29:55.990" Score="3" ViewCount="" Body="&lt;p&gt;Syntax definitely matters, although you tend to notice it more when it's unintuitive and encourages bugs.  For example, the infamous &quot;world's last bug&quot; joke:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (AlertCode = RED)&#xA;   {LaunchNukes();}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="935" LastEditorUserId="935" LastEditorDisplayName="" LastEditDate="2010-12-27T19:44:29.033" LastActivityDate="2010-12-27T19:44:29.033" CommentCount="7" />
  <row Id="30160" PostTypeId="2" ParentId="29344" CreationDate="2010-12-26T21:31:50.210" Score="0" ViewCount="" Body="&lt;p&gt;Maybe this is hard to grasp, but it depends on who you are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are a compiler-writer or jit-writer, some user out there will write such a tight program, and they won't write it very intelligently, so that any slowness will be &lt;em&gt;your fault&lt;/em&gt;, if you are the tool-writer. Most users will never notice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you are a language user and are writing code for &lt;em&gt;your&lt;/em&gt; users, you should not assume you are one of the blessed few who will stress the compiler or jitter to its extreme. Rather you should just get the fat out of &lt;em&gt;your&lt;/em&gt; code so your users can't blame &lt;em&gt;you&lt;/em&gt; for slowness.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So many times I see programmers worrying, for example, about the optimization level of the compiler, jitter, or profile-guided optimizer trying to tune cycles out of a hotspot in, for example, a sort routine or matrix multiply when, if fact, &lt;em&gt;they are not even spending time in that code&lt;/em&gt;, OR &lt;em&gt;if they are in it, they don't &lt;strong&gt;need&lt;/strong&gt; to be&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-12-26T21:31:50.210" />
  <row Id="30161" PostTypeId="2" ParentId="30154" CreationDate="2010-12-26T21:40:09.457" Score="3" ViewCount="" Body="&lt;p&gt;IT is a department within a company like Human Resources or Marketing.  This covers the backbone in a sense of some companies as what a company uses is maintained by IT.  This includes a bunch of analysts, developers and administrators that create and manage systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software Engineering in contrast has the narrower focus of how to create the abstract set of instructions used in building various systems.  Note that the software can have various purposes as it could be a game, operating system, or part of something used to run a business.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;As an example, where I work there are at least a couple of different sets of software engineers:  Product Development and Information Systems.  The latter is what most would call IT while the former is the group that helps design and build the software the company sells to customers.  My work in IS tends focus on systems that others within the company will use rather than products or services the company sells to the public.  Hopefully that provides a bit more clarity.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-26T21:40:09.457" />
  <row Id="30162" PostTypeId="2" ParentId="30153" CreationDate="2010-12-26T21:52:32.080" Score="2" ViewCount="" Body="&lt;p&gt;I think your best bet will be to find a user group in your area and to make inquiries there.  At least then you'll have someone geographically close to you to bounce questions off of.  Perhaps they'll even be open to offering you tutoring services.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd start off with a Google search for VB.NET User group and start from there.  You could in the meantime also go to the &lt;a href=&quot;http://msdn.microsoft.com/en-us/bb188199&quot; rel=&quot;nofollow&quot;&gt;MSDN&lt;/a&gt; web site where there are a lot of learing resources.  One of the &lt;a href=&quot;http://msdn.microsoft.com/en-us/vbasic/bb466226.aspx&quot; rel=&quot;nofollow&quot;&gt;resources&lt;/a&gt; there is specific to VB.NET with a bunch of How-to videos.  Hope that helps.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-26T21:52:32.080" CommentCount="1" />
  <row Id="30163" PostTypeId="2" ParentId="30134" CreationDate="2010-12-26T21:53:56.010" Score="4" ViewCount="" Body="&lt;p&gt;It depends entirely on what you do, and how do you do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pro for a second screen:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;you can view (more) docs, code, and output at the same time&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Pro for SSD drive:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;much disk intensive stuff is faster, e.g., compilations&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If what you do is something like developing web sites, where you need the UI code, the backend code, a browser, and some log files open at the same time, then a bigger screen is probably a better idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If, instead, you do something like debug large applications in compiled languages, trying to find which revision broke things, and git bisecting until you find the right place, then perhaps an SSD is better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's other things you might be able to do instead. For example, more RAM might speed things up more than an SSD. Or you might buy books or a training course. Or you might buy a second laptop, used, and dedicate all your computer activities that are distracting you from your work to that one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or you might save the money.&lt;/p&gt;&#xA;" OwnerUserId="11222" LastActivityDate="2010-12-26T21:53:56.010" CommentCount="1" />
  <row Id="30164" PostTypeId="2" ParentId="30103" CreationDate="2010-12-26T21:56:33.480" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Why no developer API in C++ for Google or Yahoo mail?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Why no developer API in &lt;em&gt;Haskell, Erlang or Brainfuck&lt;/em&gt; for Google or Yahoo mail? Because nobody cared enough or needed it so far. Luckily, this is all just HTTP, XML and JSON, so you can build API bindings for any language/platform you want.&lt;/p&gt;&#xA;" OwnerUserId="4882" LastActivityDate="2010-12-26T21:56:33.480" />
  <row Id="30165" PostTypeId="2" ParentId="30135" CreationDate="2010-12-26T22:19:04.703" Score="0" ViewCount="" Body="&lt;p&gt;I think what &lt;em&gt;really&lt;/em&gt; matters is &lt;strong&gt;API access&lt;/strong&gt;, and availability of low-level functionality (like memory control and locking) when needed. Most other languages come with these features included. Problem is, when you need &lt;strong&gt;additional functionality&lt;/strong&gt; you often have to use a language like C to implement it. And it is cumbersome interfacing C with the language you are using.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For everything &lt;em&gt;except&lt;/em&gt; web development (and math) I've found that C/C++ is still THE language of an operating system and an application. It's what is supported most of the time for true multi-threaded, preforming, cross-platform application development. And the syntax of C is okay. Just very simple and relatively verbose. Amazing Syntax doesn't really matter that much. &lt;strong&gt;Power and API availability does&lt;/strong&gt; We all need to interface with other people's code (which is most of the time written in C or its derivitives).&lt;/p&gt;&#xA;" OwnerUserId="11739" LastActivityDate="2010-12-26T22:19:04.703" CommentCount="1" />
  <row Id="30166" PostTypeId="2" ParentId="30154" CreationDate="2010-12-26T22:48:32.880" Score="5" ViewCount="" Body="&lt;p&gt;IT (Information Technology) is a catch-all for the industry at present, any job that is primarily to do with the operation of computers or developing for them is within the &quot;IT industry/sector&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, within the UK at least, job descriptions and adverts tend to reserve &quot;IT&quot; within a job &lt;em&gt;title&lt;/em&gt;, as administration, procurement and technical support for company computing resources.  Everything from sysadmin work, to frontline technical support, or hardware repair and procurement/policy for internal IT.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software Engineering specifically means developing software, analysis, design, programming - creating new software, or maintaining/altering existing software.  This is very different to a technical role.  The skill set is quite different, technical support guys are not necessarily programmers and (contrary to a lot of non-IT peoples' belief structures) software engineers are not necessarily any good at technical support.  Though Software Engineers are within the &quot;IT sector&quot;, which confuses the matter slightly in the job market.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-26T22:48:32.880" />
  <row Id="30167" PostTypeId="2" ParentId="30135" CreationDate="2010-12-26T22:59:03.410" Score="0" ViewCount="" Body="&lt;p&gt;Another thing to consider is that programming languages with nicer syntax are easier to parse, thus making the compiler easier to write, faster, and less prone to bugs.  &lt;/p&gt;&#xA;" OwnerUserId="9040" LastActivityDate="2010-12-26T22:59:03.410" CommentCount="2" />
  <row Id="30168" PostTypeId="1" CreationDate="2010-12-27T00:08:31.143" Score="9" ViewCount="275" Body="&lt;p&gt;My core question is how do I proceed from the following predicament.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will be honest with you, I wasted my College Experience.  I slacked off and didn't take any of my comp sci classes that seriously, somehow i still got out with a 3.25 GPA.  But truth be told I learned nothing.  I befriended most of my professors who went pretty lenient on me in terms of grading.  However, I basically came out of College knowing how to program a simple calculator in VB.Net.  I was (to my great surprise) hired by a very large respected company in Denver as a Junior developer.  Well the long and the short of it is that I knew so little about programming that I quickly became the office pariah and was almost fired due to my incompetence.  It has been 8 months now and I feel I have learned some basic things and I am not as picked on as I used to be by the other developers.  However, everyone hates me and the first few months have given the other developers a horrible perception of me.  I am no longer afraid of code or learning, but I have put my self in the precarious position of being the scapegoat of our department.  I hate going to work every day because no one there is my friend and pretty much everyone is hostile to me.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What should I do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any advice?&lt;/p&gt;&#xA;" OwnerUserId="11745" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-12-27T01:10:01.707" LastActivityDate="2010-12-27T14:41:49.810" ClosedDate="2010-12-27T11:46:47.373" Title="How do I get others to see past my prior inexperience?" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="6" CommentCount="5" FavoriteCount="2" />
  <row Id="30169" PostTypeId="2" ParentId="30168" CreationDate="2010-12-27T00:17:43.567" Score="5" ViewCount="" Body="&lt;p&gt;Sit tight, grow your skills, and read fiction with some strong characters facing adversity. Be friendly to QA and the non-exempt staff. Consider changing jobs after being there for three years [&lt;em&gt;or so, see comments below&lt;/em&gt;].&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's probably no better environment for you to learn, as you have shown you are learning already. Ask more senior people for help. Consider going back to school part time for your Masters. This time, take it seriously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Gain a reputation for being honest, and own up to any mistakes as soon as you realize you've made them. Care about what others think, but in the end it's what your manager thinks that's most important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beware, if you are the scapegoat now, there may be advantages to that position (to you and to others) that you don't quite realize. Getting out of that position will change things, and it won't always be for the better.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-12-27T14:41:49.810" LastActivityDate="2010-12-27T14:41:49.810" CommentCount="4" />
  <row Id="30170" PostTypeId="2" ParentId="30134" CreationDate="2010-12-27T00:26:22.040" Score="1" ViewCount="" Body="&lt;p&gt;If you have company mandated anti-virus any SSD drive advantage will be eaten by the anti-virus program and then go for the extra screen instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that some of the advantages of a SSD-drive in a low memory system can be achieved by ReadyBoost with a big USB-key.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-27T00:26:22.040" CommentCount="1" />
  <row Id="30171" PostTypeId="1" CreationDate="2010-12-27T00:27:10.600" Score="4" ViewCount="451" Body="&lt;p&gt;If I were to begin writing an application using Java with the intention of porting it to other platforms with little or no modification, would it be wise to consider using the .Net framework instead?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have no specific targets in mind with respect to platform. At a minimum, Windows/Mac/Linux support would be nice. Also ease-of-use for the end-user is a consideration.&lt;/p&gt;&#xA;" OwnerUserId="231" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-27T02:09:03.740" LastActivityDate="2011-02-14T16:41:30.710" Title="Advantages and possible drawbacks of using Java for cross-platform development vs. .NET?" Tags="&lt;java&gt;&lt;.net&gt;&lt;comparison&gt;&lt;cross-platform&gt;" AnswerCount="8" CommentCount="7" FavoriteCount="1" />
  <row Id="30172" PostTypeId="1" CreationDate="2010-12-27T00:34:51.173" Score="4" ViewCount="239" Body="&lt;p&gt;I will complete my undergrad in Material Science this spring. I am not interested in the subject but I am very interested in Computer Science and programming and have decided to make the shift. Do you think I should first get an undergraduate degree in Computer Science or should I apply for a master's program? My programming skills are pretty decent, but I lack a lot of concrete knowledge in algorithms and data structures? Will a master's degree help me with the basics? &lt;/p&gt;&#xA;" OwnerUserId="11747" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-12-27T01:22:26.060" LastActivityDate="2010-12-27T06:12:04.887" ClosedDate="2010-12-27T11:44:10.760" Title="Is an undergraduate degree in CS required?" Tags="&lt;career-advice&gt;&lt;education&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="1" />
  <row Id="30173" PostTypeId="1" CreationDate="2010-12-26T07:31:18.680" Score="2" ViewCount="105" Body="&lt;p&gt;As a novice programmer and I always wonder about c# capabilities. I know it is still early to judge that but all i want to know is can c# do complex stuffs or something outside windows OS.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;I think C# is a proprietary language (I don't know if I said that right) meaning you can't do it outside Visual Studio or Windows.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Also you can't create your own controller (called object right?) like you are forced to use these available in toolbox and their properties and methods.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Can C# be used with OpenGL API or DirectX API &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Finally it always bothers me when I think I start doing things in Visual Studio, I know it sounds arrogant to say but sometimes I feel that I don't like to be forced to use something even if its helpful, like I feel (do I have the right to feel?) that I want to do all things by myself? Don't laugh I just feel that this will give me a better understanding.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Is Visual C# like using MaxScript inside 3ds max in that C# is exclusive to do Windows and Forms and Components that are Windows related and maxscript is only for 3d editing and manipulation for various things in the software.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If it is too difficult for a beginner I hope you don't answer the fourth question as I don't have enough motivation and I want to keep the little I have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Sorry for my English, I am self taught and never used the language with native speakers so expect so errors.&lt;/li&gt;&#xA;&lt;li&gt;I have a lot of questions regarding many things, what is the daily ratio you think for asking (number of questions) that would not bother the admins of the site and the members here.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Thank you for your time.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T00:35:32.177" Title="About C# objects and the possibilties it has" Tags="&lt;c#&gt;" AnswerCount="5" CommentCount="3" />
  <row Id="30174" PostTypeId="2" ParentId="30173" CreationDate="2010-12-26T07:41:06.783" Score="3" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;No, it isn't. See &lt;a href=&quot;http://en.wikipedia.org/wiki/Mono_%28software%29&quot; rel=&quot;nofollow&quot;&gt;Mono&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Of course, you can create your own classes. See &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/x9afc042%28v=VS.100%29.aspx&quot; rel=&quot;nofollow&quot;&gt;classes&lt;/a&gt; in the documentation.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Yes, you can. See &lt;a href=&quot;http://stackoverflow.com/questions/536065/c-opengl&quot;&gt;this question&lt;/a&gt; and the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/bb318662%28v=VS.85%29.aspx&quot; rel=&quot;nofollow&quot;&gt;DirectX namespaces&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Nobody forces you to use the IDE. You can use your editor of choice and invoke the C# compiler &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/78f4aasd%28v=VS.100%29.aspx&quot; rel=&quot;nofollow&quot;&gt;from the command line&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;C# is not an embedded language like MaxScript. You can do far more with it than windows, forms, and visual components.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastActivityDate="2010-12-27T00:35:32.177" />
  <row Id="30175" PostTypeId="2" ParentId="30173" CreationDate="2010-12-26T07:42:13.873" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;C# is targeted to the .NET framework, but there are external mult-targeted languages based on C#.&lt;/li&gt;&#xA;&lt;li&gt;You can create your own API and controls and you can even make them appear in the VS toolbar&lt;/li&gt;&#xA;&lt;li&gt;You can, and especially today, this is much easier since C# has produced the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd264736.aspx&quot; rel=&quot;nofollow&quot;&gt;dynamic&lt;/a&gt; keyword.&lt;/li&gt;&#xA;&lt;li&gt;Why reeinvent the wheel when some people did that for you? if you want to do all by your self, you should develop with processor-level languages, and that's also not your own :)&lt;/li&gt;&#xA;&lt;li&gt;Donno what's MaxScript&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="11448" LastActivityDate="2010-12-27T00:35:32.177" CommentCount="1" />
  <row Id="30176" PostTypeId="2" ParentId="30173" CreationDate="2010-12-26T07:46:05.993" Score="5" ViewCount="" Body="&lt;p&gt;1.) No C# is an open standard: &lt;a href=&quot;http://www.ecma-international.org/publications/standards/Ecma-334.htm&quot; rel=&quot;nofollow&quot;&gt;ECMA-334&lt;/a&gt;. There is an Open Source IDE called &lt;a href=&quot;http://www.icsharpcode.com&quot; rel=&quot;nofollow&quot;&gt;SharpDevelop&lt;/a&gt; or Mono Devlop that is part of the &lt;a href=&quot;http://www.gomono.com&quot; rel=&quot;nofollow&quot;&gt;Mono Framework&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2.) Yes you have all features of a OOP language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3.) See the &lt;a href=&quot;http://msdn.microsoft.com/en-us/directx/aa937788&quot; rel=&quot;nofollow&quot;&gt;DirectX SDK&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4.) s. 1&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5.) C# is no scripting language. It is a &quot;compiler&quot; language that first creates a binary executable that can be run and it is not a script language that is executed step by step from source.&lt;/p&gt;&#xA;" OwnerUserId="11868" LastActivityDate="2010-12-27T00:35:32.177" CommentCount="1" />
  <row Id="30177" PostTypeId="2" ParentId="30173" CreationDate="2010-12-26T07:49:35.697" Score="2" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;C# Is not a proprietary language.  See the &lt;a href=&quot;http://www.ecma-international.org/publications/standards/Ecma-334.htm&quot; rel=&quot;nofollow&quot;&gt;ECMA-334&lt;/a&gt; standard.  When some organization decides to implement the CLR for some OS, you can use the .NET framework and C# on that platform.   (&lt;a href=&quot;http://www.mono-project.com/&quot; rel=&quot;nofollow&quot;&gt;Mono&lt;/a&gt; is such an implementation)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I do not completely understand that question, but I think you're wondering whether you can write your own classes ?  Yes, you can.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Yes, you can use that.  You can also use &lt;a href=&quot;http://msdn.microsoft.com/en-us/aa937791&quot; rel=&quot;nofollow&quot;&gt;XNA&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;There are other IDE's which you can use for C# development; &lt;a href=&quot;http://www.icsharpcode.net/opensource/sd/&quot; rel=&quot;nofollow&quot;&gt;SharpDevelop&lt;/a&gt; for instance.  Although, I feel that VS.NET with Resharper is at this very moment the most productive IDE to write applications for .NET.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastActivityDate="2010-12-27T00:35:32.177" />
  <row Id="30178" PostTypeId="2" ParentId="30173" CreationDate="2010-12-26T07:50:47.507" Score="0" ViewCount="" Body="&lt;p&gt;It's strange what made you feel like this. Whatever the IDE and the framework does for you, it actually makes this the most convenient framework to develop for in the whole world. You can feel free to do anything, change the toolbox icons, extend Visual Studio, and C# can be used for many things, like programming in Linux, extending Microsoft Visual Studio or Office, and there's even a project to program an operating system with it (Singularity). I agree it's not the most open thing in the world because it's Microsoft stuff, but still, it's built around open standards and I've never felt constrained.&lt;/p&gt;&#xA;" OwnerUserId="16658" LastActivityDate="2010-12-27T00:35:32.177" />
  <row Id="30179" PostTypeId="2" ParentId="30168" CreationDate="2010-12-27T00:42:26.753" Score="3" ViewCount="" Body="&lt;p&gt;Take a look back at some of you coursework and you may find out that even if you actually learned all of the content and pulled a legit 4.0, you still may not have been prepared for your job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key for you is how much have you learned in 8 months? If you've made a lot of progress, there may be hope. Focus on how far you've grown and try to emphasis your willingness to learn more. Make an effort to become friends with at least one person. Even if it just means they are civil to you at work, that's a start. Others have no right to be rude to you regardless of your skill level, but they still don't have to like you either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be honest with yourself about how you think you will do in this profession. Your current situation aside, do you like to program? If not, start looking for another career because it's not going to get better for you.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-27T00:42:26.753" CommentCount="4" />
  <row Id="30180" PostTypeId="2" ParentId="30168" CreationDate="2010-12-27T01:17:52.727" Score="0" ViewCount="" Body="&lt;p&gt;Do you like coding ? Programming still makes sense for you ? if so i suggest you to go on on programming career. If not so it depends on your other abilities to look for other areas.&lt;/p&gt;&#xA;" OwnerUserId="3664" LastActivityDate="2010-12-27T01:17:52.727" CommentCount="1" />
  <row Id="30181" PostTypeId="2" ParentId="30135" CreationDate="2010-12-27T01:20:39.453" Score="1" ViewCount="" Body="&lt;p&gt;The answer might be in separating what &quot;matters&quot; into &lt;strong&gt;computer factors&lt;/strong&gt; and &lt;strong&gt;human factors&lt;/strong&gt;. There are a lot of human factors in syntax:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Readability&lt;/li&gt;&#xA;&lt;li&gt;Succinctness&lt;/li&gt;&#xA;&lt;li&gt;Maintainability&lt;/li&gt;&#xA;&lt;li&gt;Pedagogy&lt;/li&gt;&#xA;&lt;li&gt;Error prevention&lt;/li&gt;&#xA;&lt;li&gt;Appropriateness for the purpose -- is it a REPL language, a script language or a large systems language?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As far as the computer is concerned, the only issue of syntax is whether or not there are ambiguities that need to be resolved, and how much time it takes to tokenize/parse the code upon compile/interpret -- and it's only in the case of the latter where the overhead of parsing is a significant issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That might be why you'll always get a &quot;yes and no&quot; answer to this question -- because there's two aspects to it.&lt;/p&gt;&#xA;" OwnerUserId="6385" LastActivityDate="2010-12-27T01:20:39.453" />
  <row Id="30182" PostTypeId="2" ParentId="30168" CreationDate="2010-12-27T01:21:43.803" Score="0" ViewCount="" Body="&lt;p&gt;Have you considered moving to another company immediately?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, never ever do that. Always leave with style and leaving the company as you are now would make a bad impression for them and the new company you're applying for as well as burning the bridge with your current employer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you need to do is improve your skills as well as implement &lt;a href=&quot;http://joelonsoftware.com/articles/fog0000000332.html&quot; rel=&quot;nofollow&quot;&gt;good software development practices while you're still at the bottom of the food chain&lt;/a&gt;. Have you learned a lot of things during the past 8 months? If you still think you haven't, consider reading a book about development in the language that your company uses. Also, try reading books &lt;a href=&quot;http://www.codinghorror.com/blog/2004/02/recommended-reading-for-developers.html&quot; rel=&quot;nofollow&quot;&gt;recommended by a lot of developers&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to ask your seniors to mentor you. Convince them that you're willing to improve your skills and your relationship with your co-workers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember, you can still do something about your reputation in the company, so don't ever consider leaving until their impression of you has changed for the better.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-12-27T01:21:43.803" CommentCount="1" />
  <row Id="30183" PostTypeId="2" ParentId="30134" CreationDate="2010-12-27T01:37:51.520" Score="0" ViewCount="" Body="&lt;p&gt;Given you're doing web development, SSD's avantage for compilation doesn't apply because you most likely use a scripting language / no compilation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the screen, if it's small then yes a second screen would help, however you might prefer to get &lt;strong&gt;one big screen instead&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="9094" LastActivityDate="2010-12-27T01:37:51.520" />
  <row Id="30184" PostTypeId="2" ParentId="30110" CreationDate="2010-12-27T02:15:50.823" Score="1" ViewCount="" Body="&lt;p&gt;and the answer is.... Qt&lt;/p&gt;&#xA;&#xA;&lt;p&gt;seriously, it does fit all your points; and on top of it it's multiplatform and really efficient.&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-12-27T02:15:50.823" />
  <row Id="30185" PostTypeId="2" ParentId="27564" CreationDate="2010-12-27T02:18:34.233" Score="-2" ViewCount="" Body="&lt;p&gt;Static inheritance is a much needed feature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, right now, I can do this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class First&#xA;{&#xA;    static function class()&#xA;    {&#xA;        echo __CLASS__;&#xA;    }&#xA;}&#xA;&#xA;class Second extends First {}&#xA;&#xA;Second::class();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Will output &quot;First.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This completely eliminates the possibility for doing neat static methods a la Rails' ActiveRecord-style 'ClassName.find(x)'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit:  This reminds me of PHP's weird concept of &quot;$this&quot; where an object method really only HAS to be called in an object context if it uses $this...  though I realize that as far as code design, you probably shouldn't be defining a lot of instance methods that don't affect or rely on the state of the instance.&lt;/p&gt;&#xA;" OwnerUserId="11752" LastActivityDate="2010-12-27T02:18:34.233" CommunityOwnedDate="2010-12-27T02:18:34.233" CommentCount="3" />
  <row Id="30186" PostTypeId="2" ParentId="29344" CreationDate="2010-12-27T02:42:33.887" Score="4" ViewCount="" Body="&lt;p&gt;From a practical viewpoint, there are only a couple of real implementations that currently exist: Microsoft's C++/CLI and (sort of) Clang/LLVM. As already mentioned, C++/CLI isn't really exactly C++. In theory, it's C++ with an almost-conforming set of extensions; practically, almost no real C++/CLI code is compatible with C++, so its being nearly conforming makes little real difference. Likewise, despite the name, LLVM isn't so much a virtual machine as a set of tools for creating virtual machines. As such, Clang/LLVM isn't so much an implementation as a toolkit that &lt;em&gt;could&lt;/em&gt; be used to create such an implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a theoretical viewpoint, there's honestly not as much &lt;em&gt;real&lt;/em&gt; controversy as it might look like. What's actually happened is pretty simple: Java advocates (it seems to be mostly Java advocates, anyway) spent years trying to come up with benchmarks that would show Java beating C and/or C++. In a few cases, they doctored benchmarks in pretty obvious ways to get the results they wanted, but they had to manipulate the benchmarks in pretty obvious ways to accomplish that. Since they couldn't get the results they wanted from real code, they started to follow an alternate route: writing about the possibility that a JIT &lt;em&gt;could&lt;/em&gt; give performance benefits under at least some circumstances.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In doing this, however, they generally ignored one crucial point: the majority of optimization is independent of the target processor -- especially the most important (and, unfortunately, the most expensive) optimizations. This means JIT compilers have relatively little benefit compared to up-front compilers (even in theory), &lt;em&gt;and&lt;/em&gt; they have a fairly high cost compared to up-front compilers, because the user has to wait while any expensive optimization happens. Because of that, most JIT compilers are pretty much forced to skip doing the most expensive optimizations, because in nearly every case they cost more than they (even hope to) gain. In the case of an up-front compiler, you can amortize the cost of that expensive optimization across many executions, but with a JIT compiler you have to repeat it at (essentially) every execution instead. As a result optimizations that are entirely practical for an up-front compiler become completely useless for a JIT compiler.&lt;/p&gt;&#xA;" OwnerUserId="902" LastActivityDate="2010-12-27T02:42:33.887" />
  <row Id="30187" PostTypeId="2" ParentId="30168" CreationDate="2010-12-27T03:00:20.960" Score="2" ViewCount="" Body="&lt;p&gt;Chances are you won't be able to do anything about your work environment quickly, and to do so you will need to balance out the negative view that everyone appears to have formed, due to one mistake or another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's also unlikely that you are going to suddenly stop making mistakes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Humility is your friend here, you will need to make sure that you are more comfortable with the position you're in. Try not to be paranoid that everyone is expecting you to screw up, (even if perhaps they are). When you ask for help, and DO ask for help, make sure you are prepared to give 100% attention to the answers, developers are generally happy to help someone, but they definitely don't enjoy answering the same questions over and over.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do make mistakes, DO NOT TRY AND COVER YOUR ASS, some of the most heinous foul ups I've seen involved juniors trying to fix something, or sweep it under the rug, to the extent where the problem isn't known about until something happens which embarrases the whole team, department or company.  Always make sure that if something goes wrong, let the person who it will affect first know what's gone wrong.  That usually means your team leader.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, if you make a lot of mistakes, tolerance will wear thin, you need to show that you are learning and being productive as much as possible, but I recommend you just try and be as helpful as possible generally if your programming skills alone can't demonstrate this.  Seriously, do the coffee run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Outside of work, try and learn as much as you can, blowing off all that time in your courses has caught up with you, so now you need to learn, get practical, applicable knowledge that can help you, but also figure out which larger conceptual/theoretical gaps there are in your CS knowledge and try to prioritise immediate usefulness, so that the new things you are learning have the most value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the worst part of the situation for you at the moment, is the feeling that everyone hates you, chances are it's a lot less severe than you think, but you need to be less sensitive about it and realise that you can make people feel better about you if you aren't testing their patience, so try to be more helpful, show humility and a genuine effort to improve your skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do this, people will come around.&lt;/p&gt;&#xA;" OwnerUserId="3787" LastActivityDate="2010-12-27T03:00:20.960" />
  <row Id="30188" PostTypeId="1" AcceptedAnswerId="30189" CreationDate="2010-12-27T03:01:29.147" Score="3" ViewCount="212" Body="&lt;p&gt;I have a database design issue that I'm not quite sure how to approach, nor if the benefits out weigh the costs. I'm hoping some P.SE members can give some feedback on my suggested design, as well as any similar experiences they may have came across.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As it goes, I am building an application that has large reporting demands.  Speed is an important issue, as there will be peak usages throughout the year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This application/database has a multiple-level, many-to-many relationship.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;eg&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;object a&#xA;object b&#xA;object c&#xA;object d&#xA;&#xA;object b has relationship to object a&#xA;object c has relationship to object b, a&#xA;object d has relationship to object c, b, a&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Theoretically, this could go on for unlimited levels, though logic dictates it could only go so far.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My idea here, to speed up reporting, would be to create a &lt;code&gt;syndicate&lt;/code&gt; table that acts as a global many-to-many join table. In this table (with the given example), one might see:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;+----------+-----------+---------+&#xA;| child_id | parent_id | type_id |&#xA;+----------+-----------+---------+&#xA;|    b     |     a     |    1    |&#xA;|    c     |     b     |    2    |&#xA;|    c     |     a     |    3    |&#xA;|    d     |     c     |    4    |&#xA;|    d     |     b     |    5    |&#xA;|    d     |     a     |    6    |&#xA;+----------+-----------+---------+&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Where a, b, c and d would translate to their respective ID's in their respective tables. So, for ease of reporting all of a which exist on object d, one could query&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;SELECT * FROM `syndicates` ... JOINS TO child and parent tables ... WHERE parent_id=a and type_id=6;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;rather than having a query with a join to each level up the chain.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;The Problem&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;This table grows exponentially, and in a given year, could easily grow past 20,000 records for one client. Given multiple clients over multiple years, this table will VERY quickly explode to millions of records and beyond.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, the database will, in time, be partitioned across multiple servers, but I would like (as most would) to keep the number of servers as low as possible while still offering flexibility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also writes and updates would be exponentially longer (though possibly not noticeable to the end user) as there would be multiple inserts/updates/scans on this table to keep it in sync.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I going in the right direction here, or am I way off track. What would you do in a similar situation?  This solution seems overly complex, but allows the greatest flexibility and fastest read-operations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Sidenote 1&lt;/em&gt; - This structure allows me to add new levels to the tree easily. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Sidenote 2&lt;/em&gt; - The database querying for this database is done through an ORM framework.&lt;/p&gt;&#xA;" OwnerUserId="7048" LastActivityDate="2010-12-27T03:12:57.023" Title="Database design and performance impact" Tags="&lt;best-practices&gt;&lt;database-development&gt;" AnswerCount="1" CommentCount="5" />
  <row Id="30189" PostTypeId="2" ParentId="30188" CreationDate="2010-12-27T03:12:57.023" Score="2" ViewCount="" Body="&lt;p&gt;Despite not being 100% sure about the ORM framework, it is probably a good idea to use &lt;a href=&quot;http://dev.mysql.com/tech-resources/articles/hierarchical-data.html&quot; rel=&quot;nofollow&quot;&gt;MPTT&lt;/a&gt; to create your relationships between objects, your &lt;code&gt;syndicate&lt;/code&gt; table.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This will allow unlimited levels of relationships and easy access to records, since you'll mostly be doing primary key lookups after getting the relationship information from this table.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The queries might not be very simple or easy to understand, please see &lt;a href=&quot;http://dev.mysql.com/tech-resources/articles/hierarchical-data.html&quot; rel=&quot;nofollow&quot;&gt;this link&lt;/a&gt; for more information and examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Millions of records are not a problem, I've had experiences with tables around 10 million rows and with reasonable performance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Despite the links pointing to the MySQL site, the concepts apply to any database (I just like that article).&lt;/p&gt;&#xA;" OwnerUserId="11592" LastActivityDate="2010-12-27T03:12:57.023" />
  <row Id="30190" PostTypeId="2" ParentId="27564" CreationDate="2010-12-27T03:37:10.683" Score="-1" ViewCount="" Body="&lt;p&gt;I would love to have a usable IDE. Dreamweaver is close, but not quite right. MP Software is trying too.  Zend had a good product, but threw it all away with 6+.   &lt;/p&gt;&#xA;" OwnerUserId="11757" LastActivityDate="2010-12-27T03:37:10.683" CommunityOwnedDate="2010-12-27T03:37:10.683" CommentCount="1" />
  <row Id="30191" PostTypeId="2" ParentId="30134" CreationDate="2010-12-27T03:46:45.443" Score="0" ViewCount="" Body="&lt;p&gt;additional huge screen for my EEE PC 1000HE is absolutely rocks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;web dev is not resource consuming&lt;/p&gt;&#xA;" OwnerUserId="11758" LastActivityDate="2010-12-27T03:46:45.443" />
  <row Id="30192" PostTypeId="2" ParentId="30172" CreationDate="2010-12-27T03:52:17.533" Score="0" ViewCount="" Body="&lt;p&gt;It depends on the masters program (which is why people are saying it is to localized) but as long as you are selective there are masters programs that will get you what you need.&lt;/p&gt;&#xA;" OwnerUserId="3697" LastActivityDate="2010-12-27T03:52:17.533" />
  <row Id="30193" PostTypeId="2" ParentId="30172" CreationDate="2010-12-27T03:59:13.070" Score="2" ViewCount="" Body="&lt;p&gt;I would suggest you to take up a programming/CS related job first and get some experience. This will also let you understand your specific interests within CS. Then, you can make a more informed decision about whether or not you want to go for Masters and if so then in what specialization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as gaining knowledge in algorithms and data structures etc., there are enough resources available online to teach you those. A Masters degree would be an overkill if you only want to gain this knowledge.  &lt;/p&gt;&#xA;" OwnerUserId="2861" LastActivityDate="2010-12-27T03:59:13.070" />
  <row Id="30194" PostTypeId="2" ParentId="30110" CreationDate="2010-12-27T04:03:47.793" Score="0" ViewCount="" Body="&lt;p&gt;I would add extensibility and versatility (or power) because I consider it different from &quot;ease of development&quot;. YMMV.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For ex QT3 (or was it the version before that Oh Well) is very easy to use as compared to MFC for typical cases, but where you wanted to do something atypical it came up short. I hear they have changed this in QT4.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good list BTW.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-27T04:03:47.793" />
  <row Id="30195" PostTypeId="2" ParentId="30096" CreationDate="2010-12-27T04:15:22.570" Score="0" ViewCount="" Body="&lt;p&gt;Codesion.  What you're describing will probably run you around $20/month.&lt;/p&gt;&#xA;" OwnerUserId="11638" LastActivityDate="2010-12-27T04:15:22.570" />
  <row Id="30196" PostTypeId="2" ParentId="30171" CreationDate="2010-12-27T04:23:51.683" Score="7" ViewCount="" Body="&lt;p&gt;I wouldn't go with .Net.  Mono is not bad, but if you use some obscure corner of C# or the .Net library that Mono does not support, then you're screwed.  This is way less likely to happen in Java because Sun stands behind full runtime implementations of Java for Windows, Mac and Linux.&lt;/p&gt;&#xA;" OwnerUserId="11638" LastActivityDate="2010-12-27T04:23:51.683" CommentCount="3" />
  <row Id="30197" PostTypeId="2" ParentId="29725" CreationDate="2010-12-27T04:27:01.843" Score="0" ViewCount="" Body="&lt;p&gt;I swear that once you learn one you can easily transfer to the other. I was a Java dev about 10 years ago when the .COM implosion hit and hesitantly went to my first C# interview. The biggest issue is different casing (in Java it's toString(), in C# it's ToString()).&lt;/p&gt;&#xA;" OwnerUserId="9540" LastActivityDate="2010-12-27T04:27:01.843" />
  <row Id="30198" PostTypeId="2" ParentId="30140" CreationDate="2010-12-27T04:32:05.137" Score="2" ViewCount="" Body="&lt;p&gt;Obfuscating to attempt to hide PayPal button codes is not time well spent. You will not get a return on the time you spend on this so it is not worth the effort. Like others point out it can all be reversed so you will not be limiting those interested in finding out what goes on in your pages.&lt;/p&gt;&#xA;" OwnerUserId="9793" LastActivityDate="2010-12-27T04:32:05.137" CommentCount="2" />
  <row Id="30199" PostTypeId="2" ParentId="30168" CreationDate="2010-12-27T04:49:23.337" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Be positive (I know it is hard at this time but it is possible)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Keep learning (both the specific domain you want to work on and the general)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Be diligent.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Try to leave a positive impression on your colleagues and superiors.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Once you are confident you have learned enough change your job (The other option is to regain the respect in your present company and to a large extent you may, but unfortunately first impression is last impression)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-27T04:49:23.337" />
  <row Id="30200" PostTypeId="2" ParentId="29550" CreationDate="2010-12-27T04:54:45.690" Score="0" ViewCount="" Body="&lt;p&gt;Another technique I've seen that works is a lunch presentation from a senior developer/consultant once a month or so. And don't forget to provide the lunch. Most devs I know love free grub. You might ask them if they prefer any specific topics.&lt;/p&gt;&#xA;" OwnerUserId="9540" LastActivityDate="2010-12-27T04:54:45.690" />
  <row Id="30201" PostTypeId="1" CreationDate="2010-12-27T04:59:55.950" Score="17" ViewCount="263" Body="&lt;p&gt;After reading Paul Graham's essay &lt;a href=&quot;http://www.paulgraham.com/hp.html&quot; rel=&quot;nofollow&quot;&gt;Hackers&amp;nbsp;and&amp;nbsp;Painters&lt;/a&gt; and Joel Spolsky's &lt;a href=&quot;http://www.joelonsoftware.com/articles/CollegeAdvice.html&quot; rel=&quot;nofollow&quot;&gt;Advice&amp;nbsp;for&amp;nbsp;Computer&amp;nbsp;Science&amp;nbsp;College&amp;nbsp;Students&lt;/a&gt;, I think I've finally gotten it through my thick skull that I should not be loath to work hard in academic courses that aren't &quot;programming&quot; or &quot;computer science&quot; courses.  To quote the former:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I've found that the best sources of&#xA;  ideas are not the other fields that&#xA;  have the word &quot;computer&quot; in their&#xA;  names, but the other fields inhabited&#xA;  by makers. Painting has been a much&#xA;  richer source of ideas than the theory&#xA;  of computation.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&amp;mdash; Paul Graham, &quot;Hackers and Painters&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;There are certainly other, much stronger reasons to work hard in the &quot;boring&quot; classes.  However, it'd also be neat to know that these classes may someday inspire me in programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is: what are some specific examples where ideas from literature, art, humanities, philosophy, and other fields made their way into programming?  In particular, ideas that weren't obviously applied the way they were meant to (like most math and domain-specific knowledge), but instead gave utterance or inspiration to a program's design and choice of names.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Good examples:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The term &lt;a href=&quot;http://en.wikipedia.org/wiki/Endianness&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;endian&lt;/strong&gt;&lt;/a&gt; comes from &lt;em&gt;Gulliver's&amp;nbsp;Travels&lt;/em&gt; by Jonathan Swift (&lt;a href=&quot;http://en.wikipedia.org/wiki/Endianness#Etymology&quot; rel=&quot;nofollow&quot;&gt;see here&lt;/a&gt;), where it refers to the trivial matter of which side people crack open their eggs.&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The terms &lt;a href=&quot;http://en.wikipedia.org/wiki/Journal_%28computing%29&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;journal&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Database_transaction&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;transaction&lt;/strong&gt;&lt;/a&gt; refer to nearly identical concepts in both &lt;a href=&quot;http://en.wikipedia.org/wiki/Journaling_file_system&quot; rel=&quot;nofollow&quot;&gt;filesystem design&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Double-entry_bookkeeping_system&quot; rel=&quot;nofollow&quot;&gt;double-entry bookkeeping&lt;/a&gt; (financial accounting).  &lt;code&gt;mkfs.ext2&lt;/code&gt; even says:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Writing superblocks and filesystem accounting information: done&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Off-topic:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learning to write English well is important, as it enables a programmer to document and evangelize his/her software, as well as appear competent to other programmers online.&lt;/li&gt;&#xA;&lt;li&gt;Trigonometry is used in 2D and 3D games to implement rotation and direction aspects.&lt;/li&gt;&#xA;&lt;li&gt;Knowing finance will come in handy if you want to write an accounting package.&lt;/li&gt;&#xA;&lt;li&gt;Knowing XYZ will come in handy if you want to write an XYZ package.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Arguably on-topic:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://hackage.haskell.org/packages/archive/base/latest/doc/html/Prelude.html#t%3aMonad&quot; rel=&quot;nofollow&quot;&gt;The Monad class in Haskell&lt;/a&gt; is based on a concept by the same name from &lt;a href=&quot;http://en.wikipedia.org/wiki/Category_theory&quot; rel=&quot;nofollow&quot;&gt;category theory&lt;/a&gt;.  Actually, Monads in Haskell are monads in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Category_%28mathematics%29#Definition&quot; rel=&quot;nofollow&quot;&gt;category&lt;/a&gt; of Haskell types and functions.  Whatever that means...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3650" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2011-01-12T21:37:04.273" LastActivityDate="2011-01-13T19:31:06.037" Title="Programming concepts taken from the arts and humanities" Tags="&lt;education&gt;&lt;inspiration&gt;" AnswerCount="6" FavoriteCount="6" />
  <row Id="30202" PostTypeId="2" ParentId="29488" CreationDate="2010-12-27T05:00:07.010" Score="1" ViewCount="" Body="&lt;p&gt;For newbies you should also briefly document your source code structure, the check-in/out processes, where to find tools, etc. Then, when a new person comes on board, have them update the doc and add whatever they feel was missing.&lt;/p&gt;&#xA;" OwnerUserId="9540" LastActivityDate="2010-12-27T05:00:07.010" />
  <row Id="30203" PostTypeId="2" ParentId="5460" CreationDate="2010-12-27T05:08:00.023" Score="0" ViewCount="" Body="&lt;p&gt;Machine learning. I am really fascinated by its potential.&lt;/p&gt;&#xA;" OwnerUserId="11761" LastActivityDate="2010-12-27T05:08:00.023" />
  <row Id="30204" PostTypeId="2" ParentId="27564" CreationDate="2010-12-27T05:11:53.203" Score="2" ViewCount="" Body="&lt;p&gt;PHP needs an immutable Unicode string class. Ensuring input strings are valid, normalized UTF-8 and that it stays valid should be trivial.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$str = new Utf8String('āll īs ōk');&#xA;$str = $str-&amp;gt;ucwords(); // Āll Īs Ōk&#xA;$str = $str-&amp;gt;strtolower()-&amp;gt;toAscii(); // all is ok&#xA;(string) $str; // UTF-8 bytes&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I made a &lt;a href=&quot;http://www.mrclay.org/2010/08/06/php-utf-8-string-class/&quot; rel=&quot;nofollow&quot;&gt;prototype&lt;/a&gt; based on &lt;a href=&quot;http://sourceforge.net/projects/phputf8/&quot; rel=&quot;nofollow&quot;&gt;PHP-UTF8&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="11759" LastActivityDate="2010-12-27T05:11:53.203" CommunityOwnedDate="2010-12-27T05:11:53.203" />
  <row Id="30205" PostTypeId="2" ParentId="30201" CreationDate="2010-12-27T05:30:56.920" Score="6" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Web UI design has its origins with print media&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Usability and user experience took much from psychology&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Design of imaging devices (which display a sequence of quickly changing images, frames) based on the observation of the human body specifics (image perception delay by a human eye) in medical studies&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Lambda-functions in programming languages are based on the &lt;a href=&quot;http://en.wikipedia.org/wiki/Lambda_calculus&quot; rel=&quot;nofollow&quot;&gt;Lambda calculus&lt;/a&gt; from mathematics&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The binary system (0s and 1s) owes its existence to the physics and electronics (inability to reliably distinguish between more than 2 potential states of an element). Additionally, the number 2 seems to manifest itself everywhere in the nature.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-27T13:11:41.327" LastActivityDate="2010-12-27T13:11:41.327" CommentCount="2" />
  <row Id="30206" PostTypeId="2" ParentId="30201" CreationDate="2010-12-27T05:58:00.023" Score="4" ViewCount="" Body="&lt;p&gt;Semaphore comes from train signalling system?&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2010-12-27T05:58:00.023" CommentCount="4" />
  <row Id="30207" PostTypeId="2" ParentId="30172" CreationDate="2010-12-27T06:12:04.887" Score="0" ViewCount="" Body="&lt;p&gt;Read up on decent books like `Introduction to the Design and Analysis of Algorithms' Anany Levitin, which is the one I recently used in my Algorithms class. You could probably take a Master's degree with a few undergraduate short courses, but there's a wealth of material out there if you want to learn. Also, start writing a whole bunch of algorithms and implementing a few basic data structures, and pretty soon you'll be up to scratch and ready for alot of a CS tasks.&lt;/p&gt;&#xA;" OwnerUserId="11764" LastActivityDate="2010-12-27T06:12:04.887" />
  <row Id="30208" PostTypeId="2" ParentId="30201" CreationDate="2010-12-27T06:44:27.217" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Genetic_algorithm#History&quot; rel=&quot;nofollow&quot;&gt;Genetic algorithm&lt;/a&gt; from biological evolution, and it's branches.&lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2010-12-27T06:44:27.217" />
  <row Id="30209" PostTypeId="1" CreationDate="2010-12-27T06:46:37.183" Score="5" ViewCount="261" Body="&lt;p&gt;You always hear that google allows engineers to devote 20% of their time to projects of their choosing.  Are there other software companies/startups/employers out there that are like this?&lt;/p&gt;&#xA;" OwnerUserId="11766" LastEditorUserId="11766" LastEditorDisplayName="" LastEditDate="2010-12-27T07:38:35.657" LastActivityDate="2010-12-27T14:30:56.377" ClosedDate="2010-12-28T00:32:40.833" Title="what software companies allow employees time to work on projects of their own choosing?" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="1" />
  <row Id="30210" PostTypeId="1" AcceptedAnswerId="30242" CreationDate="2010-12-27T07:09:57.267" Score="13" ViewCount="466" Body="&lt;p&gt;I heard a while back that there used to be a compiler that attempted to fix syntax errors by analyzing context and inferring what was intended.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does such a compiler really exist? Obviously it has little practical value, but would be very interesting to play with and learn from.&lt;/p&gt;&#xA;" OwnerUserId="231" LastActivityDate="2011-01-31T19:13:38.980" Title="Are there any compilers that attempt to fix syntax errors on their own?" Tags="&lt;syntax&gt;&lt;compilers&gt;" AnswerCount="11" CommentCount="6" FavoriteCount="0" />
  <row Id="30211" PostTypeId="2" ParentId="30209" CreationDate="2010-12-27T07:10:01.953" Score="3" ViewCount="" Body="&lt;p&gt;Some companies have slack time between projects or &quot;sprints&quot; where you can devote time to studying a new language or working on a small project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know this because there are people (more than one) who have posted questions on this board to the effect of &quot;management doesn't keep me busy enough.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But companies that devote blocks of time to this are relatively rare, in my experience.  They tend to be more research-oriented.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-27T07:10:01.953" CommentCount="1" />
  <row Id="30212" PostTypeId="2" ParentId="29725" CreationDate="2010-12-27T07:14:08.450" Score="0" ViewCount="" Body="&lt;p&gt;You're forgetting that &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms379617.aspx&quot; rel=&quot;nofollow&quot;&gt;you can use .NET in C++&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That way, you don't even have to learn a new language at all.&lt;/p&gt;&#xA;" OwnerUserId="231" LastActivityDate="2010-12-27T07:14:08.450" />
  <row Id="30213" PostTypeId="2" ParentId="30209" CreationDate="2010-12-27T07:14:26.603" Score="1" ViewCount="" Body="&lt;p&gt;We do.  Sorry for the shameless self promotion, but I'd like to make known a company where A) developers are really happy with their jobs, and B) there are currently many open positions for top-notch programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We were named #1 place to work in NYC by Crain's a few weeks ago; their main ranking methodology was an employee survey.  I'm the CTO and founder, if you'd like to apply for a job, mention that you saw my post here on stack exchange.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.zocdoc.com/public/hr/position.aspx?rid=25&quot; rel=&quot;nofollow&quot;&gt;http://www.zocdoc.com/public/hr/position.aspx?rid=25&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11638" LastEditorUserId="11638" LastEditorDisplayName="" LastEditDate="2010-12-27T07:21:34.333" LastActivityDate="2010-12-27T07:21:34.333" CommentCount="2" />
  <row Id="30214" PostTypeId="2" ParentId="30210" CreationDate="2010-12-27T07:19:45.297" Score="0" ViewCount="" Body="&lt;p&gt;I think, you are referring IDEs. Are you? There lot IDEs doing this, when the user makes mistakes on syntax of the language in use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ex : NetBeans, Eclipse, etc....&lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2010-12-27T07:19:45.297" CommentCount="1" />
  <row Id="30215" PostTypeId="2" ParentId="30210" CreationDate="2010-12-27T07:30:07.600" Score="22" ViewCount="" Body="&lt;p&gt;Sounds really dangerous.  If a compiler tries to infer your intent, infers it wrong, fixes the code, and then doesn't tell you (or tells you in some warning that you, like everyone, ignore), then you're about to run code that may seriously do some damage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A compiler like this is probably something that has very intentionally NOT been created.&lt;/p&gt;&#xA;" OwnerUserId="11638" LastActivityDate="2010-12-27T07:30:07.600" CommentCount="5" />
  <row Id="30216" PostTypeId="2" ParentId="30210" CreationDate="2010-12-27T07:39:55.323" Score="7" ViewCount="" Body="&lt;p&gt;It sounds to me that if a compiler could fix incorrect syntax, then that syntax should be documented in the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason for syntax errors is because a parser could not create the abstract syntax tree out of the program.  This happens when a token is out of place.  In order to guess where that token should be, if it should be removed, or if some other token should be added to fix the error you would need some sort of computer that can guess the intent of a programmer.  How could a machine guess that:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int x = 5 6;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Was supposed to be:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int x = 5 + 6;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It could just as easily be any of the following: &lt;code&gt;56&lt;/code&gt;, &lt;code&gt;5 - 6&lt;/code&gt;, &lt;code&gt;5 &amp;amp; 6&lt;/code&gt;.  There is no way for a compiler to know. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That technology doesn't exist yet.&lt;/p&gt;&#xA;" OwnerUserId="360" LastActivityDate="2010-12-27T07:39:55.323" CommentCount="2" />
  <row Id="30217" PostTypeId="2" ParentId="30210" CreationDate="2010-12-27T07:47:22.710" Score="4" ViewCount="" Body="&lt;p&gt;The first thing that comes to my mind is Javascript's &lt;a href=&quot;http://en.wikipedia.org/wiki/JavaScript_syntax#Whitespace_and_semicolons&quot; rel=&quot;nofollow&quot;&gt;automatic semi-colon insertion&lt;/a&gt;. A horrible, horrible feature that should never have made its way into the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's not to say that it couldn't have done a better job. If it looked ahead at the following the line, then it might be able to make a better guess as to the programmer's intention, but at the end of the day, if there's multiple valid ways the syntax &lt;em&gt;could have&lt;/em&gt; gone, then there's really no substitute for the programmer being explicit.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-27T07:47:22.710" CommentCount="1" />
  <row Id="30219" PostTypeId="2" ParentId="30096" CreationDate="2010-12-27T08:27:52.567" Score="0" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.xp-dev.com/&quot; rel=&quot;nofollow&quot; title=&quot;XP Dev&quot;&gt;Xp Dev&lt;/a&gt; for a private svn repository and it's good, no problems so far even with the free offer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suggest you to take a look at it, it could be your solution. &lt;/p&gt;&#xA;" OwnerUserId="10134" LastActivityDate="2010-12-27T08:27:52.567" />
  <row Id="30220" PostTypeId="2" ParentId="5460" CreationDate="2010-12-27T08:59:29.157" Score="0" ViewCount="" Body="&lt;p&gt;I'd learn everything rdf/sparql based.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-27T08:59:29.157" />
  <row Id="30221" PostTypeId="2" ParentId="30171" CreationDate="2010-12-27T09:06:13.710" Score="0" ViewCount="" Body="&lt;p&gt;I'd say go with what you like. If you - while coding - keep in mind that the app has to run on different systems and test early and often I bet you're going to be o.k.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't written any java in a long time „in the early days” porting wasn't always fun either. (i.e. 3D graphics come to mind...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you choose mono/.net you either need use windows.forms and do all your forms in windows (there is currently no windows.forms ui-editor in linux) or you could use gtk and have your windows-users install gtk first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally have (in 2 projects now) doubled the ui. Wpf for Windows, gtk for the rest...&lt;/p&gt;&#xA;" OwnerUserId="5466" LastActivityDate="2010-12-27T09:06:13.710" CommentCount="2" />
  <row Id="30222" PostTypeId="2" ParentId="30116" CreationDate="2010-12-27T09:06:56.837" Score="1" ViewCount="" Body="&lt;p&gt;I think there will be enough rooms for both: commercial &amp;amp; open source. The FOSS have great support from community, but it lacks the ability of direction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of technology revolution that I have seen rise to be an entrepreneur. Google, Facebook, Iphone, Ipad,... and they are all associated with some famous name, like Steve Jobs, Mark Zukernberg. The open source community is large, but divided. There are lots of distro for Linux, for example.&lt;/p&gt;&#xA;" OwnerUserId="9202" LastActivityDate="2010-12-27T09:06:56.837" />
  <row Id="30223" PostTypeId="1" AcceptedAnswerId="35220" CreationDate="2010-12-27T09:09:38.207" Score="10" ViewCount="382" Body="&lt;p&gt;Suppose that the original creators can't (or won't) enforce a license on their software/code, but that work is still popular.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess if you want to visualize it, I'll throw out a convoluted hypothetical:&lt;br&gt;&#xA;Imagine a very small group of developers that released a code project under an open-source license. The repository was hosted on their servers. However, everybody on the immediate development team passed away in a tragic accident or something. Their servers shut down after this happened. The project had a fairly large user base, and so others began to host the last revision on their own servers for others to download.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Yes, I have an active imagination)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does abiding by the license simply become a matter of morality by its users, or can there still exist a legal penalty when there is no one user or group to enforce it? Could anything be done if an unscrupulous user decided to branch off the project and use it under a different license?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not looking for legal advice -- I am simply curious about how software licenses work. I tend to think of strange situations and wonder what would happen in those scenarios.&lt;/p&gt;&#xA;" OwnerUserId="5624" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-27T14:45:11.337" LastActivityDate="2011-01-10T04:18:57.577" Title="Do licenses matter if there's nobody around to enforce them?" Tags="&lt;open-source&gt;&lt;legal&gt;&lt;license&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="1" />
  <row Id="30224" PostTypeId="2" ParentId="30096" CreationDate="2010-12-27T09:18:58.383" Score="2" ViewCount="" Body="&lt;p&gt;Why not create a &lt;a href=&quot;http://offers.assembla.com/free-subversion-hosting/&quot; rel=&quot;nofollow&quot;&gt;free account on Assembla&lt;/a&gt;? Its only limitation is that it offers 2 GB of space. Other than that, unlimited repositories and users, and can be as private or public as you want it to be. No transfer limits, and the download/upload speeds are quite fast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It fits all of your criteria (providing you don't need to host binary files -- if you do, then the storage might be a little lacking).&lt;/p&gt;&#xA;" OwnerUserId="5624" LastActivityDate="2010-12-27T09:18:58.383" />
  <row Id="30225" PostTypeId="2" ParentId="30171" CreationDate="2010-12-27T09:25:51.527" Score="1" ViewCount="" Body="&lt;p&gt;I think, if you care about native look-and-feel in Mac environment, you may go for mono with keeping the UI and the core loosely coupled. Because in mono you can achieve more native look-and-feel for different platforms using different mono based UI APIs like Cocoa#. But you have to spend more time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;May be Java also supports the APIs for different platforms. But the practice is not common I guess.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another point is, if using C# makes you more productive, go for mono.&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-12-27T09:25:51.527" CommentCount="2" />
  <row Id="30226" PostTypeId="2" ParentId="30223" CreationDate="2010-12-27T09:32:03.577" Score="4" ViewCount="" Body="&lt;p&gt;Software Licenses work on basis of FEAR. Suppose you alter the code which was not supposed to be changed and distribute it, no one is going to find that out easily and you are presumably safe BUT once you are found out it is going to cost you a few million dollars to settle the matter. &lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-12-27T09:32:03.577" />
  <row Id="30227" PostTypeId="2" ParentId="30223" CreationDate="2010-12-27T09:41:32.670" Score="1" ViewCount="" Body="&lt;p&gt;Once you start to sell your application there might be a little something in the contract saying that you 'own' the code you're selling. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not owning the code can have nasty side effects like a breach of contract.&lt;/p&gt;&#xA;" OwnerUserId="7416" LastActivityDate="2010-12-27T09:41:32.670" />
  <row Id="30228" PostTypeId="1" CreationDate="2010-12-27T09:55:01.950" Score="2" ViewCount="150" Body="&lt;p&gt;I know that there's already a question asking for your favorite programming language &lt;a href=&quot;http://programmers.stackexchange.com/questions/6847/whats-your-favorite-programming-language&quot;&gt;here&lt;/a&gt;. I'm curious though, what's your go-to language? The two can be very different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I love Haskell. I learned it this past semester and I fell in love with it's very concise solutions and awesome syntax (I love theoretical math so something like &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;fib = 1 : 1 : [ f | f &amp;lt;- zipWith (+) fibSeq (tail fibSeq)] &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;makes my inner mathematician and computer scientist jump with joy!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the majority of my projects for classes and jobs have been in C/C++ &amp;amp; Java. As a result, most of the time when I'm testing something like an algorithm or Data Structure I go straight to C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What about you guys? What languages do you love and why?&#xA;What about your go-to language? What language do you use most often to get things done for work or personal projects and why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How often does a language fall into both categories??&lt;/p&gt;&#xA;" OwnerUserId="11409" LastActivityDate="2010-12-28T14:41:43.663" ClosedDate="2010-12-27T14:56:54.913" Title="How often is your &quot;Go-To&quot; language the same as your favorite??" Tags="&lt;programming-languages&gt;&lt;productivity&gt;&lt;programming-practices&gt;&lt;favorite&gt;" AnswerCount="2" />
  <row Id="30229" PostTypeId="2" ParentId="12807" CreationDate="2010-12-27T09:57:50.010" Score="0" ViewCount="" Body="&lt;p&gt;One can develop this habit when do a lot of programming in WPF. It uses lots of bool? (nullable bool) variables to you have to write either &lt;code&gt;if (someBool == true)&lt;/code&gt; or &lt;code&gt;if (someBool ?? false)&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="11775" LastActivityDate="2010-12-27T09:57:50.010" CommunityOwnedDate="2010-12-27T09:57:50.010" />
  <row Id="30230" PostTypeId="1" CreationDate="2010-12-27T10:05:31.753" Score="1" ViewCount="96" Body="&lt;p&gt;Hi , I want to learn ASP.NET and C#.NET what books should i buy. &lt;/p&gt;&#xA;" OwnerUserId="11558" LastActivityDate="2010-12-27T12:58:52.060" Title="What books should i use to learn ASP.NET and C#.NET?" Tags="&lt;books&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="1" />
  <row Id="30231" PostTypeId="2" ParentId="30230" CreationDate="2010-12-27T10:20:04.207" Score="1" ViewCount="" Body="&lt;p&gt;This question has been asked many times on stackoverflow. Here's one of the questions with good answers:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/120514/best-book-to-learn-asp-net&quot;&gt;http://stackoverflow.com/questions/120514/best-book-to-learn-asp-net&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2010-12-27T10:20:04.207" />
  <row Id="30233" PostTypeId="2" ParentId="30223" CreationDate="2010-12-27T10:22:10.650" Score="7" ViewCount="" Body="&lt;p&gt;Do laws matter if there is no police around to enforce them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think &lt;a href=&quot;http://en.wikipedia.org/wiki/Copyright&quot; rel=&quot;nofollow&quot;&gt;copyright&lt;/a&gt; is a complex matter and varies from country to country. You &lt;em&gt;can&lt;/em&gt; pretend it's not there, but like any other offense it eventually might haunt you.&lt;/p&gt;&#xA;" OwnerUserId="552" LastActivityDate="2010-12-27T10:22:10.650" />
  <row Id="30234" PostTypeId="2" ParentId="30075" CreationDate="2010-12-27T10:23:48.807" Score="0" ViewCount="" Body="&lt;p&gt;Create a &lt;strong&gt;documentation&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It should be a User's Manual of your last work, but it's better if you write something technical documentation. Don't follow a genre (e.g. requirement specification) religiolusly, but also you may pick ideas from them. Some genres are designed to write them &lt;em&gt;before&lt;/em&gt; the coding, but I suggest you to write something about one of your already existing software. Documentation + Software = Product... you will have a Complete Product!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe, it's a good point on an interview, when they ask &quot;Can you describe one of your work?&quot;, you just pull out a small cute book and say &quot;Here you are&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't forget figures, images, pitures!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can write quality documentation, you've grown up. Don't think, it's an easy job, and don't even think that it's unimportant or unnecessary ballast!&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-12-27T10:23:48.807" />
  <row Id="30235" PostTypeId="1" AcceptedAnswerId="30276" CreationDate="2010-12-27T10:29:28.763" Score="1" ViewCount="77" Body="&lt;p&gt;If I have to buy a smartphone, I'll look for the following features:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Good UI&lt;/li&gt;&#xA;&lt;li&gt;Reminder System like &quot;Rememberthemilk.com&quot;&lt;/li&gt;&#xA;&lt;li&gt;GPS&lt;/li&gt;&#xA;&lt;li&gt;push mail&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Any other feature that would be very useful for a developer....&lt;/p&gt;&#xA;" OwnerUserId="1522" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-27T14:40:49.047" LastActivityDate="2010-12-27T14:40:49.047" ClosedDate="2010-12-28T13:18:41.057" Title="What are some features/specifications for a smartphone?" Tags="&lt;software-developer&gt;&lt;mobile&gt;&lt;features&gt;" AnswerCount="1" />
  <row Id="30236" PostTypeId="2" ParentId="30135" CreationDate="2010-12-27T10:30:31.327" Score="0" ViewCount="" Body="&lt;p&gt;Yep, sure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you wanna initiate a big flame, ask the folks, where they put the opening bracet in C-like languages. I mean&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void foo() {&#xA;  // blah&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;VS&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void foo()&#xA;{&#xA;  // blah&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or even VS&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void foo() &#xA;{ // blah&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And this is just the same language! Also, ask them about spaces, where they place them (function name and bracet, operators etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1000 answers are guaranteed!&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-12-27T10:30:31.327" CommentCount="1" />
  <row Id="30237" PostTypeId="2" ParentId="30223" CreationDate="2010-12-27T10:47:34.260" Score="1" ViewCount="" Body="&lt;p&gt;If someone finds out you have misappropriated the open source license, he might search for the legal successor of the original copyright owners and persuade them to sue you. Or buy the copyright from them and sue you himself. You are never completely safe.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-27T10:47:34.260" CommentCount="6" />
  <row Id="30239" PostTypeId="1" AcceptedAnswerId="30268" CreationDate="2010-12-27T11:10:02.790" Score="4" ViewCount="305" Body="&lt;p&gt;I had a friend of mine, we worked on a idea, now my friend is not interested in working with me and he is looking for someone else. However the idea was conceived by me. Can I shake off hands and go ahead on my own in launching the idea? Since I am very new to starup any advice from the community can help... &lt;/p&gt;&#xA;" OwnerUserId="8538" LastEditorUserId="8538" LastEditorDisplayName="" LastEditDate="2010-12-29T06:37:09.783" LastActivityDate="2011-05-10T15:51:03.007" ClosedDate="2010-12-29T20:32:24.950" Title="Disputes in startup" Tags="&lt;startups&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="30241" PostTypeId="2" ParentId="30223" CreationDate="2010-12-27T11:17:58.280" Score="6" ViewCount="" Body="&lt;p&gt;You want to bet your company on some licence not being enforced?&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-27T11:17:58.280" CommentCount="4" />
  <row Id="30242" PostTypeId="2" ParentId="30210" CreationDate="2010-12-27T11:19:27.657" Score="12" ViewCount="" Body="&lt;p&gt;In some sense, the act of compiling &lt;em&gt;is&lt;/em&gt; inferring what certain syntax is meant to do, and hence a syntax error is when the compiler isn't able to figure it out. You can add more &quot;guessing&quot; to have the compiler infer further things and be more flexible with the syntax, but it must do this inferring by a specific set of rules. &lt;strong&gt;And those rules then become a part of the language, and is no longer errors.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, no, there are no such compilers, really, because the question doesn't make sense. Guessing what syntax errors are meant to do according to some set of rules just becomes a part of the syntax. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In that sense, there is a good example of a compiler that does this: Any C compiler. They will often just print out a warning of something that isn't like it should be, and then assume you meant X, and go on. This is in fact &quot;guessing&quot; of unclear code (although it's mostly not syntax per se), something that just as well could have stopped compilation with an error, and therefore qualify as an error.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastEditorUserId="9529" LastEditorDisplayName="" LastEditDate="2010-12-27T11:25:13.717" LastActivityDate="2010-12-27T11:25:13.717" CommentCount="5" />
  <row Id="30244" PostTypeId="2" ParentId="30228" CreationDate="2010-12-27T11:30:57.453" Score="2" ViewCount="" Body="&lt;p&gt;How often? &lt;strong&gt;Always!&lt;/strong&gt; Which is it? In my case Python, but YMMV.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastEditorUserId="9529" LastEditorDisplayName="" LastEditDate="2010-12-28T14:41:43.663" LastActivityDate="2010-12-28T14:41:43.663" />
  <row Id="30245" PostTypeId="1" CreationDate="2010-12-27T11:31:26.283" Score="6" ViewCount="478" Body="&lt;p&gt;I have never read any of them but I find their style interesting and unique.  I am not sure if they are worth giving money/time?&lt;/p&gt;&#xA;" OwnerUserId="5540" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-27T14:37:18.083" LastActivityDate="2011-02-26T05:18:23.843" Title="How are Head First Books?" Tags="&lt;books&gt;" AnswerCount="10" CommentCount="1" />
  <row Id="30246" PostTypeId="2" ParentId="30171" CreationDate="2010-12-27T11:36:14.103" Score="0" ViewCount="" Body="&lt;p&gt;Obviously Java does have some multiplaftorm capabilities, where .Net/Mono is risible.  You can say C is portable too, and you'd be roughly as right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's desktop applications, I'd just do it in Qt.  By far the best GUI framework out there, and &lt;em&gt;really&lt;/em&gt; multiplaftorm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For non-desktop, a good scripting language is usually the way to go.&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-12-27T11:36:14.103" CommentCount="3" />
  <row Id="30247" PostTypeId="2" ParentId="30209" CreationDate="2010-12-27T11:39:33.730" Score="0" ViewCount="" Body="&lt;p&gt;It's common in the Plone world, where several companies do so, like &lt;a href=&quot;http://www.jarn.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.jarn.com/&lt;/a&gt;, and my company, &lt;a href=&quot;http://colliberty.com/&quot; rel=&quot;nofollow&quot;&gt;http://colliberty.com/&lt;/a&gt;. I know there are more of them, but I don't know which ones. It's probably not unusual in the open source world in general.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-27T11:39:33.730" />
  <row Id="30248" PostTypeId="2" ParentId="30245" CreationDate="2010-12-27T11:43:26.847" Score="12" ViewCount="" Body="&lt;p&gt;I love them. I have three of them, and enjoyed them all despite the fact they are from different authors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;strong&gt;imposed structure&lt;/strong&gt; is ideal for me as I tend to understand things better when I have &lt;strong&gt;drawings&lt;/strong&gt; and &lt;strong&gt;exercises&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/79RU7.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They also have the huge advantage to use humor a lot, which make learning &lt;strong&gt;fun&lt;/strong&gt;!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/9DYBc.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plain text doesn't work well with me. If you are in the same case, you'll love them.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-27T15:34:42.460" LastActivityDate="2010-12-27T15:34:42.460" CommentCount="5" />
  <row Id="30249" PostTypeId="2" ParentId="30245" CreationDate="2010-12-27T11:44:33.847" Score="1" ViewCount="" Body="&lt;p&gt;Yes -- buy one, they are excellent.  I read the Head First Design Patterns book, and I found it to be helpful with examples I could understand.  I also didn't get bored because of the fun style.  I recommended Head First Javascript to a friend, and she has also found it to be a great book.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-27T11:44:33.847" />
  <row Id="30250" PostTypeId="2" ParentId="30096" CreationDate="2010-12-27T11:45:23.583" Score="0" ViewCount="" Body="&lt;p&gt;I've used &lt;a href=&quot;http://repositoryhosting.com&quot; rel=&quot;nofollow&quot;&gt;RepositoryHosting.com&lt;/a&gt;.  Just US$6/month for unlimited Trac instances with SVN/Git/Hg hosting.  simple, cheap, effective.&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-12-27T11:45:23.583" />
  <row Id="30251" PostTypeId="2" ParentId="29839" CreationDate="2010-12-27T11:52:32.280" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Run away.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, the companies that I've seen use function points are only one step above pure madness.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-27T11:52:32.280" />
  <row Id="30252" PostTypeId="2" ParentId="30223" CreationDate="2010-12-27T11:56:56.527" Score="5" ViewCount="" Body="&lt;p&gt;In the case you describe, intellectual property owners are the direct descendant(s) of the deceased developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Intellectual property owners will usually sue unauthorized parties:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;If there is a &lt;code&gt;strategic&lt;/code&gt; reason to do it (usually for big corporations)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If the other party is able to &lt;code&gt;pay&lt;/code&gt; a judgement/settlement&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;As a matter of &lt;code&gt;principle&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;To &lt;code&gt;annoy&lt;/code&gt; or &lt;code&gt;destroy&lt;/code&gt; them&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Pick one or more reason!&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My lawyer always told me:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;if you leave other party without being sued you train them to do it again.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I think it's pretty good advice.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="149" LastEditorDisplayName="" LastEditDate="2011-01-10T04:18:57.577" LastActivityDate="2011-01-10T04:18:57.577" />
  <row Id="30253" PostTypeId="2" ParentId="408" CreationDate="2010-12-27T11:58:07.277" Score="1" ViewCount="" Body="&lt;p&gt;And as always: Know your library!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For most problems, there essential functions are already in the shipped libs. Of course you have to choose a non-verbose language for this or the imports of the needed functions will get longer than a short inline definition.&lt;/p&gt;&#xA;" OwnerUserId="11779" LastActivityDate="2010-12-27T11:58:07.277" />
  <row Id="30254" PostTypeId="1" CreationDate="2010-12-27T11:58:20.420" Score="11" ViewCount="743" Body="&lt;p&gt;These days, so many languages are garbage collected. It is even available for C++ by third parties. But C++ has RAII and smart pointers. So what's the point of using garbage collection? Is it doing something extra?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And in other languages like C#, if all the references are treated as smart pointers(keeping RAII aside), by specification and by implementation, will there still be any need of garbage collectors? If no, then why is this not so?&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-27T14:36:29.410" LastActivityDate="2011-02-24T04:27:48.300" Title="Why Garbage Collection if smart pointers are there" Tags="&lt;garbage-collection&gt;&lt;smart-pointer&gt;" AnswerCount="9" CommentCount="3" FavoriteCount="2" />
  <row Id="30255" PostTypeId="1" AcceptedAnswerId="30275" CreationDate="2010-12-27T12:20:46.813" Score="7" ViewCount="228" Body="&lt;p&gt;&lt;strong&gt;Context&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Working as a freelance developer, I often made websites completely based on XSLT. In other words, on &lt;em&gt;every&lt;/em&gt; request, an XML file is generated, containing everything we need to know about the page content: the name of the user currently logged in, the top menu entries, if this menu is dynamic/configurable, the text to display in a specific area of the page, etc. Then XSL process (caches, etc.) it to HTML/XHTML page to send to the browser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has a good point to make it easier to create small-scale websites, especially with PHP. It is a sort of template engine, but which I prefer to other template engines because it's much more powerful than most of template engines, and because I know it better and like it. It is also possible, when need, to give an access to raw XML data on demand for an automated access, without the need to create separate APIs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, it will fail completely on any medium-scale or large-scale website, since, even with good caching techniques, XSL still degrades overall website performance and requires more CPU serverside.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Question&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Modern browsers have the ability to take an XML file and to transform it with an associated XSL file declared in XML like &lt;code&gt;&amp;lt;?xml-stylesheet href=&quot;demo.xslt&quot; type=&quot;text/xsl&quot;?&amp;gt;&lt;/code&gt;. Firefox 3 can do it. Internet Explorer 8 can do it too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It means that it is possible to migrate XSL processing from the server to the client side for 50% of users (according on browser statistics on several websites where I may want to implement this). It means that those 50% of users will receive only the XML file at each request, thus reducing their and server's bandwidth (XML file being much shorter than its processed HTML analog), and reducing server's CPU usage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the drawbacks of this technique?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I thought about several ones, but it doesn't apply in this situation:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Difficult implementation and the need to choose, based on the browser request, when to send raw XML and when to transform it to HTML instead. Obviously, the system will not be much more difficult then the actual one. The only change to make is to add XSL file link to every XML, and to add a browser check.&lt;/li&gt;&#xA;&lt;li&gt;More IO and bandwidth usage, since the XSLT file will be downloaded by the browsers, instead of being cached by the server. I don't think it will be a problem, since XSLT file will be cached by the browsers (like images, or CSS, or JavaScript files are cached actually).&lt;/li&gt;&#xA;&lt;li&gt;Possibly some problems on client side, like maybe problems when saving a page in some browsers.&lt;/li&gt;&#xA;&lt;li&gt;Difficulty to debug code: it is impossible to obtain an HTML source the browser is actually using, since the only displayed source is the downloaded XML. On the other hand, I rarely go look at HTML code on client side, and in most cases, it is unusable directly (whitespace being removed).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6605" LastActivityDate="2010-12-27T15:16:57.067" Title="What are the drawbacks of sending XML to browsers and let them apply XSLT?" Tags="&lt;web-development&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="1" />
  <row Id="30256" PostTypeId="2" ParentId="30254" CreationDate="2010-12-27T12:24:12.290" Score="19" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Garbage collection&lt;/strong&gt; basically just means that your allocated objects are automatically released when they're not being referenced any more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More accurately, they're released when they become &lt;em&gt;unreachable&lt;/em&gt; for the program, as circularly referenced objects would never get released otherwise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Smart pointers&lt;/strong&gt; just refer to any structure that &lt;em&gt;behaves&lt;/em&gt; like an ordinary pointer but has some extra functionality attached. These &lt;strong&gt;include&lt;/strong&gt; but are not limited to deallocation, but also copy-on-write, bound checks, ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, as you have stated, smart pointers &lt;em&gt;can be used&lt;/em&gt; to implement a form of garbage collection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the train of thought goes the following way:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Garbage collection is a cool thing to have, as it's convenient and I have to take care of fewer things &lt;/li&gt;&#xA;&lt;li&gt;Therefore: I want garbage collection in my language&lt;/li&gt;&#xA;&lt;li&gt;Now, how can get GC into my language?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Of course, you can design it like this from start. C# was &lt;em&gt;designed&lt;/em&gt; to be garbage collected, so just &lt;code&gt;new&lt;/code&gt; your object and it'll be released when the references fall out of scope. How this is done is up to the compiler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in C++, there was no garbage collection intended. If we allocate some pointer &lt;code&gt;int* p = new int;&lt;/code&gt; and it falls out of scope, &lt;code&gt;p&lt;/code&gt; itself is removed from the stack, but nobody takes care of the allocated memory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now the only thing you have from start are &lt;em&gt;deterministic destructors&lt;/em&gt;. When an object leaves the scope it has been created in, its destructor is called. In combination with templates and operator overloading, you can design a wrapper object that behaves like a pointer, but uses destructor functionality to clean up resources attached to it (RAII). You call this one a &lt;em&gt;smart pointer&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is all highly C++ specific: Operator overloading, templates, destructors, ... In this particular language situation, you have developed smart pointers to provide you with the GC you want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you design a language with GC from start, this is merely an implementation detail. You just say object will be cleaned up and the compiler will do this for you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Smart pointers like in C++ wouldn't probably be even possible in languages like C#'s, which have no deterministic destruction at all (C# works around this by providing syntactic sugar for calling a &lt;code&gt;.Dispose()&lt;/code&gt; on certain objects). Unreferenced resources will &lt;em&gt;finally&lt;/em&gt; be reclaimed by the GC, but it undefined when exactly this will happen. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And this, in turn, can allow the GC to do its work more efficient. Being built in deeper into the language than smart pointers, which are set on top of it, the .NET GC can e.g. delay memory operations and perform them in blocks to make them cheaper or even &lt;em&gt;move&lt;/em&gt; memory around for increasing efficiency based on how often objects are accessed.&lt;/p&gt;&#xA;" OwnerUserId="11506" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-02-24T04:27:48.300" LastActivityDate="2011-02-24T04:27:48.300" CommentCount="9" />
  <row Id="30257" PostTypeId="2" ParentId="30245" CreationDate="2010-12-27T12:32:14.477" Score="1" ViewCount="" Body="&lt;p&gt;I've never used them, but my brother swears by them. He thinks the balance of learning by explanation and learning by example is just right. &lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-27T12:32:14.477" />
  <row Id="30258" PostTypeId="2" ParentId="30255" CreationDate="2010-12-27T12:33:06.880" Score="2" ViewCount="" Body="&lt;p&gt;Sending compact XML and having a cached XSLT on client may even save your bandwidth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You leave out any browsers that don't support XSLT, like smartphones. But you should create a speialized version for these anyway.&lt;/p&gt;&#xA;" OwnerUserId="11732" LastActivityDate="2010-12-27T12:33:06.880" CommentCount="2" />
  <row Id="30259" PostTypeId="2" ParentId="30245" CreationDate="2010-12-27T12:35:56.893" Score="2" ViewCount="" Body="&lt;p&gt;They are great, you can definitely start a new topic with those books without any pre-knowledge on those topics, But, If you are already familier about those topics, then sometimes, you will feel a slow learning. Simple, for beginners, those are great! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've read, Head First SQL, Head First Servlet and JSP, Head First EJB(3) without any prior knowledge on those topics, I've a nice explanation from there.&lt;/p&gt;&#xA;" OwnerUserId="10935" LastEditorUserId="10935" LastEditorDisplayName="" LastEditDate="2010-12-27T12:45:22.250" LastActivityDate="2010-12-27T12:45:22.250" />
  <row Id="30260" PostTypeId="1" CreationDate="2010-12-27T12:40:09.183" Score="5" ViewCount="208" Body="&lt;p&gt;I got an old PC for free, similar to &lt;a href=&quot;http://www.mp3car.com/vbulletin/attachments/classified-archive/9969d1109730446-fs-hp-epc-42-p4-carputer-31_1_b.jpg&quot; rel=&quot;nofollow&quot;&gt;that&lt;/a&gt; one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionlly, I'm a hobbyist programmer who does mainly python and java under a linux (mostly ubuntu) development environment. And now I wonder what I could do with such a piece of crappy hardware and would be pleased to get a good answer. It's one thing if you code your app that could run on almost any pc (or webbrowser) but another if you got an own hardware platform which you could extend or more generally customize the way you like.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I would like to hear from you: Are you in a similar situation? Have you already done a project like that? What would be your ideas?&lt;/p&gt;&#xA;" OwnerUserId="583" LastActivityDate="2010-12-27T14:41:31.637" ClosedDate="2010-12-27T14:55:34.507" Title="Any idea of what to do with an old PC?" Tags="&lt;java&gt;&lt;python&gt;&lt;linux&gt;&lt;personal-projects&gt;" AnswerCount="7" />
  <row Id="30261" PostTypeId="2" ParentId="30255" CreationDate="2010-12-27T12:40:13.363" Score="1" ViewCount="" Body="&lt;p&gt;The primary problem used to be that only a few browsers supported this well, so it was not worth the trouble essentially creating a new platform to support.   Additionally older versions of IE did not support this well, and if I recall correctly at least one IE had a different XSLT dialect giving all sorts of fun problems.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-27T12:40:13.363" CommentCount="2" />
  <row Id="30262" PostTypeId="2" ParentId="30228" CreationDate="2010-12-27T12:40:40.913" Score="2" ViewCount="" Body="&lt;p&gt;My current employer doesn't believe in Perl, so.... Never.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-27T12:40:40.913" />
  <row Id="30263" PostTypeId="2" ParentId="30254" CreationDate="2010-12-27T12:40:49.690" Score="1" ViewCount="" Body="&lt;p&gt;Number one limitation of smart pointers is they don't always help against circular references. For example you have object A storing a smart pointer to object B and object B is storing a smart pointer to object A. If they are left together without resetting either of the pointers they won't ever be deallocated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This happens because a smart pointer has to perform a specific action which won't be triigered in the above scenario because both objects are unreacheable to the program. Garbage collection will cope - it will properly identify that objects are not reachecable to the program and they will be collected.&lt;/p&gt;&#xA;" OwnerUserId="587" LastActivityDate="2010-12-27T12:40:49.690" />
  <row Id="30264" PostTypeId="2" ParentId="30116" CreationDate="2010-12-27T12:41:16.467" Score="0" ViewCount="" Body="&lt;p&gt;I think the answer can be found in terms of making a copy of your DVDs so you can watch them on your portable device of choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You &lt;em&gt;can&lt;/em&gt; do this with open source software - mostly - but obtaining same and the instructions for use can tax the patience and the grey cells of someone who theoretically is both competent and comfortable with the technology. This before you try and work out what all the settings mean...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or you can pay a small amount of money for a commercial piece of software that more or less reduces the exercise to: 1) Load Disk 2) Click.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most people want stuff that &quot;just works&quot; and continues to do so - they've no more interest in how it works than in how an internal combustion engine functions or why planes stay up - just so long as it does.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2010-12-27T12:41:16.467" />
  <row Id="30265" PostTypeId="2" ParentId="30254" CreationDate="2010-12-27T12:45:52.527" Score="1" ViewCount="" Body="&lt;p&gt;Most smart pointers are implemented using reference counting. That is, each smart pointer that refers to an object increments the objects reference count. When that count goes to zero, the object is released.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem there is if you have circular references. That is, A has a reference to B, B has a reference to C and C has a reference to A. If you're using smart pointers, then in order to free the memory associated with A, B &amp;amp; C you need to manually get in there an &quot;break&quot; the circular reference (e.g. using &lt;code&gt;weak_ptr&lt;/code&gt; in C++).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Garbage collection (typically) works quite differently. Most garbage collectors these days use a &lt;em&gt;reachability test&lt;/em&gt;. That is, it looks at all of the references on the stack and the ones that are globally accessible and then traces every object that those references refer to, and objects &lt;em&gt;they&lt;/em&gt; refer to, etc. Everything else is garbage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In that way, circular references don't matter any more - as long as neither A, B and C are &lt;em&gt;reachable&lt;/em&gt;, the memory can be reclaimed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are other advantages to &quot;real&quot; garbage collection. For example, memory allocation is extremely cheap: just increment the pointer to the &quot;end&quot; of the memory block. Deallocation has a constant amortized cost as well. But of course languages like C++ allow you to implement memory management pretty much any way you like, so you could come up with an allocation strategy that's even faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, in C++ the amount of heap-allocated memory is typically less than a reference-heavy language like C#/.NET. But that's not really a garbage-collection vs. smart pointers issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case, the issue isn't cut-and-dry one is better than the other. They each have advantages and disadvantages.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-27T12:45:52.527" />
  <row Id="30266" PostTypeId="2" ParentId="30260" CreationDate="2010-12-27T12:46:33.547" Score="6" ViewCount="" Body="&lt;p&gt;I'd use a spare machine for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;source control server for which ever VCS you use&lt;/li&gt;&#xA;&lt;li&gt;test bed for any client-server applications you might write&lt;/li&gt;&#xA;&lt;li&gt;media/file server&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you're interested in kernel development having a machine that isn't used for anything else is useful as well as you can wipe it if you kill it.&lt;/p&gt;&#xA;" OwnerUserId="10449" LastActivityDate="2010-12-27T12:46:33.547" CommentCount="2" />
  <row Id="30267" PostTypeId="2" ParentId="30254" CreationDate="2010-12-27T12:51:53.753" Score="3" ViewCount="" Body="&lt;p&gt;There are two big differences, to my mind, between garbage collection and smart pointers as used for memory management:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Smart pointers can't collect cyclic garbage; garbage collection can&lt;/li&gt;&#xA;&lt;li&gt;Smart pointers do all the work at the moments of referencing, dereferencing, and deallocation, on the application thread; garbage collection need not&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The former means that GC will collect garbage that smart pointers won't; if you're using smart pointers, you have to avoid creating this kind of garbage, or be prepared to deal with it manually.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The latter means that no matter how smart smart pointers are, their operation will slow down the working threads in your program. Garbage collection can defer work, and move it to other threads; that lets it be more efficient overall (indeed, the runtime cost of a modern GC is less than a normal malloc/free system, even without the extra overhead of smart pointers), and do what work it still needs to do without getting in the way of the application threads.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, note that smart pointers, being programmatic constructs, can be used to do all sorts of other interesting things - see Dario's answer - which are completely outside the scope of garbage collection. If you want to do those, you will need smart pointers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, for the purposes of memory management, i don't see any prospect of smart pointers replacing garbage collection. They simply aren't as good at it.&lt;/p&gt;&#xA;" OwnerUserId="854" LastEditorUserId="854" LastEditorDisplayName="" LastEditDate="2010-12-27T13:56:34.187" LastActivityDate="2010-12-27T13:56:34.187" CommentCount="17" />
  <row Id="30268" PostTypeId="2" ParentId="30239" CreationDate="2010-12-27T12:54:08.110" Score="17" ViewCount="" Body="&lt;p&gt;An idea is worth nothing. Again: &lt;em&gt;nothing&lt;/em&gt;. A well-executed idea is worth something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless the idea is patented, of course. But patent litigation is a way to oblivion unless you have really large coffers: even a successful process will probably cost something to the tune of $1m. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being deeply original is not really important for success, either. Flickr did not invent photo hosting. Facebook did not invent social networks. Google did not invent context ads, or web search, or even the ranking mechanism. It's the execution that mattered. Implement an obvious idea brilliantly, and you'll be famous.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, go ahead and implement your idea. Show people how it works, get your first thousand of customers. And don't care much about people pursuing the same idea — just implement it better than them.&lt;/p&gt;&#xA;" OwnerUserId="11732" LastEditorUserId="11732" LastEditorDisplayName="" LastEditDate="2011-05-10T15:51:03.007" LastActivityDate="2011-05-10T15:51:03.007" CommentCount="3" />
  <row Id="30269" PostTypeId="2" ParentId="30230" CreationDate="2010-12-27T12:58:52.060" Score="0" ViewCount="" Body="&lt;p&gt;For C#, Head First C#. My recommendation!&lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2010-12-27T12:58:52.060" />
  <row Id="30270" PostTypeId="2" ParentId="30260" CreationDate="2010-12-27T13:01:32.317" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Dispose it.&lt;/strong&gt; There are some tasks you could use it for, but then, your new PC could do the same things on the side. Many of us have a collection of outdated PCs, but they just waste space; and also energy, should you ever switch them on (a rather unlikely event).&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-27T13:01:32.317" CommentCount="1" />
  <row Id="30272" PostTypeId="2" ParentId="30260" CreationDate="2010-12-27T13:07:48.097" Score="5" ViewCount="" Body="&lt;p&gt;If the hardware still works, install some suitable version of Linux on it, and give it to someone who would benefit from it.&lt;/p&gt;&#xA;" OwnerUserId="11222" LastActivityDate="2010-12-27T13:07:48.097" CommentCount="1" />
  <row Id="30274" PostTypeId="2" ParentId="30254" CreationDate="2010-12-27T13:13:21.790" Score="0" ViewCount="" Body="&lt;p&gt;Please remember that in the end, everything boils down to a CPU executing instructions.   To my knowledge all consumer grade CPUs have instruction sets which require you to have data stored in a given place in memory and you have pointers to said data.  That's all that you have at the basic level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everything on top of that with garbage collection, references to data which may have been moved, heap compaction, etc. etc. is doing the work within the restrictions given by the above &quot;memory chunk with an address pointer&quot; paradigm.  Same thing with smart pointers -  you STILL have to make the code run on actual hardware.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-27T13:13:21.790" />
  <row Id="30275" PostTypeId="2" ParentId="30255" CreationDate="2010-12-27T13:17:59.883" Score="16" ViewCount="" Body="&lt;h3&gt;Browsers can't progressively render XSLT&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;This means that &lt;em&gt;nothing&lt;/em&gt; else loads and nothing is displayed until all data and whole stylesheet is loaded and processed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're missing out on progressive rendering, early fetching of CSS &amp;amp; JS.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Initial load is delayed by another request&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;For small-ish files (&amp;lt;20kb) &lt;em&gt;number of requests, not bandwidth, is the bottleneck&lt;/em&gt; for front-end performance, and most pages and stylesheets will fall into this category. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have large pages, then it's even worse — see first point.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;You probably aren't saving any bandwidth&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;XSLT itself is quite verbose and might need to contain templates for whole site and logic for all rare cases, not only things used on current page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You still have to include all data with some markup in the main XML file you're sending, e.g. if you're sending a blog post, then there's no magic that XSLT can do to make it substantially smaller. If you're sending complex data, then it'll have lots of markup anyway.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Caches are overrated&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Browser caches are &lt;a href=&quot;http://yuiblog.com/blog/2007/01/04/performance-research-part-2/&quot; rel=&quot;nofollow&quot;&gt;not that great&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;40-60% of Yahoo!’s users have an empty cache experience and ~20% of all page views are done with an empty cache.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;and on mobiles, where latency makes extra requests most expensive, &lt;a href=&quot;http://www.yuiblog.com/blog/2010/07/12/mobile-browser-cache-limits-revisited/&quot; rel=&quot;nofollow&quot;&gt;caches are even worse&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check your bounce rate — those are users who don't benefit from cached XSLT, and even pay extra price to download stylesheet and wait for it to be processed.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;&lt;code&gt;gzip&lt;/code&gt; is a reverse XSLT&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Most transformations done via XSLT come down to changing terse markup to more verbose one and adding repetition. But gzip is great at removing repetition/redundancy from files!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should be using gzip anyway (it's crazy to send XML uncompressed). It's very likely that gzipped size of processed document will be about the same as gzipped size of unprocessed XML — but you won't have to send extra XSLT, and browsers will be able to start rendering as soon as first packets arrive.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Client might be slow&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Even assuming best case of loading from cache, XSLT processing on client-side is faster only if user's CPU is faster, and his XSLT engine is faster. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On server-side you can do all kinds of optimisation tricks (e.g., cache processed fragments or even whole pages). You can use latest, fastest XSLT processor (browsers have only XSLT 1.0 and likely not very optimized). And your server probably has beefier CPU than many cheap office computers, mobiles, etc.&lt;/p&gt;&#xA;" OwnerUserId="11746" LastEditorUserId="11746" LastEditorDisplayName="" LastEditDate="2010-12-27T13:45:15.090" LastActivityDate="2010-12-27T13:45:15.090" CommentCount="2" />
  <row Id="30276" PostTypeId="2" ParentId="30235" CreationDate="2010-12-27T13:20:43.937" Score="1" ViewCount="" Body="&lt;p&gt;Get any decent Android-based device and you're all set. It's not as polished as iPhone but is much more open.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be sure to get an Andoid 2.x based device.&lt;/p&gt;&#xA;" OwnerUserId="11732" LastActivityDate="2010-12-27T13:20:43.937" />
  <row Id="30277" PostTypeId="2" ParentId="30239" CreationDate="2010-12-27T13:23:41.390" Score="3" ViewCount="" Body="&lt;p&gt;Please, just don't be another Winklevoss twin...&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-27T13:23:41.390" CommentCount="1" />
  <row Id="30278" PostTypeId="2" ParentId="30201" CreationDate="2010-12-27T13:31:26.293" Score="0" ViewCount="" Body="&lt;p&gt;1) Good UI design connects psychology, print media concepts, typography, neuroscience, biology and arts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Linguistic concepts (grammars, languages, ...) have been adopted and formalized by mathematics and CS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) Heuristics heavily borrow concepts from different sciences&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Genetic algorithms: Biology&lt;/li&gt;&#xA;&lt;li&gt;Simulated annealing: Forging, physics&lt;/li&gt;&#xA;&lt;li&gt;Ant-colony optimization: Biology&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11506" LastActivityDate="2010-12-27T13:31:26.293" />
  <row Id="30279" PostTypeId="2" ParentId="30260" CreationDate="2010-12-27T13:38:45.857" Score="0" ViewCount="" Body="&lt;p&gt;bring new PC and do some experiment on old PC&lt;/p&gt;&#xA;" OwnerUserId="11313" LastActivityDate="2010-12-27T13:38:45.857" />
  <row Id="30280" PostTypeId="2" ParentId="12528" CreationDate="2010-12-27T13:43:16.960" Score="1" ViewCount="" Body="&lt;p&gt;To be honest, I don't see why the management team of a company would have problems with using such an &quot;available source&quot; library. As far as integration into their own product is concerned, they can just regard it as a closed-source library.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, as a programmer, it does not matter if a library is &quot;open source&quot; or &quot;available source&quot;. I prefer not to make local modifications to an external library, because that means an additional maintenance burden. Not only when bugs are found in my local modifications, but also on integrating the modifications again and again when a new release of the library comes out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only situations where, IMHO, &quot;open source&quot; beats the &quot;available source&quot; licence outlined in the question is when&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the licence of our product also requires disclosure of the sources of contained libraries&lt;/li&gt;&#xA;&lt;li&gt;we are in the business of producing an enhanced/extended version of the library&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5099" LastActivityDate="2010-12-27T13:43:16.960" />
  <row Id="30281" PostTypeId="2" ParentId="30260" CreationDate="2010-12-27T13:45:48.210" Score="1" ViewCount="" Body="&lt;p&gt;Learn linux server administration. Nothing teaches you linux like only having access via secure shell.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-27T13:45:48.210" CommentCount="2" />
  <row Id="30282" PostTypeId="2" ParentId="30116" CreationDate="2010-12-27T13:47:37.313" Score="0" ViewCount="" Body="&lt;p&gt;It's good to remember that there are lots of different markets out there. Most coarsely: the individual consumers, and the others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Commercial solutions are indeed having hard times in the dozenware consumer field. Widely interesting field == lots of open source developers == lots of competition == lots of high-quality free alternatives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This would already be hard enough to compete against without the additional fact that consumers are extremely price-aware. Even if you ask just $1 for your product, it's too much if someone offers an equivalent product for free. You can only try to compete with some additional services, support and such. The profit margins will be ridiculously small. It's not fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then there's &lt;a href=&quot;http://en.wikipedia.org/wiki/Long_Tail&quot; rel=&quot;nofollow&quot;&gt;the long tail&lt;/a&gt;: specialized niche products. There's way less open source / free competition in fields that are interesting for just a tiny fraction of people, and therefore some money can be made there, even if the markets are much smaller. Need some software for controlling your space shuttle or candy factory? Good luck with finding a free, OS solution! Besides, someone who has a space shuttle hardly needs to think about saving some pennies in software development.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2010-12-27T14:47:01.007" LastActivityDate="2010-12-27T14:47:01.007" />
  <row Id="30283" PostTypeId="2" ParentId="30245" CreationDate="2010-12-27T13:50:50.717" Score="9" ViewCount="" Body="&lt;p&gt;There are two extreme opinions about Head First: The first is that they're awful, and the other is that they're excellent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally think they're awful because their explanations are way too long and very off topic most of the time. They're big books with not so much content. They feel like books for kids (or childish adults).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people (most people I think) love those books because they're very easy to read and it's almost impossible not to understand their explanations. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Head First books are good only if you're a beginner. They cannot be used as reference books. They're written for people who know absolutely nothing about the topic. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that there are many Head First books and many Head First authors. The most famous ones are &quot;Head First Design Patterns&quot; and &quot;Head First Java&quot;. And they also have books which aren't related to programming (about physics and statistics). So you cannot really say anything about the whole &quot;Head First&quot; series. The only &quot;Head First&quot; books I'v tried reading are &quot;Head First Design Patterns&quot;, &quot;Head First iPhone Development&quot; and &quot;Head First Servlets &amp;amp; JSPs&quot;. I didn't like them (found their explanations, metaphors and jokes annoying) but I know about people who did like them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a list of all their books: &lt;a href=&quot;http://oreilly.com/store/series/headfirst.html&quot; rel=&quot;nofollow&quot;&gt;http://oreilly.com/store/series/headfirst.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some opinions about &quot;Head First Design Patterns&quot;: &lt;a href=&quot;http://stackoverflow.com/questions/386087/head-first-design-patterns-opinions-wanted&quot;&gt;http://stackoverflow.com/questions/386087/head-first-design-patterns-opinions-wanted&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11249" LastEditorUserId="11249" LastEditorDisplayName="" LastEditDate="2010-12-27T14:06:36.517" LastActivityDate="2010-12-27T14:06:36.517" CommentCount="1" />
  <row Id="30285" PostTypeId="2" ParentId="12528" CreationDate="2010-12-27T13:57:30.067" Score="0" ViewCount="" Body="&lt;p&gt;This is why the Free Software Foundation uses the terms &lt;a href=&quot;http://www.gnu.org/philosophy/free-sw.html&quot; rel=&quot;nofollow&quot;&gt;'free' or 'non-free'&lt;/a&gt; to describe software. They are not referring to price, but restrictions that are placed on use or distribution of the software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It looks like you have hit one of the rare corner cases where you have full access to the source code of something, but the software is not &quot;Open Source&quot; by the &lt;a href=&quot;http://www.opensource.org/osd.html&quot; rel=&quot;nofollow&quot;&gt;OSI definition&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either term has the capacity to become a misnomer. I paid $50 for my first copy of emacs (on QIC tape), but emacs is &lt;em&gt;free software&lt;/em&gt;. I have the source code to some proprietary applications that my company uses internally, but they are not open source.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing that raises the biggest red flag (at least to me) is no guarantee to access to the source code of future versions. If you heavily depend on being able to modify this tool, I'd be careful. Even if you have  verbal agreement with the vendor that you'll always have code, unless it's in contract form .. that agreement never happened.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As CTO, I try my best to ensure that we do &lt;em&gt;not&lt;/em&gt; depend on non-free software. I've been on the bad end of vendor lock in several times in the past, a mistake that I like to avoid. While we do use some proprietary stuff, our business would not suffer undue hardship if all of a sudden we could not use it any longer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It sounds to me like you are building stuff around having this software and access to the code, so I'd recommend getting something in writing that says you'll &lt;em&gt;always&lt;/em&gt; have access. What happens if the vendor is purchased?&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-27T13:57:30.067" />
  <row Id="30286" PostTypeId="2" ParentId="30101" CreationDate="2010-12-27T14:06:21.603" Score="7" ViewCount="" Body="&lt;p&gt;PHP as a language definitely can have it, but I think the problem is with compatibility with existing programs. Unicode support can break them in subtle ways, which is the most annoying kind of bug to have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently most string-processing functions in PHP are &quot;binary-safe&quot;, which means you can use them to process any file in any encoding and binary formats like image data, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With addition of Unicode strings you'd have to be very careful not to mix Unicode strings with binary strings (pretty hard when your strings come from different sources and you never had to worry about it before). And you couldn't be ignorant about encodings any more (and lots of scripts are ignorant about this!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another hard, but solvable problem is random access in Unicode strings. Implementation of &lt;code&gt;$string[$offset]&lt;/code&gt; changes from trivial to either very slow or little slow and very complex.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also I think it was a mistake to choose UTF-16 as internal encoding for PHP. It has same problems as UTF-8 (variable width because of surrogate pairs) and inefficiency of UCS-2. Maybe they should scrap that and start again with UTF-8?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;&amp;lt;/speculation&amp;gt;&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="11746" LastActivityDate="2010-12-27T14:06:21.603" CommentCount="7" />
  <row Id="30287" PostTypeId="2" ParentId="21209" CreationDate="2010-12-27T14:07:08.123" Score="0" ViewCount="" Body="&lt;p&gt;Absolutely. Industry are now crying out for F# programmers and are willing to pay top-dollar. Note that this is no different from other upcoming technologies like LINQ, TPL, Silverlight etc.&lt;/p&gt;&#xA;" OwnerUserId="11782" LastActivityDate="2010-12-27T14:07:08.123" CommentCount="1" />
  <row Id="30288" PostTypeId="2" ParentId="30254" CreationDate="2010-12-27T14:11:37.077" Score="0" ViewCount="" Body="&lt;p&gt;It's about &lt;strong&gt;performance&lt;/strong&gt;. Unallocating memory requires lot of administration. If the unallocation runs in the background, the performance of foreground process increases. Unfortunatelly, memory allocation can't be lazy (the objects allocated will be used at the holy next moment), but releasing objects can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try in C++ (w/o any GC) to allocate a big bunch of objects, print &quot;hello&quot;, then delete them. You'll be surprised how long does it take to free objects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, GNU libc provides more effective tools for unallocating memory, see &lt;a href=&quot;http://www.gnu.org/software/hello/manual/libc/Obstacks.html&quot; rel=&quot;nofollow&quot;&gt;obstacks&lt;/a&gt;. Must notice, I have no experience with obstacks, I never used them.&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-12-27T14:11:37.077" CommentCount="11" />
  <row Id="30289" PostTypeId="2" ParentId="30260" CreationDate="2010-12-27T14:14:54.087" Score="1" ViewCount="" Body="&lt;p&gt;I recently have been in the same situation. I found an old Dell Inspiron 640m in the attic. It belonged to my sister, but she had thrown it away after letting it fall to the ground which broke the screen. I opened up the computer, disconnected the screen, so it doesn't show anything, and installed Ubuntu 4.1 server to the 512 MB machine. I've hooked it up to our access point, which made it receive a static WAN IP. Now I use it to store some files, setup a website, software control management and some other things. Due to it receiving a WAN IP, I can access it from everywhere without having to setup the Airport Express NAT settings, which acts as a router and manages our local home network.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My ultimate dream is developing my own multimedia server and installing it to the Dell. Then I would like to connect it back to our home network so everyone can easily store his or her favorite music, series, movies, pictures, etc. But to do that we will have to replace our Airport Express with another router, because the Airport Express has only one ethernet port and this is already in use to connect to the access point. I need a second ethernet port because I haven't yet succeeded in making the wireless card work on the Dell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my advice, keep it. If you can't do anything with it now, maybe you will later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: One disadvantage though: using a laptop with a broken screen forces you to ONLY use the UNIX's shell. This can be stressful sometimes, but tools like &lt;a href=&quot;http://www.gnu.org/software/screen/&quot; rel=&quot;nofollow&quot;&gt;GNU Screen&lt;/a&gt; make it a lot easier. Learning the shell I also get a deeper understanding of Mac OS X, which is the only operating system used at our home apart from Linux that is.&lt;/p&gt;&#xA;" OwnerUserId="11317" LastEditorUserId="11317" LastEditorDisplayName="" LastEditDate="2010-12-27T14:41:31.637" LastActivityDate="2010-12-27T14:41:31.637" />
  <row Id="30290" PostTypeId="2" ParentId="7559" CreationDate="2010-12-27T14:16:41.650" Score="0" ViewCount="" Body="&lt;p&gt;We do #1. #2 sounds good, but i can't say we've had problems with #1 that #2 would fix.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An additional factor in my company is that we build web apps, and our testing is almost entirely through the web interface - roughly, what people call functional testing rather than unit testing. We have all tests pass before checking in. Splitting commits into smaller bits would mean running the tests once for each bit, and that would take up more time. I would love to have a much faster test suite, which would let us do smaller commits, but we just don't have it.&lt;/p&gt;&#xA;" OwnerUserId="854" LastActivityDate="2010-12-27T14:16:41.650" />
  <row Id="30291" PostTypeId="2" ParentId="30116" CreationDate="2010-12-27T14:19:31.217" Score="0" ViewCount="" Body="&lt;p&gt;This debate is so value-loaded that it's become impossible to see the two ideas for what they are: &lt;strong&gt;they're just business models&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All software costs &lt;em&gt;someone&lt;/em&gt; time and/or money to make and/or use, so any business model is capable of being inappropriate in certain situations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Different business models exist in every industry and market to (at least temporarily) offset those costs based on the resources available. I don't see why it would be any different for software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both business models are capable of hurting people. There are &lt;em&gt;tons&lt;/em&gt; of programmers out there that have become incapable of feeding their families because their work had been replaced by open source software that wasn't necessarily better, but happened to cost $0. Meanwhile there are programmers that eat money for breakfast while exploiting their customers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either way, both models will continue to exist by necessity if not by ideology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way if you look at rich client software (e.g. online games), it's clear that payment can be enforced for certain kinds of software. Those ones will always be commercial.&lt;/p&gt;&#xA;" OwnerUserId="6385" LastEditorUserId="6385" LastEditorDisplayName="" LastEditDate="2010-12-27T14:26:06.127" LastActivityDate="2010-12-27T14:26:06.127" />
  <row Id="30292" PostTypeId="2" ParentId="30245" CreationDate="2010-12-27T14:19:57.067" Score="1" ViewCount="" Body="&lt;p&gt;I don't know about the other Head First books so I'm going to state my opinion about the book that I'm reading right now, Head First Servlets and JSP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first half of the book is definitely great, hands down. They explained the concepts in a straight-forward fashion through pictures and stories. As a developer who built a J2EE web app in the wrong way as a way of diving in, I found the book really helpful in patching up some of the holes in my knowledge of J2EE. Most of the questions I find myself asking when I was still starting out was answered by the first half of the book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I find the remaining half of the book to be written as if it was intended for advanced developers already. The book makes you dive into several advanced topics and concepts without really explaining how everything happened in words that beginners can understand. The book tosses you several topics at once, so it's giving me a hard time to understand everything. I even find the diagrams, and pictures to be confusing as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm still on the process of reading the book right now, but I'm now under the impression that the book was rushed, because the book failed to explain the topics clearly that I can't piece everything in my head together now. This dilemma led me to ask &lt;a href=&quot;http://programmers.stackexchange.com/questions/29918/what-are-some-good-books-on-java-servlets-and-jsp&quot;&gt;this question&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know if other Head First books are the same way since I haven't read anything other than Servlets and JSP.&lt;/p&gt;&#xA;" OwnerUserId="500" LastActivityDate="2010-12-27T14:19:57.067" />
  <row Id="30293" PostTypeId="2" ParentId="2829" CreationDate="2010-12-27T14:23:29.547" Score="1" ViewCount="" Body="&lt;p&gt;Have you considered the BSD license(s)? The simplest (relatively) form of it, known as &quot;Simplified BSD License&quot; or &quot;FreeBSD License&quot;, is particularly fit for disclaiming any warranties and/or liabilities. It does not prevent commercialization or use of your code in commercial and/or proprietary software, but it makes sure you still are the copyright holder.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can read it &lt;a href=&quot;http://en.wikipedia.org/wiki/BSD_licenses#2-clause_license_.28.22Simplified_BSD_License.22_or_.22FreeBSD_License.22.29&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;. Depending on the laws of your country, it may be more suitable to your purposes than other, more complicated, licenses.&lt;/p&gt;&#xA;" OwnerUserId="8233" LastActivityDate="2010-12-27T14:23:29.547" />
  <row Id="30294" PostTypeId="2" ParentId="30260" CreationDate="2010-12-27T14:29:49.150" Score="0" ViewCount="" Body="&lt;p&gt;For several years, I used a Mac SE/30 running NetBSD as a DNS and mail server.  They're also handy for running firewalls, web proxies and other network tools.  Or you can install a couple of TB-size drives and use it as a NAS.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-27T14:29:49.150" />
  <row Id="30295" PostTypeId="2" ParentId="27564" CreationDate="2010-12-27T14:30:26.767" Score="2" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Consolidate the object model - make all objects extend base Object class. The Object class would (among other things) implement all the magic methods (so they'd be no longer magic!)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Move extensions to their own namespaces - unclutter the global namespace&#xA;&lt;code&gt;$conn = new \MySQLi\Connection();&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Un-cripple the &lt;code&gt;spl_autoload()&lt;/code&gt; function! Seriously, this is possibly one of the greatest features of PHP and also the most useless at the same time. &lt;code&gt;spl_autoload&lt;/code&gt; is the default autoloader, that supports namespaces and multiple file extensions, but for some unknown reason requires the filenames to be lowercased. There is a &lt;a href=&quot;http://bugs.php.net/bug.php?id=49625&quot; rel=&quot;nofollow&quot;&gt;bug report filled for this&lt;/a&gt;, but the staff replied they won't fix it because of backward compatibility. Right... it's not like every framework ships with it's own autoloader, since the default one is crippled!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="11785" LastEditorUserId="11785" LastEditorDisplayName="" LastEditDate="2010-12-28T16:51:37.490" LastActivityDate="2010-12-28T16:51:37.490" CommunityOwnedDate="2010-12-27T14:30:26.767" />
  <row Id="30296" PostTypeId="2" ParentId="30209" CreationDate="2010-12-27T14:30:56.377" Score="0" ViewCount="" Body="&lt;p&gt;We have just started doing this at our company (&lt;a href=&quot;http://www.idexx.com&quot; rel=&quot;nofollow&quot;&gt;IDEXX Laboratories&lt;/a&gt;). I had heard of Google's 20% time before but it didn't really click with me until I read Dan Pink's &quot;Drive&quot; and understood why it is done. We modeled ours off of the FedEx days at &lt;a href=&quot;http://confluence.atlassian.com/display/DEV/Atlassian+FedEx+Days&quot; rel=&quot;nofollow&quot;&gt;Atlassian&lt;/a&gt;. It seems they are doing it very successfully.&lt;/p&gt;&#xA;" OwnerUserId="3225" LastActivityDate="2010-12-27T14:30:56.377" />
  <row Id="30297" PostTypeId="1" AcceptedAnswerId="30320" CreationDate="2010-12-27T14:35:37.057" Score="9" ViewCount="530" Body="&lt;p&gt;In legacy code I occasionally see classes that are nothing but wrappers for data. something like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Bottle {&#xA;   int height;&#xA;   int diameter;&#xA;   Cap capType;&#xA;&#xA;   getters/setters, maybe a constructor&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;My understanding of OO is that classes are structures for data &lt;em&gt;and the methods of operating on that data.&lt;/em&gt; This seems to preclude objects of this type. To me they are nothing more than &lt;code&gt;structs&lt;/code&gt; and kind of defeat the purpose of OO. I don't think it's necessarily evil, though it may be a code smell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a case where such objects would be necessary? If this is used often, does it make the design suspect?&lt;/p&gt;&#xA;" OwnerUserId="6415" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2010-12-27T15:37:37.760" LastActivityDate="2010-12-27T20:15:17.807" Title="Is there any reason to use &quot;plain old data&quot; classes?" Tags="&lt;java&gt;&lt;code-quality&gt;&lt;object-oriented&gt;&lt;code-smell&gt;" AnswerCount="6" CommentCount="9" FavoriteCount="1" />
  <row Id="30298" PostTypeId="2" ParentId="30245" CreationDate="2010-12-27T14:35:59.540" Score="2" ViewCount="" Body="&lt;p&gt;In my opinion, they're good if you are a beginner in programming in general - not only in the topic in question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, before learning the options for conditionals in a language, they will spend a lot of time - and a lot of simple and silly examples - to explain what conditionals &lt;em&gt;are&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The solutions they propose are often very lean and lightweight, but they tend not to explain &lt;em&gt;why&lt;/em&gt; they chose that solution and which the alternatives are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Use cases:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;A C++ programmer wants to dive into web development, using PHP. I would recommend one of the mid-level books also by O'Reilly, like &quot;Learning PHP, MySQL and Javascript&quot;. Those are still very careful (borderlining on the pedantic) in explaining how the language works, and full of examples: still, if you have the right attitude towards learning new technologies, one of them would suffice to let you build solutions for almost anything within the standard scope of that technology. Also, they can be used as a reference.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A web designer wants to learn some Javascrtipt to liven up his pages. He is a nice specimen, so he prefers having an idea, albeit vague, of what he's writing rather than copypasting around. Nevertheless, he does not want to master that technology and he never read a programming manual - so there would be a steep learning curve for language and conventions themselves with a nice course/reference book, and it's not worth it. In that case, Head First manuals are definitely the best option.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="11146" LastActivityDate="2010-12-27T14:35:59.540" />
  <row Id="30299" PostTypeId="2" ParentId="29918" CreationDate="2010-12-27T14:37:39.830" Score="2" ViewCount="" Body="&lt;p&gt;&lt;code&gt;Core Servlets and JSP by Marty Hall&lt;/code&gt; - it's in two volumes,  you only need volume 2 to dive deep into JSP and make a smoother transition to MVC using struts.&lt;/p&gt;&#xA;" OwnerUserId="5540" LastActivityDate="2010-12-27T14:37:39.830" CommentCount="1" />
  <row Id="30300" PostTypeId="2" ParentId="18852" CreationDate="2010-12-27T14:40:38.110" Score="1" ViewCount="" Body="&lt;p&gt;Understand &lt;em&gt;make&lt;/em&gt;, and it will be your best friend.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make is a kind of &lt;strong&gt;dataflow system&lt;/strong&gt;. In a dataflow system you buld the application from components, by connecting their input and output ports, where they send messages (data packets, or sometimes only triggers), so they finally form a processing network. See Wikipedia &lt;a href=&quot;http://en.wikipedia.org/wiki/Dataflow_programming&quot; rel=&quot;nofollow&quot;&gt;dataflow programming&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Flow-based_programming&quot; rel=&quot;nofollow&quot;&gt;flow-based programming&lt;/a&gt; articles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the case of make, the components are the compilation units, the messages are changes of files (source, object, other resource). When a file changes, it triggers a component (a compiling node), then the component, after doing its task, producing outputs, and triggering other components, which are doing same way, until the message chain reaches the final (sink) component, which produces a.out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Opposite to other dataflow architectures, make does not run continously. you have to launch it, when you feel that a file has changed, and it will trigger a component. If you run make when there's no changed files, so no component will be triggered, it says a &quot;nothing to do&quot; message and stops.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there're paralell paths in the dataflow net, make can run components paralell, try &lt;strong&gt;make -j&lt;/strong&gt; option. (It's an interesting effect that the G++ itself does not utilize multiple processors, but it does with the help of make.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Making a good makefile is not trivial, but if you think of make as a dataflow application builder, it can be a very effective tool.&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-12-27T14:40:38.110" />
  <row Id="30301" PostTypeId="1" CreationDate="2009-03-21T03:35:30.777" Score="12" ViewCount="273" Body="&lt;p&gt;Since many of you are already there I figured this might be a great place to invite ideas and suggestion for becoming a software developer. &lt;/p&gt;&#xA;&#xA;&lt;h3&gt;My background&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;I have some basic knowledge of programming in VB and C++ from a course I had pursued 8 years ago. My main drawback is a lack of experience in software since I was in a teaching career until a year ago. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am working as a QA tester and finally got a chance to write some automation tests scripts using C#. I didn't have any prior knowledge of C# but I was able to figure my way through it. &lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Questions&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Given this context: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Would anyone have any ideas as to what would be a good approach to learn enough to actually be able to work as a developer? &lt;/li&gt;&#xA;&lt;li&gt;Does anyone have any suggestions as to what kind of learning path to adopt and which approaches speed up learning curve?&lt;/li&gt;&#xA;&lt;li&gt;Would pursuing university course be helpful in terms of knowledge gained? &lt;/li&gt;&#xA;&lt;li&gt;Are certification exams a way to go for a beginner?&lt;/li&gt;&#xA;&lt;li&gt;Are community college courses useful? &lt;/li&gt;&#xA;&lt;li&gt;What about courses offered by private institutes/centers? &lt;/li&gt;&#xA;&lt;li&gt;Any suggestion for some good books?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-12-27T18:12:08.330" LastActivityDate="2010-12-27T18:12:08.330" Title="How do I become a developer?" Tags="&lt;career-advice&gt;&lt;c#&gt;" AnswerCount="17" CommentCount="7" FavoriteCount="2" />
  <row Id="30302" PostTypeId="2" ParentId="30301" CreationDate="2009-03-21T03:37:37.747" Score="1" ViewCount="" Body="&lt;p&gt;Any/All of the above look good.  You need to get up to speed on some of the concepts, but if the will to learn and absorb information is there, you will be fine.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T14:47:03.540" />
  <row Id="30303" PostTypeId="2" ParentId="30301" CreationDate="2009-03-21T03:41:37.690" Score="3" ViewCount="" Body="&lt;p&gt;To work as a developer you really need to learn more than to &quot;figure your way though&quot; a language. I would suggest getting more development experience by just spending more time coding, and also taking university classes, or studying the same material on your own. You won't be pushed as hard if you do it yourself, but you can certainly learn enough to bring you up to speed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If time/money is a problem, you can get syllabi for courses such as MIT's &lt;a href=&quot;http://ocw.mit.edu/OcwWeb/web/courses/courses/index.htm#ElectricalEngineeringandComputerScience&quot; rel=&quot;nofollow&quot;&gt;OpenCourseWare&lt;/a&gt; This will also be a good litmus test to see if you're up to the level of the people you would be competing with for jobs.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T14:47:03.540" CommentCount="1" />
  <row Id="30304" PostTypeId="2" ParentId="30301" CreationDate="2009-03-21T03:41:39.547" Score="7" ViewCount="" Body="&lt;p&gt;The best way to become a developer is to develop something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think of some idea, something minimal that might be useful for someone and implement it. This is the best way to learn programming. Courses are useless, google search is your ultimate course that will teach you anything you will ever need. Sure, you won't get any certificate but potentional employers are more impressed with real-world projects than with academic results.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T14:47:03.540" CommentCount="4" />
  <row Id="30305" PostTypeId="2" ParentId="30301" CreationDate="2009-03-21T03:44:38.090" Score="22" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;How to become a programmer&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Build something. Fall on your face. Rinse, Lather, Repeat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How to become a Good Programmer&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Build something. Fall on your face. Rinse, Lather, Buy a Helmet, and Repeat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At some point you either 'get it' or you do something else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;hr /&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: To actually answer the question posed:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Would pursuing university course be helpful in terms of knowledge gained?&#xA;  I am kind of wary of this since I&#xA;  don't want to take up another college&#xA;  course leading to an almost dead-end&#xA;  as far as career is concerned.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;College is both underrated and overrated for programming.  It'll provide the necessary foundation that everything else flows from; but it's just that: a foundation. If you understand microprocessors, logic and algorithms, Discrete Mathematics, et. al., then you'll have that same basis.  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Are certification exams a way to go&#xA;  for a beginner?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;A certification exam will teach you the ins and outs of a particular language or platform.  It's sort of like teaching you how to build a car: Until you actually build a car on your own, you don't really know what you think you know.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Are community college courses useful?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It depends: If you can find a course in &lt;code&gt;C&lt;/code&gt; or take extra math courses, it can always help -- but I've found that community College classes tend to be very basic.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What about courses offered by private&#xA;  institutes/centers?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Ever wanted to write a compiler?  Go back and get your Computer Science degree with a concentration in Software Engineering and you'll learn. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Any suggestion for some good books?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Take a look at &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=site%3Astackoverflow.com%2Bgood%2Bbooks%2Bfor%2Blearning%2Bprogramming&amp;amp;btnG=Google%2BSearch&amp;amp;cts=1237608398977&amp;amp;aq=f&amp;amp;oq=&quot; rel=&quot;nofollow&quot;&gt;these Stack Overflow questions&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1577" LastActivityDate="2010-12-27T14:47:03.540" CommentCount="1" />
  <row Id="30306" PostTypeId="2" ParentId="30301" CreationDate="2009-03-21T03:45:30.910" Score="2" ViewCount="" Body="&lt;p&gt;Writers have maxims like &quot;a writer writes&quot; and &quot;writer isn't a noun, it's a verb.&quot; The same applies to being a developer. To be a developer: develop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't a stupid obvious use of the language, it's an instruction. The only way to become a good developer is to develop and to do so often.&lt;/p&gt;&#xA;" OwnerUserId="8457" LastActivityDate="2010-12-27T14:47:03.540" />
  <row Id="30307" PostTypeId="2" ParentId="30301" CreationDate="2009-03-21T03:50:54.937" Score="1" ViewCount="" Body="&lt;p&gt;From the options you are considering I'm definetly against certification exams. I've been a professional programmer for 2-3 years and did it as a hobby for 2 years before that. Now I'm  studying for SCJP and I definetly wouldn't recommend that experience as an entry in software development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as books go. There are books that advertise as good reads for someone with your aspirations. But I haven't read any of those, so I can't recommend anything.&lt;/p&gt;&#xA;" OwnerUserId="3040" LastActivityDate="2010-12-27T14:47:03.540" />
  <row Id="30308" PostTypeId="2" ParentId="30301" CreationDate="2009-03-21T03:56:21.227" Score="13" ViewCount="" Body="&lt;p&gt;A lot of people are saying in their answers to build something - and they are right! I'm a mid-level software engineer with a few years of experience, and while I clearly don't know it all, the one thing I can tell you is that there are two types of people who try to be developers:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;People who take initiative, fail, learn from their mistakes, succeed, rinse and repeat, and eventually get there&lt;/li&gt;&#xA;&lt;li&gt;People who don't do anything and are surprised when they get passed over&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Working as a QA tester is a really good place to start - if you take initiative - and you've already done something great - developed automated test scripts. It sounds like you were excited about them and are proud of them. Good for you. Keep it up. Learn more C#. Learn everything you can about the languages/development tools/source control systems/development process/build process/etc at your company. Chat up the developers. A lot of testers think that developers don't like them - and yes, that can be true, but I know for me, a good tester is my best friend.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I know that a good tester, who takes initiative, who wants to be a developer, is going to get my recommendation. So keep doing what you're doing. You'll get there :-).&lt;/p&gt;&#xA;" OwnerUserId="1109" LastActivityDate="2010-12-27T14:47:03.540" />
  <row Id="30309" PostTypeId="2" ParentId="30301" CreationDate="2009-03-21T03:57:51.317" Score="2" ViewCount="" Body="&lt;p&gt;How do you become a good cook? How do you become a musician? How do you become anything in this world?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i. Start developing something. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;ii. Get it verified by people who are good software developers. Get feedback on how it could be done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;iii. Rewrite or develop something else. Go to step two.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;iv. Talk to people who are good software developers about good practices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;v. Read &lt;a href=&quot;http://www.codinghorror.com/blog/archives/000020.html&quot; rel=&quot;nofollow&quot;&gt;books&lt;/a&gt; about software development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;vii. If you have time and money a college course will definitely help. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;viii.In the process if you realize you have the aptitude for programming continue, else quit happily with the knowledge that you know how to program if needed. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T14:47:03.540" />
  <row Id="30310" PostTypeId="2" ParentId="30301" CreationDate="2009-03-21T04:00:42.277" Score="3" ViewCount="" Body="&lt;p&gt;I agree with all the answers, the best way learn something is by doing.  You can read all the blog posts, etc in the world, but I find that you will retain more knowledge when you apply it to something your interested in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do decide to take some course, perhaps some courses on data structures.  Stacks, Queues, Lists, etc.  I know there are Framework classes which provide all this for you, but It never hurts to cover the basics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way I think of it is a mechanic.  They have all these computerized diagnostic machines in their arsenal, but they still learned how an engine works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are we on your way by the sounds of it.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T14:47:03.540" />
  <row Id="30311" PostTypeId="2" ParentId="30301" CreationDate="2009-03-21T04:07:12.997" Score="3" ViewCount="" Body="&lt;p&gt;It sounds like you're on the right track. The desire is important. But you'll just hate it if you're not the right kind of person. Do you hate menial chores? Do you constantly try to think of faster way to drive home? Do you get annoyed when the grocery store puts logically grouped items at different ends of the store?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These sorts of things happen in the minds of programmers. You have to be chomping at the bit to make things faster, easier, and smarter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;--Would pursuing university course be helpful in terms of knowledge gained? I am kind of wary of this since I don't want to take up another college course leading to an almost dead-end as far as career is concerned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This can be very hit or miss. If the school teaches everything in Java, take a pass. You won't learn anything you can't pick up on your own. Real devs remember what pointers are, know how to fix a segfault, can find out what's in the stack in a given thread etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;--Are certification exams a way to go for a beginner?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No. And people who hire based on this aren't worth working for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;--Are community collge courses useful?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My wife just took a beginning course as my request. It was in Visual Basic and that's the only course they offered. But this most likely depends on the teacher and the department. If you're anywhere near a research school, it could be fantastic for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;--Any suggestion for some good books?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596513984&quot; rel=&quot;nofollow&quot; title=&quot;Learning Python&quot;&gt;http://www.amazon.com/Learning-Python-3rd-Mark-Lutz/dp/0596513984&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T14:47:03.540" />
  <row Id="30312" PostTypeId="2" ParentId="30301" CreationDate="2009-03-21T05:40:27.217" Score="4" ViewCount="" Body="&lt;p&gt;Well, I'm a CS major, just about finished my degree. Universities don't teach (much) programming. They teach theory, math, history, and problem-solving techniques. All useful and good stuff for becoming a good programmer, but it won't help you in the short term. A lot of stuff you still have to figure out on your own. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I agree with the guys above, and try some small projects. Do stuff that's just a &lt;em&gt;little&lt;/em&gt; bit over your head, so that you struggle with a bit, ask some questions, search for some answers, and you'll learn. But never settle for a program that simply &quot;works&quot; (unless you have some sort of time or monetary constraints) -- look for the best answer. Learn good programming habits and techniques.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want a more in-depth understanding that goes beyond just programming, or the language (which I guess you need as a developer), then I guess I would recommend taking some courses. Just be careful about the ones you choose... I found some to be a lot more useful than others.&lt;/p&gt;&#xA;" OwnerUserId="7390" LastActivityDate="2010-12-27T14:47:03.540" />
  <row Id="30313" PostTypeId="2" ParentId="30301" CreationDate="2009-03-21T07:24:27.297" Score="1" ViewCount="" Body="&lt;p&gt;Learning by doing if of course the best, but i highly recommend university courses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;courses about, Design patterns, Data Structures, Some object oriented design courses to get deeper knowledge about object oriented programming, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should not really care if they are in Java or C# or whatever since the above courses teach you principles that you will find useful in any programming language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also courses that makes you work in a team is great, I don't know how it is in the US, but in Sweden we have the possibility to take courses to learn Xtreme Programming and other Team based courses that is partly theoretical and partly practical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although i studied many math courses and found them useful, you can put these aside for later.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T14:47:03.540" />
  <row Id="30314" PostTypeId="2" ParentId="30301" CreationDate="2009-03-21T08:06:05.480" Score="2" ViewCount="" Body="&lt;p&gt;Others have said it, but I'll summarise my view:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Certifications can help you, but not as much as a good demonstrable knowledge base.  Learning tools, languages, skills and concepts of programming can happen outside of a formal class setting if you are sufficiently motivated to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Internet is a mixed blessing; chock full of information but only half could be considered reliable and less than half of that may suit your learning style.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Get an interesting project you want/need to build&lt;/li&gt;&#xA;&lt;li&gt;Start building it in an appropriate language.  C# is not the right tool for everything, but as a starting point you can build most anything in it.&lt;/li&gt;&#xA;&lt;li&gt;Get a mentor(s).  This bit is so often missed and people tend to develop bad habits and poor styles without it.  They then find they're getting nowhere and just throw their hands in the air and try gardening.  A mentor can simply be a friend who is patient and wants to help you on your way but isn't too pushy.  The mentor is the person who looks at what you've done and tells you there's a better way to do it, try these things.  Without it your progress will be slow and painful (from my own experience).&lt;/li&gt;&#xA;&lt;li&gt;Take an entry-level job when you feel confident.  If it's a good company and your are indeed capable you won't stay at entry level for long when they realise it.  If you're not as good as you thought you should find lots of mentoring and guidance in your job, as well as learning how to work on a commercial project.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;At each of these steps set yourself a few stage gates.  You don't want to press on for years without getting anywhere; if you find you're in that situation even with good mentoring then maybe programming isn't really for you after all?&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T14:47:03.540" />
  <row Id="30315" PostTypeId="2" ParentId="30301" CreationDate="2009-03-21T08:09:37.483" Score="2" ViewCount="" Body="&lt;p&gt;I was in the exact same position 3 years ago. While I had completed a WebMaster course and then an MCSD course in C++(MFC, really) years earlier, I never got the chance to work as a developer and only had some not-quite finished projects I developed at home. Then 3 years ago I got a job as a QA tester (mostly intuitive QA, since the company didn't have actual testing tools at the time). Then they needed a website, and I just told the R&amp;amp;D manager I'd like to do it. He said &quot;Fine, but do it in C#, not VB&quot; (which is what I learned in the WebMaster course). Within a week I was doing web development and was loving it. Now I work for a different company, still a developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I'm saying is, to be a developer, you do need to develop, like everyone else said, but if you want to work as one, you just need to tell someone who can give you the chance.&#xA;Also, it doesn't matter what path you take to learning, we all have different ways to study and learn. Some through college (I don't have a degree, myself), some through courses, some through books etc. The important thing is you HAVE to learn, whether you're working as developer already or not, you have to keep learning or you get left behind. Unless you're a freaking genius, which sadly, I'm not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T14:47:03.540" />
  <row Id="30316" PostTypeId="2" ParentId="30301" CreationDate="2009-05-06T22:33:22.983" Score="3" ViewCount="" Body="&lt;p&gt;Read &lt;strong&gt;&quot;Code Complete&quot;&lt;/strong&gt; by &lt;em&gt;Steve McConnell&lt;/em&gt; (link to Wikipedia &lt;a href=&quot;http://en.wikipedia.org/wiki/Code%5FComplete&quot; rel=&quot;nofollow&quot;&gt;article&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This book is a brilliant book on the craft of coding. It gives tips and tricks for reducing complexity and general structuring of projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It fills the gap left by those &quot;Learn Language A in X Hours&quot; books. When I was learning to code from those books, I used to get very frustrated when the author threw in a comment like: &quot;Of course, the example I gave is not good enough for production code&quot;?!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&quot;Code Complete&quot;&lt;/strong&gt; is the book that gives generic/general advice on how to produce production code! It is a book full of common sense, but as they say: common sense is not that common.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a book that rewards repeated reading. Read immediately to get some idea of what might be required of good code. Read again after a project or two to see if any of the problems you encountered and mistakes you made are mentioned and learn from them.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This book alone will not make you a great developer. However, great developers know everything in this book, whether they have read it or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an aside, &lt;strong&gt;&quot;Coder to Developer&quot;&lt;/strong&gt; by &lt;em&gt;Mike Gunderloy&lt;/em&gt; is a decent book that takes a look at stuff not immediately connected with code that are useful to developers. It includes interesting chapters on Project Estimation, Source Control and Licenses &lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T14:47:03.540" />
  <row Id="30317" PostTypeId="2" ParentId="30301" CreationDate="2009-05-13T09:52:39.507" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blogs.techrepublic.com.com/programming-and-development/?p=1139&amp;amp;tag=nl.e055&quot; rel=&quot;nofollow&quot;&gt;10 tips to go from a beginner to intermediate developer&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T14:47:03.540" />
  <row Id="30318" PostTypeId="2" ParentId="30301" CreationDate="2009-08-08T09:17:22.383" Score="0" ViewCount="" Body="&lt;p&gt;I'd suggest you visit: &lt;a href=&quot;http://msdn.com/express&quot; rel=&quot;nofollow&quot;&gt;http://msdn.com/express&lt;/a&gt; - Download Visual C# Express Edition for free, and also download the Visual C# MSDN Express Library which is the Documentation for C#. You'll learn alot from the official documentation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some useful links you might need once you feel that you're ready to start developing your own applications:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.windowsclient.net/&quot; rel=&quot;nofollow&quot;&gt;http://www.windowsclient.net/&lt;/a&gt;&#xA;&lt;a href=&quot;http://www.codeforfun.net/&quot; rel=&quot;nofollow&quot;&gt;http://www.codeforfun.net/&lt;/a&gt;&#xA;&lt;a href=&quot;http://www.msdn.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.msdn.com/&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T14:47:03.540" />
  <row Id="30319" PostTypeId="2" ParentId="30254" CreationDate="2010-12-27T14:48:45.573" Score="12" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;So, what's the point of using garbage collection?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'm assuming you mean reference counted smart pointers and I'll note that they are a (rudimentary) form of garbage collection so I'll answer the question &quot;what are the advantages of other forms of garbage collection over reference counted smart pointers&quot; instead.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Accuracy&lt;/strong&gt;. Reference counting alone leaks cycles so reference counted smart pointers will leak memory in general unless other techniques are added to catch cycles. Once those techniques are added, reference counting's benefit of simplicity has vanished. Also, note that scope-based reference counting and tracing GCs collect values at different times, sometimes reference counting collects earlier and sometimes tracing GCs collect earlier.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Throughput&lt;/strong&gt;. Smart pointers are one of the least efficient forms of garbage collection, particularly in the context of multi-threaded applications when reference counts are bumped atomically. There are advanced reference counting techniques designed to alleviate this but tracing GCs are still the algorithm of choice in production environments.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Latency&lt;/strong&gt;. Typical smart pointer implementations allow destructors to avalanche, resulting in unbounded pause times. Other forms of garbage collection are much more incremental and can even be real time, e.g. Baker's treadmill.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11782" LastActivityDate="2010-12-27T14:48:45.573" CommentCount="1" />
  <row Id="30320" PostTypeId="2" ParentId="30297" CreationDate="2010-12-27T14:49:43.183" Score="30" ViewCount="" Body="&lt;p&gt;Definitely not evil and not a code smell in my mind. Data containers are a valid OO citizen. Sometimes you want to encapsulate related information together. It's a lot better to have a method like &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public void DoStuffWithBottle(Bottle b)&#xA;{&#xA;    // do something that doesn't modify Bottle, so the method doesn't belong&#xA;    // on that class&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;than&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public void DoStuffWithBottle(int bottleHeight, int bottleDiameter, Cap capType)&#xA;{&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Using a class also allows you to add an additional parameter to Bottle without modifying every caller of DoStuffWithBottle. And you can subclass Bottle and further increase the readability and organization of your code, if needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are also plain data objects that can be returned as a result of a database query, for example. I believe the term for them in that case is &quot;Data Transfer Object&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In some languages there are other considerations as well. For example, in C# classes and structs behave differently, since structs are a value type and classes are reference types.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-27T14:49:43.183" CommentCount="16" />
  <row Id="30321" PostTypeId="2" ParentId="30297" CreationDate="2010-12-27T15:06:31.880" Score="2" ViewCount="" Body="&lt;p&gt;There are even much strange creatures exist in the OOP world. I've once created a class, which is abstract, and contains nothing, it just for to be a common parent of other two classes... it's the Port class:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;SceneMember &#xA;Message extends SceneMember&#xA;Port extends SceneMember&#xA;InputPort extends Port&#xA;OutputPort extends Port&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So SceneMember is the base class, it does all the job, which required to appear on the scene: add, delete, get-set ID, etc. Message is the connection between ports, it has its own life. InputPort and OutputPort contain the i/o specific functions of their own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Port is empty.&lt;/em&gt; It is just used to group InputPort and OutputPort together for, say, a portlist. It's empty because SceneMember contains all stuff which are for acting as a member, and InputPort and OutputPort contain the port-specified tasks. InputPort and OutputPort are such different, that they have no common (except SceneMember) functions. So, Port is empty. But it's legal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe it's an &lt;em&gt;antipattern&lt;/em&gt;, but I like it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(It's like the word &quot;mate&quot;, which is used for both &quot;wife&quot; and &quot;husband&quot;. You never use the &quot;mate&quot; word for a concrete person, because you know the sex of him/her, and it does not matter if he/she is married or not, so you use &quot;someone&quot; instead, but it still exists, and is used in rare, abstract situations, e.g. a law text.)&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-12-27T15:06:31.880" CommentCount="4" />
  <row Id="30322" PostTypeId="2" ParentId="30297" CreationDate="2010-12-27T15:12:28.493" Score="2" ViewCount="" Body="&lt;p&gt;This kind of classes are quite useful when you are dealing with mid-size/big applications, for some reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it's quite easy to create some test&#xA;cases and ensure that data is&#xA;consistent.&lt;/li&gt;&#xA;&lt;li&gt;it holds all kind of behaviors that&#xA;involve that information, so data bug tracking time is reduce&lt;/li&gt;&#xA;&lt;li&gt;Using them should keep method args lightweight.&lt;/li&gt;&#xA;&lt;li&gt;When using ORMs , this classes gives flexybility and consistency. Adding a complex attribute that's calculated based on simple information already in the class, resutls in writing one simple method. This is quite more agile and productive that having to check your database and ensure all databases are patched with new modification.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So to sum up, in my experience they usually are more useful than annoying.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-27T15:12:28.493" />
  <row Id="30323" PostTypeId="2" ParentId="29792" CreationDate="2010-12-27T15:16:35.603" Score="0" ViewCount="" Body="&lt;p&gt;I don't think everyone needs to have the &quot;same&quot; IDE, but it would be nice that everyone had a &quot;supported&quot; IDE.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, if your IDE is integrated into the code review process as far as commenting and updating code goes, then it would make sense for everyone to be on a supported platform.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your company is using a collaborative environment such as &lt;a href=&quot;http://jazz.net/projects/rational-team-concert/?ref_content=splashlink&quot; rel=&quot;nofollow&quot;&gt;Rational Team Concert&lt;/a&gt; and one or two guys want to use an unsupported IDE (or a different version) while everyone else uses compatible ones, then life may be difficult for the people who have chosen to be outside of the support loop.&lt;/p&gt;&#xA;" OwnerUserId="7751" LastActivityDate="2010-12-27T15:16:35.603" />
  <row Id="30324" PostTypeId="2" ParentId="30255" CreationDate="2010-12-27T15:16:57.067" Score="1" ViewCount="" Body="&lt;p&gt;There's no reason why doing this serverside should not scale as well as generating HTML directly. There's also not much reason for a big constant overhead in comparison to PHP. Appearently there are XSLT &gt; JVM / CLR compilers and I suppose you could even translate it to native code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However the idea of transporting data and presentation structure seperately is good as such.&lt;br&gt;&#xA;It can save a lot of bandwidth and even server performance. But pomeL has mentioned a number of points.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For proper support accross browsers, &lt;a href=&quot;http://johannburkard.de/software/xsltjs/&quot; rel=&quot;nofollow&quot;&gt;xslt.js&lt;/a&gt; could help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I am no fan of XML, so I would use JSON instead and a JS template engine, that will execute in the browser. Or some sort of template engine, that converts template markup into executable js on the server side, which is used for rendering on the client side.&lt;br&gt;&#xA;JavaScript is reasonably fast and available virtually everywhere. JSON and JS are far more compact than XML and XSLT.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-12-27T15:16:57.067" />
  <row Id="30325" PostTypeId="2" ParentId="25644" CreationDate="2010-12-27T15:20:27.720" Score="0" ViewCount="" Body="&lt;p&gt;There are several examples profiled in the recent publication &quot;A Technology Freelancer's Guide to Starting a Worker Cooperative&quot; which is available through the U.S. Federation of Worker Cooperatives in the link below.  The guide was written by some of the cooperative entrepreneurs that are profiled.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.usworker.coop/howtos/startups&quot; rel=&quot;nofollow&quot;&gt;http://www.usworker.coop/howtos/startups&lt;/a&gt;&#xA;http://electricembers.net/pubs/TechCoopHOWTO.pdf&lt;/p&gt;&#xA;" OwnerUserId="11789" LastActivityDate="2010-12-27T15:20:27.720" />
  <row Id="30326" PostTypeId="2" ParentId="25509" CreationDate="2010-12-27T15:21:02.047" Score="1" ViewCount="" Body="&lt;p&gt;Here is what sucks about Scala:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The null pointer was a pretty bad idea to begin with. Hoare called it his &quot;billion dollar mistake&quot;, but Scala is even worse. It has objects named null, Null, None, and Nil. null is for interoperability with Java. Null is the null pointer form W3C DOM specification, None is what null should have been replaced with, and Nil is an empty something.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When language constructs turn out to be hacky it is usually the programmer who is to blame and not the language. In Scala, however, the core language already contains library classes whose only documented behavior is &quot;This is a hack&quot;. Don't believe it? Search the scaladoc for scala.xml.Group.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Last not least, Scala is badly documented. Hardly any of the scala classes in the official documentation comes with example code. Scala is significantly harder to learn than Java and requires profound knowledge in computer science.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;To avoid being mistaken for a Scala-hater, here is what I love about it:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I have fewer exceptions. I never had a ClassCastException and very few NullPointerExceptions when interacting with Java.&lt;/li&gt;&#xA;&lt;li&gt;Code is much shorter and more concise than Java&lt;/li&gt;&#xA;&lt;li&gt;It is intellectually challenging. Java feels like baby language when compared.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11790" LastActivityDate="2010-12-27T15:21:02.047" CommentCount="1" />
  <row Id="30327" PostTypeId="2" ParentId="30140" CreationDate="2010-12-27T15:40:34.237" Score="2" ViewCount="" Body="&lt;p&gt;The best security against information being wrongfully used is to avoid sending the information over a public communications network.&lt;br&gt;&#xA;If that is not an option, you have to consider who and what you are trying to protect against.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to be safe from third-parties snooping the traffic between your website and your customers, then don't bother with obfuscating the webpages, but use a secure connection instead.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't want your users to access some information that is needed by the browser for displaying the page or generating the next request, then encryption won't help you (the browser needs to be able to decrypt the information anyway) and obfuscation might at best slow someone down but it won't stop them obtaining the information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For really sensitive information, you could store it locally on the server and only give out a (one time) unique ID for accessing the information on the next request.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;As a sidenote, using obfuscation might make people more interested in knowing what you are trying to hide.&lt;/p&gt;&#xA;" OwnerUserId="5099" LastActivityDate="2010-12-27T15:40:34.237" />
  <row Id="30329" PostTypeId="1" AcceptedAnswerId="30333" CreationDate="2010-12-27T15:46:46.777" Score="6" ViewCount="191" Body="&lt;p&gt;I am using the &lt;a href=&quot;http://www.opensource.org/licenses/mit-license.php&quot; rel=&quot;nofollow&quot;&gt;MIT License&lt;/a&gt; for a particular piece of code. Now, this license has a big disclaimer in all-caps:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY&#xA;OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT&#xA;LIMITED TO THE WARRANTIES OF...&#xA;...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I've seen a normally capitalised disclaimer on &lt;a href=&quot;http://docs.python.org/license.html#zlib&quot; rel=&quot;nofollow&quot;&gt;the zlib license&lt;/a&gt; (notice that it is above the license text), and even software with no disclaimer at all (which implies, i take it, that there is indeed a guarantee?), but i'd like some sourced advice by a trusted party. I just haven't found any.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;GNU's &lt;a href=&quot;http://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;License notice for other files&lt;/em&gt;&lt;/a&gt; comes with this disclaimer:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;This file is offered as-is,&#xA;  without any warranty.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Short and simple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question therefore: Are there any trusted sources indicating that a short rather than long, and a normally spelled rather than capitalised disclaimer (or even one or the other) are safely usable in all of the jurisdictions I should be concerned with?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the purposes of this question, the software is released in the European Union, should it make any difference. &lt;/p&gt;&#xA;" OwnerUserId="6322" LastEditorUserId="6322" LastEditorDisplayName="" LastEditDate="2010-12-27T16:23:05.137" LastActivityDate="2010-12-27T16:33:17.670" Title="Can I remove all-caps and shorten the disclaimer on my License?" Tags="&lt;open-source&gt;&lt;license&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="2" />
  <row Id="30330" PostTypeId="2" ParentId="23718" CreationDate="2010-12-27T15:49:52.457" Score="0" ViewCount="" Body="&lt;p&gt;Fortran is most common, primarily due to legacy (people still run old code) and familiarity (most people who do HPC are not familiar with other kinds of languages).&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Features of modern programming languages like garbage collection or run-time polymorphism are not suitable for HPC since speed matters so not sure where C# or Java or C++ come in.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That is not true in general. Classical HPC was mostly doing linear algebra with machine-precision numbers. However, modern HPC is increasingly using supercomputers for a wider variety of crunching, like symbolic calculations with arbitrary mathematical expressions instead of machine precision numbers. This places quite different characteristics on the tools you use and it is not uncommon to use programming languages other than Fortran because symbolic computation can be prohibitively difficult without GC and other kinds of optimizing compiler such as OCaml's optimizing pattern match compiler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, read &lt;a href=&quot;http://arxiv.org/PS_cache/hep-th/pdf/0412/0412331v2.pdf&quot; rel=&quot;nofollow&quot;&gt;this paper&lt;/a&gt; by Fischbacher &lt;em&gt;et al.&lt;/em&gt; which says &quot;the authors have strong reason to believe that this may well be the largest symbolic calculation performed so far&quot;.&lt;/p&gt;&#xA;" OwnerUserId="11782" LastActivityDate="2010-12-27T15:49:52.457" CommentCount="1" />
  <row Id="30331" PostTypeId="2" ParentId="30329" CreationDate="2010-12-27T16:15:03.787" Score="2" ViewCount="" Body="&lt;p&gt;The all-caps disclaimer in the MIT license is more or less a copy-paste from the legal language found in commercial shrink-wrap licenses, where the spelling out of &quot;no warranties&quot; is required to be more legally precise than it needs to be for free software.  Since open-source licenses do exist that do not have this legal verbiage, I assume that the short form is probably OK.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As with all things legal, if you are really concerned about it, you should consult a lawyer that specializes in software licensing law.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-27T16:15:03.787" />
  <row Id="30332" PostTypeId="2" ParentId="25509" CreationDate="2010-12-27T16:17:01.750" Score="4" ViewCount="" Body="&lt;p&gt;Scala &lt;strong&gt;is&lt;/strong&gt; complex. No way around it! Its syntax is extremely flexible and can be customized in numerous ways (above all operators / infix notation) - and the type system has more different features than any other language I know. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So things aren't that straight as e.g. in Haskell: Typeclasses to cover them all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Scala tries to put together functional programming, OO, procedural programming and java libraries as well as own ideas, we finally end up with &lt;em&gt;lots of concepts&lt;/em&gt; that somehow seem to go &quot;in the same direction&quot;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Implicit values&lt;/li&gt;&#xA;&lt;li&gt;Implicit functions&lt;/li&gt;&#xA;&lt;li&gt;Existentials&lt;/li&gt;&#xA;&lt;li&gt;Wildcards&lt;/li&gt;&#xA;&lt;li&gt;Traits&lt;/li&gt;&#xA;&lt;li&gt;Interfaces&lt;/li&gt;&#xA;&lt;li&gt;Abstract classes&lt;/li&gt;&#xA;&lt;li&gt;Case classes&lt;/li&gt;&#xA;&lt;li&gt;Structural types&lt;/li&gt;&#xA;&lt;li&gt;Generic constraints&lt;/li&gt;&#xA;&lt;li&gt;View bounds&lt;/li&gt;&#xA;&lt;li&gt;Anonymous types&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Choosing among them seems difficult at first and one might easily wonder if one has found the &lt;em&gt;correct&lt;/em&gt; solution to some problem. It's even easily possible to produce hacky stuff by abusing &lt;code&gt;implicit&lt;/code&gt;s.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the interesting thing is: Scala works. It's sometimes hard to understand why (especially figuring out through what implicit conversions + inheritance + ... some object has got functionality &lt;code&gt;X&lt;/code&gt;), but you don't have to bother about that most of the times. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write Scala as straightforward as possible and it will work. &lt;strong&gt;Don't get confused by everything that is possible and just use what you need.&lt;/strong&gt; And if you need something, you can be sure that somehow Scala has it ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And the better you get, the more you'll be able to customize Scala with operators, implicits, monads, funky syntax ... and finally get something close to a DSL that will perfectly address your problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After all, you have always the possibility to just use Scala as a much much better Java with cleaner, easier syntax, type inference and some functional features. &lt;/p&gt;&#xA;" OwnerUserId="11506" LastActivityDate="2010-12-27T16:17:01.750" CommentCount="1" />
  <row Id="30333" PostTypeId="2" ParentId="30329" CreationDate="2010-12-27T16:26:42.887" Score="8" ViewCount="" Body="&lt;p&gt;IANAL, but one works with me. So, I asked. The result:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The caps allow you to say 'no way could they have missed the disclaimer, it is hardly fine print!' This is important in a license or EULA that non-lawyers must read and accept.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;There is a difference between 'express' and 'implied'. Some areas have laws that allow people to 'imply' a warranty, even though one was not explicitly offered, unless you make certain specifications. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;He suggested not making any changes to existing licenses, as that basically creates a whole new (and likely weaker) license. License proliferation is a problem. &lt;strong&gt;&lt;em&gt;Bad license proliferation&lt;/em&gt;&lt;/strong&gt; is a bigger problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The license is designed to protect &lt;em&gt;you&lt;/em&gt;, and given this brave new era of endless litigation, caps and run on sentences that very few people read to begin with are a small price to pay :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is one of the biggest reasons why V2/V3 of the (L|A)GPL specifically say that altering the license is prohibited. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;People sue, every day .. for damages that common sense should have averted. For instance &quot;How did I know the coffee was hot? I wouldn't have spilled it on my lap if it was labeled as so ..&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You really should take care not to weaken a 'shield' that prevents gold diggers from bothering you.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-27T16:33:17.670" LastActivityDate="2010-12-27T16:33:17.670" CommentCount="1" />
  <row Id="30334" PostTypeId="2" ParentId="7559" CreationDate="2010-12-27T16:28:08.087" Score="0" ViewCount="" Body="&lt;p&gt;I fix the bug and I do &lt;strong&gt;separate commits&lt;/strong&gt;, one for each fix/feature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the time, the changes are not in the same file, so it's easy to separate the commits. If the changes are in the same file, I use TortoiseHg (a mecurial GUI front-end) to select precisely the diffs I want to commit (I think it's possible to do this on the command line with the &lt;strong&gt;Record extension&lt;/strong&gt;, but it's less convenient).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people use the &lt;strong&gt;Mercurial Queues&lt;/strong&gt; to isolate the minor fixes while working on a feature. The minor fixes are stacked up in the MQ, and when the feature is finished and committed, the content of the queue is also committed (one changeset for each entry in the queue).&lt;/p&gt;&#xA;" OwnerUserId="3527" LastActivityDate="2010-12-27T16:28:08.087" />
  <row Id="30335" PostTypeId="2" ParentId="30297" CreationDate="2010-12-27T16:28:56.193" Score="4" ViewCount="" Body="&lt;p&gt;As @Anna said, definitely not evil. Sure you can put operations (methods) into classes, but only if you &lt;em&gt;want&lt;/em&gt; to. You don't &lt;em&gt;have&lt;/em&gt; to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Permit me a small gripe about the idea that you have to put operations into classes, along with the idea that classes are abstractions.&#xA;In practice, this encourages programmers to&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Make more classes than they need to (redundant data structure). When a data structure contains more components than minimally necessary, it is un-normalized, and therefore contains inconsistent states. In other words, when it is altered, it needs to be altered in more than one place in order to remain consistent. Failure to perform all coordinated changes makes it inconsistent, and is a bug.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Resolve problem 1 by putting in &lt;em&gt;notification&lt;/em&gt; methods, so that if part A is modified, it tries to propagate necessary changes to parts B and C. This is the primary reason why it is recommended to have get-and-set accessor methods. Since this is recommended practice, it appears to excuse problem 1, causing more of problem 1 and more of solution 2. This results not only in bugs due to incompletely implementing the notifications, but to a performance-sapping problem of runaway notifications. These are not infinite computations, merely very long ones.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;These concepts are taught as good things, generally by teachers who haven't had to work within million-line monster apps riddled with these issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's what I try to do:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Keep data as normalized as possible, so that when a change is made to the data, it is done at as few code points as possible, to minimize the likelihood of entering an inconsistent state.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When data must be un-normalized, and redundancy is unavoidable, do not use notifications in an attempt to keep it consistent. Rather, tolerate temporary inconsistency. Resolve inconsistency with periodic sweeps through the data by a process that does only that. This centralizes the responsibility for maintaining consistency, while avoiding the performance and correctness problems that notifications are prone to. This results in code that is much smaller, error-free, and efficient.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-12-27T18:35:37.673" LastActivityDate="2010-12-27T18:35:37.673" />
  <row Id="30336" PostTypeId="1" AcceptedAnswerId="30352" CreationDate="2010-12-27T16:04:33.713" Score="2" ViewCount="150" Body="&lt;p&gt;I am working on a open source project in pure &lt;code&gt;C&lt;/code&gt;, that I have started some time ago, but only recently found time to add some features. I can clearly some weaknesses of my old design, so I am trying to refactor my old code. I have no idea however, how to evaluate properly my new code. Do you know about any techniques or tools for code evaluation? I am pretty good with object oriented design, but for about three years I had no contact with purely structural one. Therefore I don't have enough experience, to be able to discern between good and bad design choices.&lt;/p&gt;&#xA;" OwnerUserId="9753" LastActivityDate="2010-12-27T19:37:43.903" Title="how to evaluate own project" Tags="&lt;c&gt;&lt;design&gt;&lt;refactoring&gt;&lt;structural-design&gt;" AnswerCount="5" CommentCount="9" />
  <row Id="30337" PostTypeId="2" ParentId="30336" CreationDate="2010-12-27T16:21:26.370" Score="0" ViewCount="" Body="&lt;p&gt;If you are looking for a simple answer, I would always keep in mind D.R.Y. Don't Repeat Yourself. If you have copy and pasted code from one area to another, you are probably doing it wrong. Cut and paste is fine, copy and paste not so much. Also if your code is hard to unit test then I would be concerned about the design.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T16:41:53.323" CommentCount="2" />
  <row Id="30338" PostTypeId="2" ParentId="30210" CreationDate="2010-12-27T16:48:20.147" Score="1" ViewCount="" Body="&lt;p&gt;When I was coding FORTRAN and PL/I back in the late 80s and early 90s on DEC and IBM minicomputer and mainframe systems, I seem to remember the compilers would regularly log out messages like &quot;blah blah error; assuming blah blah and continuing...&quot;.  Back then, this was a legacy of the (even earlier, before my time) days of batch processing and punched cards when there was likely an enormous wait between submitting your code to run and getting the results back.  So it made a lot sense for compilers to make an attempt to second-guess the programmer and carry on rather than abort on the first mistake encountered.  Mind you, I don't remember the &quot;corrections&quot; being particularly sophisticated.  When I eventually moved onto interactive Unix workstations (Sun, SGI etc), I did notice the feature seemed to be entirely absent from their C compilers.&lt;/p&gt;&#xA;" OwnerUserId="4966" LastActivityDate="2010-12-27T16:48:20.147" CommentCount="2" />
  <row Id="30339" PostTypeId="2" ParentId="30336" CreationDate="2010-12-27T16:52:55.230" Score="0" ViewCount="" Body="&lt;p&gt;I think that when dealing with OOP one good idea to keep in mind is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Keep class lightweight, i read some where this quoute: &quot;Keep it simple stupid&quot;&lt;/li&gt;&#xA;&lt;li&gt;When facing some peace of code that you think might need flexibility. It's always good to give it some time and check for Design Patterns that may add some goodness to your solution (you wont regret it)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-27T16:52:55.230" />
  <row Id="30340" PostTypeId="2" ParentId="23718" CreationDate="2010-12-27T16:59:56.370" Score="0" ViewCount="" Body="&lt;p&gt;Fortran, for some good and some not-so-good reasons. For heavy math crunching, a good reason is there are extensive libraries (BLAS, LAPACK) of tried-and-true subroutines, all written in Fortran (though those can be called from C and C++).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A not-so-good reason is the supposed performance advantage of Fortran over C/C++. Optimizers are pretty good, and few people understand that the benefit of optimizing a piece of code is proportional to the percent of time it is busy, which in almost all code is almost zero.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another not-so-good reason is a culture gap between CS and non-CS programmers.&#xA;Scientific programmers tend to be taught bad habits in Fortran, and to look down on the CS programmers and the bad habits &lt;em&gt;they&lt;/em&gt; have been taught, and who look down on the former.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2010-12-27T17:05:47.050" LastActivityDate="2010-12-27T17:05:47.050" CommentCount="2" />
  <row Id="30341" PostTypeId="2" ParentId="30336" CreationDate="2010-12-27T17:04:23.580" Score="2" ViewCount="" Body="&lt;p&gt;Do &lt;a href=&quot;http://en.wikipedia.org/wiki/Test-driven_development&quot; rel=&quot;nofollow&quot;&gt;Test-Driven Development&lt;/a&gt;, not only it will help you to test everything is right and give your open-source audience a sense of stability, but also force you to write modular, better architected and more refined code.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-27T17:04:23.580" CommentCount="1" />
  <row Id="30342" PostTypeId="2" ParentId="30210" CreationDate="2010-12-27T17:06:45.677" Score="0" ViewCount="" Body="&lt;p&gt;Such a compiler would simply be a relaxed, non-standard implementation of whatever language it's compiling.&lt;/p&gt;&#xA;" OwnerUserId="6385" LastActivityDate="2010-12-27T17:06:45.677" />
  <row Id="30343" PostTypeId="2" ParentId="30254" CreationDate="2010-12-27T17:09:57.390" Score="2" ViewCount="" Body="&lt;p&gt;Garbage collection can be more efficient - it basically 'batches up' the overhead of the memory management and does it all at once. In general this will result in less overall CPU being expended on memory de-allocation, but it means that you'll have a big burst of de-allocation activity at some point. If the GC isn't properly designed this can become visible to the user as a 'pause' while the GC tries to de-allocate memory. Most modern GCs are very good at keeping this invisible to the user except under the most adverse conditions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Smart pointers (or any reference counting scheme) have the advantage that they happen exactly when you'd expect from looking at the code (smart pointer goes out of scope, thing gets deleted). You get little bursts of de-allocation here and there. You overall may use more CPU time on de-allocation, but since it's spread out over all of the things happening in your program, it's less likely (baring de-allocate of some monster data structure) to become visible to your user. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are doing something where responsiveness matters, I would suggest that smart pointers/ref counting let you know exactly when things are happening, so you can know while coding what's likely to become visible to your users. In a GC setting you have only the most ephemeral of control over the garbage collector and simply have to try to work around the thing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if overall throughput is your goal, a GC based system may be a much better choice, as it minimizes the resources needed to do memory management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cycles: I do not consider the problem of cycles to be a significant one. In a system where you have smart pointers, you tend toward data structures that don't have cycles, or you are simply careful about how you let go of such things. If necessary, keeper objects that know how to break the cycles in the owned objects can be used in order to automatically insure proper destruction. In some realms of programming this may be important, but for most day-to-day work, it's irrelevant.&lt;/p&gt;&#xA;" OwnerUserId="6294" LastActivityDate="2010-12-27T17:09:57.390" CommentCount="1" />
  <row Id="30344" PostTypeId="2" ParentId="25600" CreationDate="2010-12-27T17:55:25.930" Score="0" ViewCount="" Body="&lt;p&gt;I'd recommend looking at Bazaar for version control. Compared to Git it has the major advantage that it is actually easy to use and install on Windows, Mac OS and Linux. Also the bzr commands are very similiar to it's svn counterparts, therefore somebody who has worked with Subversion before can easily use Bazaar without to much of a learning curve. I'm looking at you Git.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from that I am a strong believer in don't force anything on your developers. That beeing said let them use the IDE, operating system and so on that they prefer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from that I strongly recommend you do wirte tests for all your code, no matter how tedious that is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The decision for or against a framework imho isn't something you can do based on recommendations made here. I suggest you list the ones that look promising to you based on their features and then write a small test app in every one of them. (Write the same one each time.)&lt;/p&gt;&#xA;" OwnerUserId="11802" LastActivityDate="2010-12-27T17:55:25.930" />
  <row Id="30345" PostTypeId="1" CreationDate="2010-12-27T18:00:25.667" Score="8" ViewCount="208" Body="&lt;p&gt;Recently, I've been switching between several projects and development environments. The expectations for coding style in each is different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, my question is three part, the first, just of curiosity:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;How did you define and find your coding style?&lt;/li&gt;&#xA;&lt;li&gt;How do you keep augmenting and improving it?&lt;/li&gt;&#xA;&lt;li&gt;How do you maintain it? (From mental notes, keeping a document, using a tool like StyleCop etc.)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1345" LastActivityDate="2010-12-27T20:40:51.157" Title="How have you found, refined and maintained your coding style?" Tags="&lt;coding-style&gt;&lt;maintenance&gt;" AnswerCount="7" FavoriteCount="3" />
  <row Id="30346" PostTypeId="2" ParentId="29912" CreationDate="2010-12-27T18:01:39.427" Score="0" ViewCount="" Body="&lt;p&gt;As a practical matter, IntelliSense support is quite lacking -- to the point where the productivity gains of type inference are outdone by the less-sophisticated autocomplete available in C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The error messages caused by erroneous type inferences also take longer to fix for beginners (and often for intermediate users like myself), simply because you're less inclined to provide type annotations than you would in a language like C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OOP is also lacking in surprising ways in F#; for instance, there's no support for nested types/classes. You have to be careful when you're porting code, because there are some things that you can do in C# that you can't do in F#, sadly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Last but not least, both the size &lt;em&gt;and&lt;/em&gt; the quality of the F# community is sort of disappointing. A lot of the F# information out there on the web is either for old versions or simply not very good -- either un-idiomatic, poor performance or flat out incorrect. Then there are people charging huge money for newsletters that are largely just of existing information digests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I myself use C# for work projects and F# for my own stuff. As much as I love F#, unfortunately, it's a bit hard to predict how/when things might fall apart.&lt;/p&gt;&#xA;" OwnerUserId="6385" LastActivityDate="2010-12-27T18:01:39.427" CommunityOwnedDate="2010-12-27T18:01:39.427" CommentCount="3" />
  <row Id="30347" PostTypeId="2" ParentId="30345" CreationDate="2010-12-27T18:05:55.890" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;№1. # How did you define and find your coding style?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Through code samples first in books, then in MSDN texts and articles, then blogs and other web sites.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;№2. How do you keep augmenting and improving it?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I keep my eye open to all suggestions people make. I try them out, if they work for me, they stick. I also experiment from time to time, what seems to improve things stays with me.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;№3. How do you maintain it? (From mental notes, keeping a document, using a tool like StyleCop etc.)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I sort of remember my style and apply it automatically everywhere.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Note 1. Keeping an eye open and an ear sharp is extremely important to stay current. Years ago I learned from others the Hungary notation was a must so I followed it. When the community realized it was not so great I changed with everybody.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note 2. It is often not that important what particular style elements you adopt but rather that you keep your style consistent throughout your codes. The same applies for a team. Choose some style but then stick to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note 3. Coding styles for different languages may vary. C++ deserves one style, Java the other. HTML and CSS have their characteristics require some different style again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note 4. Whatever style you choose, understand and accept that it won't work 100%. Sometimes you have some code that requires a different style just in-place, either split multiline, different alignment or whatever to keep that particular code piece more readable. Don't push your style everywhere, focus on the code readability. If it is obvious, the style doesn't work in this particular place, make an exception.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note 5. Don't make following a code style to a religion. Tools enforcing a code style are good, but sometimes can make you mad. I for instance disabled the Visual Studio's automatic code formatting because it was driving me nuts. If a tool becomes an obstacle, just add an exception and don't worry that your code isn't 100% compliant. It's not that important really and perfection not achievable is anyway.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2010-12-27T18:15:20.267" LastActivityDate="2010-12-27T18:15:20.267" CommentCount="2" />
  <row Id="30348" PostTypeId="1" AcceptedAnswerId="30351" CreationDate="2010-12-27T16:57:56.000" Score="11" ViewCount="938" Body="&lt;p&gt;There are a number of questions on StackOverflow regard MVC best practices, but most of those seem to revolve around things like using Dependancy Injection, or creating helper functions, or do's and don'ts of what to do in views and controllers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is more about how to architect an MVC application.  For example, we are encouraged to use DI with the Repository pattern to decouple data access from the controller, however very little is said on HOW to do that specifically for MVC.  Where would we place the Repository classes, for instance?  They don't seem to be model related specifically, since the model should likewise be relatively decoupled from the actual data access technologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A second question involves how to structure the layers or tiers.  Most example applications (Nerd dinner, Music Store, etc..) all seem to use a single tier, 2 layer approach (not counting tests) that typically has controllers directly calling L2S or EF code.  If I want to create a multi-tier/layer aplication what are some of the best practices there in regards to MVC?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This question is one-part standard q-a, but another part best-practices, so it could go either here or programmers.se, I am marking it CW.  If you feel it would be better suited to programmers.se then it can be migrated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:  What happened to the Community Wiki option?  It seems to be gone.&lt;/p&gt;&#xA;" OwnerUserId="4368" LastActivityDate="2010-12-27T18:07:21.890" Title="Best Practices for MVC Architecture" Tags="&lt;asp.net-mvc&gt;&lt;architecture&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="4" />
  <row Id="30349" PostTypeId="2" ParentId="30348" CreationDate="2010-12-27T17:15:06.420" Score="2" ViewCount="" Body="&lt;p&gt;DI is accomplished in ASP MVC using a Controller Factory. This factory is used to resolve your controller dependencies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check this out:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://nayyeri.net/custom-controller-factory-in-asp-net-mvc&quot; rel=&quot;nofollow&quot;&gt;Controller Factory&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;MvcContrib has some Controller Facotry implementations that you can use out of the box. I use their Castle Windsor implementation and it works well. Would also suggest checking out their TestHelper Class. It has some very cool functionality for mocking Controller HTTPContext, Sessions, etc..&#xA;&lt;a href=&quot;http://mvccontrib.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;MVCContrib&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I like to give my Models a Repository instance to work with. The model exposes an api to the repository(CRUD). The controller's dependency on a particular model is injected on creation (constructor) this is injected via the Controller Factory. This is my entry point to the object graph which my IoC container manages.&#xA;&lt;a href=&quot;http://stw.castleproject.org/Windsor.MainPage.ashx&quot; rel=&quot;nofollow&quot;&gt;Castle Windsor&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good Luck!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:07:21.890" />
  <row Id="30350" PostTypeId="2" ParentId="30348" CreationDate="2010-12-27T17:15:16.043" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Where would we place the Repository classes, for instance? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;They belong in the model; they're the in-application model.  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How to do I structure the layers? If I want to create a multi-tier/layer application what are some of the best practices there in regards to MVC?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Tiers Represent physical separations of code. Layers represent logical separations. The layers (as they presently are) work well for MVC. Depending on the amount of business logic, it can either be placed in your Controller, or it can be placed in a separate assembly and can be used by the controller during the request cycle.&lt;/p&gt;&#xA;" OwnerUserId="1577" LastActivityDate="2010-12-27T18:07:21.890" CommentCount="4" />
  <row Id="30351" PostTypeId="2" ParentId="30348" CreationDate="2010-12-27T17:32:29.710" Score="2" ViewCount="" Body="&lt;p&gt;its a great question, the examples I found to be extremely helpful are&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have posted an answer before (&lt;a href=&quot;http://stackoverflow.com/questions/4412396/data-access-layer-in-net/4414011#4414011&quot;&gt;here&lt;/a&gt;), which is relevant for this question&lt;/p&gt;&#xA;&#xA;&lt;p&gt;in short&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using Open Source:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.sharparchitecture.net/&quot; rel=&quot;nofollow&quot;&gt;http://www.sharparchitecture.net/&lt;/a&gt; - an architecture using NH and looking to use EF later&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://whiteboardchat.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;http://whiteboardchat.codeplex.com/&lt;/a&gt; - look at the report too&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://whocanhelpme.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;http://whocanhelpme.codeplex.com/&lt;/a&gt; - I like this, its built on top of Sharp Arch&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Using MS&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.dofactory.com/Framework/Framework.aspx&quot; rel=&quot;nofollow&quot;&gt;http://www.dofactory.com/Framework/Framework.aspx&lt;/a&gt; - have to pay for&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://microsoftnlayerapp.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;http://microsoftnlayerapp.codeplex.com/&lt;/a&gt; - Ntier app&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The last 1, I believe is across multiple tiers, and Sharp Arhcitecture using WCF also can use multiple tiers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;a last note. to achive a 3 tier arch with a 2 tier application (3 logical tiers) you can use a &lt;a href=&quot;http://www.codeproject.com/KB/web-security/HTTPReverseProxy.aspx&quot; rel=&quot;nofollow&quot;&gt;reverse proxy&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9691" LastActivityDate="2010-12-27T18:07:21.890" />
  <row Id="30352" PostTypeId="2" ParentId="30336" CreationDate="2010-12-27T18:16:01.137" Score="2" ViewCount="" Body="&lt;p&gt;The question is so general, that the answers will either concern one point (as &quot;don't copy-paste code&quot;, &quot;one method must do one and one only thing&quot;, &quot;comment your code properly&quot;, etc.), or be also too general, like mine:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are two ways to evaluate your own project.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The first one is obviously to give this project to a more experienced developer, and to count the number of WTFs during review.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/hRm0M.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;br&gt;&#xA;(&lt;a href=&quot;http://www.osnews.com/story/19266/WTFs_m&quot; rel=&quot;nofollow&quot;&gt;source&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with this approach that it is more the developer is experienced, better will be the review, but you will receive more criticism from a more experienced developer, so it may be really discouraging and depressing. On the other hand, if you choose a developer which does not want to criticize you too much or is not very experienced, their review may not be too useful.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The second way is to wait when you will acquire more experience, then review your own project, thus optimizing, refactoring and modifying the code.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You can then determine a lifespan of your code, and try to review it regularly. For example, in my case, the lifespan is one year: it means that I may modify the code which I wrote six months ago, but if the code was written two years ago, it has a strong chance of being thrown, then rewritten completely, since it just sucks too much.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;To resume, there are no ways to really evaluate your own code. It &lt;em&gt;is&lt;/em&gt; perfect for you at the moment when you write it. But the same code &lt;em&gt;is&lt;/em&gt; bad when reviewed by a more experienced developer, and this same code &lt;em&gt;will&lt;/em&gt; be bad when you will review it after learning and understanding new things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, there is &lt;strong&gt;no &lt;em&gt;objective&lt;/em&gt; way to evaluate the quality of code&lt;/strong&gt;: you can only evaluate the quality of code (and so your skills) relatively to the code of other developers (and yourself after learning more things).&lt;/p&gt;&#xA;" OwnerUserId="6605" LastActivityDate="2010-12-27T18:16:01.137" />
  <row Id="30354" PostTypeId="2" ParentId="30297" CreationDate="2010-12-27T18:29:49.947" Score="7" ViewCount="" Body="&lt;p&gt;If this is the sort of thing you need, that's fine, but please, please, please do it like&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class Bottle {&#xA;    public int height;&#xA;    public int diameter;&#xA;    public Cap capType;&#xA;&#xA;    public Bottle(int height, int diameter, Cap capType) {&#xA;        this.height = height;&#xA;        this.diameter = diameter;&#xA;        this.capType = capType;&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;instead of something like&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class Bottle {&#xA;    private int height;&#xA;    private int diameter;&#xA;    private Cap capType;&#xA;&#xA;    public Bottle(int height, int diameter, Cap capType) {&#xA;        this.height = height;&#xA;        this.diameter = diameter;&#xA;        this.capType = capType;&#xA;    }&#xA;&#xA;    public int getHeight() {&#xA;        return height;&#xA;    }&#xA;&#xA;    public void setHeight(int height) {&#xA;        this.height = height;&#xA;    }&#xA;&#xA;    public int getDiameter() {&#xA;        return diameter;&#xA;    }&#xA;&#xA;    public void setDiameter(int diameter) {&#xA;        this.diameter = diameter;&#xA;    }&#xA;&#xA;    public Cap getCapType() {&#xA;        return capType;&#xA;    }&#xA;&#xA;    public void setCapType(Cap capType) {&#xA;        this.capType = capType;&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Please.&lt;/p&gt;&#xA;" OwnerUserId="9521" LastActivityDate="2010-12-27T18:29:49.947" CommentCount="9" />
  <row Id="30355" PostTypeId="1" CreationDate="2009-09-11T14:55:17.967" Score="143" ViewCount="1356" Body="&lt;p&gt;My last job evaluation included just one weak point: timeliness. I'm already aware of some things I can do to improve this but what I'm looking for are some more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone have tips or advice on what they do to increase the speed of their output without sacrificing its quality?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you estimate timelines and stick to them? What do you do to get more done in shorter time periods?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any feedback is greatly appreciated, thanks,&lt;/p&gt;&#xA;" OwnerUserId="21011" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T14:55:17.967" Title="How to become a &quot;faster&quot; programmer?" Tags="&lt;performance&gt;&lt;methodology&gt;" AnswerCount="92" CommentCount="19" FavoriteCount="8" />
  <row Id="30356" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T14:57:13.843" Score="12" ViewCount="" Body="&lt;p&gt;I &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0340909129&quot; rel=&quot;nofollow&quot;&gt;do it tomorrow&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0142000280&quot; rel=&quot;nofollow&quot;&gt;Getting Things Done&lt;/a&gt; is also immensely helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a short attention span anyway, so these books help me keep my foc... what was I doing again?&lt;/p&gt;&#xA;" OwnerUserId="8506" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T14:57:13.843" CommentCount="1" />
  <row Id="30357" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T14:57:46.010" Score="2" ViewCount="" Body="&lt;p&gt;Practice. That, and getting your hands on productivity tools that allow you to go faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example (you didn't mention the platform on which you work), in the .NET environment, there's Resharper.&lt;/p&gt;&#xA;" OwnerUserId="2039" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T14:57:46.010" CommentCount="3" />
  <row Id="30358" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T14:58:45.057" Score="32" ViewCount="" Body="&lt;p&gt;Avoid polishing your code to the perfection, just make it work. That's what the business expects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But often, increasing speed implies sacrificing quality.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T14:58:45.057" CommentCount="9" />
  <row Id="30359" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T14:58:46.163" Score="176" ViewCount="" Body="&lt;p&gt;Turn off the computer.  Grab a pencil and some paper.  Sketch out your design.  Review it with your peers.  Then write the code.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T14:58:46.163" CommentCount="21" />
  <row Id="30360" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T14:59:37.720" Score="29" ViewCount="" Body="&lt;p&gt;Re-use - I try to factor out any clever bits from previous projects, so I can use them again in future ventures. It's always worth asking yourself &quot;could I use this again someday?&quot;&lt;/p&gt;&#xA;" OwnerUserId="16879" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T14:59:37.720" CommentCount="3" />
  <row Id="30361" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T14:59:54.320" Score="12" ViewCount="" Body="&lt;p&gt;Practice and hard work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to put the time and effort in. As you become more comfortable and confident with whatever tools your using, speed and creativity should follow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to improve any particular skill, it may also help to design exercises which will let you work specifically on that. If your slowness is in the design phase, try to find design problems to work on online. Redoing the same exercise will let you complete it faster and practice speed. I personally like &lt;a href=&quot;http://www.topcoder.com/tco09&quot; rel=&quot;nofollow&quot;&gt;TopCoder's algorithm exercises&lt;/a&gt; for practising sheer programming speed. They have design challenges too, but I have not tried them.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T14:59:54.320" CommentCount="2" />
  <row Id="30362" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:00:01.043" Score="86" ViewCount="" Body="&lt;p&gt;Really, really learn your editor.  If you use an IDE make sure you're using all the features it offers.  Get a cheat sheet to learn the keyboard shortcuts for your editor of choice. If you're using a shell set up shortcuts for commonly used directories&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:00:01.043" CommentCount="14" />
  <row Id="30363" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:00:05.050" Score="10" ViewCount="" Body="&lt;p&gt;Knowing your IDE and framework well. Having to turn to Google for every little thing takes time.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:00:05.050" CommentCount="1" />
  <row Id="30364" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:00:07.967" Score="24" ViewCount="" Body="&lt;p&gt;Keep it simple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you use TDD, you should follow &quot;&lt;strong&gt;red, green, refactor&lt;/strong&gt;&quot;:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Write a failing test (&lt;strong&gt;red&lt;/strong&gt;). (Often for functionality your code does not yet have.)&lt;/li&gt;&#xA;&lt;li&gt;Commit horrible coding crimes to get your tests to pass (&lt;strong&gt;green&lt;/strong&gt;). Hardcode if necessary.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Refactor&lt;/strong&gt;, probably breaking tests for a short while, but overall improving the design.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="15144" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:00:07.967" CommentCount="9" />
  <row Id="30365" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:00:48.920" Score="7" ViewCount="" Body="&lt;p&gt;Learn your development IDE in and out. Learn the shortcut keys. Learn to use the mouse less. I find that this saves much time for me.&lt;/p&gt;&#xA;" OwnerUserId="11510" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:00:48.920" />
  <row Id="30366" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:01:23.410" Score="14" ViewCount="" Body="&lt;p&gt;Do it right, the best way, first time.  If that means you have to stop and think about it for a while before you start, then do it.  Works 90% of the time.&lt;/p&gt;&#xA;" OwnerUserId="2195" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:01:23.410" CommentCount="4" />
  <row Id="30367" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:01:45.813" Score="136" ViewCount="" Body="&lt;p&gt;Some ideas...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Avoid gold plating - do only what is asked of you (in terms of requirements)&lt;/li&gt;&#xA;&lt;li&gt;Understand business requirements and do it right the first time&lt;/li&gt;&#xA;&lt;li&gt;Thoroughly understand your environment and tools&lt;/li&gt;&#xA;&lt;li&gt;Become a fantastic typist, use keyboard shortcuts instead of the mouse&lt;/li&gt;&#xA;&lt;li&gt;Take an interative approach and build in sanity checks to ensure you are on the right path&lt;/li&gt;&#xA;&lt;li&gt;Don't reinvent the wheel, consider reusing past work and the work of others&lt;/li&gt;&#xA;&lt;li&gt;Eliminate distractions, don't keep checking email, looking outside, talking to coworkers, etc.&lt;/li&gt;&#xA;&lt;li&gt;Don't overwork yourself - recognize when you need to take breaks&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11949" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:01:45.813" CommentCount="9" />
  <row Id="30368" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:04:13.887" Score="5" ViewCount="" Body="&lt;p&gt;The technique that I use is &lt;a href=&quot;http://en.wikipedia.org/wiki/Software%5Fprototyping#Evolutionary%5Fprototyping&quot; rel=&quot;nofollow&quot;&gt;evolutionary prototyping&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can google for more info - but if the need is to produce something quickly, it's about the only way to go. Plus, it has the benefit that when the users says that he likes it, your'e done (... and can start doing the documentation).&lt;/p&gt;&#xA;" OwnerUserId="4174" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:04:13.887" />
  <row Id="30369" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:05:03.513" Score="36" ViewCount="" Body="&lt;p&gt;&quot;Does anyone have tips or advice on what they do to increase the speed of their output without sacrificing its quality?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many, many people strive for &quot;ultimate&quot; quality at the expense of something that is (a) simple, (b) reliable and (c) correct.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most important way to speed up your development is to &lt;strong&gt;simplify&lt;/strong&gt; what you are doing so that it is absolutely as simple as possible.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most folks that have problems with delivering on time are delivering way, way too much.  And the reasons given are often silly.  They're often just perceived requirements, not actual requirements.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've heard a lot of people tell me what the customer &quot;expects&quot;.  This is a bad policy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Build the simplest possible thing.  If the customer requires more, build more.  But build the simplest possible thing first.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:05:03.513" CommentCount="7" />
  <row Id="30370" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:06:47.003" Score="3" ViewCount="" Body="&lt;p&gt;Think before what to do !!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Design the Program in your mind or better with pencil and paper . Then your experience and Practice will provide the rest of things :)&lt;/p&gt;&#xA;" OwnerUserId="22522" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:06:47.003" />
  <row Id="30371" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:07:49.230" Score="18" ViewCount="" Body="&lt;p&gt;Notice when you have been reading Stack Overflow for too long.  The &quot;Compiling&quot; excuse only works for so long. :)&lt;/p&gt;&#xA;" OwnerUserId="8506" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:07:49.230" CommentCount="2" />
  <row Id="30372" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:09:04.173" Score="4" ViewCount="" Body="&lt;p&gt;Read Neal Ford's excellent book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596519788&quot; rel=&quot;nofollow&quot;&gt;The Productive Programmer&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's full of lots of useful tips.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;hr /&gt;&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Edit:&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;And, as mentioned elsewhere, read the docs for your tools. I'm always learning new things for Vim by reading Vim wikis. Similarly, just reading through the man page for bash or zsh always gives new tricks to use.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:09:04.173" />
  <row Id="30373" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:10:51.500" Score="4" ViewCount="" Body="&lt;p&gt;I read something a long time ago about optimization that really stuck with me.  I don't remember the source or the exact words, but the gist of it was, &quot;The only way to make a program run faster is to make it do less.  Any other plan is just that.&quot;  The same goes for humans.  The army also has a saying, &quot;Haste makes waste.&quot;  Doing the same things we do now, but faster, will only create problems.  There are many different plans for becoming more productive out there, and I'm not saying they aren't effective, but they won't be tailored to your needs.  You're better off looking at what you do and finding the things you do that aren't productive, and cutting those out.  Any other plan is just a watered-down version of that.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:10:51.500" />
  <row Id="30374" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:11:00.020" Score="6" ViewCount="" Body="&lt;p&gt;Are you slower than your colleagues, or are your estimates more overoptimistic?&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:11:00.020" />
  <row Id="30375" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:13:46.907" Score="7" ViewCount="" Body="&lt;p&gt;To produce software faster, I've found the best thing to do is to learn your runtime API as best as possible. Don't type out list logic when a LINQ extension will do; don't build a bunch of event listeners when binding will work, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as estimation, that comes with experience. You can make use of estimation software out there to help you figure out better estimates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I found with junior level developers, take whatever their initial estimate is and multiply it by 2, then double it. This will account for all of the learning, meetings, wasted time, etc. The more senior level developers tend to work at a factor of 2 over their estimates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often times, the question is not if your estimate was wrong. It's did your estimate account for all the right things? Are you giving your estimates and timelines in terms of coding effort or in terms of calendar time? Think about all the time in your day and how much of it is actual, productive coding vs. meetings, learning, debugging, etc.&lt;/p&gt;&#xA;" OwnerUserId="17189" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:13:46.907" CommentCount="2" />
  <row Id="30376" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:21:55.403" Score="7" ViewCount="" Body="&lt;p&gt;Two things that might be implied, but I haven't seen among the answers here yet that increases productivity are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Use some sort of build and deployment scripts. Compiling, deploying, restarting app-server and such musn't suck up either time or focus, it should be a one-click kind of thing.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Have some sort of version control. Having to code without being able to roll back a change is like trying to walk on eggs &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:21:55.403" />
  <row Id="30377" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:22:29.803" Score="1" ViewCount="" Body="&lt;p&gt;It's always the same sole decision, fast development vs. quality, readability, extensibility.&#xA;Drag and drop of controls and infinite code-behind files (quick and dirty) or modularity, patterns and practices (long term investment)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my honest opinion, everyone must invest in the long term way of coding. As time passes, the fast development is going to be of great quality as well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However in case I didn't understand your inquiry, and you are seeking answers in terms of practical aspects of fast development, like tooling, code generators and other stuff, my opinion is to start using Resharper and learn as much you can about your IDE :)&lt;/p&gt;&#xA;" OwnerUserId="2197" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:22:29.803" />
  <row Id="30378" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:22:40.413" Score="6" ViewCount="" Body="&lt;p&gt;A couple of ideas come to mind:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Get other opinions on your estimates - Are there other developers that you could ask something like &quot;Hey, do you think you can get this kind of feature done in this timeframe?&quot;  The idea being that other people's input may help with accuracy in some cases as someone may note a bunch of things you missed in making the estimate.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Hone your estimation skill - Start tracking how off you are on the estimates and why you are off:  Are other work items causing deadlines to not be met?  Are you consistently underestimating how complicated something is?  Are you giving an entire timeline when it isn't practical,e.g. what is asked is vague enough that merely getting a prototype up will take weeks and then there should be a re-evaluation of what else is to be done?  Doing this may help the most in building that skill so that if you say something will take x hours, you can have confidence in that because you have done it over and over and over again.  An alternative way to state this is merely practice, practice, practice.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Granted you probably already considered these, but I just thought it worthwhile to state this for those others out there that may not have considered these ideas.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:22:40.413" />
  <row Id="30379" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:27:37.623" Score="13" ViewCount="" Body="&lt;p&gt;Learn to &lt;a href=&quot;http://steve-yegge.blogspot.com/2008/09/programmings-dirtiest-little-secret.html&quot; rel=&quot;nofollow&quot;&gt;touch-type as quickly as possible&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3266" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:27:37.623" CommentCount="3" />
  <row Id="30380" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:36:59.660" Score="23" ViewCount="" Body="&lt;p&gt;Download all your languages/libraries documentation locally to your computer, then unplug your network cable/turn off &lt;a href=&quot;http://en.wikipedia.org/wiki/Wi-Fi&quot; rel=&quot;nofollow&quot;&gt;Wi-Fi&lt;/a&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not trying to be funny here. This really helps me!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:36:59.660" CommentCount="5" />
  <row Id="30381" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:50:31.573" Score="7" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Know the technology inside and out.&lt;/li&gt;&#xA;&lt;li&gt;Stop! Think! Go!&lt;/li&gt;&#xA;&lt;li&gt;Architect for whatever may arise, but implement only what is really asked for.&lt;/li&gt;&#xA;&lt;li&gt;KISS - Keep It Simple Stupid&lt;/li&gt;&#xA;&lt;li&gt;If it is getting too complex, probably, it is not well thought. (Go back to 2 and 4)&lt;/li&gt;&#xA;&lt;li&gt;Don't get stuck in 5. It often pays to start from scratch (Go back to 2 and 4)&lt;/li&gt;&#xA;&lt;li&gt;Go back to 1.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:50:31.573" />
  <row Id="30382" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T15:55:03.653" Score="18" ViewCount="" Body="&lt;p&gt;Avoid switching tasks too often. Distractions and task switching can kill a day, even if you use tools like &lt;a href=&quot;http://en.wikipedia.org/wiki/Mylyn&quot; rel=&quot;nofollow&quot;&gt;Mylyn&lt;/a&gt; to manage your tasks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Figure out a granularity (e.g., 30 minutes) and only work on things related to the task at hand. Anything else (new bug reports, emails about other issues, procedural matters that are unrelated) is delayed at least until the &quot;next checkpoint&quot;. Make sure to disable popping up email notifications so you won't get sucked in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's especially effective if you have a buddy on your team who will let you know if things really melt down and require your immediate attention. &lt;/p&gt;&#xA;" OwnerUserId="13740" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T15:55:03.653" CommentCount="2" />
  <row Id="30383" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T16:17:04.507" Score="2" ViewCount="" Body="&lt;p&gt;Re-negotiate the estimates and timescales. Make sure &lt;strong&gt;you&lt;/strong&gt; are the one who says how long something will take, and don't succumb to any &quot;well, we need it done sooner&quot; or &quot;how about a stretch-target&quot; suggestions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read Joel Spolsky's article on estimates, which basically advocates breaking the piece of work into small chunks, and estimate each one. If any of them are counted in days, break them down further until you have everything estimated in hours.&lt;/p&gt;&#xA;" OwnerUserId="4009" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T16:17:04.507" CommentCount="1" />
  <row Id="30384" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T16:18:28.173" Score="11" ViewCount="" Body="&lt;p&gt;Learn about The Zone, learn how to get yourself into it, and learn how to recognize when you aren't in it.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Once I am &quot;in the zone&quot; I am extremely&#xA;  productive and code just flows out of&#xA;  me, often I can get 2 or 3 days coding&#xA;  done in 1 day. But I find that often&#xA;  its hard to get to that place, I find&#xA;  myself procrastinating, getting&#xA;  distracted by other things (Stack Overflow for&#xA;  example).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Quote from &lt;a href=&quot;http://stackoverflow.com/questions/297037/what-tricks-do-you-use-to-get-yourself-in-the-zone&quot;&gt;what-tricks-do-you-use-to-get-yourself-in-the-zone&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T16:18:28.173" CommentCount="1" />
  <row Id="30385" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T16:22:00.873" Score="126" ViewCount="" Body="&lt;p&gt;Your desire to be a &quot;faster&quot; programmer by itself is laudable. &lt;strong&gt;However, not delivering on time does not mean you are slow, it means the project was planned poorly.&lt;/strong&gt; Being a &quot;faster&quot; programmer will not help; it just means you'll whoosh past the deadline faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You (and your team) are doing one of the following mistakes (or all of them):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;underestimating&lt;/strong&gt; the work that needs to be done;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;missing&lt;/strong&gt; a big requirement or architecture piece during planning;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;confusing&lt;/strong&gt; work estimates with calendar estimates and not accounting for things like meetings/phone/other overhead;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There are multiple ways you can address any of the three above. But before you can improve on any of them, you need to know why things are going the way they are. &lt;strong&gt;Do a postmortem&lt;/strong&gt; on the last two or three projects estimates vs. actual time taken and figure out where the extra time went.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll repeat it again - &lt;strong&gt;being slow at writing code won't cause missing the deadline&lt;/strong&gt;, if you've planned it properly to account for that fact.&lt;/p&gt;&#xA;" OwnerUserId="5051" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T16:22:00.873" CommentCount="11" />
  <row Id="30386" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T16:30:11.103" Score="3" ViewCount="" Body="&lt;p&gt;Here's what works for me:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Break your work down into small tasks which are (1) defined in scope (2) short - e.g. 2 hours.&lt;/li&gt;&#xA;&lt;li&gt;Start the day by writing them down on a paper, in order. Draw some lines through - stuff you expect to get done before lunch, stuff you'll get done by end of day, etc.&lt;/li&gt;&#xA;&lt;li&gt;Work your list, crossing items off as you go.&lt;/li&gt;&#xA;&lt;li&gt;Time box things - if something's starting to drag, give yourself a time limit to research before you ask for help, or solve in a simpler manner.&lt;/li&gt;&#xA;&lt;li&gt;If possible, structure your work so that you're publicly committing to these timeframes - entering estimates in bug tracking, etc.&lt;/li&gt;&#xA;&lt;li&gt;If you catch yourself killing time researching, reading, etc., then invert the order - for example, allow yourself a 10 minute reward if you successfully complete a 1 hour task on schedule.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I've seen several comments that you should spend less time on Stack Overflow. If you're using it right, Stack Overflow should make you more efficient, not less. Steer clear of discussions and focus on using it to get work done.&lt;/p&gt;&#xA;" OwnerUserId="23839" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T16:30:11.103" CommentCount="1" />
  <row Id="30387" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T16:36:20.937" Score="0" ViewCount="" Body="&lt;p&gt;Use code generators whenever it's possible. Sometimes even Microsoft Excel (or OpenOffice Calc) turns out to be a powerful code generator tool.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T16:36:20.937" CommentCount="1" />
  <row Id="30388" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T16:37:24.627" Score="1" ViewCount="" Body="&lt;p&gt;USE FRAMEWORKS!! Don't bother yourself with hardcoding!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T16:37:24.627" CommentCount="0" />
  <row Id="30389" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T16:44:33.913" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Don%27t%5Frepeat%5Fyourself&quot; rel=&quot;nofollow&quot;&gt;Don't Repeat Yourself&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Re-use old projects assets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take a day to learn your IDE. If it doesn't provide tools like snipets, code auto-completion... consider getting a new one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Put shortcuts to everything in key places so you can access things faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get a second screen if that's not already the case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't check your emails too often.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try focusing on only one task at a time. If this is not possible, keep close track of what you're doing and don't get lost between 15 unrelated tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use paper. When I work I always have a printed version of my tasks on which I can take notes, cross off and so on. It's way faster than going on a different screen to read something or write something. At the end of the day I take 10 minutes to copy everything into the system. I realized it saved me some time every day.&lt;/p&gt;&#xA;" OwnerUserId="9005" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T16:44:33.913" CommentCount="1" />
  <row Id="30390" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T17:03:50.247" Score="0" ViewCount="" Body="&lt;p&gt;Simply put, &#xA;  White board -&gt; break down into testable requirements into &#xA;tasks (I've used &lt;a href=&quot;http://en.wikipedia.org/wiki/Team%5FFoundation%5FServer&quot; rel=&quot;nofollow&quot;&gt;Team Foundation&lt;/a&gt; to keep track of each task and how long it should take.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use testing to ensure that you are getting what is required done, nothing more nothing less.&#xA;  (Don't worry about performance yet.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go from requirement to requirement and test after each is done.&#xA;  After each task is completed you should have an accurate estimate of the time remaining.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When all requirements are done go back and &quot;polish&quot; it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing the leg work first forces one to iron out all the requirements which saves time by doing things right the first time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If done properly this should allow more time to be spent on Stack Overflow :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T17:03:50.247" />
  <row Id="30391" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T17:20:33.407" Score="5" ViewCount="" Body="&lt;p&gt;What are your time bottlenecks?  I find that thinking is my usual bottleneck, so improving my typing speed (already good) would do approximately nothing.  On the other hand, if typing is not fast and natural to you, it may well be slowing you up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you trying to do more than is required?  Usually, a business will want lots of good work out of you rather than less but more polished work, and adding features that aren't going to be used wastes time and money with no business return.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you being too hasty?  Under time pressure, people frequently skimp on up-front design and planning, hoping that it'll work out anyway.  It frequently doesn't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you handling time properly?  Development requires chunks of uninterrupted thinking time, or you'll be inefficient, and hence slow.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T17:20:33.407" CommentCount="1" />
  <row Id="30392" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T19:27:09.820" Score="1" ViewCount="" Body="&lt;p&gt;First of all, you shouldn't be designing a system based on a few meetings with end users. In fact you shouldn't be involved with the requirements phase of a project, that's for the business analysts and end users to work out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second phase should be your technical requirements, this is where you will start to work with the business analysts to come up with a solution to the requested specification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now is the important part. Make sure you understand both the end user requirements and the functional requirements, there's no use you starting out something only to find it didn't meet users expectations. Speak up if you don't understand something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, time to hit the editor. But my approach is to never write real code, always write an absolute stack of comments first, do it in pseudo code if that's easy for you, whatever it doesn't matter, as long as it's clear and easy to read/understand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you've done your comments you can start either&#xA;a) writing your test cases&#xA;b) writing the implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on your environment you would be best starting with (a) but sadly most start with (b) and then try force the tests to meet the implementation. Frankly speaking though, if you were part of a large company there would be a department writing the test cases for you before you even start doing anything.&lt;/p&gt;&#xA;" OwnerUserId="19256" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T19:27:09.820" />
  <row Id="30393" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T19:38:09.513" Score="3" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Develop yourself more and more as a programmer, every day... Learn design patterns !&lt;/li&gt;&#xA;&lt;li&gt;Use TDD, but in a proper way, the bugs you can have in your code is the single-most time-consuming thing.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.jetbrains.com/resharper/&quot; rel=&quot;nofollow&quot;&gt;Use ReSharper&lt;/a&gt; :)&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T19:38:09.513" />
  <row Id="30394" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T19:55:01.847" Score="1" ViewCount="" Body="&lt;p&gt;Everyone says 'checking email' but consider the time you spend writing highly technical email.  I can easily spend an hour writing a single email.  To fix it, I could either 1) not write as much, or 2) put off the technical stuff (and the stuff that requires me to read code to answer) until it is absolutely necessary.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T19:55:01.847" CommentCount="4" />
  <row Id="30395" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T20:08:46.120" Score="3" ViewCount="" Body="&lt;p&gt;Since many of the other answers talk about doing designwork, I'll just stick to the pure mechanical aspect of coding faster. Most of this is probably obvious, but I'll say it anyway since I notice that many of my co-workers don't do some of these things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remap your IDE keyboard shortcuts so you can do most of them with your left hand. This frees up your mouse-hand for fast and furious code outlining/refactoring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn how to navigate your cursor and select text using a combination of &lt;kbd&gt;Ctrl&lt;/kbd&gt;, &lt;kbd&gt;Shift&lt;/kbd&gt;, arrow-keys, &lt;kbd&gt;Home&lt;/kbd&gt; and &lt;kbd&gt;End&lt;/kbd&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Below is my C++ setup ( Visual Studio with Visual Assist X ). I have a Norwegian keyboard, so please bear with me:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alt-Z : Change between .h and .cpp&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ctrl-Shift-&amp;lt; : Context sensitive jumping through references. (&amp;lt; for me is the key left of Z, you english guys don't have one of those. Map it to Ctrl-Shift-Z then. )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alt-| : Implement method. By writing the header first and just hitting Alt-| all the time you can make the whole class outline in a few seconds.(| for me is the key beneath escape.) &#xA;This is especially true if you place the cpp and header files next to each other in the text editor so the header doesn't get obscured every time you perform the action.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alt-R : Renames symbol under my caret.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alt-D : Adds a documentation template for the selected function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This, in addition to lightning fast code completion, makes left hand refactoring possible.&lt;/p&gt;&#xA;" OwnerUserId="3374" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T20:08:46.120" CommentCount="1" />
  <row Id="30396" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T20:24:53.120" Score="2" ViewCount="" Body="&lt;p&gt;You and your boss/evaluator need to determine how much time you actually have to program. Take out the meetings, emails, documentation, testing, other interuptions from the time you are expected to work and see what is left. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to monitor your time to get a benchmark of how long certain tasks take. There will be productive times (for me early in the day or any stretch of time I get at work without interuptions) and unproductive times. Find an average.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may determine that a given task takes 8 hours to program, but I doubt you will get that done in one day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also try to compare yourself to others. The corporate culture may be to put in a lot of hours.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T20:24:53.120" />
  <row Id="30397" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T20:31:36.673" Score="2" ViewCount="" Body="&lt;p&gt;Well, I think I'm not slow, but the work I'm given tends to fill the available time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless, I oftentimes hear &quot;Gee, you did that quick&quot;, but it's not from being a fast coder, it's from coding less.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the main way to code less is to think like a DSL. If you can't get the code generated for you by a preprocessor, then write a code generator. It doesn't have to be fancy. The objective is, if you are given a single stand-alone requirement, to minimize the number of &lt;em&gt;source&lt;/em&gt; code differences needed to implement that requirement. Ideally, that number is 1. If you can get it down around 3-6 on average, that's pretty good. (It's not just that you're writing less. The smaller this number is, the smaller is the number of bugs you're putting in, and that &lt;em&gt;really&lt;/em&gt; saves time.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To do this, I recommend doing &lt;a href=&quot;http://stackoverflow.com/questions/926266/performance-optimization-strategies-of-last-resort/927773#927773&quot;&gt;performance tuning&lt;/a&gt;, because then you will find out what coding practices lead to the greatest slowdowns, and they also lead to bloated code. In particular, excessive data structure and event/notification-style programming. Those things alone contribute massively to code volume.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Much code volume these days is due to the user-interface, especially if it is dynamically flexible. I stumbled on a way to do that part, called &lt;a href=&quot;http://stackoverflow.com/questions/371898/how-does-differential-execution-work&quot;&gt;Dynamic Dialogs&lt;/a&gt;, which has a tough learning curve but shrinks the UI code by roughly an order of magnitude.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll have to find your own way on this, I'm afraid, but best of luck.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T20:31:36.673" CommentCount="5" />
  <row Id="30398" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T20:48:31.220" Score="0" ViewCount="" Body="&lt;p&gt;There are a bunch of great ideas here.  To help me get in the 'zone' I use a timer set at 27 minute intervals.  I find once I'm in work mode it's easy to work well beyond the buzzer and working with flow is painless.  Getting there is hard though.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T20:48:31.220" />
  <row Id="30399" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T20:56:22.410" Score="2" ViewCount="" Body="&lt;p&gt;There's only one way to do this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Type faster!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I refer you to Atwood's &lt;a href=&quot;http://www.codinghorror.com/blog/archives/001188.html&quot; rel=&quot;nofollow&quot;&gt;We Are Typists First, Programmers Second&lt;/a&gt;.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T20:56:22.410" CommentCount="1" />
  <row Id="30400" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T21:04:57.647" Score="3" ViewCount="" Body="&lt;p&gt;Code snippets, experience and never ceasing enthusiasm. Always read stuff: programmer blogs, books, literature, other peoples' bad code. You'll get faster if you get a wider view on stuff. If you can imagine all kinds of complex background processes involved, and you really know the whole complexity of the target system. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/020161622X&quot; rel=&quot;nofollow&quot;&gt;Pragmatic Programmer's Handbook&lt;/a&gt; is kind of awesome: it's about best practices and major pitfalls of many different aspects of software development. Rubber ducking and stuff sounds blatantly nerdy and stupid. However the nature of most programming problems is that we tend to think much too complex. I'm a great fan of simple and easy solutions: no great tricks, no super-elegant hacks: just using the simplest solutions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your team is good you can try to work collaboratively: &lt;a href=&quot;http://en.wikipedia.org/wiki/Mozilla%5FBespin&quot; rel=&quot;nofollow&quot;&gt;Bespin&lt;/a&gt; and some other frameworks nowadays allow editing one file together. That's awesome if you're really into it and see your coworker doing the magic ;).&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T21:04:57.647" />
  <row Id="30401" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T21:28:27.367" Score="8" ViewCount="" Body="&lt;p&gt;Before you start developing:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Log out of your mailbox&lt;/li&gt;&#xA;&lt;li&gt;Turn off any &lt;a href=&quot;http://en.wikipedia.org/wiki/Instant%5Fmessaging&quot; rel=&quot;nofollow&quot;&gt;IM&lt;/a&gt; clients&lt;/li&gt;&#xA;&lt;li&gt;Politely ask peers to give you time to concentrate&lt;/li&gt;&#xA;&lt;li&gt;Of course, stop surfing the Internet&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Every time you're interrupted, you'll slow down as it takes your mind time to get back on track with its thoughts. I've heard figures that for each interruption, it takes the human mind 5-10 minutes to reset back to the thought process it had before the interruption. With that much time per interruption, it doesn't take much to waste the whole day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People in our company have actually taken to blocking off time in their calendars and then moving to an empty conference room for a couple of hours each day.&lt;/p&gt;&#xA;" OwnerUserId="12472" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T21:28:27.367" />
  <row Id="30402" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T21:40:15.513" Score="2" ViewCount="" Body="&lt;p&gt;Keep your personal life in order.  Get lots of sleep, eat healthy, and take vitamins - especially if you have an iron deficiency.  Stay away from &quot;the drink&quot; - if you know what I mean.  And remember, &quot;Both Wine and Women can lead a wise man astray.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, create templates of your code and a &quot;code generator&quot; that works using regular expression patterns.  IF you find yourself copying and pasting, then searching and replacing similar classes, automate this process.  I did this for my PHP projects, in which I can create a CRUD application, complete with all the basic MVC components, based off my data tables - the data models all look the same except for the data tables they represent, so these are setup in templates and used to generate my initial code.  Saves hours of typing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, tell all people involved with the project that the code is going to take 1/4 to 1/2 times longer than YOU think.  Negotiate more breathing room for yourself, early on.  &quot;Late&quot; is a relative term.  When changes occur in the project, mid-stream, let everyone know up front that 8 more hours of work has been added.  A tracking system, such as one offered in &quot;FogBugz&quot; might be helpful to yourself and managers to anticipate how long its going to take to get something done, based on previous experiences.  I try to take the tact, &quot;It wasn't late - I used the proper amount of time it takes to complete this function - it merely took longer than we expected.&quot;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another programmer may say, &quot;Well I could have done it faster...&quot;  Maybe, maybe not, that's not a point worth debating or beating yourself up about - there's always going to be some &quot;smart&quot; guy trying to push that button.  He'll slow you down if you think about it!  Its always a bad situation when its your boss, though.  At that point, I'd consider looking for another job, cause that sort of boss is an arrogant JERK, in my book.&lt;/p&gt;&#xA;" OwnerUserId="23483" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T21:40:15.513" CommentCount="2" />
  <row Id="30403" PostTypeId="2" ParentId="30355" CreationDate="2009-09-11T21:45:25.973" Score="6" ViewCount="" Body="&lt;p&gt;I think they key word here is &quot;timeliness&quot;. They didn't say you were too slow, rather that you were not timely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In project management, it is important for the manager to be able to estimate when your work items will be complete with accuracy. I suspect that the main reason why your efforts were not deemed to be timely is that you frequently had items that were not delivered on schedule, and were delivered much later than scheduled.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To improve your timeliness, you might want to spend more time understanding how long it will take you to complete a particular work item given your skills, experience, and the domain. This will allow you to give better estimates to your project manager. The key here is &quot;better&quot; ... you could deliver on time more frequently by padding everything with a fudge factor, but what you really want to strive for is a more accurate estimate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would discuss this with your manager to see if this is actually the issue. Otherwise, you might end up programming twice as fast, promising things in half the time you used to, and still getting criticized for your timeliness because your estimates will still have the same error factor.&lt;/p&gt;&#xA;" OwnerUserId="7323" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-11T21:45:25.973" CommentCount="2" />
  <row Id="30404" PostTypeId="2" ParentId="30355" CreationDate="2009-09-12T01:11:06.430" Score="0" ViewCount="" Body="&lt;p&gt;The one thing that I have noticed affecting my speed the most is motivation and having fun. This may seem Fuzzy, but when I'm motivated and doing something that I find fun I can be extremely effective. On the other hand when I'm neither it really feels like I have to push every single line of code out of me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find your sweet spots, what really motivates you and what kind of tasks do you really enjoy doing? And can you affect your planning so that you can do this? For me it's when I get to solve problems and design issues, and when I feel that I have a part of the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few months ago we had a small project that our small team was assigned to do and it was a really important and very unrealistic deadline to it. However we were all very motivated and had great fun doing it and got it done in time, with a happy customer. The reason for my motivation was that we were very involved in the project and had to come up with creative ideas for it. I also got to do the parts that I really enjoy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However recently I have been involved in a project where I'm basically being a code monkey, just doing mind numbing and frustrating tasks, or just having quick-fixing stuff the fastest way possible which I know will come back and bite me hard sometime in a near future, and it has been painfully slow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what is your sweet spots?&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-12T01:11:06.430" />
  <row Id="30405" PostTypeId="2" ParentId="30355" CreationDate="2009-09-12T01:26:48.473" Score="1" ViewCount="" Body="&lt;p&gt;When actually writing code, &lt;a href=&quot;http://www.devexpress.com/Products/Visual%5FStudio%5FAdd-in/Coding%5FAssistance/&quot; rel=&quot;nofollow&quot;&gt;CodeRush&lt;/a&gt; helps quite a bit especially when you've mastered its shortcuts. Plus it's free :D&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-12T01:26:48.473" />
  <row Id="30406" PostTypeId="2" ParentId="30355" CreationDate="2009-09-12T02:25:38.583" Score="1" ViewCount="" Body="&lt;p&gt;I spend a little bit of time each week just looking for new creative ways to do things that may or may not be directly related to what I'm currently working on.  Often I'll find new tricks or tools I was never aware of that speeds up my workflow.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-12T02:25:38.583" />
  <row Id="30407" PostTypeId="2" ParentId="30355" CreationDate="2009-09-12T02:43:57.163" Score="3" ViewCount="" Body="&lt;p&gt;Try checking your emails with longer intervals and stop using online social tools like Twitter, facebook etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use this &lt;a href=&quot;http://gallery.me.com/memon.adnan/100026/01223%5Falittlemotivation%5F1680x1050/web.jpg?ver=12527232340001&quot; rel=&quot;nofollow&quot;&gt;wallpaper&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to work with open front view. I usually use conference room when its free, it helps me focus!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to work with other programers around you.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-12T02:43:57.163" CommentCount="1" />
  <row Id="30408" PostTypeId="2" ParentId="30355" CreationDate="2009-09-12T07:14:37.017" Score="6" ViewCount="" Body="&lt;p&gt;Pretty much all the answers have been said to death in numerous places here and elsewhere. Or, at least I've heard it to death. Learn your IDE, learn to type faster, use frameworks, use code generation, etc., etc. Yes of course these things will help and I doubt there are many programmers who are masters of them all. But being the type of programmer that asks these questions and frequents sites like Stack Overflow &lt;strong&gt;you knew these things already&lt;/strong&gt;. Did you merely want to here them repeated or did you just want to vent a little?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But what if we were able to get to that state? I mean master all these suggestions? What would happen then? Well. I'd guess that time-lines will be reduced even further. And again, we'll revert to a perception of quality. I mean, our craft has definitely progressed and become more and more productive over the decades. But has quality increased during this time (excluding the very early years of course)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My answer is simple: &lt;strong&gt;quality software takes time&lt;/strong&gt;! You can only trade one for the other (quality/speed). But yes we all know that however we're not honest about the degree to which that trade-off often ends up on the speed end of the scale. And we are even greater liars early on in projects!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;I say&lt;/em&gt; that you are not at fault here. The problem is the &lt;strong&gt;perception&lt;/strong&gt; people have of how long quality software should take. We fool ourselves in believing we are capable of creating quality software with the types of time-lines our managers or even we guesstimate. &lt;strong&gt;We do not make quality software&lt;/strong&gt;. We write software that works but sometimes with flashes of quality in certain corners of an application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what can we do about this? We can't just convince our bosses that we need to double or triple the investment in each of our projects. I say lead by example. Create a truly great piece of software as a side project. Put your own time into it and do not compromise. All the while pay attention to how you progress. Make note of the apparently &lt;em&gt;unrelated&lt;/em&gt; tasks you've had to put an unexpected amount of time in and see if you can justify it. Contrast this with all the other projects you've worked. Be &lt;strong&gt;brutally honest&lt;/strong&gt; with yourself and all aspects of this analysis. Can the extra things you did with your quality software be neglected in &quot;real&quot; projects at work? But maybe your attempt failed. What was the reason? Did you get bored and just rushed to get the core features done? I've yet to do something like this myself which is why I end off this thought with some doubt - but I intend to give it a real go. I'll keep you posted :).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, I think most (if not all) performance evaluations are twisted and extraordinarily manipulative. You can't throttle quality and speed at 100%. Your boss should be scoring you against a standard that is set by the organization. The organization's standard on the trade-off between quality and speed. Lets imagine that OrangeSoft Inc. expects 33% quality and 66% speed. So if you're writing code that has maybe a third of the unit tests it should but making it up with speed and reduced delivery time you should score near 100% on your review! (These are pretty rough analogies but you get the point). But instead, what happens is that Bob writes code extremely fast but which is notoriously buggy. So on his performance review he'll score 3/5 for quality and 5/5 for speed. Carol on the other hand writes code much slower but produces significantly less bugs. She scores 5/5 for quality but 3/5 for speed. Either way Bob and Carol get docked on their raise. Is it possible for any employee to get a perfect score? Is this fair?&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-12T07:14:37.017" />
  <row Id="30409" PostTypeId="2" ParentId="30355" CreationDate="2009-09-12T11:15:20.367" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Q:What do you do to get more done in&#xA;  shorter time periods?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;A: Everyday come to office and write what all you would want to finish on that in (sticky notes) outlook notes. Start working on that order of the items. Believe me at the end of the day you would feel you have done what you had planned and thats a great feeling.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-12T11:15:20.367" />
  <row Id="30410" PostTypeId="2" ParentId="30355" CreationDate="2009-09-12T12:55:47.930" Score="2" ViewCount="" Body="&lt;p&gt;Pair program -- this has all sorts of benefits:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;forces you to articulate/clarify your thinking&lt;/li&gt;&#xA;&lt;li&gt;gives you insight into how someone else works, many ideas which you can adopt/try&lt;/li&gt;&#xA;&lt;li&gt;learn new technologies directly from someone else who knows them&lt;/li&gt;&#xA;&lt;li&gt;pick up little productivity tips from others. You always see someone use a menu command you didn't understand before, or some useful Unix command.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-12T12:55:47.930" />
  <row Id="30411" PostTypeId="2" ParentId="30355" CreationDate="2009-09-12T15:20:42.783" Score="0" ViewCount="" Body="&lt;p&gt;Type faster. LOL :D&lt;/p&gt;&#xA;" OwnerUserId="2729" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-12T15:20:42.783" CommentCount="1" />
  <row Id="30412" PostTypeId="2" ParentId="30355" CreationDate="2009-09-12T15:36:52.313" Score="1" ViewCount="" Body="&lt;p&gt;Become intimately familiar with your IDE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your IDE is Visual Studio, then I highly recommend &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735626405&quot; rel=&quot;nofollow&quot;&gt;Sara Ford's book&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1996" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-12T15:36:52.313" />
  <row Id="30413" PostTypeId="2" ParentId="30355" CreationDate="2009-09-12T15:56:33.833" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Know what you want to do and have an interest in it&lt;/li&gt;&#xA;&lt;li&gt;Spend a few hours researching code on how to do it&lt;/li&gt;&#xA;&lt;li&gt;Copy and paste code to achieve the end result&lt;/li&gt;&#xA;&lt;li&gt;Work on a basic gui to get the job done, DO NOT SPEND TIME TO MAKE IT LOOK PRETTY&lt;/li&gt;&#xA;&lt;li&gt;Test and debug&lt;/li&gt;&#xA;&lt;li&gt;Work on a pretty gui&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-12T15:56:33.833" CommentCount="1" />
  <row Id="30414" PostTypeId="2" ParentId="30355" CreationDate="2009-09-12T16:11:12.853" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;learn Design patterns. They help you understand problems, make you a better programmer -&gt; will let you program a lot faster since you have already solutions for several problems prepared in mind&lt;/li&gt;&#xA;&lt;li&gt;extract repetitive parts in your program. If there is some logic which repeats throughout several programs you write, consider generalizing them and extracting them to some class library which you can then reuse on new applications you write. &lt;strong&gt;Standardize&lt;/strong&gt; things: invest some time into finding out how certain repetitive tasks are done best. Document the steps for achieving. Next time you will exactly know how to solve/apply them.&lt;/li&gt;&#xA;&lt;li&gt;KISS principle&lt;/li&gt;&#xA;&lt;li&gt;Code generation will be useful (once a useful tool is available). Generators start to gain popularity, recently.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Just making things work is worse!! As some mention just to hack in things till they work will make you faster just for the moment. Bugs will come in however which somehow count also in terms of how fast you program. If I have to write some piece of functionality and I invest in writing it good, having a good design, possibly well tested (with Unit tests) and say I'll need half a day. But assume that was it and your feature works and you don't have to touch it again. Another programmer, just focused on a fast achievement of his goal, will make (possibly) a bad design, due to missing testing he'll not consider (be aware of) boundary, exceptional cases. He'll need 2 hours (let's say). Bugs will come in, he'll again have to touch the code, fix it, possibly extend it (hours will be invested again). Code will be hard to maintain etc...resumé: at the end he'll spend much ore time and frustration will be higher.&lt;/p&gt;&#xA;" OwnerUserId="3495" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-12T16:11:12.853" />
  <row Id="30415" PostTypeId="2" ParentId="30355" CreationDate="2009-09-12T18:27:48.047" Score="0" ViewCount="" Body="&lt;p&gt;&quot;Timeliness&quot; is not the same thing as &quot;fast&quot;. If that was the problem your evaluation should have just said &quot;slow&quot;. So be before you take the path you propose, make sure you know what is expected of you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It could mean anything; it might even mean that you don't get into the office until 20 minutes after your colleagues, or that you have poor time management. That may be nothing to do with your 'programming speed'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I probably spend most time designing and planning; it is easier to plan tasks from a good analysis and design, and you will then give better estimates that will be believed. Moreover from a good design, coding becomes a lot simpler and more directed process. It also makes it possible to divide up a task and distribute it amongst other developers.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-12T18:27:48.047" />
  <row Id="30416" PostTypeId="2" ParentId="30355" CreationDate="2009-09-13T11:48:45.483" Score="8" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.gnu.org/software/emacs/&quot; rel=&quot;nofollow&quot;&gt;Emacs&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-13T11:48:45.483" CommentCount="2" />
  <row Id="30417" PostTypeId="2" ParentId="30355" CreationDate="2009-09-13T12:19:52.167" Score="3" ViewCount="" Body="&lt;p&gt;The trick is not to write code faster, but to write working code faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The sooner your spot a bug, the less effort it is to fix it - this is the primary thing which affects programmer performance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not about how fast you type, or how fast your compiler is, it's about the speed at which you can identify bugs and fix them as you go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, I'd suggest pair programming as a way to be faster - it really does avoid bugs. That and test-driven-development. Having two pairs of eyes makes it more than twice as hard for bugs to slip through (I think anyway).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other tips would be&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Try to reduce your code-test turnaround time to a minimum - this obviously depends on your platform an tools. If you're working on a silly embedded system with  lame tools, turnaround time could be quite signifcant (for example if you need to rebuild a system image and re-netboot the device), VMs or simulators can help here.&lt;/li&gt;&#xA;&lt;li&gt;If not pair programming, ask others for informal code reviews occasionally, but only at logical breaks in your (and hopefully their) flow. Do this in addition to your formal code  review process you doubtless have.&lt;/li&gt;&#xA;&lt;li&gt;Keep it simple - don't over engineer. You ain't going to need it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="18211" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-13T12:19:52.167" />
  <row Id="30418" PostTypeId="2" ParentId="30355" CreationDate="2009-09-13T14:14:01.513" Score="0" ViewCount="" Body="&lt;p&gt;I've practically tripled my C coding speed with &lt;a href=&quot;http://vim.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;VIM&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4690" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-13T14:14:01.513" />
  <row Id="30419" PostTypeId="2" ParentId="30355" CreationDate="2009-09-13T22:43:31.083" Score="0" ViewCount="" Body="&lt;p&gt;CodeRush! Get it! Love it!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-13T22:43:31.083" CommentCount="1" />
  <row Id="30420" PostTypeId="2" ParentId="30355" CreationDate="2009-09-14T12:10:21.303" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Write less code.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Banish Not-Invented-Here and make good use of existing libraries/frameworks/toolkits to provide common (and generally non-defining) functionality so that you only need to write what's new.  For the parts that you do need to write yourself, build them with re-use in mind so that you won't have to write them again for the next project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you don't increase the number of lines of working code you produce per day, you can still get more done in less time by making each line do more.&lt;/p&gt;&#xA;" OwnerUserId="12435" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-14T12:10:21.303" CommentCount="3" />
  <row Id="30421" PostTypeId="2" ParentId="30355" CreationDate="2009-09-14T20:16:49.537" Score="0" ViewCount="" Body="&lt;p&gt;Choose fast editor, fast compiler, and write software with fast execution time. This way you can make ten times as many mistakes as normal programmer and still become better than others. That's probably one the reasons google applications are so popular. Web development is filled with nasty bugs, and writing more software on buggy platform is pain the ass. But the response time between editing code and seeing outcome is so fast that it's still easier to make that mountain of garbage work than extending c++ programs. :)&lt;/p&gt;&#xA;" OwnerUserId="8706" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-14T20:16:49.537" />
  <row Id="30422" PostTypeId="2" ParentId="30355" CreationDate="2009-09-17T14:37:04.477" Score="0" ViewCount="" Body="&lt;p&gt;Spend more time putting things together in your mind than in front of the IDE. When you have a plan, you already have most of the work already done. Implementing is just the other 20%. If you get stuck while writing code due to platform-specific problems, stick to the plan, and keep on implementing and testing the rest. In the end, tackle all the spots you've left behind, solving them one by one - it's possible that some will be related, and solving a few might be enough to figure out the rest. I usually use workarounds for such problems, adding &quot;//TO CHANGE&quot; comments at the particular places in code, and rewrite the ones that have the most impact on quality and performance in the end, if I don't have time to resolve all of them by the deadline.&lt;/p&gt;&#xA;" OwnerUserId="130" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-17T14:37:04.477" />
  <row Id="30423" PostTypeId="2" ParentId="30355" CreationDate="2009-09-17T14:48:04.007" Score="1" ViewCount="" Body="&lt;p&gt;Use an &lt;a href=&quot;http://neo-layout.org&quot; rel=&quot;nofollow&quot;&gt;ergonomically optimized keyboard layout&lt;/a&gt;. Some are even aimed at programmers, through very accessible special chars.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-17T14:48:04.007" />
  <row Id="30424" PostTypeId="2" ParentId="30355" CreationDate="2009-09-18T14:03:02.653" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Build your own code library&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every time you code a new feature try to keep it generic as possible, but not too generic. In the short term this will be a little slower, but in the long term as your code libary gets bigger, each new project will be completed faster as a lot of business applications have similar needs (not always) but close enough that a lot of code can be reused.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-18T14:03:02.653" />
  <row Id="30425" PostTypeId="2" ParentId="30355" CreationDate="2009-09-20T14:37:12.243" Score="0" ViewCount="" Body="&lt;p&gt;Faster doesn't mean better. If you manage to be a faster and better programmer. It all comes down to balance. How long you can do that ? Thinking, patience and planning always pay off. Sometimes &quot;fast&quot; in developement world could bring worst results. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-20T14:37:12.243" />
  <row Id="30426" PostTypeId="2" ParentId="30355" CreationDate="2009-09-25T16:25:12.393" Score="0" ViewCount="" Body="&lt;p&gt;Deconstruct. Break whatever you're building into smaller features that you can implement in stages. Then, whenever you have any of those smaller pieces done and you've tested to confirm it doesn't break anything, deploy it and show it to the Powers That Be. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using small iterations will often help you finish the larger project faster and better, because you're getting feedback as you go and you won't need to backtrack and redo as much. But even if it doesn't, you're showing constant progress, which has a solid psychological benefit and restores your manager or client's confidence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Test-driven development also helps a lot with this approach. At first it may seem like writing tests first slows things down -- but it gains that time back in bugs you'll avoid, and depending on how you write them, the tests themselves could be a deliverable you can show to the Powers That Be and confirm the app's behavior even before you write it all.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-25T16:25:12.393" />
  <row Id="30427" PostTypeId="2" ParentId="30355" CreationDate="2009-09-25T16:30:56.573" Score="0" ViewCount="" Body="&lt;p&gt;If you are programming in C then learning bit hacks is a must for becoming a faster programmer. Also read coding practices by top rankers at Topcoder.com. Their code is very small and efficient.&lt;/p&gt;&#xA;" OwnerUserId="761" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-25T16:30:56.573" />
  <row Id="30428" PostTypeId="2" ParentId="30355" CreationDate="2009-09-25T17:10:27.980" Score="7" ViewCount="" Body="&lt;p&gt;Get stable, stay stable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Build something that implements a small bit of the functionality, and make sure it works, end-to-end.  Then, keep it working as you add new bits of functionality.  Yeah, this is partly a TDD practice, but it makes sense even if you don't do TDD.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The rationale is that every time I've seen someone with 2 weeks of code that had never been stable, it always takes another 2 weeks to &lt;em&gt;get&lt;/em&gt; it stable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you &lt;em&gt;stay&lt;/em&gt; stable, you remove that uncertainty, and also give yourself a way to scope down near the deadline if necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The obvious counter-argument is that doing this will take more time than just writing it once, as you will do extra work be stabilizing non-final code.  I don't buy this for a second.  When you have code that &lt;em&gt;works&lt;/em&gt;, you change 5 lines, and something breaks, you know &lt;em&gt;exactly&lt;/em&gt; where the break must have happened.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have 10,000 lines of code that &lt;em&gt;never worked&lt;/em&gt;, and you have to find a break, you have a ton of code to search through.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Small, incremental changes on a system that is consistently stable FTW.  Go slow to go fast.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-25T17:10:27.980" />
  <row Id="30429" PostTypeId="2" ParentId="30355" CreationDate="2009-09-29T15:26:07.533" Score="3" ViewCount="" Body="&lt;p&gt;Write your own productivity tools.  They may take time initially to write, but the pay off can be big over time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some tools that I've written that I use all the time:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;An SQL formatter.&lt;/li&gt;&#xA;&lt;li&gt;An automatic SQL generator: just&#xA;select the tables.&lt;/li&gt;&#xA;&lt;li&gt;A simple task prioritiser, so I can see all my tasks in one go.&lt;/li&gt;&#xA;&lt;li&gt;A task reminder that nags me&#xA;periodically.&lt;/li&gt;&#xA;&lt;li&gt;An app that takes delimited text and&#xA;allows you to treat it like a&#xA;spreadsheet and like text.&lt;/li&gt;&#xA;&lt;li&gt;A PHP/Javascript/HTML page formatter.&#xA;A godsend when working with others'&#xA;code.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've written lots of other small tools in my time that have fallen by the wayside, but it was still worth the effort.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-29T15:26:07.533" />
  <row Id="30430" PostTypeId="2" ParentId="30355" CreationDate="2009-09-30T13:53:10.453" Score="1" ViewCount="" Body="&lt;p&gt;Work from home. When I have a tough deadline and I need to focus completely on a problem, I tell my boss that I am working from home. This lets me set up my environment optimally, reduces interruptions, and lets me focus like a laser beam on the problem.&lt;/p&gt;&#xA;" OwnerUserId="5743" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-09-30T13:53:10.453" />
  <row Id="30431" PostTypeId="2" ParentId="30355" CreationDate="2009-10-02T10:56:04.850" Score="0" ViewCount="" Body="&lt;p&gt;Become a faster &lt;strong&gt;programmer&lt;/strong&gt; by slowing down when you are designing and coding.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Think about what you are doing.&lt;/li&gt;&#xA;&lt;li&gt;Consider the implications of your design.&lt;/li&gt;&#xA;&lt;li&gt;Get it right the first time (test your own code vigorously).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It might &lt;em&gt;feel&lt;/em&gt; slower, but your throughput will be faster than those code jockeys who turn an iteration in 4 hours, and then need 6 rounds of QA before their code passes.&lt;/p&gt;&#xA;" OwnerUserId="9754" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-10-02T10:56:04.850" />
  <row Id="30432" PostTypeId="2" ParentId="30355" CreationDate="2009-10-05T12:32:59.330" Score="1" ViewCount="" Body="&lt;p&gt;You'll get faster with experience and memorize the API a lot more. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My days of searching the web for fragments of code are a lot shorter now that I've learnt to code better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, you may also want to try using functional programming concepts and lamda to cut down your code :)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-10-05T12:32:59.330" CommentCount="1" />
  <row Id="30433" PostTypeId="2" ParentId="30355" CreationDate="2009-10-05T12:52:50.753" Score="0" ViewCount="" Body="&lt;p&gt;Slow down. Stop and thinking rather than just coding.&lt;/p&gt;&#xA;" OwnerUserId="10449" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-10-05T12:52:50.753" />
  <row Id="30434" PostTypeId="2" ParentId="30355" CreationDate="2009-10-09T21:57:44.673" Score="0" ViewCount="" Body="&lt;p&gt;Re: How to estimate and stick to it:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When estimating, remember &lt;a href=&quot;http://en.wikipedia.org/wiki/Hofstadter%27s%5Flaw&quot; rel=&quot;nofollow&quot;&gt;Hofstadter's law&lt;/a&gt; as well as this quip: &quot;Everything takes longer than it does&quot;. Take a reasonable guess as to how long something should take, then double or triple it before it comes out your mouth. There will be complications, setbacks, distractions, things you forget, etc. Better to under-promise and over-deliver than vice-versa.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On sticking to estimations, do your best to complete your work efficiently. When problems come  up, communicate the delays early. This gives everybody time to adjust their expectations. If your explanation is reasonable, you may be given more time or assistance or have distractions (like a noisy neighbor) removed from your path.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-10-09T21:57:44.673" />
  <row Id="30435" PostTypeId="2" ParentId="30355" CreationDate="2009-11-25T12:51:41.620" Score="0" ViewCount="" Body="&lt;p&gt;The following practices are well known but often neglected for various reasons, often due to tight deadlines, so they deserve mentioning here (in effect, these are mechanism for spending time in advance to avoid spending &lt;em&gt;more&lt;/em&gt; time later):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Do &lt;strong&gt;test-driven development&lt;/strong&gt;; it'll help you write only the amount of code that is actually required and, will help you avoid the introduction of bugs when adding features or refactoring&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Write &lt;strong&gt;comments&lt;/strong&gt;, but only where the code is complex enough to warrant it&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Refactor&lt;/strong&gt; and &lt;strong&gt;simplify&lt;/strong&gt; your code often&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Use &lt;strong&gt;decent source control software&lt;/strong&gt; (like Git or Mercurial) -if your employer uses something else, use your own locally-&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Commit&lt;/strong&gt; code changes often: for every feature or refactoring, do a commit, as reverting will be less costly to you if something goes awry&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't be afraid to &lt;strong&gt;branch&lt;/strong&gt;; Git especially has a very fast and &quot;safe&quot; branching mechanism (for instance, in comparison to Subversion)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6886" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2009-11-25T12:51:41.620" />
  <row Id="30437" PostTypeId="2" ParentId="30355" CreationDate="2010-01-09T15:20:48.750" Score="0" ViewCount="" Body="&lt;p&gt;I personally think its all about code re-usability.  Unless your doing fully custom things every single time, you should have a library of common use functions you can turn to.  I have a utils.php in which i have a whole &quot;junkyard&quot; of functions that i have used on previous projects.  Saves a TON of time when i have to do something similar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck and don't get discouraged.  I think we've all felt slow or &quot;dumb&quot; at times.  I know i have!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2010-01-09T15:20:48.750" />
  <row Id="30438" PostTypeId="2" ParentId="30355" CreationDate="2010-01-11T18:42:21.987" Score="0" ViewCount="" Body="&lt;p&gt;Use static analysis tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They help you find more bugs at compile-time you would otherwise had to track down at runtime.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Especially when building multithreaded applications they are a REAL help.&lt;/p&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2010-01-11T18:42:21.987" />
  <row Id="30439" PostTypeId="2" ParentId="30355" CreationDate="2010-05-30T15:18:30.663" Score="7" ViewCount="" Body="&lt;p&gt;For me, getting good productivity is having a clear idea about what you are trying to achieve, and how you will get there.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommentCount="1" />
  <row Id="30440" PostTypeId="2" ParentId="30355" CreationDate="2010-05-30T15:21:06.763" Score="1" ViewCount="" Body="&lt;p&gt;Being excited about what you're doing is a great way to increase efficiency. Make sure it's fun!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" />
  <row Id="30441" PostTypeId="2" ParentId="30355" CreationDate="2010-05-30T15:21:16.330" Score="2" ViewCount="" Body="&lt;p&gt;The only clear thing I've found that works is to be free of distraction.  Which, in some environments, is impossible.  But being able to focus on the specific task and ONLY on that task will likely outweigh anything else.  Those context switches are really big time sinks.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" />
  <row Id="30442" PostTypeId="2" ParentId="30355" CreationDate="2010-05-30T15:21:18.777" Score="3" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;I really enjoy listening to music while I program because I feel like it relaxes me and I can focus.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A comfortable chair. I don't ever use my school's computer labs to program because the office chairs are incredibly uncomfortable.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Eat something beforehand because nothing kills my motivation like nagging hunger.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="12404" LastActivityDate="2010-12-27T18:32:29.720" CommentCount="2" />
  <row Id="30443" PostTypeId="2" ParentId="30355" CreationDate="2010-05-30T15:21:37.190" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Juggling&lt;/strong&gt; while having a break&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3289/3060694963_3d778f69dd.jpg&quot; alt=&quot;Juggling&quot;&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2010-05-30T15:21:37.190" />
  <row Id="30444" PostTypeId="2" ParentId="30355" CreationDate="2010-05-30T15:25:17.897" Score="2" ViewCount="" Body="&lt;p&gt;Drinkng &lt;strong&gt;Yerba Mate&lt;/strong&gt; instead of Coffee&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://farm1.static.flickr.com/5/6979293_0d1b81f822.jpg&quot; alt=&quot;Yerba Mate&quot;&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommunityOwnedDate="2010-05-30T15:25:17.897" CommentCount="1" />
  <row Id="30445" PostTypeId="2" ParentId="30355" CreationDate="2010-05-30T15:27:02.963" Score="1" ViewCount="" Body="&lt;p&gt;I think that sketching out your idea on paper, remember that stuff, is a great way to flesh out some ideas.  As programmers, whether professional or hobbyists, we spend soooo much time staring at the screen, that having another outlet on which to put your ideas is good.  I find that scratching things out, drawing hasty lines linking ideas, circling things, underlining, etc. all add to the emphasis on an idea and can really help you sort out an idea much faster than attempting to structure it right off the bat or in some computer-aided form.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thing that helps is prototyping small parts.  Listened to a TED audio podcast last night where the speaker was discussing building small structures out of spaghetti sticks and marshmallow, apparently this is a pretty widely-used study to test social construction abilities of small groups...anyway, the groups that always did better, besides architects who understood reinforcement and building construction were children because they used a stream of constant feedback to get results.  I think you can also throw this into a programming idea where you see that doing little things and getting results is not only more productive but a lot more fun and useful than building some giant construct and then spending days debugging it....that's killed some of my &quot;fun&quot; ideas in the past for sure.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" />
  <row Id="30446" PostTypeId="2" ParentId="30355" CreationDate="2010-05-30T15:35:30.587" Score="1" ViewCount="" Body="&lt;p&gt;When I'm at the office and I need to maintain my focus, I close my e-mail client.  Nothing destroys efficiency for me faster than the constant temptation to &quot;take a quick look&quot; at whatever message just arrived.  I've also been toying with &lt;a href=&quot;http://www.pomodorotechnique.com/&quot; rel=&quot;nofollow&quot;&gt;the Pomodoro Technique&lt;/a&gt; for managing disruptions and maintaining focus.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:32:29.720" CommentCount="1" />
  <row Id="30447" PostTypeId="2" ParentId="30355" CreationDate="2010-05-30T15:38:59.930" Score="4" ViewCount="" Body="&lt;p&gt;Not looking at Stack Overflow - damn, I just did it! :)&lt;/p&gt;&#xA;" OwnerUserId="12400" LastActivityDate="2010-12-27T18:32:29.720" CommentCount="1" />
  <row Id="30448" PostTypeId="2" ParentId="30355" CreationDate="2010-05-30T15:48:04.853" Score="0" ViewCount="" Body="&lt;p&gt;These are all good suggestions. I would add my own productivity technique which is to know how to get things done not only with minimal code but with minimal redundancy code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally this means the less data structure the better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To make code with minimal redundancy requires creativity and willingness to do things in ways that might impose a learning curve. That's the price of the productivity. &lt;a href=&quot;http://stackoverflow.com/questions/371898/how-does-differential-execution-work&quot;&gt;Here's one example.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-12-27T18:32:29.720" />
  <row Id="30449" PostTypeId="1" CreationDate="2009-11-06T07:26:18.587" Score="313" ViewCount="1554" Body="&lt;p&gt;I’ve been programming C# professionally for a bit over 4 years now. For the past 4 years I’ve worked for a few small/medium companies ranging from “web/ads agencies”, small industry specific software shops to a small startup. I've been mainly doing &quot;business apps&quot; that involves using high-level programming languages (garbage collected) and my overall experience was that all of the works I’ve done could have been more professional. A lot of the things were done incorrectly (in a rush) mainly due to cost factor that people always wanted something “now” and with the smallest amount of spendable money. I kept on thinking maybe if I could work for a bigger companies or a company that’s better suited for programmers, or somewhere that's got the money and time to really build something longer term and more maintainable I may have enjoyed more in my career. I’ve never had a “mentor” that guided me through my 4 years career. I am pretty much blog / google / self taught programmer other than my bachelor IT degree. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I’ve also observed another issue that most so called “senior” programmer in “my working environment” are really not that senior skill wise. They are “senior” only because they’ve been a long time programmer, but the code they write or the decisions they make are absolutely rubbish! They don't want to learn, they don't want to be better they just want to get paid and do what they've told to do which make sense and most of us are like that. Maybe that’s why they are where they are now. But I don’t want to become like them I want to be better. I’ve run into a mental state that I no longer intend to be a programmer for my future career. I started to think maybe there are better things out there to work on. The more blogs I read, the more “best practices” I’ve tried the more I feel I am drifting away from “my reality”. But I am not a great programmer otherwise I don't think I am where I am now. I think 4-5 years is a stage that can be a step forward career wise or a step out of where you are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just wanted to hear what other have to say about what I’ve mentioned above and whether you’ve experienced similar situation in your past programming career and how you dealt with it. Thanks.&lt;/p&gt;&#xA;" OwnerUserId="12107" LastActivityDate="2010-12-28T02:58:01.830" CommunityOwnedDate="2009-11-07T00:51:51.790" ClosedDate="2010-12-28T14:40:33.657" Title="Is 4-5 years the “Midlife Crisis” for a programming career?" Tags="&lt;c#&gt;&lt;career&gt;&lt;programmers&gt;" AnswerCount="64" CommentCount="16" FavoriteCount="20" />
  <row Id="30450" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T07:35:49.533" Score="8" ViewCount="" Body="&lt;p&gt;In my opinion it's not midlife crisis - I'd say the honeymoon is over.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" CommentCount="3" />
  <row Id="30451" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T07:35:49.767" Score="65" ViewCount="" Body="&lt;p&gt;There was a &lt;a href=&quot;http://www.codinghorror.com/blog/archives/000979.html&quot; rel=&quot;nofollow&quot;&gt;post by Jeff Atwood on Coding Horror&lt;/a&gt; that said that this is supposed to be fun. And part of the job description of being a software developer is enjoying your work. Otherwise it will become a really boring and cumbersome profession for you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact that you continuously search for ways to improve your work, and you keep getting informed of the new stuff and the best practices shows that you enjoy your work in nature. So my advice to you would be to start looking for a new job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However I do not think that working for a big company will necessarily improve the working conditions. I think the best environments for software developers are small to mid-sized companies, where the people like what they are doing. The best thing to do would be to search and check-out any companies before you take a decision. Try and make sure that the new company is worth it.&lt;/p&gt;&#xA;" OwnerUserId="3018" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" CommentCount="12" />
  <row Id="30452" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T07:36:58.240" Score="7" ViewCount="" Body="&lt;p&gt;Hey buddy, it was really good reading your question. I am glad you wrote so. You know what, you dont realize what understanding you have right now. The things you wrote make me understand what experience you have had, and believe me this experience is something that not all programmers can have in their life. You are a self driven person, self learning. Right now you are in a very mature state of mind, after working 4 years for small companies. If you would have been into big companies, you would have had nothing to be considered as an experience. Now you have an understanding of how this industry works, how things are done and how they should be done. What level these so called &quot;seniors&quot; have. I have a suggestion for you, if you are so good a self learner and have practiced self learning for over 4 years, why don't you try freelancing as a career. Believe me you would be working for yourself and enjoying much more. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an ending note, dont regret what you did in the last 4 years. Its a wonderful experience and only a few have this in their lives :)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" CommentCount="2" />
  <row Id="30453" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T07:37:42.467" Score="6" ViewCount="" Body="&lt;p&gt;I think it is time to be Sr, Developer for you, I m new at this market and learning and improving but employers are not looking for humans, they are looking for monsters like Jr. developer with 6 + years of experience and it is really frustrating.&lt;/p&gt;&#xA;" OwnerUserId="3613" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" CommentCount="2" />
  <row Id="30454" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T07:45:13.443" Score="7" ViewCount="" Body="&lt;p&gt;The difference between senior and junior programmers, when talking about people with experience at all, is generally just a pay-based one. There's a lot of variability in what organizations value in order to change the title, and often it's determined by what you demand when you get hired.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's any consolation I'm having a 10 year mid-programming-life crisis, although I did start programming on an Apple ][+ so it might be a 24 year point; I don't know. I just wish people didn't expect magic from programmers.&lt;/p&gt;&#xA;" OwnerUserId="1833" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" />
  <row Id="30455" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T07:52:46.257" Score="180" ViewCount="" Body="&lt;p&gt;You open a very interesting question. I wholeheartedly agree with you. I've made similar observations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been programming professionally for several years already and what I have observed is that the amount of good programmers out there, of great developers who love their work and can do it with quality and passion is pretty much close to zero. I probably met only one person who could teach me something. Most of what I know I have learned by myself, reading books and forums, asking in forums and googling for revelation thoughts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After a while I don't regret this much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The options to learn in a working environment can often be limited. You don't start things. You don't finish them. You don't design, don't improve, don't refactor, don't think about architecture, you just code and hack things together. It's how most of the shops work. Not only you don't learn anything, it's more likely that you will learn mostly wrong things how NOT to develop software. I've been continuously seeing scary things around me, all those anti-pattern you have heard of. What is worse, I'm forced to do them myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know how it happened, but I managed to somehow build an input barrier. I stay open, listen and if I see some potential for self-improvement I research and maybe adopt some technique or idea. But no BS can ever get through. I have worked in badly run projects for a long time, but I have not adopted any of those bad techniques for myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I pretty much soon understood that if you wish satisfaction with programming, forget about job and have your own personal project. It's where you can apply all your love, passion and knowledge to do things right with the high quality level. You will learn a great deal of stuff, a myriad of things you would never have been exposed to and challenged with when hacking boring corporate staff. I only do my job for paycheck and get satisfaction with my own personal projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing I truly don't understand is how this situation is possible nowadays. Software development has matured a lot. It has had good and bad experience. Many successful projects and a great deal of failed ones. There is experience with long-term projects and understanding what long-term effects one or the other organization will bring upon the project. There are numerous studies available and good books written. &quot;Pragmatic Programmer&quot;, &quot;Code Complete&quot;, &quot;Mythical Man-Month&quot;, &quot;Design of everyday things&quot; and others. Why nobody but us, the programmers ever reads them? How it is possible that even after 20 years of working in IT most developers and managers never found a time to read one or the other methodology book. They are written for, but hardly read by, those who need this medication most.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding career perspectives. What I also have noticed in general on the job market for employees, is that employers out there increasingly lose interest in quality work (imagine they had it once) are shopping more and more for the cheapest work craft available. You find it hard to sell your knowledge, experience and understanding of the universe to anyone. It's not in demand. What is in demand is having your projects ruined by the juniors who have no experience and desire to do professional work. Cheap people are used and abused and then thrown out so that the next round begins. Projects are also outsourced to low-wage destination where they are done by people who apparently begin to learn programming just with your project. That's one thing I truly don't understand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm entertaining more and more the idea that I will drop employed programming work at some time in the future. I would very much like to work in my own start-up with my own project. If not that, I'm considering trying freelancing or probably changing the payed job nature. After all, I hardly learn anything during working hours and I don't get any satisfaction at all. I can do anything 9-5 and always have satisfaction with my own personal projects. I learn much from online communities. I receive here attention, support for my ideas and on occasions even recognition I could never get with my job and my work colleagues. Will see where I will be in the future.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" CommentCount="23" />
  <row Id="30456" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T07:56:41.953" Score="6" ViewCount="" Body="&lt;p&gt;Good question Jeffrey. Do you still enjoy programming? Are you passionate about it, do you do it in your spare time? Or are you just sick of some of the terrible programming jobs you have had. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are feeling like programming is not for you, there are many other disciplines you could branch off and do at this point in your career - project management, sales, pre-sales, analyst. These opportunities wouldn't have existed when you were a junior/grad, so you might not have started thinking beyond cutting code. Perhaps you can approach your employer to sponsor you for certification exams, or if you want to explore a new technology (Azure/Silverlight/WPF?) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if you feel like your workplace resembles a true-to-life Dilbert comic, maybe it is just time to move on. If you have been working in a large company, how about interviewing for a few startups, or vice versa. You don't have to tell anyone you are applying for jobs, and even when you get an offer, you are in a great negotiation position since already have a job, you can simply decide if the offer get is better than your current situation, and if not then just keep looking. Larger companies can often offer you better career development opportunities and training, whereas with a small company you get more intangibles, like responsibility for the success of the company, flexible working hours, stock options, and seniority/respect later on if/when the company hits it big.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" />
  <row Id="30457" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T07:57:45.747" Score="1" ViewCount="" Body="&lt;p&gt;I'm currently working at my third job. I worked at my first job for 4 years and then at my second one also 4 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's a combination of wanting to do something and carreer opportunities and job offers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mean: when you work at a job for a year or so and headhunters contact you, you're like: &quot;no sorry, I'm happy at my current job&quot;. But then like after a few years you might get tempted into looking around for better opportunities until you reach that breaking point and really look out for something else.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" />
  <row Id="30458" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T07:59:29.160" Score="18" ViewCount="" Body="&lt;p&gt;I agree with Nikos completely.  I think what you maybe need is to find a company that is technology and product focused.  There are companies where the software developers consider development just their job, and they never think about this stuff in their own time.  The working environment is usually much more geared up for managers doing desk work rather than developers doing mind work.  The average standard of the developers is generally low (although you occasionally get one &quot;guru&quot;).  They tend to cut corners on (or even avoid) things like version control, testing, process etc.  The company generally ships software that does do the job, but it's often ugly and buggy, and nobody seems particularly bothered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand there are companies where the developers are just there doing what they'd otherwise be doing at home anyway; they go home in the evening and work on their own home dev projects, and and learn new languages/tech in their spare time.  The working environment is usually quite developer-centric, with good monitors, good tools, good atmosphere conducive to thinking.  The developers are often of a high standard, and you find yourself learning from all your peers on a daily basis.  They generally take things like version control, testing and process seriously.  The company generally ships decent quality software, because the developers take it personally if there are bugs or imperfections.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think finding a larger company will necessarily improve matters; in fact in many cases larger companies are worse, and the problems are just deeper ingrained and more institutional.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously I'm polarising things a bit....but if you're a software engineer at heart (and not just on your resume), then you need to try and find one of the latter types of company.  Think of some good interview questions you can ask &lt;em&gt;them&lt;/em&gt;, to find out whether a company is that kind of place.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" CommentCount="1" />
  <row Id="30459" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T08:03:42.477" Score="6" ViewCount="" Body="&lt;p&gt;If it's any consolation, I've felt exactly the same way about seniors in my work place.  Last week I filed an evidence-based report, and this week I had an hour long meeting with personnel to officially file a complaint about the managers (taking into account I'm a junior).  It was either grow some balls or be unhappy in my job.  It's not malicious complaints, it's constructive complaints.  There's a difference, and it can certainly have a huge impact on your happiness in work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also say don't just &quot;give up&quot; because you have an issue with people.  It seems a lot of people in here just say &quot;quit your job&quot;, the truth is that &lt;em&gt;you&lt;/em&gt; can make the difference in the work place.  It sounds cheesy I know, but I think you'd make change happen and gain more respect if you're pro-active for things to change.  Don't be scared to take your boss aside and make a complaint.  I have, and already it's made a big difference.  We're adopting new technologies, changing our work procedures and more formally approaching tasks all because of what I said (and I'm a junior developer)&lt;/p&gt;&#xA;" OwnerUserId="4042" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" CommentCount="1" />
  <row Id="30460" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T08:26:10.647" Score="47" ViewCount="" Body="&lt;p&gt;Hi !&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First thing : a big warning : if you've been developing for 10 years (like I have) there's nothing else you can do better than developing. So if you want to do something else, something new, do it quickly otherwise it may be too late and you won't be good at doing something else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just to share my own point of view : I'm a self driven person, self taught.&#xA;I've learned &lt;em&gt;alone&lt;/em&gt; pure C, C#, Amiga C developing, Windows, COM, Delphi, PHP, Cinema4D and now Blender and Python. I've almost always worked &lt;em&gt;alone&lt;/em&gt;.&#xA;Here's the biggest problem I've encountered so far : small companies try to survive and you're one of the ones who keep it alive : it's very stressing but it's also rewarding : you work more, you learn faster, and a lot of stuff quickly, you make products faster (event though you often can't do your job properly). Anyway : too much stress. On the contrary, &lt;em&gt;big&lt;/em&gt; companies will always survive but the problem is about people : too many people. It's a jungle, but far worse : nothing is clear : if  the people you work with feel like you're better than they are, they'll try their best &lt;strong&gt;not to help you to go up but only to shoot you&lt;/strong&gt; because they fear for their own career. It's the way it works in France (I don't know for other countries).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To make it short : try to find a middle sized company where you feel like it's &lt;em&gt;your place&lt;/em&gt;.&#xA;No matter how long you've been programming, no matter how long you've been working, the day when you get in your car to go to your job and you think &quot;I'm happy to go to my work&quot; will be the day you found &lt;em&gt;your place&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not a question of 4-5 years or whatever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;NB : there's a huge difference between &quot;I'm happy to go to my work&quot; and &quot;I'm happy to go to my work because I'll do this and that&quot; / or / &quot;I'm happy to go to my work because I'll learn this and that&quot;. If you think &quot;because I'll do this and that&quot; this means &quot;this and that&quot; will end one day and you may not be happy after. This is my 12 years programming experience. And I'm a senior, I'm well paid, but I do realize that 20-25 y.o. people think faster than I do. They just don't have my experience so I've just admitted I can help them to do things, they do it faster, but I help them to make them properly (which is almost never the case when you start developing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry for my English which isn't perfect, don't hesitate to correct my post to make it proper English.&lt;/p&gt;&#xA;" OwnerUserId="5391" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" CommentCount="9" />
  <row Id="30461" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T08:43:15.700" Score="7" ViewCount="" Body="&lt;p&gt;I find the red thread I have seen in my career has been that when I feel I get caught up in a situation where I have no control of my environment that is when I start feeling bored. Just doing what everybody else is telling you. It is important to have an area that is one's own (IMHO) to have complete responsibility of - maybe that is missing in your work as well?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In that case you should speak with your manager, maybe there is some solution in your current job? Asking for more responsibility is always a good move.&lt;/p&gt;&#xA;" OwnerUserId="4910" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" CommentCount="4" />
  <row Id="30462" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T09:43:19.160" Score="7" ViewCount="" Body="&lt;p&gt;In my experience, the first few weeks (months at most) are crucial for the general quality of a project. If you happen to start working at a place where other programmers have already created a mess (bad coding standards, no version control etc.) it's very difficult for a manager, and mostly impossible for a new peer, to establish any improvements. Later, deadlines and budged issues will cause some ugliness an almost every project, but if the foundation is well done, the damage will be limited and manageable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For that reason, if you find yourself in a situation where you have to work with bad peers on a bad project, try to get assigned to a new project (if this is possible in your company) or find a new job. Don't wait too long, since bad habits are contagious.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" />
  <row Id="30463" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T09:51:45.827" Score="2" ViewCount="" Body="&lt;p&gt;I have these on a recurring basis. What happens is that i generally lose interest in my work and try to learn new skills. After that i try to put these skills into my work, but I rarely get the chance. This is due to micro-management and constantly changing company policy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Worst thing is that i'm more or less stuck at my current employer unless i move to a different part of the country.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only &quot;senior&quot; developer with us is actually not a developer, at least in my eyes, he's really productive, but i've never seen him write any code. And to my knowledge he hasn't got much longer work experience than the rest of us. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd really like to do something else, like building a boat or something. However i feel that i've really past the turning back point after 8 yrs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if i had the chance i'd be doing something different, but i do feel somehow that I would return because this is who I am. I know code.&lt;/p&gt;&#xA;" OwnerUserId="10495" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" />
  <row Id="30464" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T09:58:12.003" Score="2" ViewCount="" Body="&lt;p&gt;I think you might be confusing disaffection with 'A job' and disaffection with 'THE job'. As others have said, you just might need a change of situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Product-focused development, rather than Line-of-Business (LOB) projects, might give you that stronger relationship between your efforts/desire for quality and outcomes. When you are trying to make a commercial product the best it can be, you are very focused and aligned with the efforts of others, especially if your market is in the tech/programmer area - maybe you need to become a software tool developer for example?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At any rate I would certainly advise you against seeking out larger companies with more money - where do you think the average &amp;amp; below average developers go to hide?&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" CommentCount="2" />
  <row Id="30465" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T10:03:46.067" Score="21" ViewCount="" Body="&lt;p&gt;Maybe take a look at &lt;a href=&quot;http://www.pragprog.com/titles/cfcar2/the-passionate-programmer&quot; rel=&quot;nofollow&quot;&gt;The Passionate Programmer&lt;/a&gt; by Chad Fowler... quoting from the webpage:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In most cases, remarkable careers don’t come by chance. They require thought, intention, action, and a willingness to change course when you’ve made mistakes. Most of us have been stumbling around letting our careers take us where they may. It’s time to take control.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" />
  <row Id="30466" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T10:26:49.020" Score="1" ViewCount="" Body="&lt;p&gt;I suggest that, given the opportunity of course, you do something else for a time. Like IT consulting, data warehousing, sales, or even support. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll either rediscover your passion for programming and be so glad to get back to it (which is what happened to me) or you'll be happy with your new job and pursue a different career that you hadn't thought of before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you get back to programming then, it might also open up the possibility to work on different projects in other industries using other technologies than before, which can also be a good thing.&lt;/p&gt;&#xA;" OwnerUserId="5446" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" />
  <row Id="30467" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T11:04:51.667" Score="28" ViewCount="" Body="&lt;p&gt;I've found that there are 2 secrets of relative happiness:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;do not seek to have everything you want but seek to want everything you have&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;life it's tough - it doesn't matter how hard you can hit (good you are, personally and professionally); it will always hit back harder. it matters how much you can get hit and still be able to move on.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;After all it's all a walk in the park and there are more important things than bits and bytes, and practices and stuff. Just enjoy all experiences as they are and fight back as much you can.  &lt;/p&gt;&#xA;" OwnerUserId="26208" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" CommentCount="2" />
  <row Id="30468" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T11:24:46.840" Score="7" ViewCount="" Body="&lt;p&gt;I have had the same questions and possibly looked at the same things you have (great startups, inspirational advice, motivated people creating amazing things, processes, algorithms that make your head heart) only to find none of it in my coworkers, current or former, nor in the people I know who are in the business. So this conundrum of matching this deep interest with a paid job has meant a lot of badly slept nights and a search for a project so ingenious that could be taken on the side and yet grow into its own thing quickly enough to provide a way out. Like a lot of people, I have a family to support, and I personally think the energy it takes to build something in a startup targeting the Brazilian market is not well spent if it's not completely IT-ish and boring. And seriously? I do IT-ish and boring things all day long.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to me the answer has been keeping the will to learn and improve in one place and work in another. I've taken up processing.org and keep trying to draw, write and cook more. It's been great for me, to be honest: sometimes you're so caught up with matching the people you admire and being taken up to the Pantheon of great achievers that you ignore serious facts about who you are and what makes you feel life is worth living. And while work is something that takes a considerable chunk of your day, the minute you stop worrying about what it all means and where you're going is the moment you realize you don't need it to get there. Keep coding if it's what you love, write software at home, contribute to projects you're passionate about. That type of satisfaction hardly ever comes from a paycheck for most people, and maybe that's the case for you too.&lt;/p&gt;&#xA;" OwnerUserId="13339" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" CommentCount="1" />
  <row Id="30469" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T11:39:02.310" Score="6" ViewCount="" Body="&lt;p&gt;Well, you should learn another domain (mathematic, AI, data mining, BI, integration whatever).&#xA;Then after mastering this new domain chances are that you have new ideas which respond to real business needs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this stage if you are a great programmer, you just need to make a startup. Well it's risky, but way more fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn different skills and competencies, not just in programming, then combine them to create a new thing nobody has thought. That's easy, you already have the best hammer ever : Programming.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" />
  <row Id="30470" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T14:10:57.517" Score="18" ViewCount="" Body="&lt;p&gt;IMO the dissatisfaction you obviously feel is not a crisis, but rather a sign that you reached a certain level. You outgrew &quot;I am just a programmer&quot; slot. You have enough understanding now to see the flaws in the current state of affairs and how it can be fixed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The next step is find a connection between what you see as potential improvement and what the company you work for would see as such. Then you have to convince your boss(es) that this is the way to go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is not enough to understand things and know how to do things. You also should be able to convince people that you know what you are doing. And if it sounds like sales that is because it is. But this is absolutely necessary to become &quot;great&quot;. You are working not with computers, you are working for people and with people, you have to be able to sell your ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course some companies would be too conservative to accept your ideas, and your boss can reject them because of the color of the tie you are wearing. Just keep in mind that selling ideas is no easier than generating ones, and unsuccessful sale is not necessarily a result of your boss' ulterior motives it can be bad presentation on your part.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" CommentCount="1" />
  <row Id="30471" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T14:20:16.227" Score="7" ViewCount="" Body="&lt;p&gt;As a programmer you're always going to have to balance your desire for perfection and your employer's desire for a working product. At some companies these two desires will be closer to one another, at most companies the two desires will be far apart.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My best suggestion for dealing with the drain of your day job is to start a personal project on the side, one where there is no deadline, where you can work in areas that you don't usually work, one where you make all of the decisions. The most rewarding code that I've written was while working as a Wii developer, I can suggest that you write a game. You'll be able to touch on every different aspect of programming, 3D, networking, AI, etc... and since you're already working with .Net I'd suggest grabbing &lt;a href=&quot;http://creators.xna.com/en-US/&quot; rel=&quot;nofollow&quot;&gt;XNA&lt;/a&gt; or &lt;a href=&quot;http://unity3d.com/&quot; rel=&quot;nofollow&quot;&gt;Unity&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as Senior Programmers not knowing much, you're probably right. Most senior programmers at larger firms were promoted at a time that they did know a lot, or when they were able to get the job done. Now that they're senior they have different responsibilities, mainly as managers. It's expected that their coding skills will slip a little. Some are better than others, and some probably did just get promoted because of who they know, but most senior programmers that I've worked with in the past had a solid (although sometimes outdated) skill set.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to wrap it up, do a personal project to relieve the day to day boredom, and take it easy on your seniors, just do the best work that you can in the time allotted and you'll be fine.&lt;/p&gt;&#xA;" OwnerUserId="7304" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" CommentCount="1" />
  <row Id="30472" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T15:57:31.623" Score="3" ViewCount="" Body="&lt;p&gt;Perhaps consider going to graduate school?  That might open up opportunities for a different, more long-term-oriented kind of work.&lt;/p&gt;&#xA;" OwnerUserId="4605" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" CommentCount="3" />
  <row Id="30473" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T16:02:27.640" Score="29" ViewCount="" Body="&lt;p&gt;I think you need five more years experience. Then you will be able to accept the compromises and be happy to fix what you can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least that was my experience. At about 5 years (about the time it takes to become an expert) I think I actually &quot;got it&quot;. I realized my code was crap. I realized my shiny hacks that got the apps working were just that, hacks. I came to understand that I had been creating sub-par code just to make my bosses happy and keep the paychecks rolling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the same time I realized that the desires of the bosses were not going to change. They were always going to want it yesterday without spending any money on good tools. They never were going to care if I used a particular design pattern. Never would they be in awe because I increased the maintainability by applying the Single Responsibility Principle judiciously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also realized I would be fighting my younger self embodied by inexperienced programmers. The programmer that hacked the program to get it working fast. The young programmer that resisted all the silly things that took me years to understand. The young programmer that thinks having 5 classes is more confusing than have one huge class that does it all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But now that I am at my 10 year point I have come to see that those frustrations are just like the frustrations I experienced in my first five years. It is the frustration associated with learning a new skill. But this time the skill are interpersonal. The skills are getting non-programmers to understand the limitations of going down the cowboy path. And these skills are maybe more important in the grand scheme of things than the coder skills I acquired during the first five years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But what is really amazing about this job is that I can continue, and actually must continue, to developing by technical skills while also working with management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I say to you keep at it! Because you have become comfortable with the technology you can start working on your skills dealing with the mushy things called humans.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" CommentCount="3" />
  <row Id="30474" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T16:16:51.997" Score="9" ViewCount="" Body="&lt;p&gt;I have found similar things in my 10 years of programming, and I surmise that these are rather common occurrences.  In the business world (as opposed to academia), money (or lack of money) and time drive the schedule, features, and quality of the programming.  Often those resources are lacking for doing things fully correctly.  This is a prime motivator for finding the most efficient methods to solve problems.  This situation has also guided me to keep in mind that my programming should solve only the problem at hand (with some amount of future consideration) instead of building something that contains many more features than is required.  This is a crucial lesson to learn, in my opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your comments on &quot;senior programmers&quot; is also, sadly, common in my experience.  I think the reason for this is two-fold - first, many experienced programmers get lazy, using only the tools and methods they have used in their careers.  Technology keeps moving forward, however, and this leads these experienced programmers to become &quot;dinosaurs&quot;.  Second, after programming for a while, it can become easy to fall prey to a bit of hubris (&quot;my talents have gotten me this far, so I must be a pretty good programmer&quot;).  I try to combat both of these problems by continually trying to learn new methods or technologies to solve my problems.  Sometimes this contradicts the &quot;build only what is required&quot; lesson state above, but the goal is to strive for a healthy balance between the two.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest using the experiences you have as a motivator to continually improve yourself.  I have quit the programming industry myself after about 5 years because I lost the passion to engineer code.  But I couldn't get rid of the itch to build programs, and I came back to the industry several months later.  I did learn that you have to engage yourself doing what you enjoy doing - if you want to project manage, find a position that allows you to manage projects.  If you want to code all day, find a position to do that.  Finding a job that challenges you and fulfills your desires is a wonderful and necessary part of a happy existence - I wish you luck in finding that.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" />
  <row Id="30475" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T16:35:07.727" Score="5" ViewCount="" Body="&lt;p&gt;Wow!&#xA;I like how valuable this conversation is.&#xA;I am a web developer with 5.5+ years of experience and I love it. &#xA;I can't vote but I will quote AZ's words.&#xA;I agree with that!&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I've found that there are 2 secrets of&#xA;  relative happiness: - do not seek to&#xA;  have everything you want but seek to&#xA;  want everything you have - life it's&#xA;  tough - it doesn't matter how hard you&#xA;  can hit (good you are, personally and&#xA;  professionally); it will always hit&#xA;  back harder. it matters how much you&#xA;  can get hit and still be able to move&#xA;  on.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The book I'd recommend is:&#xA;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0471676225&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Software-Measurement-Estimation-Quantitative-Engineering/dp/0471676225&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" />
  <row Id="30476" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T16:59:40.787" Score="9" ViewCount="" Body="&lt;p&gt;I can relate in terms of the code written could be better but there has to be a line where one may be too much of a perfectionist as if something works 99.99999% of the time, isn't that close enough to 100% for most people?  Part of my struggles at times with negative thought patterns are perfectionism and intense self-criticism and judgement so maybe I can overly identify with that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4-5 years is enough time, IMO, to figure out a few things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What you want - What practices in your current position do you enjoy?&lt;/li&gt;&#xA;&lt;li&gt;What works for you - This is slightly different in that what works may not always be what you want.&lt;/li&gt;&#xA;&lt;li&gt;What are your dealbreakers - Could you go work for a company that wouldn't let you have an IDE?  Extreme example but I would hope that illustrates the point somewhat.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There are other questions like &quot;&lt;a href=&quot;http://stackoverflow.com/questions/1546135/roadmap-to-a-better-programmer&quot;&gt;Roadmap to a better programmer&lt;/a&gt;,&quot; and &quot;&lt;a href=&quot;http://stackoverflow.com/questions/1411394/how-to-become-a-faster-programmer&quot;&gt;How to become a 'faster' programmer&lt;/a&gt;,&quot; that may have suggestions for you if you do want to improve your skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also experienced where the senior title is given to someone merely for surviving in the field for so long, rather than achieving a level of skill.  You can either accept this as part of how the world works or you can try to find places that run differently.  How many actually exist I don't know, but I can say that sometimes you can find a good place in terms of how you like to work and what the company and co-workers use to get the job done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;&lt;a href=&quot;http://sourcesofinsight.com/&quot; rel=&quot;nofollow&quot;&gt;Sources of Insight&lt;/a&gt;&quot; is one of my favorite blogs and I enjoy reading it nearly all the time.  The material is a bit head heavy in terms of there being a lot of intellectual elements to what is written but there are nuggets that one can take and make their life a little better or at least that has been my experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can remember in school when I was a child that there were often transitions after 4-5 years as while my first school I was at for 8 years(Junior Kindergarten to grade 6), then it was 2 years(grades 7 and 8), 4 years(High school which was grades 9-13 where 11/12 was done in one year in my case), and 4 years(university bachelor's degree).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can accept the idea of crisis coming at various points in life,e.g. finishing university can cause one to wonder who they are or after working for a while wondering if it is all worth it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some places can appear as awesome places to work and others can lead to burnout as that has been a question here a couple of times, &quot;&lt;a href=&quot;http://stackoverflow.com/questions/48958/what-causes-developer-burnout&quot;&gt;What causes developer burnout&lt;/a&gt;,&quot; and &quot;&lt;a href=&quot;http://stackoverflow.com/questions/48961/developer-burnout-stories/&quot;&gt;Developer burnout stories&lt;/a&gt;,&quot; while other questions are the flip of that, &quot;&lt;a href=&quot;http://stackoverflow.com/questions/637133/what-is-your-motivation&quot;&gt;What is your motivation&lt;/a&gt;,&quot; and &quot;&lt;a href=&quot;http://stackoverflow.com/questions/1420377/programming-demotivation-and-further-plans&quot;&gt;Programming (de)motivation and further plans...&lt;/a&gt;&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just for the sake of background in my answer here I've been developing web sites/applications for almost 12 years now as I got my first out of university job in February 1998 and aside from an 8 month drought where I wasn't working I have been doing this all the time in a few different environments: A couple dot-coms, an application service provider and now within the Information Systems department's web development team at a local technology company.  I realize this is a long answer, but I think the questions asked don't have short answers to my mind.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" />
  <row Id="30477" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T19:37:01.717" Score="5" ViewCount="" Body="&lt;p&gt;My two points:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hit mine after a mere 2 years in the industry. I overcame it by bettering myself and learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the time, it will come because you are doing the same thing over and over. And if you're doing the same thing over and over... well... you're doing it wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Always improve. Always learn. And hell, if your current company isn't giving you that atmosphere, go find one that will. I did and the last 2 years have been the best time of my life (I'm also probably 100x better at my job than I was 2 years ago too)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" />
  <row Id="30478" PostTypeId="2" ParentId="30449" CreationDate="2009-11-06T22:36:31.190" Score="1" ViewCount="" Body="&lt;p&gt;A lot of people have basically said Learn Something, and I agree with that.  In particular, I suggest finding a domain you have a special interest in and getting &lt;em&gt;good&lt;/em&gt; with it.  I know too many web designers who &quot;really wanted to be 3d artists but never figured out how to do it.&quot; By far the best way to get hired for interesting projects or technologies is to have experience in other interesting projects or technologies.  An unfulfilling-but-undemanding workplace can be used to your advantage, giving you the mental breathing room to take on new concepts.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, the best advice I have heard in these situations is not to think positively but to think &lt;em&gt;constructively&lt;/em&gt;.  Where am I in my career? Where do I want to be? What steps do I have to take to get from here to there? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even taking a hands-on, holistic view of your own company's activities can be refreshing - what realistic alternatives would you implement to the workflow as it stands? are there any small components that can be introduced without too much disruption? Presenting a written proposal of a new model along with working code for a part of it shows vision as well as technical competence.  The difference between a good junior programmer and a good senior programmer is the scope of the solutions they are required to craft.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Also, 4-and-a-bit years of a 9-5 also represents 10,000 hours put in to a field.  Not particularly relevant, but I thought it was a neat yardstick to know about!)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" />
  <row Id="30479" PostTypeId="2" ParentId="30449" CreationDate="2009-11-07T00:51:51.790" Score="1" ViewCount="" Body="&lt;p&gt;The project is the thing. Really. I've run my own small company, and medium and large size teams. The single biggest thing I see is that everyone is motivated when they dig the project. Won't you work cheaper if the project is really cool? Won't you work longer when you're totally into what you're doing and charged to see everyone else feeling the same way?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We do what we value best. So how can you inject value back into your career when you are working for someone who pays your bills? Through innovation. Innovate and share that with others. That's keeps it fresh.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T00:51:51.790" />
  <row Id="30480" PostTypeId="2" ParentId="30449" CreationDate="2009-11-07T01:25:18.480" Score="13" ViewCount="" Body="&lt;p&gt;Something I've found many programmers don't understand is that not all decisions are technical.  Sad as it is, doing something &quot;right&quot; is not always an option.  This leads many developers to think their bosses are stupid, or make poor decisions... and yes, often that is indeed the case, but equally as often the fact of the matter is that the company might be out of business, or lose a job entirely if they allowed the programmers to set the schedule and make all the technical decisions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sadly, sometimes it's our job to work within the political or financial constraints of the job and do the best we can.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing you learn from experience is to be conservative.  The latest techniques may not be proven and you may not have a strong grasp on them even if they are.  Managers don't like spending time on letting you get up to speed on a new technology just because you want to learn something new.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers forget that many companies are not software companies.  They're &amp;lt;insert business industry here&amp;gt; companies that also do software.  Your job as a programmer is to facilitate the mission critifcal processes, not write perfect software.  Sometimes it works out that those are the same thing, but it's actually quite rare.&lt;/p&gt;&#xA;" OwnerUserId="4368" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T01:25:18.480" CommentCount="4" />
  <row Id="30481" PostTypeId="2" ParentId="30449" CreationDate="2009-11-07T01:46:37.767" Score="2" ViewCount="" Body="&lt;p&gt;Let me give a manager's point of view.  The world supply of coding opportunities greatly exceeds the available talent-hours available to address them.  Managers run businesses to make a profit, for which reason they try to apply the available talent-hours to as many coding opportunities as possible, so it is only right and proper that things get done in a rush, and on the cheap, provided the consequences don't affect the bottom line.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience the best work gets done when management isn't looking, either as a skunkworks project at a larger company, or increasingly by voluntary contributors working on open source projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice is embrace the discipline of cost control, look for skunkworks opportunities, find an open source project to engage your spare time, and get into management, because if you don't someone with less technical competence will get to make decisions instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS. I was a C/C++ developer for 12 years and still code Java as a director.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T01:46:37.767" CommentCount="1" />
  <row Id="30482" PostTypeId="2" ParentId="30449" CreationDate="2009-11-07T02:19:20.763" Score="5" ViewCount="" Body="&lt;p&gt;There are a lot of programmers, but only a small fraction of them are software engineers of quality. I suppose that's true in any profession.&lt;/p&gt;&#xA;" OwnerUserId="9760" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T02:19:20.763" />
  <row Id="30483" PostTypeId="2" ParentId="30449" CreationDate="2009-11-07T03:46:40.923" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Think of this as a chance to chanllege you beyond yourself.&lt;/strong&gt;I would suggest you to take initiative to improve your atmosphere. You will learn lot along the way ,no matter you would fail or succee.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's much easier to complain (I know people don't like this words, me too) than to make positive change.To change you should be able to influence others; you should be able to communicate;you should be able frame common ground; you should be persistent and patient; you should be able to listen and motivate others with you vision. &lt;strong&gt;These are the never-out-of-data skill that will benifit your whole life.&lt;/strong&gt; &lt;/p&gt;&#xA;" OwnerUserId="2390" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T03:46:40.923" CommentCount="1" />
  <row Id="30484" PostTypeId="2" ParentId="30449" CreationDate="2009-11-07T04:39:35.207" Score="1" ViewCount="" Body="&lt;p&gt;Imagine  if your experience was less than 4 years, be a woman, be pretty, be complete in-love of your work as developer and no one take you seriously. Although if you have squashed one and another time in knowledge the men that's surround you but you must pretend all time that you are a silly girl. Yes sometimes it's really frustrating, but I think that everything in live is how much you love what you do, and certainly the only way to really learn is by our own effort.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T04:39:35.207" CommentCount="2" />
  <row Id="30485" PostTypeId="2" ParentId="30449" CreationDate="2009-11-07T05:36:40.380" Score="3" ViewCount="" Body="&lt;p&gt;I worked for 2 companies in 2 different continent with total different mentalities but what they have in common that they both don't care about programmers... Programmer is usually associated with the bottom level of companies... They are usually associated with beginners and have the smallest wages... while Project Managers, architects etc... usually take more money and do less work...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been working for almost 4 years now and I have nearly the same feeling as you... Switching between projects... trying all the possible programming languages... C, C#, php, ASP.NET, WinForm, C++, Python, VB.NET, VBA... and a lot more was some of the languages I worked with... Since the moment your superiors discover that you can make it with any language that they give you, they will tag you as a &quot;&lt;em&gt;good&lt;/em&gt;&quot; resource and give you all the dirty job...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't neither got a mentor to guide me thorough my career... and like many who wrote here... I only find my satisfaction when I do make my personal projects... but unfortunately usually the long hours of work didn't let me to make some serious work...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In conclusion, I will spend some months lost till I decide like the majority of passionate developer to give up and take a merely boring architect post to get more cash&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T05:36:40.380" CommentCount="1" />
  <row Id="30486" PostTypeId="2" ParentId="30449" CreationDate="2009-11-07T06:11:49.790" Score="2" ViewCount="" Body="&lt;p&gt;If you're good at what you do, as a programmer, most people you encounter in corporate life, will have more to lose than to gain. Senior management would gain from your abilities and you need to ensure you have their support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find your own mentor. It is your responsibility, if you love this game, to find someone to help you grow.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T06:11:49.790" />
  <row Id="30487" PostTypeId="2" ParentId="30449" CreationDate="2009-11-07T07:58:15.650" Score="3" ViewCount="" Body="&lt;p&gt;Somehow we have a similar feeling. Now I am wondering if this is happening because we're both having five years of experience or because of the organized rising of those people who read &quot;Clean Code&quot; (we in germany have a quite active community around the &quot;Clean Code Devloper&quot; initiative) , &quot;Pragmatic Programmer&quot; and &quot;Code Complete&quot; like ALT.NET and so on. All the blogs are full of ideas how to do things right and clean.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I am thinking, that the five years of experience is just a matter of coincidence, while the main reason is the change of the industry - which is quite new: houses and bridges are being build since thousands of years, machines are constructed for many hindrets of years, higher medical stuff goes hundred years, computers some 50 years and we're coding in a 3rd generation language since 20 years. See the point? It takes time to become mature for an industry, and I think the industry is coming to the age of adolescence :-)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T07:58:15.650" CommentCount="2" />
  <row Id="30488" PostTypeId="2" ParentId="30449" CreationDate="2009-11-07T15:55:21.180" Score="1" ViewCount="" Body="&lt;p&gt;From my experience also in some large companies the situation is the same. What matters is the organization's values and policies and much less its size.&lt;BR&gt;&#xA;&lt;BR&gt;&#xA;Try finding a sub-field of software engineering that you are more passionate about and enquiring what companies have jobs in the field and what working there is like.&lt;BR&gt;&#xA;&lt;BR&gt;&#xA;The seniors are usually people that either have been there for a long time, or have key positions (e.g. team leaders, architects, ...), however staying in one company for a long time tends to have a negative influence, since you get used to the situation their and the technologies they use and you strive less to change things and try new approaches. - Fresh minds are very important, internal experience is important for knowing how to get things done in that company, companies should have a combination of both.&lt;BR&gt;&#xA;&lt;BR&gt;&#xA;Also try to get your work place to send you to as many external courses as possible, that you think will improve your technical knowledge and working methods.&lt;/p&gt;&#xA;" OwnerUserId="12557" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T15:55:21.180" />
  <row Id="30489" PostTypeId="2" ParentId="30449" CreationDate="2009-11-07T17:05:51.273" Score="1" ViewCount="" Body="&lt;p&gt;The reality is that length of experience doesn't really amount to any sort of guarantee when it comes to competence. A good model of what happens is the &lt;a href=&quot;http://en.wikipedia.org/wiki/Dreyfus%5Fmodel%5Fof%5Fskill%5Facquisition&quot; rel=&quot;nofollow&quot;&gt;Dreyfus model of skill acquisition&lt;/a&gt; which although originally popularised in nursing has had a bit of a revival in software engineering - here's an &lt;a href=&quot;http://pragmaticstudio.com/dreyfus&quot; rel=&quot;nofollow&quot;&gt;example applied to Ruby&lt;/a&gt; (personally I'm a bit dubious about the mapping, but still an interesting read).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sadly most people never pull themselves past the &quot;advanced beginner&quot; stage in their skills (note that the model should be applied per skill not to a person as a whole) - you'll only get better by not only practicing self improvement but by choosing the right sort of learning which will pull you to the next stage. This is why some people can do lots of courses, pass exams and still be rubbish.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It sounds like that you've reached a particular stage in your skill development (competent or proficient) and so are able to differentiate yourself better from others. The general pattern is that it takes 10 years to become fully expert in any particular non-trivial skill - but most people never do.&lt;/p&gt;&#xA;" OwnerUserId="1362" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T17:05:51.273" />
  <row Id="30490" PostTypeId="2" ParentId="30449" CreationDate="2009-11-07T17:09:37.007" Score="5" ViewCount="" Body="&lt;p&gt;Welcome to the real world...unfortunately, what you describe happens in most careers with people which just aren't passionated enough about what they're doing. There's only one option (that is, if you love your work): you must find a better shop to work for, though that is not easy in the current days....&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T17:09:37.007" />
  <row Id="30491" PostTypeId="2" ParentId="30449" CreationDate="2009-11-07T17:23:22.533" Score="0" ViewCount="" Body="&lt;p&gt;welcome to the real world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;life sucks.  &lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T17:23:22.533" />
  <row Id="30492" PostTypeId="2" ParentId="30449" CreationDate="2009-11-07T18:01:05.420" Score="1" ViewCount="" Body="&lt;p&gt;A few ramblings from someone who is wondering if after 40+ years of hacking, maybe a new career might be in order ... :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nah.  I love this stuff.  From punch cards and paper tape, through the CDC mainframes, PDP-*, 4004, Alpha, Nova, Eclipse, Eagle (the hardware which came long before the software), Mac Minis and all the stuff in between.  And there are a few of us who still are curious about new technologies after many, many have come and gone.  My first confession is how, as a child of the Mini-computer industry I looked at the old fogies of the Cobol/Mainframe era and thought them dated and basked in the knowledge that us young whipper snappers were here to save the technological day and get stuff done, not to mention make millions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In all that time I never seriously thought of actually leaving programming because there was just too much left undone.  Much of it work created by clueless management in a rush to deliver a 5 month baby, time after time after time.  And it is that work that is the bulk of the uninteresting work done by 9-5ers or by off-shoring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The interesting stuff is being done by startups, small companies, and companies like Apple and Google who for different reasons have created work environments that foster creative programming.  And in big companies with dysfunctional work environments by mavericks who are willing to be stick their necks out and have their heads lopped off from time to time.  Been there, done that and will do it yet again, if only because at the end of the day, there is just nothing like seeing that application, system or library actually working and being used, and most important of all, knowing that but for your efforts, the end product would be worse off still.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not to worry.  If you love this stuff you will be doing it 30 years from now.  If not you will, with any luck, find what you do love and it will lead to internal satisfaction and hopefully lots more.  In any case, excellent question if only for the opportunity to express some deeply felt passion. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T18:01:05.420" CommentCount="1" />
  <row Id="30493" PostTypeId="2" ParentId="30449" CreationDate="2009-11-07T19:42:33.220" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I’ve also observed another issue that most so called “senior” programmer in “my working environment” are really not that senior skill wise. They are “senior” only because they’ve been a long time programmer, but the code they write or the decisions they make are absolutely rubbish! They don't want to learn, they don't want to be better they just want to get paid&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;... followed by ...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I’ve run into a mental state that I no longer intend to be a programmer for my future career. I started to think maybe there are better things out there to work on.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Then it's time to start looking, and to take action. Because if you remain a programmer with this attitude, you will end up just like those &quot;senior&quot; people that you so clearly despise. The operative word is &quot;trapped&quot;: you'll make enough money that you can't justify moving to something else, and your skills will be so narrow that you can't move within the industry.&lt;/p&gt;&#xA;" OwnerUserId="21172" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-07T19:42:33.220" />
  <row Id="30494" PostTypeId="2" ParentId="30449" CreationDate="2009-11-08T01:01:34.830" Score="1" ViewCount="" Body="&lt;p&gt;I have worked for large (enterprise) software companies for the past 4-5 years, and as described in the question, have seen a number of solutions just been thrown together without any real thought or design.  I have been fortunate enough to work with some great people, but it does get a bit depressing to see the same mistakes being made time after time. More often than not, the problems are not technical, but are the result of poor management.  &lt;/p&gt;&#xA;" OwnerUserId="376" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-08T01:01:34.830" />
  <row Id="30495" PostTypeId="2" ParentId="30449" CreationDate="2009-11-09T07:49:47.100" Score="1" ViewCount="" Body="&lt;p&gt;looks like its time to start dealing drugs.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-09T07:49:47.100" />
  <row Id="30496" PostTypeId="2" ParentId="30449" CreationDate="2009-11-10T10:25:14.137" Score="2" ViewCount="" Body="&lt;p&gt;There is a difference between 10 years experience and one years experience 10 times.&lt;/p&gt;&#xA;" OwnerUserId="13494" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-10T10:25:14.137" CommentCount="1" />
  <row Id="30497" PostTypeId="2" ParentId="30449" CreationDate="2009-11-10T19:59:09.833" Score="3" ViewCount="" Body="&lt;p&gt;This question describes pretty well the sad state of our industry: &lt;strong&gt;programming is awesome but most programming jobs sucks&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="18554" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-10T19:59:09.833" />
  <row Id="30498" PostTypeId="2" ParentId="30449" CreationDate="2009-11-11T23:17:39.620" Score="1" ViewCount="" Body="&lt;p&gt;Speaking for myself, there is a cycle. When I started professionally developing I was excited, eager and had a great time working through every new problem.  After a few years, I wound up traveling for a company for several months.  I wasn't really prepared for the amount of travel required and wound up moving on.  The next company I worked for had a problem with being too big and not having a clear focus.  There was never a clear intent or business reason for the coding I was doing.  As a result, it was mostly filling time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that, I became a consultant and found things aren't really that much different from FTE work.  I've typically been on multi-year assignments where eventually it just becomes a job.  As others have said, you wind up doing lots of evil things to get the job done and get mired in the technology you're using, as opposed to new and interesting things.  I spent several years where I didn't really care about the technology. I've seen cycle enough times now that I know that if you ignore a round or two, you won't really doom yourself... but it does take quite a bit of effort to get back on the bandwagon and catch up with the important changes.  Last time I had an interview, Unit Testing and MVC didn't really exist in the .NET space and patterns were barely spoken of in the .NET community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find the best determinant of if I'm &quot;doing it right&quot; is if I'm coding on my own on the weekends and evenings. If so, then I'm passionate about the technology, interested and learning.  If not, my job probably has me on the road too much or has me doing the same thing over and over and I've lost interest... in which case, it's probably time to move on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember: Your boss is in charge of your job, you are in charge of your career.  &lt;a href=&quot;http://www.msdnevents.com/thrivedev/DriveCareer/&quot; rel=&quot;nofollow&quot;&gt;(Blatantly stolen from Brian Prince's great talk on being a better developer)&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-11T23:17:39.620" />
  <row Id="30499" PostTypeId="2" ParentId="30449" CreationDate="2009-11-12T00:07:05.947" Score="2" ViewCount="" Body="&lt;p&gt;I've felt the same way for a while. I'm in a large, corporate IT shop, and I'm seeing the same sort of thing; the seniors are mostly stagnant and resistant to change, and that resistance is so ingrained that we can't even get away with streamlining the user interfaces for our software, instead ending up cloning the original almost exactly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It doesn't help that the original software is mostly terrible; the designs overly complex, very inefficient, and equally error prone... yet the management forces us to make many of the same architectural decisions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I'm working on transitioning to freelance...&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-12T00:07:05.947" />
  <row Id="30500" PostTypeId="2" ParentId="30449" CreationDate="2009-11-12T13:34:10.740" Score="1" ViewCount="" Body="&lt;p&gt;:-) I assure you, the law of code to market go's as follows:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Larger the corporation the least time to market you have, project timelines keep getting smaller and competition to get your product out quickest makes for almost zero time to write the &quot;perfect&quot; solution if there ever was such a thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my personal experience, some 8+ years development in large corporations, smaller businesses and then medium scale enterprises - the projects I was able to focus the most amount of time and polishing was the SMME (small guys) - Sure cost comes into play but don't sell yourself out either! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a developer stand up for realistic timeframes, have a game plan that allows enough time for some polish which will make you feel better about what you've delivered. Failing to plan is like planning to fail, a term coined by many to date.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best of luck with your future plans / career.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-12T13:34:10.740" />
  <row Id="30501" PostTypeId="2" ParentId="30449" CreationDate="2009-11-12T14:15:16.620" Score="2" ViewCount="" Body="&lt;p&gt;Interesting post.  I'm midway through my fourth year professionally doing .net development.  I'm really unhappy with my current job (I am looking but so far there hasn't been much to say on that front).&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;I had a teacher who once went absurdly out of his way to stress documenting everything.  I don't mean code, I mean &quot;everything&quot;.  And he said it probably still wouldn't be enough.  Well, there's a difference between knowing a thing and understanding it and I've come to understand it, and he's right.  There's never enough.  I fail to documnt but bring up a recent conversation, I lose.  I document, I get told I misunderstood something.  I have taken a long, hard look at myself through all of this, and I think some of my own faults are definately at work.  But communication is a two way street, and I am not always the one who fucks up.  It's even worse when I suggest things or address problems, these get blown off at the time, and then come up later.  I sat dumbfounded in the VP's office recently as he and my boss asked why I hadn't done something on a particular page on our most recently released app.  And yet I'd asked about doing that thing during development and was shot down.  Stuff like this is happening far too often for my tastes.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Learning/keeping up on your skills/etc is dicussed sometimes, but we don't do it.  We have opportunitues to do this at work and we still don't do it.  Very disappointing.  I don't expect us to jump on the latest and newest tech/tool every time one appears.  But e.g. we should be doing .net 3.5 development.  There is no argument for not doing 3.5 development.  But we're still doing 2.0 development.  It's stupid.  It's mostly good that my boss is distrustful of new things, but it's gotten silly.  I tried explaining LINQ to him recently (when arguing for moving to 3.5) and his response was &quot;it sounds like that english language query stuff&quot;. I realize part of the problem was me doing a poor job explaining LINQ.   But going back to the two way street of communication, that was someone on the other end who didn't want to listen.  I don't expect the company to make mentoring me it's top priority.  But my group (just 3 developers) could do more to foster learning.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;My group's standing in the company has improved somewhat in the last year and a half.  But we still have some problems.  Our VP is largely responsible for this.  It's frustrating, but I could live with this if certain other aspects of the job were more fulfilling.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Ironspeed Designer - god I hate you.  And the thing is, I understand why a code generator can be helpful.  I have wanted code generators for certain tasks at times in my life.  We seem to be becoming an Ironspeed driven group, though. I do not like this, since it will severly hamper my ability to grow on the job.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I care about the craft of software development and programming, even though I'm deficient at both.  I do not work with people who care about the craft of software development/programming.  No code reviews.  I often can't get help testing things (and then can't get users to test though things have gotten better there in the last year. . . and then get yelled at if a bug makes its way into production on a release.  I'm one man.  I can only do so much).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So I try to learn on my own (I'd do better around someone who is interested in seeing me learn, though).  I go through phases where I like to program outside of work, and phases where I can't stand it.  We just recently got done with a particularly hectic project that saw me put in significant overtime, and so I haven't done any real learning off the job in about 6 weeks. But I'll slip back into it and re-read Skeet's C# in Depth, and do some more playing around with MVC. . .&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have battled a lot of doubts (self confidence has never been one of my strong points anyway) in the last year and a half.  I wouldn't call it a crisis.  I soldier on because I &lt;strong&gt;do&lt;/strong&gt; like doing this.  Even working at a crappy job.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-12T14:15:16.620" CommentCount="1" />
  <row Id="30502" PostTypeId="2" ParentId="30449" CreationDate="2009-11-17T07:19:11.337" Score="6" ViewCount="" Body="&lt;p&gt;My personal experience is the same that you mention. Mostly all the projects i have been working on lately all are made in a rush and all could be better. I've been a program developer for roughly 7 years now and been in the same medium sized company. The management dont have a clue and are running all projects as &quot;non-projects&quot;. There is very little order in the chaos. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing i fear the most is, that I fall into the pit you are talking about and start doing &quot;crappy&quot; programming and stupid decision just to get forward in my career. I hope there is someone there to hit me in the head if that happens. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-17T07:19:11.337" />
  <row Id="30503" PostTypeId="2" ParentId="30449" CreationDate="2009-11-18T04:17:29.183" Score="0" ViewCount="" Body="&lt;p&gt;I just started working about 2 months ago in a small company. Programming isn't boring at all if you really love it.  And I also rely on the internet to search for answers for my own questions but there is also our manager (who is also a developer/programmer) who I can ask from.  Well, it's not all about earning huge income but your passion to get things done.  Try to add some skills.  I'm not just programming but I'm also writing.  I'm also into database design.  When I'll have my spare time, I'll start doing my personal project.  As of now, I enjoy what I'm doing and I'll be still enjoying it after 5 years.&lt;/p&gt;&#xA;" OwnerUserId="1496" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-11-18T04:17:29.183" CommentCount="2" />
  <row Id="30504" PostTypeId="2" ParentId="30449" CreationDate="2009-12-15T06:31:39.740" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Changing your perspective is very important&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think we programmers complain and cry about lot of things. We want everything to be &quot;&lt;em&gt;perfect&lt;/em&gt;&quot; ( = we want everything to be our way). I was (still trying to change) a lot like you. But reading Chad Fowler's &quot;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1934356344&quot; rel=&quot;nofollow&quot;&gt;The Passionate Programmer&lt;/a&gt;&quot; changed everything for me. I now consider myself lucky to be a programmer. I do my 52-55 hrs a week job (yes this is true). It isn't &quot;&lt;em&gt;perfect&lt;/em&gt;&quot;. But, I try to do my work passionately. I work for an outsourcing firm in India and the kind of work we get is far from being termed as challenging.&#xA;Programmer are lucky to have a wide variety of opportunities to satisfy their creative urges. We can work on our own projects. We can work on open source projects. We can do freelancing on weekends. I think most professionals in other fields don't have that luxury.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2009-12-15T06:31:39.740" CommentCount="1" />
  <row Id="30505" PostTypeId="2" ParentId="30449" CreationDate="2010-01-08T10:07:53.100" Score="2" ViewCount="" Body="&lt;p&gt;Here is a book:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Apprenticeship Patterns : guidance for the aspiring software craftsman / David H. Hoover, O’Reilly, 2010&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you are planning a career in Agile Software Development, then this book contains good advice. The foreword is by Ward Cunningham. See also &lt;a href=&quot;http://nuts.redsquirrel.com/&quot; rel=&quot;nofollow&quot; title=&quot;author's site&quot;&gt;the author’s site&lt;/a&gt;. 125 pages.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2010-01-08T10:07:53.100" />
  <row Id="30506" PostTypeId="2" ParentId="30449" CreationDate="2010-01-12T20:21:28.007" Score="1" ViewCount="" Body="&lt;p&gt;My answer is no. I now am a software developer for 7 years, and my fun it's still getting better. (I'm doing desktop apps in C# at the moment)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the part of not feeling senior yourself, I recommend two things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Go to a big company with experienced people&lt;/li&gt;&#xA;&lt;li&gt;Get yourself a good education. I do not know what this means where you live, but at my place they have a great post-degree course that is 2.5 years part-time. This opened my eyes for good software and development in general.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2010-01-12T20:21:28.007" CommentCount="3" />
  <row Id="30507" PostTypeId="2" ParentId="30449" CreationDate="2010-01-13T10:23:30.690" Score="1" ViewCount="" Body="&lt;p&gt;Funny i've just come across this.... I've had enough of programming and plan to leave, but seem to have had the career you desire. Maybe best to follow this thread of mine and hopefully the answers will help us both: &lt;a href=&quot;http://stackoverflow.com/questions/2055669/how-to-find-part-time-development-it-work&quot;&gt;http://stackoverflow.com/questions/2055669/how-to-find-part-time-development-it-work&lt;/a&gt; I understand your frustration&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2010-01-13T10:23:30.690" CommentCount="1" />
  <row Id="30508" PostTypeId="2" ParentId="30449" CreationDate="2010-01-15T13:04:53.837" Score="0" ViewCount="" Body="&lt;p&gt;what do you do when &quot;personal projects&quot; no longer give you sufficient learning or motivation?&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2010-01-15T13:04:53.837" CommentCount="2" />
  <row Id="30509" PostTypeId="2" ParentId="30449" CreationDate="2010-03-21T21:47:19.023" Score="34" ViewCount="" Body="&lt;p&gt;I've been a software developer for twenty-one years -- among other things, that means I've been doing this long enough to drink! ;-) But seriously, though, I can't imagine doing anything else as well or as joyously as programming. I'm apparently one of those rare birds that really &lt;em&gt;love&lt;/em&gt; this job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was recently freshening up my resume, and I noticed that I've had many, many jobs in the last two decades -- mostly contracts. But what I realized in looking at that long list is that the jobs I loved most (and the ones I stayed at the longest) were with software firms, i.e. companies whose business model involved selling software to customers. The following theories are probably not universally applicable, but they go far to explain my experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I see it, the difference between a software shop and your typical IT shop is surprisingly obvious. It's merely a question of what those in upper management understand. If the company gets most of its revenue from software, then the top brass will really grok software and how it's made. But if revenue comes from selling widgets, they generally don't have the faintest inkling of what it takes to keep their IT infrastructure running, let alone the processes behind software development. Worse, even though they delegate the task to IT staff, they try to map the IT processes to what they know, with results that generally range from disappointing to disastrous.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One reason is that there's a wide range of talent out there, from the merely competent to the software virtuoso. This runs completely counter to the cookie-cutter, one-size-fits-all mentality that works so well for unskilled and semi-skilled positions. The expectation that any one developer can be replaced with any other with a similar &quot;skillset&quot; may seem ludicrous to us, but often seems perfectly reasonable to a management structure that's focused on raw numbers. If this seems incredible, just look at how many shops are still trying to make the Waterfall model work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't necessarily need all virtuosos on your team, but you need at least one or two. And part of their role must be to mentor the junior people so they can grow into the role (or wash out -- it happens). Otherwise, bad-to-mediocre junior code will prevail, with its attendant misfactoring and bloat. Once that cancer sets in, the code rapidly becomes unmaintainable, productivity across the team falls sharply, and people start to burn out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This creates turnover, until finally somebody says, &quot;We can't keep this thing going anymore! Let's scrap it and start over!&quot; The investment in the legacy codebase goes out the window, and the process starts all over again. &quot;But this time will be different,&quot; you promise yourself. And for a while it is. Then somebody hires away your rock star, and you're left with undirected junior people trashing your shiny new codebase all over again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lather. Rant. Repent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I digress... So, to answer your original question: No, half a decade is not the midlife of a software career. It's more an Age of Reason, perhaps -- the place in your career where the scales fall from your eyes and you start to see the business for what it is. The realizations come in a different order for everyone, and that colors the conclusions you may draw along the way. But hang in there -- if you come out the other side sane, you'll have a much healthier perspective, and you'll ultimately find this crazy business we're in more rewarding than ever before.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2010-03-21T21:47:19.023" CommentCount="2" />
  <row Id="30510" PostTypeId="2" ParentId="30449" CreationDate="2010-06-08T05:46:00.703" Score="1" ViewCount="" Body="&lt;p&gt;I would suggest that if you really enjoy programming then make the time to work on your own projects that interest you, outside of work.  Even if you’re handed a dream job, the day-to-day reality of working on professional level software can often take the fun out of it, just like anything else in life.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There’s a good reason why programmers get paid well (it’s incredibly difficult to build and maintain software systems, it’s fraught with compromises, and you’re often working under high-pressure time constraints).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice is to work hard while at work, learn what you can from those around you who know more or have more experience (even if you think you can do better than them), and continue to enjoy the thing that got you into this mess in the first place: a passion for programming.&lt;/p&gt;&#xA;" OwnerUserId="23320" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2010-06-08T05:46:00.703" />
  <row Id="30511" PostTypeId="2" ParentId="30449" CreationDate="2010-06-09T14:38:26.060" Score="2" ViewCount="" Body="&lt;p&gt;Unless you find a job doing what you already wanted to be doing with your knowledge of programming, working full time on a related-yet-uninteresting part of programming will dull your interest in what you liked to begin with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, someone with a fierce interest in self-guiding robotics using modern path planning algorithms doing web development work full time probably won't want to see a computer at home, much.  The same person plowing their way to the career they actually wanted and not stopping halfway will often gladly work more than a 40 hour week, go home happy, and wake up rested in the morning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In theory, at least.&lt;/p&gt;&#xA;" OwnerUserId="3412" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2010-06-09T14:38:26.060" />
  <row Id="30512" PostTypeId="2" ParentId="30449" CreationDate="2010-09-14T11:57:30.893" Score="1" ViewCount="" Body="&lt;p&gt;I am in the same situation as a four year Java programmer in a &lt;em&gt;big&lt;/em&gt; company. I can confirm that I too am facing the issues you mentioned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My solution is to earn a PHD in computer science in order to find new challenges.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:33:03.043" CommunityOwnedDate="2010-09-14T11:57:30.893" CommentCount="1" />
  <row Id="30513" PostTypeId="1" CreationDate="2009-03-14T02:47:16.590" Score="310" ViewCount="2492" Body="&lt;p&gt;This question has been inspired by my recent discovery/adoption of distributed version control. I started using it (mercurial) just because I liked the idea of still being able to make commits at times when I couldn't connect to the central server. I never expected it would give me a large boost in general productivity, but a pleasant side effect I discovered was that making a new clone every time I started a new task and giving that clone a descriptive folder name is extremely effective at keeping me on task resulting is a noticeable productivity increase.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So as a programmer what &lt;strong&gt;single&lt;/strong&gt; discovery has given you the greatest boost in productivity?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Extra respect for answers which involve tools or practices that aren't so obvious from the outside!&lt;/p&gt;&#xA;" LastActivityDate="2011-03-24T23:14:01.527" CommunityOwnedDate="2009-03-14T03:07:09.770" ClosedDate="2010-12-28T14:40:19.943" Title="As a programmer what single discovery has given you the greatest boost in productivity?" Tags="&lt;tools&gt;&lt;techniques&gt;" AnswerCount="205" CommentCount="1" FavoriteCount="11" />
  <row Id="30514" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T02:53:14.920" Score="26" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;The Internet/WWW! There is often a solution for so much problems. If you want to squeeze knowledge out somewhere or just talk with other IT-People, the www is THE place. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The Libraries for every programming language in the www! I can't live without the Apache Commons, Hibernate, Spring and so on. They make my life so much easier! &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;High-Level Dialects and &lt;a href=&quot;http://en.wikipedia.org/wiki/Domain-specific%5Flanguage&quot; rel=&quot;nofollow&quot;&gt;Domain Specific Languages&lt;/a&gt;, to use the found libraries.&#xA;Such &lt;a href=&quot;http://en.wikipedia.org/wiki/Domain-specific%5Flanguage&quot; rel=&quot;nofollow&quot;&gt;DSLs&lt;/a&gt; can be written in Groovy, JRuby or LISP(Closure) for example. &lt;a href=&quot;http://www.grails.org&quot; rel=&quot;nofollow&quot;&gt;Grails&lt;/a&gt; as &lt;a href=&quot;http://groovy.codehaus.org/&quot; rel=&quot;nofollow&quot;&gt;Groovy&lt;/a&gt; DSL for Web (with addons...) has boostet the overall productivity many  projects a lot! It's an impressive framework! &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;Software I've ever used: Things as Subversion/CVS... were ever there since I develop software. Also IDEs like Eclipse and IntelliJ ;) I can't live without them.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T17:54:27.820" CommentCount="2" />
  <row Id="30515" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T03:01:12.953" Score="7" ViewCount="" Body="&lt;p&gt;Recursive function call.&lt;/p&gt;&#xA;" OwnerUserId="23535" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T17:54:27.820" CommentCount="4" />
  <row Id="30516" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T03:01:21.923" Score="5" ViewCount="" Body="&lt;p&gt;My answer:   the promise of dual monitors boosting performance while programming/debugging was a lie.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I now prefer 1 monitor.   With two monitors you always have too many things distracting you and also you get stressed due to awkward head and eye movements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll never go back to 2 monitors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I also use EMACS so I keep my fingers on the QWERTY row much more than ever before... why stop the flow of typing??)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T17:54:27.820" CommentCount="11" />
  <row Id="30517" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T03:07:07.027" Score="24" ViewCount="" Body="&lt;p&gt;Formal design patterns and unit testing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We finally retired a legacy VB6 codebase and are in the process of building new frameworks for our business model and there's really no comparison. We're infinitely more productive. (well maybe not infinite, but you get the idea.)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T17:54:27.820" CommentCount="1" />
  <row Id="30518" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T03:10:05.317" Score="167" ViewCount="" Body="&lt;p&gt;Surprised no one has posted the obvious smart-ass answer: &lt;strong&gt;caffeine!&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7103" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T03:10:05.317" CommentCount="15" />
  <row Id="30519" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T03:12:33.440" Score="245" ViewCount="" Body="&lt;p&gt;Flow. Try to maximize the amount of time that you can spend in Flow. That means: Close your web browser (the one opened to cnn.com), don't listen to distracting music, close your mailbox, close your IM, etc. You get the idea. If you wanted to be very productive in college, you shut out the entire world so that you can focus. There's no reason why work-life is any different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People who are least productive tend to lose a lot of time to distraction, entertainment, etc. Look at your co-workers. You'll see that I'm right.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T03:12:33.423" CommentCount="13" />
  <row Id="30520" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T03:15:30.763" Score="154" ViewCount="" Body="&lt;p&gt;Programming languages with managed memory.  It makes coding so very much easier.  Also an IDE that has code completion is a must.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T03:15:30.763" CommentCount="12" />
  <row Id="30521" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T03:16:03.523" Score="85" ViewCount="" Body="&lt;p&gt;Getting up and walking around, especially in the fresh air, really makes me a much more productive problem-solver. This is when I usually come up with the &quot;Eureka!&quot; solution.&lt;/p&gt;&#xA;" OwnerUserId="16624" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T03:16:03.523" CommentCount="8" />
  <row Id="30522" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T03:16:10.170" Score="75" ViewCount="" Body="&lt;p&gt;That it's important to understand, deep down, how your tools work, and how you can use them to improve your workflow and automate repetitve tasks. Regardless of whether you use Eclipse, Textmate, Visual Studio, Vim, Emacs, Notepad or anything else, take the time to learn their shortcuts and, better, understand how to extend them with custom plugins. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even further, learn shell scripting if on Unix (or PowerShell on Windows). Repetitive tasks can and should be automated, and pain points can be blunted.  Automate your deployments. Automate your builds.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T03:16:10.170" CommentCount="3" />
  <row Id="30523" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T03:18:08.293" Score="334" ViewCount="" Body="&lt;p&gt;For me it is &lt;strong&gt;&lt;em&gt;Code Completion&lt;/em&gt;&lt;/strong&gt; (which Microsoft calls &lt;strong&gt;&lt;em&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/IntelliSense&quot; rel=&quot;nofollow&quot;&gt;Intellisense&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; although they are slightly different).  Things just move &lt;em&gt;so&lt;/em&gt; much faster when the information I need &lt;em&gt;right now&lt;/em&gt; is right at my fingertips.  The savings in keystrokes helps as well.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T03:18:08.293" CommentCount="31" />
  <row Id="30524" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T03:19:06.997" Score="40" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Tab Completion!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be honest, some of the other answers are nice, but can't always be applied in every situation, especially day-to-day tasks which we perform hundreds of times.&lt;br /&gt;&#xA;I find tab completion helpful not only because it prevents spelling mistakes, but allows me to save time, every single time I go to the terminal.&lt;/p&gt;&#xA;" OwnerUserId="7127" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T03:19:06.997" CommentCount="1" />
  <row Id="30525" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T03:22:15.913" Score="40" ViewCount="" Body="&lt;p&gt;Only one answer? I'm going to cheat a little, since my three answers are very closely related. ReSharper, Refactoring, and Test-Driven Development.&lt;/p&gt;&#xA;" OwnerUserId="1463" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T03:22:15.913" CommentCount="6" />
  <row Id="30526" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T03:26:35.620" Score="134" ViewCount="" Body="&lt;p&gt;Learn another language. Eg, learning Ruby, and Ruby on Rails, has helped my Asp.Net programming immensely.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T17:54:27.820" CommentCount="9" />
  <row Id="30527" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T03:28:03.840" Score="18" ViewCount="" Body="&lt;p&gt;Templates! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll spare you the nasty details, but I've written classes before with seperate (overloaded) functions to do exactly the same thing with a different varible type.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T03:28:03.840" />
  <row Id="30528" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T03:35:19.687" Score="5" ViewCount="" Body="&lt;p&gt;Code generators like &lt;a href=&quot;http://www.codesmithtools.com/&quot; rel=&quot;nofollow&quot;&gt;CodeSmith&lt;/a&gt; to reduce repetitive coding.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T03:35:19.687" CommentCount="2" />
  <row Id="30529" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T03:40:25.010" Score="7" ViewCount="" Body="&lt;p&gt;Due to the types of projects I've recently been working on, OS Virtualisation technologies (Virtual Server 2005) have probably boosted my productivity as a developer by quite a large degree. This is because I can get new development environments for different types of projects (which require 2 to 4 machines to represent a cut down instance of the final production environment) up and running really quickly. To paraphrase from &lt;a href=&quot;http://stackoverflow.com/questions/645218/how-to-quickly-setup-a-developer-machine&quot;&gt;another question&lt;/a&gt; I answered about '&lt;a href=&quot;http://stackoverflow.com/questions/645218/how-to-quickly-setup-a-developer-machine/645253#645253&quot;&gt;How to quickly setup a developer machine?&lt;/a&gt;':&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I have a couple of different base&#xA;  development environment configurations&#xA;  hosted on virtual machines (Virtual&#xA;  Server 2005). Once I was happy with&#xA;  them I sysprep'd them. Now when I need&#xA;  an environment for a specific project&#xA;  type I clone the VM with the config I&#xA;  require, start it up and and off I go&#xA;  to work. The great thing is that if I&#xA;  wreck the VM all I need to do is start&#xA;  afresh from one of the sysprep images.&#xA;  It's such a timesaver.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="20935" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T03:40:25.010" CommentCount="1" />
  <row Id="30530" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T03:51:03.520" Score="96" ViewCount="" Body="&lt;p&gt;Lisp.  (Why write programs when you can write programs to write programs?)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T03:51:03.503" CommentCount="9" />
  <row Id="30531" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T04:03:26.983" Score="3" ViewCount="" Body="&lt;p&gt;Write an application for someone else, then maintain it as they ask for things which weren't even considered in v1.0.  This helps with better design so you don't have to spend so much time re-factoring.  Also, having an IDE which can do a lot of the re-factoring for you (e.g. Netbeans) is nice to take care of things quickly.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T04:03:26.967" />
  <row Id="30532" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T04:06:32.623" Score="158" ViewCount="" Body="&lt;p&gt;Debuggers. I remember that learning to use debuggers opened up a whole new world for me.&lt;/p&gt;&#xA;" OwnerUserId="1091" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T04:06:32.623" CommentCount="10" />
  <row Id="30533" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T04:14:32.043" Score="200" ViewCount="" Body="&lt;p&gt;VIM!!! Nuff said!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T04:14:32.043" CommentCount="18" />
  <row Id="30534" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T04:19:47.320" Score="116" ViewCount="" Body="&lt;p&gt;Open source.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T04:19:47.320" CommentCount="6" />
  <row Id="30535" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T04:46:31.933" Score="337" ViewCount="" Body="&lt;p&gt;Not sure it's really my #1 but nobody has mentioned this yet: &lt;strong&gt;syntax highlighting&lt;/strong&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe it's just because I've gotten too used to it but it takes me twice as long to edit a program in nano (black-and-white) as it does in KWrite (color with syntax highlighting)... sometimes I've been outright unable to do it.&lt;/p&gt;&#xA;" OwnerUserId="3652" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T04:46:31.933" CommentCount="17" />
  <row Id="30536" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T04:56:07.963" Score="33" ViewCount="" Body="&lt;p&gt;Learning to break down complex problems into a series of simple tasks boosts productivity and improves the accuracy of your schedule.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T04:56:07.963" CommentCount="2" />
  <row Id="30537" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T04:58:54.527" Score="8" ViewCount="" Body="&lt;p&gt;If you're doing your own projects as opposed to your employers, taking your own ideas to reality, you are a heck of a lot more motivated and productive than when doing a 9/5. Your project is the first thing you think of when you wake up, and its the last thing you dream of when you fall asleep at the keyboard, waiting for the sun to rise so you can do the same thing again.&lt;/p&gt;&#xA;" OwnerUserId="9803" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T04:58:54.527" CommentCount="6" />
  <row Id="30538" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T06:09:19.693" Score="5" ViewCount="" Body="&lt;p&gt;for me, Linq&lt;/p&gt;&#xA;" OwnerUserId="3378" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T06:09:19.693" CommentCount="2" />
  <row Id="30539" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T06:44:11.357" Score="2" ViewCount="" Body="&lt;p&gt;When I discovered I could tell the computer what to do, hit a button, and the computer would do what I told it to.&lt;/p&gt;&#xA;" OwnerUserId="4404" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T06:44:11.340" CommentCount="4" />
  <row Id="30540" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T14:10:40.527" Score="28" ViewCount="" Body="&lt;p&gt;I've been around a while so I have several single things over the years and they vary wildly.  I really haven't had any productivity discoveries in a while, except for small special purpose tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Probably my biggest single discovery is to prototype quickly and get the user/customer looking and touching as fast as possible before wasting time on features that they don't want or will change as soon as they discover that they really don't want it that way.  I first realized this the first time I used Visual Basic to prototype the interface of an application I was creating in C++ (late 1992/early 1993).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A bunch of people can sit around a table and discuss for months what they do and do not want, but until they can actually touch it and experience it they really do not know.&lt;/p&gt;&#xA;" OwnerUserId="7006" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T14:10:40.527" CommentCount="3" />
  <row Id="30541" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T14:13:43.080" Score="103" ViewCount="" Body="&lt;p&gt;A decent pair of &lt;a href=&quot;http://www.google.com/search?q=shure+se110&quot; rel=&quot;nofollow&quot;&gt;sound isolating headphones&lt;/a&gt;.  It still surprises how much more I get done when I block out all the office chatter.  It's not a &lt;a href=&quot;http://www.joelonsoftware.com/items/2006/07/30.html&quot; rel=&quot;nofollow&quot;&gt;private office&lt;/a&gt; but it's a start.&lt;/p&gt;&#xA;" OwnerUserId="5259" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T14:13:43.080" CommentCount="8" />
  <row Id="30542" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T14:47:46.163" Score="17" ViewCount="" Body="&lt;p&gt;That it is OK to say no to unproductive work.&lt;/p&gt;&#xA;" OwnerUserId="3565" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T14:47:46.163" />
  <row Id="30543" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T14:54:53.200" Score="38" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Lambda%5Fcalculus&quot; rel=&quot;nofollow&quot;&gt;Lambda Calculus&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;Object Oriented Programming&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or more generally speaking... truly understands what &quot;functions as first class objects&quot; means...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and not everyone &lt;em&gt;really groks how OOP works&lt;/em&gt;. Evidences are those large switch statements and if-else spreading out through a large code base that could be eradicated with application of polymorphism.&lt;/p&gt;&#xA;" OwnerUserId="2485" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T14:54:53.200" CommentCount="2" />
  <row Id="30544" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T14:58:49.850" Score="5" ViewCount="" Body="&lt;p&gt;The world wide web. I used to spend HOURS every week thumbing through books, going through the MSDN disks, asking other folks etc, looking for answers to questions. The WWW put the answers quite literally at my fingertips. Of course some of those answers are &lt;em&gt;wrong&lt;/em&gt;, but even when you factor in the time for filtering out the wrong ones, it's still a lot less than I used to spend in the library alone.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T14:58:49.850" />
  <row Id="30545" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T15:00:31.983" Score="107" ViewCount="" Body="&lt;h1&gt;Pair programming!&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Nothing even remotely compares to that in terms of productivity boost. You could take away intellisense, or even the IDE, and pair programming would still be more productive.&lt;/p&gt;&#xA;" OwnerUserId="2189" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T15:00:31.983" CommentCount="11" />
  <row Id="30546" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T15:02:34.677" Score="1" ViewCount="" Body="&lt;p&gt;In all honesty, probably learning another programming language has helped me the most. Once you have taken a look at one ore more other languages, you find patterns in the code. It helps you better understand how to reach your objectives and will make you a more efficient programmer. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T15:02:34.677" />
  <row Id="30547" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T15:08:28.847" Score="18" ViewCount="" Body="&lt;p&gt;STL&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my undergrad studies I was hardly aware of it and every time I needed a data structure I had to pull my own. luckily on my first real job they showed me the light that is STL.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T15:08:28.830" CommentCount="2" />
  <row Id="30548" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T15:09:42.260" Score="137" ViewCount="" Body="&lt;p&gt;pencil and a paper (simple obvious) but still underestimated &lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T15:09:42.260" CommentCount="8" />
  <row Id="30549" PostTypeId="2" ParentId="30513" CreationDate="2009-03-14T15:13:10.160" Score="1" ViewCount="" Body="&lt;p&gt;Code completion.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-14T15:13:10.160" />
  <row Id="30550" PostTypeId="2" ParentId="30513" CreationDate="2009-03-15T04:03:30.370" Score="2" ViewCount="" Body="&lt;p&gt;Getting rid of .h files in C#.&lt;/p&gt;&#xA;" OwnerUserId="17401" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-15T04:03:30.353" CommentCount="1" />
  <row Id="30551" PostTypeId="2" ParentId="30513" CreationDate="2009-03-15T04:11:52.097" Score="183" ViewCount="" Body="&lt;p&gt;Dual Monitors for me.  Note: I haven't attempted to use one very large screen.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-15T04:11:52.083" CommentCount="13" />
  <row Id="30552" PostTypeId="2" ParentId="30513" CreationDate="2009-03-15T09:11:49.427" Score="34" ViewCount="" Body="&lt;p&gt;Closing the browser often.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-15T09:11:49.413" CommentCount="8" />
  <row Id="30553" PostTypeId="2" ParentId="30513" CreationDate="2009-03-15T09:19:56.740" Score="93" ViewCount="" Body="&lt;p&gt;I'm surprised nobody mentioned this - perhaps nobody knows this? Well, I hope my answer will enlighten everyone...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My discovery that boosted my productivity the most was this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't &lt;em&gt;have&lt;/em&gt; to read 20+ blogs, before you can look into that critical bug, that your boss wants you to fix ASAP! You don't even &lt;em&gt;have&lt;/em&gt; to read a single post! It is possible to start working on it without reading anything at all!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know, I know... Sounds crazy, but it's true!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-15T09:19:56.740" CommentCount="5" />
  <row Id="30554" PostTypeId="2" ParentId="30513" CreationDate="2009-03-15T16:22:24.667" Score="5" ViewCount="" Body="&lt;p&gt;Enabling the &quot;Hide When Minimized&quot; option in Microsoft Outlook.&lt;/p&gt;&#xA;" OwnerUserId="17401" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-15T16:22:24.667" CommentCount="3" />
  <row Id="30555" PostTypeId="2" ParentId="30513" CreationDate="2009-03-15T16:45:57.557" Score="0" ViewCount="" Body="&lt;p&gt;What single discovery has yielded the biggest boost in productivity? Well, if the measure of productivity is the ratio of desired outcome by work effort, then this single biggest discovery would be that of process and methodology (i.e. learning how to work smarter). &lt;a href=&quot;http://www.ibm.com/developerworks/rational/library/content/03July/1000/1251/1251%5Fbestpractices%5FTP026B.pdf&quot; rel=&quot;nofollow&quot;&gt;RUP&lt;/a&gt; is a good example of process and &lt;a href=&quot;http://agilemanifesto.org/principles.html&quot; rel=&quot;nofollow&quot;&gt;Agile&lt;/a&gt; is a good example of methodology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You want a tool recommendation? Well, I felt so strongly about how important process and methodology was to outcome in software development that I wrote my own tool to accelerate software development called &lt;a href=&quot;http://www.code-roller.com&quot; rel=&quot;nofollow&quot;&gt;Code Roller&lt;/a&gt;.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-15T16:45:57.543" />
  <row Id="30556" PostTypeId="2" ParentId="30513" CreationDate="2009-03-16T09:36:01.233" Score="272" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.google.com&quot; rel=&quot;nofollow&quot;&gt;Google&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-16T09:36:01.217" CommentCount="7" />
  <row Id="30557" PostTypeId="2" ParentId="30513" CreationDate="2009-03-16T16:22:55.920" Score="1" ViewCount="" Body="&lt;p&gt;Writing cleaner code by using god text editors like vim, kate etc. I leanred a lot about standard coding when I checked their options.&lt;/p&gt;&#xA;" OwnerUserId="2265" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-16T16:22:55.920" />
  <row Id="30558" PostTypeId="2" ParentId="30513" CreationDate="2009-03-16T17:17:53.993" Score="10" ViewCount="" Body="&lt;p&gt;&quot;Thinking&quot; in a functional language (in my case Scheme).&lt;/p&gt;&#xA;" OwnerUserId="21365" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-16T17:17:53.993" CommentCount="1" />
  <row Id="30559" PostTypeId="2" ParentId="30513" CreationDate="2009-03-16T17:19:44.660" Score="1" ViewCount="" Body="&lt;p&gt;Moore's law for caffeine.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-16T17:19:44.643" CommentCount="1" />
  <row Id="30560" PostTypeId="2" ParentId="30513" CreationDate="2009-03-16T17:22:01.410" Score="1" ViewCount="" Body="&lt;p&gt;intellisense&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-16T17:22:01.410" CommentCount="1" />
  <row Id="30561" PostTypeId="2" ParentId="30513" CreationDate="2009-03-16T17:31:54.287" Score="59" ViewCount="" Body="&lt;p&gt;Generics. Casting is for pottery.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-16T17:31:54.287" CommentCount="4" />
  <row Id="30562" PostTypeId="2" ParentId="30513" CreationDate="2009-03-17T13:56:15.687" Score="2" ViewCount="" Body="&lt;p&gt;Expectations before taking a new job that it will be much better. For some first weeks/months I get a productivity boost until they dissappoint me again.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-17T13:56:15.687" />
  <row Id="30563" PostTypeId="2" ParentId="30513" CreationDate="2009-03-17T13:58:26.617" Score="13" ViewCount="" Body="&lt;p&gt;Learning to type properly and accurately.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-17T13:58:26.617" />
  <row Id="30564" PostTypeId="2" ParentId="30513" CreationDate="2009-03-17T13:59:48.737" Score="12" ViewCount="" Body="&lt;p&gt;Stack Overflow! No, wait, you said &quot;boost&quot;. Hm.&lt;/p&gt;&#xA;" OwnerUserId="2202" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-17T13:59:48.737" CommentCount="3" />
  <row Id="30565" PostTypeId="2" ParentId="30513" CreationDate="2009-03-17T14:04:05.793" Score="10" ViewCount="" Body="&lt;p&gt;It's a tie between &lt;strong&gt;Ctrl+F&lt;/strong&gt; and &lt;strong&gt;Ctrl+C&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="5272" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-17T14:04:05.793" CommentCount="5" />
  <row Id="30566" PostTypeId="2" ParentId="30513" CreationDate="2009-03-19T08:59:19.760" Score="36" ViewCount="" Body="&lt;p&gt;Don’t know this has been posted or if it would make the cut for a discovery.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me it’s &lt;strong&gt;&lt;em&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Peer%5Freview&quot; rel=&quot;nofollow&quot;&gt;Peer Review&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Working with smart programmers,  getting that extra pair of eyes to look into code. &#xA;Saved me from burning the &lt;em&gt;Midnight oil&lt;/em&gt; many a times!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-19T08:59:19.760" CommentCount="3" />
  <row Id="30567" PostTypeId="2" ParentId="30513" CreationDate="2009-03-19T10:24:35.983" Score="0" ViewCount="" Body="&lt;p&gt;Not mine, I'll admit, but focused working: &lt;a href=&quot;http://www.43folders.com/2005/09/08/kick-procrastinations-ass-run-a-dash&quot; rel=&quot;nofollow&quot;&gt;link text&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-03-19T10:24:35.967" />
  <row Id="30568" PostTypeId="2" ParentId="30513" CreationDate="2009-04-08T12:20:26.090" Score="0" ViewCount="" Body="&lt;p&gt;It began when I changed my mindset to feel very good whenever I see a program bug. It gives me great pleasure to remove the bug.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Samurai Coder,&#xA;Hideo.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-04-08T12:20:26.073" />
  <row Id="30569" PostTypeId="2" ParentId="30513" CreationDate="2009-04-08T12:24:35.487" Score="5" ViewCount="" Body="&lt;p&gt;Higher Order Programming. (And on some days: unplugging the phone...)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-04-08T12:24:35.470" CommentCount="1" />
  <row Id="30570" PostTypeId="2" ParentId="30513" CreationDate="2009-04-12T09:31:04.237" Score="0" ViewCount="" Body="&lt;p&gt;Boost...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i.e.: www.boost.org&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-04-12T09:31:04.220" />
  <row Id="30571" PostTypeId="2" ParentId="30513" CreationDate="2009-04-12T09:57:59.553" Score="1" ViewCount="" Body="&lt;p&gt;Using an IDE as opposed to a simple programmers' editor.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-04-12T09:57:59.537" CommentCount="1" />
  <row Id="30572" PostTypeId="2" ParentId="30513" CreationDate="2009-04-12T10:22:48.793" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.bluemars.org/clipx/&quot; rel=&quot;nofollow&quot;&gt;ClipX&lt;/a&gt; has done wonders for me.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-04-12T10:22:48.793" />
  <row Id="30573" PostTypeId="2" ParentId="30513" CreationDate="2009-04-12T10:24:01.580" Score="0" ViewCount="" Body="&lt;p&gt;For me, it was 'computer progamming is actually human to human interaction'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What that means is, that it's essentially software developer ( designer/programmer ) talking to user .. program just happen to be the medium&lt;/p&gt;&#xA;" OwnerUserId="993" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-04-12T10:24:01.580" CommentCount="1" />
  <row Id="30574" PostTypeId="2" ParentId="30513" CreationDate="2009-04-12T10:36:58.367" Score="1" ViewCount="" Body="&lt;p&gt;If i were to choose only one thing that boosted my productivity it would be a moment when I've put down books and learning-only mode to programming and doing stuff instead of only reading about them.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-04-12T10:36:58.353" />
  <row Id="30575" PostTypeId="2" ParentId="30513" CreationDate="2009-06-25T03:00:04.973" Score="20" ViewCount="" Body="&lt;p&gt;whiteboard&lt;/p&gt;&#xA;" OwnerUserId="14443" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-06-25T03:00:04.973" CommentCount="1" />
  <row Id="30576" PostTypeId="2" ParentId="30513" CreationDate="2009-07-07T02:23:12.107" Score="1" ViewCount="" Body="&lt;p&gt;The greatest boost to my productivity has been from learning how to recognize that I'm starting to write some code or text that is very similar to some code or text I've already previously written in the file or the project, and to quickly generalize and create a function, include file, macro, or other appropriate idiom that makes what would have been messy, elegant.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-07-07T02:23:12.107" />
  <row Id="30577" PostTypeId="2" ParentId="30513" CreationDate="2009-09-26T09:26:25.950" Score="0" ViewCount="" Body="&lt;p&gt;Debug and Caffeine with Internet is the trio that works for me.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-09-26T09:26:25.950" />
  <row Id="30578" PostTypeId="2" ParentId="30513" CreationDate="2009-09-26T09:43:24.477" Score="5" ViewCount="" Body="&lt;p&gt;Not checking my email in the morning, and turning off all the associated alerts and popups and warnings and so on. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-09-26T09:43:24.477" />
  <row Id="30579" PostTypeId="2" ParentId="30513" CreationDate="2009-09-26T09:53:15.963" Score="0" ViewCount="" Body="&lt;p&gt;Domain Specific Language for UML and Code Generation see&#xA;&lt;a href=&quot;http://reboltutorial.com/blog/easy-yuml-dialect-for-mere-mortals2/&quot; rel=&quot;nofollow&quot;&gt;http://reboltutorial.com/blog/easy-yuml-dialect-for-mere-mortals2/&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-09-26T09:53:15.963" />
  <row Id="30580" PostTypeId="2" ParentId="30513" CreationDate="2009-12-29T04:44:46.803" Score="10" ViewCount="" Body="&lt;h2&gt;Using a Framework&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Since I started using a programming framework ,My productivity has increased 10 folds ,Now I dont have to do much work to get what has already been done.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-12-29T04:44:46.803" CommentCount="1" />
  <row Id="30581" PostTypeId="2" ParentId="30513" CreationDate="2009-12-29T05:09:14.030" Score="35" ViewCount="" Body="&lt;p&gt;I'm surprised no one's mentioned this one: Python!! Before Python, I used to use C/C++/Java for most things or occasionally PHP/Javascript (depending on what I wanted to do). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, my first step is almost always to prototype the core logic in Python. Having an interactive interpreter, sequences, iterators and strings built into the language (yes, I know C++ and Java have them too, but they aren't quite as easy to use), having a for-each construct, and a billion other things make coding in Python like writing executable pseudo-code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And the richness of the third-party libraries is amazing! Want to write a parser? pyparsing is your friend (I wrote an adequate chemical reaction balancer/parser in an hour). Want to manipulate images, use PIL! Bioinformatics? Biopython.&lt;/p&gt;&#xA;" OwnerUserId="61" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-12-29T05:09:14.030" CommentCount="1" />
  <row Id="30582" PostTypeId="2" ParentId="30513" CreationDate="2009-12-29T05:14:27.373" Score="1" ViewCount="" Body="&lt;p&gt;Realizing the fundamentals of HTTP and Web and how they actually work while working on classic ASP has turned out to be my greatest discovery. I could then think in HTTP and design my own CGI applications on plain HTTP state-less protocol.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This findamental understanding is still helping me learn new web-technologies much faster.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I'm still amazed for what all things&#xA;  we were forced to do in classic ASP&#xA;  which now in ASP.Net is just readily&#xA;  available. Databinding, paging,&#xA;  server-controls and server-side&#xA;  events.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1682" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-12-29T05:14:27.373" />
  <row Id="30583" PostTypeId="2" ParentId="30513" CreationDate="2009-12-29T05:19:23.240" Score="6" ViewCount="" Body="&lt;p&gt;I discovered that is nonsense to pretend to create something perfect the first time. You have to understand your problem, so it makes sense to grow together with your product.&lt;/p&gt;&#xA;" OwnerUserId="1338" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2009-12-29T05:19:23.240" />
  <row Id="30584" PostTypeId="2" ParentId="30513" CreationDate="2010-02-09T06:43:25.067" Score="3" ViewCount="" Body="&lt;p&gt;Definitely the mini-fridge under the desk.  Although more frequent bathroom trips may be offsetting the convenience.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-02-09T06:43:25.067" CommentCount="3" />
  <row Id="30585" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T20:38:52.130" Score="17" ViewCount="" Body="&lt;p&gt;Test Driven Development. I was skeptical, but it works remarkably well. I was able to code a chess rules engine (validates all legal moves) in about 40 hours, with only one defect. I have been programming for almost 30 years and TDD has given me the biggest boost in productivity. &lt;/p&gt;&#xA;" OwnerUserId="5414" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T20:38:52.130" />
  <row Id="30586" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T20:54:44.233" Score="4" ViewCount="" Body="&lt;p&gt;Realizing that time spent designing is better than inversely proportional to time spent coding.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T20:54:44.233" CommentCount="2" />
  <row Id="30587" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T20:58:55.910" Score="3" ViewCount="" Body="&lt;p&gt;Two answers:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Screen and ssh -t&lt;/li&gt;&#xA;&lt;li&gt;Code folding&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T20:58:55.910" CommentCount="1" />
  <row Id="30588" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T21:02:52.407" Score="1" ViewCount="" Body="&lt;p&gt;Resharper, it's probably already been said.&lt;/p&gt;&#xA;" OwnerUserId="7550" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T21:02:52.407" />
  <row Id="30589" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T21:06:29.730" Score="4" ViewCount="" Body="&lt;p&gt;I +1ed intellisense and syntax highlighting. But since noone has mentioned it, object oriented techniques, in particular &lt;strong&gt;Design by Contract&lt;/strong&gt;, have done a lot for the quality of my code, hence improving my productivity.&lt;/p&gt;&#xA;" OwnerUserId="3318" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T21:06:29.730" />
  <row Id="30590" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T21:16:50.303" Score="7" ViewCount="" Body="&lt;p&gt;I'm sure I'll get flak for this, but I mostly use C++, and the boost libraries give a big productive boost.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T21:16:50.303" />
  <row Id="30591" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T21:18:19.937" Score="4" ViewCount="" Body="&lt;p&gt;Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coming from a C/C++ background, it takes so much less time for me to do what I need in python.&lt;/p&gt;&#xA;" OwnerUserId="15271" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T21:18:19.937" CommentCount="1" />
  <row Id="30592" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T21:18:56.103" Score="3" ViewCount="" Body="&lt;p&gt;Control+Space. 'nuff said. In-line documentation for functions and classes, autocompletion, type matching.... I can barely program without it.&lt;/p&gt;&#xA;" OwnerUserId="7793" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T21:18:56.103" />
  <row Id="30593" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T21:24:50.553" Score="9" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://synergy2.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Synergy&lt;/a&gt; helps me save a lot of time changing keyboard / mouse when coding on heterogeneous platforms (like Windows and Linux). It basically lets one computer share its HID with another... or a set of others... And it's a life-saver.&lt;/p&gt;&#xA;" OwnerUserId="18252" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T21:24:50.553" />
  <row Id="30594" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T21:25:51.003" Score="1" ViewCount="" Body="&lt;p&gt;Streaming/satellite radio.&lt;/p&gt;&#xA;" OwnerUserId="1996" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T21:25:51.003" />
  <row Id="30595" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T21:27:22.460" Score="1" ViewCount="" Body="&lt;p&gt;Practice and self analysis of your problem solving techniques.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find I only really understand something once I've done it a few times, and I feel that programming is no different. I've heard programming described as an art form and I agree. It takes years to master.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the moment I am working on User Interfaces and find myself trying out new ideas and new approaches in my spare time just to see what works better. This has lead to substantial improvements in my work rate and more importantly less re-writes because of bad design.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T21:27:22.460" />
  <row Id="30596" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T21:27:41.397" Score="3" ViewCount="" Body="&lt;p&gt;Take time to RTFM for your frameworks, programing languages and other tools before you use them. Read most of it, you don't have to memorize everything. You want an idea of what the tool can do for you, so you don't go reinventing the wheel.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T21:27:41.397" />
  <row Id="30597" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T21:36:10.540" Score="4" ViewCount="" Body="&lt;p&gt;switching from pc to mac helped my productivity the most because I started enjoying spending more time at the computer. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T21:36:10.540" />
  <row Id="30598" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T21:43:04.983" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Strong black tea&lt;/li&gt;&#xA;&lt;li&gt;Source Control System&lt;/li&gt;&#xA;&lt;li&gt;Bug Tracking System&lt;/li&gt;&#xA;&lt;li&gt;Hippie Completion&lt;/li&gt;&#xA;&lt;li&gt;Taking breaks at the right time&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T21:43:04.983" />
  <row Id="30599" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T21:47:47.890" Score="3" ViewCount="" Body="&lt;p&gt;A 4'x6' whiteboard.  Ok, any size will do but the bigger, the better.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T21:47:47.890" CommentCount="1" />
  <row Id="30600" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T21:50:55.723" Score="2" ViewCount="" Body="&lt;p&gt;for me, regexes and design patterns.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T21:50:55.723" />
  <row Id="30601" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T21:57:42.687" Score="12" ViewCount="" Body="&lt;p&gt;Gnu screen. I work primarily from the command line (Ruby/Python/PHP) and it has been, bar none, the single greatest tool in my toolbox for increasing productivity.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T21:57:42.687" />
  <row Id="30602" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T22:49:37.557" Score="2" ViewCount="" Body="&lt;p&gt;Stochastic unit testing.  Don't just unit test: unit test with large-ish sets of random inputs.  It'll catch errors you'd never think to test for on a fairly regular basis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(In languages with accessable parse trees, there's a good argument for mutation testing, too - see the Ruby took &quot;heckle&quot; for a good example.)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T22:49:37.557" />
  <row Id="30603" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T22:58:41.337" Score="14" ViewCount="" Body="&lt;p&gt;LINQ.  I love not having to write the plumbing for iterating over collections over and over again.  Also being able to apply set operations to collections of data is a huge productivity boost.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T22:58:41.337" />
  <row Id="30604" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T23:01:34.267" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.jetbrains.com/resharper/&quot; rel=&quot;nofollow&quot;&gt;ReSharper&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T23:01:34.267" />
  <row Id="30605" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T23:02:15.950" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://common-lisp.net/project/slime&quot; rel=&quot;nofollow&quot;&gt;SLIME&lt;/a&gt;. No other editor, IDE or programming environment I've seen offers the same level of integration. Not only does the editor understand the syntax of the language, it communicates with your program while it's running. It knows the value of everything, at all times and, to reference the old saying about Lisp programmers - it knows the cost as well, due to the integrated profiler.&lt;/p&gt;&#xA;" OwnerUserId="9657" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T23:02:15.950" CommentCount="1" />
  <row Id="30606" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T23:02:36.290" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://clojure.org&quot; rel=&quot;nofollow&quot;&gt;Clojure&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="354" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T23:02:36.290" />
  <row Id="30607" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T23:04:25.383" Score="7" ViewCount="" Body="&lt;h2&gt;Refactoring&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I think this change pretty much the way I see code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before everytime I need something else I just added and if the previous design didn't match I start doing strange things and after a couple of weeks, everything was a real mess.  Going like that every time I need a new feature, the existing code was somehow in the middle. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After getting to know refactoring, everything was much easier, new functionality helped to define the methods, and the design. I extracted methods, simplify conditions and a lot of etc. which make my existing code much easier to work with.  &lt;/p&gt;&#xA;" OwnerUserId="82" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T23:04:25.383" />
  <row Id="30608" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T23:09:12.173" Score="7" ViewCount="" Body="&lt;p&gt;Notepad++.&#xA;Hands Down. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T23:09:12.173" />
  <row Id="30609" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T23:10:43.530" Score="4" ViewCount="" Body="&lt;p&gt;One thing that's been the greatest boost in productivity?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;C#&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="14736" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T23:10:43.530" />
  <row Id="30610" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T23:22:00.347" Score="2" ViewCount="" Body="&lt;p&gt;Two things:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.16software.com/breevy/&quot; rel=&quot;nofollow&quot;&gt;Breevy&lt;/a&gt;, which I use to &quot;autotype&quot; boilerplate code using shortcuts/abbreviations.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;My widescreen LCD monitor. Emacs with a horizontal split increases my productivity so much it's not even funny.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T23:22:00.347" CommentCount="1" />
  <row Id="30611" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T23:47:50.880" Score="0" ViewCount="" Body="&lt;p&gt;Project automation (I include TDD with this). Whenever I discovered the wonders of shell scripting, Make/Ant, automated tests, and one-button builds, programming lost most of its few sour moments.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T23:47:50.880" />
  <row Id="30612" PostTypeId="2" ParentId="30513" CreationDate="2010-03-02T23:56:04.243" Score="1" ViewCount="" Body="&lt;p&gt;Lately, I've gotten a productivity boost with one simple tool: good posture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Forcing myself to sit with better posture makes it much easier for me to stay on task, for some reason. Whether the improvement will remain robust to time remains to be seen.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-02T23:56:04.243" />
  <row Id="30613" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T00:01:39.770" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.agilemodeling.com/artifacts/userStory.htm&quot; rel=&quot;nofollow&quot;&gt;Story cards&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="9546" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T00:01:39.770" />
  <row Id="30614" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T00:45:57.137" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://valgrind.org&quot; rel=&quot;nofollow&quot;&gt;Valgrind&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are using an older version, it is definitely worth upgrading for the &lt;code&gt;--track-origins&lt;/code&gt; feature.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T00:45:57.137" />
  <row Id="30615" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T00:50:49.867" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;rotating my monitor 90 degrees&lt;/strong&gt;. the contents of the display are my brains level one cache, and its measured in (cache) lines from top to bottom so rotating the display greatly increased the lines of code I can see at once. &lt;/p&gt;&#xA;" OwnerUserId="20121" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T00:50:49.867" CommentCount="4" />
  <row Id="30616" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T00:53:06.310" Score="3" ViewCount="" Body="&lt;p&gt;Diagnosis&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only way you can solve a problem is to be able to diagnose what is going on, and not just bandaid the symptom.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A while ago i read a book on just diagnosis, it wasnt related to computing , but on diagnosising any problem, it really helped develope my deductive reasoning skills.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T00:53:06.310" />
  <row Id="30617" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T01:08:10.287" Score="1" ViewCount="" Body="&lt;p&gt;Humanized Enso&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't say it is &quot;the&quot; greatest thing for programmers specifically, but it definately saves me time from fumbling through directory hierarchies and windows all day when someone interrupts my programming time to ask a question.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T01:08:10.287" />
  <row Id="30618" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T01:20:22.720" Score="15" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/30513/as-a-programmer-what-single-discovery-has-given-you-the-greatest-boost-in-product/30618#30618&quot;&gt;Stack Overflow&lt;/a&gt;, obviously.&lt;/p&gt;&#xA;" OwnerUserId="21088" LastEditorUserId="21088" LastEditorDisplayName="" LastEditDate="2011-03-24T23:14:01.527" LastActivityDate="2011-03-24T23:14:01.527" CommunityOwnedDate="2010-03-03T01:20:22.720" CommentCount="1" />
  <row Id="30619" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T01:20:58.490" Score="1" ViewCount="" Body="&lt;p&gt;Syntax Highlighting, Auto-completion, Source Control and ORM.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T01:20:58.490" />
  <row Id="30620" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T01:22:13.437" Score="26" ViewCount="" Body="&lt;p&gt;Getting a good nights sleep is pretty underrated.&lt;/p&gt;&#xA;" OwnerUserId="847" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T01:22:13.437" CommentCount="1" />
  <row Id="30621" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T01:27:34.700" Score="0" ViewCount="" Body="&lt;p&gt;Aside from tools like Intellisense, refactoring tools and all the other answers people have given, I'd have to say good co-workers. People that you can bounce ideas off of and genuinely enjoy hanging out with. People make a huge difference.&lt;/p&gt;&#xA;" OwnerUserId="22445" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T01:27:34.700" />
  <row Id="30622" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T02:03:17.377" Score="60" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Source Control&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The day I started using source control for all of my personal projects was the day I graduated from amateur to professional.  I can't believe I wasted all of middle school, high school, and two years of college agonizingly writing code without being safe in the knowledge that a known good version was saved away, ready to be reverted to if necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and don't even think of trying to do a group project without source control.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T02:03:17.377" CommentCount="5" />
  <row Id="30623" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T02:10:10.923" Score="2" ViewCount="" Body="&lt;p&gt;asking a DBA for help with database design.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T02:10:10.923" />
  <row Id="30624" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T02:20:53.640" Score="3" ViewCount="" Body="&lt;p&gt;Working at night!!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T02:20:53.640" />
  <row Id="30625" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T02:27:07.573" Score="0" ViewCount="" Body="&lt;p&gt;Test Driven Development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This little puppy has improved what my classespublic interface looks like, given me the confidence to refactor, and made it SO much easier to test the living crap out of my code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whenver I write something like an email validator, or math sequence, or string manipulator -- OMG -- it's just so fun to throw the boundary tests as it and feel the &lt;em&gt;confidence&lt;/em&gt; that the method is strong.  So much better than before when I would presume I'd find a failure at some point in the unknown future.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T02:27:07.573" />
  <row Id="30626" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T02:29:59.143" Score="2" ViewCount="" Body="&lt;p&gt;Cigarettes and coffee.&lt;/p&gt;&#xA;" OwnerUserId="8498" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T02:29:59.143" CommentCount="3" />
  <row Id="30627" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T02:57:59.693" Score="0" ViewCount="" Body="&lt;p&gt;Learning there is no substitute for properly instrumenting your code.  Nothing is worse then trying to figure what went wrong with no trace/debug information.  I am amazed at the amount of&quot;professional&quot; and &quot;Best of Breed&quot; software out there that does not have instrumentation built in.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T02:57:59.693" />
  <row Id="30628" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T03:17:50.527" Score="2" ViewCount="" Body="&lt;p&gt;Head Phones, with appropriate music to block out the NOISE!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T03:17:50.527" />
  <row Id="30629" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T03:18:07.627" Score="0" ViewCount="" Body="&lt;p&gt;Two things: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Recursion (not just what it is, but when to use it)&lt;/li&gt;&#xA;&lt;li&gt;Making programs clean and easy to read instead of just getting things to work&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T03:18:07.627" CommentCount="1" />
  <row Id="30630" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T03:27:02.810" Score="1" ViewCount="" Body="&lt;p&gt;Bpython is awesome in python, an interactive shell is fantastic when learning a language or framework.&lt;/p&gt;&#xA;" OwnerUserId="7172" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T03:27:02.810" />
  <row Id="30631" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T03:29:18.970" Score="0" ViewCount="" Body="&lt;p&gt;Document databases like MongoDb!! :) &lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T03:29:18.970" />
  <row Id="30632" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T03:30:24.527" Score="3" ViewCount="" Body="&lt;p&gt;File Sharing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've gained the equivalent of a Master's degree in my field by torrenting software applications and textbooks and studying for free at home. I learned more (in far-less time) than the tools spending $50,000 to listen to a disgruntled professor recite a textbook that cost said tool about $80.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;File Sharing.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T03:30:24.527" CommentCount="2" />
  <row Id="30633" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T03:50:11.603" Score="1" ViewCount="" Body="&lt;p&gt;Outsourcing to third world countries&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T03:50:11.603" CommentCount="1" />
  <row Id="30634" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T03:56:03.730" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.mygenerationsoftware.com/portal/default.aspx&quot; rel=&quot;nofollow&quot;&gt;MyGeneration&lt;/a&gt; to generate all my ORM code and skeleton code structure adhering to the architecture (in other word, it takes care of all the boring and repetitive code) &lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T03:56:03.730" />
  <row Id="30635" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T03:56:20.460" Score="10" ViewCount="" Body="&lt;p&gt;ASK!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't always have to spend hours alone trying to figure out how to do something. Often it is better to email a friend, call someone or post the question on stack overflow.&lt;/p&gt;&#xA;" OwnerUserId="13730" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T03:56:20.460" CommentCount="1" />
  <row Id="30636" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T03:57:35.247" Score="2" ViewCount="" Body="&lt;p&gt;Matched parenthesis, bracket, angle bracket, and brace highlighting. When you do as much XML as I do, as well as as much Scheme as I once did, it's an incredible time-saver.&lt;/p&gt;&#xA;" OwnerUserId="17693" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T03:57:35.247" />
  <row Id="30637" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T04:10:17.230" Score="1" ViewCount="" Body="&lt;p&gt;The discovery that, in the real world, workflows are often constrained enough that it isn't necessary to handle all cases - and much of software requires solving &quot;engineering problems&quot; rather than &quot;computer science problems.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1852" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T04:10:17.230" />
  <row Id="30638" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T04:15:33.427" Score="1" ViewCount="" Body="&lt;p&gt;Valgrind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because &quot;Segmentation fault&quot; is ever such a helpful error message.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T04:15:33.427" />
  <row Id="30639" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T04:42:53.670" Score="2" ViewCount="" Body="&lt;p&gt;Lots of great stuff here I agree with: isolation, caffeine, unit-tests, flow, pencil &amp;amp; paper, good &lt;a href=&quot;http://en.wikipedia.org/wiki/Computer-aided_software_engineering&quot; rel=&quot;nofollow&quot;&gt;CASE&lt;/a&gt; tools.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One I haven't seen that I find is critical to getting the job done (especially if you're stalling and don't want to do the work)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Todo Lists&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Identify the task(s)&lt;/li&gt;&#xA;&lt;li&gt;Write it down&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Decompose it into smaller steps(I have an odd habit of indenting these items ;) &lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;re-arrange/prioritize steps&lt;/li&gt;&#xA;&lt;li&gt;When tasks are completed, come back and indicate they're done (is satisfying :) ).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Every day I start with a todo list (or I throw it together the night before so I can go home... hate breaking the flow like that, but balance is important too).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once made, start working your way through it.  Side benefit: If/when interruptions happen, todo list is right there to help get back in the zone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Journal/Notes&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I find it helps to keep a text file/journal where I can throw anything/everything without thinking about it. Code snippets, urls to helpful articles, etc etc. Sometimes I just work through a problem by writing about it.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T04:42:53.670" />
  <row Id="30640" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T04:49:39.107" Score="0" ViewCount="" Body="&lt;p&gt;This should be fairly obvious... Code Generation.  Generating an entire data layer on small to medium-size projects saves countless hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;MyGeneration + doodads&#xA;C# data layer and any relational DBMS procedures for all the CRUD.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T04:49:39.107" />
  <row Id="30641" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T05:06:07.187" Score="1" ViewCount="" Body="&lt;p&gt;These are varied and largely unrelated, but here's my list from the last few years:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Taking notes / record keeping&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm the &quot;go to guy&quot; for my current project, and the project is a pretty large one.  This has two implications:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I get interrupted a lot.  Keeping a &quot;todo&quot; list on a pad of paper next to my keyboard makes it easier to context-switch back to my list of tasks that need to get done for the day&lt;/li&gt;&#xA;&lt;li&gt;I document things in our ticketing system and/or wiki obsessively.  If I don't document design choices/the bug I just found/that great feature idea now, there's no way I'm going to remember it -- especially in a couple of months.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In short, there's more going on than I can possibly keep in my head, especially long term, so I have to augment my memory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Git&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Branching and merging couldn't get any easier.  And that's just scratching the surface.  &lt;code&gt;git stash&lt;/code&gt; and &lt;code&gt;git add --interactive&lt;/code&gt; are both extremely handy as well.  And being able to trivially get your patches to your favorite open source project merged to master (trunk) on github is a pretty mindblowing experience as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Profiling&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;KCacheGrind is awesome.  Why waste your time guessing what's slow, when you can get hard data?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Unit Testing&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For any piece of code with a large number of test cases, unit testing is the only sane way to ensure that fixing one test case doesn't break the others.  Being able to trivially verify all test cases 6 months later is also a must-have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Memcached/APC/nginx/varnish&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're using a pure LAMP stack (apache, mysql, php), you're missing out.&lt;/p&gt;&#xA;" OwnerUserId="25089" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T05:06:07.187" CommentCount="1" />
  <row Id="30642" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T05:11:06.287" Score="4" ViewCount="" Body="&lt;p&gt;That I can code after GF goes to bed.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T05:11:06.287" CommentCount="2" />
  <row Id="30643" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T05:20:58.423" Score="0" ViewCount="" Body="&lt;p&gt;The &lt;a href=&quot;http://www.eclipse.org/modeling/emf/&quot; rel=&quot;nofollow&quot;&gt;Eclipse Modeling Framework (EMF)&lt;/a&gt; and the whole EMF ecosystem of related projects.&lt;/p&gt;&#xA;" OwnerUserId="6181" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T05:20:58.423" />
  <row Id="30644" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T05:24:30.170" Score="5" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;Exercise&lt;/em&gt;&lt;/strong&gt;- as powerful as caffein with no deleterious, and many positive side-effects.  A simple 45 minute jog every other day does the trick for me.  Often I find the answer to a difficult problem in the shower after a run, especially if I am well rested.  &lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T05:24:30.170" />
  <row Id="30645" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T05:30:32.227" Score="1" ViewCount="" Body="&lt;p&gt;Ctrl+Click and Alt+Left/Right in Eclipse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: and how could I forget Ctrl+Alt+h when the cursor is in a function name.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T05:30:32.227" />
  <row Id="30646" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T05:43:14.447" Score="0" ViewCount="" Body="&lt;p&gt;google, of cause.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T05:43:14.447" />
  <row Id="30647" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T05:49:08.197" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.gnu.org/software/emacs/&quot; rel=&quot;nofollow&quot;&gt;Emacs&lt;/a&gt; along with the whole new world of &lt;a href=&quot;http://www.fsf.org/&quot; rel=&quot;nofollow&quot;&gt;Free Software&lt;/a&gt; tools.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T05:49:08.197" CommentCount="1" />
  <row Id="30648" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T06:02:46.100" Score="2" ViewCount="" Body="&lt;p&gt;Many people stated the things that many of these tools do, but these are the best tools for the job for me. Textmate Bundles, CSSEdit, and Firebug take me about 95% of the way.  Omnifocus and GTD for managing my projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Description of Bundles:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://manual.macromates.com/en/bundles&quot; rel=&quot;nofollow&quot;&gt;http://manual.macromates.com/en/bundles&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Public Repository of Available Bundles: &#xA;&lt;a href=&quot;http://svn.textmate.org/trunk/&quot; rel=&quot;nofollow&quot;&gt;http://svn.textmate.org/trunk/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, for Design Work, CSSEdit:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://macrabbit.com/cssedit/&quot; rel=&quot;nofollow&quot;&gt;http://macrabbit.com/cssedit/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And for JS Debugging, Firebug:&#xA;&lt;a href=&quot;http://getfirebug.com/&quot; rel=&quot;nofollow&quot;&gt;http://getfirebug.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OmniFocus:&#xA;&lt;a href=&quot;http://www.omnigroup.com/products/omnifocus/&quot; rel=&quot;nofollow&quot;&gt;http://www.omnigroup.com/products/omnifocus/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All well worth the money.  About a combined $150, will pay for itself in a day. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T06:02:46.100" />
  <row Id="30649" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T06:19:35.980" Score="1" ViewCount="" Body="&lt;p&gt;Ruby.  Incredible productivity increase coming from both Java and C#.  Dynamic typing, blocks, and easy-to-read syntax come to mind.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T06:19:35.980" />
  <row Id="30650" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T06:30:01.453" Score="41" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Descriptive variable naming&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not very hard to do, just rename &quot;size&quot; to &quot;imageSize&quot;. And don't abbreviate too much. &quot;op_add&quot; should be &quot;operator_add&quot;. I still use &quot;i&quot; in loops, but only when they're small, and never in nested loops.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This makes it way easier to come back to projects you haven't touched in a month. :D&lt;/p&gt;&#xA;" OwnerUserId="10966" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T06:30:01.453" CommentCount="4" />
  <row Id="30651" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T06:45:08.647" Score="0" ViewCount="" Body="&lt;p&gt;Turning my second monitor so that it was vertical.  Then adjusting windows such that (for web programming) the window where I was editing code was on the top half, and the browser where I was viewing changes was on the bottom.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At a high enough res, it's basically 3 full-size windows on two physical screens.  You'll never go back.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T06:45:08.647" />
  <row Id="30652" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T07:11:30.400" Score="1" ViewCount="" Body="&lt;p&gt;Modafinil, a.k.a Provigil. It's the next Caffeine, and the worst kept secret of the working world. Although it's hard to measure, this item is possibly the most prescribed off-label Rx in the United States. If Obama directed the FDA to permit over the counter sales, we'd be out of this recession by Christmas.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T07:11:30.400" />
  <row Id="30653" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T07:33:00.323" Score="2" ViewCount="" Body="&lt;p&gt;Not to use internet at work.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T07:33:00.323" />
  <row Id="30654" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T07:38:31.453" Score="0" ViewCount="" Body="&lt;p&gt;Haskell is the big one.  But after that comes the modern IDEs like Eclipse.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T07:38:31.453" />
  <row Id="30655" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T07:59:32.863" Score="8" ViewCount="" Body="&lt;p&gt;A good &lt;strong&gt;8 hours of sleep every night&lt;/strong&gt;.  Amazingly, this increased my gpa in college by .5 and makes me incredibly more productive during the day.  When I am sleep deprived I cannot concentrate on anything.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T07:59:32.863" CommentCount="1" />
  <row Id="30656" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T07:59:58.710" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Software&lt;/strong&gt;: &lt;a href=&quot;http://www.blacktree.com/&quot; rel=&quot;nofollow&quot;&gt;Quicksilver&lt;/a&gt;. Nuff said.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Hardware&lt;/strong&gt;: A wireless mouse (no more losing &quot;flow&quot; at critical moments when the cord get tangled)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Time management&lt;/strong&gt;: &lt;a href=&quot;http://www.pomodorotechnique.com&quot; rel=&quot;nofollow&quot;&gt;The Pomodoro technique&lt;/a&gt;. In a nutshell, work for 25 minutes, take a 5 minute break. But there's more to it. Mix this with a solid GTD workflow and it's amazing how much &lt;strong&gt;quality&lt;/strong&gt; work I get done these days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Diet&lt;/strong&gt;: I've never been unhealthy or overweight, but eating like a bear (nuts, berries and fish) really seems to help me concentrate better and solve problems much quicker. I'm never going back to pic-a-nic baskets.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T07:59:58.710" />
  <row Id="30657" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T08:01:46.430" Score="0" ViewCount="" Body="&lt;p&gt;Starting linux development which made me realize that hacking up your own solutions is never the best thing to do -- taught me to make healthy use of third party libraries... and &lt;em&gt;really&lt;/em&gt; increases productivity.&lt;/p&gt;&#xA;" OwnerUserId="6234" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T08:01:46.430" />
  <row Id="30658" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T08:03:38.390" Score="5" ViewCount="" Body="&lt;p&gt;Whiteboards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All the fancy tools in the world cannot replace a full-wall whiteboard and a couple of co-workers.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T08:03:38.390" />
  <row Id="30659" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T08:09:30.113" Score="2" ViewCount="" Body="&lt;p&gt;For me, &lt;strong&gt;stack overflow&lt;/strong&gt; is turning out to be a great boost.&lt;/p&gt;&#xA;" OwnerUserId="5029" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T08:09:30.113" />
  <row Id="30660" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T08:23:10.943" Score="0" ViewCount="" Body="&lt;p&gt;File Versioning using SVN and unfuddle. This has definitely made working in my University programming labs with a partner much easier. We can work on it whenever we want and leave each other comments about what has changed.. not to mention the file versioning and file differential utilities.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T08:23:10.943" />
  <row Id="30661" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T08:29:22.397" Score="1" ViewCount="" Body="&lt;p&gt;From time to time: using the other hand to use the mouse :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's quite refreshing feeling, it forces you to use keyboard more often and it might increase your creativity (there was such study).&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T08:29:22.397" CommentCount="1" />
  <row Id="30662" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T08:35:40.360" Score="1" ViewCount="" Body="&lt;p&gt;The discovery of &lt;strong&gt;www.stackoverflow.com&lt;/strong&gt; existence and the way how it works. Nothing is comparable!&lt;/p&gt;&#xA;" OwnerUserId="755" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T08:35:40.360" />
  <row Id="30663" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T08:47:51.503" Score="2" ViewCount="" Body="&lt;p&gt;Testing, plain and simple.  I sort of had to be dragged to it, but now I'm addicted.  And it turns out that it has some great features that will, over time, make you a better programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, you discover that if something is hard to test, it's a code smell.  Doesn't mean it's &lt;em&gt;wrong&lt;/em&gt;, but there's a good chance that when you're struggling to test all combinations of those five arguments to a function, you're doing too much in that function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, &quot;fear-driven development&quot; is a thing of the past.  Many times developers find themselves afraid to touch a hairy section of code because it's grown over time and has become unmaintainable.  Having fear back you into a technical corner is never pleasant.  With good test coverage, it's much easier and safer to dive in and make those changes.  &quot;Fear-driven development&quot; goes away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Third, your overall designs improve.  As with the first point, not only do you discover that discrete bits of code become more maintainable, you find yourself wrapping global variables in well-guarded method calls to ensure that you can test them easier.  Later, when something else break this &quot;global&quot;, it becomes trivial to add logging to find out what does it.  Further, you find that your code starts decomposing into different sections that are easier to test, but this also tends to be better-designed code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fourth, you'll be more productive.  The studies I've read tend to show that initial productivity drops between 10% to 30% while testing, but long-term productivity &lt;em&gt;increases&lt;/em&gt; because you have fewer bugs.  When you implement a new feature, you can code as fast as you want, safe in the knowledge that a strong test suite will catch many errors.  Also, when bugs do arise, good test suites generally help you pinpoint their source much faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fifth, you can work as a team better with tests.  When Joe and Sally both check in code which passes all tests, often the tests fail when the code is merged.  This can be a very subtle issue when working on separate areas of the code.  I confess that sometimes I hack together code quickly just to explore an idea, but when I'm working with others, I wouldn't dream of it.  Tests will save me again and again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sixth, you know where bugs are before you find them.  This sounds weird, but over the years, I've discovered that when I run test coverage code, those areas of my code which aren't tested are almost always those areas of my code where serious bugs/design flaws are working.  It happens to me again and again.  Look for areas where your test coverage falls short and you'll find bugs.  Even if you don't see them, write tests for them and those bugs will start crawling out of the woodwork.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Testing is far and away the best tool I've found for making me a better programmer who turns out more code, to deadline, with fewer bugs.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T08:47:51.503" />
  <row Id="30664" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T10:14:02.997" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Know thyself!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've discovered that to truly be productive you have to listen to your biorhythms.  My most productive time of day is in the early morning hours between 4am and about 9am.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can often accomplish more in 10 minutes in that section of my day than I can do in 2 hours at any other time.  (Grunt-work excluded of course :) ).  So I do most of my planning/thinking at that time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know you said &quot;ONE THING&quot;, but...&#xA;The other thing is to use your subconscious mind to figure out the solution to any major problems - it will do a way better job than your conscious mind can!&lt;/p&gt;&#xA;" OwnerUserId="22730" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T10:14:02.997" />
  <row Id="30665" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T10:25:53.607" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com&quot;&gt;StackOverflow&lt;/a&gt; !!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T10:25:53.607" CommentCount="1" />
  <row Id="30666" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T10:28:02.577" Score="0" ViewCount="" Body="&lt;p&gt;The ability to write code without errors. Who would've thought, this whole time, it's just a setting in our IDE's.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T10:28:02.577" />
  <row Id="30667" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T10:34:56.357" Score="4" ViewCount="" Body="&lt;p&gt;Former programmer. Best discovery that I ever made was to hire people that knew a hell of a lot more than I did and were more up to date.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never failed me yet.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T10:34:56.357" />
  <row Id="30668" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T10:36:11.910" Score="1" ViewCount="" Body="&lt;p&gt;Meta-programming. I know someone mentioned Lisp but that's just one tool that supports the technique, there's much more:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Using languages like Ruby to tweak how method invocations are handled (like implementing a basic type of AOP in a couple lines of code) or adding a method to only a selective group of instances of a class.&lt;/li&gt;&#xA;&lt;li&gt;Using language tools like ANTLR to generate a small language or notation or the other way around: make some fixed notation of a specification into a formal grammar so you can immediately push through changes (for instance, an access rights table).&lt;/li&gt;&#xA;&lt;li&gt;Using larger scale tools like the Rascal MetaProgramming language to write custom refactorings to modify large codebases (such as remove all public fields).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The reason this has boosted my productivity is because it allowed me to adopt a wildly different perspective on both designing and maintaining software.&lt;/p&gt;&#xA;" OwnerUserId="6287" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T10:36:11.910" />
  <row Id="30669" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T10:51:47.600" Score="0" ViewCount="" Body="&lt;p&gt;When you need to do routine search first for some existing libraries. Someone (from Apache usually) have already done it for you. No need to reinvent the wheel.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T10:51:47.600" />
  <row Id="30670" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T11:18:59.677" Score="14" ViewCount="" Body="&lt;p&gt;Working on a &lt;strong&gt;fun&lt;/strong&gt; project.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's the single biggest productivity boost for me.  &lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T11:18:59.677" CommentCount="1" />
  <row Id="30671" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T11:29:28.763" Score="4" ViewCount="" Body="&lt;p&gt;Hot showers.&lt;br&gt;&#xA;Usually there I get my &quot;Aaahhh, of course&quot;-moment.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T11:29:28.763" />
  <row Id="30672" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T11:52:08.807" Score="4" ViewCount="" Body="&lt;p&gt;The idea that &lt;em&gt;computer source code is just an a kind of data&lt;/em&gt; you can compute with.&#xA;This means you can build code analyzers, transformers, generators, ... that&#xA;reuse your knowledge about code rather than doing all the coding yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key idea is &lt;a href=&quot;http://www.semdesigns.com/Products/DMS/ProgramTransformation.html&quot; rel=&quot;nofollow&quot;&gt;program transformations&lt;/a&gt;, which allow you to code&#xA;bits of analysis or transformation knowledge as rules you can store and apply&#xA;many times.  This generalizes all the &quot;code generation&quot;, &quot;metaprogramming&quot; and &quot;aspect-oriented programming&quot; stuff you hear about.&lt;/p&gt;&#xA;" OwnerUserId="12135" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T11:52:08.807" />
  <row Id="30673" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T11:58:01.993" Score="4" ViewCount="" Body="&lt;p&gt;Object-oriented programming. Nuff said.&lt;/p&gt;&#xA;" OwnerUserId="5879" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T11:58:01.993" />
  <row Id="30674" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T12:07:09.163" Score="1" ViewCount="" Body="&lt;p&gt;Creating mock versions of critical backend services. It has enabled our team to develop the front-end virtually separately from the back-end. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T12:07:09.163" />
  <row Id="30675" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T12:13:28.577" Score="0" ViewCount="" Body="&lt;p&gt;Discovering that clear requirements followed by careful planning and design makes the programming faster, easier, and less bug prone.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T12:13:28.577" />
  <row Id="30676" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T12:25:06.523" Score="1" ViewCount="" Body="&lt;p&gt;I quit my programing job, started a company and will this year sell millions of worth steel products. I guess leaving my desk was the best thing I ever done. I still love programing, but that´s for fun only.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T12:25:06.523" />
  <row Id="30677" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T12:29:30.057" Score="5" ViewCount="" Body="&lt;p&gt;Definitely MVC. As a amateur-turned-professional web developer with a background mostly in PHP I always found it a bit difficult to wrap my head around the idea (PHP naturally doubles as a template engine after all). While I was familiar with templates, I never thought of it as a step towards MVC, which I always associated with Microsoft's .NET stack.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even when I learned about Java Servlets and I tried having beans for everything and putting all my output in JSP files I never quite &quot;got&quot; it. Beans seemed cumbersome and without ORM (which I always thought to be a fancy way of writing queries without using SQL) I often found myself dealing with SQL in beans and servlets alike.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I picked up Python and came across Django, it suddenly all fell into place. Sure, Django calls it MTV and the views are really more like controllers, but without ever having been exposed to the architecture directly before, it just all made sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say it even gave me a better understanding of OOP. Even though I still loathe PHP frameworks and PHP in general, when I came back to PHP recently for a client, I naturally structured my software the way Django taught me: my ORM classes separate from my views, my views separate from the templates and all that separate from the main file, which now just served as a dispatcher.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not only that, I think it even gave me a better understanding of software architecture in general. For example, I now understand better why it is a good idea to keep your GUI code out of your business logic in desktop applications. In fact, I don't even think about it much anymore, it just seems obvious to me now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;tl;dr&lt;/strong&gt; Learning MVC gave me better insight into OOP and software architecture even in languages I otherwise find messy to code in.&lt;/p&gt;&#xA;" OwnerUserId="2734" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T12:29:30.057" CommentCount="1" />
  <row Id="30678" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T14:42:35.823" Score="0" ViewCount="" Body="&lt;p&gt;Event delegation&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T14:42:35.823" />
  <row Id="30679" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T14:49:23.653" Score="2" ViewCount="" Body="&lt;p&gt;Learning how to touch type. I had developed my own homebrew technique over the years, but still made a lot of mistakes when typing. I forced myself to spend an hour day with a couple of free typing programs and saw my accuracy soar. This made programming much easier as I didn't waste time hitting the wrong keys and could focus on what I was trying to code.&lt;/p&gt;&#xA;" OwnerUserId="5743" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T14:49:23.653" />
  <row Id="30680" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T14:58:55.443" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The USENET!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, little children, there was a time when your compiler/tool/SO/library would spit a cryptic error message and you had no option but read the thick manual. After being stuck for days, you would just reimplement everything in a different way. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then there was the USENET. You would ask a question and the greatest specialists in the world would answer you. Then there was Dejanews. You'd find similar questions already asked. Now you just put your error in Google and you solve your problem. &lt;/p&gt;&#xA;" OwnerUserId="2097" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T14:58:55.443" />
  <row Id="30681" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T15:20:07.677" Score="1" ViewCount="" Body="&lt;p&gt;Stackoverflow.com, 'enuf said&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T15:20:07.677" CommentCount="1" />
  <row Id="30682" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T15:50:05.953" Score="1" ViewCount="" Body="&lt;p&gt;COPY &amp;amp; PASTE shortcuts. This is the foundation of my career.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T15:50:05.953" CommentCount="1" />
  <row Id="30683" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T16:59:31.173" Score="0" ViewCount="" Body="&lt;p&gt;Since I am a bit late to the party most of things that have boosted my productivity have already been listed. To add to the list (which are not programatically related per se) are,&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Usage of keystroke launcher like &lt;a href=&quot;http://launchy.net/&quot; rel=&quot;nofollow&quot;&gt;Launchy&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Religious usage of TODO Sticky Notes &amp;amp; actually sticking them on to Monitors (at the bottom).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="435" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T16:59:31.173" />
  <row Id="30684" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T17:11:02.067" Score="2" ViewCount="" Body="&lt;p&gt;Particularly when programming in C or C++, &lt;strong&gt;liberal use of the&lt;/strong&gt; &lt;em&gt;assert&lt;/em&gt; &lt;strong&gt;macro&lt;/strong&gt; has saved me countless hours of debugging.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those of you who do not know, &lt;em&gt;assert&lt;/em&gt; is a preprocessor macro takes a boolean expression as its argument.  When executing the program, if the boolean expression is false, location information (source file and line number) is printed to standard error with an ``assertion failed'' message, and the program aborts.  For a production release, the macro NDEBUG is defined, and the asserts are compiled out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;assert&lt;/em&gt; can be more useful than comments, as it is mechanically checked as the program runs.  By making your assumptions about the program explicit in this way, when those assumptions are violated, you learn about it sooner rather than thousands of instructions later when your program segfaults far from where the actual error is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This early detection complements the use of a debugger as well:  rather than working backward from a segfault, you add enough assertions so that your program dies with an assertion failure.  This helps narrow in on the bug.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;assert&lt;/em&gt; exists in most languages, although I find it most useful in languages that use manual memory management.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T17:11:02.067" />
  <row Id="30685" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T17:14:55.587" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Automatic code indentation&lt;/strong&gt; and following a code convention always helps me spot small problems before the compiler.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T17:14:55.587" CommentCount="1" />
  <row Id="30686" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T17:19:20.180" Score="5" ViewCount="" Body="&lt;p&gt;Visual Studio - the fuck***g best IDE in the world!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;since its still a pain in the ass its just the best one gets!&#xA;the editor is cool / debugger is as one needs it + you get edit &amp;amp; continue which is very nice.&#xA;Customizable as hell + good plugin interface + good external buildtool integration like cuda- or other microprocessor-compilers - and its a fast IDE - not like other java-written IDEs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i tried many IDEs and did also larger projects with for example eclipse or netbeans - but they all cannot reach the quality of VS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope MS will forget about their company politics someday and support cross platforming better in the future. But this is quite unlikely to happen.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T17:19:20.180" />
  <row Id="30687" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T18:10:09.210" Score="5" ViewCount="" Body="&lt;p&gt;Losing my girlfriend.  Not that I was really thinking how much more productive I would be, but it is a side effect.&lt;/p&gt;&#xA;" OwnerUserId="12921" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T18:10:09.210" />
  <row Id="30688" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T19:19:06.820" Score="0" ViewCount="" Body="&lt;p&gt;The book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0142000280&quot; rel=&quot;nofollow&quot;&gt;Getting Things Done&lt;/a&gt; and software that implemented it (I use &lt;a href=&quot;http://culturedcode.com/things/&quot; rel=&quot;nofollow&quot;&gt;Things for Mac&lt;/a&gt;). Being able to focus on the next action, and not having the 10 other things I needed to do swirling around in my head gave me a big productivity boost.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T19:19:06.820" />
  <row Id="30689" PostTypeId="2" ParentId="30513" CreationDate="2010-03-03T20:15:58.370" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.cpan.org/&quot; rel=&quot;nofollow&quot;&gt;CPAN&lt;/a&gt; for Perl.&lt;/p&gt;&#xA;" OwnerUserId="1654" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-03T20:15:58.370" />
  <row Id="30690" PostTypeId="2" ParentId="30513" CreationDate="2010-03-04T02:45:40.607" Score="8" ViewCount="" Body="&lt;p&gt;The realization that &lt;code&gt;keyboard &amp;gt; mouse&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It started with launchy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After a while, I learned vim.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, I starting using the command line.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I switched to linux.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I started writing scripts that automate the mundane tasks that I always need to perform.&lt;/p&gt;&#xA;" OwnerUserId="1747" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-04T02:45:40.607" CommentCount="1" />
  <row Id="30691" PostTypeId="2" ParentId="30513" CreationDate="2010-03-04T02:53:28.417" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Dependency Injection/DI&lt;/strong&gt; and the type of code it enforces (loose coupling, MVP, etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;DI might have a steep learning curve (especially if you've programmed for a long time without DI), but once you get the hang of it, the code gets easier to test, refactor and read (by you, the author or someone that will &quot;inherit&quot; this code when you leave the company for Google, &lt;a href=&quot;http://misko.hevery.com/code-reviewers-guide/&quot; rel=&quot;nofollow&quot;&gt;where they use DI and strongly recommend it&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recommended reading: &lt;a href=&quot;http://misko.hevery.com/&quot; rel=&quot;nofollow&quot;&gt;Misko Hevery's blog&lt;/a&gt; and the &lt;a href=&quot;http://misko.hevery.com/code-reviewers-guide/&quot; rel=&quot;nofollow&quot;&gt;&quot;Guide: Writing Testable Code&quot;&lt;/a&gt; it hosts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus, it adds another one of those nice expressions that can easily be misinterpreted by a non-programmer person, like: &quot;Have you injected the Client?&quot; or &quot;Wow, this &lt;a href=&quot;http://code.google.com/p/google-guice/&quot; rel=&quot;nofollow&quot;&gt;Guice&lt;/a&gt; makes work so much easier.&quot;&lt;/p&gt;&#xA;" OwnerUserId="10747" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-04T02:53:28.417" />
  <row Id="30692" PostTypeId="2" ParentId="30513" CreationDate="2010-03-04T17:29:50.347" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Discovering how bad I am at programming&lt;/strong&gt; -- after a job search where I got a terrible test.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me (now), knowing how much you are bad, as a human being, because your memory is terrible, your logic is flawed, your attention is bad, is the best skill for a programmer. It allows him to code according to his flaws and make the code point him his errors fast. It also gives you a chance to learn from everything around, by not assuming you &quot;know&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those answers somewhat reflect my feeling : &lt;a href=&quot;http://stackoverflow.com/questions/242293/are-you-a-good-or-bad-programmer&quot;&gt;http://stackoverflow.com/questions/242293/are-you-a-good-or-bad-programmer&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This article totally refflect my feeling : &lt;a href=&quot;http://subwindow.com/articles/2&quot; rel=&quot;nofollow&quot;&gt;http://subwindow.com/articles/2&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After the test that made me admit how bad I was, I relearned everything from the start, the languages, the computer theory, helped by search habits from a self-made background. &lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-04T17:29:50.347" />
  <row Id="30693" PostTypeId="2" ParentId="30513" CreationDate="2010-03-04T18:44:47.987" Score="1" ViewCount="" Body="&lt;p&gt;Databases - as a newbie programmer the hardest pieces were writing and reading data to disk in an organized way, then later it was sorting information, then it was finding information, then it was network-accessibility of information, then it was concurrency concerns, and security concerns.... DBs provide for every one of those needs!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-04T18:44:47.987" />
  <row Id="30694" PostTypeId="2" ParentId="30513" CreationDate="2010-03-05T09:54:32.073" Score="1" ViewCount="" Body="&lt;p&gt;Stack Overflow really helped to resolve many of the Critical Issue which were quite difficult to search on Google also.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for giving such a helpful site.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-05T09:54:32.073" />
  <row Id="30695" PostTypeId="2" ParentId="30513" CreationDate="2010-03-09T00:02:26.480" Score="0" ViewCount="" Body="&lt;p&gt;To find that there are other options for data storage than relational databases (for example: velocity). This really helped me to solve way quickly certain types of problems. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-03-09T00:02:26.480" />
  <row Id="30696" PostTypeId="2" ParentId="30513" CreationDate="2010-04-09T18:31:10.367" Score="1" ViewCount="" Body="&lt;p&gt;I've had a Logitech MX Revolution for a while. Today, I assigned copy, delete, and paste to the secondary mouse wheel. Now, I can use my mouse thumb to do all of those operations!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-04-09T18:31:10.367" />
  <row Id="30697" PostTypeId="2" ParentId="30513" CreationDate="2010-04-12T00:06:57.147" Score="1" ViewCount="" Body="&lt;p&gt;Mathematica taught me the value of a really high-level language but it took &lt;a href=&quot;http://www.ffconsultancy.com/products/ocaml_for_scientists/&quot; rel=&quot;nofollow&quot;&gt;OCaml&lt;/a&gt; to make that style efficient enough to let me replace C++. Now I use &lt;a href=&quot;http://www.ffconsultancy.com/products/fsharp_for_technical_computing/&quot; rel=&quot;nofollow&quot;&gt;F#&lt;/a&gt; for its multicore support and nothing else comes close.&lt;/p&gt;&#xA;" OwnerUserId="11782" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-04-12T00:06:57.147" />
  <row Id="30698" PostTypeId="2" ParentId="30513" CreationDate="2010-04-12T00:19:24.263" Score="3" ViewCount="" Body="&lt;p&gt;My single most productive move was to get rid entirely of the debugger.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong: I've start in 2nd generation language (manually entering hex codes, not even assembly yet) and I've spent more time in more debuggers than most programmers on this site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But since unit testing and multi-threading (you know, the present) came around me I realized that the old &quot;debugger&quot; concept was such a waste of time when working with high-level languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, I still use one when I'm doing the occasional C hackery but besides that, learning to &quot;find problems&quot; by thinking outside the box, on a higher level, and never using a debugger again was my single biggest productivity boost.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-04-12T00:19:24.263" />
  <row Id="30699" PostTypeId="2" ParentId="30513" CreationDate="2010-06-25T05:50:11.403" Score="2" ViewCount="" Body="&lt;p&gt;in C# LINQ-to-[Everything] is extremely helpful especially coding in Lambada.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-06-25T05:50:11.403" CommentCount="1" />
  <row Id="30700" PostTypeId="2" ParentId="30513" CreationDate="2010-08-03T11:30:32.263" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;ctrl+r&lt;/strong&gt; in bash terminal (and other bash terminal shortcuts)&lt;/p&gt;&#xA;" OwnerUserId="1978" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-08-03T11:30:32.263" CommentCount="1" />
  <row Id="30701" PostTypeId="2" ParentId="30513" CreationDate="2010-09-01T23:42:27.097" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Notepad++ and a Project in the mind&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is how I started to learn and to really love programming :)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-09-01T23:42:27.097" />
  <row Id="30702" PostTypeId="2" ParentId="30513" CreationDate="2010-09-01T23:50:32.363" Score="2" ViewCount="" Body="&lt;p&gt;the discovery that imperfect solutions are the best ones.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-09-01T23:50:32.363" CommentCount="2" />
  <row Id="30703" PostTypeId="2" ParentId="30513" CreationDate="2010-09-02T00:03:28.110" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Hyperlink navigation through the code&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not sure if it's correct name, but it's when you do ctrl+click in Eclipse on a method call and it goes to its declaration. It blew my mind first time I tried it.&lt;/p&gt;&#xA;" OwnerUserId="193" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-09-02T00:03:28.110" />
  <row Id="30704" PostTypeId="2" ParentId="30513" CreationDate="2010-09-02T00:16:50.537" Score="0" ViewCount="" Body="&lt;p&gt;How about Ctrl+Z.&lt;/p&gt;&#xA;" OwnerUserId="2428" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-09-02T00:16:50.537" />
  <row Id="30705" PostTypeId="2" ParentId="30513" CreationDate="2010-09-02T00:23:16.093" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Garbage Collector&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-09-02T00:23:16.093" />
  <row Id="30706" PostTypeId="2" ParentId="30513" CreationDate="2010-09-02T00:24:16.637" Score="0" ViewCount="" Body="&lt;p&gt;Learning Haskell.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-09-02T00:24:16.637" />
  <row Id="30707" PostTypeId="2" ParentId="30513" CreationDate="2010-09-02T06:27:11.633" Score="9" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com&quot;&gt;Stackoverflow&lt;/a&gt;. Really.&lt;/p&gt;&#xA;" OwnerUserId="4156" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-09-02T06:27:11.633" CommentCount="1" />
  <row Id="30708" PostTypeId="2" ParentId="30513" CreationDate="2010-09-02T07:27:59.607" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Time pressure.&lt;/strong&gt; Nothing makes me more productive than knowing I have to be done soon. I usually end up having my most effective code sessions when I am in a hurry. If that deadline is not real, even better, as that means I can still spend a bit more time reviewing what I did.&lt;/p&gt;&#xA;" OwnerUserId="2762" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-09-02T07:27:59.607" CommentCount="2" />
  <row Id="30709" PostTypeId="2" ParentId="30513" CreationDate="2010-09-02T07:41:20.393" Score="1" ViewCount="" Body="&lt;p&gt;It may be some small small productivity say: the production tools, production ideas, some more home works to plan the process all make together a complete boost in the whole programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically we should have a better strategy than hard hard-works otherwise or unless it seems to have nothing else to complete even 75% remain pending to complete&lt;/p&gt;&#xA;&#xA;&lt;p&gt;GOOD Strategy - with a complete idea of what you have done and whats next will get you a big boost. On the run we should not feel lack of ideas for the next step&lt;/p&gt;&#xA;&#xA;&lt;p&gt;good luck&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-09-02T07:41:20.393" />
  <row Id="30710" PostTypeId="2" ParentId="30513" CreationDate="2010-09-15T16:21:46.623" Score="0" ViewCount="" Body="&lt;p&gt;The !command&amp;amp; command in MATLAB to open up a windows command line:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;!COMMAND&amp;amp;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-09-15T16:21:46.623" />
  <row Id="30711" PostTypeId="2" ParentId="30513" CreationDate="2010-09-19T06:59:29.727" Score="1" ViewCount="" Body="&lt;p&gt;A GNU screen session inside another GNU screen session. It blew my mind when I first accidentally did this.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-09-19T06:59:29.727" />
  <row Id="30712" PostTypeId="2" ParentId="30513" CreationDate="2010-09-25T00:02:10.023" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;SSH Remote Command Execution&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$ ssh user@example.com '&amp;lt;your_remote_command&amp;gt;'&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2524" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-09-25T00:02:10.023" />
  <row Id="30713" PostTypeId="2" ParentId="30513" CreationDate="2010-09-26T03:01:35.623" Score="3" ViewCount="" Body="&lt;p&gt;For me the most important but seemingly obvious lesson I've learned is in naming conventions for my objects and the ability to define through names the processes that are going on. Familiarity with a framework's object names is also very important.&lt;/p&gt;&#xA;" OwnerUserId="4130" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-09-26T03:01:35.623" />
  <row Id="30714" PostTypeId="2" ParentId="30513" CreationDate="2010-09-29T22:30:19.907" Score="2" ViewCount="" Body="&lt;p&gt;I'd say my wife and Kids. Honestly, yes Google, MVC, this and that give a productivity boost, but it's incompatible to what my spouse / kids give by just being them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But for those married dev's out there, or those with kids, there is no single entity that can give a productivity boost like your spouse / kids. Especially when you are the sole provider.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You want to increase someone's productivity, give them something to work for that's not themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disclaimer: I am not saying for employers to sign up all their single staff on eHarmony or anything else like that. Just sayin'.&lt;/p&gt;&#xA;" OwnerUserId="5500" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-09-29T22:30:19.907" />
  <row Id="30715" PostTypeId="2" ParentId="30513" CreationDate="2010-11-11T11:56:12.850" Score="1" ViewCount="" Body="&lt;p&gt;To Do List ... Keeping a Diary for it.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-11-11T11:56:12.850" />
  <row Id="30716" PostTypeId="2" ParentId="30513" CreationDate="2010-11-19T15:25:24.227" Score="1" ViewCount="" Body="&lt;p&gt;hate to be a brown-noser but:&lt;br&gt;&#xA;STACKOVERFLOW.COM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;just look at this FB post: (it may not last long)&lt;br&gt;&#xA;&lt;a href=&quot;http://www.facebook.com/ramy.abdelazim/posts/160787040626203&quot; rel=&quot;nofollow&quot;&gt;http://www.facebook.com/ramy.abdelazim/posts/160787040626203&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10021" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-11-19T15:25:24.227" />
  <row Id="30717" PostTypeId="2" ParentId="30513" CreationDate="2010-11-19T15:38:41.103" Score="0" ViewCount="" Body="&lt;p&gt;Visual Studio (for C++), especially when it comes to debugging.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-11-19T15:38:41.103" />
  <row Id="30718" PostTypeId="2" ParentId="30513" CreationDate="2010-11-19T20:16:40.830" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Higher Education&lt;/strong&gt;. Knowledge is power. Graduate school exposes you to areas (e.g., algorithm analysis, advance data structures, higher mathematics, different types of languages, compilers) that you wouldn't normally get as in-depth as an undergrad. Also helps to build better critical thinking and problem solving skills. Of course, you need to go the extra mile and learn all that you can while still maintaining your contact with industry (i.e., internships).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All this helps you in the future when you become a developer in understanding the problem and designing a solution.&lt;/p&gt;&#xA;" OwnerUserId="7988" LastActivityDate="2010-12-27T18:34:10.063" CommunityOwnedDate="2010-11-19T20:16:40.830" CommentCount="2" />
  <row Id="30719" PostTypeId="2" ParentId="30345" CreationDate="2010-12-27T18:35:50.033" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;How did you define and find your&#xA;coding style?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I dont think there was a time where i said: &quot;Ok this is going to be my style&quot;. Do focus on specific environment or language. Your style should reflect the way you face a certain problem.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How do you keep augmenting and&#xA;improving it?&#xA;Reading developers blogs could be useful to see what other are working on, looking for sofware widely used (if its so good, maybe you could use some of their solutions), etc.&lt;/li&gt;&#xA;&lt;li&gt;How do you maintain it? (From mental&#xA;notes, keeping a document, using a&#xA;tool like StyleCop etc.)&#xA;This question rise another one: Could you loose your style? I think its a part of you so you cant, dont you?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-27T18:35:50.033" />
  <row Id="30720" PostTypeId="2" ParentId="17290" CreationDate="2010-12-27T18:36:54.697" Score="0" ViewCount="" Body="&lt;p&gt;I started a family company, &lt;a href=&quot;http://www.ffconsultancy.com/?se&quot; rel=&quot;nofollow&quot;&gt;Flying Frog Consultancy Ltd.&lt;/a&gt;, at the beginning of 2005. We've shipped quite a few products since them, some successful and some unsuccessful. I mostly write literature to teach people about upcoming technologies like fringe programming languages, which is great because I love learning new technologies and having to write compelling and fun demos is a dream job!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In particular, the &lt;a href=&quot;http://www.ffconsultancy.com/products/fsharp_journal/?se&quot; rel=&quot;nofollow&quot;&gt;F#.NET Journal&lt;/a&gt; pulls in as much money as you're asking for and it requires about one day of work per week from me. Overall, our company pulls in enough money for my family to live off comfortably in the UK. Frankly, I've always been amazed that more people from places where the cost of living is cheaper don't do this because its awesome. :-)&lt;/p&gt;&#xA;" OwnerUserId="11782" LastActivityDate="2010-12-27T18:36:54.697" />
  <row Id="30722" PostTypeId="2" ParentId="29839" CreationDate="2010-12-27T18:40:35.210" Score="4" ViewCount="" Body="&lt;p&gt;Personally, I have never found an explicit answer to the question &quot;What is a Function Point?&quot;  Without such, I'm REALLY hesitant about any estimating methodology that claims to do anything with Function Points.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The single most important part of a serious software estimation methodology is &quot;periodic recalibration to actuals&quot;, which means you make your estimate, you write it down, and then, when the project is over, you compare your actual results to your estimate, and, if necessary, revise your estimating process.  INCLUDED IN THAT is comparing your the INPUTS to your estimating process with the ACTUAL INPUTS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If, for example, you estimate Source Lines of Code (SLOC), and go from there, you have to compare your actual delivered SLOC with your estimated SLOC, and see whether, how far, and where and why you went astray.  An estimator that predicts man-hours perfectly, given an accurate and precise SLOC estimate in, is not going to do you any good if your SLOC estimates are worthless.  Garbage in, garbage out.  (The same thing applies to Function Points.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your SLOC (or Function Point) actuals match your initial estimates, then you can look at your cost actuals against your estimated costs, and adjust your estimator parameters to improve your results.  General Dynamics/Fort Worth Division did this exercise, in detail, in the early 1980s, for F-16C/D software development, and then for several years would routinely bet the company bottom line on those estimates.  GD/FW was GD's cash cow for quite a while, keeping the rest of the firm afloat, so they must have been doing something right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And note that requirements and feature creep is THE ENEMY of software estimation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(This is a later edit.)  Bernd's last point deserves an answer.  He asks what should be done about projects that come in early, and don't expend all their allocated man-hours.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is just as much an estimating error as the (far more common) schedule overruns.  The fact of the matter is this: if all of your projects are overrunning their schedule, your estimating folks are not doing their job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your estimating folks are doing everything right, and your managers are doing everything right, then you are going to have some projects come in early, along with the ones that come in late.  Estimates are probabilities.  Shade your estimator to eliminate schedule underruns, and you BY DEFINITION increase the probability of schedule overruns.  If your management demands schedules and estimates with zero possibility of underrun, then you are going to be delivering schedules that &lt;strong&gt;WILL&lt;/strong&gt; be overrun, guaranteed, and then you will start seeing demands for Death Marches, and then you start seeing resignations, and your overruns get much, much worse, as you try to recruit replacements (and the word gets out that your company is a sweatshop).&lt;/p&gt;&#xA;" OwnerUserId="3852" LastEditorUserId="3852" LastEditorDisplayName="" LastEditDate="2010-12-28T01:25:37.360" LastActivityDate="2010-12-28T01:25:37.360" />
  <row Id="30723" PostTypeId="2" ParentId="27564" CreationDate="2010-12-27T18:47:12.157" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;I'd like to see some native way to set open_basedir in virtual hosts based on domain name automatically, without having to configure one directive per host (similar to Jason Greene patch, but native).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Please, application-wide globals! App global variables would be available to all php scripts, once initialized. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Some way to release session for other threads, without closing them: &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;pre&gt;&#xA;session_start();&#xA;$_SESSION['favcolor'] = 'white';&#xA;session_flush(); // session is now unblocked so other threads can use it&#xA;// huge loop ...&#xA;$_SESSION['taste'] = 'sweet'; // session blocks automatically again&#xA;session_close();&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Maybe some on-disk cache would be nice, so we can precompile php scripts manually for faster execution. Similar to memory caches, but with files on disk and manual generation (probably using some new file extension).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Also, something similar to &amp;lt;?php =$variable ?&amp;gt; as shortcut to &amp;lt;?php echo $variable; ?&amp;gt; would be nice (as in asp tags, but with short/asp tags disabled).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4783" LastActivityDate="2010-12-27T18:47:12.157" CommunityOwnedDate="2010-12-27T18:47:12.157" />
  <row Id="30724" PostTypeId="2" ParentId="30075" CreationDate="2010-12-27T18:53:53.957" Score="0" ViewCount="" Body="&lt;p&gt;Whatever else you may do, make certain that you take both the Operating Systems class and the Compilers class in your senior year.  DON'T take them both in the same semester (or whatever term system your school is on: if these classes are done properly, they carry HEAVY outside workloads (in homework and programming projects).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Operating Systems will give you an appreciation and understanding of problems that span the entire discipline.  (The distributed database community embarrassed themselves in the late 1970s when they found themselves rediscovering synchronizatin and readers &amp;amp; writers problems that the operating systems community had solved ten years earlier.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Compilers class will make you work on one BIG program, with lots of pieces that all have to hang together.  It will also give you appreciation of programming language issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd strongly recommend learning some LISP (and/or Scheme. a particularly nice dialect of LISP).  Whether you do this in the context of an Artificial Intelligence class or not is up to you.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-12-27T18:53:53.957" />
  <row Id="30725" PostTypeId="2" ParentId="25509" CreationDate="2010-12-27T18:55:08.217" Score="1" ViewCount="" Body="&lt;p&gt;As a Java programmer, I initially found Scala interesting.  However, after dabbling with it for awhile (and running into nearly all the positives/negatives already listed by others), I was left feeling very &quot;meh&quot; towards it.  The language improvements are offset by the lower availability of toolsets.  I just couldn't come up with any defining reason to switch over.  It's good, but it's not &quot;better enough&quot; to make a case for switching.  Doesn't have that subjective excitement factor either (like Clojure seems to).&lt;/p&gt;&#xA;" OwnerUserId="715" LastActivityDate="2010-12-27T18:55:08.217" />
  <row Id="30726" PostTypeId="2" ParentId="30210" CreationDate="2010-12-27T19:00:36.843" Score="5" ViewCount="" Body="&lt;p&gt;The IDE for a programming language usually these days has a compiler running in the background somehow, so that it cn provide analysis services like syntax colouring, IntelliSense, errors, and so on. Obviously such a compiler needs to be able to make sense of deeply broken code; most of the time when editing, code is not correct. But we still have to make sense of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, usually the error recovery feature is only used during editing; it doesn't make a lot of sense to allow that for actual compilation in &quot;mainline&quot; scenarios.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interestingly, we did build that feature into the JScript.NET compiler; basically it is possible to put the compiler into a mode where we allow the compiler to proceed even if an error is encountered, if the IDE would have recovered from it. You can type &lt;em&gt;Visual Basic&lt;/em&gt; code in, run the JScript.NET compiler on it, and have a reasonable chance of a working program coming out the other end! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is an amusing demo, but it turns out to be not a very good feature for &quot;mainline&quot; scenarios for a lot of reasons. A full explanation would be quite lengthy; the brief explanation is that it makes for programs that work &lt;em&gt;unpredictably&lt;/em&gt; and &lt;em&gt;by accident&lt;/em&gt;, and it makes it hard to run the same code through multiple compilers, or multiple versions of the same compiler. The large expenses the feature adds are not justified by the small benefits. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Peter Torr, who PM'd the feature back in the day, discusses it briefly &lt;a href=&quot;http://blogs.msdn.com/b/ptorr/archive/2003/09/14/56184.aspx&quot; rel=&quot;nofollow&quot;&gt;in this blog posting from 2003&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Though we do expose this feature via the script hosting APIs of the JScript .NET engine, I don't know of any real customers that ever used it.&lt;/p&gt;&#xA;" OwnerUserId="6505" LastEditorUserId="6505" LastEditorDisplayName="" LastEditDate="2011-01-31T16:44:08.220" LastActivityDate="2011-01-31T16:44:08.220" CommentCount="4" />
  <row Id="30727" PostTypeId="2" ParentId="28703" CreationDate="2010-12-27T19:10:56.107" Score="2" ViewCount="" Body="&lt;p&gt;Do not outsource your testing.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Load testing is best done locally on the actual servers before you go live.  This requires root access within the security envelope.  Your local network will be capable of generating many more requests on your LAN than could ever come through the internet.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The right choice of tool depends on your total environment, but as soon as you hit a performance issue you'll need intimate knowledge of the code to diagnose it anyhow, which a third-party won't be able to do.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, in most apps, true stress testing needs to across your whole architecture, so you'll need to do things like fill up your database with far more records than you'll ever expect to have (by a few orders of magnitude) to test indexes, caching, etc. on the back-end, too.&lt;/p&gt;&#xA;" OwnerUserId="11376" LastActivityDate="2010-12-27T19:10:56.107" />
  <row Id="30728" PostTypeId="2" ParentId="30345" CreationDate="2010-12-27T19:14:27.050" Score="1" ViewCount="" Body="&lt;p&gt;I worked in a team with a closed source game that I loved and the lead developer mentored me, and helped me improve my skills after I asked him too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He suggested, and I adopted the Zend Framework's Coding Style (http://framework.zend.com/manual/en/coding-standard.html) &lt;/p&gt;&#xA;" OwnerUserId="3542" LastActivityDate="2010-12-27T19:14:27.050" />
  <row Id="30729" PostTypeId="2" ParentId="30345" CreationDate="2010-12-27T19:22:10.333" Score="1" ViewCount="" Body="&lt;p&gt;I ended up adopting characteristics of different styles - including styles reflected on MSDN. I then set up templates in VS that provide my &lt;code&gt;#region/#endregion&lt;/code&gt; blocks and anything else that is preferable.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I continue to study other styles that I encounter through research and reading. If I think there is something that stands out and could improve my style in readability, maintenance, or organization, I try it out. If a new style adjustment is in order, I will update templates in VS or make mental notes.  &lt;/p&gt;&#xA;" OwnerUserId="8031" LastActivityDate="2010-12-27T19:22:10.333" />
  <row Id="30730" PostTypeId="2" ParentId="30345" CreationDate="2010-12-27T19:23:09.163" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Reading the DOOM source code.&lt;/li&gt;&#xA;&lt;li&gt;Reading everything else I could lay my hands on, picking out the parts that worked.&lt;/li&gt;&#xA;&lt;li&gt;Functioning alcoholism.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;When coding alone, I aim for brevity; Spartan Programming may be &lt;a href=&quot;http://www.codinghorror.com/blog/2008/07/spartan-programming.html&quot; rel=&quot;nofollow&quot;&gt;complete, batshit insanity&lt;/a&gt;... But it's probably the closest familiar thing to my creed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When coding with others, especially maintenance coding, I aim to be a chameleon - my changes should improve what they modify, without looking out of place. &lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-12-27T19:23:09.163" />
  <row Id="30731" PostTypeId="2" ParentId="29839" CreationDate="2010-12-27T19:27:26.197" Score="0" ViewCount="" Body="&lt;p&gt;They seem to be marginally useful at expressing the complexity of a given system/component, and can help managers/team leads apportion work, but they're not really any more useful than any other synthetic/arbitrary metrics (SLOC, Cyclomatic Complexity, etc.)  That is, they may give an indication of the relative amount of effort required for specific parts of a system, but there's no way to map them to concrete estimates.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2010-12-27T19:27:26.197" />
  <row Id="30732" PostTypeId="2" ParentId="30336" CreationDate="2010-12-27T19:29:13.273" Score="0" ViewCount="" Body="&lt;p&gt;Somewhat of a second answer...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;@MainMa Of course there is, actually there are many ways to evaluate and assess software quality, those are software development processes that go from the highly regarded Scrum, to the less practical and more rigid (but perhaps more objective) PSP (for personal code) &amp;amp; TSP (for team code). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, one must define the type of &lt;a href=&quot;http://en.wikipedia.org/wiki/Software_quality#Software_quality_factors&quot; rel=&quot;nofollow&quot;&gt;software quality factor&lt;/a&gt; one is seeking, then pursue it with the right tools. For personal code, try the Personal Software Process but ditch the fugly paper forms for modern documentation such as UML, BPMN, etc., or even apply &lt;a href=&quot;http://www.agileadvice.com/archives/2006/07/personal_scrum.html&quot; rel=&quot;nofollow&quot;&gt;Scrum in a personal fashion&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;@gruszczy Perhaps with your case, I'd seek &lt;a href=&quot;http://chem-bla-ics.blogspot.com/2010/05/github-simplifies-code-review-and.html&quot; rel=&quot;nofollow&quot;&gt;a code repository hosting site that support a good code review workflow, such as github&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Code reviews and TDD&lt;/strong&gt;, I think, &lt;strong&gt;are some of the best practices happening in open source projects right now&lt;/strong&gt;, because they both keep the code &lt;strong&gt;alive&lt;/strong&gt; and &lt;strong&gt;healthy&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="10869" LastEditorUserId="10869" LastEditorDisplayName="" LastEditDate="2010-12-27T19:37:43.903" LastActivityDate="2010-12-27T19:37:43.903" />
  <row Id="30733" PostTypeId="2" ParentId="30245" CreationDate="2010-12-27T19:30:09.703" Score="1" ViewCount="" Body="&lt;p&gt;I'm not terribly fond of them personally: I prefer denser texts that allow me to absorb information very quickly.  However, I've been coding since age 6 and am accustomed to picking up new skills/languages on the fly.  The exercises are a waste on me (if I'm learning foo, it's because I need to use foo for something -- &lt;em&gt;that&lt;/em&gt; is my exercise).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many newbies I know swear by the Head First series, for exactly the reasons I dislike it: the language isn't very dense, so (to the newbie) it feels more approachable, and there are plenty of exercises to practice with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, it comes down to your learning style: do you like to wander around a subject to get your bearings, try some exercises, and take it slow, or do you want a dense manual from which to launch into some project-at-hand?  Head First books are good for the former, not for the latter.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-27T19:30:09.703" />
  <row Id="30734" PostTypeId="2" ParentId="29839" CreationDate="2010-12-27T19:41:08.830" Score="0" ViewCount="" Body="&lt;p&gt;Personally, I estimate with &lt;a href=&quot;http://www.pomodorotechnique.com/&quot; rel=&quot;nofollow&quot;&gt;Pomodoros&lt;/a&gt;, and it actually works really well, since it also helps to estimate costs better.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-27T19:41:08.830" />
  <row Id="30735" PostTypeId="2" ParentId="30210" CreationDate="2010-12-27T19:46:22.730" Score="3" ViewCount="" Body="&lt;p&gt;While not quite the same thing, this is sort of why HTML turned into the disaster it is. Browsers tolerated bad markup and next thing you knew, browser A couldn't render the same way Browser B did (yes there's other reasons, but this was one of the top few, esp around 10 years ago before some of the looseness rules became convention). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Eric Lippert infers, many of these things are best handled by the IDE, not the compiler. That let's you see what the automatic bits are attempting to screw up for you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The strategy I think that is predominant now is continual language refinement instead of loosening up the compiler: If it truly is something that the compiler can figure out automatically, then introduce a well defined language construct around it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The immediate example that comes to mind is auto-properties in C# (not the only language that has something similar): Given that the majority of getters/setters in any app are really just wrappers around a field, just allow the developer to indicate their intent and let the compiler inject the rest. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which then gets me to thinking: Most C style languages already do this to some extent. For things that can be figured out automatically, just refine the syntax:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; if (true == x)&#xA; {&#xA;    dothis();&#xA; }&#xA; else&#xA; {&#xA;    dothat();&#xA; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Can be reduced to:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (true == x)&#xA;    dothis();&#xA;else&#xA;    dothat();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In the end, I think it comes down to this: The trend is that you don't make the compiler &quot;smarter&quot; or &quot;looser&quot;. It's the &lt;em&gt;language&lt;/em&gt; that is made smarter or looser. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, too much &quot;help&quot; can be dangerous, such as the classic &quot;if&quot; bug:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (true == x)&#xA;    if (true == y)&#xA;       dothis();&#xA;else&#xA;    dothat();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-12-27T19:46:22.730" CommentCount="2" />
  <row Id="30736" PostTypeId="2" ParentId="30345" CreationDate="2010-12-27T19:59:46.433" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;How did you define and find your coding style?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;By focusing on simplicity and readability (readability !== understandability, see &lt;a href=&quot;http://ssdl-wiki.cs.technion.ac.il/wiki/index.php/Spartan_programming&quot; rel=&quot;nofollow&quot;&gt;Spartan Programming&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How do you keep augmenting and improving it?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;By reviewing others' and my own code (and even coding standards themselves).&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How do you maintain it? (From mental notes, keeping a document, using a tool like StyleCop etc.)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I use &lt;a href=&quot;http://www.dokuwiki.org/&quot; rel=&quot;nofollow&quot;&gt;dokuwiki&lt;/a&gt;, a breeze to setup (no database), hierarchical structure, granular control (ACL out of the box), really nice looks, and well, its a wiki, so anyone can contribute. Also, contributions/changes are always under consensus and justified, based on simplicity and readability.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-27T19:59:46.433" CommentCount="1" />
  <row Id="30737" PostTypeId="1" CreationDate="2010-12-27T20:07:28.080" Score="9" ViewCount="476" Body="&lt;p&gt;Python use of indentation for code scope was initially very polemic and now is considered one of the best language features, because it helps ( almost by forcing us ) to have a consistent style. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, I saw this post  &lt;a href=&quot;http://bit.ly/hmvTe9&quot; rel=&quot;nofollow&quot;&gt;http://bit.ly/hmvTe9&lt;/a&gt; where someone posted Java code with ; y {} aligned to the right margin to look more pythonic. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was very shocking at first ( as a matter of fact, if I ever see Java code like that in one of my projects I would be scared! )  However, there is something interesting here. Do we need all those braces and semicolons?  How would the code would look like without them? &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Person&#xA;  int age&#xA;&#xA;  void greet( String a )  &#xA;    if( a == &quot;&quot; )  &#xA;      out.println(&quot;Hello stranger&quot;)&#xA;    else  &#xA;      out.printf(&quot;Hello %s%n&quot;, a )&#xA;&#xA;  int age()  &#xA;    return this.age&#xA;&#xA;class Main  &#xA;   void main()  &#xA;       new Person().greet(&quot;&quot;)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Looks good to me, but in such small piece of code is hard to appreciate it, and since I don't Python too much, I can't tell by looking at existing libraries if it would be cleaner or not.   So I took the &lt;a href=&quot;http://jalarms.svn.sourceforge.net/viewvc/jalarms/maven-project/src/main/java/com/solab/alarms/AlarmMemcachedClient.java?revision=59&amp;amp;content-type=text/plain&amp;amp;pathrev=59&quot; rel=&quot;nofollow&quot;&gt;first file&lt;/a&gt; of a library named:  &lt;a href=&quot;http://jalarms.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;jAlarms&lt;/a&gt; I found and this is the result: ( &lt;b&gt;WARNING&lt;/b&gt; :  the following image may be disturbing for some people ) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://pxe.pastebin.com/eU1R4xsh&quot; rel=&quot;nofollow&quot;&gt;http://pxe.pastebin.com/eU1R4xsh&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously it doesn't compile. This would be a compiling version using right aligned {} and ; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://pxe.pastebin.com/2uijtbYM&quot; rel=&quot;nofollow&quot;&gt;http://pxe.pastebin.com/2uijtbYM&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Question&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would happen if we could code like this? Would it make things clearer?  Would it make it harder? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I see braces, and semicolons as help to the parser and we, as humans have get used to them, but do we really need them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess is hard to tell specially since many mainstream languages do use braces, C, C++, Java, C# JavaScript &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming the compiler wouldn't have problems without them, would you use them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please comment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt; By the way I have just remember about &lt;a href=&quot;http://jashkenas.github.com/coffee-script/documentation/docs/command.html&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; language that does something similar for JavaScript.  &lt;/p&gt;&#xA;" OwnerUserId="82" LastEditorUserId="82" LastEditorDisplayName="" LastEditDate="2010-12-28T03:33:25.813" LastActivityDate="2010-12-28T21:31:12.430" ClosedDate="2010-12-28T23:29:53.233" Title="Pythonic Java. Yes, or no?" Tags="&lt;java&gt;&lt;python&gt;&lt;curly-braces&gt;&lt;readability&gt;" AnswerCount="7" CommentCount="24" FavoriteCount="1" />
  <row Id="30738" PostTypeId="2" ParentId="30297" CreationDate="2010-12-27T20:15:17.807" Score="1" ViewCount="" Body="&lt;p&gt;With game design, the overhead of 1000's of function calls, and event listeners can sometimes make it worth it to have classes that only store data, and have other classes that loop through all the data only classes to perform the logic.&lt;/p&gt;&#xA;" OwnerUserId="2188" LastActivityDate="2010-12-27T20:15:17.807" />
  <row Id="30739" PostTypeId="2" ParentId="30737" CreationDate="2010-12-27T20:19:48.040" Score="10" ViewCount="" Body="&lt;p&gt;The only problem that I see with this is that things that depend on vertical whitespace for proper style formatting would not work.  Consider &lt;a href=&quot;http://en.wikipedia.org/wiki/Fluent_interface#Java&quot; rel=&quot;nofollow&quot;&gt;this fluent interface example&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public Collection&amp;lt;Student&amp;gt; findStudents(String name, int age, Gender gender) &#xA;{&#xA;    return em.createNamedQuery(&quot;Student.findByNameAgeGender&quot;)&#xA;             .setParameter(&quot;name&quot;, name)&#xA;             .setParameter(&quot;age&quot;, age)&#xA;             .setParameter(&quot;gender&quot;, gender)&#xA;             .setFirstResult(1)&#xA;             .setMaxResults(30)&#xA;             .setHint(&quot;hintName&quot;, &quot;hintValue&quot;)&#xA;             .getResultList();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;To fix this, the compiler would have to detect the presence of the periods, and backtrack.  Which might work &lt;em&gt;for this particular scenario,&lt;/em&gt; but long lines of code could not arbitrarily be broken into separate lines anymore, since whitespace is now significant.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-27T20:25:36.563" LastActivityDate="2010-12-27T20:25:36.563" CommentCount="4" />
  <row Id="30740" PostTypeId="2" ParentId="29191" CreationDate="2010-12-27T20:21:49.323" Score="0" ViewCount="" Body="&lt;p&gt;Just found an incredible answer to this question from Tobias Mayer: &lt;a href=&quot;http://businesscraftsmanship.wordpress.com/2010/11/15/the-artful-organization/&quot; rel=&quot;nofollow&quot;&gt;http://businesscraftsmanship.wordpress.com/2010/11/15/the-artful-organization/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Artful Organization&#xA;Posted on November 15, 2010 by tobiasmayer| 6 Comments&#xA;In today’s business climate, the focus is no longer on manufacturing “stuff” but on generating and developing knowledge. The models we have successfully used in the past to run our businesses are now shown to be outmoded and not only unhelpful but actually detrimental to success [a].  We now need to think in new ways. We need to go beyond business management, business administration and business engineering and embrace business as an art form.  It is time to usher in the artful organization [b]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The artful organization fosters a culture of openness, trust and innovation; it is a place where creativity and joy flourish as happy equals to financial success. The artful organization employs extraordinary, and sometimes counter-intuitive ideas, juxtaposed with a pragmatic approach, and interwoven with ideas of beauty, style and form to generate the tension, energy and wonderment required to reinvent the world, as we all must do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The artful organization doesn’t require prescribed processes or new-fangled fix-all methodologies, it requires the spirit of inventiveness combined with human-centric qualities such as love, understanding and service.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I’d like to offer a set of values, principles and practices that I believe (through experience) provide a framework for change — a new approach to creating and sustaining a successful business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5 Values&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Courage — seek your edge; speak from your heart&lt;/li&gt;&#xA;&lt;li&gt;Trust — lead from a place of faith, not suspicion; follow likewise&#xA;C* ongruency — act with integrity, so your actions and your feelings are always in alignment&lt;/li&gt;&#xA;&lt;li&gt;Humility — acknowledge your uniqueness, celebrate your strengths, yet strive to be a worker amongst workers&lt;/li&gt;&#xA;&lt;li&gt;Service — Be alert to the needs of others; ask for and offer help in equal proportion, for service is in the receiving as much as in the giving&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;7 Principles&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Empiricism — experience coupled with frequent reflection allows an organization to learn fast and adapt in real time&lt;/li&gt;&#xA;&lt;li&gt;Self-Organization — those closest to the problem have the best knowledge and intuition of how to solve the problem; create cross-functional teams to maximize the potential of this principle&lt;/li&gt;&#xA;&lt;li&gt;Focus — a culture of abundance is created when we set priorities and minimize the amount of work in progress at any given time; completion generates happiness&lt;/li&gt;&#xA;&lt;li&gt;Transparency — the truly open organization fosters trust and courage, and banishes fear and suspicion&lt;/li&gt;&#xA;&lt;li&gt;Rhythm — a regular heartbeat leads to good health; flow follows cadence&lt;/li&gt;&#xA;&lt;li&gt;Tribal Knowledge — knowledge that is kept alive through story-telling is always current, always relevant; shared ideas grow and prosper&lt;/li&gt;&#xA;&lt;li&gt;Emergence — the best products and services are not defined, but evolve organically, adapting to their environments as they grow&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;5 Practices&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Listen — take time to hear the needs and ideas of others; ask open, exploratory questions; practice dialog beyond discussion&lt;/li&gt;&#xA;&lt;li&gt;Collaborate — cultivate a yes-and, because-of-that, help-me-to-see-it mindset; learn to play&lt;/li&gt;&#xA;&lt;li&gt;Reconceive — embrace conflict, rise above compromise&lt;/li&gt;&#xA;&lt;li&gt;Make Powerful Requests — express value, define well-formed outcomes, and create a clear separation between What and How&lt;/li&gt;&#xA;&lt;li&gt;Be Still — maximize the amount of work not done; breathe&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Applying this spiritual framework, or something like it to your business, and building processes and procedures on such a foundation will ensure you have the flexibility to stay alive and relevant, and avoid the danger of equilibrium [c].&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are no silver bullets. We all know that. There are no bullets at all, because there are no guns. We need new metaphors, and we need a new way of thinking. We have spent the last century forgetting art. Now it is time to remember — it is time to rediscover.&lt;/p&gt;&#xA;" OwnerUserId="11347" LastActivityDate="2010-12-27T20:21:49.323" />
  <row Id="30741" PostTypeId="1" AcceptedAnswerId="30756" CreationDate="2010-12-27T20:22:24.083" Score="2" ViewCount="150" Body="&lt;p&gt;Where can I learn more about pros/cons of various pricing models for software development? Proponents of agile methodology suggest approaches such as multi-stage contracts, target cost contracts, target schedule contracts, shared benefit contracts, variable scope contracts (&lt;a href=&quot;http://poppendieck.com/agilecontracts.htm&quot; rel=&quot;nofollow&quot;&gt;http://poppendieck.com/agilecontracts.htm&lt;/a&gt;). I'm looking for opinions, experience, case studies or informed discussion of these approaches.&lt;/p&gt;&#xA;" OwnerUserId="11806" LastEditorUserId="11806" LastEditorDisplayName="" LastEditDate="2010-12-27T23:07:50.250" LastActivityDate="2010-12-27T23:07:50.250" Title="What are the alternatives to fixed-price or time-and-materials contracts for software development?" Tags="&lt;project-management&gt;&lt;software-engineering&gt;&lt;agile&gt;&lt;business&gt;&lt;consulting&gt;" AnswerCount="1" CommentCount="3" FavoriteCount="2" />
  <row Id="30742" PostTypeId="1" AcceptedAnswerId="30982" CreationDate="2010-12-27T20:30:18.123" Score="6" ViewCount="197" Body="&lt;p&gt;Agile does not encourage a lot of up-front design.  This is good from a requirements management and software development standpoint, and allows the project to adapt to changing business needs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, how does one do any long range planning of resources if you don't really know what you're going to build when you start?  Oh sure, you have a conceptual model of what you're going to build, but you don't have any measurable detail from which to gague how many resources you will need to complete the project, or how much it will cost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone have any suggestions on how to go about long range planning in an agile environment?&lt;/p&gt;&#xA;" OwnerUserId="4368" LastActivityDate="2010-12-30T14:34:02.197" Title="How can you plan long range resources and budgets when using Agile methodology?" Tags="&lt;project-management&gt;&lt;agile&gt;&lt;planning&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="3" />
  <row Id="30743" PostTypeId="2" ParentId="118" CreationDate="2010-12-27T20:31:04.757" Score="0" ViewCount="" Body="&lt;p&gt;In the USA, unless you get a job for a software company, you won't be using standard methodologies for development, but you'll have to do things as fast as you can to meet the deadlines. z&lt;/p&gt;&#xA;" OwnerUserId="11808" LastActivityDate="2010-12-27T20:31:04.757" CommentCount="2" />
  <row Id="30744" PostTypeId="2" ParentId="30737" CreationDate="2010-12-27T20:38:25.933" Score="6" ViewCount="" Body="&lt;p&gt;The semicolons do seem redundant to me, but I'm not sure how much trouble it would be for compiler writers to get rid of them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Replacing braces with indentation is a different matter. A good IDE should be able to enter the close brace for you when you type in the open brace. The braces are also redundant if you indent the code to match program structure anyway, but this is actually the good kind of redundancy. As long as you have the braces matched and in the right places, the editor/IDE can re-create the indentation for you if necessary (e.g. after a refactor), but that doesn't work the other way around. Python coders say it's not a problem because they can just re-indent by hand, but I don't know that they've gained anything in compensation other than reducing keystrokes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're interested enough in this issue to post the question, it might be worth your while to spend more time with Python. &lt;a href=&quot;http://pysolfc.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Pysol&lt;/a&gt; might be a good place to start.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-27T20:38:25.933" />
  <row Id="30745" PostTypeId="2" ParentId="30345" CreationDate="2010-12-27T20:40:51.157" Score="0" ViewCount="" Body="&lt;p&gt;This is kind of a weird answer, but I took a really long time to actually pick up programming.  I spent a lot of time working in 'the arts' before considering myself a programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When coding, I tend to think in units like writing - paragraphs, phrases, etc.  Because of this, I'll spread code out over more lines in the pursuit of making it readable like a story/essay/etc.  I get really annoyed when developers try to cram as much as possible onto one line or into a small space, because it doesn't accomplish anything besides making the writer feel clever and annoying any future readers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I need to do something weird for the sake of efficiency, I'll comment it to explain why it's like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I probably won't get any upvotes for this but perhaps this will spark some discussion anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the technical side, like placement of brackets and such, I keep them aligned because the result is increased readability.&lt;/p&gt;&#xA;" OwnerUserId="11752" LastActivityDate="2010-12-27T20:40:51.157" />
  <row Id="30746" PostTypeId="2" ParentId="30742" CreationDate="2010-12-27T20:49:40.390" Score="0" ViewCount="" Body="&lt;p&gt;Try the &lt;a href=&quot;http://en.wikipedia.org/wiki/Getting_Things_Done&quot; rel=&quot;nofollow&quot;&gt;Get Things Done&lt;/a&gt; methodology by David Allen; I remembered a passage of his book (the first/main one about GTD) where he says something like &quot;being long term doesn't mean you have a lot of time to start doing it&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;GTD helps you think in actionable terms, so you can program actual tasks that you can do or program to do in a system of your own. This is GTD in a nutshell: &lt;a href=&quot;http://lifedev.net/gtd-cheatsheet/&quot; rel=&quot;nofollow&quot;&gt;http://lifedev.net/gtd-cheatsheet/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;GTD works for both life and work, and for shortest term to longest term as long as you keep thinking in actions, and not just things that worry you and/or your team. If you don't have a lot of time to read the book, get the audiobook, it is really worth it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also try &lt;a href=&quot;http://en.wikipedia.org/wiki/Scrum_%28development%29&quot; rel=&quot;nofollow&quot;&gt;Scrum&lt;/a&gt; (and even combine with GTD)... you make a list of features, box 'em in a month of development and end up with a working version of the product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, I'd recommend you to read &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0307463745&quot; rel=&quot;nofollow&quot;&gt;Rework&lt;/a&gt; by Jason Fried, where they talk a lot about prioritization and some informal project planning notions that are quite useful.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-27T20:49:40.390" />
  <row Id="30747" PostTypeId="2" ParentId="30742" CreationDate="2010-12-27T20:55:14.057" Score="7" ViewCount="" Body="&lt;p&gt;Agile has a concept of &quot;Release Planning&quot;. The entire team gets together to plan out an upcoming release. I've done for up to 2-3 months in advance. This is usually done after the product owner has determined the &quot;minimum viable product&quot; and they know exactly what has to be done in order to release the product. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The team can take the known stories or epic story. An epic is large story or feature that has not yet been fully defined. Maybe something like &quot;Allow international payments&quot;. Because this story or epic is so general, the estimates will be large and account for that. The team can do something called &quot;t-shirt&quot; sizes and give each epic a &quot;small&quot;, &quot;medium&quot; or &quot;large&quot;. This give the product owner some sense of the size of the stories in questions and allows the scrum master to make some estimates on what the actual release date will be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key is to start some where and continue to refine the story points or estimates as more information is know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a couple of links on release planning:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blog.mountaingoatsoftware.com/tag/agile-release-planning&quot; rel=&quot;nofollow&quot;&gt;http://blog.mountaingoatsoftware.com/tag/agile-release-planning&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.versionone.com/Agile101/Release_Planning.asp&quot; rel=&quot;nofollow&quot;&gt;http://www.versionone.com/Agile101/Release_Planning.asp&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8440" LastEditorUserId="8440" LastEditorDisplayName="" LastEditDate="2010-12-27T21:03:20.307" LastActivityDate="2010-12-27T21:03:20.307" CommentCount="2" />
  <row Id="30748" PostTypeId="2" ParentId="16354" CreationDate="2010-12-27T21:18:25.527" Score="1" ViewCount="" Body="&lt;p&gt;I've used both &lt;a href=&quot;http://www.rallydev.com/agile_products/editions/&quot; rel=&quot;nofollow&quot;&gt;Rally&lt;/a&gt; and &lt;a href=&quot;http://www.atlassian.com/software/jira/&quot; rel=&quot;nofollow&quot;&gt;JIRA&lt;/a&gt; with &lt;a href=&quot;http://www.atlassian.com/software/greenhopper/&quot; rel=&quot;nofollow&quot;&gt;Greenhopper&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll start with JIRA. JIRA is an excellent bug tracking tool. Greenhopper is an add-on that enables teams to begin working with agile. Because it was not designed as an agile tool from the ground up, some of the processes feel awkward. The tool is also time consuming and hard to use. However, it is extremely customizable. In general, it feels like a tool you have to cram you agile processes into.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rally was designed from the ground up to be an agile tool and it shows. It follows a lot of the agile processes extremely well and it complements the process. I've used this tool in an extremely agile organization and it allowed us to keep track of cross-team dependencies and complicated projects that involve several agile teams. Cross-team coordination is something other tools struggle with, but Rally has done this well. Also, Rally has an excellent web services based API. It allowed my team to write some custom software using Rally as our backend as well as generate some custom reports.&lt;/p&gt;&#xA;" OwnerUserId="8440" LastActivityDate="2010-12-27T21:18:25.527" />
  <row Id="30749" PostTypeId="2" ParentId="30101" CreationDate="2010-12-27T21:24:11.797" Score="4" ViewCount="" Body="&lt;p&gt;DISCLAIMER: as I've switched from PHP to Python (to never look back) a few years ago, my opinion is clearly biased.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think PHP is a nice and clever hack. As a hack, it started unpretentious and grew somewhat chaotically from a bunch of sparse libraries - lacking a well thought and unified design (from the computer language theory perspective). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, this design issues shows up from time to time, making some enhancements very hard to implement. As said by Machiavelli, &quot;he who has not first laid his foundations may be able with great ability to lay them afterwards, but they will be laid with trouble to the architect and danger to the building&quot;.&lt;/p&gt;&#xA;" OwnerUserId="10068" LastActivityDate="2010-12-27T21:24:11.797" CommentCount="2" />
  <row Id="30750" PostTypeId="2" ParentId="118" CreationDate="2010-12-27T21:31:13.287" Score="0" ViewCount="" Body="&lt;p&gt;Brazil is close to full employment right now, and the people is as noisy and annoying as Italians. :-)&lt;/p&gt;&#xA;" OwnerUserId="10068" LastActivityDate="2010-12-27T21:31:13.287" CommentCount="1" />
  <row Id="30751" PostTypeId="2" ParentId="30742" CreationDate="2010-12-27T21:41:53.597" Score="0" ViewCount="" Body="&lt;p&gt;In agile, this is called &lt;strong&gt;inspect and adapt.&lt;/strong&gt; Use history as your guide.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to know your speed before you can start making any assumption about how quick you can get to the goal. In other words, run through a couple of iterations to see how fast you are running and &lt;strong&gt;then&lt;/strong&gt; use that information to make plans. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The answer to your question is that you must first gather data before trying to do any long range planning. &lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-12-27T21:41:53.597" />
  <row Id="30752" PostTypeId="2" ParentId="29839" CreationDate="2010-12-27T21:43:14.270" Score="0" ViewCount="" Body="&lt;p&gt;I work in an organization where we introduced function points for calculating fixed price projects, i.e. customer and we count based on specs, agree the count and then multiply the #FP with a FP price in order to determine the project price. All this in an environment with two-digit Million Euro yearly project turnover. Intention is to remove ambiguity and negotiation from price determination which was a constant cause of friction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have done an initial calibration, evaluating about 2 years of project history worth two-digit Million Euro.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We clearly see that #FP and project costs correllate very indirectly. Deviations of +/- 50% are reasonably possible. However, we see (well we expect, or better: we hope) that in the long run function point counts and project costs converge. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are now in the process of rolling this out into the organization and experience (from a suppier point of view):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Discussions about applications of FP counting rules. There are standards on this, however, these are subject to neglectance if one cannot argue about prices directly.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Client impressions that prices went up, despite the efforts we spent and are spending in calibration and calibration verification. Suspected reason is that this procedure makes costs brutally clear, no way to hide, shift or cover costs in some &quot;don't ask&quot; or sutrategic projects. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Need to handle projects that do not cover their costs (50% undershoot...)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11810" LastActivityDate="2010-12-27T21:43:14.270" />
  <row Id="30753" PostTypeId="2" ParentId="30737" CreationDate="2010-12-27T21:47:37.540" Score="4" ViewCount="" Body="&lt;p&gt;I say &quot;Yes!&quot;. The braces aren't needed. But I'd go one step further and introduce Python colons for clarity:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Person:&#xA;  int age&#xA;&#xA;  void greet( String a ):&#xA;    if( a == &quot;&quot; ):&#xA;      out.println(&quot;Hello stranger&quot;)&#xA;    else:&#xA;      out.printf(&quot;Hello %s%n&quot;, a )&#xA;&#xA;  int age():&#xA;    return this.age&#xA;&#xA;class Main:&#xA;   void main():&#xA;       new Person().greet(&quot;&quot;)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Very readable! But obviously, this is not to be. Java's syntax was intentionally made to be very much like C/C++ so that programmers would recognize themselves, but not have to deal with C's pointer drawbacks. And that was obviously a good choice, since Java has become a great success.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-27T21:47:37.540" CommentCount="2" />
  <row Id="30754" PostTypeId="2" ParentId="16354" CreationDate="2010-12-27T22:00:58.673" Score="4" ViewCount="" Body="&lt;p&gt;Is it ok to answer &lt;strong&gt;none&lt;/strong&gt;? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You seem to imply that software tools are required for successful agile planning. I don't agree. If your team is using scrum or XP correctly (&quot;by the book&quot;), you shouldn't have to use any software tools at all for planning. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In many cases, adding software tools to an agile process is just a way to avoid having to deal with the actual underlying problem related to poor communication or trust. Such problems are best solved by other means.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My recommendation is to start without any digital tools and only add them later when you &lt;strong&gt;really&lt;/strong&gt; understand why you need them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Distributed teams are a special case)&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-12-27T22:00:58.673" />
  <row Id="30755" PostTypeId="2" ParentId="30254" CreationDate="2010-12-27T22:06:30.933" Score="8" ViewCount="" Body="&lt;p&gt;Since no one has looked at it from this angle, I'll rephrase your question: &lt;strong&gt;why put something into the language if you can do it in a library?&lt;/strong&gt; Ignoring specific implementation and syntactic details, GC/smart pointers is basically a special case of that question. Why define a garbage collector in the language itself if you can implement it in a library?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a couple of answers to that question. The most important first:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;You ensure that all code can use it to interoperate.&lt;/strong&gt; This is, I think, &lt;em&gt;the&lt;/em&gt; big reason why code reuse and code sharing didn't really take off until Java/C#/Python/Ruby. Libraries need to communicate, and the only reliable shared language they have is what's in the language spec itself (and, to a degree, its standard library). If you've ever tried to reuse libraries in C++, you've likely experienced the horrendous pain that no standard memory semantics causes. I want to pass a struct to some lib. Do I pass a reference? Pointer? &lt;code&gt;scoped_ptr&lt;/code&gt;? &lt;code&gt;smart_ptr&lt;/code&gt;? Am I passing ownership, or not? Is there a way to indicate that? What if the lib needs to allocate? Do I have to give it an allocator? By not making memory management part of the language, C++ forces each pair of libraries to have to negotiate their own specific strategy here, and it's really hard to get them all to agree. GC makes that a complete non-issue.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;You can design the syntax around it.&lt;/strong&gt; Because C++ doesn't encapsulate memory-management itself, it has to provide a range of syntactic hooks to let user-level code express all of the details. You have pointers, references, &lt;code&gt;const&lt;/code&gt;, dereferencing operators, indirection operators, address-of, etc. If you roll memory management into the language itself, the syntax can be designed around that. All of those operators disappear and the language gets cleaner and simpler.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;You get a high return on investment.&lt;/strong&gt; The value any given piece of code generates is multiplied by the number of people using it. This means that the more users you have, the more you can afford to spend on a piece of software. When you move a feature into the language, &lt;em&gt;all&lt;/em&gt; users of the language will be using it. This means you can allocate more effort to it than you could to a library only used by a subset of those users. This is why languages like Java and C# have absolutely first-rate VMs and fantastically high-quality garbage collectors: the cost of developing them is amortized across millions of users.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2326" LastActivityDate="2010-12-27T22:06:30.933" CommentCount="2" />
  <row Id="30756" PostTypeId="2" ParentId="30741" CreationDate="2010-12-27T22:22:01.910" Score="2" ViewCount="" Body="&lt;p&gt;Take a look at &lt;a href=&quot;http://agilesoftwaredevelopment.com/blog/peterstev/10-agile-contracts&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; comparison of 10 different contracts. The author shows some variations such as &quot;Time and Materials with Variable Scope and Cost Ceiling&quot; and the likable &quot;Money for Nothing, Changes for Free&quot; contract. &lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-12-27T22:22:01.910" />
  <row Id="30757" PostTypeId="2" ParentId="30737" CreationDate="2010-12-27T22:25:29.083" Score="2" ViewCount="" Body="&lt;p&gt;I think this is a ridiculous change for the sake of change.  What is wrong with the braces?  What happens with the &quot;find matching brace&quot; shortcut?  What is the benefit?&lt;/p&gt;&#xA;" OwnerUserId="11814" LastActivityDate="2010-12-27T22:25:29.083" CommentCount="5" />
  <row Id="30758" PostTypeId="1" CreationDate="2010-12-27T23:02:36.587" Score="4" ViewCount="154" Body="&lt;p&gt;I've noticed that there is a gap between getting formal education in computer science as a student and entry-level/junior programming jobs. Obviously entry-level programming requires that you know some programming but how much do you need to break in?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm in a QA non-coding role with basically a minor in CS, looking to improve my own programming skills to eventually switch industries.  However I'm completely at a loss as to what I should be focusing on learning and am curious as to the steps other people have taken to get experience post-undergrad.&lt;/p&gt;&#xA;" OwnerUserId="11817" LastActivityDate="2010-12-28T00:54:25.493" ClosedDate="2010-12-28T23:22:33.000" Title="Breaking in to Programming" Tags="&lt;career-advice&gt;" AnswerCount="2" />
  <row Id="30759" PostTypeId="2" ParentId="29707" CreationDate="2010-12-27T23:11:31.743" Score="3" ViewCount="" Body="&lt;p&gt;Currently I'm using MEF in a few projects that incorporate the Repository pattern.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One is using different repository types while unit testing, the other project is using local (straight to DB), remote (WCF) and testing repositories.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both projects can change their repository types via code or configuration, and is based on  MEF metadata/ Lazy types.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To date, both projects are running incredibly well.&lt;/p&gt;&#xA;" OwnerUserId="9326" LastEditorUserId="9326" LastEditorDisplayName="" LastEditDate="2010-12-28T10:18:05.220" LastActivityDate="2010-12-28T10:18:05.220" />
  <row Id="30760" PostTypeId="2" ParentId="28855" CreationDate="2010-12-27T23:17:32.600" Score="1" ViewCount="" Body="&lt;p&gt;It's never too late.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless a massive EMP brings us back to the stone age, and even in that case, &lt;a href=&quot;http://forums.xkcd.com/viewtopic.php?f=7&amp;amp;t=30588&amp;amp;sid=6706706d2248a9658fdaa67d02022f68&quot; rel=&quot;nofollow&quot;&gt;XKCD has the solution&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/uLzlw.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="9094" LastActivityDate="2010-12-27T23:17:32.600" />
  <row Id="30763" PostTypeId="2" ParentId="30758" CreationDate="2010-12-27T23:37:58.477" Score="8" ViewCount="" Body="&lt;p&gt;Learn a programming language.  Seriously.  It doesn't much matter which one; pick one you like.  If you have a math background, consider learning one of the Scheme variants.  Otherwise, learn Java, C# or Python.  Learn how to create a user interface, on the desktop and on the web.  Learn the basics of web design with HTML and CSS.  Study some of the excellent web frameworks that are available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write some small programs.  Study an introductory text if you like; there are many good ones.  From there, two things will happen.  First, you will begin to discover the surrounding technologies and open source projects, like CastleProject.  You will find out about databases, like SQLite and PostGresql, and will begin learning the SQL language.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, you will find out whether or not you really like programming.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This process will take several months to a year.  After that, if you still like it, you should have a little experience under your belt, and can begin applying for entry-level coding positions, or changing jobs at your existing company.  By then, you will know what you need to do.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-27T23:37:58.477" />
  <row Id="30764" PostTypeId="1" AcceptedAnswerId="30765" CreationDate="2010-12-27T23:38:22.643" Score="5" ViewCount="274" Body="&lt;p&gt;About to embark on the initial phases of a project to rewrite a legacy application from the ground up (existing business rules will change somewhat, and be extended to incorporate a large number of new requirements that the existing infrastructure cannot handle). I am looking for items that are important to remember when working to reengineer an existing application.&lt;/p&gt;&#xA;" OwnerUserId="6518" LastEditorUserId="6518" LastEditorDisplayName="" LastEditDate="2010-12-28T01:09:37.727" LastActivityDate="2010-12-28T04:50:20.650" Title="What are important things to remember when reengineering a legacy application?" Tags="&lt;programming&gt;&lt;design&gt;&lt;requirements&gt;&lt;legacy&gt;" AnswerCount="8" CommentCount="6" FavoriteCount="2" />
  <row Id="30765" PostTypeId="2" ParentId="30764" CreationDate="2010-12-27T23:41:11.763" Score="13" ViewCount="" Body="&lt;p&gt;Write a suite of unit tests for the existing functionality &lt;em&gt;first.&lt;/em&gt;  When you do your rewrite, you can use this unit test suite to verify that your existing business rules still work in the new application.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-27T23:41:11.763" CommentCount="1" />
  <row Id="30766" PostTypeId="2" ParentId="27564" CreationDate="2010-12-27T23:48:15.923" Score="1" ViewCount="" Body="&lt;p&gt;In most comments i see that people want php to be like ruby.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Santa Claus please DON'T do that!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP is ok for me, the way it is.&lt;/p&gt;&#xA;" OwnerUserId="11822" LastActivityDate="2010-12-27T23:48:15.923" CommunityOwnedDate="2010-12-27T23:48:15.923" />
  <row Id="30768" PostTypeId="2" ParentId="30764" CreationDate="2010-12-28T00:18:17.663" Score="8" ViewCount="" Body="&lt;p&gt;Come up with an &lt;strong&gt;incremental transition plan&lt;/strong&gt;. That is, make it so the project is always in a runnable state, transitioning from old code to new code without getting in the position of requiring effectively all of the new code to be written first before anything works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There might be some things still done &quot;the old way,&quot; while other features are done &quot;the new way,&quot; and the user interface might be less than desirable for a while. But this approach will significantly reduce your risk, because you can always ship something. (Actually, if you have a gradual UI transition too, this might work nicely with Joel's notion of &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000356.html&quot; rel=&quot;nofollow&quot;&gt;the Iceberg Effect&lt;/a&gt;: management/customers will see progress and have a notion of what remains to be done.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This depends somewhat on the circumstances of your code base, but look carefully before deciding if this base is the exception to the rule or not, because it probably isn't.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-28T00:18:17.663" />
  <row Id="30769" PostTypeId="1" CreationDate="2008-11-12T17:56:22.950" Score="45" ViewCount="316" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/39/whats-your-favourite-quote-about-programming&quot;&gt;What&amp;#39;s your favourite quote about programming?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;There are many quotes from famous computer scientists that have become the wisdom that guides our profession.  For example:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Premature optimization is the root of&#xA;  all evil in programming.&quot;  &lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;Donald Knuth (citing Hoare's Dictum)&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;  &#xA;  &lt;p&gt;&quot;Everyone knows that debugging is&#xA;  twice as hard as writing a program in&#xA;  the first place. So if you're as&#xA;  clever as you can be when you write&#xA;  it, how will you ever debug it?&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;Brian Kernighan&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And so on.  My question is, what are your favorite words of wisdom about programming from someone who is &lt;strong&gt;not&lt;/strong&gt; famous?  Was it a friend, a coworker, or a teacher, or a family member?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, a technical writer friend of mine said:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;You can't get the right answers unless you ask the right questions.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Thanks for all the contributions!  The answer I selected was (a) specifically coding-related, and (b) stated by someone who is not technically famous (though he has a popular blog and a podcast and runs StackOverflow).  I.e. he's no Bill Gates or Yogi Berra.&lt;/p&gt;&#xA;" OwnerUserId="471" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T17:56:22.950" ClosedDate="2010-12-28T14:41:53.343" Title="Nuggets of wisdom?" Tags="&lt;quotes&gt;&lt;wisdom&gt;" AnswerCount="78" CommentCount="8" />
  <row Id="30770" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T17:58:06.520" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=programming+quotes&quot; rel=&quot;nofollow&quot;&gt;http://www.google.com/search?hl=en&amp;amp;q=programming+quotes&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And in honor of our fearless leader....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/archives/000855.html&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/archives/000855.html&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T17:58:06.520" CommentCount="3" />
  <row Id="30771" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T18:00:43.113" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/archives/001172.html&quot; rel=&quot;nofollow&quot;&gt;Programming is hard, let's go shopping!&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T18:00:43.113" />
  <row Id="30772" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T18:17:27.633" Score="3" ViewCount="" Body="&lt;p&gt;Bugs? My code doesn't have bugs. It has randomly generated, undocumented features!&lt;/p&gt;&#xA;" OwnerUserId="23367" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T18:17:27.633" />
  <row Id="30773" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T18:23:10.290" Score="57" ViewCount="" Body="&lt;p&gt;To understand recursion, you must first understand recursion.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T18:23:10.290" CommentCount="6" />
  <row Id="30774" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T18:35:56.460" Score="8" ViewCount="" Body="&lt;p&gt;Can't remember where I heard it, must have been during some tech talk I've watched sometime before.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Regardless of how smart, creative, and innovative your organization is, there are more smart, creative, and innovative people outside your organization than inside.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Encourages open source work, peer review, reminds me not to try and reinvent the wheel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Every single time I have been clever I have regretted it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Can't remember who told this one either.&lt;/p&gt;&#xA;" OwnerUserId="12545" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T18:35:56.460" CommentCount="1" />
  <row Id="30775" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T18:37:43.990" Score="4" ViewCount="" Body="&lt;p&gt;Quidquid latine dictum sit, altum sonatur.&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T18:37:43.990" CommentCount="4" />
  <row Id="30776" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T18:38:12.757" Score="19" ViewCount="" Body="&lt;p&gt;Always make sure the shower curtain is on the inside.&lt;/p&gt;&#xA;" OwnerUserId="15097" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T18:38:12.757" CommentCount="1" />
  <row Id="30777" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T18:45:50.090" Score="18" ViewCount="" Body="&lt;p&gt;&quot;The software will ship in July, we just don't know of what year.&quot;&lt;/p&gt;&#xA;" OwnerUserId="11043" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T18:45:50.090" CommentCount="1" />
  <row Id="30778" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T18:49:03.623" Score="43" ViewCount="" Body="&lt;p&gt;Never be afraid to say &quot;&lt;strong&gt;I don't understand&lt;/strong&gt;&quot;.&lt;/p&gt;&#xA;" OwnerUserId="4090" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T18:49:03.623" />
  <row Id="30779" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T18:51:29.470" Score="6" ViewCount="" Body="&lt;p&gt;Another classic: &quot;640K is Enough For Anyone&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Althought the quote is not verified, and probably wrong, it is a significant portion of computer science history.&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T18:51:29.470" CommentCount="2" />
  <row Id="30780" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T18:57:37.710" Score="18" ViewCount="" Body="&lt;p&gt;Some people, when confronted with a problem, think &quot;I know, I’ll use regular expressions.&quot; Now they have two problems. --Jamie Zawinski&lt;/p&gt;&#xA;" OwnerUserId="12899" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T18:57:37.710" CommentCount="5" />
  <row Id="30781" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T18:59:50.780" Score="3" ViewCount="" Body="&lt;p&gt;An of course Murphy's law: &quot;Anything that can go wrong, will go wrong at the worst possible moment.&quot;&lt;/p&gt;&#xA;" OwnerUserId="1476" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T18:59:50.780" CommentCount="1" />
  <row Id="30782" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T19:02:36.840" Score="33" ViewCount="" Body="&lt;p&gt;Not directly development-related, but true all the same...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A computer lets you make more mistakes faster than any other invention in human history, with the possible exceptions of handguns and tequila.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T19:02:36.840" CommentCount="1" />
  <row Id="30783" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T19:14:32.560" Score="5" ViewCount="" Body="&lt;p&gt;ILLEGITIMI NON CARBORUNDUM&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T19:14:32.560" CommentCount="1" />
  <row Id="30784" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T19:16:22.057" Score="1" ViewCount="" Body="&lt;p&gt;In order to understand recursion, you must first understand recursion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Damn, beat to the punch, I should read these threads first.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T19:16:22.057" CommentCount="1" />
  <row Id="30785" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T19:38:42.917" Score="3" ViewCount="" Body="&lt;p&gt;Don't know whether it is not famous, but it is good advice anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;make it work, make it pretty, make it fast&lt;/code&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T19:38:42.917" CommentCount="1" />
  <row Id="30786" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T19:57:06.293" Score="72" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;The first 90% of the code accounts&#xA;  for the first 90% of the development&#xA;  time. The remaining 10% of the code&#xA;  accounts for the other 90% of the&#xA;  development time.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(Tom Cargill)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because it is scarily true!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T19:57:06.293" CommentCount="3" />
  <row Id="30787" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T19:58:06.120" Score="6" ViewCount="" Body="&lt;p&gt;The much underrated:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;If you build it, they will come&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(Field of dreams?)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T19:58:06.120" CommentCount="3" />
  <row Id="30788" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T20:01:10.093" Score="43" ViewCount="" Body="&lt;p&gt;I Believe Jeff Atwood said it&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Code doesn't exist until it's checked&#xA;  into source control.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've lost so much interesting software that I've written over the years simply because I never had a system of storing it.  Over the last 2 years, I've made sure that just about every thing, including scripts that I've written, have been stored under source control.&lt;/p&gt;&#xA;" OwnerUserId="3873" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T20:01:10.093" CommentCount="3" />
  <row Id="30789" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T20:06:20.300" Score="58" ViewCount="" Body="&lt;p&gt;&quot;Fast, good, cheap: pick any two.&quot;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T20:06:20.300" CommentCount="4" />
  <row Id="30790" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T20:06:56.557" Score="44" ViewCount="" Body="&lt;p&gt;Another one of my favourites is from &lt;a href=&quot;http://blogs.msdn.com/larryosterman/archive/2004/03/30/104165.aspx&quot; rel=&quot;nofollow&quot;&gt;Larry Osterman&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;One in a million is next Tuesday&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Basically what he meant was computers operate at such high speeds, with so many people using one system, that even bugs that occur only once in a million, still come up quite frequently.&lt;/p&gt;&#xA;" OwnerUserId="3873" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T20:06:56.557" CommentCount="1" />
  <row Id="30791" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T20:07:26.943" Score="4" ViewCount="" Body="&lt;p&gt;My bit o' wisdom would be this: Don't fix what ain't broke.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T20:07:26.943" />
  <row Id="30792" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T20:18:51.460" Score="32" ViewCount="" Body="&lt;p&gt;I saw a quote on here about an app. &#xA;&quot;Software by Stephen King, Interface by Salvador Dali&quot;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T20:18:51.460" CommentCount="5" />
  <row Id="30793" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T20:30:45.947" Score="6" ViewCount="" Body="&lt;p&gt;I don't believe in documentation; if it was hard to &lt;em&gt;write&lt;/em&gt;, it should be hard to &lt;em&gt;read&lt;/em&gt;.  Why do you think they call it &quot;code&quot;?&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-13T00:04:55.373" CommentCount="3" />
  <row Id="30794" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T20:33:33.773" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A computer is like a sewer.  What you get &lt;em&gt;out&lt;/em&gt; of it depends on what you put &lt;em&gt;into&lt;/em&gt; it. -- &lt;em&gt;Paraphrased from Tom Lehrer&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-13T00:04:55.373" />
  <row Id="30795" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T20:34:41.303" Score="24" ViewCount="" Body="&lt;p&gt;If you don't understand the problem you're trying to solve, writing more code will only make it worse.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-13T00:04:55.373" />
  <row Id="30796" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T20:41:26.237" Score="13" ViewCount="" Body="&lt;p&gt;A hard problem is seldom worth solving.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Meaning that if it seems hard you should spend time making it simple: either by understanding it better, by rephrasing it or by limiting (or extending) the scope.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T20:41:26.237" CommentCount="1" />
  <row Id="30797" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T20:43:00.977" Score="1" ViewCount="" Body="&lt;p&gt;Here's something i came up with one day:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can't have just madness, you have to have a method to the madness.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T20:43:00.977" CommentCount="2" />
  <row Id="30798" PostTypeId="2" ParentId="30769" CreationDate="2008-11-12T23:18:29.727" Score="2" ViewCount="" Body="&lt;p&gt;IGNORANCE IS STRENGTH.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FREEDOM IS SLAVERY.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Sadly, I've never seen WAR IS PEACE to apply particularly well in computing.)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-12T23:18:29.727" CommentCount="2" />
  <row Id="30799" PostTypeId="2" ParentId="30769" CreationDate="2008-11-13T00:04:55.373" Score="12" ViewCount="" Body="&lt;p&gt;Whenever someone says something like &quot;in theory, this should work...&quot; I sometimes reply with this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In theory, theory and practice is the same.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't recall where it's from, or even if I made it up myself (in that case I probably wasn't the first to come up with it).&lt;/p&gt;&#xA;" OwnerUserId="6998" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-13T00:04:55.373" CommentCount="7" />
  <row Id="30800" PostTypeId="2" ParentId="30769" CreationDate="2008-11-13T03:29:29.703" Score="1" ViewCount="" Body="&lt;p&gt;Don't try to build multi-threaded application in the languages that aren't designed for it.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-13T03:29:29.703" />
  <row Id="30801" PostTypeId="2" ParentId="30769" CreationDate="2008-11-17T11:37:23.270" Score="6" ViewCount="" Body="&lt;p&gt;&quot;i m the best programmer in the world.&quot;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-17T11:37:23.270" CommentCount="1" />
  <row Id="30802" PostTypeId="2" ParentId="30769" CreationDate="2008-11-17T11:47:18.147" Score="29" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Trying is the first step towards failure&lt;br /&gt;&#xA;  --Homer Simpson&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This has been proven almost every time we try out a new technology at work.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-17T11:47:18.147" CommentCount="4" />
  <row Id="30803" PostTypeId="2" ParentId="30769" CreationDate="2008-11-25T15:50:21.243" Score="33" ViewCount="" Body="&lt;p&gt;In my very first computer science class in college, the professor said, &lt;em&gt;If you remember only one thing from this class, remember these two things:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A computer does what you tell it to&#xA;  do, not what you want it to do.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;and&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The IQ of a computer is zero.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3869" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-25T15:50:21.243" CommentCount="2" />
  <row Id="30804" PostTypeId="2" ParentId="30769" CreationDate="2008-11-25T15:52:33.033" Score="49" ViewCount="" Body="&lt;p&gt;&quot;Measuring programming progress by lines of code is like measuring aircraft building progress by weight.&quot; - Bill Gates&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-25T15:52:33.033" CommentCount="4" />
  <row Id="30805" PostTypeId="2" ParentId="30769" CreationDate="2008-11-25T16:04:26.813" Score="25" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&quot;The definition of insanity is doing the same thing over and over again and expecting different results.&quot; -Einstein&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is my usual answer as to why I don’t want to attend another meeting where no decision making will occur.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-25T16:04:26.813" />
  <row Id="30806" PostTypeId="2" ParentId="30769" CreationDate="2008-11-25T16:25:58.643" Score="11" ViewCount="" Body="&lt;p&gt;Make everything as simple as possible, but not simpler. -Albert Einstein&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-25T16:25:58.643" />
  <row Id="30807" PostTypeId="2" ParentId="30769" CreationDate="2008-11-25T16:28:46.673" Score="12" ViewCount="" Body="&lt;p&gt;Stupid should hurt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Meaning if you got immediate feed back for making that bone-headed mistake, you'd stop.&lt;/p&gt;&#xA;" OwnerUserId="2078" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-11-25T16:28:46.673" />
  <row Id="30808" PostTypeId="2" ParentId="30769" CreationDate="2008-12-28T00:41:04.570" Score="18" ViewCount="" Body="&lt;p&gt;I think it's a book title. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Learn to program in c++ in just 10 years. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It captures the idea that programming is not something you jump into, and getting good takes a long long time. Anyone who thinks otherwise is a fool, IMHO. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2008-12-28T00:41:04.570" CommentCount="1" />
  <row Id="30809" PostTypeId="2" ParentId="30769" CreationDate="2009-02-08T00:30:19.030" Score="2" ViewCount="" Body="&lt;p&gt;Check out my site: &lt;a href=&quot;http://www.SoftwareQuotes.com&quot; rel=&quot;nofollow&quot;&gt;http://www.SoftwareQuotes.com&lt;/a&gt;  - it has an excellent selection of quotations about software development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some quotes:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;The software isn't finished until the last user is dead.&quot; - Anonymous&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;A well-written program is its own heaven; a poorly-written program is its own hell.&quot; - Geoffrey James&lt;/p&gt;&#xA;" OwnerUserId="4282" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-02-08T00:30:19.017" />
  <row Id="30810" PostTypeId="2" ParentId="30769" CreationDate="2009-02-08T00:55:46.500" Score="42" ViewCount="" Body="&lt;p&gt;&quot;It is easier to optimize correct code than to correct optimized code.&quot;&#xA;--Bill Harlan&lt;/p&gt;&#xA;" OwnerUserId="17518" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-02-08T00:55:46.500" />
  <row Id="30811" PostTypeId="2" ParentId="30769" CreationDate="2009-05-29T15:07:33.110" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Nothing works until you try it.&quot;  -- me&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assume everything is broken until verified. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Used in response to questions like, &quot;If we combine feature X and feature Y in a way we've never done before, will it work?&quot; and &quot;Do we handle generic absurd but catastrophic error condition?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Discovered after spending a week at a remote customer site implementing a clever use of our product I thought &lt;em&gt;should&lt;/em&gt; work but didn't verify. We committed it to the customer, it didn't work, so I spent a week in a warehouse in Kansas City implementing said feature.&lt;/p&gt;&#xA;" OwnerUserId="4110" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-05-29T15:07:33.110" CommentCount="1" />
  <row Id="30812" PostTypeId="2" ParentId="30769" CreationDate="2009-05-29T15:14:04.470" Score="4" ViewCount="" Body="&lt;p&gt;&quot;NOTHING is more important in a database than integrity.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;from my friend Eric&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;The whole idea of doing this opens up a huge can of Pandora's box&quot; (not specifically IT related but too much fun not to include)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Crap...I hate it when I drop the wrong table&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;from my former boss&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-05-29T15:14:04.470" />
  <row Id="30813" PostTypeId="2" ParentId="30769" CreationDate="2009-05-29T15:19:07.517" Score="19" ViewCount="" Body="&lt;p&gt;Be very careful at what you type into Google Images. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-05-29T15:19:07.517" CommentCount="9" />
  <row Id="30814" PostTypeId="2" ParentId="30769" CreationDate="2009-05-29T15:19:32.180" Score="2" ViewCount="" Body="&lt;p&gt;&quot;Proper Planning Prevents Poor Performance&quot;  -- My old boss.&lt;/p&gt;&#xA;" OwnerUserId="6710" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-05-29T15:19:32.163" CommentCount="1" />
  <row Id="30815" PostTypeId="2" ParentId="30769" CreationDate="2009-05-29T15:29:04.050" Score="5" ViewCount="" Body="&lt;p&gt;&quot;Don`t test what you are not prepared to fix&quot;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-05-29T15:29:04.050" CommentCount="1" />
  <row Id="30816" PostTypeId="2" ParentId="30769" CreationDate="2009-05-29T15:47:48.940" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Do it right the first time (Bertrand Serlet)&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...meaning, don't hack something together which works mostly, but apply proper engineering. Everything else requires more effort in the future.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-05-29T15:47:48.940" />
  <row Id="30817" PostTypeId="2" ParentId="30769" CreationDate="2009-05-29T16:03:48.943" Score="2" ViewCount="" Body="&lt;p&gt;What I usually end up telling my colleagues&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Stop assuming the code is wrong just because you are not the author of it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What I usually end up telling my boss:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The urgent is done. The indispensable is in progress. For miracles, please forecast some delay.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-05-29T16:03:48.943" />
  <row Id="30818" PostTypeId="2" ParentId="30769" CreationDate="2009-05-29T16:34:38.890" Score="5" ViewCount="" Body="&lt;p&gt;None of us is as dumb as all of us.&lt;/p&gt;&#xA;" OwnerUserId="4815" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-05-29T16:34:38.890" />
  <row Id="30819" PostTypeId="2" ParentId="30769" CreationDate="2009-05-29T16:38:42.507" Score="7" ViewCount="" Body="&lt;p&gt;I can't believe these weren't already here:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Garbage in, garbage out&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;and&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Know Thy Data&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;finally&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;To err is human, to really foul up requires a computer&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-05-29T16:38:42.507" />
  <row Id="30820" PostTypeId="2" ParentId="30769" CreationDate="2009-05-29T16:41:30.397" Score="15" ViewCount="" Body="&lt;p&gt;&quot;Measure twice, cut once&quot; - good philosophy for any discipline...&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-05-29T16:41:30.397" CommentCount="2" />
  <row Id="30821" PostTypeId="2" ParentId="30769" CreationDate="2009-05-29T16:46:38.097" Score="6" ViewCount="" Body="&lt;p&gt;&quot;Think big, act small, fail fast; learn rapidly&quot;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-05-29T16:46:38.097" />
  <row Id="30822" PostTypeId="2" ParentId="30769" CreationDate="2009-05-29T16:52:26.107" Score="25" ViewCount="" Body="&lt;p&gt;I was talking to a guy about Object Oriented Programming, and added:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Just because it's made out of car&#xA;  parts, doesn't mean it's a car.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It promptly was entered into Bugzilla's Quips.&lt;/p&gt;&#xA;" OwnerUserId="14714" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-05-29T16:52:26.093" CommentCount="1" />
  <row Id="30823" PostTypeId="2" ParentId="30769" CreationDate="2009-05-29T16:54:37.587" Score="13" ViewCount="" Body="&lt;p&gt;A favorite when trying to make a decision.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;It is easier to get forgiveness than permission.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-05-29T16:54:37.587" CommentCount="8" />
  <row Id="30824" PostTypeId="2" ParentId="30769" CreationDate="2009-07-29T14:57:57.390" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Programming is communication. Communication is not programming.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- Myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's an explanation (spoiler alert?) for those that might find it difficult to grok exactly what this phrase is suppose to mean:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first part of this phrase is butt naked and means exactly what is says. When we write code - &lt;em&gt;good code&lt;/em&gt;, that is - we are communicating ideas and intent, data and process. Not only are we communicating this information to our compiler, but also to our colleagues, the next guy who is going to maintain that code and to our (near) future self.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second part; &quot;communication is not programming,&quot; is a bit deeper and is about communicating with living people, and how different that is from communicating with a compiler. Human languages are full of ambiguity, and often require multiple different explanations before a point or idea comes across clearly. Communicating with people require &quot;people communication.&quot; Further, people are not computers. When you ask a person to do something, they will probably not do &lt;em&gt;exactly&lt;/em&gt; what you asked. They may do less or they may do more. They may even do something completely different, or what amounts to nothing of value (to you). Not because they are bad, but because they are people.&lt;/p&gt;&#xA;" OwnerUserId="6998" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-07-29T14:57:57.390" />
  <row Id="30825" PostTypeId="2" ParentId="30769" CreationDate="2009-07-29T15:05:36.203" Score="1" ViewCount="" Body="&lt;p&gt;Don't de-reference dangling pointers.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-07-29T15:05:36.203" CommentCount="2" />
  <row Id="30826" PostTypeId="2" ParentId="30769" CreationDate="2009-07-29T15:09:58.363" Score="16" ViewCount="" Body="&lt;p&gt;Computer Science is no more about computers than astronomy is about telescopes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;--E. W. Dijkstra&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-07-29T15:09:58.363" />
  <row Id="30827" PostTypeId="2" ParentId="30769" CreationDate="2009-07-29T15:13:52.833" Score="0" ViewCount="" Body="&lt;p&gt;&quot;Question your assumptions&quot;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-07-29T15:13:52.833" />
  <row Id="30828" PostTypeId="2" ParentId="30769" CreationDate="2009-07-29T15:19:00.513" Score="2" ViewCount="" Body="&lt;p&gt;At a polytechnic they teach you to wash your hands after going for a piss, at university they teach you not to piss on your hands.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-07-29T15:19:00.513" CommentCount="3" />
  <row Id="30829" PostTypeId="2" ParentId="30769" CreationDate="2009-07-29T15:27:08.377" Score="2" ViewCount="" Body="&lt;p&gt;At least two. They are more physics, rather than computer science:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;if you always follow the minimum energy path, you are guaranteed that your potential will only decrease&quot; - Me&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;When you work in a vacuum, it's easy to fill the room&quot; - Zachary Spencer, &lt;a href=&quot;http://stackoverflow.com/questions/888224/what-is-your-longest-held-programming-assumption-that-turned-out-to-be-incorrect/893312#893312&quot;&gt;here on SO&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1338" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-07-29T15:27:08.377" CommentCount="3" />
  <row Id="30830" PostTypeId="2" ParentId="30769" CreationDate="2009-07-30T10:13:57.550" Score="3" ViewCount="" Body="&lt;p&gt;Being really good at C++ is like being really good at using rocks to sharpen sticks.&#xA; — Thant Tessman&lt;/p&gt;&#xA;" OwnerUserId="3168" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-07-30T10:13:57.550" CommentCount="1" />
  <row Id="30831" PostTypeId="2" ParentId="30769" CreationDate="2009-07-30T10:27:49.690" Score="2" ViewCount="" Body="&lt;p&gt;It's maybe a bit obvious, but one of my lecturers in college pointed this out, and it's stuck with me:-&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;If your code compiles, you've written&#xA;  a program. But this doesn't mean that&#xA;  it's the program that you think you've&#xA;  written&quot;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This guy was big on formal proofs...&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-07-30T10:27:49.690" CommentCount="1" />
  <row Id="30832" PostTypeId="2" ParentId="30769" CreationDate="2009-07-30T10:48:34.110" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;All of Microsoft's software is written in Visual Basic&quot; -- My IT teacher&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;haha.&lt;/p&gt;&#xA;" OwnerUserId="10405" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-07-30T10:48:34.110" />
  <row Id="30833" PostTypeId="2" ParentId="30769" CreationDate="2009-07-30T11:03:16.780" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;If you can't test it, then you don't need it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Referring to source code.  If it doesn't have a testable result, then you might as well use a null statement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is particularly true of error handling code. If the error condition can't be created, why try to handle it?&lt;/p&gt;&#xA;" OwnerUserId="3554" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-07-30T11:03:16.780" />
  <row Id="30834" PostTypeId="2" ParentId="30769" CreationDate="2009-07-30T11:58:33.687" Score="5" ViewCount="" Body="&lt;p&gt;My all-time favourite has to be Hofstadter's Law:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will take longer than you think, &lt;em&gt;even if you take Hofstadter's Law into account&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;:)&lt;/p&gt;&#xA;" OwnerUserId="17366" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-07-30T11:58:33.687" CommentCount="1" />
  <row Id="30835" PostTypeId="2" ParentId="30769" CreationDate="2009-07-30T12:04:21.710" Score="2" ViewCount="" Body="&lt;p&gt;&quot;For every problem there is a solution which is simple neat and wrong&quot;&lt;/p&gt;&#xA;" OwnerUserId="17540" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-07-30T12:04:21.710" CommentCount="1" />
  <row Id="30836" PostTypeId="2" ParentId="30769" CreationDate="2009-07-30T16:02:19.617" Score="1" ViewCount="" Body="&lt;p&gt;&lt;b&gt;Question:&lt;/b&gt; What is the difference between ignorance and apathy?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Answer:&lt;/b&gt; I don't know and I don't care. ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;hr&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Synopsis:&lt;/b&gt; You can't help someone who is both ignorant and apathetic at the same time, so don't waste your energy.&lt;/p&gt;&#xA;" OwnerUserId="13195" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-07-30T16:02:19.617" />
  <row Id="30837" PostTypeId="2" ParentId="30769" CreationDate="2009-07-30T16:52:52.243" Score="5" ViewCount="" Body="&lt;p&gt;We've made a deal with God:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;He doesn't program,&lt;/li&gt;&#xA;&lt;li&gt;we don't make miracles.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-07-30T16:52:52.243" />
  <row Id="30838" PostTypeId="2" ParentId="30769" CreationDate="2009-07-30T17:00:20.170" Score="0" ViewCount="" Body="&lt;p&gt;&quot;I think most application development involves initial lack of understanding of how to use a particular technology optimally, followed by a downward spiral of workarounds and short cuts&quot; - A developer friend of mine&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-07-30T17:00:20.170" />
  <row Id="30839" PostTypeId="2" ParentId="30769" CreationDate="2009-07-31T04:49:34.173" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Even though the compiler doesn't have&#xA;  a GUI, it still is beautiful.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- me&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Always have a healthy disrespect of&#xA;  the impossible&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;-- unknown&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-07-31T04:49:34.173" CommentCount="1" />
  <row Id="30840" PostTypeId="2" ParentId="30769" CreationDate="2009-07-31T20:53:51.880" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;This project is scheduled to be done when hell freezes over.  But it may slip.&quot;&#xA;  - Keith Reynolds&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="471" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-07-31T20:53:51.880" />
  <row Id="30841" PostTypeId="2" ParentId="30769" CreationDate="2009-08-19T23:20:29.820" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;El flojo trabaja dos veces&quot; -my friend's Colombian mother&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Spanish for, &quot;The lazy person works twice.&quot; Applicable to everything.&lt;/p&gt;&#xA;" OwnerUserId="4430" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-08-19T23:20:29.820" CommentCount="2" />
  <row Id="30842" PostTypeId="2" ParentId="30769" CreationDate="2009-10-07T16:47:39.827" Score="1" ViewCount="" Body="&lt;p&gt;From &quot;&lt;a href=&quot;http://www.happiness-project.com/happiness%5Fproject/2008/11/tips-ten-tips-f.html&quot; rel=&quot;nofollow&quot;&gt;Tips: Ten tips for being happier.&lt;/a&gt;&quot;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Anything worth doing is worth doing&#xA;  badly.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;For a mountain of wisdom take a look at some of the posts on &lt;a href=&quot;http://sourcesofinsight.com/&quot; rel=&quot;nofollow&quot;&gt;&quot;Sources of Insight&quot;&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2009-10-07T16:47:39.827" />
  <row Id="30843" PostTypeId="2" ParentId="30769" CreationDate="2010-01-18T23:55:33.240" Score="0" ViewCount="" Body="&lt;p&gt;&quot;I don't care how did you do it. &lt;strong&gt;It has to work&lt;/strong&gt;.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My friend told me that when I created a tiny report for him 10 years ago. But It is not what he exactly told me but meaning was same.&lt;/p&gt;&#xA;" OwnerUserId="2428" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2010-01-18T23:55:33.240" />
  <row Id="30844" PostTypeId="2" ParentId="30769" CreationDate="2010-06-16T14:45:52.560" Score="3" ViewCount="" Body="&lt;p&gt;It certainly is famous, but shouldn't be left unlisted:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Perfection is achieved, not when there is nothing left to add, but when there&#xA;  is nothing left to take away -- Antoine de Saint-Exupery&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2010-06-16T14:45:52.560" />
  <row Id="30845" PostTypeId="2" ParentId="30769" CreationDate="2010-06-22T01:49:49.440" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Keep it simple stupid! (&lt;a href=&quot;http://en.wikipedia.org/wiki/KISS_principle&quot; rel=&quot;nofollow&quot;&gt;KISS Principle&lt;/a&gt;)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't over engineer nor over design the problem you're trying to solve, keep it simple and elegant.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Don't repeat yourself (&lt;a href=&quot;http://en.wikipedia.org/wiki/Don%27t_repeat_yourself&quot; rel=&quot;nofollow&quot;&gt;DRY Principle&lt;/a&gt;)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.  Never copy and paste code either.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Making progress&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do something every day towards your project, whatever you do now you won't have to do later.  Seems obvious but it really helps you move forward on your projects.&lt;/p&gt;&#xA;" OwnerUserId="24" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2010-06-22T01:49:49.440" />
  <row Id="30846" PostTypeId="2" ParentId="30769" CreationDate="2010-09-18T19:44:50.343" Score="2" ViewCount="" Body="&lt;p&gt;From ASP.NET MVC 2 Framework by Steven Sanderson, where he tries to fight programmers natural tendency to generalize everything by saying:&lt;br&gt;&#xA;&lt;blockquote&gt;&lt;/p&gt;&#xA;&#xA;  &lt;p&gt;Constraints are not limitations; they are insight.  &lt;/blockquote&gt;&lt;br&gt;&#xA;  Which I think explain itself.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and another one-&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;Assumption is the mother of all f*** ups  &lt;/blockquote&gt;  &#xA;&#xA;&lt;p&gt;-Under Siege 2: Dark Territory&lt;/p&gt;&#xA;" OwnerUserId="2104" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2010-09-18T19:44:50.343" />
  <row Id="30847" PostTypeId="2" ParentId="30769" CreationDate="2010-12-21T15:56:33.177" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;K.I.S.S.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Keep it simple, Stupid.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T00:30:07.243" CommunityOwnedDate="2010-12-21T15:56:33.177" CommentCount="1" />
  <row Id="30848" PostTypeId="2" ParentId="30764" CreationDate="2010-12-28T00:32:32.063" Score="3" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Understand what the existing code base is doing. In any old legacy application there may be a good number of special cases that users are expecting, be wary of these and only intentionally and rationally change existing behaviour.&lt;/li&gt;&#xA;&lt;li&gt;Coupled with 1. you must also test that the new functionality is doing what is intended (based off the understanding of what it is currently doing, or will be changing).&lt;/li&gt;&#xA;&lt;li&gt;If it is a large application or code-base, plan for the change to be incrementally introduced, this should mitigate the danger of one large release and show progress.&lt;/li&gt;&#xA;&lt;li&gt;Be especially careful if operating in an environment that is heterogeneous in versions of the software: beware file formats, network protocols, shared memory formats. Test and ensure compatibility between versions.&lt;/li&gt;&#xA;&lt;li&gt;If changing a data storage system, be prepared to mirror writes for a while into the new system to test load and gradually transition reads onto the new system while retaining writes into the old system. Once the new system is solid, add the new functionality.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="11485" LastActivityDate="2010-12-28T00:32:32.063" />
  <row Id="30849" PostTypeId="2" ParentId="30210" CreationDate="2010-12-28T00:50:52.727" Score="0" ViewCount="" Body="&lt;p&gt;It has been tried multiple times, but often it didn't achieve the desired effect: think HAL 9000 or GlaDOS.&lt;/p&gt;&#xA;" OwnerUserId="11146" LastActivityDate="2010-12-28T00:50:52.727" />
  <row Id="30850" PostTypeId="2" ParentId="30758" CreationDate="2010-12-28T00:54:25.493" Score="2" ViewCount="" Body="&lt;p&gt;I'd encourage you to do the &lt;a href=&quot;http://codekata.pragprog.com/&quot; rel=&quot;nofollow&quot;&gt;Code Katas&lt;/a&gt;.  Also, knowing data structures and algorithms is &lt;em&gt;super&lt;/em&gt; important (especially knowing the time/space complexities of them, or when to use them, or drawbacks to using them).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For data structures and algorithms, I'd recommend &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0262033844&quot; rel=&quot;nofollow&quot;&gt;this book&lt;/a&gt; because it is well known and will cover your bases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowing databases is important because they are used in &lt;em&gt;alot&lt;/em&gt; of places.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read as much code as you can (&lt;a href=&quot;http://www.github.com&quot; rel=&quot;nofollow&quot;&gt;github&lt;/a&gt; is a great place).  Learn by reading code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Congrats on taking your education seriously.  Don't be discouraged when it gets hard--this stuff is difficult.  Stick with it and you'll get it!&lt;/p&gt;&#xA;" OwnerUserId="11364" LastActivityDate="2010-12-28T00:54:25.493" />
  <row Id="30851" PostTypeId="2" ParentId="30764" CreationDate="2010-12-28T00:59:36.223" Score="0" ViewCount="" Body="&lt;p&gt;There are a lot of good answers here that are really good points. There is one thing that I think is also important. Look at how technology has progressed from the point where the original code was written and what is out there now:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms754130.aspx&quot; rel=&quot;nofollow&quot;&gt;Windows Presentation Foundation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/netframework/aa663324&quot; rel=&quot;nofollow&quot;&gt;Windows Communication Foundation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd460648.aspx&quot; rel=&quot;nofollow&quot;&gt;Managed Extensibility Framework&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;By all means, you must assess the existing code; unit test, plan, research, development, more testing. But you also have to take into consideration new technologies that may extend the lifetime of version 2.&lt;/p&gt;&#xA;" OwnerUserId="8031" LastActivityDate="2010-12-28T00:59:36.223" />
  <row Id="30852" PostTypeId="2" ParentId="28855" CreationDate="2010-12-28T01:17:59.043" Score="0" ViewCount="" Body="&lt;p&gt;I didn't write my &quot;Hello world!&quot; until I got in college cause I was not even got a compter before that time. That's so sad. But I made it , I am a three years experience programmer now. So , in my point , you are not even old enough to start programming. Just kiding!&lt;/p&gt;&#xA;" OwnerUserId="11307" LastActivityDate="2010-12-28T01:17:59.043" />
  <row Id="30853" PostTypeId="1" AcceptedAnswerId="30869" CreationDate="2010-12-28T01:31:33.190" Score="4" ViewCount="178" Body="&lt;p&gt;Hi everyone, i've been facing a situation at work and i would like to share it with you and tell me:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Did you had to do it to?&lt;/li&gt;&#xA;&lt;li&gt;Should a developer be in direct contact wit the client? Or there should be an &quot;adapter&quot; guy that translates client needs in pseudo formal requirements understandable to us?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm currently working in a small company that its taking care of implementing lots of systems, most of them for goverment institutions, in witch it generally means taking software developted 20 years ago and refurbish them so fit up-to-date needs. The clients generally are very used to them and tend to discourage change (they are in their 50s 60s give or take, so not technologie-friendly in general).&#xA; As you can imagine, dev-team in most cases starts taking care of relation with clients, generating the documentation needed in this cases (CU usually), assisting to weekly meets to see improvements with clients.&#xA; As for experience, this is a gold mine for me, because gives a nice perspective on all the aspects of software development, but also some problems rise because, if developers come from mars then client are from venus. So there is a fine gap on the vocabulary/experience/capability-to-interpret-needs that generates an noice in the communication, and some times affecting the final product.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-28T22:34:18.413" Title="Relation between developers and clients" Tags="&lt;software-engineering&gt;&lt;client&gt;&lt;workflows&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="30854" PostTypeId="2" ParentId="30764" CreationDate="2010-12-28T01:38:45.013" Score="3" ViewCount="" Body="&lt;p&gt;Trying to come up with things not already said:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Secure management involvement. Remember that the success of a high-risk project often depends on management buy-in. Make sure you have legit and active stakeholders who want this badly. If not, you may find serious roadblocks if you meet resistance to change, and when changing systems, you will meet resistance to change. In one project where we were moving people to a new system, all they could talk about was how much better the old system was. Management gave people a chance to get on board, and if there were serious dissenters, they were released. The sad truth is that there were parts of the old system that were indeed better (a long story that's too depressing for me to retell here) but because management was serious, the implementation team got the backing it needed.&lt;/li&gt;&#xA;&lt;li&gt;Secure a champion on the user side for the project. If the previous application's product manager is on board and actively involved, that's a plus. If not, an expert user that's respected in the community will be important. Demarco and Lister said something once to the effect of, &quot;Every time a new system comes online, someone gains power and someone loses power.&quot; If a good leader on the user side is onboard with things, they'll potentially smooth the way for user acceptance. &lt;/li&gt;&#xA;&lt;li&gt;Treat the new system like a new project and have a really good analyst involved. That analyst might be a senior developer, but whatever, you don't want to make the mistake of saying, &quot;Oh, this'll be easy, just do what the old system does, but better.&quot; The problem is that if the old system is anything like most of those in corporate America, then identifying exactly &quot;what the old system does&quot; might not be as easy as it sounds...there's probably outdated, if any, documentation, and lots of crufty old ways of doing things in the system that might not even be relevant anymore. Lots of times systems do things just because that's the way it was done in the old manual process, and you can save a lot of work and wipe out a lot of convoluted logic by removing unneeded complications. Sometimes the best code is the line you don't write.&lt;/li&gt;&#xA;&lt;li&gt;Look at the reporting component first. Reporting is often forgotten or left do finish as an afterthought, but this is losing out on a great tool for information. The old system's reports can tell you what the users needed most, and can be a good starting point for verifying what the new system's output should be. Be careful though to vet every report...probably some are not even used anymore.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7892" LastActivityDate="2010-12-28T01:38:45.013" CommentCount="4" />
  <row Id="30855" PostTypeId="2" ParentId="30853" CreationDate="2010-12-28T01:45:52.590" Score="3" ViewCount="" Body="&lt;p&gt;Developers should absolutely be in contact with the clients! Even if a business analyst writes a formal specification, its always beneficial to have access to the client to ask specific questions or get instant feedback on a feature you are working on. Business analysts are very helpful, but I would never want to work solely through them for requirements. Also, I would never want to wait more than a week or two to show off a feature to a client. Even if they make changes, its always easier to make a small change closer to the time of development rather than piling all the changes to the end of the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Newer software methodologies are also geared toward bringing the client and the software development teams closer together. One of the main principles of Agile/Scrum is that the client be on the team and always be available for questions. Agile teams also demo their software after every sprint or iteration. Agile was formed under the assumption that software changes and that teams should be &quot;agile&quot; and adapt to changing business requirements.&lt;/p&gt;&#xA;" OwnerUserId="8440" LastActivityDate="2010-12-28T01:45:52.590" CommentCount="1" />
  <row Id="30856" PostTypeId="1" AcceptedAnswerId="30903" CreationDate="2010-12-28T02:19:18.980" Score="3" ViewCount="148" Body="&lt;p&gt;Some projects are available under restrictive FOSS licenses (GPL or AGPL, for example) which preclude them from being used in proprietary projects. The developers can then sell separate commercial licenses which allow the code to be used in proprietary projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How common is this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples I'm aware of:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.fsf.org/blogs/rms/selling-exceptions&quot; rel=&quot;nofollow&quot;&gt;MySQL&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://x264dev.multimedia.cx/archives/584&quot; rel=&quot;nofollow&quot;&gt;x264&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.redhat.com/services/custom/cygwin/&quot; rel=&quot;nofollow&quot;&gt;Cygwin&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2406" LastActivityDate="2010-12-28T16:24:50.797" Title="Licencing FOSS for profit" Tags="&lt;license&gt;&lt;foss&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="1" />
  <row Id="30858" PostTypeId="1" CreationDate="2010-12-28T01:07:40.227" Score="2" ViewCount="275" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/6587/what-counts-as-an-ide&quot;&gt;What counts as an IDE?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I'm thinking about making a new IDE in my free time and I wanted to get some input on what you think makes a great IDE, the title says it all but a bit more specifically:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What features/properties are a must?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is UI important? (It is for me.)&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Please include examples in favourite IDE, but feel free to let your imaginations run wild.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T07:43:31.330" ClosedDate="2010-12-28T21:57:21.377" Title="What makes a great IDE?" Tags="&lt;user-interface&gt;&lt;ide&gt;&lt;ideas&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="2" />
  <row Id="30859" PostTypeId="2" ParentId="30858" CreationDate="2010-12-28T01:10:34.833" Score="0" ViewCount="" Body="&lt;p&gt;UI isn't so important to me, because it's very different for web and desktop.  Most people who use that term don't think about crafting a UI using HTML, CSS, and JavaScript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think JetBrains makes the best IDEs on the market for several languages: IntelliJ for Java, PyCharm for Python, ReSharper plugin for C# in Visual Studio, RubyMine for Ruby, etc.  You would have to go a very long way to improve on what they've done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They think about languages in terms of abstract syntax trees.  Once they have that, they can relate different parts to each other in a very nice way.  You might approach what they've done if you make AST the center of your approach.&lt;/p&gt;&#xA;" OwnerUserId="4316" LastActivityDate="2010-12-28T02:40:22.040" />
  <row Id="30860" PostTypeId="2" ParentId="30858" CreationDate="2010-12-28T01:12:33.780" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;syntax highlighting&lt;/li&gt;&#xA;&lt;li&gt;code hinting&lt;/li&gt;&#xA;&lt;li&gt;code completion&lt;/li&gt;&#xA;&lt;li&gt;code formating&lt;/li&gt;&#xA;&lt;li&gt;file/resource management&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="16729" LastActivityDate="2010-12-28T02:40:22.040" />
  <row Id="30861" PostTypeId="2" ParentId="30858" CreationDate="2010-12-28T01:21:00.960" Score="4" ViewCount="" Body="&lt;p&gt;By far the most important thing for me is &quot;Intellisense&quot; or the IDE's own name for its Autocompletion / Autoindentation feature.  Unfortunately this is very difficult / impossible for weakly typed languages without some kind of &quot;specify the type of this variable&quot; function, as NetBeans has.  When this works properly, it negates the argument of Java being too verbose with its &quot;function pointer substitute&quot; classes, because in the correct context, one just types Ctrl+Space and all that's left to do is fill in the code that needs to be written -- the boilerplate is done for you.  It also allows helpful variable names to be used in a local context over and over very easily rather than something like StringBuilder sb = ... -- I don't really like abbreviated local variable names.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An integrated debugger is mandatory and fortunately all decent IDEs I've seen have this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good class browser is relevant to almost any language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Over the years I've used Eclipse, Visual Studio and NetBeans most extensively.  I like all of them and each has its own strong point.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T02:40:22.040" />
  <row Id="30862" PostTypeId="2" ParentId="30858" CreationDate="2010-12-28T01:23:19.787" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Support for Debugging&lt;/strong&gt;: this is the most important feature ever. Writing code can be done in nearly any IDE or even editor. Sure, content-assist is pretty neat, auto-formatting is neat, real-time compilation is neat etc. But when it comes down to really hard to solve problems, you need an IDE which a professional can trust upon. You need to be able to debug multiple processes, including source code attachments and watch/inspect/browse all the data structures in there to find the hard problems. If your IDE supports a developer for this kind of work, it's good and mature.&lt;/p&gt;&#xA;" OwnerUserId="7942" LastActivityDate="2010-12-28T02:40:22.040" CommentCount="0" />
  <row Id="30863" PostTypeId="2" ParentId="30853" CreationDate="2010-12-28T02:51:21.600" Score="2" ViewCount="" Body="&lt;p&gt;Always start with the client's perspective. E.g, Question: Why change something that works? Answer: Because the technology is in danger of no longer being supported and we may not be able to find developers facile in the technology in the near future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Avoid the urge to change something because you are enamored with a new technology. Just because they drive a 1967 VB Beetle and you are in love with a Prius, does not mean they see the need to change. Focus on their needs, not your wants.&lt;/p&gt;&#xA;" OwnerUserId="9540" LastActivityDate="2010-12-28T02:51:21.600" CommentCount="2" />
  <row Id="30864" PostTypeId="2" ParentId="30449" CreationDate="2010-12-28T02:58:01.830" Score="0" ViewCount="" Body="&lt;p&gt;The single biggest strategy I've found for improving my code is code reviews. Even a less-senior dev can occasionally find and suggest an improvement. The hardest part is leaving my ego out of the process.&lt;/p&gt;&#xA;" OwnerUserId="9540" LastActivityDate="2010-12-28T02:58:01.830" CommunityOwnedDate="2010-12-28T02:58:01.830" />
  <row Id="30865" PostTypeId="2" ParentId="30858" CreationDate="2010-12-28T03:13:29.943" Score="2" ViewCount="" Body="&lt;p&gt;Speed&#xA;Speed&#xA;Speed&#xA;As in responsiveness of the UI.&#xA;That's why I prefer Visual Studio (well, except for 2010) over Eclipse.&lt;/p&gt;&#xA;" OwnerUserId="11814" LastActivityDate="2010-12-28T03:13:29.943" CommentCount="1" />
  <row Id="30866" PostTypeId="2" ParentId="30764" CreationDate="2010-12-28T03:14:14.780" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Step 1: Read &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000069.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/fog0000000069.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Step 2: Make other engineers in your office read Step 1&lt;/li&gt;&#xA;&lt;li&gt;Step 3: Don't make a strategic mistake&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I really wanted to leave it at those three steps, but just in case someone took it as me being lazy, rewriting from scratch is almost doomed to fail. Incrementally adapting and refactoring code is the best way. &lt;/p&gt;&#xA;" OwnerUserId="11828" LastActivityDate="2010-12-28T03:14:14.780" CommentCount="3" />
  <row Id="30867" PostTypeId="2" ParentId="30853" CreationDate="2010-12-28T03:23:51.480" Score="2" ViewCount="" Body="&lt;p&gt;There are 2 sides to it. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;It is a great idea to be in direct contact with your client. You get invaluable experience as to how users in real life behave, their pain points, things that they want in the software and stuff you can do for them to get repeat business. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It is also very important to have an adapter guy in this whole thing. Suppose you are doing the accounts software of some govt. agency would you not like to re-use part or whole of this software for another govt. agency too, perhaps one thats located in a different state? Of course you would, and thats where the adapter guy comes in. Its his/her job to map this software to the requirements and pain points of another related entity and ask developers to get the customizations done.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I think both approaches are needed, and complementary. &lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-28T03:23:51.480" />
  <row Id="30868" PostTypeId="2" ParentId="30223" CreationDate="2010-12-28T03:25:38.810" Score="1" ViewCount="" Body="&lt;p&gt;I am surprised how many people have answered based on emotion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course none of this is legal advice:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most software companies have clauses in their licenses, either required by their clients or given out of good faith, that allow their clients to continue using their software in the event their software company goes under (or in your case they all die) and would even be able to get the source code. This has been the case in companies I've worked for in the past.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Copyright law is a very tough subject to deal with. Let's take trademarking for example. If everyone in the world starting calling, searching the internet, &quot;Googling&quot;, Google could have a real hard time keeping the rights to their name. Right now I'm not so sure they care. That's why Jello is a trademark and you can't call any gelatin food Jello, even though we most would. This paragraph was a bit off topic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The important question is, does the original license holders know you are using their software in violation of the license? If yes, and they continue to let you, it could be construed as consent. If they do not know, they can always come back and sue. This has happened over the years with original *nix code on numerous platforms, especially Berkley sockets. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again I just made all this up and should never be used for legal advice. For entertainment purposes and ego stroking only.&lt;/p&gt;&#xA;" OwnerUserId="11828" LastActivityDate="2010-12-28T03:25:38.810" CommentCount="1" />
  <row Id="30869" PostTypeId="2" ParentId="30853" CreationDate="2010-12-28T03:28:09.073" Score="4" ViewCount="" Body="&lt;p&gt;Always be in direct contact with your client. Always. Always. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will narrate an example which we faced earlier. The product which was already existing was of Version 2.0 where you can write your own CSS (a heavy task!). During the implementation of V2.0 (eons ago), they wrote the CSS, to reflect their internal brand, in green color. (Reason - the default scheme was in magenta!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2 years ago, when we embarked on upgrading it to Version 6.0, the product itself chose Microsoft(!) blue as the default scheme. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As expected, the client was not willing to let go of their green color. Internally too, there was a conflict. The BA's agreed that the internal branding was not needed and we can go with the default Microsoft(!) blue. But no, the final stakeholder kept insisting on retaining the green color or we do NOT do the upgrade at all. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What did we developers do?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Held a meeting with final stakeholder. Started of the meeting along the following lines -&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;You know what, I am upset that we are&#xA;  to lose out the internal branding&#xA;  color. I cannot tell how much I am&#xA;  upset that we are about to lose the&#xA;  internal branding which you have built&#xA;  and stood for in so many years. But,&#xA;  unfortunately we are now at a stage&#xA;  where we need to make some hard&#xA;  decisions and I am hoping that &lt;strong&gt;you&lt;/strong&gt;&#xA;  would help us (developers) with it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;We then listed down all of the great features of performing the upgrade. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Anchor tabs (ooh, so lovely!) &lt;/li&gt;&#xA;&lt;li&gt;Drag and Reorder columns in a Web browser(ah, that is fantastic!) &lt;/li&gt;&#xA;&lt;li&gt;... &lt;/li&gt;&#xA;&lt;li&gt;...&lt;/li&gt;&#xA;&lt;li&gt;...&lt;/li&gt;&#xA;&lt;li&gt;...&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;And then we listed out what we would be missing?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Internal branding color would be lost&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Threw in a nice quote as &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;You can lose battles to win wars!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And then, we left the decision for them to make. Needless to say they accepted the Microsoft's color and all was fine. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;None of this would have been possible if we had not been in direct contact. Because, it is &lt;strong&gt;you&lt;/strong&gt; the developer who can sell the great features of the new technology not the BA. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: Now that &lt;a href=&quot;http://www.imdb.com/title/tt0493464/&quot; rel=&quot;nofollow&quot;&gt;Wanted&lt;/a&gt; is released, you can replace the quote as &quot;We kill one, and maybe save a thousand&quot;&lt;/p&gt;&#xA;" OwnerUserId="5070" LastActivityDate="2010-12-28T03:28:09.073" CommentCount="7" />
  <row Id="30871" PostTypeId="2" ParentId="30858" CreationDate="2010-12-28T03:41:08.270" Score="0" ViewCount="" Body="&lt;p&gt;A solid, and extensible refactoring engine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something like DxCore or Resharper for VisualStudio, or JDT in eclipse&lt;/p&gt;&#xA;" OwnerUserId="11829" LastActivityDate="2010-12-28T03:41:08.270" />
  <row Id="30872" PostTypeId="2" ParentId="21782" CreationDate="2010-12-28T03:41:29.590" Score="0" ViewCount="" Body="&lt;p&gt;So many answers here. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is something I hadn't seen touched on yet. There are certain engineers that can transcend frameworks and languages. Mind you not everyone can do this and thats OK. If you find yourself reading up on WCF or WPF or Karate Kid.NET and thinking to yourself ok I can instantly tell what all these do and how they did it, it's no longer important to really learn them as an exercise. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are able to understand all the core concepts in these technologies and given enough time able to recreate them all then don't worry about keeping up. Just make sure you know concepts and theories. The flavor of the day such as C# and Java won't matter as much anymore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are finding yourself stagnating in programming itself and being bored, you have a few options. Challenge yourself to create a product for the community (i.e. Free) or a product to sell. Or do something very physical, like community work, building houses etc. It may seem like a joke but it's what I do. It's amazing what a bit of physical labor will do for you when sitting down at the keyboard.&lt;/p&gt;&#xA;" OwnerUserId="11828" LastActivityDate="2010-12-28T03:41:29.590" />
  <row Id="30873" PostTypeId="1" CreationDate="2010-12-07T09:49:49.427" Score="3" ViewCount="481" Body="&lt;p&gt;Hi! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have to choose a thesis for my master degree. Time is limited to about 6 months. Do you have any idea? Any personal thesis that was successful? After searching around for some time now, i see the most famous topics are related to artificial intelligence, but i don't want something like that, because most of it would be just theory and boring. A lot of students present these kind of studies because those are the most difficult. I would prefer something that does not necessary include that mathematical complexity but which is an everyday-life topic, and gives concrete ideas, hypothesis, or solutions to some actual problems. Hope i gave my whole idea: i am looking for something that is different from the majority of what all students do, and able to impress the audience... :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would really really appreciate any your suggestion,&#xA;Thank you!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T08:03:43.193" ClosedDate="2010-12-28T23:26:12.313" Title="Any idea for a master thesis in software engineering" Tags="&lt;software-engineering&gt;&lt;thesis&gt;" AnswerCount="4" CommentCount="5" FavoriteCount="1" />
  <row Id="30874" PostTypeId="2" ParentId="30873" CreationDate="2010-12-07T09:59:38.073" Score="0" ViewCount="" Body="&lt;p&gt;Why don't you have a look at the &lt;strong&gt;Google Summer of Code&lt;/strong&gt; programme. They tend to have lots of ideas for short pieces of work which are dealing with real-world problems. And who know... it might even help you land a job there!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://code.google.com/soc/&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/soc/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9278" LastActivityDate="2010-12-28T03:46:10.537" />
  <row Id="30875" PostTypeId="2" ParentId="30873" CreationDate="2010-12-07T10:00:01.543" Score="0" ViewCount="" Body="&lt;p&gt;I can't give you a project idea (not that I won't, I can't, it's a very difficult idea to come up with), but whatever you chose, make sure it has plenty of code, and an &quot;academic angle&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When it came to my own Masters project/thesis the mistake I made was to chose a purely paper project, no code at all. As a result I found it very tedious going and I became such a pain to live with while finishing it that my Wife banned me from any further academic study!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing to aim for, is to make the project &quot;academically interesting&quot;. This is the difficult bit to come up with, and is supposed to be the thing that distinguishes a master's thesis, from a bachelors, which might get away with being a well documented, but straightforward piece of code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, whatever you do, write some code, but think about the academic angle. Can you write some code that pushes a boundary? Is there an unusual language that might be perfectly suited to the task, than could be evaluated in comparison with the languages that are usually used? Is there a design or testing methodology that is untested in any particular field of software? Could you apply cutting edge stuff from one leading field to another, less glorified field to see if it's still effective for the rest of us?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Etc etc etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, goodluck and stick at it.&lt;/p&gt;&#xA;" OwnerUserId="184" LastActivityDate="2010-12-28T03:46:10.537" />
  <row Id="30876" PostTypeId="2" ParentId="30873" CreationDate="2010-12-07T10:05:55.830" Score="0" ViewCount="" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will have to answer below questions to your self which might help you in deciding the topic. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1] Is the thesis only a literarature survey and then analysis/development of some algorithm based on those topics presented in the literature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2] Do u mind developing a prototype either or some working code (software program) to demonstrate the idea behind your thesis. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now for some topics - &lt;/p&gt;&#xA;&#xA;&lt;p&gt;a) Web development related (This is vast field, i am giving just one example ahead) If you are interested in 'everyday' topics in S/w or CS, then Search Engines and their functioning can be a good topic which can be demonstrated neatly with some code running on a local network/intranet server. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;b) Multimedia(Audio-Video) processing, data compression / Computer Graphics &lt;/p&gt;&#xA;&#xA;&lt;p&gt;c) Encryption and Secure communication&lt;/p&gt;&#xA;&#xA;&lt;p&gt;d) Cloud computing is a hot topic for research and prototyping these days&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This should get your thinking started to explore more such topics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;good luck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-AD.&lt;/p&gt;&#xA;" OwnerUserId="10969" LastActivityDate="2010-12-28T03:46:10.537" />
  <row Id="30877" PostTypeId="1" CreationDate="2010-12-04T21:23:20.543" Score="2" ViewCount="156" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/22880/want-to-start-off-with-open-source-programming&quot;&gt;Want to start off with open source programming&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I keep hearing that a great way to build skills is to join an open-source project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't the faintest clue where to get started.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm on a mac... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any suggestions?&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T12:33:44.153" ClosedDate="2010-12-28T23:27:23.733" Title="So I want to get into open-source programming" Tags="&lt;open-source&gt;&lt;learning&gt;&lt;resume-improvement&gt;" AnswerCount="5" CommentCount="5" FavoriteCount="2" />
  <row Id="30878" PostTypeId="2" ParentId="30877" CreationDate="2010-12-04T21:24:51.583" Score="7" ViewCount="" Body="&lt;p&gt;Find a project you like, contribute a feature or bug fix that you care about. Simple.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-28T03:47:00.817" CommentCount="1" />
  <row Id="30879" PostTypeId="2" ParentId="30877" CreationDate="2010-12-04T21:26:27.157" Score="0" ViewCount="" Body="&lt;p&gt;As said above, thats a great start. You could develop an application on an open platform such as Java and release it under the GNU License. But i recommend learning a language, and fixing bugs on a project, then contributing code.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T03:47:00.817" CommentCount="1" />
  <row Id="30880" PostTypeId="2" ParentId="30877" CreationDate="2010-12-04T21:27:45.013" Score="0" ViewCount="" Body="&lt;p&gt;There are plenty of projects out there that could use more help.  And contributing to an existing project is a &lt;em&gt;lot&lt;/em&gt; easier than starting one from scratch, so you're on the right track there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What language(s) are you most comfortable with?  What kind of development do you generally do?  How deep into the language do you go?  These questions can help you find a project you'd enjoy.  (For example, if you're a Ruby web programmer then it would not make sense to try to contribute to a Java desktop app or a Delphi language extension or anything like that.)&lt;/p&gt;&#xA;" OwnerUserId="6335" LastActivityDate="2010-12-28T03:47:00.817" CommentCount="2" />
  <row Id="30881" PostTypeId="2" ParentId="28855" CreationDate="2010-12-28T03:47:42.970" Score="0" ViewCount="" Body="&lt;p&gt;Start when I was 8. Way too early. I grew up in the wrong order.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have trouble in a lot of my courses at college because either I know more than most of my TAs (and sometimes more than my profs) and they can't keep up, or the course content is so horribly review that I simply don't know what I'd forgotten, and I can't figure out what esoteric, impractical, academically meritless garbage I need to memorize for exams.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's bad to the point where I've gotten several job offers from various large companies, including a bank software firm and MS, yet can't finish a damn comp sci minor after 8 years in college. I lost around 20% in my most recent assignment because my TA/prof weren't aware of how tree sort works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;15 is good; you'll probably also have better decision making skills than I did when I was 8, so you'll learn more efficiently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But every now and then remember to ask yourself whether you're still a well-rounded person as much as you are a good programmer.&lt;/p&gt;&#xA;" OwnerUserId="6385" LastActivityDate="2010-12-28T03:47:42.970" />
  <row Id="30882" PostTypeId="2" ParentId="4969" CreationDate="2010-12-28T03:48:37.727" Score="1" ViewCount="" Body="&lt;p&gt;My MIDI &quot;lookahead&quot; Robot (looper) as seen here for use in percussion&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=zISw_CMLC1A&amp;amp;feature=player_embedded&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=zISw_CMLC1A&amp;amp;feature=player_embedded&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;which is written in my platform &lt;a href=&quot;http://www.confusionists.com/mjdj&quot; rel=&quot;nofollow&quot;&gt;Mjdj&lt;/a&gt;, which is so cool that I'm the only user (I think).&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-12-28T03:48:37.727" />
  <row Id="30883" PostTypeId="2" ParentId="30858" CreationDate="2010-12-28T03:51:51.860" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Speed&lt;/li&gt;&#xA;&lt;li&gt;Flexibility to adapt it to your needs&lt;/li&gt;&#xA;&lt;li&gt;syntax highlighting and indenting as many programming languages as possible&lt;/li&gt;&#xA;&lt;li&gt;availability on most platforms&lt;/li&gt;&#xA;&lt;li&gt;Fast, flexible searching&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I can live without Intellisense, but I know a lot of people like it. Emacs and vim so far seem to fit my needs best. I tried the multi-IDE way (because some IDEs are strong in one area, where in others they are weak), but for me that meant not knowing any IDE particularly well.&lt;/p&gt;&#xA;" OwnerUserId="1562" LastActivityDate="2010-12-28T03:51:51.860" />
  <row Id="30884" PostTypeId="2" ParentId="16354" CreationDate="2010-12-28T03:53:40.813" Score="1" ViewCount="" Body="&lt;p&gt;We use TFS for Source control and Work Item Tracking (unfortunately), and I use &lt;a href=&quot;http://www.telerik.com/team-productivity-tools/products/tfsmanager-and-tfsdashboard.aspx&quot; rel=&quot;nofollow&quot;&gt;Telerik work item manager&lt;/a&gt; to help me record sprint plans and keep the taskboard in sync.  If you're forced to use TFS then telerik makes it less painful.&lt;/p&gt;&#xA;" OwnerUserId="11829" LastActivityDate="2010-12-28T03:53:40.813" />
  <row Id="30885" PostTypeId="1" CreationDate="2010-12-28T04:12:38.597" Score="7" ViewCount="221" Body="&lt;p&gt;After 12-15 years of working in the same industry, if a person does not have any new ideas for a startup then is it safe to say that his/her career has not reached its potential? We are not talking of implementation strategies or insights here to fructify the startup -- just great ideas which can change things for the better. Not your source code optimization. I mean a radical way of looking at things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you lot disagree with this line of thinking, then please share some examples where despite such a long span a person can end up without new ideas. &lt;/p&gt;&#xA;" OwnerUserId="8720" LastEditorUserId="8720" LastEditorDisplayName="" LastEditDate="2010-12-28T04:23:22.473" LastActivityDate="2010-12-28T11:01:10.003" ClosedDate="2010-12-28T14:49:09.253" Title="Lack of ideas for startup equals slack career?" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;startups&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="2" />
  <row Id="30886" PostTypeId="2" ParentId="30877" CreationDate="2010-12-28T04:16:34.670" Score="4" ViewCount="" Body="&lt;p&gt;Since you're a Mac guy, how about finding a couple open-source libraries or applications that are available for Linux that you find interesting and creating Mac builds for them.  &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-28T04:16:34.670" />
  <row Id="30887" PostTypeId="2" ParentId="30764" CreationDate="2010-12-28T04:26:51.550" Score="2" ViewCount="" Body="&lt;p&gt;Lots of good answers so far. (I assume the existing system is either a hopeless jumble or coded on the wrong platform) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are my thoughts:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Build your test system!&lt;/strong&gt;: Chances are the current project doesn't have one, and this is a great time to start out doing things right. This includes making the code easily testable as well.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Define success upfront&lt;/strong&gt;: When will you know the project is done? Without this you could end up reproducing much of the original system, but get mired in '&lt;em&gt;just one more thing&lt;/em&gt;' additions to the functionality.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Say NO to synchronization jobs!&lt;/strong&gt;: I spent 2 years of my development life cleaning up the mess these made in one company trying to run side-by-side systems. Poor planning and lack of business buy-in created these jobs and in the end &lt;em&gt;significantly&lt;/em&gt; slowed the final development time.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1215" LastActivityDate="2010-12-28T04:26:51.550" />
  <row Id="30888" PostTypeId="2" ParentId="30885" CreationDate="2010-12-28T04:28:14.543" Score="8" ViewCount="" Body="&lt;p&gt;If someone works for that long in an industry and never once comes up with a new idea for a product or business  (whether or not its actually acted upon), it doesnt necessarily mean they are 'slacking'.  It just means they aren't very innovative or entrepeneurial.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it'd be &lt;em&gt;extremely unusual&lt;/em&gt; after 12-15 years that someone didnt have an idea for a new product/company of some type.  Even for just a fleeting moment.   But not everyone's brain is wired for that.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-28T04:28:14.543" CommentCount="2" />
  <row Id="30889" PostTypeId="1" CreationDate="2010-12-28T04:32:16.567" Score="5" ViewCount="375" Body="&lt;p&gt;My friend said to me &quot;IT is a specialization of Computer Science&quot;. I said it isn't. Is he correct?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can someone clarify the difference between IT and CS? I know they are related but according to me  calling IT a specialization of CS doesn't make sense.&lt;/p&gt;&#xA;" OwnerUserId="3534" LastEditorUserId="3534" LastEditorDisplayName="" LastEditDate="2010-12-28T06:11:24.143" LastActivityDate="2010-12-28T18:17:38.947" Title="Information Technology -&gt; Specialization of Computer Science ?" Tags="&lt;computer-science&gt;&lt;information&gt;" AnswerCount="6" FavoriteCount="1" />
  <row Id="30890" PostTypeId="2" ParentId="30889" CreationDate="2010-12-28T04:43:17.827" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Summary&lt;/p&gt;&#xA;  &#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;Computer science deals with creating computer programs while IT&#xA;  deals with the usage of those programs&#xA;  in business.&lt;/li&gt;&#xA;  &lt;li&gt;Computer science is at the ‘lower level’ while Information technology is&#xA;  at high level, in computing terms.&lt;/li&gt;&#xA;  &lt;li&gt;Information technology integrates computer science into the business&#xA;  world for automated solutions.&lt;/li&gt;&#xA;  &lt;li&gt;Computer scientists should have low level workings of computers whereas in&#xA;  IT that’s not necessary.&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Quoted from: &lt;a href=&quot;http://www.differencebetween.net/miscellaneous/difference-between-it-and-computer-science/&quot; rel=&quot;nofollow&quot;&gt;http://www.differencebetween.net/miscellaneous/difference-between-it-and-computer-science/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8682" LastActivityDate="2010-12-28T04:43:17.827" CommentCount="2" />
  <row Id="30891" PostTypeId="2" ParentId="30885" CreationDate="2010-12-28T04:44:16.080" Score="5" ViewCount="" Body="&lt;p&gt;I think that over 12-15 years of career one has to have new ideas about the fields one is working in. It would be an exceptional case if one had no new ideas for 15 years. However, startups and businesses in general are only one way of having new ideas. There can be other ways. For example, creating a new programming language - as far as I can see, neither Python nor Ruby nor Perl are startups but one can not argue their creators are less inventive than somebody that finds a new way to sell dogfood online. I can imagine other ways - academic research, writing books, teaching, creating free software - and that's just 1% of what one can do, the list could go on and on.&lt;/p&gt;&#xA;" OwnerUserId="10080" LastActivityDate="2010-12-28T04:44:16.080" CommentCount="2" />
  <row Id="30892" PostTypeId="2" ParentId="30889" CreationDate="2010-12-28T04:45:20.403" Score="2" ViewCount="" Body="&lt;p&gt;Personal opinion on the difference:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of an IT department is an application of various Computer Science ideas.  Someone making the strategic decisions of running a project isn't likely to appear in a Computer Science curriculum while numerical analysis and symbolic computation maybe CS topics that I'm not sure would be discussed in an IT department.  While there is some overlap between the two concepts, there are some parts of each that aren't covered in the other.  System capacity planning would be another point that I doubt you'd see that in a Computer Science curriculum yet it may exist within an IT department to understand how robust are the systems and when will some need replacing versus supplementing.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2010-12-28T04:45:20.403" />
  <row Id="30893" PostTypeId="2" ParentId="30889" CreationDate="2010-12-28T04:49:41.430" Score="0" ViewCount="" Body="&lt;p&gt;Well I say IT is a subset of CSE. So basically an IT guy studies in details a part of CSE domain. So dont you all think that IT guy is specializing in a parrticular field of CSE?&lt;/p&gt;&#xA;" OwnerUserId="11832" LastActivityDate="2010-12-28T04:49:41.430" />
  <row Id="30894" PostTypeId="2" ParentId="30764" CreationDate="2010-12-28T04:50:20.650" Score="1" ViewCount="" Body="&lt;p&gt;One big thing to remember when rebuilding from scratch is &lt;strong&gt;domain knowledge&lt;/strong&gt;.  Companies often engage in 'complete rewrites' - using the most recent technologies and development projects to ensure the highest order of buzzword compliance - leading to dissappointing results because the people who knew most about the topic were not consulted with extensively.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's nothing wrong with complete re-writes.  Or mostly complete rewrites.  There's a time and a place for them.  Platforms change, technologies change... sometimes they just have to be done.  But, they are best done under the guidance of the people who are the &lt;em&gt;most expert&lt;/em&gt; at the topic - those involved in the previous implementation - for the best chances of a positive outcome.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-28T04:50:20.650" />
  <row Id="30895" PostTypeId="1" AcceptedAnswerId="30900" CreationDate="2010-12-28T04:55:53.740" Score="62" ViewCount="1411" Body="&lt;p&gt;While reviewing a coworker's code, I came across some spelling mistakes in function names and also grammatical errors like 'doesUserHasPermission()' instead of 'doesUserHavePermission()' in function and variable names.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I point these out to him? Or am I being too pedantic to notice these ? &lt;/p&gt;&#xA;" OwnerUserId="2861" LastActivityDate="2010-12-28T22:53:30.580" Title="Should I point out spelling/grammar related mistakes in someone's code ?" Tags="&lt;code-reviews&gt;&lt;grammar&gt;" AnswerCount="16" CommentCount="27" FavoriteCount="6" />
  <row Id="30896" PostTypeId="2" ParentId="28855" CreationDate="2010-12-28T04:59:23.653" Score="0" ViewCount="" Body="&lt;p&gt;I'm currently 15 years old and have been programming for merely a year, so I can't answer your question with much expertise obviously. But I definitely do think it's not too late. The thing I love about programming is you really never stop learning and you can create awesome things from only a text editor. There's always something new to be learned! That's why I love it.&lt;/p&gt;&#xA;" OwnerUserId="8682" LastActivityDate="2010-12-28T04:59:23.653" />
  <row Id="30897" PostTypeId="2" ParentId="30895" CreationDate="2010-12-28T05:01:33.600" Score="29" ViewCount="" Body="&lt;p&gt;Yes definitely.  It's easier to remember the name if it's grammatically correct.  Trying to remember the name &lt;em&gt;and&lt;/em&gt; grammar mistakes is another thing entirely.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-28T05:01:33.600" />
  <row Id="30898" PostTypeId="2" ParentId="30895" CreationDate="2010-12-28T05:02:52.920" Score="20" ViewCount="" Body="&lt;p&gt;Don't point them out as defects in a formal code review.  Instead, mark up a listing and talk with him/her PRIVATELY about them.  Be as diplomatic as possible about it, just &quot;Hey, something I noticed, and I've run into people who REALLY look down on this kind of thing, they think it makes the programmer look careless and sloppy.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this is code a customer is going to see, it absolutely MUST be corrected.  Like it or not, it DOES reflect on your company's reputation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the example you gave, I suspect it started out as UserHasPermission, and someone else told him that local practice was doesUserBlahBlah() rather than UserBlahBlah(), and he just overlooked the grammar change.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-12-28T05:02:52.920" CommentCount="12" />
  <row Id="30899" PostTypeId="2" ParentId="27564" CreationDate="2010-12-28T05:28:00.087" Score="0" ViewCount="" Body="&lt;p&gt;few things that would make my day&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Sane naming conventions for built-in functions.&lt;/li&gt;&#xA;&lt;li&gt;Type hints for strings and numerics&lt;/li&gt;&#xA;&lt;li&gt;Return type hinting&lt;/li&gt;&#xA;&lt;li&gt;E_STRICT on by default&lt;/li&gt;&#xA;&lt;li&gt;Traits, mixins, &amp;amp; multiple inheritance&lt;/li&gt;&#xA;&lt;li&gt;Everything is an object (i.e. ruby-like pureness)&lt;/li&gt;&#xA;&lt;li&gt;Add :: support to namespaces&lt;/li&gt;&#xA;&lt;li&gt;Better windows support&lt;/li&gt;&#xA;&lt;li&gt;Testing out of the box&lt;/li&gt;&#xA;&lt;li&gt;Better documentation for the underworkings of exec()&lt;/li&gt;&#xA;&lt;li&gt;Redesign of php.net with live-search&lt;/li&gt;&#xA;&lt;li&gt;Xdebug like functionality out of the box&lt;/li&gt;&#xA;&lt;li&gt;Improvement of PEAR portability - users of ruby gems should know&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11834" LastActivityDate="2010-12-28T05:28:00.087" CommunityOwnedDate="2010-12-28T05:28:00.087" />
  <row Id="30900" PostTypeId="2" ParentId="30895" CreationDate="2010-12-28T05:31:40.707" Score="132" ViewCount="" Body="&lt;p&gt;Code with spelling and grammar errors is &lt;strong&gt;&lt;em&gt;unmaintainable&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;People won't remember the bad grammar, so they'll try to call the function as it should have been written, and that's how bugs happen.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You can't grep for something in the code if you don't know how it's spelled.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;em&gt;Most&lt;/em&gt; people who make grammar/spellings do so inconsistently, so they'll introduce many bugs with mismatched naming.  This is particularly problematic in languages that don't require variables to be explicitly declared before use, because you can introduce a new spelling and your code won't come to a grinding halt to let you know you screwed up.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Correcting these problems is not pedantic, nor is it necessitated primarily by others' opinions of one's intelligence, literacy, etc (though that's a big side-effect); it is about writing &lt;strong&gt;quality, maintainable code&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-28T05:31:40.707" CommentCount="12" />
  <row Id="30901" PostTypeId="2" ParentId="30895" CreationDate="2010-12-28T05:56:08.357" Score="3" ViewCount="" Body="&lt;p&gt;I agree with other answers saying that code with grammar mistakes is unmaintainable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also want to add a few things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Code is often written by people who don't speak English very well and/or English is not their native language. If there is a grammar mistake in a code you review, this does not mean that your coworker made this error. Maybe it was just a copy-paste from a website.&lt;/li&gt;&#xA;&lt;li&gt;If English is not a native language of your coworker, it may be a good, or a very bad idea to tell her/him about this mistake. Being from France, I always welcome remarks about the errors I make in English, because it's the only way I can avoid them in future; on the other hand, I know several people who feel really hurt if you tell them about grammar mistakes they make.&lt;/li&gt;&#xA;&lt;li&gt;Like John R. Strohm said, do never do it publicly. Most of the people will be really annoyed by this.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6605" LastActivityDate="2010-12-28T05:56:08.357" CommentCount="3" />
  <row Id="30902" PostTypeId="1" CreationDate="2010-12-28T06:05:55.610" Score="2" ViewCount="105" Body="&lt;p&gt;All, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am looking for a reference guide which describes best practices for Porting code on various Unix/ Windows flavors. I can understand that there cannot be one guide which can cover all such flavors but like I mentioned I am looking for a book which describes BEST PRACTISES for porting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;thanks&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2010-12-28T13:40:04.127" Title="Best book on porting C++ code on Unix flavours" Tags="&lt;c++&gt;&lt;porting&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="30903" PostTypeId="2" ParentId="30856" CreationDate="2010-12-28T06:31:15.767" Score="5" ViewCount="" Body="&lt;p&gt;Those licenses do not do what you think they do.  Sadly, the GPL and similar licenses are widely misunderstood (even by the people that write them.  By that I mean that the law often has a different idea of what given terms mean than the license writer).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The GPL does not preclude you from using it in proprietary projects.  Many proprietary projects have dependancies on FOSS licensed applications ot libraries.  All it does is preclude you from trying to ship a binary without source, or to apply extra restrictions on those projects.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's more, if you wrote the code in the first place, even if you publish it under the GPL, you can do anything you like, and make any exception you like.  You can even stop producing code in that license and produce only proprietary licensed versions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, to answer your question.  It's become quite &quot;en vogue&quot; for companies to publish a &quot;community&quot; version of a product and an &quot;enterprise&quot; version.  Examples include Vayatta, Alfresco, Flowplayer, and a whole bunch more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea is that anyone that needs support will buy it anyways, and those that don't wouldn't buy your program anyways.  So it fosters a sort of &quot;good will&quot; even though it's really just a scheme.&lt;/p&gt;&#xA;" OwnerUserId="4368" LastActivityDate="2010-12-28T06:31:15.767" CommentCount="4" />
  <row Id="30904" PostTypeId="2" ParentId="30895" CreationDate="2010-12-28T06:41:58.637" Score="0" ViewCount="" Body="&lt;p&gt;I do it only if&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it affects the usage of the program&lt;/li&gt;&#xA;&lt;li&gt;it affects the accuracy of the program&lt;/li&gt;&#xA;&lt;li&gt;I explicitly know the author wants to be corrected.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Just as a side note, if your function names are long enough to have grammar, they're probably too long.  In the example given, I would call the function &lt;strong&gt;userHasPermission&lt;/strong&gt; and move the &quot;grammar&quot; into your code, something like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if userHasPermission() ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5069" LastActivityDate="2010-12-28T06:41:58.637" CommentCount="2" />
  <row Id="30906" PostTypeId="2" ParentId="27564" CreationDate="2010-12-28T07:00:34.567" Score="-1" ViewCount="" Body="&lt;p&gt;Have an autoload callback for &lt;code&gt;use&lt;/code&gt; statements. &lt;/p&gt;&#xA;" OwnerUserId="3139" LastActivityDate="2010-12-28T07:00:34.567" CommunityOwnedDate="2010-12-28T07:00:34.567" />
  <row Id="30907" PostTypeId="2" ParentId="4969" CreationDate="2010-12-28T07:23:27.863" Score="0" ViewCount="" Body="&lt;p&gt;A CPU simulator that can simulate itself in a nested simulation. You can pick it up here: &lt;a href=&quot;http://zvrba.net/software/cspim.html&quot; rel=&quot;nofollow&quot;&gt;http://zvrba.net/software/cspim.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-12-28T07:23:27.863" />
  <row Id="30908" PostTypeId="1" AcceptedAnswerId="30931" CreationDate="2010-12-28T07:33:38.130" Score="7" ViewCount="313" Body="&lt;p&gt;What is the difference between Hash and Dictionary. Coming from a scripting background, I feel that they are similar , but wanted to find out the exact differences, Googling did not help me much. &lt;/p&gt;&#xA;" OwnerUserId="8067" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2011-04-26T14:54:57.467" LastActivityDate="2011-04-26T14:54:57.467" Title="Difference between hash and dictionary" Tags="&lt;data-structures&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="30909" PostTypeId="2" ParentId="27564" CreationDate="2010-12-28T07:38:03.770" Score="0" ViewCount="" Body="&lt;p&gt;When I saw this thread I thought that it would be useful to mention some articles I ran into.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Sort of Groovy Groovy’s ?. operator in PHP: &lt;a href=&quot;http://justafewlines.com/2009/10/groovys-operator-in-php-sort-of/&quot; rel=&quot;nofollow&quot;&gt;http://justafewlines.com/2009/10/groovys-operator-in-php-sort-of/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Improve closures: &lt;a href=&quot;http://justafewlines.com/2009/10/whats-wrong-with-php-closures/&quot; rel=&quot;nofollow&quot;&gt;http://justafewlines.com/2009/10/whats-wrong-with-php-closures/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="11839" LastActivityDate="2010-12-28T07:38:03.770" CommunityOwnedDate="2010-12-28T07:38:03.770" CommentCount="1" />
  <row Id="30910" PostTypeId="2" ParentId="30908" CreationDate="2010-12-28T07:39:07.763" Score="2" ViewCount="" Body="&lt;p&gt;&quot;Dictionary&quot; is the name of the concept. A hashtable is a possible implementation.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-28T07:39:07.763" CommentCount="1" />
  <row Id="30911" PostTypeId="2" ParentId="30908" CreationDate="2010-12-28T07:42:33.547" Score="2" ViewCount="" Body="&lt;p&gt;A dictionary is the collective term given for any data structure implementation used for fast lookups/insertions. This can be achieved/implemented using a variety of data structures like hash table, skip lists, rb tree etc. A hash table is a specific data structure useful for many purposes including implementing a dictionary.&lt;/p&gt;&#xA;" OwnerUserId="5178" LastActivityDate="2010-12-28T07:42:33.547" CommentCount="2" />
  <row Id="30912" PostTypeId="2" ParentId="30737" CreationDate="2010-12-28T07:43:16.480" Score="5" ViewCount="" Body="&lt;p&gt;I personally think that, contrary to popular opinion, using indentation instead of explicit delimiters (braces, begin/end keywords, etc.) sucks big time.  Good luck with copy/pasting code between different indentation levels and letting the editor &lt;em&gt;automatically&lt;/em&gt; re-indent the code.  For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if some_condition:&#xA;  do something&#xA;  &amp;lt;paste in some code from elsewehere&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The editor has NO WAY of knowing whether the pasted code should be within the if-block or outside. With braces, you just have to be careful whether you paste the block before or after the closing brace, and the editor can fix up the formatting itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tried to program a bit in Python, and another big problem I found with indentation is that it's &lt;em&gt;extremely&lt;/em&gt; impractical to add code in between two (or more) closed indentation levels.  In C terms:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (x) {&#xA;  for (...) {&#xA;    if (y) {&#xA;    ...&#xA;    }&#xA;  }&#xA;  // add some new code here&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I messed up few times just thanks to lack of explicit delimiters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case: with all those smart editors and IDEs out there, indentation-based syntax solves a &lt;strong&gt;non-existing problem&lt;/strong&gt;, and creates few more additional problems along the way. It's not much better than Fortran's original fixed-column format.&lt;/p&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-12-28T07:43:16.480" CommentCount="4" />
  <row Id="30913" PostTypeId="2" ParentId="30858" CreationDate="2010-12-28T07:43:31.330" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Good command-line mode.&lt;/li&gt;&#xA;&lt;li&gt;Keybindings for everything: I shouldn't have to touch my mouse while I code.&lt;/li&gt;&#xA;&lt;li&gt;Syntax highlighting for everything I might run into, even obscure stuff.&lt;/li&gt;&#xA;&lt;li&gt;The ability to switch with ease between configurations (because I work on different projects with different coding standards).&lt;/li&gt;&#xA;&lt;li&gt;Scriptability&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-28T07:43:31.330" />
  <row Id="30914" PostTypeId="1" CreationDate="2010-12-28T07:46:53.057" Score="0" ViewCount="298" Body="&lt;p&gt;I am relatively new to IT world &amp;amp;  have two options-&#xA;1.Mobile application Developer(Android,Iphone,symbian platform).&#xA;2.Windows/web developer(J2EE,ASP.NET,PLSQL).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am a Engg.(Electronic&amp;amp; Communication) graduate.Please tell me in which field i should excel ??which field provide me lot of career opportunity and descent salary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;pramod    &lt;/p&gt;&#xA;" OwnerUserId="11841" LastEditorUserId="2673" LastEditorDisplayName="" LastEditDate="2010-12-28T11:01:57.337" LastActivityDate="2010-12-28T14:04:43.263" ClosedDate="2010-12-28T13:18:13.490" Title="Future as mobile application developer ??" Tags="&lt;career&gt;&lt;programming&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="1" />
  <row Id="30915" PostTypeId="2" ParentId="28855" CreationDate="2010-12-28T07:55:11.143" Score="0" ViewCount="" Body="&lt;p&gt;I was one of those kids who started to program at 8 years old (in C++ no less), but it wasn't really programming, I could copy and paste and make extremely simple programs (the kind with no data structures or complex loops).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It took 7-8 years learning before I could write anything useful. If I had been taut or at least knew what I wanted to learn it definitely wouldn't have taken so long.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, it's not how long you've been learning, it's the quality of the learning you are doing. People who started learning at 8 don't have a big advantage over people who start at 15 or 20.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-28T07:55:11.143" />
  <row Id="30916" PostTypeId="2" ParentId="30873" CreationDate="2010-12-28T08:03:43.193" Score="0" ViewCount="" Body="&lt;p&gt;I find the operation of DHTs (distributed hash tables) intriguing, if I was writing a thesis, that would be my choice.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-28T08:03:43.193" />
  <row Id="30917" PostTypeId="2" ParentId="30914" CreationDate="2010-12-28T08:09:36.783" Score="0" ViewCount="" Body="&lt;p&gt;All?  Really flipping a coin is your best bet if you want to make the right choice.  There are a lot of technologies to choose from. And really whichever you choose you will likely find a job.  As for pay,  that is going to go across the board in either field.  (there are a lot of similarities between the two.)&lt;/p&gt;&#xA;" OwnerUserId="1013" LastActivityDate="2010-12-28T08:09:36.783" />
  <row Id="30918" PostTypeId="1" CreationDate="2010-12-28T08:01:24.133" Score="0" ViewCount="358" Body="&lt;p&gt;What's the average wage for a programmer in ASP.NET (using c#) and c++ or java? &#xA;I'm 19 and had an interview the other day for a position like this. What sort of rate should I be expecting? &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T12:53:06.583" ClosedDate="2010-12-28T13:51:44.710" Title="Programmer's Wages" Tags="&lt;programming-languages&gt;" AnswerCount="6" CommentCount="6" />
  <row Id="30919" PostTypeId="2" ParentId="30918" CreationDate="2010-12-28T08:05:58.893" Score="2" ViewCount="" Body="&lt;p&gt;At your age I would expect &amp;lt; £20,000.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It depends where you are in the country but I am assuming you are a non-graduate. I would expect a salary of between 15-18k based on my experience in the midlands. This would go up quickly as you gain experience.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T08:13:50.793" />
  <row Id="30920" PostTypeId="2" ParentId="30918" CreationDate="2010-12-28T08:20:02.470" Score="1" ViewCount="" Body="&lt;p&gt;Here in Austria, it's something like €30K p.a. for someone of your age.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-28T08:20:02.470" />
  <row Id="30921" PostTypeId="1" CreationDate="2010-12-28T08:30:30.070" Score="1" ViewCount="71" Body="&lt;p&gt;Linq to SQL Profiler is a SQL profiler that shows request from LINQ, grouping queries, show performance issue, etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here at my company, we think to buy it, but we want experience returns on the software, and maybe other alternative (it is quite expensive).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We need a robust software for analysing thousand queries from an old application using the beginning of LINQ.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://l2sprof.com/&quot; rel=&quot;nofollow&quot;&gt;http://l2sprof.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10050" LastActivityDate="2010-12-28T08:30:30.070" ClosedDate="2010-12-28T15:18:24.340" Title="What do you think of Linq to SQL Profiler ?" Tags="&lt;asp.net&gt;&lt;sql&gt;&lt;linq&gt;" CommentCount="2" FavoriteCount="2" />
  <row Id="30922" PostTypeId="2" ParentId="30914" CreationDate="2010-12-28T08:43:29.110" Score="0" ViewCount="" Body="&lt;p&gt;I think both are good choices though I tend to lean for mobile application. One caveat though don't go for &lt;em&gt;personal&lt;/em&gt; app development as I think the field is over-hyped and is bound to burst sooner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Enterprise app development should be good though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Added: By personal apps I mean apps which are roughly equivalent to easy-to-use desktop application meant for personal use, such as calender, email client. By enterprise apps I mean apps which can be used for B2C or C2B communication.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastEditorUserId="8073" LastEditorDisplayName="" LastEditDate="2010-12-28T14:04:43.263" LastActivityDate="2010-12-28T14:04:43.263" CommentCount="1" />
  <row Id="30924" PostTypeId="2" ParentId="30914" CreationDate="2010-12-28T09:19:01.510" Score="0" ViewCount="" Body="&lt;p&gt;Go as a web developer, there is a broader set of skills to pick there... then, you can use that knowledge with &lt;a href=&quot;http://www.appcelerator.com/&quot; rel=&quot;nofollow&quot;&gt;Appcelerator Titanium&lt;/a&gt; and develop mobile apps using web technology (you can use PHP, Python and Ruby where you want, in addition to javascript), and I'm betting that there will be a lot more web-based mobile platforms to come, luckily, this one is open source and looks like it will be here to stay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I'd stay away from .NET and Java for web, and go for PHP, Python and Ruby.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S.: Appcelerator Titanium also works for desktop applications, and yes, still using web technologies, somewhat like Adobe AIR.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-28T09:19:01.510" CommentCount="2" />
  <row Id="30925" PostTypeId="2" ParentId="30914" CreationDate="2010-12-28T09:32:23.340" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Please tell me in which field i should excel ??which field provide me lot of career opportunity and descent salary.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You should excel in the field for which you have the biggest 'connection'. What do you truly love? You are (possibly) going to be doing it for a long time, so instead of worrying solely about career opportunity &amp;amp; salary, concentrate on being the best you can at what you are passionate about. &lt;/p&gt;&#xA;" OwnerUserId="2673" LastActivityDate="2010-12-28T09:32:23.340" />
  <row Id="30927" PostTypeId="2" ParentId="30895" CreationDate="2010-12-28T09:50:41.017" Score="0" ViewCount="" Body="&lt;p&gt;This also happens A LOT in my project (being populated by natively Hebrew, Russian or Arabic speaking people), but even to a higher level - often I see code that uses some obscure terminology that happens to be what the dictionary produced as the translation for what the author had in mind, and it has nothing to do with the they meant...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, when it happens so frequently and by so many team members that could have wrote the code even before I joined the project, I tend to ignore it, because it just won't matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if I'm committing some work in the same file as code or comments that have been written long ago and they have typos in the, I will correct them just because it's not too much work.&lt;/p&gt;&#xA;" OwnerUserId="9462" LastActivityDate="2010-12-28T09:50:41.017" />
  <row Id="30928" PostTypeId="2" ParentId="30908" CreationDate="2010-12-28T09:51:21.437" Score="1" ViewCount="" Body="&lt;p&gt;A &lt;strong&gt;dictionary&lt;/strong&gt; uses a key to reference the value directly inside of an &lt;strong&gt;associative array&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i.e &lt;code&gt;(KEY =&amp;gt; VALUE)&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A &lt;strong&gt;hash&lt;/strong&gt; is more often described as a &lt;strong&gt;hash table&lt;/strong&gt; which uses a &lt;strong&gt;hash function&lt;/strong&gt; to calculate the position in memory (or more easily an array) where the value will be. &lt;em&gt;The hash will take the KEY as input and give a value as output. Then plug that value into the memory or array index.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i.e &lt;code&gt;KEY =&amp;gt; HASH FUNCTION =&amp;gt; VALUE&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess one is direct while the other isn't. Hash functions may not be perfect either and may sometimes provide an index referencing the wrong value. But that can be corrected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best place to look: Wikipedia (&lt;em&gt;associative array&lt;/em&gt; and &lt;em&gt;hash table&lt;/em&gt;)&lt;/p&gt;&#xA;" OwnerUserId="10442" LastActivityDate="2010-12-28T09:51:21.437" />
  <row Id="30929" PostTypeId="2" ParentId="30918" CreationDate="2010-12-28T09:52:40.287" Score="0" ViewCount="" Body="&lt;p&gt;In Spain you should expect a very low salary, around €9-12k (I'm currently earning €7.2K, being a non-graduate), that number can rise if you go to Barcelona or Madrid, but not too much (maybe €12-15k)&lt;/p&gt;&#xA;" OwnerUserId="11848" LastActivityDate="2010-12-28T09:52:40.287" />
  <row Id="30930" PostTypeId="2" ParentId="30914" CreationDate="2010-12-28T09:55:35.677" Score="1" ViewCount="" Body="&lt;p&gt;Learning web development will give you the broadest skill set which you can later apply to specialty domains if you choose to specialize. I recently dabbled in C# and windows application development and it was really hard to tell the difference from developing a regular web application. The mechanics were practically the same.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastEditorUserId="7146" LastEditorDisplayName="" LastEditDate="2010-12-28T10:01:29.183" LastActivityDate="2010-12-28T10:01:29.183" />
  <row Id="30931" PostTypeId="2" ParentId="30908" CreationDate="2010-12-28T10:09:22.147" Score="17" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;code&gt;Hash&lt;/code&gt;&lt;/strong&gt; is an extremely poorly named data structure where the programmer has confused the interface with implementation (&lt;em&gt;and&lt;/em&gt; was too lazy to write the full name, i.e. &lt;code&gt;HashTable&lt;/code&gt; instead resorting to an abbreviation, &lt;code&gt;Hash&lt;/code&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;code&gt;Dictionary&lt;/code&gt;&lt;/strong&gt; is the “correct” name of the interface (= the ADT), i.e. an associative container that maps (usually unique) keys to (not necessarily unique) values.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A hash table is &lt;em&gt;one&lt;/em&gt; possible implementation of such a dictionary that provides quite good access characteristics (in terms of runtime) and is therefore often the default implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Such an implementation has two important properties:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;the keys have to be &lt;em&gt;hashable&lt;/em&gt; and &lt;em&gt;equality comparable&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;the entries appear in no particular order in the dictionary.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;(For a key to be hashable means that we can compute a numeric value from a key which is subsequently used as an index in an array.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There exist alternative implementations of the dictionary data structure that impose an &lt;em&gt;ordering&lt;/em&gt; on the keys – this is often called a &lt;em&gt;sorted&lt;/em&gt; dictionary (and is usually implemented in terms of a search tree, though other efficient implementations exist).&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;To summarize: a &lt;em&gt;dictionary&lt;/em&gt; is an ADT that maps keys to values. There are several possible implementations of this ADT, of which the &lt;em&gt;hash table&lt;/em&gt; is one. &lt;code&gt;Hash&lt;/code&gt; is a misnomer but in context it’s equivalent to a dictionary that is implemented in terms of a hash table.&lt;/p&gt;&#xA;" OwnerUserId="2366" LastEditorUserId="2366" LastEditorDisplayName="" LastEditDate="2010-12-28T10:15:34.230" LastActivityDate="2010-12-28T10:15:34.230" CommentCount="4" />
  <row Id="30936" PostTypeId="2" ParentId="1985" CreationDate="2010-12-28T10:32:04.133" Score="1" ViewCount="" Body="&lt;p&gt;There's a cute Flash game, called &lt;a href=&quot;http://www.kongregate.com/games/Coolio_Niato/light-bot&quot; rel=&quot;nofollow&quot;&gt;light-Bot&lt;/a&gt;, which teaches you, what does &lt;i&gt;instruction&lt;/i&gt;, &lt;i&gt;program execution&lt;/i&gt; and &lt;i&gt;subroutine&lt;/i&gt; means, just while you're playing.&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-12-28T10:32:04.133" />
  <row Id="30937" PostTypeId="1" CreationDate="2010-12-02T21:15:08.843" Score="5" ViewCount="179" Body="&lt;p&gt;Here are a few that I've been looking at:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.reviewboard.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.reviewboard.org/&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://code.google.com/p/rietveld/&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/p/rietveld/&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://codestriker.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;http://codestriker.sourceforge.net/&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://jcodereview.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;http://jcodereview.sourceforge.net/&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I'm curious if anyone has any experiential wisdom with these tools or any others.&lt;/p&gt;&#xA;" OwnerUserId="12255" LastActivityDate="2010-12-28T10:42:26.363" ClosedDate="2010-12-28T14:39:30.067" Title="What's your favorite code review tool?" Tags="&lt;code-reviews&gt;" AnswerCount="2" CommentCount="0" />
  <row Id="30938" PostTypeId="2" ParentId="30937" CreationDate="2010-12-02T21:20:29.047" Score="0" ViewCount="" Body="&lt;p&gt;I can't say I've worked with any of the tools mentioned but have used other tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We use Code Collaborator (commercial) at our shop and it does a decent job of getting comments in line and integrates nicely with perforce. One slick feature is that it inspects the comments and can automatically create links from items like &quot;line 30&quot; and filenames.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm also working with another project using git and gerrit. Gerrit has some nice features to integrate with the build pipeline that makes setting up work flows pretty slick. I think it was forked from rietveld so they might share a lot of features. &lt;/p&gt;&#xA;" OwnerUserId="12472" LastActivityDate="2010-12-28T10:42:26.363" />
  <row Id="30939" PostTypeId="2" ParentId="30937" CreationDate="2010-12-26T16:02:58.793" Score="0" ViewCount="" Body="&lt;p&gt;We have had good experience with ReviewBoard.&lt;/p&gt;&#xA;" OwnerUserId="1433" LastActivityDate="2010-12-28T10:42:26.363" />
  <row Id="30942" PostTypeId="1" CreationDate="2010-12-28T10:49:03.143" Score="11" ViewCount="557" Body="&lt;p&gt;I prefer to use free software, because I believe its more universal (I can use it anywhere, I can tell people about it and they will have no problem with using it) - I like to say &quot;learn once, use anywhere&quot;. I was wondering why people use not free software when free alternatives exists? (for example JIRA, Clover for code coverage, not free marge tools, etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. I only use TotalCmd that is not free, but I was not able to find any good alternative(I even wrote one myself, but It was not as great).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. I dont want to start any flame war, I'm just curious what is your take on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. I admit that I want to get to know what features makes not free software cool.&lt;/p&gt;&#xA;" OwnerUserId="929" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-28T13:33:23.750" LastActivityDate="2010-12-28T17:46:21.267" ClosedDate="2010-12-28T23:26:30.847" Title="Why do you use not free software and what not free software do you use?" Tags="&lt;open-source&gt;&lt;software&gt;&lt;free-software&gt;&lt;language-choice&gt;&lt;decisions&gt;" AnswerCount="10" CommentCount="7" FavoriteCount="5" />
  <row Id="30945" PostTypeId="2" ParentId="30885" CreationDate="2010-12-28T11:01:10.003" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Creating a startup&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the idea that you must create a startup to reach the potential of your career your interpretation of the disinformation sent by our world full of appearances.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should be able to do that in your current job position. If you are not authorized to take such decisions yet do necessary things to increase your &lt;a href=&quot;http://www.breakoutofthebox.com/circle.htm&quot; rel=&quot;nofollow&quot;&gt;circle of influence&lt;/a&gt;. Things will come naturally with time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every company in the world needs people like you that wants to change the world. Start today.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having your own startup is an option, but it's a &lt;a href=&quot;http://www.blogtrepreneur.com/2009/03/04/small-business-startup-myths/&quot; rel=&quot;nofollow&quot;&gt;myth&lt;/a&gt; that you will do 100% of what you like. You are in a better position today.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Having no ideas&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's like a**h#le, everybody has one. The difference is that some people are hyperactive and &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/157675006X&quot; rel=&quot;nofollow&quot;&gt;catch them all&lt;/a&gt; and others just don't care.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are patient enough and attentive, you'll get many of them. First you have to stop worrying and enjoy your actual life. Worrying about the life you &lt;em&gt;could&lt;/em&gt; have is counterproductive.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-12-28T11:01:10.003" />
  <row Id="30946" PostTypeId="1" AcceptedAnswerId="30979" CreationDate="2010-12-28T11:06:52.887" Score="1" ViewCount="231" Body="&lt;p&gt;I have a question that has been rather bugging me as of late.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone know how one can create a google wave clone using php/mysql/jquery as primary points of development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any ideas on how this might be possible and recommend any starting points?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have some time off work and it would be an interesting project to undertake as i want to use it in an e-learning framework next year. i will be testing the product on a XAMPP local server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I understand some of the technologies that google wave using but i am rather curious as to how these can be developed to a decent standard using php/mysql/jquery (i mention these three because i am quite adept at them).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any links to resources best suited to an intermediate programmer would be appreciated. many thanks and God bless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So far i have this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://konrness.com/javascript/google-wave-style-scroll-bar-jquery-plugin/&quot; rel=&quot;nofollow&quot;&gt;http://konrness.com/javascript/google-wave-style-scroll-bar-jquery-plugin/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11852" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-12-28T13:20:09.860" LastActivityDate="2010-12-28T13:20:09.860" ClosedDate="2010-12-28T21:57:51.313" Title="Creating a google wave clone using php/mysql/jquery" Tags="&lt;php&gt;&lt;mysql&gt;&lt;jquery&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="1" />
  <row Id="30947" PostTypeId="2" ParentId="30942" CreationDate="2010-12-28T11:08:17.410" Score="27" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Free software is an illusion&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It doesn't exist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;strong&gt;price&lt;/strong&gt; of the software is not its &lt;strong&gt;cost&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless its &lt;em&gt;price&lt;/em&gt; you must take in consideration the total &lt;em&gt;cost&lt;/em&gt; of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;price&lt;/li&gt;&#xA;&lt;li&gt;deployment/installation efforts&lt;/li&gt;&#xA;&lt;li&gt;learning how to use it * number of users&lt;/li&gt;&#xA;&lt;li&gt;support&lt;/li&gt;&#xA;&lt;li&gt;lack of features&lt;/li&gt;&#xA;&lt;li&gt;lack of stability&lt;/li&gt;&#xA;&lt;li&gt;other softwares needed to use it properly&lt;/li&gt;&#xA;&lt;li&gt;extra competence you need in house&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If the cost of your &lt;em&gt;free&lt;/em&gt; software is lower than its &lt;em&gt;commercial&lt;/em&gt; counterpart, then it's more interesting to go for the &lt;em&gt;free&lt;/em&gt; alternative. However if the &lt;em&gt;free&lt;/em&gt; alternative cost more for your organization than the &lt;em&gt;commercial&lt;/em&gt; counterpart, you should pick the &lt;em&gt;commercial&lt;/em&gt; one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One example of free counterpart that is far better than its commercial alternatives: &lt;a href=&quot;http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.aspx&quot; rel=&quot;nofollow&quot;&gt;Eazfuscator&lt;/a&gt;, I still not understand why it still free. Easy to install, almost nothing to learn (intuitive user interface), great (free) support, all the features I need, very stable, no supporting components to intall and standard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please consider &lt;strong&gt;cost&lt;/strong&gt; and not &lt;strong&gt;price&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-28T14:33:44.280" LastActivityDate="2010-12-28T14:33:44.280" CommentCount="21" />
  <row Id="30948" PostTypeId="2" ParentId="30942" CreationDate="2010-12-28T11:13:09.110" Score="7" ViewCount="" Body="&lt;p&gt;I use proprietary software (as opposed to open source) when the features, usability, and/or quality of it is much better than the open sourced alternative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some examples are Matlab (as opposed to Octave), Skype (I'm not sure if there's an open source IM protocol), Sun Java (as opposed to OpenJDK).&lt;/p&gt;&#xA;" OwnerUserId="10961" LastActivityDate="2010-12-28T11:13:09.110" CommentCount="4" />
  <row Id="30949" PostTypeId="2" ParentId="30942" CreationDate="2010-12-28T11:31:03.533" Score="5" ViewCount="" Body="&lt;p&gt;&quot;Learn once, use anywhere&quot; isn't necessarily true just because something is open source. Look at the number of distributions of Linux there are, for instance, and the subtle differences of each. The difference in shells and desktop environments is a huge example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might look like there's less incentive to cause vendor lock-in in &quot;Free&quot; software, but it's still there. Even projects like Linux are 75% written by paid programmers, so the same monetary motives still exist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, open source to me is just a business model more than anything. I think it's silly to cast any value judgment about a piece of software based on whether or not it's free or &quot;Free&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm more worried about open &lt;em&gt;protocols&lt;/em&gt; and &lt;em&gt;standards&lt;/em&gt; than I am about free software. Java's open source but Oracle's suing Google; Microsoft chiefly makes proprietary software but many of their standards are open.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It cuts both ways, really. Free software is really just an alternate business model -- nothing more, nothing less. If my favorite software uses it, cool. If not, oh well -- so long as the price is fair.&lt;/p&gt;&#xA;" OwnerUserId="6385" LastActivityDate="2010-12-28T11:31:03.533" CommentCount="15" />
  <row Id="30952" PostTypeId="2" ParentId="1985" CreationDate="2010-12-28T11:41:59.110" Score="0" ViewCount="" Body="&lt;p&gt;I usually just say &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;I write knitting recipes.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Most grandmothers understand that this includes&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Strict directions to be followed&lt;/li&gt;&#xA;&lt;li&gt;Loops (repeat X times)&lt;/li&gt;&#xA;&lt;li&gt;Conditionals (for size L do this, for size S do that)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Maps quite nicely actually.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-28T11:41:59.110" />
  <row Id="30953" PostTypeId="2" ParentId="30942" CreationDate="2010-12-28T11:47:38.793" Score="4" ViewCount="" Body="&lt;p&gt;In general I prefer free &lt;em&gt;alternatives&lt;/em&gt;, because of the karma (and other things). Given the time I spend in front of the UI, I have an inclination towards good-looking interfaces, which is why I am willing to accept the fact, that you can't easily hack around Cocoa and Aqua (except you are Amit Singh: &lt;a href=&quot;http://itunes.apple.com/us/podcast/23c3-video-recordings/id250392145#&quot; rel=&quot;nofollow&quot;&gt;http://itunes.apple.com/us/podcast/23c3-video-recordings/id250392145#&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another example: I use TextMate. I used XEmacs at work and it was fine – and much more hackable (same goes for vim). TextMate just looks quite good and it's simple - but not so simple, that I could recode it in a weekend. &lt;/p&gt;&#xA;" OwnerUserId="436" LastEditorUserId="436" LastEditorDisplayName="" LastEditDate="2010-12-28T17:03:08.907" LastActivityDate="2010-12-28T17:03:08.907" />
  <row Id="30956" PostTypeId="1" AcceptedAnswerId="30971" CreationDate="2010-12-28T12:08:37.353" Score="1" ViewCount="199" Body="&lt;p&gt;I'll be trying to sell my Ruby on Rails development skills to &lt;em&gt;small local businesses&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems I'd be shooting myself in the foot if I couldn't manage to put their apps into production, in fact catering for this would be a selling point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, &lt;strong&gt;I do not want to bill every client monthly for the cost of their hosting&lt;/strong&gt;, they would have to be the contract holders with the hosting service, and &lt;em&gt;I'd only consult if they needed technical help when scaling&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've looked on one hand at cloud platforms, like engine yard, which seem like they would be too costly for the smaller clients, and on the other hand at vps providers which seem they would not be client friendly enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone faced the same issue and come up with a decent solution ?&lt;/p&gt;&#xA;" OwnerUserId="2115" LastEditorUserId="2115" LastEditorDisplayName="" LastEditDate="2010-12-28T12:29:06.937" LastActivityDate="2011-01-04T20:45:41.373" Title="Catering for client's web-hosting needs, minus the headaches ?" Tags="&lt;web-development&gt;&lt;ruby-on-rails&gt;&lt;freelance&gt;&lt;client&gt;&lt;web-hosting&gt;" AnswerCount="7" />
  <row Id="30957" PostTypeId="2" ParentId="30942" CreationDate="2010-12-28T12:09:06.030" Score="8" ViewCount="" Body="&lt;p&gt;One word, &quot;Usability&quot; (Please ignore what follows this is entered for sake of word limit )&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-28T12:09:06.030" CommentCount="2" />
  <row Id="30958" PostTypeId="2" ParentId="30048" CreationDate="2010-12-28T12:12:52.313" Score="0" ViewCount="" Body="&lt;p&gt;The reason that you should learn the new language is that apps written in those &quot;high level scripting ... SOMETHING&quot;... are slow, buggy, basically sucks. If you want to do real client app developement - bad idea. For experimenting - great, you won't waste too much time if you want just to test/play.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;We are in the enviable position now of having high level scripting languages that work with all of the major GUI toolkits.&lt;/em&gt;&lt;br&gt;&#xA;Yes we are and they all suck. Have you seen ANY good application using those? Neither have i. Any good windows GUI app in PHP or Python? None.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;This is all fine and good, and if you are building a serious project..&lt;/em&gt;&lt;br&gt;&#xA;Then you'll fail and the result will be DECADES behind of what could be done using c# that's not too hard to learn. That's simple, c# is designed specifically to do windows desktop apps. Everything is integrated (IDE, language, form designer, code), you will get nowhere near level of &quot;high level, single purpose programming language&quot; using some &quot;general purpose (read no-purpose) high level scripting language&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand you can have multi-platform UIs using HTML and it works well :) That's because it's not &quot;general purpose&quot; :)&#xA;If you want real cross-platform native apps, then why not java?&lt;/p&gt;&#xA;" OwnerUserId="11827" LastActivityDate="2010-12-28T12:12:52.313" />
  <row Id="30960" PostTypeId="2" ParentId="30877" CreationDate="2010-12-28T12:33:44.153" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://openhatch.org/&quot; rel=&quot;nofollow&quot;&gt;http://openhatch.org/&lt;/a&gt; is a site dedicated to getting people into Open Source. Mostly by promoting little things you can easily do for projects.&lt;/p&gt;&#xA;" OwnerUserId="11727" LastActivityDate="2010-12-28T12:33:44.153" />
  <row Id="30961" PostTypeId="2" ParentId="30914" CreationDate="2010-12-28T12:34:06.133" Score="0" ViewCount="" Body="&lt;p&gt;Go for the one which you love the most. Because in that case, you will do your maximum because you really love doing it. Then the outcome will be great. Money will follow you automatically. You just don't think about money. Because thinking about money at the first place will bring many obstacles. Next people have a natural tendency to be inclined with a particular language. They feel more comfortable with it. Identify yours.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-12-28T12:34:06.133" />
  <row Id="30962" PostTypeId="2" ParentId="30956" CreationDate="2010-12-28T12:34:15.727" Score="1" ViewCount="" Body="&lt;p&gt;Cloud? :) Are you mad? It's just a marketing hype to sell overpriced services to customers that don't need them. Maybe a week ago i saw some stupid HTML5 game that was advertised to be &quot;hosted on cloud&quot; and &quot;not using flash&quot;. Static HTML files, can this FUD get any dumber?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's appaling that something as serious as IT is so dependable on fashion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But to the point: Probably any VPS for $15-20/month will do for you. VPS services are little overpriced compared to servers too (but not 5-20x like clouds), for 8 euros month you can get this: &lt;a href=&quot;http://www.hetzner.de/de/hosting/produkte_vserver/vq7/&quot; rel=&quot;nofollow&quot;&gt;http://www.hetzner.de/de/hosting/produkte_vserver/vq7/&lt;/a&gt; that'll be enough for you and you can host sites of your 20 friends on this :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally i'd get myself some reseller account on a RoR hosting. Managing your own server isn't worth saving 20 USD a month. If you think it is... probably the idea of selling RoR dev skills isn't as nice as you think, and maybe better to explore some other options :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Small local clients doesn't need computing power or gigabytes of space. Small websites with 300 hits / day. Anything can host it. For costumers with thousands of clients... you don't want to buy server farm that'll idle waiting for a client ;)&lt;/p&gt;&#xA;" OwnerUserId="11827" LastActivityDate="2010-12-28T12:34:15.727" />
  <row Id="30963" PostTypeId="2" ParentId="30737" CreationDate="2010-12-28T12:37:19.063" Score="-1" ViewCount="" Body="&lt;p&gt;Yeah, the problem with Java is that you add all the features that you think is cool and in the end it looks like a horrible gorilla.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-12-28T12:37:19.063" CommentCount="2" />
  <row Id="30964" PostTypeId="2" ParentId="30918" CreationDate="2010-12-28T12:39:54.923" Score="0" ViewCount="" Body="&lt;p&gt;I am based in the midlands uk, and Nick was spot on about the salary being  &amp;lt; £20,000 for the relative experience you have, which I am guessing is minimal at your age... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't worry too much right now about the money side, try and secure a graduate role and then once your in, its all about gathering experience in the technology for the next 2-3 years which you will do in a commercial environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After 2-3 years - provided you have done well you can expect to obtain between £25k - £30k, an obviously the ranges will increase with the more experience you obtain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: Your current employer may not see the need to increase your salary after 2-3 years to match the £25-30k band, in which case you will need to look elsewhere.&lt;/p&gt;&#xA;" OwnerUserId="7885" LastActivityDate="2010-12-28T12:39:54.923" />
  <row Id="30965" PostTypeId="2" ParentId="27564" CreationDate="2010-12-28T12:45:05.813" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Immutable value objects&lt;/li&gt;&#xA;&lt;li&gt;Anonymous classes and/or classes as objects&lt;/li&gt;&#xA;&lt;li&gt;Builtin object equivalent to string data type (mentioned earlier)&lt;/li&gt;&#xA;&lt;li&gt;Annotations or Python-like decorators&lt;/li&gt;&#xA;&lt;li&gt;Singleton objects like in Scala&lt;/li&gt;&#xA;&lt;li&gt;Default errors as exceptions (mentioned earlier)&lt;/li&gt;&#xA;&lt;li&gt;UTF8 support&lt;/li&gt;&#xA;&lt;li&gt;Removal of global etc&lt;/li&gt;&#xA;&lt;li&gt;Unified access principle - one way to call object methods and manipulating properites (see Scala)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="11858" LastActivityDate="2010-12-28T12:45:05.813" CommunityOwnedDate="2010-12-28T12:45:05.813" />
  <row Id="30966" PostTypeId="2" ParentId="30918" CreationDate="2010-12-28T12:46:56.803" Score="1" ViewCount="" Body="&lt;p&gt;Your wage depends on experience, competency, country -&gt; region, employer-convincing power, and degree of relationship (family, close friend, etc) with employer.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-28T12:46:56.803" />
  <row Id="30967" PostTypeId="2" ParentId="30918" CreationDate="2010-12-28T12:53:06.583" Score="2" ViewCount="" Body="&lt;p&gt;It is pretty funny to see the differences in pay. That same job in the US, given a college degree, would pay anywhere from $40,000 to $90,000+ depending on where you live. The reason for the large gap is because if the vast difference in the cost of living in the US. It is highly dependent on where you live.&lt;/p&gt;&#xA;" OwnerUserId="3421" LastActivityDate="2010-12-28T12:53:06.583" CommentCount="3" />
  <row Id="30968" PostTypeId="2" ParentId="30889" CreationDate="2010-12-28T12:56:50.970" Score="5" ViewCount="" Body="&lt;p&gt;Without consulting the web and garnering from what I've seen on job ads, people in the field, etc... I think IT is a very very broad term describing the computer industry geared towards business. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;People in IT don't necessarily even need to know how to program. You could be doing basic sys admin stuff or even tech support and still be under the IT department. You could be doing serious load balancing for your whole company infrastructure, and still be the IT guy. So in my opinion, it's more general in the perspective of an outsider. &lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-28T12:56:50.970" CommentCount="1" />
  <row Id="30969" PostTypeId="2" ParentId="30889" CreationDate="2010-12-28T13:02:50.260" Score="0" ViewCount="" Body="&lt;p&gt;In my understanding, IT is the practical application, while CS is the theoretical background. For that practical application, IT needs to consider topics outside the range of CS, e.g. many hardware topics. On the other hand, as a science, CS is concerned with some topics that have no application in IT, e.g. everything that CS proves impossible.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-28T13:02:50.260" />
  <row Id="30970" PostTypeId="2" ParentId="30956" CreationDate="2010-12-28T13:05:32.080" Score="0" ViewCount="" Body="&lt;p&gt;If you can do JRuby on Rails then you should be able to deploy to the Google Application Engine, which is very cheap for low traffic site.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-28T13:05:32.080" />
  <row Id="30971" PostTypeId="2" ParentId="30956" CreationDate="2010-12-28T13:06:48.277" Score="6" ViewCount="" Body="&lt;p&gt;It seems that you are missing out on some potential revenue by making that restriction--worse, you may lose business because of it.  Here's the deal with local small businesses (a good friend of mine runs an IT support business that caters to this market): they don't want to deal with the headaches of hosting companies.  If something went wrong, the hosting company most likely isn't going to know anything about the app you deployed.  They won't be able to diagnose the problems and bring the system back to functioning perfectly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your best bet is to find someone who caters to the IT support (such as my friend) while you sell application development skills.  The IT support company takes care of the monthly billing, and first line support role.  This takes the monthly responsibilities off your shoulders (what you want) without leaving the small business with a &quot;dump and run&quot; application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fewer moving parts you have in your application the easier it is to troubleshoot and support the application.  When you throw cloud computing in the mix, it's just going to make things more complicated.  And what if the cloud isn't accessible for some reason?  Systems fail.  Will the application also die?&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-28T13:06:48.277" />
  <row Id="30972" PostTypeId="2" ParentId="4969" CreationDate="2010-12-28T13:08:05.797" Score="0" ViewCount="" Body="&lt;p&gt;Despite being many, many years ago, the coolest thing (to me) was getting two Amiga 500s talking to each other via a serial cable, using 68K assembly language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Way more fun than this new fangled interwebs rubbish. ;-)&lt;/p&gt;&#xA;" OwnerUserId="1949" LastActivityDate="2010-12-28T13:08:05.797" />
  <row Id="30973" PostTypeId="2" ParentId="27564" CreationDate="2010-12-28T13:12:04.260" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Let scalars be treated like objects. If I try to do $scalar-&gt;toLower(); why tell me I'm wrong? Why not just temporarily cast it to something like a &quot;Scalar&quot; object type and then move to &quot;undefined method&quot; (perhaps not do this as null)?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Remove resources from userspace. PHP has objects now. Everything that's a resource now can be in a object wrapper that hides it as a private property. Functionality may need to be added for __sleep() and __wakeup(). Most resources can be easily recreated in a &quot;similar&quot; state. Even if they can't, the PDO object can't be serialized: I assume the same can be done with other objects.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Let the actual PHP community make votes with their code: allow us to redefine existing methods, classes, and functions. Bad code will rot, just like it does in Javascript. It'll let the people using PHP figure out what they need instead of needing to guess all of the time. The functions and functionality used/overridden the most likely needs to be considered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This also has the side-effect of involing the PHP community with the UTF (hopefully UTF-8) issues. Instead of having a system-wide setting that turns unicode on or off, PHP developers can override the functionality they need for just their application.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make _ an implcit namespace separator. People have been using it since PHP5, let people build off their code instead of rewriting if for PHP 5.3. I don't know the complexities of it. I know there's initially some thought about code that does class names like Zend_Exception: Allow it, the developer will always have to access it as Zend_Exception or \Zend\Exception and never Exception. Treat it as a full name instead of just part of one.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;OOP: take some hints from Javascript/Actionscript/Python. Traits look promising, but changing type dynamically at runtime would be awesome. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Properties: I see talks are in the works about properties, please implement them dynamically. PHP is supposed to be a dynamic language. We should be able to define properties (just about everything) at runtime.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Treat constants as what their used for: global variables. Classes/Functions/Namespaces all fit this bill. Maybe when everyone starts realizing that they're all globals right now there will be more ideas to fix the issue of there being so many global variables/constants.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;JIT-compiling: Javascript can do it and be super-fast. PHP is one of the few ones behind in this one.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;PHP is supposed to be optimized for &quot;Hypertext&quot;, yet there's no easy way to escape output as such. Personally, I'd redefine the 'print' to do an htmlspecialchars(). Overall, it may just need to be a printh or echoh.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Simplify php.ini. php.ini is for System Administrators, not developers. Remove the incompatibilities of short tags, fix them, or remove them. Its annoying for system administrators to be able to turn features of the language on/off for the entire system. And work around them when trying to distribute software.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Allow PHP developer to exist after a request cycle ends (for FastCGI and Apache). Expose this over an API. Allow the system administrator to disable or limit this. (Require the php program to return control to the dispatcher within 10 seconds or it loses its persistant status).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make PHP a general programming language. &amp;lt;?php tags are annoying: make it not required when you detect a !#/...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Shortand for creating objects {} and arrays[], Taje a look at &lt;a href=&quot;http://code.google.com/p/pihipi/&quot; rel=&quot;nofollow&quot;&gt;PiHiPi&lt;/a&gt;, they implement this and a lot of other simple syntactical sugars.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;14: Allow [] to access properties and functions on objects. Functions and Classes are first-class citizens now, right? Make [] the de-facto way (like javascript/actionscript) for accessing things dynamically on objects.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Allow PHP code to be PHP modules. I shouldn't have to learn C just to make my library available system-wide in multiple processes. Let the PHP community figure this one out more.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Instead of taking ideas from Java/C, take them more from dynamic languages like Javascript, Actionscript, and Python. More specific functionality is listed below.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Fatal Errors: why are most errors still not recoverable? I love the notion of logging errors in a log file (implemented at a very high level). What I don't like is always hearing about a &quot;white page&quot;. I do a lot of checks and declarations in my code to avoid these: but when someone passes a null instead of an object to my function, god forbid that PHP can recover from such a catastrophic without making me do an is_null() myself. Sure its an error, it just seems silly that most other languages call this a NullReferenceError/Exception that can be dealt with and presented with more than just a white screen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the very least, stop adding fatal errors. I have the ability to upgrade a lot of servers running PHP 5.2, but I can't: because I don't have time to go through ~200 sites on each server to fix the old code. The less new fatal errors you add, the more likely you can get people on board with new versions of PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remove as many fatal errors from the language as possible. PHP is supposed to be a dynamic language: why can every other language recover from most errors PHP considers fatal? Programmers can work around errors, but not if the program forcibly dies after what most languages consider a NullReferenceException.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make exceptions resumable. So we can more easily intermix exceptions and errors.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;(The most time-consuming and unlikely) Separate out the language-discussion, API/module discussion, and the interpreter discussion. They shouldn't be so integrated like right now. Issues with the current interpreter should be figured out last. Pypy/Parrot/JVM all support multiple languages. V8 doesn't, but its fast enough that some are working to compile other languages into JavaScript to run on V8 and take advantage of its capabilities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a interpretter/runtime/vm, the development goals are a bit different than a language. With PHP, it feels as if they're one in the same. So people who try developing other interpreters are having a hard time keeping up with discussions when all of the language-design discussion is mixed in with the PHP-interpreter discussion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an interpreter, I feel that the more languages the interpreter supports the better. Why can't we have a &amp;lt;?python or a &amp;lt;?javascript or a &amp;lt;?actionscript. I'm tired of rewriting code in another language so I may use it there. Some are already trying to do this, it'd likely rally up support from other areas of the community.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7144" LastEditorUserId="7144" LastEditorDisplayName="" LastEditDate="2011-01-01T00:04:45.153" LastActivityDate="2011-01-01T00:04:45.153" CommunityOwnedDate="2010-12-28T13:12:04.260" CommentCount="3" />
  <row Id="30974" PostTypeId="1" CreationDate="2010-12-28T13:06:02.473" Score="7" ViewCount="743" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/14744/i-dont-know-c-and-why-should-i-learn-it&quot;&gt;I don&amp;#39;t know C.  And why should I learn it?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;My goal is to be able to create online apps and dynamic, database driven websites. For instance, if in the future I get the idea for the next Digg or Facebook, I want to be able to code it myself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To arrive there I think I have basically two paths:&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Path 1&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Start at a basic level, learning C, then C++ for OOP, then algorithms and data structures, with the goal of getting a solid grasp of computer programming. Only then move to PHP/MySQL/HTTP and start working on practical programming projects.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Path 2&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Start directly with PHP/MySQL/HTTP and getting my hands dirty with practical projects right away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would you guys recommend?&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T19:55:52.730" ClosedDate="2010-12-28T23:27:03.640" Title="Should I Learn C/C++ Even If I Just Want To Do Web Programming?" Tags="&lt;php&gt;&lt;c++&gt;&lt;c&gt;&lt;web&gt;" AnswerCount="21" CommentCount="4" FavoriteCount="2" />
  <row Id="30975" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T13:09:59.313" Score="1" ViewCount="" Body="&lt;p&gt;I love PHP, but it is not the best language to learn programming, as it is very permissive and sometimes encourages dirty programming habits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Getting a solid foundation in clean C or C++, and OOP first and then switching to PHP is definitely an option worth considering. You will have little trouble learning PHP afterwards.&lt;/p&gt;&#xA;" OwnerUserId="4771" LastEditorUserId="4771" LastEditorDisplayName="" LastEditDate="2010-12-28T15:39:37.940" LastActivityDate="2010-12-28T15:39:37.940" CommunityOwnedDate="2010-12-28T13:12:01.093" CommentCount="3" />
  <row Id="30976" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T13:11:39.517" Score="5" ViewCount="" Body="&lt;p&gt;I would pick option 2.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do agree that if you have C++ or C background it helps.&#xA;but if you don't - just skip it and lean to properly use the tools that you need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This does not mean however that you should not learn stuff like OOP, Algorithms &amp;amp; Data Structures. It just means that you can do all that using PHP.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T13:14:40.070" CommentCount="1" />
  <row Id="30977" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T13:12:43.730" Score="-1" ViewCount="" Body="&lt;p&gt;Go and learn the basics: C and then C++ for OOP.&#xA;It's important to understand those languages before learning high level languages.&#xA;Although learning PHP as a first programming language can be possible but not recommended.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T13:14:40.070" CommentCount="6" />
  <row Id="30978" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T13:13:38.200" Score="1" ViewCount="" Body="&lt;p&gt;You could start at a basic level with PHP (PHP5 is OOP) directly. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway you should consider doing algorithmic and data structures, this is the basic knowledge. Know how to transform your way of thinking into code, data, etc... and then apply it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Iy you start directly with coding, you may be better in the first time because you'll have practical knowledge, but this doesn't mean you'll be able to write code efficiently.&lt;/p&gt;&#xA;" OwnerUserId="9381" LastActivityDate="2010-12-28T13:14:40.070" CommentCount="4" />
  <row Id="30979" PostTypeId="2" ParentId="30946" CreationDate="2010-12-28T13:19:10.190" Score="1" ViewCount="" Body="&lt;p&gt;I can't tell you how to program in PHP/MySQL/JQuery, but I can point you to the APIs that wave supports:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://code.google.com/apis/wave/&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/apis/wave/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's the deal.  Google wave is a very complicated piece of work with so many different things that you need to keep track of that you will need to tackle the problem piece by piece.  You'll have to worry about routing the keystrokes to the correct client using AJAX.  You'll have to worry about browser compatibility (if you can only use Chrome, what's the point?).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of the behind the scenes work would probably be done better introducing some more infrastructure components such as a message queue.  Microsoft MSMQ, IBM Websphere MQ, and OpenJMS are all products that do this job.  Message queueing provides a good fit for routing messages between several different clients, and the queues are persistent (meaning if someone tripped over the power cord, it will pick up where it left off without losing any messages).  You can still use PHP to serve up the HTML and MySQL to handle the persistent data.  I'm sure you have ideas of how you will use JQuery.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-28T13:19:10.190" />
  <row Id="30980" PostTypeId="2" ParentId="30895" CreationDate="2010-12-28T13:24:23.930" Score="0" ViewCount="" Body="&lt;p&gt;userPermission() perhaps ? - &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Last one I came across was a global issue of search results not being highlighted because the classname was spelled hightlight. Very obscure bug to spot.&lt;/p&gt;&#xA;" OwnerUserId="7336" LastActivityDate="2010-12-28T13:24:23.930" />
  <row Id="30981" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T13:27:24.960" Score="13" ViewCount="" Body="&lt;p&gt;Here's the $100,000 question for you: is developing web sites the only thing you want to do?  PHP is a very domain specific language, but arguably has a fairly low barrier of entry.  I wouldn't call it object oriented, because that isn't it's focus.  PHP exists for one reason: web sites.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you ever have the possible idea to go in other directions in your carreer, I highly recommend learning on a more traditional language.  It doesn't have to be C/C++, it can also be something like Ruby, Python, Java, C#, etc.  Each of these are pretty good object oriented programming languages.  That said, object oriented languages aren't the only way to do programming--even though it appears to be the most prevalent (at least it has better marketing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP is also just one of many ways to do web programming.  You have a host of options with Ruby, Python, Java, and C# (as well as Smalltalk if you are so inclined).&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-28T13:27:24.960" CommentCount="8" />
  <row Id="30982" PostTypeId="2" ParentId="30742" CreationDate="2010-12-28T13:35:23.707" Score="2" ViewCount="" Body="&lt;p&gt;I just pushed my organization to pilot an agile approach on one of our projects.  It was a challenge for senior management because they need a projected budget and timeline before they can even get a project funded (it's a large enterprise-y company).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I did what I always do in that situation, make an educated guess.  I looked at the scope we were assuming the project would entail, guessed at the development time of those items, added in some additional time for business analysts, DBAs, project manager, etc., added some padding, and called that the estimated budget.  Note that this kind of &quot;rough order of magnitude&quot; estimation is done in my company before every waterfall project as well, so it was no different.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, as we started the agile project, and we got a sense of our velocity, we projected the end point of the project based on the velocity and the remaining story points, and found that we are coming in ahead of my original high-level estimates.  But that is okay (and we expected it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I guess to generalize an answer, it depends on what you mean by &quot;long range&quot;, and when you need these estimates.  If you need them before the project starts, you can use my method.  If you need them during the execution of a project, you can use the release planning concept that Matthew Kubicina mentions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I highly recommend Mike Cohn's &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131479415&quot; rel=&quot;nofollow&quot;&gt;Agile Estimation and Planning&lt;/a&gt; book which helps address this kind of stuff.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastEditorUserId="3124" LastEditorDisplayName="" LastEditDate="2010-12-30T14:34:02.197" LastActivityDate="2010-12-30T14:34:02.197" />
  <row Id="30983" PostTypeId="2" ParentId="30902" CreationDate="2010-12-28T13:40:04.127" Score="2" ViewCount="" Body="&lt;p&gt;This is what Mozilla guys came up with after years of maintaining a code base which was supposed to compile &amp;amp; work across many favours of unix plus windows: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;https://developer.mozilla.org/en/C___Portability_Guide&quot; rel=&quot;nofollow&quot;&gt;C++ Portability Guide&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please read introduction very carefully as it will make some of the suggestions (eg. don't use exceptions) sound more reasonable.&lt;/p&gt;&#xA;" OwnerUserId="11457" LastActivityDate="2010-12-28T13:40:04.127" CommentCount="1" />
  <row Id="30984" PostTypeId="2" ParentId="30856" CreationDate="2010-12-28T13:41:47.073" Score="1" ViewCount="" Body="&lt;p&gt;The GPL license has a couple of clauses/definitions that are not clear outside the original scope (C programming) that give corporations heartburn.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;If you &lt;em&gt;extend&lt;/em&gt; a GPL project you are responsible to (a) advertise the fact, providing the GPL license to your users and (b) provide a copy of the source code to anyone who requests it.  &lt;strong&gt;NOTE:&lt;/strong&gt; a request can be required to be done in writing, as opposed to making it available for download.&lt;/li&gt;&#xA;&lt;li&gt;If you &lt;em&gt;link&lt;/em&gt; to an GPL library you are &lt;em&gt;not&lt;/em&gt; extending it, so the prior clause doesn't apply.  Problem is that &lt;em&gt;link&lt;/em&gt; means different things depending on who you are talking to--for example what does it mean in an interpreted language like Ruby?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It's for the reason of potentially giving away corporate secrets that most corporations shy away from GPL based projects.  Additionally, there may be other legal/proprietary knowledge type risks that I'm not aware of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dual licensing is not uncommon.  It's a way of ensuring that the base product is always available, while providing value to people willing to pay for it.  It's also not uncommon to simply choose a FOSS license that doesn't contain the scary clauses such as the ASL, MIT license, or some variation.  It gives corporations much less heartburn to provide &lt;em&gt;attribution&lt;/em&gt; than the source code.  In short it's better to say the product uses Apache Xerxes than to have to release the source code because it embedded a GPL'd XML parser.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Additional background on American copyright&lt;/strong&gt;&#xA;Back in the 90's I attended a 2 week seminar that covered copyright law, as pertains to the entertainment industry.  That seminar was taught by one of the most pre-eminant lawyers focusing on the subject at that time: Al Schlessinger.  What follows is a brief summary of information from that seminar (I myself am not a lawyer, I'm just repeating information):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Copyright is real property, as in real-estate.  It can be bought, sold, bequeathed, and donated just as land can.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Use&lt;/em&gt; of copyrighted material is dictated by licenses, which in turn get their enforcement from contract law.  A license is a contract.&lt;/li&gt;&#xA;&lt;li&gt;If the terms of the contract you are working under require you to turn over your copyright, you are in a &quot;work for hire&quot; situation.  This is how record companies can screw over newbie bands unless they know what to look for.  It is also RCA records screwed over Prince.&lt;/li&gt;&#xA;&lt;li&gt;GPL does not convert the copyright to the original GPL'd project owners, but specifies terms for the original copyrighted work's &lt;em&gt;use&lt;/em&gt;.  Essentially, that you would agree to expose your source code to those who asked for it.  You still retain the copyright to the derived work--but not the original work that it was derived from.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It is for this reason that when faced with the prospect of incorporating GPL or LGPL code/libraries into your commercial application that you vet everything with a lawyer who specializes in this type of work.  They exist, and my previous company used one to discover legal risks.  The lawyers did point out the potential problem points, which we had to relay to our client.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The tricky point for dual licensing is that the entity who is licensing the work must be able to prove that they have the only copyright for the work.  That is why when you become a committer on some of the larger umbrella organizations (GNU, Apache, etc.) you are required to sign an agreement that you turn over the copyright of that code to that organization.  When that condition is met, the organization can dual license, change the license model, or whatever they need to do at will.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's because there is enough Fear, Uncertainty, and Doubt (FUD) surrounding the GPL on both sides of the equation that recently there's been more of a push to use corporate friendly licensing models.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can the project you derived your work from cry foul and claim that you are in violation of the terms of the license?  Yes.  Will they?  Probably not.  That doesn't mean you should flagrantly violate its terms however.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastEditorUserId="6509" LastEditorDisplayName="" LastEditDate="2010-12-28T16:24:50.797" LastActivityDate="2010-12-28T16:24:50.797" CommentCount="11" />
  <row Id="30985" PostTypeId="1" AcceptedAnswerId="31033" CreationDate="2010-12-28T12:18:12.933" Score="19" ViewCount="717" Body="&lt;p&gt;There are several rules I must keep asking programmers to follow very often. They write code and, if it works, job is just done, for them.&#xA;Most basic rules might be:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Commiting changes&lt;/li&gt;&#xA;&lt;li&gt;Not writing Model issues in View or Controllers&lt;/li&gt;&#xA;&lt;li&gt;Avoid hardcoding&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Can you tell me about your experience?&#xA;How do you manage this?&lt;/p&gt;&#xA;" OwnerUserId="11873" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-12-28T14:52:03.027" LastActivityDate="2010-12-30T21:05:25.963" Title="How to persuade programmers to follow the basic rules" Tags="&lt;project-management&gt;&lt;code-reviews&gt;" AnswerCount="17" CommentCount="5" FavoriteCount="4" />
  <row Id="30986" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T13:58:26.147" Score="1" ViewCount="" Body="&lt;p&gt;First path is the long one, but it will give you a solid background in programming. You'll understand the concept, which is the most important if you ask me. Then the programming language becomes just a tool, you stop thinking about a language, and start thinking about the problem domain.&#xA;Go for C/C++, understand the pointers, and references, recursion, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottomline. &#xA;Learn how to program, this practice is language independent.&lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2010-12-28T13:58:26.147" />
  <row Id="30987" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T13:59:19.147" Score="1" ViewCount="" Body="&lt;p&gt;Digg and facebook are both extremely high traffic sites and you need to know more than just php to make anything as scalable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand unless you get put on the front page of Digg, you won't need to scale for a while.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately it's your choice and nobody can make it for you, but from personal experience, learning about and implementing data structures is lots of fun.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-28T13:59:19.147" />
  <row Id="30988" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T14:01:08.187" Score="1" ViewCount="" Body="&lt;p&gt;I don't see the point of learning C or C++ in order to do web programming.  They're great languages to learn, sure, for a foundation in software development.  If you really want to learn OOP, pick a language that is object-oriented in nature, such as C#.  (Disclaimer:  I am a C# / ASP.NET web programmer).  With C# (or similar languages) you can learn object-oriented concepts at the same time as learning web programming.  That way you can create something practical fairly quickly.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-28T14:01:08.187" />
  <row Id="30989" PostTypeId="2" ParentId="30985" CreationDate="2010-12-28T14:02:23.227" Score="7" ViewCount="" Body="&lt;p&gt;Code review. &#xA;Accept only well written code that has no errors.&lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2010-12-28T14:02:23.227" CommentCount="3" />
  <row Id="30990" PostTypeId="2" ParentId="30985" CreationDate="2010-12-28T14:02:28.890" Score="11" ViewCount="" Body="&lt;p&gt;What is your role?  If you are just another developer with a particularly strong interest in code quality, you probably don't have the authority to get them to listen to you, and maybe you should bubble up these ideas to management to establish code standards that should/must be followed.  If you are a manager/team lead/architect whatever and you do have some authority, then you can establish those practices yourself.  Institute a standards document and a code review process to weed these things out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is not going to be a magic switch that you can turn on; it will be a slow process and will never been 100%.  That's been my experience anyways. &lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-12-28T14:02:28.890" CommentCount="4" />
  <row Id="30991" PostTypeId="2" ParentId="11575" CreationDate="2010-12-28T14:03:00.323" Score="0" ViewCount="" Body="&lt;p&gt;first i have white boards behind me ( three ) with the flow and instant progress overview&#xA;second i use trac for resource management&#xA;&lt;a href=&quot;http://trac.edgewall.org/&quot; rel=&quot;nofollow&quot;&gt;http://trac.edgewall.org/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11870" LastActivityDate="2010-12-28T14:03:00.323" />
  <row Id="30992" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T14:09:36.777" Score="0" ViewCount="" Body="&lt;p&gt;Do it for fun and knowledge, it will actually make you a better programmer. Knowing C/C++ will give you an excellent perspective of what other languages lack in &quot;power&quot; and how they make for it with simplicity and/or domain-specific features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, C/C++ has given me some insights on how js and PHP work underneath without having to ponder much about it (e.g. the delete operator and copy-on-write/pass-by-reference respectively).&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-28T14:09:36.777" />
  <row Id="30993" PostTypeId="2" ParentId="30048" CreationDate="2010-12-28T14:10:23.620" Score="0" ViewCount="" Body="&lt;p&gt;I am a .NET developer with an understanding of C# and WPF.  I think you could certainly code WPF using a different language such as IronRuby, but it would be more difficult to learn since all of the documentation, examples, videos, etc. use C# as example code.  Also, some of the APIs probably lend themselves to usage from a C# perspective, and might not &quot;blend&quot; as well with Ruby (this is just a guess - I'm only superficially familiar with Ruby).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, your skill will be less marketable, assuming you want to be gainfully employed using this technology (if this is for a hobby it doesn't matter as much).  Employers looking to hire WPF developers are almost certainly looking for C# skills at the same time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm guessing these points apply equally well to other frameworks / languages.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-12-28T14:10:23.620" />
  <row Id="30994" PostTypeId="2" ParentId="30985" CreationDate="2010-12-28T14:19:00.833" Score="3" ViewCount="" Body="&lt;p&gt;There are 3 ways by which we address this issue:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Static Analysis of the source code to check for issues with coding convention. Use tools like &lt;a href=&quot;http://sourceforge.net/projects/cppcheck/&quot; rel=&quot;nofollow&quot;&gt;cppcheck&lt;/a&gt; and those from &lt;a href=&quot;http://www.grammatech.com/&quot; rel=&quot;nofollow&quot;&gt;grammatech&lt;/a&gt;. Wikipedia has a good list: &lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis&lt;/a&gt;. Typically most source control systems will have hooks by which you can check for such issues directly during the check-in. For CVS hooks look into this link: &lt;a href=&quot;http://goo.gl/F1gd2&quot; rel=&quot;nofollow&quot;&gt;http://goo.gl/F1gd2&lt;/a&gt;. Failure to comply means a failed check-in, and more than 3 failures mean that the developer has to explain himself/herself to the team. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;During the coding process itself flag issues to the developer. Having custom scripts that are integrated with the IDE of your choice is a cool way to do this. Check this link out: &lt;a href=&quot;http://goo.gl/MM6c4&quot; rel=&quot;nofollow&quot;&gt;http://goo.gl/MM6c4&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Follow &lt;a href=&quot;http://en.wikipedia.org/wiki/Agile_software_development&quot; rel=&quot;nofollow&quot;&gt;agile processes&lt;/a&gt; and make sure that code review is part of the sprint&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-28T14:19:00.833" CommentCount="2" />
  <row Id="30995" PostTypeId="2" ParentId="30895" CreationDate="2010-12-28T14:20:52.883" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Change it yourself.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hopefully you're in an environment where code &quot;ownership&quot; is not an issue.  If you have access to the project in source control, just go in and fix it yourself.  If you see a particular coworker making the same type of grammar or spelling errors consistently, you might want to point it out, but that will depend on your relationship, whether the person is a native English speaker, and their general receptiveness.  But whether you ever decide to do that or not, just quietly go and make the fix.  I do this all the time, if I see a typo, especially in a method signature or public property, I just fix it.  Occasionally I can't even resist the temptation to fix a typo in a comment, but that's just me :)&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-28T14:20:52.883" CommentCount="1" />
  <row Id="30996" PostTypeId="2" ParentId="30985" CreationDate="2010-12-28T14:25:20.963" Score="5" ViewCount="" Body="&lt;p&gt;At least :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Make it easier for them to follow&#xA;codelines (Tools like resharper,&#xA;StyleCop) If it is easy they are more&#xA;likely to adopt.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Besides that choose what works based on your organisation, the developers and your role within the team.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Let them do bug fixes and change&#xA;request regularly&lt;/li&gt;&#xA;&lt;li&gt;Pair program with an experienced developer&lt;/li&gt;&#xA;&lt;li&gt;Code reviews in a constructive manner&lt;/li&gt;&#xA;&lt;li&gt;Code walkthroughs &lt;/li&gt;&#xA;&lt;li&gt;Start training, use books like Code Complete and The pragmatic programmer.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2010-12-28T14:25:20.963" />
  <row Id="30997" PostTypeId="2" ParentId="30895" CreationDate="2010-12-28T14:29:36.177" Score="2" ViewCount="" Body="&lt;p&gt;I guess its worth mentioning here that &#xA;HTTP referrer header in the &lt;code&gt;HTTP&lt;/code&gt; protocal was misspelt as &lt;code&gt;referer&lt;/code&gt; ( and we have to live with it/ we have learnt to live with it .)  :)&lt;/p&gt;&#xA;" OwnerUserId="7064" LastActivityDate="2010-12-28T14:29:36.177" CommentCount="1" />
  <row Id="30998" PostTypeId="2" ParentId="30985" CreationDate="2010-12-28T14:31:26.867" Score="2" ViewCount="" Body="&lt;p&gt;Here's my 3-step plan:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Fire the programmers&lt;/li&gt;&#xA;&lt;li&gt;Hire some Software Engineers&lt;/li&gt;&#xA;&lt;li&gt;...&lt;/li&gt;&#xA;&lt;li&gt;Profit!&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;:D&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In all seriousness, if they don't believe in doing anything but writing code you need a  more well-rounded team.  A programmer where I worked used different directories on the computer as her CM.  We fought with their programmer for almost a year (as changes would introduce bugs as they copied and pasted old code).  We eventually just fired them.&lt;/p&gt;&#xA;" OwnerUserId="7499" LastActivityDate="2010-12-28T14:31:26.867" />
  <row Id="30999" PostTypeId="1" CreationDate="2010-12-28T13:30:30.203" Score="7" ViewCount="455" Body="&lt;p&gt;My friends and I would like to write a C# desktop application, and would like some guidance on how to make sure the code base is professional and well-kept.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Should we use classes or interfaces for our inheritance patterns (which is better)?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;What are the best practices for professional applications?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;How do we know what sloppy code looks like, and how do we avoid creating sloppy code?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Are there any best practices regarding the design of Winforms applications?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="14788" LastActivityDate="2010-12-28T15:19:16.993" ClosedDate="2010-12-28T15:22:01.937" Title="How do I write code that doesn't suck?" Tags="&lt;c#&gt;&lt;winforms&gt;&lt;design&gt;&lt;application-design&gt;" AnswerCount="5" CommentCount="7" FavoriteCount="3" />
  <row Id="31000" PostTypeId="2" ParentId="30999" CreationDate="2010-12-28T13:39:41.497" Score="12" ViewCount="" Body="&lt;p&gt;This is an overly broad question, and it's really hard to do it justice in one writing.  It sounds like you're in need of guidance, and I'm not entirely sure I'm qualified to give that guidance, since I still make those mistakes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there are really great books on the subject of code organization:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735619670&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Code Complete: 2nd Edition&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/020161622X&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;The Pragmatic Programmer&lt;/em&gt;&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321127420&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Patterns of Enterprise Architecture&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0132350882&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Clean Code&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201485672&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Refactoring: Improving the Design of Existing Code&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131177052&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Working Effectively With Legacy Code&lt;/em&gt;&lt;/a&gt; (Shows you common mistakes in large applications and how to fix them) &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If I could give you one piece of advice: Do first, then start reading.  Your mistakes will take on new meaning once you see them in black and white. But if you read before you start doing, you may not learn the lesson as well. At least I didn't.&lt;/p&gt;&#xA;" OwnerUserId="1577" LastActivityDate="2010-12-28T14:37:48.087" CommentCount="3" />
  <row Id="31001" PostTypeId="2" ParentId="30999" CreationDate="2010-12-28T13:54:36.480" Score="1" ViewCount="" Body="&lt;p&gt;Additionally to what George says, try getting a mentor that can help you sort through those concepts.&lt;/p&gt;&#xA;" OwnerUserId="8319" LastActivityDate="2010-12-28T14:37:48.087" />
  <row Id="31002" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T14:37:59.380" Score="3" ViewCount="" Body="&lt;p&gt;Answer: &lt;strong&gt;No&lt;/strong&gt;. Don't learn C/C++ yet. In fact, never learn C++ unless your education or job requires you to. It's not worth it. C, however, is &lt;em&gt;very&lt;/em&gt; useful to know, but see it as &quot;advanced&quot; and learn it once you need to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So definitely get your hands dirty. But don't limit yourself to just PHP. Nothing wrong with PHP, but...well, yeah, actually there's &lt;em&gt;plenty&lt;/em&gt; wrong with PHP, but it's good enough and there are a lot of jobs in it. But instead of C, also learn Python (which also has loads of jobs) and a functional language (to get perspective). It's also unclear if you already know PHP or not. If you don't, I suggest you start with learning to program using Python, which is a great beginners language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then learn C when you need to, for example if you need to write a C extension to Python for performance reasons, etc.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-28T14:37:59.380" CommentCount="4" />
  <row Id="31003" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T14:41:51.627" Score="0" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Digg and facebook are both extremely high traffic sites and you need to know more than just php to make anything as scalable.&lt;/em&gt;&lt;br&gt;&#xA;You don't. At least for digg. It's very simple data model. Facebook is a different story, but 90% of the time you'll be scaling database than webserver. With opcode caches you can get webserver machine to connect to several saturated DB machines, and on the webserver side you won't even notice any load.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd try C++ first (before any high level language like PHP/Python). Or any language that allows you to play with algorithms (Pascal)... it's always big difference when you know how the things actually work instead of just doing eg. sort($x)&lt;/p&gt;&#xA;" OwnerUserId="11827" LastActivityDate="2010-12-28T14:41:51.627" />
  <row Id="31004" PostTypeId="2" ParentId="30985" CreationDate="2010-12-28T14:46:32.020" Score="5" ViewCount="" Body="&lt;p&gt;Thanks for the answers. I just cannot vote up or re-comment as my reputation is too low here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My role is Manager, but as a small team I do develop and I rather prefer to manage as a coach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Electrodes in the chair connected to a code parser has already been pointed out, but programmers don't seem to be afraid. Firing does not sound as a good approach, as that means loosing worthy assets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll take a look to all those tools and I remain open to any other you tell me.&lt;/p&gt;&#xA;" OwnerUserId="11873" LastActivityDate="2010-12-28T14:46:32.020" CommentCount="5" />
  <row Id="31005" PostTypeId="2" ParentId="30985" CreationDate="2010-12-28T14:47:46.943" Score="2" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Do point out to them, when they violate basic rules.&lt;/li&gt;&#xA;&lt;li&gt;Wait for them to produce bugs they just can't track down or to be confronted with feature request they just can't implement due to their inflexible code.  &lt;/li&gt;&#xA;&lt;li&gt;Remind them of what you had said earlier.&lt;/li&gt;&#xA;&lt;li&gt;Let them drown in their own shit for a while.&lt;/li&gt;&#xA;&lt;li&gt;Take the time to refactor the code in question, isolate the bugs / provide infrasturcutre to plug in new functionality. Take some time to explain what you did.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Alternatively, the most cruel but very persuasive thing to do is let them maintain an extremely poorly written codebase, given a tight schedule. :D&lt;br&gt;&#xA;And then, for a change, let them maintain a well written codebase, given a tight schedule.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally, the unwillingness to adapt certain standards means a lack of experience in team work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end people only learn from mistakes. NEVER fix problems, that are based on someone else's stubbornness. If it is really vital for the project (i.e. your company will be sued if you you don't deliver within N days), then put them off the project first.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-12-28T14:47:46.943" CommentCount="4" />
  <row Id="31006" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T14:48:37.253" Score="0" ViewCount="" Body="&lt;p&gt;I &lt;em&gt;strongly&lt;/em&gt; recommend that you spend some time getting to know your way around C. At the least, get enough under your belt where you work through exercises that show you just how tricky memory management can be. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A great many PHP programmers do not know how pampered they really are when the following code 'just works'&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$foo = array();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Even &lt;code&gt;$foo = &quot;string&quot;;&lt;/code&gt; is something to appreciate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not suggesting that you chase a language that you are hardly likely to use, but I would recommend getting to know it to the point where you can appreciate other languages more.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2010-12-28T14:48:37.253" CommentCount="1" />
  <row Id="31007" PostTypeId="2" ParentId="30999" CreationDate="2010-12-28T14:49:02.823" Score="0" ViewCount="" Body="&lt;p&gt;The other answers here are great, the only thing I can add is, be forgiving to yourself and your coworkers. Everyone writes code that sucks. I've been doing this for an alarmingly long time, and keep learning every day. If I look at code I wrote more than a month a go I often wonder how I could have written such sucky code. I have to remind myself, I did the best I could at that point, I know more now and can do better. That's why they invented refactoring!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!!&lt;/p&gt;&#xA;" OwnerUserId="3229" LastActivityDate="2010-12-28T14:49:02.823" />
  <row Id="31008" PostTypeId="2" ParentId="30999" CreationDate="2010-12-28T14:53:08.403" Score="0" ViewCount="" Body="&lt;p&gt;It is said &quot;we all know bad code when we see it&quot;, but unfortunately the ability to identify bad code comes by having &lt;em&gt;written&lt;/em&gt; such code in the first place and tried to work with it later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hence, what you need to do is write a LOT of code and then see what works the best, and then learn from that.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-28T14:53:08.403" />
  <row Id="31009" PostTypeId="2" ParentId="30985" CreationDate="2010-12-28T14:54:14.537" Score="1" ViewCount="" Body="&lt;p&gt;I think you programmer won't change their attitude towards these issues you've mentioned until they realize that those things will lead to a benefit or advantage for them. Try to explain them why you want them to do these things. Even better, let them experience the advantages. &lt;/p&gt;&#xA;" OwnerUserId="3809" LastActivityDate="2010-12-28T14:54:14.537" />
  <row Id="31010" PostTypeId="2" ParentId="30942" CreationDate="2010-12-28T14:59:38.763" Score="3" ViewCount="" Body="&lt;p&gt;Generally, I'm more concerned about open file formats than free software. For example, for some reasons I prefer SlickEdit over other editors (at least for some languages), but the resulting source files are not in any way encumbered, so I can always switch to Kate or Vim or BlueFish if I don't want to use SlickEdit anymore. I rather avoid tools that lock me in, like Oracle Forms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main reason to use SlickEdit instead of free editors is: I think I'm more productive with the proprietary tool (i.e. SlickEdit) than with any available open source alternative. They are not bad at all, but SlickEdit knows some tricks that other editors don't. Since my time is valueable, the investment is worth it.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-28T14:59:38.763" CommentCount="5" />
  <row Id="31011" PostTypeId="1" AcceptedAnswerId="31016" CreationDate="2010-12-28T15:13:42.337" Score="4" ViewCount="381" Body="&lt;p&gt;How common are circular references?  The less common they are, the fewer hard cases you have if you are writing in a language with only reference counting-GC.  Are there any cases where it wouldn't work well to make one of the references a &quot;weak&quot; reference so that reference counting still works?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems like you should be able to have a language only use reference counting and weak references and have things work just fine most of the time, with the goal of efficiency.  You could also have tools to help you detect memory leaks caused by circular references.  Thoughts, anyone?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems that Python uses references counting (I don't know if it uses a tracing collector occasionally or not for sure) and I know that Vala uses reference counting with weak references; I know that it's been done before, but how well would it work?&lt;/p&gt;&#xA;" OwnerUserId="9521" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2010-12-28T15:46:56.883" LastActivityDate="2011-01-09T12:20:14.517" Title="How common are circular references? Would reference-counting GC work just fine?" Tags="&lt;language-design&gt;&lt;garbage-collection&gt;" AnswerCount="8" CommentCount="8" FavoriteCount="1" />
  <row Id="31012" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T15:13:47.820" Score="0" ViewCount="" Body="&lt;p&gt;I don't think it is neccesery to know C. While it is a simple language it is very difficalt to use. C++ is a vast language (maybe 10 times the size of C).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;If you are getting started&lt;/strong&gt;, Then start with the non programming languages that you suggested (html). Then look at scheme try this ebook &lt;a href=&quot;http://mitpress.mit.edu/sicp/full-text/book/book.html&quot; rel=&quot;nofollow&quot;&gt;http://mitpress.mit.edu/sicp/full-text/book/book.html&lt;/a&gt; After that try eiffel, its a very fast, easy to learn OO language.&lt;/p&gt;&#xA;" OwnerUserId="11874" LastActivityDate="2010-12-28T15:13:47.820" CommentCount="1" />
  <row Id="31013" PostTypeId="2" ParentId="31011" CreationDate="2010-12-28T15:17:03.483" Score="4" ViewCount="" Body="&lt;p&gt;They are very common. One ubiquitous example are hierachical structures where each node has a pointer back to its parent, and of course the parent has a collection of its childs. User interfaces toolkits like Swing work like this.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-28T15:17:03.483" CommentCount="3" />
  <row Id="31014" PostTypeId="2" ParentId="30999" CreationDate="2010-12-28T15:19:16.993" Score="0" ViewCount="" Body="&lt;p&gt;Bottom line is that you will have to maintain this code later on.  In many ways, as long as your team can understand the code and what you are trying to do, it doesn't suck.  It may not be the most elegant solution, but it at least doesn't suck.  If it's a young team, it really helps to have someone with some experience look over the code and point out ways you can improve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Western culture has this hangup with &quot;the best way&quot; or &quot;perfect code&quot; as if such a thing exists.  We are imperfect beings, so to expect perfection from yourself is asking too much.  Additionally, in order to truly claim that something is &quot;the best way&quot; to approach a problem requires that you know &lt;em&gt;all&lt;/em&gt; the alternatives.  No-one is that smart.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My best advice to writing code that doesn't suck is:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Write something that works.  (it helps to prove it works with automated unit tests)&lt;/li&gt;&#xA;&lt;li&gt;Look at the code and see if it could make more sense if it were written differently.&lt;/li&gt;&#xA;&lt;li&gt;Make the change and make sure you didn't break anything (this is where the automated unit tests really help)&lt;/li&gt;&#xA;&lt;li&gt;Repeat cycle.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;This is the process that test driven development uses, but without all the hyperbole.  Small changes can yield big results in how readable and maintainable the code is.  In &lt;em&gt;persuit&lt;/em&gt; of excellence, you have to take stock of what you've done and learn from it.  If you follow the cycle listed above, it is a pretty decent way to improve yourself.  It's easier to learn in small incremental steps than it is to simply rewrite major sections of code over and over.  Basically, you are thinking about it more.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-28T15:19:16.993" />
  <row Id="31015" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T15:23:00.623" Score="0" ViewCount="" Body="&lt;p&gt;The benefit of learning any strongly typed language like C,C++,Java helps you understand the basics of programing.&#xA;Secondly before learning any database applications try to learn about the RDBMS and basic SQL.50% of your job is done here.After that learning anything like MySql,Oracle etc will be much easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to be a web programmer then i will prefer learning C and (C++ or Java) first.Then go for PHP .It will be very easy to grasp.&lt;/p&gt;&#xA;" OwnerUserId="11630" LastActivityDate="2010-12-28T15:23:00.623" />
  <row Id="31016" PostTypeId="2" ParentId="31011" CreationDate="2010-12-28T15:24:26.163" Score="2" ViewCount="" Body="&lt;p&gt;Weak references work great for breaking loops, as long as it's clear a loop is being made and as long as the developer makes provision for it with a weak reference.  This isn't the same as a more robust GC, which is intended to handle such things automatically so the developer doesn't have to think about them at all.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-28T15:24:26.163" CommentCount="2" />
  <row Id="31018" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T15:35:40.377" Score="4" ViewCount="" Body="&lt;p&gt;Huh, this got migrated as I was composing my answer on StackOverflow.  Oh well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of all, you do &lt;em&gt;not&lt;/em&gt; need to learn C before learning C++, and in fact I wouldn't recommend going that route; a well-written C program doesn't look or behave much like a well-written C++ program.  There's a popular superstition that you need to learn C first in order to be a &quot;real&quot; programmer; this isn't true (besides, &lt;a href=&quot;http://www.pbm.com/~lindahl/real.programmers.html&quot; rel=&quot;nofollow&quot;&gt;Real Programmers use Fortran&lt;/a&gt;).  C's &lt;em&gt;just another language&lt;/em&gt; with its own set of advantages and disadvantages.  One of the bigger disadvantages is that it is a &lt;strong&gt;&lt;em&gt;horrible&lt;/em&gt;&lt;/strong&gt; teaching language.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for Web programming, neither C nor C++ are all that popular, and can safely be skipped.  I've done a little programming in PHP, and while it's good for small, quick-n-dirty work, my impression is that it's not appropriate for anything on the scale of Digg or Facebook (which are projects far beyond the capabilities of any single programmer).  My experience with it is very limited, but I've heard very good things about Python.  &lt;/p&gt;&#xA;" OwnerUserId="11246" LastActivityDate="2010-12-28T15:35:40.377" CommentCount="3" />
  <row Id="31019" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T15:44:03.347" Score="-1" ViewCount="" Body="&lt;p&gt;There's only so much you can do with the whole PHP stack. If you want to make a career out of programming, web and otherwise, you should not base it off of PHP. For all you know, it'll be gone in a few years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recommend learning C first, skip C++ and learn Java or C# (and OOness, design patterns) while learning PHP. You'll find that it comes down to your knowledge of the fundamentals and technologies and not the specific languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS Web programming kicks awesome butt! Good luck!&lt;/p&gt;&#xA;" OwnerUserId="1345" LastActivityDate="2010-12-28T15:44:03.347" CommentCount="5" />
  <row Id="31020" PostTypeId="2" ParentId="30985" CreationDate="2010-12-28T15:48:22.723" Score="10" ViewCount="" Body="&lt;p&gt;To be able to follow the basic rules, they need to know what the rules are and they need to agree with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way to handle this is to &lt;strong&gt;jointly create a coding guideline document&lt;/strong&gt; which everyone can agree with. Don't try forcing this on them, it will backfire if you do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So get the team together and start working on a common definition of your basic rules! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do it as a workshop where all voices are heard. Timebox it to avoid endless discussions. You are trying to bringing several minds together, so you may want to set the stage with a positive note that you all should be respectful and keep an open mind (code writing is personal...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These guidelines should be alive changed whenever the team feels there is something that should be added or clarified.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-12-28T15:48:22.723" CommentCount="1" />
  <row Id="31021" PostTypeId="2" ParentId="30895" CreationDate="2010-12-28T15:59:23.120" Score="0" ViewCount="" Body="&lt;p&gt;Sure point it out, but don't waste your time checking for spelling mistakes.&#xA;Use a tool to automate this on your CI.&#xA;On .net fxCop can do this...&lt;/p&gt;&#xA;" OwnerUserId="11879" LastActivityDate="2010-12-28T15:59:23.120" />
  <row Id="31022" PostTypeId="1" CreationDate="2010-12-28T16:02:00.543" Score="0" ViewCount="222" Body="&lt;p&gt;i m planning to do a course on Wireless &amp;amp; mobile computing.The syllabus are given below.Please check &amp;amp; let me know whether its worth to do.How is the job prospects after that.I m a fresher &amp;amp; from  electronic Engg.The modules are-&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;*&lt;em&gt;Wireless and Mobile Computing (WiMC) – Modules&lt;/em&gt;*&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;C, C++ Programming and Data Structures 100 Hours&lt;/em&gt;&#xA; C Revision &#xA;   C, C++ programming tools on linux(Vi editor, gdb etc.) &#xA;   OOP concepts&#xA;   Programming constructs&#xA;   Functions &#xA;   Access Specifiers&#xA;   Classes and Objects&#xA;   Overloading&#xA;   Inheritance&#xA;   Polymorphism&#xA;   Templates&#xA;   Data Structures in C++&#xA;   Arrays, stacks, Queues, Linked Lists( Singly, Doubly, Circular)&#xA;   Trees, Threaded trees, AVL Trees Graphs, Sorting (bubble, Quick, Heap , Merge)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;System Development Methodology 18 Hours&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software life cycle and various life cycle models &#xA;   Project Management&#xA;   Software: A Process&#xA;   Various Phases in s/w Development &#xA;   Risk Analysis and Management&#xA;   Software Quality Assurance&#xA;   Introduction to Coding Standards&#xA;   Software Project Management&#xA;   Testing Strategies and Tactics&#xA;   Project Management and Introduction to Risk Management&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Java Programming 110 Hours&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Data Types, Operators and Language&#xA;   Constructs&#xA;   Classes and Objects, Inner Classes and Inheritance&#xA;   Inheritance&#xA;   Interface and Package&#xA;   Exceptions &#xA;   Threads&#xA;   Java.lang&#xA;   Java.util&#xA;   Java.awt&#xA;   Java.io&#xA;   Java.applet&#xA;   Java.swing&#xA;   XML, XSL, DTD&#xA;   Java n/w programming&#xA;   Introduction to servlet&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Mobile and Wireless Technologies 30 Hours&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basics of Wireless Technologies &#xA;   Cellular Communication: Single cell systems, multi-cell systems, frequency&lt;br&gt;&#xA;     reuse, analog cellular systems, digital cellular systems&#xA;   GSM standard: Mobile Station, BTS, BSC, MSC, SMS sever, call&lt;br&gt;&#xA;     processing and protocols&#xA;   CDMA standard: spread spectrum technologies,&#xA;   2.5G and 3G Systems: HSCSD, GPRS, W-CDMA/UMTS,3GPP and&#xA;     international roaming, Multimedia services&#xA;   CDMA based cellular mobile communication systems&#xA;   Wireless Personal Area Networks: Bluetooth, IEEE 802.11a/b/g &#xA;     standards &#xA;   Mobile Handset Device Interfacing: Data Cables, IrDA, Bluetooth, Touch-&#xA;     Screen Interfacing&#xA;   Wireless Security, Telemetry&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Java Wireless Programming and Applications Development(J2ME) 100 Hours&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;J2ME Architecture &#xA;   The CLDC and the KVM&#xA;   Tools and Development Process&#xA;   Classification of CLDC Target Devices&#xA;   CLDC Collections API&#xA;   CLDC Streams Model&#xA;   MIDlets&#xA;   MIDlet Lifecycle&#xA;   MIDP Programming&#xA;   MIDP Event Architecture&#xA;   High-Level Event Handling&#xA;   Low-Level Event Handling&#xA;   The CLDC Streams Model&#xA;   The CLDC Networking Package&#xA;   The MIDP Implementation&#xA;   Introduction to WAP, WML Script and XHTML &#xA;   Introduction to Multimedia Messaging Services (MMS) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Symbian Programming 60 Hours&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Symbian OS basics &#xA;   Symbian OS services&#xA;   Symbian OS organization &#xA;   GUI approaches&#xA;   ROM building &#xA;   Debugging&#xA;   Hardware abstraction &#xA;   Base porting&lt;br&gt;&#xA;   Symbian OS reference design porting &#xA;   File systems&#xA;   Overview of Symbian OS Development – &#xA;   DevKits, CustKits and SDKs&#xA;   CodeWarrior Tool&#xA;   Application &amp;amp; UI Development&#xA;   Client Server Framework&#xA;   ECOM&#xA;    STDLIB in Symbian&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;iPhone Programming 80 Hours&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Introducing iPhone core specifications &#xA;    Understanding iPhone input and output&#xA;    Designing web pages for the iPhone&#xA;    Capturing iPhone events&#xA;    Introducing the webkit&#xA;    CSS transforms transitions and animations&#xA;    Using iUI for web apps&#xA;    Using Canvas for web apps&#xA;    Building web apps with Dashcode&#xA;    Writing Dashcode programs&#xA;    Debugging iPhone web pages&#xA;    SDK programming for web developers &#xA;    An introduction to object-oriented programming&#xA;    Introducing the iPhone OS&#xA;    Using Xcode and Interface builder&#xA;    Programming with the SDK Toolkit&#xA;&lt;em&gt;OS Concepts &amp;amp; Linux Programming 60 Hours&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Operating System Concepts &#xA;   What is an OS?&#xA;   Processes &#xA;   Scheduling &amp;amp; Synchronization&#xA;   Memory management&#xA;   Virtual Memory and Paging&#xA;   Linux Architecture &#xA;   Programming in Linux&#xA;   Linux Shell Programming&#xA;   Writing Device Drivers&#xA;   Configuring and Building GNU Cross-tool chain&#xA;   Configuring and Compiling Linux&#xA;   Virtual File System&#xA;   Porting Linux on Target Hardware&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;WinCE.NET and Database Technology 80 Hours&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Execution Process in .NET Environment &#xA;   Language Interoperability&#xA;   Assemblies&#xA;   Need of C#&#xA;   Operators &#xA;   Namespaces &amp;amp; Assemblies&#xA;   Arrays&#xA;   Preprocessors&#xA;   Delegates and Events&#xA;   Boxing and Unboxing&#xA;   Regular Expression&#xA;   Collections&#xA;   Multithreading Programming&#xA;   Memory Management&#xA;   Exceptions Handling&#xA;   Win Forms &#xA;   Working with database &#xA;   ASP .NET Server Controls and client-side scripts &#xA;   ASP .NET Web Server Controls&#xA;   Validation Controls&#xA;   Principles of database management &#xA;   Need of RDBMS etc&#xA;   Client/Server Computing &#xA;   RDBMS Technologies &#xA;   Codd’s Rules &#xA;   Data Models &#xA;   Normalization Techniques &#xA;   ER Diagrams &#xA;   Data Flow Diagrams &#xA;   Database recovery &amp;amp; backup&#xA; SQL&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Android Application 80 Hours&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Introduction of android&#xA;   Why develop for android&#xA;   Android SDK features&#xA;   Creating android activities&#xA;   Fundamental android UI design &#xA;   Intents, adapters, dialogs&#xA;   Android Technique for saving data&#xA;   Data base in Androids&#xA;   Maps, Geocoding, Location based services&#xA;   Toast, using alarms,&#xA;   Instant messaging&#xA;   Using blue tooth&#xA;   Using Telephony&#xA;   Introducing sensor manager&#xA;   Managing network and wi-fi connection&#xA;   Advanced androids development &#xA;   Linux kernel security &#xA;   Implement AIDL Interface.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Project 120 Hours&lt;/p&gt;&#xA;" OwnerUserId="11841" LastActivityDate="2010-12-28T16:02:00.543" ClosedDate="2010-12-28T16:41:50.120" Title="career in Mobile sw/Application Development" Tags="&lt;career&gt;" CommentCount="2" />
  <row Id="31023" PostTypeId="1" CreationDate="2010-12-28T16:02:54.947" Score="0" ViewCount="814" Body="&lt;p&gt;i was wondering if i am going to have to pay for the real one.  I am developing websites&lt;/p&gt;&#xA;" OwnerUserId="11880" LastActivityDate="2010-12-28T17:44:17.983" Title="What is the difference between Visual Studio 2010 Express and the Regular version?" Tags="&lt;visual-studio-2010&gt;" AnswerCount="4" />
  <row Id="31024" PostTypeId="2" ParentId="31023" CreationDate="2010-12-28T16:13:14.747" Score="1" ViewCount="" Body="&lt;p&gt;The biggest difference between the Express editions and the Professional editions is the fact you can easily mix languages and project types in Pro.  In you also gain more project templates and extensibility of the IDE as you go up the ladder of editions.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/zcbsd3cz%28VS.80%29.aspx&quot; rel=&quot;nofollow&quot;&gt;See MSDN for more details&lt;/a&gt; (for VS2005 but in general the Express comparison still applies... sorry I can't find a VS2010 version.)&lt;/p&gt;&#xA;" OwnerUserId="11878" LastEditorUserId="11878" LastEditorDisplayName="" LastEditDate="2010-12-28T16:22:50.973" LastActivityDate="2010-12-28T16:22:50.973" CommentCount="2" />
  <row Id="31025" PostTypeId="2" ParentId="31023" CreationDate="2010-12-28T16:13:24.950" Score="7" ViewCount="" Body="&lt;p&gt;The differences are outlined here: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Microsoft_Visual_Studio_Express&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Microsoft_Visual_Studio_Express&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially, some refactoring has been removed, the Express editions are language-specific (i.e. Visual C# Express), and the Express edition does not allow you to use third-party add-ins.  These things shouldn't bother you too much if you just want to develop websites.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-28T16:13:24.950" CommentCount="1" />
  <row Id="31026" PostTypeId="2" ParentId="30895" CreationDate="2010-12-28T16:15:22.170" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Golden Rule Applies&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Do unto others as you would have them&#xA;  do unto you.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I want others to have my back on this kind of thing, so I help others.&#xA;Being gracious and supportive can go a long way in your favor.&lt;/p&gt;&#xA;" OwnerUserId="5796" LastActivityDate="2010-12-28T16:15:22.170" CommentCount="4" />
  <row Id="31027" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T16:15:45.217" Score="2" ViewCount="" Body="&lt;p&gt;Start getting your hands dirty with PHP. When you notice that you need more than that, that's the right moment to start learning e.g. C. Getting too much knowledge at once, without practical application, will only confuse and demotivate you.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-28T16:15:45.217" />
  <row Id="31028" PostTypeId="2" ParentId="31023" CreationDate="2010-12-28T16:16:08.103" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/visualstudio/en-us/products/2010-editions/product-comparison&quot; rel=&quot;nofollow&quot;&gt;Microsoft Comparison Link&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the regular versions are at the top, express at the bottom.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a strict comparison for &lt;a href=&quot;http://msdn.microsoft.com/library/hs24szh9.aspx&quot; rel=&quot;nofollow&quot;&gt;C++ with VS 2010&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6854" LastEditorUserId="6854" LastEditorDisplayName="" LastEditDate="2010-12-28T16:38:16.423" LastActivityDate="2010-12-28T16:38:16.423" CommentCount="1" />
  <row Id="31029" PostTypeId="2" ParentId="30942" CreationDate="2010-12-28T16:24:41.320" Score="1" ViewCount="" Body="&lt;p&gt;The difference is time verses money. If I somehow &quot;discover&quot; a free alternative that has positive reviews, installs, and it does exactly what I want and is continuously upgraded for free, than it makes sense. When you're running a profitable company, you don't waste programmer hours searching, testing, learning and &quot;tinkering&quot; with software when there are established alternatives at a reasonable price.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-28T16:24:41.320" CommentCount="1" />
  <row Id="31030" PostTypeId="2" ParentId="30048" CreationDate="2010-12-28T16:26:30.273" Score="0" ViewCount="" Body="&lt;p&gt;First you have to know your situation before you can make a decision one way or another.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;How big is the project?&lt;/li&gt;&#xA;&lt;li&gt;How often will the software be used?&lt;/li&gt;&#xA;&lt;li&gt;What are the expectations of the target audience regarding how &quot;native&quot; the apps should feel?&lt;/li&gt;&#xA;&lt;li&gt;What is the likelihood of that framework being deprecated by a vendor (e.g. Cocoa Java) or going unmaintained as an OSS project? How will your project deal with this situation if it happens?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;And keep in mind that to survive as a programmer you constantly have to learn new stuff.&lt;/p&gt;&#xA;" OwnerUserId="8865" LastActivityDate="2010-12-28T16:26:30.273" />
  <row Id="31032" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T16:38:06.447" Score="-2" ViewCount="" Body="&lt;p&gt;I would start learning python the most beautiful programming language I know. Then if necessary trying to learn dirty things like PHP.&lt;/p&gt;&#xA;" OwnerUserId="8173" LastActivityDate="2010-12-28T16:38:06.447" />
  <row Id="31033" PostTypeId="2" ParentId="30985" CreationDate="2010-12-28T16:56:28.720" Score="4" ViewCount="" Body="&lt;p&gt;All knowledge workers need to be challenged to do quality work. Quality will suffer if they feel arbitrary time constraints are placed upon them. Why not just make things that are &quot;good enough&quot; when everyone is concerned with fulfilling the specifications and meeting the deadlines?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your list of complaints are symptoms of a company that only rewards meeting short-term objectives and has no desire to emphasis high quality. Are you running a five-star hotel or a truck stop?&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-28T16:56:28.720" CommentCount="1" />
  <row Id="31034" PostTypeId="2" ParentId="31011" CreationDate="2010-12-28T17:13:08.140" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;How common are circular references? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;How common are &lt;strong&gt;&lt;em&gt;doubly linked lists&lt;/em&gt;&lt;/strong&gt;? &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;It seems like you should be able to have a language only use reference counting and weak references and have things work just fine most of the time, with the goal of efficiency.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If this was the case, don't you think reference-counted implementations would have been common by the time you joined the party?&lt;/p&gt;&#xA;" OwnerUserId="1512" LastEditorUserId="1512" LastEditorDisplayName="" LastEditDate="2011-01-02T20:37:20.567" LastActivityDate="2011-01-02T20:37:20.567" CommentCount="3" />
  <row Id="31035" PostTypeId="1" AcceptedAnswerId="31038" CreationDate="2010-12-28T17:13:19.930" Score="7" ViewCount="301" Body="&lt;p&gt;A month or so ago I created my first LAMP stack and implemented a simple web site that exercised each letter in that acronym.  However my development setup was much less than ideal. &#xA;I don't really have a local test server, but instead I was writing all of my CGI scripts in vim while ssh'ed into the remote machine as &lt;em&gt;root&lt;/em&gt;.  Now I intend to start more serious development.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Question:&lt;/strong&gt; What is a good setup so that development goes as easily as possible?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to understand what is available to me along the lines of an IDE, subversion (or alternatives), uploading and downloading content, and just best practices.  I'm pretty new at all of this.  Also, feel free to point me at good websites.  There's plenty of websites, but only people who are already heavily developing web content are able to quickly determine if they are good websites.&lt;/p&gt;&#xA;" OwnerUserId="5741" LastEditorUserId="4971" LastEditorDisplayName="" LastEditDate="2010-12-28T17:17:00.603" LastActivityDate="2010-12-28T19:57:39.380" Title="Advice for good web server development setup." Tags="&lt;web-development&gt;&lt;best-practices&gt;&lt;php&gt;&lt;mysql&gt;&lt;web-services&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="2" />
  <row Id="31036" PostTypeId="1" CreationDate="2010-12-28T17:19:48.157" Score="7" ViewCount="256" Body="&lt;p&gt;&lt;strong&gt;Background Info&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hey, I pitched the idea of a company &lt;a href=&quot;http://en.wikipedia.org/wiki/Hackathon&quot; rel=&quot;nofollow&quot;&gt;Hackathon&lt;/a&gt; that would donate our time to a charity to work on a project (for free) to improve morale in my company and increase developer cohesion. As it turns out most like the idea but, guess who's gonna be the one to put it together. lol Yeah me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I should add that we are a fairly small shop with about 10-12 programmers (some pull double duty as programmers, inters etc..) So, that might make things a bit easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Base Question&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I am no means a project manager or of any level of authority (Entry level guy) I was wondering if anyone knew the best approach for someone in my position to put together such an even with possibly (some) company backing. Or for that matter have any helpful advice to pass along to a young padawan.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;So far.....&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As of right now it is just an idea so, to start with I presumably would have to put together some sort of proposal and do some that office stuff that I became a programmer to steer clear of to some extent. &lt;/p&gt;&#xA;" OwnerUserId="707" LastEditorUserId="707" LastEditorDisplayName="" LastEditDate="2010-12-28T17:35:29.887" LastActivityDate="2011-01-26T19:56:58.930" Title="Rolling your own Hackathon" Tags="&lt;career&gt;&lt;social&gt;&lt;charity&gt;&lt;morale&gt;" AnswerCount="4" CommentCount="6" FavoriteCount="1" />
  <row Id="31037" PostTypeId="2" ParentId="30942" CreationDate="2010-12-28T17:22:43.563" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Why do you use not free software and what not free software do you use?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I use Visual Studio because it is, despite all the gripes people (rightfully) have with it, still a damn good IDE combined with a set of pretty good compilers, which can be used for almost anything a developer on Windows needs to do. &lt;/p&gt;&#xA;" OwnerUserId="1512" LastActivityDate="2010-12-28T17:22:43.563" CommentCount="2" />
  <row Id="31038" PostTypeId="2" ParentId="31035" CreationDate="2010-12-28T17:32:54.417" Score="3" ViewCount="" Body="&lt;p&gt;Step 1: do not develop as &lt;code&gt;root&lt;/code&gt;!  I mean that in all sincerity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally you will need the following tools:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Source control, use what you like (Subversion works for me, others love Git or Mercurial)&lt;/li&gt;&#xA;&lt;li&gt;A dev environment where you can run your website on the machine you are developing on--this dev environment should be running from your user account, not &lt;code&gt;root&lt;/code&gt;.  That may require you to run on a port above 1000 in a Unix environment (i.e. Apache running on port 8080 is common enough).&lt;/li&gt;&#xA;&lt;li&gt;An IDE can help you code more efficiently and step through the source code as needed.  If there are no IDE options for your platform (I know nothing of PHP IDEs or if there is such a thing), a good text editor is a must.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also ideally, you will have a separate test environment.  The test environment lets you have a machine that is most like what you intend to deploy on as possible.  That will help weed out unexpected problems with the environment as early as possible.  If that is not possible (i.e. a one man shop), at least have a different instance of the app pointing to a test database.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-28T17:32:54.417" />
  <row Id="31039" PostTypeId="2" ParentId="31035" CreationDate="2010-12-28T17:33:50.090" Score="1" ViewCount="" Body="&lt;p&gt;I've always liked &lt;a href=&quot;http://www.eclipse.org/&quot; rel=&quot;nofollow&quot;&gt;Eclipse&lt;/a&gt;, but you can use whatever you like. The IDE doesn't need to be related to your deployment environment. Really you should be deploying through FTP or SCP or something similar, rather than editing code on the server. VI, EMACS, and other CLI editors are nice and all, but you really don't want to be doing all your development there. You'll go crazy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can absolutely run Subversion on a LAMP machine, though, of course, the usual warnings about development hardware vs production hardware apply. Obviously you'll want an IDE that will integrate with Subversion, but most serious ones will.&lt;/p&gt;&#xA;" OwnerUserId="9015" LastActivityDate="2010-12-28T17:33:50.090" CommentCount="3" />
  <row Id="31040" PostTypeId="2" ParentId="30942" CreationDate="2010-12-28T17:38:01.757" Score="1" ViewCount="" Body="&lt;p&gt;I use Delphi for pascal development and I hope I always do because I'd rather contribute to a &quot;3rd Party&quot; native windows development library than keep everything under the Microsoft umbrella.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd imagine people had different feelings when Borland was at it's height, but right now buying development tools from Embarcadero feels like donating to a good cause. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are free alternatives which I haven't properly evaluated so I can't answer the other side of that question - other than lack of resources to properly evaluate them.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-12-28T17:38:01.757" CommentCount="2" />
  <row Id="31041" PostTypeId="2" ParentId="31036" CreationDate="2010-12-28T17:39:58.287" Score="3" ViewCount="" Body="&lt;p&gt;I would start by contacting some local charities and find out what their needs are.  I'd then compile a short list of the company/need and see which one might be the best fit for your company's capabilities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To help make the effort a collaboration, you could ask team each member to propose a charity and have them do the leg work on that one charity.  That way not one person is doing too much grunt work before the coding begins.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS.  This sounds like a great idea.  If more companies did this just once a year or two, it would go a very, very long way.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2010-12-28T17:39:58.287" CommentCount="1" />
  <row Id="31042" PostTypeId="2" ParentId="31036" CreationDate="2010-12-28T17:42:18.950" Score="1" ViewCount="" Body="&lt;p&gt;Running an event like this has little to do with coding and mostly to do with planning, and it can be a lot of work.  So start with the basics:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What are your assets?&lt;/li&gt;&#xA;&lt;li&gt;Where are you going to do this?&lt;/li&gt;&#xA;&lt;li&gt;Who are you going to get to MC/present/speak (anyone)?&lt;/li&gt;&#xA;&lt;li&gt;When is it going to happen?&lt;/li&gt;&#xA;&lt;li&gt;What do you need?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Once you start thinking about these questions, you'll find that they lead to more questions that need answering.  If you're company is donating the location (the office), then you have one less worry.  If not, you'll have to call around for places that might be willing to donate space.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you have to worry about power, network, etc.  If this is going to be a smaller, more informal hackathon, you might be able to get away with a wireless router and a spare desktop for version control/demo server.  You will need to be creative for sure.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-28T17:42:18.950" CommentCount="3" />
  <row Id="31043" PostTypeId="2" ParentId="31023" CreationDate="2010-12-28T17:44:17.983" Score="2" ViewCount="" Body="&lt;p&gt;Check out the &lt;a href=&quot;http://www.microsoft.com/web/websitespark/&quot; rel=&quot;nofollow&quot;&gt;Website Spark&lt;/a&gt; program.  You can get Visual Studio Professional and other Microsoft products for a reduced fee (nothing up front) if you plan to develop a website within 3 years.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-28T17:44:17.983" />
  <row Id="31044" PostTypeId="2" ParentId="30942" CreationDate="2010-12-28T17:46:21.267" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;If you're talking free as in freedom then:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I/we also contribute content to a non-free piece of software called StackExchange. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And the reason is because the alternative, phpBB3 + WordPress + Wikipedia + (Some FLOSS reddit clone) doesn't have the userbase that this particular empire does and didn't seem to have a chance to turn out to be nearly as polished as these websites are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think most of us agree that it's good that SE isn't Open Source, mainly because of all the features we get from having everyone on this one trunk. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-12-28T17:46:21.267" CommentCount="1" />
  <row Id="31045" PostTypeId="2" ParentId="31035" CreationDate="2010-12-28T17:56:31.147" Score="0" ViewCount="" Body="&lt;p&gt;You never develop in some command line tool on the production machine :) That's just inconvenient.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beside get yourself machine with SVN, nice IDE for your PC, and just do SVN up on production. It's as good as it can get.&lt;/p&gt;&#xA;" OwnerUserId="11827" LastActivityDate="2010-12-28T17:56:31.147" />
  <row Id="31046" PostTypeId="2" ParentId="31036" CreationDate="2010-12-28T18:05:12.080" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Start Small and Work Up&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a great idea both for your company for the reasons stated and for yourself as a learning/growing experience.  When you can pull off a project like this well, you'll be ready to move up to a job with more responsibility and you'll have successes on your resume to justify the move.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two caveats to watch out for:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It's probably going to be harder than you think.  Coordinating software development projects well has surprisingly little to do with writing good code.  It's a new skillset, and not a trivial one to learn.  Don't take on a hard project as your first 'team lead' experience, much in the same way that you wouldn't write a really complex application for your first program.&lt;/li&gt;&#xA;&lt;li&gt;Watch out for management to be concerned that you are overtaxing company resources or distracting employees from their day job.  It's pretty easy to have something like this boomerang on you to be perceived as a negative.  A great way to deal with this is to 'time box' the work so that it's guaranteed to not exceed what management is comfortable with giving.  At my workplace, we have a 'Day Of Caring' where every employee is encouraged to take a work day off to do whatever they like at a local charity.  It's a great program -- and it's very explicitly limited to one day only.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;With this advice, you may want to find a very small project that can be accomplished by 2-3 people in 2-3 days for your first go.  If I were you, I would consider doing it informally as a weekend activity with co-workers you have a strong relationship without even discussing it with company management.  After you have 1-2 of these very small projects under your belt, you can consider moving up to more formal and larger projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One final piece of advice from someone who does a lot of on the side little projects for charities -- consider the 'maintenance' part of your work.  Especially if you're going into an organization that has no 'it guy', you're going to find that whatever you do needs some level of maintenance over time.  Even something as simple as setting up a free hosted website takes a couple hours a year to update, etc.  Once you donate your time to create a project, most charities will assume you've also signed up to maintain it.  Think this through before getting yourself over-committed to something you can't maintain.&lt;/p&gt;&#xA;" OwnerUserId="5397" LastActivityDate="2010-12-28T18:05:12.080" CommentCount="5" />
  <row Id="31047" PostTypeId="1" AcceptedAnswerId="31059" CreationDate="2010-12-28T18:07:33.823" Score="10" ViewCount="350" Body="&lt;p&gt;For a long time Alan Cooper (in the 3 versions of his book &quot;About Face&quot;) has been promoting a &quot;unified file model&quot; to, among other things, dispense with what he calls the most idiotic message box ever invented - the one the pops up when hit the close button on an app or form saying &quot;Do you want to discard your changes?&quot; I like the idea and his arguments, but also have the knee-jerk reaction against it that most seasoned programmers and users have. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;While Cooper's book seems quite popular and respected, there is remarkably little discussion of this particular issue on the Web that I can find. Petter Hesselberg, the author of &quot;Programming Industrial Strength Windows&quot; mentions it but that seems about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have an opportunity to implement this in the (desktop) project I am working on, but face resistance by customers and co-workers, who are of course familiar with the MS Word and Excel way of doing things. I'm in a position to override their objections, but am not sure if I should.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My questions are:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any good discussions of this that I have failed to find?&#xA;Is anyone doing this in their apps?&#xA;Is it a good idea that it is unfortunately not practical to implement until, say, Microsoft does it?&lt;/p&gt;&#xA;" OwnerUserId="11889" LastActivityDate="2010-12-28T20:04:19.307" Title="What happened to Alan Cooper's Unified File Model?" Tags="&lt;design&gt;&lt;programming-practices&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="2" />
  <row Id="31048" PostTypeId="2" ParentId="31047" CreationDate="2010-12-28T18:15:37.580" Score="4" ViewCount="" Body="&lt;p&gt;Microsoft does do it in OneNote. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't override the user desires. We thought about implementing this but come to find out many users do things without thinking and use the close form button (or  ctrl-alt-del if there isn't one) to prevent their mistakes from getting saved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you could implement it in a way that allows them to go back to a previous session (a big undo of sorts) then it might be acceptable. But people are designed to take advantage of the environment around them. Change the environment and you risk destroying the advantage they have discovered.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-12-28T18:15:37.580" CommentCount="5" />
  <row Id="31049" PostTypeId="2" ParentId="30889" CreationDate="2010-12-28T18:17:38.947" Score="0" ViewCount="" Body="&lt;p&gt;IT typically deals with computer based infrastructure solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sys Admin&#xA;Network Engineer&#xA;Database management &#xA;Making sure everyone has the proper image on there computer can access all necessary resource such programs or networked drive...ect.&#xA;Setting up company wide email or some other system&#xA;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could sum it up as the study of commercial computer systems and their deployment. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Computer Science is just that, a science involving the study of computer based algorithms. For example, operating system design, compiler design, programing language design, or some more typical algorithmic transformations such as sorting algorithms, image transformation. and audio processing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For completeness, CS is not Software Engineering. Although many CS majors end up as software engineers, the disciplines are very different yet often complimentary. For example, a CS professional might developed an echo cancellation algorithm. Then a software engineer figures out how to integrate that algorithm to a telephone system with multiple TDM buses and channels. I believe the main difference between science and engineering in general is the difference between theory and practical application.    &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2010-12-28T18:17:38.947" />
  <row Id="31050" PostTypeId="2" ParentId="30895" CreationDate="2010-12-28T18:21:53.263" Score="-1" ViewCount="" Body="&lt;p&gt;It depends largely on what the mistakes are, how common and how bad they are, and whether it's actually a bona fide mistake or just not how you'd word it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally can't stand it when some idiot drags a 5 minute code review out to half an hour because he wants everything renamed to how he'd do it and all the comments reworded just because he likes sticking his oar in.  A logging line that says &quot;Loading data objects&quot; &lt;em&gt;does not&lt;/em&gt; need to be changed to &quot;The data object loader component will now load the relevant data objects from the data object storage component&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;/rant :)&lt;/p&gt;&#xA;" OwnerUserId="5375" LastActivityDate="2010-12-28T18:21:53.263" CommentCount="2" />
  <row Id="31051" PostTypeId="2" ParentId="30895" CreationDate="2010-12-28T18:24:36.257" Score="0" ViewCount="" Body="&lt;p&gt;I would recommend using an IDE with built-in spellchecker. IntelliJ Idea does a wonderful job for Java programs. There are many embarassing typos it catches, not only in names of functions, but in e.g. exception messages the user gets to see. A program that produces messages full of typos does not inspire much confidence.&lt;/p&gt;&#xA;" OwnerUserId="9693" LastActivityDate="2010-12-28T18:24:36.257" />
  <row Id="31052" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T18:26:58.727" Score="0" ViewCount="" Body="&lt;p&gt;The trick is to learn each paradigm from a language that does it well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn a statically typed OOP language like Python, C#, Java etc.. Learn C for the low-level systems. And if you have time, learn Haskell, Scheme, Lisp etc. for functional/declarative programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My first language was C++. It took me years to unlearn the quirks and bizarre hacks.&lt;/p&gt;&#xA;" OwnerUserId="6385" LastActivityDate="2010-12-28T18:26:58.727" />
  <row Id="31053" PostTypeId="2" ParentId="31011" CreationDate="2010-12-28T18:30:11.073" Score="1" ViewCount="" Body="&lt;p&gt;You are right, you should be able to do garbage collection only using reference counting. Objective-C on iPhone is an example of a platform that does just that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why is it not done in practice? Because sloppy code and memory leaks are a reality and having a computer deal with them automatically enables every average pig to write code that does not constantly run out of memory.&lt;/p&gt;&#xA;" OwnerUserId="9693" LastActivityDate="2010-12-28T18:30:11.073" />
  <row Id="31054" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T18:41:03.403" Score="0" ViewCount="" Body="&lt;p&gt;My re-introduction to PHP, which was required for us to just pick up in a few days for a final project in a Database class at UW-Madison consisted of, &quot;if you know C++, then you should know PHP, just remember to use dollar signs&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't do OOP and you actually like to program, you'll learn 'em simultaneously.  The only hangup with PHP is when to use -&gt; and when to use =&gt; and for that I'd really suggest actually reading a book to learn PHP, not just picking up what you need off the internet. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that's probably the only way to learn C++ as well.  Don't fret about C though, I mean if you're in high school, then go learn C - otherwise forget about it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One fun thing you may be able to do if you master them simultaneously is write extensions for yourself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing people despise PHP for is that it is often coded as if it was a bunch of throwaway batch files - and that's what you need to avoid if you're going to make it as a web programmer.  People despise C++ code that looks like C code for the same reason.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go the distance with your code (in PHP use classes instead of infernally nested arrays; in C++ use classes instead of infernally nested struct's) and it will go the distance for you&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-12-28T18:41:03.403" />
  <row Id="31055" PostTypeId="2" ParentId="31047" CreationDate="2010-12-28T18:45:45.240" Score="2" ViewCount="" Body="&lt;p&gt;The unified file system has already won!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All iOS* applications work this way. There are no 'files', there is no file system, there is no saving, only applications that contain data that you can always return to unless you delete it. Given that MacOS may fall to iOS some day, I'd say that the model has definitely caught on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Historically, there were a few really dumb attempts to hodge-podge this into Windows or the Mac, and it turned people off to the idea. But the transition to a new platform where no one expects there to be a file browser has freed companies to transition fully.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(* I don't know from Android or other phone OSes; maybe there, too.)&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2010-12-28T18:45:45.240" CommentCount="6" />
  <row Id="31056" PostTypeId="2" ParentId="19392" CreationDate="2010-12-28T19:09:28.007" Score="0" ViewCount="" Body="&lt;p&gt;I always err on putting as much processing at the DB.  Your syntax above could also be written with DB functions that would be IMO a very clean solution.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-12-28T19:09:28.007" />
  <row Id="31057" PostTypeId="2" ParentId="10311" CreationDate="2010-12-28T19:12:27.183" Score="1" ViewCount="" Body="&lt;p&gt;I've seen several attempts at this. So far I can't call any of them a success.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why do people suggest to spend tons of man-hours to port something to another language? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually it's a combination of these:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;lacking programming skills and knowledge of the original language&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;developers not wanting to learn another language, so instead they want to convert all code to their favourite language. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;developers not understanding the existing code base, so they underestimate the amount and complexity of existing features&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;overestimating the advantages that a port would bring&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;people not having read Joel Spolsky's &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000069.html&quot; rel=&quot;nofollow&quot;&gt;&quot;things you should never do&quot;&lt;/a&gt; :-)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Slap those together, and you've got yourself a recipe for disaster.&lt;/p&gt;&#xA;" OwnerUserId="4477" LastActivityDate="2010-12-28T19:12:27.183" CommentCount="1" />
  <row Id="31058" PostTypeId="2" ParentId="30895" CreationDate="2010-12-28T19:14:32.197" Score="3" ViewCount="" Body="&lt;p&gt;I'm a developer whose native language isn't English, it's Dutch actually, and wouldn't mind at all if someone would point me a grammar or spelling mistake. In that way I can constantly keep improving my English. And it is certainly not difficult to correct all the mistakes in all of your source code. A simple Perl script can easily be written to loop thru all files in a folder. Perhaps even it can be done with sed? I don't know. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I would certainly point out grammar or spelling mistakes in someone else's code, but only if I'm absolutely sure wether it is correct what I'm saying. &lt;/p&gt;&#xA;" OwnerUserId="11317" LastActivityDate="2010-12-28T19:14:32.197" />
  <row Id="31059" PostTypeId="2" ParentId="31047" CreationDate="2010-12-28T19:18:51.400" Score="4" ViewCount="" Body="&lt;p&gt;The apropriateness of the Unified File System really depends on the application at hand.  Things like web applications, Microsoft OneNote, and iOS applications lend themselves to that model.  When an application is database driven, it also lends itself to that model.  However, I can also think of areas where it is not the best option.  In particular, when an application can consume data that didn't come from that application, you need the concept of a file system to locate the information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as keeping the memory and disk in sync, I want it but I don't for my word processor.  If I've taken the time to save my file, I might want to make sure I'm not losing any information.  That need has been taken care of by the auto-save feature we've had for several years now.  If someone trips over the power cord I can at least get some of it back.  However, I create a number of throw away documents I don't want littering my file system.  A sign that will only be used for one day, playing around with font samples, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The answer is &quot;it depends&quot;.  Cooper's UFS is useful in some cases, and less so in others.  The technical savvy of your users also might play into your decision on it.  Most of us have grown up with the status quo, and sometimes the benefits of change don't outweigh the cost of change.  I'd evaluate the appropriateness of that approach in your app.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-28T19:18:51.400" CommentCount="1" />
  <row Id="31060" PostTypeId="2" ParentId="31011" CreationDate="2010-12-28T19:19:33.140" Score="0" ViewCount="" Body="&lt;p&gt;Python and Objective-C use reference counting, and they are the languages behind some important works in software. As with any other garbage-collection strategy, reference-counting implementations can be tweaked to make them efficient for the common case. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Languages that opt for reference-counting usually include several important data structures in the language definition or in the standard libraries, so programmers are shielded from thinking about how memory management happens in them.&lt;/p&gt;&#xA;" OwnerUserId="8500" LastActivityDate="2010-12-28T19:19:33.140" CommentCount="1" />
  <row Id="31061" PostTypeId="2" ParentId="30895" CreationDate="2010-12-28T19:24:15.710" Score="0" ViewCount="" Body="&lt;p&gt;As with many other good programming practices, the only objective, non-political, and effective way to implement a policy about spelling in programs is to automate it as part of the pre-commit process. Automation will save you from enormous amounts of grievance even if you have to write your own tool for the purpose.&lt;/p&gt;&#xA;" OwnerUserId="8500" LastActivityDate="2010-12-28T19:24:15.710" CommentCount="2" />
  <row Id="31062" PostTypeId="1" CreationDate="2010-12-28T19:25:04.393" Score="0" ViewCount="209" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/94/what-techniques-do-you-use-when-interviewing-developers&quot;&gt;What techniques do you use when interviewing developers?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Nearly every SE interviewing process has some sort of coding exercise to prove that the interviewee can actually write code. More often then not, the exercise also hopes to demonstrate that the interviewee can solve problems. However, this is often not sufficient enough to determine if the interviewee can actually design software. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some effective ways to determine if an interviewee understands the basic concepts of design such as abstraction, interface design, thread management, ...ect?&lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2010-12-28T19:30:01.253" LastActivityDate="2010-12-28T19:45:50.570" ClosedDate="2010-12-28T19:46:03.410" Title="Interview Questions" Tags="&lt;interview-questions&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="31063" PostTypeId="1" AcceptedAnswerId="31067" CreationDate="2010-12-28T19:29:40.663" Score="11" ViewCount="231" Body="&lt;p&gt;This is semi-hypothetical, and as I've no experience in dealing with massive database tables, I have no idea if this is horrible for some reason. On to the situation:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imagine a web based application - lets say accounting software - which has 20,000 clients and each client has 1000+ entries in a table. That's 20 million rows which I know can certainly slow down complex queries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a case like this, does it make more sense to create a new table in the database for each client? How do databases react to having 20k (or more!) tables?&lt;/p&gt;&#xA;" OwnerUserId="11893" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-28T19:40:17.203" LastActivityDate="2010-12-29T02:04:15.277" Title="Can it be a good idea to create a new table for each client of a webapp?" Tags="&lt;best-practices&gt;&lt;web-applications&gt;&lt;database-development&gt;" AnswerCount="5" FavoriteCount="2" />
  <row Id="31064" PostTypeId="2" ParentId="31062" CreationDate="2010-12-28T19:30:22.973" Score="0" ViewCount="" Body="&lt;p&gt;Design a simple (or let us say, uncomplicated) external API and ask them to write a wrapper library for it.  Give them your requirements for the library and see what they come up with.&lt;/p&gt;&#xA;" OwnerUserId="9475" LastActivityDate="2010-12-28T19:30:22.973" />
  <row Id="31065" PostTypeId="2" ParentId="29722" CreationDate="2010-12-28T19:32:58.510" Score="0" ViewCount="" Body="&lt;p&gt;I would agree with what a couple of the other responders have suggested; &lt;a href=&quot;http://www.acceleratedcpp.com/details/contents.html&quot; rel=&quot;nofollow&quot;&gt;Accelerated C++&lt;/a&gt; is an excellent starter book on c++. It is really well paced, and covers the majority of topics required for under-grad study. The book's contents would give you a good structure and the basis of a syllabus, augmented by more detailed books if necessary.&lt;/p&gt;&#xA;" OwnerUserId="11064" LastActivityDate="2010-12-28T19:32:58.510" />
  <row Id="31066" PostTypeId="2" ParentId="31063" CreationDate="2010-12-28T19:40:15.863" Score="1" ViewCount="" Body="&lt;p&gt;IMHO a single table shouldn't be a problem, so don't create an issue where one doesn't exist - yet. There is a lot you can do to help performance. You can partition a single table to multiple files based on clientID or a date field to help with IO. Your db doesn't have to keep track, optimize and cache 20,000 different sql statements for every query you're site will need. You can index by clientid. 20K clients can pay for a lot of hardware.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For this type of table, a NoSQL type db could be used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With 20K clients, the database may not be your weakest link, so why introduce this much complexity?&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-28T19:40:15.863" CommentCount="4" />
  <row Id="31067" PostTypeId="2" ParentId="31063" CreationDate="2010-12-28T19:40:50.633" Score="15" ViewCount="" Body="&lt;p&gt;Generally speaking, no, it makes no sense to have a table (I think you actually mean database here) per customer.  20 million rows is relatively small for a database table.  Query speed against that should not be an issue so long as the database is properly tuned (indexed) and the queries are put together correctly.  Whatever benefit you think you'd get from having them separate would be offset by the additional complexity of managing 20,000 individual databases.  For ex, what happens when you want to change the table structure?  You now have to do it 20,000 times!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Worse case, if you eventually do find that the database size is becoming an issue, you can always splt them into separate databases afterwards.  &lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-28T19:40:50.633" CommentCount="12" />
  <row Id="31068" PostTypeId="2" ParentId="30049" CreationDate="2010-12-28T19:44:41.907" Score="0" ViewCount="" Body="&lt;p&gt;I've worked as a consultant with people with your background, and my opinion is that the technical people I met could have benefited greatly from more knowledge about programming in general. Automating routine tasks wasn't easy for them, and the scripts they managed to write would have been frowned upon by experienced programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ubuntu is steadily moving onto Python as its systems language in replacement of shell+tools scripts. If you learn to do what you already know how to do in Python you'll gain the advantage of mastering a general-purpose programming language that is currently applied from everything from embedded to web/cloud, from one-shots to long-lived applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Climbing a ladder starts by placing yourself above the first step.&lt;/p&gt;&#xA;" OwnerUserId="8500" LastActivityDate="2010-12-28T19:44:41.907" />
  <row Id="31069" PostTypeId="2" ParentId="29866" CreationDate="2010-12-28T19:44:48.773" Score="1" ViewCount="" Body="&lt;p&gt;no.&#xA;What pattern you use always depends on the task your programm/script has to perorm.&#xA;Just yesterday I had to solve this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;show the mtime of two files&lt;/li&gt;&#xA;&lt;li&gt;show number of temp files in a folder&lt;/li&gt;&#xA;&lt;li&gt;allow deleting all temp files with one click &lt;/li&gt;&#xA;&lt;li&gt;web interface&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I know one could argue that a nice reusable MVC sollution would be cleaner, but I choose a 20 lines of sequential code.&#xA;Why? It is fast. It is small. And every minute I spend on this is a minute I can not use on my main project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(let the hate begin!)&lt;/p&gt;&#xA;" OwnerUserId="10792" LastActivityDate="2010-12-28T19:44:48.773" />
  <row Id="31071" PostTypeId="2" ParentId="31062" CreationDate="2010-12-28T19:45:50.570" Score="0" ViewCount="" Body="&lt;p&gt;If the job has a strong requirement for design as well as coding, test for both. Same philosophy applies. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you feel this is not practical?&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-28T19:45:50.570" />
  <row Id="31072" PostTypeId="2" ParentId="31063" CreationDate="2010-12-28T19:45:59.807" Score="3" ViewCount="" Body="&lt;p&gt;Here's an article I always urge people to read, when they ask this question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://datacharmer.blogspot.com/2009/03/normalization-and-smoking.html&quot; rel=&quot;nofollow&quot;&gt;http://datacharmer.blogspot.com/2009/03/normalization-and-smoking.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11785" LastActivityDate="2010-12-28T19:45:59.807" CommentCount="7" />
  <row Id="31073" PostTypeId="2" ParentId="30974" CreationDate="2010-12-28T19:55:52.730" Score="1" ViewCount="" Body="&lt;p&gt;If you want to do web programming then skip the C and C++.&lt;br /&gt;&lt;br /&gt; I would suggest you start with xhtml, css, and javascript, since these are at the core of what you want to do. When you no longer have to look up anything about these 3 subjects then you will have a rock solid foundation in web programming. One more thing, take a deep dive into object oriented javascript and don't just play around with the DOM.&lt;br /&gt;&lt;br /&gt; Good luck, stay focussed, and have fun.&lt;/p&gt;&#xA;" OwnerUserId="7038" LastActivityDate="2010-12-28T19:55:52.730" />
  <row Id="31074" PostTypeId="2" ParentId="31035" CreationDate="2010-12-28T19:57:39.380" Score="0" ViewCount="" Body="&lt;p&gt;Test Enviroments:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;cHave a look at &lt;a href=&quot;http://bitnami.org/stack/lampstack&quot; rel=&quot;nofollow&quot;&gt;http://bitnami.org/stack/lampstack&lt;/a&gt;&#xA;there youi can find out of the box suse/ubuntu virtual machines to test your code as well as&#xA;native packages to install on your system.&#xA;Once your project is mature enough to run under &quot;real live&quot; conditions you can upload it to a free host like cloudcontoll. Unlike most free hosts cloud controll&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IDE:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PHP Eclipse is a good choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Source Contoll:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer Bazaar because it does not require a server so you can work ofline if you have no internet connection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This gives you a  nice dev enviroment that runs on most laptops &lt;/p&gt;&#xA;" OwnerUserId="10792" LastActivityDate="2010-12-28T19:57:39.380" />
  <row Id="31075" PostTypeId="2" ParentId="30049" CreationDate="2010-12-28T19:59:22.147" Score="0" ViewCount="" Body="&lt;p&gt;In addition to career in C++, I'd add that you should also look for a career in telecom industry which uses a lot of Unix/Linux platforms, plus you're not limited to C++ only because Java is used extensively as well (for example JAIN-SLEE initiative).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd add banking too, but I guess you don't get to do too much core stuff there, from what I heard it's mostly fixing legacy code and working for front office traders to develop derivatives modelling software.Oh and apparently the hours are atrocious (albeit compensated with a huge salary).&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-28T19:59:22.147" />
  <row Id="31076" PostTypeId="2" ParentId="31047" CreationDate="2010-12-28T20:00:05.110" Score="0" ViewCount="" Body="&lt;p&gt;Are you going to keep their data in files or in some kind of database? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you expect them to have physical access to the files then you will have to teach them that your files are 'special'. In their current mental model they can copy, paste, rename and delete. I'm sure some of them already use rename as a way to 'version' their data (e.g. resume2010.doc, SalesDataFromBob2.xls).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it is a database, I'm sure they will want to export/import files at some point.&lt;/p&gt;&#xA;" OwnerUserId="11219" LastActivityDate="2010-12-28T20:00:05.110" />
  <row Id="31077" PostTypeId="2" ParentId="31047" CreationDate="2010-12-28T20:04:19.307" Score="0" ViewCount="" Body="&lt;p&gt;Is having a prominently displayed &quot;save always&quot; option for the user that hard to implement?&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-28T20:04:19.307" CommentCount="1" />
  <row Id="31079" PostTypeId="1" AcceptedAnswerId="31083" CreationDate="2010-12-28T20:21:54.640" Score="0" ViewCount="187" Body="&lt;p&gt;There seems to be a few terms for referring to a computer, especially in the tech world. Different terms seem to be used based on technical expertise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When talking with people with some technical knowledge, I'll refer to it as a machine. When talking to non-technical people (family, friends) I'll call it a computer. On the rare occasion I'm talking about servers, I might call it a box, but even then I'll probably still call it a machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is that just me, or do there exist rules already for what to call a computer?&lt;/p&gt;&#xA;" OwnerUserId="5624" LastActivityDate="2010-12-28T21:26:38.037" ClosedDate="2010-12-28T21:56:53.000" Title="How do you differentiate between &quot;box,&quot; &quot;machine,&quot; &quot;computer&quot; and whatever else?" Tags="&lt;terminology&gt;" AnswerCount="5" />
  <row Id="31080" PostTypeId="2" ParentId="31079" CreationDate="2010-12-28T20:26:16.757" Score="0" ViewCount="" Body="&lt;p&gt;Not as far as I know. It depends on the situation / context really. Different people use same words for different things, and that's not gonna change anytime soon. Might as well get used to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: Since it rarely causes confusion, I also don't feel this is something you should be wasting your time on really.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-28T20:26:16.757" />
  <row Id="31081" PostTypeId="2" ParentId="30049" CreationDate="2010-12-28T20:30:13.897" Score="3" ViewCount="" Body="&lt;p&gt;I'd guess that most &quot;Unix system programming jobs&quot; are rather &quot;Linux system programming jobs&quot;. There aren't many commercial vendors of other Unix variants left...&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-28T20:30:13.897" />
  <row Id="31082" PostTypeId="2" ParentId="31079" CreationDate="2010-12-28T20:34:05.257" Score="2" ViewCount="" Body="&lt;p&gt;When I talk to anyone about the entirety of my set up (monitor, keyboard, mouse, etc...) I almost always refer to it as a computer, and occasionally a machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When referring to the unit which houses my CPU, Mobo, drives, etc... I, for the non-technical, I call it a computer.  But for the technical, it's box most of the time, machine occasionally, or a more specific part of it that's likely the reason for the discussion in the first place.&lt;/p&gt;&#xA;" OwnerUserId="11894" LastActivityDate="2010-12-28T20:34:05.257" />
  <row Id="31083" PostTypeId="2" ParentId="31079" CreationDate="2010-12-28T20:43:57.883" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Computer: I typically use this one most often when talking to Joe Users, or when I'm talking about the machine right in front of me.&lt;/li&gt;&#xA;&lt;li&gt;Machine: Most often I use this when talking about types of machines. For example, an &quot;x86 Machine&quot; or a &quot;MIPS Machine&quot; or &quot;Turing Machine.&quot; Occasionally also used to signify the difference between the computer system as a whole, and the box which houses the magic smoke. (I.e. the &quot;brain&quot; as opposed to the whole package including monitor and such (See example use in definition of &quot;computer&quot; above))&lt;/li&gt;&#xA;&lt;li&gt;Box: Usually refers to servers located somewhere offsite or not in front of the person talking at the moment. Also usually referred to by the software running on the machine instead of the hardware, i.e. &quot;the Exchange box&quot;/&quot;the BSD box&quot;. This one is also more common among POSIX people.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Note: These are just patterns I notice -- there's no specific reason for these.&lt;/p&gt;&#xA;" OwnerUserId="886" LastActivityDate="2010-12-28T20:43:57.883" CommentCount="1" />
  <row Id="31084" PostTypeId="2" ParentId="31079" CreationDate="2010-12-28T20:47:52.263" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You say Compartor, I say Computer...&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or as Shakespeare more eloquently said: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/A_rose_by_any_other_name_would_smell_as_sweet&quot; rel=&quot;nofollow&quot;&gt;&quot;A rose by any other name would smell as sweet&quot;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;However having said that, context does matter, words have meaning. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Different people call a computer by different names because it better descripes its purpose:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;To a programmer a computer is a &quot;Machine&quot; because it executes commands.&lt;/li&gt;&#xA;&lt;li&gt;To a Network Admin, a computer is a &quot;Box&quot;, because they they usually deal with servers with very specific server roles, eg &quot;SQL Box&quot;, &quot;Web server Box&quot;.&lt;/li&gt;&#xA;&lt;li&gt;etc    &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-28T20:47:52.263" />
  <row Id="31085" PostTypeId="1" CreationDate="2010-12-28T20:52:33.027" Score="10" ViewCount="542" Body="&lt;p&gt;A friend has begged our consulting firm several times to build an iPhone app.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are reluctant to jeopardize the friendship and charge market rates.  At the same time, we're so busy it would be imprudent not to charge fairly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We tried referring her to other shops, but she doesn't feel comfortable with anyone but us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do people charge friends?  Since I'm asking about fees, I'm also curious to know if people charge on a fixed-price basis or hourly basis?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" LastActivityDate="2011-01-28T17:57:06.600" Title="How do people charge friends for development projects?" Tags="&lt;iphone&gt;&lt;consulting&gt;" AnswerCount="13" CommentCount="9" FavoriteCount="4" />
  <row Id="31086" PostTypeId="2" ParentId="31085" CreationDate="2010-12-28T20:56:30.897" Score="1" ViewCount="" Body="&lt;p&gt;Friendship has nothing to do with business. What ever is your regular business model like fixed priceper job/ hourly basis follow it. If you want to help your friend, you can give a fixed discount on the job.And there is no definitive way of answering this question as this is per company basis.&lt;/p&gt;&#xA;" OwnerUserId="5171" LastActivityDate="2010-12-28T20:56:30.897" />
  <row Id="31087" PostTypeId="2" ParentId="31085" CreationDate="2010-12-28T20:57:50.553" Score="19" ViewCount="" Body="&lt;p&gt;I am for the notion of keeping business and friendship apart. If he is really your friend he will understand that you charging the normal rate means he (your friend) is not taking advantage of your friendship.&lt;/p&gt;&#xA;" OwnerUserId="7380" LastActivityDate="2010-12-28T20:57:50.553" CommentCount="3" />
  <row Id="31088" PostTypeId="2" ParentId="30985" CreationDate="2010-12-28T21:01:41.273" Score="1" ViewCount="" Body="&lt;p&gt;Hire one professional Software Engineer. And then fire weakest. Then slowly replace those who can't adopt. Having such people sometimes bring more harm than profit in long term.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Main idea here, that professional will start doing most job, and firing others will not reduce valuable human resource. &lt;/p&gt;&#xA;" OwnerUserId="4784" LastActivityDate="2010-12-28T21:01:41.273" CommentCount="2" />
  <row Id="31089" PostTypeId="2" ParentId="31085" CreationDate="2010-12-28T21:01:41.493" Score="3" ViewCount="" Body="&lt;p&gt;Explain the situation, and make it clear up front what you're charging.  Point out that you are very busy, and if necessary how much money you'd lose doing it for free.  You may wish to give a discount, that's up to you, but charge.  Given that this is a friend, you probably want to be very careful to do a good job (which you presumably do for all clients).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every time I've used a friend's professional services, it's been on a pay basis.  I don't risk the friendship by trying to get something for nothing, and I assume they wouldn't by trying to short-change me or do bad work.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-28T21:01:41.493" CommentCount="1" />
  <row Id="31090" PostTypeId="2" ParentId="30049" CreationDate="2010-12-28T21:07:33.567" Score="0" ViewCount="" Body="&lt;p&gt;Considered Java?  Java has some core logical roots in the Unix world and a heritage from the generational teams.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also consider systems &lt;em&gt;integration&lt;/em&gt; work as all that you know in terms of Unix systems management and programming come in key in this area.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-12-28T21:07:33.567" />
  <row Id="31091" PostTypeId="2" ParentId="31085" CreationDate="2010-12-28T21:09:29.680" Score="1" ViewCount="" Body="&lt;p&gt;If this were me, I would explain to her that I would be happy to do the work at a discounted rate, however it is extremely busy at the time and I am having problems freeing up resources to work on it. I would tell her that if she is willing to pay full price I would put a priority on her project to ensure it gets done quickly, or if she can wait till you have a lull in business then you would be happy to do it at a discounted rate.&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2010-12-28T21:09:29.680" />
  <row Id="31092" PostTypeId="2" ParentId="31085" CreationDate="2010-12-28T21:19:16.190" Score="3" ViewCount="" Body="&lt;p&gt;The answer is really easy and has worked wonders for me: give him/her some form of financing, putting something up-front (even if it is small).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This way you can really tell appart &lt;strong&gt;actual good friends that respect your time&lt;/strong&gt; from opportunists. Agreeing to put something up-front will give you an actual indication of their commitment to pay you and respect the deal. Also, you can always formalize it in paper and that is in no way rude, it shows professionalism.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-28T21:19:16.190" CommentCount="1" />
  <row Id="31093" PostTypeId="2" ParentId="31085" CreationDate="2010-12-28T21:20:23.327" Score="1" ViewCount="" Body="&lt;p&gt;I think most friends &lt;em&gt;appreciate&lt;/em&gt; being charged a &lt;em&gt;fair&lt;/em&gt; price for your best work. If they are a true friend, they will not want to take advantage of you in any way; indeed, they will be tickled pink at the idea of being able to contribute to your success.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have the luxury with a friend of explaining things somewhat more frankly than you might with a potential client. Don't assume they want something for 'free' or want to displace your real business (if they &lt;em&gt;do&lt;/em&gt; want that, you should simply decline and realize you've learned something about your friend)... but just explain honestly your schedule, your customary charges, and what you expect you could do for them. By all means offer them a decent discount if you like - akin to what you might charge your best, easiest-to-work-with client. But don't go beyond that... as you wouldn't be doing yourself or your friend any favors.&lt;/p&gt;&#xA;" OwnerUserId="4939" LastActivityDate="2010-12-28T21:20:23.327" />
  <row Id="31094" PostTypeId="2" ParentId="4200" CreationDate="2010-12-28T21:20:52.857" Score="0" ViewCount="" Body="&lt;p&gt;This is a late answer, but the more general &quot;why would a firm hire in house X rather than outsource?&quot; - in other words, why do companies exist, rather than a single CEO who outsources everything? - is called &quot;the theory of the firm&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Theory_of_the_firm&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Theory_of_the_firm&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and there's quite a bit of evidence and studies for various reasons why, and a lot of knowledge about when it makes sense to out-source vs. &quot;in-source&quot; various bits of labor and capital.&lt;/p&gt;&#xA;" OwnerUserId="11902" LastActivityDate="2010-12-28T21:20:52.857" />
  <row Id="31095" PostTypeId="2" ParentId="31085" CreationDate="2010-12-28T21:21:43.780" Score="0" ViewCount="" Body="&lt;p&gt;The answer to your questions is really up to the situation and your relationship with your friend. If she wants the app for her business you should approach it as a business to business transaction;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;if your shop is full with current projects, explain to her you cannot take on another job&lt;/li&gt;&#xA;&lt;li&gt;if your shop has room for another project and you are reluctant to work for her, you can ask a collegue that you know and trust to take up the project (possibly at a reduced rate)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If she want the app for personal use;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;you might find it an interesting weekend or lunchtime project. You should make clear in this case that you are doing it in your spare time so timelines and results may shift.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Another way to go about it is to look for friends in the business that you know and trust in they ability to do a good job for her. Tell her you cannot do it and advice her to ask your friend. If she hears that you know and trust the other party she might feel safe enough to take her business there. You can setup an introduction and take part in the preliminary discussion as her representative.&lt;/p&gt;&#xA;" OwnerUserId="11859" LastActivityDate="2010-12-28T21:21:43.780" />
  <row Id="31096" PostTypeId="1" CreationDate="2010-12-28T08:27:21.683" Score="9" ViewCount="282" Body="&lt;p&gt;I am primarily a programmer developing on windows based OS using C# as my primary language.  I am evaluating Ubuntu Linux as an alternate platform  and would like to know the best stack for doing web development on this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had gone through &lt;a href=&quot;http://stackoverflow.com/questions/1633779/moving-development-from-windows-to-linux&quot;&gt;this thread&lt;/a&gt; but it doesn't answer my questions fully.&#xA;Some of the points I am interested are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PHP/Ruby/Python (What would you recommend?)&lt;/li&gt;&#xA;&lt;li&gt;Is Mono mature enough for any large scale development?  Has anyone any real experience using Mono.&lt;/li&gt;&#xA;&lt;li&gt;IDE (including debugging support, intellisense, source control integration,Unit testing)&lt;/li&gt;&#xA;&lt;li&gt;Unit testing framework based on the language recommended&lt;/li&gt;&#xA;&lt;li&gt;Web framework if any. &lt;/li&gt;&#xA;&lt;li&gt;Load Testing tools&lt;/li&gt;&#xA;&lt;li&gt;Web server (I know there are many webservers, but would like to know which one is primarily used by most people)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="12027" LastEditorUserId="24799" LastEditorDisplayName="" LastEditDate="2011-05-16T21:39:38.717" LastActivityDate="2011-05-16T23:23:26.763" Title="What's the best way to move to linux from windows for web development?" Tags="&lt;linux&gt;&lt;web-development&gt;" AnswerCount="5" CommentCount="9" FavoriteCount="1" />
  <row Id="31097" PostTypeId="2" ParentId="31096" CreationDate="2010-12-28T08:33:19.097" Score="-2" ViewCount="" Body="&lt;p&gt;i can give you some of the idea &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1- Language - Ruby but you can choose others also&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2- Mono Support  - Not required if using Ruby&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3- IDE - For ruby there are some good IDE avaliable&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4- Web Framework - Ruby on Rails&lt;/p&gt;&#xA;" OwnerUserId="9175" LastActivityDate="2010-12-28T21:23:40.663" CommentCount="1" />
  <row Id="31098" PostTypeId="2" ParentId="31096" CreationDate="2010-12-28T09:51:40.003" Score="3" ViewCount="" Body="&lt;p&gt;I got this Hint from your question that you might be okay with a change of development language. :) here is my answer to the points highlighted by you .&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Languge&lt;/code&gt; : &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;PHP:&lt;/code&gt;Seriously i won't reccomend using PHP , but the advantage of using PHP is that the web is full of PHP code you can always have a look at it ( but not the downside a large part of php code is badly written)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Ruby: Python&lt;/code&gt; : you can pick any of then , but my personal preference is python :) a lot of material is available in form of google code university and google tech talks from google.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;IDE&lt;/code&gt; : i don't use an ide for debuging the python pdb module works just fine for me , but you want you can use Eclipse / Pycharm for python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Mono&lt;/code&gt; : No experience with mono, so i am not the right person to comment on this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Unit Testing Framework&lt;/code&gt; : Python has unit testing framework built into the langugae.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Web Framework&lt;/code&gt; : If you are using Python i'd definetly recommond using &lt;code&gt;django&lt;/code&gt; Ruby has an awsome framework too called &lt;code&gt;rails&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Web Server&lt;/code&gt; : Apache is primarily used .&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also as pointed out by by a lot of people here that linux hosting is not so cheap ,&#xA;you might want to use the &lt;code&gt;google app engine&lt;/code&gt; for hosting your application its the &#xA;cheapest hosting options i have ever seen , even free  :) FYI its the google's cloud &#xA;supporting Python and java , though support for other language can be extended through&#xA;JVM.Also you don't have to worry about scalability and Load balancing . &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope it helps .&lt;/p&gt;&#xA;" OwnerUserId="7064" LastActivityDate="2010-12-28T21:23:40.663" CommentCount="4" />
  <row Id="31099" PostTypeId="2" ParentId="31096" CreationDate="2010-12-28T10:05:33.907" Score="1" ViewCount="" Body="&lt;p&gt;I don't have any professional experience with C# / Mono, though I have checked out &lt;a href=&quot;http://monodevelop.com/&quot; rel=&quot;nofollow&quot; title=&quot;Mono develop&quot;&gt;Mono develop&lt;/a&gt; and it seems pretty good.&#xA;I have used Qt (C++) more extensively in Ubuntu and the &lt;a href=&quot;http://qt.nokia.com/products/developer-tools/&quot; rel=&quot;nofollow&quot; title=&quot;Qt Creator&quot;&gt;Qt Creator&lt;/a&gt; is a great GUI app builder, the framework is also a pleasure to work with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you were asking about web development ... I've been doing PHP &amp;amp; Python web development for Linux for many years now, and most of those years my development environment has been Linux as well. Linux really excels at this type of usage, there are many, many great tools available, if you're not afraid to get your hands dirty and use the command line.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding your choice of language, it's really a personnal choice, each has its own strenghts and weaknesses. PHP probably has the most libs available for web dev work, due to it being used for building web pages for a long time. PHP is also supported by more webhosts.&#xA;But Ruby and Python are both very complete and are more pleasant to develop with. They are also likely to be faster then PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding the web server, Apache httpd is THE standard, used by most websites and almost always offered by web hosts. It is very complete and offers a lot of options and settings. There is also &lt;a href=&quot;http://www.lighttpd.net/&quot; rel=&quot;nofollow&quot; title=&quot;lighttpd&quot;&gt;lighthttpd&lt;/a&gt;, which has less features but is faster. Both of these will work with all 3 languages. Ruby however also needs Mongrel &lt;em&gt;in addition to&lt;/em&gt; Apache or lighthttpd.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Framework depends on language used. In PHP, Zend framework or &lt;a href=&quot;http://www.yiiframework.com/&quot; rel=&quot;nofollow&quot; title=&quot;Yii Framework&quot;&gt;Yii framework&lt;/a&gt; are both very good. Python has Django, and Ruby has Ruby on Rails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For my web development, I like netbeans IDE the best : does what I need but stays out of my way and is easy to configure. Some people swear by Eclipse though, personnaly I can't stand it. I would suggest trying both and seeing which one you like better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unit testing, PHP has PhpUnit which is very good. Python has the &lt;em&gt;unittest&lt;/em&gt; module for this, it is part of the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Load testing, Apache has a &lt;a href=&quot;http://httpd.apache.org/docs/2.0/programs/ab.html&quot; rel=&quot;nofollow&quot; title=&quot;built in tool&quot;&gt;built in tool&lt;/a&gt; for this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, &lt;em&gt;all&lt;/em&gt; of the apps / servers / etc listed above are available through Ubuntu's package manager. No nightmare of trying to get everything work properly, as is the case under windows ;-)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:23:40.663" />
  <row Id="31100" PostTypeId="2" ParentId="31079" CreationDate="2010-12-28T21:26:38.037" Score="0" ViewCount="" Body="&lt;p&gt;Don't forget &quot;rig&quot;, that applies specially when it is a custom built computer.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-28T21:26:38.037" />
  <row Id="31101" PostTypeId="2" ParentId="30985" CreationDate="2010-12-28T21:29:31.807" Score="1" ViewCount="" Body="&lt;p&gt;It's a little gross, but I left Code Complete in the bathroom for a few months.  Not sure it was effective, but it seemed like a good idea at the time. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-12-28T21:29:31.807" />
  <row Id="31102" PostTypeId="2" ParentId="30737" CreationDate="2010-12-28T21:31:12.430" Score="2" ViewCount="" Body="&lt;p&gt;You should have suggested this 20 years ago, while Java was still in the development stage.  Now, it's far too late to change it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if it was possible to change at this point, Java already has published &lt;a href=&quot;http://www.oracle.com/technetwork/java/codeconv-138413.html&quot; rel=&quot;nofollow&quot;&gt;code conventions&lt;/a&gt;.  These conventions are the defaults that the two major Java IDEs, Eclipse and NetBeans, enforce.  In both their code cleanup tools and any code they generate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java Programmers also tend to use whitespace for their own ends.  Robert Harvey has already shown you method chaining that uses whitespace to line up code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is not uncommon to spread arguments to a constructor or method across multiple lines.  You can see this in your first Pastebin (for the InetSocketAddress constructor) on lines 58 and 59.&lt;/p&gt;&#xA;" OwnerUserId="8330" LastActivityDate="2010-12-28T21:31:12.430" />
  <row Id="31103" PostTypeId="2" ParentId="10311" CreationDate="2010-12-28T21:48:12.530" Score="0" ViewCount="" Body="&lt;p&gt;The two methods I've used in the past are&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;COM interop (i.e. register either/or/both Delphi and C# for COM and then each can instantiate each others' objects pretty easily)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Use mixed-mode C++ as an intermediary to marshal data between Delphi and C#.  The C++ can be spoken to from Delphi as a standard DLL and spoken to by C# as a standard .NET library.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="987" LastActivityDate="2010-12-28T21:48:12.530" />
  <row Id="31104" PostTypeId="1" CreationDate="2009-01-02T13:14:26.767" Score="391" ViewCount="6985" Body="&lt;p&gt;This is definitely subjective, but I'd like to try to avoid it becoming argumentative. I think it could be an interesting question if people treat it appropriately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea for this question came from the comment thread from &lt;a href=&quot;http://stackoverflow.com/questions/282329/what-are-five-things-you-hate-about-your-favorite-language#282342&quot;&gt;my answer&lt;/a&gt; to the &lt;a href=&quot;http://stackoverflow.com/questions/282329&quot;&gt;&quot;What are five things you hate about your favorite language?&quot; question&lt;/a&gt;. I contended that classes in C# should be sealed by default - I won't put my reasoning in the question, but I might write a fuller explanation as an answer to this question. I was surprised at the heat of the discussion in the comments (25 comments currently).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what contentious opinions do &lt;em&gt;you&lt;/em&gt; hold? I'd rather avoid the kind of thing which ends up being pretty religious with relatively little basis (e.g. brace placing) but examples might include things like &quot;unit testing isn't actually terribly helpful&quot; or &quot;public fields are okay really&quot;. The important thing (to me, anyway) is that you've got reasons behind your opinions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please present your opinion and reasoning - I would encourage people to vote for opinions which are well-argued and interesting, whether or not you happen to agree with them.&lt;/p&gt;&#xA;" OwnerUserId="8958" LastActivityDate="2011-03-27T09:50:37.033" CommunityOwnedDate="2009-01-02T13:14:26.767" Title="What's your most controversial programming opinion?" Tags="&lt;language-agnostic&gt;" AnswerCount="413" CommentCount="30" FavoriteCount="40" />
  <row Id="31105" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:15:45.937" Score="128" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The world needs more GOTOs&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;GOTOs are avoided religiously often with no reasoning beyond &quot;my professor told me GOTOs are bad.&quot;  They have a purpose and would greatly simplify production code in many places.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, they aren't really necessary in 99% of the code you'll ever write.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:15:45.937" CommentCount="37" />
  <row Id="31106" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:17:25.357" Score="14" ViewCount="" Body="&lt;p&gt;Stay away from Celko!!!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.dbdebunk.com/page/page/857309.htm&quot; rel=&quot;nofollow&quot;&gt;http://www.dbdebunk.com/page/page/857309.htm&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it makes a lot more sense to use surrogate primary keys then &quot;natural&quot; primary keys.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;hr&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;@ocdecio: Fabian Pascal gives (in chapter 3 of his book &lt;a href=&quot;http://books.google.it/books?id=t9ZQAAAAMAAJ&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Practical issues in database management&lt;/em&gt;&lt;/a&gt;, cited in point 3 at the page that you link) as one of the criteria for choosing a key that of stability (it always exists and doesn't change). When a natural key does not possesses such property, than a surrogate key must be used, for evident reasons, to which you hint in comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't know what he wrote and you have not bothered to check, otherwise you could discover that you actually agree with him. Nothing controversial there: he was saying &quot;don't be dogmatic, adapt general guidelines to circumstances, and, above all, think, use your brain instead of a dogmatic/cookbook/words-of-guru approach&quot;.&lt;/p&gt;&#xA;" OwnerUserId="7380" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:17:25.357" CommentCount="8" />
  <row Id="31107" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:17:31.800" Score="69" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Respect the Single Responsibility Principle&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At first glance you might not think this would be controversial, but in my experience when I mention to another developer that they shouldn't be doing everything in the page load method they often push back ... so for the children please quit building the &quot;do everything&quot; method we see all to often.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:17:31.800" CommentCount="9" />
  <row Id="31108" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:19:11.670" Score="59" ViewCount="" Body="&lt;p&gt;If I were being controversial, &lt;strong&gt;I'd have to suggest that Jon Skeet isn't omnipotent..&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="1422" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:19:11.670" CommentCount="8" />
  <row Id="31109" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:20:23.820" Score="8" ViewCount="" Body="&lt;p&gt;In my workplace, I've been trying to introduce more Agile/XP development habits.  Continuous Design is the one I've felt most resistance on so far.  Maybe I shouldn't have phrased it as &quot;let's round up all of the architecture team and shoot them&quot;... ;)&lt;/p&gt;&#xA;" OwnerUserId="2845" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:20:23.820" CommentCount="1" />
  <row Id="31110" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:20:57.300" Score="21" ViewCount="" Body="&lt;p&gt;I work in ASP.NET / VB.NET a lot and find ViewState an absolute nightmare.  It's enabled by default on the majority of fields and causes a large quantity of encoded data at the start of every web page.  The bigger a page gets in terms of controls on a page, the larger the ViewState data will become.  Most people don't turn an eye to it, but it creates a large set of data which is usually irrelevant to the tasks being carried on the page.  You must manually disable this option on all ASP controls if they're not being used.  It's either that or have custom controls for everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On some pages I work with, half of the page is made up of ViewState, which is a shame really as there's probably better ways of doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's just one small example I can think of in terms of language/technology opinions.  It may be controversial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, you might want to edit voting on this thread, it could get quite heated by some ;)&lt;/p&gt;&#xA;" OwnerUserId="4042" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:20:57.300" CommentCount="11" />
  <row Id="31111" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:21:32.243" Score="830" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The only &quot;best practice&quot; you should be using all the time is &quot;Use Your Brain&quot;.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Too many people jumping on too many bandwagons and trying to force methods, patterns, frameworks, etc. onto things that don't warrant them.  Just because something is new, or because someone respected has an opinion, doesn't mean it fits all :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&#xA;Just to clarify - I don't think people should ignore best practices, valued opinions, etc. Just that people shouldn't just blindly jump on something without thinking about WHY this &quot;thing&quot; is so great, IS it applicable to what I'm doing, and WHAT benefits/drawbacks does it bring?&lt;/p&gt;&#xA;" OwnerUserId="11943" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-22T10:04:27.060" LastActivityDate="2011-01-22T10:04:27.060" CommunityOwnedDate="2009-01-02T13:21:32.243" CommentCount="42" />
  <row Id="31112" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:27:24.290" Score="15" ViewCount="" Body="&lt;p&gt;I firmly believe that unmanaged code isn't worth the trouble.  The extra maintainability expenses associated with hunting down memory leaks which even the best programmers introduce occasionally far outweigh the performance to be gained from a language like C++.  If Java, C#, etc. can't get the performance you need, buy more machines.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:27:24.290" CommentCount="18" />
  <row Id="31113" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:27:49.953" Score="18" ViewCount="" Body="&lt;p&gt;I really dislike when people tell me to &lt;strong&gt;use getters and setters instead of making the variable public when you should be able to both get and set the class variable&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I totally agree on it if it's to change a variable in an object in your object, so you don't get things like: a.b.c.d.e = something; but I would rather use: a.x = something; then a.setX(something); I think a.x = something; actually are both easier to read, and prettier then set/get in the same example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't see the reason by making:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;void setX(T x)&#xA;{&#xA;    this-&gt;x = x;&#xA;}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;T getX()&#xA;{&#xA;    return x;&#xA;}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;which is more code, more time when you do it over and over again, and just makes the code harder to read.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:27:49.953" CommentCount="19" />
  <row Id="31114" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:28:46.940" Score="676" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I fail to understand why people think that Java is absolutely the best &quot;first&quot; programming language to be taught in universities.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For one, I believe that first programming language should be such that it highlights the need to learn control flow and variables, not objects and syntax&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For another, I believe that people who have not had experience in debugging memory leaks in C / C++ cannot fully appreciate what Java brings to the table.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also the natural progression should be from &quot;how can I do this&quot; to &quot;how can I find the library which does that&quot; and not the other way round.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:28:46.940" CommentCount="52" />
  <row Id="31115" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:29:15.393" Score="57" ViewCount="" Body="&lt;p&gt;Okay, I said I'd give a bit more detail on my &quot;sealed classes&quot; opinion. I guess one way to show the kind of answer I'm interested in is to give one myself :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Opinion: Classes should be sealed by default in C#&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Reasoning:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's no doubt that inheritance is powerful. However, it has to be somewhat guided. If someone derives from a base class in a way which is completely unexpected, this can break the assumptions in the base implementation. Consider two methods in the base class, where one calls another - if these methods are both virtual, then that implementation detail has to be documented, otherwise someone could quite reasonably override the second method and expect a call to the first one to work. And of course, as soon as the implementation is documented, it can't be changed... so you lose flexibility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C# took a step in the right direction (relative to Java) by making methods sealed by default. However, I believe a further step - making &lt;em&gt;classes&lt;/em&gt; sealed by default - would have been even better. In particular, it's easy to override methods (or not explicitly seal existing virtual methods which you don't override) so that you end up with unexpected behaviour. This wouldn't actually stop you from doing anything you can currently do - it's just changing a &lt;em&gt;default&lt;/em&gt;, not changing the available options. It would be a &quot;safer&quot; default though, just like the default access in C# is always &quot;the most private visibility available at that point.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By making people &lt;em&gt;explicitly&lt;/em&gt; state that they wanted people to be able to derive from their classes, we'd be encouraging them to think about it a bit more. It would also help me with my laziness problem - while I know I &lt;em&gt;should&lt;/em&gt; be sealing almost all of my classes, I rarely actually remember to do so :(&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Counter-argument:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can see an argument that says that a class which has no virtual methods can be derived from relatively safely without the extra inflexibility and documentation usually required.  I'm not sure how to counter this one at the moment, other than to say that I believe the harm of accidentally-unsealed classes is greater than that of accidentally-sealed ones.&lt;/p&gt;&#xA;" OwnerUserId="8958" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:29:15.380" CommentCount="27" />
  <row Id="31116" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:37:33.273" Score="6" ViewCount="" Body="&lt;p&gt;My controversial view is that the &quot;While&quot; construct should be removed from all programming languages. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can easily replicate While using &quot;Repeat&quot; and a boolean flag, and I just don't believe that it's useful to have the two structures. In fact, I think that having both &quot;Repeat...Until&quot; and &quot;While..EndWhile&quot; in a language confuses new programmers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update - Extra Notes&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One common mistake new programmers make with While is they assume that the code will break as soon as the tested condition flags false. So - If the While test flags false half way through the code, they assume a break out of the While Loop. This mistake isn't made as much with Repeat. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm actually not that bothered which of the two loops types is kept, as long as there's only one loop type. Another reason I have for choosing Repeat over While is that &quot;While&quot; functionality makes more sense written using &quot;repeat&quot; than the other way around. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Second Update:&lt;/strong&gt;&#xA;I'm guessing that the fact I'm the only person currently running with a negative score here means this actually is a controversial opinion. (Unlike the rest of you. Ha!)&lt;/p&gt;&#xA;" OwnerUserId="10604" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:37:33.273" CommentCount="12" />
  <row Id="31117" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:38:52.647" Score="327" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Design patterns are hurting good design more than they're helping it.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMO software design, especially good software design is far too varied to be meaningfully captured in patterns, especially in the small number of patterns people can actually remember - and they're far too abstract for people to really remember more than a handful. So they're not helping much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And on the other hand, far too many people become enamoured with the concept and try to apply patterns everywhere - usually, in the resulting code you can't find the actual design between all the (completely meaningless) Singletons and Abstract Factories.&lt;/p&gt;&#xA;" OwnerUserId="11982" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:38:52.647" CommentCount="32" />
  <row Id="31118" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:39:34.827" Score="48" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Debuggers should be forbidden&lt;/strong&gt;. This would force people to write code that is testable through unit tests, and in the end would lead to much better code quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Remove Copy &amp;amp; Paste from ALL programming IDEs&lt;/strong&gt;. Copy &amp;amp; pasted code is very bad, this option should be completely removed. Then the programmer will hopefully be too lazy to retype all the code so he makes a function and reuses the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Whenever you use a Singleton, slap yourself&lt;/strong&gt;. Singletons are almost never necessary, and are most of the time just a fancy name for a global variable.&lt;/p&gt;&#xA;" OwnerUserId="9601" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:39:34.827" CommentCount="43" />
  <row Id="31119" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:41:03.280" Score="281" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Write small methods.&lt;/strong&gt;  It seems that programmers love to write loooong methods where they do multiple different things.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that a method should be created wherever you can name one.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:41:03.280" CommentCount="22" />
  <row Id="31120" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:41:59.783" Score="489" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Getters and Setters are Highly Overused&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen millions of people claiming that public fields are evil, so they make them private and provide getters and setters for all of them. I believe this is almost identical to making the fields public, maybe a bit different if you're using threads (but generally is not the case) or if your accessors have business/presentation logic (something 'strange' at least).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not in favor of public fields, but against making a getter/setter (or Property) for everyone of them, and then claiming that doing that is &lt;strong&gt;encapsulation&lt;/strong&gt; or &lt;strong&gt;information hiding&lt;/strong&gt;... ha!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This answer has raised some controversy in it's comments, so I'll try to clarify it a bit (I'll leave the original untouched since that is what many people upvoted).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of all: &lt;strong&gt;anyone who uses public fields deserves jail time&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, creating private fields and then using the IDE to &lt;em&gt;automatically generate getters and setters for every one of them&lt;/em&gt; is &lt;strong&gt;nearly as bad&lt;/strong&gt; as using public fields.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many people think:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;private fields + public accessors == encapsulation&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I say (automatic or not) generation of getter/setter pair for your fields effectively goes against the so called encapsulation you are trying to achieve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, let me quote &lt;a href=&quot;http://en.wikipedia.org/wiki/Robert%5FCecil%5FMartin&quot; rel=&quot;nofollow&quot;&gt;Uncle Bob&lt;/a&gt; in this topic (taken from chapter 6 of &quot;Clean Code&quot;):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;There is a reason that we keep our&#xA;  variables private. We don't want&#xA;  anyone else to depend on them. We want&#xA;  the freedom to change their type or&#xA;  implementation on a whim or an&#xA;  impulse. Why, then, do so many&#xA;  programmers automatically add getters&#xA;  and setters to their objects, exposing&#xA;  their private fields &lt;strong&gt;as if they were&#xA;  public?&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:41:59.783" CommentCount="64" />
  <row Id="31121" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:42:25.930" Score="196" ViewCount="" Body="&lt;p&gt;I also think there's &lt;strong&gt;nothing wrong with having binaries in source control&lt;/strong&gt;.. if there is a good reason for it.  If I have an assembly I don't have the source for, and might not necessarily be in the same place on each devs machine, then I will usually stick it in a &quot;binaries&quot; directory and reference it in a project using a relative path.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quite a lot of people seem to think I should be burned at the stake for even mentioning &quot;source control&quot; and &quot;binary&quot; in the same sentence.  I even know of places that have strict rules saying you can't add them.&lt;/p&gt;&#xA;" OwnerUserId="11943" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:42:25.930" CommentCount="21" />
  <row Id="31122" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:44:11.900" Score="782" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Most comments in code are in fact a pernicious form of code duplication.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We spend most of our time maintaining code written by others (or ourselves) and poor, incorrect, outdated, misleading comments must be near the top of the list of most annoying artifacts in code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think eventually many people just blank them out, especially those flowerbox monstrosities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Much better to concentrate on making the code readable, refactoring as necessary, and minimising idioms and quirkiness.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, many courses teach that comments are very nearly more important than the code itself, leading to the &lt;em&gt;this next line adds one to invoiceTotal&lt;/em&gt; style of commenting.&lt;/p&gt;&#xA;" OwnerUserId="2381" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:44:11.900" CommentCount="39" />
  <row Id="31123" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:48:19.083" Score="377" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The use of hungarian notation should be punished with death.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That should be controversial enough ;)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:48:19.083" CommentCount="37" />
  <row Id="31124" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:51:09.267" Score="507" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;1) The Business Apps farce&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that the whole &quot;Enterprise&quot; frameworks thing is smoke and mirrors. J2EE, .NET, the majority of the Apache frameworks and most abstractions to manage such things create far more complexity than they solve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take any regular Java or .NET ORM, or any supposedly modern MVC framework for either which does &quot;magic&quot; to solve tedious, simple tasks. You end up writing huge amounts of ugly XML boilerplate that is difficult to validate and write quickly. You have massive APIs where half of those are just to integrate the work of the other APIs, interfaces that are impossible to recycle, and abstract classes that are needed only to overcome the inflexibility of Java and C#. We simply don't need most of that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How about all the different application servers with their own darned descriptor syntax, the overly complex database and groupware products?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point of this is not that complexity==bad, it's that unnecessary complexity==bad. I've worked in massive enterprise installations where some of it was necessary, but even in most cases a few home-grown scripts and a simple web frontend is all that's needed to solve most use cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd try to replace all of these enterprisey apps with simple web frameworks, open source DBs, and trivial programming constructs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2) The n-years-of-experience-required:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you need a consultant or a technician to handle a specific issue related to an application, API or framework, then you don't really need someone with 5 years of experience in that application. What you need is a developer/admin who can read documentation, who has domain knowledge in whatever it is you're doing, and who can learn quickly. If you need to develop in some kind of language, a decent developer will pick it up in less than 2 months. If you need an administrator for X web server, in two days he should have read the man pages and newsgroups and be up to speed. Anything less and that person is not worth what he is paid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3) The common &quot;computer science&quot; degree curriculum:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The majority of computer science and software engineering degrees are bull. If your first programming language is Java or C#, then you're doing something wrong. If you don't get several courses full of algebra and math, it's wrong. If you don't delve into functional programming, it's incomplete. If you can't apply loop invariants to a trivial for loop, you're not worth your salt as a supposed computer scientist. If you come out with experience in x and y languages and object orientation, it's full of s***. A real computer scientist sees a language in terms of the concepts and syntaxes it uses, and sees programming methodologies as one among many, and has such a good understanding of the underlying philosophies of both that picking new languages, design methods, or specification languages should be trivial.&lt;/p&gt;&#xA;" OwnerUserId="10905" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:51:09.267" CommentCount="40" />
  <row Id="31125" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:54:08.760" Score="206" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Every developer should be familiar with the basic architecture of modern computers.&lt;/strong&gt; This also applies to developers who target a virtual machine (maybe even more so, because they have been told time and time again that they don't need to worry themselves with memory management, etc.)&lt;/p&gt;&#xA;" OwnerUserId="3796" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-22T10:15:35.720" LastActivityDate="2011-01-22T10:15:35.720" CommunityOwnedDate="2009-01-02T13:54:08.760" CommentCount="8" />
  <row Id="31126" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:58:33.883" Score="2" ViewCount="" Body="&lt;p&gt;Once i saw the following from a co-worker:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;equal = a.CompareTo(b) == 0;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I stated that he cannot assume that in a general case, but he just laughed.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:58:33.883" CommentCount="12" />
  <row Id="31127" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:59:17.457" Score="723" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Not all programmers are created equal&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quite often managers think that DeveloperA == DeveloperB simply because they have same level of experience and so on. In actual fact, the performance of one developer can be 10x or even 100x that of another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's politically risky to talk about it, but sometimes I feel like pointing out that, even though several team members may &lt;em&gt;appear&lt;/em&gt; to be of equal skill, it's not always the case. I have even seen cases where lead developers were 'beyond hope' and junior devs did all the actual work - I made sure they got the credit, though. :)&lt;/p&gt;&#xA;" OwnerUserId="23619" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:59:17.457" CommentCount="22" />
  <row Id="31128" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:59:23.803" Score="604" ViewCount="" Body="&lt;p&gt;&lt;b&gt;If you only know one language, no matter how well you know it, you're not a great programmer.&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There seems to be an attitude that says once you're really good at C# or Java or whatever other language you started out learning then that's all you need. I don't believe it- every language I have ever learned has taught me something new about programming that I have been able to bring back into my work with all the others. I think that anyone who restricts themselves to one language will never be as good as they could be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also indicates to me a certain lack of inquistiveness and willingness to experiment that doesn't necessarily tally with the qualities I would expect to find in a really good programmer.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:59:23.803" CommentCount="36" />
  <row Id="31129" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T13:59:41.183" Score="30" ViewCount="" Body="&lt;p&gt;I often get shouted down when I claim that the &lt;strong&gt;code is merely an expression of my design&lt;/strong&gt;.  I quite dislike the way I see so many developers design their system &quot;on the fly&quot; while coding it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The amount of time and effort wasted when one of these cowboys falls off his horse is amazing - and 9 times out of 10 the problem they hit would have been uncovered with just a little upfront design work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel that modern methodologies do not emphasize the importance of design in the overall software development process.  Eg, the importance placed on code reviews when you haven't even reviewed your design!  It's madness.&lt;/p&gt;&#xA;" OwnerUserId="3399" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T13:59:41.183" CommentCount="10" />
  <row Id="31130" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:03:21.473" Score="582" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Performance &lt;em&gt;does&lt;/em&gt; matter.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="3399" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T14:03:21.473" CommentCount="70" />
  <row Id="31131" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:13:00.953" Score="40" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You don't have to program everything&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm getting tired that everything, but then everything needs to be stuffed in a program, like that is always faster. everything needs to be webbased, evrything needs to be done via a computer. Please, just use your pen and paper. it's faster and less maintenance.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T14:13:00.953" CommentCount="6" />
  <row Id="31132" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:15:27.127" Score="219" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Code == Design&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm no fan of sophisticated UML diagrams and endless code documentation. In a high level language, your code should be readable and understandable as is. Complex documentation and diagrams aren't really any more user friendly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;hr /&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's an article on the topic of &lt;a href=&quot;http://www.developerdotstar.com/mag/articles/reeves_design_main.html&quot; rel=&quot;nofollow&quot;&gt;Code as Design&lt;/a&gt;.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T14:15:27.127" CommentCount="15" />
  <row Id="31133" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:16:12.633" Score="73" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Opinion: Unit tests don't need to be written up front, and sometimes not at all.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reasoning: Developers suck at testing their own code. We do. That's why we generally have test teams or QA groups.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the time the code we write is to intertwined with other code to be tested separately, so we end up jumping through patterned hoops to provide testability. Not that those patterns are bad, but they can sometimes add unnecessary complexity, all for the sake of unit testing...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... which often doesn't work anyway. To write a comprehensive unit test requires alot of time. Often more time than we're willing to give. And the more comprehensive the test, the more brittle it becomes if the interface of the thing it's testing changes, forcing a rewrite of a test that no longer compiles.&lt;/p&gt;&#xA;" OwnerUserId="7961" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T14:16:12.633" CommentCount="15" />
  <row Id="31134" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:21:11.670" Score="267" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It's OK to write garbage code once in a while&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes a quick and dirty piece of garbage code is all that is needed to fulfill a particular task.  Patterns, ORMs, &lt;a href=&quot;http://en.wikipedia.org/wiki/Single_responsibility_principle&quot; rel=&quot;nofollow&quot;&gt;SRP&lt;/a&gt;, whatever...  Throw up a console or web application, write some inline SQL (feels good), and blast out the requirement. &lt;/p&gt;&#xA;" OwnerUserId="6101" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-22T10:14:41.273" LastActivityDate="2011-01-22T10:14:41.273" CommunityOwnedDate="2009-01-02T14:21:11.670" CommentCount="20" />
  <row Id="31135" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:21:34.370" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Manually halting a program is an effective, proven way to find performance problems.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Believable? Not to most. True? Absolutely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Programmers are far more judgmental than necessary.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Witness all the things considered &quot;evil&quot; or &quot;horrible&quot; in these posts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Programmers are data-structure-happy.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Witness all the discussions of classes, inheritance, private-vs-public, memory management, etc., versus how to analyze requirements.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T14:21:34.370" CommentCount="6" />
  <row Id="31136" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:21:49.173" Score="157" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;There is no &quot;one size fits all&quot; approach to development&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm surprised that this is a controversial opinion, because it seems to me like common sense. However, there are many entries on popular blogs promoting the &quot;one size fits all&quot; approach to development so I think I may actually be in the minority.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things I've seen being touted as &lt;em&gt;the&lt;/em&gt; correct approach for &lt;em&gt;any&lt;/em&gt; project - before any information is known about it - are things like the use of Test Driven Development (TDD), Domain Driven Design (DDD), Object-Relational Mapping (ORM), Agile (capital A), Object Orientation (OO), etc. etc. encompassing everything from methodologies to architectures to components. All with nice marketable acronyms, of course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People even seem to go as far as putting badges on their blogs such as &quot;I'm Test Driven&quot; or similar, as if their strict adherence to a single approach whatever the details of the project project is actually a &lt;em&gt;good thing&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It isn't. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Choosing the correct methodologies and architectures and components, etc., is something that should be done on a &lt;em&gt;per-project&lt;/em&gt; basis, and depends not only on the type of project you're working on and its unique requirements, but also the size and ability of the team you're working with.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T14:21:49.173" CommentCount="8" />
  <row Id="31137" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:22:29.907" Score="40" ViewCount="" Body="&lt;p&gt;Before January 1st 1970, true and false were the other way around...&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T14:22:29.907" CommentCount="6" />
  <row Id="31138" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:24:46.047" Score="31" ViewCount="" Body="&lt;p&gt;Regurgitating well known sayings by programming greats out of context with the zeal of a fanatic and the misplaced assumption that they are ironclad rules really gets my goat.  For example 'premature optimization is the root of all evil' as covered by &lt;a href=&quot;http://stackoverflow.com/questions/385506/when-is-optimisation-premature#385825&quot;&gt;this thread&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMO, many technical problems and solutions are very context sensitive and the notion of global best practices is a fallacy.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T14:24:46.047" CommentCount="5" />
  <row Id="31139" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:30:23.820" Score="11" ViewCount="" Body="&lt;p&gt;That most language proponents make a lot of noise.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T14:30:23.820" CommentCount="2" />
  <row Id="31140" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:34:34.530" Score="18" ViewCount="" Body="&lt;p&gt;Here's one which has seemed obvious to me for many years but is anathema to everyone else: &lt;strong&gt;it is almost always a mistake to switch off C (or C++) assertions with &lt;code&gt;NDEBUG&lt;/code&gt; in 'release' builds.&lt;/strong&gt; (The sole exceptions are where the time or space penalty is unacceptable).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rationale:  If an assertion fails, your program has entered a state which &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;has never been tested&lt;/li&gt;&#xA;&lt;li&gt;the developer was unable to code a recovery strategy for&lt;/li&gt;&#xA;&lt;li&gt;the developer has effectively documented as being inconceivable.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Yet somehow 'industry best practice' is that the thing should just muddle on and hope for the best when it comes to live runs with your customers' data. &lt;/p&gt;&#xA;" OwnerUserId="21245" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T14:34:34.530" CommentCount="6" />
  <row Id="31141" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:41:14.190" Score="27" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Opinion: That frameworks and third part components should be only used as a last resort.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I often see programmers immediately pick a framework to accomplish a task without learning the underlying approach it takes to work.  Something will inevitably break, or we'll find a limition we didn't account for and we'll be immediately stuck and have to rethink major part of a system.  Frameworks are fine to use as long it is carefully thought out.&lt;/p&gt;&#xA;" OwnerUserId="7747" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T14:41:14.190" CommentCount="6" />
  <row Id="31142" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:41:35.857" Score="76" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Opinion: Never ever have different code between &quot;debug&quot; and &quot;release&quot; builds&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main reason being that release code almost never gets tested. Better to have the same code running in test as it is in the wild.&lt;/p&gt;&#xA;" OwnerUserId="7961" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T14:41:35.857" CommentCount="16" />
  <row Id="31143" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:41:47.790" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://apocalisp.wordpress.com/2008/12/04/no-such-thing/&quot; rel=&quot;nofollow&quot;&gt;There is no such thing as Object-Oriented programming.&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="19517" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T14:41:47.777" CommentCount="13" />
  <row Id="31144" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:43:10.473" Score="367" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If you're a developer, you should be able to write code&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did quite a bit of interviewing last year, and for my part of the interview I was supposed to test the way people thought, and how they implemented simple-to-moderate algorithms on a white board. I'd initially started out with questions like:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Given that Pi can be estimated using the function 4 * (1 - 1/3 + 1/5 - 1/7 + ...) with more terms giving greater accuracy, write a function that calculates Pi to an accuracy of 5 decimal places.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's a problem that should make you think, but shouldn't be out of reach to a seasoned developer (it can be answered in about 10 lines of C#). However, many of our (supposedly pre-screened by the agency) candidates couldn't even begin to answer it, or even explain how they might go about answering it. So after a while I started asking simpler questions like:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Given the area of a circle is given by Pi times the radius squared, write a function to calculate the area of a circle.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Amazingly, more than half the candidates couldn't write this function in &lt;em&gt;any&lt;/em&gt; language (I can read most popular languages so I let them use any language of their choice, including pseudo-code). We had &quot;C# developers&quot; who could not write this function in C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was surprised by this. I had always thought that developers should be able to write code. It seems that, nowadays, this is a controversial opinion. Certainly it is amongst interview candidates!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;hr /&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a lot of discussion in the comments about whether the first question is a good or bad one, and whether you should ask questions as complex as this in an interview. I'm not going to delve into this here (that's a whole new question) apart from to say &lt;em&gt;you're largely missing the point of the post&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, I said people couldn't make any headway with this, but the second question is &lt;em&gt;trivial&lt;/em&gt; and many people couldn't make any headway with that one either! &lt;em&gt;Anybody&lt;/em&gt; who calls themselves a developer should be able to write the answer to the second one in a few seconds without even thinking. And many can't.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T14:43:10.473" CommentCount="83" />
  <row Id="31145" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:43:45.243" Score="81" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Opinion: explicit variable declaration is a great thing.&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll never understand the &quot;wisdom&quot; of letting the developer waste costly time tracking down runtime errors caused by variable name typos instead of simply letting the compiler/interpreter catch them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nobody's ever given me an explanation better than &quot;well it saves time since I don't have to write 'int i;'.&quot;  Uhhhhh... yeah, sure, but how much time does it take to track down a runtime error?  &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T14:43:45.243" CommentCount="8" />
  <row Id="31146" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:44:19.597" Score="2" ViewCount="" Body="&lt;p&gt;That (at least during initial design), every Database Table (well, almost every one) should be clearly defined to contain some clearly understanable business entity or system-level domain abstraction, and that whether or not you use it as a a primary key and as Foreign Keys in other dependant tables, some column (attribute) or subset of the table attributes should be clearly defined to represent a unique key for that table (entity/abstraction).  This is the only way to ensure that the overall table structure represents a logically consistent representation of the complete system data structure, without overlap or misunbderstood flattening.  I am a firm believeer in using non-meaningful surrogate keys for Pks and Fks and join functionality, (for performance, ease of use, and other reasons), but I beleive the tendency in this direction has taken the database community too far away from the original Cobb principles, and we jhave lost much of the benefits (of database consistency) that natural keys provided.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So why not use both?&lt;/p&gt;&#xA;" OwnerUserId="10732" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T14:44:19.597" />
  <row Id="31147" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:48:14.503" Score="4" ViewCount="" Body="&lt;p&gt;Whenever you expose a mutable class to the outside world, you should provide events to make it possible to observe its mutation. The extra effort may also convince you to make it immutable after all.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T14:48:14.503" />
  <row Id="31148" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:50:17.087" Score="418" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Opinion: SQL is code.  Treat it as such&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, just like your C#, Java, or other favorite object/procedure language, develop a formatting style that is readable and maintainable.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hate when I see sloppy free-formatted SQL code.  If you scream when you see both styles of curly braces on a page, why or why don't you scream when you see free formatted SQL or SQL that obscures or obfuscates the JOIN condition?&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T14:50:17.087" CommentCount="21" />
  <row Id="31149" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:53:48.173" Score="4" ViewCount="" Body="&lt;p&gt;MVC for the web should be far simpler than traditional MVC.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Traditional MVC involves code that &quot;listens&quot; for &quot;events&quot; so that the view can continually be updated to reflect the current state of the model.  In the web paradigm however, the web server already does the listening, and the request is the event.  Therefore MVC for the web need only be a specific instance of the mediator pattern: controllers mediating between views and the model.  If a web framework is crafted properly, a re-usable core should probably not be more than 100 lines.  That core need only implement the &quot;page controller&quot; paradigm but should be extensible so as to be able to support the &quot;front controller&quot; paradigm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Below is a method that is the crux of my own framework, used successfully in an embedded consumer device manufactured by a Fortune 100 network hardware manufacturer, for a Fortune 50 media company.  My approach has been likened to Smalltalk by a former Smalltalk programmer and author of an Oreilly book about the most prominent Java web framework ever; furthermore I have ported the same framework to mod_python/psp.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;static function sendResponse(IBareBonesController $controller) {&#xA;  $controller-&amp;gt;setMto($controller-&amp;gt;applyInputToModel());&#xA;  $controller-&amp;gt;mto-&amp;gt;applyModelToView();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T14:53:48.157" CommentCount="1" />
  <row Id="31150" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T14:55:44.877" Score="66" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/archives/000660.html&quot; rel=&quot;nofollow&quot;&gt;Source Control: Anything But SourceSafe&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also: &lt;strong&gt;Exclusive locking is evil&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I once worked somewhere where they argued that exclusive locks meant that you were guaranteeing that people were not overwriting someone else's changes when you checked in. The problem was that in order to get any work done, if a file was locked developers would just change their local file to writable and merging (or overwriting) the source control with their version when they had the chance. &lt;/p&gt;&#xA;" OwnerUserId="7961" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-22T10:34:31.670" LastActivityDate="2011-01-22T10:34:31.670" CommunityOwnedDate="2009-01-02T14:55:44.877" CommentCount="15" />
  <row Id="31151" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T15:03:19.620" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Arrays should by default be 1-based rather than 0-based.&lt;/strong&gt;  This is not necessarily the case with system implementation languages, but languages like Java swallowed more C oddities than they should have.  &quot;Element 1&quot; should be the first element, not the second, to avoid confusion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Computer science is not software development.  You wouldn't hire an engineer who studied only physics, after all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn as much mathematics as is feasible.  You won't use most of it, but you need to be able to think that way to be good at software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The single best programming language yet standardized is Common Lisp, even if it is verbose and has zero-based arrays.  That comes largely from being designed as a way&#xA;to write computations, rather than as an abstraction of a von Neumann machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least 90% of all comparative criticism of programming languages can be reduced to &quot;Language A has feature C, and I don't know how to do C or something equivalent in Language B, so Language A is better.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Best practices&quot; is the most impressive way to spell &quot;mediocrity&quot; I've ever seen.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T15:03:19.620" CommentCount="11" />
  <row Id="31152" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T15:06:12.627" Score="72" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;All variables/properties should be &lt;code&gt;readonly&lt;/code&gt;/&lt;code&gt;final&lt;/code&gt; by default.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reasoning is a bit analogous to the &lt;code&gt;sealed&lt;/code&gt; argument for classes, put forward by Jon. One entity in a program should have one job, and one job only. In particular, it makes absolutely no sense for most variables and properties to ever change value. There are basically two exceptions.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Loop variables. But then, I argue that the variable actually doesn't change value at all. Rather, it goes out of scope at the end of the loop and is re-instantiated in the next turn. Therefore, immutability would work nicely with loop variables and everyone who tries to change a loop variable's value by hand should go straight to hell.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Accumulators. For example, imagine the case of summing over the values in an array, or even a list/string that accumulates some information about something else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Today, there are better means to accomplish the same goal. Functional languages have higher-order functions, Python has list comprehension and .NET has LINQ. In all these cases, there is no need for a mutable accumulator / result holder.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider the special case of string concatenation. In many environments (.NET, Java), strings are actually immutables. Why then allow an assignment to a string variable at all? Much better to use a builder class (i.e. a &lt;code&gt;StringBuilder&lt;/code&gt;) all along.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I realize that most languages today just aren't built to acquiesce in my wish. In my opinion, all these languages are fundamentally flawed for this reason. They would lose nothing of their expressiveness, power, and ease of use if they would be changed to treat all variables as read-only by default and didn't allow any assignment to them after their initialization.&lt;/p&gt;&#xA;" OwnerUserId="2366" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T15:06:12.627" CommentCount="28" />
  <row Id="31153" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T15:08:40.030" Score="330" ViewCount="" Body="&lt;p&gt;&lt;b&gt;Unit testing won't help you write good code&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only reason to have Unit tests is to make sure that code that already works doesn't break.  Writing tests first, or writing code to the tests is ridiculous.  If you write to the tests before the code, you won't even know what the edge cases are. You could have code that passes the tests but still fails in unforeseen circumstances.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And furthermore, good developers will keep cohesion low, which will make the addition of new code unlikely to cause problems with existing stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, I'll generalize that even further, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Most &quot;best practices&quot; in software engineering are there to keep bad programmers from doing too much damage&lt;/b&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're there to hand-hold bad developers and keep them from making dumbass mistakes. Of course, since most developers are bad, this is a good thing, but good developers should get a pass.&lt;/p&gt;&#xA;" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-22T10:09:20.393" LastActivityDate="2011-01-22T10:09:20.393" CommunityOwnedDate="2009-01-02T15:08:40.030" CommentCount="38" />
  <row Id="31154" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T15:09:36.613" Score="15" ViewCount="" Body="&lt;p&gt;My one:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Long switch statements are your friends. Really. At least in C#.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People tend to avoid and discourage others to use long switch statements beause they are &quot;unmanagable&quot; and &quot;have bad performance characteristics&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, the thing is that in C#, switch statements are always compiled automagically to hash jump tables so actually using them is the &lt;em&gt;Best Thing To Do™&lt;/em&gt; in terms of performance if you need simple branching to multiple branches. Also, if the case statements are organized and grouped intelligently (for example in alphabetical order), they are not unmanageable at all.&lt;/p&gt;&#xA;" OwnerUserId="1091" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T15:09:36.613" CommentCount="10" />
  <row Id="31155" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T15:17:31.057" Score="237" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Software development is just a job&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong, I enjoy software development a lot. I've written a blog for the last few years on the subject. I've spent enough time on here to have &gt;5000 reputation points. And I work in a start-up doing typically 60 hour weeks for much less money than I could get as a contractor because the team is fantastic and the work is interesting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in the grand scheme of things, it is just a job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It ranks in importance below many things such as family, my girlfriend, friends, happiness etc., and below other things I'd rather be doing if I had an unlimited supply of cash such as riding motorbikes, sailing yachts, or snowboarding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think sometimes a lot of developers forget that developing is just something that allows us to have the more important things in life (and to have them by doing something we enjoy) rather than being the end goal in itself.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T15:17:31.057" CommentCount="26" />
  <row Id="31156" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T15:26:49.510" Score="45" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Singletons are not evil&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a place for singletons in the real world, and methods to get around them (i.e. monostate pattern) are simply singletons in disguise. For instance, a Logger is a perfect candidate for a singleton. Addtionally, so is a message pump. My current app uses distributed computing, and different objects need to be able to send appropriate messages. There should only be one message pump, and everyone should be able to access it. The alternative is passing an object to my message pump everywhere it might be needed and hoping that a new developer doesn't new one up without thinking and wonder why his messages are going nowhere. The uniqueness of the singleton is the most important part, not its availability. The singleton has its place in the world.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T15:26:49.510" CommentCount="7" />
  <row Id="31157" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T15:38:02.000" Score="9" ViewCount="" Body="&lt;p&gt;Rob Pike wrote: &quot;Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And since these days any serious data is in the millions of records, I content that good data modeling is the most important programming skill (whether using a rdbms or something like sqlite or amazon simpleDB or google appengine data storage.)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fancy search and sorting algorithms aren't needed any more when the data, all the data, is stored in such a data storage system.&lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T15:38:02.000" CommentCount="5" />
  <row Id="31158" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T15:47:43.367" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Junior programmers should be assigned to doing object/ module design and design maintenance for several months before they are allowed to actually write or modify code.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Too many programmers/developers make it to the 5 and 10 year marks without understanding the elements of good design. It can be crippling later when they want to advance beyond just writing and maintaining code.&lt;/p&gt;&#xA;" OwnerUserId="13346" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T15:47:43.367" CommentCount="7" />
  <row Id="31159" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T16:30:24.937" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;(Unnamed) tuples are evil&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you're using tuples as a container for several objects with unique meanings, use a class instead.&lt;/li&gt;&#xA;&lt;li&gt;If you're using them to hold several objects that should be accessible by index, use a list.&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you're using them to return multiple values from a method, use Out parameters instead (this does require that your language supports pass-by-reference)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If it's part of a code obfuscation strategy, keep using them!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I see people using tuples just because they're too lazy to bother giving NAMES to their objects. Users of the API are then forced to access items in the tuple based on a meaningless index instead of a useful name.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T16:30:24.937" CommentCount="2" />
  <row Id="31160" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T16:38:25.857" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Goto is OK!&lt;/strong&gt; (is that controversial enough)&lt;br /&gt;&#xA;Sometimes... so give us the choice! For example, BASH doesn't have goto. Maybe there is some internal reason for this but still.&lt;br /&gt;&#xA;Also, &lt;code&gt;goto&lt;/code&gt; is the building block of Assembly language. No if statements for you! :)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T16:38:25.857" CommentCount="7" />
  <row Id="31161" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T16:40:11.373" Score="389" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Readability is the most important aspect of your code.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even more so than correctness.  If it's readable, it's easy to fix.  It's also easy to optimize, easy to change, easy to understand.  And hopefully other developers can learn something from it too.&lt;/p&gt;&#xA;" OwnerUserId="8731" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T16:40:11.373" CommentCount="16" />
  <row Id="31162" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T16:46:17.057" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;System.Data.DataSet Rocks!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Strongly-typed DataSets are better, in my opinion, than custom DDD objects for most business applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reasoning: We're bending over backwards to figure out Unit of Work on custom objects, LINQ to SQL, Entity Framework and it's adding complexity. Use a nice code generator from somewhere to generate the data layer and the Unit of Work sits on the object collections (DataTable and DataSet)--no mystery.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T16:46:17.057" CommentCount="3" />
  <row Id="31163" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T16:48:00.970" Score="11" ViewCount="" Body="&lt;h1&gt;Using Stored Procedures&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Unless you are writing a large procedural function composed of non-reusable SQL queries, please move your stored procedures of the database and into version control. &lt;/p&gt;&#xA;" OwnerUserId="15467" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T16:48:00.970" CommentCount="6" />
  <row Id="31164" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T17:02:01.800" Score="91" ViewCount="" Body="&lt;p&gt;I've been burned for broadcasting these opinions in public before, but here goes:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Well-written code in dynamically typed languages follows static-typing conventions&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having used Python, PHP, Perl, and a few other dynamically typed languages, I find that well-written code in these languages follows static typing conventions, for example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;It's considered bad style to re-use a variable with different types (for example, it's bad style to take a list variable and assign an int, then assign the variable a bool in the same method). Well-written code in dynamically typed languages doesn't mix types.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A type-error in a statically typed language is still a type-error in a dynamically typed language.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Functions are generally designed to operate on a single datatype at a time, so that a function which accepts a parameter of type &lt;code&gt;T&lt;/code&gt; can only sensibly be used with objects of type &lt;code&gt;T&lt;/code&gt; or subclasses of &lt;code&gt;T&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Functions designed to operator on many different datatypes are written in a way that constrains parameters to a well-defined interface. In general terms, if two objects of types &lt;code&gt;A&lt;/code&gt; and &lt;code&gt;B&lt;/code&gt; perform a similar function, but aren't subclasses of one another, then they almost certainly implement the same interface.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;While dynamically typed languages certainly provide more than one way to crack a nut, most well-written, idiomatic code in these languages pays close attention to types just as rigorously as code written in statically typed languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Dynamic typing does not reduce the amount of code programmers need to write&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I point out how peculiar it is that so many static-typing conventions cross over into dynamic typing world, I usually add &quot;so why use dynamically typed languages to begin with?&quot;. &#xA;The immediate response is something along the lines of being able to write more terse, expressive code, because dynamic typing allows programmers to omit type annotations and explicitly defined interfaces. However, I think the most popular statically typed languages, such as C#, Java, and Delphi, are bulky by design, not as a result of their type systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like to use languages with a &lt;em&gt;real&lt;/em&gt; type system like OCaml, which is not only statically typed, but its type inference and structural typing allow programmers to omit most type annotations and interface definitions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The existence of the &lt;a href=&quot;http://en.wikipedia.org/wiki/ML_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;ML&lt;/a&gt; family of languages demostrates that we can enjoy the benefits of static typing with all the brevity of writing in a dynamically typed language. I actually use OCaml's &lt;a href=&quot;http://en.wikipedia.org/wiki/Read-eval-print_loop&quot; rel=&quot;nofollow&quot;&gt;REPL&lt;/a&gt; for ad hoc, throwaway scripts in exactly the same way everyone else uses Perl or Python as a scripting language.&lt;/p&gt;&#xA;" OwnerUserId="1467" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-22T10:27:12.867" LastActivityDate="2011-01-22T10:27:12.867" CommunityOwnedDate="2009-01-02T17:02:01.800" CommentCount="6" />
  <row Id="31165" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T17:18:02.033" Score="76" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Code layout does matter&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe specifics of brace position should remain purely religious arguments - but it doesn't mean that all layout styles are equal, or that there are no objective factors at all!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The trouble is that the uber-rule for layout, namely: &quot;be consistent&quot;, sound as it is, is used as a crutch by many to never try to see if their default style can be improved on - and that, furthermore, it &lt;em&gt;doesn't even matter&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few years ago I was studying Speed Reading techniques, and some of the things I learned about how the eye takes in information in &quot;fixations&quot;, can most optimally scan pages, and the role of subconsciously picking up context, got me thinking about how this applied to code - and writing code with it in mind especially.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It led me to a style that tended to be columnar in nature, with identifiers logically grouped and aligned where possible (in particular I became strict about having each method argument on its own line). However, rather than long columns of unchanging structure it's actually beneficial to vary the structure in blocks so that you end up with rectangular islands that the eye can take in in a single fixture - even if you don't consciously read every character.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The net result is that, once you get used to it (which typically takes 1-3 days) it becomes pleasing to the eye, easier and faster to comprehend, and is less taxing on the eyes and brain because it's laid out in a way that makes it easier to take in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Almost without exception, everyone I have asked to try this style (including myself) initially said, &quot;ugh I hate it!&quot;, but after a day or two said, &quot;I love it - I'm finding it hard not to go back and rewrite all my old stuff this way!&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been hoping to find the time to do more controlled experiments to collect together enough evidence to write a paper on, but as ever have been too busy with other things. However this seemed like a good opportunity to mention it to people interested in controversial techniques :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[Edit]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I finally got around to blogging about this (after many years parked in the &quot;meaning to&quot; phase): &lt;a href=&quot;http://www.levelofindirection.com/journal/2009/9/24/code-formatting-in-c-part-one.html&quot; rel=&quot;nofollow&quot;&gt;Part one&lt;/a&gt;, &lt;a href=&quot;http://www.levelofindirection.com/journal/2009/10/5/code-formatting-in-c-part-two.html&quot; rel=&quot;nofollow&quot;&gt;Part two&lt;/a&gt;, &lt;a href=&quot;http://www.levelofindirection.com/journal/2009/11/11/code-formatting-in-c-part-three.html&quot; rel=&quot;nofollow&quot;&gt;Part three&lt;/a&gt;.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T17:18:02.033" CommentCount="10" />
  <row Id="31166" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T17:20:25.553" Score="10" ViewCount="" Body="&lt;p&gt;The ability to create UML diagrams similar to pretzels with mad cow disease is not actually a useful software development skill.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The whole point of diagramming code is to visualise connections, to see the shape of a design. But once you pass a certain rather low level of complexity, the visualisation is too much to process mentally. Making connections pictorially is only simple if you stick to straight lines, which typically makes the diagram much harder to read than if the connections were cleverly grouped and routed along the cardinal directions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use diagrams only for broad communication purposes, and only when they're understood to be lies.&lt;/p&gt;&#xA;" OwnerUserId="2559" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T17:20:25.553" />
  <row Id="31167" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T17:20:26.473" Score="19" ViewCount="" Body="&lt;p&gt;How about this one:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Garbage collectors actually hurt programmers' productivity and make resource leaks harder to find and fix&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that I am talking about resouces in general, and not only memory.&lt;/p&gt;&#xA;" OwnerUserId="15165" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T17:20:26.457" CommentCount="10" />
  <row Id="31168" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T17:27:35.833" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;SQL could and should have been done better.&lt;/strong&gt;  Because its original spec was limited, various venders have been extending the language in different directions for years.  SQL that is written for MS-SQL is different than SQL for Oracle, IBM, MySQL, Sybase, etc.  Other serious languages (take C++ for example) were carefully standardized so that C++ written under one compiler will generally compile unmodified under another.  Why couldn't SQL have been designed and standardized better?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;HTML was a seriously broken choice as a browser display language.&lt;/strong&gt;  We've spent years extending it through CSS, XHTML, Javascript, Ajax, Flash, etc. in order to make a useable UI, and the result is still not as good as your basic thick-client windows app.  Plus, a competent web programmer now needs to know three or four languages in order to make a decent UI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh yeah.  Hungarian notation is an abomination.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T17:27:35.833" CommentCount="3" />
  <row Id="31169" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T17:32:43.890" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Globals and/or Singletons are not inherently evil&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I come from more of a sysadmin, shell, Perl (and my &quot;real&quot; programming), PHP type background; last year I was thrown into a Java development gig.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Singletons are evil. Globals are so evil they are not even allowed. Yet, Java has things like AOP, and now various &quot;Dependency Injection&quot; frameworks (we used Google Guice). AOP less so, but DI things for sure give you what? Globals. Uhh, thanks.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T17:32:43.890" CommentCount="4" />
  <row Id="31170" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T17:34:32.467" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The class library guidelines for implementing IDisposable are wrong.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't share this too often, but I believe that the guidance for the default implementation for &lt;code&gt;IDisposable&lt;/code&gt; is completely wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My issue isn't with the overload of &lt;code&gt;Dispose&lt;/code&gt; and then removing the item from finalization, but rather, I despise how there is a call to release the managed resources in the finalizer.  I personally believe that an exception should be thrown (and yes, with all the nastiness that comes from throwing it on the finalizer thread).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reasoning behind it is that if you are a client or server of &lt;code&gt;IDisposable&lt;/code&gt;, there is an understanding that you can't simply leave the object lying around to be finalized.  If you do, this is a design/implementation flaw (depending on how it is left lying around  and/or how it is exposed), as you are not aware of the lifetime of instances that you should be aware of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that this type of bug/error is on the level of race conditions/synchronization to resources.  Unfortunately, with calling the overload of &lt;code&gt;Dispose&lt;/code&gt;, that error is never materialized.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:  I've written a blog post on the subject if anyone is interested:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.caspershouse.com/post/A-Better-Implementation-Pattern-for-IDisposable.aspx&quot; rel=&quot;nofollow&quot;&gt;http://www.caspershouse.com/post/A-Better-Implementation-Pattern-for-IDisposable.aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="24941" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T17:34:32.467" CommentCount="4" />
  <row Id="31171" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T17:35:49.377" Score="117" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;SESE (Single Entry Single Exit) is not law&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public int foo() {&#xA;   if( someCondition ) {&#xA;      return 0;&#xA;   }&#xA;&#xA;   return -1;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;vs:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public int foo() {&#xA;   int returnValue = -1;&#xA;&#xA;   if( someCondition ) {&#xA;      returnValue = 0;&#xA;   }&#xA;&#xA;   return returnValue;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;My team and I have found that abiding by this all the time is actually counter-productive in many cases. &lt;/p&gt;&#xA;" OwnerUserId="5916" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T17:35:49.377" CommentCount="17" />
  <row Id="31172" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T17:42:58.690" Score="41" ViewCount="" Body="&lt;p&gt;&lt;b&gt;Null references should be removed from OO languages&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coming from a Java and C# background, where its normal to return null from a method to indicate a failure, I've come to conclude that nulls cause a lot of avoidable problems. Language designers can remove a whole class of errors relate to NullRefernceExceptions if they simply eliminate null references from code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, when I call a method, I have no way of knowing whether that method can return null references unless I actually dig in the implementation. I'd like to see more languages follow F#'s model for handling nulls: F# doesn't allow programmers to return null references (at least for classes compiled in F#), instead it requires programmers to represent empty objects using &lt;code&gt;option&lt;/code&gt; types. The nice thing about this design is how useful information, such as whether a function can return null references, is propagated through the type system: functions which return a type &lt;code&gt;'a&lt;/code&gt; have a different return type than functions which return &lt;code&gt;'a option&lt;/code&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1467" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T17:42:58.690" CommentCount="12" />
  <row Id="31173" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T17:46:45.640" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Opinion:&lt;/strong&gt; Data driven design puts the cart before the horse. It should be eliminated from our thinking forthwith.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The vast majority of software isn't about the data, it's about the business problem we're trying to solve for our customers. It's about a &lt;em&gt;problem domain&lt;/em&gt;, which involves objects, rules, flows, cases, and relationships. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When we start our design with the data, and model the rest of the system after the data and the relationships between the data (tables, foreign keys, and x-to-x relationships), we constrain the entire application to how the data is stored in and retrieved from the database. Further, we expose the database architecture to the software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The database schema is an implementation detail. We should be free to change it without having to significantly alter the design of our software at all. The business layer should never have to know how the tables are set up, or if it's pulling from a view or a table, or getting the table from dynamic SQL or a stored procedure. And that type of code should &lt;strong&gt;&lt;em&gt;never&lt;/em&gt;&lt;/strong&gt; appear in the presentation layer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software is about solving business problems. We deal with users, cars, accounts, balances, averages, summaries, transfers, animals, messsages, packages, carts, orders, and all sorts of other real tangible objects, and the actions we can perform on them. We need to &lt;em&gt;save&lt;/em&gt;, &lt;em&gt;load&lt;/em&gt;, &lt;em&gt;update&lt;/em&gt;, &lt;em&gt;find&lt;/em&gt;, and &lt;em&gt;delete&lt;/em&gt; those items as needed. Sometimes, we have to do those things in special ways. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But there's no real compelling reason that we should take the work that should be done in the database and move it away from the data and put it in the source code, potentially on a separate machine (introducing network traffic and degrading performance). Doing so means turning our backs on the decades of work that has already been done to improve the performance of stored procedures and functions built into databases. The argument that stored procedures introduce &quot;yet another API&quot; to be manged is specious: of course it does; that API is a facade that shields you from the database schema, including the intricate details of primary and foreign keys, transactions, cursors, and so on, and it prevents you from having to splice SQL together in your source code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Put the horse back in front of the cart. Think about the problem domain, and design the solution around it. Then, derive the data from the problem domain. &lt;/p&gt;&#xA;" OwnerUserId="19484" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T17:46:45.640" CommentCount="3" />
  <row Id="31174" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T18:00:33.507" Score="343" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;PHP sucks ;-)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The proof is in the pudding.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T18:00:33.507" CommentCount="42" />
  <row Id="31175" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T18:05:21.373" Score="33" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You need to watch out for Object-Obsessed Programmers.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;e.g. if you write a class that models built-in types such as ints or floats, you may be an object-obsessed programmer.&lt;/p&gt;&#xA;" OwnerUserId="4363" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T18:05:21.373" CommentCount="4" />
  <row Id="31176" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T18:18:00.303" Score="20" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I know everything there is to know about everything.&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T18:18:00.303" CommentCount="6" />
  <row Id="31177" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T18:27:28.583" Score="532" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Print statements are a valid way to debug code&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe it is perfectly fine to debug your code by littering it with &lt;code&gt;System.out.println&lt;/code&gt; (or whatever print statement works for your language).  Often, this can be quicker than debugging, and you can compare printed outputs against other runs of the app.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just make sure to remove the print statements when you go to production (or better, turn them into logging statements)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T18:27:28.583" CommentCount="40" />
  <row Id="31178" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T19:25:12.447" Score="7" ViewCount="" Body="&lt;p&gt;I think that using regions in C# is totally acceptable to collapse your code while in VS. Too many people try to say it hides your code and makes it hard to find things. But if you use them properly they can be very helpful to identify sections of code.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T19:25:12.447" CommentCount="4" />
  <row Id="31179" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T19:26:49.730" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Relational databases are awful for web applications.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;threaded comments&lt;/li&gt;&#xA;&lt;li&gt;tag clouds&lt;/li&gt;&#xA;&lt;li&gt;user search&lt;/li&gt;&#xA;&lt;li&gt;maintaining record view counts&lt;/li&gt;&#xA;&lt;li&gt;providing undo / revision tracking&lt;/li&gt;&#xA;&lt;li&gt;multi-step wizards&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T19:26:49.713" CommentCount="4" />
  <row Id="31180" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T19:30:11.250" Score="3" ViewCount="" Body="&lt;p&gt;To Be A Good Programmer really requires working in multiple aspects of the field:  Application development, Systems (Kernel) work, User Interface Design, Database, and so on.  There are certain approaches common to all, and certain approaches that are specific to one aspect of the job.  You need to learn how to program Java like a Java coder, not like a C++ coder and vice versa.  User Interface design is really hard, and uses a different part of your brain than coding, but implementing that UI in code is yet another skill as well.  It is not just that there is no &quot;one&quot; approach to coding, but there is not just one type of coding.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T19:30:11.250" />
  <row Id="31181" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T20:02:15.117" Score="5" ViewCount="" Body="&lt;p&gt;Not very controversial AFAIK but...&#xA;&lt;strong&gt;AJAX was around way before the term was coined and everyone needs to 'let it go'.&lt;/strong&gt;  People were using it for all sorts of things.  No one really cared about it though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then suddenly POW!  Someone coined the term and everyone jumped on the AJAX bandwagon.  Suddenly people are now experts in AJAX, as if 'experts' in dynamically loading data weren't around before.  I think its one of the biggest contributing factors that is leading to the brutal destruction of the internet.  That and &quot;Web 2.0&quot;.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T20:02:15.117" CommentCount="3" />
  <row Id="31182" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T20:23:42.330" Score="3" ViewCount="" Body="&lt;p&gt;Not everything needs to be encapsulated into its own method. Some times it is ok to have a method do more then one thing.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T20:23:42.330" CommentCount="1" />
  <row Id="31183" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T20:28:37.153" Score="112" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You must know how to type to be a programmer.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's controversial among people who don't know how to type, but who insist that they can two-finger hunt-and-peck as fast as any typist, or that they don't really need to spend that much time typing, or that Intellisense relieves the need to type...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never met anyone who &lt;em&gt;does&lt;/em&gt; know how to type, but insists that it doesn't make a difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See also:  &lt;a href=&quot;http://steve-yegge.blogspot.com/2008/09/programmings-dirtiest-little-secret.html&quot; rel=&quot;nofollow&quot;&gt;Programming's Dirtiest Little Secret&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3963" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T20:28:37.153" CommentCount="28" />
  <row Id="31184" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T20:48:00.533" Score="15" ViewCount="" Body="&lt;p&gt;Every developer should spend several weeks, or even months, developing paper-based systems &lt;em&gt;before&lt;/em&gt; they start building electronic ones. They should also then be forced to &lt;em&gt;use&lt;/em&gt; their systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developing a good paper-based system is &lt;strong&gt;hard work&lt;/strong&gt;. It forces you to take into account human nature (cumbersome processes get ignored, ones that are too complex tend to break down), and teaches you to appreciate the value of simplicity (new work goes in &lt;strong&gt;this&lt;/strong&gt; tray, work for QA goes in &lt;strong&gt;this&lt;/strong&gt; tray, archiving goes in &lt;strong&gt;this&lt;/strong&gt; box).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you've worked out how to build a system on paper, it's often a lot easier to build an effective computer system - one that people will actually want to (and be able to) &lt;em&gt;use&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The systems we develop are not manned by an army of perfectly-trained automata; real people use them, real people who are trained by managers who are also real people and have far too little time to waste training them how to jump through your hoops.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, for my second point:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every developer should be required to run an interactive training course to show users how to use their software.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T20:48:00.533" CommentCount="3" />
  <row Id="31185" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T20:51:20.777" Score="748" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&quot;Googling it&quot; is okay!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, I know it offends some people out there that their years of intense memorization and/or glorious stacks of programming books are starting to fall by the wayside to a resource that anyone can access within seconds, but you shouldn't hold that against people that use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Too often I hear googling answers to problems the result of criticism, and it really is without sense.  First of all, it must be conceded that everyone needs materials to reference.  You don't know everything and you will need to look things up.  Conceding that, does it really matter where you got the information?  Does it matter if you looked it up in a book, looked it up on Google, or heard it from a talking frog that you hallucinated?  No.  A right answer is a right answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is important is that you understand the material, use it as the means to an end of a successful programming solution, and the client/your employer is happy with the results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(although if you are getting answers from hallucinatory talking frogs, you should probably get some help all the same)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T20:51:20.777" CommentCount="28" />
  <row Id="31186" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T21:53:19.107" Score="48" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If you have any idea how to program you are not fit to place a button on a form&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is that controversial enough? ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No matter how hard we try, it's almost impossible to have appropriate empathy with 53 year old Doris who has to use our order-entry software.  We simply cannot grasp the mental model of what she imagines is going on inside the computer, because we don't need to imagine: we &lt;em&gt;know&lt;/em&gt; whats going on, or have a very good idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.interaction-design.org/encyclopedia/interaction%5Fdesign.html&quot; rel=&quot;nofollow&quot;&gt;Interaction Design&lt;/a&gt; should be done by non-programmers.  Of course, this is never actually going to happen.  Contradictorily I'm quite glad about that; I like UI design even though deep down I know I'm unsuited to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For further info, read the book &lt;a href=&quot;http://www.cooper.com/insights/books/&quot; rel=&quot;nofollow&quot;&gt;The Inmates Are Running the Asylum&lt;/a&gt;.  Be warned, I found this book upsetting and insulting; it's a difficult read if you are a developer that cares about the user's experience.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T21:53:19.107" CommentCount="12" />
  <row Id="31187" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T22:11:58.693" Score="4" ViewCount="" Body="&lt;p&gt;QA should know the code (indirectly) better than development. QA gets paid to find things development didn't intend to happen, and they often do. :) (Btw, I'm a developer who just values good QA guys a whole bunch -- far to few of them... far to few).&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T22:11:58.693" CommentCount="1" />
  <row Id="31188" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T22:13:29.470" Score="980" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Programmers who don't code in their spare time for fun will never become as good as those that do.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think even the smartest and most talented people will never become truly good programmers unless they treat it as more than a job. Meaning that they do little projects on the side, or just mess with lots of different languages and ideas in their spare time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Note: I'm not saying good programmers do nothing else than programming, but they do more than program from 9 to 5)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T22:13:29.470" CommentCount="61" />
  <row Id="31189" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T22:17:50.803" Score="4" ViewCount="" Body="&lt;p&gt;Exceptions considered harmful.&lt;/p&gt;&#xA;" OwnerUserId="26365" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T22:17:50.803" CommentCount="1" />
  <row Id="31190" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T22:19:53.780" Score="195" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Software architects/designers are overrated&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a developer, I hate the idea of software architects. They are basically people that no longer code full time, read magazines and articles, and then tell you how to design software. Only people that actually write software full time for a living should be doing that. I don't care if you were the worlds best coder 5 years ago before you became an architect, your opinion is useless to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How's that for controversial?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit (to clarify): I think most software architects make great business analysts (talking with customers, writing requirements, tests, etc.), I simply think they have no place in designing software, high level or otherwise.&lt;/p&gt;&#xA;" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-22T10:17:23.050" LastActivityDate="2011-01-22T10:17:23.050" CommunityOwnedDate="2009-01-02T22:19:53.763" CommentCount="18" />
  <row Id="31191" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T22:20:43.277" Score="5" ViewCount="" Body="&lt;p&gt;Although I'm in full favor of Test-Driven Development (TDD), I think there's a vital step before developers even start the full development cycle of prototyping a solution to the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We too often get caught up trying to follow our TDD practices for a solution that may be misdirected because we don't know the domain well enough. Simple prototypes can often elucidate these problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prototypes are great because you can quickly churn through and throw away more code than when you're writing tests first (sometimes). You can then begin the development process with a blank slate but a better understanding.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T22:20:43.277" CommentCount="1" />
  <row Id="31192" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T22:22:15.163" Score="74" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&quot;Java Sucks&quot;&lt;/strong&gt; - yeah, I know that opinion is definitely not held by all :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have that opinion because the majority of Java applications I've seen are memory hogs, run slowly, horrible user interface and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;G-Man&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T22:22:15.163" CommentCount="10" />
  <row Id="31193" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T22:25:55.373" Score="23" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Two lines of code is too many.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a method has a second line of code, it is a code smell.  Refactor.&lt;/p&gt;&#xA;" OwnerUserId="883" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T22:25:55.373" CommentCount="15" />
  <row Id="31194" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T22:27:23.640" Score="24" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Classes should fit on the screen.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have to use the scroll bar to see all of your class, your class is too big.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code folding and miniature fonts are cheating.&lt;/p&gt;&#xA;" OwnerUserId="883" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T22:27:23.640" CommentCount="17" />
  <row Id="31195" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T22:36:02.420" Score="16" ViewCount="" Body="&lt;h3&gt;Explicit &lt;code&gt;self&lt;/code&gt; in Python's method declarations is poor design choice.&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Method calls got syntactic sugar, but declarations didn't. It's a leaky abstraction (by design!) that causes annoying errors, including runtime errors with apparent off-by-one error in reported number of arguments.&lt;/p&gt;&#xA;" OwnerUserId="11746" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T22:36:02.420" CommentCount="6" />
  <row Id="31196" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T22:36:02.950" Score="7" ViewCount="" Body="&lt;p&gt;Primitive data types are premature optimization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are languages that get by with just one data type, the scalar, and they do just fine.  Other languages are not so fortunate.  Developers just throw &quot;int&quot; and &quot;double&quot; in because they have to write in something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's important is not how big the data types are, but what the data is used for.  If you have a day of the month variable, it doesn't matter much if it's signed or unsigned, or whether it's char, short, int, long, long long, float, double, or long double.  It does matter that it's a day of the month, and not a month, or day of week, or whatever.  See Joel's column on making things that are wrong look wrong; Hungarian notation &lt;strong&gt;as originally proposed&lt;/strong&gt; was a Good Idea.  As used in practice, it's mostly useless, because it says the wrong thing.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T22:36:02.950" CommentCount="3" />
  <row Id="31197" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T23:02:39.683" Score="8" ViewCount="" Body="&lt;p&gt;We do a lot of development here using a Model-View-Controller framework we built. I'm often telling my developers that we need to violate the rules of the MVC design pattern to make the site run faster. This is a hard sell for developers, who are usually unwilling to sacrifice well-designed code for anything. But performance is our top priority in building web applications, so sometimes we have to make concessions in the framework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, the view layer should never talk directly to the database, right? But if you are generating large reports, the app will use a lot of memory to pass that data up through the model and controller layers. If you have a database that supports cursors, it can make the app a lot faster to hit the database directly from the view layer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Performance trumps development standards, that's my controversial view.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T23:02:39.683" CommentCount="4" />
  <row Id="31198" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T23:05:44.013" Score="12" ViewCount="" Body="&lt;p&gt;I believe the use of try/catch exception handling is worse than the use of simple return codes and associated common messaging structures to ferry useful error messages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Littering code with try/catch blocks is not a solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just passing exceptions up the stack hoping whats above you will do the right thing or&#xA;generate an informative error is not a solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thinking you have any chance of systematically verifying the proper exception handlers are avaliable to address anything that could go wrong in either transparent or opague objects is not realistic. (Think also in terms of late bindings/external libraries and unecessary dependancies between unrelated functions in a call stack as system evolves)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use of return codes are simple, can be easily systematically verified for coverage and if handled properly forces developers to generate useful error messages rather than the all-too-common stack dumps and obscure I/O exceptions that are &quot;exceptionally&quot; meaningless to even the most clueful of end users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;--&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My final objection is the use of garbage collected languages.  Don't get me wrong.. I love them in some circumstances but in general for server/MC systems they have no place in my view.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;GC is not infallable - even extremely well designed GC algorithms can hang on to objects too long or even forever based on non-obvious circular refrences in their dependancy graphs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Non-GC systems following a few simple patterns and use of memory accounting tools don't have this problem but do require more work in design and test upfront than GC environments.  The tradeoff here is that memory leaks are extremely easy to spot during testing in Non-GC while finding GC related problem conditions is a much more difficult proposition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Memory is cheap but what happens when you leak expensive objects such as transaction handles, synchronization objects, socket connections...etc.  In my environment the very thought that you can just sit back and let the language worry about this for you is unthinkable without significant fundental changes in software description.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T23:05:44.013" CommentCount="5" />
  <row Id="31199" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T23:20:26.433" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Excessive HTML in PHP files: sometimes necessary&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Excessive Javascript in PHP files: trigger the raptor attack&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I have a hard time figuring out all your switching between &lt;strong&gt;echo&lt;/strong&gt;ing and ?&gt;&amp;lt; ?php 'ing html (after all, php is just a processor for html), lines and lines of javascript added in make it a completely unmaintainable mess.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People have to grasp this: They are two separate programming languages. Pick one to be your primary language. Then go on and find a quick, clean and easily maintainable way to make your primary include the secondary language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The reason why you jump between PHP, Javascript and HTML all the time is because you are bad at all three of them.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ok, maybe its not exactly controversial. I had the impression this was a general frustration venting topic :)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T23:20:26.433" CommentCount="1" />
  <row Id="31200" PostTypeId="2" ParentId="31104" CreationDate="2009-01-02T23:49:29.213" Score="69" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Opinion: developers should be testing their own code&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen too much crap handed off to test only to have it not actually fix the bug in question, incurring communication overhead and fostering irresponsible practices. &lt;/p&gt;&#xA;" OwnerUserId="8346" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-02T23:49:29.213" CommentCount="6" />
  <row Id="31201" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T00:01:50.093" Score="16" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Web applications suck&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My Internet connection is veeery slow. My experience with almost every Web site that is not Google is, at least, frustrating. Why doesn't anybody write desktop apps anymore? Oh, I see. Nobody wants to be bothered with learning how operating systems work. At least, not Windows. The last time you had to handle &lt;code&gt;WM_PAINT&lt;/code&gt;, your head exploded. Creating a worker thread to perform a long task (I mean, doing it the Windows way) was totally beyond you. What the hell was a callback? Oh, my God!&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Garbage collection sucks&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No, it actually doesn't. But it makes the programmers suck like nothing else. In college, the first language they taught us was Visual Basic (the original one). After that, there was another course where the teachers &lt;em&gt;pretended&lt;/em&gt; they taught us C++. But the damage was done. Nobody actually knew what this esoteric keyword &lt;code&gt;delete&lt;/code&gt; did. After testing our programs, we either got invalid address exceptions or memory leaks. Sometimes, we got both. Among the 1% of my faculty who can actually program, only one who can manage his memory by himself (at least, he pretends) and he's writing this rant. The rest write their programs in VB.NET, which, by definition, is a bad language.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Dynamic typing suck&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you're using assembler, of course (that's the kind of dynamic typing that actually deserves praise). What I meant is &lt;em&gt;the overhead imposed by dynamic, interpreted languages makes them suck&lt;/em&gt;. And don't come with that silly argument that &lt;em&gt;different tools are good for different jobs&lt;/em&gt;. C is the right language for almost everything (it's fast, powerful and portable), and, when it isn't (it's not fast enough), there's always inline assembly.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;I might come up with more rants, but that will be later, not now.&lt;/p&gt;&#xA;" OwnerUserId="16299" LastEditorUserId="16299" LastEditorDisplayName="" LastEditDate="2011-03-24T16:19:32.047" LastActivityDate="2011-03-24T16:19:32.047" CommunityOwnedDate="2009-01-03T00:01:50.093" CommentCount="7" />
  <row Id="31202" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T00:07:35.917" Score="1" ViewCount="" Body="&lt;p&gt;Never make up your mind on an issue before thoroughly considering said issue. No programming standard EVER justifies approaching an issue in a poor manner. If the standard demands a class to be written, but after careful thought, you deem a static method to be more appropriate, always go with the static method. Your own discretion is always better than even the best forward thinking of whoever wrote the standard. Standards are great if you're working in a team, but rules are meant to be broken (in good taste, of course).&lt;/p&gt;&#xA;" OwnerUserId="10395" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T00:07:35.903" />
  <row Id="31203" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T00:34:34.443" Score="148" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C++ is one of the WORST programming languages - EVER.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has all of the hallmarks of something designed by committee - it does not do any given job well, and does some jobs (like OO) terribly. It has a &quot;kitchen sink&quot; desperation to it that just won't go away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a horrible &quot;first language&quot; to learn to program with. You get no elegance, no assistance (from the language). Instead you have bear traps and mine fields (memory management, templates, etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is not a good language to try to learn OO concepts. It behaves as &quot;C with a class wrapper&quot; instead of a proper OO language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I could go on, but will leave it at that for now. I have never liked programming in C++, and although I &quot;cut my teeth&quot; on FORTRAN, I totally loved programming in C. I still think C was one of the great &quot;classic&quot; languages. Something that C++ is certainly NOT, in my opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-R&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: To respond to the comments on teaching C++. You can teach C++ in two ways - either teaching it as C &quot;on steroids&quot; (start with variables, conditions, loops, etc), or teaching it as a pure &quot;OO&quot; language (start with classes, methods, etc). You can find teaching texts that use one or other of these approaches. I prefer the latter approach (OO first) as it does emphasize the capabilities of C++ as an OO language (which was the original design emphasis of C++). If you want to teach C++ &quot;as C&quot;, then I think you should teach C, not C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the problem with C++ as a first language in my experience is that the language is simply too BIG to teach in one semester, plus most &quot;intro&quot; texts try and cover everything. It is simply not possible to cover all the topics in a &quot;first language&quot; course. You have to at least split it into 2 semesters, and then it's no longer &quot;first language&quot;, IMO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do teach C++, but only as a &quot;new language&quot; - that is, you must be proficient in some prior &quot;pure&quot; language (not scripting or macros) before you can enroll in the course. C++ is a very fine &quot;second language&quot; to learn, IMO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-R&lt;/p&gt;&#xA;&#xA;&lt;p&gt;'Nother Edit: (to Konrad)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not at all agree that C++ &quot;is superior in every way&quot; to C. I spent years coding C programs for microcontrollers and other embedded applications. The C compilers for these devices are highly optimized, often producing code as good as hand-coded assembler. When you move to C++, you gain a tremendous overhead imposed by the compiler in order to manage language features you may not use. In embedded applications, you gain little by adding classes and such, IMO. What you need is tight, clean code. You can write it in C++, but then you're really just writing C, and the C compilers are more optimized in these applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wrote a MIDI engine, first in C, later in C++ (at the vendor's request) for an embedded controller (sound card). In the end, to meet the performance requirements (MIDI timings, etc) we had to revert to pure C for all of the core code. We were able to use C++ for the high-level code, and having classes was very sweet - but we needed C to get the performance at the lower level. The C code was an order of magnitude faster than the C++ code, but hand coded assembler was only slightly faster than the compiled C code. This was back in the early 1990s, just to place the events properly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-R&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T00:34:34.443" CommentCount="27" />
  <row Id="31204" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T01:14:50.947" Score="5" ViewCount="" Body="&lt;p&gt;Higher level lanugages should be one based instead of zero based.  This would eliminate &quot;off by one&quot; errors when dealing with arrays/collections.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T01:14:50.947" CommentCount="12" />
  <row Id="31205" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T01:36:01.497" Score="9" ViewCount="" Body="&lt;p&gt;Preconditions for arguments to methods/functions should be part of the language rather than programmers checking it always.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T01:36:01.497" CommentCount="1" />
  <row Id="31206" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T01:50:36.677" Score="36" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;There's an awful lot of bad teaching out there.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We developers like to feel smugly superior when Joel says there's a part of the brain for understanding pointers that some people are just born without. The topics many of us discuss here and are passionate about &lt;em&gt;are&lt;/em&gt; esoteric, but sometimes that's only because we make them so.&lt;/p&gt;&#xA;" OwnerUserId="9732" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T01:50:36.677" CommentCount="2" />
  <row Id="31207" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T02:25:55.653" Score="16" ViewCount="" Body="&lt;p&gt;The best code is often the code you don't write.  As programmers we want to solve every problem by writing some cool method.  Anytime we can solve a problem and still give the users 80% of what they want without introducing more code to maintain and test we have provided waaaay more value.&lt;/p&gt;&#xA;" OwnerUserId="869" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T02:25:55.653" CommentCount="2" />
  <row Id="31208" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T02:37:51.217" Score="26" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C (or C++) should be the first programming language&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first language should NOT be the easy one, it should be one that sets up the student's mind and prepare it for serious computer science.&lt;br /&gt;&#xA;C is perfect for that, it forces students to think about memory and all the low level stuff, and at the same time they can learn how to structure their code (it has functions!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ has the added advantage that it really sucks :) thus the students will understand why people had to come up with Java and C#&lt;/p&gt;&#xA;" OwnerUserId="1747" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T02:37:51.217" CommentCount="10" />
  <row Id="31209" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T02:39:24.083" Score="11" ViewCount="" Body="&lt;p&gt;A random collection of Cook's aphorisms...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The hardest language to learn is your second.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The hardest OS to learn is your second one - especially if your first was an IBM mainframe.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Once you've learned several seemingly different languages,&#xA;you finally realize that all programming&#xA;languages are the same - just minor differences in syntax.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Although one can be quite productive and marketable without having learned any assembly,&#xA;no one will ever have a visceral understanding of computing without it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Debuggers are the final refuge for programmers who don't really know&#xA;what they're doing in the first place.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;No OS will ever be stable if it doesn't make use of hardware memory management.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Low level systems programming is much, much easier than applications programming.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The programmer who has a favorite language is just playing.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Write the User's Guide FIRST!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Policy and procedure are intended for those who lack the initiative to perform otherwise.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;(The Contractor's Creed):&#xA;Tell'em what they need.&#xA;Give'em what they want.&#xA;Make sure the check clears.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you don't find programming fun, get out of it or accept that although you may make a&#xA;living at it, you'll never be more than average.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Just as the old farts have to learn the .NET method names,&#xA;you'll have to learn the library calls.  But there's nothing new there.&lt;br /&gt;&#xA;The life of a programmer is one of constantly adapting to different environments,&#xA;and the more tools you have hung on your belt, the more versatile and marketable you'll be.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You may piddle around a bit with little code chunks near the beginning to try out some ideas,&#xA;but, in general, one doesn't start coding in earnest until you KNOW how the whole program or&#xA;app is going to be layed out, and you KNOW that the whole thing is going to work EXACTLY as&#xA;advertised.  For most projects with at least some degree of complexity,&#xA;I generally end up spending 60 to 70 percent of the time up front just percolating ideas.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Understand that programming has little to do with language and everything to do with algorithm.&#xA;All of those nifty geegaws with memorable acronyms that folks have come up with over the years&#xA;are just different ways of skinning the implementation cat.  When you strip away all the&#xA;OOPiness, RADology, Development Methodology 37, and Best Practice 42, you still have to deal&#xA;with the basic building blocks of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;assignments&lt;/li&gt;&#xA;&lt;li&gt;conditionals&lt;/li&gt;&#xA;&lt;li&gt;iterations&lt;/li&gt;&#xA;&lt;li&gt;control flow&lt;/li&gt;&#xA;&lt;li&gt;I/O&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Once you can truly wrap yourself around that, you'll eventually get to the point where you&#xA;see (from a programming standpoint) little difference between writing an inventory app for&#xA;an auto parts company, a graphical real-time TCP performance analyzer, a mathematical model&#xA;of a stellar core, or an appointments calendar.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Beginning programmers work with small chunks of code.  As they gain experience,&#xA;they work with ever increasingly large chunks of code.&lt;br /&gt;&#xA;As they gain even more experience, they work with small chunks of code.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T02:39:24.083" CommentCount="5" />
  <row Id="31210" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T03:15:33.120" Score="6" ViewCount="" Body="&lt;p&gt;According to the amount of feedback I've gotten, my most controversial opinion, apparently, is that &lt;a href=&quot;http://www.billthelizard.com/2008/12/books-programmers-dont-really-read.html&quot; rel=&quot;nofollow&quot;&gt;programmers don't always read the books they claim to have read&lt;/a&gt;.  This is followed closely by my opinion that &lt;a href=&quot;http://www.billthelizard.com/2008/12/education-vs-experience.html&quot; rel=&quot;nofollow&quot;&gt;a programmer with a formal education is better than the same programmer who is self-taught&lt;/a&gt; (but not necessarily better than &lt;em&gt;a different&lt;/em&gt; programmer who is self-taught).&lt;/p&gt;&#xA;" OwnerUserId="257" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T03:15:33.120" CommentCount="4" />
  <row Id="31211" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T03:21:24.387" Score="13" ViewCount="" Body="&lt;p&gt;Jon Skeet is not all that special! &lt;/p&gt;&#xA;" OwnerUserId="1747" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T03:21:24.387" CommentCount="2" />
  <row Id="31212" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T03:52:54.137" Score="10" ViewCount="" Body="&lt;p&gt;The best programmers trace all their code in the debugger and test all paths.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well... the OP said controversial!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T03:52:54.137" CommentCount="3" />
  <row Id="31213" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T04:53:55.933" Score="28" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The more process you put around programming, the worse the code becomes&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have noticed something in my 8 or so years of programming, and it seems ridiculous. It's that the only way to get quality is to employ quality developers, and remove as much process and formality from them as you can. Unit testing, coding standards, code/peer reviews, etc only reduce quality, not increase it. It sounds crazy, because the opposite should be true (more unit testing should lead to better code, great coding standards should lead to more readable code, code reviews should improve the quality of code) but it's not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it boils down to the fact we call it &quot;Software Engineering&quot; when really it's design and not engineering at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;hr&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some numbers to substantiate this statement:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;From the Editor&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;IEEE Software, November/December 2001&lt;/p&gt;&#xA;  &#xA;  &lt;h2&gt;&lt;a href=&quot;http://www.stevemcconnell.com/ieeesoftware/eic14.htm&quot; rel=&quot;nofollow&quot;&gt;Quantifying Soft Factors&lt;/a&gt;&lt;/h2&gt;&#xA;  &#xA;  &lt;p&gt;by &lt;em&gt;Steve McConnell&lt;/em&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;...&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Limited Importance of Process Maturity&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;...&#xA;  In comparing medium-size projects&#xA;  (100,000 lines of code), the one with&#xA;  the worst process will require 1.43&#xA;  times as much effort as the one with&#xA;  the best process, all other things&#xA;  being equal. In other words, &lt;strong&gt;the&#xA;  maximum influence of process maturity&#xA;  on a project’s productivity is 1.43&lt;/strong&gt;. ...&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;... What Clark doesn’t emphasize is that&#xA;  for a program of 100,000 lines of&#xA;  code, several human-oriented factors&#xA;  influence productivity more than&#xA;  process does. ...&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;... The seniority-oriented factors alone&#xA;  (AEXP, LTEX, PEXP) exert an influence&#xA;  of 3.02. &lt;strong&gt;The seven&#xA;  personnel-oriented factors&#xA;  collectively&lt;/strong&gt; (ACAP, AEXP, LTEX,&#xA;  PCAP, PCON, PEXP, and SITE &lt;strong&gt;§&lt;/strong&gt;) &lt;strong&gt;exert a&#xA;  staggering influence range of 25.8!&lt;/strong&gt;&#xA;  This simple fact accounts for much of&#xA;  the reason that non-process-oriented&#xA;  organizations such as Microsoft,&#xA;  Amazon.com, and other entrepreneurial&#xA;  powerhouses can experience&#xA;  industry-leading productivity while&#xA;  seemingly shortchanging process. ...&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;The Bottom Line&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;... It turns out that trading process&#xA;  sophistication for staff continuity,&#xA;  business domain experience, private&#xA;  offices, and other human-oriented&#xA;  factors is a sound economic tradeoff.&#xA;  Of course, the best organizations&#xA;  achieve high motivation and process&#xA;  sophistication at the same time, and&#xA;  that is the key challenge for any&#xA;  leading software organization.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;§&lt;/strong&gt; Read the article for an explanation of these acronyms.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T04:53:55.933" CommentCount="9" />
  <row Id="31214" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T04:54:21.657" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://xahlee.org/Periodic_dosage_dir/skami_prosa.html&quot; rel=&quot;nofollow&quot;&gt;Xah Lee: actually has some pretty noteworthy and legitimate viewpoints if you can filter out all the invective, and rationally evaluate statements without agreeing (or disagreeing) based solely on the personality behind the statements. A lot of my &quot;controversial&quot; viewpoints have been echoed by him, and other notorious &quot;trolls&quot; who have criticized languages or tools I use(d) on a regular basis.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Documentation Generators&lt;/a&gt;: ... the kind where the creator invented some custom-made especially-for-documenting-sourcecode roll-your-own syntax (including, but not limited to JavaDoc) are totally superfluous and a waste of time because:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;1) They are underused by the people who should be using them the most; and&lt;/li&gt;&#xA;&lt;li&gt;2) All of these mini-documentation-languages &lt;em&gt;all of them&lt;/em&gt; could easily be replaced with YAML&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="23884" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T04:54:21.643" CommentCount="1" />
  <row Id="31215" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T05:01:16.090" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Inheritance is evil and should be deprecated.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The truth is aggregation is better in all cases. Static typed OOP languages can't avoid inheritance, it's the only way to describe what method wants from a type. But dynamic languages and duck typing can live without it. Ruby mixins is much more powerful than inheritance and a lot more controllable.&lt;/p&gt;&#xA;" LastEditorUserId="5983" LastEditorDisplayName="" LastEditDate="2011-01-06T01:19:05.437" LastActivityDate="2011-01-06T01:19:05.437" CommunityOwnedDate="2009-01-03T05:01:16.090" CommentCount="6" />
  <row Id="31216" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T05:11:31.310" Score="9" ViewCount="" Body="&lt;p&gt;Correct every defect when it's discovered. Not just &quot;severity 1&quot; defects; &lt;strong&gt;all&lt;/strong&gt; defects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Establish a deployment mechanism that makes application updates immediately available to users, but allows them to choose when to accept these updates. Establish a direct communication mechanism with users that enables them to report defects, relate their experience with updates, and suggest improvements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With aggressive testing, many defects can be discovered during the iteration in which they are created; immediately correcting them reduces developer interrupts, a significant contributor to defect creation. Immediately correcting defects reported by users forges a constructive community, replacing product quality with product improvement as the main topic of conversation.  Implementing user-suggested improvements that are consistent with your vision and strategy produces community of enthusiastic evangelists.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T05:11:31.297" CommentCount="1" />
  <row Id="31217" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T05:31:57.510" Score="134" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A degree in computer science does not---and is not supposed to---teach you to be a programmer.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is a trade, computer science is a field of study.  You can be a great programmer and a poor computer scientist and a great computer scientist and an awful programmer.  It is important to understand the difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to be a programmer, learn Java.  If you want to be a computer scientist, learn at least three almost completely different languages.  For example, assembler, C, Lisp, Ruby, and Smalltalk.&lt;/p&gt;&#xA;" OwnerUserId="24115" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-22T10:21:11.453" LastActivityDate="2011-01-22T10:21:11.453" CommunityOwnedDate="2009-01-03T05:31:57.510" CommentCount="13" />
  <row Id="31218" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T06:26:54.250" Score="8" ViewCount="" Body="&lt;p&gt;Web services absolutely suck, and are not the way of the future.  They are ridiculously inefficient and they don't guarantee ordered delivery.  Web services should NEVER be used within a system where both client and server are being written.  They are mostly useful for micky mouse mash-up type applications.  They should definitely not be used for any kind of connection-oriented communication.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This stance has gotten myself and colleagues into some very heated discussions, since web services is such a buzzy topic.  Any project that mandates the use of web services is doomed because it is clearly already having ridiculous demands pushed down from management.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T06:26:54.250" CommentCount="2" />
  <row Id="31219" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T07:26:51.397" Score="36" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;My controversial opinion: Object Oriented Programming is absolutely the worst thing that's ever happened to the field of software engineering.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The primary problem with OOP is the total lack of a rigorous definition that everyone can agree on. This easily leads to implementations that have logical holes in them, or language like Java that adhere to this bizarre religious dogma about what OOP means, while forcing the programmer into doing all these contortions and &quot;design patterns&quot; just to work around the limitations of a particular OOP system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, OOP tricks the programmer into thinking they're making these huge productivity gains, that OOP is somehow a &quot;natural&quot; way to think, while forcing the programmer to type boatloads of unnecessary boilerplate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then since nobody knows what OOP actually means, we get vast amounts of time wasted on petty arguments about whether language X or Y is &quot;truly OOP&quot; or not, what bizarre cargo cultish language features are absolutely &quot;essential&quot; for a language to be considered &quot;truly OOP&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of demanding that this language or that language be &quot;truly oop&quot;, we should be looking at what language features are shown by experiment, to &lt;em&gt;actually&lt;/em&gt; increase productivity, instead of trying to force it into being some imagined ideal language, or indeed forcing our programs to conform to some platonic ideal of a &quot;truly object oriented program&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of insisting that our programs conform to some platonic ideal of &quot;Truly object oriented&quot;, how about we focus on adhering to good engineering principles, making our code easy to read and understand, and using the features of a language that are productive and helpful, regardless of whether they are &quot;OOP&quot; enough or not.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T07:26:51.397" CommentCount="12" />
  <row Id="31220" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T09:47:00.350" Score="419" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;UML diagrams are highly overrated&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course there are useful diagrams e.g. &lt;a href=&quot;http://en.wikipedia.org/wiki/Composite_pattern&quot; rel=&quot;nofollow&quot;&gt;class diagram for the Composite Pattern&lt;/a&gt;, but many UML diagrams have absolutely no value.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T09:47:00.350" CommentCount="13" />
  <row Id="31221" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T10:23:45.270" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You shouldn't settle on the first way you find to code something that &quot;works.&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really don't think this should be controversial, but it is.  People see an example from elsewhere in the code, from online, or from some old &quot;Teach yourself Advanced Power SQLJava#BeansServer in 3.14159 minutes&quot; book dated 1999, and they think they know something and they copy it into their code.  They don't walk through the example to find out what each line does.  They don't think about the design of their program and see if there might be a more organized or more natural way to do the same thing.  They don't make any attempt at keeping their skill sets up to date to learn that they are using ideas and methods deprecated in the last year of the previous millenium.  They don't seem to have the experience to learn that what they're copying has created specific horrific maintenance burdens for programmers for years and that they can be avoided with a little more thought.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, they don't even seem to recognize that there might be more than one way to do something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I come from the Perl world, where one of the slogans is &quot;There's More Than One Way To Do It.&quot; (TMTOWTDI)  People who've taken a cursory look at Perl have written it off as &quot;write-only&quot; or &quot;unreadable,&quot; largely because they've looked at crappy code written by people with the mindset I described above.  Those people have given zero thought to design, maintainability, organization, reduction of duplication in code, coupling, cohesion, encapsulation, etc.  They write crap.  Those people exist programming in every language, and easy to learn languages with many ways to do things give them plenty of rope and guns to shoot and hang themselves with.  Simultaneously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you hang around the Perl world for longer than a cursory look, and watch what the long-timers in the community are doing, you see a remarkable thing: the good Perl programmers spend some time seeking to find the &lt;strong&gt;best&lt;/strong&gt; way to do something.  When they're naming a new module, they ask around for suggestions and bounce their ideas off of people.  They hand their code out to get looked at, critiqued, and modified.  If they have to do something nasty, they encapsulate it in the smallest way possible in a module for use in a more organized way.  Several implementations of the same idea might hang around for awhile, but they compete for mindshare and marketshare, and they compete by trying to do the best job, and a big part of that is by making themselves easily maintainable.  Really good Perl programmers seem to &lt;strong&gt;think&lt;/strong&gt; &lt;strong&gt;hard&lt;/strong&gt; about what they are doing and looking for the best way to do things, rather than just grabbing the first idea that flits through their brain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Today I program primarily in the Java world.  I've seen some really good Java code, but I see a lot of junk as well, and I see more of the mindset I described at the beginning: people settle on the first ugly lump of code that seems to work, without understanding it, without thinking if there's a better way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will see both mindsets in every language.  I'm not trying to impugn Java specifically.  (Actually I really like it in some ways ... maybe that should be my real controversial opinion!)  But I'm coming to believe that every programmer needs to spend a good couple of years with a TMTOWTDI-style language, because even though conventional wisdom has it that this leads to chaos and crappy code, it actually seems to produce people who understand that you need to think about the repercussions of what you are doing instead of trusting your language to have been designed to make you do the right thing with no effort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do think you can err too far in the other direction: i.e., perfectionism that totally ignores your true needs and goals (often the true needs and goals of your business, which is usually profitability).  But I don't think anyone can be a truly great programmer without learning to invest some greater-than-average effort in thinking about finding the best (or at least one of the best) way to code what they are doing.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T10:23:45.253" />
  <row Id="31222" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T10:27:29.583" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Variable_Names_With_Bloody_Underscores&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or even worse&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;CAPITALIZED_VARIABLE_NAMES_WITH_BLOODY_UNDERSCORES&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;should be globally expunged... with prejudice! CamelCapsAreJustFine.&#xA;(Glolbal constants not withstanding)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;GOTO statements are for use by developers under the age of 11&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any language that does not support pointers is not worthy of the name&lt;/p&gt;&#xA;&#xA;&lt;p&gt;.Net = .Bloat&#xA;The finest example of microsoft's efforts for web site development (Expressionless Web 2)&#xA;is the finest example of slow bloated cr@pw@re ever written.&#xA;(try Web Studio instead)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Response:&#xA;OK well let me address the Underscore issue a little. From the C link you provided:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Global constants should be all caps with '_' separators. &#xA;This I actually agree with because it is so BLOODY_OBVIOUS&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Take for example NetworkABCKey. Notice how the C from ABC and K from key are confused. Some people don't mind this and others just hate it so you'll find different policies in different code so you never know what to call something. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I fall into the former category. I choose names VERY carefully and if you cannot figure out in one glance that the K belongs to Key then english is probably not your first language.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;C Function Names&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In a C++ project there should be very few C functions.&lt;/li&gt;&#xA;&lt;li&gt;For C functions use the GNU convention of all lower case letters with '_' as the word delimiter. &lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Justification&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* It makes C functions very different from any C++ related names.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Example&lt;/p&gt;&#xA;&#xA;&lt;p&gt;int&#xA;   some_bloody_function()&#xA;   {&#xA;   }&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These &quot;standards&quot; and conventions are simply the arbitrary decisions handed down through time. I think that while they make a certain amount of logical sense, They clutter up code and make something that should be short and sweet to read, clumsy, long winded and cluttered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C has been adopted as the de-facto standard, not because it is friendly, but because it is pervasive. I can write 100 lines of C code in 20 with a syntactically friendly high level language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This makes the program flow easy to read, and as we all know, revisiting code after a year or more means following the breadcrumb trail all over the place. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do use underscores but for global variables only as they are few and far between and they stick out clearly. Other than that, a well thought out CamelCaps() function/ variable name has yet to let me down!&lt;/p&gt;&#xA;" OwnerUserId="22464" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T10:27:29.583" CommentCount="2" />
  <row Id="31223" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T10:46:14.567" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Requirements analysis, specification, design, and documentation will almost never fit into a &quot;template.&quot;&lt;/strong&gt;  You are 100% of the time better off by starting with a blank document and beginning to type with a view of &quot;I will explain this in such a way that if I were dead and someone else read this document, they would know everything that I know and see and understand now&quot; and then organizing from there, letting section headings and such develop naturally and fit the task you are specifying, rather than being constrained to some business or school's idea of what your document should look like.  If you have to do a diagram, rather than using somebody's formal and incomprehensible system, you're often better off just drawing a diagram that makes sense, with a clear legend, which actually specifies the system you are trying to specify and communicates the information that the developer on the other end (often you, after a few years) needs to receive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[If you have to, once you've written the real documentation, you can often shoehorn it into whatever template straightjacket your organization is imposing on you.  You'll probably find yourself having to add section headings and duplicate material, though.]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only time templates for these kinds of documents make sense is when you have a large number of tasks which are very similar in nature, differing only in details.  &quot;Write a program to allow single-use remote login access through this modem bank, driving the terminal connection nexus with C-Kermit,&quot; &quot;Produce a historical trend and forecast report for capacity usage,&quot; &quot;Use this library to give all reports the ability to be faxed,&quot; &quot;Fix this code for the year 2000 problem,&quot; and &quot;Add database triggers to this table to populate a software product provided for us by a third-party vendor&quot; can &lt;strong&gt;not&lt;/strong&gt; all be described by the same template, no matter what people may think.  And for the record, the requirements and design diagramming techniques that my college classes attempted to teach me and my classmates could not be used to specify a simple calculator program (and everyone knew it).&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T10:46:14.553" />
  <row Id="31224" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T10:53:43.523" Score="35" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A picture is &lt;em&gt;not&lt;/em&gt; worth a thousand words.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some pictures might be worth a thousand words.  Most of them are not.  This trite old aphorism is mostly untrue and is a pathetic excuse for many a lazy manager who did not want to read carefully created reports and documentation to say &quot;I need you to show me in a diagram.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My wife studied for a linguistics major and saw several fascinating proofs against the conventional wisdom on pictures and logos: they do not break across language and cultural barriers, they usually do not communicate anywhere near as much information as correct text, they simply are no substitute for real communication.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In particular, labeled bubbles connected with lines are useless if the lines are unlabeled and unexplained, and/or if every line has a different meaning instead of signifying the same relationship (unless distinguished from each other in some way).  If your lines sometimes signify relationships and sometimes indicate actions and sometimes indicate the passage of time, you're really hosed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every good programmer knows you use the tool suited for the job at hand, right?  Not all systems are best specified and documented in pictures.  Graphical specification languages that can be automatically turned into provably-correct, executable code or whatever are a &lt;strong&gt;spectacular&lt;/strong&gt; idea, if such things exist.  Use them when appropriate, not for everything under the sun.  Entity-Relationship diagrams are great.  But not everything can be summed up in a picture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: a &lt;strong&gt;table&lt;/strong&gt; may be worth its weight in gold.  But a &lt;strong&gt;table&lt;/strong&gt; is not the same thing as a &lt;strong&gt;picture&lt;/strong&gt;.  And again, a well-crafted short prose paragraph may be far more suitable for the job at hand.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T10:53:43.523" CommentCount="3" />
  <row Id="31225" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T11:04:23.003" Score="749" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;XML is highly overrated&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think too many jump onto the XML bandwagon before using their brains...&#xA;XML for web stuff is great, as it's designed for it. Otherwise I think some &lt;em&gt;problem definition&lt;/em&gt; and &lt;em&gt;design&lt;/em&gt; thoughts should preempt any decision to use it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My 5 cents&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T11:04:23.003" CommentCount="46" />
  <row Id="31226" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T15:09:24.177" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Good Coders Code and Great Coders Reuse It&quot; This is happening right now But &quot;Good Coder&quot; is the only &lt;strong&gt;ONE&lt;/strong&gt; who enjoy that code.&#xA; and &quot;Great Coders&quot; are for only to find out the bug in to that because they don't have the time to think and code. But they have time for find the bug in that code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;so don't criticize!!!!!!!!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Create your own code how &lt;strong&gt;YOU&lt;/strong&gt; want.  &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T15:09:24.177" CommentCount="3" />
  <row Id="31227" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T15:55:31.027" Score="5" ViewCount="" Body="&lt;p&gt;Reuse of code is inversely proportional to its &quot;reusability&quot;.  Simply because &quot;reusable&quot; code is more complex, whereas quick hacks are easy to understand, so they get reused.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software failures should take down the system, so that it can be examined and fixed.  Software attempting to handle failure conditions is often worse than crashing.  ie, is it better to have a system reset after crashing, or should it be indefinitely hung because the failure handler has a bug?&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T15:55:31.013" CommentCount="1" />
  <row Id="31228" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T16:22:19.587" Score="26" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It's okay to be Mort&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not everyone is a &quot;rockstar&quot; programmer; some of us do it because it's a good living, and we don't care about all the latest fads and trends; we just want to do our jobs.&lt;/p&gt;&#xA;" OwnerUserId="22390" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T16:22:19.587" CommentCount="3" />
  <row Id="31229" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T16:36:50.367" Score="5" ViewCount="" Body="&lt;p&gt;Java is not the best thing out there. Just because it comes with an 'Enterprise' sticker does not make it good. Nor does it make it fast. Nor does it make it the answer to every question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, ROR is not all it is cracked up to be by the Blogsphere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I am at it, OOP is not always good. In fact, I think it is usually bad.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T16:36:50.367" CommentCount="1" />
  <row Id="31230" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T17:00:33.610" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Opinion: most code out there is crappy, because that's what the programmers WANT it to be.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Indirectly, we have been nurturing a culture of extreme creativeness. It's not that I don't think problem solving has creative elements -- it does -- it's just that it's not even remotely the same as something like painting (see Paul Graham's famous &quot;Hackers and Painters&quot; essay). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If we bend our industry towards that approach, ultimately it means letting every programmer go forth and whack out whatever highly creative, crazy stuff they want. Of course, for any sizable project, trying to put together dozens of unrelated, unstructured, unplanned bits into one final coherent bit won't work by definition. That's not a guess, or an estimate, it's the state of the industry that we face today. How many times have you seen sub-bits of functionality in a major program that were completely inconsistent with the rest of the code? It's so common now, it's a wonder anyone cause use any of these messes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Convoluted, complicated, ugly stuff that just keeps getting worse and more unstable. If we were building something physical, everyone on the planet would call us out on how horribly ugly and screwed up the stuff is, but because it more or less hidden by being virtual, we are able to get away with some of the worst manufacturing processing that our species will ever see. (Can you imagine a car where four different people designed the four different wheels, in four different ways?)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the sad part, the controversial part of it all, is that there is absolutely NO reason for it to be this way, other than historically the culture was towards more freedom and less organization, so we stayed that way (and probably got a lot worse). Software development is a joke, but it's a joke because that's what the programmers want it to be (but would never in a million years admit that it was true, a &quot;plot by management&quot; is a better reason for most people). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How long will we keep shooting ourselves in the foot, before we wake up and realize that we the ones holding the gun, pointing it and also pulling the trigger?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Paul.&lt;/p&gt;&#xA;" OwnerUserId="23605" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T17:00:33.610" CommentCount="7" />
  <row Id="31231" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T17:14:35.720" Score="46" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A Clever Programmer Is Dangerous&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have spent more time trying to fix code written by &quot;clever&quot; programmers. I'd rather have a good programmer than an exceptionally smart programmer who wants to prove how clever he is by writing code that only he (or she) can interpret. &lt;/p&gt;&#xA;" OwnerUserId="13671" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T17:14:35.720" CommentCount="6" />
  <row Id="31232" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T17:30:34.393" Score="33" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If a developer cannot write clear, concise and grammatically correct comments then they should have to go back and take English 101.&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have developers and (the horror) architects who cannot write coherently.  When their documents are reviewed they say things like &quot;oh, don't worry about grammatical errors or spelling - that's not important&quot;.  Then they wonder why their convoluted garbage documents become convoluted buggy code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tell the interns that I mentor that if you can't communicate your great ideas verbally or in writing you may as well not have them.  &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T17:30:34.393" CommentCount="6" />
  <row Id="31233" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T17:32:53.343" Score="56" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Realizing sometimes good enough is good enough, is a major jump in your value as a programmer.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that when I say 'good enough', I mean 'good enough', not it's some crap that happens to work.  But then again, when you are under a time crunch, 'some crap that happens to work', may be considered 'good enough'.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T17:32:53.343" />
  <row Id="31234" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T17:39:07.370" Score="16" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Most consulting programmers suck&lt;/strong&gt; and should not be allowed to write production code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;IMHO-Probably about 60% or more&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T17:39:07.370" CommentCount="4" />
  <row Id="31235" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T17:39:48.727" Score="9" ViewCount="" Body="&lt;p&gt;Opinion: &lt;strong&gt;There should not be any compiler warnings, only errors&lt;/strong&gt;. Or, formulated differently &lt;strong&gt;You should always compile your code with -Werror&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reason: Either the compiler thinks it is something which should be corrected, in case it should be an error, or it is not necessary to fix, in which case the compiler should just shut up.&lt;/p&gt;&#xA;" OwnerUserId="2301" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T17:39:48.727" CommentCount="7" />
  <row Id="31236" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T17:40:23.063" Score="175" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Most professional programmers suck&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have come across too many people doing this job for their living who were plain crappy at what they were doing. Crappy code, bad communication skills, no interest in new technology whatsoever. Too many, too many...&lt;/p&gt;&#xA;" OwnerUserId="9994" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T17:40:23.063" CommentCount="14" />
  <row Id="31237" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T18:18:08.540" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A majority of the 'user-friendly' Fourth Generation Languages (SQL included) are worthless overrated pieces of rubbish that should have never made it to common use.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4GLs in general have a wordy and ambiguous syntax. Though 4GLs are supposed to allow 'non technical people' to write programs, you still need the 'technical' people to write and maintain them anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4GL programs in general are harder to write, harder to read and harder to optimize than.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4GLs should be avoided as far as possible.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T18:18:08.540" CommentCount="4" />
  <row Id="31238" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T19:38:33.480" Score="27" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Don't comment your code&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Comments are not code and therefore when things change it's very easy to not change the comment that explained the code.  Instead I prefer to refactor the crap out of code to a point that there is no reason for a comment.  An example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(data == null)  // First time on the page&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;to:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;bool firstTimeOnPage = data == null;&#xA;if(firstTimeOnPage)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The only time I really comment is when it's a TODO or explaining why&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Widget.GetData(); // only way to grab data, TODO: extract interface or wrapper&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T19:38:33.463" CommentCount="10" />
  <row Id="31239" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T19:56:08.170" Score="16" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Only write an abstraction if it's going to save 3X as much time later.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I see people write all these crazy abstractions sometimes and I think to myself, &quot;Why?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless an abstraction is really going to save you time later or it's going to save the person maintaining your code time, it seems people are just writing spaghetti code more and more.&lt;/p&gt;&#xA;" OwnerUserId="18689" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T19:56:08.170" CommentCount="2" />
  <row Id="31240" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T20:20:19.013" Score="46" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Bad Programmers are Language-Agnostic&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A really bad programmer can write bad code in almost any language.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T20:20:18.997" CommentCount="2" />
  <row Id="31241" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T20:30:22.830" Score="10" ViewCount="" Body="&lt;p&gt;My controversial opinion? Java doesn't suck but Java API's do. Why do java libraries insist on making it hard to do simple tasks? And why, instead of fixing the APIs, do they create frameworks to help manage the boilerplate code? This opinion can apply to any language that requires 10 or more lines of code to read a line from a file.&lt;/p&gt;&#xA;" OwnerUserId="4823" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T20:30:22.830" />
  <row Id="31242" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T20:32:34.773" Score="64" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Architects that do not code are useless.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That sounds a little harsh, but it's not unreasonable. If you are the &quot;architect&quot; for a system, but do not have some amount of hands-on involvement with the technologies employed then how do you get the respect of the development team? How do you influence direction?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Architects need to do a lot more (meet with stakeholders, negotiate with other teams, evaluate vendors, write documentation, give presentations, etc.) But, if you never see code checked in from by your architect... be wary!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T20:32:34.760" CommentCount="3" />
  <row Id="31243" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T20:36:46.233" Score="95" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Don't use inheritance unless you can explain why you need it.&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T20:36:46.217" CommentCount="9" />
  <row Id="31244" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T20:56:36.677" Score="17" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Global variables are ok (there are times where it is a very good solution)&lt;/li&gt;&#xA;&lt;li&gt;gotos have their place, both are missed (i &lt;em&gt;rarely&lt;/em&gt; use both.)&lt;/li&gt;&#xA;&lt;li&gt;defines/macros are wonderful but incredibly evil&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Singletons should NEVER be used*1&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and my most controversial yet...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;COMMENTS ARE EVIL AND A WASTE OF TIME&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;*1 logging may be ok but i dont even do that. What if you would like to output log data on a  per thread basis. You want to know which thread is outputting that line, chances are you need a non static member unique to your own thread. So logging i see benefits of NOT using a singleton. Theres absolutely no reason to use them.&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T20:56:36.677" CommentCount="15" />
  <row Id="31245" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T20:56:52.590" Score="29" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If your text editor doesn't do good code completion, you're wasting everyone's time.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quickly remembering thousands of argument lists, spellings, and return values (not to mention class structures and similarly complex organizational patterns) is a task computers are good at and people (comparatively) are not. I buy wholeheartedly that slowing yourself down a bit and avoiding the gadget/feature cult is a great way to increase efficiency and avoid bugs, but there is simply no benefit to spending 30 seconds hunting unnecessarily through sourcecode or docs when you could spend nil... especially if you just need a spelling (which is more often than we like to admit).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Granted, if there isn't an editor that provides this functionality for your language, or the task is simple enough to knock out in the time it would take to load a heavier editor, nobody is going to tell you that Eclipse and 90 plugins is the right tool. But please don't tell me that the ability to H-J-K-L your way around like it's 1999 really saves you more time than hitting escape every time you need a method signature... even if you do feel less &quot;hacker&quot; doing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thoughts?&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T20:56:52.590" CommentCount="7" />
  <row Id="31246" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T21:29:23.693" Score="22" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You don't &lt;em&gt;always&lt;/em&gt; need a database.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need to store less than a few thousand &quot;things&quot; and you don't need locking, flat files can work and are better in a lot of ways. They are more portable, and you can hand edit them in a pinch. If you have proper separation between your data and business logic, you can easily replace the flat files with a database if your app ever needs it. And if you design it with this in mind, it reminds you to have proper separation between your data and business logic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;--&lt;br /&gt;&#xA;bmb&lt;/p&gt;&#xA;" OwnerUserId="3473" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T21:29:23.693" CommentCount="9" />
  <row Id="31247" PostTypeId="2" ParentId="31104" CreationDate="2009-01-03T22:08:16.470" Score="70" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Pagination is never what the user wants&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you start having the discussion about where to do pagination, in the database, in the business logic, on the client, etc. then you are asking the wrong question. If your app is giving back more data than the user needs, figure out a way for the user to narrow down what they need based on real criteria, not arbitrary sized chunks. And if the user really does want all those results, then &lt;em&gt;give them all the results.&lt;/em&gt; Who are you helping by giving back 20 at a time? The server? Is that more important than your user?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[EDIT: clarification, based on comments] &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a real world example, let's look at &lt;em&gt;this&lt;/em&gt; Stack Overflow question.  Let's say I have a controversial programming opinion.  Before I post, I'd like to see if there is already an answer that addresses the same opinion, so I can upvote it.  The only option I have is to click through every page of answers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would prefer one of these options:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Allow me to search through the answers (a way for me to narrow down what I need based on real criteria).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Allow me to see all the answers so I can use my browser's &quot;find&quot; option (give me all the results).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The same applies if I just want to find an answer I previously read, but can't find anymore.  I don't know when it was posted or how many votes it has, so the sorting options don't help.  And even if I did, I still have to play a guessing game to find the right page of results. The fact that the answers are paginated and I can directly click into one of a dozen pages &lt;em&gt;is no help at all&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;--&lt;br /&gt;&#xA;bmb&lt;/p&gt;&#xA;" OwnerUserId="3473" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-03T22:08:16.470" CommentCount="23" />
  <row Id="31248" PostTypeId="2" ParentId="31104" CreationDate="2009-01-04T00:29:06.933" Score="3" ViewCount="" Body="&lt;p&gt;I think its fine to use goto-statements, if you use them in a sane way (and a sane programming language). They can often make your code a lot easier to read and don't force you to use some twisted logic just to get one simple thing done.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-04T00:29:06.920" CommentCount="1" />
  <row Id="31249" PostTypeId="2" ParentId="31104" CreationDate="2009-01-04T00:44:43.987" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Use type inference anywhere and everywhere possible.&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a link to a blog entry I wrote several months ago about why I feel this way. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/jaredpar/archive/2008/09/09/when-to-use-type-inference.aspx&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com/jaredpar/archive/2008/09/09/when-to-use-type-inference.aspx&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="278" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-04T00:44:43.987" CommentCount="4" />
  <row Id="31250" PostTypeId="2" ParentId="31104" CreationDate="2009-01-04T01:24:23.673" Score="40" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C++ is a good language&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I practically got lynched in another question a week or two back for saying that C++ wasn't a very nice language. So now I'll try saying the opposite. ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No, seriously, the point I tried to make then, and will try again now, is that C++ has plenty of flaws. It's hard to deny that. It's so extremely complicated that learning it well is practically something you can dedicate your entire life to. It makes many common tasks needlessly hard, allows the user to plunge head-first into a sea of undefined behavior and unportable code, with no warnings given by the compiler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it's not the useless, decrepit, obsolete, hated language that many people try to make it. It shouldn't be swept under the carpet and ignored. The world wouldn't be a better place without it. It has some unique strengths that, unfortunately, are hidden behind quirky syntax, legacy cruft and not least, bad C++ teachers. But they're there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ has many features that I desperately miss when programming in C# or other &quot;modern&quot; languages. There's a lot in it that C# and other modern languages could learn from.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not blindly focused on OOP, but has instead explored and pioneered generic programming. It allows surprisingly expressive compile-time metaprogramming producing extremely efficient, robust &lt;em&gt;and&lt;/em&gt; clean code. It took in lessons from functional programming almost a decade before C# got LINQ or lambda expressions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It allows you to catch a surprising number of errors at compile-time through static assertions and other metaprogramming tricks, which eases debugging vastly, and even beats unit tests in some ways. (I'd much rather catch an error at compile-time than afterwards, when I'm running my tests).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Deterministic destruction of variables allows RAII, an extremely powerful little trick that makes try/finally blocks and C#'s &lt;code&gt;using&lt;/code&gt; blocks redundant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And while some people accuse it of being &quot;design by committee&quot;, I'd say yes, it is, and that's actually not a bad thing in this case. Look at Java's class library. How many classes have been deprecated again? How many should not be used? How many duplicate each others' functionality? How many are badly designed?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++'s standard library is much smaller, but on the whole, it's remarkably well designed, and except for one or two minor warts (&lt;code&gt;vector&amp;lt;bool&amp;gt;&lt;/code&gt;, for example), its design still holds up very well. When a feature is added to C++ or its standard library, it is subjected to heavy scrutiny. Couldn't Java have benefited from the same? .NET too, although it's younger and was somewhat better designed to begin with, is still accumulating a good handful of classes that are out of sync with reality, or were badly designed to begin with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;C++ has plenty of strengths that no other language can match. It's a good language&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8502" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-04T01:24:23.673" CommentCount="3" />
  <row Id="31251" PostTypeId="2" ParentId="31104" CreationDate="2009-01-04T02:14:34.647" Score="106" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A degree in Computer Science or other IT area DOES make you a more well rounded programmer&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't care how many years of experience you have, how many blogs you've read, how many open source projects you're involved in.  A qualification (I'd recommend longer than 3 years) exposes you to a different way of thinking and gives you a great foundation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just because you've written some better code than a guy with a BSc in Computer Science, does not mean you are better than him.  What you have he can pick up in an instant which is not the case the other way around.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having a qualification shows your commitment, the fact that you would go above and beyond experience to make you a better developer.  Developers which are good at what they do AND have a qualification can be very intimidating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would not be surprized if this answer gets voted down.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, once you have a qualification, you slowly stop comparing yourself to those with qualifications (my experience).  You realize that it all doesn't matter at the end, as long as you can work well together.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Always act mercifully towards other developers, irrespective of qualifications. &lt;/p&gt;&#xA;" OwnerUserId="11170" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-04T02:14:34.647" CommentCount="13" />
  <row Id="31252" PostTypeId="2" ParentId="31104" CreationDate="2009-01-04T03:18:07.250" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;New web projects should consider not using Java.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been using Java to do web development for over 10 years now.  At first, it was a step in the right direction compared to the available alternatives.  Now, there are better alternatives than Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is really just a specific case of the magic hammer approach to problem solving, but it's one that's really painful.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-04T03:18:07.250" CommentCount="4" />
  <row Id="31253" PostTypeId="2" ParentId="31104" CreationDate="2009-01-04T03:32:37.953" Score="293" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Less code is better than more!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the users say &quot;that's it?&quot;, and your work remains invisible, it's done right.  Glory can be found elsewhere.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-04T03:32:37.953" CommentCount="10" />
  <row Id="31254" PostTypeId="2" ParentId="31104" CreationDate="2009-01-04T04:29:59.117" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Developers are all different, and should be treated as such.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developers don't fit into a box, and shouldn't be treated as such. The best language or tool for solving a problem has just as much to do with the developers as it does with the details of the problem being solved.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-04T04:29:59.117" CommentCount="1" />
  <row Id="31255" PostTypeId="2" ParentId="31104" CreationDate="2009-01-04T05:09:26.103" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Test Constantly&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to write tests, and you have to write them FIRST. Writing tests changes the way you write your code. It makes you think about what you want it to actually do before you just jump in and write something that does everything except what you want it to do. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also gives you goals. Watching your tests go green gives you that little extra bump of confidence that you're getting something accomplished.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also gives you a basis for writing tests for your edge cases. Since you wrote the code against tests to begin with, you probably have some hooks in your code to test with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is not excuse not to test your code. If you don't you're just lazy. I also think you should test first, as the benefits outweigh the extra time it takes to code this way.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-04T05:09:26.103" CommentCount="6" />
  <row Id="31256" PostTypeId="2" ParentId="31104" CreationDate="2009-01-04T10:33:27.777" Score="512" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Your job is to put yourself out of work.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you're writing software for your employer, any software that you create is to be written in such a way that it can be picked up by any developer and understood with a minimal amount of effort. It is well designed, clearly and consistently written, formatted cleanly, documented where it needs to be, builds daily as expected, checked into the repository, and appropriately versioned. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you get hit by a bus, laid off, fired, or walk off the job, your employer should be able to replace you on a moment's notice, and the next guy could step into your role, pick up your code and be up and running within a week tops. If he or she can't do that, then you've failed miserably.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interestingly, I've found that having that goal has made me more valuable to my employers. The more I strive to be disposable, the more valuable I become to them.&lt;/p&gt;&#xA;" OwnerUserId="19484" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-04T10:33:27.777" CommentCount="21" />
  <row Id="31257" PostTypeId="2" ParentId="31104" CreationDate="2009-01-05T00:41:19.000" Score="31" ViewCount="" Body="&lt;p&gt;One I have been tossing around for a while: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The data is the system.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Processes and software are built for data, not the other way around.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without data, the process/software has little value.  Data still has value without a process or software around it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once we understand the data, what it does, how it interacts, the different forms it exists in at different stages, only then can a solution be built to support the system of data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Successful software/systems/processes seem to have an acute awareness, if not fanatical mindfulness of &quot;where&quot; the data is at in any given moment.  &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-05T00:41:19.000" CommentCount="6" />
  <row Id="31258" PostTypeId="2" ParentId="31104" CreationDate="2009-01-05T01:23:57.603" Score="5" ViewCount="" Body="&lt;p&gt;Developers should be able to modify production code without getting permission from anyone as long as they document their changes and notify the appropriate parties.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-05T01:23:57.603" CommentCount="8" />
  <row Id="31259" PostTypeId="2" ParentId="31104" CreationDate="2009-01-05T04:36:37.463" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Uncommented code is the bane of humanity.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that comments are necessary for code.  They visually divide it up into logical parts, and provide an alternative representation when reading code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Documentation comments are the bare minimum, but using comments to split up longer functions helps when writing new code and allows quicker analysis when returning to existing code.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-05T04:36:37.463" CommentCount="3" />
  <row Id="31260" PostTypeId="2" ParentId="31104" CreationDate="2009-01-05T08:48:57.877" Score="4" ViewCount="" Body="&lt;p&gt;Hardcoding is good!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Really ,more efficient and much easier to maintain in many cases!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The number of times I've seen constants put into parameter files really how often will&#xA;you change the freezing point of water or the speed of light?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For C programs just hard code these type of values into a header file, for java into a static class etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When these parameters have a drastic effect on your programs behaviour you really want to do a regresion test on every change, this seems more natural with hard coded values. When things are stored in parameter/property files the temptation is to think &quot;this is not a program cahnge so I dont need to test it&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other advantage is it stops people messing with vital values in the parameter/property files because there aren't any!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-05T08:48:57.877" CommentCount="3" />
  <row Id="31261" PostTypeId="2" ParentId="31104" CreationDate="2009-01-05T09:05:53.677" Score="1" ViewCount="" Body="&lt;p&gt;Having a process that involves code being approved before it is merged onto the main line is a terrible idea.  It breeds insecurity and laziness in developers, who, if they knew they could be screwing up dozens of people would be very careful about the changes they make, get lulled into a sense of not having to think about all the possible clients of the code they may be affecting.  The person going over the code is less likely to have thought about it as much as the person writing it, so it can actually lead to poorer quality code being checked in... though, yes, it will probably follow all the style guidelines and be well commented :)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-05T09:05:53.677" CommentCount="1" />
  <row Id="31262" PostTypeId="2" ParentId="31104" CreationDate="2009-01-05T09:47:56.137" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The worst thing about recursion is recursion.&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-05T09:47:56.137" CommentCount="4" />
  <row Id="31263" PostTypeId="2" ParentId="31104" CreationDate="2009-01-05T10:52:55.677" Score="32" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Design Patterns are a symptom of Stone Age programming language design&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They have their purpose. A lot of good software gets built with them. But the fact that there was a need to codify these &quot;recipes&quot; for psychological abstractions about how your code works/should work speaks to a lack of programming languages expressive enough to handle this abstraction for us. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The remedy, I think, lies in languages that allow you to embed more and more of the design into the code, by defining language constructs that might not exist or might not have general applicability but really &lt;em&gt;really&lt;/em&gt; make sense in situations your code deals with incessantly. The Scheme people have known this for years, and there are things possible with Scheme macros that would make most monkeys-for-hire piss their pants.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-05T10:52:55.677" CommentCount="1" />
  <row Id="31264" PostTypeId="2" ParentId="31104" CreationDate="2009-01-05T11:20:42.580" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;For a good programmer language is not a problem.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may be not very controvertial but I hear a lot o whining from other programmers like &quot;why don't they all use delphi?&quot;, &quot;C# sucks&quot;, &quot;i would change company if they forced me to use java&quot; and so on.&lt;br /&gt;&#xA;What i think is that a good programmer is flexible and is able to write good programms in any programming language that he might have to learn in his life&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-05T11:20:42.580" CommentCount="8" />
  <row Id="31265" PostTypeId="2" ParentId="31104" CreationDate="2009-01-05T14:12:35.260" Score="13" ViewCount="" Body="&lt;p&gt;Non-development staff should not be allowed to manage development staff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Correction: Staff with zero development experience should not be allowed to manage development staff.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-05T14:12:35.260" CommentCount="5" />
  <row Id="31266" PostTypeId="2" ParentId="31104" CreationDate="2009-01-05T21:11:23.183" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;VB sucks&lt;/strong&gt;&lt;br /&gt;&#xA;While not terribly controversial in general, when you work in a VB house it is&lt;/p&gt;&#xA;" OwnerUserId="24172" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-05T21:11:23.183" CommentCount="5" />
  <row Id="31267" PostTypeId="2" ParentId="31104" CreationDate="2009-01-05T21:17:17.587" Score="27" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Generated documentation is nearly always totally worthless.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, as a corollary: &lt;strong&gt;Your API needs separate sets of documentation for maintainers and users.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are really two classes of people who need to understand your API: maintainers, who must understand the minutiae of your implementation to be effective at their job, and users, who need a high-level overview, examples, and thorough details about the effects of each method they have access to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have never encountered generated documentation that succeeded in either area.  Generally, when programmers write comments for tools to extract and make documentation out of, they aim for somewhere in the middle--just enough implementation detail to bore and confuse users yet not enough to significantly help maintainers, and not enough overview to be of any real assistance to users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a maintainer, I'd &lt;em&gt;always&lt;/em&gt; rather have clean, clear comments, unmuddled by whatever strange markup your auto-doc tool requires, that tell me why you wrote that weird switch statement the way you did, or what bug this seemingly-redundant parameter check fixes, or whatever else I need to know to actually keep the code clean and bug-free as I work on it.  I want this information right there in the code, adjacent to the code it's about, so I don't have to hunt down your website to find it in a state that lends itself to being read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a user, I'd &lt;em&gt;always&lt;/em&gt; rather have a thorough, well-organized document (a set of web pages would be ideal, but I'd settle for a well-structured text file, too) telling me how your API is architectured, what methods do what, and how I can accomplish what I want to use your API to do.  I don't want to see internally what classes you wrote to allow me to do work, or files they're in for that matter.  And I certainly don't want to have to download your source so I can figure out exactly what's going on behind the curtain.  If your documentation were good enough, I wouldn't have to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's how I see it, anyway.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-05T21:17:17.587" CommentCount="2" />
  <row Id="31268" PostTypeId="2" ParentId="31104" CreationDate="2009-01-05T22:06:00.653" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Extension Methods are the work of the Devil&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everyone seems to think that extension methods in .Net are the best thing since sliced bread. The number of developers singing their praises seems to rise by the minute but I'm afraid I can't help but despise them and unless someone can come up with a brilliant justification or example that I haven't already heard then I will never write one. I recently came across this &lt;a href=&quot;http://stackoverflow.com/questions/271398/post-your-extension-goodies-for-c-net-codeplex-com-extensionoverflow&quot;&gt;thread&lt;/a&gt; and I must say reading the examples of the highest voted extensions made me feel a little like vomiting (metaphorically of course).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main reasons given for their extensiony goodness are increased readability, improved OO-ness and the ability to chain method calls better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm afraid I have to differ, I find in fact that they, unequivocally, reduce readability and OO-ness by virtue of the fact that they are at their core a lie. If you need a utility method that acts upon an object then write a utility method that acts on that object don't lie to me. When I see aString.SortMeBackwardsUsingKlingonSortOrder then string should have that method because that is telling me something about the string object not something about the AnnoyingNerdReferences.StringUtilities class.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;LINQ was designed in such a way that chained method calls are necessary to avoid strange and uncomfortable expressions and the extension methods that arise from LINQ are understandable but in general chained method calls reduce readability and lead to code of the sort we see in obfuscated Perl contests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, in short, extension methods are evil. Cast off the chains of Satan and commit yourself to extension free code.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-05T22:06:00.653" CommentCount="2" />
  <row Id="31269" PostTypeId="2" ParentId="31104" CreationDate="2009-01-06T05:13:37.577" Score="2" ViewCount="" Body="&lt;p&gt;Don't worry too much about what language to learn, use the industry heavy weights like c# or python. Languages like Ruby are fun in the bedroom, but don't do squat in workplace scenarios. Languages like c# and Java can handle small to the very large software projects. If anyone says otherwise, then your talking about a scripting language. Period!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before starting a project, consider how much support and code samples are available on the net. Again, choosing a language like Ruby which has very few code samples on the web compared to Java for example, will only cause you grief further down the road when your stuck on a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can't post a message on a forum and expect an answer back while your boss is asking you how your coding is going. What are you going to say? &quot;I'm waiting for someone to help me out on this forum&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn one language and learn it good. Learning multiple languages may carry over skills and practices, but you'll only even be OK at all of them. Be good at one. There are entire books dedicated to Threading in Java which, when you think about it, is only one namespace out of over 100.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Master one or be ok at lots.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-06T05:13:37.577" />
  <row Id="31270" PostTypeId="2" ParentId="31104" CreationDate="2009-01-06T17:14:22.583" Score="16" ViewCount="" Body="&lt;p&gt;This one is mostly web related but...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Use Tables for your web page layouts&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I was developing a gigantic site that needed to squeeze performance I might think about it, but nothing gives me an easier way to get a consistent look out on the browser than tables. The majority of applications that I develop are for around 100-1000 users and possible 100 at a time max.  The extra bloat of the tables aren't killing my server by any means.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-06T17:14:22.583" CommentCount="7" />
  <row Id="31271" PostTypeId="2" ParentId="31104" CreationDate="2009-01-06T21:02:39.253" Score="3" ViewCount="" Body="&lt;p&gt;That software can be bug free if you have the right tools and take the time to write it properly.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-06T21:02:39.253" CommentCount="2" />
  <row Id="31272" PostTypeId="2" ParentId="31104" CreationDate="2009-01-07T06:51:50.623" Score="3" ViewCount="" Body="&lt;p&gt;Opinion: &lt;strong&gt;Not having function definitions, and return types can lead to flexible and readable code.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This opinion probably applies more to interpreted languages than compiled. Requiring a return type, and a function argument list, are great for things like intellisense to auto document your code, but they are also restrictions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now don't get me wrong, I am not saying throw away return types, or argument lists. They have their place. And 90% of the time they are more of a benefit than a hindrance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are times and places when this is useful. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-07T06:51:50.607" />
  <row Id="31273" PostTypeId="2" ParentId="31104" CreationDate="2009-01-07T08:33:30.543" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;coding is not typing&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It takes time to write the code. Most of the time in the editor window, you are just looking at the code, not actually typing. Not as often, but quite frequently, you are deleting what you have written. Or moving from one place to another. Or renaming. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are banging away at the keyboard for a long time you are doing something wrong. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Corollary: Number of lines of code written per day is not a linear measurement of a programmers productivity, as programmer that writes 100 lines in a day is quite likely a better programmer then the one that writes 20, but one that writes 5000 is certainly a &lt;em&gt;bad&lt;/em&gt; programmer&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-07T08:33:30.527" CommentCount="4" />
  <row Id="31274" PostTypeId="2" ParentId="31104" CreationDate="2009-01-07T11:06:49.533" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The vast majority of software being developed does not involve the end-user when gathering requirements.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually it's just some managers who are providing 'requirements'.&lt;/p&gt;&#xA;" OwnerUserId="20743" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-07T11:06:49.533" />
  <row Id="31275" PostTypeId="2" ParentId="31104" CreationDate="2009-01-07T13:06:40.820" Score="19" ViewCount="" Body="&lt;p&gt;The word &lt;strong&gt;'evil'&lt;/strong&gt; is an abused and overused word on Stackoverflow and simular forums. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;People who use it have too little imagination. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-07T13:06:40.820" CommentCount="4" />
  <row Id="31276" PostTypeId="2" ParentId="31104" CreationDate="2009-01-07T13:54:06.370" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Development teams should be segregated more often by technological/architectural layers instead of business function.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I come from a general culture where developers own &quot;everything from web page to stored procedure&quot;. So in order to implement a feature in the system/application, they would prepare the database table schemas, write the stored procs, match the data access code, implement the business logic and web service methods, and the web page interfaces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And guess what? Everybody has their &lt;em&gt;own way to doing things&lt;/em&gt;! Everyone &lt;em&gt;struggles&lt;/em&gt; to learn the ASP.NET AJAX and Telerik or Infragistic suites, Enterprise Library or other productivity and data layer and persistence frameworks, Aspect-oriented frameworks, logging and caching application blocks, DB2 or Oracle percularities. And guess what? Everybody takes &lt;em&gt;heck of a long time&lt;/em&gt; to learn how to do things the proper way! Meaning, lots of mistakes in the meantime and plenty of resulting defects and performance bottlenecks! And heck of a longer time to fix them! Across each and every layer! Everybody has a hand in every Visual Studio project. Nobody is specialised to handle and optmise one problem/technology domain. Too many chefs spoil the soup. All the chefs result in some radioactive goo.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developers may have cross-layer/domain responsibilities, but they should not pretend that they can be masters of all disciplines, and should be limited to only a few. In my experience, when a project is not a small one and utilises lots of technologies, covering more business functions in a single layer is more productive (as well as encouraging more test code test that layer) than covering less business functions spanning the entire architectural stack (which motivates developers to test only via their UI and not test code).&lt;/p&gt;&#xA;" OwnerUserId="5440" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-07T13:54:06.370" />
  <row Id="31277" PostTypeId="2" ParentId="31104" CreationDate="2009-01-07T18:50:35.463" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;XHTML is evil. Write HTML&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will have to set the MIME type to text/html anyway, so why fooling yourself into believing that you are really writing XML? Whoever is going to download your page is going to believe that it is HTML, so make it HTML. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And with that, feel free and happy to not close your &amp;lt;li&gt;, it isn't necessary. Don't close the html tag, the file is over anyway. It is valid HTML and it can be parsed perfectly. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will create more readable, less boilerplate code and you don't lose a thing. HTML parsers work good!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And when you are done, move on to HTML5. It is better. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-07T18:50:35.463" CommentCount="3" />
  <row Id="31278" PostTypeId="2" ParentId="31104" CreationDate="2009-01-08T12:40:30.590" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Relational Databases are a waste of time. Use object databases instead!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Relational database vendors try to fool us into believing that the only scaleable, persistent and safe storage in the world is relational databases. I am a certified DBA. Have you ever spent hours trying to optimize a query and had no idea what was going wrong? Relational databases don't let you make your own  search paths when you need them. You give away much of the control over the speed of your app into the hands of people you've never met and they are not as smart as you think. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, sometimes in a well-maintained database they come up with a quick answer for a complex query. But the price you pay for this is too high! You have to choose between writing raw SQL every time you want to read an entry of your data, which is dangerous. Or use an Object relational mapper which adds more complexity and things outside your control. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;More importantly, you are actively forbidden from coming up with smart search algorithms, because every damn roundtrip to the database costs you around 11ms. It is too much. Imagine you know this super-graph algorithm which will answer a specific question, which might not even be expressible in SQL!, in due time. But even if your algorithm is linear, and interesting algorithms are not linear, forget about combining it with a relational database as enumerating a large table will take you hours!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compare that with SandstoneDb, or Gemstone for Smalltalk! If you are into Java, give db4o a shot. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, my advice is: Use an object-DB. Sure, they aren't perfect and some queries will be slower. But you will be surprised how many will be faster. Because loading the objects will not require all these strange transofmations between SQL and your domain data. And if you really need speed for a certain query, object databases have the query optimizer you should trust: your brain.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-08T12:40:30.590" CommentCount="3" />
  <row Id="31279" PostTypeId="2" ParentId="31104" CreationDate="2009-01-08T13:37:04.283" Score="9" ViewCount="" Body="&lt;p&gt;The code &lt;em&gt;is&lt;/em&gt; the design&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-08T13:37:04.283" />
  <row Id="31280" PostTypeId="2" ParentId="31104" CreationDate="2009-01-08T19:52:15.073" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Debuggers are a crutch.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's so controversial that even I don't believe it as much as I used to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Con: I spend more time getting up to speed on other people's voluminous code, so anything that help with &quot;how did I get here&quot; and &quot;what is happening&quot; either pre-mortem or post-mortem can be helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pro: However, I happily stand by the idea that if you don't understand the answers to those questions for code that you developed yourself or that you've become familiar with, spending all your time in a debugger is not the solution, it's part of the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before hitting 'Post Your Answer' I did a quick Google check for this exact phrase, it turns out that I'm not the only one who has held this opinion or used this phrase.  I turned up &lt;a href=&quot;http://discuss.fogcreek.com/joelonsoftware3/default.asp?cmd=show&amp;amp;ixPost=92682&amp;amp;ixReplies=59&quot; rel=&quot;nofollow&quot;&gt;a long discussion of this very question&lt;/a&gt; on the Fog Creek software forum, which cited various luminaries including Linus Torvalds as notable proponents.&lt;/p&gt;&#xA;" OwnerUserId="10854" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-08T19:52:15.073" CommentCount="3" />
  <row Id="31281" PostTypeId="2" ParentId="31104" CreationDate="2009-01-08T19:54:21.620" Score="5" ViewCount="" Body="&lt;p&gt;Hibernate is useless and damaging to the minds of developers.&lt;/p&gt;&#xA;" OwnerUserId="23764" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-08T19:54:21.620" CommentCount="2" />
  <row Id="31282" PostTypeId="2" ParentId="31104" CreationDate="2009-01-08T20:21:32.313" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Any sufficiently capable library is too complicated to be useable and any library simple enough to be usable lacks that capabilities needed to be a good general solution.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I run in to this constantly.  Exhaustive libraries that are so complicated to use I tear my hair out and simple easy to use libraries that don't quite do what I need them to do.&lt;/p&gt;&#xA;" OwnerUserId="24115" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-08T20:21:32.313" CommentCount="1" />
  <row Id="31283" PostTypeId="2" ParentId="31104" CreationDate="2009-01-08T20:24:04.883" Score="18" ViewCount="" Body="&lt;p&gt;Newer languages, and managed code do not make a bad programmer better.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-08T20:24:04.867" CommentCount="1" />
  <row Id="31284" PostTypeId="2" ParentId="31104" CreationDate="2009-01-08T20:31:24.447" Score="7" ViewCount="" Body="&lt;p&gt;There are far too many programmers who write far too much code. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-08T20:31:24.447" CommentCount="1" />
  <row Id="31285" PostTypeId="2" ParentId="31104" CreationDate="2009-01-09T01:33:34.710" Score="7" ViewCount="" Body="&lt;p&gt;This one is not exactly on programming, because &lt;strong&gt;html/css&lt;/strong&gt; are not programming languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Tables are ok for layout&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;css and divs can't do everything, save yourself the hassle and use a simple table, then use css on top of it.&lt;/p&gt;&#xA;" OwnerUserId="1747" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-09T01:33:34.710" CommentCount="4" />
  <row Id="31286" PostTypeId="2" ParentId="31104" CreationDate="2009-01-09T01:51:13.880" Score="11" ViewCount="" Body="&lt;p&gt;90 percent of programmers are pretty damn bad programmers, and virtually all of us have absolutely no tools to evaluate our current ability level (although we can generally look back and realize how bad we USED to suck)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wasn't going to post this because it pisses everyone off and I'm not really trying for a negative score or anything, but:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A) isn't that the point of the question, and &lt;/p&gt;&#xA;&#xA;&lt;p&gt;B) Most of the &quot;Answers&quot; in this thread prove this point&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I heard a great analogy the other day:  Programming abilities vary AT LEAST as much as sports abilities.  How many sports hobbyists could jump into a professional sports team and actually improve the team's chances of winning a game?&lt;/p&gt;&#xA;" OwnerUserId="1788" LastEditorUserId="1788" LastEditorDisplayName="" LastEditDate="2011-03-01T00:10:27.890" LastActivityDate="2011-03-01T00:10:27.890" CommunityOwnedDate="2009-01-09T01:51:13.880" CommentCount="3" />
  <row Id="31287" PostTypeId="2" ParentId="31104" CreationDate="2009-01-09T12:04:48.860" Score="2" ViewCount="" Body="&lt;p&gt;As most others here, I try to adhere to principles like DRY and not being a human compiler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another strategy I want to push is &quot;tell, don't ask&quot;. Instead of cluttering all objects with getters/setters essentially making a sieve of them, I'd like to tell them to do stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This seems to got straight against good enterprise practices with dumb entity objects and thicker service layer(that does plenty of asking). Hmmm, thoughts? &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-09T12:04:48.860" CommentCount="2" />
  <row Id="31288" PostTypeId="2" ParentId="31104" CreationDate="2009-01-09T13:17:09.603" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;We're software developers, not C/C#/C++/PHP/Perl/Python/Java/... developers.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After you've been exposed to a few languages, picking up a new one and being productive with it is a small task.  That is to say that you shouldn't be afraid of new languages.  Of course, there is a large difference between being productive and mastering a language.  But, that's no reason to shy away from a language you've never seen.  It bugs me when people say, &quot;I'm a PHP developer.&quot; or when a job offer says, &quot;Java developer&quot;.  After a few years experience of being a developer, new languages and APIs really shouldn't be intimidating and going from never seeing a language to being productive with it shouldn't take very long at all.  I know this is controversial but it's my opinion.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-09T13:17:09.603" CommentCount="4" />
  <row Id="31289" PostTypeId="2" ParentId="31104" CreationDate="2009-01-09T13:40:39.480" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Two brains think better than one&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I firmly believe that pair programming is the number one factor when it comes to increasing code quality and programming productivity. Unfortunatly it is also a highly controversial for management who believes that &quot;more hands =&gt; more code =&gt; $$$!&quot;&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-09T13:40:39.480" CommentCount="1" />
  <row Id="31290" PostTypeId="2" ParentId="31104" CreationDate="2009-01-09T14:19:41.413" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You can't write a web application without a remote debugger&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Web applications typically tie together interactions between multiple languages on the client and server side, require interaction from a user and often include third-party code that can be anything from a simple API implementation to a byzantine framework. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've lost count of the number of times I've had another developer sat with me while I step into and follow through what's actually going on in a complex web application with a decent remote debugger to see them flabbergasted and amazed that such tools exist. Often they still don't take the trouble to install and setup these kinds of tools even after seeing them in action. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You just can't debug a non trivial web application with print statements. Times ten if you didn't right all the code in your application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your debugger can step through all the various languages in use and show you the http transactions taking place then so much the better. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;You can't develop web applications without Firebug&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Along similar lines, once you have used Firebug (or very near equivalent) you look on anyone trying to develop web applications with a mixture of pity and horror. Particularly with Firebug showing computed styles, if you remember back to NOT using it and spending hours randomly changing various bits of CSS and adding &quot;!important&quot; in too many places to be funny you will &lt;em&gt;never go back&lt;/em&gt;. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-09T14:19:41.413" CommentCount="6" />
  <row Id="31291" PostTypeId="2" ParentId="31104" CreationDate="2009-01-09T15:51:34.473" Score="4" ViewCount="" Body="&lt;p&gt;The latest design patterns tend to be so much snake oil.  As has been said previously in this question, overuse of design patterns can harm a design much more than help it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I hear one more person saying that &quot;everyone should be using IOC&quot; (or some similar pile of turd), I think I'll be forced to hunt them down and teach them the error of their ways.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-09T15:51:34.473" />
  <row Id="31292" PostTypeId="2" ParentId="31104" CreationDate="2009-01-09T17:31:39.043" Score="4" ViewCount="" Body="&lt;p&gt;Upfront design - don't just start writing code because you're excited to write code&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen SO many apps that are poorly designed because the developer was so excited to get coding that they just opened up a white page and started writing code. I understand that things change during the development lifecycle. However, it's difficult working with applications that have several different layouts and development methodologies from form to form, method to method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's difficult to hit the target your application is to handle if you haven't clearly defined the task and how you plan to code it. Take some time (and not just 5 minutes) and make sure you've laid out as much of it has you can before you start coding. This way you'll avoid a spaghetti mess that your replacement will have to support.&lt;/p&gt;&#xA;" OwnerUserId="11813" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-09T17:31:39.043" />
  <row Id="31293" PostTypeId="2" ParentId="31104" CreationDate="2009-01-09T17:52:01.297" Score="46" ViewCount="" Body="&lt;p&gt;Avoid indentation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use early returns, continues or breaks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;instead of:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (passed != NULL)&#xA;{&#xA;   for(x in list)&#xA;   {&#xA;      if (peter)&#xA;      {&#xA;          print &quot;peter&quot;;&#xA;          more code.&#xA;          ..&#xA;          ..&#xA;      }&#xA;      else&#xA;      {&#xA;          print &quot;no peter?!&quot;&#xA;      }&#xA;   }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;do:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (pPassed==NULL)&#xA;    return false;&#xA;&#xA;for(x in list)&#xA;{&#xA;   if (!peter)&#xA;   {&#xA;       print &quot;no peter?!&quot;&#xA;       continue;&#xA;   }&#xA;&#xA;   print &quot;peter&quot;;&#xA;   more code.&#xA;   ..&#xA;   ..&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-09T17:52:01.280" CommentCount="7" />
  <row Id="31294" PostTypeId="2" ParentId="31104" CreationDate="2009-01-09T20:42:05.883" Score="22" ViewCount="" Body="&lt;p&gt;I have a few... there's exceptions to everything so these are not hard and fast but they do apply in most cases&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Nobody cares if your website validates, is XHTML strict, is standards-compliant, or has a W3C badge.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may earn you some high-fives from fellow Web developers, but the rest of people looking at your site could give a crap whether you've validated your code or not. the vast majority of Web surfers are using IE or Firefox, and since both of those browsers are forgiving of nonstandards, nonstrict, invalidated HTML then you really dont need to worry about it. If you've built a site for a car dealer, a mechanic, a radio station, a church, or a local small business, how many people in any of those businesses' target demographics do you think care about valid HTML? I'd hazard a guess it's pretty close to 0. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Most open-source software is useless, overcomplicated crap.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let me install this nice piece of OSS I've found. It looks like it should do exactly what I want! Oh wait, first I have to install this other window manager thingy. OK. Then i need to get this command-line tool and add it to my path. Now I need the latest runtimes for X, Y, and Z. now i need to make sure i have these processes running. ok, great... its all configured. Now let me learn a whole new set of commands to use it. Oh cool, someone built a GUI for it. I guess I don't need to learn these commands. Wait, I need this library on here to get the GUI to work. Gotta download that now. ok, now its working...crap, I can't figure out this terrible UI. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;sound familiar? OSS is full of complication for complication's sake, tricky installs that you need to be an expert to perform, and tools that most people wouldn't know what to do with anyway. So many projects fall by the wayside, others are so niche that very few people would use them, and some of the decent ones (FlowPlayer, OSCommerce, etc) have such ridiculously overcomplicated and bloated source code that it defeats the purpose of being able to edit the source. You can edit the source... if you can figure out which of the 400 files contains the code that needs modification. You're really in trouble when you learn that its all 400 of them. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-09T20:42:05.883" CommentCount="5" />
  <row Id="31295" PostTypeId="2" ParentId="31104" CreationDate="2009-01-09T22:37:04.297" Score="3" ViewCount="" Body="&lt;p&gt;Believe it or not, my belief that, &lt;strong&gt;in an OO language, most of the (business logic) code that operates on a class's data should be in the class itself&lt;/strong&gt; is heresy on my team.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-09T22:37:04.297" CommentCount="3" />
  <row Id="31296" PostTypeId="2" ParentId="31104" CreationDate="2009-01-09T22:59:30.427" Score="45" ViewCount="" Body="&lt;p&gt;I'm probably gonna get roasted for this, but:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Making invisible characters syntactically significant in python was a bad idea&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's distracting, causes lots of subtle bugs for novices and, in my opinion, wasn't really needed. About the only code I've ever seen that didn't voluntarily follow some sort of decent formatting guide was from first-year CS students. And even if code doesn't follow &quot;nice&quot; standards, there are plenty of tools out there to coerce it into a more pleasing shape. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-09T22:59:30.427" CommentCount="10" />
  <row Id="31297" PostTypeId="2" ParentId="31104" CreationDate="2009-01-09T23:03:22.323" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Opinion: Duration in the development field does not always mean the same as experience.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many trades look at &quot;years of experience&quot; in a language.  Yes, 5 years of C# can make sense since you may learn new tricks and what not. However, if you are with the company and maintaining the same code base for a number of years, I feel as if you are not gaining the amount of exposure to different situations as a person who works on different situations and client needs.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I once interviewed a person who prided himself on having 10 years of programming experience and worked with VB5, 6, and VB.Net...all in the same company during that time.  After more probing, I found out that while he worked with all of those versions of VB, he was only upgrading and constantly maintaining his original VB5 app.  Never modified the architecture and let the upgrade wizards do their thing.  I have interviewed people who only have 2 years in the field but have worked on multiple projects that have more &quot;experience&quot; than him.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-09T23:03:22.323" />
  <row Id="31298" PostTypeId="2" ParentId="31104" CreationDate="2009-01-10T00:08:38.777" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;1. You should not follow web standards - all the time.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2. You don't need to comment your code.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as it's understandable by a stranger.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-10T00:08:38.777" />
  <row Id="31299" PostTypeId="2" ParentId="31104" CreationDate="2009-01-10T00:23:19.807" Score="6" ViewCount="" Body="&lt;p&gt;As there are hundreds of answers to this mine will probably end up unread, but here's my pet peeve anyway.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;If you're a programmer then you're most likely awful at Web Design/Development&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;This website is a phenomenal resource for programmers, but an absolutely awful place to come if you're looking for XHTML/CSS help. Even the good Web Developers here are handing out links to resources that were good in the 90's!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, XHTML and CSS are simple to learn. However, you're not just learning a language! You're learning how to use it well, and very few designers and developers can do that, let alone programmers. It took me ages to become a capable designer and even longer to become a good developer. I could code in HTML from the age of 10 but that didn't mean I was good. Now I am a capable designer in programs like Photoshop and Illustrator, I am perfectly able to write a good website in Notepad and am able to write basic scripts in several languages. Not only that but I have a good nose for Search Engine Optimisation techniques and can easily tell you where the majority of people are going wrong (hint: get some good content!). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, this place is a terrible resource for advice on web standards. You should NOT just write code to work in the different browsers. You should ALWAYS follow the standard to future-proof your code. More often than not the fixes you use on your websites will break when the next browser update comes along. Not only that but the good browsers follow standards anyway. Finally, the reason IE was allowed to ruin the Internet was because YOU allowed it by coding your websites for IE! If you're going to continue to do that for Firefox then we'll lose out yet again!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you think that table-based layouts are as good, if not better than CSS layouts then you should not be allowed to talk on the subject, at least without me shooting you down first. Also, if you think W3Schools is the best resource to send someone to then you're just plain wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're new to Web Design/Development don't bother with this place (it's full of programmers, not web developers). Go to a good Web Design/Development community like &lt;a href=&quot;http://www.sitepoint.com/forums&quot; rel=&quot;nofollow&quot;&gt;SitePoint&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="1037" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-10T00:23:19.807" CommentCount="2" />
  <row Id="31300" PostTypeId="2" ParentId="31104" CreationDate="2009-01-10T00:25:37.680" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Sometimes jumping on the bandwagon is ok&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I get tired of people exhibiting &quot;grandpa syndrome&quot; (&quot;You kids and your newfangled Test Driven Development.  &lt;em&gt;Every&lt;/em&gt; big technology that's come out in the last decade has sucked.  Back in my day, we wrote &lt;em&gt;real&lt;/em&gt; code!&quot;... you get the idea).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes things that are popular are popular for a reason.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-10T00:25:37.680" CommentCount="6" />
  <row Id="31301" PostTypeId="2" ParentId="31104" CreationDate="2009-01-10T07:41:32.713" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Women make better programmers than men.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The female programmers I've worked with don't get wedded to &quot;their&quot; code as much as men do. They're much more open to criticism and new ideas.&lt;/p&gt;&#xA;" OwnerUserId="8767" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-10T07:41:32.700" CommentCount="5" />
  <row Id="31302" PostTypeId="2" ParentId="31104" CreationDate="2009-01-10T10:08:35.430" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If you can only think of one way to do it, don't do it.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether it's an interface layout, a task flow, or a block of code, just &lt;strong&gt;stop&lt;/strong&gt;.  Do something to collect more ideas, like asking other people how they would do it, and don't go back to implementing until you have at least three completely different ideas and at least one crisis of confidence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally, when I think something can only be done one way, or think only one method has any merit, it's because I haven't thought through the factors which ought to be influencing the design thoroughly enough.  If I had, some of them would clearly be in conflict, leading to a mess and thus an actual decision rather than a rote default.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Being a solid programmer does not make you a solid interface designer&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And following all of the interface guidelines in the world will only begin to help.  If it's even humanly possible...  There seems to be a peculiar addiction to making things 'cute' and 'clever'.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-10T10:08:35.430" />
  <row Id="31303" PostTypeId="2" ParentId="31104" CreationDate="2009-01-11T18:10:37.920" Score="4" ViewCount="" Body="&lt;p&gt;When someone dismisses an entire programming language as &quot;clumsy&quot;, it usually turns out he doesn't know how to use it.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-11T18:10:37.920" />
  <row Id="31304" PostTypeId="2" ParentId="31104" CreationDate="2009-01-11T20:23:45.810" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Separation of concerns is evil :)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only separate concerns if you have good reason for it. Otherwise, don't separate them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have encountered too many occasions of separation only for the sake of separation. The second half of Dijkstra's statement &quot;Minimal coupling, maximal cohesion&quot; should not be forgotten. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Happy to discuss this further.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-11T20:23:45.810" CommentCount="2" />
  <row Id="31305" PostTypeId="2" ParentId="31104" CreationDate="2009-01-12T09:04:05.603" Score="6" ViewCount="" Body="&lt;p&gt;2 space indent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No discussion. It just has to be that way ;-)&lt;/p&gt;&#xA;" OwnerUserId="20448" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-12T09:04:05.603" CommentCount="3" />
  <row Id="31306" PostTypeId="2" ParentId="31104" CreationDate="2009-01-12T15:46:36.243" Score="5" ViewCount="" Body="&lt;p&gt;I hate universities and institutes offering short courses for teaching programming to new comers. It is outright disgrace and contempt for the art&lt;sup&gt;1&lt;/sup&gt; and science of programming. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They start teaching C, Java, VB (disgusting) to the people without good grasp on hardware and fundamental principals of computers.&#xA;The should first be taught about the &lt;i&gt;MACHINE&lt;/i&gt; by books like Morris Mano's &lt;i&gt;Computer System Architecture&lt;/i&gt; and then taught &lt;em&gt;the concept of instructing machine to solve problems&lt;/em&gt; instead of etching semantics and syntax of one programming language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also I don't understand government schools, colleges teaching children basics of computers using commercial operating systems and softwares. At least in my country (India) not many students afford to buy operating systems and even discounted office suits let alone the development software  juggernaut (compilers, IDEs etc). This prompts theft and piracy and make this act of copying and stealing software from their institutes' libraries a justified act.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again they are taught to use some products not the fundamental ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about it if you were taught only that 2x2 is 4 and not the concept of multiplication?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or if you were taught now to measure the length of pole inclined to some compound wall of your school but not &lt;i&gt;the Pythagoras theorem&lt;/i&gt;&lt;/p&gt;&#xA;" OwnerUserId="754" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-12T15:46:36.243" />
  <row Id="31307" PostTypeId="2" ParentId="31104" CreationDate="2009-01-12T16:18:35.167" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Programmers take their (own little limited stupid) programming language as a sacrosanct religion.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its so funny how programmers take these discussions almost like religious believers do: no critics allowed, (often) no objective discussion, (very often) arguing based upon very limited  or absent knowledge and information. For a confirmation, just read the previous answers, and especially the comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also funny and another confirmation: by definition of the question &quot;give me a controversial opinion&quot;, any controversion opinion should NOT qualify for negative votes - actually the opposite: the more controversial, the better. But how do our programmers react: like Pavlov's dogs, voting negative on disliked opinions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: I upvoted some others for fairness.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-12T16:18:35.167" CommentCount="2" />
  <row Id="31308" PostTypeId="2" ParentId="31104" CreationDate="2009-01-12T20:30:22.600" Score="3" ViewCount="" Body="&lt;p&gt;Software engineers should not work with computer science guys&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Their differences :&#xA;SEs care about code reusability, while CSs just suss out code&#xA;SEs care about performance, while CSs just want to have things done now&#xA;SEs care about whole structure, while CSs do not give a toss&#xA;...&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-12T20:30:22.600" CommentCount="3" />
  <row Id="31309" PostTypeId="2" ParentId="31104" CreationDate="2009-01-12T22:49:45.203" Score="29" ViewCount="" Body="&lt;p&gt;&lt;b&gt;Cowboy coders get more done.&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I spend my life in the startup atmosphere. Without the Cowboy coders we'd waste endless cycles making sure things are done &quot;right&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As we know it's basically impossible to forsee all issues. The Cowboy coder runs head-on into these problems and is forced to solve them much more quickly than someone who tries to forsee them all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Though, if you're Cowboy coding you had better refactor that spaghetti before someone else has to maintain it. ;) The best ones I know use continuous refactoring. They get a ton of stuff done, don't waste time trying to predict the future, and through refactoring it becomes maintainable code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Process always gets in the way of a good Cowboy, no matter how Agile it is.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-12T22:49:45.203" CommentCount="8" />
  <row Id="31310" PostTypeId="2" ParentId="31104" CreationDate="2009-01-13T15:58:49.277" Score="1" ViewCount="" Body="&lt;p&gt;USE of Desgin patterns and documentation &lt;/p&gt;&#xA;&#xA;&lt;p&gt;in web devlopment whats use of these things never felt any use of it &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-13T15:58:49.277" />
  <row Id="31311" PostTypeId="2" ParentId="31104" CreationDate="2009-01-14T01:41:32.253" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Member variables should never be declared private (in java)&lt;/strong&gt;   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you declare something private, you prevent any future developer from deriving from your class and extending the functionality.  Essentially, by writing &quot;private&quot; you are implying that you know more now about how your class can be used than any future developer might ever know.     Whenever you write &quot;private&quot;, you ought to write &quot;protected&quot; instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Classes should never be declared final (in java)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similarly, if you declare a class as final (which prevents it from being extended -- prevents it from being used as a base class for inheritance), you are implying that you know more than any future programmer might know, about what is the right and proper way to use your class.   This never a good idea.  You don't know everything.  Someone might come up with a perfectly suitable way to extend your class that you didn't think of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Java Beans are a terrible idea.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The java bean convention -- declaring all members as private and then writing  get() and set() methods for every member -- forces programmers to write boilerplate, error-prone, tedious, and lengthy code, where no code is needed.   Just make public members variables public!  Trust in your ability to change it later, if you need to change the implementation (hint: 99% of the time, you never will).  &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-14T01:41:32.253" CommentCount="1" />
  <row Id="31312" PostTypeId="2" ParentId="31104" CreationDate="2009-01-14T02:59:36.510" Score="10" ViewCount="" Body="&lt;p&gt;Assembly is the best first programming language.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-14T02:59:36.493" CommentCount="2" />
  <row Id="31313" PostTypeId="2" ParentId="31104" CreationDate="2009-01-14T14:30:04.417" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.developerdotstar.com/mag/articles/reeves_design_main.html&quot; rel=&quot;nofollow&quot;&gt;Code as Design: Three Essays by Jack W. Reeves&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The source code of any software is its most accurate design document. Everything else (specs, docs, and sometimes comments) is either incorrect, outdated or misleading.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Guaranteed to get you fired pretty much everywhere.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-14T14:30:04.400" />
  <row Id="31314" PostTypeId="2" ParentId="31104" CreationDate="2009-01-15T07:52:18.697" Score="99" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Lazy Programmers are the Best Programmers&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lazy programmer most often finds ways to decrease the amount of time spent writing code (especially a lot of similar or repeating code). This often translates into tools and workflows that other developers in the company/team can benefit from.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As the developer encounters similar projects he may create tools to bootstrap the development process (e.g. creating a DRM layer that works with the company's database design paradigms).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, developers such as these often use some form of code generation. This means all bugs of the same type (for example, the code generator did not check for null parameters on all methods) can often be fixed by fixing the generator and not the 50+ instances of that bug.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lazy programmer may take a few more hours to get the first product out the door, but will save you months down the line.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-15T07:52:18.697" CommentCount="12" />
  <row Id="31315" PostTypeId="2" ParentId="31104" CreationDate="2009-01-16T08:54:11.317" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Tcl/Tk is the best GUI language/toolkit combo ever&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may lack specific widgets and be less good-looking than the new kids on the block, but its model is elegant and so easy to use that one can build working GUIs faster &lt;strong&gt;by typing commands interactively&lt;/strong&gt; than by using a visual interface builder. Its expressive power is unbeatable: other solutions (Gtk, Java, .NET, MFC...) typically require ten to one hundred LOC to get the same result as a Tcl/Tk one-liner. All without even sacrificing readability or stability.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;pack [label .l -text &quot;Hello world!&quot;] [button .b -text &quot;Quit&quot; -command exit]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-16T08:54:11.317" CommentCount="5" />
  <row Id="31316" PostTypeId="2" ParentId="31104" CreationDate="2009-01-16T09:59:08.423" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Design patterns are a waste of time when it comes to software design and development.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong, design patterns are useful but mainly as a communication vector. They can express complex ideas very concisely: factory, singleton, iterator...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But they shouldn't serve as a development method. Too often developers architect their code using a flurry of design pattern-based classes where a more concise design would be better, both in term of readability and performance. All that with the illusion that individual classes could be reused outside their domain. &lt;strong&gt;If a class is not designed for reuse or isn't part of the interface, then it's an implementation detail.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Design patterns should be used to put names on organizational features, not to dictate the way code must be written.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(It was supposed to be controversial, remember?)&lt;/em&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-16T09:59:08.423" />
  <row Id="31317" PostTypeId="2" ParentId="31104" CreationDate="2009-01-16T10:03:27.417" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Managers know everything&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's been my experience that managers didn't get there by knowing code usually.  No matter what you tell them it's too long, not right or too expensive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And another that follows on from the first:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;There's never time to do it right but there's always time to do it again&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good engineer friend once said that in anger to describe a situation where management halved his estimates, got a half-assed version out of him  then gave him twice as much time to rework it because it failed.  It's a fairly regular thing in the commercial software world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And one that came to mind today while trying to configure a router with only a web interface:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Web interfaces are for suckers&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The CLI on the previous version of the firmware was oh so nice.  This version has a web interface, which attempts to hide all of the complexity of networking from clueless IT droids, and can't even get VLANs correct.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-16T10:03:27.417" CommentCount="2" />
  <row Id="31318" PostTypeId="2" ParentId="31104" CreationDate="2009-01-16T15:03:19.430" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A good developer needs to know more than just how to code&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-16T15:03:19.430" CommentCount="3" />
  <row Id="31319" PostTypeId="2" ParentId="31104" CreationDate="2009-01-16T15:23:02.197" Score="8" ViewCount="" Body="&lt;h2&gt;Write your spec when you are finished coding. (if at all)&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;In many projects I have been involved in, a great deal of effort was spent at the outset writing a &quot;spec&quot; in Microsoft Word. This process culminated in a &quot;sign off&quot; meeting when the big shots bought in on the project, and after that meeting nobody ever looked at this document again. These documents are a complete waste of time and don't reflect how software is actually designed. This is not to say there are not other valuable artifacts of application design. They are usually contained on index cards, snapshots of whiteboards, cocktail napkins and other similar media that provide a kind of timeline for the app design. These are usually are the real specs of the app. If you are going to write a Word document, (and I am not particularly saying you should) do it at the end of the project. At least it will accurately represent what has been done in the code and might help someone down the road like the the QA team or the next version developers.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-16T15:23:02.197" CommentCount="3" />
  <row Id="31320" PostTypeId="2" ParentId="31104" CreationDate="2009-01-17T14:08:51.940" Score="32" ViewCount="" Body="&lt;p&gt;It's a good idea to keep optimisation in mind when developing code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whenever I say this, people always reply: &quot;premature optimisation is the root of all evil&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I'm not saying optimise before you debug.  I'm not even saying optimise ever, but when you're designing code, bear in mind the possibility that this might become a bottleneck, and write it so that it will be possible to refactor it for speed, without tearing the API apart.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hugo&lt;/p&gt;&#xA;" OwnerUserId="12470" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-17T14:08:51.940" CommentCount="1" />
  <row Id="31321" PostTypeId="2" ParentId="31104" CreationDate="2009-01-18T09:38:08.693" Score="3" ViewCount="" Body="&lt;p&gt;What strikes me as amusing about this question is that I've just read the first page of answers, and so far, I haven't found a single controversial opinion. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps that says more about the way stackoverflow generates consensus than anything else. Maybe I should have started at the bottom. :-)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-18T09:38:08.693" CommentCount="3" />
  <row Id="31322" PostTypeId="2" ParentId="31104" CreationDate="2009-01-18T10:39:08.570" Score="10" ViewCount="" Body="&lt;p&gt;VB 6 could be used for good as well as evil. It was a Rapid Application Development environment in a time of over complicated coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have hated VB vehemently in the past, and still mock VB.NET (probably in jest) as a Fisher Price language due to my dislike of classical VB, but in its day, nothing could beat it for getting the job done.&lt;/p&gt;&#xA;" OwnerUserId="3946" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-18T10:39:08.570" />
  <row Id="31323" PostTypeId="2" ParentId="31104" CreationDate="2009-01-20T21:16:36.437" Score="1" ViewCount="" Body="&lt;p&gt;Haven't tested it yet for controversy, but there may be potential:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best line of code is the one you never wrote.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-20T21:16:36.437" CommentCount="1" />
  <row Id="31324" PostTypeId="2" ParentId="31104" CreationDate="2009-01-21T23:16:22.793" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Dependency Management Software Does More Harm Than Good&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've worked on Java projects that included upwards of a hundred different libraries. In most cases, each library has its own dependencies, and those dependent libraries have their own dependencies too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software like Maven or Ivy supposedly &quot;manage&quot; this problem by automatically fetching the correct version of each library and then recursively fetching all of its dependencies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Problem solved, right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Downloading libraries is the &lt;strong&gt;easy&lt;/strong&gt; part of dependency management. The hard part is creating a mental model of the software, and how it interacts with all those libraries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My unpopular opinion is this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't verbally explain, off the top of your head, the basic interactions between all the libraries in your project, you should eliminate dependencies until you can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Along the same lines, if it takes you longer than ten seconds to list all of the libraries (and their methods) invoked either directly or indirectly from one of your functions, then you are doing a poor job of managing dependencies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should be able to easily answer the question &quot;which parts of my application actually depend on library XYZ?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The current crop of dependency management tools do more harm than good, because they make it easy to create impossibly-complicated dependency graphs, and they provide virtually no functionality for reducing dependencies or identifying problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen developers include 10 or 20 MB worth of libraries, introducing thousands of dependent classes into the project, just to eliminate a few dozen lines of simple custom code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using libraries and frameworks can be good. But there's always a &lt;strong&gt;cost&lt;/strong&gt;, and tools which obscure that cost are inherently problematic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Moreover, it's sometimes (note: certainly not always) better to reinvent the wheel by writing a few small classes that implement &lt;strong&gt;exactly&lt;/strong&gt; what you need than to introduce a dependency on a large general-purpose library.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-21T23:16:22.793" CommentCount="1" />
  <row Id="31325" PostTypeId="2" ParentId="31104" CreationDate="2009-01-21T23:28:02.677" Score="4" ViewCount="" Body="&lt;p&gt;There are some (very few) legitimate uses for goto (particularly in C, as a stand-in for exception handling).&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-21T23:28:02.677" CommentCount="1" />
  <row Id="31326" PostTypeId="2" ParentId="31104" CreationDate="2009-01-21T23:31:09.440" Score="4" ViewCount="" Body="&lt;p&gt;Inversion of control does not eliminate dependencies, but it sure does a great job of hiding them.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-21T23:31:09.440" />
  <row Id="31327" PostTypeId="2" ParentId="31104" CreationDate="2009-01-22T07:07:24.887" Score="71" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Objects should never be in an invalid state&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, so many of the ORM framework mandate zero arguments constructors for all entity classes, using setters to populate the member variables. In those cases, it's very difficult to know which setters must be called in order to construct a valid object.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;MyClass c = new MyClass(); // Object in invalid state. Doesn't have an ID.&#xA;c.setId(12345); // Now object is valid.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In my opinion, it should be &lt;em&gt;impossible&lt;/em&gt; for an object to ever find itself in an invalid state, and the class's API should actively enforce its class invariants after every method call.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Constructors and mutator methods should atomically transition an object from one valid state to another. This is much better:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;MyClass c = new MyClass(12345); // Object starts out valid. Stays valid.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;As the consumer of some library, it's a huuuuuuge pain to keep track of whether all the right setters have been invoked before attempting to use an object, since the documentation usually provides no clues about the class's contract.&lt;/p&gt;&#xA;" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-22T10:32:37.850" LastActivityDate="2011-01-22T10:32:37.850" CommunityOwnedDate="2009-01-22T07:07:24.887" CommentCount="14" />
  <row Id="31328" PostTypeId="2" ParentId="31104" CreationDate="2009-01-22T14:22:55.927" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Sometimes it's appropriate to swallow an exception.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For UI bells and wistles, prompting the user with an error message is interuptive, and there is ussually nothing for them to do anyway.  In this case, I just log it, and deal with it when it shows up in the logs.&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-22T14:22:55.927" CommentCount="1" />
  <row Id="31329" PostTypeId="2" ParentId="31104" CreationDate="2009-01-22T17:58:10.610" Score="34" ViewCount="" Body="&lt;h2&gt;Don't write code, remove code!&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;As a smart teacher once told me: &quot;Don't write code, Writing code is bad, Removing code is good. and if you have to write code - write small code...&quot;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-22T17:58:10.610" />
  <row Id="31330" PostTypeId="2" ParentId="31104" CreationDate="2009-01-24T06:14:05.710" Score="24" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Microsoft Sucks&lt;/strong&gt;&lt;br /&gt;&#xA;I don't think I need to say more.&lt;/p&gt;&#xA;" OwnerUserId="345" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-24T06:14:05.697" CommentCount="5" />
  <row Id="31331" PostTypeId="2" ParentId="31104" CreationDate="2009-01-25T14:08:16.867" Score="7" ViewCount="" Body="&lt;p&gt;That best practices are a hazard because they ask us to substitute slogans for thinking.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-25T14:08:16.853" CommentCount="2" />
  <row Id="31332" PostTypeId="2" ParentId="31104" CreationDate="2009-01-25T18:03:51.370" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Code Generation is bad&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hate languages that require you to make use of code generation (or copy&amp;amp;paste) for simple things, like JavaBeans with all their Getters and Setters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C#'s AutoProperties are a step in the right direction, but for nice DTOs with Fields, Properties and Constructor parameters you still need a lot of redundancy.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-25T18:03:51.353" CommentCount="1" />
  <row Id="31333" PostTypeId="2" ParentId="31104" CreationDate="2009-01-26T06:37:51.097" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Good Performance VS Elegant Design&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are not mutually exclusive but I can't stand over-designed class structures/frameworks that completely have no clue about performance. I don't need to have a string of new This(new That(new Whatever())); to create an object that will tell me it's 5 AM in the morning oh by the way, it's 217 days until Obama's birthday, and the weekend is 2 days away. I only wanted to know if the gym was open.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having balance between the 2 are crucial. The code needs to get nasty when you need to pump out all the processor do something intensive such as reading terabytes of data. Save the elegance for the places that consume the 10% of resources which is probably more than 90% of the code.&lt;/p&gt;&#xA;" OwnerUserId="3487" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-26T06:37:51.097" CommentCount="2" />
  <row Id="31334" PostTypeId="2" ParentId="31104" CreationDate="2009-01-26T06:43:18.793" Score="1" ViewCount="" Body="&lt;p&gt;Controversial to self, because some things are better be left unsaid, so you won't be painted by others as &lt;strong&gt;too egotist&lt;/strong&gt;.  However, here it is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;If it is to be, it begins with me&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-26T06:43:18.777" />
  <row Id="31335" PostTypeId="2" ParentId="31104" CreationDate="2009-01-26T07:00:53.720" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Programming is so easy a five year old can do it.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming in and of itself is not hard, it's common sense. You are just telling a computer what to do.   You're not a genius, please get over yourself.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-26T07:00:53.720" CommentCount="11" />
  <row Id="31336" PostTypeId="2" ParentId="31104" CreationDate="2009-01-26T07:07:27.030" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If you need to read the manual, the software isn't good enough.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plain and simple :-)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-26T07:07:27.030" CommentCount="2" />
  <row Id="31337" PostTypeId="2" ParentId="31104" CreationDate="2009-01-26T14:08:33.310" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Microsoft Windows is the best platform for software development.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Reasoning:&lt;/strong&gt;&#xA;Microsoft spoils its developers with excellent and cheap development tools, the platform and its API's are well documented, the platform is evolving at a rappid rate which creates a lot of opportunities for developers, The OS has a large user base which is important for obvious commercial reasons, there is a big community of Windows developers, I haven't yet been fired for choosing Microsoft.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-26T14:08:33.293" CommentCount="5" />
  <row Id="31338" PostTypeId="2" ParentId="31104" CreationDate="2009-01-26T15:14:39.277" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Most developers don't have a clue&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yup .. there you go. I've said it. I find that from all the developers that I personally know .. just a handful are actually good. Just a handful understand that code should be tested ... that the Object Oriented approach to developing is actually there to help you. It frustrates me to no end that there are people who get the title of developer while in fact all they can do is copy and paste a bit of source code and then execute it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway ... I'm glad initiatives like stackoverflow are being started. It's good for developers to wonder. Is there a better way? Am I doing it correctly? Perhaps I could use this technique to speed things up, etc ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But nope ... the majority of developers just learn a language that they are required by their job and stick with it until they themselves become old and grumpy developers that have no clue what's going on. All they'll get is a big paycheck since they are simply older than you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ah well ... life is unjust in the IT community and I'll be taking steps to ignore such people in the future. Hooray!&lt;/p&gt;&#xA;" OwnerUserId="20626" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-26T15:14:39.277" CommentCount="1" />
  <row Id="31339" PostTypeId="2" ParentId="31104" CreationDate="2009-01-26T15:17:38.507" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Social skills matter more than technical skills&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Agreable but average programmers with good social skills will have a more successful carreer than outstanding programmers who are disagreable people. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-26T15:17:38.507" CommentCount="1" />
  <row Id="31340" PostTypeId="2" ParentId="31104" CreationDate="2009-01-26T15:47:21.847" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Software Development is a VERY small subset of Computer Science.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People sometimes seem to think the two are synonymous, but in reality there are so many aspects to computer science that the average developer rarely (if ever) gets exposed to.  Depending on one's career goals, I think there are a lot of CS graduates out there who would probably have been better off with some sort of Software Engineering education.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I value education highly, have a BS in Computer science and am pursuing a MS in it part time, but I think that many people who obtain these degrees treat the degree as a means to an end and benefit very little.  I know plenty of people who took the same Systems Software course I took, wrote the same assembler I wrote, and to this day see no value in what they did.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-26T15:47:21.830" CommentCount="1" />
  <row Id="31341" PostTypeId="2" ParentId="31104" CreationDate="2009-01-27T03:32:12.907" Score="33" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Source files are &lt;em&gt;SO&lt;/em&gt; 20th century.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Within the body of a function/method, it makes sense to represent procedural logic as linear text. Even when the logic is not strictly linear, we have good programming constructs (loops, if statements, etc) that allow us to cleanly represent non-linear operations using linear text.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But there is no reason that I should be required to divide my classes among distinct files or sort my functions/methods/fields/properties/etc in a particular order within those files. Why can't we just throw all those things within a big database file and let the IDE take care of sorting everything dynamically? If I want to sort my members by name then I'll click the member header on the members table. If I want to sort them by accessibility then I'll click the accessibility header. If I want to view my classes as an inheritence tree, then I'll click the button to do that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps classes and members could be viewed spatially, as if they were some sort of entities within a virtual world. If the programmer desired, the IDE could automatically position classes &amp;amp; members that use each other &lt;em&gt;near&lt;/em&gt; each other so that they're easy to find. Imaging being able to zoom in and out of this virtual world. Zoom all the way out and you can namespace galaxies with little class planets in them. Zoom in to a namespace and you can see class planets with method continents and islands and inner classes as orbitting moons. Zoom in to a method, and you see... the source code for that method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, my point is that in modern languages it doesn't matter what file(s) you put your classes in or in what order you define a class's members, so why are we still forced to use these archaic practices? Remember when Gmail came out and Google said &quot;search, don't sort&quot;? Well, why can't the same philosophy be applied to programming languages?&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-27T03:32:12.890" CommentCount="9" />
  <row Id="31342" PostTypeId="2" ParentId="31104" CreationDate="2009-01-27T10:06:14.623" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You can't measure productivity by counting lines of code.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everyone knows this, but for some reason the practice still persists!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-27T10:06:14.610" CommentCount="2" />
  <row Id="31343" PostTypeId="2" ParentId="31104" CreationDate="2009-01-27T16:12:52.450" Score="6" ViewCount="" Body="&lt;p&gt;I don't believe that any question related to optimization should be flooded with a chant of the misquoted &quot;Premature optimization is the root of all evil&quot;s because code that is optimized into obfuscation is what makes coding fun&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-01-27T16:12:52.433" />
  <row Id="31344" PostTypeId="2" ParentId="31104" CreationDate="2009-02-03T19:40:07.843" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Never implement anything as a singleton.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can decide not to construct more than one instance,&#xA;but always ensure you implementation can handle more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have yet to find any scenario where using a singleton &#xA;is actually the right thing to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got into some very heated discussions over this in the last few years,&#xA;but in the end I was always right.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-02-03T19:40:07.827" CommentCount="1" />
  <row Id="31345" PostTypeId="2" ParentId="31104" CreationDate="2009-02-04T00:09:08.393" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Premature optimization&lt;/strong&gt; is &lt;strong&gt;NOT&lt;/strong&gt; the root of all evil! Lack of proper planning is the root of all evil.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember the old naval saw &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Proper Planning Prevents P*ss Poor&#xA;  Performance!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-02-04T00:09:08.377" CommentCount="3" />
  <row Id="31346" PostTypeId="2" ParentId="31104" CreationDate="2009-02-04T22:43:02.310" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Useful and clean high-level abstractions are significantly more important than performance&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;one example:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Too often I watch peers spending hours writing over complicated Sprocs, or massive LINQ queries which return unintuitive anonymous types for the sake of &quot;performance&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They could achieve almost the same performance but with considerably cleaner, intuitive code.&lt;/p&gt;&#xA;" OwnerUserId="4696" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-02-04T22:43:02.310" />
  <row Id="31347" PostTypeId="2" ParentId="31104" CreationDate="2009-02-05T16:58:07.260" Score="0" ViewCount="" Body="&lt;p&gt;&quot;Don't call virtual methods from constructors&quot;.  This is only sometimes a PITA, but is only so because in C# I cannot decide at which point in a constructor to call my base class's constructor.  Why not?  The .NET framework allows it, so what good reason is there for C# to not allow it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Damn!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-02-05T16:58:07.260" />
  <row Id="31348" PostTypeId="2" ParentId="31104" CreationDate="2009-02-08T14:16:13.343" Score="5" ViewCount="" Body="&lt;p&gt;&quot;Everything should be made as simple as possible, but not simpler.&quot; - Einstein.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-02-08T14:16:13.343" CommentCount="1" />
  <row Id="31349" PostTypeId="2" ParentId="31104" CreationDate="2009-02-08T14:24:20.550" Score="1" ViewCount="" Body="&lt;p&gt;Here's mine:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;You don't need (textual) syntax to express objects and their behavior.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I subscribe to the ideas of Jonathan Edwards and his Subtext project - &lt;a href=&quot;http://alarmingdevelopment.org/&quot; rel=&quot;nofollow&quot;&gt;http://alarmingdevelopment.org/&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-02-08T14:24:20.550" CommentCount="1" />
  <row Id="31350" PostTypeId="2" ParentId="31104" CreationDate="2009-02-10T21:26:23.540" Score="25" ViewCount="" Body="&lt;p&gt;&lt;b&gt;The users aren't idiots -- you are.&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So many times I've heard developers say &quot;so-and-so is an idiot&quot; and my response is typically &quot;he may be an idiot but you allowed him to be one.&quot;&lt;/p&gt;&#xA;" OwnerUserId="4082" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-02-10T21:26:23.540" CommentCount="2" />
  <row Id="31351" PostTypeId="2" ParentId="31104" CreationDate="2009-02-11T10:18:47.333" Score="24" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;To produce great software, you need domain specialists as much as good developers.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="3318" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-02-11T10:18:47.333" CommentCount="3" />
  <row Id="31352" PostTypeId="2" ParentId="31104" CreationDate="2009-02-15T11:33:26.547" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&quot;Programmers are born, not made.&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-02-15T11:33:26.547" />
  <row Id="31353" PostTypeId="2" ParentId="31104" CreationDate="2009-02-17T05:48:10.680" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I believe in the &lt;a href=&quot;http://www.python.org/dev/peps/pep-0020/&quot; rel=&quot;nofollow&quot;&gt;Zen of Python&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-02-17T05:48:10.680" />
  <row Id="31354" PostTypeId="2" ParentId="31104" CreationDate="2009-02-19T21:48:09.263" Score="4" ViewCount="" Body="&lt;p&gt;That, erm, &lt;strong&gt;people should comment their code&lt;/strong&gt;? It seems to be pretty controversial around here...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The code only tells me &lt;em&gt;what actually it does&lt;/em&gt;; not what it was &lt;strong&gt;supposed to do&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The time I see a function calculating the &lt;a href=&quot;http://www.asx.com.au/products/futures/interest_rates/bondspread.htm&quot; rel=&quot;nofollow&quot;&gt;point value of an Australian Bond Future&lt;/a&gt; is the time I want to see some comments that indicate what the coder thought the calculation should be!&lt;/p&gt;&#xA;" OwnerUserId="12209" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-02-19T21:48:09.263" />
  <row Id="31355" PostTypeId="2" ParentId="31104" CreationDate="2009-02-20T07:55:49.647" Score="1" ViewCount="" Body="&lt;p&gt;People complain about removing 'goto' from the language. I happen to think that any sort of conditional jump is highly overrated and that 'if' 'while' 'switch' and a general purpose 'for' loop are highly overrated and should be used with extreme caution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everytime you make a comparison and conditional jump a tiny bit of complexity is added and this complexity adds up quickly once the call stack gets a couple hundred items deep.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My first choice is to avoid the conditional, but if it isn't practical my next preference is to keep the conditional complexity in constructors or factory methods.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clearly this isn't practical for many projects and algorithms (like control flow loops), but it is something I enjoy pushing on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;-Rick&lt;/p&gt;&#xA;" OwnerUserId="5993" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-02-20T07:55:49.647" />
  <row Id="31356" PostTypeId="2" ParentId="31104" CreationDate="2009-03-09T10:24:56.823" Score="11" ViewCount="" Body="&lt;h2&gt;Estimates are for me, not for you&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Estimates are a useful tool for me, as development line manager, to plan what my team is working on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are not a promise of a feature's delivery on a specific date, and they are not a stick for driving the team to work harder.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO if you force developers to commit to estimates you get the &lt;em&gt;safest possible figure&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance - &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I think a feature will probably take me around 5 days. There's a small chance of an issue that would make it take 30 days.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;If the estimates are just for planning then we'll all work to 5 days, and account for the small chance of an issue should it arise.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;However - if meeting that estimate is required as a promise of delivery what estimate do you think gets given?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If a developer's bonus or job security depends on meeting an estimate do you think they give their most accurate guess or the one they're most certain they will meet?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This opinion of mine is controversial with other management, and has been interpreted as me trying to worm my way out of having proper targets, or me trying to cover up poor performance. It's a tough sell every time, but one that I've gotten used to making.&lt;/p&gt;&#xA;" OwnerUserId="11187" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-03-09T10:24:56.823" CommentCount="1" />
  <row Id="31357" PostTypeId="2" ParentId="31104" CreationDate="2009-03-09T11:36:17.153" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Most Programmers are Useless at Programming&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(You did say 'controversial')&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was sat in my office at home pondering some programming problem and I ended up looking at my copy of 'Complete Spectrum ROM Disassembly' on my bookshelf and thinking:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;How many programmers today could write the code used in the Spectrum's ROM?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Spectrum, for those unfamiliar with it, had a Basic programming language that could do simple 2D graphics (lines, curves), file IO of a sort and floating point calculations including transendental functions all in 16K of Z80 code (a &amp;lt; 5Mhz 8bit processor that had no FPU or integer multiply). Most graduates today would have trouble writing a 'Hello World' program that was that small.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the problem is that the absolute number of programmers that could do that has hardly changed but as a percentage it is quickly approaching zero. Which means that the quality of code being written is decreasing as more sub-par programmers enter the field.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where I'm currently working, there are seven programmers including myself. Of these, I'm the only one who keeps up-to-date by reading blogs, books, this site, etc and doing programming 'for fun' at home (my wife is constantly amazed by this). There's one other programmer who is keen to write well structured code (interestingly, he did a lot of work using Delphi) and to refactor poor code. The rest are, well, not great. Thnking about it, you could describe them as 'brute force' programmers - will force inappropriate solutions until they work after a fashion (e.g. using C# arrays with repeated array.Resize to dynamically add items instead of using a List).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I don't know if the place I'm currently at is typical, although from my previous positions I would say it is. With the benefit of hindsight, I can see common patterns  that certainly didn't help any of the projects (lack of peer review of code for one).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, 5 out of 7 programmers are rubbish.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Skizz&lt;/p&gt;&#xA;" OwnerUserId="914" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-03-09T11:36:17.153" CommentCount="2" />
  <row Id="31358" PostTypeId="2" ParentId="31104" CreationDate="2009-03-09T11:55:18.947" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Automatic Updates Lead to Poorer Quality Software that is Less Secure&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;The Idea&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A system to keep users' software up to date with the latest bug fixes and security patches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;The Reality&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Products have to be shipped by fixed deadlines, often at the expense of QA. Software is then released with many bugs and security holes in order to meet the deadline in the knowledge that the 'Automatic Update' can be used to fix all the problems later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, the piece of software that really made me think of this is VS2K5. At first, it was great, but as the updates were installed the software is slowly getting worse. The biggest offence was the loss of macros - I had spent a long time creating a set of useful VBA macros to automate some of the code I write - but apparently there was a security hole and instead of fixing it the macro system was disabled. Bang goes a really useful feature: recording keystrokes and repeated replaying of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, if I were really paranoid, I could see Automatic Updates as a way to get people to upgrade their software by slowly installing code that breaks the system more often. As the system becomes more unreliable, users are tempted to pay out for the next version with the promise of better reliablity and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Skizz&lt;/p&gt;&#xA;" OwnerUserId="914" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-03-09T11:55:18.947" CommentCount="4" />
  <row Id="31359" PostTypeId="2" ParentId="31104" CreationDate="2009-03-13T04:32:24.800" Score="37" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It's fine if you don't know. But you're fired if you can't even google it.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Internet is a tool. It's not making you stupider if you're learning from it.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-03-13T04:32:24.800" />
  <row Id="31360" PostTypeId="2" ParentId="31104" CreationDate="2009-03-16T02:17:26.513" Score="1" ViewCount="" Body="&lt;p&gt;There is a difference between a programmer and a developer.  An example: a programmer writes pagination logic, a developer integrates pagination on a page.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-03-16T02:17:26.513" />
  <row Id="31361" PostTypeId="2" ParentId="31104" CreationDate="2009-03-16T02:43:22.317" Score="23" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The customer is not always right.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In most cases that I deal with, the customer is the product owner, aka &quot;the business&quot;.  All too often, developers just code and do not try to provide a vested stake in the product.  There is too much of a misconception that the IT Department is a &quot;company within a company&quot;, which is a load of utter garbage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel my role is that of helping the business express their ideas - with the mutual understanding that I take an interest in understanding the business so that I can provide the best experience possible.  And that route implies that there will be times that the product owner asks for something that he/she feels is the next revolution in computing leaving someone to either agree with that fact, or explain the more likely reason of why no one does something a certain way.  It is mutually beneficial, because the product owner understands the thought that goes into the product, and the development team understands that they do more than sling code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This has actually started to lead us down the path of &lt;strong&gt;increased&lt;/strong&gt; productivity.  How?  Since the communication has improved due to disagreements on both sides of the table, it is more likely that we come together earlier in the process and come to a mutually beneficial solution to the product definition.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-03-16T02:43:22.317" CommentCount="2" />
  <row Id="31362" PostTypeId="2" ParentId="31104" CreationDate="2009-03-16T04:04:32.077" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I can live without closures.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Looks like nowadays everyone and their mother want closures to be present in a language because it is the greatest invention since sliced bread. And I think it is just another hype. &lt;/p&gt;&#xA;" OwnerUserId="193" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-03-16T04:04:32.060" CommentCount="2" />
  <row Id="31363" PostTypeId="2" ParentId="31104" CreationDate="2009-03-17T13:59:16.130" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It IS possible to secure your application.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every time someone asks a question about how to either prevent users from pirating their app, or secure it from hackers, the answer is that it's impossible. Nonsense. If you truly believe that, then leave your doors unlocked (or just take them off the house!). And don't bother going to the doctor, either. You're mortal - trying to cure a sickness is just postponing the inevitable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just because someone &lt;em&gt;might&lt;/em&gt; be able to pirate your app or hack your system doesn't mean you shouldn't try to &lt;em&gt;reduce&lt;/em&gt; the number of people who will do so. What you're really doing is making it require more work to break in than the intruder/pirate is willing to do. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just like a deadbolt and ADT on your house will keep the burglars out, reasonable anti-piracy and security measures will keep hackers and pirates out of your way. Of course, the more tempting it would be for them to break in, the more security you need.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-03-17T13:59:16.117" CommentCount="2" />
  <row Id="31364" PostTypeId="2" ParentId="31104" CreationDate="2009-03-20T19:06:45.400" Score="1" ViewCount="" Body="&lt;p&gt;Logger configs are a waste of time.  Why have them if it means learning a new syntax, especially one that fails silently?  Don't get me wrong, I love good logging.  I love logger inheritance and adding formatters to handlers to loggers.  But why do it in a config file?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you want to make changes to logging code without recompiling?  Why?  If you put your logging code in a separate class, file, whatever, what difference will it make?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you want to distribute a configurable log with your product to clients?  Doesn't this just give too much information anyway?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most frustrating thing about it is that popular utilities written in a popular language tend to write good APIs in the format that language specifies.  Write a Java logging utility and I know you've generated the javadocs, which I know how to navigate.  Write a domain specific language for your logger config and what do we have?  Maybe there's documentation, but where the heck is it?  You decide on a way to organize it, and I'm just not interested in following your line of thought.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-03-20T19:06:45.400" CommentCount="2" />
  <row Id="31365" PostTypeId="2" ParentId="31104" CreationDate="2009-03-20T19:18:10.567" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Keep your business logic out of the DB. Or at a minimum, keep it very lean. Let the DB do what it's intended to do. Let code do what code is intended to do. Period.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If you're a one man show (basically, arrogant &amp;amp; egotistical, not listening to the wisdom of others just because you're in control), do as you wish. I don't believe you're that way since you're asking to begin with. But I've met a few when it comes to this subject and felt the need to specify.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;If you work with DBA's but do your own DB work, keep clearly defined partitions between your business objects, the gateway between them and the DB, and the DB itself.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;If you work with DBA's and aren't allowed to do your DB work (either by policy or because they're premadonnas), you're very close to being a fool placing your reliance on them to get anything done by putting code-dependant business logic in your DB entities (sprocs, functions, etc.).&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;If you're a DBA, make developers keep their DB entities clean &amp;amp; lean.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="11055" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-03-20T19:18:10.567" CommentCount="9" />
  <row Id="31366" PostTypeId="2" ParentId="31104" CreationDate="2009-03-20T19:31:08.913" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;MS Access* is a Real Development Tool and it can be used without shame by professional programmers&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just because a particular platform is a magnet for hacks and secretaries who think they are programmers shouldn't besmirch the platform itself.  Every platform has its benefits and drawbacks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers who bemoan certain platforms or tools or belittle them as &quot;toys&quot; are more likely to be far less knowledgable about their craft than their ego has convinced them they are. It is a definite sign of overconfidence for me to hear a programmer bash any environment that they have not personally used extensively enough to know well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;* Insert just about any maligned tool (VB, PHP, etc.) here.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-03-20T19:31:08.900" CommentCount="6" />
  <row Id="31367" PostTypeId="2" ParentId="31104" CreationDate="2009-03-20T20:10:32.813" Score="19" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;All source code and comments should be written in English&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing source code and/or comments in languages other than English makes it less reusable and more difficult to debug if you don't understand the language they are written in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Same goes for SQL tables, views, and columns, especially when abbrevations are used. If they aren't abbreviated, I might be able to translate the table/column name on-line, but if they're abbreviated all I can do is SELECT and try to decipher the results.&lt;/p&gt;&#xA;" OwnerUserId="4815" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-03-20T20:10:32.813" CommentCount="10" />
  <row Id="31368" PostTypeId="2" ParentId="31104" CreationDate="2009-03-24T09:31:12.317" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Enable multiple checkout&lt;/strong&gt;&#xA;If we improve enough discipline of the developers, we will get much more efficiency from this setting by auto merge of source control.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-03-24T09:31:12.317" CommentCount="2" />
  <row Id="31369" PostTypeId="2" ParentId="31104" CreationDate="2009-03-27T15:27:08.460" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A programming task is only fun while it's impossible, that is up til the point where you've convinced yourself you'll be able to solve it successfully.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This, I suppose, is why so many of my projects end up halfway finished in a folder called &quot;to&lt;code&gt;_&lt;/code&gt;be&lt;code&gt;_&lt;/code&gt;continued&quot;.&lt;/p&gt;&#xA;" OwnerUserId="4395" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-03-27T15:27:08.460" />
  <row Id="31370" PostTypeId="2" ParentId="31104" CreationDate="2009-03-27T16:59:45.647" Score="7" ViewCount="" Body="&lt;p&gt;My controversial opinion:&#xA;&lt;strong&gt;OO Programming is vastly overrated [and treated like a silver bullet], when it is really just &lt;em&gt;another&lt;/em&gt; tool in the toolbox, nothing more!&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-03-27T16:59:45.647" />
  <row Id="31371" PostTypeId="2" ParentId="31104" CreationDate="2009-03-30T12:13:35.547" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Developers overuse databases&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All too often, developers store data in a DBMS that should be in code or in file(s).  I've seen a one-column-one-row table that stored the 'system password' (separate from the user table.)  I've seen constants stored in databases.  I've seen databases that would make a grown coder cry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is some sort of mystical awe that the offending coders have of the DBMS--the database can do anything, but they don't know how it works.  DBAs practice a black art.  It also allows responsibility transference: &lt;em&gt;&quot;The database is too slow,&quot;&lt;/em&gt;  &lt;em&gt;&quot;The database did it&quot;&lt;/em&gt;  and other excuses are common.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Left unchecked, these coders go on develop databases-within-databases, systems-within-systems.  (There is a name to this anti-pattern, but I forget what it is.)&lt;/p&gt;&#xA;" OwnerUserId="15916" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-03-30T12:13:35.547" CommentCount="1" />
  <row Id="31372" PostTypeId="2" ParentId="31104" CreationDate="2009-03-30T12:57:22.740" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Most of programming job interview questions are pointless. Especially those figured out by programmers.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a common case, at least according to my &amp;amp; my friends experience, where a puffed up &#xA;programmer, asks you some tricky wtf he spent weeks googling for. The funny thing about that is, you get home and google it within a minute. It's like they often try to beat you up with their &lt;em&gt;sophisticated weapons&lt;/em&gt;, instead of checking if you'd be a comprehensive, pragmatic team player to work with. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similar stupidity IMO is when you're being asked for highly accessible fundamentals, like: &quot;Oh wait, let me see if you can pseudo-code that &lt;code&gt;insert_name_here&lt;/code&gt;-algorithm on a sheet of paper (sic!)&quot;. Do I really need to remember it while applying for a high-level programming job? Should I efficiently solve problems or puzzles?&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-03-30T12:57:22.740" CommentCount="2" />
  <row Id="31373" PostTypeId="2" ParentId="31104" CreationDate="2009-04-04T10:36:58.400" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;BAD IDE's make the programming language weak&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good programming IDEs really make working with certain languages easier and better to oversee. I have been bit spoiled in my professional carreer, the companies I worked for always had the latest Visual Studio's ready to use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For about 8 months, I have been doing a lot of Cocoa next to my work and the Xcode editor makes working with that language just way too difficult. Overloads are difficult to find and the overal way of handling open files just makes your screen really messy, really fast. It's really a shame, because Cocoa is a cool and powerful language to work with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ofcourse die-hard Xcode fans will now vote down my post, but there are so many IDEs that are really a lot better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;People making a switch to IT, who just shouldn't&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a copy/paste from a blog post of mine, made last year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;hr /&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The experiences I have are mainly about the dutch market, but they also might apply to any other market.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We (as I group all Software Engineers together) are currently in a market that might look very good for us. Companies are desperately trying to get Software Engineers (from now on SE) , no matter the price. If you switch jobs now, you can demand almost anything you want. In the Netherlands there is a trend now to even give 2 lease cars with a job, just to get you to work for them. How weird is that? How am I gonna drive 2 cars at the same time??&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course this sounds very good for us, but this also creates a very unhealthy situation..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&#xA;If you are currently working for a company which is growing fast and you are trying to attract more co-workers, to finally get some serious software development from the ground, there is no-one to be found without offering sky high salaries. Trying to find quality co-workers is very hard. A lot of people are attracted to our kind of work, because of the good salaries, but this also means that a lot of people without the right passion are entering our market.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Passion, yes, I think that is the right word. When you have passion for your job, your job won’t stop at 05:00 PM. You will keep refreshing all of your development RSS feeds all night. You will search the internet for the latest technologies that might be interesting to use at work. And you will start about a dozen new ‘promising’ projects a month, just to see if you can master that latest technology you just read about a couple of weeks ago (and find an useful way of actually using that technology).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without that passion, the market might look very nice (because of the cars, money and of course the hot girls we attract), but I don’t think it will be that interesting very long as, let’s say: fireman or fighter-pilot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might sound that I am trying to protect my own job here and partly that is true. But I am also trying to protect myself against the people I don’t want to work with. I want to have heated discussions about stuff I read about. I want to be able to spar with people that have the same ‘passion’ for the job as I have. I want colleagues that are working with me for the right reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where are those people I am looking for!!&lt;/p&gt;&#xA;" OwnerUserId="11589" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-04-04T10:36:58.383" CommentCount="2" />
  <row Id="31374" PostTypeId="2" ParentId="31104" CreationDate="2009-04-04T11:06:26.847" Score="3" ViewCount="" Body="&lt;p&gt;There are only 2 kinds of people who use C (/C++): Those who don't know any other language, and those who are too lazy to learn a new one.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-04-04T11:06:26.847" CommentCount="4" />
  <row Id="31375" PostTypeId="2" ParentId="31104" CreationDate="2009-04-04T11:48:35.403" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Schooling ruins creativity&lt;/strong&gt; *&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*&quot;Ruins&quot; means &quot;potentially ruins&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Granted, schooling is needed! Everyone needs to learn stuff before they can use it - however, all those great ideas you had about how to do a certain strategy for a specific business-field can easily be thrown into that deep brain-void of ours if we aren't careful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you learn new things and acquire new skills, you are also boxing your mindset on those new things and skills, since they apparently are &quot;the way to do it&quot;. Being humans, we tend to listen to authorities - being it a teacher, a consultant, a co-worker or even a site / forum you like. We should ALWAYS be aware of that &quot;flaw&quot; in how our mind works. Listen to what other people say, but don't take what they say for granted. Always keep a critic point-of-view on every new information you receive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of thinking &quot;Wow, that's smart. I will use that from now on&quot;, we should think &quot;Wow, that's smart. Now, how can I use that in my personal toolbox of skills and ideas&quot;.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-04-04T11:48:35.403" />
  <row Id="31376" PostTypeId="2" ParentId="31104" CreationDate="2009-04-04T12:29:21.670" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Commenting is bad&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whenever code needs comments to explain what it is doing, the code is too complicated. I try to always write code that is self-explanatory enough to not need very many comments.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-04-04T12:29:21.670" CommentCount="2" />
  <row Id="31377" PostTypeId="2" ParentId="31104" CreationDate="2009-04-04T13:20:02.563" Score="11" ViewCount="" Body="&lt;p&gt;I don't know if it's really controversial, but how about this: &lt;strong&gt;Method and function names are the best kind of commentary your code can have; if you find yourself writing a comment, turn the the piece of of code you're commenting into a function/method.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing this has the pleasant side-effect of forcing you to decompose your program well, avoids having comments that can quickly become out of sync with reality, gives you something you can grep the codebase for, and leaves your code with a fresh lemon odour.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-04-04T13:20:02.563" CommentCount="2" />
  <row Id="31378" PostTypeId="2" ParentId="31104" CreationDate="2009-04-08T12:30:38.357" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;HTML 5 + JavaScript will be the most used UI programming platform of the future.Flash,Silverlight,Java Applets etc. etc. are all going to die a silent death&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-04-08T12:30:38.357" CommentCount="4" />
  <row Id="31379" PostTypeId="2" ParentId="31104" CreationDate="2009-04-08T23:35:38.087" Score="15" ViewCount="" Body="&lt;p&gt;Programming is in its infancy.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even though programming languages and methodologies have been evolving very quickly for years now, we still have a long way to go.  The signs are clear:  &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Language Documentation is spread haphazardly across the internet (stackoverflow is helping here).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Languages cannot evolve syntactically without breaking prior versions.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Debugging is still often done with printf.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Language libraries or other forms of large scale code reuse are still pretty rare.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Clearly all of these are improving, but it would be nice if we all could agree that this is the beginning and not the end=).  &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-04-08T23:35:38.087" CommentCount="3" />
  <row Id="31380" PostTypeId="2" ParentId="31104" CreationDate="2009-04-16T16:18:15.423" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Nobody Cares About Your Code&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't work on a government security clearance project and you're not in finance, odds are nobody cares what you're working on outside of your company/customer base.  No one's sniffing packets or trying to hack into your machine to read your source code.  This doesn't mean we should be flippant about security, because there are certainly a number of people who just want to wreak general havoc and destroy your hard work, or access stored information your company may have such as credit card data or identity data in bulk.  However, I think people are overly concerned about other people getting access to your source code and taking your ideas. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-04-16T16:18:15.423" CommentCount="3" />
  <row Id="31381" PostTypeId="2" ParentId="31104" CreationDate="2009-04-18T23:29:12.170" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It takes less time to produce well-documented code than poorly-documented code&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I say &lt;em&gt;well-documented&lt;/em&gt; I mean with comments that communicate your intention clearly at every step. Yes, typing comments takes some time. And yes, your coworkers should all be smart enough to figure out what you intended just by reading your descriptive function and variable names and spelunking their way through all your executable statements. But it takes more of their time to do it than if you had just explained your intentions, and clear documentation is especially helpful when the logic of the code turns out to be wrong. Not that &lt;em&gt;your&lt;/em&gt; code would ever be wrong...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I firmly believe that if you time it from when you start a project to when you ship a defect-free product, writing well-documented code takes less time. For one thing, having to explain clearly what you're doing forces you to think it through clearly, and if you can't write a clear, concise explanation of what your code is accomplishing then it's probably not designed well. And for another purely selfish reason, well-documented and well-structured code is far easier to dump onto someone else to maintain - thus freeing the original author to go create the next big thing. I rarely if ever have to stop what I'm doing to explain how my code was meant to work because it's blatantly obvious to anyone who can read English (even if they can't read C/C++/C# etc.). And one more reason is, frankly, my memory just isn't that good! I can't recall what I had for breakfast yesterday, much less what I was thinking when I wrote code a month or a year ago. Perhaps your memory is far better than mine, but because I document my intentions I can quickly pick up wherever I left off and make changes without having to first figure out what I was thinking when I wrote it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's why I document well - not because I feel some noble calling to produce pretty code fit for display, and not because I'm a purist, but simply because end-to-end it lets me ship quality software in less time.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-04-18T23:29:12.157" CommentCount="2" />
  <row Id="31382" PostTypeId="2" ParentId="31104" CreationDate="2009-04-21T20:08:41.520" Score="2" ViewCount="" Body="&lt;p&gt;...That the &quot;clarification of ideas&quot; should not be the sole responsibility of the developer...and yes xkcd made me use that specific phrase...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To often we are handed project's that are specified in psuedo-meta-sorta-kinda-specific &quot;code&quot; if you want to call it that.  There are often product managers who draw up the initial requiements for a project and perform next to 0% of basic logic validation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not saying that the technical approach shouldn't be drawn up by the architect, or that the speicifc implemntation shouldn't be the responsibility of the developer, but rather that it should the requirement of the product manager to ensure that their requirements are logically feasible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I've been involved in too many &quot;simple&quot; projects that encounter a little scope creep here and there and then come across a &quot;small&quot; change or feature addition which contradicts previous requirements--whether implicitly or explicitly.  In these cases it is all too easy for the person requesting the borderline-impossible change to become enraged that developers can't make their dream a reality.&lt;/p&gt;&#xA;" OwnerUserId="5828" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-04-21T20:08:41.520" />
  <row Id="31383" PostTypeId="2" ParentId="31104" CreationDate="2009-04-25T21:37:45.253" Score="21" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A Good Programmer Hates Coding&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Similar to &quot;A Good Programmer is a Lazy Programmer&quot; and &quot;Less Code is Better.&quot; But by following this philosophy, I have managed to write applications which might otherwise use several times as much code (and take several times as much development time). In short: think before you code. Most of the parts of my own programs which end up causing problems later were parts that I actually enjoyed coding, and thus had too much code, and thus were poorly written. Just like this paragraph.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;A Good Programmer is a Designer&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found that programming uses the same concepts as design (as in, the same design concepts used in art). I'm not sure most other programmers find the same thing to be true; maybe it is a right brain/left brain thing. Too many programs out there are ugly, from their code to their command line user interface to their graphical user interface, and it is clear that the designers of these programs were not, in fact, designers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although correlation may not, in this case, imply causation, I've noticed that as I've become better at design, I've become better at coding. The same process of making things &lt;em&gt;fit&lt;/em&gt; and &lt;em&gt;feel right&lt;/em&gt; can and should be used in both places. If code doesn't &lt;em&gt;feel right&lt;/em&gt;, it will cause problems because either a) it is not right, or b) you'll assume it works in a way that &quot;feels right&quot; later, and it will then again be not right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Art and code are not on opposite ends of the spectrum; code can be used in art, and can itself be a form of art.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disclaimer: Not all of my code is pretty or &quot;right,&quot; unfortunately.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-04-25T21:37:45.253" CommentCount="2" />
  <row Id="31384" PostTypeId="2" ParentId="31104" CreationDate="2009-04-29T18:13:20.390" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Tools, Methodology, Patterns, Frameworks, etc. are no substitute for a properly trained programmer&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sick and tired of dealing with people (mostly managers) who think that the latest tool, methodology, pattern or framework is a silver bullet that will eliminate the need for hiring experienced developers to write their software.  Although, as a consultant who makes a living rescuing at-risk projects, I shouldn't complain.&lt;/p&gt;&#xA;" OwnerUserId="5825" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-04-29T18:13:20.390" CommentCount="1" />
  <row Id="31385" PostTypeId="2" ParentId="31104" CreationDate="2009-04-29T19:02:16.593" Score="2" ViewCount="" Body="&lt;p&gt;&quot;else&quot; is harmful.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-04-29T19:02:16.593" CommentCount="8" />
  <row Id="31386" PostTypeId="2" ParentId="31104" CreationDate="2009-04-29T19:03:57.960" Score="2" ViewCount="" Body="&lt;p&gt;That the &lt;a href=&quot;http://en.wikipedia.org/wiki/Law%5Fof%5FDemeter&quot; rel=&quot;nofollow&quot;&gt;Law of Demeter&lt;/a&gt;, considered in context of aggregation and composition, is an anti-pattern.&lt;/p&gt;&#xA;" OwnerUserId="14573" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-04-29T19:03:57.960" CommentCount="1" />
  <row Id="31387" PostTypeId="2" ParentId="31104" CreationDate="2009-04-29T19:04:37.053" Score="2" ViewCount="" Body="&lt;p&gt;I am of the opinion that there are too many people making programming decisions that shouldn't be worried about implementation.&lt;/p&gt;&#xA;" OwnerUserId="7348" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-04-29T19:04:37.053" />
  <row Id="31388" PostTypeId="2" ParentId="31104" CreationDate="2009-05-02T08:55:49.537" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If you want to write good software then step away from your computer&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go and hang out with the end users and the people who want and need the software. Only from them will you understand what your software needs to accomplish and how it needs to do that. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ask them what the love &amp;amp; hate about the existing processes. &lt;/li&gt;&#xA;&lt;li&gt;Ask them about the future of their processes, where it is headed.&lt;/li&gt;&#xA;&lt;li&gt;Hang out and see what they use now and figure out their usage patterns. You need to meet and match their usage expectations. See what else they use a lot, particularly if they like it and can use it efficiently. Match that.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The end user doesn't give a rat's how elegant your code is or what language it's in. If it works for them and they like using it, you win. If it doesn't make their lives easier and better - they hate it, you lose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Walk a mile in their shoes - then go write your code.&lt;/p&gt;&#xA;" OwnerUserId="10806" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-05-02T08:55:49.537" CommentCount="3" />
  <row Id="31389" PostTypeId="2" ParentId="31104" CreationDate="2009-05-02T09:29:07.897" Score="3" ViewCount="" Body="&lt;p&gt;Never let best practices or pattern obsessesion slave you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These should be guidelines, not laws set in stone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I really like the patterns, and the GoF book more or less says it that way too, stuff to browse through, providing a common jargon. Not a ball and chain gospel.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-05-02T09:29:07.897" />
  <row Id="31390" PostTypeId="2" ParentId="31104" CreationDate="2009-05-02T09:57:59.463" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Coding is an Art&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some people think coding is an art, and others think coding is a science.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;science&quot; faction argues that as the target is to obtain the optimal code for a situation, then coding is the science of studying how to obtain this optimal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;art&quot; faction argues there are many ways to obtain the optimal code for a situation, the process is full of subjectivity, and that to choose wisely based on your own skills and experience is an art.&lt;/p&gt;&#xA;" OwnerUserId="1479" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-05-02T09:57:59.450" CommentCount="1" />
  <row Id="31391" PostTypeId="2" ParentId="31104" CreationDate="2009-05-03T03:12:39.803" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If it's not native, it's not really programming&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By definition, a program is an entity that is run by the computer.  It talks directly to the CPU and the OS.  Code that does not talk directly to the CPU and the OS, but is instead run by some other program that does talk directly to the CPU and the OS, is not a program; it's a script.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This was just simple common sense, completely non-controversial, back before Java came out. Suddenly there was a scripting language with a large enough feature set to accomplish tasks that had previously been exclusively the domain of programs.  In response, Microsoft developed the .NET framework and some scripting languages to run on it, and managed to muddy the waters further by slowly reducing support for true programming among their development tools in favor of .NET scripting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even though it can accomplish a lot of things that you previously had to write programs for, managed code of any variety is still scripting, not programming, and &quot;programs&quot; written in it do and always will share the performance characteristics of scripts: they run more slowly and use up far more RAM than a real (native) program would take to accomplish the same task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People calling it programming are doing everyone a disservice by dumbing down the definition.  It leads to lower quality across the board.  If you try and make programming so easy that any idiot can do it, what you end up with are a whole lot of idiots who think they can program.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-05-03T03:12:39.790" CommentCount="12" />
  <row Id="31392" PostTypeId="2" ParentId="31104" CreationDate="2009-05-04T22:43:05.723" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Sometimes it's okay to use regexes to extract something from HTML.&lt;/strong&gt; Seriously, wrangle with an obtuse parser, or use a quick regex like &lt;code&gt;/&amp;lt;a href=&quot;([^&quot;]+)&quot;&amp;gt;/&lt;/code&gt;? It's not perfect, but your software will be up and running much quicker, and you can probably use yet another regex to verify that the match that was extracted is something that actually looks like a URL. Sure, it's hacky, and probably fails on several edge-cases, but it's good enough for most usage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Based on the massive volume of &quot;How use regex get HTML?&quot; questions that get posted here almost daily, and the fact that &lt;em&gt;every&lt;/em&gt; answer is &quot;Use an HTML parser&quot;, this should be controversial enough.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-05-04T22:43:05.723" />
  <row Id="31393" PostTypeId="2" ParentId="31104" CreationDate="2009-05-05T20:21:39.940" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Cleanup and refactoring are very important in (team) development&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of work in team development has to do with management. If you are using a bug tracker than it is only useful if someone takes the time to close/structure things and lower the amount of tickets. If you are using a source code management somebody needs to cleanup here and restructure the repository quite often. If you are programming than there should be people caring about refactoring of the lazy produced stuff of others. It is part of most of the aspects some will face while doing software development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everybody agrees to the necessity of this kind of management. And it is always the first thing that is skipped!&lt;/p&gt;&#xA;" OwnerUserId="19745" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-05-05T20:21:39.940" CommentCount="1" />
  <row Id="31394" PostTypeId="2" ParentId="31104" CreationDate="2009-05-05T20:33:44.403" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It's not the tools, it's you&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whenever developers try to do something new like doing UML diagrams, charts of any sort, project management they first look for the perfect tool to solve the problem. After endless searches finding not the right tool their motivation starves. All that is left then is complaints about the lack of useable software. It is the insight that the plan to be organized died in absence of a piece of software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, it is only yourself dealing with organization. If you are used to organize you can do it with or without the aid of a software (and most do without). If you are not used to organize nobody can help you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So &quot;not having the right software&quot; is just the simplest excuse for not being organized at all.&lt;/p&gt;&#xA;" OwnerUserId="19745" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-05-05T20:33:44.403" CommentCount="2" />
  <row Id="31395" PostTypeId="2" ParentId="31104" CreationDate="2009-05-05T20:40:44.293" Score="3" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Good architecture is grown, not designed. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Managers should make sure their team members always work &lt;em&gt;below&lt;/em&gt; their state of the art, whatever that level is. When people work withing their comfort zone they produce higher quality code.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="9456" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-05-05T20:40:44.293" CommentCount="2" />
  <row Id="31396" PostTypeId="2" ParentId="31104" CreationDate="2009-05-06T06:50:18.757" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;switch-case is not object oriented programming&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I often see a lot of switch-case or awful big if-else constructs. This is merely a sign for not putting state where it belongs and don't use the real and efficient switch-case construct that is already there: method lookup/vtable&lt;/p&gt;&#xA;" OwnerUserId="19745" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-05-06T06:50:18.757" />
  <row Id="31397" PostTypeId="2" ParentId="31104" CreationDate="2009-05-06T08:49:29.063" Score="4" ViewCount="" Body="&lt;p&gt;To be really controversial:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;You know nothing!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or in other words:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I know that I know nothing.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(this could be paraphrased in many kinds but I think you get it.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When starting with computers/developing, IMHO there are three stages everyone has to walk through:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The newbie:&#xA;knows nothing (this is fact)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The intermediate:&#xA;thinks he knows something/very much(/all) (this is conceit)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The professional:&#xA;knows that he knows nothing (because as a programmer most time you have to work on things you have never done before).&#xA;This is no bad thing: I love to familiarize myself to new things all the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think as a programmer you have to know how to learn - or better: To learn to learn (because remember: You know nothing! ;)).&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-05-06T08:49:29.063" CommentCount="1" />
  <row Id="31398" PostTypeId="2" ParentId="31104" CreationDate="2009-05-10T06:50:46.700" Score="8" ViewCount="" Body="&lt;p&gt;Sometimes you have to denormalize your databases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An opinion that doesn't go well with most programmers but you have to sacrifice things like noramlization for performance sometimes.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-05-10T06:50:46.700" CommentCount="2" />
  <row Id="31399" PostTypeId="2" ParentId="31104" CreationDate="2009-05-14T09:32:05.937" Score="7" ViewCount="" Body="&lt;p&gt;Getting paid to program is generally one of the worst uses of a man's time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For one thing, you're in competition with the Elbonians, who work for a quarter a day. You need to convince your employer that you offer something the Elbonians never can, and that your something is worth a livable salary. As the Elbonians get more and more overseas business, the real advantage wears thin, and management knows it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For another thing, you're spending time solving someone else's problems. That's time you could spend advancing your own interests, or working on problems that actually interest you. And if you think you're saving the world by working on the problems of other men, then why don't you just get the Elbonians to do it for you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Last, the great innovations in software (visicalc, Napster, Pascal, etc) were not created by cubicle farms. They were created by one or two people without advance pay. You can't forcibly recreate that. It's just magic that sometimes happens when a competent programmer has a really good idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is enough software. There are enough software developers. You don't have to be one for hire. Save your talents, your time, your hair, your marriage. Let someone else sell his soul to the keyboard. If you want to program, fine. But don't do it for the money.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-05-14T09:32:05.920" CommentCount="3" />
  <row Id="31400" PostTypeId="2" ParentId="31104" CreationDate="2009-05-14T15:18:50.907" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Reflection has no place in production code&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reflection breaks static analysis including refactoring tools and static type checking. Reflection also breaks the normal assumptions developers have about code. For example: adding a method to a class (that doesn't shadow some other method in the class) should never have any effect, but when reflection is being used, some other piece of code may &quot;discover&quot; the new method and decide to call it. Actually determining if such code exists is intractable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do think it's fine to use reflection and tests and in code generators.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, this does mean that I try to avoid frameworks that use reflection. (it's too bad that Java lacks proper compile-time meta-programming support)&lt;/p&gt;&#xA;" OwnerUserId="19196" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-05-14T15:18:50.877" CommentCount="2" />
  <row Id="31401" PostTypeId="2" ParentId="31104" CreationDate="2009-05-15T06:14:54.823" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A Developer should never test their own software&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Development and testing are two diametrically opposed disciplines. Development is all about construction, and testing is all about demolition. Effective testing requires a specific mindset and approach where you are trying to uncover developer mistakes, find holes in their assumptions, and flaws in their logic. Most people, myself included, are simply unable to place themselves and their own code under such scrutiny and still remain objective.&lt;/p&gt;&#xA;" OwnerUserId="18850" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-05-15T06:14:54.810" CommentCount="3" />
  <row Id="31402" PostTypeId="2" ParentId="31104" CreationDate="2009-05-16T05:59:57.677" Score="3" ViewCount="" Body="&lt;p&gt;Many developers have an underdeveloped sense of where to put things, resulting in messy source code organization at the file, class, and method level. Further, a sizable percentage of such developers are essentially tone-deaf to issues of code organization. Attempts to teach, cajole, threaten, or shame them into keeping their code clean are futile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On any sufficiently successful project, there's usually a developer who does have a good sense of organization very quietly wielding a broom to the code base to keep entropy at bay.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-05-16T05:59:57.660" />
  <row Id="31403" PostTypeId="2" ParentId="31104" CreationDate="2009-05-31T01:23:07.820" Score="4" ViewCount="" Body="&lt;p&gt;My controversial opinion is probably that John Carmack (ID Software, Quake etc.) is not a very good programmer.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong, he's a very &lt;em&gt;smart&lt;/em&gt; programmer in my opinion, but after I noticed the line &quot;#define private public&quot; in the quake sourcecode I couldn't help but think he's a guy that gets the job done nomatter what, but in my definition not a good programmer :)&#xA;This opinion has gotten me into a lot of heated discussions though ;)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-05-31T01:23:07.820" CommentCount="2" />
  <row Id="31404" PostTypeId="2" ParentId="31104" CreationDate="2009-06-02T19:49:00.980" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Software is not an engineering discipline.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We never should have let the computers escape from the math department.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-06-02T19:49:00.980" />
  <row Id="31405" PostTypeId="2" ParentId="31104" CreationDate="2009-06-04T11:35:48.290" Score="16" ViewCount="" Body="&lt;p&gt;Girls can't code.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-06-04T11:35:48.260" CommentCount="1" />
  <row Id="31406" PostTypeId="2" ParentId="31104" CreationDate="2009-06-05T16:52:37.300" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Design patterns are bad.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, &lt;a href=&quot;http://perl.plover.com/yak/design/&quot; rel=&quot;nofollow&quot;&gt;design patterns aren't&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can write bad code, and bury it under a pile of patterns. Use singletons as global variables, and states as goto's. Whatever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A design pattern is a standard solution for a particular problem, but requires you to understand the problem first. If you don't, design patterns become a part of the problem for the next developer.&lt;/p&gt;&#xA;" OwnerUserId="13889" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-06-05T16:52:37.283" />
  <row Id="31407" PostTypeId="2" ParentId="31104" CreationDate="2009-06-11T16:33:09.683" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The simplest approach is the best approach&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers like to solve assumed or inferred requirements that add levels of complexity to a solution. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I assume this block of code is going to be a performance bottleneck, therefore I will add all this extra code to mitigate this problem.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I assume the user is going to want to do X, therefore I will add this really cool additional feature.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;If I make my code solve for this unneeded scenario it will be a good opportunity to use this new technology I've been interested in trying out.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In reality, the simplest solution that meets the requirements is best. This also gives you the most flexibility in taking your solution in a new direction if and when new requirements or problems come up.&lt;/p&gt;&#xA;" OwnerUserId="18900" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-06-11T16:33:09.683" CommentCount="3" />
  <row Id="31408" PostTypeId="2" ParentId="31104" CreationDate="2009-06-15T01:17:51.223" Score="1" ViewCount="" Body="&lt;p&gt;Apparently mine is that &lt;a href=&quot;http://stackoverflow.com/questions/993124/does-haskell-have-variables/993126#993126&quot;&gt;Haskell has variables&lt;/a&gt;. This is both &quot;trivial&quot; (according to at least eight SO users) (though nobody can seem to agree on which trivial answer is correct), and a bad question even to ask (according to at least five downvoters and four who voted to close it). Oh, and I (and computing scientests and mathematicians) am wrong, though nobody can provide me a detailed explanation of why.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-06-15T01:17:51.223" CommentCount="5" />
  <row Id="31409" PostTypeId="2" ParentId="31104" CreationDate="2009-06-17T09:43:21.207" Score="1" ViewCount="" Body="&lt;p&gt;You'll never use enough languages, simply because every language is the best fit for only a tiny class of problems, and it's far too difficult to mix languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pet examples: Java should be used only when the spec is very well thought out (because of lots of interdependencies meaning refactoring hell) and when working with concrete concepts. Perl should only be used for text processing. C should only be used when speed trumps everything, including flexibility and security. Key-value pairs should be used for one-dimensional data, CSV for two-dimensional data, XML for hierarchical data, and a DB for anything more complex.&lt;/p&gt;&#xA;" OwnerUserId="13162" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-06-17T09:43:21.207" />
  <row Id="31410" PostTypeId="2" ParentId="31104" CreationDate="2009-06-19T17:32:22.167" Score="3" ViewCount="" Body="&lt;p&gt;I believe that the &quot;Let's Rewrite The Past And Try To Fix That Bug Pretending Nothing Ever Worked&quot; is a valuable debugging mantra in desperate situations:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/978904/do-you-use-the-orwellian-past-rewriting-debugging-philosophy-closed&quot;&gt;http://stackoverflow.com/questions/978904/do-you-use-the-orwellian-past-rewriting-debugging-philosophy-closed&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-06-19T17:32:22.167" />
  <row Id="31411" PostTypeId="2" ParentId="31104" CreationDate="2009-06-19T18:02:25.640" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://c2.com/cgi/wiki?TheMythicalManMinute&quot; rel=&quot;nofollow&quot;&gt;Software-Reuse is the most important way to optimize software-development&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Somehow, software-reuse seamed to be in vogue for some time, but has lost it's charm, when many companies found out that just writing powerpoint presentations with reuse slogans doesn't actually help. They reasoned that software-reuse is just not &quot;good enough&quot; and can't live up to their dreams. So it seams that it is not in vogue any more -- it was replaced by plenty of project management newcomers (Agile for example).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact is, that any really good developer by himself performs some kind of software-reuse. I would say &lt;strong&gt;Any developer, not doing software-reuse is a bad developer!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have experienced myself, how much software-reuse can produce performance and stability in development. But of course, a set of PowerPoints and half-hearted confessions of management does not suffice to get its full potential in a company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have linked a very old article of mine about software-reuse (see title). It was originally written in German and translated thereafter -- so excuse please, when it is not that good writing.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-06-19T18:02:25.640" CommentCount="2" />
  <row Id="31412" PostTypeId="2" ParentId="31104" CreationDate="2009-06-19T18:47:58.873" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Using Stored Proc is easy to maintain and less deployment&lt;/strong&gt; &lt;em&gt;vs&lt;/em&gt; &lt;strong&gt;Using ORM is OO way thus it is good&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've heard this lot in many of my projects, when ever this statements appear it is always tough get it settled.&lt;/p&gt;&#xA;" OwnerUserId="19341" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-06-19T18:47:58.873" CommentCount="1" />
  <row Id="31413" PostTypeId="2" ParentId="31104" CreationDate="2009-06-23T22:30:41.523" Score="29" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Emacs is better&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7800" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-06-23T22:30:41.523" CommentCount="4" />
  <row Id="31414" PostTypeId="2" ParentId="31104" CreationDate="2009-06-23T23:20:30.250" Score="4" ViewCount="" Body="&lt;p&gt;I don't care how powerful a programming language is if its syntax is not intuitive and I can't set it aside for some period of time and come back to it without too much effort at refreshing on the details.  I would rather a language itself be intuitive than it be cryptic but powerful for creating DSL's.  A computer language is a user interface for ME, and I want it designed for intuitive ease of use like any other user interface.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-06-23T23:20:30.250" />
  <row Id="31415" PostTypeId="2" ParentId="31104" CreationDate="2009-07-08T23:48:14.553" Score="3" ViewCount="" Body="&lt;p&gt;Understanding &quot;what&quot; to do is at least as important as knowing &quot;how&quot; to do it, and almost always it's much more important than knowing the 'best' way to solve a problem.  Domain-specific knowledge is often crucial to write good software.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-07-08T23:48:14.553" CommentCount="1" />
  <row Id="31416" PostTypeId="2" ParentId="31104" CreationDate="2009-07-09T00:03:25.303" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It is OK to use short variable names&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But not for indices in nested loops.&lt;/p&gt;&#xA;" OwnerUserId="11905" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-07-09T00:03:25.303" CommentCount="2" />
  <row Id="31417" PostTypeId="2" ParentId="31104" CreationDate="2009-07-09T01:28:33.697" Score="4" ViewCount="" Body="&lt;h2&gt;Defects and Enhancement Requests are the Same&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Unless you are developing software on a fixed-price contract, there should be no difference when prioritizing your backlog between &quot;bugs&quot; and &quot;enhancements&quot; and &quot;new feature&quot; requests. OK - maybe that's not controversial, but I have worked on enterprise IT projects where the edict was that &quot;all open bugs must be fixed in the next release&quot;, even if that left no developer time for the most desirable new features. So, a problem which was encountered by 1% of the users, 1% of the time took precedence over a new feature would might be immediately useful to 90% of the users.  I like to take my entire project backlog, put estimates around each item and take it to the user community for prioritization - with items not classified as &quot;defect&quot;, &quot;enhancement&quot;, etc.&lt;/p&gt;&#xA;" OwnerUserId="17287" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-07-09T01:28:33.697" />
  <row Id="31418" PostTypeId="2" ParentId="31104" CreationDate="2009-07-11T00:08:16.367" Score="4" ViewCount="" Body="&lt;p&gt;Software development is an art.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-07-11T00:08:16.367" />
  <row Id="31419" PostTypeId="2" ParentId="31104" CreationDate="2009-07-12T03:53:08.387" Score="4" ViewCount="" Body="&lt;p&gt;in almost &lt;em&gt;all&lt;/em&gt; cases, comments are evil: &lt;a href=&quot;http://gooddeveloper.wordpress.com/&quot; rel=&quot;nofollow&quot;&gt;http://gooddeveloper.wordpress.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="18789" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-07-12T03:53:08.387" CommentCount="1" />
  <row Id="31420" PostTypeId="2" ParentId="31104" CreationDate="2009-07-20T21:37:08.893" Score="13" ViewCount="" Body="&lt;h1&gt;Recursion is fun.&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Yes, I know it &lt;strong&gt;can&lt;/strong&gt; be an ineffectual use of stack space, and all that jazz.  But some times a recursive algorithm is just so nice and clean compared to it's iterative counterpart.  I always get a bit gleeful when I can sneak a recursive function in somewhere.&lt;/p&gt;&#xA;" OwnerUserId="15916" LastEditorUserId="15916" LastEditorDisplayName="" LastEditDate="2011-03-27T09:50:37.033" LastActivityDate="2011-03-27T09:50:37.033" CommunityOwnedDate="2009-07-20T21:37:08.893" CommentCount="4" />
  <row Id="31421" PostTypeId="2" ParentId="31104" CreationDate="2009-07-21T15:10:48.760" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Exceptions should only be used in truly exceptional cases&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems like the use of exceptions has run rampant on the projects I've worked on recently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's an example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have filters that intercept web requests.  The filter calls a screener, and the screener's job is to check to see if the request has certain input parameters and validate the parameters.  You set the fields to check for, and the abstract class makes sure the parameters are not blank, then calls a screen() method implemented by your particular class to do more extended validation:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public boolean processScreener(HttpServletRequest req, HttpServletResponse resp, FilterConfig filterConfig) throws Exception{           &#xA;            // &#xA;            if (!checkFieldExistence(req)){&#xA;                    return false;&#xA;            }&#xA;            return screen(req,resp,filterConfig);&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That checkFieldExistance(req) method &lt;strong&gt;never&lt;/strong&gt; returns false.  It returns true if none of the fields are missing, and throws an exception if a field is missing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that this is bad design, but part of the problem is that some architects here believe that you need to throw an exception every time you hit something unexpected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I am aware that the signature of checkFieldExistance(req) &lt;strong&gt;does&lt;/strong&gt; throw an Exception, its just that almost all of our methods do - so it didn't occur to me that the method might throw an exception instead of returning false.  Only until I dug through the code I noticed it.&lt;/p&gt;&#xA;" OwnerUserId="7509" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-07-21T15:10:48.760" CommentCount="1" />
  <row Id="31422" PostTypeId="2" ParentId="31104" CreationDate="2009-07-21T16:45:27.773" Score="83" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Programmers who spend all day answering questions on Stack Overflow are probably not doing the work they are being paid to do.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="607" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-22T10:28:09.260" LastActivityDate="2011-01-22T10:28:09.260" CommunityOwnedDate="2009-07-21T16:45:27.773" CommentCount="9" />
  <row Id="31424" PostTypeId="2" ParentId="31104" CreationDate="2009-07-29T03:09:19.657" Score="2" ViewCount="" Body="&lt;p&gt;Don't use keywords for basic types if the language has the actual type exposed. In C#, this would refer to bool (Boolean), int (Int32), float (Single), long (Int64). 'int', 'bool', etc are not actual parts of the language, but rather just 'shortcuts' or 'aliases' for the actual type. Don't use something that doesn't exist! And in my opinion, Int16, Int32, Int64, Boolean, etc makes a heck of a lot more sense then 'short', 'long', 'int'.&lt;/p&gt;&#xA;" OwnerUserId="25240" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-07-29T03:09:19.657" CommentCount="2" />
  <row Id="31425" PostTypeId="2" ParentId="31104" CreationDate="2009-07-29T14:06:23.883" Score="16" ViewCount="" Body="&lt;p&gt;I generally hold pretty controversial, strong and loud opinions, so here's just a couple of them:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;em&gt;&quot;Because we're a Microsoft outfit/partner/specialist&quot;&lt;/em&gt; is never a valid argument.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The company I'm working in now identifies itself, first and foremost, as a Microsoft specialist. So the aforementioned argument gets thrown around quite a bit, and I've yet to see a context where it's valid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't see why it's a reason to promote Microsoft's technology and products in every applicable corner, overriding customer and employee satisfaction, and general pragmatics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This just a cornerstone of my deep hatred towards politics in software business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;MOSS (Microsoft Office Sharepoint Server) is a piece of shit.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Kinda echoes the first opinion, but I honestly think MOSS, as it is, should be shot out of the market. It costs gazillions to license and set up, pukes on web standards and makes developers generally pretty unhappy. I have yet to see a MOSS project that has an overall positive outcome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yet time after time, a customer approaches us and asks for a MOSS solution.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-07-29T14:06:23.883" CommentCount="4" />
  <row Id="31426" PostTypeId="2" ParentId="31104" CreationDate="2009-07-29T14:15:01.047" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Linq2Sql is not that bad&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've come across a lot of posts trashing Linq2Sql. I know it's not perfect, but what is?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I think it has its drawbacks, but overall it can be great for prototyping, or for developing small to medium apps. When I consider how much time it has saved me from writing boring DAL code, I can't complain, especially considering the alternatives we had not so long ago.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-07-29T14:15:01.047" CommentCount="1" />
  <row Id="31427" PostTypeId="2" ParentId="31104" CreationDate="2009-07-29T15:07:02.177" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Greater-than operators (&gt;, &gt;=) should be deprecated&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tried coding with a preference for less-than over greater-than for awhile and it stuck! I don't want to go back, and indeed I feel that everyone should do it my way in this case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider common mathematical 'range' notation:  0 &amp;lt;= i &amp;lt; 10&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's easy to approximate in code now and you get used to seeing the idiom where the variable is repeated in the middle joined by &amp;amp;&amp;amp;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (0 &amp;lt;= i &amp;amp;&amp;amp; i &amp;lt; 10)&#xA;    return true;&#xA;else&#xA;    return false;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Once you get used to that pattern, you'll never look at silliness like &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if ( ! (i &amp;lt; 0 || i &amp;gt;= 9))&#xA;    return true;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;the same way again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Long sequences of relations become a bit easier to work with because the operands tend towards nondecreasing order.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, a preference for &lt;code&gt;operator&amp;lt;&lt;/code&gt; is enshrined in the C++ standards. In some cases &lt;code&gt;operator=&lt;/code&gt; is defined in terms of it! (as &lt;code&gt;!(a&amp;lt;b || b&amp;lt;a)&lt;/code&gt;)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-07-29T15:07:02.177" CommentCount="7" />
  <row Id="31428" PostTypeId="2" ParentId="31104" CreationDate="2009-07-29T15:31:55.700" Score="4" ViewCount="" Body="&lt;p&gt;Functional programming is NOT more intuitive or easier to learn than imperative programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many good things about functional programming, but I often hear functional programmers say it's easier to understand functional programming than imperative programming for people with no programming experience. From what I've seen it's the opposite, people find trivial problems hard to solve because they don't get how to manage and reuse their temporary results when you end up in a world without state.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-07-29T15:31:55.700" CommentCount="2" />
  <row Id="31429" PostTypeId="2" ParentId="31104" CreationDate="2009-08-01T08:25:39.677" Score="15" ViewCount="" Body="&lt;p&gt;MIcrosoft is not as bad as many say they are.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-08-01T08:25:39.677" CommentCount="1" />
  <row Id="31430" PostTypeId="2" ParentId="31104" CreationDate="2009-08-03T23:09:40.633" Score="32" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;1-based arrays should always be used instead of 0-based arrays. 0-based arrays are unnatural, unnecessary, and error prone.&lt;/strong&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I count apples or employees or widgets I start at one, not zero.  I teach my kids the same thing.  There is no such thing as a 0th apple or 0th employee or 0th widget.  Using 1 as the base for an array is much more intuitive and less error-prone.  Forget about plus-one-minus-one-hell (as we used to call it).  0-based arrays are an unnatural construct invented by the computer science - they do not reflect reality and computer programs should reflect reality as much as possible.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-08-03T23:09:40.633" CommentCount="12" />
  <row Id="31431" PostTypeId="2" ParentId="31104" CreationDate="2009-08-03T23:30:00.390" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Developing on .NET is not programming. Its just stitching together other people's code.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having come from a coding background where you were required to know the hardware, and where this is still a vital requirements in my industry, I view high level languages as simply assembling someone else's work. Nothing essentially wrong with this, but is it 'programming'?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;MS has made a mint from doing the hard work and presenting 'developers' with symbolic instruction syntax. I seem to now know more and more developers who appear constrained by the existence or non-existence of a class to perform a job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My opinion comes from the notion that to be a programmer you should be able to programme at the lowest level your platform allows. So if you're programming .NET then you need to be able to stick your head under the hood and work out the solution, rather than rely on someone else creating a class for you. That's simply lazy and does not qualify as 'development' in my book.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-08-03T23:30:00.390" CommentCount="10" />
  <row Id="31432" PostTypeId="2" ParentId="31104" CreationDate="2009-08-06T14:12:40.197" Score="3" ViewCount="" Body="&lt;p&gt;I'd rather be truly skilled/experienced in an older technology that allows me to solve real world problems effectively,  as opposed to new &quot;fashionable&quot; technologies that still going through the adolescent stage.&lt;/p&gt;&#xA;" OwnerUserId="20615" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-08-06T14:12:40.197" />
  <row Id="31433" PostTypeId="2" ParentId="31104" CreationDate="2009-08-06T14:17:45.417" Score="1" ViewCount="" Body="&lt;p&gt;When many new technologies appear on the scene I only learn enough about them to decide if I need them right now.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If not, I put them aside until the rough edges are knocked off by &quot;early adopters&quot; and then check back again every few months / years.&lt;/p&gt;&#xA;" OwnerUserId="20615" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-08-06T14:17:45.417" CommentCount="2" />
  <row Id="31434" PostTypeId="2" ParentId="31104" CreationDate="2009-08-06T15:31:55.480" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I'm always right.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or call it design by discussion.  But if I propose something, you'd had better be able to demonstrate why I'm wrong, and propose an alternative that you can defend.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, this only works if I'm reasonable.  Luckily for you, I am.  :)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-08-06T15:31:55.480" CommentCount="2" />
  <row Id="31435" PostTypeId="2" ParentId="31104" CreationDate="2009-08-21T16:36:47.183" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Usability problems are never the user's fault.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I cannot count how often a problem turned up when some user did something that everybody in the team considered &quot;just a stupid thing to do&quot;. Phrases like &quot;why would somebody do that?&quot; or &quot;why doesn't he just do XYZ&quot; usually come up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even though many are weary of hearing me say this: if a real-life user tried to do something that either did not work, caused something to go wrong or resulted in unexpected behaviour, then it can be anybody's fault, but &lt;em&gt;not&lt;/em&gt; the user's!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please note that I do not mean people who intentionally misuse the software. I am referring to the presumable target group of the software.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-08-21T16:36:47.183" />
  <row Id="31436" PostTypeId="2" ParentId="31104" CreationDate="2009-08-24T03:44:48.193" Score="2" ViewCount="" Body="&lt;p&gt;Agile    sucks.&lt;/p&gt;&#xA;" OwnerUserId="5899" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-08-24T03:44:48.193" />
  <row Id="31437" PostTypeId="2" ParentId="31104" CreationDate="2009-08-24T17:29:44.187" Score="2" ViewCount="" Body="&lt;p&gt;That &lt;a href=&quot;http://en.wikipedia.org/wiki/WordPress&quot; rel=&quot;nofollow&quot;&gt;WordPress&lt;/a&gt; IS a &lt;a href=&quot;http://en.wikipedia.org/wiki/Web%5Fcontent%5Fmanagement%5Fsystem&quot; rel=&quot;nofollow&quot;&gt;CMS&lt;/a&gt; (technically, therefore indeed).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/105648/wordpress-is-it-a-cms&quot;&gt;http://stackoverflow.com/questions/105648/wordpress-is-it-a-cms&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-08-24T17:29:44.187" CommentCount="1" />
  <row Id="31438" PostTypeId="2" ParentId="31104" CreationDate="2009-08-25T18:21:07.900" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Jon Bentley's 'Programming Pearls' is no longer a useful tome.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://tinyurl.com/nom56r&quot; rel=&quot;nofollow&quot;&gt;http://tinyurl.com/nom56r&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1996" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-08-25T18:21:07.900" CommentCount="3" />
  <row Id="31439" PostTypeId="2" ParentId="31104" CreationDate="2009-08-27T14:29:11.370" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Delphi is fun&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, I know it's outdated, but Delphi was and is a very fun tool to develop with.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-08-27T14:29:11.370" CommentCount="2" />
  <row Id="31440" PostTypeId="2" ParentId="31104" CreationDate="2009-08-30T00:12:08.300" Score="1" ViewCount="" Body="&lt;p&gt;I think Java should have supported system-specific features via thin native library wrappers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Phrased another way, I think Sun's determination to require that Java only support portable features was a big mistake from almost everyone's perspective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A zillion years later, SWT came along and solved the basic problem of writing a portable native-widget UI, but by then Microsoft was forced to fork Java into C# and lots of C++ had been written that could otherwise have been done in civilized Java. Now the world runs on a blend of C#, VB, Java, C++, Ruby, Python and Perl.  All the Java programs still look and act wierd except for the SWT ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If Java had come out with thin wrappers around native libraries, people could have written the SWT-equivalent &lt;em&gt;entirely in Java&lt;/em&gt;, and we could have, as things evolved, made portable apparently-native apps in Java. I'm totally for portable applications, but it would have been better if that portability were achieved in an open market of middleware UI (and other feature) libraries, and not through simply reducing the user's menu to junk or faking the UI with Swing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suppose Sun thought that ISV's would suffer with Java's limitations and then all the world's new PC apps would magically run on Suns. Nice try. They ended up not getting the apps AND not having the language take off until we could use it for logic-only server back-end code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If things had been done differently maybe the local application wouldn't be, well, dead.&lt;/p&gt;&#xA;" OwnerUserId="4613" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-08-30T00:12:08.300" />
  <row Id="31441" PostTypeId="2" ParentId="31104" CreationDate="2009-09-01T12:04:17.180" Score="3" ViewCount="" Body="&lt;p&gt;Lower level languages are inappropriate for most problems.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-09-01T12:04:17.180" />
  <row Id="31442" PostTypeId="2" ParentId="31104" CreationDate="2009-09-09T07:21:26.707" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Programmers should never touch Word (or PowerPoint)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you are developing a word or a document processing tool, you should not touch a Word processor that emits only binary blobs, and for that matter:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Generated XML files &lt;em&gt;are&lt;/em&gt; binary blobs&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers should write plain text documents. The documents a programmer writes need to convey intention only, not formatting. It must be producible with the programming tool-chain: editor, version-control, search utilities, build system and the like. When you are already have and know how to use that tool-chain, every other document production tool is a horrible waste of time and effort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When there is a need to produce a document for non-programmers, a lightweight markup language should be used such as &lt;a href=&quot;http://docutils.sourceforge.net/rst.html&quot; rel=&quot;nofollow&quot;&gt;reStructuredText&lt;/a&gt; (if you are writing a plain text file, you are probably writing your own lightweight markup anyway), and generate HTML, PDF, &lt;a href=&quot;http://meyerweb.com/eric/tools/s5/&quot; rel=&quot;nofollow&quot;&gt;S5&lt;/a&gt;, etc. from it.&lt;/p&gt;&#xA;" OwnerUserId="22350" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-09-09T07:21:26.707" />
  <row Id="31443" PostTypeId="2" ParentId="31104" CreationDate="2009-09-16T10:23:22.807" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You must know C to be able to call yoursel a programmer!&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-09-16T10:23:22.807" CommentCount="6" />
  <row Id="31444" PostTypeId="2" ParentId="31104" CreationDate="2009-09-16T10:45:47.147" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Garbage collection is overrated&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many people consider the introduction of garbage collection in Java one of the biggest improvements compared to C++. I consider the introduction to be very minor at best, well written C++ code does all the memory management at the proper places (with techniques like RAII), so there is no need for a garbage collector. &lt;/p&gt;&#xA;" OwnerUserId="5709" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-09-16T10:45:47.147" CommentCount="2" />
  <row Id="31445" PostTypeId="2" ParentId="31104" CreationDate="2009-09-17T18:33:05.853" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C must die.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Voluntarily programming in C when another language (say, D) is available should be punishable for neglect.&lt;/p&gt;&#xA;" OwnerUserId="10094" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-09-17T18:33:05.853" CommentCount="4" />
  <row Id="31446" PostTypeId="2" ParentId="31104" CreationDate="2009-09-24T07:44:54.367" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;QA can be done well, over the long haul, without exploring all forms of testing&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lots of places seem to have an &quot;approach&quot;, how &quot;we do it&quot;. This seems to implicitly exclude other approaches. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a serious problem over the long term, because the primary function of QA is to file bugs -and- get them fixed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You cannot do this well if you are not finding as many bugs as possible. When you exclude methodologies, for example, by being too black-box dependent, you start to ignore entire classes of discoverable coding errors. That means, by implication, you are making entire classes of coding errors unfixable, except when someone else stumbles on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The underlying problem often seems to be management + staff. Managers with this problem seem to have narrow thinking about the computer science and/or the value proposition of their team. They tend to create teams that reflect their approach, and a whitelist of testing methods.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not saying you can or should do everything all the time. Lets face it, some test methods are simply going to be a waste of time for a given product. And some methodologies are more useful at certain levels of product maturity. But what I think is missing is the ability of testing organizations to challenge themselves to learn new things, and apply that to their overall performance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a hypothetical conversation that would sum it up:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Me: You tested that startup script for &lt;strong&gt;10&lt;/strong&gt; years, and you managed to learn NOTHING about shell scripts and how they work?!&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Tester: Yes.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Me: Permissions?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Tester: The installer does that&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Me: Platform, release-specific dependencies?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Tester: We file bugs for that&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Me: Error handling?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Tester: when errors happen to customer support sends us some info.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Me: Okay...(starts thinking about writing post in stackoverflow...)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-09-24T07:44:54.367" />
  <row Id="31447" PostTypeId="2" ParentId="31104" CreationDate="2009-09-24T21:01:56.740" Score="4" ViewCount="" Body="&lt;p&gt;Detailed designs are a waste of time, and if an engineer needs them in order to do a decent job, then it's not worth employing them!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OK, so a couple of ideas are thrown together here: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) the old idea of &lt;a href=&quot;http://en.wikipedia.org/wiki/Waterfall%5Fmodel&quot; rel=&quot;nofollow&quot;&gt;waterfall&lt;/a&gt; development where you supposedly did all your design up front, resulting in some glorified extremely detailed class diagrams, sequence diagrams etc. etc., was a complete waste of time.  As I once said to a colleague, I'll be done with design once the code is finished.  Which I think is what agile is partly a recognition of - that the code is the design, and that any decent developer is continually refactoring.  This of course, makes the idea that your class diagrams are out of date laughable - they always will be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) management often thinks that you can usefully take a poor engineer and use them as a 'code monkey' - in other words they're not particularly talented, but heck - can't you use them to write some code.  Well.. no! If you have to spend so much time writing detailed specs that you're basically specifying the code, then it will be quicker to write it yourself.  You're not saving any time.  If a developer isn't smart enough to use their own imagination and judgement they're not worth employing. (Note, I'm not talking about junior engineers who are able to learn. Plenty of 'senior engineers' fall into this category.)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-09-24T21:01:56.740" CommentCount="4" />
  <row Id="31448" PostTypeId="2" ParentId="31104" CreationDate="2009-09-28T18:50:19.217" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;When Creating Unit tests for a Data Access Layer, data should be retrieved directly from the DB, not from mock objects.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider the following:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void IList&amp;lt;Customer&amp;gt; GetCustomers()&#xA;{&#xA;  List&amp;lt;Customer&amp;gt; res = new List&amp;lt;Customer&amp;gt;();&#xA;&#xA;  DbCommand cmd = // initialize command&#xA;  IDataReader r = cmd.ExecuteQuery();&#xA;&#xA;  while(r.read())&#xA;  {&#xA;     Customer c = ReadFiledsIntoCustomer(r);&#xA;     res.Add(c);&#xA;  }&#xA;&#xA;  return res;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In a unit test for GetCustomers, should the call to cmd.ExecuteQuery() actually access the DB or should it's behavior be mocked?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I reckon that you shouldn't mock the actual call to the DB if the following holds true:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;A test server and the schema exist.&lt;/li&gt;&#xA;&lt;li&gt;The schema is stable (meaning you are not expecting major changes to it)&lt;/li&gt;&#xA;&lt;li&gt;The DAL has not smart logic: queries are constructed trivially (config/stored procs)&#xA;and the desirialization logic is simple.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;From my experience the great benefit of this approach is that you get to interact with the DB early, experiancing the 'feel', not just the 'look'. It saves you lots of headaches afterwards and is the best way to familiarize oneself with the schema.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many might argue that as soon as the execution flow crosses the process boundaries- it seizes to be a unit test. I agree it has its drawbacks, especially when the DB is unavailable and then you cannot run UT.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I believe that this should be a valid thing to do in many cases.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-09-28T18:50:19.217" />
  <row Id="31449" PostTypeId="2" ParentId="31104" CreationDate="2009-09-29T03:14:48.170" Score="6" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Notepad is a perfectly fine text editor. (And sometimes wordpad for non-windows line breaks)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Edit config files&lt;/li&gt;&#xA;&lt;li&gt;View log files&lt;/li&gt;&#xA;&lt;li&gt;Development&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I know people who actually believe this!  They will however use an IDE for development, but continue to use Notepad for everything else!&lt;/p&gt;&#xA;" OwnerUserId="14214" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-09-29T03:14:48.170" CommentCount="3" />
  <row Id="31450" PostTypeId="2" ParentId="31104" CreationDate="2009-10-03T12:01:00.827" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;All project managers should be required to have coding tasks&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In teams that I have worked where the project manager was actually a programmer who understood the technical issues of the code well enough to accomplish coding tasks, the decisions that were made lacked the communication disconnect that often happens in teams where the project manager is not involved in the code.&lt;/p&gt;&#xA;" OwnerUserId="1157" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-03T12:01:00.827" CommentCount="2" />
  <row Id="31451" PostTypeId="2" ParentId="31104" CreationDate="2009-10-10T19:05:38.940" Score="2" ViewCount="" Body="&lt;p&gt;Development projects are bound to fail unless the team of programmers is given as a whole complete empowerment to make all decisions related to the technology being used.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-10T19:05:38.940" CommentCount="1" />
  <row Id="31452" PostTypeId="2" ParentId="31104" CreationDate="2009-10-13T20:42:54.077" Score="23" ViewCount="" Body="&lt;p&gt;My most controversial programming opinion is that&#xA;&lt;strong&gt;finding performance problems is not about &lt;em&gt;measuring&lt;/em&gt;, it is about &lt;em&gt;capturing&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're hunting for elephants in a room (as opposed to mice) do you need to know how big they are? NO! All you have to do is look.&#xA;Their very bigness is what makes them easy to find!&#xA;It isn't necessary to measure them first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea of measurement has been common wisdom at least since the paper on &lt;strong&gt;gprof&lt;/strong&gt; &#xA;(&lt;a href=&quot;http://docs.freebsd.org/44doc/psd/18.gprof/paper.pdf&quot; rel=&quot;nofollow&quot;&gt;Susan L. Graham, et al 1982&lt;/a&gt;)*, when all along, right under our noses, has been a &lt;a href=&quot;http://stackoverflow.com/questions/375913/what-can-i-use-to-profile-c-code-in-linux/378024#378024&quot;&gt;very simple and direct way to find code worth optimizing&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a small example, here's how it works. Suppose you take 5 random-time samples of the call stack, and you happen to see a particular instruction on 3 out of 5 samples. What does that tell you?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;.............   .............   .............   .............   .............&#xA;.............   .............   .............   .............   .............&#xA;Foo: call Bar   .............   .............   Foo: call Bar   .............&#xA;.............   Foo: call Bar   .............   .............   .............&#xA;.............   .............   .............   Foo: call Bar   .............&#xA;.............   .............   .............   .............   .............&#xA;                .............                                   .............&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;It tells you the program is spending 60% of its time &lt;strong&gt;doing work requested by that instruction&lt;/em&gt;&lt;/strong&gt;. Removing it removes that 60%:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;...\...../...   ...\...../...   .............   ...\...../...   .............&#xA;....\.../....   ....\.../....   .............   ....\.../....   .............&#xA;Foo: \a/l Bar   .....\./.....   .............   Foo: \a/l Bar   .............&#xA;......X......   Foo: cXll Bar   .............   ......X......   .............&#xA;...../.\.....   ...../.\.....   .............   Foo: /a\l Bar   .............&#xA;..../...\....   ..../...\....   .............   ..../...\....   .............&#xA;   /     \      .../.....\...                      /     \      .............&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Roughly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can remove the instruction (or invoke it a lot less), that's a 2.5x speedup, approximately. (Notice - recursion is irrelevant - if the elephant's pregnant, it's not any smaller.)&#xA;Then you can repeat the process, until you truly approach an optimum.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;This did not require accuracy of measurement, function timing, call counting, graphs, hundreds of samples, &lt;em&gt;any of that typical profiling stuff.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some people use this whenever they have a performance problem, and don't understand what's the big deal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most people have never heard of it, and when they do hear of it, think it is just an inferior mode of sampling. But it is very different, because it pinpoints problems by giving cost of &lt;em&gt;call sites&lt;/em&gt; (as well as terminal instructions), as a percent of &lt;em&gt;wall-clock time&lt;/em&gt;. Most profilers (not all), whether they use sampling or instrumentation, do not do that. Instead they give a variety of summary measurements that are, at best, clues to the possible location of problems. &lt;a href=&quot;http://stackoverflow.com/questions/1777556/alternatives-to-gprof/1779343#1779343&quot;&gt;Here is a more extensive summary of the differences.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*In fact that paper claimed that the purpose of &lt;strong&gt;gprof&lt;/strong&gt; was to &quot;help the user evaluate alternative implementations of abstractions&quot;. It did not claim to help the user locate the code needing an alternative implementation, at a finer level then functions.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;My second most controversial opinion is &lt;a href=&quot;http://stackoverflow.com/questions/371898/how-does-differential-execution-work&quot;&gt;&lt;strong&gt;this&lt;/strong&gt;&lt;/a&gt;, or it might be if it weren't so hard to understand.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-13T20:42:54.077" CommentCount="13" />
  <row Id="31453" PostTypeId="2" ParentId="31104" CreationDate="2009-10-13T20:56:37.820" Score="4" ViewCount="" Body="&lt;p&gt;There is no difference between software developer, coder, programmer, architect ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been in the industry for more than 10 yeast and still find it absolutely idiotic to try to distinguish between these &quot;roles&quot;. You write code? You're a developer. You are spending all day drawing fancy UML diagrams. You're a ... well.. I have no idea what you are, you're probably just trying to impress somebody. (Yes, I know UML).&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-13T20:56:37.820" />
  <row Id="31454" PostTypeId="2" ParentId="31104" CreationDate="2009-10-13T21:49:38.620" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Soon we are going to program in &lt;strong&gt;a world without&#xA;databases&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;AOP and dependency injection are the GOTO of&#xA;the 21st century&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Building software is a social&#xA;activity&lt;/strong&gt;, not a technical one.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Joel has a blog.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3741" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-13T21:49:38.620" />
  <row Id="31455" PostTypeId="2" ParentId="31104" CreationDate="2009-10-14T03:28:06.520" Score="4" ViewCount="" Body="&lt;p&gt;To quote the late E. W. Dijsktra:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Computer Science is no more about computers than astronomy is about telescopes.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't understand how one can claim to be a proper programmer without being able to solve pretty simple maths problems such as &lt;a href=&quot;http://stackoverflow.com/questions/406760/whats-your-most-controversial-programming-opinion/406948#406948&quot;&gt;this one&lt;/a&gt;. A CRUD monkey - perhaps, but not a programmer.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-14T03:28:06.520" />
  <row Id="31456" PostTypeId="2" ParentId="31104" CreationDate="2009-10-14T12:04:05.587" Score="19" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A real programmer loves open-source like a soulmate and loves Microsoft as a dirty but satisfying prostitute&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-14T12:04:05.587" CommentCount="2" />
  <row Id="31457" PostTypeId="2" ParentId="31104" CreationDate="2009-10-14T13:01:20.073" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&quot;Programmers must do programming on the side, or they're never as good as those who do.&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As kpollock said, imagine saying that for doctors, or soldiers...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main thing isn't so much as whether they code, but whether they think about it. Computing Science is an intellectual exercise, you don't necessarily need to code to think about problems that makes you better as a programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not like Einstein gets to play with play with particles and waves when he's off his research.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-14T13:01:20.073" CommentCount="2" />
  <row Id="31458" PostTypeId="2" ParentId="31104" CreationDate="2009-10-14T14:50:22.273" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Programmers should avoid method hiding through inheritance at all costs.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, virtually every place I have ever seen inherited method hiding used it has caused problems. Method hiding results in objects behaving differently when accessed through a base type reference vs. a derived type reference - this is generally a Bad Thing. While many programmers are not formally aware of it, most intuitively expect that objects will adhere to the &lt;a href=&quot;http://en.wikipedia.org/wiki/Liskov%5Fsubstitution%5Fprinciple&quot; rel=&quot;nofollow&quot;&gt;Liskov Substitution Principle&lt;/a&gt;. When objects violate this expectation, many of the assumptions inherent to object-oriented systems can begin to fray. The most egregious cases I've seen is when the hidden method alters the state of the object instance. In these cases, the behavior of the object can change in subtle ways that are difficult to debug and diagnose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ok, so there may be some infrequent cases where method hiding is actually useful and beneficial - like emulating return type covariance of methods in languages that don't support it. But the vast majority of time, when developers use method hiding it is either out of ignorance (or accident) or as a way to hack around some problem that probably deserves better design treatment. In general, the beneficial cases I've seen of method hiding (not to say there aren't others) is when a side-effect free method that returns some information is hidden by one that computes something more applicable to the calling context.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Languages like C# have improved things a bit by requiring the &lt;code&gt;new&lt;/code&gt; keyword on methods that hide a base class method - at least helping avoid involuntary use of method hiding. But I find that many people still confuse the meaning of &lt;code&gt;new&lt;/code&gt; with that of &lt;code&gt;override&lt;/code&gt; - particularly since in simple scenarios their behavior can appear identical. It would be nice if tools like FxCop actually had built-in rules for identifying potentially bad usage of method hiding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, method hiding through inheritance should not be confused with other kinds of hiding - such as through nesting - which I believe is a valid and useful construct with fewer potential problems.&lt;/p&gt;&#xA;" OwnerUserId="910" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-14T14:50:22.273" />
  <row Id="31459" PostTypeId="2" ParentId="31104" CreationDate="2009-10-14T16:55:23.970" Score="7" ViewCount="" Body="&lt;p&gt;Controversial eh?  I reckon the fact that C++ streams use &amp;lt;&amp;lt; and &gt;&gt;.  I hate it.  They are shift operators.  Overloading them in this way is plain bad practice.  It makes me want to kill whoever came up with that and thought it was a good idea.  GRRR.&lt;/p&gt;&#xA;" OwnerUserId="21567" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-14T16:55:23.970" />
  <row Id="31460" PostTypeId="2" ParentId="31104" CreationDate="2009-10-14T18:19:43.543" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Anonymous functions suck.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm teaching myself jQuery and, while it's an elegant and immensely useful technology, most people seem to treat it as some kind of competition in maximizing the user of anonymous functions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Function and procedure naming (along with variable naming) is the greatest expressive ability we have in programming.  Passing functions around as data is a great technique, but making them anonymous and therefore non-self-documenting is a mistake.  It's a lost chance for expressing the meaning of the code.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-14T18:19:43.543" CommentCount="3" />
  <row Id="31461" PostTypeId="2" ParentId="31104" CreationDate="2009-10-15T10:02:33.317" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If it isn't worth testing, it isn't worth building&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8419" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-15T10:02:33.317" />
  <row Id="31462" PostTypeId="2" ParentId="31104" CreationDate="2009-10-16T19:35:39.980" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Never change what is not broken.&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-16T19:35:39.980" CommentCount="4" />
  <row Id="31463" PostTypeId="2" ParentId="31104" CreationDate="2009-10-17T06:10:51.577" Score="2" ViewCount="" Body="&lt;p&gt;I'd say that my most controversial opinion on programming is that I honestly believe you shouldn't worry so much about throw-away code and rewriting code.  Too many times people feel that if you write something down, then changing it means you did something wrong.   But the way my brain works is to get something very simple working, and update the code slowly, while ensuring that the code and the test continue to function together.  It may end up actually creating classes, methods, additional parameters, etc., I fully well know will go away in a few hours.  But I do it because i want to take only small steps toward my goal.  In the end, I don't think I spend any more time using this technique than the programmers that stare at the screen trying to figure out the best design up front before writing a line of code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The benefit I get is that I'm not having to constantly deal with software that no longer works because I happen to break it somehow and am trying to figure out what stopped working and why.&lt;/p&gt;&#xA;" OwnerUserId="18372" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-17T06:10:51.577" />
  <row Id="31464" PostTypeId="2" ParentId="31104" CreationDate="2009-10-17T06:12:10.760" Score="12" ViewCount="" Body="&lt;p&gt;Copy/Paste &lt;strong&gt;IS&lt;/strong&gt; the root of all evil.&lt;/p&gt;&#xA;" OwnerUserId="82" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-17T06:12:10.760" CommentCount="2" />
  <row Id="31465" PostTypeId="2" ParentId="31104" CreationDate="2009-10-18T03:40:51.113" Score="4" ViewCount="" Body="&lt;p&gt;If you have ever let anyone from rentacoder.com touch your project, both it and your business are completely devoid of worth.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-18T03:40:51.113" CommentCount="1" />
  <row Id="31466" PostTypeId="2" ParentId="31104" CreationDate="2009-10-19T07:58:58.793" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Object Oriented Programming is overused&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes the best answer is the simple answer.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-19T07:58:58.793" CommentCount="1" />
  <row Id="31467" PostTypeId="2" ParentId="31104" CreationDate="2009-10-22T15:30:59.210" Score="2" ViewCount="" Body="&lt;p&gt;If you haven't read a man page, you're not a real programmer.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-22T15:30:59.210" />
  <row Id="31468" PostTypeId="2" ParentId="31104" CreationDate="2009-10-22T15:39:42.113" Score="4" ViewCount="" Body="&lt;p&gt;I have two:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Design patterns are sometimes a way for bad programmer to write bad code&lt;/strong&gt; - &quot;when you have a hammer - all the world looks like a nail&quot; mentality. If there si something I hate to hear is two developers create design by patterns: &quot;We should use command with facade ...&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;There is no such thing as &quot;premature optimization&quot;&lt;/strong&gt;. You should profile and optimize the your code before you get to that point when it becomes too painful to do so.&lt;/p&gt;&#xA;" OwnerUserId="3806" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-22T15:39:42.113" CommentCount="3" />
  <row Id="31469" PostTypeId="2" ParentId="31104" CreationDate="2009-10-25T22:11:19.110" Score="8" ViewCount="" Body="&lt;p&gt;&quot;Comments are Lies&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Comments don't run and are easily neglected. It's better to express the intention with clear, refactored code illustrated by unit tests. (Unit tests written TDD of course...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We don't write comments because they're verbose and obscure what's really going on in the code. If you feel the need to comment - find out what's not clear in the code and refactor/write clearer tests until there's no need for the comment...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... something I learned from Extreme Programming (assumes of course that you have established team norms for cleaning the code...)&lt;/p&gt;&#xA;" OwnerUserId="21228" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-25T22:11:19.110" CommentCount="5" />
  <row Id="31470" PostTypeId="2" ParentId="31104" CreationDate="2009-10-29T18:48:35.930" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Programming: It's a fun &lt;em&gt;job&lt;/em&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I seem to see two generalized groups of developers. Those that don't love it but they are competent and the money is good. The other group that love it to a point that is kinda creepy. It seems to be their life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just think it well paying job that is usually interesting and fun. There is all kinds of room to learn something new every minute of every day. I can't think of another job I would prefer. But it is still a job. Compromises will be made and the stuff you produce will not always be as good as it could be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given my druthers would be on a beach drinking beer or playing with my kids.&lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-29T18:48:35.930" />
  <row Id="31471" PostTypeId="2" ParentId="31104" CreationDate="2009-10-30T12:45:31.237" Score="2" ViewCount="" Body="&lt;p&gt;You only need 3 to 5 languages to do everything. C is a definite. Maybe assembly but you should know it and be able to use it. Maybe javascript and/or Java if you code for the web. A shell language like bash and one HLL, like Lisp, which might be useful. Anything else is a distraction.&lt;/p&gt;&#xA;" OwnerUserId="13500" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-30T12:45:31.237" />
  <row Id="31472" PostTypeId="2" ParentId="31104" CreationDate="2009-10-30T17:24:05.383" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Copy/Pasting is not an antipattern, it fact it helps with not making more bugs&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My rule of thumb - typing only something that cannot be copy/pasted. If creating similar method, class, or file - copy existing one and change what's needed. (I am not talking about duplicating a code that should have been put into a single method).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually never even type variable names - either copy pasting them or using IDE autocompletion. If need some DAO method - copying similar one and changing what's needed (even if 90% will be changed). May look like extreme laziness or lack of knowledge to some, but I almost never have to deal with problems caused my misspelling something trivial, and they are usually tough to catch (if not detected on a compile level). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whenever I step away from my copy-pasting rule and start typing stuff I always misspelling something (it's just a statistics, nobody can write perfect text off the bat) and then spending more time trying to figure out where.&lt;/p&gt;&#xA;" OwnerUserId="193" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-10-30T17:24:05.383" CommentCount="1" />
  <row Id="31473" PostTypeId="2" ParentId="31104" CreationDate="2009-11-01T12:29:05.503" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;There is only one design pattern: encapsulation&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Factory method: you've encapsulated object creation&lt;/li&gt;&#xA;&lt;li&gt;Strategy: you encapsulated different changeable algorithms&lt;/li&gt;&#xA;&lt;li&gt;Iterator: you encapsulated the way to sequentially access the elements in the collection.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-01T12:29:05.503" CommentCount="1" />
  <row Id="31474" PostTypeId="2" ParentId="31104" CreationDate="2009-11-01T12:36:45.037" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Modern C++ is a beautiful language&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There, I said it.  A lot of people really hate C++, but honestly, I find modern C++ with STL/Boost style programming to be a very expressive, elegant, and incredibly productive language most of the time.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think most people who hate C++ are basing that on bad experiences with OO.  C++ doesn't do OO very well because polymorphism often depends on heap-allocated objects, and C++ doesn't have automatic garbage collection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But C++ really shines when it comes to generic libraries and functional-programming techniques which make it possible to build incredibly large, highly-maintainable systems.  A lot of people say C++ tries to do everything, but ends up doing nothing very well.  I'd probably agree that it doesn't do OO as well as other languages, but it does generic programming and functional programming &lt;strong&gt;&lt;em&gt;better&lt;/em&gt;&lt;/strong&gt; than any other mainstream C-based language.  (C++0x will only further underscore this truth.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also appreciate how C++ lets me get low-level if necessary, and provides full access to the operating system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus RAII.  Seriously.  I really miss destructors when I program in other C-based languages.  (And no, garbage collection does not make destructors useless.)&lt;/p&gt;&#xA;" OwnerUserId="7733" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-01T12:36:45.037" CommentCount="3" />
  <row Id="31475" PostTypeId="2" ParentId="31104" CreationDate="2009-11-01T12:55:11.037" Score="14" ViewCount="" Body="&lt;p&gt;Making software configurable is a bad idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Configurable software allows the end-user (or admin etc) to choose too many options, which may not all have been tested together (or rather, if there are more than a very small number, I can guarantee will not have been tested).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I think software which has its configuration hard-coded (but not necessarily shunning constants etc) to JUST WORK is a good idea. Run with sensible defaults, and DO NOT ALLOW THEM TO BE CHANGED.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good example of this is the number of configuration options on Google Chrome - however, this is probably still too many :)&lt;/p&gt;&#xA;" OwnerUserId="18211" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-01T12:55:11.037" CommentCount="3" />
  <row Id="31476" PostTypeId="2" ParentId="31104" CreationDate="2009-11-01T18:17:33.413" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It Works, It's compatible, It'll be released soon&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-01T18:17:33.413" CommentCount="2" />
  <row Id="31477" PostTypeId="2" ParentId="31104" CreationDate="2009-11-04T02:18:57.557" Score="6" ViewCount="" Body="&lt;p&gt;Ternary operators absolutely suck.  They are the epitome of lazy ass programing.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;user-&amp;gt;isLoggedIn() ? user-&amp;gt;update() : user-&amp;gt;askLogin();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This is so easy to screw up. A little change in revision #2:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;user-&amp;gt;isLoggedIn() &amp;amp;&amp;amp; user-&amp;gt;isNotNew(time()) ? user-&amp;gt;update() : user-&amp;gt;askLogin();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Oh yeah, just one more &quot;little change.&quot;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;user-&amp;gt;isLoggedIn() &amp;amp;&amp;amp; user-&amp;gt;isNotNew(time()) ? user-&amp;gt;update() &#xA;    : user-&amp;gt;noCredentials() ? user-&amp;gt;askSignup&#xA;        : user-&amp;gt;askLogin();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Oh crap, what about that OTHER case?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;user-&amp;gt;isLoggedIn() &amp;amp;&amp;amp; user-&amp;gt;isNotNew(time()) &amp;amp;&amp;amp; !user-&amp;gt;isBanned() ? user-&amp;gt;update() &#xA;    : user-&amp;gt;noCredentials() || !user-&amp;gt;isBanned() ? user-&amp;gt;askSignup()&#xA;        : user-&amp;gt;askLogin();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;NO NO NO NO. Just save us the code change. Stop being freaking lazy:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (user-&amp;gt;isLoggedIn()) {&#xA;    user-&amp;gt;update()&#xA;} else {&#xA;    user-&amp;gt;askLogin();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Because doing it right the first time will save us all from having to convert your crap ternaries AGAIN and AGAIN:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (user-&amp;gt;isLoggedIn() &amp;amp;&amp;amp; user-&amp;gt;isNotNew(time()) &amp;amp;&amp;amp; !user-&amp;gt;isBanned()) {&#xA;    user-&amp;gt;update()&#xA;} else {&#xA;    if (user-&amp;gt;noCredentials() || !user-&amp;gt;isBanned()) {&#xA;        user-&amp;gt;askSignup();&#xA;    } else {&#xA;        user-&amp;gt;askLogin();&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-04T02:18:57.557" CommentCount="3" />
  <row Id="31478" PostTypeId="2" ParentId="31104" CreationDate="2009-11-04T02:22:44.397" Score="4" ViewCount="" Body="&lt;p&gt;The C++ STL library is so general purpose that it is optimal for no one.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-04T02:22:44.397" CommentCount="1" />
  <row Id="31479" PostTypeId="2" ParentId="31104" CreationDate="2009-11-04T09:47:46.697" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;JavaScript is a &quot;messy&quot; language but god help me I love it.&lt;/strong&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-04T09:47:46.697" CommentCount="4" />
  <row Id="31480" PostTypeId="2" ParentId="31104" CreationDate="2009-11-04T09:54:08.193" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Open Source software costs more in the long run&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For regular Line of Business companies, Open Source looks free but has hidden costs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you take into account inconsistency of quality, variable usability and UI/UX, difficulties of interoperability and standards, increased configuration, associated increased need for training and support, the Total Cost of Ownership for Open Source is much higher than commercial offerings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tech-savvy programmer-types take the liberation of Open Source and run with it; they 'get it' and can adopt it and customise it to suit their purposes. On the other hand, businesses that are primarily non-technical, but need software to run their offices, networks and websites are running the risk of a world of pain for themselves and heavy costs in terms of lost time, productivity and (eventually) support fees and/or the cost of abandoning the experiement all together.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-04T09:54:08.193" CommentCount="3" />
  <row Id="31481" PostTypeId="2" ParentId="31104" CreationDate="2009-11-06T04:28:23.217" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Size matters!&lt;/strong&gt; Embellish your code so it looks bigger.&lt;/p&gt;&#xA;" OwnerUserId="9546" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-06T04:28:23.217" CommentCount="1" />
  <row Id="31482" PostTypeId="2" ParentId="31104" CreationDate="2009-11-06T17:36:59.167" Score="1" ViewCount="" Body="&lt;p&gt;Apparently it is controversial that &lt;a href=&quot;http://stackoverflow.com/questions/1688470/for-what-reason-does-an-ide-not-check-to-see-if-it-can-create-a-binary-before-com&quot;&gt;IDE's should check&lt;/a&gt; to see whether they can link up the code they create before wasting time compiling &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I'm of the opinion that I shouldn't compile a zillion lines of code only to realize that Windows has a lock on the file I'm trying to create because another programmer has some weird threading issue that requires him to Delay Unloading DLLs for 3 minutes after they aren't supposed to be used. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-06T17:36:59.167" CommentCount="2" />
  <row Id="31483" PostTypeId="2" ParentId="31104" CreationDate="2009-11-07T02:54:15.163" Score="16" ViewCount="" Body="&lt;p&gt;Microsoft should stop supporting anything dealing with Visual Basic.&lt;/p&gt;&#xA;" OwnerUserId="12679" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-07T02:54:15.163" CommentCount="5" />
  <row Id="31484" PostTypeId="2" ParentId="31104" CreationDate="2009-11-08T17:55:45.030" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Use unit tests as a last resort to verify code.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you I want to verify that code is correct, I prefer the following techniques over unit testing: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Type checking&lt;/li&gt;&#xA;&lt;li&gt;Assertions&lt;/li&gt;&#xA;&lt;li&gt;Trivially verifiable code&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;For everything else, there's unit tests. &lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-08T17:55:45.030" CommentCount="4" />
  <row Id="31485" PostTypeId="2" ParentId="31104" CreationDate="2009-11-08T18:30:46.220" Score="7" ViewCount="" Body="&lt;h2&gt;Procedural programming is fun. OOP is boring.&lt;/h2&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-08T18:30:46.220" CommentCount="7" />
  <row Id="31486" PostTypeId="2" ParentId="31104" CreationDate="2009-11-09T19:28:26.367" Score="6" ViewCount="" Body="&lt;p&gt;Java is the COBOL of our generation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everyone learns to code it. There code for it running in big companies that will try to keep it running for decades. Everyone comes to despise it compared to all the other choices out there but are forced to use it anyway because it pays the bills.&lt;/p&gt;&#xA;" OwnerUserId="790" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-09T19:28:26.367" CommentCount="2" />
  <row Id="31487" PostTypeId="2" ParentId="31104" CreationDate="2009-11-12T00:45:58.130" Score="1" ViewCount="" Body="&lt;p&gt;&quot;XML and HTML are the &quot;assembly language&quot; of the web. Why still hack it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems fairly obvious that very few developers these days learn/code in assembly language for reason that it's primitive and takes you far away from the problem you have to solve at high-level. So we invented high-level languages to encapsulates those level entities to boost our productivity thru the language elements that we can relate to more at higher level. Just like we can do more with a computer than just its constituent motherboard or CPU.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the Web, it seems to me developers still are reading/writing and hacking HTML,CSS,XMl,schemas, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I see these as the equivalent of &quot;assembly language&quot; of the Web or its substrates.&#xA;Should we be done with it?. Sure, we need to hack it sometimes when things go wrong.&#xA;But surely, that's an exception.&#xA;I assert that we are replacing lower-level assembly language at machine level with its equivalent at Web-level.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-12T00:45:58.130" CommentCount="2" />
  <row Id="31488" PostTypeId="2" ParentId="31104" CreationDate="2009-11-12T11:48:45.523" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Human brain is the master key to all locks.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is nothing in this world that can move faster your brain. Trust me this is not philosophical but practical. Well as far as opinions are concerned , they are as under&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;hr&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Never go outside the boundry specified in the programming language, A simple example would be pointers in C and C++.  Dont misuse them as you are likely to get the &lt;strong&gt;DAMN SEGMENTATION FAULT.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Always follow the coding standards, yes what you are reading is correct, Coding standards do alot to your program, &lt;em&gt;After all your program is written to be executed by machine but to be understood by some other brain&lt;/em&gt; :)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-12T11:48:45.523" CommentCount="1" />
  <row Id="31489" PostTypeId="2" ParentId="31104" CreationDate="2009-11-12T12:10:22.757" Score="9" ViewCount="" Body="&lt;h2&gt;Assembler is not dead&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;In my job (copy protection systems) assembler programming is essential, I was working with many hll copy protection systems and only assembler gives you the real power to utilize all the possibilities hidden in the code (like code mutation, low level stuff).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also many code optimizations are possible only with an assembler programming, look at the sources of any video codecs, sources are written in assembler and optimized to use MMX/SSE/SSE2 opcodes whatever, many game engines uses assembler optimized routines, even Windows kernel has SSE optimized routines:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;NTDLL.RtlMoveMemory&#xA;&#xA;.text:7C902CD8                 push    ebp&#xA;.text:7C902CD9                 mov     ebp, esp&#xA;.text:7C902CDB                 push    esi&#xA;.text:7C902CDC                 push    edi&#xA;.text:7C902CDD                 push    ebx&#xA;.text:7C902CDE                 mov     esi, [ebp+0Ch]&#xA;.text:7C902CE1                 mov     edi, [ebp+8]&#xA;.text:7C902CE4                 mov     ecx, [ebp+10h]&#xA;.text:7C902CE7                 mov     eax, [esi]&#xA;.text:7C902CE9                 cld&#xA;.text:7C902CEA                 mov     edx, ecx&#xA;.text:7C902CEC                 and     ecx, 3Fh&#xA;.text:7C902CEF                 shr     edx, 6&#xA;.text:7C902CF2                 jz      loc_7C902EF2&#xA;.text:7C902CF8                 dec     edx&#xA;.text:7C902CF9                 jz      loc_7C902E77&#xA;.text:7C902CFF                 prefetchnta byte ptr [esi-80h]&#xA;.text:7C902D03                 dec     edx&#xA;.text:7C902D04                 jz      loc_7C902E03&#xA;.text:7C902D0A                 prefetchnta byte ptr [esi-40h]&#xA;.text:7C902D0E                 dec     edx&#xA;.text:7C902D0F                 jz      short loc_7C902D8F&#xA;.text:7C902D11&#xA;.text:7C902D11 loc_7C902D11:                           ; CODE XREF: .text:7C902D8Dj&#xA;.text:7C902D11                 prefetchnta byte ptr [esi+100h]&#xA;.text:7C902D18                 mov     eax, [esi]&#xA;.text:7C902D1A                 mov     ebx, [esi+4]&#xA;.text:7C902D1D                 movnti  [edi], eax&#xA;.text:7C902D20                 movnti  [edi+4], ebx&#xA;.text:7C902D24                 mov     eax, [esi+8]&#xA;.text:7C902D27                 mov     ebx, [esi+0Ch]&#xA;.text:7C902D2A                 movnti  [edi+8], eax&#xA;.text:7C902D2E                 movnti  [edi+0Ch], ebx&#xA;.text:7C902D32                 mov     eax, [esi+10h]&#xA;.text:7C902D35                 mov     ebx, [esi+14h]&#xA;.text:7C902D38                 movnti  [edi+10h], eax&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So if you hear next time that assembler is dead, think about the last movie you have watched or the game you've played (and its copy protection heh).&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-12T12:10:22.757" CommentCount="2" />
  <row Id="31490" PostTypeId="2" ParentId="31104" CreationDate="2009-11-13T01:12:33.317" Score="10" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Programming is neither art nor science.  It is an engineering discipline.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not art: programming requires creativity for sure.  That doesn't make it art.  Code is designed and written to work properly, not to be emotionally moving.  Except for whitespace, changing code for aesthetic reasons breaks your code.  While code can be beautiful, art is not the primary purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not science: science and technology are inseparable, but programming is in the technology category.  Programming is not systematic study and observation; it is design and implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's an engineering discipline: programmers design and build things.  Good programmers design for function.  They understand the trade-offs of different implementation options and choose the one that suits the problem they are solving.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;hr&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure there are those out there who would love to parse words, stretching the definitions of art and science to include programming or constraining engineering to mechanical machines or hardware only.  Check the dictionary.  Also &quot;The Art of Computer Programming&quot; is a different usage of art that means a skill or craft, as in &quot;the art of conversation.&quot;  The product of programming is not art.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-13T01:12:33.317" />
  <row Id="31491" PostTypeId="2" ParentId="31104" CreationDate="2009-11-13T20:46:04.763" Score="2" ViewCount="" Body="&lt;p&gt;Neither Visual Basic or C# trumps the other.  They are pretty much the same, save some syntax and formatting.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-13T20:46:04.763" CommentCount="1" />
  <row Id="31492" PostTypeId="2" ParentId="31104" CreationDate="2009-11-14T18:44:08.910" Score="9" ViewCount="" Body="&lt;p&gt;Not really programming, but I can't stand CSS-only layouts just for the sake of it.  It's counter productive, frustrating, and makes maintenance a nightmare of floats and margins where changing the position of a single element can throw the entire page out of whack.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's definitely not a popular opinion, but I'm done with my table layout in 20 minutes while the CSS gurus spend hours tweaking line-height, margins, padding and floats just to do something as basic as vertically centering a paragraph.&lt;/p&gt;&#xA;" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-02T11:59:17.180" LastActivityDate="2011-01-02T11:59:17.180" CommunityOwnedDate="2009-11-14T18:44:08.910" CommentCount="2" />
  <row Id="31493" PostTypeId="2" ParentId="31104" CreationDate="2009-11-15T07:07:42.150" Score="5" ViewCount="" Body="&lt;p&gt;I think we should move away from 'C'. Its too old!. But, the old dog is still barking louder!!&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-15T07:07:42.150" CommentCount="4" />
  <row Id="31494" PostTypeId="2" ParentId="31104" CreationDate="2009-11-18T20:51:45.640" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Macros&lt;/strong&gt;, &lt;strong&gt;preprocessor&lt;/strong&gt; instructions and &lt;strong&gt;annotations&lt;/strong&gt; are evil.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One syntax and language per file please!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;// Does not apply to Make files, or editor macros that insert real code.&lt;/p&gt;&#xA;" OwnerUserId="3084" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-02T11:58:12.143" LastActivityDate="2011-01-02T11:58:12.143" CommunityOwnedDate="2009-11-18T20:51:45.640" CommentCount="2" />
  <row Id="31495" PostTypeId="2" ParentId="31104" CreationDate="2009-11-18T20:59:57.893" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Writing extensive specifications is futile.&lt;/strong&gt;&lt;br&gt;&#xA;It's pretty difficult to write correct programs, but compilers, debuggers, unit tests, testers etc. make it possible to detect and eliminate most errors. On the other hand, when you write specs with a comparable level of detail like a program (i.e. pseudocode, UML), you are mostly on your own. Consider yourself lucky if you have a tool that helps you get the syntax right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Extensive specifications are most likely bug riddled.&lt;/strong&gt;&lt;br&gt;&#xA;The chance that the writer got it right at the first try is about the same like the chance that a similarily large program is bugfree without ever being tested. Peer reviews eliminate some bugs, just like code reviews do.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-18T20:59:57.893" CommentCount="1" />
  <row Id="31496" PostTypeId="2" ParentId="31104" CreationDate="2009-11-21T22:08:29.467" Score="23" ViewCount="" Body="&lt;h2&gt;&lt;strong&gt;Boolean variables should be used only for Boolean logic. In all other cases, use enumerations.&lt;/strong&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;hr&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Boolean variables are used to store data that can only take on two possible values.  The problems that arise from using them are frequently overlooked:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Programmers often cannot correctly identify when some piece of data should only have two possible values&lt;/li&gt;&#xA;&lt;li&gt;The people who instruct programmers what to do, such as program managers or whomever writes the specs that programmers follow, often cannot correctly identify this either&lt;/li&gt;&#xA;&lt;li&gt;Even when a piece of data is correctly identified as having only two possible states, that guarantee may not hold in the future.  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In these cases, using Boolean variables leads to confusing code that can often be prevented by using enumerations.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Say a programmer is writing software for a car dealership that sells only cars and trucks.  The programmer develops a thorough model of the business requirements for his software.  Knowing that the only types of vehicles sold are cars and trucks, he correctly identifies that he can use a boolean variable inside a Vehicle class to indicate whether the vehicle is a car or a truck.  &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Vehicle {&#xA; bool isTruck;&#xA; ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The software is written so when &lt;code&gt;isTruck&lt;/code&gt; is true a vehicle is a truck, and when &lt;code&gt;isTruck&lt;/code&gt; is false the vehicle is a car.  This is a simple check performed many times throughout the code.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everything works without trouble, until one day when the car dealership buys another dealership that sells motorcycles as well.  The programmer has to update the software so that it works correctly considering the dealership's business has changed.  It now needs to identify whether a vehicle is a car, truck, or motorcycle, three possible states.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How should the programmer implement this?  &lt;code&gt;isTruck&lt;/code&gt; is a boolean variable, so it can hold only two states.  He could change it from a boolean to some other type that allows many states, but this would break existing logic and possibly not be backwards compatible.  The simplest solution from the programmer's point of view is to add a new variable to represent whether the vehicle is a motorcycle.  &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Vehicle {&#xA; bool isTruck;&#xA; bool isMotorcycle;&#xA; ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The code is changed so that when &lt;code&gt;isTruck&lt;/code&gt; is true a vehicle is a truck, when &lt;code&gt;isMotorcycle&lt;/code&gt; is true a vehicle is a motorcycle, and when they're both false a vehicle is a car.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Problems&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are two big problems with this solution:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The programmer wants to express the type of the vehicle, which is one idea, but the solution uses two variables to do so.  Someone unfamiliar with the code will have a harder time understanding the semantics of these variables than if the programmer had used just one variable that specifies the type entirely.  &lt;/li&gt;&#xA;&lt;li&gt;Solving this motorcycle problem by adding a new boolean doesn't make it any easier for the programmer to deal with such situations that happen in the future.  If the dealership starts selling buses, the programmer will have to repeat all these steps over again by adding yet another boolean.  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It's not the developer's fault that the business requirements of his software changed, requiring him to revise existing code.  But using boolean variables in the first place made his code less flexible and harder to modify to satisfy unknown future requirements (less &quot;future-proof&quot;).  When he implemented the changes in the quickest way, the code became harder to read.  Using a boolean variable was ultimately a premature optimization.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using an enumeration in the first place would have prevented these problems.  &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;enum EVehicleType { Truck, Car }&#xA;&#xA;class Vehicle {&#xA; EVehicleType type;&#xA; ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;To accommodate motorcycles in this case, all the programmer has to do is add &lt;code&gt;Motorcycle&lt;/code&gt; to &lt;code&gt;EVehicleType&lt;/code&gt;, and add new logic to handle the motorcycle cases.  No new variables need to be added.  Existing logic shouldn't be disrupted.  And someone who's unfamiliar with the code can easily understand how the type of the vehicle is stored.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Cliff Notes&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't use a type that can only ever store two different states unless you're absolutely certain two states will always be enough.  Use an enumeration if there are any possible conditions in which more than two states will be required in the future, &lt;em&gt;even if a boolean would satisfy existing requirements&lt;/em&gt;.  &lt;/p&gt;&#xA;" OwnerUserId="1234" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-21T22:08:29.467" CommentCount="7" />
  <row Id="31497" PostTypeId="2" ParentId="31104" CreationDate="2009-11-21T22:24:36.727" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;One class per file&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Who cares? I much prefer entire programs contained in one file rather than a million different files.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-21T22:24:36.727" CommentCount="4" />
  <row Id="31498" PostTypeId="2" ParentId="31104" CreationDate="2009-11-24T20:52:51.380" Score="7" ViewCount="" Body="&lt;p&gt;Size matters. &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-24T20:52:51.380" />
  <row Id="31499" PostTypeId="2" ParentId="31104" CreationDate="2009-11-24T21:04:22.417" Score="24" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;It's fine if you don't know. But you're fired if you can't even google it.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Internet is a tool. It's not making you more stupid if you're learning from it.&lt;/p&gt;&#xA;" OwnerUserId="2729" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-22T10:39:24.177" LastActivityDate="2011-01-22T10:39:24.177" CommunityOwnedDate="2009-11-24T21:04:22.417" CommentCount="1" />
  <row Id="31500" PostTypeId="2" ParentId="31104" CreationDate="2009-11-25T23:10:09.907" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Don't be shy, throw an exception.&lt;/strong&gt;&#xA;Exceptions are a perfectly valid way to signal failure, and are much clearer than any return-code system. &quot;Exceptional&quot; has nothing to do with how often this can happen, and everything to do with what the class considers normal execution conditions. Throwing an exception when a division by zero occurs is just fine, regardless of how often the case can happen. If the problem is likely, guard your code so that the method doesn't get called with incorrect arguments.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-11-25T23:10:09.907" CommentCount="1" />
  <row Id="31501" PostTypeId="2" ParentId="31104" CreationDate="2009-12-03T13:38:12.630" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Writing it yourself can be a valid option.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience there seems to be too much enthusiasm when it comes to using 3rd party code to solve a problem. The option of solving the problem by themselves does usually not cross peoples minds. Although don't get me wrong, I am not propagating to never ever use libraries. What I am saying is: among the possible frameworks and modules you are considering to use, add the option of implementing the solution yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But why would you code your own version?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Don't reinvent the wheel. But, if you only need a piece of wood, do you really need a whole cart wheel? In other words, do you really need openCV to flip an image along an axis?&lt;/li&gt;&#xA;&lt;li&gt;Compromise. You usually have to make compromises concerning your design, in order to be able to use a specific library. Is the amount of changes you have to incorporate worth the functionality you will receive?&lt;/li&gt;&#xA;&lt;li&gt;Learning. You have to learn to use these new frameworks and modules. How long will it take you? Is it worth your while? Will it take longer to learn than to implement?&lt;/li&gt;&#xA;&lt;li&gt;Cost. Not everything is for free. Although, this includes your time. Consider how much time this software you are about to use will save you and if it is worth it's price? (Also remember that you have to invest time to learn it)&lt;/li&gt;&#xA;&lt;li&gt;You are a programmer, not ... a person who just clicks things together (sorry, couldn't think of anything witty). &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The last point is debatable.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-12-03T13:38:12.630" />
  <row Id="31502" PostTypeId="2" ParentId="31104" CreationDate="2009-12-06T14:06:10.537" Score="7" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Using regexs to parse HTML is, in many cases,  fine&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every time someone posts a question on Stack Overflow asking how to achieve some HTML manuipulation with a regex, the first answer is &quot;Regex is a insufficient tool to parse HTML so don't do it&quot;. If the questioner was trying to build a web browser, this would be a helpful answer. However, usually the questioner wants to do some thing like add a rel tag to all the links to a certain domain, usually in a case when certain assumptions can be made about the style of the incoming markup, something that is entiely reasonable to do with a regex.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-12-06T14:06:10.537" />
  <row Id="31503" PostTypeId="2" ParentId="31104" CreationDate="2009-12-09T20:02:50.307" Score="3" ViewCount="" Body="&lt;p&gt;Storing XML in a CLOB in a relational database is often a horrible cop-out.  Not only is it hideous in terms of performance, it shifts responsibility for correctly managing structure of the data away from the database architect and onto the application programmer.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-12-09T20:02:50.307" />
  <row Id="31504" PostTypeId="2" ParentId="31104" CreationDate="2009-12-09T20:25:38.130" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Software is like toilet paper. The less you spend on it, the bigger of a pain in the ass it is.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is to say, outsourcing is rarely a good idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've always figured this to be true, but I never really knew the extent of it until recently. I have been &quot;maintaining&quot; (read: &quot;fixing&quot;) some off-shored code recently, and it is a huge mess. It is easily costing our company more than the difference had it been developed in-house.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People outside your business will inherently know less about your business model, and therefore will not do as good a job programming any system that works within your business. Also, they know they won't have to support it, so there's no incentive to do anything other than half-ass it.&lt;/p&gt;&#xA;" OwnerUserId="15158" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-12-09T20:25:38.130" CommentCount="4" />
  <row Id="31505" PostTypeId="2" ParentId="31104" CreationDate="2009-12-09T20:35:33.180" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blogs.sun.com/tor/entry/code%5Fadvice%5F3%5Fno%5Ftabs&quot; rel=&quot;nofollow&quot;&gt;Tabs vs Whitespaces&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-12-09T20:35:33.180" />
  <row Id="31506" PostTypeId="2" ParentId="31104" CreationDate="2009-12-14T23:58:07.113" Score="12" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Intranet frameworks like SharePoint makes me think the whole corporate world is one giant ostrich with its head in the sand&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not only talking about &lt;a href=&quot;http://en.wikipedia.org/wiki/Microsoft_SharePoint_Server&quot; rel=&quot;nofollow&quot;&gt;MOSS&lt;/a&gt; here, I've worked with some other CORPORATE INTRANET products, and absolutely not one of them are great, but SharePoint (MOSS) is by far the worst. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Most of these systems don't easily bridge the gap between Intranet and Internet. So as a remote worker you're forced to VPN in. External customers just don't have the luxury of getting hold of your internal information first hand. Sure this can be fixed at a price $$$. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The search capabilities are always pathetic. Lots of time other departments simply don't know about information out there. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Information fragments, people start boycotting workflows or revert to email&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;SharePoint development is the most painful form of development on the planet. Nothing sucks like SharePoint. I've seen a few developers contemplating quitting IT after working for over a year with MOSS.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;No matter how the developers hate MOSS, no matter how long the most basic of projects take to roll out, no matter how novice the results look, and no matter how unsearchable and fragmented the content is:&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;EVERYONE STILL CONTINUES TO USE AND PURCHASE SHAREPOINT, AND MANAGERS STILL TRY VERY HARD TO PRETEND IT'S NOT SATANS SPAWN. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Microformats&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using CSS classes originally designed for visual layout - now being assigned for both visual and contextual data is a hack, loads of ambiguity. Not saying the functionality should not exist, but fix the damn base language. HTML wasn't hacked to produce XML - instead the XML language emerged. Now we have these eager script kiddies hacking HTML and CSS to do something it wasn't designed to do, that's still fine, but I wish they would keep these things to themselves, and no make a standard out of it. Just to some up - butchery!&lt;/p&gt;&#xA;" OwnerUserId="20831" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-02T11:54:01.833" LastActivityDate="2011-01-02T11:54:01.833" CommunityOwnedDate="2009-12-14T23:58:07.113" CommentCount="4" />
  <row Id="31507" PostTypeId="2" ParentId="31104" CreationDate="2009-12-15T00:43:23.113" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Associative Arrays / Hash Maps / Hash Tables (+whatever it's called in your favourite language) are the best thing since sliced bread!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, they provide fast lookup from key to value. But they also make it easy to construct structured data on the fly. In scripting languages it's often the only (or at least most used) way to represent structured data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMHO they were a very important factor for the success of many scripting languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And even in C++ std::map and std::tr1::unordered_map helped me writing code faster.&lt;/p&gt;&#xA;" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-02T11:50:13.050" LastActivityDate="2011-01-02T11:50:13.050" CommunityOwnedDate="2009-12-15T00:43:23.113" CommentCount="1" />
  <row Id="31508" PostTypeId="2" ParentId="31104" CreationDate="2009-12-15T04:48:35.627" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;C++ is future killer language...&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... of dynamic languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nobody owns it, it has a growing set of features like compile-time (meta-)programming or type inference, callbacks without the overhead of function calls, doesn't enforce a single approach (multi-paradigm).  POSIX and ECMAScript &lt;a href=&quot;http://www.boost.org/doc/libs/1_41_0/doc/html/boost_tr1/subject_list.html#boost_tr1.subject_list.regex&quot; rel=&quot;nofollow&quot;&gt;regular expressions&lt;/a&gt;.  &lt;a href=&quot;http://www.boost.org/doc/libs/1_41_0/doc/html/boost_tr1/subject_list.html#boost_tr1.subject_list.tuple&quot; rel=&quot;nofollow&quot;&gt;Multiple return values&lt;/a&gt;.  You can have &lt;a href=&quot;http://www.boost.org/doc/libs/1_41_0/libs/parameter/doc/html/index.html&quot; rel=&quot;nofollow&quot;&gt;named arguments&lt;/a&gt;, etc., etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things move really slowly in programming.  It took JavaScript 10 years to get off the ground (mostly because of performance), and most of people who program in it still don't get it (classes in JavaScript? c'mon!).  I'd say C++ will really start shining in 15-20 years from now.  That seems to me like about the right amount of time for C++ (the language as well as compiler vendors) and critical mass of programmers who today write in dynamic languages to converge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ needs to become more programmer-friendly (compiler errors generated from templates or compile times in the presence of same), and the programmers need to realize that static typing is a boon (it's already in progress, see another answer here which asserts that good code written in a dynamically typed language is written as if the language was statically typed).&lt;/p&gt;&#xA;" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-02T11:49:29.260" LastActivityDate="2011-01-02T11:49:29.260" CommunityOwnedDate="2009-12-15T04:48:35.627" CommentCount="1" />
  <row Id="31509" PostTypeId="2" ParentId="31104" CreationDate="2009-12-15T05:01:41.030" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Relational database systems &lt;em&gt;will&lt;/em&gt; be the best thing since sliced bread...&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... when we (hopefully) get them, that is.  SQL databases suck so hard it's not funny.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I find amusing (if sad) is &lt;em&gt;certified DBAs&lt;/em&gt; who think an SQL database system is a relational one.  Speaks volumes for the quality of said certification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Confused?  Read C. J. Date's books.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;edit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why is it called &lt;em&gt;Relational&lt;/em&gt; and what does that word mean?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These days, a programmer (or a certified DBA, &lt;em&gt;wink&lt;/em&gt;) with a strong (heck, &lt;em&gt;any&lt;/em&gt;) mathematical background is an exception rather than the common case (I'm an instance of the common case as well).  SQL with its &lt;em&gt;tables&lt;/em&gt;, &lt;em&gt;columns&lt;/em&gt; and &lt;em&gt;rows&lt;/em&gt;, as well as the joke called Entity/Relationship Modelling just add insult to the injury.  No wonder the misconception that &lt;em&gt;Relational&lt;/em&gt; Database Systems are called that because of some &lt;em&gt;Relationships&lt;/em&gt; (Foreign Keys?) between &lt;em&gt;Entities&lt;/em&gt; (tables) is so pervasive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, &lt;em&gt;Relational&lt;/em&gt; derives from the &lt;em&gt;mathematical&lt;/em&gt; concept of relations, and as such is intimately related to set theory and functions (in the mathematical, not any programming, sense).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[&lt;a href=&quot;http://en.wikipedia.org/wiki/Finitary%5Frelation%5D%5B2%5D&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Finitary%5Frelation%5D%5B2%5D&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In mathematics (more specifically, in set theory and logic), a &lt;strong&gt;relation&lt;/strong&gt; is a property that assigns truth values to combinations (&lt;em&gt;k&lt;/em&gt;-tuples) of &lt;em&gt;k&lt;/em&gt; individuals. Typically, the property describes a possible connection between the components of a &lt;em&gt;k&lt;/em&gt;-tuple. For a given set of &lt;em&gt;k&lt;/em&gt;-tuples, a truth value is assigned to each &lt;em&gt;k&lt;/em&gt;-tuple according to whether the property does or does not hold.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;An example of a ternary relation (i.e., between three individuals) is: &quot;&lt;em&gt;X&lt;/em&gt; was-introduced-to &lt;em&gt;Y&lt;/em&gt; by &lt;em&gt;Z&lt;/em&gt;&quot;, where (X,Y,Z) is a 3-tuple of persons; for example, &quot;Beatrice Wood was introduced to Henri-Pierre Roché by Marcel Duchamp&quot; is true, while &quot;Karl Marx was introduced to Friedrich Engels by Queen Victoria&quot; is false.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Wikipedia makes it perfectly clear: in a SQL DBMS, such a ternary relation would be a &quot;&lt;em&gt;table&lt;/em&gt;&quot;, not a &quot;&lt;em&gt;foreign key&lt;/em&gt;&quot; (I'm taking the liberty to rename the &quot;columns&quot; of the relation: X = who, Y = to, Z = by):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;CREATE TABLE introduction (&#xA;  who INDIVIDUAL NOT NULL&#xA;, to INDIVIDUAL NOT NULL&#xA;, by INDIVIDUAL NOT NULL&#xA;, PRIMARY KEY (who, to, by)&#xA;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Also, it would contain (among others, possibly), this &quot;&lt;em&gt;row&lt;/em&gt;&quot;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;INSERT INTO introduction (&#xA;  who&#xA;, to&#xA;, by&#xA;) VALUES (&#xA;  'Beatrice Wood'&#xA;, 'Henri-Pierre Roché'&#xA;, 'Marcel Duchamp'&#xA;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;but not this one:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;INSERT INTO introduction (&#xA;  who&#xA;, to&#xA;, by&#xA;) VALUES (&#xA;  'Karl Marx'&#xA;, 'Friedrich Engels'&#xA;, 'Queen Victoria'&#xA;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Relational Database Dictionary:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;relation (mathematics)&lt;/strong&gt; Given sets &lt;em&gt;s1&lt;/em&gt;, &lt;em&gt;s2&lt;/em&gt;, ..., &lt;em&gt;sn&lt;/em&gt;, not necessarily distinct, &lt;em&gt;r&lt;/em&gt; is a relation on those sets if and only if it's a set of &lt;em&gt;n&lt;/em&gt;-tuples each of which has its first element from &lt;em&gt;s1&lt;/em&gt;, its second element from &lt;em&gt;s2&lt;/em&gt;, and so on.  (Equivalently, &lt;em&gt;r&lt;/em&gt; is a subset of the Cartesian product &lt;em&gt;s1&lt;/em&gt; x &lt;em&gt;s2&lt;/em&gt; x ... x &lt;em&gt;sn&lt;/em&gt;.)&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Set &lt;em&gt;si&lt;/em&gt; is the &lt;em&gt;i&lt;/em&gt;th domain of &lt;em&gt;r&lt;/em&gt; (&lt;em&gt;i&lt;/em&gt; = 1, ..., &lt;em&gt;n&lt;/em&gt;).  &lt;em&gt;Note&lt;/em&gt;: There are several important logical differences between relations in mathematics and their relational model counterparts.  Here are some of them:&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;Mathematical relations have a left-to-right ordering to their attributes.&lt;/li&gt;&#xA;  &lt;li&gt;Actually, mathematical relations have, at best, only a very rudimentary concept of attributes anyway.  Certainly their attributes aren't named, other than by their ordinal position.&lt;/li&gt;&#xA;  &lt;li&gt;As a consequence, mathematical relations don't really have either a heading or a type in the relational model sense.&lt;/li&gt;&#xA;  &lt;li&gt;Mathematical relations are usually either binary or, just occasionally, unary.  By contrast, relations in the relational model are of degree &lt;em&gt;n&lt;/em&gt;, where &lt;em&gt;n&lt;/em&gt; can be any nonnegative integer.&lt;/li&gt;&#xA;  &lt;li&gt;Relational operators such as JOIN, EXTEND, and the rest were first defined in the context of the relational model specifically; the mathematical theory of relations includes few such operators.&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;  &#xA;  &lt;p&gt;And so on (the foregoing isn't meant to be an exhaustive list).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-12-15T05:01:41.030" CommentCount="7" />
  <row Id="31510" PostTypeId="2" ParentId="31104" CreationDate="2009-12-15T05:41:37.960" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Development is 80% about the design and 20% about coding&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe that developers should spend 80% of time designing at the fine level of detail, what they are going to build and only 20% actually coding what they've designed. This will produce code with near zero bugs and save a lot on test-fix-retest cycle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Getting to the metal (or IDE) early is like premature optimization, which is know to be a root of all evil. Thoughtful upfront design (I'm not necessarily talking about enormous design document, simple drawings on white board will work as well) will yield much better results than just coding and fixing.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-12-15T05:41:37.960" />
  <row Id="31511" PostTypeId="2" ParentId="31104" CreationDate="2009-12-15T05:49:12.383" Score="1" ViewCount="" Body="&lt;p&gt;Simplicity Vs Optimality&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe it's very difficult to write code that's both simple and optimal.&lt;/p&gt;&#xA;" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-02T11:44:31.587" LastActivityDate="2011-01-02T11:44:31.587" CommunityOwnedDate="2009-12-15T05:49:12.383" />
  <row Id="31512" PostTypeId="2" ParentId="31104" CreationDate="2009-12-16T00:03:20.647" Score="2" ViewCount="" Body="&lt;p&gt;80% of bugs are introduced in the design stage.&#xA;&lt;br&gt;&#xA;The other 80% are introduced in the coding stage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(This opinion was inspired by reading Dima Malenko's answer.  &quot;Development is 80% about the design and 20% about coding&quot;, yes.  &quot;This will produce code with near zero bugs&quot;, no.)&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-12-16T00:03:20.647" />
  <row Id="31513" PostTypeId="2" ParentId="31104" CreationDate="2009-12-16T19:05:49.157" Score="2" ViewCount="" Body="&lt;p&gt;Best practices aren't.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-12-16T19:05:49.157" />
  <row Id="31514" PostTypeId="2" ParentId="31104" CreationDate="2009-12-23T11:41:03.290" Score="4" ViewCount="" Body="&lt;p&gt;Small code is always better, but complex. It made me realize that sometimes large code is more readable.&lt;/p&gt;&#xA;" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-02T11:43:35.783" LastActivityDate="2011-01-02T11:43:35.783" CommunityOwnedDate="2009-12-23T11:41:03.290" />
  <row Id="31515" PostTypeId="2" ParentId="31104" CreationDate="2009-12-27T06:52:38.533" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Python does everything that other programming languages do in half the development time&lt;/strong&gt;... and so does Google!!! Check out &lt;a href=&quot;http://code.google.com/p/unladen-swallow/&quot; rel=&quot;nofollow&quot;&gt;Unladen Swallow&lt;/a&gt; if you disagree.&lt;/p&gt;&#xA;" OwnerUserId="825" LastEditorUserId="591" LastEditorDisplayName="" LastEditDate="2011-01-22T10:41:30.070" LastActivityDate="2011-01-22T10:41:30.070" CommunityOwnedDate="2009-12-27T06:52:38.533" CommentCount="2" />
  <row Id="31516" PostTypeId="2" ParentId="31104" CreationDate="2009-12-27T07:27:08.600" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Lower camelCase is stupid and unsemantic&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using lower camelCase makes the name/identifier (&quot;name&quot; used from this point) look like a two-part thing. Upper CamelCase however, gives the clear indication that all the words belong together.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Hungarian notation is different&lt;/em&gt; ... because the first part of the name is a type indicator, and so it has a separate meaning from the rest of the name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some might argue that lower camelCase should be used for functions/procedures, especially inside classes. This is popular in Java and object oriented PHP. However, there is no reason to do that to indicate that they are class methods, because &lt;em&gt;BY THE WAY THEY ARE ACCESSED&lt;/em&gt; it becomes more than clear that these are just that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some code examples:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;# Java&#xA;myobj.objMethod() &#xA;# doesn't the dot and parens indicate that objMethod is a method of myobj?&#xA;&#xA;# PHP&#xA;$myobj-&amp;gt;objMethod() &#xA;# doesn't the pointer and parens indicate that objMethod is a method of myobj?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Upper CamelCase is useful for class names, and other static names. All non-static content should be recognised by the way they are accessed, not by their name format(!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's my homogenous code example, where name behaviours are indicated by other things than their names... (also, I prefer underscore to separate words in names).&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;# Java&#xA;my_obj = new MyObj() # Clearly a class, since it's upper CamelCase&#xA;my_obj.obj_method() # Clearly a method, since it's executed&#xA;my_obj.obj_var # Clearly an attribute, since it's referenced&#xA;&#xA;# PHP&#xA;$my_obj = new MyObj()&#xA;$my_obj-&amp;gt;obj_method()&#xA;$my_obj-&amp;gt;obj_var&#xA;MyObj::MyStaticMethod()&#xA;&#xA;# Python&#xA;MyObj = MyClass # copies the reference of the class to a new name&#xA;my_obj = MyObj() # Clearly a class, being instantiated&#xA;my_obj.obj_method() # Clearly a method, since it's executed&#xA;my_obj.obj_var # clearly an attribute, since it's referenced&#xA;my_obj.obj_method # Also, an attribute, but holding the instance method.&#xA;my_method = myobj.obj_method # Instance method&#xA;my_method() # Same as myobj.obj_method()&#xA;MyClassMethod = MyObj.obj_method # Attribute holding the class method&#xA;MyClassMethod(myobj) # Same as myobj.obj_method()&#xA;MyClassMethod(MyObj) # Same as calling MyObj.obj_method() as a static classmethod&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So there goes, my completely &lt;strike&gt;ob&lt;/strike&gt;subjective opinion on camelCase.&lt;/p&gt;&#xA;" OwnerUserId="3856" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-12-27T07:27:08.600" CommentCount="5" />
  <row Id="31517" PostTypeId="2" ParentId="31104" CreationDate="2009-12-28T07:02:51.597" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Programmers need to talk to customers&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some programmers believe that they don't need to be the ones talking to customers. It's a sure way for your company to write something absolutely brilliant which no one can work out what it's for or how it was intended to be used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can't expect product managers and business analysts to make all the decisions. In fact, programmers should be making 990 out of the 1000 (often small) decisions that go into creating a module or feature, otherwise the product would simply never ship! So make sure your decisions are informed. Understand your customers, work with them, watch them use your software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're going the write the best code, you want people to use it. Take an interest in your user base and learn from the &quot;dumb idiots&quot; who are out there. Don't be afraid, they'll actually love you for it.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-12-28T07:02:51.597" />
  <row Id="31518" PostTypeId="2" ParentId="31104" CreationDate="2009-12-28T07:22:08.903" Score="5" ViewCount="" Body="&lt;p&gt;Zealous adherence to standards stands in the way of simplicity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;MVC is over-rated for websites.  It's mostly just VC, sometimes M.&lt;/p&gt;&#xA;" OwnerUserId="3158" LastActivityDate="2010-12-28T21:56:51.143" CommunityOwnedDate="2009-12-28T07:22:08.903" CommentCount="1" />
  <row Id="31519" PostTypeId="2" ParentId="31085" CreationDate="2010-12-28T22:05:22.963" Score="3" ViewCount="" Body="&lt;p&gt;Tell them to hire someone else and as a &quot;friend&quot; you can help with the trust factor by agreeing to do a little code review. If you don't know other coders in your area that work on iPhone apps and need work, start looking. You may want to hire them one day.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-28T22:05:22.963" />
  <row Id="31520" PostTypeId="2" ParentId="30049" CreationDate="2010-12-28T22:10:31.117" Score="1" ViewCount="" Body="&lt;p&gt;I think you may have a mistaken understanding of Unix &lt;em&gt;&lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/System_programming&quot; rel=&quot;nofollow&quot;&gt;systems programming&lt;/a&gt;&lt;/em&gt;, which is developing of system software (i.e. Operating System, kernel, system tools) in a &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/System_programming_language&quot; rel=&quot;nofollow&quot;&gt;typically&lt;/a&gt; statically typed compiled programming language (e.g. C, C++, Assembly) for a Unix system. For that you need to experience in systems-level programming, and as most commercial Unix vendors are in a fairly conservative (not growing) mode of operating, the hiring frequency is small. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But based on the rest of you question, I believe you actually &lt;em&gt;want&lt;/em&gt; to know more about professional programming opportunities on &lt;a href=&quot;http://www.unix.org/what_is_unix.html&quot; rel=&quot;nofollow&quot;&gt;Unix&lt;/a&gt; (and Unix-like) systems. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a huge gap from a system administrator developing and maintaining site-specific shell-scripts and writing production grade application or system software for customers, either as an in-house developer, a consultant, or for a shrink-wrap software vendor. What I would recommend is that you learn about programming as a profession, e.g. &lt;a href=&quot;http://www.pragprog.com/the-pragmatic-programmer&quot; rel=&quot;nofollow&quot;&gt;The Pragmatic Programmer&lt;/a&gt; by Andrew Hunt and David Thomas, &lt;a href=&quot;http://cc2e.com/&quot; rel=&quot;nofollow&quot;&gt;Code Complete&lt;/a&gt; by Steven McConnell, &lt;a href=&quot;http://www.acm.org/&quot; rel=&quot;nofollow&quot;&gt;ACM&lt;/a&gt;, IEEE &lt;a href=&quot;http://www.computer.org/&quot; rel=&quot;nofollow&quot;&gt;Computer Society&lt;/a&gt;, and the &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201835959&quot; rel=&quot;nofollow&quot;&gt;Mythical Man-Month&lt;/a&gt; by Fred Brooks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest learning both &lt;a href=&quot;http://learn.perl.org/&quot; rel=&quot;nofollow&quot;&gt;Perl&lt;/a&gt; and &lt;a href=&quot;http://wiki.python.org/moin/BeginnersGuide&quot; rel=&quot;nofollow&quot;&gt;Python&lt;/a&gt; as two popular scripting languages that can be successfully used as a bridge between writing shell scripts, and writing larger programs in general. Perl in particular will allow you to leverage your existing knowledge of Unix tools like &lt;code&gt;awk&lt;/code&gt;, &lt;code&gt;sed&lt;/code&gt;, and the Borne &lt;code&gt;sh&lt;/code&gt;-ell, as much of early Perl development by its creator, Larry Wall, was &lt;a href=&quot;http://www.shlomifish.org/lecture/Perl/Newbies/lecture1/intro/history.html&quot; rel=&quot;nofollow&quot;&gt;driven&lt;/a&gt; by his desire for a coherent scripting and reporting tool. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course any serious or senior &quot;Unix programmer&quot; also is at least fluent in &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/C_%28programming_language%29#History&quot; rel=&quot;nofollow&quot;&gt;C programming language&lt;/a&gt;, even if it is not the language of choice for their own projects. Two standard texts used to learn, and master C are &lt;a href=&quot;http://cm.bell-labs.com/cm/cs/cbook/&quot; rel=&quot;nofollow&quot;&gt;The C Programming Language&lt;/a&gt; by Brian W. Kernighan and Dennis M. Ritchie (K &amp;amp; R), and &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/013089592X&quot; rel=&quot;nofollow&quot;&gt;C: A Reference Manual&lt;/a&gt; (&lt;a href=&quot;http://www.careferencemanual.com/&quot; rel=&quot;nofollow&quot;&gt;web site&lt;/a&gt;) by Samuel Harbison and Guy Steele. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://encyclopedia2.thefreedictionary.com/Use+the+Source+Luke&quot; rel=&quot;nofollow&quot;&gt;Use the Source&lt;/a&gt;, download a free Unix or Unix-like Operating System such as &lt;a href=&quot;http://netbsd.org/&quot; rel=&quot;nofollow&quot;&gt;NetBSD&lt;/a&gt;, &lt;a href=&quot;http://www.freebsd.org/&quot; rel=&quot;nofollow&quot;&gt;FreeBSD&lt;/a&gt;, &lt;a href=&quot;http://www.openbsd.org/&quot; rel=&quot;nofollow&quot;&gt;OpenBSD&lt;/a&gt;, or &lt;a href=&quot;http://www.debian.org/&quot; rel=&quot;nofollow&quot;&gt;Linux&lt;/a&gt; and read the freely available source code to learn how things are done. This is of course only practical once you have gained an understanding of C, and &lt;a href=&quot;http://www.unix.org/version3/online.html&quot; rel=&quot;nofollow&quot;&gt;POSIX&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="11206" LastActivityDate="2010-12-28T22:10:31.117" />
  <row Id="31521" PostTypeId="2" ParentId="31085" CreationDate="2010-12-28T22:12:36.230" Score="12" ViewCount="" Body="&lt;p&gt;Never, ever don't do this. You'll usually lose your friend and waste your time. Remember how people see all developement projects... &quot;it's not a real job, he's just fooling around / clicking for 15 minutes and it's done&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other popular believe is that &quot;anyone's kid can do this&quot;. Your friend will ask on some forum &quot;how much it should cost&quot;, then a mass amount of pokemons will pop-up saying a price adequate to buy a pack of chips or 2 beers... or better yet, will show him some incomplete opensource script that was abandoned 10 years ago, that is &quot;almost the same like your several-thousands-$$ app... look, it's all same here... just links aren't working, and there are some errors, but it's 5 minutes to fix&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And your friendship will be ruined, because &quot;you charged several thousands for something that costs $10&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never, ever, no business with friends or family. Even if you get more serious buyer that'll be your friend, when you'll want to charge for fixes or additional features you'll probably look like jerk to him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No &quot;trust factor&quot;. Tell him normal price, then if he'd want to pay it tell him you don't have time!&lt;/p&gt;&#xA;" OwnerUserId="11827" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-12-29T00:01:27.503" LastActivityDate="2010-12-29T00:01:27.503" CommentCount="4" />
  <row Id="31522" PostTypeId="2" ParentId="31085" CreationDate="2010-12-28T22:17:35.763" Score="1" ViewCount="" Body="&lt;p&gt;Friends with money is like oil with water - they don't mix.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should try your very best to not do business with friends.&lt;/p&gt;&#xA;" OwnerUserId="10961" LastActivityDate="2010-12-28T22:17:35.763" />
  <row Id="31523" PostTypeId="2" ParentId="31063" CreationDate="2010-12-28T22:19:09.923" Score="0" ViewCount="" Body="&lt;p&gt;That's really bad approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Partition the table vertically, 2 database servers one for odd user ids, and another for even should work well (the data is not related between users).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sort the data by user_id and if that's not possible get a huge amount of RAM or SSD disks.&lt;/p&gt;&#xA;" OwnerUserId="11827" LastActivityDate="2010-12-28T22:19:09.923" />
  <row Id="31524" PostTypeId="2" ParentId="31063" CreationDate="2010-12-28T22:33:06.400" Score="4" ViewCount="" Body="&lt;p&gt;Sounds like a bad idea. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't try to outsmart the database with exotic constructions like this. Database engines are designed with lots of optimizations to handle large data sets. For example, what you are describing sounds awfully close to an attempt for manually implementing indexes. Just use indexes provided by the DB Engine, they are implemented much better than you are likely going to be able to do on your own, and it won't require as much maintenance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, as a general rule of thumb. I suggest not architecting a database in a manner that requires manipulation or creation of database structures (tables,fields) during the normal use of the application. It makes optimizing for performance a bear and often forces you to give too many permissions to users to do routine tasks potentially creating security holes.&lt;/p&gt;&#xA;" OwnerUserId="287" LastEditorUserId="287" LastEditorDisplayName="" LastEditDate="2010-12-29T02:04:15.277" LastActivityDate="2010-12-29T02:04:15.277" CommentCount="2" />
  <row Id="31525" PostTypeId="2" ParentId="30853" CreationDate="2010-12-28T22:34:18.413" Score="1" ViewCount="" Body="&lt;p&gt;I think it is important, but here are some instances when it is less:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The developer is a typical user or very experienced working in a particular domain.&lt;/li&gt;&#xA;&lt;li&gt;You're building the part of the app that the client has little to no interaction.&lt;/li&gt;&#xA;&lt;li&gt;The developer does not have strong social/communication skills at this point. Don't practice on your clients, but do work on it.&lt;/li&gt;&#xA;&lt;li&gt;There are other team members to pick up the slack.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Reminds me of a quote, &quot;Programmers would rather write programs to help write programs than actually write programs.&quot; I've never felt this way. I'm more like the cat that likes to drop the occasional mouse on your doorstep to show you what I've been up to so I'll get attention.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-28T22:34:18.413" />
  <row Id="31526" PostTypeId="2" ParentId="30895" CreationDate="2010-12-28T22:53:30.580" Score="0" ViewCount="" Body="&lt;p&gt;This is a minor mistake in code, but is a mistake. Treat it like any other mistake that you find. My policy is always to assume that my co workers are competent and treat them that way until they prove otherwise. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's a single mistake I might just fix it and check it in. If it's a pattern I might start getting that co worker to review those fixes. Let them know that you think they're a good coder, but that this is something that would be good to improve on. I don't think I'd ever make a big deal about something like this though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As long as you don't treat it like it's a big issue it should be easy to put that co worker in a position where they can improve without putting ego on the line.&lt;/p&gt;&#xA;" OwnerUserId="8177" LastActivityDate="2010-12-28T22:53:30.580" />
  <row Id="31527" PostTypeId="1" CreationDate="2010-12-28T22:53:57.007" Score="0" ViewCount="93" Body="&lt;p&gt;Why don't browsers have the ability to differentiate between events triggered via input devices and scripts ex: element.onEvent()?  Wouldn't this be a very simple way counter attack web spam bots? Or am I way off on this?&lt;/p&gt;&#xA;" OwnerUserId="11908" LastActivityDate="2010-12-29T03:04:43.037" Title="Why don't browsers have the ability to differentiate between events triggered via input devices and scripts ex: element.onEvent()?" Tags="&lt;javascript&gt;&lt;security&gt;&lt;jquery&gt;&lt;browser&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="31528" PostTypeId="2" ParentId="31527" CreationDate="2010-12-28T22:57:26.943" Score="3" ViewCount="" Body="&lt;p&gt;Probably because the event handler is simply a function like any other.  If you put a &quot;source&quot; argument into it, all the malicious code would need to do is call the event handler manually and pass the &quot;from user input&quot; value.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-28T22:57:26.943" CommentCount="2" />
  <row Id="31530" PostTypeId="1" AcceptedAnswerId="31575" CreationDate="2010-12-28T23:17:48.147" Score="4" ViewCount="132" Body="&lt;p&gt;As an embedded firmware developer, I have used operating systems such as WinCE, Nucleus, ThreadX, VRTX and some background loops.  There are more opportunities for me if I had Linux OS experience, or perhaps some certification.  In my research, the only way to get Linux experience is to have your company move to a Linux OS.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All the recruiters and HR folks won't let you in the door unless you have Linux experience.  I haven't found any Universities that teach Linux.  Recruiters and HR want some tangible proof (starting up your own Ubuntu box or playing with it doesn't count).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, how does one get into the area of Embedded Linux without Linux experience (I have Unix and Cygwin experience, but not Linux)?&lt;/p&gt;&#xA;" OwnerUserId="5285" LastActivityDate="2010-12-29T05:38:08.127" Title="Obtaining Embedded Linux Experience" Tags="&lt;career&gt;&lt;linux&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="31531" PostTypeId="2" ParentId="31530" CreationDate="2010-12-28T23:28:54.123" Score="2" ViewCount="" Body="&lt;p&gt;Buy a small, cheap router supported by OpenWRT (or similar) and install OpenWRT on it, and start learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have a look at &lt;a href=&quot;http://wiki.openwrt.org/oldwiki/oldtableofhardware&quot; rel=&quot;nofollow&quot;&gt;http://wiki.openwrt.org/oldwiki/oldtableofhardware&lt;/a&gt; (a bit outdated but you can probably do fine even so).  You will most likely want one with USB 2.0 for storage.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-28T23:28:54.123" />
  <row Id="31532" PostTypeId="1" AcceptedAnswerId="31637" CreationDate="2010-12-28T23:39:21.720" Score="10" ViewCount="350" Body="&lt;p&gt;There are, broadly, two types of FOSS licenses when it relates to commercial usage of the code - let's say the GPL-type and the BSD-type. The first is, broadly, restrictive about commercial usage (by usage I also mean modification and redistribution, as well as creating derived works, etc.) of the code under the license, and the second is much more permissive. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I understand, the idea behind GPL-type licenses is to encourage people to abandon the proprietary software model and instead convert to the FOSS code, and the license is the instrument to entice them to do so - i.e. &quot;you can use this nice software, but only if you agree to come to our camp and play by our rules&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I want to ask is - was this strategy successful so far? I.e. are there any major achievements in the form of some big project going from closed to open because of GPL or some software being developed in the open only because GPL made it so? How big is the impact of this strategy - compared, say, to the world where everybody would have BSD-type licenses or release all open-source code under public domain? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that I am not asking if FOSS model is successful - this is beyond question. What I am asking is if the specific way of enticing people to convert from proprietary to FOSS used by GPL-type and not used by BSD-type licenses was successful. I also don't ask about the merits of GPL itself as the license - just about the fact of its effectiveness. &lt;/p&gt;&#xA;" OwnerUserId="10080" LastEditorUserId="10080" LastEditorDisplayName="" LastEditDate="2010-12-29T01:48:24.370" LastActivityDate="2010-12-30T00:57:06.337" Title="How successful is GPL in reaching its goals?" Tags="&lt;open-source&gt;&lt;license&gt;&lt;gpl&gt;&lt;free-software&gt;&lt;foss&gt;" AnswerCount="7" CommentCount="5" FavoriteCount="1" />
  <row Id="31533" PostTypeId="2" ParentId="31532" CreationDate="2010-12-28T23:43:32.490" Score="21" ViewCount="" Body="&lt;p&gt;I would say that unrestrictive licenses such as the BSD, MIT and Apache licenses have done far more to promote FOSS than the GPL has. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Castle Project, &lt;/li&gt;&#xA;&lt;li&gt;jQuery, &lt;/li&gt;&#xA;&lt;li&gt;SQLite, &lt;/li&gt;&#xA;&lt;li&gt;Apache, &lt;/li&gt;&#xA;&lt;li&gt;Hibernate and nHibernate,&lt;/li&gt;&#xA;&lt;li&gt;ASP.NET MVC, &lt;/li&gt;&#xA;&lt;li&gt;JSON.ORG, &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and many others. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most businesses are too wary of the GPL to allow GPL code anywhere near their development effort, unless the business itself actually works under the GPL/value-added-services model.  &lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-28T23:58:07.727" LastActivityDate="2010-12-28T23:58:07.727" CommentCount="11" />
  <row Id="31534" PostTypeId="2" ParentId="29722" CreationDate="2010-12-28T23:52:10.603" Score="0" ViewCount="" Body="&lt;h1&gt;Working on long-term projects with other developers&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Most bachelor-level programming courses seem to touch on the basics (objects, pointers, comments are good, etc) at some point - some more effectively than others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I rarely hear about courses that focus on making you read and maintain someone else's code for 3-12 months (probably because the university class structure does not easily facilitate this).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The developers that I know all seem to have picked this up after they were hired - after reading/writing enough shitty code, you get a better feeling about how to write code that won't be a thorn in your side when you have to maintain it later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even a bad class with enough homework assignments can teach you what you need to know about syntax, assuming you know how to read the docs.  But the ability to work on an actual project is something that I only see getting picked up after graduation.&lt;/p&gt;&#xA;" OwnerUserId="381" LastActivityDate="2010-12-28T23:52:10.603" CommentCount="3" />
  <row Id="31536" PostTypeId="1" AcceptedAnswerId="31541" CreationDate="2010-12-29T00:20:18.360" Score="9" ViewCount="523" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know some people have asked about getting back into programming after a break and this is a potential duplicate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just am in a position where I can go back to school for a graduate degree in Stat/Applied Math.  But I'm very worried about the impact it will have on my career and ability to find a job afterwards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have 3 years experience in .NET on top of a couple of years in PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now, I'm a senior software engineer.  Do you think taking two years off to do math is going to dramatically hurt my marketability?&lt;/p&gt;&#xA;" OwnerUserId="5057" LastEditorUserId="5057" LastEditorDisplayName="" LastEditDate="2010-12-30T19:20:44.247" LastActivityDate="2010-12-30T19:20:44.247" Title="Will taking two years off for school in a related field destroy a mid level development career?" Tags="&lt;career-advice&gt;" AnswerCount="10" CommentCount="9" />
  <row Id="31537" PostTypeId="2" ParentId="29722" CreationDate="2010-12-29T00:27:14.050" Score="0" ViewCount="" Body="&lt;p&gt;One thing that I keep wishing would get taught in language-specific courses at &lt;strong&gt;any&lt;/strong&gt; level of education is &quot;when is this language &lt;em&gt;not&lt;/em&gt; suitable for a task?&quot;  Too many people wander around the programming world convinced that &lt;strong&gt;&lt;i&gt;Language/Technology X&lt;/i&gt;&lt;/strong&gt; is the One True Hammer to hammer all problems with and the result is ... well it's what you see in software around you.  It would be nice to have courses say both what languages are good for and to also point out the things they're perhaps less than ideal for.&lt;/p&gt;&#xA;" OwnerUserId="10246" LastActivityDate="2010-12-29T00:27:14.050" />
  <row Id="31538" PostTypeId="2" ParentId="31536" CreationDate="2010-12-29T00:29:24.187" Score="6" ViewCount="" Body="&lt;p&gt;Personally, I think it will improve your marketability, within certain markets at least.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most employers really respect someone who goes back in to education to further themselves, particularly in a difficult discipline like that.  It will make you more well rounded, and give you greater depth in various areas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only issue is getting behind the times with your skillset - this can be mitigated by keeping up to date and displaying this carefully at interview.  The reason for going to school needs to be clearly defined on CVs, so that it does not look like a filler when a job could not be obtained.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Few companies will see it as a negative, and to be honest, those companies should probably be avoided afterwards as they are unlikely to stretch you or remunerate you in accordance with your greater knowledge.  The financial sector would be particularly keen on that combination incidentally.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-29T00:29:24.187" CommentCount="2" />
  <row Id="31539" PostTypeId="2" ParentId="31536" CreationDate="2010-12-29T00:34:22.687" Score="11" ViewCount="" Body="&lt;p&gt;In 2 years time a lot of stuff around .NET will likely change, so you'll have to adapt-learn new stuff ANYWAY. However, your university degree will not become &quot;obsolete&quot; so quickly, not to mention the new views and &lt;strong&gt;fundamental knowledge&lt;/strong&gt; you will gain from it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you are not desperate for money at the moment, then yes, go back to school.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2010-12-29T00:34:22.687" CommentCount="5" />
  <row Id="31540" PostTypeId="2" ParentId="31536" CreationDate="2010-12-29T00:50:18.327" Score="8" ViewCount="" Body="&lt;p&gt;Since I did exactly that, I know it should not affect you. Although I was careful enough to take a small project here and there, and also to maintain an open source project.  &lt;/p&gt;&#xA;" OwnerUserId="5496" LastActivityDate="2010-12-29T00:50:18.327" CommentCount="2" />
  <row Id="31541" PostTypeId="2" ParentId="31536" CreationDate="2010-12-29T01:04:30.023" Score="16" ViewCount="" Body="&lt;p&gt;I got an advanced masters in statistics 2 years ago. The curriculum also involved quite some statistical computing. I got a job before I finished my thesis, earning quite a bit more than I did in the 6 years I worked before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Three words : &lt;a href=&quot;http://www.nytimes.com/2009/08/06/technology/06stats.html&quot; rel=&quot;nofollow&quot;&gt;GO - FOR - IT !!!!&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS : you might want to look at &lt;a href=&quot;http://www.r-project.org&quot; rel=&quot;nofollow&quot;&gt;R&lt;/a&gt; while you're at it.&lt;/p&gt;&#xA;" OwnerUserId="7268" LastActivityDate="2010-12-29T01:04:30.023" CommentCount="2" />
  <row Id="31542" PostTypeId="2" ParentId="31536" CreationDate="2010-12-29T01:04:44.283" Score="-3" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Only trouble is it is not from a competitive place. I might transfer to another university mid way that is more competitive, if I do well&lt;/em&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Trust me you won't transfer. Everyone says they'll transfer, and guess what? They usually transfer to places with lower standard. Or don't finish at all. Why you want to go to place where you don't want to be?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're not up for competition today, you think after a year in lower-standard university you'll be able to transfer to higher-standard one? Get serious, and don't fool yourself, the gap will only get bigger after a year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Applied math and PHP? I think that it'll hurt your carrer. If you want to risk it, risk it for something that in your opinion is worth it! You're going to some place and want to transfer even before you get there? That's worth nothing, you must LOVE something to finish colledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go for something you WANT.&lt;/p&gt;&#xA;" OwnerUserId="11827" LastActivityDate="2010-12-29T01:04:44.283" CommentCount="6" />
  <row Id="31543" PostTypeId="2" ParentId="31532" CreationDate="2010-12-29T01:12:00.907" Score="7" ViewCount="" Body="&lt;p&gt;The GNU GPL has been successful despite its FLOSS enforcement, not because of it. Companies are for the most part voluntarily contributing to and releasing code under the GPL. There are no significant algorithms and libraries covered by it, which would compel commercial developers to deproprietarize.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apple makes a good example. They've adopted KHTML and furthered it into WebKit. And they released the code back to the open source community. While one could assume this is because they were forced to by the LGPL, it seems unlikely. For Darwin and the BSD userland they very voluntarily publish the code. And with LLVM they even started a brand new FLOSS project. Yet obviously Apple remains largely a proprietary software vendor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Android is similar. Of course hardware support plays an important role here, but Google could have adopted a BSD codebase and took it proprietary. But they picked Linux. Thus they willingly contribute back, not because there wasn't a non-GPL alternative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Openoffice is a more interesting story, because it was indeed proprietary at one point. But again, the LGPL-conversion was voluntary, not necessary. The *GPL-type license however made it possible in this case. An academic BSD-type license would not have been sufficient for Sun to release Openoffice, because someone else might have proprietarized the code then. And in this regard, the GNU *GPL has been successful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reciprocal/viral clause doesn't directly lead to more open source code. But software vendors use it to their advantage when they want to, and therefore contribute to the FLOSS pool. Yet most vendors do that unsolicitous. I see little difference between BSD-style and GPL-style licenses in regards to encouraging more code contributions.&lt;br&gt;&#xA;In conclusion the GNU GPL has been successful, but also propeled the BSD/MIT-style licenses where those are more appropriate. But you can also simply measure the success in &quot;quantity of code&quot;, which I believe is the actual FSF metric.&lt;/p&gt;&#xA;" OwnerUserId="1245" LastActivityDate="2010-12-29T01:12:00.907" CommentCount="3" />
  <row Id="31544" PostTypeId="2" ParentId="20708" CreationDate="2010-12-29T01:12:45.040" Score="3" ViewCount="" Body="&lt;p&gt;Fog Creek Software's FogBugz doesn't do everything you mention, but it does do a lot of them.  You can run it on your own linux box but it's been my experience that the linux versions run more than a little behind the Windows versions and don't get all the polishing that the Windows version does.  That said, it's been a good solution for me for years.  It's worth checking out:  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.fogcreek.com/fogbugz/features/issue-and-bug-tracking.html&quot; rel=&quot;nofollow&quot;&gt;http://www.fogcreek.com/fogbugz/features/issue-and-bug-tracking.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11581" LastActivityDate="2010-12-29T01:12:45.040" />
  <row Id="31545" PostTypeId="2" ParentId="31536" CreationDate="2010-12-29T01:58:12.287" Score="3" ViewCount="" Body="&lt;p&gt;I really don't understand where this fear of losing programming ability and competitive edge after pursuing some interests that are not related to programming started. The entire time I have been programming there has been absolutely no foundational and conceptual change in how programmers get shit done and I'm usually the first person that jumps on a new programming language as soon as it is out of the gate. Unless quantum computers become practical tomorrow there is no way a programmer with years of experience will lose their competitive edge because they spent time in school to get a degree in some technical field like math and applied statistics. Heck, if anything this will make you even more competitive because big data and statistical processing of big data apparently is the next big wave because I hear facebook has made privacy and some other old notions of personal liberty a thing of the past.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-29T01:58:12.287" />
  <row Id="31546" PostTypeId="2" ParentId="31536" CreationDate="2010-12-29T02:08:58.913" Score="1" ViewCount="" Body="&lt;p&gt;With as many people out there who have had long breaks in employment, through NO fault of their own, who have NOT gone back to school, the fact that you have a break because you CHOSE to go back to school is, in my opinion, not going to hurt you at all, PROVIDED that your jobhunting afterwards (including your use of your college placement services HINT HINT HINT) reflects your added knowledge and skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you take two years off to do serious math and stats, and then you DON'T go looking for a job that will allow you to USE that knowledge, what was the point of going for it in the first place?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that this is different from going back to school WHILE unemployed.  It is understandable that you might then take a job that did not apply what you learned while in school and jobhunting.  (However, the fact that you went to school while unemployed is still going to look good to any competent recruiter or potential employer.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way: Note that being a student usually gets you access to all the college facilities, including but not limited to computer labs, libraries, Student Union, ...  It may also give you an opportunity to teach informally, to pass along some of the things you learned out in the Real World.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Caution: You may notice, as I did, that the coeds are a LOT hotter the second time around!&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-12-29T02:08:58.913" />
  <row Id="31547" PostTypeId="2" ParentId="31536" CreationDate="2010-12-29T02:29:04.710" Score="2" ViewCount="" Body="&lt;p&gt;Everything out of the ordinary an applicant does raises concerns, but how you're able to answer/justify why you're doing this will make the difference. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some potential questions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Did you have to go back to school full-time or didn't you think you were capable of doing both?&lt;/li&gt;&#xA;&lt;li&gt;How did this make you a better programmer?&lt;/li&gt;&#xA;&lt;li&gt;If we hire you, how do we know you won't want to take-off for another two year sabbatical?&lt;/li&gt;&#xA;&lt;li&gt;How much programming have you done since you went back to school?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I'm not saying these are valid questions, but you just need to be prepared. Hopefully, you'll be able to address them in an interview.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-29T02:29:04.710" CommentCount="6" />
  <row Id="31548" PostTypeId="1" CreationDate="2010-12-29T02:32:16.237" Score="4" ViewCount="517" Body="&lt;p&gt;Requirements:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;many different user experiences: website, mobile, etc.&lt;/li&gt;&#xA;&lt;li&gt;user management, registration, roles&lt;/li&gt;&#xA;&lt;li&gt;large amount of music metadata&lt;/li&gt;&#xA;&lt;li&gt;genome search that finds closest music&lt;/li&gt;&#xA;&lt;li&gt;public and private RESTful API for all functions&lt;/li&gt;&#xA;&lt;li&gt;massive server-side service scale&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5162" LastActivityDate="2011-02-14T10:28:23.827" Title="If you got to rebuild Pandora from scratch, what technology stack would you choose?" Tags="&lt;programming-languages&gt;&lt;technology&gt;&lt;cloud&gt;&lt;web-framework&gt;" AnswerCount="5" CommentCount="5" FavoriteCount="1" />
  <row Id="31549" PostTypeId="2" ParentId="31527" CreationDate="2010-12-29T03:04:43.037" Score="2" ViewCount="" Body="&lt;p&gt;The event model of javascript is totally irrelevant to how spam bots work. Spam bots work by submitting forms to the server, not by running code on the client browser. In fact, most bot-submitted spam would have never gone through a &quot;browser&quot; at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You would need some way to differentiate between a bot-submitted form, and a user-submitted form, which is actually not possible (after all, the bot just needs to &quot;copy&quot; what a user would have submitted and there'd no way for the server to tell the difference).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, one thing I've been noticing recently is that a lot of &quot;spam&quot; (e.g. comment spam on blogs, etc) is not actually bot-submitted anymore. Captcha and email verification etc has made it more cost-effective for the spammers to employ people in 3rd-world countries a couple of cents an hour to manually go in and submit their spam. So any technique which relies on differentiating between humans and bots is becoming less and less effective.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-29T03:04:43.037" />
  <row Id="31550" PostTypeId="1" AcceptedAnswerId="31552" CreationDate="2010-12-29T03:17:01.597" Score="12" ViewCount="243" Body="&lt;p&gt;Greetings my fellow cubicle dwellers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found my role gradually change from &quot;feature-maintainer&quot; to &quot;feature-developer&quot;. While much of the former would consist of fixing and/or updating an existing feature (and quietly grumbling about it's implementation with complete naiveté), in this new role I find:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Have to communicate with immediate management to define the development requirements to turnaround the new feature&lt;/li&gt;&#xA;&lt;li&gt;Have to communicate with design to determine the user requirements of the new feature&lt;/li&gt;&#xA;&lt;li&gt;Have to communicate with QA to determine test sets for the new feature, as well as it's current state during development.&lt;/li&gt;&#xA;&lt;li&gt;Have to communicate with producers/project-managers to define remaining turnaround time as well as updates in development requirements.&lt;/li&gt;&#xA;&lt;li&gt;and finally, have to occasionally communicate with upper-management to defend the new feature and demonstrate it's minimized risk to the upcoming release.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The last item is key here, and this took me a couple occasions to completely realize. In all, though, it becomes very apparent that communication skills ARE important, even or especially as such for developers who feel they 'own' the feature they're working on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of this said, I recognize it's importance and would like to improve my skills in this area further. I enjoy one-on-one communication but find I tend to stutter a bit when speaking to any group larger than a few people I know well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where can I find good resources to improve my own communication skills?&lt;/p&gt;&#xA;" OwnerUserId="7857" LastEditorUserId="2960" LastEditorDisplayName="" LastEditDate="2010-12-29T03:33:39.563" LastActivityDate="2010-12-29T18:05:51.460" Title="Public Speaking in software development." Tags="&lt;project-management&gt;&lt;software-development&gt;&lt;communication&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="4" />
  <row Id="31551" PostTypeId="1" AcceptedAnswerId="31557" CreationDate="2010-12-29T03:21:07.507" Score="5" ViewCount="187" Body="&lt;p&gt;I have forked a project and have changed lots of it. This fork isn't just a small feature change here and a buried bug fix there, its a pretty substantial change. Only most of the core code is shared. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I forked this project at v2.5.0.  For a while I've started versioning my fork at v3.0 . However I'm not sure if this is the right way, mainly because when that project hits v3.0, things get confusing. But I don't want to start over at v1.0 or v0.1 because that implies infancy, instability, and non-refindness of a project. This isn't true, as most of the core code is very refined and stable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm really lost on what to do, so I ask here: Whats the standard way to deal with this kind of situation? Do most forks start over again, bump up version numbers, or do something else that I'm not aware of.&lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2010-12-29T11:38:58.007" Title="Forked a project, where do my version numbers start?" Tags="&lt;versioning&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="2" />
  <row Id="31552" PostTypeId="2" ParentId="31550" CreationDate="2010-12-29T03:33:07.737" Score="7" ViewCount="" Body="&lt;p&gt;Someone once said that more people fear public speaking than they do death. In my experience the only real way to get over it is to get used to it; practice, speak to a lot of people all the time, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For us in software development though the way I found it easiest to hone public speaking skills is to join a local User Group and start speaking there. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Volunteer for presentations -- it can be anything about software development as basic as a 101 on a certain programming language to as complex as agile management -- whatever fits the bill. Try to do this as often as possible, and even if you're just with friends always imagine that there is a much bigger audience listening to you behind them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally found that through this practice I became better at expressing my ideas to my bosses and to larger groups of people.&lt;/p&gt;&#xA;" OwnerUserId="2960" LastActivityDate="2010-12-29T03:33:07.737" CommentCount="3" />
  <row Id="31553" PostTypeId="2" ParentId="31550" CreationDate="2010-12-29T03:35:27.377" Score="2" ViewCount="" Body="&lt;p&gt;I would say find a local community college or adult learning center that offers a public speaking course.&lt;/p&gt;&#xA;" OwnerUserId="7007" LastActivityDate="2010-12-29T03:35:27.377" />
  <row Id="31554" PostTypeId="2" ParentId="31536" CreationDate="2010-12-29T03:46:04.810" Score="1" ViewCount="" Body="&lt;p&gt;If you can afford it without having to take a part-time job and you are certain that your new effort will be put to good use whether in another programming job or any other math intensive field, then yeah, it's seems like a wise decision. I plan on doing the same but not so so soon... I hope that my years in industry will put the stuff I learn into perspective. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many times I see that college students are clueless regarding to what they're taught and forget everything after a final and Summer vacation. You'll be going back with a big baggage that will set you apart. You'll be able to have more meaningful discussion with your TAs/Professors. Take advantage of this.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-29T03:46:04.810" />
  <row Id="31555" PostTypeId="2" ParentId="31550" CreationDate="2010-12-29T03:47:25.127" Score="3" ViewCount="" Body="&lt;p&gt;Join to &lt;a href=&quot;http://en.wikipedia.org/wiki/Toastmasters_International&quot; rel=&quot;nofollow&quot;&gt;Toastmasters International (TI)&lt;/a&gt; in your University or College. Here ia their &lt;a href=&quot;http://www.toastmasters.org/&quot; rel=&quot;nofollow&quot;&gt;official site&lt;/a&gt;, and &lt;a href=&quot;http://reports.toastmasters.org/findaclub/&quot; rel=&quot;nofollow&quot;&gt;search here&lt;/a&gt; a nearby club in your area, and join.&lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2010-12-29T03:47:25.127" />
  <row Id="31556" PostTypeId="2" ParentId="31551" CreationDate="2010-12-29T03:56:32.187" Score="2" ViewCount="" Body="&lt;p&gt;Have your own roadmap and stick to it, starting with the original version's number but don't try to race with the current version of the original product.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-29T03:56:32.187" CommentCount="2" />
  <row Id="31557" PostTypeId="2" ParentId="31551" CreationDate="2010-12-29T04:00:52.090" Score="8" ViewCount="" Body="&lt;p&gt;Most forks that I've seen start again from version 1.0. But I assume you've also changed the name of your fork, so I'm not sure why there would be confusion if you simply started from v3.0.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I would do is change the name of the project, release version 1.0 and make it clear that the project is a fork of another project. I don't think there will be any confusion with that approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're really worried about the &quot;1.0&quot; label, simply release version 2.0 a short time after 1.0...&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-29T04:00:52.090" />
  <row Id="31558" PostTypeId="1" AcceptedAnswerId="31564" CreationDate="2010-12-29T04:19:45.403" Score="8" ViewCount="444" Body="&lt;p&gt;We are bootstrapping a new team of very small size (say 2-5) my question is:&#xA; which type of version control works best for these kind of teams, either centralized or distributed.&lt;/p&gt;&#xA;" OwnerUserId="8538" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-29T14:21:10.487" LastActivityDate="2010-12-29T17:34:18.800" Title="version control for small team" Tags="&lt;version-control&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="7" />
  <row Id="31559" PostTypeId="2" ParentId="31558" CreationDate="2010-12-29T04:22:27.200" Score="4" ViewCount="" Body="&lt;p&gt;the one that you will all use consistently&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[personally, i like Mercurial]&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-29T04:22:27.200" CommentCount="1" />
  <row Id="31560" PostTypeId="2" ParentId="31558" CreationDate="2010-12-29T04:24:24.720" Score="4" ViewCount="" Body="&lt;p&gt;Probably the best answer is &quot;whatever you're comfortable with.&quot; Even when working on personal stuff, I use Git. It seems to do a pretty good job of scaling both up and down and my limited experience with Mercurial is about the same. &lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-12-29T04:24:24.720" CommentCount="3" />
  <row Id="31561" PostTypeId="1" CreationDate="2010-12-29T04:31:45.930" Score="0" ViewCount="188" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/11153/will-programmers-be-around-in-a-few-years&quot;&gt;Will programmers be around in a few years?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Hi everybody, yesterday I had a little chat with a friend that is in the field of development as I am. And he told me that he planned to change of business, I mean, he wants to get off developing cause he doesn't think that it has future. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;There will come days were you could have a job as a developer but you would never get rich&quot; he said. &quot;Nowadays is more important to have an idea and develop it in a product than being a software developer. Today you can find a lot of applications that can help you to make it. We have already non-sql databases, better cases than 10 years ago and other tools much of them free, everything is directed to depend less of developers and you'll see it more 10 years from now&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you agree with that?&lt;/p&gt;&#xA;" OwnerUserId="9878" LastActivityDate="2010-12-29T10:13:06.620" ClosedDate="2010-12-29T13:28:44.297" Title="Will the world depend less of developers?" Tags="&lt;career&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="1" />
  <row Id="31562" PostTypeId="2" ParentId="31561" CreationDate="2010-12-29T04:36:49.170" Score="7" ViewCount="" Body="&lt;p&gt;No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it more important to have an idea and develop it than to be a software developer? Sure. If you want to be an entrepreneur and make it big, that's true now, it will be true in the future, it was true in the past.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sounds like your friend's opinion is actually nothing to do with software development, and much more to do with wanting to be an entrepreneur, rather than working for The Man.&lt;/p&gt;&#xA;" OwnerUserId="4217" LastActivityDate="2010-12-29T04:36:49.170" CommentCount="3" />
  <row Id="31563" PostTypeId="2" ParentId="31561" CreationDate="2010-12-29T04:42:48.277" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Rich&quot; is a rather subjective state of mind. Software developers tend to have salaries well above the national average. I doubt you will be able to buy a yacht or Lamborghini, but you should do pretty damn well for yourself. Furthermore, software development is one of the fastest growing industries in the US, so I would hardly say that it has no future. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, it is pretty short sighted to think that the future of software development will only involve essentially &quot;cutting and pasting&quot; current technology into a well constructed software solution. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2010-12-29T04:48:15.397" LastActivityDate="2010-12-29T04:48:15.397" CommentCount="1" />
  <row Id="31564" PostTypeId="2" ParentId="31558" CreationDate="2010-12-29T04:43:09.680" Score="21" ViewCount="" Body="&lt;p&gt;Distributed all the way, there is really no point for centralized anymore IMHO, specially if you are talking about team development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another vote for Mercurial, no hassles to setup under windows and &lt;a href=&quot;http://bitbucket.org&quot; rel=&quot;nofollow&quot;&gt;bitbucket.org&lt;/a&gt; has free repositories (that can be private) with unlimited space.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are planning to work on a open source project, git and Github seem to be more adequate/popular. However, if you haven't ventured into DVCSs, I recommend you start with Mercurial and &lt;a href=&quot;http://hginit.com/&quot; rel=&quot;nofollow&quot;&gt;this awesome guide&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-29T04:43:09.680" CommentCount="7" />
  <row Id="31565" PostTypeId="2" ParentId="31561" CreationDate="2010-12-29T05:01:11.640" Score="5" ViewCount="" Body="&lt;p&gt;No.  I have heard this over and over for the past 25 years for a variety of &quot;reasons:&quot;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Programs will write software for us.&lt;/li&gt;&#xA;&lt;li&gt;A monkey will be able to click a few buttons, and your system will be built.&lt;/li&gt;&#xA;&lt;li&gt;A domain expert will be able to design a business process using a high level design (or case) tool, and the software will write itself.&lt;/li&gt;&#xA;&lt;li&gt;Every possible system has ever been written.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And other forms of the same argument over and over.  No matter what, every company will want something customized just for them.  No matter what, every company will believe that their need differs from every other company that ever existed before.  Even entities that do purchased canned solutions for some portions of their business, believe that significant other parts of their operations differ from all others (some true, but most too similar to always warrant new solutions).  And even if canned solutions will fill the majority of a need, huge portions will need to be customized.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps this will change one day.  I seriously doubt it in my lifetime.  And I plan on being here 100+ more years.&lt;/p&gt;&#xA;" OwnerUserId="10397" LastActivityDate="2010-12-29T05:01:11.640" />
  <row Id="31566" PostTypeId="2" ParentId="31532" CreationDate="2010-12-29T05:03:25.457" Score="0" ViewCount="" Body="&lt;p&gt;My personal perspective is one of an individual developer, not employed for some time due to disability, and hoping (or dreaming) of being able to make a living again from the only valuable skill I have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;GPL is used for commercial projects all the time. The issue is what is sometimes termed its &quot;viral&quot; nature, meaning that if you use some GPL code in a project, you probably need to GPL &lt;em&gt;all&lt;/em&gt; the code for that project. Some claim an exclusion for dynamic linking. The GPL FAQ claims dynamic linking to plug-ins is banned due to shared data structures - &lt;a href=&quot;http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins&quot; rel=&quot;nofollow&quot;&gt;http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins&lt;/a&gt;. This seems odd as every Windows application dynamic-links to Windows components and shares data structures with Windows (an application is in many ways an operating-system plugin), yet there are GPL Windows apps including plenty released by GNU. Maybe this means disguising pointers as handles and doing most accesses via functions doesn't count as sharing data structures, which would be a loophole any specially designed plugin API or dynamically linked library could presumably exploit, but obviously an individual developer has to play it safe over such issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, there's good reasons for the &quot;viral&quot; nature of the GPL, but for a small developer with a desperate need to earn a living, this looks suspiciously like giving away your work for nothing. We can't all make money by charging for support or selling effectively-the-manual books since, among other issues, we don't all have the relevant skills. Also, if your product has an inadequate free manual, the real-world manual will probably end up being Stack Overflow or Superuser or whatever - not your paid-for manual. And that's assuming anyone bothers to figure it out at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From that point of view, BSD-style licenses are very attractive. I admit it's hypocritical to exploit other open-sourced work yet keep the resulting products closed, but that has to be balanced against other issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OTOH, I've never actually released anything, open or closed - at least not since a bunch of plugins that I basically made public domain about ten years ago (and as the extra years of experience taught me, they weren't so well written). So the whole thing is academic for me, at least for the moment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, every time I look at a library with a GPL-style license, my first thought is &quot;if I get dependent on this, I limit my options&quot;.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2010-12-29T05:03:25.457" CommentCount="6" />
  <row Id="31567" PostTypeId="1" AcceptedAnswerId="31569" CreationDate="2010-12-29T05:08:21.653" Score="18" ViewCount="904" Body="&lt;p&gt;What kind of non-technical training course do you suggest for a programmer? Example could be public speaking course, presentation skill, English, business writing, or anything not related to programming or software engineering itself.&lt;/p&gt;&#xA;" OwnerUserId="8486" LastEditorUserId="389" LastEditorDisplayName="" LastEditDate="2010-12-30T00:21:52.360" LastActivityDate="2011-01-03T05:41:04.020" CommunityOwnedDate="2011-01-02T21:02:17.443" Title="Important non-technical course for programmers?" Tags="&lt;learning&gt;&lt;career&gt;&lt;courses&gt;" AnswerCount="27" CommentCount="3" FavoriteCount="9" />
  <row Id="31568" PostTypeId="1" CreationDate="2010-12-29T05:09:01.793" Score="10" ViewCount="426" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Question posted anonymously for obvious reasons. I am working in a company with a dev group of 5-6 developers, and I am in a situation which I have a hard time dealing with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every technical choice (language, framework, database, database scheme, configuration scheme, etc...) is decided by the CEO, often without much rationale. It is very hard to modify those choices, and his main argument consists in &quot;I don't like this&quot;, even though we propose several alternative with detailed pros/cons. He will also decide to rewrite from scratch our core product without giving a reason why, and he never participates to dev meetings because he considers it makes things slower... I am already looking at alternative job opportunities, but I was wondering if there anything we (the developers) could do to improve the situation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two examples which shocked me:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;he will ask us to implement something akin to configuration management, but he reject any existing framework because they are not written in the language he likes (even though the implementation language is irrelevant). He also expects us to be able to write those systems in a couple of days, &quot;because it is very simple&quot;.&lt;/li&gt;&#xA;&lt;li&gt;he keeps rewriting from scratch on his own our core product because the current codebase is too bad (codebase whose design was his). We are at our third rewrite in one year, each rewrite worse than the previous one.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Things I have tried so far is doing elaborate benchmarks on our product (he keeps complaining that our software is too slow, and justifies rewrites to make it faster), implement solutions with existing products as working proof instead of just making pros/cons charts, etc... But still 90 % of those efforts go to the trashbox (never with any kind of rationale behind he does not like it, again), and often get reprimanded because I don't do exactly as he wants (not realizing that what he wants is impossible).&lt;/p&gt;&#xA;" OwnerUserId="11919" LastActivityDate="2010-12-29T18:15:49.750" Title="How to deal with a CEO making all technical decision but with little technical knowledge ?" Tags="&lt;productivity&gt;&lt;politics&gt;" AnswerCount="10" CommentCount="2" FavoriteCount="1" />
  <row Id="31569" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T05:11:48.827" Score="42" ViewCount="" Body="&lt;p&gt;Anything related to communication, like public speaking, would be great.  You will be considered a LOT more valuable as a programmer if you are able to communicate well with your team and the stakeholders of the software you build.  A lack of communication skills will absolutely stunt your growth in this field.&lt;/p&gt;&#xA;" OwnerUserId="10397" LastActivityDate="2010-12-29T05:11:48.827" CommunityOwnedDate="2011-01-02T21:02:17.443" CommentCount="6" />
  <row Id="31570" PostTypeId="2" ParentId="31568" CreationDate="2010-12-29T05:15:26.643" Score="1" ViewCount="" Body="&lt;p&gt;Show &lt;strong&gt;results and practical real-world examples&lt;/strong&gt;, it has never worked for me to tell all the juicy details to the technically unenthusiastic/uneducated, it is just pointless trying to convince that way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you think a particular decision of his is bad tell him, not how it will make you suffer, but &lt;strong&gt;how it will cost him more and put him in disadvantage against the competition&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've always thought it is up to the developer/programmer to educate others in the industry in any way possible, if not you, who then?.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was recalling something Watts Humphrey said in a book, something like: &quot;it is the manager's job to ask you to develop something at no cost in no time, it is your job to negotiate&quot;. &lt;strong&gt;It is highly likely that this will not be the last time you deal with someone like that, so practice&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastEditorUserId="10869" LastEditorDisplayName="" LastEditDate="2010-12-29T05:22:23.263" LastActivityDate="2010-12-29T05:22:23.263" CommentCount="1" />
  <row Id="31571" PostTypeId="2" ParentId="31568" CreationDate="2010-12-29T05:16:02.007" Score="26" ViewCount="" Body="&lt;p&gt;Don't bother. As you mentioned, you're already looking for new work. Life is too short to put up with a miserable job. In the meantime just say &quot;sure, whatever&quot;, and take solace in the likelihood that irresponsible decisions will ultimately catch up with the CEO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Making software is an inherently risky endeavor which frequently results in failure. Even if you convince your boss to do it some other way, the project could ultimately fail through no fault of yours, but because you deviated from the bosses grand vision your head will be on the chopping block for it. It's just not worth the hassle.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-12-29T05:16:02.007" CommentCount="1" />
  <row Id="31572" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T05:17:03.193" Score="19" ViewCount="" Body="&lt;p&gt;Graphical Desgin. Try this for a starter: &lt;a href=&quot;http://net.tutsplus.com/articles/lectures/design-for-developers/&quot; rel=&quot;nofollow&quot;&gt;http://net.tutsplus.com/articles/lectures/design-for-developers/&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A piece of software (and any product in general) needs not only to be usable and functional, but also &quot;pretty&quot; to be able to sell, and that is the sad truth.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-29T05:17:03.193" CommunityOwnedDate="2011-01-02T21:02:17.443" CommentCount="16" />
  <row Id="31573" PostTypeId="2" ParentId="31550" CreationDate="2010-12-29T05:21:23.207" Score="1" ViewCount="" Body="&lt;p&gt;As mentioned by others, if you can present on a couple of topics at user group meetings or code camps, it will definitely help you improve your communication skills.  I found that starting out at a local user group you frequent is a great place to start.  The environment is less threatening, because people will already know you, and you've built a level of comfort with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started out by presenting on a couple of topics at work for my co-workers, where I felt most comfortable.  Then I took it to the next level and presented a couple of times at my user group.  I plan on taking the next step soon, and present at another user group (not my own).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, as mentioned, a local Toastmasters group would be invaluable.  I have not tried this myself yet, but I've heard great things about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck.  You definitely seem to get how important communication skills are to advance in this field.&lt;/p&gt;&#xA;" OwnerUserId="10397" LastActivityDate="2010-12-29T05:21:23.207" />
  <row Id="31574" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T05:33:27.540" Score="3" ViewCount="" Body="&lt;p&gt;Depending on what you mean by &quot;non-technical&quot;, I'm voting technical writing skills. Mark Freedman is right to mention (interpersonal) communication skills, but technical writing skills are also important for a developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If nothing else, every comment you add to your code is a snippet of technical writing. Also, no matter how good your spoken communication skills, a written explanation of what you understand the requirements be that others can understand is very important - without it, even if the initial spoken communication was perfect, yours and your bosses/customers perceptions of what you're supposed to be doing will inevitably drift in different directions over time.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2010-12-29T05:33:27.540" CommunityOwnedDate="2011-01-02T21:02:17.443" />
  <row Id="31575" PostTypeId="2" ParentId="31530" CreationDate="2010-12-29T05:38:08.127" Score="3" ViewCount="" Body="&lt;p&gt;Install a VM and start using Linux. Transition to an embedded Linux running on ARM or what-have-you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That'll give you 'hobbyist' experience, and you can probably parlay that into a project which can be parlayed into a job.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-29T05:38:08.127" />
  <row Id="31576" PostTypeId="2" ParentId="31568" CreationDate="2010-12-29T05:39:03.713" Score="1" ViewCount="" Body="&lt;p&gt;It doesnt sound like there's a whole lot you can do.  He sounds like a micro-manager.  A CEO really needs to learn how to delegate responsibility, and that includes technical decisions.  Companies like that tend not to grow any larger than the owner/CEO can personally manage because of this.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2010-12-29T05:39:03.713" />
  <row Id="31577" PostTypeId="2" ParentId="31568" CreationDate="2010-12-29T05:41:26.860" Score="7" ViewCount="" Body="&lt;p&gt;There is no safe answer and you have two choices really, flee or fight.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A CEO who has not proven he is technically savvy but thinks he knows enough to make technical decisions is a fool. Some are smart enough to surround themselves with people who are technically savvy and then listen to their opinions, but if yours hasn't done that then, well, it's a matter of time before the ship starts leaking water and goes down. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fighting that sort of behavior is a losing battle. The CEO has the big club - your wages, your co-workers wages, and the upper management's wages. Any disagreements with a CEO will lose in the face of that because most people will not stand up when they could lose a paycheck.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have worked with excellent technical managers many times over, and loved it. If they didn't know something the first time it came up in a discussion they'd know it well the next time and woe to those who tried snowing them. They're out there, and you'll find them, but probably not where you are because they'll leave and go somewhere else if they're smart.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, put your head down, grit your teeth a bit, and look for a good way out. There's nothing wrong with being a rat fleeing a sinking ship when it's not your ship!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, good luck!&lt;/p&gt;&#xA;" OwnerUserId="4139" LastActivityDate="2010-12-29T05:41:26.860" />
  <row Id="31578" PostTypeId="1" CreationDate="2010-12-29T05:43:32.100" Score="1" ViewCount="305" Body="&lt;p&gt;What questions would ask a candidate with mainly Java/.NET experience (10 years+) in an interview for a C++ position?&lt;/p&gt;&#xA;" OwnerUserId="11921" LastActivityDate="2010-12-29T17:03:00.403" Title="Interview questions on C++ for developers with mainly Java/.NET experience" Tags="&lt;interview&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="31579" PostTypeId="2" ParentId="31561" CreationDate="2010-12-29T05:46:52.447" Score="1" ViewCount="" Body="&lt;p&gt;No and I don't understand what the problem is. Developers have been having ideas and developing them into products since the beginning of time. It's pretty much what developers do so maybe you should ask your friend how he's defining &quot;developer&quot;.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-29T05:46:52.447" />
  <row Id="31580" PostTypeId="2" ParentId="30985" CreationDate="2010-12-29T05:49:11.387" Score="0" ViewCount="" Body="&lt;p&gt;So what are the consequences for not following the rules and rewards for following the rules? If the answer is the same--nothing--good luck getting any traction. I suggest a tiered approach. First get them together and discuss whether they buy into the rules. The next step is to include them in code reviews. You can also try carrots and sticks. Something like anyone who leaves a file checked out overnight has to bring donuts to the next weekly meeting. A carrot could be anyone who follows the rules for a whole month gets a weekend in Vegas. For two.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or fire the worst offender and let the rest sweat it out.&lt;/p&gt;&#xA;" OwnerUserId="9540" LastActivityDate="2010-12-29T05:49:11.387" CommentCount="1" />
  <row Id="31581" PostTypeId="2" ParentId="31561" CreationDate="2010-12-29T05:53:19.263" Score="2" ViewCount="" Body="&lt;p&gt;I think the problem is that your friend is not discerning between a &lt;strong&gt;programmer&lt;/strong&gt; and a &lt;strong&gt;developer&lt;/strong&gt;. As I see it, a programmer codes on-demand other's designs and using his own creativity for low-level solutions (algorithms, optimizations). OTOH, a developer creates and programs a complete solution, focusing on architectures and business needs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Good programmers often become developers, and developers create products.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Following your friend's train of thought, you'd then become someone who has ideas and no technical knowledge to implement them or even supervise them.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-29T05:53:19.263" />
  <row Id="31582" PostTypeId="1" CreationDate="2010-12-29T06:06:58.160" Score="-1" ViewCount="413" Body="&lt;p&gt;For programming especially in C, C++ (System programming).&#xA;Which is a better choice Laptop or desktop.&lt;/p&gt;&#xA;" OwnerUserId="11558" LastActivityDate="2010-12-29T08:58:24.533" ClosedDate="2010-12-29T14:37:13.047" Title="Which is better Laptop/Desktop for system programming?" Tags="&lt;productivity&gt;" AnswerCount="4" CommentCount="3" />
  <row Id="31583" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T06:09:36.627" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Assertiveness Skills -&lt;/strong&gt; &#xA;To note here that &quot;Assertion&quot; does NOT in any way relate to &quot;Aggression&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;While this comes under the general gamut of &quot;soft skills&quot;, I have found this training to be greatly beneficial especially when it comes to programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Atleast in my experience, i have just come across too many programmers who would rather avoid a confrontation with someone about topics which they may even be better informed about due to their nature and this is detrimental to the team overall.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Such a course mainly focuses on people making their point heard and giving them some basic tips about how to ensure that your viewpoints / opinions do not get snowed over just because of some big mouth on the team who may be better than others at putting his point across.&lt;/p&gt;&#xA;" OwnerUserId="2226" LastActivityDate="2010-12-29T06:09:36.627" CommunityOwnedDate="2011-01-02T21:02:17.443" />
  <row Id="31584" PostTypeId="2" ParentId="31582" CreationDate="2010-12-29T06:11:41.140" Score="-2" ViewCount="" Body="&lt;p&gt;Laptop. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless the system you are programming for is Desktop. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Desktop.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-12-29T06:11:41.140" CommentCount="5" />
  <row Id="31585" PostTypeId="2" ParentId="31582" CreationDate="2010-12-29T06:11:56.547" Score="1" ViewCount="" Body="&lt;p&gt;Use a old desktop, because, for system programming, you can easily change the parts of that PC with the low cost than a laptop.&lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2010-12-29T06:11:56.547" />
  <row Id="31586" PostTypeId="1" CreationDate="2010-12-29T06:13:39.647" Score="0" ViewCount="140" Body="&lt;p&gt;Hi there, I was wondering if anybody had any good tutorial/guide resources for FMOD?. I'm looking for things like setting up the the environment and getting started in it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've looked here but its empty? &lt;a href=&quot;http://www.fmod.org/docs/tutorials/&quot; rel=&quot;nofollow&quot;&gt;http://www.fmod.org/docs/tutorials/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10830" LastActivityDate="2010-12-29T13:11:12.603" ClosedDate="2010-12-29T14:42:48.753" Title="Introduction to FMOD?" Tags="&lt;c++&gt;&lt;cross-platform&gt;&lt;api&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="31587" PostTypeId="1" CreationDate="2010-12-29T06:15:14.290" Score="7" ViewCount="512" Body="&lt;p&gt;From the perspective of a developer what do you consider to be the most important environmental factors or work place perks/policies that contribute to increase productivity? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, my top four includes the following:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No internet restrictions - Because honestly ever few hours I need a 15 min deload, which usually involves checking my gmail account and or browsing a few choice site.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personal office with a door - for obvious reasons &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dual monitors - do people really develop software with one monitor still?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Flexible hours - This could be interpreted in different ways, but basically I really appreciate that fact that I can roll into work at 7am, 11am or whenever and the time police aren't on my back. It is just understood that I will put in my 8 hours or more if needed and get my job done however that works out. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-21T23:36:25.330" Title="What environmental factors do you believe contribute to productivity?" Tags="&lt;work-environment&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="4" />
  <row Id="31588" PostTypeId="2" ParentId="31558" CreationDate="2010-12-29T06:23:57.813" Score="2" ViewCount="" Body="&lt;p&gt;Try SVN&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://tortoisesvn.tigris.org/&quot; rel=&quot;nofollow&quot;&gt;http://tortoisesvn.tigris.org/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is best 4 you.&lt;/p&gt;&#xA;" OwnerUserId="11923" LastActivityDate="2010-12-29T06:23:57.813" CommentCount="2" />
  <row Id="31589" PostTypeId="2" ParentId="31587" CreationDate="2010-12-29T06:28:29.923" Score="1" ViewCount="" Body="&lt;p&gt;From the perspective of a developer: feeling like working at home in a cozy place... actually, I really advocate the whole working at home thing since it works quite well, if not better to-the-bazillion. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There can always be ad hoc meetings when necessary, as a business you avoid rent, as an employee transport, and if you need to meet a client you can always offer to go to his offices instead, or actually afford to take him/her to a nice place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Working at home gives you by default: no internet restrictions, personal office with a door (unless you live under a bridge) and flexible hours. Dual or triple monitors can be encouraged, but other way, they are a must IMHO.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-29T06:28:29.923" />
  <row Id="31590" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T06:28:37.020" Score="1" ViewCount="" Body="&lt;p&gt;While I will not dispute the importance of communication skills both written and verbal, if you get the chance to take a course on human-computer interaction, I believe you will find it invaluable. Some of the most difficult problems I see at work usually involve trying to figure out what the user wants when the user doesn't even know themselves. Developing intuitive user interfaces that work well and exactly as the user expects is really hard in my opinion. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2010-12-29T17:48:25.917" LastActivityDate="2010-12-29T17:48:25.917" CommunityOwnedDate="2011-01-02T21:02:17.443" />
  <row Id="31591" PostTypeId="2" ParentId="31582" CreationDate="2010-12-29T06:30:49.733" Score="1" ViewCount="" Body="&lt;p&gt;What do you mean by system programming? If you mean &lt;em&gt;writing a kernel and/or aspects of an operating system&lt;/em&gt;, then you should be looking at a VM or build your own machine with commodity parts. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you are doing the above, I don't think you'd ask the original question in the first place.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-29T06:30:49.733" />
  <row Id="31592" PostTypeId="2" ParentId="30985" CreationDate="2010-12-29T06:42:33.320" Score="0" ViewCount="" Body="&lt;p&gt;Make them suffer the consecuences you want to avoid by using those rules, it is the only way they are really going to understand why you are asking, e.g.: make a small controlled mess that &lt;em&gt;they&lt;/em&gt; have to correct.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-29T06:42:33.320" />
  <row Id="31593" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T06:49:13.923" Score="9" ViewCount="" Body="&lt;p&gt;Logic. Algebra. Statistics. Calculus. English. Critical thinking. Physics? Behavioral analysis?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It depends what you want get into, and what you're naturally good at. There are tonnes of courses that will benefit you in some way. Many answers have suggested communication courses, which you seem to already know -- other than that, think long and hard about how you want to apply programming and take the courses that complement your goal.&lt;/p&gt;&#xA;" OwnerUserId="54" LastActivityDate="2010-12-29T06:49:13.923" CommunityOwnedDate="2011-01-02T21:02:17.443" CommentCount="4" />
  <row Id="31594" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T06:50:20.397" Score="3" ViewCount="" Body="&lt;p&gt;According to me Painting and Cooking. It makes us become more patient, and it allows us to relax.&lt;/p&gt;&#xA;" OwnerUserId="10935" LastEditorUserId="10935" LastEditorDisplayName="" LastEditDate="2011-01-02T07:51:21.163" LastActivityDate="2011-01-02T07:51:21.163" CommunityOwnedDate="2011-01-02T21:02:17.443" CommentCount="2" />
  <row Id="31595" PostTypeId="1" CreationDate="2010-12-29T07:00:36.950" Score="0" ViewCount="70" Body="&lt;p&gt;What are the steps to follow in social media marketing?&lt;/p&gt;&#xA;" OwnerUserId="11924" LastActivityDate="2010-12-29T07:04:06.197" ClosedDate="2010-12-29T09:59:09.980" Title="Social Media Marketing" Tags="&lt;technology&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="31596" PostTypeId="2" ParentId="31595" CreationDate="2010-12-29T07:04:06.197" Score="0" ViewCount="" Body="&lt;p&gt;Listen first, esteem existing online communities, join conversations civilly, begin conversations, respond to others, be kind, share and offer value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For more details on &lt;a href=&quot;http://www.ferociousmedia.com/social-media/&quot; rel=&quot;nofollow&quot;&gt;online marketing advertising Westport&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11925" LastActivityDate="2010-12-29T07:04:06.197" />
  <row Id="31597" PostTypeId="2" ParentId="31587" CreationDate="2010-12-29T07:12:13.347" Score="0" ViewCount="" Body="&lt;p&gt;I would go for Sun Light, Fresh Air, Strong Computer and Cooperative team members. The &quot;Personal office with a door&quot; kind of contradicts the Agile &quot;&lt;a href=&quot;http://www.onemoreagileblog.com/2010/01/agile-office-space.html&quot; rel=&quot;nofollow&quot;&gt;war room&lt;/a&gt;&quot; approach which proved to be useful. I am not voting for each, just pointing the issue.&lt;/p&gt;&#xA;" OwnerUserId="8410" LastActivityDate="2010-12-29T07:12:13.347" />
  <row Id="31598" PostTypeId="2" ParentId="31587" CreationDate="2010-12-29T07:21:50.243" Score="17" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Silence&lt;/strong&gt; is the most important. Personal office with a door would be ideal, and that's exactly &lt;strong&gt;because&lt;/strong&gt; people need to communicate. Say that you have two-person rooms. Now what happens when a third person comes in to talk with your roommate? Your focus breaks down. Period. Most people actually do realize this, so they start getting shy, and &lt;em&gt;communication goes down because people want to respect their colleagues.&lt;/em&gt; Eventually there will be some kind of balance between bad communication and bad productivity! It doesn't need to be that way, of course. Give people personal offices, and the problem of disturbing more than one people when actually communicating with just one goes away.&lt;/li&gt;&#xA;&lt;li&gt;Internet, of course. Any restriction is a personal insult at me. I won't work with such corporations.&lt;/li&gt;&#xA;&lt;li&gt;Dual monitors? Tried, didn't like. Yes, I really develop software with one monitor still. Somehow I'm able to focus better when the physical screen area to focus on is small enough. If there are screens all around me, then it feels like an &quot;agile cubicle&quot;, just noise pretending to be productivity.&lt;/li&gt;&#xA;&lt;li&gt;Decent computer. Time spent waiting for your computer to do something == pure waste.&lt;/li&gt;&#xA;&lt;li&gt;Flexible hours or working from home when needed, but actually I've found it best to just go to work from 9-5 or so. It creates a nice rhythm and a (physical) separation between work and non-work, to avoid getting too immersed in work. As John Cleese puts it: &lt;a href=&quot;http://www.youtube.com/watch?v=zGt3-fxOvug&quot; rel=&quot;nofollow&quot;&gt;boundaries of space, boundaries of time&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Not too many, too long meetings. Sometimes they're necessary of course, but somehow they usually tend to end up being too long, boring, waste. I would say a half-hour meeting once a week is enough.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2011-01-09T08:58:00.260" LastActivityDate="2011-01-09T08:58:00.260" CommentCount="2" />
  <row Id="31599" PostTypeId="2" ParentId="31578" CreationDate="2010-12-29T07:39:42.500" Score="3" ViewCount="" Body="&lt;p&gt;First, make sure that they can think algorithmically, regardless of programming language. Then, make them solve some simple problem in C++ code on the whiteboard. Then, ask about the distinguishing features of C++ that you &lt;em&gt;actually use in your project&lt;/em&gt;. Possible topics are memory management, RAII, templates, references, operator overloading. Maybe boost and metaprogramming, if you use it. OO-style programming is similar in C++ and Java/.NET (class-based, single-dispatch), except that it also supports multiple inheritance and virtual inheritance. Understanding what constitutes implementation-defined, unspecified and undefined behavior is also a plus.&lt;/p&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-12-29T07:39:42.500" CommentCount="4" />
  <row Id="31600" PostTypeId="2" ParentId="31587" CreationDate="2010-12-29T07:50:53.603" Score="3" ViewCount="" Body="&lt;p&gt;I can work in nearly any environment as long as someone is not requesting my immediate attention. Nothing else really matters besides being able to concentrate on what I'm doing without being pulled away from it every 5 minutes.&lt;/p&gt;&#xA;" OwnerUserId="10395" LastActivityDate="2010-12-29T07:50:53.603" />
  <row Id="31601" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T08:14:51.417" Score="0" ViewCount="" Body="&lt;p&gt;I took &quot;International Communication&quot; course in summer 2010. It was about various topics: how you communicate, how one object could raise opposite feelings for different people, how to be nice, how to stay on topic/change topic so others will accept. It even helps me in my daily life.&lt;/p&gt;&#xA;" OwnerUserId="4784" LastActivityDate="2010-12-29T08:14:51.417" CommunityOwnedDate="2011-01-02T21:02:17.443" />
  <row Id="31602" PostTypeId="2" ParentId="1371" CreationDate="2010-12-29T08:32:09.393" Score="1" ViewCount="" Body="&lt;p&gt;Projects that are kind of ready for production, but features keep being added.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Long development time without clear commitment for release.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-29T08:32:09.393" CommunityOwnedDate="2011-01-23T19:41:07.757" />
  <row Id="31603" PostTypeId="1" AcceptedAnswerId="31604" CreationDate="2010-12-29T08:39:00.127" Score="33" ViewCount="1544" Body="&lt;p&gt;Are there any particular incidents which are responsible for the low reputation Microsoft (and Bill Gates) has in the eyes of the open source community? Microsoft is clearly not the only proprietary company. Companies like Apple have done a lot worse when it comes to &lt;a href=&quot;http://www.zdnet.com/blog/burnette/apples-new-iphone-restrictions-and-the-5-stages-of-grief/1904&quot; rel=&quot;nofollow&quot;&gt;restrictions on software&lt;/a&gt;. Why does Microsoft get most of the hatred from the open source community? &lt;/p&gt;&#xA;" OwnerUserId="8783" LastActivityDate="2010-12-30T16:22:47.693" Title="Why does Microsoft have such a bad reputation with the people involved in open source?" Tags="&lt;open-source&gt;&lt;microsoft&gt;&lt;reputation&gt;" AnswerCount="19" CommentCount="32" FavoriteCount="15" />
  <row Id="31604" PostTypeId="2" ParentId="31603" CreationDate="2010-12-29T08:53:41.150" Score="32" ViewCount="" Body="&lt;p&gt;I guess if there's any one &quot;incident&quot; then it was the so-called &quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Halloween_Documents&quot; rel=&quot;nofollow&quot;&gt;Halloween Documents&lt;/a&gt;&quot;, which were a series of memoranda that were leaked by a Microsoft employee to Eric S. Raymond in the late 90's, detailing Microsoft's desire to &quot;disrupt the progress of open source software.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since then, Microsoft's attitude has somewhat mellowed, but many in the open source community still see Microsoft as a rather aggressive competitor, particularly with respect to the way they license their patented technologies (the &quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Microsoft_Open_Specification_Promise&quot; rel=&quot;nofollow&quot;&gt;Open Specification Promise&lt;/a&gt;&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, whether that reputation is (still) justified is another question. Personally, I don't think Microsoft is as &quot;evil&quot; as some people would like you to think - certainly not compared to some other companies out there. Apple's reputation isn't completely blemish-free. They cop quite a bit of flak over the App Store's rather arbitrary rules for which apps are allowed and which are not. But certainly they do &quot;get away with&quot; a heck of a lot more than Microsoft.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-29T08:53:41.150" CommentCount="9" />
  <row Id="31605" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T08:57:52.880" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Foreign languages!&lt;/li&gt;&#xA;&lt;li&gt;I had a course at college called &quot;Computer Science and Humanity&quot; in which we talked about being responsible as a developer (e.g. privacy concerns).&lt;/li&gt;&#xA;&lt;li&gt;Business Administration (e.g. accounting, HR) lets you understand your bosses and clients better.&lt;/li&gt;&#xA;&lt;li&gt;Electronics makes you understand your tools better.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6118" LastActivityDate="2010-12-29T08:57:52.880" CommunityOwnedDate="2011-01-02T21:02:17.443" CommentCount="1" />
  <row Id="31606" PostTypeId="2" ParentId="31582" CreationDate="2010-12-29T08:58:24.533" Score="1" ViewCount="" Body="&lt;p&gt;Desktop, and for one reason: screen real estate. The more code you can have on screen at once, the less time you spend switching windows and scrolling around to look at multiple things. I run dual 21&quot; (1680x1050) screens, and I'd love to have a third. I like to have several source code files open, perhaps some documentation, as well as the output of whatever I'm working on. It's also nice to have the vertical distance so you can see more code in one file at once, without splitting the view. Laptops are really bad for vertical screen space.&lt;/p&gt;&#xA;" OwnerUserId="11929" LastActivityDate="2010-12-29T08:58:24.533" CommentCount="3" />
  <row Id="31607" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T09:14:55.180" Score="7" ViewCount="" Body="&lt;h2&gt;Typography&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Typography is an overlooked area that is very important! Understanding typography can help you understand how to make more usable software as well as make it look good! Even if you don't take a class, it is great to read up on and can give you an edge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Great Typography Books:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1568989695&quot; rel=&quot;nofollow&quot;&gt;Thinking with Type&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0881792063&quot; rel=&quot;nofollow&quot;&gt;The Elements of Typographic Style&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Online Articles:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Typography&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Typography&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.informationarchitects.jp/en/the-web-is-all-about-typography-period/&quot; rel=&quot;nofollow&quot;&gt;http://www.informationarchitects.jp/en/the-web-is-all-about-typography-period/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11927" LastEditorUserId="11927" LastEditorDisplayName="" LastEditDate="2010-12-29T10:40:32.737" LastActivityDate="2010-12-29T10:40:32.737" CommunityOwnedDate="2011-01-02T21:02:17.443" CommentCount="2" />
  <row Id="31608" PostTypeId="2" ParentId="31603" CreationDate="2010-12-29T09:15:16.777" Score="35" ViewCount="" Body="&lt;p&gt;As Dean pointed out, for historical reasons. However, I think Microsoft has been progressively heading the right way, take for example this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://community.joomla.org/blogs/leadership/1167-microsoft-signs-jca.html&quot; rel=&quot;nofollow&quot;&gt;Microsoft signs the Joomla! Contributor Agreement&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/web/joomla/&quot; rel=&quot;nofollow&quot;&gt;http://www.microsoft.com/web/joomla/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep in mind that Microsoft, above all, is a business, and they will always look for profit in some form of another, however, I think they now know the value of community. Regarding being evil in open-source, I think Oracle is the new Microsoft, v.gr.:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://fosspatents.blogspot.com/2010/08/oracle-sues-google-says-android.html&quot; rel=&quot;nofollow&quot;&gt;Oracle sues Google, says Android infringes seven Java patents (plus unspecified copyrights)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think what saves Microsoft is that their actual constant interest is to cover all of the market and this can lead to intelligent strategies, and Oracle's demise in open-source is plain interest in profit. Perhaps I'm being a little visceral against Oracle, so if anyone can prove me wrong, go ahead.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-29T09:15:16.777" CommentCount="4" />
  <row Id="31609" PostTypeId="1" AcceptedAnswerId="31612" CreationDate="2010-12-29T09:19:17.837" Score="1" ViewCount="292" Body="&lt;p&gt;I need to set categories for interviewing candidates for Windows Mobile Development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like for ASP.NET, we can have &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;OOPS &lt;/li&gt;&#xA;&lt;li&gt;.NET Framework (CLR, BCL, MSIL etc)&lt;/li&gt;&#xA;&lt;li&gt;Javascript, jQuery&lt;/li&gt;&#xA;&lt;li&gt;Data Controls &lt;/li&gt;&#xA;&lt;li&gt;ADO.NET&lt;/li&gt;&#xA;&lt;li&gt;SQL Server&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;For Windows Mobile, which are categories that should be included?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being specific to our current product, it has not UI and will run in background. Security is the first thing to take into account. It is a SPY kind of application that will keep track of user activity. It can be used by companies to monotor their employees.&lt;/p&gt;&#xA;" OwnerUserId="11930" LastEditorUserId="11930" LastEditorDisplayName="" LastEditDate="2010-12-29T10:15:24.607" LastActivityDate="2010-12-29T14:00:44.803" Title="Windows Mobile Interview Question Categories" Tags="&lt;interview&gt;&lt;interview-questions&gt;&lt;interviewing&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="31610" PostTypeId="2" ParentId="31603" CreationDate="2010-12-29T09:21:41.793" Score="3" ViewCount="" Body="&lt;p&gt;When talking about Microsoft to people who don't know too much about IT, I notice that they &lt;strong&gt;wrongly&lt;/strong&gt; think that:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Microsoft is a strong concurrent to Open Source, whereas other companies are not, or not so strong,&lt;/li&gt;&#xA;&lt;li&gt;Microsoft forces everyone to use Windows despite Open Source solutions by installing its operating system on every computer sold,&lt;/li&gt;&#xA;&lt;li&gt;Microsoft does not encourage neither Open Source, nor free products.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;After all, most people don't bother to know what are the restrictions of Microsoft vs. Apple or other companies software: for them, they are all proprietary, so restrictive in the sense that you cannot download or share the software product legally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most people also doesn't know that Microsoft is strongly involved in Open Source products and, even more, in free products, which have a less restrictive license than most Open Source ones (for those people, it's a good idea to invite them to visit CodePlex).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, I think that criticism against Microsoft is stronger than against other companies just because of the dominant position of Microsoft. Probably people using Apple products will have the same arguments against Apple when talking about Open Source.&lt;/p&gt;&#xA;" OwnerUserId="6605" LastActivityDate="2010-12-29T09:21:41.793" CommentCount="5" />
  <row Id="31611" PostTypeId="2" ParentId="31603" CreationDate="2010-12-29T09:41:35.983" Score="14" ViewCount="" Body="&lt;p&gt;Microsoft had something of an anti-competitive reputation before open source was ever an issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One example is one of the Office apps (Word, I think) which was claimed to include during startup an allocation of an unrealistically huge amount of memory which was then immediately freed without ever being used for anything. When asked to allocate a large block of memory, MS-DOS would always succeed initially irrespective of whether all that memory was actually available. Digital Researches DR-DOS would fail immediately if too much memory was requested. The effect was that the Office app worked just fine on MS-DOS, but crashed immediately on DR-DOS. The claim was that this was intentionally done to give the impression that DR-DOS was buggy, and to make using DR-DOS impractical for customers already dependent on Office.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The policy of allowing a memory allocation even though the memory isn't immediately available isn't so wierd as it sounds. Linux does the same thing even now. That policy often allows things to run without problem that would otherwise have a problem, though &lt;em&gt;very&lt;/em&gt; occasionally the policy backfires and the Linux kernel has to start killing off processes to free memory as a result. The reason I point this out is because, for all I know, there may have been some weird but genuine reason for the large allocation at the start. It sounds implausible, but so does the policy of allowing allocations when the memory isn't immediately available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For that matter, the whole thing might even be a myth. Certainly some well known ex-Microsoft employees have published blog posts describing the extreme measures that Microsoft used to (and maybe still does) go to to ensure that old applications, including third party apps, continue to run on later DOS and Windows versions - though that is a slightly different thing, of course.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2010-12-29T09:41:35.983" CommentCount="2" />
  <row Id="31612" PostTypeId="2" ParentId="31609" CreationDate="2010-12-29T09:46:51.593" Score="2" ViewCount="" Body="&lt;p&gt;Personally I'd ask:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) List two (significantly) different ways to persist data on a Windows Mobile device.  What are the advantages and disadvantages of each one?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) What problems are you likely to encounter developing for mobile devices that you won't developing for desktops / servers?  (Want to hear about limited resources, bandwidth, loss of connectivity and the need for offline working, limited screen real estate)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) What is missing from the .NET Compact Framework which is in the full .NET framework?  (Shows that they're not just a .NET developer blagging it).  What would you do when you need to use something that's not included?  (Looking for a reference to writing unmanaged code / pinvoke) - tip of the hat to @Mat from his comment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) What are the differences between the Windows Mobile development stack and the Windows Phone 7 development stack?  (Show's they're staying current)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) Discuss different ways of communicating with a server from a mobile device.  What are the pros and cons of each one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd still also ask about OOP and .NET generally as they both apply, potentially a bit of SQL too, especially if they mention SQL CE in their first answer.  Depending on the applications you'll have them writing I'd look at talking about encryption too - both while persisting data on the device and while communicating with the server.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2010-12-29T14:00:44.803" LastActivityDate="2010-12-29T14:00:44.803" CommentCount="3" />
  <row Id="31613" PostTypeId="2" ParentId="31603" CreationDate="2010-12-29T09:55:08.963" Score="2" ViewCount="" Body="&lt;p&gt;It isn't that people or for the question's sake, geeks, hate Microsoft. When people turn towards open source, initially there is always the open source sentiment in mind. In those sentiments, they just get carried away with all the evil-doings of Microsoft in their past and end-up hating it. But, with time and work, they again realise that it wasn't exactly their not-involved nature, it was more about their inclination in their initial phase. I too started to hate MS in the beginning of my inclination towards open-source but with time, it just faded away.&lt;/p&gt;&#xA;" OwnerUserId="11633" LastActivityDate="2010-12-29T09:55:08.963" CommentCount="1" />
  <row Id="31614" PostTypeId="2" ParentId="31561" CreationDate="2010-12-29T10:13:06.620" Score="0" ViewCount="" Body="&lt;p&gt;Programs are still hard and developers are needed to create Them.  Only when All problems are understood is it possible to make it simpler in order for nonprogeammers to dó. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My guess is not in our lifetime. &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-29T10:13:06.620" />
  <row Id="31616" PostTypeId="2" ParentId="31603" CreationDate="2010-12-29T10:29:28.873" Score="2" ViewCount="" Body="&lt;p&gt;It has historical reasons. Microsoft was earlier very active against (and sometimes in an unfair way) against concurrents. That also includes Open Source. Halloween-documents are an example. Microsoft also had an agressive campaigning against OSS. That included also some patent-claims, that lead to the contract between Novell (Suse) and Microsoft. That contract made Microsoft in the end to one of the biggest Linux-distributors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently Microsoft has changed it's strategy. The firm no longer agitates against OSS. It even produces some Open-Source-software. Apples and Oracles doings in the recent past, make them currently much more 'evil' than Microsoft. But some people are conservative, that also includes their choosen enemies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would add, that Microsoft had been building it's bad reputation not only with the OSS-folk. OS/2-lovers, Netscape-users or Java-programmers all have also reason to hate Microsoft.&lt;/p&gt;&#xA;" OwnerUserId="7654" LastEditorUserId="7654" LastEditorDisplayName="" LastEditDate="2010-12-29T10:37:25.040" LastActivityDate="2010-12-29T10:37:25.040" />
  <row Id="31620" PostTypeId="2" ParentId="31558" CreationDate="2010-12-29T10:34:22.983" Score="1" ViewCount="" Body="&lt;p&gt;I think you should choose whatever you are comfortable with. In a small team, you will not have different code-trees (like the Linux-kernel), so a central repository is OK. But you can have this setup also with distributed VCS. So I would go with popularity and personal experience. Popular are SVN, git and Mercurial. You should decide, which o them is best used with your team (experience, tool-support in your choosen IDE etc.).&lt;/p&gt;&#xA;" OwnerUserId="7654" LastActivityDate="2010-12-29T10:34:22.983" />
  <row Id="31621" PostTypeId="1" AcceptedAnswerId="31686" CreationDate="2010-12-29T10:39:30.030" Score="7" ViewCount="144" Body="&lt;p&gt;Hi,&#xA;I'm planning to integrate an external tool (&lt;a href=&quot;http://www.ffmpeg.org/&quot; rel=&quot;nofollow&quot;&gt;ffmpeg&lt;/a&gt; in my particular case, but it could be anything, in fact, as lolng as its tasks are long running ones). This tool has &lt;a href=&quot;http://www.ffmpeg.org/ffmpeg-doc.html&quot; rel=&quot;nofollow&quot;&gt;a lot&lt;/a&gt; of command-line parameters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For now, I've done to simple things with it, already requiring me a good bunch of class writing, to embed all the information it can return to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I now face the even more complex task of having to send it a bunch of parameters &lt;em&gt;and&lt;/em&gt; to handle possible errors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what is a best way for that ?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Create classes containing all possible options&lt;/li&gt;&#xA;&lt;li&gt;Relying upon a reverse equivalent of &lt;a href=&quot;http://commons.apache.org/cli/&quot; rel=&quot;nofollow&quot;&gt;commons-cli&lt;/a&gt; / &lt;a href=&quot;http://groovy.codehaus.org/gapi/groovy/util/CliBuilder.html&quot; rel=&quot;nofollow&quot;&gt;CliBuilder&lt;/a&gt; / &lt;a href=&quot;http://optionparser.rubyforge.org/&quot; rel=&quot;nofollow&quot;&gt;OptionParser&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Directly write all options from user input&lt;/li&gt;&#xA;&lt;li&gt;Obiwan Kenobi powers (or anything I don't even know about)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Please notice I do it in an uncommon language (for the sake of me, don't ask me what it is, as it looks like a desperate and sterile union between &lt;a href=&quot;http://jashkenas.github.com/coffee-script/&quot; rel=&quot;nofollow&quot;&gt;CoffeeScript&lt;/a&gt; and &lt;a href=&quot;http://www.lua.org/&quot; rel=&quot;nofollow&quot;&gt;lua&lt;/a&gt;), as a consequence, there can be no framework doing what I want in the language I use.&lt;/p&gt;&#xA;" OwnerUserId="3508" LastActivityDate="2010-12-29T16:25:56.337" Title="What is the best wrapping strategy ?" Tags="&lt;design&gt;" AnswerCount="1" CommentCount="4" FavoriteCount="1" />
  <row Id="31622" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T10:47:09.503" Score="2" ViewCount="" Body="&lt;h2&gt;Personality Testing and Profiling&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Understanding personalities, tendencies, and chemistry is important. It can help you understand how to be more productive individually and as a team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Read more:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Personality_test&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Personality_test&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Myers-Briggs_Type_Indicator&quot; rel=&quot;nofollow&quot;&gt;Myers-Briggs Type Indicator&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Keirsey_Temperament_Sorter&quot; rel=&quot;nofollow&quot;&gt;Keirsey Temperament Sorter&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.discprofile.com/whatisdisc.htm&quot; rel=&quot;nofollow&quot;&gt;DISC Profiles&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11927" LastActivityDate="2010-12-29T10:47:09.503" CommunityOwnedDate="2011-01-02T21:02:17.443" CommentCount="3" />
  <row Id="31623" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T10:47:34.080" Score="0" ViewCount="" Body="&lt;p&gt;Some answers here suggest Graphic Design or Typography with the assumption that this will help in creating better GUIs and providing better user experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some Universities actually offer courses in &lt;strong&gt;GUI Ergonomics&lt;/strong&gt; which might be even better for that, although I'm not sure how 'non-technical' you can consider this ;)&lt;/p&gt;&#xA;" OwnerUserId="11785" LastActivityDate="2010-12-29T10:47:34.080" CommunityOwnedDate="2011-01-02T21:02:17.443" />
  <row Id="31624" PostTypeId="2" ParentId="31532" CreationDate="2010-12-29T10:48:50.050" Score="1" ViewCount="" Body="&lt;p&gt;I think both (GPL and BSD-type licenses) are both important for the FOSS-world. I see usage of the GPL in two groups. One is the group of very engaged Open-Source-supporters. They believe, that the possibility to turn Open-Source again into proprietary work will damage the OSS-world. I personally think, that's not the big problem. PC-BSD (a proprietary BSD-variant) doesn't damage the BSD-community. The second group that adopts the GPL are big companies. They use the license to keep more control over the product (to support their business-model for instance). The competition will have problems, to earn money with someone elses GPL-licensed software-product. So the company can stay ahead of competition, while earning good karma for Open-sourcing it's product.&lt;/p&gt;&#xA;" OwnerUserId="7654" LastActivityDate="2010-12-29T10:48:50.050" CommentCount="1" />
  <row Id="31625" PostTypeId="2" ParentId="31551" CreationDate="2010-12-29T10:58:35.460" Score="0" ViewCount="" Body="&lt;p&gt;You might want to consider if (and how much) your project is going to be related with the original one. If you plan on porting new features from the original project into your, you might consider keeping your version numbers matching versions of the original.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an example check out MariaDB, which is a fork of MySQL. They want to keep it a 'drop-in' replacement for MySQL, so for example MariaDB 5.2 has all the features of MySQL 5.2.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See: &lt;a href=&quot;http://kb.askmonty.org/v/mariadb-versus-mysql&quot; rel=&quot;nofollow&quot;&gt;http://kb.askmonty.org/v/mariadb-versus-mysql&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11785" LastActivityDate="2010-12-29T10:58:35.460" />
  <row Id="31626" PostTypeId="2" ParentId="31603" CreationDate="2010-12-29T11:14:15.450" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; I'm not sure about this answer, I tried to stay objective and point out some of the flaws and problems, not rant about Microsoft. Maybe I failed at that, if I did so, I'm sorry.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I think one part for this is the fact that Microsoft has a virtual-monopoly on the Operating System market, and is partially aggressively defending it (&lt;a href=&quot;http://www.microsoft.com/windowsserver/facts/default.mspx?R=cf&quot; rel=&quot;nofollow&quot;&gt;Get The Facts&lt;/a&gt;, anyone?). Which is absolutely valid, it's a company which needs to make money, the problem with monopolies and virtual-monopolies is that it is good for the company, but not for the market and especially not good for the customers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We don't have a really free OS-Market at the moment. Sure, the situation has improved a lot over the last years, but there are still many issues out there. F.e. the fact that Windows/Office comes bundled with most PC systems, without the option to get a OS free system (or a completely different OS pre-installed or at least installation medium). Or that most schools are teaching kids that Windows is pseudonymous with PC and Microsoft Office is everything you'll ever need (which is the bigger issue in my eyes).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The next problem is that Microsoft can't really be open and compatible to the rest of the world, because it would destroy their business model. Windows is a closed platform, the moment everything is compatible and open, that's the moment you don't need Windows. F.e. the &lt;a href=&quot;http://en.wikipedia.org/wiki/OOXML&quot; rel=&quot;nofollow&quot;&gt;Office Open XML Standard&lt;/a&gt;, which has so many &lt;a href=&quot;http://www.noooxml.org/&quot; rel=&quot;nofollow&quot;&gt;flaws in it&lt;/a&gt; and &lt;a href=&quot;http://www.noooxml.org/irregularities&quot; rel=&quot;nofollow&quot;&gt;in the standardization process&lt;/a&gt; that many call it a violation of the ISO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, Microsoft is a capitalistic company with a virtual-monopoly, that's absolutely valid...but that doesn't mean that it's good for us. And many people think that way, especially if they've seen other possibilities.&lt;/p&gt;&#xA;" OwnerUserId="3766" LastActivityDate="2010-12-29T11:14:15.450" CommentCount="8" />
  <row Id="31627" PostTypeId="2" ParentId="31603" CreationDate="2010-12-29T11:15:11.390" Score="5" ViewCount="" Body="&lt;p&gt;The main cause of dislike for me toward Microsoft is (was) the disdain shown towards open standards.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the prime example that comes to mind regarding this issue is Internet Explorer 6. IE6 is so buggy it rapidly becomes a true nightmare to develop websites catering to it. Not having clear, common standards that every party (in this case, browser companies) agree upon only slows down end users work (webdevs), and, in a broader sense, progress as a whole.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft is making amends and trying to do &quot;good&quot; with IE9, we just have to wait for IE 6, 7 and 8 to slowly die.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a long long time it was also close to impossible to read a .doc file in anything but Word, preventing users from switching text editors if they wanted to do so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad communication regarding Outlook 2010 also started an uproar on twitter, see here : &lt;a href=&quot;http://fixoutlook.org/&quot; rel=&quot;nofollow&quot;&gt;http://fixoutlook.org/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think Microsoft has covered a lot of ground towards being more &quot;open&quot; and more standards-friendly, which is a good thing. I predict the &quot;new ennemy&quot; will soon be Apple :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think of Microsoft as evil, now they're more clumsy and under a lot of pressure, trying to do as best they can to please both devs and users, which isn't always easy.&lt;/p&gt;&#xA;" OwnerUserId="11935" LastActivityDate="2010-12-29T11:15:11.390" CommentCount="14" />
  <row Id="31628" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T11:21:12.350" Score="2" ViewCount="" Body="&lt;p&gt;Economics and business, because these are why programmers have jobs. Additionally, understanding these will almost always dazzle non-technical managers and business owners because they are so accustomed to hearing only tech-speak from programmers and systems administrators.&lt;/p&gt;&#xA;" OwnerUserId="2335" LastActivityDate="2010-12-29T11:21:12.350" CommunityOwnedDate="2011-01-02T21:02:17.443" />
  <row Id="31630" PostTypeId="1" AcceptedAnswerId="31632" CreationDate="2010-12-29T11:25:10.583" Score="1" ViewCount="124" Body="&lt;p&gt;What are best practices for managing and maintaining large Rails app? &lt;/p&gt;&#xA;" OwnerUserId="8153" LastActivityDate="2010-12-29T11:38:13.380" Title="Best practices for managing and maintaining large Rails app?" Tags="&lt;best-practices&gt;&lt;ruby&gt;&lt;ruby-on-rails&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="31631" PostTypeId="2" ParentId="31603" CreationDate="2010-12-29T11:35:43.757" Score="17" ViewCount="" Body="&lt;p&gt;I am an &lt;a href=&quot;http://www.ohloh.net/accounts/tinkertim?ref=Detailed&quot; rel=&quot;nofollow&quot;&gt;active open source developer&lt;/a&gt; with commit access to several projects. I don't hate Microsoft. There are some things that I dislike about our industry as a whole, of which Microsoft is a part:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Patent litigation, I hate it when software is designed in court. I hate the concept of &lt;strong&gt;&lt;em&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0815749422&quot; rel=&quot;nofollow&quot;&gt;math I can't use&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;. I can't stand companies that purchase hordes of patents with the clear intention of using them to get rich through litigation.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I don't like DRM. I don't like it pushed on me. I think the whole concept is stupid. I feel the same way about trusted computing. At some point, publishers and producers are going to have to wake up to the fact that their old business model is no longer tenable, and neither is constant litigation.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A corporation is legally bound to look after the welfare of its share holders &lt;em&gt;first&lt;/em&gt;, above everything else. I feel that this sometimes puts companies in a position where they are legally obligated to do despicable things, once the potential profit of doing them is realized.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;None of these gripes are at all exclusive to Microsoft. Yes, I read the Halloween documents when they leaked, but I wasn't really put off by them. I said then, just as I say now that a truly functional distributed development model is nearly impossible to disrupt. That has proven to be the case in most instances.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Technically, I am not fond of some of Microsoft's products. I suffered through EDLIN, laughed at BOB and avoided Vista at all costs. However, Windows 2000 is still (in my book) one of the hardest OS's to kill. I'm also becoming rather fond of Windows 7. I wouldn't purchase my own copy, but I'll happily use the copy that my company provided.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As others have said, I'm far more concerned regarding Oracle being Oracle than I am about Microsoft being Microsoft. At the time of this writing, Microsoft is at least predictable and they are trying to repair past damages to the free software community. Like others, I take those repairs with a grain of salt, but they do seem to show the capacity for metacognition, albeit on levels that many would consider trivial. Note again, publicly traded companies have an obligation to their share holders.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My decisions on what technology I use are based solely on technical merit. &lt;a href=&quot;http://torvalds-family.blogspot.com/2009/01/fantastic.html&quot; rel=&quot;nofollow&quot;&gt;I'm not the only one who thinks that way&lt;/a&gt;. It just happens that, if I have the source code to something and can modify it to suit my needs, the merit increases exponentially. If I change it and can't share it, it is useless to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm also not completely immune to the idealism of free software, I really hope that one day, open collaboration prevails and we really start advancing ourselves free from litigation and secrets. I live in the real world, and I don't see that happening in the immediate future. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One can hope, and I do, and I work for change. Until then, I do have bills to pay :) I don't get paid for speeches.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-30T16:22:47.693" LastActivityDate="2010-12-30T16:22:47.693" CommentCount="3" />
  <row Id="31632" PostTypeId="2" ParentId="31630" CreationDate="2010-12-29T11:38:13.380" Score="2" ViewCount="" Body="&lt;p&gt;The big need is test. Add a really big test suite to be sure avoiding some regression.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you can try to extract some part in gem too.&lt;/p&gt;&#xA;" OwnerUserId="11167" LastActivityDate="2010-12-29T11:38:13.380" />
  <row Id="31633" PostTypeId="2" ParentId="31551" CreationDate="2010-12-29T11:38:58.007" Score="2" ViewCount="" Body="&lt;p&gt;If at all possible, merge your fork back to the original project. I cannot emphasize this enough. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regaeding your version numbers, then use the one you forked from plus a date suffix. &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-29T11:38:58.007" />
  <row Id="31634" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T11:52:26.150" Score="1" ViewCount="" Body="&lt;h2&gt;&lt;strong&gt;Law&lt;/strong&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;There are many subjects that a computing professional should know, indeed our profession, like most business consultancy professions, requires a substantial breadth of knowledge across all the domains we encounter and analyse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, law is the one I would single out as a necessity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our profession is on the front-line of a rapidly changing legal framework, intellectual property is the well known example, but there are all manner of legal issues that crop up day-to-day.  Regulatory compliance, valid and invalid contractual clauses, credit law, if you work in e-commerce, data protection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think all IT professionals, and certainly senior software engineers should have basic legal training and follow applicable law in their areas.  My university had it on the compulsory syllabus for master's students for computing, it comes in handy regularly.  The usual riposte is that &quot;the legal department handles that&quot;, yes well, they may not be aware an issue created by software exists unless the staff there have sufficient awareness to notify them of it - plus, it is usually the source that has their head on the chopping block.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-29T11:52:26.150" CommunityOwnedDate="2011-01-02T21:02:17.443" />
  <row Id="31635" PostTypeId="1" CreationDate="2010-12-29T12:11:46.170" Score="1" ViewCount="219" Body="&lt;p&gt;What do you think are requirements to become Architect(in career terms)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think guy should have a lot of experience and have deep understanding of how applications servers, databases and programming works. However my real life experience is different, most of the time I'm not impressed with their knowledge. How do you see that career position and what do you expect of them?&lt;/p&gt;&#xA;" OwnerUserId="929" LastActivityDate="2010-12-29T13:40:01.887" ClosedDate="2010-12-29T14:41:00.203" Title="What Architect should know?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;architecture&gt;&lt;architect&gt;" AnswerCount="2" CommentCount="4" FavoriteCount="2" />
  <row Id="31636" PostTypeId="2" ParentId="31578" CreationDate="2010-12-29T12:14:53.817" Score="2" ViewCount="" Body="&lt;p&gt;The main issue that I have seen with programmers from .Net and Java that use C++ is memory management. They have a big tendency to always allocate objects on the heap instead of using stack, so watch for this. &lt;/p&gt;&#xA;" OwnerUserId="771" LastActivityDate="2010-12-29T12:14:53.817" />
  <row Id="31637" PostTypeId="2" ParentId="31532" CreationDate="2010-12-29T12:26:18.710" Score="5" ViewCount="" Body="&lt;p&gt;First, there is an inherent subjectivity in the question - there is no way to know for sure, and history can be interpreted either way. This is an old debate, and one of the core issue in the debate open source vs free software. You also need to define what you mean by reaching its goals. It is difficult to argue that GPL and the FSF has not contributed to make open source a significant movement of the last 2-3 decades. It has not reached its goals of all code being free software, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The paragon of GPL softwares are of course linux and everything coming from the FSF (gcc, etc...). Interestingly, for linux, the GPL was not chosen for its political stance, but because of the idea of reciprocity, as stated several times by Linus Torvald. I give you my code, but you have to give me yours in exchange if you use mine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as linux itself goes, I think the GPL have been very valuable - a recent example is BTRFS, the new fs developed inside Oracle. The main writer of BTRFS has stated that the only reason Oracle agreed in the first place to use GPL is because it did not have a choice. The bigger question is whether linux itself became successful because or despite the GPL. Various factors such as Linus incredible leadership, copyright issues for the *BSD project at that time, etc... make the hypothesis impossible to prove/disprove.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For gcc, Stallman &lt;a href=&quot;http://gcc.gnu.org/wiki/GCC_Plugins&quot; rel=&quot;nofollow&quot;&gt;has written several times&lt;/a&gt; why the GPL saved the project against &quot;propietarization&quot;.&lt;/p&gt;&#xA;" OwnerUserId="6139" LastEditorUserId="6139" LastEditorDisplayName="" LastEditDate="2010-12-30T00:57:06.337" LastActivityDate="2010-12-30T00:57:06.337" CommentCount="4" />
  <row Id="31638" PostTypeId="1" AcceptedAnswerId="31643" CreationDate="2010-12-29T12:27:11.097" Score="-1" ViewCount="218" Body="&lt;p&gt;Hi guys,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;because so much questions are closed here i was wondering if there is some website that's really about &gt;programmers&amp;lt; you know real programmers, that have a life not codemonkeys.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example i'd like to see what programmers around the world wear, maybe pictures. It's of course related to programming but i think community here is to strict to allow anything that has no &quot;PHP&quot; or &quot;Java&quot; in title.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You know, some place where you can ask questions not only related to lines of code but to ... programmers :) For now this subsite feels more than .coding, not .programmers to be honest :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW: I saw there's life-style tag... maybe not all hope is lost...&lt;/p&gt;&#xA;" OwnerUserId="11827" LastActivityDate="2010-12-29T12:50:19.710" ClosedDate="2010-12-29T13:25:15.673" Title="Is there a website like this?" Tags="&lt;lifestyle&gt;" AnswerCount="1" CommentCount="7" />
  <row Id="31639" PostTypeId="2" ParentId="31578" CreationDate="2010-12-29T12:31:06.880" Score="1" ViewCount="" Body="&lt;p&gt;Any developer starting a new job needs to learn the idioms used in that project and team. Learning the idioms of the particular implementation language is just an aspect of that, really - an extra learning curve issue, but for C++ relative to C# or Java, probably not that big a deal. The exception may be where there are strong religious views that the person may not be willing to drop as a point of principle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The non-garbage-collected nature of C++ is an obvious area for religious issues. I might worry about someone who strongly asserts that all non-GC software is buggy without acknowledging that that using GC can lead to different resource-management complications and bugs rather than complete upside-only elimination of a whole class of problems. A true extremist in that position may reject C++ resource management idioms pretty much out of hand, insisting that the resulting issues are inevitable anyway and that any working C++ code produced by others is a result of bizarre superhuman intelligence or fluke. A view that GC is &lt;em&gt;generally&lt;/em&gt; a better approach wouldn't necessarily worry me, so long as there is flexibility and a willingness to adopt idioms appropriate to C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A question to reveal that viewpoint? Without giving a misleading impression of people who currently have mostly GC-specific experience, but would quickly adapt? I doubt I can come up with one, and I think the real issue would be with people who's bias is apparent throughout, and irrespective of the particular question, anyway. That's assuming you can reliably detect the issue in an interview situation at all, assuming the applicant knows the role involves C++.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2010-12-29T12:31:06.880" CommentCount="1" />
  <row Id="31640" PostTypeId="2" ParentId="31635" CreationDate="2010-12-29T12:38:51.147" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://97things.oreilly.com/wiki/index.php/97_Things_Every_Software_Architect_Should_Know_-_The_Book&quot; rel=&quot;nofollow&quot;&gt;97 Things Every Software Architect Should Know&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1124" LastActivityDate="2010-12-29T12:38:51.147" CommentCount="1" />
  <row Id="31641" PostTypeId="1" CreationDate="2010-12-29T12:42:23.340" Score="9" ViewCount="216" Body="&lt;p&gt;Someone told me that if the software product meets clients expectations, it is good quality. But I've worked with Interaction Designers (the same kind of people who made Gmail's interface and usability so cool!), and I've loved working with them because even though they came up with hundreds of changes in requirements, and emphasised on many many subtle details, when the software was complete, I could look at the product and say &lt;strong&gt;WOW&lt;/strong&gt;!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The current place I work, the only thing that matters is completing the project on time. As long as it works and as long as the client says it's ok, nobody bothers to improve it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not talking about gold-plating, but I believe that for a programmer to enjoy his (well, maybe her too ;) ) job, they should be able to proudly say that &quot;Hey, I made that software&quot; and that comes only when the product is of good quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from your opinions on this, &lt;strong&gt;I'd also like to know which fields&lt;/strong&gt; (Eg. Aerospace, Finance etc.) could I find companies (or you could mention the company name) where the quality of a product is as important &lt;strong&gt;(and encouraged by the management)&lt;/strong&gt; as completing the project on time?&lt;/p&gt;&#xA;" OwnerUserId="8413" LastEditorUserId="8413" LastEditorDisplayName="" LastEditDate="2010-12-29T14:03:39.650" LastActivityDate="2010-12-29T22:01:45.220" Title="In which fields does quality of the software product matter as much as the completion time?" Tags="&lt;productivity&gt;&lt;work-environment&gt;&lt;development-process&gt;&lt;code-quality&gt;&lt;top-companies&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="4" />
  <row Id="31642" PostTypeId="2" ParentId="31603" CreationDate="2010-12-29T12:46:22.523" Score="13" ViewCount="" Body="&lt;p&gt;Well some time ago (like 5-6 years AFAIR) they tried to make linux illegal by throwing money at SCO company lawsuit. They were sending legal threats and trying to sue linux users, pretending to own it. It took like 2 years, before they finally acknowledge they were unable to point any &quot;stolen&quot; code, so they switch to a nice thing called software patents and then they said their &quot;intellectual property&quot; was stolen.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you may know Intellectual Property is some bullshit, not a real thing, so it's easy to say someone stole it from you... when you don't even know what it is. &quot;I use red backgrounds for my desktop - you stole my intellectual property&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SCO's reputation get so bad that they went bankrupt and i guess this one, beside many others is enough to hate microsoft for financially backing up this bullshit to undercut linux reputation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We can add some mentally retarded Ballmer's quotes to the equation:&#xA;-- &quot;Open Source is a cancer&quot;&lt;br&gt;&#xA;-- &quot;Open Sourse is not free, finally patent owners will come and you'll have to pay the bill&quot;&lt;br&gt;&#xA;-- &quot;Open Source is communism&quot; (I think that was Bill Gates)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, in the end MS is 100x more friendlier than eg. Apple. Apple made it illegal for their programmers to use tools that they want (eg. cross compilers or flash)... treat to destroy any free video codec (because they own all Intellectual Property, bla bla bla)... so at least MS is sane in this matter (not treating their programmers and users like slaves).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We should really hate Apple, microsoft get much nicer over time. Now Apple is trying to delegalize owning a brain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To end with optimism. It's good that we, in European Union don't have any sortware patent or intellectual property bullshit going on. So apple can for now go f** themselves... and harass United States people only. Even the Terms Of Service (TOS) agreement for private end-users was ruled illegal by the German court (and several other countries ruling followed), so in EU it means just NOTHING. How good is that? :)&lt;/p&gt;&#xA;" OwnerUserId="11827" LastEditorUserId="11827" LastEditorDisplayName="" LastEditDate="2010-12-29T12:58:23.273" LastActivityDate="2010-12-29T12:58:23.273" CommentCount="15" />
  <row Id="31643" PostTypeId="2" ParentId="31638" CreationDate="2010-12-29T12:50:19.710" Score="2" ViewCount="" Body="&lt;p&gt;Maybe you will like the &lt;a href=&quot;http://forums.thedailywtf.com&quot; rel=&quot;nofollow&quot;&gt;TDWTF forums&lt;/a&gt; better.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-29T12:50:19.710" />
  <row Id="31644" PostTypeId="2" ParentId="29722" CreationDate="2010-12-29T12:51:39.490" Score="1" ViewCount="" Body="&lt;p&gt;I do not agree that iterators and the STL should be beelined for in an academically-minded C++ course.  I'd far rather have students focus on the ability to build and compare different collection classes of their own, and understand the tradeoffs of whatever class they might encounter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aim for producing graduates who have enough grounding to look at the function prototypes in the STL docs and go &quot;oh this is one of &lt;i&gt;those&lt;/i&gt; types of approaches&quot;.  Then they can have an equal confidence if they dig into some the big name codebases that they heard of which &quot;use C++&quot; but which don't use STL... like how Firefox foregoes &lt;code&gt;std::string&lt;/code&gt; and defines its own &lt;a href=&quot;https://developer.mozilla.org/En/Mozilla_internal_string_guide&quot; rel=&quot;nofollow&quot;&gt;(nsAString_Internal) hierarchy&lt;/a&gt;.  Or nearly every Qt program out there, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the real world, cross-cutting concerns often preclude projects from using the STL.  That can be issues like threading on embedded systems, implicit sharing, or Unicode.  It's precisely &lt;i&gt;the power of C++ to attack these problems with custom solutions&lt;/i&gt; that has kept the language relevant when going up against its nimbler interpreted competition.  People who live and breathe C++, even for purposes best suited for shell scripting, miss that point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/1618798/why-is-there-a-different-string-class-in-every-c-platform-out-there&quot;&gt;http://stackoverflow.com/questions/1618798/why-is-there-a-different-string-class-in-every-c-platform-out-there&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since most of the other languages people are exposed to these days are interpreted, a real understanding of &quot;compile-time&quot; vs &quot;run-time&quot; is essential.  Not just in terms of performance but in terms of globally assuring certain types of errors don't exist.  Template syntax can get ugly, but all the more reason to show why anyone bothers with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Throw Valgrind in there and get them used to understanding what's happening to their memory from day one, and how automatic memory management can help.  Let them write their &lt;em&gt;own&lt;/em&gt; auto_ptr and then give them situations where it will flop in a simple collection.  Have them write essays about why and re-derive unique_ptr and shared_ptr.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bjarne Stroustrup makes some great points in his C++ teaching (which I often link to).  But he's usually making arguments to hardened C programmers that if they think their C programs are faster than comparable STL-based C++, then the programs &lt;i&gt;are probably only faster because they are incorrect&lt;/i&gt;.  This takes the foregone conclusion that your problem required C-level performance in the first place, and no programmer of this generation should be assuming that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In summary: I'm not suggesting &quot;C with classes&quot;.  I'm suggesting &quot;Grasping the design tradeoffs in C++ software design [leveraging tools like inheritance, RAII, templates and overloading]&quot;  Too much STL emphasis up-front will just lead to a bunch of angry Java-converts-in-training who can't cut their teeth on showcase C++ projects.&lt;/p&gt;&#xA;" OwnerUserId="944" LastActivityDate="2010-12-29T12:51:39.490" />
  <row Id="31645" PostTypeId="2" ParentId="31641" CreationDate="2010-12-29T12:55:17.887" Score="5" ViewCount="" Body="&lt;p&gt;I don't think a product that &lt;code&gt;meets clients expectations&lt;/code&gt; is automagically &lt;code&gt;good quality&lt;/code&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It only meets client's expectations. If client expectations is low price and low quality, it's OK. But it's not &lt;code&gt;high quality&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Delivering more than expected&lt;/strong&gt; is always a good commercial strategy, if we can name it like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now about &lt;strong&gt;quality&lt;/strong&gt; in general, I think it &lt;strong&gt;should be a part of the company culture&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Your people are not be happy and productive in their job if you ask them to build shit.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-12-29T12:55:17.887" CommentCount="9" />
  <row Id="31646" PostTypeId="2" ParentId="29725" CreationDate="2010-12-29T12:58:55.870" Score="0" ViewCount="" Body="&lt;p&gt;I would go for java, as it's features are more stable, and there are more tools and libraries that target it even if C# and .net is a breath of fresh air, C# is gaining a lot of strange features in the core language compared with java... One of these days you won't even know if C# is based on OO, functional or a completly different paradigm. And java is more stable about that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also for the ones that say that desktop programming is more easy with C#, lets say that I would prefere swing to WPF or Windows Forms 1000x.&lt;/p&gt;&#xA;" OwnerUserId="11940" LastActivityDate="2010-12-29T12:58:55.870" />
  <row Id="31647" PostTypeId="2" ParentId="31603" CreationDate="2010-12-29T13:01:14.953" Score="2" ViewCount="" Body="&lt;p&gt;I was an almost exclusive user of and developer for Microsoft platforms until Microsoft joined the &lt;a href=&quot;http://en.wikipedia.org/wiki/Trusted_Computing_Group&quot; rel=&quot;nofollow&quot;&gt;Trusted Computing Group&lt;/a&gt; and basically started to show that I, the person who bought their products, wasn't who they were concerned about pleasing; that instead they'd please media companies, et al, at my expense.  I switched away from my MSDN Enterprise subscription (paid a pretty penny for that!), stopped using Microsoft products one at a time, beginning with Windows, as I found F/OSS alternatives until nowadays my computer is 99.44% uncontaminated with anything Microsoft.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't speak for open source developers (because I barely qualify as one), but I can say that for my own choice I made it because I got tired of Microsoft taking my money with one hand and taking away my ability to use the computer I paid for with the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not a committed F/OSSer.  I don't buy into the rabid versions of F/OSS philosophy (or, rather, attitude) so I'll use commercial software provided the following criteria are met:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;There is no viable F/OSS alternative.&lt;/li&gt;&#xA;&lt;li&gt;I can afford it (obviously!).&lt;/li&gt;&#xA;&lt;li&gt;It is not made by Microsoft.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10246" LastActivityDate="2010-12-29T13:01:14.953" CommentCount="8" />
  <row Id="31648" PostTypeId="2" ParentId="20708" CreationDate="2010-12-29T13:04:34.553" Score="0" ViewCount="" Body="&lt;p&gt;I've used both &lt;a href=&quot;http://programmers.stackexchange.com/questions/20708/what-groupware-project-management-apps-preferably-self-hosted-webapp-do-you-rec/20716#20716&quot;&gt;Redmine, as suggested by Inaimathi&lt;/a&gt;, as well as &lt;a href=&quot;http://trac.edgewall.org/&quot; rel=&quot;nofollow&quot;&gt;Trac&lt;/a&gt;. You need plugins to do things like time tracking/estimation, billing, and Git integration, but there are &lt;a href=&quot;http://trac-hacks.org/&quot; rel=&quot;nofollow&quot;&gt;plenty available&lt;/a&gt; to do a lot of cool things.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-12-29T13:04:34.553" />
  <row Id="31649" PostTypeId="2" ParentId="31641" CreationDate="2010-12-29T13:06:27.703" Score="4" ViewCount="" Body="&lt;p&gt;You already mentioned - Aerospace. As I know in US they made unit tests for EVERY change in code. Because it is more cheaper, than single failed shuttle and rocket. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If higher quality reduces maintenance (insurance, extensibility, etc) by N amount of money, and these changes cost less than N amount of money, then it obvious to do them. &#xA;E.g. spending 200 hours in increasing nuclear reactor stability from  99,9999% to 99,99999% usually wort it. But spending 200 hours in increasing mail application stability for small company (e.g. 20 employees) from 99,9999% to 99,99999%  usually not worth. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Same goes for usability, will you spend 20 hours to increase quality, or to deliver 2 new features? If quality is so bad, that application almost not usable, then new feature won't make any sense. But if usability as good as gmail, people will be more glad with new features.&lt;/p&gt;&#xA;" OwnerUserId="4784" LastActivityDate="2010-12-29T13:06:27.703" CommentCount="6" />
  <row Id="31650" PostTypeId="2" ParentId="31558" CreationDate="2010-12-29T13:07:50.920" Score="1" ViewCount="" Body="&lt;p&gt;It really depends of whether or not your developers are going to develop a lot of code offline or not, but only to choose between a distributed or centralized repository, since this is the first thing you should decide. Then, if you decide that a centralized approach works better than SVN is all you need. On the other side if you go for a distributed approach than go for git, even on windows it's good enough since now you have tortoise git (the same interface that also exists for svn). Also, don't count so much on the IDE support because you might get a nasty surprise if you ever use that, and you might find that files that shouldn't be commit do get committed in your behalf by the IDE.&lt;/p&gt;&#xA;" OwnerUserId="11940" LastActivityDate="2010-12-29T13:07:50.920" />
  <row Id="31651" PostTypeId="2" ParentId="31586" CreationDate="2010-12-29T13:11:12.603" Score="0" ViewCount="" Body="&lt;p&gt;This actually belongs to stackoverflow, but if you are in a hurry &lt;a href=&quot;http://www.gamedev.net/reference/articles/article2098.asp&quot; rel=&quot;nofollow&quot;&gt;this might help&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11940" LastActivityDate="2010-12-29T13:11:12.603" />
  <row Id="31652" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T13:15:14.607" Score="0" ViewCount="" Body="&lt;p&gt;1 &lt;strong&gt;Music&lt;/strong&gt;&lt;br&gt;&#xA;2 &lt;strong&gt;Language and Communication skills&lt;/strong&gt;&#xA; + All the concept site implemented by stackexchange are worth participating &lt;/p&gt;&#xA;" OwnerUserId="1038" LastEditorUserId="1038" LastEditorDisplayName="" LastEditDate="2010-12-31T10:38:28.640" LastActivityDate="2010-12-31T10:38:28.640" CommunityOwnedDate="2011-01-02T21:02:17.443" CommentCount="2" />
  <row Id="31653" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T13:26:05.107" Score="15" ViewCount="" Body="&lt;h2&gt;Business&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The biggest problem I've seen with folks coming straight out of college (including myself a few years ago), is that they want to write cool applications no matter if they help the business make money or not.  In order to really be a rockstar developer in everyone's eyes you need to be a great developer (for the other developers to notice) and either make or save the company money (for the business people to notice)!  When you can do both you set yourself up for not only great career opportunities, but the business people will start to LISTEN to you!  Why?  Because you provide value.  Even startups that write fun applications' primary focus is to eventually create something that is profitable.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-12-29T13:26:05.107" CommunityOwnedDate="2011-01-02T21:02:17.443" CommentCount="4" />
  <row Id="31654" PostTypeId="2" ParentId="31587" CreationDate="2010-12-29T13:28:05.170" Score="4" ViewCount="" Body="&lt;h2&gt;Co-workers&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;...and what they do to their space that bleeds into yours.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Music&lt;/li&gt;&#xA;&lt;li&gt;Random Windows *ding*s&lt;/li&gt;&#xA;&lt;li&gt;Wanting to chat all the time&lt;/li&gt;&#xA;&lt;li&gt;Your office not having a door &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-12-29T13:28:05.170" />
  <row Id="31655" PostTypeId="2" ParentId="31558" CreationDate="2010-12-29T13:28:24.737" Score="1" ViewCount="" Body="&lt;p&gt;Ask your team, if some one want to take care of it. It is much better to have stable system, and responsible person, than good system when none care about it, and none able to restore it from backup.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there is such person - he will already know what to use, so just accept his decision. If not - get some hosted solution. It would be very stupid try GIT (one of the best) if all of developers never touched Shell/Linux.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also depends of number of &quot;nontechnical&quot; people, that need to read/contribute. Just make sure that they could use it, and there are tools available.&lt;/p&gt;&#xA;" OwnerUserId="4784" LastActivityDate="2010-12-29T13:28:24.737" />
  <row Id="31656" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T13:29:38.557" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Basic Financial Courses&lt;/strong&gt; - The category is a bit broad but odds are pretty good that most developers that work for a large company that doesn't produce software as a product is going to have to write some code that preforms financial calculations. Likewise, as you start to move up the career ladder you might be called on to produce basic budgets for your group. Finally, they tend to teach you useful information for your household budgets as well so you know where to invest money for short term gains and long term stability (i.e. for your retirement account).&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2010-12-29T13:29:38.557" CommunityOwnedDate="2011-01-02T21:02:17.443" />
  <row Id="31657" PostTypeId="2" ParentId="31587" CreationDate="2010-12-29T13:32:27.270" Score="2" ViewCount="" Body="&lt;p&gt;Co-workers, but not for the distractions they create but the motivation they provide.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Working with motivated, knowledgeable, interesting people is a bigger boost for productivity than anything else. Conversely working with unmotivated, boring people will kill productivity more than anything else.&lt;/p&gt;&#xA;" OwnerUserId="10449" LastActivityDate="2010-12-29T13:32:27.270" CommentCount="1" />
  <row Id="31658" PostTypeId="2" ParentId="31635" CreationDate="2010-12-29T13:40:01.887" Score="2" ViewCount="" Body="&lt;p&gt;I just became an application architect this year, and as such did a lot of reading about it.  The most helpful articles were the ones linked from this page:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codingthearchitecture.com/pages/role.html&quot; rel=&quot;nofollow&quot;&gt;http://www.codingthearchitecture.com/pages/role.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-12-29T13:40:01.887" />
  <row Id="31659" PostTypeId="2" ParentId="31603" CreationDate="2010-12-29T13:55:30.753" Score="-1" ViewCount="" Body="&lt;p&gt;They also don't really &quot;get&quot; open source at all.  As an example, consider Asp.Net Mvc, and how it is &lt;a href=&quot;http://arstechnica.com/microsoft/news/2009/04/microsoft-releases-aspnet-mvc-source-under-open-license.ars&quot; rel=&quot;nofollow&quot;&gt;&quot;open source&quot;&lt;/a&gt;.  However take a quick jog over to the &lt;a href=&quot;http://aspnet.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;codeplex site&lt;/a&gt; and notice how right there at the bottom they state that they don't accept patches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are certainly people at MS who do &quot;get it&quot;, but it seems they're not the ones making the decisions.&lt;/p&gt;&#xA;" OwnerUserId="11829" LastActivityDate="2010-12-29T13:55:30.753" CommentCount="5" />
  <row Id="31660" PostTypeId="2" ParentId="31587" CreationDate="2010-12-29T14:01:15.893" Score="0" ViewCount="" Body="&lt;p&gt;Very subjective:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;internet - I would say 20% of my solutions come from web. If some one limit speed down to 1Mb/s I wont suffer. So some restrictions are fine.&lt;/li&gt;&#xA;&lt;li&gt;quite working conditions&#xA;&lt;ul&gt;&#xA;&lt;li&gt;GOOD headphones could help, but not to everyone, and not for long period of time&lt;/li&gt;&#xA;&lt;li&gt;Personal office with a door - depends on development process. Now it will just slow down development. But again, if there will be 2-3 times more disturbance from co-workers, doors will be valuable.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;dual monitors (main at least 1680x1050)&lt;/li&gt;&#xA;&lt;li&gt;second computer (or virtual server), that you could play with, and easily rever to some working state&lt;/li&gt;&#xA;&lt;li&gt;flexible working hours, e.g. in current work I should be in office 10-16, and remaining hours could do earlier or later, or even other day. I don't need any more flexibility than that&lt;/li&gt;&#xA;&lt;li&gt;good lunch place in 10 min walk (preferably without need to go outside of building)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;micro-kitchen in office is also good to survive when I decided to stay longer in evening&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4784" LastActivityDate="2010-12-29T14:01:15.893" />
  <row Id="31661" PostTypeId="2" ParentId="31548" CreationDate="2010-12-29T14:05:00.120" Score="12" ViewCount="" Body="&lt;p&gt;Amazon codebase is written in C++. Google is using C++, Python, Java. Stack Overflow Network is using .Net. Wikipedia is using PHP. Facebook used to work with PHP, now they've rolled out their own language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Great software isn't about technology, it's about people. You need to choose the tool that fits your work team best (because Pandora isn't a solo project, you'll need at lest two people to help you).&lt;/p&gt;&#xA;" OwnerUserId="8140" LastActivityDate="2010-12-29T14:05:00.120" CommentCount="4" />
  <row Id="31662" PostTypeId="2" ParentId="19007" CreationDate="2010-12-29T14:07:41.220" Score="0" ViewCount="" Body="&lt;p&gt;If you really like web development go for that, but as someone already said you will also know something about desktop programming, since the interface design and patterns are almost the same.&lt;/p&gt;&#xA;" OwnerUserId="11940" LastActivityDate="2010-12-29T14:07:41.220" />
  <row Id="31663" PostTypeId="2" ParentId="31603" CreationDate="2010-12-29T14:20:51.913" Score="3" ViewCount="" Body="&lt;p&gt;The primary reason is because big business is notorious for patenting everything they can and locking other out of the industry. If I invented something, I'd want to profit from it too, but big business takes it a different level, attempting to patent generic ideas and trademark generic words. This is called economic rent seeking. It's a very corrupt practice which congress has not had luck stopping over the years, and it's absolutely counter-innovative and counter-progressive. Open source people tend to have innovation in their mind more so than money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep in mind, SO is closed source, and profit based. The difference is that they create things of value and ask for little in return (ad revenue). There are even clones of SO out there (for Django, PHP, etc), but SO doesn't sue their creators. Microsoft and Apple sue the competition out of business and charge a killing for their products.&lt;/p&gt;&#xA;" OwnerUserId="825" LastActivityDate="2010-12-29T14:20:51.913" />
  <row Id="31664" PostTypeId="2" ParentId="31532" CreationDate="2010-12-29T14:40:27.147" Score="0" ViewCount="" Body="&lt;p&gt;I do think that when people think of GPL they think in the gnu ideals, in which the software should be a free think, so that ideas would spreed out, and that the big companies are the bad guys because they don't allow that. The problem is that way of thinking does not buy many programmers because they just want to code they stuff, have they programs and also they own life, that does not necessarily involves software, under that view BSD and the other licenses are much more attractive, in the same sense that Linus is more popular than Richard Stallman for the developers, Because the first just wants to do his thing (like many of us), while the other wants to try to change the whole world. So in the end the GPL is like Mikhail Gorbachev, someone that starts the evolution but is not destined to see it succeed.&lt;/p&gt;&#xA;" OwnerUserId="11940" LastActivityDate="2010-12-29T14:40:27.147" />
  <row Id="31665" PostTypeId="2" ParentId="31603" CreationDate="2010-12-29T14:49:08.393" Score="4" ViewCount="" Body="&lt;p&gt;Kids, sit down, uncle Paulo has a nice history for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bill Gates was one of the first business man to advocate selling software by itself. Before him, software was mostly something bundled with hardware. He started the damn software as a product industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The infamous &lt;a href=&quot;http://www.digibarn.com/collections/newsletters/homebrew/V2_01/homebrew_V2_01_p2.jpg&quot; rel=&quot;nofollow&quot;&gt;'AN OPEN LETTER TO HOBBYISTS - By William Henry Gates III'&lt;/a&gt; dates back to 1976!!! A young (just 20) Bill Gates wrote this letter to the legendary Homebrew Computer Club complaining that Altair BASIC was being rampantly copied.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The feedback we have gotten from the hundreds of people who say they are using BASIC has all been positive. Two surprising things are apparent, however, 1) Most of these “users” never bought BASIC (less than 10% of all Altair owners have bought BASIC), and 2) The amount of royalties we have received from sales to hobbyists makes the time spent on Altair BASIC worth less than $2 an hour.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Why is this? As the majority of hobbyists must be aware, most of you steal your software.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And, towards the end:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Most directly, the thing you do is theft.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;So the thing remounts away back before Microsoft became known for playing hardball business. Before the software industry, software was free, something bundled with hardware to make it useful. It came with sources and hardware maker was happy when you fixed or improved programs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's why old farts like &lt;a href=&quot;http://pt.wikipedia.org/wiki/Richard_Matthew_Stallman&quot; rel=&quot;nofollow&quot;&gt;RMS&lt;/a&gt; (and myself) despise this guy - BTW it's why we have the whole free software moviment.&lt;/p&gt;&#xA;" OwnerUserId="10068" LastEditorUserId="10068" LastEditorDisplayName="" LastEditDate="2010-12-29T17:19:59.423" LastActivityDate="2010-12-29T17:19:59.423" CommentCount="11" />
  <row Id="31666" PostTypeId="2" ParentId="31641" CreationDate="2010-12-29T14:54:42.053" Score="1" ViewCount="" Body="&lt;p&gt;I think &lt;strong&gt;Software Companies&lt;/strong&gt; are a good example. These companies make a living by selling quality software that is easy to use and solves a problem for its customers. Think Apple or Microsoft, but also smaller companies that focus on a niche product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your question, you hint at user experience as a factor in quality. I work for an &lt;strong&gt;e-commerce company&lt;/strong&gt; and we're constantly obsessing over the user experience. We need to make all user interactions simple and beautiful. The better our site looks and feels, the happier our customers are. We are constantly improving the experience of our search and checkout processes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other side of quality, is reliable software. I think both software companies and e-commerce companies fit into this category as well as &lt;strong&gt;finance&lt;/strong&gt;, &lt;strong&gt;healthcare&lt;/strong&gt; and other industries were reliability is absolutely imperative. I included software companies, because no one will buy software that crashes all the time. E-commerce is included because every crash could cost you a sale and the same goes for Finance. Healthcare is included, because people's lives are at stake.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, there are lots of companies where reliability and user experience are important factors. Just have to find one that interests you personally.&lt;/p&gt;&#xA;" OwnerUserId="8440" LastActivityDate="2010-12-29T14:54:42.053" CommentCount="2" />
  <row Id="31668" PostTypeId="2" ParentId="31603" CreationDate="2010-12-29T15:01:05.047" Score="6" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://s3.amazonaws.com/theoatmeal-img/comics/computers/3.png&quot;/&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;( &lt;a href=&quot;http://theoatmeal.com/comics/computers&quot; rel=&quot;nofollow&quot;&gt;http://theoatmeal.com/comics/computers&lt;/a&gt; )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What really got the ball rolling was the Netscape vs. Microsoft stuff, which included accusations that Microsoft deliberately broke Win98 in a way that caused Netscape to crash.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This accusation turned out to be false -- &lt;a href=&quot;http://www.mindcraft.com/qtfix/&quot; rel=&quot;nofollow&quot;&gt;it was the result of Apple QuickTime not following Netscape's plugin development guidelines&lt;/a&gt;. The judge rejected that evidence (most likely because she didn't understand it), and it quickly became popular for governments and organizations to sue Microsoft over silly crap, with the EU following suit insisting that Microsoft killed Real Media with Windows Media Player.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, then Netscape went open source and was forked under the name Mozilla and then Firefox, so the hate swelled within the open source community from there too. All of Mozilla's campaigning didn't help either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The worst part of all this scapegoating and witch hunting is that it's letting people be incredibly irresponsible, like when &lt;a href=&quot;http://news.cnet.com/8301-10784_3-9929861-7.html&quot; rel=&quot;nofollow&quot;&gt;people decided to blame half a million SQL injection attacks on SQL Server&lt;/a&gt;, rather than admitting that that particular class of bugs is entirely the fault of the database user.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm quite critical of Microsoft myself, but I'm even more critical of the people who think that they can get away with anything if they just blame Microsoft.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, Microsoft's particularly hated in the open source community because some people -- including Ballmer -- have instilled a false dichotomy between Microsoft and free/Free software.&lt;/p&gt;&#xA;" OwnerUserId="6385" LastActivityDate="2010-12-29T15:01:05.047" CommentCount="5" />
  <row Id="31669" PostTypeId="2" ParentId="31568" CreationDate="2010-12-29T15:01:45.163" Score="1" ViewCount="" Body="&lt;p&gt;As someone else suggested you can either fight or flee. You are already walking down the 'flee' path. Step up your efforts. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I were you, once I had my exit strategy in place, I'd go and talk with the CEO. Tell him why you are leaving. Let him know truthfully what you think and why you think it. Put it in writing if you want. Put it in your resignation letter. Ask for an exit interview. Say what you need to say so that you wan walk away from the job without feeling like you didn't do enough. &lt;/p&gt;&#xA;" OwnerUserId="2305" LastActivityDate="2010-12-29T15:01:45.163" CommentCount="4" />
  <row Id="31670" PostTypeId="2" ParentId="31641" CreationDate="2010-12-29T15:04:51.800" Score="2" ViewCount="" Body="&lt;p&gt;Industrial automation: this is a field, where you need to meet some very strict quality requirements. Bugs in software controlling expensive/heavy duty/dangerous machinery cost a lot. You're lucky if your program stops operation for a few hours. You're in trouble when the machine is damaged because of your failure. You're busted, if your error caused someone to get hurt or killed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course as always it's a question of relative costs. Sometimes striving to achieve one more 9 after decimal point is just not worth it.&lt;/p&gt;&#xA;" OwnerUserId="11785" LastActivityDate="2010-12-29T15:04:51.800" CommentCount="3" />
  <row Id="31672" PostTypeId="2" ParentId="31603" CreationDate="2010-12-29T15:16:41.653" Score="7" ViewCount="" Body="&lt;p&gt;As Paulo Scardine has pointed out, Gates started off hostile to the hobby computing community, and it isn't clear that he ever changed that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft has used aggressive and frequently illegal business tactics to get to its position, and sells primarily to businesses rather than individuals.  Microsoft is currently a monopoly in the OS and office software field, and it's difficult to get a computer without some money going to Microsoft.  This is exactly the sort of thing that got a lot of people hating IBM back when they were in a similar position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The 1998 Halloween documents showed Microsoft as actively hostile to the Free Software/Open Source community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft is generally believed (I haven't checked it out myself) to be the financial driver behind the SCO lawsuit that attempted to destroy Linux.  The lawsuit was ill-advised (SCO didn't even own the copyrights they claimed they were trying to enforce) and destroyed the company, but that didn't seem to stop anybody.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft was behind the OOXML standardization scandal, which destroyed a lot of confidence in the ISO and interfered with their ability to get things done.  (This involved Microsoft fast-tracking a bad standard by having MS partners step into the standardization process to push specifically for OOXML standardization, ignoring objections, and leaving standards bodies without a quorum when the MS partners left.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft has alleged, many times, that Linux violated MS patents, without ever saying which patents or in fact supplying evidence.  This was viewed by lots of people as an effort to cast FUD over Linux, making MS look like the safe legal choice through innuendo.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The SCO lawsuit, OOXML standardization, and patent rumbles are all in the past several years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, Microsoft's got a strong history of being the enemy, including fairly recent actions.  The Free Software/Open Source community has a collective memory, so it will take a long time and a lot of work for Microsoft to lose its bad reputation.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-29T15:16:41.653" CommentCount="6" />
  <row Id="31673" PostTypeId="2" ParentId="31532" CreationDate="2010-12-29T15:18:04.910" Score="1" ViewCount="" Body="&lt;p&gt;Looking at &lt;a href=&quot;http://www.gnu.org/gnu/manifesto.html&quot; rel=&quot;nofollow&quot;&gt;The GNU Manifesto&lt;/a&gt;, it's not clear that convincing corporations to release FOSS software was one of the goals. Here's a quote: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;So that I can continue to use computers without dishonor, I have decided to put together a sufficient body of free software so that I will be able to get along without any software that is not free.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If we just look at that goal, then the GNU project has largely succeeded. We have a GPL OS, an office suite, databases, and many other applications that can be freely modified and redistributed. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-29T15:18:04.910" CommentCount="2" />
  <row Id="31674" PostTypeId="2" ParentId="31568" CreationDate="2010-12-29T15:26:27.397" Score="3" ViewCount="" Body="&lt;h1&gt;GET OUT&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Do not pass Go. Do not wait for your stock options to vest. Get the hell out of there before your soul is sucked out through your nose, you start to have health problems, and you end up in front of the S.E.C. trying to explain why you, as a responsible professional, &quot;allowed&quot; this sort of irrational behavior.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hypothetically.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-29T15:26:27.397" />
  <row Id="31676" PostTypeId="1" CreationDate="2010-12-29T07:46:53.657" Score="3" ViewCount="100" Body="&lt;p&gt;Here are some specifics...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I actually want to work on user interface design, so I will probably minor in graphic design. What classes will I be taking, and what is the best school to go to in the montana-washington-oregon area?&lt;/p&gt;&#xA;" LastActivityDate="2010-12-29T15:28:07.113" ClosedDate="2010-12-29T15:28:18.123" Title="I'm only a junior in highschool, but I want to be a software engineer. What classes will I be taking?" Tags="&lt;software-engineering&gt;&lt;software&gt;&lt;coding&gt;&lt;advice&gt;" AnswerCount="2" />
  <row Id="31677" PostTypeId="2" ParentId="31676" CreationDate="2010-12-29T08:05:48.823" Score="1" ViewCount="" Body="&lt;p&gt;I can't recommend specific schools, so make sure the ones your consider offer classes in Human Computer Interaction or similar.  You might also want to consider some psychology classes.  Designing a good UI requires a lot more than good graphics: in most good software companies the &quot;UI designer&quot; role is split into several parts: the interaction designer (who designs HOW the UI will work), the graphic designer (who designs the icons and other graphical elements) and the UI engineer (who actually implements the UI in software).  Sometimes one person might perform two of these roles, but in general the skills required for each are pretty different.&lt;/p&gt;&#xA;" OwnerUserId="13202" LastActivityDate="2010-12-29T15:28:07.113" CommentCount="1" />
  <row Id="31678" PostTypeId="2" ParentId="31676" CreationDate="2010-12-29T12:55:44.693" Score="1" ViewCount="" Body="&lt;p&gt;Asking this question was a great first step; there will lots of excellent answers ... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend that directly contact several world's experts in user interface design, such as &lt;a href=&quot;http://www.useit.com/jakob/&quot; rel=&quot;nofollow&quot;&gt;Dr. Jakob Nielsen&lt;/a&gt;; there's no reason why you can start reading research papers, taking part in webinars, interacting with world experts immediately ... why wait for college?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also recommend that you visit campuses and the communities around the campus.  You want to go somewhere where the atmosphere is especially appealing to you; you want to experience more than just classrooms and user interface design.  You should go somewhere that excites you, somewhere where you'd expect to meet people that are like the person you want to become.  College is more than a degree and classework -- you should go you will meet the most interesting, fun people who will become your best friends for your entire life.&lt;/p&gt;&#xA;" OwnerUserId="9629" LastActivityDate="2010-12-29T15:28:07.113" />
  <row Id="31679" PostTypeId="2" ParentId="31568" CreationDate="2010-12-29T15:29:41.570" Score="7" ViewCount="" Body="&lt;p&gt;Leave.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the first place, you have no long-term future with the company, because it's got no long-term future.  The CEO is obviously a major problem, and if he's gotten away with this sort of thing so far he'll almost certainly continue to do so until the company fails.  Nor, if he hasn't listened to reason yet, is he likely to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the second place, you really don't want to work at a place like that.  It's destructive to your self-respect, your ability to make plans, and likely your work habits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be very cautious about saying anything on your way off.  You don't want to leave an enemy behind with the demonstrated ability to become a CEO.  Also, be careful what you say about the CEO in interviews.  Make statements of simple fact, and let the interviewers draw the value judgments.  You don't want to be labeled as somebody who just can't get along with management.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-29T15:29:41.570" />
  <row Id="31680" PostTypeId="2" ParentId="31603" CreationDate="2010-12-29T15:43:49.963" Score="1" ViewCount="" Body="&lt;p&gt;I can't speak specifically to open source, but I do know that at least for a while Microsoft made cross-platform programming more difficult than necessary.  I spent a good chunk of the '90s writing code that had to run on multiple platforms (various flavors of Unix, Linux, Windows, and occasionally MacOS), and it always seemed like Windows was the long pole in the tent.  Microsoft made it relatively easy to develop &lt;strong&gt;for Windows&lt;/strong&gt;, but if you wanted your code to build on any other platform you had to jump through a number of hoops.  By comparison, classic MacOS didn't throw anywhere &lt;em&gt;near&lt;/em&gt; the number of hurdles in your way that Windows did, although working with MPW would occasionally make you question your career choice.  &lt;/p&gt;&#xA;" OwnerUserId="11246" LastActivityDate="2010-12-29T15:43:49.963" CommentCount="2" />
  <row Id="31681" PostTypeId="2" ParentId="31568" CreationDate="2010-12-29T16:07:23.180" Score="5" ViewCount="" Body="&lt;p&gt;This question is the equivalent of &quot;My husband threatens me with violence every time I speak, blows all our money on crack, on-line poker, and paid sexual favors from neighborhood eighth-graders, and keeps getting into car accidents because he likes to go deer hunting with my Subaru.  I'm considering maybe possibly thinking about investigating a divorce, but in the meantime, what can I do to fix our relationship?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nobody wants to think of themselves as a quitter; nobody wants to feel like they bailed on a situation without making an effort to fix it.  But you are on the opposite end of that bell curve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes, the only way to win is to concede that the situation has become a steaming pile of weapons-grade &lt;b&gt;FAIL&lt;/b&gt; and walk away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have my condolences that your job has long since reached that stage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now start walking.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-12-29T16:07:23.180" />
  <row Id="31682" PostTypeId="2" ParentId="31558" CreationDate="2010-12-29T16:10:56.607" Score="0" ViewCount="" Body="&lt;p&gt;I think that in small companies there are arguments for having certain things centralized. (Think for example about offsite backup. When you only have 2 persons working on a project and they are housing in the same building and there is a fire, decentralized to all of two computers might not be enough.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However: having a partly centralized solution doesn't limit you to a centralized system. You can just push to an outside server with something like git or mercurial.&lt;/p&gt;&#xA;" OwnerUserId="9237" LastActivityDate="2010-12-29T16:10:56.607" />
  <row Id="31683" PostTypeId="1" CreationDate="2010-12-29T16:18:09.410" Score="6" ViewCount="175" Body="&lt;p&gt;What is a good approach to an anti-spam algorithm for a website similar to reddit? Their anti-spam algorithm seems awfully broken (banning on words in the title and doing a horrible job for that matter). Considering a post spam because it has the word 'spam' in the title is really not a wise choice. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, how can one approach such problem ? Are there any tools that help in such cases?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, what are the /technical/ reasons behind reddit's choice not using reCAPTCHA on every post submission? It seems like a &lt;em&gt;much&lt;/em&gt; better solution than what they have right now. Since reddit is basically a community-driven website why not give such power to the communities' trusted members? &lt;/p&gt;&#xA;" OwnerUserId="11960" LastActivityDate="2010-12-29T17:02:22.657" Title="A look at an example of anti-spam algorithm" Tags="&lt;algorithms&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="3" />
  <row Id="31684" PostTypeId="2" ParentId="31568" CreationDate="2010-12-29T16:20:07.990" Score="0" ViewCount="" Body="&lt;p&gt;Start preparing for your next interview. Try to be objective about your situation and identify the tell-tale signs of a bad boss. Otherwise, you're just going to end up in the same spot. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Meet the new boss. Same as the old&#xA;  boss.&quot; - Pete Townshend&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-29T16:20:07.990" />
  <row Id="31685" PostTypeId="2" ParentId="31683" CreationDate="2010-12-29T16:21:35.820" Score="4" ViewCount="" Body="&lt;p&gt;Email systems use Bayesian filters to filter spam, and they perform their job very well in both my Yahoo and my Gmail accounts.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-29T16:21:35.820" CommentCount="5" />
  <row Id="31686" PostTypeId="2" ParentId="31621" CreationDate="2010-12-29T16:25:56.337" Score="2" ViewCount="" Body="&lt;p&gt;I suppose the orthodox answer would be to figure out what domain model the tool embodies, then write some objects which express that model in your language and know how to construct command lines. I don't know ffmpeg well, but i believe the model is sound flowing from a source file to an output file, each in a particular format, through a series of filters. So maybe you have a FfmpegJob class which has two SoundFile objects, one for input and one for output, and a list (which could be empty) of SoundFilter objects. Each subordinate object has a method to turn itself into a sequence of arguments for ffmpeg (eg a HighpassFilter would turn into {&quot;--highpass&quot;, &quot;200&quot;} or whatever). The job class can then easily construct a a command line from its subordinates. You do need to write a class per option, but you can lift the common code to a superclass; each subclass should be pretty simple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This involves more boilerplate than a reverse-optparse approach, but buys you type safety. Also, it gives you a place from where you can start to hang more functionality: you can put validation or calculation in the filter objects, or compose several options into a single more sophisticated filter.&lt;/p&gt;&#xA;" OwnerUserId="854" LastActivityDate="2010-12-29T16:25:56.337" CommentCount="3" />
  <row Id="31687" PostTypeId="2" ParentId="31587" CreationDate="2010-12-29T16:27:26.313" Score="0" ViewCount="" Body="&lt;p&gt;There isn't a &quot;right&quot; answer.  There are two types of people.  Those that can work in noise, and still focus, and those that can't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I always need noise when I'm working.  Today there is hardly anybody here, and the silence is distracting me.  The guy who sits beside me loves it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are times I need to tune out and get in a zone, in which I put in my earbuds and code.  Other times, I'm talking with coworkers to solve a problem at someones desk.  It works for some, being in an open plan office.  But others like their solitude.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no perfect solution.  In any event, keep teams close to one another so their conversations don't affect other teams as much.  Whether in offices or an open plan.  We move seats frequently where I work.  On average, it seems you keep a seat for a year...then you'll be moving.  Either because you're on a new team, and need to sit with them.  Or the team next to you grew, and need your seat and people get shuffled to keep groups together.  On top of that, if teams have overlap, they should be seated beside one another, with the &quot;overlappers&quot; in the middle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest flaw I think we have, is that some of our PMs actually have their own office.  They fall out of touch with what is going on, because they aren't in the middle of it all day.  They only are kept in the loop by email or if we explicitly mention something.  But some problems are found and solved without email and/or meetings simply because they people needed to solve it already sit beside each other.  They can just get the work done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While it does reduce my productivity being interrupted, if not getting an answer prevents you from continuing your work, as a team, productivity gains by you interrupting me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We work as a team, individual productivity comes second to team productivity.  And the only way a team can be highly productive, is if they are highly communicative.  Which means, walls, offices, etc are a hindrance.  IMHO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Addendum:&#xA;In an office I would struggle with a problem, because calling someone to the office is a bother and a HUGE distraction when they must leave their desk.  In the open, I can ask the three people sitting near me, and 9 times out of 10, one of them will have the solution.  That's many hours saved over the course of a week.  And huge gains in productivity.&lt;/p&gt;&#xA;" OwnerUserId="2431" LastActivityDate="2010-12-29T16:27:26.313" />
  <row Id="31689" PostTypeId="2" ParentId="31603" CreationDate="2010-12-29T16:34:45.597" Score="1" ViewCount="" Body="&lt;p&gt;Everyone needs an enemy in order to motivate the troops.  We have always been at war with Eurasia.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Certainly, Microsoft hasn't been a saint.  However, only half of what is ascribed to them is really valid criticism, most of it is simply hyperbole, conspiracy, and sensationalism.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen mention of OOXML in this thread, and frankly that is the worst possible example because the anti-OOXML campaign was orchestrated by Sun and IBM for their own commercial interests.  People like Rob Weir played the Open Source Advocates like a banjo, wrapping their commercial interests in the flag of &quot;openness&quot;.  Almost everything they accused OOXML of was equally applicable (or more so) to the community trumpted ODF spec, and the ODF spec was seriously deficient in many areas.  All the complaints about &quot;ballot stuffing&quot; could be equal leveled at IBM (who actually wrote several of the responses by supposedly government groups).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether or not you think OOXML was a good spec is irrelevant.  Far worse specs go through standards bodies all the time, without nary a peep.. but because this was microsoft, it was somehow the end of the world as we know it.  I mean, seriously.. who cares if OOXML is made an ISO standard?  Really?  There is no law that because it's a standard, you have to support it.  There are tons of standards that nobody supports, even in the open source community.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The whole mess was stupid, and the blame does not rest on MS's shoulders for submitting a sub-par standard, it lies on the Open Source advocates shoulders for making a gigantic mess over something that really had no bearing on those that wouldn't implement it anyways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As evidence, now that OOXML has passed... who cares?  Almost nobody.  You seldom hear anyone say anything about it, not even Rob Weir.  It's simply a non-issue.&lt;/p&gt;&#xA;" OwnerUserId="4368" LastActivityDate="2010-12-29T16:34:45.597" CommentCount="3" />
  <row Id="31690" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T16:38:42.780" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Psychology.&lt;/strong&gt;&lt;br&gt;&#xA;Software developers need an understanding of what motivates people and why they act the way they do.&lt;/p&gt;&#xA;" OwnerUserId="4115" LastActivityDate="2010-12-29T16:38:42.780" CommunityOwnedDate="2011-01-02T21:02:17.443" CommentCount="4" />
  <row Id="31691" PostTypeId="2" ParentId="31683" CreationDate="2010-12-29T16:40:12.263" Score="0" ViewCount="" Body="&lt;p&gt;An algorithm of anti-spam is only as good as its intelligence to distinguish between &quot;probably spam&quot; and &quot;probably not spam.&quot;  The best ones base themselves on statistics.  What words and phrases were used in a large percentage of spam posts and very few non-spam posts.  Everytime a post is labeled as spam, this algorithm ought to learn from it and incorporate it into its statistics of what is and isn't spam.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anything else is simply taking stabs at words that may or may not be representative of spam.  The more obvious words are evident, but it's easy enough to fool such algorithms, requiring that a list of words and expressions be constantly expanded on.  I think a good place to start would be e-mail filters.&lt;/p&gt;&#xA;" OwnerUserId="6967" LastActivityDate="2010-12-29T16:40:12.263" />
  <row Id="31692" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T16:42:32.370" Score="2" ViewCount="" Body="&lt;p&gt;It dances on the line between technical and non-technical, but if your school offers something along the lines of Human-Computer Interaction (HCI) or anything else related to user interface design, jump on it.  That's some valuable stuff right there.&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2010-12-29T16:42:32.370" CommunityOwnedDate="2011-01-02T21:02:17.443" CommentCount="1" />
  <row Id="31693" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T16:52:31.347" Score="0" ViewCount="" Body="&lt;h2&gt;Estimation&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;We hate it because so few of us understand it. Understand it and it's not nearly so painful.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-12-29T16:52:31.347" CommunityOwnedDate="2011-01-02T21:02:17.443" />
  <row Id="31694" PostTypeId="2" ParentId="31683" CreationDate="2010-12-29T17:02:22.657" Score="1" ViewCount="" Body="&lt;p&gt;Ultimately there are no 100% solutions:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;best&quot; approach is one that incorporates multiple methods such as:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Response Time:&lt;/strong&gt; Check posting interval, most bots will immediately post upon hitting a web page, simply ignore these&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Honey Pot:&lt;/strong&gt; Place fake Input fields above the actual posting fields, and make them invisible. Some bots will simply post on the first set of input fields it finds. Simply ignore these&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Service:&lt;/strong&gt; Use online services such as &lt;a href=&quot;http://akismet.com/&quot; rel=&quot;nofollow&quot;&gt;Akismet&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;IP Logging:&lt;/strong&gt; Log IPs, and known Agent browsers.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;When combined together, it should drastically stop a lot of spam, however this never 100%&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fighting spam will never end.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-29T17:02:22.657" />
  <row Id="31695" PostTypeId="2" ParentId="31578" CreationDate="2010-12-29T17:03:00.403" Score="1" ViewCount="" Body="&lt;p&gt;Proper use of pointers and references:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Pointers are variables that hold &lt;em&gt;an address&lt;/em&gt; to a block of memory that is equal in size to the type of the pointer.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int * test = new int(5);    // on 32-bit OSs, test would be 4 bytes&#xA;*test      = 6;             // access the value (dereferencing)&#xA;delete test;                // free the memory&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;References are pointers that cannot be modified - instead, any operations performed on them affect the memory pointed to.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int target = 1;             // target now holds a value of 1&#xA;int&amp;amp; ref   = target;        // ref points to target&#xA;ref        = 2;             // modifications to ref modify target&#xA;                            // notice that we do not dereference ref&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="231" LastActivityDate="2010-12-29T17:03:00.403" CommentCount="2" />
  <row Id="31699" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T17:31:20.830" Score="2" ViewCount="" Body="&lt;p&gt;I'm surprised that no-one mentioned improving English skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am constantly surprised at the number of CV/resumes I get that are almost unreadable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you start off as a pure technician it is unlikely that you will end your career using the same skill set. There will come a time when you need to write a report (or lots of reports) that require a lot of words to be put down on paper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem you may encounter is to actually find a good enough course to take.&lt;/p&gt;&#xA;" OwnerUserId="1205" LastActivityDate="2010-12-29T17:31:20.830" CommunityOwnedDate="2011-01-02T21:02:17.443" />
  <row Id="31700" PostTypeId="2" ParentId="31558" CreationDate="2010-12-29T17:34:18.800" Score="1" ViewCount="" Body="&lt;p&gt;SVN is widely supported in tools. Tooling is the key; different people will have different skill sets. Some will prefer command line, some will prefer IDE based tools, some will prefer graphical tools. At the moment SVN seems to be the most widely supported tool. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that Mercurial or Git. &lt;/p&gt;&#xA;" OwnerUserId="1205" LastActivityDate="2010-12-29T17:34:18.800" />
  <row Id="31701" PostTypeId="2" ParentId="26656" CreationDate="2010-12-29T17:41:00.973" Score="1" ViewCount="" Body="&lt;p&gt;For me the answer is tool support. There is tooling for Groovy but its not as good as Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Poor tooling is why I haven't done much Scala, Clojure etc as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if you need to write a program to extract some stuff from XML, filter it and write it to a database... Groovy is very very good at these tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some big websites that are Grails (and hence Groovy based). E.g. sky.com (UKs biggest satellite TV provider)&lt;/p&gt;&#xA;" OwnerUserId="1205" LastActivityDate="2010-12-29T17:41:00.973" />
  <row Id="31702" PostTypeId="2" ParentId="17305" CreationDate="2010-12-29T17:42:53.347" Score="1" ViewCount="" Body="&lt;p&gt;Inside the function? &lt;strong&gt;Rarely&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I have a clear different block it is refactoring to a new function. If few cases don't worth it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me blanks lines inside the function is one of most wrong &quot;best practices&quot;.&lt;/p&gt;&#xA;" OwnerUserId="389" LastActivityDate="2010-12-29T17:42:53.347" CommunityOwnedDate="2011-02-05T06:38:51.843" />
  <row Id="31703" PostTypeId="2" ParentId="14287" CreationDate="2010-12-29T17:44:03.893" Score="0" ViewCount="" Body="&lt;p&gt;If you want a skill that will last at least the next 10-20 years - concentrate on Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Big corporations have moved to Java in a big way and there will be a lot of development in Java for many years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Failing that; C#. A lot of client side code is .NET driven and server side code is Java.&lt;/p&gt;&#xA;" OwnerUserId="1205" LastActivityDate="2010-12-29T17:44:03.893" CommentCount="1" />
  <row Id="31704" PostTypeId="2" ParentId="5354" CreationDate="2010-12-29T17:52:05.203" Score="1" ViewCount="" Body="&lt;p&gt;There are too many NoSQL solutions for all of them to succeed. All the ones I have looked at are flawed in some way. The main issue is infrastructure, the next issue is reporting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now I can hire a professional with SQL tuning expertise. There just aren't the numbers of those people with NoSQL expertise. Reporting is a mess and normally requires lots of hand written code. People will start to build JDBC drivers etc for NoSQL and suddenly they will look like ... databases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What NoSQL &lt;strong&gt;will&lt;/strong&gt; do though is to force the SQL vendors to improve their products. Expect to see NoSQL style APIs work their way into major vendors products in a years time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oracle/Sybase/MS should embrace the NoSQL movement. It will allow them to lock people into their products with custom apis!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The lack of a defined schema is attractive when you are starting up, its a mill stone when you are consolidating code. Most developers have no idea how to build an evolvable data model and the lack of a schema will cause major issues.&lt;/p&gt;&#xA;" OwnerUserId="1205" LastActivityDate="2010-12-29T17:52:05.203" />
  <row Id="31705" PostTypeId="2" ParentId="31548" CreationDate="2010-12-29T18:01:17.577" Score="0" ViewCount="" Body="&lt;p&gt;I'm a Java guy. I would choose Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you code in? Which language makes you most productive?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java is great because:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;There are lots of developers with great Java skills&lt;/li&gt;&#xA;&lt;li&gt;Java tooling is mostly free &lt;strong&gt;and&lt;/strong&gt; fantastic quality&lt;/li&gt;&#xA;&lt;li&gt;Its cross platform. Linux is cheap for servers (and you will need lots of servers). Java runs very well on Linux but you can develop on Windows, Linux, OSX etc&lt;/li&gt;&#xA;&lt;li&gt;You can integrate it with pretty much anything, REST, databases, NOSQL etc&lt;/li&gt;&#xA;&lt;li&gt;The JVM is one of the modern wonders of the world. Hotspot is amazing at tuning code and copes with alternate languages, Groovy, Scala, Clojure etc&lt;/li&gt;&#xA;&lt;li&gt;Spring has great libraries to help you manage Security and Social network aspects&lt;/li&gt;&#xA;&lt;li&gt;Did I mention the tooling ;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1205" LastActivityDate="2010-12-29T18:01:17.577" CommentCount="1" />
  <row Id="31706" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T18:01:17.923" Score="0" ViewCount="" Body="&lt;h2&gt;Debate.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;It helps you learn how to research and develop an argument which will help you tremendously in getting your ideas adopted by the organization you work for.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-29T18:01:17.923" CommunityOwnedDate="2011-01-02T21:02:17.443" />
  <row Id="31707" PostTypeId="2" ParentId="31550" CreationDate="2010-12-29T18:05:51.460" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596801998&quot; rel=&quot;nofollow&quot;&gt;Confessions of a Public Speaker&lt;/a&gt; is very good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main thing is practice. Someone gave me some good advice once, People listening to a speech don't want the speaker to fail, they don't want to sit there in embarrassed silence. They want you to succeed!&lt;/p&gt;&#xA;" OwnerUserId="1205" LastActivityDate="2010-12-29T18:05:51.460" />
  <row Id="31708" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T18:12:27.087" Score="0" ViewCount="" Body="&lt;p&gt;It depends on what you want to do with your life, I think. But here are some good general ones:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Group communications. As a software developer, you'll probably be working in groups for most of your career. Learning about how groups interact and how communication within groups occurs would be beneficial.&lt;/li&gt;&#xA;&lt;li&gt;Economics. I would recommend an engineering economy course that covers topics such as present worth and future worth analysis, rates of return, life cycle costs, project decisions, and so on. However, some kind of economy course should be taken, even if it's only microeconomics or macroeconomics.&lt;/li&gt;&#xA;&lt;li&gt;Organizational behavior. I took an OB course and it's very much an applied psychology and sociology course, taking psychological and sociological concepts and applying them to how organizations work.&lt;/li&gt;&#xA;&lt;li&gt;Technical writing or technical manual writing. Although any kind of writing course would be a good idea, technical writing would not only improve your writing skills, but also help you with the creation of technical documentation, something you might be doing at work.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-12-29T18:12:27.087" CommunityOwnedDate="2011-01-02T21:02:17.443" />
  <row Id="31709" PostTypeId="2" ParentId="31568" CreationDate="2010-12-29T18:15:49.750" Score="1" ViewCount="" Body="&lt;p&gt;Your company does not have a CTO (or similar like VP Engineering or Chief Architect)?  If so, then your CTO is not doing his/her job by managing the CEO.  If not, what you have is a CEO who is actually your CTO.  Basically, he's doing what he's doing because there is no strong CTO in the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of quitting flat out, why not step up?  Confront him, tell him that technology is not the job of the CEO and that you want him out of the technology.  Tell him the company needs a strong CTO and that he is a technology idiot. Tell him you want to be the CTO and make all the technical decisions. You can either whine about it or step up and do something about it.  So, quit whining and step up.&lt;/p&gt;&#xA;" OwnerUserId="9251" LastActivityDate="2010-12-29T18:15:49.750" CommentCount="1" />
  <row Id="31710" PostTypeId="1" AcceptedAnswerId="31727" CreationDate="2010-12-29T18:21:28.467" Score="8" ViewCount="278" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;we are using a classical V-shaped development process. We then have requirements, architecture, design, implementation, integration tests, system tests and acceptance.&lt;br&gt;&#xA;Testers are preparing test cases during the first phases of the project. The issue is that, due to resources issues (*), test phases are too long and are often shortened due to time constraints (you know project managers... ;)).  Developers are doing their unit-tests as they should.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is simple: should developers be involved in the tests phases and isn't it too 'dangerous'.  I'm afraid it will give the project managers a false feeling of better quality as the work has been done but would the added man.days be of any value?  I'm not really confident of developers doing tests (no offense here but we all know it's quite hard to break in a few clicks what you have made in severals days).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for sharing your thoughts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(*) For obscure reasons, increasing the number of testers is not an option as of today.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Just upfront, it's not a duplicate of &lt;a href=&quot;http://programmers.stackexchange.com/questions/4399/should-programmers-help-testers-in-designing-tests&quot;&gt;Should programmers help testers in designing tests?&lt;/a&gt; which talks about test preparation and not test execution, where we avoid the implication of developers)&lt;/p&gt;&#xA;" OwnerUserId="11713" LastEditorUserId="11713" LastEditorDisplayName="" LastEditDate="2010-12-29T19:02:55.450" LastActivityDate="2010-12-30T18:39:50.413" Title="Should developers be involved in testing phases?" Tags="&lt;development-process&gt;&lt;testing&gt;&lt;software-development&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="2" />
  <row Id="31711" PostTypeId="2" ParentId="31710" CreationDate="2010-12-29T18:30:18.707" Score="7" ViewCount="" Body="&lt;p&gt;The fundamental difference in testing philosophies between developers and Qs is this: the programmer typically tests his program to prove that his code works (&quot;positive&quot; testing). QA can and does do this, but also has an additional focus on finding out &lt;em&gt;what doesn't work&lt;/em&gt;  by trying to break the software (using &quot;negative&quot; testing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To the extent that the QA staff could potentially be corrupted by the programmers testing that &quot;proves&quot; that the software works, there should be &lt;em&gt;isolation&lt;/em&gt; between the developer testing and the QA testing.  The developer can certainly help the QA testing along by demonstrating what works, but it is up to QA to &lt;em&gt;independently&lt;/em&gt; verify that the software doesn't &lt;em&gt;break.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best thing that the programmer can do to assist the testing effort is to provide a comprehensive, high-quality, verifiable unit testing suite, containing tests that align with individual requirements in the requirements document.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-29T18:37:16.860" LastActivityDate="2010-12-29T18:37:16.860" />
  <row Id="31712" PostTypeId="1" CreationDate="2010-12-29T18:34:15.147" Score="0" ViewCount="138" Body="&lt;p&gt;As a programmer who also trains in martial arts (Wing Tsun + Escrima + Judo).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am really interested to know if there are other fellow programmers who also practice martial arts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you practice martial arts? or do you know of programmers who practice martial arts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Further question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you see any analogy between your art and programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;[Apologies for the terrible pun in the title  :) but I do like it cheesy...]&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-29T18:34:15.147" ClosedDate="2010-12-29T18:47:48.990" Title="Do you Kung Foo?" Tags="&lt;lifestyle&gt;&lt;martial&gt;&lt;arts&gt;" CommentCount="8" FavoriteCount="1" />
  <row Id="31713" PostTypeId="2" ParentId="31710" CreationDate="2010-12-29T18:42:36.747" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;UNIT TESTING is a must for all developers&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For information on how this could be used to your benefit, read through the following links if you are into C++ development: &lt;a href=&quot;http://goo.gl/RMck&quot; rel=&quot;nofollow&quot;&gt;http://goo.gl/RMck&lt;/a&gt;, &lt;a href=&quot;http://goo.gl/oDtC6&quot; rel=&quot;nofollow&quot;&gt;http://goo.gl/oDtC6&lt;/a&gt;, &lt;a href=&quot;http://goo.gl/3Fdpe&quot; rel=&quot;nofollow&quot;&gt;http://goo.gl/3Fdpe&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;THERE IS NO WAY A QA PERSON CAN DO THESE TESTS. NO WAY.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-29T18:42:36.747" CommentCount="1" />
  <row Id="31714" PostTypeId="2" ParentId="31710" CreationDate="2010-12-29T18:45:55.123" Score="9" ViewCount="" Body="&lt;p&gt;For anything but Unit testing, absolutely not.  Developers just know too much about the app and how it's &quot;supposed&quot; to work to be objective testers.&lt;/p&gt;&#xA;" OwnerUserId="7038" LastActivityDate="2010-12-29T18:45:55.123" CommentCount="3" />
  <row Id="31715" PostTypeId="2" ParentId="31710" CreationDate="2010-12-29T18:58:47.693" Score="2" ViewCount="" Body="&lt;p&gt;Well in terms of testing, there are 3 types.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Black box, grey box, and white box.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Black box refers to users testing the product, with no knowledge of how the product works internally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Grey box refers to power users who have knowledge on computer programming, but is not on the development team. These people will test whether the product have memory leaks, system requirements issue and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's the main part: White box refers to developers testing on the product at code level. This means to say that they do unit testing, debugging,... etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore it is good that users and development team are all involved in the testing phase, but each of the testing requires an appropriate commitment level from users and development team, depending on what is tested.&lt;/p&gt;&#xA;" OwnerUserId="117" LastActivityDate="2010-12-29T18:58:47.693" />
  <row Id="31716" PostTypeId="2" ParentId="29912" CreationDate="2010-12-29T18:59:17.927" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Any other pitfalls I'm not considering?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In practice, the main mistake I see people make is trying to force the use of F# for problems where it is the wrong tool for the job.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Or anyone care to rebut the pitfalls I've mentioned?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;They are all obviously valid concerns to some degree but I'd question to what degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, you say that everyone would have to learn F# in order to work on F# code. Although true, this is not a big deal in practice. Learning F# is no more significant than learning WPF, Silverlight or the TPL. I'm teaching about 30 developers how to use F# for a client in London right now and about a dozen were working full time on F# code after only a few weeks and they just shipped their first product (on-time and in-budget!) written almost entirely in F# after only a few months. In point of fact, they had more technical difficulties with Silverlight than F# and they found the tech support for Silverlight to be much worse than for F#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You refer to the relatively small pool of available F# programmers but, again, given how easy it is to pick up F# I don't think this is a significant concern. I doubt you'll need to hire many, if any. My client has two F# guys for over 100 programmers and our job is to seed and supervise the use of F#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your third and final concern regards less community support, Googling for C# solutions vs F# and third party tool support. Again, I haven't found these to be problematic in practice. I e-mailed fsbugs with a comment about units of measure in F# and got a response within 24 hours from the researcher who invented it with a detailed explanation of why my interpretation was wrong and why it works the way it does. I never got that from Anders Hejlsberg ;-). I Google for solutions all the time and find them written in C#, VB or even IronPython but, in 3 years of using F# industry, can recall only a single instance where translating the solution into F# was not trivial. In point of fact, I recently converted the data serializer C# sample from MSDN to F# and it was 5&amp;#215; shorter. Finally, you mentioned F# support in tools like NUnit when we've been using NUnit from F# without issue for some time. These are .NET tools, not C# tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Case study&lt;/strong&gt;: My current client is not only using NUnit for unit testing but they built &lt;a href=&quot;http://tickspec.com&quot; rel=&quot;nofollow&quot;&gt;TickSpec&lt;/a&gt; in F# on top of NUnit as a technically superior alternative to SpecFlow for BDD. The author made a point of showing me that TickSpec is a tiny fraction the size of SpecFlow and provides more features. Moreover, several of the developers at work with no prior F# experience (and, I believe, no prior functional programming experience) have picked it up and started using it in unrelated projects without issue precisely because F#+TickSpec make it easier to solve their problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;FWIW, I gave my client a free site subscription to our &lt;a href=&quot;http://ffconsultancy.com/products/fsharp_journal/?se&quot; rel=&quot;nofollow&quot;&gt;F#.NET Journal&lt;/a&gt; which went down well with many of the devs learning F#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;HTH!&lt;/p&gt;&#xA;" OwnerUserId="11782" LastActivityDate="2010-12-29T18:59:17.927" CommunityOwnedDate="2010-12-29T18:59:17.927" CommentCount="5" />
  <row Id="31717" PostTypeId="2" ParentId="5354" CreationDate="2010-12-29T19:01:12.567" Score="0" ViewCount="" Body="&lt;p&gt;NoSQL-databases definitely have a place in the software world. But it will take a long time, if ever, for them to replace traditional RDBMS:es. In the mean time, use them for what they're good for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most interesting type of NoSQL (which can mean &quot;Not Only SQL&quot; by the way, a much better name in my option) is the &lt;a href=&quot;http://en.wikipedia.org/wiki/Graph_database&quot; rel=&quot;nofollow&quot;&gt;graph database&lt;/a&gt; where data is represented as nodes and relations (edges). It lets you model Facebook-type who-knows-who-relationships in a very efficient way.&lt;/p&gt;&#xA;" OwnerUserId="3629" LastActivityDate="2010-12-29T19:01:12.567" />
  <row Id="31718" PostTypeId="2" ParentId="6042" CreationDate="2010-12-29T19:14:09.017" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Can anyone offer up some advice on how I should approach this?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Sure:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Pick your examples carefully so your F# code not only solves a problem elegantly but also &lt;em&gt;much more elegantly than is possible with C#/VB&lt;/em&gt;. Pattern matching and type inference are your friends here.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Use one example to highlight the benefits of new feature found in F#, e.g. asynchronous workflows, active patterns.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't be afraid to give impure examples using mutable data structures when appropriate. F# is impure for a reason.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't present F# as a panacea. Describe applications for which F# is not well suited as well as those for which it is much better suited than other .NET languages.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Point at toy samples they can study as well as successful real-world projects that used F# (Bing AdCenter, Halo 3 etc.).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Explain everything in terms of how F# can help them to solve problems more easily. Avoid religious debates. Stay positive about F#, not negative about other languages. Arm them with facts and evidence but let them draw their own conclusions.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11782" LastActivityDate="2010-12-29T19:14:09.017" />
  <row Id="31719" PostTypeId="1" CreationDate="2010-12-29T19:15:13.490" Score="8" ViewCount="254" Body="&lt;p&gt;I'm not talking just how memory is assigned and memory management (things that you can learn from C for example) but rather the hardware aspect and how each component of the computer hardware works internally and how they communicate with each other. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How many of you know all of this? &lt;/p&gt;&#xA;" OwnerUserId="11970" LastActivityDate="2010-12-30T19:24:08.037" Title="Should a developer know the inner workings of the computers' hardware?" Tags="&lt;composition&gt;" AnswerCount="10" FavoriteCount="1" />
  <row Id="31720" PostTypeId="2" ParentId="31719" CreationDate="2010-12-29T19:16:56.390" Score="0" ViewCount="" Body="&lt;p&gt;That depends entirely on what they are coding!&lt;/p&gt;&#xA;" OwnerUserId="11375" LastActivityDate="2010-12-29T19:16:56.390" CommentCount="1" />
  <row Id="31721" PostTypeId="2" ParentId="31719" CreationDate="2010-12-29T19:19:39.227" Score="21" ViewCount="" Body="&lt;p&gt;It depends on what you do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're an embedded developer (and you're writing very near the metal in a very small device), you need to know every in and out of every component in the system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're a systems developer (and are writing operating systems or device drivers or maybe even databases), then you'll need to know just about everything there is to know about low-level hardware interfaces.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're a games developer and late in your project (where you're optimizing things), you need to know the ins and outs of the CPU cache and graphics architectures you'll be using.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're an applications developer, you don't need to know any of this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're a web developer, it's handy to know internet protocols, but none of this other stuff is of any use to you.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-12-29T19:19:39.227" CommentCount="3" />
  <row Id="31722" PostTypeId="2" ParentId="31710" CreationDate="2010-12-29T19:25:31.503" Score="1" ViewCount="" Body="&lt;p&gt;Assuming that the project has a significant number of developers, then by all means have the developers working on testing. One caveat would be that developers don't work on testing (this doesn't include unit testing) for their own code.&lt;/p&gt;&#xA;" OwnerUserId="5435" LastActivityDate="2010-12-29T19:25:31.503" CommentCount="1" />
  <row Id="31723" PostTypeId="2" ParentId="17100" CreationDate="2010-12-29T19:26:04.217" Score="4" ViewCount="" Body="&lt;p&gt;I keep asking myself what problem is SRP trying to solve?  When does SRP help me? Here’s what I came up with: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;You should refactor responsibility / functionality out of a class when:&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) You’ve duplicated functionality (DRY)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) You find that your code needs another level of abstraction in order to help you understand it (KISS)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) You find that pieces of functionality are understood by your domain experts as being apart of a different component (Ubiquitous Language) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;You SHOULDN’T refactor responsibility out of a class when:&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;1)       There isn’t any duplicated functionality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2)       The functionality doesn’t make sense outside of the context of your class.  Put another way, your class provides a context in which it is easier to understand the functionality.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;3)       Your domain experts don’t have a concept of that responsibility.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It occurs to me that if SRP is applied to broadly, we trade one kind of complexity (trying to make heads or tails of a class with way too much going on inside) with another kind (trying to keep all of the collaborators / levels of abstraction straight in order to figure out what these classes actually do).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When in doubt, leave it out! You can always refactor later, when there is a clear case for it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think?&lt;/p&gt;&#xA;" OwnerUserId="11593" LastActivityDate="2010-12-29T19:26:04.217" />
  <row Id="31724" PostTypeId="2" ParentId="31567" CreationDate="2010-12-29T19:26:12.043" Score="0" ViewCount="" Body="&lt;p&gt;Any decent quality &lt;strong&gt;Work-Life Balance&lt;/strong&gt; courses, workshops, or even books can be helpful to stress the importance, and remind us (all of us) how important it is in the long run to maintain a balanced life so we &lt;strong&gt;don't&lt;/strong&gt; end up burnt-out, divorced, and suffering from &lt;a href=&quot;http://en.wikipedia.org/wiki/Major_depressive_disorder&quot; rel=&quot;nofollow&quot;&gt;major depressive disorder&lt;/a&gt; alone and laid off. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In poor economic times it may be even more important, because of the tremendous pressure to &lt;em&gt;cheat&lt;/em&gt; ourselves of this balance for what is &lt;em&gt;typically&lt;/em&gt; a false hope of security (if the situation are really that precarious, it will mostly eventually fail anyhow). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Avoid any training or seminars that are too gimmicky, or quick-fix oriented, but simple common-sense oriented balance is the best bet in my opinion.&lt;/p&gt;&#xA;" OwnerUserId="11206" LastActivityDate="2010-12-29T19:26:12.043" CommunityOwnedDate="2011-01-02T21:02:17.443" />
  <row Id="31725" PostTypeId="2" ParentId="31719" CreationDate="2010-12-29T19:28:47.720" Score="8" ViewCount="" Body="&lt;p&gt;No, you don't &lt;em&gt;have&lt;/em&gt; to, but I think it is an excellent idea. Learning a general overview of how things work at the logical level has really helped me in development.&lt;/p&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-29T19:28:47.720" />
  <row Id="31726" PostTypeId="2" ParentId="31710" CreationDate="2010-12-29T19:33:56.977" Score="0" ViewCount="" Body="&lt;p&gt;I would rather see administrative staff (or actual potential users) do the QA testing than developers. Someone who doesn't know how the product was designed to work, needs to try to use it. Developers tend to be very limited in how they approach testing and frankly they are too expensive per hour to use for QA testing as well. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-29T19:33:56.977" />
  <row Id="31727" PostTypeId="2" ParentId="31710" CreationDate="2010-12-29T19:36:30.680" Score="6" ViewCount="" Body="&lt;p&gt;Looking at your question very literally (&quot;involved in&quot;) My only answer is an absolute unequivocal &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;YES&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Devs should never have the final say on their &lt;em&gt;own&lt;/em&gt; code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, Devs should be involved in testing the work of other devs. It does two things: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It brings a developer's insight to testing. This is both from the general case of just knowing what APIs are probably being used at a given point, what the exceptions that may come from those APIs, and how they should be handled. It also helps on a specific project because the devs get a lot more exposure to the various discussions about why something is being done than QA typically does, meaning they may spot edge cases that QA wouldn't. Bugs spotted by a dev are also likely to be cheaper to fix because a dev will usually provide more information and much more insight on how to fix it right away.&lt;/li&gt;&#xA;&lt;li&gt;It gives the dev exposure to parts of the application they may not otherwise get exposure to. This will make them better developers for that app in the long run. When I know how my API is consumed, I am much better at anticipating the next thing I should do than if I'm just driving off a spec. Most importantly, I can tell when &lt;em&gt;the spec is wrong&lt;/em&gt; before I start coding if I know the application and its use.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Finally, why wouldn't you use as many eyes as possible? You can rarely afford to go through the hiring and on-boarding process to bring additional QA people on board for crunch time. So, where do you find the extra eyes you need? Or do you try to get through crunch time with the same number of QA you had all along? Even if the devs spend&#xA; 20% of their time testing and 80% fixing whatever bugs come up, it's still more eyes on the app than you had before. Automated testing only gives you a certain level of assurance and it will never be 100%. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://haacked.com/archive/2010/12/20/not-really-interested-in-lean.aspx?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+haacked+%28you%27ve+been+HAACKED%29&quot; rel=&quot;nofollow&quot;&gt;http://haacked.com/archive/2010/12/20/not-really-interested-in-lean.aspx?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+haacked+%28you%27ve+been+HAACKED%29&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-12-29T19:36:30.680" CommentCount="2" />
  <row Id="31728" PostTypeId="2" ParentId="31719" CreationDate="2010-12-29T19:39:17.440" Score="4" ViewCount="" Body="&lt;p&gt;I think that the comments about application developers and web developers is wrong. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, if someone is developing a web application that involves a lot of security stuff like ssh or some other encryption algorithm it is pretty important that they know what type of hardware they are running on so that they can determine if the machine can actually handle the work load. Another example might include a server that hosts some sort of downloaded content. You better know the capabilities of the disk drive and whatever type of bus interface it is attached to if you expect a reasonably large amount of requests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From an application stand point, if you are developing some sort of CAD program, or something that does 3d rendering you can expect these application to be compute intensive both algorithmically and graphically. It would be prudent to understand the hardware to make sure the application is responsive and usable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not saying that you have to go as far as understanding the ins and outs of something like the PCI protocol, but you better understand what the interface and hardware is capable of.     &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately, it is important regardless of what type of development you do. The level of detail necessary for you to understand is debatable. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2010-12-29T19:39:17.440" CommentCount="1" />
  <row Id="31729" PostTypeId="2" ParentId="31719" CreationDate="2010-12-29T19:44:21.333" Score="0" ViewCount="" Body="&lt;p&gt;What little I know I learned in a computer architecture class almost 25 years ago, and on a non-real-world architecture at that.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do primarily applications programming on a variety of platforms.  There was a period where I was developing code to run on not just commodity x86 hardware, but also on Sparc, PA-RISC, and other server architectures.  Knowledge at that level simply isn't required for the work I do.  &lt;/p&gt;&#xA;" OwnerUserId="11246" LastActivityDate="2010-12-29T19:44:21.333" />
  <row Id="31730" PostTypeId="2" ParentId="14287" CreationDate="2010-12-29T19:47:36.457" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Delphi&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can be one of the first to natively compile Delphi on your Mac.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(pay no attention to the &lt;a href=&quot;http://www.itwriting.com/blog/2616-what-next-for-embarcadero-delphi-roadmap-with-mac-linux-published.html&quot; rel=&quot;nofollow&quot;&gt;dates in this article&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2010-12-29T19:47:36.457" />
  <row Id="31732" PostTypeId="2" ParentId="31536" CreationDate="2010-12-29T19:51:02.897" Score="1" ViewCount="" Body="&lt;p&gt;If going back to school is what you really want then go for it.  One nice thing about the programming industry is it is very easy get freelance projects to keep you up to date.  As a small business owner I never hire someone on there degree or how much schooling they have.  Book smart doesn't equal real world experience and more importantly the love of programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With that being said if you told me you were in school and working freelance 20 hours a week that would show drive and I would think any employer would put you at the top of the list if qualified for the position since most people think full time school and working at the same time is to much work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is just my opinion and it may be jaded but school in itself does produce good employees/programmers it the dedication that the individual puts forth while there in school to stay current as well as get the grades that will separate you from everyone else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to sum it up if you are not going to work while in school I feel it may put you back to an entry level position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck in you future endeavors.&lt;/p&gt;&#xA;" OwnerUserId="11972" LastActivityDate="2010-12-29T19:51:02.897" CommentCount="3" />
  <row Id="31733" PostTypeId="1" AcceptedAnswerId="31744" CreationDate="2010-12-29T20:00:45.307" Score="11" ViewCount="823" Body="&lt;p&gt;A friend of my wife's is coming over for dinner tonight and he is a lot smarter than me.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do we have in common, well... A Bachelor's in Computer Science, and that should be enough of a conversation starter.  But he's nearly completed his doctoral studies and is light years ahead of me in his particular area, which I find fascinating but don't have any legit reason to care about (except for maybe a better way through heavy traffic - he's a combinatorics guy specializing in that I think) and I got married and had some kids and am a professional programmer for medical records software. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We've got a lot in common, but there's a point where neither of us care or understand each other - although I really want to learn from him and I'm not certain he'd even want to talk about his work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for all you doctors or code monkeys, what's a good conversation starter!&lt;/p&gt;&#xA;" OwnerUserId="1973" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2010-12-29T20:06:54.663" LastActivityDate="2011-03-01T10:14:19.113" Title="As a code monkey, how to discuss programming with a guy who almost has a doctorate in computer science" Tags="&lt;education&gt;&lt;computer-science&gt;&lt;lifestyle&gt;&lt;conversation-starters&gt;" AnswerCount="13" CommentCount="11" FavoriteCount="3" />
  <row Id="31734" PostTypeId="2" ParentId="3066" CreationDate="2010-12-29T20:07:36.813" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What do you think of the F# language?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I love it!&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I would like to learn it's positive and negative points.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Pros:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Productive&lt;/strong&gt;. F# captured the essence of ML that makes it such a hugely productive programming language.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Efficient&lt;/strong&gt;. F# captured the simple mode of compilation that makes the performance of ML code so predictable and .NET 4 makes it predictably fast.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Interoperable&lt;/strong&gt;. F# solves my single biggest gripe with previous-generation languages by providing safe high-level interoperability with the rest of the .NET platform. Scala and Clojure do the equivalent for the JVM.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Exciting&lt;/strong&gt;. The F# community are buzzing with enthusiasm and continue to amaze me with their incredible work, solving real problems and helping people. Our customers are using my work to do everything from building robotic trains to futuristic stethoscopes. I love being a part of that.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Commerce friendly&lt;/strong&gt;. Most of the F# community value my hard work and are willing to recompense me fairly for it. Clojure is another upcoming language built by an industrialist for industry and I have great respect for that.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Cons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Compiler is slow enough that you really start to feel it after ~50kLOC.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Indentation-sensitive syntax means no autoindenting.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;F# doesn't have every academic language feature under the sun for me to tinker with when I should be solving real problems.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What is your experience with this language?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I've been building products and providing services around F# for 4 years.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;When should or shouldn't someone use F#?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Impossible to say without more specifics. Find little projects and give it a try. I'm sure you'll be amazed. :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers,&lt;br/&gt;&#xA;Jon.&lt;/p&gt;&#xA;" OwnerUserId="11782" LastEditorUserId="11782" LastEditorDisplayName="" LastEditDate="2010-12-29T21:26:05.420" LastActivityDate="2010-12-29T21:26:05.420" CommentCount="4" />
  <row Id="31736" PostTypeId="1" CreationDate="2010-12-29T20:08:53.287" Score="7" ViewCount="214" Body="&lt;p&gt;I've been programming in C and C++ for some time, although I would say I'm far from being expert. For some time I've been using various strategies to develop my code such as unit tests, test driven design, code reviews and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I wrote my first programs in BASIC I typed in long listings before finding they would not run and they were a nightmare to debug. So I learnt to write a small bit and then test it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These days I often find myself repeatedly writing a small bit of code then using the compiler to find all the mistakes. That's OK if it picks up a typo but when you start adjusting the parameters types etc just to make it compile you can screw up the design. It also seems that the compiler is creeping into the design process when it should only be used for checking syntax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a danger here of over reliance on the compiler to make my programs better. Are there better strategies than this ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I vaguely remember some time ago an article on a company developing a type of C compiler where an extra header file also specified the prototypes. The idea was that inconsistencies in the API definition would be easier to catch if you had to define it twice in different ways.&lt;/p&gt;&#xA;" OwnerUserId="11974" LastActivityDate="2011-01-25T14:54:03.330" Title="Reliance on the compiler" Tags="&lt;design&gt;&lt;development-process&gt;&lt;software-engineering&gt;" AnswerCount="5" />
  <row Id="31737" PostTypeId="2" ParentId="31733" CreationDate="2010-12-29T20:10:21.653" Score="6" ViewCount="" Body="&lt;p&gt;Geeks are geeks.  Doesn't matter if they're PhD's or self-taught, beign a geek is your common ground.  We geeks also love to talk about our work when someone is genuinely interested, and he will likely be no exception.  It's so rare anyone is interested in what we do that when it happens, we're like pigs in.. well, something warm and moist but foul smelling.&lt;/p&gt;&#xA;" OwnerUserId="4368" LastActivityDate="2010-12-29T20:10:21.653" CommentCount="1" />
  <row Id="31738" PostTypeId="1" CreationDate="2010-12-29T17:23:08.473" Score="6" ViewCount="366" Body="&lt;p&gt;First, a scene-setter to this question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Several questions on this site have to do with selection and comparison of Python IDEs. (The top one currently is &lt;a href=&quot;http://stackoverflow.com/questions/81584/what-ide-to-use-for-python&quot;&gt;What IDE to use for Python&lt;/a&gt;). In the answers you can see that many Python programmers use simple text editors, many use sophisticated text editors, and many use a variety of what I would call &quot;actual&quot; integrated development environments – a single program in which all development is done: managing project files, interfacing with a version control system, writing code, refactoring code, making build configurations, writing and executing tests, &quot;drawing&quot; GUIs, and so on. Through its GUI, an IDE supports different kinds of workflows to accomplish different tasks during the journey of writing a program or making changes to an existing one. The exact features vary, but a good IDE has sensible workflows and automates things to let the programmer concentrate on the creative parts of writing software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The non-IDE way of writing large programs relies on a collection of tools that are typically single-purpose; they do &quot;one thing well&quot; as per the &lt;a href=&quot;http://en.wikipedia.org/wiki/Unix_philosophy&quot; rel=&quot;nofollow&quot;&gt;Unix philosophy&lt;/a&gt;. This &quot;non-integrated development environment&quot; can be thought of as a workbench, supported by the OS and generic interaction through a text or graphical shell. The programmer creates workflows in their mind (or in a wiki?), automates parts and builds a personal workbench, often gradually and as experience accumulates. The learning curve is often steeper than with an IDE, but those who have taken the time to do this can often claim deeper understanding of their tools. (Whether they are better programmers is not part of this question.) With advanced editor-platforms like Emacs, the pieces can be integrated into a whole, while with simpler editors like gedit or TextMate, the shell/terminal is typically the &quot;command center&quot; to drive the workbench. Sometimes people extend an existing IDE to suit their needs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;What does your Python development workbench look like? What workflows have you developed and how do they work?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the first question, please give&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the main &quot;driving&quot; program – the one that you use to control the rest (Emacs, shell, etc.)&lt;/li&gt;&#xA;&lt;li&gt;the &quot;small tools&quot; -- the programs you reach for when doing different tasks&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For the second question, please describe&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;what the goal of the workflow is (eg. &quot;set up a new project&quot; or &quot;doing initial code design&quot; or &quot;adding a feature&quot; or &quot;executing tests&quot;)&lt;/li&gt;&#xA;&lt;li&gt;what steps are in the workflow and what commands you run for each step (eg. in the shell or in Emacs)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also, please describe the context of your work: do you write small one-off scripts, do you do web development (with what framework?), do you write data-munching applications (what kind of data and for what purpose), do you do scientific computing, desktop apps, or something else?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; A good answer addresses the perspectives above – it doesn't just list a bunch of tools. It will typically be a long answer, not a short one, and will take some thinking to produce; maybe even observing yourself working.&lt;/p&gt;&#xA;" OwnerUserId="11968" LastActivityDate="2011-01-09T23:45:42.193" Title="What does your Python development workbench look like?" Tags="&lt;python&gt;&lt;tools&gt;&lt;ide&gt;&lt;polls&gt;" AnswerCount="8" CommentCount="6" FavoriteCount="2" />
  <row Id="31739" PostTypeId="2" ParentId="31738" CreationDate="2010-12-29T17:28:02.500" Score="1" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.jetbrains.com/pycharm/&quot; rel=&quot;nofollow&quot;&gt;JetBrains' PyCharm&lt;/a&gt; IDE.  I think it's fabulous, definitely worth a look.&lt;/p&gt;&#xA;" OwnerUserId="4316" LastActivityDate="2010-12-29T20:10:47.237" CommentCount="2" />
  <row Id="31740" PostTypeId="2" ParentId="31738" CreationDate="2010-12-29T18:17:25.457" Score="1" ViewCount="" Body="&lt;p&gt;Things I can't survive without:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;WingIDE, pyflakes, zc.buildout, distribute, supervisord, trac with svn.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-29T20:10:47.237" CommentCount="3" />
  <row Id="31741" PostTypeId="2" ParentId="31738" CreationDate="2010-12-29T18:35:26.617" Score="1" ViewCount="" Body="&lt;p&gt;Eclipse with pydev. Works great.&lt;/p&gt;&#xA;" OwnerUserId="1369" LastActivityDate="2010-12-29T20:10:47.237" CommentCount="2" />
  <row Id="31742" PostTypeId="2" ParentId="31738" CreationDate="2010-12-29T18:37:53.047" Score="2" ViewCount="" Body="&lt;p&gt;I use Notepad++, cmd.exe and rcs! IDEs are soooo 21st century!&lt;/p&gt;&#xA;" OwnerUserId="14432" LastActivityDate="2010-12-29T20:10:47.237" CommentCount="4" />
  <row Id="31743" PostTypeId="2" ParentId="31738" CreationDate="2010-12-29T19:13:24.653" Score="1" ViewCount="" Body="&lt;p&gt;What do I typically work on: an open-source checkers game (desktop app) with a Tkinter GUI that runs on Windows or Linux.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Main driving program: Komodo 4.3 IDE&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondary tools: PyLint for static code checks, nose/kNose for unit testing, TortoiseHg/Mercurial for source control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;To execute unit tests&lt;/strong&gt;: With nose &amp;amp; kNose, it's automatically done whenever I save a file. I wrote the &lt;a href=&quot;http://mysite.verizon.net/bcorfman/knose.html&quot; rel=&quot;nofollow&quot;&gt;kNose&lt;/a&gt; extension to do this myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;To perform code checks&lt;/strong&gt;: I run a PyLint macro in my Komodo toolbox. I wrote &lt;a href=&quot;http://mysite.verizon.net/bcorfman/2007/02/komodo-hacks-integrating-pylint.html&quot; rel=&quot;nofollow&quot;&gt;the code&lt;/a&gt; to do this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;To work with Mercurial&lt;/strong&gt;: I use TortoiseHg inside Windows Explorer. It would be better if this was integrated into Komodo, but I don't have the time or interest. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Newer versions of Komodo IDE have unit testing &amp;amp; source control access built-in, and I'd also eventually like to upgrade to PyCharm since it has more of these features too, but I don't want to spend the money at the moment.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-29T20:10:47.237" CommentCount="1" />
  <row Id="31744" PostTypeId="2" ParentId="31733" CreationDate="2010-12-29T20:11:02.070" Score="14" ViewCount="" Body="&lt;p&gt;PhD folks are still just people. Yes, they're often very smart (the ones I've met are, at any rate), and they've learned a lot about a particular niche of human knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe talk about something that's not directly related to either of your fields of work. That way neither of you need feel the conversation's about work. (I usually end up talking about programming language design with my neighbourhood PhDs.)&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-12-29T20:11:02.070" />
  <row Id="31745" PostTypeId="2" ParentId="31733" CreationDate="2010-12-29T20:13:08.360" Score="4" ViewCount="" Body="&lt;p&gt;My experience is that CS PhD's tend to be quite myopic about their areas of expertise.  He may know plenty about combinatorics, but I'm willing to bet he knows very little about the lovely world of HL7 and X12 EDI. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't be so intimidated.  Be inquisitive about his specialty, and hopefully he'll be equally interested in the problems of the medical world.  Maybe in talking to him you'll find some insight into some analytical problem you're facing.&lt;/p&gt;&#xA;" OwnerUserId="9475" LastActivityDate="2010-12-29T20:13:08.360" CommentCount="2" />
  <row Id="31746" PostTypeId="2" ParentId="31736" CreationDate="2010-12-29T20:15:01.947" Score="9" ViewCount="" Body="&lt;p&gt;Don't adjust things to make it compile.  Adjust things to be &lt;strong&gt;correct&lt;/strong&gt;.  If it was &quot;designed&quot; so that the parameter types didn't match, then the designer doesn't have any idea what they're doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't want to rely on the compiler, then improve your knowledge of the language.  Study the structure of definitions and declarations, and check what you write for errors before compiling.  And use code reviews.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That extra prototypes idea sounds bad.  If you design it wrong once, what's to stop the second design from being designed wrong?  And by using different formats/paradigms/etc for the same thing, you're likely to confuse people.  I would make sure everyone understands the primary format so that you can focus on getting the design right the first time, rather than doubling the design work to catch errors.  Like everything else, designs should be refactored, but I don't think doing it twice to begin with makes much sense.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastEditorUserId="9771" LastEditorDisplayName="" LastEditDate="2010-12-29T21:33:15.187" LastActivityDate="2010-12-29T21:33:15.187" CommentCount="5" />
  <row Id="31747" PostTypeId="2" ParentId="17100" CreationDate="2010-12-29T20:15:12.853" Score="0" ViewCount="" Body="&lt;p&gt;A class should do one thing when viewed at its own level of abstraction.  It will doubtless do many things at a less abstract level.  This is how classes work to make programs more maintainable:  they hide implementation details if you don't need to examine them closely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use class names as a test for this.  If I can't give a class a fairly short descriptive name, or if that name has a word like &quot;And&quot; in it, I'm probably violating the Single Responsibility Principle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, it's easier to keep this principle at the lower levels, where things are more concrete.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-29T20:15:12.853" />
  <row Id="31748" PostTypeId="2" ParentId="31719" CreationDate="2010-12-29T20:22:05.830" Score="1" ViewCount="" Body="&lt;p&gt;I'm not sure if it helps, but I feel more comfortable when I know more about the system I'm working on than I really need to.  When I was younger, I didn't like not knowing the assembly language of the system I was working on; either I've changed, or I've learned sufficiently many that one more isn't going to expand my feel for the system much.  I've never been much of a hardware guy, but I can take a computer apart and name the different subsystems and how they interact.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-29T20:22:05.830" />
  <row Id="31749" PostTypeId="2" ParentId="31736" CreationDate="2010-12-29T20:22:39.227" Score="3" ViewCount="" Body="&lt;p&gt;Honestly, I believe your goal should ALWAYS be to write a program that compiles on the first time. I realize that this is hard and probably will not happen frequently, but it still should be your goal. Think of the software as a piece hardware. Make yourself believe that it unrealistically expensive to recompile your code (like re-manufacturing a a board). A complier is not a debugger and it shouldn't be treated as such. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2010-12-29T20:22:39.227" CommentCount="6" />
  <row Id="31750" PostTypeId="2" ParentId="31719" CreationDate="2010-12-29T20:23:02.253" Score="1" ViewCount="" Body="&lt;p&gt;For a professional programmer, I look at it as a &lt;em&gt;holistic&lt;/em&gt; approach to understanding the entire &lt;strong&gt;system&lt;/strong&gt;, rather than just knowing the syntax of a given programming language &lt;a href=&quot;http://www.merriam-webster.com/dictionary/du+jour&quot; rel=&quot;nofollow&quot;&gt;du jour&lt;/a&gt;. I find it helps programmers (and analysts) make smart design decisions, and make more informed algorithm &amp;amp; data structure choices. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my own experience the best programmers tend to know about the inner workings, to varying degrees, whether that is understanding the &lt;a href=&quot;http://www.librarything.com/work/393449&quot; rel=&quot;nofollow&quot;&gt;native assembly instruction set&lt;/a&gt; for a target platform, an introductory &lt;a href=&quot;http://www.pearsonhighered.com/educator/academic/product/0,,0131485210,00%2ben-USS_01DBC.html&quot; rel=&quot;nofollow&quot;&gt;computer organization&lt;/a&gt; course at school, rudimentary &lt;a href=&quot;http://www.play-hookey.com/digital/&quot; rel=&quot;nofollow&quot;&gt;digital electronics&lt;/a&gt; or being able to &lt;a href=&quot;http://nostarch.com/insidemachine.htm&quot; rel=&quot;nofollow&quot;&gt;understand detailed descriptions&lt;/a&gt; of CPU and GPU cores in the latest models, the best have a more complete knowledge than their less stellar peers.&lt;/p&gt;&#xA;" OwnerUserId="11206" LastActivityDate="2010-12-29T20:23:02.253" />
  <row Id="31752" PostTypeId="2" ParentId="31736" CreationDate="2010-12-29T20:27:33.237" Score="0" ViewCount="" Body="&lt;p&gt;The compiler is a tool. As with all tools, they can be abused.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you're first starting out with a language there's nothing wrong with using the compiler blindly to test your program. That's inherently how learning works, guess and check. However, that does not mean you should continue to code like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is in your best interest to understand the language well enough so that you could compile your program in your head. Then you will spend less time waiting for the compiler to finish. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I say it's probably best that the program is always within a few lines/blocks of code of being compilable. &lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2010-12-29T20:27:33.237" />
  <row Id="31753" PostTypeId="1" CreationDate="2010-12-29T20:24:15.230" Score="7" ViewCount="356" Body="&lt;p&gt;Do I need to go to Uni to get a job as a Junior C# coder?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm 26 and have been working in Games (Production) for 6 years and I am thinking of a change, I've had exposure to VB6, VBA, HTML, CSS, PHP, JavaScript over the past few years and did a web design NCFE at College, but other than that, nothing else!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm teaching myself C# at the moment with books and I was wondering 'how much' I need to learn and also how I can improve my chances of getting a programming job!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I a late started to learn coding? (I know many people who started at a very young age!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for the help :)&lt;/p&gt;&#xA;" OwnerUserId="14293" LastEditorUserId="30" LastEditorDisplayName="" LastEditDate="2010-12-29T22:07:18.100" LastActivityDate="2010-12-30T00:13:09.480" Title="Do I need a degree in Computer Science to get a junior Programming job?" Tags="&lt;c#&gt;&lt;degree&gt;&lt;junior&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="2" />
  <row Id="31754" PostTypeId="2" ParentId="31733" CreationDate="2010-12-29T20:28:48.403" Score="1" ViewCount="" Body="&lt;p&gt;A degree of any kind doesn't define a person nearly as much as you might think, just as much as a person's job doesn't say as much as you might think either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A very good friend of mine has a PhD in Artificial Intelligence whereas I'm only just now going back to school for a degree. We've known each other for over ten years and we have never once had a problem finding things to talk about. We usually don't even talk about programming, and if we do the conversation typically revolves around topics found on this site: general programming topics without getting into the details of specific projects. But before we even get into that, we have current events (net neutrality, maybe a little politics), television shows, movies, assorted types of booze (there is always a tasting of some kind at our respective places), etc.&lt;/p&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2010-12-29T20:28:48.403" />
  <row Id="31755" PostTypeId="2" ParentId="31733" CreationDate="2010-12-29T20:34:34.560" Score="2" ViewCount="" Body="&lt;p&gt;One thing I learned late in life is, &quot;Don't beat around the bush.&quot;&lt;br /&gt;&lt;br /&gt;Just ask what you want to know about and you'll be able to tell if he wants to talk about it or not. If not, break out the new toys you got for Christmas. I can go on and on about my Digital SLR camera or what I need to do to the '79 pickup out in the garage. Just jump in there and if he's not showing any interest, see it for what it is and go do your own thing.&lt;/p&gt;&#xA;" OwnerUserId="7038" LastActivityDate="2010-12-29T20:34:34.560" />
  <row Id="31757" PostTypeId="2" ParentId="31753" CreationDate="2010-12-29T20:39:02.653" Score="1" ViewCount="" Body="&lt;p&gt;Don't be insecure about your abilities.  You already have exposure to six languages and the initiative to teach yourself.  Look at &lt;a href=&quot;http://en.wikipedia.org/wiki/Jamie_Zawinski&quot; rel=&quot;nofollow&quot;&gt;Jamie Zawinski&lt;/a&gt;.  One of the most successful programmers ever, no degree and hardly any formal education.  Sure, the world's different now, but you should concentrate on your skillset and you'll find somebody that wants to hire you if you show your motivated.&lt;/p&gt;&#xA;" OwnerUserId="11107" LastActivityDate="2010-12-29T20:39:02.653" />
  <row Id="31758" PostTypeId="2" ParentId="31753" CreationDate="2010-12-29T20:39:35.773" Score="8" ViewCount="" Body="&lt;h2&gt;Absolutely not.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Will it help?  Of course.  Is it required?  No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With your experience you shouldn't have too much of a problem getting a junior level position.  As with all things, your potential employers need to know that you can get the job done.  You may need to show them some of the work you've done (maybe an open source contribution?  or something else you've created?), but you'll still be able to land a position if you can do the job.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-12-29T20:39:35.773" />
  <row Id="31759" PostTypeId="2" ParentId="31733" CreationDate="2010-12-29T20:40:00.983" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Never be intimidated&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't worry if this guy is some kind of mega-mind. Like many PhDs, his specialism is a very narrow (and deep) field and there is a good chance that he just won't want to talk about it at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So keep it simple and light. Listen closely to what he, and your wife, have to say and then follow that route. By being a good listener you may find that you gain a reputation as an excellent conversationalist.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2010-12-29T20:40:00.983" />
  <row Id="31761" PostTypeId="2" ParentId="31733" CreationDate="2010-12-29T20:50:27.413" Score="9" ViewCount="" Body="&lt;p&gt;Intimidated? You are a gainfully employed professional and he has no job. He might have academic smarts but you have real experience. Quite a lot to exchange there, methinks.&lt;/p&gt;&#xA;" OwnerUserId="7380" LastActivityDate="2010-12-29T20:50:27.413" CommentCount="2" />
  <row Id="31764" PostTypeId="2" ParentId="1600" CreationDate="2010-09-07T13:54:31.420" Score="0" ViewCount="" Body="&lt;p&gt;Dunno - haven't reached that stage any time in the last twenty-five or so years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you get tired of programming?&lt;/p&gt;&#xA;" OwnerUserId="3611" LastActivityDate="2010-12-29T20:53:58.353" CommunityOwnedDate="2010-09-07T14:24:42.470" CommentCount="2" />
  <row Id="31765" PostTypeId="2" ParentId="1600" CreationDate="2010-09-07T13:57:30.563" Score="12" ViewCount="" Body="&lt;p&gt;Quote from bash.org:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Queued: It must be late -- &quot;perl5&quot; is looking like &quot;penis&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Boinger69: Stay up until &quot;VB&quot; looks like &quot;a good idea&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is when you know you should give up.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-29T20:53:58.353" CommunityOwnedDate="2010-09-07T14:24:42.470" CommentCount="1" />
  <row Id="31766" PostTypeId="2" ParentId="1600" CreationDate="2010-09-07T13:59:13.200" Score="3" ViewCount="" Body="&lt;p&gt;You can't force yourself to be happy and content, but if you need motivation then just remember that you are being &lt;em&gt;paid&lt;/em&gt; to program. Someone's giving you money to do something you're (presumably) good at, and this in turn lets you pay your bills, pay for food, entertainment, etc... And at the same time &lt;em&gt;seriously&lt;/em&gt; consider what else you would want to do for a living. Maybe talk to a career councellor. But to answer you're question: if you're having these kinds of doubts, it sounds like you're already tired of programming (unless it's just your current project - do any personal programmin projects still interest you?). Or if the only problem is sitting in front of a desk, maybe you need a programming job that gets you out in the field more. Unfortunately, I don't know what those are or I'd be applying for it too (I like programming but loathe being stuck at a desk so much).&lt;/p&gt;&#xA;" LastActivityDate="2010-12-29T20:53:58.353" CommunityOwnedDate="2010-09-07T14:24:42.470" />
  <row Id="31767" PostTypeId="2" ParentId="1600" CreationDate="2010-09-07T13:59:19.817" Score="20" ViewCount="" Body="&lt;p&gt;Programming is a creative endeavor.  If you grow tired of it, you are doing it wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You probably aren't tired of programming; you are tired of &lt;em&gt;what&lt;/em&gt; you being &lt;em&gt;told to program&lt;/em&gt; -- i.e, you need a new job, or perhaps, a new outlet.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try writing something just for you --- start an open-source project, or contribute to an existing one.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find working on a laptop on the train to work on my personal website (&lt;a href=&quot;http://www.njtheater.org&quot; rel=&quot;nofollow&quot;&gt;http://www.njtheater.org&lt;/a&gt;), far more fulfilling than what I do the 8 hours after I arrive.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-29T20:53:58.353" CommunityOwnedDate="2010-09-07T14:24:42.470" CommentCount="5" />
  <row Id="31768" PostTypeId="2" ParentId="1600" CreationDate="2010-09-07T14:04:02.077" Score="1" ViewCount="" Body="&lt;p&gt;Try doing an independent project that you really enjoy, and that you've always wanted to do.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-29T20:53:58.353" CommunityOwnedDate="2010-09-07T14:24:42.470" />
  <row Id="31769" PostTypeId="2" ParentId="1600" CreationDate="2010-09-07T14:07:35.230" Score="6" ViewCount="" Body="&lt;p&gt;I think it can probably happen, for a number of reasons. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Firstly, it depends on your environment - if you're coding professionally, it can be easy to become jaded, cynical and disenchanted with what you're doing. You're not doing it because it's interesting, but because someone is paying you to do it. That said, if they are paying you to do it, that should be your motivation, and your professional responsibility. No job is perfect all the time. If you can't code because someone needs you to (and is paying you) then you probably shouldn't be a professional.&#xA;Of course sometimes the work is fun, exciting, and you don't want to stop and go home/eat/wash etc (although you probably should.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, it can be because you have a lack of suitable driver. If what you're doing doesn't have a real point, it can be easy to lose motivation. This can happen to hobbyists and students. Some people like to code for its own sake (I guess I am like that to some degree) - but it's easier if what your'e doing has some real value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thirdly, I suspect it's possible to simply want a different direction in your life. That happens sometimes. If you're a professional, prepare to take a pay cut. If you're not, well, you can find a different hobby. Maybe play golf, or make model aeroplanes. I don't suppose it matters much to anyone else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially, we all have rough patches. Professionals work through them, because they're professionals. People with real interest will find another aspect that motivates them. Others will have their interest come and go. To be really good at writing code is no trivial task. Some people have more natural ability than others, it's true, and I don't think that everyone can become a competent coder, if you don't have the inherent logical understanding to make it work for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes, like the enthusiast, the professional needs a change of environment - if you've been working on financial systems, maybe seeing if you can get a job in the medical support industry, or robotics, or something. In the current economic climate, it may be difficult to manage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coders are people too (no, really) and although they sometimes like to think of themselves as different, more logical, etc (and in some ways they might be) - they still have all the usual human traits - they get bored, they want a change, they're scared of change, they stay in their comfort zone, they think the grass is greener, etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to decide, for yourself, over an extended period, when you're not distracted by the latest issue/crisis/bad management decision/whatever, whether you want to keep working in that position. Few people love their job all the time.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-29T20:53:58.353" CommunityOwnedDate="2010-09-07T14:24:42.470" CommentCount="1" />
  <row Id="31770" PostTypeId="2" ParentId="1600" CreationDate="2010-09-07T14:12:04.103" Score="1" ViewCount="" Body="&lt;p&gt;I would advice you to create your own web product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Web because you'll get user feedback immediately - something that is profoundly motivating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming as a job will be getting less and less challenging and fulfilling as the technologies evolve and also less and less rewarding as the market gets more crowded due to the lowering of the entry barrier due to technologies evolving. May become just not worth it as a career option.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-29T20:53:58.353" CommunityOwnedDate="2010-09-07T14:24:42.470" />
  <row Id="31771" PostTypeId="2" ParentId="1600" CreationDate="2010-09-07T14:17:46.320" Score="3" ViewCount="" Body="&lt;p&gt;When management starts to look like a good proposition.&lt;/p&gt;&#xA;" OwnerUserId="5266" LastActivityDate="2010-12-29T20:53:58.353" CommunityOwnedDate="2010-09-07T14:24:42.470" CommentCount="1" />
  <row Id="31772" PostTypeId="2" ParentId="1600" CreationDate="2010-09-07T14:35:25.923" Score="0" ViewCount="" Body="&lt;p&gt;I sometimes feel the same way as you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I feel like that, I like not to think of another motivation, but simply enjoy other things like friends, listening or creating music, reading a good book, driving somewhere where I always wanted, going to excercise or simply going outside for a walk with good friends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everything different works fine&lt;/p&gt;&#xA;" LastActivityDate="2010-12-29T20:53:58.353" CommunityOwnedDate="2010-09-07T14:35:25.923" CommentCount="1" />
  <row Id="31773" PostTypeId="2" ParentId="1600" CreationDate="2010-09-07T14:40:53.977" Score="2" ViewCount="" Body="&lt;p&gt;Programming is a gift that should not be taken lightly. With the proliferation of web millionaires and the gold rush that is occurring in the mobile development environment, your gift is in demand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your feeling that you are tired of programming clearly points to the fact that you are an entrepreneur at heart and you need to work for yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend you brainstorm some killer app/game ideas and start working on it ASAP (but keep you day job) until your app can pay for your retirement.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-29T20:53:58.353" CommunityOwnedDate="2010-09-07T14:40:53.977" CommentCount="1" />
  <row Id="31774" PostTypeId="2" ParentId="1600" CreationDate="2010-09-07T14:59:30.563" Score="4" ViewCount="" Body="&lt;p&gt;I've been there a few times. There have been days, even weeks, where I just couldn't face a keyboard, but had to anyway. In the short term, this means I need a vacation. Usually, it happens at just the time in the project where that's impossible...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Immediate&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When this happens, there's no way I can concentrate well enough or long enough to fix serious defects or take on a big chunk of functionality. What I can do is make the stats look good. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pull up the &quot;trivial&quot; issues (you know, the crap that sits untouched for a year or two while everyone jumps on the criticals and majors), and then &lt;em&gt;print that list&lt;/em&gt;. See how many of them you can clear before lunch, and cross them out on the printout. Now you have tangible proof that you did something useful. See if you can do better in the afternoon. (Use a different coloured pen, so you can tell at a glance.) Feel free to cherry-pick the easy ones or the ones you fancy, it's all about making the stats look good while doing as little as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fun thing about these trivial issues is that many of them will involve little to no programming. You may even get to prat about in Windows Paint for a while :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One day of that is normally enough to get me back on track. This works especially well for me because my boss is nuts about graphs and stats.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Short term&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you make it to the weekend? Get away from the computer. Not just the computer, &lt;em&gt;any&lt;/em&gt; computer. Book a night away somewhere. Do it now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Leave the laptop behind, leave your cellphone behind. Take a good book, take a notepad if you insist on thinking about work. But no email, nothing more technical than a good pen. I find this clears the mind wonderfully, and my scribbles make for a very productive time when I get back to the office on Monday.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't do this nearly as often as I should.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Medium term&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The trick is to book a vacation, even a small one, for right after each release date, if your project is structured that way. If not, then at regular intervals. Have something other than coding to look forward to. It can be as simple as a weekend in the next town over. That way you don't find yourself where I do sometimes, having had no break since forever and carrying 20 days' annual leave over into the following year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Long term&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There has to be an exit strategy, unless you really can see yourself doing this till you retire. And I do work with some great guys who are in their 60s, so it's not impossible. How you go about forming a proper exit strategy and following it through is best left to someone older than me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I'd rather go up than out. Either the dreaded &quot;management&quot; route, or a senior programmer role. Ideally, I'd like to mentor younger programmers, because I've always enjoyed that and apparently I'm good at it. There's a good few years of code-monkeying in me yet, but I'm certainly starting to ask &quot;what next?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, the app I'm working on might help scientists cure cancer, but when it comes down to it all, I'm shuffling ones and zeroes around all day.That lack of a tangible real-world product is the one thing that makes me question the point of my work sometimes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would I do instead? I don't know. But there's meant to be a new suspension bridge getting built within sight of the office soon, and sometimes I think I'd like to jack it all in, put on some boots and a hard hat, and go build a bridge. I'd love to have even a small part in something huge, something I can show the grandchildren and say, &quot;I helped make that.&quot;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-29T20:53:58.353" CommunityOwnedDate="2010-09-07T14:59:30.563" CommentCount="3" />
  <row Id="32385" PostTypeId="1" AcceptedAnswerId="32388" CreationDate="2010-07-15T07:28:40.040" Score="11" ViewCount="336" Body="&lt;p&gt;I may have to switch to Java for new project. I have very little knowledge about Java, because I've mainly studied and used C#, and I'm afraid of the differences between these two language/platform should likely to cause me many problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which are the pitfalls/gotchas I should care about?&lt;/p&gt;&#xA;" OwnerUserId="11840" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2011-05-06T15:31:54.670" LastActivityDate="2011-05-06T15:31:54.670" CommunityOwnedDate="2010-07-15T10:21:29.610" Title="Switch from C# to Java, which &quot;gotchas&quot; I should care?" Tags="&lt;java&gt;&lt;c#&gt;&lt;.net&gt;&lt;pitfalls&gt;&lt;gotchas&gt;" AnswerCount="12" CommentCount="5" FavoriteCount="1" />
  <row Id="32386" PostTypeId="2" ParentId="32385" CreationDate="2010-07-15T07:33:06.050" Score="1" ViewCount="" Body="&lt;p&gt;I think your question is subjective. All can't be explained here. I suggest you to read &lt;strong&gt;Java Puzzlers&lt;/strong&gt;, By &lt;code&gt;Joshua Bloch and Neal Gafter&lt;/code&gt;. You can learn more and be safe from pitfalls.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-29T20:57:54.030" CommentCount="2" />
  <row Id="32387" PostTypeId="2" ParentId="32385" CreationDate="2010-07-15T07:35:20.170" Score="10" ViewCount="" Body="&lt;p&gt;The one that got me was &lt;a href=&quot;http://download.oracle.com/docs/cd/E17476_01/javase/1.4.2/docs/api/java/lang/String.html#substring%28int,%20int%29&quot; rel=&quot;nofollow&quot;&gt;Java substring&lt;/a&gt; args are beginIndex, endIndex while &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa904308%28v=VS.71%29.aspx&quot; rel=&quot;nofollow&quot;&gt;C# Subtring&lt;/a&gt; args are startIndex, length.  Thats enough of a difference to make it annoying and a good probability of getting index out of bounds either way you switch.&lt;/p&gt;&#xA;" OwnerUserId="20680" LastActivityDate="2010-12-29T20:57:54.030" CommentCount="1" />
  <row Id="32388" PostTypeId="2" ParentId="32385" CreationDate="2010-07-15T07:35:54.130" Score="20" ViewCount="" Body="&lt;p&gt;Here are some important Java gotchas when coming from C#:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In Java, &lt;code&gt;switch&lt;/code&gt; cases can silently fall-through to the next, so make sure you always put &lt;code&gt;break&lt;/code&gt; whenever appropriate. You also can't &lt;code&gt;switch&lt;/code&gt; on &lt;code&gt;String&lt;/code&gt; in Java.&lt;/li&gt;&#xA;&lt;li&gt;Generics are non-reified and parameterizable with reference types only. There is no &lt;code&gt;List&amp;lt;int&amp;gt;&lt;/code&gt;, only a &lt;code&gt;List&amp;lt;Integer&amp;gt;&lt;/code&gt;. Autoboxing hides the verbosity, but you can get &lt;code&gt;NullPointerException&lt;/code&gt; when unboxing a &lt;code&gt;null&lt;/code&gt;. Also, &lt;code&gt;==&lt;/code&gt; and &lt;code&gt;!=&lt;/code&gt; on two boxed primitive types perform reference comparison.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;... because &lt;code&gt;==&lt;/code&gt; and &lt;code&gt;!=&lt;/code&gt; on two reference types (e.g. &lt;code&gt;String&lt;/code&gt;) are always reference comparison&lt;/li&gt;&#xA;&lt;li&gt;An &lt;code&gt;int&lt;/code&gt; can be autoboxed to an &lt;code&gt;Integer&lt;/code&gt;; there is no autoboxing from &lt;code&gt;int[]&lt;/code&gt; to &lt;code&gt;Integer[]&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Java's &lt;code&gt;byte&lt;/code&gt;, &lt;code&gt;short&lt;/code&gt;, &lt;code&gt;int&lt;/code&gt;, &lt;code&gt;long&lt;/code&gt; are signed only. Watch for unintended sign extension.&lt;/li&gt;&#xA;&lt;li&gt;No multidimensional arrays, only array of arrays in Java.&lt;/li&gt;&#xA;&lt;li&gt;Most &lt;code&gt;sub*&lt;/code&gt; ranged query methods use inclusive lower bound and exclusive upper bound&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/java/lang/String.html#substring%28int,%20int%29&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;String.substring(int beginIndex, int endIndex)&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/java/lang/CharSequence.html&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;CharSequence.subSequence(int start, int end)&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/java/util/List.html#subList%28int,%20int%29&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;List.subList(int fromIndex, int toIndex)&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/java/util/SortedSet.html#subSet%28E,%20E%29&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;SortedSet&amp;lt;E&amp;gt;.subSet(E fromElement, E toElement)&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/java/util/SortedMap.html#subMap%28K,%20K%29&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;SortedMap&amp;lt;K,V&amp;gt;.subMap(K fromKey, K toKey)&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h3&gt;See also&lt;/h3&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://javapuzzlers.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Java Puzzlers: Traps, Pitfalls, and Corner Cases&lt;/em&gt;&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A fun but at the same time very educational read.&lt;/li&gt;&#xA;&lt;li&gt;The book also has many successors presentations available on the web, e.g:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=wDN_EYUvUq0&quot; rel=&quot;nofollow&quot;&gt;2007 Google Tech Talk video presentation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;TS-5186: Return of the Puzzlers: Schlock and Awe&lt;/li&gt;&#xA;&lt;li&gt;TS-1188: The Continuing Adventures of Java Puzzlers: Tiger Traps&lt;/li&gt;&#xA;&lt;li&gt;TS-2707: Java Puzzlers, Episode VI: The PhantomReference Menace, Attack of the Clone, Revenge of the Shift&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Comparison_of_Java_and_C_Sharp&quot; rel=&quot;nofollow&quot;&gt;Wikipedia/Comparison of Java and C Sharp&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h3&gt;Related questions&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;On some topics listed above:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/3108297/james-goslings-explanation-of-why-javas-byte-is-signed&quot;&gt;James Gosling’s explanation of why Java’s byte is signed&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/3015716/java-noob-generics-over-objects-only/&quot;&gt;Java noob: generics over objects only?&lt;/a&gt; (yes, unfortunately)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/338206/switch-statement-with-strings-in-java&quot;&gt; Switch Statement With Strings in Java? &lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/2440282/are-upper-bounds-of-indexed-ranges-always-assumed-to-be-exclusive&quot;&gt;Are upper bounds of indexed ranges always assumed to be exclusive?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/2831945/is-it-guaranteed-that-new-integeri-i-in-java&quot;&gt;Is it guaranteed that &lt;code&gt;new Integer(i) == i&lt;/code&gt; in Java?&lt;/a&gt; (YES!)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/1514910/when-comparing-two-integers-in-java-does-auto-unboxing-occur&quot;&gt;When comparing two Integers in Java (with &lt;code&gt;==&lt;/code&gt;/&lt;code&gt;!=&lt;/code&gt;) does auto-unboxing occur?&lt;/a&gt; (NO!)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/3123349/why-does-int-num-integer-getinteger123-throw-nullpointerexception/&quot;&gt;Why does &lt;code&gt;int num = Integer.getInteger(&quot;123&quot;)&lt;/code&gt; throw &lt;code&gt;NullPointerException&lt;/code&gt;?&lt;/a&gt; (!!!)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;On general Java gotchas:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/169815/java-common-gotchas&quot;&gt;Java - Common Gotchas&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/822768/what-are-the-pitfalls-of-a-java-noob&quot;&gt;What are the pitfalls of a Java noob?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/1291984/most-awkward-misleading-method-in-java-base-api&quot;&gt;Most awkward/misleading method in Java Base API ?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2010-12-29T20:57:54.030" CommentCount="1" />
  <row Id="32389" PostTypeId="2" ParentId="32385" CreationDate="2010-07-15T07:37:22.160" Score="2" ViewCount="" Body="&lt;p&gt;depends on what kind of program you are working on.&#xA;Wikipedia has this article and it's quite extensive. (also check out the &quot;external links&quot; section at the end) &lt;a href=&quot;http://en.wikipedia.org/wiki/Comparison_of_Java_and_C_Sharp&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Comparison_of_Java_and_C_Sharp&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I read this article when I switched from C# to Java &lt;a href=&quot;http://www.25hoursaday.com/CsharpVsJava.html&quot; rel=&quot;nofollow&quot;&gt;http://www.25hoursaday.com/CsharpVsJava.html&lt;/a&gt; and it was very useful.&lt;/p&gt;&#xA;" OwnerUserId="8486" LastActivityDate="2010-12-29T20:57:54.030" />
  <row Id="32390" PostTypeId="2" ParentId="32385" CreationDate="2010-07-15T07:37:33.423" Score="11" ViewCount="" Body="&lt;p&gt;One obvious pitfall is comparing strings with C# style &lt;code&gt;string1 == string2&lt;/code&gt; (Java compares only references) instead of Java style &lt;code&gt;string1.equals(string2)&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another one is that &lt;code&gt;private&lt;/code&gt; is the default access modifier in C#, &lt;code&gt;package&lt;/code&gt; in Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also &lt;code&gt;ToString()&lt;/code&gt; methods are not automatically localized by current culture in Java.&lt;/p&gt;&#xA;" OwnerUserId="18528" LastActivityDate="2010-12-29T20:57:54.030" CommentCount="3" />
  <row Id="32391" PostTypeId="2" ParentId="32385" CreationDate="2010-07-15T07:37:45.200" Score="10" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;You get no LINQ&lt;/li&gt;&#xA;&lt;li&gt;You get no good - looking UI (no WPF)&lt;/li&gt;&#xA;&lt;li&gt;No properties&lt;/li&gt;&#xA;&lt;li&gt;You get dancing Egyptians&lt;/li&gt;&#xA;&lt;li&gt;You get APIs without examples and good documentation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Hm.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-29T20:57:54.030" CommentCount="9" />
  <row Id="32392" PostTypeId="2" ParentId="32385" CreationDate="2010-07-15T07:38:01.987" Score="2" ViewCount="" Body="&lt;p&gt;Beware the differences in default access modifiers. Also note that all non-static methods in Java are virtual (unless you mark them as final).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although it's somewhat out of date, I've found this to be a great reference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.25hoursaday.com/CsharpVsJava.html&quot; rel=&quot;nofollow&quot;&gt;Comparison of C# and Java, by Dare Obasanjo&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5631" LastActivityDate="2010-12-29T20:57:54.030" CommentCount="2" />
  <row Id="32393" PostTypeId="2" ParentId="32385" CreationDate="2010-07-15T07:44:00.730" Score="2" ViewCount="" Body="&lt;p&gt;I think this blog covers a lot of things that you are looking for.. &lt;a href=&quot;http://www.ericsink.com/entries/java_eclipse_2.html&quot; rel=&quot;nofollow&quot;&gt;http://www.ericsink.com/entries/java_eclipse_2.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9335" LastActivityDate="2010-12-29T20:57:54.030" />
  <row Id="32394" PostTypeId="2" ParentId="32385" CreationDate="2010-07-15T07:47:11.413" Score="3" ViewCount="" Body="&lt;p&gt;The biggest meta-pitfall is to &lt;strong&gt;assume&lt;/strong&gt; that the Java language and libraries behave the same as similar-looking stuff in C#.  Do the tutorials, read the javadocs, don't assume ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another meta-pitfall is to assume that the fact that you can do something in Java &lt;strong&gt;equally&lt;/strong&gt; as easily/nicely as you can/could in C#.  It is not true.  Java is a much older language, and mistakes were made ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And the last meta-pitfall is to &lt;strong&gt;think&lt;/strong&gt; that complaining about stuff being missing / different in Java on SO will get you universally sympathetic / supportive responses!&lt;/p&gt;&#xA;" OwnerUserId="172" LastActivityDate="2010-12-29T20:57:54.030" CommentCount="1" />
  <row Id="32395" PostTypeId="2" ParentId="32385" CreationDate="2010-07-15T07:53:50.000" Score="5" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Java enums are way more powerful/complicated,&#xA;they are in fact real classes instead&#xA;of named integers.&lt;/li&gt;&#xA;&lt;li&gt;inner classes in java are more&#xA;powerful (and they behave different)&lt;/li&gt;&#xA;&lt;li&gt;no delegates, only functional objects&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;the constructor chaining thingy has a&#xA;completely different syntax in both&#xA;languages, i tend to fail every time&#xA;i have to do that in c#&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Java has extends for subclassing and implements for interfaces, which is quite nice. C# instead relays on a naming convention which says that interfaces begin with an uppercase I in their name. I dont like that convention, since i can never be sure if someone else fails.&lt;/li&gt;&#xA;&lt;li&gt;java autoboxing can bite you in the&#xA;a**&lt;/li&gt;&#xA;&lt;li&gt;java type erasure does really make&#xA;things more complicated&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3627" LastActivityDate="2010-12-29T20:57:54.030" CommentCount="9" />
  <row Id="32396" PostTypeId="2" ParentId="32385" CreationDate="2010-07-15T10:14:46.307" Score="0" ViewCount="" Body="&lt;p&gt;In Java language the objective equivalents of primitive types such as int, char, are not &quot;value types&quot; (e.g. Integer is a reference type). In C# the System.Int32 is a structure.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-29T20:57:54.030" />
  <row Id="32397" PostTypeId="2" ParentId="32385" CreationDate="2010-07-15T10:20:36.717" Score="1" ViewCount="" Body="&lt;p&gt;I think &lt;a href=&quot;http://www.harding.edu/fmccown/java_csharp_comparison.html&quot; rel=&quot;nofollow&quot;&gt;this is a great article that summarizes the differences.&lt;/a&gt; &lt;/p&gt;&#xA;" LastActivityDate="2010-12-29T20:57:54.030" />
  <row Id="32398" PostTypeId="2" ParentId="1600" CreationDate="2010-12-29T21:00:05.897" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The fact your asking, lends me to think that your already tired.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is the early signs of burn out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For some its terminal for others its a cycle.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-29T21:00:05.897" CommunityOwnedDate="2010-12-29T21:00:05.897" />
  <row Id="32399" PostTypeId="2" ParentId="31733" CreationDate="2010-12-29T21:02:33.990" Score="21" ViewCount="" Body="&lt;p&gt;ask him to tell you about his thesis project; you won't have to say another word for two hours&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-29T21:02:33.990" CommentCount="1" />
  <row Id="32400" PostTypeId="2" ParentId="30171" CreationDate="2010-12-29T21:05:47.973" Score="0" ViewCount="" Body="&lt;p&gt;In Microsoft's words, the .Net Framework consists of the following parts:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* Common Language Runtime or CLR, which provides an abstraction layer over the operating system&#xA;&#xA;* Base Class Libraries, which are pre-built code for common low-level programming tasks&#xA;&#xA;* Development frameworks and technologies, which are reusable, customizable solutions for larger programming tasks&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Mono is a software platform designed to allow developers to easily create cross platform applications. Sponsored by Novell (http://www.novell.com/), Mono is an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It provides decent support for the CLR but it is lacking the breadth of &quot;Base Class Libraries&quot; and &quot;Development frameworks &amp;amp; technologies&quot;. That is especially true if one considers the enormous ecosystem of Java. The latter has achieved a level of maturity and is supported by a plethora of publications (Wikis, User Guides, Books, Articles, etc.). Lastly, there has been a number of new languages (e.g. Groovy, Scala) and frameworks (e.g. Grails, Spring Roo, GWT) that can make your team enormously productive in a wide area of functional domains.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only caveat would be, of course, if you must integrate Microsoft products (e.g. Microsoft Office) in your application (whether within the browser or a stand-alone app). In that case the .NET approach would give you a significant advantage but it would &lt;em&gt;not&lt;/em&gt; be easy to carry over these advantages to other platforms (e.g. Linux).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Java ecosystem is enormous and contains high-quality libraries for pretty much anything that you can think of. In fact, before you start writing your app., you should conduct a search across the Open Source projects that have been written in Java. It is very likely that what you are trying to build is very similar to something that already exists. So, depending on the license (look for LGPL, BSD, MIT, etc.), you might find something to get you started before you even break a sweat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In summary, if your primary goal is to achieve multi-platform support then Java is your best bet. &lt;/p&gt;&#xA;" OwnerUserId="11725" LastActivityDate="2010-12-29T21:05:47.973" />
  <row Id="32401" PostTypeId="2" ParentId="1600" CreationDate="2010-12-29T21:13:06.743" Score="1" ViewCount="" Body="&lt;p&gt;One thing I've become pretty good at over the years is being able to diagnose the difference between normal short term stress, and real burnout.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The tricky part is that it feels more or less the same in your moment-to-moment working life. I've had months of working on bad projects where I wanted to chuck it all in, but it turned out to just be the constant stress with that particular project, even though it &lt;em&gt;felt&lt;/em&gt; like burnout.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is the test that clinched it for me: try to work on something (professionally if possible, if not, then hobby will do) that's your Dream Programming Job. The technology, framework, application, etc - that you really think will make you happy as a programmer. If even &lt;em&gt;that&lt;/em&gt; doesn't inspire you, then there is a good chance that you're developing burnout. But if a lateral change of context &lt;em&gt;does&lt;/em&gt; do a lot to make you feel better, then maybe you just need a vacation and a change of scenery, or a different job.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2010-12-29T21:13:06.743" CommunityOwnedDate="2010-12-29T21:13:06.743" />
  <row Id="32402" PostTypeId="1" CreationDate="2010-12-29T21:15:46.447" Score="0" ViewCount="75" Body="&lt;p&gt;We have a client whom is looking to incorporate Oracle Portal into our next release.  I'm newer to this team, but the team is currently working with Apache, so whichever Portal Server we choose will likely incur a bit of a learning curve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any comparison (not marketing) out there which discusses the differences in the servers and/or the total cost of ownership on them?  With 5 developers, installing RAD becomes expensive, which I'd assume they'd wish to move onto us with the change to Oracle Portal and WebSphere.&lt;/p&gt;&#xA;" OwnerUserId="7353" LastActivityDate="2011-01-04T13:52:22.493" ClosedDate="2011-01-07T15:52:19.693" Title="Portal Server comparisons / TCoO" Tags="&lt;tools&gt;&lt;comparison&gt;&lt;cost&gt;" CommentCount="1" />
  <row Id="32403" PostTypeId="2" ParentId="21635" CreationDate="2010-12-29T21:32:41.187" Score="3" ViewCount="" Body="&lt;p&gt;I have related programming to my real life on many occasions before I found this question here. However I am writing not only about how programming has benefited and enriched my life but rather how &lt;em&gt;being a programmer/developer&lt;/em&gt; has. Feeling great to put some of my points :-   &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Getting over my bad-qualities - reinventing myself -&lt;/strong&gt; I had always been a very unmindful, unorganised and forgetful guy before I took up programming as a career. So, I had no other way in the beginning but to strictly follow maintaining task lists, in case I forgot something important. At one point, I would have one tasklist on my cellphone (things I would remember while lying on my bed), one on a text document on my office desktop, one on the google personalised start page's &quot;sticky note&quot; section and so on. Like most developers, I needed to maintain long task schedules and subsequently work on queued tasks. But, the good thing I noticed here was that, at the end of the day, I was able to do all my tasks, as per the priority and I was not forgetting important tasks. Then I realised that I actually remember those things well which are worth remembering and I am very organised in things where I am deeply involved and interested. I did not expect all this in the beginning! So, I have left worrying about those bad qualities and finally felt better.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Applying thoughtful, well-analysed solutions to real life problems -&lt;/strong&gt; The need, or rather the passion to find, analyze and apply the best solution wherever possible (most would agree it is not always possible due to time constraints etc.), for obvious reasons, has motivated me to apply the same attitude to real life problems. There came a time when I used to work hard, keeping awake late at night, and I began asking myself, why the hell I can't give the same dedication to other passions and interests. Actually, this, as such is not an affect of the programming profession, and rather is my attachment towards it. It is just that programming has been that attractive to me. For somebody else, this could have been a different job/interest.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Breaking down bigger problems/tasks -&lt;/strong&gt; The way we break down complex functionalities into smaller parts/modules/milestones etc. adding features step by step, and gradually see all those smaller units come together to create the entire large picture, as the development phase progresses, has helped me a lot in breaking down big, difficult-looking real life problems and has made me realize that a big task which looks difficult in the beginning can actually get easier if we carefully break it down into smaller steps/parts.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Improved communication skills-&lt;/strong&gt; During my 2 and a half years career so far, I have often been into long deep discussions with colleagues while debugging problem, requirements analysis etc. I have realized how much it improves your chances of getting a solution from others, and that too earlier, if you can communicate properly. A person having a solution may not be able to help if he/she does not understand your problem. This has greatly improved my ability to express difficult things and polished my communication skills further and I feel I have become an expert in &quot;making a layman understand&quot;. I think all of us know how important it is to properly communicate your views/thoughts in every aspect of life. Having handled these difficult situations, now I feel communicating is so easy.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Time saved in solving a problem by finding actual cases of a problem-&lt;/strong&gt; Debugging for bugs in complex, difficult-to-recreate cases and ultimately being able to pin-point them most of the times I have realised that in real life too, it ultimately takes lesser time overall if we pin-point the problems and then start looking for the solutions rather than starting to solve blindly. e.g. consider the time taken in fixing a form submission issue in these cases - &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Case 1 -&lt;/em&gt; if we know that &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;the problem happens in IE 7 and below but not in other browsers&lt;/li&gt;&#xA;&lt;li&gt;the problem happens when user , then  and submits the form.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Case 2 -&lt;/em&gt; &quot;sometimes the form submits and sometimes does not&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Improved my ability to learn new things -&lt;/strong&gt; Working on functionalities involving various fields/sectors (banking, e-learning for example), the need to understand the requirements fast, learning new things from free online documents, solving problems by searching on google (and nowadays on stackoverflow directly) -&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;has greatly improved my ability to quickly learn new things.&lt;/li&gt;&#xA;&lt;li&gt;makes me feel I know something about everything.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I often argue that we no more need to take up formal classroom lessons to learn things. (This may not be universally true, I know, but I would love to prove that correct in my case). Nowadays I am learning new things with more confidence. e.g. I have lately realized that I can sing pretty well and I am improving these days faster than before. Nowadays, I am also planning to step into my own business. However, it has been difficult convincing my father regarding the plan, who says it is too much of risking (because of the large capital involved, not enough money with myself, lack of experience) but I am sure I will succeed soon after completing my market analysis. You may look at a question regarding the same here - &lt;a href=&quot;http://answers.onstartups.com/questions/17915/idea-for-a-start-up-computer-games-parlour&quot;&gt;http://answers.onstartups.com/questions/17915/idea-for-a-start-up-computer-games-parlour&lt;/a&gt; and help me.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Realizing that &quot;Hardcoding&quot; is a bad practice in real life too -&lt;/strong&gt; Programming involves modeling the real world and it is not just a one way thing. I have looked carefully into human behavior and identified things, something like we identify patterns in designs problems and apply known solutions in programming. What do I mean by hardcoding in real life? Just to give an example, you see people telling &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I am a strictly this kind of guy...&lt;/li&gt;&#xA;&lt;li&gt;I don't like people belonging to this country/religion&lt;/li&gt;&#xA;&lt;li&gt;I can't tolerate that...&lt;/li&gt;&#xA;&lt;li&gt;This quality in a girl is a complete turn off for me... &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;well of course, we should not tolerate impossible things, but most of the times we hardcode lots of things in our mind, without even properly exploring those. And the result is we miss out so many other things in our life and never get the chance again. Take for example a programmer who thinks he is born to program and do nothing else. Concluding that we are not good at some other thing may not always be correct before having a practical experience on it. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4443" LastEditorUserId="4443" LastEditorDisplayName="" LastEditDate="2011-04-27T16:15:11.720" LastActivityDate="2011-04-27T16:15:11.720" />
  <row Id="32404" PostTypeId="2" ParentId="31733" CreationDate="2010-12-29T21:34:56.110" Score="4" ViewCount="" Body="&lt;p&gt;Just because he has a PhD it doesn't mean you can't teach him anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On several occasions I've found that people with PhD's think they already know everything and don't bother for years to broaden their knowledge spectrum, they carry on specializing to the maximum and miss other real-world (as in other areas of computer science) stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps advances in hardware could be a topic of interest: the upcoming APUs, quantum computing... hell, even cloud computing. Just talk, and even ask, about what you are interested and let the conversation flow naturally. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Don't feel threatened and try to impress, use this as an opportunity to learn and/or have an interesting debate or two, otherwise you will actually look stupid, for real.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-29T21:34:56.110" CommentCount="1" />
  <row Id="32405" PostTypeId="1" CreationDate="2010-12-29T21:55:19.513" Score="2" ViewCount="297" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/2757/how-many-monitors-do-you-use-why-how-they-are-used&quot;&gt;How many monitors do you use? Why? How they are used?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;What is most convenient for programming: two 19&quot;-20&quot; monitors set up vertically or one big 27&quot;(or so) monitor?&lt;br&gt;&#xA;What should one buy and why? &lt;/p&gt;&#xA;" OwnerUserId="11970" LastActivityDate="2010-12-29T23:14:22.100" ClosedDate="2010-12-29T22:38:11.240" Title="One big monitor or two smaller ones?" Tags="&lt;multiple-monitors&gt;" AnswerCount="7" CommentCount="2" />
  <row Id="32406" PostTypeId="2" ParentId="32405" CreationDate="2010-12-29T22:01:21.333" Score="2" ViewCount="" Body="&lt;p&gt;I prefer two smaller monitors. Easier to sometimes separate distinct applications into their own screen vs having to constantly move around on one large one.&lt;/p&gt;&#xA;" OwnerUserId="4799" LastActivityDate="2010-12-29T22:01:21.333" />
  <row Id="32407" PostTypeId="2" ParentId="32405" CreationDate="2010-12-29T22:01:37.967" Score="2" ViewCount="" Body="&lt;p&gt;I use two 24&quot;, one landscaped &amp;amp; one portrait. I keep the IDE on the landscaped and then use portrait for browser, email, test VMs, misc utilities, etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used this configuration w/ two 22&quot;'s as well. IMHO, you will get more pixel real estate.  (1920x1280) x 2 or (1600x1200) x 2 instead of 1920x1200 x 1 (perhaps a little higher).&lt;/p&gt;&#xA;" OwnerUserId="4752" LastActivityDate="2010-12-29T22:01:37.967" CommentCount="2" />
  <row Id="32408" PostTypeId="2" ParentId="31641" CreationDate="2010-12-29T22:01:45.220" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Delivering more than expected is always a good commercial strategy, if we can name it like that&quot;.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Define exactly what you man by more than expected. Do you mean more features outside of the specified requirements or something like really high quality code with more than adequate documentation. You have to be careful here if you mean features outside of the requirements because that could easily backfire on you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I did experience one project where this actually work out well for us. &#xA;We were contracted as consultants and as part of our design we build in a fairly elaborate test bed to validate the solution. We would have done this anyway to make our lives easier, but the customer was blown away and has thanked us on numerous occasions since. Apparently, we inadvertently made his life easier by making it much less painful to validate changes and extensions to solution we provided.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, I believe time crunches most likely happen when a none-technical person is involved or solely responsible for project planning. The potential for this scenario increases as the development team and or company gets bigger. If you want to avoid this try to find a job at small company. Chance are the development team will have most of the say in major project decision.      &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2010-12-29T22:01:45.220" CommentCount="1" />
  <row Id="32409" PostTypeId="2" ParentId="32405" CreationDate="2010-12-29T22:03:24.673" Score="1" ViewCount="" Body="&lt;p&gt;Personally I find a 19&quot; monitor set vertically to be too narrow to view my code without word wrap on, and I &lt;strong&gt;hate&lt;/strong&gt; coding with word wrap on.  The only other option is to have the windows stretch across both monitors, which isn't good either due to the spacing caused by the borders of the monitors.  So I would much prefer one big monitor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have space, I might opt for the two monitors set up horizontally, however.  It helps to have the IDE open in one monitor and a design or other reference open in the other window, and that sort of thing.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastActivityDate="2010-12-29T22:03:24.673" />
  <row Id="32410" PostTypeId="2" ParentId="32405" CreationDate="2010-12-29T22:04:45.637" Score="-1" ViewCount="" Body="&lt;p&gt;For me - one big 4:3 LCD. Panoramic monitors have too little vertical space, 17&quot; 4:3 has same vert space as 22&quot; panorama, and a huge horizontal space that you'll not use anyway.&lt;/p&gt;&#xA;" OwnerUserId="11827" LastActivityDate="2010-12-29T22:04:45.637" />
  <row Id="32411" PostTypeId="2" ParentId="31736" CreationDate="2010-12-29T22:06:36.587" Score="2" ViewCount="" Body="&lt;p&gt;The compiler can't find all the mistakes so there's no point in pretending it can.  All it can find are the syntax errors and typos.  It's good enough at that that I let it do that part of the job (although these days the environment catches 99% of those itself before you ever hit compile) but I perfectly well know that's not all the errors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only time I rely on that sort of information to tell me what to write is when I get things like it telling me it can't automatically convert a double into a float--if where you are sending the data expects floats (and since what I'm currently doing is playing with the XNA library that does exactly this) and the source returns doubles (as is the case for the C# math library) then you simply have to convert.&lt;/p&gt;&#xA;" OwnerUserId="5555" LastActivityDate="2010-12-29T22:06:36.587" />
  <row Id="32413" PostTypeId="2" ParentId="31733" CreationDate="2010-12-29T22:10:57.173" Score="1" ViewCount="" Body="&lt;p&gt;Why not try and find some other common ground that's non-technical?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Books&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Movies&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sports&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Gardening&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm assuming you have some hobbies\interests outside of work.  I can tell you that when I'm out socially I really dislike when the only conversation is professional whether it be mine, theirs, or other people in the group. &lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-12-29T22:10:57.173" />
  <row Id="32414" PostTypeId="2" ParentId="32405" CreationDate="2010-12-29T22:16:01.363" Score="1" ViewCount="" Body="&lt;p&gt;Personally, I have a large 24' widescreen as main monitor. I also have two smaller 20' on either side configured in portrait mode. I didn't think that I would use 3 monitors when I first got them, but they all get used pretty regularly. In your case I would go with the two smaller ones, mostly because you will end up with more screen than just the single big. Plus, you have the flexibility to rotate one or both of them to portrait mode, which is superior for web browsing and looking at documents. I am not sure that I would flip both of the vertically. I like to use the standard setting for my coding window because it gives me a better idea of how my code looks to other people. I prefer to write functions that don't require you to scroll down to see the whole thing. Coding on a vertical screen makes it more difficult to know where the typical upper and lower boundaries are.&lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2010-12-29T22:29:38.867" LastActivityDate="2010-12-29T22:29:38.867" />
  <row Id="32415" PostTypeId="2" ParentId="32405" CreationDate="2010-12-29T22:17:54.707" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Always 2 monitors..&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This allows me to use each monitor for 1 specific task. Usually 1 for IDE and 2nd for Database or GUI (Web/Desktop App)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally I would like to have 3 monitors:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1 for IDE&#xA;1 for App&#xA;1 for Programmers.StackExchange :)&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-29T22:17:54.707" />
  <row Id="32417" PostTypeId="2" ParentId="32405" CreationDate="2010-12-29T22:24:15.487" Score="1" ViewCount="" Body="&lt;p&gt;Seriously, get two monitors, it will change how you use your computer... its like, the difference in comfort between using a straight jacket and a sweatshirt. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't need to obsess on finding a purpose for each monitor, it will fall in naturally and having 2+ monitors will make you more efficient by default, for example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Side by side browsing&lt;/li&gt;&#xA;&lt;li&gt;1 for IDE 1 for API&lt;/li&gt;&#xA;&lt;li&gt;1 for reading, 1 for IM&lt;/li&gt;&#xA;&lt;li&gt;1 for the IDE main window, 1 for an undocked IDE window (e.g. netbeans can do this)&lt;/li&gt;&#xA;&lt;li&gt;1 for gaming, 1 for RSS + email + desktop clock gadget&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;All of these I alternate between, and those are just patterns that have emmerged. IMO, not even a 27&quot; monitor can surpass the experience of using two 19&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two or three 19&quot; work great, and I'm in my way to upgrade to three 22&quot; LED LCDs... maybe four :D. To get more than two you can use a single ATI videocard with eyefinity and displayport adaptors.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-29T23:14:22.100" LastActivityDate="2010-12-29T23:14:22.100" CommentCount="1" />
  <row Id="32418" PostTypeId="1" AcceptedAnswerId="32423" CreationDate="2010-12-29T22:31:15.460" Score="15" ViewCount="328" Body="&lt;p&gt;When working in a team of developers, where everyone is making changes to local tables, and development tables, how do you keep all the changes in sync?  A central log file where everyone keeps their sql changes?  A wiki page to track alter table statements, individual .sql files that the devs can run to bring their local db's to the latest version?  I've used some of these solutions, and I'm tyring to get a good solid solution together that works, so I'd appreciate your ideas.  &lt;/p&gt;&#xA;" OwnerUserId="11984" LastActivityDate="2010-12-29T23:11:05.653" Title="How do you version/track changes to SQL tables?" Tags="&lt;management&gt;&lt;version-control&gt;&lt;sql&gt;" AnswerCount="7" FavoriteCount="6" />
  <row Id="32420" PostTypeId="2" ParentId="32418" CreationDate="2010-12-29T22:33:35.347" Score="4" ViewCount="" Body="&lt;p&gt;I don't do it myself, but some developers maintain a collection of SQL scripts under source control which, when executed, can recreate the database tables for testing purposes, and build up an empty database for production purposes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same technique can be used to version the database at the customer site, when fields or tables need to be added or removed, or data transformations need to take place.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-29T22:47:54.307" LastActivityDate="2010-12-29T22:47:54.307" />
  <row Id="32421" PostTypeId="1" AcceptedAnswerId="32458" CreationDate="2010-12-29T22:41:21.083" Score="1" ViewCount="107" Body="&lt;p&gt;I have been a software engineer / graphic designer for a few years and have recently been considering furthering my education in the field. (It was actually a very generous Christmas present)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would primarily be interested in something like Human Computer Interaction or a similar &quot;creative technology&quot; that involves heavy UI/UX Design, prototyping or Information Architecture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyways - I still plan on working full-time and was looking into part-time distance programs and was wondering if anyone had some experience with pursuing a similar degree (either from a distance or in-person) and could share their experiences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="11986" LastActivityDate="2010-12-29T23:34:06.087" Title="Distance Education in Computer Science - HCI" Tags="&lt;design&gt;&lt;education&gt;&lt;ux&gt;" AnswerCount="2" />
  <row Id="32422" PostTypeId="2" ParentId="32418" CreationDate="2010-12-29T22:42:59.550" Score="1" ViewCount="" Body="&lt;p&gt;The approach that I use is to provide one table for parameters.  This table will have one name/value pair for the version that the database is on.  This gives me two benefits: I have a way of verifying a database only fix has been applied through the application, and I can use that value for my SQL scripts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The SQL script will create new tables, alter columns, and whatever work is needed on the database to promote the script from the version before.  Ideally I would also have a rollback script, but most of the time I don't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, this whole approach has been automated as part of Ruby on Rails, complete with the rollback scripts.  I like the idea of that, but not all frameworks do that.  When I'm not using Ruby on Rails, I use the approach outlined above.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-29T22:42:59.550" />
  <row Id="32423" PostTypeId="2" ParentId="32418" CreationDate="2010-12-29T22:43:20.347" Score="4" ViewCount="" Body="&lt;p&gt;I use a &lt;a href=&quot;http://code.google.com/p/migratordotnet/&quot; rel=&quot;nofollow&quot;&gt;code-based Database Migration tool&lt;/a&gt; and keep the migration code in source control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By using timestamps as version numbers, any number of devs are mostly free to add migrations as they please and we can run the Migration tool against any copy of our database confidently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used to use SQL Scripts under version control, but find the code-based approach much, much easier to work with due to them all being in one logical &quot;spot&quot; and being able to execute all needed scripts with a single command.&lt;/p&gt;&#xA;" OwnerUserId="6735" LastActivityDate="2010-12-29T22:43:20.347" />
  <row Id="32425" PostTypeId="1" CreationDate="2010-12-29T21:07:45.410" Score="115" ViewCount="3986" Body="&lt;p&gt;Please help! I've read lots of programming books for various languages, Java, Python, C, etc. I understand and know all of the basics of the languages and I understand algorithms and data structures. (Equivilant of say 2 years of CompSci classes)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BUT, I still can't figure how to write a program that does anything useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of the programming books show you how to write the language, but NOT how to use it! The programming examples are all very basic like build a card catalog for a library or a simple game or use algorithms etc... They dont't show you how to develop complex programs that actually do anything useful!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've looked a open-source programs on sourceforge, but they don't make much sense to me. There are hundreds of files in each program &amp;amp; thousands of lines of code. But how do I learn how to do this? There's nothing in any book I can buy on Amazon that will give me the tools to write any of these programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you go from reading Intro to Java or Programming Python, or C Programming Language, etc.. to actually being able to say, I have an idea for X Program.. this is how I go about developing it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It seems like there is so much more involved in writing a program than you can learn in a book or from a class. I feel like there is someth&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can anyone put me on the right track?&lt;/p&gt;&#xA;" LastEditorUserId="2471" LastEditorDisplayName="" LastEditDate="2011-01-05T13:09:41.017" LastActivityDate="2011-05-23T21:19:27.920" CommunityOwnedDate="2010-12-30T14:08:25.447" Title="I still can't figure out how to program!" Tags="&lt;learning&gt;&lt;programming&gt;&lt;basic-skills&gt;" AnswerCount="47" CommentCount="11" FavoriteCount="51" />
  <row Id="32426" PostTypeId="2" ParentId="32425" CreationDate="2010-12-29T21:12:10.863" Score="2" ViewCount="" Body="&lt;p&gt;Try an open source project, see if you can fit in. Start by downloading the source, and see if you can pick up some tickets&lt;/p&gt;&#xA;" OwnerUserId="11068" LastActivityDate="2010-12-29T22:48:02.910" CommunityOwnedDate="2010-12-30T14:08:25.447" CommentCount="8" />
  <row Id="32427" PostTypeId="2" ParentId="32425" CreationDate="2010-12-29T21:13:18.750" Score="87" ViewCount="" Body="&lt;p&gt;Building more complex programs comes with experience.  When I first programmed I thought I was doing well if it was over 25 lines long (and I had to use the scroll bar)  Now I write hundreds of lines a day for years on the same project application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might find this page interesting &quot;Teach Yourself Programming in Ten Years&quot; &lt;a href=&quot;http://norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;http://norvig.com/21-days.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW: It is very hard to start a program.  A writer might call it &quot;writers block&quot;.  Instead I suggest you start writing code and improve it.  Don't be afraid to delete large sections which don't do what you need.  Start again, this time you will write with a better idea of what you are doing. Start again and you will find you didn't need half the stuff you wrote last time.  When an author writes a story, it takes a long time, a lot of writing and rewriting etc. lots of reviews and feedback and its only finished when it has to be published (released)&lt;/p&gt;&#xA;" OwnerUserId="11636" LastActivityDate="2010-12-29T22:48:02.910" CommunityOwnedDate="2010-12-30T14:08:25.447" CommentCount="8" />
  <row Id="32428" PostTypeId="2" ParentId="32425" CreationDate="2010-12-29T21:32:10.277" Score="27" ViewCount="" Body="&lt;p&gt;Even the biggest program starts with an idea and is written one line at a time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best (perhaps the only) way to learn how to write real-world programs is to start doing it. When you run into problems, you search the web or ask here for solutions to those problems. Eventually, you'll gain experience and have to ask less often.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there are some things that you should be aware of right from the start:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Hardly any big application is written completely from scratch these days. You can get much more done in a much shorter time if you use existing high-quality libraries and frameworks. Getting started with these often feels quite frustrating and more work than doing it yourself, but that's almost never really true.&lt;/li&gt;&#xA;&lt;li&gt;Thinking carefully about how you structure your program (how to design it) is very important once your programs get bigger. Spend some time on that, and read some books about design (I'd especially recommend &quot;Clean Code&quot;) and software engineering as well as about technical basics.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11982" LastActivityDate="2010-12-29T22:48:02.910" CommunityOwnedDate="2010-12-30T14:08:25.447" CommentCount="3" />
  <row Id="32429" PostTypeId="2" ParentId="32425" CreationDate="2010-12-29T21:37:52.560" Score="1" ViewCount="" Body="&lt;p&gt;You don't need to have a great idea to start programming something.&#xA;I'd start from the easy part. Like, a program that you already use it. Try to make something that you already know how it works. Faces your problems, so you'll learn it faster.&#xA;Once you have more experience, you'll start to have some good ideas of programs to make your life easier while programming, or just a good program to do something you never thought about it before.&#xA;I've been programming Java for almost a year, and other languages for a couple of years. It took time to start doing what I really wanted to do. I just started doing my own stuff. Thanks to StackOverflow. I didn't know about it before.&lt;/p&gt;&#xA;" OwnerUserId="11640" LastActivityDate="2010-12-29T22:48:02.910" CommunityOwnedDate="2010-12-30T14:08:25.447" />
  <row Id="32430" PostTypeId="2" ParentId="32425" CreationDate="2010-12-29T21:40:36.647" Score="64" ViewCount="" Body="&lt;p&gt;I was always overwhelmed by very large projects also, like the ones you find on SourceForge or GitHub. I wondered how anyone, or even a team, could understand what was happening across 10's or 100's of files, with thousands and thousands of lines of code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No one does. At least initially.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Projects are organic things. What starts off as a really simple idea, can quickly expand into a massive piece of work. This is, I think, the main reason for iterative development instead of the classic waterfall approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think of building a car. While it looks fairly simple from the outside, delving even a small way in you discover that there are a huge number of considerations, trade-offs, and innocent cases that need to be handled.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the case of a semi-large project, it often starts out small. &quot;I want to build a cache server&quot;. So you spend a few days hacking away, and arrive at something that works, but could be improved dramatically. So you add the concept of threading.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you run into concurrency issues due to that threading. So you fix by changing to concurrent data structures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now the the process has slowed down. So you change the concurrent data structures to regular ones, but provide locking mechanisms for synchronization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everything seems to be running fine, except users start to complain that operations are not atomic, and data is being corrupted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you add in some classic atomic operations, like increment and save. This works, and your users are happy. But someone opens a ticket asking if it's possible to do list operations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you spend a week or two building that feature in. At about this time, a friend decides to help you. You work on it together, complete, and release it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two tickets open. There's a bug in the list processing, and there are some rare cases that are deadlocking. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your friend works on the list processing bug, while you tackle deadlocking. You realize that a fairly significant re-write to atomic operations needs to occur.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;... and so it goes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This seems fairly typical of how a project grows. 10 or so files have just grown to 20 in a couple of weeks. New features are added that weren't apart of the original plan. Convoluted bug-fixes are added that grow the code unnaturally large.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't become overwhelmed. If you have an idea, implement pieces of functionality. If it's worth pursuing after that, add bit by bit. Let your project grow naturally.&lt;/p&gt;&#xA;" OwnerUserId="5802" LastActivityDate="2010-12-29T22:48:02.910" CommunityOwnedDate="2010-12-30T14:08:25.447" CommentCount="10" />
  <row Id="32431" PostTypeId="2" ParentId="32425" CreationDate="2010-12-29T21:41:17.907" Score="4" ViewCount="" Body="&lt;p&gt;Write a 200 line script. Then start improving it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Featuritis will have you out to 100 source files and several hundred KLOC in no time :)&lt;/p&gt;&#xA;" OwnerUserId="8477" LastActivityDate="2010-12-29T22:48:02.910" CommunityOwnedDate="2010-12-30T14:08:25.447" />
  <row Id="32432" PostTypeId="2" ParentId="32425" CreationDate="2010-12-29T21:42:36.860" Score="3" ViewCount="" Body="&lt;p&gt;Ok let's start with your idea for program X that does something useful and let's break it down:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Use paper, mind-mapping, or diagramming software to layout the logical flow / flow(s) of the program.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Since you are just starting out pick ONE of those items (preferably near the beginning) and break it down even further.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Write your code for that first and use it to build upon&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Does Program X need to open a file, manipulate it, and create an output file?  See if you can open and echo the file as your first step.  Do you want a nice user interface?  Build one that can run your file echo program, etc.   You'll not only be building code you can use in your complex program step by step, but you'll also be building your language knowledge as you have to search and lookup information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As the saying goes - Gnome wasn't built in a day :-)&lt;/p&gt;&#xA;" OwnerUserId="12063" LastActivityDate="2010-12-29T22:48:02.910" CommunityOwnedDate="2010-12-30T14:08:25.447" CommentCount="1" />
  <row Id="32433" PostTypeId="2" ParentId="32425" CreationDate="2010-12-29T21:47:05.187" Score="5" ViewCount="" Body="&lt;p&gt;Just like driving or cooking, programming is something you learn to do by doing. Practice is irreplaceable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the textbook examples are already too basic for you, that's great! Time to move for something more complex - and you already can figure out some challenging exercises for yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, if you have a specific idea in mind, break it to bits. Solve a small subset of the problem first. Then expand. When integrating the new code to your existing code becomes hard, then you redesign everything.&lt;/p&gt;&#xA;" OwnerUserId="15653" LastEditorUserId="15653" LastEditorDisplayName="" LastEditDate="2011-05-23T21:19:27.920" LastActivityDate="2011-05-23T21:19:27.920" CommunityOwnedDate="2010-12-30T14:08:25.447" />
  <row Id="32434" PostTypeId="2" ParentId="32425" CreationDate="2010-12-29T21:48:09.267" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;They dont't show you how to develop complex programs that actually do anything useful!&quot;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Without a definition of &quot;useful&quot; there's really not much we can do to get you on the &quot;right&quot; track.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We don't know how you're failing, or what's going wrong.  We can't tell what track you're on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Somehow, you have a notion in your head that you're not communicating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software -- programming -- is all about getting a notion out of your head into some language (Python, Java, English, whatever).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One important step in programming (and asking questions) is to define your terms.  What do you mean by &quot;do anything useful&quot;?  Be very clear, very complete and very precise.  &lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2010-12-29T22:48:02.910" CommunityOwnedDate="2010-12-30T14:08:25.447" CommentCount="1" />
  <row Id="32435" PostTypeId="2" ParentId="32425" CreationDate="2010-12-29T21:58:39.627" Score="14" ViewCount="" Body="&lt;p&gt;What you're talking about is more software engineering than programming. It's a little bit architecture, a little bit &quot;best practices&quot; and &quot;design patterns,&quot; a little bit working with others. While there are books that can help, most of it comes from experience. Nobody &lt;em&gt;starts out&lt;/em&gt; writing, say, Microsoft Word.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about a large, &quot;real&quot; program that you would like to write. Now think about the various pieces you need to build to make it work the way you want. For example, in a modern first-person game you will need a 3D graphics engine, non-player-character AI, a music/sound module, a physics engine, and a top-level module that enforces the rules of the game (knows the &quot;map&quot;, how the various characters interact, etc.). And then there is the artwork and character design and the music, none of which are code but which are necessary for the game to be complete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now: Which of these will you build yourself and which will you get elsewhere? Most large software projects are not programmed from scratch. Perhaps you will use an off-the-shelf 3D engine and music/sound module and program only the things that make your game unique. OK, so you have to figure out what third-party modules you're going to use, which will involve factors like cost, what languages they work with, what features they have, how their API is designed (i.e., how complete it is, how well it fits with your personal programming style, etc.). Maybe you will write &quot;proofs of concept&quot; or test programs using one or two candidates for the various third-party modules to make sure they will do all the things you need and are easy for you to use. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, even the code you want to write yourself may be too big a job for you alone to complete in the time frame you have in mind. How many other programmers do you need working on the project? How will you split up the job? How will the various modules be designed so they all fit together even though they were written by different people? How will you all work on the same source code without wiping out each others' changes (answer: version control, which is extremely useful when you are working solo but indispensable when working with others).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have figured out what modules you want to write in-house, you perform the same process. Figure out the pieces of each module, how they should fit together, and which you will write yourself and which you will get elsewhere. Continue breaking things down until each piece is small enough for you to hold in your mind, for you to say, &quot;yeah, I could write that!&quot; And then do so. As you do, you will encounter unforeseen obstacles in how the various pieces of your program fit together. These will be frustrating, but they are opportunities for you to learn more about your craft, and should be viewed that way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Initially, you will only be able to hold very small pieces of your program -- say, individual functions -- in your mind, and so you will have to break things down a lot before you start coding. As you gain experience, you will think &lt;em&gt;in&lt;/em&gt; functions rather than needing to think &lt;em&gt;about&lt;/em&gt; functions and start thinking &lt;em&gt;about&lt;/em&gt; objects. And then you'll be thinking &lt;em&gt;in&lt;/em&gt; objects and thinking &lt;em&gt;about&lt;/em&gt; larger modules. Finally, you will be thinking &lt;em&gt;in&lt;/em&gt; modules and thinking &lt;em&gt;about&lt;/em&gt; whole, large, real programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then you will discover that you still have a lot to learn... but so it goes. If, as a programmer, you ever stop learning, you are obsolete and will be replaced with a newer model.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, don't be afraid, and don't worry if this sounds... awful or impossible and you don't really want to be a programmer after all. It's not for everyone. I love music and desserts, and I can play keys a little and cook some dishes, but I am not willing to put in the time it takes to become a great musician or a master chef.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it turns out you don't want to be a programmer writing large, real, desktop apps, there are other types of programming jobs. You could become an embedded programmer, for example. There are definite, interesting challenges involved in writing embedded programs, and you are doing useful work, but typically the programs are rather smaller than desktop apps. Or you could write Web apps. On the Web, it's easy to glue little bits of functionality together, so you could write (e.g.) a Web comment system and it would be useful even if it's not a whole Web application. It is easy to incrementally improve stuff on the Web, too, so you can start with (say) a basic Web mail client and, over time, evolve it into something like GMail. (But don't do that, because then you'll be competing with GMail.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't want to be a programmer at all, but still want to work with computers, possibly you could go into IT or some other technical field.  In these cases, knowing as much programming as you already do is very useful, because your peers may not even have that much. Or, you know, become a musician if that appeals, because (like most fields) it involves computers today. Write little programs that manipulate audio or MIDI files in various clever ways, thus making you a better musician.  You will find that whatever programming skills you have can be applied in a lot of fields to make you better at your job.&lt;/p&gt;&#xA;" OwnerUserId="3566" LastActivityDate="2010-12-29T22:48:02.910" CommunityOwnedDate="2010-12-30T14:08:25.447" CommentCount="7" />
  <row Id="32436" PostTypeId="2" ParentId="32425" CreationDate="2010-12-29T22:15:16.233" Score="2" ViewCount="" Body="&lt;p&gt;(answered above in the comments already.  It was suggested to submit this as an answer after the question was re-opened.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You start with a problem - something you want to solve - no matter how complex you think it is. Then you take this problem and you write it down and start to break it into smaller problems. You then break down those smaller problems, etc. until you have something primitive that you already know how to solve or can do so with some effort. You start coding each of these pieces and organize them into different functions or different classes, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you work on the next sub-problem. As you are working on each problem you can write small test cases and actually see you progress coming into fruition. There will always be challenges along the way, but at no point will see it as something too colossal to even approach (what are seem to be dealing with now). This is true for programming and many of life's challenges. They key is to break it up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for what to do - the idea. You can try to invent something new, but you can also take something that you might have a passion for and already exists, but just make it better or even just different. I'm currently writing a guitar tuner app for Android in my spare time. I know there already exist many other guitar tuner apps, but I thought this would be a fun and challenging project so I took it on. At first it seemed almost impossible, but after I broke the problem into smaller steps it's actually coming together nicely. Divide and conquer and be persistent with your goals.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-29T22:48:02.910" CommunityOwnedDate="2010-12-30T14:08:25.447" />
  <row Id="32437" PostTypeId="2" ParentId="32425" CreationDate="2010-12-29T22:19:05.593" Score="7" ViewCount="" Body="&lt;p&gt;Start with computer games, like everyone else did. A good game is both a programming and design challenge, needs careful thinking about internal structure, and it uses system libraries in ways that teach a lot, but don't tend break stuff and don't require a &quot;good reason with good result&quot; like actual &quot;useful&quot; software does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;General rule is that after writing enough stuff, some kind of enlightenment will unavoidably happen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A nice point to start (if you feel like C) is &lt;a href=&quot;http://gamedev.net/&quot; rel=&quot;nofollow&quot;&gt;http://gamedev.net/&lt;/a&gt;, especially &lt;a href=&quot;http://nehe.gamedev.net/&quot; rel=&quot;nofollow&quot;&gt;http://nehe.gamedev.net/&lt;/a&gt; . There are also many other good points to start :D&lt;/p&gt;&#xA;" LastActivityDate="2010-12-29T22:48:02.910" CommunityOwnedDate="2010-12-30T14:08:25.447" CommentCount="9" />
  <row Id="32438" PostTypeId="2" ParentId="32425" CreationDate="2010-12-29T22:21:27.250" Score="0" ViewCount="" Body="&lt;p&gt;The primary difference between sucessful large applications and academic exercises is typically that the former are &lt;em&gt;designed&lt;/em&gt; against a set of &lt;em&gt;requirements&lt;/em&gt;.  If you simply start with a vague idea in your head and start writing code, you are unlikley to get far.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So &lt;em&gt;programming ability&lt;/em&gt; is probably not the issue here; what you really need to get you further is &lt;em&gt;software engineering&lt;/em&gt; skills; i.e. the ability to capture and specifiy project requirements, and then to design a software architecture and detailed design to meet those requirements - this is the &lt;em&gt;road map&lt;/em&gt; that will keep you on the right track throughout development.  That is not to say the the requirements and design need be complete before you start to code (the waterfall method), incremental developmennt is a more flexible approach; but you should have some sort of framework and idea of how the application elements will interact and communicate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Furthermore, a requirements specification and design is more-or-less essential if the project development is to be implemented by more than a single developer (another common feature of large projects).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another feature of sucessful large scale applications is a strong motivation to complete. What would motivate you to do that I cannot say but in my case I am paid for it, I seldom write software for mere fun any more, but getting paid to do what you might otherwise do for free in any case is a great way to make a living.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-29T22:48:02.910" CommunityOwnedDate="2010-12-30T14:08:25.447" />
  <row Id="32439" PostTypeId="2" ParentId="32425" CreationDate="2010-12-29T22:26:49.863" Score="1" ViewCount="" Body="&lt;p&gt;When I want to learn a new language, I usually try to implement some fractal graph. That way you'll have immediate feedback on if it works and it's very rewarding. And there's lots of ways you can improve a fractal. The naive implementation of mandelbrot is slow as hell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's no very useful, but you learn a lot and it's beautiful to look at.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-29T22:48:02.910" CommunityOwnedDate="2010-12-30T14:08:25.447" CommentCount="1" />
  <row Id="32441" PostTypeId="2" ParentId="32418" CreationDate="2010-12-29T22:50:08.750" Score="1" ViewCount="" Body="&lt;p&gt;If you are in a MS shop, Visual Studio 2010 has some nice database version control tools, which can also generate change/deployment scripts based on the differences between two databases.&lt;/p&gt;&#xA;" OwnerUserId="2431" LastActivityDate="2010-12-29T22:50:08.750" />
  <row Id="32442" PostTypeId="1" CreationDate="2010-12-29T22:50:36.717" Score="8" ViewCount="240" Body="&lt;p&gt;I was wondering what unique features I can learn from Scheme that would help me become a better programmer?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a lot experience in mainstream languages, and I am looking to expand my horizons and learn about functional aspects that are missing from other languages.  I am familiar with closures from javascript, lambda expressions from C#, and I was wondering what I can focus on that is lacking in other languages?  Aside from the Lisp syntax, I feel like what I have seen so far I've already encountered in other languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What is unique to Scheme/Lisp that will teach me something new?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="11099" LastActivityDate="2011-01-10T22:11:33.727" Title="What should I learn from Scheme?" Tags="&lt;functional-programming&gt;&lt;lisp&gt;&lt;scheme&gt;" AnswerCount="3" CommentCount="5" FavoriteCount="1" />
  <row Id="32443" PostTypeId="2" ParentId="32418" CreationDate="2010-12-29T22:55:55.307" Score="2" ViewCount="" Body="&lt;p&gt;Along with keeping schemata and other SQL scripts under version control, another handy practice is to &lt;a href=&quot;http://blog.cherouvim.com/a-table-that-should-exist-in-all-projects-with-a-database/&quot; rel=&quot;nofollow&quot;&gt;maintain a 'schema version' table in the actual DB&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;create table schema_migrations (&#xA;    `appliedAt` timestamp not null default CURRENT_TIMESTAMP,&#xA;    `migrationCode` varchar(256) not null,&#xA;    `extraNotes` varchar(256),&#xA;    primary key (`migrationCode`)&#xA;)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2673" LastActivityDate="2010-12-29T22:55:55.307" />
  <row Id="32444" PostTypeId="1" CreationDate="2010-12-29T22:56:21.730" Score="2" ViewCount="194" Body="&lt;p&gt;Hey,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i want to publish my software under a opensource license with the following conditions:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;you are allowed to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Share — to copy, distribute and transmit the work&lt;/li&gt;&#xA;&lt;li&gt;use a modified version of the code in your application&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;you are not allowed to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;publish modified versions of the code&lt;/li&gt;&#xA;&lt;li&gt;use the code in anything commercial&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Is there a software license out there that fits my needs ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(crosspost: &lt;a href=&quot;http://stackoverflow.com/questions/4558546/opensource-noncommercial-license&quot;&gt;http://stackoverflow.com/questions/4558546/opensource-noncommercial-license&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="11987" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-29T23:08:45.707" LastActivityDate="2010-12-30T04:52:48.270" Title="Opensource, noncommercial License ?" Tags="&lt;license&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="32445" PostTypeId="2" ParentId="32442" CreationDate="2010-12-29T22:57:10.517" Score="4" ViewCount="" Body="&lt;p&gt;Yes, it will help you think in a recursive fashion. I only studied it (scheme) for a month or so in a programming language class and it helped me evolve how I think and solve programming problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is always valuable to try other programming paradigms; you then return refreshed to the OO world with new ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not the syntax, but the reasoning, it is great brain exercise. Appart from recursion and the interesting use of lists, there is not much else IMHO, but it is well worth it.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-29T22:57:10.517" CommentCount="2" />
  <row Id="32446" PostTypeId="2" ParentId="31753" CreationDate="2010-12-29T22:57:31.543" Score="1" ViewCount="" Body="&lt;p&gt;James Bach would tell you NOOOOOOO. He's written a book about this topic too &lt;em&gt;The Voyage of a Buccaneer-Scholar&lt;/em&gt;.&#xA;There's an interesting Hanselminutes interview &lt;a href=&quot;http://www.hanselminutes.com/default.aspx?showID=205&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; where he talks a bit how he accomplished everything without a degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I can speak for myself as I am too, a non-degree Junior Programmer, but I do plan on going back to finish my degree later on.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-29T22:57:31.543" CommentCount="1" />
  <row Id="32447" PostTypeId="2" ParentId="32421" CreationDate="2010-12-29T22:58:19.023" Score="0" ViewCount="" Body="&lt;p&gt;A master in comp science with the right specialization will probably take you the fastest in that direction, as you are able to learn from and work with experts in the field, who are able to guide you through the most relevant literature.&lt;br&gt;&#xA;Though it might not completely be the direction you're looking for, hci will only be a relatively small part, it will be much broader, which imho is a good thing. But it's a huge time investment, and working full time while doing that is not to be underestimated..&lt;/p&gt;&#xA;" OwnerUserId="9104" LastActivityDate="2010-12-29T22:58:19.023" CommentCount="1" />
  <row Id="32448" PostTypeId="2" ParentId="32418" CreationDate="2010-12-29T22:59:00.060" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Build scripts under version control and continuous integration to verify them&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One approach that worked for me was to have each developer work with their own schema which they can do what they like with. Their schema was destructible and populated with test data taken from a version controlled set of scripts that all developers contributed to. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The nightly continuous integration build took the latest version of all the scripts and attempted to build a cohesive test database from them. The application then had a series of integration and functional tests run against it to verify that the current schema was in line with the current release candidate. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before starting down this road, there was a pretty solid database design in place and a DBA was always keeping an eye on things to prevent developers going mad with denormalisation and other horrors. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Version control helped immensely here because changes to the scripts were immediately obvious. We also made use of a database &lt;code&gt;VERSION&lt;/code&gt; table to identify the overall state of the database. This was a simple integer sequence and was not linked to any particular application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall, it worked well and meant that developers ceased to be fearful of changing the persistence tiers because they could always roll back their own schemas without impacting others.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2010-12-29T23:11:05.653" LastActivityDate="2010-12-29T23:11:05.653" />
  <row Id="32449" PostTypeId="2" ParentId="32442" CreationDate="2010-12-29T22:59:07.400" Score="6" ViewCount="" Body="&lt;p&gt;Perhaps the most important defining characteristic of Lisp is &lt;em&gt;&quot;Code as Data.&quot;&lt;/em&gt;  &amp;nbsp;You won't get that experience in quite the same way with any other language.  In C#, the closest analogue is expression trees.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is that quality that makes Lisp an excellent language for parsing.  It's also the quality that motivated Paul Graham to say of Lisp: &quot;The unusual thing about Lisp-- in fact, the defining quality of Lisp-- is that it can be written in itself.&quot;  Although self-hosting compilers are nothing new, no language does it quite as elegantly as Lisp does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Metaprogramming (something in which Lisp also excels) is also a worthwhile thing to learn.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Beating the Averages by Paul Graham&lt;/strong&gt; &lt;br&gt;&#xA;&lt;a href=&quot;http://www.paulgraham.com/avg.html&quot; rel=&quot;nofollow&quot;&gt;http://www.paulgraham.com/avg.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-29T23:24:42.307" LastActivityDate="2010-12-29T23:24:42.307" CommentCount="3" />
  <row Id="32450" PostTypeId="2" ParentId="32418" CreationDate="2010-12-29T22:59:27.660" Score="1" ViewCount="" Body="&lt;p&gt;Doctrine has an awesome Migration tool: &lt;a href=&quot;http://www.doctrine-project.org/documentation/manual/1_2/en/migrations&quot; rel=&quot;nofollow&quot;&gt;http://www.doctrine-project.org/documentation/manual/1_2/en/migrations&lt;/a&gt;, best part is that they are autogenerated or can be easily coded by hand.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-29T22:59:27.660" CommentCount="1" />
  <row Id="32451" PostTypeId="2" ParentId="32444" CreationDate="2010-12-29T23:00:21.510" Score="0" ViewCount="" Body="&lt;p&gt;That's creative commons Non-Commercial Share-alike &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/3.0/&quot; rel=&quot;nofollow&quot;&gt;http://creativecommons.org/licenses/by-nc-sa/3.0/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11827" LastActivityDate="2010-12-29T23:00:21.510" CommentCount="3" />
  <row Id="32452" PostTypeId="2" ParentId="32425" CreationDate="2010-12-29T23:01:13.740" Score="5" ViewCount="" Body="&lt;p&gt;I get asked this question all the time, e.g. how to get started.  It's simple really.  Here is a step by step.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Come up with an idea.  Sounds like you already have that.&lt;/li&gt;&#xA;&lt;li&gt;Simplify your idea to its basic core - something you think you might be able to tackle&lt;/li&gt;&#xA;&lt;li&gt;Layout the UI on a piece of paper or napkin, whatever.&lt;/li&gt;&#xA;&lt;li&gt;Try and layout the UI in your development environment.&lt;/li&gt;&#xA;&lt;li&gt;If you encounter difficulties, google, google, google, ask questions on stackoverflow, use the living crap out of internet resources to get help.  Ask friends and co-workers who are programmers to help you with specific situations.  Go back to step 4.&lt;/li&gt;&#xA;&lt;li&gt;Start writing the logic of your application.  If you run into difficulties, go to previous step and try again.&lt;/li&gt;&#xA;&lt;li&gt;Soon enough, you'll have something working soon.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="3516" LastActivityDate="2010-12-29T23:01:13.740" CommunityOwnedDate="2010-12-30T14:08:25.447" CommentCount="5" />
  <row Id="32453" PostTypeId="2" ParentId="31738" CreationDate="2010-12-29T23:08:55.000" Score="0" ViewCount="" Body="&lt;p&gt;I started with Eclipse with Pydev, which worked great.&#xA;Then I discovered WingIDE which I liked more. &#xA;Everything running in Ubuntu 10.10 with tools GIT, Trac, Jira suite, etc...&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2010-12-29T23:08:55.000" />
  <row Id="32454" PostTypeId="2" ParentId="21635" CreationDate="2010-12-29T23:13:15.987" Score="1" ViewCount="" Body="&lt;p&gt;It made me meet my current girlfriend :-)!&lt;/p&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2010-12-29T23:13:15.987" CommentCount="1" />
  <row Id="32455" PostTypeId="2" ParentId="32425" CreationDate="2010-12-29T23:14:58.243" Score="4" ViewCount="" Body="&lt;p&gt;Create something small stuff. Don't mind, that your program will be the 1000th doing that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some ideas:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a clock (digital first, then analogue-look),&lt;/li&gt;&#xA;&lt;li&gt;automatic labirynth creator,&lt;/li&gt;&#xA;&lt;li&gt;directory structure displayer,&lt;/li&gt;&#xA;&lt;li&gt;mp3 album lister,&lt;/li&gt;&#xA;&lt;li&gt;etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Choosing platform, tools are the part of the task.&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-12-29T23:14:58.243" CommunityOwnedDate="2010-12-30T14:08:25.447" CommentCount="4" />
  <row Id="32456" PostTypeId="2" ParentId="27564" CreationDate="2010-12-29T23:19:42.343" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;UTF-8 support&lt;/li&gt;&#xA;&lt;li&gt;Make the language fully OO, borrowing the Ruby and Python concept that everything is an object. I kinda liked the autoboxing rfc. However it gives way too much freedom to the developers which is not that good. But with some limitations it could be a nice addition to the language evolution.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;$x = array(5, 60, 50, 50);&#xA;$x-&gt;map(function($i) {&#xA;    return $i * 2;&#xA;})-&gt;push(10);&lt;/p&gt;&#xA;&#xA;&lt;p&gt;$p = &quot;some string&quot;;&#xA;$q = $p-&gt;substring(0, 10);&lt;/p&gt;&#xA;&#xA;&lt;p&gt;etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my oppinion this can be done without breaking the current global functions. However, most of them will become useless and could be deprecated over time.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Short notation for arrays would be nice, but it's not critical for the language.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11991" LastActivityDate="2010-12-29T23:19:42.343" CommunityOwnedDate="2010-12-29T23:19:42.343" CommentCount="2" />
  <row Id="32457" PostTypeId="2" ParentId="2757" CreationDate="2010-12-29T23:22:37.473" Score="0" ViewCount="" Body="&lt;h2&gt;Current Setup:&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/ydSVd.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Specs:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;27&quot; -- 2560 x 1440 - iMac&lt;/p&gt;&#xA;&#xA;&lt;p&gt;20&quot; -- 1680 x 1050 - external display&lt;/p&gt;&#xA;&#xA;&lt;p&gt;19&quot; -- 720p LCD - xbox :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually code on the 27&quot; and preview on the 20&quot;. The 27&quot; is nice to see lots of code without too much scrolling and the 20&quot; is nice for web previews because it is closer to average monitor size.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;A Past Setup:&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/w45P3.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Specs:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;30&quot; -- 2560 x 1600 - Cinema Display with Mac Pro&lt;/p&gt;&#xA;&#xA;&lt;p&gt;27&quot; -- 2560 x 1440 - iMac&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt;&#xA;This setup worked well for the situation. I could have the Mac Pro running heavy video compression (video for web), and still code and design on the iMac without getting bogged down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Sidenote:&lt;/strong&gt; I later set this up with &lt;a href=&quot;http://sourceforge.net/projects/synergykm/&quot; rel=&quot;nofollow&quot;&gt;SynergyKM&lt;/a&gt; as to only need one mouse and keyboard. It works across multiple computers/platforms via network (low-latency), and you can copy paste text as well.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2&gt;Other Resources:&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;There are some cool workspaces for inspiration here:&#xA;&lt;a href=&quot;http://wherewedowhatwedo.com/&quot; rel=&quot;nofollow&quot;&gt;http://wherewedowhatwedo.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Gallery of multi-monitor setups: &lt;a href=&quot;http://www.realtimesoft.com/multimon/gallery_browse.asp?date=desc&amp;amp;mon=desc&quot; rel=&quot;nofollow&quot;&gt;http://www.realtimesoft.com/multimon/gallery_browse.asp?date=desc&amp;amp;mon=desc&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11927" LastEditorUserId="11927" LastEditorDisplayName="" LastEditDate="2010-12-29T23:59:33.993" LastActivityDate="2010-12-29T23:59:33.993" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="32458" PostTypeId="2" ParentId="32421" CreationDate="2010-12-29T23:34:06.087" Score="3" ViewCount="" Body="&lt;p&gt;I completed my master's in Software Engineering from Kansas State University via Distance Learning. I know my degree was in a different area, but I thought I would share my experiences in completing a degree online via distance learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Couple of thoughts on distance learning:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Find a program that will allow you to complete the degree completely online. Transfer credits are a nightmare and often times the campus is too far to commute to attend a required on-campus class.&lt;/li&gt;&#xA;&lt;li&gt;Find out how the courses are delivered. At KSU, my courses were delivered via streaming video. The lecture was given in person to students on campus and recorded. I then streamed the lecture at my convenience. I have taken some online courses (another program) where it was all reading and I feel I should be getting lectured from a professor to get my money's worth. I learn better by having someone explain it in addition to assigned readings, etc.&lt;/li&gt;&#xA;&lt;li&gt;Find out how tests are given. In my case, I needed to find an educator in my local area to administer my tests. This kept things honest and increased the value of the degree. Just keep this in mind when looking for a program.&lt;/li&gt;&#xA;&lt;li&gt;Also, find out how professors interact with distance learning students. At KSU, I had the email addresses and phone numbers of all my professors. Both email and phone came in handy when I needed to ask a question directly. Distance learning students can't ask questions in the lecture directly since they are recorded. So, it was nice to be able to call the professor directly when needed.&lt;/li&gt;&#xA;&lt;li&gt;Lastly, be prepared for the time commitment. A reputable school will still require the same amount of work from its distance learning students as it does from its on-campus students. This is important for both the reputation of the school and the value of your degree.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Hope this helps! Good luck!&lt;/p&gt;&#xA;" OwnerUserId="8440" LastActivityDate="2010-12-29T23:34:06.087" />
  <row Id="32459" PostTypeId="1" AcceptedAnswerId="32472" CreationDate="2010-12-29T23:50:22.987" Score="0" ViewCount="112" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/539/what-colour-scheme-do-you-use-in-your-ide&quot;&gt;What colour scheme do you use in your IDE?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;when you are coding what is the theme you use in your IDE or Text Editor?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: i didnt find better tags , please retag if you can&lt;/p&gt;&#xA;" OwnerUserId="10963" LastActivityDate="2010-12-30T00:31:31.093" ClosedDate="2010-12-30T01:17:15.473" Title="what color themes you use in your IDE or Editor?" Tags="&lt;ide&gt;&lt;text-editor&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="32461" PostTypeId="2" ParentId="32425" CreationDate="2010-12-29T23:57:20.623" Score="8" ViewCount="" Body="&lt;p&gt;You won't figure out how to program unless you'll face a real task. No theory would ever replace a simple real-world task. Before starting working on r-w scenarios, I was naively reading lot's of books, with all examples, but when I faced a real problem, I just couldn't gather all my theoretical knowledge to complete the task. If you are starter, I'd recommend you to get the tasks from anywhere you can. Do not think they're useless unless you've solved them. As a first step try solving data structure problems, such as sorting a linked list, performing DFS, BFS on trees, graphs, etc. Not only will it improve your coding skills, but what's more important, it will improve your analytical and algo skills, which trust me is a valuable knowledge. Then, when you will know that you can rock with pointers, recursion, references, etc, try implementing a simple linear equation solver or something like that. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line. It's all about practice. Just keep digging and code, code, code.&lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2010-12-29T23:57:20.623" CommunityOwnedDate="2010-12-30T14:08:25.447" />
  <row Id="32462" PostTypeId="2" ParentId="32425" CreationDate="2010-12-29T23:58:18.317" Score="0" ViewCount="" Body="&lt;p&gt;You can find plenty of good answers here, but still, let's add this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of all, don't panic. A lot of people learned programming to different degrees, you will find the level that suits you, that's for sure. Work hard on reaching a quite high level, ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;one step at a time.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start in small. I remember one of my first applications, it was basically a frontend for an MP3 encoder. Nothing fancy, it just started a command line app with different parameters. But I enjoyed it!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ps. One of the most useful skills is that you should practice all the time: how to ask better. If you can ask in a really good way, you will find the answer in no time.&lt;/p&gt;&#xA;" OwnerUserId="10138" LastActivityDate="2010-12-29T23:58:18.317" CommunityOwnedDate="2010-12-30T14:08:25.447" />
  <row Id="32463" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T00:06:06.873" Score="3" ViewCount="" Body="&lt;p&gt;One of the hardest things to do when you are a beginner is setting realistic goals for what a &quot;how can I improve&quot;-exercise should contain at your current level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hence I would suggest you choose to practice solving small, given exercises, because the ability to finish a program according to a given specification is a very valuable thing for everybody who programs for a living.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest you have a closer look at &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;http://projecteuler.net/&lt;/a&gt; which has a lot of exercises and an automated &quot;check answer&quot; system, allowing you to work at your own pace.  The exercises are well worded, but may require you to think.  Some may even require you to think a lot, but even failing to solve those, will teach you something useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The full wording of problem 1 is:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If we list all the natural numbers&#xA;  below 10 that are multiples of 3 or 5,&#xA;  we get 3, 5, 6 and 9. The sum of these&#xA;  multiples is 23.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Find the sum of all the multiples of 3&#xA;  or 5 below 1000.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Do you think you could solve this?  Then do it!&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-30T00:06:06.873" CommunityOwnedDate="2010-12-30T14:08:25.447" />
  <row Id="32464" PostTypeId="2" ParentId="31753" CreationDate="2010-12-30T00:13:09.480" Score="1" ViewCount="" Body="&lt;p&gt;Although no degree is required to become a Junior Programmer, you will later realize that you're missing something, a knowledge that gives you an opportunity to become a Senior Programmer, and this is Computer Science. No, it doesn't mean that you have to go back to the uni, and study CS, but it will most definitely force you to open Cormen's Introduction to Algorithms, etc, which is the same as taking the courses in CS, but harder, since noone teaches you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I dropped my work in order to get my MsC in CS, and I don't regret. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. I've got a better job now :)&lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2010-12-30T00:13:09.480" />
  <row Id="32467" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T00:16:34.297" Score="2" ViewCount="" Body="&lt;p&gt;Programming is about problem solving and communication, not writing lots of code.&#xA;Code is just a necessity, you should usually try to write less code, not more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't know where to start, maybe you just don't have any problems!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look at Linux and other Unix-like systems: they all consist of many small applications that &lt;a href=&quot;http://en.wikipedia.org/wiki/Unix_way&quot; rel=&quot;nofollow&quot;&gt;do only one thing, but do it well&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I needed a script to find 10 largest files in a folder on my computer, I wasn't reading books. I just googled and used one of the existing solutions.&#xA;Did I write any code? - No.&#xA;Is problem solved? - Yes.&#xA;Is this one-line program useful? - Heck yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programs with thousands of lines of code are usually written by more than one programmer. You won't be able to write whole operating systems alone and you don't need to. They also often use cheats like &lt;a href=&quot;http://en.wikipedia.org/wiki/Version_control&quot; rel=&quot;nofollow&quot;&gt;version control&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Unit_testing&quot; rel=&quot;nofollow&quot;&gt;unit testing&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6985" LastEditorUserId="6985" LastEditorDisplayName="" LastEditDate="2010-12-30T00:58:57.927" LastActivityDate="2010-12-30T00:58:57.927" CommunityOwnedDate="2010-12-30T14:08:25.447" CommentCount="2" />
  <row Id="32468" PostTypeId="2" ParentId="27564" CreationDate="2010-12-30T00:17:12.030" Score="0" ViewCount="" Body="&lt;p&gt;It would be nice to be able to use a class that extends iterable in a foreach loop, where you pass a reference to the loop: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&#xA;foreach(&amp;$myclass as $me) {&#xA;  echo $me;&#xA;}&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I haven't spent much time looking into why that doesn't currently work, perhaps it's related to how iterables work, I haven't investigated much more than just noticing that it doesn't work.  &lt;/p&gt;&#xA;" OwnerUserId="11984" LastActivityDate="2010-12-30T00:17:12.030" CommunityOwnedDate="2010-12-30T00:17:12.030" CommentCount="1" />
  <row Id="32469" PostTypeId="1" CreationDate="2010-12-30T00:18:53.713" Score="3" ViewCount="373" Body="&lt;p&gt;Can anyone recommend a step-by-step programming tutorial (either book or website) where they walk you through designing a complex program and explain what they are coding &amp;amp; why? Language doesn't matter, but preferably something like Java, Python, C++, or C and not web based.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am a new programmer and I am looking for good examples that will teach me how to program something more complex than simple programs given in programming textbooks.&lt;/p&gt;&#xA;" OwnerUserId="11996" LastActivityDate="2010-12-31T05:22:43.863" Title="I need a step-by-step Sample Programming Tutorial (book or website)" Tags="&lt;java&gt;&lt;c++&gt;&lt;python&gt;&lt;c&gt;" AnswerCount="7" CommentCount="2" FavoriteCount="2" />
  <row Id="32470" PostTypeId="2" ParentId="32469" CreationDate="2010-12-30T00:21:21.627" Score="1" ViewCount="" Body="&lt;p&gt;My first book was Deitel's &lt;a href=&quot;http://www.deitel.com/books/cpphtp5/&quot; rel=&quot;nofollow&quot;&gt;How to program in C++&lt;/a&gt;. It's the simplest and easy to understand book I've ever read in programing. Then you'll be able to read Meyer's Effective c++ and More effective c++, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I still think that starting with C/C++ is the best way of learning how to program.&lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2010-12-30T00:21:21.627" CommentCount="1" />
  <row Id="32471" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T00:22:52.547" Score="0" ViewCount="" Body="&lt;p&gt;Maybe you could choice a Script language to start.I start program with C language.In my opinion the C language is easy to getting Start but it need much more time to know the algorithm and something about operating system.And ererytime I exercise is simply with a DOS GUI,that makes me depress.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And later I choice a Script language named ActionScript to start.The script is an Object-Oriented language and it can control the behavior of the flash movie. &lt;strong&gt;The Script language is easy to do some work that close to the Problem Domain&lt;/strong&gt;.Just like trace(&quot;HelloWorld&quot;) in Actionscript to output an string.And it have a powerful IDE to let you to checkout if your program is going well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a word,if you want to start program in a &lt;strong&gt;quick&lt;/strong&gt; way,&lt;strong&gt;script language&lt;/strong&gt; may be a good choice :-)&lt;/p&gt;&#xA;" OwnerUserId="11993" LastActivityDate="2010-12-30T00:22:52.547" CommunityOwnedDate="2010-12-30T14:08:25.447" />
  <row Id="32472" PostTypeId="2" ParentId="32459" CreationDate="2010-12-30T00:31:31.093" Score="0" ViewCount="" Body="&lt;p&gt;i prefer ide theme in which i can see comments and keywords clearly.&lt;/p&gt;&#xA;" OwnerUserId="11975" LastActivityDate="2010-12-30T00:31:31.093" />
  <row Id="32473" PostTypeId="2" ParentId="32469" CreationDate="2010-12-30T00:33:55.633" Score="1" ViewCount="" Body="&lt;p&gt;I wrote this: &lt;a href=&quot;http://homepage.mac.com/s_lott/books/oodesign.html&quot; rel=&quot;nofollow&quot;&gt;http://homepage.mac.com/s_lott/books/oodesign.html&lt;/a&gt;  It may help.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2010-12-30T00:33:55.633" CommentCount="3" />
  <row Id="32475" PostTypeId="2" ParentId="29722" CreationDate="2010-12-30T00:38:56.080" Score="0" ViewCount="" Body="&lt;p&gt;first thing first ,start with concept of OOPs using real life examples and then start c++ by comparing with other languages that student knows.&lt;/p&gt;&#xA;" OwnerUserId="11975" LastActivityDate="2010-12-30T00:38:56.080" />
  <row Id="32476" PostTypeId="2" ParentId="27656" CreationDate="2010-12-30T00:40:13.117" Score="3" ViewCount="" Body="&lt;p&gt;I'm sure you already have a LinkedIn account, don't you? If not, go register there immediately! This a great source for finding a job. &lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2010-12-30T00:40:13.117" CommentCount="3" />
  <row Id="32477" PostTypeId="2" ParentId="31733" CreationDate="2010-12-30T00:44:12.320" Score="1" ViewCount="" Body="&lt;p&gt;First, don't be impressed by the PhD. You may see PhD as something much higher than a bachelor, but you could also see it as someone who failed being a professor :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are actually very used to explain what they did in their PhD in layman terms (that's a recurrent joke within PhD students - how to explain what you do to your parents, friends, etc..). That's not that different from you explaining to your parents/family/kids what you do for a living. Generally, getting a PhD means you got acquainted with a lot of smart people, many smarter than himself, and it also means people who love learning about new things just for the sake of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a sidenode, I have a PhD myself, but some of the smartest people I have met in programming &quot;only&quot; got a bachelor. And as Peter Norvig would tell you, the best programmer he knows is a highschool dropout.&lt;/p&gt;&#xA;" OwnerUserId="6139" LastActivityDate="2010-12-30T00:44:12.320" />
  <row Id="32478" PostTypeId="2" ParentId="27656" CreationDate="2010-12-30T00:46:21.477" Score="5" ViewCount="" Body="&lt;p&gt;search in monster.com for junior or graduate key word in front of any job title&#xA;for example:&#xA;  junior website developer, junior programmer&#xA;  Graduate website developer, Graduate database designer or etc...&#xA;and dont forget that you can do freelancer computer jobs on &lt;a href=&quot;http://www.freelancer.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.freelancer.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11975" LastActivityDate="2010-12-30T00:46:21.477" CommentCount="1" />
  <row Id="32479" PostTypeId="2" ParentId="29228" CreationDate="2010-12-30T00:51:07.853" Score="1" ViewCount="" Body="&lt;p&gt;Lynda.com have good video tutorials on Actionscript and many more tools.&lt;/p&gt;&#xA;" OwnerUserId="11975" LastActivityDate="2010-12-30T00:51:07.853" CommentCount="1" />
  <row Id="32480" PostTypeId="2" ParentId="29228" CreationDate="2010-12-30T01:02:55.150" Score="0" ViewCount="" Body="&lt;p&gt;To learn Flex (and ActionScript by extension) I used &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0470525231&quot; rel=&quot;nofollow&quot;&gt;ActionScript 3.0 Bible Second Edition&lt;/a&gt; and &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0470488956&quot; rel=&quot;nofollow&quot;&gt;Flash Builder and Flex 4.0&lt;/a&gt; to learn the basics. Don't be afraid to dive into the open source code as that can help a lot also.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will be very easy provided you already know OO concepts, but basic OO is somewhat easy to pick up quickly. &lt;/p&gt;&#xA;" OwnerUserId="7305" LastActivityDate="2010-12-30T01:02:55.150" />
  <row Id="32481" PostTypeId="2" ParentId="14744" CreationDate="2010-12-30T01:03:11.327" Score="1" ViewCount="" Body="&lt;p&gt;In my experience, for a while C/C++ was a good buffer that segregated the good programmers from the VB6 coders. After doing five odd years of C/C++, I got a job working in VB6. I was amazed at the quality (or lack thereof) of the coders. They had little interest in the guts of the language, in design or about performance. Unfortunately, when the company moved to .Net, the C/C++ coders and the .Net coders were using the same tools. The VB coders were even worse VB.Net coders. The situation got worse when all development went to ASP.NET. Suddenly anyone who could drag and drop a control was a programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the job market, though, there was not much to differentiate the hard-core coders (ex C/C++) and the tourists.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As such, having C or C++ on your resume may help differente you from the riff-raff.&lt;/p&gt;&#xA;" OwnerUserId="10208" LastActivityDate="2010-12-30T01:03:11.327" />
  <row Id="32482" PostTypeId="1" AcceptedAnswerId="32495" CreationDate="2010-12-30T01:05:15.043" Score="13" ViewCount="443" Body="&lt;p&gt;So can an algorithm be patented?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I saw this statement which made me think:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Everybody would abstain from patenting&#xA;  the improvements of contour dot&#xA;  algorithm for at least several years,&#xA;  say up till 2021. So that the&#xA;  developers of the Outliner project&#xA;  feel free to implement their ideas.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;taken from this &lt;a href=&quot;http://outliner.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;codeplex&lt;/a&gt; project.&lt;/p&gt;&#xA;" OwnerUserId="7005" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-30T02:33:35.520" LastActivityDate="2011-03-06T13:59:25.703" Title="Can an algorithm be patented?" Tags="&lt;algorithms&gt;&lt;legal&gt;&lt;software-patent&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="3" />
  <row Id="32483" PostTypeId="2" ParentId="32469" CreationDate="2010-12-30T01:09:34.027" Score="12" ViewCount="" Body="&lt;p&gt;I believe you are going about this the wrong way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of looking at &lt;strong&gt;&quot;complex project tutorials&quot;&lt;/strong&gt; you should be focusing on creating a &lt;strong&gt;series&lt;/strong&gt; of projects starting off with something simple then gradually &lt;strong&gt;more challenging&lt;/strong&gt; as your knowledge and experience &lt;strong&gt;grows&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Currency Converter&lt;/li&gt;&#xA;&lt;li&gt;Simple phone book (with out database)&lt;/li&gt;&#xA;&lt;li&gt;Better phone book (with database)&lt;/li&gt;&#xA;&lt;li&gt;A duplicate file finder&lt;/li&gt;&#xA;&lt;li&gt;Pong&lt;/li&gt;&#xA;&lt;li&gt;A custom File parser, e.g imports CSV (maybe with embedded keywords that trigger certain actions)&lt;/li&gt;&#xA;&lt;li&gt;Improved custom file parser (threading)&lt;/li&gt;&#xA;&lt;li&gt;A simple Binary Tree.&lt;/li&gt;&#xA;&lt;li&gt;An encryption application&lt;/li&gt;&#xA;&lt;li&gt;Dynamic GUI, e.g Question Air WinForm that auto populates depending on questions set in database&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Once you can do &lt;strong&gt;all the above&lt;/strong&gt; you should be able to build fairly &quot;complex&quot;[1] applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[1] Relatively speaking, as compared to the majority of LOB CRUD applications&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-30T01:09:34.027" />
  <row Id="32484" PostTypeId="2" ParentId="558" CreationDate="2010-12-30T01:17:04.737" Score="5" ViewCount="" Body="&lt;h1&gt;The Practical Side&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;There is definitely some practical step-by-step aspects of design that are important to learn. Not everything is subjective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;•&amp;nbsp; Web Design Tutorials:  &lt;a href=&quot;http://webdesign.tutsplus.com/&quot; rel=&quot;nofollow&quot;&gt;http://webdesign.tutsplus.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;•&amp;nbsp; Photoshop Tutorials: &lt;a href=&quot;http://psd.tutsplus.com/&quot; rel=&quot;nofollow&quot;&gt;http://psd.tutsplus.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;•&amp;nbsp; Tons of Tutorials: &lt;a href=&quot;http://www.lynda.com/&quot; rel=&quot;nofollow&quot;&gt;Lynda&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Inspiration&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;•&amp;nbsp; Website: &lt;a href=&quot;http://unmatchedstyle.com/&quot; rel=&quot;nofollow&quot;&gt;Unmatched Style&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;•&amp;nbsp; Website: &lt;a href=&quot;http://abduzeedo.com/&quot; rel=&quot;nofollow&quot;&gt;Abduzeedo&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;•&amp;nbsp; Book: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/3822823678&quot; rel=&quot;nofollow&quot;&gt;Guidelines for Online Success&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;•&amp;nbsp; Website: &lt;a href=&quot;http://www.smashingmagazine.com/&quot; rel=&quot;nofollow&quot;&gt;Smashing Magazine&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Design Skills&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;General Design&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;•&amp;nbsp; Book: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1568987706&quot; rel=&quot;nofollow&quot;&gt;Graphic Design: The New Basics&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;•&amp;nbsp; Book: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1592534473&quot; rel=&quot;nofollow&quot;&gt;Graphic Design, Referenced&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;•&amp;nbsp; PDF: &lt;a href=&quot;http://www.presentationzen.com/chapter6_spread.pdf&quot; rel=&quot;nofollow&quot;&gt;The Big Four: Contrast, Repetition, Alignment, Proximity&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Typography&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;•&amp;nbsp; Book: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1568989695&quot; rel=&quot;nofollow&quot;&gt;Thinking with Type&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;•&amp;nbsp; Book: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0881792063&quot; rel=&quot;nofollow&quot;&gt;The Elements of Typographic Style&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;•&amp;nbsp; Article: &lt;a href=&quot;http://en.wikipedia.org/wiki/Typography&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Typography&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;•&amp;nbsp; Article: &lt;a href=&quot;http://www.informationarchitects.jp/en/the-web-is-all-about-typography-period/&quot; rel=&quot;nofollow&quot;&gt;http://www.informationarchitects.jp/en/the-web-is-all-about-typography-period/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Layout&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;•&amp;nbsp; Book: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1592533523&quot; rel=&quot;nofollow&quot;&gt;Layout Workbook&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Color&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;•&amp;nbsp; Book: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1592534333&quot; rel=&quot;nofollow&quot;&gt;Color Design Workbook&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;•&amp;nbsp; Book: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1592533299&quot; rel=&quot;nofollow&quot;&gt;Color Harmony Workbook&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Philosophy of Design&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;The dumbest mistake is viewing design as something you do at the end of the process to ‘tidy up’ the mess, as opposed to understanding it’s a ‘day one’ issue and part of everything.&quot; -Tom Peters&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Good design keeps the user happy, the manufacturer in the black and the aesthete unoffended.&quot; -Raymond Loewy&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Truly elegant design incorporates top-notch functionality into a simple, uncluttered form.&quot; -David Lewis&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;Good design is good business.&quot; -Thomas J. Watson Jr. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://designwashere.com/80-inspiring-quotes-about-design/&quot; rel=&quot;nofollow&quot;&gt;More Quotes&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11927" LastEditorUserId="11927" LastEditorDisplayName="" LastEditDate="2010-12-30T01:40:24.423" LastActivityDate="2010-12-30T01:40:24.423" />
  <row Id="32485" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T01:20:44.737" Score="1" ViewCount="" Body="&lt;p&gt;So there are a ton of answers so forgive me if I repeat much of what has already been said, but here is my 2 cents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First pick an idea. Any idea will be fine, something simple would probably be better then large. Projects have a tendency to grow in their scope very quickly (some call it feature creep).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next make a skeleton for the project. This will require a little bit of architecture and design knowledge and you'll probably get it wrong the first ten times you try it - I did. Simply lay out a decent file structure and maybe a small skeleton of code that shows the important parts of the system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Save the skeleton in your VCS (pick your poison with this one and hold on when it leads to a holy war). Once you've started using VCS, constantly using it for small changes becomes second nature, but make sure to start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now pick a small, but important feature for the system and make it. Don't worry about making sure you have everything encapsulated perfectly and that it has the &quot;best&quot; design (that will evolve with the system). Just get something that will work. Also getting some unit tests will help ensure you know what happened when something breaks, if you run the tests regularly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Build your system. This would also be a good time to get an automated build system and continuous integration. If you don't know what they are then either learn it and try, or just continue at your own risk; either way keep working.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now pick another feature and repeat and repeat and repeat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you think it works well, show it to a friend. The friend doesn't have to know how to program or even know what the program does. One you'll feel good about showing to someone and two it will help you know exactly what the system does. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you get to the point where you are very confident with what you made, release it online and try and get feedback. A repository hub or the programmers sub-reditt might provide you with some constructive criticism. Try and find a CS/SE professor and have him/her look at it. Maybe ask a professional programmer. Just get another programmers opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you finish (or probably before) you'll realize that the code you initially wrote is a lot worse than what you made recently. That is perfectly natural and happens to all of us. You now need to find a new project and learn something new - maybe a new testing strategy or how to use Service Oriented Architecture.&lt;/p&gt;&#xA;" OwnerUserId="7305" LastActivityDate="2010-12-30T01:20:44.737" CommunityOwnedDate="2010-12-30T14:08:25.447" />
  <row Id="32486" PostTypeId="2" ParentId="32482" CreationDate="2010-12-30T01:21:59.180" Score="4" ViewCount="" Body="&lt;p&gt;Yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See the various compression algorithms, video encoding algorithms, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_software_patents&quot; rel=&quot;nofollow&quot;&gt;Find some of them on Wikipedia&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here, have a sample patent, &lt;a href=&quot;http://www.freepatentsonline.com/7818632.html&quot; rel=&quot;nofollow&quot;&gt;Code-word list algorithm&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2673" LastActivityDate="2010-12-30T01:21:59.180" CommentCount="3" />
  <row Id="32487" PostTypeId="2" ParentId="32482" CreationDate="2010-12-30T01:23:42.173" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I think so,&lt;/strong&gt; however the whole concept of Patents as a mean to &lt;em&gt;&quot;protect intellectual property&quot;&lt;/em&gt; is in my view deeply flawed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A patent is nothing more than man made enforced rule (one which is not even consistent across different countries).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Piracy is illegal, but that doesn't make it stop. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Algorithms can and do get &quot;reversed&quot; engineered, so patents aside there is little real &lt;strong&gt;physical&lt;/strong&gt; protection&lt;a href=&quot;http://en.wikipedia.org/wiki/Trade_secret&quot; rel=&quot;nofollow&quot;&gt;1&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Trade_secret&quot; rel=&quot;nofollow&quot;&gt;1&lt;/a&gt; Legal is another matter&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Trade_secret&quot; rel=&quot;nofollow&quot;&gt;Trade Secret&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-30T01:23:42.173" CommentCount="2" />
  <row Id="32489" PostTypeId="2" ParentId="17100" CreationDate="2010-12-30T01:40:39.523" Score="1" ViewCount="" Body="&lt;h2&gt;The Answer lies in the definition&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;What you &lt;strong&gt;define&lt;/strong&gt; the responsibility to be, ultimately gives you the boundary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a component that has the responsibility of &lt;strong&gt;displaying&lt;/strong&gt; invoices -&gt; in this case, if I started to add anything more then I'm breaking the principle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If on the other hand if I said responsibility of &lt;strong&gt;handling&lt;/strong&gt; invoices -&gt; adding multiple smaller functions (eg printing &lt;strong&gt;Invoice&lt;/strong&gt;, updating &lt;strong&gt;Invoice&lt;/strong&gt;) all are within that boundary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However if that module started to handle &lt;strong&gt;any&lt;/strong&gt; functionality outside of &lt;strong&gt;invoices&lt;/strong&gt;, then it would be outside of that boundary.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-30T01:51:16.550" LastActivityDate="2010-12-30T01:51:16.550" CommentCount="1" />
  <row Id="32490" PostTypeId="1" AcceptedAnswerId="32496" CreationDate="2010-12-30T01:42:12.703" Score="12" ViewCount="1447" Body="&lt;p&gt;I am not sure if this is even possible but I have watched a few videos with programming examples where it seems like the program is being written in some kind of command prompt rather than a nice graphical IDE. Im just curious as to what might be going on in these videos. Is it possible to write a program without an IDE?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;heres two examples:&#xA;&lt;a href=&quot;http://www.youtube.com/watch?v=hFSY9cWjO8o&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=hFSY9cWjO8o&lt;/a&gt;( @ 6 min)&#xA;&lt;a href=&quot;http://www.youtube.com/watch?v=tKTZoB2Vjuk&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=tKTZoB2Vjuk&lt;/a&gt; (@ 5 min)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Could anyone explain how this is done?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you all for the great feedback!&lt;/p&gt;&#xA;" OwnerUserId="10922" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-12-31T01:01:36.197" LastActivityDate="2011-01-06T01:32:38.907" CommunityOwnedDate="2011-01-03T16:15:01.900" Title="Writing programs without graphical IDE" Tags="&lt;ide&gt;" AnswerCount="24" CommentCount="21" FavoriteCount="1" />
  <row Id="32491" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T01:48:53.250" Score="1" ViewCount="" Body="&lt;p&gt;Something that may help is think of a simple problem you have day to day where something you might do by pencil and paper could be replaced by a program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This gives you a relatively simple problem with a fairly known solution that just needs a level of automation.  Keep in mind this doesn't need to be the next MS Word/WordPad/NotePad; just something that solves your (simple) problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example a problem that I keep reimplementing when working with a new language is a simple timekeeper app.  The app is used to track billable hours to different projects during a day.  A fairly simple program with lots of little gotchas, like how do you handle reboots in the middle of the day or how do you add/remove items from your list.&lt;/p&gt;&#xA;" OwnerUserId="4819" LastActivityDate="2010-12-30T01:48:53.250" CommunityOwnedDate="2010-12-30T14:08:25.447" />
  <row Id="32492" PostTypeId="2" ParentId="32490" CreationDate="2010-12-30T01:49:47.763" Score="2" ViewCount="" Body="&lt;p&gt;Yes, you can write code without a compiler and without an IDE.  All it is is writing.  Text.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastActivityDate="2010-12-30T01:49:47.763" CommunityOwnedDate="2011-01-03T16:15:01.900" CommentCount="9" />
  <row Id="32493" PostTypeId="2" ParentId="32490" CreationDate="2010-12-30T01:49:52.783" Score="1" ViewCount="" Body="&lt;p&gt;I think you are refering to the Integrated Development Environment's (IDE). They provide code hints and syntax highlighting among other things. A compiler just takes the files and compiles them into machine code or byte code. A compiler is usually used by an IDE by sending it a command to compile your files.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is possible to write without a compiler. These languages use an 'interpreter' and process the script at run time.&lt;/p&gt;&#xA;" OwnerUserId="10442" LastActivityDate="2010-12-30T01:49:52.783" CommunityOwnedDate="2011-01-03T16:15:01.900" CommentCount="3" />
  <row Id="32494" PostTypeId="2" ParentId="32490" CreationDate="2010-12-30T01:52:39.627" Score="2" ViewCount="" Body="&lt;p&gt;Yes, yes it is. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just as it's possible to make coffee without simultaneously frothing milk, drive to work without also talking on the phone and doing your taxes, or gaze at the stars without listening to &quot;flight of the bumblebee&quot; on a surround-sound system, it is possible to compile code without also running an editor, debugger, code analysis system and snake game. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But... who really wants to gaze at the stars in &lt;em&gt;silence&lt;/em&gt;?!&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-12-30T01:52:39.627" CommunityOwnedDate="2011-01-03T16:15:01.900" CommentCount="4" />
  <row Id="32495" PostTypeId="2" ParentId="32482" CreationDate="2010-12-30T02:25:18.043" Score="5" ViewCount="" Body="&lt;p&gt;Yes, legally they can be patented (in many, but not all, countries).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Patents have been around for a very long time, and the idea is exactly as you describe: to protect your invention so that you have time to build it, market it and profit from it. Without patents, you might invent something and then someone with more resources and money could come along, built your invention and by the time you were ready to sell it, they'd have already cornered the market.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many people believe that the same protections are not required for software, because - generally speaking - it does not take a lot of effort to &quot;build it&quot;. When you're talking about real-world objects, you need to have a factory to manufacture it, you need machines, you need employees, you need a distribution network and so on. If you can't get those things, then you could license your patented idea to someone who &lt;em&gt;did&lt;/em&gt; have those things, and they could do all of that extra stuff for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But with software, anybody with a compiler and an internet connection can build and distribute the software, so there is less of a need to &quot;protect&quot; the invention to give you time to set up your distribution network and whatnot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then there's also the problem that the people in the patent office are generally simply not qualified to determine whether a particular software invention is patentable or not, leaving it up to the courts to decide whether a patent was valid when the owner tries to assert their rights to it. That means if you're a small company and you &quot;infringe&quot; on an invalid patent, you likely don't have the resources to fight the patent anyway (even if it's invalid).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But let's not go into &lt;em&gt;that&lt;/em&gt; particular debate :-) I could go on for days...&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-30T02:25:18.043" CommentCount="4" />
  <row Id="32496" PostTypeId="2" ParentId="32490" CreationDate="2010-12-30T03:00:39.667" Score="18" ViewCount="" Body="&lt;p&gt;All you need to write a program is a &lt;em&gt;text editor&lt;/em&gt; and a compiler (or an interpreter if you're writing in a non-compiled language).  Code is usually just plain text.  Really, you could write any program imaginable using Windows Notepad and a command-line C compiler.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of programmers don't even use IDEs.  I personally used &lt;a href=&quot;http://projects.gnome.org/gedit/&quot; rel=&quot;nofollow&quot;&gt;Gedit&lt;/a&gt; (a basic Linux text editor with syntax highlighting) for the longest time before I finally switched to Eclipse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, I &lt;em&gt;still&lt;/em&gt; use Gedit when I want to write a simple program.  Sometimes I'll even just use &lt;a href=&quot;http://en.wikipedia.org/wiki/Nano_%28text_editor%29&quot; rel=&quot;nofollow&quot;&gt;nano&lt;/a&gt; if I want to whip up a quick script, because I'm too impatient to wait for an IDE to load.&lt;/p&gt;&#xA;" OwnerUserId="7733" LastEditorUserId="7733" LastEditorDisplayName="" LastEditDate="2010-12-30T03:20:46.100" LastActivityDate="2010-12-30T03:20:46.100" CommunityOwnedDate="2011-01-03T16:15:01.900" CommentCount="5" />
  <row Id="32497" PostTypeId="2" ParentId="32490" CreationDate="2010-12-30T03:03:52.870" Score="1" ViewCount="" Body="&lt;p&gt;All an IDE does is provide several tools in a single convenient place and then automate some of the processes. Those tools are generally...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A text editor&lt;/li&gt;&#xA;&lt;li&gt;A compiler&lt;/li&gt;&#xA;&lt;li&gt;A debugger&lt;/li&gt;&#xA;&lt;li&gt;A documentation viewer&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;To write your source you can use any text editor that produces plain text, eg. NotePad, Word or a purpose built code text editor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have your source in a text file you can then launch your compiler via the command line passing in your test file, eg cc my_program.c This will produce an object file that you can execute.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To debug your program you launch your debugger via the commandline passing in your program, eg. gdb my_program You can then set breakpoints, step through your program, inspect stuff etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With an IDE all of this happens with the press of a button behind the scenes and the IDE puts a fancy UI on top of it all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS. Real programmers use the commandline&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-12-30T03:03:52.870" CommunityOwnedDate="2011-01-03T16:15:01.900" CommentCount="4" />
  <row Id="32498" PostTypeId="2" ParentId="32490" CreationDate="2010-12-30T03:09:55.167" Score="2" ViewCount="" Body="&lt;p&gt;You can certainly write programs without a graphical IDE. For compiled languages (e.g. C or C++) the process would go something like this:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Write the program in your preferred text editor.&lt;/li&gt;&#xA;&lt;li&gt;From the command line, invoke the compiler and/or linker that will convert your program to executable machine code and pull in the required external libraries. (I'm a little hazy on the order of linking and compilation here, but I'm sure someone will correct me in no time. :))&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;For interpreted languages like PHP or Python, you write code in your preferred text editor (or an interactive shell like the one Python comes with) and the code is executed by an interpreted program. For example, to invoke a Python script, you'd run something like &lt;code&gt;python.exe myScript.py&lt;/code&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Python is not a purely interpreted language, since it does get compiled first, but that compiled form is run by the Python interpreter, so it still fits the definition. Other languages such as PHP are entirely interpreted.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-30T03:09:55.167" CommunityOwnedDate="2011-01-03T16:15:01.900" CommentCount="0" />
  <row Id="32499" PostTypeId="2" ParentId="32490" CreationDate="2010-12-30T03:10:01.267" Score="4" ViewCount="" Body="&lt;p&gt;It certainly is. In the first video, it is about C programming. To write C programs, you need the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;some kind of source files where the code is written to&lt;/li&gt;&#xA;&lt;li&gt;a toolchain to transform this source file into a binary, which is the only thing that a CPU can understand in the end.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Strictly speaking, you don't need file, but I don't know any environment which does not use file for C/C++. As such, you need an editor to edit the source code. Although something as simple as notepad works, you really want something more elaborate to do coding (code highlighting, opening multiple file at the same time, etc...).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the second point, you need a compiler (source code -&gt; object code) and a linker (object code merged together + minimal support to start the program).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even with an IDE, most tasks done behind the scene may be done from the command line: for example, in visual studio, the IDE still uses files, and call compilers at the command line for you, but it could work some other way (and maybe does for more integration).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So why not using an IDE ? Some people are quite anal about their code editor, because they really know it. For example, I am quite productive with the vi code editor. IDE are also limited if you need to interact with things that the IDE has not been designed for. There is a tradeoff here that depends on programmer ability, project, programming languages/tools, etc... Some languages don't even have a decent IDE, some other languages are almost unusable without one. Although I don't use IDE myself, one area where I think they are very useful is debugging integration for C and C++.&lt;/p&gt;&#xA;" OwnerUserId="6139" LastActivityDate="2010-12-30T03:10:01.267" CommunityOwnedDate="2011-01-03T16:15:01.900" CommentCount="2" />
  <row Id="32500" PostTypeId="2" ParentId="32490" CreationDate="2010-12-30T03:12:17.490" Score="0" ViewCount="" Body="&lt;p&gt;Here is what is fun: Harvard Extension School is teaching programming with no IDE ... unless telnet + pico is what you mean by an IDE.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The easiest way is to use a basic text&#xA;  editor to write your Java programs,&#xA;  then transfer files to the FAS system&#xA;  using an FTP program, connect through&#xA;  telnet, and compile and run them on&#xA;  FAS (fas.harvard.edu - Java is already&#xA;  installed there). They MUST be on FAS&#xA;  in order to submit them for your&#xA;  homework. To use this method, you may&#xA;  want to learn enough about one of the&#xA;  Unix text editors to be able to make&#xA;  any needed quick corrections to your&#xA;  files, or plan to update the file&#xA;  locally and re-transfer it. More&#xA;  information about transferring files&#xA;  is on the FAQ page.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;DO NOT use a word processor, e.g. Word&#xA;  or WordPerfect! They add lots of&#xA;  formatting characters which you don't&#xA;  see, but which will prevent your&#xA;  programs from ever compiling. On&#xA;  Windows, you may use Notepad or&#xA;  Wordpad and make sure you save the&#xA;  files as &quot;Text Document&quot; with the&#xA;  .java extension. If the system tries&#xA;  to add a &quot;.txt&quot; suffix, put quotes&#xA;  around your file name and extension in&#xA;  the Save box to prevent this. You may&#xA;  also try any of the editors in the&#xA;  Useful Downloads section (one we&#xA;  highly recommend for PC's is&#xA;  Programmers File Editor). On the Mac,&#xA;  use BBEdit Lite (also linked on the&#xA;  Resources page), or one of the&#xA;  built-in Unix editors which are&#xA;  available in a Terminal window.   You&#xA;  can obtain a secure telnet program or&#xA;  use one that you have, telnet into the&#xA;  FAS system, and write and edit your&#xA;  programs on the system. There are&#xA;  three Unix editors which you may try:&#xA;  pico, emacs, and vi. Once you've&#xA;  written your program and saved it,&#xA;  then, as above, you can compile and&#xA;  run it on FAS&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.fas.harvard.edu/~libe50a/homework.html&quot; rel=&quot;nofollow&quot;&gt;http://www.fas.harvard.edu/~libe50a/homework.html&lt;/a&gt;&#xA;http://www.fas.harvard.edu/~libe50a/faq.html&#xA;&lt;a href=&quot;http://www.fas.harvard.edu/~libe50a/java.html&quot; rel=&quot;nofollow&quot;&gt;http://www.fas.harvard.edu/~libe50a/java.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you ask me, they are torturing the kids, but that is ok. There more Spartans, let alone Mothakes, Perioikoi and Helot than Harvard can admit in any given year.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Yes, it is possible. I suppose something like Notepad is a no-IDE, &#xA;but emacs and Textpad (I used both for C, Java coursework) are considered an IDE.&#xA;Now ... after coding in C# in VS2010, with WinForms and all, I would not want to go back to text editors at work - I would be yelled at for not getting crap done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For academic projects, however, when examples are small, it makes sense to use no IDE. Remember: in intro programming classes, many real-world issues are not present. You will probably not have to add .xml files as resources to a dll; You would probably not need to debug it much, you would not need to use code contracts, or go from an unmanaged C++ to C++/ClI, then to C# and back. Academic assignments need not be messy because they can be done from scratch, and are measured in man-days/weeks. All files can be part of just one project (even for a compilers or an OS class). An IDE like Visual Studio can actually hinder you when a simple makefile will do. Think of the myriads of options that one must configure. Same with Eclipse - it is an over-engineered editor that is infinitely customizable. A simple makefile and two simple C files might be all that you need. In fact, you tend to have more control that way, when you specify every flag yourself. I have coded like that in a university lab once. It is funny, but one of the &quot;embedded&quot; (meaning it had to be so tiny that it would fit on an airplane) computers there had no GUI, and no mouse :) I was still able to log in, edit, compile and debug a C program, as well as add drivers and recompile the kernel.&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2010-12-30T03:12:17.490" CommunityOwnedDate="2011-01-03T16:15:01.900" CommentCount="1" />
  <row Id="32501" PostTypeId="1" AcceptedAnswerId="32521" CreationDate="2010-12-30T03:12:23.770" Score="7" ViewCount="119" Body="&lt;p&gt;I cannot even figure out who made it - even the IMDB page is mostly blank, and Wikipedia does not seem to have any information about it. For such a useful film in CompSci, it strikes me as odd that the only meaningful Internet presence I can find are horrible quality copies or excerpts on YouTube.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[Note: SO claims this question was migrated to here, but the URL they provide gives a 404, and I can't find it by searching Programmers.SE, so I'm re-asking...]&lt;/p&gt;&#xA;" OwnerUserId="9886" LastActivityDate="2011-02-17T06:25:45.433" Title="Where can I obtain a first-generation copy of the classic “Sorting out Sorting”?" Tags="&lt;education&gt;&lt;sorting&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="32502" PostTypeId="2" ParentId="32469" CreationDate="2010-12-30T03:14:39.777" Score="1" ViewCount="" Body="&lt;p&gt;You could try this...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://learnpythonthehardway.org/home&quot; rel=&quot;nofollow&quot;&gt;Learn to program the hard way&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've heard good things about it, but it's by Zed Shaw so it might suck.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2010-12-30T03:14:39.777" CommentCount="2" />
  <row Id="32503" PostTypeId="2" ParentId="32490" CreationDate="2010-12-30T03:20:30.607" Score="10" ViewCount="" Body="&lt;p&gt;@Matt, it's simpler than it looks. Let's take a look on the second video: They are writing a python program. Python is an interpred language - meaning that a program written in python does not need to be compiled, it just need to be interpreted to run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a simple editor, as &lt;a href=&quot;http://en.wikipedia.org/wiki/Notepad_%28software%29&quot; rel=&quot;nofollow&quot;&gt;notepad&lt;/a&gt; (windows) or &lt;a href=&quot;http://en.wikipedia.org/wiki/Nano_%28text_editor%29&quot; rel=&quot;nofollow&quot;&gt;nano&lt;/a&gt; (linux) you can write a simple text file, name it, let's say, &lt;code&gt;&quot;program.py&quot;&lt;/code&gt;, and run the interpreted from command-line, as below:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;python program.py&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If you want to program in &lt;a href=&quot;http://www.lua.org&quot; rel=&quot;nofollow&quot;&gt;Lua&lt;/a&gt; for example, you can write a simple text file named &lt;code&gt;&quot;program.lua&quot;&lt;/code&gt; using either &lt;a href=&quot;http://en.wikipedia.org/wiki/Notepad_%28software%29&quot; rel=&quot;nofollow&quot;&gt;notepad&lt;/a&gt; or &lt;a href=&quot;http://en.wikipedia.org/wiki/Nano_%28text_editor%29&quot; rel=&quot;nofollow&quot;&gt;nano&lt;/a&gt; and write a single line on your text file as below:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;print(&quot;my first program in lua&quot;)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Then go to the command prompt (cmd on windows, terminal in linux) and run the command:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;lua program.lua&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The key concepts:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A raw program is a text file. All you really need to write a program is a text editor;&lt;/li&gt;&#xA;&lt;li&gt;If your language choice is an interpreted one, you will need the interpreter to run your program (Lua, Basic, Python, etc...). This interpreter must be installed on your computer;&lt;/li&gt;&#xA;&lt;li&gt;If your language choice is a compiled one, you will need a &lt;a href=&quot;http://en.wikipedia.org/wiki/Toolchain&quot; rel=&quot;nofollow&quot;&gt;toolchain&lt;/a&gt; installed (mainly a compiler and a linker) to translate your source code to a binary machine-understandable-and-runnable code. Each language (C, Java, C++, C#, VB.Net, etc...) has it's own toolchain.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Hope that helps.&lt;/p&gt;&#xA;" OwnerUserId="9506" LastEditorUserId="9506" LastEditorDisplayName="" LastEditDate="2011-01-03T16:00:02.500" LastActivityDate="2011-01-03T16:00:02.500" CommunityOwnedDate="2011-01-03T16:15:01.900" CommentCount="5" />
  <row Id="32504" PostTypeId="1" CreationDate="2010-12-30T03:27:17.257" Score="6" ViewCount="84" Body="&lt;p&gt;I'm writing a program similar to Python's &lt;code&gt;timeit&lt;/code&gt; module. The idea is to time a function by executing it anywhere from 10 to 100,000 times depending on how long it takes and then report results.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've read that the most important number is the minimum execution time because this is the number that best reflects how fast the machine can run the code in question in the absence of other programs competing for processor time and memory. This argument makes sense to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would you be happy with this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would you want to know the average time or the standard deviation? Is there some other measure that you consider more important?&lt;/p&gt;&#xA;" OwnerUserId="2357" LastEditorUserId="2357" LastEditorDisplayName="" LastEditDate="2010-12-30T03:36:28.947" LastActivityDate="2010-12-30T04:12:21.513" Title="When profiling a function for time use, what information is desirable?" Tags="&lt;python&gt;&lt;statistics&gt;&lt;profiling&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="32505" PostTypeId="2" ParentId="32490" CreationDate="2010-12-30T03:29:26.237" Score="1" ViewCount="" Body="&lt;p&gt;I write my everyday code in a vim editor (basic text editor) and i can asure you that it goes smoothly (most of my code is PHP). Specially cause my dev env is a Dev base Linux distribution and i take quite advantage of shell tools.&#xA; I have programmed like this for a year now and this has helped me a lot when dealing with remote application deployment and production modifications where you generally got access to a *Nix console via ssh.&lt;/p&gt;&#xA;" OwnerUserId="10785" LastActivityDate="2010-12-30T03:29:26.237" CommunityOwnedDate="2011-01-03T16:15:01.900" />
  <row Id="32506" PostTypeId="2" ParentId="32490" CreationDate="2010-12-30T03:35:38.510" Score="0" ViewCount="" Body="&lt;p&gt;You really only need a text editor (hell, notepad will work) and a compiler/interpreter (the more important thing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You said something about doing it via command line? Shit sounds insane, but it is very well possible. I mean just using Windows built in command prompt you 'could' write to a file via &lt;code&gt;echo &quot;some codez&quot; &amp;gt; target_file.sauce&lt;/code&gt; but you would have to&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A) Be really good at what you are doing&lt;/p&gt;&#xA;&#xA;&lt;p&gt;B) Be writing a simple program&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C) Be bat-shit crazy&lt;/p&gt;&#xA;" OwnerUserId="7007" LastEditorUserId="7007" LastEditorDisplayName="" LastEditDate="2010-12-30T03:41:04.327" LastActivityDate="2010-12-30T03:41:04.327" CommunityOwnedDate="2011-01-03T16:15:01.900" CommentCount="2" />
  <row Id="32507" PostTypeId="2" ParentId="32490" CreationDate="2010-12-30T03:38:55.917" Score="1" ViewCount="" Body="&lt;p&gt;digital stored-program computers have been in use since the 1950s, while graphical user interfaces really only started to appear in the late 1960s (and for end users in the 1980s).  People had to use - and program - computers &lt;em&gt;somehow&lt;/em&gt; before then.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While it contains some inaccuracies (not every platform's user interface is a layer atop a command-line system) you should probably read Neal Stephenson's short piece &lt;em&gt;&lt;a href=&quot;http://www.cryptonomicon.com/beginning.html&quot; rel=&quot;nofollow&quot; title=&quot;In the Beginning Was the Command Line&quot;&gt;In the Beginning Was the Command Line&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It'll really get you thinking about things on your computer work under the hood, and how it's &quot;possible&quot; to program without an IDE, get real work done with a command line, and so on.&lt;/p&gt;&#xA;" OwnerUserId="9912" LastActivityDate="2010-12-30T03:38:55.917" CommunityOwnedDate="2011-01-03T16:15:01.900" />
  <row Id="32509" PostTypeId="2" ParentId="32504" CreationDate="2010-12-30T03:50:41.837" Score="1" ViewCount="" Body="&lt;p&gt;You definitely need more than a single value returned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would see Mean, Min, Max and Standard Deviation as a minimum to use the information in a statistically meaningful manner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a lot of issues that can affect performance that have variances even on a 'clean machine', even more so now that we are moving into a world with increasingly parallel processing and all the complexities with scheduling, etc that it brings.&lt;/p&gt;&#xA;" OwnerUserId="2673" LastEditorUserId="2673" LastEditorDisplayName="" LastEditDate="2010-12-30T04:12:21.513" LastActivityDate="2010-12-30T04:12:21.513" CommentCount="4" />
  <row Id="32510" PostTypeId="2" ParentId="32501" CreationDate="2010-12-30T03:56:31.753" Score="4" ViewCount="" Body="&lt;p&gt;Here you go: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://video.google.com/videoplay?docid=3970523862559774879#docid=-4110947752111188923&quot; rel=&quot;nofollow&quot;&gt;http://video.google.com/videoplay?docid=3970523862559774879#docid=-4110947752111188923&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quality's quite good. &lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2010-12-30T03:56:31.753" CommentCount="1" />
  <row Id="32511" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T03:57:32.743" Score="0" ViewCount="" Body="&lt;p&gt;Write a spec. What do you want your program to do? The screens (if its a UI based program) the logic, the input/output, etc. Keep the scope limited to what you can do in a reasonable amount of time (one week? one month?). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then build it. Stick to the spec, make it work according to what the spec needs. Sure you will come across distractions, sure you will have to do some research because you have never faced a particular issue before, but you will build something you wanted to build. This is different from building something that you just 'can' build. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you finish, refactor your code, try to make it more efficient. Then if you think your program is still not done, start over, improve the spec, improve the code and keep doing this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember, most commercial software solve a need.. it is very important to define the need, and the solution to filling that need before actually solving the problem. And as the need grows bigger and bigger, your software will grow too, over time!&lt;/p&gt;&#xA;" OwnerUserId="8652" LastActivityDate="2010-12-30T03:57:32.743" CommunityOwnedDate="2010-12-30T14:08:25.447" />
  <row Id="32512" PostTypeId="2" ParentId="32504" CreationDate="2010-12-30T04:00:27.313" Score="2" ViewCount="" Body="&lt;p&gt;The first question, is does your function do the same difficulty of computation every time? Or are some inputs intrinsically harder than others? Then what matters depends upon the environment it is to be used in. If it is a realtime application, there may be a hard upper bound on acceptable execution time. For most purposes average execution time would be relevant. Note that even for an unloaded machine -say you are only running a single thread, even processes that have the same formal compuational complexity (and even execute exactly the same instructions), might have greatly differing execution times, depending upon the pre-existing state of the cache memory, state of the TLB, etc. Performance of modern machines is not simple at all. Even the execution time of a chunk of code is no longer a good metric. For every chunk of code that is executed, the state of cache, the TLB, etc are altered, so the execution speed of whatever process follows, depends in a non trivial way upon what went on before.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-12-30T04:00:27.313" />
  <row Id="32513" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T04:05:08.013" Score="0" ViewCount="" Body="&lt;p&gt;I learned programming because I know what I want to program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming requires problem-solving skills, which it's hard to learn.&#xA;Try to reproduce something &quot;everyday&quot;, like a vending machine program that calculates changes in coins, and also an elevator simulation.&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-12-30T04:05:08.013" CommunityOwnedDate="2010-12-30T14:08:25.447" />
  <row Id="32514" PostTypeId="2" ParentId="27564" CreationDate="2010-12-30T04:24:02.153" Score="1" ViewCount="" Body="&lt;p&gt;Native regexp literals, Perl-style &lt;code&gt;qw{}&lt;/code&gt;, &lt;code&gt;qq{}&lt;/code&gt; and &lt;code&gt;q{}&lt;/code&gt; quotes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The chained method call for all objects:&#xA;&lt;code&gt;$object{&#xA;  -&amp;gt;method1();&#xA;  -&amp;gt;method2();&#xA;  -&amp;gt;getPerson()-&amp;gt;getName();&#xA; }&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The statement expression: &lt;code&gt;({echo $a; $a = $a + 1; $a})&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;CONSISTENT, NON-CONFIGURABLE, CANNOT BE TURNED OFF &lt;code&gt;short_open_tags&lt;/code&gt;.&#xA;If they are not configurable, PHP code will be more portable. See wha&#xA;including the &lt;a href=&quot;http://corelib.rubyonrails.org/classes/ERB.html&quot; rel=&quot;nofollow&quot;&gt;ERB&lt;/a&gt;-style tags&lt;/p&gt;&#xA;" OwnerUserId="1325" LastActivityDate="2010-12-30T04:24:02.153" CommunityOwnedDate="2010-12-30T04:24:02.153" />
  <row Id="32515" PostTypeId="2" ParentId="29367" CreationDate="2010-12-30T04:31:53.240" Score="0" ViewCount="" Body="&lt;p&gt;The obvious answer is that you should use library. It should almost be your default answer to that question. What you should &lt;em&gt;really&lt;/em&gt; ask if whether you need to do something by yourself instead. Reasons where it &lt;em&gt;may&lt;/em&gt; make sense:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it is doing something that fits right into your core competence as a company&lt;/li&gt;&#xA;&lt;li&gt;it is crucial to your company (no replacement, very central to what you do)&lt;/li&gt;&#xA;&lt;li&gt;you actually have the time to do it&lt;/li&gt;&#xA;&lt;li&gt;none of the existing library does what you need as you need it (not fast enough, requires too much memory, etc...)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It is a sign of bad programmers to think those reasons almost always apply, especially the last two ones. They actually almost never apply.&lt;/p&gt;&#xA;" OwnerUserId="6139" LastEditorUserId="6139" LastEditorDisplayName="" LastEditDate="2010-12-30T09:51:39.860" LastActivityDate="2010-12-30T09:51:39.860" />
  <row Id="32516" PostTypeId="2" ParentId="32444" CreationDate="2010-12-30T04:38:03.307" Score="0" ViewCount="" Body="&lt;p&gt;Couldn't you create your own copyright license ? I think that would be better. &lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-12-30T04:38:03.307" />
  <row Id="32517" PostTypeId="2" ParentId="32444" CreationDate="2010-12-30T04:52:48.270" Score="1" ViewCount="" Body="&lt;p&gt;Your conditions are not &quot;open source&quot; so you will not find an open source license that has those conditions. Specifically, disallowing the publishing of modified versions of the code makes it impossible to incorporate your code into other open source projects. As an example of this, many  Linux distributions will make modifications to libraries and applications so that they fit the distribution's naming or other conventions. If you disallow the re-distribution of modifications, then such changes will not be possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also don't know of any open source license which explicitly prohibits commercial applications. Most commercial software is also proprietary, and it's typically the proprietary nature of it that precludes the use of many open source libraries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you really want those conditions, then I'd say you'll need to find a lawyer to write a custom license for you.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-30T04:52:48.270" CommentCount="4" />
  <row Id="32518" PostTypeId="2" ParentId="32482" CreationDate="2010-12-30T04:53:49.753" Score="3" ViewCount="" Body="&lt;p&gt;IANAL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a legal standpoint in the United States, yes, software can be patented &lt;em&gt;as such.&lt;/em&gt; The USPTO has accepted and approved many thousands of such patent applications over the last 25 or so years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the European Union, no, software is not legally patentable &lt;em&gt;as such.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other countries have differing rules regarding the patentability of algorithms and processes. &lt;a href=&quot;http://en.wikipedia.org/wiki/Software_patent#History_and_current_trends&quot; rel=&quot;nofollow&quot;&gt;Wikipedia explains.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;That said,&lt;/strong&gt; in the US Supreme Court case &lt;a href=&quot;http://en.wikipedia.org/wiki/In_re_Bilski&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;In re Bilski&lt;/em&gt;&lt;/a&gt;, the Court rejected the &quot;machine-or-transformation test&quot; as the sole test of patentability. (One of the Justices dissented from the opinion, stating that the Court did not go &lt;em&gt;far enough&lt;/em&gt; in rejecting these kinds of patents wholesale.) The result is that many business method patents are now invalid, and the USPTO has begun denying software algorithms and other method patents - not all of them, but a few.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd suggest going to &lt;a href=&quot;http://www.groklaw.net/staticpages/index.php?page=2009022607324398&quot; rel=&quot;nofollow&quot;&gt;Groklaw's Bilski page&lt;/a&gt; and reading more about it.&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2010-12-30T04:53:49.753" CommentCount="2" />
  <row Id="32519" PostTypeId="1" CreationDate="2010-12-30T05:26:48.550" Score="0" ViewCount="82" Body="&lt;p&gt;From different questions/answers/articles in this and some other sites, I got the idea that the introductory language for programming should be-&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;High level&lt;/li&gt;&#xA;&lt;li&gt;Less verbose&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;C# is one of the heavily used high level languages being used these days. It's also multi-paradigm and descendant of C, the lingua-franca of all programming languages. So, I think it has the potential to be the introductory programming language. But I felt it's a bit verbose for the novice learners. Then LINQPad came into my mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With LINQPad, someone can start with C# without it's verbosity. Because you can just run one statement or few statements or a standalone function with LINQPad. Again you can run a full source file also. Another thing it provide is- using SQL. So, it can be used for learning SQL too. And not to mention, it's free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what you guys think about the idea of introducing programming with C# via LINQPad? Any thing to watch out? Any suggestion?&lt;/p&gt;&#xA;" OwnerUserId="963" LastEditorUserId="963" LastEditorDisplayName="" LastEditDate="2010-12-30T09:57:47.603" LastActivityDate="2010-12-30T16:21:05.603" ClosedDate="2011-01-02T00:37:04.120" Title="What about introduction to programming with C# via LINQPad?" Tags="&lt;c#&gt;&lt;education&gt;&lt;intro-to-programming&gt;&lt;suggestions&gt;" AnswerCount="0" />
  <row Id="32520" PostTypeId="2" ParentId="32490" CreationDate="2010-12-30T05:48:05.120" Score="0" ViewCount="" Body="&lt;p&gt;For database work, you just need a text editor (notepad++) and a command line client such as osql or sqlcmd. Not even a compiler.&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2010-12-30T05:48:05.120" CommunityOwnedDate="2011-01-03T16:15:01.900" />
  <row Id="32521" PostTypeId="2" ParentId="32501" CreationDate="2010-12-30T06:05:48.033" Score="6" ViewCount="" Body="&lt;p&gt;IMDB lists the author as Ronald Baecker. Wikipedia says he's a tenured Comp Sci professor at the University of Toronto.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Ronald_Baecker&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Ronald_Baecker&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The publication info there&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Baecker, R.M., with the assistance of Dave Sherman, Sorting out Sorting, 30 minute color sound film, Dynamic Graphics Project, University of Toronto, 1981. (Excerpted and “reprinted” in SIGGRAPH Video Review 7, 1983.) (Distributed by Morgan Kaufmann, Publishers.)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I dug around on the University of Toronto website and found his page&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://past.kmdi.utoronto.ca/rmb/&quot; rel=&quot;nofollow&quot;&gt;http://past.kmdi.utoronto.ca/rmb/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suggest contacting him directly, everyone always loves to hear how their work has influenced future generations!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also found in the references:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The half hour film — Sorting Out Sorting, one of the first profound demonstrations of the potential of computer animation to portray and elucidate computer program behaviour (publications B7, C13, D3, D4, G2, J5, K2).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;G2 links to a Quicktime (.mov) file version:  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://past.kmdi.utoronto.ca/rmb/video/sos_recap.mov&quot; rel=&quot;nofollow&quot;&gt;http://past.kmdi.utoronto.ca/rmb/video/sos_recap.mov&lt;/a&gt;  (summary speed x 12)&#xA;&lt;a href=&quot;http://past.kmdi.utoronto.ca/rmb/video/sos_dotclouds.mov&quot; rel=&quot;nofollow&quot;&gt;http://past.kmdi.utoronto.ca/rmb/video/sos_dotclouds.mov&lt;/a&gt;  (last scene)&lt;/p&gt;&#xA;" OwnerUserId="37" LastActivityDate="2010-12-30T06:05:48.033" CommentCount="1" />
  <row Id="32522" PostTypeId="1" AcceptedAnswerId="32537" CreationDate="2010-12-30T06:07:30.870" Score="1" ViewCount="198" Body="&lt;p&gt;I am interested to learn developing some plug ins for chrome and Firefox browsers as  hobby projects. However I know nothing about it, and I don't know if it is valuable for professional experience or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you know anybody who's developing this kind of plug ins professionally?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In case I can develop any plug in, does it have any significance in my resume? (Extra info: I have 1.5 years of experience in various Java Techs, from servers to mobile).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How some companies and some other employers can see this plug in development professionally?&lt;/p&gt;&#xA;" OwnerUserId="9006" LastActivityDate="2010-12-30T09:23:28.657" Title="Developing Browser plugins. Spcially for chrome and firefox, what is the future?" Tags="&lt;future&gt;&lt;browser&gt;&lt;plugins&gt;&lt;professionalism&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="32524" PostTypeId="2" ParentId="32522" CreationDate="2010-12-30T06:44:39.843" Score="3" ViewCount="" Body="&lt;p&gt;Nobody has a crystal ball.  Do the things you are interested in doing.  Writing browser plugins is almost certainly going to help you develop related skills that will help you professionally, even if you never write another browser plugin.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2010-12-30T07:01:51.420" LastActivityDate="2010-12-30T07:01:51.420" />
  <row Id="32525" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T06:58:15.713" Score="0" ViewCount="" Body="&lt;p&gt;Try thinking up the smallest program you want and code it. Just the other day i wrote up code that automatically downloaded every file from a list of files. That was actually the easy part. The hour was mostly spent on creating the GUI, having it load/save settings and small simple things like that. Gui is a time vacuum.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also i suggest using a language with a massive library (it doesnt matter if its portable or not). And a statically compiled language if your starting out (which means no ruby, python or javascript). I like .NET using the C# language. You can try Boo with SharpDevelop or use C# or VB.NET using &lt;a href=&quot;http://www.microsoft.com/express/Windows/&quot; rel=&quot;nofollow&quot;&gt;Visual Studios Express&lt;/a&gt;. I like visual studios because i am a &lt;a href=&quot;http://stackoverflow.com/questions/100420/hidden-features-of-visual-studio-2005-2008&quot;&gt;power user and use things like Ctrl + -, Ctrl + [, Ctrl + ','&lt;/a&gt;. But anything with breakpoints and the callstack is good. The only reason i can stand to debugging Javascript is bc firebug has these (along with immediate window and a watch)&lt;/p&gt;&#xA;" OwnerUserId="2528" LastEditorUserId="2528" LastEditorDisplayName="" LastEditDate="2010-12-30T07:09:37.317" LastActivityDate="2010-12-30T07:09:37.317" CommunityOwnedDate="2010-12-30T14:08:25.447" />
  <row Id="32526" PostTypeId="1" AcceptedAnswerId="32608" CreationDate="2010-12-30T07:50:57.867" Score="8" ViewCount="358" Body="&lt;p&gt;I've read that Windows is not recommended for Ruby development and this is last thing that stops me from starting some projects in Ruby... Are there any changes to this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or any suggestions to make development less painful?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS. I really like Win 7 as desktop OS, but for production I'm going to use Linux server.&lt;/p&gt;&#xA;" OwnerUserId="8153" LastActivityDate="2011-02-19T03:54:55.647" Title="Is Windows suitable for Ruby developer box?" Tags="&lt;work-environment&gt;&lt;windows&gt;&lt;ruby&gt;" AnswerCount="6" FavoriteCount="2" />
  <row Id="32527" PostTypeId="2" ParentId="29722" CreationDate="2010-12-30T08:05:59.197" Score="12" ViewCount="" Body="&lt;p&gt;There should not be a &quot;C++&quot; course in a computer science curriculum.  If a specific language is used for a specific class, that should just be incidental to the class.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone think MIT, Carnegie Mellon, or other top-tier schools teach &quot;C++&quot; and &quot;Java&quot; classes?  They teach an &quot;introduction to programming&quot; class that focuses on learning to program while mastering the mechanics of a single language, and everything beyond that is about computer science and uses whatever language the professor, dean or department feels is appropriate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I was at Carnegie Mellon, the Intro Programming course was in C, Fundamental Structures of Computer Science I was in C++ the following semester, and Fundamental Structures of Computer Science II was in Standard ML the semester after that.  (These were the three basic CS courses everything else built on.)  The first course spent pretty much the entire time on the C language, but the subsequent two courses spent &lt;strong&gt;maybe a week&lt;/strong&gt; on the languages they used, and that only because they were still low-level classes.  Subsequent classes spend less time on languages and mechanics, and all of their time on actual computer science.  CS students are expected after their first couple languages to just pick up additional ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One also shouldn't say &quot;But that's for MIT/CMU/Stanford/Caltech/whatever students, what about everyone else?&quot;  I wouldn't short-change students' educations just because they didn't (or couldn't) attend a top-tier university.  If one has the opportunity to help provide a great education, it can be argued one has the moral/ethcial duty to do so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your friend is adjunct faculty and is required to teach a &quot;C++&quot; class, I'd strongly suggest taking a look at what some of the top-tier schools teach in their other courses, and building the course around that.  For example, the school may not teach much about data structures right now; the class could be turned into &quot;Data Structures Using C++.&quot;  The lessons can be structured to add C++ language concepts as needed to implement the fundamental data structures, which will give students a solid grasp of both those data structures and the language itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will probably help the students enormously in their education as well to come out of a second-semester course with a solid understanding of fundamental data structures.&lt;/p&gt;&#xA;" OwnerUserId="9912" LastActivityDate="2010-12-30T08:05:59.197" CommentCount="4" />
  <row Id="32528" PostTypeId="2" ParentId="32526" CreationDate="2010-12-30T08:21:34.557" Score="1" ViewCount="" Body="&lt;p&gt;Whilst it is possible to use Windows for Ruby development, it's not the easiest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In order to make it easier on you and still allow you to use Windows, install a virtual machine app such as &lt;a href=&quot;http://virtualbox.org&quot; rel=&quot;nofollow&quot;&gt;VirtualBox&lt;/a&gt; and install an Ubuntu virtual machine and develop on that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Deploying on the same type of system you deploy on will let you figure out how to set up the operating system and the packages for the application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, more Ruby people develop on *NIX so that when something does go wrong, you'll be able to reach out the community and come across people who would more likely be able to help you solve that problem.&lt;/p&gt;&#xA;" OwnerUserId="8840" LastActivityDate="2010-12-30T08:21:34.557" CommentCount="1" />
  <row Id="32529" PostTypeId="2" ParentId="32522" CreationDate="2010-12-30T08:23:56.187" Score="1" ViewCount="" Body="&lt;p&gt;Plugin like apps and all things web have a very limited market so if your aim is commercial development then may be you should consider it carefully. That said, it is a interesting project to gain knowledge and develop skills.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastEditorUserId="8073" LastEditorDisplayName="" LastEditDate="2010-12-30T08:35:00.187" LastActivityDate="2010-12-30T08:35:00.187" />
  <row Id="32530" PostTypeId="1" CreationDate="2010-12-30T08:28:06.650" Score="3" ViewCount="318" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/384471/mysql-db-lib-for-python-3-0&quot;&gt;This SO question&lt;/a&gt; is now more than two years old. MySQL is an incredibly popular database engine, Python is an incredibly popular programming language, and Python 3 has been officially released two years ago, and was available even before that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's more, the whole &lt;code&gt;mysqldb&lt;/code&gt; module is just a layer translating Python's db-api to MySQL's API. It's not that big of a library.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I must be missing something here. How come almost&lt;b&gt;&lt;sup&gt;*&lt;/sup&gt;&lt;/b&gt; nobody in the entire open source community has spent the (I'm guessing) two weeks it takes to port this lib? &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Is Python 3 that unpopular?&lt;/li&gt;&#xA;&lt;li&gt;Is the combination of python and mysql not as common as I assume?&lt;/li&gt;&#xA;&lt;li&gt;Or maybe it's just a lot harder to port mysqldb than I assume?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Anyone know the inside story on this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;* Now I see that &lt;a href=&quot;http://stackoverflow.com/questions/384471/mysql-db-lib-for-python-3-0/3611517#3611517&quot;&gt;this guy&lt;/a&gt; has done it, which takes some of the wind out of my question, but it still seems to little and too late to make sense.&lt;/sup&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: OK, I'm aware that the stock answers for these kind of questions cover this one as well. Patches welcome, scratch your itch, we don't work for you and we don't have the time, etc. I actually took a shot at porting this about a year ago, but it was my first time doing anything with Python C extensions, and I failed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My point in writing this was not a plea for somebody to write it, but genuine curiosity: it seems that some &lt;a href=&quot;http://www.mail-archive.com/numpy-discussion@scipy.org/msg26524.html&quot; rel=&quot;nofollow&quot;&gt;much more complicated libraries&lt;/a&gt; have been ported to python 3 already, and in the &lt;a href=&quot;http://www.python.org/3kpoll&quot; rel=&quot;nofollow&quot;&gt;poll for which libraries should be ported&lt;/a&gt;, mysqldb is not even nominated! That suggests that maybe (2) is the right answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: I found that there are &lt;a href=&quot;http://code.google.com/p/pymysql&quot; rel=&quot;nofollow&quot;&gt;several&lt;/a&gt; new &lt;a href=&quot;https://launchpad.net/myconnpy&quot; rel=&quot;nofollow&quot;&gt;libraries&lt;/a&gt; that provide mysql support under Python 3, I just wasn't googling hard enough. That explains everything.&lt;/p&gt;&#xA;" OwnerUserId="4732" LastEditorUserId="4732" LastEditorDisplayName="" LastEditDate="2011-03-13T10:58:16.407" LastActivityDate="2011-03-13T10:58:16.407" Title="How could there still not be a mysqldb module for Python 3?" Tags="&lt;python&gt;&lt;mysql&gt;" AnswerCount="5" />
  <row Id="32531" PostTypeId="2" ParentId="32469" CreationDate="2010-12-30T08:35:59.443" Score="3" ViewCount="" Body="&lt;p&gt;James Shore made a great series of 15 minutes webcasts that can teach you a lot. &lt;a href=&quot;http://jamesshore.com/Blog/Lets-Play/&quot; rel=&quot;nofollow&quot;&gt;http://jamesshore.com/Blog/Lets-Play/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also a lot of help are &lt;a href=&quot;http://www.dimecasts.net/&quot; rel=&quot;nofollow&quot;&gt;dimecast&lt;/a&gt; and &lt;a href=&quot;http://www.w3schools.com/&quot; rel=&quot;nofollow&quot;&gt;w3cschools&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it does look like you are searching for the easy way. Programming isn't easy, there is a lot to learn and there is a lot of ways of doing that. You can't become a master by just following a walkthrough. What are you focusing on? What you could do for next five years is (Sorry a lot of books):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Start with syntax (just read code and write pet projects, Google)&lt;/li&gt;&#xA;&lt;li&gt;Follow with Object oriented analysis and design ( books &quot;&lt;a href=&quot;http://www.bookdepository.com/book/9780596008673/Head-First-Object-oriented-Analysis-and-Design&quot; rel=&quot;nofollow&quot;&gt;head first OOAD&lt;/a&gt;&quot;, Craig Larman's &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131489062&quot; rel=&quot;nofollow&quot;&gt;applying uml and patterns&lt;/a&gt;, Bob Martin's &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131857258&quot; rel=&quot;nofollow&quot;&gt;Agile Principles, Patterns and practices&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;In the mean time learn other programming paradigms ( &lt;a href=&quot;http://www.bookdepository.com/book/9781934356593/Seven-Languages-in-Seven-Weeks&quot; rel=&quot;nofollow&quot;&gt;seven-languages-in-seven-weeks&lt;/a&gt; )&lt;/li&gt;&#xA;&lt;li&gt;Start design patterns (&lt;a href=&quot;http://www.bookdepository.com/book/9780596007126/Head-First-Design-Patterns&quot; rel=&quot;nofollow&quot;&gt;head first design patterns&lt;/a&gt;, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201633612&quot; rel=&quot;nofollow&quot;&gt;gang of four design patterns&lt;/a&gt;) &lt;/li&gt;&#xA;&lt;li&gt;Start algorithms (&lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;project euler&lt;/a&gt; is fun)&lt;/li&gt;&#xA;&lt;li&gt;Follow with enterprise patterns (Martin fowler's &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321127420&quot; rel=&quot;nofollow&quot;&gt;Pattern's of enterprise architecture&lt;/a&gt; and the &lt;a href=&quot;http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Dstripbooks&amp;amp;field-keywords=POSA&amp;amp;x=0&amp;amp;y=0&quot; rel=&quot;nofollow&quot;&gt;POSA series&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;In the mean time, do, do, do and learn the different development processes/skills and attitude (Unit testing, TDD, DDD) read &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/020161622X&quot; rel=&quot;nofollow&quot;&gt;The pragmatic programmer&lt;/a&gt;, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735619670&quot; rel=&quot;nofollow&quot;&gt;Code Complete 2&lt;/a&gt;, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321503627&quot; rel=&quot;nofollow&quot;&gt;Growing Object-Oriented Software guided by tests&lt;/a&gt;, Eric Evans's Domain &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321125215&quot; rel=&quot;nofollow&quot;&gt;driven design&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;learn non programming skills, talking in public, storytelling, stakeholder management&lt;/li&gt;&#xA;&lt;li&gt;learn user interface design (David Plat's &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321466756&quot; rel=&quot;nofollow&quot;&gt;Why software sucks&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And to go overboard:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;look at Microsoft’s &lt;a href=&quot;http://apparch.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;app arch guide&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/IEEE_1471&quot; rel=&quot;nofollow&quot;&gt;IEEE 1471&lt;/a&gt;, &lt;a href=&quot;http://www.opengroup.org/togaf/&quot; rel=&quot;nofollow&quot;&gt;TOGAF&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Zachman_Framework&quot; rel=&quot;nofollow&quot;&gt;Zachman&lt;/a&gt;, &lt;a href=&quot;http://www.archimate.org/&quot; rel=&quot;nofollow&quot;&gt;Archimate&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;look at RUP, SCRUM, LEAN, KANBAN, Waterfall, Prince2 (&lt;a href=&quot;http://www.youtube.com/watch?v=RAtacHPAHLI&quot; rel=&quot;nofollow&quot;&gt;yes talk to satan and god just to hear both sides&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;learn details about products you need to use Windows servers, Linux servers,IIS, Appache, Ftp, mail servers,Database server, Active directoy, biztalk, Sharepoint etc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And I am sure I missed a lot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most important do, do, do (&lt;a href=&quot;http://programmers.stackexchange.com/questions/32469/i-need-a-step-by-step-sample-programming-tutorial-book-or-website/32483#32483&quot;&gt;like darkknight said&lt;/a&gt;) Question everything and find experts to work with.&lt;/p&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2010-12-30T08:35:59.443" />
  <row Id="32533" PostTypeId="1" AcceptedAnswerId="32573" CreationDate="2010-12-30T09:13:50.433" Score="28" ViewCount="1237" Body="&lt;p&gt;In college, I was never interested in theory. I never read it. No matter how much I tried, I was unable to read stuff and not know what was actually happening practically. Like for example, in my course on automata theory, my professor told me everything possibly related to the mathematical aspect of it, but not even once did he mention where it would be used practically. This is just an example. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I managed to pass my college and interned with a company also, where I did a project and thankfully they didn't bother about my grades, as they were above average. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I am interested in knowing what subjects should a CS student must absolutely and positively be aware of? Subjects that can have relevance in the industry. This is because I  have some free time on my hands and it would help me better to have a good understanding of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your suggestions? Like for one, algorithms is one subject. &lt;/p&gt;&#xA;" OwnerUserId="8163" LastActivityDate="2011-01-08T01:04:46.033" CommunityOwnedDate="2011-01-05T14:29:46.470" Title="CS subjects that an undergraduate must know." Tags="&lt;career&gt;&lt;learning&gt;" AnswerCount="19" CommentCount="4" FavoriteCount="18" />
  <row Id="32534" PostTypeId="1" CreationDate="2010-12-30T05:03:35.703" Score="5" ViewCount="415" Body="&lt;p&gt;I need a really talented, hardworking programmer who knows Cocoa and Objective C for my Iphone App. I'm looking for a partner and not just a programmer. It's a pretty big project that takes a talented programmer. What would you say is the best marketplace for someone like this. I've checked out digitalpoint and sitepoint but they are really for smaller projects. &lt;/p&gt;&#xA;" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-30T16:20:38.590" LastActivityDate="2011-01-09T05:04:40.153" Title="What is the best marketplace for freelance programmers?" Tags="&lt;iphone&gt;&lt;freelance&gt;&lt;app&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="7" />
  <row Id="32535" PostTypeId="2" ParentId="32534" CreationDate="2010-12-30T05:38:01.607" Score="1" ViewCount="" Body="&lt;p&gt;You can check this link&#xA;&lt;a href=&quot;http://www.elance.com&quot; rel=&quot;nofollow&quot;&gt;www.elance.com&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2010-12-30T09:14:58.493" />
  <row Id="32536" PostTypeId="2" ParentId="32533" CreationDate="2010-12-30T09:22:46.853" Score="6" ViewCount="" Body="&lt;p&gt;After talking to a couple of company representatives and friends that had many interviews:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Databases&lt;/li&gt;&#xA;&lt;li&gt;OOP&lt;/li&gt;&#xA;&lt;li&gt;Algorithms&lt;/li&gt;&#xA;&lt;li&gt;Data Structures&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;tend to be &lt;strong&gt;&quot;musts&quot;&lt;/strong&gt; for new hires (or as they said, &quot;highly recommended&quot; courses).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other courses that may be useful are computer security, assembly, and machine architecture. Many of my professors have recommended to me a compiler course too. Also, if you have time I would highly recommend math courses like graph theory, discrete mathematics, and combinatorics. You learn a lot of reasoning skills in those classes that most CS courses gloss over, but end up being very useful when writing very complex programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope that helps!&lt;/p&gt;&#xA;" OwnerUserId="11409" LastEditorUserId="11409" LastEditorDisplayName="" LastEditDate="2010-12-30T09:28:26.473" LastActivityDate="2010-12-30T09:28:26.473" CommunityOwnedDate="2011-01-05T14:29:46.470" CommentCount="5" />
  <row Id="32537" PostTypeId="2" ParentId="32522" CreationDate="2010-12-30T09:23:28.657" Score="2" ViewCount="" Body="&lt;p&gt;Developing Browser Plugins are not different from any other kind of software development using C/C++. Chrome and Firefox uses the npruntime plugin API which is not very well documented and has changed a bit since its release, e.g the really useful stuff has been added quite late (Gecko 1.9 supports NPN_PluginThreadAsyncCall).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When deciding when to write a plugin, one must thing through really if the problem cannot be solved using standard browser functionality such as JavaScript, HTML5 etc. To require the end user to install a plugin will be a showstopper in most situations (Admin policy, malware risks etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you decide to go further with writing plugins for browsers, I really recommend the &lt;a href=&quot;http://www.firebreath.org/&quot; rel=&quot;nofollow&quot;&gt;firebreath&lt;/a&gt; framework. It provides a platform and technology independent API for both IE ActiveX and FF/Chrome NPAPI plugins. Starting with the examples on mozilla.org can be really hard.&lt;/p&gt;&#xA;" OwnerUserId="7098" LastActivityDate="2010-12-30T09:23:28.657" CommentCount="1" />
  <row Id="32538" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T09:27:11.837" Score="0" ViewCount="" Body="&lt;p&gt;The biggest challenge to learning how to program is to come up with something someone finds useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My biggest issue in programming for myself has always been inventing problems that needs solving.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started programming in the mid 80's by doing a course and then working for a company that told me what to solve. Your alternative is to do what I did in the 90's when I wanted to learn JavaScript - I joined communities (one was the site SO calls the hyphened site - &lt;em&gt;start the downvoting&lt;/em&gt;...) where people asked questions, and commented with my suggestions on how to solve the problem. Having a specific task with a known input and output, really helped me focussing on finding the answer or similar answers and applying this to the problem at hand. After a few years of answering questions, I was fluent.&#xA;I am now doing the same with jQuery. I would have a hard time learning the jQuery syntax without specific problems that can be solved using that framework.&lt;/p&gt;&#xA;" OwnerUserId="7336" LastActivityDate="2010-12-30T09:27:11.837" CommunityOwnedDate="2010-12-30T14:08:25.447" />
  <row Id="32540" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T09:29:18.970" Score="0" ViewCount="" Body="&lt;p&gt;I died too much in some ZX spectrum game, so only way was to add more lives. I had a book, that describes what code and where I need to change, so it was pretty easy. Then I find how to add ammo (unfortunately game become pointless after that). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So from my point of view, best way to learn - is to achieve minor and easy goals. For me it was modifying existent code. If you are satisfied with every program you met, maybe programming is not for you? &lt;/p&gt;&#xA;" OwnerUserId="4784" LastActivityDate="2010-12-30T09:29:18.970" CommunityOwnedDate="2010-12-30T14:08:25.447" CommentCount="1" />
  <row Id="32541" PostTypeId="1" AcceptedAnswerId="32545" CreationDate="2010-12-30T09:29:55.550" Score="6" ViewCount="249" Body="&lt;p&gt;I was going through some PHP functions and I could not help notice the following:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?php&#xA;function foo(&amp;amp;$var) { }&#xA;&#xA;foo($a); // $a is &quot;created&quot; and assigned to null&#xA;&#xA;$b = array();&#xA;foo($b['b']);&#xA;var_dump(array_key_exists('b', $b)); // bool(true)&#xA;&#xA;$c = new StdClass;&#xA;foo($c-&amp;gt;d);&#xA;var_dump(property_exists($c, 'd')); // bool(true)&#xA;?&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Notice the &lt;code&gt;array_key_exists()&lt;/code&gt; and &lt;code&gt;property_exists()&lt;/code&gt; function.&#xA;In the first one, the property name(key for an array) is the first parameter while in the second one it is the second parameter. By intuition, one would expect them to have similar signature. This can lead to confusion and the development time may be wasted by making corrections of this type.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Shouldn't PHP, or any language for that matter, consider making the signatures of related functions consistent?&lt;/p&gt;&#xA;" OwnerUserId="1560" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-01-23T06:20:33.727" LastActivityDate="2011-01-23T06:20:33.727" Title="Why are PHP function signatures so inconsistent?" Tags="&lt;php&gt;&lt;naming&gt;&lt;functions&gt;&lt;function-signatures&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="32542" PostTypeId="2" ParentId="32533" CreationDate="2010-12-30T09:39:34.577" Score="2" ViewCount="" Body="&lt;p&gt;I would also add Software Engineering or Design Practices to the list, though their content is usually picked up by students in the industry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, in my opinion(not backed up by much experience though) companies don't really want most of the theoretical things taught in courses like databases etc., they want people to understand and &lt;em&gt;be able to use&lt;/em&gt; these things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Due to the downvote, I feel like explaining my answer. I am a final year computer science student, and my experience is based on my internship and job interviews with leading companies in the field. In my experience, people are rarely required to use complicated algorithms or code very complicated data structures in interviews or in jobs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;More useful if you can create and use databases, use source control, know how to debug properly, know how to use design patterns etc. However, as I said, these skills are typically picked up in the industry and not covered in courses. Software Engineering/Design Practices typically involves building a mid-sized project, very useful for learning all theses skills.&lt;/p&gt;&#xA;" OwnerUserId="11155" LastEditorUserId="11155" LastEditorDisplayName="" LastEditDate="2010-12-30T11:35:17.407" LastActivityDate="2010-12-30T11:35:17.407" CommunityOwnedDate="2011-01-05T14:29:46.470" CommentCount="9" />
  <row Id="32543" PostTypeId="2" ParentId="32541" CreationDate="2010-12-30T09:43:30.190" Score="2" ViewCount="" Body="&lt;p&gt;Because PHP is The Language Without Any Specification. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And literally everyone could add a couple of functions, and there was no question of consistency at the beginning. SO, the mess.&lt;/p&gt;&#xA;" OwnerUserId="5351" LastActivityDate="2010-12-30T09:43:30.190" CommentCount="5" />
  <row Id="32544" PostTypeId="2" ParentId="32530" CreationDate="2010-12-30T09:49:34.103" Score="2" ViewCount="" Body="&lt;p&gt;I think it is mostly 1 - if you have an existing project, you will not port it to python 3 overnight, especially since the benefit/cost ratio is so low. Several core libraries have just been ported this year, and I think it will take quite a few years before python 3 becomes even the dominant dialect of python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, it seems that the mysqldb module is updated rather slowly, and for several reasons (better suited to the async frameworks that are so hyped ATM), other pure python drivers are being developed at the moment.&lt;/p&gt;&#xA;" OwnerUserId="6139" LastEditorUserId="6139" LastEditorDisplayName="" LastEditDate="2010-12-30T14:35:55.720" LastActivityDate="2010-12-30T14:35:55.720" />
  <row Id="32545" PostTypeId="2" ParentId="32541" CreationDate="2010-12-30T09:50:58.610" Score="5" ViewCount="" Body="&lt;p&gt;What you propose is essentially changing signatures to many existing functions. Think for a minute what effect that would have on existing code. Now suppose PHP group have released PHP version N that changes signatures of 30% of the functions. Now imagine you have to write code that runs on both PHP v.N and PHP v.{N-1} - how much fun would that be?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now imagine you are a hoster or corporative data center manager - what incentive would you have to support PHP v.N, provided that once you switch, all the code would be broken and the users will come to your office with pitchforks and torches?&lt;/p&gt;&#xA;" OwnerUserId="10080" LastActivityDate="2010-12-30T09:50:58.610" CommentCount="4" />
  <row Id="32546" PostTypeId="2" ParentId="32533" CreationDate="2010-12-30T09:52:33.633" Score="1" ViewCount="" Body="&lt;p&gt;Data Structures and Algorithms.&lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2010-12-30T09:52:33.633" CommunityOwnedDate="2011-01-05T14:29:46.470" CommentCount="10" />
  <row Id="32547" PostTypeId="2" ParentId="32541" CreationDate="2010-12-30T09:55:08.260" Score="2" ViewCount="" Body="&lt;p&gt;Most good languages are and strive to be consistent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is just the reality of the state of PHP. As StasM mentioned, it would be a nightmare to try and switch things like that after the fact. It would affect too much existing code. Often PHP simply deprecates functions and creates newer better functions that are more consistent, but that can take a lot of time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think successful PHP programmers either remember the particular syntax or use software that automatically tells them the syntax.&lt;/p&gt;&#xA;" OwnerUserId="11927" LastActivityDate="2010-12-30T09:55:08.260" CommentCount="3" />
  <row Id="32548" PostTypeId="2" ParentId="32541" CreationDate="2010-12-30T10:00:17.950" Score="1" ViewCount="" Body="&lt;p&gt;The (a?) reason was to remain compatible with previous versions of PHP. Instead of changing function names that would break many applications, the functions remain. However, by intuition, yes consistent function naming should be taken into consideration for new languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have to disagree with you on the fact development time is wasted. Learning PHP may take longer to understand the naming of certain functions, but once mastered (or at least aware of) it becomes a non issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compatibility &gt; Consistency (at least to PHP)&lt;/p&gt;&#xA;" OwnerUserId="1635" LastActivityDate="2010-12-30T10:00:17.950" />
  <row Id="32549" PostTypeId="2" ParentId="32526" CreationDate="2010-12-30T10:03:52.263" Score="0" ViewCount="" Body="&lt;p&gt;I was reading about making a Face Book app you can dev on Windws it's easy to do it with MS Visual Studio 2008/2010 versions should be fine you just need to install some Ruby on Rails plugins and your done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before you say you do not need Rails install it because I have and it has made things a lot more simple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have made a number of programs using it.&lt;/p&gt;&#xA;" OwnerUserId="12012" LastEditorUserId="12012" LastEditorDisplayName="" LastEditDate="2011-02-19T03:54:55.647" LastActivityDate="2011-02-19T03:54:55.647" />
  <row Id="32550" PostTypeId="2" ParentId="32526" CreationDate="2010-12-30T10:17:05.573" Score="1" ViewCount="" Body="&lt;p&gt;You could try bitnami stack: &lt;a href=&quot;http://bitnami.org/stack/rubystack&quot; rel=&quot;nofollow&quot;&gt;http://bitnami.org/stack/rubystack&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It saves me lot of time when I need to test some ruby apps under windows. But I'm not sure if it good for development use. &lt;/p&gt;&#xA;" OwnerUserId="4784" LastActivityDate="2010-12-30T10:17:05.573" />
  <row Id="32551" PostTypeId="2" ParentId="32526" CreationDate="2010-12-30T10:17:18.657" Score="5" ViewCount="" Body="&lt;p&gt;A few years back when I was developing with Rails I used a windows machine and it was absolutely fine. I doubt this has really changed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only caveat I would add is that if you want to do something with a regular GUI framework that will be harder, but certainly for tinkering with Rails there is nothing at all wrong with windows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's all free- why not just download the tools and see for yourself?&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-12-30T10:17:18.657" />
  <row Id="32552" PostTypeId="2" ParentId="32530" CreationDate="2010-12-30T10:21:21.240" Score="2" ViewCount="" Body="&lt;p&gt;Because you haven't written it yet. ;-) It's all open-source, after all. Scratch your itch. I'm also still using Python 2.x (x=7 now). Google app engine requires 2.x. Most legacy code requires 2.x. And there isn't a whole lot more in 3.x that's that much better than the already pretty good Python 2.x. &lt;/p&gt;&#xA;" OwnerUserId="12019" LastActivityDate="2010-12-30T10:21:21.240" />
  <row Id="32553" PostTypeId="2" ParentId="32533" CreationDate="2010-12-30T10:26:45.493" Score="1" ViewCount="" Body="&lt;p&gt;When I was at college there were quite a few topics that I couldn't see a use for in my real life and sometimes that intuition has been proved right ( Formal Methods really are only practical for trivial problems in most cases ) and other times it has been entirely wrong ( Big-O notation is very useful ) so I guess on the whole my younger self was part right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to prepare yourself for the real world, in addition to the stuff @K-Ran recommends above, I suggest reading &lt;em&gt;Code Complete&lt;/em&gt; and using that as a basis for deeper research into any topics you find difficult or don't feel you have sufficiently covered.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-12-30T10:26:45.493" CommunityOwnedDate="2011-01-05T14:29:46.470" CommentCount="4" />
  <row Id="32554" PostTypeId="2" ParentId="32534" CreationDate="2010-12-30T10:30:55.503" Score="4" ViewCount="" Body="&lt;p&gt;How about approaching this backwards- there are quite a few small/one-man type application developers on the iWhatever platform. Why not take a look at the people who developed some apps that you like and see whether any of them do freelance work? Even if they don't they may be able to recommend someone who does and I would always take a recommendation within a community over a random response on a site like freelancers.net or wherever. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might also do a simple google search for Freelance Cocoa developers in your area- proximity can be a big asset if you're looking to go into a partnership and there are good programmers to be found in most places.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-12-30T10:30:55.503" />
  <row Id="32555" PostTypeId="2" ParentId="32534" CreationDate="2010-12-30T10:40:32.783" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.vworker.com&quot; rel=&quot;nofollow&quot;&gt;www.vworker.com&lt;/a&gt; is an excellent site for freelance programmers. I've done several projects there, and have found it pretty satisfying. However, some people believe their rules are biased in favor of the buyers. I think perhaps such rules are necessary to ensure good quality work and timely delivery.&lt;/p&gt;&#xA;" OwnerUserId="8903" LastActivityDate="2010-12-30T10:40:32.783" />
  <row Id="32556" PostTypeId="1" CreationDate="2010-12-30T10:44:55.347" Score="3" ViewCount="223" Body="&lt;p&gt;hi everyone. I am doing research on the topic as per subject line.&#xA;I am currently attending BSc Honours Studies in computer science at university of pretoria - south africa, and intend to do masters/PhD either in america or the uk.&#xA;I am a java programmer, and currently hold a sun scjp certification (intend to study further).&#xA;as per my findings so far, america seems to be a better option than uk. &#xA;could you kindly comment on what good universities are there for computer science postgraduate studies in america, especially in california? and what about work thereafter?&#xA;I also need to sort this out asap, as I need to decide if will doing toefl or ielts.&#xA;please comment. shabangu&lt;/p&gt;&#xA;" LastActivityDate="2010-12-30T11:23:53.177" ClosedDate="2010-12-30T11:24:31.233" Title="what are best cities for a java developer to live and work in america?" Tags="&lt;java&gt;&lt;oracle&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="32557" PostTypeId="2" ParentId="30171" CreationDate="2010-12-30T10:53:27.927" Score="-1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Just Create a web application and be done with it.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having developed both desktop applications and web applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have come to the conclusion that the majority of desktop application work just as well as web application. With the rise of RIA technologies such as Silverlight, the gap has narrowed even further.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please note, I'm not advocating all desktop applications here, in some cases a full FAT client will be needed.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-30T10:53:27.927" CommentCount="2" />
  <row Id="32558" PostTypeId="2" ParentId="2757" CreationDate="2010-12-30T11:01:33.600" Score="0" ViewCount="" Body="&lt;p&gt;1 monitor (15.6&quot;, 1024x800, notebook), 3 virtual desktop (Compiz-Fusion):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;e-mail, web browser (for reading articles, blogs, and searching for work-related docs), music player, IM chat windows,&lt;/li&gt;&#xA;&lt;li&gt;text editor, test browser window (only for web developement), terminal window,&lt;/li&gt;&#xA;&lt;li&gt;SQL browser, deploy copy, monitoring windows (e.g. memory watch), open documentations (which needs to be open long term, e.g. specifications, design docs), other long-term tasks.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Sometimes I use my desktop monitor for displaying docs.&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-12-30T11:01:33.600" CommunityOwnedDate="2011-01-26T13:55:26.910" />
  <row Id="32559" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T11:03:41.853" Score="3" ViewCount="" Body="&lt;h1&gt;Divide and conquer.&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;It's as simple, or hard as that.&lt;/p&gt;&#xA;" OwnerUserId="3787" LastActivityDate="2010-12-30T11:03:41.853" CommunityOwnedDate="2010-12-30T14:08:25.447" />
  <row Id="32560" PostTypeId="1" CreationDate="2010-08-25T07:08:12.273" Score="5" ViewCount="122" Body="&lt;p&gt;I am looking to start pushing for more Agile processes to be brought into play in the work place and do my best to outlaw cowboy coding as much as possible. I understand many of the different models and am just looking to see which model has the higher uptake (or which parts of the model as well), and in what industry it is being used.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Extreme Programming (&lt;a href=&quot;http://en.wikipedia.org/wiki/Extreme_Programming&quot; rel=&quot;nofollow&quot;&gt;XP&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Adaptive Software Development (&lt;a href=&quot;http://en.wikipedia.org/wiki/Adaptive_Software_Development&quot; rel=&quot;nofollow&quot;&gt;ASD&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Scrum_%28development%29&quot; rel=&quot;nofollow&quot;&gt;Scrum&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Dynamic Systems Development Model (&lt;a href=&quot;http://en.wikipedia.org/wiki/Dynamic_Systems_Development_Method&quot; rel=&quot;nofollow&quot;&gt;DSDM&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://alistair.cockburn.us/Crystal+methodologies+main+foyer&quot; rel=&quot;nofollow&quot;&gt;Crystal&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Feature Driven Development (&lt;a href=&quot;http://en.wikipedia.org/wiki/Feature_Driven_Development&quot; rel=&quot;nofollow&quot;&gt;FDD&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Lean Software Development (&lt;a href=&quot;http://en.wikipedia.org/wiki/Lean_software_development&quot; rel=&quot;nofollow&quot;&gt;LSD&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Agile Modelling (&lt;a href=&quot;http://en.wikipedia.org/wiki/Agile_Modeling&quot; rel=&quot;nofollow&quot;&gt;AM&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Agile Unified Process (&lt;a href=&quot;http://en.wikipedia.org/wiki/Agile_Unified_Process&quot; rel=&quot;nofollow&quot;&gt;AUP&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Kanban&quot; rel=&quot;nofollow&quot;&gt;Kanban&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you care to add to your answer with comments about what you don't like, do like or have tried and it hadn't worked, that would also be appreciated.&lt;/p&gt;&#xA;" OwnerUserId="7494" LastActivityDate="2010-12-30T12:35:44.763" CommunityOwnedDate="2010-08-25T07:08:12.273" ClosedDate="2010-12-30T12:43:02.890" Title="What Agile Model do you use at Work?" Tags="&lt;polls&gt;&lt;agile&gt;&lt;agile-processes&gt;" AnswerCount="4" CommentCount="10" />
  <row Id="32561" PostTypeId="2" ParentId="32560" CreationDate="2010-08-25T07:35:59.207" Score="5" ViewCount="" Body="&lt;h2&gt;Scrum&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;In my current company, and my previous, we use Scrum. When I hear about other companies using agile processes, it is usually Scrum too. I can't really compare it with the rest, as I haven't used them.&lt;/p&gt;&#xA;" OwnerUserId="2802" LastActivityDate="2010-12-30T11:06:13.607" CommunityOwnedDate="2010-08-25T07:35:59.207" CommentCount="1" />
  <row Id="32562" PostTypeId="2" ParentId="32560" CreationDate="2010-08-25T07:51:38.833" Score="6" ViewCount="" Body="&lt;h2&gt;Scrum (Variation)&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Similar to @jdv's &lt;a href=&quot;http://stackoverflow.com/questions/3563557/what-agile-model-do-you-use-at-work/3563754#3563754&quot;&gt;answer&lt;/a&gt;, in my past 3 workplaces we used (some sort of) Scrum. Two of these were telecommunication-related. From interviews and talks with fellow developers, it seems that big telcos like Nokia, Siemens and Ericsson are adapting mainly Scrum for SW development, at least in their European development centers. I had an interview at a small financial SW firm a couple of years ago where they were using XP, but I have no practical experience with it, neither with other methodologies.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;On the Scrum variations&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;In one company we used fairly strict Scrum. In the 2nd it was a somewhat watered down version, due to company culture, project peculiarities and personal issues. I.e. we had no single product backlog and product owner, and the sponsors kept setting us irrealistic deadlines, but our project manager was afraid of confrontation, thus he couldn't get them to understand and accept the Scrum way. (AFAIK this has improved somewhat since I left the company.) Also, we did not adjust our velocity properly, so there was always leftover in the backlog at the end of each sprint.&#xA;Another reason for this was that we were working with obscure legacy code and lots of fairly advanced math, which we were far from understanding well. So there were hidden mines in many of the tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my current place, we use a mix of Agile practices which still resembles Scrum the most (although we don't call it Scrum). However, we have a mixed group of developers, support personnel and a business analyst, the latter of which work on other projects too (or mostly). Most of the tasks are assigned to individuals at the beginning of each sprint, so team collaboration is fairly minimal. Also, for management reasons, we don't measure and use velocity, which is probably one of the main reasons we can never burn down the whole sprint backlog. The other reason, similar to the earlier project, is working with legacy code.&lt;/p&gt;&#xA;" OwnerUserId="14221" LastActivityDate="2010-12-30T11:06:13.607" CommunityOwnedDate="2010-08-25T07:51:38.833" CommentCount="3" />
  <row Id="32563" PostTypeId="2" ParentId="32560" CreationDate="2010-08-30T10:34:44.930" Score="4" ViewCount="" Body="&lt;p&gt;Does it really matter? Look at Crystal and read how Alistair says &quot;take the bits that work for you&quot;. Anyone who thinks that doing one &quot;true&quot; agile methodology has to use the entire procedures as laid down in the holy book of agile is completely missing the point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Agile manifesto is about removing the processes and procedures that get in the way of getting things done, all the polled agile methodolgies are variations on that theme - different ways of allowing yourself to work with the minimum amount of 'crap' whilst still having enough that stops you descending into total chaos.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, if having mainly Scrum, but with a bit of Kanban-style bins, because that works for your organisation's setup, then go for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the answer to the poll is: look at them all, discard the ones that you think will not work best for you and pick the one that appears to be best for you, then try it, and if the pilot works, implement it. And don't be afraid to tweak it.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;For us, we're still looking (too much work to do at the same time!) but we're heading toward &lt;strong&gt;Kanban&lt;/strong&gt; because it is geared around lots of customers demanding projects all the time, so we can more effectively respond to the changing demands on our time. Lots of 'little' projects continually ongoing was a nightmare for our PMs, this should make it a lot easier for them.&lt;/p&gt;&#xA;" OwnerUserId="22685" LastActivityDate="2010-12-30T11:06:13.607" CommunityOwnedDate="2010-08-30T10:34:44.930" CommentCount="2" />
  <row Id="32564" PostTypeId="1" CreationDate="2010-11-25T17:31:36.117" Score="1" ViewCount="68" Body="&lt;h1&gt;Background&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I work in a non-IT based company, as a professional software developer, building a large scale internal database system. I am fortunate to have a fairly senior position within the company, and have been working here for around 4 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often I get asked by management &quot;how do you learn new things?&quot;. To be honest, I don't know how to answer this. Over the last 6 months, I've really gotten my teeth into some new techniques and technologies to make my level of coding far better and hopefully improve the quality of the software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if it's just refreshing my skills on things I've learnt already. Like last week I dived into some complex XLinq and TPL code (.net). Nothing revolutionary, but I feel like I am a bit better than before.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Question&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;The question is, how do I &lt;em&gt;prove&lt;/em&gt; this to my employer? It'd be nice to be able to put this on paper.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Possibilities&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I could:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Keep a journal of what I've learnt - keeping the technical bits in (nobody would understand or care, but it's better than them being omitted)&lt;/li&gt;&#xA;&lt;li&gt;???? (I've run out of ideas already)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Any ideas? Thanks, Tom&lt;/p&gt;&#xA;" OwnerUserId="11056" LastActivityDate="2010-12-30T12:18:39.307" ClosedDate="2010-12-31T15:02:53.130" Title="Continual Professional Development - proving new skills to non-technical employers" Tags="&lt;training&gt;&lt;employment&gt;&lt;non-technical&gt;&lt;professional-development&gt;" AnswerCount="5" CommentCount="9" />
  <row Id="32565" PostTypeId="2" ParentId="32564" CreationDate="2010-11-25T17:35:33.647" Score="1" ViewCount="" Body="&lt;p&gt;I would say by taking and passing professional certification exams. Of course this isn't ideal but they're going to want some tangible and measurable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would question why the business wants to measure you on metrics they can't understand. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Surely, they're more interested in the return on investment of the projects you deliver, quality of output (no. of defects maybe?), release on schedule / budget. These are metrics I'd prefer to be measured on&lt;/p&gt;&#xA;" LastActivityDate="2010-12-30T11:07:15.790" CommentCount="3" />
  <row Id="32566" PostTypeId="2" ParentId="32564" CreationDate="2010-11-25T17:43:29.313" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Apply some or the other new thing to the work at hand. Write down how it improved your work - the application got faster, the code smaller or more flexible, new functionality were added quickly that would otherwise require significant amount of work using the older technologies and so on.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do some certifications like Mark suggests. Keep in mind these are very expensive (the ones that matter anyway). I believe most people get their exams paid by their employer so this suggestion is not realistic.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-30T11:07:15.790" />
  <row Id="32567" PostTypeId="2" ParentId="32564" CreationDate="2010-11-25T18:06:46.380" Score="1" ViewCount="" Body="&lt;p&gt;Start a blog. Make some time in your schedule to write a post every week about something you've learned or revisited recently. You don't have to learn something every week - if you learn two things in one week, save one up!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This will (a) help you consolidate and record what you've learned, (b) satisfy your management that you're learning things, and (c) make the web an even more knowledgeable place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either that, or give them a graph of the growth of your StackOverflow rep every month.&lt;/p&gt;&#xA;" OwnerUserId="854" LastActivityDate="2010-12-30T11:07:15.790" CommentCount="1" />
  <row Id="32568" PostTypeId="2" ParentId="32564" CreationDate="2010-11-25T18:24:37.440" Score="0" ViewCount="" Body="&lt;p&gt;I learn new things by researching what I need to know in order to fulfill the project.  With most projects I've done I know&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;new technologies of learned&lt;/li&gt;&#xA;&lt;li&gt;skills I've refined through rethinking/doing differently&lt;/li&gt;&#xA;&lt;li&gt;skills I've refined through regular use&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If I cared about tracking what I actually learned I would start with this and break down by completed project.  Include what I learned, where I learned it, and application.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2010-12-30T11:07:15.790" />
  <row Id="32569" PostTypeId="2" ParentId="32556" CreationDate="2010-12-30T11:07:38.680" Score="0" ViewCount="" Body="&lt;p&gt;Masters that is M.s. and Ph.D. are two different lines. reason for stating so is that after you Ph.D.only if you want to do research either in lab or some good university. First thing you should be concerned about for Ph.D. is GRE. Especially in case of Ph.D., some profile with some good research work will add chances to good university admission. For getting list of good university, ask Google God.  &lt;/p&gt;&#xA;" OwnerUserId="12022" LastActivityDate="2010-12-30T11:07:38.680" />
  <row Id="32571" PostTypeId="1" AcceptedAnswerId="32583" CreationDate="2010-12-30T11:11:38.287" Score="6" ViewCount="240" Body="&lt;p&gt;I am beginner in developing test cases, and want to follow good patterns for developing test cases rather than following some person or company's specific ideas. Some people don't make test cases and just develop the way their senior have done in their projects. I am facing lot problems like object dependencies (when want to test method which persist A object i have to first persist B object since A is child of B). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please suggest some good books or sites preferably for learning design pattern for unit test cases. Or reference to some good source code or some discussion for Dos and Donts will do wonder. So that i can avoid doing mistakes be learning from experience of others.&lt;/p&gt;&#xA;" OwnerUserId="12022" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-12-30T16:35:41.270" LastActivityDate="2010-12-30T16:35:41.270" Title="design pattern for unit testing?" Tags="&lt;java&gt;&lt;testing&gt;&lt;design-patterns&gt;&lt;unit-testing&gt;" AnswerCount="2" CommentCount="20" FavoriteCount="4" />
  <row Id="32572" PostTypeId="2" ParentId="32556" CreationDate="2010-12-30T11:23:53.177" Score="2" ViewCount="" Body="&lt;p&gt;I'm a fellow South African myself!&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Studying in the US&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I hope that your honours degree is next year (2011), as applications for studying in the US will have closed by now. The generally open around early September and close early December.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can be rather difficult getting into a US university. Not only will it be extremely expensive as a South African ($20,000 a year and up is not uncommon, while ivy league universities go beyond $50,000), some universities don't understand that the average mark in South African universities is significantly lower than theirs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll want to apply to many universities: I recommend at least 20. The application process is long and complicated, but if you're serious about getting there it'll be worth it. The application costs (about $50 a pop) can add up, but if that cost puts you off then you probably can't afford tuition fees.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apply for a diverse range of ranked universities: a couple above the bar you'd set yourself in case you're lucky and/or underestimate your skills, a couple low-end ones so that you're safe and almost assured an acceptance and the rest spread across the board but clustered around where you think you fit in. You'll have to do some research to find appropriate universities, but believe me you'll have no difficulty finding enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some big differences between MSc in SA and the US: SA generally does dissertation, whereas the US generally does course-work (exams all over again!). More EU universities offer MSc by dissertation if that's what you're after. Many US universities only have a PhD application process, where you combine a 2 year MSc by course-work and 3 year PhD by dissertation into a single 5 year degree. A failure generally results in an MSc being awarded.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Be sure to keep visas in mind. It's not all that straight-forward as a SA citizen (I'm fortunate to have dual SA-Italian citizenship), but study visas are more generously handed out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider taking both TOEFL and IETLS, just in case. Don't leave it too late either. Also note that many universities will let this requirement slide since you attend an English university.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Working in the US&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Sillicon Valley is the largest hub of software companies in the US. You won't get anything like it anywhere else in the world. You'll walk along a street and be in awe as you see all major software companies: from Adobe to Google, NVIDIA to Facebook and ever so many more. The result is that you're always bumping into like-minded people on the streets or on the train. I've done a 3 month internship in Santa Clara (southern point of SV) and it was a truly amazing experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seattle is another hub, and I hear that besides the constant rain it's a much nicer city to live in. They have Microsoft, Amazon and many more. I've never been there myself though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't have much experience of other US states regarding software companies, but the west coast is the main hub.&lt;/p&gt;&#xA;" OwnerUserId="8679" LastActivityDate="2010-12-30T11:23:53.177" />
  <row Id="32573" PostTypeId="2" ParentId="32533" CreationDate="2010-12-30T11:25:06.653" Score="29" ViewCount="" Body="&lt;p&gt;Believe it or not, one of the things that turned out to be of critical importance to me in later life was Compiler Construction. Not the modern namby-pamby version using Lex and Yacc, thats for dummies. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;REAL compiler construction where you write your own symbol scanner and parser from the ground up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is something I thought I would never, ever, use again. But on the last 20 years that course has proven its weight in gold 4 times over. Ever command processor I've had to write, every incoming-message-scanner, every user dispatcher, every script interpreter, has used the principles from that course. Do it that way and life is sweet, clear and simple.  AND I even gave all the info to a colleague who had not done it - he had to actually write a compiler for an abstract machine. Which I might add has gone on to be very commercially successful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I had to go up and thank a university course lecturer in any one subject, this would be it. Without that I would have got by but my solutions would have been much much uglier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(And before somebody jumps up and says &quot;well you could have used lex and yacc...&quot; the answer is, perhaps - it depends a lot on the system. In some cases the programming languages were not C (eg PL/M and Ada), in some cases no readily available Lex or Yacc were available for the platform. Knowing basics means a solution is at hand instead of wringing hands trying to figure out how to bend some tool to fit the problem.)&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2010-12-30T11:25:06.653" CommunityOwnedDate="2011-01-05T14:29:46.470" CommentCount="6" />
  <row Id="32574" PostTypeId="2" ParentId="29367" CreationDate="2010-12-30T11:30:51.500" Score="0" ViewCount="" Body="&lt;p&gt;It's rare, but there are situations, when you can't install 3rd party libraries, or even if it would be comfortable/effective. I think, it's a good &lt;em&gt;design&lt;/em&gt; issue to isolate the part of the project, where libs can't be used.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We're developing a home aut. system, where the back-end is running on small Linux machines. In this environment we can't use the usual Linux goodies, as Apache, MySQL, PHP, or smart libraries. Our home aut. server uses only stdlib, pthreads and optionally Alsa. We have to compile to ARM, PPC, AVR, MIPS and other non-X86 systems, which are sometimes extremly restricted. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, we've made the following design decisions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The functionality of the server should be minimal. The most complex function of it is a simple webserver, which can provide files and &lt;em&gt;2 type&lt;/em&gt; of AJAX request. The server is modular, the components are very small. We use &lt;strong&gt;dataflow architecture&lt;/strong&gt;, which makes it possible.&lt;/li&gt;&#xA;&lt;li&gt;The developing environment for the server is complex. We have 2 extra layers - a configurationa and a dataflow layer - before the GNU toolchain. Using buzzwords, I should say that &lt;em&gt;we moved the complexity from run-time to compile-time&lt;/em&gt;. We have no limits when we prepare and compile stuff, e.g. our dataflow compiler is written in PHP - it's not optimal, but we don't care, it produces the appropiate result. Also, configuration tools are written in JS-AJAX/PHP, earlier we used Excel(!) to quickly set up a configuration.&lt;/li&gt;&#xA;&lt;li&gt;The UI is an AJAX-based WebApp, where we have no limits again. The UI sends only atomic requests to the server, all heavy stuff is done by JavaScript. Also, we use a JS framework (DomAssistant).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So, from the 3 subsystem (server, toolchain, UI) only the server is where we can't enjoy the richness of libraries and platforms.&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-12-30T11:30:51.500" />
  <row Id="32575" PostTypeId="2" ParentId="32469" CreationDate="2010-12-30T11:45:01.677" Score="0" ViewCount="" Body="&lt;p&gt;(Altough, my example contains web elements, it's not a website which you're avoid of.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write a chat:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;AJAX-based UI: there's an input box, where the user enters his/her nick, another for message, and of course, and area for the list of messages;&lt;/li&gt;&#xA;&lt;li&gt;PHP or JAVA back-end;&lt;/li&gt;&#xA;&lt;li&gt;SQL db for storing message history.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;When the user enters the application, last x messages appear in the message area. He/she got an automatic user name, which can be changed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Old messages should be deleted from the db somehow, by a background job (a thread in JAVA, or a command-line or cron initiated script with PHP).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This system is complex enough, it contains multiple platforms, concurrency problem (the messages must arrive in the same order for everyone!), but it's not huge.&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-12-30T11:45:01.677" />
  <row Id="32576" PostTypeId="2" ParentId="32490" CreationDate="2010-12-30T12:00:30.707" Score="0" ViewCount="" Body="&lt;p&gt;It's not only &lt;em&gt;possible&lt;/em&gt;, but - at least once in your life - you &lt;em&gt;have to&lt;/em&gt; do programming without IDE. It will help you understand the compilation process, the use of libraries - maybe that'll open your eyes what programming means really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I think a good text editor is better than an IDE. For MS-Windows I recommend &lt;a href=&quot;http://www.pspad.com/&quot; rel=&quot;nofollow&quot;&gt;PSPad&lt;/a&gt; (it was such a strong flash, like MultiEdit was in the MS-DOS era), for GNU/Linux try &lt;a href=&quot;http://www.geany.org/&quot; rel=&quot;nofollow&quot;&gt;Geany&lt;/a&gt; (maybe it's in your distro's repo).&lt;/p&gt;&#xA;" OwnerUserId="1813" LastActivityDate="2010-12-30T12:00:30.707" CommunityOwnedDate="2011-01-03T16:15:01.900" />
  <row Id="32577" PostTypeId="1" AcceptedAnswerId="32622" CreationDate="2010-12-30T12:07:55.600" Score="5" ViewCount="126" Body="&lt;p&gt;Reading answers to &lt;a href=&quot;http://programmers.stackexchange.com/questions/32482/can-an-algorithm-be-patented&quot;&gt;this question&lt;/a&gt; - and many other discussions of software patents - it seems that most of us as programmers feel that software patents are a bad idea. At the same time we are in the group most likely to lose out if our work is copied or stolen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what level of Intellectual Property Protection does code and software need? Is copyright sufficient? Are patents necessary? As software is neither a physical object nor simple text, should we be thinking of a third path that falls somewhere between the two? Do we need any protection at all? If you had the facility to set up the law for this, what would you choose?&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-12-30T15:43:42.007" Title="How would you want to see software intellectual property protected?" Tags="&lt;legal&gt;&lt;software-patent&gt;" AnswerCount="7" FavoriteCount="1" />
  <row Id="32578" PostTypeId="1" AcceptedAnswerId="32582" CreationDate="2010-12-30T12:10:51.313" Score="10" ViewCount="635" Body="&lt;p&gt;I know this subject is a bit controversial and there are a lot of various articles/opinions floating around the internet. Unfortunatelly, most of them assume the person doesn't know what the difference between NULL and empty string is. So they tell stories about surprising results with joins/aggregates and generally do a bit more advanced SQL lessons. By doing this, they absolutely miss the whole point and are therefore useless for me. So hopefully this question and all answers will move subject a bit forward.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's suppose I have a table with personal information (name, birth, etc) where one of the columns is an email address with varchar type. We assume that for some reason some people might not want to provide an email address. When inserting such data (without email) into the table, there are two available choices: set cell to NULL or set it to empty string (''). Let's assume that I'm aware of all the technical implications of choosing one solution over another and I can create correct SQL queries for either scenario. The problem is even when both values differ on the technical level, they are exactly the same on logical level. After looking at NULL and '' I came to a single conclusion: I don't know email address of the guy. Also no matter how hard i tried, I was not able to sent an e-mail using either NULL or empty string, so apparently most SMTP servers out there agree with my logic. So i tend to use NULL where i don't know the value and consider empty string a bad thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After some intense discussions with colleagues i came with two questions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;am I right in assuming that using empty string for an unknown value is causing a database to &quot;lie&quot; about the facts? To be more precise: using SQL's idea of what is value and what is not, I might come to conclusion: we have e-mail address, just by finding out it is not null. But then later on, when trying to send e-mail I'll come to contradictory conclusion: no, we don't have e-mail address, that @!#$ Database must have been lying!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Is there any logical scenario in which an empty string '' could be such a good carrier of important information (besides value and no value), which would be troublesome/inefficient to store by any other way (like additional column). I've seen many posts claiming that sometimes it's good to use empty string along with real values and NULLs, but so far haven't seen a scenario that would be logical (in terms of SQL/DB design).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;P.S. Some people will be tempted to answer, that it is just a matter of personal taste. I don't agree. To me it is a design decision with important consequences. So i'd like to see answers where opion about this is backed by some logical and/or technical reasons.&lt;/p&gt;&#xA;" OwnerUserId="11457" LastActivityDate="2011-03-18T04:48:39.033" Title="SQL: empty string vs NULL value" Tags="&lt;design&gt;&lt;sql&gt;&lt;database&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="2" />
  <row Id="32579" PostTypeId="2" ParentId="32577" CreationDate="2010-12-30T12:16:10.443" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If an algorithm is named after you, let that be your legacy&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Speaking frankly, although software can be &quot;secured&quot; legally, in actual practical terms it can never be fully protected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you happen to create or discover a real worthwhile algorithm, then the world will come to know it, you will automatically get that recognition (if its useful).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, your legacy is your &quot;protection&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's my view any way.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-30T12:16:10.443" CommentCount="0" />
  <row Id="32580" PostTypeId="2" ParentId="32564" CreationDate="2010-12-30T12:18:39.307" Score="0" ViewCount="" Body="&lt;p&gt;Send emails to company (or people who interested in) each month of what you have learned and if it could be anyhow valuable for company. 5-10 sentences and try to be non-technical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;E.g. you just start using new library, then write about it, and that you solved issues X,Y,Z using it. Or you find a way how to make logs better, and it will reduce time for support by 5 minutes (as they could diagnose problem faster). You found a good tool like FreeCommander, write short review about it, people will be glad to have one file browser window, instead of 20.&lt;/p&gt;&#xA;" OwnerUserId="4784" LastActivityDate="2010-12-30T12:18:39.307" />
  <row Id="32581" PostTypeId="1" AcceptedAnswerId="32614" CreationDate="2010-12-30T12:18:54.407" Score="8" ViewCount="244" Body="&lt;p&gt;If you had a colleague who didn't understand the benefits of Separation of Concerns, or didn't understand it quite enough to apply consistently in their daily work, how would you explain it to them?&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-30T18:07:56.647" Title="How do you explain Separation of Concerns to others?" Tags="&lt;code-quality&gt;&lt;object-oriented&gt;" AnswerCount="6" />
  <row Id="32582" PostTypeId="2" ParentId="32578" CreationDate="2010-12-30T12:22:50.340" Score="13" ViewCount="" Body="&lt;p&gt;I would say that &lt;code&gt;NULL&lt;/code&gt; is the correct choice for &quot;no email address&quot;. There are &lt;em&gt;many&lt;/em&gt; &quot;invalid&quot; email addresses, and &quot;&quot; (empty string) is just one. For example &quot;foo&quot; is not a valid email address, &quot;a@b@c&quot; is not valid and so on. So just because &quot;&quot; is not a valid email address is no reason to use it as the &quot;no email address&quot; value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think you're right in saying that &quot;&quot; is not the correct way to say &quot;I don't have a value for this column&quot;. &quot;&quot; &lt;strong&gt;is&lt;/strong&gt; a value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example of where &quot;&quot; might be a valid value, separate to &lt;code&gt;NULL&lt;/code&gt; could be a person's middle name. Not every one has a middle name, so you need to differentiate between &quot;no middle name&quot; (&quot;&quot; - empty string) and &quot;I don't know if this person has a middle name or not&quot; (&lt;code&gt;NULL&lt;/code&gt;). There's probably many other examples where an empty string is still a valid value for a column.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-30T12:22:50.340" CommentCount="2" />
  <row Id="32583" PostTypeId="2" ParentId="32571" CreationDate="2010-12-30T12:24:44.927" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://xunitpatterns.com/&quot; rel=&quot;nofollow&quot;&gt;Xunit Test patterns&lt;/a&gt;, simply a must have. &lt;/p&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2010-12-30T12:24:44.927" CommentCount="2" />
  <row Id="32584" PostTypeId="2" ParentId="32577" CreationDate="2010-12-30T12:24:50.990" Score="0" ViewCount="" Body="&lt;p&gt;Copyright is not enough since you can have multiple different implementations of the same algorithm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Copyright is automatic&lt;/code&gt;, you have to prove your legacy. &lt;code&gt;Patents are not automatic&lt;/code&gt;, you must apply for one before talking about it in public.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Patent has a huge disadvantage: you have to describe your algorithm in details, and publish it!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many companies choose &lt;strong&gt;not to protect&lt;/strong&gt; their software for that reason. Especially when they don't have to ship any binaries, for example SaaS. Nobody will be able to use it outside the your environment. Nobody will be able to use existing findings to improve it.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-30T12:35:30.140" LastActivityDate="2010-12-30T12:35:30.140" CommentCount="2" />
  <row Id="32585" PostTypeId="2" ParentId="32577" CreationDate="2010-12-30T12:25:12.873" Score="1" ViewCount="" Body="&lt;p&gt;As I'm mostly working within the scientific community, I'm mostly used to implementations of algorithms and techniques that are published in peer-reviewed journals. These are part of the public domain. The gain for the developer of the technique/algorithm lies within the citations to his or her original paper. These are what matters when going for another position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This said, I think it's pretty hard to patent software for a number of reasons. First of all, the patent has to be very well outlined. A patent for a social network is just not enough, it has to be about a specific implementation. But that specificity is a drawback as well: Anything that is not fitting within the specification, is strictly speaking no violation of the patent. So something that looks like it but isn't the same, will pass. And that's not too difficult to do, as has been proven in many, many cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Copyright on code is perfectly sound and an automatic right. Nobody should copy your code and get rich with it. But then again, refactoring code isn't too hard either, so again you have only little protection. It gets a bit better when talking about a specific smart database design, but then again you'll have to prove you're the first one who tought about that. Given the literally billions of lines of code written every year, that's going to be hard as well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can try to protect your code, but the only people that are sure to get rich from patenting and copyright cases are the lawyers. At one point, somebody will find a way to copy your idea within the bounds of either patent law or copyright law. So better just leave it at that and make sure you make the back-engineering of your application pretty hard for any copy-cat. Today, customers are more bound by the support given than by the original application anyway, so that's where a company should put their money in my humble view.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe one good illustration is the hybrid car: It's patented allright, but that didn't stop other car builders from coming up with a similar idea. And as long as it is not an exact copy, there's little that can be done about it. So rather than fighting big legal wars, they just put that money in new developments, trying to stay one step before the rest.&lt;/p&gt;&#xA;" OwnerUserId="7268" LastEditorUserId="7268" LastEditorDisplayName="" LastEditDate="2010-12-30T12:30:47.597" LastActivityDate="2010-12-30T12:30:47.597" />
  <row Id="32587" PostTypeId="2" ParentId="32560" CreationDate="2010-12-30T12:35:44.763" Score="0" ViewCount="" Body="&lt;p&gt;We use the &quot;Dilbert method&quot;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://dilbert.com/strips/comic/2007-11-26/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://i.imgur.com/kxIqt.gif&quot; alt=&quot;Agile&quot;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, that was a previous employer. My current employer uses a variantion of Scrum which is basically the same as above, except they have a meeting about it every day...&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2010-12-30T12:35:44.763" CommunityOwnedDate="2010-12-30T12:35:44.763" />
  <row Id="32588" PostTypeId="2" ParentId="32578" CreationDate="2010-12-30T12:41:44.187" Score="2" ViewCount="" Body="&lt;p&gt;In your example if it is value directly from web field - I would use empty string. If user could option to specify that he don't want to provide email, or could delete it - then NULL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are link with points that you could consider: &lt;a href=&quot;http://stackoverflow.com/questions/405909/null-vs-empty-when-dealing-with-user-input/405945#405945&quot;&gt;http://stackoverflow.com/questions/405909/null-vs-empty-when-dealing-with-user-input/405945#405945&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4784" LastActivityDate="2010-12-30T12:41:44.187" />
  <row Id="32589" PostTypeId="2" ParentId="32577" CreationDate="2010-12-30T12:44:23.230" Score="5" ViewCount="" Body="&lt;p&gt;IMO, copyright is enough. There is just too much abuse with patents to justify its applicability to software. Patents are useful and necessary in domains where making the invention is extremely costly, but using the invention is cheap; e.g. drugs that cost billions to develop. But that's not the case with software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Too many software patents cover simple, cheap ideas. Many people can have the same idea, which is in too many cases just a straightforward solution to a common problem. Only large companies have the necessary money to aquire and defend patents, but I don't think those companies need software patents. Many companies just get them to be able to defend against patent ligitation.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-30T12:44:23.230" CommentCount="1" />
  <row Id="32591" PostTypeId="1" CreationDate="2010-12-30T12:46:00.843" Score="2" ViewCount="150" Body="&lt;p&gt;I'm searching for books that are not too big such as &lt;em&gt;Thinking in Java&lt;/em&gt;. I don't care much about excess use of lyrics, so a book like &lt;em&gt;The C Programming Language&lt;/em&gt; is the best way I learn.&lt;br&gt;&#xA;The books must be about java-related technologies, so &lt;em&gt;anything&lt;/em&gt; will do as long as it's light and gets to the point fast.&lt;/p&gt;&#xA;" OwnerUserId="12030" LastActivityDate="2011-01-09T18:38:38.817" Title="Good 'light' books on java and java-related technologies" Tags="&lt;learning&gt;&lt;java&gt;&lt;books&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="32592" PostTypeId="1" CreationDate="2010-12-30T12:47:30.530" Score="0" ViewCount="135" Body="&lt;p&gt;Sir, I am a student of BE third year from C.S. branch. I want to get the certificate of Oracle. Will it help me get a job? Also, in which manner should I try for OCP.&lt;/p&gt;&#xA;" OwnerUserId="12031" LastEditorUserId="2471" LastEditorDisplayName="" LastEditDate="2010-12-30T18:40:19.150" LastActivityDate="2010-12-30T18:40:19.150" ClosedDate="2011-01-01T12:42:47.420" Title="Usefulness of Oracle Certifications" Tags="&lt;oracle&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="32593" PostTypeId="1" AcceptedAnswerId="32599" CreationDate="2010-12-30T12:47:55.240" Score="1" ViewCount="193" Body="&lt;p&gt;I have several iOS/iPhone apps that have been continually selling in small amounts in over 2 dozen different countries, even though the app UIs and all the store descriptions are only in English.  In a few countries where English is not the official or native language, a few apps are selling far better than is proportionate for those country's population size compared with the U.S.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So why Internationalize apps?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What kind of increase, if any, in sales might a typical app see if it is Internationalized into given local languages?  Which major languages might be likely to see the greatest improvement in app sales or downloads due to a localized app description?&lt;/p&gt;&#xA;" OwnerUserId="9742" LastActivityDate="2010-12-30T13:14:53.953" Title="Value of Internationalization in the iPhone App store?" Tags="&lt;iphone&gt;&lt;internationalization&gt;" AnswerCount="2" CommentCount="3" />
  <row Id="32594" PostTypeId="2" ParentId="32581" CreationDate="2010-12-30T12:48:47.753" Score="2" ViewCount="" Body="&lt;p&gt;If he/she works in an office, take it as an example, explain the role of each staffs in that office, and ask him, what would happen, if those staffs aren't divided according to their jobs? &lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2010-12-30T12:48:47.753" />
  <row Id="32595" PostTypeId="2" ParentId="27164" CreationDate="2010-12-30T12:49:43.617" Score="0" ViewCount="" Body="&lt;p&gt;Three things :&#xA;Show the members that you are worthy. Earn respect. &#xA;Show respect and listen to the team members. &#xA;Don't be biased(even if you like a chick in the team) :-)&lt;/p&gt;&#xA;" OwnerUserId="12028" LastActivityDate="2010-12-30T12:49:43.617" />
  <row Id="32596" PostTypeId="2" ParentId="32581" CreationDate="2010-12-30T12:50:30.887" Score="0" ViewCount="" Body="&lt;p&gt;Well I like to explain SOC as something which allows us to start car without hot-wiring it every-time.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2010-12-30T12:50:30.887" />
  <row Id="32597" PostTypeId="2" ParentId="32591" CreationDate="2010-12-30T12:51:20.390" Score="4" ViewCount="" Body="&lt;p&gt;If you are a beginner to Java, then there is a book called &lt;strong&gt;Head First Java&lt;/strong&gt;. And, you can't cover entire Java related technology in a single book.&lt;/p&gt;&#xA;" OwnerUserId="10935" LastEditorUserId="10935" LastEditorDisplayName="" LastEditDate="2010-12-30T13:32:21.307" LastActivityDate="2010-12-30T13:32:21.307" CommentCount="2" />
  <row Id="32598" PostTypeId="2" ParentId="32592" CreationDate="2010-12-30T12:56:53.490" Score="1" ViewCount="" Body="&lt;p&gt;Do you mean OCJP? If you are familiar in Java, then, you can use &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0071591060&quot; rel=&quot;nofollow&quot;&gt;SCJP Sun Certified Programmer for Java 6 Exam 310-065&lt;/a&gt;. And, if you are new to Java, first learn Java with Head First Java, then go for the above book for that certificate exam. Finally, there is a good forum for these Oracle certificates called &lt;a href=&quot;http://www.coderanch.com/forums/c/7/certification&quot; rel=&quot;nofollow&quot;&gt;CodeRanch&lt;/a&gt; allies &lt;a href=&quot;http://www.javaranch.com&quot; rel=&quot;nofollow&quot;&gt;JavaRanch&lt;/a&gt;!&lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2010-12-30T12:56:53.490" />
  <row Id="32599" PostTypeId="2" ParentId="32593" CreationDate="2010-12-30T12:59:44.847" Score="2" ViewCount="" Body="&lt;p&gt;It's going to depend on your market.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your market is a largely technical or is quite niche then translating probably isn't an issue as your users are probably OK with it being in English and in some cases may actually prefer it being in English.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your market is the general population then translation is probably a good idea as it will increase the reach of your application. In certain countries that protect their native languages (e.g. France) translation would be pretty much essential.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you need to analyse your current market and where you want to go with your apps to see if internationalisation is actually worth it. Then tackle the languages in market order, but languages like French, Spanish and Portuguese that are either 1st or 2nd languages in a number of countries would seem to be the most obvious choices.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2010-12-30T12:59:44.847" />
  <row Id="32600" PostTypeId="2" ParentId="32578" CreationDate="2010-12-30T13:05:49.307" Score="0" ViewCount="" Body="&lt;p&gt;The question as I understand it, is which interpretations of NULL and empty string should be chosen. This depends on how many &lt;em&gt;states&lt;/em&gt; the particualar field can be in. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The interpretation depends on how the database is being accessed. If there is a layer in the code that abstracts out the database completely, than choosing any policy (including two-coulmn) that works is completely acceptable. (Clearly documenting the policy is important, though). However, if the database is being accessed in several places, then you should use a very simple scheme, since code will be harder to maintain and may be erroneous in this case.&lt;/p&gt;&#xA;" OwnerUserId="11155" LastActivityDate="2010-12-30T13:05:49.307" />
  <row Id="32601" PostTypeId="2" ParentId="32592" CreationDate="2010-12-30T13:13:42.240" Score="0" ViewCount="" Body="&lt;p&gt;Having a certification certainly adds value to your resume. To a fresher in Indian job scenario getting certified in programming fundamentals is worth more. If you really want to for a certification, in my opinion go for java certification. It will immensely benefit you. DBA certification is not going to help much to a fresh out of college.&#xA;You have two years ahead. Use your time well, most importantly be good with fundamentals. Best of luck.&lt;/p&gt;&#xA;" OwnerUserId="12028" LastActivityDate="2010-12-30T13:13:42.240" />
  <row Id="32602" PostTypeId="2" ParentId="32593" CreationDate="2010-12-30T13:14:53.953" Score="1" ViewCount="" Body="&lt;p&gt;I agree with ChrisF, it really depends on your target market.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion, if you want the see more revenue based on sales in non-English speaking markets, the best languages to tackle are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Japanese&lt;/li&gt;&#xA;&lt;li&gt;Chinese (Traditional)&lt;/li&gt;&#xA;&lt;li&gt;Chinese (Simplified)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Especially China, as users in this market tend to shy away from products containing English text, (it also may become illegal soon - &lt;a href=&quot;http://mcaf.ee/7a162&quot; rel=&quot;nofollow&quot;&gt;http://mcaf.ee/7a162&lt;/a&gt;).&lt;/p&gt;&#xA;" OwnerUserId="1293" LastActivityDate="2010-12-30T13:14:53.953" />
  <row Id="32603" PostTypeId="2" ParentId="32490" CreationDate="2010-12-30T13:18:57.863" Score="3" ViewCount="" Body="&lt;p&gt;An IDE is not a compiler, a debugger or anything similar, it is actually a front-end that allows you to access all these, which are typically separate programs. Behind the scenes of Visual Studio there's a compiler which you can access as a separate program, compiling your programs from the Command Prompt, and there's probably a debugger which is also separately accessible and so on -- I'm not too familiar with its infrastructure because I don't use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on who you ask, an IDE is either very useful, or it tends to get in your way. It also depends on what you are writing, on its size, your coding style and so on. I, for one, don't really feel the need to use an IDE too much, but I reckon that some tasks are better handled by it (or, depending on how you look at it, that I'm too lazy to write scripts/macros for those myself).&lt;/p&gt;&#xA;" OwnerUserId="12037" LastActivityDate="2010-12-30T13:18:57.863" CommunityOwnedDate="2011-01-03T16:15:01.900" />
  <row Id="32604" PostTypeId="2" ParentId="32534" CreationDate="2010-12-30T13:22:10.437" Score="12" ViewCount="" Body="&lt;p&gt;&quot;Im looking for a partner and not just a programmer.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My alarm bells just went off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this a paying gig? Or a &quot;there'll be no money now, but on your deathbed you'll receive total enlightenment&quot; kind of gig?&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2010-12-30T13:22:10.437" CommentCount="4" />
  <row Id="32605" PostTypeId="2" ParentId="32581" CreationDate="2010-12-30T13:26:05.740" Score="2" ViewCount="" Body="&lt;p&gt;I like all of the other examples.  But here's another.  Look at a hospital, and think about all of the different roles that are involved in providing care to a patient: triage nurses, doctors, medical assistants, techs, clerical staff, cafeteria, etc.  Is there any one person that knows how &lt;em&gt;all&lt;/em&gt; of those people get their jobs done?  No, because it would be overwhelming.  They have to separate out the different responsibilities into distinct roles and the touchpoints between those roles are very specific.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2010-12-30T13:26:05.740" />
  <row Id="32606" PostTypeId="2" ParentId="32533" CreationDate="2010-12-30T13:31:36.390" Score="1" ViewCount="" Body="&lt;p&gt;I think you should study the following :&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Operating System :- Even though you may not not need it to work as a programmer but it is worth to know how an operating system works and it is expected from a CS grad. Any good book can help. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;OOP :- This is bread and butter. A must. Books if you want to ask: &#xA;Your first book should be :- head first OOAD,&#xA;then you can go for Grady Booch and Ivar Jacobson's book&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Data Structures and Algorithms :- Very important to develop the logical thinking and mindset .&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me this much is enough. It's never too late. :) &lt;/p&gt;&#xA;" OwnerUserId="12028" LastActivityDate="2010-12-30T13:31:36.390" CommunityOwnedDate="2011-01-05T14:29:46.470" />
  <row Id="32607" PostTypeId="2" ParentId="29614" CreationDate="2010-12-30T13:47:24.997" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I don't have to understand everything.&lt;/strong&gt; I won't torture myself with stuff that doesn't match the way my mind works. For example, while I'm generally pretty good in maths, I'm rather incapable regarding the integral calculus. It's just not my thing, and most likely never will.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, this selective ignorance is only possible as long as I have still enough other means to solve my problems, i.e. do my work and pay the bills.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-30T13:47:24.997" />
  <row Id="32608" PostTypeId="2" ParentId="32526" CreationDate="2010-12-30T13:50:48.680" Score="12" ViewCount="" Body="&lt;p&gt;I went through the same deliberations and ended up installing Ubuntu through &lt;a href=&quot;http://www.ubuntu.com/desktop/get-ubuntu/windows-installer&quot; rel=&quot;nofollow&quot;&gt;Wubi&lt;/a&gt;. It's a painless install and easily removable through &quot;Add or Remove Programs&quot; if you decide it's not for you. My choice was largely motivated by also wanting to gain more exposure bit more about the Linux side of things. Without that, I would have developed on Windows easily enough. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main issue I found was that most people who write Ruby are either on Mac or Linux, so there are very few Windows instructions and there's a bit of a culture of bashing Windows users. If that doesn't concern you, go right ahead and stick with Windows. There are some technical issues you might come up against (e.g. paths or environment variables may be treated differently on your Windows dev box and the target Linux server), so make sure you write good tests and run them on both platforms before deployment.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-30T13:50:48.680" CommentCount="3" />
  <row Id="32609" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T14:08:25.447" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;BUT, I still can't figure how to write&#xA;  a program that does anything useful.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Really?? Well, I suppose if you just read the books and didn't do any example programs and so forth then that's possible, but seems a bit overstated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, best advice is to just start working on some idea that you are interested in. If you have a real interest then it can start small and grow and grow. That's usually what happens with me. I might start a project just for the fun of it, thinking it will just be a small test project. Then I add and add....&lt;/p&gt;&#xA;" OwnerUserId="11432" LastActivityDate="2010-12-30T14:08:25.447" CommunityOwnedDate="2010-12-30T14:08:25.447" />
  <row Id="32610" PostTypeId="1" AcceptedAnswerId="32667" CreationDate="2010-12-30T14:12:39.880" Score="10" ViewCount="518" Body="&lt;p&gt;How do I prepare for the GRE Computer Science subject test? Are there any standard text books I should follow? I want to score as competitively as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some good references? Is there anything that top schools like CMU, MIT, and Standford would expect? For example, Cormen et al is considered very good for algorithms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please tell me standard text books for each subject covered by the test, like Computer Architecture, Database Design, Operating Systems, Discrete Maths etc.&lt;/p&gt;&#xA;" OwnerUserId="12022" LastEditorUserId="12022" LastEditorDisplayName="" LastEditDate="2010-12-30T20:45:32.287" LastActivityDate="2010-12-30T20:45:32.287" Title="How to prepare for the GRE Computer Science Subject Test?" Tags="&lt;computer-science&gt;&lt;grad-school&gt;" AnswerCount="4" CommentCount="10" FavoriteCount="5" />
  <row Id="32611" PostTypeId="2" ParentId="32581" CreationDate="2010-12-30T14:22:15.290" Score="0" ViewCount="" Body="&lt;p&gt;I would look at how he failed to apply SoC in his code/design and turn that into a real-world example that he can relate with and that is obviously undesired.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, if he has a class where the client needs to supply several pieces of information that are not relevant for those clients, then I would use the analogy of a bakery where you have to bring your own grains and yeast if you want to buy a bread.&lt;/p&gt;&#xA;" OwnerUserId="5099" LastActivityDate="2010-12-30T14:22:15.290" />
  <row Id="32612" PostTypeId="2" ParentId="32581" CreationDate="2010-12-30T14:28:25.233" Score="0" ViewCount="" Body="&lt;p&gt;software without a separation of concerns is like a plaid skunk playing a vuvuzela - way too many annoying things going on at once to tolerate&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SoC follows from SRP&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-30T14:28:25.233" />
  <row Id="32613" PostTypeId="2" ParentId="32578" CreationDate="2010-12-30T14:35:05.477" Score="1" ViewCount="" Body="&lt;p&gt;Well basically on logical level there's no difference between &quot;invalid&quot; value and &quot;no user input&quot;, they're just all &quot;special cases&quot; most of the time. Error case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having null takes additonal space: ceil(columns_with_null/8) in bytes / per row.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Empty cell and null are both way to mark something is wrong / should be default. Why would you need 2 &quot;wrong&quot; states? Why use NULLs if they take additional space and mean exactly the same as empty strings? That will just introduce confusion and redundancy when you're having two things meaning (that could mean) exactly the same, it's easy to forget that you should use NULLs instead of empty strings (if eg. user ommited some fields).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And your data can become a mess. In a perfect world you'd say &quot;the data will be always correct and i'll remember&quot;... but when people have to work in a team and not everybody is exactly on your level it's not uncommon to see WHERE (aa.xx &amp;lt;&gt; '' AND bb.zz IS NOT NULL)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So instead of correcting my team members every other day i just enforce simple rule. No null values, NEVER!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Counting NON-NULL values is faster... simple question is what would you need to do that for?&lt;/p&gt;&#xA;" OwnerUserId="11827" LastEditorUserId="11827" LastEditorDisplayName="" LastEditDate="2010-12-30T14:40:42.180" LastActivityDate="2010-12-30T14:40:42.180" CommentCount="2" />
  <row Id="32614" PostTypeId="2" ParentId="32581" CreationDate="2010-12-30T14:38:32.117" Score="9" ViewCount="" Body="&lt;p&gt;Imagine you have a program which has been released. A customer comes along and offers to pay you for a enhancement to one of its features. In order to get the money, you will need to change your program to add the new feature. Some of the things that will influence what your profit margin is are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;how much code you have to change&lt;/li&gt;&#xA;&lt;li&gt;how easy it is to make the changes&lt;/li&gt;&#xA;&lt;li&gt;how likely you are to break existing features that are being used by other customers&lt;/li&gt;&#xA;&lt;li&gt;how much you can reuse you existing model/architecture&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Separation of concerns helps you to get more positive answers to these questions.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;if all of the code for a particular behaviour of the application is separated out, then you will only have to change code directly associated with your new feature. Which should be less code to change.&lt;/li&gt;&#xA;&lt;li&gt;if the behaviours you are interested in are neatly separated from the rest of the application it is more likely you will be able to swap in a new implementation without having to fully understand or manipulate the rest of the program. It should also be easier to find out which code you need to change. &lt;/li&gt;&#xA;&lt;li&gt;Code that you do not have to change is less likely to break than code that you do change. So splitting up the concerns helps you to avoid breakage in unrelated features by preventing you from having to change code that they could call. If your features are mixed up together you might change the behavior of one by accident while trying to change another one.&lt;/li&gt;&#xA;&lt;li&gt;If your architecture is agnostic to technical or business logic detail then changes to implementation are less likely to require new architectural features. For example, if your main domain logic is database agnostic then supporting a new database should be as easy as swapping in a new implementation of the persistence layer. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5404" LastEditorUserId="5404" LastEditorDisplayName="" LastEditDate="2010-12-30T18:07:56.647" LastActivityDate="2010-12-30T18:07:56.647" />
  <row Id="32615" PostTypeId="2" ParentId="32610" CreationDate="2010-12-30T14:39:57.577" Score="1" ViewCount="" Body="&lt;p&gt;I cannot recommend any textbooks, although I'd check to see if Kaplan has any. However, I highly suggest taking practice tests at least three times before you take the actual test. This will not only show how your study is proceeding and areas to improve, but also familiarize yourself with the test style so you know what to expect when you go to the test center. The tests are available on the GRE site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: Also, the topics on the test were all covered in my CS courses. I'd suggest studying from your undergrad books. You &lt;em&gt;did&lt;/em&gt; keep your CS books, right?&lt;/p&gt;&#xA;" OwnerUserId="6415" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2010-12-30T18:02:33.533" LastActivityDate="2010-12-30T18:02:33.533" CommentCount="1" />
  <row Id="32616" PostTypeId="2" ParentId="32610" CreationDate="2010-12-30T14:40:51.993" Score="3" ViewCount="" Body="&lt;p&gt;Hmm, maybe follow this guide from ETS? I think it will give you a fair understanding of what is required for the test...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.ets.org/gre/subject/about/content/computer_science&quot; rel=&quot;nofollow&quot;&gt;http://www.ets.org/gre/subject/about/content/computer_science&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7785" LastActivityDate="2010-12-30T14:40:51.993" CommentCount="1" />
  <row Id="32617" PostTypeId="1" AcceptedAnswerId="32619" CreationDate="2010-12-30T14:44:12.567" Score="8" ViewCount="466" Body="&lt;p&gt;Sometimes I have a function that should return true or false. But sometimes three possible values would make more sense. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In some language theses cases would be handled with integers or with exceptions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For exemple you want to handle the age of a user if he is over 18 years old. And you have a function like this.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(user.isAdult(country_code)){&#xA;     //Go On&#xA;}else{&#xA;     // Block access or do nothing&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But in some case depending how your app is built I could see case where the birthday field is incomplete. Then this function should return something undetermined. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;switch(user.isAdult()){&#xA;    case true:&#xA;        // go on&#xA;        break;&#xA;    case undetermined:&#xA;        //Inform user birthday is incomplete&#xA;    case false:&#xA;        //Block access&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;As I said we can handle that with Exceptions and Int, but I would find it quite sexy to have a true, false, undetermined embeded in the language instead of using some home defined constants. &lt;/p&gt;&#xA;" OwnerUserId="12039" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-12-30T17:34:53.693" LastActivityDate="2010-12-31T21:31:28.260" Title="Would you see any use of a Trilean (True, False, ??)" Tags="&lt;syntax&gt;" AnswerCount="10" CommentCount="9" FavoriteCount="2" />
  <row Id="32618" PostTypeId="1" AcceptedAnswerId="32626" CreationDate="2010-12-30T14:48:12.767" Score="12" ViewCount="396" Body="&lt;p&gt;When do the SOLID principles become YAGNI?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As programmers we make trade-offs all the time, between complexity, maintainability, time to build and so forth. Amongst others, two of the smartest guidelines for making choices are in my mind the SOLID principles and YAGNI. If you don't need it; don't build it, and keep it clean.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now for example, when I watch the &lt;a href=&quot;http://www.dimecasts.net/Casts/ByTag/SOLID%20Principle&quot; rel=&quot;nofollow&quot;&gt;dimecast series on SOLID&lt;/a&gt;, I see it starts out as a fairly simple program, and ends up as a pretty complex one (end yes complexity is also in the eye of the beholder), but it still makes me wonder: when do SOLID principles turn into something you don't need? All solid principles are ways of working that enable use to make changes at a later stage. But what if the problem to solve is a pretty simple one and it's a throwaway application, then what? Or are the SOLID principles something that always apply?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As asked in the comments: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Solid_%28object-oriented_design%29&quot; rel=&quot;nofollow&quot;&gt;Solid Principles&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/You_ain%27t_gonna_need_it&quot; rel=&quot;nofollow&quot;&gt;YAGNI&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10422" LastEditorUserId="20951" LastEditorDisplayName="" LastEditDate="2011-04-02T11:50:49.653" LastActivityDate="2011-04-02T11:50:49.653" Title="Solid principles vs YAGNI" Tags="&lt;design&gt;&lt;philosophy&gt;&lt;solid&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="5" />
  <row Id="32619" PostTypeId="2" ParentId="32617" CreationDate="2010-12-30T14:48:37.760" Score="22" ViewCount="" Body="&lt;p&gt;This can be handled with either enums, integers, symbols (e.g., Lisp, Ruby), nullable types (use null as the indeterminate state), option types (e.g., ML), or some similar construct - depending on your language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So while your example and rationale is sound I can't see it being on the priority list of language features to develop.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-12-30T15:19:00.303" LastActivityDate="2010-12-30T15:19:00.303" CommentCount="6" />
  <row Id="32620" PostTypeId="2" ParentId="32578" CreationDate="2010-12-30T14:49:17.447" Score="1" ViewCount="" Body="&lt;p&gt;for the specific technical question, the issue is not null vs empty-string, it is a &lt;em&gt;validation failure&lt;/em&gt;. An empty string is not a valid email address!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;for the philosophical question, the answer is similar: validate your inputs. If an empty string is a valid value for the field in question, then expect it and code for it; if not, use null.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An empty string would be a valid input to answer the question: What did the mime say to the giraffe?&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-30T14:49:17.447" />
  <row Id="32621" PostTypeId="2" ParentId="31603" CreationDate="2010-12-30T14:49:58.327" Score="2" ViewCount="" Body="&lt;p&gt;This isn't the main reason, but it doesn't help: Microsoft has been accused of &lt;a href=&quot;http://en.wikipedia.org/wiki/Astroturfing&quot; rel=&quot;nofollow&quot;&gt;astroturfing&lt;/a&gt;. I've never seen it proven, but I used to lurk on Linux forums, and every so often I would see posts claiming Linux crashes regularly and is hard to maintain. The posts would come from people claiming to be seasoned computing professionals, but there would always be something very basic that they didn't know, or they would say something indicating that their knowledge of Linux was years behind the times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I reserve judgement as to whether Microsoft was or was not behind the posts, but as I say above, I'm sure the accusation didn't help matters.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-30T14:49:58.327" CommentCount="2" />
  <row Id="32622" PostTypeId="2" ParentId="32577" CreationDate="2010-12-30T14:50:26.113" Score="4" ViewCount="" Body="&lt;p&gt;My general feeling about software patents is that they don't make sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First off, contrary to popular belief, you can not patent an idea. You can patent the execution of an idea, but no the idea itself. Ideas are cheap and often times if there is a need for something, multiple people will come up with the same idea for a solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have two developers that have a similar idea and sit down and design a solution, at the very core, if they are following best practices and such, the solution design will be similar. They may differ in languages, database choice, and all that, but fundamentally and from a non-technical person's point of view they will look similar or even the same. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software patents assume that there is only one way to implement a solution and that if that first person hadn't of figured it out, then no one would have. That is complete nonsense. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software development is a field that is made up of very smart problem solvers who enjoy creating nice code. We all have the basic building blocks to do this too. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main purpose of patents (again, contrary to popular belief) is to promote the development of new innovations by grating inventors a government granted monopoly for a set period of time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does our field really need this intensive to innovate and create? IMHO, no. Even if some people think so, it is false to assume that just because someone came up with an algorithm to solve a problem that no one else could/would have. &lt;/p&gt;&#xA;" OwnerUserId="2305" LastActivityDate="2010-12-30T14:50:26.113" />
  <row Id="32623" PostTypeId="2" ParentId="32617" CreationDate="2010-12-30T14:51:25.720" Score="4" ViewCount="" Body="&lt;p&gt;I have not seen a case where this is necessary. In the example you've given, if that field is necessary it should have been validated elsewhere. &lt;code&gt;isAdult()&lt;/code&gt; is inherantly a two-state method: You either are or you aren't. There is no need to have it do anything but return false if it encounters data it can't handle. For instance:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;switch(user.isAdult()){&#xA;   case true:&#xA;      // go on&#xA;      break;&#xA;   default:&#xA;      // Block access.&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6415" LastActivityDate="2010-12-30T14:51:25.720" CommentCount="3" />
  <row Id="32624" PostTypeId="1" AcceptedAnswerId="32643" CreationDate="2010-12-30T14:52:32.403" Score="13" ViewCount="259" Body="&lt;p&gt;When working on a software project or a website, do you develop with localization in mind? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;By this I mean e.g.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Externalizing all strings, including error messages.&lt;/li&gt;&#xA;&lt;li&gt;Not using images that contain text.&lt;/li&gt;&#xA;&lt;li&gt;Designing your UI with text expansion in mind.&lt;/li&gt;&#xA;&lt;li&gt;Using pseudo-translation to test your UI's early in the process.&lt;/li&gt;&#xA;&lt;li&gt;etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;On projects you work on, are these in the 'nice to have' category and let the localization team worry about the rest, or do you have localization readiness built into your development process? I'm interested to hear how developers view localization in general.&lt;/p&gt;&#xA;" OwnerUserId="1293" LastEditorUserId="2439" LastEditorDisplayName="" LastEditDate="2010-12-30T15:01:27.310" LastActivityDate="2010-12-31T02:40:32.007" Title="Do you develop with localization in mind?" Tags="&lt;internationalization&gt;" AnswerCount="9" CommentCount="13" FavoriteCount="7" />
  <row Id="32625" PostTypeId="2" ParentId="32618" CreationDate="2010-12-30T14:54:56.857" Score="3" ViewCount="" Body="&lt;p&gt;SOLID principles aren't needed when it's a throw-away application; otherwise they are always needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SOLID and YAGNI aren't at odds: Good class design makes the application easier to maintain. YAGNI just states that you shouldn't add the ability for your application to be this configurable monstrosity that can do everything under the sun -- unless it actually needs it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the difference between a Car class that has well defined boundaries (SOLID) and a car class that has the ability to self-heal (YAGNI) before the customer asks for it.&lt;/p&gt;&#xA;" OwnerUserId="1577" LastActivityDate="2010-12-30T14:54:56.857" CommentCount="1" />
  <row Id="32626" PostTypeId="2" ParentId="32618" CreationDate="2010-12-30T14:55:23.790" Score="13" ViewCount="" Body="&lt;p&gt;It's always difficult to judge an approach based on a screencast, since the problems picked for demos are typically so small that applying principles like SOLID quickly makes it look like the solution is completely overengineered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say SOLID principles are almost always useful. Once you become proficient with them, using them doesn't seem like something you have to deliberately think about. It just becomes natural. I've seen many throwaway one-off apps become more than that, so I'm now afraid of saying that I'm going to throw something away, because you just never know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The approach I usually take is that if I'm writing a simple app for a particular task, I'll sometimes forgo big name principles in favour of a few lines of code that work. If I find that I'm coming back to that app to make further changes, I will take the time to make it SOLID (at least somewhat, since a 100% application of the principles is rarely feasible). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In bigger apps, I start small and as the program evolves, I apply SOLID principles where possible. This way I don't attempt to design the whole thing upfront down to the last enum. That, to me, is the sweet spot where YAGNI and SOLID coexist.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-30T14:55:23.790" CommentCount="2" />
  <row Id="32627" PostTypeId="2" ParentId="32624" CreationDate="2010-12-30T14:58:16.770" Score="3" ViewCount="" Body="&lt;p&gt;We've done it as needed:  customer-facing stuff is now all done with i18n in mind, since we've expanded our markets, and some internal stuff is now i18n-capable, so the employees who use that need not speak English.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, we did it on an as-needed basis, as a startup.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-30T14:58:16.770" />
  <row Id="32628" PostTypeId="2" ParentId="32577" CreationDate="2010-12-30T15:01:29.587" Score="1" ViewCount="" Body="&lt;p&gt;Copyright is enough. Programmers that want patent - laws to be enforced are shooting themselves in the feet, and in my personal opinion - are just hypocritic IDIOTS. As everyone else we have learned everything from books and how other people did things. Every website or app is a copy or prooven solutions from thousands of apps / websites (menus, shopping carts, account login, etc.). There is no way to do a compatible login differently that by asking login and password information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With so many stupid &quot;ideas&quot; already patented it'd be impossible to develop anything without paying royalties to thousands maybe tens of thousands of companies or becoming a slave of some corporation, that could protect you from patent litigation by using counter-trials and massive &quot;legal&quot; resources.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Shopping cart, presenting image of merchandise on webshop, even displaying logo of mastercard as a payment option is patented.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And the bad thing is every patent is a monopoly. Someone patents displaying mastercard logo on the website as a way to &quot;quick display of payment options&quot;, and you can't display it without him allowing you to. Even worse, you can't ask other company because there is always only one patent holder.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So scums like some patent troll companies can patent displaying your logo on the website. That means ruin your company, and website owners. Because they'll be telling others what to do with your own (!!) logo! Even worse - they can patent usage of your technology, like more and more companies are patenting &quot;technologies&quot; (read bullshit) related to WWW and literally ROB YOU of your clients and money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a lot of bullshit going on in IT, because most people won't get it. If someone would came with an idea to patent shop shelve, book index or shopping basket people would think he's out of his mind. But if you want to patent internet shopping cart or displaying a photo on the website - it's patented already! Because that's &quot;sophisticated technology&quot; (that any high-school kid could &quot;invent&quot; and then implement).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's no such thing as &quot;intellectual property&quot;, it's just bullshit, you can't &quot;own&quot; ideas or have exclusive right to think about something. When you took one year to implement something you have exclusive right to use/sell it and that's copyright.&lt;/p&gt;&#xA;" OwnerUserId="11827" LastActivityDate="2010-12-30T15:01:29.587" />
  <row Id="32629" PostTypeId="2" ParentId="5473" CreationDate="2010-12-30T15:01:34.273" Score="1" ViewCount="" Body="&lt;p&gt;I use a proportional font (Arial is the best I've found so far, Verdana a close runner-up) and honestly I'm still bemused that people use fixed width fonts; why would you want to sacrifice readability like that? I could understand if tabular formatting were desirable, but it isn't, since it creates a maintenance nightmare regardless of font.&lt;/p&gt;&#xA;" OwnerUserId="11932" LastActivityDate="2010-12-30T15:01:34.273" CommentCount="1" />
  <row Id="32630" PostTypeId="1" AcceptedAnswerId="32634" CreationDate="2010-12-30T15:03:25.970" Score="3" ViewCount="172" Body="&lt;p&gt;I need to make a sequence diagram and I'm not sure how to represent user input.&#xA;Is it correct to have a message be sent from an object to the user asking for user input or should all objects be passive and only be operated by the user?&lt;/p&gt;&#xA;" OwnerUserId="12044" LastEditorUserId="3543" LastEditorDisplayName="" LastEditDate="2011-01-11T15:20:18.323" LastActivityDate="2011-01-11T15:20:18.323" Title="can an object in a sequence diagram send a message call to the user?" Tags="&lt;uml&gt;&lt;analysis&gt;&lt;diagrams&gt;&lt;sequence&gt;" AnswerCount="3" />
  <row Id="32631" PostTypeId="2" ParentId="32624" CreationDate="2010-12-30T15:05:37.060" Score="7" ViewCount="" Body="&lt;p&gt;I think that was important 10 years ago. &lt;strong&gt;Recent technology solved the problem&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I live in &lt;a href=&quot;http://en.wikipedia.org/wiki/Languages_of_Belgium&quot; rel=&quot;nofollow&quot;&gt;a country where there is 3 national languages&lt;/a&gt;, and only one of them is a minority.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To understand &lt;a href=&quot;http://en.wikipedia.org/wiki/Brussels-Halle-Vilvoorde&quot; rel=&quot;nofollow&quot;&gt;problems&lt;/a&gt; that could occurs because of that, it's like having the west part of US speaking a (very) different language than the east part. Think that in the center of the country, population is somewhat merged, and so you must use both language everywhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having 4 languages in desktop applications and websites was and still is very common (3 national languages + English). It's sometimes an obligation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was localization aware because I have been conditioned by my environment. So yes, few years ago, I was worrying about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I don't care much about localization because latest IDE tools allows you to convert any static application into a fully localized one very easily. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tools I use with Visual Studio .NET:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.devexpress.com/Products/Visual_Studio_Add-in/Coding_Assistance/&quot; rel=&quot;nofollow&quot;&gt;CodeRush&lt;/a&gt;, a Visual Studio plugin that allows you to move hard coded texts into resource files.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.foss.kharkov.ua/products/easy_localizer/index.htm&quot; rel=&quot;nofollow&quot;&gt;Easy Localizer&lt;/a&gt;, extract labels in an Excel file in which you add all additionnal language, then merge back in your resource files.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-30T15:13:30.077" LastActivityDate="2010-12-30T15:13:30.077" CommentCount="15" />
  <row Id="32632" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T15:07:09.617" Score="0" ViewCount="" Body="&lt;p&gt;Think of something that you would would find useful and try making it. I mean something sensible, not Photoshop :-)&lt;/p&gt;&#xA;" OwnerUserId="2688" LastActivityDate="2010-12-30T15:07:09.617" CommunityOwnedDate="2010-12-30T15:07:09.617" />
  <row Id="32633" PostTypeId="2" ParentId="32617" CreationDate="2010-12-30T15:10:51.930" Score="1" ViewCount="" Body="&lt;p&gt;In C++, this can be handled with a non-&lt;code&gt;bool&lt;/code&gt; return type, or by throwing an exception.  If you want a three-valued return type, use an &lt;code&gt;enum&lt;/code&gt;.  It isn't as sexy, but it works, and what's more important you can do it without messing up the language for the rest of us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having &lt;code&gt;bool&lt;/code&gt; be three-valued would cause problems.  How do you handle &lt;code&gt;bool foo; ... if (foo)...&lt;/code&gt;, assuming &lt;code&gt;foo&lt;/code&gt; might have any of the three values?  There's advantages to having &lt;code&gt;bool&lt;/code&gt; variables such that precisely one of &lt;code&gt;foo&lt;/code&gt; and &lt;code&gt;!foo&lt;/code&gt; is true at all times.  It helps reason about programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check out what people do in numerical processing when they might possibly get &lt;code&gt;NaN&lt;/code&gt; values.  It's complicated.  I'd rather not have to go through with it for ordinary boolean processing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want &lt;code&gt;.isAdult()&lt;/code&gt; to handle insufficient information, have it do that internally, and then return either &lt;code&gt;true&lt;/code&gt; or &lt;code&gt;false&lt;/code&gt;.  Otherwise, every time you use it you need to check the return code before doing anything else, and come up with a way to handle it.  It would mean you had to check the docs to see if a function actually did what its name said it did, and that would be a disaster for readability.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-30T15:10:51.930" />
  <row Id="32634" PostTypeId="2" ParentId="32630" CreationDate="2010-12-30T15:11:39.157" Score="3" ViewCount="" Body="&lt;p&gt;from &lt;a href=&quot;http://www.ibm.com/developerworks/rational/library/3101.html&quot; rel=&quot;nofollow&quot;&gt;UML Basics&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;The sequence diagram is used primarily to show the interactions between objects in the sequential order that those interactions occur...&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;so yes, it is perfectly valid to represent the sequence step 'ask the user for something'; each arrow does not necessarily correspond to one specific message&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-30T15:11:39.157" CommentCount="0" />
  <row Id="32635" PostTypeId="2" ParentId="32617" CreationDate="2010-12-30T15:14:14.163" Score="3" ViewCount="" Body="&lt;p&gt;true, false, unknown&lt;/p&gt;&#xA;&#xA;&lt;p&gt;yes, no, maybe&lt;/p&gt;&#xA;&#xA;&lt;p&gt;in C# you can use a nullable bool (you may recoil in horror now)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;in MS-SQL, you can use a nullable bit field (ditto)&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-30T15:14:14.163" CommentCount="4" />
  <row Id="32636" PostTypeId="2" ParentId="32624" CreationDate="2010-12-30T15:18:27.387" Score="1" ViewCount="" Body="&lt;p&gt;Usually, I add internationalisation later when I need it, even if I know from the beginning that I will need it. With the languages I'm using, it's not terribly diffult to do it in a separate phase, and I can keep one cumbersome aspect out of the early constructive phases.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-30T15:18:27.387" CommentCount="4" />
  <row Id="32637" PostTypeId="2" ParentId="32618" CreationDate="2010-12-30T15:18:58.713" Score="2" ViewCount="" Body="&lt;p&gt;Nothing always applies! Don't Let &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000018.html&quot; rel=&quot;nofollow&quot;&gt;Architecture Astronauts&lt;/a&gt; Scare You! The important thing is to try and understand what problems these principles are trying to address so that you can make an informed decision about applying them.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently I was trying to understand when I should use the Single Responsibility Principle (&lt;a href=&quot;http://programmers.stackexchange.com/questions/17100/clarify-the-single-responsibility-principle/31723#31723&quot;&gt;here's&lt;/a&gt; what I came up with.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps!&lt;/p&gt;&#xA;" OwnerUserId="11593" LastActivityDate="2010-12-30T15:18:58.713" />
  <row Id="32638" PostTypeId="2" ParentId="32610" CreationDate="2010-12-30T15:43:35.127" Score="2" ViewCount="" Body="&lt;p&gt;I took it 20-some-odd years ago so my experience may no longer be relevant, but from what I remember it covered a &lt;em&gt;lot&lt;/em&gt; of subjects in many different areas, from computing reliability and availability for a given MTBF, to strategies for avoiding deadlocks in multithreaded or multiprogramming systems, to analyzing algorithms, etc.  If the general test assumed you'd just stayed awake in class, the subject test assumed you'd paid &lt;em&gt;rapt&lt;/em&gt; attention to every syllable uttered and every line written by your professor &lt;em&gt;and&lt;/em&gt; had done outside reading on your own.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I second the recommendation of grabbing a practice test and studying it thoroughly to see where you need to brush up.  &lt;/p&gt;&#xA;" OwnerUserId="11246" LastActivityDate="2010-12-30T15:43:35.127" />
  <row Id="32639" PostTypeId="2" ParentId="32577" CreationDate="2010-12-30T15:43:42.007" Score="0" ViewCount="" Body="&lt;p&gt;To give my own view- I know I'm answering my own question, bad form etc - I am of the opinion that if there is a need for IP protection on software or algorithms that the existing patent system is absolutely unsuited to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the real problem is one of duration in addition to those raised of poor quality patents being passed. Software moves much faster than regular engineering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there is to be any facility for patents on software ( and I don't see this as necessarily bad - particularly if you had a situation where you have a device with embedded code and the software provides the innovative step ) then it seems to me they should be in their own class- perhaps offering more protection than straight copyright but with a strict time limit of, for example, 18 months. That is plenty of time to exploit a design and get a significant advantage in the market but not long enough to prove chilling to future developments in the field. I would want to see them made available to completely open online peer review in addition to a regular patent process, so other interested parties could highlight prior art or problems with the patent before it was granted. I would expect this to result in fewer higher quality patents in the field and hopefully a relatively cheap patent process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally once this was implemented I would want to see all existing software patents switched over to this format, which would mean that the vast majority would instantly expire.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure there are too many entrenched interests to permit any such reform happening, but if I had the choice to design the system from the ground up, this is the kind of thing I would want to see.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2010-12-30T15:43:42.007" CommunityOwnedDate="2010-12-30T15:43:42.007" />
  <row Id="32640" PostTypeId="2" ParentId="32618" CreationDate="2010-12-30T15:45:30.290" Score="8" ViewCount="" Body="&lt;p&gt;Think about the problem at hand first and foremost.  If you blindly apply the principles of YAGNI or SOLID, you can hurt yourself later on.  Something that I hope we can all understand is that there is no &quot;one&quot; design approach that fits all problems.  You can see evidence of that when a store sells a hat advertised as &quot;one size fits all&quot;, but it doesn't fit your head.  It's either too big or too small.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead, it's better to understand the principles and problems that SOLID is attempting to address; as well as the principles and problems that YAGNI is attempting to address.  You'll find that one is concerned with the architecture of your application and the other is concerned with the development process as a whole.  While there can be overlap in some cases, they are distinctly different problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;YAGNI (You Ain't Gonna Need It [quaint American acronym]) is concerned with saving developer time adding steel re-inforced concrete foundations to a bridge that is only intended to span a 3 foot wide creek when a simpler wooden bridge will do just fine.  If we are spanning a mile wide river and needing to support several tractor trailers, of course we would need that extra foundation work.  In essence, YAGNI is telling you to look at the bigger picture and design for the &lt;em&gt;current&lt;/em&gt; needs.  It is addressing the problem of making something too complicated because we are anticipating a number of potential needs that the customer hasn't identified yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SOLID is concerned with how we make sure the pieces of the bridge fit together properly, and can be maintained over time.  You can apply SOLID principles to the wooden bridge as well as the steel re-inforced concrete bridge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short these two concepts are not necessarily in conflict with each other.  When you come across a situation where you believe that they are, it's time to take a look at the big picture.  Depending on your conclusion, you might decide to do away with a portion of the SOLID principles or you might decide that you really do need it.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-30T15:45:30.290" CommentCount="1" />
  <row Id="32641" PostTypeId="2" ParentId="32571" CreationDate="2010-12-30T15:48:24.417" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Test-Driven_Development_by_Example&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Test-Driven_Development_by_Example&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Kent Beck rulez!&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-30T15:48:24.417" />
  <row Id="32642" PostTypeId="2" ParentId="32530" CreationDate="2010-12-30T15:52:10.903" Score="1" ViewCount="" Body="&lt;p&gt;The main reason is without a doubt a lack of time amongst the maintainers. It's as simple as that. If you want to help port it, they probably would appreciate it.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-30T15:52:10.903" />
  <row Id="32643" PostTypeId="2" ParentId="32624" CreationDate="2010-12-30T15:54:53.380" Score="9" ViewCount="" Body="&lt;p&gt;I work for a large Fortune 500 company and we always start out with localization in mind.  Our projects are usually only for the US, but too many times over the years, we'll write an app for a client and then someone else will see it and say &quot;hey, that would be an awesome fit for country X&quot;.  Then next thing you know is you're going through the code adding localization. It really doesn't take any more time to build the app with it from the beginning, so we just do.  Plus the added benefit is that when a client does come to us and ask for their app to be in (pick your language), we hand them a file and tell them to get it translated to (pick your language) and we're done.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-31T02:20:44.010" LastActivityDate="2010-12-31T02:20:44.010" CommentCount="2" />
  <row Id="32644" PostTypeId="2" ParentId="32530" CreationDate="2010-12-30T15:55:21.923" Score="0" ViewCount="" Body="&lt;p&gt;Like they say on python website python3 does not have backward compatibility (that is the purpose of having python 2.x and python 3.x together for download), so many libraries and programs are still adapting to the changes (and some of them will never do), also a lot of web hosts still uses python 2.x (some of them even python 2.4!), just because server versions of os's (unix mostly, since no there is actually no host that has only windows servers) like to really be stable, and don't update in the same way as the desktop versions. So if your library does not support python 3, 1) use python 2.x, 2) try to find another options, 3) help with the work...&lt;/p&gt;&#xA;" OwnerUserId="11940" LastActivityDate="2010-12-30T15:55:21.923" />
  <row Id="32645" PostTypeId="2" ParentId="32591" CreationDate="2010-12-30T15:59:15.807" Score="3" ViewCount="" Body="&lt;p&gt;I could not recommend enoug this book: &lt;a href=&quot;http://java.sun.com/docs/books/effective/&quot; rel=&quot;nofollow&quot;&gt;Effective Java&lt;/a&gt;. Must read for any serious Java Developer.&lt;/p&gt;&#xA;" OwnerUserId="5452" LastActivityDate="2010-12-30T15:59:15.807" />
  <row Id="32646" PostTypeId="2" ParentId="32482" CreationDate="2010-12-30T16:00:43.480" Score="0" ViewCount="" Body="&lt;p&gt;In real world yes, but in a personal opinion, that's just like putting a patent on one of your thoughts and prevent anyone else from thinking on the same thing, it is really stupid, but it is what we have...&lt;/p&gt;&#xA;" OwnerUserId="11940" LastActivityDate="2010-12-30T16:00:43.480" />
  <row Id="32647" PostTypeId="2" ParentId="32624" CreationDate="2010-12-30T16:10:44.320" Score="3" ViewCount="" Body="&lt;p&gt;Most of my clients require only one language, and in fact specify that one language.  Therefore, we don't spend time localizing the application.  However, that doesn't mean we can completely ignore other languages.  So we stick with the basics:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Use Unicode everywhere.  It's 2k10, there's no excuse not to.&lt;/li&gt;&#xA;&lt;li&gt;Design for &lt;em&gt;some&lt;/em&gt; elasticity in the layout.  Even with all English, different fonts have very different screen footprints at the same point size.&lt;/li&gt;&#xA;&lt;li&gt;Keep application functions/data modeling out of the view layer&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Personally, when a potential localization language is fundamentally different from the one the application was designed in there's alot more going on than the simple selection of text.  While text replacement helps and will allow a company to get a &quot;quick and dirty&quot; implementation in a new location comparatively earlier--it doesn't solve the fundamental differences in the way users in the other language think.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've studied Japanese, and while I can only consider myself a rank beginner in that language, I know enough that there are some concepts that there isn't a direct translation for.  There are different ideas of what makes something useable.  While the big major concepts might be similar, it's the details that really makes a difference with users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In order to truly address the needs of a very different culture, you need a whole new face for your application.  That's why Model/View/Controller separation becomes even more important.  As long as the application functions the same way, the view portion can be completely replaced.  When that happens, someone is planning on paying some real money to tackle the problem properly.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-30T16:10:44.320" CommentCount="2" />
  <row Id="32648" PostTypeId="2" ParentId="32490" CreationDate="2010-12-30T16:11:25.240" Score="1" ViewCount="" Body="&lt;p&gt;You really need to think that an IDE is just an Editor + Compiler + (some sort of) Makefile + Debugger (sometimes) + Graphical UI Builder (sometimes) so of course you can choose not to use an IDE at all, and you replace them with an Editor of your choice (vim, emacs, gedit, notepad++, [insert_others_here]), an compiler (jdk for java, gcc, platform SDK or [insert_Cpp_toolchain_here] for C++, python interpreter, or whatever toolchain your language has), some sort of makefile (like autoh... tools, cmake, ant, maven, etc.), some sort of debugger (that usually is included with the compiler), and if you want an graphical ui builder (glade comes to mind), and there you have it your own IDE without an IDE. Which approach is best depends on you (and I think that IDE's today are slighty overrated)&lt;/p&gt;&#xA;" OwnerUserId="11940" LastActivityDate="2010-12-30T16:11:25.240" CommunityOwnedDate="2011-01-03T16:15:01.900" />
  <row Id="32649" PostTypeId="2" ParentId="32630" CreationDate="2010-12-30T16:13:24.990" Score="2" ViewCount="" Body="&lt;p&gt;What kind of system behavior are you trying to model?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the system you are trying to model, do you intend that the system be able to pop up a dialog box (for example) whenever the Cyber Spirit moves it, requiring the user to break state and deal with the system's demand?  If so, then it would seem to me that adding a &quot;User Interface&quot; object to the sequence diagram, and then sending messages to that object (and expecting replies from it) would be a perfectly valid way to model it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also has the advantage of making the user interface visible in the model, telling whatever sucker in Bangalore takes over after you get downsized out that there is a user interface development task and here are all the messages and replies it must handle.&lt;/p&gt;&#xA;" OwnerUserId="3852" LastActivityDate="2010-12-30T16:13:24.990" />
  <row Id="32650" PostTypeId="2" ParentId="32490" CreationDate="2010-12-30T16:19:19.323" Score="9" ViewCount="" Body="&lt;p&gt;Jesus, I feel old now, and I never even had to mess with punch cards or batch processing.  Hell, I only had to use a hardcopy terminal once or twice over the course of my college career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's how we did things back in the late Cretaceous (circa 1986).  I was working on VAX/VMS through a VT220 amber-on-black character-based terminal that could display in either 80x24 or 132x24.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, you fired up the text editor:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$ EDIT/EDT HELLO.C&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;EDT was the VMS equivalent of vi, falling somewhere in capability between DOS edlin and Notepad.  You typed in your program text&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;&#xA;&#xA;int main(void)&#xA;{&#xA;  printf(&quot;Hello, Stupid\n&quot;);&#xA;  return 0;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;saved it to the file, and then exited the editor.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you ran your code through the compiler:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$ CC HELLO&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This translated the source code in HELLO.C and generated the object file HELLO.OBJ.  The object file contained the machine code for the program, but it wasn't in an executable form yet.  For one thing, the actual binary code for the &lt;code&gt;printf&lt;/code&gt; call isn't present; there's only a placeholder for it.  You still had to run the object file through a &lt;em&gt;linker&lt;/em&gt;, which incorporated the binary code from the standard library (and any other libraries you need) and formatted the file so that it could be recognized as an executable:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$ LINK HELLO&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The result of this step is the file HELLO.EXE, which is the executable version of your program.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The procedure's pretty much the same on any modern system; it's just that the specific toolchains are different.  For example, the sequence of commands on a typical Linux system would be&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$ vi hello.c&#xA;$ gcc -o hello hello.c &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$ vi hello.c&#xA;$ gcc -c hello.c &#xA;$ ld -o hello hello.o -lc&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Since I grew up in this environment, I never understood how someone could &lt;em&gt;need&lt;/em&gt; an IDE just to write their code.  However, early this year I started working in Java, and while Eclipse has its many, many faults, I can understand how someone can come to rely heavily on an IDE to get their work done.  Since Java's such a huge language compared to C, and since I'm still trying to get the finer points of the syntax down, it helps to have a smart development environment that knows what packages particular types are in and helps me organize the imports.  &lt;/p&gt;&#xA;" OwnerUserId="11246" LastActivityDate="2010-12-30T16:19:19.323" CommunityOwnedDate="2011-01-03T16:15:01.900" CommentCount="4" />
  <row Id="32651" PostTypeId="2" ParentId="32624" CreationDate="2010-12-30T16:23:05.513" Score="1" ViewCount="" Body="&lt;p&gt;I write android applications, and localization is pretty straight forward using java style string files.&#xA;Almost zero effort for full internationalization on all Android languages.&lt;/p&gt;&#xA;" OwnerUserId="12050" LastActivityDate="2010-12-30T16:23:05.513" CommentCount="1" />
  <row Id="32652" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T16:26:56.227" Score="1" ViewCount="" Body="&lt;p&gt;I think part of the problem is that when you read programming books, they just teach you the language. They fail to mention that in order to program almost anything, you need access to programming LIBRARIES and SDKS, etc. Just knowing the language unfortunately isn't enough.&lt;/p&gt;&#xA;" OwnerUserId="12052" LastActivityDate="2010-12-30T16:26:56.227" CommunityOwnedDate="2010-12-30T16:26:56.227" />
  <row Id="32653" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T16:37:54.527" Score="0" ViewCount="" Body="&lt;p&gt;Another problem is that, you need a different programming language depending on what you are trying to program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to program windows app that extends a microsoft product, you have to use .NET C# or VB or vbscript. If you want to program an iPhone you have to use Objective C, Android--Java, MS Mobile--Silverlight, financial apps--maybe Java...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not like you can learn 1 language and then be able to program anything you want..&lt;/p&gt;&#xA;" OwnerUserId="12052" LastActivityDate="2010-12-30T16:37:54.527" CommunityOwnedDate="2010-12-30T16:37:54.527" />
  <row Id="32654" PostTypeId="1" AcceptedAnswerId="32669" CreationDate="2010-12-30T16:44:01.853" Score="14" ViewCount="367" Body="&lt;p&gt;I was reading &lt;a href=&quot;http://www.zeldman.com/2009/07/07/in-defense-of-web-developers/&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; and one sentence caught my eye (emphasis mine): &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;So Ian Hickson, XHTML’s biggest critic, fathered HTML 5, an action-oriented toddler specification that &lt;em&gt;won’t reach adulthood until 2022&lt;/em&gt;, although some of it can be used today. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Is that true? Is that really the HTML 5 development cycle? Why is it taking so long? What makes it so difficult to get right that it won't be final until 11 years from now? &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2010-12-31T04:59:19.860" Title="Why does it take so long to finalize the HTML 5 spec?" Tags="&lt;html5&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="1" />
  <row Id="32655" PostTypeId="2" ParentId="19451" CreationDate="2010-12-30T16:53:29.833" Score="1" ViewCount="" Body="&lt;p&gt;To be honest, I would buy 4 phones.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;3 Phones for each resolution (currently android only support 3 resolution)&lt;/li&gt;&#xA;&lt;li&gt;These 3 phones would be the least powerful if possible&lt;/li&gt;&#xA;&lt;li&gt;And the fourth phone would be a dev phone&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;Edit&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The dev phone has some advantages. When developping you need a platform that works. Other phones might have modified version of android that could cause problems. The debugging might be disabled. Some hardware that will behave differently (consider physical keyboard)... The dev phone is aimed for developping so you won't end up with some weird issue that slow you down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The dev phone might be slightly faster than the least powerful phone of the same screen resolution. For example the Nexus S and Nexus One are kind of beasts. So when you'll want to test your app for performance, it might be good to test on a least powerful phone. And even if your code is efficient and fast, you can't expect the user interface to react as fast on a less powerful phone. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other phones would be only needed when you actually are going to release anything. It's pointless to test your app on all phones everytime. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to summary you need phones to test user experience and one phone to test your code. &lt;/p&gt;&#xA;" OwnerUserId="12039" LastEditorUserId="12039" LastEditorDisplayName="" LastEditDate="2010-12-30T17:18:46.740" LastActivityDate="2010-12-30T17:18:46.740" CommentCount="0" />
  <row Id="32656" PostTypeId="2" ParentId="32490" CreationDate="2010-12-30T16:58:00.923" Score="3" ViewCount="" Body="&lt;p&gt;Editor? I don't need no stinking editor or IDE to &lt;em&gt;write&lt;/em&gt; code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; hello.c&#xA;/* This IS an example of writing code from the command line */&#xA;#include &amp;lt;stdio.h&amp;gt;&#xA;&#xA;int main(void)&#xA;{&#xA;    puts(&quot;Hello, World!&quot;);&#xA;    return 0;&#xA;}&#xA;&#xA;EOF&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;However, it's nice to have something to edit the file later. IDE (integrated development environments) have been around a lot longer than many people are suggesting in their answers. The only IDE I ever really liked was the one that came with &lt;a href=&quot;http://en.wikipedia.org/wiki/Turbo_C&quot; rel=&quot;nofollow&quot;&gt;Turbo C&lt;/a&gt;, which ran on DOS. It was like oxygen to the people who had been forced to muck around with &lt;a href=&quot;http://en.wikipedia.org/wiki/Edlin&quot; rel=&quot;nofollow&quot;&gt;edlin&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've tried many different IDE 'suites' on recommendations from friends who could not stop raving about how much time they save and how convenient they make everything. Every time I sit down to try and use one, I find that I fight it more than use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the most part, I just use the simplest of text editors. My favorite happens to be KATE, which comes with KDE. These are the features that I like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Great syntax highlighting&lt;/li&gt;&#xA;&lt;li&gt;Code folding&lt;/li&gt;&#xA;&lt;li&gt;Simple regex based search / replace&lt;/li&gt;&#xA;&lt;li&gt;Inline shell window&lt;/li&gt;&#xA;&lt;li&gt;Inline compiler window / debugger window&lt;/li&gt;&#xA;&lt;li&gt;Snippet gallery&lt;/li&gt;&#xA;&lt;li&gt;Symbol viewer&lt;/li&gt;&#xA;&lt;li&gt;Extremely lightweight memory footprint (some of my projects have several hundred source files)&lt;/li&gt;&#xA;&lt;li&gt;Easy tabs / split windows&lt;/li&gt;&#xA;&lt;li&gt;Simple sessions instead of complex 'projects'&lt;/li&gt;&#xA;&lt;li&gt;(Semi) simple plug-in architecture&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;With just those basic features, I feel like I'm almost spoiled. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm actually &lt;em&gt;less&lt;/em&gt; productive when working with feature rich IDEs, and thankful that I never developed a dependency on one.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-30T17:06:36.750" LastActivityDate="2010-12-30T17:06:36.750" CommunityOwnedDate="2011-01-03T16:15:01.900" CommentCount="1" />
  <row Id="32657" PostTypeId="2" ParentId="32624" CreationDate="2010-12-30T16:58:37.557" Score="2" ViewCount="" Body="&lt;p&gt;Sounds that people are taking l10n efforts pretty lightly. Especially when using English as a original language, it's easy to ignore the fact that other languages normally require even 30-40% of more space for text. This requires translators to use abbreviations that are not that easy to understand which is of course bad for user experience.&lt;/p&gt;&#xA;" OwnerUserId="12055" LastActivityDate="2010-12-30T16:58:37.557" />
  <row Id="32658" PostTypeId="2" ParentId="32654" CreationDate="2010-12-30T16:59:10.067" Score="8" ViewCount="" Body="&lt;p&gt;The easy answer: &lt;em&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Design_by_committee&quot; rel=&quot;nofollow&quot;&gt;Design by Committee&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The benefit of the crowd of people looking over the design is that the whole group will come up with different aspects that the original designer didn't think of.  That's a plus. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the designer is a large crowd they all have different agendas and pet things they want to get into the standard for whatever reason.  Sometimes the features conflict with each other, sometimes there's politics surrounding decisions, etc.  It takes a long time for a large group of people to come to agreement.  That is a minus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For better or worse, the &lt;a href=&quot;http://www.w3.org/&quot; rel=&quot;nofollow&quot;&gt;W3C&lt;/a&gt; has chosen to develop their standards in this way.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-30T16:59:10.067" CommentCount="2" />
  <row Id="32659" PostTypeId="2" ParentId="3645" CreationDate="2010-12-30T17:01:01.253" Score="-1" ViewCount="" Body="&lt;p&gt;It sounds like you are destined for management.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-30T17:01:01.253" />
  <row Id="32660" PostTypeId="2" ParentId="7568" CreationDate="2010-12-30T17:01:56.527" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.trypython.org/#&quot; rel=&quot;nofollow&quot;&gt;TryPython&lt;/a&gt; for Python&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-12-30T17:01:56.527" CommentCount="2" />
  <row Id="32661" PostTypeId="2" ParentId="32654" CreationDate="2010-12-30T17:03:47.877" Score="5" ViewCount="" Body="&lt;p&gt;Long? It took almost 8 years for microsoft to make simple CSS2 barely-working in IE7, while DOM1 support in javascript is still broken in IE8. That's spec from 1998.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's why you won't see wide adoption of HTML5 in multimedia in the next 20 years. It's very complicated, unfinished, performance sucks. Even simple things like websockets are turned-off because of security reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some things won't work as an open standards. Doing games or MM in enviroment that should work on thin client and support gracefull degradation? That's madness.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDITED:&#xA;Yes, first is overcomplication. You have one flash plugin that is same in every browser and works the same way every time. That's simple and effective solution. One interface, you make the change once, recompile and viola - you have a plugin for all browsers on the market, by utilizing some intermediate layer between browser and the plugin.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other have you have 10 browsers and you want to add eg. multimedia / movie support. That means every company will have to implement media player from scratch, beside everyone wants something different. Apple wants H.264 so website owners will pay them royalties for codec for playing movies, Google and Mozilla wants VP8 so they can have their business not affected by Apple's patents, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So it ends up in implementing things that &lt;em&gt;everyone&lt;/em&gt; wants (while VP8 or H.264 would do, for a start).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So before they can overcome their differences Adobe will implement H.264 in flash, use their already available streaming and DRM stack and... it's ready. 3-4 months and you have a working technology with 98% adoption rate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simple, one company decides, so they can push massive changes quickly and won't have to add &quot;ideas&quot; of 20 other &quot;standarization body&quot; members. Beside HTML5 is maybe 10-15 years behind flash, in multimedia. The gap will only get bigger. In recent MAX avant you could see game controllers support and fullscreen 3D racing apps, running on flash in full FPS, hardware acceleration support and so on. Meanwhile, mozilla can now play H.246 video without crashing the browser, but only play. Any additional functionality (like fullscreen, streaming, fast forward) is still missing!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beside i think W3C is just wasting resources by trying to make HTML5 some half-baked copy of flash. It won't work... it's like trying to make flash a copy of HTML. Won't work.&lt;/p&gt;&#xA;" OwnerUserId="11827" LastEditorUserId="11827" LastEditorDisplayName="" LastEditDate="2010-12-30T17:31:51.253" LastActivityDate="2010-12-30T17:31:51.253" CommentCount="1" />
  <row Id="32662" PostTypeId="2" ParentId="32654" CreationDate="2010-12-30T17:06:00.417" Score="2" ViewCount="" Body="&lt;p&gt;Mark Pilgrim talks about this in his &quot;Dive Into HTML5&quot; here: &lt;a href=&quot;http://diveintohtml5.org/past.html&quot; rel=&quot;nofollow&quot;&gt;http://diveintohtml5.org/past.html&lt;/a&gt;  Seems a lot of people don't like the book version because it isn't technical enough, but in this section the editorial is pretty warranted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Edit: I just wanted to provide a reference for my comment about people not liking the &quot;chatty&quot; quality of the book: check the reviews on &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596806027&quot; rel=&quot;nofollow&quot;&gt;amazon&lt;/a&gt;.  I personally enjoyed reading it though and found it to be informative, so mileage may vary.)&lt;/p&gt;&#xA;" OwnerUserId="12057" LastEditorUserId="12057" LastEditorDisplayName="" LastEditDate="2010-12-30T17:20:03.947" LastActivityDate="2010-12-30T17:20:03.947" />
  <row Id="32664" PostTypeId="2" ParentId="32654" CreationDate="2010-12-30T17:07:44.683" Score="7" ViewCount="" Body="&lt;p&gt;Basically, getting a group of people to agree on something is rather difficult.  Not to mention that there are various issues to work out.  For example, there is (was?) plenty of debate over what codec to use for video.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For better or for worse, most specifications take a while to hammer out.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-12-30T17:07:44.683" />
  <row Id="32665" PostTypeId="2" ParentId="32654" CreationDate="2010-12-30T17:07:44.683" Score="9" ViewCount="" Body="&lt;h2&gt;Because it's critical that it's right.&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;It takes time to make things right -&lt;/strong&gt; The HTML5 standard, once set, will be around for a long time.  It needs to be the best that it can be and it needs to be right.  That takes debate by experts, trial and error, input from users and developers, and analysis of statistics&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;When a standard changes, someone's app somewhere will break -&lt;/strong&gt; Standards need to be right the first time.  With every change to a standard, someone's app somewhere in the world breaks with the new version.  That requires us as developers to go fix it, costing time and money.  It needs to be right the first time.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Vagueness needs to be removed&lt;/strong&gt; - It's easy to say this is what the canvas tag does when there's just the canvas tag on the page, but what about when it's inside another tag?  What about tag combinations?  How should they render?  How should they render with X style attributes set in particular combinations?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Bonus: &lt;a href=&quot;http://dev.w3.org/html5/spec/Overview.html&quot; rel=&quot;nofollow&quot;&gt;Take a look at the HTML5 spec in its current form and you'll see what goes into it.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-12-30T17:07:44.683" CommentCount="0" />
  <row Id="32666" PostTypeId="2" ParentId="32530" CreationDate="2010-12-30T17:08:04.387" Score="0" ViewCount="" Body="&lt;p&gt;I just don't think many people need it.  If you're using Python for web development, Django has it's own database system and manages the databases for you.  Is there another reason someone would need a large database? (That's an honest question, I'm still kind of new at this.)&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2010-12-30T17:08:04.387" CommentCount="2" />
  <row Id="32667" PostTypeId="2" ParentId="32610" CreationDate="2010-12-30T17:13:42.797" Score="2" ViewCount="" Body="&lt;p&gt;I have this book: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/087891434X&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/GRE-Computer-Science-REA-5th/dp/087891434X/ref=sr_1_1?ie=UTF8&amp;amp;qid=1293728836&amp;amp;sr=8-1&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is pretty interesting, and provides great insight into what is expected of someone looking to advance in post-grad CS studies.  Most universities don't require the CS subject test though, so you should really just use the book to help determine what topics in CS you are weak in.  Then with that knowledge come back here to ask what books you should look at for those specific topics.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck with your studies!&lt;/p&gt;&#xA;" OwnerUserId="12057" LastActivityDate="2010-12-30T17:13:42.797" CommentCount="4" />
  <row Id="32668" PostTypeId="2" ParentId="32617" CreationDate="2010-12-30T17:26:56.340" Score="0" ViewCount="" Body="&lt;p&gt;Case or Switch statements would work fine for this, though, by using integers to arbitrarily deal with the switch. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, in Ruby, while 'nil' returns as false under some circumstances, if you use the equality operator, &lt;code&gt;nil == false&lt;/code&gt; returns &lt;code&gt;false&lt;/code&gt;, so you could use ruby &lt;code&gt;nil&lt;/code&gt; to handle ternary logic.&lt;/p&gt;&#xA;" OwnerUserId="6883" LastActivityDate="2010-12-30T17:26:56.340" />
  <row Id="32669" PostTypeId="2" ParentId="32654" CreationDate="2010-12-30T17:30:10.567" Score="7" ViewCount="" Body="&lt;p&gt;The standards process for the HTML spec is set up in such a way that it guarantees wide acceptance of the specification. To understand that, you need to first understand 2022 is a more-or-less meaningless date for real-world use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first &lt;em&gt;real&lt;/em&gt; milestone which concerns content authors (not user agent creators, like browsers) is the &lt;em&gt;Last Call Working Draft&lt;/em&gt;. This milestone, &lt;a href=&quot;http://www.cmswire.com/cms/web-cms/html5-update-w3c-says-not-yet-viable-privacy-concerns-raised-008941.php&quot; rel=&quot;nofollow&quot;&gt;expected mid-next year&lt;/a&gt;, is the point at which the specification is locked down, and it's the last time anyone can raise serious objections to the specification as written.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Last Call Working Draft phase lasts about a year to two years, depending on what types of objections are raised. Once that's complete, the specification goes into &lt;em&gt;Candidate Recommendation&lt;/em&gt; stage. This is expected in or around 2012. At this point, it's a final specification in all but name. You can and should implement it with impunity, and most user agents should have &lt;em&gt;reasonable&lt;/em&gt; support for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason it's called &lt;strong&gt;&lt;em&gt;Candidate&lt;/strong&gt; Recommendation&lt;/em&gt; and it's not a full recommendation is that per W3C rules, to reach &lt;em&gt;Recommendation&lt;/em&gt; stage, &lt;a href=&quot;http://wiki.whatwg.org/wiki/FAQ#When_will_HTML5_be_finished.3F&quot; rel=&quot;nofollow&quot;&gt;two independent, fully-interopable implementations must be fully completed&lt;/a&gt;. This can take years, is largely uninteresting to the world at large (most user agents rarely implement the &lt;em&gt;entirety&lt;/em&gt; of a specification), and is where the 2022 number comes from.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in reality, 2012 is the number you should focus on.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-12-30T17:30:10.567" CommentCount="10" />
  <row Id="32670" PostTypeId="2" ParentId="32654" CreationDate="2010-12-30T17:47:56.703" Score="1" ViewCount="" Body="&lt;p&gt;Part of the issue is that the spec will not be finalized until there are at least two major implementations of the spec - at least two separate browsers supporting it in full. So the spec needs to be complete enough for full implementation, then it needs to actually be implemented, then it can be finalized.&lt;/p&gt;&#xA;" OwnerUserId="8187" LastActivityDate="2010-12-30T17:47:56.703" CommentCount="2" />
  <row Id="32671" PostTypeId="1" CreationDate="2010-12-30T17:49:25.730" Score="0" ViewCount="244" Body="&lt;p&gt;Price isn't really an issue. Are there any better javascript tutorials?&lt;/p&gt;&#xA;" OwnerUserId="11109" LastActivityDate="2010-12-31T00:34:42.010" ClosedDate="2010-12-31T01:16:16.530" Title="Are Lynda's JavaScript tutorials any good?" Tags="&lt;javascript&gt;&lt;tutorial&gt;" AnswerCount="2" CommentCount="3" />
  <row Id="32672" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T17:50:35.520" Score="0" ViewCount="" Body="&lt;p&gt;The only way you're going to learn to program is by... writing programs.&lt;/p&gt;&#xA;" OwnerUserId="12062" LastActivityDate="2010-12-30T17:50:35.520" CommunityOwnedDate="2010-12-30T17:50:35.520" />
  <row Id="32673" PostTypeId="2" ParentId="3062" CreationDate="2010-12-30T17:55:57.287" Score="1" ViewCount="" Body="&lt;p&gt;A few more:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Don Syme's blog&#xA;blogs.msdn.com/b/dsyme which&#xA;in fact references this thread&lt;/li&gt;&#xA;&lt;li&gt;The Morning Brew blog.cwa.me.uk - more about .NET in general but increasingly has F# items&lt;/li&gt;&#xA;&lt;li&gt;Rick Minerich's &quot;F# Discoveries this Week&quot; has been moved to fsharpcentral.com. From there you'll get links to pretty much any F# resource imaginable&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In addition to the London F# User Group mentioned above, there are some in the US:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;New England F# User Group, meets in Cambridge, MA: www.fsug.org [disclosure: I am a group lead]&lt;/li&gt;&#xA;&lt;li&gt;New York City F# User Group: www.meetup.com/nyc-fsharp&lt;/li&gt;&#xA;&lt;li&gt;San Francisco Bay Area F# User Group: www.sfsharp.org&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="12058" LastEditorUserId="12058" LastEditorDisplayName="" LastEditDate="2010-12-30T18:20:32.013" LastActivityDate="2010-12-30T18:20:32.013" />
  <row Id="32674" PostTypeId="1" AcceptedAnswerId="32678" CreationDate="2010-12-30T18:02:43.923" Score="39" ViewCount="3237" Body="&lt;p&gt;Is this some kind of Murphy's law? Maybe if I want to hire a very good programming ninja I should check out his website as in &quot;Show my your website and I will tell how good you are&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&#xA;Go stackoverflow top users tab and you will see&lt;/p&gt;&#xA;" OwnerUserId="7890" LastEditorUserId="7890" LastEditorDisplayName="" LastEditDate="2010-12-31T18:02:31.223" LastActivityDate="2010-12-31T21:25:24.360" ClosedDate="2011-01-19T23:11:48.863" Title="Why do good programmers have ugly websites?" Tags="&lt;design&gt;&lt;aesthetics&gt;" AnswerCount="30" CommentCount="16" FavoriteCount="18" />
  <row Id="32675" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T18:04:40.833" Score="18" ViewCount="" Body="&lt;p&gt;Because programing requires a certain type of logical thinking, and aesthetics (making things look pretty) requires a very different type of thinking.  There are very few people who have the knack for both.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2010-12-30T18:04:40.833" CommentCount="14" />
  <row Id="32676" PostTypeId="2" ParentId="32534" CreationDate="2010-12-30T18:04:51.580" Score="3" ViewCount="" Body="&lt;p&gt;You don't find partners the same way you find programmers.  A partner is somebody who is part of the business, somebody you trust and can work with.  A freelance programmer in a marketplace is somebody who will do some work for you for a mutually satisfactory payment.  So, you're looking in the wrong place.  If you don't know a suitable programmer, ask around.  You want personal connections here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really hope you're not somebody with an idea who wants somebody else to implement it and do most of the work in exchange for a share of the profits.  Ideas don't make money, implementations of ideas do, and if you really had a reliable business plan you could raise the money to pay a developer and keep all the profits.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-30T18:04:51.580" />
  <row Id="32677" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T18:05:20.567" Score="0" ViewCount="" Body="&lt;p&gt;I've always seen it as a form of arrogance.  &quot;I'm so good that I don't need to occupy myself with such petty things as how pretty it looks.&quot;&lt;/p&gt;&#xA;" OwnerUserId="4115" LastActivityDate="2010-12-30T18:05:20.567" CommentCount="2" />
  <row Id="32678" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T18:05:36.247" Score="99" ViewCount="" Body="&lt;p&gt;Because design is a specialization, just like programming: not everyone can do it. It takes years of training and experience to know how to recognize and implement good design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most people are not true polymaths, and either do not have the time, inclination, or ability to master two specializations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond that, most people don't have the resources to hire a professional designer to do their website. So, add that to the general programmer inclination to write one's own version of a website instead of using off-the-shelf tools, and you have a recipe for a lot of programmers creating websites that don't really look all that great.&lt;/p&gt;&#xA;" OwnerUserId="8" LastActivityDate="2010-12-30T18:05:36.247" CommentCount="8" />
  <row Id="32679" PostTypeId="2" ParentId="30985" CreationDate="2010-12-30T18:07:13.233" Score="6" ViewCount="" Body="&lt;p&gt;It needs to be a sensible combination of all of the answers so far.  In the end, when you're talking about a group of smart people (developers), you have to give them reasons why the behavior is important and give them enough control over &lt;strong&gt;how&lt;/strong&gt; that behavior is implemented that they are invested in doing it right.  Mandates from above are generally a loose with smart people, because if they have not agreed that the problem is a problem, then they are likely to spend more time working around the mandate than following the rule.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a few of my tactics:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Committing Changes:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, the team needs to agree on when to commit and what to commit.  Absolutely essential is a build setup that makes sense, so that people aren't holding off just because they don't know where to put something.  And a consensus on when/how often to check in.  &quot;don't break the build&quot; is an obvious good rule, but how is that checked, and who gets told about it?  Another baseline is &quot;it's not done if it's not checked in&quot;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most developers I know are more than happy to check in code IF:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The check in process is easy&lt;/li&gt;&#xA;&lt;li&gt;The synchronization process is easy (factoring in changes from other developers)&lt;/li&gt;&#xA;&lt;li&gt;Seeing changes and moving between versions is easy&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;One thing that I noticed recently was that checkins got more frequent and less painful when we lept forward to a new CM tool.  Our team is pioneering Rational Team Concert having formerly used Clearcase.  I don't mean to advertise tools, but the new (to me) wave of streaming checkins with lots of small, fast merges makes it way more enticing to checkin early and often.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Letting developers be in charge of eliminating CM pain generally increases the amount of checkin in that happens.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Adhering to Architecture - Not Writing Model Issues in Views and Controllers&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm putting that in the general clump of &quot;do the architecture correctly&quot;.  I agree with whoever said peer reviews - peer pressure is great for this.  One of the ways I generally see people come into the fold for best practices in this area is when their peers ask them why they did it the other way (the not so right way).  Generally the &quot;why&quot; question will lead people down the path of realizing for themselves why they should have done it differently.  When people have a well understood reason for the best practice, it's much easier to adhere to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if there's some formality linking a person to a decision, then it can be easier to assign bugs in that area... so if a person is responsible for fixing bugs in an area of faulty design, the need to get something right before they can move on to something new and exciting can be a big motivator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Avoid Hardcoding&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd start with clear coding standards and integrating a coding standard review in peer reviews.  Hard coding is one of those things that can easily be a checkbox on a peer review agenda.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm afraid that this sort of thing is the one thing where I've seen it become the role of the team lead to enforce the rule.  In teams I've run, we generally won't let someone move on until they've fixed the comments from a peer review of their code.  And &quot;no hard coding&quot; is a frequent peer review comment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;In general&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With almost any best practice, I think you have to pick your battles.  No team will become absolutely perfect.  But you can keep an eye on your major pain points and start tackling them in clusters.  I think it becomes the role of the leader to really know what is a pain point for the team vs. an annoying quirk of a particular individual.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your team is missing out on doing a particular best practice, I think the first question must be &quot;how much damage is this causing?&quot; if the answer is &quot;minimal&quot;, then it's probably not worth the time.  Some best practices are most relevant to specific types of systems - while they are good overall, they may not be worth the battle for systems where the practice is not a frequent occurence or major part of the system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the answer to &quot;how much damange?&quot; is &quot;ALOT!!!&quot;, then you can start building a case for showing the team that all this pain and suffering could be removed by fixing this one slacking point in best practices.  Most people are happy to avoid pain and suffering and it changes the dialogue from &quot;do this because I told you to&quot;, to a &quot;we decided to do this because it's better&quot;.&lt;/p&gt;&#xA;" OwnerUserId="12061" LastActivityDate="2010-12-30T18:07:13.233" CommentCount="2" />
  <row Id="32680" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T18:08:17.240" Score="2" ViewCount="" Body="&lt;p&gt;No, it is a question of funding. Who is going to pay for the effort of having a &quot;pretty&quot; website? Same reason good programmers are not likely to offer a full fledged application as sample code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Products cost real money and a nicely designed web site is a product.&lt;/p&gt;&#xA;" OwnerUserId="7380" LastActivityDate="2010-12-30T18:08:17.240" CommentCount="3" />
  <row Id="32681" PostTypeId="2" ParentId="31719" CreationDate="2010-12-30T18:10:31.873" Score="0" ViewCount="" Body="&lt;p&gt;I teach Java programming as an AP high school class.  I've found that when students know something about the internal workings of a computer, it does help them understand programming concepts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't go overboard - just simple concepts such as how things are stored in memory seem to help the students.&lt;/p&gt;&#xA;" OwnerUserId="4115" LastActivityDate="2010-12-30T18:10:31.873" />
  <row Id="32682" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T18:12:36.033" Score="2" ViewCount="" Body="&lt;p&gt;The cobblers children have no shoes. If the site is beautiful it may be that the programmer, being busy enough with his paid projects, has used an existing theme or template. Also, it really depends on what language the programmer prefers - perhaps they are not strong with HTML and CSS or perhaps they are busy learning other languages rather than doing something that can be easily achieved by using existing free templates.&lt;/p&gt;&#xA;" OwnerUserId="7722" LastActivityDate="2010-12-30T18:12:36.033" CommentCount="1" />
  <row Id="32683" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T18:19:39.183" Score="0" ViewCount="" Body="&lt;p&gt;Building pretty &amp;amp; cool web pages takes some time, and good programmers try to spend as much 'quality time' with their IDE as possible&lt;/p&gt;&#xA;" OwnerUserId="1473" LastActivityDate="2010-12-30T18:19:39.183" />
  <row Id="32684" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T18:27:48.747" Score="1" ViewCount="" Body="&lt;p&gt;Hard to say why.  I'm sure you could come up with a different reason for each example.  That said, aesthetics are very important in programming, just as they are with math.  It's not enough to solve something--you have to do it with elegance.  At least that's what I feel the difference between a good programmer and a great one is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Elegance, simplicity, and other soft concepts are difficult to perform but easy to recognise when you see it.  Perhaps education has emphasized too much science in computer science and not enough of the softer arts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for me, I used the default style that came with my blog software because I just haven't had the time to customize it.  Nor do I seem to have the time to blog much anymore so it's even lower on my priority list.  That doesn't mean I don't put the proper care and attention into the work I do for pay.  It's just a matter of putting the most work where you get the most benefit.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2010-12-30T18:27:48.747" />
  <row Id="32685" PostTypeId="2" ParentId="32617" CreationDate="2010-12-30T18:30:53.403" Score="0" ViewCount="" Body="&lt;p&gt;Another option in your case might be to invert the control by applying the &quot;tell don't ask&quot; principal and change it to (sorry about the word adultness, brain blockage):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;user.isAdult(new OnlyAllowAdultsToLogin())&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;where &lt;code&gt;OnlyAllowAdultsToLoginStrategy&lt;/code&gt; implements an interface:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;interface UserAdultnessPolicy&#xA;{&#xA;   void userIsAdult();&#xA;   void userIsChild();&#xA;   void userAdultnessIsUnknown();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5404" LastActivityDate="2010-12-30T18:30:53.403" CommentCount="1" />
  <row Id="32686" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T18:32:41.903" Score="1" ViewCount="" Body="&lt;p&gt;I think the same reason as why good graphicans can not code at all :)&lt;/p&gt;&#xA;" OwnerUserId="11827" LastActivityDate="2010-12-30T18:32:41.903" />
  <row Id="32687" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T18:33:50.687" Score="85" ViewCount="" Body="&lt;p&gt;One common reason is:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;They don't care&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-12-30T18:33:50.687" CommentCount="10" />
  <row Id="32688" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T18:34:39.950" Score="0" ViewCount="" Body="&lt;p&gt;Many programmers feel that UI is not &quot;real programming&quot;, hiding the fact that programming a good UI is more difficult and time consuming than writing an awesome scalable back-end.&lt;/p&gt;&#xA;" OwnerUserId="12050" LastActivityDate="2010-12-30T18:34:39.950" CommentCount="3" />
  <row Id="32689" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T18:35:43.817" Score="22" ViewCount="" Body="&lt;p&gt;A good programmer != a good web designer. And there is absolutely nothing wrong with that. Putting pretty CSS on a site would also not be in any way indicative of a programmer's ability to write the PHP code (for example) that powers the site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not to mention that beauty is subjective and what looks horrible to you may look pretty good to the site's author. Unless they're applying for a web design gig, I wouldn't sweat it. Not having a &quot;pretty&quot; website does not make a programmer inferior or uncreative.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2010-12-30T18:35:43.817" CommentCount="7" />
  <row Id="32690" PostTypeId="2" ParentId="32592" CreationDate="2010-12-30T18:37:21.940" Score="1" ViewCount="" Body="&lt;p&gt;Becoming an Oracle Certified Associate might show to prospective employers that you know Oracle products. &lt;a href=&quot;http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=198&quot; rel=&quot;nofollow&quot;&gt;The OCA requires only 2 exams&lt;/a&gt;, and for a college student would be affordable. To upgrade this to an Oracle Certified Professional will require attending a 3 to 5 day long course - and those tend to run several thousand dollars (or in India, for example, a 3-day course costs Rs 25500, a 5-day course costs Rs 42500). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As the others have recommended, taking the Java programming certifications would probably be more appropriate.&lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2010-12-30T18:37:21.940" />
  <row Id="32691" PostTypeId="2" ParentId="31710" CreationDate="2010-12-30T18:39:50.413" Score="0" ViewCount="" Body="&lt;p&gt;You Write:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The issue is that, due to resources issues (*), test phases are too long and &#xA;  are often shortened due to time constraints&#xA;  That's because developers are not doing them. One of the biggest Internet companies delivering the best most stable products &lt;em&gt;do not&lt;/em&gt; use testers at all. They only use automatic testing, all done by the developers themselves. &#xA;  Results are x10 better products than when the developer leaves testing to &quot;testers&quot;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Its like having construction workers build your house, but have a different team make sure that the building actually stands, the doors open and close, air conditioning is working etc... It will probably take x10 to build buildings, and most will end up being unreliable.&lt;/p&gt;&#xA;" OwnerUserId="12050" LastActivityDate="2010-12-30T18:39:50.413" />
  <row Id="32692" PostTypeId="1" CreationDate="2010-12-30T18:40:32.270" Score="0" ViewCount="97" Body="&lt;p&gt;I was a big fan of an app called &quot;GremCheck&quot; that was out a while back, that seems to have disappeared.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was a JavaScript included in a master page that placed an icon at the bottom of the page. It was used during testing. You could define your own tests, and the box could pop up per page and viewers would answer the questions you define (such as &quot;Does this page have the correct title?&quot;, &quot;Is the Grammar Correct&quot;, &quot;Does the design look consistent&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This was useful for end-user tests groups and quick testing for developers if time was squeezed on full functional testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone know where GremCheck went, if I can get to it, and if there's anything out there that does something similar?&lt;/p&gt;&#xA;" OwnerUserId="10276" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2010-12-30T21:06:29.107" LastActivityDate="2011-05-19T10:49:45.850" Title="What happened to GremCheck? Is there a viable replacement?" Tags="&lt;testing&gt;&lt;javascript&gt;" AnswerCount="1" CommentCount="3" FavoriteCount="1" />
  <row Id="32693" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T18:41:50.270" Score="3" ViewCount="" Body="&lt;p&gt;Programming != Design (ignore this space requirement filler)&lt;/p&gt;&#xA;" OwnerUserId="7007" LastActivityDate="2010-12-30T18:41:50.270" CommentCount="7" />
  <row Id="32694" PostTypeId="1" CreationDate="2010-12-30T18:43:03.657" Score="3" ViewCount="78" Body="&lt;p&gt;Today I had a religious experience: I participated in a videoconference using a high quality Polycom system.  This made a huge difference in communication quality -- people that I had a terrible time understanding previously now sounded like Shakespeare.  Seeing a high quality video image was enormously helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I asked operations how much the Polycom cost and they said that it cost $20K new and $4K off eBay.  So this solution doesn't work for people who work from home or who work in offices but are in groups of 3 or fewer people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My budget for a videoconferencing system is a few hundred dollars per person.  Skype is not nearly good enough.  And I haven't seen a consumer webcam that is good enough either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does such a solution exist?  I'm looking to collaborate both with people who are close by (in the same city but not in the same room) and far away (on different continents).&lt;/p&gt;&#xA;" OwnerUserId="11347" LastActivityDate="2010-12-30T20:14:55.603" ClosedDate="2010-12-31T15:04:36.157" Title="What videoconferencing platforms work best for distributed software development teams?" Tags="&lt;communication&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="32695" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T18:50:33.930" Score="33" ViewCount="" Body="&lt;p&gt;This is a very simple answer:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The car your mechanic drives is often a beat up clunking 'restoration work in progress'. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your electrician likely has wires coming out of their ceiling in more than one place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your plumber might have kludges that belong in a museum.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not just a programmer, I'm also a pretty good photographer. I rarely shoot a roll of 'family' film, I just don't have time (yes, some of us still use that stuff called 'film')&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We do this every day, many of us six days a week. The &lt;em&gt;last&lt;/em&gt; thing we want to do is work on something as trivial as a personal web site when there are more interesting things to work on in our 'spare time' :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, the site may be ugly, but it is easy to maintain and works in any browser. Additionally, I think visitors to my site are more interested in the information that I make available, rather than pretty styles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about StackOverflow .. you search, you find a promising link and you find what you needed to solve you problem. Were you impressed with the style? Will you remember it a few months from now? Probably not, but you will likely remember the knowledge that you gained.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2010-12-30T19:07:23.697" LastActivityDate="2010-12-30T19:07:23.697" CommentCount="10" />
  <row Id="32696" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T18:59:12.870" Score="4" ViewCount="" Body="&lt;p&gt;This is an example of &lt;a href=&quot;http://en.wikipedia.org/wiki/Countersignaling&quot; rel=&quot;nofollow&quot;&gt;counter signaling&lt;/a&gt;: &quot;showing off by not showing off, or by playing humble.&quot; Note that some elite programmers have exemplary websites, which falls under plain signaling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you spent too much time making a custom logo and picking nice colors, it might show that you care too much about what others think. Elite programmers already know they are good, and don't feel they have anything in particular that needs to be proved.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Footnote:&lt;/em&gt; Some elite programmers had some of the very first websites ever, and a lot has changed since then. To see what I mean, see Warner Bros's &lt;a href=&quot;http://www2.warnerbros.com/spacejam/movie/jam.htm&quot; rel=&quot;nofollow&quot;&gt;website for the movie Space Jam&lt;/a&gt;, which has been unchanged since 1996. Bad sites now could've been considered &quot;clean&quot; a decade ago.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-12-30T20:17:24.380" LastActivityDate="2010-12-30T20:17:24.380" CommentCount="6" />
  <row Id="32697" PostTypeId="2" ParentId="31719" CreationDate="2010-12-30T19:00:40.057" Score="0" ViewCount="" Body="&lt;p&gt;I'm going to answer this as asked in the title:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, a developer &lt;em&gt;should&lt;/em&gt; know the inner workings of the hardware.  How much depends on the type of developer &amp;amp; their goals, available time, and personal interest. The priority should, of course, be on the immediate tools, techniques, etc., that they employ in their area.  This opinion is along the lines of being a well rounded individual.  The more you know of things outside of your craft, without sacrificing your craft, the better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That doesn't mean that you need to get crazy with the Cheese Whiz.  Have a good overview of the hardware, how the pieces interact, how operating systems use them.  Along these lines, I suggest reading an operating systems concepts book for all developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do I know all of this?  &lt;strong&gt;Heck&lt;/strong&gt; no.  I've forgotten so much useless information about SCSI that it's not even funny.  However, learning about it was an invaluable experience.  I've also forgotten a lot of other hardware related details, but recall the important concepts that I learned from that knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I certainly suggest learning about the hardware.  Do it at a reasonable pace, depending on your needs.  Learn as much of the details as you reasonably can, but focus on the concepts.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2010-12-30T19:00:40.057" />
  <row Id="32698" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T19:02:34.440" Score="3" ViewCount="" Body="&lt;p&gt;I think it has has to with a utilitarian mind set. Think about it? What would a programmer consider flashy, a nice web site with pretty pictures, flash and an average load time of 30-60secs or a web site that is simple fast, contains everything the programmer thinks is useful and is really easy to maintain. Hell, some of use probably consider the command line more flashy than a neat pretty GUI. Ugly is in the mind of the user! &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2010-12-30T19:02:34.440" CommentCount="2" />
  <row Id="32699" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T19:06:23.220" Score="6" ViewCount="" Body="&lt;p&gt;Here are a few items&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Reminisce about the old days when screens had black backgrounds, so they make their IDE look the same way. Throw in some green text.&lt;/li&gt;&#xA;&lt;li&gt;So disgusted with sites that take too long to open with all the pop-ups, huge images, Flash, and banners and we just want to know the temperature.&lt;/li&gt;&#xA;&lt;li&gt;Better things to spend money on than Photoshop.&lt;/li&gt;&#xA;&lt;li&gt;Showing a bunch of text and offering a few files to download hardly requires a great UI.&lt;/li&gt;&#xA;&lt;li&gt;Their sites won't make any more money if they looked better.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Just be thankful there's more than just a command-prompt.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-30T19:06:23.220" CommentCount="1" />
  <row Id="32700" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T19:07:52.487" Score="6" ViewCount="" Body="&lt;p&gt;I program in C++, and write web pages in HTML 3.2.  Fast to load, and conveys everything I want to easily.  (Most of my creative ability is easily captured by a keyboard.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now get off my lawn.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-30T19:07:52.487" CommentCount="1" />
  <row Id="32701" PostTypeId="2" ParentId="32694" CreationDate="2010-12-30T19:10:27.910" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Skype&lt;/strong&gt; recently introduced &lt;a href=&quot;http://blogs.skype.com/en/2010/09/10_way_video_calling.html&quot; rel=&quot;nofollow&quot;&gt;group calls with up to 10 people&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Skype is free and very reliable.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2010-12-30T19:10:27.910" CommentCount="2" />
  <row Id="32702" PostTypeId="1" CreationDate="2010-12-30T19:10:53.100" Score="3" ViewCount="75" Body="&lt;p&gt;I am planning to implement an official Java specification in a different programming language. Would this be a copyright violation?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hypothetical examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;a &lt;a href=&quot;http://www.oracle.com/technetwork/java/javase/tech/index-jsp-135104.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;JMX&lt;/strong&gt;&lt;/a&gt; &quot;wrapper&quot; library for C++ which can control a Java application over JMX, and uses similar concepts and class/method names as the Java implementation&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;a &lt;a href=&quot;http://www.oracle.com/technetwork/java/javamail-138606.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;JavaMail&lt;/strong&gt;&lt;/a&gt; API and implementations (for different .Net network libraries) for C#&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="12065" LastEditorUserId="12065" LastEditorDisplayName="" LastEditDate="2010-12-30T19:28:16.860" LastActivityDate="2010-12-30T22:31:04.687" Title="Legal aspects of Java specification implementations in other programming languages" Tags="&lt;java&gt;&lt;legal&gt;&lt;api&gt;&lt;specifications&gt;&lt;implementations&gt;" AnswerCount="2" />
  <row Id="32703" PostTypeId="2" ParentId="32694" CreationDate="2010-12-30T19:17:51.987" Score="1" ViewCount="" Body="&lt;p&gt;Here is a nice blog post about webcams from Scott Hanselman.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.hanselman.com/blog/ReviewAndComparisonMicrosoftLifeCamCinemaHDAndVX7000WithHighQualityVideoInSkypeAndLiveMessenger.aspx&quot; rel=&quot;nofollow&quot;&gt;http://www.hanselman.com/blog/ReviewAndComparisonMicrosoftLifeCamCinemaHDAndVX7000WithHighQualityVideoInSkypeAndLiveMessenger.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also find more posts about being a remote worker is his blog.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps.&lt;/p&gt;&#xA;" OwnerUserId="12067" LastActivityDate="2010-12-30T19:17:51.987" />
  <row Id="32704" PostTypeId="2" ParentId="32702" CreationDate="2010-12-30T19:18:35.337" Score="4" ViewCount="" Body="&lt;p&gt;Implementing to APIs and the like probably isn't a copyright violation in the USA.  If you need actual legal advice, find a lawyer of the proper specialty in the jurisdiction you're in.  It'll be a lot cheaper than defending a lawsuit if you guess wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please note that asking legal advice on an international forum primarily composed of non-lawyers is not completely reliable, particularly when you neglect to tell us where you live.  Laws do vary from country to country, even relatively consistent ones like copyright.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2010-12-30T19:18:35.337" CommentCount="2" />
  <row Id="32705" PostTypeId="2" ParentId="31719" CreationDate="2010-12-30T19:24:08.037" Score="0" ViewCount="" Body="&lt;p&gt;Every developer should know the basic concepts associated with computer engineering: binary arithmetic, base conversion, Boolean algebra, logic gates, composition of a CPU (and what the components do), cache, virtual memory, compression, error detection and correction...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The extent to which these should be known depends on the job of the programmer. Like others have said, an embedded systems developer would have to be a lot more familiar with hardware capabilities and how to write software that best utilizes the hardware than say, a web developer.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2010-12-30T19:24:08.037" />
  <row Id="32706" PostTypeId="2" ParentId="32617" CreationDate="2010-12-30T19:24:49.830" Score="0" ViewCount="" Body="&lt;p&gt;Many years ago I played with some of the algorithms that were coming out for assigning a belief to values.  Was kind of fun.  Ultimately what I gained from it is that boolean is often a contrived fit.  Really it should be a trilean true/false/other value.  In experimentation that seemed to lead to the &quot;best&quot; code for me at the time.  I've since caved and do what everyone else does, while thinking internally how much simpler it COULD be if we'd quit doing things the same old way...  :-)&lt;/p&gt;&#xA;" OwnerUserId="715" LastActivityDate="2010-12-30T19:24:49.830" />
  <row Id="32707" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T19:30:14.177" Score="0" ViewCount="" Body="&lt;p&gt;Simple, try to do better than written in your book.&lt;/p&gt;&#xA;" OwnerUserId="12069" LastActivityDate="2010-12-30T19:30:14.177" CommunityOwnedDate="2010-12-30T19:30:14.177" />
  <row Id="32708" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T19:33:04.877" Score="0" ViewCount="" Body="&lt;p&gt;I have found that something which benefited me greatly in this area was looking at code that other people have written. I mean code they wrote outside of school since school assignments typically are not applicable to the real world.&lt;/p&gt;&#xA;" OwnerUserId="9369" LastActivityDate="2010-12-30T19:33:04.877" CommunityOwnedDate="2010-12-30T19:33:04.877" />
  <row Id="32709" PostTypeId="2" ParentId="32617" CreationDate="2010-12-30T19:33:50.877" Score="1" ViewCount="" Body="&lt;p&gt;The idea is quite useful. There's a whole field devoted to dealing with uncertainty called &lt;a href=&quot;http://en.wikipedia.org/wiki/Fuzzy_logic&quot; rel=&quot;nofollow&quot;&gt;Fuzzy Logic&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fortunately for us programmers, you can implement fuzzy logic with standard language features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, in the case you gave, the uncertain information is easily determinable by asking the user. So a tri-state enum like you describe will work fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are all kinds of other ways to be uncertain. Such questions include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Will it rain tomorrow? It hasn't happened yet, so nobody can know - but you can make an educated guess and give a probability.&lt;/li&gt;&#xA;&lt;li&gt;Is there multicellular life on a planet in the solar system of the star Beta Pictoris? It has a definite yes-or-no answer, but we can't currently tell what that is.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;A lot of those questions can be dealt with using probabilities in the range 0.0 (false) to 1.0 (true), and applying floating point math.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A computational chemist and computer scientist named David E. Shaw applied this kind of thing to Wall Street and is now worth about $2.5 billion. So yes, it's useful. :-)&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2010-12-30T19:33:50.877" />
  <row Id="32710" PostTypeId="2" ParentId="32533" CreationDate="2010-12-30T19:39:18.793" Score="6" ViewCount="" Body="&lt;p&gt;It largely depends on what you plan do with the degree. It appears that most CS majors end up as software engineers of some kind. With that in mind, I am really not sure why more people don't just major in software engineering. I suspect that there are not enough software engineering programs available especially at public institutions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I come from an embedded back ground. Every single person that I work with either had a EE degree or CE degree and that is partially because the when the &quot;old guys&quot; when to college there weren't that many CE programs available.  So, it is pretty obvious that if you want to work in the embedded field that a hardware background is desirable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless of the field you want to work in however, I believe that every programmer should take a course in assemble programing. You might never user it, but it will teach exactly what is happening at the processor level during a function call, how interrupts are handled, how memory is structured or how the different addressing modes are used. I believe all this things will make you a better programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, though it may not be apparent so some these are all important topics when considering Data Structures and Algorithms for a specific platform.  &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2010-12-30T19:39:18.793" CommunityOwnedDate="2011-01-05T14:29:46.470" CommentCount="2" />
  <row Id="32711" PostTypeId="2" ParentId="32694" CreationDate="2010-12-30T19:40:39.160" Score="1" ViewCount="" Body="&lt;p&gt;Did you check all solutions of polycom already? Not all they have is that expensive, and afaik they also have a solution that looks much like an instant messenger (Polycom CMA Desktop). For a few hundred dollars a person you're very likely to find something that suits your needs. The business media phone is appx. 700 euro here, and you need one for every caller. But I reckon the CMA Desktop solution is cheaper. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't tried it out myself, but &lt;a href=&quot;http://www.webex.co.uk/&quot; rel=&quot;nofollow&quot;&gt;webex&lt;/a&gt; got some good comments from former colleagues of mine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could also check any of the other web-based meeting and conference options. See &lt;a href=&quot;http://www.givemeareview.com/online-meeting/reviews.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; for a list.&lt;/p&gt;&#xA;" OwnerUserId="7268" LastActivityDate="2010-12-30T19:40:39.160" />
  <row Id="32712" PostTypeId="2" ParentId="19451" CreationDate="2010-12-30T19:42:02.473" Score="1" ViewCount="" Body="&lt;p&gt;We go by market popularity and platform version, making sure that things at least work on the most popular devices available.  Depending on what your app does and what hardware it interacts with, there may or may not be significant differences in how it runs between handsets.  For instance, Camera drivers are incredibly different between devices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Solving the screen layout and density differences between low, medium and high density devices is a problem that should only need to be solved once if done properly.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, the majority of our issues were found by testing on devices that run the full range of &lt;a href=&quot;http://developer.android.com/resources/dashboard/platform-versions.html&quot; rel=&quot;nofollow&quot;&gt;available/popular platforms&lt;/a&gt;.  You have to draw a line somewhere, for a small team, 5 or 6 devices is probably the limit of what is reasonable to test (this of course depends on your release schedule).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;--Addition--&lt;br&gt;&#xA;After working in the Android world for some time, I would revise my advice a little.  We now see the most oddities when going to different manufacturers.  I would recommend having equal representation across manufacturers, i.e. HTC, Motorola, Samsung, LG.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You just won't know what these manufacturers have done to the stack until you test.  We've found odd things like text fields with different character limits along with tons of camera driver and audio driver issues that are unique to each manufacturer but not specific to 1 device.&lt;/p&gt;&#xA;" OwnerUserId="12068" LastEditorUserId="12068" LastEditorDisplayName="" LastEditDate="2011-04-05T21:53:41.343" LastActivityDate="2011-04-05T21:53:41.343" />
  <row Id="32713" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T19:59:57.800" Score="2" ViewCount="" Body="&lt;p&gt;When I started programming, I loved computer games. So I started writing my own games, as soon as I had any tools at hand to do so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Quite naturally, my very first game was a text adventure. Similarly, you could start with a quiz or something, or some sort of guessing games.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, you could start with something, like a slot machine (you don't really need the animations, or even pictures. Just use A = apple, L = lemon, S = start, P = Plum etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This will teach you the basics of handling some user input, maintaining game state and generating output accordingly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I headed down this road quite far. I progressively learned, how to read out the keyboard state, or the mouse, how to use graphics code. I learned more about the language itself (I started with PASCAL) and used this to enhance my existing games or just started something new.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think games are really great to learn programming. Even with little experience, you can create small things, that give you small moments of pride. Because you create something, that's fun. Building actual applications is quite pointless, because it takes a lot of work to create something, that is actually useful, whereas it is surprisingly simple, to create a small game, that turns out addictive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may want to actually use an &lt;a href=&quot;http://en.wikipedia.org/wiki/Educational_programming_language&quot; rel=&quot;nofollow&quot;&gt;educational language&lt;/a&gt; (in my case, this was PASCAL and in retrospective, I think it proved to be quite a good choice). A lot of them are specifically aimed at creating games and such.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Creating applications is more than just creating algorithms. You have to design features, you need to organize and structure your code in different layers and modules. Unlike the rather &quot;atomic&quot; problems you're given at university, applications are sometimes best developed in an incremental way. You start with something and you add things on top of it. Thus already having something to start with (as you would in some of the languages listed in the wikipedia article), you save yourself a lot of frustration and start creating something right away. (A colleague of mine started programming by writing quake 2 mods). At some point, you will come to find the limitations of these easy-to-use tools, but until then, you will have a lot more insight and understanding. Probably enough, to reimplement the functionality they gave you to start with yourself.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2010-12-30T19:59:57.800" CommunityOwnedDate="2010-12-30T19:59:57.800" />
  <row Id="32714" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T20:00:46.803" Score="5" ViewCount="" Body="&lt;p&gt;You're looking at the whole huge program and it seems impossible. But the whole thing is made up of little stupid programs like the ones that you're saying &quot;don't do anything useful.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you need is experience breaking down huge complex tasks into tiny simple tasks. That is the root of all programming. The rest is just semantics.&lt;/p&gt;&#xA;" OwnerUserId="9015" LastActivityDate="2010-12-30T20:00:46.803" CommunityOwnedDate="2010-12-30T20:00:46.803" />
  <row Id="32715" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T20:11:34.733" Score="1" ViewCount="" Body="&lt;p&gt;They want to do something quick to share the source code of what they're working on... A plain white website does the job, so why need more?&lt;/p&gt;&#xA;" OwnerUserId="9166" LastActivityDate="2010-12-30T20:11:34.733" CommentCount="1" />
  <row Id="32716" PostTypeId="2" ParentId="30985" CreationDate="2010-12-30T20:11:46.540" Score="0" ViewCount="" Body="&lt;p&gt;If this crew is really having trouble checking in changes, adhering to separation of concerns and not hard-coding magic constants then I would fire the whole crew and replace them with real programmers&lt;sup&gt;1&lt;/sup&gt; that actually care about their craft as soon as possible. Be that one at a time or &lt;em&gt;en masse&lt;/em&gt; I couldn't say but these jokers have got to go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The sort of coding that you are describing is suitable for throw-away, one-use-only scripts. It is not how one builds a real application. If they are getting paid as professional programmers, then it is their job to know this sort of thing. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt; This is often used as a joke term for imaginary people that write their code directly in binary or something equally ridiculous. Here, I'm not joking. I'm a fairly rookie programmer and I wouldn't need to be told these things because I care about my craft. These are not real programmers that you are dealing with.&lt;/p&gt;&#xA;" OwnerUserId="2357" LastActivityDate="2010-12-30T20:11:46.540" CommentCount="1" />
  <row Id="32717" PostTypeId="2" ParentId="32694" CreationDate="2010-12-30T20:14:55.603" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.adobe.com/products/adobeconnect.html&quot; rel=&quot;nofollow&quot;&gt;Adobe Connect&lt;/a&gt; is a nice tool. It's easy to use, requires no installation and has a pay-per-use option.&lt;/p&gt;&#xA;" OwnerUserId="1402" LastActivityDate="2010-12-30T20:14:55.603" />
  <row Id="32718" PostTypeId="2" ParentId="22634" CreationDate="2010-12-30T20:24:25.070" Score="0" ViewCount="" Body="&lt;p&gt;If you have issues with high latency in an RDP connection, you can use Ericom Blaze, a software product that accelerates AND compresses standard Microsoft RDP, so it speeds RDP while conserving bandwidth.  It can also deliver higher frame rates and reduce screen freezes and choppiness.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can get more info and get a free eval here:&#xA;&lt;a href=&quot;http://www.ericom.com/ericom_blaze.asp?URL_ID=708&quot; rel=&quot;nofollow&quot;&gt;http://www.ericom.com/ericom_blaze.asp&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Adam&lt;/p&gt;&#xA;" OwnerUserId="12074" LastActivityDate="2010-12-30T20:24:25.070" />
  <row Id="32719" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T20:30:23.213" Score="1" ViewCount="" Body="&lt;p&gt;It's a mindset based on a false presumption. Most Web Programmers presume that they are not any good at design from day one. Designers acquire their skills by watching and doing - not in a classroom.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many people are multi-faceted but never reach out of their comfort zone. I personally do both because I realize that if you want something done right you have to do it yourself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a Web Developer working on the new design of my blog: &lt;a href=&quot;http://twitpic.com/3ihbgt&quot; rel=&quot;nofollow&quot;&gt;http://twitpic.com/3ihbgt&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="490" LastActivityDate="2010-12-30T20:30:23.213" />
  <row Id="32720" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T20:30:24.283" Score="16" ViewCount="" Body="&lt;p&gt;A well designed site consists of both good form and function. I think the OP talks about the form aspect here. From a function POV, I find most programmers' sites are quite well designed: I get the information I need quickly and clearly and the text is easy to read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the form aspect, for obvious reason most programmers aren't trained designers. There's nothing wrong with that. However, you don't have to be a professional designer to create a decent simple site, as long as you are aware of basic design principals such as typography, layout, color theory etc and some common sense when it comes to usability your site will be quite polished. Having Photoshop knowledge has nothing to do with all this. You can have a perfectly elegant site without using a single piece of graphic. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I always tell my programmer friends to read some good design blogs(the ones that teach design fundamentals, not those who create list posts of the hottest trends). For those who are interested, here's a list design blogs I recommend: (&lt;a href=&quot;http://bit.ly/cP1mXS&quot; rel=&quot;nofollow&quot;&gt;reposted&lt;/a&gt; from Scott Hanselman's podcast)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.456bereastreet.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.456bereastreet.com/&lt;/a&gt; (accessibility)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.alistapart.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.alistapart.com/&lt;/a&gt; (web design, standards)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.drawar.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.drawar.com/&lt;/a&gt; (design community, articles, showcases and forum).&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.lukew.com/ff/&quot; rel=&quot;nofollow&quot;&gt;http://www.lukew.com/ff/&lt;/a&gt; (interaction design)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://37signals.com/svn/posts&quot; rel=&quot;nofollow&quot;&gt;http://37signals.com/svn/posts&lt;/a&gt; (web app design, inspirations)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.smashingmagazine.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.smashingmagazine.com/&lt;/a&gt; (showcases, freebies, articles)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://typography.com/email/2010_03/index_tw.htm&quot; rel=&quot;nofollow&quot;&gt;http://typography.com/email/2010_03/index_tw.htm&lt;/a&gt; (typography)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://retinart.net/&quot; rel=&quot;nofollow&quot;&gt;http://retinart.net/&lt;/a&gt; (graphics design)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://cssglobe.com/&quot; rel=&quot;nofollow&quot;&gt;http://cssglobe.com/&lt;/a&gt; (frontend dev)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://ilovetypography.com/&quot; rel=&quot;nofollow&quot;&gt;http://ilovetypography.com/&lt;/a&gt; (typography)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.uxbooth.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.uxbooth.com/&lt;/a&gt; (User Experience)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://scriptandstyle.com/&quot; rel=&quot;nofollow&quot;&gt;http://scriptandstyle.com/&lt;/a&gt; (frontend dev)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.thegridsystem.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.thegridsystem.org/&lt;/a&gt; (layout)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://52weeksofux.com/&quot; rel=&quot;nofollow&quot;&gt;http://52weeksofux.com/&lt;/a&gt; (User experience, design)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://tutsplus.com/&quot; rel=&quot;nofollow&quot;&gt;http://tutsplus.com/&lt;/a&gt; (tutorials)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.zeldman.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.zeldman.com/&lt;/a&gt; (web standards)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1685" LastActivityDate="2010-12-30T20:30:24.283" CommentCount="2" />
  <row Id="32721" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T20:36:04.777" Score="1" ViewCount="" Body="&lt;p&gt;I think that it's not a matter of specialization, or the amount of spare time or money programmers have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you say is not actually true.  Most programmers &lt;em&gt;have beautiful websites&lt;/em&gt;.  You're just looking at the wrong place.  Take a look at &lt;em&gt;sources&lt;/em&gt;.  If you want to assess beauty of something a programmer created, check the source code!  Sources is what a programmer creates, not the appearance. &lt;/p&gt;&#xA;" OwnerUserId="34" LastActivityDate="2010-12-30T20:36:04.777" />
  <row Id="32722" PostTypeId="2" ParentId="35" CreationDate="2010-12-30T20:54:58.050" Score="2" ViewCount="" Body="&lt;p&gt;Someone on IRC quoted&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A friend of mine was once interviewing an engineer for a programming job and asked him a typical interview question: How do you know when a function or method is too big? Well, said the candidate, I don't like any method to be bigger than my head. You mean you can't keep all the details in your head? No, I mean I put my head up against my monitor, and the code shouldn't be bigger than my head.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="12076" LastActivityDate="2010-12-30T20:54:58.050" CommunityOwnedDate="2010-12-30T20:54:58.050" />
  <row Id="32723" PostTypeId="2" ParentId="32617" CreationDate="2010-12-30T20:57:20.633" Score="0" ViewCount="" Body="&lt;p&gt;My son was asking me how to efficiently implement tests that resemble this. The flags being tested were only true/false, but the matchkeys had three states (It must be true, it must be false, or I don't care). Of course this can be implemented with a 2bit data structure and a bit of bit twiddling, but that sort of code really needs to be commented as the purpose isn't easy to discern from just looking at the code.&lt;/p&gt;&#xA;" OwnerUserId="8890" LastActivityDate="2010-12-30T20:57:20.633" />
  <row Id="32724" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T21:04:21.543" Score="1" ViewCount="" Body="&lt;p&gt;Well, because I have considerably more interesting projects going on than dolling up my web site. Don't get me wrong. I would like to have a spifftastic website, and probably will go on a rampage of HTML5 at some point and rework my sites. But when it comes to &quot;work on really interesting program&quot; vs. &quot;make website look decent&quot;, I tend to pick #1.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And for sheer amusement, check the design on &lt;a href=&quot;http://www.berkshirehathaway.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.berkshirehathaway.com/&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2010-12-30T21:04:21.543" />
  <row Id="32725" PostTypeId="2" ParentId="30985" CreationDate="2010-12-30T21:05:25.963" Score="0" ViewCount="" Body="&lt;p&gt;A manager's job is not to be the friend of the employee, sometimes you have to be the bad guy. Enforcing coding standards and commits, refusal to follow proscibed architecture, failure to use prescribed tools etc are the times when you have to be unpopular. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Express the policies clearly. Do formal code reviews and check to see if policies are followed. Do not permit them to move to another task until all issues from code review are adjudicated. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the policy is concerning not commiting code, this calls for a written warning if they cannot do it when they are asked to do so. If they are not committing code, as far as you are concerned they haven't written any.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they don't improve after being given a reasonable chance to improve, fire them. Unprofessional developers are a drag on your team no matter what kind of code they write. They are affecting others with their lack of professionalism and it is not to be tolerated. They are not good people to retain in any event. Good developers commit their code, good developers follow architectural decisions even if they don't agree with them and good developers don't hard code. You won't be missing anything except headaches by getting rid of cowboy coders.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2010-12-30T21:05:25.963" />
  <row Id="32726" PostTypeId="1" AcceptedAnswerId="32738" CreationDate="2010-12-30T21:14:01.957" Score="1" ViewCount="446" Body="&lt;p&gt;A majority of my web development experience has been on the .Net stack (mainly Asp.net C#). I am looking to learn something new in my spare time, for the use of personal projects and possibly for use professionally (as an ISV). I know some Python, done some scripting with it in the past, nothing on the web though. Php has been around for a long time and RoR has gained a lot of popularity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any developers from the .NET world that have migrated over to one or more of the other platforms? If so, which do you prefer and why? Which would you suggest and why?&lt;/p&gt;&#xA;" OwnerUserId="10745" LastActivityDate="2011-01-17T17:16:40.577" Title="Next steps for Asp.Net C# developer (RoR vs Python Django vs PhP Drupal)" Tags="&lt;python&gt;&lt;asp.net&gt;&lt;ruby-on-rails&gt;&lt;django&gt;" AnswerCount="4" />
  <row Id="32727" PostTypeId="1" CreationDate="2010-12-30T21:19:20.850" Score="9" ViewCount="204" Body="&lt;p&gt;I'm reading &lt;em&gt;Coders at Work&lt;/em&gt;, and in it there's a lot of talk about invariants. As far as I've understood it, an invariant is a condition which holds both before and after an expression. They're, among other things, useful in proving that loop is correct, if I remember my Logic course correctly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is my description correct, or have I missed something? Have you ever used them in your program? And if so, how did they benefit?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2010-12-30T21:29:26.597" LastActivityDate="2010-12-30T23:08:22.957" Title="What are invariants, how can they be used, and have you ever used it in your program?" Tags="&lt;programming&gt;&lt;invariants&gt;" AnswerCount="4" CommentCount="7" FavoriteCount="2" />
  <row Id="32728" PostTypeId="2" ParentId="32425" CreationDate="2010-12-30T21:19:56.590" Score="2" ViewCount="" Body="&lt;p&gt;In college, there was a class called programming practicum that basically taught this ramp. Early on you were given a UI for a basic shopping application, and had to code the backend, the last month was Tetris from scratch. I think around 50% of new students (not retaking the class) failed, because ramping from small to large is incredibly difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd suggest one or more of the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Download an open source project, and add something. It doesn't have to be useful or good, but you'll have to look at the structure, which will give you a feel of how large project is built.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Just design your end project on paper, with arrows for dependencies. If you're making snake, you might have Snake head, snake tail, food, empty space, wall, board, current direction, etc. Might help you realize if your project is a lot bigger than you think.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Take a basic project, and make it bigger and bigger. You'll probably do a lot of refactoring, and hopefully you'll learn how to make smaller projects that can easily be added to.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you know somebody experienced, tell them your idea for a project, and have them write your classes + some important methods, probably would take an hour or so. That way you can just fill the methods out, and always know what you need to do next.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Finally, whatever you do, you should probably use a basic MVC (Model, View, Controller) design pattern. Without going into much detail, put your view (UI) into 1+ classes, your controller (Input, output, etc) into 1+ classes, and your Model (Logic, Data, basically everything else) into several classes. It is an easy way to get basic organization. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember, this step is hard. It's true that some people simply cannot program, but you're probably just stuck at this stage. Good luck!&lt;/p&gt;&#xA;" OwnerUserId="6433" LastActivityDate="2010-12-30T21:19:56.590" CommunityOwnedDate="2010-12-30T21:19:56.590" />
  <row Id="32729" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T21:24:58.390" Score="1" ViewCount="" Body="&lt;p&gt;This is exactly why I use &lt;a href=&quot;http://themeforest.net/&quot; rel=&quot;nofollow&quot;&gt;http://themeforest.net/&lt;/a&gt;  I am a developer who dabbles in design.  I can make things look great, but I need a designer to give me an over all look and feel.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The last time I did a design myself, it took me 2 weeks and looked okay.  Then we hired someone and in 2 days he had a design that blew mine out of the water.  But, it was his specialty.  Code is my specialty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think programmers get saddled with design much of the time either financial reasons.  But I'd rather have my employer spend $30 and buy a template rather than have me spend 2 weeks worth of time and pay creating something that is mediocre at best.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's an old saying: Good programmers write good code.  Great programmers copy good programmers' code.  I think this applies to acquiring design templates online (legally of course).&lt;/p&gt;&#xA;" OwnerUserId="10171" LastActivityDate="2010-12-30T21:24:58.390" />
  <row Id="32730" PostTypeId="2" ParentId="32671" CreationDate="2010-12-30T21:25:19.997" Score="1" ViewCount="" Body="&lt;p&gt;If you already understand some type of object-oriented language (C++, Java, C#, etc.), then you should be fine picking up javascript from free online tutorials. I highly recommend searching for &quot;javascript tutorial&quot; on SO. I am sure there are valuable resources there.&lt;/p&gt;&#xA;" OwnerUserId="11096" LastActivityDate="2010-12-30T21:25:19.997" />
  <row Id="32731" PostTypeId="2" ParentId="32726" CreationDate="2010-12-30T21:27:07.037" Score="0" ViewCount="" Body="&lt;p&gt;I've been writing MS products for the past five years, and make it a goal to learn one new language every year (thanks, Pragmatic Programmer).  2010's language of choice was Ruby and by extension Ruby on Rails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have not worked with Python (that may be 2011's language, haven't decided yet), but I spent a number of years in PHP.  Between PHP and Ruby, I will say that (in my humble opinion) Ruby has made me a much better developer that PHP ever could have.  Ruby's extremely dynamic features require such a completely different mindset from the statically typed C# that I look at every problem in a different way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Within the Rails framework, you'll find a lot of objects that feel very familiar to the concept of how Controls work in .NET; however, you will also find completely new ways of doing things.  PHP frameworks (even Drupal), by contrast, always felt like a hacked together set of objects and functions, never achieving the same level of polish as other language frameworks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those are just my thoughts, though, and I'll certainly be keeping an eye on this post to see what others have to say.&lt;/p&gt;&#xA;" OwnerUserId="11231" LastActivityDate="2010-12-30T21:27:07.037" CommentCount="2" />
  <row Id="32732" PostTypeId="2" ParentId="21186" CreationDate="2010-12-30T21:27:29.363" Score="3" ViewCount="" Body="&lt;p&gt;I think the only scenario where a person would go in to MS to interview for an SDE position and come out with an SDET offer would be if someone early in their career (an intern or fresh out of college, basically) showed a lot of testing aptitude, and repeatedly displayed evidence of &quot;the tester mindset&quot; during an interview.  It would have to be early enough in their career that they could possibly just not know about testing - so internships, or &lt;em&gt;maybe&lt;/em&gt; first job out of college.  I heard of a few cases where this happened from students at the University of Washington, which is right in Microsoft's backyard, so internships there were common.  It wasn't common.  The testing aptitude would have to be recognized early enough in the loop that the rest of the interview could be modified to a &quot;test&quot; loop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In theory, it could happen the other direction as well (SDET interview getting an SDE offer).  However, I don't think I ever heard of that - possibly because the SDET role was relatively unknown, and a person with a great &quot;tester's mind&quot; was more likely to be interviewing for an SDE role without realizing this other area where they might excell, than a great &quot;dev mind&quot; interviewing for an SDET role without realizing their SDE potential.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep in mind that I graduated over 5 years ago, so I don't know if even this scenario happens anymore.  At the time, the SDET role at Microsoft was pretty mysterious, and most people didn't really know about automated testing when they were in college.  I think that's changed a lot since then.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've interviewed for about 6 SDET positions at Microsoft, and a couple SDE positions.  The SDET role interviews were NOT easier.  The coding questions are usually about the same, although slightly less sophisticated answers might be accepted provided the person shows a clear bias towards quality (e.g., thinks of and handles interesting bugs; tests their answer well when they are done coding; etc.).  Any leeway on the coding is more than made up for by the need to have an ability to critically think about quality and testing.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said that, I do think an SDET career is easier to attain and move up in simply because good SDETs who are in the career for life aren't that common.  The &quot;SDET who really wants to be an SDE&quot; stereotype is not without a foundation.  Demonstrating a real (and honest) passion for testing will make you stand out, whereas devs with a real passion for development are relatively common.  This might not last; SDET roles are becoming more popular lately, as more companies hire for that role and as the field becomes better understood.  Right now, I think SDET is a real career sweet-spot, and not just at Microsoft.  Just make sure you actually &lt;em&gt;enjoy&lt;/em&gt; testing.  If you're really a pure dev at heart, you might find it difficult and dull.  &lt;/p&gt;&#xA;" OwnerUserId="8888" LastActivityDate="2010-12-30T21:27:29.363" />
  <row Id="32733" PostTypeId="1" AcceptedAnswerId="32774" CreationDate="2010-12-30T21:31:02.087" Score="4" ViewCount="213" Body="&lt;p&gt;I am working upon a product as core developer which will be launched in USA market in few months if successful.  Can this factor improve my chances for getting accepted into a PhD program at a top university (say top 20 in US)?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Normally good universities like CMU, Standford, MIT, Cornell are more interested in student's profile like research work, undergraduate school, etc. I am now passed out from very good university it's ranked in top 20 of India only. Neither did I do research work till now. But being one of founding member of company and developing product for same, I want to know if this factor can help and to what extent.&lt;/p&gt;&#xA;" OwnerUserId="12022" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-12-31T06:12:26.937" LastActivityDate="2010-12-31T06:12:26.937" Title="Does it help to be core programmer of a product (meant for social good) for getting into a PhD program at a top university?" Tags="&lt;research&gt;&lt;grad-school&gt;&lt;product-developer&gt;" AnswerCount="7" CommentCount="3" FavoriteCount="1" />
  <row Id="32735" PostTypeId="2" ParentId="15928" CreationDate="2010-12-30T21:34:18.667" Score="1" ViewCount="" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to just also add what Agile is NOT.  There are a lot of shops out there who claim to be Agile but in a way that just means they aren't interested in planning their projects and expect things done in an unreasonably short period of time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Agile!=no project plan.  It's tough to handle people who implicitly think that statement is false because they tend to be management types and not always easy to contradict.&lt;/p&gt;&#xA;" OwnerUserId="5057" LastActivityDate="2010-12-30T21:34:18.667" />
  <row Id="32736" PostTypeId="1" AcceptedAnswerId="32740" CreationDate="2010-12-30T21:36:10.053" Score="4" ViewCount="159" Body="&lt;p&gt;I've heard a lot about informational interviews, but don't have the slightest idea how to actually set one up or run one effectively.  I work as an SDET (SDE in Test) in an area with lots of great technical companies, and would like to have a better understanding of how different companies do testing.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have three sub-questions:  Who would I get in contact with to set up informational interviews at a company that I'd like to learn about?  How can I make sure the time is productive?  And, how do I keep the interview from being a burden to the employee(s) whom I speak with?&lt;/p&gt;&#xA;" OwnerUserId="8888" LastEditorUserId="8888" LastEditorDisplayName="" LastEditDate="2010-12-30T21:51:30.197" LastActivityDate="2010-12-30T22:59:39.047" ClosedDate="2010-12-31T15:18:06.580" Title="How to set up an informational interview?" Tags="&lt;interview&gt;&lt;interviewing&gt;" AnswerCount="1" CommentCount="5" FavoriteCount="1" />
  <row Id="32737" PostTypeId="2" ParentId="32733" CreationDate="2010-12-30T21:37:39.400" Score="7" ViewCount="" Body="&lt;p&gt;Unfortunately, no. This probably will not help you get in to a Ph.D program, or if it does, help you very little -- unless your program has some relationship with the fundamental research you'd be working on as part of your Ph.D.&lt;/p&gt;&#xA;" OwnerUserId="12071" LastActivityDate="2010-12-30T21:37:39.400" CommentCount="1" />
  <row Id="32738" PostTypeId="2" ParentId="32726" CreationDate="2010-12-30T21:39:53.203" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;for the use of personal projects and possibly for use professionally&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's the problem. IMHO, you have to choose between learning something for your personal projects, something you will probably appreciate to use, and, on the other hand, learning something which may be useful for your current work or career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a web developer, working most of the time with ASP.NET/C# and PHP. I like C#. I hate PHP. But I learned PHP because there are many requests for PHP websites. In any case I would use PHP for any personal project &lt;em&gt;for fun&lt;/em&gt;, never. Also, PHP never made me a better programmer. On the contrary, I found myself loosing something by learning PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I suggest is:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;To decide what is more important for you: to have a new skill which may be valuable for your current work or career or to learn something for fun or to be a better overall developer.&lt;/li&gt;&#xA;&lt;li&gt;If your work/career is more important, see what can be more valuable. It may be, like in my case, PHP. Or it may be another language, like Ruby on Rails.&lt;/li&gt;&#xA;&lt;li&gt;If your work/career is less important, then try to learn several languages, each one for a week or a few days. You will quickly see which one is more pleasant to use for you, and which one you will probably never like.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6605" LastActivityDate="2010-12-30T21:39:53.203" CommentCount="2" />
  <row Id="32739" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T21:47:11.200" Score="2" ViewCount="" Body="&lt;p&gt;There was a site I visited that compared a website built by someone with a programming background and a site built by a graphic designer/artist. You could clearly see the artist was more pleasing to look at.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, it is because the artist understands things like what typography is appropriate for this site, the color scheme matches, and layout of the site is important too. Many programmers were never taught those kinds of things.&lt;/p&gt;&#xA;" OwnerUserId="11096" LastActivityDate="2010-12-30T21:47:11.200" />
  <row Id="32740" PostTypeId="2" ParentId="32736" CreationDate="2010-12-30T21:47:56.440" Score="1" ViewCount="" Body="&lt;p&gt;Here are my answers to your three sub-questions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;If there are local professional groups that may have testers this may be a place to inquire if there are other testers around that would like to discuss how they do what they do.  Developers can have code camps that I'm not sure if there is a tester equivalent but it may be something to consider.  Alternatively, if there are colleges or universities near you, they may have courses about testing that may be worth investigating and seeing if some instructor may know some testers that you could interview.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;For starters, have a list of what questions you want to ask and what kinds of follow-ups do you have as doing a little, &quot;What if...&quot; may be a good scenario before the meeting.  What procedures do you want to know?  What process questions do you have?  If you know some deal breakers for yourself, you may want to ask about these to prevent yourself from applying where you know you wouldn't fit.  A time limit may be worthwhile as well as know what kind of follow-up time frame do you want to have.  After all, there may be more questions you'll have a few days after the interview and establishing follow-up protocol is a reasonable tactic here to my mind.  Some people may like e-mail, some may prefer text messages and others may want you to just drop by on day X as a follow-up.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You offer up something in exchange.  For example, you could buy them a meal or snack that may help to build a bond.  A key point here is to build up a network so that rather than coming into an interrogation, this is more of a friendly chat.  In a way you may have to figure out what else may mean something to the other person but food can be a pretty basic necessity for most people that can work at times.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;There are a few ways I could see trying to crack into a company assuming you don't know anyone already working there:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Try to find someone in there that you could follow on-line.  Twitter, blogs, and LinkedIn may work as ways of finding someone in a company and allow you to build rapport that could help make that informational interview work.  This can require some work and could have bad results if you seem to be smothering someone this way.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Case the place.  This would be where you'd hang out near the office door, where employees may go for lunch or to get a coffee that may work depending on how well you initiate conversation and don't come off as creepy in this case as there could be a view of you being a stalker in this case.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;These would be suggestions and do be careful about privacy and probably rejection in some cases as how you feel if a stranger came up and wanted to discuss your work with you?&lt;/p&gt;&#xA;" OwnerUserId="4327" LastEditorUserId="4327" LastEditorDisplayName="" LastEditDate="2010-12-30T22:59:39.047" LastActivityDate="2010-12-30T22:59:39.047" CommentCount="2" />
  <row Id="32741" PostTypeId="2" ParentId="32727" CreationDate="2010-12-30T21:48:19.857" Score="1" ViewCount="" Body="&lt;p&gt;An invariant (in common sense) means some conditions that must be true at some point in time or even always while your program is executing. e.g. PreConditions and PostConditions can be used to assert some conditions that must be true when a function is called and when it returns. Object invariants can be used to assert that a object must have a valid state throughout the time it exists. This is the design by contract principle.&lt;br&gt;&#xA;I have used invariants informally using checks in code. But more recently I am playing with the code &lt;a href=&quot;http://msdn.microsoft.com/en-us/devlabs/dd491992&quot; rel=&quot;nofollow&quot;&gt;contracts library for .Net&lt;/a&gt; that directly supports invariants.&lt;/p&gt;&#xA;" OwnerUserId="3414" LastActivityDate="2010-12-30T21:48:19.857" />
  <row Id="32742" PostTypeId="1" CreationDate="2010-12-30T21:49:08.047" Score="7" ViewCount="127" Body="&lt;p&gt;I'm just wondering what some of the canonical problem sets are for certain types of programming languages?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ie. Fill in the blanks:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;__ is the perfect language to use for solving __ because __.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question was arrived at reading or hearing people say statements like &lt;em&gt;such and such module in our codebase would be much easier to implement using a functional language.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fee free to include examples that would seem obvious to you.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-12-31T05:39:04.053" LastActivityDate="2010-12-31T05:39:04.053" ClosedDate="2010-12-31T00:56:20.470" Title="What are the canonical problem sets or problem domains for the different types of programming languages?" Tags="&lt;programming-languages&gt;&lt;problem-domains&gt;" AnswerCount="3" CommentCount="15" FavoriteCount="1" />
  <row Id="32743" PostTypeId="1" CreationDate="2010-12-30T21:59:44.887" Score="1" ViewCount="80" Body="&lt;p&gt;I'm trying to figure out how to find out if there's a good standard format for sharing business information such as:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Business Name&lt;br&gt;&#xA;Address - well-defined fields&lt;br&gt;&#xA;Lat,Lng Coords&lt;br&gt;&#xA;Business Type - maybe from a well-defined enum, my starting point contains  Retail,Food,Drink,Coffee,Service&lt;br&gt;&#xA;Hours of operation - including a spot for 'except laksdasd' or 'sometimes we open late' which could be just plain language&lt;br&gt;&#xA;Business Keywords - don't know if this is asking too much. how well do http meta tags work in practice?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, if no such thing exists, is this something I can submit to IETF?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't currently find it on &lt;a href=&quot;http://www.rfc-editor.org/cgi-bin/rfcsearch.pl&quot; rel=&quot;nofollow&quot;&gt;http://www.rfc-editor.org/cgi-bin/rfcsearch.pl&lt;/a&gt; , and vCard doesn't suit my needs.. Thanks!&lt;/p&gt;&#xA;" OwnerUserId="11446" LastEditorUserId="11446" LastEditorDisplayName="" LastEditDate="2010-12-31T08:06:55.947" LastActivityDate="2011-03-08T03:04:25.007" Title="I want to try and find an RFC for Business Listings." Tags="&lt;business&gt;&lt;specifications&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="32744" PostTypeId="2" ParentId="32727" CreationDate="2010-12-30T21:59:50.157" Score="0" ViewCount="" Body="&lt;p&gt;An invariant is like a rule or an assumption that can be used to dictate the logic of your program. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, suppose you have some software application that keeps track of user accounts. Suppose also that user can have multiple account, but for whatever reason you need to differentiate between a user's main account and &quot;alias&quot; accounts. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This could be a DB record or something else, but for now lets assume each user account is represented by a class object.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;class userAccount&#xA;{&#xA;  private char * pUserName;&#xA;  private char * pParentAccountUserName;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...&#xA;}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An invariant might be the assumption that if pParentAccountUserName is NULL or empty then this object is the parent account. You can use this invariant to distinguish different types of account. There are probably better methods to distinguish different types of user accounts, so keep in mind this is just an example to show how an invariant might be used.  &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2010-12-30T21:59:50.157" CommentCount="3" />
  <row Id="32745" PostTypeId="2" ParentId="32624" CreationDate="2010-12-30T22:17:43.207" Score="1" ViewCount="" Body="&lt;p&gt;Answer: Yes. Although in the environment I work (Python/Zope/Plone) it's very easy to localize strings afterwards, so I skip that if it isn't a requirement from the start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I store text in unicode objects, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, yes. I make sure my applications are reasonably easy to localize and even if not localized will work in an international setting. Not doing so is a mistake, as the effort needed is small, and the benefit great.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-30T22:17:43.207" />
  <row Id="32746" PostTypeId="2" ParentId="32727" CreationDate="2010-12-30T22:20:35.117" Score="0" ViewCount="" Body="&lt;p&gt;Coming from a physics background, in physics we have invariants, which are essentially quantities which do not vary throughout an entire computation/simulation. For instance, in physics, for a closed system total energy is conserved. Or again in physics, if two particle collide, the resulting fragments must contain exactly the energy they started with, and exactly the same momentum (a vector quantity). Usually there aren't enough invariants to totally specify the result. For instance in the 2particle collision, we have four invariants, three momentum components, and an energy component, but the system has six degrees of freedom (six numbers to describe its state). The invariants ought to be conserved to within rounding error, but their conservation does not prove the solution is correct.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So typically, these things are important as sanity checks, but by themselves they can't prove correctness.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2010-12-30T22:20:35.117" CommentCount="1" />
  <row Id="32747" PostTypeId="2" ParentId="32742" CreationDate="2010-12-30T22:22:33.200" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Brainfuck&quot; rel=&quot;nofollow&quot;&gt;BrainF*ck&lt;/a&gt;&lt;/strong&gt; _&lt;em&gt;is the perfect language for solving&lt;/em&gt;_ &lt;strong&gt;having too much time&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="2673" LastActivityDate="2010-12-30T22:22:33.200" />
  <row Id="32748" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T22:22:42.823" Score="1" ViewCount="" Body="&lt;p&gt;Because of other priorities and many things to do, so it's always pushed to &quot;when I'll have time&quot;, same with holidays :D&lt;/p&gt;&#xA;" OwnerUserId="9094" LastActivityDate="2010-12-30T22:22:42.823" />
  <row Id="32749" PostTypeId="2" ParentId="32733" CreationDate="2010-12-30T22:24:05.303" Score="2" ViewCount="" Body="&lt;p&gt;I looked into doing a PhD on several occasions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I took away from it was this:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;A PhD is not something you get to affirm you are the world's greatest programmer.&lt;/li&gt;&#xA;&lt;li&gt;A PhD will not necessarily help you be a better programmer. It may help some, but the investment doesn't look so hot if that's your goal.&lt;/li&gt;&#xA;&lt;li&gt;A PhD is what you go after if you primarily want to do research into programming and related fields rather than building apps. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Because most PhD programs are research focused, being a top programmer for most kinds of apps really isn't going to help you too much with the admissions process. It will help some, but its just saying to them you have a brain (maybe), not much else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I may have gotten a little different perspective because of my goals. The only reason I was looking into PhD was because one day I might want to teach programming (not computer science), but got a strong feeling I was at least looking at the wrong kinds of schools if that was my goal. Most schools I looked into were closer to actively discouraging folks from PhD if they &quot;only&quot; wanted to teach. &lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2010-12-30T22:24:05.303" CommentCount="4" />
  <row Id="32750" PostTypeId="2" ParentId="32742" CreationDate="2010-12-30T22:25:51.200" Score="3" ViewCount="" Body="&lt;p&gt;Most programming languages are general-purpose these days.  Therefore, these kinds of comparisons can be difficult and tend to be more about preference than utility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, there are some specialized languages.  Off the top of my head:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;SQL - used for database queries&lt;/li&gt;&#xA;&lt;li&gt;R - used for statistics&lt;/li&gt;&#xA;&lt;li&gt;prolog - used for AI (but is occasionally used for database queries)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Nowadays, you could possibly even say that C is a specialized language used for systems programming, embedded programming, and such.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another important consideration is that some programming languages are popular due to having good libraries in particular areas:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Python's scipy library makes it popular among a scientific crowd&lt;/li&gt;&#xA;&lt;li&gt;Ruby tends to be pretty popular amongst web programmers (not that it is the &lt;em&gt;only&lt;/em&gt; web language or even the most popular one)&lt;/li&gt;&#xA;&lt;li&gt;Java and C#'s enterprise-y libraries make them popular amongst enterprise programmers.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-30T22:25:51.200" />
  <row Id="32751" PostTypeId="2" ParentId="32742" CreationDate="2010-12-30T22:30:24.360" Score="0" ViewCount="" Body="&lt;p&gt;The biggest issue with this would be that we really don't have a 'perfect language for x' where x is non-trivial.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, why are we updating the languages?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Further to this, as a programming language is essentially a method of communicating instructions to a computer to inform it on how to perform certain tasks, this makes defining 'perfect' highly subjective to how the human most effectively communicates, which can and does vary from person to person.&lt;/p&gt;&#xA;" OwnerUserId="2673" LastEditorUserId="2673" LastEditorDisplayName="" LastEditDate="2010-12-31T00:05:15.553" LastActivityDate="2010-12-31T00:05:15.553" CommentCount="6" />
  <row Id="32752" PostTypeId="2" ParentId="32702" CreationDate="2010-12-30T22:31:04.687" Score="0" ViewCount="" Body="&lt;p&gt;You might want to check out &lt;a href=&quot;http://www.ikvm.net/&quot; rel=&quot;nofollow&quot;&gt;http://www.ikvm.net/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11828" LastActivityDate="2010-12-30T22:31:04.687" />
  <row Id="32753" PostTypeId="2" ParentId="32733" CreationDate="2010-12-30T22:38:52.243" Score="4" ViewCount="" Body="&lt;p&gt;No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The process of getting a PhD, almost as a rule, has very little to do with lots of coding or programming applications. Being a founder of a popular app will be a character factor: &quot;will this person drop out&quot; for admission, but it does not answer the prime question for PhD seekers:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you do original research (c.f. IEEE or ACM papers for examples of research)? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Typically that quality is demonstrated by undergraduate or Master's research. It would also be demonstrable by research at an industrial lab such as Google or Microsoft Research (but from what I can tell, they &lt;em&gt;hire&lt;/em&gt; PhD's).&lt;/p&gt;&#xA;" OwnerUserId="148" LastEditorUserId="148" LastEditorDisplayName="" LastEditDate="2010-12-31T05:15:23.637" LastActivityDate="2010-12-31T05:15:23.637" CommentCount="2" />
  <row Id="32754" PostTypeId="1" AcceptedAnswerId="32819" CreationDate="2010-12-30T22:48:04.213" Score="20" ViewCount="907" Body="&lt;p&gt;I'm reading The Daily WTF archives and especially those stories about IT-related companies which have a completely wrong approach of software development, the job of a developer, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some stories are totally horrible: a company &lt;a href=&quot;http://thedailywtf.com/Articles/The-Walking-Network.aspx&quot; rel=&quot;nofollow&quot;&gt;don't have a local network&lt;/a&gt; for security reasons, another one has a source control server which can &lt;a href=&quot;http://thedailywtf.com/Articles/Working-Around,-Over,-and-Through-the-Process.aspx&quot; rel=&quot;nofollow&quot;&gt;only be accessed by the manager&lt;/a&gt;, etc. Add to it all those &lt;a href=&quot;http://programmers.stackexchange.com/questions/31568/how-to-deal-with-a-ceo-making-all-technical-decision-but-with-little-technical-kn&quot;&gt;stories about managers&lt;/a&gt; who don't know anything about their work and make stupid decisions without listening to anybody.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing is that I don't see how to know if you will be employed by such company during an interview. Of course, sometimes, an interviewer tells weird things which gives you an idea that something goes very wrong with the company (in my case, the last manager said I should work 100% of my time through Remote Desktop, connected to on an old and slooooow machine, because &lt;em&gt;&quot;it avoids several people to modify the same source code&quot;&lt;/em&gt;; maybe I should explain him what SVN is).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But in most cases, you will be unable to get enough information during the interview to get the exact image of a company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So how to avoid being employed by this sort of companies?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;I thought about asking to see some documents like &lt;strong&gt;documentation guide&lt;/strong&gt; or &lt;strong&gt;code style guidelines&lt;/strong&gt;. The problem is that I live in France, and here, most of the companies don't have those documents at all, and in the rare cases where those documents exist, they are outdated, poorly written, never used, or &lt;a href=&quot;http://thedailywtf.com/Articles/Documentation-Done-Right.aspx&quot; rel=&quot;nofollow&quot;&gt;do force you to make things that don't make any sense&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I also thought about asking to see &lt;strong&gt;how programmers actually work&lt;/strong&gt;. But seeing that they have dual screens or &lt;a href=&quot;http://thedailywtf.com/Articles/Technically-an-Interview.aspx&quot; rel=&quot;nofollow&quot;&gt;&quot;late-modern-artsy-fartsy furnishings&quot;&lt;/a&gt; doesn't mean that they don't have people making weird decisions, making it impossible to work there.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Have you been in such situations? What have you tried? Have it worked?&lt;/p&gt;&#xA;" OwnerUserId="6605" LastActivityDate="2011-01-31T01:33:55.340" Title="How to avoid to be employed by companies which are candidates to DailyWTF stories?" Tags="&lt;productivity&gt;&lt;work-environment&gt;&lt;interview&gt;&lt;recruiting&gt;" AnswerCount="10" FavoriteCount="8" />
  <row Id="32755" PostTypeId="2" ParentId="32727" CreationDate="2010-12-30T22:54:52.497" Score="3" ViewCount="" Body="&lt;p&gt;In OOP, an invariant is a set of assertions that must always hold true during the life of an object for the program to be valid. It should hold true from the end of the constructor to the start of the destructor whenever the object is not currently executing a method that changes its state.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example of invariant could be that exactly one of two member variables should be null. Or that if one has a given value, then the set of allowed values for the other is this or that...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I sometime use a member function of the object to check that the invariant holds. If this is not the case, an assert is raised. And the method is called at the start and exit of each method that changes the object (in C++, this is only one line...)&lt;/p&gt;&#xA;" OwnerUserId="602" LastEditorUserId="602" LastEditorDisplayName="" LastEditDate="2010-12-30T23:08:22.957" LastActivityDate="2010-12-30T23:08:22.957" CommentCount="1" />
  <row Id="32756" PostTypeId="1" CreationDate="2010-12-30T22:57:01.530" Score="5" ViewCount="185" Body="&lt;p&gt;I'm evaluating my current PHP practices in an effort to write more testable code. Generally speaking, I'm fishing for opinions on what types of actions belong in the constructor. Should I limit things to dependency injection? If I do have some data to populate, should that happen via a factory rather than as constructor arguments? (Here, I'm thinking about my &lt;code&gt;User&lt;/code&gt; class that takes a user ID and populates user data from the database during construction, which obviously needs to change in some way.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've &lt;a href=&quot;http://misko.hevery.com/code-reviewers-guide/&quot; rel=&quot;nofollow&quot;&gt;heard it said&lt;/a&gt; that &quot;initialization&quot; methods are bad, but I'm sure that depends on what exactly is being done during initialization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the risk of getting too specific, I'll also piggyback a more detailed example onto my question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a previous project, I built a FormField class (which handled field value setting, validation, and output as HTML) and a Model class to contain these fields and do a bit of magic to ease working with fields. FormField had some prebuilt subclasses, e.g. FormText (&lt;code&gt;&amp;lt;input type=&quot;text&quot;&amp;gt;&lt;/code&gt;) and FormSelect (&lt;code&gt;&amp;lt;select&amp;gt;&lt;/code&gt;). Model would be subclassed so that a specific implementation (say, a Widget) had its own fields, such as a name and date of manufacture:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Widget extends Model {&#xA;    public function __construct( $data = null ) {&#xA;        $this-&amp;gt;name = new FormField('length=20&amp;amp;label=Name:');&#xA;        $this-&amp;gt;manufactured = new FormDate;&#xA;&#xA;        parent::__construct( $data ); // set above fields using incoming array&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now, this does violate some rules that I have read, such as &quot;avoid &lt;code&gt;new&lt;/code&gt; in the constructor,&quot; but to my eyes this does not seem untestable. These are properties of the object, not some black box data generator reading from an external source. Unit tests would progressively build up to any test of Widget-specific functionality, so I could be confident that the underlying FormFields were working correctly during the Widget test.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In theory I could provide the Model with a FieldFactory() which could supply custom field objects, but I don't believe I would gain anything from this approach. Is this a poor assumption?&lt;/p&gt;&#xA;" OwnerUserId="444" LastActivityDate="2010-12-31T22:21:29.853" Title="Dependency injection: what belongs in the constructor?" Tags="&lt;unit-testing&gt;&lt;construction&gt;" AnswerCount="1" FavoriteCount="2" />
  <row Id="32757" PostTypeId="2" ParentId="32533" CreationDate="2010-12-30T22:59:14.450" Score="1" ViewCount="" Body="&lt;p&gt;Things that I learned in college that I use every day:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Object-oriented design methodology&lt;/li&gt;&#xA;&lt;li&gt;Design patterns&lt;/li&gt;&#xA;&lt;li&gt;Regular expressions&lt;/li&gt;&#xA;&lt;li&gt;Basic algorithms and analysis&lt;/li&gt;&#xA;&lt;li&gt;Data structures&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I wish I took a database course.  (I have picked up enough to get by since I graduated, but I wish I knew more.)  I also wish version control was taught -- it's ubiquitous, extremely useful, and was completely ignored in my school's curriculum.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had to take several math courses.  I haven't used calculus since I graduated.  I wish I took a statistics course.  (Again, I've picked up enough to get by since graduating, but I wish I knew more.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond the CS department, take a writing course.  Good written communication skills are essential for success.&lt;/p&gt;&#xA;" OwnerUserId="12086" LastActivityDate="2010-12-30T22:59:14.450" CommunityOwnedDate="2011-01-05T14:29:46.470" CommentCount="11" />
  <row Id="32758" PostTypeId="2" ParentId="32754" CreationDate="2010-12-30T23:01:30.263" Score="23" ViewCount="" Body="&lt;p&gt;You could give them the &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Joel Test:&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Do you use source control? &lt;/li&gt;&#xA;&lt;li&gt;Can you make a build in one step? &lt;/li&gt;&#xA;&lt;li&gt;Do you make daily builds? &lt;/li&gt;&#xA;&lt;li&gt;Do you have a bug database? &lt;/li&gt;&#xA;&lt;li&gt;Do you fix bugs before writing new code? &lt;/li&gt;&#xA;&lt;li&gt;Do you have an up-to-date schedule? &lt;/li&gt;&#xA;&lt;li&gt;Do you have a spec? &lt;/li&gt;&#xA;&lt;li&gt;Do programmers have quiet working conditions? &lt;/li&gt;&#xA;&lt;li&gt;Do you use the best tools money can buy? &lt;/li&gt;&#xA;&lt;li&gt;Do you have testers? &lt;/li&gt;&#xA;&lt;li&gt;Do new candidates write code during their interview? &lt;/li&gt;&#xA;&lt;li&gt;Do you do hallway usability testing? &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-30T23:01:30.263" CommentCount="4" />
  <row Id="32759" PostTypeId="2" ParentId="32754" CreationDate="2010-12-30T23:02:00.247" Score="15" ViewCount="" Body="&lt;p&gt;Keep your resume circulating for a month or so after you are hired, and if things aren't up to snuff don't be afraid to take another opportunity. Companies will often view your employment as probationary for a period of time because they want to make sure that you work as well as you interviewed. It's only fair that you do the same if things really are at a Daily WTF level. &lt;/p&gt;&#xA;" OwnerUserId="7508" LastActivityDate="2010-12-30T23:02:00.247" CommentCount="1" />
  <row Id="32760" PostTypeId="2" ParentId="32754" CreationDate="2010-12-30T23:08:30.647" Score="5" ViewCount="" Body="&lt;p&gt;Remember that any interview is a two-way street.  The employer is trying to determine whether you are a good candidate.  Similarly, you should try to determine whether the company is worth working for.  Ask a lot of questions.  Figure out what's important for you and ask about it.  Ask your interviewers what they like and dislike about the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I second the other poster's recommendation to give them the &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot; title=&quot;Joel Test&quot;&gt;Joel Test&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="12086" LastActivityDate="2010-12-30T23:08:30.647" />
  <row Id="32761" PostTypeId="2" ParentId="32754" CreationDate="2010-12-30T23:16:03.867" Score="5" ViewCount="" Body="&lt;p&gt;Maybe you could try to see things differently.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Being hired by a company being in the spotlights of The Daily WTF is an opportunity for you to show how you can solve problems. Huge problems.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;You may see those difficulties as opportunities&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of using the Joel Test to &lt;code&gt;avoid&lt;/code&gt; companies, use it to &lt;code&gt;improve&lt;/code&gt; them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What could be more &lt;strong&gt;exiting&lt;/strong&gt; than that?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you come in the company with your white horse like Napoleon telling them they are all wrong, you will be kicked out very quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The opportunity there is that you will be able to do &lt;strong&gt;constructive&lt;/strong&gt; proposals, backed with &lt;strong&gt;facts&lt;/strong&gt; and &lt;strong&gt;references&lt;/strong&gt;. If done like described in the previous sentence, you will be proposed to take care of it most of the time (that's the opportunity). In very few cases, you will be ignored.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-30T23:27:18.783" LastActivityDate="2010-12-30T23:27:18.783" CommentCount="16" />
  <row Id="32762" PostTypeId="2" ParentId="32533" CreationDate="2010-12-30T23:21:42.477" Score="25" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Data Structures/Algorithms especially Graphs.  The amount of real world situations in which I've managed to use graph-related algorithms has been a surprise to me.  Focus on knowing the characteristics of when a data structure or algorithm is appropriate. Being able to see a problem and know to use dynamic programming/greedy algorithm for example is important and can save you a lot of time.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Working knowledge of computational complexity.  You don't have to know off the top of your head what the lower-bound of radix sort is but knowing how to figure out what worst-case running time of something you write is important, especially for performance critical projects.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;O.S. concepts.  Memory management, Schedulers, etc.  Every developer really should have a solid understanding of operating systems given that the code you write is constantly interacting with it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;NetSec.  I have encountered very few developers who have a solid understanding of basic security concerns with development (buffer overflows, xss, SQLI, etc).  This is really a must if you want to be successful in industry. It is great if you can write the next big thing but you won't have many users for long if you don't secure their data.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Programming paradigms.  Know the characteristics of and differences between OO/Functional/Procedural programming.  One of the best undergrad classes I ever had was writing simple 20 instruction interpreters for fortan, scheme, prolog, etc in the languages themselves.  Just the exposure itself can really help you understand the fundamental concepts of software development.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="11536" LastActivityDate="2010-12-30T23:21:42.477" CommunityOwnedDate="2011-01-05T14:29:46.470" CommentCount="3" />
  <row Id="32763" PostTypeId="1" AcceptedAnswerId="33368" CreationDate="2010-12-30T23:24:30.407" Score="9" ViewCount="391" Body="&lt;p&gt;I've been reading about concurrency, multi-threading, and how &lt;a href=&quot;http://www.gotw.ca/publications/concurrency-ddj.ht&quot; rel=&quot;nofollow&quot;&gt;&quot;the free lunch is over&quot;&lt;/a&gt;.  But I've not yet had the possibility to use MT in my job.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm thus looking for suggestions about what I could do to get some practice of CPU heavy MT through exercises or participation in some open-source projects. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: I'm more interested in open-source projects that use MT for CPU-bound tasks, or simply algorithms that are interesting to implement using MT, rather than books or papers that only describe the tools like threads, mutexes and locks, or how MT can be used to have responsive GUIs...&lt;/p&gt;&#xA;" OwnerUserId="602" LastEditorUserId="602" LastEditorDisplayName="" LastEditDate="2011-01-03T16:18:06.220" LastActivityDate="2011-01-03T16:18:06.220" Title="How would you practice concurrency and multi-threading?" Tags="&lt;learning&gt;&lt;multi-threading&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="5" />
  <row Id="32764" PostTypeId="2" ParentId="27564" CreationDate="2010-12-30T23:29:29.703" Score="1" ViewCount="" Body="&lt;p&gt;Being wise enough to &lt;em&gt;not&lt;/em&gt; breaking backwards compatibilty. I've learned the existence of goto as a keyword the hard way, I was using it as an method name, so an update of my code for php 5.3 took 2 or 3 hours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something like roles for classes would be a good addition to the object system. Nothing complicated. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class abc { use xyz::method; use uvw::__all; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This would pick method method from class xyz and all methods from class uvm. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Constructor call should be useable as a object right after creation.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;new goodie()-&amp;gt;youp();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="12090" LastEditorUserId="12090" LastEditorDisplayName="" LastEditDate="2010-12-30T23:36:18.450" LastActivityDate="2010-12-30T23:36:18.450" CommunityOwnedDate="2010-12-30T23:29:29.703" />
  <row Id="32766" PostTypeId="2" ParentId="32674" CreationDate="2010-12-30T23:35:00.507" Score="1" ViewCount="" Body="&lt;p&gt;preference is given to &lt;strong&gt;basic&lt;/strong&gt; hand written html website that talks mainly about publications and research projects instead of fancy flash art and that gaudy stuff. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;There are more complex problems to solve and worry about that the website.&lt;/li&gt;&#xA;&lt;li&gt;You get funding for new projects based upon the contents of your website than the website itself.&lt;/li&gt;&#xA;&lt;li&gt;Simplicity of the (textual) UI is preferred (or rather &lt;em&gt;loved&lt;/em&gt; ) by the real programmers.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="12091" LastActivityDate="2010-12-30T23:35:00.507" />
  <row Id="32767" PostTypeId="1" CreationDate="2010-12-30T23:45:59.163" Score="2" ViewCount="214" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/25652/how-can-programmers-improve-their-people-skills&quot;&gt;How can programmers improve their people skills?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;as a programmer i spend most of my time coding , should we be more social and how can we establish that?&lt;/p&gt;&#xA;" OwnerUserId="10963" LastActivityDate="2010-12-31T00:50:57.827" ClosedDate="2010-12-31T00:54:41.893" Title="how can a programmer be more social?" Tags="&lt;social&gt;&lt;programmers&gt;" AnswerCount="2" CommentCount="5" FavoriteCount="1" />
  <row Id="32768" PostTypeId="2" ParentId="32733" CreationDate="2010-12-30T23:47:30.533" Score="1" ViewCount="" Body="&lt;p&gt;Another no.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PhD's - and especially the grants needed to do them - are granted on scores, previous research (if applicable) and/or the project application. If you have nothing to show, your best chance is to try to find a professor that is willing to apply for a grant with you. Problem is, each year tons of students finish their masters and fight for those PhD's. So try to prove you're better than them. Good luck with that...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT : Apparently, the situation in Europe is different from the one in the US. In Europe, grants from research funds always require a promotor, most often a professor. There are budgets directed to students, for which you need to apply yourself but you'll need a promotor as well. Hence my suggestion. Given the remark in the comments, this apparently doesn't work in the US.&lt;/p&gt;&#xA;" OwnerUserId="7268" LastEditorUserId="7268" LastEditorDisplayName="" LastEditDate="2010-12-31T01:24:00.140" LastActivityDate="2010-12-31T01:24:00.140" CommentCount="3" />
  <row Id="32770" PostTypeId="2" ParentId="27564" CreationDate="2010-12-31T00:01:00.233" Score="1" ViewCount="" Body="&lt;p&gt;It seems that nobody mentioned an &lt;strong&gt;&lt;em&gt;optional&lt;/em&gt;&amp;nbsp; type safety&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would be great to be able to write code like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?php&#xA;$someVariable = 123;&#xA;$someVariable = &quot;Hello World&quot;;&#xA;&#xA;int $anotherVariable = 123;&#xA;////$anotherVariable  = &quot;Hello&quot;; // This must cause runtime exception.&#xA;////int $lastVariable = &quot;World&quot;; // This must cause it too.&#xA;?&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Another example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?php&#xA;// Current style (which must remain).&#xA;function SayHello($howManyTimes)&#xA;{&#xA;    if (!is_int($howManyTimes))&#xA;    {&#xA;        throw new Exception('Argument $howManyTimes is invalid. An integer was expected, instead of ' . gettype($howManyTimes) . '.');&#xA;    }&#xA;&#xA;    echo str_repeat('Hello', $howManyTimes);&#xA;}&#xA;&#xA;// New, optional, style, allowing to have a shorter code.&#xA;function SayWorld(int $howManyTimes)&#xA;{&#xA;    echo str_repeat('World', $howManyTimes);&#xA;}&#xA;&#xA;SayHello(123);&#xA;SayHello(&quot;Hello World&quot;);&#xA;&#xA;SayWorld(123);&#xA;////SayWorld(&quot;Hello World&quot;); // This must cause runtime exception.&#xA;?&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6605" LastActivityDate="2010-12-31T00:01:00.233" CommunityOwnedDate="2010-12-31T00:01:00.233" />
  <row Id="32771" PostTypeId="2" ParentId="32767" CreationDate="2010-12-31T00:08:09.860" Score="6" ViewCount="" Body="&lt;p&gt;Without knowing how social you are/aren't, I can't make a recommendation to your specific case.  However, I find that being social in the development community provides me plenty of benefits:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;I've had opportunities to raise my profile (and add lines to my resume) by speaking at conferences, co-authoring a book, and helping to organize a local professional association.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I've met people who are smarter and/or more experienced than I and pick their brains.  It's &lt;em&gt;amazing&lt;/em&gt; what you can learn over dinner from a more experienced hacker.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I've met people who might make good additions to my team at work.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I've had the opportunity to mentor a couple of people new to my field.  (A good question can teach you just as much as a good answer!)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It makes it easy to keep pace on what is happening in different areas of the tech world.  In addition to being interesting, this helps me see career opportunities before they are &quot;over-shopped&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I always have someone I can ping if I suddenly have to ramp up on $new-technology.  I always have someone to laugh at $spaghetti-code-I-just-took-over with, who will commiserate with me for having to untangle it.  I always have another pair of eyes if some particular bug is stumping me.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I get to meet hot geek guys ;)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Socializing in general, including with non-hackers/coders has its benefits, too!&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Decompressing, de-stressing, and forgetting about work.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Doing the things I love that don't involve a computer (martial arts, hiking, backpacking, cooking, making music, and so on).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Having a social support network when I need it.  &quot;Can you help me move?&quot;  &quot;I'm sick, will you pick up my favorite soup and bring it over?&quot; &quot;OMG the house flooded can I stay at your place?&quot; etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It makes me happy. :)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So, that leaves the question of how to become more social if you aren't already:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Go to events surrounding things you love to do, so you will meet people with similar interests.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make sure you're a worthwhile friend: work on your communication skills, be thoughtful, don't over-analyze people, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make an effort to have regular time away from the computer.  I know coders at the extreme of the buried-in-my-work spectrum who have utterly forgotten how to interact with humans face-to-face.  Don't be that guy.  It's funny when you are in college, but just sad when you are 30.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5516" LastActivityDate="2010-12-31T00:08:09.860" />
  <row Id="32772" PostTypeId="2" ParentId="32763" CreationDate="2010-12-31T00:17:10.047" Score="0" ViewCount="" Body="&lt;p&gt;This site has some good project examples in general. &lt;a href=&quot;http://www.planet-source-code.com&quot; rel=&quot;nofollow&quot;&gt;www.planet-source-code.com&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just pick a language and search for multi-threading. you should see a number of projects with source code available. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2010-12-31T00:57:33.430" LastActivityDate="2010-12-31T00:57:33.430" />
  <row Id="32773" PostTypeId="2" ParentId="32763" CreationDate="2010-12-31T00:23:09.053" Score="3" ViewCount="" Body="&lt;p&gt;Joseph Albahari's article on &lt;a href=&quot;http://www.albahari.com/threading/&quot; rel=&quot;nofollow&quot;&gt;Threading in C#&lt;/a&gt; is one of the best resources I've seen.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-31T00:23:09.053" CommentCount="2" />
  <row Id="32774" PostTypeId="2" ParentId="32733" CreationDate="2010-12-31T00:23:17.467" Score="7" ViewCount="" Body="&lt;p&gt;No, industrial programming experience will not (directly) help you get into a top 20 school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I say not &lt;em&gt;directly&lt;/em&gt; because there are many other factors that are more important:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Your academic record&lt;/strong&gt; -- I don't know how to &quot;translate&quot; your GPA score onto the 4.0 scale used in the States (typically, the Graduate School will translate/scale transcripts before it goes to the committee), but if you aren't in the top 10% of your class, you can pretty much cross the top ten schools off your list. &lt;em&gt;[Note: There are some obvious exceptions.]&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Your letters of recommendation&lt;/strong&gt; -- You should have at least three letters from former professors who have worked with you and can attest to your abilities. They should be able to describe not only how smart and hard working you are, but how you are creative and insightful. Don't ask anyone for a letter unless you've gotten A's in all of their courses. Ask them in person and read their body language; if they seem to hesitate, do not push the point, ask someone else instead.&lt;br&gt;&lt;br&gt;A letter writer will have an easier job if you've worked with them and they can concretely describe what you've done. For example, saying &quot;I challenged &lt;em&gt;&amp;lt;So-and-so&amp;gt;&lt;/em&gt; with &lt;em&gt;&amp;lt;an important task&amp;gt;&lt;/em&gt; and they tried three unique approaches, using their background in statistics to handle it, and discovered a way to solve an unrelated problem on the same project.&quot; You don't necessarily have to blow them out of the water like this, but &lt;strong&gt;it is much easier to write a strong letter with something concrete to work with&lt;/strong&gt; than it is to say &quot;&lt;em&gt;&amp;lt;So-and-so&amp;gt;&lt;/em&gt; took my class and got an A, just like 20 others.&quot;&lt;br&gt;&lt;br&gt;Bringing this back to your situation: You can ask your manager to write you a letter, but it will not carry much weight. You can use it as a fourth letter, beyond the requirements-- if its really strong, it might help a little.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;You personal statement&lt;/strong&gt; -- Your personal statement is how you convince the committee that not only are you capable of succeeding in a PhD program, but that &lt;strong&gt;getting a PhD for you is actually a good idea&lt;/strong&gt;. That means you are well motivated. It won't fly simply to say &quot;I want to learn more&quot; or &quot;I want to focus on this area&quot; or &quot;It's my dream to have this privilege.&quot; No. It must be convincing that your career goals make a PhD necessary.&lt;br&gt;&lt;br&gt;&lt;em&gt;On that, if you do not want to do research or teach, you should seriously reconsider your decision.&lt;/em&gt;&lt;br&gt;&lt;br&gt;Your personal statement must be logical and well written. It will also need to be flawless (no typos or strange formatting). To be frank, it will have to be written much better than the first version of your post. To be fair, I understand you did not have people look over your question before you posted, but it will be a must for your personal statement. The best thing you can do for yourself now is work on improving your writing. The personal statement is also a nice opportunity to explain any gaps in your record, for example, due to special circumstances.&lt;br&gt;&lt;br&gt;Bringing that back to programming experience: You may have had an epiphany that academia is the right place for you while working in the industry. If so, you can say it in your statement. Just avoid the cliche of starting your essay with &quot;When I was five I stubbed my toe on a computer and instantly I fell in love...&quot;.&lt;br&gt;&lt;br&gt;For general writing advice on these essays: After you write your first draft, you can completely remove the first paragraph. It almost always tends to be &quot;throat clearing&quot; that is unrelated to the point of the statement.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Your GRE scores&lt;/strong&gt; -- Do well on them, be in the 80-90th percentile or better. Do well on your TOEFL as well, if applicable.&lt;/li&gt;&#xA;&lt;li&gt;(Bonus, But &lt;em&gt;Very&lt;/em&gt; Helpful) &lt;strong&gt;Your Publications&lt;/strong&gt; -- If you have work that has appeared in peer-reviewed journals, conferences, or even workshops, these will help you tremendously! In particular, doing research with a professor and getting it published can help overcome any gaps you have in your academic record. It will show without a doubt that you can participate in research.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;However, I must object to your notion that a non-top-20 school is somehow worse. Based on your research area of interest, there are schools not in the top 20 that can be in the top five for that specific area. For instance, if your research is in software engineering, you should consider UC Irvine too. There may also be a small school with a professor you'd like to work with in particular.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The bottom line: Research experience will help you get into a top 20 school, not industrial experience. If anything, schools in the 30-50 rank will care more about your industry experience, but even then it will not count for much. The above items are far more important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disclosure: I am an assistant professor at UTSA, a research university. I graduated with a PhD from UCSD in 2009.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2010-12-31T06:11:46.890" LastActivityDate="2010-12-31T06:11:46.890" CommentCount="10" />
  <row Id="32775" PostTypeId="2" ParentId="32674" CreationDate="2010-12-31T00:34:30.793" Score="1" ViewCount="" Body="&lt;p&gt;First of all, most programmers fail with recognizing a good design. It's not about not caring about it, it's about not being aware of it.&lt;/p&gt;&#xA;" OwnerUserId="12097" LastActivityDate="2010-12-31T00:34:30.793" />
  <row Id="32776" PostTypeId="2" ParentId="32671" CreationDate="2010-12-31T00:34:42.010" Score="2" ViewCount="" Body="&lt;p&gt;I'm about as biased as can be, given that I'm the author of Lynda.com's &lt;a href=&quot;http://www.lynda.com/tutorial/375&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;JavaScript Essential Training&lt;/em&gt;&lt;/a&gt; and &lt;a href=&quot;http://www.lynda.com/tutorial/480&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Ajax Essential Training&lt;/em&gt;&lt;/a&gt; videos.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[For those who prefer books to video, I'm also the primary author of Peachpit Press's &lt;a href=&quot;http://www.javascriptworld.com&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;JavaScript &amp;amp; Ajax for the Web: Visual QuickStart Guide, 7th edition&lt;/em&gt;&lt;/a&gt;.]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But even taking my biases into account, I know who my competition is in the book &amp;amp; video market, and I know what kind of feedback I get from viewers and readers. And honestly, I don't think that there's anything better currently out there than the stuff I'm doing.&lt;/p&gt;&#xA;" OwnerUserId="99" LastActivityDate="2010-12-31T00:34:42.010" />
  <row Id="32777" PostTypeId="2" ParentId="32767" CreationDate="2010-12-31T00:40:52.547" Score="2" ViewCount="" Body="&lt;h2&gt;A little story...&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Years ago, when I graduated from High school to College life. I was thrust into the &quot;Adult&quot; world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This was too much for me and my social skills left me withdrawn and with &lt;strong&gt;no friends&lt;/strong&gt;. I once failed a mock paper because I did not have the courage to ask to borrow a calculator. A guy next to me had a spare, yet my lack of confidence stopped me from asking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I fell into &lt;strong&gt;depression&lt;/strong&gt; and had to &lt;strong&gt;re-evaluate my life&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had only one child hood friend, my closet confident. He was a larger than life character. He was Mr Popular. &lt;strong&gt;Charismatic, and charming&lt;/strong&gt;. When he walked into a room, he had would light the place up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He had the best social skills, he could make friends out of total strangers, he was &lt;strong&gt;fearless&lt;/strong&gt; and a very &lt;strong&gt;smooth talker&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I looked up-to him, I wanted to known how he did it. So I talked to him in confidence and asked that he help me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From that moment on, my life would be set to change. He started by changing my appearance, something I had no clue about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He re-programmed me, he taught be about &lt;strong&gt;social programming&lt;/strong&gt;. Body language, confidence, composure etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next year I went back to college, transformed. From being &lt;strong&gt;invisible&lt;/strong&gt;, suddenly I was Mr &lt;strong&gt;Popular!&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got a little carried away. I started getting an ego, for this I would ultimately have to pay a price for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My studies suffered really badly, from predicted grades of A/B in my A-Levels, &lt;strong&gt;I failed!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My altered ego came &lt;strong&gt;crashing down&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I left my City, and went to another college. I needed to prove to my self that I was not a failure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started to focus on study, my ego was turned right down. I was still able to make friends as needed, but my focus was purely on my studies. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After a long journey and struggle, I went from strength to strength.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now after Uni and Masters, and then starting a career forced me to be more humble. I was exposed to some really talented people. My focus on study meant that my social programming skills declined.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nowadays I all-ways try to keep walking the middle path, not too much confidence, not too little.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Moral of the story:&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You can transform yourself.&lt;/li&gt;&#xA;&lt;li&gt;Social skills can be learned like any other skills&lt;/li&gt;&#xA;&lt;li&gt;If you want to be a doctor -&gt; learn from a doctor. If you want good social skills -&gt; learn from the one who has good social skills.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I hope sincerely that helps you, points you in the right direction. The rest lies on your shoulders.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2010-12-31T00:50:57.827" LastActivityDate="2010-12-31T00:50:57.827" CommentCount="3" />
  <row Id="32778" PostTypeId="2" ParentId="32763" CreationDate="2010-12-31T01:03:52.950" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321349601&quot; rel=&quot;nofollow&quot;&gt;Java Concurrency in Practice&lt;/a&gt; is one of the best books about multi-threading and concurrency. Although all the examples in the book are Java based, this book gives a solid explanation of MT world. It helped me a lot when I was developing a M-T system.&lt;/p&gt;&#xA;" OwnerUserId="6328" LastEditorUserId="6328" LastEditorDisplayName="" LastEditDate="2010-12-31T10:17:40.667" LastActivityDate="2010-12-31T10:17:40.667" CommentCount="2" />
  <row Id="32780" PostTypeId="2" ParentId="32754" CreationDate="2010-12-31T01:32:36.427" Score="3" ViewCount="" Body="&lt;p&gt;Even a psychotic megalomaniac manager can run a team that passes the Joel Test. How do they react when deadlines are not being met? Does the CIO report to the CEO or CFO? This may give you an idea of how important IT is in a non software company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why is the position available? Do they have a lot of turnover?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look for ways to see if programmers are over-worked. No one has had a vacation in several months to a year? You can't beat a company that gives out vacation time, but no one feels they can ever take it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can tweak bad testing practices and code control systems. Can't cure crazy.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-31T01:32:36.427" CommentCount="2" />
  <row Id="32781" PostTypeId="1" CreationDate="2010-12-31T01:55:30.240" Score="12" ViewCount="412" Body="&lt;p&gt;I feel very comfortable with Imperative programming. I never have trouble expressing algorithmically what I want the computer to do once I figured out what is it that I want it to do. But when it comes to languages like SQL or I often get stuck because my head is too used to Imperative programming. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, suppose you have the relations band(bandName, bandCountry), venue(venueName, venueCountry), plays(bandName, venueName), and I want to write a query that says: all venueNames such that for every bandCountry there's a band from that country that plays in venue of that name. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT (due to answers): in other words, I want all the venueNames in which bands from &lt;em&gt;all&lt;/em&gt; countries (bandCountry) played. Also, by &quot;relation&quot; I mean an SQL table.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my mind I immediately go &quot;for each venueName iterate over all the bandCountries and for each bandCountry get the list of bands that come from it. If none of them play in venueName, go to next venueName. Else, at the end of the bandCountries iteration add venueName to the set of good venueNames&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;...but you can't talk like that in SQL and I actually need to think about how to formulate this, with the intuitive Imperative solution constantly nagging in the back of my head. Did anybody else had this problem? How did you overcome this? Did you figured out a paradigm shift? Made a map from Imperative concepts to SQL concepts to translate Imperative solutions into Declarative ones? Read a good book? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS I'm not looking for a solution to the above query, I did solve it. &lt;/p&gt;&#xA;" OwnerUserId="92" LastEditorUserId="92" LastEditorDisplayName="" LastEditDate="2010-12-31T03:42:07.007" LastActivityDate="2010-12-31T15:38:28.617" Title="Declarative programming vs. Imperative programming" Tags="&lt;programming-languages&gt;&lt;declarative&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="2" />
  <row Id="32782" PostTypeId="2" ParentId="1237" CreationDate="2010-12-31T02:08:48.800" Score="1" ViewCount="" Body="&lt;p&gt;I also face that kind of problem, i dont have the motivation to dig in...&#xA;what i do is Facebook and games before any work, right now i play COD:Black Ops and then some Facebook and work, and i keep thinking, &quot;my deadline is near and i just kept on playing games and facebook?&quot; &quot;Get back to work!&quot;.. =D&lt;/p&gt;&#xA;" OwnerUserId="10213" LastActivityDate="2010-12-31T02:08:48.800" />
  <row Id="32783" PostTypeId="2" ParentId="32781" CreationDate="2010-12-31T02:09:52.580" Score="5" ViewCount="" Body="&lt;p&gt;think in terms of sets, not iterators; the sql statements define the properties of the desired output set (aka table/relation)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;all venueNames such that for every bandCountry there's a band from that country that plays in venue of that name&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;the result of this (if i understood your intentions correctly!) would be the set of venues that have at least one band that plays in that venue. The iteration over bandCountry is unnecessary, as the PLAYS relation already has the information that you seek, you just have to eliminate the duplicates&lt;/p&gt;&#xA;&#xA;&lt;p&gt;so in SQL this would be:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;select &#xA;    distinct venueName&#xA;from PLAYS&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;EDIT: ok, so the actual set desired is a bit more complicated. The question being asked of the database is: what venues have hosted bands from &lt;strong&gt;all&lt;/strong&gt; countries?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, we define the membership criteria for an element of the desired set as the goal, then work backwards to populate the set. A venue is a member of the output set if it has a PLAYS row for at least one band from every country. How do we get this information?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One way is to count the distinct countries for each venue and compare it to the count of all countries. But we don't have a COUNTRY relation. If we think about the model given for a moment, we see that the set of all countries is not the right criteria; it is the set of all countries that have at least one band. So we don't need a country table (though for a normalized model we should have one), and we don't care about the country of the venue, we can just count the countries that have bands, e.g. (in MS-SQL)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;declare @BandCountryCount int&#xA;select&#xA;    @BandCountryCount = COUNT(distinct bandCountry)&#xA;from BAND&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;We can count the band countries for each venue&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;select&#xA;    P.venueName, COUNT(distinct B.bandCountry) as VenueBandCountryCount&#xA;from PLAYS P&#xA;    inner join BAND B on B.bandName = P.bandName&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and we can piece the two together using a subquery&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;select&#xA;    venueName&#xA;from (&#xA;    select&#xA;        P.venueName, COUNT(distinct B.bandCountry) as VenueBandCountryCount&#xA;    from PLAYS P&#xA;        inner join BAND B on B.bandName = P.bandName&#xA;) X&#xA;where X.VenueBandCountryCount = @BandCountryCount&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now, that's not the prettiest query possible (GROUP BY and HAVING might be considered a more 'elegant' solution than temp variables and a subquery) but it's fairly obvious what we're after so we'll leave it at that for the OP's purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The OP's purpose was to learn how to shift the mindset from imperative to declarative. To that end, look at what the imperative solution described was doing:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;for each venueName iterate over all the bandCountries and for each bandCountry get the list of bands that come from it. If none of them play in venueName, go to next venueName. Else, at the end of the bandCountries iteration add venueName to the set of good venueNames&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;What is the determining criteria in the above? I think it is:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;...If none of them [the set of bands from a particular country] play in venueName...&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is a &lt;em&gt;disqualifying criteria&lt;/em&gt;. The imperative thought process is starting with a full bucket and throwing out things that don't fit the criteria. We're &lt;em&gt;filtering out&lt;/em&gt; data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's fine for simple stuff, but it helps to think in terms of constructing the desired result set; what is the corresponding &lt;em&gt;qualifying criteria&lt;/em&gt; that would allow one to fill up the bucket instead?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;disqualifier: if there is no band from a bandCountry that plays at a venue, the venue is disqualified&lt;/li&gt;&#xA;&lt;li&gt;(partial) qualifier: if at least one band from a bandCountry plays at a venue, then the venue might be ok; keep checking the rest of the bandCountries&lt;/li&gt;&#xA;&lt;li&gt;(full) qualifier: if at least one band from each bandCountry plays at a venue, then the venue is qualified&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The final qualifier can be simplified using counts: a bandCountry is 'satisfied' if at least one band from there plays at a venue; the number of 'satisfied' band countries for a venue must equal the number of band countries for the venue to be qualified.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now we can reason across relations by navigation: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;start with the VENUE relation [we don't need it for the answer, but it is the conceptual starting point for the relational navigation]&lt;/li&gt;&#xA;&lt;li&gt;join to PLAYS on venueName&lt;/li&gt;&#xA;&lt;li&gt;join to BAND on bandName to get the bandCountry&lt;/li&gt;&#xA;&lt;li&gt;we don't care about the band name; select only the venueName and bandCountry&lt;/li&gt;&#xA;&lt;li&gt;we don't care about redundant bandCountries; eliminate duplicates using DISTRICT or GROUP BY&lt;/li&gt;&#xA;&lt;li&gt;we only care about the count of distinct bandCountries, not the names&lt;/li&gt;&#xA;&lt;li&gt;we only want venues where the count of distinct bandCountries is the same as the total number of bandCountries&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;which leads up back to the solution above (or a reasonable facsimile thereof)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SUMMARY&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;set theory&lt;/li&gt;&#xA;&lt;li&gt;relational navigation paths&lt;/li&gt;&#xA;&lt;li&gt;inclusive vs exclusive criteria (qualifying vs disqualifying)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2010-12-31T14:07:29.787" LastActivityDate="2010-12-31T14:07:29.787" CommentCount="2" />
  <row Id="32784" PostTypeId="2" ParentId="32624" CreationDate="2010-12-31T02:40:32.007" Score="1" ViewCount="" Body="&lt;p&gt;Yes, even if it is a small development, because I always think the pain it would be to do it all after.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-31T02:40:32.007" />
  <row Id="32785" PostTypeId="1" CreationDate="2010-12-31T02:43:43.283" Score="0" ViewCount="187" Body="&lt;p&gt;After many years of searches and copy pasting, I'm still looking for simple solution that can transliterate text input on the fly from one key set to another. There are quite few online services that provide this feature but it still quite annoying to go online all the time. Unfortunately there is not that many applications left which are capable of doing so, and none of them supported by this day. I decided to make my own and at same time to learn something new for my self.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea is quite simple: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;application should sit in system tray and wait until input language get changed, for example to Russian. &lt;/li&gt;&#xA;&lt;li&gt;If Russian language is activated, application should start to listen for user key strokes combination and replace them based on custom dictionary for example R =&gt; Р, SH =&gt; Ш etc.&lt;/li&gt;&#xA;&lt;li&gt;I should be able to bind application to any installed language &lt;em&gt;(Russian, Ukrainian, Bulgarian, Belarusian etc.)&lt;/em&gt; and customise dictionary for any of them.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So my question is:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Which language should I chose for this task &lt;strong&gt;C++&lt;/strong&gt;, &lt;strong&gt;C#&lt;/strong&gt; or might be something hardcore like &lt;strong&gt;Assembler&lt;/strong&gt;, as application should work natively with Windows XP/Vista/7 or possibly Mac. &lt;em&gt;(cross platform support is good but my main target is Windows)&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Due to nature of application behaviour how can I tell anti-virus software that it is not a &quot;Key Logger&quot; and basically not a virus?&lt;/li&gt;&#xA;&lt;li&gt;Where should I start and what should I be aware of?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;P.S.&lt;/strong&gt;&#xA;My current programming knowledge is quite basic, PHP and JavaScript with Object Oriented approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;&#xA;Here is screen-shot of application that I'm currently using, unfortunately it is limited to Russian language only and was updated more than 6 years ago. At this screen-shot there is 3 columns first and second are combinations to expect third column is result. This interface is quite primitive but it assists me for more than 6 years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/2NDwP.png&quot; alt=&quot;bukva zju&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If Russian was the only language I have to write in, it would not be an issue. It's easier to remember position of 26 latin characters than 30-33 Cyrillic characters based on language key layout. &lt;/p&gt;&#xA;" OwnerUserId="12101" LastEditorUserId="12101" LastEditorDisplayName="" LastEditDate="2010-12-31T03:38:13.830" LastActivityDate="2011-01-07T20:41:11.933" Title="First time application where to start?" Tags="&lt;programming-languages&gt;&lt;best-practices&gt;&lt;self-improvement&gt;&lt;software-development&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="32786" PostTypeId="1" AcceptedAnswerId="32795" CreationDate="2010-12-31T02:46:54.890" Score="11" ViewCount="800" Body="&lt;p&gt;I have many friends that see what I do, find it interesting and ask me the question&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Do you think I could be a programmer?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;My response is &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;...   ummm  ...  do you like math?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I'd like to have a helpful response, so I didn't know if anyone knew of a fairly decent aptitude test for someone that would be starting from square one, but has critical thinking and problem solving skills?&lt;/p&gt;&#xA;" OwnerUserId="12104" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-04-22T21:15:17.910" LastActivityDate="2011-04-22T21:15:17.910" ClosedDate="2011-01-02T21:35:20.683" Title="Programmer aptitude test" Tags="&lt;learning&gt;&lt;skills&gt;&lt;aptitude&gt;" AnswerCount="10" CommentCount="5" FavoriteCount="3" />
  <row Id="32787" PostTypeId="2" ParentId="32781" CreationDate="2010-12-31T02:55:21.613" Score="1" ViewCount="" Body="&lt;p&gt;First, you have to learn both. You may have a preference, but when working in areas where the other is better, don't fight it. Lots of programmers are tempted to use cursors in relational databases since they are so use to stepping through each record, but database is much better at sets. You don't want to get into the mindset of &quot;I know how to do it this way and I have the most control, blah, blah, blah&quot;.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-31T02:55:21.613" />
  <row Id="32788" PostTypeId="2" ParentId="32781" CreationDate="2010-12-31T02:56:27.227" Score="5" ViewCount="" Body="&lt;p&gt;The idea behind doing things declaratively is that you are supposed to specify &lt;em&gt;what&lt;/em&gt;, not &lt;em&gt;how&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, it sounds like you're on the right track.  The problem isn't that you are thinking about things the wrong way.  It's that you're going too far.  Let's look at what you're trying to do:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;For example, suppose you have the&#xA;  relations band(bandName, bandCountry),&#xA;  venue(venueName, venueCountry),&#xA;  plays(bandName, venueName), and I want&#xA;  to write a query that says: all&#xA;  venueNames such that for every&#xA;  bandCountry there's a band from that&#xA;  country that plays in venue of that&#xA;  name.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;So far, this is great.  But then you do this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;In my mind I immediately go &quot;for each&#xA;  venueName iterate over all the&#xA;  bandCountries and for each bandCountry&#xA;  get the list of bands that come from&#xA;  it. If none of them play in venueName,&#xA;  go to next venueName. Else, at the end&#xA;  of the bandCountries iteration add&#xA;  venueName to the set of good&#xA;  venueNames&quot;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In essence, you're doing unnecessary work.  You know &lt;em&gt;what&lt;/em&gt; you want, which is all you really need.  But then you go on and try to figure out &lt;em&gt;how&lt;/em&gt;  to get it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I were you, I'd try to get in the following habit:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Define &lt;em&gt;what&lt;/em&gt; you want.&lt;/li&gt;&#xA;&lt;li&gt;Consciously stop yourself from defining &lt;em&gt;how&lt;/em&gt; to get it.&lt;/li&gt;&#xA;&lt;li&gt;Figure out how to represent what you want in SQL.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It might take some time and effort on your part, but once you really grok declarative programming, it becomes very useful. In fact, you might find yourself using declarative programming in the rest of your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're looking for a book, I'd recommend &lt;a href=&quot;http://oreilly.com/catalog/9780596523084&quot; rel=&quot;nofollow&quot;&gt;SQL and Relational Theory&lt;/a&gt;.  It really helps you understand the theory behind SQL databases.  Just remember to take Date's recommendations with a grain of salt.  He gives very good information, but he can be a bit opinionated at times.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastEditorUserId="1626" LastEditorDisplayName="" LastEditDate="2010-12-31T04:11:43.640" LastActivityDate="2010-12-31T04:11:43.640" CommentCount="1" />
  <row Id="32789" PostTypeId="2" ParentId="32785" CreationDate="2010-12-31T03:00:24.360" Score="0" ViewCount="" Body="&lt;p&gt;What exactly are you trying to do? Quoting your question: &lt;em&gt;&quot;for example R =&gt; Р, SH =&gt; Ш&quot;&lt;/em&gt; it seems like you're trying to implement a sort of phonetic typing. But phonetic typing translates a character according to its surrounding characters, so it will not be easy to implement on keyboard input level. You also have to define &lt;strong&gt;a set of translation rules&lt;/strong&gt;, and it's not easy too. For example, how would the biggest airport in Moscow be written? &quot;Sheremetyevo&quot;? &quot;Sheremetievo&quot;? &quot;Cheremetievo&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my opinion, it will be much easier to use online services to do all the work. Google's phonetic typing in Google Translate does a great job for Russian. I don't know if there is an API for that, but if yes, you can consider use it instead of reinventing the wheel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can then provide a way for a user to copy text to clipboard, then run you app from tray to get the transcription from Google and changing clipboard contents from phonetic text to Russian.&lt;/p&gt;&#xA;" OwnerUserId="6605" LastActivityDate="2010-12-31T03:00:24.360" CommentCount="5" />
  <row Id="32790" PostTypeId="2" ParentId="32786" CreationDate="2010-12-31T03:00:46.147" Score="0" ViewCount="" Body="&lt;p&gt;Once you're exposed to coding, you either have a compulsion to do it or you don't. Aptitude is just one factor on whether or not you'll be good at it. Exposure to good examples, instruction, time on task, effort are others.  Really wanting/needing to do something makes it much easier to take advantage of the other factors.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2010-12-31T03:00:46.147" />
  <row Id="32791" PostTypeId="2" ParentId="32786" CreationDate="2010-12-31T03:01:19.913" Score="1" ViewCount="" Body="&lt;p&gt;I think a more important &quot;test&quot; would be to show them a simple programming language / environment that they can play around with. For example, &lt;a href=&quot;http://processing.org/&quot; rel=&quot;nofollow&quot;&gt;processing&lt;/a&gt; or &lt;a href=&quot;http://www.python.org/&quot; rel=&quot;nofollow&quot;&gt;python&lt;/a&gt;. If they can learn and enjoy using such a language - maybe while solving a simple task or two - then that is probably the best &quot;aptitude test&quot; you could ask for.&lt;/p&gt;&#xA;" OwnerUserId="10365" LastActivityDate="2010-12-31T03:01:19.913" />
  <row Id="32792" PostTypeId="2" ParentId="32786" CreationDate="2010-12-31T03:02:07.610" Score="8" ViewCount="" Body="&lt;p&gt;I remember from back as a kid doing a &lt;a href=&quot;http://www.brainbench.com/xml/bb/common/testcenter/taketest.xml?testId=221&quot; rel=&quot;nofollow&quot;&gt;Brainbench Aptitude Test&lt;/a&gt;; I still have the certificate stored away somewhere...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The test outline:  &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Abstract Thinking&#xA;    Process Flow&#xA;    Spatial Manipulation&#xA;Analytical Reasoning&#xA;    Inductive Reasoning&#xA;    Logic Application&#xA;    Word Problems&#xA;Attention to Detail&#xA;    Following Instructions&#xA;    Reading Comprehension&#xA;    Rule Interpretation&#xA;    Writing Analysis&#xA;Mathematical Problem-Solving&#xA;    Word Problems&#xA;Process Mapping&#xA;    General Processes&#xA;    Letter Manipulation Processes&#xA;    Number Manipulation Processes&#xA;    Shape Manipulation Processes&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2673" LastActivityDate="2010-12-31T03:02:07.610" CommentCount="5" />
  <row Id="32793" PostTypeId="2" ParentId="32786" CreationDate="2010-12-31T03:03:51.003" Score="0" ViewCount="" Body="&lt;p&gt;&quot;Do you like math?&quot; is not a bad start.  Maths is critical, after that...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is advisable to see if they can take a problem and start breaking it in to blocks, just in speech, whether they can walk step-by-step through a basic problem is a good initial start.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How would you tell a robot how to make a cup of tea?  Be as specific as possible.&lt;/li&gt;&#xA;&lt;li&gt;Ordering a meal at McDonalds, what steps are involved in handling the order, from initially being told to giving change/food.&lt;/li&gt;&#xA;&lt;li&gt;How does the telephone system work?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If they can answer them well, in the analytical and deep fashion that a programmer has to day by day, they can probably handle it.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-31T03:03:51.003" />
  <row Id="32794" PostTypeId="2" ParentId="32786" CreationDate="2010-12-31T03:13:34.070" Score="6" ViewCount="" Body="&lt;p&gt;There's a chance that there's a good one already out there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See for example the discussion on &lt;a href=&quot;http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html&quot; rel=&quot;nofollow&quot;&gt;Separating Programming Sheep from Non-Programming Goats&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;All teachers of programming find that&#xA;  their results display a 'double hump'.&#xA;  It is as if there are two populations:&#xA;  those who can [program], and those who&#xA;  cannot [program], each with its own&#xA;  independent bell curve. Almost all&#xA;  research into programming teaching and&#xA;  learning have concentrated on&#xA;  teaching: change the language, change&#xA;  the application area, use an IDE and&#xA;  work on motivation. None of it works,&#xA;  and the double hump persists. We have&#xA;  a test which picks out the population&#xA;  that can program, before the course&#xA;  begins. We can pick apart the double&#xA;  hump. You probably don't believe this,&#xA;  but you will after you hear the talk.&#xA;  We don't know exactly how/why it&#xA;  works, but we have some good theories.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;What the test identifies is how &lt;strong&gt;consistent&lt;/strong&gt; people are with operationalizing a sequence of instructions. What that means is they can build models (abstractions) in their minds and work with them.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-31T03:13:34.070" />
  <row Id="32795" PostTypeId="2" ParentId="32786" CreationDate="2010-12-31T03:30:25.817" Score="7" ViewCount="" Body="&lt;p&gt;&quot;Liking math&quot; is a bad test. I never liked math (mostly because 90% of math teachers in high school sucked).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you say &quot;math&quot;, most people think you mean &quot;carefully solving an equation according a very strict set of rules&quot;. Programming is not like that at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is more like drawing, in that what you can achieve is only restricted by what you can imagine. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What matters is the ability to imagine a system and see how it works.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you think about how things work?&lt;/li&gt;&#xA;&lt;li&gt;Do you think about ways to improve everyday things?&lt;/li&gt;&#xA;&lt;li&gt;Can you visualize how to build something out of simpler building blocks?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1747" LastActivityDate="2010-12-31T03:30:25.817" CommentCount="5" />
  <row Id="32796" PostTypeId="1" CreationDate="2010-12-31T03:37:09.977" Score="8" ViewCount="317" Body="&lt;p&gt;Most of the world works in base 10 nowadays, but as programmers working on binary systems, we constantly find ourselves working with powers of 2. While most people consider integer multiples of powers of 10 &quot;nice and round&quot; and somehow aesthetically superior, I found early on in my programming adventures that multiples of powers of 2 feel much more intuitively round to me: fewer factors, of course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm much more likely to lay out a Web site using, say, 8- or 16-pixel margins rather than 10 or 20, and when someone remarks that 128 is an insanely arbitrary number of ounces to be in a gallon, I have to smile a little inside at how, just perhaps, the U.S. system might be superior to metric in one small way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm just curious: has programming &quot;ruined&quot; (read: altered) your perception of the roundness of a number?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If so, how so? If not, why not?&lt;/p&gt;&#xA;" OwnerUserId="2107" LastEditorUserId="2107" LastEditorDisplayName="" LastEditDate="2010-12-31T08:20:33.110" LastActivityDate="2010-12-31T13:34:47.850" ClosedDate="2010-12-31T15:15:38.390" Title="Has programming ruined your perception of round numbers?" Tags="&lt;math&gt;" AnswerCount="10" CommentCount="5" FavoriteCount="1" />
  <row Id="32797" PostTypeId="2" ParentId="32781" CreationDate="2010-12-31T03:50:39.640" Score="3" ViewCount="" Body="&lt;p&gt;One way to learn how to think and program in a declarative style is to learn a general purpose array language like APL or J. SQL is probably not the best vehicle for learning how to program declaratively. In APL or J you learn to operate on entire arrays (vectors, matrices, or arrays of higher rank), without explicit looping or iteration. This make understanding SQL and relational algebra much easier. As a very simple example, in order to select items from a vector V whose value are greater than 100, in APL we write:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(V&amp;gt;100)/V&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Here V&gt;100 evaluates to a boolean array of the same shape as V, with 1's marking the values we want to keep. It does not occur to the seasoned APLer that there is iteration going on, we are just applying a mask to the vector V, returning a new vector. This of course is conceptually what an SQL where clause or relational algebra restrict operation is doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think you can get a good grip on declarative programming without doing a lot of it, and SQL generally is too specific. You need to write a lot of general purpose code, learning how to do without loops and if/then/else structures and all of the apparatus that attends imperative, procedural and scalar-style programming. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There may be other functional languages that help with this way of thinking too, but the array languages are very close to SQL.&lt;/p&gt;&#xA;" OwnerUserId="11889" LastActivityDate="2010-12-31T03:50:39.640" CommentCount="1" />
  <row Id="32798" PostTypeId="2" ParentId="32796" CreationDate="2010-12-31T03:56:21.397" Score="7" ViewCount="" Body="&lt;p&gt;Its okay when it comes to designing web sites or something with computers that the programmers choose 8 px or 64 px. But in real life I'm not carried away with those numbers. I've my own numbers that I keep. Actually I never thought about this until now. &lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-12-31T03:56:21.397" />
  <row Id="32799" PostTypeId="1" CreationDate="2010-12-31T03:58:30.147" Score="2" ViewCount="141" Body="&lt;p&gt;This might be a strange question. I'm looking for videos of people actively coding something while explaining it. However, I don't want is a beginner video that delves into what variables and objects are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blog.nickgravelyn.com/2010/02/tile-engine-videos-on-youtube/&quot; rel=&quot;nofollow&quot;&gt;Nick Gravelyn's tile engine tutorial&lt;/a&gt; is a &lt;strong&gt;great&lt;/strong&gt; example of what I'm looking for. (He actually used to host the full, unbroken video files in his site's archive, but I guess he took them down...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to learn best by &quot;action&quot; examples; it's difficult for me to learn by reading through documentation and text tutorials, but if I see somebody actively doing a task, I can immediately register it and apply it myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm hard-of-hearing, so I would &lt;em&gt;really&lt;/em&gt; prefer that if the video has a lot of talking, it have captioning or subtitling of some sort, or at the very least, a transcript. The tile engine videos did not have captions, but the code he was writing was very self-documenting, so I understood it for the most part.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've gone through most of the relevant &lt;a href=&quot;http://www.youtube.com/user/GoogleDevelopers&quot; rel=&quot;nofollow&quot;&gt;GoogleDevelopers&lt;/a&gt; and &lt;a href=&quot;http://www.youtube.com/user/GoogleTechTalks&quot; rel=&quot;nofollow&quot;&gt;GoogleTechTalks&lt;/a&gt; videos on Youtube, so those need not apply.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any resources out there, or even websites dedicated to this kind of thing? &lt;/p&gt;&#xA;" OwnerUserId="5624" LastActivityDate="2010-12-31T11:59:06.147" Title="Where can I find video resources of people programming?" Tags="&lt;learning&gt;&lt;resources&gt;&lt;language-agnostic&gt;" AnswerCount="3" />
  <row Id="32800" PostTypeId="1" AcceptedAnswerId="33086" CreationDate="2010-12-31T04:00:53.857" Score="5" ViewCount="139" Body="&lt;p&gt;I'm starting to get the hang of GDB, but everything still feels much slower than when debugging in Eclipse or Visual Studio.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any GDB commands you find particularly useful/productive? My life became dramatically better when I discovered:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;list - Display source code near the current instruction&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But that is still pretty basic. (And unnecessary when running GDB from Emacs.) Is there any way to do things like setup a watch window? (Print and update the result of an expression every time execution stops.)&lt;/p&gt;&#xA;" OwnerUserId="786" LastActivityDate="2011-01-01T21:49:46.023" Title="What are the 'must know' GDB commands?" Tags="&lt;debugging&gt;&lt;gdb&gt;" AnswerCount="2" FavoriteCount="3" />
  <row Id="32801" PostTypeId="2" ParentId="32763" CreationDate="2010-12-31T04:03:20.140" Score="3" ViewCount="" Body="&lt;p&gt;I found &lt;a href=&quot;http://www.bluebytesoftware.com/books/winconc/winconc_book_resources.html&quot; rel=&quot;nofollow&quot;&gt;Concurrent Programming on Windows&lt;/a&gt; by Joe Duffy to be very helpful.  There's a lot of depth.  It doesn't pull any punches, so you really get a good feel for how many ways there are to shoot yourself in the foot.  It helped me to be cautious, which is the best advice I can give anyone starting with MT apps.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2010-12-31T04:03:20.140" />
  <row Id="32802" PostTypeId="2" ParentId="8093" CreationDate="2010-12-31T04:11:16.390" Score="1" ViewCount="" Body="&lt;p&gt;Programming is a very broad field. The math formula depends on which area of programming you are in. If you are into graphics, game programming you need to know more trigonometry, geometry. Game programming can be further categorized into areas like, physics, rendering, shader.. and the list goes on. So if you are a physics simulation expert, then you should know things related to Physics.&lt;br&gt;&#xA;If you are into security, the you must be a Number Theory expert.&lt;br&gt;&#xA;In general, you can go a combination of these, and which ever your interest is. Learning never hurts.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-12-31T04:11:16.390" />
  <row Id="32803" PostTypeId="2" ParentId="32799" CreationDate="2010-12-31T04:20:19.237" Score="3" ViewCount="" Body="&lt;p&gt;Microsoft is well known for making videos like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://channel9.msdn.com/&quot; rel=&quot;nofollow&quot;&gt;Channel9&lt;/a&gt; is, I believe, the largest source of video content, but it would be difficult to find exactly what you want (since they have plenty of PPT-style videos, TV, etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look at &lt;a href=&quot;http://player.microsoftpdc.com/schedule/sessions&quot; rel=&quot;nofollow&quot;&gt;Microsoft PDC&lt;/a&gt;. Each year, after the event, they publish a lot of videos which are actually presentations with a lot of code in most cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, in many domains, Microsoft releases Get Started videos, which are quite basic most of the time, but some are pretty advanced. For example, they have a collection of &lt;a href=&quot;http://www.asp.net/general/videos&quot; rel=&quot;nofollow&quot;&gt;ASP.NET videos&lt;/a&gt;, or a collection of &lt;a href=&quot;http://www.silverlight.net/learn/videos/all/&quot; rel=&quot;nofollow&quot;&gt;videos related to Silverlight&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6605" LastEditorUserId="6605" LastEditorDisplayName="" LastEditDate="2010-12-31T04:25:54.303" LastActivityDate="2010-12-31T04:25:54.303" />
  <row Id="32805" PostTypeId="2" ParentId="25366" CreationDate="2010-12-31T04:38:53.590" Score="1" ViewCount="" Body="&lt;p&gt;There is some very good info on this &lt;a href=&quot;http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-31T04:38:53.590" />
  <row Id="32807" PostTypeId="2" ParentId="8093" CreationDate="2010-12-31T04:45:41.053" Score="0" ViewCount="" Body="&lt;p&gt;This might be a bit simple, but &lt;code&gt;G=(V,E)&lt;/code&gt; is a good one to keep in mind.  In other words, a graph is a set of vertices and edges.  Graphs are just so useful for representing lots of things.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-31T04:45:41.053" />
  <row Id="32809" PostTypeId="2" ParentId="32733" CreationDate="2010-12-31T04:56:44.737" Score="2" ViewCount="" Body="&lt;p&gt;Every answer here will (correctly) tell you that a PhD is about &lt;strong&gt;research&lt;/strong&gt; and not development. Also, a PhD is a huge commitment. I recommend going for an MS first since it'll be easier to get into, and it will be easier to finish. Once you have your foot in the door during a masters program, you can ask profs about segueing into a doctoral program. They'll be more likely to sponsor you once you've proven yourself for your masters.&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-31T04:56:44.737" />
  <row Id="32810" PostTypeId="2" ParentId="32654" CreationDate="2010-12-31T04:59:19.860" Score="0" ViewCount="" Body="&lt;p&gt;Part of the Problem : I want ogg theora in the browser. Do you agree? No. You want H.264. But do I agree? No. That's the problem among Google, Mozilla, Microsoft, Apple, Adobe and all the corporates playing behind html 5. They are try to max out revenue and be the monopolist. Its intense competition. So it gets longer to complete.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-12-31T04:59:19.860" />
  <row Id="32811" PostTypeId="2" ParentId="29228" CreationDate="2010-12-31T05:03:34.413" Score="1" ViewCount="" Body="&lt;p&gt;Essential ActionScript 3.0  by Colin Moock.&lt;br&gt;&#xA;Adobe Docs, devnet video tutorials.&lt;br&gt;&#xA;Lynda.com video tutorials  &lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-12-31T05:03:34.413" />
  <row Id="32812" PostTypeId="2" ParentId="32754" CreationDate="2010-12-31T05:10:13.720" Score="2" ViewCount="" Body="&lt;p&gt;Here is what I would do if I were you:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;try to obtain the possibility to interview one or more programmers in the company, and ask them what's a typical day in their job. That may be difficult to ask if they don't provide it, but a company which does provide it is a huge plus in my book&lt;/li&gt;&#xA;&lt;li&gt;ask them how is a new feature developed, typically, and how the work is shared between programmers.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Both questions end up being the same thing, asked differently to different people. Important points:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How are disagreements on technical issues solved in the team&lt;/li&gt;&#xA;&lt;li&gt;How is the work shared among developers&lt;/li&gt;&#xA;&lt;li&gt;How are bugs assigned to people&lt;/li&gt;&#xA;&lt;li&gt;How do you make the decision to design in-house, outsource, off-the shelve ?&lt;/li&gt;&#xA;&lt;li&gt;How do you judge project failure/success&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This in complement to the Joel test. Note that there is no &quot;right&quot; answer: it depends on what you are looking for by yourself, what kind of company you are looking for, what kind of company that is (e.g. a startup will be less likely to be able to afford the best tools compared to a fortune 500 one). If the person cannot answer this question, that's almost definitely a bad sign: most likely they have not even thought about those issues.&lt;/p&gt;&#xA;" OwnerUserId="6139" LastActivityDate="2010-12-31T05:10:13.720" CommentCount="2" />
  <row Id="32813" PostTypeId="2" ParentId="32425" CreationDate="2010-12-31T05:13:55.577" Score="0" ViewCount="" Body="&lt;p&gt;&quot;The secret is there are no secrets&quot; - Kung Fu Panda .&#xA;First don't panic, choose a language and start writing something like tic tac toe game and keep adding new features.&#xA;You have mentioned that you have read too many books but have you implemented what you learn?&#xA;Try to look around you and find what manual system you can convert to automation, or what existing program can you re-engineer.&#xA;Patience and Imagination is key to success in programming though i am not a great programmer but i am trying what i shared and its working. :)&lt;/p&gt;&#xA;" OwnerUserId="11558" LastActivityDate="2010-12-31T05:13:55.577" CommunityOwnedDate="2010-12-31T05:13:55.577" />
  <row Id="32814" PostTypeId="2" ParentId="32799" CreationDate="2010-12-31T05:15:20.800" Score="1" ViewCount="" Body="&lt;p&gt;The Minecraft developer does a live feed of his programming:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://mojang.com/live/&quot; rel=&quot;nofollow&quot;&gt;http://mojang.com/live/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2010-12-31T05:15:20.800" CommentCount="1" />
  <row Id="32815" PostTypeId="2" ParentId="32733" CreationDate="2010-12-31T05:19:24.620" Score="1" ViewCount="" Body="&lt;p&gt;In general no, but not always. But I think that's the wrong question to ask, really, because a Phd is certainly not about programming at all, except in a few rare cases. The real question is &lt;em&gt;why&lt;/em&gt; you want to do a PhD, and why do you think you will be better than the thousand of other people who also want to do a Phd in the best universities. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can tell you that professors will glady put your email/letter in the trashbox as soon as they see &quot;I want to work with you because you are a professor at Cornell, MIT, etc..&quot; or something with the same underlying meaning. When you say you want to work for the top university, that's a big red flag right there for any professor. Of course you want to do your PhD in the top university, everybody wants to. You need to say why you think you are a good fit for &lt;em&gt;this&lt;/em&gt; professor, with &lt;em&gt;your&lt;/em&gt; topic of research.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note also that trying to do a PhD under a famous professor is actually not that a good idea, especially if you have never done any research before, and if you are a foreigner. Most of them are so busy that they will have no time to spend with you at all (I have witnessed grad students working with one of the top professor of my field, they cannot meat him one to one more than once a year). It is much more important to go along with your professor, assuming of course he has a minimal level (check if he is still publishing in the top conferences, for CS), and to be close to what you want to do. As for why foreigner matters: you will face more difficulties than other (housing, etc...), and the more famous/important the professor is, the less chance he will be able to help you.&lt;/p&gt;&#xA;" OwnerUserId="6139" LastEditorUserId="6139" LastEditorDisplayName="" LastEditDate="2010-12-31T05:24:36.007" LastActivityDate="2010-12-31T05:24:36.007" />
  <row Id="32816" PostTypeId="2" ParentId="32469" CreationDate="2010-12-31T05:22:43.863" Score="0" ViewCount="" Body="&lt;p&gt;There are several books on the market that teach programming through a long cumulative example. Each successive chapter illustrates a new subject and adds relevant functionality to the example project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Better yet, think of a project that interests you. It doesn't have to be complicated, just something that you would find useful in your daily computer usage. Once you have an idea, go ahead and implement it. That experience would serve you better than reading any textbook around.&lt;/p&gt;&#xA;" OwnerUserId="12086" LastActivityDate="2010-12-31T05:22:43.863" />
  <row Id="32817" PostTypeId="2" ParentId="8093" CreationDate="2010-12-31T05:26:17.077" Score="0" ViewCount="" Body="&lt;p&gt;T(n) = aT(n/b) + f(n), a&gt;=1, b&gt;1&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Master_theorem&quot; rel=&quot;nofollow&quot;&gt;Master Theorem&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11536" LastActivityDate="2010-12-31T05:26:17.077" CommentCount="1" />
  <row Id="32818" PostTypeId="2" ParentId="29228" CreationDate="2010-12-31T05:28:57.193" Score="0" ViewCount="" Body="&lt;p&gt;I needed to pick up Flex and ActionScript for a project over the summer. I skimmed the following books and managed to get up to speed pretty quickly.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learning Flex 3 by Alaric Cole (O'Reilly)&lt;/li&gt;&#xA;&lt;li&gt;Programming Flex 3 by Chafic Kazoun and Joey Lott (O'Reilly)&lt;/li&gt;&#xA;&lt;li&gt;Flex 3 Cookbook by Joshua Noble and Todd Anderson (O'Reilly)&lt;/li&gt;&#xA;&lt;li&gt;Flex 4 Cookbook by Joshua Noble, Todd Anderson, Garth Braithwaite, Marco Casario, and Rich Tretola (O'Reilly)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="12086" LastActivityDate="2010-12-31T05:28:57.193" />
  <row Id="32819" PostTypeId="2" ParentId="32754" CreationDate="2010-12-31T05:36:35.657" Score="19" ViewCount="" Body="&lt;p&gt;Remember that interviews are a two-way street.  Ask them open-ended questions that let you know they know what they're doing.  And learn to &quot;read between the lines&quot; when evaluating their answers.  For instance:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How do you guys make sure the software you're writing doesn't suck?&lt;/strong&gt; (rephrased to something more &quot;appropriate&quot; if you're boring)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good answer:  &quot;We use unit tests, have a QA department, and code reviews.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It doesn't have to be this.  Nor does the person you're interviewing need to have the same answer to this as I gave.  You're mostly just looking to make sure that the company values the code it writes to some degree and isn't just going to push it out the door with reckless abandon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad answer:  &quot;Well, we've been meaning to make more of those 'unit test' things.  We just haven't gotten around to it&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again, the focus is less on unit tests and more about the attitude the interviewer takes to the issue.  Generally, &quot;We know we need it, we just haven't done it&quot; is a red flag.  That means one of several possibilities:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Your coworkers will be lazy.&lt;/li&gt;&#xA;&lt;li&gt;Management doesn't give time to use proper process.&lt;/li&gt;&#xA;&lt;li&gt;Your coworkers aren't smart enough to understand unit tests.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;None of these are good (but some are worse than others).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Describe the process your company uses to add a feature (from deciding that the feature is needed to shipping it to the customer).&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good Answer:  &quot;Business people decide that a feature is a good idea and consult the programmers to see how easily-implemented it is.  The programmers and technical staff decide on an architecture and implement it.  A release team then pushes it out into the wild.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad Answer:  &quot;Business people tell the programmers what to do and they do it.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As with the above, the answer itself isn't as important as the attitude.  The good answer indicates that the business side and technical side work together to bring a product about.  The bad answer indicates that management views programmers as overpaid typists.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;In summary&lt;/strong&gt;, remember to ask the right questions during the interview.  And remember that particular answers aren't as important as the attitude behind those answers.  Lastly, &lt;strong&gt;don't hold back&lt;/strong&gt;.  Asking tough questions indicates that you're really interested in the job, and that you think you're good enough to be a bit picky about who will employ you.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastEditorUserId="1626" LastEditorDisplayName="" LastEditDate="2011-01-01T20:29:46.997" LastActivityDate="2011-01-01T20:29:46.997" CommentCount="1" />
  <row Id="32820" PostTypeId="2" ParentId="32796" CreationDate="2010-12-31T05:48:41.363" Score="1" ViewCount="" Body="&lt;p&gt;I don't think programming has ruined my perception of round numbers.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;What &quot;normal&quot; people find weird when talking to me is that for me, 1024 is a very ordinary number, and 32768 is extremely easy to remember. They are also surprised when they watch me becoming mad when I read on some CD/DVD, USB drives etc. boxes that 1 GB = 1 000 MB = 1 000 000 KB = 1000 000 000 Bytes to justify that a pseudo-4 GB USB drive can only handle 3.81 GB of data.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;On the other hand, when it comes to web layouts, I use what is more convenient to use for a website. Sometimes, margins are 3px, 6px, 9px, etc. Sometimes, they are multiples of 2. Rarely, multiples of 5.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Finally, when designing database tables, I use multiples of ten every time. I don't know why, but &lt;code&gt;nvarchar(32)&lt;/code&gt; does not make any sense to me, while &lt;code&gt;nvarchar(50)&lt;/code&gt; does.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6605" LastActivityDate="2010-12-31T05:48:41.363" CommentCount="3" />
  <row Id="32821" PostTypeId="2" ParentId="17700" CreationDate="2010-12-31T05:59:01.587" Score="2" ViewCount="" Body="&lt;p&gt;The (web) start-up world is heavily open-source based because of cost and prevalence of excellent tools such as memcache, noSQL databases such as Cassandra, MongoDB etc and large-scale data processing tools such as Hadoop/MapReduce. Until recently Microsoft hadn't paid much lip service to budding start-up enthusiasts and only recently started their &quot;web developer&quot; program to support start-ups. Also, their large scale data processing efforts have been a bit slow...Dryad/DryadLINQ, their alternative to MapReduce, has not seen the level of adoption they would like (its still limited to research schools outside Microsoft) and things have suddenly gone quiet on their (experimental) database system Hyder which supposedly allows scaling databases without partitioning. All this time Google has been giving excess to world class tools such as Dremel, Sawzall, etc to allow competitive advantage on the web and Amazon keeps making their web services and cloud computing services more easily accessible to the average start-up. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This also ties in with a question I asked a while ago: apart from Microsoft, all other web companies such as Google, Amazon, Yahoo, Facebook, Ebay, etc post job openings where they specifically list the LAMP stack as the tech stack required for their software engineer positions. Clearly people well versed in the LAMP stack have an advantage at many startups and big web companies while the .NET stack seems to be mostly reserved for corporate environments.&lt;/p&gt;&#xA;" OwnerUserId="4378" LastActivityDate="2010-12-31T05:59:01.587" />
  <row Id="32822" PostTypeId="2" ParentId="32796" CreationDate="2010-12-31T05:59:05.957" Score="0" ViewCount="" Body="&lt;p&gt;No it didn't. I don't work in assembly or C. I rarely ever deal with binary numbers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do tend to favor even numbers, though. When trying out numbers for margins/paddings, I'd start with something round, like 4. Sometimes I pick multiples of 5 (15, 25, etc). Sometimes I pick 3. But I steer away from 7 or 13 or 19 or what have you.&lt;/p&gt;&#xA;" OwnerUserId="1747" LastActivityDate="2010-12-31T05:59:05.957" />
  <row Id="32823" PostTypeId="2" ParentId="21325" CreationDate="2010-12-31T06:01:22.630" Score="0" ViewCount="" Body="&lt;p&gt;Can someone debunk the myth that if you are a Microsoft MVP, your interviews won't be as long and intense as the typical program manager or SDE interviews which can stretch to 6 hours long with lots of white board coding?&lt;/p&gt;&#xA;" OwnerUserId="4378" LastActivityDate="2010-12-31T06:01:22.630" />
  <row Id="32824" PostTypeId="2" ParentId="32796" CreationDate="2010-12-31T06:05:21.337" Score="1" ViewCount="" Body="&lt;p&gt;Nope.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other fields nice &quot;round numbers&quot; take on different forms, such as in many mechanical designs we use &lt;a href=&quot;http://en.wikipedia.org/wiki/Preferred_number&quot; rel=&quot;nofollow&quot;&gt;Preferred Numbers&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2010-12-31T06:05:21.337" CommentCount="1" />
  <row Id="32825" PostTypeId="2" ParentId="17700" CreationDate="2010-12-31T06:09:47.413" Score="2" ViewCount="" Body="&lt;h3&gt;Culture&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Great hackers demand control. Great hackers share stuff. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;All the cool toys come from great hackers, and they end up sharing and improving on each other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think of all the cool shiny stuff that's been coming out recently: Python, Ruby, Rails, Django, Flask, Node.js, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of them come from people who use a Unix system (Linux or Mac).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unix systems offer a great platform and great tools for serious programmers to do their work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Windows systems and Visual Studio tend to be used more by people who just want to &quot;get things done&quot; in the established way and earn some living.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not just because they start small as CodexArcanum's answer suggests. It's not like &quot;oh they would love to move to windows but it's too late&quot;. They probably &lt;em&gt;don't&lt;/em&gt; want to move to windows. It's severely lacking in terms of tools and power for the kinds of things involved in running a web startup.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For starters, most new shiny OSS projects use git for version control, and probably have their official code repository at github or something like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To quote Paul Graham:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What do hackers want? Like all craftsmen, hackers like good tools. In fact, that's an understatement. Good hackers find it unbearable to use bad tools. They'll simply refuse to work on projects with the wrong infrastructure.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;(.....)&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;A couple years ago a venture capitalist friend told me about a new startup he was involved with. It sounded promising. But the next time I talked to him, he said they'd decided to build their software on Windows NT, and had just hired a very experienced NT developer to be their chief technical officer. When I heard this, I thought, these guys are doomed. One, the CTO couldn't be a first rate hacker, because to become an eminent NT developer he would have had to use NT voluntarily, multiple times, and I couldn't imagine a great hacker doing that; and two, even if he was good, he'd have a hard time hiring anyone good to work for him if the project had to be built on NT.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1747" LastActivityDate="2010-12-31T06:09:47.413" CommentCount="3" />
  <row Id="32826" PostTypeId="2" ParentId="32674" CreationDate="2010-12-31T06:34:53.737" Score="1" ViewCount="" Body="&lt;p&gt;Programming is a way passing through the logic. When ever a programmer programs, he think of an item to complete efficient way and how easily he can achive it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While design require Art to attract people. And if you have logic you cannot master art which all the people like. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So every time a programmer creates a design, he only thinks of what items are required and where to put them on page. They never think how to better represent it with help of design.&lt;/p&gt;&#xA;" OwnerUserId="12118" LastActivityDate="2010-12-31T06:34:53.737" />
  <row Id="32827" PostTypeId="2" ParentId="32781" CreationDate="2010-12-31T06:51:58.530" Score="1" ViewCount="" Body="&lt;p&gt;You learn to think declaratively like you learned to think imperatively: by practice starting with simpler problems and working on up as you &quot;get it&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your first experiences with imperative programming included a whole bunch of counter-intuitive (and, in fact, utterly ridiculous) statements like &quot;&lt;code&gt;a = a + 1&lt;/code&gt;&quot;.  You wrapped your mind around that to the point that now you likely don't even recall the recoiling from the obvious untruth of the statement.  Your problem with declarative styles is that you're back where you were when you first started with imperative styles: a &quot;clueless newb&quot;.  Even worse, you've got years of practice with one style that is utterly at odds with this new style and have years of habits to undo -- like the habit to &quot;control at all costs&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Declarative styles work with a different approach that you lack intuition for now (unless you've kept your maths skills very sharp over the years -- which most people don't).  You have to relearn how to think and the only way to relearn that is to do it, one simple step at a time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Picking SQL as your first foray into declarative programming might be a mistake if you really want to learn the concepts.  Sure the tuple calculus it's based on is as declarative as it gets, really, but unfortunately the purity of the tuple calculus has been badly compromised by the realities of implementation and the language has, in effect, become a bit of a muddled mess.  You may wish instead to look at other more directly useful (in the sense you're used to) declarative languages like &lt;a href=&quot;http://en.wikipedia.org/wiki/Lisp_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;the Lisps&lt;/a&gt; (esp. &lt;a href=&quot;http://en.wikipedia.org/wiki/Scheme_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Scheme&lt;/a&gt;), &lt;a href=&quot;http://en.wikipedia.org/wiki/Haskell_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Haskell&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/ML_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;the MLs&lt;/a&gt; for (mostly) functional programming or, alternatively, &lt;a href=&quot;http://en.wikipedia.org/wiki/Prolog&quot; rel=&quot;nofollow&quot;&gt;Prolog&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Mercury_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;Mercury&lt;/a&gt; for (mostly) logic programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learning these other languages will give you better insight, in my opinion, into how declarative programming works for a few reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;They're useful for &quot;cradle to grave&quot; programming -- as in you can write a full program in these languages from beginning to end.  They're useful standing alone, unlike SQL which is really quite useless for most people as a standalone language.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They each give you a different slant on declarative programming that can give you different roads to finally &quot;getting it&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They also each give you a different slant on thinking about programming in general.  They'll improve your ability to reason about problems and coding even if you never directly use them yourself.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The lessons you learn from them will help you with your SQL as well -- especially if you brush up on the tuple calculus behind relational databases for the pure form of thinking about data.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I'd especially recommend learning one of the functional languages (&lt;a href=&quot;http://en.wikipedia.org/wiki/Clojure&quot; rel=&quot;nofollow&quot;&gt;Clojure&lt;/a&gt;, as one of the Lisps, is probably a good choice here) &lt;strong&gt;and&lt;/strong&gt; one of the logic languages (I like Mercury best, but Prolog has a &lt;em&gt;lot&lt;/em&gt; more useful material for learning) for maximal thought process expansion.&lt;/p&gt;&#xA;" OwnerUserId="10246" LastActivityDate="2010-12-31T06:51:58.530" />
  <row Id="32828" PostTypeId="2" ParentId="32425" CreationDate="2010-12-31T06:55:57.270" Score="1" ViewCount="" Body="&lt;p&gt;&quot;Out of Box thinking&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hey&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Same questions what i have asked me when 5 years back(at that time I dint hear about SE), &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Studying programming every time wont make sense, you need to develop something,&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Determine what to develop&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;1) Small goals make small and successful first projects&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;2) Plan so that you have little parts that clearly work and show you progress&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;3) Find something you're passionate about but is still small enough to be achievable&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I build Personal albums - which I have gained some Flash knowledge, Photoshop&lt;/li&gt;&#xA;&lt;li&gt;I build my own personal blogs - gained some php knowledge&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Bought domains - gained some server knowledge&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I find many Freelance projects - I read their Requirements and tried to buil my own applications, I gained lot of knowledge of programming, documentations ...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="12116" LastEditorUserId="12116" LastEditorDisplayName="" LastEditDate="2010-12-31T07:03:38.280" LastActivityDate="2010-12-31T07:03:38.280" CommunityOwnedDate="2010-12-31T06:55:57.270" />
  <row Id="32830" PostTypeId="1" CreationDate="2010-12-31T07:04:09.213" Score="16" ViewCount="656" Body="&lt;p&gt;I started to work at a company as an engineer a couple of months ago. It's a small company and what they basically do is answering service on phones. Now they are switching from normal phones to IP phones so that computers take more important place in the work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, all the computers used by workers are equipped with pirated software, including their operating systems. Moreover, they didn't even buy one license to make copies for other computers. In other words, they did not spend any money for the software in office. I am not saying copying a licensed one is legit, but the situation is too much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is one guy who installed the pirated software. He does not feel any sense of guilt and even justified when I asked about it. He is not even a specialist. He just searched on the internet to install pirated software. Our boss does not have any knowledge of computers, so he took the cheaper way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think about this? Since I am still new to the company, I am not doing maintenance on those cracked computers. But I have to use those software daily. And later on I will be doing support, help desk kind of stuff. I really don't want to take responsibility for operating pirated software. From an aspect of developer and engineer, pirated software is not able to get legal support and it may work unexpectedly. So, I am thinking about changing jobs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I thinking too much? Should I wait until I have more credibility with the boss and try to change his policy? So far, the boss does not take any words from me. Any opinions are welcome. Thank you&lt;/p&gt;&#xA;" OwnerUserId="12121" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2010-12-31T14:21:08.213" LastActivityDate="2010-12-31T19:49:07.860" Title="Usage of Pirated software at a company" Tags="&lt;ethics&gt;" AnswerCount="8" CommentCount="12" />
  <row Id="32831" PostTypeId="2" ParentId="32830" CreationDate="2010-12-31T07:11:55.200" Score="0" ViewCount="" Body="&lt;p&gt;Using pirated software is against law. But how an individual feels about using it is entirely depended on that person.&lt;br&gt;&#xA;Why not go for free software, if you can't pay for it?&lt;br&gt;&#xA;How would you feel about using your product by another company without paying you? The same applies.&lt;br&gt;&#xA;(But truth be told most of the reverse engineering crackers out there doesn't give a s*** about your commercial software).&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-12-31T07:11:55.200" CommentCount="2" />
  <row Id="32832" PostTypeId="1" AcceptedAnswerId="32836" CreationDate="2010-12-31T07:17:50.200" Score="3" ViewCount="125" Body="&lt;p&gt;Should I write APIs in US spelling or British spelling? Or should I provide with mapping both of them to a single one and internally using anyone which I like so that both of them works ? At present most of the APIs are with US spelling. What is the solution for it?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit: Is there a way to standardize this. May be support both?&lt;/p&gt;&#xA;" OwnerUserId="4626" LastEditorUserId="4626" LastEditorDisplayName="" LastEditDate="2010-12-31T07:31:04.043" LastActivityDate="2010-12-31T07:43:07.337" Title="Should APIs be in en_US or en_GB or both?" Tags="&lt;naming-conventions&gt;&lt;spelling&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="32833" PostTypeId="2" ParentId="32830" CreationDate="2010-12-31T07:24:38.387" Score="31" ViewCount="" Body="&lt;p&gt;You need to find another job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this company finds it this easy to compromise ethical principles so blatantly when it comes to software, how can you trust them to do the right thing under any circumstances?  What is going to happen when you are in a situation where you require honesty from them, or the capacity to follow ethical principles of any kind in their dealings with you?&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2010-12-31T07:24:38.387" CommentCount="5" />
  <row Id="32834" PostTypeId="2" ParentId="32832" CreationDate="2010-12-31T07:28:24.860" Score="1" ViewCount="" Body="&lt;p&gt;I've seen both. An API from a British company used British English spelling (e.g., &quot;authorise&quot; instead of &quot;authorize&quot;). For lack of a better answer, I'd suggest matching the convention used on the target platform. So, for example, if you use a platform &quot;Color&quot; class, you shouldn't use &quot;Colour&quot; in your API.&lt;/p&gt;&#xA;" OwnerUserId="12086" LastActivityDate="2010-12-31T07:28:24.860" CommentCount="1" />
  <row Id="32835" PostTypeId="2" ParentId="32830" CreationDate="2010-12-31T07:32:47.110" Score="12" ViewCount="" Body="&lt;p&gt;I agree with the answer by Robert Harvey. Search for another job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not because you don't trust them. But for another obvious reason. One day they will be caught using pirated software for thousands of dollars. And they will be forced, by a judge, to pay those thousands of dollars. A case like this may force this company to liquidation, if they don't have enough money to pay the fees, and probably they don't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not very encouraging to work for a company which will be in a case like this soon or later.&lt;/p&gt;&#xA;" OwnerUserId="6605" LastActivityDate="2010-12-31T07:32:47.110" CommentCount="4" />
  <row Id="32836" PostTypeId="2" ParentId="32832" CreationDate="2010-12-31T07:43:07.337" Score="7" ViewCount="" Body="&lt;h2&gt;International APIs&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;APIs which are intended to be international use EN-US. So if your intent is to provide your API to the developers worldwide (or at least several countries where British English is not commonly used), &lt;strong&gt;you should use EN-US&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Local APIs&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Of course, small APIs which are targeting precise country can be in the language of this country. But &lt;strong&gt;think twice about using EN-GB&lt;/strong&gt; even in this case:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Living in France, I would personally not appreciate an API en French; English is just easier to use when it comes to development. Locale settings make it just weird to write in local language. If you've seen source code with Chinese, German or Russian names of methods, you'll understand why. What I currently see here too often is the source code which mix French names with accents (é, ê, à, etc.), French names without accents (which is completely wrong and can be misleading), English names, and misspelled English).&lt;/li&gt;&#xA;&lt;li&gt;Using EN-GB can make it more difficult to use the API even for British developers. It's difficult to remember that we must write &lt;code&gt;Color&lt;/code&gt; in C# or in PHP, but &lt;code&gt;Colour&lt;/code&gt; in a specific API.&lt;/li&gt;&#xA;&lt;li&gt;When creating a local API, can you be sure that it will not be famous on international level in one, two or ten years?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6605" LastActivityDate="2010-12-31T07:43:07.337" CommentCount="2" />
  <row Id="32837" PostTypeId="2" ParentId="32796" CreationDate="2010-12-31T07:49:41.603" Score="4" ViewCount="" Body="&lt;p&gt;No, programming has &lt;strong&gt;improved&lt;/strong&gt; my perception of round numbers, as I now also found any power of two as round. Hence it's now more fun, and a good reason to have a big party when your 2^5th birthday comes up, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So altered, yes, ruined, no. :-)&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-31T07:49:41.603" CommentCount="1" />
  <row Id="32838" PostTypeId="2" ParentId="32786" CreationDate="2010-12-31T07:59:51.310" Score="0" ViewCount="" Body="&lt;p&gt;A better question than &quot;Do you like math&quot; is &quot;Do you like to solve logical puzzles&quot;? This is things like Sudoku, etc, or figuring out the answer to conundrums such as &quot;John, Anne, Peter, Mary and Brittany are neighbours. John has a white car, Brittany lives to the left of Anne, blah blah, in which order to they live?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because that is what programming is: One huge logical puzzle.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-31T07:59:51.310" CommentCount="2" />
  <row Id="32839" PostTypeId="2" ParentId="19292" CreationDate="2010-12-31T08:00:55.160" Score="0" ViewCount="" Body="&lt;p&gt;I had the same problem of using multiple languages for different set of automation.&#xA;I'm a senior consultant for an IT Service company in India. Every time I consult a different &lt;/p&gt;&#xA;&#xA;&lt;p&gt;language for the purpose, &lt;strong&gt;I had tough time justifying it to the management&lt;/strong&gt;.&#xA;I even discussed with my friends (as casual talk) about developing a unified language that&#xA;address all the automation needs and still cross-platform. If one is available, then it may &lt;/p&gt;&#xA;&#xA;&lt;p&gt;change the scripting world. As far as I know, the mapping we usually use goes&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;&lt;strong&gt;Languages and usage domain&lt;/strong&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;AutoIT - Windows based GUI Automation&#xA;Bash   - Unix based automation mostly involves system interaction&#xA;Perl   - Data processing automation with less system interaction&#xA;Expect - Character based interactive requirements. (which cannot be solved by Perl, Bash)&#xA;VBS    - Windows based scripting&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any Automation always accompanies with one or more remote invocation for either information retrieval or result publishing. Here are the different list addressing major OS.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;&lt;strong&gt;Remote Script Invocation (tools)&lt;/strong&gt;&lt;/h2&gt;&#xA;&#xA;&lt;h2&gt;&lt;em&gt;Windows -&gt; Windows&lt;/em&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;psexec, Powershell&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;&lt;em&gt;Windows -&gt; Unix&lt;/em&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;plink, Quest Plink -&gt; SSH Server&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;&lt;em&gt;Unix -&gt; Unix&lt;/em&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;SSH client -&gt; SSH Server&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;&lt;em&gt;Unix -&gt; Windows&lt;/em&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;winexe, wmic -&gt; WMI Agent&#xA;check_nrpe   -&gt; NRPE_NT Agent&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the above list, you can easily make out that no language can replace another in feature set. We've to live with those until we have one universal OS and universal standard of communication protocols and APIs.&lt;/p&gt;&#xA;" OwnerUserId="12125" LastActivityDate="2010-12-31T08:00:55.160" />
  <row Id="32840" PostTypeId="1" AcceptedAnswerId="33213" CreationDate="2010-12-31T08:09:39.063" Score="20" ViewCount="1103" Body="&lt;p&gt;When ever I am stuck with a particular problem, I search for a solution in Google.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then I try to understand the code and tweak it according to my requirement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example recently I had asked a question &lt;a href=&quot;http://stackoverflow.com/questions/4533806/reading-xml-document-in-firefox&quot;&gt;Reading xml document in firefox&lt;/a&gt; in stack overflow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/users/200410/soufiane-hassou&quot;&gt;Soufiane Hassou&lt;/a&gt; gave me a link to w3schools, where I found a example on parsing xml document, I understood how the example works, but I copied the code and tweaked it according to my requirement, since I don't like typing much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So does this make me a copy/paste programmer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you say if a person is a copy/paste programmer ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks.&lt;/p&gt;&#xA;" OwnerUserId="6005" LastEditorUserId="4522" LastEditorDisplayName="" LastEditDate="2010-12-31T08:28:31.213" LastActivityDate="2011-01-02T22:30:20.293" CommunityOwnedDate="2011-01-02T18:21:01.983" Title="Am I copy/paste programmer ?" Tags="&lt;self-improvement&gt;&lt;programming&gt;&lt;programming-practices&gt;" AnswerCount="17" CommentCount="18" FavoriteCount="2" />
  <row Id="32841" PostTypeId="2" ParentId="32840" CreationDate="2010-12-31T08:12:17.020" Score="5" ViewCount="" Body="&lt;p&gt;In my opinion, you are a copy-paste programmer if you literally copy-paste something in your app and expect it to compile/run without knowing why the code you just copy-pasted works. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can tweak the code to fit your needs, then you are not the definiton of a &quot;copy-paste programmer&quot;.&lt;/p&gt;&#xA;" OwnerUserId="1385" LastEditorUserId="1385" LastEditorDisplayName="" LastEditDate="2010-12-31T08:20:38.400" LastActivityDate="2010-12-31T08:20:38.400" CommunityOwnedDate="2011-01-02T18:21:01.983" CommentCount="2" />
  <row Id="32842" PostTypeId="2" ParentId="32840" CreationDate="2010-12-31T08:15:28.383" Score="4" ViewCount="" Body="&lt;p&gt;How do you say if a person is a copy/paste programmer ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ans: A Smart programmer! &lt;br&gt;&#xA;Don't hesitate to steal code (if not violate any licenses and appropriate, we even coin the word code reuse for it).&lt;br&gt; We are not at school which homework had to do by ourselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best way of code reuse is to include their library&lt;br&gt; so that you enjoy the upgrade and bug fix from it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You shouldn't feel guilty about it at all...&lt;/p&gt;&#xA;" OwnerUserId="12098" LastActivityDate="2010-12-31T08:15:28.383" CommunityOwnedDate="2011-01-02T18:21:01.983" CommentCount="2" />
  <row Id="32843" PostTypeId="2" ParentId="32840" CreationDate="2010-12-31T08:17:40.727" Score="17" ViewCount="" Body="&lt;p&gt;Just my opinion, (and I'm no expert) but I would have to say: no. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me a c&amp;amp;p programmer is one who just blindly copies something without understanding why it works. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you understood why the example works, and had the confidence in your understanding to make modifications, then you are not a copy and paste programmer.&lt;/p&gt;&#xA;" OwnerUserId="7789" LastActivityDate="2010-12-31T08:17:40.727" CommunityOwnedDate="2011-01-02T18:21:01.983" CommentCount="2" />
  <row Id="32844" PostTypeId="2" ParentId="32840" CreationDate="2010-12-31T08:23:52.843" Score="2" ViewCount="" Body="&lt;p&gt;programming(php, asp, jsp) may change, But&#xA;Logic is more important. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you Understand the logic behind, you can work on all programming. &#xA;Np problem if it is Copy/Paste. Understanding is important&lt;/p&gt;&#xA;" OwnerUserId="12116" LastActivityDate="2010-12-31T08:23:52.843" CommunityOwnedDate="2011-01-02T18:21:01.983" />
  <row Id="32845" PostTypeId="2" ParentId="32840" CreationDate="2010-12-31T08:24:21.420" Score="4" ViewCount="" Body="&lt;p&gt;&lt;em&gt;So does this make me a copy/paste programmer?&lt;/em&gt; &amp;lt;&amp;lt; Not actually!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A copy-paste programmer is the one who steals the code itself, whereas you are merely taking ideas for trivial things in your project. I assume you are using your own logic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just chill, and Don't let that &lt;em&gt;guilt&lt;/em&gt; build a home inside you brain!&lt;/p&gt;&#xA;" OwnerUserId="4522" LastActivityDate="2010-12-31T08:24:21.420" CommunityOwnedDate="2011-01-02T18:21:01.983" CommentCount="1" />
  <row Id="32846" PostTypeId="2" ParentId="32840" CreationDate="2010-12-31T08:24:59.640" Score="25" ViewCount="" Body="&lt;p&gt;If &quot;copy/paste programmer&quot; is a negative, then I would say &lt;strong&gt;&quot;No, you are not one&quot;&lt;/strong&gt;. What you do it perfectly fine, and in fact exactly how I would recommend people to do thing. It's always helpful to see other peoples solution to a problem. You'll end up in many cases throwing that solution out completely in the end, because it's slow,  stupid or outdated. Not every solution you find is going to be good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you'll learn much faster this way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I copy and paste a lot. Both from others and from myself. I don't see the problem with this. In fact every single project I start I start by using a module (ironically but for unrelated reasons) called Paster to create project skeletons. Why would I type in the skeleton code myself?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you continue pasting. As long as you understand what the code does and why, it's not a problem.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastEditorUserId="9529" LastEditorDisplayName="" LastEditDate="2010-12-31T09:06:59.277" LastActivityDate="2010-12-31T09:06:59.277" CommunityOwnedDate="2011-01-02T18:21:01.983" CommentCount="3" />
  <row Id="32847" PostTypeId="2" ParentId="32796" CreationDate="2010-12-31T08:29:26.500" Score="0" ViewCount="" Body="&lt;p&gt;Yes 10, 20, 30 now have no appeal to me. Give me 64, 128, 256 any day. My favourite number is 1024, 2^10, make sense of that.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-31T08:29:26.500" />
  <row Id="32848" PostTypeId="2" ParentId="22070" CreationDate="2010-12-31T08:58:28.023" Score="0" ViewCount="" Body="&lt;p&gt;Simplest &lt;code&gt;for&lt;/code&gt; loop-&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for(100)&#xA;{&#xA;    //Will run for 100 times&#xA;}&#xA;&#xA;&#xA;for(i)&#xA;{&#xA;    //Will run for i times while i must be a positive integer&#xA;}&#xA;&#xA;&#xA;for(i as a)&#xA;{&#xA;    //Will run for i times while i must be a positive integer&#xA;    //and a is the incremental loop variable starting from 0 and &#xA;    //scoped within the loop&#xA;}&#xA;&#xA;&#xA;for(i as a=2)&#xA;{&#xA;    //Will run for i times while i must be a positive integer&#xA;    //and a is the incremental loop variable starting from 2 and &#xA;    //scoped within the loop&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="963" LastActivityDate="2010-12-31T08:58:28.023" />
  <row Id="32849" PostTypeId="2" ParentId="32796" CreationDate="2010-12-31T08:59:03.577" Score="2" ViewCount="" Body="&lt;p&gt;Haha, great question! I studied with that girl that was so into the binary business... When she asked me in what room some exam was and I told her it was room &lt;code&gt;CM 101&lt;/code&gt;. She actually went into room &lt;code&gt;CM 5&lt;/code&gt; and was completely puzzled why no one was there. Now the question is: Was she an utter nerd, or did she expect me to be one? :D&lt;/p&gt;&#xA;" OwnerUserId="9411" LastActivityDate="2010-12-31T08:59:03.577" CommentCount="3" />
  <row Id="32850" PostTypeId="2" ParentId="32786" CreationDate="2010-12-31T09:41:02.933" Score="1" ViewCount="" Body="&lt;p&gt;I think a better question is &quot;Do you like building things with lego blocks?&quot;&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2010-12-31T09:41:02.933" />
  <row Id="32851" PostTypeId="2" ParentId="32781" CreationDate="2010-12-31T10:00:39.983" Score="1" ViewCount="" Body="&lt;p&gt;It's not wrong to think imperatively in a declarative setting like SQL. It's just that the imperative thinking should be happening at a bit higher level than what you described. Whenever I need to query a database that uses SQL I always think to myself: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Here are the pieces I need.&lt;/li&gt;&#xA;&lt;li&gt;I'm going to put them together in this fashion. &lt;/li&gt;&#xA;&lt;li&gt;I'm going to whittle down what I just obtained with the following predicates to get to what I'm really looking for.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The above is a high level imperative algorithm and it works pretty well for me in the SQL setting. I think this is considered a top-down approach and Steven A. Lowe describe a pretty good &lt;a href=&quot;http://programmers.stackexchange.com/questions/32781/declarative-programming-vs-imperative-programming/32783#32783&quot;&gt;bottom-up&lt;/a&gt; approach.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastEditorUserId="7146" LastEditorDisplayName="" LastEditDate="2010-12-31T10:09:27.183" LastActivityDate="2010-12-31T10:09:27.183" />
  <row Id="32852" PostTypeId="2" ParentId="32830" CreationDate="2010-12-31T10:01:45.490" Score="2" ViewCount="" Body="&lt;p&gt;So it's a software company that believes people don't need to pay for software? I wonder how they sell anything...&lt;/p&gt;&#xA;" OwnerUserId="4051" LastActivityDate="2010-12-31T10:01:45.490" />
  <row Id="32853" PostTypeId="1" AcceptedAnswerId="32866" CreationDate="2010-12-31T10:13:22.253" Score="1" ViewCount="171" Body="&lt;p&gt;Hi, I'd like to know what RSS are people here subscribed and a little explanation about them, like for what programmers are they interesting, where you read them (smartphone when commuting, at work?).&lt;/p&gt;&#xA;" OwnerUserId="11873" LastActivityDate="2010-12-31T11:51:04.253" ClosedDate="2010-12-31T15:14:38.390" Title="What RSS are you subscribed on?" Tags="&lt;recommendations&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="2" />
  <row Id="32854" PostTypeId="2" ParentId="32796" CreationDate="2010-12-31T10:14:31.960" Score="2" ViewCount="" Body="&lt;p&gt;Round numbers? Each integer number above 1 is a nice round 10 when converted to itself as a base. 13 decimal is 10 to base 13.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it goes even weirder than this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Golden_ratio_base&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Golden_ratio_base&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And now think about how a datetime stamp like 2010-12-31 12:57:13 represents a number of seconds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Binary and hexadecimal were just the beginning when I've started with programming. &lt;/p&gt;&#xA;" OwnerUserId="12129" LastActivityDate="2010-12-31T10:14:31.960" />
  <row Id="32856" PostTypeId="2" ParentId="32763" CreationDate="2010-12-31T10:31:40.717" Score="0" ViewCount="" Body="&lt;p&gt;There's a difference between concurrency and parallelism. Concurrency is the act of doing more than one thing at a time, like writing to 2 files. Parallelism is the act of speeding up programs by using multiple cores.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although there's no free lunch when it comes to concurrency, in parallelism the lunch is certainly becoming more free, see developments like &lt;a href=&quot;http://www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell&quot; rel=&quot;nofollow&quot;&gt;http://www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-31T10:31:40.717" />
  <row Id="32857" PostTypeId="1" CreationDate="2010-12-31T10:33:28.860" Score="8" ViewCount="503" Body="&lt;p&gt;Not strictly a Stack Overflow thing, but I thought I'd get it out there and ask the question. What are you as a programmer going to do to improve in 2011? The things I am planning to do are as follows:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learn Functional Programming &lt;/li&gt;&#xA;&lt;li&gt;Write 100 blog posts &lt;/li&gt;&#xA;&lt;li&gt;Take a bunch of Microsoft exams (70-433, 70-511, 70-513, 70-515, 70-516, 70-518, 70-519) &lt;/li&gt;&#xA;&lt;li&gt;Contribute to an open source project&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Lets hope the motivation lasts all year!&lt;/p&gt;&#xA;" OwnerUserId="12130" LastActivityDate="2010-12-31T14:53:31.683" ClosedDate="2010-12-31T15:02:29.120" Title="How to become a better programmer in 2011?" Tags="&lt;.net&gt;&lt;open-source&gt;&lt;functional&gt;&lt;exam&gt;" AnswerCount="10" CommentCount="0" FavoriteCount="4" />
  <row Id="32859" PostTypeId="2" ParentId="17700" CreationDate="2010-12-31T10:38:22.107" Score="6" ViewCount="" Body="&lt;p&gt;I don't think cost is the primary reason, but sites like Google need a high level of control over what runs on their servers. They don't use a default installation of Ubuntu on their servers. Managing thousands of servers means that an awful lot of administration tasks must be automated. Command line oriented, modular open source operating systems like Linux or *BSD are probably better suited for the amount of customization a site like Google requires.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: And let's not forget that many of those top500 sites compete in one or more ways with Microsoft, so they probably don't want to rely on the technology of a competitor if they can avoid it.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2010-12-31T10:38:22.107" />
  <row Id="32860" PostTypeId="2" ParentId="32857" CreationDate="2010-12-31T10:40:42.653" Score="0" ViewCount="" Body="&lt;p&gt;I'm going to continue learning Haskell, (I've been at it for 3 days now) and I'm going to finish a project, because I start lots of projects, but I don't think I can name one I've actually finished.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;You may be interested in reading this &lt;a href=&quot;http://lukeplant.me.uk/blog/posts/why-learning-haskell-python-makes-you-a-worse-programmer/&quot; rel=&quot;nofollow&quot;&gt;http://lukeplant.me.uk/blog/posts/why-learning-haskell-python-makes-you-a-worse-programmer/&lt;/a&gt; .&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-31T10:40:42.653" CommentCount="1" />
  <row Id="32861" PostTypeId="2" ParentId="32857" CreationDate="2010-12-31T10:41:52.577" Score="1" ViewCount="" Body="&lt;p&gt;It all comes down to one thing: &lt;strong&gt;writing code&lt;/strong&gt;. I used to have a blog, and it was a great way to vent and share things I've learned (and I still do), but it was all talk until I sat down and actually built something.&lt;/p&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2010-12-31T10:41:52.577" />
  <row Id="32862" PostTypeId="2" ParentId="32857" CreationDate="2010-12-31T10:43:26.193" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Dig deep a famous open source project, learn the practical pattern, see the big picture, understand the design decisions&#xA;source code Practice, Practice,&lt;/li&gt;&#xA;&lt;li&gt;Practice. Learn a Programming&#xA;Language newly attract the community&#xA;like Scala, F#, Haskell, Ruby and&#xA;Python and their .net counterpart&#xA;(although long time ago they attract&#xA;community), &lt;/li&gt;&#xA;&lt;li&gt;Get the heart and intent&#xA;of new technologies, and foresee the&#xA;trend &lt;/li&gt;&#xA;&lt;li&gt;Build a breakable toy &lt;/li&gt;&#xA;&lt;li&gt;Engage&#xA;more with community&lt;/li&gt;&#xA;&lt;li&gt;Read more books&lt;/li&gt;&#xA;&lt;li&gt;Strengthen your existing skills&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8348" LastActivityDate="2010-12-31T10:43:26.193" />
  <row Id="32863" PostTypeId="2" ParentId="32857" CreationDate="2010-12-31T10:45:43.227" Score="2" ViewCount="" Body="&lt;p&gt;Every time I write a blog post, it involves a lot of research and inevitably leads to a deeper understanding of the topic that I am blogging about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Microsoft certifications while they don't necessarily demonstrate the ability to write good code, do ensure that one has the requisite knowledge and understanding of the technology stack and the frameworks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing a huge amount of code goes without saying at work, my question was more in addition to this. Also learning to write code in a more functional fashion has plenty of benefits in elegance and clarity, not to mention being far easier to test and more predictable, so I disagree with those who think it's a waste of time.&lt;/p&gt;&#xA;" OwnerUserId="12130" LastActivityDate="2010-12-31T10:45:43.227" />
  <row Id="32864" PostTypeId="2" ParentId="32857" CreationDate="2010-12-31T10:49:51.937" Score="0" ViewCount="" Body="&lt;p&gt;Learning functional programming is a good idea. That makes you think from a different angle. The ideas you gain from that can be applied to other programming language (which aren't functional in nature as well).&lt;br&gt;&#xA;Write 100 useful programming blog posts. That's the point. It definitely helps to strengthen the concepts. You'll research, and read more because you want to write things clearly. It definitely helps.&lt;br&gt;&#xA;Writing exams doesn't really help. In my case. I don't like exams at the first place. The mentality like learn for the sake of writing exams and scoring more, getting a certificate isn't going to help. But learn because you wanted to know, and you are interested definitely helps. So I'm not very clear whether taking those exams will help you or not. It will help you in learning on topics important for that exam.&lt;br&gt;&#xA;Contributing to open source project definitely helps. Start out with bare minimum. The important point is to release a skeleton first. Then add more features as it progress. Iterative development. Many (including me) have starting trouble. We add a big list of features that we like to do for a software. Then thinking about that at end would make us more lazy and procrastinate. So its better to release something fast at first.&lt;br&gt;&#xA;With broadening your horizon, you also need to get a considerable depth of understanding on your subject of choice. That makes you a good programmer.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2010-12-31T10:49:51.937" />
  <row Id="32865" PostTypeId="2" ParentId="32674" CreationDate="2010-12-31T10:59:38.043" Score="3" ViewCount="" Body="&lt;p&gt;A really good programmer's website probably looks better when viewing the source code.&lt;/p&gt;&#xA;" OwnerUserId="12132" LastActivityDate="2010-12-31T10:59:38.043" />
  <row Id="32866" PostTypeId="2" ParentId="32853" CreationDate="2010-12-31T11:26:23.597" Score="2" ViewCount="" Body="&lt;p&gt;I can tell you some of the feeds I subscribe to, I wonder if it is helpful. Most of them are Microsoft minded, about architecture, modelling, agile etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good rss feeds:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://codebetter.com/&quot; rel=&quot;nofollow&quot;&gt;http://codebetter.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.infoq.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.infoq.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://architects.dzone.com/&quot; rel=&quot;nofollow&quot;&gt;http://architects.dzone.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://nplus1.org/&quot; rel=&quot;nofollow&quot;&gt;http://nplus1.org/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/jmeier/default.aspx&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com/jmeier/default.aspx&lt;/a&gt; (look at the pocket guides )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Link collections: (if you don’t want to plough through 320 feeds yourself)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.arjansworld.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.arjansworld.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.alvinashcraft.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.alvinashcraft.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blog.cwa.me.uk/&quot; rel=&quot;nofollow&quot;&gt;http://blog.cwa.me.uk/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;podcasts:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.dotnetrocks.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.dotnetrocks.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.hanselminutes.com/default.aspx&quot; rel=&quot;nofollow&quot;&gt;http://www.hanselminutes.com/default.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://se-radio.net/&quot; rel=&quot;nofollow&quot;&gt;http://se-radio.net/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://thirstydeveloper.com/default.aspx&quot; rel=&quot;nofollow&quot;&gt;http://thirstydeveloper.com/default.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;screencasts&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.dnrtv.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.dnrtv.com/&lt;/a&gt; (check out the design pattern series with JP Boodhoo shows 63,65,68,71,92)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://channel9.msdn.com/&quot; rel=&quot;nofollow&quot;&gt;http://channel9.msdn.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://channel9.msdn.com/shows/ARCast_with_Ron_Jacobs/&quot; rel=&quot;nofollow&quot;&gt;http://channel9.msdn.com/shows/ARCast_with_Ron_Jacobs/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;free magazines&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;https://www.msarchitecturejournal.com/Default.aspx&quot; rel=&quot;nofollow&quot;&gt;https://www.msarchitecturejournal.com/Default.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/netherlands/studenten/informatie/dotnetmagazine.aspx&quot; rel=&quot;nofollow&quot;&gt;http://www.microsoft.com/netherlands/studenten/informatie/dotnetmagazine.aspx&lt;/a&gt; (Dutch)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://selfservice.abonneren.nl/titels/computable/abonneren.html;jsessionid=C7FD65099CA5399EA1133ED3BB9E2C12&quot; rel=&quot;nofollow&quot;&gt;http://selfservice.abonneren.nl/titels/computable/abonneren.html;jsessionid=C7FD65099CA5399EA1133ED3BB9E2C12&lt;/a&gt; (Dutch)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;msdn:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/architecture/default.aspx&quot; rel=&quot;nofollow&quot;&gt;http://msdn.microsoft.com/en-us/architecture/default.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I subscribe to about 320 feeds that I have categorized so I don't read them all. To get you started &lt;a href=&quot;http://cid-89492664fa7e1a4b.office.live.com/self.aspx/.Public/google-reader-subscriptions.xml&quot; rel=&quot;nofollow&quot;&gt;here is a modified OPML file&lt;/a&gt; you can import into most rss readers &lt;/p&gt;&#xA;" OwnerUserId="10422" LastEditorUserId="10422" LastEditorDisplayName="" LastEditDate="2010-12-31T11:51:04.253" LastActivityDate="2010-12-31T11:51:04.253" />
  <row Id="32867" PostTypeId="2" ParentId="32857" CreationDate="2010-12-31T11:32:49.937" Score="11" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Enjoy &amp;amp; focus on the present moment. Stop being in the future all the time.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This will make me a &lt;strong&gt;better everything&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2010-12-31T12:47:01.437" LastActivityDate="2010-12-31T12:47:01.437" CommentCount="1" />
  <row Id="32868" PostTypeId="2" ParentId="32857" CreationDate="2010-12-31T11:46:58.563" Score="0" ViewCount="" Body="&lt;p&gt;I have noticed that teaching others is a great tool in becoming better myself.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When reading books that you have to explain to others, you read the book differently it sticks more and you make a story in your head that gives a lot of context.&lt;/li&gt;&#xA;&lt;li&gt;When writing small demo's it can be more motivating than a pet project that never is going to be used.&lt;/li&gt;&#xA;&lt;li&gt;When explaining stuff you can get questions you could never have thought up yourself.&lt;/li&gt;&#xA;&lt;li&gt;When discussing the subject with people they will also add their context to your thinking which helps a lot in remembering and rationing about a subject.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2010-12-31T11:46:58.563" />
  <row Id="32869" PostTypeId="2" ParentId="32796" CreationDate="2010-12-31T11:51:51.510" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;has programming &quot;ruined&quot; (read: altered) your perception of the roundness of a number?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Nope. It in fact extended my knowledge and understanding of the number systems which I consider to be a very positive thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just like a knowledge of a different human language does not ruin your skills with your mother language but instead gives you more insight for comparative analysis of the language properties and patterns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It makes you richer.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2010-12-31T11:51:51.510" />
  <row Id="32870" PostTypeId="2" ParentId="32840" CreationDate="2010-12-31T11:59:06.113" Score="1" ViewCount="" Body="&lt;p&gt;I wouldn't call you a copy-paste programmer. You are not actually doing this blindly (as you said), but actually figuring out what's going on before using the code. There is nothing wrong/harmful in that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually actually type out the code myself, even if it means basically typing it in word for word (or is it character by character for code?). I find that that whenever I copy paste, I often forget exactly how that problem was solved even though I remember the logic behind it. There are a lot of nuances and subtleties that are simply not registered when I just read code, even though I can follow and understand the reasoning involved. Actually typing it out forces me to to confront details, hidden issues and easy to make mistakes that I would otherwise miss. &lt;/p&gt;&#xA;" OwnerUserId="1454" LastEditorUserId="1454" LastEditorDisplayName="" LastEditDate="2010-12-31T20:42:52.023" LastActivityDate="2010-12-31T20:42:52.023" CommunityOwnedDate="2011-01-02T18:21:01.983" CommentCount="1" />
  <row Id="32871" PostTypeId="2" ParentId="32799" CreationDate="2010-12-31T11:59:06.147" Score="1" ViewCount="" Body="&lt;p&gt;There are quite a few, one of my favourites ate the moment is James Shore's &lt;a href=&quot;http://jamesshore.com/Blog/Lets-Play/Lets-Play-Test-Driven-Development.html&quot; rel=&quot;nofollow&quot;&gt;Let's play TDD&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.dimecasts.net/&quot; rel=&quot;nofollow&quot;&gt;Dimecast&lt;/a&gt; has a lot of fun small video's&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.dnrtv.com/archives.aspx&quot; rel=&quot;nofollow&quot;&gt;DNRTV&lt;/a&gt; and &lt;a href=&quot;http://channel9.msdn.com/&quot; rel=&quot;nofollow&quot;&gt;channel 9&lt;/a&gt; have some coding episodes, most are more discussions and presentations&lt;/li&gt;&#xA;&lt;li&gt;This years &lt;a href=&quot;http://oredev.org/2010/videos&quot; rel=&quot;nofollow&quot;&gt;oredev videos&lt;/a&gt; are also pretty amazing&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2010-12-31T11:59:06.147" />
  <row Id="32872" PostTypeId="1" AcceptedAnswerId="32909" CreationDate="2010-12-31T12:12:39.213" Score="2" ViewCount="101" Body="&lt;p&gt;There is plenty of material about designing software for object oriented programming. Do you know of any good materials for pure structural programming? I am working purely in C and while I can use some experiences from object oriented programming I found out, that I know few tricks about good structural design.&lt;/p&gt;&#xA;" OwnerUserId="9753" LastActivityDate="2010-12-31T15:39:37.120" Title="Materials on structural languages design?" Tags="&lt;design&gt;&lt;c&gt;&lt;structural-programming&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="32873" PostTypeId="2" ParentId="32840" CreationDate="2010-12-31T12:32:20.867" Score="2" ViewCount="" Body="&lt;p&gt;Oh you bad bad bad baaad man...&#xA;Tsk tsk tsk..&#xA;C&amp;amp;P is a very very bad act.&#xA;(If you know what the code is doing and how it's doing it CTRL+C and CTRL+V it)&#xA;You're a very bad man.&lt;/p&gt;&#xA;" OwnerUserId="12137" LastActivityDate="2010-12-31T12:32:20.867" CommunityOwnedDate="2011-01-02T18:21:01.983" />
  <row Id="32874" PostTypeId="2" ParentId="32872" CreationDate="2010-12-31T12:39:32.383" Score="1" ViewCount="" Body="&lt;p&gt;Hard to say. Back when I was learning, the main structured programming advice was basically &quot;use block structures&quot; and &quot;don't use goto&quot;, which only takes you so far.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There was a technique called &quot;Jackson Structured Programming&quot; in which you would describe the structure of your input and output data, and the structure of your program was derived as the in-between thing. The diagrams weren't so terribly aweful as the overall method, which was AFAIK primarily targeted at COBOL and at fairly simple data processing tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, the specific advice that you can find for structured programming is often advice that you shouldn't follow in the real world - overly simplistic and pedantic, based on the assumption that programmers are incapable of thinking about such &quot;complex&quot; ideas as repetition without a pretty picture and a heavyweight methodology to help them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is perhaps useful is to point out that on the whole, the &quot;design patterns&quot; for structured programming were algorithms and data structures, or at least that's how things seemed in the 80s and 90s before the term &quot;design pattern&quot; had been popularised. Current non-OO developers will have larger-scale design patterns now, of course, but as a C++ programmer myself who hasn't used much C, Pascal or whatever for over a decade, I can't comment much on that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few idioms are also relevant, but let's just say that your object oriented programming experience will have already given you some idea of when and how to use a &quot;parameter block&quot; for instance - a class is in many ways the evolution of a parameter block, and I suspect (but don't know for sure) that many C++ object-oriented patterns have near-equivalent C parameter-block patterns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, some object oriented design patterns are needed to some extent to work around data hiding issues. Abstraction is good design, but sometimes having a good abstraction is hard work where having a leaky abstraction permits much simpler solutions, at least in the short term.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2010-12-31T12:39:32.383" CommentCount="1" />
  <row Id="32875" PostTypeId="2" ParentId="32857" CreationDate="2010-12-31T12:42:08.393" Score="0" ViewCount="" Body="&lt;p&gt;By coding as little as possible. :D&#xA;In all honesty I would like to have the time to explore coding alternate projects such as creating a UI with KINECT. Typing thousands of lines is sooo last year. I would like us to start coding Wii style :D&lt;/p&gt;&#xA;" OwnerUserId="12137" LastActivityDate="2010-12-31T12:42:08.393" />
  <row Id="32876" PostTypeId="2" ParentId="3884" CreationDate="2010-12-31T13:00:24.227" Score="0" ViewCount="" Body="&lt;p&gt;When I was first in college, one lesson we had this compare-and-constrast-various-methods-and-diagrams thing. Nassi-Schneiderman was a winner but with certain issues highlighted. Conditionals subdividing the width of the page quickly became impractical, so it was proposed we might use a representation more like that for repetition. Also, the lines and boxes seemed redundant to some degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about it, and you'll realise that what we were leaning towards was basically indented structured pseudocode, but with some limited use of drawn lines down one side to highlight the indentation - or more accurately to reinforce the pretence that it was a diagram.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2010-12-31T13:00:24.227" />
  <row Id="32877" PostTypeId="1" CreationDate="2010-12-31T13:09:56.730" Score="8" ViewCount="368" Body="&lt;p&gt;As engineers, we all &quot;design&quot; artifacts (buildings, programs, circuits, molecules...).&#xA;That's an activity (design-the-verb) that produces some kind of result (design-the-noun).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think we all agree that design-the-noun is a different entity than the artifact itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A key activity in the software business (indeed, in any business where the resulting product artifact needs to be enhanced) is to understand the &quot;design (the-noun)&quot;.  Yet we seem, as a community, to be pretty much complete failures at recording it, as evidenced by the amount of effort people put into rediscovering facts about their code base.  Ask somebody to show you the design of their code and see what you get.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think of a design for software as having:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;An explicit specification for what the software is supposed to do &lt;em&gt;and how well it does it&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;An explicit version of the code (this part is easy, everybody has it)&lt;/li&gt;&#xA;&lt;li&gt;An explanation for how each part of the code serves to achieve the specification (e.g, a relation between spec fragments and code fragments)&lt;/li&gt;&#xA;&lt;li&gt;A &lt;em&gt;rationale&lt;/em&gt; as to why the code is the way it is (e.g., why a particular choice rather than another)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What is NOT a design is a particular perspective on the code. For example [not to pick specifically on] UML diagrams are not designs.  Rather, they are properties you can derive from the code, or arguably, properties you wish you could derive from the code.  But as a general rule, you can't derive the code from UML. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why is it that after 50+ years of building software, why don't we have regular ways to express this?  (Feel free to contradict me with explicit examples!)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if we do, most of the community seems so focused on getting &quot;code&quot; that design-the-noun gets lost anyway.  (IMHO, until design becomes the purpose of engineering, with the artifact extracted from the design, we're not going to get around this).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What have you seen as means for recording designs (in the sense I have described it)? &#xA;Explicit references to papers would be good.  Why do you think specific and general means have not been succesful?   How can we change this?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[I have my &lt;a href=&quot;http://portal.acm.org/citation.cfm?id=129859&quot; rel=&quot;nofollow&quot;&gt;own ideas&lt;/a&gt; that flesh out the bulleted viewpoint above, but I'm interested in other people's answers... and its hard to implement my scheme [[and maybe that's the real problem :-]] ]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT 2011/1/3: One the answer-threads hints that &quot;documentation&quot; (presumably textual, in particular not-formal) might be adequate.  I guess I should clarify that I don't believe this.  CASE tools appeared on the scene starting in the 80s, but the early tools mostly just captured pixels for the diagrams of whatever you drew; while the tools were arguablly commercially successful, they really weren't very helpful.   A key insight was, that if the additional &quot;design&quot; artifacts are not formally interpretable, you can't get any serious tool help.  I believe the same insight applies to any long-term useful form of design capture: if it hasn't got a formal structure, it won't be of any real use.   Text documents pretty much fail this test.&lt;/p&gt;&#xA;" OwnerUserId="12135" LastEditorUserId="12135" LastEditorDisplayName="" LastEditDate="2011-01-03T00:12:15.933" LastActivityDate="2011-01-03T15:40:50.223" Title="Why can't we capture the design of software more effectively?" Tags="&lt;design&gt;&lt;philosophy&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="10" />
  <row Id="32878" PostTypeId="2" ParentId="32857" CreationDate="2010-12-31T13:26:08.120" Score="0" ViewCount="" Body="&lt;p&gt;Write (more) tests.  If I don't know how to in a given situation, learn how to.&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2010-12-31T13:26:08.120" />
  <row Id="32879" PostTypeId="1" CreationDate="2010-12-31T13:27:36.357" Score="-1" ViewCount="96" Body="&lt;p&gt;I want to have my own version control system on my own pc &#xA;which one is a good choice?&lt;/p&gt;&#xA;" OwnerUserId="3791" LastActivityDate="2010-12-31T13:38:41.137" ClosedDate="2010-12-31T13:55:35.210" Title="What's your own VCS software?" Tags="&lt;svn&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="32880" PostTypeId="2" ParentId="32879" CreationDate="2010-12-31T13:30:27.887" Score="6" ViewCount="" Body="&lt;p&gt;Amongst the distributed family currently Git and Mercurial are in the lead.&#xA;Amongst the centralized family, SVN is still holding strong (very^2 strong). It is also a default choice in many corporate enviroments. Each of them has their own strengths and weaknesses, both technical and &quot;office political&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, on StackOverflow there is a plethora of questions that deal with this subject (choosing a version control system). It really has been dealt to death, shot, resurrected, hanged, then resurrected again (it is currently on intensive care, and every once in a while a new queston pops up ;-), so it might be an interesting read to check out some of the more popular ones. Search under [git], [mercurial], [svn], [cvs] tags.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some of the more popular items, dealing with choosing a version control system in general, as well as some of the mentioned one in particular.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/3859/what-is-the-difference-between-all-the-different-types-of-version-control&quot;&gt;What is the difference between all the different types of version control?&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://stackoverflow.com/questions/4670/dvcs-choices-whats-good-for-windows&quot;&gt;DVCS Choices - What's good for Windows?&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://stackoverflow.com/questions/1598759/git-and-mercurial-compare-and-contrast&quot;&gt;Git and Mercurial - Compare and Contrast&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://stackoverflow.com/questions/995636/popularity-of-git-mercurial-bazaar-vs-which-to-recommend&quot;&gt;Popularity of Git/Mercurial/Bazaar vs. which to recommend&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Just these four should bore you to death :-)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-31T13:30:27.887" />
  <row Id="32881" PostTypeId="1" AcceptedAnswerId="32885" CreationDate="2010-12-31T13:32:42.327" Score="14" ViewCount="381" Body="&lt;p&gt;Software that we write has ramifications in the real world. If not, it wouldn't be very useful. Thus, it has the potential to sweep across the world faster than a deadly manmade virus or to affect society every bit as much as genetic manipulation. Maybe we can't see how right now, but in the future our code will have ever-greater potential for harm or good.&#xA;Of course, there's the issue of hacking. That's clearly a crime. Or is it that clear? Isn't hacking acceptable for our government in the event of national security? What about for other governments? Cases of life-and-death emergency? Tracking down deadbeat parents? Screening the genetic profile of job candidates?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where is the line drawn? Who decides?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do programmers have responsibility for how their code is used? What if a programmer writes code to pry into confidential information or copy-protected material? Does he bear responsibility along with the person who used the program? What about a programmer who knowingly or unknowingly writes code to &quot;fix the books?&quot; Should he be liable?&lt;/p&gt;&#xA;" OwnerUserId="12142" LastActivityDate="2011-01-17T15:06:21.073" Title="Attributes of an Ethical Programmer?" Tags="&lt;programming&gt;&lt;ethics&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="1" />
  <row Id="32882" PostTypeId="2" ParentId="32796" CreationDate="2010-12-31T13:34:47.850" Score="1" ViewCount="" Body="&lt;p&gt;Number comfort is no laughing matter.  Rumors had it that the guy who discovered irrational numbers was &lt;a href=&quot;http://en.wikipedia.org/wiki/Hippasus#Irrational_numbers&quot; rel=&quot;nofollow&quot;&gt;drowned by the Pythagoreans&lt;/a&gt; for such heresy.   :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, I feel like there is no question in the matter for anyone of a mathematical bent.  Primes are the periodic table of natural numbers.  Their elusive nature and &lt;a href=&quot;http://stackoverflow.com/questions/1145217/why-should-hash-functions-use-a-prime-number-modulus&quot;&gt;practical algorithmic applications&lt;/a&gt; makes numeric base conversions seem as pedestrian as 1337-speak.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thus programming has led me to primes, as well as &lt;a href=&quot;http://hostilefork.com/demos/uscii-5x7-english-c0/encode.html&quot; rel=&quot;nofollow&quot;&gt;semiprimes&lt;/a&gt;.  I don't feel ruined, but perhaps I am. :)&lt;/p&gt;&#xA;" OwnerUserId="944" LastActivityDate="2010-12-31T13:34:47.850" CommentCount="1" />
  <row Id="32883" PostTypeId="2" ParentId="32881" CreationDate="2010-12-31T13:37:58.487" Score="4" ViewCount="" Body="&lt;p&gt;IMHO, technology is neutral. People who use it (&lt;em&gt;end users&lt;/em&gt;, if you wish) decide how it will be used, and for what, and they're the ones who face the consequences for all their actions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As the old saying goes &quot;Guns don't kill people. People kill people.&quot;&#xA;&lt;img src=&quot;http://i.imgur.com/IekON.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2010-12-31T13:37:58.487" CommentCount="10" />
  <row Id="32884" PostTypeId="2" ParentId="32879" CreationDate="2010-12-31T13:38:41.137" Score="3" ViewCount="" Body="&lt;p&gt;If you're purely talking about your own files, I say Subversion, as your tag hints. This is what I do myself. A subversion repository on a USB flash stick is very handy for keeping stuff synchronised between laptop and desktop, and I use it for far more than just source code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're setting up a repository that a larger team will contribute to, subversion may not be such a great choice. It will work, to a point, but a distributed VCS (Mercurial, Git, ...) may be a much better choice. There's guides on choosing them, but I doubt you'll really know whether one or the other is best for your project unless you try all of them, which is unlikely. Choose one of the popular ones (probably Mercurial or Git) from a relatively quick assessment and stick with it - it's unlikely to be a disaster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're joining some other project, of course, you use whatever they already use.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2010-12-31T13:38:41.137" CommentCount="1" />
  <row Id="32885" PostTypeId="2" ParentId="32881" CreationDate="2010-12-31T13:48:12.373" Score="10" ViewCount="" Body="&lt;p&gt;As we are discussing ethics, there is a split to be made between legality and straight morality, the two do not necessarily sit on the same page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Legally speaking, your culpability for the result of what you create varies by region, but most fault lies with the user.  If the product is intrinsically illegal then the programmer may be culpable.  In the US for instance, development of encryption circumvention software is illegal in and of itself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Morality has far greater scope.  Whether or not what you develop should be developed is a matter for the conscience of the individual.  Some people are happy to say to themselves, &quot;if I did not make this, someone else would&quot;, or &quot;the use of this is nothing to do with me&quot; - well, if a person can do that and sleep, then that's that.  If not, then they should not.  Companies can and often will fire an employee if they refuse to do assigned tasks, if the task is not illegal in itself then the employee really does not have a leg to stand on, unless it could count as a discrimination issue in jurisdictions that support it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I think morality is critically important and have actively refused tasks from directors where I think they are morally wrong, though that does mean betting your employment against their wider need for you and causes trouble in any event.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Always try to remember, that without your own self respect, you have nothing at all. &lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2010-12-31T13:48:12.373" CommentCount="2" />
  <row Id="32886" PostTypeId="2" ParentId="32881" CreationDate="2010-12-31T13:51:36.100" Score="3" ViewCount="" Body="&lt;p&gt;I don't think there is a difference between being an ethical programmer and an ethical person. Hence the attributes of an ethical programmer are the same as for anyone else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then we can discuss each of your examples, but they are really all the same as any ethical conundrum. You need to ignore the complexities of real life and look at only the ethical question posed out of context. And that can be enlightening, but ultimately it's an intellectual pursuit with little contact to reality.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-31T13:51:36.100" />
  <row Id="32887" PostTypeId="2" ParentId="32781" CreationDate="2010-12-31T13:51:56.613" Score="1" ViewCount="" Body="&lt;p&gt;The key to your question is in what you said in the next-to-last paragraph: &quot;You can't talk like that in SQL.&quot; It may be more useful for you at this stage to approach SQL as a foreign language instead of a programming language. If you think of it this way, writing a SQL query is really translating an English statement of what you want into &quot;SQLish&quot;. The computer understands SQLish perfectly and will do exactly what you say, so you don't need to worry about implementation as long as you translate correctly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, what's the best way to learn a foreign language? You obviously have to learn the grammar and vocabulary, which you can get from your SQL documentation. The most important thing is practice. You should read and write as much SQL as you can, and don't feel that you have to know the syntax thoroughly first; you can, and should, look up things as you go along. You'll know you've got it when you find it easier to describe what data you want in SQL than in English. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-31T13:51:56.613" />
  <row Id="32888" PostTypeId="1" CreationDate="2010-12-31T14:02:06.923" Score="6" ViewCount="449" Body="&lt;p&gt;I'm working on Project Euler problems for coding practice as I learn Haskell.  I'm having fun, and making decent progress, and I'm wondering if this could ever be a resume item.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Under what circumstances would you mention such problems on a Resume?  How many ought to be solved, for what sort of job might this make sense?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Understand that resume fodder isn't my goal, just a potential side benefit.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2010-12-31T21:58:06.310" Title="Would you ever mention Project Euler problems solved on a resume?" Tags="&lt;coding&gt;&lt;resume&gt;&lt;project-euler&gt;" AnswerCount="9" CommentCount="3" FavoriteCount="1" />
  <row Id="32889" PostTypeId="2" ParentId="32877" CreationDate="2010-12-31T14:04:09.790" Score="2" ViewCount="" Body="&lt;p&gt;UML is to a program what the plans are to a building in my humbe view. Plans alone aren't a design off course, you need material specifications (used code tools) for that, a general view of the building (some schematic representation of the whole software, including GUI designs), how the building is planted in the surroundings (a clear scheme of how the software interacts with others / is planted within the OS), how it stands to the climate and soil (interaction with hardware), ... Plenty of books on design try to define it, but as with so many things in science, every scientist has a bit his own definition. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I also don't agree with your observation that you can't derive the code from UML. You can, if you have the additional information mentioned. But the real code isn't the design any more, that's the artifact. You can't extract the real stones and concrete from a plan either, but you need the plan to put the real stones and concrete in the correct form and the correct place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In that light, I found &lt;a href=&quot;http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=708567&quot; rel=&quot;nofollow&quot;&gt;following article&lt;/a&gt; interesting (I met it in a different context when I was looking for graph software, but nonetheless...). The graph approach to describe a design made sense to me, although -again- this is only part of the design in my opinion. The interesting thing is that this approach gives a framework to understand and refactor designs (as opposed to refactor the software), as indicated in following papers :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.28.9763&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;Wermelinger and Fiadeiro&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.computer.org/portal/web/csdl/doi/10.1109/TSE.2006.112&quot; rel=&quot;nofollow&quot;&gt;Tsantalis et al&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There are a whole lot of other approaches to describe (part of) the design, like &lt;a href=&quot;http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5388187&quot; rel=&quot;nofollow&quot;&gt;structured design (HIPO Charts)&lt;/a&gt; or &lt;a href=&quot;http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5388116&quot; rel=&quot;nofollow&quot;&gt;integrated program design&lt;/a&gt;, &lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.121.4534&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;design patterns&lt;/a&gt;, ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, as long as there's no industry standard set, it's unlikely to get a &quot;regular&quot; way to express this. Even after 50+ years. And be honest, if your company finds a good way to express a design, would you share it with the world? &lt;/p&gt;&#xA;" OwnerUserId="7268" LastEditorUserId="7268" LastEditorDisplayName="" LastEditDate="2010-12-31T14:10:53.013" LastActivityDate="2010-12-31T14:10:53.013" CommentCount="6" />
  <row Id="32890" PostTypeId="2" ParentId="32877" CreationDate="2010-12-31T14:08:09.433" Score="6" ViewCount="" Body="&lt;p&gt;I think there are several reasons why we still aren't good at this.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;People for a long time though software was like houses, and were using processes and ideas from construction. &quot;Software architect&quot; was a title all programmers wanted. During the last ten years the software architect has almost died out. The idea of waterfall processes where you first have an architect saying how the software should work and look, and then get people making diagrams of how it should be constructed and lastly have code monkey implementing these nice worksflows/UML diagrams to spec, this idea is now widely derided. So in fact, the whole industry was barking up the wrong path for 40 years.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The tools we use constantly change and improve. Programming is a logical puzzle, and we come up with better ideas and techniques to abstract that puzzle and making it understandable. The way we model this must evolve at the same speed, but it lags behind. The improved techniques to abstract the puzzle of programming also means we can increase the complexity. And so we do. Programming always lies on the edges of the complexity we as programmers can handle. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Making ways of describing the program is a sort of abstraction. If we can come up with a good way of abstracting the software, we can also put that abstraction directly into the development tools, and therefore add another abstraction/simplification to the programming. This has happened many times over. Examples of such abstractions are functions, classes and libraries.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Therefore; If you have a &lt;em&gt;successful&lt;/em&gt; and &lt;em&gt;accurate&lt;/em&gt; model of the software, that model will be &lt;em&gt;equivalent&lt;/em&gt; to the software.&lt;/strong&gt; Which kinda makes the whole effort pointless, which in turn corroborates point 1 above: Modeling the software is much less useful that previously thought. It is instead better to extract data about the software from the code. Creating a UML model from how the code actually looks is much more enlightening than creating an UML model and trying to implement that theoretical model.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-31T14:08:09.433" CommentCount="16" />
  <row Id="32891" PostTypeId="2" ParentId="32888" CreationDate="2010-12-31T14:08:58.743" Score="8" ViewCount="" Body="&lt;p&gt;Feels more like interview discussion material more than resume content.&lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2010-12-31T14:08:58.743" CommentCount="3" />
  <row Id="32892" PostTypeId="2" ParentId="32872" CreationDate="2010-12-31T14:13:07.190" Score="1" ViewCount="" Body="&lt;p&gt;good design in C:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;use typedefs for data structures&lt;/li&gt;&#xA;&lt;li&gt;write functions to operate on data structures&lt;/li&gt;&#xA;&lt;li&gt;group functions that operate on the same data structure into modules&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;oops!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2010-12-31T14:13:07.190" CommentCount="12" />
  <row Id="32893" PostTypeId="1" AcceptedAnswerId="32903" CreationDate="2010-12-31T14:16:52.197" Score="7" ViewCount="275" Body="&lt;p&gt;I seem to remember that I was reading that&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;underflow&lt;/code&gt; means you have a too small &lt;em&gt;magnitude&lt;/em&gt; that cannot be presented anymore in a type&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;overflow&lt;/code&gt; means you have a too large &lt;em&gt;magnitude&lt;/em&gt; that cannot be presented anymore in a type&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;However, in practice I perceive that the terms are used such that&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;underflow&lt;/code&gt; means you have a too small &lt;em&gt;value&lt;/em&gt; that cannot be presented anymore in a type&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;overflow&lt;/code&gt; means you have a too large &lt;em&gt;value&lt;/em&gt; that cannot be presented anymore in a type&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What is the correct meaning to use here? Are the terms defined differently for integer and floating point types?&lt;/p&gt;&#xA;" OwnerUserId="12076" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2011-02-03T17:33:01.447" LastActivityDate="2011-02-03T17:33:01.447" Title="Is INT_MIN-1 an underflow or overflow?" Tags="&lt;terminology&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="1" />
  <row Id="32894" PostTypeId="2" ParentId="32881" CreationDate="2010-12-31T14:23:06.573" Score="6" ViewCount="" Body="&lt;p&gt;In the early 2000s, I worked for a company that had contracts to produce weapons components for the Israeli military (can't go into more distinct details than that without giving away too many clues as to who the company was).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, that was my first taste of serious ethical questions as a programmer:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Do I want to be producing stuff that quite directly kills people? &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If these fights are being ordered against terrorists by a democratic country, is it really that bad? &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;What difference does it really make? If I don't write this code, someone else will.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Then just last year, I had an interview for a job with a major US (Australian branch) defence contractor. Again, for a job which would most likely involve working on stuff which controls weapons systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;.....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I never actually DID work on projects which were directly involved with building weapons systems. A big part of me is glad that I didn't. Because I just know that every time I turn on the TV and some story came up on the news where there are blood-covered children screaming (in Gaza, Afghanistan, Iraq, etc), I'd be agonising over the idea that &quot;it is my code that helped do this!&quot;, and I'd have nightmares about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now just to be clear, this is totally politically neutral: I'd have this same ethical problem if I had to contract for an Iranian, Pakistani, Egyptian, Chinese, or any other military interest. It's just that pure humane interest which disturbs me. My politics are quite middle of the way and neutral. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know if I could ever work on software which directly &quot;does harm&quot;- however well justified. I just hope I'm never forced (by lack of other opportunities, etc) to consider such jobs again......&lt;/p&gt;&#xA;" OwnerUserId="5064" LastEditorUserId="5064" LastEditorDisplayName="" LastEditDate="2010-12-31T16:20:41.550" LastActivityDate="2010-12-31T16:20:41.550" CommentCount="2" />
  <row Id="32895" PostTypeId="2" ParentId="32888" CreationDate="2010-12-31T14:24:50.927" Score="1" ViewCount="" Body="&lt;p&gt;Having code you can show to an employer seems like a good idea to me (*), as does demonstrating mathematical skill.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't make a big deal about it on my CV, but I think it's worth a mention, if you've put a significant amount of work into Project Euler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I would put it on my CV, if I had invested time solving Project Euler problems.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(*) I suspect that my code submissions to my current employers had a strong positive impact in their decision to hire me. Having said that, Project Euler problems might not be large enough to show off your design skills. But solving problems there would show how you solve problems, which is great.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-12-31T14:24:50.927" CommentCount="1" />
  <row Id="32896" PostTypeId="2" ParentId="32888" CreationDate="2010-12-31T14:26:12.890" Score="0" ViewCount="" Body="&lt;p&gt;If you're being interviewed for a job at a university (especially in computer science or mathematics depts) it might be a good idea to put this in your resume. Otherwise not really.&lt;/p&gt;&#xA;" OwnerUserId="11785" LastActivityDate="2010-12-31T14:26:12.890" />
  <row Id="32897" PostTypeId="2" ParentId="32888" CreationDate="2010-12-31T14:32:18.157" Score="5" ViewCount="" Body="&lt;p&gt;I don't think it is worth to be mentioned in CV. This might be a good thing to show to your classmates or a professor, but I don't think it will make much difference for an employer. It's almost like mentioning in your CV all the &quot;tough&quot; courses you've taken during your studies. &lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2010-12-31T14:32:18.157" CommentCount="1" />
  <row Id="32898" PostTypeId="2" ParentId="32881" CreationDate="2010-12-31T14:34:03.757" Score="4" ViewCount="" Body="&lt;p&gt;In the light of the &quot;guns don't kill people&quot; argument, I draw the line with the original purpose of the coding. Almost everything can be abused (you can kill somebody with a pencil if you try hard enough). Yet, if the intent of the code is good, that shouldn't stop you from writing it. If the intent of the code is to harm somebody, it doesn't matter any more who it will harm. I wouldn't be able to do it, as harming will be the only use for it and sure as hell that won't only be used by Old Shatterhand and Superman.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nobel invented dynamite for mining purposes and in the process changed the face of war. But sure as hell he also saved quite a miner's life, avoiding accidents with nitroglycerine. So is that moral? I guess so, even when he was described as &quot;le marchand de la mort&quot; in a french paper.&lt;/p&gt;&#xA;" OwnerUserId="7268" LastActivityDate="2010-12-31T14:34:03.757" CommentCount="1" />
  <row Id="32899" PostTypeId="2" ParentId="32830" CreationDate="2010-12-31T14:34:15.893" Score="0" ViewCount="" Body="&lt;p&gt;What country is the company located in? Different places have different cultural and ethical expectations vis-a-vis purchasing software. Prices are not tied to local economic values but rather to global ones, making the proposition of using 100% bought software quite rare in certain places.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're located someplace where this practice is normal, you'd have to change countries  rather than jobs. &lt;strong&gt;Though there may be employers that do pay for software, they could be few and far between.&lt;/strong&gt; Obviously if you're in the United States, blatant piracy would be a huge red flag (basing this on my own work experience here and other people's comments). In countries where MS Windows costs 10 times as much -- calculating the price in beers at a local pub, or whatever fixed unit you want (haircuts! bread!) -- blatant piracy can be a much more &quot;normal&quot; practice unless there is heavy regulation AND ENFORCEMENT.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2010-12-31T14:34:15.893" CommentCount="2" />
  <row Id="32900" PostTypeId="2" ParentId="32857" CreationDate="2010-12-31T14:53:31.683" Score="0" ViewCount="" Body="&lt;p&gt;Read some good books.&#xA;Here's some I've got planned&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/G%C3%B6del,_Escher,_Bach&quot; rel=&quot;nofollow&quot;&gt;Gödel, Escher, Bach&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.pragprog.com/titles/jaerlang/programming-erlang&quot; rel=&quot;nofollow&quot;&gt;Programming Erlang&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read&quot;&gt;More here&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11829" LastActivityDate="2010-12-31T14:53:31.683" />
  <row Id="32903" PostTypeId="2" ParentId="32893" CreationDate="2010-12-31T15:03:35.150" Score="6" ViewCount="" Body="&lt;p&gt;I can't really find an &quot;authoritative&quot; source on this matter, mostly because this is probably a matter of convention, and terminology is often very inconsistent.  But, the following excerpt from Robert Seacord's &quot;&lt;a href=&quot;http://www.cert.org/books/secure-coding/&quot; rel=&quot;nofollow&quot;&gt;Secure Coding in C and C++&lt;/a&gt;&quot; sums up my understanding of the situation:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;An integer overflow occurs when an&#xA;  integer is increased beyond its&#xA;  maximum value or decreased beyond its&#xA;  minimum value&lt;sup&gt;3&lt;/sup&gt;.  Integer overflows are&#xA;  closely related to the underlying&#xA;  representation.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The footnote goes on to say:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;[3] Decreasing an integer beyond its&#xA;  minimum value is often referred to as&#xA;  an integer &lt;em&gt;underflow&lt;/em&gt;, although&#xA;  technically this term refers to a&#xA;  floating point condition.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The reason we call it an integer &lt;em&gt;overflow&lt;/em&gt; is because there just isn't enough &lt;em&gt;space&lt;/em&gt; available in the type to represent the value.  In that sense, it's similar to a buffer overflow (except rather than actually crossing the buffer boundary, it usually exhibits wrap-around behavior.*)  From this perspective, there is no conceptual difference between &lt;code&gt;INT_MIN - 1&lt;/code&gt; and &lt;code&gt;INT_MAX + 1&lt;/code&gt;.  In both cases there simply isn't enough space in the &lt;code&gt;int&lt;/code&gt; data type to represent either value - so what we have is an &lt;em&gt;overflow&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also might be useful to note that in the x86 and x86_64 processor architectures, the flags register includes an &lt;em&gt;overflow&lt;/em&gt; bit.  The overflow bit is set when a signed integer arithmetic operation overflows.  The expression &lt;code&gt;INT_MIN - 1&lt;/code&gt; will set the overflow bit.  (There is no &quot;underflow&quot; bit.)  So clearly, the engineers at AMD and Intel use the term &quot;overflow&quot; to describe the result of an integer arithmetic operation which has too many bits to fit in the data type, regardless of whether the value is numerically too large or too small.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br&gt;&#xA;*In fact, in C, signed integer overflow is actually undefined behavior, but in other languages such as Java, the two's complement arithmetic will wrap around.&lt;/p&gt;&#xA;" OwnerUserId="7733" LastEditorUserId="7733" LastEditorDisplayName="" LastEditDate="2010-12-31T17:46:52.037" LastActivityDate="2010-12-31T17:46:52.037" />
  <row Id="32904" PostTypeId="2" ParentId="32893" CreationDate="2010-12-31T15:11:51.167" Score="1" ViewCount="" Body="&lt;p&gt;In integer math, overflow refers to both too-large and too-small values. In floating point, overflow refers to too large an exponent, and underflow refers to too small an exponent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, for &lt;strong&gt;integer&lt;/strong&gt; types, CPUs have no way to tell the difference between overflow and underflow. Take the following 16-bit add:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  0x8000 (unsigned 32768, or signed -32767)&#xA;+ 0xFFFF (unsigned 65535, or signed -1)&#xA;--------&#xA;  0x7FFF (32767, the carried '1' is lost)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The overflow flag in the CPU would, of course, get set after this add. Using signed math, the result is too &lt;em&gt;small&lt;/em&gt; (-32768). Using unsigned math, the result is too &lt;em&gt;large&lt;/em&gt; (0x17FFF). Since 2's complement math is identical for signed and unsigned types, &lt;code&gt;overflow&lt;/code&gt; is forced to mean both too-large and too-small values.&lt;/p&gt;&#xA;" OwnerUserId="2276" LastActivityDate="2010-12-31T15:11:51.167" />
  <row Id="32905" PostTypeId="2" ParentId="32888" CreationDate="2010-12-31T15:12:13.887" Score="0" ViewCount="" Body="&lt;p&gt;Yes, but only if you do them &lt;strong&gt;all&lt;/strong&gt;.  Otherwise No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some rather tricky issues to solve in the high numbered problems.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-31T15:12:13.887" CommentCount="2" />
  <row Id="32906" PostTypeId="2" ParentId="32840" CreationDate="2010-12-31T15:19:21.883" Score="2" ViewCount="" Body="&lt;p&gt;I got my first computer when I was five (a &lt;a href=&quot;http://en.wikipedia.org/wiki/ZX_Spectrum&quot; rel=&quot;nofollow&quot;&gt;ZX Spectrum&lt;/a&gt; :) and have been programming since then.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I was five, I was a 'copy only programmer' as there was no copy and paste!  I would get a magazine with an article listing the code for a simple program like, 'guess the number'.  I would painstakingly copy out every character.  Then save it onto a tape and run it.  By the 13th attempt, or so, it would run.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Later, I started to create my own programs out of my head.  I adopted copy/paste the moment I had Internet.  When Google arrived on the scene I did it more.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will still copy other peoples code and read it / understand it, however, now, I never copy / paste my own code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've tended to notice that if you copy / paste your own code bad things happen.  For example, you might forget to rename all the variables used, or you're duplicating code that should be refactored somewhere.  Inevitably you're running into some bug patterns.&lt;/p&gt;&#xA;" OwnerUserId="12145" LastEditorUserId="12145" LastEditorDisplayName="" LastEditDate="2010-12-31T15:33:51.703" LastActivityDate="2010-12-31T15:33:51.703" CommunityOwnedDate="2011-01-02T18:21:01.983" CommentCount="2" />
  <row Id="32908" PostTypeId="2" ParentId="32781" CreationDate="2010-12-31T15:38:28.617" Score="1" ViewCount="" Body="&lt;p&gt;It took me a long time to wrap my head around SQL as well. We did some relational theory at university and at the time, that only served to complicate matters. In the end, my learning process was very much trial and error informed by various learning materials and examples that I found useful along the way. Essentially, you will get used to it eventually, and adding a new way of thinking about data and queries will be of some value to your mental development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found that I was able to accelerate my learning by gradually building up a collection of simple scripts demonstrating how to use each language feature and how to achieve certain results on a known table (table definitions included for reference).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Earlier this year I did some formal training involving a data migration project on a messy Oracle database, where I had to gradually piece together fragments from my library to filter the query results in various ways until I had exactly what I wanted, then transform them as necessary, and so on. Some of the queries became very complex and difficult to debug. I doubt I could read them now, but I hope I could arrive at a similar solution again by using my reference building blocks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other ways to increase your intuitive awareness of the declarative and functional spaces are learning set theory and programming languages more suited to a particular paradigm. I'm currently in the process of learning some Haskell, for example, to maintain and improve my mathematical abilities.&lt;/p&gt;&#xA;" OwnerUserId="12146" LastActivityDate="2010-12-31T15:38:28.617" />
  <row Id="32909" PostTypeId="2" ParentId="32872" CreationDate="2010-12-31T15:39:37.120" Score="1" ViewCount="" Body="&lt;p&gt;One of the best books on this is out of print, but still easy to find used (and rather cheaply): &lt;em&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0884052842&quot; rel=&quot;nofollow&quot;&gt;Reliable Software through Composite Design&lt;/a&gt;&lt;/em&gt;, by Glenford J Myers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A much more expensive resource (but in print) is &lt;em&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0138544719&quot; rel=&quot;nofollow&quot;&gt;Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, the book on the C language itself is an excellent guide to programming. It doesn't talk about coupling the way Myers does, but you should definitely have &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131103628&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;K&amp;amp;R&lt;/em&gt;&lt;/a&gt; on your shelf. Note that many large C systems do use OO concepts, including dispatch tables to get many of the same features of polymorphism (such as extensibility).&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2010-12-31T15:39:37.120" />
  <row Id="32910" PostTypeId="2" ParentId="32888" CreationDate="2010-12-31T15:51:32.193" Score="2" ViewCount="" Body="&lt;p&gt;Uh, no, since there's no way of verifying how you solved these problems. It's too easy to cheat.&lt;/p&gt;&#xA;" OwnerUserId="6564" LastActivityDate="2010-12-31T15:51:32.193" CommentCount="5" />
  <row Id="32911" PostTypeId="2" ParentId="32840" CreationDate="2010-12-31T15:51:44.487" Score="3" ViewCount="" Body="&lt;p&gt;I've never copied and pasted code that didn't also introduce a bug into my system.  Just my 5¢.&lt;/p&gt;&#xA;" OwnerUserId="9475" LastActivityDate="2010-12-31T15:51:44.487" CommunityOwnedDate="2011-01-02T18:21:01.983" />
  <row Id="32912" PostTypeId="2" ParentId="32754" CreationDate="2010-12-31T15:55:33.997" Score="10" ViewCount="" Body="&lt;p&gt;I'm going to take the pessimistic and non-traditionally-engineer position on this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Every&lt;/strong&gt; company, no exception, is a candidate for Daily WTF stories.  This is because &lt;strong&gt;every&lt;/strong&gt; person, no exception, no matter what their profession and no matter what their experience, can be a dunderhead in some aspect of their chosen professional life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes.  This includes you, the person reading this.  (If you don't believe this applies to you, I think we've just found one of your areas of incompetence....)&lt;/p&gt;&#xA;" OwnerUserId="10246" LastActivityDate="2010-12-31T15:55:33.997" CommentCount="1" />
  <row Id="32913" PostTypeId="2" ParentId="32893" CreationDate="2010-12-31T15:56:02.817" Score="2" ViewCount="" Body="&lt;p&gt;It's an overflow. An underflow doesn't occur for integer values.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An overflow is when a value is too large (too far from zero) to be represented by the specific type, and an underflwo is when it's too small (too near to zero).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As the integer values closest to zero (1 and -1) can still be represented by any integer variable (assuming a signed integer with more than one bit), an underflow can't occur.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://en.wikipedia.org/wiki/Arithmetic_underflow&quot; rel=&quot;nofollow&quot;&gt;Wikipedia article on underflow&lt;/a&gt; has a quite clear description:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;The term arithmetic underflow (or&#xA;  &quot;floating point underflow&quot;, or just&#xA;  &quot;underflow&quot;) is a condition in a&#xA;  computer program that can occur when&#xA;  the true result of a floating point&#xA;  operation is smaller in magnitude&#xA;  (that is, closer to zero) than the&#xA;  smallest value representable as a&#xA;  normal floating point number in the&#xA;  target datatype. Underflow can in part&#xA;  be regarded as negative overflow of&#xA;  the exponent of the floating point&#xA;  value.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2010-12-31T15:56:02.817" />
  <row Id="32914" PostTypeId="1" CreationDate="2010-12-31T13:38:01.743" Score="5" ViewCount="250" Body="&lt;p&gt;I would like to learn C# programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I already studied it for several weeks and wrote some minor programs with VS2010, and I'm not completely newbie at programming because I worked on STALKER - Shadow of Chernobyl as scripter, but it was LUA.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to become a real programmer. I think C# is a decent way to start with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I already learned about the most commonly used resource sites and got some nice eBooks as well, but unfortunately I don't have time to sit down in front my computer all the time, so my progress is pretty slow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to ask that if someone can recommend me some decent interactive online courses to make my learning progress faster.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know about the &quot;joe grip&quot; course but I don't know if it's worth $39 also it's only for .NET 1.x and 2.0 while I'd like to learn 4.0 so I have no idea what should I do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for the advices. I'm not sure if I will develop web or desktop applications in the future, time will tell. First I need to understand the basics of C# and .NET and get some experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for the eBooks, I downloaded them, but anyway I've already got several eBooks, for example the &lt;a href=&quot;http://www.amazon.com/Programming-C-4-0-ebook/dp/B0043M58UI&quot; rel=&quot;nofollow&quot;&gt;Programming C# 4.0 6th Edition&lt;/a&gt;, what is approx. 900 pages long. I would rather need video tutorials because nowadays I don't have time to read through ten thousands of pages and it's not so exciting either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now finally I've found some nice video tutorials where experienced people explains what they are doing. That's fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I didn't know about that MSDN Virtual Labs, thanks for that too.&lt;/p&gt;&#xA;" OwnerUserId="12182" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-03-15T22:20:25.373" LastActivityDate="2011-03-15T22:20:25.373" Title="C# .NET 4.0 interactive course?" Tags="&lt;c#&gt;&lt;training&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="32915" PostTypeId="2" ParentId="32914" CreationDate="2010-12-31T13:53:35.020" Score="0" ViewCount="" Body="&lt;p&gt;Considering the fact that .NET 4.0 pretty much only builds on top of .NET 3.5 and .NET 3.0, you could learn any of these frameworks and later learn the more advanced .NET 4.0 stuff like Task Parallel Library, asynchrony, co(ntra)variance, and dynamic language support on your own. &#xA;If you are serious about becoming a .NET programmer, however, you ought to learn technologies like WPF and/or Silverlight (depending on whether you plan to build windows or web apps). In my opinion, they both have pretty steep learning curve, and therefore I would recommend taking a course in one (or both) of these if/when you have a decent knowledge of .NET.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-31T16:05:08.207" />
  <row Id="32916" PostTypeId="2" ParentId="32914" CreationDate="2010-12-31T14:39:18.560" Score="0" ViewCount="" Body="&lt;p&gt;I will tell you to pick up &lt;a href=&quot;http://www.manning.com/skeet2/&quot; rel=&quot;nofollow&quot;&gt;C# in Depth, 2n edition&lt;/a&gt; to learn C# 4.0. This books not only tells you what is new, but it also compares how some features have evolved from beginning (from .net 1.0 onwards). Once you are comfortable with C# 4.0 then you progress to web development (that's what I do for living). See how &lt;a href=&quot;http://www.asp.net/mvc/tutorials/mvc-music-store-part-1&quot; rel=&quot;nofollow&quot;&gt;Music Store&lt;/a&gt; is built in &lt;a href=&quot;http://www.asp.net/mvc&quot; rel=&quot;nofollow&quot;&gt;Asp.Net MVC&lt;/a&gt;. You can pick up &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/193518279X&quot; rel=&quot;nofollow&quot;&gt;ASP.Net MVC 2 in Action&lt;/a&gt; to learn basics of ASP.net MVC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I won't suggest you to attend any course. Whenever I have to learn any new technology I pick up 1-2 decent good books, read starting chapter to get basic ideas and try to develop some of my personal scenarios. Besides this I watch some videos which are available on internet. This works for me and I hope the same for you. &lt;/p&gt;&#xA;" OwnerUserId="15795" LastActivityDate="2010-12-31T16:05:08.207" />
  <row Id="32917" PostTypeId="1" CreationDate="2010-12-31T16:15:05.527" Score="2" ViewCount="232" Body="&lt;p&gt;In the next month I have to shift to work on the ubuntu system and writing c/c++ programs. I used to program in windows visual studio for some years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What should I do to prepare the shift suddenly? And how to debug in that system?&lt;/p&gt;&#xA;" OwnerUserId="3791" LastActivityDate="2010-12-31T20:32:34.527" Title="Question about programming in linux." Tags="&lt;experience&gt;" AnswerCount="7" CommentCount="1" FavoriteCount="1" />
  <row Id="32918" PostTypeId="2" ParentId="32914" CreationDate="2010-12-31T16:17:54.013" Score="5" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/aa570323&quot; rel=&quot;nofollow&quot;&gt;MSDN Virtual Labs&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;If you want &lt;em&gt;interactive&lt;/em&gt;, then I would suggest &lt;a href=&quot;http://msdn.microsoft.com/en-us/aa570323&quot; rel=&quot;nofollow&quot;&gt;MSDN's Virtual Labs&lt;/a&gt;.  They are virtual machines all set up along with a short 90 minute project to help  you learn specific features of a language or product.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2010-12-31T16:17:54.013" />
  <row Id="32919" PostTypeId="2" ParentId="32917" CreationDate="2010-12-31T16:21:07.493" Score="2" ViewCount="" Body="&lt;p&gt;Learn your new tools. And if you can choose them yourself, test out a bunch of IDE's and find the one you like the best. With a good integrated IDE, the shift will not be very brutal, and you debug as you do in Visual Studio (but with other key-combinations and other minor differences).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can in Unix develop by using vi or emacs and command line tools like gdb etc, and you find many experienced programmers doing that, but that's a much bigger step than just switching to a new IDE.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2010-12-31T16:21:07.493" />
  <row Id="32920" PostTypeId="2" ParentId="32881" CreationDate="2010-12-31T16:27:55.033" Score="4" ViewCount="" Body="&lt;p&gt;You might want to take a look at the ACM's &lt;a href=&quot;http://www.acm.org/about/code-of-ethics&quot; rel=&quot;nofollow&quot;&gt;&quot;Code of Ethics&quot;&lt;/a&gt; which gives 8 general &quot;moral imperatives&quot; as well as additional professional responsibilities.&lt;/p&gt;&#xA;" OwnerUserId="12109" LastActivityDate="2010-12-31T16:27:55.033" CommentCount="1" />
  <row Id="32921" PostTypeId="2" ParentId="27564" CreationDate="2010-12-31T16:31:14.673" Score="-3" ViewCount="" Body="&lt;p&gt;I would like to have PHP look like &lt;a href=&quot;http://code.google.com/p/php-snow/&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/p/php-snow/&lt;/a&gt;!&lt;/p&gt;&#xA;" OwnerUserId="12150" LastActivityDate="2010-12-31T16:31:14.673" CommunityOwnedDate="2010-12-31T16:31:14.673" />
  <row Id="32922" PostTypeId="2" ParentId="32917" CreationDate="2010-12-31T16:31:31.957" Score="4" ViewCount="" Body="&lt;p&gt;One of the most efficient C/C++ development environments are Emacs, which at least should be considered by anybody in your situation.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It interfaces nicely with gcc output giving easy compilation error corrections.&lt;/li&gt;&#xA;&lt;li&gt;It interfaces nicely with gdb giving easy debugging of programs.&lt;/li&gt;&#xA;&lt;li&gt;Runs both in a graphical session and over a ssh-connection to a remote computer.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-31T16:31:31.957" CommentCount="4" />
  <row Id="32923" PostTypeId="2" ParentId="32840" CreationDate="2010-12-31T16:48:27.543" Score="2" ViewCount="" Body="&lt;p&gt;To me, a Copy/Paste programmer is someone who sees something in another part of the application that is similar to what they need to do, and copies and pastes that code into the section of code they are working on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scenario 1:  They then leave that code exactly as it is without modifying it, and you end up with exact duplicates of code throughout your application.  Not good, but fairly easy to factor our when discovered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scenario 2:  Find similar code, paste into a new part of the application, and change it &lt;em&gt;a little&lt;/em&gt;.  Can be factored out when discovered later, but these little difference become a major pain in the butt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Solution:  Factor out a more generic solution (class, component, what-have-you), and use that new component for both places in the application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you do -- find code on the internet, paste it into the app, and modify it appropriately -- may be fine as long as your application code ends up a cohesive set, and not some kind of Frankenstein Code.  As long as you understand what it's doing, how you to modify it in the future, I don't see a problem.  I think most of us google for solutions when we're trying something we haven't done before.  One of my pet peeves is when people say, &quot;I can't modify this code, I found it on the internet and don't really understand what it does, so we have to leave it exactly as it is.&quot;&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2010-12-31T16:48:27.543" CommunityOwnedDate="2011-01-02T18:21:01.983" />
  <row Id="32924" PostTypeId="2" ParentId="32917" CreationDate="2010-12-31T16:57:39.890" Score="2" ViewCount="" Body="&lt;p&gt;Have a good look at command line tools: make, m4, sed, grep, perl&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read up on the design of Unix-like operating systems; the everything-is-a-device concept which is quite different from the windows approach, the filesystem and the tools-connected-by-pipes way of combining tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Debugging is done with gdb which can be used from within editors like emacs to give a nicer debugging environment. It does pay to learn the gdb commands so that you can use them from a termimal session too.&lt;/p&gt;&#xA;" OwnerUserId="11859" LastActivityDate="2010-12-31T16:57:39.890" CommentCount="1" />
  <row Id="32925" PostTypeId="2" ParentId="32917" CreationDate="2010-12-31T17:06:33.693" Score="1" ViewCount="" Body="&lt;p&gt;I found that &lt;a href=&quot;http://netbeans.org/downloads/index.html&quot; rel=&quot;nofollow&quot;&gt;Netbeans&lt;/a&gt; is quite a robust IDE for C/C++ in Linux (also used it in Ubuntu).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Debugging is really usable and comprehensible.&lt;/li&gt;&#xA;&lt;li&gt;Autocomplete is nice and quick.&lt;/li&gt;&#xA;&lt;li&gt;Custom compiling directives can be added with no hassle in the project's properties.&lt;/li&gt;&#xA;&lt;li&gt;You can easily get it from the Synaptic package manager.&lt;/li&gt;&#xA;&lt;li&gt;And best of all: not having to compile from the command line.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also, I'd start thinking in portability:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Check &lt;a href=&quot;http://www.cygwin.com/&quot; rel=&quot;nofollow&quot;&gt;Cygwin&lt;/a&gt; so you can use most linux libraries in Windows.&lt;/li&gt;&#xA;&lt;li&gt;If you are going to do GUI development, check &lt;a href=&quot;http://www.wxwidgets.org/&quot; rel=&quot;nofollow&quot;&gt;wxWidgets&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10869" LastEditorUserId="10869" LastEditorDisplayName="" LastEditDate="2010-12-31T19:19:50.970" LastActivityDate="2010-12-31T19:19:50.970" CommentCount="1" />
  <row Id="32926" PostTypeId="2" ParentId="32840" CreationDate="2010-12-31T17:08:56.233" Score="1" ViewCount="" Body="&lt;p&gt;No, you are learning, and most people learn through hacking other code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually you will find yourself looking at APIs most of the time. Call yourself a copy/paste programmer when you copy/past &lt;strong&gt;your own code or others'&lt;/strong&gt; out of sloth.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-31T17:08:56.233" CommunityOwnedDate="2011-01-02T18:21:01.983" />
  <row Id="32927" PostTypeId="2" ParentId="32840" CreationDate="2010-12-31T17:26:40.783" Score="1" ViewCount="" Body="&lt;p&gt;I always thought a &quot;copy-paste programmer&quot; referred more to the &quot;style&quot; of programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, a copy-paste programmer might copy paste his own function several times and tweak it a little every time instead of properly designing his program and/or generalizing the initial function more so that the code is present in only one place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, this is what I always thought people meant when saying &quot;copy-paste programmer&quot;, and by this definition, copy-pasting other people's example code is perfectly fine.&lt;/p&gt;&#xA;" OwnerUserId="2099" LastActivityDate="2010-12-31T17:26:40.783" CommunityOwnedDate="2011-01-02T18:21:01.983" />
  <row Id="32928" PostTypeId="2" ParentId="32840" CreationDate="2010-12-31T17:34:44.173" Score="1" ViewCount="" Body="&lt;p&gt;Here's my 5 cents. &#xA;Being a c/p programmer is to some extent defined by your area of expertise. What I mean is, if you're a web developer, you can find dozens of information about the subject with supporting source codes, etc, and not using this code is silly. But, if you are working in the area of i.e. Real-time systems, EDA, cluster systems - finding a sample code that will save your day is almost impossible, it's much easier and efficient to sit and think about a certain algorithm and implement it by yourself.&lt;br&gt;&#xA;If you are a beginner, than of course, the most efficient way of addressing a task is to learn how others have completed it, hence, studying others source code, and using it. That's how I've started, but later, as you mature as a developer, you'll find that most of the available solutions are not that elegant, they have performance issues, or they are simply ugly, and you'll end up writing your own code.&lt;/p&gt;&#xA;" OwnerUserId="6328" LastEditorUserId="6328" LastEditorDisplayName="" LastEditDate="2010-12-31T17:40:32.907" LastActivityDate="2010-12-31T17:40:32.907" CommunityOwnedDate="2011-01-02T18:21:01.983" />
  <row Id="32929" PostTypeId="1" CreationDate="2010-12-31T17:46:26.670" Score="6" ViewCount="276" Body="&lt;h3&gt;Quick Background&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Since learning basic html 5 years ago, I've become completely &lt;strong&gt;obsessed&lt;/strong&gt; with the technology, the logic, and the thrill of solving problems involved with building websites. I am still stuck at a thoroughly  non-programming type job, but would really like to move into the field of web programming/design.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have &lt;em&gt;no&lt;/em&gt; educational background in the field (was trained as a fine artist and tutor), but in the past few years have progressed fully self-taught (and self-motivated) from html to css to php, mysql, jquery, and am now building rich web applications.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;The Question&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;How can I prove to a company that even though I have no education, I have a passion to learn &lt;em&gt;whatever&lt;/em&gt; is thrown my way? ...That essentially I would come at &lt;em&gt;every&lt;/em&gt; issue with not only knowledge, but with a passionate desire to &lt;strong&gt;solve it&lt;/strong&gt;, whether that means tackling a new language or debugging code for hours at a time?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;p.s. Sorry for the stupid title.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="12155" LastActivityDate="2011-01-01T04:06:15.680" ClosedDate="2011-01-01T12:43:23.457" Title="Where is a Web Development Career fueled by Passion?" Tags="&lt;career&gt;&lt;passion&gt;" AnswerCount="10" CommentCount="4" FavoriteCount="3" />
  <row Id="32930" PostTypeId="2" ParentId="32929" CreationDate="2010-12-31T17:47:52.487" Score="8" ViewCount="" Body="&lt;p&gt;Showcase your work by contributing to open source.&lt;/p&gt;&#xA;" OwnerUserId="8726" LastActivityDate="2010-12-31T17:50:57.673" CommentCount="3" />
  <row Id="32932" PostTypeId="2" ParentId="32830" CreationDate="2010-12-31T17:52:51.967" Score="0" ViewCount="" Body="&lt;p&gt;It should be offensive to you as a programmer to work for a company that obviously doesn't value the type of work you produce enough to pay for it and acts so unethically.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Business Software Alliance has a program where you can &lt;a href=&quot;https://reporting.bsa.org/usa/report/add.aspx?&quot; rel=&quot;nofollow&quot;&gt;report&lt;/a&gt; employers who are doing this and the whistle-blower can get a &lt;a href=&quot;http://news.cnet.com/8301-10784_3-9738805-7.html&quot; rel=&quot;nofollow&quot;&gt;cash reward of up to a million dollars&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you aren't feeling vindictive enough to report them. You might consider &quot;Accidentally&quot; leaving a printout of the reporting form or the above linked article on the printer one day.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2010-12-31T17:52:51.967" />
  <row Id="32933" PostTypeId="2" ParentId="32929" CreationDate="2010-12-31T17:59:26.637" Score="2" ViewCount="" Body="&lt;p&gt;if you have the skills and passion many companies will not care about educational background. You might need to start with an internship (low pay) to get initial 'professional' experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;+1 to cartman answer&lt;/p&gt;&#xA;" OwnerUserId="12154" LastActivityDate="2010-12-31T17:59:26.637" />
  <row Id="32934" PostTypeId="2" ParentId="32929" CreationDate="2010-12-31T18:16:13.153" Score="7" ViewCount="" Body="&lt;p&gt;Develop a portfolio that demonstrates your body of work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it is of a high quality, and you can speak/write knowledgeably about the technologies used, you should be fine.&lt;/p&gt;&#xA;" OwnerUserId="9987" LastActivityDate="2010-12-31T18:16:13.153" />
  <row Id="32936" PostTypeId="1" AcceptedAnswerId="32939" CreationDate="2010-12-31T19:17:35.247" Score="1" ViewCount="266" Body="&lt;p&gt;Ive just tried to use atmosphere.java.net (to see what it is) and I am not able to do it. Why is Java .NET so slow? Is it because they used Java in the server and are as incompetent as people whom write questions for SCJP?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does Sun have any competent employee and have you ever saw one ?&#xA;(except the guy from Java Puzzles who made a career, because he made a lot of mistakes in Java API and now can teach us about it.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. I would make it the &quot;community wiki&quot; if I could(to not get massive down-votes) but its not possible here, so hit me if you want to.&lt;/p&gt;&#xA;" OwnerUserId="929" LastEditorUserId="929" LastEditorDisplayName="" LastEditDate="2010-12-31T19:44:24.533" LastActivityDate="2010-12-31T19:44:24.533" ClosedDate="2010-12-31T19:40:02.060" Title="Why is Java .Net so slow?" Tags="&lt;career&gt;&lt;java&gt;&lt;.net&gt;&lt;project-hosting&gt;&lt;slow&gt;" AnswerCount="1" CommentCount="9" FavoriteCount="2" />
  <row Id="32937" PostTypeId="2" ParentId="32929" CreationDate="2010-12-31T19:21:56.393" Score="0" ViewCount="" Body="&lt;p&gt;As İsmail said and IMHO, there is no better &quot;letter of recommendation&quot; than evidence of the involvement of an open source project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I also think it is better to go freelance before joining a company, even if its with small projects, &lt;strong&gt;then, you can let your work do the talk for you&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-31T19:21:56.393" />
  <row Id="32938" PostTypeId="2" ParentId="32830" CreationDate="2010-12-31T19:27:38.057" Score="1" ViewCount="" Body="&lt;p&gt;I live and work in Canada, and am writing from a North American perspective, though it applies pretty much to most &quot;Western&quot; countries. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In places like Canada, the boss may well want to know if they do not, as the legal liability of having unlicensed software on their systems does not make good financial sense. The potential cost of legal action, civil and criminal damages are too high compared the suitable licensing of commercial software. Most software companies offer pricing plans to fit the size of the business customers, for example Microsoft offers several pricing / licensing models, beyond the retail pricing for their software per single unit. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can likely find articles in national IT Management / computing news magazines or websites (e.g. Info World, Computer Weekly, Datamation) about the cost of being caught with pirated software that shows it can be very expensive to not license software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First speak with whoever you normally report to  (i.e your manager or supervisor) about your concerns, since you are not familiar or comfortable talking directly to the boss of the company. If they are an IT Manager they may / should follow-up the issue themselves. If the company has an in-house lawyer, they may also be a suitable person to speak to instead of the boss if you prefer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also agree with the sentiment that if the business' corporate culture is rife with doing illegal things if it saves money, then you may be at risk of experiencing illegal labour practices (ignoring minimum wage laws, not getting paid for national holidays, forced overtime) at work as well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my own experiences and observations, companies that cannot make a profit by operating legally, are both a terrible place to work, and are also prone to failure as they tend to be poorly run businesses as well. This is not just a &quot;Western&quot; view any more, countries like China are starting to crack down on intellectual property (IP) violations, because to continue to be successful globally, they need other countries to trust them with increasingly valuable IP, and additionally it is necessary so Chinese companies can successfully produce and sell their own IP products such as software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I strongly recommend you hunt for a new job, and &lt;strong&gt;after&lt;/strong&gt; you start your new job, feel free to report them to the BSA or national / regional police. Finally, for your own well-being, in my opinion, it is a lot easier to maintain job satisfaction if you respect your employer, and good employers appreciate employees who strive to be ethical. &lt;/p&gt;&#xA;" OwnerUserId="11206" LastActivityDate="2010-12-31T19:27:38.057" />
  <row Id="32939" PostTypeId="2" ParentId="32936" CreationDate="2010-12-31T19:28:26.137" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.downforeveryoneorjustme.com/atmosphere.java.net&quot; rel=&quot;nofollow&quot;&gt;It's not just you.&lt;/a&gt; There's no good way for us to know &lt;em&gt;why&lt;/em&gt; the site is down, but if I had to guess I would say &quot;sunspots&quot;.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2010-12-31T19:28:26.137" CommentCount="6" />
  <row Id="32940" PostTypeId="1" CreationDate="2010-12-31T18:24:12.030" Score="1" ViewCount="149" Body="&lt;p&gt;I hate software editors who pretend to know better what you need and choose for you. Java and c# pretend multiple inheritance is dangerous. That I agree I often use Interface but in some cases I may need multiple inheritance : why not let me choose ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also today you have to choose between RPC call à la Java and Message passing à la Objective C. Again can't I choose when one or the other is more practical ? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So is there any language on earth which will free me from what I want to choose to use dependending on MY context and MY own judgement ?&lt;/p&gt;&#xA;" LastActivityDate="2010-12-31T19:36:42.357" ClosedDate="2010-12-31T20:12:44.723" Title="Which language unifies OOP, both RPC call and Message passing a la Smalltalk, and more ..." Tags="&lt;c#&gt;&lt;java&gt;&lt;javascript&gt;&lt;objective-c&gt;&lt;ruby&gt;" AnswerCount="1" CommentCount="8" />
  <row Id="32941" PostTypeId="2" ParentId="32940" CreationDate="2010-12-31T18:37:57.903" Score="3" ViewCount="" Body="&lt;p&gt;Different tools do different things for different purposes.  Java and C# don't necessarily say that multiple inheritance is &quot;dangerous&quot; or that you should never use it, they simply don't natively support it.  Other tools do.  If your design requires multiple inheritance, or you would prefer to use it for a given design, then those tools aren't up to the task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you're asking here is akin to asking: &quot;With all the different things carpenters do, such as measuring and cutting wood or driving nails and screws or painting and other finish work, why hasn't someone invented a tool that can do all of those things?  It's such a hassle to carry around so many different tools for one profession.  Why much I choose between a hammer and a screwdriver?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no single tool which will &quot;free [you] from what [you] want to choose to use depending on [your] context and [your] own judgment.&quot;  What you need to do instead is take one more step back (what's another layer of abstraction, after all?) and re-adjust your picture.  You have all the choice in the world, because you have all the tools at your disposal.  Just apply them appropriately and expertly.&lt;/p&gt;&#xA;" OwnerUserId="6335" LastActivityDate="2010-12-31T19:36:42.357" CommentCount="1" />
  <row Id="32942" PostTypeId="2" ParentId="32830" CreationDate="2010-12-31T19:49:07.860" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Search for free/open source alternatives.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't get them to understand that what they are doing is illegal, search for another job.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2010-12-31T19:49:07.860" />
  <row Id="32943" PostTypeId="2" ParentId="32917" CreationDate="2010-12-31T20:00:50.170" Score="2" ViewCount="" Body="&lt;p&gt;I believe the majority of Unix / Linux programmers still tend to use the mix of editor (&lt;a href=&quot;http://oreilly.com/catalog/9780596529833/&quot; rel=&quot;nofollow&quot;&gt;vim&lt;/a&gt; | &lt;a href=&quot;http://oreilly.com/catalog/9780596006488&quot; rel=&quot;nofollow&quot;&gt;emacs&lt;/a&gt;), make, and &lt;a href=&quot;http://gcc.gnu.org/&quot; rel=&quot;nofollow&quot;&gt;gcc&lt;/a&gt;/gdb for C and C++ programming. Well, at least I do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The two most common C libraries are the Standard C Library (normally &lt;a href=&quot;http://www.gnu.org/software/libc/&quot; rel=&quot;nofollow&quot;&gt;glibc&lt;/a&gt; for Linux), and &lt;a href=&quot;http://pubs.opengroup.org/onlinepubs/9699919799/&quot; rel=&quot;nofollow&quot;&gt;POSIX&lt;/a&gt; (IEEE Std 1003.1-2008) / Single Unix Specification from &lt;a href=&quot;http://OpenGroup.org/&quot; rel=&quot;nofollow&quot;&gt;OpenGroup.org&lt;/a&gt; , IEEE, and Austin Group.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The two most popular Unix programming reference books are &lt;a href=&quot;http://basepath.com/aup/&quot; rel=&quot;nofollow&quot;&gt;Advanced UNIX Programming&lt;/a&gt; by Marc J. Rochkind and &lt;a href=&quot;http://www.apuebook.com/&quot; rel=&quot;nofollow&quot;&gt;Advanced Programming in the UNIX Environment&lt;/a&gt;, 2nd edition by (the &lt;a href=&quot;http://dan.drydog.com/6bone/w.richard.stevens.obituary.html&quot; rel=&quot;nofollow&quot;&gt;late&lt;/a&gt;) &lt;a href=&quot;http://www.kohala.com/start/&quot; rel=&quot;nofollow&quot;&gt;W. Richard Stevens&lt;/a&gt; and Stephen A. Rago. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Learn how to write &lt;a href=&quot;http://www.gnu.org/software/make/&quot; rel=&quot;nofollow&quot;&gt;Makefile&lt;/a&gt;'s and life without an IDE will seem sane. But bear down and learn &lt;a href=&quot;http://sourceware.org/autobook/&quot; rel=&quot;nofollow&quot;&gt;autotools&lt;/a&gt; if you need to support multiple Unix/Linux platforms. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also recommend &lt;a href=&quot;http://sourceforge.net/apps/mediawiki/cppcheck/&quot; rel=&quot;nofollow&quot;&gt;cppcheck&lt;/a&gt; and &lt;a href=&quot;http://valgrind.org/&quot; rel=&quot;nofollow&quot;&gt;valgrind&lt;/a&gt; as additional development debugging tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not familiar with the IDE options enough to recommend, but I believe Eclipse, NetBeans, and KDevelop each have their followings and I believe are still be maintained / developed.&lt;/p&gt;&#xA;" OwnerUserId="11206" LastActivityDate="2010-12-31T20:00:50.170" CommentCount="1" />
  <row Id="32945" PostTypeId="2" ParentId="32917" CreationDate="2010-12-31T20:14:05.073" Score="1" ViewCount="" Body="&lt;p&gt;I have to echo @Malfist's comment about &lt;a href=&quot;http://www.kdevelop.org/&quot; rel=&quot;nofollow&quot;&gt;KDevelop&lt;/a&gt;. It's by far the best IDE I've used. It's extremely powerful for C/C++ development and the IDE features such as code coloring and such are great and actually something I really miss in Eclipse for java/python.&lt;/p&gt;&#xA;" OwnerUserId="1369" LastActivityDate="2010-12-31T20:14:05.073" />
  <row Id="32946" PostTypeId="2" ParentId="32888" CreationDate="2010-12-31T20:18:19.953" Score="1" ViewCount="" Body="&lt;p&gt;You might talk about skills you learned while solving a &lt;em&gt;specific&lt;/em&gt; problem. But that doesn't mean you should necessarily mention project Euler. Maybe something more like&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Implemented X algorithm using Y technologies to solve Z problem.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1369" LastActivityDate="2010-12-31T20:18:19.953" />
  <row Id="32947" PostTypeId="2" ParentId="32917" CreationDate="2010-12-31T20:32:34.527" Score="2" ViewCount="" Body="&lt;p&gt;Be sure to understand make and makefile dependencies. The syntax will bug you, but understanding the way stuff that is needed is pulled up and changed files cause recompilation will really help. Trust me, on any C/C++ based code above a certain level of complexity, this is vital.&lt;/p&gt;&#xA;" OwnerUserId="6630" LastActivityDate="2010-12-31T20:32:34.527" CommentCount="1" />
  <row Id="32948" PostTypeId="1" AcceptedAnswerId="33031" CreationDate="2010-12-31T20:49:40.703" Score="2" ViewCount="165" Body="&lt;p&gt;I want to build a web app that uses Salesforce.com data, and I want to build it fast. I'm a .NET developer (WPF, C#, ASP.NET MVC). I understand Ruby and RoR fairly well, but I haven't delivered any Rails apps. I'm wondering, is Ruby on Rails a suitable tool for rapidly building Salesforce apps, or is it better for the &quot;traditional&quot; web2.0 stuff like Groupon and Twitter?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, would using RoR help me achieve my fast (e.g., three months) goal over using .NET, which I already know?&lt;/p&gt;&#xA;" OwnerUserId="11102" LastActivityDate="2011-01-01T09:14:43.903" Title="Developing Salesforce apps in Ruby on Rails" Tags="&lt;ruby-on-rails&gt;" AnswerCount="1" />
  <row Id="32949" PostTypeId="2" ParentId="32929" CreationDate="2010-12-31T20:51:34.067" Score="3" ViewCount="" Body="&lt;p&gt;Make a demo site that you can reference on your CV.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2010-12-31T20:51:34.067" />
  <row Id="32950" PostTypeId="2" ParentId="32888" CreationDate="2010-12-31T21:09:07.600" Score="4" ViewCount="" Body="&lt;p&gt;If Project Euler is a bona fide hobby of yours, then it could deserve mention in the hobbies section of your resume, but it's not what I'd personally consider as experience in the common sense of the term.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I were to put it on my resume, it'd likely go near or in the same section that mentions my development blog.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-31T21:09:07.600" />
  <row Id="32951" PostTypeId="1" CreationDate="2010-12-31T21:14:33.587" Score="1" ViewCount="88" Body="&lt;p&gt;I've been working on a my first real project using PyQt lately. I've done just a little bit of work in Qt for C++ but nothing more than just messing around. I've found that the Qt python bindings are essentially just a straight port of C++ classes into python, which makes sense. The issue is that this creates a lot of messy, unpythonic code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example if you look at QAbstractItemModel, there's a lot of hoops you have to go through that forces you to hide the actual python. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was just wondering if there's any intention of writing a python implementation of Qt that isn't necessarily just a wrapper? Either by Nokia or anyone else? I really like Qt but I would love to be able to write more pythonic code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope this is OK to ask here. I'm not trying to start a GUI war or anything.&lt;/p&gt;&#xA;" OwnerUserId="1369" LastActivityDate="2011-01-01T03:47:25.387" Title="PyQt design issues" Tags="&lt;design&gt;&lt;gui&gt;&lt;qt&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="1" />
  <row Id="32952" PostTypeId="2" ParentId="32929" CreationDate="2010-12-31T21:17:38.233" Score="2" ViewCount="" Body="&lt;p&gt;Get out and meet other technology enthusiasts. Portfolios and open source projects are great, but they're nothing compared to a strong personal relationship. Network. Inspire and be inspired by other people. Your enthusiasm will be most obvious face-to-face. Once you establish a few relationships, those technology friends will be invaluable at spotting interesting opportunities or providing introductions and recommendations when it's appropriate.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Go to conferences&lt;/li&gt;&#xA;&lt;li&gt;Attend user groups &lt;/li&gt;&#xA;&lt;li&gt;Your profile mentions that you're an artist and musician. Double your pleasure by attending cool events that bridge the gap between art and technology (Rhizome's &lt;a href=&quot;http://www.rhizome.org/sevenonseven/&quot; rel=&quot;nofollow&quot;&gt;Seven on Seven&lt;/a&gt; is one example).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9302" LastEditorUserId="9302" LastEditorDisplayName="" LastEditDate="2010-12-31T21:55:40.070" LastActivityDate="2010-12-31T21:55:40.070" />
  <row Id="32953" PostTypeId="1" CreationDate="2010-12-31T21:18:18.340" Score="4" ViewCount="211" Body="&lt;p&gt;Data validation, whether it be domain object, form, or any other type of input validation, could theoretically be part of any development effort, no matter its size or complexity. I sometimes find myself writing informational or error messages that might seem harsh or demanding to unsuspecting users, and frankly I feel like there must be a better way to describe the validation problem to the user.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I know that this topic is subjective and argumentative.&lt;/strong&gt; I've migrated this question from StackOverflow where I originally asked it with little response.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, I'm looking for good resources on data validation and user feedback that results from it at a theoretical level. Topics and questions I'm interested in are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Content&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Should I be describing what the user did correctly or incorrectly, or simply what was expected?&lt;/li&gt;&#xA;&lt;li&gt;How much detail can the user read before they get annoyed? (e.g. Is &quot;Username cannot exceed 20 characters.&quot; enough, or should it be described more fully, such as &quot;The username cannot be empty, and must be at least 6 characters but cannot exceed 30 characters.&quot;?)&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Grammar&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How do I decide between phrases like &quot;must not,&quot; &quot;may not,&quot; or &quot;cannot&quot;?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Delivery&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;This can depend on the project, but how should the information be delivered to the user? &lt;/li&gt;&#xA;&lt;li&gt;Should it be obtrusive (e.g. JavaScript alerts) or friendly?&lt;/li&gt;&#xA;&lt;li&gt;Should they be displayed prominently? Immediately (i.e. without confirmation steps, etc.)?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Logging&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you bother logging validation errors?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Internationalization&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Some cultures prefer or better understand directness over subtlety and vice-versa (e.g. &quot;Don't do that!&quot; vs. &quot;Please check what you've done.&quot;). How do I cater to the majority of users?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Accessibility&lt;/strong&gt; (edit)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;This is an extension of the &lt;em&gt;delivery&lt;/em&gt; topic, but what are the best options for providing feedback to the visually impaired (color blindness or full blindness)?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I may edit this list as I think more about the topic, but I'm genuinely interested in proper user feedback techniques. I'm looking for things like research results, poll results, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've developed and refined my own techniques over the years that users seem to be okay with, but I work in an environment where the users prefer to adapt to what you give them over speaking up about things they don't like.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm interested in hearing your experiences in addition to any resources to which you may be able to point me.&lt;/p&gt;&#xA;" OwnerUserId="12162" LastEditorUserId="12162" LastEditorDisplayName="" LastEditDate="2011-01-02T02:30:37.577" LastActivityDate="2011-01-03T13:35:56.793" CommunityOwnedDate="2011-01-02T19:58:05.150" Title="Data validation best practices: how can I better construct user feedback?" Tags="&lt;language-agnostic&gt;&lt;feedback&gt;&lt;theory&gt;&lt;validation&gt;&lt;user-interface&gt;" AnswerCount="8" CommentCount="4" FavoriteCount="1" />
  <row Id="32954" PostTypeId="2" ParentId="32674" CreationDate="2010-12-31T21:25:24.360" Score="0" ViewCount="" Body="&lt;p&gt;Programmers care about functionality, and are perfectly happy to not have gradients and curves when something simpler works just as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What does code look like?  Probably &quot;ugly&quot; by the standards of the OP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a reason that Piet paintings count as art, yet the &lt;a href=&quot;http://www.dangermouse.net/esoteric/piet.html&quot; rel=&quot;nofollow&quot;&gt;Piet programming language&lt;/a&gt; is something nobody uses for real programs.&lt;/p&gt;&#xA;" OwnerUserId="12163" LastActivityDate="2010-12-31T21:25:24.360" />
  <row Id="32955" PostTypeId="2" ParentId="32617" CreationDate="2010-12-31T21:31:28.260" Score="0" ViewCount="" Body="&lt;p&gt;The VB6 checkbox has this capability. The checkbox values can be 0=off, 1=on, 2=grayed&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-12-31T21:31:28.260" />
  <row Id="32956" PostTypeId="1" CreationDate="2010-12-31T21:36:32.660" Score="14" ViewCount="295" Body="&lt;p&gt;People have to eat, even developers of 'free as in beer' software. So I wonder, what are some of the common revenue models that are used by such companies when they aren't directly selling the software? I know one or two (advertising and support contracts) but are there more?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Walter noted, if you know what the pros/cons of the model(s) are then please include them.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2010-12-31T22:31:11.973" LastActivityDate="2011-01-01T18:48:56.563" Title="What are the common revenue models for free-software companies?" Tags="&lt;free-software&gt;&lt;revenue&gt;" AnswerCount="5" CommentCount="6" FavoriteCount="6" />
  <row Id="32957" PostTypeId="2" ParentId="32956" CreationDate="2010-12-31T21:54:05.050" Score="2" ViewCount="" Body="&lt;p&gt;There's the MySQL model: make a great free product, and sell support services off that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A spin on this model is &lt;a href=&quot;http://sb-studio.net/&quot; rel=&quot;nofollow&quot;&gt;Steel Bank Studio&lt;/a&gt; which is a company providing commercial support for an otherwise community-owned product, &lt;a href=&quot;http://sbcl.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Steel Bank Common Lisp&lt;/a&gt;. Nikodemus Siivola, the guy behind SBS, is one of the core hackers for SBCL, but my point is that you don't necessarily have to be the &quot;owner&quot; of a free/open source product to make money from it.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2010-12-31T21:54:05.050" CommentCount="2" />
  <row Id="32958" PostTypeId="2" ParentId="32888" CreationDate="2010-12-31T21:58:06.310" Score="2" ViewCount="" Body="&lt;p&gt;I think if you put in the personal info section (as a hobby or something) it would be completely reasonable.  &lt;/p&gt;&#xA;" OwnerUserId="11814" LastActivityDate="2010-12-31T21:58:06.310" />
  <row Id="32960" PostTypeId="1" CreationDate="2010-12-31T19:36:17.973" Score="9" ViewCount="500" Body="&lt;p&gt;I've &lt;a href=&quot;http://scala-programming-language.1934581.n4.nabble.com/Apache-resigns-from-JCP-tp3081324p3082301.html&quot; rel=&quot;nofollow&quot;&gt;read&lt;/a&gt; that Oracle wants to invest into another language than Java: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;On the other hand, Oracle has been&#xA;  particularly supportive of alternative&#xA;  JVM languages.  Adam Messinger was&#xA;  pretty blunt at the JVM Languages&#xA;  Summit this year about Java the&#xA;  language reaching it's logical end and&#xA;  how Oracle is looking for a 'higher&#xA;  level' language to 'put significant&#xA;  investment into.'&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;But what language could be the one Oracle wants to invest in? Is there another candidate than Scala?&lt;/p&gt;&#xA;" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2010-12-31T23:14:40.363" LastActivityDate="2010-12-31T23:57:59.233" ClosedDate="2011-01-01T15:40:08.627" Title="What could be the Java successor Oracle wants to invest in?" Tags="&lt;programming-languages&gt;&lt;java&gt;&lt;oracle&gt;&lt;scala&gt;&lt;jvm&gt;" AnswerCount="6" CommentCount="3" />
  <row Id="32961" PostTypeId="2" ParentId="32960" CreationDate="2010-12-31T19:47:02.863" Score="1" ViewCount="" Body="&lt;p&gt;Of all of the JVM languages, it's probably not Scala or Clojure. They wouldn't be logical successors to Java because they're a.) functional and b.) too complex for many (as much as I disagree with this, there are a lot of people out there who can't do it). Java was prized as a language that was very straightforward, so they'd have to move forward with something that's about as straightforward.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, you're looking at some of the scripting languages that run on the JVM -- Groovy, JRuby, Jython. They're all viable candidates as a high level replacement for Java for different reasons -- Groovy because of it's similarity to Java, and Jython and JRuby because of their relative maturity and the large community of developers who would easily be able to make the switch (a lot of Rails and Python guys out there).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, Oracle could be looking much farther into the future at languages that we haven't even heard of yet. Or they could be developing languages of their own. We just don't know. It's also possible that Oracle might run the JVM into the ground -- who knows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I could be wrong about them eschewing functional languages -- Microsoft shocked everyone when F# was mainstreamed as a .NET language. But Microsoft isn't calling it a replacement for C#, either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless, I'm excited to see what they come up with.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-31T22:09:24.970" CommentCount="2" />
  <row Id="32962" PostTypeId="2" ParentId="32960" CreationDate="2010-12-31T19:47:04.790" Score="1" ViewCount="" Body="&lt;p&gt;My strong temptation is to close this as &quot;Not a real question&quot;, but it's the holidays so I'll give an answer.  In approximately decreasing order of use, the most common alternative JVM languages include Jython, JRuby, Groovy, Scala, and Clojure.  One additional possibility is executing JavaScript via the Rhino embedding.  On the off chance Oracle is serious about investing in alternative languages, I'd bet on Jython, with JRuby, Scala, and Rhino possible but much less likely.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-31T22:09:24.970" />
  <row Id="32963" PostTypeId="2" ParentId="32960" CreationDate="2010-12-31T21:40:23.470" Score="5" ViewCount="" Body="&lt;p&gt;PL/SQL for the JVM? I know that it already uses the same over the wire debugging protocol as the JVM.&lt;/p&gt;&#xA;" OwnerUserId="3229" LastActivityDate="2010-12-31T22:09:24.970" CommentCount="2" />
  <row Id="32964" PostTypeId="1" AcceptedAnswerId="32976" CreationDate="2010-12-31T22:15:15.820" Score="23" ViewCount="436" Body="&lt;p&gt;As a programmer, I find myself in the dilemma where I want make my program as abstract and as general as possible. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing so usually would allow me to reuse my code and have a more general solution for a problem that might (or might not) come up again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then this voice in my head says, just solve the problem dummy its that easy! Why spend more time than you have to?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We all have indeed faced this question where Abstraction is on your right shoulder and Solve-it-stupid sits on the left.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which to listen to and how often? What is your strategy for this? Should you abstract everything?&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2011-01-03T22:39:16.097" Title="Abstraction: The War between solving the problem and a general solution." Tags="&lt;career-advice&gt;&lt;time-management&gt;&lt;problem-solving&gt;&lt;abstraction&gt;" AnswerCount="9" CommentCount="2" FavoriteCount="4" />
  <row Id="32965" PostTypeId="2" ParentId="32964" CreationDate="2010-12-31T22:20:47.623" Score="4" ViewCount="" Body="&lt;p&gt;A good general rule for this kind of thing is Zero, One, Infinity. That is, if you need what you're writing more than once, you can assume you'll need it even more times and generalize. This rule implies that you don't bother with abstraction the first time you write something. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another good reason for this rule is that the first time you write the code, you won't necessarily know what to abstract because you only have one example. Murphy's Law implies that if you write abstract code the first time, the second example will have differences that you didn't anticipate.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2010-12-31T22:20:47.623" CommentCount="4" />
  <row Id="32966" PostTypeId="2" ParentId="32756" CreationDate="2010-12-31T22:21:29.853" Score="1" ViewCount="" Body="&lt;p&gt;Several of the 'rules' you're hearing about using Factories are to assist in making the code more easily modified in the future, not about making it testable now.  Take a look at the parameters that you are sending to the FormField constructor:  'length=20&amp;amp;label=Name:'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That argument is now effectively 'hard-coded', &amp;amp; 'client-side'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means that if you have 10 other widgets, each of those 10 would duplicate that 'new'.  If you later decide that you want to change the label from 'Name' to something else, or to increase the length to 25, you have to go back and change the code in 10 places, miss 1 and you have a bug which could show up as a weird layout issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using a factory to call that new, allows those 10 calls to all call one factory method, and in the case I just described only the factory method would need to change.&lt;/p&gt;&#xA;" OwnerUserId="11376" LastActivityDate="2010-12-31T22:21:29.853" CommentCount="3" />
  <row Id="32967" PostTypeId="2" ParentId="31548" CreationDate="2010-12-31T22:35:07.153" Score="2" ViewCount="" Body="&lt;p&gt;The first thing that you have listed is the most important:  &quot;many different user experiences: website, mobile, etc.&quot;  This suggests that you're going to want to support &lt;strong&gt;multiple&lt;/strong&gt; technology stacks (iPhone, Android, Web, etc.).  Since that's the case, you'll want to write things that can easily interoperate with each other through well understood standards.  Consider architectural technologies like REST, and try to separate well your back end storage from your processing machine, from your front end web servers, and the mobile devices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Survey the platforms to find out which technologies are best on them, then choose the ones where you have more flexibility (like web servers) later.  Finally, consider the scale of your project.  Some languages will save you time in writing and debugging, but will kill you on performance, especially for large-scale projects.  You can find many stories about how large-scale Python and Ruby on Rails deployment had crushing performance.&lt;/p&gt;&#xA;" OwnerUserId="11376" LastActivityDate="2010-12-31T22:35:07.153" CommentCount="1" />
  <row Id="32968" PostTypeId="2" ParentId="32929" CreationDate="2010-12-31T22:38:55.277" Score="0" ViewCount="" Body="&lt;p&gt;There is no reason for you not to take some college classes to enhance your resume. If you want to test the waters, try some junior college classes. In the process you may get a degree and in the interim you will be enhancing your resume.&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2010-12-31T22:38:55.277" />
  <row Id="32969" PostTypeId="2" ParentId="8093" CreationDate="2010-12-31T22:41:07.473" Score="1" ViewCount="" Body="&lt;p&gt;For optimization problems, it's good to understand log-likelihood. For example, if you're trying to minimize a sum of squares, that's the same as maximizing the log of the likelihood, because (roughly speaking) &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;log( Product( exp( -(x[i]-mean)^2 )) )&#xA;  =&#xA;  - Sum( (x[i]-mean)^2 )&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Other favorites in the realm of performance tuning are Binomial and Beta distributions. They are very simple to calculate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you take take 10 random-time samples of the state of a program, and it is in a certain condition for F = 40% of the time, then it is just like a coin-toss experiment with an unfair coin. The number of times you will see it in that condition is a Binomial distribution with mean 10*0.4 = 4, and standard deviation of sqrt(10*0.4*0.6) = sqrt(2.4) = 1.55.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand if you take 10 samples and happen to see it in that condition on 4 samples, what does that tell you about how big F is? The possible outcomes are 0, 1, 2, 3, 4, ..., 9, 10. That's 11 possibilities, and the possibility you saw (4) is the 5th one. So, take 11 uniform(0,1) random numbers, and sort them. The distribution of the 5th one is the distribution of F, a Beta distribution. Its mode is 4/10. Its mean is 5/11. Its variance is 5*6/(11^2*12) = 0.021, and standard deviation = 0.144.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many people think large numbers of samples are needed to locate software performance problems and avoid finding false ones. These distributions show that a small number of samples can reveal a lot about their cost.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2010-12-31T22:41:07.473" />
  <row Id="32970" PostTypeId="1" CreationDate="2010-12-31T21:44:26.273" Score="6" ViewCount="225" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/25046/is-recursion-an-instance-of-being-too-clever-when-programming&quot;&gt;Is recursion an instance of being &amp;ldquo;too clever&amp;rdquo; when programming?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;A coworker and I were discussing the practical use of recursion in business / database driven applications. I have only worked in the software world for a few months and thought I would get some insight into where recursion presents a practical implementation in the real-world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" LastActivityDate="2010-12-31T23:36:08.703" ClosedDate="2011-01-02T21:35:35.720" Title="Practicality of recursion in business applications" Tags="&lt;language-agnostic&gt;&lt;recursion&gt;" AnswerCount="9" CommentCount="3" />
  <row Id="32971" PostTypeId="2" ParentId="32970" CreationDate="2010-12-31T21:48:35.567" Score="2" ViewCount="" Body="&lt;p&gt;In some languages used in the real world (e.g. erlang) recursion is the only sensible way to make loops. So anything written in them would count as real world applications that use recursion. See &lt;a href=&quot;http://stackoverflow.com/questions/690875/real-world-applications-of-erlang&quot;&gt;this question&lt;/a&gt; for a list of Erlang ones.&lt;/p&gt;&#xA;" OwnerUserId="18024" LastActivityDate="2010-12-31T22:41:59.730" />
  <row Id="32972" PostTypeId="2" ParentId="32970" CreationDate="2010-12-31T21:49:08.743" Score="9" ViewCount="" Body="&lt;p&gt;Think searching for files on your computer. You toggle the &quot;search all subdirectories&quot; option, and off it goes, returning every single jpeg of cats on your PC. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might go years and years and never write a recursive function, and there's nothing at all wrong with you or your programming career if that's the case. But if you're searching through directories or walking a tree structure or finding a path or doing any number of things, you might find that the process lends itself fairly well to recursion.&lt;/p&gt;&#xA;" OwnerUserId="3754" LastActivityDate="2010-12-31T22:41:59.730" />
  <row Id="32973" PostTypeId="2" ParentId="32970" CreationDate="2010-12-31T21:53:30.210" Score="1" ViewCount="" Body="&lt;p&gt;Nothing wrong with using recursion in real world production software as long as you are careful to make sure that it doesn't go to deep and overflows the stack.  &lt;/p&gt;&#xA;" OwnerUserId="11814" LastActivityDate="2010-12-31T22:41:59.730" CommentCount="1" />
  <row Id="32974" PostTypeId="2" ParentId="32970" CreationDate="2010-12-31T22:02:38.437" Score="4" ViewCount="" Body="&lt;p&gt;Anything hierarchical, for example a tree view is almost certainly generated with recursion. xml files are often parsed recursively.&lt;/p&gt;&#xA;" LastActivityDate="2010-12-31T22:41:59.730" CommentCount="3" />
  <row Id="32975" PostTypeId="2" ParentId="32877" CreationDate="2010-12-31T22:49:36.433" Score="0" ViewCount="" Body="&lt;p&gt;From my own personal experience, I would argue that we are good capture the design of software. We have a database of requirement and design documents for every single feature that we have ever implemented on our platform. I suppose my circumstance maybe unique. Here are some things to think about though. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every single person on my team has an engineering degree...mostly EE or CE. Engineering teaches you design as part of the curriculum. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that there a lot of so called software engineers that come from CS backgrounds. Software design is not an integral part of of most CS programs. I am not saying that all CS majors are bad at design, but I would wager that most have no formal education that taught it them. I think a lot of people assume that if you can program that you can design software, which is not true. Given that many programmers don't have an engineering background it is not really surprising that many software projects don't have a team that is good at capturing design.  &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2010-12-31T22:49:36.433" CommentCount="4" />
  <row Id="32976" PostTypeId="2" ParentId="32964" CreationDate="2010-12-31T22:52:32.080" Score="21" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Which to listen to and how often? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Never abstract until you must.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Java, for example, you must use interfaces.  They're an abstraction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Python you don't have interfaces, you have Duck Typing, and you don't need towering levels of abstraction.  So you just don't.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What is your strategy for this? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Don't abstract until you've written it three times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once is -- well -- once.  Just solve it and move on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Twice is the indication that there may be a pattern here.  Or there may not.  It can just be coincidence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thrice is the start of a pattern.  Now it transcends coincidence.  You can now abstract successfully.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Should you abstract everything?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Indeed, you should never abstract anything until you have absolute proof that you're doing the right kind of abstraction.  Without the &quot;Rule of Three Repetitions&quot;, you'll write stuff that's uselessly abstracted in a way that's unhelpful.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Doing so usually would allow me to reuse my code&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is an assumption that's often false.  Abstraction may not help at all.  It can be done badly.  Therefore, don't do it until you must.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2010-12-31T22:52:32.080" CommentCount="4" />
  <row Id="32977" PostTypeId="2" ParentId="3884" CreationDate="2010-12-31T22:56:24.210" Score="0" ViewCount="" Body="&lt;p&gt;Many years ago, when I worked for the US DOT's Transportation System Center, I was given the task of developing an Nassi-Shneiderman editor which was then used to document software designs within the department. That was a fun project. I had to figure out how to draw vector graphics on a machine that only supported a text-mode display. Luckily, the font could be reprogrammed on the fly. The result was crude, TRS-80 style graphics. But it worked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I never used them. I prefer to look at code.&lt;/p&gt;&#xA;" OwnerUserId="4363" LastEditorUserId="4363" LastEditorDisplayName="" LastEditDate="2010-12-31T23:02:12.923" LastActivityDate="2010-12-31T23:02:12.923" />
  <row Id="32978" PostTypeId="2" ParentId="32964" CreationDate="2010-12-31T22:59:53.610" Score="15" ViewCount="" Body="&lt;p&gt;Ah, YAGNI.  The most abused concept of programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a difference between making your code generic and doing extra work.  Should you spend extra time to make your code loosely coupled and easily adapted to do other things?  Absolutely.  Should you spend time implementing unneeded functionality?  No.  Should you spend time making your code work with other code that hasn't been implented yet?  No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As the saying goes &quot;Do the simplest thing that could possibly work&quot;.  The thing is that people always confuse &lt;em&gt;simple&lt;/em&gt; with &lt;em&gt;easy&lt;/em&gt;.  Simplicity takes work.  But it is worth the effort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you go overboard?  Of course.  But my experience is that few companies need more of a &quot;get it done now&quot; attitude than they already have.  Most companies need more people who will think things through ahead of time.  Otherwise, they always end up having a self-sustaining problem where no one ever has time for anything, everyone is always in a rush, and no one gets anything done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think about it this way:  chances are good that your code is going to be used again somehow.  But you're not going to correctly predict that way.  So make your code clean, abstract, and loosely coupled.  But don't try to make your code work with any specific pieces of functionality that don't exist yet.  Even if you know it will exist in the future.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2010-12-31T22:59:53.610" CommentCount="1" />
  <row Id="32979" PostTypeId="2" ParentId="32970" CreationDate="2010-12-31T23:09:04.997" Score="4" ViewCount="" Body="&lt;p&gt;A &lt;em&gt;huge&lt;/em&gt; amount of business data consists of trees - work breakdown structures, bills of material, organizational structures, etc.  Recursion is perfect for dealing with hierarchies.&lt;/p&gt;&#xA;" OwnerUserId="12165" LastActivityDate="2010-12-31T23:09:04.997" />
  <row Id="32981" PostTypeId="2" ParentId="8093" CreationDate="2010-12-31T23:14:24.980" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Mathematical_proof&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Methods of Proof&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most notably, the ones I've used with relative frequency:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Mathematical_proof#Proof_by_exhaustion&quot; rel=&quot;nofollow&quot;&gt;Proof by exhaustion&lt;/a&gt; (often overlooked, but considering the power of machines these days, it's often more viable than some would think)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Mathematical_proof#Proof_by_mathematical_induction&quot; rel=&quot;nofollow&quot;&gt;Proof by induction&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Mathematical_proof#Proof_by_contradiction&quot; rel=&quot;nofollow&quot;&gt;Proof by contradiction&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There are more, and I have used many of them at one point or another, but these are the 3 that I can recall having used at a glance. They're also infinitely helpful if you can keep their &lt;em&gt;intent&lt;/em&gt; in mind when writing unit or integration tests.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2010-12-31T23:14:24.980" />
  <row Id="32982" PostTypeId="2" ParentId="32960" CreationDate="2010-12-31T23:14:49.800" Score="9" ViewCount="" Body="&lt;p&gt;I think Scala is the logical successor to Java. Whether Oracle decides to invest in it is anyone's guess. Oracle's investment in a JVM language might increase that language's chances of success, but probably not. Success is more likely to come about because developers like a given language than because Oracle backs it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;Scala is too complex&quot; argument does not hold water with me. I am an experienced, professional Java developer, and since discovering Scala a few years ago, and using it as frequently as possible for the past year or so, it has become my go-to language. At this point, I would always prefer to use Scala over Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's not because of implicits, higher kinded types or delimited continuations. It's not because Scala is in fashion at the moment. It is because anything I can do in Java, I can do more easily in Scala.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's inaccurate to say Scala is a &quot;functional language&quot; like Haskell or Clojure. You can write Scala that is pretty close to Java without the semicolons and less type boilerplate if you want. That's already a win.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And iteration over collections? So much nicer in Scala, and that dash of functional programming is not hard for a Java developer to grasp and use effectively. So you could be writing code that deploys to the same Java infrastructure your company already uses, but doing it more quickly and with fewer bugs. Even if you never go further than that with Scala, it's a win.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When people say &quot;Scala is too complex&quot;, I hear &quot;Scala offers much more than Java&quot;. It does. But that can only be a good thing. Take the bits you need and leave the bits you don't. The ceiling is certainly higher in Scala than Java in terms of what you can accomplish, but that doesn't mean that writing yet another Spring application in Scala is any more complex than the Java equivalent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't see Oracle as a particularly good judge of what is good technology, nor as a harbinger of what is to come. Nor do I see them inventing the next JVM language in-house. They are amazingly successful at the business of software, so their decisions will continue to be based on that. Honestly I'm surprised they haven't already bought SpringSource (or VMWare), and Groovy would come along with that. Personally I think there will always be a need for a statically typed language for building large complicated systems, but maybe Oracle wants to get into the scripting language market.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether or not Oracle embraces Scala, and what effect that may have on the language in the big picture is anyone's guess. Personally, I hope they leave it alone because Scala is gaining ground in the right place already, which is developer mindshare. Smart developers are checking out Scala every day and liking what they see. That adoption is a far more telling indicator than a giant megacorporation making a decision by committee that some technology is The Next Big Thing(tm).&lt;/p&gt;&#xA;" OwnerUserId="12166" LastActivityDate="2010-12-31T23:14:49.800" />
  <row Id="32983" PostTypeId="2" ParentId="32964" CreationDate="2010-12-31T23:14:53.453" Score="2" ViewCount="" Body="&lt;p&gt;Eric Lippert points out three things that I think apply in his article &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2009/01/16/future-proofing-a-design.aspx&quot; rel=&quot;nofollow&quot;&gt;future proofing a design&lt;/a&gt;. I think if you follow it you will be in good shape.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;First: Premature generality is&#xA;  expensive.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Second: Represent in your model only those things which are always in the problem domain and whose class relationships are unchanging.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Third: Keep your policies away from your mechanisms.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-12-31T23:14:53.453" />
  <row Id="32984" PostTypeId="2" ParentId="32964" CreationDate="2010-12-31T23:19:31.230" Score="5" ViewCount="" Body="&lt;p&gt;Just to be clear, making something generalized and implementing an abstraction are two different thing entirely. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, consider a function that copies memory. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The function is an abstraction that hides how the the 4 bytes are copied.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;int copy4Bytes(char * pSrc, char * pDest)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A generalization would be making this function copy any number of bytes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;int copyBytes(char * pSrc, char * pDest, int numBytesToCopy)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The abstraction lends itself to reuse, while the generalization just makes the abstraction useful in more cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More specifically related to your question, Abstraction is not only useful from a code reuse perspective. Often times if done correctly it will make your code more readable and maintainable. Using the example above, what is easier to read and understand if you are skimming through code copyBytes() or a for loop iterating through an array moving data one index at a time? Abstraction can provide a sort a self documentation that in my opinion makes the code easier to work with.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As my own rule of thumb, if I can come up with a good function name that describes exactly what I intend a piece of code to do then I write a function for it regardless of whether or not I think I will use it again.&lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2010-12-31T23:30:09.503" LastActivityDate="2010-12-31T23:30:09.503" CommentCount="1" />
  <row Id="32985" PostTypeId="2" ParentId="32970" CreationDate="2010-12-31T23:23:34.317" Score="0" ViewCount="" Body="&lt;p&gt;Most recursive functions in most languages actually can be better written with an iterative solution instead. By better I mean not writing code that is a StackOverflow exception waiting to happen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See these Eric Lippert articles &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2004/05/19/how-not-to-teach-recursion.aspx&quot; rel=&quot;nofollow&quot;&gt;How Not To Teach Recursion&lt;/a&gt;&lt;br&gt;&#xA;Or this series parts &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2005/07/25/recursion-part-zero.aspx&quot; rel=&quot;nofollow&quot;&gt;0&lt;/a&gt; &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2005/07/27/recursion-part-one-recursive-data-structures-and-functions.aspx&quot; rel=&quot;nofollow&quot;&gt;1&lt;/a&gt; &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2005/08/01/recursion-part-two-unrolling-a-recursive-function-with-an-explicit-stack.aspx&quot; rel=&quot;nofollow&quot;&gt;2&lt;/a&gt; &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2005/08/04/recursion-part-three-building-a-dispatch-engine.aspx&quot; rel=&quot;nofollow&quot;&gt;3&lt;/a&gt; &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2005/08/08/recursion-part-four-continuation-passing-style.aspx&quot; rel=&quot;nofollow&quot;&gt;4&lt;/a&gt; &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2005/08/11/recursion-part-five-more-on-cps.aspx&quot; rel=&quot;nofollow&quot;&gt;5&lt;/a&gt; &lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/archive/2005/08/15/recursion-part-six-making-cps-work.aspx&quot; rel=&quot;nofollow&quot;&gt;6&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="162" LastActivityDate="2010-12-31T23:23:34.317" />
  <row Id="32986" PostTypeId="2" ParentId="32960" CreationDate="2010-12-31T23:24:47.487" Score="2" ViewCount="" Body="&lt;p&gt;Scala has too much abstraction to be a full replacement for Java.  For example there are no explicit concepts of fields or static methods.  For application developers the abstractions Scala provides are probably better 99% of the time, but there are times when it is necessary.  In many ways Java is just a couple steps up from bytecode, and gives you a lot of control.  Kind of like C/C++ relative to native code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The added abstraction makes is harder, if not impossible, to write really low level code.  It also makes using things like reflection more difficult (at least Java reflection), because reflection follows the underlying structure of the class as opposed the way it is expressed in the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The above arguments apply even more strongly to the dynamic languages on the JVM.  Frankly I don't think Java is going away.  It will gradually become more of a systems programming language, which means less people writing code in it but still a fair amount of importance.  It also provides kind of a lowest common denominator for interoperability among JVM languages.  I think it would be hard for a language like Scala that is so packed with abstraction and creative class generation to provide that role.&lt;/p&gt;&#xA;" OwnerUserId="12165" LastActivityDate="2010-12-31T23:24:47.487" CommentCount="2" />
  <row Id="32987" PostTypeId="2" ParentId="32970" CreationDate="2010-12-31T23:27:41.050" Score="0" ViewCount="" Body="&lt;p&gt;Recursion is extremely dangerous if not bounded. While I think hierarchal structures lends themselves to recursion well, if you have a data set with an undetermined size I am not sure how you could possible guarantee the safety of the implementation. At some point it is highly likely that will have stack overflow. All recursive algorithms can be implemented iteratively.  &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2010-12-31T23:27:41.050" CommentCount="3" />
  <row Id="32988" PostTypeId="2" ParentId="32970" CreationDate="2010-12-31T23:31:00.050" Score="1" ViewCount="" Body="&lt;p&gt;I can give off the top of my head two real world examples were I have used recursion in in a database driven business application:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Finding controls in a deeply nested set of dynamics controls.&lt;/li&gt;&#xA;&lt;li&gt;Building up a site-map tree from &quot;virtual pages&quot; that are simply records in a a database.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There are plenty of real world uses for recursion, remember its just another tool in your programmers toolbox.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2010-12-31T23:31:00.050" />
  <row Id="32989" PostTypeId="2" ParentId="32970" CreationDate="2010-12-31T23:36:08.703" Score="2" ViewCount="" Body="&lt;p&gt;If you have a tree in your data somewhere you probably will have recursion in your program.&lt;/p&gt;&#xA;" OwnerUserId="5555" LastActivityDate="2010-12-31T23:36:08.703" />
  <row Id="32990" PostTypeId="2" ParentId="32964" CreationDate="2010-12-31T23:41:11.540" Score="1" ViewCount="" Body="&lt;p&gt;It depends on why you are coding, the purpose of your project.  If the value of your code is that is solves a concrete problem, then your want to get that done and move on to the next problem.  If there are quick and easy things that you can do to make things easier for future users of the code (including yourself) then by all means, make reasonable accommodations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, there are cases where the code you are writing serves a more generic purpose.  For example, when you are writing a library for other programmers, who will be using it in a wide variety of applications.  The potential users are unknown and you cannot ask them exactly what they want.  But you want to make your library broadly useful.  In such cases I'd spend more time trying to support the general solution.&lt;/p&gt;&#xA;" OwnerUserId="12109" LastActivityDate="2010-12-31T23:41:11.540" />
  <row Id="32991" PostTypeId="2" ParentId="32960" CreationDate="2010-12-31T23:57:59.233" Score="0" ViewCount="" Body="&lt;p&gt;It would be really nice if Haskell was in for a JVM-port.  The mentality in functional languages go well with SQL.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2010-12-31T23:57:59.233" />
  <row Id="32992" PostTypeId="2" ParentId="32953" CreationDate="2011-01-01T00:16:10.197" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Should I be describing what the user did correctly or incorrectly, or simply what was expected?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you don't describe the &quot;incorrectly&quot; and &quot;what was expected&quot;, the user is lost and cannot make a change.  What they did correctly is obvious, since it's not invalid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What they did incorrectly tells them what to change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's expected should tell them what kind of change to make.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How much detail can the user read before they get annoyed? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Varies from user to user.  There's no general answer.  And there's no easy way to know.  Experienced users want short messages.  N00bz need long messages.  And you can't know the user's level of expertise until &lt;strong&gt;after&lt;/strong&gt; they complain about the messages.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How do I decide between phrases like &quot;must not,&quot; &quot;may not,&quot; or &quot;cannot&quot;?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You can't decide.  It's not your choice.  It's your users.  In American English (which doesn't even use &quot;shall&quot; except in legal documents) the differences are minor and vary by user.  Each user has a personal level of discomfort (or comfort).  You can't know the user's level of comfort until &lt;strong&gt;after&lt;/strong&gt; they complain about the messages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally, folks don't like computers telling them way they &quot;must&quot; do.  Other than that, it's individual preferences.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;This can depend on the project, but how should the information be delivered to the user?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Um... This makes no sense.  If the data's invalid, you can't go forward.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Should it be obtrusive (e.g. JavaScript alerts) or friendly?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This makes no sense.  &quot;obtrusive&quot; and &quot;friendly&quot; aren't orthogonal.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Should they be displayed prominently? Immediately (i.e. without confirmation steps, etc.)?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This makes no sense.  If the data's invalid, then they can't go on, so it has to be prominent.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Do you bother logging validation errors?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Talk to your lawyers about the consequences of users making entry errors.  In the medical field, it might matter.  In other fields, it rarely matters.  If you're fine-tuning your presentation, you'll want to log things so you can figure out what the most common error is and re-engineer things so it cannot possibly be made.  If your users are all n00bz (because the app never existed before) you'll need to log things so you can work out the real use cases.  If your users are all experts, don't bother logging.  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;How do I cater to the majority of users?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You can't.  Preferences for support and guidance vary by individual person, their level of expertise and their overall comfort with computers and the application.  Broad cultural generalizations are less important than individual ones.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-01T00:16:10.197" CommentCount="1" />
  <row Id="32993" PostTypeId="2" ParentId="32877" CreationDate="2011-01-01T00:27:29.320" Score="2" ViewCount="" Body="&lt;p&gt;You might be interested in reviewing the software traceability literature. In no particular order:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;CUBRANIC, D., MURPHY, G. C., SINGER, J., AND BOOTH KELLOGG, S. Hipikat: a project memory for software development. Transactions on Software Engineering 31, 6 (2005), 446–65.&lt;/li&gt;&#xA;&lt;li&gt;TANG, A., BABAR, M. A., GORTON, I., AND HAN, J. A survey of the use and documentation of architecture design rationale. In Proc of the 5th Working IEEE/IFIP Conference on Software Architecture (2005).&lt;/li&gt;&#xA;&lt;li&gt;RAMESH, B., POWERS, T., STUBBS, C., AND EDWARDS, M. Implementing requirements traceability: A case study. In Proc of the Int’l Symp on Requirements Engineering (York, 1995).&lt;/li&gt;&#xA;&lt;li&gt;HORNER, J., AND ATWOOD, M. E. Design rationale: the rationale and the barriers. In Proc of the 4th Nordic Conference on Human-Computer Interaction: Changing Roles (Oslo, Norway, 2006).&lt;/li&gt;&#xA;&lt;li&gt;CLELAND-HUANG, J., SETTIMI, R., ROMANOVA, E., BERENBACH, B., AND CLARK, S. Best practices for automated traceability. Computer 40, 6 (June 2007), 27–35.&lt;/li&gt;&#xA;&lt;li&gt;ASUNCION, H., FRANÇOIS, F., AND TAYLOR, R. N. An end-to-end industrial software traceability tool. In Proc of the 6th Joint Meeting of the European Software Eng Conf and the ACM SIGSOFT Int’l Symp on the Foundations of Software Engineering (ESEC/FSE) (Dubrovnik, 2007).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Note that this is just the tip of the iceberg, and I'm sure I've left out some key papers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a separate note, my own work on Arcum was a means for programmers to express to the IDE the use of crosscutting design idioms. Once expressed, programmers could then transform their source code to use alternative implementations:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Macneil Shonle, William G. Griswold, and Sorin Lerner. &lt;a href=&quot;http://www.cs.utsa.edu/~mshonle/fp144-shonle.pdf&quot; rel=&quot;nofollow&quot;&gt;Beyond refactoring: a framework for modular maintenance of crosscutting design idioms&lt;/a&gt;. In Proceedings of the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC-FSE '07; September 3-7, 2007). 175-184.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Incidentally, Arcum is also related to your DMS work.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2011-01-01T00:27:29.320" CommentCount="1" />
  <row Id="32994" PostTypeId="2" ParentId="32425" CreationDate="2011-01-01T00:33:31.310" Score="0" ViewCount="" Body="&lt;p&gt;Have you read Code Complete 2, and The Pragmatic Programmer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This two books taught me a lot more than any course, tutorial, book or video.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is about learning how to build something from scratch with a specific set of tools. But, if you do not know the fundamentals, you can't do anything.&lt;/p&gt;&#xA;" OwnerUserId="9520" LastActivityDate="2011-01-01T00:33:31.310" CommunityOwnedDate="2011-01-01T00:33:31.310" />
  <row Id="32995" PostTypeId="2" ParentId="32929" CreationDate="2011-01-01T00:39:03.837" Score="0" ViewCount="" Body="&lt;p&gt;Include your portfolio with the resume.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got hired as an entry level programmer with no experience and little knowledge. But, I included all of the little programs I had made while learning (from books). That showed them that I was able to at least code &lt;em&gt;something&lt;/em&gt;, and that I was able to learn.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure to read Code Complete 2 and The Pragmatic Programmer books. They will give you the some good basic knowledge (and confidence). &lt;/p&gt;&#xA;" OwnerUserId="9520" LastActivityDate="2011-01-01T00:39:03.837" />
  <row Id="32996" PostTypeId="1" AcceptedAnswerId="33010" CreationDate="2011-01-01T00:42:40.193" Score="3" ViewCount="190" Body="&lt;p&gt;This is kind of a new years thing for me as I want to be more entrepreneurial going forward with programming and this is kind of a general question for anyone who may share the same ambitions as me. I have experience with web programming and, although I work full time for a company doing programming, I have some freelance programmers that I work with / employ for small projects. I want to see about taking things to the next level as far as building a small company doing custom development. I'm just not sure how to figure out what niches to target as far as what type of apps to build as demos, etc. I was thinking mobile (maybe Android or Iphone) but am just curious if anyone has any advice / resources.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of &quot;web development&quot; seems to end up being just using a CMS like Joomla or Wordpress, for smaller sites, so I want to figure a way to steer clear of this crowd and find some opportunity with companies / entrepreneurs who actually need real programming development done to build apps. Thanks for any advice&lt;/p&gt;&#xA;" OwnerUserId="10087" LastActivityDate="2011-01-01T04:12:26.803" Title="Starting small custom development company, type of niches to target?" Tags="&lt;programming&gt;&lt;freelance&gt;&lt;development&gt;&lt;entrepreneurship&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="1" />
  <row Id="32997" PostTypeId="2" ParentId="32953" CreationDate="2011-01-01T00:47:56.977" Score="1" ViewCount="" Body="&lt;p&gt;What I like to do when practical:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the input field is categorically invalid I turn the background red.  If it's currently invalid but could contain an incomplete version of a valid answer then I turn it yellow.  I also display in a nearby location a message describing what's expected and if it's at all complex a message as to why the item is invalid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Example:  The input range is 100-2000.  &quot;1&quot; gets yellow. &quot;3000&quot; gets red.)  &lt;/p&gt;&#xA;" OwnerUserId="5555" LastActivityDate="2011-01-01T00:47:56.977" CommentCount="4" />
  <row Id="32998" PostTypeId="2" ParentId="32964" CreationDate="2011-01-01T00:53:28.073" Score="0" ViewCount="" Body="&lt;p&gt;I'm a big fan of the K.I.S.S. principle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I focus on providing what I'm asked to do, and not on what is the best solution. I had to let go of perfectionism (and O.C.D.), because it made me miserable.&lt;/p&gt;&#xA;" OwnerUserId="9520" LastActivityDate="2011-01-01T00:53:28.073" CommentCount="2" />
  <row Id="32999" PostTypeId="2" ParentId="32786" CreationDate="2011-01-01T00:58:40.580" Score="0" ViewCount="" Body="&lt;p&gt;Just like the Gusteau, a character from the movie Ratatouille said:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone can cook.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the same way, anyone can program. But, not everyone will be great at it. Most programming jobs require an average level of aptitude and competency. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just answer yes. Why? Because most people just want to feel appreciated by someone who they think is smart. &lt;/p&gt;&#xA;" OwnerUserId="9520" LastActivityDate="2011-01-01T00:58:40.580" CommentCount="1" />
  <row Id="33000" PostTypeId="2" ParentId="32490" CreationDate="2011-01-01T01:02:01.827" Score="0" ViewCount="" Body="&lt;p&gt;I use a 99 cent notebook with my trusty Pilot Gel Pen to write programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Them I just re-type into Visual Studio the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing a program and coding are two different things (for me). &lt;/p&gt;&#xA;" OwnerUserId="9520" LastActivityDate="2011-01-01T01:02:01.827" CommunityOwnedDate="2011-01-03T16:15:01.900" CommentCount="3" />
  <row Id="33001" PostTypeId="1" CreationDate="2011-01-01T01:09:03.027" Score="7" ViewCount="158" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/8055/can-a-developer-get-volume-discount-for-microsoft-products&quot;&gt;Can a developer get volume discount for Microsoft products?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I quit high-school a couple of years ago and now I'm studying to get my diploma at a special course the EU created for people in my situation. This course is basically identical to normal high-school the only difference being fewer hours due to the fact that a lot of us have jobs(not me).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to learn windows development and .NET and I've seen around that they offer students some great discounts and even some free tools such as Visual Studio and Windows 7. I'm learning Java on Ubuntu at the moment but I'd like to move to .NET but can't afford Windows or other MS-related tools since I don't have a job and no real income. Can someone in my situation benefit from their offers? &lt;/p&gt;&#xA;" OwnerUserId="12168" LastActivityDate="2011-01-01T22:36:51.540" ClosedDate="2011-01-02T22:02:44.067" Title="Wanting to learn .NET, can I benefit from the MS discounts?" Tags="&lt;.net&gt;&lt;microsoft&gt;" AnswerCount="4" CommentCount="0" />
  <row Id="33002" PostTypeId="2" ParentId="33001" CreationDate="2011-01-01T01:30:49.620" Score="0" ViewCount="" Body="&lt;p&gt;This really depends on where you are from, what is the name of your program, etc. Where I live, only people who study computer science and related fields in a university benefit from these discounts (well, we actually get these things for free). &lt;/p&gt;&#xA;" OwnerUserId="92" LastActivityDate="2011-01-01T01:30:49.620" />
  <row Id="33003" PostTypeId="2" ParentId="33001" CreationDate="2011-01-01T01:31:52.323" Score="9" ViewCount="" Body="&lt;p&gt;To do Microsoft development for free, get one of the &lt;a href=&quot;http://www.microsoft.com/express/Windows/&quot; rel=&quot;nofollow&quot;&gt;Visual Studio Express&lt;/a&gt; editions.  They are fairly complete versions of Visual Studio (not missing any really critical features for a beginner).  You can build websites, console applications, Winforms applications, pretty much whatever you want to do as a beginner.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2011-01-01T01:31:52.323" CommentCount="3" />
  <row Id="33004" PostTypeId="1" AcceptedAnswerId="33047" CreationDate="2011-01-01T01:44:17.557" Score="7" ViewCount="207" Body="&lt;p&gt;I'm using Windows and am comfortable with SVN (well, TortoiseSVN) because it's dead simple. It works for me. However, because it's been working so well, I haven't any reason to try anything else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I bother learning a different system, for example, Mercurial or Git? &lt;/p&gt;&#xA;" OwnerUserId="5624" LastActivityDate="2011-01-01T12:24:56.847" Title="Should I know more than one implementation of version control?" Tags="&lt;version-control&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="33005" PostTypeId="2" ParentId="33001" CreationDate="2011-01-01T01:46:58.180" Score="12" ViewCount="" Body="&lt;p&gt;Microsoft started a program a while back for people such as yourself.  It's called &lt;a href=&quot;https://www.dreamspark.com/default.aspx&quot; rel=&quot;nofollow&quot;&gt;DreamSpark&lt;/a&gt; and I do believe that once you sign up the software available there is free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally MS has a &lt;a href=&quot;http://www.microsoft.com/student&quot; rel=&quot;nofollow&quot;&gt;Student&lt;/a&gt; section of its website which offers all of the code at very discounted prices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would start with these two links.  They'll get you alot of what you are looking for.  Once you get a job programming, if you find yourself working for a startup they also offer a sweet deal for that: &lt;a href=&quot;http://www.microsoft.com/bizspark/&quot; rel=&quot;nofollow&quot;&gt;BizSpark&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2011-01-01T01:46:58.180" CommentCount="3" />
  <row Id="33006" PostTypeId="2" ParentId="33004" CreationDate="2011-01-01T01:53:38.637" Score="2" ViewCount="" Body="&lt;p&gt;Yes - if only so it doesn't throw you too much when you come across them. Git is becoming popular, and you will need to know the command line. Although - if you get to know the SVN command line reasonably, then the transition to other Source control systems will be much easier.&lt;/p&gt;&#xA;" OwnerUserId="6630" LastActivityDate="2011-01-01T01:53:38.637" />
  <row Id="33007" PostTypeId="2" ParentId="33004" CreationDate="2011-01-01T02:07:05.643" Score="4" ViewCount="" Body="&lt;p&gt;It's good to know both one centralized and one distributed source control system. This way you will understand both approaches. Learn &lt;code&gt;subversion&lt;/code&gt; and &lt;code&gt;mercurial&lt;/code&gt; or &lt;code&gt;git&lt;/code&gt; and you should be fine. If you want to use it as &lt;strong&gt;version&lt;/strong&gt; control system (rather than only source control), e.g. for binary files, you can take a look at &lt;code&gt;perforce&lt;/code&gt;, which uses slightly different approach (it requires constant access to the central repo).&lt;/p&gt;&#xA;" OwnerUserId="9753" LastEditorUserId="9753" LastEditorDisplayName="" LastEditDate="2011-01-01T02:36:36.667" LastActivityDate="2011-01-01T02:36:36.667" CommentCount="4" />
  <row Id="33008" PostTypeId="2" ParentId="32996" CreationDate="2011-01-01T02:33:16.310" Score="1" ViewCount="" Body="&lt;p&gt;If you are &lt;em&gt;&quot;not sure how to figure out what niches to target&quot;&lt;/em&gt;, than you probably shouldn't start your own business so fast. Your question is a bit similar to: &quot;I want to create a large commercial software product, but I have no idea about what precisely customers may need. Do you have some grate ideas to give me for free?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Niches to target are defined after a &lt;strong&gt;deep analysis&lt;/strong&gt; of the project you have. Create a &lt;strong&gt;business plan&lt;/strong&gt;, hire some &lt;strong&gt;consultants&lt;/strong&gt; if need; it is the only way you can find how to succeed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, the answer to a question like this is strongly linked to the place you live and &lt;strong&gt;where do you want to sell your products&lt;/strong&gt;, since different countries have different requests in terms of software products. In United States, companies will target one type of things, but it will never work in China, and the things which work great in India will fail in Germany, just because the local market is not identical.&lt;/p&gt;&#xA;" OwnerUserId="6605" LastActivityDate="2011-01-01T02:33:16.310" CommentCount="1" />
  <row Id="33009" PostTypeId="2" ParentId="32929" CreationDate="2011-01-01T02:38:56.960" Score="1" ViewCount="" Body="&lt;p&gt;From your question, it seems like you've already built or worked on some web sites. That's good, you should gather those together and start a portfolio web site showing off your work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next, I would suggest you sign up for something like elance.com or one of those other freelance sites. Initially, you'll have to charge really low rates because a) you'll have very little in your portfolio and b) you'll be competing with people from developing countries who are more than happy to work for peanuts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As your portfolio grows, you'll be able to start charging a little more, but eventually you'll have to move off the freelance sites (the developing-country developers make it &lt;em&gt;very&lt;/em&gt; hard to charge developed-nation rates). If you're still wanting to go the freelance route, then you'll have more luck explicitly looking for local people - go to technology user groups, visit local technology web sites, even careers.stackoverflow.com is not bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you're still interested in a salary job, at least not you'll have plenty of work experience to offset your lack of education. It'll still be hard getting past the HR department of large companies with no formal education, but smaller design studios and development companies will look on your art background as a huge asset and you should have no trouble finding work there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of all, don't give up! Good luck!&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2011-01-01T02:38:56.960" CommentCount="1" />
  <row Id="33010" PostTypeId="2" ParentId="32996" CreationDate="2011-01-01T03:00:57.410" Score="3" ViewCount="" Body="&lt;p&gt;I think I understand your question now, as per your edit. You desire to become essentially, a contract developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that's the case, the most common scenarios I've seen are creating a business, developing a site and running ads in local newspapers and having a website that details what you're capable of. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you personally have experience in a particular field then you would generally contact companies that work in that field and try to direct sell them or visit trade shows and online communities and hand out fliers/business cards detailing what you can do for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had web developers/companies who appeared to have checked companies in my town that have websites made in a stack that they specialize in call me offering to update the look/feel of the site and add functionality - providing examples of existing works they've made. I didn't need them at the time, but I definitely considered them.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2011-01-01T04:12:26.803" LastActivityDate="2011-01-01T04:12:26.803" CommentCount="3" />
  <row Id="33011" PostTypeId="2" ParentId="32951" CreationDate="2011-01-01T03:47:25.387" Score="3" ViewCount="" Body="&lt;p&gt;Take a look at &lt;a href=&quot;http://www.pyside.org/&quot; rel=&quot;nofollow&quot;&gt;PySide&lt;/a&gt;, Nokia's Python bindings for the QT framework.  I can't give you a decent comparison (I only looked into it earlier this year, and opted for PyQt instead due to its maturity), but it looked promising.&lt;/p&gt;&#xA;" OwnerUserId="2294" LastActivityDate="2011-01-01T03:47:25.387" />
  <row Id="33012" PostTypeId="2" ParentId="32786" CreationDate="2011-01-01T03:47:42.560" Score="0" ViewCount="" Body="&lt;p&gt;I think the liking math is important. Not from the standpoint of do you enjoy rigorously proving stuff, which would be required to be a serious mathematician. But, given a problem that is important to you, can you formulate the issues involved in solving it in a mathematical way. I claim, everything a computer does is math, it takes symbolic data of some sort, and performs some sort of operation on it. That is the essence of math. So you gotta be able to abstract things into some sort af mathematical like structure, and reason about the steps forward. Lacking that, you are just hacking, throwing out some code, and hoping it does what you want.  Being able to solve complicated algebra without making typos and getting lost, is probably not so needed. But being able to formulate a plan, is important. I often write ten line programs to verify that my not too complicated math has been doen right. Combining computers with math, for purposes of verification, discovery, and yes to work out the details, when there are a lot of them, is the real key.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2011-01-01T03:47:42.560" />
  <row Id="33013" PostTypeId="1" CreationDate="2011-01-01T03:48:17.723" Score="0" ViewCount="153" Body="&lt;p&gt;Is the meaning technical problems (How-To), especially when programing with a new programming language, or business problems?&lt;/p&gt;&#xA;" OwnerUserId="12172" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2011-01-01T04:15:48.797" LastActivityDate="2011-01-01T06:59:34.277" ClosedDate="2011-01-01T12:42:33.347" Title="What do programmers mean when they say &quot;problem solving&quot;?" Tags="&lt;problem-solving&gt;" AnswerCount="2" CommentCount="4" />
  <row Id="33014" PostTypeId="2" ParentId="32929" CreationDate="2011-01-01T04:06:15.680" Score="1" ViewCount="" Body="&lt;p&gt;The world is your oyster.  I'm being deadly serious.  A competent programmer who &lt;em&gt;likes&lt;/em&gt; doing client-side programming &lt;em&gt;and&lt;/em&gt; has design skill is in very high demand (at least in Silicon Valley).  Now, full disclosure:  I'm not a front-end dev, so I could be taking a &quot;the grass is greener on the other side&quot; mindset.  But I have yet to see a company out here that didn't either:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Desperately want a front-end dev&lt;/li&gt;&#xA;&lt;li&gt;Had one that they treat like a prince or princess.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Not to mention that your work has the most visible impact on your customers.  And that gives you a significant amount of recognition (and unfortunately also more business people making your life miserable).  The only big downside I see is that usually small companies have only 1 front-end dev.  I don't know if that's due to lack of supply or lack of demand though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most important thing is that you prove that you can do cool things (for which you need to have an impressive portfolio) and that you can work with businesspeople (for which you need to ace the interview).  I wouldn't worry &lt;em&gt;too&lt;/em&gt; much about having a degree.  Most companies don't even ask until I'm halfway through their interview process.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2011-01-01T04:06:15.680" />
  <row Id="33015" PostTypeId="1" CreationDate="2011-01-01T04:27:05.433" Score="2" ViewCount="191" Body="&lt;p&gt;Quite some time ago, on December 19 2010, a site called &lt;a href=&quot;http://refactoringmanifesto.org/&quot; rel=&quot;nofollow&quot;&gt;RefactoringManifesto.org&lt;/a&gt; was launched. The site is to voice concerns about refactoring. It lists ten main points as shown below (head over the website to see more details):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;Make your products live longer!&lt;/li&gt;&#xA;  &lt;li&gt;Design should be simple so that it is easy to refactor.&lt;/li&gt;&#xA;  &lt;li&gt;Refactoring is not rewriting.&lt;/li&gt;&#xA;  &lt;li&gt;What doesn't kill it makes it stronger.&lt;/li&gt;&#xA;  &lt;li&gt;Refactoring is a creative challenge.&lt;/li&gt;&#xA;  &lt;li&gt;Refactoring survives fashion.&lt;/li&gt;&#xA;  &lt;li&gt;To refactor is to discover.&lt;/li&gt;&#xA;  &lt;li&gt;Refactoring is about independence.&lt;/li&gt;&#xA;  &lt;li&gt;You can refactor anything, even total crap.&lt;/li&gt;&#xA;  &lt;li&gt;Refactor – even in bad times!&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;What do you think about this? Would you &lt;a href=&quot;http://refactoringmanifesto.org/signatories&quot; rel=&quot;nofollow&quot;&gt;sign the manifesto&lt;/a&gt;? If not, why?&lt;/p&gt;&#xA;" OwnerUserId="6969" LastActivityDate="2011-01-01T10:32:16.947" ClosedDate="2011-01-01T12:43:05.267" Title="What do you think about RefactoringManifesto.org?" Tags="&lt;code-quality&gt;&lt;refactoring&gt;&lt;good-practices&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="2" />
  <row Id="33017" PostTypeId="2" ParentId="33013" CreationDate="2011-01-01T05:17:47.260" Score="3" ViewCount="" Body="&lt;p&gt;Well, I'm a programmer and I mean solving the problem when I use that phrase. The problem could be technical, organization, political, social, whatever. I think the important connotation is to address the issues in a professional manner and not engage in anything destructive (such as character assassination).&lt;/p&gt;&#xA;" OwnerUserId="1142" LastActivityDate="2011-01-01T05:17:47.260" CommentCount="1" />
  <row Id="33018" PostTypeId="2" ParentId="32490" CreationDate="2011-01-01T05:56:42.767" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;blinks&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;He's using pico, a nano clone. I use it occasionally. Usually I use emacs, which is slightly less helpful, but more featured.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't use IDEs as a rule of thumb. Occasionally I've dropped into them for debugging or because the command-line toolchain was a pain to find (looking at you Xilinx). I also use them to sketch out C# in the rare occasion when I do a GUI. But IDEs are not very good editors in my experience: inflexible, weird character chords, not very easy to use, not many languages supported, take too much memory. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd rather use emacs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should look into the history of computing. It's fairly accessibly written and will give you a wonderful perspective on our work.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2011-01-01T05:56:42.767" CommunityOwnedDate="2011-01-03T16:15:01.900" />
  <row Id="33019" PostTypeId="2" ParentId="33013" CreationDate="2011-01-01T06:59:34.277" Score="0" ViewCount="" Body="&lt;p&gt;Well there are many ways to view &quot;problem solving&quot;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Resolving a need&lt;/li&gt;&#xA;&lt;li&gt;Filling a void&lt;/li&gt;&#xA;&lt;li&gt;Identifying issues and removing them&lt;/li&gt;&#xA;&lt;li&gt;Providing solutions to that which is unsolved&lt;/li&gt;&#xA;&lt;li&gt;Getting a computer to do something better, or at least more conveniently, than however it was previously done&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Essentially, it is the process of breaking down processes and obstacles, analysing and identifying them, then designing and implementing solutions; in a word, &lt;em&gt;engineering&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2011-01-01T06:59:34.277" />
  <row Id="33020" PostTypeId="1" AcceptedAnswerId="33023" CreationDate="2011-01-01T07:10:06.650" Score="24" ViewCount="645" Body="&lt;p&gt;&quot;Premature optimization is root of all evil&quot; is something almost all of us have heard/read. What I am curious what kind of optimization not premature, i.e. at every stage of software development (high level design, detailed design, high level implementation, detailed implementation etc) what is extent of optimization we can consider without it crossing over to dark side.&lt;/p&gt;&#xA;" OwnerUserId="8073" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-01-01T20:50:19.850" LastActivityDate="2011-01-14T00:11:29.610" Title="When is optimization not premature and therefore not evil?" Tags="&lt;programming&gt;&lt;software-development&gt;&lt;optimization&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="5" />
  <row Id="33021" PostTypeId="2" ParentId="33020" CreationDate="2011-01-01T07:12:23.897" Score="1" ViewCount="" Body="&lt;p&gt;When you have tests to make sure you don't break anything.&lt;/p&gt;&#xA;" OwnerUserId="712" LastActivityDate="2011-01-01T07:12:23.897" />
  <row Id="33022" PostTypeId="2" ParentId="33020" CreationDate="2011-01-01T07:34:02.077" Score="12" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;what kind of optimization [is] not premature&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The kind that come as a result of known issues.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2011-01-01T07:34:02.077" />
  <row Id="33023" PostTypeId="2" ParentId="33020" CreationDate="2011-01-01T07:45:03.523" Score="41" ViewCount="" Body="&lt;p&gt;When you're basing it off of experience?  Not evil.  &quot;Every time we've done X, we've suffered a brutal performance hit.  Let's plan on either optimizing or avoiding X entirely this time.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When it's relatively painless?  Not evil.  &quot;Implementing this as either Foo or Bar will take just as much work, but in theory, Bar should be a lot more efficient.  Let's Bar it.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you're avoiding crappy algorithms that will scale terribly?  Not evil.  &quot;Our tech lead says our proposed path selection algorithm runs in factorial time; I'm not sure what that means, but she suggests we commit seppuku for even considering it.  Let's consider something else.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The evil comes from spending a whole lot of time an energy solving problems that you don't know actually exist.  When the problems definitely exist, or when the phantom psudo-problems may be solved cheaply, the evil goes away.&#xA;&lt;hr&gt;&#xA;&lt;b&gt;Edit:&lt;/b&gt;  &lt;a href=&quot;http://programmers.stackexchange.com/users/8709/steve314&quot;&gt;Steve314&lt;/a&gt; and &lt;a href=&quot;http://programmers.stackexchange.com/users/4853/matthieu-m&quot;&gt;Matthieu M.&lt;/a&gt; raise points in the comments that ought be considered.  Basically, some varieties of &quot;painless&quot; optimizations simply aren't worth it either because the trivial performance upgrade they offer isn't worth the code obfuscation, they're duplicating enhancements the compiler is already performing, or both.  See the comments for some nice examples of too-clever-by-half non-improvements.&lt;/p&gt;&#xA;" OwnerUserId="17" LastEditorUserId="17" LastEditorDisplayName="" LastEditDate="2011-01-01T21:40:30.350" LastActivityDate="2011-01-01T21:40:30.350" CommentCount="17" />
  <row Id="33024" PostTypeId="2" ParentId="33015" CreationDate="2011-01-01T08:13:39.137" Score="3" ViewCount="" Body="&lt;p&gt;Useless wordplay that praise refactoring without attention to tests.&lt;/p&gt;&#xA;" OwnerUserId="12176" LastActivityDate="2011-01-01T08:13:39.137" />
  <row Id="33025" PostTypeId="2" ParentId="33015" CreationDate="2011-01-01T08:24:11.600" Score="9" ViewCount="" Body="&lt;h1&gt;No&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Refactoring &lt;em&gt;is good&lt;/em&gt; but you have to know where to apply it. You can't refactor everything, and the best use of your time isn't always refactoring. Aim for perfection but accept that you will always fall short in some regard. Note the room for improvement and move on. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Commentary on the points: &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Make your products live longer!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is a good thing? When should I keep clunky ancient code laying around and when should I rewrite?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Design should be simple so that it is easy to refactor.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Advocating for a cleaner initial design isn't bad, I can agree with this.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Refactoring is not rewriting.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Sure, this is true. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What doesn't kill it makes it stronger.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Incorrect. Sometimes what doesn't kill it makes it harder to use, difficult to test, and uselessly redundant. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Refactoring is a creative challenge.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I get paid by the hour, not by how creatively I spent that hour.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Refactoring survives fashion.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Since when is code fashionable? &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;To refactor is to discover.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Discover &lt;em&gt;what&lt;/em&gt;?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Refactoring is about independence.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Independent &lt;em&gt;what&lt;/em&gt;?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;You can refactor anything, even total crap.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No, you can't. You can't take crap and turn it into a meal. In fact, I would object to someone trying to turn crap into anything else. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Refactor – even in bad times!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't understand this point.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2011-01-01T08:24:11.600" CommentCount="4" />
  <row Id="33026" PostTypeId="2" ParentId="33015" CreationDate="2011-01-01T08:27:04.487" Score="2" ViewCount="" Body="&lt;p&gt;No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's just another fad, IMO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Refactoring by itself cannot stand - it needs to be supported by test cases and an awareness of architectural consistency in the codebase. I don't see the point of deifying Refactoring as a standalone activity in the same league as the Agile manifesto. Good developers know when to and will continue to refactor irrespective of fads.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: Note that I am not saying refactoring is bad - just that it's pointless to make it appear like a standalone practice.&lt;/p&gt;&#xA;" OwnerUserId="1539" LastActivityDate="2011-01-01T08:27:04.487" />
  <row Id="33027" PostTypeId="2" ParentId="33020" CreationDate="2011-01-01T08:33:23.160" Score="5" ViewCount="" Body="&lt;p&gt;You should always choose a &quot;good enough&quot; solution in all cases based on your experiences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The optimization saying refers to writing &quot;more complex code than 'good enough' to make it faster&quot; before actually knowing that it is necessary, hence making the code more complex than necessary.   Complexity is what makes things hard, so that isn't a good thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means that you should not choose a super complex &quot;can sort 100 Gb files by transparently swapping to disk&quot; sorting routine when a simple sort will do, but you should also make a good choice for the simple sort in the first place.  Blindly choosing Bubble Sort or &quot;pick all entries randomly and see if they are in order.  Repeat.&quot; is rarely good.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2011-01-01T08:33:23.160" CommentCount="2" />
  <row Id="33028" PostTypeId="1" AcceptedAnswerId="33041" CreationDate="2011-01-01T08:49:38.947" Score="5" ViewCount="251" Body="&lt;p&gt;I have finished designing a little application for Pandora and I am not sure how I can get it out and share it with everyone. What should I do to help advertise it to the public and let other people use it? As of right now it is free, and I hope to keep it that way, so I don't want to spend any money to give it out. I had actually designed this application just for personal use, but hey, why should I be the only one to use it?&lt;/p&gt;&#xA;" OwnerUserId="12177" LastActivityDate="2011-01-02T04:23:20.067" Title="Where do I publish a program?" Tags="&lt;application&gt;" AnswerCount="5" FavoriteCount="2" />
  <row Id="33029" PostTypeId="2" ParentId="33028" CreationDate="2011-01-01T08:57:12.667" Score="2" ViewCount="" Body="&lt;p&gt;There are many options. I'll just suggest one that I use, &lt;a href=&quot;http://code.google.com/projecthosting/&quot; rel=&quot;nofollow&quot;&gt;Google code hosting&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="12019" LastActivityDate="2011-01-01T08:57:12.667" />
  <row Id="33031" PostTypeId="2" ParentId="32948" CreationDate="2011-01-01T09:14:43.903" Score="1" ViewCount="" Body="&lt;p&gt;You can pick RoR up in that amount of time, and the development process is very similar to ASP.NET MVC.  I personally think RoR's ActiveRecord is a whole lot easier to use than equivalent database technologies in C#.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, Ruby's Soap4R package is great for consuming web services (assuming Salesforce.com is using SOAP).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While there are a lot of wins, you'll have to think hard about some basic things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How familiar are you with Ruby?  It's sufficiently different from C# that it can eat up some time getting reasonably good with it.&lt;/li&gt;&#xA;&lt;li&gt;How much have you done with Ruby on Rails?  While there are a number of similarities with ASP.NET MVC, there are enough differences that it may cause some heartburn.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Three months was sufficient time to deliver my first ASP.NET MVC app coming from a Java background and a healthy exposure to Ruby on Rails.  In that time I learned C#, the ASP.NET MVC platform, Entity Framework, etc.  I'm equally willing to bet the reverse will also be true for you.  Just understand this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You won't be able to get as much done in the app as you may initially want.  Make sure you keep the major goals up front.  You may need to release a version that has the major goals implemented, with some of the more complete features coming in one or more releases shortly following.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will take you about 3 months to get to the point where you feel competent with any new framework.  Whether you go from C# ASP.NET MVC to Ruby on Rails or vice versa.  You will be learning a lot, but implementing along the way.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2011-01-01T09:14:43.903" />
  <row Id="33035" PostTypeId="2" ParentId="18502" CreationDate="2011-01-01T10:05:15.027" Score="1" ViewCount="" Body="&lt;p&gt;This was actually supposed to be a comment @rmx but it is too long. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, this is not limited to the question of staying a programmer for ever or moving up to become a project manager but a much more broader thought of mine, which may not be an appropriate answer to this question. &#xA; I personally would like to experiment with various things in my life. We have only one life, and we should let ourselves explore more than one thing seriously (not just as a hobby but more seriously as in case of profession). You are a programmer today, probably because you felt programming would be the best thing as a profession for you and you are indeed excellent in programming, but suppose you later discover that you can sing well too, it does not mean you should not try to focus more on singing instead, to become a professional singer. Imagine, later some day, when you are a famous singer, you get a chance to show your coding skills and people say, &quot;Wow! you can code so well too?&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main point I want to make is &quot;Hardcoding&quot; is a bad practice in real life too. People tend to hardcode themselves instead of being dynamic/variable. If we were born in stone age, would we have been good for nothing? Would'nt there be anything else we could excel in? No! We would have found something exciting. However in most cases, once we get fairly into some field, we &lt;em&gt;think&lt;/em&gt; we are best in that without further looking for something better. We hardcode it in our mind. How many options we actually try before concluding that? Concluding that we are not good at something other thing may not be always correct before having a practical experience on it. We may miss out so many other things and never get the chance again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;&lt;br&gt;&#xA;To give a more proper answer to your question, I am 24 now, have spent 2.5 years as a programmer as an employee in a private firm, and having a very wonderful time, absolutely loving the coding work. I too have no desire to move upper into the corporate ladder where I have to completely leave coding. I know that can limit financial growth and I can't let that happen. Because I am planning to start as a part time freelancer soon, I hope that would balance the finance. I also plan to start some other business (not related to IT/software field) side by side and then in the coming years, I hope to be actively involved in making some free software products, make them popular, get a brand recognition, then make some good money using that. So, I think I will be doing fair amount of coding for many years to come. Lets see how far I go.&lt;/p&gt;&#xA;" OwnerUserId="4443" LastEditorUserId="4443" LastEditorDisplayName="" LastEditDate="2011-01-01T19:44:02.590" LastActivityDate="2011-01-01T19:44:02.590" CommunityOwnedDate="2011-01-26T02:24:50.517" />
  <row Id="33036" PostTypeId="1" AcceptedAnswerId="33040" CreationDate="2011-01-01T10:06:31.257" Score="3" ViewCount="363" Body="&lt;p&gt;I'm learning Haskell and as an exercise I'm making binary trees. Having made a regular binary tree, I want to adapt it to be self balancing. So:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Which is most efficient?&lt;/li&gt;&#xA;&lt;li&gt;Which is easiest to implement?&lt;/li&gt;&#xA;&lt;li&gt;Which is most often used?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But crucially, which do you recommend?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;I assume this belongs here because it's open to debate.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2011-01-01T14:58:11.047" Title="Which self balancing binary tree would you recommend?" Tags="&lt;haskell&gt;&lt;functional&gt;&lt;data-structures&gt;&lt;binary-tree&gt;" AnswerCount="5" CommentCount="6" FavoriteCount="1" />
  <row Id="33037" PostTypeId="2" ParentId="33028" CreationDate="2011-01-01T10:15:50.747" Score="1" ViewCount="" Body="&lt;p&gt;I prefer &lt;a href=&quot;https://github.com/&quot; rel=&quot;nofollow&quot;&gt;GitHub&lt;/a&gt; for my smaller personal projects. A lot of it will come down to what type of source code management you have. If you don't use something to manage your code, start now. Having you source for everyone to see is a good thing though. If someone comes along likes what you made, but has an idea of something they want to add, they just download the source code, add what they want, and ask you to integrate it to the original. Your application is then improved for others to use!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Keith said, Google Code would also be a wonderful choice.&lt;/p&gt;&#xA;" OwnerUserId="7682" LastActivityDate="2011-01-01T10:15:50.747" />
  <row Id="33038" PostTypeId="2" ParentId="33015" CreationDate="2011-01-01T10:32:16.947" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What do you think about this?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Some good points, many vague ones (apparently to make up the magic 10 items), but no real news to any semi-competent programmer. You could as well make a &quot;don't use too much gotos manifesto&quot;, &quot;be nice to your colleagues manifesto&quot;, or &quot;get rid of dogmas manifesto&quot;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Would you sign the manifesto? If not, why?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;While I have nothing against it, why would I sign it? How would it help me or others?&lt;/p&gt;&#xA;" OwnerUserId="2550" LastActivityDate="2011-01-01T10:32:16.947" />
  <row Id="33040" PostTypeId="2" ParentId="33036" CreationDate="2011-01-01T11:01:42.357" Score="5" ViewCount="" Body="&lt;p&gt;I would recommend you start with either a &lt;a href=&quot;http://en.wikipedia.org/wiki/Red-black_tree&quot; rel=&quot;nofollow&quot;&gt;Red-Black tree&lt;/a&gt;, or an &lt;a href=&quot;http://en.wikipedia.org/wiki/AVL_tree&quot; rel=&quot;nofollow&quot;&gt;AVL tree&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The red-black tree is faster for inserting, but the AVL tree has a slight edge for lookups. The AVL tree is probably a little easier to implement, but not by all that much based on my own experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The AVL tree ensures that the tree is balanced after each insert or delete (no sub-tree has a balance factor greater than 1/-1, while the Red-black tree ensures that the tree is reasonably balanced at any time.&lt;/p&gt;&#xA;" OwnerUserId="12132" LastEditorUserId="12132" LastEditorDisplayName="" LastEditDate="2011-01-01T11:10:11.493" LastActivityDate="2011-01-01T11:10:11.493" CommentCount="6" />
  <row Id="33041" PostTypeId="2" ParentId="33028" CreationDate="2011-01-01T11:20:33.197" Score="13" ViewCount="" Body="&lt;p&gt;A few of the more popular options.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;https://github.com/&quot; rel=&quot;nofollow&quot;&gt;Github&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://code.google.com/projecthosting/&quot; rel=&quot;nofollow&quot;&gt;Google Code&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://bitbucket.org&quot; rel=&quot;nofollow&quot;&gt;BitBucket&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;https://launchpad.net/&quot; rel=&quot;nofollow&quot;&gt;LaunchPad&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://sourceforge.com&quot; rel=&quot;nofollow&quot;&gt;SourceForge&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;Codeplex&lt;/a&gt; (generally speaking, only .Net projects)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Personally I'd recommend github over the others, and it's become very popular in the last 12 months.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of these options will allow you to set up some sort of wiki, blog, or static pages to provide more info on your project, this is a good idea if you need to provide tutorials / getting started info etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, github has it's &lt;a href=&quot;https://github.com/blog/272-github-pages&quot; rel=&quot;nofollow&quot;&gt;pages&lt;/a&gt; feature, and if your code root has a README file it will be shown on your project homepage, call it README.md it will be rendered as Markdown, a few other &lt;a href=&quot;https://github.com/github/markup&quot; rel=&quot;nofollow&quot;&gt;formats are supported&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3787" LastEditorUserId="3787" LastEditorDisplayName="" LastEditDate="2011-01-02T04:23:20.067" LastActivityDate="2011-01-02T04:23:20.067" CommentCount="5" />
  <row Id="33043" PostTypeId="2" ParentId="33036" CreationDate="2011-01-01T11:33:10.757" Score="1" ViewCount="" Body="&lt;p&gt;If you want a relatively easy structure to start with (both AVL trees and red-black trees are fiddly), one option is a treap - named as a combination of &quot;tree&quot; and &quot;heap&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each node gets a &quot;priority&quot; value, often randomly assigned as the node is created. Nodes are positioned in the tree so that key ordering is respected, and so that heap-like ordering of priority values is respected. Heap-like ordering means that both children of a parent have lower priorities than the parent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;  deleted &quot;within key values&quot; above - the priority and key ordering apply together, so priority is significant even for unique keys.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's an interesting combination. If keys are unique and priorities are unique, there is a unique tree structure for any set of nodes. Even so, inserts and deletes are efficient. Strictly speaking, the tree can be unbalanced to the point where it is effectively a linked list, but this is extremely unlikely (as with standard binary trees), including for normal cases such as keys inserted in order (unlike standard binary trees).&lt;/p&gt;&#xA;" OwnerUserId="8709" LastEditorUserId="8709" LastEditorDisplayName="" LastEditDate="2011-01-01T11:55:40.650" LastActivityDate="2011-01-01T11:55:40.650" CommentCount="1" />
  <row Id="33044" PostTypeId="2" ParentId="33036" CreationDate="2011-01-01T11:39:09.500" Score="0" ViewCount="" Body="&lt;p&gt;If you're interested in Splay trees, there is a simpler version of those which I believe was first described in a paper by Allen and Munroe. It doesn't have the same performance guarantees, but avoids complications in dealing with &quot;zig-zig&quot; vs. &quot;zig-zag&quot; rebalancing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, when searching (including searches for an insert point or node to delete), the node you find gets rotated directly towards the root, bottom up (e.g. as a recursive search function exits). At each step, you select a single left or right rotation depending on whether the child you want to pull up another step toward the root was the right child or left child (if I remember my rotation directions correctly, that's respectively).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like Splay trees, the idea is that recently accessed items are always near the root of the tree, so quick to access again. Being simpler, these Allen-Munroe rotate-to-root trees (what I call them - don't know the official name) can be faster, but they don't have the same amortized performance guarantee.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing - since this data structure by definition mutates even for find operations, it would probably need to be implemented monadically. IOW it's maybe not a good fit for functional programming.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastEditorUserId="8709" LastEditorDisplayName="" LastEditDate="2011-01-01T11:46:12.673" LastActivityDate="2011-01-01T11:46:12.673" CommentCount="4" />
  <row Id="33047" PostTypeId="2" ParentId="33004" CreationDate="2011-01-01T12:24:56.847" Score="1" ViewCount="" Body="&lt;p&gt;Messing around with version control is often not ones highest priority.  Whether learning Mercurial or Git is a good investment of &lt;em&gt;your&lt;/em&gt; time will have much to do with your particular circumstances.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there are real advantages of distributed version control.  Most compelling to me is that it separates the act of committing code (and thus having it always available for all time) and the act of inflicting that code on the rest of the team.  If I'm using Git, I'll do a local commit at least every hour, and push to the central repository several times a day.  If I'm using SVN, I only commit when my code is appropriate for public consumption, and thus may work for five or six hours without any commits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So read a little more about it, and see if the benefits are compelling to you.  If it seems to be solving problems that you don't yet have, then it isn't yet time for you to mess with it.  But if you find yourself intrigued, go for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Git, the best resource is &lt;a href=&quot;http://progit.org/book/&quot; rel=&quot;nofollow&quot;&gt;http://progit.org/book/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Mercurial, a great read to think right is Joel's tutorial: &lt;a href=&quot;http://hginit.com/&quot; rel=&quot;nofollow&quot;&gt;http://hginit.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2011-01-01T12:24:56.847" CommentCount="1" />
  <row Id="33049" PostTypeId="2" ParentId="18502" CreationDate="2011-01-01T13:29:47.943" Score="1" ViewCount="" Body="&lt;p&gt;I've found the pressure to move away from code monkey comes in 2 ways&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the folk that have moved &quot;up&quot;&lt;/li&gt;&#xA;&lt;li&gt;corporate policy (eg &quot;up or out&quot;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Your managers and project folk have rarely been code monkeys and can't understand we love it at the code face. Some, not all, apply the pressure (as noted in the question) to leave coding and move up the corporate ladder. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're in some large corporate, then the company tone is set by the powers that be: it could be engineers, bankers or marketers. Their world is different to ours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I console myself with noting that most managers/PMs are failed developers...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Saying that, I &lt;em&gt;am&lt;/em&gt; a manager as well as a code monkey. In our department in our large corporate they tend to have developers in charge of development teams at the shop floor level which generally works well. I don't really want to go higher: I like it at the code face.&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2011-01-01T13:29:47.943" CommunityOwnedDate="2011-01-26T02:24:50.517" />
  <row Id="33050" PostTypeId="2" ParentId="27145" CreationDate="2011-01-01T13:37:42.707" Score="1" ViewCount="" Body="&lt;p&gt;Perl 5 is stable now and I think one must learn the most recent stable version first. Upgrading to another version would then become easier. &lt;/p&gt;&#xA;" OwnerUserId="4226" LastActivityDate="2011-01-01T13:37:42.707" />
  <row Id="33051" PostTypeId="2" ParentId="30245" CreationDate="2011-01-01T13:41:23.357" Score="1" ViewCount="" Body="&lt;p&gt;The Head-First series books are my favourite. They make learning both easy and interesting with humour and great conversation style. Every book begins with an illustration of how our brains work and how to get maximum out of our brain's capacity. I try to adopt them. They made learning design patterns very easy for me. &lt;/p&gt;&#xA;" OwnerUserId="4226" LastActivityDate="2011-01-01T13:41:23.357" />
  <row Id="33052" PostTypeId="2" ParentId="33036" CreationDate="2011-01-01T13:47:15.813" Score="4" ViewCount="" Body="&lt;p&gt;I would consider an alternative: &lt;a href=&quot;http://en.wikipedia.org/wiki/Skip_list&quot; rel=&quot;nofollow&quot;&gt;Skip Lists&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a high-level point of view, it's a tree structure, except that it's not implemented as a tree but as a list with multiple layers of links.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll get O(log N) insertions / searches / deletes, and you won't have to deal with all those tricky rebalancing cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never considered implementing them in a Functional Language though, and the wikipedia page does not show any, so it may not be easy (wrt to immutability)&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2011-01-01T13:47:15.813" CommentCount="5" />
  <row Id="33053" PostTypeId="2" ParentId="20438" CreationDate="2011-01-01T14:26:38.563" Score="1" ViewCount="" Body="&lt;p&gt;Playing an instrument is something that you get better at doing over time, with practice. So I think the correlation is there, but is not at all exclusive to playing music and programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know a great number of programmers who also speak / study at least one additional spoken language, simply because they enjoy improving.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2011-01-01T14:26:38.563" />
  <row Id="33054" PostTypeId="2" ParentId="33028" CreationDate="2011-01-01T14:28:17.247" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;A simple &lt;strong&gt;Blog&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Free, standard &amp;amp; &lt;a href=&quot;http://www.blogger.com&quot; rel=&quot;nofollow&quot;&gt;easy to setup&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I assume you are not building an open source application as you don't mention it in your question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your application is open source and you are looking for contributors or willing to share the source code, check this &lt;a href=&quot;http://programmers.stackexchange.com/questions/33028/where-do-i-publish-a-program/33041#33041&quot;&gt;answer&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-01T14:28:17.247" CommentCount="1" />
  <row Id="33056" PostTypeId="2" ParentId="33036" CreationDate="2011-01-01T14:58:11.047" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Which is most efficient?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Vague and difficult to answer.  The computational complexities are all well-defined.  If that's what you mean by efficiency, there's no real debate.  Indeed, all good algorithms come with proofs and complexity factors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you mean &quot;run time&quot; or &quot;memory use&quot; then you'll need to compare actual implementations.  Then language, run-time, OS and other factors come into play, making the question difficult to answer.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Which is easiest to implement?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Vague and difficult to answer.  Some algorithms may appear complex to you, but trivial to me.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Which is most often used?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Vague and difficult to answer.  First there's the &quot;by whom?&quot; part of this?  Haskell only?  What about C or C++?  Second, there's the proprietary software problem where we don't have access to the source to do a survey.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;But crucially, which do you recommend?&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I assume this belongs here because it's open to debate.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Correct.  Since your other criteria aren't very helpful, this is all you're going to get.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can get source for a large number of tree algorithms.  If you want to learn something, you might simply implement every one you can find.  Rather than ask for a &quot;recommendation&quot;, just collect every algorithm you can find.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's the list:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Self-balancing_binary_search_tree&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Self-balancing_binary_search_tree&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are six popular ones defined.  Start with those.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-01T14:58:11.047" />
  <row Id="33058" PostTypeId="1" CreationDate="2010-12-31T14:17:25.303" Score="4" ViewCount="146" Body="&lt;p&gt;What one software development tool/library/technology/practice have you adopted recently that has really made a big difference in your project and feel could really help others, if only they know about it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking for ideas that trigger exclamations like:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Why doesn't everyone do it this way!?&quot; &lt;br/&gt;&#xA;&quot;I can't believe more people haven't heard of this!&quot;&lt;br /&gt;&#xA;&quot;What took us so long to adopt this?!&quot;&lt;/p&gt;&#xA;" OwnerUserId="12253" LastActivityDate="2011-01-01T15:50:08.350" CommunityOwnedDate="2010-12-31T23:14:40.903" ClosedDate="2011-01-02T22:03:28.340" Title="Most innovative or helpful tool/library/technology/practice you use that you feel others aren't using enough?" Tags="&lt;java&gt;&lt;web-development&gt;&lt;testing&gt;&lt;architecture&gt;&lt;software-engineering&gt;" AnswerCount="1" CommentCount="11" />
  <row Id="33059" PostTypeId="2" ParentId="33058" CreationDate="2010-12-31T14:20:31.063" Score="1" ViewCount="" Body="&lt;p&gt;There are things that developers do that aren't really innovative, but just common sense.  You should start with just things developers should do; you don't need innovative. ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Test Driven Development -- 'Why doesn't everyone do this'&lt;br&gt;&#xA;and&lt;br&gt;&#xA;Debug with a debugger instead of print statements.  Professionals should debug with a debugger.  Its just a lot quicker than writing print statements, a lot of which end up staying in the code.&lt;/p&gt;&#xA;" OwnerUserId="4469" LastActivityDate="2011-01-01T15:50:08.350" CommunityOwnedDate="2010-12-31T23:14:40.903" CommentCount="2" />
  <row Id="33061" PostTypeId="2" ParentId="32533" CreationDate="2011-01-01T15:56:39.577" Score="2" ViewCount="" Body="&lt;p&gt;There are 2 ways to answer your question. Let me attempt both. The first way is to look at things from a potential job market standpoint, coding skills etc. So here's my list: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Data Structure &lt;/li&gt;&#xA;&lt;li&gt;Algorithm Analysis &lt;/li&gt;&#xA;&lt;li&gt;Object Oriented Programming &lt;/li&gt;&#xA;&lt;li&gt;Either a specific course in C++ or Java&lt;/li&gt;&#xA;&lt;li&gt;Operating Systems &lt;/li&gt;&#xA;&lt;li&gt;User Interface Design &lt;/li&gt;&#xA;&lt;li&gt;Parallel Programming&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The second way is to look at things from a bit abstract perspective, and who knows, may be a bit philosophical too. The list that follows may not have the hottest skills the job market demands, but I am pretty sure by the time you come out of these courses you'd have a deeper appreciation of the art of developing software.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Finite Language and Automata Theory&lt;/li&gt;&#xA;&lt;li&gt;Compiler Construction&lt;/li&gt;&#xA;&lt;li&gt;Graph Theory &lt;/li&gt;&#xA;&lt;li&gt;Artificial Intelligence&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2011-01-01T15:56:39.577" CommunityOwnedDate="2011-01-05T14:29:46.470" CommentCount="1" />
  <row Id="33064" PostTypeId="2" ParentId="32425" CreationDate="2011-01-01T16:24:07.717" Score="1" ViewCount="" Body="&lt;p&gt;I guess your problem comes from:&#xA;1. the confict there is between theory and practice, and also that...&#xA;2. ... you must realize that your code will be run by other's code.&#xA;3. you can't code something if you have no idea about what you could make.&#xA;4. You know half of the difficulty&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Knowing a language by theory doesn't mean you &quot;speak&quot; it: that's difference between reading english and speaking it. Also the great number of different tools available to compile, link, edit a source code will make your head spin.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;when learning how to program, most if the time a terminal is used to input/output text, because this is most simple way of dealing with programming. In fact, programmers use libraries (like Qt), frameworks (django I guess) and other shortcut code to be productive. Of course if you feel you can write your own wheel, don't reinvent it and read books about compiler design and kernel design: there's a lot to learn in these: maybe you feel it's stupid to de apps that doesn't require a lot of technicity.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Invent something ! Of course you could do a text editor, a game, etc. The thing is, you won't do those if you don't see any reason to: these program will be useless for you if everything you think about has already been made. Personnaly I still dreams to be able to code a facebook-like decentralized p2p protocol with chat, offline messages, etc all in one so it can be used with wireless embedded devices. Internet gives a lot of possibilities, don't forget to think about it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;In fact the theory is necessary to practice, but that's not all: algorithms and technics aren't part of the theory of programming, there are a lot of paradigms and other &quot;standard&quot; way to do your code: design patterns, linked lists, etc etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5024" LastEditorUserId="5024" LastEditorDisplayName="" LastEditDate="2011-01-01T17:39:38.880" LastActivityDate="2011-01-01T17:39:38.880" CommunityOwnedDate="2011-01-01T16:24:07.717" />
  <row Id="33066" PostTypeId="2" ParentId="32956" CreationDate="2011-01-01T16:55:00.853" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;a href=&quot;http://drupal.org/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Drupal&lt;/strong&gt;&lt;/a&gt; is 100% free. &lt;strong&gt;Dries Buytaert&lt;/strong&gt;, it's creator, &lt;a href=&quot;http://acquia.com/&quot; rel=&quot;nofollow&quot;&gt;is not&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Some pros: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Would Drupal be &lt;strong&gt;widely used&lt;/strong&gt; if it wasn't free in the first place?&lt;/li&gt;&#xA;&lt;li&gt;Would Drupal be so &lt;strong&gt;feature rich&lt;/strong&gt; if it wasn't open source?&lt;/li&gt;&#xA;&lt;li&gt;Would Drupal be &lt;strong&gt;well supported at no cost&lt;/strong&gt; from the community if it wasn't open source?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some cons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Many tries, many failures&lt;/li&gt;&#xA;&lt;li&gt;Not adapted to every software type&lt;/li&gt;&#xA;&lt;li&gt;Difficult to interest investors in that model&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2011-01-01T17:07:12.553" LastActivityDate="2011-01-01T17:07:12.553" CommentCount="3" />
  <row Id="33067" PostTypeId="2" ParentId="33028" CreationDate="2011-01-01T16:56:19.620" Score="3" ViewCount="" Body="&lt;p&gt;Your program serves some purpose, so an internet forum about the topic might be the right place to announce it. Becuase that's where the people who might be interested in your program can be expected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, many years ago I wrote a controller plugin for playstation emulations, so I announced it at a forum about emulation.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2011-01-01T16:56:19.620" CommentCount="2" />
  <row Id="33068" PostTypeId="1" CreationDate="2011-01-01T17:12:54.957" Score="19" ViewCount="1138" Body="&lt;p&gt;Part of the value of Open Source is to provide great example code to people getting started with a new platform or language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's the best Open Source code you've encountered, and why do you like your choice? Any language will do, but I'm particularly interested in the best examples of Objective-C you can point out. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously this is an open-ended question, so I'll leave the question open for a while and see what kinds of answers we get.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&#xA;For &quot;best&quot; I was thinking of code that follows the idioms in the given language or platform, as well as including the parts that make code &quot;professional&quot; - good documentation, a testing suite, etc. Code that is concise, but not overly clever is preferred to very terse or chatty code.&lt;/p&gt;&#xA;" OwnerUserId="10558" LastEditorUserId="10558" LastEditorDisplayName="" LastEditDate="2011-01-08T18:04:09.627" LastActivityDate="2011-05-26T09:44:15.093" Title="What's the best Open Source code you've ever seen?" Tags="&lt;learning&gt;&lt;good-practices&gt;" AnswerCount="11" CommentCount="4" FavoriteCount="12" />
  <row Id="33069" PostTypeId="2" ParentId="33068" CreationDate="2011-01-01T17:16:08.223" Score="2" ViewCount="" Body="&lt;p&gt;Some say the &lt;a href=&quot;http://www.kernel.org/&quot; rel=&quot;nofollow&quot;&gt;C code for the Linux Kernel&lt;/a&gt; is pretty darn good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Not that I understand the thing! It's possibly the best written open-source C project around.)&lt;/p&gt;&#xA;" OwnerUserId="2413" LastActivityDate="2011-01-01T17:16:08.223" CommentCount="2" />
  <row Id="33070" PostTypeId="2" ParentId="4296" CreationDate="2011-01-01T17:35:53.720" Score="0" ViewCount="" Body="&lt;p&gt;I'm writing tests for my Java apps in Scala and agree that it's a good place to start. My test coverage is better because it's quicker and easier to write them (also since I get to use Scala, I willingly focus on writing tests more).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've also started doing prototypes and throwaway POCs in Scala pretty much exclusively. I try to make managers and supervisors as aware as possible that I used Scala for these one-offs and emphasize that I was able to get something up and running quickly because of Scala. We needed (well, kind of needed) a web app to track our holiday party white elephant game - 1.5 hours with Scalatra and MongoDB and my entire department is seeing this app and asking about it. Let's face it, you'll never get anywhere describing to managers how much more expressive the language is or that its concurrency model is so much better. But if you show them you can get more done more quickly, you gain ground.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I think the biggest piece is getting developers excited about Scala. I'm sure we all work with developer who don't actively keep up with new technology, and sometimes it's hard to get those folks excited about doing anything new (why, I really don't understand). Showing those folks some benefits of Scala (try the REPL) is key. If you get enough developers buzzing about the same benefits of productivity, then you're far more likely to get Scala officially adopted in your organization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Spreading the word and getting that grassroots effort rolling is my key goal in 2011. We shall see how it pans out, because I can't wait for the day I get to use Scala for the bulk of my work.&lt;/p&gt;&#xA;" OwnerUserId="12166" LastActivityDate="2011-01-01T17:35:53.720" />
  <row Id="33071" PostTypeId="2" ParentId="32956" CreationDate="2011-01-01T17:37:38.787" Score="7" ViewCount="" Body="&lt;p&gt;There are two that seem to be the most common:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Develop free software and sell support for it&lt;/li&gt;&#xA;&lt;li&gt;Develop free software and offer it under a less restrictive license for a fee.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The second model mandates that the company own 100% of the copyright of the software. This means, contributors are required to sign a copyright assignment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a hypothetical application for the second:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Acme, Incorporated developed a feature rich, aesthetically pleasing software SIP phone and released it under version 3 of the GNU Affero General Public License.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Optionally, companies interested in re-packaging / re-branding the phone can pay Acme to use the standard GPL3, LGPL or even less restrictive licenses to establish a proprietary fork of the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Acme, Inc. was later purchased by Yoyodyne Systems, who paid a lot of money to acquire full ownership of the code&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not going to go into the idealistic merits of either scenario, I'm just presenting them as the ones I'm most familiar with.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2011-01-01T17:50:09.447" LastActivityDate="2011-01-01T17:50:09.447" />
  <row Id="33072" PostTypeId="2" ParentId="32956" CreationDate="2011-01-01T17:46:52.607" Score="1" ViewCount="" Body="&lt;p&gt;The common model for free software is to sell support and services along with that product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, I created a file storage application. You can download it for free and you can configure it to run on your very own server that is setup to handle it. However, if you do not wish to configure your server or do not have one, you may purchase a storage account on one of our servers. Another way is that if you are having trouble setting the application to run on your server, we can help you setup the components step-by-step, albeit for a fee.&lt;/p&gt;&#xA;" OwnerUserId="7007" LastActivityDate="2011-01-01T17:46:52.607" />
  <row Id="33073" PostTypeId="2" ParentId="32533" CreationDate="2011-01-01T17:48:07.823" Score="16" ViewCount="" Body="&lt;p&gt;Meeting the graduation requirements is not necessarily sufficient for being the best computer scientist you can be. For a typical college curriculum, here are the top ten things you should be sure to learn:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;The basics of economics&lt;/strong&gt; - An introductory course covering topics like &lt;a href=&quot;http://www.joelonsoftware.com/articles/StrategyLetterV.html&quot; rel=&quot;nofollow&quot;&gt;complements and substitutes&lt;/a&gt; is vital for working in the greater economy, or just simply understanding it. While the concept of a Giffen Good won’t necessarily help you, knowing about &lt;a href=&quot;http://profshonle.blogspot.com/2010/08/why-wave-failed.html&quot; rel=&quot;nofollow&quot;&gt;externalities&lt;/a&gt; will. It might also help you appreciate that more situations are win-win than you might have realized.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;How to write a proof&lt;/strong&gt; - All computer science majors should know how to write a proof. And discrete math, while a part of a well balanced breakfast, doesn’t count. [Induction is just one proof technique, and you can get by without actually knowing much about proofs.] A course in algebra or real analysis is necessary to really write proofs. And by algebra I mean group theory or abstract algebra, not the course you took in high school. For the full benefit, take algebra and real analysis in the same term.&lt;br&gt;&#xA;&lt;br&gt;&#xA;Why is proof writing essential? Because it’s programming! Think about when you first learned how to program: if a task required an &lt;code&gt;if&lt;/code&gt; and a loop, you might not have had any intuition on where to put them in relation to each other. But now the same task would feel completely natural. Writing a proof is very similar. There is a set of tricks that you learn, and once you learn them things look quite different.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;How to write&lt;/strong&gt; - Written communication skills are essential, whether you’ll work in the industry or academia. It’s best if you can find a mechanics course, and not a writing course that is effectively about a different topic. That is, many schools will try to make the writing courses more relevant or interesting by making it be about a special topic. Try to go for the “boring” version of the course.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Probability and statistics&lt;/strong&gt; - There are some things that you’ll only pick up properly by taking a course. Together with the CS major requirements (which should give you discrete math, single variable and multiple variable calculus, and linear algebra) and algebra and/or real analysis, picking up statistics will probably give you a minor in math. Learning statistics can help you work with other scientists on their projects.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;The current hot topic&lt;/strong&gt; - In previous decades, it might have been databases, or object-oriented programming. Today it might be web programming or service-oriented architecture. Whatever the current fad is, be sure to take a course in it. If only to see what the fad is about.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;The halting problem&lt;/strong&gt; - Most problems cannot be solved by machines. This is a fairly deep idea that our culture has absorbed so well that it no longer sounds shocking. The same goes with radio, Goedel, and the atomic bomb; it wasn’t until postmodern art and the cold war that we could once again cope with these concepts. However, taking a course in computability theory can re-sensitize you to this pretty amazing proof.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pure functional programming&lt;/strong&gt; - You most likely won’t go into pure functional programming, unless you do research in it or work for a select few companies, but knowing it will help you be a better programmer. The reason is that you will learn many new forms of abstraction, and concepts like Church numbers and continuations and monads and, yes, recursion, and these tools can be applied to your next Java program too.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;P and NP&lt;/strong&gt; - OK, this one is already on your critical path, but pay attention anyway. You want to be sure you can correct someone when they incorrectly call NP “non-polynomial.” As if!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;The topics from the course you’re sure to hate&lt;/strong&gt; - This could be a CS course you find too-low-level, too-theoretical, or a non-CS course you find too-objectionable, too-hard, or too-boring. If a course like this seems to be an issue for you, and you find yourself explaining to others why you’re so glad you don’t have to take so-and-so, it should tell you that you’ll learn a lot by taking the course! Perhaps you won’t learn the materials of the course, but you’ll learn about your own limits and perhaps more about the justifications you make to yourself. [Hint: They are usually weak.]&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;The non-CS course you’re sure to love&lt;/strong&gt; - In the end, you should have some fun. This is the course you’ll probably get the least out of, but take it anyway. Do it once. If you happen to love many courses, then good for you, but be sure it doesn’t get in the way of covering the rest of the courses on this list.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;My approach here has been practical, based on courses you can actually take. And I’ve focused on learning objectives that are likely to be learned. Note: This answer was adapted from a blog posting of mine on &lt;a href=&quot;http://profshonle.blogspot.com/2010/08/ten-things-every-computer-science-major.html&quot; rel=&quot;nofollow&quot;&gt;Ten Things Every Computer Science Major Should Learn&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastEditorUserId="6329" LastEditorDisplayName="" LastEditDate="2011-01-08T01:04:46.033" LastActivityDate="2011-01-08T01:04:46.033" CommunityOwnedDate="2011-01-05T14:29:46.470" CommentCount="5" />
  <row Id="33074" PostTypeId="2" ParentId="32956" CreationDate="2011-01-01T18:48:56.563" Score="1" ViewCount="" Body="&lt;p&gt;Several models (some of which were already mentioned):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Free product with a pay for support (Red Hat, Drupal , MySql and more)&lt;/li&gt;&#xA;&lt;li&gt;Free product, other services offered (customizations, additional features,)&lt;/li&gt;&#xA;&lt;li&gt;Free base product, pay for pro edition&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4767" LastActivityDate="2011-01-01T18:48:56.563" />
  <row Id="33075" PostTypeId="2" ParentId="33068" CreationDate="2011-01-01T19:01:03.017" Score="5" ViewCount="" Body="&lt;p&gt;I have heard very good things about the &lt;a href=&quot;http://www.sqlite.org/&quot; rel=&quot;nofollow&quot;&gt;Sqlite&lt;/a&gt; codebase.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From the little I had looked into it, it looks very clean.&lt;/p&gt;&#xA;" OwnerUserId="4767" LastActivityDate="2011-01-01T19:01:03.017" CommentCount="2" />
  <row Id="33076" PostTypeId="1" AcceptedAnswerId="38243" CreationDate="2011-01-01T19:09:47.690" Score="10" ViewCount="905" Body="&lt;p&gt;I'd consider myself pretty well versed in C#. It's my language of choice at the moment, and it's where basically &lt;em&gt;all&lt;/em&gt; my professional experience lies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, I'm puzzled by the existence of the &lt;a href=&quot;http://monodroid.net/&quot; rel=&quot;nofollow&quot;&gt;MonoDroid&lt;/a&gt; project. My understanding has always been that C# and Java are &lt;em&gt;very&lt;/em&gt; close. Like, if you know one, you can learn the other really quickly. So, as I've considered developing my first Android app, I just assumed I would familiarize myself with Java enough to get started and then just sort of learn as I go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wouldn't this make more sense than using MonoDroid, which is likely to be less feature-rich than the Java Android SDK, and requires learning its own API (albeit a .NET API) anyway? I just feel like it would be better to learn a new language (and an extremely popular one at that) and get some experience in it—when it's so close to what you already know anyway—rather than stick with a technology you're experienced with, without gaining any more valuable skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe I'm grossly misrepresenting the average potential MonoDroid user. Maybe it's more for people who are experienced in Java and .NET and just prefer .NET. Or maybe (in fact it's likely) there are other factors I just haven't considered. I'm just wondering, why would you use MonoDroid instead of just developing for Android using Java?&lt;/p&gt;&#xA;" OwnerUserId="3045" LastActivityDate="2011-05-18T22:28:24.547" Title="As a C# developer, would you learn Java to develop for Android or use MonoDroid instead?" Tags="&lt;java&gt;&lt;c#&gt;&lt;.net&gt;&lt;android&gt;&lt;monodroid&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="1" />
  <row Id="33077" PostTypeId="2" ParentId="33076" CreationDate="2011-01-01T19:14:35.043" Score="7" ViewCount="" Body="&lt;p&gt;I think a lot of it has to do with the resources that are available. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;em&gt;syntax&lt;/em&gt; in C# and Java may be similar, but they offer very different things. For example, working with dates using standard Java libraries is a nightmare, while in C# it's quite pleasant.&lt;/p&gt;&#xA;" OwnerUserId="5624" LastActivityDate="2011-01-01T19:14:35.043" CommentCount="4" />
  <row Id="33078" PostTypeId="2" ParentId="32953" CreationDate="2011-01-01T19:30:08.810" Score="2" ViewCount="" Body="&lt;p&gt;The question you should be asking yourself is: How do I make my UI more usable and friendly overall?  To do that, read books like &quot;Don't make me think,&quot; and the other books &lt;a href=&quot;http://stackoverflow.com/questions/3964741/ui-usability-book-for-developer&quot;&gt;listed here.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer your specific question about validating user input, I have three suggestions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Use common sense, politeness and courtesy with respect to your verbiage.&lt;/li&gt;&#xA;&lt;li&gt;Give them all of the validation at the same time, on the same page.  Don't make them walk through a series of single error messages.  Use some sort of visual cue to distinguish the invalid fields.  &lt;/li&gt;&#xA;&lt;li&gt;Whenever possible, favor a technique that avoids modal confirmation dialogs.  For example, when you delete an email in Gmail, it does not confirm; instead, it moves the message to the trash, and gives you an option to undo.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-01-01T20:07:14.363" LastActivityDate="2011-01-01T20:07:14.363" CommentCount="2" />
  <row Id="33079" PostTypeId="2" ParentId="33076" CreationDate="2011-01-01T19:43:30.563" Score="3" ViewCount="" Body="&lt;p&gt;It looks like &lt;strong&gt;a great opportunity for learning a new language&lt;/strong&gt;, which I don't think you should pass up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Going from C# to Java is a breeze as they are based on the same concepts. Java is like a subset of C#, so you'll have to unlearn some stuff (like properties and assemblies) and getting used to a some new conventions, but mostly it should be a no-brainer.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2011-01-01T19:43:30.563" CommentCount="5" />
  <row Id="33080" PostTypeId="2" ParentId="33020" CreationDate="2011-01-01T20:39:16.363" Score="11" ViewCount="" Body="&lt;p&gt;Application code should only be as good as necessary, but &lt;strong&gt;&lt;em&gt;library code&lt;/em&gt;&lt;/strong&gt; should be as good as possible, since you never know how your library is going to be used. So when you're writing library code, it needs too be good in all aspects, be it performance, robustness, or any other category. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, you need to think about performance when you &lt;strong&gt;&lt;em&gt;design your application&lt;/em&gt;&lt;/strong&gt; and when you &lt;strong&gt;&lt;em&gt;pick algorithms&lt;/em&gt;&lt;/strong&gt;. If it isn't designed to be performant, no degree of hackery can make it performant afterwards and no micro-optimizations will outweigh a superior algorithm. &lt;/p&gt;&#xA;" OwnerUserId="1512" LastEditorUserId="1512" LastEditorDisplayName="" LastEditDate="2011-01-02T02:02:54.977" LastActivityDate="2011-01-02T02:02:54.977" />
  <row Id="33081" PostTypeId="2" ParentId="33020" CreationDate="2011-01-01T20:46:33.910" Score="-2" ViewCount="" Body="&lt;p&gt;... what is extent of optimization we can consider without it crossing over to dark side?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess if you can call your optimization a refactoring and it follows a known refactoring pattern then it is an optimization that will improve the software and with the correct tests in place it will not not break anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which sounds like a good optimization to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you 'Replace Magic Number with Symbolic Constant' [Refactoring, Fowler p204] - you are unlikely to get a big performance boost but you are making the software more coherent for the next developer that comes along.  I think there is a lot to be said for leaving performance optimization until later on and concentrate on building an extensible system that developers can use more easily (design optimization?).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Eric Gamma points out in the foreword to 'Refactoring':&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Frameworkers know that a framework won't be right the first time around - it must evolve as they gain experience.  They also know that the code will be read and modified more frequently that it will be written.  The key to keeping code readable and modifiable is refactoring - for frameworks, in particular, but also for software in general.&lt;/p&gt;&#xA;" OwnerUserId="6432" LastActivityDate="2011-01-01T20:46:33.910" CommentCount="1" />
  <row Id="33082" PostTypeId="1" AcceptedAnswerId="33087" CreationDate="2011-01-01T20:47:10.867" Score="3" ViewCount="98" Body="&lt;p&gt;First the background, during interviews in the past, many times I have been asked to design some or other variation of card game as programming puzzle, and I have tried to design it in OO way, but I have never been satisfied with my solutions. However it was not until recently that I realized that I had been approaching the problem from the wrong direction. Specifically I was trying to solve the problem by modeling individual card as an object.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Problem with this is individual cards don't have any non-trivial intrinsic behavior and therefore are not suitable (or primary) candidate as objects. What is interesting and important about cards are rules and constraints, such as there could be only four &lt;a href=&quot;http://en.wikipedia.org/wiki/Suit_%28cards%29&quot; rel=&quot;nofollow&quot;&gt;suits&lt;/a&gt;, or only thirteen cards in each suit. Of course, then there are any number of rules for games.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my questions are&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Are there any idioms/constructs/patterns to program for rules &amp;amp; constraints. &lt;/li&gt;&#xA;&lt;li&gt;How many in 1 can be applied in conjunction with OO paradigm.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8073" LastActivityDate="2011-01-01T21:32:29.657" Title="How to program for constraints/rules" Tags="&lt;design&gt;&lt;design-patterns&gt;&lt;rules-and-constraints&gt;&lt;idioms&gt;&lt;constructs&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="3" />
  <row Id="33083" PostTypeId="2" ParentId="33020" CreationDate="2011-01-01T20:52:26.560" Score="0" ViewCount="" Body="&lt;p&gt;My general rule of thumb:  if you're not sure you'll need the optimization, assume you don't.  But keep it in mind for when you do need to optimize.  There are some issues that you can know about up front though.  This usually involves choosing good algorithms and data structures.  For instance, if you need to check membership in a collection, you can be pretty sure you will need some type of set data structure.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2011-01-01T20:52:26.560" />
  <row Id="33084" PostTypeId="2" ParentId="33068" CreationDate="2011-01-01T21:19:15.527" Score="0" ViewCount="" Body="&lt;p&gt;First a simple example: The code for the event handling system zope.event. I'd used other event systems, which dispatched events to different event listeners. When I saw the zope.event code it was facepalm time, when I realized how simple some things could be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's written in Python, and here is the code in it's entirety:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;subscribers = []&#xA;&#xA;def notify(event):&#xA;    &quot;&quot;&quot; Notify all subscribers of ``event``.&#xA;    &quot;&quot;&quot;&#xA;    for subscriber in subscribers:&#xA;        subscriber(event)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;To add a subscriber you do this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;from zope.event import subscribers&#xA;subscribers.add(MySubscriber())&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The best example of KISS I've seen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then a more complex example: The &lt;a href=&quot;http://svn.zope.org/martian&quot; rel=&quot;nofollow&quot;&gt;Martian&lt;/a&gt; code base is very nice and easy to read, even though it's using some clever Python hacks. The same goes for most code of Grok, which is built using Martian.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2011-01-01T21:19:15.527" CommentCount="10" />
  <row Id="33086" PostTypeId="2" ParentId="32800" CreationDate="2011-01-01T21:21:51.170" Score="0" ViewCount="" Body="&lt;p&gt;Use &lt;a href=&quot;http://sourceware.org/gdb/current/onlinedocs/gdb/Set-Watchpoints.html#Set-Watchpoints&quot; rel=&quot;nofollow&quot;&gt;watch&lt;/a&gt; for breaking when the variable is changed. Don't miss the &lt;a href=&quot;http://sourceware.org/gdb/current/onlinedocs/gdb/Backtrace.html#Backtrace&quot; rel=&quot;nofollow&quot;&gt;backtrace&lt;/a&gt; and &lt;a href=&quot;http://sourceware.org/gdb/current/onlinedocs/gdb/Frames.html#Frames&quot; rel=&quot;nofollow&quot;&gt;frame&lt;/a&gt; command for jumping around in the stack and to find your way back when you get lost. Also, make sure you learn about the &lt;a href=&quot;http://sourceware.org/gdb/current/onlinedocs/gdb/Print-Settings.html#Print-Settings&quot; rel=&quot;nofollow&quot;&gt;print&lt;/a&gt; command, which is really powerful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You mention Eclipse. Have you tried &lt;a href=&quot;http://www.eclipse.org/cdt/&quot; rel=&quot;nofollow&quot;&gt;Eclipse CDT&lt;/a&gt; or &lt;a href=&quot;http://www.gnu.org/software/ddd/&quot; rel=&quot;nofollow&quot;&gt;DDD&lt;/a&gt; which are front ends for GDB and obviously much easier to use than the cli.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2011-01-01T21:21:51.170" />
  <row Id="33087" PostTypeId="2" ParentId="33082" CreationDate="2011-01-01T21:22:02.060" Score="2" ViewCount="" Body="&lt;p&gt;These guidelines/idioms are called Constrained Programming, which is not easy thing to do. It is used for modeling and solving combinatorial problems (NP-hard, NP-complete).&#xA;I can recommend you one book - &lt;a href=&quot;http://www.cambridge.org/gb/knowledge/isbn/item1170772/?site_locale=en_GB&quot; rel=&quot;nofollow&quot;&gt;Principles of Constraint Programming&lt;/a&gt;. This book is one of the best books on the subject, but, still, after reading it you still won't be able to apply it in practice.&lt;br&gt;&#xA;But, you will be able to do that by getting familiar yourself with &lt;a href=&quot;http://www.gecode.org/&quot; rel=&quot;nofollow&quot;&gt;Gecode&lt;/a&gt; - a toolkit for developing constraint-based systems and applications. Gecode provides a constraint solver with state-of-the-art performance while being modular and extensible.&lt;br&gt;&#xA;I can say that this subject is &lt;strong&gt;very&lt;/strong&gt; interesting, I'd say one of the best courses I had during my studies. Btw, the author of Gecode, was my professor, so I was very lucky :)&lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2011-01-01T21:22:02.060" />
  <row Id="33088" PostTypeId="1" AcceptedAnswerId="33106" CreationDate="2011-01-01T21:32:15.757" Score="1" ViewCount="166" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am a php programmer. Ever since I started working in php industry, companies I worked with used zend framework, codeigniter, and cake php. So...in windows programming world, what are equivalent to zend framework, codeigniter, and cake php?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason I am asking this question is because I am about to start windows programming. I am not asking for a certain language. I would like to know many frameworks as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;p.s: someone please add 'framework' and 'popular' tags for me...&lt;/p&gt;&#xA;" OwnerUserId="12197" LastActivityDate="2011-01-02T00:06:03.213" Title="What are famous windows programming framework in work field?" Tags="&lt;windows&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="33089" PostTypeId="2" ParentId="33082" CreationDate="2011-01-01T21:32:29.657" Score="1" ViewCount="" Body="&lt;p&gt;I tend to find this type of problem when using poco or dto 'dumb' objects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In which case, I've found my code using service type objects, usually separated by layers such as presentation / logic / persistence. Each layer serves up (or consumes) a (set) of dto's.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anther approach I like is to use smart containers. I create a container (such as a specialized list) that enforces rules. So I might have a deck that has 52 cards, and a pokerHand that has 5 cards, where a pokerHand may have 'isFullHouse' to model what a full house is. A PokerGame would have 1 deck, and 4 poker hands. The card object stays trivial (or dumb), while the containers are more behavior orientated (smart).&lt;/p&gt;&#xA;" OwnerUserId="12198" LastActivityDate="2011-01-01T21:32:29.657" CommentCount="1" />
  <row Id="33090" PostTypeId="2" ParentId="33088" CreationDate="2011-01-01T21:46:07.243" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.asp.net&quot; rel=&quot;nofollow&quot;&gt;ASP.NET&lt;/a&gt; is the primary Windows web development platform. There are various frameworks that operate on top of it, starting with Microsoft's own &lt;a href=&quot;http://www.asp.net/web-forms&quot; rel=&quot;nofollow&quot;&gt;ASP.NET Webforms&lt;/a&gt; and &lt;a href=&quot;http://www.asp.net/mvc&quot; rel=&quot;nofollow&quot;&gt;ASP.NET MVC&lt;/a&gt;. I believe ASP.NET MVC most closely parallels Cake PHP out of the frameworks you mentioned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are third-party frameworks as well such as &lt;a href=&quot;http://trac.caffeine-it.com/openrasta&quot; rel=&quot;nofollow&quot;&gt;OpenRasta&lt;/a&gt; and &lt;a href=&quot;http://fubumvc.pbworks.com/w/page/4314515/FrontPage&quot; rel=&quot;nofollow&quot;&gt;FubuMVC&lt;/a&gt;, but I can't speak to their popularity. I've only heard of the Microsoft's implementations used in production. In my experience they're typically &quot;good enough&quot; for most companies that don't wish to bring in third party dependencies.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2011-01-01T21:46:07.243" />
  <row Id="33091" PostTypeId="2" ParentId="32953" CreationDate="2011-01-01T21:47:55.230" Score="1" ViewCount="" Body="&lt;p&gt;As you said the issue of validation is subjective. The reason behind this though is that it relates to user experience/usability  which is not easily reducible to a finite number of do's or dont's. That said there are some general rules of thumb which can be used to make design/implementation decisions&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Content:&lt;/strong&gt; First rule of user experience is it is about user experience, which means it is about making it easy for user to work with software, which means &lt;strong&gt;think as a user and not as a developer&lt;/strong&gt; (or worse hacker)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Content:&lt;/strong&gt; From 1., it follows give information to user on a strictly &lt;strong&gt;need to know&lt;/strong&gt; basis. The user only needs information which is &lt;strong&gt;just enough&lt;/strong&gt; to address the issue, he is &lt;strong&gt;not interested&lt;/strong&gt; (in fact he gets annoyed with) in lots of &lt;strong&gt;technical jargon&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Grammar:&lt;/strong&gt; Again try to use passive voice as much as possible such as &quot;value should not be null&quot;, as opposed to &quot;you must not enter null value&quot; which depending on culture may seem rude/confrontational.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Delivery:&lt;/strong&gt; The feedback should be delivered so that it minimizes any effort/time by user, which is why it should as immediate and as accurate as possible after the error so that user can rectify it. For example it is a text box with incorrect input should be immediately indicated with a different invalidation color.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Delivery:&lt;/strong&gt; An extension of 4. when asking for user to verify all the valid inputs must be retained, with the exception of password.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Delivery:&lt;/strong&gt; They should be delivered as unobtrusively as possible which means the user is notified of the error, but he shouldn't have to spend any extra time, hence modal dialogs are a big no-no you should try as much as possible to stick to disable OK/Next/Apply button and invalidate the input control (example given in 4.)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Logging:&lt;/strong&gt; Make it so that it is possible to toggle logging mode. While logging help in trouble-shooting it is a drag to performance.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;I18N/L10N:&lt;/strong&gt; This varies on a case to case specifically implement this only if you need it now or going to need it in near future.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Updated:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now the situation changes a little in the context of a web application, with thin client and all the validation occurring on server side. To consider this case, there should be one additional rule next in importance only to 1. point (viz. it is all about user exp), that is &lt;strong&gt;performance&lt;/strong&gt;. Whatever we do, the performance should be a priority. Now in our case the performance is severely affected by the number of messages between client and server, which is why it may not be the best idea to send message after every input. Instead one could try a different approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To given an example, suppose the input has 5 steps, and user enters incorrect data on step 2 and 4, also step 3 has some password, in this case after user has completed all the steps, client should send message for validation, after the validation on server side, the user should be prompted only to enter &lt;strong&gt;only that&lt;/strong&gt; input which was incorrect (or a password) for steps 2,3 &amp;amp; 4.  Also the input to be re-entered should be &lt;strong&gt;clearly indicated&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Updated Again: Reg. accessibility for the impaired, I have never worked for the UI however I think the basic principle is same only instead of indicating invalid input by color, it should be indicated with the help of audio. Also in this case it might be a good idea to give immediate feedback instead of waiting till the end of all inputs.  &lt;/p&gt;&#xA;" OwnerUserId="8073" LastEditorUserId="8073" LastEditorDisplayName="" LastEditDate="2011-01-02T06:34:06.533" LastActivityDate="2011-01-02T06:34:06.533" CommentCount="3" />
  <row Id="33092" PostTypeId="2" ParentId="32800" CreationDate="2011-01-01T21:49:46.023" Score="0" ViewCount="" Body="&lt;p&gt;My most frequently used commands&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;bt - short for backtrace&lt;/li&gt;&#xA;&lt;li&gt;where - same as bt&lt;/li&gt;&#xA;&lt;li&gt;c - continue execution&lt;/li&gt;&#xA;&lt;li&gt;n - next source line&lt;/li&gt;&#xA;&lt;li&gt;s - step into function&lt;/li&gt;&#xA;&lt;li&gt;up - step up the call stack&lt;/li&gt;&#xA;&lt;li&gt;p - print the value of an expression.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And hitting return re-runs the previous command.&lt;/p&gt;&#xA;" OwnerUserId="5505" LastActivityDate="2011-01-01T21:49:46.023" />
  <row Id="33093" PostTypeId="1" CreationDate="2011-01-01T21:54:13.330" Score="0" ViewCount="121" Body="&lt;p&gt;reason : i really want this new years first day to be palindrome :P &lt;/p&gt;&#xA;" OwnerUserId="7064" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-02-18T08:48:38.957" LastActivityDate="2011-02-18T08:48:38.957" ClosedDate="2011-01-01T23:40:17.580" Title="Is there any platform where date is represented in a manner 1111 instead of 1-1-11" Tags="&lt;data-structures&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="33094" PostTypeId="1" CreationDate="2011-01-01T22:02:08.010" Score="0" ViewCount="197" Body="&lt;p&gt;I have been working in the enterprise Java field, mostly for financial institutions, for about seven years. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond core Java, what are &quot;parts&quot; of Java I should know by now? &lt;em&gt;Should&lt;/em&gt; as in it will be useful either to nail the interview, or in an actual job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I have never used JSP beyond &quot;hello, world&quot;, but I don't suppose that it's something I need to go learn. But I have got core Spring pretty well done. I've read up on GC but that was a while back and need to re-visit it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking for one suggestion per post please.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-02T08:24:22.377" ClosedDate="2011-01-02T21:34:36.657" Title="What parts of Java I should know by now?" Tags="&lt;career&gt;&lt;java&gt;&lt;interview&gt;" AnswerCount="2" CommentCount="0" FavoriteCount="1" />
  <row Id="33095" PostTypeId="2" ParentId="33093" CreationDate="2011-01-01T22:05:01.337" Score="2" ViewCount="" Body="&lt;p&gt;You can represent a date however you want in most platforms. But the closest you get in real life is probably 110101, which is a common format in Sweden.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2011-01-01T22:05:01.337" />
  <row Id="33096" PostTypeId="1" AcceptedAnswerId="33141" CreationDate="2011-01-01T22:07:08.597" Score="6" ViewCount="433" Body="&lt;p&gt;What server-side language(s) should be used for user-created information sites such as Facebook, SE, Blogs, etc.?&lt;/p&gt;&#xA;" OwnerUserId="11109" LastActivityDate="2011-02-26T20:08:36.823" Title="What server-side language(s) should be used for user-created information sites such as Facebook, SE, Blogs, etc.?" Tags="&lt;programming-languages&gt;&lt;web-development&gt;" AnswerCount="7" FavoriteCount="2" />
  <row Id="33097" PostTypeId="2" ParentId="18679" CreationDate="2011-01-01T22:13:29.703" Score="0" ViewCount="" Body="&lt;p&gt;Here is a good online tutorial for algorithms, data structures and design patterns in the works:&#xA;&lt;a href=&quot;http://www.ambesty.com&quot; rel=&quot;nofollow&quot;&gt;Ambesty&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="12200" LastActivityDate="2011-01-01T22:13:29.703" />
  <row Id="33098" PostTypeId="2" ParentId="33096" CreationDate="2011-01-01T22:14:14.343" Score="14" ViewCount="" Body="&lt;p&gt;Well, Facebook is written in PHP and SE sites are written in ASP.NET. Blog engines are pretty diverse in their implementations as well (Wordpress is in PHP, dasBlog is .NET, etc.). The obvious answer is &quot;any language will do, pick whatever you're most familiar with&quot;. With the possible exception of languages like C that aren't typically used for large-scale web development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some performance metrics to consider, but just about anything can be made to scale appropriately if/when you run up against having handle massive traffic.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2011-01-01T22:14:14.343" CommentCount="5" />
  <row Id="33099" PostTypeId="2" ParentId="33096" CreationDate="2011-01-01T22:16:49.710" Score="6" ViewCount="" Body="&lt;p&gt;The language does not matter nearly as much as the architecture of the server application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In theory, sites like these could be created in any language, but in practice it comes down to what languages are reasonable choices given things like differences in your familiarity with them and your choice of platform.&lt;/p&gt;&#xA;" OwnerUserId="10395" LastActivityDate="2011-01-01T22:16:49.710" />
  <row Id="33100" PostTypeId="2" ParentId="18679" CreationDate="2011-01-01T22:35:57.013" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0262531968&quot; rel=&quot;nofollow&quot;&gt;CLRS&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is by far my favorite resource.  I used it in my undergraduate computer science algorithms course and ended up buying the book 4 years later to read on my own to prepare for my M.S. Comp Sci courses.  It isn't an easy read by any means but if you work to understand the some of the math/proofs presented and then implement the pseudo-code in your favorite language(s), it is well worth the somewhat hefty price-tag.  The Algorithm Design Manual others have mentioned is also a great resource for learning problem identification but I found CLRS to be better for pure detail.&lt;/p&gt;&#xA;" OwnerUserId="11536" LastActivityDate="2011-01-01T22:35:57.013" />
  <row Id="33101" PostTypeId="2" ParentId="33001" CreationDate="2011-01-01T22:36:51.540" Score="0" ViewCount="" Body="&lt;p&gt;As Walter already mentioned you can try DreamSpark. You can also try to write mail / letter to some local MS representative. MS usually have tons of SW in &quot;Not for resale&quot; edition (also not for commercial usage) which is for promotional purpose. Few years ago I just got Windows XP Pro, Office 2003 Pro, VS 2005 Pro and Sql 2005 Standard by attending some MS road shows.&lt;/p&gt;&#xA;" OwnerUserId="4909" LastActivityDate="2011-01-01T22:36:51.540" />
  <row Id="33102" PostTypeId="1" CreationDate="2010-12-31T23:25:15.530" Score="9" ViewCount="255" Body="&lt;p&gt;I'm interested in compiling a list of major programming languages and their preferred documentation toolsets. To scope this a bit:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The exact structure of the answer may vary from language to language, but there appear to be two aspects common to all languages: (1) in-code syntax for documentation, and (2) documentation generators that make use of said syntax. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;There are also cases where generators are used independent of code. For example, tutorial-style documentation is common in the Python world and is often disconnected from underlying code. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Many languages have multiple commonly-used documentation strategies and tool chains, and I'd love to capture this. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Finally, there are cross-language tools like Doxygen that also have some traction and would be worth noting here.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Here are some obvious target languages to start with: &lt;code&gt;Python, Ruby, Java, C#, PHP, Objective-C, C/C++, Haskell, Erlang, Scala, Clojure&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this question catches on, I'll try and keep this section updated with the most recent list.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="12208" LastActivityDate="2011-01-02T18:42:47.103" Title="What are the preferred documentation tools for the major programming languages?" Tags="&lt;programming-languages&gt;&lt;documentation&gt;&lt;documentation-generation&gt;" AnswerCount="2" />
  <row Id="33103" PostTypeId="2" ParentId="33102" CreationDate="2010-12-31T23:29:46.283" Score="0" ViewCount="" Body="&lt;p&gt;Doxygen - C++, C, Java, Objective-C, Python, Fortran, PHP, C#&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just know it because it is what wxWidgets uses.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-01T23:02:10.590" />
  <row Id="33104" PostTypeId="2" ParentId="33102" CreationDate="2011-01-01T01:57:27.103" Score="10" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;C/C++: &lt;a href=&quot;http://www.stack.nl/~dimitri/doxygen/&quot; rel=&quot;nofollow&quot;&gt;Doxygen&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;C#: &lt;a href=&quot;http://sandcastle.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;Sandcastle&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Closure: &lt;a href=&quot;http://tomfaulhaber.github.com/autodoc/&quot; rel=&quot;nofollow&quot;&gt;Autodoc&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Erlang: &lt;a href=&quot;http://www.erlang.org/doc/apps/edoc/index.html&quot; rel=&quot;nofollow&quot;&gt;EDoc&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Haskell: &lt;a href=&quot;http://www.haskell.org/haddock/&quot; rel=&quot;nofollow&quot;&gt;Haddock&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Java: &lt;a href=&quot;http://download.oracle.com/javase/6/docs/technotes/guides/javadoc/index.html&quot; rel=&quot;nofollow&quot;&gt;JavaDoc&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Objective-C: &lt;a href=&quot;http://www.stack.nl/~dimitri/doxygen/&quot; rel=&quot;nofollow&quot;&gt;Doxygen&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Perl: &lt;a href=&quot;http://perldoc.perl.org/perlpod.html&quot; rel=&quot;nofollow&quot;&gt;perlpod&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;PHP: &lt;a href=&quot;http://www.phpdoc.org/&quot; rel=&quot;nofollow&quot;&gt;phpDocumentor&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Python: &lt;a href=&quot;http://sphinx.pocoo.org/&quot; rel=&quot;nofollow&quot;&gt;Sphinx&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Ruby: &lt;a href=&quot;http://yardoc.org/&quot; rel=&quot;nofollow&quot;&gt;YARD&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Scala: &lt;a href=&quot;http://www.scala-lang.org/docu/files/tools/scaladoc.html&quot; rel=&quot;nofollow&quot;&gt;scaladoc&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.stack.nl/~dimitri/doxygen/&quot; rel=&quot;nofollow&quot;&gt;Doxygen&lt;/a&gt;, while listed above for C/C++ and Objective-C, covers all the following languages: C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D&lt;/p&gt;&#xA;" OwnerUserId="8679" LastEditorUserId="8679" LastEditorDisplayName="" LastEditDate="2011-01-02T18:42:47.103" LastActivityDate="2011-01-02T18:42:47.103" CommunityOwnedDate="2011-01-02T18:42:47.103" CommentCount="4" />
  <row Id="33105" PostTypeId="1" AcceptedAnswerId="33107" CreationDate="2011-01-01T23:26:42.187" Score="5" ViewCount="256" Body="&lt;p&gt;I'm wondering if being in front of a very large screen (say 106&quot; instead of your usual dual 22&quot;), with appropriate distance, has any positive impact of your work conditions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm thinking about the case you are at home.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll need to move your office into a large depot if you allow that to all your staff :)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2011-01-01T23:40:49.563" LastActivityDate="2011-01-02T03:13:43.637" Title="Does programming in front of a projector screen work?" Tags="&lt;work-environment&gt;&lt;screen&gt;" AnswerCount="3" CommentCount="8" />
  <row Id="33106" PostTypeId="2" ParentId="33088" CreationDate="2011-01-02T00:06:03.213" Score="7" ViewCount="" Body="&lt;p&gt;I assume you're talking about doing Windows desktop development, rather than web development, right? After all, all the (main) web frameworks work equally well on both Windows &amp;amp; Linux.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In that case, there are many different GUI development frameworks to choose from.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://qt.nokia.com/&quot; rel=&quot;nofollow&quot;&gt;Qt&lt;/a&gt; - cross-platform, has language bindings for C++, Python, C#/.NET, and more&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.gtk.org/&quot; rel=&quot;nofollow&quot;&gt;GTK+&lt;/a&gt; - cross-platform, also has language bindings for C++, Python, C#/.NET and more&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.wxwidgets.org/&quot; rel=&quot;nofollow&quot;&gt;wxWidgets&lt;/a&gt; - cross-platform, but unlike Qt and GTK+ actually started out with the explicit goal of working on both Windows and X (both Qt and GTK+ started life as X-only toolkits), has language bindings for C++, Python, .NET and more&lt;/li&gt;&#xA;&lt;li&gt;The venerable &lt;a href=&quot;http://en.wikipedia.org/wiki/Microsoft_Foundation_Class_Library&quot; rel=&quot;nofollow&quot;&gt;MFC&lt;/a&gt;, C++ only and Windows-only, I would not recommend it for any new development work, it's really only supported for legacy application work.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Windows_Forms&quot; rel=&quot;nofollow&quot;&gt;WinForms&lt;/a&gt; - The &quot;original&quot; GUI toolkit for .NET, it's a fairly thin wrapper around the native Win32 controls, but has quite a powerful extension mechanism (so you can write your own controls quite easily)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Windows_Presentation_Foundation&quot; rel=&quot;nofollow&quot;&gt;WPF&lt;/a&gt; - Windows Presentation Foundation, Microsoft's latest .NET offering. This is probably the most powerful of all the toolkits available with powerful data binding support, templating and skinning. .NET-only, obviously.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That's just a selection of the most popular ones. &lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2011-01-02T00:06:03.213" />
  <row Id="33107" PostTypeId="2" ParentId="33105" CreationDate="2011-01-02T00:13:29.170" Score="12" ViewCount="" Body="&lt;p&gt;No, I don't think it would work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, displays that are typically optimized for viewing television and movies (i.e. plasma screens, projectors, even my ~4 year-old 42&quot; LCD screen) typically have very poor fine-detail reproduction. Text in particular, at small font sizes, looks blurry and hard-to-read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even the projectors we have in the meeting rooms at work are not that easy on the eyes after a 1 hour meeting. Maybe it's just me, though...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I don't know of many projectors which even support resolutions &gt; HDTV (i.e. 1920x1080) and even those ones are quite expensive (you'll pay around $5,000 here for a decent one, &lt;a href=&quot;http://www.cnet.com.au/epson-eh-r4000-339306174.htm&quot; rel=&quot;nofollow&quot;&gt;like this one for $7,500&lt;/a&gt;). You can buy a high-end, large monitor with higher resolution for the same price or less, in many cases you'd be able to buy &lt;em&gt;two&lt;/em&gt; such monitors for the same price.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2011-01-02T00:13:29.170" />
  <row Id="33109" PostTypeId="2" ParentId="33105" CreationDate="2011-01-02T00:31:14.837" Score="6" ViewCount="" Body="&lt;p&gt;Constant refocussing on a large projector screen at some distance away, and any reference materials closer at hand (or even the keyboard if you do not rely on touch-typing) would be likely to cause significant eye strain, I'm not sure what you're suggesting is a teribly good idea.&lt;/p&gt;&#xA;" OwnerUserId="100" LastActivityDate="2011-01-02T00:31:14.837" CommentCount="1" />
  <row Id="33110" PostTypeId="1" CreationDate="2011-01-02T00:31:35.133" Score="-1" ViewCount="138" Body="&lt;p&gt;I've been playing around with the thought of moving from a PC to a Mac. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;if you don't want to read this, skip to the &quot;upgrade options&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;My current setup&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Most of my time I spent moving back and forth between Linux and Windows. During the last upgrade to Vista, I got myself pc with Core 2 Quad, 8GB of RAM and GeForce 9800GTX+.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently I'm running dual boot between Ubuntu 10.04 and Windows Vista x64. Most of my work, around 80%, I can do on Ubuntu, which is mostly Ruby/Java programming. If that was all I needed, Ubuntu would be really great.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I also do quite a lot of Photography and Design, which forces me to use Adobe software (not only Photoshop). I also work with Wacom Intuos4 tablet, which doesn't really have great support on Linux machines.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've tried virtualization both ways (Linux in Win and Win in Linux), but neither was anywhere near satisfying.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are those of many many reasons I want to move to OS X.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Upgrade options&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;This is how I see my upgrade options:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Mac Mini&lt;/strong&gt; - cheapest solution, but worst performance&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;iMac&lt;/strong&gt; - more expensive, better performing with second LCD for &lt;em&gt;free&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Mac Pro&lt;/strong&gt; - could match my current PC performance, currently outside of the price range&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;When I compare the Mac hardware vs my current PC, it will be always worse, unless I decide to pump in a lot of money. &lt;strong&gt;The question that comes to my head, do I need to match my current PC hardware to get the same user experience with a Mac?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I look at it from the Vista point of view, 2GB RAM is as low as it gets, 4GB is  usable ... and the 8GB runs very smoothly. &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;PC HW != Mac HW?&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;If I bought the Mac Mini for roughly the same price I paid for my PC (Core 2 Quad with 8GB RAM), I'd get Core 2 Duo with 4GB RAM. But I don't want to run Vista on it, so I can't compare the hardware directly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Say that I want to do the same things on the Mac Mini as I do on my PC, eg. open up 50 tabs in Google Chrome and start working with a large PSD in Photoshop (couple hundred MB), &lt;strong&gt;would running on Mac OS X compensate for the lower hardware performance?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My point is, that if I'm about to &lt;em&gt;upgrade&lt;/em&gt;, I wouldn't like to upgrade to hardware that runs a lot slower. Good analogy for this is Vista vs Ubuntu, where you can run Ubuntu &lt;em&gt;smoothly&lt;/em&gt; on a low end laptop, but in Vista, you'd be happy to open a browser. &lt;strong&gt;Does the same principle apply to OS X?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="9217" LastActivityDate="2011-01-02T06:39:35.680" ClosedDate="2011-01-02T04:32:35.827" Title="Do I need to match hardware on a Mac to my PC to get the same user experience?" Tags="&lt;hardware&gt;&lt;mac&gt;&lt;osx&gt;" AnswerCount="1" CommentCount="5" FavoriteCount="1" />
  <row Id="33111" PostTypeId="1" CreationDate="2011-01-02T01:25:06.243" Score="4" ViewCount="434" Body="&lt;p&gt;I am right now doing my masters in EE in the US, and have previously worked for a couple years in the telecom industry back home in India. I came here wanting to transfer to CS, but at my current university, with my GPA, that seems not very possible. I am not very interested in EE, so I am thinking of dropping out of the program.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I could demonstrate my abilities and experience,  would software companies be willing to hire me in the US for my previous experience (with a half completed masters degree). Or would lack of the degree be a huge hindrance? Any suggestions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="12211" LastActivityDate="2011-01-02T06:13:10.730" ClosedDate="2011-01-02T21:35:04.740" Title="Software jobs after dropping out of masters degree" Tags="&lt;career-advice&gt;&lt;education&gt;" AnswerCount="7" />
  <row Id="33112" PostTypeId="2" ParentId="33111" CreationDate="2011-01-02T01:36:36.093" Score="2" ViewCount="" Body="&lt;p&gt;Generally employers don't look very favourably on prospective employees who drop out. It might be a sign that the prospective employee isn't willing to stick at things. This makes it a more risky proposition to take them on and train them up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whatever the position, a new employee is always a cost while he is learning the ropes and asking others how things are done. It can be many months or more before the cost of recruiting is recovered. Any hint that he might be more of a &quot;flight risk&quot; than another candidate will count against him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately this can mean that a CV/Resume won't get passed the initial filter even if you have a good reason for dropping out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have a few years continuous employment at the same employer the fact that you have dropped out will start to matter less.&lt;/p&gt;&#xA;" OwnerUserId="4396" LastActivityDate="2011-01-02T01:36:36.093" CommentCount="7" />
  <row Id="33113" PostTypeId="2" ParentId="33111" CreationDate="2011-01-02T01:47:26.113" Score="11" ViewCount="" Body="&lt;p&gt;Whatever you do, &lt;strong&gt;DO NOT DROP OUT!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You've come this far; it's just a bad idea. A year or two is a drop in the bucket and a masters can open doors that will last &lt;em&gt;years&lt;/em&gt; more. Anything you can do without that masters, I'd guess that you can do it &lt;em&gt;with&lt;/em&gt; one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll regret it. Suck it up, and finish what you started.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2011-01-02T01:47:26.113" CommentCount="22" />
  <row Id="33114" PostTypeId="2" ParentId="33111" CreationDate="2011-01-02T02:04:41.070" Score="1" ViewCount="" Body="&lt;p&gt;Based on timing, did you just complete your first semester, or your third? Whatever damage you've done to your GPA, you can fix it. You'll need to look deeply into yourself and honestly try to find out what you've been doing wrong. If you can bring up that GPA you will have a much better case for transferring.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Look at the graduate and undergraduate CS courses being offered at your university. Do you meet any of the pre-reqs? Meet with a professor &lt;em&gt;during their posted office hours&lt;/em&gt; and ask if they will let you take their CS course(*). Doing well in a CS course can help you transfer to that department. [You didn't say if you wanted to transfer to another school or to just another department.]&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do not meet the pre-reqs for most of the CS graduate courses, take the undergraduate courses. If you meet most of them, but not all, ask the CS professors if you could sit in on their course (or, again, just take it outright). If you do well and impress them, they will be willing to recommend you, which could make up for any poor marks on your EE record.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I agree that it would look pretty bad if you dropped out of the Master's program. But I believe transferring to a CS program would not look bad. Try to transfer, using this plan, and if that fails finish with your Masters. One to two years is not too long to &quot;tough out&quot; a tough situation.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;(*) Note: I emphasize that you meet professors face-to-face during their office hours. If you cannot bother yourself to see what a professor has posted outside of their office door, or put up on their webpage, they will have little desire to help you. Why? Because you will need them to sign off on you taking their course, and the last thing they would want is a &quot;high-maintenance&quot; student who expects the professor to do everything for them. With that in mind, show them your plan for the courses you want to take and why you want to transfer. I.e., do your homework.&lt;/p&gt;&#xA;" OwnerUserId="6329" LastActivityDate="2011-01-02T02:04:41.070" />
  <row Id="33115" PostTypeId="1" AcceptedAnswerId="33122" CreationDate="2011-01-02T02:05:34.553" Score="2" ViewCount="172" Body="&lt;p&gt;Douglas Crockford makes reference to &lt;strong&gt;Simplified JavaScript&lt;/strong&gt; in this article about &lt;a href=&quot;http://javascript.crockford.com/tdop/tdop.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Top Down Operator Precedence&lt;/strong&gt;&lt;/a&gt;.  Unfortunately he only makes references to it in this article.  The best explanation I found &lt;a href=&quot;http://patricklogan.blogspot.com/2007/10/simplified-javascript-cruft-reduced.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;.  But I still don't have a clue what it actually is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What is Simplified JavaScript?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="10057" LastActivityDate="2011-01-02T05:10:27.923" Title="What is &quot;Simplified JavaScript&quot;?" Tags="&lt;programming-languages&gt;&lt;javascript&gt;" AnswerCount="2" />
  <row Id="33116" PostTypeId="2" ParentId="33115" CreationDate="2011-01-02T02:23:24.070" Score="2" ViewCount="" Body="&lt;p&gt;Douglas Crockford (in that article) writes a parser (in JavaScript) which handles a simplified set of JavaScript. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2011-01-02T02:23:24.070" CommentCount="2" />
  <row Id="33117" PostTypeId="2" ParentId="33110" CreationDate="2011-01-02T02:47:02.607" Score="4" ViewCount="" Body="&lt;p&gt;It sounds like you've already discovered that the Adobe CS suite is a RAM hog on Windows. This is just as true on a Mac.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the types of tasks you describe, having lots of RAM matters more than a faster processor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I were you? I'd sell the PC, add that money to what you've got now, and then buy the fastest Mac with the most RAM I could afford. Then I'd just run Windows and Ubuntu virtualized (or via Bootcamp) on the Mac.&lt;/p&gt;&#xA;" OwnerUserId="99" LastEditorUserId="99" LastEditorDisplayName="" LastEditDate="2011-01-02T06:39:35.680" LastActivityDate="2011-01-02T06:39:35.680" CommentCount="1" />
  <row Id="33118" PostTypeId="2" ParentId="33111" CreationDate="2011-01-02T03:08:59.990" Score="4" ViewCount="" Body="&lt;p&gt;Before you drop out you should start applying for jobs. If you can't get the job you want, keep your butt in school.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-02T03:08:59.990" CommentCount="0" />
  <row Id="33119" PostTypeId="2" ParentId="33105" CreationDate="2011-01-02T03:13:43.637" Score="1" ViewCount="" Body="&lt;p&gt;I helped my wife's organization with a program and putting the app up on the TV was a big help. Most of the code was written before-hand, but was able to test and make slight changes as we went along. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I'm stuck on a problem or doing some planning, I use a white board, so this may be an alternative.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-02T03:13:43.637" />
  <row Id="33120" PostTypeId="2" ParentId="33111" CreationDate="2011-01-02T04:24:02.120" Score="0" ViewCount="" Body="&lt;p&gt;Two years for an MS isn't a very long time to spend for an MS degree, and I don't think you should drop out. You are into engineering after all, which is what your software career is all about. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't dislike what you're doing. Now that you're into it, enjoy your MS and prove to future potential employers that you HAVE gone through the rigors of a post graduate degree, and therefore are better prepared to weather storms that come your way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you had a CS post graduate degree, you won't be applying just every bit of knowledge that you obtained while studying.&lt;/p&gt;&#xA;" OwnerUserId="8903" LastActivityDate="2011-01-02T04:24:02.120" CommentCount="3" />
  <row Id="33121" PostTypeId="2" ParentId="33111" CreationDate="2011-01-02T04:33:00.083" Score="3" ViewCount="" Body="&lt;p&gt;If I were to hire you, you would have to demonstrate to me your passion for CS should you decide to drop out of your program. That could be anything -- your contributions to open source, stuff that you have built on your own, your expertise in programming languages or compilers etc. Anything that shows you have some fire.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If thats not the case, you need to re-think why you should not opt for another CS masters course elsewhere. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My 2 cents: I am not a huge fan of tomtoming academic credentials, but doing Masters does show that you have a desire to learn more about your art. &lt;strong&gt;That counts, bigtime.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2011-01-02T04:33:00.083" />
  <row Id="33122" PostTypeId="2" ParentId="33115" CreationDate="2011-01-02T05:10:27.923" Score="3" ViewCount="" Body="&lt;p&gt;Douglas Crockford, in his book &lt;em&gt;JavaScript: The Good Parts&lt;/em&gt; (p. 98-99), describes Simplified JavaScript:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I was invited last year to contribute a chapter to Andy Oram’s and Greg Wilson’s Beautiful Code (O’Reilly), an anthology on the theme of beauty as expressed in com- puter programs. I wanted to write my chapter in JavaScript. I wanted to use it to present something abstract, powerful, and useful to show that the language was up to it. And I wanted to avoid the browser and other venues in which JavaScript is typecast. I wanted to show something respectable with some heft to it.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I immediately thought of Vaughn Pratt’s Top Down Operator Precedence parser, which I use in JSLint (see Appendix C). Parsing is an important topic in computing. The ability to write a compiler for a language in itself is still a test for the complete- ness of a language.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;I wanted to include all of the code for a parser in JavaScript that parses JavaScript. But my chapter was just one of 30 or 40, so I felt constrained in the number of pages I could consume. A further complication was that most of my readers would have no experience with JavaScript, so I also would have to introduce the language and its peculiarities.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;So, I decided to subset the language. That way, I wouldn’t have to parse the whole language, and I wouldn’t have to describe the whole language. I called the subset Simplified JavaScript. Selecting the subset was easy: it included just the features that I needed to write a parser. This is how I described it in Beautiful Code:&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Simplified JavaScript is just the good stuff, including:&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Functions as first class objects: Functions in Simplified JavaScript are lambdas with lexical scoping.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Dynamic objects with prototypal inheritance: Objects are class-free. We can add a new member to any object by ordinary assignment. An object can inherit members from another object.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Object literals and array literals: This is a very convenient notation for creating new objects and arrays. JavaScript literals were the inspiration for the JSON data interchange format.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;The subset contained the best of the Good Parts. Even though it was a small language, it was very expressive and powerful. JavaScript has lots of additional features that really don’t add very much, and as you’ll find in the appendixes that follow, it has a lot of features with negative value. There was nothing ugly or bad in the sub- set. All of that fell away.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="12086" LastActivityDate="2011-01-02T05:10:27.923" CommentCount="1" />
  <row Id="33123" PostTypeId="2" ParentId="33096" CreationDate="2011-01-02T05:18:13.747" Score="2" ViewCount="" Body="&lt;p&gt;Let's see the list&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Facebook - PHP&lt;/li&gt;&#xA;&lt;li&gt;Twitter - Ruby on Rail&lt;/li&gt;&#xA;&lt;li&gt;Digg - PHP&lt;/li&gt;&#xA;&lt;li&gt;Wordpress - PHP&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;My impression is that PHP is on the lead, because the owner cost is lower. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most hosting offer LAMP service in really cheap prices, but not that close with say ASP or J2EE server (Google App Engine may be a escape route for this). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For Small company or individuals, as cost is a vital factor, they'll pick PHP instead. &#xA;Which makes more users and devs effort driven more into Opensource project in PHP, and thus reinforced the cycle. (Correct me if I am wrong)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As many had mentioned, the language of choice probably decided by the scalability and the deployment environment you have. &lt;/p&gt;&#xA;" OwnerUserId="12098" LastActivityDate="2011-01-02T05:18:13.747" CommentCount="3" />
  <row Id="33124" PostTypeId="2" ParentId="33111" CreationDate="2011-01-02T06:13:10.730" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I came here wanting to transfer to CS, but at my current university, with my GPA, that seems not very possible.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;A question:  What do you mean by &quot;Seems&quot;?  Does this mean that you tried to transfer and failed?  Or do just suspect you wouldn't actually be able to?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's the former, well, crap.  But if it's the latter, try anyway.  What have you got to lose?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I'm honestly a little perplexed by the multitude of answers implying that an incomplete Master's leaves you considerably &lt;b&gt;worse&lt;/b&gt; off than if you just have a Bachelor's -- that seems quite counter-intuitive.  But enough people hold that opinion (strongly!) that it doesn't feel safe to just wave away.  Does anybody have any actual evidence to back this up?  Why is it okay to decide your first job (or two) out of college was a big mistake, but deciding the same thing about your Master's program is a life-haunting disaster?&lt;/p&gt;&#xA;" OwnerUserId="17" LastActivityDate="2011-01-02T06:13:10.730" />
  <row Id="33126" PostTypeId="1" CreationDate="2011-01-02T07:10:22.353" Score="0" ViewCount="354" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you know a good java magazine for developers?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&lt;/p&gt;&#xA;" LastEditorUserId="7892" LastEditorDisplayName="" LastEditDate="2011-01-02T21:04:39.453" LastActivityDate="2011-01-03T03:15:12.720" ClosedDate="2011-01-02T21:35:45.627" Title="best magazine for java developer" Tags="&lt;java&gt;&lt;knowledge&gt;&lt;reading&gt;&lt;magazines&gt;" AnswerCount="3" CommentCount="5" />
  <row Id="33127" PostTypeId="2" ParentId="33126" CreationDate="2011-01-02T07:14:13.713" Score="0" ViewCount="" Body="&lt;p&gt;I like the &lt;a href=&quot;http://java.sys-con.com/&quot; rel=&quot;nofollow&quot;&gt;JDJ&lt;/a&gt; and &lt;a href=&quot;http://www.infoq.com/&quot; rel=&quot;nofollow&quot;&gt;InfoQ&lt;/a&gt;. There are many deeply discussion about tech article in JDJ. And if you are insteresting in Architect who faces the large system desgin issues, the InfoQ is a good chocie.&lt;/p&gt;&#xA;" OwnerUserId="12321" LastActivityDate="2011-01-02T07:16:14.443" />
  <row Id="33128" PostTypeId="2" ParentId="33126" CreationDate="2011-01-02T07:15:00.087" Score="0" ViewCount="" Body="&lt;p&gt;yeap ! maybe &lt;a href=&quot;http://www.javaworld.com/&quot; rel=&quot;nofollow&quot;&gt;JavaWorld&lt;/a&gt; , i like this great website.&lt;/p&gt;&#xA;" OwnerUserId="12221" LastActivityDate="2011-01-02T07:16:14.443" />
  <row Id="33130" PostTypeId="2" ParentId="32840" CreationDate="2011-01-02T07:34:02.690" Score="1" ViewCount="" Body="&lt;p&gt;People often hunt for almost-solutions in their existing code base, and copy the almost-solution and fix it up.  I used to think that such duplicated code was outright bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(But I do it a lot, so it can't be wrong! As a practical matter, I'd guess everybody is a copy-paste programmer)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I now perceive it to be is an means to make programmers efficient in the short term, with negative long term consequences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What code cloning (copy-paste-edit) does is allow a programmer to pick up a solution to a problem and customize it more quickly, than she could presumably do by writing from scratch.  From a (short-term) time and cost point of view, this is pretty much a win.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is that any cloned code comes with the set of bugs and assumptions built into the original copy.  When a bug is found in one, or the foundation set of assumptions changes, then all the copies need to be revalidated.  And while people seem to know their code is full of clones, they generally don't seem to know if the code they happen to be modifying has a clone somewhere else.  So, the clones don't get fixed, and that's that long term negative consequence.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I now think that right answer is that programmers should be encouraged to clone, and some tool should be used to track the location of all clones (since programmers seem unwilling or unable), and tell the programmer when she is modifying one, or let her examine the set before she starts and abstract the clones away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a &lt;a href=&quot;http://stackoverflow.com/questions/2427939/do-tools-exist-which-automatically-find-copy-and-paste-code&quot;&gt;variety of clone detection tools out there&lt;/a&gt;, so there's no excuse for people not tracking them anymore. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I &lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.70.1272&amp;amp;rep=rep1&amp;amp;type=pdf&quot; rel=&quot;nofollow&quot;&gt;built one over a decade ago&lt;/a&gt;&#xA;and using it has lead me to this conclusion). &lt;/p&gt;&#xA;" OwnerUserId="12135" LastEditorUserId="12135" LastEditorDisplayName="" LastEditDate="2011-01-02T21:30:23.420" LastActivityDate="2011-01-02T21:30:23.420" CommunityOwnedDate="2011-01-02T18:21:01.983" />
  <row Id="33131" PostTypeId="1" AcceptedAnswerId="33633" CreationDate="2010-12-31T14:24:57.477" Score="16" ViewCount="436" Body="&lt;p&gt;I have worked a little while with the Microsoft compiler from Visual C++ but I worked a long time with G++, and I remember often having bad times understanding what was wrong in my code with the former.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beside binary code generation and optimisation, I think this is a very important feature of a C++ compiler: giving the programmer a clue that makes him understand as fast as possible what is wrong with his/her code. I can understand some programmers understand programming as some sort of &quot;competition&quot; to make less errors, but to me that's a counter productive opinion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I once tried Clang compiler for C from the LLVM thingie, I didn't use it for a long time, but I was impressed on how explicit and easy to understand the error messages were.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your experiences, and how do you think this matters ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some WIP of C++ Clang:&#xA;&lt;a href=&quot;http://clang.llvm.org/cxx_status.html&quot; rel=&quot;nofollow&quot;&gt;http://clang.llvm.org/cxx_status.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2011-01-05T03:03:11.037" Title="Aren't there compilers better at telling the programmer what's wrong in a code ?" Tags="&lt;c++&gt;&lt;visual-c++&gt;&lt;compiler&gt;&lt;llvm&gt;&lt;clang&gt;" AnswerCount="6" CommentCount="8" FavoriteCount="2" />
  <row Id="33132" PostTypeId="2" ParentId="33131" CreationDate="2010-12-31T14:30:03.093" Score="7" ViewCount="" Body="&lt;p&gt;I think it does take a while to get used to a particular compiler's error messages, but once you have understood what each message means, (in my experience) you are in a good position to find the issue. Some compilers are better than others in terms of understanding what they are doing, so obviously it is worth putting some effort into generating decent messages, but at the end of the day, there is not silver bullet, you still need to examine the code manually and fix it!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a very hard problem to be specific about compiler errors without guessing- no one likes a smartarse less than programmers.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-02T07:38:03.253" CommentCount="3" />
  <row Id="33133" PostTypeId="2" ParentId="33131" CreationDate="2010-12-31T14:34:17.247" Score="4" ViewCount="" Body="&lt;p&gt;Basically, the compiler should not do anything more than pointing out which line is the culprit one and a little description of what is wrong. It is supposed you know the theory behind how general programming works and how your programming language works, thus more info from the compiler would not be needed in my humble opinion. If a compiler that does explain this kind of errors is to be made/has been done, i guess a lot of the time on it's development was used [READ: Used, not wasted] in the logic to parse those errors into human-readable and fully-explained English where that time could of been used into better optimization/standards compliance... I am not saying this is bad, but if i have to choose between a fully-fledged standard compiler such as the MSVC compiler and something a tad bit under-developed but that explains everything 100%... id go with MSVC. &#xA;These are my 2 cents, bear in mind i have NOT used Clang and have no real idea of what it is.&#xA;Happy coding :)&lt;/p&gt;&#xA;" OwnerUserId="12187" LastActivityDate="2011-01-02T07:38:03.253" CommentCount="3" />
  <row Id="33134" PostTypeId="2" ParentId="33131" CreationDate="2010-12-31T14:40:01.257" Score="18" ViewCount="" Body="&lt;p&gt;From my experience:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1)&lt;/strong&gt; C++ is complicated enough to make it difficult to parse it whatsoever, not to mention parse it with good error recovery. For example, omitting &lt;code&gt;;&lt;/code&gt; at the end of class definition often makes it one with the following declaration/definition, thus yielding a cryptic message like:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;New types cannot be defined in return type&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;instead of &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Omitted &lt;code&gt;;&lt;/code&gt; after class definition&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And the error is technically true! The problem is, the class def may be in one file and the error will appear in different one, which very often confuses beginner programmers (oh how many times did I fall for this one myself years ago!). But still, today's compilers try to be helpful - for example for quite some time &lt;code&gt;g++&lt;/code&gt; will give a hint (&quot;did you forget a &lt;code&gt;;&lt;/code&gt;?&quot;) after the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C++ is not perfect in most cases, but like 90% of them are quite simple to understand, and trivially simple once you know a bit better how C++ grammar looks like.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But there's a whole second level of errors out there...&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2)&lt;/strong&gt; Definitely the MOST sophiscated error messages a programmer may ever see are the errors related to templates and template instantiation. Such an error (just one!) often may span several screenfuls of text and an apprentice C++ programmer will panic at the very first sight. And the error underneath may be anything: even a simple typo in method name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem here is simple: &lt;strong&gt;Templates in C++ are a programming language by themselves.&lt;/strong&gt; No exagerrating here, they're proven to be Turing-complete :) And I believe that with the current C++, when you make a mistake with templates, there's NO reliable way for the compiler to guess &quot;how this code is supposed to look like&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, the only thing the compiler can do is to say: I cannot instantiate template X with arguments A, B and C when C is a template instantiated with U, W, because &lt;code&gt;C&amp;lt;U,W&amp;gt;&lt;/code&gt; cannot be passed as a parameter to &lt;code&gt;X::foo(A,B,C&amp;lt;K,R&amp;gt;)&lt;/code&gt;, et cetera, et cetera. Fill this with meaningful template names, meaningful method names and a lot of namespaces in between and you get lots of lines. Now, add &quot;candidates are:&quot; section to that and this gets LONG. Helpful and - with a little bit of patience and experience - readable,  but LONG.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, there was an attempt to solve this situation. It was called &quot;concepts&quot; and was meant to be included in the next C++ standard. Basically, a concept was to be something like a formal specificatation of the &quot;interface&quot; of a template.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With concepts, the above may be reduced to &quot;the template T was declared to be instantiable with the second template parameter obeying the concept XYZ, and that template doesn't support XYZ, so I cannot instantiate T here&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the problem is that &quot;concepts&quot;, in order to be defined in a correct and useful manner, would be probably even more complicated than the template system itself. So they gave it up in C++0x... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the answer is sad: The best thing we can do is to make a syntax colouring and formatting script for the compilers' error messages about templates. :)&lt;/p&gt;&#xA;" OwnerUserId="12693" LastActivityDate="2011-01-02T07:38:03.253" CommentCount="6" />
  <row Id="33135" PostTypeId="2" ParentId="33131" CreationDate="2010-12-31T18:27:05.860" Score="13" ViewCount="" Body="&lt;p&gt;As a compiler implementor I can tell you that reporting errors is the hardest part of compiler design. It means not only translating stuff, it means keeping track of how you translated it so if something goes wrong you have a &quot;back trace&quot; of how the compiler got there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example with templates, you can instantiate a template type parameter with an argument which is itself a template, and so to report an error context you have to report: the point the base type is defined, the point the template using it is defined, the point the template using it uses it, the point the outer template is defined, and the point that it is applied to the template .. and then the error may be in some method call applied to the resultant object which can't be reported until you call it so that's another point. So for a simple code like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;X&amp;lt;Y&amp;lt;T&amp;gt;&amp;gt; a; a.f();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;you have 6 distinct places in the source to report, any one of which could be the position of the actual error. Even if the end user can wade through this trivial example with only 6 positions reported they have no hope of wading through a more complex example, so the compiler HAS to do some work to try to guess what it should report and what to leave out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And all this requires keeping track of all that information.. for just about every &quot;term&quot; in the AST and IL. Can you imagine reporting a problem where there was overload resolution done, and an error occurs because the &quot;wrong&quot; overload was selected?&lt;/p&gt;&#xA;" OwnerUserId="8630" LastActivityDate="2011-01-02T07:38:03.253" />
  <row Id="33137" PostTypeId="2" ParentId="32953" CreationDate="2010-12-31T23:24:28.103" Score="1" ViewCount="" Body="&lt;p&gt;Here are my 2 cents:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;content&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think you should describe why the value is not correct, like &lt;em&gt;&quot;username cannot have special characters&quot;&lt;/em&gt;, so user knows what he did wrong and can fix it. error like &lt;em&gt;&quot;bad username&quot;&lt;/em&gt; is making user fight the app(for example I once created 50char password with everything I could think of because I was tired of fighting with the pass-system. however it was very strong password and I had to keep it in text file to remember it.).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;details&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think you should add enough details so user knows whats going on, but not too much(If I get big alert message with a lot of spam there, i wont even read it - its too much work and if I can only click &quot;ok&quot; than why bother? I might read it the second time I see it if Im interested why something doesnt work).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;delivery&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I prefer red text near the field or on the top of the page. I use alert only as last resort(clicking ok all the time sounds like something that can annoy people).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;logging&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;no, If validation is broken user will let you know about it.(if its a work app or he use it a lot/cares)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;internationalization&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think saying &quot;please&quot; to user is annoying, because he should be able to ignore what you are asking and do what he want to do. However if you saying &quot;please&quot; as &quot;you must do that&quot;, it would be annoying to me plus its extra useless text(aka spam).&lt;/p&gt;&#xA;" OwnerUserId="929" LastActivityDate="2011-01-02T07:38:31.520" CommunityOwnedDate="2011-01-01T02:43:28.390" CommentCount="1" />
  <row Id="33138" PostTypeId="2" ParentId="32953" CreationDate="2011-01-01T04:16:43.933" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Content&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Following the &lt;strong&gt;Delivery&lt;/strong&gt; approach provides much greater leeway concerning content. Spell it out as necessary. People hate systems that make them feel stupid. Great way to make them feel stupid is putting them in situations where they end up guessing - wrongly.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Grammar&lt;/strong&gt;: read &lt;em&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/020530902X&quot; rel=&quot;nofollow&quot;&gt;Elements of Style&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Delivery&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;make it viewable whilst a user edits the data form - ever hit an alert that tells you what's wrong across several fields only to OK out of it and not remember what needs doing? &lt;/li&gt;&#xA;&lt;li&gt;show restrictions on initial data entry - next to each field or tooltip on focus for example&lt;/li&gt;&#xA;&lt;li&gt;validate on blur in situations that make sense (e.g. username must be unique).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Logging&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually no, with a big fat &quot;it depends&quot;. There are situations where repeat failures warrant logging. For instance, repeat failed login attempts.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Internationalization&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Java_resource_bundle&quot; rel=&quot;nofollow&quot;&gt;Java Resource Bundles&lt;/a&gt; comes to mind. Think this an area without a good answer. Leave to programmers it'll either be too commanding or too verbose :). But maybe I just don't give my fellows enough credit. &lt;/p&gt;&#xA;" OwnerUserId="6102" LastActivityDate="2011-01-02T07:38:31.520" CommunityOwnedDate="2011-01-01T04:16:43.933" CommentCount="1" />
  <row Id="33139" PostTypeId="2" ParentId="32953" CreationDate="2011-01-02T02:53:47.623" Score="0" ViewCount="" Body="&lt;p&gt;My answer proposes stepping back from the problem and taking a wider view.  If that is more than is requested, my apologies and please skip to the next answer :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Short answer: read &lt;a href=&quot;http://worrydream.com/MagicInk/&quot; rel=&quot;nofollow&quot;&gt;Magic Ink&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Long answer...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why do we find software frustrating to use?  Consider some cases:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;em&gt;Are you sure you want to... ?&lt;/em&gt;  Gosh, I &lt;em&gt;thought&lt;/em&gt; I was sure (after all, I issued the command), but your question has me doubting myself -- there must be some dire consequence.  I sure wish I knew what that consequence was...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;em&gt;Invalid input, please enter a valid date.&lt;/em&gt;  I'm awfully sorry I offended you by that input!  It's just I'm not completely sure how you want me to enter that date.  I wish I had a calendar at hand...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Okay, these examples are extreme -- but we've all seen them, right?  I'll 'fess up and say I've written a fair share of such questions.  The problem is, I sometimes spend hours, days or longer thinking through all the possible workflows.  As a programmer, I build up a mental model of the whole rat's nest until I have internalized the whole thing.  So now I can see:  &quot;Ah yes, step 7b.  I need one bit here to tell me whether I should continue or abort.  I know: &lt;em&gt;Are you sure (Y/N)?&lt;/em&gt;  Voilà!  That will get me my bit.&quot;  The problem is, the user has not lived through those hours and days, and certainly has &lt;em&gt;not&lt;/em&gt; built-up the mental model.  He doesn't even know we're on step 7b!  The user will need much more information...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I relate these shaggy dog stories to make a point: I suggest that the messaging associated with data validation is really just a special case of the more general problem of how to present &lt;em&gt;all&lt;/em&gt; of the business-related information (content, errors, everything).  So, to cut to the chase...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://worrydream.com/MagicInk/&quot; rel=&quot;nofollow&quot;&gt;Magic Ink&lt;/a&gt; is a paper that tackles head-on &quot;the ubiquity of frustrating, unhelpful software interfaces&quot;.  It argues that &quot;interactivity is actually a curse for users and a crutch for designers, and users' goals can be better satisfied through other means&quot;.  The paper also contains pointers to other helpful references.&lt;/p&gt;&#xA;" OwnerUserId="8176" LastActivityDate="2011-01-02T07:38:31.520" CommunityOwnedDate="2011-01-02T02:53:47.623" CommentCount="1" />
  <row Id="33140" PostTypeId="2" ParentId="33094" CreationDate="2011-01-02T07:48:43.207" Score="0" ViewCount="" Body="&lt;p&gt;You need to know core Java, and some other useful &lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_Java_APIs&quot; rel=&quot;nofollow&quot;&gt;APIs&lt;/a&gt; and some other related frameworks. It's depending on your career requirements. Further, JSPs are in the front part, so I think, that won't help you, because, you are a application developer, not the front end developer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;EJBs, Hibernate, lock4j, because, in financial application, you need to write business logic, developing databases, persist user objects, etc.&lt;/p&gt;&#xA;" OwnerUserId="10935" LastActivityDate="2011-01-02T07:48:43.207" />
  <row Id="33141" PostTypeId="2" ParentId="33096" CreationDate="2011-01-02T08:01:07.503" Score="4" ViewCount="" Body="&lt;p&gt;It can be any language. But if you say PHP, I have some points-&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From migueldeicaza in Twitter:&lt;br&gt;&#xA;Reddit is experiencing some cognitive dissonance pains over StackOverflow using 5 .NET servers instead of 500 PHP ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have also seen a article by a facebook developer team member who said that, if facebook were to re-developed from scratch now, probably they would have chosen python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, if your site really scale up, you should consider using other languages than php. Using php you can scale up. But have to do a lot of tweaking IMHO.&lt;/p&gt;&#xA;" OwnerUserId="963" LastActivityDate="2011-01-02T08:01:07.503" />
  <row Id="33142" PostTypeId="2" ParentId="33126" CreationDate="2011-01-02T08:05:55.893" Score="1" ViewCount="" Body="&lt;p&gt;My subscriptions,&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.javaranch.com/journal/&quot; rel=&quot;nofollow&quot;&gt;JavaRanch&lt;/a&gt; journal. &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.javaworld.com/newsletter/&quot; rel=&quot;nofollow&quot;&gt;JavaWorld&lt;/a&gt; News Letters.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/JavaSamples&quot; rel=&quot;nofollow&quot;&gt;Java Samples&lt;/a&gt; News Letters.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;These only for Java, and there are others which contains Java and other languages like &lt;a href=&quot;http://www.codeproject.com/&quot; rel=&quot;nofollow&quot;&gt;CodeProject&lt;/a&gt;, etc.&lt;/p&gt;&#xA;" OwnerUserId="10935" LastEditorUserId="10935" LastEditorDisplayName="" LastEditDate="2011-01-03T03:15:12.720" LastActivityDate="2011-01-03T03:15:12.720" CommentCount="4" />
  <row Id="33144" PostTypeId="2" ParentId="33094" CreationDate="2011-01-02T08:24:22.377" Score="0" ViewCount="" Body="&lt;p&gt;It depends on what you want to work on. If you are interested in user interaction, then definitely learn about JSPs and Servlets. Learn how the frameworks implement the MVC pattern. While you will not need to make a framework from scratch, it will help you better understand the underlying logic and be able to better use the frameworks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are interested in the &quot;guts&quot; of the system, then look into EJBs (Enterprise Java Beans) and how they can connect into containers - mechanisms to help support persistence, RPC calls, and other infrastructure protocols.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By learning these concepts, you should understand the core ideology behind web development rather than just how to use a tool. This will help you better use Java and enable an easier transfer to other web languages if you ever decide to do so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One book that shows a lot of enterprise patterns, and one that I found helpful, is &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321127420&quot; rel=&quot;nofollow&quot;&gt;Patterns of Enterprise Application Architecture by Martin Fowler&lt;/a&gt;. That resource covers patterns related to the three tier architecture model that most web applications use and is a good place to look for these base concepts. Additionally, the code examples are written in Java.&lt;/p&gt;&#xA;" OwnerUserId="7305" LastActivityDate="2011-01-02T08:24:22.377" />
  <row Id="33145" PostTypeId="1" AcceptedAnswerId="33211" CreationDate="2011-01-02T08:27:41.537" Score="4" ViewCount="459" Body="&lt;p&gt;C# and Python can't compete with C and Assembly when writing such tools is the need. I left C many years back and I don't think I will be able to cope up so fast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it possible to write Anti-Virus and Intrusion-Detection tools using C# or Python? If yes, what things to learn along side and where I can find good resources on this?&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2011-01-02T19:20:00.737" Title="Is it possible to write an anti-virus like thing using C# or Python?" Tags="&lt;c#&gt;&lt;python&gt;&lt;antivirus&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="2" />
  <row Id="33146" PostTypeId="2" ParentId="33145" CreationDate="2011-01-02T09:00:29.460" Score="4" ViewCount="" Body="&lt;p&gt;Antivirus programs just iterate though a filesystem and do pattern matching. You could write an antivirus program in any programming language that can do both of these things.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2011-01-02T09:00:29.460" CommentCount="9" />
  <row Id="33147" PostTypeId="1" AcceptedAnswerId="33155" CreationDate="2011-01-02T09:01:27.653" Score="0" ViewCount="94" Body="&lt;p&gt;I'm learning to write them and need some good articles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you.&lt;/p&gt;&#xA;" OwnerUserId="3791" LastEditorUserId="3791" LastEditorDisplayName="" LastEditDate="2011-01-02T09:16:03.880" LastActivityDate="2011-01-02T11:05:27.167" Title="Where can I get basic stuff about writing unit test?" Tags="&lt;unit-testing&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="33148" PostTypeId="1" AcceptedAnswerId="33152" CreationDate="2011-01-02T06:56:57.890" Score="2" ViewCount="392" Body="&lt;p&gt;What is the most influential OOP-related concept that you have come across?  Preferably some realization, discovery, or idea that significantly influenced your OOP design skills and made you a better programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(posting this from my phone after reading &lt;a href=&quot;http://fitzgeraldnick.com/weblog/39/&quot; rel=&quot;nofollow&quot;&gt;http://fitzgeraldnick.com/weblog/39/&lt;/a&gt; ... sorry if it's a dupe)&lt;/p&gt;&#xA;" OwnerUserId="5904" LastActivityDate="2011-01-02T19:11:52.767" ClosedDate="2011-01-02T21:33:19.077" Title="What is the most influential OOP concept you have learned?" Tags="&lt;object-oriented&gt;&lt;design-patterns&gt;&lt;language-agnostic&gt;&lt;design-principles&gt;" AnswerCount="11" CommentCount="1" />
  <row Id="33149" PostTypeId="2" ParentId="33148" CreationDate="2011-01-02T07:04:58.717" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;That &quot;OOP&quot; is everything -- and nothing.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem with &quot;OOP&quot; is that when discussed it is normally only considered in one aspect (e.g. Nominative Class-Based Single-Inheritance/Dispatch with Interfaces -- e.g. Java or C#). Broadening the understand of &quot;OOP&quot; beyond this is/was my &quot;insight&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is &quot;OOP&quot; to me? &lt;em&gt;Any&lt;/em&gt; form of structured polymorphic access over an ADT. This does not assume type of polymorphism, calling convention, or dispatch method -- those are merely artifacts and restrictions imposed by the host language.&lt;/p&gt;&#xA;" OwnerUserId="26042" LastActivityDate="2011-01-02T09:14:49.700" CommentCount="1" />
  <row Id="33150" PostTypeId="2" ParentId="33148" CreationDate="2011-01-02T07:07:37.547" Score="3" ViewCount="" Body="&lt;p&gt;During my time as a professional developer I've learned quite a few concepts on OO development that helped me in growing as better developer, so I can't quote only &quot;one&quot; single development, but I have to acknowledge these as main concepts:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Desing Patterns: Not really a concept, but a conglomerate of concepts, but I think that if you are a developer doing OOD and you don't know DP, then you should read them ASAP&lt;/li&gt;&#xA;&lt;li&gt;SOLID development, these letters are one of the greatest influences I've received and are the guidelines I follow when developing.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think that OOP is just way too complex to be summed to a few important concepts, but these are the ones &quot;I&quot; like. You should read a lot and make your own list (and post it somewhere after...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope I can help&#xA;And happy new year&lt;/p&gt;&#xA;" OwnerUserId="8750" LastActivityDate="2011-01-02T09:14:49.700" CommentCount="2" />
  <row Id="33151" PostTypeId="2" ParentId="33148" CreationDate="2011-01-02T07:08:06.863" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Separating the interface from the implementation&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A well designed interface allows you to change and improve the implementation later on.  By interface I mean a set of methods operating on an object or just an API to some closed subsystem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There any many ways to implement this regardless of whether the language actually supports OOP.&lt;/p&gt;&#xA;" OwnerUserId="17053" LastActivityDate="2011-01-02T09:14:49.700" CommentCount="1" />
  <row Id="33152" PostTypeId="2" ParentId="33148" CreationDate="2011-01-02T07:10:35.303" Score="11" ViewCount="" Body="&lt;p&gt;Prefer composition over inheritance.&lt;/p&gt;&#xA;" OwnerUserId="6745" LastActivityDate="2011-01-02T09:14:49.700" CommentCount="2" />
  <row Id="33153" PostTypeId="2" ParentId="33148" CreationDate="2011-01-02T07:42:43.050" Score="2" ViewCount="" Body="&lt;p&gt;In terms of &quot;discovery&quot; I remember my astonishment when finding that using an OOP approach I was able to wrap my head around much more complex programs. After some playing with OOP the very first non trivial program I wrote using OOP (Turbo Pascal 5.5 at that time) was about 10x the size of any other program I had written before, not in terms of lines of code but in terms of functionalities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After some time I've come to the conclusion that a very important concept was bundling of data and code (I'm not using the word encapsulation because that - at least according to wikipedia - requires the concept of private/public and I don't think kind of &quot;forced&quot; hiding is really that important) and even more important the approach of attacking a big problem making small steps (classes) where for each one you force yourself to think to a clean interface and an implementation where you handle the details.&lt;/p&gt;&#xA;" OwnerUserId="9461" LastActivityDate="2011-01-02T09:14:49.700" />
  <row Id="33154" PostTypeId="2" ParentId="33068" CreationDate="2011-01-02T09:15:46.320" Score="13" ViewCount="" Body="&lt;p&gt;I have to say that having looked at bits of open source code over the years, I've been hugely disappointed with pretty much all of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main irritation for me is that there are usually very few comments, frequently the only comments are some long and legalistic copyright notice. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The linux kernel is an example where the files frequently don't even have a comment in them saying what purpose they serve (eg driver for XYZ would at least tell me I'm in roughly the right place).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've come from commercial and defence programming where the coding standards require sensible intelligible comments not just to say what a code unit does, but through out the code there must be blocks of comments that describe algorithms, methods, peculiarities, hacks / clever things, all so that whoever comes after can look and figure out QUICKLY what is being done rather than by painstakingly wading through the actual code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps the moral is: Tell me what you are doing, dont make me figure it out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've not found ANY open source code that does this well. As far as looking to open source as a means of learning good coding practices, my jaundiced advice is: Don't.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastEditorUserId="6279" LastEditorDisplayName="" LastEditDate="2011-05-25T10:07:56.067" LastActivityDate="2011-05-25T10:07:56.067" CommentCount="8" />
  <row Id="33155" PostTypeId="2" ParentId="33147" CreationDate="2011-01-02T09:16:11.760" Score="2" ViewCount="" Body="&lt;p&gt;Are you talking about Unit Testing in general? In which case a simple Google would give you more than enough resources to start learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or do you want information about writing Unit Tests in a specific language? In that case you need to clarify your question to include the information.&lt;/p&gt;&#xA;" OwnerUserId="8478" LastActivityDate="2011-01-02T09:16:11.760" CommentCount="1" />
  <row Id="33156" PostTypeId="1" AcceptedAnswerId="33192" CreationDate="2011-01-02T09:21:20.793" Score="3" ViewCount="501" Body="&lt;p&gt;I was attempting to identify an element of software engineering that I think is overlooked, not emphasized or not taught in typical undergraduate course work for CS or SE. What I came up is the concept of defensive programming. I would like to hear the community's options on defensive program and/or specific techniques that you use on a regular basis. Also, I would to know if there are any language specific techniques. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just to more clear. I am not looking for a lesson in defensive program. I understand what it is. I was hoping this would be more of discussion about different method members of the community employ or find valuable. Here are some techniques that I use. Keep in mind that I use C almost exclusively. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coding standard. You not might initially think that this has anything to do with defensive programming, but it does. To illustrate, suppose your coding standard requires you to prepend variable names with the type of variable it is such as IntValue or UIntValue. The convention allows you to easily spot potential promotion rule issues like (IntX = IntValue * UIntValue)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use preprocessor macros for constants. Personally, I think this also make your program more readable and maintainable, but it also provided a safety net. You can be sure that all areas of the code that use the macro will be updated when you change the value. Other uses of preprocessor macros can also provided defensive attributes in your code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some technique are built right into the language such as static variables or function declarations or in c++ data encapsulation.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course there are more obvious ones including validating all your input and output. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2011-01-03T01:54:38.197" LastActivityDate="2011-01-03T01:54:38.197" Title="Defensive Programming Techniques." Tags="&lt;best-practices&gt;&lt;programming-practices&gt;" AnswerCount="3" CommentCount="4" FavoriteCount="2" />
  <row Id="33157" PostTypeId="1" CreationDate="2011-01-02T09:30:28.113" Score="4" ViewCount="167" Body="&lt;p&gt;I was pretty good with algorithms and data structures once, a long long time ago. Since then, I programmed professionally, and then went to manage a small team, which totally shot my tech skills in this field back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've decided I want to be a developer again, and work for Google. The thing is, I'm so out of practice, that if I were to be interviewed right now I would surely flunk out in 10 minutes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What training program would you recommend for me to get back into shape? I already started this weekend by going back to the absolute basics and implementing a few sort algorithms, linked list, and hash table. Next, I think I'll read through the entire course material on the other basic data structures and graph algorithms. I want to find a focused set of practical exercises I can do in a relatively short amount of time, to juggle the old brain cells. I know this stuff - I just need to remind myself that I know it.&lt;/p&gt;&#xA;" OwnerUserId="12223" LastActivityDate="2011-01-02T12:05:20.333" Title="How to ramp up my data structures skills after a long hibernation" Tags="&lt;training&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="4" />
  <row Id="33158" PostTypeId="1" AcceptedAnswerId="33159" CreationDate="2011-01-02T09:35:21.337" Score="7" ViewCount="238" Body="&lt;p&gt;Just having read &lt;a href=&quot;http://programmers.stackexchange.com/questions/9657/programming-with-dyslexia&quot;&gt;this question&lt;/a&gt; regarding developers with &lt;a href=&quot;http://en.wikipedia.org/wiki/Dyslexia&quot; rel=&quot;nofollow&quot;&gt;dyslexia&lt;/a&gt;, I still have some open questions on how to deal with it:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am working on a project sinc approx. 6 month with a new developer who just finished university. I see that the code quality is high, what he's missing is the ability to write texts (even short ones) in an error-free manner (both, syntax and grammar errors).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He is working on some UI stuff (VS.NET 2010, ASP.NET 4) and, beside coding, has to write short text for labels, buttons, grid view headers, page titles, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since even those texts have errors inside, no matter how much I try to discuss the need for a professional, text-error-free UI, he seems to not manage to get this right, although he really tries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my questions are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Are there any hints how he (or I) should proceed to enhance the text quality?&lt;/li&gt;&#xA;&lt;li&gt;Do you know any tools (like inline spell checkers) for VS.NET to highlight syntax and grammar errors?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(We are working on a German-only UI, if this is important to know)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2719" LastActivityDate="2011-01-02T16:21:03.730" ClosedDate="2011-01-03T11:17:23.030" Title="How to coach a developer with dyslexia to improve his spelling and grammar capabilities?" Tags="&lt;spelling&gt;&lt;dyslexia&gt;" AnswerCount="6" CommentCount="8" />
  <row Id="33159" PostTypeId="2" ParentId="33158" CreationDate="2011-01-02T09:59:44.960" Score="5" ViewCount="" Body="&lt;p&gt;Dyslexia is a general problem, rather than one to do with computing.  The question &quot;Are there any hints how he (or I) should proceed to enhance the text quality?&quot; has the same answer as &quot;How do I improve his accuracy with written work?&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your colleague has been through the whole system and has come out of university, then he has probably dealt with the problem all his life and be a lot better already than he would be without trying very hard and learning various techniques since he was young.  If for some reason he has not had proper help, then you could look at Dyslexia resources within his native language, such as: &lt;a href=&quot;http://www.bvl-legasthenie.de/&quot; rel=&quot;nofollow&quot;&gt;http://www.bvl-legasthenie.de/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this German UI you are working on is not his native language, but another you are handling, then that'll be a lot harder.  It's one thing trying hard to keep spelling and grammar correct in a language you know well, quite another to do it when you do not understand what is being said.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My brother and best friend both have severe dyslexia and I have taught in the past many adults and kids with the condition, also worked alongside many in computing, it is very hard work for them and there is always a legacy of spelling difficulty.  The &quot;need&quot; for accuracy is all very well, they will try their best, but expect errors indefinitely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is of course the issue of &lt;em&gt;attention to detail&lt;/em&gt;, when hiring it is the foremost thing I look for in candidates.  Programming and indeed design connected with computing, requires very high precision and total attention to detail, slack people have major trouble with this.  Dyslexia isn't an absence of attention to detail, just a confusion with ordering and usage.  Do make sure he is paying full attention to detail, not just being slap-dash.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure there are inline spellcheckers, though it is hard to parse text within code, there are spell checkers (as opposed to autocomplete) for variable names around, though I forget the names.  Keeping the written parts of the UI in a translation file may help with this, rather than having visual text inline in code.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2011-01-02T09:59:44.960" CommentCount="1" />
  <row Id="33160" PostTypeId="2" ParentId="33148" CreationDate="2011-01-02T10:01:19.897" Score="2" ViewCount="" Body="&lt;p&gt;You don't need objects to do object oriented programming.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2011-01-02T10:01:19.897" />
  <row Id="33161" PostTypeId="2" ParentId="33157" CreationDate="2011-01-02T10:45:53.570" Score="0" ViewCount="" Body="&lt;p&gt;How long ago is 'a long long time ago' ...?&lt;/p&gt;&#xA;" OwnerUserId="7439" LastActivityDate="2011-01-02T10:45:53.570" />
  <row Id="33162" PostTypeId="2" ParentId="33157" CreationDate="2011-01-02T10:56:36.977" Score="0" ViewCount="" Body="&lt;p&gt;When you used to be pretty good with algorithms and data structures, what were the resources you accessed?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How short is the &quot;relatively short amount of time&quot; you need to brush up your knowledge?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think knowledge that is gained with dedication will ever vanish. It will only fade away a bit, and YOU are the best judge of which areas you need to work on to regain your old prowess with the subjects you once loved.&lt;/p&gt;&#xA;" OwnerUserId="8903" LastActivityDate="2011-01-02T10:56:36.977" />
  <row Id="33163" PostTypeId="2" ParentId="33158" CreationDate="2011-01-02T10:58:20.140" Score="5" ViewCount="" Body="&lt;p&gt;I have to agree with Axidos. Dyslexia doesn't mean lazy or stupid or uneducated or demotivated. It's a neurologically based disability. I don't have it, but I've heard about surprising environmental changes having a huge impact (as they do in Aspergers, which I do have).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, forcing him to overcome the disability by sheer effort isn't the same as demanding that a non-dyslexic take care with language - you could be forcing him to drop other priorities to compensate and, even then, forcing a rapid burn-out. Similar issues happen in Aspergers - people get overloaded trying to meet the demands of others who expect lots of social interaction, stop coping, end up having to drop things as a result right down to personal hygiene, and still end up burning out and becoming clinically depressed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And remember, if he's constantly questioning his spelling and grammar, he's constantly distracted from thinking about design and coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why not simply arrange for proofreading? Your VCS can tell you which files he has edited recently and show the changes. Code reviews are good practice anyway (anyone can make a mistake, and compilers can only catch the trivial ones), and a class of errors you can systematically look for knowing that they will recur is much less of a problem than the errors that you can't anticipate in advance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Particular known common errors can be searched for throughout your source using a fairly simple script.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2011-01-02T10:58:20.140" CommentCount="3" />
  <row Id="33164" PostTypeId="2" ParentId="33147" CreationDate="2011-01-02T11:05:27.167" Score="1" ViewCount="" Body="&lt;p&gt;I think &lt;a href=&quot;http://xunitpatterns.com/Organization.html&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; is a nice start. It gives information from the basics up until patterns and best practices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is the site that belongs to a great book &lt;a href=&quot;http://www.bookdepository.co.uk/book/9780321504807/Xunit-Test-Patterns&quot; rel=&quot;nofollow&quot;&gt;xUnit test patterns.&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2011-01-02T11:05:27.167" />
  <row Id="33165" PostTypeId="2" ParentId="33156" CreationDate="2011-01-02T11:09:35.430" Score="3" ViewCount="" Body="&lt;p&gt;Parts of defensive programming very much have been incorporated into the accepted learning curricula.  Defensive programming entails many different things, even though they all revolve around 'handling the unexpected'.   Mainstream languages like Java and C# have explicit 'Exceptions' and 'Assertions' which come from the defensive programming philosophy.  You should definitely use exceptions in your code.  Assertions are more of the 'pure' defensive programming, and non-withstanding the caveats below, you should use them sparingly (outside of test code), but where appropriate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two other aspects of traditional defensive programming are now handled under different names.  The first is simply 'Security'.  I won't go into everything involved in writing secure code here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another is &quot;Design By Contract&quot;.  This method of programming is on the outs due to the rise of &quot;Agile&quot;, as it's seen as too much front-loaded design.  Part of the reason for that is two-fold, first, many of the previous needs to enforce contracts in imperative programming are now handled by the OOP class hierarchy such that it's impossible to get into the bad states at all, so there's no need to check them.  Second, many of the traditional need to check parameters like for buffer overflows, now automatically throw exceptions by the runtime and thus needn't be checked by the coder (the runtime is checking).  Finally, there is a drive, in agile, towards test-driven development, and it's sometimes impossible to generate unit tests for conditions that are not expected to happen.  In such cases, a piece of defensive code will cause your code-coverage to decrease, which is a bad thing.&lt;/p&gt;&#xA;" OwnerUserId="11376" LastActivityDate="2011-01-02T11:09:35.430" CommentCount="4" />
  <row Id="33166" PostTypeId="2" ParentId="33156" CreationDate="2011-01-02T11:09:36.497" Score="6" ViewCount="" Body="&lt;p&gt;I suppose you'll never have too many assertions in your program... Add some tight invariants to your classes, and take as granted that whatever reference/pointer you use &lt;em&gt;will&lt;/em&gt; be null at one time or another...&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2011-01-02T11:09:36.497" CommentCount="2" />
  <row Id="33167" PostTypeId="2" ParentId="33148" CreationDate="2011-01-02T11:14:43.983" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Liskov_substitution_principle&quot; rel=&quot;nofollow&quot;&gt;Liskov Substitution Principle&lt;/a&gt;: never sub-class if the new class can't be used instead of its parent in &lt;em&gt;every&lt;/em&gt; case...&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2011-01-02T11:14:43.983" CommentCount="1" />
  <row Id="33168" PostTypeId="2" ParentId="33157" CreationDate="2011-01-02T11:17:00.663" Score="1" ViewCount="" Body="&lt;p&gt;I'd suggest picking a real data structure or file format that people are using right now, and do something cool with it.  The Git file format is pretty well documented for instance:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://book.git-scm.com/1_the_git_object_model.html&quot; rel=&quot;nofollow&quot;&gt;http://book.git-scm.com/1_the_git_object_model.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing something interesting with a format people use, and being rigorous about it, teaches lessons -and- gives you something people will be interested in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or at the very least, make something with a unique angle.  When I was in a position similar to yours, I wrote an answer to an online interview question about making a unidirected graph that could detect the insertion of cycles.  It would have been an easy problem if I hadn't added extra constraints... but I decided to require that it could do insertions in O(1).  The result was NoCycle:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://hostilefork.com/nocycle/&quot; rel=&quot;nofollow&quot;&gt;http://hostilefork.com/nocycle/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="944" LastActivityDate="2011-01-02T11:17:00.663" />
  <row Id="33169" PostTypeId="2" ParentId="33157" CreationDate="2011-01-02T11:18:32.347" Score="1" ViewCount="" Body="&lt;p&gt;This depends on exactly what your goal is - e.g. are is algorithm design and analysis in there, or are you sticking with the standard structures and algorithms? But it sounds to me as if you're already doing what you need to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you still have an old favorite text book from &quot;a long long time ago&quot;, I suggest revisiting that. Beyond that, it's the standard revisiting-anything advice. Ask yourself specific questions, look for the answers, when you run out of questions skim and browse quickly through whatever you can find until you can come up with some more specific questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Algorithms and Data Structures (Niklaus Wirth) is a relatively concise book on basic algorithms and data structures without all the algorithm design and analysis. Very basic, though - lists, various trees, heaps, but I don't remember about digraphs for example. One advantage is that there's a free download of the Oberon version - &lt;a href=&quot;http://www.inf.ethz.ch/personal/wirth/&quot; rel=&quot;nofollow&quot;&gt;http://www.inf.ethz.ch/personal/wirth/&lt;/a&gt; - look for the PDF link near the bottom of the books list. Wikipedia is an obvious resource, but has so much that it's a good idea to decide what you want and what you don't before you go there.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2011-01-02T11:18:32.347" />
  <row Id="33170" PostTypeId="1" CreationDate="2011-01-02T11:35:27.613" Score="6" ViewCount="297" Body="&lt;p&gt;There are now lots of WYSIWYG editors, however whenever we use one on a CMS-based website we consistently have issues. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The biggest being users pasting content from Word or other online sources and all the various formatting rules being added in &quot;behind the scenes&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you deal with these editors on a live production website?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love Markdown, however its target market is most definitely the tech industry.&lt;/p&gt;&#xA;" OwnerUserId="11052" LastEditorUserId="4911" LastEditorDisplayName="" LastEditDate="2011-03-07T13:07:51.490" LastActivityDate="2011-03-07T15:30:14.537" Title="How to deal with WYSIWYG editors?" Tags="&lt;wysiwyg&gt;&lt;editors&gt;" AnswerCount="5" FavoriteCount="2" />
  <row Id="33171" PostTypeId="2" ParentId="33170" CreationDate="2011-01-02T11:41:31.900" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Limit functionalities&lt;/strong&gt;, just like the one I'm using right now to write this answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recent WYSIWYGs provide that ability, including automatic formatting stripping on paste.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-02T11:41:31.900" />
  <row Id="33172" PostTypeId="2" ParentId="28950" CreationDate="2011-01-02T11:49:30.690" Score="12" ViewCount="" Body="&lt;p&gt;I believe that understanding Haskell's type system is an amplifier to understanding functional programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing about purely functional programming is that in the absence of side-effects, which allow you to do all sorts of things implicitly, purely functional programming makes the structure of your programs much more explicit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Haskell prevents you from shoving things under the carpet, forces you to deal with the structure of your program explicitly, and it teaches you a language to describe these structures: the language of types. Understanding types, particularly rich types as is Haskell, will make you a better programmer in any language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If Haskell wasn't strongly typed, concepts like monads, applicative functors and the like would never have been applied to programming.&lt;/p&gt;&#xA;" OwnerUserId="12225" LastActivityDate="2011-01-02T11:49:30.690" />
  <row Id="33173" PostTypeId="2" ParentId="33170" CreationDate="2011-01-02T11:52:35.550" Score="5" ViewCount="" Body="&lt;p&gt;Pessimistically, I don't think there is or would be a solution which will replace by-hand typing of HTML code without creating a mess. Look at WYSIWYG &lt;em&gt;software products&lt;/em&gt;: for years, their advertisement tells us that finally, the new application creates a very clean code; in reality, it was crap years ago, it's still crap.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For WYSIWYG &lt;em&gt;online editors&lt;/em&gt; (like in CMS), it's nearly the same thing, except that in those cases, I believe that they don't even care about clean code.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;It seems that WYSIWYG editors are good for some sorts of things and not for others; even if there is a demand from the users, they will never be. They are good at providing a very intuitive interface for people who don't care about HTML, and don't even know what it is. It makes it more difficult to adopt them on websites which requires to be optimized, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;WYSIWYG editors with more features will have more difficulties to produce clean content. It's nearly the same thing for beginner programmers: they will easily create a W3C valid HTML page which contains only titles, bold and italic text, but will probably fail to make something clean and valid when trying to implement more features and interactivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It means that a WYSIWYG editor with only few options will be the best choice if you care about clean code and the issues of copy-paste. For example, removing the ability to change the font and to set freely the font size (except through titles) can remove problems with different fonts copy-pasted from Word (if the intent is to have an uniform font in every message).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The editor of this website is a good example, except that it has the same problem for non-IT people than PHPBB: when you click on a button, instead of seeing live what happens, you see some markdown stuff added to your plain text message.&lt;/p&gt;&#xA;" OwnerUserId="6605" LastActivityDate="2011-01-02T11:52:35.550" CommentCount="1" />
  <row Id="33174" PostTypeId="2" ParentId="24495" CreationDate="2011-01-02T12:03:53.023" Score="1" ViewCount="" Body="&lt;p&gt;It depends on the real talent of the &quot;Web Programmer&quot; and the company he is working for. Nearly everybody today can do a little PHP and build an amateur website. Not many master the webdesign stuff of css. A java programmer especially doesn't cope well as webdesigner : it requires both technical and artistic talent that most lack so it'll pretty sure that a java programmer will be at the low end of the salary if he would convert into a web programmer.&lt;/p&gt;&#xA;" OwnerUserId="12227" LastActivityDate="2011-01-02T12:03:53.023" />
  <row Id="33175" PostTypeId="2" ParentId="33157" CreationDate="2011-01-02T12:05:20.333" Score="2" ViewCount="" Body="&lt;p&gt;There are 4 things I'd want to tell you, and I have listed down the order I need to tell you those: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Get your own source of green tea while you are at this&lt;/li&gt;&#xA;&lt;li&gt;While you are sipping that green tea, go through Skiena's book available from &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1848000693&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;. And go through the audio/video material &lt;a href=&quot;http://www.cs.sunysb.edu/~algorith/video-lectures/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Check out an excellent set of links maintained by Google at &lt;a href=&quot;http://code.google.com/edu/courses.html&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/edu/courses.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Go through algorithms related questions at &lt;a href=&quot;http://stackoverflow.com/questions/tagged/algorithm&quot;&gt;SO&lt;/a&gt; and try answering these on your own&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Best of luck!&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2011-01-02T12:05:20.333" />
  <row Id="33176" PostTypeId="1" CreationDate="2011-01-02T12:19:29.993" Score="0" ViewCount="148" Body="&lt;p&gt;I have remarked that each time I ask a question that requires some strategic thinking programmers get afraid :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example: I bet this question will be closed:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/4578305/the-creator-of-websphere-declared-it-was-its-hugest-error-in-his-life-so-where-pr&quot;&gt;http://stackoverflow.com/questions/4578305/the-creator-of-websphere-declared-it-was-its-hugest-error-in-his-life-so-where-pr&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="12227" LastActivityDate="2011-01-02T13:15:06.117" ClosedDate="2011-01-02T13:26:06.267" Title="Are programmers just technicians without any strategic thinking ?" Tags="&lt;programming-languages&gt;" AnswerCount="2" CommentCount="6" />
  <row Id="33177" PostTypeId="2" ParentId="33158" CreationDate="2011-01-02T12:19:57.887" Score="2" ViewCount="" Body="&lt;p&gt;If proper language is important then make it official policy that it is important, and then treat it like any other coding issue:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A grammar error is similar to a coding error.  &lt;/li&gt;&#xA;&lt;li&gt;Peer review (also known as proof reading).&lt;/li&gt;&#xA;&lt;li&gt;If he needs better skills, then consider a course or two.&lt;/li&gt;&#xA;&lt;li&gt;Prioritize grammar bugs.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The reason for this is that there is a vast difference between you disagreeing whether it is important or not, and it officially not being acceptable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, making it known that this is a required skill, may make it clear that he has to upgrade his skills to conform (just as a new technology), and if he is truly dyslextic then perhaps this is not the right person for the job.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2011-01-02T12:19:57.887" CommentCount="4" />
  <row Id="33178" PostTypeId="2" ParentId="33068" CreationDate="2011-01-02T12:39:56.670" Score="4" ViewCount="" Body="&lt;p&gt;Donald Knuth wrote two programs to help him typeset his mathematical formulas in his books better than his publisher could. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;These two programs (in their final version) was written using &lt;em&gt;Literate Programming&lt;/em&gt; which allowed for creating a printed, typeset version of the source code, and they were published as books.  These are simply the best documented programs I've ever read!&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;Computers &amp;amp; Typesetting, Volume B: TeX: The Program&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;Computers &amp;amp; Typesetting, Volume D: Metafont: The Program&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;They are not available for online reading, but Amazon allows you too &quot;Look inside&quot; the Metafont book at &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201134381&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Computers-Typesetting-D-Metafont-Program/dp/0201134381/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Warning: It is heavy stuff, which is why each book runs at 600 pages.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2011-01-02T12:39:56.670" CommentCount="1" />
  <row Id="33179" PostTypeId="2" ParentId="33176" CreationDate="2011-01-02T12:53:34.273" Score="3" ViewCount="" Body="&lt;p&gt;Imho, programmers know that users will always, &lt;strong&gt;ALWAYS&lt;/strong&gt; find a way to break things if you let them (and therefore they have to think beforehand about how they can prevent that), therefore I disagree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, code monkeys or pixel pushers may be what you were referring to, instead of programmers.&lt;/p&gt;&#xA;" OwnerUserId="9094" LastActivityDate="2011-01-02T12:53:34.273" />
  <row Id="33180" PostTypeId="2" ParentId="6754" CreationDate="2011-01-02T12:55:23.167" Score="6" ViewCount="" Body="&lt;p&gt;Wanting your kids to do a specific profession you like or you think it's good for them is either:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;taking them as an &lt;strong&gt;extension of yourself&lt;/strong&gt; at worst&lt;/li&gt;&#xA;&lt;li&gt;or at best &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0743225686&quot; rel=&quot;nofollow&quot;&gt;overparenting&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Many parents often forget that they gave birth to an &lt;strong&gt;human being&lt;/strong&gt;, with its own desires, needs, tastes, way or thinking.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-02T12:55:23.167" CommunityOwnedDate="2011-01-02T21:42:15.923" CommentCount="1" />
  <row Id="33181" PostTypeId="2" ParentId="6754" CreationDate="2011-01-02T12:59:21.963" Score="0" ViewCount="" Body="&lt;p&gt;I will always support my children to become programmers only if it is their wish.&lt;/p&gt;&#xA;" OwnerUserId="12140" LastActivityDate="2011-01-02T12:59:21.963" CommunityOwnedDate="2011-01-02T21:42:15.923" />
  <row Id="33182" PostTypeId="1" AcceptedAnswerId="33589" CreationDate="2011-01-02T13:05:14.253" Score="3" ViewCount="208" Body="&lt;p&gt;Do you test your SQL or SQL generated by your database framework?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are frameworks like DbUnit that allow you to create real in-memory database and execute real SQL. But its very hard to use(not developer-friendly so to speak), because you need to first prepare test data(and it should not be shared between tests).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. I don't mean mocking database or framework's database methods, but tests that make you 99% sure that your SQL is working even after some hardcore refactoring.&lt;/p&gt;&#xA;" OwnerUserId="929" LastActivityDate="2011-01-04T14:22:38.367" Title="Do you test your SQL/HQL/Criteria ?" Tags="&lt;unit-testing&gt;&lt;sql&gt;&lt;database&gt;&lt;orm&gt;&lt;test&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="1" />
  <row Id="33183" PostTypeId="2" ParentId="33176" CreationDate="2011-01-02T13:15:06.117" Score="1" ViewCount="" Body="&lt;p&gt;You don't know your history. Almost every major technical firm was founded by so-called technicians. The Open Source movement was a great strategy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Visit your local sales, marketing or HR departments and see who is up for a game of chess.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-02T13:15:06.117" />
  <row Id="33184" PostTypeId="2" ParentId="33182" CreationDate="2011-01-02T13:16:53.170" Score="0" ViewCount="" Body="&lt;p&gt;I never tried &lt;code&gt;DbUnit&lt;/code&gt;. What I do with nHibernate is creating test suites that create the database &amp;amp; data at setup (using both &lt;code&gt;SchemaExport&lt;/code&gt; and batch inserts), then run tests that check both entities and queries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use local development databases such as &lt;code&gt;SQL Server Express&lt;/code&gt; of &lt;code&gt;Oracle Express Edition&lt;/code&gt; depending on the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In one very large project I was part of, we used the &lt;code&gt;Rollback technique&lt;/code&gt;. Each test was creating a transaction which was rolled back at the end. This is described &lt;a href=&quot;http://davybrion.com/blog/2009/12/unit-testing-an-nhibernate-application/&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But there is a better way of testing. Yesterday, I read a book called &lt;a href=&quot;https://www.packtpub.com/nhibernate-3-0-cookbook/book&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;nHibernate 3.0 Cookbook&lt;/strong&gt;&lt;/a&gt; from &lt;strong&gt;&lt;a href=&quot;http://jasondentler.com/blog/category/nhibernate-cookbook/&quot; rel=&quot;nofollow&quot;&gt;Jason Dentler&lt;/a&gt;&lt;/strong&gt; in which the author propose a method called &lt;strong&gt;Fast testing with SQLite in-memory database&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I didn't test it yet, but that recipe is fully detailed and looks promising.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure you can download the sample code somewhere (wasn't able to find it quickly), but I highly suggest to buy the book. It contains various other test techniques such as &lt;strong&gt;Fluent nHibernate Persistance Tester&lt;/strong&gt; and &lt;strong&gt;Ghostbusters test&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That technique is also explained in this &lt;a href=&quot;http://ayende.com/Blog/archive/2009/04/28/nhibernate-unit-testing.aspx&quot; rel=&quot;nofollow&quot;&gt;blog post&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2011-01-02T13:34:20.887" LastActivityDate="2011-01-02T13:34:20.887" />
  <row Id="33185" PostTypeId="2" ParentId="33158" CreationDate="2011-01-02T13:17:46.133" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Step one must be to determine the actual cause of his spelling mistakes. Is it really a disability?&lt;/strong&gt; You cannot solve a problem until you know what the problem is - as I'm sure we programmers know quite well.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Does he genuinely have a disability that affects his writing ability?&lt;/li&gt;&#xA;&lt;li&gt;Does he lack the education necessary to produce quality written language?&lt;/li&gt;&#xA;&lt;li&gt;Does he really just not care?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There's no general-purpose solution that works for all cases here, so you must take some time to determine the exact cause. Test him for dyslexia, talk to him to see if he's educated and cares, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact once you work it out, the problem will probably present itself to you clear as day anyway:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Disability: Take measures to minimise the disability's impact. In particular there are a variety of methods available for minimising the effects of dyslexia, which vary in effectiveness between individuals.&lt;/li&gt;&#xA;&lt;li&gt;No education: Educate him&lt;/li&gt;&#xA;&lt;li&gt;Doesn't care: Talk to him. Show him why he should care, why it's important&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(My earlier comments turned out to be a sort of answer, so I'm posting them as such)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="5570" LastEditorUserId="5570" LastEditorDisplayName="" LastEditDate="2011-01-02T13:31:58.273" LastActivityDate="2011-01-02T13:31:58.273" />
  <row Id="33186" PostTypeId="2" ParentId="33182" CreationDate="2011-01-02T13:37:38.700" Score="0" ViewCount="" Body="&lt;p&gt;Yes&#xA;A function or any data alteration can be tested the same as any other language. If you can test adding, deleting or updating values in an array, is working with a table that different?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I'm trying to optimize a select statement, it will get tested against the same dataset before and after for two reasons: 1) it must return the same data 2) it's the best way to see if it is faster (compare apples to apples). Since database do so many things behind the scenes where you have less control (statistics, index fragmentation, query optimization &amp;amp; caching), you have to be careful when comparing performance from environment or set of data to the next. Then you can change the criteria or even the test database (Other company or different backup/version).&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-02T13:37:38.700" />
  <row Id="33187" PostTypeId="1" AcceptedAnswerId="33191" CreationDate="2011-01-02T13:47:28.940" Score="2" ViewCount="252" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/5354/are-nosql-databases-going-to-take-the-place-of-relational-databases-is-sql-goin&quot;&gt;Are NoSQL databases going to take the place of relational databases?  Is SQL going away?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I'm struggling to see how NoSQL brings any advantages to a system, so I'm interested in hearing from people who have chosen to use it, both the reasons they chose NoSQL, and positive and negative experiences in implementation and use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My first impressions are that NoSQL is a product of the availability of very large, very cheap storage; it seems that a million record database could easily have a 100MByte overhead in field labels embedded in the records. This goes against one of my software design instincts - remove redundancy in code and data whenever practical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, NoSQL is being used with success in large high-traffic systems, so I must be missing something, looking forward to your responses.&lt;/p&gt;&#xA;" OwnerUserId="9932" LastActivityDate="2011-01-02T14:10:30.957" ClosedDate="2011-01-02T14:14:10.437" Title="What are the benefits of NoSQL?" Tags="&lt;design&gt;&lt;architecture&gt;&lt;database&gt;&lt;nosql&gt;" AnswerCount="1" CommentCount="4" FavoriteCount="1" />
  <row Id="33188" PostTypeId="2" ParentId="6754" CreationDate="2011-01-02T13:48:51.600" Score="2" ViewCount="" Body="&lt;p&gt;As a parent, I would strongly encourage logical thinking, analytical reasoning abilities and maths. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually good programmers have the same skill set, and if the kid chooses to be a programmer out of this whole process then his call really. &lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2011-01-02T13:48:51.600" CommunityOwnedDate="2011-01-02T21:42:15.923" />
  <row Id="33189" PostTypeId="2" ParentId="33158" CreationDate="2011-01-02T13:56:15.573" Score="3" ViewCount="" Body="&lt;p&gt;I use to work with special needs children with learning disabilities and want to commend you for making an effort to help this person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find out what type of help he got in school. He may have had someone writing and/or proof reading for him.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't expect him to fix the spelling mistakes while coding. Sometimes when programmers are in the zone we're lucky we remember to go to the bathroom let along check for spelling. Allow time for him to come back to the text after several hours and do nothing but spell/grammar check. This technique is recommended for any type of writing whether you have difficulties or not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He needs to continue working on this skill because it does not come as natural to him as maybe math does (Some people have the opposite issue.). Without practice it will deteriorate faster.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-02T13:56:15.573" CommentCount="1" />
  <row Id="33190" PostTypeId="2" ParentId="6754" CreationDate="2011-01-02T14:07:22.737" Score="20" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;No, Unless that's what s/he wants to do.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think I vaguely remember a saying that when something like this:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;The grand-father was a solider, so that the father could be an engineer. The father was an engineer so that the son could be an artist&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Spend time with them, expose them to different things, and see what they respond to. Nurture the things they enjoy the most. &lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2011-01-02T14:07:22.737" CommunityOwnedDate="2011-01-02T21:42:15.923" CommentCount="2" />
  <row Id="33191" PostTypeId="2" ParentId="33187" CreationDate="2011-01-02T14:10:30.957" Score="0" ViewCount="" Body="&lt;p&gt;Dan Weinreb has written a &lt;a href=&quot;http://danweinreb.org/blog/nosql-storage-systems-never-violate-acid-never-well-hardly-ever&quot; rel=&quot;nofollow&quot;&gt;number&lt;/a&gt; of &lt;a href=&quot;http://danweinreb.org/blog/why-relational-databases-anyway&quot; rel=&quot;nofollow&quot;&gt;interesting&lt;/a&gt; &lt;a href=&quot;http://danweinreb.org/blog/what-does-the-proof-of-the-cap-theorem-mean&quot; rel=&quot;nofollow&quot;&gt;articles&lt;/a&gt; on NoSQL systems, and how they do and don't compare to traditional relational database systems.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2011-01-02T14:10:30.957" />
  <row Id="33192" PostTypeId="2" ParentId="33156" CreationDate="2011-01-02T14:30:03.510" Score="5" ViewCount="" Body="&lt;p&gt;Take a look into &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0735619670&quot; rel=&quot;nofollow&quot; title=&quot;Code Complete 2&quot;&gt;Code Complete 2&lt;/a&gt;, chapter 8: &quot;Defensive programming&quot;. For me it was the best source for this kind of technique so far. Small (~30 pages) and the main ideas are there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of the main concepts strictly copied from the book, with my words (so, it may be better to just buy the book and read the original :-) ):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Check and sanitize your inputs;&lt;/li&gt;&#xA;&lt;li&gt;Protect your routine from bad data. No &quot;garbage in, garbage out&quot;;&lt;/li&gt;&#xA;&lt;li&gt;Use assertions to document pre-conditions and post-conditions;&lt;/li&gt;&#xA;&lt;li&gt;Standardize exception handling on your code;&lt;/li&gt;&#xA;&lt;li&gt;Consider not using exceptions for everything - you can handle errors in another way, the programming world existed prior exceptions were invented;&lt;/li&gt;&#xA;&lt;li&gt;Debugging and assertions help you during development, and most (but not all) of the debug/assertions must be disabled in production code;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But for me, the key concept lays on whether you trust or not the &quot;other&quot; code you are working with.&lt;/p&gt;&#xA;" OwnerUserId="9506" LastActivityDate="2011-01-02T14:30:03.510" CommentCount="4" />
  <row Id="33193" PostTypeId="1" CreationDate="2011-01-02T14:56:48.473" Score="0" ViewCount="115" Body="&lt;p&gt;Most of the time we don't have a choice were it comes to web-frameworks, in Java every company is using a different one(big thanks to web-framework developers - you will burn in hell).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However now I have a choice of picking which framework we will use, I will probably pick the one I know the best since I know how to by-pass its downfalls. In every comparation we will only see what is good in that frameworks and any downfalls will be swept under the carpet. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are the downfalls of most known frameworks?&lt;/p&gt;&#xA;" OwnerUserId="929" LastActivityDate="2011-01-02T15:16:01.647" ClosedDate="2011-01-02T16:03:43.123" Title="What you don't like in your web-framework of &quot;choice&quot;?" Tags="&lt;java&gt;&lt;web-development&gt;&lt;web-framework&gt;&lt;language-choice&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="1" />
  <row Id="33194" PostTypeId="2" ParentId="33193" CreationDate="2011-01-02T15:02:14.573" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;JBoss Seam(with Richfaces)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't like that it encourage the usage of static methods(see the API) that can only be tested by SeamTest(special framework that initialize the whole JSF and Seam - its called integration testing)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Its not very stable, if you dont read the whole documenation you will get a lot of &quot;Concurrent call to conversation&quot; when you do two things at once at web page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Performance is not great(you can turn off Dependecy Injection to improve it, yes here DI is a bad thing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ajax is BIG, every post sends everything and returns plain HTML(a lot of it with js imports and css imports). When I saw how much data is returned in GWT I was shocked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was not able to find how to refresh row in table(there are some posts about it, but It was never proven to work).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You must use JBoss to run it. Yes, you can fight it and even make it run on Tomcat(and any other), but Ive tried and I had given up(it doesnt look hard, but I did not care that much to do it, I think it should work everywhere out of the box).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It uses Facelets, so one mistake in xhtml file (that make it not perfect XML) and it wont compile at runtime(I dont like that feature).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It uses JSF that can call every method how many times it wants(and is not shy about doing it, so if you have any logic in methods use on a web page it can be executed many times)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. I really like this framewok, here are just some things I don't like about it. What I love about is that I can forget about request/session maps and just put whole component in session/page/request/application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. It can be integrated with GWT, Wicket and a lot more others, but I have not tried it.&lt;/p&gt;&#xA;" OwnerUserId="929" LastEditorUserId="929" LastEditorDisplayName="" LastEditDate="2011-01-02T15:16:01.647" LastActivityDate="2011-01-02T15:16:01.647" />
  <row Id="33195" PostTypeId="1" AcceptedAnswerId="33199" CreationDate="2011-01-02T15:30:52.820" Score="7" ViewCount="196" Body="&lt;p&gt;I've currently graduated from my first run at higher education, landed my first full-time gig as a web application developer, and absolutely love it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is that in looking for jobs I ran across many jobs that require a certain level of experience and code examples.  Much of the work I am doing is both protected by a login, and closed source.  How does someone, that is just starting out and needs to be building a resume, go about preparing for the next job.&#xA;(no matter how much i love my current job, i feel like it's only responsible to always be preparing) &lt;/p&gt;&#xA;" OwnerUserId="12104" LastActivityDate="2011-01-02T17:17:24.307" Title="portfolio building, working for closed-source vs open-source?" Tags="&lt;resume&gt;&lt;profession&gt;&lt;professional-development&gt;" AnswerCount="4" FavoriteCount="2" />
  <row Id="33196" PostTypeId="2" ParentId="28950" CreationDate="2011-01-02T15:33:34.283" Score="1" ViewCount="" Body="&lt;p&gt;Clojure is dynamically-typed, and almost as pure as Haskell, so there's a good argument that the Haskell's type system was more of a design choice than an absolute requirement. Both definitely have their strong points, so you may want to consider Clojure if you really don't like Haskell's rigidity (but see below).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I first started using Haskell, I considered the type system to be annoying, and only tolerated it because of type inference. I soon discovered that many of the type errors the compiler complained about things that wouldn't have worked anyway even if the compiler had let me do them (e.g. accidentally using map instead of concatMap). I then discovered that programs that passed the type check were usually correct, or at least close to correct. I even had a lazy phase where I did refactoring by changing a function type and letting the compiler tell me what else needed to be changed. Finally, I realized that Haskell's type system was actually very expressive and started designing my programs around types. That is the Holy Grail of Haskell.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2011-01-02T15:33:34.283" />
  <row Id="33197" PostTypeId="2" ParentId="33195" CreationDate="2011-01-02T15:40:45.257" Score="2" ViewCount="" Body="&lt;p&gt;If you need code examples, then the best approach would be to find a personal project to work on at home. It can be anything, but the important thing is that the project fills a need. It has to be something you have a reason to work on other than having a code example. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One option is to use a programming language that you don't currently work with, but would like to. You can also experiment with new programming techniques and technologies that you'd like to learn. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even the fact that you're considering taking on a personal project is a good sign to the most desirable type of employer.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2011-01-02T15:40:45.257" />
  <row Id="33198" PostTypeId="2" ParentId="33158" CreationDate="2011-01-02T16:21:03.730" Score="1" ViewCount="" Body="&lt;p&gt;As someone that this situation applies to personally keeping him out of the UI or getting everything proof-read may be your only option.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once I type something backwards I will never see it as wrong unless I actually pressed the wrong key and didn't type what I meant to type, even if I come back to it after some time (although this method does work for some dyslexics)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the plus side, this is something that should be being done anyway as part of whatever QA exercise you are doing, and since everyone makes typing mistakes you probably should have someone in that process that is good at spotting such errors anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have managed fine with development, but my strengths are in the lower end, so when I do venture into UI I know I need to get someone to check it for correctness and if I am writing longer exceptions or something I need to write them in word first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only time in my career that this became an issue was when I was on a team of people who had similar issues and the spelling correction phase of QA was a bit tedious.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ps. spell check intervened 7 times I would have never caught in the making of this answer.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2011-01-02T16:21:03.730" CommentCount="4" />
  <row Id="33199" PostTypeId="2" ParentId="33195" CreationDate="2011-01-02T16:21:58.783" Score="6" ViewCount="" Body="&lt;p&gt;I recommend producing some useful items to fit in any toolbox under a very liberal free software license such as the three clause BSD or MIT license.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This allows you to write re-usable code that you can actually &lt;em&gt;re-use&lt;/em&gt;, even when working on proprietary projects. Most importantly, it gives you something to show.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;This is not only the code that I've&#xA;  written, this is the stuff (Acme,&#xA;  Inc.) can start using &lt;em&gt;today&lt;/em&gt; to solve&#xA;  some of the problems that we&#xA;  discussed.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That goes pretty far in an interview :) Most companies will gladly let you push any improvements to your public repository. Most sensible people realize that great development happens out in the open, and appreciate a dozen other people finding bugs for them. If not, just make a private fork. What is important is that:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You get to not only show your code, but offer it as a solution&lt;/li&gt;&#xA;&lt;li&gt;The license you picked says you can do whatever you want with it&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In this regard, you can have your cake and eat it too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note, I'm just talking about improvements to the tools that you showed them, not their entire project, when talking about development out in the open. However, you might get lucky enough to work for a completely free software outfit. If so, either permissive license is fully compatible with the most restrictive license that the FSF maintains.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, if they want to take something you wrote in a whole new direction, perhaps a private fork would be best for all concerned. Or, perhaps they may realize that publishing the fork might get more customers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either way, you win .. and you need to do that when working specifically to make yourself more attractive to employers. I contribute to more than a few projects .. but I'm not looking for a job, or past experience to fortify me as a candidate for one .. licensing is quite incidental for me.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2011-01-02T17:17:24.307" LastActivityDate="2011-01-02T17:17:24.307" />
  <row Id="33200" PostTypeId="2" ParentId="33148" CreationDate="2011-01-02T16:31:10.477" Score="0" ViewCount="" Body="&lt;p&gt;Generics&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me generics tied a lot of the other ideas together and made many of the other concepts an obvious value-add in cases where it always felt a bit weak before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doubly so for generics bound to an interface&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2011-01-02T16:31:10.477" CommentCount="2" />
  <row Id="33201" PostTypeId="2" ParentId="33195" CreationDate="2011-01-02T16:33:51.957" Score="5" ViewCount="" Body="&lt;p&gt;Every company I have interviewed for has understood that I do closed-source work, and I do &lt;em&gt;not&lt;/em&gt; have samples of that work.  They are less interested in the code that I have written than in the code I am going to write for &lt;em&gt;them.&lt;/em&gt; This may be less true if you are applying for open-source positions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an interviewer, I have never asked for code samples; I have no way of knowing where that code came from, or how long it took to write.  Instead, I ask the interviewee to write some code during the interview.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2011-01-02T16:33:51.957" CommentCount="6" />
  <row Id="33202" PostTypeId="2" ParentId="24495" CreationDate="2011-01-02T16:37:54.623" Score="1" ViewCount="" Body="&lt;p&gt;The difference between an enterprise application and web development (Whether it involves hardcore programming or not) is that the companies that need/use enterprise applications are often much larger, and can pay much more for a programmer than a medium sized firm that has no need for in-house enterprise applications, and just wants someone to handle their CMS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many, many, many factors that go into pay; be sure that the hoofbeats you're hearing are actually horses. They could be zebras.&lt;/p&gt;&#xA;" OwnerUserId="1577" LastActivityDate="2011-01-02T16:37:54.623" />
  <row Id="33203" PostTypeId="2" ParentId="6754" CreationDate="2011-01-02T16:44:59.420" Score="13" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Do you want your kids to become programmers?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Not really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming as a job has a very depressing characteristic in that the value of the technical knowledge you've been gathering is continuously devalued. If you're not running at a quite high pace, you're losing your market value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's really sad to have a look back at what you've done over the years and understand it has now zero value, only what you've done in the last couple of years matters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In many other professions you're only increasing your value over the years. Examples are many, law, management, even some creative professions like graphic design, decorating interiors etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Add here continuous pressure from school kids, students, outsourcing folks who push market prices lower and lower. Not fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong, programming as a hobby is a wonderful thing. Probably, one of the best you can think of. But only if you're doing it for yourself and having fun in the process. When you have a freedom to choose what you do, when and how you do it without background thinking of the career effects of your decisions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do what you like, develop your own products, start your own company, make something great. Bottom line is, work for yourself. Programming for somebody as a job will probably not be worth it in just a few years...&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2011-01-04T21:23:08.173" LastActivityDate="2011-01-04T21:23:08.173" CommunityOwnedDate="2011-01-02T21:42:15.923" CommentCount="4" />
  <row Id="33204" PostTypeId="2" ParentId="33148" CreationDate="2011-01-02T16:53:17.310" Score="1" ViewCount="" Body="&lt;p&gt;Using OOP for nicer APIs and more readable code, not for in-your-face-object-orientation.&lt;/p&gt;&#xA;" OwnerUserId="1245" LastActivityDate="2011-01-02T16:53:17.310" />
  <row Id="33205" PostTypeId="2" ParentId="33195" CreationDate="2011-01-02T16:55:34.027" Score="1" ViewCount="" Body="&lt;p&gt;If you are preparing at an interview level, I don't think your employer should care a hoot if you are making a living out of developing closed source software or extending open source code to meet closed source specifications. You should be able to articulate in your resume the exact work that you did, and expect that you might be asked to write some related code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Open source contributions in addition to what you do for closed source is for making an impact. Usually people do it out of passion, not for a raise or negotiating offers. &lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2011-01-02T16:55:34.027" />
  <row Id="33206" PostTypeId="2" ParentId="33068" CreationDate="2011-01-02T17:14:38.073" Score="4" ViewCount="" Body="&lt;p&gt;The book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596510047&quot; rel=&quot;nofollow&quot;&gt;Beautiful Code&lt;/a&gt; tries to answer this question with several samples of what the contributors think are exemplars of beautiful code from open source projects.&lt;br&gt;&#xA;&lt;img src=&quot;http://i.imgur.com/MqxDc.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2011-01-02T17:14:38.073" CommentCount="3" />
  <row Id="33207" PostTypeId="2" ParentId="33068" CreationDate="2011-01-02T17:21:32.540" Score="3" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://codeigniter.com&quot; rel=&quot;nofollow&quot;&gt;CodeIgniter&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Some of the cleanest, best documented source code I've seen from an OS project.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2011-01-02T17:21:32.540" CommentCount="6" />
  <row Id="33208" PostTypeId="2" ParentId="29234" CreationDate="2011-01-02T17:22:32.370" Score="2" ViewCount="" Body="&lt;p&gt;SpringSource acquiring G2One and Groovy and Grails with it is a strong indicator to me that there's a need for other languages (in this case a scripting language) on the JVM. SpringSource has certainly been an indicator of what tools will be successful in the Java ecosystem for some years now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scala has features that Java will probably never have, and even features like closures are a long way off for Java. That's true of many of the new JVM languages. As developers are exposed to these features, it's hard to go back to Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can point to major companies like Twitter, FourSquare, Sony Entertainment, etc who are using Scala in production, but to me the more telling piece is that developers are excited about these new languages and see value in the features they offer beyond Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think Android may help out one or more of the new JVM languages a lot. I know a lot of people are writing Scala Android apps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java's obviously not going anywhere any time soon because there's a huge investment in it. So the JVM is around for a long time. But as a a language Java has started to lag behind. To me it seems very likely that new languages that offer concrete advantages over Java, but can be deployed to the same environment you already support will thrive in the developer community.&lt;/p&gt;&#xA;" OwnerUserId="12166" LastActivityDate="2011-01-02T17:22:32.370" />
  <row Id="33209" PostTypeId="2" ParentId="6754" CreationDate="2011-01-02T17:23:34.240" Score="0" ViewCount="" Body="&lt;p&gt;the best profession depend on what person thing. good profession for a person depend on how much they respect their work or love them to complete the task they do in daily routine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;telling your child to become a programmer without their acceptance is not a good idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;they need to be independent  to choose their career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;the career of them if decided by them that's good if they thing wrong that you show them what wrong thing they thing and predict them best thing for them.&lt;/p&gt;&#xA;" OwnerUserId="12235" LastActivityDate="2011-01-02T17:23:34.240" CommunityOwnedDate="2011-01-02T21:42:15.923" />
  <row Id="33210" PostTypeId="2" ParentId="6754" CreationDate="2011-01-02T17:28:43.360" Score="4" ViewCount="" Body="&lt;p&gt;I just want my kid to not resent getting up to go to work five to six days a week. Whatever that is, I'm happy that she found something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that means supporting her into her 40's (should I live long enough), fine. The longer that takes, the less she inherits .. I don't set those rules, but they do tend to motivate :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If my kid doesn't waste her life hating every second of a job (basically 1/3 of her life), I'm happy. That's a great improvement between generations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love programming because, well, I love it, and it lets me make enough dough to successfully launch a kid into the world, whenever she finds something that she feels is worth doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know what programming will be like 20 years from now, so I can't say that I hope for it as her passion. I just hope that she gets the same satisfaction from solving problems with the skills that I teach her, in whatever field. She's five years old now, so people with kids in college might have an entirely different outlook.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2011-01-02T17:48:24.997" LastActivityDate="2011-01-02T17:48:24.997" CommunityOwnedDate="2011-01-02T21:42:15.923" />
  <row Id="33211" PostTypeId="2" ParentId="33145" CreationDate="2011-01-02T18:08:50.750" Score="1" ViewCount="" Body="&lt;p&gt;It is possible, but you may run into a few problems. For starters, are you going to use signiture based detections as the method of detecting malicious files? How will you update these? Modern AV applications have literally 1000s of these signitures used for detections that are updated daily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I'd imagine the actual process of scanning each file and checking it against each file on the system would take a long time. Most AV applications nowadays use whitelisting or hueristic based scanning to reduce scan times. Your application may also be limited to 'On Demand Scanning' (user manually kicks off a scan) with no support for 'On Access Scanning' (scanning a file immediately once it is invoked).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, things like boot sector scanning and detection of rootkits may not be possible.&lt;/p&gt;&#xA;" OwnerUserId="1293" LastActivityDate="2011-01-02T18:08:50.750" CommentCount="2" />
  <row Id="33212" PostTypeId="2" ParentId="33148" CreationDate="2011-01-02T18:20:12.173" Score="0" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Disclaimer: What I am going to say will hurt and is likely very controversial, but I do hope that before clicking on &quot;downvote&quot; you'll at least read the whole thing and think about it, maybe I'll be able to change your mind :)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I learned that inheritance is inherently broken.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One other answer is &lt;strong&gt;Separating the interface from the implementation&lt;/strong&gt; (thanks nimrodm), unfortunately that is not how inheritance works:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;by inheriting from a class, your derived class automatically assumes the &lt;strong&gt;interface&lt;/strong&gt; of the older class&lt;/li&gt;&#xA;&lt;li&gt;by inheriting from a  class, your derived class automatically &quot; benefits &quot; from the base class methods &lt;strong&gt;implementations&lt;/strong&gt; and the base class attributes&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Therefore, inheritance mixes up both interface and implementation, when actually trying to separate both concepts. Ironic, isn't it ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't get me wrong, inheriting from interfaces does seem a nice idea, it is inheriting from existing classes that I loathe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Footnote:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have really come to like Generic Programming in that regard, since you then truly program to interface instead of programming to classes... and I have come to the upmost respect for the Haskell way of dealing with this whole interface/implementation separation.&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2011-01-02T18:20:12.173" />
  <row Id="33213" PostTypeId="2" ParentId="32840" CreationDate="2011-01-02T18:21:01.983" Score="18" ViewCount="" Body="&lt;p&gt;Looks like I'm going to be the lone dissenting view here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of all, we need to distinguish between &lt;em&gt;copy-and-paste programming&lt;/em&gt; and &lt;em&gt;cargo cult programming&lt;/em&gt;, as it seems that several people are conflating the two.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Copy_and_paste_programming&quot; rel=&quot;nofollow&quot;&gt;Copy and paste programming&lt;/a&gt; refers to the practice of copying and pasting the same code over and over again into different parts of a program, either verbatim or with only minor changes, instead of creating classes or subroutines or whatever higher-order code structures are offered by the language.  Sometimes this is a symptom of a deficiency in the language/environment itself, but more often it is because the programmer does not understand (or value) &lt;a href=&quot;http://en.wikipedia.org/wiki/Abstraction_%28computer_science%29&quot; rel=&quot;nofollow&quot;&gt;abstraction&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clearly, you're not a &lt;em&gt;copy-and-paste programmer&lt;/em&gt; unless this is what you're doing.  But it's obvious from your description of your activities that this isn't the question you're asking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you're actually referring to is called &lt;a href=&quot;http://en.wikipedia.org/wiki/Cargo_cult_programming&quot; rel=&quot;nofollow&quot;&gt;cargo cult programming&lt;/a&gt;.  That is a set of anti-patterns, one among them being the wholesale copying of code from other parts of the program or from external sources, without really understanding how they work or if they're necessary at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may be true that many programmers do this to a very limited extent.  For example, sometimes we need to work around a bug in the framework or the operating system, and we'll just copy some well-known workaround because we're not really interested in learning all about somebody else's bug that we can't possibly fix ourselves.  But for a professional programmer, these cases should be few and far between.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you find yourself doing this &lt;em&gt;frequently&lt;/em&gt; then it should be a red flag to you.  And you've made this very unconvincing assertion:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;[...] then I try to understand the code and tweak it according to my requirement.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Maybe this is true.  Maybe.  The problem is that every cargo-cult programmer will &lt;em&gt;say&lt;/em&gt; this.  The question is, do you &lt;em&gt;really&lt;/em&gt; understand it?  Truly?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you understand it to a sufficient extent that you could write it from scratch if you had to, given sufficient time?  Would the result be reasonably free of bugs?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or are you just making &lt;em&gt;random&lt;/em&gt; changes to the code you copied until you hit the magic combination that does what you want?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not leveling accusations; I've never met you, I know nothing about you.  But this is something you need to think about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A simple test is: Do you find yourself editing and recompiling very frequently when you are in the process of &quot;tweaking&quot; the code?  Or do you read the code maybe once or twice, and immediately know what needs to be changed and how?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your changes/tweaks are working on the first or maybe second try, you &lt;em&gt;probably&lt;/em&gt; have actually understood the code you've appropriated.  If you seem to be &lt;em&gt;experimenting&lt;/em&gt; a lot with the copied code, then I'm sorry to say you &lt;em&gt;are&lt;/em&gt; a cargo-cult programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep that in mind for next time.  Watch how you approach the problem.  If you find yourself doing the coding equivalent of mashing buttons on a game pad, then you need to slow down, and try to learn a little more about the library or algorithm you are attempting to use, before going any further.&lt;/p&gt;&#xA;" OwnerUserId="3249" LastActivityDate="2011-01-02T18:21:01.983" CommunityOwnedDate="2011-01-02T18:21:01.983" CommentCount="2" />
  <row Id="33214" PostTypeId="2" ParentId="6754" CreationDate="2011-01-02T18:26:08.380" Score="2" ViewCount="" Body="&lt;p&gt;I myself grew up with a lot of mathematics and later programming, but also I learned both the guitar and the piano, I had done a lot of drawing and also painting and sculpting. I have been raised bilingually and had learned 4 more languages by the age of 16, I have lived in many cities in many countries accross europe and I have visited even more, having been to countless museums and expositions on all sorts of subjects (spending most of my holidays there). I have had a fair share of history, science, philosophy, music, art, gastronomy and many other aspects of human culture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I admit, sometimes I felt bored, tired, overstrained, angry and even alone (because I didn't have much time to spend with children of my age, or things in common with them anyway). But just before I turned 18, I came to understand and harness the knowledge and experience that had previosly rather overwhelmed me instead of being very usefull.&lt;br&gt;&#xA;And I am very greatful, that my father made me do all these things (I wasn't forced, but he wouldn't stop trying until I gave it a shot and reached a point where I was good enough to decide myself this wasn't for me).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, I didn't have the happy, carefree, playful childhood you see on TV. I am having it now. Because I was best prepared for most of the struggles people have in their &quot;adulthood&quot;. I have a well-paid and enjoyable job as a game programmer. I have more spare time, than when I was at school, in which I focus on some of the things I came to love doing as a kid.&lt;br&gt;&#xA;They way it looks, I had a rather stressfull childhood and the rest of my life will be very enjoyable. Assuming I don't die in the next 2 decades, this is the better way around I suppose :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my point regarding your question is: I would want my or any kid in the world to learn progamming or to engage in a simliar field. I wouldn't force anybody in the world to become a progammer or anything else. I think everybody should choose themselves. But this requires, they are given choices. Not forcing someone to do something doesn't mean giving a choice, it only means not taking existing choices away. But to create such existing choices, education is neccessary and possibly material support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I wanted to note, by programming I do not mean hacking about in some low level things, but rather learning some high level languages. I know quite a lot of people, who told me, they liked to program on their amiga's and c64, but when they retried years later, they couldn't get back on the horse, because most of what they learned was completely outdated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I believe to be very valuable, are the mental capabilites programming requires. Logical, abstract and analytical thinking. The will and the skill to work on solutions, that are concise, elegant, simple, exact and correct.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These can also be acquired by studying mathematics, but this is arguably less enjoyable and hard to earn money with unless you go down the road all the way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No matter, what kids do later on, their childhood is the best chance for them to broaden their horizon and to deepen their mind. I consider myself lucky, having seized it to such an extent. I wish everybody else just as much luck.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2011-01-02T18:26:08.380" CommunityOwnedDate="2011-01-02T21:42:15.923" CommentCount="1" />
  <row Id="33216" PostTypeId="1" CreationDate="2011-01-02T18:53:52.380" Score="4" ViewCount="283" Body="&lt;p&gt;So I am new to programming and would like to keep programming and using c/c++.  Is there any direction I should focus on to gear my career to computer security.  Obviously computer security is a major concern for all companies, and I would like to stay up on the latest issues... So as a C++ programmer, what should I be doing?&#xA;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="12237" LastActivityDate="2011-02-28T21:28:22.110" Title="Computer Security and c++" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;c++&gt;" AnswerCount="3" CommentCount="3" />
  <row Id="33217" PostTypeId="2" ParentId="33216" CreationDate="2011-01-02T18:56:46.057" Score="7" ViewCount="" Body="&lt;p&gt;Security is particularly a concern for C/C++* programmers, because these languages do not usually prevent invalid memory accesses or buffer overflows.  Any program where input from the user can trigger an invalid memory access is potentially vulnerable, because a skilled hacker can exploit this to execute arbitrary code or otherwise redirect program logic.  This is easier to mitigate for a C++ programmer, due to things like standard library containers, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For an overview on the subject, I'd recommend reading &lt;a href=&quot;http://www.cert.org/books/secure-coding/&quot; rel=&quot;nofollow&quot;&gt;Secure Coding in C and C++&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;br&gt;&#xA;*Yes, we should discourage the phrase &quot;C/C++&quot; because the two languages really are radically different.  But I think it's acceptable to use in the context of security, because most of the security issues in C++ are inherited from C.&lt;/p&gt;&#xA;" OwnerUserId="7733" LastEditorUserId="7733" LastEditorDisplayName="" LastEditDate="2011-01-02T19:19:32.863" LastActivityDate="2011-01-02T19:19:32.863" CommentCount="2" />
  <row Id="33218" PostTypeId="2" ParentId="33170" CreationDate="2011-01-02T19:03:30.547" Score="4" ViewCount="" Body="&lt;p&gt;I use formatting stripping whenever I incorporate a WYSIWYG interface into a web site- given that the site will have style of its own, I tend to want to restrict what a user can add to it, preferring to have the details of the style deriving from the CSS. I have a bit of code that more or less strips attributes off tags ( with a few exceptions ) strips out tags that repeat themselves more than twice and a few tags that will only cause trouble - font, anyone? - and I end up using that frequently. It works well because it gives users the impression of power without giving them enough rope to hang themselves.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2011-01-02T19:03:30.547" />
  <row Id="33219" PostTypeId="2" ParentId="33148" CreationDate="2011-01-02T19:11:52.767" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Component based development.&lt;/strong&gt; Keeps your code clean, encapsulates necessary functionality into a standalone component, which makes the components replaceable, and overall system extensible.&lt;br&gt;&#xA;This is not really an OOP practice, but provide a great help for writing OO code&lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2011-01-02T19:11:52.767" />
  <row Id="33220" PostTypeId="2" ParentId="33145" CreationDate="2011-01-02T19:18:08.973" Score="1" ViewCount="" Body="&lt;p&gt;First of all you need to understand how the viruses behave. The programming of the anti-virus GUI is not a complex task and can be written using any language, but getting the definitions of hundreds of thousands of virus' is a very big task. And, as it was already mentioned, you should write a smart and fast pattern matching&lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2011-01-02T19:18:08.973" />
  <row Id="33221" PostTypeId="2" ParentId="33145" CreationDate="2011-01-02T19:20:00.737" Score="1" ViewCount="" Body="&lt;p&gt;Yes although most AV programs make use of filesystem filter drivers for which you are going to have to use C.  Writing the drivers can be a lot of fun though if you try it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/whdc/driver/filterdrv/default.mspx&quot; rel=&quot;nofollow&quot;&gt;File System Filter Drivers&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11536" LastActivityDate="2011-01-02T19:20:00.737" />
  <row Id="33222" PostTypeId="2" ParentId="20109" CreationDate="2011-01-02T21:00:51.990" Score="0" ViewCount="" Body="&lt;p&gt;Much of what you describe (ie. the logging specific parts) are implemented in enterprise library as Amir Rezaei has noted. Everything else seems to be more of the analytics part (ie. what to do with logs afterwards).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my case, I created some small apps and sql scripts that made some things easier. Here's some of the things that I really liked:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Grouping same-errors together (ie. 100 users all experienced the same bug around the same time is 1 bug report with a note of how many occurrences there were)&lt;/li&gt;&#xA;&lt;li&gt;Auto-filing a ticket in the case tracker (never managed to make this 'at the click of a button' but always wanted to)&lt;/li&gt;&#xA;&lt;li&gt;Username of the user of the software (not just the machine, which is available with most loggers). In some cases, the automated user accounts caused problems whereas in others, specific users were the cause of problems. &quot;I need to watch Mike do some work, he keeps causing a specific error.&quot;&lt;/li&gt;&#xA;&lt;li&gt;&quot;User Actions&quot; - I had a global stack that would keep a trace of every actionable click/button press as the user did it and had that tacked on to error logs. Reproducing the error was often a case of walking through that trace and performing the same steps as the user (I had hoped to build a CodedUI test generator that would parse the trace and perform the steps automatically, but never did)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2011-01-02T21:00:51.990" />
  <row Id="33223" PostTypeId="2" ParentId="31567" CreationDate="2011-01-02T21:02:17.443" Score="1" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;I think you should have a good hobby&#xA;so better learn to do a sport(an&#xA;outdoor, so you get exercise as well)&lt;/li&gt;&#xA;&lt;li&gt;Learn Music or try writing poetry, proses, scripts for drama(learning those things will improve your creativity which i think is most needed for a programmer or any person)&lt;/li&gt;&#xA;&lt;li&gt;Mathematics(Strongly recommended)&lt;/li&gt;&#xA;&lt;li&gt;public speaking and communication skills&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7669" LastActivityDate="2011-01-02T21:02:17.443" CommunityOwnedDate="2011-01-02T21:02:17.443" />
  <row Id="33224" PostTypeId="2" ParentId="27656" CreationDate="2011-01-02T21:26:43.623" Score="2" ViewCount="" Body="&lt;p&gt;I have, twice, done (successfully), what you are trying to do now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of it is the same as if you were applying to where you live currently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Things that don't change&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Check job boards (government, indeed.com/.ca, etc.)&lt;/li&gt;&#xA;&lt;li&gt;Contact local recruiters to that area&lt;/li&gt;&#xA;&lt;li&gt;Look for specific companies that you might want to work for (job posting or not) and talk to them over the phone.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Things that do change&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I personally put in my cover letters my current location and noted that I'd be willing to move at my own expense.&lt;/li&gt;&#xA;&lt;li&gt;List a (&lt;em&gt;good&lt;/em&gt;) reason that you want to move, but don't make it the focal point of your application. Family was my first reason, and I wanted to work at that specific company the second time.&lt;/li&gt;&#xA;&lt;li&gt;If you can make the trip, offer to travel to perform the interview in-person. Some companies will pay for the trip, but I wouldn't expect them to (depending on the position).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2011-01-02T21:26:43.623" CommentCount="1" />
  <row Id="33225" PostTypeId="1" CreationDate="2011-01-02T21:41:37.030" Score="7" ViewCount="302" Body="&lt;p&gt;As many people know, &lt;a href=&quot;http://www.reuters.com/article/idUSN0213739020110102&quot; rel=&quot;nofollow&quot;&gt;Apple has a bug in their iPhone&lt;/a&gt; that prevented alarms from going off at 1st and 2nd of January 2011. What is strange is how that bug might happen - i.e., as far as I know this bug happens in all timezones and nobody is switching off DST on Jan 1st, so it's not timezone or DST-related. Also, Jan 1st seems to be nothing special as a UNIX timestamp, so something like sign change or integer overflow can't be the reason. It is highly improbably that alarm code has something like &lt;code&gt;if(date == JANUARY_1_2011 || date == JANUARY_2_2011) turn_alarms_off();&lt;/code&gt; - that would be a sabotage and not a bug. So the question is - could you imagine and describe a bug that would cause the alarm to fail exactly at Jan 1st and 2nd everywhere while letting it work otherwise, without specifically referring to those exact dates? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, if somebody knows the &lt;strong&gt;real&lt;/strong&gt; cause, that would be a definite answer, but if nobody knows it - I think it is interesting to think what &lt;em&gt;might&lt;/em&gt; be the cause of such strange bug. &lt;/p&gt;&#xA;" OwnerUserId="10080" LastActivityDate="2011-01-02T23:11:18.060" ClosedDate="2011-01-03T11:16:33.780" Title="Apple New Year alarm bug cause" Tags="&lt;bugs&gt;&lt;apple&gt;" AnswerCount="1" CommentCount="12" FavoriteCount="3" />
  <row Id="33226" PostTypeId="2" ParentId="6754" CreationDate="2011-01-02T21:42:15.923" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Of course, where else would I find cheap code monkeys I can pay in Cadbury eggs ? :)&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;More seriously, it's not up to me to decide what they want to do, but I would certainly show them the ropes and encourage them if they felt that's what they want to do; same if they want to do something else, I'd support them regardless.&lt;/p&gt;&#xA;" OwnerUserId="9094" LastActivityDate="2011-01-02T21:42:15.923" CommunityOwnedDate="2011-01-02T21:42:15.923" />
  <row Id="33227" PostTypeId="2" ParentId="33182" CreationDate="2011-01-02T21:54:59.190" Score="0" ViewCount="" Body="&lt;p&gt;This is the way I set up my NHibernate integration tests:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I first create a fresh db before running my integration tests. Each query and entity mapping is tested in its own fixture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I run each test in a transaction that is rolled back on completion. Each test is responsible for setting up test data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This approach has worked fairly well for me especially testing queries and whether or not they are returning expected results.&lt;/p&gt;&#xA;" OwnerUserId="12242" LastActivityDate="2011-01-02T21:54:59.190" />
  <row Id="33228" PostTypeId="1" AcceptedAnswerId="33248" CreationDate="2011-01-02T21:57:20.467" Score="4" ViewCount="243" Body="&lt;p&gt;So, I'm seriously considering axing ASP.NET AJAX from my future projects as I honestly feel it's too bloated, and at times convoluted.  I'm also starting to feel it is a dying library in the .NET framework as I hardly see any quality components from the open-source community.  All the kick-ass components are usually equally bloated commercial components... It was cool at first, but now I tend to get annoyed with it more than anything else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm planning on switching over to the jQuery library as just about everything in ASP.NET AJAX is often easily achievable with jQuery, and, more often than not, more graceful of a solution that ASP.NET AJAX and it has a much stronger open-source community.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps, it's just me, but do you feel the same way about ASP.NET AJAX?  How was/is your experience working with ASP.NET AJAX?&lt;/p&gt;&#xA;" OwnerUserId="7785" LastActivityDate="2011-01-03T18:59:08.393" Title="ASP.NET AJAX and my axe!" Tags="&lt;asp.net&gt;&lt;jquery&gt;&lt;ajax&gt;" AnswerCount="5" CommentCount="1" FavoriteCount="1" />
  <row Id="33229" PostTypeId="2" ParentId="6754" CreationDate="2011-01-02T21:59:51.853" Score="1" ViewCount="" Body="&lt;p&gt;Well, both me and my current (long-term) partner are programmers. In case we'll breed, I guess we would both like our offspring to follow our steps - plus, it will be exposed to an environment of programmers and, if it's only one gene that carries some sort of &quot;programming aptitude&quot;, it will probably inherit it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then again, I just want it to be smart. There are smart fellows who devote themselves to humanistic studies, so it might as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I got this thing, though, that - in a very wrong wrong way - pushes me to consider every brilliant mind that does not use his/her skills to make significant achievements in hard sciences/engineering as if he/she is wasting his/her talent, so I will cry a little inside and probably joke about it with my partner when we're alone - and with the kid as well, if he develops some sense of humor.&lt;/p&gt;&#xA;" OwnerUserId="11146" LastActivityDate="2011-01-02T21:59:51.853" CommunityOwnedDate="2011-01-02T21:59:51.853" CommentCount="1" />
  <row Id="33230" PostTypeId="1" CreationDate="2011-01-02T22:03:49.397" Score="2" ViewCount="513" Body="&lt;p&gt;You can guess how I came to ask this question...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway : &lt;a href=&quot;http://www.bbc.co.uk/news/business-11944966&quot; rel=&quot;nofollow&quot;&gt;http://www.bbc.co.uk/news/business-11944966&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Donald Ferguson claiming that his websphere was his biggest disaster and proclaiming that end-user programming will be the way forward.  This genuinely spurs the question : what with current programming languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, I don't think that end-user programming will go much beyond a rather rigid template where you can build some apps around. If you see how many people actually manage to understand the basic functionality of functions in EXCEL... Plus, I fail to see how complex and performant systems can be built in such an end-user programming language ( Visual Basic, anyone?) Nice to play around with, but for many applications they're just not the thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So no worries for the old languages if you ask me. What's your ideas?&lt;/p&gt;&#xA;" OwnerUserId="7268" LastEditorUserId="7268" LastEditorDisplayName="" LastEditDate="2011-01-02T22:09:39.690" LastActivityDate="2011-01-17T19:11:14.120" ClosedDate="2011-01-03T11:15:42.940" Title="Donald Ferguson says end-user programming is next big thing. Is it?" Tags="&lt;end-user-programming&gt;&lt;websphere&gt;" AnswerCount="12" CommentCount="1" />
  <row Id="33231" PostTypeId="1" CreationDate="2011-01-02T22:05:08.927" Score="2" ViewCount="267" Body="&lt;p&gt;Long ago, I used to program in C and then VB exploitation changed my career path. After VB came .NET that proved to be something of a Microsoft HoneyPot for old VB programmers and frustrated programmers of other hard-to-learn languages. The label on this HoneyPot was: &quot;Getting things done.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I now want to contribute to Linux and other GNU projects. I feel whatever programming language you learn today, if programming is your bread-and-butter, you must remain in touch with C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many things have changed now, from the old days of Turbo-C for DOS to the present... Please advise me how to get back on the C track again. Reading again the whole thing, chapter-by-chapter is not possible now, but I can learn by writing small utilities and similar types of things, but GUI based.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, I hope, learning is going to be easy now with so many live forums and active community spots like Stack Overflow etc.&lt;/p&gt;&#xA;" OwnerUserId="6001" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2011-01-03T00:07:33.163" LastActivityDate="2011-01-03T00:07:33.163" ClosedDate="2011-01-03T11:19:16.277" Title="Return to the old C days." Tags="&lt;learning&gt;&lt;c&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="33232" PostTypeId="2" ParentId="33231" CreationDate="2011-01-02T22:14:29.047" Score="4" ViewCount="" Body="&lt;p&gt;I think the &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131103628&quot; rel=&quot;nofollow&quot;&gt;K &amp;amp; R book (274 pages)&lt;/a&gt; and the &lt;a href=&quot;http://c-faq.com/index.html&quot; rel=&quot;nofollow&quot;&gt;C FAQ&lt;/a&gt; should get you started pretty quickly. Then you can look into working on some simple programming problems or reading code samples.&lt;/p&gt;&#xA;" OwnerUserId="42" LastActivityDate="2011-01-02T22:14:29.047" CommentCount="3" />
  <row Id="33233" PostTypeId="2" ParentId="33230" CreationDate="2011-01-02T22:14:47.673" Score="18" ViewCount="" Body="&lt;p&gt;It's all relative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The easier you make the programming, the more features the programmers will be able to deliver. There will always be programmers because humans like to specialize. What a C# or Java or PHP programmer does these days would be considered end user programming for 30 years ago. We just keep sliding the scale.&lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2011-01-02T22:14:47.673" CommentCount="1" />
  <row Id="33234" PostTypeId="2" ParentId="32840" CreationDate="2011-01-02T22:30:20.293" Score="1" ViewCount="" Body="&lt;p&gt;I think reuse reuse reuse is increasingly become the way things are supposed to be done. How much you do that, versus how much you roll your own is probably mainly a function of temperment. By temperment, and well as several bad early experiences, I don't like to copy packages, I'd rather figure out how to implement it myself. But, this obviously has its drawbacks. People like me, will learn a lot about designing/building low level proceedures, but may be hopelessly inefficient building a big app that uses a lot of existing subfunctions that can be found in opensource. If you are on a team, it would be good to have at least one programmer who is of the the roll-hisown type. If you need any novel solution methods, he would be best able to write them. But, you also need people adept at finding, evaluating and integrating existing code as well. I think it ineveitable that as time progresses the C/P activity will gain in importance.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2011-01-02T22:30:20.293" CommunityOwnedDate="2011-01-02T22:30:20.293" />
  <row Id="33235" PostTypeId="1" AcceptedAnswerId="33238" CreationDate="2011-01-02T22:34:24.460" Score="17" ViewCount="336" Body="&lt;p&gt;I, for one, only add debug code (such as print statements) when I'm trying to locate a bug. And once I've found it, I remove the debug code (and add a test case which specifically tests for that bug). I feel that it's cluttering the real code and therefore has no place there unless I'm debugging.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you do it? Do you leave the debug code in place, or remove it when obsolete (which may be difficult to judge when that is)?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2011-01-03T15:38:57.780" Title="Should debug code be left in place, always, or added only when debugging and removed when the bug has been found?" Tags="&lt;debugging&gt;" AnswerCount="8" />
  <row Id="33236" PostTypeId="2" ParentId="28950" CreationDate="2011-01-02T22:36:59.733" Score="2" ViewCount="" Body="&lt;p&gt;&lt;em&gt;I think Haskell's type system is one of it's main strengths, but that's just my opinion.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing about pure functional languages is that data is immutable. If you can't change the value (or type) of an object, then it makes sense to use a static type system. So, yes, being a purely functional language means that being statically typed is a wise choice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The type system shouldn't really get in the way though. Haskell can infer the types of just about anything unlike C++ where every variable must be annotated. Also, being able to create discriminated unions alleviates most of the bane of static type systems. When it spits out error messages, it just tells you at compile time what a language with dynamic types would tell you at runtime.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;The opposite of a dynamic type system is a static type system, not a strong type system. A strong type system is the opposite of a weak type system.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="10037" LastEditorUserId="10037" LastEditorDisplayName="" LastEditDate="2011-01-03T06:33:01.657" LastActivityDate="2011-01-03T06:33:01.657" />
  <row Id="33237" PostTypeId="2" ParentId="33235" CreationDate="2011-01-02T22:40:42.207" Score="10" ViewCount="" Body="&lt;p&gt;Code added specifically for debugging should be removed from production software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether this is complete removal or being put into conditional compilation sections (as in C/C++/C#) is up to you and your coding standard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are a number of reasons for this:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;There might be security implications if this code is executed or someone can access it's output.&lt;/li&gt;&#xA;&lt;li&gt;It might slow the application down.&lt;/li&gt;&#xA;&lt;li&gt;It might be confusing for other developers looking at the code (or indeed yourself) 6 months down the line.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="47" LastActivityDate="2011-01-02T22:40:42.207" CommentCount="1" />
  <row Id="33238" PostTypeId="2" ParentId="33235" CreationDate="2011-01-02T22:53:12.540" Score="18" ViewCount="" Body="&lt;p&gt;Debug print statements should be taken out; however, if you're needing to add them to debug a production problem then it may be worth considering if you have enough information being put into your logging framework. Information about parameters, error conditions and so on may well be useful later on when the next bug appears. Using a good logging framework that can be have debug or tracing log messages turned on dynamically can be very useful in the wild.&lt;/p&gt;&#xA;" OwnerUserId="11485" LastActivityDate="2011-01-02T22:53:12.540" CommentCount="2" />
  <row Id="33239" PostTypeId="2" ParentId="31011" CreationDate="2011-01-02T22:58:07.923" Score="0" ViewCount="" Body="&lt;p&gt;Edit: Rewritten to convey my point better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1: Entity Relationships&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have run into this problem with entities. Suppose that have two classes, Author and Article. Furthermore I have a render(Author) and render(Article) which return html documents describing either item. The author will have a list of articles and the article will have information about the author.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Author and Article will have a reference cycle. We can attempt to solve this cycle by introducing a weak reference. What if the reference is from Author to Article? Then render(Article) will not keep references to Author alive and thus will the object will be deallocated before it is used to get the Author's name. But, if the reference is from Article to Author that works fine, but render(Author) will not register any references against Article and they will be deallocated before their titles can be fetched.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Introducing weak references solves the problem so long as all of the relationships have a definite direction where the opposite direction is clearly secondary. But some relations do not work that way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;On the other hand:&lt;/em&gt; This precise problem only derives in cases where we have associations between objects. That is each object needs to hold a mutual reference to the other. Perhaps the language could support such associations naturally and thus give them special treatment with reference counting. That could be made to work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2: Data Structures&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Data structures very often have reference cycles. The most common example is a doubly-linked list. It is also not uncommon for tree structure to have next/prev pointers in the leaves for quick iteration. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;On the other hand:&lt;/em&gt; I suspect most such cycles are actually broken by the operation of the data structure. For example, when an object is removed from a linked list, the two references to the node will be reset thus clearing the references.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3: Deterministic Deletes&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One reason to use reference counting is that you get deterministic deletes. Objects will be deleted at predictable times. This means you can do things like close files, release locks, etc. because you know the objects will get deleted in a timely manner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is that this tends to breaks. If I accidentally create a cycle my files do not get closed and my locks do not get released. Furthermore, I receive no errors as a result of doing this. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't really a problem with reference counting. It is a case where the advantage (deterministic deletes) does not really work out leaving me with less reason to want reference counting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;On the other hand:&lt;/em&gt; The real issue might be argued to be that we did not have any automated testing to ensure the objects were destroyed. If had such a thing we would be informed when this didn't work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;4: Speed&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another reason to want reference counting is because it is faster. However, it seems this is not actually true. All the increments and decrements are actually pretty expensive. (It gets really bad when you start considering threading.) So its not clear that any speed advantage is gained here. In fact, it may be faster to use another GC technique.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;5: Convenience&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If working in a reference counting language, I have to worry about not creating reference cycles. I found myself creating cycles on a regular basis. In most circumstances I could fix this by introducing a weak reference. But why bother? There did seem to be some advantages to reference counting but they didn't seem to pan out (See 3&amp;amp;4) As a result, it just didn't seem worth it to fight the cycles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;In Conclusion&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reference Counting simply doesn't seem to deliver enough benefits over typical GC implementations to make up for the extra headache it gives the coders.&lt;/p&gt;&#xA;" OwnerUserId="1343" LastEditorUserId="1343" LastEditorDisplayName="" LastEditDate="2011-01-06T01:09:44.207" LastActivityDate="2011-01-06T01:09:44.207" CommentCount="2" />
  <row Id="33240" PostTypeId="2" ParentId="33182" CreationDate="2011-01-02T23:02:53.023" Score="0" ViewCount="" Body="&lt;p&gt;In my current project I first attempted to test my SQL by checking that it matched the expected values. Then I made a change to my SQL generation that caused every query to change (in a way that made no difference to all but the newest test case) thus causing all my tests to fail.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ugh...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, I test against a in memory SQLite database and the framework I use (SQLalchemy) takes care of handling the differences between that an my target database. I encapsulate the process of obtaining a database so that I can switch my tests to run against my actual database server (Firebird) occasionally, which takes considerably longer to run.&lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2011-01-02T23:02:53.023" />
  <row Id="33241" PostTypeId="2" ParentId="33228" CreationDate="2011-01-02T23:10:02.880" Score="7" ViewCount="" Body="&lt;p&gt;Same as yours actually. No, seriously, now I prefer ASP.NET MVC over regular ASP.NET, and as AJAX lib I always use jQuery, whether it is .NET project, JSP project, or any other. &lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2011-01-02T23:10:02.880" CommentCount="4" />
  <row Id="33242" PostTypeId="2" ParentId="33225" CreationDate="2011-01-02T23:11:18.060" Score="1" ViewCount="" Body="&lt;p&gt;&lt;em&gt;NOTE: This is only a theory.  It is my understanding that this question wants theories so here goes:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a feeling it might have something to do with off-by-one errors.  Maybe an off-by-one error on top of another one?  Somehow added to it so it gets off by two?&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2011-01-02T23:11:18.060" />
  <row Id="33243" PostTypeId="1" AcceptedAnswerId="38551" CreationDate="2011-01-02T23:21:59.800" Score="6" ViewCount="133" Body="&lt;p&gt;What is the difference between Acceptance Test--Driven Planning and Acceptance Test--Driven Development? Are they the same? &lt;/p&gt;&#xA;" OwnerUserId="11806" LastActivityDate="2011-01-20T23:59:31.727" Title="Acceptance Test--Driven Planning or Acceptance Test--Driven Development?" Tags="&lt;project-management&gt;&lt;software-engineering&gt;&lt;agile&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="33244" PostTypeId="2" ParentId="33228" CreationDate="2011-01-02T23:26:09.897" Score="1" ViewCount="" Body="&lt;p&gt;Try mootools, jquery is really something that tries to make Javascript act like PHP. Easier, but when you know MT you'll miss the features traded for simplicity.&lt;/p&gt;&#xA;" OwnerUserId="11827" LastActivityDate="2011-01-02T23:26:09.897" CommentCount="1" />
  <row Id="33245" PostTypeId="1" CreationDate="2011-01-02T23:23:33.967" Score="2" ViewCount="458" Body="&lt;p&gt;I'm not sure if it is a right place to ask about it but I think it is worth to try. I am PHP programer with near 5 years professional experience. I passed Zend certificates (PHP4, PHP5, ZF), I know almost everything what I should know. And the problem is, that I am bored. I think that I should change technology. It will give me a boost. It will give me satisfaction from work again. But I'm not sure what to choose. Java, .Net, C++ or maybe something other? I am really open to any technology. Have you ever had similar problem? What do you think about it? Maybe I should try few months holiday instead changing language?&lt;/p&gt;&#xA;" LastActivityDate="2011-01-03T05:24:48.113" ClosedDate="2011-01-03T08:13:33.947" Title="How can one combat boredom?" Tags="&lt;php&gt;" AnswerCount="7" CommentCount="6" FavoriteCount="1" />
  <row Id="33246" PostTypeId="2" ParentId="33245" CreationDate="2011-01-02T23:34:49.387" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Suggestions:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Contribute to an open-source project. &lt;a href=&quot;http://sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;Sourceforge&lt;/a&gt; has a ton of projects that you can get involved in.&lt;/li&gt;&#xA;&lt;li&gt;Get some books. Personally, I tend to compulsively buy books from &lt;a href=&quot;http://www.amazon.com/gp/search/ref=sr_nr_n_3?rh=n%3A283155%2Ck%3Ao%27reilly%2Cn%3A!1000%2Cn%3A5&amp;amp;bbn=1000&amp;amp;keywords=o%27reilly&amp;amp;ie=UTF8&amp;amp;qid=1294011131&amp;amp;rnid=1000&quot; rel=&quot;nofollow&quot;&gt;O'Reilly&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;JavaScript might be a great language for you to get into, especially since you know PHP. PHP, MySQl, and Ajax go well together.&lt;/li&gt;&#xA;&lt;li&gt;Or, learn a brand new technology (like you suggested). C# is a good one to learn. The .Net framework is very powerful and fun to use.&lt;/li&gt;&#xA;&lt;li&gt;As has been suggested, web design is also an interesting area. It's like a cross between design and programming and in my opinion, a lot of fun.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3285" LastActivityDate="2011-01-02T23:34:49.387" />
  <row Id="33247" PostTypeId="2" ParentId="33245" CreationDate="2011-01-02T23:35:55.240" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://workawesome.com/?s=boredom&quot; rel=&quot;nofollow&quot;&gt;WorkAwesome has quite a few articles&lt;/a&gt; that might interest you on the matter.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;My suggestion is to &lt;strong&gt;find a challenge&lt;/strong&gt; (at least that's what works for me), maybe even something not directly related to programming like Web design or typography, you might be surprised :)&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;You can also try to improve your score on StackOverflow if nothing else works :-D&lt;/p&gt;&#xA;" OwnerUserId="9094" LastActivityDate="2011-01-02T23:35:55.240" CommentCount="1" />
  <row Id="33248" PostTypeId="2" ParentId="33228" CreationDate="2011-01-02T23:37:32.067" Score="2" ViewCount="" Body="&lt;p&gt;I gotta assume you're talking about WebForms. When first announced, I thought this framework sounded sorta cool... Then I actually got to &lt;em&gt;use&lt;/em&gt; it, and immediately hated it. The superficial resemblance to WinForms provides a leaky abstraction that resembles - but utterly fails to match - traditional Windows desktop APIs, while adding endless pitfalls, mountains of tedious boilerplate, and very little else. Early promises of painless cross-browser/cross-device development quickly amounted to nothing, and viewstate brain-damage made it all too easy for new developers to create insanely large, slow pages. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The underlying framework isn't all that bad though. &lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2011-01-02T23:37:32.067" CommentCount="2" />
  <row Id="33249" PostTypeId="2" ParentId="4127" CreationDate="2011-01-02T23:47:29.417" Score="-4" ViewCount="" Body="&lt;p&gt;Objective C straight away, you'll only get bad habits from learning C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beside you should consider if you really want to develop for Apple and become their slave. Technonogy takes very long time to learn, Steve Jobs took one day to make all cross compilers illegal basically forbidding people to develop software in their choosen tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically they're running developer - exploitation sheme, and the guy running it is out of his mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's very hard to switch to some other platform. Apple can remove any app they want from their ecosystem and make tools you use for your job illegal... next week, or in an hour.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you heard about medieval farmers and feudal system? They basically worked on their &quot;owners&quot; land and nothing belonged to them. The &quot;master&quot; could tell any of them to get lost, because he had bad mood and they ended homeless. This is a modern feudal system, everything you made really belongs to Apple. They won't only decide if you can sell it, but they can ban it from running legally. They can even shutdown the maker of your developer tools if they decide to do so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At least for me it won't feel nice to be &quot;owned&quot; by some US corporation and used as a money-making drone, that can only develop what THEY (not my users) think is worth paying for.&lt;/p&gt;&#xA;" OwnerUserId="11827" LastActivityDate="2011-01-02T23:47:29.417" CommentCount="2" />
  <row Id="33250" PostTypeId="2" ParentId="33231" CreationDate="2011-01-02T23:51:05.700" Score="3" ViewCount="" Body="&lt;p&gt;I think if you don't have a couple years to know c++ and the techniques that are used in GUI programming - that's bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;DOS C - the whole thing is unusable now. You have programming model based on events, threads, many system objects to talk to. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or you can check Borland C++ builder, the framework will make all &quot;gui&quot; related things for you. For Microsoft developement tools - the sane solution for now is .NET and C#. C++ won't really give you any advantage developing .NET apps and it'll be a pain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;VisualC++ dev for windows is very hard thing to do. You first need the basics. GUI dev open-source way is not really &quot;Rapid&quot;.&lt;/p&gt;&#xA;" OwnerUserId="11827" LastActivityDate="2011-01-02T23:51:05.700" CommentCount="1" />
  <row Id="33251" PostTypeId="2" ParentId="33245" CreationDate="2011-01-02T23:53:27.007" Score="1" ViewCount="" Body="&lt;p&gt;Simple.... Take some vacations :) Switching technology =&gt; having to work more... probably won't help.&lt;/p&gt;&#xA;" OwnerUserId="11827" LastActivityDate="2011-01-02T23:53:27.007" />
  <row Id="33252" PostTypeId="2" ParentId="33235" CreationDate="2011-01-03T00:38:45.537" Score="1" ViewCount="" Body="&lt;p&gt;It depends on what the code is doing. Some code that is used for debugging can be left as it is, and some should be removed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code that verifies the sanity of the parameters in a method isn't always useful once the code is working properly, but it's often kept to make sure that the code is continuing to work properly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes you write code differently to make it easier to debug the code, for example calculating a value and putting it into a local variable, and then use the variable in next line, which makes it easy to check the result of the calculation when single stepping through the code. You could rewrite the code to use the calculated value directly, but the cost of using the local variable is so small (if any at all) that there is little reason to rewrite the code. Also, there is a point in leaving the code unchanged once you have tested it, there is always a small risk that you introduce a bug when changing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code that you add just to track down a specific bug can often be removed after you have found the bug.&lt;/p&gt;&#xA;" OwnerUserId="3674" LastActivityDate="2011-01-03T00:38:45.537" />
  <row Id="33253" PostTypeId="2" ParentId="31567" CreationDate="2011-01-03T00:54:12.327" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Marketing &amp;amp; advertising&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmers who do the WP7, iOS, Android... apps.&#xA;May boost your sells numbers.&lt;/p&gt;&#xA;" OwnerUserId="7890" LastActivityDate="2011-01-03T00:54:12.327" CommunityOwnedDate="2011-01-03T00:54:12.327" />
  <row Id="33254" PostTypeId="2" ParentId="33230" CreationDate="2011-01-03T01:04:35.703" Score="2" ViewCount="" Body="&lt;p&gt;I'm all for domain-specific-languages (DSL), which I think of as ways to bring a language for instructing the computer more in line with the thought processes of users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But will they get to the point where users can just express their thoughts to a computer program and it will do what they want?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well, maybe, some day. After all, I was a &lt;em&gt;bona fide&lt;/em&gt; AI disciple. But in being one, I got a glimpse of how hard that is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just consider a typical end-user programmable tool we have today, a TV remote control. It is covered with buttons. My s/o can barely watch the TV with it, and if my grandson gets hold of it and pushes a few buttons, even I can't make it work. We have to call in an expert - one of our kids.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OK, so maybe you can get a TV remote with menus instead of buttons, so it's a little more user-friendly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But do I think a time will come when someone like my wife can simply tell a machine what she wants, and it will understand?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If so, it will be smarter than me, not that that's saying much.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2011-01-03T01:04:35.703" CommentCount="1" />
  <row Id="33259" PostTypeId="2" ParentId="33235" CreationDate="2011-01-03T01:06:33.437" Score="2" ViewCount="" Body="&lt;p&gt;Once upon a time I used to use a lot of debugging code. I was almost entirely targeting Windows, so there was lots of this debug string output function that I don't remember how to spell any more, so I could capture the trace with a particular program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some debug code stayed in place, particular stuff that was intended to give the nesting of calls. However, even though the debug string thing mostly wouldn't be visible on a production system, it was still all done under conditional compilation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reality is, though, that all that debug code was a lot of effort for something that is ideally handled a different way - using, of course, a debugger. At the time, I wasn't that impressed with the Borland C++ debugger. The tools were there, but they too often gave misleading results, and using the non-IDE debugger (often necessary) meant memorizing shortcut keys, which meant a distraction from the job at hand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only debugging experience I've found that's worse is command-line GDB.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being an expert with the tools you use every day is, of course, important - but debugging really shouldn't be something you do every day. If you use the debugger so often you're OK with learning dozens of commands and/or keyboard shortcuts, that seems a bit red flag-ish to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the time I was working in Visual Studio 7, though, it was clear that debugging could be very practical and effective. If you can do your debugging in Visual Studio (express editions included), debugging is a breeze. No doubt if you can find the right GUI/IDE front end, GDB is easy and effective too, though I've not yet done that search.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also something to be said for unit testing, with coverage analysis using gcov. The more confident that you are in the behaviour of your libraries, the less deep your debugging needs to be - and the less often you need the debugger in the first place. And writing unit tests is quite reasonably something you should be doing most days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unexpectedly important tool = cmake, a build tool that allows me to easily switch between building for GCC and for VC++, among other things. So I can do my unit testing and gcov-based coverage using GCC, but easily switch to VC++ to use the debugger.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastEditorUserId="8709" LastEditorDisplayName="" LastEditDate="2011-01-03T01:27:01.913" LastActivityDate="2011-01-03T01:27:01.913" CommentCount="4" />
  <row Id="33260" PostTypeId="2" ParentId="33245" CreationDate="2011-01-03T01:15:10.747" Score="4" ViewCount="" Body="&lt;p&gt;Work in another country. I personally moved to Taiwan :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It helps with the boredom when you spend most of your day trying to figure out what your coworkers said.&lt;/p&gt;&#xA;" OwnerUserId="7566" LastActivityDate="2011-01-03T01:15:10.747" />
  <row Id="33261" PostTypeId="2" ParentId="33235" CreationDate="2011-01-03T01:23:27.427" Score="10" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/33235/should-debug-code-be-left-in-place-always-or-added-only-when-debugging-and-remo/33237#33237&quot;&gt;ChrisF&lt;/a&gt; and &lt;a href=&quot;http://programmers.stackexchange.com/questions/33235/should-debug-code-be-left-in-place-always-or-added-only-when-debugging-and-remo/33238#33238&quot;&gt;Alaric&lt;/a&gt; both have valid points; +1 for them. I can identify at least 5 different types of debug code that I use. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Using logs to dump system state at a specific point in time.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void function(...)&#xA;{&#xA;    ...dump everything i know about.&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Using logs for execution check points.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void function(...)&#xA;{&#xA;    ...got here 1&#xA;    ...got here 2&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Code that actually forces a certain condition to be true, but breaks normal behavior. Example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Suppose you have some logs regarding an error, but you can't reproduce the problem. You might try writing code that force certain variables to have certain values that match the information in the log.  &lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Verification logging - I would classify this as a verbose logging that can be used to validate the software's correctness that should not be included in production, like validating the individual steps of an algorithm for example.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Operation logging - refer to &lt;a href=&quot;http://programmers.stackexchange.com/questions/33235/should-debug-code-be-left-in-place-always-or-added-only-when-debugging-and-remo/33238#33238&quot;&gt;Alaric's post&lt;/a&gt;. That is pretty much what I mean by &quot;operation logging&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;1, 2 and 3 should be taking out completely. Something like 4 I would probably conditionally compile out of the code. For 5, &lt;a href=&quot;http://programmers.stackexchange.com/questions/33235/should-debug-code-be-left-in-place-always-or-added-only-when-debugging-and-remo/33238#33238&quot;&gt;Alaric&lt;/a&gt; had a great point about being able to dynamically turn the logs off. That may address &lt;a href=&quot;http://programmers.stackexchange.com/questions/33235/should-debug-code-be-left-in-place-always-or-added-only-when-debugging-and-remo/33237#33237&quot;&gt;ChrisF's point&lt;/a&gt; in his second bullet for most cases. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2011-01-03T15:30:40.767" LastActivityDate="2011-01-03T15:30:40.767" CommentCount="2" />
  <row Id="33262" PostTypeId="2" ParentId="33230" CreationDate="2011-01-03T01:23:57.060" Score="18" ViewCount="" Body="&lt;p&gt;This kind of talk has been going on for over 30 years. This would appeal to some power users, but not the average worker. I just don't see it happening beyond what's already out there in Access and Excel.&lt;/p&gt;&#xA;" OwnerUserId="7038" LastActivityDate="2011-01-03T01:23:57.060" CommentCount="2" />
  <row Id="33263" PostTypeId="2" ParentId="33243" CreationDate="2011-01-03T01:28:25.493" Score="5" ViewCount="" Body="&lt;p&gt;Acceptance Test-Driven Planning &lt;a href=&quot;http://www.springerlink.com/content/vcq847l8ker3jc1d/&quot; rel=&quot;nofollow&quot;&gt;is an extension of XP Planning.&lt;/a&gt;  It involves the following steps:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Getting our story straight&lt;/li&gt;&#xA;&lt;li&gt;Show and tell&lt;/li&gt;&#xA;&lt;li&gt;Retrospective&lt;/li&gt;&#xA;&lt;li&gt;(optional) Technical Retrospective&lt;/li&gt;&#xA;&lt;li&gt;Iteration Planning Workshop&lt;/li&gt;&#xA;&lt;li&gt;(optional) Big, up-front thinking&lt;/li&gt;&#xA;&lt;li&gt;Cutting the iteration.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;This planning process is supposed to take up about 10% of the time, the development effort 90%.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Acceptance Test-Driven Development is an &lt;a href=&quot;http://testdrivendeveloper.com/2008/04/02/AcceptanceTestDrivenDevelopmentExplained.aspx&quot; rel=&quot;nofollow&quot;&gt;extension of Test-Driven Development.&lt;/a&gt;  Note that in the diagram below, traditional Test-Driven Development is referred to as Unit Test-Driven Development (UTDD)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/JchHJ.gif&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-01-03T01:50:11.077" LastActivityDate="2011-01-03T01:50:11.077" CommentCount="1" />
  <row Id="33264" PostTypeId="2" ParentId="33230" CreationDate="2011-01-03T01:45:30.020" Score="6" ViewCount="" Body="&lt;p&gt;End user programming tools are an interesting idea, but beyond basic applications (&quot;I made my own budget calculator program&quot;, or a few outliers (I know doctors that have learned enough database programming to create a database for themselves and their departments) I doubt it will take off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? I don't think the average person can (or is used to) specifying what they want in a Turing compatible language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example from a current project:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Them&lt;/strong&gt;: &quot;The system should find duplicate entries and flag them&quot;&lt;br&gt;&#xA;&lt;strong&gt;Me&lt;/strong&gt;: &quot;Ok, you mean entries that are exactly the same? Same filed date and same values for all the attributes?&quot;&lt;br&gt;&#xA;&lt;strong&gt;Them&lt;/strong&gt;: &quot;Oh no, duplicate entries, but the filing date and (another attribute) can be different&quot;&lt;br&gt;&#xA;&lt;strong&gt;Me&lt;/strong&gt;: &quot;Then they're not duplicates at the database level, and this becomes harder...&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While they were fine from a business perspective of the idea of &quot;duplicate entries&quot;, a whole level of detail was missing - detail that I needed to properly implement what they were asking for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We also &lt;em&gt;have&lt;/em&gt; some end user programming tools, at least on Mac OS X: Applescript (a English-like scripting language) and Automator (very simple drag and drop &quot;string these 14 commands together&quot; programming tool). These tools have gained market share in certain communities (pre-press/desktop publishing), but do they enable end users to create everything they want themselves? (Answer: No... and I've done my share of work writing and deploying Applescripts for customers)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Javascript's possibilites are interesting (because everyone's on the web...), but probably will turn out like Applescript/Automator: some people build great tools with it, but end users using a programming tool like they use a word processor today? Doubt it&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See also: Yahoo Pipes.&lt;/p&gt;&#xA;" OwnerUserId="2706" LastActivityDate="2011-01-03T01:45:30.020" CommentCount="1" />
  <row Id="33266" PostTypeId="2" ParentId="33230" CreationDate="2011-01-03T01:54:55.253" Score="2" ViewCount="" Body="&lt;p&gt;I think I agree with what he is talking about and to some extent I feel like it has been going on for the last 20+ years.  We moved away from assembly and more people were able to be programmers who couldn't wrap their heads around how to do more complicated things with very limited instructions.  Some kinds development eventually moved away from C/C++ to managed languages which tended to lower the entrance barrier to development by removing manual memory management.  We have new languages being worked on constantly, each more english-like and powerful than the previous.  For smart, IT-sophisticated workers it is entirely possible that some of the more simple day to day tasks performed by programmers now will end up being performed by them.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just think about some of the current BMP suites with gui based, english like reporting frameworks.  Those are essentially tasks that programmers used to have to perform for the people who needed them.  Now, many of the smarter business folks are able to create ad-hoch reports on their own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, being a programmer tends to require a certain type of reasoning and I don't think any of us will ever see the day when operating systems, search engines, etc are being created by non-programmers.  If something comes along that removes some of the more tedious tasks I have to perform on a daily basis, I'm all for it.&lt;/p&gt;&#xA;" OwnerUserId="11536" LastActivityDate="2011-01-03T01:54:55.253" />
  <row Id="33267" PostTypeId="2" ParentId="33230" CreationDate="2011-01-03T02:15:34.910" Score="1" ViewCount="" Body="&lt;p&gt;This is the same promise that was behind Assembly, C, BASIC, Visual Basic, Shell Scripts, Access, Windows Workflow and pretty much every other programming language (besides BF)&lt;/p&gt;&#xA;" OwnerUserId="11878" LastActivityDate="2011-01-03T02:15:34.910" CommentCount="4" />
  <row Id="33268" PostTypeId="2" ParentId="33230" CreationDate="2011-01-03T02:35:35.513" Score="4" ViewCount="" Body="&lt;p&gt;yes and no. past a certain level of complexity, they're not &lt;em&gt;end-users&lt;/em&gt; any more!&lt;/p&gt;&#xA;" OwnerUserId="906" LastEditorUserId="906" LastEditorDisplayName="" LastEditDate="2011-01-03T06:48:03.910" LastActivityDate="2011-01-03T06:48:03.910" />
  <row Id="33269" PostTypeId="2" ParentId="33216" CreationDate="2011-01-03T02:39:36.230" Score="3" ViewCount="" Body="&lt;p&gt;I would recommend really learning how systems are exploited.  Learn about how various types of exploits work and you will be more prepared to identify/fix them.  Below are some of the better resources/books I have found as a lot of the 'hacking' books you can buy are at times comical:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0764544683&quot; rel=&quot;nofollow&quot;&gt;Shell Coders Handbook&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1597494860&quot; rel=&quot;nofollow&quot;&gt;A Guide to Kernel Exploitation&lt;/a&gt; - This one requires a fair bit of O.S. knowledge but is one of the better security books I have found.  Fairly current compared to a lot of what you will find as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://insecure.org/stf/smashstack.html&quot; rel=&quot;nofollow&quot;&gt;Phrack 49, Smashing the stack for fun and profit&lt;/a&gt; - Really brought to buffer-overflows to the masses.&lt;/p&gt;&#xA;" OwnerUserId="11536" LastActivityDate="2011-01-03T02:39:36.230" />
  <row Id="33270" PostTypeId="2" ParentId="24378" CreationDate="2011-01-03T03:20:23.277" Score="0" ViewCount="" Body="&lt;p&gt;This script:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$tags = _GET['tags'];&#xA;foreach ($tags as $tag) {&#xA;    echo 'tag: ', $tag;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;will run fine for &lt;code&gt;script.php?tags[]=one&lt;/code&gt; but will fail for &lt;code&gt;script.php?tags=one&lt;/code&gt;, because &lt;code&gt;_GET['tags']&lt;/code&gt; returns an array in the first case but not in the second. Since the script is written to expect an array (and you have less control over the query string sent to the script), the problem can be solved by appropriately casting the result from &lt;code&gt;_GET&lt;/code&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;$tags = (array) _GET['tags'];&#xA;foreach ($tags as $tag) {&#xA;    echo 'tag: ', $tag;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5612" LastActivityDate="2011-01-03T03:20:23.277" />
  <row Id="33272" PostTypeId="2" ParentId="33230" CreationDate="2011-01-03T03:35:04.687" Score="6" ViewCount="" Body="&lt;p&gt;I don't think the complexity of programming is the only factor holding users back. Many users are so busy working &quot;in&quot; their jobs they can't take the time to work &quot;on&quot; their jobs. If a sales person said they would be willing to create their own apps on salesforce.com instead of contacting clients, I'd fire them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many programmers have a story or two about some Access database a department created for a &quot;temporary&quot; project that turned into a major line of business. You can't predict these things. Throwing a lot of development dollars at the beginning may not be justified, but when business takes off, you hire a programmer. Paying a 1000 users to stare at an hourglass doesn't make much sense.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-03T03:35:04.687" />
  <row Id="33273" PostTypeId="2" ParentId="33245" CreationDate="2011-01-03T03:39:27.600" Score="2" ViewCount="" Body="&lt;p&gt;Tell your employer you're bored and things will get real interesting.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-03T03:39:27.600" />
  <row Id="33274" PostTypeId="1" CreationDate="2011-01-03T04:22:29.983" Score="0" ViewCount="152" Body="&lt;p&gt;Hi,&#xA;I've written a simple BFS program in C++, however I need to write the nodes traversed to get from start to finish. How do I record these nodes?&#xA;Thank you,&#xA;a neutral gray.&lt;/p&gt;&#xA;" OwnerUserId="12252" LastActivityDate="2011-01-03T06:21:10.550" ClosedDate="2011-01-03T14:02:33.653" Title="Listing nodes for BFS in C++" Tags="&lt;c++&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="33275" PostTypeId="1" CreationDate="2011-01-02T11:32:58.077" Score="0" ViewCount="96" Body="&lt;p&gt;Hi, I have heard a lot of different terms to describe the process of turning a website design into a editable CMS. Currently I take the design and &quot;slice&quot; this up into HTML and CSS then I &quot;plug&quot; this into a CMS. I would class this as frontend development depending on the level of customisation required for the CMS. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason I ask is I am currently writing up my CV and have become stuck on the correct term for this. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Kind Regards&lt;/p&gt;&#xA;" LastActivityDate="2011-01-03T04:54:17.647" ClosedDate="2011-01-03T11:20:10.020" Title="Correct term for PSD to HTML to CMS" Tags="&lt;php&gt;&lt;html&gt;&lt;css&gt;&lt;xhtml&gt;&lt;cms&gt;" AnswerCount="3" CommentCount="6" />
  <row Id="33276" PostTypeId="2" ParentId="33275" CreationDate="2011-01-02T11:37:11.633" Score="1" ViewCount="" Body="&lt;p&gt;I'm not sure about &quot;frontend developer&quot;, as in most circles this implies a deep understanding of CSS, JavaScript, jQuery, etc. (Then again, if you have these skills it's a perfect description.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Irrespective, I wouldn't loose too much sleep over it - as long as you're listing your key skills it should be fairly evident.&lt;/p&gt;&#xA;" OwnerUserId="8080" LastActivityDate="2011-01-03T04:54:17.647" CommentCount="1" />
  <row Id="33277" PostTypeId="2" ParentId="33275" CreationDate="2011-01-02T11:48:28.667" Score="1" ViewCount="" Body="&lt;p&gt;I think webdesigner might be appropriate.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-03T04:54:17.647" />
  <row Id="33278" PostTypeId="2" ParentId="33275" CreationDate="2011-01-02T11:53:46.823" Score="0" ViewCount="" Body="&lt;p&gt;Template slicer/Web designer comes to mind.&lt;/p&gt;&#xA;" OwnerUserId="8310" LastActivityDate="2011-01-03T04:54:17.647" />
  <row Id="33279" PostTypeId="1" CreationDate="2011-01-03T05:02:43.097" Score="0" ViewCount="135" Body="&lt;p&gt;I want to know what knowledge should I have to build a complete dynamic website and which programming language &amp;amp; tool(IDE) is best(if not, better) to build? Even suggest one tutorial to build dynamic website.&lt;/p&gt;&#xA;" OwnerUserId="12254" LastEditorUserId="12254" LastEditorDisplayName="" LastEditDate="2011-01-03T06:59:08.223" LastActivityDate="2011-01-03T09:58:40.010" ClosedDate="2011-01-03T11:08:13.440" Title="Building web site" Tags="&lt;websites&gt;" AnswerCount="4" CommentCount="5" />
  <row Id="33280" PostTypeId="2" ParentId="20109" CreationDate="2011-01-03T05:04:40.230" Score="0" ViewCount="" Body="&lt;p&gt;Some logging related links from SO&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://stackoverflow.com/questions/2609632/what-do-we-log-and-why-do-we-log-it&quot;&gt;What do we log and why do we log it?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://stackoverflow.com/questions/354837/whats-up-with-logging-in-java&quot;&gt;What's Up with Logging in Java?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://stackoverflow.com/questions/576185/logging-best-practices&quot;&gt;Logging best practices&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="120" LastActivityDate="2011-01-03T05:04:40.230" />
  <row Id="33281" PostTypeId="2" ParentId="33235" CreationDate="2011-01-03T05:14:05.020" Score="0" ViewCount="" Body="&lt;p&gt;My take on it:  Debug code used to kill a bug within the code in question I generally remove entirely.  Debug code used to kill a bug resulting from outside forces I generally simply comment out.&lt;/p&gt;&#xA;" OwnerUserId="5555" LastActivityDate="2011-01-03T05:14:05.020" />
  <row Id="33282" PostTypeId="2" ParentId="33245" CreationDate="2011-01-03T05:17:58.600" Score="0" ViewCount="" Body="&lt;p&gt;Find a new job or create a new one by taking more initiative where you currently work. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-03T05:17:58.600" />
  <row Id="33283" PostTypeId="2" ParentId="33245" CreationDate="2011-01-03T05:24:48.113" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;The pet project you always wanted to do but never had time. Now it's time to do it. :-}&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Learn some new web framework. E.g. Python/Django or Ruby/ROR.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Edit your resume and go to some interviews, just for the fun of it. :-}&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="42" LastActivityDate="2011-01-03T05:24:48.113" />
  <row Id="33284" PostTypeId="2" ParentId="18387" CreationDate="2011-01-03T05:26:52.623" Score="0" ViewCount="" Body="&lt;p&gt;I would also recommend &lt;a href=&quot;http://programmers.stackexchange.com/questions/565/favourite-programming-blog-posts-or-short-articles&quot;&gt;this question&lt;/a&gt; on Programmers. It isn't exclusively Microsoft, but there's a lot of good stuff in it including MS-related items.&lt;/p&gt;&#xA;" OwnerUserId="7892" LastActivityDate="2011-01-03T05:26:52.623" />
  <row Id="33285" PostTypeId="2" ParentId="31567" CreationDate="2011-01-03T05:41:04.020" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Photography.....&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Atleast for me because it makes me happy, and sometimes I seriously think this as an alternative carrier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So talking more general, anything apart from computers you are interested in. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. : Learning other language is not a bad idea at all.&lt;/p&gt;&#xA;" OwnerUserId="9006" LastActivityDate="2011-01-03T05:41:04.020" CommunityOwnedDate="2011-01-03T05:41:04.020" />
  <row Id="33286" PostTypeId="2" ParentId="33279" CreationDate="2011-01-03T05:50:37.873" Score="1" ViewCount="" Body="&lt;p&gt;This is a very open ended question. It is not clear what experience/background you have but assuming you have no prior web development experience, it is too early to decide on options.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could pick up any one set of tools/technologies and gain some experience building websites using those. I started with PHP, for example. Pick up a book or any online tutorial that explains how to create a dynamic website. As you go along, things will become clearer and you will get more insight into what different options exist helping you make an informed decision.&lt;/p&gt;&#xA;" OwnerUserId="2861" LastActivityDate="2011-01-03T05:50:37.873" CommentCount="2" />
  <row Id="33287" PostTypeId="2" ParentId="33235" CreationDate="2011-01-03T06:01:06.033" Score="0" ViewCount="" Body="&lt;p&gt;If the bug is from the unit testing or from internal, the debug code could be removed altogether. But if the bug is from the production, the debug code better be there inside the compile tags. Putting it inside compile tags will help the other developers to understand that this code is only for debug purpose. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2011-01-03T06:01:06.033" />
  <row Id="33288" PostTypeId="2" ParentId="33279" CreationDate="2011-01-03T06:16:40.097" Score="1" ViewCount="" Body="&lt;p&gt;Consider learning one of the MVC style systems with its associated language, such as Ruby on Rails or ASP.NET MVC. MVC frameworks are agile and flexible, cleanly organized, and produce efficient HTML markup.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Combine that with a good database system like PostGresql, and an ORM framework like Hibernate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For ASP.NET MVC, the &lt;a href=&quot;http://nerddinnerbook.s3.amazonaws.com/Intro.htm&quot; rel=&quot;nofollow&quot;&gt;NerdDinner tutorial&lt;/a&gt; is an excellent introduction.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-01-03T06:22:22.823" LastActivityDate="2011-01-03T06:22:22.823" />
  <row Id="33289" PostTypeId="2" ParentId="33274" CreationDate="2011-01-03T06:21:10.550" Score="0" ViewCount="" Body="&lt;p&gt;In your BFS, you must have a flag with each node named 'IsVisited', which is yes if the node has visited already. If no, then you make it true and mark the node as visited. The time you are doing this, you can print that node.&lt;br&gt;&#xA;If you want to print all the nodes at the end of your BFS, then you will have to create a first in-first out linked list (queue), and then add each new visited node in this list. At the end of the traversal, traverse this list and print the nodes. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2011-01-03T06:21:10.550" CommentCount="3" />
  <row Id="33290" PostTypeId="2" ParentId="29918" CreationDate="2011-01-03T06:39:21.937" Score="0" ViewCount="" Body="&lt;p&gt;For actually &lt;em&gt;building&lt;/em&gt; stuff I have found it very valuable to go for JavaServer Faces in version 2.0 (which comes with Java EE 6 and can be used in most modern web containers) when using so-called facelets instead of working with JSP.   It still boils down to servlets.  Also there are many very knowledgeable persons on stackoverflow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For that &quot;Core JavaServer Faces&quot; is really nice.  See &lt;a href=&quot;http://horstmann.com/corejsf/&quot; rel=&quot;nofollow&quot;&gt;http://horstmann.com/corejsf/&lt;/a&gt; for paper and PDF details.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2011-01-03T06:39:21.937" />
  <row Id="33291" PostTypeId="2" ParentId="33279" CreationDate="2011-01-03T06:45:12.523" Score="6" ViewCount="" Body="&lt;h2&gt;PHP&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;It's ugly, and your code will probably look like a plate of spaghetti, but it's relatively easy to learn and you can get off the ground with it pretty quick. You will be able to find hosting very easily, as practically every provider out there has some kind of PHP support. If you take a Microsoft (C#/VB ASP.NET) approach you may have a harder time finding hosting and you'll have to invest some time learning the framework and idioms. PHP gives you nearly instant gratification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started with PHP and I have no complaints. My code was very ugly and got difficult to maintain quite quickly. I later saw the need for (and appreciated) the frameworks and design patterns that are available in PHP to make web development easier in the long run. You can use it to quickly template pages for a more dynamic layout, or you can build larger scale applications.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;JavaScript&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;A must for web development. I recommend jQuery or a similar framework for that as well, since a beginner can get into some pretty ugly situations with javascript where it's not entirely obvious what is wrong. With jQuery it's easy to do most of the simple things you'll probably want javascript for (showing/hiding sections of your page, fetching content without reloading the page (read: AJAX), etc).&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;MySQL&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;This database is coupled very tightly to PHP, and anywhere you find PHP support, you're likely to find MySQL as well. Using a database is pretty much a necessity when doing web development. It's very useful if you need to save data between user visits (user information, page views, etc), and for saving the website content itself (title/author/date/content information about each page) rather than just having everything in flat HTML files (who wants to edit a bunch of HTML when they just want to edit the content of a page?)&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;CSS&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;It's important that you get good at using CSS when building websites. Proper usage will cut down a &lt;em&gt;hell of a lot&lt;/em&gt; of code in HTML:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;div style=&quot;border-color: #000000; border-style: solid; background-color: #FFFFFF;&quot;&amp;gt;&#xA;    &amp;lt;ul style=&quot;asfdjoawiefja;wedfcjashdfadoisjf;asdjfasldfja&quot;&amp;gt;&#xA;        &amp;lt;li style=&quot;fawoefwa;efa'wefaswefaswefahfs&quot;&amp;gt;blah&amp;lt;/li&amp;gt;&#xA;        &amp;lt;li style=&quot;fawoefwa;efa'wefaswefaswefahfs&quot;&amp;gt;blah&amp;lt;/li&amp;gt;&#xA;        &amp;lt;li style=&quot;fawoefwa;efa'wefaswefaswefahfs&quot;&amp;gt;blah&amp;lt;/li&amp;gt;&#xA;    &amp;lt;/ul&amp;gt;&#xA;&amp;lt;/div&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;vs&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;div class=&quot;list&quot;&amp;gt;&#xA;    &amp;lt;ul&amp;gt;&#xA;        &amp;lt;li&amp;gt;blah&amp;lt;/li&amp;gt;&#xA;        &amp;lt;li&amp;gt;blah&amp;lt;/li&amp;gt;&#xA;        &amp;lt;li&amp;gt;blah&amp;lt;/li&amp;gt;&#xA;    &amp;lt;/ul&amp;gt;&#xA;&amp;lt;/div&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;yes, there are other, arguably better solutions out there then the LAMP/WAMP stack, but this is a good starting point. There are plenty of big websites that use PHP (Facebook, Flickr, etc) successfully, and seeing how you're a beginner, you're not going to have that painful longing for more advanced features which other languages have. Try it out, have fun, and good luck.&lt;/p&gt;&#xA;" OwnerUserId="54" LastActivityDate="2011-01-03T06:45:12.523" CommentCount="3" />
  <row Id="33292" PostTypeId="2" ParentId="6754" CreationDate="2011-01-03T06:45:52.990" Score="1" ViewCount="" Body="&lt;p&gt;I think being a Professor in your favorite field is a better than being a programmer. I'm a programmer myself, but sometimes I think being a Professor or a teacher is better. You need to expose your child to wide range of areas and let him choose what he thinks that suites him the most. Better don't have a TV. Cultivate the habit of reading books.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastEditorUserId="4626" LastEditorDisplayName="" LastEditDate="2011-01-03T07:04:27.087" LastActivityDate="2011-01-03T07:04:27.087" CommunityOwnedDate="2011-01-03T06:45:52.990" CommentCount="1" />
  <row Id="33293" PostTypeId="1" AcceptedAnswerId="33294" CreationDate="2011-01-03T04:08:21.190" Score="2" ViewCount="139" Body="&lt;p&gt;Hi, I started writing an application for Windows Phone marketplace, at the time only making sure that the name I gave it wasn't being used by any other app on the marketplace. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I just found out that the same name is being used by a, seemingly popular, SourceForge project. Is this a problem? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't released my app yet so I could rename it, but I really like the name and would prefer not to unless it is an issue.&lt;/p&gt;&#xA;" OwnerUserId="12259" LastActivityDate="2011-01-03T07:37:51.033" Title="Application name licensing issue" Tags="&lt;windows-phone-7&gt;&lt;licensing&gt;" AnswerCount="2" CommentCount="0" />
  <row Id="33294" PostTypeId="2" ParentId="33293" CreationDate="2011-01-03T04:11:46.017" Score="2" ViewCount="" Body="&lt;p&gt;I think that you'd probably be safest finding a new name, though if your app and the sourceforge one are sufficiently different that no connection is implied, then I think it'd be alright. Unless the Sourceforge app is trademarked or something like that. In that case you'd definitely want to rename your app.&lt;/p&gt;&#xA;" OwnerUserId="12282" LastActivityDate="2011-01-03T06:56:09.317" CommentCount="1" />
  <row Id="33295" PostTypeId="2" ParentId="33230" CreationDate="2011-01-03T07:09:17.213" Score="0" ViewCount="" Body="&lt;p&gt;At least not until computer scientists develop true artificial intelligence and the end-users can just tell it what they want. The AI system will then ask for clearer definitions to remove ambiguity, define the requirements, and program itself. ;-)&lt;/p&gt;&#xA;" OwnerUserId="12019" LastActivityDate="2011-01-03T07:09:17.213" />
  <row Id="33296" PostTypeId="2" ParentId="33293" CreationDate="2011-01-03T07:18:45.653" Score="3" ViewCount="" Body="&lt;p&gt;I'd find a new name just out of respect for the other developers. Otherwise you're robbing yourself &lt;em&gt;and&lt;/em&gt; them of the individuality and unique identity a name is supposed to provide. I wouldn't want to be on the receiving end of an apparent name theft and I wouldn't want to cheapen the identity of my product by committing such an act.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Talking to the other developers about it is always an option though. Be open and honest with them about your intention. See what will work for them: they may be willing to change, or they may not be. They may even be &lt;em&gt;planning&lt;/em&gt; to change. You may be able to help them work out a new name which works better for them. Make sure they understand and accept that you intend to use the replaced name for your own product, in the spirit of honesty, or they may feel conned when you swoop in and take their old name.&lt;/p&gt;&#xA;" OwnerUserId="5570" LastEditorUserId="5570" LastEditorDisplayName="" LastEditDate="2011-01-03T07:37:51.033" LastActivityDate="2011-01-03T07:37:51.033" />
  <row Id="33297" PostTypeId="2" ParentId="33230" CreationDate="2011-01-03T07:28:50.820" Score="0" ViewCount="" Body="&lt;p&gt;I believe that for &quot;User Programming&quot; to be feasible you need to restrict yourself to small areas with Domain Specific Languages which the user can easily understand and use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the &lt;em&gt;general&lt;/em&gt; case, we need the dust to settle over programming before we can figure out how to make enough decisions for the users in the given situations so that they can just concentrate on their tiny part of the whole system.   Very interesting work is going on with e.g. Scratch which kids can use for very advanced stuff, but which currently is not embeddable.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2011-01-03T07:28:50.820" />
  <row Id="33298" PostTypeId="2" ParentId="6754" CreationDate="2011-01-03T08:03:04.320" Score="0" ViewCount="" Body="&lt;p&gt;I suspect that in the future, knowing how to program is going to be more and more akin to knowing how to use a drill or a soldering iron.  Even if you don't become a programmer as such, programming will be useful in many professions and endeavors.  So I'd encourage learning about this as part of general education, and then they can figure out themselves what they want to do with it.&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2011-01-03T08:03:04.320" CommunityOwnedDate="2011-01-03T08:03:04.320" />
  <row Id="33299" PostTypeId="1" AcceptedAnswerId="33300" CreationDate="2011-01-03T08:15:00.567" Score="8" ViewCount="401" Body="&lt;p&gt;Today, on StackOverflow I came across the term / tag &lt;a href=&quot;http://stackoverflow.com/questions/tagged/oops&quot;&gt;OOPS&lt;/a&gt;, and it made me wonder: what's the S? Yes, I do of course know what OOP means, but is there a formal meaning for the S? Or is it used as a stupid plural of OOP (OOPs), as &lt;a href=&quot;http://www.exforsys.com/tutorials/oops.html&quot; rel=&quot;nofollow&quot;&gt;on this page&lt;/a&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, if you google it, you might want to add &lt;code&gt;-britney&lt;/code&gt; :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I have suggested &lt;code&gt;OOPS&lt;/code&gt; as &lt;a href=&quot;http://stackoverflow.com/tags/oop/synonyms&quot;&gt;a synonym for OOP&lt;/a&gt;. Please vote!&lt;/p&gt;&#xA;" OwnerUserId="2894" LastEditorUserId="2894" LastEditorDisplayName="" LastEditDate="2011-01-04T12:51:57.653" LastActivityDate="2011-01-04T12:51:57.653" Title="What's OOPS? Is that term in use?" Tags="&lt;object-oriented&gt;&lt;terminology&gt;&lt;oops&gt;" AnswerCount="1" CommentCount="9" FavoriteCount="1" />
  <row Id="33300" PostTypeId="2" ParentId="33299" CreationDate="2011-01-03T08:45:45.320" Score="7" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wiktionary.org/wiki/OOPS&quot; rel=&quot;nofollow&quot;&gt;OOPS&lt;/a&gt; is Object Oriented Programming System.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: I've heard the term &quot;OOPS-concept&quot; commonly used by Indian programmers. Not surprisingly, the stackoverflow link which the OP has included indicates mostly Indians using that tag. The origin of the term remains a mystery to me. Perhaps it could be a malapropism with the word 'oops!' as an interjection.&lt;/p&gt;&#xA;" OwnerUserId="8903" LastEditorUserId="8903" LastEditorDisplayName="" LastEditDate="2011-01-03T10:18:26.587" LastActivityDate="2011-01-03T10:18:26.587" CommentCount="5" />
  <row Id="33301" PostTypeId="2" ParentId="33230" CreationDate="2011-01-03T09:00:10.977" Score="0" ViewCount="" Body="&lt;p&gt;I take that the end-user is programming for himself. The only way you get the average person to program, imho, after have tried to spread the programming virus among my friends and relatives, is to show a iminent and substational return on the efforts. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So were can we find an area where a programmer haven't been able to make a program for their need? Mostly in the workplace, I think.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also is the question about sharing the programs or their scripts to make a user community. That way of using internet is more common with facebook and twitter and the rest of the &quot;social network&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;My humble opinion&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="1041" LastActivityDate="2011-01-03T09:00:10.977" />
  <row Id="33302" PostTypeId="2" ParentId="16395" CreationDate="2011-01-03T09:01:28.150" Score="0" ViewCount="" Body="&lt;p&gt;Look guys, if a bartender can be a &quot;Beverages Manager&quot; and the garbage man can be a &quot;Waste Disposal Officer&quot; then you should go grand like &quot;Digital Cloud Computing Applications Engineer&quot; or &quot;Computational Assembly Specialist&quot;. If you're a sysadmin then you should be a &quot;Computational Systems Infrastructure Engineer&quot;. &lt;/p&gt;&#xA;" OwnerUserId="12062" LastActivityDate="2011-01-03T09:01:28.150" />
  <row Id="33303" PostTypeId="1" AcceptedAnswerId="33312" CreationDate="2011-01-03T09:49:29.250" Score="2" ViewCount="239" Body="&lt;p&gt;I'm looking for heavy-duty C/C++ IDE for Mac that would satisfy the following criteria:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Work with big projects (~5000 files, some of them &gt;100K big) efficiently.&lt;/li&gt;&#xA;&lt;li&gt;Have good navigation both file-based and symbol-based - i.e. &quot;go to file&quot;, &quot;go to function&quot; etc. with autocompletion support.&lt;/li&gt;&#xA;&lt;li&gt;Support for &quot;go to declaration/definition&quot; for symbols - functions, structures, etc.&lt;/li&gt;&#xA;&lt;li&gt;Auto-adding new files in folders already in the project.&lt;/li&gt;&#xA;&lt;li&gt;Support for code completion for values, function names, etc.&lt;/li&gt;&#xA;&lt;li&gt;At least rudimentary CPP macro understanding - i.e. &lt;code&gt;#define foo bar&lt;/code&gt; then &lt;code&gt;foo()&lt;/code&gt; should take me either to &lt;code&gt;#define&lt;/code&gt; or to actual &lt;code&gt;bar&lt;/code&gt;. I understand full CPP parsing may be hard, but I hope for at least the obvious cases.&lt;/li&gt;&#xA;&lt;li&gt;Support for displaying parameter names/types by function name, preferably - integrated with the previous item, for functions defined in the project. Support for libc would be nice too :)&lt;/li&gt;&#xA;&lt;li&gt;(optional) Cross-project search support (I can manage with grep -r if everything else works)&lt;/li&gt;&#xA;&lt;li&gt;(optional) SVN support, at least to some extent (update, commit, mark updated)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Is there such editor around? Free would be nice, but I'm ready to part with some money if it's good enough. I'm using &lt;code&gt;TextMate&lt;/code&gt; now but I'm not satisfied with it. Tried &lt;code&gt;Xcode&lt;/code&gt; but it seems to not be able to handle a large project - it just crashed...  &lt;/p&gt;&#xA;" OwnerUserId="10080" LastActivityDate="2011-01-03T10:55:26.693" Title="C IDE for Mac needed" Tags="&lt;productivity&gt;&lt;ide&gt;&lt;c&gt;&lt;mac&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="33305" PostTypeId="2" ParentId="33279" CreationDate="2011-01-03T09:58:40.010" Score="0" ViewCount="" Body="&lt;p&gt;Your question is not realy obvious in your main goal. Form your qeusteion I could answer to three different goals, your goals could be:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;just build a dynamic website &lt;/li&gt;&#xA;&lt;li&gt;learning how to build a good website and use that as a professional developer&lt;/li&gt;&#xA;&lt;li&gt;learning how to build a website fast for others.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For just building a dynamic webiste fast I recommend the &lt;a href=&quot;http://www.microsoft.com/express/Web/&quot; rel=&quot;nofollow&quot;&gt;microsoft express web developer&lt;/a&gt; Download install, try &lt;a href=&quot;http://www.microsoft.com/web/gallery/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Web apps&lt;/a&gt; and follow walthroughs like &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/gg416514%28v=VS.98%29.aspx&quot; rel=&quot;nofollow&quot;&gt;mvc3&lt;/a&gt; and &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/cc488469.aspx&quot; rel=&quot;nofollow&quot;&gt;scaffolding&lt;/a&gt; It is the fastest way to get started and have something kind of working.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For learning how to build a good website and use that as a professional developer you could start as suggested in &lt;a href=&quot;http://programmers.stackexchange.com/questions/33279/building-web-site/33291#33291&quot;&gt;this answer&lt;/a&gt; to your question. But you could also try to figure out what you like (just try different things like again microsoft express web developer]&lt;a href=&quot;http://www.microsoft.com/express/Web/&quot; rel=&quot;nofollow&quot;&gt;1&lt;/a&gt; or Ruby on rails) and try to figure out what companies near you ask for. Going this way the technolgy IMHO is realy the least important choice. Learning stuff like problem solving, algorithms, data structures, OOAD, GRASP, SOLID, Unit Testing are far more important. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For rapid website building for others I would suggest you look at &lt;a href=&quot;http://drupal.org/&quot; rel=&quot;nofollow&quot;&gt;Drupal&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2011-01-03T09:58:40.010" />
  <row Id="33306" PostTypeId="2" ParentId="33230" CreationDate="2011-01-03T10:05:36.247" Score="3" ViewCount="" Body="&lt;p&gt;I heard SQL was actually marketed as an end-user language (original name was &lt;code&gt;SEQUEL&lt;/code&gt; - &lt;em&gt;Structured English&lt;/em&gt; Query Language - i.e. you just write in English and database returns results. Of course, that's not exactly what &lt;em&gt;end-user&lt;/em&gt; might actually enjoy doing - when was the last time you have seen any end users writing SQL? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, the complexity involved in many programming tasks and the level of detail required to efficiently resolve them make any &quot;end-user&quot; programming as viable as a regular person assembling his own car from a set of tubes, nuts and bolts bought in a local Auto Depot store.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Everybody writing apps&quot; is a myth for two reasons. Complexity is the first one, the second one is utility. It is much more efficient to buy the time of the specialist to do the task then to learn it yourself - for almost any task that has some inherent complexity and is outside of your current area of expertise. That's why most people don't build their own houses, don't sew their shirts, don't grow their food, don't assemble their cars, and that's why they won't write their own software. They'd hire a professional to do it. Of course, there will be exceptions - which will be as trend-setting as somebody growing a tomato plant on his backyard is for global agriculture. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, that does not preclude things being made that make professional's work easier - there are excellent professional tools that raise productivity and allow people to do more with less - but there's a difference between the professional tools and &quot;end-user programming&quot;. There will also be tools that would enable more people to do simple things, and more things would fall into &quot;simple&quot; category - but there sill will be plenty of complex things behind them.  &lt;/p&gt;&#xA;" OwnerUserId="10080" LastEditorUserId="10080" LastEditorDisplayName="" LastEditDate="2011-01-17T19:11:14.120" LastActivityDate="2011-01-17T19:11:14.120" CommentCount="1" />
  <row Id="33308" PostTypeId="1" CreationDate="2011-01-03T10:12:45.013" Score="5" ViewCount="224" Body="&lt;p&gt;Is there any difference between:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;version control&lt;/code&gt; and &lt;code&gt;revision control&lt;/code&gt;. I am particulary interested in knowing this specific to &lt;code&gt;git&lt;/code&gt; and &lt;code&gt;SVN&lt;/code&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or is there no difference? I know it doesn't matter perhaps, but a small difference in terminology can make a big difference! &lt;/p&gt;&#xA;" OwnerUserId="12263" LastActivityDate="2011-01-03T15:37:57.300" Title="Any difference between version control and/ or revision control?" Tags="&lt;terminology&gt;" AnswerCount="3" />
  <row Id="33311" PostTypeId="2" ParentId="33308" CreationDate="2011-01-03T10:28:54.740" Score="5" ViewCount="" Body="&lt;p&gt;Sorry have to take the easy road. Look at &lt;a href=&quot;http://stackoverflow.com/questions/1056912/source-control-vs-revision-control&quot;&gt;this SO question&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2011-01-03T10:28:54.740" CommentCount="2" />
  <row Id="33312" PostTypeId="2" ParentId="33303" CreationDate="2011-01-03T10:32:18.163" Score="5" ViewCount="" Body="&lt;p&gt;Have you tried &lt;a href=&quot;http://www.eclipse.org/downloads/&quot; rel=&quot;nofollow&quot;&gt;Eclipse&lt;/a&gt; with it's &lt;a href=&quot;http://www.eclipse.org/cdt/&quot; rel=&quot;nofollow&quot;&gt;CDT plugin&lt;/a&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You only need to learn it once, and the IDE is the same for the other supported OS's: Linux, Windows etc..&lt;/p&gt;&#xA;" OwnerUserId="4522" LastActivityDate="2011-01-03T10:32:18.163" CommentCount="3" />
  <row Id="33313" PostTypeId="2" ParentId="33308" CreationDate="2011-01-03T10:45:05.240" Score="-1" ViewCount="" Body="&lt;p&gt;Check the answer posted by &lt;strong&gt;KeesDijk&lt;/strong&gt; also &lt;a href=&quot;http://thadeusb.com/weblog/2009/3/15/svn_vs_hg_vs_git_vs_bzr&quot; rel=&quot;nofollow&quot;&gt;Version Control Systems Compared - Subversion vs Mercurial vs Git vs Bazaar&lt;/a&gt; and &lt;a href=&quot;https://git.wiki.kernel.org/index.php/GitSvnComparison&quot; rel=&quot;nofollow&quot;&gt;Git vs SVN&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Main highlights (more in the last link):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Git&lt;/strong&gt; : In a distributed VCS like Git every user has a complete copy of the repository data stored locally, thereby making access to file history extremely fast, as well as allowing full functionality when disconnected from the network. It also means every user has a complete backup of the repository. Have 20 users? You probably have more than 20 complete backups of the repository as some users tend to keep more than one repository for the same project. If any repository is lost due to system failure only the changes which were unique to that repository are lost. If users frequently push and fetch changes with each other this tends to be a small amount of loss, if any.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;SVN&lt;/strong&gt; : In a centralized VCS like Subversion only the central repository has the complete history. This means that users must communicate over the network with the central repository to obtain history about a file. Backups must be maintained independently of the VCS. If the central repository is lost due to system failure it must be restored from backup and changes since that last backup are likely to be lost. Depending on the backup policies in place this could be several man-weeks worth of work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt; : &lt;a href=&quot;http://en.wikipedia.org/wiki/Revision_control&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Revision_control&lt;/a&gt; it's the same.&lt;/p&gt;&#xA;" OwnerUserId="8310" LastEditorUserId="8310" LastEditorDisplayName="" LastEditDate="2011-01-03T12:55:14.990" LastActivityDate="2011-01-03T12:55:14.990" CommentCount="2" />
  <row Id="33314" PostTypeId="2" ParentId="33303" CreationDate="2011-01-03T10:48:05.363" Score="5" ViewCount="" Body="&lt;p&gt;How about &lt;a href=&quot;http://netbeans.org/features/cpp/&quot; rel=&quot;nofollow&quot;&gt;Netbeans C++&lt;/a&gt; (it's java) and &lt;a href=&quot;http://www.kdevelop.org/&quot; rel=&quot;nofollow&quot;&gt;KDevelop&lt;/a&gt;, kdevelop isn't just for Qt4/KDE.&lt;/p&gt;&#xA;" OwnerUserId="8310" LastActivityDate="2011-01-03T10:48:05.363" CommentCount="4" />
  <row Id="33315" PostTypeId="2" ParentId="33303" CreationDate="2011-01-03T10:55:26.693" Score="2" ViewCount="" Body="&lt;p&gt;I would try code::blocks it is what I use. I have to disable code completion, as I find it a large source of slow down. But i find that with all IDE's&lt;/p&gt;&#xA;" OwnerUserId="2395" LastActivityDate="2011-01-03T10:55:26.693" />
  <row Id="33317" PostTypeId="1" AcceptedAnswerId="33318" CreationDate="2011-01-03T11:20:02.123" Score="9" ViewCount="231" Body="&lt;p&gt;For several years I have been thinking about working abroad, and I want to make this step (to work in a/several foreign countries, for several years). I am a Software Developer with a Bachelor of Engineering in Computer Science, with +4 years of experience in Delphi (and small working experience in other programming languages).&#xA;&lt;br&gt;&lt;br&gt; I've applied to aprox. 100 positions over the world, and I've been contacted by 4-5 hiring managers. Our technical discussions went well, but then we reached a working visa 'problem'. I don't have legal/health problems, but I don't poses a working permit in other countries except Romania. I've been reading several forums concerning working visas (I've taken out working visa for US or other 'hard to get visa' countries), and there are several steps which companies must do (so I can take out the bureaucracy problem) to make the papers. Concerning the cost of a visa, this goes up to one medium salary from that country (in most of the cases). I've been working for the last years with different clients, from a wide variety of countries, and I don't believe I will have problems with integration in a foreign country&lt;br&gt;&lt;br&gt;&#xA;The problem is that the market doesn't need Delphi Developers (there is a small amount of open positions on the recruiting sites), and I should start learning other programming language (all the time is better to know other programming languages - but to master it, requires some time) with a higher market 'rank' (Java/C#/etc), OR the problem is only concerning the working visa, and maybe the reticence of the employer to foreign possible candidates? I'm asking this especially for those users who made this step in their life or they want to make it in the future. &lt;/p&gt;&#xA;" OwnerUserId="8755" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2011-01-03T12:58:58.400" LastActivityDate="2011-01-03T16:04:33.463" Title="Working Abroad Advice Needed" Tags="&lt;career-advice&gt;" AnswerCount="2" CommentCount="5" FavoriteCount="4" />
  <row Id="33318" PostTypeId="2" ParentId="33317" CreationDate="2011-01-03T11:51:30.933" Score="6" ViewCount="" Body="&lt;p&gt;How hard it is to get a work permit/visa and how to go about it varies wildly between different countries. It is however in most countries a long and complex process, unless you come from a country which has mutual agreements on dropping the requirements (and being Romanian, you don't).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your best option is therefore to find a job at a really large companies who regularly goes through this process, and has a human resources department that knows exactly what to do, how to do it and how to make it happen quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And you will find it hard to find that sort of job knowing only Delphi, which is a nice environment, but rather niche. Although I am a Python fanatic and I would like to recommend Python to you, I think your best bet is learning Java, and in particular J2EE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's still going to be hard to get a job unless you are working with J2EE in Romania. You might want to get involved in open source projects to make contacts, and build a reputation so that you have code to show the employers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(I've been working in several countries, but never one it was hard to get a permit/visa for. I got these jobs through contacts I had either via my job, or the open source projects I was involved with. I've also looked into how to get a permit for me or others in USA, France and Poland.)&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2011-01-03T11:51:30.933" CommentCount="5" />
  <row Id="33319" PostTypeId="1" AcceptedAnswerId="33330" CreationDate="2011-01-03T12:14:14.247" Score="6" ViewCount="292" Body="&lt;p&gt;I need to work in a team to develop a mid scale Desktop application developed using C# .NET. Prior to this, I have not applied Unit Testing and Test Driven Development. I am aware that there exists many tools and framework for Unit Testing C# applications. As of now, I am aware of Nunit and the Unit Testing facility integrated with Visual Studio.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to know, how do the two compare?&lt;/p&gt;&#xA;" OwnerUserId="1560" LastActivityDate="2011-01-03T17:34:01.317" Title="How does NUnit for C# compare with Unit Test facility integrated with Visual Studio" Tags="&lt;unit-testing&gt;&lt;comparison&gt;&lt;tdd&gt;&lt;visual-studio&gt;&lt;nunit&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="33320" PostTypeId="1" AcceptedAnswerId="33337" CreationDate="2011-01-03T12:25:59.533" Score="5" ViewCount="654" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/26454/does-it-matter-that-you-started-developing-at-26&quot;&gt;Does it matter that you started developing at 26?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Assuming one graduated college at 30 years old and has 5 years of experience (no real job experience, just contributing to open source and doing personal projects) with various tools and programming languages, how would he or she be looked upon by hiring managers ? Will it be harder to find a job considering that (I got this information looking at various websites, user profiles on SO and here, etc.) the average person gets hired in this field at around 20 years old. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know that it's &lt;em&gt;never too late to do what you're passionate about and the like&lt;/em&gt; but sometimes it is too late to start a career. Is this the case? Managers are always looking for fresh people and I often read job descriptions specifically asking for young people.&lt;br&gt;&#xA;I don't need answers of encouragement, I know the community here is great and I wouldn't get offended by even the most cold answers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please don't close this as being too localized, I'm not referring to any specific country or region, talk about the region you're in. I would also appreciate if you justified your answer. &lt;/p&gt;&#xA;" OwnerUserId="12270" LastActivityDate="2011-01-03T14:32:18.337" ClosedDate="2011-01-03T14:34:38.443" Title="Is it too late to start your career as a programmer at the age of 30 ?" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="8" CommentCount="3" FavoriteCount="2" />
  <row Id="33321" PostTypeId="2" ParentId="33320" CreationDate="2011-01-03T12:36:23.577" Score="0" ViewCount="" Body="&lt;p&gt;I don't think it would be any problem at all. &#xA;In my opinion, companies usually prefer younger people because they're likely to be more committed to a company because they have less family obligations, less likely to be burnt out, and just excited about starting a career. If you show the same signs, your age won't make a difference.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2011-01-03T12:36:23.577" />
  <row Id="33322" PostTypeId="2" ParentId="33320" CreationDate="2011-01-03T12:44:18.133" Score="3" ViewCount="" Body="&lt;p&gt;No, in many countries it'd be illegal to prejudice based on age. Be humble and enthusiastic though, the amount of experience you have will be taken into account and it'd likely be an entry level role. Using your own free time to do programming and contributing to open source is one of the best indicators in recruitment that the candidate will be good.&lt;/p&gt;&#xA;" OwnerUserId="11485" LastActivityDate="2011-01-03T12:44:18.133" />
  <row Id="33323" PostTypeId="1" CreationDate="2011-01-03T12:38:57.370" Score="0" ViewCount="77" Body="&lt;p&gt;i am interested in robotics,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;my fellows say MBA is best, or masters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;but there is no mba in robotics or masters so what should i do&lt;/p&gt;&#xA;&#xA;&lt;p&gt;note:-&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i live in a third world country no scope for robotics, and would like suggestions regrding universities of usa, uk, australia, germany.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;which course should i study? for post graduate?&lt;/p&gt;&#xA;" LastActivityDate="2011-01-03T12:57:44.940" ClosedDate="2011-01-03T14:03:12.733" Title="suggest names of universities and courses of studies to pursue after a bachelors degree in computer systems" Tags="&lt;career&gt;" FavoriteCount="0" />
  <row Id="33324" PostTypeId="2" ParentId="33320" CreationDate="2011-01-03T13:02:04.977" Score="0" ViewCount="" Body="&lt;p&gt;You only said that its never to late then why are you thinking in a negative way?&#xA;Yes, Big Fishes will look for fresh graduates passed from high profile colleges, but medium and small scale companies don't even bother about you if you showed them your potential.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why don't you clear some certifications. Being a Certified developer does mean much to companies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't think about it(Age factor) and start working, good luck.&lt;/p&gt;&#xA;" OwnerUserId="11558" LastActivityDate="2011-01-03T13:02:04.977" />
  <row Id="33325" PostTypeId="2" ParentId="33320" CreationDate="2011-01-03T13:05:41.330" Score="0" ViewCount="" Body="&lt;p&gt;You even have some advantage over others with more experience if they have not laid down good programming practices already.  Thirty is definitely not too late to be a developer, not really too late to start anything.&lt;/p&gt;&#xA;" OwnerUserId="12275" LastActivityDate="2011-01-03T13:05:41.330" />
  <row Id="33326" PostTypeId="2" ParentId="29724" CreationDate="2011-01-03T13:13:13.693" Score="1" ViewCount="" Body="&lt;p&gt;Checkout &lt;a href=&quot;http://framework.zend.com/&quot; rel=&quot;nofollow&quot;&gt;Zend&lt;/a&gt;, Cake PHP, Doctrine, etc&lt;/p&gt;&#xA;" OwnerUserId="12275" LastActivityDate="2011-01-03T13:13:13.693" CommentCount="1" />
  <row Id="33327" PostTypeId="2" ParentId="33320" CreationDate="2011-01-03T13:13:36.313" Score="1" ViewCount="" Body="&lt;p&gt;Just the other day I saw a job where one of the criteria was to be less than 30 years old. Apart from this being blatantly illegal, I would never, ever apply for such a job (even though I have 8 years until 30). What I want to say with this is that while there are many places where age-discrimination is happening, you probably would not want to work at such places anyway.&lt;/p&gt;&#xA;" OwnerUserId="3530" LastActivityDate="2011-01-03T13:13:36.313" CommentCount="1" />
  <row Id="33328" PostTypeId="1" CreationDate="2011-01-03T13:18:53.807" Score="0" ViewCount="149" Body="&lt;p&gt;Hi all,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want know what are utilities you have created for your personal computer or laptop for day to day purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like few may have created task manager or windows service for scheduler, or tool to get latest feeds from SO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Need your experiences, which made your day to day task easier. And I don't want to know any third party(except Commercial) tools. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will not commercialize this ;-), but I want to know how I can utilize my skills to create application for personal use.&lt;/p&gt;&#xA;" OwnerUserId="9158" LastEditorUserId="9158" LastEditorDisplayName="" LastEditDate="2011-01-03T13:23:53.910" LastActivityDate="2011-01-03T15:43:03.487" ClosedDate="2011-01-03T23:15:43.613" Title="C# .Net Utility suggestion for personal computer laptop" Tags="&lt;c#&gt;&lt;.net&gt;&lt;utilities&gt;" AnswerCount="1" CommentCount="5" FavoriteCount="0" />
  <row Id="33330" PostTypeId="2" ParentId="33319" CreationDate="2011-01-03T13:21:31.677" Score="10" ViewCount="" Body="&lt;p&gt;There is some overlap between the two for sure.  NUnit is the predecessor, and as a result more mature.  C# Unit Test framework is younger, but integrated with Visual Studio.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've come from the Java world where JUnit is king (there are others, but none as popular), and NUnit 2.5.x is a really good match to the way JUnit 4 works.  In fact, it works much better than the Java counterpart.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as test definition is concerned, I favor NUnit.  Sure MS Test has similar (but different) attributes that you apply to your classes, but I believe it is lacking some features that can save you some work on some types of testing.  You may want to check out a &lt;a href=&quot;http://stackoverflow.com/questions/261139/nunit-vs-mbunit-vs-mstest-vs-xunit-net&quot;&gt;similar discussion on StackOverflow&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like the new assertion model built in to NUnit (it is using the &lt;a href=&quot;http://code.google.com/p/hamcrest/&quot; rel=&quot;nofollow&quot;&gt;Hamcrest&lt;/a&gt; style asserts) because they are both easy to read and easily extensible.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;NUnit will have better 3rd party support, MS Test will have better integration (out of the box).&lt;/li&gt;&#xA;&lt;li&gt;NUnit will have better flexibility and extensibility, MS Test will suffer in this area.&lt;/li&gt;&#xA;&lt;li&gt;Both run unit tests and check your results, both will work for TDD.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2011-01-03T13:21:31.677" />
  <row Id="33331" PostTypeId="2" ParentId="32953" CreationDate="2011-01-03T13:35:56.793" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Content&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend to use multiple validation patterns, each with a short phrase, typically the sentence will describe the violation they made.  &quot;XXX cannot be empty.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Grammar&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't personalize it like saying &quot;you may not have an empty XXX&quot;, if you want to make it lighter you could treat the field as though it were it's own entity: &quot;I cannot be empty!&quot; or &quot;I must be at least 30&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Delivery&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer a contrasting color (red against white) error string right next to the field, your flow will have to be malleable for this to work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Logging&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't in my projects but you may need to for domain specific (or legal/policy) reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Internationalization&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this is really that important you could break down error strings into parts which could be exchanged:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;{field} {verb} be empty&quot;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;XXX cannot be empty&lt;/li&gt;&#xA;&lt;li&gt;XXX must not be empty&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="12275" LastActivityDate="2011-01-03T13:35:56.793" CommunityOwnedDate="2011-01-03T13:35:56.793" CommentCount="1" />
  <row Id="33332" PostTypeId="2" ParentId="33320" CreationDate="2011-01-03T13:52:49.333" Score="0" ViewCount="" Body="&lt;p&gt;First off, most Western countries have some form of employment laws that make discrimination against someone on the basis of their age illegal outside select fields (e.g. in the United States commercial airline pilots have a mandatory retirement age). So the age should be a non-issue in and of itself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The bigger issue that you might face would be something that you might find personally off-putting: depending upon who you apply do, you may only get offers for entry level developer positions. In some cases this can be an issue for someone as it might mean that your boss could be younger than you are. Also, it does mean that the pay would not be quite as good as someone who has been in industry longer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond these two issues though, I can't seem any major concerns in starting a career at 30. Remember that there are other fields (i.e. medicine) where starting a career at 30 could be considered the norm.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2011-01-03T13:52:49.333" />
  <row Id="33335" PostTypeId="2" ParentId="33320" CreationDate="2011-01-03T14:22:32.183" Score="5" ViewCount="" Body="&lt;p&gt;I started my professional programming career at age 37, with no CS degree.  All you need is someone to give you the chance.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2011-01-03T14:22:32.183" CommentCount="2" />
  <row Id="33336" PostTypeId="2" ParentId="33228" CreationDate="2011-01-03T14:27:23.643" Score="0" ViewCount="" Body="&lt;p&gt;Yes, I feel the same way about ASP.NET AJAX.  My experience with ASP.NET AJAX was frustrating at best -- the components were bloated and sometimes a challenge to debug. I have almost completely made the move over to jQuery and am finding it much more to my liking.  &lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2011-01-03T14:27:23.643" />
  <row Id="33337" PostTypeId="2" ParentId="33320" CreationDate="2011-01-03T14:32:18.337" Score="3" ViewCount="" Body="&lt;p&gt;I started my programming career about a year and a half ago at the age of 29, and it was initially challenging to land a position. I knew I could do the work if given an opportunity, but finding someone who would take a chance on someone without much experience took some time. Now I have a solid position on a web development team for a large company. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It sounds like you have a lot more experience than I did, so what you're looking to do is very possible. You need to continue to work really hard--I've basically viewed my non-work time as &quot;night school.&quot; Find some good books, blogs and videos. The way I see it, I have about 10 years' or more worth of catching up to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You also need to work on your networking. Your first job will likely come from someone you know. Don't hesitate to take an entry level position. Contracting is another good option, although for me that meant no benefits for a while. I contracted for more than two years before I landed my current job. Build some small projects as a freelancer so you have a portfolio to show. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And hey, since when is 30 old? :)&lt;/p&gt;&#xA;" OwnerUserId="10321" LastActivityDate="2011-01-03T14:32:18.337" />
  <row Id="33338" PostTypeId="2" ParentId="33319" CreationDate="2011-01-03T14:37:49.130" Score="3" ViewCount="" Body="&lt;p&gt;The only real difference I noticed when I had to create a build script to run on a dedicated MSBUILD server form TFS, setting nUnit up and getting nUnit test results was a real pain, setting it up and getting the results for MSTest was a breeze.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also there was a problem with Resharper where MSTest test's couldn't be run from the test runner. In newer versions this is fixed, so if you have an old version of Resharper it still might be a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.osherove.com/blog/2010/3/5/nunit-vs-mstest-nunit-wins-for-unit-testing.html&quot; rel=&quot;nofollow&quot;&gt;This post&lt;/a&gt; from Roy Oshereve is still a nice overview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;p.s.: Deleted my other answer, wasn't helpful at all, my apologies for that one.&lt;/p&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2011-01-03T14:37:49.130" />
  <row Id="33339" PostTypeId="2" ParentId="1060" CreationDate="2011-01-03T14:39:06.390" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://wiki.php.net/rfc/horizontalreuse&quot; rel=&quot;nofollow&quot;&gt;Traits and Grafts&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Trait_(computer_science&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Trait_(computer_science&lt;/a&gt;)&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2011-01-03T14:39:06.390" />
  <row Id="33349" PostTypeId="1" AcceptedAnswerId="33351" CreationDate="2011-01-03T14:26:59.957" Score="21" ViewCount="546" Body="&lt;p&gt;Is there any scientific evidence that the human brain can read and understand fully written variable names better/faster than abbreviated ones?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;PersistenceManager persistenceManager;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;in contrast to&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;PersistenceManager pm;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I have the impression that I get a better grasp of code that does not use abbreviations, even if the abbreviations would have been commonly used throughout the codebase. Can this individual feeling be backed up by any studies?&lt;/p&gt;&#xA;" OwnerUserId="12291" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-03-26T00:17:17.073" LastActivityDate="2011-03-26T14:14:24.513" Title="Scientific evidence that supports using long variable names instead of abbreviations?" Tags="&lt;language-agnostic&gt;&lt;coding-style&gt;&lt;naming-conventions&gt;&lt;variable-naming&gt;" AnswerCount="9" CommentCount="6" FavoriteCount="1" />
  <row Id="33350" PostTypeId="2" ParentId="33349" CreationDate="2011-01-03T14:45:02.420" Score="4" ViewCount="" Body="&lt;p&gt;I haven't ever seen any scientific evidence on this but, abbreviations can be very ambiguous and can be interpreted differently by different users in different contexts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even your simple example above gives a clear indication of this.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;PersistenceManager pm;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Whilst pm may seem like an obvious choice to you, I might associate  this with pm as in relation to a time (a more common usage of pm).&lt;/p&gt;&#xA;" LastActivityDate="2011-01-03T15:35:38.780" CommentCount="2" />
  <row Id="33351" PostTypeId="2" ParentId="33349" CreationDate="2011-01-03T14:48:45.897" Score="38" ViewCount="" Body="&lt;p&gt;In &quot;Code Complete,&quot; Steve McConnell cites one study from 1990:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Gorla, Benander and Benander found&#xA;  that the effort required to debug a&#xA;  program was minimized when variables&#xA;  had names that averaged 10 to 16&#xA;  characters ... Programs with names&#xA;  averaging 8 to 20 characters were&#xA;  almost as easy to debug. The guideline&#xA;  doesn't mean that you should try to&#xA;  make all of your variable names 9 to&#xA;  15 or 10 to 16 characters long. It&#xA;  does mean that if you look over your&#xA;  code and see many names that are&#xA;  shorter, you should check to be sure&#xA;  that the names are as clear as they&#xA;  need to be.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Gorla, N., A.C. Benander, and B.A. Benander. 1990. &quot;Debugging effort estimation using software metrics.&quot; IEEE Transactions on Software Engineering SE-16, no. 2 (Februrary): 223-31.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="1755" LastActivityDate="2011-01-03T15:35:38.780" CommentCount="2" />
  <row Id="33352" PostTypeId="2" ParentId="33308" CreationDate="2011-01-03T15:37:57.300" Score="0" ViewCount="" Body="&lt;p&gt;AFAIK, no. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are most often regarded as Version Control Systems or VCSs.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2011-01-03T15:37:57.300" />
  <row Id="33353" PostTypeId="2" ParentId="33235" CreationDate="2011-01-03T15:38:57.780" Score="0" ViewCount="" Body="&lt;p&gt;Use &lt;a href=&quot;http://en.wikipedia.org/wiki/Test-driven_development&quot; rel=&quot;nofollow&quot;&gt;TDD&lt;/a&gt;, so your test code always has a place where its even maintained.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2011-01-03T15:38:57.780" />
  <row Id="33354" PostTypeId="2" ParentId="32877" CreationDate="2011-01-03T15:40:50.223" Score="1" ViewCount="" Body="&lt;p&gt;I see two problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first is that it is bloody difficult to keep code and documentation in sync. If they are separate, they will diverge and the documentation will become useless.&#xA;Programmers have tried to use tools to do the work of keeping them in sync (such as CASE-tools), but these tools got between the programmers and their code, which did more damage than good.&#xA;One of the key insights of domain driven design (Evans, 2004) is that good design is really hard, so in order to get something out of it, you must:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;choose the smallest possible area of your program where good design will yield great benefits, the so called core domain&lt;/li&gt;&#xA;&lt;li&gt;work really hard to get a good design in form of a ubiquitous language that all team members use all the time&lt;/li&gt;&#xA;&lt;li&gt;as much as possible, make the design part of the code&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;The other big problem with the way we do design, is that our design-methods are not mathematical enough. Leaky abstractions do not lend themselves to derive solid conclusions from them, and the world of strictly applied logic and clear truth is called math, which programmers mostly shy away from.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The few mathematical tools we have, such as formal methods, are very unwieldy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Map-reduce is a nice example of math in programming. The core idea is this: When you have an associative, binary operation you can distribute its execution very easily.&#xA;A binary operation is a function with two parameters, associativity implies that (a+b)+c = a+(b+c)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;a1+a2+...+a99+b1+b2+...+b99+c1+c2+...+c99 &#xA;is&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(a1+a2+...+a99) + (b1+b2+...+b99) + (c1+c2+...+c99)&#xA;where the As, Bs and Cs can trivially be added on different locations, their results collected and summed up in no time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Map-reduce is a ridiculously simple idea. It can be described on one piece of paper. If you can assume that the reader has a firm grasp on the concept of associativity, if fits on a quite small piece of paper.&#xA;Now try to explain map-reduce to somebody without using the term associativity or referring to it indirectly. I dare you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software design without mathematical abstractions is like trying to do architecture without ever bothering to learn geometry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe Haskell can fix this over time. The use of concepts from category theory to describe programs looks promising to me. Category theory is so abstract that even mathematicians had little use for it, but apparently categories, which are abstract beyond recognition, seem to be abstract enough to describe the structure of software. We'll find out. Slowly.&lt;/p&gt;&#xA;" OwnerUserId="12225" LastActivityDate="2011-01-03T15:40:50.223" />
  <row Id="33355" PostTypeId="2" ParentId="33349" CreationDate="2011-01-03T15:42:34.610" Score="2" ViewCount="" Body="&lt;p&gt;Not scientific but... perhaps an &quot;expert opinion&quot;.:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hate variable abbreviations, and so should every one of you (even the lazy ones).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is horrible when you are trying to read a block of code and you have 10 of these in a tangled mess. Conversely, when you use self-explanatory and meaningful variable names it is like the code talks to you, and you can even save the bloody comments (for the lazy ones).&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2011-01-03T15:42:34.610" CommentCount="3" />
  <row Id="33357" PostTypeId="2" ParentId="33328" CreationDate="2011-01-03T15:43:03.487" Score="0" ViewCount="" Body="&lt;p&gt;I used to develop some Utility software a couple years back, like code snippet manager, task list and some others. This had 2 purposes:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Write down some code, to experiment and to learn new techniques and upgrade my skills.&lt;/li&gt;&#xA;&lt;li&gt;Try to reduce all thoses repetitives tasks.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Nowadays, I tend to use more the out of the box utility and add-on. Like Power Tools for Visual Studio IDE add-on. &lt;/p&gt;&#xA;" OwnerUserId="28" LastActivityDate="2011-01-03T15:43:03.487" />
  <row Id="33360" PostTypeId="2" ParentId="27656" CreationDate="2011-01-03T15:53:29.030" Score="0" ViewCount="" Body="&lt;p&gt;First of all, you have to confident in your skills, the process varies person to person at some level.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Having a good resume is important, get in touch with someone you know in the field and get a nice resume that has technical summary and has the key-words (recruiters are big on key-words).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Job boards/Craigslist search, apply only to the jobs you feel comfortable, this is very person specific, but you should have standards and must be able to answer &quot;why you deserve the job and how do you fit in?&quot;, to yourself more than to the interviewer.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Go extra mile, no matter what the economy is there is always a shortage of motivated developers and that is the reason why recruiters target &quot;User group meetings&quot;. Go to User Group meeting in the City and try to Network there.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do not isolate yourself, try to find a person in the field of work you are looking for job and seek out help. If that is not the case, find people who are in the same boat. There are enough jobs so there is nothing wrong hanging around freshers looking for jobs, remember this is not a &quot;Rat Race&quot;, you are in this for long haul. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10176" LastActivityDate="2011-01-03T15:53:29.030" />
  <row Id="33363" PostTypeId="2" ParentId="33317" CreationDate="2011-01-03T16:04:33.463" Score="1" ViewCount="" Body="&lt;p&gt;Excellent question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lets look at the facts now. EU and US are both facing pretty difficult economic conditions and the unemployment numbers are very high. Given the circumstances, it is rather obvious that they would like to plug in the migrant population. UK for e.g. stopped its Tier-1 visa on Dec 23rd, 2010 'cause it needs to drastically cut down on software developers in the island nation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are really serious at getting international exposure, you might want to opt for some higher academics in the aforesaid countries and then check out the job market. This does increase your prospects but again no guarantee there. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, just being good in C# or Java is not good anymore, there are just too many developers in these technologies within the western world itself for the employers to look outside. You will have to do more than just your routine understanding of design patterns and object inheritance here.&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2011-01-03T16:04:33.463" CommentCount="2" />
  <row Id="33364" PostTypeId="2" ParentId="32964" CreationDate="2011-01-03T16:05:25.217" Score="7" ViewCount="" Body="&lt;p&gt;A syllogism:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Generality is expensive.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You are spending other people's money.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Therefore the expense of generality must be justified to the stakeholders.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Ask yourself if you are &lt;em&gt;really&lt;/em&gt; solving the more general problem in order to save the stakeholders money later on, or if you just find it an intellectual challenge to make an unnecessarily general solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If generality is determined to be desirable then &lt;strong&gt;it should be designed and tested like any other feature&lt;/strong&gt;. If you can't write tests that demonstrate how the generality you've implemented solves a problem required by the specification then don't bother doing it! &lt;strong&gt;A feature that meets no design criteria and cannot be tested is a feature that no one can rely upon.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And finally, there is no such thing as &quot;as general as possible&quot;. Suppose you write software in C#, just for the sake of argument. Are you going to make every class implement an interface? Every class an abstract base class with every method an abstract method? That's pretty general, but it is nowhere near &quot;as general as possible&quot;. That just allows people to change the implementation of any method through subclassing. What if they want to change the implementation of a method without subclassing? You could make every method actually a property of delegate type, with a setter so that people could change every method to something else. But what if someone wants to add more methods?  Now every object has to be expandable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this point you should abandon C# and embrace JavaScript. But you still haven't gotten anywhere near general enough; what if someone wants to change how member lookup works for this particular object?  Maybe you should write everything in Python instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Increasing generality often means abandoning predictability and massively increasing test costs to ensure that the implemented generality actually succeeds in meeting a real user need&lt;/em&gt;. Are those costs justified by their &lt;em&gt;benefits&lt;/em&gt; to the stakeholders who are paying for it? Perhaps they are; that's up to you to discuss with the stakeholders. My stakeholders are not at all willing for me to abandon static typing in pursuit of an entirely unnecessary and extremely expensive level of generality, but perhaps yours are.&lt;/p&gt;&#xA;" OwnerUserId="6505" LastActivityDate="2011-01-03T16:05:25.217" CommentCount="5" />
  <row Id="33365" PostTypeId="1" AcceptedAnswerId="35015" CreationDate="2011-01-03T16:08:30.303" Score="6" ViewCount="653" Body="&lt;p&gt;I know about &lt;a href=&quot;http://www.ejb3.org/&quot; rel=&quot;nofollow&quot;&gt;Omondo's plugin for live code-UML synchronization in Eclipse&lt;/a&gt;, but I was wondering if there was any other tool/IDE/IDE-extension that has some form of live graphical code representaiton (structural, flow, call-stacks, dependencies, etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm essentially looking for richer visual feedback on code while programming, not really looking for purely graphical code editors, though round-trips would be nice (edit graphically, code gets modified; edit code, representation gets modified). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't know about any graphical live documentation tool for code, maybe someone that can coexist with code, such as MySQL Workbench or Enterprise Architect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: Please, original answers, meaning other tools different than what I quoted (even if they are similar to Omondo, MySQL Workbench and Enterprise Architect).&lt;/p&gt;&#xA;" OwnerUserId="10869" LastEditorUserId="10869" LastEditorDisplayName="" LastEditDate="2011-01-12T04:28:16.630" LastActivityDate="2011-01-13T00:51:52.103" Title="On-the-fly graphical representation of code" Tags="&lt;programming&gt;&lt;ide&gt;&lt;documentation&gt;&lt;uml&gt;&lt;diagrams&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="3" />
  <row Id="33366" PostTypeId="1" CreationDate="2011-01-03T16:10:09.407" Score="2" ViewCount="94" Body="&lt;p&gt;The company I work for is offering to send me off to training classes of my own choosing (Mostly in Java/EE,Javascript, and SQL). Can anyone recommend vendors with good training classes that aren't just staring at a wall for 4 days? &lt;/p&gt;&#xA;" OwnerUserId="12290" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2011-01-03T16:41:36.367" LastActivityDate="2011-01-03T16:45:23.670" ClosedDate="2011-01-03T17:51:48.140" Title="Good vendors for training?" Tags="&lt;career&gt;&lt;training&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="1" />
  <row Id="33367" PostTypeId="2" ParentId="32490" CreationDate="2011-01-03T16:15:01.900" Score="0" ViewCount="" Body="&lt;p&gt;You don't even need a text editor. :) :) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're in windows try this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;more &amp;gt; hello.c &#xA;#include &amp;lt;stdio.h&amp;gt;&#xA;&#xA;main()&#xA;{&#xA;   printf (&quot;Hello World!\n&quot;);&#xA;}&#xA;Ctrl-C&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If you're in UNIX&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;cat &amp;gt; hello.c &amp;lt;&amp;lt;. &#xA;#include &amp;lt;stdio.h&amp;gt;&#xA;&#xA;main()&#xA;{&#xA;   printf (&quot;Hello World!\n&quot;);&#xA;}&#xA;.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And then just compile it with your favorite command line compiler. :) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously you have to write it right the first time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember that real programmers use butterflies: &lt;a href=&quot;http://xkcd.com/378/&quot; rel=&quot;nofollow&quot;&gt;http://xkcd.com/378/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="82" LastEditorUserId="12319" LastEditorDisplayName="" LastEditDate="2011-01-04T01:22:26.313" LastActivityDate="2011-01-04T01:22:26.313" CommunityOwnedDate="2011-01-03T16:15:01.900" />
  <row Id="33368" PostTypeId="2" ParentId="32763" CreationDate="2011-01-03T16:17:45.847" Score="0" ViewCount="" Body="&lt;p&gt;Chapter 11 of the book &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596514808&quot; rel=&quot;nofollow&quot;&gt;Intel Threading Building Blocks&lt;/a&gt; by James Reinders is devoted to examples of algorithms and projects that make use of &lt;a href=&quot;http://en.wikipedia.org/wiki/Parallel_computing&quot; rel=&quot;nofollow&quot;&gt;Parallel Computing&lt;/a&gt; (or Parallel Programming):&#xA;a substring finder, the Game of Life, a Sieve of Eratosthenes, Matrix Multiply, and then other more advanced topics like network packet filtering and games.&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2011-01-03T16:17:45.847" />
  <row Id="33370" PostTypeId="2" ParentId="27656" CreationDate="2011-01-03T16:19:58.153" Score="1" ViewCount="" Body="&lt;p&gt;Finding a job in a new city is very similar to finding a job in your current city, it just has some extra logistics to it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can find job postings in various places; Craigslist, Monster, even check your school and see if any companies are still looking for people. See if there is a job board for your target city. Look up companies in the city and check out their site for job postings. Google the target city name + your job title and see what comes up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest that you only apply to a handful of jobs at a time. Choose the companies you want to apply for, research them and think of why you want the job. Write your cover letter letting the employer know that you are looking to move to the city and are looking for the right job and why you think their company/position is a good match. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you start getting replies about your applications, see how willing the companies would be to do phone interviews. If the company has a multiple interview process, see if they would be willing to do it all on one day to help with your travel expenses. You'd be surprised how prospective employers are willing to go to help you out if you just ask.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you get more than one interview and you have to travel, try and make them all on the same day. Again to lower your travel expenses. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, market yourself well, and show that you want to work, and you are willing to move to work for a company. And while you're job hunting, if you have a specific location in mind, start planning your move. You could even look at apartments on the same day you go for interviews. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="2305" LastActivityDate="2011-01-03T16:19:58.153" />
  <row Id="33371" PostTypeId="2" ParentId="32490" CreationDate="2011-01-03T16:21:08.573" Score="0" ViewCount="" Body="&lt;p&gt;Programming without an IDE is a great way to learn what's happening.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We started programming in school with a simple syntax-colored text-editor. Compiling happened with the command prompt (or through a simple batch script).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Only when we understood the basics of programming we moved on to more powerful editors like Eclipse or Visual Studio.&lt;/p&gt;&#xA;" OwnerUserId="4930" LastActivityDate="2011-01-03T16:21:08.573" CommunityOwnedDate="2011-01-03T16:21:08.573" />
  <row Id="33372" PostTypeId="2" ParentId="33366" CreationDate="2011-01-03T16:40:19.313" Score="3" ViewCount="" Body="&lt;p&gt;There is one &lt;a href=&quot;http://www.learningtree.com&quot; rel=&quot;nofollow&quot;&gt;company&lt;/a&gt; (LearningTree) that I have some experience with that offers training (at their location, at your location and online) and has facilities around the world (most are in the US but they do have several Europe locations and I believe one in Japan).  While I think that the question posed is too localized (looking for US/Atlanta), my hope is that with multiple locations around the world, this answer will help broaden the scope and make it more appliciple to more programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have no connection to them and only offer my experiences.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The company that I work for uses LearningTree often for technical training and I've attended probably around 6 classes over the years.  Most of them were at their location, but one was online.  All of the classes were well organized and documented.  All of the teachers were intelligent, experts in their subjects and open to further discussions beyond the documented course material.  I found the online class particularly beneficial as no travel was needed and it was still a live class with live interaction.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2011-01-03T16:45:23.670" LastActivityDate="2011-01-03T16:45:23.670" CommentCount="0" />
  <row Id="33373" PostTypeId="2" ParentId="33365" CreationDate="2011-01-03T16:47:09.247" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.subtextual.org/subtext2.html&quot; rel=&quot;nofollow&quot;&gt;Subtext&lt;/a&gt; is a purely graphical programming language.  That is, the &quot;source code&quot; is itself a diagram -- there is no &quot;underlying textual representation&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're looking for something to visualise existing code in some existing language, this won't help, but you might find it interesting :)&lt;/p&gt;&#xA;" OwnerUserId="8769" LastActivityDate="2011-01-03T16:47:09.247" />
  <row Id="33374" PostTypeId="2" ParentId="32490" CreationDate="2011-01-03T16:50:15.087" Score="0" ViewCount="" Body="&lt;p&gt;As expected, all the answers say the same thing: &quot;of course you can! It's just text! Text text text text!&quot; This is true, generally speaking, and is the best answer to your question. Most IDEs simply manipulate text.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But it's not always true, and in certain cases moving away from a text-only model results in great advances. These advances are usually rebuffed by text-only purists (which is most everybody, because how-it-was is also how-it-should-be... ain't that a coincidence?!). IBM Visual Age was one really cool example that died a horrible death.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another example that comes to mind and it kicks butt and is very popular is Interface Builder for creating Mac and iOS products. Its output is NOT text programs but rather serialized objects, so you cannot create NIBs without either using IB or writing your own IB. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Purists will say, &quot;yeah, but Interface Builder is written in text code!&quot; So?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I truly believe that CS as a field would advance greatly if we could go beyond the text-only paradigm. Beyond that, I think that we will eventually go in this direction, but it'll take decades. First we'd have to figure out which is better, &lt;code&gt;vi&lt;/code&gt; or &lt;code&gt;emacs&lt;/code&gt;....&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2011-01-03T16:50:15.087" CommunityOwnedDate="2011-01-03T16:50:15.087" />
  <row Id="33376" PostTypeId="2" ParentId="33349" CreationDate="2011-01-03T17:00:36.000" Score="1" ViewCount="" Body="&lt;p&gt;Names should be &lt;em&gt;meaningful&lt;/em&gt; and &lt;em&gt;descriptive&lt;/em&gt;; if you can express that meaning and description in one or two characters, great.  After all, almost everyone should know what &lt;code&gt;pi&lt;/code&gt; means, especially in a mathematical context.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Beyond that, though, longer names come in much handier.  For example, a name like &lt;code&gt;propertyEditor&lt;/code&gt; gives me a much better idea of what purpose the object serves than a name like &lt;code&gt;pe&lt;/code&gt;.  &lt;/p&gt;&#xA;" OwnerUserId="11246" LastActivityDate="2011-01-03T17:00:36.000" />
  <row Id="33377" PostTypeId="1" CreationDate="2011-01-03T17:10:59.893" Score="8" ViewCount="137" Body="&lt;p&gt;Many times my business objects tend to have situations where information needs to cross object boundaries too often. When doing OO, we want information to be in one object and as much as possible all code dealing with that information should be in that object. However, business rules do not follow this principle giving me trouble.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an example suppose that we have an Order which has a number of OrderItems which refers to an InventoryItem which has a price. I invoke Order.GetTotal() which sums the result of OrderItem.GetPrice() which multiples a quantity by InventoryItem.GetPrice(). So far so good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But then we find out that some items are sold with a two for one deal. We can handle this by having OrderItem.GetPrice() do something like InventoryItem.GetPrice( quantity ) and letting InventoryItem deal with this. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, then we find out that the two-for-one deal only lasts for a particular time period. This time period needs to be based on the date of the order. Now we change OrderItem.GetPrice() to be InventoryItem.GetPrice( quatity, order.GetDate() )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But then we need to support different prices depending on how long the customer has been in the system: InventoryItem.GetPrice( quantity, order.GetDate(), order.GetCustomer() )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But then it turns out that the two-for-one deals apply not just to buying multiple of the same inventory item but multiple for any item in a InventoryCategory. At this point we throw up our hands and just give the InventoryItem the order item and allow it to travel over the object reference graph via accessors to get the information its needs: InventoryItem.GetPrice( this )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TL;DR I want to have low coupling in objects, but business rules often force me to access information from all over the place in order to make particular decisions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there good techniques for dealing with this? Do others find the same problem? &lt;/p&gt;&#xA;" OwnerUserId="1343" LastEditorUserId="1343" LastEditorDisplayName="" LastEditDate="2011-01-03T18:03:27.323" LastActivityDate="2011-01-03T20:40:12.377" Title="Information Spilling Across Object Boundaries" Tags="&lt;design&gt;&lt;object-oriented&gt;&lt;business-rules&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="2" />
  <row Id="33378" PostTypeId="1" AcceptedAnswerId="33380" CreationDate="2011-01-03T17:14:11.693" Score="7" ViewCount="471" Body="&lt;p&gt;&lt;em&gt;disclaimer: for simplicity sake, brackets will refer to brackets, braces, quotes, and parentheses in the couse of this question. Carry on.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When writing code, I usually type the beginning and end element first, and then go back and type the inner stuff. This gets to be a lot of backspacing, especially when doing something with many nested elements like: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;jQuery(function($){$('#element[input=&quot;file&quot;]').hover(function(){$(this).fadeOut();}));&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Is there a more efficient way of remembering how many brackets you've got open ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or a second example with quotes:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?php echo '&amp;lt;input value=&quot;'.$_POST['name'].'&quot; /&amp;gt;&quot;; ?&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="12155" LastEditorUserId="12155" LastEditorDisplayName="" LastEditDate="2011-01-03T17:22:26.020" LastActivityDate="2011-02-22T02:00:41.200" Title="What's Your Method of not forgetting the end brackets, parentheses" Tags="&lt;coding-style&gt;&lt;efficiency&gt;&lt;methodology&gt;" AnswerCount="9" CommentCount="1" />
  <row Id="33379" PostTypeId="1" AcceptedAnswerId="33390" CreationDate="2011-01-03T17:18:05.277" Score="18" ViewCount="723" Body="&lt;p&gt;A few days ago a sales manager asked me that question. But at this moment I didn't know a answer which he can understand. He isn't a programmer!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the moment I work on a product which is over 8 years old. Nobody thought about architecture or evolvability. I have a swamp of code in front of me every day which is not tested. Because of that, time estimates are very difficult for me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How I can describe that problem to an &lt;strong&gt;salesman&lt;/strong&gt;? Not only my swamp-code-problem, but general!&lt;/p&gt;&#xA;" OwnerUserId="12271" LastActivityDate="2011-01-08T00:29:57.787" Title="Sales Manager: &quot;Why is time-estimation so complex?&quot;" Tags="&lt;estimation&gt;&lt;sales&gt;&lt;time-estimation&gt;" AnswerCount="13" CommentCount="1" FavoriteCount="9" />
  <row Id="33380" PostTypeId="2" ParentId="33378" CreationDate="2011-01-03T17:18:13.517" Score="20" ViewCount="" Body="&lt;p&gt;I start out like this &lt;code&gt;{}&lt;/code&gt;, then usually fill them with something. Whenever you type &lt;code&gt;{&lt;/code&gt;, type a corresponding &lt;code&gt;}&lt;/code&gt; and stick it on a new line. The worst thing you have to do in that case is fix indentation prior to committing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Good&lt;/em&gt; syntax highlighters will often alert you to a problem, but not always. My preferred editor KATE, for instance, choked on a JSON formatted 'printf style' variadic argument string.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't trust bracket and paren highlighting! Always close what you open immediately after opening it and &lt;em&gt;then&lt;/em&gt; fill in the gaps.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2011-01-03T17:25:31.827" LastActivityDate="2011-01-03T17:25:31.827" CommentCount="9" />
  <row Id="33381" PostTypeId="2" ParentId="33378" CreationDate="2011-01-03T17:20:03.290" Score="34" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Indentation&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One-liners like that do introduce a bit of a hazard in terms of keeping the brackets correctly matched.  Most decent editors will match the brackets visually to help, but it is easier to expand it.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;(function($) {&#xA;    $('#element[input=&quot;file&quot;]').hover(function() {&#xA;        $(this).fadeOut();&#xA;    }, function() {&#xA;        $(this).fadeIn();&#xA;    });&#xA;})(jQuery);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Note your example was incorrectly matched.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2011-01-03T17:20:03.290" CommentCount="21" />
  <row Id="33382" PostTypeId="1" CreationDate="2011-01-03T17:20:06.830" Score="6" ViewCount="199" Body="&lt;p&gt;I never used to like unit testing.  I always thought it increased the amount of work I had to do.&lt;br&gt;&#xA;Turns out, that's only true in terms of the actual number of lines of code you write and furthermore, this is completely offset by the increase in the number of lines of useful code that you can write in an hour with tests and test driven development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I love unit tests as they allow me to write useful code, that quite often works first time! (knock on wood)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have found that people are reluctant to do unit tests or start a project with test driven development if they are under strict time-lines or in an environment where others don't do it, so they don't.  Kinda like, a cultural refusal to even try.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think one of the most powerful things about unit testing is the confidence that it gives you to undertake refactoring.  It also gives new found hope, that I can give my code to someone else to refactor/improve, and if my unit tests still work, I can use the new version of the library that they modified, pretty much, without fear.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's this last aspect of unit testing that I think needs a new name.  The unit test is more like a contract of what this code should do now, and in the future.&lt;br&gt;&#xA;When I hear the word testing, I think of mice in cages, with multiple experiments done on them to see the effectiveness of a compound.  This is not what unit testing is, we're not trying out different code to see what is the most affective approach, we're defining what outputs we expect with what inputs.  In the mice example, unit tests are more like the definitions of how the universe will work as opposed to the experiments done on the mice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am I on crack or does anyone else see this refusal to do testing and do they think it's a similar reason they don't want to do it?&lt;br&gt;&#xA;What reasons do you / others give for not testing?&lt;br&gt;&#xA;What do you think their motivations are in not unit testing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And as a new name for unit testing that might get over some of the objections, how about jContract? (A bit Java centric I know :), or Unit Contracts?&lt;/p&gt;&#xA;" OwnerUserId="12145" LastActivityDate="2011-01-03T17:48:51.450" Title="A new name for unit tests" Tags="&lt;unit-testing&gt;&lt;tdd&gt;&lt;unit-tests&gt;" AnswerCount="3" CommentCount="6" FavoriteCount="1" />
  <row Id="33384" PostTypeId="2" ParentId="33377" CreationDate="2011-01-03T17:22:45.270" Score="6" ViewCount="" Body="&lt;p&gt;We've had basically the same experience where I work and we've addressed it by having a OrderBusinessLogic class.  For the most part the layout you've described works for the majority of our business.  It's nice and clean and simple.  But on those occaisions where you have buy any 2 from this category, we treat that as an &quot;business execption&quot; and have the OrderBL class recalculate the totals by traversing the objects needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it a perfect solution, no.  We still have one class knowing way too much about the other classes, but at least we've moved that need out of the business objects and into a business logic class.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2011-01-03T17:22:45.270" CommentCount="1" />
  <row Id="33385" PostTypeId="2" ParentId="33379" CreationDate="2011-01-03T17:24:36.367" Score="6" ViewCount="" Body="&lt;p&gt;Ask him how long it would take for him to take over for a colleague that was hit by a bus.  This colleague kept notes in a cryptic format that he'd first have to figure out before he could follow up on the sales leads.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When he says, &quot;I don't know&quot;, just smile.&lt;/p&gt;&#xA;" OwnerUserId="1577" LastActivityDate="2011-01-03T17:24:36.367" CommentCount="1" />
  <row Id="33386" PostTypeId="2" ParentId="33378" CreationDate="2011-01-03T17:25:52.660" Score="4" ViewCount="" Body="&lt;p&gt;Use a text editor that highlights matched parens as you type. A certain amount of count along the line, +1 for open, -1 for close, check you end back at zero will happen at some point, but very rarely if you have a good text editor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some command-line prompts probably do similar matched-paren-highlighting if you configure them for it, though my quick bash-in-konsole experiment didn't seem to do it by default.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the past, I used to type each matched pair at once, then cursor back over the closing paren. Still do out of habit quite a bit. This sounds like what you describe, but there's no backspacing, only cursor-left into the parens, and cursor-right to escape back out.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2011-01-03T17:25:52.660" CommentCount="3" />
  <row Id="33387" PostTypeId="2" ParentId="33349" CreationDate="2011-01-03T17:27:38.510" Score="10" ViewCount="" Body="&lt;p&gt;From Wikipedia: Short-term memory at &lt;a href=&quot;http://en.wikipedia.org/wiki/Short-term_memory&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Short-term_memory&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Short-term memory (or &quot;primary&quot; or &quot;active memory&quot;) is the capacity for holding a small amount of information in mind in an active, readily available state for a short period of time. The duration of short-term memory (when rehearsal or active maintenance is prevented) is believed to be in the order of seconds. Estimates of short-term memory capacity are 7±2 units...&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;A long variable name like persistenceManager, especially when the variable is the same as the class with the exception of the first letter, uses one short term memory slot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A short variable name like pm uses two short term memory slots.  One for the class and one for the variable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With other things being equal, using variable names that are similar enough to the class names aids short term menory, and thus understanding of the program.&lt;/p&gt;&#xA;" OwnerUserId="7860" LastActivityDate="2011-01-03T17:27:38.510" />
  <row Id="33388" PostTypeId="2" ParentId="33379" CreationDate="2011-01-03T17:28:54.243" Score="4" ViewCount="" Body="&lt;p&gt;Compare it to forecasting how much product the company plans to sell for the year. It is obviously not exactly the same thing, but hopefully it gets the point across. You could also ask him why it is so complicated to figure how to sell a product.  &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-03T17:28:54.243" CommentCount="1" />
  <row Id="33389" PostTypeId="2" ParentId="33349" CreationDate="2011-01-03T17:29:52.243" Score="2" ViewCount="" Body="&lt;p&gt;I think the question that should be asked here is not why use long names, but why use short ones?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Short names are faster to type, but code is &quot;write once, read many times&quot;.  A programmer spends vastly more time reading code, than writing it.  And I am not just talking about code reviews.  Every time you look up the definition of a class, or when you try to remember or figure out what a function does, or when you are trying to find a bug, you are reading code.  The easier you can make reading code, the more productive you will be.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Long descriptive variable names make reading code easier, while cryptic ambiguous abbreviations make reading code harder, resulting in longer development time, and higher probability of bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Short abbreviated variable names make typing them easier, but the time you save on typing is a tiny fraction of the time you lose reading the code afterward.  And if you think of the time you are going to spend debugging your code, because you have long forgotten what &lt;code&gt;pm&lt;/code&gt; actually means, and you have used it incorrectly as a result, then you will see that abbreviated names should be avoided at all cost.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2011-01-03T17:29:52.243" />
  <row Id="33390" PostTypeId="2" ParentId="33379" CreationDate="2011-01-03T17:30:54.963" Score="35" ViewCount="" Body="&lt;p&gt;Ask him how long it would take to find his way through a maze. Not any particular maze, or any particular size of maze - just &quot;a maze&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is in some ways similar. You can't be sure how long it will take until you have fully explored the problems you'll need to solve. The only time you can be sure you've done that is when you already have the finished product.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2011-01-03T17:30:54.963" CommentCount="2" />
  <row Id="33391" PostTypeId="2" ParentId="33379" CreationDate="2011-01-03T17:31:30.590" Score="11" ViewCount="" Body="&lt;p&gt;Estimating software is difficult because:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Software development is full of &lt;strong&gt;uncertainties&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Estimations are often taken as &lt;strong&gt;commitment&lt;/strong&gt; by managers.&lt;/li&gt;&#xA;&lt;li&gt;The time needed to implement a feature can be very &lt;strong&gt;different&lt;/strong&gt; from one person to another&lt;/li&gt;&#xA;&lt;li&gt;Human being can hardly estimate in &lt;strong&gt;time&lt;/strong&gt;. However human can easily estimate in term of &lt;strong&gt;size&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The solution I use:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.agilehardware.com/pages/Planning-Poker.html&quot; rel=&quot;nofollow&quot;&gt;Planning Poker&lt;/a&gt; in combination of &lt;a href=&quot;http://www.scrumalliance.org/articles/39-glossary-of-scrum-terms#1110&quot; rel=&quot;nofollow&quot;&gt;velocity tracking&lt;/a&gt; and &lt;a href=&quot;http://www.agilegamedevelopment.com/2006/03/hours-vs-story-points.html&quot; rel=&quot;nofollow&quot;&gt;story points&lt;/a&gt; units.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Work perfectly on large projects with team of 5 to 7 developer and very small teams.  Important: don't assign tasks. Let the team decide.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2011-01-03T17:43:50.610" LastActivityDate="2011-01-03T17:43:50.610" CommentCount="1" />
  <row Id="33392" PostTypeId="2" ParentId="33382" CreationDate="2011-01-03T17:33:00.490" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Am I on crack or does anyone else see this refusal to do testing and do they think it's a similar reason they don't want to do it?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The word testing in unit testing makes people think this is integration testing or user interface testing because thats the only sort of testing they've ever done. It like putting java into javascript. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;When something has a bad name and it affects people's thinking about it it's called a framing error. Framing errors tend to be superficial-- people are smart and can see through all sort of bad names, bad metaphors.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What reasons do you / others give for not testing?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Dependencies that are difficult to mock/fake/&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What do you think their motivations are in not unit testing?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Unit testing has a modest concept count and a non-trivial amount of work needs to be done before one stops writing bad unit tests and starts writing good ones.  As people get better at explaining what unit testing is, adoption will increase. In my experience, unit testing has a near magical effect on productivity and code quality. But it didn't start out that way. I originally used unit testing frameworks as a convenient way to write integration tests.&lt;/p&gt;&#xA;" OwnerUserId="191" LastActivityDate="2011-01-03T17:33:00.490" CommentCount="1" />
  <row Id="33393" PostTypeId="2" ParentId="33319" CreationDate="2011-01-03T17:34:01.317" Score="1" ViewCount="" Body="&lt;p&gt;You might also want to have a look at &lt;a href=&quot;http://gallio.org&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Gallio/MbUnit&lt;/strong&gt;&lt;/a&gt; which is mostly known for the &lt;a href=&quot;http://stackoverflow.com/questions/3678783/mbunit-vs-nunit/3681067#3681067&quot;&gt;numerous advanced features&lt;/a&gt; it provides. There is a &lt;a href=&quot;http://gallio.org/wiki/doku.php?id=getting_started&quot; rel=&quot;nofollow&quot;&gt;nice tutorial&lt;/a&gt; on the &lt;a href=&quot;http://gallio.org/wiki/doku.php?id=start&quot; rel=&quot;nofollow&quot;&gt;Gallio wiki&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="3919" LastActivityDate="2011-01-03T17:34:01.317" />
  <row Id="33394" PostTypeId="2" ParentId="33382" CreationDate="2011-01-03T17:40:58.603" Score="0" ViewCount="" Body="&lt;p&gt;Contracts are called &quot;interfaces&quot; in most cases here. Having unit tests doesn't guarantee the contracts per se, as you can change the tests as well, so you don't actually know that you can use the new version of the library just because the library is tested. You need to test the code that uses the library too. That's not different from any other unit testing, so I don't see why that would need a new name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think, like you, that most people reluctant to do tests do so because they think it's more work and no use.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2011-01-03T17:40:58.603" />
  <row Id="33395" PostTypeId="2" ParentId="33377" CreationDate="2011-01-03T17:44:55.820" Score="1" ViewCount="" Body="&lt;p&gt;It is perfectly okay to access data from other classes. However, you want this to be a one directional relationship. For example, suppose ClassOrder accesses CallItem. Ideally, ClassItem should not access ClassOrder. What I think you are missing in your Order Class is some sort of business logic that may or may not warrant a class such as Walter suggested.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: Response to Winston's comment&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think you need an inventory item object at all...at least in the way that you are using it.  I would instead have an inventory class that managed an inventory database. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would refer to inventory items by an ID. Each order would contain a list of inventory ID's and a corresponding quantity. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I would calculate the total of the order with something like this.&lt;br&gt;&#xA;Inventory.GetCost(Items,customerName,date)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you could have other helper function like:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Inventory.ItemsLefts(int itemID)&lt;br&gt;&#xA;Inventory.AddItem(int itemID, int quantity)&lt;br&gt;&#xA;Inventory.RemoveItem(int itemID, int quantity)&lt;br&gt;&#xA;Inventory.AddBusinessRule(...)&lt;br&gt;&#xA;Inventory.DeleteBusinessRule(...)&lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2011-01-03T20:40:12.377" LastActivityDate="2011-01-03T20:40:12.377" CommentCount="13" />
  <row Id="33396" PostTypeId="2" ParentId="33379" CreationDate="2011-01-03T17:45:12.637" Score="17" ViewCount="" Body="&lt;p&gt;The housebuilding analogy comes to mind: how long does it take to fix up a house? You won't know until you know what shape a house is in, what kind of work needs to be done. Is it just painting, or do you need to rewire the place, knock out walls and stuck up a new roof?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do however think that if you take an inventory, (and based on the lines of code you could estimate the time to take an inventory more confidently) you can then be more specific on what you expect that needs to be done, and how much time it would take. (This is a two way process: by documenting the different issues you get more understanding of the project, and by getting to know the project you get a clearer view on the issues. So take some time to analyse the situation and take time to write your explanation as to why you think something will take the time you think. By the need for explaining it to someone else, it gets clearer for you.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Oh, and don't forget to remind the sales manager that everyone knows someone who started by stripping a piece of wallpaper only to find out that it was actually quite a loadbearing piece of wallpaper being glued to basically sand or crumbled plaster, so they ended up with a big hole and the need to rebuild the wall first. Things that may look like simple cosmetic changes might suddenly uncover a whole range of new problems.) &lt;/p&gt;&#xA;" OwnerUserId="9237" LastActivityDate="2011-01-03T17:45:12.637" CommentCount="1" />
  <row Id="33397" PostTypeId="1" CreationDate="2011-01-03T17:45:35.913" Score="4" ViewCount="197" Body="&lt;p&gt;Hi All,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will be graduating this May with a degree in Computer Science from a well regarded university located in the SF Bay Area. Unfortunately our career services center is terrible and the likely hood of finding a job through them is minimal. I was hoping someone might be able to offer some insight on resources / sites that have a fair amount of entry-level software engineering related jobs? Thanks in advance.&lt;/p&gt;&#xA;" OwnerUserId="12297" LastActivityDate="2011-01-04T00:27:34.583" Title="Resources for Entry Level Software Engineering Positions" Tags="&lt;career&gt;&lt;jobs&gt;&lt;new-job&gt;" AnswerCount="5" FavoriteCount="2" />
  <row Id="33398" PostTypeId="1" CreationDate="2011-01-03T17:46:52.010" Score="5" ViewCount="247" Body="&lt;p&gt;I am an experienced asp.net developer and asp.net mvc and I have my own CMS that I have written but starting to think there should be another approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When someone asks you to develop them a website how do you develop it so that they can add pictures,slideshows, content, news items, diary events.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a side note do you give them a design for the home page and inner page and thats it.  I'm just thinking if they turn around and say 6 months down the line I want a jquery slideshow on the right hand side of this page how do you or CMS's handle it?&lt;/p&gt;&#xA;" OwnerUserId="12296" LastActivityDate="2011-01-04T00:45:01.463" Title="What do you do about content when someone asks you to build a website" Tags="&lt;web-development&gt;&lt;asp.net&gt;&lt;websites&gt;&lt;cms&gt;&lt;asp.net-mvc&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="2" />
  <row Id="33400" PostTypeId="2" ParentId="33382" CreationDate="2011-01-03T17:48:51.450" Score="3" ViewCount="" Body="&lt;p&gt;The concept of a name change has already been proferred.  It's called &lt;em&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Behavior_Driven_Development&quot; rel=&quot;nofollow&quot;&gt;Behavior Driven Development&lt;/a&gt;&lt;/em&gt;.  The guys who came up with that noticed much of the same arguments plus the unnatural fit to test something that isn't created yet.  Instead, their concept is to write an executable specification (which is what TDD is really about anyway).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've noticed the same pushback.  I've also noticed that a number of people just don't know how to write unit tests.  They are lacking in the scientific process disciplines, and merely use the unit test framework as a way to wire everything together and start the debugger.  In short, they aren't truly improving the use of their time.  I can't tell you how many unit tests I've seen that were several tens of lines long (30+ lines) and not one assert statement.  When I see that, I know it's time to work with the developer and teach them what an assertion is, and how to write unit tests that actually test.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2011-01-03T17:48:51.450" CommentCount="1" />
  <row Id="33401" PostTypeId="2" ParentId="33379" CreationDate="2011-01-03T17:48:53.287" Score="1" ViewCount="" Body="&lt;p&gt;Just tell him that after 8 years the project is very large. Now when you introduce some small change it can trigger more changes in the system before you can make it to work and that doesn't depend on you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You must&#xA;1. make your job / write your code&lt;br&gt;&#xA;2. test it&lt;br&gt;&#xA;3. then test how the change will interfere with other functions of the system.&lt;br&gt;&#xA;4. correct the system's behaviour.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can estimate 1 and 2 but you can't tell how the changes will interefere with the whole big thing before you have it done. Because that's impossible without testing. And sometimes you'll have just to write your code and everything will work instantly and some other time you'll have to make many other changes in the system beside just writing the new functionality to make it work as intended.&lt;/p&gt;&#xA;" OwnerUserId="11827" LastActivityDate="2011-01-03T17:48:53.287" />
  <row Id="33402" PostTypeId="1" CreationDate="2011-01-03T17:51:47.107" Score="9" ViewCount="366" Body="&lt;p&gt;Okay, this is one of those little things that always bugged me. I typically don't abbreviate identifiers, and the only time I use a short identifier (e.g., &lt;code&gt;i&lt;/code&gt;) is for a tight loop. So it irritates me when I'm working in C++ and I have a variable that needs to be named &lt;code&gt;operator&lt;/code&gt; or &lt;code&gt;class&lt;/code&gt; and I have to work around it or use an abbreviation, because it ends up sticking out. Caveat: this may happen to me disproportionately often because I work a lot in programming language design, where domain objects may mirror concepts in the host language and inadvertently cause clashes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How would you deal with this? Abbreviate? (&lt;code&gt;op&lt;/code&gt;) Misspell? (&lt;code&gt;klass&lt;/code&gt;) Something else? (&lt;code&gt;operator_&lt;/code&gt;)&lt;/p&gt;&#xA;" OwnerUserId="2107" LastActivityDate="2011-01-05T01:21:27.153" Title="What do you do when your naming convention clashes with your language?" Tags="&lt;naming-conventions&gt;" AnswerCount="9" CommentCount="6" FavoriteCount="0" />
  <row Id="33403" PostTypeId="2" ParentId="33379" CreationDate="2011-01-03T17:56:01.723" Score="5" ViewCount="" Body="&lt;p&gt;Start off with '&lt;em&gt;nine women can't make a baby in one month&lt;/em&gt;' and work backwards to the state of your (hopefully still on time) project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tell him, you can't possibly document a negative, and the time line for a project that has yet to be delivered is a &lt;em&gt;negative&lt;/em&gt;. You won't know until you are close to being ready to ship it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the sales droid &lt;em&gt;forces&lt;/em&gt; you into a time line, say &lt;a href=&quot;http://www.google.com/search?q=six+to+eight+weeks&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;six to eight weeks&lt;/code&gt;&lt;/a&gt; (wow, how that has caught on, the highlighted text can be clicked), then revise that starting on week one, after you know what you've gotten yourself into.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2011-01-03T18:34:10.987" LastActivityDate="2011-01-03T18:34:10.987" />
  <row Id="33404" PostTypeId="2" ParentId="33402" CreationDate="2011-01-03T17:57:10.350" Score="2" ViewCount="" Body="&lt;p&gt;I would add some sort of namespacing to the variable name. For example, suppose you have module named user then I would modify the variable name operator to be something like user_operator or userOperator.&lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-03T17:57:10.350" CommentCount="5" />
  <row Id="33405" PostTypeId="2" ParentId="33349" CreationDate="2011-01-03T18:01:13.957" Score="1" ViewCount="" Body="&lt;p&gt;The code I currently maintain is littered with loops over arrays.  This is the only place I can imagine where short names may be better, because if the loop indices have short enough names, the whole &lt;code&gt;for (...) {&lt;/code&gt; line will be easier to recognize as a 'loop over the whole array'. The condition is that the only place where the loop index is used is on the first line of the loop body, to put the current element in a local variable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm pushing for &lt;em&gt;&quot;Tell, don't ask&quot;&lt;/em&gt;, and use of algorithms (in the C++ STL sense) rather than hand-coded, but it will take time...&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2011-01-03T18:01:13.957" />
  <row Id="33406" PostTypeId="2" ParentId="33378" CreationDate="2011-01-03T18:04:13.750" Score="6" ViewCount="" Body="&lt;p&gt;Whenever I type an opening brace, my editor (Visual Studio with Visual Assist) inserts the closing one for me.  Much easier...&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2011-01-03T18:04:13.750" CommentCount="1" />
  <row Id="33407" PostTypeId="2" ParentId="33365" CreationDate="2011-01-03T18:05:15.053" Score="1" ViewCount="" Body="&lt;p&gt;Not sure if it's available for Eclipse, but you might want to check out &lt;a href=&quot;http://cacm.acm.org/magazines/2010/8/96613-software-development-with-code-maps/fulltext&quot; rel=&quot;nofollow&quot;&gt;code maps&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2011-01-03T18:05:15.053" />
  <row Id="33408" PostTypeId="2" ParentId="33402" CreationDate="2011-01-03T18:10:49.193" Score="9" ViewCount="" Body="&lt;p&gt;It is not something I have encountered, but if I get in such a situation, I would try to resolve it with the following options, in order.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Try to find a synonym.&lt;/li&gt;&#xA;&lt;li&gt;(especially for variables) try to find a prefix or postfix&lt;/li&gt;&#xA;&lt;li&gt;(especially for classes) change the first letter to upper-case and forget about the coding-rule that names should not differ only in case. This option, I would probably only use if the conflict is with a keyword.&lt;/li&gt;&#xA;&lt;li&gt;Use an abbreviation.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5099" LastActivityDate="2011-01-03T18:10:49.193" CommentCount="5" />
  <row Id="33409" PostTypeId="2" ParentId="33398" CreationDate="2011-01-03T18:13:59.727" Score="4" ViewCount="" Body="&lt;p&gt;I tend to ask for content as soon as possible, largely because most customers are very slow to come up with it, so if you don't ask for it on day one you won't get it ahead of deadline and this will somehow be &lt;em&gt;your&lt;/em&gt; fault in the eyes of the customer. It's annoying but it's how the world works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that adding the initial content myself is a good way to verify that the site is working the way I expect it to and it gives the user something to work with when I hand it over. In my experience that extra practical testing and the amount of hassle you avoid by not expecting them to understand all your paradigms from the very start is well worth the time cost of a bit of cut-n-paste work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Prior to content if I'm showing things off I use the Lorem Ipsum text ( grab a bunch from &lt;a href=&quot;http://lipsum.com/&quot; rel=&quot;nofollow&quot;&gt;Lipsum.com&lt;/a&gt; ) as an obvious placeholder, same as most designers seem to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of adding &lt;em&gt;Features&lt;/em&gt; I don't like to give them any new &lt;em&gt;type&lt;/em&gt; of thing that isn't there at the start unless basic they ask for it directly. So if they decide that they want a slideshow I want them to come back to me and ask for it - I may have it ready and have no problem integrating it ( indeed I &lt;em&gt;should&lt;/em&gt; do those things if it is an anticipated feature ) but that extra bit of work involved in coming back to me means we can make sure it does &lt;em&gt;exactly&lt;/em&gt; what they expect, make sure it fits with the rest of the design and - importantly for day to day life - justify a maintenance agreement. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once a feature is there on a site, unless its something that is likely to introduce unwanted complexity for users, I would aim to set it up so they could add more of the same kind of thing by themselves. But for the first one, I like to be in control ov that.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastEditorUserId="4027" LastEditorDisplayName="" LastEditDate="2011-01-04T00:45:01.463" LastActivityDate="2011-01-04T00:45:01.463" CommentCount="3" />
  <row Id="33410" PostTypeId="2" ParentId="33402" CreationDate="2011-01-03T18:25:31.043" Score="4" ViewCount="" Body="&lt;p&gt;In C and C++, keywords are all lowercase and the language is case sensitive, so press the shift key from time to time and a lot of issues go away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Modula 2, keywords are all uppercase - but so long as your identifiers have &lt;em&gt;some&lt;/em&gt; lowercase letters the difference is obvious and clashes impossible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, absolutely naming conventions to some extent need to reflect the normal conventions of the language you're using, so I'd certainly write &quot;myClass&quot; in Java where I'd more likely write &quot;My_Class&quot; in C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, you're not just writing for the compiler, but what people find readable depends to some extent on context and related expectations.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastEditorUserId="8709" LastEditorDisplayName="" LastEditDate="2011-01-03T18:37:36.863" LastActivityDate="2011-01-03T18:37:36.863" CommentCount="2" />
  <row Id="33411" PostTypeId="1" AcceptedAnswerId="33413" CreationDate="2011-01-03T18:28:03.007" Score="7" ViewCount="734" Body="&lt;p&gt;I have recently seen a number of job listings containing a reference to obtaining a &quot;Straight Playa Degree&quot; (SPD). See for example &lt;a href=&quot;http://webprofessionaljobs.com/tag/graphicly&quot; rel=&quot;nofollow&quot;&gt;this job post&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What does this mean? Are they just referring to a plain old Computer Science degree?&lt;/p&gt;&#xA;" OwnerUserId="10751" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-01-03T18:40:55.100" LastActivityDate="2011-06-05T15:21:26.393" Title="What is a &quot;Straight Playa Degree&quot;?" Tags="&lt;career&gt;&lt;education&gt;&lt;degree&gt;" AnswerCount="4" CommentCount="6" FavoriteCount="4" />
  <row Id="33412" PostTypeId="2" ParentId="33379" CreationDate="2011-01-03T18:29:43.363" Score="6" ViewCount="" Body="&lt;p&gt;&quot;Dunno, why is sales estimation so complex? What about market analysis? Conversion rates?&quot;&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2011-01-03T18:29:43.363" />
  <row Id="33413" PostTypeId="2" ParentId="33411" CreationDate="2011-01-03T18:32:19.947" Score="8" ViewCount="" Body="&lt;p&gt;I believe that means &quot;degree by experience.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I might not have a BA in Computer Science, but I've been programming for 3+ years and that makes me more than qualified.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2011-01-03T22:14:21.387" LastActivityDate="2011-01-03T22:14:21.387" CommentCount="7" />
  <row Id="33414" PostTypeId="2" ParentId="33411" CreationDate="2011-01-03T18:36:17.923" Score="16" ViewCount="" Body="&lt;p&gt;That's &lt;strong&gt;absurd&lt;/strong&gt; and completely unprofessional.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is your resume (or curriculum vitae).  The word &lt;em&gt;playa&lt;/em&gt; has absolutely &lt;strong&gt;no business being used&lt;/strong&gt; in it whatsoever.&lt;/p&gt;&#xA;" OwnerUserId="6735" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2011-01-03T21:38:45.697" LastActivityDate="2011-01-03T21:38:45.697" CommentCount="13" />
  <row Id="33415" PostTypeId="2" ParentId="33398" CreationDate="2011-01-03T18:37:14.350" Score="2" ViewCount="" Body="&lt;p&gt;Not to be unhelpful, but &lt;strong&gt;it depends&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I make functionality available based on the need for it to be there.  If you have a &quot;generic&quot; type of content management system, I would suggest being able to turn on/off features that are or are not a requirement of the customer's content.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Getting Content&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually make defining the content part of the initial project requirements document.  These requirements are signed-off on by myself and the client before starting anything.  Even if they don't get you real content to work with, you need to know minimally what type of content to build for and handle so you can prove you met requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Dealing with changes&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any requested changes (e.g.: &quot;Turns out we DO want to have a photo gallery after all!&quot;) have to go through proper change request process that will adjust the pricing and scheduling to match. Create an addendum to the requirements document, and a sign-off on it from both parties.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the case of larger changes that require working up a design past the home page and generic sub pages (i.e.: almost anything that isn't just textual content).  I treat this as a separate smaller sub-project.  I work up a design (and price) for that specific area, and like everything else, make them sign-off on it before proceeding.&lt;/p&gt;&#xA;" OwnerUserId="9987" LastActivityDate="2011-01-03T18:37:14.350" CommentCount="2" />
  <row Id="33416" PostTypeId="2" ParentId="33397" CreationDate="2011-01-03T18:42:52.120" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Step 1: Finding the Good Ones&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well for one, you're close to the right place. You can hit up the &lt;a href=&quot;http://careers.stackoverflow.com/&quot;&gt;Stack Overflow Careers site&lt;/a&gt; for a peek. Beyond that, have a look use the search engine of your choice at local state/province job search sites. There's the big ones like &lt;a href=&quot;http://www.monster.com&quot; rel=&quot;nofollow&quot;&gt;Monster&lt;/a&gt; and &lt;a href=&quot;http://www.workopolis.com&quot; rel=&quot;nofollow&quot;&gt;Workopolis&lt;/a&gt;. Those can be quite touch and go though... I'm a much bigger fan of sites like StackOverflow Careers because they are domain specific and an add-on to an already great community of top shelf folks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Step 2: Are they worth your time?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you've got a couple places you're interested in applying, do some background checking on them, they'll be doing the same to you. Sites like &lt;a href=&quot;http://www.linkedin.com&quot; rel=&quot;nofollow&quot;&gt;LinkedIn&lt;/a&gt; and &lt;a href=&quot;http://www.glassdoor.com&quot; rel=&quot;nofollow&quot;&gt;GlassDoor.com&lt;/a&gt; can be valuable in doing some homework before you apply or hit the interview desk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Step 3: Build your presence and portfolio&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd ensure that you're an active participant in sites like &lt;a href=&quot;http://www.stackoverflow.com&quot;&gt;Stack Overflow&lt;/a&gt; as that'll be sort of a digital resume for your prospective employer if they're looking at you from the careers portion of the site, or anywhere else really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've had resumes handed to me with and without this type of information, and I can tell you I'm more excited to read through the profiles/questions/answers of the folks that have posted a link to an online profile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, when starting off on the ground floor, anything you can do to showcase your own personal projects, online open source project participation and other methods of implementing your skills in practice will go a long way. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You've got all of the tools you need to find a job at your fingertips, it's just finding that right one that will be the journey.&lt;/p&gt;&#xA;" OwnerUserId="11899" LastEditorUserId="11899" LastEditorDisplayName="" LastEditDate="2011-01-03T19:53:36.957" LastActivityDate="2011-01-03T19:53:36.957" />
  <row Id="33417" PostTypeId="2" ParentId="33402" CreationDate="2011-01-03T18:43:20.417" Score="14" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Accept that you might have to make minor changes to your naming convention, such as adding capitalization.  It's better to accept this as soon as possible so all subsequent code is consistent.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Consider being more specific.  Keywords tend to be quite broad, so narrowing &lt;code&gt;class&lt;/code&gt; down to &lt;code&gt;demonstrationClass&lt;/code&gt; not only works around the issues but also increases readability.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8810" LastActivityDate="2011-01-03T18:43:20.417" />
  <row Id="33418" PostTypeId="2" ParentId="33411" CreationDate="2011-01-03T18:49:56.770" Score="7" ViewCount="" Body="&lt;p&gt;You may not need a degree. Sort of like graduating from the &quot;school of hard knocks.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;An interesting use of slang. I'm guessing if you have to ask, you don't qualify. For those that are put off by it, this company is probably doing you a favor by giving some insight into how the company is managed (or mismanaged). Maybe this is a comic book thing? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did like the Hacker / Hustler link.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-03T18:49:56.770" CommentCount="4" />
  <row Id="33419" PostTypeId="2" ParentId="33377" CreationDate="2011-01-03T18:53:35.593" Score="1" ViewCount="" Body="&lt;p&gt;Sounds like you need a separate Discount object (or a list of them) that keeps track of all that stuff, and then apply the Discount(s) to the Order, something like &lt;code&gt;Order.getTotal(Discount)&lt;/code&gt; or &lt;code&gt;Discount.applyTo(Order)&lt;/code&gt; or similar.  &lt;/p&gt;&#xA;" OwnerUserId="11246" LastActivityDate="2011-01-03T18:53:35.593" CommentCount="2" />
  <row Id="33420" PostTypeId="2" ParentId="33228" CreationDate="2011-01-03T18:59:08.393" Score="1" ViewCount="" Body="&lt;p&gt;Oh, try troubleshooting a Javascript problem with ASP.NET AJAX. That is some dirty dirty code you have to fish through to work out what on earth is going on and why.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not to mention the way it insists on jamming a dirty great GUID into the name of every flippin' control on the page.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2011-01-03T18:59:08.393" />
  <row Id="33421" PostTypeId="2" ParentId="33397" CreationDate="2011-01-03T19:06:34.143" Score="3" ViewCount="" Body="&lt;p&gt;Start your own. Email 50 companies in your area and have a few tables and chairs setup on campus. Post a sign in your department for up and coming graduates. Ask for a volunteer to bring donuts and coffee.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a travesty and someone at your university needs to be fired.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-03T19:06:34.143" CommentCount="1" />
  <row Id="33422" PostTypeId="1" CreationDate="2011-01-03T18:48:41.643" Score="4" ViewCount="207" Body="&lt;p&gt;I've found myself in a sort of conundrum lately and I figured Stack Overflow would be the place to ask this question. I normally post under my personal account here, but I'm writing in anonymously this time so as to make sure my co-workers don't find out too early that I'll be leaving them behind in a few months.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My fiancee just landed a great software development job at a very large, stable company. She'll be starting after she graduates and just after we get married (May to June-ish). Her compensation and benefits package will be more than enough to take care of both of us, so I agreed to step down from my current position so we could move to a larger city with more opportunities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll probably take a few weeks off to decompress, but I don't want to stay unemployed very long. Since there will be less pressure on me to bring home a second income though, we're not as adverse to risk as we normally would be. I'm currently debating whether to eventually seek employment at a small company, a larger company, do contract work, or do something else entirely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't been in the software development business long (2-3 years plus some small personal projects), but I've seen what things can be like at a startup (my first job) and at a more established, mid-sized business (my current job). Most importantly what I'm looking for out of a new employment opportunity is challenge and variety.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does this situation describe anyone on SO? If so, what did you do/what are you doing? How is it working out for you? Programming is a pleasure as well as a career skill for me, so I want to make sure it stays that way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks to all in advance for any responses.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-03T21:12:42.693" ClosedDate="2011-01-03T20:01:39.140" Title="Moving soon, fiancee has new job: how to transition?" Tags="&lt;career&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="1" />
  <row Id="33423" PostTypeId="2" ParentId="33379" CreationDate="2011-01-03T19:19:50.983" Score="0" ViewCount="" Body="&lt;p&gt;I'm guessing you rarely give estimates that are too high. Make sure you're not operating under the fear/reluctance to give a lengthy estimate. All good sales people will try and convey a high-level of urgency for a client request. In your mind you're scrambling to figure out what is the least amount of time it will take. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have some questions, offer to take a quick look at the problem so you can gather enough information to make a better estimate. You also need to be able to determine how much time you will have available. Don't promise something in 10 days when you're on vacation for 2-weeks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the over-worked part, find out what previous request they want you to re-prioritize. You'll be shocked that more than half the time they'll want you to keep working on the previous one.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-03T19:19:50.983" />
  <row Id="33424" PostTypeId="2" ParentId="33379" CreationDate="2011-01-03T19:24:56.117" Score="3" ViewCount="" Body="&lt;p&gt;Ask him if he as ever worked on a crossword or better yet a sudoku puzzle.  Explain to him that software development requires a constant refinement after certain unknowns become known. As your understanding increases so does the accuracy of your estimates, at least some of the time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If that fails, ask him &quot;&lt;a href=&quot;http://stackoverflow.com/questions/23388/what-do-you-do-when-you-have-to-give-a-time-estimate-on-fixing-a-bug-when-initia&quot;&gt;How long does it take to find your keys?&lt;/a&gt;&quot;.&lt;/p&gt;&#xA;" OwnerUserId="6398" LastActivityDate="2011-01-03T19:24:56.117" />
  <row Id="33425" PostTypeId="2" ParentId="33398" CreationDate="2011-01-03T19:33:44.987" Score="2" ViewCount="" Body="&lt;p&gt;To save yourself any unexpected surprises, you should definately try to get content sent to you as early as possible. Creating pages with standard 'lorem ipsum' content is all well and good, but until you actually start putting real content in you won't be fully confident that what you're building meets the clients requirements, regardless of what any spec says. You'll surprised what some client's can send over as 'content'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing i'd strongly recommend though - it sounds like you've built (or are building) your own custom CMS. As web-developers, we've all gone down this route at least once, but my advice is this - &lt;strong&gt;don't!&lt;/strong&gt; There are plenty of good CMS's out there for you to use which have already solved the problem for you. Pick a flexible CMS with a good community behind it, then you'll have access to a lot of modules / packages that already provide a lot of the features your client's might ask for. You'll give your client's much better value for money, as you can spend your time implementing the actual site rather than worrying about your core product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you're working in ASP.NET, i'd recommend taking a look at &lt;a href=&quot;http://umbraco.org/&quot; rel=&quot;nofollow&quot;&gt;Umbraco&lt;/a&gt;, which my company uses. It takes a very lean approach to content-management so doesn't have a bloated UI crammed with features your client won't need, and is instead designed to be extensible allowing you can plug-in your own bespoke functionality quite easily. I've also heard quite good things about &lt;a href=&quot;http://n2cms.com/&quot; rel=&quot;nofollow&quot;&gt;N2&lt;/a&gt; and &lt;a href=&quot;http://www.composite.net/C1.aspx&quot; rel=&quot;nofollow&quot;&gt;Composite C1&lt;/a&gt;, but have no personal experience of them.&lt;/p&gt;&#xA;" OwnerUserId="562" LastActivityDate="2011-01-03T19:33:44.987" />
  <row Id="33426" PostTypeId="2" ParentId="33379" CreationDate="2011-01-03T19:39:04.617" Score="1" ViewCount="" Body="&lt;p&gt;It has been proven that you can solve any Rubik's cube configuration in 20 moves or less (http://www.bbc.co.uk/news/technology-10929159).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask how long it would take to solve some Rubik's Cube you can only look at, but not pick up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The software in question is probably vastly more complex than a Rubik's cube, but often you're only allowed to &quot;look at it, but not pick it up and fiddle with it&quot;.&lt;/p&gt;&#xA;" OwnerUserId="6426" LastActivityDate="2011-01-03T19:39:04.617" />
  <row Id="33427" PostTypeId="2" ParentId="33422" CreationDate="2011-01-03T19:39:45.440" Score="9" ViewCount="" Body="&lt;p&gt;It sounds like you need to invest some time and find out what you want to do next.  You are in the unique position of having the luxury of time, so take that time and find out.  Nobody can tell you what that choice is, because it's a choice bounded by your unique blend of personality, talents, skills and desires.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-01-03T21:12:42.693" LastActivityDate="2011-01-03T21:12:42.693" CommentCount="1" />
  <row Id="33428" PostTypeId="2" ParentId="33402" CreationDate="2011-01-03T19:40:39.547" Score="2" ViewCount="" Body="&lt;p&gt;change or adjust my naming convention&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2011-01-03T19:40:39.547" />
  <row Id="33429" PostTypeId="2" ParentId="33422" CreationDate="2011-01-03T19:52:45.490" Score="1" ViewCount="" Body="&lt;p&gt;Given your situation of time and no risk in doing it I would highly recommend you consider going into business for yourself.  Then you won't be making other people rich with your hard work.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2011-01-03T19:52:45.490" />
  <row Id="33430" PostTypeId="2" ParentId="30057" CreationDate="2011-01-03T19:53:40.343" Score="3" ViewCount="" Body="&lt;p&gt;You never want to expose average users to the internal guts of how your application works--especially if you are supporting it.  The BeOS used to ship with a utility that would allow you to turn off a processor (this is before multicore processors) just to see the impact on performance.  And yes, you could turn off &lt;em&gt;all&lt;/em&gt; the processors.  That's when the machine just froze up and the only recourse to reboot the machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most platforms will provide a way for you to query the system for the number of cores/processors on the machine.  By running a few profile tests in your environment, you can determine characteristics of how your application runs most efficiently.  You can have the app set up its internal configuration using simple ratios to the number of cores available.  I'm sure you're thinking that is the type of thing that a sys admin might want to have control over.  You may or may not be right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If we are talking server software here, then I think a better approach is to use an approach similar to Java's Hot Spot technology.  Basically, Hot Spot will recompile optimized portions of your code (completely removing sections that won't ever apply) and swap that new implementation in when it is safe.  It makes its decisions on the branch behavior during runtime (and the value of static values, etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a similar approach you could have key performance areas monitored.  As long as you have an appropriate &lt;em&gt;cost function&lt;/em&gt; you have an effective meter to fine-tune your configuration at runtime and adapt to variations in performance outside your application's control.  If performance is getting lower, you can either spin up a new concurrent task or take some down.  You can have it choose to run something remotely vs. locally if the cost of communications and the current load of the software on the server warrant it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Giving a user access to the way the internals of your application works is like giving them a loaded gun.  Bottom line is that unless you are going to train someone how to properly use a gun, it's probably best not keep it around--much less load it.  They can shoot themselves in the foot, or worse.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2011-01-03T19:53:40.343" CommentCount="1" />
  <row Id="33431" PostTypeId="2" ParentId="33377" CreationDate="2011-01-03T19:54:44.010" Score="0" ViewCount="" Body="&lt;p&gt;After thinking about this more, I've come up with my own alternative strategy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Define a Price class. &lt;code&gt;Inventory.GetPrice()&lt;/code&gt; returns a price object&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Price OrderItem::GetPrice()&#xA;{&#xA;    return inventory.GetPrice().quantity(quantity);&#xA;}&#xA;&#xA;Currency OrderItem::GetTotal()&#xA;{&#xA;    Price price = empty_price();&#xA;    for(item in order_items)&#xA;    {&#xA;         price = price.combine( item.GetPrice() )&#xA;    }&#xA;    price = price.date(date).customer(customer);&#xA;    return price.GetActualPrice();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now the Price class (and possibly some related classes) encapsulate the logic of pricing and order does not have to worry about it. Price doesn't know anything about Order/OrderItem instead simply having information fed into it.&lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2011-01-03T19:54:44.010" />
  <row Id="33432" PostTypeId="2" ParentId="33422" CreationDate="2011-01-03T19:55:31.710" Score="2" ViewCount="" Body="&lt;p&gt;Well, this looks like a good opportunity to consider what you want to do (work/career-wise), long-term and try to find a suitable job for that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You do have some luxury of time. I'd probably start putting the CV out 1-2 months before the move, trying to schedule interviews starting a week after landing. That should give you some time to get (some) unpacking done. Indicate that you will be moving to $CITY at $DATE, available for phone interviews until $A-FEW-DAYS-BEFORE-MOVING and can do face-to-face interviews from $A-WEEK-AFTER-LANDING.&lt;/p&gt;&#xA;" OwnerUserId="5084" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-01-03T20:08:47.660" LastActivityDate="2011-01-03T20:08:47.660" />
  <row Id="33433" PostTypeId="2" ParentId="33402" CreationDate="2011-01-03T20:01:15.240" Score="4" ViewCount="" Body="&lt;p&gt;Instead of abbreviating how about lengthening? If you are implement a class construct in a Foo language, how about using FooClass and foo_class? (Modulo whatever your casing preferences are). &lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2011-01-03T20:01:15.240" CommentCount="3" />
  <row Id="33434" PostTypeId="2" ParentId="33397" CreationDate="2011-01-03T20:08:06.500" Score="0" ViewCount="" Body="&lt;p&gt;Try dice.com and monster.com.  Also search out some local headhunters, they work with fresh grads also.&lt;/p&gt;&#xA;" OwnerUserId="8451" LastActivityDate="2011-01-03T20:08:06.500" />
  <row Id="33435" PostTypeId="2" ParentId="33378" CreationDate="2011-01-03T20:09:01.110" Score="1" ViewCount="" Body="&lt;p&gt;When i use an editor that does not close my braces/parenthesis automatically I create them both at the same time. Then move them to their ending location. This is convienent when you have a coding pattern that you have settled into. Even if your one lining it, creating opening and closing brackets at the same time wont hurt. I use the same practice with JavaScript, C#, and Ruby. Try it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;e.g.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Step 1&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(true)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Step 2&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(true){}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Step 3&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if(true)&#xA;{&#xA;    //Put your code here&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="12303" LastActivityDate="2011-01-03T20:09:01.110" CommentCount="2" />
  <row Id="33436" PostTypeId="1" AcceptedAnswerId="33471" CreationDate="2011-01-03T20:20:15.220" Score="9" ViewCount="341" Body="&lt;p&gt;I am currently the sole developer at the very beginning stages of what I think could be a successful startup. My question is simply how to go about determining if I am interested in accepting a permanent stock in the enterprise or if I should insist on hard cash.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This startup is seeking venture capital and it is looking likely that they will get something, I don't know how much. I know very little about the business plan or financial operations at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The founders have experience with other startup type endevours that have been successful. From a business perspective I have a reasonable amount of confidence in them. However, I have never met them face to face. They have offered me a partnership in the project but I'm fairly confident that I don't want to do that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have done some work for them and they really like me so I'm not to afraid of losing the position altogether.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am a young developer with no experience with this sort of thing and need some experience to point me in the right direction. How to I begin to evaluate how much stock or what percentage of the profit should I ask for?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any suggestions at all would be appreciated!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. Any suggestions for better tags?&lt;/p&gt;&#xA;" OwnerUserId="202" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2011-01-03T23:04:04.207" LastActivityDate="2011-01-04T03:03:14.397" Title="How to decide if I should take a profit sharing offer or insist on hard cash" Tags="&lt;career-advice&gt;&lt;startups&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="4" />
  <row Id="33437" PostTypeId="2" ParentId="29912" CreationDate="2011-01-03T20:27:06.117" Score="2" ViewCount="" Body="&lt;p&gt;The pitfalls of adding F# to the languages you use include the pitfalls of introducing any new technology. Regardless of the benefits, if some of your team don't want or aren't flexible enough to learn, they won't be able to work on F# projects. Nevertheless, if you let dinosaurs on your team prevent your adoption of new technologies, your company is doomed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only pitfalls I have personally experienced are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Difficulties when debugging. Following the flow of execution of an expression-based program in a debugger designed for statement-based languages can be tricky.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Frustrating intellisense. Auto-completion stops working exactly when you need it. Microsoft must work on making the background parser more fault-tolerant.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Indentation-sensitive syntax makes it difficult to copy-paste or reformat code. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Lack of refactoring.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Some of the existing convenient VS extensions for F# (code folding, depth colouring) are a bit slow, making the typing experience a bit frustrating. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In my opinion, none of these issues are show-stoppers, and I can live with them for the time being. Tools are easier to improve and fix than languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your fears that hiring new programmers capable of writing in F# would be difficult are quite common but in my opinion unjustified. If you were to write coding guidelines, would you advise against or forbid any of the following features in C#: &lt;code&gt;yield return&lt;/code&gt;, LINQ to objects, lambdas, the upcoming &lt;code&gt;async&lt;/code&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you believe these features help write better code, then there is no reason to refrain from F#. The language supports these features in a smooth and well thought-out manner, which C# can't really do due to its legacy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your team is smart enough to understand the concepts behind the features I mentioned, they have all they need to be excellent programmers in F#. The same goes for future recruits: Would you hire anyone who is incapable or unwilling to use features introduced after C# 1.0?&lt;/p&gt;&#xA;" OwnerUserId="12304" LastEditorUserId="12304" LastEditorDisplayName="" LastEditDate="2011-05-03T18:37:59.110" LastActivityDate="2011-05-03T18:37:59.110" CommunityOwnedDate="2011-01-03T20:27:06.117" />
  <row Id="33438" PostTypeId="2" ParentId="33436" CreationDate="2011-01-03T20:32:35.610" Score="1" ViewCount="" Body="&lt;p&gt;You are young, you can take risk. If you have firm belief in the startup, take shares.&lt;/p&gt;&#xA;" OwnerUserId="9753" LastActivityDate="2011-01-03T20:32:35.610" />
  <row Id="33439" PostTypeId="2" ParentId="33436" CreationDate="2011-01-03T20:44:42.153" Score="2" ViewCount="" Body="&lt;p&gt;First off, I wouldn't do either until I met them face-to-face. There is just too much information you glean from a person when you spend time with them that you are missing out on. You are trusting these people with a good chunk of your future, so you better get to know them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now to the matter at hand. If you believe in them and more importantly, believe in the product, go for equity. But keep this caveat in mind: Get at least some actual shares when you begin and not just options. I got seriously burned by a medical device startup that gave me options for shares and then fired the entire design team immediately after launch and before our shares vested. Not cool and not one thing I could do about it. Lesson: founders take care of themselves first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;" OwnerUserId="293" LastActivityDate="2011-01-03T20:44:42.153" />
  <row Id="33440" PostTypeId="2" ParentId="33436" CreationDate="2011-01-03T20:51:18.897" Score="1" ViewCount="" Body="&lt;p&gt;You may be young, and more willing to take the risk, but age isn't the only thing to consider.  Take into account your financial needs over the next few years.  Do you have anyone you need to support?  Anything on the horizon?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't commit to anything (especially a partnership or other stock) until you meet them face to face, at minimum.  Do some investigative work on the principals.  This is a lot easier to do today than in the past.  Partnering with someone in business is just like a marriage.  That includes legal considerations.  Don't go into this lightly, but don't brush this off, either.  It could be a great opportunity.  But do some serious homework.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they are willing to include you in the partnership, it's also quite likely you'll be included in the VC's due diligence check (including a background check).  Is there anything you need to be concerned about with that?&lt;/p&gt;&#xA;" OwnerUserId="10397" LastActivityDate="2011-01-03T20:51:18.897" CommentCount="4" />
  <row Id="33441" PostTypeId="2" ParentId="33402" CreationDate="2011-01-03T20:53:32.870" Score="6" ViewCount="" Body="&lt;p&gt;The language wins; you can't outsmart the compiler (ignoring abominations such as the PL/1 &lt;code&gt;IF IF = THEN THEN THEN = ELSE ELSE ELSE = IF END&lt;/code&gt;, but then PL/1 wouldn't cause you to ask the question in the first place).  Basically, you have to follow the rules of the language, and you have to find an alternative to the language's key words for your own use - or find an alternative language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, except in very unusual circumstances, you adapt to the language, not vice versa.&lt;/p&gt;&#xA;" OwnerUserId="3611" LastActivityDate="2011-01-03T20:53:32.870" />
  <row Id="33442" PostTypeId="2" ParentId="33436" CreationDate="2011-01-03T21:07:38.297" Score="7" ViewCount="" Body="&lt;p&gt;The value of an enterprise (if, in fact, they are offering actual ownership) depends on a great number of factors, and you haven't given enough detail to offer an analysis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of &quot;stock options,&quot; I will say this: sometimes when companies use these words, what they really mean is &quot;We have no money, so we want you to work for free.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The verbiage is very important.  A &quot;stock option&quot; is not the same as &quot;profit sharing.&quot;  Make sure you know clearly what all these terms mean before having a discussion with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, any such ownership agreement must come with a written contract that is carefully scrutinized by a lawyer that specializes in such agreements.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2011-01-03T21:07:38.297" />
  <row Id="33443" PostTypeId="2" ParentId="33436" CreationDate="2011-01-03T21:14:52.877" Score="6" ViewCount="" Body="&lt;p&gt;Try to negotiate both.  Lower amounts of cash than you would normally take, so you are guaranteed something for your time.  And some stock/profit sharing, to make up for the lower amount of cash.&lt;/p&gt;&#xA;" OwnerUserId="2431" LastActivityDate="2011-01-03T21:14:52.877" CommentCount="3" />
  <row Id="33444" PostTypeId="2" ParentId="33436" CreationDate="2011-01-03T21:21:19.840" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I know very little about the business plan or financial operations at all.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I think you need to address this first.&lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2011-01-03T21:21:19.840" CommentCount="1" />
  <row Id="33445" PostTypeId="2" ParentId="9465" CreationDate="2011-01-03T21:22:58.127" Score="0" ViewCount="" Body="&lt;p&gt;The Cerebrata tools are nice&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://cerebrata.com/&quot; rel=&quot;nofollow&quot;&gt;http://cerebrata.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3755" LastActivityDate="2011-01-03T21:22:58.127" />
  <row Id="33446" PostTypeId="1" CreationDate="2011-01-03T21:36:30.800" Score="10" ViewCount="587" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/9554/how-do-people-manage-to-write-and-maintain-extremely-complex-and-hard-to-read-cod&quot;&gt;How do people manage to write and maintain extremely complex and hard to read code?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Hi guys,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm at a job where I have to do a lot of bugfixing in code that's, shall we say, not the most best-practicey in the world. One example I found today: The logic for checking whether a form has been modified and we should prompt the user if he wants to save is in a function called &quot;IsImage&quot;. The function has nothing to do with images whatsoever. Hmmm...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do fellow stackexchangers deal with situations like this and maintain their sanity?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: Not a dupe. The question linked in the comment asks how people are able to write highly complex code. This question is asking for tips on maintaining bad code.&lt;/p&gt;&#xA;" OwnerUserId="12071" LastEditorUserId="12071" LastEditorDisplayName="" LastEditDate="2011-01-04T19:13:28.010" LastActivityDate="2011-01-04T23:12:41.283" ClosedDate="2011-01-06T04:07:47.617" Title="Maintaining unmaintainable code" Tags="&lt;maintenance&gt;" AnswerCount="13" CommentCount="11" FavoriteCount="2" />
  <row Id="33447" PostTypeId="2" ParentId="33436" CreationDate="2011-01-03T21:38:04.213" Score="2" ViewCount="" Body="&lt;p&gt;You may not have a choice.  Many startups are tight on cash and flush with stock options.  I would look at the level of risk you are willing to take and weigh it based on that.  You really need to assume there will never by any money.  Lots of startups fail, there are a finite number of googles, and amazons.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the cash is enough and the experience is good, go for it.  You will probably learn a lot at a startup and will also be more marketable later when you need that good paying job.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2011-01-03T21:38:04.213" />
  <row Id="33448" PostTypeId="2" ParentId="33397" CreationDate="2011-01-03T21:42:34.480" Score="1" ViewCount="" Body="&lt;p&gt;Start building your network of people now.  Try using &lt;a href=&quot;http://www.linkedin.com&quot; rel=&quot;nofollow&quot; title=&quot;LinkedIn&quot;&gt;LinkedIn.&lt;/a&gt;&#xA;Another good site: &lt;a href=&quot;http://timsstrategy.com/&quot; rel=&quot;nofollow&quot;&gt;Spin Strategy&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When on LinkedIn, connect to as many groups as you can.  You can often build up your network of people when you share a common group.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another preacher says to have a web site for your resume and add it as a tag line to Blogs that you participate to.  The idea is that when an employer types in the job title to Google, your resume will pop up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When building up your resume and cover letters (and for that matter during your interviews), have the concept of &quot;How Can I Help This Company?&quot;.  I asked that to an interviewer and he started rambling with issues they were having.  Relate these issues to your experience and your a lot farther than your competition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.linkedin.com/in/thomasomatthews&quot; rel=&quot;nofollow&quot;&gt;http://www.linkedin.com/in/thomasomatthews&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="5285" LastActivityDate="2011-01-03T21:42:34.480" />
  <row Id="33449" PostTypeId="2" ParentId="33446" CreationDate="2011-01-03T21:43:46.007" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Looking around the cubicles?&lt;/strong&gt;&lt;br&gt;&#xA;Hmmm, did you just start working here?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do it by:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Taking notes of the curly ones that will probably bite me later&lt;/li&gt;&#xA;&lt;li&gt;Refactoring away insanity when I can&lt;/li&gt;&#xA;&lt;li&gt;If the people writing that code are still around, slowly demonstrate by example the benefits of doing it clean/right/better.&lt;/li&gt;&#xA;&lt;li&gt;Getting management buy-in by demonstrating the [risk it poses/potential increase in productivity by doing it better]&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2673" LastEditorUserId="2673" LastEditorDisplayName="" LastEditDate="2011-01-03T21:52:24.980" LastActivityDate="2011-01-03T21:52:24.980" />
  <row Id="33450" PostTypeId="2" ParentId="33446" CreationDate="2011-01-03T21:44:32.603" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Well the title of the question is irrational to begin with!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However the usual steps are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Priority no.1 Fix most urgent bugs&lt;/li&gt;&#xA;&lt;li&gt;Fix any secondary bugs&lt;/li&gt;&#xA;&lt;li&gt;After fixing primary and secondary bugs, you should enough grips with the code-base.&lt;/li&gt;&#xA;&lt;li&gt;Start slowing re-factoring.&lt;/li&gt;&#xA;&lt;li&gt;Any new features should be done as per new coding convention, while at the same time re-factoring the old code to bring it up to speed.&lt;/li&gt;&#xA;&lt;li&gt;Parts of the code base that are to &lt;strong&gt;&quot;beyond any human hope&quot;&lt;/strong&gt; should be written if possible.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2011-01-03T21:44:32.603" />
  <row Id="33451" PostTypeId="2" ParentId="33446" CreationDate="2011-01-03T21:49:47.480" Score="16" ViewCount="" Body="&lt;p&gt;If the situation is bad enough, especially if it was brought on by a systemically bad workplace, then find another job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's more of a one-off product that's so bad, then basically this: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Accept that the code is an unholy mess. Don't fight it or take it personally.&lt;/li&gt;&#xA;&lt;li&gt;Accept that reading the code and analysing bugs will take time.&lt;/li&gt;&#xA;&lt;li&gt;Pen and paper.&lt;/li&gt;&#xA;&lt;li&gt;Refactor as you go.&lt;/li&gt;&#xA;&lt;li&gt;Refactor as you go.&lt;/li&gt;&#xA;&lt;li&gt;Refactor as you go.&lt;/li&gt;&#xA;&lt;li&gt;Refactor as you go.&lt;/li&gt;&#xA;&lt;li&gt;Refactor as you go.&lt;/li&gt;&#xA;&lt;li&gt;Add inline comments/documentation to the hairy bits.&lt;/li&gt;&#xA;&lt;li&gt;Refactor as you go.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: These discussions always remind me of something Joel Spolsky mentioned a few times in various articles: &lt;em&gt;slow down when reading code&lt;/em&gt;. As programmers, it's very tempting to try to read code like reading natural language, and expecting to understand it immediately as we read it at full speed. This is hard with even the best code - very hard with other people's code - and almost impossible with messy code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Forcing your mind to slow down and reading the code with a slow, analytical frame of mind goes a long way.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastEditorUserId="5064" LastEditorDisplayName="" LastEditDate="2011-01-03T21:56:50.127" LastActivityDate="2011-01-03T21:56:50.127" CommentCount="9" />
  <row Id="33452" PostTypeId="2" ParentId="33446" CreationDate="2011-01-03T21:52:34.450" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Fix broken windows&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clean up the code as you go. For instance with that particular example, do a global search in the solution for IsImage and rename all calls to that particular function (and the function its self) to something like IsFormDirty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing this slowly turns your unmaintainable mess into nice code, and will save a huge amount of trouble.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I learnt that the hard way working on a project where they decided to move to a new framework by creating classes that did the same thing as previous classes in the new way and call them the same thing but stick a 2 on the end. So you would have Class and Class2.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The big problem was that the old classes were still used by half of the program. So I'd try to fix a bug, find where the logic seemed to be and fix the problem, to have no effect. Then I'd have to find where it really was and fix it there. In the worst case my change would break something somewhere else. I spent hours of lost time just trying to figure out what controlled what. At the end I wished I had moved everything across to the new version or at the very least deleted the classes that weren't being used any more and renamed the ones that were.&lt;/p&gt;&#xA;" OwnerUserId="5682" LastActivityDate="2011-01-03T21:52:34.450" />
  <row Id="33453" PostTypeId="2" ParentId="33446" CreationDate="2011-01-03T21:52:35.013" Score="24" ViewCount="" Body="&lt;p&gt;Your best approach to take on &lt;a href=&quot;http://www.martinfowler.com/bliki/TechnicalDebt.html&quot; rel=&quot;nofollow&quot;&gt;technical debt&lt;/a&gt; is one piece at a time, what I do is as follows:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do &lt;strong&gt;not&lt;/strong&gt; try to refactor everything, you will get into deep mud.&lt;/li&gt;&#xA;&lt;li&gt;When an issue (bug, new functionality, etc) is tackled start by writing unit tests reproducing the problem or checking the current state.&lt;/li&gt;&#xA;&lt;li&gt;Resolve any issues that the unit tests unearth.&lt;/li&gt;&#xA;&lt;li&gt;While fixing the issue or adding functionality change only those pieces of code that are covered by the unit tests.&lt;/li&gt;&#xA;&lt;li&gt;When the unit tests you added trigger multiple issues to be fixed don't be afraid to refactor pieces of code or replace parts of it; make sure your unit tests cover your changes.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Over time your project should improve while it acquires more and more unit tests and more and more code is fixed / refactored.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Btw, make sure the project defines a coding standard and make changed or new code adhere to it strictly.&lt;/p&gt;&#xA;" OwnerUserId="11859" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-01-04T23:12:41.283" LastActivityDate="2011-01-04T23:12:41.283" CommentCount="3" />
  <row Id="33454" PostTypeId="1" CreationDate="2011-01-03T21:58:28.007" Score="1" ViewCount="273" Body="&lt;p&gt;Hi, I'm looking to to build a wiki based tool the helps/aides in the requirements engineering process. More specifically I am hoping to end up with a tool that helps inexperienced users easily create and design requirements documents on a wiki platform. I was wondering if there exist any wiki/wiki platforms that either already exist or are easily extendible or would be worth looking at that for this purpose. For instance some of the features I was hoping to add would be to add structure to a document so that information is filled out in a standardised manner. Another idea I was looking at was to somehow create relationships between different types of documents (for example- a goal diagram gets evolves/ helps in the development of the class diagram).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So far I have come across FOSwiki which claims to to fully customisalble...but I'm not sure what it means and what I can really do with that. Any input on FOSwiki is also highly appreciated.&lt;/p&gt;&#xA;" OwnerUserId="12309" LastActivityDate="2011-05-25T03:57:04.407" Title="Wiki based requirements engineering tool" Tags="&lt;requirements&gt;&lt;wiki&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="33455" PostTypeId="2" ParentId="32964" CreationDate="2011-01-03T22:00:09.343" Score="-1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;where &lt;strong&gt;Abstraction&lt;/strong&gt; is on your right&#xA;  shoulder and &lt;strong&gt;Solve-it-stupid&lt;/strong&gt; sits on&#xA;  the left.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't agree with &lt;strong&gt;&quot;solve it stupid&quot;&lt;/strong&gt;, I thinks it can be more &lt;strong&gt;&quot;solve it smart&quot;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's smarter:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Writing a complex generalised solution that has could support multiple cases&lt;/li&gt;&#xA;&lt;li&gt;Writing short and effecient code that solves the problem at hand and is easy to maintain, and &lt;strong&gt;which can&lt;/strong&gt; be &lt;strong&gt;extended&lt;/strong&gt; in the future &lt;strong&gt;IF&lt;/strong&gt; it is required.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The default choice should be the second one. Unless you can demonstrate a need for generational.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The generalised solution should only be when you known that it is something that will be used in multiple different projects/cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually I find generalised solutions are best served as &lt;strong&gt;&quot;Core Library Code&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2011-01-03T22:39:16.097" LastActivityDate="2011-01-03T22:39:16.097" CommentCount="3" />
  <row Id="33456" PostTypeId="2" ParentId="33454" CreationDate="2011-01-03T22:03:16.573" Score="0" ViewCount="" Body="&lt;p&gt;Well, Wikis are by design usually &lt;em&gt;not&lt;/em&gt; structured. You might want a content management system where you can add content types. You can still have Wiki-functionality in that you can let people edit every document, etc.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2011-01-03T22:03:16.573" />
  <row Id="33457" PostTypeId="2" ParentId="33454" CreationDate="2011-01-03T22:03:43.137" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.mediawiki.org/wiki/MediaWiki&quot; rel=&quot;nofollow&quot;&gt;MediaWiki&lt;/a&gt; is the one I've seen used the most.  It's highly reliable (being used by the US State Dept), open source, and free.&lt;/p&gt;&#xA;" OwnerUserId="12307" LastActivityDate="2011-01-03T22:03:43.137" CommentCount="2" />
  <row Id="33458" PostTypeId="1" AcceptedAnswerId="33466" CreationDate="2011-01-03T22:12:56.150" Score="7" ViewCount="355" Body="&lt;p&gt;I've recently been working with a team that's using both .NET C++ and pre-.NET C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I fully understand the technical differences between the two technologies.  However, I sometimes feel like I'm floundering when it comes to the terminology used to differentiate the two.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example:  Say we have two projects:&lt;br&gt;&#xA;&lt;strong&gt;ProjectA&lt;/strong&gt; contains &quot;C++&quot; code that builds a .NET assembly DLL.&lt;br&gt;&#xA;&lt;strong&gt;ProjectB&lt;/strong&gt; contains Visual C++ code that builds a traditional native Windows DLL.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the best way to succinctly and terminologically draw a distinction between the two projects? Again, I'm not asking for an in-depth technical description of the differences between the two technologies.  I'm just looking for names and labels.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is how, today, I might try to make the distinction when talking to someone:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&quot;ProjectA is a managed .NET C++ project&quot;&lt;/em&gt;&lt;br&gt;&#xA;and&lt;br&gt;&#xA;&lt;em&gt;&quot;ProjectB is an unmanaged native C++ DLL project.&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However I am not at all certain that this terminology is ideal, or even correct.  Please describe what you feel the ideal language to use in this situation (or similar situations) might be.  Feel free to motivate your answer.&lt;/p&gt;&#xA;" OwnerUserId="6677" LastEditorUserId="6677" LastEditorDisplayName="" LastEditDate="2011-01-04T17:26:15.483" LastActivityDate="2011-01-04T17:26:15.483" Title="Microsoft Terminology: .NET C++ vs. traditional C++" Tags="&lt;.net&gt;&lt;c++&gt;&lt;terminology&gt;&lt;visual-c++&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="33459" PostTypeId="2" ParentId="33402" CreationDate="2011-01-03T22:18:59.280" Score="5" ViewCount="" Body="&lt;p&gt;Some of the abbreviations I've used for &lt;code&gt;class&lt;/code&gt;, in order of frequency:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;cls&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;clss&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;clazz&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;theClass&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;aClass&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If I know what class the &lt;code&gt;Class&lt;/code&gt; instance represents, I might include it in the variable name:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;stringClass = Class.forName(&quot;java.lang.String&quot;);&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6677" LastEditorUserId="6677" LastEditorDisplayName="" LastEditDate="2011-01-05T01:08:20.373" LastActivityDate="2011-01-05T01:08:20.373" CommentCount="1" />
  <row Id="33460" PostTypeId="1" CreationDate="2011-01-03T22:23:51.947" Score="25" ViewCount="564" Body="&lt;p&gt;I'm in the midst of an argument with some coworkers over whether team ownership of the entire codebase is better than individual ownership of components of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a huge proponent of assigning every member of the team a roughly equal share of the codebase. It lets people take pride in their creation, gives the bug screeners an obvious first place to assign incoming tickets, and helps to alleviate &quot;broken window syndrome&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also concentrates knowledge of specific functionality with one (or two) team members making bug fixes much easier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of all, it puts the final say on major decisions with one person who has a lot of input instead of with a committee.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not advocating for requiring permission if somebody else wants to change your code; maybe have the code review always be to the owner, sure. Nor am I suggesting building knowledge silos: there should be nothing exclusive about this ownership.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But when suggesting this to my coworkers, I got a ton of pushback, certainly much more than I expected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I ask the community: what are your opinions on working with a team on a large codebase? Is there something I'm missing about vigilantly maintaining collective ownership?&lt;/p&gt;&#xA;" OwnerUserId="1576" LastEditorUserId="1576" LastEditorDisplayName="" LastEditDate="2011-01-03T22:39:13.130" LastActivityDate="2011-01-16T11:25:09.043" Title="Is individual code ownership important?" Tags="&lt;team&gt;&lt;organization&gt;" AnswerCount="12" CommentCount="2" FavoriteCount="6" />
  <row Id="33461" PostTypeId="2" ParentId="33460" CreationDate="2011-01-03T22:26:58.527" Score="24" ViewCount="" Body="&lt;p&gt;I believe that Team Ownership is much more beneficial in the long term.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You just need to look at the following 2 scenarios to understand why concentrating knowledge in minimum numbers of people is less than ideal:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Team member meets unfortunate accident&lt;/li&gt;&#xA;&lt;li&gt;Team member meets better employment opportunity &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Naturally, the person/people who write particular sections will have greater knowledge of it, but don't give in to the temptation to make them the sole &lt;strong&gt;silo&lt;/strong&gt; of knowledge. &lt;strong&gt;Silos&lt;/strong&gt;  will give you short term wins by long term pains...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just because you don't have individual ownership of sections of code, since you wrote it, doesn't mean you will not still have the aspects of &quot;pride in your creation&quot;, etc. I don't believe having team ownership will greatly diminish any personal feelings of ownership of code written.&lt;/p&gt;&#xA;" OwnerUserId="2673" LastEditorUserId="2673" LastEditorDisplayName="" LastEditDate="2011-01-16T11:25:09.043" LastActivityDate="2011-01-16T11:25:09.043" CommentCount="12" />
  <row Id="33462" PostTypeId="2" ParentId="33458" CreationDate="2011-01-03T22:31:16.120" Score="6" ViewCount="" Body="&lt;p&gt;This is the terminology I'd use:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;ProjectA builds a managed Assembly; project B builds an unmanaged Assembly.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the cleanest way to differentiate between the two.&lt;/p&gt;&#xA;" OwnerUserId="1577" LastEditorUserId="1577" LastEditorDisplayName="" LastEditDate="2011-01-04T13:15:44.857" LastActivityDate="2011-01-04T13:15:44.857" />
  <row Id="33463" PostTypeId="2" ParentId="33460" CreationDate="2011-01-03T22:31:56.463" Score="6" ViewCount="" Body="&lt;p&gt;I would espouse team ownership over individual for the following reasons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Code consistency over the entire project&lt;/li&gt;&#xA;&lt;li&gt;Promotes discussion of code, which always leads to better, more vetted solutions&lt;/li&gt;&#xA;&lt;li&gt;If one team member is out sick (or worse), an entire section of code is not subject to delays&lt;/li&gt;&#xA;&lt;li&gt;Team members can work on all parts of the project, which serves to make code review built into the development process&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="12307" LastActivityDate="2011-01-03T22:31:56.463" />
  <row Id="33464" PostTypeId="2" ParentId="33460" CreationDate="2011-01-03T22:33:07.380" Score="13" ViewCount="" Body="&lt;p&gt;Ultimately, the team owns the code.  But for all of the reasons you mentioned, we have designated individual authors for specific portions of the code.  Each author has primary responsibility for their portion of the code, and secondary responsibility for the code base as a whole.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If a problem with a part of the code base surfaces, I try to go back to the person who originally wrote the code for a fix.  There is, of course, nothing preventing other team members from applying a fix; all team members are expected to be familiar with everyone else's code.  But we always try to get a fix from the original author first.  After all, they wrote the code; they are the one most familiar with it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have worked in team environments that, because people didn't feel a sense of ownership in what they wrote, they weren't compelled to write excellent code, but merely average code.  &lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-01-03T22:55:24.053" LastActivityDate="2011-01-03T22:55:24.053" CommentCount="1" />
  <row Id="33465" PostTypeId="2" ParentId="33460" CreationDate="2011-01-03T22:35:06.070" Score="3" ViewCount="" Body="&lt;p&gt;I have to disagree with you: team ownership of a codebase is a much better option than individual ownership. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The obvious downside to individual ownership is that if something happens to one employee (get fired, retire, fall sick, etc.) then unless he/she wrote &lt;em&gt;really&lt;/em&gt; clean code, it'll take a while to for somebody else to adopt that person's code, especially if they also have to manage their own code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They're also just too many tools that make team ownership easier. Code reviews, source control – these are things that encourage team involvement throughout the entire codebase. Besides, how do you assign a particular part of a codebase to just one person? Do you just say that only this person can modify this file? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, I think that if one part of a codebase breaks, its too easy to blame the person who was responsible for it, and that just causes more problems.&lt;/p&gt;&#xA;" OwnerUserId="9190" LastActivityDate="2011-01-03T22:35:06.070" />
  <row Id="33466" PostTypeId="2" ParentId="33458" CreationDate="2011-01-03T22:37:07.500" Score="17" ViewCount="" Body="&lt;p&gt;I would use &quot;C++/CLI&quot; to refer to the managed assembly, and just &quot;C++&quot; (or &quot;native C++&quot;) to refer to the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/C%2B%2B/CLI&quot; rel=&quot;nofollow&quot;&gt;C++/CLI&lt;/a&gt; is the &quot;official&quot; name of Microsoft's dialect of C++ that supports .NET, so it seems to make sense to use that.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2011-01-03T22:37:07.500" />
  <row Id="33467" PostTypeId="2" ParentId="33460" CreationDate="2011-01-03T23:13:06.567" Score="7" ViewCount="" Body="&lt;p&gt;While I agree from a business stance on reasons to spread the knowledge about the product; reality is that an individual focusing their efforts on a given area of anything will, over time, become much more versed in the given area.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To ignore this is to ignore science. The brain unfortunately is unable to retain everything it encounters. It recalls what is valid and valuable at a given moment yet even that storage diminishes over time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would tend to agree with you that ownership to a specific module or compartment within the larger code base will generally produce better results. Would someone leaving without any notice hinder the success? Certainly. But pretending that everyone within the team should have the same amount of knowledge with regards to the code base is naive and does nothing to better the code; it attempts to protect the code. Protecting the code is the role of the business for obvious reasons. The lengths of effort a business will go to in protecting the code can often become detrimental just the same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't make sure every player on your team can play quarterback do you? I would argue that making sure ever team member has a stake across the code base is along the same lines as trying to get every player within your team to play quarterback at a satisfactory level...it does not add up. Do you have backups? Sure you do...but team members should have an identity within the team. Believing everyone is the same is asking for pain of a different sort...&lt;/p&gt;&#xA;" OwnerUserId="3289" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-01-04T05:33:47.817" LastActivityDate="2011-01-04T05:33:47.817" CommentCount="4" />
  <row Id="33468" PostTypeId="1" CreationDate="2011-01-03T23:31:15.210" Score="2" ViewCount="167" Body="&lt;p&gt;Sorry if this is a naive title. I am trying to break into web development. I have taken a basic intro to OS, intro to Networking as part of my bachelors degree several years ago. I cannot say that we went into things deeply, beyond academic assignments. I would like to understand things much better regarding to this specific task (e.g what goes on in at the OS level, at networking level, what are other computers involved, where do proxy servers and hackers come in). Again, at the very basic level this has been covered, but I would like to review this specific thing better. Are there chapter(s) os a specific book, or specific SHORT reading that you recommend? I have nothing against your list of 20 favorite books, but I want to understand this one thing better in 2-3 weeks of reading after work / on the weekends (realistically 5-10 hrs per week, so I am looking for about 15-20 hrs of reading material, NO MORE). I am not a fast reader :) Thanks.&lt;/p&gt;&#xA;" OwnerUserId="934" LastEditorUserId="934" LastEditorDisplayName="" LastEditDate="2011-01-04T01:35:28.457" LastActivityDate="2011-01-04T07:00:26.983" Title="What are all things that do/can happen when a user enters in a web page's URL?" Tags="&lt;web-applications&gt;&lt;reading&gt;&lt;networking&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="2" />
  <row Id="33469" PostTypeId="2" ParentId="33468" CreationDate="2011-01-03T23:54:27.403" Score="3" ViewCount="" Body="&lt;p&gt;To answer the specific question in your title, the term you're looking for is &quot;web page life cycle&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms178472.aspx&quot; rel=&quot;nofollow&quot;&gt;This page&lt;/a&gt; describes the cycle for an ASP.NET page. The terms are general (for the most part), but the details of the actions are specific for ASP.NET.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2011-01-03T23:54:27.403" CommentCount="2" />
  <row Id="33470" PostTypeId="2" ParentId="9465" CreationDate="2011-01-04T00:01:08.833" Score="0" ViewCount="" Body="&lt;p&gt;I recommend (in no particular order) ...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.cerebrata.com/Products/CloudStorageStudio/Default.aspx&quot; rel=&quot;nofollow&quot;&gt;Cloud Storage Studio&lt;/a&gt; -- worth every penny and then some&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.sqlazurelabs.com/&quot; rel=&quot;nofollow&quot;&gt;SQL Azure Labs&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.microsoft.com/visualstudio/en-us/products/2010-editions/ultimate&quot; rel=&quot;nofollow&quot;&gt;Visual Studio Ultimate&lt;/a&gt; for &lt;a href=&quot;http://blogs.msdn.com/b/jnak/archive/2010/05/27/using-intellitrace-to-debug-windows-azure-cloud-services.aspx&quot; rel=&quot;nofollow&quot;&gt;IntelliTrace in Azure&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/windowsazure/cc974146&quot; rel=&quot;nofollow&quot;&gt;SDK&lt;/a&gt; of course :)&lt;/li&gt;&#xA;&lt;li&gt;Juval has &lt;a href=&quot;http://idesign.net/idesign/DesktopDefault.aspx?tabindex=5&amp;amp;tabid=11#ServiceBus&quot; rel=&quot;nofollow&quot;&gt;tons of amazing stuff&lt;/a&gt; at &lt;a href=&quot;http://idesign.net/idesign/DesktopDefault.aspx&quot; rel=&quot;nofollow&quot;&gt;IDesign&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Lots of &lt;a href=&quot;http://www.codeplex.com/site/search?TagName=azure&quot; rel=&quot;nofollow&quot;&gt;good stuff&lt;/a&gt; on codeplex related to Azure&lt;/li&gt;&#xA;&lt;li&gt;Great examples and code at &lt;a href=&quot;http://www.fabrikamshipping.com/&quot; rel=&quot;nofollow&quot;&gt;Fabrikam Shipping SaaS&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9251" LastActivityDate="2011-01-04T00:01:08.833" />
  <row Id="33471" PostTypeId="2" ParentId="33436" CreationDate="2011-01-04T00:03:02.207" Score="9" ViewCount="" Body="&lt;p&gt;Ah, the stories I could tell, but I won't bore you: don't play the lottery with your earnings. Stock options can be gravy, but &lt;strong&gt;the most likely outcome is that they'll be worth nothing.&lt;/strong&gt; This even happens when the company is successful, if at any point they need to dilute the options pool. Business is complicated and strange, even if you think you're savvy. Diluting the options pool is just one of variety of techniques that can be used to separate you from any possible earnings. More common techniques include just going out of business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you &lt;strong&gt;really know what you're doing with options&lt;/strong&gt; (and most of the people I've worked with who thought they did, did not), don't take a job that doesn't pay you enough to make it worth your while.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've always thought that a company that had a bright future &lt;strong&gt;can leverage that future with savvy investors to be able to pay me the money I need to build that future for them.&lt;/strong&gt; In other words, if the idea is &lt;strong&gt;that good&lt;/strong&gt; and the track record is &lt;strong&gt;that strong,&lt;/strong&gt; why don't they have the cash to pay me? They can't close a decent angel, A, B or C round? Then they don't know how to sell, which means that you should not be buyin' either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What percentage of developers who have actually taken this bet have won? I'd bet it's less than 1%, if you exclude those who got paid a decent salary AND took the bet, since that's not your case.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastEditorUserId="4688" LastEditorDisplayName="" LastEditDate="2011-01-04T03:03:14.397" LastActivityDate="2011-01-04T03:03:14.397" CommentCount="2" />
  <row Id="33472" PostTypeId="2" ParentId="33446" CreationDate="2011-01-04T00:18:50.923" Score="3" ViewCount="" Body="&lt;p&gt;This is going to sound silly, but one thing that really puts things into perspective is to look at how many lines a typical plain text book downloaded off &lt;a href=&quot;http://www.gutenberg.org/wiki/Main_Page&quot; rel=&quot;nofollow&quot;&gt;Project Gutenberg&lt;/a&gt; takes up.  For example, even &lt;em&gt;War and Peace&lt;/em&gt;, as an 80-column plain text file, is only about 65,000 lines.  If you're working on a 100k line project, this puts into perspective the non-triviality of comprehending this much information and makes you realize the importance of simply taking your time.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2011-01-04T00:18:50.923" CommentCount="1" />
  <row Id="33473" PostTypeId="2" ParentId="33460" CreationDate="2011-01-04T00:22:37.837" Score="1" ViewCount="" Body="&lt;p&gt;I am thinking the company owns the code, not the team and not the individual.  After all, that is what we are getting paid for, right?&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2011-01-04T00:22:37.837" CommentCount="2" />
  <row Id="33474" PostTypeId="1" CreationDate="2011-01-04T00:25:09.403" Score="5" ViewCount="277" Body="&lt;p&gt;I work in web development, that involves a lot of smaller custom projects rather than one large product. Requirements and specifications are always coming from outside the company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We've setup a ticket tracking system (Active Collab, which is rubbish compared to redmine btw) and given access to clients so they can submit issues. The idea being that less time is taken up with long phone conversations and emails. I think it can work really well if done right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However I'm not so sure it's always a good thing. Feature requests have gone up a lot on some projects. The system also needs to be friendly to non-developers while having the many features that developers use. Developers' tickets do not always map 1-to-1 with the tickets clients will create.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the requirements and broader tickets need to be separated from the more specific developer (specification) related tickets. Perhaps we could use two systems, one for clients to submit their requirements or describe a bug, and one for developers to create tickets like &lt;code&gt;implement method x in class y&lt;/code&gt;. Maybe this can be achieved by structuring tickets into more appropriate categories or creating sub-tickets under a feature request ticket. I've briefly looked into Pivotal Tracker and it has a fundamentally different workflow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;tl;dr&lt;/strong&gt; How do you keep technical tickets (developer jargon) separate from client tickets (layperson language).&lt;/p&gt;&#xA;" OwnerUserId="5678" LastEditorUserId="5678" LastEditorDisplayName="" LastEditDate="2011-01-04T01:52:32.853" LastActivityDate="2011-01-09T08:34:18.900" Title="Interacting with clients using project management systems" Tags="&lt;project-management&gt;&lt;communication&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="4" />
  <row Id="33475" PostTypeId="2" ParentId="33397" CreationDate="2011-01-04T00:27:34.583" Score="0" ViewCount="" Body="&lt;p&gt;I like &lt;a href=&quot;http://www.simplyhired.com/&quot; rel=&quot;nofollow&quot;&gt;SimplyHired&lt;/a&gt; -- &lt;a href=&quot;http://www.simplyhired.com/a/jobs/list/q-software+developer/l-san+francisco,+ca/mi-50&quot; rel=&quot;nofollow&quot;&gt;something like this&lt;/a&gt;.  Also remember, just because a listing is not for an entry level position, it does not mean you should not try and contact that recruiter.  Often times, they will tell you you're not right for a given position, but that they have other positions that are available that you might be better suited for.  Also, try and avoid agencies, they are generally a waste of time -- stick with principals at companies, you will get better results.&lt;/p&gt;&#xA;" OwnerUserId="9251" LastActivityDate="2011-01-04T00:27:34.583" />
  <row Id="33476" PostTypeId="2" ParentId="33468" CreationDate="2011-01-04T00:29:42.490" Score="3" ViewCount="" Body="&lt;p&gt;&quot;Web development&quot; is a very broad term, as I think you understand by breaking down some of the layers. Given your background, I think you should look at &lt;a href=&quot;http://www.theshulers.com/whitepapers/internet_whitepaper/index.html&quot; rel=&quot;nofollow&quot;&gt;this page&lt;/a&gt;. It should give you more vocabulary to find out what you want to study next. That covers the &quot;web&quot; portion. As you find out more, the &quot;development&quot; portion will become clearer. A little more than half-way down that page is a line answering your question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;When you type a URL into a web browser, this is what happens:&lt;/p&gt;&#xA;  &#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;&lt;p&gt;If the URL contains a domain name, the browser first connects to a domain name server and retrieves the corresponding IP address for the web server.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;The web browser connects to the web server and sends an HTTP request (via the protocol stack) for the desired web page.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;The web server receives the request and checks for the desired page. If the page exists, the web server sends it. If the server cannot find the requested page, it will send an HTTP 404 error message. (404 means 'Page Not Found' as anyone who has surfed the web probably knows.)&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;The web browser receives the page back and the connection is closed.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;The browser then parses through the page and looks for other page elements it needs to complete the web page. These usually include images, applets, etc.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;For each element needed, the browser makes additiona&#xA;  l connections and HTTP requests to the server for each element.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;li&gt;&lt;p&gt;When the browser has finished loading all images, applets, etc. the page will be completely loaded in the browser window.&lt;/p&gt;&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="12317" LastEditorUserId="12317" LastEditorDisplayName="" LastEditDate="2011-01-04T00:40:21.957" LastActivityDate="2011-01-04T00:40:21.957" CommentCount="1" />
  <row Id="33477" PostTypeId="1" CreationDate="2011-01-04T00:41:25.427" Score="2" ViewCount="323" Body="&lt;p&gt;Hi all..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm in the first month of work in a new company.. and after I met the two programmer's and asked how things are organized in terms of projects inside the company, they simply shrug their shoulders, and said that nothing is organized.. I think my jaw hit the ground that same time.. ( I know some, of you think I should quit, but I'm on a privileged position, I'm the most experienced there, so there's room for me to grow inside the company, and I'm taking the high road )..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I talked to the IT guy, and one of the programmers, and maybe this week I'm going to get a server all to myself to start organizing things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've used various architectures in my previous work experiences, on one I was developing in a server on the network ( no source control of course ).. another experience I had was developing in my local computer, with no server on the network, just source control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And at home, I have a mix of the two, everything I code is on a server on the network, and I have those folders under source control, and I also have a no-ip account configured on that server so I can access it everywhere and I can show the clients anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me I think this last solution ( the one I have at home ) is the best:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Network server with WAMP stack.&lt;/li&gt;&#xA;&lt;li&gt;The server as a public IP so we can access it by domain name. And use subdomains for each project.&lt;/li&gt;&#xA;&lt;li&gt;Everybody works directly on the network server.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think the problem arises, when two or more people want to work on the same project, in this case the only way to do this is by using source control and local repositories, this is great, but I think this turns development a lot more complicated. In the example I gave, to make a change to the code, I would simply need to open the file in my favorite editor, make the change, alter the database, check in the changes into source control and presto all done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using local repositories, I would have to get the latest version, run the scripts on the local database to update it, alter the file, alter the database, check in the changes to the network server, update the database on the network server, see if everything is running well on the network server, and presto all done, to me this seems overcomplicated for a change on a simple php page. I could share the database for the local development and for the network server, that sure would help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe the best way to do this is just simply:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Network server with WAMP stack ( test server so to speak ), public server accessible trough the web.&lt;/li&gt;&#xA;&lt;li&gt;WAMP stack on every developer computer ( minus the database )&lt;/li&gt;&#xA;&lt;li&gt;We develop locally, test, then check in the changes into the server test and presto.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What do you think? Maybe I should start doing this at home..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks and best regards...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: I'm sorry I made a mistake and switched WAMP with LAMP, sorry about that..&lt;/p&gt;&#xA;" OwnerUserId="12314" LastEditorUserId="12314" LastEditorDisplayName="" LastEditDate="2011-01-04T21:44:11.417" LastActivityDate="2011-01-04T21:44:11.417" Title="Best development architecture for a small team of programmers ( WAMP Stack )" Tags="&lt;web-development&gt;&lt;best-practices&gt;&lt;work-environment&gt;&lt;architecture&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="4" />
  <row Id="33478" PostTypeId="1" AcceptedAnswerId="33487" CreationDate="2011-01-04T00:49:45.553" Score="1" ViewCount="223" Body="&lt;p&gt;I'm a Java developer in charge of making a product which allows clients to &quot;build their own site&quot;.  I've spent a lot of time looking into Liferay, as I don't have any experience in building CMSs, and want to either use it, or get ideas of how to build a decent system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The time line is short, requirements are vague, yada yada&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is Liferay a good technology to work with when showing the client (who may be very low on computer expertise) a user interface to build a site?  The thing is, I want the power and flexibility to avoid the learning curve in building a CMS like product, but I don't want to waste time learning a new technology only to find its over-kill, or can't do the simple - but uncommon and unimplemented - things that we are asked to add as features&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally I'd like to provide multiple web interfaces to the core API to build the sites - one that is very powerful, and another that is watered down and easy to use.&lt;/p&gt;&#xA;" OwnerUserId="5349" LastActivityDate="2011-01-04T14:29:52.437" Title="&quot;Build your own website&quot; - Developing a CMS with Vague Requirements on a Tight Deadline" Tags="&lt;java&gt;&lt;cms&gt;&lt;deadlines&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="33479" PostTypeId="2" ParentId="33477" CreationDate="2011-01-04T01:02:05.507" Score="1" ViewCount="" Body="&lt;p&gt;Trust me, you don't want to be developing straight off the server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm in the process of moving our development strategy from something rather similar to what you describe to something that causes me significantly less stress (since I double as the system administrator).  A key part of this is &lt;a href=&quot;http://vagrantup.com/&quot; rel=&quot;nofollow&quot;&gt;Vagrant&lt;/a&gt;, a nifty little tool that makes it easy to distribute base virtual machines and then spawn up new copies of those at will.  The plan is to have a clone of the server built in a vm; when testing new features, etc., developers can test on &lt;em&gt;that&lt;/em&gt;, rather than the server itself, preventing conflicts and unexpected downtimes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I make changes to the server, I'll make the same changes to the base vm image, and I think developers will rsync their copy with that (to avoid having to redownload the whole thing).  This isn't quite in place yet, so I can't vouch for this being the best method.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find using a distributed VCS (git in particular) to be quite helpful.  There are a bunch of cool things that I've gotten rather used to (&lt;code&gt;git-stash&lt;/code&gt;, for instance), but as far as working with other people, the functionality to email a patch to someone else is really quite nice; if you have direct access to their machine, you can pull straight from it, which is even better.  This allows me to easily look at another dev's changes without him committing them to our canonical repository, which I'd prefer to keep stable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using something like &lt;a href=&quot;http://fabfile.org/&quot; rel=&quot;nofollow&quot;&gt;Fabric&lt;/a&gt; eliminates most of the pain with &quot;log in to the server, update code, restart Apache&quot; and that sort of thing.&lt;/p&gt;&#xA;" OwnerUserId="12319" LastActivityDate="2011-01-04T01:02:05.507" CommentCount="4" />
  <row Id="33480" PostTypeId="2" ParentId="33460" CreationDate="2011-01-04T01:18:50.030" Score="4" ViewCount="" Body="&lt;p&gt;I think you need both, because there is a tension between both approaches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If for any piece of code there is only one person who can work on it, that's really bad in the long term for the company, especially as/if it grows, because each developer becomes a point of failure. On the other hand, individual code ownership (hopefully) enables faster delivery time, because developer generally prefer that approach (incentive), because the developer knows the code very well, etc... There is also a time issue: it should be possible to reallocate developers on specific projects depending on business needs, but if you do it on a daily basis, that's horrible (if only because developers hate it, but also because the switch cost is just too heavy, and you spend most of your time doing nothing).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMO, one role of a manager is to find a good balance between both. Code review, coding standards, standardize on a set of tools should also help diminishing the poinf of failure issue. After all, the main point of maintainable code is to tackle this issue.&lt;/p&gt;&#xA;" OwnerUserId="6139" LastEditorUserId="6139" LastEditorDisplayName="" LastEditDate="2011-01-04T01:44:31.557" LastActivityDate="2011-01-04T01:44:31.557" />
  <row Id="33481" PostTypeId="2" ParentId="1302" CreationDate="2011-01-04T01:30:36.887" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://github.com/&quot; rel=&quot;nofollow&quot;&gt;GitHub&lt;/a&gt; is a fantastic place to find both useful code and other programmers; it's not really designed for asking questions or reading articles, however.&lt;/p&gt;&#xA;" OwnerUserId="12319" LastActivityDate="2011-01-04T01:30:36.887" CommunityOwnedDate="2011-01-04T01:30:36.887" />
  <row Id="33482" PostTypeId="2" ParentId="1302" CreationDate="2011-01-04T01:41:21.713" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/387797/good-programming-website-like-stack-overflow/907126#907126&quot;&gt;&lt;strong&gt;Here's my complete list&lt;/strong&gt;&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need to discuss stuff SO doesn't allow and don't feel like using a chat site, go with &lt;a href=&quot;http://www.daniweb.com/&quot; rel=&quot;nofollow&quot;&gt;daniweb&lt;/a&gt;. Code-project is great for samples but their forums aren't that great IMHO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;dreamincode and devshed are ok, along with many others listed in my link. Sitepoint is good, but web-dev related only.&lt;/p&gt;&#xA;" OwnerUserId="1220" LastActivityDate="2011-01-04T01:41:21.713" CommunityOwnedDate="2011-01-04T01:41:21.713" />
  <row Id="33483" PostTypeId="2" ParentId="13091" CreationDate="2011-01-04T01:42:19.823" Score="0" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;if ((byteArrayVariable != null)&#xA; &amp;amp;&amp;amp; (byteArrayVariable.Length != 0)) {&#xA;    //Do something with byteArrayVariable &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;but that's basically the second option.&lt;/p&gt;&#xA;" OwnerUserId="12319" LastActivityDate="2011-01-04T01:42:19.823" />
  <row Id="33484" PostTypeId="2" ParentId="29428" CreationDate="2011-01-04T01:54:56.523" Score="1" ViewCount="" Body="&lt;p&gt;I find that the reasons for starting a project are often listed on either the project's &quot;About&quot; page or the corresponding Wikipedia article.&lt;/p&gt;&#xA;" OwnerUserId="12319" LastActivityDate="2011-01-04T01:54:56.523" />
  <row Id="33485" PostTypeId="2" ParentId="33460" CreationDate="2011-01-04T02:01:34.970" Score="4" ViewCount="" Body="&lt;p&gt;I don't know that individual code &lt;em&gt;ownership&lt;/em&gt; is a good idea.  At least not in the sense that people can say &quot;This is my code, and I'll do what I want with it&quot;.  Maybe it's better to say that you should have individual code &lt;em&gt;managership&lt;/em&gt;:  the code should be owned by the team, but there's one particular person the team delegates responsibility and authority over it to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason for this being that if it's everyone's responsibility, then it's no one's responsibility.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastEditorUserId="1626" LastEditorDisplayName="" LastEditDate="2011-01-04T21:31:42.167" LastActivityDate="2011-01-04T21:31:42.167" />
  <row Id="33486" PostTypeId="2" ParentId="33474" CreationDate="2011-01-04T02:12:51.720" Score="3" ViewCount="" Body="&lt;h2&gt;The Two System Approach&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I currently use the two system approach.  We use&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://otrs.org/&quot; rel=&quot;nofollow&quot;&gt;OTRS&lt;/a&gt; - Help desk so users can submit issues.  Many of them aren't very technical, so there are issues coming in that could be a bug or could be user error that we can just tell them how to do what they can't seem to figure out. (There are much better ticket systems out there. Use what flavor suits you.)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/vstudio/ff637362&quot; rel=&quot;nofollow&quot;&gt;Team Foundation Server 2010&lt;/a&gt; - This is our bug tracking/task/feature request server.  If an issue comes in via OTRS, then we create a new bug in TFS and note the associated OTRS ID (and copy the history into the bug description/notes).  If the OTRS ticket is something that looks like a feature, then we pursue that in the ticket.  Once we have enough information to properly create a bug, task, or feature request in TFS and understand how critical it is, due dates, and have enough requirements, then we create one.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;We keep users up to date through the ticket system along the way as needed.  Once we've completed a bug fix or feature and release it, then we update the ticket system as completed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This works well for my team, as we only have a small handful of developers.  However, this hides technical details from users that might get see it and mentally &quot;check out&quot;, while at the same time allowing a technical filter so that &quot;silly&quot; requests don't make it into the true feature tasks (and so a developer doesn't accidentally work on something that hasn't been approved).&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2011-01-04T02:12:51.720" CommentCount="2" />
  <row Id="33487" PostTypeId="2" ParentId="33478" CreationDate="2011-01-04T02:26:33.327" Score="6" ViewCount="" Body="&lt;p&gt;If you have such vague requirements and a tight deadline, I'd probably look for an already built open source CMS that may meet the clients requirements. You have two issues here to consider that may cause you trouble in the long term if you wanna go on with the project given that 1) you have vague requirements (which is pretty normal I guess, most clients don't know what they want) and 2) a tight deadline. If you really think you can do it, go ahead. But be careful not to deliver something half-baked and unpolished. The client will not appreciate that, after you have agreed to do it on such terms.&lt;/p&gt;&#xA;" OwnerUserId="11041" LastEditorUserId="11041" LastEditorDisplayName="" LastEditDate="2011-01-04T02:31:35.600" LastActivityDate="2011-01-04T02:31:35.600" CommentCount="4" />
  <row Id="33488" PostTypeId="1" AcceptedAnswerId="33493" CreationDate="2011-01-04T02:28:48.493" Score="1" ViewCount="183" Body="&lt;p&gt;I am a freelance programmer just getting started. I have been running the last 6 months just as a sole prop. I am beginning to wonder if this is wise or if I had maybe better consider LLC or something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am working alone and generally have a good relationship with my clients. I'm not asking for legal advice, I have a basic understanding of the advantages of the different setups, but rather for some experienced suggestions. Is an LLC worth the effort for just guy working by himself? What &quot;on the ground&quot; (not tax) advantages would I have as an LLC? Am I wide open to be sued as a sole prop?&lt;/p&gt;&#xA;" OwnerUserId="202" LastActivityDate="2011-01-04T03:23:12.717" Title="Entity type for freelance programmer" Tags="&lt;career&gt;&lt;legal&gt;&lt;freelance&gt;" AnswerCount="3" CommentCount="5" />
  <row Id="33489" PostTypeId="2" ParentId="33460" CreationDate="2011-01-04T02:32:19.610" Score="3" ViewCount="" Body="&lt;p&gt;Specialization is fine - for a large codebase this may in the long run save quite a bit of time of communication - but ownership isn't. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I mean, is that the attitude should be that the &lt;em&gt;team&lt;/em&gt; has a bug, and nobody should say that &quot;oh, only X can touch that code, so it is not my problem&quot;.  If you are part of the team, it is also your responsibility to fix bugs in the whole code base if you can, and do it properly.  Person X may be the best choice to do so, but anybody should be expected to do so if they had to do it.  This naturally requires the code to be written in a way that &lt;em&gt;allows&lt;/em&gt; and &lt;em&gt;invites&lt;/em&gt; team members to work with it.   Having gnarly code will prohibit this, so strive for crystal clear, simple code, since that allows most developers to work with it.  You may want to go with peer review to &lt;em&gt;keep&lt;/em&gt; it that way.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2011-01-04T02:32:19.610" />
  <row Id="33490" PostTypeId="2" ParentId="29428" CreationDate="2011-01-04T02:52:34.087" Score="3" ViewCount="" Body="&lt;h1&gt;GCC&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Was started by Richard Stallman because he needed one in order to create his GNU system.  Later grew into a large scale development effort with a lot of both frontends and backends.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;X&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Was started on MIT because they needed a graphics system which could run a program on one machine, which could be used from another machine.   Due to license and early presence it has grown into being universally available on Unix-based platforms.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Linux kernel&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Was started by Linus Torvalds because he needed an alternative to Minix.  Got critical mass as he decided to leverage the internet to allow other people to work on the code, and orchestrated the results back into the Linux kernel with a very frequent release scheme.   The usage of the GPL helped in this because people knew that what they donated would always be usable to them.  Note that other Unix systems exist with more liberal licenses but less involvment of non-core developers.  They don't do quite as well.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Java&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Originally a language designed to be downloadable and the downloaded code to be programatically verified to be &lt;em&gt;trustable&lt;/em&gt; for settop boxes.  Later evolved into a fully specified language which then got a head start by being supported by the first Netscape browsers.  &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2011-01-04T02:52:34.087" />
  <row Id="33491" PostTypeId="2" ParentId="33488" CreationDate="2011-01-04T03:13:39.967" Score="1" ViewCount="" Body="&lt;p&gt;I believe just for the legal protection you should NOT be a sole proprietor.  LLC was designed for a simple corporation to protect small business owners from legal assaults from business operations.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure if a single owner can qualify for a LLP, but if possible I believe that is an even easier type of liability protection.  But you should have some sort of incorporation so that any of your clients can't sue you literally out of your home.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I worked for an S corporation that was my parents and I can tell you, it makes an unholy mess of your taxes since your personal property can be wrapped up in the corp (although still protected, i think).&lt;/p&gt;&#xA;" OwnerUserId="9479" LastActivityDate="2011-01-04T03:13:39.967" />
  <row Id="33492" PostTypeId="2" ParentId="33488" CreationDate="2011-01-04T03:19:07.073" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What &quot;on the ground&quot; (not tax) advantages would I have as an LLC?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Separate business and personal expenses.&lt;/li&gt;&#xA;&lt;li&gt;Protects personal assets in the event the LLC gets sued.&lt;/li&gt;&#xA;&lt;li&gt;Credibility from being a company rather than being just some dude.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Am I wide open to be sued as a sole prop?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You can get sued either way. The LLC just protects your personal assets. Confer with an attorney for more specifics.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Is an LLC worth the effort for just guy working by himself?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If you feel it's too much effort, you might try an umbrella firm. I was a contractor once for a bank that introduced me to &lt;a href=&quot;http://www.axelon.com/&quot; rel=&quot;nofollow&quot;&gt;Axelon&lt;/a&gt;, which handled billing, tax withholding, benefits, etc. You should be able to find similar umbrellas if you ask other contractors in your industry.&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2011-01-04T03:19:07.073" />
  <row Id="33493" PostTypeId="2" ParentId="33488" CreationDate="2011-01-04T03:23:12.717" Score="2" ViewCount="" Body="&lt;p&gt;The best answer I've seen regarding LLCs and legal issues is Java Developer 101's:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Link: &lt;a href=&quot;http://programmers.stackexchange.com/questions/5160/how-does-a-one-person-isv-handle-software-patent-research-what-due-dilligence-i/23957#23957&quot;&gt;How does a one-person ISV handle software patent research?  What due-dilligence is required?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Specifically, forming an LLC will only protect your personal assets (your house, your car etc) from being used to satisfy a lawsuit brought against you by anyone who sues you; it will NOT protect all your hard work and company assets of code, chairs, computers, intellectual property, customer lists etc etc, which will become the property of the person suing you, should they win and force you into bankruptcy, which is what would happen.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Let's assume you &lt;em&gt;will&lt;/em&gt; be sued. Would you rather &lt;em&gt;you&lt;/em&gt; lose everything, or your business is obliterated and loses everything and you just lose your business assets?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Start an LLC.&lt;/p&gt;&#xA;" OwnerUserId="5570" LastActivityDate="2011-01-04T03:23:12.717" />
  <row Id="33494" PostTypeId="2" ParentId="33458" CreationDate="2011-01-04T04:03:37.910" Score="10" ViewCount="" Body="&lt;p&gt;Be aware that some native C++ developers (including ones I know on the Visual C++ team) do not care for the word &quot;unmanaged&quot; - it suggests that managed code is the default. Many C++ developers see the older and still vibrant native code as the default, and managed code as the variant. With that caveat, use either &quot;native&quot; or &quot;unmanaged&quot; for C++ that makes a traditional Windows DLL or EXE (or LIB, for that matter), and C++/CLI for C++ that makes a managed assembly to run under the CLR. Try not to say Managed C++ unless you mean that thing with the double underscores that we try not to talk about (you almost certainly don't.) Try also not to say C++-CLI or other strangely punctuated variants.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And while you're at it, for your native C++ you might want to start distinguishing between C++0x and older C++, or whether you're using MFC, ATL, or the newer no-MFC approach, plus whether you're into STL or even the template meta-programming stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are lots of flavours of C++. That's why it's been so successfull. :-)&lt;/p&gt;&#xA;" OwnerUserId="285" LastEditorUserId="285" LastEditorDisplayName="" LastEditDate="2011-01-04T15:26:08.680" LastActivityDate="2011-01-04T15:26:08.680" CommentCount="2" />
  <row Id="33495" PostTypeId="2" ParentId="32425" CreationDate="2011-01-04T04:20:36.070" Score="3" ViewCount="" Body="&lt;p&gt;You need &lt;strong&gt;real world experience!!&lt;/strong&gt;. No book can teach you that!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to learn how to read others code, how to maintain it, how to hate them ( both the code and the coder ) how to improve it, how to think you can do it better and a few months later shout out loud &lt;em&gt;I'll kill who ever wrote this pieces of code!!!&lt;/em&gt; Only to find out in the source version control it was you!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to understand books are very specific and some times for people who already know how to develop software.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I would suggest you to find some programming job. If needed, apply for the most basic entry level. Probably you won't earn as much as you think you deserve, but use a few months to learn how software is developed in the real-world ( and it is not always as perfect and with all those beautiful  best practices we read in the web, many times, code quality is very low, depending on where do you work, but that's part of the experience ) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep reading your books, you'll find out, every year you understand a little bit more ( or differently ) the same topic, because you can see it know with the glass of experience. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you manage to get a job with talented developers, much better. Learn from them, don't be afraid to make mistakes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Until you have to fix your first live-production urgent bug, you won't know what software bug is!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;:) &lt;/p&gt;&#xA;" OwnerUserId="82" LastActivityDate="2011-01-04T04:20:36.070" CommunityOwnedDate="2011-01-04T04:20:36.070" />
  <row Id="33496" PostTypeId="2" ParentId="27656" CreationDate="2011-01-04T04:22:59.990" Score="1" ViewCount="" Body="&lt;p&gt;Adding to the already good list, a way I have found to locate potential employers is to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;find a section of the city you perform (in google maps) and to search for related terms. This should return a list of companies in the area&lt;/li&gt;&#xA;&lt;li&gt;Open the websites for those companies and look for a careers page, etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For example, &lt;a href=&quot;http://www.google.com.au/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=Sydney+software&amp;amp;sll=-33.853644,151.072691&amp;amp;sspn=0.290249,0.617294&amp;amp;ie=UTF8&amp;amp;hq=software&amp;amp;hnear=Sydney+New+South+Wales&amp;amp;ll=-33.857017,151.212044&amp;amp;spn=0.072559,0.154324&amp;amp;z=13&quot; rel=&quot;nofollow&quot;&gt;here is Sydney for &quot;Software&quot;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This can help you find jobs not posted as well as determine the employers actually behind the job adverts from recruiters.&lt;/p&gt;&#xA;" OwnerUserId="2673" LastActivityDate="2011-01-04T04:22:59.990" CommentCount="1" />
  <row Id="33498" PostTypeId="1" AcceptedAnswerId="33505" CreationDate="2011-01-04T04:42:13.023" Score="7" ViewCount="133" Body="&lt;p&gt;I am looking at a small (~70kLOC including generated) C# (.NET 4.0, some Silverlight) code-base that has very low test coverage.  The code itself works in that it has passed user acceptance testing, but it is brittle and in some areas not very well factored.  I would like to add solid unit test coverage around the legacy code using the usual suspects (NMock, NUnit, StatLight for the Silverlight bits).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My normal approach is to start working through the project, unit testing &amp;amp; refactoring, until I am satisfied with the state of the code.  I've done this many times in the past, and it's worked well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, this time I'm thinking of using a test generator (in particular &lt;a href=&quot;http://research.microsoft.com/en-us/projects/pex/&quot; rel=&quot;nofollow&quot;&gt;Pex&lt;/a&gt;) to create the test framework, then manually fleshing it out.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is: have you used unit test generators in the past when commencing work on a legacy codebase, and if so, would you recommend them?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My fear is that the generated tests will miss the semantic nuances of the code-base, leading to the dreaded situation of having tests for the sake of the coverage metric, rather than tests which clearly express the intended behaviour in code.&lt;/p&gt;&#xA;" OwnerUserId="11292" LastActivityDate="2011-01-04T05:41:11.960" Title="Have unit test generators helped you when working with legacy code?" Tags="&lt;unit-testing&gt;&lt;legacy&gt;" AnswerCount="1" FavoriteCount="3" />
  <row Id="33499" PostTypeId="2" ParentId="1302" CreationDate="2011-01-04T04:44:28.373" Score="-2" ViewCount="" Body="&lt;p&gt;I have experience with using Delphi online community.&lt;/p&gt;&#xA;" OwnerUserId="10111" LastActivityDate="2011-01-04T04:44:28.373" CommunityOwnedDate="2011-01-04T04:44:28.373" />
  <row Id="33500" PostTypeId="1" CreationDate="2011-01-04T04:59:30.363" Score="6" ViewCount="818" Body="&lt;p&gt;I am using HP mini 210 - 1085tu(1.66 Ghz Atom, 1GB RAM and 160 HDD) for programming purpose&#xA;I have installed VS2010, Oracle and everything is working ok.&#xA;Shall i go for more powerful machine or its an adequate system. &#xA;In future i am gonna work in :&#xA;C#, ASP.Net, C++&lt;/p&gt;&#xA;" OwnerUserId="12323" LastActivityDate="2011-01-05T04:12:08.953" CommunityOwnedDate="2011-01-04T17:45:13.047" ClosedDate="2011-01-05T09:47:27.697" Title="Is Netbook adequate for programming?" Tags="&lt;productivity&gt;" AnswerCount="21" CommentCount="7" />
  <row Id="33501" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T05:13:55.370" Score="3" ViewCount="" Body="&lt;p&gt;You wont be able to run anything 64bit on it since the atom is a 32bit processor. Apart from that the only limiting factor could be screen resolution.&#xA;Netbooks are awesome for hacking on something on say, a bus or a train. &lt;/p&gt;&#xA;" OwnerUserId="12324" LastActivityDate="2011-01-04T05:13:55.370" CommunityOwnedDate="2011-01-04T17:45:13.047" CommentCount="1" />
  <row Id="33502" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T05:14:13.623" Score="6" ViewCount="" Body="&lt;p&gt;It will work but VS2010 will run pretty slowly. You really need more RAM especially.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2011-01-04T05:14:13.623" CommunityOwnedDate="2011-01-04T17:45:13.047" />
  <row Id="33503" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T05:38:06.843" Score="2" ViewCount="" Body="&lt;p&gt;If you can hook it up to 3 monitors I may be slow but could get the job done.  You may also need small fingers or a usb Keyboard but by this time I would just go with a fast laptop and and a dock.&lt;/p&gt;&#xA;" OwnerUserId="11972" LastActivityDate="2011-01-04T05:38:06.843" CommunityOwnedDate="2011-01-04T17:45:13.047" CommentCount="2" />
  <row Id="33504" PostTypeId="2" ParentId="9465" CreationDate="2011-01-04T05:41:11.890" Score="0" ViewCount="" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a nice list of storage management tools available @ &lt;a href=&quot;http://blogs.msdn.com/b/windowsazurestorage/archive/2010/04/17/windows-azure-storage-explorers.aspx&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com/b/windowsazurestorage/archive/2010/04/17/windows-azure-storage-explorers.aspx&lt;/a&gt;. You may want to check it out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from that, we've nice set of tooling available for managing Azure Storage, Services, and Diagnostics (apologies for shameless product plugin :)):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cloud Storage Studio - For managing Azure Storage and Hosted Services using a WPF based GUI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Azure Diagnostics Manager - For managing Azure Diagnostics including configuring diagnostics on the fly using a WPF based GUI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Azure Management Cmdlets - For managing Azure Storage, Services, Diagnostics, SQL Azure including backing up your storage accounts data and SQL Azure data using PowerShell cmdlets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Gaurav Mantri&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cerebrata&lt;/p&gt;&#xA;" OwnerUserId="12325" LastActivityDate="2011-01-04T05:41:11.890" />
  <row Id="33505" PostTypeId="2" ParentId="33498" CreationDate="2011-01-04T05:41:11.960" Score="5" ViewCount="" Body="&lt;p&gt;I would suggest looking at things a little differently. Adding new unit test code to an existing application without incident might not give you the best results. If you are doing this to get familiar with the code base or you truly have time to kill and want to test out test generators then ignore my comments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To be pragmatic, you should look through all the bug lists. Then create unit tests for each of the bugs, resulting in how it should of behaved. Ideally, you would only add new code for each bug as you reach it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Times to add unit test code:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Adding new functionality&lt;/li&gt;&#xA;&lt;li&gt;Re-factored code&lt;/li&gt;&#xA;&lt;li&gt;Fixed a bug&lt;/li&gt;&#xA;&lt;li&gt;Learning what the code does&lt;/li&gt;&#xA;&lt;li&gt;Prove a bug exists&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It is difficult to quantify the value of adding unit tests after the fact. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I normally don't allow myself to write answers that are against what the asker wants, but I feel this is a good lesson to pass along.&lt;/p&gt;&#xA;" OwnerUserId="11828" LastActivityDate="2011-01-04T05:41:11.960" CommentCount="2" />
  <row Id="33506" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T05:45:42.050" Score="8" ViewCount="" Body="&lt;p&gt;sure - if you use it to remote into a desktop system!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2011-01-04T05:45:42.050" CommunityOwnedDate="2011-01-04T17:45:13.047" CommentCount="4" />
  <row Id="33507" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T05:49:51.320" Score="0" ViewCount="" Body="&lt;p&gt;Because of the low RAM (even 2 GB is pushing it) VS2010 and any other IDE (Eclipse and Netbeans for Java) will run slowly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, laptops and netbooks are great for hacking together scripts and smaller projects that only require text editors (if you're working with ASP.NET you might experiment on HTML/CSS/JS).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I've hacked together scripts on my 1 hour commutes to work with my laptop, and returned to app development when I got to my work computer. If I get any ideas for work, I sometimes note them down using the text editor as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I use &lt;a href=&quot;http://macromates.com/&quot; rel=&quot;nofollow&quot;&gt;Textmate&lt;/a&gt; on my mac laptop and &lt;a href=&quot;http://www.flos-freeware.ch/notepad2.html&quot; rel=&quot;nofollow&quot;&gt;Notepad2&lt;/a&gt; (i.e. the &lt;a href=&quot;http://code.google.com/p/notepad2-mod/&quot; rel=&quot;nofollow&quot;&gt;Notepad2-Mod&lt;/a&gt; fork to be more specific) on my windows laptop. I usually hack javascript and python scripts with them.&lt;/p&gt;&#xA;" OwnerUserId="1683" LastActivityDate="2011-01-04T05:49:51.320" CommunityOwnedDate="2011-01-04T17:45:13.047" />
  <row Id="33508" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T05:52:58.657" Score="26" ViewCount="" Body="&lt;p&gt;Netbooks:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Are slow. &lt;a href=&quot;http://programmers.stackexchange.com/questions/13623/does-giving-a-developer-a-slower-development-machine-result-in-faster-more-effici&quot;&gt;Nobody should code on a slow machine&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Have very little screen estate. &lt;a href=&quot;http://programmers.stackexchange.com/questions/13731/will-large-screen-increase-develop-productivity&quot;&gt;Ideally you want a lot of screen estate&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Have small, cramped keyboards. &lt;a href=&quot;http://programmers.stackexchange.com/questions/1588/what-is-better-for-coding-desktop-or-laptop&quot;&gt;Worse than laptop keyboards&lt;/a&gt;, which are a significant problem for many members of the community. YMMV.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Basically, according to past answers in this community, a netbook is the antithesis of a good development machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Program on a desktop. If you need mobility, a laptop would be better than a netbook (more power, larger screen and keyboard), and have an external keyboard and monitor at your workstation you can hook up to when you're there.&lt;/p&gt;&#xA;" OwnerUserId="5570" LastEditorUserId="5570" LastEditorDisplayName="" LastEditDate="2011-01-05T03:50:36.363" LastActivityDate="2011-01-05T03:50:36.363" CommunityOwnedDate="2011-01-04T17:45:13.047" CommentCount="6" />
  <row Id="33509" PostTypeId="1" AcceptedAnswerId="33518" CreationDate="2011-01-04T05:54:29.673" Score="3" ViewCount="593" Body="&lt;p&gt;In-place sorting is essentially swapping elements without using extra storage, correct?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How can I find the minimum number of swaps required for a list?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;A C D Q R Z   E   // input&#xA;| | | &amp;gt; &amp;gt; &amp;gt; &amp;lt;&amp;lt;&amp;lt;   // movement&#xA;A C D E Q R   Z   // output&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Swapping:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;A C D Q R Z E&#xA;&#xA;swap Q with E, ACDERZQ&#xA;swap R with Q, ACDEQZR&#xA;swap R with Z, ACDEQRZ. done.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;3 swaps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Shifting items left or right is essentially swapping, but I want the optimal number for plucking an item out of line and switching its place with another.&lt;/p&gt;&#xA;" OwnerUserId="5904" LastActivityDate="2011-05-07T21:53:43.313" Title="How do I figure out the minimum number of swaps to sort a list in-place?" Tags="&lt;sorting&gt;&lt;list&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="1" />
  <row Id="33511" PostTypeId="2" ParentId="33509" CreationDate="2011-01-04T06:06:49.407" Score="0" ViewCount="" Body="&lt;p&gt;Not exactly, additional memory may be used but it is of constant size. computational complexity depends on the algorithm used.&lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-04T06:06:49.407" CommentCount="2" />
  <row Id="33513" PostTypeId="2" ParentId="33509" CreationDate="2011-01-04T06:42:55.947" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;You are asking two completely different questions.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or at the very least, you seem to think the amount of memory used has something to do with the speed, which isn't true.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In-place sorts just have a memory efficiency of 1 in Big O notation. That means: no matter how large the list, they'll still use the same amount of extra memory.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Optimum number of swaps&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;There are plenty of fast sorting algorithms (see &lt;a href=&quot;http://en.wikipedia.org/wiki/Sorting_algorithm&quot; rel=&quot;nofollow&quot;&gt;this comparison list&lt;/a&gt;): particularly &lt;a href=&quot;http://en.wikipedia.org/wiki/Heapsort&quot; rel=&quot;nofollow&quot;&gt;Heapsort&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Quicksort&quot; rel=&quot;nofollow&quot;&gt;Quicksort&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Merge_sort&quot; rel=&quot;nofollow&quot;&gt;Merge sort&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Timsort&quot; rel=&quot;nofollow&quot;&gt;Timsort&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Smoothsort&quot; rel=&quot;nofollow&quot;&gt;Smoothsort&lt;/a&gt;. Out of these only Heapsort has a memory efficiency of 1 and it isn't always fastest.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each algorithm will have varying efficiency depending on the list being sorted, so the speed always depends on the list and algorithm used. All you can do to measure the optimum number of swaps required to sort a list is to run it through each of those and record which one performed the fewest swaps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is only useful for academic research, though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In practice if you're interested only in efficient sorting, you should already see that &lt;em&gt;you can only see how fast it is to sort a list after it's already sorted&lt;/em&gt; so there's no benefit gained in testing before sorting. Just pick a search algorithm and stick with it: sometimes it will be the best choice, sometimes it won't. If you're only interested in sorts with memory efficiency 1 you've already got your answer: use Heapsort.&lt;/p&gt;&#xA;" OwnerUserId="5570" LastEditorUserId="5570" LastEditorDisplayName="" LastEditDate="2011-01-04T08:02:49.373" LastActivityDate="2011-01-04T08:02:49.373" />
  <row Id="33514" PostTypeId="2" ParentId="33468" CreationDate="2011-01-04T07:00:26.983" Score="3" ViewCount="" Body="&lt;p&gt;Well, as with most things in computers, it's a lot of relatively simple concepts stitched together. To understand it fairly deeply (but not EE-deep, since I don't go there), you could start by learning these networking concepts:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.faqs.org/rfcs/rfc1180.html&quot; rel=&quot;nofollow&quot;&gt;TCP/IP&lt;/a&gt; - since it's how the various players will talk to each other; you could learn Ethernet too - since you are likely on an Ethernet network, but that falls further into EE world. The OSI model may be a useful primer if you're not familiar with it already.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.faqs.org/rfcs/rfc1035.html&quot; rel=&quot;nofollow&quot;&gt;DNS&lt;/a&gt; - since it's how what the user types in gets translated to IP addresses for the TCP/IP calls. Circularly enough, it's also implemented in IP - which is why it's second. It's the application layer in the OSI model.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.w3.org/Protocols/rfc2616/rfc2616.html&quot; rel=&quot;nofollow&quot;&gt;HTTP&lt;/a&gt; - since it's the application layer (there's that OSI model again) that will be used between the client and the web server.&lt;/li&gt;&#xA;&lt;li&gt;HTTP variations and standards, for the proxy server and hacker issues&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.ietf.org/rfc/rfc2965.txt&quot; rel=&quot;nofollow&quot;&gt;Cookies&lt;/a&gt; - An easily understood, common attach point&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.ietf.org/rfc/rfc2068.txt&quot; rel=&quot;nofollow&quot;&gt;Proxy servers&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.ietf.org/rfc/rfc2246.txt&quot; rel=&quot;nofollow&quot;&gt;SSL/TLS&lt;/a&gt; - This can get complicated, since you're dealing with cryptography. You may want to start with &lt;a href=&quot;http://en.wikipedia.org/wiki/Transport_Layer_Security#Security&quot; rel=&quot;nofollow&quot;&gt;Wikipedia's TLS entry&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For things like these (general Internet standards), the actual RFCs are gold. They can be dry, they can be vague, and they may not 100% reflect shipping products - but they are the best general technical resource IMO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As usual, Wikipedia is a great &lt;a href=&quot;http://en.wikipedia.org/wiki/Internet_Protocol_Suite&quot; rel=&quot;nofollow&quot;&gt;first-level resource for all of this as well&lt;/a&gt;. It'll tell you the basics, and generally link you to the correct RFCs (RFCs have a habit of being updated, superseded, not implemented, etc. so the quick Google searches I did are likely to be somewhat incorrect).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The OS side is a bit harder. Since it's not a &quot;standard&quot;, there's no published reference to any of it. And, even better, different OS will do things slightly differently. I'm mainly a Windows guy - I learn this type of stuff from blogs; Mark Russinovich and Raymond Chen are the 2 best guys I know of to give you this seriously technical stuff.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;OS execution - terribly complicated, you could spend years on this topic. For the purpose of web apps, it's probably enough to know the basics of &lt;a href=&quot;http://www.ualberta.ca/CNS/RESEARCH/LinuxClusters/mem.html&quot; rel=&quot;nofollow&quot;&gt;memory models&lt;/a&gt; and maybe a little bit of &lt;a href=&quot;http://en.wikipedia.org/wiki/Assembly_language&quot; rel=&quot;nofollow&quot;&gt;assembly language&lt;/a&gt; to understand how the web server and browser will do their jobs.&lt;/li&gt;&#xA;&lt;li&gt;Pick a webserver, and it's processing model. I'm a Windows guy, &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms524901%28v=vs.90%29.aspx&quot; rel=&quot;nofollow&quot;&gt;so here's IIS.&lt;/a&gt; Since every webserver will have an extension model, it's likely that what's happening after the initial request is that it's passed to another program. So, you'll have the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms525172%28v=vs.90%29.aspx&quot; rel=&quot;nofollow&quot;&gt;transfer&lt;/a&gt; of the request, and then you can dive into the &lt;a href=&quot;http://dotnetslackers.com/articles/iis/ASPNETInternalsIISAndTheProcessModel.aspx&quot; rel=&quot;nofollow&quot;&gt;extensions processing model&lt;/a&gt;. At the end of the day, they'll all buffer up a string of HTML to send back over HTTP to the client.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Speaking of HTML, now you need to know the &lt;a href=&quot;http://www.w3.org/TR/1999/REC-html401-19991224/&quot; rel=&quot;nofollow&quot;&gt;rules&lt;/a&gt; for that (&lt;a href=&quot;http://www.w3.org/TR/2008/REC-CSS2-20080411/&quot; rel=&quot;nofollow&quot;&gt;and CSS&lt;/a&gt;) so that you know what the browser does to parse it into visual elements. Oh - and since this all shows in a GUI program, you can now start down the road of &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms632590%28VS.85%29.aspx&quot; rel=&quot;nofollow&quot;&gt;message loops&lt;/a&gt; and &lt;a href=&quot;http://edn.embarcadero.com/article/38447&quot; rel=&quot;nofollow&quot;&gt;input handling&lt;/a&gt;. It really never ends - one of the greatest (and worst) things about this profession.&lt;/p&gt;&#xA;" OwnerUserId="12328" LastActivityDate="2011-01-04T07:00:26.983" />
  <row Id="33515" PostTypeId="2" ParentId="33509" CreationDate="2011-01-04T07:02:00.070" Score="0" ViewCount="" Body="&lt;p&gt;Most Algorithm listed in Wikipedia is optimized as constant space used, fewest iteration (comparison or code executed-wise). Maybe there are swap-optimized algorithm exists, but not in my knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is a quick solution I come up in mind. (Not Optimal, but good enough answers. You may need to enumerate the solution tree if you need optimal)&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Identify misplaced node, Let the count be M (Our worst case scenario)&lt;/li&gt;&#xA;&lt;li&gt;Run Several Algorithm and mark the swap they need, cut off if their swap &gt; M&lt;/li&gt;&#xA;&lt;li&gt;Update the minimum M for different algorithm&lt;/li&gt;&#xA;&lt;li&gt;Repeat to 4, until you satisfy&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="12098" LastActivityDate="2011-01-04T07:02:00.070" />
  <row Id="33516" PostTypeId="1" CreationDate="2011-01-04T07:20:56.523" Score="0" ViewCount="51" Body="&lt;p&gt;Why business process integration solutions are important to business enterprises?&lt;/p&gt;&#xA;" LastActivityDate="2011-01-04T07:51:47.997" ClosedDate="2011-01-04T13:08:07.370" Title="Why business process integration solutions are important to business enterprises?" Tags="&lt;business&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="33517" PostTypeId="1" AcceptedAnswerId="33543" CreationDate="2011-01-04T07:26:38.140" Score="2" ViewCount="215" Body="&lt;p&gt;What are the best practices for exception handling in n-tier applications?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The application is a &lt;a href=&quot;http://en.wikipedia.org/wiki/Fat_client&quot; rel=&quot;nofollow&quot;&gt;fat client&lt;/a&gt; based on MVVM pattern with .NET framework.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2011-01-04T11:30:08.923" LastActivityDate="2011-01-04T11:30:08.923" Title="What are the best practices for exception handling in n-tier applications?" Tags="&lt;best-practices&gt;&lt;programming&gt;&lt;c#&gt;&lt;architecture&gt;&lt;mvvm&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="33518" PostTypeId="2" ParentId="33509" CreationDate="2011-01-04T07:33:38.270" Score="4" ViewCount="" Body="&lt;p&gt;Consider the problem of manipulating a list into a different state where you know the end state.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Find each 'enclosed subgraph' bigger than one (I'll explain this later on).&lt;/li&gt;&#xA;&lt;li&gt;Find the sum of the lengths of the subgraphs and subtract the number of subgraphs.&lt;/li&gt;&#xA;&lt;li&gt;There's your answer for the number of swaps.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;An 'enclosed subgraph' is a minimal subset of the whole where each item in the initial list is also in the end list.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you construct a subgraph with the indices 4,5 and 9 from the initial state and they have the values 10, 20 and 30 then for it to be an 'enclosed subgraph', you should be able to find the values from the end state with the indices 4, 5 and 9 and those values should be 10, 20 and 30 (though not necessarily in that order).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;a b c d f e&#xA;    |&#xA;    v&#xA;b a d f c e&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This would obviously take 3 swaps. (a &amp;lt;=&gt; b, c &amp;lt;=&gt; d, c &amp;lt;=&gt; f)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Applying the algorithm above, it has:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;3 'enclosed subgraphs', ([a,b],&#xA;[c,d,f], [e])&lt;/li&gt;&#xA;&lt;li&gt;2 subgraphs with more than one item ([a,b], [c,d,f])&lt;/li&gt;&#xA;&lt;li&gt;There are 5 items in all those subgraphs&lt;/li&gt;&#xA;&lt;li&gt;5 - 2 == the answer.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It becomes a little more difficult when you want to do the minimal number of swaps to get it into sorted order, however, it is not impossible.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Find the sorted order index of each item in the list, if you don't want to move any data, then this is n^2 time.&lt;/li&gt;&#xA;&lt;li&gt;Find the 'enclosed subgraphs'.&lt;/li&gt;&#xA;&lt;li&gt;Swap items in the list to get to the correct order, but only swap items within the same subgraph.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So, I hope you can see it's not impossible to do the minimal number of swaps to get to sorted order, but it's not worth it, because it requires a ridiculous number of comparisons. Just use heapsort.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastEditorUserId="10037" LastEditorDisplayName="" LastEditDate="2011-01-04T08:18:47.543" LastActivityDate="2011-01-04T08:18:47.543" CommentCount="3" />
  <row Id="33520" PostTypeId="2" ParentId="33516" CreationDate="2011-01-04T07:51:47.997" Score="0" ViewCount="" Body="&lt;p&gt;They are not. What is important for companies is how they are organized and run, to make sure they are run efficiently. In this area there are many buzzwords and many highly payed consultants, and one of those buzzwords are &quot;Business Process Integration&quot;, which basically means that you try to organize the processes and data so that they are consistent over the whole company, which generally is a good idea.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some software vendors try to capitalize on that buzzword by calling their software &quot;Business Process Integration Solutions&quot;, but as there is no official definition of that is, anyone can claim their software is just that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is important is that the company is well organized and that people can share information and get information. This does get very hard when the company becomes big, but that does not mean that &quot;Business Process Integration Solutions&quot; are important, it just means it's important that the company has the software and systems to help the company run smoothly. If that solution calls itself a &quot;Business Process Integration Solutions&quot; or not is irrelevant.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2011-01-04T07:51:47.997" />
  <row Id="33521" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T07:56:37.773" Score="2" ViewCount="" Body="&lt;p&gt;If it's working OK for you, it's working OK for you. Only you can decide what's good or bad in that situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, the screen is small and the keyboard sucks, but you can use an external screen and external keyboard. If you write complex software you might note that compiletime/loadtime take so much time that you lose focus and start reading your mail or Stackoverflow during compiles, and that's dreadful for productivity. Then you need a faster machine.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2011-01-04T07:56:37.773" CommunityOwnedDate="2011-01-04T17:45:13.047" />
  <row Id="33522" PostTypeId="2" ParentId="33517" CreationDate="2011-01-04T08:08:50.257" Score="1" ViewCount="" Body="&lt;p&gt;This seems to be a pretty hard question, I asked &lt;a href=&quot;http://stackoverflow.com/questions/242587/exception-handling-architecture&quot;&gt;about the same&lt;/a&gt; at stackoverlfow and &lt;a href=&quot;http://nedbatchelder.com/text/exceptions-in-the-rainforest.html&quot; rel=&quot;nofollow&quot;&gt;this article&lt;/a&gt; came closest to what I wanted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifics for MVVM I haven't seen. &lt;/p&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2011-01-04T08:08:50.257" />
  <row Id="33523" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T08:28:37.717" Score="0" ViewCount="" Body="&lt;p&gt;It depends on you, the size and language (compiled or interpreted) of your project and your text editor/IDE. Can you deal with the screen and keyboard? Does the project take too long to compile? (if it needs compiling). Is the IDE responsive?&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2011-01-04T08:28:37.717" CommunityOwnedDate="2011-01-04T17:45:13.047" />
  <row Id="33524" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T08:32:44.997" Score="0" ViewCount="" Body="&lt;p&gt;I use Netbeans in my Acer One AOA150 with no problem (I turn off unused extensions). Dual boot of Windows7/Ubuntu. I used it also for OpenGL dev under linux, also with no problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Netbooks are quite convenient if:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You travel/go out a lot&lt;/li&gt;&#xA;&lt;li&gt;You already have a desktop&lt;/li&gt;&#xA;&lt;li&gt;You spend periods of less than 2 hours in the machine&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If not, maybe it would be better if you get a bigger laptop.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2011-01-04T08:32:44.997" CommunityOwnedDate="2011-01-04T17:45:13.047" />
  <row Id="33525" PostTypeId="2" ParentId="33446" CreationDate="2011-01-04T08:37:47.657" Score="0" ViewCount="" Body="&lt;p&gt;Alot of people have already talked about how to approach the technical aspect of fixing badly written code.  While that is certainly useful, I would first start by addressing the source of the problem.  The person(s) responsible for writing the code.  However, this is where it get's tricky, because you may not have the seniority/position to be able to effect a change.  You also run the risk of making yourself an enemy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having been a lead developer for awhile I comfortable pulling people aside and asking for an explanation for the state of the code.  The reasons generally fall into 1 of 3 categories:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Legitimate Reasons: Time constraints, moving targets, etc.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Approach your boss and explain the the cost of continuing.  Disparate issues such as moving targets, changing priorities and time constraints are almost always related to a single issue, usually in the development/project management process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Ignorance/Inexperience: Didn't know the better way/correct way&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Practice mentoring your fellow devs.  Explain, but do not dictate the correct way of writing the piece of code.   Show them the problems your running into so they understand the cost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Bad Reasons: Didn't care, unprofessional, etc.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this is a consistent reason and they are a source of crappy code then fire them with cause.  Or find another job.&lt;/p&gt;&#xA;" OwnerUserId="7575" LastActivityDate="2011-01-04T08:37:47.657" />
  <row Id="33526" PostTypeId="1" AcceptedAnswerId="33530" CreationDate="2011-01-04T08:40:29.777" Score="29" ViewCount="530" Body="&lt;p&gt;So I just started freelancing both in desktop/web development and this client who already accepted my work, and payed me keeps coming back at me each time he finds a bug etc. And I have found myself spending more time than I thought fixing them for free. Is this alright, or should I start charging a support fee?&#xA;Which is the best way to deal with fixes on a supposedly accepted and completed work?&lt;/p&gt;&#xA;" OwnerUserId="5793" LastActivityDate="2011-01-04T13:17:05.790" Title="Who should pay for fixes/bugs?" Tags="&lt;bugs&gt;&lt;freelance&gt;&lt;client&gt;&lt;support&gt;&lt;work-time&gt;" AnswerCount="7" CommentCount="5" FavoriteCount="8" />
  <row Id="33527" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T08:53:22.450" Score="0" ViewCount="" Body="&lt;p&gt;I use my netbook only as a tool when I'm doing on-call-duty, it's good enough to log into a remote machine and do a quick fix for a problem (e.g. update something in the database or restart a service). Never ever would I consider using it for professional programming. Too slow, screen too small... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if you are a student and about to learn programming, those limits might be less of a problem and the advantages (cheap, easy to carry around between campus and home) might be convincing.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastEditorUserId="6617" LastEditorDisplayName="" LastEditDate="2011-01-04T09:32:24.257" LastActivityDate="2011-01-04T09:32:24.257" CommunityOwnedDate="2011-01-04T17:45:13.047" />
  <row Id="33528" PostTypeId="2" ParentId="33526" CreationDate="2011-01-04T08:54:14.113" Score="2" ViewCount="" Body="&lt;p&gt;Generally you can go for a free support for fixed number of days after you deliver the application. Certainly a life time free support is not possible/unacceptable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure the bug raised is a BUG and not a change to existing feature. For any feature change you should charge.&lt;/p&gt;&#xA;" OwnerUserId="156" LastActivityDate="2011-01-04T08:54:14.113" />
  <row Id="33529" PostTypeId="2" ParentId="33526" CreationDate="2011-01-04T08:54:16.347" Score="2" ViewCount="" Body="&lt;p&gt;If he tested it and signed it off, you could argue that he should pay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you pride and value your work, you could argue that you would fix the code. Learn from the experiences and build better code next time, more efficiently. Or factor in more profit to cover bug-fixing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the program does something undesirable or unexpected given the inputs, then it's a bug, and should be fixed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could have quoted for the support fee up front as an extra to the initial development work.&lt;/p&gt;&#xA;" OwnerUserId="178" LastActivityDate="2011-01-04T08:54:16.347" />
  <row Id="33530" PostTypeId="2" ParentId="33526" CreationDate="2011-01-04T08:55:54.760" Score="31" ViewCount="" Body="&lt;p&gt;Part of your contract should describe acceptance tests i.e. tests that the client will do and your application needs to pass them for the contract to be fulfilled. Anything not covered by these tests is client's responsibility. Anything covered by them is yours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because it is not possible (especially for a non-technical client) to forsee all possible issues, you should add into your contact a clause specifying a period, when you will fix any new issues as part of a contract. After that, you should offer only paid support.&lt;/p&gt;&#xA;" OwnerUserId="11785" LastActivityDate="2011-01-04T08:55:54.760" CommentCount="3" />
  <row Id="33531" PostTypeId="2" ParentId="33526" CreationDate="2011-01-04T09:00:15.927" Score="9" ViewCount="" Body="&lt;p&gt;It depends.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the first instance you should pay as it can be argued that the work isn't complete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Later on the customer should be paying for continued support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the problem is in deciding where the boundary is and what constitutes a bug and what's a new feature. Having requirements and/or acceptance tests goes a long way to defining this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You really need to get these things in place before you deliver the work, but if you haven't then perhaps now is the time so say - &quot;I'll support this for free for the next N days/weeks, but after that &lt;em&gt;we&lt;/em&gt; need to discuss a support contract&quot; (note my emphasis on &quot;we&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having said all that though, there are times when you will need to fix a bug for free and take the hit. If nothing else it builds up good will.&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2011-01-04T09:00:15.927" CommentCount="1" />
  <row Id="33532" PostTypeId="1" AcceptedAnswerId="33537" CreationDate="2011-01-04T09:13:44.260" Score="3" ViewCount="359" Body="&lt;p&gt;When programming, what naming conventions do you use for your variables? I don't mean when the name of the variable should be obvious; ie. sum, total, first, last. But when you name variables that don't really fit into a category/obvious structure, what sort of names do you use? Is it, myVar1 or test1 or variable1, etc...?&lt;/p&gt;&#xA;" OwnerUserId="8622" LastActivityDate="2011-01-07T19:58:22.107" Title="Naming conventions for variables" Tags="&lt;programming-languages&gt;&lt;variable-naming&gt;&lt;conventions&gt;" AnswerCount="6" FavoriteCount="3" />
  <row Id="33533" PostTypeId="1" CreationDate="2011-01-02T23:34:56.883" Score="1" ViewCount="129" Body="&lt;p&gt;I am starting a new iOS project and initially plan release a simple free version to gather feedback. I don't intend to monetize or market this initial version. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I believe &quot;Version 2&quot; of this app will be good enough to pay for. I would prefer to release Version 2 as an upgrade from Version 1 rather than release it as a separate app. This way I can reserve a name for the app. It will also be easier to keep everything in a single repository. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there any downsides of this approach? It's my understanding that I can change the price of an app at any point in time, so it shouldn't be an issue transitioning to a paid app, should it? &lt;/p&gt;&#xA;" LastActivityDate="2011-01-04T09:23:06.223" Title="Release an upgraded iOS app with a different revenue model" Tags="&lt;iphone&gt;&lt;ios&gt;&lt;itunesconnect&gt;&lt;marketing&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="33534" PostTypeId="2" ParentId="33533" CreationDate="2011-01-02T23:58:33.660" Score="3" ViewCount="" Body="&lt;p&gt;There's no reason why you can't take this approach.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I assume you realise that those who have downloaded the version while it was free will get the later versions for free too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you say, you can [usually] change the price within a few hours, and that can be up as well as down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure you have your paid App agreements in place with Apple before you wish to charge for the App, of course.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-04T09:23:06.223" />
  <row Id="33535" PostTypeId="2" ParentId="33533" CreationDate="2011-01-03T02:06:33.733" Score="2" ViewCount="" Body="&lt;p&gt;The downside is that a free app may attract a lot of 1-star ratings and incoherent reviews from drive-by downloaders.  If your paid app is an upgrade of this free app, all those prior ratings and reviews will still be associated with the app.  It often works out better to update the free app to an app named &quot;LITE&quot;, and then reuse the app's name on a completely new app submission.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And it's quite easy to build multiple apps from multiple targets inside one Xcode project checked out from one repository.&lt;/p&gt;&#xA;" OwnerUserId="9742" LastActivityDate="2011-01-04T09:23:06.223" CommentCount="1" />
  <row Id="33536" PostTypeId="2" ParentId="33533" CreationDate="2011-01-03T18:47:55.543" Score="1" ViewCount="" Body="&lt;p&gt;Free apps (and even 99-cent apps) tend to attract a lot of negative reviews from people who might not have even read the app description, and those reviews will linger (and likely outnumber) your eventual paid app reviews.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is almost always better to keep the free version free, and the paid version paid from the start.  There are some marketing advantages to occasionally having a &quot;free this week only&quot; sale, but any drops to free should be for a limited time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally - I've found 99-cents to be nearly as bad as free when it comes to negative reviews.  When people pay more, they value it more.  We are making just as much at $1.99 right now, and getting fewer troll-like reviews.&lt;/p&gt;&#xA;" OwnerUserId="12228" LastActivityDate="2011-01-04T09:23:06.223" />
  <row Id="33537" PostTypeId="2" ParentId="33532" CreationDate="2011-01-04T09:27:50.967" Score="20" ViewCount="" Body="&lt;p&gt;There always must be a purpose for a variable, otherwise you can leave it out and you don't need a name. So use it's name to identify the purpose for a variable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;e.g. I sometimes introduce variables for the sole purpose of keeping a value that needs to be returned. I might call that variable returnValue&#xA;e.g. sometimes it is a temporary for a different variable, I might use tempUserName&lt;/p&gt;&#xA;&#xA;&lt;p&gt;hope this helps.&lt;/p&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2011-01-04T09:27:50.967" CommentCount="6" />
  <row Id="33538" PostTypeId="2" ParentId="33532" CreationDate="2011-01-04T09:29:09.250" Score="0" ViewCount="" Body="&lt;p&gt;Two scenarios I can think of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;When adding (hacking) functionality in already messy code (for some reason this happens a lot in TYPO3 extensions) I tend to prefix my variables with my initials (&lt;code&gt;$jgXxx&lt;/code&gt;). That makes me pretty confident that I'm not introducing conflicts in PHP code that I don't even &lt;em&gt;want&lt;/em&gt; to understand.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When I just need a placeholder I usually use the prefix &lt;code&gt;$tmpXxx&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="12335" LastActivityDate="2011-01-04T09:29:09.250" CommentCount="2" />
  <row Id="33539" PostTypeId="2" ParentId="33526" CreationDate="2011-01-04T09:40:44.157" Score="2" ViewCount="" Body="&lt;p&gt;In your contract, specify a per-hour rate and keep track of your time.  When you give your client the price, specify that this is an estimate and the actual result may be less or more.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep the client up to date on the progress, and when he inevitably makes suggestions, you can simply tell him the time it will take you (if change is outside original specifications) and he can decide whether the change is worth the money.  Therefore only changes important to him will be added.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would personally cover acceptable vs unacceptable (paid support vs free support) bugs in the contract, and that way you at least have something in writing from the get go.  He will undoubtedly wonder why you should need that clause, so be upfront and explain that if a new OS update comes out that breaks something, that isn't free support.  However, bugs in your code according to the original specification on the specified platforms would be covered.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, I should mention I have only done freelance IT work rather than programming.  This could possibly scare off clients, but just make sure your work sells itself, be more professional, outgoing, and helpful than the rest, and be forthcoming with your reasons for having a more strict contract.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides, a client who won't accept that clause is most likely a bad client.&lt;/p&gt;&#xA;" OwnerUserId="12337" LastActivityDate="2011-01-04T09:40:44.157" />
  <row Id="33540" PostTypeId="2" ParentId="29918" CreationDate="2011-01-04T09:47:40.520" Score="0" ViewCount="" Body="&lt;p&gt;It's a bit out of date now (regarding some specs), but I originally dove in using &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1861004958&quot; rel=&quot;nofollow&quot;&gt;Professional JSP&lt;/a&gt; by Wrox.  It is by no means a cookbook, but it presented how the different pieces plug together very well using a few good, legit examples.  For a true cookbook, O'Reilly always delivers with the &lt;a href=&quot;http://oreilly.com/catalog/9780596005726&quot; rel=&quot;nofollow&quot;&gt;Java Servlet and JSP Cookbook&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: I'm partial to Wrox professional series as they don't waste text assuming you don't know how to program or compose software. It's just the nitty-gritty of exposing a specific technology. They are true to their for-programmers-by-programmers slogan.&lt;/p&gt;&#xA;" OwnerUserId="1579" LastActivityDate="2011-01-04T09:47:40.520" />
  <row Id="33542" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T09:53:43.367" Score="0" ViewCount="" Body="&lt;p&gt;My experience with the laptop was good, but I prefer desktop for development. Main issue for me is the small screen and tiny keyboard. Moreover playing games in between is clumsy due to small keys on keyboard. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2011-01-04T09:53:43.367" CommunityOwnedDate="2011-01-04T17:45:13.047" />
  <row Id="33543" PostTypeId="2" ParentId="33517" CreationDate="2011-01-04T09:57:48.357" Score="1" ViewCount="" Body="&lt;p&gt;The only advice I can give is that the exception and overall error handling should be taken care at the design level, and not at the implementation level. Making sure that at least a proper framework is at place for error-handling is important. Adding exception code later, most probably will need the design change and hence many changes in the code than expected. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2011-01-04T09:57:48.357" CommentCount="1" />
  <row Id="33544" PostTypeId="2" ParentId="33532" CreationDate="2011-01-04T10:00:02.360" Score="1" ViewCount="" Body="&lt;p&gt;I use snake_case for all my variables.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I try to make them nice and specific and without unnecessary abbreviation. e.g. file_id rather than fid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I am just testing something, I usually use the first letter of the type. e.g. If I'm in the Python interpreter, I'll use l for a list, s for string, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise I give it a descriptive name.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm going to steal jensgram's answer for avoiding conflicts though, good idea.&lt;/p&gt;&#xA;" OwnerUserId="12337" LastActivityDate="2011-01-04T10:00:02.360" />
  <row Id="33545" PostTypeId="2" ParentId="33509" CreationDate="2011-01-04T10:03:02.967" Score="0" ViewCount="" Body="&lt;p&gt;How about this: Every time you swap two elements at indices i and j you record that as a tuple (i,j) somewhere. Once the list is sorted you bust out an abstract algebra book and read up on permutations, more specifically transpositions. There is a canonical cycle decomposition for permutations and once you have the canonical decomposition you can go about figuring out how to extract a minimal set of transpositions from it. I'm thinking of a greedy algorithm where you expand each cycle into a minimal number of transpositions and there should really be only one way of doing this but I'm not sure if this will give the minimal number of transpositions overall. My abstract algebra is not as good as it used to be so you might try asking this question on cs theory stack as well.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2011-01-04T10:03:02.967" />
  <row Id="33546" PostTypeId="2" ParentId="33532" CreationDate="2011-01-04T10:06:58.407" Score="0" ViewCount="" Body="&lt;p&gt;If i really have to create variable which i do not need (because of language semantics), I use &lt;code&gt;_&lt;/code&gt;or &lt;code&gt;$_&lt;/code&gt; (depends of language). AFAIR it is proposed somewhere in python's PEPs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, as KeesDijk stated, every other variable has a purpose and should be named adequatly. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a convention to follow (one very common is to use i, j, k for loops, others can include names such as &lt;code&gt;tmp&lt;/code&gt;, &lt;code&gt;swap&lt;/code&gt; etc) stick to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I prefer not to use names like &lt;code&gt;tmp&lt;/code&gt; - they are not to descriptive. Use something  more clear, like 'rest_to_send', 'last_data_pointer' or 'current_vertice' instead ;)&lt;/p&gt;&#xA;" OwnerUserId="5351" LastActivityDate="2011-01-04T10:06:58.407" CommentCount="2" />
  <row Id="33547" PostTypeId="2" ParentId="272" CreationDate="2011-01-04T10:25:08.993" Score="0" ViewCount="" Body="&lt;p&gt;Director of Animal Husbandry&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Controller of the daemons of stupidity&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because thats what my job seems like 99% of the time.&lt;/p&gt;&#xA;" OwnerUserId="3314" LastActivityDate="2011-01-04T10:25:08.993" CommunityOwnedDate="2011-01-04T10:25:08.993" />
  <row Id="33548" PostTypeId="1" CreationDate="2011-01-04T10:35:01.943" Score="1" ViewCount="180" Body="&lt;p&gt;For some unholy reasons (New Year maybe?) I was charged  with listing all &quot;innovative things&quot; which my company is doing internally in IT. So, my first question is of course: &lt;strong&gt;what can be considered nowadays &quot;innovative&quot; in software&lt;/strong&gt;, in terms of&lt;/p&gt;&#xA;&#xA;&lt;p&gt;a/ &lt;strong&gt;technologies&lt;/strong&gt; - like, lets say, cloud computing was 10 years ago or facial recognition 15 years ago &lt;/p&gt;&#xA;&#xA;&lt;p&gt;b/ &lt;strong&gt;functionalities&lt;/strong&gt; - ie. migration of desktop application to web (last decade) or using voice to control computer (last century)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal focus is on web, but I am also curious of opinions from others domains.&lt;/p&gt;&#xA;" OwnerUserId="5351" LastEditorUserId="99" LastEditorDisplayName="" LastEditDate="2011-04-18T02:31:57.823" LastActivityDate="2011-04-18T02:31:57.823" ClosedDate="2011-01-04T12:58:27.367" Title="what technologies or functionalites can be considered as innovative nowadays?" Tags="&lt;software&gt;&lt;technology&gt;&lt;trends&gt;&lt;new-technology&gt;&lt;innovation&gt;" AnswerCount="3" />
  <row Id="33549" PostTypeId="2" ParentId="33526" CreationDate="2011-01-04T10:42:23.683" Score="7" ViewCount="" Body="&lt;p&gt;All of the answers given above are good. However, I'd add a few bullet points to consider:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Is the client valuable to you?&lt;/strong&gt; Sometimes it is worth going the extra few yards to keep a client happy if you feel they are valuable to you and will bring you more work in future. You need to find a balance between being strict and flexible and this may differ for each client. No point losing future work just because you are adamant that an easy-to-fix bug falls out of scope. On the other-hand, you don't want to let the client walk all over you. It's a delicate balance!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Is the bug something that could easily have been missed in user testing?&lt;/strong&gt; For instance, take a date-related bug that only comes into play when a certain year is entered (think Millennium bug etc). A client couldn't reasonably be expected to spot this during testing therefore the onus is on you to fix it.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="607" LastActivityDate="2011-01-04T10:42:23.683" CommentCount="1" />
  <row Id="33550" PostTypeId="2" ParentId="33548" CreationDate="2011-01-04T11:04:27.247" Score="1" ViewCount="" Body="&lt;p&gt;Before I read the body of your question my first reaction was to suggest migration of desktop applications to the web platform. Since you've suggested that yourself you're obviously on the right track.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a natural companion, creation of mobile versions (Android, iOS) of your internal applications can also be considered &quot;innovative&quot;.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2011-01-04T11:04:27.247" />
  <row Id="33551" PostTypeId="2" ParentId="33548" CreationDate="2011-01-04T11:10:43.093" Score="2" ViewCount="" Body="&lt;p&gt;It took up 10 years, but (real) &lt;strong&gt;mobile applications&lt;/strong&gt; are a rules changer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hardware &amp;amp; network is not mature enough to bring us with &lt;strong&gt;useful&lt;/strong&gt; applications &lt;strong&gt;anyone&lt;/strong&gt; can use.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-04T11:10:43.093" />
  <row Id="33552" PostTypeId="2" ParentId="29918" CreationDate="2011-01-04T11:12:28.720" Score="1" ViewCount="" Body="&lt;p&gt;For beginners to Web Programming the best one will be Head First JSP and Servlets. Follow that up with the Servlet specification and follow that up by Java Servlet n JSP cookbook by Oreilly.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2011-01-04T11:12:28.720" CommentCount="1" />
  <row Id="33553" PostTypeId="1" AcceptedAnswerId="33556" CreationDate="2011-01-04T11:12:48.127" Score="0" ViewCount="95" Body="&lt;p&gt;For some time now, I've run Firebug constantly enabled to do quick DOM inspections, leaving the Console and Script panels disabled.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm just starting to use these two features so I don't have to keep using alerts for testing and debugging. I enable them while I use them and turn them back off when I'm done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to know if these particular features can slow things down such that they shouldn't be left on round-the-clock. Like do they slow down page loads, use inordinate chunks of memory or something?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't see anything about it in the Firebug wiki.&lt;/p&gt;&#xA;" OwnerUserId="12206" LastEditorUserId="12206" LastEditorDisplayName="" LastEditDate="2011-01-04T13:04:15.553" LastActivityDate="2011-01-04T16:02:41.997" ClosedDate="2011-01-04T17:27:05.190" Title="Is it costly to leave the Console and Script features enabled in Firebug?" Tags="&lt;web-development&gt;" AnswerCount="3" CommentCount="2" />
  <row Id="33555" PostTypeId="2" ParentId="33532" CreationDate="2011-01-04T11:20:46.177" Score="9" ViewCount="" Body="&lt;p&gt;For me, these are the &lt;strong&gt;&lt;em&gt;basic rules&lt;/em&gt;&lt;/strong&gt; any convention should be based on: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Any convention chosen should make it easier to &lt;em&gt;read&lt;/em&gt; the code.&lt;/strong&gt;&lt;br&gt;&#xA;Each line of code is written once, but read dozens, hundreds, or thousands of times. So the time it takes to write a line of code is irrelevant, important is only how long it takes to read and understand a line of code. Any convention should have this in mind. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Be consistent.&lt;/strong&gt;&lt;br&gt;&#xA;The only thing worse than a mix of convention is no conventions at all, and the more conventions are mixed, the more the former approaches to the latter. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Don't invent your own convention&lt;/strong&gt;.&lt;br&gt;&#xA;Usually, you are programming as a part of a team, adding code to some project which has been around for a while. Stick to the team's or project's conventions.&lt;br&gt;&#xA;If you're doing a project alone, use a convention that's popular with your coworkers or common in your company's projects. Usually others will be joining in later or take over maintenance after you've left. Make them feel at home.&lt;br&gt;&#xA;If you are alone and don't have a team or projects to consider (how likely is that, unless you're doing stuff alone and for fun?), pick an existing convention. Prefer those which are common in whichever field you work. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The following are some specific conventions that I consider important. If I had to join a team or project where the conventions already settled upon explicitly violate any of these, I'd started to rebel and make a fuzz about it. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;em&gt;&lt;strong&gt;Variables&lt;/em&gt;&lt;/strong&gt; represent objects in the real world, so they should be named with a &lt;strong&gt;&lt;em&gt;noun&lt;/em&gt;&lt;/strong&gt;. &lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;&lt;strong&gt;Types&lt;/em&gt;&lt;/strong&gt; represent categories of objects in the real world, so they, too, should be named with a &lt;strong&gt;&lt;em&gt;noun&lt;/em&gt;&lt;/strong&gt;. &lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;&lt;strong&gt;Functions&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;methods&lt;/em&gt;&lt;/strong&gt; represent actions in the real world, so they should be named with a &lt;strong&gt;&lt;em&gt;verb&lt;/em&gt;&lt;/strong&gt;. &lt;/li&gt;&#xA;&lt;li&gt;Booleans should have an &quot;is&quot;, &quot;has&quot;, &quot;must be&quot; or something alike in their names. This is true for both boolean variables and functions/methods returning booleans. &lt;/li&gt;&#xA;&lt;li&gt;Don't encode types in names. Over the course of a decade of adding features and fixing bugs, types often change. It's clumsy, error-prone, and often quite impossible to change variable names accordingly. &lt;/li&gt;&#xA;&lt;li&gt;Avoid abbreviations except where they are really obvious and very common. (Yes, I know this one's quite fuzzy. Still, it had to be said.)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Whether you use &lt;code&gt;CamelCase&lt;/code&gt; or the &lt;code&gt;fake_space_style&lt;/code&gt;, whether identifiers should start with a capital letter or not, where to put braces etc., I have my own preferences about. But these I consider just that: personal preferences, easily overruled by team- or project-specific agreements. &lt;/p&gt;&#xA;" OwnerUserId="1512" LastEditorUserId="1512" LastEditorDisplayName="" LastEditDate="2011-01-07T19:58:22.107" LastActivityDate="2011-01-07T19:58:22.107" CommentCount="1" />
  <row Id="33556" PostTypeId="2" ParentId="33553" CreationDate="2011-01-04T11:21:52.603" Score="1" ViewCount="" Body="&lt;p&gt;I used to be that the jit would be disabled when it was open, but I'm not sure if that's the case with latter versions. Also, if it is generating html for viewing, then this will also use up memory and cputime.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2011-01-04T11:21:52.603" CommentCount="1" />
  <row Id="33557" PostTypeId="2" ParentId="33553" CreationDate="2011-01-04T11:52:05.147" Score="0" ViewCount="" Body="&lt;p&gt;I've not timed it but it certainly feels longer to load pages with a lot of script when firebug is turned on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know in earlier versions having firebug on when surfing would occasionally take out firefox completely as some pages seemed to crash firebug. I've not noticed this in recent versions however.&lt;/p&gt;&#xA;" OwnerUserId="7092" LastActivityDate="2011-01-04T11:52:05.147" CommentCount="0" />
  <row Id="33558" PostTypeId="2" ParentId="30956" CreationDate="2011-01-04T11:55:24.777" Score="1" ViewCount="" Body="&lt;p&gt;What do you consider a small local business? I've been surveying/working this market and it seems that mostly these guys need help with graphic/web design, and maybe some SEO &amp;amp; social media campaigns. Unless your SMBs are a lot more technically savvy than the ones around here, if you try to sell them &quot;Ruby&quot; on &quot;Rails&quot; they're going to slam the door in your face and say they're not interested in jewelery or trains. And if you want them to actually take the initiative in hosting, you've just added another barrier. What I see a lot of SMBs needing, is stuff along the lines of getting some excel files into their OS/390 to do some P&amp;amp;L statements, then wanting to produce online reports for their clients (for example)... Then you have to explain why you're charging 6x what they paid for their &lt;strong&gt;entire&lt;/strong&gt; database system + server.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-04T11:55:24.777" />
  <row Id="33559" PostTypeId="2" ParentId="33548" CreationDate="2011-01-04T12:14:23.427" Score="1" ViewCount="" Body="&lt;p&gt;What's innovative in a particular company isn't necessarily what's innovative elsewhere. If you discover that C# 4.0 isn't the best way to handle your applications, and decide to switch to Fortran 66, then within your company using Fortran 66 is an innovation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the goal here is presumably to get a list of impressive sounding jargon terms to use for marketing. Personally, I say you just look for a list of jargon terms, and pick out anything you think you can remotely justify that sounds reasonably new, impressive and bandwagon-ish.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You probably shouldn't worry too much about it. An overlong list gives the marketing people something to choose from, and no-one takes this stuff seriously anyway.&lt;/p&gt;&#xA;" OwnerUserId="8709" LastActivityDate="2011-01-04T12:14:23.427" CommentCount="1" />
  <row Id="33560" PostTypeId="1" AcceptedAnswerId="33561" CreationDate="2011-01-04T12:37:20.857" Score="28" ViewCount="1099" Body="&lt;p&gt;I believe any programmer has several ideas that she/he considers as innovative or at least valuable. It may be an idea of a new product which will make this world better or a new development approach, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But a great idea must be implemented and promoted/advertised. This requires a lot of work (proofs of concept, prototypes, technology previews, etc.) and a lot of money (appropriate advertisement, marketing, etc.). So months later, the idea stays in our heads, but nothing else is done, because it's difficult, long and expensive, sometimes even impossible for a single developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, it would be painful to share our ideas, and see a medium-size company which has enough resources making something useful from it and having success and money.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what do you do with your ideas you can hardly implement or patent? Do you talk freely about them in discussion boards and with other developers? Do you keep them like a precious thing without never talking about them to anybody?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you keep your ideas, why are you doing so? Is it just because you hope that one day, you will be able to implement them and have a huge success, while you know very well by experience that it's an utopia?&lt;/p&gt;&#xA;" OwnerUserId="6605" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2011-01-04T12:50:56.097" LastActivityDate="2011-01-05T06:41:16.107" CommunityOwnedDate="2011-01-05T03:00:49.167" Title="Do you keep your ideas secret? and why?" Tags="&lt;software-patent&gt;&lt;ideas&gt;" AnswerCount="17" CommentCount="5" FavoriteCount="12" />
  <row Id="33561" PostTypeId="2" ParentId="33560" CreationDate="2011-01-04T12:53:50.180" Score="41" ViewCount="" Body="&lt;p&gt;Ideas left unimplemented might as well be predictions of what someone else is going to implement. I think that it is rare, especially in this day and age for &lt;em&gt;only&lt;/em&gt; a single person to come up with an idea. If you thought of it, chances are that someone else has as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fortunately, I work in a company that treats its people very well. If I come up with something that I think would work, I meet very little resistance when it comes to gathering the resources that I need to implement it. I'm also compensated quite nicely if an idea does well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those who don't have the resources to get off the drawing board, you have two choices. Try, as hard as you can to get your idea in front of people who can help you - or keep quiet about it and watch someone else implement it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think the fear that '&lt;em&gt;someone is just going to steal my idea if I go to them for help&lt;/em&gt;' is reasonable, in most cases. You have a 100% chance of &lt;em&gt;never&lt;/em&gt; seeing your idea get off the ground if you stay quiet, and perhaps a 5 - 10% chance of getting ripped off if you don't. While you may think your idea is worth millions, it probably isn't. Don't overestimate how much someone might want to steal it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given that, I think the choice is simple.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2011-01-04T12:59:23.933" LastActivityDate="2011-01-04T12:59:23.933" CommunityOwnedDate="2011-01-05T03:00:49.167" CommentCount="2" />
  <row Id="33562" PostTypeId="2" ParentId="33560" CreationDate="2011-01-04T13:07:53.303" Score="10" ViewCount="" Body="&lt;p&gt;I keep my ideas on a list I maintain with a mind mapping software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The fact I have that list creates lot of frustration in my life because of my inability to implement all of them. I don't care about money, so the ideas are all about &lt;strong&gt;doing&lt;/strong&gt;, not collecting dollars. Sharing the idea is not a problem at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think you have to worry about other people stealing your idea. Even if the idea is great, it's still &lt;strong&gt;your idea&lt;/strong&gt;. Who else has the energy, the need and the desire to implement it?&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-04T13:07:53.303" CommunityOwnedDate="2011-01-05T03:00:49.167" CommentCount="3" />
  <row Id="33563" PostTypeId="2" ParentId="33560" CreationDate="2011-01-04T13:13:42.783" Score="5" ViewCount="" Body="&lt;p&gt;I don't tell much about them if I tell anything at all, not for fear that they'll be stolen, nor denying that they might be unrealistically ambitious, but simply because &lt;a href=&quot;http://sivers.org/zipit&quot; rel=&quot;nofollow&quot;&gt;announcing your plans makes you less motivated to accomplish them&lt;/a&gt;, and if I do one day find myself with the time and resources, I want every edge I can get.&lt;/p&gt;&#xA;" OwnerUserId="2107" LastActivityDate="2011-01-04T13:13:42.783" CommunityOwnedDate="2011-01-05T03:00:49.167" CommentCount="3" />
  <row Id="33564" PostTypeId="2" ParentId="33560" CreationDate="2011-01-04T13:15:08.227" Score="5" ViewCount="" Body="&lt;p&gt;As far as I'm concerned, I would rather see someone else implement my idea, possibly getting rich on the way, than keep it secret and unimplemented forever.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm very pragmatic in nature and hardly envious, so I don't mind if someone else makes money with an idea I couldn't implement myself; so it would not be painful for me to see them make money. They take the risk, they spend money and work, so they shall succeed with my blessing.&#xA;An idea is worth nothing, it's the execution that makes it successful or not.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2011-01-04T13:15:08.227" CommunityOwnedDate="2011-01-05T03:00:49.167" />
  <row Id="33565" PostTypeId="2" ParentId="33560" CreationDate="2011-01-04T13:15:23.097" Score="2" ViewCount="" Body="&lt;p&gt;When an idea is in its infancy, we can see all kinds of benefits and none of the drawbacks.  The knowledge we are operating under is only partial.  It might be the idea of marketing, or how you are going to make money off of the idea (the most difficult).  Very likely your idea is saving &lt;em&gt;you&lt;/em&gt; time, effort, etc. but others aren't quite affected by it in quite the same way as you.  The most critical thing to consider and hardest to be realistic about is that just perhaps your idea has been tried out before and it failed for whatever reason.  Maybe the failure was because of something you figured out how to overcome, but also very likely there is something deeper that you haven't considered yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bottom line is that like opinions, and idea and $5 USD will buy you a cup of coffee.  It isn't worth anything until you try and do something with it.  You can only do something with it if you talk to knowledgeable people that will help you understand where your idea is lacking.  I've found that sharing my ideas has paid off more than not.  Most of the time the only thing I do with my ideas is to perform experiments to verify if they hold water or not.  It helps me understand the problem I'm trying to solve better, and many times I have an epiphany of how I could do it another way after those experiments.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2011-01-04T13:15:23.097" CommunityOwnedDate="2011-01-05T03:00:49.167" />
  <row Id="33566" PostTypeId="2" ParentId="33526" CreationDate="2011-01-04T13:17:05.790" Score="5" ViewCount="" Body="&lt;p&gt;When I was freelancing, my basic customer agreement defined a condition called &quot;acceptance&quot;, which was required before I put the project live to the public. At the moment of acceptance, there began a 30-day period I called &quot;up and running support&quot;. After that 30 day period, ongoing work on the project was billable hourly. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a good relationship with this client, have a heart to heart with them about how unworkable the current situation is for you, and propose a fair hourly rate for ongoing maintenance and support. People sometimes think that buying custom software is like buying a sandwich or something, like once it's built it's done. It's just not like that.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2011-01-04T13:17:05.790" CommentCount="1" />
  <row Id="33567" PostTypeId="1" CreationDate="2011-01-04T13:17:52.437" Score="1" ViewCount="231" Body="&lt;p&gt;After coding a whole day, i feel tired and do not want to read code or tech-books at night.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What should a programmer do when he gets tired and bored?&lt;/p&gt;&#xA;" OwnerUserId="3791" LastActivityDate="2011-01-04T13:28:09.993" ClosedDate="2011-01-04T13:28:41.260" Title="What programmer should do when he feel tired?" Tags="&lt;programmers&gt;" AnswerCount="4" CommentCount="2" />
  <row Id="33568" PostTypeId="1" AcceptedAnswerId="33573" CreationDate="2011-01-04T13:20:21.967" Score="2" ViewCount="239" Body="&lt;p&gt;What do you guys think is best practice regarding auto-updating? Google Chrome for instance seems to auto-update itself as soon as it get's a chance without asking and I'm fine with it. I think most &quot;normal&quot; users benefits from updates being a transparent process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then again, some more technical users might be miffed if you update their app without permission, as I see it there's 3 options:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) Have a checkbox when installing that  says &quot;allow automatic updates&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Just have a preference somewhere that allows you to &quot;disable automatic updates&quot; so that you have to &quot;check for updates manually&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm leaning towards 2) because 1) feels like it might alienate non-technical users and I'd rather avoid installation queries if possible. Also I'm thinking about making it easy to downgrade if an upgrade (heaven forbid) causes trouble, what are your thoughts?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another question, even if auto-updates are automatically, perhaps they should be announced. If there's new features for example otherwise you might not realize and use them&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing that kinda scares me though is the security implications, someone could theorically hack my server and push out spyware/zombieware to all my customers. It seems that using digital signatures to prevent man-in-the-middle attacks is the least you could do otherwise you might be hooked up to a network that spoofs the address of of update server.&lt;/p&gt;&#xA;" OwnerUserId="12354" LastEditorUserId="12354" LastEditorDisplayName="" LastEditDate="2011-01-04T14:21:10.430" LastActivityDate="2011-01-04T14:37:19.373" Title="Aggressive Auto-Updating?" Tags="&lt;software-updates&gt;" AnswerCount="5" CommentCount="5" FavoriteCount="1" />
  <row Id="33569" PostTypeId="2" ParentId="33567" CreationDate="2011-01-04T13:20:23.400" Score="4" ViewCount="" Body="&lt;p&gt;Hit the gym, go out for a walk, take a nap. Go watch a movie, read a (non programming related) book. &lt;/p&gt;&#xA;" OwnerUserId="7380" LastActivityDate="2011-01-04T13:20:23.400" />
  <row Id="33570" PostTypeId="2" ParentId="33567" CreationDate="2011-01-04T13:21:08.710" Score="6" ViewCount="" Body="&lt;p&gt;There a cure, it's called &quot;Sleep&quot;.&lt;/p&gt;&#xA;" OwnerUserId="19" LastActivityDate="2011-01-04T13:21:08.710" />
  <row Id="33571" PostTypeId="2" ParentId="33567" CreationDate="2011-01-04T13:24:22.170" Score="2" ViewCount="" Body="&lt;p&gt;Have kids. Sure you still be tried (even more than you are now) but you will not have time to OD on code &amp;amp; tech books when at home.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Or just find a none-coding hobby - video games was mine. Sigh. I miss free time.)&lt;/p&gt;&#xA;" OwnerUserId="1896" LastActivityDate="2011-01-04T13:24:22.170" />
  <row Id="33572" PostTypeId="2" ParentId="33567" CreationDate="2011-01-04T13:28:09.993" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;i feel tired and do not want to read code or tech-books at night&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This sounds like you feel that you need to be constantly doing something code related.  This is a sure way to burnout.  Find a hobby, get some exercise, try something social.&lt;/p&gt;&#xA;" OwnerUserId="1306" LastActivityDate="2011-01-04T13:28:09.993" />
  <row Id="33573" PostTypeId="2" ParentId="33568" CreationDate="2011-01-04T13:28:42.037" Score="7" ViewCount="" Body="&lt;p&gt;As a tech user, I don't terribly mind opting out of updates, but I imagine you'll see a fair bit of variation on that point. Are you expecting the majority of your app's users to be tech-inclined? If not, then enabling automatic updates by default is a great idea and I'd go with option #2. Otherwise... well, I'd probably still go with option #2 because I like it, but you might want to poll some subset of your userbase to find their preference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With all that said, my favourite option is &quot;check for updates but let me know when to download and install them&quot;. This way I can avoid installing an update if I know I'm just on the computer for 30 seconds to check email.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Definitely make it easy to roll back upgrades if you can, regardless of the update option you go with.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2011-01-04T13:28:42.037" CommentCount="5" />
  <row Id="33574" PostTypeId="1" AcceptedAnswerId="33602" CreationDate="2011-01-04T13:29:59.370" Score="1" ViewCount="124" Body="&lt;p&gt;I am planning to launch an e-store and after looking at the current trend/developer community activity and economic viability i have decided to use PHP+MySql for development.&lt;br&gt;&#xA;I don't wish to use a CMS as I want more flexibility than they offer .&lt;br&gt;&#xA;I am basically a .net Developer and have no prior experience in PHP development and am getting confused as to what IDE to use ?&lt;br&gt;&#xA;Should i use a framework(which) ?&lt;/p&gt;&#xA;" OwnerUserId="8987" LastActivityDate="2011-01-04T15:40:52.563" Title="What all to use while developing an e-commerce site in PHP ?" Tags="&lt;web-development&gt;&lt;php&gt;&lt;frameworks&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="1" />
  <row Id="33575" PostTypeId="2" ParentId="33568" CreationDate="2011-01-04T13:33:00.740" Score="2" ViewCount="" Body="&lt;p&gt;It really depends upon how the automatic updates are being done as there is nothing worse than sitting trying to get some work done and then have a pop up telling you that you need to restart due to an update. Also, I've noticed that some programs that use background downloading will sometimes use a bit too much bandwidth and slow down my web browser when I am trying to do some research online. As such I generally prefer to be able to opt-out of automatic updating unless I know that it is very unintrusive. Firefox tends to do a fairly good job of this as I usually don't notice that it is downloading an update and the actual install process is fairly quick and doesn't require me to interrupt any work that I already have in progress.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2011-01-04T13:33:00.740" CommentCount="3" />
  <row Id="33576" PostTypeId="2" ParentId="33568" CreationDate="2011-01-04T13:39:39.900" Score="6" ViewCount="" Body="&lt;p&gt;Odd as it may seem the Windows Update dialog has the right options (ignoring the potential for problems caused by the default):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Automatic (updates downloaded and installed without user intervention [Microsoft's words &lt;strong&gt;not&lt;/strong&gt; mine]). Though this is badly worded and misleading as the system will reboot without giving you the chance to save work etc. Which is one reason why I don't use it.&lt;/li&gt;&#xA;&lt;li&gt;Download update but let user choose when to install (my preference).&lt;/li&gt;&#xA;&lt;li&gt;Notify but don't download or install.&lt;/li&gt;&#xA;&lt;li&gt;Off.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This gives your user full control over the process from the &quot;silent behind the scenes&quot; to &quot;I'll update if I remember to check&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The default will depend on your audience and how extensive and frequent your updates are. It could be acceptable to silently install small, frequent updates whereas the user might want more control over larger updates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't recommend the silent download and automatically update if there's &lt;em&gt;any&lt;/em&gt; chance of the process causing the user to lose data. The default should be either &lt;strong&gt;Notify&lt;/strong&gt; or &lt;strong&gt;Download&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-01-04T14:37:19.373" LastActivityDate="2011-01-04T14:37:19.373" CommentCount="6" />
  <row Id="33577" PostTypeId="2" ParentId="32533" CreationDate="2011-01-04T13:45:49.663" Score="1" ViewCount="" Body="&lt;p&gt;As someone who interviews candidates regularly for programming jobs, and someone who after being in the industry for 12+ years feels reasonably accomplished, I would suggest the following&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Database Design &amp;amp; SQL: It is amazing how many programmers do not know simple SQL, and those with good SQL skills are invaluable. To be able to design a good database may not be useful in a company that has a set database structure, for start-ups and companies going through change, it is a MUST!&lt;/li&gt;&#xA;&lt;li&gt;Design Patterns. They will simply help you make better decisions about good design&lt;/li&gt;&#xA;&lt;li&gt;OOP: This is usually a pre-req for most courses, but it will help.&lt;/li&gt;&#xA;&lt;li&gt;Algorithms: Because so few people know what recursion is, let alone understand when it could save them a lot of complex coding&lt;/li&gt;&#xA;&lt;li&gt;Data Structures: Most modern languages deal with this stuff for you, but understanding them is the key to good design.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Then, some extra curricular work, read: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Certification type books. They often teach you the beneath the covers type of syntax and operators. It is far more important to KNOW why you are doing something, rather than 'because it works', which is so commonplace.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="12356" LastActivityDate="2011-01-04T13:45:49.663" CommunityOwnedDate="2011-01-05T14:29:46.470" />
  <row Id="33578" PostTypeId="1" AcceptedAnswerId="33639" CreationDate="2011-01-04T13:50:54.093" Score="26" ViewCount="1156" Body="&lt;p&gt;The purpose of this question is not to assemble a laundry list of programming language features that you can't live without, or wish was in your main language of choice.  The purpose of this question is to bring to light corners of languge design most language designers might not think about.  So, instead of thinking about language feature X, think a little more philisophically.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of my biases, and perhaps it might be controversial, is that the softer side of engineering--the whys and what fors--are many times more important than the more concrete side.  For example, Ruby was designed with a stated goal of improving developer happiness.  While your opinions may be mixed on whether it delivered or not, the fact that was a goal means that some of the choices in language design were influenced by that philosophy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Please do not post:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Syntax flame wars.  Let's face it, we have our preferences, and syntax is important as it pertains to language design.  I just want to avoid epic battles of the nature of emacs vs. VI (which a great number of people these days know nothing about).&lt;/li&gt;&#xA;&lt;li&gt;&quot;Any language that doesn't have feature X doesn't deserve to exist&quot; type comments.  There is at least one reason for all programming languages to exist--good or bad.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Please &lt;em&gt;do&lt;/em&gt; post:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Philisophical ideas that language designers seem to miss.&lt;/li&gt;&#xA;&lt;li&gt;Technical concepts that seem to be poorly implemented more often than not.  Please do provide an example of the pain it causes and if you have any ideas of how you would prefer it to function.&lt;/li&gt;&#xA;&lt;li&gt;Things you wish were in the platform's common library but seldom are.  One the same token, things that usually are in a common library that you wish were not.&lt;/li&gt;&#xA;&lt;li&gt;Conceptual features such as built in test/assertion/contract/error handling support that you wish all programming languages would implement properly--and define properly.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;My hope is that this will be a fun and stimulating topic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Clarified what I mean by Syntax Flame Wars.  I'm not trying to avoid all discussion of syntax, particularly because syntax is a fundamental part of program language design.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastEditorUserId="8668" LastEditorDisplayName="" LastEditDate="2011-01-05T15:27:02.953" LastActivityDate="2011-02-14T18:42:50.423" CommunityOwnedDate="2011-01-04T16:08:01.263" Title="What do you wish language designers paid attention to?" Tags="&lt;programming-languages&gt;&lt;language-design&gt;&lt;philosophy&gt;" AnswerCount="26" CommentCount="7" FavoriteCount="7" />
  <row Id="33579" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T13:54:20.463" Score="1" ViewCount="" Body="&lt;p&gt;I did so for about a year with a MSI Wind (but with 2G of RAM).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It does not make for a &lt;em&gt;good&lt;/em&gt; development environment, but it is adequate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To go over some of the complains above:&#xA;Slow - It is, for the most part, fast enough for basic Java and .NET development. Eclipse did not lag behind as I typed and popped up suggestions in a timely manor. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Screen real estate - You can make Eclipse and VS work in the space available by hiding everything but the run unit tests window and code window and by ensuring a max line length of about 80. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keyboards - Personally I mostly got use to it (except the Wind has the control and Ftn keys the wrong way round :shakefist:).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will you be as productive as you are on a better system - No. Will you be able to get the work done - Yes, just add into your your plans some slack for &lt;em&gt;hurry up you damn machine&lt;/em&gt; and a two days for setting up your IDE to work with the screen real estate.&lt;/p&gt;&#xA;" OwnerUserId="1896" LastActivityDate="2011-01-04T13:54:20.463" CommunityOwnedDate="2011-01-04T17:45:13.047" />
  <row Id="33580" PostTypeId="2" ParentId="33446" CreationDate="2011-01-04T13:59:24.103" Score="0" ViewCount="" Body="&lt;p&gt;Check out this book: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131177052&quot; rel=&quot;nofollow&quot;&gt;Working Effectively with Legacy Code&lt;/a&gt;.  I found it to be very useful.  It discusses how to &quot;reign in&quot; an untestable, unmaintainable codebase in small chunks of work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other answers are great, and suggest a lot of the same things the book will.  But of course the book will go into much greater detail.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2011-01-04T13:59:24.103" />
  <row Id="33581" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T14:03:59.767" Score="1" ViewCount="" Body="&lt;p&gt;Depends upon what you are trying to write code for and in along with if you are going to be adding any peripherals to the netbook. I currently have a netbook (&lt;a href=&quot;http://www.newegg.com/Product/Product.aspx?Item=N82E16834114786&quot; rel=&quot;nofollow&quot;&gt;Toshiba NB305&lt;/a&gt; with 2 GB of RAM) that I use for some basic tasks while on the train to work and while the keyboard isn't as good as my main one (Microsoft Natural 4000) it is big enough that I can use it for awhile. That said, I'm running both &lt;a href=&quot;http://www.ubuntu.com/netbook&quot; rel=&quot;nofollow&quot;&gt;Ubuntu Netbook Edition&lt;/a&gt; a long with Windows 7 and I really don't find it to be as slow as others like to say. Granted my first laptop as 400 Mhz with 512 MB of RAM so I might be used to slower systems, but with most of the extra services turned off and a light weight text editor it it is fast enough that you can get some work done on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coupled with a monitor, external keyboard, and mouse and in a pinch it could be used for a full fledged system that one could use on a daily basis but you would start to notice the slowness after awhile.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2011-01-04T14:03:59.767" CommunityOwnedDate="2011-01-04T17:45:13.047" />
  <row Id="33582" PostTypeId="2" ParentId="33578" CreationDate="2011-01-04T14:06:23.710" Score="20" ViewCount="" Body="&lt;p&gt;I have a couple:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Generics/templates. For example, Java generics are powerful, but not necessarily flexible. Also, because they use type erasure, I have seen problems implementing them abstractly, especially in interfaces. And the compiler shouldn't warn when a non-specific generic is used (Like &lt;code&gt;Hashmap&lt;/code&gt; instead of &lt;code&gt;Hashmap&amp;lt;String, int&amp;gt;&lt;/code&gt;). I think they could be improved significantly. Good templating is very useful, but often neglected.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Good Date support in the standard library. I mean being able to add and subtract dates, hours, and minutes, and not having to deal with the number of milliseconds since January 1, 1970.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6415" LastEditorUserId="1683" LastEditorDisplayName="" LastEditDate="2011-01-05T15:30:13.927" LastActivityDate="2011-01-05T15:30:13.927" CommunityOwnedDate="2011-01-04T16:08:01.263" CommentCount="20" />
  <row Id="33583" PostTypeId="1" CreationDate="2010-10-24T22:47:54.813" Score="3" ViewCount="159" Body="&lt;p&gt;So yes, the problem has been raised in parts multiple times already. Still I'm looking for a keyboard layout that has the following features:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Easy on fingers (Dvorak-like layouts welcome)&lt;/li&gt;&#xA;&lt;li&gt;Easy for coding&lt;/li&gt;&#xA;&lt;li&gt;Includes german characters (typing &lt;kbd&gt;ä&lt;/kbd&gt; with &lt;kbd&gt;AltGr&lt;/kbd&gt;-&lt;kbd&gt;p&lt;/kbd&gt; is &lt;em&gt;not&lt;/em&gt; ok).&lt;/li&gt;&#xA;&lt;li&gt;Works well with web-browsing (&lt;kbd&gt;Ctrl&lt;/kbd&gt;-&lt;kbd&gt;t&lt;/kbd&gt; and &lt;kbd&gt;Ctrl&lt;/kbd&gt;-&lt;kbd&gt;w&lt;/kbd&gt; on one hand, left one very much preferred, since that's where my ex-&lt;kbd&gt;CapsLock&lt;/kbd&gt;, now &lt;kbd&gt;Ctrl&lt;/kbd&gt; lies)&lt;/li&gt;&#xA;&lt;li&gt;Works well with default Emacs bindings&lt;/li&gt;&#xA;&lt;li&gt;Works on both Windows and Linux (at least easily installable)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've looked at Dvorak and Neo, they both have a &quot;shortcut problem&quot;, i.e. web-browsing and most frequent Emacs combinations use both parts of the keyboard. Using right &lt;kbd&gt;Ctrl&lt;/kbd&gt; is usually not an option, since it'll give me RSI much faster than keeping QWERTY/Z. Funnily enough, mirroring the default Neo layout would probably be enough for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, any ideas?&lt;/p&gt;&#xA;" OwnerUserId="215" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-01-22T16:55:01.500" LastActivityDate="2011-01-27T04:20:17.577" Title="International multi-OS keyboard layout for both coding and surfing?" Tags="&lt;productivity&gt;&lt;recommendations&gt;&lt;keyboard&gt;&lt;ergonomics&gt;&lt;keyboard-layout&gt;" AnswerCount="3" CommentCount="0" />
  <row Id="33584" PostTypeId="2" ParentId="32533" CreationDate="2011-01-04T14:09:06.013" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;IT'S DEPENDS&lt;/strong&gt;, there isn't a one good answer for this question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programmer is a general world to identify a someone who writes computer software. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, out there there is software of all kinds. &#xA;For example, using wikipedia as a source of generalization we can meet &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Computer_software#Types_of_software&quot; rel=&quot;nofollow&quot;&gt;3 great generalization&lt;/a&gt;: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;system programming&lt;/li&gt;&#xA;&lt;li&gt;programming software &lt;/li&gt;&#xA;&lt;li&gt;application software&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In the first field &lt;strong&gt;system programming&lt;/strong&gt; develop device drivers, operating system, servers, so for example you can follow an operating system course.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;but what about &lt;strong&gt;programming software&lt;/strong&gt; ? here as wikipedia wrote you can code compilers, debuggers, interpreters, linkers, text editors, so, a course in automate theory, language theory, language and compilers can be useful. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not we can talk about application software of any kind:&lt;br&gt;&#xA;- video games : algebra, physics, object oriented courses ?&lt;br&gt;&#xA;- mathematical software : mathematical courses ?&lt;br&gt;&#xA;- image editing: mathematical, physics, algorithm courses ? &lt;br&gt;&#xA;- industrial automation: mathematical, physics, algorithm, robotic courses ?&lt;br&gt;&#xA;- medical software: biology, medical, what else course ?&lt;br&gt;&#xA;- a lot of stuff here : a lot of courses here .&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you can see there is a lot of course you can follow and will become useful for your work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, I'm a system software engineering and application software in the &lt;strong&gt;security&lt;/strong&gt; (you want follow a security course?) field, starting from a little very experience in programming i am getting more interesting in algorithms and distributed system and again i feel uncomfortable in the simplicity of the general purpose application i wrote (sniffer, network intrusion detection system, protocol dissector and detector, etc). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you have sourly learned in theoretical computer science! have you fllow this courses ? :P &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have learned for example that all computer language can be fitted in a set of computable mathematical function and for example if your experience get my same path, soon you be uncomfortable in this little set of calculus and like me you can start to see how developing software is not so engaging and amazing because the same DESIGN PATTERN come back again an again (have you follow design pattern courses?) and for example you can start to get more interest in WHY and HOW language can be translated in mathematical function and starting to learn that computer language is not so very complex! you can soon for example be more surprised about person and psychology, and you can get more interest about it and become a good project manager! have you follow the courses about software life-cycle ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So now, what is the MUST-HAVE course in your CS career ? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suggest to learn as much as you can learn in all field, specially in theory field,  because in common work field you can feel soon really bored about the little complexity around you, and becoming a full time worker you have really less time to learn how things really work and much more time to see how people with strong theoretical knowledge have projected things to work and give to you the possibility to code to get food at home.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;there is a wrong sense of reality in computer science. &#xA;computer scientist for example sometimes is really far away from software developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;take a look at the wikipedia explanation.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;have fun with life :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;my 2 cents.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;sorry for my really bad English.&lt;/p&gt;&#xA;" OwnerUserId="7771" LastActivityDate="2011-01-04T14:09:06.013" CommunityOwnedDate="2011-01-05T14:29:46.470" />
  <row Id="33585" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T14:09:36.383" Score="0" ViewCount="" Body="&lt;p&gt;I've always thought that netbooks make a good &lt;em&gt;supplement&lt;/em&gt; to a desktop system.  As a replacement they are subpar, as an extension they can be very useful.&lt;/p&gt;&#xA;" OwnerUserId="5011" LastActivityDate="2011-01-04T14:09:36.383" CommunityOwnedDate="2011-01-04T17:45:13.047" />
  <row Id="33586" PostTypeId="2" ParentId="33578" CreationDate="2011-01-04T14:10:26.030" Score="18" ViewCount="" Body="&lt;p&gt;Some of the best languages were designed by people who wanted to make a language for themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I think language designers should pay less attention to their users. You can't please everyone, neither should you attempt to.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastEditorUserId="10037" LastEditorDisplayName="" LastEditDate="2011-01-04T14:18:02.790" LastActivityDate="2011-01-04T14:18:02.790" CommunityOwnedDate="2011-01-04T16:08:01.263" CommentCount="10" />
  <row Id="33587" PostTypeId="2" ParentId="33560" CreationDate="2011-01-04T14:14:03.847" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Do you talk freely about them in discussion boards and with other developers?&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I find that when I tell other people what my plans/ideas are, then I waste too much energy defending my ideas to actually get them done (there are too many people who want to argue for the sake of arguing, as well as people who think they know more than you do and will be busy demanding that you implement your dreams/plans/ideas their way). The worst case I found was at the company I just left, where I mentioned some ideas I had for product improvements to my boss (and his boss), was told I may not work on them on company time, then was dinged on my annual review for &quot;not following through&quot; on the ideas I was specifically forbidden from working on. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideas are cheap, and I have lots of them. Implementation is hard and I lack the time to implement even a small fraction of my ideas. Ideas that I know I'm not going to have time to even try to implement I'll tell others about. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2011-01-04T14:14:03.847" CommunityOwnedDate="2011-01-05T03:00:49.167" CommentCount="1" />
  <row Id="33588" PostTypeId="2" ParentId="33578" CreationDate="2011-01-04T14:19:53.117" Score="12" ViewCount="" Body="&lt;p&gt;I think they should pay attention to Python, who does more things right than any other language I have encountered (and that even if you dislike some of the features). That doesn't mean that they should emulate Python, but it's important to know what Python did right, even if you don't want to make a language like Python at all. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for philosophical ideas that are relevant there, these are the most important ones from the Zen of Python:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Explicit is better than implicit.&lt;/li&gt;&#xA;&lt;li&gt;Readability counts.&lt;/li&gt;&#xA;&lt;li&gt;Special cases aren't special enough to break the rules.&lt;/li&gt;&#xA;&lt;li&gt;Although practicality beats purity.&lt;/li&gt;&#xA;&lt;li&gt;There should be one-- and preferably only one --obvious way to do it.&lt;/li&gt;&#xA;&lt;li&gt;If the implementation is hard to explain, it's a bad idea.&lt;/li&gt;&#xA;&lt;li&gt;Namespaces are one honking great idea -- let's do more of those!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I think a language that follows these rules must necessarily be quite OK, but I know only of one that does this, and that's Python. For all the similarities with for example Ruby in implementation, Ruby misses out on things like readability and invites you to do code golf, which is fun, but not useful in a professional setting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only technical feature I miss in Python is an &quot;until&quot; statement (like while, but not testing the expression the first time). Then there are a lot of things in both Python and other languages standard libraries that could be improved, but that's not strictly &lt;em&gt;languages&lt;/em&gt;, so that's a different question. :-)&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2011-01-04T14:19:53.117" CommunityOwnedDate="2011-01-04T16:08:01.263" CommentCount="16" />
  <row Id="33589" PostTypeId="2" ParentId="33182" CreationDate="2011-01-04T14:22:38.367" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Always test your DAO or Repository for the most basic case, just to ensure that you've hooked everything up properly&lt;/li&gt;&#xA;&lt;li&gt;Test your DAO or Repository methods normally if it performs any logic beyond invoking the Hibernate api&lt;/li&gt;&#xA;&lt;li&gt;Do the least possible work to test the persistence layer!&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;You can spend way too much time and energy testing a persistence layer and getting very little value out of it if you're too concerned about the perfect test setup, this is somewhat mitigated if your company standardizes to the testing method so it is easy to setup a second or third time.  But in general you can test the most important aspects just by using SQL in the setup and teardown methods, as well using custom sql assertions.&lt;/p&gt;&#xA;" OwnerUserId="5349" LastActivityDate="2011-01-04T14:22:38.367" CommentCount="1" />
  <row Id="33590" PostTypeId="2" ParentId="33446" CreationDate="2011-01-04T14:22:49.273" Score="-1" ViewCount="" Body="&lt;p&gt;Reasons (not) to refactor:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/zAQpa.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;a href=&quot;http://geekandpoke.typepad.com/geekandpoke/2010/02/the-refactoring-cycle.html&quot; rel=&quot;nofollow&quot;&gt;Original source&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2719" LastActivityDate="2011-01-04T14:22:49.273" />
  <row Id="33591" PostTypeId="2" ParentId="33568" CreationDate="2011-01-04T14:25:54.560" Score="2" ViewCount="" Body="&lt;p&gt;One program whose update style I really noticed for being done well is the diff/merge tool &lt;a href=&quot;http://www.scootersoftware.com&quot; rel=&quot;nofollow&quot;&gt;Beyond Compare.&lt;/a&gt;  It's got an excellent, well-thought-out UI in general, and its update system doesn't disappoint.  Basically, when it runs, it quietly checks the update server and if it finds anything, it sticks a link label informing you of the update in the right-hand side of the menu bar. Quiet, unobtrusive, out of your way, but impossible to miss.  If you click it, it gives you an update dialog. You hit the button and it downloads, installs, and reboots the program automatically.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not fully automated, but I prefer that.  Your program could do a lot worse than to follow the same model for updates.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2011-01-04T14:25:54.560" CommentCount="1" />
  <row Id="33592" PostTypeId="2" ParentId="33477" CreationDate="2011-01-04T14:26:41.393" Score="1" ViewCount="" Body="&lt;p&gt;What you are missing is the continuous integration server -- that is the brains of the operation that makes it possible for the developers to work locally, commit changes and then pull everything together for qa without human intervention.&lt;/p&gt;&#xA;" OwnerUserId="3762" LastActivityDate="2011-01-04T14:26:41.393" CommentCount="3" />
  <row Id="33593" PostTypeId="2" ParentId="33568" CreationDate="2011-01-04T14:26:47.913" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;What do you guys think is best practice regarding auto-updating?&lt;/em&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;From talking with other developers, I've found that whatever Adobe Reader does, it irritates the heck out of them. That app has settings where you can set it to check every time it starts (default), once a week, or never. It also pings a certificate revocation server every time it starts as add-ins for the free reader require a digital certificate to load. My position is that since that application has such a widespread adoption rate in corporations, then its behavior should be modeled as that behavior is acceptable to corporate network admins. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I typically work on .NET applications, and the version of application updating &quot;supported&quot; by .NET is called ClickOnce. This doesn't work too well in Vista/Win7 as it tends to install updates &quot;per user&quot; (which means that each user ends up with a separate install of updates, as well as the original install). &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;One thing that kinda scares me though is the security implications, someone could theoretically hack my server and push out spyware/zombieware to all my customers. It seems that using digital signatures&lt;/em&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;ClickOnce requires digital signatures.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My personal opinion is that one should leverage off of the existing built-in updating inside of Windows. &lt;a href=&quot;http://en.wikipedia.org/wiki/Background_Intelligent_Transfer_Service&quot; rel=&quot;nofollow&quot;&gt;BITS&lt;/a&gt; has been around since WinXP and works reasonably well. For applications that run in a typical locked-down corporate environment, this means your updater will need to run as a windows service (because it will need admin rights). Building off of BITS allows you to also leverage &lt;a href=&quot;http://en.wikipedia.org/wiki/Windows_Server_Update_Services&quot; rel=&quot;nofollow&quot;&gt;WSUS&lt;/a&gt; which allows corporations to determine which updates get installed and when. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2011-01-04T14:26:47.913" CommentCount="3" />
  <row Id="33594" PostTypeId="2" ParentId="33478" CreationDate="2011-01-04T14:29:52.437" Score="2" ViewCount="" Body="&lt;p&gt;Speaking from experience of the non-computer saavy using LifeRay, I can say that it is best avoided. It is a very powerful system in the right hands, but the level of complexity in the admin UI is astounding. It really tries to be anything to everyone and fails at doing the simple stuff well. We are in the process of ripping all instances out and moving to some custom systems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, if I needed something like this in a pinch, I would probably run with Wordpress multi-user.&lt;/p&gt;&#xA;" OwnerUserId="3762" LastActivityDate="2011-01-04T14:29:52.437" CommentCount="3" />
  <row Id="33595" PostTypeId="2" ParentId="33446" CreationDate="2011-01-04T14:30:58.863" Score="0" ViewCount="" Body="&lt;p&gt;Any code is maintainable, it just depends on the ammount of sanity and how much hope in mankind you're willing to lose in order to do that.&lt;/p&gt;&#xA;" OwnerUserId="9094" LastActivityDate="2011-01-04T14:30:58.863" />
  <row Id="33596" PostTypeId="1" AcceptedAnswerId="33637" CreationDate="2011-01-04T14:36:21.977" Score="3" ViewCount="255" Body="&lt;p&gt;I really should not be mentioning the name of the book, but the first time I read it (during my under-grad days) I almost concluded that data structure was a bad course to pick. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which brings me to the question I am asking here. What makes a programming or data structure or algorithm book tick? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clearly, lucid explanation is one. But I also realize that organization of the material is very important and so is diagrams. What else? Some pointers would obviously help when I hang out in my neighborhood computer book shop the next time. &lt;/p&gt;&#xA;" OwnerUserId="8720" LastEditorUserId="8720" LastEditorDisplayName="" LastEditDate="2011-01-04T16:50:02.173" LastActivityDate="2011-01-04T23:19:30.060" Title="How do you choose a programming/data structure/algorithm book?" Tags="&lt;programming-languages&gt;&lt;books&gt;&lt;algorithms&gt;&lt;data-structures&gt;" AnswerCount="3" CommentCount="6" FavoriteCount="1" />
  <row Id="33597" PostTypeId="2" ParentId="20985" CreationDate="2011-01-04T14:36:57.143" Score="0" ViewCount="" Body="&lt;p&gt;In my opinion every language suffers from the fact that reserved keywords or language constructs can irritate you in such a way that you actually need to patch your expression to a state which might be less understandable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This starts for example at the filesystem level (DOS) with reserved words like CON, AUX, etc.  to words in languages or scripts (list, static, use, class, etc.) or even SQL. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps you could state that the amount of reserved keywords equals the amount of doom.&lt;/p&gt;&#xA;" OwnerUserId="11652" LastActivityDate="2011-01-04T14:36:57.143" />
  <row Id="33598" PostTypeId="2" ParentId="33578" CreationDate="2011-01-04T14:38:12.973" Score="1" ViewCount="" Body="&lt;p&gt;When it comes to technology/platform/language/database etc. most of the times it comes down to performance.&#xA;In future many todays software may be designed using a graphical language since we have more computational powerful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope for the day when we have computational power and a language where you &lt;strong&gt;design&lt;/strong&gt; your application and you &lt;strong&gt;don’t have to worry about language details&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt;&#xA;I send a link to such language &lt;a href=&quot;http://www.ni.com/labview/&quot; rel=&quot;nofollow&quot;&gt;LabView&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt;&#xA;I should explain more what I mean by “computational powerful”. The performance of compiled software may not be as powerful as compiled software based on syntax language. I’m thinking of graphical programming as a higher level of programming and there may be more overhead.&#xA;Today’s computers can and do easily run graphical programming languages.&lt;/p&gt;&#xA;" OwnerUserId="7083" LastEditorUserId="7083" LastEditorDisplayName="" LastEditDate="2011-01-04T15:19:29.430" LastActivityDate="2011-01-04T15:19:29.430" CommunityOwnedDate="2011-01-04T16:08:01.263" CommentCount="8" />
  <row Id="33599" PostTypeId="2" ParentId="33578" CreationDate="2011-01-04T14:44:34.670" Score="6" ViewCount="" Body="&lt;p&gt;There are features that make programming languages easy to use once you learn them, and there are features that make them easy to learn to use. Since users of a language ideally have a long-term relationship with it, optimizing for ease of use is better than optimizing for ease of learning. Don't make things more difficult than necessary, but don't sacrifice expressiveness (being able to write a little code that does a lot) for readability to those who aren't familiar with the language. On the other hand, the language shouldn't read like line noise to people who've been working with it for years; that wouldn't be easy to use or to learn.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2011-01-04T14:44:34.670" CommunityOwnedDate="2011-01-04T16:08:01.263" />
  <row Id="33602" PostTypeId="2" ParentId="33574" CreationDate="2011-01-04T14:49:03.037" Score="0" ViewCount="" Body="&lt;p&gt;If you do not wish to use CMS and want framework instead, you should consider looking at Zend Framework, &lt;a href=&quot;http://www.symfony-project.org/&quot; rel=&quot;nofollow&quot;&gt;Symfony&lt;/a&gt; or Cake PHP. As you came from .NET i would highly recommend using Symfony.&#xA;And as talking about IDE - basically there are 2 choices: Eclipse and Netbeans. My personal choice is Netbeans mainly because it eats less memory on my linux machine.&lt;/p&gt;&#xA;" OwnerUserId="12361" LastEditorUserId="12361" LastEditorDisplayName="" LastEditDate="2011-01-04T15:34:20.220" LastActivityDate="2011-01-04T15:34:20.220" />
  <row Id="33603" PostTypeId="1" CreationDate="2011-01-04T14:49:28.743" Score="1" ViewCount="140" Body="&lt;p&gt;I'm a Java developer and in need of a CMS.  I've spent a lot of time reading about, and tinkering with Liferay but am concerned that it doesn't cover two of my &lt;strong&gt;three major concerns&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I need to have many sites with individual domains&lt;/li&gt;&#xA;&lt;li&gt;HTML/CSS designers need to be able to design the website templates, look and feel, and layouts in their own tools without having to worry about writing scripts&lt;/li&gt;&#xA;&lt;li&gt;Site and page building APIs must be understandable so that a custom builder interface can be created and harness the CMS as opposed to hacking it&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Liferay nails the first bullet point, but the second two appear to be unsolved.  Does anyone have experience with a Java CMS that does all three?  Or have any idea how to approach the problem if none exists?  Has someone has used a Java CMS and has been able to add this functionality give some insight?&lt;/p&gt;&#xA;" OwnerUserId="5349" LastActivityDate="2011-01-14T16:33:58.937" Title="Building a Java CMS - What Existing Product Should I Use?" Tags="&lt;java&gt;&lt;cms&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="33604" PostTypeId="2" ParentId="33596" CreationDate="2011-01-04T14:51:26.163" Score="6" ViewCount="" Body="&lt;p&gt;Depends upon what the purpose of the book is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Education&lt;/strong&gt; - I tend to look for books that are well written and contain clear explanations of the material that is being presented. While you might not be able to understand advanced topics towards the back of the book when you first pick it up, you should be able to read able something towards the front of the book and see what the author is driving at. Since the book is also for educational purposes I also look for a well organized structure that has a gradual progression from the introductory topics to the advanced ones as opposed to just jumping around. Since textbooks tend to be expensive, I also tend to look at what the long term reference value of the book is as well well organized indices are a bonus. So far, one of the best textbooks I've seen in this regards has been &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0262033844&quot; rel=&quot;nofollow&quot;&gt;Introduction to Algorithms&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Reference&lt;/strong&gt; - When it comes to reference books I look primarily at the organization of the book, how well written the topics are, and the long time durability of the book. Sometimes you just need a quick reference that you can keep on your desk (e.g. &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/059651624X&quot; rel=&quot;nofollow&quot;&gt;Algorithms in a Nutshell&lt;/a&gt;) but there are other times where you are working with an advanced topic and need a full reference that you can pick up and bring yourself back up to date on a topic as well (e.g. &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1846286026&quot; rel=&quot;nofollow&quot;&gt;Data Compression: The Complete Reference&lt;/a&gt;). Unfortunately, when it comes to reference books, it is difficult to say which ones are good or bad without actually picking them up and flipping through them. In some cases, subtle things like not being able to lay the book down flat on my desk has been a bit of an issue for me.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2011-01-04T14:51:26.163" CommentCount="1" />
  <row Id="33606" PostTypeId="1" AcceptedAnswerId="33622" CreationDate="2011-01-04T14:53:46.217" Score="7" ViewCount="388" Body="&lt;p&gt;I am involved with maintaining a fairly large portfolio of .NET applications.  Also in the portfolio are legacy applications built on top of other platforms - native C++, ECLIPS Forms, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a complex build framework on top of NAnt right now that manages the builds for all of these applications.  The build framework uses NAnt to do a number of different things:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pull code out of Subversion, as well as create tags in Subversion&lt;/li&gt;&#xA;&lt;li&gt;Build the code, using MSBuild for .NET or other compilers for other platforms&lt;/li&gt;&#xA;&lt;li&gt;Peek inside AssemblyInfo files to increment version numbers&lt;/li&gt;&#xA;&lt;li&gt;Do deletes of certain files that shouldn't be included in builds / releases&lt;/li&gt;&#xA;&lt;li&gt;Releases code to deployment folders&lt;/li&gt;&#xA;&lt;li&gt;Zips code up for backup purposes&lt;/li&gt;&#xA;&lt;li&gt;Deploy Windows services; start and stop them&lt;/li&gt;&#xA;&lt;li&gt;Etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Most of those things can be done with just NAnt by itself, but we did build a couple of extension tasks for NAnt to do some things that were specific to our environment.  Also, most of those processes above are genericized and reused across a lot of our different application build scripts, so that we don't repeat logic.  So it is not simple NAnt code, and not simple build scripts.  There are dozens of NAnt files that come together to execute a build.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lately I've been dissatisfied with NAnt for a couple reasons: (1) it's syntax is just awful - programming languages on top of XML are really horrific to maintain, (2) the project seems to have died on the vine; there haven't been a ton of updates lately and it seems like no one is really at the helm.  Trying to get it working with .NET 4 has cause some pain points due to this lack of activity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, with all of that background out of the way, here's my question.  Given some of the things that I want to accomplish based on that list above, and given that I am primarily in a .NET shop, but I also need to build non-.NET projects, is there an alternative to NAnt that I should consider switching to?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things on my radar include &lt;a href=&quot;http://en.wikipedia.org/wiki/Windows_PowerShell&quot; rel=&quot;nofollow&quot;&gt;Powershell&lt;/a&gt; (with or without &lt;a href=&quot;https://github.com/JamesKovacs/psake/wiki/What-Is-psake%3F&quot; rel=&quot;nofollow&quot;&gt;psake&lt;/a&gt;), &lt;a href=&quot;http://en.wikipedia.org/wiki/MSBuild&quot; rel=&quot;nofollow&quot;&gt;MSBuild&lt;/a&gt; by itself, and &lt;a href=&quot;http://rake.rubyforge.org/&quot; rel=&quot;nofollow&quot;&gt;rake&lt;/a&gt;.  These all have pros and cons.  For example, is MSBuild powerful enough?  I remember using it years ago and it didn't seem to have as much power as NAnt.  Do I really want to have my team learn Ruby just to do builds using rake?  Is psake really mature enough of a project to pin my portfolio to?  Is Powershell &quot;too close to the metal&quot; and I'll end up having to write my own build library akin to psake to use it on its own?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there other tools that I should consider?  If you were involved with maintaining a .NET portfolio of significant complexity, what build tool would you be looking at?  What does your team currently use?&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2011-01-05T04:25:06.567" Title="Automated build platform for .NET portfolio - best choice?" Tags="&lt;development-process&gt;&lt;builds&gt;&lt;automation&gt;" AnswerCount="9" FavoriteCount="5" />
  <row Id="33608" PostTypeId="1" CreationDate="2011-01-04T14:58:41.657" Score="0" ViewCount="141" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/20653/is-it-better-to-specialize-in-a-single-field-i-like-or-expand-into-other-fields&quot;&gt;Is it better to specialize in a single field I like, or expand into other fields to broaden my horizons?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;My buddy and I who have been programming for 13 years or so were talking this morning and a question that came up was is it better to know a little of a lot (i.e. web, desktop, VB.Net, C#, jQuery, PHP, Java etc.) or is it better to know a lot of a little (meaning expert in something).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The context of this question is what makes someone a senior programmer?  Is it someone that has been around the block a few times and has been in many different situations or one that is locked in to a specific technology that is super knowledgeable in that one technology?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I see pro's and con's of both scenarios..  Just wondering what others thought. &lt;/p&gt;&#xA;" OwnerUserId="7456" LastActivityDate="2011-01-04T15:20:11.940" ClosedDate="2011-01-04T15:29:57.220" Title="Know a little of a lot or a lot of a little?" Tags="&lt;experience&gt;&lt;programming&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="1" />
  <row Id="33611" PostTypeId="2" ParentId="33606" CreationDate="2011-01-04T15:02:23.903" Score="0" ViewCount="" Body="&lt;p&gt;Did you consider &lt;a href=&quot;http://wiki.hudson-ci.org/display/HUDSON/Meet+Hudson&quot; rel=&quot;nofollow&quot;&gt;Hudson&lt;/a&gt;? It might be abit of a hassle, since it requires Java app server to run, but I think &lt;a href=&quot;http://wiki.hudson-ci.org/display/HUDSON/NAnt+Plugin&quot; rel=&quot;nofollow&quot;&gt;it could let you use your current NAnt script&lt;/a&gt; and build on top of that using other tools.&lt;/p&gt;&#xA;" OwnerUserId="11785" LastActivityDate="2011-01-04T15:02:23.903" CommentCount="2" />
  <row Id="33612" PostTypeId="2" ParentId="33606" CreationDate="2011-01-04T15:04:50.390" Score="1" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://www.automatedqa.com/products/abs/&quot; rel=&quot;nofollow&quot;&gt;Automated Build Studio&lt;/a&gt;. I want to get rid of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only reason why I don't switch to 100% &lt;strong&gt;MS Build&lt;/strong&gt; or &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms181710%28v=vs.80%29.aspx&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Team Foundation Build&lt;/strong&gt;&lt;/a&gt; is the cost it will involve to rebuild the scripts that works perfectly today. The scripts don't change much...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, for the next product, this will be &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms181710%28v=vs.80%29.aspx&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Team Foundation Build&lt;/strong&gt;&lt;/a&gt; without any hesitation for the main following reasons (they are many more):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's easy to deploy (latest version: 2010)&lt;/li&gt;&#xA;&lt;li&gt;It's fully integrated with &lt;strong&gt;Visual Studio&lt;/strong&gt; and &lt;strong&gt;Team Foundation Server&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;It's becoming a standard like MS Build&lt;/li&gt;&#xA;&lt;li&gt;It's free with Bizspark (for startups)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Since you are in .NET also, I warmly recommend you to use TFB.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't apply for Bizspark or can't afford to purchase the license, you can go for &lt;a href=&quot;http://cruisecontrol.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;CruiseControl.NET&lt;/strong&gt;&lt;/a&gt; + &lt;strong&gt;MS Build&lt;/strong&gt; and few support scripts. At a large utility company I worked for, we had used &lt;a href=&quot;http://cruisecontrol.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;CruiseControl.NET&lt;/strong&gt;&lt;/a&gt; to build, test, deploy and report all our projects. It included automatic web service deployment.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2011-01-04T15:23:27.637" LastActivityDate="2011-01-04T15:23:27.637" CommentCount="8" />
  <row Id="33613" PostTypeId="1" AcceptedAnswerId="33626" CreationDate="2011-01-04T15:06:43.993" Score="4" ViewCount="236" Body="&lt;p&gt;Hello...We are doing work for a particular client managing their CRM implementation. (The CRM itself is a product which has been largely customized to suit my client's needs). Now, they want us to manage the Oracle batch jobs/ETL as well. And for this, they are ready to provide us with Knowledge Transfer. (The Oracle batch jobs/ETL is managed in-house by the client now). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;After much persuasion, I got one of the Project Lead (designation-wise) to email the client asking for a KT Plan. (The Project Lead kept saying that they have never had KT plans before and all that for which I offered I will draft a template and even that was rejected!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Email from us to them - &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Can you please share with us the KT Plan?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Response from them - &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Not sure what is expected from my side? The KT is planned for tomorrow from 11 am onwards where Functional knowledge of existing ETL Data migration package will be shared.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;How do you handle such a client? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most likely what is going to happen is this. The person who is giving the KT will say that I have given complete Knowledge Transfer and we will go back and say that &quot;No, this was not covered. For this, they provided an overview alone and left it at that!&quot; and so on...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My Project Lead also did not respond to that email. He just said that the meeting is scheduled to happen at 11 AM (basically repeating whatever the email said and left for the day!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What could I possibly do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: Look for another job is a very helpful answer, but I am not looking for it. :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The meeting went on well where they shared a Oracle DB package (which runs to 10K LOC). They told us that ETL which fetches data from other core systems to a Staging_DB is the ETL team (another team's) responsibility. This Oracle DB package will move the data from Staging_DB to my CRM_DB which is what we are to manage/modify. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What I did&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Drafted the Minutes of Meeting as below:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Listed down what is In Scope and what is Out Scope&lt;/li&gt;&#xA;&lt;li&gt;No documentation regarding the functionality of the Database Package&lt;/li&gt;&#xA;&lt;li&gt;No reports for performance of existing Database Package to baseline the performance&lt;/li&gt;&#xA;&lt;li&gt;...&lt;/li&gt;&#xA;&lt;li&gt;...&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;And then went back to my management and told them I need time to do the documentation, baseline the existing performance and so, I will come back with clarifications which the client is supposed to answer. Let us see how that goes. &lt;/p&gt;&#xA;" OwnerUserId="5070" LastEditorUserId="5070" LastEditorDisplayName="" LastEditDate="2011-01-07T02:36:34.630" LastActivityDate="2011-01-07T02:36:34.630" Title="Knowledge Transfer without a Plan" Tags="&lt;learning&gt;&lt;project-management&gt;&lt;client&gt;&lt;knowledge&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="1" />
  <row Id="33615" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T15:17:04.440" Score="0" ViewCount="" Body="&lt;p&gt;vs2010 really expects more cores, so some of the background tasks like auto-complete will lag, and if you lag those enough it will sometimes lag the typing as well.  I personally find this EXTREMELY annoying to the point of being unusable.  YMMV.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2011-01-04T15:17:04.440" CommunityOwnedDate="2011-01-04T17:45:13.047" />
  <row Id="33616" PostTypeId="2" ParentId="33608" CreationDate="2011-01-04T15:20:11.940" Score="1" ViewCount="" Body="&lt;p&gt;An expert program knows a lot about a lot, of course.&lt;/p&gt;&#xA;" OwnerUserId="12337" LastActivityDate="2011-01-04T15:20:11.940" />
  <row Id="33617" PostTypeId="2" ParentId="33606" CreationDate="2011-01-04T15:21:38.133" Score="2" ViewCount="" Body="&lt;p&gt;Take a look at &lt;a href=&quot;http://hudson-ci.org/&quot; rel=&quot;nofollow&quot;&gt;hudson&lt;/a&gt; and MSBuild as a pair. The power comes with MSBuild's strong capabilities and hudson's &lt;a href=&quot;http://wiki.hudson-ci.org/display/HUDSON/Plugins&quot; rel=&quot;nofollow&quot;&gt;plugins&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, you could use hudson and run your NAnt scripts until you migrate to MSBuild and then it can run your MSBuild scripts as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifically addressing your points:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://wiki.hudson-ci.org/display/HUDSON/Subversion+Plugin&quot; rel=&quot;nofollow&quot;&gt;Subversion&lt;/a&gt; and &lt;a href=&quot;http://wiki.hudson-ci.org/display/HUDSON/Subversion+Tagging+Plugin&quot; rel=&quot;nofollow&quot;&gt;Tagging&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://wiki.hudson-ci.org/display/HUDSON/MSBuild+Plugin&quot; rel=&quot;nofollow&quot;&gt;MSBuild&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Peeking into AssemblyInfo was &lt;a href=&quot;http://stackoverflow.com/questions/1126880/how-can-i-auto-increment-the-c-assembly-version-via-our-ci-platform-hudson&quot;&gt;asked&lt;/a&gt; on SO, but the solution might not be to your liking&lt;/li&gt;&#xA;&lt;li&gt;MSBuild can delete files with ease&lt;/li&gt;&#xA;&lt;li&gt;&quot;Release code to deployment folders&quot; - you can have the build system skip that step and deploy it automatically using a number of methods. Or you can &lt;a href=&quot;http://wiki.hudson-ci.org/display/HUDSON/FTP-Publisher+Plugin&quot; rel=&quot;nofollow&quot;&gt;FTP&lt;/a&gt; if you like.&lt;/li&gt;&#xA;&lt;li&gt;MSBuild &lt;a href=&quot;http://blog.benhall.me.uk/2008/09/using-msbuild-to-create-deployment-zip.html&quot; rel=&quot;nofollow&quot;&gt;can zip&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Windows services, &lt;a href=&quot;http://geekswithblogs.net/michaelstephenson/archive/2009/08/23/134261.aspx&quot; rel=&quot;nofollow&quot;&gt;again&lt;/a&gt; MSBuild is your friend here.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2011-01-04T15:21:38.133" CommentCount="4" />
  <row Id="33618" PostTypeId="1" AcceptedAnswerId="33627" CreationDate="2011-01-04T15:25:57.650" Score="5" ViewCount="81" Body="&lt;p&gt;The API docs for &lt;a href=&quot;http://perldoc.perl.org/Test/More.html&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;Test::More::ok&lt;/code&gt;&lt;/a&gt; is&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;ok($got eq $expected, $test_name);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;right now in one of my apps I have &lt;code&gt;$test_name&lt;/code&gt; print what the test is testing. So for example in one of my tests I have set this to &lt;code&gt;'filename exists'&lt;/code&gt;. What I realized after I got a bug report recently, and realized that the only time I ever see this message is when the test is failing, if the test is failing that means the file doesn't exist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your opinion, do you think these &lt;code&gt;$test_name&lt;/code&gt;'s should say what the test means if successful? what it means if it failed? or do you think it should say something else? please explain why?&lt;/p&gt;&#xA;" OwnerUserId="2331" LastEditorUserId="2331" LastEditorDisplayName="" LastEditDate="2011-01-04T15:42:00.377" LastActivityDate="2011-01-04T17:14:10.767" Title="Test descriptions/name, say what the test is? or what it means when it fails?" Tags="&lt;naming-conventions&gt;&lt;error-messages&gt;" AnswerCount="2" CommentCount="3" FavoriteCount="1" />
  <row Id="33619" PostTypeId="2" ParentId="33606" CreationDate="2011-01-04T15:35:22.047" Score="1" ViewCount="" Body="&lt;p&gt;Perhaps you are asking too much of your build script and not enough of your build server -- with team city, you could easily have simple scripts which accomplish each of your bullets, in whatever language or stack that makes sense and use TeamCity build tasks to chain things together as appropriate.&lt;/p&gt;&#xA;" OwnerUserId="3762" LastActivityDate="2011-01-04T15:35:22.047" CommentCount="1" />
  <row Id="33620" PostTypeId="2" ParentId="33574" CreationDate="2011-01-04T15:40:52.563" Score="0" ViewCount="" Body="&lt;h3&gt;My recommendations are&lt;/h3&gt;&#xA;&#xA;&lt;h2&gt;&lt;a href=&quot;http://www.smarty.net/&quot; rel=&quot;nofollow&quot;&gt;Smarty&lt;/a&gt; for a templating engine, and&lt;/h2&gt;&#xA;&#xA;&lt;h2&gt;&lt;a href=&quot;http://codeigniter.com/&quot; rel=&quot;nofollow&quot;&gt;CodeIgniter&lt;/a&gt; for your web framework.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;CodeIgniter&lt;/strong&gt; has many plugins for whatever you might need, and a huge amount of stuff built in.  It is also lightweight and flexible due without locking you into a specific design path (besides MVC).  You can easily modify the code or just ignore that part of the framework altogether if you don't like how it does something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Smarty&lt;/strong&gt; can be used as a CodeIgniter library, and is a fantastic templating engine.  It has a ton of great features, is very easy and straightforward to learn and use, and makes it incredibly easy to keep all your logic in your CodeIgniter controller and your display information where it belongs.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use Smarty for pretty much everything, not only web applications, since it provides so much great functionality.  For example, you can define new template variables within a template, making it perfect for defining inline styles in HTML email where you can't use CSS in the head or an external file.  And of course it allows multiple templates to use the same controller completely seamlessly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will probably use the Shopping Cart class from CodeIgniter, located at:&#xA;&lt;a href=&quot;http://codeigniter.com/user_guide/libraries/cart.html&quot; rel=&quot;nofollow&quot;&gt;http://codeigniter.com/user_guide/libraries/cart.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use that as a jumping off point to explore the rest of the docs.  Security is good with CodeIgniter, XSS and SQL Injection protection are built in, and there is a CSRF plugin that gives you protection from cross site request forgery.&lt;/p&gt;&#xA;" OwnerUserId="12337" LastActivityDate="2011-01-04T15:40:52.563" />
  <row Id="33621" PostTypeId="2" ParentId="33532" CreationDate="2011-01-04T15:43:44.757" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Every&lt;/strong&gt; variable name should be &quot;obvious&quot; in the sense that it should convey the purpose of the variable in a way that's readable and understandable.  Ask yourself &quot;what does this variable represent in terms of the larger problem I'm trying to solve?&quot;  The answer to that question is the name of the variable.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't use names like &quot;myVar&quot; or &quot;variable1&quot;; those names tell you nothing about what the variable represents.  And for the love of God, do &lt;em&gt;not&lt;/em&gt; perpetuate the abuse of Hungarian notation that encodes primitive type information into the variable name (iCounter, szName, fRoot, etc.) if you can help it.  That's not what it's meant for, and it just clutters up code and makes names hard to read.  &lt;/p&gt;&#xA;" OwnerUserId="11246" LastActivityDate="2011-01-04T15:43:44.757" />
  <row Id="33622" PostTypeId="2" ParentId="33606" CreationDate="2011-01-04T15:44:42.777" Score="2" ViewCount="" Body="&lt;p&gt;If you're already using TeamCity, you should be able to use its existing features for most of what you need. It natively supports building Visual Studio .sln files and if you need extra stuff done to all of your projects, you can modify the .NET Framework's .targets files on your build machines, so you don't have to alter individual csproj files.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will automatically check out from Subversion, zip artifacts, allow you to control which files are considered deployable artifacts. The new version (6.0) also allows multiple build steps, so there's opportunity for xcopy deployment of artifacts to a share.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also write your own apps/tasks that can run as part of a build (via the command-line runner) and do anything you want (such as start/stop Windows processes).&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2011-01-04T15:44:42.777" />
  <row Id="33623" PostTypeId="2" ParentId="33560" CreationDate="2011-01-04T15:46:49.777" Score="1" ViewCount="" Body="&lt;p&gt;I'm sort of a lone ranger.  Regrettably, I know no other programmers.  Since I do all the work on my projects myself, I rarely tell people my ideas, and when I do, it's harmless because 1) they don't care or 2) they lack the resources, skills, dedication, etc. to act on it themselves.&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2011-01-04T15:46:49.777" CommunityOwnedDate="2011-01-05T03:00:49.167" />
  <row Id="33624" PostTypeId="2" ParentId="20985" CreationDate="2011-01-04T15:49:41.897" Score="0" ViewCount="" Body="&lt;p&gt;Can I refer you to this answer &lt;a href=&quot;http://programmers.stackexchange.com/questions/33578/what-do-you-wish-language-designers-paid-attention-to/33586#33586&quot;&gt;What do you wish language designers paid attention to?&lt;/a&gt; ?&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2011-01-04T15:49:41.897" />
  <row Id="33625" PostTypeId="1" CreationDate="2011-01-04T15:55:14.783" Score="14" ViewCount="635" Body="&lt;p&gt;I wanted to ask your opinion on anti-depressants, since I took them daily for 3 years now, but I can't be sure if I'm less perfomant with them or without, since I never withdrawed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm still at school at the age of 25, still having some motivation problems (for example I can't get used to do something at school if I don't think it will teach me something), but I'm quite motivated to work in the video-game field, since I have some personnal projects in mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know C++ programming etc, I'm still learning techniques, but do you think I should try more to do my project instead of just following the work I'm assigned to ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you had experience with depression or anti-depressants ? How did it affect your work ? Do you think that being depressed or half-depressed can improve creativity ? Do you feel it has affected the way you end up writing your algorithms ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDITED&lt;/p&gt;&#xA;" OwnerUserId="12358" LastEditorUserId="12358" LastEditorDisplayName="" LastEditDate="2011-01-04T18:30:11.870" LastActivityDate="2011-01-04T20:46:52.063" ClosedDate="2011-01-04T21:11:25.763" Title="Anti-depressant and programming: does it reduce your thinking and focusing abilities ?" Tags="&lt;lifestyle&gt;" AnswerCount="9" CommentCount="30" FavoriteCount="5" />
  <row Id="33626" PostTypeId="2" ParentId="33613" CreationDate="2011-01-04T15:58:19.240" Score="3" ViewCount="" Body="&lt;p&gt;You could try coming up with a high level list of areas to cover and what is beyond the Functional knowledge of existing ETL Data migration package.  Think of this as more of a checklist to have that could be used as an initial guideline of what to cover.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, after the meeting note any gaps and prepare a lengthy message to note what was properly covered that should go to possibly your Project Lead and/or client.  This is basically stating what wasn't covered adequately in your view that may be a risk to the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do be aware of if something is done well that should be praised as those may be rather rare here.  If something needs 101 questions to get the details then be prepared to ask all the questions.  Just because this is their first one, doesn't mean they will completely bomb on trying to get somewhere.  If you have expertise share it, but be careful of how you come across with it.  If you sound like a know-it-all with a big ego then things may get quite ugly.  However, if you offer suggestions in a way that they make sense and seem reasonable that may go over much better.  While it is manipulative, leading them to come up with some ideas that they may think are their own can work well too.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2011-01-04T15:58:19.240" />
  <row Id="33627" PostTypeId="2" ParentId="33618" CreationDate="2011-01-04T15:59:39.490" Score="2" ViewCount="" Body="&lt;p&gt;I try to name my tests after the success case (C# syntax below).  &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;[TestMethod]&#xA;public void BeginReviewPopulatesReviewer()&#xA;{&#xA;    Distribution = TestData.SubmittedToReviewerDistribution();&#xA;    Distribution.BeginReview(TestData.Marcie);&#xA;    Assert.IsNotNull(Distribution.CheckWire.Reviewer);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If I need to put a specific message to the console, I put the description of the failure:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Assert.IsNotNull(Distribution.CheckWire.Reviewer, &quot;Reviewer is null.&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2011-01-04T15:59:39.490" CommentCount="5" />
  <row Id="33628" PostTypeId="2" ParentId="33553" CreationDate="2011-01-04T16:02:41.997" Score="0" ViewCount="" Body="&lt;p&gt;This probably isn't what you are looking for, but Chrome has a DOM inspector and Javascript console enabled by default always (right click -&gt; Inspect Element) and it doesn't seem to slow anything down.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say it is definitely probably that Firebug causes some sort of performance degradation, like any plugin.  The only way to know if it's too much is to use it for a bit and see if you can tell the difference.&lt;/p&gt;&#xA;" OwnerUserId="12337" LastActivityDate="2011-01-04T16:02:41.997" />
  <row Id="33629" PostTypeId="2" ParentId="33625" CreationDate="2011-01-04T16:04:29.313" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Do you think that being depressed or&#xA;  half-depressed can improve creativity&#xA;  ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Usually it's the reverse, depression decreases creativity and activity.&lt;/p&gt;&#xA;" OwnerUserId="6579" LastActivityDate="2011-01-04T16:04:29.313" CommentCount="11" />
  <row Id="33630" PostTypeId="2" ParentId="33625" CreationDate="2011-01-04T16:06:06.237" Score="0" ViewCount="" Body="&lt;p&gt;Obviously devote the necessary amount of time to school so you can graduate eventually.  After that, spend time on your projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specifically what drugs are you on?  Adderall will definitely increase your attention span and programming ability.&lt;/p&gt;&#xA;" OwnerUserId="12337" LastActivityDate="2011-01-04T16:06:06.237" CommentCount="2" />
  <row Id="33631" PostTypeId="2" ParentId="33625" CreationDate="2011-01-04T16:06:17.147" Score="12" ViewCount="" Body="&lt;p&gt;Anti-depressants don't make a person unproductive and uncreative. Depression does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, it doesn't mean that a person who is in depression is always a worse employee than a person who is not. It's rather preferable to hire someone in depression but who knows what he's doing than someone who is unskilled, not serious, and doesn't bother about code quality by definition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So yes, you will do a better work when you will not be depressed any longer. But don't think you are worthless as a developer because you're in depression: it's false.&lt;/p&gt;&#xA;" OwnerUserId="6605" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-01-04T16:47:45.780" LastActivityDate="2011-01-04T16:47:45.780" CommentCount="3" />
  <row Id="33632" PostTypeId="2" ParentId="33625" CreationDate="2011-01-04T16:07:35.673" Score="15" ViewCount="" Body="&lt;p&gt;Depression and anti-depressants can reduce one's ability to think and focus, sure.  How much varies by the individual and drugs involved.  The standard disclaimer of, &quot;Your mileage may vary,&quot; applies here greatly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was on anti-depressants for a couple of years then off then for about 8 months and have been back on them for about 4.5 months.  I don't think they had a great impact on me as other things were likely a bigger deal health-wise for me, like being diabetic, sleep apnea, and a few other things beyond my anxiety and depression.  Being a perfectionist doesn't help, but I'm coming around on embracing that part of me and trying to moderate how much it affects my work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there was an impact there would be a little mellowing but therapy, physical exercise and a few other things all make a big difference too.  The main thing is to have some positives in life that can help pull one out of the rut/funk that can get one down.  In my case, I was having sleep problems, pain problems and life wasn't looking good at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being depressed can help creativity in terms of finding the bad in nearly everything, at least in my case.  Whether I should go here or there, I could find reasons why either was a bad choice with very little effort on my end.  This isn't necessarily a good thing as it isn't that simple to just negate the idea and that makes a positive as the world is often several shades of grey rather than black and white.  Thus, I'm not sure that it is a good boost of creativity that comes from depression.  I will admit to having a rather diverse sense of humor that is still intact though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has affected the way I end up writing algorithms in a few ways.  I may end up writing them slower as some days I may just not want to do anything.  I may end up worrying so much about how something bad will happen that I self-sabotage my work as there are cases where even experienced developers can make simple mistakes at times.  It can cause me to lose some pride in what I do as I may lose some self-esteem and feel worthless that can lead to lower quality work at times.  This is without getting into the quality of life side of things that can also suffer.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastEditorUserId="4327" LastEditorDisplayName="" LastEditDate="2011-01-04T18:47:39.920" LastActivityDate="2011-01-04T18:47:39.920" CommentCount="1" />
  <row Id="33633" PostTypeId="2" ParentId="33131" CreationDate="2011-01-04T16:15:14.747" Score="4" ViewCount="" Body="&lt;p&gt;From what I have seen, Clang definitely has the best error messages available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This however comes at a cost: it takes time to develop and test.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think therefore that this is more a mindset issue than anything else: VS and gcc are trying to provide ever more C++0x support these days, and compliance is hard to achieve, and some new features required extensive rewrite (move semantics and rvalue references come to mind).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clang on the other hand was built with nice error reporting as an advertised feature. It's an integral part of the compiler: the very &lt;code&gt;Diagnostic&lt;/code&gt; core has been built around this feature, with &lt;code&gt;Hint&lt;/code&gt;, &lt;code&gt;SourceRange&lt;/code&gt; etc... &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is also a real focus of developers (I have seen commits whose sole goals was to improve an existing error message) and suggestions on error reporting are always appreciated (either new diagnosis or improved diagnosis).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suppose this comes at the cost of diverting manpower from other tasks. Of course, for open-source software it may not be the case, since improving diagnosis is usually a relatively trivial task it may be tackled by beginners while the lead / experienced developers may focus on core features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Edit:&lt;/em&gt; Example of recent (today) commit&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Chandler Carruth modified the diagnostic emitted for arrays with a negative size to include the name of the array in the error message itself, because as of C++03 the poor's man &lt;code&gt;static_assert&lt;/code&gt; is often implemented using this trick, with the name of array being the error message intended :)&lt;/p&gt;&#xA;" OwnerUserId="4853" LastEditorUserId="4853" LastEditorDisplayName="" LastEditDate="2011-01-04T19:12:22.330" LastActivityDate="2011-01-04T19:12:22.330" CommentCount="2" />
  <row Id="33634" PostTypeId="1" AcceptedAnswerId="33635" CreationDate="2011-01-04T16:15:48.167" Score="8" ViewCount="333" Body="&lt;p&gt;We are developing a web-based, commercial point-of-sale application.  We'd like the same web site to work well on an Ipad as well a desktop browsers.  We're looking for a web framework that makes the site look good on an iPad, but also makes the site work well in a desktop browser such as Chrome, IE, or Firefox on Windows or a Mac.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found quite a few at &lt;a href=&quot;http://iphoneized.com/2009/11/18-mobile-frameworks-development-tools-creating-iphone-apps/&quot; rel=&quot;nofollow&quot;&gt;18 mobile frameworks and development tools for creating iPhone Apps&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of them, such as &lt;a href=&quot;http://www.jqtouch.com/&quot; rel=&quot;nofollow&quot;&gt;jQTouch&lt;/a&gt;, help a web site look and act more like a native iPhone application but they don't emphasize the cross platform/browser experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The exception seems to be &lt;a href=&quot;http://www.sproutcore.com&quot; rel=&quot;nofollow&quot;&gt;Sproutcore&lt;/a&gt;, which seems to be a full-fledged JavaScript MVC application framework.  I did have trouble getting some of the demos to work under Chrome, but what did work looks good. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What framework(s) have you actually used to develop web sites to work on an iPad and desktop browser?  If you didn't use a framework, how did you get it to work well under both environments?&lt;/p&gt;&#xA;" OwnerUserId="10299" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2011-01-14T22:55:55.643" LastActivityDate="2011-01-14T22:55:55.643" Title="Web framework for iPad and common desktop browsers?" Tags="&lt;web-development&gt;&lt;web-framework&gt;&lt;ipad&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="33635" PostTypeId="2" ParentId="33634" CreationDate="2011-01-04T16:20:42.433" Score="4" ViewCount="" Body="&lt;p&gt;The IPad has a pretty large screen; any website created in the conventional ways for desktop computers should work just fine on the IPad.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, many websites (this one, for example) actually seem to work better on the IPad, because the IPad can automatically eliminate the empty screen real-estate you see on the left and right.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-01-14T22:49:12.920" LastActivityDate="2011-01-14T22:49:12.920" CommentCount="1" />
  <row Id="33636" PostTypeId="2" ParentId="33560" CreationDate="2011-01-04T16:22:13.213" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;&quot;An idea has a shelf life of a banana&quot; - Bill Gates&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you either do something about it or watch someone else do it. The first thing to do (at least what I do) when you hit upon an idea is to do some serious research. Try finding out if that's already been implemented. If it has been implemented even in a broader sense of what your idea is about, evaluate your idea again and see if it is worth going the distance. The point here is, almost any idea you come up with, would have been or is being implemented, but the beauty of it lies in the implementation. Just as I read in another post on PSE, ranking and indexing were present before Google and so was social networking before Facebook.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After doing all that if I strongly believe in the idea, then I would definitely share it with a really close friend/colleague of mine and try to get his opinion on it. I may sound opinionated, but you really need to share with some one else as well. Take all the success stories (at least in the web world). They all had friends who teamed up, shared a common dream and chased it down. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So evaluate, share, go for it and never look back ! &lt;/p&gt;&#xA;" OwnerUserId="8150" LastActivityDate="2011-01-04T16:22:13.213" CommunityOwnedDate="2011-01-05T03:00:49.167" CommentCount="2" />
  <row Id="33637" PostTypeId="2" ParentId="33596" CreationDate="2011-01-04T16:24:05.673" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What makes a programming or data&#xA;  structure or algorithm book tick?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It depends on what amount of detail you like. Browse through the book, look if the book covers the topics you are looking for and those topics which were not covered nicely in the books you have used or browsed before. Peer reviews may have some useful information.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Some pointers would obviously help&#xA;  when I hang out in my neighborhood&#xA;  computer book shop the next time.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Before that goto amazon.com and books.google.com search for books on data structure and algorithms and have a read on peer reviews and comments. You can even browse through table of contents, sample pages, etc. That should give you a pretty good idea for you.&lt;/p&gt;&#xA;" OwnerUserId="3432" LastActivityDate="2011-01-04T16:24:05.673" CommentCount="1" />
  <row Id="33638" PostTypeId="2" ParentId="33578" CreationDate="2011-01-04T16:29:29.303" Score="4" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Naming Conventions&lt;/strong&gt; (I'm looking at you PHP)&lt;/p&gt;&#xA;" OwnerUserId="3542" LastActivityDate="2011-01-04T16:29:29.303" CommunityOwnedDate="2011-01-04T16:29:29.303" CommentCount="5" />
  <row Id="33639" PostTypeId="2" ParentId="33578" CreationDate="2011-01-04T16:33:11.280" Score="31" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Unicode Support by default&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This day and age, programs are being developed to be used internationally, or under the assumption that they might be used internationally. They &lt;em&gt;must&lt;/em&gt; provide support for their character sets or render programs written in that language useless.&lt;/p&gt;&#xA;" OwnerUserId="3542" LastActivityDate="2011-01-04T16:33:11.280" CommunityOwnedDate="2011-01-04T16:33:11.280" CommentCount="11" />
  <row Id="33640" PostTypeId="2" ParentId="33625" CreationDate="2011-01-04T16:39:02.153" Score="8" ViewCount="" Body="&lt;p&gt;I was diagnosed very early on with ADD, which is now commonly called ADHD. I took Ritalin for it for a short time, my parents then pulled me off of the medication once they learned of the side effects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The chemical roller coaster (mostly withdraw from Ritalin) resulted in chronic depression that lasted for about a year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience, and this is &lt;em&gt;only&lt;/em&gt; &lt;strong&gt;&lt;em&gt;my&lt;/em&gt;&lt;/strong&gt; experience, my focus was &lt;em&gt;better&lt;/em&gt; when I was the most depressed. However, as others have said, my creativity completely plummeted. I was able to do better with studies, or any other task that didn't require me to start with nothing and create something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should consider &lt;em&gt;all&lt;/em&gt; areas of your life and personality that will change drastically if you elect to stop taking any kind of medicine, and always consult a physician before making that sort of change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, try a healthy, full and balanced life style. Eat healthily, get plenty of sleep, don't drink too much caffeine (Dopamine producer), spend enough time outdoors and play with the little ones in your family whenever possible. You'd be amazed how much good spending 20 minutes in a child's imagination can do for you, and the child.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming has obviously turned out to be the most likely candidate for &lt;em&gt;my life's work&lt;/em&gt;, but it is not &lt;em&gt;my whole life&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, &lt;strong&gt;&lt;em&gt;I am not a medical doctor&lt;/em&gt;&lt;/strong&gt;, I am not qualified to give you &lt;em&gt;advice&lt;/em&gt; one way or another on what medication to take or not take. I'm simply sharing my personal experience, which happens to be relevant to your question. &lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2011-01-04T16:39:02.153" CommentCount="1" />
  <row Id="33641" PostTypeId="2" ParentId="33606" CreationDate="2011-01-04T16:48:46.763" Score="1" ViewCount="" Body="&lt;p&gt;I strongly recommend TeamCity, it is easy to configure and setup. MSBuild is preferable over NAnt for simple reason that all the project/solution files in the vs2008/2010 are MSBuild files technically, but you can configure TeamCity with MSBuild or NAnt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OfCourse, TeamCity will cost you. I personally given a choice would prefer rake, simply because the friction with Ruby tools compared to other even though psake is also a good candidate.&lt;/p&gt;&#xA;" OwnerUserId="10176" LastActivityDate="2011-01-04T16:48:46.763" CommentCount="1" />
  <row Id="33642" PostTypeId="2" ParentId="33625" CreationDate="2011-01-04T16:55:00.073" Score="3" ViewCount="" Body="&lt;p&gt;I took anti-depressants for several months a few years ago and I think they had two effects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Firstly, I never put work first ahead of family and refuse to be bullied into working extra hours, weekends etc. (Essentially the root cause of me needing the anti-depressants in the first place)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, and more relavent to your question; I'm convinced they tweaked my brain in a way that makes it harder for me to get into 'the zone'. Once there I can code away for hours as I've always been able to, but since taking the ADs I find it way harder to break through the invisible barrier of distractions and get started.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It could just be a symptom of getting older, but I'm sure the anti-depressants had a permanent affect.&lt;/p&gt;&#xA;" OwnerUserId="1949" LastActivityDate="2011-01-04T16:55:00.073" CommentCount="2" />
  <row Id="33643" PostTypeId="2" ParentId="33634" CreationDate="2011-01-04T16:57:45.367" Score="0" ViewCount="" Body="&lt;p&gt;Here is your answer: &lt;a href=&quot;http://appcelerator.com&quot; rel=&quot;nofollow&quot;&gt;Appcelerator Titanium&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It works with web technology (javascript + ruby + python + php + html + css), and you can compile your web applications into native code (iOS, Android, WebOS, PC, Linux, Mac). If you are making a PoS, perhaps you will also be interested in the desktop app feature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It includes APIs for both mobile and desktop applications, and that is theoretically the only place where your mobile application would differentiate from a web app, regardless of the web/javascript frameworks you choose (Mootools, jQuery, Ext...).&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2011-01-04T16:57:45.367" />
  <row Id="33644" PostTypeId="2" ParentId="33560" CreationDate="2011-01-04T17:06:52.173" Score="1" ViewCount="" Body="&lt;p&gt;If you like keeping your ideas to yourself, you are just addicted to &lt;a href=&quot;http://www.youtube.com/watch?v=24prm3XjVgk&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;&lt;em&gt;braincrack&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastEditorUserId="10869" LastEditorDisplayName="" LastEditDate="2011-01-04T18:20:15.607" LastActivityDate="2011-01-04T18:20:15.607" CommunityOwnedDate="2011-01-05T03:00:49.167" CommentCount="1" />
  <row Id="33645" PostTypeId="2" ParentId="33618" CreationDate="2011-01-04T17:14:10.767" Score="1" ViewCount="" Body="&lt;p&gt;Following Roy Osherove's guidelines I use the three part naming convention Method_Setup_ExpectedOutcome. This would mean that the test name says what I expect a certain method to behave like under specified outcomes, i.e. the successful outcome of the test.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, a lot of unit testing frameworks allow you to add additional messages to an assertion. That message will usually be displayed when the assertion fails. In this case I try to word the message to reflect what made this specific assertion fail.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So... for test names I go for the success case, in messages I go for the fail reason.&lt;/p&gt;&#xA;" OwnerUserId="7482" LastActivityDate="2011-01-04T17:14:10.767" CommentCount="1" />
  <row Id="33646" PostTypeId="2" ParentId="33578" CreationDate="2011-01-04T17:17:34.493" Score="11" ViewCount="" Body="&lt;p&gt;Only 5-10% of time is spent actually writing code. Language designers should pay attention to the difficulties of actually making software work, which means fixing errors and bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That means there should be from the get go a good debugger. Not some tool with arcane syntax and key commands that is only slightly better than tons of print statements.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2011-01-04T17:17:34.493" CommunityOwnedDate="2011-01-04T17:17:34.493" CommentCount="4" />
  <row Id="33647" PostTypeId="1" AcceptedAnswerId="33704" CreationDate="2011-01-04T17:22:44.470" Score="5" ViewCount="161" Body="&lt;p&gt;For our main system, we have a small monitor application that sits outside our network and periodically tries to log in to verify the system still works.  We have a problem with the monitor though in that the communications component set (Asta 3 inside Delphi applications) doesn't always connect through.  Overall, I'd say it's about 95% reliable, but that other 5% kills the monitor since it will try to log in and hang on the connection attempt (no timeout in the component).  This really isn't an issue on the client side of the system since the clients don't disconnect and reconnect repeatedly on the same application instance, but I need a way to make sure the monitor stays up and continues working even when the component fails on a run.  I have a few ideas as to which way to have the program run, the main idea being to put the communications inside a threaded data module so that if one thread crashes then another thread can test later and the program keep going.  Does this sound like a valid way to go?  Any other ideas how to ensure a reliable monitoring application with a less than 100% reliable component?  Thanks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. Not sure these tags are the most appropriate.  Tried including &quot;system-reliability&quot; as one, but not high enough rep to create.&lt;/p&gt;&#xA;" OwnerUserId="8340" LastEditorUserId="6415" LastEditorDisplayName="" LastEditDate="2011-01-04T19:42:27.423" LastActivityDate="2011-01-04T21:20:21.633" Title="Need to re-build an application - how?" Tags="&lt;design&gt;&lt;design-patterns&gt;&lt;multi-threading&gt;&lt;system-reliability&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="2" />
  <row Id="33649" PostTypeId="2" ParentId="33560" CreationDate="2011-01-04T17:29:41.710" Score="1" ViewCount="" Body="&lt;p&gt;If I have (IMHO) a really great idea, but can't do anything about it right away in terms of implementation, I still go ahead and check if there are relevant domain names available and if so, grab them.  Otherwise I keep the ideas to myself.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2011-01-04T17:29:41.710" CommunityOwnedDate="2011-01-05T03:00:49.167" CommentCount="2" />
  <row Id="33650" PostTypeId="1" AcceptedAnswerId="33672" CreationDate="2011-01-04T17:30:56.060" Score="6" ViewCount="823" Body="&lt;p&gt;I'm a beginner teaching myself to code but I would like he insight of the PSE community and helping choose where to start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My main objective is to be able to create a basic website to first test my business idea and from there iterate on it quickly to minimise my learning time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most important criteria for me is speed. An example of speed would be pre-built components available open source and not having to write one from scratch. From my research, this seems to be a death match between the following languages and frameworks:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;PHP and CakePHP &lt;/li&gt;&#xA;&lt;li&gt;Python and Django&lt;/li&gt;&#xA;&lt;li&gt;Ruby and Rails&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Assumptions:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am going to be equally good (or bad) in all 3. It is going to be equally easy to find competent developers in either language. I know this to be false already by lets assume that it is. This question is not meant to karma whore as I've seen how passionate some of these standoff questions have been and I'll be happy to turn it into a community wiki.&lt;/p&gt;&#xA;" OwnerUserId="12370" LastEditorUserId="12370" LastEditorDisplayName="" LastEditDate="2011-01-04T19:04:26.223" LastActivityDate="2011-03-20T13:28:06.197" Title="What to choose for beginner: PHP/Python/Ruby" Tags="&lt;php&gt;&lt;python&gt;&lt;ruby&gt;" AnswerCount="8" CommentCount="4" />
  <row Id="33652" PostTypeId="1" AcceptedAnswerId="41460" CreationDate="2011-01-04T17:39:23.850" Score="5" ViewCount="388" Body="&lt;p&gt;Can you recommend a good test plan template for an agile testing team?  I know there are templates for testing on the web and have already looked at some found by search engines, but I could really use something lightweight and something that has already been tried by skilled testers and is known to work well.  Many templates I've seen give me the feeling that writing test documents is expected to be a third of the work that those testers are doing, but my team really prefers to use less documentation and more actual test writing.  We use a wiki for documentation, so an approach that lends itself to living documents would be great.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My hope is that using a more structured approach to test planning will increase the usefulness of my test plan while reducing the effort to create it by allowing me to think about the tests, and not the format and structure of the plan. My workplace does not have something already on hand, so whatever I start doing might be adopted by the company.&lt;/p&gt;&#xA;" OwnerUserId="8888" LastActivityDate="2011-01-30T17:56:21.983" Title="Can you recommend a good test plan template?" Tags="&lt;best-practices&gt;&lt;testing&gt;&lt;documentation&gt;" AnswerCount="2" FavoriteCount="4" />
  <row Id="33653" PostTypeId="2" ParentId="27252" CreationDate="2011-01-04T17:40:49.977" Score="1" ViewCount="" Body="&lt;p&gt;In short, AppEngine's Datastore may not be the right tool for this job, but I'm going to try to model this anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would add a few more Models to what you already have. I assume you already have one like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class LoggedError(db.Model):&#xA;    full_stacktrace = db.StringProperty() &#xA;    error_type_name = db.StringProperty()&#xA;    code_line = db.IntegerProperty()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I would then make another model just for storing the occurrences of the different types of errors. There will be one instance of this for each type of error&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class ErrorOccurrences(db.Model):&#xA;    error_type_name = ...&#xA;    error_type_count = db.IntegerProperty()&#xA;    list_of_occurrences = db.ListProperty(int) # the line numbers the error happens on&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The three choices I see for populating ErrorOccurrences would be&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Add to &lt;code&gt;ErrorOccurrences.list_of_occurrences&lt;/code&gt; as you log the errors&lt;/li&gt;&#xA;&lt;li&gt;Setup a task or cron job to manually scan &lt;code&gt;LoggedError.all()&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Run MapReduce once you've finished adding your errors.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If you are continuously logging errors, #1 will be your best option. If you take that approach, having the counter attached to the ErrorOccurrences may not be the best method. You could make a separate counter model using the &lt;a href=&quot;http://code.google.com/appengine/articles/sharding_counters.html&quot; rel=&quot;nofollow&quot;&gt;Sharded Counter method&lt;/a&gt; to more efficiently create your summary, if you don't have to provide the line numbers right away. That would also mean you are making at least 3 writes to the datastore for every error vs. just one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope this answer made sense, and good luck.&lt;/p&gt;&#xA;" OwnerUserId="7541" LastActivityDate="2011-01-04T17:40:49.977" CommentCount="1" />
  <row Id="33654" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T17:45:13.047" Score="0" ViewCount="" Body="&lt;p&gt;I own an EeePC 1201n, a netbook with an 12&quot; screen where I use VS2008 on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The power of it is quite ok, just on startup, loading menus and compiling seems a bit slow. But the size is horrible small (even this one is a bit larger then usual). Only with an external monitor and keyboard I feel able to code a more complex programm. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider that if you use an IDE like VS either you have an worse acess to controls and windows because you hide them or you only can view your code in a window with 80x10 characters (at an 10&quot; netbook).&lt;/p&gt;&#xA;" OwnerUserId="12373" LastActivityDate="2011-01-04T17:45:13.047" CommunityOwnedDate="2011-01-04T17:45:13.047" />
  <row Id="33655" PostTypeId="2" ParentId="33650" CreationDate="2011-01-04T17:46:24.353" Score="4" ViewCount="" Body="&lt;p&gt;From a programming language standpoint your best bet would be to use Python or Ruby.  PHP, while good enough for what it does, leads quickly to the dark side--there are a number of people who have been frustrated in some way by that language here on these forums.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, there will be trade-offs:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PHP probably has the best deployment story, and the majority of shared hosting sites will support it.&lt;/li&gt;&#xA;&lt;li&gt;Both Python and Ruby have their adherants.  While I am partial to Ruby, I've heard nothing but good things about Python.  Both will lead to cleaner code than with PHP.&lt;/li&gt;&#xA;&lt;li&gt;Cleaner code means easier maintenance.  If you can't make heads or tails of a part of the app you wrote last month, you are going to have to relearn what you did.  Clean code makes it more obvious what your intentions were.&lt;/li&gt;&#xA;&lt;li&gt;Python may have quicker execution time than Rails--I haven't verified this though.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;All three have vibrant communities.  Rails was used as a major piece of the initial Twitter implementation according to a RailsCast audio blog a while back, although they've had to replace portions with more performant pieces over the years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, if I can steer you toward your choice between Python and Ruby I think you'll do very well.  You just need to do your homework for how you are going to deploy it when you are done.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2011-01-04T17:46:24.353" CommentCount="2" />
  <row Id="33656" PostTypeId="2" ParentId="30956" CreationDate="2011-01-04T17:49:26.303" Score="1" ViewCount="" Body="&lt;p&gt;I'm surprised &lt;a href=&quot;http://heroku.com/&quot; rel=&quot;nofollow&quot;&gt;Heroku&lt;/a&gt; hasn't been mentioned yet. If you're just serving sites for &lt;em&gt;small local businesses&lt;/em&gt; then the one free dyno should be sufficient for most sites. One dyno can handle about 10,000 visitors a month without trouble.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The great part about it is virtually no administration overhead and if your client needs extra capacity or scaling it's easy to adjust. It's ridiculously simple to deploy your Ruby on Rails sites to Heroku. (see this great answer of Stack Overflow &lt;a href=&quot;http://stackoverflow.com/questions/2075920/heroku-in-real-life-apps&quot;&gt;http://stackoverflow.com/questions/2075920/heroku-in-real-life-apps&lt;/a&gt; for more info.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only caveats are: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If there are no visitors for about 5 minutes, Heroku will put to sleep your free dyno instance, meaning the next page view will have a slight delay.&lt;/li&gt;&#xA;&lt;li&gt;Heroku is a Read-Only filesystem. If you need the capability to serve larger files or support uploads it fully supports Amazon S3, which is dirt-cheap (ie. pretty much free) for the typically small usage a local business would need.&lt;/li&gt;&#xA;&lt;li&gt;It might be tricky to explain to your client how Heroku hosting and Amazon S3 works, and determining whether extra dynos/workers are needed. If you turn open the tap and your site gets a lot of traffic, costs could escalate.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But that's the point of these services. You only pay for what you use. And for small sites, you don't need to pay much, if anything.&lt;/p&gt;&#xA;" OwnerUserId="12371" LastEditorUserId="12371" LastEditorDisplayName="" LastEditDate="2011-01-04T20:00:48.480" LastActivityDate="2011-01-04T20:00:48.480" />
  <row Id="33657" PostTypeId="2" ParentId="33650" CreationDate="2011-01-04T17:51:28.623" Score="1" ViewCount="" Body="&lt;p&gt;PHP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has great documentation, tons of examples and you can start without OO (although, not recommended). However, if you are not disciplined enough, you have all the freedom to become sloppy. See Jeff Atwood's article on PHP: &lt;a href=&quot;http://www.codinghorror.com/blog/2008/05/php-sucks-but-it-doesnt-matter.html&quot; rel=&quot;nofollow&quot;&gt;&quot;PHP sucks, but it doesn't matter&quot;&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a framework, I'd suggest &lt;a href=&quot;http://www.symfony-project.org/&quot; rel=&quot;nofollow&quot;&gt;Symfony&lt;/a&gt; one thousand times over CakePHP, it is extremely well documented, it has lots of well maintained framework plugins, and it is way more robust than any other web framework I know and have worked with (CakePHP, CI, Kohana, Joomla).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The speed I see in symfony is evident when you realize all code falls into its place, and specially with the aid of Doctrine (the ORM). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Slight learning curve, but really worth it, since it helps you realize the clean, ordered and maintainable code you can get with PHP.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastEditorUserId="10869" LastEditorDisplayName="" LastEditDate="2011-01-04T18:26:25.490" LastActivityDate="2011-01-04T18:26:25.490" CommentCount="3" />
  <row Id="33658" PostTypeId="2" ParentId="33578" CreationDate="2011-01-04T17:56:17.423" Score="1" ViewCount="" Body="&lt;p&gt;I like a programming language that is easy to learn, and easy to combine to create new things. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, while is attractive to have a lot of ways to write the something, I think it is better to have only one or two ways to write it. That way the program is easier to maintain. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A language whose concepts can apply across all the elements is very helpful ( I think this is called orthogonality )  So, the next time you face a new language feature, you can deduce how to use it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I understand sometimes the language syntax has to get in the way to perform better in the compilation/interpretation phase, but sometimes I feel the language designer defer this work to the developer.  For instance, multiline strings in Java or Javascript.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, the language syntax is its user interface, and as such, it should be clear, concise, intuitive, easy to use, and should respect your habits. &lt;/p&gt;&#xA;" OwnerUserId="82" LastActivityDate="2011-01-04T17:56:17.423" CommunityOwnedDate="2011-01-04T17:56:17.423" CommentCount="1" />
  <row Id="33659" PostTypeId="1" CreationDate="2011-01-04T18:00:18.697" Score="0" ViewCount="164" Body="&lt;p&gt;I've come across the &lt;a href=&quot;http://www.orchardproject.net/&quot; rel=&quot;nofollow&quot;&gt;Orchard Project CMS&lt;/a&gt; as a ASP.Net MVC CMS and was just wondering if anyone has used it/is using it and how they found it developing a website with it and writing modules for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm trying to decide whether to continue using my own MVC CMS or try to use another CMS product&lt;/p&gt;&#xA;" OwnerUserId="12296" LastActivityDate="2011-01-04T18:00:18.697" ClosedDate="2011-01-06T03:03:35.993" Title="Anyone using the Orchard Project CMS?" Tags="&lt;productivity&gt;&lt;recommendations&gt;&lt;asp.net&gt;&lt;cms&gt;&lt;asp.net-mvc&gt;" CommentCount="1" FavoriteCount="0" />
  <row Id="33660" PostTypeId="1" CreationDate="2011-01-04T18:04:48.953" Score="0" ViewCount="243" Body="&lt;p&gt;We need to develop a completely new website for customers to choose a travel product with a contract.  It needs to interface to our inventory to take the conference facility, hotel rooms etc. out of inventory once a contract has been signed (e-signature) and deposit paid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you were starting from scratch, would you in-house or contract?  If in-house, what development tools should I evaluate primarily - sharepoint, ASP.net?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are a small IT shop but we could hire 1-2 developers for this.  We need to get something up in 12-18 months.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-04T18:28:41.293" ClosedDate="2011-01-04T19:24:02.880" Title="Developing a new complex travel website" Tags="&lt;asp.net&gt;&lt;sharepoint&gt;&lt;website&gt;&lt;development&gt;&lt;e-commerce&gt;" AnswerCount="3" CommentCount="7" />
  <row Id="33661" PostTypeId="2" ParentId="33660" CreationDate="2011-01-04T18:11:12.907" Score="2" ViewCount="" Body="&lt;p&gt;How can we possibly answer this when we don't know your level of expertise or anything about your inventory systems, etc.? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, if no-one within the company has proper (i.e.: degree level) computer science or software engineering experience, I'd be very tempted to contract this out as a whole (project management and all), as you're quite likely to get in over your heads at speed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Irrespective, I'm not sure this is a good fit for a Stack Overflow question - it might be better over on &lt;a href=&quot;http://programmers.stackexchange.com/&quot;&gt;http://programmers.stackexchange.com/&lt;/a&gt; (It'll be migrated if this is the case, so there's no need to re-post.)&lt;/p&gt;&#xA;" OwnerUserId="8080" LastActivityDate="2011-01-04T18:12:10.753" />
  <row Id="33662" PostTypeId="2" ParentId="33660" CreationDate="2011-01-04T18:19:48.010" Score="1" ViewCount="" Body="&lt;p&gt;A few questions:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is the 'travel product with a contract' a core part of your business? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it is, do it in house. If not, outsource it to another firm.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as languages/platforms. What are you proficient with? What expertise do you see in the area?  The framework/language/platform doesn't really matter until you factor in how much you could afford to spend on expertise (linux) vs. spending that money on licenses (Microsoft).&lt;/p&gt;&#xA;" OwnerUserId="1577" LastActivityDate="2011-01-04T18:19:48.010" />
  <row Id="33663" PostTypeId="1" AcceptedAnswerId="33679" CreationDate="2011-01-04T18:27:14.370" Score="2" ViewCount="274" Body="&lt;p&gt;I'm nearly clueless as to what a &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/bb397687.aspx&quot; rel=&quot;nofollow&quot;&gt;lambda expression is&lt;/a&gt;, but I have a hard time believing that I couldn't finagle something to the same effect in Delphi (albeit with 900% more code).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the big advantage of lambda expressions, what am I missing out on and is there anything with the post Delphi 2009 RTL improvements that comes close to emulating the powers of C# in this regard? &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2011-01-04T18:55:57.743" Title="Delphi doesn't have Lambda Expressions and I'm a Delphi programmer, what am I missing out on?" Tags="&lt;delphi&gt;&lt;lambda&gt;" AnswerCount="4" CommentCount="5" />
  <row Id="33664" PostTypeId="2" ParentId="33660" CreationDate="2011-01-04T18:28:41.293" Score="0" ViewCount="" Body="&lt;p&gt;If it is to do with inventory, then use something with &quot;fail safe&quot; messaging like NServiceBus for .Net.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use what ever you like for the front end, it usually has little bearing, but maybe a prebuilt CMS. Any would be fine, you will customise it past recognition anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With as little information as there is, that's all I can say for now. &lt;/p&gt;&#xA;" OwnerUserId="705" LastActivityDate="2011-01-04T18:28:41.293" />
  <row Id="33665" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T18:29:25.803" Score="1" ViewCount="" Body="&lt;p&gt;Netbooks aren't great (mainly do to screen size), but I used one during my last couple years in college and it worked wonderfully for that environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One good thing is passing around the netbook to team members to examine code.&lt;/p&gt;&#xA;" OwnerUserId="12290" LastEditorUserId="6605" LastEditorDisplayName="" LastEditDate="2011-01-05T04:12:08.953" LastActivityDate="2011-01-05T04:12:08.953" CommunityOwnedDate="2011-01-04T18:29:25.803" />
  <row Id="33666" PostTypeId="2" ParentId="33560" CreationDate="2011-01-04T18:31:18.027" Score="0" ViewCount="" Body="&lt;p&gt;A great idea can have a great implementation and marketing and still doesn't take off. When I say this I'm thinking in Google Wave which is a great product that didn't achieved the expected success.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Overnight success takes time&quot; once said Jeff Atwood. When he says this, I think in Twitter, which AFAIK saw its fastest growing rate when it wasn't such a novelty anymore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have some ideas I keep to myself, because I want to implement them. But those other great ideas I will not have the time to implement, I share with the world and hope someone implements them.&lt;/p&gt;&#xA;" OwnerUserId="2328" LastEditorUserId="2328" LastEditorDisplayName="" LastEditDate="2011-01-04T18:43:34.283" LastActivityDate="2011-01-04T18:43:34.283" CommunityOwnedDate="2011-01-05T03:00:49.167" />
  <row Id="33667" PostTypeId="1" AcceptedAnswerId="33680" CreationDate="2011-01-04T18:32:00.307" Score="10" ViewCount="315" Body="&lt;p&gt;I want to keep my focus at work, but I am constontly interupted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;examples:&#xA;- the boss asks something to the whole team.&#xA;- a coleague asks something about a piece of code I wrote&#xA;- something funny on the radio&#xA;- smalltalk among coleages with a joke in between.&#xA;- ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As extra info: We are a team of 6 developpers in one room, with sales and suits constantly coming over to ask and tell us things we must and mustn't do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So how do you keep you focus and attention to your work? so you can get some things done, instead of answering to everyone and everything that interupts you?&lt;/p&gt;&#xA;" OwnerUserId="11019" LastActivityDate="2011-01-04T20:20:29.447" ClosedDate="2011-01-04T21:09:17.857" Title="How to fend off external interuptions?" Tags="&lt;focus&gt;&lt;general-purpose&gt;&lt;interruptions&gt;" AnswerCount="12" CommentCount="4" FavoriteCount="3" />
  <row Id="33668" PostTypeId="2" ParentId="33578" CreationDate="2011-01-04T18:32:29.430" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Readability&lt;/strong&gt;: The less/smallest the symbols used in the grammar, the cleaner &amp;amp; the better.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Object Oriented types&lt;/strong&gt;: Methods, not functions.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Understandability&lt;/strong&gt;: Built-in fluent interfaces, comprehensive and short names for library classes/interfaces and the sorts.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10869" LastEditorUserId="10869" LastEditorDisplayName="" LastEditDate="2011-01-04T18:41:21.150" LastActivityDate="2011-01-04T18:41:21.150" CommunityOwnedDate="2011-01-04T18:32:29.430" CommentCount="6" />
  <row Id="33669" PostTypeId="2" ParentId="33663" CreationDate="2011-01-04T18:34:18.400" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I have a hard time believing that I couldn't finagle something to the same effect in Delphi (albeit with 900% more code). &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Well... That's what you're missing out on then - being able to accomplish certain things without writing a huge amount of plumbing. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's syntactic sugar, in the same sense that things like bounded loops, functions, and user-defined types are sugar - it provides a means of both simplifying and writing code that clearly expresses what you're doing without getting bogged down in the petty details of how you're wrestling the CPU into actually doing it.&lt;/p&gt;&#xA;" OwnerUserId="63" LastActivityDate="2011-01-04T18:34:18.400" CommentCount="2" />
  <row Id="33670" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T18:35:46.547" Score="0" ViewCount="" Body="&lt;p&gt;If all you needed is something like &lt;a href=&quot;https://bespin.mozillalabs.com/&quot; rel=&quot;nofollow&quot;&gt;Bespin&lt;/a&gt; to program with it might not be so bad.  Actually it might be kind of nice.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus, if you're writing apps targeted at mobile markets you'll be able to eat your dogfood on the bus!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, since you're not, don't do this. You need the extra monitor space.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2011-01-04T18:35:46.547" CommunityOwnedDate="2011-01-04T18:35:46.547" />
  <row Id="33671" PostTypeId="2" ParentId="33663" CreationDate="2011-01-04T18:38:02.020" Score="4" ViewCount="" Body="&lt;p&gt;You're not missing anything, really.  Lambdas are just a different form of anonymous methods, which were introduced in Delphi 2009, with a very minimal syntax that makes them cryptic and hard to read.  (No function header to speak of, for example, which means that you can't tell the type of the variables you're working with by looking at the code.)&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2011-01-04T18:38:02.020" CommentCount="13" />
  <row Id="33672" PostTypeId="2" ParentId="33650" CreationDate="2011-01-04T18:38:23.347" Score="16" ViewCount="" Body="&lt;p&gt;Working with a language is usually a personal preference.  Pick a language out of the 3 you mentioned and build something relatively simple:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;One simple web page&lt;/li&gt;&#xA;&lt;li&gt;How media(css, js) is handled in the framework&lt;/li&gt;&#xA;&lt;li&gt;Connect to a database&lt;/li&gt;&#xA;&lt;li&gt;One table to store your data&lt;/li&gt;&#xA;&lt;li&gt;A form to save information into the table&lt;/li&gt;&#xA;&lt;li&gt;Deploy it live&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Do the above with all 3 of the languages and pick the one that makes your life easy.  You won't know which language fits your personality until you try them all to achieve the same task.&lt;/p&gt;&#xA;" OwnerUserId="5968" LastActivityDate="2011-01-04T18:38:23.347" CommentCount="9" />
  <row Id="33673" PostTypeId="2" ParentId="33650" CreationDate="2011-01-04T18:38:49.867" Score="1" ViewCount="" Body="&lt;h1&gt;Neither&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;You should not start programming in a dynamic language with lots of flexibility. You should start programming in a strongly typed language with &lt;strong&gt;little or no&lt;/strong&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/Syntactic_sugar&quot; rel=&quot;nofollow&quot;&gt;syntactical sugar&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend Java as a &lt;em&gt;beginner programming language&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't recommend &lt;em&gt;any&lt;/em&gt; &quot;beginner&quot; web language, but if you force me to choose I would say &lt;strong&gt;PHP&lt;/strong&gt;&lt;sup&gt;1&lt;/sup&gt; because of it's community and lack of sugar. Sure you can do some pretty hairy things with it (&lt;code&gt;$this-&amp;gt;$var&lt;/code&gt; anyone?) but from a beginners perspective it will be far less confusing then Ruby or Python. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not only is it less confusing, but because of it's nature as a templating language it will also force you to adopt good HTML / CSS practices rather then learn a new templating language.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Learn Languages, not Components&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;You mention speed as a desirable language trait.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The most important criteria for me is speed. An example of speed would be pre-built components available open source and not having to write one from scratch. From my research, this seems to be a death match between the following languages and frameworks:&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is learning components specifically, rather then learning the underlying logic behind them. You can probably create a half decent website in Rails in a half an hour. Does that mean you should? &lt;strong&gt;Absolutely not&lt;/strong&gt;. There is no substitute for rolling your own, especially as a beginner. You'll gain experience and knowledge that cannot be replaced anywhere.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;TL;DR:&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;If you really want to learn something, not simply throw up a web site, I recommend learning &lt;em&gt;programming&lt;/em&gt; with a strongly typed language and then progressing outward. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;sup&gt;&#xA;1: I would also recommend &lt;a href=&quot;http://codeigniter.com&quot; rel=&quot;nofollow&quot;&gt;CodeIgniter&lt;/a&gt; to CakePHP or any other web framework. For reasons of speed, simplicity, and clarity. Everyone has copied Rails, think different.&#xA;&lt;/sup&gt;&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2011-01-04T18:38:49.867" CommentCount="7" />
  <row Id="33674" PostTypeId="2" ParentId="33667" CreationDate="2011-01-04T18:40:24.217" Score="7" ViewCount="" Body="&lt;p&gt;I worked in open spaces for about the last 10 years and I faced such situations a lot of times. Some colleagues went crazy, lots of arguments, etc. Conclusion: it's ineffective to ask them to stop. They wouldn't understand anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is what I would do if I was you:&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Solution 1&lt;/h2&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Ask for an &lt;strong&gt;individual office&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Close the door&lt;/strong&gt; when you have to focus with a notice &quot;&lt;code&gt;if this door is closed, it means I'm out or in deep and uninterruptible concentration. Please send me an email instead&lt;/code&gt;&quot;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;h2&gt;Solution 2&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;If you can't get an individual office and you are really suffering from your situation, you can &lt;strong&gt;quit&lt;/strong&gt; and take a job where you have one.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Solution 3&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;If you can't afford to quit, you have no choice than &lt;strong&gt;accepting&lt;/strong&gt; your situation as it is. Do you best to love it. Positive thinking will make your life better ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The last sentence is based on the following &lt;a href=&quot;http://en.wikipedia.org/wiki/Epictetus&quot; rel=&quot;nofollow&quot;&gt;Epictetus&lt;/a&gt; quote:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Don't demand that things happen as you wish, but wish that they happen as they do happen, and you will go on well. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;(I apply solution 3 and I'm happier in open spaces)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2011-01-04T19:10:36.670" LastActivityDate="2011-01-04T19:10:36.670" CommentCount="3" />
  <row Id="33675" PostTypeId="2" ParentId="33667" CreationDate="2011-01-04T18:42:30.490" Score="1" ViewCount="" Body="&lt;p&gt;Get a boss that says, &quot;Leave my people alone!&quot; And once the other people leave you alone, hopefully the development team can get into some kind of flow and leave each other alone.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-04T18:42:30.490" CommentCount="2" />
  <row Id="33676" PostTypeId="2" ParentId="33667" CreationDate="2011-01-04T18:46:45.497" Score="9" ViewCount="" Body="&lt;p&gt;Can you use headphones? When there are to many distractions here I put some on, big ones noise reduction if you want. My boss lets us as he understands our need for quite. Of couse if someone comes over to talk to you don't just take it off one ear, instead take it off your head completely so the person knows they can talk to you and that you aren't half there.&lt;/p&gt;&#xA;" OwnerUserId="3541" LastActivityDate="2011-01-04T18:46:45.497" />
  <row Id="33677" PostTypeId="2" ParentId="33667" CreationDate="2011-01-04T18:49:35.503" Score="1" ViewCount="" Body="&lt;p&gt;Decent noise-isolating headphones are worth their weight in gold.&lt;/p&gt;&#xA;" OwnerUserId="12290" LastEditorUserId="12290" LastEditorDisplayName="" LastEditDate="2011-01-04T19:54:07.367" LastActivityDate="2011-01-04T19:54:07.367" CommentCount="3" />
  <row Id="33678" PostTypeId="2" ParentId="33667" CreationDate="2011-01-04T18:49:52.967" Score="0" ViewCount="" Body="&lt;p&gt;Bring it up to your boss that this is causing issues and that you think you could be a lot more productive if left alone. Certainly close off any distraction on your computer and go for the headphones as suggested for the noise limiting factor. Stop participating in the side conversations when you should be concentrating. Also, ask nicely if somebody comes back later as you are busy right now. Train the people you interact with.&lt;/p&gt;&#xA;" OwnerUserId="8309" LastActivityDate="2011-01-04T18:49:52.967" />
  <row Id="33679" PostTypeId="2" ParentId="33663" CreationDate="2011-01-04T18:53:58.657" Score="3" ViewCount="" Body="&lt;p&gt;Let's say in Delphi you have anonymous inline methods like the &lt;code&gt;delegate&lt;/code&gt; in this C# code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var squared = Enumerable.Range(0, 100)&#xA;    .Select(&#xA;         delegate(int a)&#xA;         {&#xA;             return a * a;&#xA;         }&#xA;    );&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Then the lambdas are simply a shorter way of writing that:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;var squared = Enumerable.Range(0, 100)&#xA;    .Select(&#xA;         a =&amp;gt; a * a&#xA;    );&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The code snippets above are identical from the IL point of view.&lt;/p&gt;&#xA;" OwnerUserId="2328" LastActivityDate="2011-01-04T18:53:58.657" CommentCount="1" />
  <row Id="33680" PostTypeId="2" ParentId="33667" CreationDate="2011-01-04T18:54:22.030" Score="14" ViewCount="" Body="&lt;p&gt;Something I've found that can help with interruptions for questions, small talk, etc is to have an &lt;strong&gt;internal chat program running&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Why?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Colleagues will become accustomed to messaging each other (especially if you wear headphones and try not to answer unless get your visual attention) instead of verbally asking questions.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Benefits?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Firstly, it removes the need for a split second immediate answer, so you can at a minimum finish your current train of thought.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Secondly, you can use your 'status' to indicate if you cannot be interrupted at that particular time.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;With a little perseverance you can eventually 'train' your colleagues into a more productive method of communicating with you that doesn't have to always break you out of the zone.&lt;/p&gt;&#xA;" OwnerUserId="2673" LastActivityDate="2011-01-04T18:54:22.030" CommentCount="4" />
  <row Id="33681" PostTypeId="2" ParentId="33663" CreationDate="2011-01-04T18:55:57.743" Score="2" ViewCount="" Body="&lt;p&gt;The &quot;900% more code&quot; you mention in your question makes an even bigger difference than you think. It means in practice that you just do without the feature in question, because who's going to write 900% more code? I'll give you an example. A couple of years ago, I wrote a SQL parser in Haskell using a parser combinator library called Parsec. A colleague asked why I didn't use C# to write it. My answer was that if I had to write it in C#, it would have been twenty times as much code or more, so I wouldn't have written it at all.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2011-01-04T18:55:57.743" CommentCount="4" />
  <row Id="33682" PostTypeId="2" ParentId="33606" CreationDate="2011-01-04T18:56:50.790" Score="2" ViewCount="" Body="&lt;p&gt;We approach things as three different activities, Build, Deploy and Install. We use TFS for the build server with a few callouts to Powershell. We then use Powershell to accomplish all of the Deploy and Install pieces which are fairly complex and across multiple servers both local and cloud. I have been very happy with learning Powershell over MSBuild or some other tool. I have also had good experience with Visual Build in the past.&lt;/p&gt;&#xA;" OwnerUserId="8309" LastActivityDate="2011-01-04T18:56:50.790" />
  <row Id="33683" PostTypeId="2" ParentId="33667" CreationDate="2011-01-04T18:58:50.140" Score="4" ViewCount="" Body="&lt;p&gt;A good pair of headphones is always a great way to fend off the incidental interruptions (small talk, radio, etc.).  This is especially true if you have some music that allows you to get to the &quot;zone&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, it also sounds like you have sales folks and supervisors coming directly to your desk.  Is there a compelling reason why they are interacting with you instead of your supervisor?  If your supervisor isn't an active developer, he should probably be handling those requests, not you.  If there is a compelling reason, and the questions aren't time-critical, request they ask in a less intrusive manner (e.g., email or im).  Gently educating the outside folks that are interrupting you should prove quite beneficial as well; often they don't realize there is such a thing as a &quot;zone&quot; or how long it takes to get back there.&lt;/p&gt;&#xA;" OwnerUserId="6455" LastActivityDate="2011-01-04T18:58:50.140" />
  <row Id="33684" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T19:05:56.707" Score="0" ViewCount="" Body="&lt;p&gt;I work on a 13&quot; MacBook Pro occasionnaly, when I'm not at my school where I can enjoy a 22 wide screen, and I have to admit that the big screen is really better to work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As on computer's speed, I don't think this really is a big matter, you compile a lot of files at the beginning, it takes time, but when you write your code and recompile, it takes much less time to compile one file to change one .obj, so I disagree with the argument of computer speed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I agree that 3D/2D artists, video makers are in need of big computing power.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course my laptop is not a netbook (core 2 duo), since I didn't really test one. But honestly, I don't really think that it is a big matter if it takes 3s to compile a single CPP file. More would start to be annoying.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And obviously, a netbook keyboard seems quite hard to use for a programmer.&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2011-01-04T19:05:56.707" CommunityOwnedDate="2011-01-04T19:05:56.707" />
  <row Id="33685" PostTypeId="2" ParentId="33625" CreationDate="2011-01-04T19:10:50.657" Score="3" ViewCount="" Body="&lt;p&gt;My two cents here, everyone reacts individually to medication, if you feel it is reducing your focus and creativity, talk to your doctor. There are lots of anti-depressant drugs, you may need a different one that does not affect those things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an aside you need to work on that motivation thing, or you will have trouble when you are out of school. If you are being paid to do a job, you need to be able to focus and do it even the boring parts that don't interest you. Even when you are depressed, even when your spouse has recently died and you are grieving or when a family member is diagnosed with cancer (all of which I have dealt with in the last three years, work doesn't stop because your personal life has problems at least not if you want to keep getting paid). I know you didn't mention personal problems as a reason why you have trouble focusing and being motivated but if you have trouble when the work is boring, it is even harder when there are other things happening in your life. It's one reason why learning how to do the work whether you feel motivated or not should be a top priority for you. Persistence is far more important than motivation. Now is the time to learn to work when you aren't motivated.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2011-01-04T19:10:50.657" />
  <row Id="33686" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T19:11:39.213" Score="0" ViewCount="" Body="&lt;p&gt;I have Asus 1201N (1.6 Ghz Dual Core, 3 GB Ram, Nvidia ION).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It works quite OK when developing but compared to workstation (HP Z800) is visibly slow. The difference is of a few orders of magnitude.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, is usable and I use it for most of my dev work.&lt;/p&gt;&#xA;" OwnerUserId="782" LastActivityDate="2011-01-04T19:11:39.213" CommunityOwnedDate="2011-01-04T19:11:39.213" />
  <row Id="33687" PostTypeId="2" ParentId="33625" CreationDate="2011-01-04T19:15:34.000" Score="2" ViewCount="" Body="&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am somewhat in the same waters. I've been suffering from depression for 2 and a half years and that has affected every aspect of my life including programming which is the only thing I enjoy doing. When I feel worse than normal I can't concentrate and can't program. That has kept me from learning many new things. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is nothing positive to be gained from being depressed, I assure you being depressed doesn't improve anything in your life so no, it doesn't improve your creativity. I haven't yet been on anti-depressants for personal reasons but generally they should help. If you think they're not helping, then maybe you should speak with your counselor.  &lt;/p&gt;&#xA;" OwnerUserId="12270" LastActivityDate="2011-01-04T19:15:34.000" />
  <row Id="33688" PostTypeId="2" ParentId="33667" CreationDate="2011-01-04T19:22:13.230" Score="3" ViewCount="" Body="&lt;p&gt;While this isn't a total remedy, another tactic is to shift your work hours.  Coming in really early or working really late may help with less people around.  An extreme of this is being in the office at 3 in the morning or working over the weekend, but sometimes that can work as a way to get around some of the interruptions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a boss that understands developers, you could try to get the boss to tell the sales and suits what kind of penalties could be incurred if someone interrupts developers too often.  I'm thinking of either some internal currency or cold hard cash that says, &quot;If you stop a developer 10 times in a week, you'll pay $10 into a penalty jar,&quot; or something like that.  How realistic this is depends on how professional are those around you of course.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2011-01-04T19:22:13.230" CommentCount="1" />
  <row Id="33689" PostTypeId="2" ParentId="33667" CreationDate="2011-01-04T19:26:23.403" Score="4" ViewCount="" Body="&lt;p&gt;Try the &lt;a href=&quot;http://www.pomodorotechnique.com&quot; rel=&quot;nofollow&quot;&gt;pomodoro technique&lt;/a&gt;. I'd suggest you try &lt;a href=&quot;http://code.google.com/p/pomodairo/&quot; rel=&quot;nofollow&quot;&gt;pomodairo&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The pomodoro technique consists in timing yourself for working without interruptions in 25 minute lapses with 5 minute breaks, after 4 pomodoros you get a longer break. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the things that I find particularly useful about this technique is that, ironically, since you must completely stop at minute 25 and you are often caught in the middle of something, you interrupt yourself, however, the difference here that you know where you left your &quot;train of thought&quot; and then you can go back up again and again, in contrast, it is different when someone interrupts you and you get &quot;thrown out&quot; your train of thought, having a tougher time getting back up.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastEditorUserId="10869" LastEditorDisplayName="" LastEditDate="2011-01-04T20:20:29.447" LastActivityDate="2011-01-04T20:20:29.447" CommentCount="2" />
  <row Id="33690" PostTypeId="1" CreationDate="2011-01-04T19:28:34.557" Score="8" ViewCount="412" Body="&lt;p&gt;I have developed several side projects for my pleasure at home after my daily job hours and I have never been under pressure with them because you know, if it does not work It can be fixed tomorrow with no rush.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm tempted to start a paid side project with a contractor and I would like to know, from your experience, if it could be bearable or too stressful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This paid project allows me to decide the total amount of hours work in a week upfront and, speaking of my daily job, it has peeks of stressful weeks but also quiet days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How stressful can be a paid side project?&lt;/p&gt;&#xA;" OwnerUserId="74" LastEditorUserId="74" LastEditorDisplayName="" LastEditDate="2011-01-09T23:54:13.660" LastActivityDate="2011-01-09T23:54:13.660" Title="How stressful can a paid side project be?" Tags="&lt;career&gt;&lt;recommendations&gt;&lt;job-market&gt;&lt;stress&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="2" />
  <row Id="33691" PostTypeId="2" ParentId="33560" CreationDate="2011-01-04T19:30:12.407" Score="0" ViewCount="" Body="&lt;p&gt;For me sharing ideas is not a problem, it's getting people to listen what's harder. Usually it requires too much effort, all that explaining and convincing. It's really similar to &quot;not invented here&quot;-syndrome, in that people feel much more motivated by their own ideas, and suffer from &quot;not invented in my head&quot;-syndrome.&lt;/p&gt;&#xA;" OwnerUserId="8706" LastActivityDate="2011-01-04T19:30:12.407" CommunityOwnedDate="2011-01-05T03:00:49.167" />
  <row Id="33692" PostTypeId="2" ParentId="33667" CreationDate="2011-01-04T19:31:43.090" Score="1" ViewCount="" Body="&lt;p&gt;This may well get downvoted, but interruptions can be a &lt;strong&gt;good&lt;/strong&gt; and even an &lt;strong&gt;important&lt;/strong&gt; thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Firstly, you need breaks from the screen and keyboard.  UK Health and Safety law suggests about 10 minutes out of every hour away from the screen and keyboard, at least not looking at them.  Distractions from colleagues help break programmers out of their trances.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly, it is important to get on with your colleagues and be part of the office community, little conversations, the fun things that happen and indeed participating in frequent group discussions about whatever questions come along help to build the team dynamic and ensure that everyone knows what is going on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We work in teams because isolation is bad, otherwise we would all work from home with headphones on and not see anyone.  It is bad for your mental health to be isolated and not in the best interests of the company either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I guess my answer equates to, &lt;strong&gt;embrace the distractions&lt;/strong&gt;!&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2011-01-04T19:31:43.090" CommentCount="8" />
  <row Id="33693" PostTypeId="2" ParentId="33667" CreationDate="2011-01-04T19:32:18.677" Score="0" ViewCount="" Body="&lt;p&gt;I would set up regular meeting for all your examples, if there is any need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Sales people&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;let them drive some document and discuss it in the scheduled meeting. &lt;/li&gt;&#xA;&lt;li&gt;If something urgent happens, let them route to your boss before you so that your boss suffers too(^^)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Fellow developer asking something&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If the other developers keep asking, AGAIN set up meeting for an hour or two so that your co-worker ask away the questions and that will deal with it. &lt;/li&gt;&#xA;&lt;li&gt;By repeating this process, all developers should share general knowledge about product.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Small talk&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Sometimes small talk are good. If you don't want to small talk, do not participate it. That works for me&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6924" LastActivityDate="2011-01-04T19:32:18.677" />
  <row Id="33694" PostTypeId="2" ParentId="33560" CreationDate="2011-01-04T19:37:42.357" Score="0" ViewCount="" Body="&lt;p&gt;Thinking about an idea makes you notice things related to that idea much easier. It is called priming. So, there is very much a benefit in having a list of ideas or even a document for each idea trying to describe it and different aspects of what would make it viable (monetization strategy?) Over time, you go over the idea in your own head multiple times and based on new contexts and new learned skills, the idea may get more and more polished.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sharing your ideas similarly allows you to polish them. If you tell the idea 3 times to different people and they all ask the same question, that can indicate the issue with the idea (or with your delivery of it). Try to learn from it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the same time, I don't think it is possible to give away a &lt;strong&gt;complete&lt;/strong&gt; idea, only facets of it. And if you can summarize all of your thoughts into 10 minutes conversation, that is probably not a fully developed idea anyway. For an example, here is &lt;a href=&quot;http://blog.outerthoughts.com/2006/10/how-e-books-could-revolutionize-language-learning/&quot; rel=&quot;nofollow&quot;&gt;an idea I shared on my blog&lt;/a&gt; and had some feedback on since. Except that even that long write up is just a small part of the idea and is missing some core aspects that I think hold the most promise (monetization, building the community, gamification, etc). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also have a document collection of smaller ideas on wide variety of topics, some of which I have shared freely in various degree of details.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I would say, share early versions of the idea, polish your thinking, polish your presentation, keep trying to add to your idea based on what you are learning or experiencing now. Then, when the time comes, you will be much further along than you expect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And if &lt;a href=&quot;http://fonolo.com/features/visualdialing&quot; rel=&quot;nofollow&quot;&gt;somebody else&lt;/a&gt; implements &lt;a href=&quot;http://blog.outerthoughts.com/2007/01/calling-for-support-calling-for-trouble-the-business-idea/&quot; rel=&quot;nofollow&quot;&gt;a similar idea&lt;/a&gt; before you get to it, enjoy that. You did not have time for it anyway and it validates that you have worthwhile ideas. It means that maybe your other ideas (you do have several, right?) may also be viable.&lt;/p&gt;&#xA;" OwnerUserId="2435" LastActivityDate="2011-01-04T19:37:42.357" CommunityOwnedDate="2011-01-05T03:00:49.167" />
  <row Id="33695" PostTypeId="2" ParentId="33578" CreationDate="2011-01-04T19:42:21.310" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Distributed Computation&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The free lunch is over. Today one needs programs that run on multiple cores / multiple processors (and on special circumstances multiple computers).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately writing multi-threaded code is hard conceptually, so there is really no need to add the language as a barrier.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;C++0x&lt;/strong&gt; use of &lt;strong&gt;future&lt;/strong&gt; is certainly interesting, for all that it's brought as a library and does not free you from actual synchronization issues (you know, those that are just so easy to solve...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really like &lt;strong&gt;Go&lt;/strong&gt;'s approach to the problem: multithreading is built-in, and the approach taken (channels and goroutines) sets a much easier mindset than the traditional semaphore / mutex / lock approaches. It's still easy to access a non-synchronized structure concurrently though (Go has pointers) or to deadlock (cycle of wait on channels...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think that languages favoring immutability of data, like functional languages, may have the right of it (I do like experience there though).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, the &lt;strong&gt;Actor&lt;/strong&gt; model may be our next target. It was meant for distributed computing too.&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2011-01-04T19:42:21.310" CommunityOwnedDate="2011-01-04T19:42:21.310" CommentCount="2" />
  <row Id="33696" PostTypeId="2" ParentId="33650" CreationDate="2011-01-04T19:44:13.350" Score="0" ViewCount="" Body="&lt;p&gt;I have no experience with ruby and don't know enough about it to give any opinion about it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you are looking for ways to hash out a business model, and the learning of actual coding strategies and such isn't on top of your list, the differences between python and php aren't important compared to the functionality of the framework you'll use. In both languages you can get easy hands-on experience, you can use OO but also do without, you can get from scratch to small scale not all that hard, but for anything beyond that, you'll want to get the framework. The language is of lesser importance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I don't have enough experience with any particular framework to comment on it, but I would advise you to focus on the needs you have there, and not let the language stand in the way. &lt;/p&gt;&#xA;" OwnerUserId="9237" LastActivityDate="2011-01-04T19:44:13.350" />
  <row Id="33697" PostTypeId="2" ParentId="33578" CreationDate="2011-01-04T19:46:48.793" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Network capabilities&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A language that ships without some network support is pretty lame in today's world.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most real world applications need to communicate over some kind of network:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;automatic update&lt;/li&gt;&#xA;&lt;li&gt;database access&lt;/li&gt;&#xA;&lt;li&gt;webservices&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It's also a cornerstone of distributed/cloud computing support of course.&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2011-01-04T19:46:48.793" CommunityOwnedDate="2011-01-04T19:46:48.793" CommentCount="3" />
  <row Id="33698" PostTypeId="2" ParentId="33667" CreationDate="2011-01-04T19:49:20.943" Score="0" ViewCount="" Body="&lt;p&gt;At my previous work, we were in a similar situation. We were constantly bombarded by the people working with written/media content and our team of developers was always frustrated with their demands and/or interruptions. Our boss always diffused the situation as well as he could. After I left, eventually, they switched floor and the team is as happy as ever.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Things that worked a while then:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Having a lead developer that knows&#xA;how to deal with constant demand as&#xA;well as setting boundaries for the&#xA;team members to be able to work in&#xA;peace.&lt;/li&gt;&#xA;&lt;li&gt;Some decent noise-isolating in-ear earphones. I had Sennheiser CX300 that served me well for 4 years. Of course, with decent music.&lt;/li&gt;&#xA;&lt;li&gt;Train people, through positive reinforcement, to instead of rushing to your desk, email first or open a ticket in some ticketing system.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;tell them that you won't do anything by spoken word, there has to be a formal record.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Regarding the joking around within your team, that's a sticky situation. You can only solve that by distancing yourself. However, be glad that your co-workers are funny! Office jokes sure got me through the days.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2011-01-04T19:49:20.943" />
  <row Id="33699" PostTypeId="2" ParentId="33578" CreationDate="2011-01-04T19:55:05.047" Score="5" ViewCount="" Body="&lt;p&gt;The most important thing is that your language needs to have a &quot;style&quot;.  For example, I would call C a pointer-based systems programming language.  I'd call Erlang a highly concurrent functional programming language.  Some other languages (like C++ and arguably Java) are what Allan Kay called &quot;agglutinative&quot; languages:  Frankenstein languages consisted of a bunch of features tacked together.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next most important is that changes to the language itself should be a last resort.  Even the most benign-sounding can become complex when combined with the other features of the language.  I would say that to put a new feature in a language, you need to:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Prove that it is genuinely necessary.&lt;/li&gt;&#xA;&lt;li&gt;Prove that it can't be done in a library.&lt;/li&gt;&#xA;&lt;li&gt;Prove that it belongs in the language.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2011-01-04T19:55:05.047" CommunityOwnedDate="2011-01-04T19:55:05.047" CommentCount="2" />
  <row Id="33700" PostTypeId="2" ParentId="33578" CreationDate="2011-01-04T19:58:03.187" Score="8" ViewCount="" Body="&lt;p&gt;The ability to modify the language to suit your needs is a big one for me. For Lisp that's done with macros, for Tcl with uplevel. To a lesser extent, Ruby uses lambdas and the like. I just want the ability to add new control structures that suit the problem rather than molding my problems around the control structures available. As a simple example, the &quot;do .. until&quot; construct that exists in some languages but not other is a cleaner way to handle some cases than &quot;while&quot;, being able to add new structures to meet other cases is extremely useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the more general sense, this is metaprogramming... but I mostly use it for building new control structures.&lt;/p&gt;&#xA;" OwnerUserId="3107" LastActivityDate="2011-01-04T19:58:03.187" CommunityOwnedDate="2011-01-04T19:58:03.187" CommentCount="4" />
  <row Id="33701" PostTypeId="1" CreationDate="2011-01-04T19:59:49.880" Score="1" ViewCount="158" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/67/can-you-recommend-some-good-programming-blogs&quot;&gt;Can you recommend some good programming blogs?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;So I am rebuilding the blogs/sites I read regularly for the new year and was looking for recommendations. Right now, I basically get my info from here, Hacker news and sometimes reddit/r/programming, but would like to follow a couple of bloggers regularly rather than relying on aggregate sites alone&lt;/p&gt;&#xA;" OwnerUserId="3755" LastActivityDate="2011-01-04T20:07:55.727" ClosedDate="2011-01-04T20:35:03.820" Title="Which blogs and sites do you follow" Tags="&lt;career&gt;&lt;learning&gt;&lt;productivity&gt;&lt;blogs&gt;" AnswerCount="0" CommentCount="3" FavoriteCount="1" />
  <row Id="33703" PostTypeId="2" ParentId="30956" CreationDate="2011-01-04T20:16:40.217" Score="0" ViewCount="" Body="&lt;p&gt;Maybe I'm missing something here, but why cant you search around and select one or two shared or vps web hosting services you recommend, and have the customer set up an account there?  Then you set up their site for them there.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Though as others have mentioned, if you have your own server, you can just as easily set them up on that and automatically charge their credit card every month just as the hosting service would.  You wouldnt have to manually 'bill' them every month.  This isnt 1980.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2011-01-04T20:16:40.217" />
  <row Id="33704" PostTypeId="2" ParentId="33647" CreationDate="2011-01-04T20:26:27.647" Score="3" ViewCount="" Body="&lt;p&gt;Is there a reason you dont switch to an networking component that supports a timeout?  That would seem to be the common sense solution here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you use Indy or Synapse or a simple TSocket connection?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you cant realistically switch, you can:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Create a command line program that does the check, and use CreateProcess from a parent app to start it and stop it if it hangs.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Pester the people who make ASTA to put in a timeout setting.  It seems awfully wierd for there not to be one there already.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="897" LastEditorUserId="897" LastEditorDisplayName="" LastEditDate="2011-01-04T21:20:21.633" LastActivityDate="2011-01-04T21:20:21.633" CommentCount="5" />
  <row Id="33705" PostTypeId="1" CreationDate="2011-01-04T19:29:57.377" Score="2" ViewCount="345" Body="&lt;p&gt;A quick search on monster.com on different scripting languages resulted on Perl having much more job opportunities than Python and Ruby (in Europe, I didn't check for the rest of the world), and since I'm just a newbie programmer I was wondering why is this? I've read everywhere that Python and Ruby are much better languages, and much more organized. Having coded in python and php myself, Perl's code seems so alien to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyways, sorry for my poor English, it's my second language, and this is not a critique on the Perl language, I was just wondering whether it's a good idea to learn it at this point or not.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-04T20:36:03.203" ClosedDate="2011-01-04T20:57:53.130" Title="Why is there still so much offer for Perl programmers?" Tags="&lt;perl&gt;&lt;scripting&gt;&lt;jobs&gt;&lt;job-hunting&gt;" AnswerCount="5" CommentCount="3" />
  <row Id="33706" PostTypeId="2" ParentId="33705" CreationDate="2011-01-04T19:31:58.947" Score="9" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I've read everywhere that Python and Ruby are much better languages, and much more organized.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Technical qualities of a programming language have very little to do with its popularity.&lt;/p&gt;&#xA;" OwnerUserId="15165" LastActivityDate="2011-01-04T20:36:03.203" CommentCount="7" />
  <row Id="33707" PostTypeId="2" ParentId="33705" CreationDate="2011-01-04T19:40:04.450" Score="3" ViewCount="" Body="&lt;p&gt;IMHO, Python and Ruby are better languages for building websites from scratch, but Perl is stronger for fast scripts with string/file manipulation. In addition, since Ruby is relatively new in the market, there are a lot of systems already written in perl that should be maintained. I suspect those numbers will change over the next few years.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-04T20:36:03.203" CommentCount="3" />
  <row Id="33708" PostTypeId="2" ParentId="33705" CreationDate="2011-01-04T19:40:22.337" Score="7" ViewCount="" Body="&lt;p&gt;I think it comes down to the fact that Perl is a known quantity for the people out there doing the hiring. There aren't &lt;strong&gt;as many&lt;/strong&gt; legacy apps out there in Python or Ruby at this stage.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-04T20:36:03.203" CommentCount="1" />
  <row Id="33709" PostTypeId="2" ParentId="33705" CreationDate="2011-01-04T20:17:50.643" Score="4" ViewCount="" Body="&lt;p&gt;HELLO WE ARE THE PERL COMMUNITY WE SUCK AT MARKETING.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The point being that lacking rabid advertising has little impact on how useful a language actually is(n't?). Perl got a lot of bad marketing (somewhat deservedly) due to tons of horrible legacy code working out in the wild. A language won't make you code badly; Being a bad coder will.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-04T20:36:03.203" CommentCount="4" />
  <row Id="33710" PostTypeId="2" ParentId="33705" CreationDate="2011-01-04T20:29:46.700" Score="3" ViewCount="" Body="&lt;p&gt;You may be making a mistake about the &lt;em&gt;type&lt;/em&gt; of job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There might be more jobs in web development with PHP and Ruby, but more jobs in system or database administration with Perl, for instance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not saying Perl isn't good for web development, of course, I'm just saying, not all jobs are the same. There's not much point looking at totals of job vacancies if you don't know what each individual job is about.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-04T20:36:03.203" />
  <row Id="33711" PostTypeId="2" ParentId="30956" CreationDate="2011-01-04T20:45:41.373" Score="0" ViewCount="" Body="&lt;p&gt;What you need to do is figure out what your clients or potential clients need or want, and how to get it to them conveniently and profitably.  Have you talked to some small business owners to see what they actually are willing to pay for?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're trying to sell them a service that they don't already have, and therefore know (or at least believe) they can get along without, requiring them to contract with somebody else is going to be an additional barrier, and likely often a deal-breaker.  If you can't at best present them with a standard deal to sign up for, you're adding complication and work to something they already may be dubious about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My gut feeling is that you're trying to slice your services too finely, and that you're going to have to look less at what you want to get paid for and more at what your customers are willing to pay for.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2011-01-04T20:45:41.373" />
  <row Id="33712" PostTypeId="2" ParentId="33625" CreationDate="2011-01-04T20:46:52.063" Score="1" ViewCount="" Body="&lt;p&gt;This was intended as comment to JB King's answer but it grew a bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I have had more or less similar experience as described &lt;a href=&quot;http://programmers.stackexchange.com/questions/33625/anti-depressant-and-programming-does-it-reduce-your-thinking-and-focusing-abilit/33632#33632&quot;&gt;here&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depression or anxiety can be have impact on cognitive, emotional and physical state of an individual. For example, I have often suffered from abdominal pain caused by depression and/or anxiety, and took Anti-you-name-it pills for a year and a half, and while they would quieten the symptoms, the main cause of depression were still the thoughts in my head. And that's something most of prescription drugs can't negate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is, in my layman opinion, the main reason for boosting or reducing your productivity while depressed. It can sometimes be beneficiary if you take your mind off the problems by doing some programing (with or without the help of pills), but sometimes the problems are/or seem too overwhelming and you just can't concentrate on anything besides them, thus severely crippling your ability to do any cognitive task. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice is, love is the greatest anti-depressant, though it can sometimes backfire...&lt;/p&gt;&#xA;" OwnerUserId="5572" LastActivityDate="2011-01-04T20:46:52.063" />
  <row Id="33713" PostTypeId="1" CreationDate="2011-01-04T21:02:28.163" Score="6" ViewCount="498" Body="&lt;p&gt;I've been checking out some of the latest multiplayer engines in HTML all supporting multi-user games (Very nice) - I believe all these engines use Web Sockets for communication. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;That’s why we’ve decided to disable&#xA;  support for WebSocket in Firefox 4,&#xA;  starting with beta 8 due to a&#xA;  protocol-level security issue. Beta 7&#xA;  of Firefox has support for the -76&#xA;  version of the protocol, the same&#xA;  version that’s included with Chrome&#xA;  and Safari. Beta 8 of Firefox 4 will&#xA;  remove that support. Anne van Kesteren&#xA;  of Opera also announced that Opera are&#xA;  dropping Websocket support. We are&#xA;  confident that other browser&#xA;  developers will follow.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Source: &lt;a href=&quot;http://hacks.mozilla.org/2010/12/websockets-disabled-in-firefox-4/&quot; rel=&quot;nofollow&quot;&gt;Websockets Disabled in FireFox 4&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've just come accross the above, so no sockets in Firefox 4 or Opera.... thats big. Is anyone aware of an alternate or is it Chrome or do we need to just sit and wait for the next release of the major browsers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More info : Rocket Engine appears to work with all browsers including IE8 (http://rocketpack.fi/engine/) what will it be using as a method of communication?&lt;/p&gt;&#xA;" OwnerUserId="11052" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2011-01-04T21:52:58.203" LastActivityDate="2011-01-24T21:57:39.903" Title="Is there an alternative to HTML Web Sockets, now that Firefox 4 has disabled them?" Tags="&lt;html5&gt;&lt;sockets&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="33714" PostTypeId="2" ParentId="33578" CreationDate="2011-01-04T21:04:28.883" Score="7" ViewCount="" Body="&lt;p&gt;Thanks for a great question. You're getting some pretty good answers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not to glaze over your eyes, but I look at a programmer as an information channel. Ideas/concepts/requirements go in one end, and code comes out the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you take a set of requirements (no matter how they are stated) and the set of code on an enormous whiteboard, and draw lines mapping each requirement to the code that implements it, the complexity of that graph would depend on how well the code expresses the requirements. Ideally, it should be pretty direct and one-to-one, but that's hard to get in practice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I measure the domain-specificity of a language as the extent to which it simplifies that graph. That is an extremely desirable property, and it can be approached in any number of ways, by anything from just defining the right classes/routines (nouns/verbs), to macros, to writing your own parser and interpreter/compiler.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let me just give an example of what I mean.&#xA;For the problem of creating flexible dialog user interfaces, &lt;a href=&quot;http://stackoverflow.com/questions/371898/how-does-differential-execution-work&quot;&gt;&lt;em&gt;this technique&lt;/em&gt;&lt;/a&gt; eliminates having to write event-handlers, data-moving, most of the stuff typically done in UIs. It also results in source code reduction of about an order of magnitude. The meta-language is really just a few routines and macros in C/C++/Lisp, and I've also done it in languages without macros.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If implementing a requirement can be done with 5 point edits to code, or with 10, doing it with 5 is not only less code, but fewer chances to miss a step and put in a bug. So the more domain-specific a language is, the smaller, more maintainable, and more bug-free is the code. I think we need to know how to drive toward that.&#xA;It does &lt;em&gt;not&lt;/em&gt; mean the code is more readable, &lt;em&gt;unless&lt;/em&gt; the reader has invested in the learning curve to understand the technique.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2011-01-04T21:14:02.213" LastActivityDate="2011-01-04T21:14:02.213" CommunityOwnedDate="2011-01-04T21:04:28.883" />
  <row Id="33715" PostTypeId="2" ParentId="7568" CreationDate="2011-01-04T21:11:30.007" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://jsfiddle.net/&quot; rel=&quot;nofollow&quot;&gt;JSFiddle.net&lt;/a&gt;.  It lets you put in a mixture of JavaScript, HTML, and CSS and displays the result.&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2011-01-04T21:11:30.007" />
  <row Id="33716" PostTypeId="2" ParentId="9" CreationDate="2011-01-04T21:22:43.957" Score="1" ViewCount="" Body="&lt;p&gt;One of the best ways I've found to stay focused is to &lt;strong&gt;give myself a reward&lt;/strong&gt; at the end, so that I have something to work towards...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a prime example of why the Stack Overflow model works so well, because &lt;em&gt;we want to be rewarded for our efforts!&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you like working out, go for a run afterwards.&lt;/li&gt;&#xA;&lt;li&gt;If you are reading a good book, don't read it over lunch break; save it for after work.&lt;/li&gt;&#xA;&lt;li&gt;If you have a favorite TV show, put that on after work.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There are lots of ways to self-reward.  Some are healthy, some are not; be careful which ones you choose.  Everyone is different.&lt;/p&gt;&#xA;" OwnerUserId="4442" LastActivityDate="2011-01-04T21:22:43.957" CommunityOwnedDate="2011-01-04T21:22:43.957" />
  <row Id="33717" PostTypeId="2" ParentId="33500" CreationDate="2011-01-04T21:24:22.487" Score="0" ViewCount="" Body="&lt;p&gt;I'm using an Acer Aspire One, with the RAM bumped to 2GB. It handles Visual Studio 2010 reasonably well, though it is no speed demon. I'm able to work on different programming projects without much difficulty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, the screen is small, so if you will be using a netbook heavily, and mostly in one place (e.g. on a desk), invest in a screen to connect up for some more working space. In my case the netbook is a secondary machine so it's not a big issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: also, some of JetBrains' IDEs, such as WebStorm, PHPStorm, and RubyMine, work pretty well if you can deal with a specialized editor.&lt;/p&gt;&#xA;" OwnerUserId="8187" LastActivityDate="2011-01-04T21:24:22.487" CommunityOwnedDate="2011-01-04T21:24:22.487" />
  <row Id="33718" PostTypeId="2" ParentId="7568" CreationDate="2011-01-04T21:26:57.907" Score="1" ViewCount="" Body="&lt;p&gt;Not exactly what you're looking for, but if you want to learn RoR, you can use the &lt;a href=&quot;http://railsforzombies.org/&quot; rel=&quot;nofollow&quot;&gt;Rails for Zombies&lt;/a&gt; tutorials, which include an online IDE.&lt;/p&gt;&#xA;" OwnerUserId="5312" LastActivityDate="2011-01-04T21:26:57.907" />
  <row Id="33719" PostTypeId="2" ParentId="33690" CreationDate="2011-01-04T21:31:39.390" Score="8" ViewCount="" Body="&lt;p&gt;It really depends on a lot of factors&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What other (competing) commitments do you have outside of work?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Wife/Husband?&lt;/li&gt;&#xA;&lt;li&gt;Kids?&lt;/li&gt;&#xA;&lt;li&gt;Sporting?&lt;/li&gt;&#xA;&lt;li&gt;Personal projects?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;How complex will the task you be taking on?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Estimated hours it takes up? (Hence, total weeks you will be committed)&lt;/li&gt;&#xA;&lt;li&gt;Possibility that you will stuff things up? (Familiarity with the task, etc)&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Will it require ongoing support? (Probably more than you are currently factoring it)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Answer all those questions and you will have an idea. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The more commitment it takes from you, the more stressful.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The more competing commitments you have, the more stressful.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From personal experience, the most stressful aspects were time it took away from being with my wife and the inability to commence/complete any of my personal projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You've already highlighted one of the stress-differences between a personal project and a paid project:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if it does not work I can fix it tomorrow with no rush&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Expect to feel more pressure later on in the project then you do in the first part.&lt;/p&gt;&#xA;" OwnerUserId="2673" LastActivityDate="2011-01-04T21:31:39.390" CommentCount="4" />
  <row Id="33720" PostTypeId="2" ParentId="33690" CreationDate="2011-01-04T21:36:57.107" Score="3" ViewCount="" Body="&lt;p&gt;It is not different than your actual job. If done correctly (see below), your side projects will not be stressful. What will be stressful is having side projects &lt;strong&gt;in addition&lt;/strong&gt; of your daily job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is how to reduce stress input to the maximum. One basic advice:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Never make a promise you can't keep&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;And second one as a bonus (maybe more important than the previous one):&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Have everything written&lt;/strong&gt;: emails, contracts (signed) or faxes. Don't settle anything on the phone&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Most of the conflicts you can have come from misunderstanding and dark zones. Reduce them by confirming all your discussions by email.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2011-01-04T21:53:29.573" LastActivityDate="2011-01-04T21:53:29.573" CommentCount="3" />
  <row Id="33721" PostTypeId="2" ParentId="6754" CreationDate="2011-01-04T21:39:04.453" Score="0" ViewCount="" Body="&lt;p&gt;Every career path has it's pro's and con's and programming is no different. If you think that being a programmer is not a good career for your kids it might be a good time for you to change careers. Let them decide. If they show interest in being a programmer teach them how to code the projects that they want to do. Coach them on how it can sometimes be a stressful career and they will eventually decide if it's something that they want to do as a career or not. Don't push them either way because it will only cause conflict in your home.&lt;/p&gt;&#xA;" OwnerUserId="12395" LastActivityDate="2011-01-04T21:39:04.453" CommunityOwnedDate="2011-01-04T21:39:04.453" />
  <row Id="33722" PostTypeId="1" AcceptedAnswerId="33726" CreationDate="2011-01-04T21:48:59.187" Score="4" ViewCount="220" Body="&lt;p&gt;My question aim to draw a fine line between Requirements Elicitation and Requirements Analysis. What is the difference between these two?&lt;/p&gt;&#xA;" OwnerUserId="11205" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2011-01-04T22:05:36.770" LastActivityDate="2011-01-04T22:39:23.643" Title="What is the difference between requirements Elicitation and Requirements Analysis in the real world?" Tags="&lt;requirements&gt;&lt;analysis&gt;&lt;elicitation&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="33723" PostTypeId="2" ParentId="33713" CreationDate="2011-01-04T21:52:27.753" Score="2" ViewCount="" Body="&lt;p&gt;You can always use &lt;a href=&quot;http://joshuakehn.com/blog/view/2/WebSocket-Tutorial-with-Node-js&quot; rel=&quot;nofollow&quot;&gt;Flash Sockets&lt;/a&gt; though the native Web Socket implementation will be faster with less hassle.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As it stands, without Flash there is no decent substitute. Many libraries that wrap many different transport modes under one &quot;hood&quot; but nothing that performs the same.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2011-01-04T21:52:27.753" CommentCount="3" />
  <row Id="33724" PostTypeId="2" ParentId="33446" CreationDate="2011-01-04T21:53:05.377" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Refactor until it makes sense.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Refactoring is making changes that affect how something occurs without changing what occurs.  At the beginning of a project you won't understand a lot of the &quot;how&quot;, so be careful about making sweeping changes to logic.  This doesn't mean you shouldn't refactor.  In fact, I usually refactor code just to get a good grip on what's happening.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take your example.  You figured out that &quot;IsImage&quot; doesn't check for whether something is in image, instead it checks whether the form is modified so you can change the method name to &quot;IsFormModified&quot;.  This won't change the behavior at all, but certainly makes the code more readable.  Next, I strip out repetition.  There's often a good deal of it, especially in a patternless code base.  Big ++ to readability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The trick is simply not to overexert yourself. If you are making a change that you can't fully visualize and conceptualize in your brain, then its too damn complicated.  Eventually, all the changes will become simple and your done or you can start implementing design patterns and optimizations.&lt;/p&gt;&#xA;" OwnerUserId="11107" LastEditorUserId="11107" LastEditorDisplayName="" LastEditDate="2011-01-04T22:00:00.083" LastActivityDate="2011-01-04T22:00:00.083" />
  <row Id="33725" PostTypeId="2" ParentId="6754" CreationDate="2011-01-04T21:53:38.190" Score="0" ViewCount="" Body="&lt;p&gt;First of all, I want my kids to do what they'll be good at, and encourage things that they are naturally strong in, and have a passion for.  My daughter (4yo) currently wants to either design dresses or be a teacher or the president (of the USA).  My son (2yo) doesn't talk much yet, but given his aptitude to rearrange my apps on my IPhone and rearrange cables on my home entertainment system, I'd imagine he'll do something more technical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, I don't have high hopes for the future of computer programming in America once the Chinese, Indian, and other up-and-coming countries' economies are more mature; rather, given how America stacks up in math scores, etc, compared to the rest of the world, I expect America's comparative advantage to be in professions that are more business and/or creativity-based, particularly those that are focused on international transactions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if one or both of my kids decide they want to be a programmer, I'll totally support it, and do what I can to make sure they have opportunities I didn't have (quality of university they go to, etc).&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2011-01-04T21:53:38.190" CommunityOwnedDate="2011-01-04T21:53:38.190" />
  <row Id="33726" PostTypeId="2" ParentId="33722" CreationDate="2011-01-04T21:56:32.627" Score="6" ViewCount="" Body="&lt;p&gt;Based on my understanding of the English language and trying to be logical about what should be the difference:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Requirements Elicitation = Requirements Gathering.  This is asking what are the requirements, what if this, what if that, etc.  This is about asking the questions and getting responses.  How well are the answers is another matter entirely.  This requires the stakeholders to answer their part of what is to be done and why.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Requirements Analysis.  This is more the organizing of answers to the first part.  Which solution is optimal?  What are the trade-offs of various possible implementations.  In this part there may be the odd question but it isn't the main point as this is about seeing which solution may be better under various constraints,e.g. which is the fastest or cheapest.  This is more about how is something to be done and why does that way make more sense than another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another way to think of this is that the Elicitation has to come before the Analysis as otherwise you are analyzing nothing, which may not be that useful or productive.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2011-01-04T21:56:32.627" />
  <row Id="33727" PostTypeId="2" ParentId="6754" CreationDate="2011-01-04T21:57:44.750" Score="0" ViewCount="" Body="&lt;p&gt;With luck, kids will be what they want and what they make the effort to be. They're really &lt;em&gt;smart&lt;/em&gt; (though sometimes stupid in their teens). We parents think we have much to say about it, but that's our imagination.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best we can do is support them as far as possible, let them know we care, and then get out of the way.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2011-01-04T21:57:44.750" CommunityOwnedDate="2011-01-04T21:57:44.750" />
  <row Id="33728" PostTypeId="2" ParentId="31548" CreationDate="2011-01-04T22:03:08.710" Score="0" ViewCount="" Body="&lt;p&gt;Guido van Rossum is &lt;a href=&quot;http://python-history.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;writing about the history of Python&lt;/a&gt;. It struck me that  behind Python and other programming languages van Rossum has worked on was the intention to have a language customized for the problem at hand. Of course, he was working for a research institution with ample experience on designing and compiling programming languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After reading most of the blog, I went back to the task at hand, which is adding some new features to a program I started writing over ten years ago. Having been away from the code for a long while, I had to study it to know how to best approach the new task, and Behold! Most of what the core of the code does is to work around the strictness of Delphi Pascal to create an environment in which extensibility, attribute inheritance, and unlimited undo is easy to do! I created my own Python-like programming language without knowing I was doing it. On hindsight (everything is clearer in hindsight), it would have been best to embed Python in the core, or go ahead and implement a custom language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But that was then. Today, mainstream languages have an enormous amount of support from all kind of high-quality libraries and tools, something very difficult to have with your own language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The story told, my suggestion is to use Python for this pragmatic reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The language is nice an comfortable to program in. The learning curve is mild and it doesn't get in your way like corporate/bureaucratic/committee languages do (sorry Java and C++).&lt;/li&gt;&#xA;&lt;li&gt;If you can't find what you need in the standard or the third-party libraries, you probably don't want it.&lt;/li&gt;&#xA;&lt;li&gt;Python makes it easy to fall back to another programming language when you decide that's what you need.&lt;/li&gt;&#xA;&lt;li&gt;Python is an extraordinary base to create a Domain-specific Language (i.e. your own language) without renouncing to modern tools and libraries (take a look at what &lt;strong&gt;Pyparsing&lt;/strong&gt; has showed to be possible in Python).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8500" LastActivityDate="2011-01-04T22:03:08.710" />
  <row Id="33729" PostTypeId="2" ParentId="33650" CreationDate="2011-01-04T22:04:51.343" Score="5" ViewCount="" Body="&lt;p&gt;Python is an excellent beginners language thanks to it's simple syntax. I'd recommend you start with Python, and go through a tutorial. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly you try Ruby, PHP and why not also a little bit of Java, and then you make up your mind which you like best.&lt;/p&gt;&#xA;" OwnerUserId="9529" LastActivityDate="2011-01-04T22:04:51.343" />
  <row Id="33730" PostTypeId="2" ParentId="33446" CreationDate="2011-01-04T22:12:53.613" Score="0" ViewCount="" Body="&lt;p&gt;I came into this exact situation when I took the job I am at now.  The previous programmer was not a professional programmer (in coding standards or career).  The first 3 months I took getting acquainted with the code and fixing the major bugs.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thankfully, one of the main reasons I was brought in was to rebuild the application from the ground up so I am not expected to live with this code indefinitely.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;FWIW, my inherited web app had no OO code and only a little function programming so with only a few exceptions I did not have to worry about making changes to one page affecting the rest of the app.  My biggest challenge was understanding the new domain knowledge inherent to the system and figure out exactly what the app did.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like many others said:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Refactor (but slowly)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make heavy use of a dev environment that you can run simultaneously with the production and allow end-users test with you.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I would start off with some of the easier code to refactor to allow yourself time to understand the previous coder's logic.  Sometimes it's not what you might call 'logical'.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;TEST TEST TEST&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If it's too much of a mess inform your boss that it needs to be taken back to square one as the cost/time of maintaining the bad code could be much higher than a ground-up refactor. &lt;/p&gt;&#xA;" OwnerUserId="9479" LastActivityDate="2011-01-04T22:12:53.613" />
  <row Id="33731" PostTypeId="1" CreationDate="2011-01-04T22:11:14.930" Score="1" ViewCount="492" Body="&lt;p&gt;I was searching for a book to learn C#, but now i'm kinda stuck.&#xA;I found many people asking the same question, and many people gave answers, but there are so many books about C# that it is really hard to decide which one to take.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now i reduced my choice on two books, but I just can't decide between them.&#xA;Namely, there are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Programming C# 4.0&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;and&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;C# 4.0 In A Nutshell&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The first thing I want to know, are these good choices? I'm not completely new to programming, but I just didn't find the right language until know, but i think C# is the one I was searching for. I know all the bassic stuff from Delphi/Java/Python so I think i'm not a complete beginner in programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there anyone out there that read both books and can cleary explain whats the difference between them? I haven't found many reviews and sort of, so I just don't know which one to chose. Or is there any book that is better suiting me?&lt;/p&gt;&#xA;" LastActivityDate="2011-01-06T02:35:52.080" CommunityOwnedDate="2011-01-05T19:23:10.827" Title="Which C# Book to take?" Tags="&lt;c#&gt;&lt;books&gt;" AnswerCount="16" CommentCount="5" FavoriteCount="1" />
  <row Id="33732" PostTypeId="2" ParentId="33731" CreationDate="2011-01-04T22:16:41.983" Score="0" ViewCount="" Body="&lt;p&gt;If you can't decide, then why not by them both. I am sure one covers things that the other does not.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-04T22:19:28.127" CommunityOwnedDate="2011-01-05T19:23:10.827" />
  <row Id="33733" PostTypeId="2" ParentId="33731" CreationDate="2011-01-04T22:20:08.830" Score="4" ViewCount="" Body="&lt;p&gt;This is a highly subjective question, and you're not going to get a &quot;right&quot; answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I wouldn't even bother with a book. There are SO many free videos and online resources for learning C#/.NET that it seems silly to pay $50+ for a book. Personally, I'd start here instead: &lt;a href=&quot;http://msdn.microsoft.com/en-us/beginner/default.aspx&quot; rel=&quot;nofollow&quot;&gt;http://msdn.microsoft.com/en-us/beginner/default.aspx&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you REALLY want a book, I recommend anything from WROX, as their books seem to contain the fewest amount of errors, but this is just an opinion&lt;/p&gt;&#xA;" OwnerUserId="4210" LastActivityDate="2011-01-04T22:20:08.830" CommunityOwnedDate="2011-01-05T19:23:10.827" CommentCount="3" />
  <row Id="33734" PostTypeId="2" ParentId="33731" CreationDate="2011-01-04T22:22:17.100" Score="0" ViewCount="" Body="&lt;p&gt;It's impossible for anyone to recommend a single book for you.  You have your own learning style which will be different from most other people.  Instead, just go down to the local book store and spend 30 minutes or so going through each book.  Somewhere in that block of time you'll know which one to get.&lt;/p&gt;&#xA;" OwnerUserId="3377" LastActivityDate="2011-01-04T22:22:17.100" CommunityOwnedDate="2011-01-05T19:23:10.827" />
  <row Id="33735" PostTypeId="2" ParentId="32533" CreationDate="2011-01-04T22:22:40.327" Score="1" ViewCount="" Body="&lt;p&gt;There are many important courses, depending on which direction you're planning to go. However, assuming you can program at all, the most important course has got to be:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Data structures and algorithms&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Virtually everything in computing comes back to handling data using algorithms. Pay particular attention to arrays and hashtables, as they're by far the most useful data structures in common use, but lists and trees and graphs (well, lists are restricted types of trees, and trees are restricted types of graphs) are going to be important as well. Moreover, understanding algorithms is vital to producing code that isn't terrible. (Otherwise you'll do things that are just terrible, like using an O(&lt;i&gt;n&lt;/i&gt;&lt;sup&gt;3&lt;/sup&gt;) algorithm where an O(&lt;i&gt;n&lt;/i&gt; log&lt;i&gt;n&lt;/i&gt;) one will do.) If your CS degree does not have a &lt;em&gt;mandatory&lt;/em&gt; DS+A course on it, it's not CS. Or software engineering. Or even just programming.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Aside from that, the course that I've found most useful over the years in multiple fields has been:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Concurrency&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many aspects to concurrency, but I'd expect an understanding of the difference between shared-memory and message-passing. I'd also want there to be strong coverage of locking strategies (mutexes, semaphores, etc.) and transactions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is vital for understanding parallelization, of course, but it's also critical for anything distributed (e.g., writing a service that's exposed to the internet, &lt;em&gt;even if it is single-threaded&lt;/em&gt; since the clients will be asynchronous anyway). I understand that it is also useful for writing games (which are typically multithreaded) and working with embedded devices.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Aside from that, I think that it's in most undergraduates' best interest for them to be exposed to as many different ideas as possible. Lots of programming languages and paradigms. Lots of different areas of application. A reasonable amount of math (again, because it's useful so often) and also some exposure to human-factors and psychology (because any software that interacts with users is dealing with people). After all, you never know exactly what you're going to be doing in the future, so planning for flexibility is a great life strategy.&lt;/p&gt;&#xA;" OwnerUserId="9673" LastActivityDate="2011-01-04T22:22:40.327" CommunityOwnedDate="2011-01-05T14:29:46.470" />
  <row Id="33736" PostTypeId="2" ParentId="32533" CreationDate="2011-01-04T22:25:37.673" Score="1" ViewCount="" Body="&lt;p&gt;Hands down the number one thing CS students should be fluent in is English.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without an understanding of both spoken and written English you will forever be at a disadvantage.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just look at the myriad of questions that come in on the Stack sites.  Way too many of them are hard to decipher.  Some people use a mix of l33t, texting (not sure the correct term).  Others make a statement and simply append a question mark while missing important little thinks like verbs or adjectives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't communicate then you won't be able to make yourself understood much less understand what others are saying.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everything else is just details.  If you can communicate, are of at least average intelligence and can understand what you read then you too can have a successful career programming.&lt;/p&gt;&#xA;" OwnerUserId="3377" LastActivityDate="2011-01-04T22:25:37.673" CommunityOwnedDate="2011-01-05T14:29:46.470" />
  <row Id="33738" PostTypeId="2" ParentId="33690" CreationDate="2011-01-04T22:31:11.647" Score="1" ViewCount="" Body="&lt;p&gt;It is &lt;strong&gt;very stressful no matter what promises the contractor gave you&lt;/strong&gt;, period.&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2011-01-04T22:31:11.647" />
  <row Id="33739" PostTypeId="2" ParentId="33731" CreationDate="2011-01-04T22:31:25.177" Score="-1" ViewCount="" Body="&lt;p&gt;If you already know Delphi and Java you can you already know most of the C#1 stuff. C#1 is basically a mix of Delphi and Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I'd jump right to the introduction chapter of the &lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=DFBF523C-F98C-4804-AFBD-459E846B268E&quot; rel=&quot;nofollow&quot;&gt;C# specification&lt;/a&gt; and then read Jon Skeet's &quot;C# in Depth&quot; for the advanced stuff.&lt;/p&gt;&#xA;" OwnerUserId="8669" LastActivityDate="2011-01-04T22:31:25.177" CommunityOwnedDate="2011-01-05T19:23:10.827" />
  <row Id="33740" PostTypeId="1" CreationDate="2011-01-04T22:37:33.067" Score="5" ViewCount="283" Body="&lt;p&gt;Sometimes after work I'll come home and have a beer or two and I've found that once I have a beer in me, my desire to code drops precipitously.  I'm not talking about getting hammered or anything, but I can't seem to get up the gumption to do any coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm still fine to do other things, i.e.- paying bills, playing games, reading, etc, it's just coding.  I know that some people prefer to code with some beer in them.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this normal, or do I need to practice coding under the influence so if the need ever arises, I'm ready for it. (I will only be coding on pet projects, nothing serious while CUI)&lt;/p&gt;&#xA;" OwnerUserId="9479" LastActivityDate="2011-01-04T23:15:54.407" ClosedDate="2011-01-04T23:20:40.517" Title="coding after a couple beers" Tags="&lt;self-improvement&gt;&lt;coding&gt;&lt;humor&gt;" AnswerCount="5" CommentCount="5" />
  <row Id="33741" PostTypeId="2" ParentId="33722" CreationDate="2011-01-04T22:39:23.643" Score="3" ViewCount="" Body="&lt;p&gt;Requirements Elicitation is about finding out what customers (and potential customers) &lt;em&gt;say&lt;/em&gt; they &lt;em&gt;think&lt;/em&gt; they want. It produces a wishlist (well, you might be polite and call it something else, but that's what it is).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Requirements Analysis is about distilling the wishlist to produce a list of actual requirements together with dependencies between them. It also involves saying that some things on the wishlist are out of scope for one reason or another (e.g., you're proposing to do a project on some client software and the customers asked for you to do something that clearly requires major server changes).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you've done the requirements analysis, you're in a position to come up with a plan taking into account the resources and time available. You're also passing a project milestone; if you've not got coherent requirements, it's time to abandon the project as impossible to plan.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;For reference, I like to keep the output of the Elicitation in a wiki and the outcome of Analysis as feature requests in a bug tracker with cross-references. I'm sure there are other ways to do it.&lt;/p&gt;&#xA;" OwnerUserId="9673" LastActivityDate="2011-01-04T22:39:23.643" />
  <row Id="33742" PostTypeId="2" ParentId="33731" CreationDate="2011-01-04T22:48:46.080" Score="4" ViewCount="" Body="&lt;p&gt;I highly recommend C# in a Nutshell, I bought it and have been very pleased with the coverage and quality. It's written by the creator of Linqpad, if that means anything to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is meant as a language compendium and reference, not as a programming introduction, just to caution you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want more opinions than just mine, here is the &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596800959&quot; rel=&quot;nofollow&quot;&gt;Amazon page&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for people who share David Stratton's opinion that a book for this subject is useless, there are a couple of reasons I disagree:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Videos are great for tutorials and learning things, but not so much as references or quickly looking up something, both of which books shine at.&lt;/li&gt;&#xA;&lt;li&gt;Online references are great for quickly looking something up but typically don't have the same structured, comprehensive approach to a topic that books do.&lt;/li&gt;&#xA;&lt;li&gt;I can take a book on the bus, plane, camping etc. (and don't have to worry about batteries)&lt;/li&gt;&#xA;&lt;li&gt;Some people just like the opportunity to read things on paper rather than a screen sometimes&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7814" LastActivityDate="2011-01-04T22:48:46.080" CommunityOwnedDate="2011-01-05T19:23:10.827" CommentCount="2" />
  <row Id="33743" PostTypeId="2" ParentId="33740" CreationDate="2011-01-04T22:49:10.617" Score="13" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;do I need to practice coding under the influence so if the need ever arises, I'm ready for it. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That makes very, very little sense.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're coding recreationally, there's no &quot;need&quot;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're coding professionally, there's essentially no situation where this would matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're on call and the server crashes on Saturday night, and you have to race home from the pub to restore things, you shouldn't be coding.  You should get things running and wait until you're sober before making code changes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't code with a beer in you. Good.  Don't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The world has enough half-baked bad code.  Don't add to it.  Please.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-04T22:49:10.617" />
  <row Id="33744" PostTypeId="2" ParentId="33740" CreationDate="2011-01-04T22:53:37.650" Score="1" ViewCount="" Body="&lt;p&gt;It is totally normal that you have a different relationship with beer and coding than some other person does. There are days when a beer kills my ability to code, and days when I feel like coding while drinking a beer. The number of factors that could go into something like that is uncountable for all practical purposes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I had a word of advice it would be this: If you want to code, and you know that a beer will kill your desire to code, don't drink a beer until you are done coding.&lt;/p&gt;&#xA;" OwnerUserId="6883" LastActivityDate="2011-01-04T22:53:37.650" />
  <row Id="33745" PostTypeId="2" ParentId="33740" CreationDate="2011-01-04T22:55:01.970" Score="3" ViewCount="" Body="&lt;p&gt;&quot;Is this normal, or do I need to practice coding under the influence so if the need ever arises, I'm ready for it.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Should I practice driving under the influence so if the need ever arises, i'm ready for it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No, you should not practice programing under the influence just in case. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-04T22:55:01.970" />
  <row Id="33746" PostTypeId="2" ParentId="20653" CreationDate="2011-01-04T22:55:56.680" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;On the other hand, I feel that by specializing this way I really limit my future option.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Remember.  Your future stretches through decades.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The current technology will have faded significantly as new opportunities arise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Specialization is no harm at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started out specialized in punching paper cards to write COBOL programs.  Now I write Python and haven't touched a punched paper card in decades.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Technology comes and goes.   Whatever you're specializing in now will be gone in a decade and you'll be specializing in something else.  Or you'll become obsolete.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Worrying about &quot;experience in other fields&quot; is a waste of time.  You'll get that experience whether you want to or not.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-04T22:55:56.680" />
  <row Id="33747" PostTypeId="2" ParentId="33446" CreationDate="2011-01-04T22:56:51.060" Score="0" ViewCount="" Body="&lt;p&gt;First, accept that it is not possible to change everything at one time. Accept that you will only be able to make incremental improvements and you will be happier in the long run. Accept that some things cannot be changed in the current political enviroment (Such as the boss is the one who did that bad design and he's proud of his work from 10 years ago.) or under existing time and budget constraints. But little changes that chip away at things a bit at time can add up in the course of a couple of years to huge changes. Look back at what you fixed in about a year and you will see.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then take on the challenge of making those improvements as you need to fix each section for bug fixes (you will learn a ton as you try to refactor a mess) and learning to advocate politically in your organization to get the change to make more major improvements. It will never harm you to learn how to convince others to do what you think would be best. So use this job as the wonderful learning opportunity it is rather than hating it. Then you can take what you have learned about what not to do and how to fix it into your next design from scratch type project and make it better than it would be if you had not had this experience. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having to maintain bad code is one of the key factors, in my opinion, that turns a junior dev into a senior dev or a good designer. If you have no experience of how radically wrong things can get, you will make some poor design choices yourself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thing to remember is to take the code in the context of when it was written. Code can survive for years untouched; sometimes what we view as bad in 2011 was actually pretty decent code in 2003 when it was written and some of the tools available to us now didn't yet exist. Sometimes we are so eager to condemn, we forget that the code was written in a different time and under different constraints than we have now. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Further this is your opportunity to shine to the organization as you gradually make the application run more reliably and faster.   The more you accomplish toward fixing the mess, the better you look to management and the more accomplishments you can put on your resume. Fixing a bad mess may be the very thing that gets you hired for your next job (of course that may mean fixing another mess but one that management is actually ready to fix and supportive of fixing).&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2011-01-04T22:56:51.060" />
  <row Id="33748" PostTypeId="2" ParentId="33740" CreationDate="2011-01-04T22:57:22.483" Score="5" ViewCount="" Body="&lt;p&gt;This is absolutely normal. You really need to be drinking spirits when you're coding.&lt;/p&gt;&#xA;" OwnerUserId="854" LastActivityDate="2011-01-04T22:57:22.483" CommentCount="2" />
  <row Id="33749" PostTypeId="2" ParentId="33740" CreationDate="2011-01-04T23:15:54.407" Score="7" ViewCount="" Body="&lt;p&gt;I'm voting that he was drunk when he wrote this, thus proving poor judgement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides Alcohol is a depressant, you want a stimulant. i.e. Coffee&lt;/p&gt;&#xA;" OwnerUserId="11828" LastActivityDate="2011-01-04T23:15:54.407" />
  <row Id="33751" PostTypeId="2" ParentId="33596" CreationDate="2011-01-04T23:19:30.060" Score="0" ViewCount="" Body="&lt;p&gt;The big question I'd have is what are you trying to get out of the book.  For example, something like &lt;a href=&quot;http://oreilly.com/catalog/9780596007126&quot; rel=&quot;nofollow&quot;&gt;&quot;Head First: Design Patterns&quot;&lt;/a&gt; may work if you want various perspectives on a few design patterns.  This is kind of a quick reference under general areas which is different than a comprehensive like &lt;a href=&quot;http://books.google.ca/books?id=NLngYyWFl_YC&amp;amp;printsec=frontcover&amp;amp;dq=Introduction+to+Algorithms&amp;amp;source=bl&amp;amp;ots=BwWqBG1oFa&amp;amp;sig=FeZZJp5uPOn69Fg87raNmPqhrVQ&amp;amp;hl=en&amp;amp;ei=IaojTcy0BJSosAO839SmDw&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=1&amp;amp;ved=0CBwQ6AEwAA#v=onepage&amp;amp;q&amp;amp;f=false&quot; rel=&quot;nofollow&quot;&gt;&quot;Introduction to Algorithms&quot;&lt;/a&gt; which could be considered to be more of a general textbook covering various algorithmic ideas.  &lt;a href=&quot;http://en.wikipedia.org/wiki/Concrete_Mathematics&quot; rel=&quot;nofollow&quot;&gt;&quot;Concrete Mathematics&quot;&lt;/a&gt; is another idea if you want something that is a bit more Math-heavy.  Last but not least, there are books like &lt;a href=&quot;http://martinfowler.com/books.html#refactoring&quot; rel=&quot;nofollow&quot;&gt;&quot;Refactoring&quot;&lt;/a&gt; that can also be a handy reference as well as having a bit of a story in some of the book.  That isn't even a handful of books that come from different areas but attempt to cover what you want in a book that is kind of hard to cover all of programming, data structures and algorithms.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2011-01-04T23:19:30.060" />
  <row Id="33752" PostTypeId="2" ParentId="19911" CreationDate="2011-01-04T23:25:16.720" Score="0" ViewCount="" Body="&lt;p&gt;Make a very low level change to implement the feature, and then fix all the errors that it causes. Start with the compile errors, then move on to testing and fix those errors, and then release to customer and let them tell you about all the other problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://c2.com/cgi/wiki?HaHaOnlySerious&quot; rel=&quot;nofollow&quot;&gt;Haha, only serious&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="12328" LastActivityDate="2011-01-04T23:25:16.720" />
  <row Id="33753" PostTypeId="2" ParentId="7568" CreationDate="2011-01-04T23:30:00.677" Score="1" ViewCount="" Body="&lt;p&gt;Go playground: &lt;a href=&quot;http://golang.org/&quot; rel=&quot;nofollow&quot;&gt;http://golang.org/&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="82" LastActivityDate="2011-01-04T23:30:00.677" />
  <row Id="33755" PostTypeId="2" ParentId="33460" CreationDate="2011-01-04T23:40:15.940" Score="1" ViewCount="" Body="&lt;p&gt;I think collective code ownership is incomparably better than individual code ownership.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not that bothered by the truck argument - in an individual ownership model, the loss of an owner is expensive in terms of the time needed for someone else to take over, but the event is rare enough that the amortised cost is low.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rather, i think collective code ownership leads directly to high-quality code. This is for two very simple reasons. Firstly, because the painful truth is that some of your programmers are not as good as the others, and if they own code, that code will be poor; giving your better programmers access to it will improve it. Secondly, code review: if everyone owns the code, everyone can review it and improve it; even good programmers write sub-par code if left to their own devices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I say this based on experience in my current project. We aim to practice collective ownership, but there are some bits of the system which have become specialised - me and another guy are de facto owners of the build system, for instance, there's a guy who's doing most of the work on the incoming data feeds, another guy working on image import, and so on. In several of those areas (particularly, i have to confess, in my area!), the code quality has seriously suffered - there are mistakes, misconceptions, kludges and hacks that would simply not survive the attention of other people in the team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I note that you could gain some of the benefits of collective code ownership by having individual code ownership where the ownership of a particular bit of code moves between different programmers regularly (say, every three months, or every release - perhaps even every iteration?). A programming equivalent of crop rotation. That might be fun. I'm not going to try it myself, though.&lt;/p&gt;&#xA;" OwnerUserId="854" LastActivityDate="2011-01-04T23:40:15.940" />
  <row Id="33756" PostTypeId="2" ParentId="7568" CreationDate="2011-01-04T23:45:05.307" Score="2" ViewCount="" Body="&lt;p&gt;I was introduced to using &lt;a href=&quot;http://collabedit.com/&quot; rel=&quot;nofollow&quot;&gt;collabedit&lt;/a&gt; during recent interviews. It does a good job of collaborative coding.&lt;/p&gt;&#xA;" OwnerUserId="8679" LastActivityDate="2011-01-04T23:45:05.307" />
  <row Id="33757" PostTypeId="2" ParentId="33606" CreationDate="2011-01-04T23:47:30.483" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.finalbuilder.com&quot; rel=&quot;nofollow&quot; title=&quot;FinalBuilder&quot;&gt;FinalBuilder&lt;/a&gt; can do all of your requested items, with a nice GUI and a builder server application thrown in for free.&lt;/p&gt;&#xA;" OwnerUserId="3817" LastActivityDate="2011-01-04T23:47:30.483" />
  <row Id="33758" PostTypeId="1" AcceptedAnswerId="33783" CreationDate="2011-01-04T23:48:39.473" Score="2" ViewCount="113" Body="&lt;p&gt;I've been using eclipse for a long time to do development. One of the problems I've come across when working on other people's projects is if they come from source control, some of the eclipse project files &quot;default.properties&quot; and other xml config files are missing. Its usually a big pain in the butt to get the project running in eclipse. I understand the reasoning to not have certain files tracked because they may be full of specific stuff to a certain eclipse install. How do all of you manage that?&lt;/p&gt;&#xA;" OwnerUserId="12404" LastActivityDate="2011-01-05T03:49:04.167" Title="Managing Eclipse projects in source control" Tags="&lt;development-process&gt;&lt;version-control&gt;&lt;eclipse&gt;" AnswerCount="2" FavoriteCount="2" />
  <row Id="33759" PostTypeId="2" ParentId="33690" CreationDate="2011-01-05T00:05:17.747" Score="2" ViewCount="" Body="&lt;p&gt;From personal experience, a paid project may be more or less stressful depending on:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;The customer&lt;/strong&gt;. Not only people are different (some will stress you, whereas others will not), but it's also more stressful to work for a large company or a precious customer who pays well.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;The project&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Difficult projects are much more &lt;strong&gt;interesting&lt;/strong&gt; and challenging than easy ones, but are much more &lt;strong&gt;stressful&lt;/strong&gt; too.&lt;/li&gt;&#xA;&lt;li&gt;Easy projects are &lt;strong&gt;boring&lt;/strong&gt;, and may reduce motivation, so increase &lt;strong&gt;procrastination&lt;/strong&gt;, which will increase stress.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;The number of changes&lt;/strong&gt;. Some customers love making lots of changes, especially when the product is nearly finished, and some of them really don't understand why are you asking for more time and money when they ask you to do a modification which in fact will require to rewrite a huge part of a project.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;The quality of an estimate&lt;/strong&gt;. If you estimated than you need a month to do the work, and after 15 days, you see that you've hardly done 10% of the job, there are chances to stress a lot.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;The quality of your schedule or the events which may affect it&lt;/strong&gt;. Even if your estimate is correct, you may do less work at the beginning, for example. Or you may be ill. Or just not motivated for a few weeks.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Here's an example of what can happen. My last project was given a month ago by my most important customer, a large company which, of course, requires quality and seriousness from the people it's paying. The project must be done in 30 days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The requirements of the project were difficult to understand. At the beginning, after reading the requirements four times, I thought they were clear, but after starting the work, I noticed I completely misunderstood some, so I've lost 3 or 4 days because of that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I had some personal problems, so I was not too motivated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I was ill. During two weeks, I were totally unable to stay in front of the screen for longer than ten minutes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This makes that &lt;strong&gt;I had approximately one week to do from scratch a one-month project, for a customer I can't lose&lt;/strong&gt;. For sure, it was the most stressful of my projects, and as you see, neither of the elements which caused the stress were predictable.&lt;/p&gt;&#xA;" OwnerUserId="6605" LastActivityDate="2011-01-05T00:05:17.747" CommentCount="2" />
  <row Id="33760" PostTypeId="1" CreationDate="2011-01-05T00:09:04.380" Score="5" ViewCount="127" Body="&lt;p&gt;I'm a software engineer looking to try something different in my career and get into search indexes, information Retrieval or Natural Language Processing applications and systems. Where can I learn more about this stuff under a degree or certificate program?&lt;/p&gt;&#xA;" OwnerUserId="7529" LastActivityDate="2011-02-02T04:07:24.523" Title="Are there any online certificate/degree programs focused on Information Retrieval or Language Processing?" Tags="&lt;education&gt;&lt;certification&gt;&lt;degree&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="33764" PostTypeId="2" ParentId="33690" CreationDate="2011-01-05T00:34:33.327" Score="0" ViewCount="" Body="&lt;p&gt;How stressful it is can depend a good deal on how &quot;relaxed&quot; the contractee is.  Some may have tight deadlines while others may let you work on the project whenever it is convenient for you.&lt;/p&gt;&#xA;" OwnerUserId="3907" LastActivityDate="2011-01-05T00:34:33.327" />
  <row Id="33765" PostTypeId="2" ParentId="9406" CreationDate="2011-01-05T00:50:05.663" Score="1" ViewCount="" Body="&lt;p&gt;I find Perl easier to read. I dislike Python's coboltish syntax.&lt;/p&gt;&#xA;" OwnerUserId="12410" LastActivityDate="2011-01-05T00:50:05.663" />
  <row Id="33766" PostTypeId="2" ParentId="33131" CreationDate="2011-01-05T00:53:50.167" Score="0" ViewCount="" Body="&lt;p&gt;Honestly, if you are having problems getting your code to compile then there are much larger issues than perhaps less than ideal error messages. The compiler IS NOT a debugger. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I understand that the messages can be pretty confusing for newbs. In that case, I suggest complying often rather than after writing the whole application. It is really hard to figure out what is wrong with the code if you write code with a ton a mistakes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For seasoned programmers though, getting code to compile should not even be an issue.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either way, once you work with the compiler for a bit the messages are not as cryptic as you might think.&lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2011-01-05T03:03:11.037" LastActivityDate="2011-01-05T03:03:11.037" CommentCount="1" />
  <row Id="33767" PostTypeId="2" ParentId="33402" CreationDate="2011-01-05T01:21:27.153" Score="2" ViewCount="" Body="&lt;p&gt;I don't often run into this, but when I do it tends to be a non-issue because I use Delphi and it allows you to work around this issue by prepending an &amp;amp; to the identifier.  So &quot;class&quot; is not a valid identifier, but &quot;&amp;amp;class&quot; is.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2011-01-05T01:21:27.153" CommentCount="1" />
  <row Id="33768" PostTypeId="1" AcceptedAnswerId="33772" CreationDate="2011-01-05T01:23:54.697" Score="5" ViewCount="180" Body="&lt;p&gt;I've been contemplating how to balance testable design using dependency injection with providing simple fixed public API. My dilemma is: people would want to do something like &lt;code&gt;var server = new Server(){ ... }&lt;/code&gt; and not have to worry about creating the many dependencies and graph of dependencies that a &lt;code&gt;Server(,,,,,,)&lt;/code&gt; may have. While developing, I don't worry too much, as I use an IoC/DI framework to handle all that (I'm not using the lifecycle management aspects of any container, which would complicate things further).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, the dependencies are unlikely to be re-implemented. Componentisation in this case is almost purely for testability (and decent design!) rather than creating seams for extension, etc. People will 99.999% of the time wish to use a default configuration. So. I could hardcode the dependencies. Don't want to do that, we lose our testing! I could provide a default constructor with hard-coded dependencies and one which takes dependencies. That's... messy, and likely to be confusing, but viable. I could make the dependency receiving constructor internal and make my unit tests a friend assembly (assuming C#), which tidies the public API but leaves a nasty hidden trap lurking for maintenance. Having two constructors which are implicitly connected rather than explicitly would be bad design in general in my book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the moment that's about the least evil I can think of. Opinions? Wisdom?&lt;/p&gt;&#xA;" OwnerUserId="12411" LastActivityDate="2011-01-05T06:41:54.593" Title="Balancing dependency injection with public API design" Tags="&lt;c#&gt;&lt;api&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="33769" PostTypeId="2" ParentId="33460" CreationDate="2011-01-05T01:26:38.613" Score="1" ViewCount="" Body="&lt;p&gt;I don't think team code ownership is as important as having multiple contributers understand the basic architecture of the prevailing subsystems.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, we have a couple of guys on our team that make administrative web pages for our server products. We built a custom server-side script-engine so that we could essential call C functions on the server right from our java scripts or html. I think that it is more important that our &quot;web&quot; guys understand how to use this engine opposed to being co-owner's of each others web page applications.     &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-05T01:26:38.613" />
  <row Id="33770" PostTypeId="2" ParentId="33460" CreationDate="2011-01-05T01:33:37.293" Score="0" ViewCount="" Body="&lt;p&gt;I think you take individual ownership of code at the time you write it and then turn it over to the team. This way everyone takes responsibility and contributes. Everyone should want to fix a coding failure they created. Along with a code review this creates higher standards. Nobody wants the job of cleaning up after others. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think more responsibility and less ownership. After all, whoever is writing the checks is the real owner anyway.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-05T01:33:37.293" />
  <row Id="33771" PostTypeId="2" ParentId="33768" CreationDate="2011-01-05T01:53:53.207" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I could make the dependency receiving constructor internal and make my unit tests a friend assembly (assuming C#), which tidies the public API but leaves a nasty hidden trap lurking for maintenance.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That doesn't seem like a &quot;nasty hidden trap&quot; to me. The public constructor should just be calling the internal one with the &quot;default&quot; dependencies. As long as it's clear that the public constructor shouldn't be modified, everything should be fine.&lt;/p&gt;&#xA;" OwnerUserId="9029" LastActivityDate="2011-01-05T01:53:53.207" />
  <row Id="33772" PostTypeId="2" ParentId="33768" CreationDate="2011-01-05T02:06:03.787" Score="4" ViewCount="" Body="&lt;p&gt;Dependency injection is a powerful pattern when used well, but all too often its practitioners become dependent on some external framework.  The resulting API is quite painful for those of us who don't want to loosely tie our app together with XML duct tape.  Don't forget about Plain Old Objects (POO).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First consider how you would expect someone to use your API--without the framework involved.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How do you instantiate the Server?&lt;/li&gt;&#xA;&lt;li&gt;How do you extend the Server?&lt;/li&gt;&#xA;&lt;li&gt;What do you want to expose in the external API?&lt;/li&gt;&#xA;&lt;li&gt;What do you want to &lt;em&gt;hide&lt;/em&gt; in the external API?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I like the idea of providing default implementations for your components, and the fact that you have those components.  The following approach is a perfectly valid, and decent OO practice:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public Server() &#xA;    : this(new HttpListener(80), new HttpResponder())&#xA;{}&#xA;&#xA;public Server(Listener listener, Responder responder)&#xA;{&#xA;    // ...&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;As long as you document what the default implementations for the components are in the API docs, and provide one constructor that performs all the setup, you should be fine.  The cascading constructors are not fragile as long as the set up code happens in one master constructor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially, all the publicly facing constructors would have the different combinations of components you want to expose.  Internally, they would populate the defaults and defer to a private constructor that completes the setup.  In essence, this provides you some DRY and is pretty easy to test.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need to provide &lt;code&gt;friend&lt;/code&gt; access to your tests to set up the Server object to isolate it for testing, go for it.  It won't be part of the public API, which is what you want to be careful with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just be kind to your API consumers and don't &lt;em&gt;require&lt;/em&gt; a IoC/DI framework to use your library.  To get a feel for the pain you are inflicting make sure your unit tests don't rely on the IoC/DI framework either.  (It's a personal pet peeve, but as soon as you introduce the framework it's no longer unit testing--it becomes integration testing).&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2011-01-05T02:06:03.787" CommentCount="1" />
  <row Id="33773" PostTypeId="2" ParentId="33690" CreationDate="2011-01-05T02:12:09.227" Score="2" ViewCount="" Body="&lt;p&gt;Incredibly stressful. Your side-project client could decide that you didn't live up to your agreement with them and decide to sue you. Your primary employer could hear about the law suit and decide that you've violated the terms of your employment agreement, fire you, and then sue you as well. This is incredibly unlikely, but you did ask how stressful it &lt;em&gt;could&lt;/em&gt; be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having money involved means that everyone involved needs to be serious and professional. The nicest client in the world can change overnight into a rabid dog if they think you are stealing/wasting their money, even if they are a close friend or a member of your family. You can always walk away from free projects, but you may not be able to walk away once you've agreed to take on a project for money. You may have contractual obligations, even if it was just an oral agreement. Just knowing that you have obligations makes it more stressful than a hobby project for many people.&lt;/p&gt;&#xA;" OwnerUserId="4828" LastActivityDate="2011-01-05T02:12:09.227" CommentCount="1" />
  <row Id="33774" PostTypeId="2" ParentId="33560" CreationDate="2011-01-05T02:24:53.380" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;No. Ideas are a dime a dozen.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Genius is one percent inspiration, ninety-nine percent perspiration.&quot; - Thomas Edison&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Even if you take the time to turn your idea into a real working product, &lt;em&gt;good luck getting investors and customers to listen to you talk about it&lt;/em&gt; ... Now imagine trying to convince people when its nothing but a thought in your head. There is hardly ever anything to gain in keeping it secret.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If my own experiences are anything to go by, most ideas never make it past a few beers between friends, and most of those never make it past a half-written business plan or a few lines of code. And &lt;a href=&quot;http://www.bls.gov/opub/mlr/2005/05/ressum.pdf&quot; rel=&quot;nofollow&quot;&gt;60% of start-ups fail&lt;/a&gt;. What are the chances of that idea being worth anything on its own?&lt;/p&gt;&#xA;" OwnerUserId="691" LastEditorUserId="691" LastEditorDisplayName="" LastEditDate="2011-01-05T03:13:03.370" LastActivityDate="2011-01-05T03:13:03.370" CommunityOwnedDate="2011-01-05T03:00:49.167" CommentCount="2" />
  <row Id="33776" PostTypeId="2" ParentId="33560" CreationDate="2011-01-05T02:42:55.927" Score="0" ViewCount="" Body="&lt;p&gt;If you think the person you're about to tell could take your idea and make a business out of it, you just found a potential partner.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-05T02:42:55.927" CommunityOwnedDate="2011-01-05T03:00:49.167" />
  <row Id="33777" PostTypeId="1" CreationDate="2011-01-05T02:45:35.390" Score="1" ViewCount="43" Body="&lt;p&gt;I am learning some Ruby on Rails, and am a newbie. Most of my background is in ASP.net MVC on the back end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I play with a basic scaffold project, I wonder about this case: you jump into an established Rails project and want to get to know the model. Based on what I have seen so far (again, simple scaffold), the properties for a given class are not immediately revealed. I don't see property accessors on the model classes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do understand that this is because of the dynamic nature of Ruby and such things are not necessary or even perhaps desirable. Convention over code, I get that. (Am familiar with dynamic concepts, mostly via JS.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if I am somewhere off in a view, and want to quickly know whether the (eg) Person object has a MiddleName property, how would I find that out? I don't have to go into the migrations, do I?&lt;/p&gt;&#xA;" OwnerUserId="848" LastActivityDate="2011-01-05T13:59:06.183" Title="Inspecting the model in a Rails application" Tags="&lt;ruby-on-rails&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="33778" PostTypeId="2" ParentId="33613" CreationDate="2011-01-05T02:57:35.630" Score="2" ViewCount="" Body="&lt;p&gt;The person writing the check for your service needs to understand that this is going to cost extra in the long run. Either these people have poor writing skills, are lazy, or don't really know what they are doing which is why they hired you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please let us know how the meeting goes.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-05T02:57:35.630" />
  <row Id="33779" PostTypeId="2" ParentId="33731" CreationDate="2011-01-05T03:00:07.200" Score="0" ViewCount="" Body="&lt;p&gt;I complete C# last year. I think you should take Programming C# 4.0 book. It is so easy and helpful. I also provide you &lt;a href=&quot;http://www.windwardreports.com/csharp.htm&quot; rel=&quot;nofollow&quot;&gt;C# Reporting&lt;/a&gt; for more info about C# reporting.&lt;/p&gt;&#xA;" OwnerUserId="12417" LastActivityDate="2011-01-05T03:00:07.200" CommunityOwnedDate="2011-01-05T19:23:10.827" />
  <row Id="33780" PostTypeId="2" ParentId="33560" CreationDate="2011-01-05T03:00:49.167" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;I never talk about my plans, because it takes away energy from making them reality.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Build something cheap and test the market before you invest money.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Realize that there are 7 factors that control your business success: attitude, innovation, information, marketing, systems, action, and profits.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Attitude is what keeps you focused, innovation is what sets you apart (but innovation is not about being  a pioneer, its about copying successful systems from other industries), information is what feeds your business plan, marketing is what gets the product sold, systems are what automatize your business, action is how good you are at getting things done, and profits is how you manage your money (do you re-invest or blow it out on cars, toys?). Its pretty hard to balance all of these, but when they work in symphony, things happen pretty quickly.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9520" LastActivityDate="2011-01-05T03:00:49.167" CommunityOwnedDate="2011-01-05T03:00:49.167" />
  <row Id="33781" PostTypeId="2" ParentId="33758" CreationDate="2011-01-05T03:04:05.387" Score="0" ViewCount="" Body="&lt;p&gt;I would typically check those files into source control. It's usually best to check in everything you need so that you can simply check out a fresh copy, fire up your IDE and build.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's slightly different if people are using heterogeneous IDEs and build tools (e.g. if some people are using Eclipse and some are using NetBeans) but that's a situation I'd generally try to avoid.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2011-01-05T03:04:05.387" CommentCount="1" />
  <row Id="33783" PostTypeId="2" ParentId="33758" CreationDate="2011-01-05T03:34:16.387" Score="6" ViewCount="" Body="&lt;p&gt;My solution has always been to not check those files in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really have never liked it when I do a check out and have to filter through all the IDE-specific stuff. Why not use a common ground? If the IDE files are the common ground, great. But, more often than not, something like Ant and Maven are the common ground.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It depends on the audience, but I generally avoid it. Build tools are mostly universal, and IDE's fall near the edge of the text editor religious wars. I'm a peaceful guy and practice my religion in private.&lt;/p&gt;&#xA;" OwnerUserId="7426" LastEditorUserId="7426" LastEditorDisplayName="" LastEditDate="2011-01-05T03:49:04.167" LastActivityDate="2011-01-05T03:49:04.167" CommentCount="4" />
  <row Id="33785" PostTypeId="2" ParentId="33606" CreationDate="2011-01-05T04:25:06.567" Score="2" ViewCount="" Body="&lt;p&gt;I am currently doing what you are doing (i.e from build to packaging to deployment) using MSBuild (&gt;3000 lines of scripts). The CI is using CruiseControl.Net and hopefully I can move to TeamBuild in future. MSBuild is cumbersome (programming in XML) but it is quite powerful specially the batch processing and dependency tracking. It is actively maintained and improved in new .Net versions and is the basis of build system in Visual Studio and TFS. Also visual studio project files are actually MSBuild projects and I can hook into various extension points. The &lt;a href=&quot;http://msbuildextensionpack.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;MSBuild extension pack&lt;/a&gt; has many additional tasks and it is trivially easy to create your own tasks programatically.  I suggest give MSBuild a serious thought. Lately I am also learning powershell and finding it easy for certain tasks specially in the deployment phase, like installing and configuring certificates, IIS etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit MSBuild project in VisualStudio as it understands the syntax and gives you intellisense.Here are some other good utilities that will help with MSBuild.&lt;br&gt;&#xA;&lt;a href=&quot;http://msbuildlaunchpad.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;MSBuild Launch Pad&lt;/a&gt;  - For shell extensions&lt;br&gt;&#xA;&lt;a href=&quot;http://www.attrice.info/msbuild/index.htm&quot; rel=&quot;nofollow&quot;&gt;MSBuild SideKicks&lt;/a&gt; - Graphically edit, execute and debug scripts.  &lt;/p&gt;&#xA;" OwnerUserId="3414" LastActivityDate="2011-01-05T04:25:06.567" />
  <row Id="33786" PostTypeId="2" ParentId="33096" CreationDate="2011-01-05T04:42:01.093" Score="1" ViewCount="" Body="&lt;p&gt;The architecture is far more important. Web servers are quite easy to scale, databases are not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you use a relational database you'll need to distribute it amongst different servers. You'll soon need to throw everything you know about RDBMS out the window and use techniques like sharding or a non-relational database.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you have other performance gains for caching servers, load balancers. With many servers there is also deployment to worry about. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The language doesn't matter too much when you consider performance is limited by disk usage and ram not CPU. Having said that I have to get in my 2c of PHP hate, it really isn't a nice language.&lt;/p&gt;&#xA;" OwnerUserId="5678" LastActivityDate="2011-01-05T04:42:01.093" />
  <row Id="33787" PostTypeId="2" ParentId="33096" CreationDate="2011-01-05T05:29:32.880" Score="1" ViewCount="" Body="&lt;p&gt;I have a feeling that if Fog Creek, an established firm, wasn't there to help support the infrastructure of SO / SE, ASP.NET MVC / IIS / SQL Server would not have been such an easy and obvious choice.  Many startups understandably take advantage of the free or cheap solutions, and by the time they're able to afford something easier to transform into a more robust solution, they are too far deep into it.  So they stick with their original stack and tweak it the best they could.  Hence, the public growing pains we've witnessed for some &quot;overnight&quot; successes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, sites &lt;em&gt;that&lt;/em&gt; popular are so few and far between that it's a &quot;happy&quot; problem if you ever find yourself in that situation.  So, like others have said, the language is way down on the list of importance.  Focus on architecture, and potential, &lt;em&gt;reasonable&lt;/em&gt; growth expectancy for scalability.&lt;/p&gt;&#xA;" OwnerUserId="10397" LastActivityDate="2011-01-05T05:29:32.880" />
  <row Id="33788" PostTypeId="2" ParentId="23506" CreationDate="2011-01-05T05:33:35.733" Score="1" ViewCount="" Body="&lt;p&gt;In your Introduction, you will have set out the problem your project is addressing; and in the Related Work section, you should have described similar projects that address slightly different problems, in particular highlighting why they don't address your problem.  That provides the justification for why you worked on your project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the Background and Research Methods section, while the section title is a little inappropriate for a software development project, you need to describe the steps you took leading up to actually implementing your project.  This may be complicated, because there's often an iterative process of trying something out and then revising it if it doesn't work out.  Some of the things you could cover are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Any technical background that's necessary to understand the rest of the article.  But consider your audience: presumably you don't need to describe in depth what Bluetooth is, but you may want to describe the particular facets that are directly relevant to location tracking.&lt;/li&gt;&#xA;&lt;li&gt;The setup of your development environment.  E.g. what Bluetooth hardware/software development platform you used. (I don't know anything about Bluetooth development, so this may not make sense.)&lt;/li&gt;&#xA;&lt;li&gt;What different approaches you considered to solving the problem.&lt;/li&gt;&#xA;&lt;li&gt;How you selected the approach you eventually used, including what the criteria for making the decision were.&lt;/li&gt;&#xA;&lt;li&gt;What problems you encountered that didn't have an immediate obvious answer; elaborate on the techniques you used to solve the problems.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The section should prepare the reader for the Implementation section, which should describe in detail the interesting parts of the implementation as a system.  There may be some overlap with things you've already discussed in the previous section, so aim to cover each topic in detail in one section or the other, not both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In summary, the section needs to cover all those things that were going on in your head in between formulating the problem you wanted to solve, and actually developing the implementation.  You probably made some &quot;aha!&quot; realisations during that period that were critical to being able to complete the implementation -- you need to help other people understand those.&lt;/p&gt;&#xA;" OwnerUserId="12420" LastActivityDate="2011-01-05T05:33:35.733" />
  <row Id="33789" PostTypeId="1" AcceptedAnswerId="34065" CreationDate="2011-01-05T05:48:30.443" Score="1" ViewCount="301" Body="&lt;p&gt;I developed many GUI applications for the Windows platform during my early professional career, and saw several GUI frameworks come, have whole magazines devoted to them, and then fade away. MFC is iconic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tasked with writing yet another GUI application, I starter researching cross-platform frameworks like Qt and WxWindows. I found the same steep learning curves I knew from before, and tooling doesn't help much in building a functional and elegant user interface because its clumsy and complicated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But people are building beautiful and functional UIs on the Web all the time (look at this site!). The standards, the libraries, and the tools are certainly there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My thought and my question: Why not write a GUI in which most of the UI is handled by an embedded browser? I already know that the Qt widgets support a large part of CSS and JavaScript, and programmers with good knowledge about web development are relatively easy to find, ..., so...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have you done something like that before? What's your experience/advise?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A browser widget will likely support a subset of the functionality of mainstream browsers, but enough to produce a rich user interface using web technologies. There's the added advantage of the enormous simplifications possible when the web-stuff doesn't have to talk to a server to service UI requests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My idea is not to embed a full-blown browser (yikes!). It is to enable the use of web technologies in GUI programming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;[Edit]&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I haven't accepted an answer because the ones so far are suggestions about doing something else, and not about previous experience doing what I suggest. They're not even opinions or speculations about the pitfalls or benefits of doing it the suggested way, which is what I would expect in the unlikeliness that I'd be breaking new ground by using a browser widget to provide part of a GUIs interface. Think HTML, CSS, and limited JavaScript, with no Internet, no .Net or Java (or Air or Flex/Flash), no relational database; just executables, libraries, and templates that can be installed by copying them, and persistence to the user's home directory using the file system.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Some Addtional Related Questions&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;These are drawn from the answers so far:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;User experience: Isn't the WebApp that runs StackExchange rich and intuitive enough?&lt;/li&gt;&#xA;&lt;li&gt;User expectations: Hasn't the Web, and aren't portable gadgets (smartphones and tablets) moving the user experience away from the traditional GUI?&lt;/li&gt;&#xA;&lt;li&gt;Could it be that there apps that must be GUI but benefit from being &lt;em&gt;webified&lt;/em&gt; while other's don't?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8500" LastEditorUserId="8500" LastEditorDisplayName="" LastEditDate="2011-01-05T23:57:46.677" LastActivityDate="2011-01-05T23:57:46.677" Title="Web technologies on GUI apps" Tags="&lt;gui&gt;&lt;web&gt;&lt;qt&gt;" AnswerCount="3" CommentCount="10" />
  <row Id="33790" PostTypeId="2" ParentId="33789" CreationDate="2011-01-05T05:52:30.690" Score="0" ViewCount="" Body="&lt;p&gt;I have seen some applications which have large parts written in web technologies but IMO that defeats a lot of the purpose of a desktop application in the ability to have a richer UI, although that distinction is disappearing with Silverlight and Flash etc. If you want to use web technology build a web app.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2011-01-05T05:52:30.690" CommentCount="5" />
  <row Id="33791" PostTypeId="2" ParentId="2192" CreationDate="2011-01-05T06:12:52.770" Score="5" ViewCount="" Body="&lt;p&gt;Fixing someone else's broken build&lt;/p&gt;&#xA;" OwnerUserId="620" LastActivityDate="2011-01-05T06:12:52.770" CommunityOwnedDate="2011-01-05T06:12:52.770" CommentCount="2" />
  <row Id="33792" PostTypeId="2" ParentId="33560" CreationDate="2011-01-05T06:41:16.107" Score="1" ViewCount="" Body="&lt;p&gt;There's a new startup called &lt;a href=&quot;http://www.openinvo.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;OpenInvo&lt;/strong&gt;&lt;/a&gt; which hopes to become a marketplace for ideas. I think if it takes off it could be just the solution you're looking for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I really wish this were true:&#xA;&lt;img src=&quot;http://i.imgur.com/77QFS.png&quot; alt=&quot;We didn&amp;#39;t believe you at first, but we asked like three people who were at that party. They not only corroborated your story, but even said you totally mentioned wanting to start a company someday. Sorry! If this isn&amp;#39;t enough money, let us know.&quot;&gt;&#xA;&lt;em&gt;Source: &lt;a href=&quot;http://xkcd.com/827/&quot; rel=&quot;nofollow&quot;&gt;http://xkcd.com/827/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2279" LastActivityDate="2011-01-05T06:41:16.107" CommunityOwnedDate="2011-01-05T06:41:16.107" />
  <row Id="33793" PostTypeId="2" ParentId="33768" CreationDate="2011-01-05T06:41:54.593" Score="0" ViewCount="" Body="&lt;p&gt;How about providing a subclass which provides the &quot;public api&quot;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class StandardServer : Server&#xA;{&#xA;    public StandardServer():&#xA;        this( depends1, depends2, depends3)&#xA;    {&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The user can&lt;code&gt;new StandardServer()&lt;/code&gt;and be on their way. They can also use the Server base class if they want more control over how the server functions. This is more or less the approach I use. (I don't use a framework as I haven't yet seen the point.) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This still exposes the internal api, but I think you should. You've split up your objects into different useful components which should work independently. There is no telling when a third party might want to use one of the components in isolation.&lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2011-01-05T06:41:54.593" />
  <row Id="33794" PostTypeId="1" CreationDate="2011-01-05T06:57:11.357" Score="-2" ViewCount="172" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/20950/what-justifies-the-use-of-an-standard-editor-versus-a-ide&quot;&gt;What justifies the use of an standard editor versus a IDE?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;Hello every one, I have a question,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;What would you choose to build software, an IDE (Integrated Development Environment) or Text Editor? and why?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;thanks :D&lt;/p&gt;&#xA;" OwnerUserId="11288" LastActivityDate="2011-01-05T08:39:19.813" ClosedDate="2011-01-05T09:01:06.337" Title="IDE or Text Editor ?" Tags="&lt;tools&gt;&lt;ide&gt;&lt;text-editor&gt;&lt;development&gt;&lt;editors&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="33795" PostTypeId="1" CreationDate="2009-10-02T01:03:20.997" Score="15" ViewCount="1233" Body="&lt;p&gt;Hi, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently, I am giving many interviews as Software Engineer, am pretty much comfortable with the technology side when it comes to answering questions like What are your Strength and What are your weakness, I have kind of hard time giving them answers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is how can we handle questions like : &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your Strengths ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your Weakness ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks. &lt;/p&gt;&#xA;" OwnerUserId="12569" LastActivityDate="2011-01-05T07:06:44.113" ClosedDate="2011-01-05T17:01:04.657" Title="How to answer what are your strengths and what are your weakness question during Interview ?" Tags="&lt;interview-questions&gt;&lt;jobs&gt;&lt;resume&gt;" AnswerCount="19" CommentCount="3" FavoriteCount="3" />
  <row Id="33796" PostTypeId="2" ParentId="33795" CreationDate="2009-10-02T01:09:43.033" Score="8" ViewCount="" Body="&lt;p&gt;My primary strength is my attainment of absolute perfection.  My primary weakness is my attainment of absolute perfection, since I have nothing left to shoot for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you, folks, I'll be here all week.&lt;/p&gt;&#xA;" OwnerUserId="14582" LastActivityDate="2011-01-05T07:06:44.113" CommentCount="3" />
  <row Id="33797" PostTypeId="2" ParentId="33795" CreationDate="2009-10-02T01:10:45.217" Score="6" ViewCount="" Body="&lt;p&gt;Tailor your answer to the job at hand and whatever you do don't give lame answers like &quot;I work too hard&quot; or &quot;I'm a perfectionist&quot;. Also it should be reasonably close to the truth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;for example: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Programmer position in a small company: Say something like you don't handle politics well.&lt;/li&gt;&#xA;&lt;li&gt;Programmer position in a large company: you like having a well-defined career path and well-defined responsibilities;&lt;/li&gt;&#xA;&lt;li&gt;Team Leader: you don't suffer fools easily.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Strengths should be easier.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-05T07:06:44.113" CommentCount="9" />
  <row Id="33798" PostTypeId="2" ParentId="33795" CreationDate="2009-10-02T01:11:34.730" Score="2" ViewCount="" Body="&lt;p&gt;The trick is to &quot;read&quot; the interviewer, that is to figure out what kind of answers s/he's &lt;em&gt;looking for&lt;/em&gt;. Then you just say exactly what s/he wants to hear.&lt;/p&gt;&#xA;" OwnerUserId="9456" LastActivityDate="2011-01-05T07:06:44.113" CommentCount="6" />
  <row Id="33799" PostTypeId="2" ParentId="33795" CreationDate="2009-10-02T01:13:37.857" Score="7" ViewCount="" Body="&lt;p&gt;Primary strength: I'm brilliant. Primary weakness: I'm not modest.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-05T07:06:44.113" CommunityOwnedDate="2009-10-02T01:14:43.270" CommentCount="3" />
  <row Id="33800" PostTypeId="2" ParentId="33795" CreationDate="2009-10-02T01:28:04.510" Score="3" ViewCount="" Body="&lt;p&gt;When I ask this question, the main thing I'm looking for is if you can critically evaluate yourself, if you understand what your weaknesses are, and how you plan to compensate for them or improve on them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice is to answer truthfully, but be sure to emphasize how you plan to fully leverage your strengths, and what your plan is for improving your weaknesses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I would say that big weakness is I'm not very outgoing, which can make it difficult to work with other teams.  Because of this, I have to make a very conscious effort when collaborating with other teams.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And never, ever, say your weakness is &quot;you work too hard&quot;.  That is incredibly cliche.&lt;/p&gt;&#xA;" OwnerUserId="11227" LastActivityDate="2011-01-05T07:06:44.113" CommentCount="1" />
  <row Id="33801" PostTypeId="2" ParentId="33795" CreationDate="2009-10-02T01:38:04.593" Score="3" ViewCount="" Body="&lt;p&gt;Programmers can sometimes actually pull off the &quot;perfectionist&quot; flaw in interviews if done right. Most interview advice says not to use this because it sounds like you're just bragging. This can work for you if you phrase it that your perfectionism means that you sometimes spend too long making every detail perfect instead of prioritizing. Just don't go to far with it. In an interview, this should always come across in the end as a positive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perfectionism is definitely part of what makes a good programmer. For myself, it is also legitimately often my enemy for the very same reasons.&lt;/p&gt;&#xA;" OwnerUserId="8457" LastActivityDate="2011-01-05T07:06:44.113" CommentCount="4" />
  <row Id="33802" PostTypeId="2" ParentId="33795" CreationDate="2009-10-02T01:42:16.993" Score="14" ViewCount="" Body="&lt;p&gt;Primary strength: +5 Agility&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Primary weakness: weak against ice and water spells.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;+1 to anyone who guesses &lt;a href=&quot;http://en.wikipedia.org/wiki/GEICO#Advertising%5Fcampaigns&quot; rel=&quot;nofollow&quot;&gt;which company I'm interviewing for and for which position&lt;/a&gt; (no cheating by looking at the URL :).&lt;/p&gt;&#xA;" OwnerUserId="12402" LastActivityDate="2011-01-05T07:06:44.113" CommentCount="5" />
  <row Id="33803" PostTypeId="2" ParentId="33795" CreationDate="2009-10-02T01:42:57.053" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Biggest weakness:&lt;/strong&gt;&lt;br /&gt;&#xA;My singing voice is terrible! There won't be any singing required on this job will there?&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2011-01-05T07:06:44.113" CommentCount="0" />
  <row Id="33804" PostTypeId="2" ParentId="33795" CreationDate="2009-10-02T01:48:07.077" Score="5" ViewCount="" Body="&lt;p&gt;Here is a good programmer answer for the weakness question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Laziness&lt;/strong&gt;&lt;br /&gt;&#xA;    The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don't have to answer so many questions about it. Hence, the first great virtue of a programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Impatience&lt;/strong&gt;&lt;br /&gt;&#xA;    The anger you feel when the computer is being lazy. This makes you write programs that don't just react to your needs, but actually anticipate them. Or at least that pretend to. Hence, the second great virtue of a programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Hubris&lt;/strong&gt;&lt;br /&gt;&#xA;    Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won't want to say bad things about.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2011-01-05T07:06:44.113" CommentCount="3" />
  <row Id="33805" PostTypeId="2" ParentId="33795" CreationDate="2009-10-02T01:48:50.490" Score="4" ViewCount="" Body="&lt;p&gt;I think the whole thing is a bunch of bs.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I suggest being real with the interviewer.  Tell them who you are, what you are about, what you  want out of the job (or life), how you aim to get it, etc etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you honestly don't know what you are good at, or what you or not so good at, then you should find out! (and then you can tell them at your next interview =D)&lt;/p&gt;&#xA;" OwnerUserId="25100" LastActivityDate="2011-01-05T07:06:44.113" />
  <row Id="33806" PostTypeId="2" ParentId="33795" CreationDate="2009-10-02T02:04:11.423" Score="18" ViewCount="" Body="&lt;p&gt;Be &lt;strong&gt;honest&lt;/strong&gt; about your weaknesses... but let them know how you will improve or how it can be a positive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are my honest weaknesses as an example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;I'm very shy at first and don't ask questions or reach out for help right away.  &lt;strong&gt;possible positive:&lt;/strong&gt;  I like to solve problems myself because I learn better that way, however I need to know when to ask for help to keep productivity high.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I sometimes spend too much time sweating the small stuff when designing.  I like to prove to myself that every aspect of the project (to the low level details) is possible.  &lt;strong&gt;how to turn it to a positive:&lt;/strong&gt;  I like to prototype a lot and would volunteer to prototype and experiment with new technologies when needed.  However I need someone to help me stay focused on the high level design and not sweat the small stuff.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;I don't unit test as often as I should.  &lt;strong&gt;how to mitigate:&lt;/strong&gt;  I've been focusing more on testing my code in depth before submission.  I've been using XYZ platform for unit testing.  However I need to make sure I don't over-do it also&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also, be &lt;strong&gt;honest&lt;/strong&gt; about your strengths.  Don't be cocky or cliche.  A few for example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I pay attention to detail (this is a big one for programming... the details matter!)&lt;/li&gt;&#xA;&lt;li&gt;I'm a fast learner (use an example here... Like at this job I picked up on this tech or programming paradigm quickly)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Hope this helps.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-05T07:06:44.113" />
  <row Id="33807" PostTypeId="2" ParentId="33795" CreationDate="2009-10-02T02:06:37.817" Score="46" ViewCount="" Body="&lt;p&gt;In an interview, I asked a guy what his biggest weakness was, and he said:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I sometimes give smartass answers to&#xA;  stupid questions.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;touché.   &lt;/p&gt;&#xA;" OwnerUserId="18182" LastActivityDate="2011-01-05T07:06:44.113" CommentCount="6" />
  <row Id="33808" PostTypeId="2" ParentId="33795" CreationDate="2009-10-02T04:12:35.457" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I always thought this was a stupid question.&lt;/strong&gt;  As an interviewer, you have no way to tell the difference between an honest answer and a carefully prepared one.  As a candidate, it is in your best interest to prepare a false answer to this question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're feeling really confident, you could tell the interviewer this.  If I was the interviewer, and a candidate told me my question was stupid, and gave me a good reason why, I'd be inclined to hire them.  That sort of behavior is something I really need in an employee: someone who will tell me when I'm making a mistake. It also shows that you've thought (at least a little) about how to conduct a good interview, and all employers need good interviewers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, it's a good question &lt;em&gt;for you to ask yourself&lt;/em&gt;. The problem, of course, is that most of the time we have a hard time seeing our weaknesses clearly.  If you aren't seeing your weaknesses, then you need to look a little harder.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowing your strengths, and how to play to them, and your weaknesses, and how to stop them from being a problem, makes you much better at the job.&lt;/p&gt;&#xA;" OwnerUserId="883" LastActivityDate="2011-01-05T07:06:44.113" CommentCount="2" />
  <row Id="33809" PostTypeId="2" ParentId="33795" CreationDate="2009-10-05T18:46:16.037" Score="1" ViewCount="" Body="&lt;p&gt;At times I like to twist these questions a little. &lt;a href=&quot;http://en.wikipedia.org/wiki/Marcus%5FBuckingham&quot; rel=&quot;nofollow&quot;&gt;Marcus Buckingham&lt;/a&gt; has a slightly different definition of strength that I rather enjoy in that to him a strength is something that makes you feel better at the end.  So for me this is where I'd say that I solve problems and think abstractly well and enjoy that too.  For weaknesses, I'd just be honest in that sometimes I take things too literally which can be difficult for some people.  If they want other weaknesses, I'd list a few other things that tend to annoy me or can cause great challenges for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A point on the weaknesses is whether or not some place will have a lot of those and thus not be a good place to work.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2011-01-05T07:06:44.113" />
  <row Id="33810" PostTypeId="2" ParentId="33795" CreationDate="2009-10-08T08:02:19.177" Score="1" ViewCount="" Body="&lt;p&gt;regarding Wakness try to answer your weakness in such a way that it should be looked upon your strength. e.g. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You struck in an issue and you consult your senior who in turn could not help you out.  In that scenario your weakness is that even you are appraching your senior you are doing constant R&amp;amp;D and will calm down once you solve this issue. In other words unless and until you solve this issue you tries on and on. for this sometimes your senior gets irritated for your restlessness.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-05T07:06:44.113" />
  <row Id="33811" PostTypeId="2" ParentId="33795" CreationDate="2009-10-16T01:38:48.080" Score="1" ViewCount="" Body="&lt;p&gt;You should consider listening to manager-tool's &lt;a href=&quot;http://www.manager-tools.com/2007/01/how-to-handle-the-interview-weakness-question&quot; rel=&quot;nofollow&quot;&gt;podcast&lt;/a&gt; on how to handle this interview question.  Great advice.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-05T07:06:44.113" />
  <row Id="33812" PostTypeId="2" ParentId="33795" CreationDate="2009-11-08T07:47:35.070" Score="2" ViewCount="" Body="&lt;p&gt;I had a friend answer this question by saying, &quot;my biggest weakness is I can't take questions like this seriously.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is an awful question, for all the reasons noted here. You can say exactly what the interviewer wants to hear without the interviewer being able to tell that that's what you're doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(btw, my friend got the job)&lt;/p&gt;&#xA;" LastActivityDate="2011-01-05T07:06:44.113" />
  <row Id="33813" PostTypeId="2" ParentId="33795" CreationDate="2009-11-08T07:51:08.510" Score="2" ViewCount="" Body="&lt;p&gt;Primary strength: Can solve complex problems easily. Primary weakness: Cannot describe well how I do that in plain english.&lt;/p&gt;&#xA;" OwnerUserId="9546" LastActivityDate="2011-01-05T07:06:44.113" />
  <row Id="33814" PostTypeId="2" ParentId="33795" CreationDate="2009-12-16T01:01:31.803" Score="1" ViewCount="" Body="&lt;p&gt;One of my weaknesses which came to light recently is that I don't question bad instructions.  Specifically I was told to automatically convert c++ to C# and write tests in C# to test this c++ code base.  It seemed like a bad idea, but I figured hey they are paying the bills so whatever.  But really I should have hollered about how bad the idea was.  It turned out to be a big waste of time.&lt;/p&gt;&#xA;" OwnerUserId="2527" LastActivityDate="2011-01-05T07:06:44.113" />
  <row Id="33815" PostTypeId="1" AcceptedAnswerId="33838" CreationDate="2011-01-05T04:07:11.350" Score="7" ViewCount="224" Body="&lt;p&gt;I'm not sure if this fits on SO, but other SE sites don't seem to fit either, so I understand when this question gets moved, Although I'd like to avoid getting it closed due to being offtopics, since I think that this question might fit, considering this part of the &lt;a href=&quot;http://stackoverflow.com/faq&quot;&gt;FAQ&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Stack Overflow is for professional and enthusiast programmers, ... covers …&lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;a specific programming problem&lt;/li&gt;&#xA;  &lt;li&gt;...&lt;/li&gt;&#xA;  &lt;li&gt;&lt;strong&gt;matters that are &lt;em&gt;unique&lt;/em&gt; to the programming profession&lt;/strong&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Sorry for the lengthy Introduction, though.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;When Software is advertised, it is usually Software for one (or more) specific purpose, such as:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://firefox.com/&quot; rel=&quot;nofollow&quot;&gt;Mozilla Firefox&lt;/a&gt; -&gt; A Web Browser&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://ubuntu.com/&quot; rel=&quot;nofollow&quot;&gt;Ubuntu&lt;/a&gt; -&gt; An Operating System&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://python.org/&quot; rel=&quot;nofollow&quot;&gt;Python&lt;/a&gt; -&gt; A Programming Language&lt;/li&gt;&#xA;&lt;li&gt;Visual Studio -&gt; A Development Studio&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;... And so on. But when writing Libraries, that is, Software that doesn't necessarily serve one specific purpose, but instead multiple purposes, which are usually supposed to be used &lt;em&gt;inside&lt;/em&gt; an application, such as:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://irrlicht.sf.net/&quot; rel=&quot;nofollow&quot;&gt;Irrlicht&lt;/a&gt; -&gt; A 3D Engine&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://qt.nokia.com/&quot; rel=&quot;nofollow&quot;&gt;Qt&lt;/a&gt; -&gt; An Application Framework&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;... The process of advertisement gets a little more difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a developer of the latter kind of Software, and I naturally want to advertise my Software. It's not commercial Software; It's not GPL either. It's completely free (Licensed under the MIT License :-)).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I naturally host my stuff at github, which technically makes it very easy to access the software, and I thought that these might be possible options, although I have no experience with them:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Submit the Software to &lt;a href=&quot;http://freshmeat.net&quot; rel=&quot;nofollow&quot;&gt;Freshmeat&lt;/a&gt;, and hope for the best&lt;/li&gt;&#xA;&lt;li&gt;Submit the Software to &lt;a href=&quot;http://sf.net/&quot; rel=&quot;nofollow&quot;&gt;Sourceforge&lt;/a&gt;, and hope someone accidently stumbles over it&lt;/li&gt;&#xA;&lt;li&gt;Write spammails, and get death threats via Mail&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;... But something tells me that these methods are probably not the best Methods.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, my final question would be, How does the Average Joe Hobby Programmer advertise his/her Software Library?&lt;/p&gt;&#xA;" OwnerUserId="6351" LastEditorUserId="6351" LastEditorDisplayName="" LastEditDate="2011-01-08T00:18:43.223" LastActivityDate="2011-01-08T00:18:43.223" Title="How to advertise (free) software?" Tags="&lt;free-software&gt;" AnswerCount="3" CommentCount="8" FavoriteCount="2" />
  <row Id="33816" PostTypeId="1" CreationDate="2008-11-20T09:28:48.237" Score="19" ViewCount="952" Body="&lt;p&gt;Our company is looking for new programmers. And here comes the problem - there are many developers who look really great at the interview, seem to know the technology you need and have a good job background, but after two moths of work, you find out that they are not able to work in a team, writing some code takes them very long time, and moreover, the result is not as good as it should be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, do you use any formalized tests (are there any?)? How do you recognize a good programmer - and a good person? Are there any simple 'good' questions that might reveal the future problems? &#xA;...or is it just about your 'feeling' about the person (ie., mainly your experience), and trying him out?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: According to Manoj's answer, &lt;a href=&quot;http://stackoverflow.com/questions/304916/job-interview-coding-task&quot;&gt;here&lt;/a&gt; is the question related to the coding task at the job interview.&lt;/p&gt;&#xA;" OwnerUserId="12632" LastActivityDate="2011-04-08T08:10:08.703" Title="How to recognize a good programmer?" Tags="&lt;interview-questions&gt;&lt;recruitment&gt;&lt;open-ended&gt;" AnswerCount="15" CommentCount="1" FavoriteCount="7" />
  <row Id="33817" PostTypeId="2" ParentId="33816" CreationDate="2008-11-20T09:36:15.680" Score="44" ViewCount="" Body="&lt;p&gt;Get them to talk about what they're interested in. I have yet to meet a developer who is really passionate when talking about programming but can't actually code. They may well exist, of course - and your interview should check for competency as well - but passion is a good indicator in my experience. (Note that that's not the same as being able to &quot;talk the talk&quot; in terms of buzzwords.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask them what they don't like about their favourite language or platform. How would they fix things? What would they like to see in the next version? Do they have hobby projects? If they've got a blog, read it. Check their general online presence.&lt;/p&gt;&#xA;" OwnerUserId="8958" LastActivityDate="2011-01-05T07:38:45.340" CommentCount="4" />
  <row Id="33818" PostTypeId="2" ParentId="33816" CreationDate="2008-11-20T09:38:35.720" Score="25" ViewCount="" Body="&lt;p&gt;Hiring good people is &lt;strong&gt;hard&lt;/strong&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has taken some real mistakes for me to get better at it. You start to trust your intestinal tract a lot more after the first couple of times you don't trust it and regret it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a great respect for &lt;a href=&quot;http://steve.yegge.googlepages.com/five-essential-phone-screen-questions&quot; rel=&quot;nofollow&quot;&gt;Steve Yegge's phone screen questions&lt;/a&gt; and have used this as the basis for interviewing people with some success.&lt;br /&gt;&#xA;I also think that I became better at interviewing people after reading &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000073.html&quot; rel=&quot;nofollow&quot;&gt;Joel's guide to guerilla interviewing&lt;/a&gt; (now at version 3.0, that's ahead of the version for the web and everything, it just has to be good).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are also 57 other questions (as of 20/11/2008) on &lt;a href=&quot;http://stackoverflow.com/questions/tagged/interview&quot;&gt;SO tagged with interview&lt;/a&gt; and a &lt;a href=&quot;http://stackoverflow.com/questions/239185/what-is-the-best-way-to-tell-an-excellent-programmer-in-a-job-interview&quot;&gt;couple&lt;/a&gt; of &lt;a href=&quot;http://stackoverflow.com/questions/299415/how-do-you-interview-a-potential-employer-what-do-you-look-for&quot;&gt;them&lt;/a&gt; look very &lt;a href=&quot;http://stackoverflow.com/questions/235563/identifying-the-right-engineer&quot;&gt;relevant&lt;/a&gt;, so check those out.&lt;/p&gt;&#xA;" OwnerUserId="20334" LastActivityDate="2011-01-05T07:38:45.340" CommentCount="2" />
  <row Id="33819" PostTypeId="2" ParentId="33816" CreationDate="2008-11-20T09:40:15.967" Score="13" ViewCount="" Body="&lt;p&gt;To recognize a good programmer, you &lt;em&gt;have to be&lt;/em&gt; a good programmer.  That means you have to know programming very well to see through the stuff that is said and done in the interview, and you have to know what questions to ask.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have seen candidates given the wrong answer at the interview, but their explanation have shown that they knew the subject (and therefore could easily get the right answer by searching the net).  To see that, you have to know the subject you are asking question about very well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thing is to avoid questions about details that could easily be googled.  Those question only shows how good the candidate is to remember things, not if he or she really have the knowledge and understanding you are looking for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My recommendation is to get help from someone that knows a great deal of programming, and have good people skills, to help out with the interviews.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: I also wrote a comment about interviews &lt;a href=&quot;http://stackoverflow.com/questions/194543/for-interviews-how-do-you-gauge-whether-the-candidate-would-be-a-good-coworker#285594&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-05T07:38:45.340" CommentCount="5" />
  <row Id="33820" PostTypeId="2" ParentId="33816" CreationDate="2008-11-20T09:43:02.280" Score="2" ViewCount="" Body="&lt;p&gt;I know this does not answer what you are asking but I recommend, laws permitting, always hire on a temporary basis at first (two weeks or a month, depending on the job). If the person is worth his salt he will not object, besides it's a safeguard for both of you (you can let him go and he might end up not liking the job and leaving).&lt;/p&gt;&#xA;" OwnerUserId="2018" LastActivityDate="2011-01-05T07:38:45.340" CommentCount="4" />
  <row Id="33821" PostTypeId="2" ParentId="33816" CreationDate="2008-11-20T09:43:06.430" Score="12" ViewCount="" Body="&lt;p&gt;Make them code. Give a problem which can be solved in say 4 or 5 hours and inspect the code for documentation, style of coding, how he planned the solution before actually starting to code etc. He need not have to actualy solve the problem.&#xA;And as Jon Skeet mentioned, make them talk about programming, their language of choice and things like that. You can recogonise the passion in a good programmer.&#xA;Ask how many programming related sites they follow- like stackoverflow. The blogs they follow als can be a good indicator.&lt;/p&gt;&#xA;" OwnerUserId="4509" LastActivityDate="2011-01-05T07:38:45.340" CommentCount="6" />
  <row Id="33822" PostTypeId="2" ParentId="33816" CreationDate="2008-11-20T09:49:09.553" Score="1" ViewCount="" Body="&lt;p&gt;You could perform some test in the interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But many times there is also a problem with the working environment itself. Surely this might not be the case in your organization, but it is quite common in the field of software industry that the technological debt becomes too large. Then when you hire new people, it doesn't much help if they are good or not, because of the debt. Maximizing the readability and understandability of your program code helps the newcomers to get into work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also many people are such that they can co-operate, but sometimes there is no way of co-operating. For example if all people are developers, they are supposed to do their job. Well, they do. But do you have an architect, that steers the development project and keeps meetings and such? Normal developers might feel that they don't have necessary mandate to start meetings and they might think that interrupting others now and then is not the way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Communicating with one other should not be the end goal. The less communication needed, the better, but only if less is possible. Less becomes possible if you have an architect. The total amount of communication might stay at good level, but you get more results for the same amount of communication.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-05T07:38:45.340" CommentCount="1" />
  <row Id="33823" PostTypeId="2" ParentId="33816" CreationDate="2008-11-20T09:49:29.070" Score="1" ViewCount="" Body="&lt;p&gt;&#xA;To recognise a good programmer, I always use &lt;a href=&quot;http://www.codethinked.com/post/2007/12/The-Programmer-Dress-Code.aspx&quot; rel=&quot;nofollow&quot;&gt;The Programmers Dress Code&lt;/a&gt; as a yard stick. ;-)&#xA;&lt;/p&gt;&#xA;" OwnerUserId="5266" LastActivityDate="2011-01-05T07:38:45.340" CommentCount="2" />
  <row Id="33824" PostTypeId="2" ParentId="33816" CreationDate="2008-11-20T09:51:35.493" Score="0" ViewCount="" Body="&lt;p&gt;First you should define exactly what kind of programmer you need.&#xA;The following &lt;a href=&quot;http://www.hr.ucdavis.edu/Comp/Guidelines/iet_appdeveloper_matrix&quot; rel=&quot;nofollow&quot;&gt;table&lt;/a&gt; may help.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-05T07:38:45.340" />
  <row Id="33825" PostTypeId="2" ParentId="33816" CreationDate="2008-11-20T10:00:43.883" Score="7" ViewCount="" Body="&lt;p&gt;I like the passion answer. I believe you have to be passionate for what you work with to actually be very good at it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good programmer programs on the side besides work (once in a while at least). He/she likes to solve programming problems. And when he/she cant find a program that solves a particular need at home, he will typically try to solve it himself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But there are several types of programmers. &lt;br&gt;&#xA; - You have the ones that loves documenting. Personally I hate documenting. But documenting what is done can be important.&lt;br&gt;&#xA; - You have the &quot;hackers&quot;. The ones that are hellbent on solving a complex puzzle where if you where to google for it, probably wouldn't find a solution. They can solve &quot;any&quot; problem as long as they got the tools they need.&lt;br&gt;&#xA; - You have those who educate themselves to be programmers just because the market was good for getting hired for programming. Those are usually mediocre because they lack the passion.&lt;br&gt;&#xA; - You have those who are superb at communicating and they &quot;can solve anything&quot; but once they get the job they hang over everyone else to get help for the problem they are solving.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can find the &quot;hacker&quot; that also documents very well and has superb communicating skills, I would believe you have hit jackpot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh and one last thing. You probably don't want a programmer that has leader ambitions, as he will only use programming to launch off. That means you'll loose that resource sooner or later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A question I would ask when hiring a programmer would be: &quot;Why did you educate yourself as an programmer?&quot;.&#xA;That would be a dead giveaway if they hesitate there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thats my opinions.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-05T07:38:45.340" CommentCount="6" />
  <row Id="33826" PostTypeId="2" ParentId="33816" CreationDate="2008-11-20T10:01:38.297" Score="2" ViewCount="" Body="&lt;p&gt;Someone who is up checking for SO questions in the middle of the night :)&lt;/p&gt;&#xA;" OwnerUserId="22230" LastActivityDate="2011-01-05T07:38:45.340" CommentCount="4" />
  <row Id="33827" PostTypeId="2" ParentId="33816" CreationDate="2008-11-20T10:02:33.457" Score="1" ViewCount="" Body="&lt;p&gt;It's very hard to recognize a programmer based on a job-interview alone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some things that decide that someone is a good programmer are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;able to work in a team&lt;/li&gt;&#xA;&lt;li&gt;writes good code that is understandable and maintable&lt;/li&gt;&#xA;&lt;li&gt;is able to learn about new technologies&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So you have some little hints you can find out about in an interview:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Does the candidate know one technology/programming language or does he know multiple? If he know different languages he seems to be able to learn new things and he possibly know about the downsides on his current preferred technology/language. So ask for knowledge besides the technology you use in your company.&lt;/li&gt;&#xA;&lt;li&gt;Ask for projects he already worked in, especially hobby-projects and open-source. Hobby projects show you, that he likes programming and do it even in it's spare time (and this way improves his skills). In an open-source project you can look up code he have written. If the project involves more than one person you may get hints about his team-skills. In an OS-project you can lookup the mailing-list-archives to know more.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7654" LastActivityDate="2011-01-05T07:38:45.340" />
  <row Id="33828" PostTypeId="2" ParentId="33816" CreationDate="2008-11-20T10:02:48.497" Score="20" ViewCount="" Body="&lt;p&gt;I'm about 6', 185 lbs., shaved head and a goatee.  I'm wearing Chuck Taylors and a blue t-shirt over a white thermal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please down-vote me gently - I did answer the question.  :)&lt;/p&gt;&#xA;" OwnerUserId="14582" LastActivityDate="2011-01-05T07:38:45.340" CommentCount="8" />
  <row Id="33829" PostTypeId="2" ParentId="33816" CreationDate="2008-11-20T11:53:39.880" Score="9" ViewCount="" Body="&lt;p&gt;Remember that programming ability isn't everything.  You could have the best programmer in the world working for you, but if they hate working with other people you will not find them very useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A programmers personality should be higher up on the list than most employers seem to rank it.  In my current workplace they are very careful about hiring the correct type of person.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;People can generally learn to be better programmers, people can not generally learn to be better human beings.&lt;/p&gt;&#xA;" OwnerUserId="365" LastEditorUserId="365" LastEditorDisplayName="" LastEditDate="2011-04-08T08:10:08.703" LastActivityDate="2011-04-08T08:10:08.703" CommentCount="2" />
  <row Id="33830" PostTypeId="2" ParentId="33816" CreationDate="2008-11-20T12:31:04.797" Score="4" ViewCount="" Body="&lt;p&gt;A friend of mine is working in a company where they have an additional step in the hiring process: after initial screening and interview, an applicant has to &quot;test work&quot; for a few days.  He told me that even though one candidate had every skill and talent needed, they did not hire him because he was &lt;s&gt;an a&lt;/s&gt; not a nice person to work with.&lt;/p&gt;&#xA;" OwnerUserId="15954" LastActivityDate="2011-01-05T07:38:45.340" CommentCount="2" />
  <row Id="33831" PostTypeId="2" ParentId="33816" CreationDate="2008-11-20T12:49:09.237" Score="17" ViewCount="" Body="&lt;p&gt;Some ideas:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Ask several open-ended questions from several different angles:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Review some code.&lt;/strong&gt;  &lt;em&gt;What's identified? Technical errors, style inconsistencies, comments, algorithms, maintainability, etc...&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Write some code.&lt;/strong&gt; &lt;em&gt;Look for process, bullet-proofing, readability, etc.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Create a high-level design for a small system.&lt;/strong&gt; &lt;em&gt;Look for comprehension of the problem, approach, communications, completeness, detail.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Describe the software development process.&lt;/strong&gt; &lt;em&gt;Look for design, collaboration, review, testing, good/bad habits, and overall experience.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Pick something&amp;mdash;anything&amp;mdash;the candidate claims to know well.  Ask a simple question and then, based on the answer, ask another, slightly more detailed one, and continue &quot;digging&quot; until you reach the limit of the candidate's knowledge.  This gives you an idea of:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Honesty: does s/he know as much as claimed?&lt;/li&gt;&#xA;&lt;li&gt;Depth of knowledge: how well does s/he learn things?&lt;/li&gt;&#xA;&lt;li&gt;Communication: how well does s/he explain something unfamiliar to you?  Is the thought process logical?&lt;/li&gt;&#xA;&lt;li&gt;Reaction to stressful situations: how hard does s/he work to answer? Does s/he fake it? Is the inevitable &quot;I don't know&quot; easy or difficult?&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Ask how the candidate dealt with various situations a previous jobs: teamwork, overdue projects, debugging, &lt;em&gt;etc&lt;/em&gt;.  Are the answers positive or negative?  Passionate? Intelligent? Arrogant?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I find the best candidates to be enthusiastic, seasoned, confident but polite, and most important, &lt;strong&gt;present&lt;/strong&gt;.  You need to know there's someone inside.  :-)&lt;/p&gt;&#xA;" LastActivityDate="2011-01-05T07:38:45.340" />
  <row Id="33832" PostTypeId="2" ParentId="33815" CreationDate="2011-01-05T07:51:29.833" Score="1" ViewCount="" Body="&lt;p&gt;Well let's get you some answers before the question is closed then.&#xA;What you want to do is create tracktion. First step is to make sure you have a domain och a point cyberspace you own and control. You want to have a well behaved website with good and simple design:&#xA;The webpage should quickly elevate your features, and youtube movies are good.&#xA;The webpage should have really good 's since its what people will look for in search browsers.&#xA;The webpage should be registered at all search engines, do it now the longer their registered the better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now. You want to provide hooks to your webpage from points where the inteded users (developers). An example would be to mention it in blogposts where people discuss that topic (and do try to contribute value, that increases the amount of people acctually clicking it). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Create applications around your software that points out that developers can develop similar things and make them available for free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, don't just focus on the web. Attend conferences and meetups where you show your work and point to your website. Make sure that your slides are available on the web with links.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, Youtube and other sites where you can describe how your software works and when its good, what to use it for etc. These sites allow you to put content up free of charge, and dynamic content is good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like everything if you want to advertise you have to spend time thinking about whom you want to advertise too and where you can reach them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sorry for the lengthy answer, and I hope it helps.&lt;/p&gt;&#xA;" OwnerUserId="10416" LastActivityDate="2011-01-05T07:51:29.833" />
  <row Id="33834" PostTypeId="2" ParentId="33713" CreationDate="2011-01-05T07:54:22.940" Score="3" ViewCount="" Body="&lt;p&gt;Yes, there are alternatives:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Adobe Flash Socket&lt;/li&gt;&#xA;&lt;li&gt;AJAX long polling&lt;/li&gt;&#xA;&lt;li&gt;AJAX multipart streaming&lt;/li&gt;&#xA;&lt;li&gt;Forever Iframe&lt;/li&gt;&#xA;&lt;li&gt;JSONP Polling&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Take a look at &lt;a href=&quot;http://socket.io/&quot; rel=&quot;nofollow&quot;&gt;socket.io&lt;/a&gt; which handles these automatically depending on what is available.&lt;/p&gt;&#xA;" OwnerUserId="5615" LastActivityDate="2011-01-05T07:54:22.940" />
  <row Id="33835" PostTypeId="2" ParentId="33789" CreationDate="2011-01-05T08:01:54.913" Score="0" ViewCount="" Body="&lt;p&gt;We're mixing html interfaces and WPF interfaces quite a lot right now. &#xA;There are some things to consider. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like if you want to host your website in an embeded browser you might still have issues with different browsers on different systems. Chromeium on Linux machines and IE on .Net applications for example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could control this by embedding the browser you want to use in the application. This has been done for .Net with chromium: &lt;a href=&quot;http://www.khrona.com/products/awesomium/&quot; rel=&quot;nofollow&quot;&gt;http://www.khrona.com/products/awesomium/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is also a moving edge on the mobile device developer community. &lt;a href=&quot;http://www.phonegap.com/&quot; rel=&quot;nofollow&quot;&gt;PhoneGap&lt;/a&gt; has a system where you create webpages that then are compiled into an embeded browser with hooks into the OS for more advanced features. I can imagine that you could get more experience reports from developers who have tried that out.&lt;/p&gt;&#xA;" OwnerUserId="10416" LastActivityDate="2011-01-05T08:01:54.913" CommentCount="2" />
  <row Id="33837" PostTypeId="2" ParentId="33650" CreationDate="2011-01-05T08:17:45.543" Score="1" ViewCount="" Body="&lt;p&gt;You &lt;em&gt;should&lt;/em&gt; use whichever language you wish. In all seriousness, you can choose by looking at the cover of the O'Reilly books and going with the one you like best. Because realistically, if you don't know how to program or how to build a website and so on, you have a lot of learning ahead of you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This isn't a final decision, and you don't need to get all stressed about it. Just start learning how to put the components you want together with whatever framework. You're going to have to learn what the components even ARE. So really, language choice is absolutely your smallest problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, I would recommend against Java, because regardless of how beneficial people may think it would be for you to learn that way, I find Java to be so horribly unpleasant to use that I couldn't recommend it unless there was truly no alternative. I think you would be well served to spend some time with C, just because it's so close to the bone, but as for speed of development, any of your three top choices will do.&lt;/p&gt;&#xA;" OwnerUserId="6883" LastActivityDate="2011-01-05T08:17:45.543" />
  <row Id="33838" PostTypeId="2" ParentId="33815" CreationDate="2011-01-05T08:24:58.907" Score="12" ViewCount="" Body="&lt;p&gt;A library can be a difficult thing to market. And you are 100% correct, free software should be marketed in order to increase its usefulness. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hosting on Github is great, I also like what they have to offer. However, why not set up a domain, or sub domain for your project? You'll have better success with even a one page site that does the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Explains in one concise sentences what the library does and the language that it is written in. For example, &lt;code&gt;foo is a library for manipulating bar in python&lt;/code&gt;. The &lt;em&gt;very&lt;/em&gt; next sentence should be an elevator pitch, for instance &lt;code&gt;foo takes the pain and complexity out of dealing with bar manipulation. With foo, you do your bar manipulation in minutes, not hours.&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Shows a simple (10 - 15 line) code snippet demonstrating the use of the library interface.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Describes the current and proposed future status of the project. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Offers convenient links to downloads (zip/tar) of all versions, including snapshots from the repository.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Offers convenient links to the bug tracker and whatever tools you have set up to make collaboration easier for your community (you do have them, right?)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Documentation that is easy to search.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;An RSS feed for people to subscribe to important news, such as security vulnerabilities (we'll get into that later).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Feel free to do more, too. The more content you publish that describes how awesome your library is, including problems that it addresses, the more people will find it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, yes. Submit the site as many places as you can. Freshmeat, Stumble Upon, Reddit, any place that has a 'programming' category and welcomes sharing of links to useful things, even if self promotional. Avoid breaching experiments, don't annoy people. You might also consider listing the project on Ohloh. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing you want to do is get people saying &quot;Wow, I love this library, I wish my OS of choice packaged it&quot;, and you want that to happen quickly. By setting up your site and resources, you aren't just attracting other developers, you are attracting people who can help you package your library for inclusion in many other operating systems. This &lt;em&gt;really&lt;/em&gt; helps adoption, because it becomes less of a dependency headache to use it. Make sure you don't accidentally make your library more difficult to package and maintain. Don't break older versions of your API with every new release. Increment your version numbers appropriately. Above all, resist the urge to push out a new version every time you fix a trivial bug.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you actively maintain and promote your project, you should see good results within a year - year and a half if it is really useful. Sometimes it happens faster, but don't get discouraged if you don't see quick results.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2011-01-05T08:33:54.703" LastActivityDate="2011-01-05T08:33:54.703" CommentCount="1" />
  <row Id="33839" PostTypeId="2" ParentId="33578" CreationDate="2011-01-05T08:25:45.940" Score="3" ViewCount="" Body="&lt;p&gt;Bounded and distinct Integers types like in Pascal and Ada. Honestly: how often do you need the full range of any integer? I think there is a lot to be improved in primitive types to better represent the real world.&lt;/p&gt;&#xA;" OwnerUserId="11328" LastActivityDate="2011-01-05T08:25:45.940" CommunityOwnedDate="2011-01-05T08:25:45.940" CommentCount="4" />
  <row Id="33840" PostTypeId="1" CreationDate="2011-01-05T08:33:11.653" Score="6" ViewCount="177" Body="&lt;p&gt;I'm an entry level programmer and am involved in daily client meeting about project progress, issues, deadlines etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have no experience of client management, could you people please suggest any common things to consider when interacting with clients both in a project and people management perspective.&lt;/p&gt;&#xA;" OwnerUserId="7452" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2011-01-05T08:42:18.060" LastActivityDate="2011-01-05T10:09:38.810" Title="Things to be aware of Client Relationships as a Beginner?" Tags="&lt;project-management&gt;" AnswerCount="4" />
  <row Id="33841" PostTypeId="1" CreationDate="2011-01-05T08:39:14.257" Score="4" ViewCount="476" Body="&lt;p&gt;I have joined 4 months back at a huge Company as a Tester and would want to move to software development eventually.. Can any of you suggest how I should gain those skills required for this career change. I do hold a bachelor's degree in computer science already. &lt;/p&gt;&#xA;" OwnerUserId="12431" LastEditorUserId="2673" LastEditorDisplayName="" LastEditDate="2011-01-07T05:58:30.060" LastActivityDate="2011-01-07T05:58:30.060" ClosedDate="2011-01-07T16:26:13.617" Title="How to Change career from a software tester to software developer" Tags="&lt;career&gt;" AnswerCount="7" CommentCount="4" FavoriteCount="1" />
  <row Id="33842" PostTypeId="2" ParentId="33794" CreationDate="2011-01-05T08:39:19.813" Score="0" ViewCount="" Body="&lt;p&gt;Personally, I prefer an IDE for the ease of typing/coding it offers me as well as it being a one-in-all, with compilers and debuggers integrated within it. Have been using various versions of Visual Studio IDE since years and am comfortable using that.&lt;/p&gt;&#xA;" OwnerUserId="5299" LastActivityDate="2011-01-05T08:39:19.813" />
  <row Id="33843" PostTypeId="2" ParentId="33840" CreationDate="2011-01-05T08:39:36.533" Score="6" ViewCount="" Body="&lt;p&gt;Some points I learnt early on:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Get &lt;strong&gt;everything in some form of writing&lt;/strong&gt; (document, email, etc)&lt;/li&gt;&#xA;&lt;li&gt;Understand that your interpretation of what they want/mean is likely wrong. Working with examples can help this.&lt;/li&gt;&#xA;&lt;li&gt;Technical jargon is generally more harmful than saying nothing. Don't lose them; &lt;strong&gt;speak plain English&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Be prepared:&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Know what issues were experienced since your last meeting,&lt;/li&gt;&#xA;&lt;li&gt;Know what the current progress is, why you are behind if you are, and any new potential risk to not meeting your deadlines.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2673" LastEditorUserId="2673" LastEditorDisplayName="" LastEditDate="2011-01-05T08:46:50.947" LastActivityDate="2011-01-05T08:46:50.947" CommentCount="2" />
  <row Id="33844" PostTypeId="1" CreationDate="2011-01-05T06:15:42.920" Score="3" ViewCount="460" Body="&lt;p&gt;Hi all,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have an interview with Microsoft in a week and am wondering what to wear. The recruiter said Business Casual but that means very little to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure some people here have already had interviews at MS. Anyone care to share what the interviewers were wearing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would I be out of place with jeans and a polo shirt?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Honestly, I feel more comfortable with casual clothes (some people are the opposite) but I don't want to look under dressed either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for the tips.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-05T11:37:35.853" ClosedDate="2011-01-05T11:52:42.497" Title="Microsoft Interview Attire" Tags="&lt;interview-questions&gt;&lt;microsoft&gt;" AnswerCount="4" CommentCount="9" />
  <row Id="33845" PostTypeId="2" ParentId="33844" CreationDate="2011-01-05T06:19:56.310" Score="4" ViewCount="" Body="&lt;p&gt;When I think if business casual I think of a button down shirt, slacks, and a nice pair of shoes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another way to think of it is this:  How comfortable would you feel if you showed up in jeans and the interviewers were wearing dress shirts and ties?  Better to be safe than sorry.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck on your interview!&lt;/p&gt;&#xA;" OwnerUserId="12611" LastActivityDate="2011-01-05T08:40:05.850" CommentCount="1" />
  <row Id="33846" PostTypeId="2" ParentId="33844" CreationDate="2011-01-05T06:21:05.083" Score="5" ViewCount="" Body="&lt;p&gt;Probably means polo or oxford and khakis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's more: &lt;a href=&quot;http://microsoftjobsblog.com/blog/what-to-wear-aka-recruiter-eye-for-the-tech-guy/&quot; rel=&quot;nofollow&quot;&gt;http://microsoftjobsblog.com/blog/what-to-wear-aka-recruiter-eye-for-the-tech-guy/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I always wear a suit to interviews. It's hard to be overdressed to an interview, even in today's software company cultures.&lt;/p&gt;&#xA;" OwnerUserId="3661" LastActivityDate="2011-01-05T08:40:05.850" CommentCount="4" />
  <row Id="33847" PostTypeId="2" ParentId="33844" CreationDate="2011-01-05T06:21:33.883" Score="0" ViewCount="" Body="&lt;p&gt;If its a interview make sure to wear formal ! .. just for few hours ! ;)&lt;/p&gt;&#xA;" OwnerUserId="17833" LastActivityDate="2011-01-05T08:40:05.850" />
  <row Id="33848" PostTypeId="2" ParentId="33840" CreationDate="2011-01-05T08:46:10.947" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Client is &lt;strong&gt;king&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;But only if you have room for advices and you are treated with respect.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-05T08:46:10.947" />
  <row Id="33849" PostTypeId="1" CreationDate="2011-01-05T08:48:32.177" Score="0" ViewCount="134" Body="&lt;p&gt;I want to know how to write a clojure code by looking at a java code like this.&lt;br&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&#xA;import xxxxxx&#xA;import com.vaadin.terminal.gwt.server.AbstractApplicationServlet;&#xA;&#xA;public class Clojure4Vaadin extends AbstractApplicationServlet {&#xA;&#xA;    @Override&#xA;    protected &lt;b&gt;Class &amp;lt;? extends Application &amp;gt; getApplicationClass()&lt;/b&gt;&#xA;            throws ClassNotFoundException {&#xA;        return Application.class;&#xA;    }&#xA;&#xA;    @Override&#xA;    protected Application getNewApplication(HttpServletRequest request) throws ServletException {&#xA;    try {&#xA;    RT.load(getServletConfig().getInitParameter(&quot;script-name&quot;), true);&#xA;&#xA;            //run Lisp function&#xA;    return (Application)RT.var(getServletConfig().getInitParameter(&quot;package-name&quot;),getServletConfig().getInitParameter(&quot;function-name&quot;)).invoke(new String[0]);&#xA;    }&#xA;    catch (Exception e) {&#xA;    throw new ServletException(e);&#xA;    }&#xA;  }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;I need to write a code clojure code which can do the sane thing that this java code can do. &lt;/b&gt;&lt;/p&gt;&#xA;" OwnerUserId="12428" LastEditorUserId="12428" LastEditorDisplayName="" LastEditDate="2011-01-06T04:08:56.523" LastActivityDate="2011-01-06T04:08:56.523" ClosedDate="2011-01-06T03:04:51.670" Title="How to write this kind of java source in clojure." Tags="&lt;java&gt;&lt;vaadin&gt;" CommentCount="4" />
  <row Id="33850" PostTypeId="2" ParentId="33840" CreationDate="2011-01-05T08:50:49.540" Score="6" ViewCount="" Body="&lt;p&gt;Wow.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;One of the most important things I find is &quot;Get to Know Your Clients&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You have to know on what level they think, are they technical themselves (or do they have older technical knowledge) Do they think in terms of business processes , user interfaces , program management terms, servers and wires. You have to learn their language.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;Never Asume&quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Every time you think: &quot;O than it should be like this&quot;, verify&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Use check-lists. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Make sure that you have at least talked about anything you can think of. Not everything has to be obvious at this moment but at least try to get agreement on everything that is included. To help you remember and make things clear to them.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;At the end of meetings get action point with dates and people responsible &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;just saying that something needs to be done, will make sure that it doesn't get done in time.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Be aware of your own personality and theirs. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Sometimes you have to discuss point differently (not lie) to get your point across. To give you an idea of a simple method look &lt;a href=&quot;http://changingminds.org/explanations/preferences/disc.htm&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2011-01-05T08:50:49.540" CommentCount="2" />
  <row Id="33851" PostTypeId="1" AcceptedAnswerId="33853" CreationDate="2011-01-05T08:51:50.117" Score="14" ViewCount="600" Body="&lt;p&gt;Recently one of our key engineers resigned. This engineer has co-authored a major component of our application. We are not hitting &lt;a href=&quot;http://c2.com/cgi-bin/wiki?TruckNumber&quot; rel=&quot;nofollow&quot;&gt;Truck number&lt;/a&gt; yet though, but we're getting close :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before the guy waltzes off, we want to &lt;strong&gt;take actions necessary to recover from this loss as smoothly as possible&lt;/strong&gt; and eventually 'grow' the rest of the team to competently cover the parts he authored.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;More about the context: the domain the component covers and the code are no rocket science but still a lot of non-trivial stuff. Some team members can already cover a lot of this but those have a lot on their plates.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are the actions that come to my mind:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Improve tests and test coverage - especially for the non-trivial stuff,&lt;/li&gt;&#xA;&lt;li&gt;Update high level documents,&lt;/li&gt;&#xA;&lt;li&gt;Document any 'funny stuff' the code does (we had to do some heavy duct-taping),&lt;/li&gt;&#xA;&lt;li&gt;Add / update code documentation - have everything with 'public' visibility documented.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Finally the questions:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think are the actions to take in this situation? What have you done in such situations? What did or did not work well for you?&lt;/p&gt;&#xA;" OwnerUserId="11344" LastEditorUserId="11344" LastEditorDisplayName="" LastEditDate="2011-01-05T16:01:05.400" LastActivityDate="2011-01-05T16:01:05.400" Title="What actions to take when people leave the team?" Tags="&lt;project-management&gt;&lt;team&gt;&lt;good-practices&gt;" AnswerCount="6" CommentCount="7" FavoriteCount="6" />
  <row Id="33852" PostTypeId="2" ParentId="33851" CreationDate="2011-01-05T08:59:16.713" Score="10" ViewCount="" Body="&lt;p&gt;You seemed to have covered the key points:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Update/create &lt;strong&gt;important documentation&lt;/strong&gt; on the component/system you have been putting off.&lt;/li&gt;&#xA;&lt;li&gt;Note down &lt;strong&gt;common pitfalls, gotchas&lt;/strong&gt;, etc that they may know but the team doesn't&lt;/li&gt;&#xA;&lt;li&gt;Improve tests for difficult/complex sections that are missing them.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Other things they may be helpful:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Have someone &lt;strong&gt;partner&lt;/strong&gt; with them to do a &lt;strong&gt;&quot;brain dump&quot;&lt;/strong&gt; during the end. This is much quicker, but less precise, then documentation when you are out of time.&lt;/li&gt;&#xA;&lt;li&gt;Try to be on good terms with the leaving employee, you might need to hire them back for a few hours in a consulting role outside of hours (if you really get stuck).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;At least, this is what I have learnt after watching my current employees lose 3 of their 4 key technical staff in my first 2 years there...&lt;/p&gt;&#xA;" OwnerUserId="2673" LastActivityDate="2011-01-05T08:59:16.713" />
  <row Id="33853" PostTypeId="2" ParentId="33851" CreationDate="2011-01-05T09:20:34.023" Score="36" ViewCount="" Body="&lt;p&gt;I ask him to &lt;strong&gt;stop coding completely&lt;/strong&gt; and devote his time:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;coaching others&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;review his comments in code (to adapt them to the situation) &lt;/li&gt;&#xA;&lt;li&gt;and write a document he would have written if he knew he would die in a week.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I try to put priority in modules he &lt;em&gt;owned&lt;/em&gt; to make other developer work with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember after he left, it's too late to do coaching or ask him questions (in good conditions).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When he leaves, take that opportunity to ask him how he think you could improve your organization. Former employees have nothing to loose and their feedback is honest and then always valuable.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2011-01-05T10:29:12.340" LastActivityDate="2011-01-05T10:29:12.340" CommentCount="5" />
  <row Id="33854" PostTypeId="2" ParentId="33851" CreationDate="2011-01-05T09:21:53.083" Score="0" ViewCount="" Body="&lt;p&gt;Consider doing all those things on any major project in the future. It's what my company is doing after learning their lesson the hard way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are always at least two pairs of eyes on any code project. That way the effect of someone leaving is always limited.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And always keeping your tests/documentation up to date goes a long way too.&lt;/p&gt;&#xA;" OwnerUserId="4930" LastActivityDate="2011-01-05T09:21:53.083" />
  <row Id="33855" PostTypeId="2" ParentId="33578" CreationDate="2011-01-05T09:23:28.090" Score="2" ViewCount="" Body="&lt;p&gt;Facilitate metaprogramming.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;limit special forms&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Python there is no good reason why print it not a builtin function. It looks at acts like a function except for not wanting anything to do with parens.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do we really need &lt;code&gt;for&lt;/code&gt;, &lt;code&gt;foreach&lt;/code&gt;, &lt;code&gt;while&lt;/code&gt; and the like each as their own special form.  How about one looping construct and some default macros to provide the syntactic sugar of the variant looping forms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;meta-programming for special forms&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;form['if'](test-fn, body-fn)&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="7575" LastEditorUserId="7575" LastEditorDisplayName="" LastEditDate="2011-01-06T17:27:51.523" LastActivityDate="2011-01-06T17:27:51.523" CommunityOwnedDate="2011-01-05T09:23:28.090" CommentCount="5" />
  <row Id="33856" PostTypeId="2" ParentId="33713" CreationDate="2011-01-05T09:28:23.837" Score="1" ViewCount="" Body="&lt;p&gt;There's still &lt;a href=&quot;http://orbited.org/&quot; rel=&quot;nofollow&quot;&gt;orbited&lt;/a&gt; sockets.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2011-01-05T09:28:23.837" />
  <row Id="33857" PostTypeId="2" ParentId="33841" CreationDate="2011-01-05T09:34:07.147" Score="9" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Talk to management&lt;/strong&gt; about your ambitions and stay in the loop for any job openings inside your company. Hiring internally is often less risk for them/lower costing since they can spend less on recruiting and you are already a known entity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Failing that, you can always &lt;strong&gt;apply for development jobs in other companies&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Practice the language(s)&lt;/strong&gt; you plan to work with outside of office hours. Take on &lt;strong&gt;personal projects&lt;/strong&gt; that you can call upon if required in an interview.&lt;/p&gt;&#xA;" OwnerUserId="2673" LastEditorUserId="2673" LastEditorDisplayName="" LastEditDate="2011-01-06T19:05:34.407" LastActivityDate="2011-01-06T19:05:34.407" />
  <row Id="33858" PostTypeId="2" ParentId="33841" CreationDate="2011-01-05T09:34:25.917" Score="0" ViewCount="" Body="&lt;p&gt;I think this is very depended on the person, what do you know all ready, what is you experience ? What kind of software development do you want to do ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I is also depended on the organization you work for. At the organization I work for, people who make the same switch make a plan with their manager and the organization gives them training and tries to find assignments for them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you could do is search for job vacancies (internal or external) see what skills you are missing and start to brush them up yourself (get certificates, write pet projects (or contribute to open source projects read books) or go talk to the hiring company and ask what they can do for you. Most of the time Software testers have enough technical knowledge to be interesting. And since you have a bachelor degree in computer science this could be even more interesting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps,&lt;/p&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2011-01-05T09:34:25.917" />
  <row Id="33859" PostTypeId="2" ParentId="33840" CreationDate="2011-01-05T10:09:38.810" Score="1" ViewCount="" Body="&lt;p&gt;People want to be reasonable and they want to get along, so keep everything as clear as possible and as simple as possible and you'll be alright.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never try to hide things from a client- the best thing is to keep them up to date including any problems you are running into rather than trying to gloss over those. They would rather know now that there is a chance things will be pushed back a week than find out two days before a deadline.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask questions and then ask more questions. You can use questioning a client to make it clear that you are understanding what they want but you can also use it to lead them to conclude for themselves that there is a problem with what they are asking for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they don't understand something you are trying to explain, be patient and think of a different way to explain it. If there are technical issues likely to come up that you don't expect them to understand easily, think up some user stories ahead of time or work out some diagrams that will make the problem clear to them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you aren't sure that you have understood something, double check with them. Also if you &lt;em&gt;are&lt;/em&gt; sure you have understood.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Always end meetings on a positive and forward-looking note, even if you have had a rough time of it right now. &lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2011-01-05T10:09:38.810" CommentCount="1" />
  <row Id="33860" PostTypeId="2" ParentId="33815" CreationDate="2011-01-05T10:19:00.513" Score="0" ViewCount="" Body="&lt;p&gt;integrate the project into another well known big project, that could contain that project.&lt;/p&gt;&#xA;" OwnerUserId="5260" LastActivityDate="2011-01-05T10:19:00.513" CommentCount="1" />
  <row Id="33861" PostTypeId="2" ParentId="21067" CreationDate="2011-01-05T10:52:43.233" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/22912/null-references-the-billion-dollar-mistake&quot;&gt;&lt;strong&gt;Non-nullable reference types&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why? Because the purpose of type systems is to &quot;prove&quot; the correctness of our programs by limiting the values a variable can take to &lt;strong&gt;some meaningful ones&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But they fail to do so, as there is a &lt;strong&gt;hidden extra value&lt;/strong&gt; in our reference types without knowing - one, that is in most cases &lt;em&gt;not&lt;/em&gt; meaningful: &lt;code&gt;null&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Non-nullable reference types by default would give us meaningful types again, thereby reduce run-time errors that now can be caught at compile-time, and force the programmer to be explicit &lt;em&gt;if&lt;/em&gt; &lt;code&gt;null&lt;/code&gt; is actually a desired, valid state too.&lt;/p&gt;&#xA;" OwnerUserId="11506" LastActivityDate="2011-01-05T10:52:43.233" CommunityOwnedDate="2011-01-05T10:52:43.233" />
  <row Id="33862" PostTypeId="2" ParentId="33652" CreationDate="2011-01-05T11:05:03.090" Score="1" ViewCount="" Body="&lt;p&gt;sorry i can't recommend one but it sounds like you should create one from scratch for your team based on your companies individual requirements and testing needs.&lt;/p&gt;&#xA;" OwnerUserId="10442" LastActivityDate="2011-01-05T11:05:03.090" CommentCount="1" />
  <row Id="33864" PostTypeId="2" ParentId="33851" CreationDate="2011-01-05T11:22:39.407" Score="2" ViewCount="" Body="&lt;p&gt;When I first changed position in the first company I worked for I made a spreadsheet that contained a list of all work I'd done in rows, and columns for:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the project/product it was for&lt;/li&gt;&#xA;&lt;li&gt;the specific area of the project&lt;/li&gt;&#xA;&lt;li&gt;the business/project manager&lt;/li&gt;&#xA;&lt;li&gt;the complexity of the work&lt;/li&gt;&#xA;&lt;li&gt;who it was being handed to&lt;/li&gt;&#xA;&lt;li&gt;whether it was handed over, to be handed over or didn't need to be&lt;/li&gt;&#xA;&lt;li&gt;the date it was handed over&lt;/li&gt;&#xA;&lt;li&gt;the name of any documents for it (which were stored in an accompanying articles.zip)&lt;/li&gt;&#xA;&lt;li&gt;any comment on it&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This was updated over the course of the handover (and filtered and sorted for priorities) and eventually became a legend and archive of all my work and a TODO list for any documentation/discussions that were needed, and people to make sure are happy with handovers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I gave to my old manager so they (or anyone else) could get my work/documents without having to ask me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was asked for blank copies of it a lot and it became the informal de facto handover document for any handovers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although, when I left as a developer, I was still scheduled into coding until my last hour (and was late for my leaving do for it), so definitely agree with Pierre on stopping any new work to make sure the handover goes well.&lt;/p&gt;&#xA;" OwnerUserId="12436" LastActivityDate="2011-01-05T11:22:39.407" />
  <row Id="33865" PostTypeId="2" ParentId="2192" CreationDate="2011-01-05T11:25:45.257" Score="0" ViewCount="" Body="&lt;p&gt;This is a highly personal and perhaps controversial opinion, but planning and thinking too much about design up-front or writing &quot;quality&quot; code all the time. There's a saying that &quot;weeks of coding can save you hours of planning&quot; that might be true in some cases. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However I often see programmers try to sketch out a good design before starting coding. I find myself that it's easier to just &quot;get going&quot;, as you program you will learn more about your problem and solution which will allow you to refactor your solution rapidly into a good design. Most of the issues arising are pretty much unknowable at the start of coding (atleast to my feeble mind) so wasting a lot of  time designing up front is just a waste of time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is also why I don't like TDD, you waste too much time writing tests which makes you either less likely to refactor or takes up a lot of time to rewrite the tests.  Unit Tests are great for some cases and some stages of a project, but the beginning of one isn't one of them IMHO :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Get something working quickly and improve it.&lt;/p&gt;&#xA;" OwnerUserId="12354" LastActivityDate="2011-01-05T11:25:45.257" CommunityOwnedDate="2011-01-05T11:25:45.257" CommentCount="4" />
  <row Id="33866" PostTypeId="2" ParentId="33844" CreationDate="2011-01-05T11:37:35.853" Score="0" ViewCount="" Body="&lt;p&gt;Travel to the campus where you expect to be interviewed and carefully observe the kind of dresses that are in fashion there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Dress slightly better than the most common attire that you notice. You don't need to try too hard when it comes to dressing for the interview; there are more important aspects that you're going to be tested on.&lt;/p&gt;&#xA;" OwnerUserId="8903" LastActivityDate="2011-01-05T11:37:35.853" />
  <row Id="33867" PostTypeId="1" AcceptedAnswerId="34309" CreationDate="2011-01-05T11:39:54.687" Score="0" ViewCount="53" Body="&lt;p&gt;&lt;em&gt;(NOTE: Also asked on stackoverflow.com - &lt;a href=&quot;http://stackoverflow.com/questions/4604365/script-tool-to-import-series-of-snapshots-each-being-a-new-revision-into-subver&quot;&gt;http://stackoverflow.com/questions/4604365/script-tool-to-import-series-of-snapshots-each-being-a-new-revision-into-subver&lt;/a&gt;&#xA;since programmers includes subjective discussions where as stackoverflow.com is for precise question and answers (according to official comparison of sites (http://meta.programmers.stackexchange.com/questions/171/whats-the-difference-between-programmers-and-so) ).&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've developed code locally and taken a fairly regular snapshot whenever I reach a significant point in development, e.g. a working build.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I have a long-ish list of about 40 folders, each folder being a snapshot e.g. in ascending date YYYYMMDD order, e.g.:-&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;20100523 &lt;/li&gt;&#xA;&lt;li&gt;20100614&lt;/li&gt;&#xA;&lt;li&gt;20100721&lt;/li&gt;&#xA;&lt;li&gt;20100722&lt;/li&gt;&#xA;&lt;li&gt;20100809&lt;/li&gt;&#xA;&lt;li&gt;20100901&lt;/li&gt;&#xA;&lt;li&gt;20101001&lt;/li&gt;&#xA;&lt;li&gt;20101003&lt;/li&gt;&#xA;&lt;li&gt;20101104&lt;/li&gt;&#xA;&lt;li&gt;20101119&lt;/li&gt;&#xA;&lt;li&gt;20101203&lt;/li&gt;&#xA;&lt;li&gt;20101218&lt;/li&gt;&#xA;&lt;li&gt;20110102&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I'm looking for a script to import each of these snapshots as a new subversion revision to the source tree. The end result being that the HEAD revision is the same as the last snapshot, and other revisions are as numbered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some other requirements:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;that the HEAD revision is not cumulative of the previous snapshots, i.e., files that appeared in older snapshots but which don't appear in later ones (e.g. due to refactoring etc.) should not appear in the HEAD revision.&lt;/li&gt;&#xA;&lt;li&gt;meanwhile, there should be continuity between &lt;em&gt;files&lt;/em&gt; that &lt;em&gt;do&lt;/em&gt; persist between snapshots. Subversion should know that there are previous versions of these files and not treat them as brand new files within each revision.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some background about my aim:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I need to formally revision control this work rather than keep local private snapshot copies.&lt;/li&gt;&#xA;&lt;li&gt;I plan to release this work as open source, so version controlling would be highly recommended&lt;/li&gt;&#xA;&lt;li&gt;I am evaluating some of the current popular version control systems (Subversion and GIT) BUT I &lt;em&gt;definitely&lt;/em&gt; need a working solution in Subversion. I'm &lt;em&gt;not&lt;/em&gt; looking to be persuaded to use one particular tool, I need a solution for each tool I am considering as I would also like a solution in GIT (I will post an answer separately for GIT so separate camps of folks who have expertise in GIT and Subversion will be able to give focused answers on one or the other).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The same question but for GIT:&#xA;&lt;a href=&quot;http://programmers.stackexchange.com/questions/33868/script-tool-to-import-series-of-snapshots-each-being-a-new-edition-into-git-po&quot;&gt;Script/tool to import series of snapshots, each being a new edition, into GIT, populating source tree?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An outline answer for Subversion in stackoverflow.com but not enough specifics about the script: what commands to use, code to check valid scenarios if necessary - i.e. a working script basically. &lt;a href=&quot;http://stackoverflow.com/questions/2203818/is-there-anyway-to-import-xcode-snapshots-into-a-new-svn-repository&quot;&gt;http://stackoverflow.com/questions/2203818/is-there-anyway-to-import-xcode-snapshots-into-a-new-svn-repository&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9267" LastEditorUserId="9267" LastEditorDisplayName="" LastEditDate="2011-01-05T13:14:46.550" LastActivityDate="2011-01-06T16:32:03.807" Title="Script/tool to import series of snapshots, each being a new revision, into Subversion, populating source tree?" Tags="&lt;version-control&gt;&lt;snapshot&gt;&lt;import&gt;&lt;howto&gt;&lt;subversion&gt;" AnswerCount="1" CommentCount="3" FavoriteCount="1" />
  <row Id="33868" PostTypeId="1" AcceptedAnswerId="33880" CreationDate="2011-01-05T11:45:24.697" Score="1" ViewCount="99" Body="&lt;p&gt;I've developed code locally and taken a fairly regular snapshot whenever I reach a significant point in development, e.g. a working build.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I have a long-ish list of about 40 folders, each folder being a snapshot e.g. in ascending date YYYYMMDD order, e.g.:-&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;20100523 &lt;/li&gt;&#xA;&lt;li&gt;20100614&lt;/li&gt;&#xA;&lt;li&gt;20100721&lt;/li&gt;&#xA;&lt;li&gt;20100722&lt;/li&gt;&#xA;&lt;li&gt;20100809&lt;/li&gt;&#xA;&lt;li&gt;20100901&lt;/li&gt;&#xA;&lt;li&gt;20101001&lt;/li&gt;&#xA;&lt;li&gt;20101003&lt;/li&gt;&#xA;&lt;li&gt;20101104&lt;/li&gt;&#xA;&lt;li&gt;20101119&lt;/li&gt;&#xA;&lt;li&gt;20101203&lt;/li&gt;&#xA;&lt;li&gt;20101218&lt;/li&gt;&#xA;&lt;li&gt;20110102&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I'm looking for a script to import each of these snapshots into GIT. The end result being that the latest code is the same as the last snapshot, and other editions are accessible and are as numbered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some other requirements:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;that the latest edition is not cumulative of the previous snapshots, i.e., files that appeared in older snapshots but which don't appear in later ones (e.g. due to refactoring etc.) should not appear in the latest edition of the code.&lt;/li&gt;&#xA;&lt;li&gt;meanwhile, there should be continuity between &lt;em&gt;files&lt;/em&gt; that &lt;em&gt;do&lt;/em&gt; persist between snapshots. I would like GIT to know that there are previous editions of these files and not treat them as brand new files within each edition.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Some background about my aim:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I need to formally revision control this work rather than keep local private snapshot copies.&lt;/li&gt;&#xA;&lt;li&gt;I plan to release this work as open source, so version controlling would be highly recommended&lt;/li&gt;&#xA;&lt;li&gt;I am evaluating some of the current popular version control systems (Subversion and GIT) BUT I &lt;em&gt;definitely&lt;/em&gt; need a working solution in GIT as well as subversion. I'm &lt;em&gt;not&lt;/em&gt; looking to be persuaded to use one particular tool, I need a solution for each tool I am considering. (I haved posted an answer separately for each tool so separate camps of folks who have expertise in GIT and Subversion will be able to give focused answers on one or the other).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The same but separate question for Subversion:&#xA;&lt;a href=&quot;http://programmers.stackexchange.com/questions/33867/script-tool-to-import-series-of-snapshots-each-being-a-new-revision-into-subver&quot;&gt;Script/tool to import series of snapshots, each being a new revision, into Subversion, populating source tree?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9267" LastActivityDate="2011-01-05T13:08:15.877" Title="Script/tool to import series of snapshots, each being a new edition, into GIT, populating source tree?" Tags="&lt;howto&gt;&lt;import&gt;&lt;snapshot&gt;&lt;git&gt;" AnswerCount="2" CommentCount="1" FavoriteCount="1" />
  <row Id="33869" PostTypeId="1" AcceptedAnswerId="33891" CreationDate="2011-01-05T11:48:00.683" Score="4" ViewCount="365" Body="&lt;p&gt;Kent Beck famously &lt;a href=&quot;http://books.google.com.my/books?id=G8EL4H4vf7UC&amp;amp;pg=PA45&amp;amp;lpg=PA45&amp;amp;dq=features+cannot+be+demonstrated+by+automated+test+simply+don%27t+exist&amp;amp;source=bl&amp;amp;ots=j7BHtpmZul&amp;amp;sig=xdlMa2EQ38Bl9Oko9vXTKY460Rc&amp;amp;hl=en&amp;amp;ei=yFkkTaKpC8jMrQfr2O2_DA&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=1&amp;amp;ved=0CBUQ6AEwAA#v=onepage&amp;amp;q&amp;amp;f=false&quot; rel=&quot;nofollow&quot;&gt;said that&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Software features that can't be&#xA;  demonstrated by automated tests simply&#xA;  don't exist&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;But is this too extreme? I mean, I can't demonstrate that my UI really works, the screen pixel is correct in automated tests. So my features don't exist?&lt;/p&gt;&#xA;" OwnerUserId="468" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2011-01-05T12:22:51.217" LastActivityDate="2011-01-05T18:25:41.960" Title="&quot;Software features that can't be demonstrated by automated tests simply don't exist&quot;-- Is it too extreme a statement?" Tags="&lt;tdd&gt;&lt;xp&gt;" AnswerCount="6" CommentCount="4" FavoriteCount="2" />
  <row Id="33870" PostTypeId="2" ParentId="33869" CreationDate="2011-01-05T11:52:47.847" Score="26" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Software features that can't be demonstrated by automated tests simply don't exist&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It is one of the most arrogant and stupidest things I have ever heard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Forget that nonsense. (I suppose the expression art deserves the same kind of response)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With what automated tests can you measure the user experience? And it's one of the key features in modern software products. Intangible, I'll give you that, but nonetheless crucial to the market success. You can't write a machine test for that, but the human brain will test this characteristic in a matter of minutes with an all-penetrating, cruel and not-forgiving test.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2011-01-05T11:52:47.847" CommentCount="2" />
  <row Id="33871" PostTypeId="2" ParentId="33578" CreationDate="2011-01-05T11:56:56.163" Score="1" ViewCount="" Body="&lt;h2&gt;Lightweight Processes&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I would like to have Lightweight Processes as in Erlang. It's mainly a problem for the runtime. This is missing in JVM and .NET CLR. LWP helps for creating massively concurrent software. Ideally there shouldn't be more expensive to create an process as it is to create an object in a language. I would like to create millions of processes in my applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's implemented as a thread-pool with preemtive scheduling, so a single task doesn't block the other task, and the tasks can be scheduled on any cpu-core available.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Support for tail-recursion&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I would like to have support for tail-recursion. This may also be a problem for the runtime environment. E.g. JVM doesn't have support for tail-recursion.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Easy distributed programming&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I would like to have support for send (&lt;strong&gt;!&lt;/strong&gt;) and &lt;strong&gt;receive&lt;/strong&gt; primitives to parts of the application running on other machines on the same netword as in Erlang. This makes it easy to build scalable applications e.g. distributed datastores. Added to that serialization built-in in the language is also very helpful as in erlang. And not as in Java very I have to do it manually.&lt;/p&gt;&#xA;" OwnerUserId="18" LastActivityDate="2011-01-05T11:56:56.163" CommunityOwnedDate="2011-01-05T11:56:56.163" CommentCount="2" />
  <row Id="33872" PostTypeId="1" AcceptedAnswerId="33873" CreationDate="2011-01-05T12:00:09.953" Score="2" ViewCount="182" Body="&lt;p&gt;I'm looking for some material that can explain all the concepts related to OOP that doesn't deviate too much from the point. I want something short and understandable for a beginner. I know some of these can be found on wikipedia, but wikipedia is full of minor and sometimes big mistakes and I don't think that is the best choice for learning something. Where should I start ? Also, please don't recommend books of 1000 pages or such. &lt;/p&gt;&#xA;" OwnerUserId="12440" LastActivityDate="2011-01-05T12:33:22.453" Title="Where can I learn about every OOP concept?" Tags="&lt;recommendations&gt;&lt;object-oriented&gt;" AnswerCount="4" CommentCount="10" />
  <row Id="33873" PostTypeId="2" ParentId="33872" CreationDate="2011-01-05T12:06:22.207" Score="0" ViewCount="" Body="&lt;p&gt;Many years ago I found this book most illuminating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/020189551X&quot; rel=&quot;nofollow&quot;&gt;Object-Oriented Analysis and Design with Applications (3rd Edition)&lt;/a&gt; by Grady Booch&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/pqKi6.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Granted, it's now become thicker (720 pages), but an older edition was like a breeze and I read it in a couple of weeks.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2011-01-05T12:06:22.207" />
  <row Id="33874" PostTypeId="2" ParentId="33869" CreationDate="2011-01-05T12:06:39.993" Score="9" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;He wrote that &lt;strong&gt;12 years ago&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://channel9.msdn.com/shows/10-4/10-4-Episode-18-Functional-UI-Testing&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;This&lt;/strong&gt;&lt;/a&gt; did not exist at that time, or was very limited.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I read what I wrote 12 years ago, I want to hide myself under my bed, and cry.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2011-01-05T12:11:58.790" LastActivityDate="2011-01-05T12:11:58.790" CommentCount="11" />
  <row Id="33875" PostTypeId="1" CreationDate="2011-01-05T12:09:07.667" Score="1" ViewCount="51" Body="&lt;p&gt;I have total exp of 2 years in windows server support but due to multiple shifts enviornment i want to change my profile into software line.&#xA;please suggest what would be best for me to take next step.. &#xA;what exactly course\certification i should do to change my profile as software tester.&#xA;please advice as i am in big confusion and not able to work with full satisfaction!!&lt;/p&gt;&#xA;" OwnerUserId="12441" LastActivityDate="2011-01-05T12:09:07.667" ClosedDate="2011-01-05T12:42:30.507" Title="I want to change my profile from windows server admin to software testing\development." Tags="&lt;career-advice&gt;" />
  <row Id="33876" PostTypeId="2" ParentId="33851" CreationDate="2011-01-05T12:23:07.520" Score="6" ViewCount="" Body="&lt;p&gt;As a contractor for 30 years, I've left teams dozens of times.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I get called back.  Sometimes not. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The folks that had to call me back did not -- somehow -- understand that I was a contractor and was leaving.  This, BTW, was generally manifest early in the project.  Some organizations have low turnover -- people have worked together for years and have yellow post-it notes with critical system information posted in the cubicles and there is no written documentation that's correct.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The folks that did not call me back were, perhaps, unhappy and deleted all my code.  Who knows?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, organizations that made a habit of the following were happy.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Bug Tracking.  This is critical.  There shouldn't be &quot;TODO:&quot; comments in the code.  These are feature requests or potential bugs that should be formally tracked.  All the duct tape and band-aids must be formally and completely documented as bug fixes or future enhancements.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Testing.  Also critical.  If the build is broken, no one goes home.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Keeping Requirements, Design and Deployment Documentation Current.  This requires active, constant reviews and walkthroughs.  It requires an organization that expects and manages turnover.  No one should have the same job for more than a few years.  Shuffle, reshuffle, and re-reshuffle until the documentation makes this painless.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Tracking objectives and deliverables.  If you're not actively managing the code being produced, you don't know what people are working on and you don't know what's half-finished or what's half-broken.  (&quot;FOB&quot; Flat On Back.  i.e., &quot;OOT&quot;, On the Operating Table.  Also, Undergoing Surgery.  We used to say &quot;tits up&quot;, but had to stop when some engineers objected to this. Too colorful. And they're right, it's inappropriate.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This will allow you to stop them from writing new code just before they leave.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The bottom-line is that you need a 360-degree view of what the team has going in (requirements) what the team has coming out (tested, documented code) and what the team has in process (new code, fixes).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have that view, an individual person on the team can be replaced.  &lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-05T12:23:07.520" CommentCount="5" />
  <row Id="33877" PostTypeId="1" AcceptedAnswerId="33898" CreationDate="2011-01-05T12:23:14.477" Score="0" ViewCount="138" Body="&lt;p&gt;I am looking for IT jobs these days and I see all the time, jobs asking for Calypso.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is Calypso?  Why it is so popular?  Is it worth learning about Calypso development?&lt;/p&gt;&#xA;" OwnerUserId="12443" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2011-01-05T14:23:02.290" LastActivityDate="2011-01-05T14:23:02.290" Title="Calypso developer" Tags="&lt;learning&gt;&lt;jobs&gt;" AnswerCount="1" CommentCount="7" />
  <row Id="33878" PostTypeId="2" ParentId="33872" CreationDate="2011-01-05T12:24:05.523" Score="2" ViewCount="" Body="&lt;p&gt;This question on Programmers might help you out a bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/4123/whats-the-best-way-to-really-understand-oop&quot;&gt;What's the BEST way to really understand OOP?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3787" LastActivityDate="2011-01-05T12:24:05.523" />
  <row Id="33879" PostTypeId="2" ParentId="33872" CreationDate="2011-01-05T12:26:03.103" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod&quot; rel=&quot;nofollow&quot;&gt;This&lt;/a&gt; is a useful resource for OO concepts. Understanding the concepts described here (SOLID concepts), will enable you to see why OOP is important and useful, rather than just understanding the descriptions of the various OO terms (you can get those from a Google search) . &lt;/p&gt;&#xA;" OwnerUserId="11064" LastActivityDate="2011-01-05T12:26:03.103" />
  <row Id="33880" PostTypeId="2" ParentId="33868" CreationDate="2011-01-05T12:28:30.617" Score="2" ViewCount="" Body="&lt;p&gt;Since Git is a &lt;a href=&quot;http://stackoverflow.com/questions/1010588/is-it-easier-to-manage-code-with-git-or-bazaar/1011238#1011238&quot;&gt;&lt;em&gt;content&lt;/em&gt; management system&lt;/a&gt;, it won't consider a file as new because you add it again: if it has the same (or almost the same) &lt;em&gt;content&lt;/em&gt;, it will link its history with previous version of the same file (or actually detect it has been renamed).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea is to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;create a git repo outside of all your directories.&lt;/li&gt;&#xA;&lt;li&gt;go into each one of your directories.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/572549/difference-of-git-add-a-and-git-add&quot;&gt;&lt;code&gt;git --git-dir=/path/to/git/repo/.git add -A&lt;/code&gt;&lt;/a&gt;  in order to add/remove all files from the current directory compared to the external working tree of your Git repo.&lt;br&gt;&#xA;The idea is to use each directory content as the working directory of a git repo which is setup elsewhere, outside of any of those directory.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;git commit -m &quot;a comment&quot;&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;git tag -m &quot;a comment&quot; myTag&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3915" LastActivityDate="2011-01-05T12:28:30.617" CommentCount="10" />
  <row Id="33881" PostTypeId="2" ParentId="33872" CreationDate="2011-01-05T12:33:22.453" Score="0" ViewCount="" Body="&lt;p&gt;If you like the style, I find the Head-first books easy to read and to actually 'get' it  because they approach it in a very different style than most books. I found most books about coding and computation very dry, very abstract, HF's way is far more for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say then you could get started with &lt;a href=&quot;http://www.headfirstlabs.com/books/hfdp/&quot; rel=&quot;nofollow&quot;&gt;Head first Programming&lt;/a&gt; (uses python to illustrate concepts, but it is not the python guide) or &lt;a href=&quot;http://www.headfirstlabs.com/books/hfjava/&quot; rel=&quot;nofollow&quot;&gt;Head First Java&lt;/a&gt;, move on to &lt;a href=&quot;http://www.headfirstlabs.com/books/hfooad/&quot; rel=&quot;nofollow&quot;&gt;OO principles and design&lt;/a&gt; (uses java as language of choice) and finally &lt;a href=&quot;http://www.headfirstlabs.com/books/hfdp/&quot; rel=&quot;nofollow&quot;&gt;Design Patterns&lt;/a&gt; (also uses java)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have prior knowledge you could probably skip the basic and start with the OO design and principles.&lt;/p&gt;&#xA;" OwnerUserId="9237" LastActivityDate="2011-01-05T12:33:22.453" CommentCount="1" />
  <row Id="33882" PostTypeId="2" ParentId="33868" CreationDate="2011-01-05T12:37:05.890" Score="1" ViewCount="" Body="&lt;p&gt;Simplest case, I can think of...&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Create a git repo/folder, copy the first snapshot into the repo and name it &lt;code&gt;src&lt;/code&gt; or something suitable.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Next, Add, Commit the files/folders to repository.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Now, remove the folder and copy the next snapshot in it's place. (naming it as you did the last snapshot.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Repeat from stage 2.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;You can check the &lt;code&gt;git status&lt;/code&gt; between each snapshot, this will show up any files it considers missing, so you can mark them as removed from the repository.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Roughly speaking that will do what you need.&lt;/p&gt;&#xA;" OwnerUserId="3787" LastEditorUserId="3787" LastEditorDisplayName="" LastEditDate="2011-01-05T13:08:15.877" LastActivityDate="2011-01-05T13:08:15.877" CommentCount="5" />
  <row Id="33883" PostTypeId="1" AcceptedAnswerId="33945" CreationDate="2011-01-05T13:12:11.950" Score="1" ViewCount="139" Body="&lt;p&gt;How to choose the right next step in learning programming and mastering new technologies? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have experience with WinForms applications in C# .NET. Next what I see as a good area of expanding the knowledge is ASP.NET. Language I already know, C #, so I think there is now more a matter of mastering new technologies. Also I have interest in WPF.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps the best is to work on ASP.NET and WPF at the same time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes the problem is when we do not have motivation, but also known to become a problem when we want to much :) How to choose a new technology for mastering and not lose sense of reality and practicality?&lt;/p&gt;&#xA;" OwnerUserId="12140" LastActivityDate="2011-01-05T16:05:42.237" Title="How to choose a new technology for mastering and not lose sense of reality and practicality?" Tags="&lt;learning&gt;&lt;self-improvement&gt;&lt;programming&gt;&lt;programming-practices&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="0" />
  <row Id="33884" PostTypeId="2" ParentId="33851" CreationDate="2011-01-05T13:14:29.197" Score="5" ViewCount="" Body="&lt;p&gt;Some more tipps in addition to what already has been said:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Let him write a status summary about everything he has been working on. What is definitely done, what &quot;should&quot; work, what is half-done, what is untouched.&lt;/li&gt;&#xA;&lt;li&gt;Let him document all sideline tasks he might be (informally) responsible for; like checking the log files of a customer's server once a month. In a perfect world, all those tasks would be already documented, but in real life, something might have creeped in.&lt;/li&gt;&#xA;&lt;li&gt;It's crititical to find out if this is the beginning of a mass exodus. Maybe something is going wrong in the project and others are likely to follow soon. If so, you want to counteract while possible.&lt;/li&gt;&#xA;&lt;li&gt;If the engineer has direct contact to your client, let him document who his contact persons are and what their position is. Your existing records might not be accurate in that regard, and not knowing those people might lead to embarrasing situations.&lt;/li&gt;&#xA;&lt;li&gt;If the engineer has VPN access to your customer's servers, make sure you know who they are; make sure his account is suspended and a new account for the replacement is created in time.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2011-01-05T13:14:29.197" />
  <row Id="33885" PostTypeId="2" ParentId="33869" CreationDate="2011-01-05T13:27:20.200" Score="2" ViewCount="" Body="&lt;p&gt;You ought to read &lt;a href=&quot;http://www.joelonsoftware.com/items/2007/12/03.html&quot; rel=&quot;nofollow&quot;&gt;this article,&lt;/a&gt; in which Joel Spolsky tears that notion apart and explains that taking it to its logical conclusion is basically &quot;the software equivalent of a perpetual motion machine.&quot;&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2011-01-05T13:27:20.200" CommentCount="2" />
  <row Id="33886" PostTypeId="1" CreationDate="2011-01-05T13:28:12.913" Score="5" ViewCount="833" Body="&lt;p&gt;I want to find a job as a junior developer in Europe.&#xA;What country/city is most known for software/hardware developing business activity?&#xA;Please give one place per post.&#xA;I can speak German, so Germany would be a good option for me.&lt;/p&gt;&#xA;" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2011-01-05T14:50:44.203" LastActivityDate="2011-01-14T09:04:16.407" Title="What's the equivalent of the Silicon Valley in Europe?" Tags="&lt;software-engineering&gt;&lt;software-development&gt;&lt;jobs&gt;" AnswerCount="11" CommentCount="8" FavoriteCount="2" />
  <row Id="33887" PostTypeId="2" ParentId="33886" CreationDate="2011-01-05T13:34:00.050" Score="1" ViewCount="" Body="&lt;p&gt;I don't know the situation in the rest of Europe — but in Munich there are many open jobs for software developers.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-05T13:58:03.777" CommentCount="4" />
  <row Id="33888" PostTypeId="2" ParentId="27564" CreationDate="2011-01-05T13:58:38.680" Score="0" ViewCount="" Body="&lt;p&gt;I need some erlang features in php:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;hot code loading  &lt;/li&gt;&#xA;&lt;li&gt;atoms  &lt;/li&gt;&#xA;&lt;li&gt;pattern matching (include name of functions, matching statement like: case of)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Working with bytecode: saving, loading, removing and so on...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Flexible embedding system&lt;/p&gt;&#xA;" OwnerUserId="12453" LastEditorUserId="12453" LastEditorDisplayName="" LastEditDate="2011-01-06T11:41:02.593" LastActivityDate="2011-01-06T11:41:02.593" CommunityOwnedDate="2011-01-05T13:58:38.680" />
  <row Id="33889" PostTypeId="2" ParentId="33777" CreationDate="2011-01-05T13:59:06.183" Score="1" ViewCount="" Body="&lt;p&gt;ActiveRecord provides the attributes method, which returns a hash of attribute names mapped to their values for the receiving object. So you can do something like (example console session):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;gt; u = User.first&#xA;&amp;gt; u.attributes&#xA;=&amp;gt; {&quot;first_name&quot;=&amp;gt;&quot;Joe&quot;, &quot;last_name&quot;=&amp;gt;&quot;Bloggs&quot;,&quot;email&quot;=&amp;gt;&quot;joe@bloggs.com&quot;}&#xA;&amp;gt; u.attributes.keys&#xA;=&amp;gt; [&quot;first_name&quot;, &quot;last_name&quot;, &quot;email&quot;]&#xA;&amp;gt; u.attributes.keys.include?(&quot;middle_name&quot;)&#xA;=&amp;gt; false&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-i-attributes&quot; rel=&quot;nofollow&quot;&gt;Documentation link&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10603" LastActivityDate="2011-01-05T13:59:06.183" />
  <row Id="33890" PostTypeId="1" AcceptedAnswerId="34159" CreationDate="2011-01-05T14:01:21.190" Score="3" ViewCount="88" Body="&lt;p&gt;Lately, I've been looking more and more into Resin + Quercus as a technology to develop an application of mine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason I started looking into it was that this application has high reporting needs, a lot of which cannot (or realistically, should not) be created in real-time.  Java would offer a nice backend to queue and generate reports. Also, with Quercus I would be able to develop my data models in Hibernate, and use them &quot;from PHP&quot;, thus effectively stretching these models across front and back-end. This same concept would also apply to any front/back-end common business logic, which could be developed in Java libraries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, the downside is that whichever front-end (PHP) MVC Framework I choose (my goal was Symfony 2), it is unlikely to work without some heavy modification, if it can work at all. Quercus is a pretty close implementation of PHP, and is supposed to be compatible with PHP5.3, so namespaces and closures SHOULDN'T be a problem, but when I tried to run an existing Symfony 1.4 app, I failed miserably.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, my question to you is, do you think the benefits of Resin + Quercus outweigh the overhead of using a not-so-perfect/stable implementation of PHP? If this were your application, and your goal was and end-product, rather than educational purposes, what would you decide?&lt;/p&gt;&#xA;" OwnerUserId="7048" LastActivityDate="2011-01-06T05:25:34.083" Title="Do the benefits of Resin/Quercus outweigh the overhead?" Tags="&lt;java&gt;&lt;php&gt;&lt;good-practices&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="1" />
  <row Id="33891" PostTypeId="2" ParentId="33869" CreationDate="2011-01-05T14:03:10.887" Score="8" ViewCount="" Body="&lt;p&gt;Any time I hear an extreme statement like that, I consider the problem that they are addressing and how they propose to solve it.  After that, &lt;em&gt;I use my brain&lt;/em&gt; to judge when the statement doesn't apply.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;12 years ago, Unit Testing (at least as we know it today) was a relatively unknown phenomenon except for the magi that were promoting it.  Kent Beck was one of those magi.  Any time you want to convince someone to try something new, it seems that a hyperbole is a requirement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;em&gt;intent&lt;/em&gt; of the statement was that if you test all the internal aspects of your code such as the model and controller portions of your app, the application is functionally correct.  I quickly learned that the only way to test user interaction is with (gasp, cough, choke) actual users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, don't throw the baby out with the bath water, but do use common sense when you hear statements like that.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2011-01-05T14:03:10.887" CommentCount="2" />
  <row Id="33892" PostTypeId="1" AcceptedAnswerId="33897" CreationDate="2011-01-05T14:03:56.477" Score="2" ViewCount="94" Body="&lt;p&gt;I have around 2.5 years of experience as a web developer cum designer working mainly on the LAMP platform. Now, I want to try out game development (of the likes of First Person Shooter games like Call of Duty (COD)). It is one of my dreams to some day succeed in making a profitable, popular, commercial game of this type. However, I have never done any kind of business nor even freelancing yet even in the web domain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Okay, first things first, I am just starting and I don't yet have any idea about the technologies, languages, engines (game engines) etc involved in that. I would like this question to be a complete guide for people with similar interests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Best resources for getting hold really fast&lt;/strong&gt;   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would be the best approach to get the basic hold of the domain really fast?&#xA;Any resource(s) for programmers coming from other domains/experienced in other domains would be the ideal ones for me. E.g., if anybody would ask me some good resource for quickly learning PHP/Mysql, I would suggest books like &quot;How to do everything with PHP &amp;amp; MySql&quot; - &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/8KDz4.jpg&quot; alt=&quot;How to do everything with PHP &amp;amp; MySql&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;because -  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it introduces all the basics of the domain (not the advanced things which can be later learnt by practice and also a lot by searching in stackoverflow questions) &lt;/li&gt;&#xA;&lt;li&gt;it contains some very nice working projects in the end, which help in applying the skills learnt in the chapters of the book. This is the best way for self learners, I feel.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I would appreciate some similar resource which connects all concepts together to get the bigger picture. I have read about C, C++, C#, JAVA being used in game programming but not sure which language to go for (I have previously learnt a little of C and JAVA). I have also read about game engines but there would be various other concepts. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Commonly accepted ways of learning&lt;/strong&gt;&lt;br&gt;&#xA;Should 3D games like these be tried after 2D games? Are there some commonly accepted ways of learning such kind of games? Like in web development, we should go for frameworks after practising well with basic language, AJAX after getting properly done with simple page-reload processing etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from these, any useful tips (like language choices etc.) would be much appreciated. Like it is highly recommended to contribute to open source web projects for getting recognition, are there similar open source game projects? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&lt;br&gt;&#xA;Sandeepan&lt;/p&gt;&#xA;" OwnerUserId="4443" LastActivityDate="2011-01-05T14:35:53.730" Title="Suggestions on switching from lamp based web design-development to game design-development" Tags="&lt;career-advice&gt;&lt;resources&gt;&lt;video-game&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="33893" PostTypeId="2" ParentId="33886" CreationDate="2011-01-05T14:06:05.647" Score="0" ViewCount="" Body="&lt;p&gt;Germany seems to be good, had a friend move from the US to there for a developer job. Ireland also seems to be attracting a lot of tech companies.&lt;/p&gt;&#xA;" OwnerUserId="12290" LastActivityDate="2011-01-05T14:06:05.647" />
  <row Id="33895" PostTypeId="2" ParentId="33886" CreationDate="2011-01-05T14:10:49.030" Score="0" ViewCount="" Body="&lt;p&gt;Sweden. Stockholm. You can find almost all big companies there&lt;/p&gt;&#xA;" OwnerUserId="6328" LastEditorUserId="6328" LastEditorDisplayName="" LastEditDate="2011-01-05T14:35:44.447" LastActivityDate="2011-01-05T14:35:44.447" CommentCount="2" />
  <row Id="33896" PostTypeId="2" ParentId="33886" CreationDate="2011-01-05T14:13:21.370" Score="1" ViewCount="" Body="&lt;p&gt;It depends exactly what sort of development you're interested in.  London has a mass of IT jobs, though many of them are financial or other business focused type ones (many software houses struggle with costs that come with being in London).  It's also got some of the highest salaries in Europe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My understanding of German is that it's quite decentralised so you don't necessarily get single centres as things are divided between many cities across the country, though that may not be the case with tech.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2011-01-05T14:13:21.370" CommentCount="3" />
  <row Id="33897" PostTypeId="2" ParentId="33892" CreationDate="2011-01-05T14:21:37.550" Score="8" ViewCount="" Body="&lt;h2&gt;Its a very very big jump..&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;In my view going from creating web apps to learning to build a fully blown AAA fps title is, to say &lt;strong&gt;very very ambitious&lt;/strong&gt;. unless I've miss-understand what you are asking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not going to try to discourage you, rather re-direct you (thus avoid a massive disappointment):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You need to set realistic expectations.&lt;/li&gt;&#xA;&lt;li&gt;Start by learning the basics of game development.&lt;/li&gt;&#xA;&lt;li&gt;Start off with very modest targets and gradually build you way up&lt;/li&gt;&#xA;&lt;li&gt;Languages to learn should ultimately be C++ and x86 Assembly&lt;/li&gt;&#xA;&lt;li&gt;You can learn other languages in the mean time, or platforms such as XNA if you do not wish to build a games engine from the ground up).&lt;/li&gt;&#xA;&lt;li&gt;Attempt to create pong first&lt;/li&gt;&#xA;&lt;li&gt;Create Breakout after pong&lt;/li&gt;&#xA;&lt;li&gt;Try creating Tetris&lt;/li&gt;&#xA;&lt;li&gt;Try creating a simple 2d physics engine&lt;/li&gt;&#xA;&lt;li&gt;Learn about 3d Maths&lt;/li&gt;&#xA;&lt;li&gt;Learn about painters algorithm&lt;/li&gt;&#xA;&lt;li&gt;Learn about different graphics mode in assembly &lt;/li&gt;&#xA;&lt;li&gt;Learn about AI&lt;/li&gt;&#xA;&lt;li&gt;Try playing with a 3d engine such as Unity&lt;/li&gt;&#xA;&lt;li&gt;Once you have done all the above, dive in and try building a 3d games engine from scratch. This will really push you. Once you have done all this, you will be ready for serious games development. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Its a long road, but not impossible. I've just skimmed, really skimmed what's actually needed.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2011-01-05T14:35:53.730" LastActivityDate="2011-01-05T14:35:53.730" CommentCount="1" />
  <row Id="33898" PostTypeId="2" ParentId="33877" CreationDate="2011-01-05T14:22:23.040" Score="3" ViewCount="" Body="&lt;p&gt;It's a trading and risk system for merchant banks.  My old flatmate contracts in it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not that popular, it's actually a very niche market, there's just greater demand for it than there are skills so you get a lot of adverts as they struggle to fill the roles they have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of is it worth it, financially yes, but it's the sort of thing that I think you'd struggle to learn on your own.  Just getting hold of the software and getting it installed and configured would be pretty difficult (it may be on warez sites but it's not going to be common), plus you'd need the background in trading to understand what you're even trying to do, and that's before you learn the product, the API and so on.  On top of that it's the sort of thing they're likely to want actual commercial experience in rather than just a bit of knowledge.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best bet would be to get a Java job with a merchant bank and work your way into it.  Because of the shortage (and expense) of skills in the area, they're often happy to train people up as it's more cost effective for them.  You'll likely have to spend time doing support at first but you'd get there in the end.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Might also be worth noting that work wise you'd be limited to major financial centres (London in the UK, maybe a little in Edinburgh but unlikely) and working for merchant banks (with all that entails - long hours, politics and all) but it pays very very well.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2011-01-05T14:22:23.040" CommentCount="2" />
  <row Id="33899" PostTypeId="2" ParentId="33841" CreationDate="2011-01-05T14:24:22.080" Score="3" ViewCount="" Body="&lt;p&gt;I would start out by trying to do more work with automating your tests.  Usually this only involves some scripting Knowledge.  Try to work on creating Unit tests.  If possible you might want to also try to get involved in the release process to learn even more about the products. This shows management that you have the ability to do more.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find out what languages the company or team you want to work with uses, practice with it.  It might help to see if classes in that language are taught at your local university through continuing education, having taken the class will give you something in writing that shows you know the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have done that I would talk to management at your present company, especially managers of teams you have worked closely with and let them know that you would like to be involved more in development.  Lastly if you see an opening in your company for a developer on one of those teams apply and stress the work you have been doing with the automated test scripts, your knowledge of the product et cetera.&lt;/p&gt;&#xA;" OwnerUserId="12451" LastEditorUserId="12451" LastEditorDisplayName="" LastEditDate="2011-01-05T14:42:20.027" LastActivityDate="2011-01-05T14:42:20.027" />
  <row Id="33900" PostTypeId="2" ParentId="33886" CreationDate="2011-01-05T14:25:08.000" Score="5" ViewCount="" Body="&lt;p&gt;Don't forget Zurich: the city is not as large as the other cities mentioned, but it seems you can still find many IT-related jobs here.&lt;/p&gt;&#xA;" OwnerUserId="11237" LastEditorUserId="11237" LastEditorDisplayName="" LastEditDate="2011-01-05T15:20:58.883" LastActivityDate="2011-01-05T15:20:58.883" CommentCount="1" />
  <row Id="33901" PostTypeId="1" AcceptedAnswerId="34008" CreationDate="2011-01-05T14:26:53.210" Score="2" ViewCount="187" Body="&lt;p&gt;I would like to get my younger brother, who can't program, to test some code I am writing from requirements I provide him in documentation. Is there a way to get him going quickly? Ideas?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please and thank you.&lt;/p&gt;&#xA;" OwnerUserId="2446" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2011-01-05T14:44:17.197" LastActivityDate="2011-01-05T19:36:14.510" Title="Testing for Non Programmers" Tags="&lt;testing&gt;&lt;non-programmers&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="3" />
  <row Id="33902" PostTypeId="2" ParentId="33901" CreationDate="2011-01-05T14:29:42.933" Score="5" ViewCount="" Body="&lt;p&gt;If you want him to do Unit testing, that's not that trivial thing for a non-programmer to do. But he can &quot;play with program, push the buttons, etc.&quot; One doesn't have to be a programmer, to do this type of testing. &lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2011-01-05T14:29:42.933" />
  <row Id="33903" PostTypeId="2" ParentId="32533" CreationDate="2011-01-05T14:29:46.470" Score="0" ViewCount="" Body="&lt;p&gt;I'd add some basic Human Resources / Psychology courses to the list as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This might seem like an odd addition, but part of work professionally is learning how to sell yourself and negotiate. Walking into your first 'real' interview without a solid knowledge of the HR-drone's motivations is a recipe for disaster and likely to end with the student getting screwed into a low-balled salary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Know your enemy so that you can protect yourself.&lt;/p&gt;&#xA;" OwnerUserId="3457" LastActivityDate="2011-01-05T14:29:46.470" CommunityOwnedDate="2011-01-05T14:29:46.470" />
  <row Id="33904" PostTypeId="2" ParentId="32533" CreationDate="2011-01-05T14:32:04.557" Score="0" ViewCount="" Body="&lt;p&gt;It's strange nobody has mentioned Computer Architecture.&lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2011-01-05T14:32:04.557" CommunityOwnedDate="2011-01-05T14:32:04.557" CommentCount="1" />
  <row Id="33905" PostTypeId="2" ParentId="33901" CreationDate="2011-01-05T14:32:21.420" Score="1" ViewCount="" Body="&lt;p&gt;Could you use a unit testing framework (nunit etc)? They're more reliable than little brothers :-)&lt;/p&gt;&#xA;" OwnerUserId="11064" LastActivityDate="2011-01-05T14:32:21.420" CommentCount="1" />
  <row Id="33906" PostTypeId="2" ParentId="33731" CreationDate="2011-01-05T14:32:57.987" Score="0" ViewCount="" Body="&lt;p&gt;Although it only covers C# 2.0 I high recommend Charles Petzold's &lt;a href=&quot;http://www.charlespetzold.com/dotnet/&quot; rel=&quot;nofollow&quot;&gt;.Net Book Zero&lt;/a&gt;. It's an excellent in-depth guide especially if your coming from another C-like language. Best of all it's free.&lt;/p&gt;&#xA;" OwnerUserId="9336" LastActivityDate="2011-01-05T14:32:57.987" CommunityOwnedDate="2011-01-05T19:23:10.827" />
  <row Id="33907" PostTypeId="2" ParentId="33886" CreationDate="2011-01-05T14:42:04.800" Score="7" ViewCount="" Body="&lt;p&gt;IT in Europe is very weak compared to US. There are hardly any hot spots, a few jobs here and there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One place you could distantly call a European Silicon Valley is a technology park of &lt;a href=&quot;http://en.wikipedia.org/wiki/Sophia_Antipolis&quot; rel=&quot;nofollow&quot;&gt;Sophia Antipolis&lt;/a&gt; in France. But French salaries are very low, usually suffice to cover living expenses and that's it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ireland used to be one such center but their economy crashed recently as everyone has heard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Germany has become very poor job-wise recent years. Most product developments either went bankrupt or were relocated to Eastern Europe and Asia to minimize costs. Currently there is hardly any product development done in Germany. Most IT companies are consulting shops which have customers country-wide and force their workforce to travel all the time to different customers on different projects. Relocations take place either every few weeks/months or even every day. If you've seen in Germany people in suits with a tie with a small bag at railway stations or airports - it's them, the consultants, always going somewhere. If you seek a relaxed life at one specific location, it may take ages to find any programming job. Pay is also quite bad and falling, the costs of living are already extreme and rising. Land in Munich as a junior developer and you may end up with 300-400 Euro each month left. Also acceptance and promotion of foreigners in Germany are below par, one is only welcome as a cheap workforce. Social integration is borderline impossible due to close-mindedness and nonacceptance by local population.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eastern Europe (primarily Sofia in Bulgaria) has become somewhat of an outsourcing center these days. But since their rates are rising it's not clear for how long it will last.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I say find a nice place to live close to your home and family and nice people to work with. It might provide for the best quality life, no need to go elsewhere.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2011-01-05T14:52:35.403" LastActivityDate="2011-01-05T14:52:35.403" CommentCount="5" />
  <row Id="33908" PostTypeId="2" ParentId="33841" CreationDate="2011-01-05T14:45:56.407" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;I have joined 4 months back at a &lt;strong&gt;huge&#xA;  Company&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You've just answered your own question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Big companies usually have very good horizontal movability and your best option might be to actually ask your manager to assign you to some training programs or to switch you to a junior dev position (if you already have some programming knowledge).&lt;/p&gt;&#xA;" OwnerUserId="5185" LastActivityDate="2011-01-05T14:45:56.407" />
  <row Id="33909" PostTypeId="1" CreationDate="2011-01-05T14:46:36.003" Score="8" ViewCount="297" Body="&lt;p&gt;I'm currently setting the groundwork for an ASP.Net MVC application and I'm looking into what sort of unit-tests I should be prepared to write. I've seen in multiple places people essentially saying 'don't bother testing your views, there's no logic and it's trivial and will be covered by an integration test'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't understand how this has become the accepted wisdom. Integration tests serve an entirely different purpose than unit tests. If I break something, I don't want to know a half-hour later when my integration tests break, I want to know immediately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Sample Scenario :&lt;/strong&gt;&#xA;Lets say we're dealing with a standard CRUD app with a Customer entity. The customer has a name and an address. At each level of testing, I want to verify that the Customer retrieval logic gets both the name and the address properly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To unit-test the repository, I write an integration test to hit the database.&#xA;To unit-test the business rules, I mock out the repository, feed the business rules appropriate data, and verify my expected results are returned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What I'd like to do :&lt;/strong&gt;&#xA;To unit-test the UI, I mock out the business rules, setup my expected customer instance, render the view, and verify that the view contains the appropriate values for the instance I specified.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What I'm stuck doing :&lt;/strong&gt;&#xA;To unit-test the repository, I write an integration test, setup an appropriate login, create the required data in the database, open a browser, navigate to the customer, and verify the resulting page contains the appropriate values for the instance I specified.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I realize that there is overlap between the two scenarios discussed above, but the key difference it time and effort required to setup and execute the tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I (or another dev) removes the address field from the view, I don't want to wait for the integration test to discover this. I want is discovered and flagged in a unit-test that gets multiple times daily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I get the feeling that I'm just not grasping some key concept. Can someone explain why wanting immediate test feedback on the validity of an MVC view is a bad thing? (or if not bad, then not the expected way to get said feedback)&lt;/p&gt;&#xA;" OwnerUserId="3457" LastActivityDate="2011-01-05T15:38:46.957" Title="Why is testing MVC Views frowned upon?" Tags="&lt;unit-testing&gt;&lt;asp.net-mvc&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="33910" PostTypeId="2" ParentId="33731" CreationDate="2011-01-05T14:47:28.520" Score="-1" ViewCount="" Body="&lt;p&gt;Whichever book you choose, most important thing is to sit down and start with coding, everything else is less important.&lt;/p&gt;&#xA;" OwnerUserId="12140" LastActivityDate="2011-01-05T14:47:28.520" CommunityOwnedDate="2011-01-05T19:23:10.827" />
  <row Id="33911" PostTypeId="1" AcceptedAnswerId="33921" CreationDate="2011-01-05T14:48:12.210" Score="12" ViewCount="508" Body="&lt;p&gt;I'm in grad school at a university that was one of the first to have a software engineering accredited program. My undergrad is in CS. An employer recently recruited at our university and hired 5 SE majors. None of them were CS. Do employers prefer software engineering majors?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason I ask is because I can focus on many different areas during my graduate studies and really want to take the classes that will help me land a great job. Right now I'm either going to use CUDA and parallelize an advanced ray-tracer for a graduate project or do research on non-photo-realistic rendering in augmented reality. Pursuing these would leave very little SE classes in my schedule.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I went the software engineering route, I would probably either do research into data-oriented programming or software design complexity. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I think when I'm 40 and look back will it matter at all? For some reason I'm thinking not.&lt;/p&gt;&#xA;" OwnerUserId="10090" LastActivityDate="2011-01-05T19:06:10.660" Title="Do employers prefer software engineering over CS majors?" Tags="&lt;career&gt;" AnswerCount="10" CommentCount="2" FavoriteCount="3" />
  <row Id="33912" PostTypeId="2" ParentId="33841" CreationDate="2011-01-05T14:48:42.773" Score="1" ViewCount="" Body="&lt;p&gt;I would look for opportunities to demonstrate your creative thinking and programming skills. Things that come to mind:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Test automation scripts. &lt;/li&gt;&#xA;&lt;li&gt;Suggest and possibly ask to implement some features that will enhance the testability of the system. For example, one of our products is a ViOP handsets we added a test feature that allows the phone to automatically answer calls with out user interaction. &lt;/li&gt;&#xA;&lt;li&gt;If possible ask to sit in on design or requirements meetings with the developers.&lt;/li&gt;&#xA;&lt;li&gt;Definitely talk to your Boss/Manager let them know what you want your career path to be . &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-05T14:48:42.773" />
  <row Id="33913" PostTypeId="2" ParentId="33731" CreationDate="2011-01-05T14:50:29.057" Score="0" ViewCount="" Body="&lt;p&gt;Here's a simple answer, buy Code Complete instead, and learn C# from articles, examples, etc.&lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2011-01-05T14:50:29.057" CommunityOwnedDate="2011-01-05T19:23:10.827" />
  <row Id="33914" PostTypeId="2" ParentId="33886" CreationDate="2011-01-05T14:52:55.310" Score="1" ViewCount="" Body="&lt;p&gt;I really only could answer for the Netherlands, and the economy here is for IT is growing pretty rapid. Skilled Software developers are very much in demand, junior developers not so much. Go to Utrecht/Amsterdam and you probably will find a job pretty quickly. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The language shouldn't be a problem because almost all the Dutch speak, Dutch, English, German and French. If you want to learn Dutch it might be a challenge, it isn't the easiest language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a more general view I found the following links:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://csdiworkshop.org/pdf/3mc2008_proceedings/session_56/Kettner.pdf&quot; rel=&quot;nofollow&quot;&gt;2008 European job vacancy survey&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.economist.com/blogs/freeexchange/2010/07/european_economies&quot; rel=&quot;nofollow&quot;&gt;Mapping the EU's debt, jobs and growth worries&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Both Germany and The Netherlands look pretty good when you study those links.&lt;/p&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2011-01-05T14:52:55.310" CommentCount="2" />
  <row Id="33915" PostTypeId="2" ParentId="33901" CreationDate="2011-01-05T14:53:13.177" Score="4" ViewCount="" Body="&lt;p&gt;If you're talking about manual end user testing, I asked a question on stackoverflow which might be helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/836869/where-can-i-find-a-good-beginners-guide-to-user-testing&quot;&gt;Where can I find a good beginners guide to user testing?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="165" LastActivityDate="2011-01-05T14:53:13.177" />
  <row Id="33916" PostTypeId="2" ParentId="33911" CreationDate="2011-01-05T14:54:54.140" Score="2" ViewCount="" Body="&lt;p&gt;For software engineering positions the answer is probably yes in most cases. This is assuming they actually know the difference. CS programs typical lack any sort of coverage related to designing complex software solutions. It's almost like asking if an employers would rather higher a physics major or a mechanical engineer.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: I really think people need to reevaluate what you think is a good answer to this question. I think some of them are corner cases and/or not practical.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Employers prefer individuals who they feel can get the job done to a high standard in a fast paced environment&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This statement is true, but you need to get your foot in the door first before you can be evaluated. Based solely on what degree you earned and baring any experience from internships and what not. I firmly believe that employers are going to look at SE first in most cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;So to answer the question directly, I would have no preference either way between CS or SE degrees.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suppose you have 100 applicants, How would you filter them down to say 20? &#xA;&quot; technical knowledge, attitude, personality, drive, etc&quot; are nice qualities, but you are not going to determine those from a resume. The type of degree you have is definitely used as filter, especially if you have to submit a resume electronically as part of the application process. It is easy and fast. It's exactly the same thing as using GPA as filter. Yeah you might say it doesn't matter, but I can guarantee that the 3.5s are getting looked at more than the 3.0s&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Someone noted that most people don't know the difference between the two. That is probably true, but many do and if you have a SE degree it broadens your exposer to those that don't know and to those that do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately, if you want to be a developer a SE degree will open more doors for you. I am not saying that CS is restrictive in any way or that one is better than the other. What I am saying is that a SE degree will be more marketable in general in terms of finding a software engineer position. There are always exceptions. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2011-01-05T16:42:49.007" LastActivityDate="2011-01-05T16:42:49.007" />
  <row Id="33918" PostTypeId="2" ParentId="33911" CreationDate="2011-01-05T14:55:51.300" Score="7" ViewCount="" Body="&lt;p&gt;Employers prefer individuals who they feel can get the job done to a high standard in a fast paced environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What lands a job and what makes you exceptional at a job vary greatly. Keep in mind landing a job does not in any way guarantee success.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pick what interests you as passion for a particular subject never goes out of style and will always show favorably in an interview and later on in life.&lt;/p&gt;&#xA;" OwnerUserId="3289" LastActivityDate="2011-01-05T14:55:51.300" CommentCount="3" />
  <row Id="33919" PostTypeId="2" ParentId="33911" CreationDate="2011-01-05T14:56:44.437" Score="2" ViewCount="" Body="&lt;h2&gt;Not Necessarily&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I have a BS in Computer Science and an MS in Software Engineering.  CS is more technical.  SE is technical, but also integrates with business, so you get instruction on timelines, proposals, cost estimation, stakeholder interaction, etc.  It's really up to person or company hiring you what they need more of, but both are similar enough that you won't need a whole lot of learning to get a hard knocks double major.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2011-01-05T14:56:44.437" CommentCount="1" />
  <row Id="33920" PostTypeId="1" AcceptedAnswerId="33930" CreationDate="2011-01-05T14:57:20.720" Score="1" ViewCount="90" Body="&lt;p&gt;By supporting tools, I mean:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;reference data manager&lt;/strong&gt;, like virus definition for anti-virus software&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;test data generator&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;level builders&lt;/strong&gt; for games&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;simulators&lt;/strong&gt; or advanced mocking systems&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Does the team building the &lt;code&gt;core product&lt;/code&gt;  (in the case above, the game or the anti-virus) should be part of the development of the &lt;code&gt;supporting tools&lt;/code&gt; significantly, or this is a task you would outsourced out of the team to help it focus on the product?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't have enough experience to evaluate the pros &amp;amp; cons of each, so I'm hopping you would come up with personal experiences to share, or even studies or papers you read on the subject. &lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-05T15:51:34.357" Title="Does your team develop their supporting tools or this should be outsourced out of it?" Tags="&lt;project-management&gt;&lt;tools&gt;&lt;team&gt;" AnswerCount="2" />
  <row Id="33921" PostTypeId="2" ParentId="33911" CreationDate="2011-01-05T14:57:39.817" Score="12" ViewCount="" Body="&lt;p&gt;I do a lot of developer interviews for my organization.  I care very little about the particular degree a person has or the particular university it is from.  The fact that they &lt;em&gt;have&lt;/em&gt; a degree means a little bit, but still doesn't tell me much.  It only tells me that they are focused enough to work toward a long-term goal.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What really matters to me is the person's technical knowledge, attitude, personality, drive, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to answer the question directly, I would have no preference either way between CS or SE degrees.  And this is for jobs working on standard line-of-business applications.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2011-01-05T14:57:39.817" CommentCount="1" />
  <row Id="33922" PostTypeId="2" ParentId="33909" CreationDate="2011-01-05T14:58:02.530" Score="1" ViewCount="" Body="&lt;p&gt;I'm not sure that it is frowned upon.  Testability is one of the key benefits of using ASP.NET MVC.  Check out &lt;a href=&quot;http://blog.stevensanderson.com/2009/06/11/integration-testing-your-aspnet-mvc-application/&quot; rel=&quot;nofollow&quot;&gt;Steve Sanderson's blog&lt;/a&gt; for more info on this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He also wrote the hands-down, best &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1430228865&quot; rel=&quot;nofollow&quot;&gt;ASP.MVC book&lt;/a&gt; (IMO) out there.  Not only does he teach MVC, but he goes above and beyond to teach best practices around it, including testing practices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm thinking I need to clarify a bit on unit testing views -- you can build unit tests around the result returned from the controller (ActionResult, etc.).  You'll still need to do other testing for the actual UI and UI interaction.&lt;/p&gt;&#xA;" OwnerUserId="10397" LastEditorUserId="10397" LastEditorDisplayName="" LastEditDate="2011-01-05T15:17:32.570" LastActivityDate="2011-01-05T15:17:32.570" CommentCount="1" />
  <row Id="33923" PostTypeId="2" ParentId="33901" CreationDate="2011-01-05T15:03:05.847" Score="2" ViewCount="" Body="&lt;p&gt;Since you brother can't program I am gathering you are approaching this from an end-to-end testing stance. With this being the case your brother should be able to exercise your application with the documentation. If he is unable to exercise your application based on your documentation then your documentation is inadequate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Have him plan varying paths through the application after he gets an elementary feel for the application based on your documentation. Have him then write tests accordingly and execute them; providing you the results for review.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Step 1 - Open application&lt;br&gt;&#xA;  Step 2 -&#xA;  Click blue button (should see blue&#xA;  dialog appear)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;One caveat with this approach...his definition of a bug will be anything un-expected since there will be no formal requirements to go on. Is that wrong? Not necessarily, but be careful when stating that &lt;em&gt;that was the intent&lt;/em&gt; when perhaps the intent is wrong and needs adjustment.&lt;/p&gt;&#xA;" OwnerUserId="3289" LastActivityDate="2011-01-05T15:03:05.847" />
  <row Id="33924" PostTypeId="2" ParentId="33578" CreationDate="2011-01-05T15:04:27.267" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;First-class integration with development environments.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nowadays, coding is done in a rich environment. For HTML/CSS/JS, we have Firebug and other interactive tools. For Java, Eclipse and IDEA and other true IDEs. And so forth. There is an ecology of tools, starting with the editor but not ending there:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Organization of code within and across files&lt;/li&gt;&#xA;&lt;li&gt;Smart highlighting&lt;/li&gt;&#xA;&lt;li&gt;Smart completion/predictive typing&lt;/li&gt;&#xA;&lt;li&gt;Static debugging (flagging syntax, semantic, and stylistic errors)&lt;/li&gt;&#xA;&lt;li&gt;Creation and use of templates and macros&lt;/li&gt;&#xA;&lt;li&gt;Version control (versioning, merging, branching, ...)&lt;/li&gt;&#xA;&lt;li&gt;Distributed development with multiple authors (comments, inline doc, annotations, ...)&lt;/li&gt;&#xA;&lt;li&gt;Run-time debugging (stack traces, stepping, watches, ...)&lt;/li&gt;&#xA;&lt;li&gt;Interactive &quot;live&quot; debugging (like Firebug--editing behavior of a live system)&lt;/li&gt;&#xA;&lt;li&gt;...I don't even know what's next.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Languages should be built to provide support for these activities. Some progress has been made--annotations in Java to help other developers understand the intent of the code, for example. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But mostly it's hacked up stuff, like using $Id$ in a comment so that CVS-controlled source can contain a version number. Why can't I do something like this from the language itself?&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2011-01-05T15:04:27.267" CommunityOwnedDate="2011-01-05T15:04:27.267" CommentCount="2" />
  <row Id="33926" PostTypeId="1" AcceptedAnswerId="33927" CreationDate="2011-01-05T15:07:12.893" Score="5" ViewCount="325" Body="&lt;p&gt;When debugging &lt;strong&gt;(hard to find)&lt;/strong&gt; bugs, I know I've personally gotten so frustrated as to &lt;strong&gt;lash out&lt;/strong&gt; on the keyboard and shout profanities at the monitor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have repeatability witnessed co-workers throw their computer mouse off the table in anger and &lt;strong&gt;frustration&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the &lt;em&gt;furthest&lt;/em&gt; a &lt;strong&gt;bastard&lt;/strong&gt; of bug has ever pushed you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hehehe :D it would seem this bug, er I mean post has pushed the guys to close it...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh well, very very interesting answers anyway. &lt;/p&gt;&#xA;" OwnerUserId="8083" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2011-01-05T16:45:24.987" LastActivityDate="2011-01-05T16:45:24.987" ClosedDate="2011-01-05T16:01:02.967" Title="How far has a bug pushed you?" Tags="&lt;anger-management&gt;&lt;bug&gt;" AnswerCount="9" CommentCount="10" FavoriteCount="0" />
  <row Id="33927" PostTypeId="2" ParentId="33926" CreationDate="2011-01-05T15:12:27.900" Score="10" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Complete rewrite&lt;/strong&gt; of the concerned classes or modules&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I agree it's (really) extreme and I can't measure the impact of that decision. I guess most of the time it's counter productive, but sometimes is unavoidable to stay in good mental health.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-05T15:12:27.900" CommentCount="3" />
  <row Id="33928" PostTypeId="2" ParentId="33926" CreationDate="2011-01-05T15:13:49.863" Score="3" ViewCount="" Body="&lt;p&gt;I could tell  you, but then I would have to kill you ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But seriously, I almost like debugging more than I actually like writing code. The hard problems teach you more about the system than anything else I can think of. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-05T15:13:49.863" />
  <row Id="33929" PostTypeId="2" ParentId="33886" CreationDate="2011-01-05T15:15:27.787" Score="7" ViewCount="" Body="&lt;p&gt;I'm not aware of any global &quot;silicon valley&quot; like place in Europe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Europe not a country&lt;/strong&gt; like US. It's more an association of very distinct countries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I'll do like all my fellow community members and give the capital of my country: &lt;strong&gt;Brussels&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-05T15:15:27.787" CommentCount="4" />
  <row Id="33930" PostTypeId="2" ParentId="33920" CreationDate="2011-01-05T15:17:38.857" Score="6" ViewCount="" Body="&lt;p&gt;This is a very tricky question because in one respect these types of tool are something that can be outsourced quite easily, much more so than central elements of your product, but conversely you might find that it adds understanding of potential core elements of your product if you create them yourselves - for example the test data generator can tell you a lot about your own data integrity rules that might not otherwise come up until you tried to use your outsourced tool, although of course defining the rules is also likely to help.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess my core guiding principle is simply this: &lt;strong&gt;Is it economical?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Will it take longer to define the problem, convey the definition to an outsource company and manage the process with them than it would to build the tool?&lt;/li&gt;&#xA;&lt;li&gt;Would developing the tool in-house add useful expertise on the behaviour of the existing software? &lt;/li&gt;&#xA;&lt;li&gt;Is there a third-party tool that could be used, perhaps with some customisations, to do the job rather than having anything bespoke made at all?&lt;/li&gt;&#xA;&lt;li&gt;How are we looking in terms of manpower and deadlines?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Where I work we have successfully outsourced some QA work, but we tend to develop supporting tools in-house ( in fact that is largely my job ) and doing that with the developers of the main product on hand for guidance is very useful.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2011-01-05T15:17:38.857" CommentCount="2" />
  <row Id="33931" PostTypeId="2" ParentId="33926" CreationDate="2011-01-05T15:17:48.513" Score="4" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;josh@ubuntu:~$ sudo rm -rf /&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: I shouldn't have to say this, but don't run this...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT 2: Here's some more &quot;fun&quot;: &lt;a href=&quot;http://stfj.net/art/2009/loselose/&quot; rel=&quot;nofollow&quot;&gt;http://stfj.net/art/2009/loselose/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8641" LastEditorUserId="8641" LastEditorDisplayName="" LastEditDate="2011-01-05T15:28:40.707" LastActivityDate="2011-01-05T15:28:40.707" CommentCount="5" />
  <row Id="33932" PostTypeId="2" ParentId="33926" CreationDate="2011-01-05T15:20:16.030" Score="0" ViewCount="" Body="&lt;p&gt;Besides doing what pierre said (which is what I normally do, I don't think it's that extreme since my projects are usually not that big), I tend to just give up and think of a new way to make the program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tcp not working? -back to UDP. (Lame switch, but you get the idea)&lt;/p&gt;&#xA;" OwnerUserId="6709" LastActivityDate="2011-01-05T15:20:16.030" />
  <row Id="33933" PostTypeId="2" ParentId="33909" CreationDate="2011-01-05T15:21:20.040" Score="3" ViewCount="" Body="&lt;p&gt;I wouldn't say it's frowned upon. Rather, that sentiment is the result of the fact that unit-testing MVC views (at least of the aspx variety) is quite hard because aspx views have too much dependency on WebForms, which are themselves quite untestable. So the argument goes that it's not &lt;em&gt;worth&lt;/em&gt; the effort because the views tend to be not that complicated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course views can get quite complicated so it's your choice.&lt;/p&gt;&#xA;" OwnerUserId="7065" LastActivityDate="2011-01-05T15:21:20.040" CommentCount="3" />
  <row Id="33934" PostTypeId="2" ParentId="33841" CreationDate="2011-01-05T15:22:39.653" Score="1" ViewCount="" Body="&lt;p&gt;The best thing you can do right now, early in your career, is to deliver the best business value you can.  Surprise your boss with better ways of testing, that saves time and improves the quality and stability of your tests.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On your own time, you should be practicing programming, attending users groups, etc.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2011-01-05T15:22:39.653" />
  <row Id="33935" PostTypeId="2" ParentId="33926" CreationDate="2011-01-05T15:32:42.390" Score="0" ViewCount="" Body="&lt;p&gt;I've rolled my face across the keyboard in hopes it would solve the problem.&#xA;It didn't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Worst outside of yelling at the code is just deleting and starting the project over again.&lt;/p&gt;&#xA;" OwnerUserId="12290" LastActivityDate="2011-01-05T15:32:42.390" />
  <row Id="33936" PostTypeId="2" ParentId="33909" CreationDate="2011-01-05T15:38:46.957" Score="2" ViewCount="" Body="&lt;p&gt;Simple UI testing is easy enough in ASP.NET MVC.  Essentially all you have to do is assert that the returned HTML contains the elements you need.  While this ensures that the HTML page is structured the way you expect, it doesn't fully test the UI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Proper web UI testing requires a tool like Selenium that will use browsers on your machine and ensure that the JavaScript and HTML are working properly in all browsers.  Selenium does have a client/server model so that you can have a set of virtual machines with Unix, Mac, and Windows clients and the set of browsers common to those environements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, a well designed MVC (pattern, not framework) application puts the &lt;em&gt;important&lt;/em&gt; logic in the models and controllers.  In short, the functionality of the application is tested when you test those two aspects.  Views &lt;em&gt;tend&lt;/em&gt; to only have display logic and are easily checked with visual inspection.  Due to the thin processing in the view and the bulk of the application being well tested, many people don't think that the pain of testing the view layer outweighs the benefit gained by it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, MVC does have some nice facilities to check the DOM returned by the request.  That reduces the pain quite a bit for testing the view layer.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2011-01-05T15:38:46.957" CommentCount="5" />
  <row Id="33937" PostTypeId="2" ParentId="33731" CreationDate="2011-01-05T15:38:58.063" Score="1" ViewCount="" Body="&lt;p&gt;Personally, I'd go for &lt;a href=&quot;http://www.learnvisualstudio.net&quot; rel=&quot;nofollow&quot;&gt;http://www.learnvisualstudio.net&lt;/a&gt; video tutorials. They're regularly updated and from what I've watched so far, very high quality. And at $60 for access to all old and new videos for a year it's an incredible bargain!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: I'm not affiliated at all with them, just highly impressed having watched the first quarter of the learn visual C# 2010 tutorial series&lt;/p&gt;&#xA;" OwnerUserId="7756" LastActivityDate="2011-01-05T15:38:58.063" CommunityOwnedDate="2011-01-05T19:23:10.827" />
  <row Id="33939" PostTypeId="2" ParentId="33926" CreationDate="2011-01-05T15:40:02.167" Score="2" ViewCount="" Body="&lt;p&gt;I tore up a book in college, stomping on it on the floor then slamming it into the garbage can.  It had committed the sin of not revealing to me the answer to my problem.  In my defense it was a terrible book and I was programming in C.  This was in 1992, so it was WAY before google, really before the web for that matter (we had internet, but it was mostly mail and newsgroups).&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2011-01-05T15:40:02.167" CommentCount="1" />
  <row Id="33940" PostTypeId="2" ParentId="33926" CreationDate="2011-01-05T15:41:41.557" Score="0" ViewCount="" Body="&lt;p&gt;When I swear at my computer people start to get worried since I literally never swear at work.  Only a few times have I done this though.  I have broken the legs off a few keyboards while pouding them into the desk as well usually while swearing.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2011-01-05T15:41:41.557" />
  <row Id="33941" PostTypeId="2" ParentId="33926" CreationDate="2011-01-05T15:44:28.453" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;A 5 minutes-long list of cussings in french&lt;/strong&gt; :)&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;My ex on the other hand has destroyed a few keyboard and coffee cups, as well as punching the desk quite often, good thing he switched to decaf now :)&lt;/p&gt;&#xA;" OwnerUserId="9094" LastEditorUserId="9094" LastEditorDisplayName="" LastEditDate="2011-01-05T16:22:58.123" LastActivityDate="2011-01-05T16:22:58.123" CommentCount="2" />
  <row Id="33942" PostTypeId="2" ParentId="33926" CreationDate="2011-01-05T15:46:30.957" Score="4" ViewCount="" Body="&lt;p&gt;I once threatened a machine with a fire axe.  The machine didn't care, but the tech next to me became somewhat concerned.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I sort of acquired a reputation after that.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Extenuating circumstances: I was working in MPW on MacOS 8, which would periodically crash during a link.  This was being done in a tiny office in the bow of a drilling ship, working 12/7 over a period of 8 weeks, and that was the &lt;em&gt;high&lt;/em&gt; point of the contract.  &lt;/p&gt;&#xA;" OwnerUserId="11246" LastActivityDate="2011-01-05T15:46:30.957" CommentCount="1" />
  <row Id="33943" PostTypeId="2" ParentId="33920" CreationDate="2011-01-05T15:51:34.357" Score="1" ViewCount="" Body="&lt;p&gt;Best rule of thumb is this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is the tool relevant to the core business.  If something is relevant to the core business, build it in house own it.  If it's not then outsource.  So game builders should probably keep the simulator and mocking systems in house, but make use of libraries etc. for the core.  You don't need to re-invent wheel there, but also don't buy something and then find it doesn't fit the business well so you end up either patching your process (bad) or patching the product (even worse).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2011-01-05T15:51:34.357" />
  <row Id="33944" PostTypeId="2" ParentId="33883" CreationDate="2011-01-05T15:56:06.503" Score="0" ViewCount="" Body="&lt;p&gt;It really depends on what your learning style is.  For me, I think it would be better to focus on one technology for a few months, and then focus on the other.  For you, maybe you're one of these people who took six classes at a time in college, and liked it.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2011-01-05T15:56:06.503" />
  <row Id="33945" PostTypeId="2" ParentId="33883" CreationDate="2011-01-05T16:05:42.237" Score="1" ViewCount="" Body="&lt;p&gt;I think it's wonderful that you're looking to learn more.  However, maybe it'd be better to think in a more broad way about technology.  For instance, you ask if you should learn &lt;code&gt;&amp;lt;Microsoft specific programming language&amp;gt;&lt;/code&gt;.  That is fine, but it seems that what you're really saying is: &quot;I've already done desktop applications, what new realm should I tackle?  Should I learn how to make web apps?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you learn how to make a web app, then you'll learn the &lt;em&gt;concepts&lt;/em&gt; behind how that technology works.  Learning the concepts are more important than learning some programming language because the &lt;em&gt;concepts&lt;/em&gt; will be similar across specific languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, yes, learn how to build web apps.  Use ASP.NET.  That's fine.  Get experience writing web services.  Expose yourself to new and different ways of thinking about a problem.:)&lt;/p&gt;&#xA;" OwnerUserId="11364" LastActivityDate="2011-01-05T16:05:42.237" CommentCount="2" />
  <row Id="33946" PostTypeId="1" CreationDate="2011-01-05T16:11:15.933" Score="1" ViewCount="347" Body="&lt;p&gt;The terms rapid web development gets associated with Python/Django and ROR. Why is this not the case with C# ASP.NET?&lt;/p&gt;&#xA;" OwnerUserId="12370" LastActivityDate="2011-01-05T16:23:16.280" Title="Why is C# ASP.NET generally not regarded as a rapid web development framework?" Tags="&lt;c#&gt;&lt;python&gt;&lt;asp.net&gt;&lt;ruby&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="1" />
  <row Id="33947" PostTypeId="2" ParentId="33946" CreationDate="2011-01-05T16:13:22.170" Score="0" ViewCount="" Body="&lt;p&gt;ASP.NET when developed as an application requires that you compile the project into a dll; it is possible sometimes to make simple changes to the .aspx files and get immediate results but it is not as dynamic as other platforms.&lt;/p&gt;&#xA;" OwnerUserId="7380" LastActivityDate="2011-01-05T16:13:22.170" CommentCount="3" />
  <row Id="33948" PostTypeId="2" ParentId="33578" CreationDate="2011-01-05T16:14:47.317" Score="5" ViewCount="" Body="&lt;p&gt;Call me crazy but one of the most important language features to me is the availability of a good online reference, along with examples. I know that I can find good search results for any language, but I really like the MSDN and Java APIs site. They make programming much easier for a person who does not have much experience in the specific language.&lt;/p&gt;&#xA;" OwnerUserId="11155" LastActivityDate="2011-01-05T16:14:47.317" CommunityOwnedDate="2011-01-05T16:14:47.317" CommentCount="2" />
  <row Id="33950" PostTypeId="2" ParentId="33946" CreationDate="2011-01-05T16:17:56.143" Score="0" ViewCount="" Body="&lt;p&gt;I have done a lot of development work with ASP.NET.  I don't know much about Python/Django but I have done some reading on Ruby on Rails.  I think the main reason that RoR is considered more RAD than ASP.NET is scaffolding.  ASP.NET does have some scaffolding features (and ASP.NET MVC has even more), but I think RoR's is generally more powerful.  Also, ASP.NET developers in my experience tend not to use the scaffolding features even when they are available.  And the scaffolding features in vanilla ASP.NET tend to lead you down bad architecture and design paths, whereas the scaffolding in RoR tends to lead you down the correct A&amp;amp;D path.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In reality, ASP.NET can be a pretty rapid platform.  For any non-trivial web application, I think the differences between RoR and ASP.NET would be minimal, especially if the developers are proficient in whichever platform.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2011-01-05T16:17:56.143" />
  <row Id="33951" PostTypeId="2" ParentId="33869" CreationDate="2011-01-05T16:20:47.590" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Software features that can't be demonstrated by automated tests simply don't exist&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It is one of the most useful and helpful things I have ever heard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knowing that you can't measure the user experience, you still have to create software that works.  Whether the software works or doesn't work is independent of how it looks.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good-looking software can do nothing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad-looking software can totally solve a problem elegantly and effectively.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I mean, I can't demonstrate ... the screen pixel is correct in automated tests. So my features don't exist?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&quot;my features don't exist&quot; is taking the comment too far out of context.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have two unrelated things.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Works.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Looks Correct.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;One must be tested.  If you can't test it, then it doesn't  exist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other must be experienced.  Note that you can make UI changes that users can't experience.  They don't exist either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The color-blind users, for example, can't tell that you fixed the &quot;red&quot; background to be a different &quot;red&quot;.  If you've chosen a color that a user cannot see, than the color does not exist.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-05T16:20:47.590" CommentCount="0" />
  <row Id="33953" PostTypeId="2" ParentId="33946" CreationDate="2011-01-05T16:23:16.280" Score="3" ViewCount="" Body="&lt;p&gt;There is no such thing as a &quot;rapid development framework&quot; or &quot;rapid development language&quot;. Any framework, language, or toolset is equally possible for use in a rapid development environment as any other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rapid development has nothing to do with languages or technologies used. Rapid development is a methodology that favors producing prototypes frequently with minimal up-front design and planning.&lt;/p&gt;&#xA;" OwnerUserId="4" LastActivityDate="2011-01-05T16:23:16.280" CommentCount="8" />
  <row Id="33954" PostTypeId="1" AcceptedAnswerId="33984" CreationDate="2011-01-05T16:42:52.300" Score="4" ViewCount="240" Body="&lt;p&gt;This is a general topic, &lt;strong&gt;How do Event Handlers work?&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means behind the scenes - what happens when they are created. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a rough idea - but would like to have it confirmed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many Thanks, &#xA;J&lt;/p&gt;&#xA;" OwnerUserId="12464" LastActivityDate="2011-01-05T20:12:30.063" Title="In general how do Event Handlers work?" Tags="&lt;programming-languages&gt;&lt;learning&gt;" AnswerCount="1" CommentCount="6" FavoriteCount="1" />
  <row Id="33955" PostTypeId="1" AcceptedAnswerId="33956" CreationDate="2011-01-05T16:48:16.277" Score="4" ViewCount="274" Body="&lt;p&gt;&lt;strong&gt;My problem&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am working as a consultant for various companies. Each company provides me with a laptop where with their software on and I also have my own where I have my development environment. I tend to buy a new laptop every second year and find myself spending lots of time configuring and installing software. I also sometimes spend a lot of time waiting for my laptop to process things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To solve all these issues, I am now considering using EC2 (running windows instances) as my main development platform and just access this from any PC I happen to be at. I calculated that running the Large instance (cheapest 64-bit) for 8 hours a day for a year costs me 960$ per year, which is acceptable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I imagine that when I approach the workplace each day, I will make a single click my phone to fire up the instance, so it is ready when I get to work. I should have different icons on my phone to fire up the various instance types. The same software should of course automatically be loaded on the various hardware (sometimes I would even need their instance with 68.4 GB of memory).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another advantage is that if I am having a specific problem with my instance, I could fire up another instance and have someone look into the problem and update the image.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;My question:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone have experience with such a setup on EC2? What kind of problems do you forsee?&lt;/p&gt;&#xA;" OwnerUserId="5094" LastEditorUserId="5094" LastEditorDisplayName="" LastEditDate="2011-01-05T16:59:58.620" LastActivityDate="2011-04-01T17:19:39.833" Title="Using EC2 instance as main development platform" Tags="&lt;cloud&gt;&lt;amazon-ec2&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="2" />
  <row Id="33956" PostTypeId="2" ParentId="33955" CreationDate="2011-01-05T16:56:51.040" Score="2" ViewCount="" Body="&lt;p&gt;I don't use EC2, but I do make use of a very large Xen farm. Quite frankly, I love it because:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I can get to work from anywhere&lt;/li&gt;&#xA;&lt;li&gt;It is simple to make snapshots of whole file systems (I'm using VHD)&lt;/li&gt;&#xA;&lt;li&gt;It is simple to produce ISO's for installation&lt;/li&gt;&#xA;&lt;li&gt;Migrating VM's around is trivial if I need one to grow and run out of room&lt;/li&gt;&#xA;&lt;li&gt;Programs like distcc really speed up builds when you have 8 - 10 virtual machines it can use&lt;/li&gt;&#xA;&lt;li&gt;Stuff downloads really quickly with a 100MB connection :)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The caveat is, I'm screwed if I don't have an up to date pull from my HG repos in the event that I can't get Internet for whatever reason, and that has happened a few times.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have a really, really elaborate setup .. there's no way you could really produce it again locally (or perhaps you could), but the point is, no connection, no work.&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2011-01-05T18:27:19.293" LastActivityDate="2011-01-05T18:27:19.293" CommentCount="2" />
  <row Id="33957" PostTypeId="2" ParentId="33955" CreationDate="2011-01-05T17:00:33.830" Score="2" ViewCount="" Body="&lt;p&gt;The biggest problem that I see -- at least with a Windows instance and assuming that you're using remote desktop -- is that network lags are annoying. Depending on how physically close you are to the Amazon data center, it might not be an issue. Personal experience: I had a week in which my ISP decided to route packets across the US to get to my office (12 miles away); the UI was unusable.&lt;/p&gt;&#xA;" OwnerUserId="11224" LastActivityDate="2011-01-05T17:00:33.830" CommentCount="3" />
  <row Id="33959" PostTypeId="1" AcceptedAnswerId="34395" CreationDate="2011-01-05T17:07:54.647" Score="1" ViewCount="406" Body="&lt;p&gt;I have installed PyDev and want to start with GUI apps. Heard about Qt but how to integrate it with PyDev? Is there any Python IDE that comes bundled with Qt or other GUI frameworks and also Visual Studio like ToolBox to add controls on the Form?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't want to go with IronPython.&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2011-01-09T15:36:26.310" Title="Qt plugin for Eclipse/PyDev." Tags="&lt;python&gt;&lt;qt&gt;&lt;pydev&gt;" AnswerCount="1" />
  <row Id="33960" PostTypeId="2" ParentId="33911" CreationDate="2011-01-05T17:08:24.053" Score="2" ViewCount="" Body="&lt;p&gt;I recruit and I'm equally happy with either, or indeed pretty much any numerate discipline (my own degree is in Electronic Engineering).  I've actually worked with a couple of History graduates who were great programmers so I wouldn't rule anything out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I would say I care about is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) That you have a decent basic level of knowledge of whatever you've studied.  If you're a CS/SE graduate then if I'm recruiting you at graduate level I expect you to know more about IT than a mathematician (because you've spent three years studying it and if you know less than someone who hasn't then there is something wrong with you).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) I am interested in the grade / classification you got to a certain degree as it shows that you applied yourself (or not).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) I want to hear you able to speak about elements of your degree with clarity, insight and enthusiasm.  I'm less concerned about what those elements are than that you understood them, learned from them and enjoyed doing so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) That you did something other than study and drink at university, whatever it is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;5) I do care to some extent where you went to university / college.  I don't go through rankings in details but it will stand out if you went to an established university with a good reputation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The specific degree is, to me, far less important than those things.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2011-01-05T17:08:24.053" />
  <row Id="33961" PostTypeId="2" ParentId="33731" CreationDate="2011-01-05T17:10:37.193" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books/392926#392926&quot;&gt;This list&lt;/a&gt; is not .net specific, but there are a few good free .net books listed. &lt;/p&gt;&#xA;" OwnerUserId="6854" LastActivityDate="2011-01-05T17:10:37.193" CommunityOwnedDate="2011-01-05T19:23:10.827" />
  <row Id="33962" PostTypeId="2" ParentId="32533" CreationDate="2011-01-05T17:12:01.873" Score="-1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;1st Year:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Basic OOP in a high level language&lt;/li&gt;&#xA;&lt;li&gt;Data Structures&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2nd Year:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Compiler, you build a simple one form scratch&lt;/li&gt;&#xA;&lt;li&gt;Concurrency&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3rd Year:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Algorithm&lt;/li&gt;&#xA;&lt;li&gt;Operating System, you add functionalities and enhancements to a simple one&lt;/li&gt;&#xA;&lt;li&gt;Formal language&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;4th Year:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Networking&lt;/li&gt;&#xA;&lt;li&gt;Distributed System&lt;/li&gt;&#xA;&lt;li&gt;User Interface&lt;/li&gt;&#xA;&lt;li&gt;Advanced Compiler&lt;/li&gt;&#xA;&lt;li&gt;Advanced Operating System&lt;/li&gt;&#xA;&lt;li&gt;Artificial Intelligence&lt;/li&gt;&#xA;&lt;li&gt;Computer Graphics&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Those courses should provide plenty of theory and coding practice.&lt;/p&gt;&#xA;" OwnerUserId="5968" LastActivityDate="2011-01-05T17:12:01.873" CommunityOwnedDate="2011-01-05T17:12:01.873" />
  <row Id="33963" PostTypeId="2" ParentId="33911" CreationDate="2011-01-05T17:25:16.710" Score="2" ViewCount="" Body="&lt;p&gt;To put your question another way, do software engineering courses have more potential than computer science curriculum these days? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sure, AJAX and XML are cool things to know. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But most software perceived as cool at some level relies on fundamental computer science principles. Google and Facebook are great web companies as of Jan 2011, but they do need tons and tons of graph theory, compilers and advanced algorithms. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Never opt flavor of the season courses.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2011-01-05T17:25:16.710" CommentCount="2" />
  <row Id="33964" PostTypeId="1" AcceptedAnswerId="33971" CreationDate="2011-01-05T17:29:21.657" Score="3" ViewCount="267" Body="&lt;p&gt;I am a CS major. I've taken 2 courses in C (Intro to C and CS1) and 1 introductory course to OOP with Java. I really like Java and feel that I have a firm understanding of OOP concepts. &#xA;I am really interested in web development and would like to learn a programming language that can be used to build dynamic web applications. My question is what language should I learn?&#xA;I've narrowed it down to python or ruby. Also, I want to learn a programming language that will help me get a job upon graduating. So essentially, I will use this particular language to build applications that will help me get a job in the future. &lt;/p&gt;&#xA;" OwnerUserId="11658" LastActivityDate="2011-01-05T21:11:46.543" ClosedDate="2011-01-05T21:26:02.110" Title="What should I learn next?" Tags="&lt;web-development&gt;&lt;python&gt;&lt;ruby&gt;" AnswerCount="8" CommentCount="5" FavoriteCount="1" />
  <row Id="33965" PostTypeId="2" ParentId="33964" CreationDate="2011-01-05T17:34:52.550" Score="1" ViewCount="" Body="&lt;p&gt;This is the perfect time to explore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't worry about what will help you get a job right now. You'll have more than enough knowledge by the time you receive your degree to get a web development job if you study hard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Take the technology that interests you the most and just run with it.&lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2011-01-05T17:34:52.550" />
  <row Id="33966" PostTypeId="2" ParentId="33964" CreationDate="2011-01-05T17:36:01.460" Score="3" ViewCount="" Body="&lt;p&gt;Don't neglect JavaScript too. It's often an underrated language (probably because it has Java and script in its name). &lt;a href=&quot;http://www.crockford.com/javascript/javascript.html&quot; rel=&quot;nofollow&quot;&gt;Here's&lt;/a&gt; what Douglas Crockford has to say about it. Also JavaScript has been misunderstood to be only a client-side language when in fact it is perfectly capable of being used for server-side development. I highly recommend &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596000480&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; as THE JavaScript book.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Besides learning more languages I'll also recommend learning some other skills. You mentioned you've taken courses in C, so I assume you know your way around pointers and how to manage your memory. If not, I suggest you get acquainted with them. Yes you don't really need them much if you're developing at a more abstract level, but it always pays to know how they work. Plus you never know whether you might land in a job dealing with embedded systems and stuff one of these days.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another option you might want to look into is the more theoretical part of computer science. Go read up on data structures, search and sort algorithms, complexity analysis, etc. Not readily apparent now but you may find them useful down your career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh and I nearly forgot, functional programming is another thing to look at in addition to procedural and OOP.&lt;/p&gt;&#xA;" OwnerUserId="2243" LastEditorUserId="2243" LastEditorDisplayName="" LastEditDate="2011-01-05T17:56:29.470" LastActivityDate="2011-01-05T17:56:29.470" CommentCount="5" />
  <row Id="33968" PostTypeId="1" AcceptedAnswerId="33983" CreationDate="2011-01-05T17:40:12.360" Score="14" ViewCount="624" Body="&lt;p&gt;I have been given the role to improve development in our company. The first thing I wanted to start was code reviews since that has never been done here before.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are 3 programmers in our company. I am a web programmer, my known languages are mainly PHP, ActionScript and JavaScript. The other 2 developers write internal applications in VB.net&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have been doing code reviews for a couple weeks now. I find it hard to understand VB code. So when they say what its doing, for the most part I just have to take their word for it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I do see something that looks wrong, I explain my opinion and I explain how I would address it in one of the languages I know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes my suggestions are welcomed but many times I am told things like &quot;this is the best way of doing it in &lt;em&gt;this&lt;/em&gt; language&quot; or &quot;that doesn't apply to &lt;em&gt;this&lt;/em&gt; language&quot; or similar things of that nature.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This may be true, but without knowing the language I am not sure how to confirm or refute these claims.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know one possible solution would be to learn vb so I can do better code reviews. I really have no interest in learning vb (especially since I have a list of other technologies I am trying to learn for my own projects) and would like to keep this as a last resort but it is an option.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another idea that came to me is, they both have interest in C# and so do I. Its relative to them because its .net and relative to me because its more similar to the languages I know. Yet it is new to all of us. I thought about the benefits of us all collaborating on a pet C#.net project and reviewing each others code from that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess theres also the possibility hiring a consultant to come in and give us some code reviews.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would you recommend I do in this situation. &lt;/p&gt;&#xA;" OwnerUserId="1785" LastActivityDate="2011-05-03T11:27:46.033" Title="How to review code that you do not understand?" Tags="&lt;career&gt;&lt;code-reviews&gt;" AnswerCount="11" CommentCount="4" FavoriteCount="6" />
  <row Id="33969" PostTypeId="2" ParentId="32533" CreationDate="2011-01-05T17:41:16.540" Score="1" ViewCount="" Body="&lt;p&gt;I come at this from a slightly different perspective in that I didn't graduate in CS, I graduated in Electronic Engineering (with a minor in business).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Based on that I think a list of things you &lt;em&gt;must&lt;/em&gt; understand is relatively short as I (and many non-other CS graduates) survive happily without knowing a thing about compiler design or the like.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I would say I've picked up that I do find useful:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;RDBMS design - RDBMSs sit behind most systems and sites and you should understand at least the basics of what is going on (I learned this on the job).&lt;/li&gt;&#xA;&lt;li&gt;Basic UI Design - all the best programmers I've worked with could produce a usable application that wasn't ugly as hell.  Except one but he's the exception that proves the rule.&lt;/li&gt;&#xA;&lt;li&gt;Some basic programming - and I mean basic.  I learned some C (for image processing and embedded systems), some Assembly Language (which I'd forgotten within weeks of completing the course) and some Pascal (a basic computing course was standard for all engineers).  When interviewing I'm stunned how few CS graduates can really programme in any way commercial organisations would consider useful so I don't expect much, but I do expect them to know the basics. &lt;/li&gt;&#xA;&lt;li&gt;Logic - I learned it through digital electronics, mathematicians through theory, CS grads through programming but however you learn it, you should have a good grasp of it as so much comes down to it.&lt;/li&gt;&#xA;&lt;li&gt;Communication skills - I did a couple of courses at university outside my actual degree, presentation skills and assertiveness.  Lots of common sense but it never hurts to be told sensible things a few times.&lt;/li&gt;&#xA;&lt;li&gt;The basics of business and accounting.  Some programmers act like it doesn't matter but to my mind it matters to anyone who works in a company - this is how the game works and it's going to control your life so why wouldn't you want to know at least the rudiments of how and why things happen?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And if you get the chance to learn about project management at all then that really wouldn't hurt but that's taught pretty badly at university in many instances and it is something you'll learn a bit about on the job just by working on projects.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2011-01-05T17:41:16.540" CommunityOwnedDate="2011-01-05T17:41:16.540" />
  <row Id="33970" PostTypeId="2" ParentId="33578" CreationDate="2011-01-05T17:41:23.203" Score="2" ViewCount="" Body="&lt;p&gt;More ability to help the compiler check your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being an embedded systems programmer, I always use C. But I always wish I had more/better ways to tell the compiler what I expect from my code so it can verify it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;E.G. I can have a function&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;f(int x)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;but I would prefer&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;f(int range[-5..25] x)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;E.G. I would like to be able to write assertions about functions using some kind of higher level functional language like Lisp or Haskell. These wouldn't be compiled into code, but could be used for static or dynamic analysis.&lt;/p&gt;&#xA;" OwnerUserId="12470" LastActivityDate="2011-01-05T17:41:23.203" CommunityOwnedDate="2011-01-05T17:41:23.203" CommentCount="8" />
  <row Id="33971" PostTypeId="2" ParentId="33964" CreationDate="2011-01-05T17:47:55.273" Score="7" ViewCount="" Body="&lt;p&gt;Do consider this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Web programming is a combination of server side and client side programming&lt;/li&gt;&#xA;&lt;li&gt;Server side is the easy part&lt;/li&gt;&#xA;&lt;li&gt;All client side programming entails at least three languages: HTML (document object model, declarative), CSS (style description, declarative), and JavaScript (UI automation code, template based objects).&lt;/li&gt;&#xA;&lt;li&gt;Too many web app developers don't know enough of how HTML, CSS, and JavaScript work and are designed to cooperate.&lt;/li&gt;&#xA;&lt;li&gt;There are other really interesting problems out there&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You already have some exposure to languages that will help with the job front.  I really wouldn't use that to make your choice.  Since you are still a student, I recommend you give yourself a little bake-off between Python and Ruby.  Purpose to spend at least a week with each language and get a feel for how it works.  You won't be great at the language by any stretch, but you will at least have enough experience to decide which you want to spend more time with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, don't forget that there are other types of programming models out there.  They can bend your brain and inspire you to think a bit differently about programming in general.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2011-01-05T17:47:55.273" CommentCount="4" />
  <row Id="33972" PostTypeId="2" ParentId="33964" CreationDate="2011-01-05T17:49:38.737" Score="1" ViewCount="" Body="&lt;p&gt;Why not learn both? :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I suppose that answer still begs the question a bit, as you most likely want to learn one &lt;em&gt;first&lt;/em&gt;, even if you learn both &lt;em&gt;eventually&lt;/em&gt;.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a lot of ways, Python and Ruby are similar languages. Stylistically they differ, but they're both dynamically-typed languages that have a very similar &lt;em&gt;feel&lt;/em&gt;. I have my preferences, but they're both pretty cool and not that dissimilar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you want to write web applications, what your choice boils down to, I suppose, is which web framework you want to learn. The two big players are Rails for Ruby, and Django for Python. They accomplish the same goal, but underneath are rather different. Specifically, I'd say Django apps have more of a modular architecture, whereas Rails apps are more monolithic in nature, and this affects the way you design your web app.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I was in college, I wanted to learn either Ruby or Python. Due to some semi-random circumstances, I ended up learning Python first, and only picked up Ruby once I was comfortable with Python. I had no real reason to learn Python other than personal interest, although I did end up getting a job as a Django web developer (learning Python was the most lucrative decision I ever made in college!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For what it's worth, I actually like Ruby better. In my opinion, it's a more cohesive, consistent language that even allows for a pseudo-functional, declarative style of programming. I personally find Rails to be a better framework than Django, but more importantly, RubyGems beats Django's library package managers, and Ruby/Rails has better options for deploying applications. But to each his own; surely others would disagree and recommend Python over Ruby.&lt;/p&gt;&#xA;" OwnerUserId="679" LastEditorUserId="679" LastEditorDisplayName="" LastEditDate="2011-01-05T18:17:12.217" LastActivityDate="2011-01-05T18:17:12.217" CommentCount="4" />
  <row Id="33973" PostTypeId="2" ParentId="33968" CreationDate="2011-01-05T17:50:43.283" Score="3" ViewCount="" Body="&lt;p&gt;Providing guidance on something you do not understand is akin to the blind leading the blind as you are well aware.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One approach would be to make use of lint tools such as &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/bb429476%28VS.80%29.aspx&quot; rel=&quot;nofollow&quot;&gt;FxCop&lt;/a&gt; and &lt;a href=&quot;http://code.msdn.microsoft.com/sourceanalysis&quot; rel=&quot;nofollow&quot;&gt;StyleCop&lt;/a&gt; which will address the static analysis front of the code base. This would provide you with a starting point to debating the reports which are generated from the tools.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another approach would be to turn the code reviews into design reviews. Design reviews more often then not uncover problems long before the code is even written. If a programmer has a design they can work from they are in general much more efficient in their approach and bugs decrease because of this. When a design is non-existent it becomes adhoc in the approach and the code suffers with the bug count increasing. Catch the problems in the design review before they surface in the code review by making sure each of you has a concrete design to implement; UML is your friend here and tools such as &lt;a href=&quot;http://www.umlet.com/&quot; rel=&quot;nofollow&quot;&gt;umlet&lt;/a&gt; are fast and quick to use.&lt;/p&gt;&#xA;" OwnerUserId="3289" LastActivityDate="2011-01-05T17:50:43.283" CommentCount="1" />
  <row Id="33974" PostTypeId="2" ParentId="33968" CreationDate="2011-01-05T17:52:05.437" Score="3" ViewCount="" Body="&lt;p&gt;The bad news is that in order to participate effectively in code reviews, you will have to learn VB. It will also be helpful to use VB in some sort of project (not necessarily for production). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The good news is that once you have done this, some of what you've learned will still be useful when you move on to C#.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2011-01-05T17:52:05.437" CommentCount="8" />
  <row Id="33975" PostTypeId="2" ParentId="33968" CreationDate="2011-01-05T17:53:03.737" Score="0" ViewCount="" Body="&lt;p&gt;Could you shift the focus to be more on tests rather than looking at the code directly?  I'm not saying abandon the code reviews, but initially it may make more sense to get those internal apps to have enough tests that can help decode some of what is happening.  The idea here being that the tests could also help get you a bit more familiar with some of the functionality.  I just see this as a different route to take.  The idea here being that the reviews come back later and can be done in a couple of parts as it may be worthwhile to have an overview/upfront session and then a bit of a break.  That break being until the next day or two so that there is enough time for anyone that may want to get a night's sleep thinking about the code or something similar before coming back with questions and having a discussion.  Granted this may not always be realistic, it may be worth trying and see what happens.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Course if you already have tests this isn't that meaningful unfortunately.  The other thought is to give an example of where they are claiming that in VB.Net this is done a particular way, as that may help make this question more clear in a way as I could imagine this varying from little code standards to part of the heart of how VB.Net was built in a sense.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2011-01-05T17:53:03.737" />
  <row Id="33976" PostTypeId="2" ParentId="33968" CreationDate="2011-01-05T17:53:15.123" Score="4" ViewCount="" Body="&lt;p&gt;You can 'proof read' stuff that you don't really know, but you can't adequately &lt;em&gt;review&lt;/em&gt; it. I'm highly competent in C, know C++ rather well, but I would not dream of reviewing something in C#. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't think you need to go as far as bringing in a consultant, as some companies specialize in running your code though a ton of tests and telling you what might be wrong with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, it would be up to the individual developer who knows the language to interpret the result. For instance, if a code reviewer dinged me for not using the return value of &lt;code&gt;printf()&lt;/code&gt;, I'd look at them strangely and question their sobriety, then ask &quot;Ok, great, what can I do when nothing can be printed to the console that would be helpful?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you might want to consider is talking to your bosses about setting up departments and team leads, so that you can be effective in your domain, while someone else is effective in their domain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, I think you might be able to use a third party for auditing. Most programmers worth their salt will pay attention to &lt;em&gt;legitimate&lt;/em&gt; concerns, even if they dismiss half as bogus (such as I would in my &lt;code&gt;printf()&lt;/code&gt; example).&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2011-01-05T17:53:15.123" />
  <row Id="33977" PostTypeId="2" ParentId="33731" CreationDate="2011-01-05T17:54:05.587" Score="0" ViewCount="" Body="&lt;p&gt;I'm reading &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1449380344&quot; rel=&quot;nofollow&quot;&gt;the Head First C# Book&lt;/a&gt; and love it. I picked up javascript and proper html a few years back from the same series and loved them too. The book assumes you know programming, but very little about c# and .net. So it should be perfect for you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To sample it, you can read parts of it free in o-reilly's &lt;a href=&quot;http://my.safaribooksonline.com/book/programming/csharp/9781449380359/firstchapter&quot; rel=&quot;nofollow&quot;&gt;digital book store.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit: i enjoy books in this series because they feel more like a class with a good professor than a reference book.&lt;/p&gt;&#xA;" OwnerUserId="3244" LastEditorUserId="3244" LastEditorDisplayName="" LastEditDate="2011-01-05T21:36:35.607" LastActivityDate="2011-01-05T21:36:35.607" CommunityOwnedDate="2011-01-05T19:23:10.827" />
  <row Id="33978" PostTypeId="2" ParentId="33964" CreationDate="2011-01-05T17:56:34.930" Score="0" ViewCount="" Body="&lt;p&gt;Personally, I'd go for Python first. You might be also interested in learning PHP, I'd say its the language that has more job offerings. Mind that &lt;a href=&quot;http://www.codinghorror.com/blog/2008/05/php-sucks-but-it-doesnt-matter.html&quot; rel=&quot;nofollow&quot;&gt;PHP is a dangerous language&lt;/a&gt; for the undisciplined/sloppy, but apply your OO knowledge and look for good frameworks such as Symfony and Doctrine and you will be alright.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, javascript is essential nowadays for web development work. I'd highly recommend you try &lt;a href=&quot;http://mootools.net/&quot; rel=&quot;nofollow&quot;&gt;Mootools&lt;/a&gt; as a javascript framework, since its the most OO out there and since its architecture is highly modular you will end with really maintainable code.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2011-01-05T17:56:34.930" />
  <row Id="33979" PostTypeId="2" ParentId="33731" CreationDate="2011-01-05T17:59:27.233" Score="0" ViewCount="" Body="&lt;p&gt;I like Deitel's books... they are hefty but they are complete &amp;amp; cover everything you need to know and then some. I especially like that they include lots of programming examples and sample programs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can recommend C# 2010 for Programmers:&#xA;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0132618206&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/2010-Programmers-4th-Deitel-Developer/dp/0132618206/ref=sr_1_3?s=books&amp;amp;ie=UTF8&amp;amp;qid=1294250332&amp;amp;sr=1-3&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="12052" LastActivityDate="2011-01-05T17:59:27.233" CommunityOwnedDate="2011-01-05T19:23:10.827" />
  <row Id="33980" PostTypeId="2" ParentId="33578" CreationDate="2011-01-05T18:02:38.963" Score="2" ViewCount="" Body="&lt;p&gt;Small syntax with as few keywords as possible because verbose syntax is hard to learn and does not help readability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The worst example is Ada:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;procedure Hello is&#xA;begin&#xA;  Put_Line(&quot;Hello World!&quot;);&#xA;end Hello;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Filler words like is,as,.. don't make sense for programming languages. &lt;/p&gt;&#xA;" OwnerUserId="8736" LastActivityDate="2011-01-05T18:02:38.963" CommunityOwnedDate="2011-01-05T18:02:38.963" CommentCount="11" />
  <row Id="33981" PostTypeId="2" ParentId="33964" CreationDate="2011-01-05T18:02:50.023" Score="0" ViewCount="" Body="&lt;p&gt;As multi-core is becoming the norm and as functional programming might be an answer to &quot;how can we utilise more of the cpu without going insane?&quot;, why not learn Haskell? Challenge yourself, bend your mind. It'll be a punt, but you won't regret it!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;I prefer python to ruby, but their almost functionally equivalent. python only wins because it is more readable.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2011-01-05T18:02:50.023" />
  <row Id="33982" PostTypeId="2" ParentId="33911" CreationDate="2011-01-05T18:03:28.977" Score="2" ViewCount="" Body="&lt;p&gt;You &lt;em&gt;may&lt;/em&gt; have a better chance of getting a job with a software engineering degree.. but in the long term a computer science degree will look better on your resume and will allow you to branch out into other computer related fields besides programming.&lt;/p&gt;&#xA;" OwnerUserId="12052" LastActivityDate="2011-01-05T18:03:28.977" CommentCount="1" />
  <row Id="33983" PostTypeId="2" ParentId="33968" CreationDate="2011-01-05T18:09:27.307" Score="10" ViewCount="" Body="&lt;p&gt;Your personal desires to learn other things should take a back seat to learning what you actually need right now for your job. Learn VB.net. You can effectively code review code you don't understand when you know the language it's in by asking lots of questions (usually that's a sign the code isn't well written if you know the language and can't figure out what its doing and why). But not understanding the code, the best you can do is get them to explain it to you and hope they will see any bugs throuhg the process of explaining it. Not that I haven't found bugs in my own code in a review by doing just that, but it isn't the most effective way to code review. Code review is now part of your job, deal with it and learn what you need to learn to do it effectively.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While you are learning, when they say well that isn't the way we do it in this language, make them show you a source that says it is a good technique to use. It's up to them to justify to you in a code review not the other way around. You'll also get better at the language once you start seeing those links.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2011-01-05T18:09:27.307" CommentCount="6" />
  <row Id="33984" PostTypeId="2" ParentId="33954" CreationDate="2011-01-05T18:11:26.080" Score="5" ViewCount="" Body="&lt;p&gt;On a low-level, event handlers often work by &lt;em&gt;polling a device&lt;/em&gt; and waiting for a hardware interrupt.  Essentially, a background thread blocks, while waiting for a hardware interrupt to occur.  When an interrupt occurs, the poll function stops blocking.  The application can then find out which device handle caused the interrupt, and what type of interrupt it was, and then act accordingly (e.g. by invoking an event handler function).  This is usually done in a separate thread so that it happens asynchronously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, the way this is actually implemented varies considerably depending on the OS and the type of device/input.  On UNIX systems, one way that event handlers are implemented for things like sockets, serial or USB ports is through the &lt;a href=&quot;http://linux.die.net/man/2/select&quot; rel=&quot;nofollow&quot;&gt;select&lt;/a&gt; or &lt;a href=&quot;http://linux.die.net/man/2/poll&quot; rel=&quot;nofollow&quot;&gt;poll&lt;/a&gt; system calls.  One or more &lt;em&gt;file/device descriptors&lt;/em&gt; (which are associated with a device, like a network socket, serial/USB port, etc) are passed to the &lt;code&gt;poll&lt;/code&gt; system call - which is made available to the programmer through a low-level C API.  When an event occurs on one of these devices, (like say, some data arrives on a serial port), the poll system call stops blocking, and the application can then determine which device descriptor caused the event, and what type of event it was.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On Windows this is handled differently, but the concepts are basically the same.&lt;/p&gt;&#xA;" OwnerUserId="7733" LastEditorUserId="7733" LastEditorDisplayName="" LastEditDate="2011-01-05T20:12:30.063" LastActivityDate="2011-01-05T20:12:30.063" />
  <row Id="33985" PostTypeId="2" ParentId="33968" CreationDate="2011-01-05T18:16:20.800" Score="6" ViewCount="" Body="&lt;p&gt;Actually, I disagree with all the above. With JS/PHP/ActiopnScript, you have a fundamental understanding of what a programming language has and how it works. In fact, I would argue that there are a lot of similarities between VB and JS. However, that's not my point. Even if you are very competent with the language, it's easy to overlook something when trying to follow someone else's thinking processes, so what the review should do is provide an opportunity for the programmer to explain what (s)he has done and why.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A friend once described this as &quot;The Janitor Theory&quot;: by explaining the details to someone, anyone, even the janitor, the programmer exposes any weaknesses in the code to her/himself, which is, of course, the ultimate goal of the review process. It does require, though, that the code be explained thoroughly and openly (reviews don't work when the developers are defensive).&lt;/p&gt;&#xA;" OwnerUserId="12476" LastActivityDate="2011-01-05T18:16:20.800" CommentCount="2" />
  <row Id="33986" PostTypeId="1" CreationDate="2011-01-05T18:17:53.340" Score="22" ViewCount="319" Body="&lt;p&gt;What are the &lt;strong&gt;benefits and drawbacks&lt;/strong&gt; of working as an in-house developer versus working as a consultant and vice versa?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am pretty sure both breeds can be found on these forums and I hope you are willing to share &lt;strong&gt;your experience&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Let me clarify the question. I wonder what the experience is like being a developer. For example: being an in-house developer, you are able to learn from your mistakes. Being a consultant is often more challenging, because there is more variety in the problems you have to solve.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: Although I realise that this is a subjective question, I don't necessarily see it as one of those bad-subjective questions.&lt;/p&gt;&#xA;" OwnerUserId="12474" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2011-01-05T22:14:22.823" LastActivityDate="2011-01-06T02:42:40.963" Title="Software consultancy or in-house development?" Tags="&lt;career&gt;&lt;experience&gt;&lt;advice&gt;" AnswerCount="7" CommentCount="4" FavoriteCount="1" />
  <row Id="33987" PostTypeId="1" CreationDate="2011-01-05T18:19:59.097" Score="6" ViewCount="250" Body="&lt;p&gt;I've exhausted my googling abilities on this search (too many ad-sites peddling online degrees) and turned to my favorite resource, ya'll.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm looking for a website, book or long winded answer that breaks down graduate programs at universities and colleges by their geographical area / online capability; relative cost; prestige; difficulty; applicability to software engineering, computer science or a project management MBA; and years to complete. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2011-01-13T16:01:48.403" Title="Grad school guides for professional programmers" Tags="&lt;school&gt;&lt;grad-school&gt;" AnswerCount="3" CommentCount="4" />
  <row Id="33988" PostTypeId="2" ParentId="33911" CreationDate="2011-01-05T18:20:31.357" Score="1" ViewCount="" Body="&lt;p&gt;I interview a lot of people. When I see a CS or SE grad, I always ask &quot;What made you pick [x] over [n]&quot;? Just because it is a great way to get someone comfortable and talking. That's about the only value that I place on either degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Neither degree assures me that you are a competent programmer that can fill our immediate need. I assign weight to the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Post graduate work and published papers&lt;/li&gt;&#xA;&lt;li&gt;Involvement in open projects, where I can look at your commitments and how you interacted with your fellow programmers&lt;/li&gt;&#xA;&lt;li&gt;How well you do on tests and questions that I've spent the better part of five years refining&lt;/li&gt;&#xA;&lt;li&gt;How quickly you relax and think like you would if you were just working on a hobby project&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Then, my pet peeves come into play. I can't help them, I'm human. Some of them are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;People that wear lots of rings&lt;/li&gt;&#xA;&lt;li&gt;People who wear too much cologne or perfume&lt;/li&gt;&#xA;&lt;li&gt;Those that use &quot;umm&quot; as every third word as they speak&lt;/li&gt;&#xA;&lt;li&gt;I can't stand untied shoe laces. Call it OCD.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;My point in listing my peeves is simply to inform you that 1/3 of the decision that an interviewer will make will likely &lt;em&gt;have nothing to do&lt;/em&gt; with your technical qualifications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, we'll go over your educational background quickly unless you are working on a thesis. Even then, my next question will be:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;And then what did you do?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In fact, we'd reach that question even if you were a high school drop out. You didn't &lt;em&gt;waste&lt;/em&gt; your money on your degree, but don't give it artificial value.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2011-01-05T18:20:31.357" />
  <row Id="33989" PostTypeId="2" ParentId="33869" CreationDate="2011-01-05T18:25:41.960" Score="0" ViewCount="" Body="&lt;p&gt;What about complex random processes?  You can verify that the resulting data object is legal for the rules in effect but you can't make it stable over code changes.  Mocking the random generator won't help if you change the sequence of calls to the generator.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Such a thing is unlikely in the business world but randomly generated game worlds are another matter.&lt;/p&gt;&#xA;" OwnerUserId="5555" LastActivityDate="2011-01-05T18:25:41.960" />
  <row Id="33991" PostTypeId="1" CreationDate="2011-01-05T18:43:24.110" Score="0" ViewCount="131" Body="&lt;p&gt;Hello, I'm currently working on writing a load testing application that takes advantage of Load Test using Visual Studio 2010. The load test will simulate 20 users on the same machine, and I need some data to be shared in-memory between all simulated users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was suprised I couldn't find documentation answering the following question:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What seperates each virtual user's running context from the other? Does each virtual user runs the tests in its own process? Maybe in its own app domain? Or just on its own thread?&#xA;I need to know because if each user is running tests in its own process then all the in-memory cache isn't shared and is created for each user instead of one time for all of them, which is bad for me.&lt;/p&gt;&#xA;" OwnerUserId="12477" LastActivityDate="2011-04-05T23:40:29.027" Title="Visual Studio Load Tests Virtual Users Simulation" Tags="&lt;visual-studio-2010&gt;&lt;load-testing&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="1" />
  <row Id="33992" PostTypeId="2" ParentId="33986" CreationDate="2011-01-05T18:53:59.970" Score="0" ViewCount="" Body="&lt;p&gt;My firsthand experience is all in the in-house experience though I have worked with a number of consultants over the years with varying results.  Though, I'd imagine the following are some main points in each:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In-house developer (Information Systems or Product Development departments)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Know the people and culture within a company.  If you consider how you may spend years with some of these people that isn't necessarily as likely with the consultant unless you find the never-ending project.&lt;/li&gt;&#xA;&lt;li&gt;Possible wide range of applications.  I can think of a dozen different applications I have to support where I am now while the consultants that came in may have only had one or two that were the main reason they were part of the project.  Some of these are off-the-shelf with no customization and others may have quite a bit of customization.&lt;/li&gt;&#xA;&lt;li&gt;Support work may be more likely in this case.  Unless all the development is done by the consultants, bugs tend to come back to the in-house team to fix or at least find a way to work around.&lt;/li&gt;&#xA;&lt;li&gt;Deployment tended to fall under our domain, especially for the in-house servers that may only need part of a system to be installed.  There are also the possible sending of support requests here if something doesn't work only to find a, &quot;That's an odd setup you have there...&quot; answer that isn't fun.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Consultant&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Assuming one works on-site, there can be changing locations going from client to client.  This can also mean traveling a lot more than the other case.&lt;/li&gt;&#xA;&lt;li&gt;Maintained expertise within a core set of tools though upgrading the versions may be needed for new clients.&lt;/li&gt;&#xA;&lt;li&gt;Subject to possible boom-bust cycles as work may either be abundant or hard to find.&lt;/li&gt;&#xA;&lt;li&gt;Support may be handled by a different team which could be nice.&lt;/li&gt;&#xA;&lt;li&gt;More likely to be paid by the hour on a project compared to the salaried employee in the other case, but this is just my experience when it comes to the money side of things.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This is just based on my experience along with some others that worked with me on various projects over the years.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2011-01-05T18:53:59.970" />
  <row Id="33993" PostTypeId="2" ParentId="33986" CreationDate="2011-01-05T18:57:25.147" Score="1" ViewCount="" Body="&lt;p&gt;I've done both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When working as a consultant, I got a lot more money, and since I worked hourly I didn't mind even large amounts of overtime nearly as much.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When working as an in-house developer, I got benefits including medical coverage (which I really didn't need because of my wife's job) and paid time off.  I also got more security, and didn't need to try to drum up business all the time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The work didn't seem to be all that different (except for that ten-month gig as software tester when I really needed the money).  Naturally, the longer you stay at a place (and I had one contract that lasted longer than one &quot;permanent&quot; job I had), the more you understand the business and can work in more detail.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2011-01-05T18:57:25.147" />
  <row Id="33994" PostTypeId="2" ParentId="33986" CreationDate="2011-01-05T18:58:06.880" Score="10" ViewCount="" Body="&lt;p&gt;I think first we have establish that there are different types of consultants. You can either work for yourself or you can work for a firm that offers consulting services. The two are very different. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you work for yourself you have the opportunity to make WAY more money. However, there are a lot of disadvantage or perhaps a better term would be challenges. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You are responsible for finding work. If you don't find work then you don't make money.&lt;/li&gt;&#xA;&lt;li&gt;You are responsible for all of your own benefits such as health care.&lt;/li&gt;&#xA;&lt;li&gt;You also have to deal with all the accounting procedures like taxes, billable hours...ect. &lt;/li&gt;&#xA;&lt;li&gt;You many or may not have to relocate where you go to work if you are required to be on site.  &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I think that this might vary, but often times consultants that work for consulting firms are salaried, so if work is getting sparse for period of time you still have income assuming the company can stay afloat. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the benefits of either type of consultant is exposer to a wide variety of projects.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I personally work on a product team. Our team is relatively small, so many of the perks I enjoy may or may not apply to bigger software teams. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The company's success is directly related to your work.&lt;/li&gt;&#xA;&lt;li&gt;Everyone I directly work with is in the same building if not within yelling distance.&lt;/li&gt;&#xA;&lt;li&gt;You develop a level of system architecture expertise. In general, this makes activities such as debugging, time estimation and risk assessment much easier. &lt;/li&gt;&#xA;&lt;li&gt;You get to know your co-workers better...this may be a bad thing, but it has been pleasant for me.&lt;/li&gt;&#xA;&lt;li&gt;There are clear opportunities for career advancement. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I probably left out a few things that I can't think of the top of head. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2011-01-06T01:29:56.717" LastActivityDate="2011-01-06T01:29:56.717" CommentCount="1" />
  <row Id="33995" PostTypeId="2" ParentId="33986" CreationDate="2011-01-05T18:58:07.813" Score="1" ViewCount="" Body="&lt;p&gt;I've spent a lot more time as a consultant, but I've done internships as an in house developer, so I'll take a shot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a consultant, you spend a lot more time on greenfield development, and while you may get called in to work on some legacy applications, you (or the company you work for, depending on the size of the project) have the option to use the latest and greatest in most cases. Not being tied to the structure of the client's organization can be a problem too, though -- there can be times when your hard work feels like it's thrown over the wall to someone who could care less, or when the client agent that you worked with gets replaced with someone who's actively hostile to your project. The economics of consulting are brutal as well - the consultancy is (usually) paid by the project, and they pay you for your time, meaning that you'll need to get it out the door as fast as you can however you can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an in house developer, you work on a smaller number of projects using a narrower scope of technologies. At worst, this can be maintaining one project indefinitely, although in most cases you'll have a wider set of responsibilities. One of the nice things is that applications you develop are part of the real business of the company you're working for, and often put into use. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although it isn't the case everywhere, some of the biggest sticklers for best practices, and the ones you can learn the most from, work as in house developers, where they had authority to enforce code coverage and quality. Consultants, on the other hand, tend to fall between the best and the worst in house developers in that area - while they're better than in house shops that grew up around a few office automation scripts, attention to time spent, combined with the fact that applications are often handed off for maintenance, means that schedule often has to take precedence.&lt;/p&gt;&#xA;" OwnerUserId="1147" LastActivityDate="2011-01-05T18:58:07.813" />
  <row Id="33996" PostTypeId="2" ParentId="33911" CreationDate="2011-01-05T18:58:14.070" Score="0" ViewCount="" Body="&lt;p&gt;In my experience, some recruiters do place more emphasis on they type of degree, but what I saw more of for entry level is how that degree is obtained at that school.  When I was going to Oregon Tech, I had a chance to talk with a recruiter from Lawrence Livermore Labs, and what I was told was that my BS CE degree was superior to other schools rated above us since my schooling was half lab, half lecture and the &quot;higher&quot; schools were 3/4 lecture or more.  This was significant to LL since to them, we already had practical knowledge of how to implement different programming concepts; while the students from the other schools had mostly book learning, with little practical application.  The net result of this is LL saw grads from OIT able to pick up and run with new stuff more quickly than some other schools.  I'm not saying anyone has bad programs, but some programs do make it easier to get into the field professionally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you get beyond entry level, then the difference between CS and CE is minimal, and you should be able to do the work already.&lt;/p&gt;&#xA;" OwnerUserId="8340" LastActivityDate="2011-01-05T18:58:14.070" CommentCount="1" />
  <row Id="33997" PostTypeId="2" ParentId="33968" CreationDate="2011-01-05T19:01:25.380" Score="1" ViewCount="" Body="&lt;p&gt;You shouldn't review code you don't understand, that will only annoy the developers who have to explain every strange looking thing they have done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you can do choose/define coding guidelines and check the code against these guidelines. When something doesn't comply with the guidelines you can ask the developer for explanation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would start with choosing existing guidelines (I don't know any VB.net coding standards but google gave me:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://its.jocogov.org/documents/VB%20Dot%20Net%20Coding%20Standards.pdf&quot; rel=&quot;nofollow&quot;&gt;VB .Net coding guidelines&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://submain.com/products/guidelines.aspx&quot; rel=&quot;nofollow&quot;&gt;Submain&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/b/codefx/archive/2010/08/12/vc-c-vb-net-coding-guideline-of-all-in-one-code-framework.aspx&quot; rel=&quot;nofollow&quot;&gt;All in one code-framework&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Use &lt;a href=&quot;http://stackoverflow.com/questions/2131350/what-stylecop-like-tools-are-there-for-vb-net&quot;&gt;stylecop like tools for VB .net&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Analyse the sources with &lt;a href=&quot;http://www.ndepend.com/&quot; rel=&quot;nofollow&quot;&gt;NDepend&lt;/a&gt; (it has rules about cyclomatic complexity, lengths, depths etc)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you have done that you can say that the code complies with the chosen standards, it doesn't say anything about the functionality being correct or the code using proper OOP principles. But at least it is something.&lt;/p&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2011-01-05T19:01:25.380" />
  <row Id="33998" PostTypeId="2" ParentId="33986" CreationDate="2011-01-05T19:04:20.680" Score="1" ViewCount="" Body="&lt;p&gt;After 30 years of consulting, I've moved to in-house developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Travel&lt;/strong&gt;.  Consultants travel.  A lot.  As in-house developer I do not travel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Variety&lt;/strong&gt;.  Consultants can have varied work.  Or not.  Depends on the consultancy and your role and your preferences.  As in-house developer, it's all Python all day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Politics&lt;/strong&gt;.  Consultants can (and should) transcend office politics.  Indeed, often you're there to cut through the bad political decision-making.   As in-house developer, it's difficult to call someone else's baby ugly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;On-Call&lt;/strong&gt;.  50% of the time, as a consultant, I could not be on the off-hours, on-call list.  The rest of the time I was on call along with customer folks.  As  in-house developer, I'm on call 24x7 with no real backup.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;New Technology&lt;/strong&gt;.  Consultants are often relied on to introduce new technology.  In-house, I did that also.  That seems to be my personal strong suit.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-05T19:04:20.680" />
  <row Id="33999" PostTypeId="2" ParentId="33964" CreationDate="2011-01-05T19:05:36.610" Score="0" ViewCount="" Body="&lt;p&gt;Java Web Development is fun with &lt;a href=&quot;http://www.playframework.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.playframework.org/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="12479" LastActivityDate="2011-01-05T19:05:36.610" />
  <row Id="34000" PostTypeId="2" ParentId="33911" CreationDate="2011-01-05T19:06:10.660" Score="0" ViewCount="" Body="&lt;p&gt;As a personal recommendation, there are several books I really like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;cracking the coding interview&lt;/li&gt;&#xA;&lt;li&gt;the algorithm design manual&lt;/li&gt;&#xA;&lt;li&gt;code complete&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;others will have their favorites;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think your best bet is to program a lot and do lots of exercises from books like these (except code complete is more of an overview of how you should code and abstract things, rather than specific algorithms).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you're obviously capable of great things in software, you should definitely land a great job, but one big thing to keep in mind is that companies that sell software have a particular need for practical ability, which is something you can polish with practice.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Best of luck!&lt;/p&gt;&#xA;" OwnerUserId="5904" LastActivityDate="2011-01-05T19:06:10.660" />
  <row Id="34001" PostTypeId="1" CreationDate="2011-01-05T19:02:22.533" Score="7" ViewCount="439" Body="&lt;p&gt;This is not kinda Tech question,&#xA;But can anyone tell me what are good ways to Promote app other than Market.&lt;/p&gt;&#xA;" OwnerUserId="12603" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2011-05-06T15:44:56.427" LastActivityDate="2011-05-06T15:44:56.427" Title="What are the ways to Promote android App" Tags="&lt;android&gt;&lt;android-market&gt;&lt;promotion&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="34002" PostTypeId="2" ParentId="34001" CreationDate="2011-01-05T19:14:26.973" Score="2" ViewCount="" Body="&lt;p&gt;I think Android is a lot about social marketing in communites. If you have a new app, show them the users in some forums/boards/communities in different countries (Like &lt;a href=&quot;http://en.wikipedia.org/wiki/Viral_marketing&quot; rel=&quot;nofollow&quot;&gt;viral marketing&lt;/a&gt;) Promoting them only in the Market isn't a good way with 200 000 apps and a lot of crap apps. Your app won't be really noticed unless you already have a lot of downloads.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-05T19:15:02.533" />
  <row Id="34003" PostTypeId="2" ParentId="33731" CreationDate="2011-01-05T19:16:45.620" Score="1" ViewCount="" Body="&lt;p&gt;I would recommend Head First C# if you are beginner and CLR via C# if you already know object oriented programming (Java etc)&lt;/p&gt;&#xA;" OwnerUserId="3755" LastActivityDate="2011-01-05T19:16:45.620" CommunityOwnedDate="2011-01-05T19:23:10.827" CommentCount="1" />
  <row Id="34004" PostTypeId="2" ParentId="33731" CreationDate="2011-01-05T19:23:10.827" Score="1" ViewCount="" Body="&lt;p&gt;I'd recommend Apress Pro C# 2010 and the .NET 4 Platform, Fifth Edition. If you're familiar already with Java and programming in general, this book will be exactly what you need... and more. Just don't plan on carrying it around.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another good approach would be to learn the basics through online tutorials and buy C# in Depth and CLR via C# once you're ready to go beyond that.&lt;/p&gt;&#xA;" OwnerUserId="12482" LastEditorUserId="12482" LastEditorDisplayName="" LastEditDate="2011-01-05T19:39:36.720" LastActivityDate="2011-01-05T19:39:36.720" CommunityOwnedDate="2011-01-05T19:23:10.827" />
  <row Id="34005" PostTypeId="2" ParentId="33578" CreationDate="2011-01-05T19:23:48.853" Score="3" ViewCount="" Body="&lt;p&gt;I would like to see more &lt;strong&gt;learning languages&lt;/strong&gt;.  Not only languages for absolute beginners with holier-than-thou restrictions like &lt;a href=&quot;http://en.wikibooks.org/wiki/The_Science_of_Programming/How_Low_Can_You_Go%3F&quot; rel=&quot;nofollow&quot;&gt;requiring a space between every token&lt;/a&gt;, but languages for people who already know programming and want to learn new concepts or get better at programming in general.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To me, Haskell is a great example of what I mean by a &quot;learning language&quot; (though it's also grown in popularity and general utility over the years).  By abandoning the familiar C syntax and having backwards function composition operators (e.g. &lt;code&gt;(+2) . (*3)&lt;/code&gt; is a function which multiplies by 3, &lt;em&gt;then&lt;/em&gt; adds 2), Haskell taught me to write shorter functions.  Its ruthless type checker helped me learn the language faster and improved my ability to think logically about code.  Both of these benefits have spilled over to other languages, even assembly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The goals of learning languages and those of general-purpose languages are often in conflict.  A learning language should be challenging and rewarding to learn, and should enforce a particular style, even if that style is not the best for many applications.  A general purpose language should be good for getting stuff done, and use of abstractions should be carefully measured and &quot;make sense&quot;.  For example, when fixing a website, learning about &lt;a href=&quot;http://hackage.haskell.org/packages/archive/base/latest/doc/html/Prelude.html#t%3aMonad&quot; rel=&quot;nofollow&quot;&gt;monads&lt;/a&gt; would be the last thing on a programmer's mind.  On the other side of the coin, when someone is learning to program, they shouldn't have to wade through &quot;public static void&quot; nonsense if they haven't even learned about functions yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're a language designer, please make up your mind whether your language is a learning language or an applied language.  This will determine to what extent you will want to employ purity in your design.&lt;/p&gt;&#xA;" OwnerUserId="3650" LastActivityDate="2011-01-05T19:23:48.853" CommunityOwnedDate="2011-01-05T19:23:48.853" CommentCount="3" />
  <row Id="34006" PostTypeId="1" AcceptedAnswerId="34014" CreationDate="2011-01-05T19:29:55.740" Score="3" ViewCount="254" Body="&lt;p&gt;Our team works in an open-space office. Luckily the cubicles are quite big (L shaped tables for everyone!), there is quite a lot of space so we are not sandwiched. Without going into further detail, there are comfortable spots (window), normal spots and stupid spots (near the corridor).&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Until recently, the development team of twelve engineers was &lt;strong&gt;seated&lt;/strong&gt; so that all types of spots were occupied and we were all &lt;strong&gt;close together&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the old arrangement, &lt;strong&gt;verbal communication was very easy&lt;/strong&gt; - half of the team was withing talking distance. The other half was like ten steps away. Often times I could ask, discuss, solve problems without leaving the cube.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of the communication is work related, no bullshit or mental masturbation that would unnecessarily distract others.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Now we have moved to another part of the building and have larger space to occupy. At this point, everyone could pick their spot. Naturally all stupid spots are left empty (for the poor newcomers to occupy bwehaha). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the new arrangement, &lt;strong&gt;the development team is stretched&lt;/strong&gt; across the floor and some of the key engineers are seated 'far' from each other - definitely not within talking distance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have yet to experience how this works out but am getting concerned that team work and communication may have been traded for personal comfort.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Finally the questions...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you think is better office arrangement? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Such that allows for free verbal communication but trading for some developer's comfort, or such that potentially hinders verbal communication but makes developer's more comfortable in their spot? Or maybe it does not matter at all and we will evolve to be efficient in any arrangement?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is your personal experience?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Note - yes I read books and posts how workplace is important in our job. However in this case - we are all still in open space and the difference between the different spots are not really groundbreaking. So I'm thinking the little comfort that few developers gain is not worth the loss of easy communication.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="11344" LastActivityDate="2011-01-05T21:31:49.677" Title="Office arangement - comfort vs. teamwork?" Tags="&lt;productivity&gt;&lt;office&gt;&lt;teamwork&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="1" />
  <row Id="34007" PostTypeId="1" CreationDate="2011-01-05T19:31:06.863" Score="4" ViewCount="139" Body="&lt;p&gt;Can you recommend a good shell scripting book for linux? I am using bash.&lt;/p&gt;&#xA;" OwnerUserId="12483" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2011-01-07T03:44:27.540" LastActivityDate="2011-01-07T03:44:27.540" Title="good linux shell scripting book" Tags="&lt;linux&gt;" AnswerCount="3" />
  <row Id="34008" PostTypeId="2" ParentId="33901" CreationDate="2011-01-05T19:36:14.510" Score="3" ViewCount="" Body="&lt;p&gt;I'd recommend just doing black box testing.  There are three ways I'd recommend of doing so.  First is to let him just mess around with the software without telling him the requirements and see what breaks the program.  The second is to write a script for him to follow covering various use cases.  The last is to give him a task to perform and let him figure out how to do it himself.  There are advantages and disadvantages to each.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Advantage of the first: Lets someone who doesn't know how the software is supposed to be used do things that you didn't anticipate.  You might not think that this is important, but users can do some really weird/bad stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disadvantage of the first: Since you're not telling him the requirements of the software, you don't know exactly what he's doing so you need to more strictly observe what's happening.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Advantage of the second: You are testing the requirements directly and know what is being tested.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disadvantage of the second: You are only testing what you can think to.  This doesn't account for users doing something you did not expect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Advantage of the third: You are seeing what a user might do when confronted with the software and seeing how well it works with those combinations.  You're also getting some usability data on your software as well (I'm assuming this is primarily for usability testing since this type of study was required for that course)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disadvantage of the third: He doesn't do any tasks you don't tell him to and you have to strictly observe what he's doing to see when something is going wrong or when he's having trouble completing a task.&lt;/p&gt;&#xA;" OwnerUserId="5179" LastActivityDate="2011-01-05T19:36:14.510" CommentCount="1" />
  <row Id="34009" PostTypeId="2" ParentId="34007" CreationDate="2011-01-05T19:38:15.143" Score="0" ViewCount="" Body="&lt;p&gt;I learned it from &lt;a href=&quot;http://oreilly.com/catalog/9780596000257&quot; rel=&quot;nofollow&quot;&gt;Linux in a Nutshell&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="12484" LastActivityDate="2011-01-05T19:38:15.143" />
  <row Id="34010" PostTypeId="2" ParentId="33986" CreationDate="2011-01-05T19:38:35.940" Score="9" ViewCount="" Body="&lt;p&gt;I have done one year as in an in-house developer and the last ten years I have been working as a consultant, but my consultancy jobs were pretty long (couple of them 2 - 2,5 years at the same customer) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Consultancy pro's:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;diversity, I have learned a lot of different technologies, but also project management methodologies, operational environments&lt;/li&gt;&#xA;&lt;li&gt;A distance to politics at the customer, don't get me wrong I am committed to do the best Job I can at the customer and it hurts when politics get in the way and make results not as good as they could be, but still If I would be an in house developer it would hurt even more.&lt;/li&gt;&#xA;&lt;li&gt;opportunity to make a fresh start in a new role. Once when you are at a company you have a certain role and even when you make an internal promotion, people still see you in your previous role. In consultancy when you start a new Job there is now history from previous roles, I find that pleasent.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Consultancy con's&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Travel time&lt;/li&gt;&#xA;&lt;li&gt;When there is a financial crisis you will not always be able to do the things you love, you have less choice in the jobs you accept and decline.&lt;/li&gt;&#xA;&lt;li&gt;It cost's money when you sit on the bench for a while&lt;/li&gt;&#xA;&lt;li&gt;When the customer doesn't want you to leave and you do, it can get ugly&lt;/li&gt;&#xA;&lt;li&gt;When the customer wants you to become an in-house developer and you don't it can get ugly&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;In house pro's:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It gives a good feeling to create solutions for your employer (it's nearer to your hart than when you are a consultant&lt;/li&gt;&#xA;&lt;li&gt;pay and pay increase are in general pretty steady&lt;/li&gt;&#xA;&lt;li&gt;there is a better chance of colleagues becoming friends.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;In house con's&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I am simply unable to be in the same role, with the same people, with the same technologies most of the time.&lt;/li&gt;&#xA;&lt;li&gt;I love the getting started at a customer part of my job, learn the technogies, the environment, the people and the politics. As an in house developer I would have to miss out on that.&lt;/li&gt;&#xA;&lt;li&gt;You can't escape bad politics in any other way than resigning or getting other people fired.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Hope this helps.&lt;/p&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2011-01-05T19:38:35.940" CommentCount="1" />
  <row Id="34011" PostTypeId="2" ParentId="34006" CreationDate="2011-01-05T19:39:21.323" Score="7" ViewCount="" Body="&lt;p&gt;Using physical proximity as a way to gauge how effective communication is, to me, slightly off base.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to communicate with another party you will. My experience is that more often then not those who did not want to communicate used distance/location as the reason whereas those who did want to communicate had no issues with the distance/location and communicated efficiently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This boils down to behavioral traits; not physical location.&lt;/p&gt;&#xA;" OwnerUserId="3289" LastEditorUserId="3289" LastEditorDisplayName="" LastEditDate="2011-01-05T19:55:44.640" LastActivityDate="2011-01-05T19:55:44.640" CommentCount="2" />
  <row Id="34012" PostTypeId="1" CreationDate="2011-01-05T19:40:50.307" Score="16" ViewCount="533" Body="&lt;p&gt;Every week, I have a 30 minutes meeting scheduled with my manager to talk about pretty much anything. So far, I haven't taken those one-on-one very seriously. As a new year resolution, I would like to take more seriously my one-on-ones with my manager. One way I though I could do that is to plan in advance (come up with a list of questions and/or agenda) my one-on-one. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the exception of the status report, what subject do you discuss with your manager during a one-on-one? Have you ever seen an agenda for one-on-one? &lt;/p&gt;&#xA;" OwnerUserId="12485" LastActivityDate="2011-01-08T13:54:10.153" Title="What subject do you discuss with your manager during a one-on-one?" Tags="&lt;career&gt;&lt;career-advice&gt;" AnswerCount="9" CommentCount="1" FavoriteCount="5" />
  <row Id="34013" PostTypeId="2" ParentId="33987" CreationDate="2011-01-05T19:42:46.263" Score="5" ViewCount="" Body="&lt;p&gt;Before you actually look at grad schools, it would be very helpful for you to decide what it is you want to do after you get the degree.  Do you want to do research?  Do you want to teach?  Do you want a tenured faculty job eventually?  Do you want to be a manager or a CEO?  Do you simply want to do something cool for a few years, and go back to writing code for a living?  Do you want to start a family?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your answers to questions like that will be a big factor in what degree you should pursue, to which schools you should apply, and whether or not you should go to grad school at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By the way, &quot;years to complete&quot; does not have much meaning if you are talking about a Ph.D.  Mean time to graduation in a particular department is a good measure, but the standard deviation is huge.  I know people (very few) who finished a Ph.D. in computer science in 3 or 4 years.  I also know people for whom it took 14 years.  Just remember, never ask a Ph.D. student how much time he or she still has left to go.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: Yes, I realize that I have not answered the question directly.  But, IMHO, the question does not make sense until you answer some other questions first.  It seems to me that you are approaching the issue from the wrong end.  It appears that you are starting with the question &quot;What's out there?&quot;, while a better starting point, IMHO, would be the question &quot;What do I want?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to stay technical, you should consider a degree in CS, while if you want to go into management, you should consider an MBA.  If you want to learn some advanced technical topics and stay in the industry, then a course-based Master's or even an online Master's may be enough, and the prestige of the school is not a big deal.  If you want to become a professor, then you should only consider top-tier schools, and an on-line degree is out of the question.  If you want to go to school full-time, then you would typically become a TA or an RA. This would pay your tuition and give you a stipend to survive on, which makes the cost of the program irrelevant.  What would matter then is the opportunity cost, or all the money you are &lt;em&gt;not&lt;/em&gt; making while in school.  If you want to go part-time, then you should have a job in a company that pays for it, again making the cost irrelevant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please understand, that I am not trying to be patronizing at all.  I have gone through a Ph.D. program in CS, and I was utterly clueless when I started.  It seems to me from you question, that you do not have a clear idea of why you want to go to grad school, or what you want to do if and when you graduate.  These are crucial questions which determine which degree you want to get, and which schools you should apply to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit2: One other thing.  From what I've heard, an MBA is not worth the effort, unless it is a full-time top-tier program.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastEditorUserId="4365" LastEditorDisplayName="" LastEditDate="2011-01-13T16:01:48.403" LastActivityDate="2011-01-13T16:01:48.403" CommentCount="4" />
  <row Id="34014" PostTypeId="2" ParentId="34006" CreationDate="2011-01-05T19:43:16.933" Score="9" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Get some chat software installed&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Aside from that you may find some of the other developers find verbal communication breaks them out of the productive 'zone', regardless of how work related the talk is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also of note is that by having everyone in the same location, while work talk between Dev A and Dev B may be productive, it is most likely nothing but distracting noise to Dev C, Dev D, ...&lt;/p&gt;&#xA;" OwnerUserId="2673" LastActivityDate="2011-01-05T19:43:16.933" CommentCount="2" />
  <row Id="34015" PostTypeId="2" ParentId="34012" CreationDate="2011-01-05T19:43:50.287" Score="7" ViewCount="" Body="&lt;p&gt;The whole idea of these meetings is to discuss pretty much &lt;em&gt;anything&lt;/em&gt; that's affecting your ability to do your work, so there's no agenda by definition. If something is affecting your work then it is affecting the business. Plus, a happy employee is a productive employee :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So make a list of the things &lt;em&gt;at work&lt;/em&gt; that are affecting your ability to do your job and start discussing those. Start with the most serious one. You won't get to discuss the one's at the bottom, but don't worry, they'll rise to the top of the list if they're serious enough or solve themselves if they're not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make a new list each week.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some would argue that there's no point in discussing the state of public transport as your manager can't change that, but if it means that you're struggling to get into work then your boss &lt;em&gt;does&lt;/em&gt; need to know. You could agree to slightly different working hours, or working from home one day a week (for example). The end result is that you are happier and hopefully more productive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Being happier means you are more likely to stay with the company - your boss doesn't really want the cost and hassle of hiring your replacement, being more productive is better for the company's profits.&lt;/p&gt;&#xA;" OwnerUserId="47" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-01-08T11:50:05.597" LastActivityDate="2011-01-08T11:50:05.597" CommentCount="3" />
  <row Id="34016" PostTypeId="2" ParentId="34012" CreationDate="2011-01-05T19:52:01.503" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/34012/what-subject-do-you-discuss-with-your-manager-during-a-one-on-one/34015#34015&quot;&gt;ChrisF&lt;/a&gt;'s answer is spot on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also add take note of things you notice that can be of benefit to the team as a whole. Not only can you raise issues that negatively affect you, but you can also talk about changes on practices/policy/[Insert area here] that can help boost overall productivity if you know of any.&lt;/p&gt;&#xA;" OwnerUserId="2673" LastActivityDate="2011-01-05T19:52:01.503" />
  <row Id="34017" PostTypeId="1" AcceptedAnswerId="34051" CreationDate="2011-01-05T19:56:44.777" Score="0" ViewCount="81" Body="&lt;p&gt;Have someone worked with SPADE before? I can't find online samples or something. I would like to get a taste of what is like since I may have to work with it soon.&lt;/p&gt;&#xA;" OwnerUserId="6795" LastActivityDate="2011-01-05T21:14:33.693" Title="Working with IBM SPADE language (InfoSphere Streams)" Tags="&lt;programming-languages&gt;" AnswerCount="1" />
  <row Id="34018" PostTypeId="2" ParentId="34012" CreationDate="2011-01-05T19:57:08.560" Score="14" ViewCount="" Body="&lt;p&gt;I usually plan to talk about 3 things, in equal 10 minute proportions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Past&lt;/li&gt;&#xA;&lt;li&gt;Present&lt;/li&gt;&#xA;&lt;li&gt;Future&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Past&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally this is things that have been brought up before that have had resolutions. ie. &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;We had discussed, as a team, the new coding standard and I'm happy/unhappy with its adoption.&lt;/li&gt;&#xA;&lt;li&gt;I liked/disliked how you handled the issue that came up between myself and [other team member]&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also mention things that were forgotten, or whose solutions never materialized. Don't let them forget about things that are/were important to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Present&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here I talk about any current things that are going on, or should be. ie:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;As you know, I'm studying to get my [certification in x] and it's going well. I am on target to take the exam.&lt;/li&gt;&#xA;&lt;li&gt;I'm a bit worried with the current test coverage being at %[x]. I have some ideas to help improve it and would like to hear if you think it's a problem and have ideas of your own.&lt;/li&gt;&#xA;&lt;li&gt;At this point were supposed to be ramping up for release, but we're not. What happened and what do you think we can do about it for our next iteration? I have some ideas.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Future&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here I list things that I'm looking forward to, and ensure that they are still going to happen or things that I'd like to see happen. ie:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I'm really excited to be getting VS 2010, when is it expected? Has that time changed (if not: why)?&lt;/li&gt;&#xA;&lt;li&gt;I'm up for review in a few months. Do you have any concerns that I might address right away that might make that process go smoother, and in my favour?&lt;/li&gt;&#xA;&lt;li&gt;I'd like to see if I can move into [x] position in the company. Do you have any feedback or suggestions for what courses I should take or what I might do to prove that I'm capable?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The focus is on &lt;em&gt;contributing&lt;/em&gt; to the conversation, on &lt;strong&gt;both&lt;/strong&gt; sides and not just b!tching about the job. Be sure to mention things that you were happy with, so that they can know to strive for the same in the future. Note that it's not just about what you can do to improve the job/working environment/company but what the company can or is planning to do to improve the same.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastEditorUserId="1554" LastEditorDisplayName="" LastEditDate="2011-01-05T20:08:42.077" LastActivityDate="2011-01-05T20:08:42.077" CommentCount="1" />
  <row Id="34019" PostTypeId="2" ParentId="34012" CreationDate="2011-01-05T19:57:12.310" Score="1" ViewCount="" Body="&lt;p&gt;I have raised all sorts of issues in 1x1s with my manager.  Things related to my personal career growth, things related to interpersonal issues with team members, things related to projects that I'm on, suggestions for improvements to the department, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I basically do what ChrisF said.  I jot down a list during the week, and go through the list in priority during the meeting.  The things that don't get discussed go to next week's list.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2011-01-05T19:57:12.310" />
  <row Id="34020" PostTypeId="2" ParentId="34012" CreationDate="2011-01-05T20:02:00.070" Score="1" ViewCount="" Body="&lt;p&gt;Focus on how you can solve his business problems.  Even if you are talking about something bothering you, talk about how you want to remove obstacles from his success.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;50 weeks a year talk about how you can do your work better, and 2 weeks a year talk about how he can compensate you better.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2011-01-05T20:02:00.070" CommentCount="1" />
  <row Id="34021" PostTypeId="2" ParentId="34012" CreationDate="2011-01-05T20:02:11.300" Score="1" ViewCount="" Body="&lt;p&gt;I'd likely advocate getting feedback of how are you doing.  Note that this is feedback to you, about how you are seen from the top which may become a dialogue if you want to further discuss stuff.  Your manager may suggest some skills that you could improve or how to move up the corporate chain.  In a way if you think of your manager as a mentor, this would be a way to cultivate that relationship.  There is also the potential to work on some small talk skills within that 30 minutes that may also be worth pondering just to help build that relationship.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would suggest having a few action items towards the end of the meeting.  Either things to observe, try, or research over the next week so that there is something new to discuss.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2011-01-05T20:02:11.300" />
  <row Id="34022" PostTypeId="2" ParentId="34012" CreationDate="2011-01-05T20:02:55.700" Score="2" ViewCount="" Body="&lt;p&gt;On of the thing I would definitely consider discussing is your career path.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Where to you want to be in 5 years, an individual contributer, do want to mentor a fresh collage grad, do want to move in to a more managerial roll?&lt;/li&gt;&#xA;&lt;li&gt;How do you move to the next level aka (get a promotion)? What skills do I need to improve on. What metrics are used to evaluate if deserve a promotion?...ect.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-05T20:02:55.700" />
  <row Id="34023" PostTypeId="1" CreationDate="2011-01-05T20:01:05.637" Score="8" ViewCount="641" Body="&lt;p&gt;Here's my situation:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a freelancing student and I was working on a software project for a client over the summer holidays of 2010. At the time I completed the application, tested it on my machine, delivered it to the client and went back to University. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However the client is not completely satisfied with the product and apparently has found a couple of bugs with it. Ever since I went back to Uni, they have been chasing me up and asking me to spend some time to fix the bugs. I have explained that this is simply not possible as I am extremely busy with my Uni work and cannot afford to spare my time for anything else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The client is getting increasingly pissed off and have been chasing me by calling during lectures at evenings and even asking me if I could go over to their place over the weekend to talk about this. This is in turn pissing me off as well because they're essentially asking me to give up my education so that I could help them out by fixing bugs. I go to Uni 5 days a week, 9-6 and feel it is unreasonable for them to call me during evenings and to ask me to work over weekends etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to end my relationship with this client but would like to do it amicably without pissing them off. How can I do this? I really wish they would just find someone else but I was charging them piss-poor rates so I think they don't want to go to anyone else because they would have to pay more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The application does not seem to work perfectly on their machine. I had tested it extensively on my machine and it seemed to work fine. I am not sure what exactly is causing it to not work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was paid a very low amount and it was on an hourly basis. e.g. I would send an invoice saying I worked on this for x amount of hours and they would pay me for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from the work itself, I have not charged them for all the time spent sending e-mails back and forth, phone calls, visits to their place etc. I would really like to end all my dealings with this client right away.&lt;/p&gt;&#xA;" OwnerUserId="12490" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2011-01-05T20:19:45.123" LastActivityDate="2011-01-06T03:20:36.533" CommunityOwnedDate="2011-01-06T03:20:36.533" Title="How to end a relationship with a client without pissing them off?" Tags="&lt;business&gt;&lt;client&gt;&lt;freelancer&gt;" AnswerCount="16" CommentCount="13" FavoriteCount="1" />
  <row Id="34024" PostTypeId="2" ParentId="34023" CreationDate="2011-01-05T20:05:55.910" Score="9" ViewCount="" Body="&lt;p&gt;Increase the price of you work&lt;/p&gt;&#xA;" LastActivityDate="2011-01-05T20:08:15.840" CommunityOwnedDate="2011-01-06T03:20:36.533" CommentCount="2" />
  <row Id="34025" PostTypeId="2" ParentId="34023" CreationDate="2011-01-05T20:07:04.187" Score="10" ViewCount="" Body="&lt;p&gt;If you feel conscience bound to fix the bugs (i.e. you feel like they are reasonable expectations of you based on what you were paid to do), then offer them a schedule during which time you could fix them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's just feature creep, or things you all hadn't anticipated, offer to connect them with another contractor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In either case, tell them they may reach you at particular times only.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From how you describe these clients, you won't be able to leave to their satisfaction, but you can leave professionally with a good conscience (assuming any written specifications are satisfied).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would love more info on what said &quot;bugs&quot; are, your pay agreement (hourly or per project), and other details.&lt;/p&gt;&#xA;" OwnerUserId="7819" LastActivityDate="2011-01-05T20:08:15.840" CommunityOwnedDate="2011-01-06T03:20:36.533" CommentCount="1" />
  <row Id="34026" PostTypeId="2" ParentId="34006" CreationDate="2011-01-05T20:10:19.660" Score="1" ViewCount="" Body="&lt;p&gt;Personally I do enjoy having someone right next to me that I can discuss various subjects with but I am also aware that sometimes I bother them for petty things that I could have just found out myself. It varies a lot from person to person.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think your answer will have to come from your developers themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of them were used to the verbal communication before, they probably do not mind it or even like it. These people usually get along just great because they interact all the time (you should know who these people are).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Others may not have ever liked it at all and prefer their own spot where no one bothers them with stuff that they're not focusing on at the time. Trying to concentrate on what you're doing when someone keeps bothering you about other things is going to be an impossible task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assessing who belongs to each group might not be the easiest task but asking them about it is the first step you need to take.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the case that verbal communication is really not possible anymore, try the alternatives. I really like the idea of a company IRC server with channels for groups/topics. At least you know that history is preserved and one can easily see the chat history over the last few days on a given subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another really good thing that I've experienced is chatting at the 'coffee table' or similar, sometimes it brings some really good collaboration between people, mostly because of the more relaxed environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope it helps.&lt;/p&gt;&#xA;" OwnerUserId="11592" LastActivityDate="2011-01-05T20:10:19.660" />
  <row Id="34027" PostTypeId="2" ParentId="34006" CreationDate="2011-01-05T20:10:38.407" Score="8" ViewCount="" Body="&lt;p&gt;Personally sitting within talking distance without a door sucks. You may be discussing something work related with the person next to you, but what about the person next them? They are probably distracted by your conversation causing them to be less productive. Personally, I would find a spot as far away from everyone that I could. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2011-01-05T20:56:16.357" LastActivityDate="2011-01-05T20:56:16.357" CommentCount="1" />
  <row Id="34028" PostTypeId="1" AcceptedAnswerId="34032" CreationDate="2011-01-05T20:13:59.263" Score="6" ViewCount="413" Body="&lt;p&gt;What kind of problems arise from installing a new program while other programs are running?  I'd imagine the GAC solved a lot of the old problems of shared dll's being locked.  So what kind of issues still arise?  I can see issues with upgrading a single program for sure, but outside of this its hard to see why apps would stomp on eachother's toe's.&lt;/p&gt;&#xA;" OwnerUserId="11107" LastActivityDate="2011-01-06T03:09:14.483" Title="Why is it recommended to close all programs before installing a new program?" Tags="&lt;learning&gt;&lt;.net&gt;" AnswerCount="7" CommentCount="0" FavoriteCount="1" />
  <row Id="34030" PostTypeId="2" ParentId="34023" CreationDate="2011-01-05T20:15:23.520" Score="3" ViewCount="" Body="&lt;p&gt;I've had something similar happen to me. As long as you have fulfilled your contract, you can provide them with the source noting that you're unable to continue work on the project and that any sufficiently capable programmer would be able to continue on with the project and that you'd make every reasonable effort to help them with their transition to a new developer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you haven't fulfilled your contract... you're in a bit of a pickle. If you weren't in a contract, and just paid hourly... there still may be an implied expectation that if you don't fulfill then you're in a pickle again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it &lt;em&gt;really&lt;/em&gt; comes down to it... you may have to contact a lawyer.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2011-01-05T20:15:23.520" CommunityOwnedDate="2011-01-06T03:20:36.533" />
  <row Id="34031" PostTypeId="2" ParentId="34023" CreationDate="2011-01-05T20:16:16.857" Score="20" ViewCount="" Body="&lt;h1&gt;Tell them no&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;You are not obligated to provide support for the application, especially after they accepted it and you went back to school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not a client you need to worry about &quot;pissing off&quot; because you should not want to work with them &lt;em&gt;at all&lt;/em&gt;. At this point they have become abusive in their desire to fix something when they can easily hire someone else to do this for them. My guess is they think you will do it for cheap, or better yet free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there is nothing on paper saying you guarantee this bug free &amp;mdash; and if you did you shouldn't have signed something like that &amp;mdash; then there isn't anything you have to do.&lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2011-01-05T20:16:16.857" CommunityOwnedDate="2011-01-06T03:20:36.533" CommentCount="5" />
  <row Id="34032" PostTypeId="2" ParentId="34028" CreationDate="2011-01-05T20:17:15.703" Score="13" ViewCount="" Body="&lt;p&gt;GAC only helps with .NET assemblies. There a lot of other applications which are not written in .NET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What else problems exist?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Other applications holding files open&lt;/li&gt;&#xA;&lt;li&gt;Other applications holding network connections open&lt;/li&gt;&#xA;&lt;li&gt;Other applications holding devices open&lt;/li&gt;&#xA;&lt;li&gt;Other applications slowing down the machine so that an unexpected timeout somewhere may occur leaving the work interrupted&lt;/li&gt;&#xA;&lt;li&gt;Other applications modifying files and settings in the system the installer would expect to stay unchanged during the process (consider it transactional integrity)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Why risk failing the installation process when it is sooo easy to stop other applications and just wait out a few minutes? Go have a cup of coffee in the meantime. :)&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2011-01-05T20:22:49.223" LastActivityDate="2011-01-05T20:22:49.223" CommentCount="6" />
  <row Id="34033" PostTypeId="2" ParentId="34028" CreationDate="2011-01-05T20:17:41.413" Score="-4" ViewCount="" Body="&lt;p&gt;I guess it might just be a good general policy to make sure that all the installs will work as intended? &lt;/p&gt;&#xA;" OwnerUserId="2296" LastActivityDate="2011-01-05T20:17:41.413" CommentCount="2" />
  <row Id="34034" PostTypeId="2" ParentId="34023" CreationDate="2011-01-05T20:18:36.217" Score="0" ViewCount="" Body="&lt;p&gt;Caveatrob,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The application does not seem to work perfectly on their machine. I had tested it extensively on my machine and it seemed to work fine. I am not sure what exactly is causing it to not work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was paid a very low amount and it was on an hourly basis. e.g. I would send an invoice saying I worked on this for x amount of hours and they would pay me for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apart from the work itself, I have not charged them for all the time spent sending e-mails back and forth, phone calls, visits to their place etc. I would really like to end all my dealings with this client right away.&lt;/p&gt;&#xA;" OwnerUserId="12490" LastActivityDate="2011-01-05T20:18:36.217" CommunityOwnedDate="2011-01-06T03:20:36.533" CommentCount="9" />
  <row Id="34035" PostTypeId="2" ParentId="34028" CreationDate="2011-01-05T20:20:41.863" Score="4" ViewCount="" Body="&lt;p&gt;maybe the installer is just overly paranoid?&#xA;in all honesty, I have never ever closed all programs when an installer asked me to do so and never ever got into trouble. Might just be luck though.&lt;/p&gt;&#xA;" OwnerUserId="3660" LastActivityDate="2011-01-05T20:20:41.863" />
  <row Id="34036" PostTypeId="2" ParentId="34007" CreationDate="2011-01-05T20:24:16.743" Score="1" ViewCount="" Body="&lt;p&gt;I've found that &lt;a href=&quot;http://tldp.org/LDP/abs/html/&quot; rel=&quot;nofollow&quot;&gt;this has been a good reference&lt;/a&gt; when I've needed to pick some up on the fly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for Christian's answer, I don't have experience with that book myself but I generally trust O'Reilly (the publisher of the In a Nutshell) books to publish good material.  I've only been disappointed by them twice.&lt;/p&gt;&#xA;" OwnerUserId="5179" LastActivityDate="2011-01-05T20:24:16.743" />
  <row Id="34037" PostTypeId="2" ParentId="34023" CreationDate="2011-01-05T20:30:00.883" Score="14" ViewCount="" Body="&lt;p&gt;If these are actual bugs - major flaws in &lt;strong&gt;your&lt;/strong&gt; software, then you need to fix them.  You cant just leave the customer there with a pile of useless code that may be directly impacting their business.  If that puts too much pressure on you because of your university work load, well, too bad.  You should have thought about that before you took on the contract.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;On the other hand&lt;/strong&gt;, if these are just 'feature requests masked as bug reports' - that is, the customer changed their mind about something or just wants a 'little tweak' here and there - then I think you're ok with telling them no, you're too busy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that, put ads in Craigslist or wherever is appropriate for your locale and state you are looking for someone to take over a programming contract.  You should have little problem finding someone willing to take on the work.  Do a bit of pre-screening to weed out the posers, and then introduce the best one to your old employer.  Thats about the best you can do to keep them happy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Edit: to clarify I'm talking about major flaws that prevent the app from operating, not minor problems that can be worked around.)&lt;/p&gt;&#xA;" OwnerUserId="897" LastEditorUserId="897" LastEditorDisplayName="" LastEditDate="2011-01-05T20:39:56.863" LastActivityDate="2011-01-05T20:39:56.863" CommunityOwnedDate="2011-01-06T03:20:36.533" CommentCount="15" />
  <row Id="34038" PostTypeId="2" ParentId="33886" CreationDate="2011-01-05T20:38:07.860" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The M4 corridor in the UK could just about qualify&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although nowhere near as well established as Silicon Valley, there is a general trend in the UK to place high tech companies in a tail leading out of London and off to the west along the M4 motorway - the so-called &lt;a href=&quot;http://www.telegraph.co.uk/technology/technology-companies/8105897/Tech-Map-of-Britain-M4-corridor.html&quot; rel=&quot;nofollow&quot;&gt;&quot;Silicon Motorway&quot;&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you wanted to position yourself so that you had access to a wide range of hi-tech companies each of which was within a reasonable commute (say less than 1 hour each way) then Reading would be a reasonable place. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where it differs from what I perceive to be the true Silicon Valley is the complete lack of a campus mentality where developers are able to mix outside of work and discuss exciting new projects and such. That just doesn't seem to happen anywhere else than the valley.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2011-01-05T20:38:07.860" CommentCount="2" />
  <row Id="34039" PostTypeId="1" AcceptedAnswerId="34044" CreationDate="2011-01-05T20:46:10.650" Score="2" ViewCount="177" Body="&lt;p&gt;In the next year or so, I will most probably be moving with my wife (US Citizen) to the US. I'm currently employed full time as a Systems Architect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you were &lt;strong&gt;preparing to move countries&lt;/strong&gt; in the next 12-24 months, &lt;strong&gt;what steps would you take&lt;/strong&gt; to maximise your chance of landing a &lt;strong&gt;software job&lt;/strong&gt; (Developer/Analyst/Architect) quickly?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Note: I'm not asking for VISA related answers&lt;/em&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2673" LastEditorUserId="2673" LastEditorDisplayName="" LastEditDate="2011-01-05T21:04:11.577" LastActivityDate="2011-01-06T04:05:35.603" Title="Preparing to move countries" Tags="&lt;career&gt;&lt;career-advice&gt;&lt;self-improvement&gt;&lt;job-market&gt;&lt;preparation&gt;" AnswerCount="3" CommentCount="9" FavoriteCount="0" />
  <row Id="34040" PostTypeId="2" ParentId="34023" CreationDate="2011-01-05T20:48:51.147" Score="1" ViewCount="" Body="&lt;p&gt;It seems that you think you are not responsible for correcting the bugs on the software. I presume that your client doesn't agree on that. Is this correct? &#xA;In any case it depends on the contract you agreed with your client. One thing is for sure, if you agreed on deliver a feature and that feature is not working, then you have not completed your work. Try to put yourself in the head of your client and try to get to a solution that is fair to you and him.&lt;/p&gt;&#xA;" OwnerUserId="12407" LastActivityDate="2011-01-05T20:48:51.147" CommunityOwnedDate="2011-01-06T03:20:36.533" CommentCount="3" />
  <row Id="34041" PostTypeId="2" ParentId="34023" CreationDate="2011-01-05T20:50:08.630" Score="1" ViewCount="" Body="&lt;p&gt;I would try to explain to them a number of things. In the previous arrangement&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;both you and them didn't specify the maintenance phase of the application&lt;/li&gt;&#xA;&lt;li&gt;both you and them didn't test well enough to be bug free, but they accepted and by that took responsibility for the program.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Now:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;you are willing to help but can't break iron with your bare hands&lt;/li&gt;&#xA;&lt;li&gt;if anything is going to happen the maintenance and acceptance criteria need to be agreed upon (get help from someone who knows what to look for and don't fall in the same trap again.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Give them the choice:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Let them choose not to work with you again (they can't be angry if it is their choice) They don't want this because they at least need your help for a while&lt;/li&gt;&#xA;&lt;li&gt;Ask them to get the software maintained in house or elsewhere you give help during the transition on a best afford base for a limited time&lt;/li&gt;&#xA;&lt;li&gt;You accept to maintain the application under conditions you can keep with. higher hourly rates, planning per change request, you ask a friend to take over and earn some money to. (don't underestimate the amount of work this still is going to give you) The idea is to make the conditions broad enough for you to make it work. This will be most likely unacceptable to them.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Giving them choices from which you can be pretty sure that they will choose option 2 will get you out in a limited amount of time with a customer that feels he has made the right decision.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Just to make a side note: prediction is very hard, especially about the future - Yogi Berra&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2011-01-05T20:50:08.630" CommunityOwnedDate="2011-01-06T03:20:36.533" />
  <row Id="34043" PostTypeId="2" ParentId="34023" CreationDate="2011-01-05T20:55:47.993" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;What can they do to you? Nothing.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you are calling the shots here. You need to explain to them that you delivered the software to them in good faith, and that they accepted it. End of story. End of your obligations to them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They went for a cheap option and now they've been bitten by the reason you didn't charge much - you offer no support. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you wish you can offer to assist them with bugs but make sure that you get money in advance (otherwise they'll probably try to wriggle out of paying once it's working and then you're in a world of pain trying to get paid). Agree on a period of time that you will work for the money that they have paid and stick to it. Sit with them and give them as much as you can, but once that clock ticks past the agreed time, pack up your stuff and prepare to go. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to learn to be hard, otherwise people will take and take and take always finding some excuse to guilt you into staying on a bit longer and adding some new thing for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Offer a support contract&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, if you can convince them to enter into an agreed support contract with a regular payment that you both feel is reasonable then you can be a little more lenient as time rolls on. This will provide you with a regular income, and they get reassurance that they have not been abandoned with something that they don't understand. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make sure that you have the contract drawn up by a professional - don't just make something up yourself.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2011-01-05T20:55:47.993" CommunityOwnedDate="2011-01-06T03:20:36.533" CommentCount="2" />
  <row Id="34044" PostTypeId="2" ParentId="34039" CreationDate="2011-01-05T20:57:16.557" Score="11" ViewCount="" Body="&lt;p&gt;Here would be my steps:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Get letters of reference from co-workers, supervisors, or others where you worked to demonstrate your skills as I'm not sure how likely international reference checks would go.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you know which geographical area you'll be moving, you may want to do some research into recruitment firms in that area that may have jobs you'd want.  The theory here being that you may want to know who should get your resume when you first land.  A few months before the move would be the time that you would send them your resume and tell them your story as more than that may be a bit premature to my mind.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Make sure you have your resume backed up in a few places so that if in moving something breaks, you don't have to work from scratch again.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2011-01-05T20:57:16.557" CommentCount="1" />
  <row Id="34045" PostTypeId="2" ParentId="34023" CreationDate="2011-01-05T21:01:21.750" Score="8" ViewCount="" Body="&lt;p&gt;First, if the former client is calling during lectures, you're not getting away without pissing off the client.  The client has become unreasonable.  (By the way, why do you have your phone on during lectures?  That's not a time to receive calls.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second, you might see if there's anything legal you can do.  Many Universities, at least in the US, have legal services available, and, at least in the US, this might constitute some form of harassment.  In any event, a legal-looking request may slow down your ex-client.  (Bring anything you signed, and anything written you've got that defines the relationship.  The ex-client may have a legitimate complaint, and you do need to know if that's the case.  I'm assuming that this isn't the case, that you actually did everything you agreed to do.  If you had some sort of commitment that you'd get the app to work on their system, you do need to address that.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Third, raise your rates.  Now.  Your ex-client is after you partly because you worked cheap, and if you make it clear you're no longer cheap that may slow them down.  Also, make it clear that, from now on, you're getting paid for all time spent, including communication time.  If you don't value your time much, you're giving other people a signal that they needn't either.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may want to make an offer.  Figure out a time you can take a break from your studies, and offer to take a look at specific problems at the client site then, at your new rate.  Have a written contract ready that specifies what you are to do, how you are to be paid, and what the deliverable it.   Point out that you need access to the client's system, to see what's not working on it.  That won't be completely to the ex-client's liking, but it does set boundaries and offers the ex-client something to hope for in exchange for good behavior.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2011-01-05T21:01:21.750" CommunityOwnedDate="2011-01-06T03:20:36.533" CommentCount="5" />
  <row Id="34046" PostTypeId="2" ParentId="34039" CreationDate="2011-01-05T21:02:40.907" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Post your resume on &lt;a href=&quot;http://careers.stackoverflow.com&quot;&gt;http://careers.stackoverflow.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Get a profile on &lt;a href=&quot;http://www.linkedin.com/&quot; rel=&quot;nofollow&quot;&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Keep updated info on past employers, so that job interviewers can get in touch and find out more about you.  Letters of reference are also a must, &lt;em&gt;especially if one is arriving from another country.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Also, if you have Facebook and/or Twitter, clean them up, as employers and interviewers are now looking at them to judge you and what kind of person you are.  Inappropriate photos, strong political statements, and any information that is not beneficial in any way should be removed from your profile(s).  &lt;strong&gt;Your online presence counts!&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4442" LastActivityDate="2011-01-05T21:02:40.907" />
  <row Id="34047" PostTypeId="2" ParentId="34028" CreationDate="2011-01-05T21:06:31.093" Score="6" ViewCount="" Body="&lt;p&gt;You can't overwrite a DLL or EXE that is in use by another app. The better written prompts say &quot;look, either close stuff that is using things I want to update (and gives you a list) or continue the install and we'll have to reboot after to replace the DLL/EXE then.&quot; The lazy ones just blindly tell you to close every single thing you have running, just in case. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hate rebooting. I hate closing stuff I'm using. Sometimes I just keep right on rolling and don't close anything that's running. I have a bit of a guess if things might share a DLL, so for example if I am updating Word I'll agree to close Outlook, but not Foxit Reader, I know they're probably independent. I pay more attention to non-lazy prompts (that tell me what the conflict involves) than to lazy ones, which may as well say &quot;may contain peanuts&quot; for all the thought that has gone into them.&lt;/p&gt;&#xA;" OwnerUserId="285" LastActivityDate="2011-01-05T21:06:31.093" CommentCount="1" />
  <row Id="34049" PostTypeId="2" ParentId="34023" CreationDate="2011-01-05T21:11:43.070" Score="3" ViewCount="" Body="&lt;p&gt;Same as with a girlfriend get them to think it's there idea.&lt;/p&gt;&#xA;" OwnerUserId="11972" LastActivityDate="2011-01-05T21:11:43.070" CommunityOwnedDate="2011-01-06T03:20:36.533" />
  <row Id="34050" PostTypeId="2" ParentId="33964" CreationDate="2011-01-05T21:11:46.543" Score="0" ViewCount="" Body="&lt;p&gt;If you are reasonably good with Java, it is easy to learn C#.&lt;/p&gt;&#xA;" OwnerUserId="12490" LastActivityDate="2011-01-05T21:11:46.543" />
  <row Id="34051" PostTypeId="2" ParentId="34017" CreationDate="2011-01-05T21:14:33.693" Score="0" ViewCount="" Body="&lt;p&gt;There's some sample and exemples in the InfoSphere Streams redbook:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.redbooks.ibm.com/redbooks/pdfs/sg247865.pdf&quot; rel=&quot;nofollow&quot;&gt;http://www.redbooks.ibm.com/redbooks/pdfs/sg247865.pdf&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6795" LastActivityDate="2011-01-05T21:14:33.693" />
  <row Id="34052" PostTypeId="1" AcceptedAnswerId="34053" CreationDate="2011-01-05T21:15:11.047" Score="0" ViewCount="94" Body="&lt;p&gt;Perhaps this is a question better suited for linux.se but since I have servers on all environments I was wondering what your favorite LiveCD is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wiki defines this, for those unfamiliar, as&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;a CD or DVD containing a bootable computer operating system.&lt;/em&gt; Live CDs are unique in that they have the ability to run a complete, modern operating system on a computer lacking mutable secondary storage, such as a hard disk drive. Live USB flash drives are similar to live CDs, but often have the added functionality of automatically and transparently writing changes back to their bootable medium.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I tend to stick with Knoppix, and today I have to register the machine on the network before I can get any of my utilities running via IP.  Any suggestions?&lt;/p&gt;&#xA;" OwnerUserId="5904" LastActivityDate="2011-01-05T21:38:58.363" ClosedDate="2011-01-05T22:23:02.757" Title="Your favorite LiveCD" Tags="&lt;livecd&gt;" AnswerCount="2" CommentCount="4" />
  <row Id="34053" PostTypeId="2" ParentId="34052" CreationDate="2011-01-05T21:19:26.053" Score="4" ViewCount="" Body="&lt;p&gt;Hiren's boot CD is the best in my opinion - it has it everything you could ever require including 'mini' versions of Linux and XP.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.hiren.info/pages/bootcd&quot; rel=&quot;nofollow&quot;&gt;http://www.hiren.info/pages/bootcd&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1293" LastActivityDate="2011-01-05T21:19:26.053" CommentCount="1" />
  <row Id="34054" PostTypeId="2" ParentId="33886" CreationDate="2011-01-05T21:27:12.960" Score="3" ViewCount="" Body="&lt;p&gt;Ireland - A lot of international companies have a presence here due to the low rate of corporation tax and the availability of highly skilled CS graduates:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Microsoft&lt;/li&gt;&#xA;&lt;li&gt;AOL&lt;/li&gt;&#xA;&lt;li&gt;Facebook&lt;/li&gt;&#xA;&lt;li&gt;McAfee&lt;/li&gt;&#xA;&lt;li&gt;Intel&lt;/li&gt;&#xA;&lt;li&gt;Trend Micro&lt;/li&gt;&#xA;&lt;li&gt;Pocket Kings&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1293" LastActivityDate="2011-01-05T21:27:12.960" CommentCount="4" />
  <row Id="34055" PostTypeId="2" ParentId="34006" CreationDate="2011-01-05T21:31:49.677" Score="0" ViewCount="" Body="&lt;p&gt;If you can't sit together can you at least get some small conference rooms dedicated to your team (we call them breakout rooms). Then you can work quietly at your desk but have a place to go for the small informal discussions that teams need.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2011-01-05T21:31:49.677" />
  <row Id="34056" PostTypeId="2" ParentId="34052" CreationDate="2011-01-05T21:38:58.363" Score="1" ViewCount="" Body="&lt;p&gt;Toss-up between &lt;a href=&quot;http://www.knoppix.net/&quot; rel=&quot;nofollow&quot;&gt;Knoppix&lt;/a&gt; and &lt;a href=&quot;http://www.sysresccd.org/Main_Page&quot; rel=&quot;nofollow&quot;&gt;SystemRescueCD&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Knoppix for the sheer amount of software they squeeze into the media.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SystemRescueCD because it saved my *ss a number of times.&lt;/p&gt;&#xA;" OwnerUserId="4767" LastActivityDate="2011-01-05T21:38:58.363" />
  <row Id="34058" PostTypeId="1" AcceptedAnswerId="34062" CreationDate="2011-01-05T14:57:07.620" Score="1" ViewCount="344" Body="&lt;p&gt;Has anyone used both ReSharper (from JetBrains) and Refactor! (from DevExpress)? If so, what are the pros and cons of each one?&lt;/p&gt;&#xA;" OwnerUserId="12528" LastActivityDate="2011-01-05T21:50:30.267" Title="Pros and Cons of Refactor! vs. ReSharper" Tags="&lt;c#&gt;&lt;asp.net&gt;&lt;tools&gt;&lt;refactoring&gt;" AnswerCount="6" CommentCount="2" />
  <row Id="34059" PostTypeId="2" ParentId="34058" CreationDate="2011-01-05T15:07:21.203" Score="6" ViewCount="" Body="&lt;p&gt;I have tried both and decided to go with ReSharper. Refactor was pretty buggy at the time I tried it and it would freeze Visual Studio for a few seconds when indexing time to time. ReSharper on the other hand is pretty stable and highly configurable. Just my two cents.&lt;/p&gt;&#xA;" OwnerUserId="9466" LastActivityDate="2011-01-05T21:50:30.267" CommentCount="3" />
  <row Id="34060" PostTypeId="2" ParentId="34058" CreationDate="2011-01-05T15:14:17.410" Score="0" ViewCount="" Body="&lt;p&gt;I have used Re-Sharper v5 with VS2008. It is excellent, and has very nice feature list.&#xA;The only issue I have got with it is it makes IDE load slower.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are using VS2010, I think it has most of the features in Re-Sharper out of the box.&#xA;I have not used Refactor though.&lt;/p&gt;&#xA;" OwnerUserId="3419" LastActivityDate="2011-01-05T21:50:30.267" CommentCount="1" />
  <row Id="34061" PostTypeId="2" ParentId="34058" CreationDate="2011-01-05T15:16:17.263" Score="4" ViewCount="" Body="&lt;p&gt;I like CodeRush more.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It has much more beautiful design.&lt;/li&gt;&#xA;&lt;li&gt;It uses less memory&lt;/li&gt;&#xA;&lt;li&gt;It has 'usage highlight' feature - you can select variable and all usages of it will be highlighted (also there is navigation through usages)&lt;/li&gt;&#xA;&lt;li&gt;Code statistics. E.g. lines count near Methods name. &lt;/li&gt;&#xA;&lt;li&gt;Execution flow arrow. Very useful for bad code support with lots of breaks and returns. This feature shows green arrows near every return keyword.&lt;/li&gt;&#xA;&lt;li&gt;Cool refactoring preview (e.g. extract method, change parameter order etc)&lt;/li&gt;&#xA;&lt;li&gt;It shows prompt for introducing 'using' statement, when you create Disposable object.&lt;/li&gt;&#xA;&lt;li&gt;Navigation markers - remembers position in code (e.g. before going for method definition). Pressing Esc 'pops' previous marker from navigation stack.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;ReSharper also has some features I miss in CodeRush&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Usages search. There is no highlighting, but you can find easily where value was set.&lt;/li&gt;&#xA;&lt;li&gt;Events highlighting. Disgusting pink color, but highlighting was here.&lt;/li&gt;&#xA;&lt;li&gt;It is not so expensive and different free licenses available.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Well, there is a couple other differences. I think you should try both and decide which to use by yourself, because I know guys, who like ReSharper as much, as I like CodeRush.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-05T21:50:30.267" CommentCount="3" />
  <row Id="34062" PostTypeId="2" ParentId="34058" CreationDate="2011-01-05T15:17:56.390" Score="4" ViewCount="" Body="&lt;p&gt;There are many small and big differences but to mention a few:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;ReSharper has the best compiler and doesn't flag correct C# as incorrect.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;ReSharper is very good at getting your code consistent.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Refactor! has the best user interface as virtually everything is done directly on the editing surface. It is unbelivably sweet (but has at times been buggy too).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;To me Refactor! has a somewhat steeper learning curve, but the real dealbreaker for me is 1. That is why I use ReSharper today. However, I wish I would get 3. too.&lt;/p&gt;&#xA;" OwnerUserId="7338" LastActivityDate="2011-01-05T21:50:30.267" CommentCount="1" />
  <row Id="34063" PostTypeId="2" ParentId="34058" CreationDate="2011-01-05T15:46:35.490" Score="2" ViewCount="" Body="&lt;p&gt;I used both, and they are different, in all fairness I tried Resharper first for about  a year, then Refactor for about  a week, so not sure its a fair comp, however, for me the deal breaker was the fact that Resharper lets you do a lot of things, but its out of the way, It lets you learn at your own pace, while still allowing you to do more advance stuff when you need it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found Refactor too &quot;in your face&quot; and didn't like the defaults&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think they provide a similar feature set, however it seems to me that the market leader is Resharper, now that I think about it, they have a nice community around it too&#xA;This is 100% personal opinion so take it as is.&#xA;Hope it helps&lt;/p&gt;&#xA;" OwnerUserId="5887" LastActivityDate="2011-01-05T21:50:30.267" />
  <row Id="34064" PostTypeId="2" ParentId="34058" CreationDate="2011-01-05T20:47:56.057" Score="0" ViewCount="" Body="&lt;p&gt;Having just tried using Refactor! Pro for the first time, I've come across a couple of cases where it's told me that functions/using statements are unused, but when I deleted them, they were used after all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus I agree with Miau that Refactor! is a bit too 'in your face' compared with ReSharper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ReSharper also highlights casing problems (the code I am working on now has been written by Java developers so all the functions begin with lower case letters, which plays merry hell with StyleCop, which I'm trying to introduce).&lt;/p&gt;&#xA;" OwnerUserId="12528" LastActivityDate="2011-01-05T21:50:30.267" CommentCount="1" />
  <row Id="34065" PostTypeId="2" ParentId="33789" CreationDate="2011-01-05T22:07:19.960" Score="0" ViewCount="" Body="&lt;p&gt;I was actually once involved in working on a web app, which we eventually almost ended up marketing as a standard &quot;desktop application&quot;. For some reason, Marketing got it into their heads that one of our major clients wanted the product to &quot;&lt;em&gt;appear to be a GUI application&lt;/em&gt;&quot;, so we created a little Windows app that just hosts the IE ActiveX control, and points to our web app (hiding the fact that it's actually a browser). So effectively, to an untrained eye it looked like the product was a standard GUI app.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Granted, this isn't exactly what you're asking (we were still pointing at a web app, and not hosting the whole thing locally) - but it's close enough. It would have been trivial - minus some of the remote web services it used - to set this up to just have the whole thing sitting on the local machine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here was the biggest problem though: look and &lt;em&gt;feel&lt;/em&gt;. Especially feel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People expect certain behaviours from rich GUI apps (drag and drop, native-feeling windows and dialogs, etc). It is extremely hard to get a genuinely native look and feel from a web frontend. There is simply a different user flow in what is expected when you open up a web app in a browser (eg. Gmail), as opposed to when you use a rich GUI application (eg. Outlook). In my experience, trying to equate the two is asking for trouble. If you put out a &quot;GUI app&quot; which acts like a web app, you're likely to be flooded with usability and LAF complaints.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TL;DR - Web apps and GUI apps have different looks and feels, and a different user culture to some extent. While it's technically possible to do something like this, from my experience, I wouldn't go there (again). At best you're likely to end up with a horrendous mix of client-side scripting that will be more difficult to learn, use and maintain than doing the whole thing as a normal GUI app in the first place. And people WILL complain about things &quot;not quite feeling right&quot; for a native GUI app. It's tempting to think that they won't - but they will.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2011-01-05T22:07:19.960" CommentCount="2" />
  <row Id="34066" PostTypeId="2" ParentId="33991" CreationDate="2011-01-05T22:15:34.950" Score="1" ViewCount="" Body="&lt;p&gt;I don't have a direct answer but could you elaborate on why you need memory shared between users ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The tests should be as real as possible and in the real world the users won't be using each others data. Off course within your application there can be sharing of date but this is your application state and is independent of users.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need the shared data to drive the tests you should make the test's data driven &lt;a href=&quot;http://visualstudiomagazine.com/Articles/2010/06/17/Web-Performance-Testing-with-Visual-Studio-2010.aspx?Page=3&quot; rel=&quot;nofollow&quot;&gt;see this link&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need the data to synchronize the tests in some way or to keep counters or something I would suggest you redesigning your test strategy. Because the performance test's than would be influenced by your synchronization attempts.&lt;/p&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2011-01-05T22:15:34.950" />
  <row Id="34067" PostTypeId="1" CreationDate="2011-01-05T22:27:41.283" Score="8" ViewCount="159" Body="&lt;p&gt;So I'm still on the fence as to whether or not I should be using these or not. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel its an extreme violation of encapsulation, however I find that I am able to achieve some degree of encapsulation while gaining more flexibility in my code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Previous Java/Swing projects I had used nested classes to some degree, However now I have moved into other projects in C# and I am avoid their use. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do you feel about nested classes?&lt;/p&gt;&#xA;" OwnerUserId="2638" LastActivityDate="2011-01-05T23:51:18.977" Title="Nested Classes: A useful tool or an encapsulation violation?" Tags="&lt;object-oriented&gt;&lt;classes&gt;&lt;nested&gt;&lt;encapsulation&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="34068" PostTypeId="2" ParentId="34028" CreationDate="2011-01-05T22:30:13.607" Score="0" ViewCount="" Body="&lt;p&gt;The possibility of conflict between application being installed and already running one is very small. These days most applications are based around concept of sandbox and they don't need to step out of it during installation process (or normal usage).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But lets suppose while installing some software, a change needs to be made to a file that is very likely to be already open by another application. You have two choices here:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;check if the file is open/locked, figure out which process is holding a lock, display a nice dialog asking to close that specific application&lt;/li&gt;&#xA;&lt;li&gt;just ask the person to close all the applications and you're on a safe side with no extra effort&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Sadly, the second option gets picked up most of the time.&lt;/p&gt;&#xA;" OwnerUserId="11457" LastActivityDate="2011-01-05T22:30:13.607" />
  <row Id="34069" PostTypeId="2" ParentId="34067" CreationDate="2011-01-05T22:38:50.660" Score="0" ViewCount="" Body="&lt;p&gt;Personally, I feel like they should be avoided since they do couple your design in various (usually unfavorable) ways.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, if your project has a set scope and encapsulating a class (such as a Node class or some sort of object that's used to traverse the datastructure of a specific class) then I don't see the harm.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, I think for certain types of projects it makes the code (and the reasoning) more legible/ easy to understand.  However, I think for most projects with extensibility in mind, it's a bad idea, because rarely will separating them cause you problems, but leaving them together may force you to decouple them in the future (which is wasted time).&lt;/p&gt;&#xA;" OwnerUserId="5904" LastActivityDate="2011-01-05T22:38:50.660" />
  <row Id="34070" PostTypeId="2" ParentId="34028" CreationDate="2011-01-05T22:44:50.607" Score="1" ViewCount="" Body="&lt;p&gt;A lot of times that message is just inserted as default text for the installation system being used. 9 out of 10 times it can be ignored. Its just that 10th time you have to worry about :-)  imo, in addition to the technical reasons DevArt summarized nicely, it was probably put in there originally so that end users dont go screaming to vendors about lost work if the installer crashes Windows and causes them to lose important spreadsheets and documents that were being worked on - &lt;em&gt;a not too uncommon occurrance back in the day&lt;/em&gt; when installing software.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2011-01-05T22:44:50.607" />
  <row Id="34071" PostTypeId="2" ParentId="32425" CreationDate="2011-01-05T22:46:42.180" Score="2" ViewCount="" Body="&lt;p&gt;First, you are already doing the prerequisites by taking classes, reading reference material, looking at open source projects, and staying curious with questions. I stress this because I've personally encountered similar questions before the person has done any leg work on their part (specifically, individuals circumventing classes and hoping to take short-cuts). Now, I think back to when we had labs about Turing machines and how at the time I felt it wasn't real programming. These are the experiences you will keep that anyone taking short-cuts is skipping.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Sign-up for student projects. I got&#xA;involved with (CSUA) a group of&#xA;like-minded students to build a game&#xA;for the carnival booth my senior&#xA;year. If you continue to enjoy it and&#xA;think you want to expand your&#xA;involvement, really take advantage of&#xA;resources. Find out about projects,&#xA;talk to your class mates, your&#xA;professors, and land an&#xA;internship.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Sit with an experienced programmer. There has been about three times in my history when I watched another person program that was truly inspirational. To them, they were just writing code and thinking out loud. No exaggeration, I felt like I absorbed more from listening to them than I would years on my own. If you encounter more, you are that much richer. We are lucky to be in an age where we can watch videos, inspect complete source repositories, and search a huge online store of knowledge instantaneously. It's no substitute to the in-person experience, but in the absence of a mentor it's a dramatic improvement over traditional material. Looking at raw code by others by itself may not lead to anything, though. You will want to have something in mind and a good debugger to step into logic. One of my fondest moments was making a Quake mod and it wasn't the mod itself that had anything memorable. It was seeing Carmack's in-game logic. The mod was just a reason for me to dive in.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Practice explaining and answering questions posed by your lab partner. Volunteer to help teach. Maybe form a study group and require each member become an expert on a class topic. Then grill that person and have them grill you. When you are forced to answer questions, you will be obligated to learn the answers yourself. When you can explain concepts clearly to others, you have enriched your own understanding to the point where you are able to convey it outside of a book and your thoughts.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Last, don't be afraid of learning the &lt;strong&gt;&lt;em&gt;hard way&lt;/em&gt;&lt;/strong&gt;, get your hands dirty, make mistakes. This can also be called experience. As a more practical example with regards to your question about projects with unwieldy code base and large file number counts, do this exercise: use a single file for your work. Really I'm not joking. This very same question actually came up at my current and previous company. Here another developer observed that I prefer to keep one file for each class. This seemed foreign to him and, in a related matter, he also did not like partial classes. So one way for you to get a sense of when or where it's appropriate to split up logic into separate files would be to begin with just a single file. After you have practiced the one file rule on multiple projects hopefully of increasing complexity, you may run into a project where you have so many classes in the one file that you find it difficult to read or due to version control becomes difficult to collaborate. At this point, you want to create separate files to group different classes. Given your preference, you may decide early that you like all data classes in one file. Then again perhaps later, you may decide that you like separate files even between data classes as a group.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10296" LastActivityDate="2011-01-05T22:46:42.180" CommunityOwnedDate="2011-01-05T22:46:42.180" CommentCount="1" />
  <row Id="34072" PostTypeId="2" ParentId="17214" CreationDate="2011-01-05T22:48:17.973" Score="0" ViewCount="" Body="&lt;p&gt;If you want to change the world, then read it. If you want to learn new hacks, then don't read it.&lt;/p&gt;&#xA;" OwnerUserId="12496" LastActivityDate="2011-01-05T22:48:17.973" CommunityOwnedDate="2011-02-26T01:53:06.803" />
  <row Id="34073" PostTypeId="1" CreationDate="2011-01-05T22:49:17.140" Score="1" ViewCount="185" Body="&lt;p&gt;I recently signed up for an iTunes account, and found that somebody had fraudulently used MY email to register their iTunes account. Why Apple did not validate the email address, I will never know. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I am told that I cannot use my email address to register a new iTunes account, as this email address is linked to an existing account.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This got me thinking, as developers, database administrators, technical analysts, and everything in between, how should we handle reports of a fraud account?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Experience teaches us never to re-assign identifying credentials. This can break things and/or cause mass confusion, especially in the realm of the web.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is, if we are are needing to reassign an identifying user credential we can very likely break a users bookmark by making a page render data that previously did not exist at that location.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if we have been taught not to re-assign details like these, how should we handle such a case where an account is discovered to be a fraud and the owner of the identity (e-mail or user name) wishes to claim this detail for their account?&lt;/p&gt;&#xA;" OwnerUserId="7048" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2011-01-06T05:32:51.800" LastActivityDate="2011-01-06T06:32:47.040" ClosedDate="2011-01-06T11:49:47.980" Title="How should programmers handle identity theft?" Tags="&lt;validation&gt;&lt;identity&gt;&lt;fraud&gt;" AnswerCount="3" CommentCount="8" />
  <row Id="34074" PostTypeId="2" ParentId="32425" CreationDate="2011-01-05T22:51:39.443" Score="0" ViewCount="" Body="&lt;p&gt;Have you considered enlisting the help of Adderall?&lt;/p&gt;&#xA;" OwnerUserId="12496" LastActivityDate="2011-01-05T22:51:39.443" CommunityOwnedDate="2011-01-05T22:51:39.443" CommentCount="2" />
  <row Id="34075" PostTypeId="2" ParentId="34067" CreationDate="2011-01-05T22:53:38.647" Score="0" ViewCount="" Body="&lt;p&gt;(In C#) Generally I would avoid them, although it can depend exactly what purpose of the class is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would never use them for any kind of domain model class, that just makes no sense to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used to use them for structuring data that is private in the outer class, but I've found that these almost always end up being needed externally later in the lifecycle of the project so I generally don't bother with this anymore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only time I use them now is for the odd little coding trick where using another small class makes implementing a particular class easier, or implementing an interface that is really just an event notification pattern (where the internal class will implement an interface and just passes control back the outer class).&lt;/p&gt;&#xA;" OwnerUserId="6104" LastActivityDate="2011-01-05T22:53:38.647" />
  <row Id="34076" PostTypeId="2" ParentId="34073" CreationDate="2011-01-05T22:57:36.080" Score="5" ViewCount="" Body="&lt;p&gt;Given an account signup using an email address, send out a confirmation email.  For something reasonably substantial like iTunes, use a confirmation link sent out or something like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Given a report of fraudulent account, send out an email and ask for information in a reply.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2011-01-05T22:57:36.080" />
  <row Id="34077" PostTypeId="2" ParentId="34073" CreationDate="2011-01-05T22:58:04.477" Score="1" ViewCount="" Body="&lt;p&gt;Sometimes we can't do anything about it...we get a new email and move on...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Review your email password recovery options - your secret question(s), other emails to which password resets may be sent, etc.&lt;/li&gt;&#xA;&lt;li&gt;Perhaps delete or close the account that was stolen.  This way, they have absolutely no possible way to activate/verify it in the future.&lt;/li&gt;&#xA;&lt;li&gt;If your program or code is responsible for &lt;em&gt;someone&lt;/em&gt; else's email being stolen, notify them &lt;strong&gt;immediately&lt;/strong&gt;!  Let them know their options, shore up their security, and look for mistakes in your code.  Don't delay!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4442" LastActivityDate="2011-01-05T22:58:04.477" CommentCount="2" />
  <row Id="34078" PostTypeId="2" ParentId="34067" CreationDate="2011-01-05T22:58:35.667" Score="6" ViewCount="" Body="&lt;p&gt;Well, too put it simply: nested classes do not violate encapsulation and in general, language features don't violate programming principles. Programmers violate programming principles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Funnily enough, it is claimed &lt;a href=&quot;http://download.oracle.com/javase/tutorial/java/javaOO/nested.html&quot; rel=&quot;nofollow&quot;&gt;nested classes increase encapsulation&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Increased encapsulation—Consider two&#xA;  top-level classes, A and B, where B&#xA;  needs access to members of A that&#xA;  would otherwise be declared private.&#xA;  By hiding class B within class A, A's&#xA;  members can be declared private and B&#xA;  can access them. In addition, B itself&#xA;  can be hidden from the outside world.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;There is some truth in that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually B is a result of applying &lt;a href=&quot;http://en.wikipedia.org/wiki/Single_responsibility_principle&quot; rel=&quot;nofollow&quot;&gt;SRP&lt;/a&gt; to A. B itself however potentially violates many principles, especially, if all it does is fiddling round with A's private members :D&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think hidden classes can be useful. But there is a lot of potential for misuse.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2011-01-05T22:58:35.667" />
  <row Id="34079" PostTypeId="2" ParentId="20720" CreationDate="2011-01-05T23:01:21.617" Score="0" ViewCount="" Body="&lt;p&gt;site www.cheaptoday.com uses c#, .net 4.0, asp.net mvc 2, ef 4&lt;/p&gt;&#xA;" OwnerUserId="12499" LastActivityDate="2011-01-05T23:01:21.617" />
  <row Id="34080" PostTypeId="2" ParentId="34023" CreationDate="2011-01-05T23:06:41.010" Score="1" ViewCount="" Body="&lt;p&gt;Here's what you should do: Bill Them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every time they call, keep track of how long you spend on the phone. Then bill them. You were paid by the hour, so bug-fixing is by the hour as well, as is support, emails, EVERYTHING. Just charge them for every second they take of your time. If they go along with this, you've got a client who is willing to pay for the privilege of pissing you off. That's a fantastic thing, and you should cherish them until your habit of raising your rates on a quarterly basis finally makes them terminate their relationship because they just can't afford you anymore.&lt;/p&gt;&#xA;" OwnerUserId="6883" LastActivityDate="2011-01-05T23:06:41.010" CommunityOwnedDate="2011-01-06T03:20:36.533" />
  <row Id="34081" PostTypeId="1" CreationDate="2011-01-05T23:26:15.630" Score="7" ViewCount="77" Body="&lt;p&gt;I'm looking for a chart like this:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/MmRTg.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically something that tells you whether an app with a given license can be linked with a library of a given license.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does such a thing exist?&lt;/p&gt;&#xA;" OwnerUserId="231" LastActivityDate="2011-01-05T23:31:30.710" Title="Is there a graph with FOSS licenses detailing what can be linked with what?" Tags="&lt;license&gt;&lt;foss&gt;&lt;chart&gt;" AnswerCount="1" CommentCount="3" FavoriteCount="1" />
  <row Id="34082" PostTypeId="2" ParentId="34081" CreationDate="2011-01-05T23:31:30.710" Score="4" ViewCount="" Body="&lt;p&gt;It's unlikely such a thing, as described, exists: there are many definitions of what constitutes a FOSS license and even more licenses. Such a graph would never be canonical or authoritative.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, GNU and the Free Software Foundation (and by extension, Wikipedia) have taken great pains to document which licenses are GPL-compatible (and subsequently &quot;FSF-approved&quot;):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_FSF_approved_software_licenses&quot; rel=&quot;nofollow&quot;&gt;List of FSF approved software licenses on Wikipedia&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.gnu.org/licenses/license-list.html&quot; rel=&quot;nofollow&quot;&gt;GNU's list of Various Licenses and Comments About Them&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8" LastActivityDate="2011-01-05T23:31:30.710" CommentCount="6" />
  <row Id="34083" PostTypeId="2" ParentId="34067" CreationDate="2011-01-05T23:51:18.977" Score="3" ViewCount="" Body="&lt;p&gt;We use nested classes all the time.  In a lot of situations, business software/processes have nested business objects.  We've all seen the example of an Order object which has a nested collection of OrderItems.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The bottom line is that it makes reading/writing the code easier and there's rarely a case where you would need your Order class and not need to know about OrderItems.&lt;/p&gt;&#xA;" OwnerUserId="101" LastActivityDate="2011-01-05T23:51:18.977" />
  <row Id="34084" PostTypeId="1" CreationDate="2011-01-06T00:04:54.220" Score="4" ViewCount="175" Body="&lt;p&gt;After being away from development for more than a year, I find it challenging to join back the work force, and I can feel the rustiness. I wonder what you have done to either keep your skills fresh during such periods or how you gained back the skills you might have forgotten? I understand coding is a great way to become more competent, but how do you start getting more involved in it while you are not working as a developer? &lt;/p&gt;&#xA;" OwnerUserId="7895" LastActivityDate="2011-01-06T14:00:13.467" Title="What strategies you followed to keep your programming skills fresh during a long break?" Tags="&lt;career&gt;&lt;job-market&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="1" />
  <row Id="34085" PostTypeId="1" AcceptedAnswerId="34091" CreationDate="2011-01-06T00:08:28.133" Score="0" ViewCount="203" Body="&lt;p&gt;Am looking for an open source code for the TCP/IP stack. An explanation along the lines of the stack would also help me in understanding the different modules and their interactions. I tried searching but there is very less information relating to just the TCP/IP stack.&lt;/p&gt;&#xA;" OwnerUserId="12426" LastActivityDate="2011-01-06T02:34:15.197" Title="Source code for TCP/IP stack" Tags="&lt;internet&gt;&lt;networking&gt;" AnswerCount="2" />
  <row Id="34086" PostTypeId="1" AcceptedAnswerId="34104" CreationDate="2011-01-06T00:09:12.877" Score="9" ViewCount="166" Body="&lt;p&gt;I've just started working on an open source project with around 30 developers in it. I'm working on fixing some of the bugs as a way to get into the &quot;loop&quot; and become a regular committer to the project. The problem is I think I've uncovered a fundamental design flaw that's causing one of the bugs I'm working on. But I feel like if I blast this on the mailing list I'm going to come off as arrogant, and some of the discussions I've had about the issue are butting heads with some of the people. How should I go about this?&lt;/p&gt;&#xA;" OwnerUserId="12404" LastActivityDate="2011-01-06T03:05:55.297" Title="Dealing with a fundamental design flaw when you're new to the project" Tags="&lt;new-job&gt;&lt;collaboration&gt;&lt;android&gt;" AnswerCount="5" FavoriteCount="0" />
  <row Id="34087" PostTypeId="2" ParentId="34084" CreationDate="2011-01-06T00:11:21.250" Score="0" ViewCount="" Body="&lt;p&gt;This is where I'd suggest knowing what kind of stuff you'd enjoy and run with that.  For example, here are a couple of simple things that I have done or seen someone do to keep some skills up to date:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Random number walker.  The idea here is to picture taking random sized steps away from 0 and trying to get back to 0 exactly.  In some cases I may limit the numbers generated to be integers between 1 and x so that it isn't quite as bad as floating points that don't quite work.  The idea here being if you are above 0 you'd subtract the next number and if below you'd add it.  How easy or hard is it to hit 0?  I enjoyed it but then I'm also a Math Geek.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;CD/DVD DB. The idea here being that if you have a collection of either that you could build a database of those and then a simple app to allow CRUD operations that should be fairly simple and straightforward.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The key point here being know where your interest is in wanting an app that does X.  I was curious on the random number stuff and so I cooked up my little walker.  &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;Project Euler&lt;/a&gt; has other Math problems if you like figuring out some stuff.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2011-01-06T00:11:21.250" />
  <row Id="34088" PostTypeId="2" ParentId="34084" CreationDate="2011-01-06T00:12:59.357" Score="1" ViewCount="" Body="&lt;p&gt;Open Source will provide a method of keeping your skills sharp.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2011-01-06T00:12:59.357" />
  <row Id="34089" PostTypeId="2" ParentId="34084" CreationDate="2011-01-06T00:13:11.297" Score="1" ViewCount="" Body="&lt;p&gt;After a long break, it is challenging to come back to the old mindset. Source code reading - preferably the code you wrote would help you identify different key components in the system and how you thought it would interact. Also you may want to look into data structures and the algorithms which were used in your previous projects to give you a headstart after the long break.&lt;/p&gt;&#xA;" OwnerUserId="12426" LastActivityDate="2011-01-06T00:13:11.297" />
  <row Id="34090" PostTypeId="2" ParentId="34086" CreationDate="2011-01-06T00:14:39.643" Score="3" ViewCount="" Body="&lt;p&gt;Could you inquire as to why a particular design was used?  That way you may get more of the back story as there may be some good reasons why something was chosen that you don't know.  I'd go with the idea that you aren't quite the expert that can pick apart the design but inquiring may be a way to learn more so that eventually you could ask about that flaw you found so that the message won't be seen as flame bait or trolling.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2011-01-06T00:14:39.643" />
  <row Id="34091" PostTypeId="2" ParentId="34085" CreationDate="2011-01-06T00:23:01.420" Score="1" ViewCount="" Body="&lt;p&gt;You can browse the entire Linux kernel at &lt;a href=&quot;http://lxr.linux.no&quot; rel=&quot;nofollow&quot;&gt;LXR&lt;/a&gt;. For example, &lt;a href=&quot;http://lxr.linux.no/linux+v2.6.37/net/ipv4/tcp_ipv4.c&quot; rel=&quot;nofollow&quot;&gt;here's&lt;/a&gt; the implementation of TCP over IPv4. Be aware that a full, real-world TCP/IP stack is going to be &lt;em&gt;huge&lt;/em&gt; and it's going to be difficult getting a feel from it just by studying source code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many books available which give you more of an overview, such as &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0201633469&quot; rel=&quot;nofollow&quot;&gt;this one&lt;/a&gt; and &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/020163354X&quot; rel=&quot;nofollow&quot;&gt;this one&lt;/a&gt;. Follow the &quot;related titles&quot; link in Amazon for many more...&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2011-01-06T00:23:01.420" />
  <row Id="34092" PostTypeId="2" ParentId="33987" CreationDate="2011-01-06T00:25:34.703" Score="1" ViewCount="" Body="&lt;p&gt;I'm assuming by your profile you're looking for something in the US.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One list that constantly crops up is US News and World Reports &lt;a href=&quot;http://www.usnews.com/education&quot; rel=&quot;nofollow&quot;&gt;http://www.usnews.com/education&lt;/a&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As much as I'd like to point you to a &quot;modern&quot; resource and not the company that's been doing this for decades, US News is all I can come up with that does grad schools as well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would say that it's a potential jumping off point and that's about it. I haven't looked at it in a few years, so don't know if it's still worth the $20 or so. I don't know the methodology they use other than interview and survey so it's possible it can be gamed like any such list can. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I would suggest is that you do a little &quot;reverse look up&quot;. If there's a reputable school in your area that you're already considering, talk to their grad admissions dept. Find out from them which surveys and lists they consider important, these will be the ones they probably point out to you without much prompting because they'll want to point out what their ranking is. Talking to a couple of schools will net you a good intersection of lists to check out. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you point out, this is one of those things that trying to do web searches is painful. It's like looking for pharmaceutical information: for every good hit you get, you get 5000 scammers trying to sell you bogus crap or infect your computer with a mail bot. &lt;/p&gt;&#xA;" OwnerUserId="1865" LastActivityDate="2011-01-06T00:25:34.703" />
  <row Id="34093" PostTypeId="2" ParentId="34023" CreationDate="2011-01-06T00:33:32.590" Score="0" ViewCount="" Body="&lt;p&gt;As the top posts have already stated, you should raise your rates right now. You now have more schooling, more experience and your time is worth more to you because you're in school. Your rate should reflect that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should quote the client your new rate before going any further. If they agree to your new rate you should probably look at the problem and see if it is actually your code that's at fault, the severity of the bug(s), and if they are indeed bugs at all. Charge them for that time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do decide to fix the bug(s), give them your contract. Tell them that you will fix the code, but you will not offer a support contract for it. Get what you will deliver in writing and up front. Let them know that you are in school and school takes priority, and that's non negotiable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the day, I don't think you're getting out of this without pissing them off. That would lead to you being walked on and that's not what you want. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the future, make sure you outline a contract in writing first saying that you will not provide support during school months so that the client knows not to bother you and if they do you have something to point to. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck.&lt;/p&gt;&#xA;" OwnerUserId="2305" LastActivityDate="2011-01-06T00:33:32.590" CommunityOwnedDate="2011-01-06T03:20:36.533" CommentCount="3" />
  <row Id="34094" PostTypeId="2" ParentId="33987" CreationDate="2011-01-06T00:33:38.440" Score="3" ViewCount="" Body="&lt;p&gt;I am going to talk about thesis Master's and Ph.D.s. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my mind, grad school selection after &quot;top-tens&quot; is too subtle to lay out in a table. The top-tens are the schools whose professors constantly advancing the state of the art in meaningful ways. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Outside of those, you are left with the leavings. Those schools do not constantly advance the state of the art in meaningful ways (sometimes they don't advance the art, sometimes's it's not meaningful, and often it isn't constant). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To select among them, you need to clearly define what you want to get out of grad school. Usually the selectors are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;research area&lt;/li&gt;&#xA;&lt;li&gt;professor&lt;/li&gt;&#xA;&lt;li&gt;funding&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I &lt;strong&gt;&lt;em&gt;highly recommend against part-timing grad school&lt;/em&gt;&lt;/strong&gt;. I'm doing it now, and it is possibly the worst educational experience of my life, &lt;em&gt;including&lt;/em&gt; that flaky undergraduate teacher who gave me a bad grade on a whim. Your online or part-time grad degree is not the same as a full-time grad degree, although the paper may look the same. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Graduate school is about the experience. It is &lt;em&gt;not&lt;/em&gt; about the coursework. It is about the education of the student (and submitting the research you do to peer-reviewed publications.). It also is about the collaborative environment between students working to advance their research and the sharing of ideas. It's also a barely paid semi-sweatshop for professorial research, quite often. &lt;em&gt;Caveat emptor.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thing: you earn what you strive through. An easy program gives you an almost worthless experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And one more thing: graduate school is non-deterministic in completion time, particularly for the PhD.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2011-01-06T00:33:38.440" />
  <row Id="34095" PostTypeId="1" CreationDate="2011-01-06T00:38:30.200" Score="6" ViewCount="221" Body="&lt;p&gt;This is related to a question I asked earlier - &lt;a href=&quot;http://programmers.stackexchange.com/questions/34023/how-to-end-a-relationship-with-a-client-without-pissing-them-off&quot;&gt;How to end a relationship with a client without pissing them off?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are your obligations when charging by the hour vs charging by project? If you agree to take on a project, give a rough estimate that it might take 10 days for you to work on and charge £X per hour - are you obligated to work for free after those 10 days are up and you have still not managed to complete your project due to unanticipated issues? What if you have delivered the project but bugs are found - should you fix these bugs for free if the 10 days are up or should you charge your client?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, for the above project, what should be the result when you start on the project, but after the 10 days for whatever reason you have to give up and tell your client that you cannot do it anymore? I realise that this does nothing to build your reputation and relationship with the client but are you obligated to pay back the money paid to you or do you just deliver the half/nearly completed source code and help them find someone else to complete it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason I am asking the above questions is because I am very new to freelancing and would like to know how to deal with the above situations if they ever crop up.&#xA;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="12490" LastActivityDate="2011-01-06T06:38:31.590" Title="Charging by the hour/project" Tags="&lt;work&gt;&lt;freelance&gt;&lt;client&gt;" AnswerCount="5" FavoriteCount="1" />
  <row Id="34096" PostTypeId="2" ParentId="34084" CreationDate="2011-01-06T00:48:13.170" Score="2" ViewCount="" Body="&lt;p&gt;Depending on your memory, it is more or less like riding a bike.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Understanding is the key factor and you are unlikely to have lost that, you just need to start programming again.  Sure at first it'll be slow going, APIs open, looking everything up, but that will shake off quite quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main hurdle is catching up on new developments in the field, many programmers do not do this anyway, so not the greatest worry ever.  Reading a decent programming blog, keeping an eye on well read articles and such like, particularly for areas you want to work within may be a good idea here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the subject of taking a break and maintaining your skill set whilst on the break - well, I think that you should allow a bit of rust.  If you are taking a break, one would assume you need the break, or wish to benefit from it.  Spending a load of time constantly during the break keeping up-to-date sort of defeats the object.  If the break is very long, well over a year, then a month catch-up/re-immersion per year might be advisable.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2011-01-06T00:48:13.170" />
  <row Id="34097" PostTypeId="2" ParentId="34095" CreationDate="2011-01-06T00:48:27.883" Score="0" ViewCount="" Body="&lt;p&gt;I'm no lawyer but the answer to both situations depends on what you have agreed contractually with the client. I saw in your earlier question that you were working without a contract which seems rather dangerous for the exact reasons you've raised here. No written contract certainly doesn't mean no binding obligations. It's good to have all this sort of stuff figured out before you begin your working relationship so that if any issues arise they can be resolved professionally and amicably.&lt;/p&gt;&#xA;" OwnerUserId="1886" LastActivityDate="2011-01-06T00:48:27.883" CommentCount="2" />
  <row Id="34098" PostTypeId="1" CreationDate="2011-01-06T00:23:03.560" Score="1" ViewCount="491" Body="&lt;p&gt;Hi Guys,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a Administrator (unix, Linux and some windows apps such as Exchange) by experience and have never worked on any programming language besides C# and scripting on Bash and lately on powershell.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm starting out as a service provider and using multiple network/server monitoring tools based on open source (nagios, opennms etc) in order to monitor them.  At this moment, being inspired by a design that I came up with, to do more than what is available with the open source at this time, I would like to start programming and test some of these ideas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The requirement is that a server software that captures a stream of data and store them in a database(CouchDB or MongoDB preferably) and the client side (agent installed on a server) would be sending this stream of data on a schedule of every 10 minutes or so.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For these two core ideas, I have been reading about Python and Erlang besides ruby.  I do plan to use either Amazon or Rackspace where the server platform would run.  This gives me the scalability needed when we have more customers with many servers.  For that reason alone, I thought Erlang was a better fit(I could be totally wrong, new to this game) and I understand that Erlang has limited support in some ways compared to Ruby or Python.  But also I'm totally new to the programming realm of things and any advise would be appreciated grately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Jo&lt;/p&gt;&#xA;" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2011-01-09T20:05:33.780" LastActivityDate="2011-01-13T12:39:16.497" Title="Newbie, deciding Python or Erlang" Tags="&lt;programming-languages&gt;&lt;python&gt;&lt;ruby&gt;&lt;erlang&gt;" AnswerCount="8" CommentCount="4" />
  <row Id="34099" PostTypeId="2" ParentId="34098" CreationDate="2011-01-06T00:49:38.670" Score="10" ViewCount="" Body="&lt;p&gt;Python can do everything you mentioned, and it has a significantly larger community.&lt;/p&gt;&#xA;" OwnerUserId="3637" LastActivityDate="2011-01-06T00:59:14.697" CommentCount="1" />
  <row Id="34100" PostTypeId="2" ParentId="34095" CreationDate="2011-01-06T01:00:48.963" Score="1" ViewCount="" Body="&lt;p&gt;What you are describing is just &quot;fixed amount or less&quot;. This only benefits the client, so if you are making the bid I have no idea why you'd work that way.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hourly rate&lt;/strong&gt; - An hourly rate can be used when the client knows they haven't made up their mind about some things, and they agree that the project is a bit open-ended - but this must be agreed &lt;strong&gt;in advance&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fixed rate&lt;/strong&gt; - Use if the client knows exactly what they want. If they do, but you can't bid it to a fixed amount, you don't really have any business making bids yet.  Don't make the client pay for your inexperience.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;If you follow this, you won't end up in a situation where you don't know what to do. If you have to give up, discuss with the client and treat like a resignation or partnership dissolution.  Refund all the money and deliver nothing, or offer the partial project in exchange for partial payment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's tempting to apply &lt;strong&gt;hourly rate&lt;/strong&gt; whenever there is some uncertainty, but it should &lt;strong&gt;only be used when the client is the wishy-washy one&lt;/strong&gt;.  If you are experienced but still have significant unanswered technical questions, then be open about this with the client upfront.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, get a contract, or it's only a matter of time before you run into problems.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-01-06T01:07:54.027" LastActivityDate="2011-01-06T01:07:54.027" />
  <row Id="34101" PostTypeId="2" ParentId="34084" CreationDate="2011-01-06T01:04:16.877" Score="1" ViewCount="" Body="&lt;p&gt;Isn't it like you know how to program and it stays with you forever?&#xA;I had never had problems writing a code after short/long break. If you know principle, the technique will get refreshed while you're coding. So I don't think there's a certain procedure for &quot;Total Recall&quot;&lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2011-01-06T01:04:16.877" />
  <row Id="34102" PostTypeId="2" ParentId="34086" CreationDate="2011-01-06T01:08:04.077" Score="3" ViewCount="" Body="&lt;p&gt;One of the &lt;a href=&quot;http://www2.tech.purdue.edu/cg/courses/cgt411/covey/48_laws_of_power.htm&quot; rel=&quot;nofollow&quot;&gt;48 Laws of Power&lt;/a&gt;:  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Win through your Actions, Never&#xA;  through Argument&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Any momentary triumph you think gained&#xA;  through argument is really a Pyrrhic&#xA;  victory:  The resentment and ill will&#xA;  you stir up is stronger and lasts&#xA;  longer than any momentary change of&#xA;  opinion.  It is much more powerful to&#xA;  get others to agree with you through&#xA;  your actions, without saying a word. &#xA;  Demonstrate, do not explicate.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This is one I've learned the hard way after many pointless arguments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this particular case, I'd advise coming up with a very simple and specific piece of code that should work but won't because of this design flaw.  As the old saying goes, &quot;You can't argue with the compiler/interpreter&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other thing is that to have influence over a group, you have to be &lt;a href=&quot;http://www.spring.org.uk/2009/07/how-newcomers-can-influence-established-groups.php&quot; rel=&quot;nofollow&quot;&gt;perceived as a member of the group&lt;/a&gt;.  Even though you've joined the company, people don't perceive you as a member of the group yet.  Thus, it might be better to go along with the established group until they learn to perceive you as one of them.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastEditorUserId="1626" LastEditorDisplayName="" LastEditDate="2011-01-06T01:13:37.253" LastActivityDate="2011-01-06T01:13:37.253" />
  <row Id="34103" PostTypeId="2" ParentId="34095" CreationDate="2011-01-06T01:15:00.510" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;If you agree to take on a project... work on and charge £X per hour - are you obligated to work for free after those 10 days are up and you have still not managed to complete your project due to unanticipated issues?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No.  £X per hour is £X per hour.  Clearly, you've never had complex jobs done on your home or boat.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Inability to estimate means nothing.  Nothing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;£X per hour is £X per hour. Until the job is done or the client says &quot;you're fired.&quot; (or &quot;you're sacked&quot;.  I'm a Yank, so I don't know what they say in the UK.)&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What if you have delivered the project but bugs are found - should you fix these bugs for free if the 10 days are up or should you charge your client?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Depends on the bug.  You &lt;strong&gt;must&lt;/strong&gt; do root cause analysis.  Bad (or incomplete) specification is mostly their problem.  Unanticipated technical wrinkles is par for the course -- they pay.  Dumb coding mistakes is your problem.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;you have to give up and tell your client that you cannot do it anymore? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Ooops.  That's unprofessional.  If you have to give up, you've really made a terrible, terrible mistake.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I realise that this does nothing to build your reputation and relationship with the client but are you obligated to pay back the money paid to you or do you just deliver the half/nearly completed source code and help them find someone else to complete it?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Sigh.  At this point, you've behaved so poorly that nothing much matters.  You should really find another career if you can't follow through on your contracts.  Seriously.  Rethink your life.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Half-completed software is worthless.  No one will &quot;complete it&quot;.  They'll explain that you're an idiot (because you are) throw your code away and start again from scratch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to do the following.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Cut the requirements back to something final, deliverable, and usable.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Create that final, deliverable, usable thing.  Even if it's not the original grand scheme.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Charge for that deliverable, usable thing.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Transition the backlog of undeliverable stuff to someone else.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Code that cannot be used is useless.  Indeed, it's a cost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You and your customer will waste time trying to &quot;transition&quot; the half-completed code to someone else.  Emphasis on &lt;strong&gt;waste&lt;/strong&gt;.  It's easier for most people to start from scratch than to start from half-finished.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-06T01:15:00.510" CommentCount="2" />
  <row Id="34104" PostTypeId="2" ParentId="34086" CreationDate="2011-01-06T01:18:45.950" Score="9" ViewCount="" Body="&lt;p&gt;Even if you're pretty sure that this is a &quot;fundamental design flaw,&quot; remember that you're an outsider.  It could be in there for a good reason.  Or, depending on how old the project is, it could have been put in there for what was a good reason at the time and now it's still around for historical reasons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of &quot;blasting this on the mailing list,&quot; try asking a question.  Something like:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Hey, I just ran into X, and it&#xA;  doesn't make any sense to me.  It&#xA;  seems like the right way to implement&#xA;  this would be Y, but then again I know&#xA;  I'm new here and I don't want to jump&#xA;  to any conclusions.  Is this a mistake&#xA;  in the design, or is there something&#xA;  I'm missing?  Can someone fill me in?&#xA;  Thanks.&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Engineering is one of the few places in the world where humility is still considered a genuine virtue, and asking questions about &quot;obvious problems&quot; this way is a really good way to get good answers and learn new stuff.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2011-01-06T01:18:45.950" CommentCount="4" />
  <row Id="34105" PostTypeId="2" ParentId="32490" CreationDate="2011-01-06T01:32:38.907" Score="0" ViewCount="" Body="&lt;p&gt;Lately I've upgraded to vim.  I like how it highlights keywords in whatever language I'm writing.  Sigh, only when I can get to a real OS and not use notepad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My wife wrote COBOL using edlin.  I thought that was pretty funny.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Such an improvement over the keypunch cards we used to use and the 24 hour turn around from operations just to discover we had a typo.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have coding forms somewhere up in the attic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You had 1's and 0's?  We had to draw a line through our 0s.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you tell the young people today that and they won't believe you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;j.&lt;/p&gt;&#xA;" OwnerUserId="12505" LastActivityDate="2011-01-06T01:32:38.907" CommunityOwnedDate="2011-01-06T01:32:38.907" />
  <row Id="34106" PostTypeId="2" ParentId="34023" CreationDate="2011-01-06T01:49:31.790" Score="1" ViewCount="" Body="&lt;p&gt;This may be an unpopular answer, but if you want to get out of the whole arrangement with this client and leave them the least-pissed-off, give them their money back. You wrote them some software (with a written contract or not), they paid you for it, but it doesn't run in their environment.  As I see it, your primary options are fix it (either for free or at an hourly rate), or give them their money back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That could be cheaper, or at least less-stressful in the long run.  You can part ways amicably.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here in the U.S., if a company bought software from a provider (any provider, even a kid playing software vendor on summer break) and it doesn't run?  That would be an instant lawsuit, and they would win.  Hopefully your society is less litigious, but still, you want to negotiate something reasonable.  Avoiding their phone calls is only going to make the situation worse, in my opinion.  &lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2011-01-06T01:49:31.790" CommunityOwnedDate="2011-01-06T03:20:36.533" />
  <row Id="34107" PostTypeId="2" ParentId="34098" CreationDate="2011-01-06T02:05:39.110" Score="2" ViewCount="" Body="&lt;p&gt;I &lt;em&gt;personally&lt;/em&gt; prefer Ruby to Python, and have found the community--especially on SO--to be very helpful, regardless of its size. There are some very active experts. Also, Ruby has a one-to-one mentoring community via &lt;a href=&quot;http://rubymentor.rubyforge.org/wiki/wiki.pl&quot; rel=&quot;nofollow&quot;&gt;the ruby mentoring project&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Erlang really shines when you need concurrency, but it doesn't seem like that is an issue with your design. &lt;/p&gt;&#xA;" OwnerUserId="6883" LastActivityDate="2011-01-06T02:05:39.110" />
  <row Id="34108" PostTypeId="2" ParentId="34098" CreationDate="2011-01-06T02:11:15.503" Score="3" ViewCount="" Body="&lt;p&gt;While I agree with Steve about Python, I personally prefer Erlang just because I like the syntax and style more than Python. Since both languages can do what you want, it is a matter of preference. Try messing around with both languages to see which feels more natural for you and then go with that one. It doesn't make sense to use a language that you don't like (which is why I can't get into Ruby at all).&lt;/p&gt;&#xA;" OwnerUserId="7427" LastActivityDate="2011-01-06T02:11:15.503" />
  <row Id="34109" PostTypeId="2" ParentId="34023" CreationDate="2011-01-06T02:21:25.453" Score="0" ViewCount="" Body="&lt;p&gt;I hope you learned a lesson or two out of all of this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Works on my machine is never a valid test&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Waterfall development sucks.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="1577" LastActivityDate="2011-01-06T02:21:25.453" CommunityOwnedDate="2011-01-06T03:20:36.533" />
  <row Id="34110" PostTypeId="1" CreationDate="2011-01-06T02:25:41.703" Score="0" ViewCount="102" Body="&lt;p&gt;At my company, the maximum vacation is 3 weeks for everyone but executives.  Therefore I cannot even start negotiating for an increase to 4 weeks.. it's a non-starter because it's &quot;against policy&quot;...  even though I think my experience and value to the company warrant it, and I've gotten 4 weeks at previous jobs.  (I know I could have made a &quot;hard stand&quot; before taking this job, but that's water under the bridge)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any advice?  I was kind of thinking of taking the &quot;you want to be competitive&quot; tack to get them to change their policy but I don't know where to find the kind of data I would need to support that.&lt;/p&gt;&#xA;" OwnerUserId="4526" LastActivityDate="2011-01-06T02:35:32.983" ClosedDate="2011-01-06T03:34:28.003" Title="how to get more vacation time than &quot;policy&quot; allows" Tags="&lt;vacation&gt;" AnswerCount="1" CommentCount="10" />
  <row Id="34111" PostTypeId="2" ParentId="34085" CreationDate="2011-01-06T02:34:15.197" Score="1" ViewCount="" Body="&lt;p&gt;Besides the obvious answer of current OSS kernels (Linux and BSD are the usual suspects), there are some other smaller and easier to read implementations.  A quick googling gave me these:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://savannah.nongnu.org/projects/lwip/&quot; rel=&quot;nofollow&quot;&gt;LwIP&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.sics.se/~adam/uip/index.php/Main_Page&quot; rel=&quot;nofollow&quot;&gt;µIP&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2011-01-06T02:34:15.197" />
  <row Id="34112" PostTypeId="2" ParentId="34110" CreationDate="2011-01-06T02:35:32.983" Score="0" ViewCount="" Body="&lt;p&gt;Is this a one-off vacation you want to take. In that case, have you tried talking to your manager if he would let you take vacation from future vacation time as an exception. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can raise noise about the policy and try to get other employees to complain about, otherwise, just take the vacation and take the pay cut for the week and mention that in your next review if you are indeed a valuable resource your manager should be able to find a way to get you the extra week's pay&lt;/p&gt;&#xA;" OwnerUserId="3755" LastActivityDate="2011-01-06T02:35:32.983" />
  <row Id="34113" PostTypeId="2" ParentId="33731" CreationDate="2011-01-06T02:35:52.080" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;If you're looking for a comprehensive&#xA;C# book, then:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Jon Skeet's '&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1935182471&quot; rel=&quot;nofollow&quot;&gt;C# in&#xA;Depth, Second Edition&lt;/a&gt;' is the best.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;If&#xA;you're looking for a less&#xA;comprehensive C# book that teaches&#xA;you approximately 85% of what you&#xA;need to know about C# to get your job&#xA;done; and takes you around the .NET&#xA;Framework a bit, then:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Andrew&#xA;Troelsen's '&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1430225491&quot; rel=&quot;nofollow&quot;&gt;Pro C# 2010 and the .NET&#xA;4 Platform, Fifth Edition&lt;/a&gt;' is the&#xA;best.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And unlike many others, I think it &lt;em&gt;is&lt;/em&gt; a good idea to pick up a good C# book that captures the zen of the language.&lt;/p&gt;&#xA;" OwnerUserId="1996" LastActivityDate="2011-01-06T02:35:52.080" CommunityOwnedDate="2011-01-06T02:35:52.080" />
  <row Id="34114" PostTypeId="2" ParentId="34098" CreationDate="2011-01-06T02:39:32.480" Score="7" ViewCount="" Body="&lt;p&gt;You should use Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you were experienced with Erlang, or had the help of someone that was, then that could be fine also.  But being new to programming, you should start with a language that has an established community, and the frameworks and tools that come along with that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When it comes to getting things done, language features rarely compete with an established community.  But when you want to bend your mind, play around with Erlang, or Haskell, et al.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2011-01-06T02:39:32.480" />
  <row Id="34115" PostTypeId="2" ParentId="33986" CreationDate="2011-01-06T02:42:40.963" Score="6" ViewCount="" Body="&lt;p&gt;I split devs into 4 different categories. Each with their own pros and cons.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Inhouse IS Developer&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PRO: Long and deep exposure to the business side gives you a greater perspective and makes you &quot;care&quot; about the business value&lt;/li&gt;&#xA;&lt;li&gt;PRO: Lot of different projects, with a stable mix of technologies allows you to become well-versed in the technologies you're using&lt;/li&gt;&#xA;&lt;li&gt;PRO: A long-running team with shared interests and goals&lt;/li&gt;&#xA;&lt;li&gt;PRO: Deep and wide experience with the projects you implement and support make you an expert in them&lt;/li&gt;&#xA;&lt;li&gt;PRO: Small userbases often means you won't have to do the extra 20% (which takes 80% of the time) of polish.&lt;/li&gt;&#xA;&lt;li&gt;PRO: Small userbases means you probably know at least some of your users, and they love you for how much easier you make their life&lt;/li&gt;&#xA;&lt;li&gt;CON: If you're not making the technology decisions, you may not like the standard toolset&lt;/li&gt;&#xA;&lt;li&gt;CON: A lot of projects means you'll never get the chance to implement that 1 killer feature for your pet project&lt;/li&gt;&#xA;&lt;li&gt;CON: Office politics can make some projects difficult&lt;/li&gt;&#xA;&lt;li&gt;CON: Same toolset over and over can lead to stagnation&lt;/li&gt;&#xA;&lt;li&gt;CON: Support often comes with the territory&lt;/li&gt;&#xA;&lt;li&gt;CON: Small userbases that you didn't do the 20% of polish for means more manual operations for you to do&lt;/li&gt;&#xA;&lt;li&gt;CON: Small userbases that are forced to use your product means everyone cares less about quality&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Inhouse product/shrinkwrap development&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PRO: The product is the business; you're directly contributing to the bottom line&lt;/li&gt;&#xA;&lt;li&gt;PRO: Single product, single technology stack means you'll be an expert in it quickly&lt;/li&gt;&#xA;&lt;li&gt;PRO: Long-running team&lt;/li&gt;&#xA;&lt;li&gt;PRO: Single project with wide userbase means you can afford to amortize the cost of  your killer feature across all users&lt;/li&gt;&#xA;&lt;li&gt;CON: That last 20% of polish takes an enormous, disproportionate amount of work&lt;/li&gt;&#xA;&lt;li&gt;CON: If you don't like the project you're on, you don't have a lot of options&lt;/li&gt;&#xA;&lt;li&gt;CON: Stagnation&lt;/li&gt;&#xA;&lt;li&gt;CON: Long release cycles&lt;/li&gt;&#xA;&lt;li&gt;CON: You'll never have a personal relationship with your users&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Freelance Consultant&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PRO: Wide variety of projects and technology stacks&lt;/li&gt;&#xA;&lt;li&gt;PRO: You can refuse certain projects if you don't like them&lt;/li&gt;&#xA;&lt;li&gt;PRO: You're often brought in as a recognized expert and can run the show&lt;/li&gt;&#xA;&lt;li&gt;PRO: Clear exit strategy; finish the project, and move on&lt;/li&gt;&#xA;&lt;li&gt;PRO: Set your own rates, make lots of money while you're working&lt;/li&gt;&#xA;&lt;li&gt;CON: No chance to build relationship with colleagues or users&lt;/li&gt;&#xA;&lt;li&gt;CON: No one cares about your happiness or long-term future; you're a hired gun and treated like one&lt;/li&gt;&#xA;&lt;li&gt;CON: You have to find your own work. Don't find any, no rent money&lt;/li&gt;&#xA;&lt;li&gt;CON: Self employment taxes and the like will eat away a good bit of your extra money&lt;/li&gt;&#xA;&lt;li&gt;CON: Paperwork, more paperwork, and then a bit more&lt;/li&gt;&#xA;&lt;li&gt;CON: You don't know the business, and your client may not be able to explain the business - meaning you will fail no matter what you do&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Agency Consultant&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PRO: They find work, you walk in and get paid&lt;/li&gt;&#xA;&lt;li&gt;PRO: A lot less paperwork than freelancing, with a lot of the same benefits&lt;/li&gt;&#xA;&lt;li&gt;PRO: A network of other developers you can befriend, learn from, and help out&lt;/li&gt;&#xA;&lt;li&gt;CON: Less flexibility than freelancing&lt;/li&gt;&#xA;&lt;li&gt;CON: Less money than freelancing&lt;/li&gt;&#xA;&lt;li&gt;CON: A lot of the other developers you'll work with aren't stellar, and only survive by being on short projects repeatedly&lt;/li&gt;&#xA;&lt;li&gt;CON: The agency emphasis is always on getting the job done as quickly and cheaply as possible - pressuring quality&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="12328" LastActivityDate="2011-01-06T02:42:40.963" />
  <row Id="34116" PostTypeId="1" CreationDate="2011-01-06T02:48:22.037" Score="0" ViewCount="58" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/15928/what-is-agile-methodology&quot;&gt;What is agile methodology?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;What are the principle practices that should be used in Agile Software Development? (eg. Version Control, Bug Tracking)&lt;/p&gt;&#xA;" OwnerUserId="9518" LastActivityDate="2011-01-06T02:48:22.037" ClosedDate="2011-01-06T02:56:05.503" Title="What are the principle practices that should be used in Agile Software Development?" Tags="&lt;agile&gt;" CommentCount="0" />
  <row Id="34117" PostTypeId="2" ParentId="34086" CreationDate="2011-01-06T03:03:25.773" Score="2" ViewCount="" Body="&lt;p&gt;You probably won't like this...but, here goes...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I'm working on fixing some of the bugs as a way to get into the &quot;loop&quot; and become a regular committer to the project. The problem is I think I've uncovered a fundamental design flaw that's causing one of the bugs I'm working on. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No, no you didn't. If you did, you wouldn't be so hesitant about it. The fact that you yourself are not sure about the &quot;fundamental design flaw&quot;, means that you haven't discovered one. When trying to point out somebody else's mistake, it doesn't buy you any friends to use superlatives (like &quot;fundamental&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you &lt;em&gt;may&lt;/em&gt; have discovered is a slightly better design, for the issue you're having. You should probably test it thoroughly, though - since you're new to the project, there's a better than even chance you have no idea what you're talking about.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;But I feel like if I blast this on the mailing list I'm going to come off as arrogant&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Calling it a &quot;fundamental design flaw&quot; will definitely come across as arrogant. For that matter, even pointing out that it &lt;em&gt;may&lt;/em&gt; be a bug isn't the best idea. If you don't &lt;em&gt;know for a fact&lt;/em&gt; (and can back it up) that it's a problem, then you need to humbly ask questions and research until you understand it &lt;em&gt;completely&lt;/em&gt;. Better than whoever you're trying to convince.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;...and some of the discussions I've had about the issue are butting heads with some of the people. How should I go about this?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Stop. This isn't a moral issue, and it's not killing anybody (I assume). If you intend to be a long-term member of the project, you must first earn trust before questioning them. Fix the bugs, do an amazing job of it (by whatever metrics the group values), design a few features, and earn a seat at the table. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then, without pointing fingers or calling anything broken, humbly bring up a suggestion to improve the design to the group. And you better have thought through all the consequences and the solutions to them, or you'll be shot down for being &quot;naive&quot;. Be ready for an argument about why your design is better. Be prepared to lose, and lose gracefully. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your idea truly is better, it'll either be eventually accepted by the group (though perhaps not by the original designer), the group doesn't care, or the group is stupid. In either of the latter cases, why would you want to be a part of the group, anyway?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're capable, the alternative is to just code the damn thing up so bloody brilliantly that they'll tremble in amazement at your coding prowess and have no choice but to accept the elegant simplicity and eternal truth of your design. Developers &lt;em&gt;do&lt;/em&gt; respect competence, but you have to be careful - the punishment for incompetence (or unwarranted arrogance) is rather severe. Since you're asking this question, though, I'm guessing the brilliant and unabashed arrogance route is not really an option. ;)&lt;/p&gt;&#xA;" OwnerUserId="12328" LastActivityDate="2011-01-06T03:03:25.773" />
  <row Id="34118" PostTypeId="2" ParentId="34086" CreationDate="2011-01-06T03:05:55.297" Score="1" ViewCount="" Body="&lt;blockquote&gt;&quot;Hi thanks for welcoming me into your home. As I walk through the door, I want to let everyone in the family know that their baby is ugly and somebody dressed him funny.&quot;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;A bug is a bug, and it's ok to call it that. Saying that it is caused by a &quot;design flaw&quot; is pointing a finger at the guy before you (most likey the &quot;daddy&quot;) and telling him he's an idiot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unnecessary and counterproductive. I suggest:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&quot;In regards to issue #blah, I think I can fix it by doing X Y and Z but I'm not sure how that will impact the rest of the project. Would this be ok?&quot;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Where X Y and Z correct the problem. Let them tell you it was a design flaw; there may be an alternate solution. Or the assumptions behind the 'flaw' may run so deep throughout the project that changing it will fix the bug but break everything else!&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2011-01-06T03:05:55.297" />
  <row Id="34119" PostTypeId="2" ParentId="34028" CreationDate="2011-01-06T03:09:14.483" Score="0" ViewCount="" Body="&lt;p&gt;it's hedging. i never bother, and have had no trouble. the only exception is installing a plugin when the targeted app (IE, FireFox, Visual Studio, etc) is still open&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2011-01-06T03:09:14.483" />
  <row Id="34120" PostTypeId="1" AcceptedAnswerId="34123" CreationDate="2011-01-06T03:15:49.910" Score="9" ViewCount="471" Body="&lt;p&gt;In Dijkstra's &lt;em&gt;Notes on Structured Programming&lt;/em&gt; he talks a lot about the provability of computer programs as abstract entities. As a corollary, he remarks how testing isn't enough. E.g., he points out the fact that it would be impossible to test a multiplication function f(x,y) = x*y for any large values of x and y across the entire ranges of x and y. My question concerns his misc. remarks on &quot;lousy hardware&quot;. I know the essay was written in the 1970s when computer hardware was less reliable, but computers still aren't perfect, so they must make calculation mistakes &lt;em&gt;sometimes&lt;/em&gt;. Does anybody know how often this happens or if there are any statistics on this?&lt;/p&gt;&#xA;" OwnerUserId="12496" LastActivityDate="2011-03-04T00:56:38.230" Title="How often do CPUs make calculation errors?" Tags="&lt;theory&gt;&lt;cpu&gt;" AnswerCount="6" CommentCount="2" FavoriteCount="2" />
  <row Id="34121" PostTypeId="2" ParentId="34023" CreationDate="2011-01-06T03:20:36.533" Score="-1" ViewCount="" Body="&lt;h1&gt;Fix it&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Software that works &lt;em&gt;on your machine&lt;/em&gt; is not good enough; &lt;strong&gt;the client is not using your machine.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If these are not bugs but are changes or enhancements, then tactfully bow out, but suggest someone else who can do the work if you can so you don't leave them stranded.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If these issues are really bugs - and you'd have to go there to prove they aren't - you are obligated to fix them. If you have a contract that says otherwise you can choose not to. Morally, if not legally, I think you are responsible. They paid you to write software that works, not to code bugs ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Expressed/implied warranties are a legal gray area - a nightmare for normal people, a playground for lawyers - but put yourself in their shoes: You hired Bright Bulb Developer to automate a part of your business, gave over a chunk of cash, and it doesn't work as described. Wouldn't you be upset?&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2011-01-06T03:20:36.533" CommunityOwnedDate="2011-01-06T03:20:36.533" />
  <row Id="34122" PostTypeId="1" CreationDate="2011-01-06T03:22:19.527" Score="9" ViewCount="569" Body="&lt;p&gt;Do you know any Key Performance Indicators for Developers?  What should be measured and monitored?&lt;/p&gt;&#xA;" OwnerUserId="10356" LastActivityDate="2011-01-07T21:57:17.983" Title="KPI's for Programmers" Tags="&lt;skills&gt;&lt;great-programmer&gt;&lt;hiring&gt;&lt;performance&gt;&lt;performance-tools&gt;" AnswerCount="8" CommentCount="12" FavoriteCount="6" />
  <row Id="34123" PostTypeId="2" ParentId="34120" CreationDate="2011-01-06T03:25:14.890" Score="7" ViewCount="" Body="&lt;p&gt;Real/Actual errors in a CPU's design aside, I think you are looking for this SO Question: &lt;a href=&quot;http://stackoverflow.com/questions/2580933/cosmic-rays-what-is-the-probability-they-will-affect-a-program&quot;&gt;Cosmic Rays. What is the probability they will affect a program&lt;/a&gt;. I can't get quotes from it because SO is blocked again at work here (&lt;strong&gt;sigh&lt;/strong&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ignoring the above, I seem to recall there was some FPU calculation bugs in early Pentiums, so they certainly are not infallible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have no hard evidence at hand, but my gut tells me you should probably be more concerned about bits of Cache/&lt;a href=&quot;http://lambda-diode.com/opinion/ecc-memory&quot; rel=&quot;nofollow&quot;&gt;RAM&lt;/a&gt;/Disk being corrupt then the calculation being incorrect. &lt;/p&gt;&#xA;" OwnerUserId="2673" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-01-06T03:30:10.113" LastActivityDate="2011-01-06T03:30:10.113" CommentCount="3" />
  <row Id="34124" PostTypeId="2" ParentId="34120" CreationDate="2011-01-06T03:25:46.497" Score="1" ViewCount="" Body="&lt;p&gt;In terms of what you consider the actual &quot;CPU&quot; (execution units, pipeline..ect) it pretty much never happens. There was a known issue with one of the Pentium flavors a while back, but that is the only one that I have ever heard of. Now, if you consider the chips sets that are built into the processors or at least the same packaging such USB controllers, TSEC, DMA controller or  memory controller then there are plenty of errata out there. I doubt there is any sort of statistical data about that though. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2011-01-06T03:45:38.077" LastActivityDate="2011-01-06T03:45:38.077" />
  <row Id="34125" PostTypeId="2" ParentId="34095" CreationDate="2011-01-06T03:29:23.620" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;What are your obligations when charging by the hour vs charging by project? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Essentially the same. Be professional.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If you agree to take on a project, give a rough estimate that it might take 10 days for you to work on and charge £X per hour - are you obligated to work for free after those 10 days are up and you have still not managed to complete your project due to unanticipated issues? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;No - as long as it's roughly 10 days, then you're fine. I would define roughly 10 days as anywhere between 50 - 120 hours at the extreme edges. Anything over 120 hours (a 50% overrun) is pretty much beyond the pale.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Though &quot;unanticipated issues&quot; leaves a lot of vagueness. Experienced professionals anticipate a lot more issues than new developers. However, if the client knows you are a new developer (and know they are getting a significant discount because of it) then there's some wiggle room here.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What if you have delivered the project but bugs are found - should you fix these bugs for free if the 10 days are up or should you charge your client?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Bugs? Yes - you should fix those for free. You're not being paid for 10 days to produce broken code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, again, &quot;bug&quot; is a bit vague. There are show-stopper bugs (like, program doesn't run - obviously your fault) and edge-case bugs (program truncates text on Turkish-localized Windows with Chinese IME enabled - not really reasonable). Most fall somewhere in the middle, but the burden of proof is on you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's also specification bugs - these are the hardest. You'll have to use your judgment as to whether you should have reasonably anticipated, questioned or implied the specification change. Again, I'd put the burden of proof on you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For a 10 day (80 hour) project with a green developer, another 10 - 15 hours of bugfixes wouldn't be too much to ask. Anything over that, I would try to work out payment for - though I'd probably do another 5 to 10 hours for free before firing the client.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Also, for the above project, what should be the result when you start on the project, but after the 10 days for whatever reason you have to give up and tell your client that you cannot do it anymore? I realise that this does nothing to build your reputation and relationship with the client but are you obligated to pay back the money paid to you or do you just deliver the half/nearly completed source code and help them find someone else to complete it?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You give the money back. If you can't finish the project, it's likely you can't judge half-completed. If the client hired you, it's even more likely &lt;em&gt;they&lt;/em&gt; can't judge half-completed. If you can find someone else to finish it, you can subcontract to them - the difference in what they charge you and what you already made is your profit (or loss).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, it's often better to bend to the client and chalk it up as a lesson learned. After a while, you'll be able to spot the &quot;problem clients&quot; and avoid them (or upcharge them) at the beginning. You'll also learn to estimate a bit better, build bugfix costs into your pricing, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a student developer, you do have some leeway. No one is likely to sue you over the pittance you charged for a 10 day project. You'll never get any business from that client (or his friends) again - but, since they hired a student developer, it's likely they only want cheap labor and don't understand what it actually costs to hire a good developer anyway. You're not losing out on much in the future except headaches - though at the cost of a clean conscience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice? Just finish it up - you'll feel better, the client will feel better, and you'll be a better developer and businessman for it. It's not like it's a years worth of work - and you have all your friends at Stackoverflow and Stackexchange to help. ;)&lt;/p&gt;&#xA;" OwnerUserId="12328" LastActivityDate="2011-01-06T03:29:23.620" />
  <row Id="34126" PostTypeId="1" CreationDate="2011-01-06T03:37:22.097" Score="-1" ViewCount="93" Body="&lt;p&gt;I am doing my engineering in computer Science from IIT Delhi . Right now I am in second year and want to apply for summer internship abroad . Does anyone has any link for list of universities offering computer science worldwide( Reputed Ones ) ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I shall be highly obliged .Regards .&lt;/p&gt;&#xA;" OwnerUserId="12509" LastActivityDate="2011-01-06T09:18:38.373" ClosedDate="2011-01-06T09:41:37.010" Title="Get list of universities" Tags="&lt;project&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="34128" PostTypeId="2" ParentId="34122" CreationDate="2011-01-06T03:50:24.010" Score="6" ViewCount="" Body="&lt;p&gt;Assuming you've hired someone smart, they should be getting things done.  Beyond that, when you measure employees (especially programmers), you get exactly what you measure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, monitor that projects are getting done within the standards of the team.&lt;/p&gt;&#xA;" OwnerUserId="4082" LastActivityDate="2011-01-06T03:50:24.010" CommentCount="1" />
  <row Id="34129" PostTypeId="2" ParentId="34122" CreationDate="2011-01-06T03:53:56.303" Score="20" ViewCount="" Body="&lt;p&gt;Consider the following truth: you will get exactly what you measure and monitor.  With that in mind:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Terrible things to measure&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lines of code - Elegant code has a concise nature to it. Lines of code encourages bloat, copy and paste, or even worse, code for the sake of code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Time-to-solution - Code done quickly contains lots of bugs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bug fixes - This goes with 'time to solution'. Don't reward programmers for writing slopping code, and especially don't reward them for fixing the problems they caused in the first place!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What, IMHO, you should measure&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Impact. The only thing that matters is what your developers &lt;em&gt;do&lt;/em&gt;. Did you write a tool that improves efficiency by 10%? What about automating a task that used to take 3 hours? What about refactoring that gnarly library so it is now easier to use for everyone on the team?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should measure what happens &lt;em&gt;after&lt;/em&gt; code has been written, and how valuable the contribution is towards your business/company's goals. Note it is possible to have a negative impact.&lt;/p&gt;&#xA;" OwnerUserId="786" LastActivityDate="2011-01-06T03:53:56.303" CommentCount="3" />
  <row Id="34131" PostTypeId="1" AcceptedAnswerId="34156" CreationDate="2011-01-06T04:00:58.120" Score="3" ViewCount="366" Body="&lt;p&gt;I am happily working on a contract for a good, solid company. This client is very happy with my work and has asked me to consider converting to full-time employment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My problem is the headhunter. This firm has not been entirely upfront with me throughout this contract. A mistake was made by the firm that benched me for several days, costing me those days' pay. Inadequate healthcare coverage left me with a bill of several thousand dollars after my wife's brief hospital stay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My feeling is that I did the work that earned me the invitation to work full-time for this company. Asking for 1/3 of the commission I figure they're going to receive would nicely counterbalance the inequities &lt;i&gt;that I perceive&lt;/i&gt; were dealt to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this an (un)reasonable or (in)appropriate request? &lt;/p&gt;&#xA;" OwnerUserId="7643" LastActivityDate="2011-01-06T13:21:45.027" ClosedDate="2011-01-06T13:27:53.787" Title="My Client wants to convert me from a Contractor to an Employee. I'd like part of the Headhunter's fee. Is this fair?" Tags="&lt;employment&gt;&lt;contracting&gt;" AnswerCount="4" CommentCount="5" />
  <row Id="34132" PostTypeId="1" CreationDate="2011-01-06T04:05:16.710" Score="0" ViewCount="252" Body="&lt;p&gt;This is a genuine question motivated by &lt;a href=&quot;http://programmers.stackexchange.com/questions/27231/ideal-operating-system&quot;&gt;Ideal Operating System&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I moved from DOS to Linux in the late 90s it was an eye opener for me. Long file names, arbitrarily many extensions etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I look at Linux and Unix and see all sorts of issues. Here are things I see which could be fixed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Too much depends on root, and rootly powers cannot be voluntarily delegated over several users. (I would love to give up my power to manager printers and delegate the job to another account)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;File permissions are very limited, and there is not much metadata to go with files. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;everything is a file&quot; metaphor is not true, Plan 9 gets it right(er).&lt;/p&gt;&#xA;" OwnerUserId="9829" LastEditorUserId="9829" LastEditorDisplayName="" LastEditDate="2011-01-06T04:17:07.367" LastActivityDate="2011-01-06T05:31:49.133" ClosedDate="2011-01-06T09:08:29.117" Title="What is wrong with Unix/linux" Tags="&lt;design&gt;&lt;requirements&gt;&lt;operating-systems&gt;" AnswerCount="1" CommentCount="5" />
  <row Id="34133" PostTypeId="2" ParentId="34039" CreationDate="2011-01-06T04:05:35.603" Score="3" ViewCount="" Body="&lt;p&gt;Here are some small things that may polish your resume, etc. so that it's more familiar to US readers. Sorry if they seem obvious. Fair Warning: I'm Canadian (but I work with 4 Australians and I've hired many immigrants).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;US employers will likely be unfamiliar with universities and companies in Australia. I suggest that you provide some background on your resume - even just a single line - describing the reputation or merits of the company or organization. I've found when reading resumes from immigrants that I have no clue if the school or the company is top notch or otherwise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;US English is a bit different from Australian English. (Notice I didn't say it's different &lt;em&gt;to&lt;/em&gt; Australian English; that's one of those small differences). For the most part that's not important. However, you might have a native US English speaker read over your resume and Americanize any unfamiliar terms or grammar, just to make it seem more familiar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many Americans (and Canadians) love hearing the Australian accent, so I wouldn't worry about the above when speaking. Besides, it's you. You wouldn't want to hide that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Spell check the resume using US English no matter how odd it looks to you. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A cover letter, explaining why you are interested in the position and highlighting your qualifications for it, is recommended when submitting a resume. (Maybe it is in Aus too, I have no idea.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you provide phone numbers to contact your references, include the international dialing (there's that US spelling!) prefix from the US. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Arrange with any references that may be contacted by phone to receive calls at inconvenient hours. You don't want a grumpy personal reference answering your potential employer's call at 5:00 AM. The time difference is trying as there's little or no overlap in the business day, especially in the eastern US. Fortunately, the end of the US business day is morning in Australia. &lt;/p&gt;&#xA;" OwnerUserId="12508" LastActivityDate="2011-01-06T04:05:35.603" />
  <row Id="34134" PostTypeId="1" AcceptedAnswerId="34158" CreationDate="2011-01-06T04:30:19.583" Score="1" ViewCount="154" Body="&lt;p&gt;Suppose I have a controller class with a bunch of properties.  Each time a property is changed, I would like to update the model.  Now also suppose that I use the command pattern to perform model updates.  Is it common to use command classes within property get and sets of the controller class or is there a better way?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is an example of what I am currently using:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class MyController {&#xA;  private int _myInt;&#xA;  public int MyInt {&#xA;    get { return _myInt; }&#xA;    set {&#xA;      MyCommand cmd = new MyCommand();&#xA;      cmd.Argument = _myInt;&#xA;      cmd.Execute();  // Command object updates the model&#xA;    }&#xA;  } &#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="11978" LastActivityDate="2011-01-06T05:05:33.500" Title="Is is common to use the command pattern for property get/sets?" Tags="&lt;best-practices&gt;&lt;c#&gt;&lt;design-patterns&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="34135" PostTypeId="2" ParentId="34131" CreationDate="2011-01-06T04:32:08.050" Score="1" ViewCount="" Body="&lt;p&gt;You might see it as fair, I doubt they will. Headhunters don't seem to care much about the employees, they are just commodities to be traded. Normally when you are on the bench you should be paid.&lt;/p&gt;&#xA;" OwnerUserId="4335" LastActivityDate="2011-01-06T04:32:08.050" CommentCount="1" />
  <row Id="34136" PostTypeId="2" ParentId="33968" CreationDate="2011-01-06T04:36:06.933" Score="1" ViewCount="" Body="&lt;p&gt;A good code review is about things that require you to understand the language - appropriate use of the language, APIs and libraries, style, variable names etc. - and about how well the code solves the problem - good comments, proper architecture, relevant design patterns, considers all the error cases, etc. When you first start doing code reviews you tend to concentrate on the former. They are easier to see and easier to pick on. (e.g. I don't like your variable names. You should use XXXX style names.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code review becomes more valuable when there is more focus on how well the code solves problems. Since you can't provide as much value in the first area now, concentrate on asking questions and offering advice about the solution to the problem, not on how it's made.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course there is overlap between the two. Knowing VB.NET would let you provide advice on why a certain design pattern isn't a good choice in a particular situation for example.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Above all, be humble at this stage. Changing process is tough. Even if you were a VB.NET guru the change likely wouldn't be easy. People who haven't used code review don't like it at first. Having others look at your code is a tough experience. It takes time to see the value, and patience all around. It's a great process when you get buy-in but it will take time.&lt;/p&gt;&#xA;" OwnerUserId="12508" LastActivityDate="2011-01-06T04:36:06.933" />
  <row Id="34137" PostTypeId="2" ParentId="34134" CreationDate="2011-01-06T04:38:53.737" Score="4" ViewCount="" Body="&lt;p&gt;Usually one tries to keep property setters &quot;stupid&quot;, that is, perform basic field updates of its own class and avoid doing too much extra work which can potentially fail (throw an exception).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need extra work to be done, better make the setter to a method.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2011-01-06T04:38:53.737" />
  <row Id="34138" PostTypeId="2" ParentId="34131" CreationDate="2011-01-06T04:54:52.553" Score="1" ViewCount="" Body="&lt;p&gt;I don't think you are going to go anywhere with this issue. The cheapest solution will be for the company to wait out the period (during which if they hire you, they pay the head hunter) and then hire you on when that period expires. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2011-01-06T04:54:52.553" />
  <row Id="34139" PostTypeId="1" CreationDate="2010-02-26T22:43:55.140" Score="16" ViewCount="416" Body="&lt;p&gt;During a previous consulting position, the developers where told to check-in code on a nightly basis, regardless if it complied or was complete. Managers were afraid of losing any code and said now we only lose one day at most.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The place I'm currently it is investigating whether to implement this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone have any pros/cons on this? Should developers be forced into check-ins?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regards,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Michael&lt;/p&gt;&#xA;" OwnerUserId="19500" LastActivityDate="2011-01-06T15:14:37.383" CommunityOwnedDate="2011-01-06T10:40:08.880" Title="Should developers be forced to check-in before leaving work each day, even if the code does not compile?" Tags="&lt;version-control&gt;&lt;source-code&gt;&lt;work-environment&gt;&lt;checkin&gt;" AnswerCount="25" CommentCount="4" />
  <row Id="34140" PostTypeId="2" ParentId="34139" CreationDate="2010-02-26T22:46:15.767" Score="38" ViewCount="" Body="&lt;p&gt;Good luck trying to &quot;force&quot; developers into anything.  The key is to make it the easiest path and let their laziness do the work for you!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's usually a bad idea to check non-working code into a repository... the next guy that does a checkout gets a broken build.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If something is happening to destroy developers' work in progress, perhaps that is the problem that should be corrected.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using a distributed versioning system that allows each developer to commit on their local machine and then handles all the merging between developers/versions might be a better solution.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-06T04:57:02.540" CommunityOwnedDate="2011-01-06T10:40:08.880" CommentCount="4" />
  <row Id="34141" PostTypeId="2" ParentId="34139" CreationDate="2010-02-26T22:47:01.793" Score="3" ViewCount="" Body="&lt;p&gt;Yes, but if it's not compilable, it shouldn't be committed to the trunk. It would be annoying if an employee kept checking in broken code that affected every other developer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe a branch per employee, that is specifcally for an end of day checkin, would be better.&lt;/p&gt;&#xA;" OwnerUserId="3885" LastActivityDate="2011-01-06T04:57:02.540" CommunityOwnedDate="2011-01-06T10:40:08.880" />
  <row Id="34142" PostTypeId="2" ParentId="34139" CreationDate="2010-02-26T22:47:59.653" Score="38" ViewCount="" Body="&lt;p&gt;That has got to be the dumbest bit of dumb management I've ever heard of, if they really mean 'checked into the shared trunk.'&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reasonable solutions:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Do work in task branches, and indeed check into those early and often.&lt;/li&gt;&#xA;&lt;li&gt;Run backups on the developer machines.&lt;/li&gt;&#xA;&lt;li&gt;Keep development trees on a shared file system and run backups on that.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1403" LastActivityDate="2011-01-06T04:57:02.540" CommunityOwnedDate="2011-01-06T10:40:08.880" CommentCount="2" />
  <row Id="34143" PostTypeId="2" ParentId="34139" CreationDate="2010-02-26T22:48:15.363" Score="4" ViewCount="" Body="&lt;p&gt;No. Check-ins should never break a build. There are other ways to ensure code doesn't get lost (various backup strategies).&lt;/p&gt;&#xA;" OwnerUserId="18554" LastActivityDate="2011-01-06T04:57:02.540" CommunityOwnedDate="2011-01-06T10:40:08.880" CommentCount="2" />
  <row Id="34144" PostTypeId="2" ParentId="34139" CreationDate="2010-02-26T22:48:24.373" Score="4" ViewCount="" Body="&lt;p&gt;Personally I prefer to check in at least once a day.  It's not always at the end of the day though.  Sometimes I finish working on something and check it in with an hour left in the day.  It's not enough time to get going on something else, so I get started and get it to a check-innable state the next day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Uncompilable code in the repository seems like it's asking for trouble.  What happens when someone checks that out?  They get code that doesn't work and they're not sure if it's there machine, or the code, or if they did something wrong.&lt;/p&gt;&#xA;" OwnerUserId="13805" LastActivityDate="2011-01-06T04:57:02.540" CommunityOwnedDate="2011-01-06T10:40:08.880" CommentCount="1" />
  <row Id="34145" PostTypeId="2" ParentId="34139" CreationDate="2010-02-26T22:52:58.053" Score="12" ViewCount="" Body="&lt;p&gt;No, never check-in broken code, that will just get in the way of the guy coming in early next morning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But delevopers &lt;em&gt;should&lt;/em&gt; be encouraged to develop in iterations so small that they can check-in working (although maybe inactive / unreachable) code a couple of times a day. Then checking in working code before leaving is no problem.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-06T04:57:02.540" CommunityOwnedDate="2011-01-06T10:40:08.880" />
  <row Id="34146" PostTypeId="2" ParentId="34139" CreationDate="2010-02-26T22:53:58.080" Score="1" ViewCount="" Body="&lt;p&gt;I think management is wrong to say &lt;em&gt;even if it doesn't compile&lt;/em&gt;.  You should check in every day &lt;em&gt;and it should compile&lt;/em&gt;.  You really shouldn't have multiple days worth of work that isn't in the repository somewhere. But you also shouldn't be flying along writing code that doesn't copmpile for days at a time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you make an effort to conform with both of these rules, you will learn to work in small pieces and have a better handle on what you have done and how close you are to your goal.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-06T04:57:02.540" CommunityOwnedDate="2011-01-06T10:40:08.880" />
  <row Id="34147" PostTypeId="2" ParentId="34139" CreationDate="2010-02-26T22:56:10.523" Score="0" ViewCount="" Body="&lt;p&gt;That's definitely a good idea if it compiles and passes the unit test. Otherwise no.&lt;/p&gt;&#xA;" OwnerUserId="9546" LastActivityDate="2011-01-06T04:57:02.540" CommunityOwnedDate="2011-01-06T10:40:08.880" />
  <row Id="34148" PostTypeId="2" ParentId="34139" CreationDate="2010-02-26T22:57:53.763" Score="6" ViewCount="" Body="&lt;p&gt;Code that is not yet ready for inclusion in the 'trunk' should be placed in a shelveset.  (TFS has direct support for this and I'm sure other source code control systems do too.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not only should checked-in code compile, it should pass all unit tests before inclusion in the 'trunk'.&lt;/p&gt;&#xA;" OwnerUserId="6706" LastActivityDate="2011-01-06T04:57:02.540" CommunityOwnedDate="2011-01-06T10:40:08.880" />
  <row Id="34149" PostTypeId="2" ParentId="34139" CreationDate="2010-02-26T23:08:28.817" Score="1" ViewCount="" Body="&lt;p&gt;Check in compilable code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Shelve the non-compilable code.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-06T04:57:02.540" CommunityOwnedDate="2011-01-06T10:40:08.880" />
  <row Id="34150" PostTypeId="2" ParentId="34139" CreationDate="2010-03-03T17:35:29.480" Score="1" ViewCount="" Body="&lt;p&gt;This rule could even make productivity go down. Imagine you're working on something and you just finished a chunk that works and you're happy for that to be checked in (it won't break the build, etc.). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You then could start working on the next bit, but it's almost 5:30PM and you know that you won't be able to get the new code working before 6PM when you leave and would have to check in your unfinished code (which breaks the build, and you don't want to do that).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you stop coding and go and do something else. It could be something useful, or maybe you're just browsing the web, checking email, etc. Therefore you could see that half hour as 'lost'. There is a good chance it happens multiple times a week, and among other developers in the office as well. So you could potentially lose hours of coding time a week, and surely the management wouldn't be too happy with that either...&lt;/p&gt;&#xA;" OwnerUserId="15142" LastActivityDate="2011-01-06T04:57:02.540" CommunityOwnedDate="2011-01-06T10:40:08.880" />
  <row Id="34151" PostTypeId="2" ParentId="34139" CreationDate="2010-03-03T17:43:41.323" Score="0" ViewCount="" Body="&lt;p&gt;This is a solution to problems that aren't related to programming tasks. You're either solving an issue where data has been lost due to machine failures or where work has been inaccessible because someone left for vacation and their machine was locked. Neither of those problems should be addressed by breaking how source control works.&lt;/p&gt;&#xA;" OwnerUserId="7926" LastActivityDate="2011-01-06T04:57:02.540" CommunityOwnedDate="2011-01-06T10:40:08.880" />
  <row Id="34152" PostTypeId="2" ParentId="34139" CreationDate="2010-03-03T17:50:22.027" Score="0" ViewCount="" Body="&lt;p&gt;I guess it's good that they know what version control is, but they're mistaking it for a backup solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if developers did this, and it didn't cause complete mayhem (big IFs!), what about all the non-code work that developers do?  I've got lots of other things (local config files, browser bookmarks, etc.) that would also be lost without backups.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-06T04:57:02.540" CommunityOwnedDate="2011-01-06T10:40:08.880" />
  <row Id="34153" PostTypeId="2" ParentId="34139" CreationDate="2011-01-05T05:48:41.280" Score="2" ViewCount="" Body="&lt;p&gt;Shelving your code at close of business is a better option than checking in the code.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-06T04:57:02.540" CommunityOwnedDate="2011-01-06T10:40:08.880" CommentCount="1" />
  <row Id="34154" PostTypeId="1" CreationDate="2011-01-06T04:57:27.103" Score="14" ViewCount="215" Body="&lt;p&gt;I have been a server-side programmer for most of my career and have only recently started spending more time on web development. I am amazed at the number of things I need to master in order to write a decent web application. Just to list down a few tools/technologies I need to learn, &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Server side programming language (Java/JSP, ASP, PHP, Ruby or something else)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A decent web framework (for any medium to big size application). &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;HTML &amp;amp; CSS&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Javascript&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Javascript library (JQuery/ExtJS etc. primarily for AJAX). Good to know even if not &#xA;necessary.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;At least a basic knowledge of web design - layouts, colors, fonts etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A good understanding of web security.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;A good understanding of Performance/scalability issues.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Testing, browser compatibility issues etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The list goes on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, my question to seasoned web developers is - How do you guys manage to learn and keep yourself updated on so many things? While developing a web application, how do you handle the complexities involved in these areas and yet manage to write an application that is well designed, user friendly, secure, performant and scalable. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a web developer, does one have to be a jack of all trades or should one specialize in one or two areas and leave the rest to other members of the team ? &lt;/p&gt;&#xA;" OwnerUserId="2861" LastActivityDate="2011-01-06T19:32:01.227" Title="How does one rein in the complexities of web development ?" Tags="&lt;learning&gt;&lt;web-development&gt;&lt;complexity&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="6" />
  <row Id="34155" PostTypeId="2" ParentId="26137" CreationDate="2011-01-06T04:58:20.593" Score="0" ViewCount="" Body="&lt;p&gt;I am currently taking Business IT Foundation Degree course which invloves SDLC and its my first year.  I will be going out in the industry for the second year and I would just like to know some facts before launching out. I have been asked to create a system to enable the company to manage their staff and also to create a windows based system where users can register, view their do details and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am required to create:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Several UML use case diagrams &#xA;A conceptual class Diagram &#xA;Test cases and test logs&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These have to been done for the windows based system.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My concern is that I am not sure what a windows based system is and secondly I am having difficulties creating the diagrams as I am not familiar with them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Could anyone be kind enough to explain what they are and how I go about doing them please?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you.&lt;/p&gt;&#xA;" OwnerUserId="12514" LastActivityDate="2011-01-06T04:58:20.593" CommentCount="1" />
  <row Id="34156" PostTypeId="2" ParentId="34131" CreationDate="2011-01-06T05:00:06.260" Score="13" ViewCount="" Body="&lt;p&gt;Don't try to link yourself with the headhunter's fee. You &quot;do the work&quot; whenever you land a job offer, whether contract-to-full-time conversion, or simply through interviewing.  That's not what the headhunters fee is for, and it doesn't mean you have any more &quot;right&quot; to it, so don't ask for a cut.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you are looking for is simply a &lt;strong&gt;signing bonus&lt;/strong&gt;, so ask for one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it's important to the company to acquire you full-time, and they don't have the budget to pay both you and the headhunter, then they will have to negotiate it. But don't get yourself in the middle of that.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2011-01-06T05:00:06.260" />
  <row Id="34157" PostTypeId="2" ParentId="34154" CreationDate="2011-01-06T05:05:26.713" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;How do you guys manage to learn and keep yourself updated on so many things?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Tip 1&lt;/strong&gt;. Keep an eye open on all the things that are happening out there. Listen to what people are talking about, check things, read articles and blogs, bookmark what is important, learn, experiment, stay naturally curious about everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Tip 2&lt;/strong&gt;. Absolutely have fun in the process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Tip 3&lt;/strong&gt;. As somebody pointed out on SO once, the things you have listed relate to the &lt;em&gt;collective knowledge&lt;/em&gt; of many developers. Don't expect to know it all in perfection, it's too much for one single mind to handle. Take what you need and know where to find the rest.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;As a web developer, does one have to be a jack of all trades or should one specialize&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It is better to be well versed in different areas. What is special about web development is that it suddenly unites all aspects of the product development in one single place in single hands. You inevitably have to be aware of lots of stuff in order to make things tick. But seriously, it is so much joy to have your fingers everywhere!&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2011-01-06T05:05:26.713" />
  <row Id="34158" PostTypeId="2" ParentId="34134" CreationDate="2011-01-06T05:05:33.500" Score="5" ViewCount="" Body="&lt;p&gt;I would think it's more common to have property value changes raise an event. Then, the model or whatever object is in charge of updating the model can subscribe to it and perform the updates that way. Though, why is this property on the controller?&lt;/p&gt;&#xA;" OwnerUserId="4949" LastActivityDate="2011-01-06T05:05:33.500" />
  <row Id="34159" PostTypeId="2" ParentId="33890" CreationDate="2011-01-06T05:25:34.083" Score="0" ViewCount="" Body="&lt;p&gt;After extensive research, I've decided to answer my own question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've found Resin + Quercus to be under-developed, and poorly supported.  Browsing through their &lt;a href=&quot;http://bugs.caucho.com/view_all_bug_page.php&quot; rel=&quot;nofollow&quot;&gt;issue tracker&lt;/a&gt;, there are clearly year old issues that are still marked as 'new' with no acknowledgement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, although Quercus is OSS, Caucho has &lt;a href=&quot;http://forum.caucho.com/showthread.php?t=6066&quot; rel=&quot;nofollow&quot;&gt;expressed that no community code/patches will be accepted&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I believe that the minor benefits that one might get from using Quercus PHP would be extremely outweighed by the lack of support and compatibility with production PHP setups.&lt;/p&gt;&#xA;" OwnerUserId="7048" LastActivityDate="2011-01-06T05:25:34.083" CommentCount="5" />
  <row Id="34160" PostTypeId="2" ParentId="34154" CreationDate="2011-01-06T05:30:50.757" Score="8" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Server side programming language (Java/JSP, ASP, PHP, Ruby or something else)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Use a framework.  Django, for example.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A decent web framework (for any medium to big size application).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Not &quot;medium to big&quot;.  Use a framework for &lt;em&gt;everything&lt;/em&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;HTML &amp;amp; CSS&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It is what it is.  Learn it.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Javascript&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Use libraries and frameworks as much as possible.  Write less, reuse more.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Javascript library (JQuery/ExtJS etc. primarily for AJAX). Good to know even if not necessary.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Correct.  Use a library.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Use FLEX.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;At least a basic knowledge of web design - layouts, colors, fonts etc.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Copy existing sites.  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A good understanding of web security.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Read www.owasp.org carefully.  And. Use a framework that does this.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;A good understanding of Performance/scalability issues.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Use Apache.  Use a framework that handles this.  Read Schlossnagle's Scalable Internet Architectures.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Testing, browser compatibility issues etc.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Frameworks.  Libraries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's a trick to this.  Use as many libraries and frameworks as you can.  The web has been around for years.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Stand on the shoulders of giants.  Please.  You don't need to reinvent all of this.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastEditorUserId="5834" LastEditorDisplayName="" LastEditDate="2011-01-06T17:02:37.357" LastActivityDate="2011-01-06T17:02:37.357" CommentCount="1" />
  <row Id="34161" PostTypeId="2" ParentId="34132" CreationDate="2011-01-06T05:31:49.133" Score="4" ViewCount="" Body="&lt;p&gt;I think you're missing something.  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I would love to give up my power to manager printers and delegate the job to another account.  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You can, simply edit &lt;code&gt;/etc/cups/cupsd.conf&lt;/code&gt; and set &lt;code&gt;SystemGroup lpadmin&lt;/code&gt; (or any other group for that matter) then all users in that group will be able to use the web interface.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;File permissions are very limited, and there is not much metadata to go with files.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Huh? what's wrong with &lt;a href=&quot;http://www.ghacks.net/2010/01/28/further-control-of-linux-files-with-acl/&quot; rel=&quot;nofollow&quot;&gt;ACL&lt;/a&gt; for permissions and &lt;a href=&quot;http://en.wikipedia.org/wiki/Extended_file_attributes&quot; rel=&quot;nofollow&quot;&gt;xattr&lt;/a&gt; for extra metadata?&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The &quot;everything is a file&quot; metaphor is not true, Plan 9 gets it right(er).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;While I have no idea how Plan 9 does it, you can access almost everything a process is using as a file under proc (although I might be missing your point) :&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;  -&amp;gt; ls /proc/`pidof gkrellm`                                                                                                      &#xA;attr    clear_refs  coredump_filter  environ  fdinfo  maps       mounts      numa_maps  oom_score_adj  root   stat    syscall&#xA;auxv    cmdline     cpuset           exe      io      mem        mountstats  oom_adj    pagemap        sched  statm   task&#xA;cgroup  comm        cwd              fd       limits  mountinfo  net         oom_score  personality    smaps  status  wchan&#xA;&#xA;&#xA;  -&amp;gt; l /proc/`pidof gkrellm`/fd                                                                                                   &#xA;total 0&#xA;lr-x------ 1 oneofone 64 Jan  6 07:17 0 -&amp;gt; pipe:[33742047]&#xA;l-wx------ 1 oneofone 64 Jan  6 07:17 1 -&amp;gt; /home/oneofone/.xsession-errors&#xA;lrwx------ 1 oneofone 64 Jan  6 07:17 10 -&amp;gt; /var/lock/gkrellm/LCK..1000_:0&#xA;lrwx------ 1 oneofone 64 Jan  6 07:17 11 -&amp;gt; socket:[33742361]&#xA;lr-x------ 1 oneofone 64 Jan  6 07:17 12 -&amp;gt; /proc/stat&#xA;lr-x------ 1 oneofone 64 Jan  6 07:17 14 -&amp;gt; /proc/28565/net/route&#xA;l-wx------ 1 oneofone 64 Jan  6 07:17 2 -&amp;gt; /home/oneofone/.xsession-errors&#xA;lrwx------ 1 oneofone 64 Jan  6 07:17 3 -&amp;gt; socket:[33742162]&#xA;lr-x------ 1 oneofone 64 Jan  6 07:17 4 -&amp;gt; pipe:[33742166]&#xA;l-wx------ 1 oneofone 64 Jan  6 07:17 5 -&amp;gt; pipe:[33742166]&#xA;lr-x------ 1 oneofone 64 Jan  6 07:17 6 -&amp;gt; /proc/diskstats&#xA;lr-x------ 1 oneofone 64 Jan  6 07:17 7 -&amp;gt; /dev/urandom&#xA;lr-x------ 1 oneofone 64 Jan  6 07:17 8 -&amp;gt; /proc/28565/net/dev&#xA;lr-x------ 1 oneofone 64 Jan  6 07:17 9 -&amp;gt; /proc/vmstat&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="8310" LastActivityDate="2011-01-06T05:31:49.133" />
  <row Id="34162" PostTypeId="2" ParentId="34120" CreationDate="2011-01-06T05:59:53.070" Score="3" ViewCount="" Body="&lt;p&gt;Back when I worked for a hardware vendor it was claimed that no CPU ever built was bugfree. And that is just logic bugs. Usually the manufacturer finds most of them and either respins the chip, or finds BIOS settings that work around them. But in addition to the fact the stuff like cosmic rays occasionally flip a bit in memory (and memory usually has parity bits or SECDED circuitry to save your bacon), there is always a finite chance that a bit will be read incorrectly. Note that bits aren't real logical zeroes and ones,but noisy things like voltages and currents , and given finite noise in the system there is always the chance that a wrong bit will be read. In the old days (as a app programmer), I found a few HW bugs -both of the bad logic kind, and of the unit X in CPU Y is occasionally giving me a bad result type, time to get the HW guys to replace a chip variety. Actual circuits do drift with time and use, and if yours is getting ready to fail, you could start picking up bit errors, especially if you are overclocking, or otherwise exceeding the recommended operating range.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is a real issue for supercomputing, where computations invlolving 1e18 or more floating point operations are contemplated.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2011-01-06T05:59:53.070" />
  <row Id="34163" PostTypeId="2" ParentId="34120" CreationDate="2011-01-06T06:02:29.827" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;so they must make calculation mistakes sometimes.&lt;/em&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Generally, microprocessors internally execute something called &lt;a href=&quot;http://en.wikipedia.org/wiki/Microcode&quot; rel=&quot;nofollow&quot;&gt;microcode&lt;/a&gt; which is itself a kind of machine language to tell the internal registers what to do. A bug in the microcode - which was the cause of the pentium fdiv error - can produce the mistakes you are looking for. I haven't been involved in CPU design for a very long time.&lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2011-01-06T06:02:29.827" />
  <row Id="34164" PostTypeId="2" ParentId="34122" CreationDate="2011-01-06T06:10:45.123" Score="13" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/a0bTh.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="12354" LastActivityDate="2011-01-06T06:10:45.123" CommentCount="3" />
  <row Id="34165" PostTypeId="2" ParentId="21575" CreationDate="2011-01-06T06:20:46.300" Score="1" ViewCount="" Body="&lt;p&gt;Make it part of your process,  I call it &quot;extreme refactoring&quot; and it's going to be big! ;)  Just do stuff quickly and when enough new features has been added that there's scar tissue, refactor it. Continually ask yourself &quot;Now if  I had started from scratch, how would I have done it&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People who think they can design and think about everything up front is mostly fooling themselves, you (and your client) always learn things as you go along. Use those lessons.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you you're a good programmer you'll be able to refactor  pretty quickly and as you do it continually the code will start take it's &quot;proper form&quot;, meaning it will become more flexible with less  dependencies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Clients might be miffed if they knew you were &quot;wasting time&quot; reworking stuff so it helps not asking/telling and being really quick about it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code developed this way will save you loads of time in the end and will make it increasingly easier to add new features. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd also say that one of the biggest reasons for bad code is the fear some programmers have on doing larger structural refactoring, and the longer you wait the worse it gets.&lt;/p&gt;&#xA;" OwnerUserId="12354" LastEditorUserId="12354" LastEditorDisplayName="" LastEditDate="2011-01-06T06:29:25.857" LastActivityDate="2011-01-06T06:29:25.857" CommunityOwnedDate="2011-03-03T13:15:32.770" />
  <row Id="34166" PostTypeId="1" AcceptedAnswerId="34167" CreationDate="2011-01-06T06:23:00.173" Score="1" ViewCount="95" Body="&lt;p&gt;Does anyone know the process of becoming a microsoft partner for an organisation. What the requirements and process are?&lt;/p&gt;&#xA;" OwnerUserId="11161" LastActivityDate="2011-01-06T06:31:56.913" Title="Becoming a microsoft partner organisation" Tags="&lt;microsoft&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="34167" PostTypeId="2" ParentId="34166" CreationDate="2011-01-06T06:31:56.913" Score="1" ViewCount="" Body="&lt;p&gt;I became a Microsoft Partner (atleast I think so, I get the newsletter :) by filling in  some online survery. Then I got to buy Visual Studio and some other tools really cheaply (like $500) so that was nice, not sure if it was some special offer though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;https://partner.microsoft.com/40140448&quot; rel=&quot;nofollow&quot;&gt;https://partner.microsoft.com/40140448&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="12354" LastActivityDate="2011-01-06T06:31:56.913" />
  <row Id="34168" PostTypeId="2" ParentId="34073" CreationDate="2011-01-06T06:32:47.040" Score="2" ViewCount="" Body="&lt;p&gt;Reassignment of &lt;strong&gt;primary keys&lt;/strong&gt; is one thing, reassignment of &lt;strong&gt;identifying credentials&lt;/strong&gt; is another.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before you start worrying about this, you should check to see if you are using any &lt;strong&gt;identifying credentials&lt;/strong&gt; as primary keys in your data when an artificial key should have been used instead.  Email addresses are often (relatively) short-lived, and usually private, and as such, you shouldn't be designing a system that makes a record tightly, permanently tied to a single email address.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usernames are a little bit different, because in the case of URLs where they are often used and bookmarked, (Twitter, Flickr, Facebook, Wikipedia, etc.) they actually become a type of &lt;strong&gt;foreign key&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This problem is commonly addressed through a defined process, and could be called something like &quot;&lt;strong&gt;User Usurpation&lt;/strong&gt;&quot;.  The process usually goes something like this:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Define inactive/active accounts.  Active accounts cannot be reassigned.&lt;/li&gt;&#xA;&lt;li&gt;Attempt to send a message to the owner of the inactive account.&lt;/li&gt;&#xA;&lt;li&gt;If no response or a release response is received, the &lt;strong&gt;account is reassigned&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;[Optional] Add a redirect from the old account name to the new one (Wikipedia does this).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;It's common now to see friendly usernames instead of numeric IDs in URLs and links generated by an app's UI.  Make no mistake though, even in Twitter where it often seems that they've stored the plain-text username instead of a private primary key to the user account, this is just what you see on the surface.  People change Twitter usernames all the time (making the old one available) and it would result in a whole lot of corrupted links if they weren't on top of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, if you've responsibly designed your system, you should have no trouble reassigning in the case of fraud.  Ideally you'd be able to reassign for arbitrary reasons, as well.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastActivityDate="2011-01-06T06:32:47.040" />
  <row Id="34169" PostTypeId="2" ParentId="21575" CreationDate="2011-01-06T06:37:57.170" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Kill it with fire.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aka refactor as soon as possible: for example when ugly code comes from rushing for a deadline, I'd refactor after the deadline because you can't (or shouldn't at least) add more features until the existing code is maintainable, otherwise it's going to make it that much harder to debug future codes.&lt;/p&gt;&#xA;" OwnerUserId="9094" LastActivityDate="2011-01-06T06:37:57.170" CommunityOwnedDate="2011-03-03T13:15:32.770" />
  <row Id="34170" PostTypeId="2" ParentId="34095" CreationDate="2011-01-06T06:38:31.590" Score="0" ViewCount="" Body="&lt;p&gt;Legal reasons aside, this is a service business after all and you live and you die by references. It can only take one bad one to give you a bad rep. I can only take one really satisfied customer to give you lot's of other work. So apply the golden rule, treat your customer as you'd like to be treated, within reason. People remember and value people who go a little above and beyond their &quot;duty&quot;.&lt;/p&gt;&#xA;" OwnerUserId="12354" LastActivityDate="2011-01-06T06:38:31.590" />
  <row Id="34171" PostTypeId="1" AcceptedAnswerId="34172" CreationDate="2011-01-06T06:55:54.820" Score="1" ViewCount="167" Body="&lt;p&gt;If you have used clearcase before, then this question is for you. How do you determine all the files and their corresponding checkins?, given a snapshot view.&lt;/p&gt;&#xA;" OwnerUserId="12426" LastEditorUserId="3915" LastEditorDisplayName="" LastEditDate="2011-01-06T07:33:46.940" LastActivityDate="2011-01-06T07:39:24.377" Title="Clearcase: Find out files checked in with the current snapshot view" Tags="&lt;version-control&gt;&lt;clearcase&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="34172" PostTypeId="2" ParentId="34171" CreationDate="2011-01-06T07:33:38.560" Score="1" ViewCount="" Body="&lt;p&gt;Use &lt;strong&gt;&lt;a href=&quot;http://publib.boulder.ibm.com/infocenter/cchelp/v7r0m1/index.jsp?topic=/com.ibm.rational.clearcase.cc_ref.doc/topics/ct_find.htm&quot; rel=&quot;nofollow&quot;&gt;cleartool find&lt;/a&gt;&lt;/strong&gt;: it can list all the (checked-in) version  ever created from within a path of your view.&lt;br&gt;&#xA;You can limit the result to all the elements (instead off all versions for each element), by using the &lt;code&gt;-element&lt;/code&gt; option.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See also those &lt;a href=&quot;http://www-01.ibm.com/support/docview.wss?uid=swg21124425&quot; rel=&quot;nofollow&quot;&gt;additional examples&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your question is about finding checked-out files, then &lt;strong&gt;&lt;a href=&quot;http://publib.boulder.ibm.com/infocenter/cchelp/v7r1m2/topic/com.ibm.rational.clearcase.cc_ref.doc/topics/ct_lscheckout.htm&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;cleartool lsco&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt; is the right command.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;See &quot;&lt;a href=&quot;http://stackoverflow.com/questions/1576701/how-to-find-out-all-the-checked-out-files-in-a-branch/1577552#1577552&quot;&gt;how to find out all the checked out files in a branch&lt;/a&gt;&quot; and &quot;&lt;a href=&quot;http://stackoverflow.com/questions/973956/recursive-checkin-using-clearcase/974016#974016&quot;&gt;Recursive checkin using Clearcase&lt;/a&gt;&quot; (for dynamic and snapshot views)&lt;/p&gt;&#xA;" OwnerUserId="3915" LastEditorUserId="3915" LastEditorDisplayName="" LastEditDate="2011-01-06T07:39:24.377" LastActivityDate="2011-01-06T07:39:24.377" />
  <row Id="34173" PostTypeId="1" AcceptedAnswerId="34175" CreationDate="2011-01-06T08:28:18.527" Score="10" ViewCount="497" Body="&lt;p&gt;Overall I'm in programming for about 8 years now and it seems to me that I'm relying more and more on open source libraries and snippets (damn you GitHub!) to &quot;get the job done&quot;. I know that in time I could write me own implementation but I like to focus on the overall design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this normal (non cooperate environment)? Does it make you a bad programmer if &quot;programming&quot; is nothing more than cluing different libraries together. Feels like it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know about &quot;don't reinvent the wheel&quot; but what happens when you don't invent a single wheel anymore.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's your take on this? &lt;/p&gt;&#xA;" OwnerUserId="2572" LastActivityDate="2011-01-30T08:01:13.100" Title="Does heavy library and snippet codes usage make you a bad programmer?" Tags="&lt;programming-practices&gt;" AnswerCount="8" FavoriteCount="2" />
  <row Id="34174" PostTypeId="2" ParentId="34173" CreationDate="2011-01-06T08:32:50.043" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;good programmers write good code;&#xA;  great programmers steal great code.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="10037" LastEditorUserId="10037" LastEditorDisplayName="" LastEditDate="2011-01-06T08:40:30.913" LastActivityDate="2011-01-06T08:40:30.913" CommentCount="5" />
  <row Id="34175" PostTypeId="2" ParentId="34173" CreationDate="2011-01-06T08:47:19.237" Score="31" ViewCount="" Body="&lt;p&gt;Using libraries instead of reinventing the wheel: Great! That's how everybody should do it. You don't get paid to do what's already done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using snippets: As long as you understand what you copy-paste, and as long as you invest the time to make it all consistent (instead of a patchwork of different styles and approaches), there is nothing wrong with it.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2011-01-06T08:47:19.237" CommentCount="8" />
  <row Id="34176" PostTypeId="2" ParentId="34173" CreationDate="2011-01-06T08:48:35.187" Score="0" ViewCount="" Body="&lt;p&gt;No. Programmers should use libraries which are already out there. No re-inventing the wheel. If you have a better method, you can go for it, else what does it really do in writing the same code. The only thing is you should know what the code is (and only if it matters).&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2011-01-06T08:48:35.187" />
  <row Id="34177" PostTypeId="2" ParentId="34173" CreationDate="2011-01-06T08:50:50.627" Score="8" ViewCount="" Body="&lt;p&gt;I love to write my own libraries. I also love to get my projects done on time. I think over time, &lt;em&gt;most&lt;/em&gt; good programmers build up a collection of useful and re-usable bits. I don't know about you, but I get a great feeling every time I use a library that I wrote five years ago.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is &lt;em&gt;absolutely nothing&lt;/em&gt; wrong with using library code that has been tested and loved over time. You know how it works, you can count on its complexity and you can implement it quickly. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, I'm assuming that you understand the code in the library. I'm assuming that, if given sufficient time, you could implement something of similar quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know some really good C programmers who &lt;em&gt;could&lt;/em&gt; implement the standard C library, a few of them that have simply as a learning / sharpening exercise. Some of the most fun I've had during hobby time was working on the C library in HelenOS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, there's nothing wrong with using library code, as long as you continue to be curious and learn. It goes without saying that you should &lt;em&gt;not&lt;/em&gt; use code that you don't understand, unless your use of it is an effort to understand how it works.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2011-01-06T08:50:50.627" CommentCount="1" />
  <row Id="34178" PostTypeId="1" CreationDate="2011-01-06T08:56:27.813" Score="5" ViewCount="347" Body="&lt;p&gt;Today &lt;a href=&quot;http://twitter.com/unclebobmartin&quot; rel=&quot;nofollow&quot;&gt;Uncle Bob Martin&lt;/a&gt;, a genuine hero, showed &lt;a href=&quot;http://tinyurl.com/2v6tpnb&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; video&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this video Bob Martin claims that our programming languages are at the right level for our problems at this time. One of the reasons I get from this video as that Bob Martin sees us as detail managers and our problems are at the detail level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is the first time I have to disagree with Bob Martin and was wondering what the people at programmers think about this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First there is a difference between &lt;a href=&quot;http://en.wikipedia.org/wiki/Model-driven_architecture&quot; rel=&quot;nofollow&quot;&gt;MDA&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Model-driven_development&quot; rel=&quot;nofollow&quot;&gt;MDE&lt;/a&gt; MDA in itself hasn't worked and I blame way to much formalisation at a level you can't formalize these kind of problems. MDE and MDD are still trying to prove themselves and in my mind show great promise. e.g. look at &lt;a href=&quot;http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;amp;entry=3446309083&quot; rel=&quot;nofollow&quot;&gt;MetaEdit&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The detail still needs to be management in my mind, but you do so in one place (framework or generators) instead of at multiple places.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right for our kind of problems ? I think depends on what problems you look at.  Do the current programming languages keep up with the current demands on time to market ? Are they good at bridging the business IT communication gap ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what do you think ?&lt;/p&gt;&#xA;" OwnerUserId="10422" LastEditorUserId="10422" LastEditorDisplayName="" LastEditDate="2011-01-06T09:02:29.917" LastActivityDate="2011-01-11T09:40:01.380" Title="Are today's general purpose languages at the right level of abstraction ?" Tags="&lt;code-generation&gt;&lt;mdd&gt;" AnswerCount="8" FavoriteCount="2" />
  <row Id="34179" PostTypeId="1" AcceptedAnswerId="34181" CreationDate="2011-01-06T08:58:33.617" Score="5" ViewCount="117" Body="&lt;p&gt;What is the typical arrangement for the maintenance of applications that are not developed in-house? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: by maintenance, I mean bug fixes, optimizations, small modifications and future extensions.&lt;/p&gt;&#xA;" OwnerUserId="1095" LastActivityDate="2011-01-06T09:56:34.800" Title="After an outsourced/offshored application is &quot;completed&quot;, who will do the maintenance?" Tags="&lt;maintenance&gt;&lt;outsourcing&gt;&lt;off-shore&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="34180" PostTypeId="2" ParentId="34179" CreationDate="2011-01-06T09:07:47.010" Score="1" ViewCount="" Body="&lt;p&gt;Usually some amount of maintenance is included to the contract (with a dedicated price or as part of the project), and consequent updates go at a cost. &lt;/p&gt;&#xA;" OwnerUserId="12300" LastActivityDate="2011-01-06T09:07:47.010" />
  <row Id="34181" PostTypeId="2" ParentId="34179" CreationDate="2011-01-06T09:11:10.127" Score="4" ViewCount="" Body="&lt;p&gt;This is one of the unspoken (well, unspoken at management level) problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scenario 1 is that maintenance, support and enhancements are done by the off-site company. This presumes that they still exist in 5 years time (there's a risk to the business there). The costs involved in this ongoing care should be factored in at the start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scenario 2 is that the work is &quot;dumped&quot; on the on-site IT department. From experience, it's often not well received, especially if redundanices have been made based on the decisions to go off-shore. Even if it is well received, you have the learning curve of trying to understand someone elses code. If you get time to look at the code at all before go-live, you've been very lucky! It's usually all fire-fighting stuff. It's also frustrating when your manager can't understand why it takes you X times longer to do something, just because 90% of your time was in understanding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Apologies if this comes across as overly for or against off-shoring. I believe that to be strictly off-topic, and tried to temper my response accordingly! ;)&lt;/p&gt;&#xA;" OwnerUserId="550" LastActivityDate="2011-01-06T09:11:10.127" />
  <row Id="34182" PostTypeId="2" ParentId="34173" CreationDate="2011-01-06T09:11:45.510" Score="6" ViewCount="" Body="&lt;p&gt;Coding is the lowest level of programming in fact. The higher level of abstraction you can get to, the better programmer you are. Choosing right libraries (not necessarily open-source ones), &lt;em&gt;properly&lt;/em&gt; connecting them together and maintaining the construct is much harder yet more efficient and time- and cost-saving, than writing everything yourself.&lt;/p&gt;&#xA;" OwnerUserId="12300" LastActivityDate="2011-01-06T09:11:45.510" CommentCount="1" />
  <row Id="34183" PostTypeId="2" ParentId="34178" CreationDate="2011-01-06T09:15:37.953" Score="3" ViewCount="" Body="&lt;p&gt;I think one of the things that his says is right.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Programming languages today are at the right level of abstraction.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;But, I think that although, in the future, we may use the same languages as today, because compilers are getting better and processors are getter faster (as in they can do more computations per second), we may be able to operate a higher-level, where we don't need to worry about performance details.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This has already happened with most tasks and the rise and rise of dynamic languages like python and ruby, but as compilers get better we may be able to start writing things like databases and maybe eventually kernel modules and operating systems in this style.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2011-01-06T09:15:37.953" />
  <row Id="34184" PostTypeId="2" ParentId="34122" CreationDate="2011-01-06T09:17:03.337" Score="0" ViewCount="" Body="&lt;p&gt;We just went through this at my work.  Trying to figure out what our KPIs should be, and then what our KPIs were going to be (since they turned out to be hard to measure).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;THE KPI should be a measure of solving the business requirements in a timely fashion.  If someone knows a good way to measure this let me know. :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We ended deciding to use # of features implemented.  Our customers sign off on every user facing feature and they are publicly prioritized (so people can fight for theirs to go first).  We figured that was going to be a simple way to measure if we are performing well. We will see.....&lt;/p&gt;&#xA;" OwnerUserId="7575" LastEditorUserId="7575" LastEditorDisplayName="" LastEditDate="2011-01-07T16:04:43.820" LastActivityDate="2011-01-07T16:04:43.820" CommentCount="1" />
  <row Id="34185" PostTypeId="2" ParentId="34179" CreationDate="2011-01-06T09:17:07.750" Score="4" ViewCount="" Body="&lt;p&gt;That needs to be considered when the project starts but there is no fixed answer, it will vary from company to company and project to project.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there is an in-house team it can be handed over to them to support and enhance on an on-going basis.  Obviously the issues with this are the issues with any handover to people who weren't involved from the outset.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are going down this route then I'd recommend having members of the internal team involved from early in the project, carrying out specification and code reviews and so on, so when the handover comes they understand what they're looking at.  UAT is a good time to bring them on-board in a hands-on capacity as they could get involved in some of the bug fixing as an easy way in while support is still available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to make sure that the handover is included in the contract and is correctly resourced on both sides and that the final payments to the outsource company are dependent upon it being completed to your satisfaction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alternatively the company who completed the project will likely be happy to support it on an on-going basis (for a fee).  The issue here, other than the cost, is that you won't usually get continuity of staff, certainly not long term, and the handover is outside your control so you can't even make sure it's well managed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen this happen (from both sides of the fence) and what you often end up with is a poor handover from the original developers to the support guys which is then reflect not only in lower code and product quality, but also in the cost of enhancements back to you (as the estimates from the new developer are higher because he doesn't really understand the system and in effect you're paying for him to learn, despite the fact you paid for that company to write it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I'd always go the internal route for support (I've seen third parties lose source code and I think these things are too important to trust them with), though I understand that's a strategic decision and if no team exists it's potentially a hard sell.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2011-01-06T09:56:34.800" LastActivityDate="2011-01-06T09:56:34.800" />
  <row Id="34186" PostTypeId="2" ParentId="19649" CreationDate="2011-01-06T09:17:39.800" Score="1" ViewCount="" Body="&lt;p&gt;Just wanted to note Open Source != No Copyright.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Open Source relies on someone claiming copyright then adopting a specific legal document (Like the GPL) to give away that copyright.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So whatever you decided is suitable for closed source code is also suitable for open source code.&lt;/p&gt;&#xA;" OwnerUserId="11727" LastActivityDate="2011-01-06T09:17:39.800" CommentCount="1" />
  <row Id="34187" PostTypeId="2" ParentId="34126" CreationDate="2011-01-06T09:18:38.373" Score="1" ViewCount="" Body="&lt;p&gt;I'm not aware such a list exists (although it sounds like it would be useful!). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe talk to some others who've done this before from IIT Delhi - they might have a list. Or maybe IIT keeps its own lists? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that - each country will have it's own university admission service, which you can use to find lists of universities for specific courses. In the UK, it's called UCAS (Universities &amp;amp; Colleges Adminission Service). Their website is &lt;a href=&quot;http://www.ucas.ac.uk/&quot; rel=&quot;nofollow&quot;&gt;http://www.ucas.ac.uk/&lt;/a&gt; and you can search for universities that do Computer Science there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope that helps.&lt;/p&gt;&#xA;" OwnerUserId="550" LastActivityDate="2011-01-06T09:18:38.373" />
  <row Id="34188" PostTypeId="2" ParentId="34179" CreationDate="2011-01-06T09:19:20.883" Score="1" ViewCount="" Body="&lt;p&gt;Generally, a new deal can be made in these two forms for maintenance:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A maintenance plan for certain ammount a month (if work is somewhat sporadic).&lt;/li&gt;&#xA;&lt;li&gt;An hourly rate for maintenance work.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For new features/optimizations/extensions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Negotiate several packed together as a new project (iteration).&lt;/li&gt;&#xA;&lt;li&gt;Negotiate an hourly rate (and give an estimate if possible, making clear it is an estimate).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Personally and as a developer, I like to handle everything as a project, and bugs, I fix them for free. Small optimizations/modifications, if they take me less than half an hour, I also give them for free (that keeps my customer happy), if not, I charge by the hour.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ideal situation would be if your client has an IT department, then you can provide them with the necessary technical documentation so they can take charge of the maintenance while you continue adding new features.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2011-01-06T09:19:20.883" />
  <row Id="34189" PostTypeId="1" AcceptedAnswerId="34190" CreationDate="2011-01-06T09:24:58.533" Score="5" ViewCount="160" Body="&lt;p&gt;So now it's 2011, and as I carry on coding on our active projects it's time to update some copyright notices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;eg. Copyright Widgets Ltd 2010 to Copyright Widgets Ltd 2010, 2011&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is when do you update the copyright notices?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you change the notice in the head&#xA;of a file the first time you work on&#xA;that file? &lt;/li&gt;&#xA;&lt;li&gt;Since a module is one&#xA;piece of code consisting of many&#xA;files that work together, do you update all notices in&#xA;that module when you change a single&#xA;file in that module? &lt;/li&gt;&#xA;&lt;li&gt;Since a program&#xA;is one piece of code (maybe&#xA;consisting of many modules), do you&#xA;update all notices in that program&#xA;when you change a single file in that&#xA;program? &lt;/li&gt;&#xA;&lt;li&gt;Or do you just go through&#xA;and change en-mass over your morning&#xA;coffee on the grounds your about to&#xA;start programming and updateing things?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11727" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2011-01-06T09:30:51.687" LastActivityDate="2011-01-06T13:06:41.377" Title="How do you update copyright notices?" Tags="&lt;copyright&gt;" AnswerCount="5" CommentCount="2" />
  <row Id="34190" PostTypeId="2" ParentId="34189" CreationDate="2011-01-06T09:30:09.003" Score="3" ViewCount="" Body="&lt;p&gt;I just change them as I work on them. We have the same header on nearly every file, so it's easy to find all instances.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I then usually run a grep on the whole code base prior to shipping a release of any kind, which also points out places that the documentation has to be updated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It would seem to me, though, that if you had a uniform template at the head of every file .. a VCS hook could be used to automatically do that for you. I'm sure someone has done that, but a quick search didn't yield anything.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2011-01-06T09:30:09.003" CommentCount="1" />
  <row Id="34191" PostTypeId="2" ParentId="34189" CreationDate="2011-01-06T09:32:51.397" Score="2" ViewCount="" Body="&lt;p&gt;In most countries&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Copyright doesn't require any notice. It is automatic.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Year&lt;/strong&gt; is purely indicative. I suggest to change it when you update the concerned file.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that every recent IDEs can do a find &amp;amp; replace in files safely.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-06T09:32:51.397" />
  <row Id="34192" PostTypeId="2" ParentId="34122" CreationDate="2011-01-06T10:00:18.570" Score="0" ViewCount="" Body="&lt;p&gt;How about efficiency (work done/hr)?. This can be measured with the &lt;a href=&quot;http://www.pomodorotechnique.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;pomodoro technique&lt;/strong&gt;&lt;/a&gt;. Take a look at &lt;a href=&quot;http://www.slideshare.net/alimenkou/effective-time-management-with-pomodoro-technique&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;this presentation&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you are tracking your pomodoro estimations and the actual executed pomodoros per task, you can then measure the reality factor, which this tool called &lt;a href=&quot;http://code.google.com/p/pomodairo/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;pomodairo&lt;/strong&gt;&lt;/a&gt; does for you. This reality factor can sum up how good are your estimates and how efficient you are; for evaluating efficiency I'd stick to no more than 2 pomodoro tasks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find pomodoros objective (on an individual basis) because each one mean a fixed ammount of focused work and they are a good measure for you to improve, which IMHO is the real purpose of any metric of these sorts that matters.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2011-01-06T10:00:18.570" CommentCount="2" />
  <row Id="34193" PostTypeId="2" ParentId="34189" CreationDate="2011-01-06T10:09:20.540" Score="0" ViewCount="" Body="&lt;p&gt;I've seen a whole range of approaches, though the one that seemed least work to me, at least from a development perspective, was to make them dynamic and have the code automatically just add the current year every time the page was generated. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether that would cause too much of a performance overhead would depend on the solution, hardware and so on.  It seems unlikely but possible.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2011-01-06T10:09:20.540" />
  <row Id="34194" PostTypeId="1" CreationDate="2011-01-06T10:10:12.790" Score="0" ViewCount="89" Body="&lt;p&gt;I am currently learning Jquery by reading Jquery in Action. But I need some ideas or projects to use jquery in. To gain real experience with it. Any ideas that require server side are welcomed also.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks!&lt;/p&gt;&#xA;" OwnerUserId="12531" LastActivityDate="2011-01-06T10:22:01.237" ClosedDate="2011-01-06T20:34:07.077" Title="Jquery - Project" Tags="&lt;javascript&gt;&lt;project&gt;&lt;jquery&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="34195" PostTypeId="2" ParentId="34194" CreationDate="2011-01-06T10:12:17.907" Score="1" ViewCount="" Body="&lt;p&gt;The age old question!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In honest, no matter what people tell you the only project you will truley work on and dedicate time to, is one that is either useful or interesting to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Work around your hobbies or interests and start from there.&lt;/p&gt;&#xA;" OwnerUserId="11052" LastActivityDate="2011-01-06T10:12:17.907" />
  <row Id="34196" PostTypeId="2" ParentId="34194" CreationDate="2011-01-06T10:22:01.237" Score="0" ViewCount="" Body="&lt;p&gt;First to be clear tjat&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;jQuery don't require a server.&lt;/b&gt; &lt;br&gt;&#xA;jQuery is a javascript library which essentially wrapping on the some base javascript engine which make your life easier. (E.g. handling browser-type, and power selector for instance)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Javascript is mostly for browser user interface interaction, you don't really need a server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless you need some Ajax endpoint to feed dynamic content to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;What to look into&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Animation and flashy thing you can do, with user interaction without refreshing the site. I personally wrote a self-medicine evaluation for a hospital research program. Which suit them well&lt;/li&gt;&#xA;&lt;li&gt;JQuery UI - if you are into web application like usage. Especially useful with Ajax&lt;/li&gt;&#xA;&lt;li&gt;Ajax - you'll need an end point on server side for it, preferable return query with JSON format. PHP is a good choice for cheap cost of deployment&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You'll need to look into each aspect more for your interest, But I guess it's enough for a brief answer?&lt;/p&gt;&#xA;" OwnerUserId="12098" LastActivityDate="2011-01-06T10:22:01.237" />
  <row Id="34197" PostTypeId="2" ParentId="19649" CreationDate="2011-01-06T10:33:35.610" Score="1" ViewCount="" Body="&lt;p&gt;You could, conceivably simply put your copyright notice that mentions a LICENSE file, however there is no guarantee that once released, your code will remain atomic. In fact, it is &lt;em&gt;quite&lt;/em&gt; likely that bits and pieces of it will be remixed in at least several other projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is why it is important to at least have the following in every source file:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/* Copyright (C) 1883 Thomas Edison - All Rights Reserved&#xA; * You may use, distribute and modify this code under the&#xA; * terms of the XYZ license, which unfortunately won't be&#xA; * written for another century.&#xA; *&#xA; * You should have received a copy of the XYZ license with&#xA; * this file. If not, please write to: , or visit :&#xA; */&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You accomplish two things by doing this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Your copyright is asserted no matter how your code disintegrates and scatters in the future.&lt;/li&gt;&#xA;&lt;li&gt;You make the terms of using, distributing and modifying it quite clear, even if someone happened to receive only a small part of a library that you wrote.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;A lot of people also include their e-mail address under the copyright, which is helpful for receiving patches in the future. I received a patch last month for code that I wrote five years ago and had long forgotten about. Of course, that means maintaining an e-mail address and putting up with a bit of SPAM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If ever you actually need to &lt;em&gt;enforce&lt;/em&gt; your license, it is &lt;em&gt;critical&lt;/em&gt; that the other party can't say that the terms were ambiguous or missing, all kidding aside.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Plus, it's fun to watch how bits and pieces of your code find their way into other bits and pieces of code over time. Most people play fair and respect copyright and license terms.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2011-01-06T10:33:35.610" />
  <row Id="34198" PostTypeId="2" ParentId="34139" CreationDate="2011-01-06T10:34:15.457" Score="0" ViewCount="" Body="&lt;p&gt;If the workflow within the company is such that every check-in gets included in the nightly build automatically, then the check-ins must not break the build under any condition.&lt;br&gt;&#xA;If the manager does not understand how bad it is to break the build, ask him who is going to explain to the management of the testers why they have not received any new versions to test for the last three weeks. And to upper management why we have not been able to meet the scheduled release dates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If additional steps are needed before a check-in gets included in a build, then it is not a big deal to use such check-ins also as a backup procedure, although real backups would be preferable, if only because they don't/shouldn't require active actions by every developer.&lt;/p&gt;&#xA;" OwnerUserId="5099" LastActivityDate="2011-01-06T10:34:15.457" CommunityOwnedDate="2011-01-06T10:40:08.880" />
  <row Id="34199" PostTypeId="2" ParentId="34139" CreationDate="2011-01-06T10:40:08.880" Score="2" ViewCount="" Body="&lt;p&gt;&lt;em&gt;&lt;strong&gt;If you break my build, I'm going to break something of yours&lt;/em&gt;&lt;/strong&gt;. There is &lt;em&gt;never&lt;/em&gt;, &lt;em&gt;ever&lt;/em&gt; sufficient cause to check in code that does not work or compile. I repeat, there is &lt;em&gt;never&lt;/em&gt; a good reason to check in code that does not work or compile.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I need, and expect that I can revert back to &lt;em&gt;any&lt;/em&gt; revision in the history and end up with a working build. This is &lt;em&gt;absolutely&lt;/em&gt; critical for me, and breaking this logic defeats one of the best purposes of version control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If management is worried about losing code, disks are cheap. Ask developers to back up their files prior to leaving. I don't think that would be very cumbersome. Still, a well designed network should already be doing that, even if people tend to work on laptops that they take home at night.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2011-01-06T10:40:08.880" CommunityOwnedDate="2011-01-06T10:40:08.880" />
  <row Id="34200" PostTypeId="1" AcceptedAnswerId="34203" CreationDate="2011-01-06T10:43:20.903" Score="11" ViewCount="482" Body="&lt;p&gt;In our company, the developers want to use a proper bug tracking tool to manager issues in our application. The management however insists on using a shared spreadsheet (formeerly a shared excel file, now a spreadsheet on a web base solution allowing concurrent access).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Their argument is that the spreadsheet allow them to have a more highlevel view of the state of the project as they can see how many bugs are open with a quick glance. This also allow them to see who is working on each bug, and get estimation of the time required to close them all (as developer are required to fill time estimation of the bug they are working on).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you can understand, this is not really practical to use for the developers (bug tracking software were invented for a reason). So how can I advocate bug tracking software to ease the work of the developer ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a bonus, which software would you recommend that would allow the management to be able to get their feedbacks (number of bugs opens, who is working on them, time estimation) with a high level view ?&lt;/p&gt;&#xA;" OwnerUserId="9218" LastActivityDate="2011-01-21T08:39:31.217" Title="How would you advocate not using a shared spreadsheet to track bugs / issues ?" Tags="&lt;management&gt;&lt;advice&gt;&lt;bug-tracking&gt;" AnswerCount="12" CommentCount="6" FavoriteCount="0" />
  <row Id="34201" PostTypeId="2" ParentId="9099" CreationDate="2011-01-06T10:45:57.403" Score="6" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/9099/what-are-the-advantages-and-disadvantages-to-using-your-real-name-online/9116#9116&quot;&gt;SnOrfus is right&lt;/a&gt;, the &lt;b&gt;disadvantages outweigh the advantages&lt;/b&gt;. When you post something online, it suffers from the following drawbacks:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Your online statements will probably &lt;b&gt;last forever&lt;/b&gt;. If you formulate something undiplomatically, it will haunt you for the rest of your life. Or if you write something that is just plain wrong, the internet will help everybody to remember this mistake, forever. This is especially a problem for younger people.&lt;/li&gt;&#xA;&lt;li&gt;Your opinions are &lt;b&gt;available for the whole world to see&lt;/b&gt;, even if you intended them only for a specific audience. For example, if you publish an article on this site in which you discus a stupid habit of your manager, not necessarily to attack him, you don't want him to know it is your post. Or if you write an article on how much you hate programming language X, a future employer that is ready to offer you a programming job in that language might change his mind after reading it, even if you are really prepared to embrace the language in order to get the job.&lt;/li&gt;&#xA;&lt;li&gt;There is often &lt;b&gt;too little context&lt;/b&gt; so it can &lt;b&gt;very easily be misinterpreted&lt;/b&gt;. For example: the prehistory of a certain statement is often not available for the reader; irony that is mistaken for serious-mindedness; your future employer will read all the mistakes you've made when you were a mere beginner without realizing it was written 10 years ago and you've morphed into a different person in the meanwhile; etc...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;As a happy medium, I chose to use my surname and the initials of my family name. This way, my pseudonym sounds more personal while still preserving my privacy.&lt;/p&gt;&#xA;" OwnerUserId="1095" LastEditorUserId="1095" LastEditorDisplayName="" LastEditDate="2011-01-06T14:02:24.173" LastActivityDate="2011-01-06T14:02:24.173" />
  <row Id="34202" PostTypeId="2" ParentId="34139" CreationDate="2011-01-06T10:47:12.363" Score="3" ViewCount="" Body="&lt;p&gt;This is why DVC is a good idea. Developers can check in on their own machine whenever they like without messing up someone else's code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for backing up. For Git, I'd have a central server with copies of everyone's code accessible via ssh. Then as a commit hook, I'd have a script that would push changes to the server. This has the added bonus of making it easy to merge branches (as they're all on the same machine).&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2011-01-06T10:47:12.363" CommunityOwnedDate="2011-01-06T10:47:12.363" CommentCount="2" />
  <row Id="34203" PostTypeId="2" ParentId="34200" CreationDate="2011-01-06T10:48:29.193" Score="19" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;So how can I advocate bug tracking software to ease the work of the developer ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Given this statement:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;the spreadsheet allow them to have a more highlevel view of the state of the project as they can see how many bugs are open with a quick glance. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;you need to be looking at systems that have reporting tools that effectively allow the creation of spreadsheets in &quot;real time&quot; (or as close to it as possible). When you find one of these explain that having the developers use a &quot;proper&quot; system will mean that the data they're interested in will (hopefully) be more accurate and up to date (for example).&lt;/p&gt;&#xA;" OwnerUserId="47" LastActivityDate="2011-01-06T10:48:29.193" />
  <row Id="34204" PostTypeId="2" ParentId="34200" CreationDate="2011-01-06T10:49:18.593" Score="5" ViewCount="" Body="&lt;p&gt;Which version of the spreadsheet's up to date? Who has that spreadsheet?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any decent bugtracker will do what a spreadsheet can, only:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;will email relevant parties when something changes&lt;/li&gt;&#xA;&lt;li&gt;provides a single canonical source of up-to-date info&lt;/li&gt;&#xA;&lt;li&gt;allows for summary reports, to give high-level views of the state of the project&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For my personal projects I use &lt;a href=&quot;http://www.mantisbt.org/&quot; rel=&quot;nofollow&quot;&gt;Mantis&lt;/a&gt; (just because it's really easy to set up). Work uses &lt;a href=&quot;http://trac.edgewall.org/&quot; rel=&quot;nofollow&quot;&gt;Trac&lt;/a&gt; with Mercurial integration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mantis provides things like number of bugs open/closed/assigned out of the box, and I imagine most bugtrackers would. I don't know about time estimation, because I haven't bothered looking. Trac (or the installation here at work) does have time estimation, and it's easy to write a custom report that will, say, sum the estimations per milestone.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2011-01-06T10:49:18.593" />
  <row Id="34205" PostTypeId="2" ParentId="34139" CreationDate="2011-01-06T10:51:39.400" Score="1" ViewCount="" Body="&lt;p&gt;I can understand management's motivation behind checking in every day.  They're seeing it as a form of backup to a (presumably) central server, thus protecting their biggest asset, the source code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In and of itself, there's nothing wrong with that, however, those &quot;check-ins&quot; should be made to a &quot;work-in-progress&quot; branch (if you're using something like SVN or even a DVCS like Git or Hg) or a &quot;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms181403.aspx&quot; rel=&quot;nofollow&quot;&gt;shelve-set&lt;/a&gt;&quot; (if you're using TFS - this is &lt;em&gt;exactly&lt;/em&gt; what shelve-sets are for!).  The next day, developers can continue working on their own &quot;work-in-progress&quot; branch, and &lt;em&gt;only&lt;/em&gt; merge with the trunk when work has been completed and all relevant tests (if any) have passed.  Rinse, repeat.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Others have suggested that using a DVCS will address the problem, and sure, it allows devs to check-in to their own repository &lt;em&gt;on their own machine&lt;/em&gt;, however, this is likely not management's intention behind their idea of daily check-ins.  The likelihood is that they want all source code (both &quot;finished&quot; and &quot;work-in-progress&quot; code) to be stored on a central server somewhere.  It's also then likely that this central server is either off-site, replicated or itself backed-up to tape etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, the &quot;check-in every day&quot; policy isn't so bad so long as it's part of a policy that also ensures that your &lt;strong&gt;working&lt;/strong&gt; main trunk is &lt;strong&gt;not&lt;/strong&gt; polluted with unfinished work.&lt;/p&gt;&#xA;" OwnerUserId="4351" LastActivityDate="2011-01-06T10:51:39.400" CommunityOwnedDate="2011-01-06T10:51:39.400" CommentCount="3" />
  <row Id="34206" PostTypeId="2" ParentId="34200" CreationDate="2011-01-06T10:58:00.830" Score="4" ViewCount="" Body="&lt;p&gt;You need to show Management that their requirements will be meet. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Their argument is that the spreadsheet&#xA;  allow them to have a more highlevel&#xA;  view of the state of the project as&#xA;  they can see how many bugs are open&#xA;  with a quick glance. This also allow&#xA;  them to see who is working on each&#xA;  bug, and get estimation of the time&#xA;  required to close them all (as&#xA;  developer are required to fill time&#xA;  estimation of the bug they are working&#xA;  on).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;So set up a dummy system and show them with demo's that they can get this info just as good as and maybe even better than using a Spreadsheet.&lt;/p&gt;&#xA;" OwnerUserId="11727" LastActivityDate="2011-01-06T10:58:00.830" />
  <row Id="34207" PostTypeId="1" CreationDate="2011-01-06T11:00:08.613" Score="0" ViewCount="91" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I need to find out if a connection limit has been set on a postgresql database on a per user basis. I know you can set such a limit using &#xA;alter user  with CONNECTION LIMIT 2;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you check this in the pg_users table?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&#xA;Mark&lt;/p&gt;&#xA;" OwnerUserId="12532" LastActivityDate="2011-01-06T11:00:08.613" ClosedDate="2011-01-06T11:52:13.797" Title="Postgresql - connection limit per user" Tags="&lt;database&gt;" CommentCount="2" />
  <row Id="34208" PostTypeId="1" AcceptedAnswerId="34235" CreationDate="2011-01-06T11:12:37.203" Score="2" ViewCount="290" Body="&lt;p&gt;Hello, i work for a web development company and during the one year i have spent here, there were no improvements in the technologies we used to built our websites. I introduced jquery to them (buying the Novice to Ninja by Sitepoint) and now, i want to get rid of all these crappy PHP from scratch and use a PHP framework instead. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what reasoning i can use to convince my boss to switch, and how to convice the other developers too? &lt;/p&gt;&#xA;" OwnerUserId="10282" LastActivityDate="2011-01-06T18:02:20.963" Title="How to convince boss to start using Codeigniter or YII at work?" Tags="&lt;advice&gt;" AnswerCount="6" CommentCount="1" />
  <row Id="34209" PostTypeId="1" CreationDate="2011-01-06T11:14:44.513" Score="1" ViewCount="160" Body="&lt;p&gt;I recently purchased a Samsung Galaxy Tab as a reference implementation (phone and first gen Android tablet), of Android 2.x for app development.  I have noticed a slew of Android 3.0 slates being talked about at CES 2011 (Motorola XOOM, etc.).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I had a multitouch PC with the Android SDK/Emulator on it, would this allow me to more closely approximate device simulation by allowing user input via the multitouch screen ?  Would it work via touch just like Windows 7 recognizes touch as mouse style input ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has anyone done this ?&lt;/p&gt;&#xA;" OwnerUserId="12536" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2011-01-06T12:13:06.143" LastActivityDate="2011-01-07T00:05:57.933" Title="Would a multitouch capable PC allow me to do Android development simulating the touch UI without an Android device ?" Tags="&lt;android&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="34210" PostTypeId="2" ParentId="34208" CreationDate="2011-01-06T11:17:00.290" Score="1" ViewCount="" Body="&lt;p&gt;I recently had to do this.  I was able to win the other developers over by saying that even if we didn't use a pre-built framework, we could build our own so we knew it inside and out.  We could also create a central repository (SVN) for our framework and each web project would be easier to maintain by separating the core framework code from project specific code.  The framework could be housed in a directory in the include_path to make all of the sites using the framework update at once or you could overwrite files as needed.&lt;/p&gt;&#xA;" OwnerUserId="12537" LastActivityDate="2011-01-06T11:17:00.290" CommentCount="1" />
  <row Id="34212" PostTypeId="2" ParentId="34139" CreationDate="2011-01-06T11:23:10.527" Score="0" ViewCount="" Body="&lt;p&gt;The simple answer is no - if its broken or if its not finished then it shouldn't be committed. Version Control should not &lt;em&gt;mindlessly&lt;/em&gt; be used as a backup system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they want backups they (management) should implement a backup solution - either explicit or implicit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The real answer is more complex as has been identified by various people - but DVCS, for example, won't provide a backup unless the committed code is immediately (and automagically) pushed to a clone - of the Work In Progress - on another box. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the bottom line is this - even if you have a structure in your VCS that allows commit early and commit often of notionally failing code by having a safe work in progress branch (that's another discussion) you should still have an independent backup solution.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2011-01-06T11:23:10.527" CommunityOwnedDate="2011-01-06T11:23:10.527" />
  <row Id="34213" PostTypeId="2" ParentId="34178" CreationDate="2011-01-06T11:37:04.993" Score="2" ViewCount="" Body="&lt;p&gt;An Alan Perlis epigram comes to my mind: &quot;A programming language is low level when its programs require attention to the irrelevant.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I rather think of programming as complexity management rather than detail management. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In so many words, if we can get away with knowing about microcodes and whatnot when writing many softwares (even get away even with hardware specificities) , what else can we get away with? A possible answer: whatever computing phenomena we can create a model for (think of operating systems, pattern matching grammars, memory management, data flow, software memory transaction, etc) and make it general enough and flexible enough so we can feel comfortable with doing the mental magic called &quot;abstracting&quot; the set of undesired details of the complex phenomena we are dealing with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I don't think general programming languages of today are in any way close to my personal expectations.&lt;/p&gt;&#xA;" OwnerUserId="10415" LastActivityDate="2011-01-06T11:37:04.993" />
  <row Id="34214" PostTypeId="2" ParentId="34178" CreationDate="2011-01-06T11:57:39.360" Score="10" ViewCount="" Body="&lt;p&gt;As a researcher and a scientist, I've learned some simple rules, and the most important one is not to let my imagination set boundaries. What I mean is, the fact that I can't imagine a better way to abstract todays problems doesn't mean that one doesn't exist. It doesn't mean that another approach wouldn't completely alter the way we think about programming and consequently my understanding of abstraction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the market sense, it's really about competition. If no one else has the überlang, then &lt;em&gt;of course&lt;/em&gt; current languages seem to solve the problems at a market appropriate level. Expectations of reasonable evolve with technology.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you read some of Paul Graham's essays about Lisp, though, you'll see that he believed that his competitive edge was an überlang, Lisp. You'll also see some pretty strong claims about the level of abstraction provided by Lisp and how it differs from, say, Python. I hesitate to give such claims credence... but he made 48 million dollars writing Lisp code, and I didn't. That adds to his street cred, in my mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If we assume that Graham is correct, then we can only conclude that the Fortran family tree of languages is slowly catching up to the level of abstraction available in 1957 to the users of Lisp family languages. That's a bold claim, but if it's true than today's languages (the descendants of Fortran, I mean) aren't quite adequate for today's challenges.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But Graham doesn't have to be right in order for Uncle Bob to be wrong. Uncle Bob is wrong if Uncle Bob lacks perfect knowledge of what is possible. What we need to do is largely a function of the languages that we are using and the paradigm we work in, not the other way around.&lt;/p&gt;&#xA;" OwnerUserId="6883" LastActivityDate="2011-01-06T11:57:39.360" />
  <row Id="34215" PostTypeId="2" ParentId="34189" CreationDate="2011-01-06T12:01:43.420" Score="0" ViewCount="" Body="&lt;p&gt;I maintain an open source project, and I needed to insert and manage copyright notices at the top of all code files.  Also, certain sections of the code are released under different licenses, so it was a bit complex.  I wrote an application that goes through my source code, finds applicable files and first inserts some commented XML start/end tags where the copyright header should be if it doesn't exist.  Then the app goes through again and replaces everything within the header tags with the correct copyright notice for that library.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It also finds all project files in the solution and updates the application version, if necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It took me several hours to write, but it's made deployment much easier.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2011-01-06T12:01:43.420" />
  <row Id="34216" PostTypeId="2" ParentId="34208" CreationDate="2011-01-06T12:09:13.540" Score="4" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;So what reasoning i can use to convince my boss to switch, and how to convice the other developers too?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Reasoning rarely works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples work.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Build something, be successful.  Then explain your success by showing how the framework helped.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-06T12:09:13.540" CommentCount="2" />
  <row Id="34217" PostTypeId="2" ParentId="34139" CreationDate="2011-01-06T12:15:33.703" Score="0" ViewCount="" Body="&lt;p&gt;We have a policy that developers should shelve their code in TFS before they leave. This allows code to be saved and backed up without breaking the build.&lt;/p&gt;&#xA;" OwnerUserId="3414" LastActivityDate="2011-01-06T12:15:33.703" CommunityOwnedDate="2011-01-06T12:15:33.703" />
  <row Id="34218" PostTypeId="2" ParentId="34139" CreationDate="2011-01-06T12:51:40.960" Score="2" ViewCount="" Body="&lt;p&gt;I've always advocated checking in regularly (i.e. more than once a day), but only checking in code that compiles.  Even if a feature isn't 100% complete, it provides earlier oportunities to determine if the work in progress is going to affect other parts of the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's an example of what your company is (hopefully) trying to avoid:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Many moons ago, I had a borrowed developer working on an IR&amp;amp;D project.  Despite me badgering him to check his code in every day &lt;em&gt;for a month&lt;/em&gt; he wouldn't do it.  When he finally did check in the code it was working &lt;em&gt;as long as there was only ever one user at a time&lt;/em&gt;.  By developing a Java web application like a C project (everything was a static method, aka function) he caused a whole mess of rework for the rest of the team.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;There are similar horror stories such as the original IR&amp;amp;D developer not using version control at all, and the current version of the software was in his local directory on his machine instead of the file server.  He left the company, leaving the IR&amp;amp;D project high and dry (which is why I was brought in and dealt with the situation above).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I'd rather know that there are issues and design choices that need to be addressed earlier rather than later.  However, the trunk should always compile.  I've never left for the day with a broken build.  Whatever your solution, keep in mind the cautionary tale of the developer who &lt;em&gt;wouldn't&lt;/em&gt; check in code, but also keep in mind the horror of the first person arriving for the day having to fix everyone's code before they can continue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As with all things, there needs to be a healthy balance.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt; If you ever do find yourself &quot;blessed&quot; with a developer who refuses to check in code for an extended period of time, you have some other problems that you need to resolve.  If they refuse to check in their code, insist on a code review--you need some assurance that the code is going to function in your environment when it finally is.  If they refuse that, they probably shouldn't be on your project at all.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2011-01-06T12:51:40.960" CommunityOwnedDate="2011-01-06T12:51:40.960" />
  <row Id="34219" PostTypeId="2" ParentId="34139" CreationDate="2011-01-06T12:53:33.663" Score="0" ViewCount="" Body="&lt;p&gt;If it breaks the build don't commit it. If management still want code checked in organize a separate branch for the non-compiling code and then devs can commit their broken code to that branch.&lt;/p&gt;&#xA;" OwnerUserId="8392" LastActivityDate="2011-01-06T12:53:33.663" CommunityOwnedDate="2011-01-06T12:53:33.663" />
  <row Id="34220" PostTypeId="2" ParentId="34139" CreationDate="2011-01-06T12:58:49.003" Score="1" ViewCount="" Body="&lt;p&gt;Use a DVCS like GIT. Commit things that work and pass the unit tests. The rest that is not done yet, just stash it on your local machine and have a good evening and night.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2011-01-06T12:58:49.003" CommunityOwnedDate="2011-01-06T12:58:49.003" />
  <row Id="34221" PostTypeId="2" ParentId="34189" CreationDate="2011-01-06T13:06:41.377" Score="1" ViewCount="" Body="&lt;p&gt;The purpose of the year in a copyright statement is to indicate when the copyright started for that file/version of software/etc.  It's actually in your best interest to &lt;em&gt;only&lt;/em&gt; insert new copyright dates for new files and new distributions.  The reason for this is simple:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Company A develops software in complete isolation from Company B.  Because there's only so many ways to think about a problem, they both come up with a similar solution for some feature.  Through a blog entry or something Company B finds out that Company A is probably in violation of a copyright so they decide to sue (ever hear of SCO?).  Company B keeps updating their copyright notices with the advancing years, but Company A leaves them alone.  When the lawyers examine code and see Company A's copyright date &lt;em&gt;before&lt;/em&gt; Company B's copyright date, they will realize that it just might be that Company B is in violation.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That said, the date in the copyright notice is a legally &lt;em&gt;weak&lt;/em&gt; indicator of when something was copyrighted--particularly since it is so easily changed.  Registering your copyright with the government is a legally &lt;em&gt;strong&lt;/em&gt; indicator of the copyright date.  Most government agencies don't verify whether you are already in violation because they don't have the resources for that.  Instead, if there is a violation the one with the earlier registered copyright usually wins.  Most lawyers and courts will refuse any case that does not involve registered copyrights because they are so difficult to prove.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nonetheless, it is better to only put the new date on new code.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2011-01-06T13:06:41.377" CommentCount="2" />
  <row Id="34222" PostTypeId="2" ParentId="34173" CreationDate="2011-01-06T13:10:49.563" Score="1" ViewCount="" Body="&lt;p&gt;I'll go one better than some others in this question: I don't even think the &quot;client&quot; developer of a library needs to &quot;understand&quot; the code in that library.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a (compared to some) relatively new iPhone developer. There are LOTS of libraries that I use every day that I could never have generated on my own, and the code of which is way over my head. Doesn't matter in the slightest PROVIDED:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) I fully understand the interface to those libraries (I'm an ASIHTTPRequest ninja!)&lt;br&gt;&#xA;2) I'm picking libraries that are in general, broad use, so I can be sure they've been well gone over and explored for problems (eg: ASIHTTP, Stig Brautaset's JSON library, Facebook's obj-c library, etc.)&lt;br&gt;&#xA;3) Failing #2, it's simple enough that I &lt;em&gt;could&lt;/em&gt; pick my way through it and find/fix/customize anything that needs finding/fixing/customizing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That #2 is going to be the contentious part of this, I'm betting. The fact is, I am relying on the open source community, a community of developers that is certainly more experienced and quite likely smarter than I am. But that's the whole point of open source. So, there you go.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2011-01-06T13:10:49.563" />
  <row Id="34223" PostTypeId="2" ParentId="34139" CreationDate="2011-01-06T13:13:43.570" Score="0" ViewCount="" Body="&lt;p&gt;The rule of thumb that I've always heard is as follows:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Code doesn't exist until it has been&#xA;  checked into source control.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;So my usual policy is that code should be check in on the basis of the completion of function, classes, etc as opposed to fixed times through out the day. If you are only checking in once a day then if something happens to your computer, you lose a lot more work than if you are checking in every time you are able to close out an issue ticket.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, where a project is in the life-cycle affects what you want to be doing with it. When you are still in the process of developing a new program from scratch you might be a bit more forgiving than if you are working the maintenance of an existing application. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, how the code is broken also makes a difference as well. If the requirement is for a function to be rewritten and you are only half done when it's time to call it a day then I say just update the code in such a way that it will compile and then raise some sort of flag such as &lt;code&gt;System.NotImplementedException&lt;/code&gt; so others know what is going on. If you ripped out a bunch of code that affects several different parts of the application then it might be better to leave it out of source control so you don't disturb others work.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2011-01-06T13:13:43.570" CommunityOwnedDate="2011-01-06T13:13:43.570" />
  <row Id="34224" PostTypeId="2" ParentId="34200" CreationDate="2011-01-06T13:18:57.220" Score="4" ViewCount="" Body="&lt;p&gt;So far everyone's come up with similar and proper responses.  There is one important aspect that wasn't spoken towards yet.  In order to track bugs and make sure nothing slips through the cracks, you need two things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Good reporting, both summary and detail--this can be searched later on&lt;/li&gt;&#xA;&lt;li&gt;Everyone needs to know where the most up to date copy is.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In almost every environment that advocates using an Excel spreadsheet, there are different copies of this spreadsheet on everyone's machine--and none of them are the same.  This makes the process of reviewing progress extremely difficult and counterproductive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A centralized server such as Trac, RedMine, JIRA, Mantis, or whatever you want takes care of both of those problems.  At that point, its a matter of what fits your company's needs best.  Depending on your environment, these tools can integrate with your IDE just like your version control system (Eclipse has this feature).  That makes working through your assigned bugs a lot easier.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2011-01-06T13:18:57.220" CommentCount="3" />
  <row Id="34225" PostTypeId="2" ParentId="21575" CreationDate="2011-01-06T13:19:06.777" Score="1" ViewCount="" Body="&lt;p&gt;Write unit tests for your projects that test the current state and then refactor when you have time, this way you avoid breaking your project while you are trying to clean it up.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2011-01-06T13:19:06.777" CommunityOwnedDate="2011-03-03T13:15:32.770" />
  <row Id="34226" PostTypeId="2" ParentId="34208" CreationDate="2011-01-06T13:19:16.377" Score="6" ViewCount="" Body="&lt;h1&gt;It saves money&lt;/h1&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;So what reasoning i can use to convince my boss to switch, and how to convice the other developers too? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Using a framework is like prefabricating pieces of a site. As long as you can work within that prefabrication it &lt;em&gt;will&lt;/em&gt; speed development, reduce bugs and errors, and influence consistency between applications. All this boils down to &lt;strong&gt;it saves money&lt;/strong&gt;. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2011-01-06T13:19:16.377" CommentCount="1" />
  <row Id="34227" PostTypeId="1" AcceptedAnswerId="34304" CreationDate="2011-01-06T13:20:23.063" Score="21" ViewCount="494" Body="&lt;p&gt;Hi&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been struggling to develop momentum contributing to open source projects. I have in the past tried with gcc and contributed a fix to libstdc++ but it was a once off and even though I spent months in my spare time on the dev mailing list and reading through things I just never seemed to develop any momentum with the code. Eventually I unsubscribed and got my free time back and uncluttered my mailbox. Like a lot of people I have some little open source defunct projects lying around on the net, but they're not large and I'm the only contributor. At the moment I'm more interested in contributing to a large open source project and want to know how people got started because I find it difficult while working full time to develop any momentum with the code base. Other more regular contributors, who are on the project full-time, are able to make changes at will and as result enter that positive feedback cycle where they understand the code and also know where it's heading. It makes the barrier to entry higher for those that come along later.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My questions are to people who actively contribute to large opensource projects, like the Linux kernel, or gcc or clang/llvm or anything else with say a developer head count of more than 10.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How did you get started? Was there a large chunk of time in your life that you just could dedicate to working on the project? I know in Linus's case he had a chunk of time (6 months) to get it started.&lt;/li&gt;&#xA;&lt;li&gt;What barriers to entry did you encounter?&lt;/li&gt;&#xA;&lt;li&gt;Can you describe the initial stages of the time spent with the project, from when you had little understanding of the code to when you understood enough to  commit regularly.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;" OwnerUserId="8392" LastEditorUserId="8392" LastEditorDisplayName="" LastEditDate="2011-01-10T22:29:49.163" LastActivityDate="2011-01-10T22:29:49.163" Title="Developing my momentum on open source projects" Tags="&lt;open-source&gt;" AnswerCount="7" CommentCount="4" FavoriteCount="12" />
  <row Id="34228" PostTypeId="2" ParentId="34131" CreationDate="2011-01-06T13:21:45.027" Score="1" ViewCount="" Body="&lt;p&gt;I agree with the previous poster's comment.  Don't associate your request with the headhunter's fee.  If you feel you were wronged by their mistakes and/or lies then take that up with them and ask them for compensation for those costs directly.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course, unless you have some kind of signed agreement with them (the headhunter) they are under no legal obligation to compensate you. (I'm assuming there are no local legal requirements that I am not aware of) So it would be completely up to them and their sense of fairness on whether they dole out compensation.  They MAY do it if they feel you will use their services again (i.e. they can make enough money off of you in the future to make it worth their while).  But I'm going to guess that in the vast majority of cases they are going to just smile, nod politely and tell you they will look into it as they cash the client's commission check and wait for you to go away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(These comments all assume the headhunting firm was the one that made the mistake that benched you and lied to you about healthcare benefits.).&lt;/p&gt;&#xA;" OwnerUserId="6318" LastActivityDate="2011-01-06T13:21:45.027" />
  <row Id="34229" PostTypeId="2" ParentId="34178" CreationDate="2011-01-06T13:37:24.670" Score="2" ViewCount="" Body="&lt;p&gt;I've seen a real-life example of Paul Graham's &lt;a href=&quot;http://paulgraham.com/avg.html&quot; rel=&quot;nofollow&quot;&gt;Blub Paradox&lt;/a&gt; on usenet. Lisp programmers were trying to explain to Python programmers what macros were good for. The Python crowd responded to every example with: &quot;You can do the same thing in Python.&quot; The point the Lisp crowd was trying to make--that Lisp allows programmers to add their own control structures--was lost on the Python group. Those who understood about the control structures took the position that adding your own was evil and led to unmaintainable code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What this example demonstrates is that the level of abstraction of a programming language isn't the most important thing. We manage to get working code written, and don't miss the advanced features of Lisp because we never knew about them (and they're evil features anyway; they lead to unreadable code). &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2011-01-06T13:37:24.670" />
  <row Id="34230" PostTypeId="2" ParentId="34173" CreationDate="2011-01-06T13:41:52.437" Score="1" ViewCount="" Body="&lt;p&gt;I'd like to throw in a warning for using libraries. As a frequent user of scientific libraries in Perl an R (and some in Java), I often had to hack into a library to avoid hideous overhead cost. Using libraries is great, but more and more libraries are themselves dependent on other libraries, which calls a third library that uses the standard library to do a rather common task. And each step in the process requires some checks of input and output. Quite a lot of those checks are completely redundant, but they weigh on the application nonetheless. And when used in a loop, then can start to weigh quite heavily.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next to that, you can't be sure that libraries always keep back-compatibility, or do not contain bugs. In fact, all libraries contain a few bugs, that's the nature of code. Hence, the more dependent you are on libraries, the more potential bugs you enter in your code. And those bugs you can't solve yourself that easily without hacking into the libraries again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Using libraries is a very smart decision, but &lt;strong&gt;if and only if&lt;/strong&gt; you know the libraries and their behaviour pretty well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know, thinking hurts and computers are cheap, but still. Not thinking can hurt more.&lt;/p&gt;&#xA;" OwnerUserId="7268" LastActivityDate="2011-01-06T13:41:52.437" />
  <row Id="34231" PostTypeId="1" AcceptedAnswerId="34250" CreationDate="2011-01-06T13:46:11.200" Score="0" ViewCount="213" Body="&lt;p&gt;I personaly use:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Virtual Desktops&lt;/li&gt;&#xA;&lt;li&gt;Clipboard stack (clipX)&lt;/li&gt;&#xA;&lt;li&gt;a Launcher (enso)&lt;/li&gt;&#xA;&lt;li&gt;command line + shortkeys&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;but that's about it.&#xA;What other 'must use' productivity programs are there?&lt;/p&gt;&#xA;" OwnerUserId="11019" LastActivityDate="2011-01-06T16:15:07.837" ClosedDate="2011-01-06T16:41:28.413" Title="What are the most needed productivity tools?" Tags="&lt;productivity&gt;&lt;tools&gt;" AnswerCount="8" CommentCount="1" FavoriteCount="2" />
  <row Id="34232" PostTypeId="2" ParentId="34200" CreationDate="2011-01-06T13:47:44.477" Score="0" ViewCount="" Body="&lt;p&gt;You need to create a spreadsheet that when the manager opens it, all of the necessary reporting data are updated from the app of your choice. If you make it work, there is no argument.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-06T13:47:44.477" CommentCount="1" />
  <row Id="34233" PostTypeId="2" ParentId="34231" CreationDate="2011-01-06T13:50:28.673" Score="0" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;. Text Editor&#xA;. Compiler&#xA;. Serial Port&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-06T13:50:28.673" CommentCount="4" />
  <row Id="34234" PostTypeId="2" ParentId="34231" CreationDate="2011-01-06T13:52:52.163" Score="3" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Text Editor (a &lt;a href=&quot;http://www.vim.org/&quot; rel=&quot;nofollow&quot;&gt;powerful one&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Compiler/Debugger (preferably an IDE)&lt;/li&gt;&#xA;&lt;li&gt;Diff/Merge Tool (for directory and file diffs)&lt;/li&gt;&#xA;&lt;li&gt;Version Management (Git, SVN)&lt;/li&gt;&#xA;&lt;li&gt;Scripting stuff (for getting things done)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9330" LastActivityDate="2011-01-06T13:52:52.163" />
  <row Id="34235" PostTypeId="2" ParentId="34208" CreationDate="2011-01-06T13:57:24.640" Score="1" ViewCount="" Body="&lt;h2&gt;Find another Job&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The real problem here is culture. If you had to introduce the other developers to jQuery they don't know web development 101 and probably just don't give a damn about best practices. Maybe they just turn up work 8 hours and collect their pay, devoid of any passion for programming. When you try to get these people to &lt;em&gt;learn&lt;/em&gt; anything they'll put up a lot of resistance rather than see the new tool as something interesting and time saving. I am looking for a new job because I think it's just easier to work along side like minded people. Maybe your feathers are too bright for the cage. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm in a similar situation right now. Funnily enough I want to switch off Codeigniter onto a better framework like Django, Rails or Symfony (better models, command-line and forms). &lt;strong&gt;Before I was hired some bad work was done in cowboy PHP, and the team is still frustrated maintaining those legacy projects. You can't escape it.&lt;/strong&gt; It's hard enough to get a procedures manual or get everyone using a git repository for each project. But these two are slowly getting done. It could be another 5 years before I will be working 100% on Django/Rails the way things are going. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my short career I've worked in one place which actually had a tone of documentation on how things are done, how to create a new project in a repo, how to copy it onto the production server and so on. Everyone followed the company way of doing things because the boss was a developer and made sure things were done properly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the mean time school up on some other languages or frameworks, it will make you more employable even if your knowledge never makes it into your current workplace.&#xA;I'm building a website with a co-worker in Django which I will later show my boss and put in my portfolio for head hunters to see.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Sneak it in the back door&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The other option, which may just piss off your co-workers is to sneak your tool of choice in the back door by just ignoring them and using it anyway. If you get assigned a small project in which your the only developer that would be a good candidate.&lt;/p&gt;&#xA;" OwnerUserId="5678" LastEditorUserId="5678" LastEditorDisplayName="" LastEditDate="2011-01-06T14:25:29.627" LastActivityDate="2011-01-06T14:25:29.627" CommentCount="3" />
  <row Id="34236" PostTypeId="2" ParentId="34084" CreationDate="2011-01-06T14:00:13.467" Score="1" ViewCount="" Body="&lt;p&gt;I have the following suggestions, can be done one after each other or separately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do some programming katas, little exercises, which requires only basic programming constructs like loops, conditions, arrays etc. in the beginning. This is to remember the basics of your language of choice and gain speed with the tools and programming environment again. I think Project Euler ( &lt;a href=&quot;http://projecteuler.net/&quot; rel=&quot;nofollow&quot;&gt;http://projecteuler.net/&lt;/a&gt;) is a good choice. But there exists a couple of other sites too, some have somewhat more complex katas. Pick what fits best to you. Here are some further examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://codingkata.org/katas/&quot; rel=&quot;nofollow&quot;&gt;http://codingkata.org/katas/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://codekata.pragprog.com/&quot; rel=&quot;nofollow&quot;&gt;http://codekata.pragprog.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://inventwithpython.com/chapters/&quot; rel=&quot;nofollow&quot;&gt;http://inventwithpython.com/chapters/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.topcoder.com/tc&quot; rel=&quot;nofollow&quot;&gt;http://www.topcoder.com/tc&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://codingdojo.org/cgi-bin/wiki.pl?KataCatalogue&quot; rel=&quot;nofollow&quot;&gt;http://codingdojo.org/cgi-bin/wiki.pl?KataCatalogue&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://code.google.com/codejam/contests.html&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/codejam/contests.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;After some while try to focus more on building clean and reliable code. Start using a version control system and write automatic tests. Most of this katas requires only some hours to solve them, so it should be possible to do them along the way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next suggestion would be joining an Open Source project with the following characteristics:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;not so big codebase&lt;/li&gt;&#xA;&lt;li&gt;somewhat mature, but still maintained&lt;/li&gt;&#xA;&lt;li&gt;at least some basic automatic testing&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;e.g. some library which is implementing a standard and doing just one thing. Focus on what makes this library more stable and more usable in the beginning. Enhance the testing, improve documentation, fix bugs and write automatic tests for that fix, do minor refactorings, update dependencies if they exist. It shouldn't be so hard to become committer for such a library, you will get a sufficient codebase for training and to learn from, a more complex environment and real problems from real users. This will require some time to get started in the beginning. But Projects in a maintaining state aren't changing so much, so it shouldn't be a problem to take a break for a couple of weeks when you are busy with somewhat else.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Final suggestion is writing your own significant piece of software. Choose some real problem this software should solve. The scope of this problem should make it possible to produce something useful within a couple of weeks. Try to get real users for it. This will train your skill of making your own design decisions. Choosing an appropriate platform and libraries. Beside that you need to think about how to build releases, make a stable operating and keep the thing evolvable. &#xA;I would really focus on getting things done in the beginning until the first public release to have a prove that your concepts finally work.&lt;/p&gt;&#xA;" OwnerUserId="12533" LastActivityDate="2011-01-06T14:00:13.467" />
  <row Id="34237" PostTypeId="2" ParentId="34208" CreationDate="2011-01-06T14:06:54.420" Score="2" ViewCount="" Body="&lt;p&gt;Whilst I totally agree with the other answers on here (and having tried most of them during my career) can I play devils advocate here for a sec?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it just a case of what the boss has now solves his business problems?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is the company making money churning out what it always has done?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The boss is focused on the business aspect whilst the techies are focused on the technical stuff and it's often hard to provide a justifiable business case for introducing new technologies. Switching to a new technology just because it is new is rarely a solid reason.&lt;/p&gt;&#xA;" OwnerUserId="1949" LastActivityDate="2011-01-06T14:06:54.420" />
  <row Id="34238" PostTypeId="2" ParentId="34231" CreationDate="2011-01-06T14:07:20.497" Score="0" ViewCount="" Body="&lt;p&gt;A good scripting language to automate as much tasks as possible.&lt;/p&gt;&#xA;" OwnerUserId="11331" LastActivityDate="2011-01-06T14:07:20.497" />
  <row Id="34239" PostTypeId="2" ParentId="34178" CreationDate="2011-01-06T14:14:29.570" Score="7" ViewCount="" Body="&lt;p&gt;I have no problem with the &quot;level&quot; of current languages, and I was a thorough disciple of Lisp-ism, but this whole conversation really bothers me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It bothers me because the language we're &lt;em&gt;really&lt;/em&gt; using is the one that we and others have built &lt;em&gt;on top of&lt;/em&gt; whatever the compiler or interpreter provides.&#xA;The nouns, verbs, syntax, and semantics consist not only of what came &quot;out of the box&quot; but what libraries we've included, what classes and methods we've defined, what macros we've written, what interpreters we've coded, what parsers and code generators we've written.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is not a firm dividing line between &lt;em&gt;using&lt;/em&gt; a language, and &lt;em&gt;creating&lt;/em&gt; a language. It's more like a rocket taking off into outer space. At each point, it is making use of what it built up previously. Just as the rocket accelerates in a specific direction to the exclusion of others, our program/language builds more and more to the specific problem we are solving. It becomes more and more a domain-specific-language (DSL).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the whole question &quot;are our languages at the right level&quot; misses the point. The point is that whenever we program, we are building a new language, and &lt;em&gt;we should all know good ways to do that, and the base languages should help us.&lt;/em&gt;&#xA;We should understand that the purpose of a language is not to &quot;do things&quot;, &quot;manipulate objects&quot;, &quot;control the computer&quot;, etc. The purpose of a language is to &lt;em&gt;express our mental models&lt;/em&gt; in an effectively computable way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know people are going to say &quot;Well, wasn't that what UML was supposed to do?&quot; The answer is it couldn't, precisely because it was pre-ordained. A domain-specific-language is just that - specific. A domain-general-language is only useful if it can be effectively transformed into a domain-specific-language.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastActivityDate="2011-01-06T14:14:29.570" CommentCount="5" />
  <row Id="34240" PostTypeId="2" ParentId="34231" CreationDate="2011-01-06T14:15:10.007" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.eclipse.org/mylyn/&quot; rel=&quot;nofollow&quot;&gt;Mylyn&lt;/a&gt; if you develope in Eclipse IDE!&lt;/p&gt;&#xA;" OwnerUserId="12271" LastActivityDate="2011-01-06T14:15:10.007" />
  <row Id="34241" PostTypeId="2" ParentId="34200" CreationDate="2011-01-06T14:22:10.117" Score="4" ViewCount="" Body="&lt;p&gt;I don't know your environment, but for Visual Studio users, I highly suggest TFS.  It integrates both source control and issue tracking, with full reporting capabilities.  It also offers layers of authority, full history tracking (i.e. who updated the bug when, and if set up, why), allows you differentiate between a &quot;bug&quot; and an &quot;issue&quot; and an &quot;enhancement&quot; and whatever else you'd like, and completely integrates with the Visual Studio IDE.  It ties together a bug with the code that was checked in, which can be tied to specific builds.  And a whole lot more.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've used lots of different source control systems (VSS, SVN, TFS...) and lots of bug tracking systems (Custom proprietary systems, Tracker, SharePoint, and yes, even Excel), but for my money (and it is a good chunk of change), TFS is worth the investment in money and time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, you can export to (and import from) Excel.&lt;/p&gt;&#xA;" OwnerUserId="5030" LastActivityDate="2011-01-06T14:22:10.117" CommentCount="2" />
  <row Id="34242" PostTypeId="2" ParentId="34200" CreationDate="2011-01-06T14:31:32.427" Score="2" ViewCount="" Body="&lt;p&gt;To help sell the transition to a proper issue tracker you should try to find out what issues management has with your current system (there is bound to be a 'it would be nice if...') and see if you cant scratch that itch for them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reading the management's arguments&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Their argument is that the spreadsheet allow them to have a more highlevel view of the state of the project as they can see how many bugs are open with a quick glance. This also allow them to see who is working on each bug, and get estimation of the time required to close them all (as developer are required to fill time estimation of the bug they are working on).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I agreed with all of them and &lt;em&gt;every single one&lt;/em&gt; is met by &lt;a href=&quot;http://www.atlassian.com/software/jira/&quot; rel=&quot;nofollow&quot;&gt;JIRA&lt;/a&gt; (I mention JIRA only because it is what I use, I'm sure there are other worthwhile candidates)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to emphasize that with a tool like JIRA, not only will they retain all the advantages of your current setup, they will also get a many new advantages. &lt;/p&gt;&#xA;" OwnerUserId="6825" LastEditorUserId="6825" LastEditorDisplayName="" LastEditDate="2011-01-06T14:56:33.053" LastActivityDate="2011-01-06T14:56:33.053" />
  <row Id="34243" PostTypeId="2" ParentId="34154" CreationDate="2011-01-06T14:34:41.877" Score="1" ViewCount="" Body="&lt;p&gt;There are basics you have to know - HTML, CSS, semantic markup, what HTTP does and how to make good use of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then you look at what you need for &lt;em&gt;this&lt;/em&gt; project, whatever the current project is. Probably that is going to involve starting with an existing platform or CMS and customising it, sometimes entirely bespoke work but more often not. Sometimes there will be requirements related to where and how it is hosted that will guide you to the right platform, other times the functionality you want will guide the hosting that you can use. You learn what you need as you need it. It's a little slow as a way of working but it ends up being the way most of us got good at what we do- project by project learning what we needed to know. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Obviously, the more you work in the company of more experienced web developers, the quicker you can learn from them, but on the whole most of us picked up these skills piecewise over time.&lt;/p&gt;&#xA;" OwnerUserId="4027" LastActivityDate="2011-01-06T14:34:41.877" />
  <row Id="34244" PostTypeId="2" ParentId="34200" CreationDate="2011-01-06T14:36:24.483" Score="5" ViewCount="" Body="&lt;p&gt;Everyone else's answers are good.  One other aspect occurs to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What about security around the spreadsheet.  Shouldn't management be concerned that any random developer could accidentally hit the CTRL+A, DELETE buttons and really mess things up?  A proper bug tracking system would not allow for this kind of data corruption.  And that doesn't even account for malice.  What if a particular developer wanted more credit and started reassigning all of the defect fixes to himself.  A real system would have an audit trail where that kind of thing would be noticeable.  A spreadsheet would not.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2011-01-06T14:36:24.483" />
  <row Id="34245" PostTypeId="2" ParentId="34178" CreationDate="2011-01-06T14:38:27.007" Score="1" ViewCount="" Body="&lt;p&gt;What are &quot;today's general purpose languages&quot;? What are &quot;our problems at this time&quot;? Making real-time embedded programs is quite different from making a big data mining systems, which is quite different from making web applications, and all these obviously need to work at different abstraction levels. Even general purpose desktop software is being successfully made with various languages such as C++, Python and Lisp, all of which work at different levels - or should we say &lt;em&gt;dimensions&lt;/em&gt; - of abstraction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It indeed seems that the level of abstraction is not that critical; somehow certain languages just seem to work better with certain problems (sometimes for obvious reasons; you can't write low-level code with languages that don't allow access to physical registers of the computer, and writing web apps with raw C is obviously impractical).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bob Martin is an OO expert from inside out. While he can write excellent things about that, his idea of the field called &quot;programming&quot; seems to be somewhat shallow.&lt;/p&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2011-01-06T14:44:29.680" LastActivityDate="2011-01-06T14:44:29.680" />
  <row Id="34246" PostTypeId="1" CreationDate="2011-01-06T14:45:18.543" Score="20" ViewCount="766" Body="&lt;p&gt;First, I have already searched the site and read all the previous &quot;self-taught vs. college&quot; topics. The majority of the answers defended that going to college was the best choice, for two main reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Going to college gives you the paper, which is essential to landing jobs, especially in tough economic times.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Going to college gives you a solid programming base, teaching you the principles that will be essential regardless of the language/path you take after.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Here comes my question: I am not worried about reason 1 at all, because I already have my own company (I build websites/ do affiliate marketing) and a stable financial situation, so I am pretty sure I won't need to look around for a job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am worried about reason 2 though. That is, I want to make sure I'll have as solid a programming foundation as anyone else out there, and I am wondering if that is possible with self-learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suppose I take my time to study the very basics, like discrete maths, algorithm design, programming logic, computer architecture, Assembly, C programming, databases and data structures - mostly using books,online resources and lots of coding. Say I spend 1-2 years covering those basics. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you think my foundation would be solid, or still lack in comparison to someone who went to college?&lt;/p&gt;&#xA;" OwnerUserId="11887" LastActivityDate="2011-01-11T06:41:58.947" CommunityOwnedDate="2011-01-10T21:57:27.023" Title="Can One Get a Solid Programming Foundation Without Going To College/University?" Tags="&lt;learning&gt;&lt;university&gt;" AnswerCount="16" CommentCount="2" FavoriteCount="2" />
  <row Id="34247" PostTypeId="1" AcceptedAnswerId="34253" CreationDate="2011-01-06T14:51:07.473" Score="2" ViewCount="289" Body="&lt;p&gt;I was reading a blog I write recently. haha I wrote a post about what people shouldn't get caught not knowing. I was wondering what everyone else thought on the subject. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been told not to catch my pants down not fully understanding Unicode in the past. Things of this nature. &lt;/p&gt;&#xA;" OwnerUserId="2446" LastEditorUserId="2446" LastEditorDisplayName="" LastEditDate="2011-01-06T16:28:17.743" LastActivityDate="2011-01-06T16:28:17.743" ClosedDate="2011-01-06T16:37:49.150" Title="What are things programmers shouldn't get caught not knowing?" Tags="&lt;programming-languages&gt;&lt;self-improvement&gt;" AnswerCount="5" CommentCount="5" FavoriteCount="1" />
  <row Id="34248" PostTypeId="2" ParentId="34246" CreationDate="2011-01-06T14:51:11.200" Score="13" ViewCount="" Body="&lt;p&gt;I think, the most important designation of College/University is to teach you how to learn stuff on your own. It doesn't matter, whether it is programming, physics, chemistry, math, etc. The university taught me how to learn without anyone's help.&lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2011-01-06T14:51:11.200" CommunityOwnedDate="2011-01-10T21:57:27.023" CommentCount="5" />
  <row Id="34249" PostTypeId="2" ParentId="34246" CreationDate="2011-01-06T14:51:11.293" Score="4" ViewCount="" Body="&lt;p&gt;I think your foundation will be solid, provided you have the discipline to actually sit down and teach yourself all those things and work through the examples.  I have a degree, but it's in Engineering, not Computer Science.  I've worked with plenty of excellent professional programmers who have taught themselves everything they need to know.  Self-study is something you'll need to have anyway to be a good programmer, as there is always a new technology coming out that you didn't learn in school.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2011-01-06T14:51:11.293" CommunityOwnedDate="2011-01-10T21:57:27.023" />
  <row Id="34250" PostTypeId="2" ParentId="34231" CreationDate="2011-01-06T14:54:42.000" Score="5" ViewCount="" Body="&lt;p&gt;Productivity is the end result of a given individual performing at a given rate. That given rate is subjective based on how the individual operates in a given atmosphere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something as simple as dual monitors has been known to increase productivity yet until recently has been avoided by management as an unneeded cost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would go so far as to argue the most important productivity tool is a conducive atmosphere towards productivity as defined by the given individual. Working at home...dual monitors...working amongst teammates...etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a software stance the most obvious items such as an IDE, SCM, and text editor will surface however it really depends on the current focus. If building a Silverlight application was my focus the tools needed to increase productivity will differ greatly then if I was building a WinForms application. &lt;a href=&quot;http://www.fiddler2.com/fiddler2/&quot; rel=&quot;nofollow&quot;&gt;Fiddler&lt;/a&gt; would prove priceless for a Silverlight application while providing no value (generally) when building a WinForms application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While the typical tools such as an IDE, SCM, and text editor will span multiple technologies the focused tools generally provide the most significant increase in productivity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nevertheless...here would be my list...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Virtual machines (ability to rollback&#xA;to a default point in time)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.devexpress.com/Products/Visual_Studio_Add-in/Coding_Assistance/&quot; rel=&quot;nofollow&quot;&gt;CodeRush&lt;/a&gt; (when using VS)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.jetbrains.com/idea/index.html&quot; rel=&quot;nofollow&quot;&gt;IntellijIDEA&lt;/a&gt; (when using&#xA;Eclipse)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://notepad-plus-plus.org/&quot; rel=&quot;nofollow&quot;&gt;Notepad++&lt;/a&gt; (when hunting through&#xA;logs)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.fiddler2.com/fiddler2/&quot; rel=&quot;nofollow&quot;&gt;Fiddler&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://snipt.org/&quot; rel=&quot;nofollow&quot;&gt;snipt&lt;/a&gt; or other service for&#xA;sharing code via the cloud&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com&quot;&gt;stackoverflow&lt;/a&gt; (invaluable&#xA;resource)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3289" LastActivityDate="2011-01-06T14:54:42.000" CommentCount="1" />
  <row Id="34251" PostTypeId="2" ParentId="34246" CreationDate="2011-01-06T14:55:19.637" Score="5" ViewCount="" Body="&lt;p&gt;Some people thrive in academic environments and even require them to learn (usually as a form of motivation).  Others (like me) do not and can even find them off-putting.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had a long career in software without getting a degree.  Toward the end of that career I was in an architectural role and the senior architect of my project said that my knowledge of software and computer science (the two are not the same thing!) was easily equivalent to having a Master's from Waterloo University (one of Canada's top CS schools).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are some deficiencies, of course, in my knowledge pool.  My maths skills are only enough to keep up with what I'm learning today.  I hate pure maths and generally can't be arsed to keep up to date on the latest and greatest.  This has occasionally put a crimp in my comprehension of things (like, say, Haskell) until I got my maths skills up to a sufficient level to understand the concepts.  But the fact remains that the information is available without me being anywhere near a university CS or maths department.  All I can really say is that sometimes my learning sequence is suboptimal -- I occasionally have to backtrack and fill in some foundational material before continuing in what I'm doing.&lt;/p&gt;&#xA;" OwnerUserId="10246" LastActivityDate="2011-01-06T14:55:19.637" CommunityOwnedDate="2011-01-10T21:57:27.023" />
  <row Id="34252" PostTypeId="2" ParentId="34154" CreationDate="2011-01-06T14:56:48.200" Score="1" ViewCount="" Body="&lt;p&gt;You don't always have a team, at least in my case.  So being a &quot;jack of all trades&quot; is helpful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you don't have to/won't know everything, so just be good at searching Google.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll build up the skills as you need them.&lt;/p&gt;&#xA;" OwnerUserId="9987" LastActivityDate="2011-01-06T14:56:48.200" />
  <row Id="34253" PostTypeId="2" ParentId="34247" CreationDate="2011-01-06T14:59:41.793" Score="10" ViewCount="" Body="&lt;p&gt;The single most valuable piece advice I have ever been given in dealing with problem sets as a programmer is...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;You may not know the answer; nobody&#xA;  memorizes everything...but you should&#xA;  have the means to find the answer in a&#xA;  timely manner. If you don't know&#xA;  something say so...wasting time&#xA;  doesn't help me or you.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3289" LastEditorUserId="3289" LastEditorDisplayName="" LastEditDate="2011-01-06T15:10:25.713" LastActivityDate="2011-01-06T15:10:25.713" />
  <row Id="34254" PostTypeId="1" AcceptedAnswerId="34277" CreationDate="2011-01-06T15:00:20.997" Score="2" ViewCount="344" Body="&lt;p&gt;Quick Question: &lt;strong&gt;What are the Advantages and Disadvantages of using an IDE?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many Thanks,&#xA;J&lt;/p&gt;&#xA;" OwnerUserId="12464" LastActivityDate="2011-01-06T16:35:01.493" Title="What are the Advantages and Disadvantages of using an IDE?" Tags="&lt;programming-languages&gt;&lt;learning&gt;" AnswerCount="6" CommentCount="1" />
  <row Id="34255" PostTypeId="2" ParentId="34246" CreationDate="2011-01-06T15:01:49.363" Score="2" ViewCount="" Body="&lt;p&gt;As a programmer I find I am constantly playing with non-work related APIs and languages (Ruby on Rails, Python, Node.js, etc).  I do this more for interest than for work.  I have 2 associates degrees but even after 10 years of programming in Java/JEE I find that I really miss the theory of a BS degree (Big O, Algorithms, Descrete Math, etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am taking part-time evening classes to get my BS in Computer Info Systems, but there isn't much CS theory offered in this program.  I am getting my degree mainly to have the &quot;paper&quot; since it is more business than technical but it's my only option for evening classes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Check out &lt;a href=&quot;http://ocw.mit.edu/courses/&quot; rel=&quot;nofollow&quot;&gt;MIT Open Coursware&lt;/a&gt;.  It's free and is a great resource for filling in the gaps of CS/Math theory. &lt;/p&gt;&#xA;" OwnerUserId="6398" LastActivityDate="2011-01-06T15:01:49.363" CommunityOwnedDate="2011-01-10T21:57:27.023" />
  <row Id="34256" PostTypeId="2" ParentId="34254" CreationDate="2011-01-06T15:06:21.697" Score="3" ViewCount="" Body="&lt;p&gt;I count the following as advantages&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Good debuggers&lt;/li&gt;&#xA;&lt;li&gt;Editing running code(when available)&lt;/li&gt;&#xA;&lt;li&gt;Advanced code refactoring capabilities&lt;/li&gt;&#xA;&lt;li&gt;Plugins for source control etc.&lt;/li&gt;&#xA;&lt;li&gt;Automatic error checking, auto-completion etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Disadvantages&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Limited flexibility in build,run etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="11155" LastActivityDate="2011-01-06T15:06:21.697" CommentCount="2" />
  <row Id="34257" PostTypeId="2" ParentId="3615" CreationDate="2011-01-06T15:06:46.717" Score="2" ViewCount="" Body="&lt;p&gt;Gource, coreutils, gnu-sed, macvim&lt;/p&gt;&#xA;" OwnerUserId="12546" LastActivityDate="2011-01-06T15:06:46.717" CommentCount="2" />
  <row Id="34258" PostTypeId="2" ParentId="34254" CreationDate="2011-01-06T15:06:59.040" Score="0" ViewCount="" Body="&lt;p&gt;The only disadvantage I see in using an IDE is that you usually end up with another build system for your Continuous Integration servers.  Except, possibly, if you can force all programmers to use the same IDE...&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2011-01-06T15:06:59.040" />
  <row Id="34259" PostTypeId="2" ParentId="1202" CreationDate="2011-01-06T15:09:05.877" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Gary Kildall&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He created CP/M (Computer Program for Microcomputer), the first OS for IBM PC, from which MS DOS was then developed. He also created BIOS software for the first time (imagine if your PC has no BIOS). Even Bill Gates admired him. For further information about him, just search in wikipedia.&lt;/p&gt;&#xA;" OwnerUserId="12548" LastEditorUserId="12548" LastEditorDisplayName="" LastEditDate="2011-01-07T15:23:04.617" LastActivityDate="2011-01-07T15:23:04.617" CommunityOwnedDate="2011-01-06T15:09:05.877" />
  <row Id="34260" PostTypeId="2" ParentId="34246" CreationDate="2011-01-06T15:09:40.053" Score="2" ViewCount="" Body="&lt;p&gt;People tend to overestimate the importance of theoretical foundation, mathemathics and algorithmic knowledge IMO. The reasons  reasons programmers push and interview these things are that they are math &quot;buffs&quot; themselves. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now there are of course some programming where it's useful to know what a &quot;state machine&quot; is, or how to use a &quot;Booyer-Moore&quot; search.  There are even some problems where it can be useful to know some real math, like if you're working with financial calculations or physics simulations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the thing is 90% of programming generally isn't any of these, not many of us is doing hardcore algorithmic development. Most things that you need to learn you can learn as you go along. No need to construct a huge edifice of foundation but rather keep a constant curiousity how to solve different problems. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm myself 100% self-taught and I'v never had any problem to learn about algorithms. I've done job on financial systems and even that was doable without any deeper theoretical math skills. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Getting good at programming is not about foundations, it's about continually expanding your toolbox and the learning you get is so much more worth when you can put it into context of a problem that really needs solving rather than just pure theoretical research. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You don't need to know everything in detail, that's what Google, StackOverflow and Wikipedia is there for :) You do however need know the &lt;strong&gt;existence&lt;/strong&gt; of different tools and methods to realize they're usuable and applyable to your situation. You also need to get the experience of knowing which tool that's best to apply. Foundations are generally spoiled on beginners since they have no experience of why a particular tool would be useful. If you have lots of experience some things will just &quot;click&quot; into place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some things I would recommend though:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;If you haven't, start learning about design patterns, that's the most practical and universal tool in your toolbox.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Read some general overviews of different algorithms if you are curious, just so that you know what's there when you might need one&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Learn about parallelization and multithreading (and some functional programming). Being able to support multiple cores is important today and is going to undispenseble soon so it's crucial knowledge.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do challenging and experimental hobby projects that push your skill forwards and forces you to learn things in context.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="12354" LastEditorUserId="12354" LastEditorDisplayName="" LastEditDate="2011-01-06T15:38:01.977" LastActivityDate="2011-01-06T15:38:01.977" CommunityOwnedDate="2011-01-10T21:57:27.023" CommentCount="2" />
  <row Id="34261" PostTypeId="2" ParentId="34178" CreationDate="2011-01-06T15:10:09.600" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Bob Martin sees us as detail managers and our problems are at the detail level.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Our problems are at the detail level because we are detail managers.  If we worked at a higher level of abstraction the details would take care of themselves and we would no longer have to manage them.&lt;/p&gt;&#xA;" OwnerUserId="4572" LastActivityDate="2011-01-06T15:10:09.600" />
  <row Id="34262" PostTypeId="2" ParentId="34246" CreationDate="2011-01-06T15:14:28.007" Score="2" ViewCount="" Body="&lt;p&gt;As with most things in life, my answer is a solid &lt;strong&gt;it depends on the person&lt;/strong&gt;. I firmly believe that you do not need a bachelors degree to be to be programmer; however, based on my experience, college has a tendency to expose people to issues and ideas that they may not encounter on their own through independent study. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this day and age a motivated person can go online, and thanks to sources such as &lt;a href=&quot;http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/&quot; rel=&quot;nofollow&quot;&gt;MIT Open Courseware&lt;/a&gt;, put together a course of independent study that will given them a fairly wide breadth of knowledge and it this this breadth of knowledge that I feel is what makes a good developer. However, someone that isn't as self motivated might find that they are able to get by learning a single language and might be able to just get by career wise. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I stated before, I feel that it is the breadth of knowledge that is what makes a good developer as it means that they have been exposed to more problems and have developed their problem solving skills. You don't need to go to school to get this breadth of knowledge, but school definitely helps in this regards as a good degree program will force you to develop a breadth of knowledge.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2011-01-06T15:14:28.007" CommunityOwnedDate="2011-01-10T21:57:27.023" />
  <row Id="34263" PostTypeId="2" ParentId="34139" CreationDate="2011-01-06T15:14:37.383" Score="0" ViewCount="" Body="&lt;p&gt;We had this policy at my last job, and it was never really problematic. We had user.daily or feature.daily branches for code that didn't compile or run, and once the code built and had undergone some basic testing (it doesn't segfault as soon as you run it, etc.) then it would get merged into the feature branch.  Once a feature was complete and unit tested it would get merged into the master branch. This way nobody's build was ever unexpectedly broken, and we had code being stored somewhere other than the developers workstations.&lt;/p&gt;&#xA;" OwnerUserId="7042" LastActivityDate="2011-01-06T15:14:37.383" CommunityOwnedDate="2011-01-06T15:14:37.383" />
  <row Id="34264" PostTypeId="2" ParentId="34254" CreationDate="2011-01-06T15:14:56.820" Score="2" ViewCount="" Body="&lt;p&gt;One disadvantage with an IDE is that if you are new to the technology it will hinder your absolute learning of the given technology as it may resolve to hand holding in certain scenarios.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the flip side if you are familiar with the technology it &lt;em&gt;has the potential&lt;/em&gt; to greatly reduce the manual effort across the board that can come with software development.&lt;/p&gt;&#xA;" OwnerUserId="3289" LastActivityDate="2011-01-06T15:14:56.820" />
  <row Id="34265" PostTypeId="1" AcceptedAnswerId="34307" CreationDate="2011-01-06T15:16:06.973" Score="10" ViewCount="275" Body="&lt;p&gt;During our interview process we give the candidate a programming test as well as a programming design problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our HR department has told us to stop administering the programming test due to legal concerns.  This would really hinder our ability to screen candidates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are there other HR policies that prevent you from hiring capable programmers?&lt;/p&gt;&#xA;" OwnerUserId="12547" LastActivityDate="2011-01-06T16:19:09.853" Title="What HR policies prevent you from finding skillful programmers?" Tags="&lt;interview&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="2" />
  <row Id="34266" PostTypeId="2" ParentId="34200" CreationDate="2011-01-06T15:16:31.517" Score="1" ViewCount="" Body="&lt;p&gt;We are using &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; rel=&quot;nofollow&quot;&gt;Atlassian Jira&lt;/a&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It has many reports available like this one:&#xA;&lt;img src=&quot;http://i.imgur.com/A7rWQ.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2011-01-06T15:16:31.517" />
  <row Id="34267" PostTypeId="1" AcceptedAnswerId="34290" CreationDate="2011-01-06T15:18:23.587" Score="6" ViewCount="343" Body="&lt;p&gt;I had a friend in college who programmed something that worked the first time, that was pretty amazing.  But as for me, I just fire up the debugger as soon as I finally get whatever I'm working on to compile - saves me time (kidding of course, I sometimes hold out a little bit of hope or use a lot of premeditated debug strings).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's the best way to approach the Dijkstrain ideal for our programs? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;-or-&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this just some sort of pie-in-the-sky old fools quest for greatness applicable only to finite tasks that no one should hope for in our professional lives because programming is just too complex? &lt;/p&gt;&#xA;" OwnerUserId="1973" LastEditorUserId="1973" LastEditorDisplayName="" LastEditDate="2011-01-06T15:33:41.170" LastActivityDate="2011-01-07T22:46:12.947" Title="How to program something with the expectation that it will work the first time?" Tags="&lt;debugging&gt;&lt;efficiency&gt;" AnswerCount="11" CommentCount="4" FavoriteCount="1" />
  <row Id="34268" PostTypeId="2" ParentId="34246" CreationDate="2011-01-06T15:20:21.950" Score="2" ViewCount="" Body="&lt;p&gt;I believe it is a falacy to think that college/university will by definition give you a good programming foundation.  They will teach you a lot of theory, and a lot of different ways to think about a problem.  That's all well and good, but turning that theory into practice is a different skillset.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only effective way to teach proper application of theory is by mentoring and doing.  In short, you need to attempt to apply the theory as best you can, and rely on someone with more experience to give you constructive criticism or point you in the right direction.  Your mentor isn't going to do your work for you, but will help you be better at doing your work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't be the developer I am today without the help of some good mentors early in my career.  Working on open source projects is a good way to find some mentors that will be willing to spend some time hammering out details.  At least that was my experience.  I also had a mentor in my first programming job that helped me understand how to design easily extended applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So is there benefit to college/university?  Yes.  However, they aren't equipped to help you turn theory into practice unless you take it upon yourself.  If you start trying to apply what you are learning while at university, you can start asking the right types of questions that will help you truly understand the theory at a more practical level.  If you wait till you are on the job, you've just delayed that important learning process.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2011-01-06T15:20:21.950" CommunityOwnedDate="2011-01-10T21:57:27.023" CommentCount="1" />
  <row Id="34269" PostTypeId="2" ParentId="34267" CreationDate="2011-01-06T15:22:20.417" Score="2" ViewCount="" Body="&lt;p&gt;Of course I have, the very first one!&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;10 print &quot;mattias&quot;&#xA;20 goto 10&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But in all seriousness, why would you want to do? Programming is an incremential process, doing it in one stroke is like eating a melon in one gulp.&lt;/p&gt;&#xA;" OwnerUserId="12354" LastEditorUserId="12354" LastEditorDisplayName="" LastEditDate="2011-01-06T15:27:21.287" LastActivityDate="2011-01-06T15:27:21.287" CommentCount="2" />
  <row Id="34270" PostTypeId="1" AcceptedAnswerId="34284" CreationDate="2011-01-06T15:23:12.683" Score="3" ViewCount="176" Body="&lt;p&gt;I'm currently altering a widely used class to move as much of the expensive initialization from the class constructor into Lazy Initialized properties. Below is an example (in c#):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class ClassA&#xA;{&#xA;    public readonly ClassB B;&#xA;&#xA;    public void ClassA()&#xA;    {&#xA;        B = new ClassB();&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;After:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class ClassA&#xA;{&#xA;    private ClassB _b;&#xA;&#xA;    public ClassB B&#xA;    {&#xA;        get&#xA;        {&#xA;            if (_b == null)&#xA;            {&#xA;                _b = new ClassB();&#xA;            }&#xA;&#xA;            return _b;&#xA;        }&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;There are a fair few more of these properties in the class I'm altering, and some are not used in certain contexts (hence the Laziness), but if they are used they're likely to be called repeatedly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, the properties are often also used inside the class. This means there is a potential for the private variable (_b) to be used directly by a method without it being initialized.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a way to make only the public property (B) available inside the class, or even an alternative method with the same initialized-when-needed?&lt;/p&gt;&#xA;" OwnerUserId="3526" LastActivityDate="2011-01-06T15:43:43.597" ClosedDate="2011-01-06T16:30:31.670" Title="Best methods for Lazy Initialization with properties" Tags="&lt;best-practices&gt;&lt;c#&gt;&lt;recommendations&gt;&lt;alternative&gt;&lt;lazy-initialization&gt;" AnswerCount="1" CommentCount="8" FavoriteCount="2" />
  <row Id="34271" PostTypeId="2" ParentId="34254" CreationDate="2011-01-06T15:24:34.803" Score="0" ViewCount="" Body="&lt;p&gt;In the general case the only real benefit from using an IDE is that it is integrated.  There is no need to flip over to a separate debugger when it comes time to debug your code.  There are no real disadvantages in the general case.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Focusing on how all IDEs I have seen in the real world work, there are disadvantages IDEs tend to be so point and click that devs(especially new devs) tend to not understand what is going on when they click the build button. Maybe it is just me but I find IDEs try to do to much and get in the way.  Like every time you try to type a line of code you type it pops up half a dozen times with suggestions of what you were trying to type which completely breaks your train of thought\flow.&lt;/p&gt;&#xA;" OwnerUserId="4572" LastActivityDate="2011-01-06T15:24:34.803" />
  <row Id="34272" PostTypeId="2" ParentId="34247" CreationDate="2011-01-06T15:25:52.410" Score="4" ViewCount="" Body="&lt;p&gt;Don't get caught not knowing the difference between passing a parameter by value and by reference.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That'll make you look pretty dumb.&lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2011-01-06T15:25:52.410" CommentCount="1" />
  <row Id="34274" PostTypeId="2" ParentId="34267" CreationDate="2011-01-06T15:26:48.007" Score="1" ViewCount="" Body="&lt;p&gt;For me it typically happens with single components of fairly simple complexity.  I think it is a good exercise to do once in a while as it forces you to fully think through the &quot;flow&quot; of your code rather than the tweak and compile method.  It also makes you faster in the long term because you will eventually get better at writing clean code from the outset and thus spend less time fixing things.  If you constantly depend on the compiler you will always have the overhead associated with &quot;tweak/compile&quot;.&lt;/p&gt;&#xA;" OwnerUserId="6398" LastActivityDate="2011-01-06T15:26:48.007" />
  <row Id="34275" PostTypeId="2" ParentId="34267" CreationDate="2011-01-06T15:26:55.000" Score="6" ViewCount="" Body="&lt;p&gt;&quot;I just fire up the debugger as soon as I finally get whatever I'm working on to compile - saves me time.&quot; This scares me in so many ways. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, I have frequently with small modules. Complete features or subsystem are really hard to get right the first time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Is this just some sort of pie-in-the-sky old fools quest for greatness applicable only to finite tasks that no one should hope for in our professional lives because programming is just too complex&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Actually, I think this should ALWAYS be your primary goal when writing software. Too many programmers abuse the fact that is rather easy to just change a piece of code and recompile. This method should NOT be your primary way solving software problems. Everyone makes mistake, but if you are going back into a module more than say 3 time to fix something then you either have a design flaw or you have no idea what the code your writing is supposed to do. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is some leeway if your learning a new technology. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2011-01-06T15:47:46.773" LastActivityDate="2011-01-06T15:47:46.773" CommentCount="10" />
  <row Id="34276" PostTypeId="2" ParentId="34267" CreationDate="2011-01-06T15:26:58.290" Score="5" ViewCount="" Body="&lt;p&gt;Yes, there have been numerous university assignments and app features at work that just worked the first time I tried. It doesn't happen every time, but it does happen.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's not much to it. It just came down to having a good handle on what I was doing and not rushing the implementation. Being very familiar with other parts of the program also helped since I wasn't as susceptible to being tripped up by assumptions about someone else's code.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2011-01-06T15:26:58.290" />
  <row Id="34277" PostTypeId="2" ParentId="34254" CreationDate="2011-01-06T15:29:34.850" Score="5" ViewCount="" Body="&lt;p&gt;The big advantage of an IDE is that it's integrated.  For example, this means that the editor has access to some of the compiler information, making it easier for the editor to provide active assistance in code writing.  IDEs are also attractive for people wanting to enhance them, and so there's generally plugins available (that may or may not be better than separate apps).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The big disadvantage is that it's a package deal.  The editor, compiler, build system, and debugger are usually in the package, and possibly other things like code generators, version control systems and bug tracking.  If you like all of these, that's great.  If you'd like to change some, that can be a problem.  Many IDEs make it relatively easy to swap some things around, typically with plugins, but others don't, and there's always some hassle.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2011-01-06T15:29:34.850" CommentCount="1" />
  <row Id="34278" PostTypeId="2" ParentId="34231" CreationDate="2011-01-06T15:30:52.587" Score="0" ViewCount="" Body="&lt;p&gt;In my opinion, most of the answers have been covered... except &lt;a href=&quot;http://stackoverflow.com&quot;&gt;stackoverflow.com&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11155" LastActivityDate="2011-01-06T15:30:52.587" CommentCount="1" />
  <row Id="34279" PostTypeId="1" CreationDate="2011-01-06T15:34:04.080" Score="0" ViewCount="75" Body="&lt;p&gt;I am currently taking Business IT Foundation Degree course which involves SDLC and its my first year. I will be going out in the industry for the second year and I would just like to know some facts before launching out. I have been asked to create a system to enable the company to manage their staff and also to create a windows based system where users can register, view their details and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am required to create:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Several UML use case diagrams &lt;/li&gt;&#xA;&lt;li&gt;A conceptual class Diagram &lt;/li&gt;&#xA;&lt;li&gt;Test cases and test logs&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These have to been done for the windows based system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My concern is that I am not sure what a windows based system is and secondly I am having difficulties creating the diagrams as I am not familiar with them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Could anyone be kind enough to explain what they are and how I go about doing them please?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you.&lt;/p&gt;&#xA;" OwnerUserId="12514" LastEditorUserId="882" LastEditorDisplayName="" LastEditDate="2011-01-06T15:45:23.037" LastActivityDate="2011-01-06T15:45:23.037" ClosedDate="2011-01-06T16:42:47.117" Title="Advice on Software Development" Tags="&lt;sdlc&gt;" AnswerCount="1" CommentCount="4" FavoriteCount="1" />
  <row Id="34280" PostTypeId="2" ParentId="34265" CreationDate="2011-01-06T15:37:44.143" Score="3" ViewCount="" Body="&lt;p&gt;There's screening.  In many places, HR screens all resumes and applications, and may screen out good people.  There's a possibly apocryphal story about Mitch Kapor, who founded Lotus (unless I'm getting my companies wrong):  he took the resumes of the first fifty Lotus employees, changed the specifics so they wouldn't be recognized, and had them submitted to HR, which promptly rejected all of them.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2011-01-06T15:37:44.143" CommentCount="2" />
  <row Id="34281" PostTypeId="2" ParentId="34279" CreationDate="2011-01-06T15:38:29.170" Score="1" ViewCount="" Body="&lt;p&gt;See the following links:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.agilemodeling.com/artifacts/useCaseDiagram.htm&quot; rel=&quot;nofollow&quot;&gt;Use Case Diagrams&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.agilemodeling.com/artifacts/classDiagram.htm&quot; rel=&quot;nofollow&quot;&gt;Class Diagrams&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://readyset.tigris.org/nonav/templates/test-cases.html&quot; rel=&quot;nofollow&quot;&gt;Example Test Cases&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2011-01-06T15:38:29.170" />
  <row Id="34283" PostTypeId="2" ParentId="966" CreationDate="2011-01-06T15:42:27.030" Score="1" ViewCount="" Body="&lt;p&gt;Stephen Kings - On Writing,  No I'm serious so stick with me! :) I realized that the coding process actually have a lot in coming with the authoring process. First you need to get things  down on paper/code, then you need to edit/refactor it. You need to let the book/code &quot;rest&quot; a little sometimes before coming back to it with new realizations etc etc&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read the book and think about how it applies to coding&lt;/p&gt;&#xA;" OwnerUserId="12354" LastActivityDate="2011-01-06T15:42:27.030" CommunityOwnedDate="2011-01-06T15:42:27.030" />
  <row Id="34284" PostTypeId="2" ParentId="34270" CreationDate="2011-01-06T15:43:43.597" Score="1" ViewCount="" Body="&lt;p&gt;I am a big fan of auto-properties precisely because the private member is not being used directly. I think that you want to move these lazy properties into separate container classes. By the way, do you need multiple instances? If not, then they could be static. Also, if the class is small enough, and you are disciplined enough, then you can leave things as they are now. Finally, the upside of SO is that John Skeet preys on C# questions like these; the downside is that it might be marked as subjective, which I do not think it is. Not knowing the best way to do it is the reason why you have the question to begin with.&lt;/p&gt;&#xA;" OwnerUserId="934" LastActivityDate="2011-01-06T15:43:43.597" CommentCount="1" />
  <row Id="34285" PostTypeId="2" ParentId="34267" CreationDate="2011-01-06T15:44:18.717" Score="0" ViewCount="" Body="&lt;p&gt;For me, whatever I write just works first time, isn't that what happens to everyone else?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In all seriousness, programming is like typing with your eyes closed, the more you write the more likely you are to make a mistake and the longer it will take to find it. If you take special care, you may be able to write a fair deal, but if you can't be sure it's right then what's the point?&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2011-01-06T15:44:18.717" />
  <row Id="34286" PostTypeId="1" AcceptedAnswerId="34298" CreationDate="2011-01-06T15:40:31.647" Score="9" ViewCount="220" Body="&lt;p&gt;Hey,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have some trouble with picking the right license for my works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have a few requirements:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Not copyleft like the GNU (L)GPL and allows for redistribution under other licenses&lt;/li&gt;&#xA;&lt;li&gt;Allows other people to redistribute your (modified) work but prevents that other people freely make money off my work (they need to ask/buy a commercial license if they want to)&lt;/li&gt;&#xA;&lt;li&gt;Compatible with the GNU (L)GPL&lt;/li&gt;&#xA;&lt;li&gt;Not responsible for any damage caused by my work&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Now, I wrote my own little license based on the BSD and CC Attribution-NonCommercial 3.0 licenses, but I am not sure if it will hold in court.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;Copyright &lt;strong&gt;&amp;lt;year&amp;gt;&lt;/strong&gt; &lt;strong&gt;&amp;lt;copyright holder&amp;gt;&lt;/strong&gt;. All rights reserved.&#xA;&#xA;Redistribution of this work, with or without modification, are permitted&#xA;provided that the following conditions are met:&#xA;&#xA;   1. All redistributions must attribute &lt;strong&gt;&amp;lt;copyright holder&amp;gt;&lt;/strong&gt; as the original&#xA;      author or licensor of this work (but not in any way that suggests that&#xA;      they endorse you or your use of the work).&#xA;   2. All redistributions must be for non-commercial purposes and free of charge&#xA;      unless specific written permission by &lt;strong&gt;&amp;lt;copyright holder&amp;gt;&lt;/strong&gt; is given.&#xA;&#xA;This work is provided by &lt;strong&gt;&amp;lt;copyright holder&amp;gt;&lt;/strong&gt; &quot;as is&quot; and any express or implied&#xA;warranties are disclaimed. &lt;strong&gt;&amp;lt;copyright holder&amp;gt;&lt;/strong&gt; is not liable for any damage&#xA;arising in any way out of the use of this work.&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now, you could help me by either:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Point me to an existing license which is satisfies my requirements&lt;/li&gt;&#xA;&lt;li&gt;Confirm that my license has no major flaws and most likely would hold in court&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;  Can you define &quot;compatible with the GNU (L)GPL&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;compatible with the GNU (L)GPL&quot; means that all code licensed under it is able to be imported in a GNU (L)GPL project, but not (necessarily) vice-versa.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used the wording &quot;non-commercial&quot; but I mean it should be illegal to ask for money for a (modified) redistribution unless you bought the &quot;commercial&quot; license.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So basicly I'm asking something impossible. In order of importance for me:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Not copyleft like the GNU (L)GPL and allows for redistribution under other licenses&lt;/li&gt;&#xA;&lt;li&gt;Compatible with the GNU (L)GPL&lt;/li&gt;&#xA;&lt;li&gt;Allows other people to redistribute your (modified) work but prevents that other people freely make money off my work (they need to ask/buy a commercial license if they want to)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The first and second are perfectly compatible, but the last is not compatible with the second, and going open-source is not compatible with the first. RAAH!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is the new license I'll be using. 10 lines, quick to the point and tight (from a IANAL view).&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;Copyright &lt;strong&gt;&amp;lt;year&amp;gt;&lt;/strong&gt; &lt;strong&gt;&amp;lt;copyright holder&amp;gt;&lt;/strong&gt;. All rights reserved.&#xA;&#xA;Redistribution of this work, with or without modification, is permitted if&#xA;&lt;strong&gt;&amp;lt;copyright holder&amp;gt;&lt;/strong&gt; is attributed as the original author or licensor of&#xA;this work, but not in any way that suggests that &lt;strong&gt;&amp;lt;copyright holder&amp;gt;&lt;/strong&gt; endorses&#xA;you or your use of the work.&#xA;&#xA;This work is provided by &lt;strong&gt;&amp;lt;copyright holder&amp;gt;&lt;/strong&gt; &quot;as is&quot; and any express or implied&#xA;warranties are disclaimed. &lt;strong&gt;&amp;lt;copyright holder&amp;gt;&lt;/strong&gt; is not liable for any damage&#xA;arising in any way out of the use of this work.&lt;/pre&gt;&#xA;" OwnerUserId="12554" LastEditorUserId="12554" LastEditorDisplayName="" LastEditDate="2011-01-10T12:00:07.713" LastActivityDate="2011-01-10T12:00:07.713" Title="Picking the right license" Tags="&lt;licensing&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="2" />
  <row Id="34287" PostTypeId="2" ParentId="34247" CreationDate="2011-01-06T15:48:41.283" Score="2" ViewCount="" Body="&lt;p&gt;Even at the very start of a career, a developer should know:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Technical&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The basics of how to use a computer (switch on, start apps etc.)&lt;/li&gt;&#xA;&lt;li&gt;The basics of programming&lt;/li&gt;&#xA;&lt;li&gt;The basics of their their primary programming language&lt;/li&gt;&#xA;&lt;li&gt;The basics of their IDE&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Business&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What business their client is in&lt;/li&gt;&#xA;&lt;li&gt;The basic purpose of the current project&lt;/li&gt;&#xA;&lt;li&gt;Roughly what they are supposed to achieve on the current project&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Personal&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Their name&lt;/li&gt;&#xA;&lt;li&gt;How not to be smelly&lt;/li&gt;&#xA;&lt;li&gt;Basic manners&lt;/li&gt;&#xA;&lt;li&gt;Basic maths and literacy&lt;/li&gt;&#xA;&lt;li&gt;When to ask&lt;/li&gt;&#xA;&lt;li&gt;That they want to be a better programmer&lt;/li&gt;&#xA;&lt;li&gt;How their pants should be fastened&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Beyond the basics (and I'm sure there is a lot I could add) it really depends on the level of the developer and the business needs of their client.&lt;/p&gt;&#xA;" OwnerUserId="1928" LastActivityDate="2011-01-06T15:48:41.283" CommentCount="6" />
  <row Id="34288" PostTypeId="2" ParentId="34267" CreationDate="2011-01-06T15:48:52.717" Score="1" ViewCount="" Body="&lt;p&gt;Constant debugging to see if the code you just wrote works correctly tends to waste time in my opinion.  It can be necessary occasionally, but if the code isn't simple enough to think through it, I find it more productive to write automated tests. Then, you can just run/modify them as you code and see if your assertions are true.&lt;/p&gt;&#xA;" OwnerUserId="4949" LastActivityDate="2011-01-06T15:48:52.717" />
  <row Id="34289" PostTypeId="2" ParentId="34007" CreationDate="2011-01-06T15:50:12.437" Score="0" ViewCount="" Body="&lt;p&gt;This one is pretty old (I bought it in 1999, and I think it was already old then) but it is pretty good as a reference and for starters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/067248448X&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Shell-Programming-Revised-Stephen-Kochan/dp/067248448X&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9165" LastActivityDate="2011-01-06T15:50:12.437" />
  <row Id="34290" PostTypeId="2" ParentId="34267" CreationDate="2011-01-06T15:51:10.937" Score="4" ViewCount="" Body="&lt;p&gt;Make small components with their own standalone test harnesses that demonstrate that each piece works. Getting a program to work the first time is just a question of throwing together components (I mean &quot;pieces,&quot; I'm not talking about some particular component technology) that already work.&lt;/p&gt;&#xA;" OwnerUserId="4688" LastActivityDate="2011-01-06T15:51:10.937" CommentCount="4" />
  <row Id="34291" PostTypeId="2" ParentId="34247" CreationDate="2011-01-06T15:56:20.230" Score="1" ViewCount="" Body="&lt;p&gt;Know what you don't know. We cannot be experts in all things. We do need to know where to find information and who to ask for information.&lt;/p&gt;&#xA;" OwnerUserId="11043" LastActivityDate="2011-01-06T15:56:20.230" />
  <row Id="34292" PostTypeId="2" ParentId="34286" CreationDate="2011-01-06T15:58:21.400" Score="4" ViewCount="" Body="&lt;p&gt;As @Wooble mentions, your 1st/2nd point conflict makes this 'impossible'.  I suspect you're perhaps looking for a &lt;a href=&quot;http://en.wikipedia.org/wiki/Multi-licensing&quot; rel=&quot;nofollow&quot;&gt;dual licensing&lt;/a&gt; scenario.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will offer two extra bits of advice:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Seek out an IP Lawyer that's familiar with open source licenses to advise you.  Whatever we (the community) say comes with the typical IANAL proviso.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't create you're own license - that truly is a legal minefield, stick with ones that have at least a little bit of case law behind them (failing that, pick one that the big boys all silently agree not to screw each other over on).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Seek out an IP Lawyer that's familiar with open source licenses to advise you.  Whatever we (the community) say comes with the typical IANAL proviso.  See what I did there? :)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="611" LastActivityDate="2011-01-06T15:58:21.400" CommentCount="1" />
  <row Id="34293" PostTypeId="1" AcceptedAnswerId="34318" CreationDate="2011-01-06T15:58:40.867" Score="2" ViewCount="218" Body="&lt;p&gt;Quick Question: &lt;strong&gt;What is ANT &amp;amp; MAKE?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many Thanks, &#xA;J&lt;/p&gt;&#xA;" OwnerUserId="12464" LastActivityDate="2011-01-07T03:11:49.690" ClosedDate="2011-01-06T20:23:07.350" Title="Quick Question - What is ANT &amp; MAKE?" Tags="&lt;programming-languages&gt;&lt;learning&gt;" AnswerCount="4" CommentCount="10" FavoriteCount="0" />
  <row Id="34294" PostTypeId="2" ParentId="34247" CreationDate="2011-01-06T15:59:07.047" Score="1" ViewCount="" Body="&lt;p&gt;Not knowing how to use the coffee machine...&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2011-01-06T15:59:07.047" />
  <row Id="34295" PostTypeId="2" ParentId="34265" CreationDate="2011-01-06T16:00:31.183" Score="1" ViewCount="" Body="&lt;p&gt;Ask for some evidence. The only thing I can think of is if someone found out you hired a candidate with a lower score they would have a better case for discrimination.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-06T16:00:31.183" CommentCount="2" />
  <row Id="34296" PostTypeId="2" ParentId="34293" CreationDate="2011-01-06T16:02:55.830" Score="3" ViewCount="" Body="&lt;p&gt;Apache ANT and Make are software &lt;a href=&quot;http://en.wikipedia.org/wiki/Build_automation&quot; rel=&quot;nofollow&quot;&gt;build automation&lt;/a&gt; tools.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Apache_Ant&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Apache_Ant&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Make_%28software%29&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Make_%28software%29&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Make is a key component of the GNU build toolchain.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2011-01-06T16:02:55.830" />
  <row Id="34297" PostTypeId="2" ParentId="34286" CreationDate="2011-01-06T16:03:15.340" Score="0" ViewCount="" Body="&lt;p&gt;I'm no expert but your licenses demands things are free and non-commercial which isn't a restriction of the GPL so in that sense it wouldn't be compatible with the GPL which very intentionality doesn't make that demand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition, you want people to be able to re-license under other licenses, but presumably you want to retain the not for profit type clause so that's not going to work as either it's licensed under the other license (in which case making money is likely an option) or it's under your license.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It sounds to me like you want an Open Source license that isn't actually that open at all in that you want to restrict for profit use of your work.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally I think the first thing you need to do is work out whether you're open or closed as at the moment you're half and half and that's what's causing problems as it's not an easy partnership.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2011-01-06T16:08:57.330" LastActivityDate="2011-01-06T16:08:57.330" />
  <row Id="34298" PostTypeId="2" ParentId="34286" CreationDate="2011-01-06T16:03:37.797" Score="6" ViewCount="" Body="&lt;p&gt;The problem is your non-commercial requirement, which means that your license will neither be Open Source (as defined by the Open Source Initiative) nor Free (as defined by the Free Software Foundation).  It makes your license incompatible with any version of the GPL, so it is impossible to satisfy all your requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to keep the non-commercial restriction, you could look at the Creative Commons licenses; they aren't recommended for software, but you may find one that does what you want.  I know of no repository for non-OS/Free licenses other than that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want some sort of legal assurance on your license, you've got basically two options:  use one that has been vetted by somebody's lawyers (typically a real Open Source/Free license), or hire your own.  This community contains lots of people with some layman's knowledge of the law (often extensive), but not all that many real lawyers, and a lawyer would be extremely unlikely to provide any sort of professional assurance for free.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2011-01-06T16:03:37.797" CommentCount="3" />
  <row Id="34299" PostTypeId="2" ParentId="34265" CreationDate="2011-01-06T16:04:14.310" Score="1" ViewCount="" Body="&lt;p&gt;Oh there's plenty I've run across in the past&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Not allowed to get someone on the premises (security risk)&lt;/li&gt;&#xA;&lt;li&gt;Not allowed to use any equipment during interview (health and safety)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;It goes on....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I like to call HR 'Legal Compliance' as most HR functions now revolve around avoiding perceived legal issues.  I say perceived because in reality that's what most of them are.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Push&lt;/em&gt; back at your HR department, make them do their jobs and get them to tell you exactly why you can't have a test.  I'll be impressed if they come up with genuine case law to support their argument.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2011-01-06T16:04:14.310" CommentCount="2" />
  <row Id="34301" PostTypeId="2" ParentId="34286" CreationDate="2011-01-06T16:05:40.667" Score="0" ViewCount="" Body="&lt;p&gt;Your non-commercial use requirement is incompatible with the (L)GPL.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The GPL only allows the addition of a predefined set of &lt;a href=&quot;http://www.gnu.org/licenses/gpl.html#section7&quot; rel=&quot;nofollow&quot; title=&quot;GNU General Public License Version 3, section 7. Additional Terms.&quot;&gt;additional terms&lt;/a&gt;: any other restrictions are disallowed.&lt;/p&gt;&#xA;" OwnerUserId="4319" LastActivityDate="2011-01-06T16:05:40.667" />
  <row Id="34302" PostTypeId="2" ParentId="34246" CreationDate="2011-01-06T16:06:11.203" Score="1" ViewCount="" Body="&lt;p&gt;One thing that college will help you with that you may find difficulty getting on your own is the ability to read and understand academic research papers especially the math.  However, even this can be achieved on your own, but it helps to have instructors and peers guiding you in the learning process to get the knowledge quicker and easier.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a general programmer of information systems, you will not likely read research papers to do well.  Today's information systems are fairly simple and most of the intense algorithms such as searching, sorting and indexing are done by the database systems.  As long as you understand the concepts you should have no difficulty.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you decide to get involved in more difficult areas of programming such as developing micro-operating systems, compiler development, artificial intelligence and such, then having the ability to read and understand research papers can be critical to implementing systems quickly and efficiently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As far as being able to apply knowledge, that is very individualistic. People that go to college may not be able to apply the principles as well os someone that does not go to college.  There is an old saying that goes, 'it does not matter what goes in but what comes out'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To sum up, the knowledge you obtain from going to college can help you better understand and communicate with the academic world.  However, the knowledge can be achieved without going to college.  Having a degree makes it easier to persuade others that you know what you are doing and can understand academic research papers.  &lt;/p&gt;&#xA;" OwnerUserId="11978" LastEditorUserId="11978" LastEditorDisplayName="" LastEditDate="2011-01-06T16:40:04.903" LastActivityDate="2011-01-06T16:40:04.903" CommunityOwnedDate="2011-01-10T21:57:27.023" />
  <row Id="34303" PostTypeId="2" ParentId="34231" CreationDate="2011-01-06T16:06:49.370" Score="0" ViewCount="" Body="&lt;p&gt;The fastest and often most expensive workstation you can buy.&lt;/p&gt;&#xA;" OwnerUserId="6644" LastActivityDate="2011-01-06T16:06:49.370" />
  <row Id="34304" PostTypeId="2" ParentId="34227" CreationDate="2011-01-06T16:14:29.927" Score="18" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Start small and start with documentation, tests and other activities that allow you to get into the culture of the open source project.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Barriers include lack of documentation, no quick start-up for developers, no mentors and no issues specifically geared for newbies to tackle.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So I started on &lt;a href=&quot;http://pcgen.sf.net&quot; rel=&quot;nofollow&quot;&gt;PCGen&lt;/a&gt; by:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Tidying up some of the docs, which got me lots of kudos from the rest of the contributors (no-one likes docs).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Providing short simple test cases for issues&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Being a friendly voice in the community (answering simple Q's, building an FAQ etc)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;helping triage bugs/issues etc&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;After 2 months of that I was part of the community, understood how the various bits connected and had contributed towards a developers start-up guide which I then followed to get a fully fledged local dev environment going.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I then spent time picking off low level bugs so I got used to the coding style, how to submit patches etc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Got into meater stuff after that and the rest is a long boring tale about me, so I'll stop there :).&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2011-01-10T10:28:51.690" LastActivityDate="2011-01-10T10:28:51.690" />
  <row Id="34305" PostTypeId="2" ParentId="34231" CreationDate="2011-01-06T16:15:07.837" Score="0" ViewCount="" Body="&lt;p&gt;All the above, and:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A notepad &amp;amp; Pen next to my computer - to scribble in and put lines through stuff.&lt;/li&gt;&#xA;&lt;li&gt;Headphones and some tunes to zone out of office noise and get on with stuff (unless you get a quiet office, or your own room with a closable door)&lt;/li&gt;&#xA;&lt;li&gt;Close supply of caffeinated drinks.&lt;/li&gt;&#xA;&lt;li&gt;2 monitors!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Oh - programs.. Sure. Again in addition to the above:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A browser so you can check before reinventing the wheel, or solve a problem in considerably less time (not for copy pasting, or wasting time on StackExchange/FB). Also handy for talking with CI setups.&lt;/li&gt;&#xA;&lt;li&gt;SSH Client if you talk to servers.&lt;/li&gt;&#xA;&lt;li&gt;Source of music/white noise/pink noise.&lt;/li&gt;&#xA;&lt;li&gt;GNU Screen. Must have...&lt;/li&gt;&#xA;&lt;li&gt;IM client to share the occasional WTF if you expect to look at someone elses code..&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6630" LastActivityDate="2011-01-06T16:15:07.837" />
  <row Id="34306" PostTypeId="2" ParentId="34265" CreationDate="2011-01-06T16:16:27.123" Score="4" ViewCount="" Body="&lt;p&gt;&quot;We need someone with X years experience in technologies Y and Z.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Experience is great, but we really need someone that can learn quickly.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2011-01-06T16:16:27.123" CommentCount="2" />
  <row Id="34307" PostTypeId="2" ParentId="34265" CreationDate="2011-01-06T16:19:09.853" Score="8" ViewCount="" Body="&lt;p&gt;Two things I've seen at my current job:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Inappropriate job titles&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We wanted to hire a senior level system admin to do manage our development/production environment.  The job also required implementing new security measures for HIPAA.  Anyway, the job title was 'Director of Hosted Systems and Security' because half of the technology department is made up of directors.  The resumes we got were from people with a ton of high level experience.  One guy managed the server farm for MacDonalds and had not been hands on in years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We were getting nowhere, because all of the people HR was bringing in for interviews had been hands off management types.  I posted the description under a different title.  I knew a lot of network engineers/sys admins from my previous job and one of them saw it and applied.  I had reached out to a couple of people directly from my prev job, but no one wanted to make any moves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Inappropriate job responsibilites&lt;/b&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my current shop, we're all server side java programmers, and no one is really good on the front end in terms of javascript, html, or css.  Now the javascript is easy (but trying to get some people to learn jquery is a pain) but no one even wants to learn that part.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We needed to find a front end developer for our department's projects who could also do projects for our Client Services and Marketing departments.  The job description we posted kept requiring java skills, even when that's not what we really needed.  &lt;b&gt;Sometimes HR thinks that all of the tech people interchangeable &lt;/b&gt;and should have the same skills.&lt;/p&gt;&#xA;" OwnerUserId="7509" LastActivityDate="2011-01-06T16:19:09.853" CommentCount="1" />
  <row Id="34308" PostTypeId="1" CreationDate="2011-01-06T16:21:40.033" Score="0" ViewCount="66" Body="&lt;p&gt;I had hard time finding algorithm or published papers on Self intersecting polygon(also polygon with hole structure) triangulation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can any one guide me to find published paper/algorithm, please?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: someone tag this question appropriately please, I do not have enough reputation points to do it.&lt;/p&gt;&#xA;" OwnerUserId="1678" LastActivityDate="2011-01-06T16:21:40.033" ClosedDate="2011-01-06T21:55:35.497" Title="Algorithms for Polygon triangulation" Tags="&lt;algorithms&gt;" CommentCount="5" />
  <row Id="34309" PostTypeId="2" ParentId="33867" CreationDate="2011-01-06T16:32:03.807" Score="1" ViewCount="" Body="&lt;p&gt;There is already a standard tool available to do this job:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;svn_load_dirs.pl&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;As stated as a solution to question in SVN Forum post &quot;Import 50 manual full-backups&quot;: &lt;a href=&quot;http://www.svnforum.org/2017/viewtopic.php?t=5292&quot; rel=&quot;nofollow&quot;&gt;http://www.svnforum.org/2017/viewtopic.php?t=5292&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;and&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In SVN Forum question &quot;Importing New Code into Repository&quot;: &lt;a href=&quot;http://www.svnforum.org/2017/viewtopic.php?t=4859&quot; rel=&quot;nofollow&quot;&gt;http://www.svnforum.org/2017/viewtopic.php?t=4859&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I expect to accept this, my own answer to my question.&lt;/p&gt;&#xA;" OwnerUserId="9267" LastActivityDate="2011-01-06T16:32:03.807" />
  <row Id="34310" PostTypeId="2" ParentId="34267" CreationDate="2011-01-06T16:32:20.933" Score="2" ViewCount="" Body="&lt;p&gt;Look at Test Driven Development TDD.  By it's nature of writing a test before code it never works the first time. :-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;TDD is probably the best framework for writing quality reliable code.  It has the best test coverage and by it's design reduces the amount of &quot;what if&quot; code.  Since you have to write a test before you write code it also IMO reduces the amount of extra features that a programmer things are &quot;cool&quot;, since the developer actually has to create a full test scenario around that cool, but unnecessary feature.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2011-01-06T16:32:20.933" CommentCount="2" />
  <row Id="34311" PostTypeId="1" AcceptedAnswerId="34316" CreationDate="2011-01-06T16:33:06.627" Score="3" ViewCount="274" Body="&lt;p&gt;&lt;strong&gt;&lt;em&gt;Disclaimer&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;: this is all made up. Honest. And it represents no clients or employers living or dead, blah blah blah, etc.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[Allegedly] As part of a website I've built, I've now been provided the Terms and Conditions of site usage to display on the site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These terms--which &lt;strong&gt;&lt;em&gt;must&lt;/em&gt;&lt;/strong&gt; be agreed to to access the site--include my (or any visitor to the sites) compliance with a number of clauses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many of these clauses refer to general computer use and are not tied specifically to use of the site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of these clauses refer to things I have had to previously do as a legitimate part of my job and would expect to have to do again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I've raised similar issues previously my line manager has said just to ignore it but that doesn't seem to be the &lt;em&gt;professional&lt;/em&gt; thing to do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, what do I do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Abiding by the terms would mean that I could no longer work on the project and would cause issues with my employer and the owner of the business the site is being created for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ignoring them could lead to possible future issues with the business owner and is not something I'm necessarily happy with (the deliberate breaking of a legal contract).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Neither option is one I'd choose and could have major consequences. Any thoughts?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;update:&lt;/strong&gt;&lt;br&gt;&#xA;From the Ts&amp;amp;Cs  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Subject to these Terms (including,&#xA;  without limitation, the YOUR&#xA;  RESPONSIBILITIES section set forth&#xA;  below), we hereby grant you, if and&#xA;  only to the extent the necessary&#xA;  functionality is provided to you on or&#xA;  through the Site, the following&#xA;  limited, revocable, non-exclusive,&#xA;  non-transferable, non-assignable,&#xA;  worldwide, royalty-free rights and&#xA;  licenses (each a &quot;License&quot;): &lt;/p&gt;&#xA;  &#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;the License to access, view and otherwise use the Site (including,&#xA;  ....&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="1162" LastEditorUserId="1162" LastEditorDisplayName="" LastEditDate="2011-01-07T09:07:45.670" LastActivityDate="2011-01-07T11:24:54.810" Title="What if you've been asked to develop a site and the client later introduces Ts&amp;Cs that you'll breach whilst doing your job?" Tags="&lt;career&gt;&lt;advice&gt;&lt;legal&gt;" AnswerCount="7" CommentCount="6" />
  <row Id="34312" PostTypeId="2" ParentId="34254" CreationDate="2011-01-06T16:35:01.493" Score="0" ViewCount="" Body="&lt;p&gt;Cons: When it comes time to build a deployment or build on a separate system you don't actually know how to build the code.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pros: Lots of them here, I don't really have any to add.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2011-01-06T16:35:01.493" />
  <row Id="34313" PostTypeId="2" ParentId="1202" CreationDate="2011-01-06T16:41:30.920" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;John Von Neuman&lt;/strong&gt;&#xA;No mention of John Von Neuman?&lt;/p&gt;&#xA;" OwnerUserId="12556" LastActivityDate="2011-01-06T16:41:30.920" CommunityOwnedDate="2011-01-06T16:41:30.920" />
  <row Id="34314" PostTypeId="2" ParentId="34311" CreationDate="2011-01-06T16:43:22.873" Score="0" ViewCount="" Body="&lt;p&gt;For the crazier clauses that don't pass the sniff test, they would be thrown out in court, so you need not worry about those.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the other clauses that might stand a legal investigation, I would research for any actual cases where someone has been sued.  If you can come up with hard examples of cases and any judgements made and show that to your manager and the manager still says to ignore it, then you might have bigger problems on your hands.  If a person cares that little for the law, they might be intentionally breaking other laws that you don't know about and it's possible you can get wrapped up in a legal case if those violations ever come to light.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're not satisfied with your manager's responses, try the next level up, if they don't care either, you might want to start looking for another job.  &lt;/p&gt;&#xA;" OwnerUserId="9479" LastActivityDate="2011-01-06T16:43:22.873" />
  <row Id="34315" PostTypeId="2" ParentId="34311" CreationDate="2011-01-06T16:44:11.873" Score="8" ViewCount="" Body="&lt;p&gt;I was about to come up with a couple of possible suggestions but in the end realized that there is only one thing that can I can say for sure...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Talk to a legal professional.&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is possible that parts of the T&amp;amp;C are not enforceable, or that you could create a back door for development (or a development server) which would allow you to bypass them, but before you could consider that...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Talk to a legal professional.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are worried that is really the only way to put your mind at rest. &lt;/p&gt;&#xA;" OwnerUserId="10624" LastActivityDate="2011-01-06T16:44:11.873" />
  <row Id="34316" PostTypeId="2" ParentId="34311" CreationDate="2011-01-06T16:44:27.317" Score="6" ViewCount="" Body="&lt;p&gt;Tell your line manager - &quot;I'm sorry but I really feel this needs to be resolved before I continue working as I don't want to get sued&quot;.&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2011-01-07T09:31:48.937" LastActivityDate="2011-01-07T09:31:48.937" CommentCount="3" />
  <row Id="34317" PostTypeId="2" ParentId="29707" CreationDate="2011-01-06T16:44:36.060" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Is anyone using MEF?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm working on a Silverlight project using the MVVM pattern.  We started by just wiring all of the VMs together as necessary through interfaces and manual dependency injection (either constructor or property injection depending on the need).  It began to get painful, and we started using MEF as basically a dependency injection framework to export certain services that are used across view models, and import them into the view models that need them.  Works perfectly and with very little code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, there are some purists out there that will say MEF is not intended for dependency injection and a &lt;em&gt;real&lt;/em&gt; dependency injection framework will do much better.  However, MEF is baked right into .NET which is a big plus, and it was enough to meet our needs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;how do I know when I should plan a new project with extensibility?&#xA;how will I know if an existing project needs to be re-written for extensibility?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMO, you should always separate concerns appropriately and use interfaces to allow for different modules to change indepently.  If you do this right, then when you find a &lt;em&gt;need&lt;/em&gt; for extensibility, MEF should be easy to add in.  But I wouldn't start a project that had no extensibility requirements and put MEF in just in case.  I would wait for there to be a need.  For existing projects, if a need arises, I would evaluate the effort of rewiring the project to use MEF versus alternative solutions versus not doing anything, and see which wins.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2011-01-06T16:44:36.060" />
  <row Id="34318" PostTypeId="2" ParentId="34293" CreationDate="2011-01-06T16:46:07.300" Score="5" ViewCount="" Body="&lt;p&gt;Ant and make are two out of dozens of build automation tools. The main job of this tools is to produce an executable binary artifact out of the source code. This can sometimes also be done by IDEs like Visual Studio or Eclipse, but their functionality regarding this is far more limited and beside that it's often a requirement to build a project by a script instead of a graphical wizard.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In more detail the functionality of build tools can include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;check prerequisites like project dependencies, license headers etc.&lt;/li&gt;&#xA;&lt;li&gt;compiling the source code&lt;/li&gt;&#xA;&lt;li&gt;running automatic tests&lt;/li&gt;&#xA;&lt;li&gt;package the binary artifact, e.g. an exe or war File (including configuration files, documentation etc)&lt;/li&gt;&#xA;&lt;li&gt;do some analysis of the project (e.g. test coverage, potential bugs) and generating reports from that&lt;/li&gt;&#xA;&lt;li&gt;deploying the binary artifact to some remote server&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="12533" LastActivityDate="2011-01-06T16:46:07.300" CommentCount="1" />
  <row Id="34319" PostTypeId="1" CreationDate="2011-01-06T16:54:17.873" Score="0" ViewCount="19" Body="&lt;p&gt;Hi,&#xA;Im doing a POC using Aspectj.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;class BaseInfo{..}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;class UserInfo extends BaseInfo{..}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;class UserService {&lt;/p&gt;&#xA;&#xA;&lt;p&gt;public void getUser(UserInfo userInfo){..}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;public void deleteUser(String userId){..}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've defined an advice, that gets invoked when I pass an UserInfo instance.But when i try to pass the BaseInfo, the advice is not getting invoked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Below block executes the afterMethod as expected for getUser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;amp;ltaop:pointcut id=&quot;aopafterMethod&quot; expression=&quot;execution(* UserService.*(..,UserInfo,..))&quot; /&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;amp;gtaop:after pointcut-ref=&quot;aopafterMethod&quot; method=&quot;afterMethod&quot; /&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But when i try to give BaseInfo instead of UserInfo, the aspect is not getting triggered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am i missing something?&#xA;Kindly help me on this issue.&lt;/p&gt;&#xA;" OwnerUserId="12558" LastActivityDate="2011-01-06T16:54:17.873" ClosedDate="2011-01-06T17:10:36.940" Title="Placing advice on any parameter of a given type in AspectJ" Tags="&lt;aspect-oriented&gt;" CommentCount="1" />
  <row Id="34320" PostTypeId="1" AcceptedAnswerId="34328" CreationDate="2011-01-06T16:58:43.063" Score="6" ViewCount="335" Body="&lt;p&gt;That is, if you agree that it's OK.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We have a need to maintain an accurate internal record of bank routing numbers, and my boss wants me to set up a process where once a week someone goes to the Federal Reserve's website, clicks on the link to get the list of routing numbers (or the link giving the updates since a particular date), and then manually uploads the resultant text file to an application that will make the update to our data.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I told him that a manual process was not at all necessary, and that I could write a routine that would access the FED's routing numbers in the application that keeps our data updated, and put it on whatever schedule was appropriate.  But he is greatly opposed to doing this, and calls it &quot;hacking the Federal Reserve website.&quot;  I think he's afraid that the FED is going to get after us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I showed him the FED's robot.txt file, and the only thing it forbids is an automated indexing of pages with extension .cf*:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;User-agent: *    # applies to all robots&#xA;Disallow:   CF   # disallow indexing of all CF* directories and pages&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This says nothing about accessing the same data automatically that you could access manually.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone have a good counterargument to the idea that we'd be &quot;hacking&quot; the FED?&lt;/p&gt;&#xA;" OwnerUserId="1351" LastActivityDate="2011-01-06T19:06:23.607" Title="How do I convince my boss that it's OK to use an application to access an outside website?" Tags="&lt;ethics&gt;&lt;boss&gt;&lt;hacking&gt;" AnswerCount="6" CommentCount="3" />
  <row Id="34321" PostTypeId="2" ParentId="34311" CreationDate="2011-01-06T17:00:46.953" Score="4" ViewCount="" Body="&lt;p&gt;They sound overly broad to me, that is legally things they have no right to constrain and therefore can not.  However, IANAL and I haven't seen them so...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd mail your manager your concerns, citing specific examples.  Say that you think that it should be raised with the client and keep the mail and any replies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the future you might want to re-emphasise it (by e-mail to him, again keep it) as and when a situation occurs that would mean you need to violate them but I wouldn't let it stop me doing my job (which remember, is also what the client has requested).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I wouldn't get too bent out of shape about it.  I'm guessing that like most of us you've not even read most Ts&amp;amp;Cs you've agreed to in the past so who knows how many times a day you're already doing this...&lt;/p&gt;&#xA;" OwnerUserId="5095" LastActivityDate="2011-01-06T17:00:46.953" />
  <row Id="34322" PostTypeId="2" ParentId="34246" CreationDate="2011-01-06T17:01:45.017" Score="1" ViewCount="" Body="&lt;p&gt;I've been developing professionally for a decade without a degree. When I interview people I'm interested in their ability to problem solve and code. Saying that, there are some companies/roles I'm not eligible for purely because they insist on a degree. Certain consultancies have this policy because they can sell you for more to clients. &lt;/p&gt;&#xA;" OwnerUserId="12559" LastActivityDate="2011-01-06T17:01:45.017" CommunityOwnedDate="2011-01-10T21:57:27.023" CommentCount="1" />
  <row Id="34323" PostTypeId="2" ParentId="34320" CreationDate="2011-01-06T17:06:26.077" Score="0" ViewCount="" Body="&lt;p&gt;Read up on RESTful web services.  Some of them are HTML-based.  You can bolster your discussion with examples of other RESTful applications.  Your boss may not get RESTful applications, and may not see how the web is designed to do exactly what you're proposing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Indeed, you can probably find an application already written which does the federal reserve page scraping.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go here: &lt;a href=&quot;http://www.gregthatcher.com/financial/default.aspx&quot; rel=&quot;nofollow&quot;&gt;http://www.gregthatcher.com/financial/default.aspx&lt;/a&gt; and see how it's done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/196149/&quot; rel=&quot;nofollow&quot;&gt;https://addons.mozilla.org/en-US/firefox/addon/196149/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since both of these do the same thing, it shows that you're in good company.  Other folks are already doing what you're proposing.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-06T17:06:26.077" CommentCount="3" />
  <row Id="34324" PostTypeId="2" ParentId="34320" CreationDate="2011-01-06T17:06:50.477" Score="2" ViewCount="" Body="&lt;p&gt;Your boss sounds like he may not be a techy person. You may be able to convince him that having a program accessing the site, is no different to having a browser accessing a site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your argument needs to be based on:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;The time it would take to write the application to manually upload to.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The time it would take to write the application that automatically scrapes the data.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The time it would take someone to manually scrape the data, perhaps over the course of one year (as opposed to the automatic one just running).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Using this, you may be able to convince him that the automatic way will save him money in the long run. Also it will run regardless of someone forgetting to do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit: as Martijn says, an official yes/no from the FED would also probably go a long way.&lt;/p&gt;&#xA;" OwnerUserId="8993" LastActivityDate="2011-01-06T17:06:50.477" CommentCount="3" />
  <row Id="34325" PostTypeId="2" ParentId="34320" CreationDate="2011-01-06T17:07:07.430" Score="11" ViewCount="" Body="&lt;p&gt;It seems to me that the Fed Bank has made that data publicly available via a 'web service of sorts'.  Why not contact them and get an official Yay/Nay from them to make your boss feel at ease?  You might then also be able to agree on a ToS etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It looks like @JonHopkins has found a relevant page, be sure to check his answer.&lt;/p&gt;&#xA;" OwnerUserId="611" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2011-01-06T17:19:38.163" LastActivityDate="2011-01-06T17:19:38.163" CommentCount="3" />
  <row Id="34326" PostTypeId="2" ParentId="34246" CreationDate="2011-01-06T17:09:52.433" Score="13" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Absolutely definitely. Yes, it's possible. How do I know? Because I did it!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's difficult. Don't have any illusions about this. With no tutor to go to when things don't work, you have to figure out problems yourself. There's a lot to learn and if you aren't self motivated or aren't dedicated enough, you won't be able to do it. For me, I find it difficult to be motivated about anything, but I enjoy learning and programming so much that I don't have to fight myself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Some tips:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Learn by doing! Want to know how binary trees work? Make one.&lt;/li&gt;&#xA;&lt;li&gt;Do by learning. Set yourself ambitious projects where you'll have to learn new things in order to complete them. &lt;em&gt;Caution: If you set yourself projects that are too hard then it's easy to become disheartened, but if you set yourself projects that are too easy, then you won't learn very much. You're looking for a butter zone.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Start with C. High-level languages make you lazy. I'd never had learnt C if I'd learnt python first.&lt;/li&gt;&#xA;&lt;li&gt;Wikipedia should be your first point of call for any concepts you need to learn.&lt;/li&gt;&#xA;&lt;li&gt;It doesn't matter if you never finish a single project, (after all, what is finished). It's much more important that you learn new things. That doesn't mean to say that you should never try to finish a project. It can be a huge motivational boost to see something you made working. It's easy to get side-tracked, don't worry if you do.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;How do you know when you are done? Well, the reason you undertake a degree is so that you will become proficient in programming. When you are sure you could write any software given a reasonable amount of time then you're a programmer, but that doesn't mean you should stop learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Incidentally, I'm now suffering from point one. Being far away from any software development companies doesn't help either.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="10037" LastEditorUserId="10037" LastEditorDisplayName="" LastEditDate="2011-01-11T06:41:58.947" LastActivityDate="2011-01-11T06:41:58.947" CommunityOwnedDate="2011-01-10T21:57:27.023" CommentCount="8" />
  <row Id="34327" PostTypeId="2" ParentId="34246" CreationDate="2011-01-06T17:16:19.950" Score="0" ViewCount="" Body="&lt;p&gt;If you play the numbers game, those with a degree get better jobs &amp;amp; pay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not everyone who got the degree learned/remembered anything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most people wouldn't take the time to learn much of the theory/background/basics as they would if they went to college. Maybe your parents would support you through 4 years of self-study; everyone else has to get a job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The drawback would be if you had a CS degree and failed have a certain level, you may be viewed as having low-horsepower. Let's face it, if you didn't get it in 4 years of spoon-feeding, you won't figure it out on the side while holding down and full-time job. Exceptions of course.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-06T17:16:19.950" CommunityOwnedDate="2011-01-10T21:57:27.023" />
  <row Id="34328" PostTypeId="2" ParentId="34320" CreationDate="2011-01-06T17:19:00.893" Score="28" ViewCount="" Body="&lt;p&gt;Point him at this page:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.federalreserve.gov/datadownload/help/default.htm#youShouldKnow&quot; rel=&quot;nofollow&quot;&gt;http://www.federalreserve.gov/datadownload/help/default.htm#youShouldKnow&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And the Automated Systems section which says it's fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&quot;The &quot;Direct download for automated systems&quot; link on the page is the URL &lt;strong&gt;that can be used by computer programs to retrieve the contents of the data package without actually using a browsing window&lt;/strong&gt;.  It performs the same function as clicking the &quot;Download file&quot; button but is presented as a URL for those who wish to automate the retrieval of data.&quot;&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As he sees it, they &lt;em&gt;want&lt;/em&gt; to be hacked.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2011-01-06T17:30:42.093" LastActivityDate="2011-01-06T17:30:42.093" CommentCount="1" />
  <row Id="34329" PostTypeId="1" CreationDate="2011-01-06T16:55:26.620" Score="1" ViewCount="166" Body="&lt;p&gt;I went to the doctor for anxiety and was prescribed a small dose of lexapro to help with anxiety and sleeping better.  I am cautious about taking it since this is the first time it's got bad enough for me to talk to someone and I'm concerned it may negatively impact my career as a software developer.  I'm also afraid that once I start it may be difficult to come off.  Does anyone on here have experience with this?  Is it likely that taking lexapro would negatively affect my problem solving skills, passion for programming or job performance?  Thanks for any suggestions.&lt;/p&gt;&#xA;" OwnerUserId="12666" LastActivityDate="2011-01-06T17:20:11.677" ClosedDate="2011-01-06T17:25:31.723" Title="anxiety and programming" Tags="&lt;career&gt;&lt;stress&gt;" AnswerCount="2" CommentCount="6" />
  <row Id="34330" PostTypeId="2" ParentId="34329" CreationDate="2011-01-06T16:57:40.243" Score="0" ViewCount="" Body="&lt;p&gt;Maybe better on webMD or programmers.SE but, is it likely? who knows.&#xA;is it possible for ANY SSRI-class drug to affect your motivation and thinking? absolutely.&lt;/p&gt;&#xA;" OwnerUserId="11857" LastActivityDate="2011-01-06T17:20:11.677" />
  <row Id="34331" PostTypeId="2" ParentId="34329" CreationDate="2011-01-06T16:59:57.653" Score="0" ViewCount="" Body="&lt;p&gt;Well if you suffer from this issue and are convinced, I cannot see how it would not affect anything you would do so I guess if you love programming so much, just go for it.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-06T17:20:11.677" />
  <row Id="34332" PostTypeId="2" ParentId="34154" CreationDate="2011-01-06T17:21:07.030" Score="1" ViewCount="" Body="&lt;p&gt;I try to know enough about all of the current technologies so that I can know when they should be applied.  For example, I'm primarily an ASP.NET developer, but I know enough to Ruby on Rails to figure out if it is better suited for a particular problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The technologies I'm actually using I try to know in and out.  If there is a particular feature in ASP.NET, I want to know it in detail and know when I should and when I shouldn't apply it.  Same goes for JQuery, CSS, and everything else I use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In order to keep up to date I listen to podcasts, subscribe to RSS feeds, peruse StackOverflow, and attend developer events.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2011-01-06T17:21:07.030" />
  <row Id="34333" PostTypeId="1" CreationDate="2011-01-06T17:22:02.833" Score="0" ViewCount="86" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/870/if-you-could-only-have-one-programming-related-book-on-your-bookshelf-what-would&quot;&gt;If you could only have one programming related book on your bookshelf what would it be and why?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;My kid bro is about to join college and I was wondering which programming book to gift him ?&lt;br&gt;&#xA;Mine was &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131103628&quot; rel=&quot;nofollow&quot;&gt;C Programming Language&lt;/a&gt; by Kerninghan and Ritchie and am wondering if you people have any other suggestions ?&lt;/p&gt;&#xA;" OwnerUserId="8987" LastActivityDate="2011-01-06T17:22:02.833" ClosedDate="2011-01-06T17:30:49.177" Title="What should be the first Programming book ?" Tags="&lt;experience&gt;&lt;books&gt;" CommentCount="3" />
  <row Id="34334" PostTypeId="1" CreationDate="2011-01-06T17:36:08.593" Score="3" ViewCount="289" Body="&lt;p&gt;Since a long time I have thrived for being able to program something I can take with me - a very small computer like a programmable calculator, gameboy, pocket PC or cellphone.&#xA;However, I didn't find anything fitting yet!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing I'm looking at is the price, because I can't afford to spend too much money on it.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What are some cheap portable programmable devices?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;All I'd need is support for uploading assembler code from my computer. I don't care about the display, a simple LCD would be sufficient. Same goes for the buttons&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have looked at programmable calculators, portable gaming consoles such as the PSP and more, however didn't find anything that fit :(&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T00:23:17.420" Title="Cheap programmable, portable device" Tags="&lt;mobile&gt;&lt;assembler&gt;&lt;handheld&gt;&lt;video-game-consoles&gt;" AnswerCount="7" CommentCount="4" />
  <row Id="34335" PostTypeId="2" ParentId="34334" CreationDate="2011-01-06T17:42:21.867" Score="0" ViewCount="" Body="&lt;p&gt;The [sharp zaurus][1] is a decent device.  It's linux based and there is a Java port for it as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;[1]: &lt;a href=&quot;http://sharp&quot; rel=&quot;nofollow&quot;&gt;http://sharp&lt;/a&gt; zaurus&lt;/p&gt;&#xA;" LastActivityDate="2011-01-06T17:43:22.157" />
  <row Id="34336" PostTypeId="2" ParentId="34334" CreationDate="2011-01-06T17:43:11.857" Score="5" ViewCount="" Body="&lt;p&gt;You could consider using an &lt;a href=&quot;http://www.arduino.cc/&quot; rel=&quot;nofollow&quot;&gt;Arduino&lt;/a&gt; board. This is very popular platform for hobbyists and there are a lot of different boards available. You could choose one that suits your needs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is an 8-bit based platform so you could only program simple games.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-06T17:43:22.157" CommentCount="1" />
  <row Id="34337" PostTypeId="2" ParentId="16483" CreationDate="2011-01-06T17:43:46.690" Score="1" ViewCount="" Body="&lt;p&gt;OpenGL is a framework, a precompiled library in external DLLs, so asking what would be the &quot;most efficient language&quot; to work with it is kind of nonsensical, since pretty much every language does external function calls exactly the same way.  But if you're worried about efficiency in an OpenGL project, you're probably working on a game, and you'll want to compile to native code to make other stuff, such as game logic, work quickly.  That rules out the .NET languages, Java, Python, and (I think) most if not all of the BASIC dialects.  I've never heard of Euphoria before, but some quick Googling says that it's an interpreted bytecode language, so we can rule that out as well, leaving you with C++ and Delphi.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you had to choose between C++ and Delphi, Delphi would be a clear winner based on your second criteria, ease of use.  Delphi code is much easier to read, and its object model and various parts of the language semantics are better thought-out and less prone to unexpected pitfalls.  &lt;a href=&quot;http://stackoverflow.com/questions/1111537/why-do-you-use-delphi/1111716#1111716&quot;&gt;In Delphi things you don't really understand tend to go right, whereas they tend to go wrong in C++.&lt;/a&gt;  I'm actually building a game engine in Delphi myself, and it's been a lot of fun to work on, where a lot of the issues I've had to deal with would have been a real horror to resolve in C++.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2011-01-06T17:43:46.690" CommentCount="1" />
  <row Id="34338" PostTypeId="1" AcceptedAnswerId="34339" CreationDate="2011-01-06T17:44:17.560" Score="4" ViewCount="137" Body="&lt;p&gt;How does an object oriented programmer understand the word &quot;type&quot;? I'm not aware of there being a type theory for object oriented programming because whenever someone mentions type theory it is always in the context of some kind of functional programming language so what does &quot;type&quot; mean in the object oriented context?&lt;/p&gt;&#xA;" OwnerUserId="7146" LastEditorUserId="7146" LastEditorDisplayName="" LastEditDate="2011-01-06T17:52:40.597" LastActivityDate="2011-01-06T18:37:00.760" Title="objects, classes, types" Tags="&lt;programming&gt;&lt;object-oriented&gt;&lt;theory&gt;&lt;type-systems&gt;&lt;type-theory&gt;" AnswerCount="4" CommentCount="1" />
  <row Id="34339" PostTypeId="2" ParentId="34338" CreationDate="2011-01-06T17:47:04.557" Score="3" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Type&lt;/em&gt; is basically the same as &lt;em&gt;class&lt;/em&gt; - it defines characteristics and behavior of a family of objects. You instantiate types to create objects of those types.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In practice, &lt;em&gt;types&lt;/em&gt; usually refer to a set of predefined classes supplied with the class library of a programming environment - basic primitive data types and structures. Still, most of the time you can use the terms &lt;em&gt;type&lt;/em&gt; and &lt;em&gt;class&lt;/em&gt; interchangeably.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2011-01-06T17:47:04.557" CommentCount="4" />
  <row Id="34340" PostTypeId="2" ParentId="34338" CreationDate="2011-01-06T17:51:02.663" Score="2" ViewCount="" Body="&lt;p&gt;A type refers to the identity of a variable.  Some variables are integers, some are strings, some are arrays, some are objects, etc.  When you have objects, an object's &quot;type&quot; is basically the same concept as its &quot;class,&quot; and some type theory starts to be introduced there because you have to deal with inheritance and type substitution: if a variable class descends from another class, and a function expects an instance of the base class as a parameter, you need to be able to pass an instance of a descendant class to the function and have the compiler be able to treat it as if it were the base class that it descends from.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2011-01-06T17:51:02.663" />
  <row Id="34341" PostTypeId="1" CreationDate="2011-01-06T17:56:36.043" Score="-1" ViewCount="163" Body="&lt;p&gt;Does anyone have a list of recommended Cygwin packages to install? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm new to using Cygwin, looking for a list of useful packages that would be helpful to have.&lt;/p&gt;&#xA;" OwnerUserId="9964" LastActivityDate="2011-01-06T18:27:04.013" Title="Recommended cygwin packages" Tags="&lt;cygwin&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="34342" PostTypeId="2" ParentId="34320" CreationDate="2011-01-06T18:00:25.743" Score="0" ViewCount="" Body="&lt;p&gt;I find I have the problem where I try to explain how I solve a problem to people more so than explain the results of my solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think if you would have told your boss in the first place that you could automate the process without explaining much further than how long it would take you might be in a better position. To explain how the automating process works: &quot;write a routine that would access the FED's routing numbers in the application that keeps our data updated, and put it on whatever schedule was appropriate&quot; sounds too technical for someone who might not be so inclined. It sounds like hacking to them when in all reality it's a very simple and legal process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been working on explaining the results of a projected solution, rather than how I would accomplish it to my supreriors. I think it might help you as well.&lt;/p&gt;&#xA;" OwnerUserId="11524" LastActivityDate="2011-01-06T18:00:25.743" CommentCount="1" />
  <row Id="34343" PostTypeId="2" ParentId="34334" CreationDate="2011-01-06T18:00:45.697" Score="0" ViewCount="" Body="&lt;p&gt;I used an &lt;a href=&quot;http://www.altera.com/&quot; rel=&quot;nofollow&quot;&gt;Altera&lt;/a&gt; FPGA board. You can do many interesting things with the board. There are also a lot of I/O ports like VGA, USB, Ethernet, audio, and PS/2. Specs of the latest Stratix V is very impressive.&lt;/p&gt;&#xA;" OwnerUserId="10961" LastActivityDate="2011-01-06T18:00:45.697" />
  <row Id="34344" PostTypeId="2" ParentId="34208" CreationDate="2011-01-06T18:02:20.963" Score="1" ViewCount="" Body="&lt;p&gt;Explain your boss how &lt;strong&gt;he gains&lt;/strong&gt; if you introduce this framework. Could be productivity gains that save money, lesser maintenance that saves time etc -- stuff he can then show to the higher management. &lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2011-01-06T18:02:20.963" />
  <row Id="34345" PostTypeId="2" ParentId="34267" CreationDate="2011-01-06T18:06:35.120" Score="2" ViewCount="" Body="&lt;p&gt;I've frequently written non-trivial programs (~200 LOC or so), ran them, and they worked the first time. As others have mentioned, it helps to write in a modular fashion so you can have confidence that each piece will work as intended.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing modular programs requires planning. I spend probably about half of my cognitive effort up front just thinking about the problem. It helps, too, that I've been programming for over 30 years; many common programming techniques have become patterns and I write them without much thought.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do my best holes-in-one with a language that doesn't stand in my way: Perl. Its flexible syntax lets me get my ideas down quickly without a lot of fuss. Weak, dynamic types mean I don't have to worry about declaring variables before I use them, nor do I have to concern myself about memory leaks and right-sizing data structures. They just work and I can get down to business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A common pattern is the one the churn through a text file, ignoring comments, trimming blanks, and discarding blank lines. The rest gets put into an array.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;while (&amp;lt;&amp;gt;)&#xA;{&#xA;    s/#.*$//;          # Trim comments&#xA;    s/^\s+|\s+$//g;    # Trim blanks&#xA;    next if (/^$/);    # Discard blank lines&#xA;    push @lines, $_;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3790" LastEditorUserId="3790" LastEditorDisplayName="" LastEditDate="2011-01-06T18:19:33.460" LastActivityDate="2011-01-06T18:19:33.460" />
  <row Id="34346" PostTypeId="2" ParentId="34338" CreationDate="2011-01-06T18:14:59.673" Score="0" ViewCount="" Body="&lt;p&gt;A class is a advanced date type. Typically, you will see references to primitive data type, which include data types such as int, float, char...ect. Then there are more advanced data types such enums structures and unions. Historically, data types could only represent data. The concept of the class expended this to allow a data type that can include function definitions as well access specifiers, which placed restrictions or access rights to individual &quot;members&quot; of the class. A class is one of the most advanced data types available. The main difference is that object oriented programing language allow for polymorphism, which allows values of different data types to be handle by the same interface. You can fake a form of polymorphism in structured languages such as C, but it is not formally supported by the language. An object is an instance of class. An object is not a type. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, it means exactly the same thing as it alway has.   &lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2011-01-06T18:31:24.823" LastActivityDate="2011-01-06T18:31:24.823" />
  <row Id="34347" PostTypeId="1" CreationDate="2011-01-06T18:20:03.007" Score="0" ViewCount="49" Body="&lt;p&gt;Hi,&#xA;Im doing a POC using Aspectj.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;class BaseInfo{..}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;class UserInfo extends BaseInfo{..}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;class UserService {&lt;/p&gt;&#xA;&#xA;&lt;p&gt;public void getUser(UserInfo userInfo){..}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;public void deleteUser(String userId){..}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;}&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've defined an advice, that gets invoked when I pass an UserInfo instance.But when i try to pass the BaseInfo, the advice is not getting invoked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Below block executes the afterMethod as expected for getUser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;amp;ltaop:pointcut id=&quot;aopafterMethod&quot; expression=&quot;execution(* UserService.*(..,UserInfo,..))&quot; /&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;amp;gtaop:after pointcut-ref=&quot;aopafterMethod&quot; method=&quot;afterMethod&quot; /&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But when i try to give BaseInfo instead of UserInfo, the aspect is not getting triggered.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Am i missing something?&#xA;Kindly help me on this issue.&lt;/p&gt;&#xA;" OwnerUserId="12558" LastActivityDate="2011-01-06T18:20:03.007" ClosedDate="2011-01-06T18:50:18.770" Title="aspect parameter validation" Tags="&lt;spring&gt;" CommentCount="1" />
  <row Id="34348" PostTypeId="2" ParentId="34341" CreationDate="2011-01-06T18:20:18.297" Score="3" ViewCount="" Body="&lt;p&gt;A lot of Cygwin packages require other packages to work properly, so I doubt you are going to find a comprehensive list of what's worth installing and not. Besides, people's needs vary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some things however are pretty much found on all developer machines (or at least more often found); &lt;strong&gt;&lt;em&gt;Vim, 'macs, Perl, Python, ...&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If my memory serves me, Cygwin's default installation hits it pretty well in the &lt;strong&gt;&lt;em&gt;golden middle&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2439" LastActivityDate="2011-01-06T18:20:18.297" />
  <row Id="34349" PostTypeId="2" ParentId="34286" CreationDate="2011-01-06T18:23:42.003" Score="0" ViewCount="" Body="&lt;p&gt;Reading your requirements I remembered the license of iTextSharp:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://itextpdf.com/terms-of-use/index.php&quot; rel=&quot;nofollow&quot;&gt;http://itextpdf.com/terms-of-use/index.php&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which claims to be a free/open source software (F/OSS) project but that you have to buy a license if you want to use it commercially. I don't know much about this topic so I don't know if it is similar to what you are asking for but I'll throw it out there just in case. :) &lt;/p&gt;&#xA;" OwnerUserId="12563" LastActivityDate="2011-01-06T18:23:42.003" />
  <row Id="34350" PostTypeId="2" ParentId="34341" CreationDate="2011-01-06T18:27:04.013" Score="1" ViewCount="" Body="&lt;p&gt;Select cygwin default&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Select all from the developer section if u intend to do a lot of coding -- don't miss out on lex, yacc, antlr, gdb, perl, tcl, python &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Select gvim (if you are a vim fanboy) or xemacs (the other side of the divide) &lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2011-01-06T18:27:04.013" />
  <row Id="34351" PostTypeId="2" ParentId="34334" CreationDate="2011-01-06T18:33:56.963" Score="2" ViewCount="" Body="&lt;p&gt;You may have to go retro for something small, portable, and programmable, as the trend today is for small, portable, &lt;em&gt;non-programmable&lt;/em&gt; devices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How about the &lt;a href=&quot;http://www.google.com/images?q=hp+palmtop&quot; rel=&quot;nofollow&quot;&gt;HP Palmtop&lt;/a&gt; computers from the late 1990s? They are &lt;a href=&quot;http://www.palmtoppaper.com/ptphtml/37/pt37001e.htm&quot; rel=&quot;nofollow&quot;&gt;programmable&lt;/a&gt; and can be hacked to run Linux, too!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another idea is to buy an older Android phone that someone is getting rid of. You can write apps in Java and install them yourself. No need to get a cell plan; they'll work just fine without cell service.&lt;/p&gt;&#xA;" OwnerUserId="3790" LastEditorUserId="3790" LastEditorDisplayName="" LastEditDate="2011-01-07T00:23:17.420" LastActivityDate="2011-01-07T00:23:17.420" />
  <row Id="34352" PostTypeId="2" ParentId="34338" CreationDate="2011-01-06T18:37:00.760" Score="0" ViewCount="" Body="&lt;p&gt;In object-orientation, types are the exact same thing as everywhere else. Todays mainstream type-systems are just extensions of what we used to have in C/C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason you hear a lot about types and functional programming is that these people (particularly the haskell-community) are trying to do types well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even mainstream languages have reasonably advanced type systems, just look at generics. Generics are all about types.&#xA;Casts are about types.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few examples of types in Java:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Int i is of type Int&lt;/li&gt;&#xA;&lt;li&gt;A Cat is a subclass and therefor subtype of Animal (this assumption is broken if you violate the Liskov substitution principle, but that's a matter for another rant)&lt;/li&gt;&#xA;&lt;li&gt;A cat of class Cat is of type Cat and of type Animal&lt;/li&gt;&#xA;&lt;li&gt;An array of cats is also an array of animals, but that only works as long as you only take animals from the array, putting a dog into this array will not work, although dogs are also animals. Java's assumption that arrays are covariant holds only for reads, writes are contravariant.&lt;/li&gt;&#xA;&lt;li&gt;A flyingCat that implements the interface Flying is of type Flying&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="12225" LastActivityDate="2011-01-06T18:37:00.760" />
  <row Id="34354" PostTypeId="1" AcceptedAnswerId="34362" CreationDate="2011-01-06T18:45:36.600" Score="14" ViewCount="238" Body="&lt;p&gt;I started working at my current job about 8 months ago, and its been one of the best experiences I've had as a young programmer. It's a small company, and both my co-developers are brilliant guys.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the practices that they both have been encouraging is lots of code-reuse. Our code base is mainly C#, and we're using a centralized revision control system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way the repository is currently structured, there is a single folder in which all shared class libraries are placed (along with unit tests for each library), and our revision control system allows for sharing or linking those libraries out to other projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I'm trying to understand at this point is how the current structure of the folder can be made more conducive for finding those libraries again. I've talked to the other developers about this, and they agree that it's gotten a little messy. I find that I am sometimes &quot;reinventing the wheel&quot; because I didn't realize that there was an existing piece of code that solved a particular problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The issue is complicated further by the fact that we're sharing some code between ASP.NET MVC2, WinForms, and Windows CE projects, &lt;strong&gt;and&lt;/strong&gt; sharing code between applications built against multiple versions of .NET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do other people approach this? Is the answer in naming the libraries in a certain way or is it preferable to invest in some code-search software? Is the answer in doc comments? Should we be sharing libraries at all or should we simply branch the class libraries for re-use?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for any and all help!&lt;/p&gt;&#xA;" OwnerUserId="8054" LastActivityDate="2011-01-07T14:59:30.297" Title="How do you structure your shared code so that it is &quot;re-findable&quot; for new developers?" Tags="&lt;.net&gt;&lt;version-control&gt;&lt;libraries&gt;&lt;code-reuse&gt;" AnswerCount="7" FavoriteCount="2" />
  <row Id="34355" PostTypeId="2" ParentId="34334" CreationDate="2011-01-06T18:49:44.763" Score="3" ViewCount="" Body="&lt;p&gt;The &lt;strong&gt;&lt;a href=&quot;http://www.zune.net/en-US/products/zunehd/default.htm&quot; rel=&quot;nofollow&quot;&gt;Zune HD&lt;/a&gt;&lt;/strong&gt;.  &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Microsoft's Zune HD will use one of the most powerful chips to go into a portable media player yet: &lt;strong&gt;Nvidia's multicore Tegra processor&lt;/strong&gt;.&quot; &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Read more: &lt;a href=&quot;http://news.cnet.com/8301-13924_3-10308833-64.html#ixzz1AHsjsRW3&quot; rel=&quot;nofollow&quot;&gt;http://news.cnet.com/8301-13924_3-10308833-64.html#ixzz1AHsjsRW3&lt;/a&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently, it was hacked to allow more programs and features to work...OpenZDK:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;a href=&quot;http://www.engadget.com/2010/04/16/zune-hd-hacked-openzdk-now-available-to-developers/&quot; rel=&quot;nofollow&quot;&gt;http://www.engadget.com/2010/04/16/zune-hd-hacked-openzdk-now-available-to-developers/&lt;/a&gt; &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Using this hack, the underlying Windows CE operating system and explorer was revealed and can be used...&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;That’s about to change. Through the work of myself as well as Netrix, Nurta, and the rest of the ZuneBoards Development Front, all Zune models, including the Zune HD, have been hacked. The first true hack available for the Zune, this makes it possible to, for the first time, run applications directly on top of the Zune firmware, with full access to everything XNA withheld before. The limitations of XNA are now no limitations at all.&quot;  (from Zune Boards: &lt;a href=&quot;http://www.zuneboards.com/?p=vB50442&quot; rel=&quot;nofollow&quot;&gt;http://www.zuneboards.com/?p=vB50442&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The OpenZDK wiki: &lt;a href=&quot;http://zunedevwiki.org/wiki/&quot; rel=&quot;nofollow&quot;&gt;http://zunedevwiki.org/wiki/&lt;/a&gt; &lt;/p&gt;&#xA;" OwnerUserId="4442" LastEditorUserId="4442" LastEditorDisplayName="" LastEditDate="2011-01-06T20:04:47.790" LastActivityDate="2011-01-06T20:04:47.790" CommentCount="1" />
  <row Id="34356" PostTypeId="1" AcceptedAnswerId="34366" CreationDate="2011-01-06T18:58:43.813" Score="4" ViewCount="317" Body="&lt;p&gt;So I just read some fabulous articles by &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000036.html&quot; rel=&quot;nofollow&quot;&gt;Joel on specs here&lt;/a&gt;. (Was written in 2000!!) I read all 4 parts, but &lt;strong&gt;Im looking for&lt;/strong&gt; some methodical approaches to writing my specs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Im the only lonely dev, working on this fairly complicated app (or family of apps) for a very well known finance company. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've never made something this serious, I started out writing something like a bad spec, an overview of some sorts, and it has wasted a LOT of my time. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ive also made 3 mockup-kinda-thingies for my client so I have a good understanding of what they want. Also released a preview (a throw away working app with the most basic workflow), and Ive only written and tested some of the very core/base systems. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the mistake Ive been making so far is not writing a detailed spec, so Im getting to it now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the whole thing comprises of &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;An MVC website (for admins &amp;amp; data viewing)&lt;/li&gt;&#xA;&lt;li&gt;2 Silverlight modules (For 2 specific tasks)&lt;/li&gt;&#xA;&lt;li&gt;1 Desktop Application&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Im totally short on time, resources and need to get this done quick, also, need to make sure these guys read it up equally quick and painlessly.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;So &lt;strong&gt;how&lt;/strong&gt; do I go about it, &lt;strong&gt;Im looking&lt;/strong&gt; for any tips, any real world stuff, how do you guys usually do it?&lt;/li&gt;&#xA;&lt;li&gt;Do you make a mock screenie of every dialog/form/page?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Im thinking of making a dummy asp.net web forms project, then filling in &lt;strong&gt;html&lt;/strong&gt; files in folders and making it look like my mvc url structure. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then having a section in the spec for the website and write up a page for every URL Ive got with a screenie.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For my win forms app, Ive made somewhat of a demo Win Form project, &lt;strong&gt;would I&lt;/strong&gt; then put in a dialog or stucture everything as I would in the real app and then screen shot it?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;For some background into this question. I've always been a crazy jump-to-code kinda guy, which has worked ok, but for the app I'm working on, its not only complex, its for a very very reputed and large company and I have to get it right! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(And it has been going well so far, today I gave a demo of the preview version which a lot of people liked!! =D )&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I do get the initial design right I will also have a great business with this company, there are already many thinking about new &quot;awesome&quot; features which they're ready to pay for.&lt;/p&gt;&#xA;" OwnerUserId="6697" LastEditorUserId="6697" LastEditorDisplayName="" LastEditDate="2011-01-07T14:04:16.650" LastActivityDate="2011-01-07T14:04:16.650" Title="how do I write a functional specification quickly and efficiently" Tags="&lt;writing&gt;&lt;specifications&gt;&lt;customer-relations&gt;" AnswerCount="1" CommentCount="2" FavoriteCount="1" />
  <row Id="34357" PostTypeId="2" ParentId="34334" CreationDate="2011-01-06T19:02:08.037" Score="-3" ViewCount="" Body="&lt;p&gt;I once had to quickly fix one of my php classes on the bus one night after work (forgot to disable the dubugger or something along those lines). I used &quot;FTPOnTheGo&quot; on my iPhone and was able to make the modifications needed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It took a lot longer than it would have sitting at my desktop, however I did feel much more superior to everyone else on the bus.&lt;/p&gt;&#xA;" OwnerUserId="1834" LastActivityDate="2011-01-06T19:02:08.037" CommentCount="1" />
  <row Id="34359" PostTypeId="2" ParentId="34311" CreationDate="2011-01-06T19:05:08.803" Score="2" ViewCount="" Body="&lt;p&gt;Get written consent from the client to violate the Terms and Conditions specifically for the purpose of performing work required to fulfill the contract.&lt;/p&gt;&#xA;" OwnerUserId="1554" LastActivityDate="2011-01-06T19:05:08.803" CommentCount="1" />
  <row Id="34360" PostTypeId="2" ParentId="34354" CreationDate="2011-01-06T19:05:56.490" Score="2" ViewCount="" Body="&lt;p&gt;One way is to store those libraries not in a VCS (Version Control System), but in a repository manager like, for instance, &lt;strong&gt;&lt;a href=&quot;http://nexus.sonatype.org/&quot; rel=&quot;nofollow&quot;&gt;Nexus&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That way:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;you can organize your artifacts (those libraries) &lt;a href=&quot;http://www.sonatype.com/books/nexus-book/reference/ch05s05.html&quot; rel=&quot;nofollow&quot;&gt;by group, name, version, and further particularize them with classifier&lt;/a&gt; (for those binaries made for win32 or win64 or...)&lt;/li&gt;&#xA;&lt;li&gt;you can easily remove them when not needed without breaking any history&lt;/li&gt;&#xA;&lt;li&gt;you can make sure they haven't been modified (because of checksums like MD5 or SHA1)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You will store reference to certain libraries through their GAV(Group-Artifact-Version)+classifier+SHA1 in a simple text file you can version along your other data in your RCS.&lt;/p&gt;&#xA;" OwnerUserId="3915" LastActivityDate="2011-01-06T19:05:56.490" CommentCount="1" />
  <row Id="34361" PostTypeId="2" ParentId="34320" CreationDate="2011-01-06T19:06:23.607" Score="2" ViewCount="" Body="&lt;p&gt;When the Fed (or anybody else) publishes data on their webserver, they are giving a copy of the data to the server with the implicit instructions: here, give a copy of this data to anyone who asks for it. Whether your computer displays this data in a browser window or feeds it to a custom application to extract the data makes no difference to the Fed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ethical question is &quot;Are we allowed to obtain this data from the fed?&quot;. The Fed's anwer is implicitly yes: they've put it on their public website. The ethics don't depend on whether you read it manually or with a custom application program once its sitting in your computer's memory.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is a minor ethical issue with robots if they query so frequently that they impose an unreasonable load on the Feds webserver. However, that doesn't apply in this case, since either process (manual or automated) will be accessing the Fed's site with the same frequency (once a week). In fact, the automated process will probably impose less load on the Fed's webserver, since it will probably just fetch the appropriate HTML document and not bother making the other requests (CSS, images, javascript, favicon.ico, etc.) that a person accessing the page with a web browser would make.&lt;/p&gt;&#xA;" OwnerUserId="4817" LastActivityDate="2011-01-06T19:06:23.607" CommentCount="2" />
  <row Id="34362" PostTypeId="2" ParentId="34354" CreationDate="2011-01-06T19:06:47.223" Score="9" ViewCount="" Body="&lt;p&gt;I think the answer is at least in part in communication. If all developers communicate well about what they're working on, others can suggest which methods may be already implemented and immediately reusable. Similarly, if you develop something that fits in well in the common libraries, let others know that it's there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Leaving it up to a search tool has always been insufficient, since in order to find something, you have to first know to look for it and what to look for. If you know what you're looking for, all you need is &lt;code&gt;grep&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In .NET doc comments might help you along a bit, since Intellisense can help others find existing methods, but again -- they first have to look in the right class/namespace.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Edited to answer @awmckinley's question in comments: In an ideal situation, when older developers leave, there are still some left. With sufficient communication, those who are left can continue spreading the knowledge among the new developers (and then the cycle repeats). In absence of that, I like keeping a wiki going with some information on available functions. Organizing it can be tricky. I try to group things by purpose rather than namespace, since that (theoretically) makes it easier to look things up, but I haven't had much opportunity to test if that's really true.&lt;/p&gt;&#xA;" OwnerUserId="226" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2011-01-07T14:14:22.450" LastActivityDate="2011-01-07T14:14:22.450" CommentCount="4" />
  <row Id="34363" PostTypeId="1" AcceptedAnswerId="34364" CreationDate="2011-01-06T19:10:46.363" Score="6" ViewCount="367" Body="&lt;p&gt;Have you ever thought about what it is that it might be next in programming and IT industries that will completely change the scene as we know it today.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you ever pause and think of something like that, what could it be? I think that it is really  important for developers to have the awareness about such thing. That is what drives us to continually learn and improve ourselves, always something new awaits us just around the corner and everything is going to change in blink of an eye.&lt;/p&gt;&#xA;" OwnerUserId="12140" LastActivityDate="2011-01-07T01:20:43.807" ClosedDate="2011-01-07T01:36:10.700" Title="What it is that will completely change the scene as we know it today?" Tags="&lt;self-improvement&gt;&lt;programming&gt;&lt;new-technology&gt;" AnswerCount="15" CommentCount="6" FavoriteCount="4" />
  <row Id="34364" PostTypeId="2" ParentId="34363" CreationDate="2011-01-06T19:17:10.110" Score="10" ViewCount="" Body="&lt;p&gt;I feel like wide spread of Internet-capable mobile devices will change things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Web places and services will be re-oriented to deal with the continuous stream of content incoming from everywhere. Consumption will also become continuous. Massive service integration will take place.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2011-01-06T19:17:10.110" CommentCount="4" />
  <row Id="34365" PostTypeId="2" ParentId="34363" CreationDate="2011-01-06T19:19:20.233" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Faster boot times &lt;/li&gt;&#xA;&lt;li&gt;speedier internet connections&lt;/li&gt;&#xA;&lt;li&gt;accessible anywhere workspaces (i.e. customized desktop accessible from anywhere)&lt;/li&gt;&#xA;&lt;li&gt;More cloud applications.&lt;/li&gt;&#xA;&lt;li&gt;Smarter smartphones and more mobile applications than ever before.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4442" LastActivityDate="2011-01-06T19:19:20.233" CommentCount="6" />
  <row Id="34366" PostTypeId="2" ParentId="34356" CreationDate="2011-01-06T19:21:27.423" Score="9" ViewCount="" Body="&lt;p&gt;Did you read &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000035.html&quot; rel=&quot;nofollow&quot;&gt;part 2&lt;/a&gt; of the article or his &lt;a href=&quot;http://www.joelonsoftware.com/articles/WhatTimeIsIt.html&quot; rel=&quot;nofollow&quot;&gt;sample specification&lt;/a&gt;?  They embody a couple important principles when writing a specification.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Don't overdesign.  The purpose of writing the spec is to force you to think about important things like what happens when there's an error, and how you expect the user to interact with the system.  You don't have to go into inordinate detail to get something you can work from.  You do need details, though.&lt;/li&gt;&#xA;&lt;li&gt;It's about communication.  The purpose of the spec is to come to a common agreement about what needs to be done.  It's not an ironclad document that requires the force of law.  It's a tool to help you better understand your client, and your client to better understand what you want to do for them.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;The best advice is to write &lt;em&gt;enough&lt;/em&gt; so that you are clear on what you need to do.  If you have open questions, document them in the spec and get answers from your client.  Once you adequately understand what's needed &lt;strong&gt;stop&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are not careful, the document will take on a life of its own.  It should have one purpose, don't add anything to the document that doesn't fit that purpose.  It should be easy to maintain.  If you have your entire detailed class diagrams in there along with other details that really belong in a unit test, you will either abandon the document because the upkeep is too much, or you will never get the project completed.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;About Writing&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing for people is &lt;em&gt;hard&lt;/em&gt;.  In fact, the two hardest things about writing is knowing how to &lt;em&gt;start&lt;/em&gt;, and knowing when to &lt;em&gt;stop&lt;/em&gt;.  In the beginning you just have to do something.  My advice for dealing with these two hardest aspects is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Know your audience.  Who is supposed to read the spec?  If it's just you and the client, then that's who you are writing to.  If you have someone responsible for testing, you'll have some notes for them as well.&lt;/li&gt;&#xA;&lt;li&gt;Start with the highest priority thing.  While authentication is important, the login screen is probably the best understood piece most folks have to write.  Instead focus on that feature that your users need most.  You know, that part that makes them money and is the whole reason they need the software.&lt;/li&gt;&#xA;&lt;li&gt;Fill in details as the questions come up and you get answers.  Keep things really simple with napkin drawings if necessary until the client is happy with the arrangement.  It's important to know what information is involved and how they will use it.&lt;/li&gt;&#xA;&lt;li&gt;Stop when adding more doesn't add value.  There are some details you just don't want in a spec.  You need to know when you have the right thing.  You don't need to know that there is a variable inside a method named &quot;albaquerque&quot;.  That's source code, not specification stuff.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6509" LastEditorUserId="6509" LastEditorDisplayName="" LastEditDate="2011-01-06T19:51:58.893" LastActivityDate="2011-01-06T19:51:58.893" CommentCount="2" />
  <row Id="34367" PostTypeId="2" ParentId="34363" CreationDate="2011-01-06T19:22:24.580" Score="4" ViewCount="" Body="&lt;p&gt;What concerns directly programming, I think the new age will mark the death of a narrow-niche programmer and his profession as we know it. Hardcore programmers with deep knowledge of something very narrow will eventually surrender their place to well-versed individuals with maybe less deeper but wider knowledge, with an eye for the big picture, developed social skills and able to personally arrange for a complete solution (where the scope permits to).&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2011-01-06T19:22:24.580" CommentCount="5" />
  <row Id="34368" PostTypeId="2" ParentId="34363" CreationDate="2011-01-06T19:30:54.490" Score="4" ViewCount="" Body="&lt;p&gt;It takes people of vision to make the kind of changes you describe.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why?  Because companies (and generally people) are very conservative.  If it weren't for someone taking the radical step of putting a computer in a black case, we might still have beige boxes sitting next to our desk (shudder).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nowhere is this more evident than in the revolution brought about by Apple.  Whether you like Apple or not, it's hard to argue with their revolution in design, and the way that revolution has impacted computing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The IPod (and its cousins) would not have been possible without Steve Jobs' vision.  Ironically, Apple lost Steve Jobs for years due to a power struggle, and the company languished during that time.  It wasn't until Jobs returned to Apple that the company began seeing the success that it enjoys today.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, if you want to understand what the future looks like, watch what the visionaries are doing.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-01-06T21:30:06.913" LastActivityDate="2011-01-06T21:30:06.913" CommentCount="3" />
  <row Id="34369" PostTypeId="2" ParentId="34363" CreationDate="2011-01-06T19:31:19.823" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Consolidated application development platform on mobile devices.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mobile devices today have numerous target platforms.  Mobile devices need a revolution like what the web did to computer applications.  This can take many forms (Java looked so promising), but I would wager that a multi-target mobile (and somehow free) browser that consolidates HTML5 will be game changing.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastActivityDate="2011-01-06T19:31:19.823" />
  <row Id="34370" PostTypeId="2" ParentId="34154" CreationDate="2011-01-06T19:32:01.227" Score="1" ViewCount="" Body="&lt;p&gt;Start off the easy way with either .NET or JEE/JSF.  No need to do your first project out the hard way.  Save that complexity for when you really need it.&lt;/p&gt;&#xA;" OwnerUserId="715" LastActivityDate="2011-01-06T19:32:01.227" />
  <row Id="34371" PostTypeId="1" CreationDate="2011-01-06T19:36:09.713" Score="1" ViewCount="306" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am very familiar with Java 6 SE language features and am now looking for modern books that cover design patterns in Java for beginners as well as software engineering books that discuss architectures, algorithms and best practices in Java coding (sort of like the Effective C# books).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am aware of the classic GoF design patterns book, however, I'd like a more modern reference that takes advantage of the features of Java 6 SE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What books would you recommend ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scott&lt;/p&gt;&#xA;" OwnerUserId="12536" LastActivityDate="2011-01-07T00:18:04.647" Title="What modern design pattern / software engineering books for Java SE 6 do you recommend ?" Tags="&lt;best-practices&gt;&lt;design-patterns&gt;&lt;algorithms&gt;&lt;architecture&gt;" AnswerCount="3" FavoriteCount="2" />
  <row Id="34372" PostTypeId="2" ParentId="34363" CreationDate="2011-01-06T19:39:48.070" Score="5" ViewCount="" Body="&lt;p&gt;Here's one that has already started. The hardware side is already in motion:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;First, massively multicore devices in the server room.&lt;/li&gt;&#xA;&lt;li&gt;Then, massively multicore devices on the desktop.&lt;/li&gt;&#xA;&lt;li&gt;Then, massively multicore laptop- and tablet-like devices.&lt;/li&gt;&#xA;&lt;li&gt;Then, massively multicore handheld/PDA/phone-like devices.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;(Naturally, &quot;massively multicore&quot; will mean different things in those four device areas, but we're talking thousands of cores on the server side to start with.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software has to keep up, and languages that have effective and easy-to-use constructs for multiprocessing will take over. Think &quot;one thread per object&quot;, &quot;separation of data and algorithm via polymorphism and execution of multiple algorithm instances on the same data&quot;, and &quot;a sliding scale between real-time and event-driven-processing&quot;. The language needs to have multiprocessing capabilities on the small-scale level, but there's also a need for a platform that can orchestrate all that parallel processing that is going on.&lt;/p&gt;&#xA;" OwnerUserId="11968" LastActivityDate="2011-01-06T19:39:48.070" CommentCount="3" />
  <row Id="34373" PostTypeId="2" ParentId="34371" CreationDate="2011-01-06T19:41:41.533" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/870/if-you-could-only-have-one-programming-related-book-on-your-bookshelf-what-would/26976#26976&quot;&gt;Effective Java&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2011-01-06T19:41:41.533" />
  <row Id="34374" PostTypeId="2" ParentId="34246" CreationDate="2011-01-06T19:44:19.860" Score="2" ViewCount="" Body="&lt;p&gt;I don't think many people will get as good a &quot;foundation&quot; through self-study as they would from going to university, at least not in the same timeframe.  Two years of reading random books and playing with toy problems in your spare time is not going to get you to the same level as two years of focused study with an organized curriculum.  Will it get you enough to get by?  Quite possibly.  But if you really want &quot;as good a foundation as anyone out there&quot;, then it'll take longer than two years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not to discourage you, it certainly wouldn't be a waste of time.  I'm just not terribly confident that many people can pull together the equivalent of two years of college in two years while running their own business and having some kind of a personal/family life.&lt;/p&gt;&#xA;" OwnerUserId="4854" LastActivityDate="2011-01-06T19:44:19.860" CommunityOwnedDate="2011-01-10T21:57:27.023" CommentCount="2" />
  <row Id="34375" PostTypeId="2" ParentId="29918" CreationDate="2011-01-06T19:49:26.783" Score="0" ViewCount="" Body="&lt;p&gt;I found the &lt;a href=&quot;http://oreilly.com/catalog/9780596005405&quot; rel=&quot;nofollow&quot;&gt;Head First Servlets and JSP&lt;/a&gt; to be useful and as always a entertaining read&lt;/p&gt;&#xA;" OwnerUserId="3755" LastActivityDate="2011-01-06T19:49:26.783" />
  <row Id="34376" PostTypeId="2" ParentId="34267" CreationDate="2011-01-06T19:51:51.777" Score="1" ViewCount="" Body="&lt;p&gt;Take a look at the &quot;Writing Correct Programs&quot; chapter of &quot;Programming Pearls&quot; by Jon Bentley, particularly section 4.2.  I personally can't imagine going to this level of rigor on every single thing I write, but I  think it's a good example of the type of thinking you need to do to get it right the first time. &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2011-01-06T19:51:51.777" />
  <row Id="34377" PostTypeId="2" ParentId="24077" CreationDate="2011-01-06T19:57:59.590" Score="1" ViewCount="" Body="&lt;p&gt;One of my main metrics for determining whether a line of code is readable or not is how much other context from other lines must be read to really be sure that you understand what the line is doing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's easy to say that &quot;anyone should be able to understand that i, j and k are loop variables&quot;. And most of the times it is really obvious. But I still try to stay humble and professional about this and assume that it's easy to make mistakes when programming. So if I am looping through an array of Grobbles I will name the loop variable grobbleIndex. I could also accept i as an abbreviation of index. When you are using i j and k it's harder to spot error like using the wrong index with the wrong array and so on. And it gets even worse when you have an inner loop.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS. At the time I wrote this answer I was coding some javascript on a 10&quot; mini laptop with a vertically split screen in vim and I still took the time to name my loop variables rowIndex and columnIndex.&lt;/p&gt;&#xA;" OwnerUserId="6555" LastActivityDate="2011-01-06T19:57:59.590" CommunityOwnedDate="2011-01-06T21:58:42.770" CommentCount="2" />
  <row Id="34378" PostTypeId="2" ParentId="34293" CreationDate="2011-01-06T19:59:28.723" Score="0" ViewCount="" Body="&lt;p&gt;Make is a scripting tool that excels in tracking dependencies and ordering execution flow based on those dependencies. It also has shorthand syntax for defining rules for converting files between different types. This makes it a very effect tool for writing build scripts for source code. While most people are only exposed to Make in this area, it can be employed for any task where dependency rules and file translation is a key component.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ant is an attempt to re-implement make for Java. The driving force was that using Make w/ Java was slow (plus overzealous desire to sprinkle in some XML). This was because there is significant overhead in running the Java compiler on single files. Make did not (and probably still does not) have direct support for grouping build commands into a single execution call. Ant is also written in Java so it is portable (the big selling point of Java). Many of the powerful features of Make have not made it to Ant, therefore it really is only useful for compiling Java code and executing simple dependencies.&lt;/p&gt;&#xA;" OwnerUserId="3122" LastEditorUserId="3122" LastEditorDisplayName="" LastEditDate="2011-01-07T03:11:49.690" LastActivityDate="2011-01-07T03:11:49.690" />
  <row Id="34379" PostTypeId="1" CreationDate="2011-01-06T19:56:05.360" Score="11" ViewCount="472" Body="&lt;p&gt;Hey guys, I recently watched The Social Network, and this might be a stupid question, but how is it possible for multiple people to work on one website? I mean, if they're working on the same page, how is that possible? And also, is it possible to upload files to an online host without making them live? Thanks in advance.&lt;/p&gt;&#xA;" OwnerUserId="12573" LastActivityDate="2011-01-07T12:44:47.980" Title="How could multiple people work on one website?" Tags="&lt;hosting&gt;&lt;general-purpose&gt;" AnswerCount="12" CommentCount="4" FavoriteCount="2" />
  <row Id="34380" PostTypeId="2" ParentId="34379" CreationDate="2011-01-06T19:57:39.283" Score="25" ViewCount="" Body="&lt;p&gt;Usually when multiple people need to make changes to the same file, they use some kind of version control system to keep track of who made what changes. It also lets them merge and synchronize the changes different people make. &lt;/p&gt;&#xA;" OwnerUserId="13156" LastEditorUserId="67" LastEditorDisplayName="" LastEditDate="2011-01-06T20:32:46.380" LastActivityDate="2011-01-06T20:32:46.380" CommentCount="1" />
  <row Id="34381" PostTypeId="2" ParentId="34379" CreationDate="2011-01-06T19:57:48.377" Score="1" ViewCount="" Body="&lt;p&gt;You'll probably find that they have developers working on different pages.  A template or site master is usually created so that each page has the same look and feel.  For example, if the company is using Source Control such as Team Foundation Server, each developer would check in their source code and this will allow the other developers to get their latest changes.&lt;/p&gt;&#xA;" OwnerUserId="1893" LastActivityDate="2011-01-06T20:05:24.227" CommentCount="1" />
  <row Id="34382" PostTypeId="2" ParentId="34379" CreationDate="2011-01-06T19:58:05.650" Score="0" ViewCount="" Body="&lt;p&gt;You could use some sort of live syncing system like OneNote uses.... Furthermore, you could upload files to a host but not make your main domain link to them. &lt;/p&gt;&#xA;" LastActivityDate="2011-01-06T20:05:24.227" />
  <row Id="34383" PostTypeId="2" ParentId="34379" CreationDate="2011-01-06T19:59:15.973" Score="5" ViewCount="" Body="&lt;p&gt;Multiple persons working in the same files: &lt;a href=&quot;http://en.wikipedia.org/wiki/Revision_control&quot; rel=&quot;nofollow&quot;&gt;Source control&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without making them live: Development servers &amp;amp; databases, which are not the same branch as the real website.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-06T20:05:24.227" />
  <row Id="34384" PostTypeId="2" ParentId="34379" CreationDate="2011-01-06T19:59:55.673" Score="13" ViewCount="" Body="&lt;p&gt;Very few websites consist of just one &quot;page&quot; and, for cases where multiple people would work on the same page, most &lt;a href=&quot;http://en.wikipedia.org/wiki/Revision_control&quot; rel=&quot;nofollow&quot;&gt;revision control&lt;/a&gt; systems have mechanisms built in for merging the changes back together into a unified file.&lt;/p&gt;&#xA;" OwnerUserId="1081" LastActivityDate="2011-01-06T20:05:24.227" CommentCount="1" />
  <row Id="34385" PostTypeId="2" ParentId="34293" CreationDate="2011-01-06T20:10:04.320" Score="0" ViewCount="" Body="&lt;p&gt;If you're coming from a .NET background, Ant and make are akin to the Microsoft build engine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may also want to check out Maven (see: &lt;a href=&quot;http://maven.apache.org/&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/&lt;/a&gt;), another Apache project that is gaining ground in build processing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After this, take a look into Continuous Integration (CI), tools, like Hudson (see: &lt;a href=&quot;http://hudson-ci.org/&quot; rel=&quot;nofollow&quot;&gt;http://hudson-ci.org/&lt;/a&gt;).  Not only will you have build processing and automation, you can run CI tests for integration, regression, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this helps,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scott&lt;/p&gt;&#xA;" OwnerUserId="12536" LastActivityDate="2011-01-06T20:10:04.320" CommentCount="1" />
  <row Id="34386" PostTypeId="2" ParentId="34379" CreationDate="2011-01-06T20:15:58.193" Score="0" ViewCount="" Body="&lt;p&gt;Don't forget that there can also be content management systems that some sites use to serve content so that while you may think something is a web page, it is really this mix of stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many content management systems will have a preview feature to allow authors to view content before making it publicly accessible.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2011-01-06T20:15:58.193" />
  <row Id="34387" PostTypeId="2" ParentId="33760" CreationDate="2011-01-06T20:18:03.810" Score="1" ViewCount="" Body="&lt;p&gt;Well, if you already have a degree, you are probably looking for something along the lines of &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Master_of_Science_in_Information_Technology&quot; rel=&quot;nofollow&quot;&gt;Master of Science in Information Technology&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example: the University of Michigan has a MSI specialization of &lt;strong&gt;&lt;a href=&quot;http://www.si.umich.edu/msi/iar.htm&quot; rel=&quot;nofollow&quot;&gt;Information Analysis and Retrieval (IAR)&lt;/a&gt;&lt;/strong&gt; within that degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hopefully that is enough to help you get the ball rolling&lt;/p&gt;&#xA;" OwnerUserId="2673" LastActivityDate="2011-01-06T20:18:03.810" />
  <row Id="34388" PostTypeId="2" ParentId="34246" CreationDate="2011-01-06T20:23:53.320" Score="0" ViewCount="" Body="&lt;p&gt;If you really want to make a living in the software development field without a degree, I suggest what you do is contact your local University.  Get from them a listing of the courses that would be required were you to get a degree.  The vast majority of universities will have that information available on request, as well as a synopsis/syllabus/book list for each of the courses.  Go down that list.  Look up the books in question.  See what topics they cover.  If you see anything covered that you don't understand, purchase/check out the book and learn it.  At the end of that process, you should at the very least know what you know and what you don't know, and be pretty competitive with your average college grad (who may have slept/cheated through some of those courses anyway).&lt;/p&gt;&#xA;" OwnerUserId="4265" LastActivityDate="2011-01-06T20:23:53.320" CommunityOwnedDate="2011-01-10T21:57:27.023" />
  <row Id="34389" PostTypeId="2" ParentId="34379" CreationDate="2011-01-06T20:29:25.357" Score="1" ViewCount="" Body="&lt;p&gt;They could either:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Be programming in an editor via an SSH session (e.g. vi, vim, nano, emacs).&lt;/li&gt;&#xA;&lt;li&gt;Be editing through FTP with their IDE (e.g. emacs, notedpad++).&lt;/li&gt;&#xA;&lt;li&gt;Using a version control system.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For the last one, people now use distributed version control such as &lt;a href=&quot;http://mercurial.selenic.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;mercurial&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&quot;http://git-scm.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;git&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&quot;http://bazaar.canonical.com/en/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;bazar&lt;/strong&gt;&lt;/a&gt;, instead of centralized version control such as CVS and subversion. For mercurial, check &lt;a href=&quot;http://bitbucket.org&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;bitbucket.org&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&quot;http://code.google.com/hosting/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;google code project hosting&lt;/strong&gt;&lt;/a&gt;, for git, check &lt;a href=&quot;http://github.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;github&lt;/strong&gt;&lt;/a&gt;, which are sites that host the code for you to share collaboratively without you needing to set up a server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;To learn mercurial, go to &lt;a href=&quot;http://hginit.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;http://hginit.com/&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;To learn git, go to &lt;a href=&quot;http://progit.org/book/&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;http://progit.org/book/&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2011-01-06T20:29:25.357" />
  <row Id="34390" PostTypeId="2" ParentId="34379" CreationDate="2011-01-06T20:29:57.657" Score="1" ViewCount="" Body="&lt;h2&gt;Developing pages with components VS Pages as a Whole&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I've worked on many large scale websites, and the way multiple people work on the same page is that most websites are &lt;strong&gt;portals&lt;/strong&gt;.  In general, many sites like facebook contain many controls, such as photos, ads, little blurb areas, etc, which multiple people will work on.  Also, headers and footers are generally broken into their own reusable include file.  This breaks the site up into components that can not only be worked on individually, but can also be re-used across multiple sites and areas.&lt;/p&gt;&#xA;" OwnerUserId="1521" LastEditorUserId="1521" LastEditorDisplayName="" LastEditDate="2011-01-06T22:49:22.317" LastActivityDate="2011-01-06T22:49:22.317" CommentCount="2" />
  <row Id="34391" PostTypeId="2" ParentId="34379" CreationDate="2011-01-06T20:30:14.500" Score="2" ViewCount="" Body="&lt;p&gt;They need some kind of manager. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Typically, teams are broken up into segments that should never interfere with each other (famous last words). For instance, if the foo API depends on helpers from the people who code in C, the breakage should (never happen), but if it does, it happens because the helper app doesn't understand what you are passing to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is a classic case of the right hand not knowing what the left hand is doing, which clearly illustrates the fault, which is probably mine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you push code without first pulling and resolving merges (while breaking what the other dev did by just removing whatever you didn't write),  &lt;em&gt;prior to&lt;/em&gt; communicating with others who edit the same, I'm going to dose you with high voltage. After that, I'm going to take you out to dinner (to make ammends for the 1.21 gigawatts) and ensure that you ingest some kind of crazy, disgusting and quite exotic food. Think ... &lt;strong&gt;&lt;em&gt;Klingon&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll then thank me for that, and never do it again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course you could substitute some sort of &lt;em&gt;normal&lt;/em&gt; 'talking to' here, but what fun is that?&lt;/p&gt;&#xA;" OwnerUserId="131" LastEditorUserId="131" LastEditorDisplayName="" LastEditDate="2011-01-06T20:41:40.200" LastActivityDate="2011-01-06T20:41:40.200" />
  <row Id="34392" PostTypeId="1" AcceptedAnswerId="34397" CreationDate="2011-01-06T20:36:20.307" Score="3" ViewCount="215" Body="&lt;p&gt;It's a known fact that many programmers use whiteboards as part of their daily activities. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there a recommended minimum size that the whiteboard should be in order that the whiteboard is useful, and not too small to write everything down? What is that size?&lt;/p&gt;&#xA;" OwnerUserId="67" LastActivityDate="2011-01-06T21:46:59.737" ClosedDate="2011-01-07T13:46:03.613" Title="What size whiteboard do you recommend as a minimum?" Tags="&lt;tools&gt;&lt;whiteboard&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="34393" PostTypeId="2" ParentId="34392" CreationDate="2011-01-06T20:39:39.430" Score="2" ViewCount="" Body="&lt;p&gt;Well, unless it is larger than A4, you may as well just user paper. So that gives you the minimum size where it is not useful. &lt;strong&gt;Whiteboard &gt; A4&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To name a particular size where it becomes useful, I would put that at &lt;strong&gt;A3&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You can carry it around if needed.&lt;/li&gt;&#xA;&lt;li&gt;Given you draw on whiteboards larger than you draw on paper (at least I do), you should be still able to redraw diagrams, etc on paper if needed.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2673" LastActivityDate="2011-01-06T20:39:39.430" CommentCount="6" />
  <row Id="34395" PostTypeId="2" ParentId="33959" CreationDate="2011-01-06T20:50:52.693" Score="1" ViewCount="" Body="&lt;p&gt;To write Qt applications using Python, you need &lt;a href=&quot;http://wiki.python.org/moin/PyQt&quot; rel=&quot;nofollow&quot; title=&quot;PyQt&quot;&gt;PyQt&lt;/a&gt;. To integrate Python, PyQt, PyDev, and Eclipse, you need to do some installation work and set things up correctly. You should find a reasonable starting point in this blog article: &lt;a href=&quot;http://popdevelop.com/2010/04/setting-up-ide-and-creating-a-cross-platform-qt-python-gui-application/&quot; rel=&quot;nofollow&quot;&gt;Setting up IDE and creating a cross platform Qt Python GUI application&lt;/a&gt;. This doesn't allow you to design your Qt UI by dragging and dropping controls. To get that, you could use Qt Designer to &quot;draw&quot; your UI, and then use some tools that come with PyQt to convert the saved design to Python code. This you can then edit and interface with in Eclipse. There are articles on that &lt;a href=&quot;http://www.cs.usfca.edu/~afedosov/qttut/&quot; rel=&quot;nofollow&quot; title=&quot;PyQt Tutorial&quot;&gt;here&lt;/a&gt;, &lt;a href=&quot;http://www.diotavelli.net/PyQtWiki/Creating_GUI_Applications_with_PyQt_and_Qt_Designer&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;, and &lt;a href=&quot;http://wiki.python.org/moin/JonathanGardnerPyQtTutorial&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are also other IDEs that you may want to check out:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Qt Creator&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://eric-ide.python-projects.org/&quot; rel=&quot;nofollow&quot; title=&quot;The Eric Python IDE&quot;&gt;The Eric Python IDE&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.wingware.com/doc/howtos/pyqt&quot; rel=&quot;nofollow&quot;&gt;Wing IDE&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.activestate.com/komodo-ide&quot; rel=&quot;nofollow&quot; title=&quot;Komodo IDE&quot;&gt;Komodo IDE&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.kdevelop.org/&quot; rel=&quot;nofollow&quot;&gt;KDevelop&lt;/a&gt; (for KDE apps, which use Qt)&lt;/li&gt;&#xA;&lt;li&gt;and many more.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;See also: &lt;a href=&quot;http://stackoverflow.com/questions/472021/what-ide-is-good-for-developing-pyqt-apps&quot;&gt;http://stackoverflow.com/questions/472021/what-ide-is-good-for-developing-pyqt-apps&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Apologies for not providing links to Qt Designer and Qt Creator – I couldn't find canonical ones. Check out &lt;a href=&quot;http://qt.nokia.com/&quot; rel=&quot;nofollow&quot;&gt;qt.nokia.com&lt;/a&gt; and find them there if you want.)&lt;/p&gt;&#xA;" OwnerUserId="11968" LastEditorUserId="11968" LastEditorDisplayName="" LastEditDate="2011-01-09T15:36:26.310" LastActivityDate="2011-01-09T15:36:26.310" CommentCount="2" />
  <row Id="34396" PostTypeId="1" CreationDate="2011-01-06T20:26:08.267" Score="3" ViewCount="132" Body="&lt;p&gt;I wanted to submit an app to the Mac app store that reads the iPhone backup dir and provides some useful functionality on user's voicemails and sms messages. The app parses and reads the backup mbdb files, and extracts the voicemail and sms sqlite db files as well as the voicemails to a temp directory.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this kind of app likely to be rejected since it reads an unpublished format?  It's not using any private APIs.  I realize none of you are reviewers but wondering if I should even try to submit it to the store.&lt;/p&gt;&#xA;" OwnerUserId="12577" LastActivityDate="2011-01-06T21:01:22.913" ClosedDate="2011-01-07T00:07:55.197" Title="Will the Mac app store accept an app that reads and parses iPhone backups?" Tags="&lt;iphone&gt;&lt;mac&gt;" AnswerCount="1" CommentCount="5" />
  <row Id="34397" PostTypeId="2" ParentId="34392" CreationDate="2011-01-06T21:00:40.603" Score="3" ViewCount="" Body="&lt;p&gt;Try to write some lines of code or draw a small size UML diagram with a board marker sized pen. This way you may find the minimum size that fits your needs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I prefer a landscaped version with at least 80-100cm width. At work we use landscaped whiteboards with 1 x 2 meters up to 1,5 x 4 meters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hint: If your budget or space is limited try to write on windows or mirrors! They form beautiful &quot;white&quot;boards with some lack of contrast (depends on color and light conditions).&lt;/p&gt;&#xA;" OwnerUserId="12575" LastActivityDate="2011-01-06T21:00:40.603" CommentCount="2" />
  <row Id="34398" PostTypeId="2" ParentId="34396" CreationDate="2011-01-06T21:01:22.913" Score="3" ViewCount="" Body="&lt;p&gt;If you don't ask, the answer is always &quot;no&quot;.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2011-01-06T21:01:22.913" CommentCount="2" />
  <row Id="34399" PostTypeId="2" ParentId="28238" CreationDate="2011-01-06T21:02:43.957" Score="0" ViewCount="" Body="&lt;p&gt;I like to set a default prior to conditionals when I can. I feel like it's a little easier to read and a bit more explicit, but this is just a preference. I have a tendency to try and avoid negative conditions in my code. I'm not a big fan of checking for !foo or false == foo and I feel like else is kind of the conditional equivalent of a negative. &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;foo = bar;&#xA;&#xA;if ('fubar' == baz) {&#xA;    foo = baz;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;instead of ...&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if ('fubar' == baz) {&#xA;    foo = baz;&#xA;} else {&#xA;    foo = bar;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The previous code block just seems a little easier for me to read. It seems more natural to me to have a sort of skeptical paranoia about my code. Setting a default regardless of any condition makes me feel comfortable :P&lt;/p&gt;&#xA;" OwnerUserId="12576" LastActivityDate="2011-01-06T21:02:43.957" />
  <row Id="34400" PostTypeId="2" ParentId="34392" CreationDate="2011-01-06T21:02:52.617" Score="0" ViewCount="" Body="&lt;p&gt;I tend to prefer a 2' x 3' whiteboard as a minimum.  It's what I have at my desk, and most meeting rooms are larger.&lt;/p&gt;&#xA;" OwnerUserId="12307" LastActivityDate="2011-01-06T21:02:52.617" CommentCount="2" />
  <row Id="34401" PostTypeId="2" ParentId="27264" CreationDate="2011-01-06T21:09:02.793" Score="0" ViewCount="" Body="&lt;p&gt;I use camelcase for classes and methods, underscore for vars and functions. It has worked pretty well for me, and others I work with.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastEditorUserId="10869" LastEditorDisplayName="" LastEditDate="2011-01-06T22:09:34.530" LastActivityDate="2011-01-06T22:09:34.530" CommunityOwnedDate="2011-01-06T21:09:02.793" CommentCount="2" />
  <row Id="34403" PostTypeId="2" ParentId="34392" CreationDate="2011-01-06T21:16:33.533" Score="4" ViewCount="" Body="&lt;p&gt;What is the largest space available to hang a whiteboard in your office?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's the minimum size I recommend. &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2011-01-06T21:16:33.533" CommentCount="5" />
  <row Id="34404" PostTypeId="2" ParentId="966" CreationDate="2011-01-06T21:28:42.767" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Dan_Millman&quot; rel=&quot;nofollow&quot;&gt;Dan Millman's&lt;/a&gt; &quot;Everyday Enlightenment&quot;. A self-help book, whose title is far more esoteric than the advice it actually gives. It is clearly written and structured, encouraging, and actually helpful.&lt;/p&gt;&#xA;" OwnerUserId="12265" LastActivityDate="2011-01-06T21:28:42.767" CommunityOwnedDate="2011-01-06T21:28:42.767" />
  <row Id="34405" PostTypeId="2" ParentId="34392" CreationDate="2011-01-06T21:46:59.737" Score="-1" ViewCount="" Body="&lt;p&gt;It should be at least large enough to fill the space you have available.  Bigger is better, at least in this case.&lt;/p&gt;&#xA;" OwnerUserId="882" LastActivityDate="2011-01-06T21:46:59.737" CommentCount="1" />
  <row Id="34406" PostTypeId="2" ParentId="34363" CreationDate="2011-01-06T21:47:08.570" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The rise of instant&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We're reaching a point on desktop computers now where memory and (ssd) drives are so fast and plentiful, combined with massively parallel processors that the new measure of performance users will judge us by will not be in seconds or milliseconds. Either you're instant or you're not. And that will put completely new pressures on developers&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Location, location, location&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The localization aware revolution has yet but begun and when it's properly integrated into society it will have as much impact on it as the mobile phone. Before you couldn't reach people by the phone unless they were at home. Today you don't know where they are unless you call them (or if they've checked in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The next step will be when &quot;everyone's&quot; (in the same sense everyone is on facebook) continously updates their location. You'll know where your friends are partying, you'll know when that old high school buddy is in town. Advertisers will know when your friends have bought something at a store and offer you rebates in the same store. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bars can invite close by friends to friends in the bar to come by and get drink rebates. Your girlfriend will know when your cheating on her because you forgot to turn of your location (or get a grilling why you turned it off unless you bough the decoy deluxe package)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course there'll be a lot of privacy issues that needs to be resolved but still, when location reaches mainstream and become fully automatic it will create huge new oppurtunities for social interaction, advertisement and privacy intrusion :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Integrated cloud services&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The continuing consolidation of a online persona/profile in the cloud. We've started to see the beginnings of this but no company has really done the whole thing yet. But it makes sense for big companies like apple, google and microsoft to offer services to store and manage your data and profile and synchronize/manage it across different clients and platforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, you want to synchronize your contacts between your web email, tablet and mobile phone. You want to transfer photographs between your mobile and cloud storage (without a hard sync). You want to manage your friends connections centrally. You want to have your music available on all your devices as well as your games.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently many of these things are done in a pretty fragmented way and mostly through USB synchinng. Services will become both more integrated and move towards synching directly over the cloud. &lt;/p&gt;&#xA;" OwnerUserId="12354" LastEditorUserId="12354" LastEditorDisplayName="" LastEditDate="2011-01-06T22:30:00.013" LastActivityDate="2011-01-06T22:30:00.013" />
  <row Id="34407" PostTypeId="2" ParentId="34200" CreationDate="2011-01-06T21:54:55.043" Score="0" ViewCount="" Body="&lt;p&gt;things that can go wrong with a bug tracking spreadsheet on a network share:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;no one else can edit it when someone leaves it open, then locks the workstation and goes to lunch. &#xA;&lt;ul&gt;&#xA;&lt;li&gt;the &quot;obvious&quot; workaround is to save a new version for writing.  This creates a branch - and Excel is bad at merging. Someone's work will be lost. &lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;the document can get saved with hidden rows, an issue gets overlooked for weeks.  &lt;/li&gt;&#xA;&lt;li&gt;anything can be deleted and history tracking is marginal.  &quot;what happened to the detailed problem analysis I entered last week?&quot;&lt;/li&gt;&#xA;&lt;li&gt;it's easy to add values to 'restricted' fields.  &quot;How did this bug's severity get marked 'Epic Fail'?&quot;&lt;/li&gt;&#xA;&lt;li&gt;cut and paste overwrites formulas.  A calculation can easily become a constant. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've lived through all of this.   And we still managed to deliver... It was only three months late and cost thousands of unplanned overtime hours.   &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2011-01-06T21:54:55.043" />
  <row Id="34408" PostTypeId="2" ParentId="34371" CreationDate="2011-01-06T21:58:08.600" Score="1" ViewCount="" Body="&lt;p&gt;While these are not strictly Java 6 specific patterns books, you should find them useful:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321349601&quot; rel=&quot;nofollow&quot;&gt;Java Concurrency in Practice&lt;/a&gt;: While this is not written in a pattern format, it does discuss the classes in the java.util.concurrent library in detail, such as &lt;code&gt;Future&lt;/code&gt;, &lt;code&gt;Executor&lt;/code&gt;, and &lt;code&gt;CountDownLatch&lt;/code&gt;. These are examples of common solutions to concurrency problems. This book is excellent and improved my understanding of concurrency in Java massively.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Since Java is often used for enterprise application development &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0321127420&quot; rel=&quot;nofollow&quot;&gt;Patterns of Enterprise Application Architecture&lt;/a&gt; might be of interest. It covers common patterns in enterprise software and these patterns show up in a lot of frameworks such as Spring, Hibernate, and JavaEE.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you are using the Java Messaging Service, then I cannot recommend &lt;a href=&quot;http://www.enterpriseintegrationpatterns.com/&quot; rel=&quot;nofollow&quot;&gt;Enterprise Integration Patterns&lt;/a&gt; enough. It describes a pattern language for building applications using asynchronous message queues.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="7109" LastActivityDate="2011-01-06T21:58:08.600" />
  <row Id="34409" PostTypeId="2" ParentId="24077" CreationDate="2011-01-06T21:58:42.770" Score="2" ViewCount="" Body="&lt;p&gt;Naming a variable is always an exercise in balancing uniqueness and comprehensibility.  The length of the name is related to both, in different ways.  Longer names are easier to make unique; medium length names tend to be more comprehensible than names that are too short or too long.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A very short variable name is useful only if it has a history that makes it comprehensible (e.g., &lt;code&gt;i&lt;/code&gt;, &lt;code&gt;j&lt;/code&gt;, &amp;amp; &lt;code&gt;k&lt;/code&gt; for indices; &lt;code&gt;dx&lt;/code&gt; for a distance along an axis) or a scope that is small enough for all references to be visible at once (e.g., &lt;code&gt;temp&lt;/code&gt;).  The worst variable names in the world are things like &lt;code&gt;t47&lt;/code&gt;.  (&quot;What does that mean and why is it different from &lt;code&gt;t46&lt;/code&gt;?&quot;)  Thank goodness that style of naming mostly went out with FORTRAN, but this is where the desire for longer variable names is rooted.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As your original paper showed, too-long names are also hard to read, as subtle internal differences can be missed when glancing at code.  (The difference between &lt;code&gt;DistanceBetweenXAxisAbscissae&lt;/code&gt; &amp;amp; &lt;code&gt;DistanceBetweenYAxisAbscissae&lt;/code&gt; is really hard to pick up quickly.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As NoteToSelf pointed out earlier, the requirements for uniqueness of a name depend primarily on the scope the name has to be unique over.  The index of a 5-line loop can be &lt;code&gt;i&lt;/code&gt;; an index of an active record that gets passed from function to function had better have a much more descriptive name.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;A variable local to a function can have a small descriptive name like &lt;code&gt;deltaX&lt;/code&gt; without problem.  A static delta X variable in a module must have a name that distinguishes this deltaX from other deltaX's in the same module, making it longer. And a global delta X variable must be made unique across all modules and all possible other modules that may be created, probably by concatenating the module name to the other descriptive name.  This is one of the many problems with globals; to be usefully unique the names must be long enough to make them difficult to read.&lt;/p&gt;&#xA;" OwnerUserId="10400" LastActivityDate="2011-01-06T21:58:42.770" CommunityOwnedDate="2011-01-06T21:58:42.770" />
  <row Id="34410" PostTypeId="2" ParentId="34363" CreationDate="2011-01-06T22:00:32.137" Score="1" ViewCount="" Body="&lt;p&gt;The number of input devices for even the most basic of applications is going to expand. As of now we have a mobile calorie counting application that based on your location, finds the restaurants in your area, searches their menus, and lists places with low-cal items. And we thought going from the command-line to a GUI was a problem. Get ready to handle: cameras, video, audio, facebook, GPS, and dozens of databases just to create &quot;Hello World&quot;. But then it will actually say &quot;Hello&quot; to the world.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-06T22:00:32.137" />
  <row Id="34411" PostTypeId="2" ParentId="34363" CreationDate="2011-01-06T22:12:02.073" Score="0" ViewCount="" Body="&lt;p&gt;An OS that runs on desktops, portables and mobile and does it in a reasonably similar manner.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;istuff apps moving to the desktop or windows 8 moving to arm devices or android moving to tablets, the move in that direction has already started.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reducing the target environments will get more players into more of the game in a new manner.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2011-01-06T22:12:02.073" />
  <row Id="34412" PostTypeId="2" ParentId="34246" CreationDate="2011-01-06T22:27:38.750" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Suppose I take my time to study the very basics, like discrete maths, algorithm design, programming logic, computer architecture, Assembly, C programming, databases and data structures - mostly using books,online resources and lots of coding. Say I spend 1-2 years covering those basics.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes and no. Some stuff is brutally hard to grasp without a teacher. Usually it's the more mathy stuff.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe - and still believe &lt;em&gt;after&lt;/em&gt; helping beginning CS majors as  a TA - that anyone without mental retardation can learn to code at the PHP/Java/C# level. It is not, fundamentally speaking, hard.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nor, for that matter, is assembly and the other technological areas you mention. Those are implementation details that are Good To Know. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Data structures, algorithms, digital design, computer architecture, and database algebra are fairly hard, if the learning is deep. &lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2011-01-06T22:27:38.750" CommunityOwnedDate="2011-01-10T21:57:27.023" />
  <row Id="34413" PostTypeId="1" CreationDate="2011-01-06T22:30:13.800" Score="0" ViewCount="120" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/15286/best-approach-to-learning-web-programming&quot;&gt;Best approach to learning web programming&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;What would be a recommended road map or sequence for learning all the necessary tools/languages to build web applications?&lt;/p&gt;&#xA;" OwnerUserId="11658" LastActivityDate="2011-01-06T22:30:13.800" ClosedDate="2011-01-07T00:01:09.913" Title="Learning Web Programming" Tags="&lt;web-development&gt;" CommentCount="1" />
  <row Id="34414" PostTypeId="2" ParentId="34379" CreationDate="2011-01-06T22:30:36.333" Score="0" ViewCount="" Body="&lt;p&gt;All of these tools mentioned are helpful, but to me it sounds more like the OP is more asking how people keep from getting in the path of others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition to using tools to solve those conflicts there is usually some division into stacks or tiers to help avoid the conflicts in the first place.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the stack approach you have each person working on an unrelated feature (one person may be doing account sign-up and one may be doing content submission).  There will be some conflict where the two may cross (user records in this example probably) and that gets handled as part of the merge to the next build.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the tier approach someone is building all the innermost bits, when they get one portion finished another person writes the bits that sit atop those and so on.  the conflicts generated here are usually when something has to be returned to on a lower tier for some later modification that could affect the next tier above and are handled in a similar manner before the next build.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The part about files promoted but not live has a wide variety of answers/implementations, but a separate server to preview on, a specific preview mode, or a user class or entitlement that pulls the bleeding edge version while regular users get the stable version are the ones I tend to see most often.&lt;/p&gt;&#xA;" OwnerUserId="841" LastActivityDate="2011-01-06T22:30:36.333" />
  <row Id="34415" PostTypeId="2" ParentId="34363" CreationDate="2011-01-06T22:40:36.043" Score="0" ViewCount="" Body="&lt;p&gt;Microchips that you can implant in your brain so that facebook can read your mind and post it to the world. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;More seriously, I think that you are going to see the death of Home PC. For most users a tablet is sufficient to provide all the features that most people use their PC for. At the moment things like word processing and what not are still difficult to do on tablet, but this could be easily solved by a docking station, which they already have for laptops.  &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-06T22:40:36.043" CommentCount="2" />
  <row Id="34416" PostTypeId="2" ParentId="34379" CreationDate="2011-01-06T22:47:43.597" Score="0" ViewCount="" Body="&lt;p&gt;To answer the second part first, one way to upload files without making them live is to give them a name that won't be linked to. E.g. to make a new version of an &lt;code&gt;index.html&lt;/code&gt; page, upload it with the name it &lt;code&gt;index2.html&lt;/code&gt;, then visit &lt;code&gt;http://yoursite.com/index2.html&lt;/code&gt; and check that it works OK. Once you are satisfied, rename it to &lt;code&gt;index.html&lt;/code&gt;. This is really only for very small sites, and it gets a bit messy if you want to change something external to the page, like images, CSS or JavaScript files, because you have to have &lt;code&gt;image2.png&lt;/code&gt;, then &lt;code&gt;index2.html&lt;/code&gt; whose only difference is that it points to the new image.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A professional programmer would always have a test system to work on, then upload to their &quot;online host&quot; once they are happy with the changes. You can set up a web server on your computer that will only serve pages inside your local network. Of course you could also use a separate computer, or (as I do) a virtual machine running on your main computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When multiple developers work together, each would have their own test system to work on, then upload their changes to a version control system that keeps track of all the changes from all the different people. See &lt;a href=&quot;http://tom.preston-werner.com/2009/05/19/the-git-parable.html&quot; rel=&quot;nofollow&quot;&gt;the git parable&lt;/a&gt; for how this works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The version control system makes it easy to see who changed what and why. This can be checked over by whoever is in charge and then merge it into the master, and hand it over to the testing / QA department. Once they have fully tested the new features, they will approve it for uploading to the live site.&lt;/p&gt;&#xA;" OwnerUserId="923" LastActivityDate="2011-01-06T22:47:43.597" />
  <row Id="34417" PostTypeId="2" ParentId="34334" CreationDate="2011-01-06T22:56:59.023" Score="1" ViewCount="" Body="&lt;p&gt;I would make sure your next phone runs Android and experiment with that. It's quite easy to develop for - you just have to learn a little Java. All the developer tools are free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unlike the iPhone, you can put apps you have written on the web and allow anyone to install them without having to pay to get them in the official market, or get them approved or anything else.&lt;/p&gt;&#xA;" OwnerUserId="923" LastActivityDate="2011-01-06T22:56:59.023" />
  <row Id="34418" PostTypeId="1" CreationDate="2011-01-06T22:48:27.783" Score="4" ViewCount="142" Body="&lt;p&gt;Does your team rely on code reviews for approval of work? Is it simply QA that signs off your features and fixes? Do you have a lead programmer (or architect) that reviews code design and implementation? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or is it simply a &lt;a href=&quot;http://www.codinghorror.com/blog/2007/03/the-works-on-my-machine-certification-program.html&quot; rel=&quot;nofollow&quot;&gt;Works on My Machine&lt;/a&gt; paradigm?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What would you recommend or have seen that works well?&lt;/p&gt;&#xA;" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-01-06T23:04:05.587" LastActivityDate="2011-01-07T09:36:26.187" Title="What is your code review and approval process, and what are its advantages/disadvantages?" Tags="&lt;review&gt;&lt;approval&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="1" />
  <row Id="34419" PostTypeId="2" ParentId="34418" CreationDate="2011-01-06T22:54:41.390" Score="0" ViewCount="" Body="&lt;p&gt;Continuous education (by the architects to the &lt;em&gt;developers&lt;/em&gt;) of the stuff and a team spirit where everybody is responsible for foreign work too. Control in sense of quality assurance is good but do not sufficient in critical project situation (dead lines). You need stuff that work hard to achieve the impossible, all together.&lt;/p&gt;&#xA;" OwnerUserId="12593" LastActivityDate="2011-01-06T23:01:43.090" />
  <row Id="34420" PostTypeId="2" ParentId="34418" CreationDate="2011-01-06T23:03:37.207" Score="1" ViewCount="" Body="&lt;p&gt;Having QA review for code before it goes into production is definitely good practice and is recommended.  General code review by other team developers is typically done before QA.  However, the size of the team, the specific product, culture, etc. determine how the code review should be done.  What I recommend is to do a code review with multiple people reviewing code.  Also if you have several team members I would suggest having several people review the code not just the lead developer.  Team members with less experience might not be able to identify as many issues, but will learn not only new ways to do things and become more familiar with the code that the team supports.&lt;/p&gt;&#xA;" OwnerUserId="12586" LastActivityDate="2011-01-06T23:03:37.207" />
  <row Id="34421" PostTypeId="2" ParentId="34363" CreationDate="2011-01-06T23:04:18.363" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Vulnerability nightmares&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Think you've got it bad now?  It's getting worse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We've just had a piece of malware apparently specifically targetted to destroy Iranian uranium refinement centrifuges.  Part of the todo around Wikileaks is a formless group of people called Anonymous attacking commercial sites, with some success on some of them.  It wasn't that long ago that researchers studying some particular malware were hit by massive DDoS attacks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yeah, StuxNet was probably made by a government (US?  Israel?  China?), but a lot of the threats are from shadowy organizations, or even the completely unorganized Anonymous.  This will continue, and well-prepared malware and other attacks will come out of nowhere with increasing frequency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's going to be a war zone out there, and neither the government nor Symantec are going to be able to protect you.  Have fun.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2011-01-06T23:04:18.363" CommentCount="1" />
  <row Id="34422" PostTypeId="2" ParentId="34418" CreationDate="2011-01-06T23:05:47.143" Score="1" ViewCount="" Body="&lt;p&gt;In our case, code ships when it meets the specified requirements.  A thorough testing, review and validation process of the software is undertaken to insure that the requirements are fully satisfied.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Although we have informal style guidelines (and review of critical code), that is a secondary consideration.  I work with a lot of very smart people, and code quality is seldom an issue.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2011-01-06T23:05:47.143" CommentCount="2" />
  <row Id="34423" PostTypeId="2" ParentId="34363" CreationDate="2011-01-06T23:17:32.750" Score="0" ViewCount="" Body="&lt;p&gt;IPV6 webservers on smart phones. That'll change the game big time.&lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2011-01-06T23:17:32.750" />
  <row Id="34424" PostTypeId="2" ParentId="33020" CreationDate="2011-01-06T23:28:06.060" Score="1" ViewCount="" Body="&lt;p&gt;In my experience, at the detailed implementation phase the answer lies in profiling the code. Its important to know what needs to be faster and what is acceptably fast. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is also important to know where exactly the performance bottleneck is - optimizing a part of the code which takes only 5% of the total time to run wont do any good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Steps 2 and 3 describe non-premature optimization:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Make it work&lt;/li&gt;&#xA;&lt;li&gt;Test. Not fast enough? &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Profiling_%28computer_programming%29&quot; rel=&quot;nofollow&quot;&gt;Profile it&lt;/a&gt;&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Using the data from step 2, optimize the slowest sections of the code.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="12588" LastActivityDate="2011-01-06T23:28:06.060" CommentCount="3" />
  <row Id="34425" PostTypeId="1" CreationDate="2011-01-06T23:46:41.883" Score="0" ViewCount="120" Body="&lt;p&gt;Hey guys, I'm a new developah from Boston and I'm looking foah some web developah conferences and events to go to.  Do any programmahs know of any that ah coming up neah Boston?  Preferably close to a T station oah a restaurant with wicked chowdah?&lt;/p&gt;&#xA;" OwnerUserId="12591" LastActivityDate="2011-01-06T23:46:41.883" ClosedDate="2011-01-06T23:50:31.800" Title="Bostonian developah heah!" Tags="&lt;conferences&gt;" FavoriteCount="1" />
  <row Id="34426" PostTypeId="2" ParentId="34209" CreationDate="2011-01-07T00:05:57.933" Score="1" ViewCount="" Body="&lt;p&gt;According to &lt;a href=&quot;http://stackoverflow.com/questions/3884362/how-to-test-multi-touch-in-android-emulator&quot;&gt;this&lt;/a&gt; and &lt;a href=&quot;http://code.google.com/p/android/issues/detail?id=5977&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt;, the Android emulator does not support multitouch, although single-touch gestures should still be possible.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2011-01-07T00:05:57.933" />
  <row Id="34427" PostTypeId="2" ParentId="34371" CreationDate="2011-01-07T00:18:04.647" Score="0" ViewCount="" Body="&lt;p&gt;Too much &lt;em&gt;work-arrounds&lt;/em&gt; and concepts have to thrown away with J6EE so &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0557078326&quot; rel=&quot;nofollow&quot;&gt;Real World Java EE Patterns Rethinking Best Practices&lt;/a&gt; by Adam Bien is the right place to start reading for a experienced developer.&lt;/p&gt;&#xA;" OwnerUserId="12593" LastActivityDate="2011-01-07T00:18:04.647" />
  <row Id="34428" PostTypeId="1" CreationDate="2011-01-07T00:28:07.977" Score="0" ViewCount="40" Body="&lt;p&gt;I need a good service to send Email newsletters.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I send a couple of product news letters a month to about 6000 registered clients&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you guys recommend a good service ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It whoud be nice if it had feedback&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some kind of statistic&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A simple way to upload my Emails&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A simple way to upload my news letter&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A test mode of some kind&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And of course as low cost as possible&lt;/p&gt;&#xA;" OwnerUserId="8764" LastActivityDate="2011-01-07T00:28:07.977" ClosedDate="2011-01-07T00:31:44.470" Title="Newsletter and bulk email service" Tags="&lt;email&gt;&lt;feedback&gt;" CommentCount="3" />
  <row Id="34429" PostTypeId="2" ParentId="15002" CreationDate="2011-01-07T00:29:49.067" Score="0" ViewCount="" Body="&lt;p&gt;The great thing about MPS is the editor can be more sophisticated, because you're editing an AST instead of just text.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example of someone using MPS, check out &lt;a href=&quot;http://www.realaxy.com&quot; rel=&quot;nofollow&quot;&gt;http://www.realaxy.com&lt;/a&gt; and look at the videos.  I think you'll be impressed. &lt;/p&gt;&#xA;" OwnerUserId="12594" LastActivityDate="2011-01-07T00:29:49.067" />
  <row Id="34430" PostTypeId="2" ParentId="33968" CreationDate="2011-01-07T00:33:56.580" Score="2" ViewCount="" Body="&lt;h2&gt;The short version&lt;/h2&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Remember that code reviews are a chance for both the reviewee &lt;em&gt;and&lt;/em&gt; the reviewer to learn.&lt;/li&gt;&#xA;&lt;li&gt;Phrase feedback as a question.&lt;/li&gt;&#xA;&lt;li&gt;Don't let lack of knowledge stop you from providing feedback (as long as you are doing #2).&lt;/li&gt;&#xA;&lt;li&gt;Avoid &quot;preference reviews&quot; or at least try to make it clear that they're your own personal preferences and they don't necessarily need to agree.&lt;/li&gt;&#xA;&lt;li&gt;Try to submit patches instead of being an &quot;armchair code reviewer&quot;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;h2&gt;The longer version&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;First of all, remember that code review isn't just an opportunity for the reviewee to learn.  It's also an opportunity for the reviewer to learn as well.  In fact, I've heard of several organizations that make new programmers start out doing code reviews so they can get a feel for the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With this in mind, there's one piece of code review advice that I've always found useful in general, but is especially pertinent in your position.  Phrase your feedback in the form of a question rather than as a statement.  In other words, instead of saying &quot;This code sucks!&quot;, you could say &quot;Why did you write the code this way instead of doing ...&quot;  This makes the code review process more pleasant and allows you to learn as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another piece of advice I have for you is not to let your lack of knowledge make you back down.  If you see something that you perceive as wrong, and you get a hand-wavy answer from the reviewee, don't back down (at least not due to lack of knowledge).  Remember, what makes good code in one language is rarely any different from what makes good code in any other language.  Yes, certain languages have different idioms to help you write good code.  But it's important to realize that those idioms are &lt;em&gt;tools&lt;/em&gt; rather than ends in themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Next of all, try to avoid doing &quot;preference reviews&quot;.  This is something that I (and plenty of others) have to make a very conscious effort at.  In other words, try to avoid doing reviews that are along the lines of &quot;You did &lt;em&gt;x&lt;/em&gt;, but I prefer &lt;em&gt;y&lt;/em&gt;&quot;.  Now, there isn't anything wrong with stating preferences, but you should clearly label them as such and make a note that the other party is free to disagree.  This is important, because most things that are different from language to language fall under this category.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lastly, do you guys use a distributed version control system?  One thing that might help is if rather than just noting what's wrong with the code, you could rewrite the code how you would have written it, test it, and then submit a patch for it.  This helps show that you're genuinely interested in improving their code and not just being an &quot;armchair code reviewer&quot; and gives you a chance to learn the language better.  Plus, it's usually easier to disagree with &quot;I think you should do this&quot; than it is &quot;Here's how I would have done it, and here's a patch if you agree&quot;.  I suppose you don't necessarily &lt;em&gt;need&lt;/em&gt; a DVCS for this, but it certainly helps.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastEditorUserId="1626" LastEditorDisplayName="" LastEditDate="2011-01-07T00:46:10.247" LastActivityDate="2011-01-07T00:46:10.247" />
  <row Id="34431" PostTypeId="2" ParentId="34363" CreationDate="2011-01-07T00:37:41.143" Score="1" ViewCount="" Body="&lt;p&gt;Speaker-independent, large vocabulary voice recognition, and the ability of a computer to understand and follow my directions without errors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I use just enough of this technology now (e.g. via services like &lt;a href=&quot;http://www.jott.com&quot; rel=&quot;nofollow&quot;&gt;jott.com&lt;/a&gt;), that I can see that sometime in the future talking to a computer will be as common as using a keyboard (or replace it).  It's one of those areas (like most promises of AI) that's always &quot;just around the corner&quot;, but when it becomes reality it will be a game-changer.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2011-01-07T00:37:41.143" />
  <row Id="34432" PostTypeId="2" ParentId="4587" CreationDate="2011-01-07T00:56:11.870" Score="1" ViewCount="" Body="&lt;p&gt;Code that poses a safety hazard.  I wasn't the one writing it but I became aware of it and had to make a stink.  (The guy writing it didn't realize the danger.)  The code controlled a saw that would have no difficulty slicing a person in two and they were implementing the emergency-stop in software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(No, we didn't sell these saws.  I don't know what was wrong with the original control system for the saw but we were replacing the software for some reason.)&lt;/p&gt;&#xA;" OwnerUserId="5555" LastActivityDate="2011-01-07T00:56:11.870" CommunityOwnedDate="2011-01-07T00:56:11.870" />
  <row Id="34433" PostTypeId="2" ParentId="34363" CreationDate="2011-01-07T00:56:23.910" Score="0" ViewCount="" Body="&lt;p&gt;&lt;em&gt;The Omniversal Avatar realized.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Always on connections; location awareness; the cloud; tracking cookies; stored search history; Hunch, Netflix, and the rest of the preference predictors; OpenID; online banking; the Internet archive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All your services, data, and algorithms will collapse into a singularity, and become the one true online version of you, your Avatar, which is your sole representative across all the interwebs. &lt;/p&gt;&#xA;" OwnerUserId="145" LastActivityDate="2011-01-07T00:56:23.910" />
  <row Id="34434" PostTypeId="2" ParentId="34354" CreationDate="2011-01-07T01:03:00.663" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;how the current structure of the folder can be made more conducive for finding those libraries again.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;There are limits.  Years ago (decades really) I read a nice paper by some folks at the old AT&amp;amp;T (before they were broken up and reassembled) that described profound limitations in understanding a base of software and &quot;effectively&quot; reusing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The issue is this.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;People can't find stuff.   They just can't.  The number of StackOverflow questions that are trivially answered by the first hit in a Google search indicates that some number of programmers can never find stuff even with Google.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;People can't understand what they find.  The more there is, they less the can understand of what's &quot;out there&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;NIH.  Not Invented Here.  Some people cannot reuse because their DNA prevents them from simply reusing.  There are always &quot;issues&quot; or &quot;concerns&quot; and they find great excuses to reinvent instead of reuse.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;None of this is related to folder structure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fine-tuning the folder structure is an attractive nuisance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You have to actively proselytize, explain, enhance, document, share, coerce, and create a cooperative environment.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;You have to find stuff for people.  In order to determine who can't find stuff, you have to meet with everyone periodically to understand their needs, their projects and their problems.  Don't waste time reorganizing the folders. Go out and meet your &quot;customers&quot;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You have to explain, clarify and document everything over and over again.  And then revise it again when people use it incorrectly, can't find it or misunderstand it.  Don't waste time reorganizing the folders. Meet your &quot;customers&quot; and provide them information they need to understand what they find.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;NIH cannot be overcome.  There will always be people who simply refuse to cooperate.  There they are.  Work around them or cope with them in some way.  All the clever folder organizations in the world won't stop them from forking a project because they have to do it their own way.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-07T01:03:00.663" CommentCount="1" />
  <row Id="34435" PostTypeId="2" ParentId="34354" CreationDate="2011-01-07T01:17:39.497" Score="0" ViewCount="" Body="&lt;p&gt;Frankly, I have found that as with the web having information in nicely laid out directories is not enough, you need to have a extensive code search which can be used to find snippets and sometimes blocks of code which can be reused even if it is part of the &quot;shared code&quot; project.&lt;/p&gt;&#xA;" OwnerUserId="3755" LastActivityDate="2011-01-07T01:17:39.497" />
  <row Id="34436" PostTypeId="2" ParentId="34354" CreationDate="2011-01-07T01:20:25.740" Score="0" ViewCount="" Body="&lt;p&gt;I am not sure that there is good answer to this. I have run into this exact scenario with a senior developer that was new to our team. He had essential done something that was already part of a library. He was just unaware that the library existed. I think that this is a case where code reviews can be extremely productive. New developers to a team simply just don't know the code base enough to realize that there might something that already exists that solves a particular problem. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At first I wanted to suggest documentation possible in the form of wiki, but I don't think that is helpful. You can have someone look it over, but chances are that they might not even understand what the intent of the library is until they run into a situation where it is applicable. I think documenting libraries can be great for reference purposes, but if you don't even know what to look for then the documentation is largely useless. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2011-01-07T02:49:02.633" LastActivityDate="2011-01-07T02:49:02.633" />
  <row Id="34437" PostTypeId="2" ParentId="34363" CreationDate="2011-01-07T01:20:43.807" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Revolutionary Processor Technology&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Memristor&quot; rel=&quot;nofollow&quot;&gt;The Memristor&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A processor that can also store memory and can be stacked so that processor connections are in 3D.  Imagine programmming for that.  I hear HP has this tech in R&amp;amp;D already.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Quantum_computer&quot; rel=&quot;nofollow&quot;&gt;The Quantum Computer&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This one seems to be farther away then the memristor but not one bit less of a game changer.  Supercomputer in your pocket.&lt;/p&gt;&#xA;" OwnerUserId="8661" LastActivityDate="2011-01-07T01:20:43.807" CommentCount="2" />
  <row Id="34438" PostTypeId="1" CreationDate="2011-01-07T01:39:43.127" Score="2" ViewCount="389" Body="&lt;p&gt;I've used Adobe Flex to develop a web application and I simply don't have an opinion of it, it looks good to the user and the code can't be seen for most users, but, is that it? What other advantage does Flex has?&lt;/p&gt;&#xA;" OwnerUserId="6078" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2011-01-07T01:41:57.867" LastActivityDate="2011-01-07T13:38:10.867" Title="What are the advantages of using Adobe Flex?" Tags="&lt;flex&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="34439" PostTypeId="1" CreationDate="2011-01-07T01:43:39.143" Score="5" ViewCount="403" Body="&lt;p&gt;Writing a GUI for a program has always been a daunting, depressing, and frustrating task. It doesn't matter which language, its extremely hard to get what I want. Especially in compiled languages like Java where a change takes a minute or two to build.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The result is that I increasingly use GUI designers for some of my project. Sure there is some spagetti code, but as long as I leave the configuration and a note saying &quot;This was designed with X&quot; I have no qualms with doing this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this an okay way to design a GUI? More importantly, is this what most people do? Or is the common way to just sit down and write it out?&lt;/p&gt;&#xA;" OwnerUserId="66" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-01-07T10:24:26.743" LastActivityDate="2011-03-18T10:27:39.657" Title="Use a GUI designer or write it yourself for the desktop?" Tags="&lt;design&gt;&lt;gui&gt;&lt;automation&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="2" />
  <row Id="34440" PostTypeId="1" CreationDate="2011-01-07T01:46:43.807" Score="2" ViewCount="189" Body="&lt;p&gt;I have developed a distributed test automation system which consists of two different entities. One entity is responsible for triggering tests runs and monitoring/displaying their progress. The other is responsible for carrying out tests on that host. Both of these entities retrieve data from a central DB. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, my first thought is that this is clearly a server-client architecture. After all, you have exactly one organizing entity and many entities that communicate with said entity. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, while the supposed clients to communicate to the server via RPC, they are not actually requesting services or information, rather they are simply reporting back test progress, in fact, once the test run has been triggered they can complete their tasks without connection to the server. The request for a service is actually made by the supposed server which triggers the clients to carry out tests. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So would this still be considered a server-client architecture or is this something different? &lt;/p&gt;&#xA;" OwnerUserId="12597" LastActivityDate="2011-01-07T07:09:37.830" Title="What would one call this architecture?" Tags="&lt;architecture&gt;" AnswerCount="4" FavoriteCount="1" />
  <row Id="34441" PostTypeId="2" ParentId="32743" CreationDate="2011-01-07T01:54:10.847" Score="1" ViewCount="" Body="&lt;p&gt;I think that there is an issue with your search criteria in that you are looking for a a RFC that is too specific. Ultimately what the problem boils down to is an application protocol for reading, and modifying directories over an IP network, which exists. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol&quot; rel=&quot;nofollow&quot;&gt;LDAP&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-07T01:54:10.847" />
  <row Id="34442" PostTypeId="2" ParentId="34200" CreationDate="2011-01-07T01:57:37.063" Score="0" ViewCount="" Body="&lt;p&gt;&quot;It's FREE!&quot; is usually a pretty good argument. &lt;a href=&quot;https://www.pivotaltracker.com/&quot; rel=&quot;nofollow&quot;&gt;Pivotal Tracker&lt;/a&gt; is free, requires no installation, and could very easily give your managers a better high-level view over things than is possible with a lowly spreadsheet. &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Edit:&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Much to my annoyance, it was just announced that Pivotal Tracker won't be free for much longer. :(&lt;/p&gt;&#xA;" OwnerUserId="4222" LastEditorUserId="4222" LastEditorDisplayName="" LastEditDate="2011-01-21T08:39:31.217" LastActivityDate="2011-01-21T08:39:31.217" CommentCount="4" />
  <row Id="34443" PostTypeId="2" ParentId="34440" CreationDate="2011-01-07T02:03:49.867" Score="2" ViewCount="" Body="&lt;p&gt;If this where a Client/Server Architecture you would have it backwards. The entity triggering the test is the client and the the entities running the tests are the servers. The database itself would actually be another server. However, I agree with Renesis. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2011-01-07T02:46:56.117" LastActivityDate="2011-01-07T02:46:56.117" />
  <row Id="34444" PostTypeId="2" ParentId="34440" CreationDate="2011-01-07T02:08:37.397" Score="0" ViewCount="" Body="&lt;p&gt;It fits the definition of Client-Server architecture .. &lt;a href=&quot;http://en.wikipedia.org/wiki/Client%E2%80%93server_model&quot; rel=&quot;nofollow&quot;&gt;As wikipedia says&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="12426" LastActivityDate="2011-01-07T02:08:37.397" />
  <row Id="34445" PostTypeId="1" CreationDate="2011-01-07T02:13:20.963" Score="5" ViewCount="237" Body="&lt;p&gt;I've been proposing that my workplace implement Behavior-Driven-Development, by writing high-level specifications in a scenario format, and in such a way that one could imagine writing a test for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do know that working against testable specifications tends to increase developer productivity. And I can already think of several examples where this would be the case on our own project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However it's difficult to demonstrate the value of this to the business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is because we already have a Joint Application Development (JAD) process in place, in which developers, management, user-experience and testers all get together to agree on a common set of requirements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, they ask, why should developers work against the test-cases created by testers? These are for verification and are based on the higher-level specs created by the UX team, which the developers currently work off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This, they say, is sufficient for developers and there's no need to change how the specs are written.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They seem to have a point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the actual benefit of BDD/TDD, if you already have a test-team who's test cases are fully compatible with the higher-level specs currently given to the developers?&lt;/p&gt;&#xA;" OwnerUserId="5879" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-01-22T19:35:15.530" LastActivityDate="2011-01-22T19:35:15.530" Title="BDD/TDD vs JAD?" Tags="&lt;productivity&gt;&lt;development-methodologies&gt;&lt;tdd&gt;&lt;bdd&gt;&lt;jad&gt;" AnswerCount="5" FavoriteCount="2" />
  <row Id="34446" PostTypeId="2" ParentId="34439" CreationDate="2011-01-07T02:14:09.783" Score="3" ViewCount="" Body="&lt;p&gt;I have never actually found a visual designer that makes it easy to create robust designs (if anyone has any they like, feel free to correct me). They are nice for dumping stuff on a fixed-size window to mock things up, but when it comes to making something that resizes nicely, plays well with DPI and themes, and all the other stuff that separates a professional UI from a merely &quot;good-enough&quot; one, they honestly become more work than just coding it up yourself (assuming a decent UI framework to play with).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Visual designers are &lt;em&gt;excellent&lt;/em&gt; for rapidly prototyping software, trialling designs, and playing around to see how stuff looks, but I wouldn't use one for the final build.&lt;/p&gt;&#xA;" OwnerUserId="9029" LastActivityDate="2011-01-07T02:14:09.783" CommentCount="7" />
  <row Id="34447" PostTypeId="2" ParentId="34438" CreationDate="2011-01-07T02:15:07.380" Score="4" ViewCount="" Body="&lt;p&gt;Advantages:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;It runs on the flash player, which can be found almost everywhere (even Android, but not iOS).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;It's backed by a major company, Adobe.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;There are plenty of frameworks and tools built for and around it from Adobe and the community.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;IDE support comes from Adobe with FlashBuilder, and Jetbrains with Intellij.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Developing RIA with Flex can be considered easier than with HTML and JavaScript.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Flex apps can easily run outside the browser, and offline.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Disadvantages:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;HTML5 is here and is supported by everyone. Even by Adobe and Microsoft.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;There is no good alternative flash player like there are alternative web browsers.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;s&gt;Flex is no longer open source, and&lt;/s&gt; neither IDE tools are free.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Just like all things, Flex doesn't work for every website. Flex is designed as a RIA tool, not as a replacement for your standard dynamic website. Which, unfortunately, many business don't understand.&lt;/p&gt;&#xA;" OwnerUserId="7426" LastEditorUserId="7426" LastEditorDisplayName="" LastEditDate="2011-01-07T13:38:10.867" LastActivityDate="2011-01-07T13:38:10.867" CommentCount="4" />
  <row Id="34448" PostTypeId="2" ParentId="34440" CreationDate="2011-01-07T02:18:02.200" Score="4" ViewCount="" Body="&lt;p&gt;The test triggering system is definitely not a &lt;strong&gt;server&lt;/strong&gt; since it makes the request.  I wouldn't say the test runners are servers either since they are tightly coupled in purpose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you have sounds like a mix between a &lt;a href=&quot;http://en.wikipedia.org/wiki/Computer_cluster&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Cluster&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;with master/slave nodes&lt;/strong&gt; and an &lt;a href=&quot;http://en.wikipedia.org/wiki/Agent-based_model&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Agent-based model&lt;/strong&gt;&lt;/a&gt; depending on the purpose for the nodes.  If the purpose is simply to balance load, then you have a &lt;strong&gt;cluster.&lt;/strong&gt;  If the purpose is to distribute tasks to multiple runners to test how your system behaves with all of them acting at the same time, then it's more like a &lt;strong&gt;multi-agent system&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;i&gt;See &lt;a href=&quot;http://en.wikipedia.org/wiki/Distributed_application#Architectures&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Distributed_application#Architectures&lt;/a&gt; for a list of architecture types - you'll see that yours is most clearly connected to &lt;strong&gt;cluster&lt;/strong&gt;, because it sounds like it is &lt;strong&gt;tightly coupled&lt;/strong&gt;&lt;/i&gt;&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-01-07T02:25:41.837" LastActivityDate="2011-01-07T02:25:41.837" CommentCount="2" />
  <row Id="34449" PostTypeId="2" ParentId="14226" CreationDate="2011-01-07T02:23:03.807" Score="1" ViewCount="" Body="&lt;p&gt;I have one in the far corner of my desk, behind some other things.  It was put there when the cube was built and it works, but it never rings and I have hardly ever picked it up.  The team is usually all onsite and when not, we just use IM.&lt;/p&gt;&#xA;" OwnerUserId="4526" LastActivityDate="2011-01-07T02:23:03.807" CommunityOwnedDate="2011-01-07T02:23:03.807" />
  <row Id="34451" PostTypeId="2" ParentId="34445" CreationDate="2011-01-07T03:06:37.513" Score="3" ViewCount="" Body="&lt;p&gt;TDD has little to do with QA testing or creating specifications.  TDD is a programming process style that narrows focus on what and how to develop, given a spec.  The end result is 'just enough' code to pass a test.  This ensures two things.  First that your application is 100% tested to the specs as the developers understand them.  Second, and more importantly, with that set of unit tests you can now refactor with confidence when working on the next thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;QA is as much about making sure the system does what users expect as it is about making sure the code is bug-free.&lt;/p&gt;&#xA;" OwnerUserId="11376" LastActivityDate="2011-01-07T03:06:37.513" />
  <row Id="34452" PostTypeId="1" CreationDate="2011-01-07T03:15:04.943" Score="8" ViewCount="582" Body="&lt;p&gt;Have you ever had multiple job offers at the same time?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If so, did you choose the one with the highest compensation level? And did you later regret that decision?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I feel like this question is particularly relevant for software developers, because sometimes jobs with less compensation have better learning opportunities and/or a better atmosphere.&lt;/p&gt;&#xA;" OwnerUserId="1996" LastActivityDate="2011-01-15T23:46:43.827" ClosedDate="2011-01-08T13:55:32.293" Title="Multiple Job Offers: Could choosing the one with the highest compensation be a mistake?" Tags="&lt;career&gt;&lt;jobs&gt;&lt;career-advice&gt;&lt;advice&gt;&lt;salary&gt;" AnswerCount="9" CommentCount="2" FavoriteCount="2" />
  <row Id="34453" PostTypeId="2" ParentId="34452" CreationDate="2011-01-07T03:20:02.740" Score="30" ViewCount="" Body="&lt;p&gt;Choose the one you'll think be the  most fun. If the difference is not substantial, what would you rather do, spend a little more on drinks, cabs and gadgets or have more fun each and every day at work?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my career I've regretted taking some jobs just for the money, but I have never regretted taking challenging and fun jobs and assignments that paid a little less. Always try to go for both but never compromise on the fun side.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It amazes me that some people are willing to have &quot;just a job&quot;, jobs that are neither  fun nor fullfiling. That means you're wasting  roughly one third of your life doing stuff you'd rather not be doing. It's a great luxury to have a great job for sure, but it's something we all should strive for IMO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ultimate currency is not money but happiness. &lt;/p&gt;&#xA;" OwnerUserId="12354" LastEditorUserId="12354" LastEditorDisplayName="" LastEditDate="2011-01-07T04:04:10.783" LastActivityDate="2011-01-07T04:04:10.783" CommentCount="9" />
  <row Id="34454" PostTypeId="2" ParentId="34439" CreationDate="2011-01-07T03:21:56.230" Score="0" ViewCount="" Body="&lt;p&gt;A GUI designer is a tempting quick fix.  But sitting down and doing it by hand is a better alternative for projects and items that aren't going to get thrown away later.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Typically I find the best method is to design the GUI on paper first.  Draw a rough sketch of where buttons and other components will be.  Then when working in a language like Java that makes use of various Layout Managers, think about which components and combinations of layout  managers would be needed.   All of this before you start coding it.  Then implement it piece by piece.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you go the GUI design course you will feel like you are making great progress until you get close to the end and can't get something to work right or have to make a change.  Doing it by hand seems more like a slow turtle, but it provides steady progress.   Also, your speed will increase the more you do it.&lt;/p&gt;&#xA;" OwnerUserId="12586" LastActivityDate="2011-01-07T03:21:56.230" />
  <row Id="34455" PostTypeId="2" ParentId="34452" CreationDate="2011-01-07T03:24:13.610" Score="10" ViewCount="" Body="&lt;p&gt;Whatever you do, don't base it on &lt;strong&gt;money&lt;/strong&gt; alone.  Everything involved with the job &amp;mdash; benefits, environment, team members, your boss, promotion possibility, on-site perks, even fun factor &amp;mdash; make up &lt;strong&gt;total compensation&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you've figured all of those in, then yes, take the one with the highest &lt;strong&gt;total compensation&lt;/strong&gt;!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Last year I had two job offers through the same recruiter. I talked about it with the recruiter and told him I was leaning toward the one with the lower salary, but because of the money, I wasn't 100% sold.  He ended up going back and getting them to match the other offer.  I accepted and realized I would have been wrong to pass it over even if they hadn't matched. I am very glad I didn't choose the other one based on the money in the first place.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-01-07T03:45:15.213" LastActivityDate="2011-01-07T03:45:15.213" />
  <row Id="34456" PostTypeId="1" AcceptedAnswerId="34484" CreationDate="2011-01-07T03:26:18.050" Score="15" ViewCount="564" Body="&lt;p&gt;I searched and couldn't find any &lt;em&gt;business&lt;/em&gt; reasons why git/mercurial/bazzr systems are better than centralized systems (subversion, perforce).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you were trying to sell a DVCS to a non-technical person what arguments would you provide for the DVCS &lt;strong&gt;increasing profit&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will shortly be pitching git to my manager, it will take some time converting out subversion repositories and some expense in buying smartgit licences.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt; I tried to make this question into a generic discussion on centralized vs decentralized, but inevitably it has turned into git vs subversion. Surely there are better centralized systems than subversion.&lt;/p&gt;&#xA;" OwnerUserId="5678" LastEditorUserId="5678" LastEditorDisplayName="" LastEditDate="2011-01-08T02:38:19.817" LastActivityDate="2011-05-21T14:02:13.550" Title="Business case for decentralized version control systems" Tags="&lt;version-control&gt;&lt;mercurial&gt;&lt;dvcs&gt;&lt;svn&gt;&lt;git&gt;" AnswerCount="12" CommentCount="4" FavoriteCount="4" />
  <row Id="34457" PostTypeId="2" ParentId="34452" CreationDate="2011-01-07T03:26:51.467" Score="4" ViewCount="" Body="&lt;p&gt;It depends on the difference. If it looks like this then I would easily pick the lower paying job assuming the salary is still reasonable.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Higher paying:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cube farm  &lt;/li&gt;&#xA;&lt;li&gt;Lost in sea of other engineer's  &lt;/li&gt;&#xA;&lt;li&gt;The time police were especially insistent that I start at 8  &lt;/li&gt;&#xA;&lt;li&gt;15in monitor. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Lower Paying Job:  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I have my own office   &lt;/li&gt;&#xA;&lt;li&gt;I work on a small team   &lt;/li&gt;&#xA;&lt;li&gt;Flexible hours.  &lt;/li&gt;&#xA;&lt;li&gt;3 monitors.    &lt;/li&gt;&#xA;&lt;li&gt;Lax dress code&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Just make sure you will be happy going to work everyday, after all you spend most of your time there. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2011-01-07T03:46:27.590" LastActivityDate="2011-01-07T03:46:27.590" CommentCount="3" />
  <row Id="34458" PostTypeId="2" ParentId="34456" CreationDate="2011-01-07T03:31:10.480" Score="5" ViewCount="" Body="&lt;p&gt;I assume you can make a case for version control increasing productivity (and thus profit) even when a developer is working alone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good DVCS recognizes those same productivity benefits even when working as part of a team - each developer can get all the benefits of working with version control - they can make frequent commits, rollbacks, play around with things, etc. - without worrying about conflicts with what other developers are doing until they're ready to push their changes out.&lt;/p&gt;&#xA;" OwnerUserId="9029" LastActivityDate="2011-01-07T03:31:10.480" CommentCount="5" />
  <row Id="34459" PostTypeId="2" ParentId="34456" CreationDate="2011-01-07T03:32:45.940" Score="11" ViewCount="" Body="&lt;p&gt;I would say the quick and painless branching and merging would allow developers to be more productive with their code, as every new feature could be branched, then later merged. Making the development process go by much more smoothly. Also, the distributed nature, would allow every developer to have an entire copy of the code, so there is no worry of a centralized server failure taking down all of your code. There is probably more reasons, those two, however, are my top reasons for using Git.&lt;/p&gt;&#xA;" OwnerUserId="7682" LastActivityDate="2011-01-07T03:32:45.940" CommentCount="5" />
  <row Id="34460" PostTypeId="2" ParentId="34445" CreationDate="2011-01-07T03:33:05.427" Score="7" ViewCount="" Body="&lt;p&gt;You're probably getting push-back because you are viewing (and therefore communicating to your team) the two as mutually exclusive, and they aren't.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you have in place is a good model.  It would be a mistake to &quot;abandon&quot; something that works.  Fortunately &lt;strong&gt;TDD&lt;/strong&gt; is just about &lt;strong&gt;when the test specifications are written&lt;/strong&gt;.  It doesn't mean the testers write the product specs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to do TDD, your product specs should be written the same way they are now.  Then the testers should write test cases according to these specs.  Then your developers develop passing code for these test cases (they don't need to be blind to the product specs - while your team is new to it, your test cases may not be sufficient to help illustrate the product specs).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This shouldn't feel uncomfortable to your team at all.  In fact, it should give management and your UX team more comfort - &lt;strong&gt;1)&lt;/strong&gt; knowing first that their specs have been validated and make sense in testable scenarios before code had to be written, and &lt;strong&gt;2)&lt;/strong&gt; knowing that the code that is written is actually well tested. (Advantages to this already answered).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I worked for several years on a team that had the exact process you describe (what you called JAD), and gradually added TDD, and for us combining the two concepts was definitely the best approach.&lt;/p&gt;&#xA;" OwnerUserId="2314" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-01-07T03:43:24.060" LastActivityDate="2011-01-07T03:43:24.060" CommentCount="1" />
  <row Id="34461" PostTypeId="2" ParentId="34452" CreationDate="2011-01-07T04:01:35.777" Score="7" ViewCount="" Body="&lt;p&gt;Choose the one that will be the most fun and give you the most &lt;strong&gt;meaning&lt;/strong&gt;...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I say &quot;meaning&quot;, I'm talking about how rewarding and interesting the work is &lt;em&gt;in itself&lt;/em&gt;. Eg. Are you going to feel like you're working on something interesting and useful, or on a random boring business system that you don't really care about. That can really make or break how stressful a job is, and how long it takes before you burn out - even if the culture and conditions are relatively ok.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Pure financial compensation is one of the last points to me. But this depends: if the difference is between, say, $65,000 and $70,000, I'd more or less ignore the difference, and just focus on other factors. But if it's say, between $65,000 and $120,000 (yeah, right :P), then I might take the higher paying job even if it's &quot;worse&quot;, and put up with it for a while. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But this is just it: financial compensation would only really be a deciding factor for me in a scenario where I have an opportunity to rake in a LOT more than normal. ie That huge amount of extra money can buy some flexibility down the track - like working in the bad job for 2-3 years and then taking six months off to chill out, recover from the (inevitable) burnout, and live off the savings. But a relatively small difference would never be a decider.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastEditorUserId="5064" LastEditorDisplayName="" LastEditDate="2011-01-15T23:46:43.827" LastActivityDate="2011-01-15T23:46:43.827" CommentCount="1" />
  <row Id="34462" PostTypeId="2" ParentId="34452" CreationDate="2011-01-07T04:04:33.107" Score="3" ViewCount="" Body="&lt;p&gt;My main factors would be:&lt;br&gt;&#xA;1. &lt;strong&gt;Team&lt;/strong&gt;: I would rather work with a bunch of smart devs in a team rather than working alone maintaining a legacy system.&lt;br&gt;&#xA;2. &lt;strong&gt;The &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot; rel=&quot;nofollow&quot;&gt;joel test&lt;/a&gt;&lt;/strong&gt;: How does the companies factor on the joel test&lt;br&gt;&#xA;3. &lt;strong&gt;Work life balance&lt;/strong&gt;&lt;br&gt;&#xA;4. &lt;strong&gt;Developer treatment&lt;/strong&gt;: Is software bread n butter for the company or is it second fiddle to other things. Does devs have good tools, hardware to get their jobs done. How tech savvy is the management&lt;/p&gt;&#xA;" OwnerUserId="3755" LastActivityDate="2011-01-07T04:04:33.107" />
  <row Id="34463" PostTypeId="1" AcceptedAnswerId="34474" CreationDate="2011-01-07T04:10:17.747" Score="2" ViewCount="100" Body="&lt;p&gt;So I'm not doing any unit testing. But I've had an idea to make it more appropriate for my field of use. Yet it's not clear if something like this exists, and if, how it would possibly be called.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Ordinary unit tests combine the test logic and the expected outcome. In essence the testing framework only checks for booleans (did this match, did the expected result result). To generalize, the test code itself references the audited functions, and also explicites the result values like so:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;unit::assert(  test_me() == 17  )&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;What I'm looking for is a separation of concerns. The test itself should only contain the tested logic. The outcome and result data should be handled by the unit testing or assertion framework. As example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;unit::probe(   test_me()   )&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Here the &lt;code&gt;probe&lt;/code&gt; actually doubles as collector in the first run, and afterwards as verification method. The expected &lt;code&gt;17&lt;/code&gt; is not mentioned in the test code, but stored or managed elsewhere.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How is this scheme called? Or how would you call it? I hope I can find some actual implementations with the proper terminology.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Obviously such a pattern is unfit for TDD. It's strictly for regression testing. Also obviously, it cannot be used for all cases. Only the simpler test subjects can be analyzed that way, for anything else the ordinary unit test setup and assertion steps are required. And yes, this could be manually accomplished by crafting a ResultWhateverObject, but that would still require hardwiring that to the test logic.&lt;br&gt;&#xA;Also keep in mind that I'm inquiring for use with scripting languages, and not about Java. I'm aware that the xUnit pattern originates there, and why it's hence as elaborate as it is.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Btw, I've discovered one test execution framework which allows for shortening simple test notations to:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;test_me();   // 17&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;While thus the result data is no longer coded in (it's a comment), that's still not a complete separation and of course would work only for scalar results.&lt;/p&gt;&#xA;" OwnerUserId="1245" LastActivityDate="2011-02-13T12:54:07.117" Title="Term for unit testing that separates test logic from test result data" Tags="&lt;unit-testing&gt;" AnswerCount="2" FavoriteCount="2" />
  <row Id="34464" PostTypeId="2" ParentId="34456" CreationDate="2011-01-07T04:17:27.057" Score="1" ViewCount="" Body="&lt;p&gt;The only thing I can think of is that git works without a network connection.&#xA;Everything else is even often hard to sell to technical users who use subersion or perforce for quite some time.&lt;/p&gt;&#xA;" OwnerUserId="8736" LastActivityDate="2011-01-07T04:17:27.057" CommentCount="2" />
  <row Id="34465" PostTypeId="2" ParentId="34445" CreationDate="2011-01-07T04:18:40.880" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;So, they ask, why should developers work against the test-cases created by testers? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Great question.  TDD doesn't suggest that the test cases be written by testers.  The fact that you're folks are suggesting it indicates that all y'all aren't comfortable with TDD and are inserting extra steps in the process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Their question points up something important about TDD.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Testers don't write all the tests.  Indeed, they shouldn't write many of the tests.  Some folks say they shouldn't write any tests.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;[Tests] are for verification and are based on the higher-level specs created by the UX team, which ... is sufficient for developers&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes, but.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Those &quot;higher-level specs created by the UX team&quot; aren't always the best description of a system.  That claim -- &quot;[Tests] ... are based on the higher-level specs created by the UX&quot; -- is suspicious and often wrong.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What is the actual benefit of BDD/TDD, if you already have a test-team who's test cases are fully compatible with the higher-level specs currently given to the developers?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That involves a false assumption, again. Specifically &quot;test cases are fully compatible with the higher-level specs currently given to the developers&quot;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Concept -&gt; JAD -&gt; Specifications -&gt; Tests -&gt; Code&lt;/p&gt;&#xA;&#xA;&lt;p&gt;is what you have in place now.  Multiple, linear transformation steps.  Each step introduces some error.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Concept -&gt; Expected Test Results -&gt; Code&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Has fewer transformation steps and fewer errors introduced along the way.  The users (or the users with some help from facilitators) can write the test results directly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I did this for the first time a few years back and it was wildly successful.  At first they wanted design documents -- which we all wrote and passed around.  But I demanded specific test case results.  I created sample test results in spreadsheets.  It took a while (weeks actually) but the users eventually corrected my mistakes and sent me hugely expanded spreadsheets.  They added necessary clarifications in the form of test cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They also wrote notes and comments.  A bad habit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wrote a little utility to transform the spreadsheets directly into unittest code.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the end of the first attempted release, the users had numerous complaints and corrections and bugs to fix.  There was lots of IT trouble-ticket and status reporting going on.  Change control.  All that stuff.  All largely useless.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We walked through the spreadsheet with the test cases.  They fixed the errors in their spreadsheets (there were one or two).  They kept trying to explain their notes and comments.  I kept asking for examples instead of explanations.  Eventually, they started revising and expanded the spreadsheets to cover the bugs and features completely.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually every note and explanatory comment was backed up with a concrete example.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At this point, we -- the users and I -- were doing full TDD.  Spreadsheet test cases to unittest code to production code.  IT managers were fumbling around with change control documents and specification updates.  All that documentation simply described the spreadsheets which had the test cases.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once that first release was in production, the &quot;Phase 2&quot; requirements were entirely provided as test data on spreadsheets.  100% example-driven.  No comments, no notes, no explanations to speak of.   IT got out of our way and stopped trying to write English specifications.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Concept -&gt; Expected Results -&gt; Code&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's one benefit of TDD.  You didn't ask about refactoring, so I save that long, boring war story for someone else's question.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-07T04:18:40.880" />
  <row Id="34466" PostTypeId="2" ParentId="34445" CreationDate="2011-01-07T04:22:54.470" Score="0" ViewCount="" Body="&lt;p&gt;Honestly, I feel like these multi-lettered acronyms simple describe a specific sub-set of the entire development process. It is nice that are formalized so that they can be talked about, but the reality in my opinion is that successful software organizations implement some hybrid of all of them. Though, I think formal implementations of JAD are garbage as design by committee is unproductive. It certainly would not work in larger organizations. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer your question more specifically, I think there is a lot room for misunderstanding in functional requirement documents. Specifically on the management side. We counter act this by having two components in our requirements documents. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;High level requirements implemented in plain English that are often none detail specific.  The specifically describe typical use cases. Requirements written in this fashion tend to more digestible by none technical types such as sales or marketing. I would call this BDD&lt;/li&gt;&#xA;&lt;li&gt;Functional requirements. These are explicitly defined requirements that can be tested against. Typically, our QA department and some times support are the target audiences for these. I would call this TDD. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;So if had to pitch the case for BDD, I would argue that it limits the possibility that &quot;management&quot; misunderstands exactly what the product will do. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-07T04:22:54.470" />
  <row Id="34467" PostTypeId="2" ParentId="34452" CreationDate="2011-01-07T05:18:13.283" Score="6" ViewCount="" Body="&lt;p&gt;I agree with what others have said so far, but I'd like to bring up the opposing view point anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While considering factors other than money is important, don't be afraid of accepting a higher paying job if that's what you want to do. There sometimes is some social stigma around earning more money, but don't let that stop you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And also don't forget to consider how much money you reasonably need to maintain whatever lifestyle that you enjoy. It'd be great to choose a job based on its merits alone, but fun at work doesn't pay the rent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally, you'd find the sweet spot between work environment and monetary compensation and accept that job offer.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2011-01-07T05:18:13.283" />
  <row Id="34468" PostTypeId="2" ParentId="23915" CreationDate="2011-01-07T05:19:05.280" Score="2" ViewCount="" Body="&lt;p&gt;Check out the creative commons OpenSDLC &lt;a href=&quot;http://openSDLC.org&quot; rel=&quot;nofollow&quot;&gt;http://openSDLC.org&lt;/a&gt; it has great sections on strategic planning as part of the early release gates.&lt;/p&gt;&#xA;" OwnerUserId="12600" LastActivityDate="2011-01-07T05:19:05.280" />
  <row Id="34469" PostTypeId="1" AcceptedAnswerId="34470" CreationDate="2011-01-07T05:35:24.617" Score="2" ViewCount="951" Body="&lt;p&gt;Before you chastise me for asking this, I have an Adobe Air app that has a lot of investment in it, and if there is a way to utilize the existing code-base in &lt;em&gt;any&lt;/em&gt; way, it is worth considering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have heard news reports in passing about Adobe creating some kind of tool to allow flash or air apps to be ported to native objective-c code, but the information found in google is mostly commentary on the one-time Apple blockade.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question(s) is/are this:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Is it even possible, at any level, to use an existing Air app to create a Mac Store app?&lt;/li&gt;&#xA;&lt;li&gt;If possible, what are the resources I can use to accomplish this?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="12601" LastActivityDate="2011-01-17T18:20:56.573" Title="Adobe Air apps on the Mac App Store?" Tags="&lt;apple&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="34470" PostTypeId="2" ParentId="34469" CreationDate="2011-01-07T05:41:35.957" Score="6" ViewCount="" Body="&lt;p&gt;No, it is not possible to submit Adobe Air apps on the Mac App Store. Air applications fail several of the &lt;a href=&quot;https://developer.apple.com/appstore/mac/resources/approval/guidelines.html&quot; rel=&quot;nofollow&quot;&gt;Mac App Store Review Guidelines&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ul&gt;&#xA;  &lt;li&gt;Apps that download or install additional code or resources to add functionality or change their primary purpose will be rejected&lt;/li&gt;&#xA;  &lt;li&gt;Apps must be packaged and submitted using Apple's packaging technologies included in Xcode - no third party installers allowed&lt;/li&gt;&#xA;  &lt;li&gt;Apps must be self-contained, single application installation bundles, and cannot install code or resources in shared locations&lt;/li&gt;&#xA;  &lt;li&gt;Apps that use deprecated or optionally installed technologies (e.g., Java, Rosetta) will be rejected&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://labs.adobe.com/downloads/packagerforiphone.html&quot; rel=&quot;nofollow&quot;&gt;Flash Packager for iPhone&lt;/a&gt; is for iOS applications, not Mac applications. There are currently no plans from Adobe to support converting Air applications to be submittable to the Mac App Store.&lt;/p&gt;&#xA;" OwnerUserId="8" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2011-01-07T05:51:57.040" LastActivityDate="2011-01-07T05:51:57.040" CommentCount="3" />
  <row Id="34471" PostTypeId="2" ParentId="33841" CreationDate="2011-01-07T05:42:28.203" Score="1" ViewCount="" Body="&lt;p&gt;Thank you all for your suggestions :) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am now setting on to work better at my company and to work on programming and technologies in my free time at home..I hope to be successful eventually this way ..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you very much for your valuable suggestions .. that helped me think through the options available for me :D &lt;/p&gt;&#xA;" OwnerUserId="12602" LastActivityDate="2011-01-07T05:42:28.203" />
  <row Id="34472" PostTypeId="2" ParentId="34452" CreationDate="2011-01-07T06:08:00.033" Score="3" ViewCount="" Body="&lt;p&gt;As my father says, If you have choice between money and any other thing (family, pleasure, principles etc.) going for the other thing is always good for the long run.&lt;br&gt;&#xA;But off course if you are looking for some short term goal, like paying of the mortgage or something, go for the high paid job.&lt;br&gt;&#xA;Also keep one more thing in mind. Per year increment in less paid job most probably will be more than high paid jobs. (At least in my experience it was)&lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2011-01-07T06:08:00.033" />
  <row Id="34473" PostTypeId="1" CreationDate="2011-01-07T06:35:46.487" Score="4" ViewCount="128" Body="&lt;p&gt;C++0x adds pretty darn comprehensive type inference support. I'm sorely tempted to use it everywhere possible to avoid undue repetition, but I'm wondering if removing explicit type information all over the place is such a good idea. Consider this rather contrived example:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Foo.h&lt;/code&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#include &amp;lt;set&amp;gt;&#xA;&#xA;class Foo {&#xA;private:&#xA;&#xA;    static std::set&amp;lt;Foo*&amp;gt; instances;&#xA;&#xA;public:&#xA;&#xA;    Foo();&#xA;    ~Foo();&#xA;&#xA;    // What does it return? Who cares! Just forward it!&#xA;    static decltype(instances.begin()) begin() {&#xA;        return instances.begin();&#xA;    }&#xA;&#xA;    static decltype(instances.end()) end() {&#xA;        return instances.end();&#xA;    }&#xA;&#xA;};&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Foo.cpp&lt;/code&gt;:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#include &amp;lt;Foo.h&amp;gt;&#xA;#include &amp;lt;Bar.h&amp;gt;&#xA;&#xA;// The type need only be specified in one location!&#xA;// But I do have to open the header to find out what it actually is.&#xA;decltype(Foo::instances) Foo::instances;&#xA;&#xA;Foo() {&#xA;&#xA;    // What is the type of x?&#xA;    auto x = Bar::get_something();&#xA;&#xA;    // What does do_something() return?&#xA;    auto y = x.do_something(*this);&#xA;&#xA;    // Well, it's convertible to bool somehow...&#xA;    if (!y) throw &quot;a constant, old school&quot;;&#xA;&#xA;    instances.insert(this);&#xA;&#xA;}&#xA;&#xA;~Foo() {&#xA;    instances.erase(this);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Would you say this is reasonable, or is it completely ridiculous? After all, especially if you're used to developing in a dynamic language, you don't really &lt;em&gt;need&lt;/em&gt; to care all that much about the types of things, and can trust that the compiler will catch any egregious abuses of the type system. But for those of you that rely on editor support for method signatures, you're out of luck, so using this style in a library interface is probably really bad practice.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that writing things with all possible types implicit actually makes my code a lot easier for me to follow, because it removes nearly all of the usual clutter of C++. Your mileage may, of course, vary, and that's what I'm interested in hearing about. What are the specific advantages and disadvantages to radical use of type inference?&lt;/p&gt;&#xA;" OwnerUserId="2107" LastActivityDate="2011-01-07T19:49:13.627" Title="What are some reasonable stylistic limits on type inference?" Tags="&lt;best-practices&gt;&lt;c++&gt;&lt;type-system&gt;" AnswerCount="3" CommentCount="3" FavoriteCount="2" />
  <row Id="34474" PostTypeId="2" ParentId="34463" CreationDate="2011-01-07T06:42:48.737" Score="1" ViewCount="" Body="&lt;p&gt;There is such a thing as data-driven tests. These aren't the same thing you are asking for, but they may help with some of what you want.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically, the idea is that we define data structures and perform tests based on them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;translations = {&#xA;    1 : 'I',&#xA;    2 : 'II',&#xA;    4 : 'IV',&#xA;    125 : 'CXXV'&#xA;}&#xA;&#xA;def test_roman():&#xA;    for number, roman in translations.items():&#xA;        assert to_roman(number) == roman&#xA;        assert from_roman(roman) == number&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This makes it much easier to add additional test cases. In frameworks with support for it it can easily be made so that this would actually get recorded as many tests. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not sure what exactly you are attempted to get from your technique. You have to deal with all the setup of unit tests but skipping over what would seem to be a relatively minor part: specifying the output. It seems such a small savings and would only rarely be useful.  &lt;/p&gt;&#xA;" OwnerUserId="1343" LastActivityDate="2011-01-07T06:42:48.737" CommentCount="1" />
  <row Id="34475" PostTypeId="2" ParentId="28642" CreationDate="2011-01-07T06:47:37.693" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;If you are a Programmer you should inherently understand the business logic behind ALL your company's software.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even though we are capable of writing software, it does not mean we will inherently understand the internal business logic of every piece of software our company owns or requires us to write.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my experience customers assume we have a fundamental understanding of the business logic when proposing new software. Customers often become frustrated when you ask for further direction. I think there is an assumption that since tasks on the computer are &quot;quick&quot;, then the time required to plan and write a piece of software should be proportional. Customers can become even more frustrated when you explain the dangers of the implementation they are asking for. Its like a one way street of knowledge, the programmer should fully and immediately understand the business logic, but customer will step back from understanding the mechanics of the software, expecting it to be done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In another aspect, management will assume since you are a programmer you should inherently be able to use every piece of company software without training.&lt;/p&gt;&#xA;" OwnerUserId="1328" LastActivityDate="2011-01-07T06:47:37.693" CommunityOwnedDate="2011-01-07T06:47:37.693" CommentCount="2" />
  <row Id="34476" PostTypeId="2" ParentId="34438" CreationDate="2011-01-07T07:06:39.627" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Advantages&lt;/strong&gt;&lt;br&gt;&#xA;Flex is a framework built using ActionScript.&lt;br&gt;&#xA;It highly used in making Rich Internet Applications. Its easier to up and running flex applications.&lt;br&gt;&#xA;Truly Write Once Run Everywhere and not Write one and Debug Everywhere (javascript surely has this problem, I'd like to get it resolved).&lt;br&gt;&#xA;No more browser wars (I support html 5, but that's different).&lt;br&gt;&#xA;From Adobe. But its open-source. Flex SDK is &lt;code&gt;open-source&lt;/code&gt;.&lt;br&gt;&#xA;Runs on mobile devices as well (Flex SDK Hero).&lt;br&gt;&#xA;You can use which ever IDE or editor you want. Ant builds are just fine. The problem with all the free editors are no code-hinting. I truly miss that because without code hinting, its difficult with such a huge library. Again we have Eclipse pig (Flash Builder) which you can pay for and other premium IDEs.&lt;br&gt;&#xA;The bottom line is its all flash. It suits to both designers and programmers equally. That's why I'm interested in everything flash at the first place. There is not tool in this whole planet which does this kind of seamless integration. I'm a programmer and I have the artistic nature in me as well. So I can program and design all with the same tool.&lt;br&gt;&#xA;Good and large libraries.&lt;br&gt;&#xA;You could do virtually anything with AS3 (and flex in turn). Yeah! You can even control micro-controllers like Arduino, Phidgets etc all the way to high level stuff like making web sites.&lt;br&gt;&#xA;With the upcoming &lt;code&gt;molehill&lt;/code&gt; release of the flash player, the 3D realm will kill start to a whole new experience never before seen!!&lt;br&gt;&#xA;&lt;strong&gt;Disadvantage&lt;/strong&gt;&lt;br&gt;&#xA;Well there aren't much to be thought of. Anyway, the thing is since the framework is huge, the learning curve is more. Cramming everything into your brain will take more time.&lt;br&gt;&#xA;The IDEs which actually are required (it will make your life a lot more easier), is really costly.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2011-01-07T07:06:39.627" />
  <row Id="34477" PostTypeId="2" ParentId="34440" CreationDate="2011-01-07T07:09:37.830" Score="0" ViewCount="" Body="&lt;p&gt;Distributed architecture with a controller and workers.&lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2011-01-07T07:09:37.830" />
  <row Id="34478" PostTypeId="2" ParentId="34452" CreationDate="2011-01-07T07:21:59.077" Score="3" ViewCount="" Body="&lt;p&gt;If the position is temporary, I would suggest taking the better compensation, unless the role is likely to exceed 6 months, which is a personal tolerance point for me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the position is permanent, you definitely have to weigh up all factors carefully, compensation is very important, don't let anyone tell you different, they aren'y paying your mortgage or sending your kids to college, you are.  However if you are working a job that makes you unhappy, you will suffer, and so will your friends and loved ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's all about your own level of personal fulfilment and tolerance for stressful factors.&lt;/p&gt;&#xA;" OwnerUserId="3787" LastActivityDate="2011-01-07T07:21:59.077" />
  <row Id="34479" PostTypeId="2" ParentId="34439" CreationDate="2011-01-07T07:26:53.323" Score="2" ViewCount="" Body="&lt;p&gt;Planning in your head and then using pen/paper is the quickest easiest way to initialize a design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you are ready to implement, I use a GUI designer instead of coding by hand. In Java Swing for example, with any large enough interface, I can imagine how much time I would be wasting by doing it all by hand and then modifying it later. Much easier to use a GUI builder like Netbeans Matisse and then tweaking slightly by hand if need be. &lt;/p&gt;&#xA;" OwnerUserId="6527" LastActivityDate="2011-01-07T07:26:53.323" CommentCount="1" />
  <row Id="34480" PostTypeId="2" ParentId="34354" CreationDate="2011-01-07T07:32:50.727" Score="0" ViewCount="" Body="&lt;p&gt;One problem is that there are usually so many small entities you have to search through, forcing you to do so many clicks, getting lost in details deep in there and then don't find your way back. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may be an approach to scan the source code with a little script (nothing sophisticated, some simple keyword scan/pattern matching is enough) and assemble it into one big list, like a book's table of contents:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;File name (full path within library folder)&#xA;    Class name&#xA;        Public method name&#xA;        Public method name&#xA;        ...&#xA;File name&#xA;    Class name&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;When you're facing a specific problem, scan through the list. If you find anything where the naming could fit your specific problem, you can explore further, with the complete list in a separate window so you can quickly back out. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The longer you do this, the better you will learn what's in the libraries, how good and consistent your choice of names is, and maybe finally introduce one single specific comment line that describes in a few keywords what the library is for, and that is included in the list. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Don't include too much detail within this list, it makes it harder to quickly glance through it.&lt;/p&gt;&#xA;" OwnerUserId="12129" LastActivityDate="2011-01-07T07:32:50.727" />
  <row Id="34482" PostTypeId="2" ParentId="34473" CreationDate="2011-01-07T08:14:56.380" Score="1" ViewCount="" Body="&lt;p&gt;The reason they brought in inference was to prevent people from writing code like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;foo().bar().baz().etc();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;When you could write:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Foo f = foo();&#xA;Bar b = f.bar();&#xA;...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Except Foo would be some long templated type, so it becomes nicer to write:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;auto f = foo();&#xA;auto b = f.bar();&#xA;...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So, as a rule of thumb, if using auto causes you to write code as above instead of code similar to the first example then by all means use it. Otherwise, stick to adding explicit definitions.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2011-01-07T08:14:56.380" CommentCount="2" />
  <row Id="34484" PostTypeId="2" ParentId="34456" CreationDate="2011-01-07T08:38:37.693" Score="17" ViewCount="" Body="&lt;p&gt;Hmm, having been a manager I have two immediate &quot;knee-jerk&quot; reactions to this:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you don't already have good reasons why are you pitching git other than to be trendy?&lt;/li&gt;&#xA;&lt;li&gt;Similarly, how is Subversion failing such that you need a replacement?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'm not, actually, being negative - I think there probably is a case to be made (dependent on circumstance) but if the case is simply that git is &quot;better&quot; than subversion then you don't really have one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You also need to be able to enumerate the disadvantages - you've already identified the overhead of migration and re-tooling - what else is a problem? e.g. What happens to your nice, central, backed up repository? How do you integrate with your continuous integration build server (if you don't have one, forget git and go sort that first). Oh security and tracking - SVN runs with proper logins and permissions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To my mind, the benefits are in flexibility, better merging, the ability to do local commits without breaking the build and so on. The disadvantages are in lack of control and that same flexibility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It may be that all you want to do is run git locally to your machine as a &quot;better&quot; subversion client (I'm looking at doing this using mercurial). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hmm, perhaps this whole answer is a comment really? You need to make your case &lt;em&gt;here&lt;/em&gt; (in the question) for git over subversion (in your environment) in order to see if we can help you identify the business case.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;FWIW, I'm know that one can easily designate a specific instance of the repository to be the trunk/reference source and further that that is how one wires into one's build server - the difference being that with DVCS that's more of an administrative decision than something inherent in the architecture.&lt;/p&gt;&#xA;" OwnerUserId="866" LastActivityDate="2011-01-07T08:38:37.693" CommentCount="2" />
  <row Id="34485" PostTypeId="1" CreationDate="2011-01-07T08:44:39.300" Score="4" ViewCount="266" Body="&lt;p&gt;I am making a database to store information about the users of my website (I am using stuts2 and hence Java EE technology). For the database I'll be making a DBManager. Should I apply singleton pattern here or rather make all it's methods static? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will be using this DBManager for basic things like adding, deleting and updating User profiles. Along with it, I'll use for all other querying purposes, for instance to find out whether a username already exists and to get all users for administrative purposes and stuff like that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My questions&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What is the benefit of singleton pattern?&lt;/li&gt;&#xA;&lt;li&gt;Which thing is most apt here? All static methods or a singleton pattern?&lt;/li&gt;&#xA;&lt;li&gt;Please compare both of them.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;regards&lt;/p&gt;&#xA;&#xA;&lt;p&gt;shahensha&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. The database is bigger than this. Here I am talking only about the tables which I'll be using for storing User Information. &lt;/p&gt;&#xA;" OwnerUserId="4197" LastActivityDate="2011-02-05T20:52:04.667" Title="What is the difference between all-static-methods and applying a singleton pattern?" Tags="&lt;java&gt;&lt;design-patterns&gt;&lt;database&gt;&lt;singleton&gt;&lt;static&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="2" />
  <row Id="34486" PostTypeId="2" ParentId="34473" CreationDate="2011-01-07T08:54:04.417" Score="3" ViewCount="" Body="&lt;p&gt;Being mainly a Python programmer myself, I share the mindset that the programmer doesn't need to know the exact type. In the case of C++, especially when dealing with templated templated templated ... templates. Of course that's not because I despice static typing (I don't - I consider Haskell one of the best things since sliced bread, partially because of its static typing) but because I don't care about the exact type. Why, is not demonstrated well by examples that use names like &lt;code&gt;foo&lt;/code&gt; or &lt;code&gt;get_stuff()&lt;/code&gt;. So let's choose something closer to reality:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;auto users = get_users();&#xA;vector&amp;lt;decltype(users[0])&amp;gt; blocked_users;&#xA;/* I'm not a C++ guru, much less C++0x so forgive me if type&#xA;   inference and foreach must be combined differently */&#xA;for (auto user : users) {&#xA;    if (check_name(user.name)) blocked_users.push_back(user)&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Not a single type annotation, but it's perfectly clear what it does, right? This code doesn't care what's the type of &lt;code&gt;users&lt;/code&gt;, it just need some range to iterate over which contains things with a &lt;code&gt;name&lt;/code&gt; that can be fed to &lt;code&gt;check_name&lt;/code&gt;. Nothing more. Nobody cares about the 100-ish characters of type names you'd have to type otherwise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Same applies to most code with meaningful names. The example in the question is not clear, but it wouldn't be clear with explicit type names either, because neither context nor identifiers give any indication of what's going on. Use meaningful identifiers, and the code can be understood regardless of explicit type annotations.&lt;/p&gt;&#xA;" OwnerUserId="7043" LastEditorUserId="7043" LastEditorDisplayName="" LastEditDate="2011-01-07T09:28:42.423" LastActivityDate="2011-01-07T09:28:42.423" CommentCount="2" />
  <row Id="34487" PostTypeId="1" CreationDate="2011-01-07T09:10:29.740" Score="-1" ViewCount="180" Body="&lt;p&gt;Lot of things has been discussed that can be taken as negative things about programmers work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lets discuss about something good and unexpected things that happen to programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;(After R&amp;amp;D of two days and a lot of disappointments)&lt;/em&gt; You just spend an hour with your PM to explain that some feature due to some problem you are unable to release this module in today's beta... after a lot of arguments you are given an hour to make your app work without this module. You sit on your workstation to make a release and all of a sudden you find what turns out to be a silly little problem.... (you solve it and prepare a desired build) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;did you face miracle (= sudden, positive surprises?) in your life?? what was your reaction in case you have come through such experience?? (N.B. I know my English is not that good and that's why I'm open to every linguistic mistakes needed to be corrected)&lt;/p&gt;&#xA;" OwnerUserId="9006" LastEditorUserId="8083" LastEditorDisplayName="" LastEditDate="2011-01-07T10:48:56.593" LastActivityDate="2011-01-07T10:48:56.593" ClosedDate="2011-01-07T12:31:22.583" Title="Sudden Breakthroughs (Miracles at work)" Tags="&lt;career&gt;&lt;learning&gt;&lt;experience&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="34488" PostTypeId="2" ParentId="34487" CreationDate="2011-01-07T09:18:44.633" Score="2" ViewCount="" Body="&lt;p&gt;I've seen a large project (multi millions) so late on schedule that it was &lt;code&gt;impossible&lt;/code&gt; to meet the deadline. The typical case described in &lt;a href=&quot;http://en.wikipedia.org/wiki/Death_march_%28software_development%29&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Death March&lt;/strong&gt;&lt;/a&gt; from &lt;strong&gt;Edward Yourdon&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Recovering from &lt;strong&gt;unavoidable&lt;/strong&gt; failure to &lt;strong&gt;success&lt;/strong&gt; (deadline met) with the only force of the &lt;strong&gt;team willing to achieve something together&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-07T09:18:44.633" />
  <row Id="34489" PostTypeId="2" ParentId="34485" CreationDate="2011-01-07T09:27:22.900" Score="2" ViewCount="" Body="&lt;p&gt;With a singleton class, you have more control in terms of how you manage the object that is created.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First, a singleton is an object.  The static method returns an instance of the object and allows you to create only a single instance, or more if you so choose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Singletons are also lazy-loaded, meaning that they are not instantiated until the first time they are called.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A singleton doesn't use static methods, so you won't have trouble using it in a non-static context.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Singletons can be extended/subclassed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since they're objects, they can be injected into other objects, which allow for the creation of some great design patterns utilizing the concepts of dependency injection.  For example, this is how the Spring Bean IoC (Inversion of Control Dependency Injection) model works.&lt;/p&gt;&#xA;" OwnerUserId="12611" LastActivityDate="2011-01-07T09:27:22.900" CommentCount="1" />
  <row Id="34490" PostTypeId="2" ParentId="34418" CreationDate="2011-01-07T09:36:26.187" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Code review is very effective when &lt;strong&gt;contineous&lt;/strong&gt; and &lt;strong&gt;implicit&lt;/strong&gt; within the team.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's why it's not explicit in our &lt;a href=&quot;http://programmers.stackexchange.com/questions/29334/manuals-how-up-to-date/29412#29412&quot;&gt;Definition of Done&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is how it works:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tasks are not assigned&lt;/strong&gt;, team members can &lt;strong&gt;decide&lt;/strong&gt; to either work alone on any task or partner with another developer.&lt;/li&gt;&#xA;&lt;li&gt;They &lt;strong&gt;communicate&lt;/strong&gt; trought the whole process and review each other.&lt;/li&gt;&#xA;&lt;li&gt;Sometimes they decide to do &lt;strong&gt;pair programming&lt;/strong&gt; which is, IMHO, the best code review process ever.&lt;/li&gt;&#xA;&lt;li&gt;Pair programming ensure produced code is not &lt;strong&gt;owned&lt;/strong&gt; by an individual and meet the team's coding guidelines.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;With this system, it is very unlikely that a developer will work alone on his module without any external help. This behavior is natural when tasks are not assigned.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's why it's &lt;strong&gt;very important&lt;/strong&gt; to have your team located at the same place, in the same office or splitted into two 3 desks rooms.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-07T09:36:26.187" />
  <row Id="34491" PostTypeId="2" ParentId="34311" CreationDate="2011-01-07T09:54:39.813" Score="1" ViewCount="" Body="&lt;p&gt;IANAL, but I'd expect an individual contract to overrule the general Ts&amp;amp;Cs. Thus, the contract between your employeer and the client should be enough to keep you save. Example: assuming insufficient input validation, a normale user of a forum might inject javascript scripts that completely alter the layout of the site (for all users viewing his post). Therefore, your client might think it's reasonable to write &quot;users may not alter the layout&quot; in the Ts&amp;amp;Cs. On the other hand, as the developer, it's your job to do that, that's what the contract says.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, when in doubt, inform your bosses and let them sort it out, possibly with the help of a legal adviser.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2011-01-07T09:54:39.813" />
  <row Id="34492" PostTypeId="1" AcceptedAnswerId="34508" CreationDate="2011-01-07T10:12:10.527" Score="0" ViewCount="69" Body="&lt;p&gt;Suppose you have an application that reads an input file, on a language that does not support the concept of None. The input is read, parsed, and the contents are stored on a structure for later use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, in general you want to keep into account transformation of the data from the input, such as adding default values when not specified, or adding full path information to relative path specified in the input. There are two different strategies to achieve this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The first strategy is to perform these transformations at input file reading time. In practice, you put all the intelligence into the input parser, and your application has no logic to deal with unexpected circumstances, such as an unspecified value. You lose the information of what was specified and what wasn't, but you gain in black-boxing the details. Your &quot;running code&quot; needs that information in any case and in a proper form, and is not concerned if it's the default or a user-specified information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second strategy is to have the file reader a real one-to-one mapper from the file to a memory-stored object, with no intelligent behavior. unspecified values are not filled (which may however be a problem in languages not supporting None) and data is stored verbatim from the file. The intelligence for recovery must now go into the &quot;running code&quot;, which must check what was specified in the file, eventually fall back to a default, or modify the input properly before using it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would like to know your opinion on these two approaches, and in particular which one you found the most frequently implemented. &lt;/p&gt;&#xA;" OwnerUserId="1338" LastActivityDate="2011-01-07T13:09:43.143" Title="Design of input files reading when it comes to defaults/transformations" Tags="&lt;design&gt;&lt;configuration&gt;" AnswerCount="2" />
  <row Id="34494" PostTypeId="2" ParentId="23915" CreationDate="2011-01-07T10:18:35.230" Score="0" ViewCount="" Body="&lt;p&gt;I would tend to regard a feasibility study as a project in it's own right, separate to the project it &lt;em&gt;may&lt;/em&gt; trigger if the feasibility study is successful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So ultimately I'd start it exactly as I'd start any other project - outline what a successful outcome looks like so you know where you're heading, break it down into tasks, outline the quality metrics (potentially fairly low though you might want test input to validate the programmers findings).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you've got that you can select your SDLC - either waterfall or agile would work - and plan as appropriate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the key thing with a feasibility study is to be clear what your goals are (that is we wish to prove concept X and concept Y can be achieved within timescale X) and make sure you've got the mechanisms in place to measure them so you know when you've either succeeded or failed.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;And remember, finding something isn't feasible is a valid outcome from a study and not a failure on the part of the team involved - if everything that came out of them was found to be feasible then you'd have to ask questions why they were necessary.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2011-01-07T10:40:53.483" LastActivityDate="2011-01-07T10:40:53.483" />
  <row Id="34496" PostTypeId="2" ParentId="34439" CreationDate="2011-01-07T10:22:05.153" Score="0" ViewCount="" Body="&lt;p&gt;Visio offers a set of UI stensils, so it effectively replaces pen and paper, yet offering the same design approach -- think first, draw second, code last. &lt;/p&gt;&#xA;" OwnerUserId="12300" LastActivityDate="2011-01-07T10:22:05.153" />
  <row Id="34497" PostTypeId="2" ParentId="9498" CreationDate="2011-01-07T10:27:59.443" Score="-1" ViewCount="" Body="&lt;p&gt;My choise is eXpressApp Framework (with Xpo) of course.&lt;/p&gt;&#xA;" OwnerUserId="12614" LastActivityDate="2011-01-07T10:27:59.443" CommentCount="1" />
  <row Id="34499" PostTypeId="2" ParentId="34487" CreationDate="2011-01-07T10:34:06.940" Score="2" ViewCount="" Body="&lt;h2&gt;Sudden Breakthroughs:&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Do sudden breakthroughs (Miracles at work) occur? &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Yes&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;But they are rare, I have had them and witnessed them, but I could probably count them on one hand.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;what was your reaction in case you have come through such experience?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;A feeling of elation, usually breakthroughs are more intense a problem, &lt;strong&gt;&quot;the harder the problem the sweeter the solution&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2011-01-07T10:34:06.940" />
  <row Id="34502" PostTypeId="2" ParentId="34452" CreationDate="2011-01-07T10:46:20.663" Score="2" ViewCount="" Body="&lt;p&gt;Don't make the choice based on taking better money for the short term. High salaries are incredibly addictive and in my experience  your living expenses will invariably rise to absorb your new (temporary) salary - especially if you have children.&lt;/p&gt;&#xA;" OwnerUserId="561" LastActivityDate="2011-01-07T10:46:20.663" />
  <row Id="34504" PostTypeId="1" AcceptedAnswerId="35470" CreationDate="2011-01-07T11:07:45.307" Score="3" ViewCount="251" Body="&lt;p&gt;Kind of a hard topic to search for, as architect turns up a lot about software architects instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After 8 months of PHP self-study, I finally stumbled across the php|architect site. The length of time it took me to find it makes me suspicious of its quality.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3 related questions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;do professional PHP coders read/care about php|architect?&lt;/li&gt;&#xA;&lt;li&gt;is it a good source for PHP beginners?&lt;/li&gt;&#xA;&lt;li&gt;assuming yes to either of the above, how far back in the archives to articles remain relevant? (ex: does stuff written about PHP4 still matter?)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9260" LastEditorUserId="8187" LastEditorDisplayName="" LastEditDate="2011-01-11T03:15:24.253" LastActivityDate="2011-01-11T03:20:04.373" Title="Is php|architect any good?" Tags="&lt;php&gt;&lt;magazines&gt;&lt;publications&gt;" AnswerCount="3" CommentCount="4" FavoriteCount="1" />
  <row Id="34505" PostTypeId="2" ParentId="34311" CreationDate="2011-01-07T11:24:54.810" Score="3" ViewCount="" Body="&lt;p&gt;Here's the point.  You're not a user in any sense of the word.  Unless you can show otherwise, you're an employee of the &quot;provider&quot;.  In effect, you are the provider.  You're not a &quot;user&quot; of the site. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unless your contract is really strange, your work in the site is a &quot;work for hire&quot;.  You work for the site owner.   The copyrights belong to the owner along with all the content you create.  You are, in effect, an extension of the owner because you're hired by them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Read the contract under which you're producing the site.  That's the contract that applies to you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're not a visitor or a user.  Those contracts don't apply to you because you have a pre-existing relationship with the owner.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-07T11:24:54.810" />
  <row Id="34506" PostTypeId="1" AcceptedAnswerId="37167" CreationDate="2011-01-07T11:39:56.103" Score="2" ViewCount="264" Body="&lt;p&gt;Have you used SugarCRM for custom development successfully?, if so, have you done it programmatically or through the Module Builder?. Were you successful? If not, why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I used SugarCRM for a project about two years ago, I ran into errors from the very installation, having to hack the actual installation file to deploy the software in the server... and other erros that I can't recall now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Two years after, I'm picking it up for a project once again... oh dear, I'm feeling like I should have developed the whole thing from scratch myself. Some examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I couldn't install it in the server (again)... I had to install it locally, then copy the files and database over to the server and manually edit the config file.&lt;/li&gt;&#xA;&lt;li&gt;Constantly getting deployment errors from the module builder... one reason is SugarCRM keeps creating a record in the upgrade_history table for a file that does not exist, I keep deleting such record and it keeps coming back corrupt. I get other deployment errors, but have not figured them out... then I have to rollback all files and database to try again.&lt;/li&gt;&#xA;&lt;li&gt;I deleted a custom module with relationships, the relationships stayed in the other modules and cannot be deleted anymore, PHP warnings all over the place.&lt;/li&gt;&#xA;&lt;li&gt;Quick create for custom modules does not appear, hack needed.&lt;/li&gt;&#xA;&lt;li&gt;Its whole cache directory is a joke, permanent data/files are stored there.&lt;/li&gt;&#xA;&lt;li&gt;The module builder interface disappears required fields.&lt;/li&gt;&#xA;&lt;li&gt;Edit the wrong thing, module builder won't deploy again... then pray Quick Repair and/or Rebuild Relationships do the trick.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;My impression of SugarCRM now is that, regardless of its pretty exterior and apparent functionality, it is a very low quality piece of software. This even scared me more: &lt;a href=&quot;http://amplicate.com/hate/sugarcrm&quot; rel=&quot;nofollow&quot;&gt;http://amplicate.com/hate/sugarcrm&lt;/a&gt;; a quote:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;I wis this info had been available when I tried to implement it 2 years ago... I searched high and low and the only info I found was positive. Yes, it's a piece of crap. The community edition was full of bugs... nothing worked. Essentially I got fired for implementing it. I'm glad though, because now I work for myself, am much happier and make more money... so, I should really thank SugarCRM for sucking so much I guess!&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I figured that perhaps some of you have had similar experiences, and have either sticked with SugarCRM or moved on to another solution. I'm very interested in knowing what your resolutions were -or your current situations are- to make up my own mind, since the project I'm working on is long term and I'm feeling SugarCRM will be more an obstacle than an aid.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Edit&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;After further failed attempts to continue using this software I continued to stumble upon dead-ends when using the module editor, I could only recover from this errors by using version control. We are now moving on to a custom implementation using Symfony; perhaps if we were using it with its out-of-the-box modules we would have sticked with it.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2011-01-09T02:59:29.370" LastActivityDate="2011-01-16T04:43:56.673" Title="Is SugarCRM really adequate for custom development?" Tags="&lt;sugarcrm&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="34507" PostTypeId="1" CreationDate="2011-01-07T11:43:51.920" Score="2" ViewCount="162" Body="&lt;p&gt;&lt;strong&gt;Has anyone had experience&lt;/strong&gt; with out-sourced testing? Is it worth the fairly high premium you have to pay?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can you simply hire some &lt;em&gt;off-shore&lt;/em&gt; 'mechanical turks' (who offer the same services, but a lot cheaper) with a testing script as a cheaper alternative to professional software testing services?&lt;/p&gt;&#xA;" OwnerUserId="1923" LastEditorUserId="1923" LastEditorDisplayName="" LastEditDate="2011-01-11T11:33:20.640" LastActivityDate="2011-02-13T13:02:16.307" Title="What are your experiences with off-shore or outsourced testing?" Tags="&lt;testing&gt;&lt;off-shore&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="1" />
  <row Id="34508" PostTypeId="2" ParentId="34492" CreationDate="2011-01-07T11:57:27.607" Score="1" ViewCount="" Body="&lt;p&gt;This is, of course, a false dichotomy.  The real answer is not this simple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also the presence or absence of &lt;code&gt;None&lt;/code&gt; or &lt;code&gt;Null&lt;/code&gt; isn't interesting (or even relevant).&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The first strategy is to perform these transformations at input file reading time. &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In the long run, this becomes a maintenance nightmare.  &quot;black-boxing the details&quot; is a bad policy.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The second strategy is to have the file reader a real one-to-one mapper from the file to a memory-stored object, with no intelligent behavior.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;That's a very weird way to put it, but that's one small part of a good architecture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;None&lt;/strong&gt;.  &lt;code&gt;None&lt;/code&gt; or &lt;code&gt;Null&lt;/code&gt; is what you can call a &lt;em&gt;domain independent null&lt;/em&gt; -- a universal nothing value.  Some languages (like C) lack a domain independent null.  That doesn't mean anything, because you have at least two ways forward.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Domain-specific null.  Input values like zero-length fields, or &lt;code&gt;999-99-9999&lt;/code&gt; for a Social Security Number and stuff like that are domain-specific null values.  You may have this kind of thing.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Flags.  The embedded SQL folks decided that the best way to handle SQL NULL in languages which don't have a domain-independent NULL is to provide an array of flags as null indicators.  Applications in C (or COBOL or even FORTRAN) would have to check the null indicator for the presence of a SQL NULL.  The actual field could have any random junk in it if the indicator said it was really a NULL.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Transformation&lt;/strong&gt;.  For information on this, read up on ETL (Extract Transform Load) processing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Applications that process files naturally form a pipeline.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Input reading.  This byte-to-character processing.  The least you can do to read.  If you have Unicode decoders, they go here.  Nothing more.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Some kind of lexical scanning -- the basis for syntax recognition.  If it's a CSV file, this is the comma or tab recognition.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Some kind of file object parsing.  This creates Domain Objects based on the file representation.  For CSV or tab-delimited files, it creates a list of row values.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For XML files, 1, 2 and 3 are combined into an XML parser.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Some kind of application object parsing.  For CSV files, this is where you'd transform a sequence of objects into something more usable by your application. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For JSON, YAML or files, this creates the objects.  Often, 2, 3 and 4 are all done by the load operation.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;At this point you have an object in your application domain.  Processing from this point forward is independent of the initial input format.  In the applications I support, all of the previous processing is a separate library that handles XLS, XLSX, CSV and a few other formats for the inputs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you have a application domain object, you then have to apply your application's rules.  This varies a lot, of course.  But here's the strategy.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Write down the &quot;outer&quot; processing loop.  &lt;code&gt;for object in source(): process( object )&lt;/code&gt;.  Maybe it involves decision making.  &lt;code&gt;for object in source(): if valid( object): process( object )&lt;/code&gt;.  Whatever the high-level, end-user, easy-to-understand summary is.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Odds are good that none of the input objects are actually suitable for this kind of processing.  You have things like cleansing, filtering, validation, derived data calculation, foreign-key reference lookups and the final stage of persistence (update/insert/delete) processing.  This forms a natural pipeline.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Define this pipeline from &quot;back to the front&quot;.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What must be true of the objects so they can fit with your ideal outer loop? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write down all the conditions that must be true.  (cleaned this way and that way,  filtered for this that and the other, calculations done for this and that, etc., etc.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's the last thing that has to be done to prepare for the persistence step?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's the last thing that has to be done to prepare for that?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;etc. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Until you've run out of &quot;last thing to be done to prepare&quot; and you're looking at the input objects and a pipeline of steps to prepare them for their final persistence.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;For each stage in the pipeline, design the simplest transformation function you can get away with to do just that operation on each input object, cleaning, filtering, validating, deriving data, doing lookups and finally doing whatever persistence thing must be done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each of these stages will have to make use of the null indicators, BTW.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of these will be generic and reusable.  Some won't be.  Don't think about reuse.  Discover reuse after you've written the same code 3 or more times.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Object Updates&lt;/strong&gt;.  There are at least two ways to handle the transformations.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Update the objects as you go.  This is classic &quot;OO&quot; design.  Stateful objects.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Create new objects from old objects.  This is more of the functional programming design.  Immutable objects.  In some languages, this requires more memory management.  On the other hand, if each object is immutable, the pipeline becomes simpler because each stage expects a specific data type and creates an object of a different specific data type.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5834" LastEditorUserId="5834" LastEditorDisplayName="" LastEditDate="2011-01-07T12:02:51.750" LastActivityDate="2011-01-07T12:02:51.750" />
  <row Id="34509" PostTypeId="2" ParentId="34507" CreationDate="2011-01-07T12:10:18.693" Score="6" ViewCount="" Body="&lt;p&gt;Sure, you can hire people who don't know anything about testing to do it but I'd expect it to be about as successful as hiring people who don't know anything about programming to do your development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Testing services are essentially just consultancies comprising of professional software testers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Testing is a skill with all the associated knowledge, best practice and so on.  Professional systems testers with experience are generally people with the right aptitude for testing who've spent years learning about what they're doing.  That simply isn't the case for a random individual.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A good tester will know how to develop &lt;a href=&quot;http://en.wikipedia.org/wiki/Test_strategy&quot; rel=&quot;nofollow&quot;&gt;test strategies&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Test_plan&quot; rel=&quot;nofollow&quot;&gt;test plans&lt;/a&gt;, and &lt;a href=&quot;http://en.wikipedia.org/wiki/Test_script&quot; rel=&quot;nofollow&quot;&gt;test scripts&lt;/a&gt; based on the requirements presented.  They know how to accurately assess test coverage and progress, they'll understand how and when &lt;a href=&quot;http://en.wikipedia.org/wiki/Regression_testing&quot; rel=&quot;nofollow&quot;&gt;regression tests&lt;/a&gt; need to be carried out and to what level, they understand why tests need to be repeatable and can log defects in a way that allow developers to reproduce them easily, and they know when there isn't time to test everything (which is pretty much always), how to balance the various pressures in ways which have the best chance of maintaining quality (techniques such as striping).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Ranty Bit&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Developers get rightly annoyed when people belittle the skills they have and suggest that it's easily learned but to me this is just the same thing.  When programmers ask questions like this showing little thought for what other professionals do or know, what right do they have to expect others to behave differently when it comes to their skills?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, do a bit of research into what testing really is and what's involved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Ranty Bit Ends&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In terms of the specifics of off-shore testing, it shares many of the same problems as off-shore anything, largely arising from two things: communication and cultural set up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Communication is an obvious one.  I won't go into it much other than to say you need a strategy to deal with it and the main question should be &quot;how will the testers show developers the bugs when the developers are saying they can't see them and wandering over to their desk isn't an option?&quot;.  Any answer to that question involving e-mail or other text descriptions should be kicked into touch immediately.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cultural set up is less often talked about but is for me a far more significant factor.  By culture I don't mean race, I mean business culture.  Most companies I've worked for don't have business processes geared around team members being hundreds of miles away.  They don't write specifications in enough detail to allow people to work from them without questioning the person who wrote it (who is now in a different time zone).  They operate on the assumption that quick meetings to flesh things out which are missing or unclear are easy to organise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's the thing I'd really look at - are your processes really good enough to work with people who can't easily just come and ask a question, and if they're not can you change them so they will work (and do you want to).&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2011-01-07T12:53:11.903" LastActivityDate="2011-01-07T12:53:11.903" CommentCount="7" />
  <row Id="34512" PostTypeId="1" AcceptedAnswerId="34523" CreationDate="2011-01-07T12:34:46.763" Score="10" ViewCount="877" Body="&lt;p&gt;The other day, a friend told me that in USA, they pronounce SQL like &lt;em&gt;squel&lt;/em&gt;, not &lt;em&gt;es-qu-el&lt;/em&gt;. I was surprised. I was wondering how &quot;SELECT *&quot; is read/pronounced while talking.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;select star?&lt;/li&gt;&#xA;&lt;li&gt;select asterisks?&lt;/li&gt;&#xA;&lt;li&gt;select all?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1517" LastActivityDate="2011-02-11T13:54:01.913" Title="How is &quot;SELECT *&quot; read in English?" Tags="&lt;pronunciation&gt;" AnswerCount="12" CommentCount="10" />
  <row Id="34513" PostTypeId="2" ParentId="34379" CreationDate="2011-01-07T12:35:39.613" Score="0" ViewCount="" Body="&lt;p&gt;First thing to establish is that many sites aren't a collection of static pages that are worked on by one or more people. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The pages that you see as a visitor don't exist on the website to make changes to as in such sites they are automatically assembled on-the-fly by a content management system - software running on the hosting server, using content that the website owners have produced. The CMS assembles the page from the content laid out using template files (CSS and CMS's own config files) and the resultant page is served to your browser.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The site owners make changes to the content and the layout templates rather than static pages. Leading on from that your answer depends on the &lt;em&gt;type&lt;/em&gt; of change and the &lt;em&gt;role&lt;/em&gt; of the person doing it:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;a site public &lt;em&gt;user&lt;/em&gt;, posting a blog or comment&lt;/li&gt;&#xA;&lt;li&gt;if you are changing the content on the site (content producer role, e.g. journalist working for the website owner) or &lt;/li&gt;&#xA;&lt;li&gt;adding and changing functionality of the site (site developer working for the site owner).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Drupal is a free and powerful content management system that provides multi-user management to handle content updates which in turn affects what is seen by visitors on pages. Drupal will also provide means to alter the behaviour of the pages, e.g. how they are laid out or if commments on an article can be posted, addressing the 1st and 2nd types of change. If doing the changes in Drupal these will be stored in a SQL database. Drupal provides some versioning/revision control of content.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A full version control system is needed for more involved site behaviour changes, the 3rd type of change e.g. introducing more features, receiving updates from Drupal, or fixing bugs on own added code, then this means changing the code and as others have posted here. Version control systems such as GIT, Subversion or Mercurial - all free - are used to manage the changes made by several &lt;em&gt;developers&lt;/em&gt; of the site.&lt;/p&gt;&#xA;" OwnerUserId="9267" LastEditorUserId="9267" LastEditorDisplayName="" LastEditDate="2011-01-07T12:44:47.980" LastActivityDate="2011-01-07T12:44:47.980" />
  <row Id="34514" PostTypeId="2" ParentId="34512" CreationDate="2011-01-07T12:42:26.537" Score="11" ViewCount="" Body="&lt;p&gt;The voice in my head (well, one of them) reads that to me as 'select all' as I read it, so that's how I pronounce it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think any of the three would convey what you mean, though. I really don't think it matters so long as you are understood.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2011-01-07T12:42:26.537" />
  <row Id="34515" PostTypeId="2" ParentId="34512" CreationDate="2011-01-07T12:44:31.240" Score="5" ViewCount="" Body="&lt;p&gt;When you say English, I presume you mean UK?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If so then:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;SQL is pronounced mostly as &lt;em&gt;squel&lt;/em&gt; , sometimes it is referred to as &lt;em&gt;es-qu-el&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&quot;select star&quot;&lt;/strong&gt; is usually what I hear in the UK.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2011-01-07T12:44:31.240" />
  <row Id="34516" PostTypeId="2" ParentId="34512" CreationDate="2011-01-07T12:46:19.503" Score="19" ViewCount="" Body="&lt;p&gt;SQL was originally called SEQUEL, which is why many people say it that way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, ANSI declared that it be called SQL (es-q-el) at some point in the 80's (it was already spelled SQL at that time.) (at the first standardisation conference in 1986.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, since the creators of SEQUEL called it that way, I think it's more respectful to call it by that name (Ray Boyce, died of a brain aneurism before SQL was standardised), as opposed to some committee designation. (Not to mention the vast majority of people who were using SQL back then called it SEQUEL, so that's it's original organic language usage.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there is zero controversy on how you say &lt;code&gt;SELECT *&lt;/code&gt; I suppose &lt;strong&gt;select all&lt;/strong&gt; is most useful, in terms of communication, but there's no canonically correct way, and you will hear people say &lt;strong&gt;select star&lt;/strong&gt; pretty often, &lt;strong&gt;select asterisk&lt;/strong&gt; is poor rhythmically, and conveys no meaning, so it's unlikely anyone would ever use that phrasing. Because, you know, it sounds stupid.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Update:&lt;/h2&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I misremembered the cause of death of Ray Boyce, brain aneurism, (one of SEQUEL's creators) - not a car accident.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="3787" LastEditorUserId="16875" LastEditorDisplayName="" LastEditDate="2011-02-11T10:59:32.813" LastActivityDate="2011-02-11T10:59:32.813" CommentCount="11" />
  <row Id="34517" PostTypeId="2" ParentId="34439" CreationDate="2011-01-07T12:46:23.263" Score="0" ViewCount="" Body="&lt;p&gt;First create the GUI on paper.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that I just use Visual Studios design mode to create the GUI. Easy to create and what you see is what you get. Plus you don't have to rebuild just to view the GUI.&lt;/p&gt;&#xA;" OwnerUserId="4930" LastActivityDate="2011-01-07T12:46:23.263" />
  <row Id="34518" PostTypeId="1" CreationDate="2011-01-07T12:58:22.643" Score="1" ViewCount="107" Body="&lt;p&gt;What implementation problems has the industry claimed to have solved many times, but are still soaking up all of your time?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cross platform GUI - mobile devices have blown this issue wide open.&lt;/li&gt;&#xA;&lt;li&gt;OO to RDBMS mapping - how do I map this attribute to that field in that database using that framework. You get the idea.&lt;/li&gt;&#xA;&lt;li&gt;Interface definitions - ..., CORBA, COM, EJB, WSDL, ..., etc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Can you think of any others?&lt;/p&gt;&#xA;" OwnerUserId="6891" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-02-18T08:49:25.727" LastActivityDate="2011-02-18T08:49:25.727" Title="What implementation problems are still soaking up all of your time?" Tags="&lt;implementations&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="34519" PostTypeId="2" ParentId="34518" CreationDate="2011-01-07T13:00:26.593" Score="1" ViewCount="" Body="&lt;p&gt;Decent web WYSIWYG editor. Noone could get even close to a normal one. sadly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&#xA;I think it would be easier to count the problems that have actually been solved.&lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2011-01-07T13:00:26.593" CommentCount="1" />
  <row Id="34521" PostTypeId="2" ParentId="34518" CreationDate="2011-01-07T13:02:45.213" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Separation of implementation of UI and application logic&lt;/strong&gt; so that a programmer can code independently and a designer can design independently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even when multiple options of a declarative UI language exist, the entire project work still requires tight cooperation between the two. I dare to say it's still preferred if one person is skilled in both programming and design, then the work progresses much faster.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2011-01-07T13:02:45.213" CommentCount="1" />
  <row Id="34523" PostTypeId="2" ParentId="34512" CreationDate="2011-01-07T13:06:46.580" Score="25" ViewCount="" Body="&lt;p&gt;I live in the US and almost always hear it pronounced &lt;strong&gt;select star&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And normally I use &lt;strong&gt;sequel&lt;/strong&gt; instead of &lt;strong&gt;es-qu-el&lt;/strong&gt; because it has fewer syllables and seems easier to say&lt;/p&gt;&#xA;" OwnerUserId="1130" LastActivityDate="2011-01-07T13:06:46.580" CommentCount="11" />
  <row Id="34524" PostTypeId="2" ParentId="34492" CreationDate="2011-01-07T13:09:43.143" Score="3" ViewCount="" Body="&lt;p&gt;Proper encapsulation of the problem would suggest that neither solution you presented is correct.  An alternative would be to follow choice 2 up to the point that you litter the code with data domain transformations.  This should be factored out as a post processing step to be applied after the file is read.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This separation provides a clean way to revise the implementation domain data mappings.&lt;/p&gt;&#xA;" OwnerUserId="12497" LastActivityDate="2011-01-07T13:09:43.143" />
  <row Id="34525" PostTypeId="1" CreationDate="2011-01-07T13:10:53.487" Score="2" ViewCount="167" Body="&lt;p&gt;Mobile devices have APIs that allow an application to send and receive SMS, make a phone call, determine location etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the future, when mobile devices are embedded in your body, what kind of APIs might be availbe to an application developer?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT: This is not intended to be a joke question (but what's the harm in some funny answers?). It's to spur a discussion on how one aspect of mobile device application could pan out and what kind of application might be available. For example: health monitoring - various APIs available to get body temperature, sugar levels, etc for transmission to your GP. &lt;/p&gt;&#xA;" OwnerUserId="6891" LastEditorUserId="6891" LastEditorDisplayName="" LastEditDate="2011-01-07T15:07:42.203" LastActivityDate="2011-01-07T15:30:01.907" ClosedDate="2011-02-15T21:08:37.770" Title="In the future, when mobile devices are embedded in your body, what kind of APIs might be availbe to an application developer?" Tags="&lt;future&gt;&lt;mobile&gt;" AnswerCount="11" CommentCount="4" />
  <row Id="34526" PostTypeId="1" AcceptedAnswerId="34527" CreationDate="2011-01-07T13:16:36.897" Score="1" ViewCount="67" Body="&lt;p&gt;Question: &lt;strong&gt;Can RMI or CORBA operate over IP?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;I don't think RMI can - does it not operate over IIOP?&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="12464" LastActivityDate="2011-01-07T13:19:12.900" Title="A bit of a blast from the past: Can RMI or CORBA operate over IP?" Tags="&lt;programming-languages&gt;&lt;learning&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="34527" PostTypeId="2" ParentId="34526" CreationDate="2011-01-07T13:19:12.900" Score="1" ViewCount="" Body="&lt;p&gt;RMI -&gt; IIOP -&gt; IP. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;CORBA -&gt; IIOP -&gt; IP. &lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2011-01-07T13:19:12.900" CommentCount="2" />
  <row Id="34529" PostTypeId="2" ParentId="34525" CreationDate="2011-01-07T13:36:03.970" Score="1" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;public bool Person.HasImplants ();&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;It will help me to filter out people with limited brain capacity, who had let implant things in themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your body is a holy gift and not a toy to mess with. Stay away from it.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2011-01-07T13:36:03.970" CommentCount="2" />
  <row Id="34530" PostTypeId="2" ParentId="34525" CreationDate="2011-01-07T13:42:46.683" Score="1" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;public bool Mind.Control(...);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That way I can get people to empty their bank accounts and send it to an undisclosed account in the Caymans.  Oh, did I say that out loud?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps this would be better:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public bool Hand.Slap(Face);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;disclaimer&lt;/em&gt;: if anyone thinks I'm serious, I have a bridge in Brooklyn to sell you.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2011-01-07T13:42:46.683" />
  <row Id="34531" PostTypeId="2" ParentId="34525" CreationDate="2011-01-07T13:42:48.837" Score="0" ViewCount="" Body="&lt;p&gt;Unfortunately the &lt;code&gt;Identity&lt;/code&gt; singleton was developed by a unethical group of people and had it implement the &lt;code&gt;Queue&lt;/code&gt; interface.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;OffShoreRepository.add(Identity.getInstance().take());&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="7426" LastActivityDate="2011-01-07T13:42:48.837" CommentCount="2" />
  <row Id="34532" PostTypeId="1" CreationDate="2011-01-07T13:43:52.447" Score="2" ViewCount="309" Body="&lt;p&gt;I hold a Sun SCJP from ten years ago or so.  At first it was supposed to be a temporary certification (valid for a few years, I don't remember exactly: all I remember is that I had an expiration date on my certification card) then Sun changed their mind and decided the SCJP was lifetime valid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another SCJP programmer told me I could change my cert so I contacted Sun (there was a procedure for that that I don't remember either) and received my new SCJP (without any expiration date).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now that Oracle bought Sun I was wondering: can I get somehow a Oracle/Sun SCJP paper/card/badge whatever knowing that I do own a SCJP?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If anyone here holding an old SCJP changed it to an Oracle/Sun one (if such a thing exist), I'd be interested to hear what can be done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(btw I'm new here so I cannot create a new tag: maybe someone with more rep could create a Sun tag?)&lt;/p&gt;&#xA;" OwnerUserId="12623" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2011-01-07T14:06:07.683" LastActivityDate="2011-01-07T17:22:44.223" Title="Changing my Sun SCJP certification to an Oracle one?" Tags="&lt;java&gt;&lt;oracle&gt;&lt;certification&gt;&lt;scjp&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="34533" PostTypeId="2" ParentId="34525" CreationDate="2011-01-07T13:44:15.877" Score="1" ViewCount="" Body="&lt;p&gt;I want an objective-c interface.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I want to write:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;[[NSHumanBody sharedBodyInstance] doTheHustle];&#xA;// doot doo doot doo doot da-doo doot doo&#xA;// doot doo doot doo doot da-doo dooo dooo&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Also perhaps:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;[[NSBrain defaultBrain].attitude lightenUp:francis];&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(I'm assuming of course that unique attributes of the human body are represented by framework singletons... Seems like a consistent way to do it.)&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2011-01-07T13:44:15.877" CommentCount="4" />
  <row Id="34534" PostTypeId="2" ParentId="34525" CreationDate="2011-01-07T13:52:37.367" Score="1" ViewCount="" Body="&lt;pre&gt;&lt;code&gt;public interface Body&#xA;{&#xA;   void Eat(Food f);&#xA;   void Sleep(long timeout);&#xA;   void Crap(void);&#xA;}&#xA;&#xA;sealed class Brain&#xA;{&#xA;   public Brain(){};&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2011-01-07T13:52:37.367" CommentCount="0" />
  <row Id="34535" PostTypeId="1" CreationDate="2011-01-07T13:52:46.790" Score="0" ViewCount="57" Body="&lt;p&gt;Question: &lt;strong&gt;Why might RMI be a sensible option for communication between client and server in a web application?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;So why would RMI be used for communication between client and server in web apps?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many Thanks, &#xA;J&lt;/p&gt;&#xA;" OwnerUserId="12464" LastActivityDate="2011-01-08T18:27:14.947" Title="Why might RMI be a sensible option for communication between client and server in a web application?" Tags="&lt;learning&gt;&lt;communication&gt;" AnswerCount="1" CommentCount="1" />
  <row Id="34536" PostTypeId="2" ParentId="16788" CreationDate="2011-01-07T13:53:21.593" Score="1" ViewCount="" Body="&lt;p&gt;As in &quot;charbroiled&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I deliberately don't pronounce it as in &quot;character&quot;, because in most languages a &lt;code&gt;char&lt;/code&gt; is &lt;strong&gt;not&lt;/strong&gt; a character.  In C(++), &lt;code&gt;char&lt;/code&gt; means &quot;byte&quot;.  In Java and C#, it means &quot;UTF-16 code unit&quot;.&lt;/p&gt;&#xA;" OwnerUserId="12609" LastActivityDate="2011-01-07T13:53:21.593" />
  <row Id="34537" PostTypeId="1" CreationDate="2011-01-07T13:52:51.420" Score="25" ViewCount="819" Body="&lt;p&gt;Something I've noticed over the past few weeks is how many big commercial websites use jQuery combined with lots of plugins - but don't admit it. They will rename the main library to something obscure, as well as the plugins. Quite a few will even remove the comments that contain the MIT/GPL license information. (just noticed today that odeon.co.uk have done exactly this)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why are they doing this? are they abashed by the face that they are using a free and open source library?&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T15:41:35.183" ClosedDate="2011-03-31T13:40:37.527" Title="Ashamed to admit using jQuery?" Tags="&lt;javascript&gt;&lt;jquery&gt;&lt;ecommerce&gt;&lt;source&gt;&lt;open&gt;" AnswerCount="9" CommentCount="10" FavoriteCount="3" />
  <row Id="34538" PostTypeId="2" ParentId="34537" CreationDate="2011-01-07T13:54:53.250" Score="3" ViewCount="" Body="&lt;p&gt;Probably a misguided attempt at obfuscation, or another (arguably) misguided attempt to reduce bandwidth.  I can't think of any practical or technical reason they would want to do this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are curious, try emailing them asking why they removed the license information from the code.&lt;/p&gt;&#xA;" OwnerUserId="12624" LastActivityDate="2011-01-07T13:55:54.533" CommentCount="1" />
  <row Id="34539" PostTypeId="2" ParentId="34537" CreationDate="2011-01-07T13:55:28.723" Score="4" ViewCount="" Body="&lt;p&gt;This may be done for optimization. An end-user needs not to receive that comments. Even if they save 1kb of code by this, it may be good&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T13:55:54.533" />
  <row Id="34540" PostTypeId="1" CreationDate="2011-01-07T13:57:18.763" Score="5" ViewCount="189" Body="&lt;p&gt;Hi all,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider Train.Passengers, what type would you use for Passengers where passengers are not supposed to be added or removed by the consuming code?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm using .NET Framework, so this discussion would suit .NET, but it could apply to a number of modern languages/frameworks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the .NET Framework, the List is not supposed to be publicly exposed. There's Collection and ICollection and guidance, which I tend to agree with, is to return the closest concrete type down the inheritance tree, so that'd be Collection since it is already an ICollection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But Collection has read/write semantics and so possibly it should be a ReadOnlyCollection, but its arguably common sense not to alter the contents of a collection that you don't have intimate knowledge about so is it necessary?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And it requires extra work internally and can be a pain with (de)serialization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the extreme ends I could just return Person[] (since LINQ now provides much of the benefits that previously would have been afforded by a more specified collection) or even build a strongly-typed PersonCollection or ReadOnlyPersonCollection!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for your time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Luke&lt;/p&gt;&#xA;" OwnerUserId="12625" LastActivityDate="2011-01-07T23:04:21.513" Title="Object model design: collections on classes" Tags="&lt;design&gt;&lt;object-oriented&gt;" AnswerCount="5" FavoriteCount="2" />
  <row Id="34541" PostTypeId="2" ParentId="34537" CreationDate="2011-01-07T13:57:56.753" Score="25" ViewCount="" Body="&lt;p&gt;Well, its the same for some projects i work on, but only because of the automated minfying Process that is part of every release.&lt;/p&gt;&#xA;" OwnerUserId="11476" LastActivityDate="2011-01-07T13:57:56.753" CommentCount="3" />
  <row Id="34542" PostTypeId="2" ParentId="34537" CreationDate="2011-01-07T13:58:15.803" Score="2" ViewCount="" Body="&lt;p&gt;They may be using a local modified version, and have then renamed it to follow local standards parhaps?&lt;/p&gt;&#xA;" OwnerUserId="12626" LastActivityDate="2011-01-07T13:58:15.803" />
  <row Id="34543" PostTypeId="1" CreationDate="2011-01-07T13:58:18.453" Score="6" ViewCount="207" Body="&lt;p&gt;When I graduate from uni my desire is to land a job where I feel that what I do as a programmer makes a difference and contribute to the project. My code, no matter how small, is useful to the project, &lt;em&gt;is&lt;/em&gt; being used by the project, and takes it forward. My work matters and thus I feel that I make a difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In contrast, one of my fears is that my work just doesn't matter. Either it is just meaningless to the project but you're told to do it anyway, or your code &lt;em&gt;is&lt;/em&gt; useful but not used in the project, or you feel that the project as a whole is just pointless, for whatever reason.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this something that you've experienced, or are experiencing?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you feel that you, as a programmer, make a difference, or do you feel that what you do just doesn't matter?&lt;/p&gt;&#xA;" OwnerUserId="2210" LastActivityDate="2011-01-07T17:25:00.227" ClosedDate="2011-01-07T15:23:16.707" Title="Do you feel that you, as a programmer, make a difference?" Tags="&lt;work&gt;" AnswerCount="6" CommentCount="1" FavoriteCount="2" />
  <row Id="34544" PostTypeId="2" ParentId="34537" CreationDate="2011-01-07T13:59:06.347" Score="11" ViewCount="" Body="&lt;p&gt;Under the definition of the MIT license, it is perfectly permissible. They are not distributing it, and even if they were, they would only have to include a copy of the license file (not required to be the header of each file).&lt;/p&gt;&#xA;" OwnerUserId="12628" LastActivityDate="2011-01-07T13:59:06.347" CommentCount="12" />
  <row Id="34546" PostTypeId="2" ParentId="34537" CreationDate="2011-01-07T14:02:57.627" Score="1" ViewCount="" Body="&lt;p&gt;As shown on the &lt;a href=&quot;http://jquery.com/&quot; rel=&quot;nofollow&quot;&gt;offical jQuery website&lt;/a&gt;, it's used by: Google, Dell, Digg, NBC, Netflix, Mozilla, WordPress and others. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a widely regarded and used library.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I assume they change the name so that people don't know they use jQuery, as they'd view it negatively, because they are relying on someone else's code rather than having written it themselves.&lt;/p&gt;&#xA;" OwnerUserId="12540" LastActivityDate="2011-01-07T14:02:57.627" />
  <row Id="34547" PostTypeId="1" AcceptedAnswerId="41126" CreationDate="2011-01-07T14:03:22.460" Score="11" ViewCount="560" Body="&lt;p&gt;Reference question: &lt;a href=&quot;http://stackoverflow.com/questions/4303813/help-with-interview-question&quot;&gt;http://stackoverflow.com/questions/4303813/help-with-interview-question&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The above question asked to solve a problem for an NxN matrix. While there was an easy solution, I gave a more general solution to solve the more general problem for an NxM matrix. A handful of people commented that this generalisation was bad because it made the solution more complex. One such comment is voted +8.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Putting aside the hard-to-explain voting effects on SO, there are two types of complexity to be considered here:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Runtime complexity, i.e. how fast does the code run&lt;/li&gt;&#xA;&lt;li&gt;Code complexity, i.e. how difficult is the code to read and understand&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The question of runtime complexity is something that requires a better understanding of the input data today and what it might look like in the future, taking the various growth factors into account where necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question of code complexity is the one I'm interested in here. By generalising the solution, we avoid having to rewrite it in the event that the constraints change. However, at the same time it can often result in complicating the code. In the reference question, the code for NxN is easy to understand for any competent programmer, but the NxM case (unless documented well) could easily confuse someone coming across the code for the first time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, my question is this: Where should you draw the line between generalising and keeping the code easy to understand?&lt;/p&gt;&#xA;" OwnerUserId="8679" LastActivityDate="2011-01-31T00:36:29.977" Title="Adding complexity by generalising: how far should you go?" Tags="&lt;best-practices&gt;&lt;general-purpose&gt;&lt;complexity&gt;" AnswerCount="14" CommentCount="1" FavoriteCount="1" />
  <row Id="34548" PostTypeId="2" ParentId="34543" CreationDate="2011-01-07T14:05:44.597" Score="3" ViewCount="" Body="&lt;p&gt;I really feel I make a difference...&#xA;Not in the sense that nobody could do my work, of course. But I feel I am a valuable part of the team, and that things would be a bit more hectic, or simply slower, if I was not there.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I'm glad for this.  The contrary would make me so sad...&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2011-01-07T14:05:44.597" />
  <row Id="34549" PostTypeId="2" ParentId="34532" CreationDate="2011-01-07T14:09:05.637" Score="2" ViewCount="" Body="&lt;p&gt;It really shouldn't matter.  I have a SCJP, and it was important when I had no experience, and helped me get my first job.  Now that you have 10 years experience, no one will care if you update your certification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, when I have 10 years experience, I'll probably stop mentioning any certifications on my resume.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If anyone is aware of an employer that cares that their programmers are both certified, and that the certifications have not expired, I would be interested to hear about it.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastActivityDate="2011-01-07T14:09:05.637" CommentCount="2" />
  <row Id="34550" PostTypeId="2" ParentId="34543" CreationDate="2011-01-07T14:09:13.427" Score="7" ViewCount="" Body="&lt;p&gt;When you feel you don't make a difference, it's time to get another job, where you'll feel it. Ultimately, we all are here to make a difference :)&lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2011-01-07T14:09:13.427" CommentCount="1" />
  <row Id="34551" PostTypeId="2" ParentId="34547" CreationDate="2011-01-07T14:11:39.690" Score="2" ViewCount="" Body="&lt;p&gt;Sounds a bit like premature generalization, usually it's best to keep things simple if you're not fairly certain you'll need something&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If its applicable and you're really worried about future extensions perhaps you can wrap it in a strategy pattern or something similar&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Code should be made as simple as possible, but no simpler :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have an exception to the generalization rule and that's when something is very general (meaning it can potentially be used in several projects) and you have a bunch of related code, then I tend to build a utility library that I add to my &quot;toolbox&quot;.  If some project needs some addition that fits into one of those toolbox libs I can add them to the lib instead, tends to speed up development a lot after a couple of years :)&lt;/p&gt;&#xA;" OwnerUserId="12354" LastEditorUserId="12354" LastEditorDisplayName="" LastEditDate="2011-01-07T14:34:41.557" LastActivityDate="2011-01-07T14:34:41.557" CommentCount="2" />
  <row Id="34552" PostTypeId="2" ParentId="34537" CreationDate="2011-01-07T14:12:58.807" Score="1" ViewCount="" Body="&lt;p&gt;Large website developers care about their users, I don't see any reason why they would go out of there way to obfuscate the technologies they use from the infinitesimal fraction of their users which are readying the source code of a page.&lt;/p&gt;&#xA;" OwnerUserId="7485" LastEditorUserId="7485" LastEditorDisplayName="" LastEditDate="2011-01-07T14:22:51.547" LastActivityDate="2011-01-07T14:22:51.547" />
  <row Id="34553" PostTypeId="2" ParentId="34200" CreationDate="2011-01-07T14:14:22.527" Score="1" ViewCount="" Body="&lt;p&gt;Story time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Couple months ago I came back from a week's vacation to find my whole company turned on its head. A project that another section of the development department had been grinding on for months was suddenly a white-hot-urgent priority, and the whole team was pulled off of what they were working on to churn the thing out. In the meeting that day, the owner of the company asked us to knock out a couple of the pieces that day and the rest the next day and we'd be in good shape.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Six weeks later we finally delivered that thing, after pretty much nonstop work/sleep cycles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Our metric for &quot;finished&quot; was that the client had no more feedback. New and exciting things would turn up on each version of their feedback (delivered to us by email) that had never turned up before, and every word that they said was instantly part of the spec (justified with the phrase &quot;let's just get it done&quot;).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Late one night I had just totally freaking HAD IT with managing bug reports by email and printouts-with-checkmarks. I installed Mantis on our test server and loaded the feedback document I'd just received for my section into it. I set up my manager as a user and let him start getting emails from it as I closed issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Within about 6 hours I had the whole team on it. The PM was filtering client emails into Mantis, developers were claiming and working issue lists. Even better, they were able to request clarification and communication inside the system, resulting in a paperless paper trail of details about each item. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The next day they asked me to Tech Lead the rest of the project. It was sort of like being handed a live grenade, but I took it and ran with it. Two weeks later we finally exhausted our client's ability to yank our nose-ring, and put the site into production. Mantis is now how we manage bugs, and might become how we handle feature requests from the beginning of a project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;TL;DR: Install it your own self and start using it for your own stuff. Let it prove its worth on its own. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, this is the same policy I'm following about version control. We use Subversion under a lock-required policy, because my manager doesn't trust file merge. That's fine, but after I check out a SVN project, I immediately make a local git repository of it for my own use in development. &lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2011-01-07T14:14:22.527" />
  <row Id="34554" PostTypeId="2" ParentId="34543" CreationDate="2011-01-07T14:14:27.300" Score="4" ViewCount="" Body="&lt;p&gt;I make a difference.  Sometimes my code makes a positive difference and sometimes it makes a negative difference but it always makes a difference.&lt;/p&gt;&#xA;" OwnerUserId="12547" LastActivityDate="2011-01-07T14:14:27.300" />
  <row Id="34555" PostTypeId="2" ParentId="34543" CreationDate="2011-01-07T14:15:17.777" Score="2" ViewCount="" Body="&lt;p&gt;Work for a start up company, everything you do there will probably be live on their site or product and under the scrutiny of customers quite quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I worked for a small company (4 of us in total) over by summer holiday between semesters at uni, and I worked on features that were being incorporated into their product constantly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The CEO and CTO at the company both finished with their jobs at a large company in order to be able to take control of what they were doing. From my understanding they felt that in their larger company setting they were not satisfied with the amount of agility they had, spending a lot of the time in less than helpful buzzword ladened meetings.&lt;/p&gt;&#xA;" OwnerUserId="7485" LastEditorUserId="7485" LastEditorDisplayName="" LastEditDate="2011-01-07T14:20:31.767" LastActivityDate="2011-01-07T14:20:31.767" CommentCount="2" />
  <row Id="34556" PostTypeId="2" ParentId="34547" CreationDate="2011-01-07T14:16:23.813" Score="2" ViewCount="" Body="&lt;p&gt;While I agree with MattiasK's answer (+1 from me), I observed many times that coding while keeping the general case in mind helps write cleaner code, because the general case can require concepts to be more precisely defined, which helps writing more specific codes in a sound way.&lt;/p&gt;&#xA;" OwnerUserId="3807" LastActivityDate="2011-01-07T14:16:23.813" CommentCount="1" />
  <row Id="34557" PostTypeId="2" ParentId="34547" CreationDate="2011-01-07T14:18:09.980" Score="10" ViewCount="" Body="&lt;p&gt;The rule of thumb I follow is to generalize the code only after I have reused it a few times.  This is usually greater than 3 times.  The added complexity involved in generalizing to early is no worth it.&lt;/p&gt;&#xA;" OwnerUserId="12497" LastActivityDate="2011-01-07T14:18:09.980" CommentCount="4" />
  <row Id="34559" PostTypeId="1" AcceptedAnswerId="34563" CreationDate="2011-01-07T14:21:10.170" Score="8" ViewCount="316" Body="&lt;p&gt;This is something I was never taught. I have seen alot of different types of authoring styles. I code primarily in Java and Python. I was wondering if there was a standard authoring style or if everything is freestyle. Also if you answer would you mind attaching the style you use to author files that your create at home or at work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually just go &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;@author garbagecollector&#xA;@company garbage inc.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2446" LastEditorUserId="1865" LastEditorDisplayName="" LastEditDate="2011-01-07T15:35:15.327" LastActivityDate="2011-01-07T19:08:06.270" Title="How do you keep track of the authors of code?" Tags="&lt;programming-practices&gt;" AnswerCount="11" CommentCount="2" FavoriteCount="1" />
  <row Id="34560" PostTypeId="2" ParentId="34543" CreationDate="2011-01-07T14:21:45.270" Score="10" ViewCount="" Body="&lt;p&gt;Depends upon where you work and what you are doing along with what you define as making a difference:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you are are type of person that feels that collecting a paycheck and supporting your family is making a difference, then you are making a difference.&lt;/li&gt;&#xA;&lt;li&gt;If you are the type of person that feels that making the life of your coworkers a bit easier as a result of the programs that you develop, then you are making a difference.&lt;/li&gt;&#xA;&lt;li&gt;If you are the type of person that feels that you need to be making contributions to the population at large (e.g. by working on Linux, writing software for research) then you may find that you need to hunt around a bit to find a job where you can do that, but if you manage to find job like that, then you are making a difference.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I've read and heard a number of stories over the years by developers that where in roles where they would spend the day writing code for months at a time only to one day realize that most of their work is for naught. These are the type of positions that are going to be tough for most people that want to make a difference in some way to fill.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, one thing that you must realize is that most programs do not have long life spans. I haven't seen any firm numbers, but some, like games are going to be discarded to the bargain bin (unless they end up being classics) within a couple months of their release. Business applications, especially internal applications, tend to hang around much longer (ever hear a story about the company payroll being on a mainframe that had been running since the 1960's?) but eventually they get retired as well. About the only software that I can think of that has what is likely the longest life span is that in use in the space program (i.e. on the &lt;a href=&quot;http://en.wikipedia.org/wiki/Voyager_program&quot; rel=&quot;nofollow&quot;&gt;Voyager spacecraft&lt;/a&gt;) but there's an upper limit on how long that will be around as eventually they will run out of power.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So all of that said, at the end of the day you need to decide what you define as making a difference and then try and find a job where you are making a difference in that way. If the job is such that you actually look forward to going into work (almost) everyday, then all the better.&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2011-01-07T14:21:45.270" CommentCount="1" />
  <row Id="34561" PostTypeId="1" AcceptedAnswerId="38875" CreationDate="2011-01-07T14:22:31.383" Score="6" ViewCount="149" Body="&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am looking for some information about the history of software development outsourcing (both inside and outside the country) as well as future trends about it. Numbers would be specially welcomed&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you happen to know where can I find this information?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;edit- Any country or global stats actually. I am interested in the historic and future trends globally&lt;/p&gt;&#xA;" OwnerUserId="12630" LastEditorUserId="12630" LastEditorDisplayName="" LastEditDate="2011-01-07T14:34:15.147" LastActivityDate="2011-01-22T00:23:36.847" Title="papers on software outsourcing history and trends?" Tags="&lt;outsourcing&gt;" AnswerCount="2" CommentCount="2" FavoriteCount="1" />
  <row Id="34562" PostTypeId="2" ParentId="34559" CreationDate="2011-01-07T14:25:51.720" Score="8" ViewCount="" Body="&lt;p&gt;I don't do that at all. I think at work we have some template that gets inserted in the files with the company name and userid of the person who last modified the file, but I never pay attention to that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, I don't think it really matters how you do it. If you want to author-stamp your files, just pick a consistent style and go with it.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2011-01-07T14:25:51.720" />
  <row Id="34563" PostTypeId="2" ParentId="34559" CreationDate="2011-01-07T14:27:34.530" Score="2" ViewCount="" Body="&lt;p&gt;Not entirely sure what your asking, however I use a very strict style:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;;==========================================&#xA;; Title:  Author Style Sample&#xA;; Author: Darknite&#xA;; Date:   7 Jan 2011&#xA;;==========================================&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The style is inspired from assembly programmers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I put this at the top of pages I need to &quot;Author&quot;, regardless if this is a class, text file, or SQL stored procedure etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know if that helps.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2011-01-07T14:27:34.530" CommentCount="1" />
  <row Id="34564" PostTypeId="2" ParentId="34547" CreationDate="2011-01-07T14:27:39.380" Score="1" ViewCount="" Body="&lt;p&gt;I don't worry about generalizing code until at least the second use case. It can be difficult to predict how code will be used in the future, which makes it more difficult to determine in advance what will need to be generalized. If you have an example on hand, that makes the process much easier and more accurate. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2011-01-07T14:27:39.380" />
  <row Id="34565" PostTypeId="2" ParentId="34439" CreationDate="2011-01-07T14:29:00.157" Score="0" ViewCount="" Body="&lt;p&gt;In VB6 and Windows Forms I always used the designer, but in WPF I never use it.  The WPF designer creates terrible XAML, plus in WPF I like to design my UI as a bunch of widgets and let the framework put it all together at runtime.  You lose a lot of that flexibility if you use the designer.&lt;/p&gt;&#xA;" OwnerUserId="5512" LastActivityDate="2011-01-07T14:29:00.157" />
  <row Id="34566" PostTypeId="2" ParentId="34547" CreationDate="2011-01-07T14:30:11.453" Score="12" ViewCount="" Body="&lt;p&gt;Simple is king.  Every bit of complexity that is added needs to justify its existance.  How does it make the code better?  Is that benefit worth the added complexity?  We always approach adding more complexity as an evil act to the code.  Only once you determine the code can't really live without it, is it appropriate to add it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can't quantify and justify the complexity then leave it out.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2011-01-07T16:02:07.050" LastActivityDate="2011-01-07T16:02:07.050" CommentCount="1" />
  <row Id="34567" PostTypeId="2" ParentId="34559" CreationDate="2011-01-07T14:31:55.633" Score="5" ViewCount="" Body="&lt;p&gt;JavaDoc is very much standard in the Java community:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://download.oracle.com/javase/1.3/docs/tooldocs/win32/javadoc.html#@author&quot; rel=&quot;nofollow&quot;&gt;http://download.oracle.com/javase/1.3/docs/tooldocs/win32/javadoc.html#@author&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="3306" LastActivityDate="2011-01-07T14:31:55.633" />
  <row Id="34568" PostTypeId="2" ParentId="34559" CreationDate="2011-01-07T14:36:04.630" Score="34" ViewCount="" Body="&lt;p&gt;Why would  you? that's the job of the versioning system and &quot;Blame&quot; :)&lt;/p&gt;&#xA;" OwnerUserId="12354" LastActivityDate="2011-01-07T14:36:04.630" CommentCount="5" />
  <row Id="34569" PostTypeId="2" ParentId="34540" CreationDate="2011-01-07T14:39:05.593" Score="2" ViewCount="" Body="&lt;p&gt;Usually when passing collections that most flexible way is to pass IEnumerable&amp;lt;class&amp;gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you really need to prevent others from altering your collection that wont work though since they can cast it to the original List or whatever it was, then ReadOnlyCollection seems like a good choice.&lt;/p&gt;&#xA;" OwnerUserId="12354" LastActivityDate="2011-01-07T14:39:05.593" CommentCount="3" />
  <row Id="34570" PostTypeId="1" AcceptedAnswerId="34572" CreationDate="2011-01-07T14:39:27.200" Score="26" ViewCount="818" Body="&lt;p&gt;On a fairly important project with short timelines I decided to use &lt;a href=&quot;http://subsonicproject.com/&quot; rel=&quot;nofollow&quot;&gt;SubSonic&lt;/a&gt; for straight forward data access. I wired up a handful of forms, created matching database tables and POCO's for each and used &lt;a href=&quot;http://subsonicproject.com/docs/Using_SimpleRepository&quot; rel=&quot;nofollow&quot;&gt;SubSonic's simple repository mode&lt;/a&gt; for the data access. Everything worked well and I was able to bang these forms out pretty quickly and I moved on to other things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since that time I have heard that using SubSonic was a 'cowboy move' and that it was implemented 'incorrectly' and that 'the person who used it, didn't even know how to use SubSonic'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I would like to know is, how should I take this? There were and still are no standards for data access at this company, so there is no violation of a standard. The forms worked exactly as requested and saved the data to the database correctly. And with only spending a few days on the forms instead of weeks, saved a lot of time which was used for other functionality in the project. So in light of all of this, I am confused as to what was 'incorrect'. Am I missing something here?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks for your answers.&lt;/p&gt;&#xA;" OwnerUserId="7428" LastEditorUserId="2983" LastEditorDisplayName="" LastEditDate="2011-01-07T15:22:50.700" LastActivityDate="2011-01-08T02:18:27.163" Title="How should I take being told that I was wrong?" Tags="&lt;career-advice&gt;&lt;self-improvement&gt;&lt;criticism&gt;" AnswerCount="13" CommentCount="7" FavoriteCount="6" />
  <row Id="34571" PostTypeId="2" ParentId="34570" CreationDate="2011-01-07T14:42:32.240" Score="0" ViewCount="" Body="&lt;p&gt;Analyze what you're being told, and then decide whether to accept it as a lesson and be grateful, 'cause it will speed up your learning process. Never think that you're the smartest person, it will slow you down.  &lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2011-01-07T14:42:32.240" CommentCount="1" />
  <row Id="34572" PostTypeId="2" ParentId="34570" CreationDate="2011-01-07T14:42:43.823" Score="46" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;using SubSonic was a 'cowboy move' and that it was implemented 'incorrectly' and that 'the person who used it, didn't even know how to use SubSonic'&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Unless there are details provided as to what exactly was not done properly and what problems it created, this kind of speech is called &lt;em&gt;nonconstructive critics&lt;/em&gt; and does not deserve being taken seriously.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ask back for explanations, examples of things done incorrectly and suggestions on improving them. If that is not provided, dismiss the whole thing.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;The thing is, programmers often have strong opinions on how to do things. Since programming is a design activity by nature, there can be hardly any strict rules, but mostly best practices which not even work everywhere. Almost any kind of very good and thorough work can be seen as a total mess by another programmer who's used to doing things differently. Which is why without facts and hard evidence you can't argue about anything in programming.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2011-01-07T14:48:38.310" LastActivityDate="2011-01-07T14:48:38.310" CommentCount="2" />
  <row Id="34573" PostTypeId="2" ParentId="34570" CreationDate="2011-01-07T14:43:28.460" Score="2" ViewCount="" Body="&lt;p&gt;Sounds like someone is just jealous they weren't as clever as you. Unless someone higher-up cries &quot;foul&quot;, let it go and get on with your day.&lt;/p&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2011-01-07T14:43:28.460" />
  <row Id="34574" PostTypeId="2" ParentId="34559" CreationDate="2011-01-07T14:45:49.037" Score="0" ViewCount="" Body="&lt;p&gt;I use &lt;a href=&quot;http://localhost:6788/config-sample.php&quot; rel=&quot;nofollow&quot;&gt;Doxygen&lt;/a&gt; style (or sometimes KernelDoc) comments for pretty much everything. I mostly work in C and PHP, where Doxygen is quite popular.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In most cases, It is helpful to at least include the following information:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Permission (or no) to copy it / Copyright of company or individual&lt;/li&gt;&#xA;&lt;li&gt;Author Name / e-mail&lt;/li&gt;&#xA;&lt;li&gt;Date written&lt;/li&gt;&#xA;&lt;li&gt;Date last modified&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That should help anyone who happens to be working on the file know what they have, what they can do with it and who they can ask for help if they need it. It also tells them if they're looking at something 10 years old.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2011-01-07T14:45:49.037" />
  <row Id="34575" PostTypeId="2" ParentId="34532" CreationDate="2011-01-07T14:46:35.270" Score="0" ViewCount="" Body="&lt;p&gt;Stop worrying about this! &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Surely you have bigger fish to fry. If not be glad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Personally I hate the Oracle logo next to Java!).&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2011-01-07T14:46:35.270" />
  <row Id="34576" PostTypeId="2" ParentId="34570" CreationDate="2011-01-07T14:48:28.320" Score="20" ViewCount="" Body="&lt;p&gt;Criticism can be tough to swallow at times, particularly if you think you were right.  Ask for some specifics.  The comments you have are hardly helpful to learn from.  So ask the person:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How was it implemented incorrectly?&lt;/li&gt;&#xA;&lt;li&gt;How would you have done it?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You might learn something, or you might find the guy will start backtracking and fumbling their words.  Either way, aproach the situation with a teachable attitude.  It's important to learn from our mistakes, but we need to know what the mistake actually was before we can begin any learning process.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2011-01-07T14:48:28.320" CommentCount="2" />
  <row Id="34577" PostTypeId="1" CreationDate="2011-01-07T14:50:33.387" Score="2" ViewCount="151" Body="&lt;p&gt;I was wondering how you guys start out if you need to design a multi-client project where multiple clients can interact with a server. In specific how do you go about dealing with different states and message handling, how do you start designing and considering all these cases?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example a video webchat application where it is possible that you call another client, while that client is already in a call, or is stuck in a modal dialog such that the calling dialog does not come through.&lt;/p&gt;&#xA;" OwnerUserId="2662" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2011-01-07T16:26:30.150" LastActivityDate="2011-01-07T16:26:30.150" Title="Best approach to designing multi-client applications" Tags="&lt;architecture&gt;&lt;client&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="34578" PostTypeId="2" ParentId="34525" CreationDate="2011-01-07T14:50:48.017" Score="5" ViewCount="" Body="&lt;p&gt;The government's desired API:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;public interface Peasant&lt;br&gt;&#xA;{&lt;br&gt;&#xA;   void Work();&lt;br&gt;&#xA;   void PayTaxes();&lt;br&gt;&#xA;   void Obey();&lt;br&gt;&#xA;}&lt;/p&gt;&#xA;" OwnerUserId="12547" LastActivityDate="2011-01-07T14:50:48.017" />
  <row Id="34579" PostTypeId="2" ParentId="34525" CreationDate="2011-01-07T14:50:58.347" Score="3" ViewCount="" Body="&lt;p&gt;&lt;code&gt;Woman.ConvertLanguageToManSpeak()&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Person.setSilent()&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Person.goAway()&lt;/code&gt;&lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-07T14:50:58.347" CommentCount="0" />
  <row Id="34580" PostTypeId="2" ParentId="34570" CreationDate="2011-01-07T14:54:25.917" Score="3" ViewCount="" Body="&lt;p&gt;I would pose this question, as you do above, to your manager. Perhaps what you say is true. If so then well done, the project is in a better place and now your manager knows who is responsible. If not then you could find out why not and perhaps learn something new.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of all: don't take things personally. &lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2011-01-07T14:54:25.917" />
  <row Id="34581" PostTypeId="1" CreationDate="2011-01-07T05:18:58.313" Score="6" ViewCount="230" Body="&lt;p&gt;I've 3.5 years of experience in Java/J2EE and struts after B.Tech in Computer Sc &amp;amp; engineering. What should be the best career path for me ? &lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T15:03:58.417" ClosedDate="2011-01-07T15:31:50.873" Title="What should be the career path for 3.5 yrs Java Developer." Tags="&lt;java&gt;" AnswerCount="4" CommentCount="4" />
  <row Id="34582" PostTypeId="2" ParentId="34581" CreationDate="2011-01-07T05:23:39.520" Score="5" ViewCount="" Body="&lt;p&gt;I suppose getting a job as a Java programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;:)&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T14:54:52.833" CommentCount="1" />
  <row Id="34583" PostTypeId="2" ParentId="34581" CreationDate="2011-01-07T07:00:38.780" Score="0" ViewCount="" Body="&lt;p&gt;Do some java certifications.This will invite attraction to many employers.Java has added so many new certifications.Mobile development has got good opportunity like Android, iPhone etc.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T14:54:52.833" />
  <row Id="34584" PostTypeId="1" CreationDate="2011-01-07T00:00:17.903" Score="6" ViewCount="496" Body="&lt;p&gt;I often try to avoid telling people I'm a programmer because most of the time I end up explaining to them what that really means. When I tell them I'm programming in Java they often ask general questions about the language and how it differs from x and y. I'm also not good at explaining things because 1) I don't have that much experience in the field and 2) I really hate explaining things to non-technical people.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;They say that you truly understand things once you explain them to someone else, in this case how would you explain OOP terminology and concepts to a non technical person? &lt;/p&gt;&#xA;" LastActivityDate="2011-05-05T21:10:38.003" Title="How to explain OOP concepts to a non technical person?" Tags="&lt;object-oriented&gt;&lt;terminology&gt;&lt;concepts&gt;" AnswerCount="11" CommentCount="5" FavoriteCount="1" />
  <row Id="34585" PostTypeId="2" ParentId="34584" CreationDate="2011-01-07T00:06:52.983" Score="0" ViewCount="" Body="&lt;p&gt;This question seems a candidate for being closed, nevertheless...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like most things, OOP is actually very simple to explain at a conceptual level. Programmers model objects; and:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;objects have state (fields/data members)&lt;/li&gt;&#xA;&lt;li&gt;objects have actions (methods/functions)&lt;/li&gt;&#xA;&lt;li&gt;objects build upon each other (inheritance)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These are hundreds of finer details, sure. But if you're just trying to give someone the 10-second overview, I think that's a good start. Are there more specifics concepts you're having trouble explaining?&lt;/p&gt;&#xA;" OwnerUserId="10183" LastActivityDate="2011-01-07T14:55:40.883" />
  <row Id="34586" PostTypeId="2" ParentId="34584" CreationDate="2011-01-07T00:13:28.970" Score="9" ViewCount="" Body="&lt;p&gt;Objects are nouns, methods are verbs.&lt;/p&gt;&#xA;" OwnerUserId="11978" LastActivityDate="2011-01-07T14:55:40.883" CommentCount="1" />
  <row Id="34587" PostTypeId="2" ParentId="34584" CreationDate="2011-01-07T00:13:40.543" Score="0" ViewCount="" Body="&lt;p&gt;Like most clear 'bridge' between human thinking and the way, how computer 'thinks'. &lt;/p&gt;&#xA;" OwnerUserId="18551" LastActivityDate="2011-01-07T14:55:40.883" />
  <row Id="34588" PostTypeId="2" ParentId="34584" CreationDate="2011-01-07T00:15:27.153" Score="15" ViewCount="" Body="&lt;p&gt;I generally try and describe Object-Orientated-Programming by using real world examples.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I might say that a class called &lt;code&gt;Vehicle&lt;/code&gt; describes the minimum things that a vehicle is.  I'll ask the person to tell me what he or she thinks a vehicle is.  Sometimes they say things like &quot;Well, like a car or a truck&quot;, and I'll nod and agree with them.  Then I'll ask what the differences are between a car and a truck.  Sometimes they mention size, sometimes the purpose, and other things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then I'll ask them to forget about a car, or a truck and just ask them to continue to describe a vehicle:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Oh, well it moves&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;It has an operator, or a driver&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;etc...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Soon, we know what a Vehicle is and I said that in OOP we would define a vehicle, and for the sake of argument say it can move, and give it a driver of sorts.  Then I'll ask, ok, so what does a Car have?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Doors&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Windows&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then a truck....&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Doors&quot;&#xA;&quot;windows&quot;&#xA;&quot;More Wheels!&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Soon, after lots of discussion, the other person generally has identified:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) What constitutes a vehicle&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) What constitutes a car&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3) What constitutes a truck&lt;/p&gt;&#xA;&#xA;&lt;p&gt;4) What constitutes an aeroplane.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All without any technicalities.  We've divided up the properties of each in to the right areas.  They understand inheritance (&quot;Yeah, a car is a vehicle, a truck is a vehicle, but a car is not a truck, it's SIMPLE, duh!&quot;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They even understand polymorphism, &quot;Sure, they basically do the same, but that might do it slightly different.&quot;.  We can talk about behavior and where that should live in our tree of objects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depending on their education and background, some get it faster than others.  But when I compare OOP to real-life objects, most people always get it.  In fact, I have found in conversations with non-technical people things I had never thought of.  Vehicles don't have to be manned, for example (drones), but would a programmer have thought of the operator of the vehicle as a property of it?  I am not saying it is right or wrong to have an operator mentioned, but it causes us to think about what we are modelling and what we are trying to achieve when we develop software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, partial template specialization,  on the other hand....   :)&lt;/p&gt;&#xA;" OwnerUserId="7693" LastActivityDate="2011-01-07T14:55:40.883" CommentCount="2" />
  <row Id="34589" PostTypeId="2" ParentId="34547" CreationDate="2011-01-07T14:57:14.963" Score="1" ViewCount="" Body="&lt;p&gt;Most of the answers so far do not completely reflect my view.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The most important thing about writing code is to accept that you do not write code in isolation.  You may have other developers on the same team as you.  Other developers may need to use your code as a library, and after you move on, other developers will maintain and extend your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you start thinking about your team mates, concepts such as consistent solutions for similar issues, using techniques that are understood, rather than obscure C syntax will help you in deciding how to manage complexity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My final thoughts on this though are to think about the different viewers / users of your code.  People that use your classes will appreciate the simplicity of use that you create by doing all the complex stuff internally.  The maintenance programmer might however find that having the code spread around several different classes to be disorientating when they are trying to track down a bug.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2011-01-07T14:57:14.963" />
  <row Id="34590" PostTypeId="2" ParentId="34581" CreationDate="2011-01-07T14:58:03.120" Score="0" ViewCount="" Body="&lt;p&gt;Learn JSF 2.0 to replace Struts, and then code a lot.  It is 1) part of Java EE 6, and 2) much improved.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember to code a lot.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2011-01-07T14:58:03.120" />
  <row Id="34591" PostTypeId="2" ParentId="34354" CreationDate="2011-01-07T14:59:30.297" Score="0" ViewCount="" Body="&lt;p&gt;We use a Wiki that all developers have access to that points out our standards, quick reference items, and pointers to shared &quot;widgets&quot; that we have in our framework.  We also send out an email to the group if there is a significant new piece of shared logic that everyone should be aware of.  These also come up frequently in our code review discussions and the periodic developers' meetings.&lt;/p&gt;&#xA;" OwnerUserId="10106" LastActivityDate="2011-01-07T14:59:30.297" />
  <row Id="34592" PostTypeId="2" ParentId="34581" CreationDate="2011-01-07T15:03:58.417" Score="2" ViewCount="" Body="&lt;p&gt;This is the fork in the road generally speaking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do you want to remain a developer or climb the corporate ladder?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to remain a developer the path is easy; find the most intriguing position available and pursue it. Span your knowledge bank; knowing varying technologies adds additional value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are more apt to begin climbing the corporate ladder and begin moving towards a people leader position then perhaps now would be a good time to try and move towards a Project Manager role. That will allow you to use your current skill set while at the same time begin to understand the role of a Project Manager and perhaps pursue a &lt;a href=&quot;http://en.wikipedia.org/wiki/Project_Management_Professional&quot; rel=&quot;nofollow&quot;&gt;PMP&lt;/a&gt; certification.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Attempting to plan a career path is difficult; follow your gut instincts and most of the time you will come out ok.&lt;/p&gt;&#xA;" OwnerUserId="3289" LastActivityDate="2011-01-07T15:03:58.417" />
  <row Id="34593" PostTypeId="2" ParentId="34525" CreationDate="2011-01-07T15:09:19.173" Score="0" ViewCount="" Body="&lt;p&gt;I have no idea but I'm willing to bet the first one will have something to do with the Penis :)&lt;/p&gt;&#xA;" OwnerUserId="12354" LastActivityDate="2011-01-07T15:09:19.173" CommentCount="6" />
  <row Id="34594" PostTypeId="2" ParentId="34547" CreationDate="2011-01-07T15:10:44.977" Score="6" ViewCount="" Body="&lt;p&gt;First of all, I would question the assumption that there necessarily &lt;em&gt;is&lt;/em&gt; a line between generalization and understandability.  In this particular case, it sounds like you're discussing a well-known algorithm, so I don't really see anything wrong with generalizing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As with most things in programming, there are tradeoffs to be considered.  What's most important is that you're thinking of the big picture.  It's very rare that you have a piece of code like this floating around in a vacuum.  In this particular case, the complexity you're adding is very localized.  That's still not ideal, but complexity is much easier to manage if you can close it off in its own little area.  When complexity starts to affect other pieces of code, it has a tendency to multiply and get out of control very quickly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, since you are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Implementing a well-known algorithm&lt;/li&gt;&#xA;&lt;li&gt;Localizing the complexity&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;...I say go for it.  If you can solve a potential problem ahead of time without too much extra effort and minimal complexity, there isn't any reason not to do it.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2011-01-07T15:10:44.977" />
  <row Id="34596" PostTypeId="2" ParentId="34525" CreationDate="2011-01-07T15:15:35.640" Score="1" ViewCount="" Body="&lt;p&gt;Walk around with wearing a shirt with su rm -r / on it, and watch as people type it into their bodies.&lt;/p&gt;&#xA;" OwnerUserId="12290" LastActivityDate="2011-01-07T15:15:35.640" />
  <row Id="34597" PostTypeId="2" ParentId="34540" CreationDate="2011-01-07T15:16:46.323" Score="2" ViewCount="" Body="&lt;p&gt;I've never seen any Microsoft documentation that specifies that a List should not be publically exposed.  If you look at the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx&quot; rel=&quot;nofollow&quot;&gt;List Class&lt;/a&gt; definition on MSDN, you won't find any mention of this.  You'll need to provide documentation to back up your assertion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In our applications we ususally List(Of T) for our collections.  They're simple, type safe and when we expose them through a web service (and such) they're automatically converted to a simple Array(Of T).  We've used this approach on countless systems without much issue.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've read the posts in the comments, thanks to everyone for providing the documentation.  For us, extending our classes isn't an issue and the fact that serialization is a pain with collections puts us in the List/IList camp.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;While I agree that the recommendations generally make sense, they are just recommendations and that if your situation doesn't fit that model then you should do what works for you.  In our case we expose List(Of T) or sometimes implement our own IList.&lt;/p&gt;&#xA;" OwnerUserId="101" LastEditorUserId="101" LastEditorDisplayName="" LastEditDate="2011-01-07T15:56:24.637" LastActivityDate="2011-01-07T15:56:24.637" CommentCount="7" />
  <row Id="34600" PostTypeId="2" ParentId="34525" CreationDate="2011-01-07T15:17:25.953" Score="0" ViewCount="" Body="&lt;p&gt;I believe &lt;a href=&quot;http://faqs.neoseeker.com/Games/PC/deus_ex_augmentation_masterofthevg.txt&quot; rel=&quot;nofollow&quot;&gt;Deus Ex has a few suggestions&lt;/a&gt; :)&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;But for a serious answer, one application could be &lt;strong&gt;medication&lt;/strong&gt;, e.g. automatic insulin injections for diabetic people, with automatic renewal when the level is detected as low.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another one could be &lt;strong&gt;crowd monitoring&lt;/strong&gt; like in the [very good] New Zealand tv show &quot;&lt;a href=&quot;http://tvnz.co.nz/this-is-not-my-life/not-my-life-index-group-3631491&quot; rel=&quot;nofollow&quot;&gt;This is not my life&lt;/a&gt;&quot; (which you &lt;em&gt;need&lt;/em&gt; to watch if you like scifi).&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Another could also be &lt;strong&gt;health monitoring for insurances&lt;/strong&gt; (e.g. if you smoke or don't do sport, they could detect it and raise your bill).&lt;/p&gt;&#xA;" OwnerUserId="9094" LastEditorUserId="9094" LastEditorDisplayName="" LastEditDate="2011-01-07T15:30:01.907" LastActivityDate="2011-01-07T15:30:01.907" />
  <row Id="34601" PostTypeId="2" ParentId="34570" CreationDate="2011-01-07T15:17:42.393" Score="4" ViewCount="" Body="&lt;p&gt;How have you heard these comments?  Who have you heard them from?  Were there any more detailed ones?  It's hard to tell without that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, you can't please everybody, and you will make mistakes.  You will find ways to improve in criticism, and there will be criticism you should just ignore.  (Telling these apart takes practice.)  Don't take it too personally, and ignore criticism about you as opposed to what you've done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can sometimes use criticism as an opening to find out more, asking questions like &quot;How should SubSonic be used?&quot;  or &quot;Shouldn't we have a standard or guidelines so we know what's expected?&quot;&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2011-01-07T15:17:42.393" />
  <row Id="34602" PostTypeId="2" ParentId="34525" CreationDate="2011-01-07T15:21:47.927" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Health state notification implants&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They will notify local medical institutions the moment somebody got a health problem so that a health officer can be dispatched without delay and unnecessary phone talks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's one thing which may be deemed as absolute good.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2011-01-07T15:21:47.927" />
  <row Id="34603" PostTypeId="2" ParentId="34584" CreationDate="2011-01-07T15:23:37.173" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The Mobile Phone example:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Imagine you are a factory owner, you want to describe a generic phone&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Step 1: List this generic phones &lt;em&gt;properties&lt;/em&gt; eg: height, weight, colour, etc&lt;/li&gt;&#xA;&lt;li&gt;Step 2: List this generic phones &lt;em&gt;functions&lt;/em&gt;  eg: make call, receive call, send sms etc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Now that you have your generic &quot;blueprint&quot; create me the following phones:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Phone 1:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Height-&gt; 102mm&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Weight-&gt;  85g&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Colour-&gt;  Pink&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Phone 2:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Height-&gt;  125mm&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Weight-&gt;  96g&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Colour-&gt;   Red&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2011-01-07T15:23:37.173" />
  <row Id="34604" PostTypeId="2" ParentId="34570" CreationDate="2011-01-07T15:25:07.617" Score="1" ViewCount="" Body="&lt;p&gt;Ask the person making the comments what they would have done differently and why.  Listen carefully to their reasons why as that tells you how seriously to take their comments.  &lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2011-01-07T15:25:07.617" />
  <row Id="34605" PostTypeId="2" ParentId="34559" CreationDate="2011-01-07T15:32:15.103" Score="0" ViewCount="" Body="&lt;p&gt;If you are working on a large project with many contributors, annotating each file with list of authors just doesn't work. What do you do with the list of authors when you divide a file into several smaller files? Do you keep the original author name if you completely rewrite the code? Do you add your name to the list of authors when you fix a typo in comment?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These questions are better left for the version control system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But I'm not completely against list of authors. Keeping a list of authors for the whole project makes perfect sense. If it's a single-file-project, sure, keep it inside that very file. If it's larger project keep it in README or your top level source file (aka main.c). But don't repeat yourself by listing authors in every single file.&lt;/p&gt;&#xA;" OwnerUserId="3532" LastActivityDate="2011-01-07T15:32:15.103" />
  <row Id="34606" PostTypeId="2" ParentId="34507" CreationDate="2011-01-07T15:33:58.567" Score="4" ViewCount="" Body="&lt;p&gt;The problem with getting someone from outside the company to test your software is that they will not know anything about your software. So you need to make sure you have good documentation that they can test the system with: e.g. requirements specification, test specification, user guides, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They also won't care about your software. So you'd need to have a decent contract in place to ensure the system is tested property.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More importantly you need to have a good rapport with the testers - as you and your developers will be dealing with them a lot. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally they need to be involved as the system is developed. Things change, specs change. They can make impartial and very useful contributions here. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;From personal experience outsourcing testing can be a lot more hassle than it's worth. The turn around time between testing, finding and fixing bugs can be huge - days instead of hours. At crunch times in your project - i.e. system test! - you may not want to deal with anybody outside the company, in another time zone and culture.&lt;/p&gt;&#xA;" OwnerUserId="6891" LastActivityDate="2011-01-07T15:33:58.567" />
  <row Id="34608" PostTypeId="2" ParentId="34537" CreationDate="2011-01-07T15:39:06.957" Score="2" ViewCount="" Body="&lt;p&gt;We rename ours because we provide drop-in widgets for our customers and they might be also using a different version of jquery that's incompatible with ours.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;$ could be any version of jQuery (or sometimes other libraries like prototype), but dmJQuery is always the one we support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(We don't really rename it in the source, just do this...)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/* make sure we use this version of jQuery and not any others. */&#xA;window.dmJQuery = jQuery.noConflict(true);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="9277" LastActivityDate="2011-01-07T15:39:06.957" CommentCount="3" />
  <row Id="34609" PostTypeId="1" AcceptedAnswerId="34617" CreationDate="2011-01-07T15:39:53.550" Score="1" ViewCount="226" Body="&lt;p&gt;Does anyone else have that one thing they always forget to do when programming or developing a website?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally mine is forgetting to include the Doctype in a website...the amount of time i have spent ages fixing/adding/hacking around with CSS to fix IE problems and it turns out to be the F'in Doctype declaration!!!&lt;/p&gt;&#xA;" OwnerUserId="8622" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2011-01-07T15:42:27.770" LastActivityDate="2011-01-07T19:48:19.777" CommunityOwnedDate="2011-01-07T16:19:28.400" Title="Most commonly forgotten thing to do when programming/web developing" Tags="&lt;learning&gt;&lt;web-development&gt;&lt;programming-practices&gt;" AnswerCount="3" CommentCount="5" FavoriteCount="1" />
  <row Id="34610" PostTypeId="2" ParentId="17898" CreationDate="2011-01-07T15:41:10.570" Score="0" ViewCount="" Body="&lt;p&gt;For a 10-12 years old.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ponter is like a nickname for a variable.&lt;/p&gt;&#xA;" OwnerUserId="7890" LastActivityDate="2011-01-07T15:41:10.570" CommunityOwnedDate="2011-01-07T15:41:10.570" />
  <row Id="34611" PostTypeId="2" ParentId="34537" CreationDate="2011-01-07T15:41:35.183" Score="3" ViewCount="" Body="&lt;p&gt;Aside from the other answers, which are good guesses, the only other reason I could think to &lt;em&gt;deliberately&lt;/em&gt; obfuscate which libraries you're using might be to minimize the impact if a remote exploit is discovered in the library.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there was some big showstopper of a XSS hole discovered in jQuery, for instance, it might be of some benefit to have my use of it not be super obvious.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I agree with the other answerers who say it's probably a side-effect of deployment autominification. &lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2011-01-07T15:41:35.183" />
  <row Id="34612" PostTypeId="2" ParentId="34559" CreationDate="2011-01-07T15:42:28.263" Score="7" ViewCount="" Body="&lt;p&gt;We don't do authoring at my company. Instead, we let our version control handle it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every time you check in, it attaches your user name to the change list. If something is broken, someone can go back and look at the change history to see what has changed, when, and who did it. It's also neat looking at the revision graph to see how a file has evolved over time, who's touched it, what projects have branched from it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem I see with putting an author tag on a class is that over time it's pretty likely that more than one developer will be working on that class. Updates, and the like. It's an extra step to update that author comment, and extra small steps tend to get forgotten a lot. Thus it becomes out of date quickly.&lt;/p&gt;&#xA;" OwnerUserId="2305" LastActivityDate="2011-01-07T15:42:28.263" />
  <row Id="34613" PostTypeId="2" ParentId="34577" CreationDate="2011-01-07T15:42:32.143" Score="3" ViewCount="" Body="&lt;p&gt;A programmers nature is to have the belief that data loss can be stopped. This is true but it will come at the expense of something else. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is extremely common when dealing with multiple users accessing the same data and making modifications on it.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you lock the data for editing&#xA;purposes and decrease the usability&#xA;of the overall product?&lt;/li&gt;&#xA;&lt;li&gt;Perhaps you take the mantra that last&#xA;in wins in an editing scenario?&lt;/li&gt;&#xA;&lt;li&gt;Maybe the approach is to simply&#xA;isolate each user with their data and&#xA;merge it at a given point in time;&#xA;however that will provide an entirely&#xA;separate set of caveats in and of&#xA;itself.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Whatever the decision you will inevitably reach a use case where a decision has to be made to either toss the data or throw up your hands. Often times the best approach in this scenario is to throw up your hands and allow the user to make the decision. When you push the decision to the user; you can't go wrong. Do not make this habit however as a user should not constantly be forced to interact and make decisions that the software should be making. Pushing these types of decisions to a settings area can prove beneficial as it allows the user to define their decision ahead of time.&lt;/p&gt;&#xA;" OwnerUserId="3289" LastActivityDate="2011-01-07T15:42:32.143" />
  <row Id="34614" PostTypeId="1" AcceptedAnswerId="34628" CreationDate="2011-01-07T15:43:04.743" Score="4" ViewCount="154" Body="&lt;p&gt;Clearly, if I want my software to attract enough eyeballs I ought to brand it. Unless of course there isn't any competition. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to understand your thoughts on how to go about branding your software. &lt;/p&gt;&#xA;" OwnerUserId="8720" LastActivityDate="2011-01-07T17:12:20.003" Title="Have you ever worked at branding your software?" Tags="&lt;software&gt;&lt;branding&gt;" AnswerCount="3" CommentCount="4" FavoriteCount="1" />
  <row Id="34615" PostTypeId="2" ParentId="34540" CreationDate="2011-01-07T15:43:36.593" Score="1" ViewCount="" Body="&lt;p&gt;I'd suggest a readonly collection (&lt;code&gt;List&amp;lt;T&amp;gt;&amp;gt;.AsReadonly()&lt;/code&gt;) see this &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/e78dcd75.aspx&quot; rel=&quot;nofollow&quot;&gt;link&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This might be a SO question though.&lt;/p&gt;&#xA;" OwnerUserId="11064" LastActivityDate="2011-01-07T15:43:36.593" CommentCount="1" />
  <row Id="34617" PostTypeId="2" ParentId="34609" CreationDate="2011-01-07T15:51:51.990" Score="5" ViewCount="" Body="&lt;p&gt;Checking the site at different resolutions gets me some times. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Something that my co-worker seems to forget all the time is to remove his Firefox debug statements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some things that I've learned (the hard way) to always check:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;All validation on a web form&lt;/li&gt;&#xA;&lt;li&gt;Making sure query strings work and&#xA;can't be manipulated easily&lt;/li&gt;&#xA;&lt;li&gt;Javascript works in all supported&#xA;versions of IE and FireFox&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2305" LastActivityDate="2011-01-07T15:51:51.990" CommunityOwnedDate="2011-01-07T16:19:28.400" />
  <row Id="34618" PostTypeId="2" ParentId="34614" CreationDate="2011-01-07T15:52:14.780" Score="5" ViewCount="" Body="&lt;p&gt;I disagree with your basic premise. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want your software to attract enough eyeballs you need to make it useful and you need to promote it.  As an example, have a look at a product i have created, called &lt;a href=&quot;http://www.medi-hook.com&quot; rel=&quot;nofollow&quot;&gt;Medi-Hook&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without any promotion, you would not have known that this product existed.  Branding is irrelevant at this stage.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2011-01-07T15:52:14.780" CommentCount="3" />
  <row Id="34619" PostTypeId="2" ParentId="34614" CreationDate="2011-01-07T16:01:16.383" Score="2" ViewCount="" Body="&lt;p&gt;I think branding is more about product recognition opposed to &quot;attracting enough eyeballs&quot;. I would consider the later flair or packaging. Branding is essentially creating an identity for a product or a company. I think it sill important to have a recognizable identity even if there is currently no competition. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;At the most basically level, it is pretty easy, pick a logo. However, your brand is like new born child, no one has any idea how they are going to turn out. The most important part of branding is building positive physiological affects that customers can connect to the brand/logo itself. For example, &quot;brand X is always so reliable&quot; or &quot;man brand x really hit the mark on that one&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you can see it's not so cut and dry.   &lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2011-01-07T17:12:20.003" LastActivityDate="2011-01-07T17:12:20.003" CommentCount="1" />
  <row Id="34620" PostTypeId="2" ParentId="34439" CreationDate="2011-01-07T16:01:47.380" Score="0" ViewCount="" Body="&lt;p&gt;I see it more like this: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;(For any of these options, &lt;b&gt;always&lt;/b&gt; draw it on paper or a whiteboard, trust me it saves time and code frustration)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Prototying:&lt;/strong&gt;&lt;br&gt;&#xA;Use a GUI designer, preferably a recommended one used by most in a particular language.  That way your code won't be too confusing where you can tweak it to your (most of time) liking and plus since the code will most likely be thrown away or heavily changed later, you won't have to waste too much time early in the development cycle.  Using a GUI designer is good for quick and simple GUI applications or to show your client a rough picture of the application where they don't have to wait months just to see.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Small projects:&lt;/strong&gt;&lt;br&gt;&#xA;This one is a bit of a mix bag, depending on the language and time constraint. Using a GUI designer here would be helpful but you should consider cleaning up after it or creating smaller components manually.  That way anybody else (or yourself) would have an easier time fixing bugs and reading the code.  This will help you gain better control and flexibility of the GUI.  (Also a nice benefit of learning as you code)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Large projects:&lt;/strong&gt;&lt;br&gt;&#xA;This is when it becomes essential to creating GUIs manually.  Larger projects can get complex quickly and creating GUIs with a designer only makes the project more complex and harder to debug.  Creating a GUI framework for your application can help break the task of creating a GUI manually easier.  Complete control of your application is necessary as it will help with maintenance or if you want to add features later (or a pesky customer who mentions you missed a requirement lol), incorporating them will be less frustrating and cleaner.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my personal experience, learning to create GUI manually takes time and some require tough learning curves (Heck, I program in Java and the Oracle Java tutorial site warns you against doing GUIs yourself and to use a designer), but in the end you gain higher control and flexibility of your applications, which in turn creates better looking applications. Hope you use this a decent rough guide! Happy GUIing :) &lt;/p&gt;&#xA;" OwnerUserId="3581" LastActivityDate="2011-01-07T16:01:47.380" />
  <row Id="34621" PostTypeId="1" CreationDate="2011-01-07T15:58:56.327" Score="0" ViewCount="319" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/34246/can-one-get-a-solid-programming-foundation-without-going-to-college-university&quot;&gt;Can One Get a Solid Programming Foundation Without Going To College/University?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I am a student at University College London, I'm not studying computer science but I have a massive interest in computer science. I am studying Natural Sciences which means that I study Chemistry, Biology and Maths. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not necessarily asking this question for my specific case but what are you opinions?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it a viable career choice to become a programmer without a computer science degree?&lt;/p&gt;&#xA;" OwnerUserId="12640" LastActivityDate="2011-01-07T16:11:44.273" ClosedDate="2011-01-07T16:14:26.907" Title="Is it possible to become a successful programmer without studying CS?" Tags="&lt;computer-science&gt;" AnswerCount="3" CommentCount="4" />
  <row Id="34623" PostTypeId="2" ParentId="34621" CreationDate="2011-01-07T16:05:59.220" Score="4" ViewCount="" Body="&lt;p&gt;Yes, it is. I have an English degree, and I have been a professional software enginner for 20 years. Over the course of my career, I have met countless others with similarly non-traditional credentials.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tony Hoare, inventor of QuickSort, Turing Award winner, etc., studied Classical Languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is required is aptitude, curiosity and passion. &lt;/p&gt;&#xA;" OwnerUserId="6393" LastActivityDate="2011-01-07T16:05:59.220" />
  <row Id="34624" PostTypeId="2" ParentId="34621" CreationDate="2011-01-07T16:07:23.583" Score="4" ViewCount="" Body="&lt;p&gt;Yes.  Companies have roomfuls (rooms full?) of programmers who haven't studied CS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These folks may struggle with the some of fundamentals.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some of the common StackOverflow questions on complexity, floating-point numbers and similar topics arise because of a poor grip on the basics of CS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Others are autodidacts and do quite well for themselves.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The hard part is getting the first job without obvious credentials.  To get a programming job without a CS degree you simply need to a good portfolio of interesting projects in which you really did all of the real programming work.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-07T16:07:23.583" />
  <row Id="34625" PostTypeId="2" ParentId="34512" CreationDate="2011-01-07T16:11:34.423" Score="1" ViewCount="" Body="&lt;p&gt;I might be in the minority, but I read &lt;strong&gt;SELECT *&lt;/strong&gt; as &quot;select everything&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then again, I also pronounce &lt;strong&gt;SQL&lt;/strong&gt; as &quot;sequel&quot; (except in the case of PostgreSQL, of course). What can I say, I was weaned on ASP and Microsoft SQL Server.&lt;/p&gt;&#xA;" OwnerUserId="679" LastActivityDate="2011-01-07T16:11:34.423" />
  <row Id="34626" PostTypeId="2" ParentId="34621" CreationDate="2011-01-07T16:11:44.273" Score="1" ViewCount="" Body="&lt;p&gt;Why not study computer science?  If you really have that much passion for it, instead of the natural sciences you are studying, then perhaps a switch is in order.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Barring that, your simplest path into programming is likely through your degree.  There is always a need to do analysis of datasets in the sciences.  Statistical packages like R, and programming in languages like Python (to pick just two among a universe of useful items) are just two ways that you can combine your degree with computers.&lt;/p&gt;&#xA;" OwnerUserId="8668" LastActivityDate="2011-01-07T16:11:44.273" />
  <row Id="34627" PostTypeId="2" ParentId="34540" CreationDate="2011-01-07T16:15:45.130" Score="3" ViewCount="" Body="&lt;p&gt;The simplest way is to use &lt;code&gt;IEnumerable&amp;lt;Passenger&amp;gt;&lt;/code&gt;.  If you exposed a &lt;code&gt;List&amp;lt;Passenger&amp;gt;&lt;/code&gt; as your IEnumerable, you might worry about someone casting it back to a List, but personally I wouldn't.  They're breaking the contract if they do that, and you're not here to keep them from shooting themselves in the foot if they want to.  Your job is to clearly communicate what they're supposed to be doing with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to provide the ability to get a count of the passengers or to retrieve a passenger by index, then you have two options:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Expose public methods/properties: &lt;code&gt;public int PassengerCount { get; }&lt;/code&gt;, &lt;code&gt;public Passenger GetPassengerByIndex(int index)&lt;/code&gt; (and you could get rid of the IEnumerable if you wanted to)&lt;/li&gt;&#xA;&lt;li&gt;Expose a &lt;code&gt;ReadOnlyCollection&amp;lt;Passenger&amp;gt;&lt;/code&gt; instead of &lt;code&gt;IEnumerable&amp;lt;Passenger&amp;gt;&lt;/code&gt; which takes a List in its constructor.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Personally I think the first option is better if you're defining a public API because it gives you more wiggle room to change your implementation without impacting your interface.  Also, if the consumer has to call &lt;code&gt;train.Passengers.Count&lt;/code&gt;, that kind of breaks one of the OO principles (about calling methods on the result of an object's methods).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's another difference between the two options if your &lt;code&gt;Train&lt;/code&gt; class isn't immutable.  If you get a reference to &lt;code&gt;train.Passengers&lt;/code&gt; and hold onto it, and then someone gets off the train, that change isn't reflected in the reference you have.  If you use the first option then you're implying that the passenger count you get is only &quot;as of this point in time&quot;.  Therefore the first option implies mutability, but the second option implies immutability (of the passenger list, at least).&lt;/p&gt;&#xA;" OwnerUserId="5512" LastEditorUserId="5512" LastEditorDisplayName="" LastEditDate="2011-01-07T16:31:24.217" LastActivityDate="2011-01-07T16:31:24.217" CommentCount="2" />
  <row Id="34628" PostTypeId="2" ParentId="34614" CreationDate="2011-01-07T16:17:33.497" Score="2" ViewCount="" Body="&lt;p&gt;Let's talk for a minute about a brand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Brands give you two things, if your company does things correctly:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Instant recognition&lt;/li&gt;&#xA;&lt;li&gt;Consumer confidence&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For instance, some of us are more likely to buy a (insert brand here) laptop because we associate the brand with &lt;em&gt;quality&lt;/em&gt; or perhaps &lt;em&gt;excellent service&lt;/em&gt;. The whole reason that trade mark exists is to protect the name that consumers identify with positive (or, for the unfortunate) negative attributes of what a company has historically produced. The operative word in that sentence is &lt;em&gt;historically&lt;/em&gt; , and you can't get that, well, without &lt;em&gt;history&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only thing you can do in the short term to build your brand is to not fall on your face. The only thing you can do in the long term to build your brand is to continue to try and not fall on your face.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Examples of falling on your face are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Over promising the next release or version of something and failing to deliver&lt;/li&gt;&#xA;&lt;li&gt;Providing lousy service&lt;/li&gt;&#xA;&lt;li&gt;Violating the privacy of your clients (root kits are a no-no)&lt;/li&gt;&#xA;&lt;li&gt;Angering your clients with strange restrictions (DRM)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Those are things you can prevent. Also, try as hard as you can to avoid scandals where key people are concerned. When it comes to your trade mark, negative press is not good press.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think your concern at the moment should be strategic &lt;em&gt;marketing&lt;/em&gt;, after ensuring that you have the capacity and ability to deliver what you promise in a way that pleases your customers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can't build a brand overnight, unless you are a recording artist that fades into history the next year.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2011-01-07T16:17:33.497" />
  <row Id="34629" PostTypeId="2" ParentId="34609" CreationDate="2011-01-07T16:19:19.103" Score="1" ViewCount="" Body="&lt;p&gt;Forgetting to run the unit tests before committing the code.  And getting publicly flogged for breaking the build.&lt;/p&gt;&#xA;" OwnerUserId="3124" LastActivityDate="2011-01-07T16:19:19.103" CommunityOwnedDate="2011-01-07T16:19:28.400" />
  <row Id="34630" PostTypeId="1" CreationDate="2011-01-07T16:21:36.503" Score="9" ViewCount="217" Body="&lt;p&gt;I'm pretty new to doing contract work and finally landed a decent paying project. The guy actually offered to put down a deposit and I'm just wondering what percentage I should consider asking for. I was thinking around 25% since its not a terribly large project (only about 20 hours).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I can't use PayPal (have had a terrible experience with them freezing funds for no good reason) so I'm wondering if anyone can suggest other methods for the client to send the deposit / payment. I want to make it as easy as possible for them.. thanks for any advice&lt;/p&gt;&#xA;" OwnerUserId="10087" LastActivityDate="2011-01-07T16:42:18.813" Title="Contract Programming - Deposit % and Payment Methods? Any advice is appreciated" Tags="&lt;freelance&gt;&lt;contract&gt;" AnswerCount="2" FavoriteCount="2" />
  <row Id="34631" PostTypeId="2" ParentId="34577" CreationDate="2011-01-07T16:24:44.163" Score="1" ViewCount="" Body="&lt;p&gt;This is a &lt;strong&gt;Huge&lt;/strong&gt; subject.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, there are some things you can do to make it manageable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The server has shared state.  That means multiple readers and multiple writers.  You have many, many choices for handling this.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;A database.   Most databases include locks to prevent concurrent writes.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Locking.  You can use OS-level locking on the filesystem to allow concurrent writes.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Transaction serialization.  You can queue update requests into some kind of transaction serializer.  Often, the queuing devolves to locking a file, but some message queues don't involve file system locks.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Once you have a way to write shared state, you now need a way to handle multiple, concurrent client connections.  You can use processes or threads or some combination of the two.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You often want to have authentication (who a user is).  You often want to have authorization (what that user is allowed to do.)  There are several ways to handle this.  OS's do it.  Databases do it.  Or you can use an LDAP server to maintain this information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You may want to have a &quot;session&quot; where a user connects, is authenticated, and remains connected until their session ends.  TCP/IP can help you handle this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the great things that's happened in the last few years is the evolution of a standardized architecture for multi-client applications.  It's sometimes called The World Wide Web.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often, it works like this.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;You have a database.  MySQL or something similar.  This handles persistence, locking, multiple writers and multiple readers for you.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You have a web server.  Apache HTTPD or something similar.  This handles multiple concurrent client connections for you.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You have a web application framework.  This can handle authentication, authorization and session management for you, saving you from having to write all that.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You write your application as web-based transactions using the web framework and the various servers.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-07T16:24:44.163" />
  <row Id="34632" PostTypeId="2" ParentId="34547" CreationDate="2011-01-07T16:31:24.433" Score="2" ViewCount="" Body="&lt;p&gt;Ever heard of &lt;a href=&quot;http://en.wikipedia.org/wiki/YAGNI&quot; rel=&quot;nofollow&quot;&gt;YAGNI&lt;/a&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You could just as well generalize the solution to work with matrices of floats. Or you could remove the constraint of uniqueness. What is the point? Unless there is actual reason to believe this requirement will come up anyway, it is just a waste of time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When drawing the line between generalizing and keeping things simple, the right place is not compromising on keeping things simple. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writing good code, i.e. maintainable, flexible, extensible and simple, is not achieved by generalizing individual components to suit a multitude of problems that they actually don't need to solve, but by properly structuring programs and ensuring very low coupling by a healthy use of abstraction and encapsulation.&lt;br&gt;&#xA;To illustrate that: It doesn't really matter, whether your algorithm makes the assumption, that the matrix is NxN or not, because to be honest, it is not much code to rewrite. It is far more important, that the rest of your code doesn't break, because that assumption no longer holds and you need to rewrite that bit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I had to go to an armed melee fight, I'd rather have a club, than a swiss army knife.&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2011-01-07T16:31:24.433" CommentCount="3" />
  <row Id="34633" PostTypeId="2" ParentId="34630" CreationDate="2011-01-07T16:31:54.937" Score="13" ViewCount="" Body="&lt;p&gt;When freelancing, I typically did 33%, 33%, 24% 10%, with the following milestones:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;33% due when the client accepted the proposal&lt;/li&gt;&#xA;&lt;li&gt;33% due when a working concept was delivered&lt;/li&gt;&#xA;&lt;li&gt;24% due when a production concept was delivered&lt;/li&gt;&#xA;&lt;li&gt;10% due 30 days after the delivery of a production concept&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;This gave me cash to start, cash when I finished the bulk of the work, cash after I polished the work to the point that it was ready for use and let the employer hold a bit back as an assurance that I'd stick around to fix bugs and issues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is &lt;em&gt;very&lt;/em&gt; important that your agreement (hopefully a contract) stipulates &lt;em&gt;exact&lt;/em&gt; milestones, and also covers the cost of work done outside of the scope of work. State an hourly rate for changes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It might be worth the $200 it would cost you to go over this with an attorney in your area, to produce something legally binding. You might also look into escrow services that allow for milestone payments.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The above scale should ensure that you get compensated not only in milestones, but also according to the volume of work that you do, while establishing a bit of 'trust' on both sides.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2011-01-07T16:31:54.937" CommentCount="2" />
  <row Id="34634" PostTypeId="2" ParentId="34512" CreationDate="2011-01-07T16:35:12.000" Score="1" ViewCount="" Body="&lt;p&gt;I live in the USA, in the Pacific Northwest, and I never hear Es-Que-El here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I initially started out saying Es-Que-El, and every time I heard someone say Sequel it hurt my brain, but since most (if not all) my peers were saying Sequel, including the guys in our database admin shop, I gave up and went with the flow.  Nowadays, it is hearing Es-Que-El that hurts my brain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, since we use the Microsoft SQL Server product, and apparently nobody says &quot;Es-Que-El Server&quot; (sounds horrible) but all one hears is &quot;Sequel Server&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And in our organization, we say &quot;SELECT Star&quot; for SELECT *.&lt;/p&gt;&#xA;" OwnerUserId="1351" LastActivityDate="2011-01-07T16:35:12.000" />
  <row Id="34635" PostTypeId="2" ParentId="34630" CreationDate="2011-01-07T16:42:18.813" Score="-1" ViewCount="" Body="&lt;p&gt;Elance.com has a decent invoicing/payment system for freelance developers. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It worked well for me on a couple of projects, but you don't get something for nothing. They do take a small % of the project for going through them.&lt;/p&gt;&#xA;" OwnerUserId="287" LastActivityDate="2011-01-07T16:42:18.813" CommentCount="2" />
  <row Id="34636" PostTypeId="2" ParentId="34512" CreationDate="2011-01-07T16:56:06.163" Score="0" ViewCount="" Body="&lt;p&gt;There is a contingent of people (they tend, in my experience to have long grey beards) who refer to the &quot;*&quot; character as a &quot;splat&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They also tend to call &quot;!&quot; &quot;bang&quot; and &quot;#&quot; &quot;sharp&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When working with the greybeard I used to work with, hearing &quot;select splat from&quot; wasn't uncommon.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2011-01-07T16:56:06.163" CommentCount="1" />
  <row Id="34637" PostTypeId="2" ParentId="34512" CreationDate="2011-01-07T16:56:57.433" Score="3" ViewCount="" Body="&lt;p&gt;At one time I did NC installations over a large number of computers and operating systems. One of the things that I learned is to feel out the local buzz words and speak to the shop in their local jargon. i.e. A Univac &quot;file&quot; is similar to a PC &quot;folder&quot;.&lt;BR&gt;&#xA;If you're speaking to the masses then the most used is the best.&lt;BR&gt;&#xA;As an example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;A Poem For Computer Geeks &#xA;&amp;lt; &amp;gt; ! * ' ' #&#xA;^ &quot; ` $ $ -&#xA;! * = @ $ _&#xA;% * &amp;lt; &amp;gt; ~ #4&#xA;&amp;amp; [ ] . . /&#xA;| { , , SYSTEM HALTED&#xA;&#xA;A Translation for the Mundanes&#xA;Waka waka bang splat tick tick hash&#xA;Caret quote back-tick dollar dollar dash&#xA;Bang splat equals at dollar underscore&#xA;Percent splat waka waka tilde number four&#xA;Ampersand bracket bracket dot dot slash&#xA;Vertical bar curly brace comma comma crash&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This is a good example of how the buzz words get going and change over time. And yes I ran into a bunch of them when I was doing installations.&lt;BR&gt;&#xA;(Besides that it is a poem with both meter and rhyme.)&lt;/p&gt;&#xA;" OwnerUserId="2505" LastActivityDate="2011-01-07T16:56:57.433" CommentCount="2" />
  <row Id="34638" PostTypeId="2" ParentId="34512" CreationDate="2011-01-07T16:58:02.377" Score="1" ViewCount="" Body="&lt;p&gt;I say &quot;SELECT star&quot; and &quot;SEQUEL&quot;. &lt;/p&gt;&#xA;" OwnerUserId="12620" LastActivityDate="2011-01-07T16:58:02.377" />
  <row Id="34639" PostTypeId="1" CreationDate="2011-01-07T17:01:15.933" Score="0" ViewCount="89" Body="&lt;p&gt;When a stable JDK 7 will come out, how much time do you think it will take until you are confortable with it and some developers mature in this technology (given also the new situation that developed with Oracle)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I ask this having strugeled a bit when switching from Java 2 to Java 5 and the features of Java 7 add a bunch.&lt;/p&gt;&#xA;" OwnerUserId="12648" LastActivityDate="2011-01-07T17:14:02.030" ClosedDate="2011-01-07T17:20:29.497" Title="How much time do you think you will need to be proficient in Java 7?" Tags="&lt;learning&gt;&lt;java&gt;&lt;professional-development&gt;" AnswerCount="1" CommentCount="2" />
  <row Id="34640" PostTypeId="2" ParentId="34584" CreationDate="2011-01-07T17:04:47.290" Score="2" ViewCount="" Body="&lt;p&gt;Here is some version of my canned answer that I give to the ultra non-technical person:  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is an attempt to create a representation of reality on the computer.  There's a lot of tools and devices that exist that do this already -- think about how a spreadsheet makes it easier for us to represent accounting or statistics, or how a Powerpoint presentation allows us to store and display our presentations.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes we need to build custom representations of reality into new or existing applications that reflect our business processes.  There's lots of ways to program, and one of the most common ways to program is object oriented programming, where the code we build is specifically designed to replicate the concepts of reality.  The &quot;things&quot; in reality have attributes and behaviors.  For instance, a human being often has arms and legs, hair color, ethnicity, and can often Speak and Walk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Speaking and Walking can come in different varieties, such as what language one is speaking, or the speed or manner at which one is walking.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Human Beings often have interactions with other types of &quot;things,&quot; whether they be animals, other humans, other living organisms, or inanimate objects.  There are themes in reality that often need a way to be represented, such as interactions between &quot;things,&quot; categorization of things, etc.  Consider business processes that go on in our organization.  There exists very complicated &quot;business logic&quot; that needs to get represented in the software that our organization uses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Object Oriented programming provides a means to accurately represent these &quot;real world concepts&quot; and &quot;business logic&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;--&gt; This statement is usually sufficient to stave off their curiosity (or perhaps bores them to tears), but if they have more questions, the above statement (I believe) lays a decent foundation for where the conversation can go.  I don't really think that the non-technical person is concerned too much with technical terminology such as &quot;Abstraction,&quot; &quot;Composition,&quot; &quot;Polymorphism,&quot; etc, but if they are, the language I used in the canned statement allows me to pull examples based on it.&lt;/p&gt;&#xA;" OwnerUserId="6425" LastActivityDate="2011-01-07T17:04:47.290" />
  <row Id="34641" PostTypeId="2" ParentId="34559" CreationDate="2011-01-07T17:10:38.643" Score="3" ViewCount="" Body="&lt;p&gt;I think that's best left to the version control system.&lt;/p&gt;&#xA;" OwnerUserId="12620" LastActivityDate="2011-01-07T17:10:38.643" />
  <row Id="34642" PostTypeId="2" ParentId="34639" CreationDate="2011-01-07T17:14:02.030" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;How long is a piece of string?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It all depends on how much experience you have with the new concepts in advance of their release and whether or not you need to use them.&lt;/p&gt;&#xA;" OwnerUserId="7167" LastActivityDate="2011-01-07T17:14:02.030" />
  <row Id="34643" PostTypeId="2" ParentId="34122" CreationDate="2011-01-07T17:17:01.340" Score="0" ViewCount="" Body="&lt;p&gt;For an industrial programmer, $/hr saved (or earned) is, in my opinion, the only meaningful business metric.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Software types are notorious for having a gaming mindset (computer games, pen and paper, puzzles, etc). &lt;em&gt;Don't&lt;/em&gt; incentive behavior that is not aligned with the business needs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;E.g., if you consider kLOC/week to be the key indicator, you're going to observe that for the same feature, you're getting many more kLOC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int foo() {&#xA;   return blah;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Can well be turned into:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int&#xA;foo()&#xA;{&#xA;   return &#xA;      blah;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;For the same feature. That's a 2x LOC increase. If you rank my productivity primarily based on LOC, you better believe I'm going to evaluate whether I want to get that productivity-based bonus/promotion.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2011-01-07T17:17:01.340" CommentCount="1" />
  <row Id="34644" PostTypeId="1" CreationDate="2008-08-07T18:32:58.190" Score="232" ViewCount="2659" Body="&lt;p&gt;I am looking for a breakdown of some really good RSS feeds.  I have quite a few subscriptions with Google Reader but lack many very good development/programming feeds. I would love to see some lists here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Will Stack Overflow have an RSS feed?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I found the answer to the Stack Overflow RSS feed question: &quot;&lt;a href=&quot;http://stackoverflow.uservoice.com/pages/general/suggestions/14355&quot; rel=&quot;nofollow&quot;&gt;Have an RSS feed of recent questions&lt;/a&gt;&quot; (on UserVoice).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5911" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" ClosedDate="2011-01-07T17:59:29.430" Title="What are the best RSS feeds for programmers/developers?" Tags="&lt;language-agnostic&gt;&lt;resources&gt;&lt;software&gt;" AnswerCount="61" CommentCount="3" FavoriteCount="25" />
  <row Id="34645" PostTypeId="2" ParentId="34644" CreationDate="2008-08-07T18:35:50.913" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blog.stackoverflow.com/&quot; rel=&quot;nofollow&quot;&gt;Stack Overflow&lt;/a&gt; - Generic programming&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://boagworld.com/&quot; rel=&quot;nofollow&quot;&gt;Boagworld&lt;/a&gt; - Web design and Development&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34646" PostTypeId="2" ParentId="34644" CreationDate="2008-08-07T18:36:35.470" Score="3" ViewCount="" Body="&lt;P&gt;&lt;A href=&quot;http://www.reddit.com/r/programming/.rss&quot; rel=&quot;nofollow&quot;&gt;Proggit&lt;/A&gt; without a doubt. It's very broadening, as people who post are often interested in functional and research languages in addition to mainstream coding.&lt;/P&gt;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34647" PostTypeId="2" ParentId="34644" CreationDate="2008-08-07T18:36:58.493" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://feeds.feedburner.com/codinghorror&quot; rel=&quot;nofollow&quot;&gt;Coding Horror&lt;/a&gt;&lt;/p&gt;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34648" PostTypeId="2" ParentId="34644" CreationDate="2008-08-07T18:40:04.493" Score="0" ViewCount="" Body="&lt;p&gt;I like &lt;a href=&quot;http://anarchaia.org/&quot; rel=&quot;nofollow&quot;&gt;Anarchaia,&lt;/a&gt; which ranges widely. My other two favorites are Coding Horror and Joel on Software, but since you're here I assume you read those already, right?&lt;/p&gt;" OwnerUserId="13042" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34649" PostTypeId="2" ParentId="34644" CreationDate="2008-08-07T18:41:50.730" Score="6" ViewCount="" Body="&lt;ol&gt;&#xD;&#xA;&lt;li&gt;&lt;a href=&quot;http://ajaxian.com/&quot; rel=&quot;nofollow&quot;&gt;Ajaxian&lt;/a&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/oldnewthing/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Raymond Chen&lt;/a&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;a href=&quot;http://steve-yegge.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;Steve Yegge&lt;/a&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.joelonsoftware.com/&quot; rel=&quot;nofollow&quot;&gt;Joel&lt;/a&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.hanselman.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Scott Hanselman&lt;/a&gt;&lt;/li&gt;&#xD;&#xA;&lt;/ol&gt;&#xD;&#xA;&#xD;&#xA;&lt;p&gt;amongst others that have already been listed on this thread...&lt;/p&gt;" OwnerUserId="1882" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34650" PostTypeId="2" ParentId="34644" CreationDate="2008-08-07T18:44:46.997" Score="4" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/oldnewthing/&quot; rel=&quot;nofollow&quot;&gt;The Old New Thing&lt;/a&gt;&lt;/p&gt;&#xD;&#xA;&#xD;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/&quot; rel=&quot;nofollow&quot;&gt;Joel on Software&lt;/a&gt;&lt;/p&gt;&#xD;&#xA;&#xD;&#xA;&lt;p&gt;&lt;a href=&quot;http://secretgeek.net&quot; rel=&quot;nofollow&quot;&gt;secretGeek&lt;/a&gt;&lt;/p&gt;&#xD;&#xA;&#xD;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Coding Horror&lt;/a&gt;&lt;/p&gt;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34651" PostTypeId="2" ParentId="34644" CreationDate="2008-08-07T18:47:55.993" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.professionalvisualstudio.com/blog/&quot; rel=&quot;nofollow&quot;&gt;http://www.professionalvisualstudio.com/blog/&lt;/a&gt;&lt;br&gt;&#xD;&#xA;&lt;a href=&quot;http://visualstudiohacks.com/&quot; rel=&quot;nofollow&quot;&gt;http://visualstudiohacks.com/&lt;/a&gt;&lt;/p&gt;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34652" PostTypeId="2" ParentId="34644" CreationDate="2008-08-07T18:54:08.973" Score="11" ViewCount="" Body="&lt;p&gt;It kind of depends on what you work on (desktop applications, web applications, .NET, etc.). Some of my favorites are (the RSS links are below):&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://ajaxian.com/index.xml&quot; rel=&quot;nofollow&quot;&gt;Ajaxian&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/codinghorror&quot; rel=&quot;nofollow&quot;&gt;Coding Horror&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.digg.com/rss/indexprogramming.xml&quot; rel=&quot;nofollow&quot;&gt;Digg's Programming Feed&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.joelonsoftware.com/rss.xml&quot; rel=&quot;nofollow&quot;&gt;Joel on Software&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://particletree.com/rss/&quot; rel=&quot;nofollow&quot;&gt;ParticleTree&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://particletree.com/rss/&quot; rel=&quot;nofollow&quot;&gt;Six Revisions&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/Webappers&quot; rel=&quot;nofollow&quot;&gt;WebAppers&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.smashingmagazine.com/wp-rss.php&quot; rel=&quot;nofollow&quot;&gt;Smashing Magazine&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/37signals/beMH&quot; rel=&quot;nofollow&quot;&gt;Signal vs. Noise&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34653" PostTypeId="2" ParentId="34644" CreationDate="2008-08-07T18:56:33.400" Score="137" ViewCount="" Body="&lt;p&gt;Here are my feeds from Google Reader (10 and out added from other answers)&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.joelonsoftware.com/rss.xml&quot; rel=&quot;nofollow&quot;&gt;Joel on Software&lt;/a&gt; (&lt;a href=&quot;http://en.wikipedia.org/wiki/Joel_Spolsky&quot; rel=&quot;nofollow&quot;&gt;Joel Spolsky&lt;/a&gt;, software engineer, writer, co-founder of Fog Creek Software)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/codinghorror&quot; rel=&quot;nofollow&quot;&gt;Coding Horror&lt;/a&gt; (&lt;a href=&quot;http://www.codinghorror.com/blog/archives/000021.html&quot; rel=&quot;nofollow&quot;&gt;Jeff Atwood&lt;/a&gt;, developer, writer, Stack Overflow &lt;a href=&quot;http://stackoverflow.com/about&quot;&gt;team member&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://herbsutter.wordpress.com/feed&quot; rel=&quot;nofollow&quot;&gt;Sutter's Mill&lt;/a&gt; (&lt;a href=&quot;http://en.wikipedia.org/wiki/Herb_Sutter&quot; rel=&quot;nofollow&quot;&gt;Herb Sutter&lt;/a&gt;, ISO C++ committee chair, MS software architect)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://steve-yegge.blogspot.com/feeds/posts/default&quot; rel=&quot;nofollow&quot;&gt;Stevey's Blog Rants&lt;/a&gt; (Google employee, creator of &lt;a href=&quot;http://en.wikipedia.org/wiki/Wyvern_%28Online_Game%29&quot; rel=&quot;nofollow&quot;&gt;Wyvern&lt;/a&gt;, great blogger)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://thunk.org/tytso/blog/feed&quot; rel=&quot;nofollow&quot;&gt;Thoughts by Ted&lt;/a&gt; (&lt;a href=&quot;http://en.wikipedia.org/wiki/Theodore_Tso&quot; rel=&quot;nofollow&quot;&gt;Ted Tso&lt;/a&gt;, IBM employee, Linux kernel developer, file systems guru)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.pragprog.com/feed/global&quot; rel=&quot;nofollow&quot;&gt;Pragmatic Bookshelf&lt;/a&gt; (Authors of &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Pragmatic_Programmer&quot; rel=&quot;nofollow&quot;&gt;The Pragmatic Programmer&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://se-radio.net/rss&quot; rel=&quot;nofollow&quot;&gt;Software Engineering Radio&lt;/a&gt; (Not really a reading feed, but great podcast from Germany)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://developers.sun.com/rss/java.xml&quot; rel=&quot;nofollow&quot;&gt;Java Technology Headlines&lt;/a&gt; (Java news)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://commandline.org.uk/feeds/full&quot; rel=&quot;nofollow&quot;&gt;commandline.org.uk&lt;/a&gt; (GNU/Linux, Python, techno-ethics and best practices) &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.schneier.com/blog/index.rdf&quot; rel=&quot;nofollow&quot;&gt;Schneier on Security&lt;/a&gt; (&lt;a href=&quot;http://en.wikipedia.org/wiki/Bruce_schneier&quot; rel=&quot;nofollow&quot;&gt;Bruce Schneier&lt;/a&gt;, cryptographer and computer security specialist)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/10xSoftwareDevelopment&quot; rel=&quot;nofollow&quot;&gt;10x Software Development&lt;/a&gt; (&lt;a href=&quot;http://en.wikipedia.org/wiki/Steve_McConnell&quot; rel=&quot;nofollow&quot;&gt;Steve McConnell&lt;/a&gt;, the author of &lt;a href=&quot;http://en.wikipedia.org/wiki/Code_Complete&quot; rel=&quot;nofollow&quot;&gt;Code Complete&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.artima.com/weblogs/feeds/bloggers/beckel.rss&quot; rel=&quot;nofollow&quot;&gt;Computing Thoughts&lt;/a&gt; (&lt;a href=&quot;http://en.wikipedia.org/wiki/Bruce_Eckel&quot; rel=&quot;nofollow&quot;&gt;Bruce Eckel&lt;/a&gt;, author, ISO C++ committee member)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.aaronsw.com/2002/feeds/pgessays.rss&quot; rel=&quot;nofollow&quot;&gt;Paul Graham's Essays&lt;/a&gt; (&lt;a href=&quot;http://en.wikipedia.org/wiki/Paul_Graham&quot; rel=&quot;nofollow&quot;&gt;Paul Graham&lt;/a&gt;, Lisp programmer, VC, author)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://digg.com/rss/indexprogramming.xml&quot; rel=&quot;nofollow&quot;&gt;Digg:Programming Feed&lt;/a&gt; (Digg Programming)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/particletree&quot; rel=&quot;nofollow&quot;&gt;Particletree&lt;/a&gt; (Web development)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/SixRevisions&quot; rel=&quot;nofollow&quot;&gt;Six Revisions&lt;/a&gt; (Web development)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/37signals/beMH&quot; rel=&quot;nofollow&quot;&gt;Signal vs. Noise&lt;/a&gt; (Design &amp;amp; Usability blog)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.reddit.com/r/programming/.rss&quot; rel=&quot;nofollow&quot;&gt;Proggit&lt;/a&gt; (Reddit programming)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/b/ericlippert/rss.aspx&quot; rel=&quot;nofollow&quot;&gt;Eric Lippert&lt;/a&gt; (senior developer on the C# compiler team)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="16082" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34654" PostTypeId="2" ParentId="34644" CreationDate="2008-08-07T18:58:37.983" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.dzone.com&quot; rel=&quot;nofollow&quot;&gt;DZone&lt;/a&gt; is an amazing source of good weblogs (well, there are many useless links there, but that's where I met &lt;a href=&quot;http://www.codinghorror.com&quot; rel=&quot;nofollow&quot;&gt;Jeff&lt;/a&gt; and &lt;a href=&quot;http://www.joelonsoftware.com&quot; rel=&quot;nofollow&quot;&gt;Joel&lt;/a&gt;, so you should give it a try).&lt;/p&gt;" OwnerUserId="15167" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34655" PostTypeId="2" ParentId="34644" CreationDate="2008-08-07T19:30:21.117" Score="6" ViewCount="" Body="&lt;p&gt;As others have said:&lt;/p&gt;&#xD;&#xA;&#xD;&#xA;&lt;ul&gt;&#xD;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Coding Horror&lt;/a&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;a href=&quot;http://steve-yegge.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;Steve Yegge&lt;/a&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.joelonsoftware.com/&quot; rel=&quot;nofollow&quot;&gt;Joel On Software&lt;/a&gt;&lt;/li&gt;&#xD;&#xA;&lt;/ul&gt;&#xD;&#xA;&#xD;&#xA;&lt;p&gt;But every programmer should go through &lt;a href=&quot;http://www.paulgraham.com/articles.html&quot; rel=&quot;nofollow&quot;&gt;Paul Graham's&lt;/a&gt; writings.  Also, &lt;a href=&quot;http://www.ericsink.com/&quot; rel=&quot;nofollow&quot;&gt;Eric Sink&lt;/a&gt; usually has very good things to say as well, and we can't forget the &lt;a href=&quot;http://blog.stackoverflow.com/&quot; rel=&quot;nofollow&quot;&gt;stack&lt;strong&gt;overflow&lt;/strong&gt;&lt;/a&gt; podcast.&lt;/p&gt;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34656" PostTypeId="2" ParentId="34644" CreationDate="2008-08-07T20:05:17.553" Score="17" ViewCount="" Body="&lt;p&gt;Here's my Reading List:&lt;/p&gt;&#xD;&#xA;&#xD;&#xA;&lt;ol&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://forums.construx.com/blogs/stevemcc/default.aspx&quot; rel=&quot;nofollow&quot;&gt;10x Software Development&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.artima.com/weblogs/index.jsp?blogger=beckel&quot; rel=&quot;nofollow&quot;&gt;Bruce Eckel's Weblog&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.charlespetzold.com/&quot; rel=&quot;nofollow&quot;&gt;Charles Petzold&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.25hoursaday.com/weblog/&quot; rel=&quot;nofollow&quot;&gt;Dare Obasanjo aka Carnage4Life&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.dilbert.com/&quot; rel=&quot;nofollow&quot;&gt;Dilbert&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.pluralsight.com/community/blogs/dbox/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Don Box's Spoutlet&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://software.ericsink.com/&quot; rel=&quot;nofollow&quot;&gt;Eric.Weblog()&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://blog.guykawasaki.com/&quot; rel=&quot;nofollow&quot;&gt;How to Change the World&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.msdnmagazine.com/&quot; rel=&quot;nofollow&quot;&gt;MSDN Magazine RSS Feed:MyMS_Feed&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://my-symbian.com/&quot; rel=&quot;nofollow&quot;&gt;My-Symbian.com&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.paulgraham.com/&quot; rel=&quot;nofollow&quot;&gt;Paul Graham:Essays&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.yosefk.com/blog&quot; rel=&quot;nofollow&quot;&gt;Proper Fixation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/windowsmobile/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Windows Mobile Team Blog&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.schneier.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Schneier on Security&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://scobleizer.com/&quot; rel=&quot;nofollow&quot;&gt;Scobleizer -- Tech geek blogger&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://secretgeek.net/index.asp&quot; rel=&quot;nofollow&quot;&gt;secretGeek&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://sethgodin.typepad.com/seths_blog/&quot; rel=&quot;nofollow&quot;&gt;Seth's Blog&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.startupdunia.com/&quot; rel=&quot;nofollow&quot;&gt;Startup Dunia - Indian startups and Entrepreneurship&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://steve-yegge.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;Stevey's Blog Rants&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://thepiratesdilemma.com/&quot; rel=&quot;nofollow&quot;&gt;The Pirate's Dilemma&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&#xD;&#xA;&lt;/ol&gt;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" CommentCount="1" />
  <row Id="34657" PostTypeId="2" ParentId="34644" CreationDate="2008-08-07T20:08:23.257" Score="6" ViewCount="" Body="&lt;p&gt;Heres My list (C# .Net Centric)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A Continuous Learner's Weblog &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ayende @ Rahien&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Billy McCafferty&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Brad Abrams&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Coding Horror&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Craig Shoemaker&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eric Kemp&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eric.Weblog()&lt;/p&gt;&#xA;&#xA;&lt;p&gt;James Gregory&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Jean-Paul S. Boodhoo's Blog&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Joel on Software&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Jon Galloway&lt;/p&gt;&#xA;&#xA;&lt;p&gt;K. Scott Allen&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Paul Graham: Essays&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rick Strahl's Web Log&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Rob Conery&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ryan Lanciaux&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ScottGu's Blog&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Skrentablog&lt;/p&gt;&#xA;&#xA;&lt;p&gt;you've been HAACKED&lt;/p&gt;&#xA;&#xA;&lt;p&gt;StevenHarman.net&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;hr /&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Heres my google reader export&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;outline title=&quot;Work&quot; text=&quot;Work&quot;&amp;gt;&#xA;            &amp;lt;outline text=&quot;A Continuous Learner's Weblog&quot;&#xA;                title=&quot;A Continuous Learner's Weblog&quot; type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://spietrek.blogspot.com/feeds/posts/default&quot; htmlUrl=&quot;http://spietrek.blogspot.com/&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;Ayende @ Rahien&quot; title=&quot;Ayende @ Rahien&quot;&#xA;                type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://feeds.feedburner.com/AyendeRahien&quot; htmlUrl=&quot;http://ayende.com/Blog/Default.aspx&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;Billy McCafferty&quot; title=&quot;Billy McCafferty&quot;&#xA;                type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://devlicio.us/blogs/billy_mccafferty/rss.aspx&quot; htmlUrl=&quot;http://devlicio.us/blogs/billy_mccafferty/default.aspx&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;Brad Abrams&quot; title=&quot;Brad Abrams&quot; type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://blogs.msdn.com/brada/atom.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/brada/default.aspx&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;Coding Horror&quot; title=&quot;Coding Horror&quot;&#xA;                type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://feeds.feedburner.com/codinghorror&quot; htmlUrl=&quot;http://www.codinghorror.com/blog/&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;Craig Shoemaker&quot; title=&quot;Craig Shoemaker&quot;&#xA;                type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://feeds.feedburner.com/PolymorphicPodcastBlog&quot; htmlUrl=&quot;http://weblogs.asp.net/craigshoemaker/default.aspx&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;Eric Kemp&quot; title=&quot;Eric Kemp&quot; type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://feeds.feedburner.com/thelonio&quot; htmlUrl=&quot;http://monk.thelonio.us/&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;Eric.Weblog()&quot; title=&quot;Eric.Weblog()&quot;&#xA;                type=&quot;rss&quot; xmlUrl=&quot;http://www.ericsink.com/rss.xml&quot; htmlUrl=&quot;http://software.ericsink.com/&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;James Gregory&quot; title=&quot;James Gregory&quot;&#xA;                type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://feeds.feedburner.com/JamesGregory&quot; htmlUrl=&quot;http://blog.jagregory.com&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;Jean-Paul S. Boodhoo's Blog&quot;&#xA;                title=&quot;Jean-Paul S. Boodhoo's Blog&quot; type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://feeds.feedburner.com/JPBoodhoo&quot; htmlUrl=&quot;http://blog.jpboodhoo.com/&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;Joel on Software&quot; title=&quot;Joel on Software&quot;&#xA;                type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://www.joelonsoftware.com/rss.xml&quot; htmlUrl=&quot;http://www.joelonsoftware.com&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;Jon Galloway&quot; title=&quot;Jon Galloway&quot; type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://feeds.feedburner.com/jongalloway&quot; htmlUrl=&quot;http://weblogs.asp.net/jgalloway/default.aspx&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;K. Scott Allen&quot; title=&quot;K. Scott Allen&quot;&#xA;                type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://odetocode.com/Blogs/scott/atom.aspx&quot; htmlUrl=&quot;http://odetocode.com/Blogs/scott/default.aspx&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;Paul Graham: Essays&quot;&#xA;                title=&quot;Paul Graham: Essays&quot; type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://www.aaronsw.com/2002/feeds/pgessays.rss&quot; htmlUrl=&quot;http://www.paulgraham.com/&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;Rick Strahl's Web Log&quot;&#xA;                title=&quot;Rick Strahl's Web Log&quot; type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://feeds.feedburner.com/rickstrahl&quot; htmlUrl=&quot;http://www.west-wind.com/weblog/&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;Rob Conery&quot; title=&quot;Rob Conery&quot; type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://blog.wekeroad.com/feed/atom/&quot; htmlUrl=&quot;http://blog.wekeroad.com/&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;Ryan Lanciaux&quot; title=&quot;Ryan Lanciaux&quot;&#xA;                type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://feeds.feedburner.com/RyanLanciaux?format=xml&quot; htmlUrl=&quot;http://frickinsweet.com/ryanlanciaux.com/&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;ScottGu's Blog&quot; title=&quot;ScottGu's Blog&quot;&#xA;                type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://weblogs.asp.net/scottgu/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/scottgu/default.aspx&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;Skrentablog&quot; title=&quot;Skrentablog&quot; type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://www.skrenta.com/atom.xml&quot; htmlUrl=&quot;http://www.skrenta.com/&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;StevenHarman.net&quot; title=&quot;StevenHarman.net&quot;&#xA;                type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://feeds.stevenharman.net/stevenharman&quot; htmlUrl=&quot;http://stevenharman.net/blog/Default.aspx&quot;/&amp;gt;&#xA;            &amp;lt;outline text=&quot;you've been HAACKED&quot;&#xA;                title=&quot;you've been HAACKED&quot; type=&quot;rss&quot;&#xA;                xmlUrl=&quot;http://feeds.haacked.com/haacked/&quot; htmlUrl=&quot;http://haacked.com/Default.aspx&quot;/&amp;gt;&#xA;        &amp;lt;/outline&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34658" PostTypeId="2" ParentId="34644" CreationDate="2008-08-07T20:15:41.337" Score="6" ViewCount="" Body="&lt;p&gt;None, that way you're more productive.&lt;/p&gt;" OwnerUserId="1486" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" CommentCount="2" />
  <row Id="34659" PostTypeId="2" ParentId="34644" CreationDate="2008-08-08T20:58:42.663" Score="4" ViewCount="" Body="&lt;p&gt;To the excellent feeds above I would also add:&lt;/p&gt;&#xD;&#xA;&#xD;&#xA;&lt;ol&gt;&#xD;&#xA;&lt;li&gt;&lt;a href=&quot;http://brucefwebster.com/feed/&quot; rel=&quot;nofollow&quot;&gt;Bruce F. Webster&lt;/a&gt; - More&#xD;&#xA;    process/methodology oriented but&#xD;&#xA;    very good.&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;a href=&quot;http://syndication.thedailywtf.com/TheDailyWtf&quot; rel=&quot;nofollow&quot;&gt;TheDailyWTF&lt;/a&gt; - What&#xD;&#xA;    not to do.&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.jroller.com/scolebourne/feed/entries/rss?cat=%2FJava&quot; rel=&quot;nofollow&quot;&gt;Stephen Colebourne's Weblog&lt;/a&gt; - Especially good for Java 7 / closures.&lt;/li&gt;&#xD;&#xA;&lt;li&gt;&lt;a href=&quot;http:///stuffthathappens.com/blog/feed/atom/&quot; rel=&quot;nofollow&quot;&gt;It's Just a Bunch of Stuff that Happens&lt;/a&gt; - Hilarious.&lt;/li&gt;&#xD;&#xA;&lt;/ol&gt;" OwnerUserId="7399" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" CommentCount="1" />
  <row Id="34660" PostTypeId="2" ParentId="34644" CreationDate="2008-08-08T23:22:23.683" Score="55" ViewCount="" Body="&lt;p&gt;Here's the output of the &quot;Technical&quot; section of my RSS reader. They're not all programming related, some of them are things like Seth Godin's blog who's a marketing guy but they give you some fascinating insights into areas which either simply provide inspiration or help you understand related areas of the job. There is admittedly a heavy Microsoft/.NET/C# bias:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.alistapart.com/&quot; rel=&quot;nofollow&quot;&gt;A List Apart&lt;/a&gt; * - Articles written by a variety of people about all aspects of &lt;strong&gt;web design&lt;/strong&gt; from programming to design.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://blogs.zdnet.com/microsoft/&quot; rel=&quot;nofollow&quot;&gt;All about Microsoft&lt;/a&gt; - A blog by the industry watcher Mary Jo Foley about her &lt;strong&gt;observations on Microsoft&lt;/strong&gt; and what they're up to. The comments make for infuriating reading but the observations are sometimes interesting and insightful as to the possible future of certain technologies.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://amix.dk/blog/&quot; rel=&quot;nofollow&quot;&gt;Amix&lt;/a&gt; - A software developer who's blogged about a couple of projects he's worked on. Has some good &lt;strong&gt;Python snippets&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://annevankesteren.nl/&quot; rel=&quot;nofollow&quot;&gt;Anne's Weblog&lt;/a&gt; - Anne van Kesteren is a developer on Opera (I think) and blogs a fair bit about &lt;strong&gt;web standards&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://ayende.com/Blog/&quot; rel=&quot;nofollow&quot;&gt;Ayende @ Rahien&lt;/a&gt; - An active member of the &lt;strong&gt;ALT.NET&lt;/strong&gt; community and a developer of Rhino Mocks, a .NET mocking framework. Blogs mainly about &lt;strong&gt;architecural issues&lt;/strong&gt; on both a macro and a micro scale, usually related to his work on the Rhino toolsuite.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://azarask.in/blog/&quot; rel=&quot;nofollow&quot;&gt;Aza's Thoughts&lt;/a&gt; * - A developer at the &lt;strong&gt;Mozilla Usability Labs&lt;/strong&gt; currently working on ideas for Firefox Mobile with some interesting prototypes. Son of the usability guru Jeff Raskin and carrying on his passion.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/bclteam/&quot; rel=&quot;nofollow&quot;&gt;BCL Team Blog&lt;/a&gt; - The blog of the &lt;strong&gt;.NET Base Class Library team&lt;/strong&gt;. Contains various tidbits about the BCL, but updated infrequently.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/charlie/&quot; rel=&quot;nofollow&quot;&gt;Charlie Calvert&lt;/a&gt; - Blogs about various &lt;strong&gt;.NET&lt;/strong&gt; features.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://sayspy.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;Coder Who Says Py&lt;/a&gt; - Blogs about various &lt;strong&gt;Python&lt;/strong&gt; stuff.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Coding Horror&lt;/a&gt; * - Blogs about various &lt;strong&gt;Computer Science&lt;/strong&gt; issues in a pretty much language agnostic fashion (though with a very slight .NET bias).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.25hoursaday.com/weblog/&quot; rel=&quot;nofollow&quot;&gt;Dare Obasanjo&lt;/a&gt; * - Blogs about &lt;strong&gt;.NET&lt;/strong&gt; stuff, as well as general &lt;strong&gt;community issues&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/devdev/&quot; rel=&quot;nofollow&quot;&gt;Developing for Developers&lt;/a&gt; - Various general &lt;strong&gt;Computer Science&lt;/strong&gt; topics. Not updated for a while.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/ericlippert/&quot; rel=&quot;nofollow&quot;&gt;Fabulous Adventures in Coding&lt;/a&gt; * - Goes quite in depth with various &lt;strong&gt;.NET&lt;/strong&gt; and &lt;strong&gt;functional language&lt;/strong&gt; features.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://goodexperience.com/&quot; rel=&quot;nofollow&quot;&gt;Good Experience&lt;/a&gt; * - Blogs about &lt;strong&gt;good usability experience&lt;/strong&gt;, usually though not always technology related.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.greghughes.net/&quot; rel=&quot;nofollow&quot;&gt;greg hughes&lt;/a&gt; * - Blogs about various &lt;strong&gt;technology related&lt;/strong&gt; stuff.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/tess/&quot; rel=&quot;nofollow&quot;&gt;If broken it is, fix it you should&lt;/a&gt; - In depth .NET &lt;strong&gt;debugging and profiling&lt;/strong&gt; topics.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://infosthetics.com/&quot; rel=&quot;nofollow&quot;&gt;information aesthetics&lt;/a&gt; * - Interesting and varied ways of information &lt;strong&gt;visualisations&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://weblogs.asp.net/rosherove/&quot; rel=&quot;nofollow&quot;&gt;ISerializable&lt;/a&gt; - An active member of the &lt;strong&gt;ALT.NET&lt;/strong&gt; community and developer of Typemock (I think). Blogs about various .NET stuff.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/jensenh/&quot; rel=&quot;nofollow&quot;&gt;Jensen Harris&lt;/a&gt; * - Member of the team behind the &lt;strong&gt;Office 2007 UI&lt;/strong&gt;. Not updated in a while, but a lot of good information on research and justifications.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/&quot; rel=&quot;nofollow&quot;&gt;Joel on Software&lt;/a&gt; * - Articles on all sorts of &lt;strong&gt;Computer Science&lt;/strong&gt; related stuff.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://msmvps.com/blogs/jon_skeet/&quot; rel=&quot;nofollow&quot;&gt;Jon Skeet&lt;/a&gt; - Blogs on &lt;strong&gt;C#&lt;/strong&gt; stuff as well as more generic technical news and issues.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/lucabol/&quot; rel=&quot;nofollow&quot;&gt;Luca Bolognese&lt;/a&gt; - Blogs on &lt;strong&gt;C#&lt;/strong&gt; and &lt;strong&gt;function methodologies&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/lukeh/&quot; rel=&quot;nofollow&quot;&gt;LukeH&lt;/a&gt; - Blogs on &lt;strong&gt;C#&lt;/strong&gt; and &lt;strong&gt;F#&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.sellsbrothers.com/&quot; rel=&quot;nofollow&quot;&gt;Marquee de Sells&lt;/a&gt; - Chris Sell's blog on &lt;strong&gt;.NET&lt;/strong&gt; and &lt;strong&gt;general technology&lt;/strong&gt; stuff.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.pluralsight.com/community/blogs/fritz/&quot; rel=&quot;nofollow&quot;&gt;Onion Blog&lt;/a&gt; - Mainly &lt;strong&gt;ASP.NET&lt;/strong&gt; and general &lt;strong&gt;.NET web programming&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.panopticoncentral.net/&quot; rel=&quot;nofollow&quot;&gt;Panopticon Central&lt;/a&gt; - Member of the &lt;strong&gt;VB.NET&lt;/strong&gt; language team.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.presentationzen.com/presentationzen/&quot; rel=&quot;nofollow&quot;&gt;Presentation Zen&lt;/a&gt; * - Tips, links and general information on &lt;strong&gt;good presentations&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://research.swtch.com/&quot; rel=&quot;nofollow&quot;&gt;research!rsc&lt;/a&gt; * - Articles about the &lt;strong&gt;history of Computer Science&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.robmiles.com/journal/&quot; rel=&quot;nofollow&quot;&gt;Rob Miles&lt;/a&gt; - &lt;strong&gt;.NET Micro Framework&lt;/strong&gt;, general amusing observations and involved in teaching C#.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.hanselman.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Scott Hanselman&lt;/a&gt; * - &lt;strong&gt;.NET&lt;/strong&gt;, general technology topics, Weekly Source Code and an ongoing WPF community collaboration project as well as an associated podcast.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://weblogs.asp.net/scottgu/&quot; rel=&quot;nofollow&quot;&gt;ScottGu&lt;/a&gt; * - &lt;strong&gt;ASP.NET&lt;/strong&gt; and detailed &lt;strong&gt;MVC Framework&lt;/strong&gt; information.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://sethgodin.typepad.com/seths_blog/&quot; rel=&quot;nofollow&quot;&gt;Seth Godin&lt;/a&gt; * - An arguably not too evil &lt;em&gt;marketing&lt;/em&gt; guy with some good observations and good writing style.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/oldnewthing/&quot; rel=&quot;nofollow&quot;&gt;The Old New Thing&lt;/a&gt; * - A vast amount of information on the &lt;strong&gt;history of Windows&lt;/strong&gt; and justifications for some of the more bizaar peculiarities of the API's.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://haacked.com/&quot; rel=&quot;nofollow&quot;&gt;You've Been HAACKED&lt;/a&gt; - General &lt;strong&gt;.NET&lt;/strong&gt; related stuff.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/jomo_fisher/&quot; rel=&quot;nofollow&quot;&gt;Jomo Fisher&lt;/a&gt; - Lately mainly &lt;strong&gt;F#&lt;/strong&gt; related stuff.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Those with *'s are one's I would actively recommend (though the others are all still good).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's a list of some good programming podcasts I also listen to:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.polymorphicpodcast.com/&quot; rel=&quot;nofollow&quot;&gt;Polymorphic Podcast&lt;/a&gt; - General &lt;strong&gt;.NET&lt;/strong&gt; stuff and interviews.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.se-radio.net/&quot; rel=&quot;nofollow&quot;&gt;Software Engineering Radio&lt;/a&gt; - Good in depth &lt;em&gt;general Computer Science&lt;/em&gt;* stuff.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.hanselminutes.com/&quot; rel=&quot;nofollow&quot;&gt;Hansleminutes&lt;/a&gt; - &lt;strong&gt;Interviews&lt;/strong&gt; with Computer Scientists and programmers with a fairly heavy .NET bias.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="1191" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" CommentCount="2" />
  <row Id="34661" PostTypeId="2" ParentId="34644" CreationDate="2008-08-12T11:45:39.783" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.beacosta.com/blog/&quot; rel=&quot;nofollow&quot; title=&quot;http://www.scribd.com/doc/2547864/msnetformattingstrings&quot;&gt;Beatriz Costa&lt;/a&gt; - Best WPF Blog &lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34662" PostTypeId="2" ParentId="34644" CreationDate="2008-08-13T04:51:09.603" Score="6" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.google.com/reader/view/feed/http%3A%2F%2Ffeeds.mattcutts.com%2Fmattcutts%2FuJBW&quot; rel=&quot;nofollow&quot;&gt;Matt Cutts&lt;/a&gt; - Another Googler&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.google.com/reader/view/feed/http%3A%2F%2Fblogs.technet.com%2Fmarkrussinovich%2Frss.xml&quot; rel=&quot;nofollow&quot;&gt;Mark Russinovitch&lt;/a&gt; - the &lt;a href=&quot;http://technet.microsoft.com/en-us/sysinternals/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Winternals/Sysinternals&lt;/a&gt; guy.  I learn more about debugging on Windows every time he posts...&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.google.com/reader/view/feed/http%3A%2F%2Fnews.ycombinator.com%2Frss&quot; rel=&quot;nofollow&quot; title=&quot;Unison Home Page&quot;&gt;YCombinator's Hacker News&lt;/a&gt;  - Slashdot-esq programmer news, lots of junk, but occasional awesome nuggets thrown in.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" CommentCount="1" />
  <row Id="34663" PostTypeId="2" ParentId="34644" CreationDate="2008-08-13T06:47:22.800" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://spietrek.blogspot.com/2008/08/links-862008.html&quot; rel=&quot;nofollow&quot;&gt;http://spietrek.blogspot.com/2008/08/links-862008.html&lt;/a&gt; - A continuous learners blog.  This guys finds all the best blog post so you don't have too! (seems to be on a break for a few weeks just now)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://googletesting.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;http://googletesting.blogspot.com/&lt;/a&gt; - Google testing blog. How to write more testable code.  Just started reading this one and really enjoying it.&lt;/p&gt;&#xA;" OwnerUserId="3659" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34664" PostTypeId="2" ParentId="34644" CreationDate="2008-08-13T07:27:02.953" Score="4" ViewCount="" Body="&lt;p&gt;Most of these have already been mentioned but here's my list. Not everything I read, just the programming/tech stuff:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://slashdot.org/&quot; rel=&quot;nofollow&quot; title=&quot;Unison Home Page&quot;&gt;Slashdot&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.37signals.com/svn/posts&quot; rel=&quot;nofollow&quot;&gt;Signal Vs. Noise&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.google.com/reader/shared/14480565058256660224&quot; rel=&quot;nofollow&quot;&gt;Scobelizer's Shared Items&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.techcrunch.com/&quot; rel=&quot;nofollow&quot;&gt;TechCrunch&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://open.blogs.nytimes.com/&quot; rel=&quot;nofollow&quot;&gt;Open&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.schneier.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Schneier on Security&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.randsinrepose.com/&quot; rel=&quot;nofollow&quot;&gt;Rands In Repose&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.hackaday.com/&quot; rel=&quot;nofollow&quot;&gt;Hack a Day&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blog.last.fm/&quot; rel=&quot;nofollow&quot;&gt;Last.fm – the Blog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;also &lt;a href=&quot;http://news.ycombinator.com/&quot; rel=&quot;nofollow&quot;&gt;Hacker News&lt;/a&gt;, which I don't think is good via RSS, but whatev.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;UPDATE: I read a ton of webcomics, yet I totally forgot, &lt;a href=&quot;http://xkcd.com/&quot; rel=&quot;nofollow&quot;&gt;XKCD&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="11660" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34665" PostTypeId="2" ParentId="34644" CreationDate="2008-08-14T15:56:32.657" Score="6" ViewCount="" Body="&lt;p&gt;This is cribbed from my &lt;a href=&quot;http://rpc.bloglines.com/blogroll?html=1&amp;amp;id=Croddwyn&amp;amp;folder=Technical&quot; rel=&quot;nofollow&quot;&gt;Bloglines technology&lt;/a&gt; section (with notes added where I deemed useful). Also note that these are heavily .Net based.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://geekswithblogs.net/dsellers/Default.aspx&quot; rel=&quot;nofollow&quot;&gt;A Curious Mind&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://arjansworld.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;Arjan`s World&lt;/a&gt; - my favorite link blog&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.davidarno.org&quot; rel=&quot;nofollow&quot;&gt;Arno#&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://corcodilos.com/blog&quot; rel=&quot;nofollow&quot;&gt;Ask The Headhunter&lt;/a&gt; - Mr. Headhunter isn't technical himself, but he headhunts us and has very useful advice&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://ayende.com/Blog/Default.aspx&quot; rel=&quot;nofollow&quot;&gt;Ayende @ Rahien&lt;/a&gt; - A very prolific Alt.Net guy&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/brada/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Brad Abrams&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Coding Horror&lt;/a&gt; - Duh&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.hanselman.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Computer Zen&lt;/a&gt; - Scott Hanselman's blog&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/data/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Data&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.elilopian.com&quot; rel=&quot;nofollow&quot;&gt;Eli Lopian&amp;#39;s Blog&lt;/a&gt; - CTO of Typemock&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://software.ericsink.com/&quot; rel=&quot;nofollow&quot;&gt;Eric.Weblog()&lt;/a&gt; - Owner/founder of SourceForge&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://weblogs.asp.net/rosherove/default.aspx&quot; rel=&quot;nofollow&quot;&gt;ISerializable&lt;/a&gt; - Roy Osherove's blog&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.joelonsoftware.com&quot; rel=&quot;nofollow&quot;&gt;Joel on Software&lt;/a&gt; - Duh redux&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.knowing.net/&quot; rel=&quot;nofollow&quot;&gt;Knowing.NET&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.noop.nl/&quot; rel=&quot;nofollow&quot;&gt;NOOP&lt;/a&gt; - Heavy management focus&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blog.wekeroad.com&quot; rel=&quot;nofollow&quot;&gt;Rob Conery&lt;/a&gt; - Benevolent dictator for Subsonic&amp;mdash;a quality .Net OR/M&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.theruntime.com/blogs/MainFeed.aspx&quot; rel=&quot;nofollow&quot;&gt;The Runtime&lt;/a&gt; - A group blog of .Net folks&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://scottonwriting.net/sowblog/&quot; rel=&quot;nofollow&quot;&gt;Scott on Writing&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://secretGeek.net/index.asp&quot; rel=&quot;nofollow&quot;&gt;secretGeek&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://slashdot.org/&quot; rel=&quot;nofollow&quot;&gt;Slashdot&lt;/a&gt; - Emminently skimmable&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blog.stackoverflow.com&quot; rel=&quot;nofollow&quot;&gt;stackoverflow&lt;/a&gt; - semi-duh&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://forums.construx.com/blogs/stevemcc/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Steve McConnel&amp;#39;s Blog&lt;/a&gt; - The godfather of software development analysis&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://stevenharman.net/blog/Default.aspx&quot; rel=&quot;nofollow&quot;&gt;StevenHarman.net&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blog.troyd.net/&quot; rel=&quot;nofollow&quot;&gt;Troy DeMonbreun&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blog.typemock.com/&quot; rel=&quot;nofollow&quot;&gt;TypeMock&lt;/a&gt; - Official blog for the Typemock team&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.xmlaficionado.com/&quot; rel=&quot;nofollow&quot;&gt;XML Aficionado&lt;/a&gt; - Personal blog for Alexander Falk, Altova founder&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://haacked.com/Default.aspx&quot; rel=&quot;nofollow&quot;&gt;you&amp;#39;ve been HAACKED&lt;/a&gt; - Benevolent dictator for Subtext&amp;mdash;the blogging engine&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10669" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34666" PostTypeId="2" ParentId="34644" CreationDate="2008-08-14T19:57:12.543" Score="3" ViewCount="" Body="&lt;p&gt;Here is some of mine : &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.gnucitizen.org/&quot; rel=&quot;nofollow&quot; title=&quot;excanvas&quot;&gt;&lt;a href=&quot;http://www.gnucitizen.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.gnucitizen.org/&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://weblogs.asp.net/nleghari/&quot; rel=&quot;nofollow&quot;&gt;&lt;a href=&quot;http://weblogs.asp.net/nleghari/&quot; rel=&quot;nofollow&quot;&gt;http://weblogs.asp.net/nleghari/&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/ericgu/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Eric Gunnerson's C# Compendium&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.sharepointnutsandbolts.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;a href=&quot;http://www.sharepointnutsandbolts.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.sharepointnutsandbolts.com/&lt;/a&gt;&lt;/a&gt; He is famous for his post on using Sharepoint APIs&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.slimcode.com/cs/blogs/martin/&quot; rel=&quot;nofollow&quot;&gt;Martin Plante's blog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="15997" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34667" PostTypeId="2" ParentId="34644" CreationDate="2008-08-15T00:14:47.923" Score="0" ViewCount="" Body="&lt;p&gt;Cant forget &lt;a href=&quot;http://thedailywtf.com/&quot; rel=&quot;nofollow&quot;&gt;http://thedailywtf.com/&lt;/a&gt; (&lt;a href=&quot;http://syndication.thedailywtf.com/TheDailyWtf&quot; rel=&quot;nofollow&quot;&gt;RSS&lt;/a&gt;) for knowing what &lt;em&gt;not&lt;/em&gt; to do when developing software.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34668" PostTypeId="2" ParentId="34644" CreationDate="2008-08-15T08:00:37.547" Score="2" ViewCount="" Body="&lt;p&gt;Don't forget the &lt;a href=&quot;http://www.informit.com/podcasts/index_rss.aspx?c=7&quot; rel=&quot;nofollow&quot; title=&quot;Coding Guidelines for Cocoa&quot;&gt;OnSoftware Podcast&lt;/a&gt; (sadly stopped, but you can still see the back-issues), and &lt;a href=&quot;http://www.se-radio.net/&quot; rel=&quot;nofollow&quot; title=&quot;Apple Developer Connection&quot;&gt;SERadio&lt;/a&gt;!&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34669" PostTypeId="2" ParentId="34644" CreationDate="2008-08-17T19:29:10.093" Score="0" ViewCount="" Body="&lt;p&gt;Two more:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.mysqlperformanceblog.com&quot; rel=&quot;nofollow&quot;&gt;MySQL performance blog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.mnot.net/blog/&quot; rel=&quot;nofollow&quot;&gt;mnot's Weblog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1797" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34670" PostTypeId="2" ParentId="34644" CreationDate="2008-08-18T13:36:38.603" Score="3" ViewCount="" Body="&lt;p&gt;Since I am coming in late to this question the only blog I can suggest that hasn't been mentioned is &lt;a href=&quot;http://ejohn.org/blog/&quot; rel=&quot;nofollow&quot;&gt;John Resig&lt;/a&gt;'s (jQuery author, Mozilla Javascript Evangelist, Firebug Committee) blog.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34671" PostTypeId="2" ParentId="34644" CreationDate="2008-08-18T14:52:32.803" Score="2" ViewCount="" Body="&lt;p&gt;This is the &lt;strong&gt;&lt;em&gt;delta&lt;/em&gt;&lt;/strong&gt; between my list and all those worthy feeds listed above:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.47hats.com/&quot; rel=&quot;nofollow&quot;&gt;47 Hats&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jcooney.net/&quot; rel=&quot;nofollow&quot;&gt;JCooney.NET&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://michaelonsecurity.com/&quot; rel=&quot;nofollow&quot;&gt;Michael on Security&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://planets.sun.com/techtips/group/blogs/feed/rss&quot; rel=&quot;nofollow&quot;&gt;Core Java Technologies Tech Tips&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jeremymanson.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;Jeremy Manson&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://zvikico.typepad.com/problog/&quot; rel=&quot;nofollow&quot;&gt;Either You Succeed or Explain&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="5376" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34672" PostTypeId="2" ParentId="34644" CreationDate="2008-08-18T16:54:40.373" Score="5" ViewCount="" Body="&lt;p&gt;Here are some of my favorites.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://lambda-the-ultimate.org/&quot; rel=&quot;nofollow&quot;&gt;Lambda the Ultimate&lt;/a&gt; - Programming Languages&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://weblog.raganwald.com/&quot; rel=&quot;nofollow&quot;&gt;Raganwald&lt;/a&gt; - Generic Programming, Ruby&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://onsmalltalk.com/&quot; rel=&quot;nofollow&quot;&gt;On Smalltalk&lt;/a&gt; - Smalltalk&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.defmacro.org/&quot; rel=&quot;nofollow&quot;&gt;defmacro&lt;/a&gt; - Lisp, Generic Programming&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" CommentCount="1" />
  <row Id="34673" PostTypeId="2" ParentId="34644" CreationDate="2008-08-18T23:25:29.697" Score="2" ViewCount="" Body="&lt;p&gt;I would like to add the &lt;a href=&quot;http://howsoftwareisbuilt.com/&quot; rel=&quot;nofollow&quot;&gt;How Software is Built&lt;/a&gt; blog.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34674" PostTypeId="2" ParentId="34644" CreationDate="2008-08-19T09:32:14.027" Score="0" ViewCount="" Body="&lt;p&gt;How about sending some of your suggestions to this guy:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.noop.nl/2008/08/call-for-votes-top-100-software-engineering-blogs.html&quot; rel=&quot;nofollow&quot;&gt;&lt;a href=&quot;http://www.noop.nl/2008/08/call-for-votes-top-100-software-engineering-blogs.html&quot; rel=&quot;nofollow&quot;&gt;http://www.noop.nl/2008/08/call-for-votes-top-100-software-engineering-blogs.html&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am sure the list he will end up with can be a useful reference for this question also.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I would send some suggestions myself, but I haven't read most of the blogs mentioned here, so I can't recommend them.)&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34675" PostTypeId="2" ParentId="34644" CreationDate="2008-08-20T16:18:04.840" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/maoni/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Maoni's blog&lt;/a&gt; is a great spot for .NET memory and performance info.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34676" PostTypeId="2" ParentId="34644" CreationDate="2008-08-21T03:05:29.060" Score="0" ViewCount="" Body="&lt;p&gt;As others already mentioned, &lt;a href=&quot;http://brucefwebster.com/feed/&quot; rel=&quot;nofollow&quot;&gt;Bruce F. Webster&lt;/a&gt; is cool blog about SW process and management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's my diff list.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.martinfowler.com/bliki/&quot; rel=&quot;nofollow&quot;&gt;Martin Fowler's Bliki&lt;/a&gt; (&lt;a href=&quot;http://martinfowler.com/bliki/bliki.atom&quot; rel=&quot;nofollow&quot;&gt;feed&lt;/a&gt;) - Good article from Martin Fowler.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://highscalability.com/&quot; rel=&quot;nofollow&quot;&gt;High Scalability&lt;/a&gt; (&lt;a href=&quot;http://highscalability.com/rss.xml&quot; rel=&quot;nofollow&quot;&gt;feed&lt;/a&gt;) - For those who're interested in scalable web app.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="16849" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34677" PostTypeId="2" ParentId="34644" CreationDate="2008-08-21T22:00:02.920" Score="4" ViewCount="" Body="&lt;p&gt;It's long, but this is it:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.pwop.com/feed.aspx?show=dotnetrocks&amp;amp;filetype=master&quot; rel=&quot;nofollow&quot;&gt;.NET Rocks!&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/AccidentalTechnologist&quot; rel=&quot;nofollow&quot;&gt;Accidental Technologist&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.bluebytesoftware.com/blog/SyndicationService.asmx/GetRss&quot; rel=&quot;nofollow&quot;&gt;Adventures in the High-tech Underbelly&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/AyendeRahien&quot; rel=&quot;nofollow&quot;&gt;Ayende&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/bclteam/rss.xml&quot; rel=&quot;nofollow&quot;&gt;BCL Team&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://beautifulcode.oreillynet.com/index.atom&quot; rel=&quot;nofollow&quot;&gt;Beautiful Code&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/flux88&quot; rel=&quot;nofollow&quot;&gt;Ben Scheirman&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/bdpersist&quot; rel=&quot;nofollow&quot;&gt;BrianDonahue.Persist()&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://marlongrech.wordpress.com/feed/&quot; rel=&quot;nofollow&quot;&gt;C# Disciples &lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/eric/rss.xml&quot; rel=&quot;nofollow&quot;&gt;C# Tea Time&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.charlespetzold.com/rss.xml&quot; rel=&quot;nofollow&quot;&gt;Charles Petzold&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/charlie/rss.xml&quot; rel=&quot;nofollow&quot;&gt;Charlie Calvert&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/ChrisSmithsCompletelyUniqueView&quot; rel=&quot;nofollow&quot;&gt;Chris Smith F#&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/CodeBetter&quot; rel=&quot;nofollow&quot;&gt;Code Better&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/codinghorror&quot; rel=&quot;nofollow&quot;&gt;Coding Horror&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/igloocoder&quot; rel=&quot;nofollow&quot;&gt;Coding in an Igloo&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/Devlicious&quot; rel=&quot;nofollow&quot;&gt;Devlicious&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/Dimecastsnet--InformAndEducateIn10MinutesOrLess&quot; rel=&quot;nofollow&quot;&gt;DimeCasts.Net&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/DnrtvZip&quot; rel=&quot;nofollow&quot;&gt;dnrTV&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/ElegantCode&quot; rel=&quot;nofollow&quot;&gt;Elegant Code&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/ericgu/rss.xml&quot; rel=&quot;nofollow&quot;&gt;Eric Gunnerson's C# Compendium&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/ericlippert/rss.xml&quot; rel=&quot;nofollow&quot;&gt;Eric Lippert&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.ericsink.com/rss.xml&quot; rel=&quot;nofollow&quot;&gt;Eric.Weblog()&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/bsimser&quot; rel=&quot;nofollow&quot;&gt;Fear and Loathing&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://graysmatter.codivation.com/SyndicationService.asmx/GetAtom&quot; rel=&quot;nofollow&quot;&gt;Gray's Matter&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/GustavoDuarte&quot; rel=&quot;nofollow&quot;&gt;Gustavo Duarte&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.haacked.com/haacked&quot; rel=&quot;nofollow&quot;&gt;Haacked&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.interact-sw.co.uk/iangblog/rss2.0&quot; rel=&quot;nofollow&quot;&gt;IanG on Tap&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/ed_maurer/rss.xml&quot; rel=&quot;nofollow&quot;&gt;I'm just sayin'&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.jameskovacs.com/blog/SyndicationService.asmx/GetRss&quot; rel=&quot;nofollow&quot;&gt;James Kovacs' Weblog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/JPBoodhoo&quot; rel=&quot;nofollow&quot;&gt;Jean-Paul S. Boodhoo's Blog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.jetbrains.com/dotnet/feed/atom&quot; rel=&quot;nofollow&quot;&gt;JetBrains .NET Tools Blog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/GrabBagOfT&quot; rel=&quot;nofollow&quot;&gt;Jimmy Bogard&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.joelonsoftware.com/rss.xml&quot; rel=&quot;nofollow&quot;&gt;Joel on Software&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/jongalloway&quot; rel=&quot;nofollow&quot;&gt;John Galloway&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/JohnPapa&quot; rel=&quot;nofollow&quot;&gt;JohnPapa.net&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/JonSkeetCodingBlog&quot; rel=&quot;nofollow&quot;&gt;Jon Skeet&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://joshsmithonwpf.wordpress.com/feed&quot; rel=&quot;nofollow&quot;&gt;Josh Smith&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/kirillosenkov/rss.xml&quot; rel=&quot;nofollow&quot;&gt;Kirill Osenkov&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.knowing.net/SyndicationService.asmx/GetRss&quot; rel=&quot;nofollow&quot;&gt;Knowing.NET&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/LinuxHatersBlog&quot; rel=&quot;nofollow&quot;&gt;Linux Hater's Blog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/lostechies&quot; rel=&quot;nofollow&quot;&gt;Los Techies&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/lucabol/rss.xml&quot; rel=&quot;nofollow&quot;&gt;Luca Bolognese&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.martinfowler.com/bliki/bliki.atom&quot; rel=&quot;nofollow&quot;&gt;Martin Fowler's Bliki&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://tirania.org/blog/miguel.rss2&quot; rel=&quot;nofollow&quot;&gt;Miguel Icaza&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/MosBlog&quot; rel=&quot;nofollow&quot;&gt;Mo Khan: My Blog!&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/Moserware&quot; rel=&quot;nofollow&quot;&gt;Moserware&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blog.objectmentor.com/xml/rss20/feed.xml&quot; rel=&quot;nofollow&quot;&gt;Object Mentor Blog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.aaronsw.com/2002/feeds/pgessays.rss&quot; rel=&quot;nofollow&quot;&gt;Paul Graham: Essays&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.pluralsight.com/blogs/mainfeed.aspx&quot; rel=&quot;nofollow&quot;&gt;Pluralsight Blogs&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/woodyp&quot; rel=&quot;nofollow&quot;&gt;Random .NET Ramblings&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://resharper.blogspot.com/feeds/posts/default&quot; rel=&quot;nofollow&quot;&gt;ReSharper Horizons&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blog.wekeroad.com/feed&quot; rel=&quot;nofollow&quot;&gt;Rob Connery&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/Iserializable&quot; rel=&quot;nofollow&quot;&gt;Roy Osherov&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/RyanLanciaux&quot; rel=&quot;nofollow&quot;&gt;Ryan Lanciaux&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://sachabarber.net/?feed=rss2&quot; rel=&quot;nofollow&quot;&gt;Sacha Barber&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/saraford/rss.xml&quot; rel=&quot;nofollow&quot;&gt;Sara Ford&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://odetocode.com/Blogs/scott/rss.aspx&quot; rel=&quot;nofollow&quot;&gt;Scott Allen&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://weblogs.asp.net/scottgu/rss.aspx&quot; rel=&quot;nofollow&quot;&gt;Scott Guthrie&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/ScottHanselman&quot; rel=&quot;nofollow&quot;&gt;Scott Hanselman&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/ScottOnWriting&quot; rel=&quot;nofollow&quot;&gt;Scott On Writing&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/sfeldmannet&quot; rel=&quot;nofollow&quot;&gt;sfeldman.NET&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.skrenta.com/atom.xml&quot; rel=&quot;nofollow&quot;&gt;Skrentablog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.sleepoverrated.com/SyndicationService.asmx/GetRss&quot; rel=&quot;nofollow&quot;&gt;Sleep Overrated - Scott Cowan&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/SoftwareByRob&quot; rel=&quot;nofollow&quot;&gt;Software By Rob&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blog.stackoverflow.com/index.php/feed/&quot; rel=&quot;nofollow&quot;&gt;stackoverflow&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blog.streamlinelogic.ca/feeds/posts/default&quot; rel=&quot;nofollow&quot;&gt;Streamline Logic&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.connicus.com/rss.aspx&quot; rel=&quot;nofollow&quot;&gt;Terry Thibodeau's Blog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.hibernatingrhinos.com/Craig/Rss.aspx&quot; rel=&quot;nofollow&quot;&gt;The Hostile Blogger&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/madst/rss.xml&quot; rel=&quot;nofollow&quot;&gt;The Mellow Musings of Dr. T&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.hibernatingrhinos.com/nhibernate/Rss.aspx&quot; rel=&quot;nofollow&quot;&gt;The NHibernate FAQ&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blog.voidnish.com/?feed=rss2&quot; rel=&quot;nofollow&quot;&gt;Void Nish&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/mattwar/rss.xml&quot; rel=&quot;nofollow&quot;&gt;Wayward -&gt; LINQ&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/wesdyer/rss.xml&quot; rel=&quot;nofollow&quot;&gt;Wes Dyer&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/keithelder&quot; rel=&quot;nofollow&quot;&gt;Words of Wisdom From The Elder&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/wordpress/blog&quot; rel=&quot;nofollow&quot;&gt;WPF Disciples&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://hammett.castleproject.org/?feed=rss2&quot; rel=&quot;nofollow&quot;&gt;Zen and the art of Castle maintenance&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34678" PostTypeId="2" ParentId="34644" CreationDate="2008-08-23T19:41:07.853" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blogs.tedneward.com/&quot; rel=&quot;nofollow&quot;&gt;Ted Neward&lt;/a&gt; knows a variety of languages, and he's a No Fluff Just Stuff speaker. I like how he's more than ok with disagreeing with people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://steve-yegge.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;Steve Yegge&lt;/a&gt; is also very knowledgeable and entertaining.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://googletesting.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;Google Testing Blog&lt;/a&gt; is great, too - I've posted several of their &quot;Testing on the Toilet&quot; episodes in the stall at work.&lt;/p&gt;&#xA;" OwnerUserId="2871" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34679" PostTypeId="2" ParentId="34644" CreationDate="2008-08-25T19:51:08.733" Score="3" ViewCount="" Body="&lt;p&gt;There are a ton of great resources out there. For what it's worth, here's my blog roll:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.ayende.com/Blog/&quot; rel=&quot;nofollow&quot;&gt;Ayende @ Rahien&lt;/a&gt;. NHibernate, Rhino Mocks, and overall great programming blog.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://devlicio.us/blogs/billy_mccafferty/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Billy McCafferty&lt;/a&gt;. NHibernate, Enterprise development, etc.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://codebetter.com/blogs/&quot; rel=&quot;nofollow&quot;&gt;Code Better&lt;/a&gt;. ALT.NET stuff.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Coding Horror&lt;/a&gt;. Humor.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://devlicio.us/blogs/&quot; rel=&quot;nofollow&quot;&gt;Devlicio.us&lt;/a&gt;. General coding stuff.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jeffreypalermo.com/&quot; rel=&quot;nofollow&quot;&gt;Jeffrey Palermo&lt;/a&gt;. MVC, IoC, etc.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://martinfowler.com/bliki&quot; rel=&quot;nofollow&quot;&gt;Martin Fowler's Bliki&lt;/a&gt;. Best Practices.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://odetocode.com/Blogs/scott/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Ode to Code&lt;/a&gt;. LINQ, MVC, general programming.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.haacked.com/haacked&quot; rel=&quot;nofollow&quot;&gt;Phil Haacked&lt;/a&gt;. Subtext, MVC.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.hanselman.com/blog/&quot; rel=&quot;nofollow&quot;&gt;Scott Hanselman&lt;/a&gt;. All kinds of goodies.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://weblogs.asp.net/scottgu/default.aspx&quot; rel=&quot;nofollow&quot;&gt;Scott Guthrie&lt;/a&gt;. ASP.NET.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="3848" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34680" PostTypeId="2" ParentId="34644" CreationDate="2008-08-27T08:14:52.993" Score="1" ViewCount="" Body="&lt;p&gt;Here are some of my Google Reader outlines:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    &amp;lt;outline text=&quot;&amp;amp;amp;lt;ChristophDotNet&quot;&#xA;        title=&quot;&amp;amp;amp;lt;ChristophDotNet&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/CTheArchitect&quot; htmlUrl=&quot;http://weblogs.asp.net/cschittko/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;.NET at 9.400 ft above sea level&quot;&#xA;        title=&quot;.NET at 9.400 ft above sea level&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/esanchez/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/esanchez/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;.NET Edge in Australia&quot;&#xA;        title=&quot;.NET Edge in Australia&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/edgepereira/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/edgepereira/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;.NET slave&quot; title=&quot;.NET slave&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/netslave&quot; htmlUrl=&quot;http://blog.madskristensen.dk/&quot;/&amp;gt;&#xA;    &amp;lt;outline&#xA;        text=&quot;4GuysFromRolla.com :: Site Navigation Article Series&quot;&#xA;        title=&quot;4GuysFromRolla.com :: Site Navigation Article Series&quot;&#xA;        type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://aspnet.4guysfromrolla.com/rss/siteNavigation.xml&quot; htmlUrl=&quot;http://aspnet.4guysfromrolla.com/articles/111605-1.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline&#xA;        text=&quot;&amp;amp;lt;a href=&amp;amp;quot;http://weblogs.asp.net/bleroy&amp;amp;quot;&amp;gt;Tales from the Evil Empire&amp;amp;lt;/a&amp;gt;&quot;&#xA;        title=&quot;&amp;amp;lt;a href=&amp;amp;quot;http://weblogs.asp.net/bleroy&amp;amp;quot;&amp;gt;Tales from the Evil Empire&amp;amp;lt;/a&amp;gt;&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://weblogs.asp.net/bleroy/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/bleroy/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Aaron Lerch&quot; title=&quot;Aaron Lerch&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/aaronlerch&quot; htmlUrl=&quot;http://www.aaronlerch.com/blog&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Aaron Stebner's WebLog&quot;&#xA;        title=&quot;Aaron Stebner's WebLog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/astebner/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/astebner/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;ADO.NET team blog&quot; title=&quot;ADO.NET team blog&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/adonet/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/adonet/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;AJ's blog&quot; title=&quot;AJ's blog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://ajdotnet.wordpress.com/feed/&quot; htmlUrl=&quot;http://ajdotnet.wordpress.com&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Al Pascual&quot; title=&quot;Al Pascual&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://alpascual.com/blog/al/rss.aspx&quot; htmlUrl=&quot;http://alpascual.com/blog/al/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Albert Pascual ASP.NET Blog&quot;&#xA;        title=&quot;Albert Pascual ASP.NET Blog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/albertpascual/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/albertpascual/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Alex Hoffman&quot; title=&quot;Alex Hoffman&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/asp/ahoffman&quot; htmlUrl=&quot;http://alintex.com/blog/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Alistair Cockburn - Recent changes [en]&quot;&#xA;        title=&quot;Alistair Cockburn - Recent changes [en]&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://alistair.cockburn.us/index.php?title=Special:Recentchanges&amp;amp;amp;hideminor=1&amp;amp;amp;feed=rss&quot; htmlUrl=&quot;http://alistair.cockburn.us/index.php/Special:Recentchanges&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;All Your Base Are Belong To Us&quot;&#xA;        title=&quot;All Your Base Are Belong To Us&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.microsoft.co.il/blogs/sasha/rss.aspx&quot; htmlUrl=&quot;http://blogs.microsoft.co.il/blogs/sasha/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Alt-N Press Center&quot; title=&quot;Alt-N Press Center&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://www.altn.com/formpages/rss.aspx&quot; htmlUrl=&quot;http://www.altn.com/Company/PressRoom/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Andrew Peters' Blog&quot; title=&quot;Andrew Peters' Blog&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://andrewpeters.net/feed/&quot; htmlUrl=&quot;http://andrewpeters.net&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Andrew Rea&quot; title=&quot;Andrew Rea&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/AndrewRea&quot; htmlUrl=&quot;http://weblogs.asp.net/andrewrea/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Andrew Stopford&amp;amp;amp;#39;s Weblog&quot;&#xA;        title=&quot;Andrew Stopford&amp;amp;amp;#39;s Weblog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/astopford/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/astopford/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Anson Horton's Blog&quot; title=&quot;Anson Horton's Blog&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/ansonh/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/ansonh/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Antoine Griffard&quot; title=&quot;Antoine Griffard&quot;&#xA;        type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/antoinegriffard/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/antoinegriffard/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Ardent Dev&quot; title=&quot;Ardent Dev&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/ArdentBlog&quot; htmlUrl=&quot;http://www.ardentdev.com/blog&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Ask the Performance Team&quot;&#xA;        title=&quot;Ask the Performance Team&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.technet.com/askperf/rss.xml&quot; htmlUrl=&quot;http://blogs.technet.com/askperf/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;ASP.NET Debugging&quot; title=&quot;ASP.NET Debugging&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/tom/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/tom/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;ASP.NET Weblogs&quot; title=&quot;ASP.NET Weblogs&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://weblogs.asp.net/MainFeed.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;aspnet Release Rss Feed&quot;&#xA;        title=&quot;aspnet Release Rss Feed&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://www.codeplex.com/aspnet/Project/ProjectRss.aspx?ProjectRSSFeed=codeplex%3A%2F%2Frelease%2Faspnet&quot; htmlUrl=&quot;http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;AtlasControlToolkit Release Rss Feed&quot;&#xA;        title=&quot;AtlasControlToolkit Release Rss Feed&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://www.codeplex.com/AtlasControlToolkit/Project/ProjectRss.aspx?ProjectRSSFeed=codeplex%3A%2F%2Frelease%2FAtlasControlToolkit&quot; htmlUrl=&quot;http://www.codeplex.com/AjaxControlToolkitases.aspx?ProjectName=AtlasControlToolkit&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;AtlasControlToolkit Source Control Rss Feed&quot;&#xA;        title=&quot;AtlasControlToolkit Source Control Rss Feed&quot;&#xA;        type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://www.codeplex.com/AtlasControlToolkit/Project/ProjectRss.aspx?ProjectRSSFeed=codeplex%3A%2F%2Fsourcecontrol%2FAtlasControlToolkit&quot; htmlUrl=&quot;http://www.codeplex.com/AjaxControlToolkitrceControl/ListDownloadableCommits.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Authorization Manager Team Blog&quot;&#xA;        title=&quot;Authorization Manager Team Blog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/azman/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/azman/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Ayende @ Rahien&quot; title=&quot;Ayende @ Rahien&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://feeds.feedburner.com/AyendeRahien&quot; htmlUrl=&quot;http://ayende.com/Blog/Default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Bashmohandes&quot; title=&quot;Bashmohandes&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://spellcoder.com/blogs/bashmohandes/rss.aspx&quot; htmlUrl=&quot;http://spellcoder.com/blogs/bashmohandes/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;BCL Team Blog&quot; title=&quot;BCL Team Blog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/bclteam/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/bclteam/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Ben Dill's Blog&quot; title=&quot;Ben Dill's Blog&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://weblogs.asp.net/bdill/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/bdill/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Ben Hall's Blog&quot; title=&quot;Ben Hall's Blog&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://blog.benhall.me.uk/rss.xml&quot; htmlUrl=&quot;http://blog.benhall.me.uk/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Benp's Guide to Stuff&quot;&#xA;        title=&quot;Benp's Guide to Stuff&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.technet.com/benp/rss.xml&quot; htmlUrl=&quot;http://blogs.technet.com/benp/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;benwu's WebLog&quot; title=&quot;benwu's WebLog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/benwu/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/benwu/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;bharry's WebLog&quot; title=&quot;bharry's WebLog&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/bharry/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/bharry/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Bill Blogs in C#&quot; title=&quot;Bill Blogs in C#&quot;&#xA;        type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://srtsolutions.com/blogs/billwagner/rss.aspx&quot; htmlUrl=&quot;http://srtsolutions.com/blogs/billwagner/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;BillS&amp;amp;amp;#39; IIS Blog&quot;&#xA;        title=&quot;BillS&amp;amp;amp;#39; IIS Blog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.iis.net/bills/rss.aspx&quot; htmlUrl=&quot;http://blogs.iis.net/bills/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline&#xA;        text=&quot;BinaryIntellect.net :: Tools, code and components&quot;&#xA;        title=&quot;BinaryIntellect.net :: Tools, code and components&quot;&#xA;        type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://www.binaryintellect.net/articles/rssfeed.aspx&quot; htmlUrl=&quot;http://www.binaryintellect.net&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;BizTalk Blogs&quot; title=&quot;BizTalk Blogs&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://www.biztalkblogs.com/RssDoc.xml&quot; htmlUrl=&quot;www.BizTalkBlogs.com&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;blog 3.0&quot; title=&quot;blog 3.0&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://www.fusu.ro/index.php/feed/&quot; htmlUrl=&quot;http://www.fusu.ro&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Blog | TomasP.Net&quot; title=&quot;Blog | TomasP.Net&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://tomasp.net/blog/rss.aspx&quot; htmlUrl=&quot;http://tomasp.net/blog&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Brad Abrams&quot; title=&quot;Brad Abrams&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/brada/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/brada/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Brian Jones: Open XML Formats&quot;&#xA;        title=&quot;Brian Jones: Open XML Formats&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/brian_jones/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/brian_jones/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;BUGBUG: poor title&quot; title=&quot;BUGBUG: poor title&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/richardb/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/richardb/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;C l e m e n s&quot; title=&quot;C l e m e n s&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/clemensreijnen/qzrF&quot; htmlUrl=&quot;http://www.clemensreijnen.nl/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;C# Disciples&quot; title=&quot;C# Disciples&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/WPFDisciples&quot; htmlUrl=&quot;http://marlongrech.wordpress.com&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;C# Frequently Asked Questions&quot;&#xA;        title=&quot;C# Frequently Asked Questions&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/csharpfaq/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/csharpfaq/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;CarlosAg Blog&quot; title=&quot;CarlosAg Blog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/carlosag/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/carlosag/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;cbrumme's WebLog&quot; title=&quot;cbrumme's WebLog&quot;&#xA;        type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.gotdotnet.com/cbrumme/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/cbrumme/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Chad Myers&amp;amp;amp;#39; Blog&quot;&#xA;        title=&quot;Chad Myers&amp;amp;amp;#39; Blog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/ChadMyersBlog&quot; htmlUrl=&quot;http://www.lostechies.com/blogs/chad_myers/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Charles Petzold&quot; title=&quot;Charles Petzold&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://www.charlespetzold.com/rss.xml&quot; htmlUrl=&quot;http://www.charlespetzold.com&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Cheshire's Blog&quot; title=&quot;Cheshire's Blog&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/jamesche/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/jamesche/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Chinh Do&quot; title=&quot;Chinh Do&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://www.chinhdo.com/chinh/blog/feed/&quot; htmlUrl=&quot;http://www.chinhdo.com&quot;/&amp;gt;&#xA;    &amp;lt;outline&#xA;        text=&quot;Chris Love's Official Blog - Professional ASP.NET&quot;&#xA;        title=&quot;Chris Love's Official Blog - Professional ASP.NET&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://professionalaspnet.com/rss.aspx&quot; htmlUrl=&quot;http://professionalaspnet.com/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Chris Lyon's WebLog&quot; title=&quot;Chris Lyon's WebLog&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/clyon/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/clyon/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Chris123NT's Blog&quot; title=&quot;Chris123NT's Blog&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://chris123nt.com/feed/&quot; htmlUrl=&quot;http://chris123nt.com&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Civitas Blog&quot; title=&quot;Civitas Blog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://www.civitas.org.uk/blog/atom.xml&quot; htmlUrl=&quot;http://www.civitas.org.uk/blog/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Code Climber&quot; title=&quot;Code Climber&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/codeclimber&quot; htmlUrl=&quot;http://codeclimber.net.nz/Default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Code Factory!!!!&quot; title=&quot;Code Factory!!!!&quot;&#xA;        type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/socratees/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/socratees/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;CodeBetter.Com&quot; title=&quot;CodeBetter.Com&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/CodeBetter&quot; htmlUrl=&quot;http://codebetter.com/blogs/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;CodeMonkey&amp;amp;amp;lt;wwright&amp;amp;amp;gt;:IConfused&quot;&#xA;        title=&quot;CodeMonkey&amp;amp;amp;lt;wwright&amp;amp;amp;gt;:IConfused&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://weblogs.asp.net/wwright/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/wwright/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Coding Horror&quot; title=&quot;Coding Horror&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/codinghorror&quot; htmlUrl=&quot;http://www.codinghorror.com/blog/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Coding.&quot; title=&quot;Coding.&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feedproxy.google.com/eecsaky&quot; htmlUrl=&quot;http://geeks.ms/blogs/eecsaky/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Cornel Creanga&quot; title=&quot;Cornel Creanga&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://cornelcreanga.com/?feed=rss2&quot; htmlUrl=&quot;http://cornelcreanga.com&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Cristian Mezei&quot; title=&quot;Cristian Mezei&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/seopedia/&quot; htmlUrl=&quot;http://www.seopedia.org&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Cyrus' Blather&quot; title=&quot;Cyrus' Blather&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/cyrusn/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/cyrusn/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Dan Wahlin&amp;amp;amp;#39;s WebLog&quot;&#xA;        title=&quot;Dan Wahlin&amp;amp;amp;#39;s WebLog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/dwahlin/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/dwahlin/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Daniel Cazzulino's Blog&quot;&#xA;        title=&quot;Daniel Cazzulino's Blog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/DanielCazzulino&quot; htmlUrl=&quot;http://www.clariusconsulting.net/blogs/kzu/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Dare Obasanjo aka Carnage4Life&quot;&#xA;        title=&quot;Dare Obasanjo aka Carnage4Life&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/Carnage4life&quot; htmlUrl=&quot;http://www.25hoursaday.com/weblog/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Data Access blog&quot; title=&quot;Data Access blog&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/dataaccess/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/dataaccess/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Dave Green's WebLog&quot; title=&quot;Dave Green's WebLog&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/davegreen/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/davegreen/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Dave's Box&quot; title=&quot;Dave's Box&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/DavesBox&quot; htmlUrl=&quot;http://davesbox.com/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;David Barkol's blog&quot; title=&quot;David Barkol's blog&quot;&#xA;        type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/davidbarkol/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/davidbarkol/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;David Cumps&quot; title=&quot;David Cumps&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/cumps&quot; htmlUrl=&quot;http://blog.cumps.be&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;David Hill's WebLog&quot; title=&quot;David Hill's WebLog&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/dphill/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/dphill/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;David Notario's WebLog&quot;&#xA;        title=&quot;David Notario's WebLog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/davidnotario/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/davidnotario/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;David Pallmann's Blog&quot;&#xA;        title=&quot;David Pallmann's Blog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://davidpallmann.spaces.live.com/feed.rss&quot; htmlUrl=&quot;http://davidpallmann.spaces.live.com/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Dejan's Weblog&quot; title=&quot;Dejan's Weblog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://www.jelovic.com/weblog/?feed=rss2&quot; htmlUrl=&quot;http://www.jelovic.com/weblog&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;/dev/websphere&quot; title=&quot;/dev/websphere&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/dev/websphere&quot; htmlUrl=&quot;http://www.devwebsphere.com/devwebsphere/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Did it with .NET&quot; title=&quot;Did it with .NET&quot;&#xA;        type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/DidItWithDotNet&quot; htmlUrl=&quot;http://diditwith.net/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Diego's Data Access Blog&quot;&#xA;        title=&quot;Diego's Data Access Blog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/diego/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/diego/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Dinesh's Cyberstation&quot;&#xA;        title=&quot;Dinesh's Cyberstation&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/dinesh.kulkarni/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/dinesh.kulkarni/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Dino Esposito&amp;amp;amp;#39;s WebLog&quot;&#xA;        title=&quot;Dino Esposito&amp;amp;amp;#39;s WebLog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/despos/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/despos/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;DocProject Release Rss Feed&quot;&#xA;        title=&quot;DocProject Release Rss Feed&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://www.codeplex.com/DocProject/Project/ProjectRss.aspx?ProjectRSSFeed=codeplex%3A%2F%2Frelease%2FDocProject&quot; htmlUrl=&quot;http://www.codeplex.com/DocProject/Release/ProjectReleases.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Don Box's Spoutlet&quot; title=&quot;Don Box's Spoutlet&quot;&#xA;        type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://pluralsight.com/blogs/dbox/Rss.aspx&quot; htmlUrl=&quot;http://www.pluralsight.com/community/blogs/dbox/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;DotNetNuke&quot; title=&quot;DotNetNuke&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://www.dotnetnuke.com/Products/Development/Projects/tabid/824/moduleid/2189/RSS.aspx&quot; htmlUrl=&quot;http://www.dotnetnuke.com&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;DotNetNuke Developer&quot;&#xA;        title=&quot;DotNetNuke Developer&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/christoc/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/christoc/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Douglas Purdy&quot; title=&quot;Douglas Purdy&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://douglaspurdy.com/feed&quot; htmlUrl=&quot;http://douglaspurdy.com&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;DownloadCENTER&quot; title=&quot;DownloadCENTER&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://www.iis.net/DownloadCENTER/all/Rss.aspx&quot; htmlUrl=&quot;http://www.iis.net/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Dragos Manolescu's (work) blog&quot;&#xA;        title=&quot;Dragos Manolescu's (work) blog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/dragoman/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/dragoman/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Drew&amp;amp;amp;#39;s IIS Blog&quot;&#xA;        title=&quot;Drew&amp;amp;amp;#39;s IIS Blog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.iis.net/drobbins/rss.aspx&quot; htmlUrl=&quot;http://blogs.iis.net/drobbins/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;ECHILIBRU&quot; title=&quot;ECHILIBRU&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://ioniliescu.wordpress.com/feed/&quot; htmlUrl=&quot;http://ioniliescu.wordpress.com&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Eilon Lipton&amp;amp;amp;#39;s Blog&quot;&#xA;        title=&quot;Eilon Lipton&amp;amp;amp;#39;s Blog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/leftslipper/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/leftslipper/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Eli Lopian's Blog (TypeMock)&quot;&#xA;        title=&quot;Eli Lopian's Blog (TypeMock)&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/EliLopian&quot; htmlUrl=&quot;http://www.elilopian.com&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Encosia&quot; title=&quot;Encosia&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.encosia.com/Encosia&quot; htmlUrl=&quot;http://encosia.com&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Enter the Tatrix&quot; title=&quot;Enter the Tatrix&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://blog.tatham.oddie.com.au/feed/&quot; htmlUrl=&quot;http://blog.tatham.oddie.com.au&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Entity Framework Design&quot;&#xA;        title=&quot;Entity Framework Design&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/efdesign/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/efdesign/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;entlib Release Rss Feed&quot;&#xA;        title=&quot;entlib Release Rss Feed&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://www.codeplex.com/entlib/Project/ProjectRss.aspx?ProjectRSSFeed=codeplex%3A%2F%2Frelease%2Fentlib&quot; htmlUrl=&quot;http://www.codeplex.com/entlib/Release/ProjectReleases.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Eric Gunnerson's C# Compendium&quot;&#xA;        title=&quot;Eric Gunnerson's C# Compendium&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/ericgu/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/ericgu/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Eugenio Estrada's Weblog&quot;&#xA;        title=&quot;Eugenio Estrada's Weblog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/eecsaky/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/eecsaky/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;eWorld.UI - Matt Hawley&quot;&#xA;        title=&quot;eWorld.UI - Matt Hawley&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/eworldui&quot; htmlUrl=&quot;http://blog.eworldui.net/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Fabrice&amp;amp;amp;#39;s weblog&quot;&#xA;        title=&quot;Fabrice&amp;amp;amp;#39;s weblog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/fmarguerie/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/fmarguerie/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Fabulous Adventures In Coding&quot;&#xA;        title=&quot;Fabulous Adventures In Coding&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/ericlippert/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/ericlippert/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;farblog&quot; title=&quot;farblog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://www.farside.org.uk/feed&quot; htmlUrl=&quot;http://www.farside.org.uk/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Fear and Loathing&quot; title=&quot;Fear and Loathing&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://feeds.feedburner.com/bsimser&quot; htmlUrl=&quot;http://weblogs.asp.net/bsimser/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Filter Central&quot; title=&quot;Filter Central&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/ifilter/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/ifilter/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Florin Lazar - Transactions&quot;&#xA;        title=&quot;Florin Lazar - Transactions&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/florinlazar/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/florinlazar/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;FogBugz&quot; title=&quot;FogBugz&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://www.fogcreek.com/FogBugz/Blog/syndication.axd&quot; htmlUrl=&quot;http://www.fogcreek.com/FogBugz/blog/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;For The Developers!&quot; title=&quot;For The Developers!&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/jolson/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/jolson/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Frans Bouma's blog&quot; title=&quot;Frans Bouma's blog&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://feeds.feedburner.com/FransBouma&quot; htmlUrl=&quot;http://weblogs.asp.net/fbouma/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Fredrik Normén&quot; title=&quot;Fredrik Normén&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/fredriknormen/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/fredriknormen/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Galleries&quot; title=&quot;Galleries&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://supsexylatinasgalleries.blogspot.com/feeds/posts/default&quot; htmlUrl=&quot;http://supsexylatinasgalleries.blogspot.com/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;gbarnett&quot; title=&quot;gbarnett&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/gbarnett/rss.aspx&quot; htmlUrl=&quot;http://msmvps.com/blogs/gbarnett/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline&#xA;        text=&quot;Generalities &amp;amp;amp; Details: Adventures in the High-tech Underbelly&quot;&#xA;        title=&quot;Generalities &amp;amp;amp; Details: Adventures in the High-tech Underbelly&quot;&#xA;        type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://www.bluebytesoftware.com/blog/SyndicationService.asmx/GetRss&quot; htmlUrl=&quot;http://www.bluebytesoftware.com/blog/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Google App Engine Blog&quot;&#xA;        title=&quot;Google App Engine Blog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/GoogleAppEngineBlog&quot; htmlUrl=&quot;http://googleappengine.blogspot.com/&quot;/&amp;gt;&#xA;    &amp;lt;outline&#xA;        text=&quot;Grigori Melnik: Thoughts on Agile Software Engineering and Beyond&quot;&#xA;        title=&quot;Grigori Melnik: Thoughts on Agile Software Engineering and Beyond&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/agile/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/agile/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Gunnar Peipman's ASP.NET blog&quot;&#xA;        title=&quot;Gunnar Peipman's ASP.NET blog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/gunnarpeipman&quot; htmlUrl=&quot;http://weblogs.asp.net/gunnarpeipman/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Guy Barrette&quot; title=&quot;Guy Barrette&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/guybarrette/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/guybarrette/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;help.net&quot; title=&quot;help.net&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/pleloup/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/pleloup/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;How Software is Built&quot;&#xA;        title=&quot;How Software is Built&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://howsoftwareisbuilt.com/feed/&quot; htmlUrl=&quot;http://howsoftwareisbuilt.com&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Huthaifa Afanah&quot; title=&quot;Huthaifa Afanah&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://weblogs.asp.net/istofix/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/istofix/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;I know the answer (it's 42)&quot;&#xA;        title=&quot;I know the answer (it's 42)&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/abhinaba/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/abhinaba/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;IanG on Tap&quot; title=&quot;IanG on Tap&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://www.interact-sw.co.uk/iangblog/rss2.0&quot; htmlUrl=&quot;http://www.interact-sw.co.uk/iangblog/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;IanWho's bLog&quot; title=&quot;IanWho's bLog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/ianhu/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/ianhu/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;IEBlog&quot; title=&quot;IEBlog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/ie/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/ie/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;If broken it is, fix it you should&quot;&#xA;        title=&quot;If broken it is, fix it you should&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.msdn.com/tess/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/tess/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Igor Ostrovsky Blogging&quot;&#xA;        title=&quot;Igor Ostrovsky Blogging&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://igoro.com/?feed=rss2&quot; htmlUrl=&quot;http://igoro.com&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;In Relation To...&quot; title=&quot;In Relation To...&quot;&#xA;        type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blog.hibernate.org/servlets/feeds/atom.seam;jsessionid=15DCBEB3534899051E46BAC3D45A967B?feedId=1&quot; htmlUrl=&quot;http://in.relation.to/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Infinities Loop&quot; title=&quot;Infinities Loop&quot;&#xA;        type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/infinitiesloop/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/infinitiesloop/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;ISerializable - Roy Osherove&amp;amp;amp;#39;s Blog&quot;&#xA;        title=&quot;ISerializable - Roy Osherove&amp;amp;amp;#39;s Blog&quot;&#xA;        type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/Iserializable&quot; htmlUrl=&quot;http://weblogs.asp.net/rosherove/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline&#xA;        text=&quot;iServiceOriented.com - Practical Service Oriented Architecture&quot;&#xA;        title=&quot;iServiceOriented.com - Practical Service Oriented Architecture&quot;&#xA;        type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://feeds.feedburner.com/iserviceoriented?format=xml&quot; htmlUrl=&quot;http://www.google.com/reader/view/feed%2Fhttp%3A%2F%2Ffeeds.feedburner.com%2Fiserviceoriented%3Fformat%3Dxml&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;J.D. Meier's Blog&quot; title=&quot;J.D. Meier's Blog&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/jmeier/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/jmeier/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;James Gosling: on the Java Road&quot;&#xA;        title=&quot;James Gosling: on the Java Road&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://blogs.sun.com/jag/feed/entries/rss&quot; htmlUrl=&quot;http://blogs.sun.com/jag/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Jan van den Beld&quot; title=&quot;Jan van den Beld&quot;&#xA;        type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://janvandenbeld.blogspot.com/feeds/posts/default&quot; htmlUrl=&quot;http://janvandenbeld.blogspot.com/&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;jaredpar's WebLog&quot; title=&quot;jaredpar's WebLog&quot;&#xA;        type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/jaredpar/rss.xml&quot; htmlUrl=&quot;http://blogs.msdn.com/jaredpar/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Jason N. Gaylord's Blog&quot;&#xA;        title=&quot;Jason N. Gaylord's Blog&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/jgaylord/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/jgaylord/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Jason Nadal&quot; title=&quot;Jason Nadal&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://weblogs.asp.net/jnadal/rss.aspx&quot; htmlUrl=&quot;http://weblogs.asp.net/jnadal/default.aspx&quot;/&amp;gt;&#xA;    &amp;lt;outline text=&quot;Java Technology Headlines&quot;&#xA;        title=&quot;Java Technology Headlines&quot; type=&quot;rss&quot;&#xA;        xmlUrl=&quot;http://deve&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" CommentCount="1" />
  <row Id="34681" PostTypeId="2" ParentId="34644" CreationDate="2008-08-28T13:07:42.737" Score="0" ViewCount="" Body="&lt;p&gt;I would recommend you &lt;a href=&quot;http://blogs.msdn.com/oldnewthing/&quot; rel=&quot;nofollow&quot; title=&quot;The Old New Thing&quot;&gt;The Old New Thing&lt;/a&gt;, a very interesting blog about Windows development&lt;/p&gt;&#xA;" OwnerUserId="10896" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34682" PostTypeId="2" ParentId="34644" CreationDate="2008-08-30T01:32:29.833" Score="0" ViewCount="" Body="&lt;p&gt;I enjoy Gustavo Duarte's blog.  It's got some great information on core BIOS level things, like CPU rings and how bootloaders work, as well as other development industry stuff.  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;link: &lt;a href=&quot;http://duartes.org/gustavo/blog/&quot; rel=&quot;nofollow&quot; title=&quot;Gustavo Duarte&quot;&gt;http://duartes.org/gustavo/blog/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Feedburner: &lt;a href=&quot;http://feeds.feedburner.com/GustavoDuarte&quot; rel=&quot;nofollow&quot; title=&quot;Gustavo Duarte&quot;&gt;http://feeds.feedburner.com/GustavoDuarte&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34683" PostTypeId="2" ParentId="34644" CreationDate="2008-08-30T10:27:12.343" Score="2" ViewCount="" Body="&lt;p&gt;My RSS Feeds (Trying to eliminate some dups and obvious ones line Joel and Jeff's blogs :-) Some of them are podcasts rather than blogs useful for listening when driving to work&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.cnet.com/i/pod/cnet_buzz.xml&quot; rel=&quot;nofollow&quot;&gt;Buzz Out Loud from CNET&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blogs.sun.com/CoreJavaTechTips/feed/entries/atom&quot; rel=&quot;nofollow&quot;&gt;Core Java Technologies Tech Tips&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feathercast.org/?feed=rss2&quot; rel=&quot;nofollow&quot;&gt;FeatherCast&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://googletesting.blogspot.com/atom.xml&quot; rel=&quot;nofollow&quot;&gt;Google Testing Blog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/HerdingCode&quot; rel=&quot;nofollow&quot;&gt;Herding Code&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.conversationsnetwork.org/channel/itc&quot; rel=&quot;nofollow&quot;&gt;IT Conversations&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://blog.krecan.net/feed/&quot; rel=&quot;nofollow&quot;&gt;Java Crumbs&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/netbeanspod&quot; rel=&quot;nofollow&quot;&gt;Roumen's Weblog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34684" PostTypeId="2" ParentId="34644" CreationDate="2008-09-02T04:00:03.230" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://GirlDeveloper.com&quot; rel=&quot;nofollow&quot;&gt;Girl Developer&lt;/a&gt; anyone?&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" CommentCount="1" />
  <row Id="34685" PostTypeId="2" ParentId="34644" CreationDate="2008-09-02T08:09:11.103" Score="0" ViewCount="" Body="&lt;p&gt;I am late to the question, but may want to add Tim Bray's &lt;a href=&quot;http://tbray.org/ongoing&quot; rel=&quot;nofollow&quot;&gt;ongoing&lt;/a&gt; feed (mostly atom/RSS/XML/REST discussions): &lt;a href=&quot;http://www.tbray.org/ongoing/ongoing.atom&quot; rel=&quot;nofollow&quot;&gt;http://www.tbray.org/ongoing/ongoing.atom&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34686" PostTypeId="2" ParentId="34644" CreationDate="2008-09-04T20:00:07.320" Score="2" ViewCount="" Body="&lt;p&gt;On my Google Reader&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://codebetter.com/blogs/mainfeed.aspx&quot; rel=&quot;nofollow&quot;&gt;Code Better&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://feeds.feedburner.com/crazybob&quot; rel=&quot;nofollow&quot;&gt;Crazy Bob (Google, creator of guice, working on Android)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://fragmental.tw/feed/&quot; rel=&quot;nofollow&quot;&gt;Fragmental (Architeture, people and DSLs)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://gojko.net/feed/&quot; rel=&quot;nofollow&quot;&gt;Gojko Adzic&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://googletesting.blogspot.com/feeds/posts/default&quot; rel=&quot;nofollow&quot;&gt;Google Testing Blog&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blog.guykawasaki.com/atom.xml&quot; rel=&quot;nofollow&quot;&gt;Guy Kawasaki&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blog.jayfields.com/feeds/posts/default&quot; rel=&quot;nofollow&quot;&gt;Jay Fields&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://martinfowler.com/bliki/bliki.atom&quot; rel=&quot;nofollow&quot;&gt;Martin Fowler's Bliki&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://gafter.blogspot.com/feeds/posts/default&quot; rel=&quot;nofollow&quot;&gt;Neal Gafter's blog&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://blog.objectmentor.com/xml/atom/feed.xml&quot; rel=&quot;nofollow&quot;&gt;Object Mentor Blog&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://feeds.feedburner.com/beust/OtakuXml&quot; rel=&quot;nofollow&quot;&gt;Otaku, Cedric's weblog&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.pushing-pixels.org/?feed=rss2&quot; rel=&quot;nofollow&quot;&gt;Pushing Pixels&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://scrum4you.wordpress.com/feed/&quot; rel=&quot;nofollow&quot;&gt;Scrum 4 You (Boris Gloger)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.boston.com/bigpicture/index.xml&quot; rel=&quot;nofollow&quot;&gt;The Big Picture&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.thekua.com/atwork/feed/&quot; rel=&quot;nofollow&quot;&gt;thekua.com@work (agile stuff)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://xkcd.com/atom.xml&quot; rel=&quot;nofollow&quot;&gt;xkcd.com (comics about math, language and programming)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;--&#xA;Kind Regards&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34687" PostTypeId="2" ParentId="34644" CreationDate="2008-09-05T07:23:56.133" Score="0" ViewCount="" Body="&lt;p&gt;Late to the party, but I have to add &lt;a href=&quot;http://wilshipley.com/blog/&quot; rel=&quot;nofollow&quot;&gt;http://wilshipley.com/blog/&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34688" PostTypeId="2" ParentId="34644" CreationDate="2008-09-05T14:37:43.700" Score="1" ViewCount="" Body="&lt;p&gt;I took what J Wynia has done (wonderful, by the way) and created an OPML file using &lt;a href=&quot;http://reader.feedshow.com/goodies/opml/OPMLBuilder-create-opml-from-rss-list.php&quot; rel=&quot;nofollow&quot;&gt;FeedShow&lt;/a&gt; for import into readers:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;opml version=&quot;1.1&quot;&amp;gt;&amp;lt;head&amp;gt;   &amp;lt;title&amp;gt;Generated by FeedShow OMPLBuilder: Fri, 05 Sep 2008 16:34:12 +0200&amp;lt;/title&amp;gt;   &amp;lt;dateCreated&amp;gt;Fri, 05 Sep 2008 16:34:12 +0200&amp;lt;/dateCreated&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;lt;outline text=&quot;Main Folder&quot;&amp;gt;&amp;lt;outline title=&quot;feeds.feedburner.com/10xSoftwareDevelopment&quot; text=&quot;feeds.feedburner.com/10xSoftwareDevelopment&quot; type=&quot;rss&quot; xmlUrl=&quot;http://feeds.feedburner.com/10xSoftwareDevelopment&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;www.alistapart.com/feed/rss.xml&quot; text=&quot;www.alistapart.com/feed/rss.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://www.alistapart.com/feed/rss.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;feeds.feedburner.com/ajaxian&quot; text=&quot;feeds.feedburner.com/ajaxian&quot; type=&quot;rss&quot; xmlUrl=&quot;http://feeds.feedburner.com/ajaxian&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;blogs.zdnet.com/microsoft/?feed=rss2&quot; text=&quot;blogs.zdnet.com/microsoft/?feed=rss2&quot; type=&quot;rss&quot; xmlUrl=&quot;http://blogs.zdnet.com/microsoft/?feed=rss2&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;blogs.zdnet.com/microsoft/?feed=rss2&quot; text=&quot;blogs.zdnet.com/microsoft/?feed=rss2&quot; type=&quot;rss&quot; xmlUrl=&quot;http://blogs.zdnet.com/microsoft/?feed=rss2&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;annevankesteren.nl/feeds/weblog&quot; text=&quot;annevankesteren.nl/feeds/weblog&quot; type=&quot;rss&quot; xmlUrl=&quot;http://annevankesteren.nl/feeds/weblog&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;www.artima.com/weblogs/index.jsp?blogger=beckelweblogsfeedsweblogs.rss&quot; text=&quot;www.artima.com/weblogs/index.jsp?blogger=beckelweblogsfeedsweblogs.rss&quot; type=&quot;rss&quot; xmlUrl=&quot;http://www.artima.com/weblogs/index.jsp?blogger=beckelweblogsfeedsweblogs.rss&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;feeds.feedburner.com/AyendeRahien&quot; text=&quot;feeds.feedburner.com/AyendeRahien&quot; type=&quot;rss&quot; xmlUrl=&quot;http://feeds.feedburner.com/AyendeRahien&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;www.azarask.in/blog/feed/&quot; text=&quot;www.azarask.in/blog/feed/&quot; type=&quot;rss&quot; xmlUrl=&quot;http://www.azarask.in/blog/feed/&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;blogs.msdn.com/bclteam/rss.xml&quot; text=&quot;blogs.msdn.com/bclteam/rss.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/bclteam/rss.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;www.charlespetzold.com/rss.xml&quot; text=&quot;www.charlespetzold.com/rss.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://www.charlespetzold.com/rss.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;blogs.msdn.com/charlie/rss.xml&quot; text=&quot;blogs.msdn.com/charlie/rss.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/charlie/rss.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;sayspy.blogspot.com/feeds/posts/default&quot; text=&quot;sayspy.blogspot.com/feeds/posts/default&quot; type=&quot;rss&quot; xmlUrl=&quot;http://sayspy.blogspot.com/feeds/posts/default&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;feeds.feedburner.com/codinghorror/&quot; text=&quot;feeds.feedburner.com/codinghorror/&quot; type=&quot;rss&quot; xmlUrl=&quot;http://feeds.feedburner.com/codinghorror/&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;commandline.org.uk/feeds/full/&quot; text=&quot;commandline.org.uk/feeds/full/&quot; type=&quot;rss&quot; xmlUrl=&quot;http://commandline.org.uk/feeds/full/&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;blogs.msdn.com/devdev/rss.xml&quot; text=&quot;blogs.msdn.com/devdev/rss.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/devdev/rss.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;feedproxy.google.com/DilbertDailyStrip&quot; text=&quot;feedproxy.google.com/DilbertDailyStrip&quot; type=&quot;rss&quot; xmlUrl=&quot;http://feedproxy.google.com/DilbertDailyStrip&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;pluralsight.com/blogs/dbox/Rss.aspx&quot; text=&quot;pluralsight.com/blogs/dbox/Rss.aspx&quot; type=&quot;rss&quot; xmlUrl=&quot;http://pluralsight.com/blogs/dbox/Rss.aspx&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;www.ericsink.com/rss.xml&quot; text=&quot;www.ericsink.com/rss.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://www.ericsink.com/rss.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;blogs.msdn.com/ericlippert/rss.xml&quot; text=&quot;blogs.msdn.com/ericlippert/rss.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/ericlippert/rss.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;feeds.feedburner.com/goodexperience/1&quot; text=&quot;feeds.feedburner.com/goodexperience/1&quot; type=&quot;rss&quot; xmlUrl=&quot;http://feeds.feedburner.com/goodexperience/1&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;www.greghughes.net/rant/SyndicationService.asmx/GetRss&quot; text=&quot;www.greghughes.net/rant/SyndicationService.asmx/GetRss&quot; type=&quot;rss&quot; xmlUrl=&quot;http://www.greghughes.net/rant/SyndicationService.asmx/GetRss&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;feeds.feedburner.com/guykawasaki/Gypm&quot; text=&quot;feeds.feedburner.com/guykawasaki/Gypm&quot; type=&quot;rss&quot; xmlUrl=&quot;http://feeds.feedburner.com/guykawasaki/Gypm&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;blogs.msdn.com/tess/rss.xml&quot; text=&quot;blogs.msdn.com/tess/rss.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/tess/rss.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;feeds.infosthetics.com/infosthetics&quot; text=&quot;feeds.infosthetics.com/infosthetics&quot; type=&quot;rss&quot; xmlUrl=&quot;http://feeds.infosthetics.com/infosthetics&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;feeds.feedburner.com/Iserializable&quot; text=&quot;feeds.feedburner.com/Iserializable&quot; type=&quot;rss&quot; xmlUrl=&quot;http://feeds.feedburner.com/Iserializable&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;developers.sun.com/rss/java.xml&quot; text=&quot;developers.sun.com/rss/java.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://developers.sun.com/rss/java.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;blogs.msdn.com/jensenh/rss.xml&quot; text=&quot;blogs.msdn.com/jensenh/rss.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/jensenh/rss.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;www.joelonsoftware.com/rss.xml&quot; text=&quot;www.joelonsoftware.com/rss.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://www.joelonsoftware.com/rss.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;joelonsoftware.com/rss.xml&quot; text=&quot;joelonsoftware.com/rss.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://joelonsoftware.com/rss.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;blogs.msdn.com/jomo_fisher/rss.xml&quot; text=&quot;blogs.msdn.com/jomo_fisher/rss.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/jomo_fisher/rss.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;feeds.feedburner.com/JonSkeetCodingBlog&quot; text=&quot;feeds.feedburner.com/JonSkeetCodingBlog&quot; type=&quot;rss&quot; xmlUrl=&quot;http://feeds.feedburner.com/JonSkeetCodingBlog&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;blogs.msdn.com/lucabol/rss.xml&quot; text=&quot;blogs.msdn.com/lucabol/rss.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/lucabol/rss.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;blogs.msdn.com/lukeh/rss.xml&quot; text=&quot;blogs.msdn.com/lukeh/rss.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/lukeh/rss.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;www.sellsbrothers.com/news/rss.aspx&quot; text=&quot;www.sellsbrothers.com/news/rss.aspx&quot; type=&quot;rss&quot; xmlUrl=&quot;http://www.sellsbrothers.com/news/rss.aspx&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;blogs.msdn.com/msdnmagazine/rss.xml&quot; text=&quot;blogs.msdn.com/msdnmagazine/rss.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/msdnmagazine/rss.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;msdn.microsoft.com/en-us/magazine/rss/default.aspx?issue=1&quot; text=&quot;msdn.microsoft.com/en-us/magazine/rss/default.aspx?issue=1&quot; type=&quot;rss&quot; xmlUrl=&quot;http://msdn.microsoft.com/en-us/magazine/rss/default.aspx?issue=1&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;my-symbian.com/main/rss.xml&quot; text=&quot;my-symbian.com/main/rss.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://my-symbian.com/main/rss.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;blogs.msdn.com/oldnewthing/rss.xml&quot; text=&quot;blogs.msdn.com/oldnewthing/rss.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/oldnewthing/rss.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;blogs.msdn.com/oldnewthing/rss.xml&quot; text=&quot;blogs.msdn.com/oldnewthing/rss.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/oldnewthing/rss.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;www.pluralsight.com/community/blogs/fritz/rss.aspx&quot; text=&quot;www.pluralsight.com/community/blogs/fritz/rss.aspx&quot; type=&quot;rss&quot; xmlUrl=&quot;http://www.pluralsight.com/community/blogs/fritz/rss.aspx&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;www.panopticoncentral.net/rss.aspx&quot; text=&quot;www.panopticoncentral.net/rss.aspx&quot; type=&quot;rss&quot; xmlUrl=&quot;http://www.panopticoncentral.net/rss.aspx&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;feeds.feedburner.com/particletree&quot; text=&quot;feeds.feedburner.com/particletree&quot; type=&quot;rss&quot; xmlUrl=&quot;http://feeds.feedburner.com/particletree&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;www.aaronsw.com/2002/feeds/pgessays.rss&quot; text=&quot;www.aaronsw.com/2002/feeds/pgessays.rss&quot; type=&quot;rss&quot; xmlUrl=&quot;http://www.aaronsw.com/2002/feeds/pgessays.rss&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;www.pragprog.com/feed/global&quot; text=&quot;www.pragprog.com/feed/global&quot; type=&quot;rss&quot; xmlUrl=&quot;http://www.pragprog.com/feed/global&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;presentationzen.blogs.com/presentationzen/index.rdf&quot; text=&quot;presentationzen.blogs.com/presentationzen/index.rdf&quot; type=&quot;rss&quot; xmlUrl=&quot;http://presentationzen.blogs.com/presentationzen/index.rdf&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;www.reddit.com/r/programming/.rss&quot; text=&quot;www.reddit.com/r/programming/.rss&quot; type=&quot;rss&quot; xmlUrl=&quot;http://www.reddit.com/r/programming/.rss&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;www.yosefk.com/blog/feed&quot; text=&quot;www.yosefk.com/blog/feed&quot; type=&quot;rss&quot; xmlUrl=&quot;http://www.yosefk.com/blog/feed&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;research.swtch.com/feeds/posts/default?alt=rss&quot; text=&quot;research.swtch.com/feeds/posts/default?alt=rss&quot; type=&quot;rss&quot; xmlUrl=&quot;http://research.swtch.com/feeds/posts/default?alt=rss&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;www.robmiles.com/journal/atom.xml&quot; text=&quot;www.robmiles.com/journal/atom.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://www.robmiles.com/journal/atom.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;feedproxy.google.com/fastcompany/scobleizer&quot; text=&quot;feedproxy.google.com/fastcompany/scobleizer&quot; type=&quot;rss&quot; xmlUrl=&quot;http://feedproxy.google.com/fastcompany/scobleizer&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;feeds.feedburner.com/ScottHanselman&quot; text=&quot;feeds.feedburner.com/ScottHanselman&quot; type=&quot;rss&quot; xmlUrl=&quot;http://feeds.feedburner.com/ScottHanselman&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;weblogs.asp.net/scottgu/rss.aspx&quot; text=&quot;weblogs.asp.net/scottgu/rss.aspx&quot; type=&quot;rss&quot; xmlUrl=&quot;http://weblogs.asp.net/scottgu/rss.aspx&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;secretgeek.net/rss.asp&quot; text=&quot;secretgeek.net/rss.asp&quot; type=&quot;rss&quot; xmlUrl=&quot;http://secretgeek.net/rss.asp&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;feedrinse.com/services/rinse/?rinsedurl=17424b920e19372ee83b81d2b00f9264&quot; text=&quot;feedrinse.com/services/rinse/?rinsedurl=17424b920e19372ee83b81d2b00f9264&quot; type=&quot;rss&quot; xmlUrl=&quot;http://feedrinse.com/services/rinse/?rinsedurl=17424b920e19372ee83b81d2b00f9264&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;feeds.feedburner.com/37signals/beMH&quot; text=&quot;feeds.feedburner.com/37signals/beMH&quot; type=&quot;rss&quot; xmlUrl=&quot;http://feeds.feedburner.com/37signals/beMH&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;feeds.feedburner.com/SixRevisions&quot; text=&quot;feeds.feedburner.com/SixRevisions&quot; type=&quot;rss&quot; xmlUrl=&quot;http://feeds.feedburner.com/SixRevisions&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;feeds.feedburner.com/SmashingMagazine&quot; text=&quot;feeds.feedburner.com/SmashingMagazine&quot; type=&quot;rss&quot; xmlUrl=&quot;http://feeds.feedburner.com/SmashingMagazine&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;se-radio.net/rss&quot; text=&quot;se-radio.net/rss&quot; type=&quot;rss&quot; xmlUrl=&quot;http://se-radio.net/rss&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;www.startupdunia.com/feed/&quot; text=&quot;www.startupdunia.com/feed/&quot; type=&quot;rss&quot; xmlUrl=&quot;http://www.startupdunia.com/feed/&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;steve-yegge.blogspot.com/feeds/posts/default&quot; text=&quot;steve-yegge.blogspot.com/feeds/posts/default&quot; type=&quot;rss&quot; xmlUrl=&quot;http://steve-yegge.blogspot.com/feeds/posts/default&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;steve-yegge.blogspot.com/atom.xml&quot; text=&quot;steve-yegge.blogspot.com/atom.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://steve-yegge.blogspot.com/atom.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;herbsutter.wordpress.com/feed&quot; text=&quot;herbsutter.wordpress.com/feed&quot; type=&quot;rss&quot; xmlUrl=&quot;http://herbsutter.wordpress.com/feed&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;thunk.org/tytso/blog/feed&quot; text=&quot;thunk.org/tytso/blog/feed&quot; type=&quot;rss&quot; xmlUrl=&quot;http://thunk.org/tytso/blog/feed&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;feeds.feedburner.com/Webappers&quot; text=&quot;feeds.feedburner.com/Webappers&quot; type=&quot;rss&quot; xmlUrl=&quot;http://feeds.feedburner.com/Webappers&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;blogs.msdn.com/windowsmobile/rss.xml&quot; text=&quot;blogs.msdn.com/windowsmobile/rss.xml&quot; type=&quot;rss&quot; xmlUrl=&quot;http://blogs.msdn.com/windowsmobile/rss.xml&quot; /&amp;gt; &#xA;&amp;lt;outline title=&quot;feeds.haacked.com/haacked/&quot; text=&quot;feeds.haacked.com/haacked/&quot; type=&quot;rss&quot; xmlUrl=&quot;http://feeds.haacked.com/haacked/&quot; /&amp;gt; &#xA;   &amp;lt;/outline&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/opml&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34689" PostTypeId="2" ParentId="34644" CreationDate="2008-09-06T08:19:00.890" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://syndication.thedailywtf.com/TheDailyWtf&quot; rel=&quot;nofollow&quot;&gt;The Daily WTF&lt;/a&gt; can be a good read for what not to do. Almost the opposite of stack overflow.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34690" PostTypeId="2" ParentId="34644" CreationDate="2008-09-07T06:16:44.013" Score="0" ViewCount="" Body="&lt;p&gt;This is an easy one: Joel On Software &lt;strong&gt;&lt;em&gt;is&lt;/em&gt;&lt;/strong&gt; the number one without a doubt. Although he did not post so much lately, just hit the archive - should keep you busy for quite a while.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34691" PostTypeId="2" ParentId="34644" CreationDate="2008-09-08T12:16:11.177" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blog.jpboodhoo.com/&quot; rel=&quot;nofollow&quot;&gt;http://blog.jpboodhoo.com/&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34692" PostTypeId="2" ParentId="34644" CreationDate="2008-09-09T11:52:22.287" Score="1" ViewCount="" Body="&lt;p&gt;Mine are:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;em&gt;Category&lt;/em&gt; &lt;strong&gt;{Geek}&lt;/strong&gt;:&lt;/p&gt;&#xA;  &#xA;  &lt;blockquote&gt;&#xA;    &lt;p&gt;&lt;a href=&quot;http://arstechnica.com/index.ars/rss&quot; rel=&quot;nofollow&quot;&gt;Ars Technica&lt;/a&gt; &lt;/p&gt;&#xA;    &#xA;    &lt;p&gt;&lt;a href=&quot;http://feeds.feedburner.com/codinghorror&quot; rel=&quot;nofollow&quot;&gt;Coding Horror&lt;/a&gt;&lt;/p&gt;&#xA;    &#xA;    &lt;p&gt;&lt;a href=&quot;http://syndication.thedailywtf.com/TheDailyWtf&quot; rel=&quot;nofollow&quot;&gt;The Daily WTF&lt;/a&gt;&lt;/p&gt;&#xA;    &#xA;    &lt;p&gt;&lt;a href=&quot;http://rss.slashdot.org/Slashdot/slashdot&quot; rel=&quot;nofollow&quot;&gt;Slashdot&lt;/a&gt;&lt;/p&gt;&#xA;    &#xA;    &lt;p&gt;&lt;a href=&quot;http://www.joelonsoftware.com/rss.xml&quot; rel=&quot;nofollow&quot;&gt;Joel on Software&lt;/a&gt;&lt;/p&gt;&#xA;    &#xA;    &lt;p&gt;&lt;a href=&quot;http://lifehacker.com/index.xml&quot; rel=&quot;nofollow&quot;&gt;Lifehacker&lt;/a&gt;&lt;/p&gt;&#xA;    &#xA;    &lt;p&gt;&lt;a href=&quot;http://www.makezine.com/blog/index.xml&quot; rel=&quot;nofollow&quot;&gt;MAKE Magazine&lt;/a&gt;&lt;/p&gt;&#xA;    &#xA;    &lt;p&gt;&lt;a href=&quot;http://www.slyck.com/slyckrss.xml&quot; rel=&quot;nofollow&quot;&gt;Slyck.com File-Sharing News And Information&lt;/a&gt;&lt;/p&gt;&#xA;  &lt;/blockquote&gt;&#xA;  &#xA;  &lt;p&gt;&lt;em&gt;Category&lt;/em&gt; &lt;strong&gt;{Code}&lt;/strong&gt;:&lt;/p&gt;&#xA;  &#xA;  &lt;blockquote&gt;&#xA;    &lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/csharpfaq/rss.aspx&quot; rel=&quot;nofollow&quot;&gt;C# Frequently Asked Questions&lt;/a&gt;&lt;/p&gt;&#xA;    &#xA;    &lt;p&gt;&lt;a href=&quot;http://www.c-sharpcorner.com/Rss/LatestArticles.aspx&quot; rel=&quot;nofollow&quot;&gt;C-Sharpcorner Latest Articles&lt;/a&gt;&lt;/p&gt;&#xA;    &#xA;    &lt;p&gt;&lt;a href=&quot;http://feeds.feedburner.com/CSharp&quot; rel=&quot;nofollow&quot;&gt;Cool Programming&lt;/a&gt;&lt;/p&gt;&#xA;    &#xA;    &lt;p&gt;&lt;a href=&quot;http://code.msdn.microsoft.com/rss.ashx?behavior=bytag&amp;amp;tagName=C%23&quot; rel=&quot;nofollow&quot;&gt;MSDN Code Gallery Published Resources For Tag C#&lt;/a&gt;&lt;/p&gt;&#xA;    &#xA;    &lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/vcsharp/rss.xml&quot; rel=&quot;nofollow&quot;&gt;MSDN: Visual C#&lt;/a&gt;&lt;/p&gt;&#xA;    &#xA;    &lt;p&gt;&lt;a href=&quot;http://www.codeproject.com/webservices/articlerss.aspx?cat=1&quot; rel=&quot;nofollow&quot;&gt;CodeProject Latest articles - All topics&lt;/a&gt;&lt;/p&gt;&#xA;  &lt;/blockquote&gt;&#xA;  &#xA;  &lt;p&gt;&lt;em&gt;Category&lt;/em&gt; &lt;strong&gt;{Friends}&lt;/strong&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;blockquote&gt;&#xA;    &lt;p&gt;&lt;a href=&quot;http://feeds.feedburner.com/LostInTheTriangles&quot; rel=&quot;nofollow&quot;&gt;Lost in the Triangles&lt;/a&gt; - Lithuanian CG guru.&lt;/p&gt;&#xA;    &#xA;    &lt;p&gt;&lt;a href=&quot;http://feeds.feedburner.com/pm-db&quot; rel=&quot;nofollow&quot;&gt;PM's Development Blog&lt;/a&gt; - My good friends, really great programmer (master) blog.&lt;/p&gt;&#xA;  &lt;/blockquote&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;For feed reading I'm using Google Reader. I think it's very user friendly feed reader.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34693" PostTypeId="2" ParentId="34644" CreationDate="2008-09-15T13:23:00.973" Score="0" ViewCount="" Body="&lt;p&gt;Rico Mariani's Performance Tidbits  - .NET/CLR emphasis, but also with a great wholistic approach to performance measurement&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34694" PostTypeId="2" ParentId="34644" CreationDate="2008-09-15T20:53:48.767" Score="0" ViewCount="" Body="&lt;p&gt;In addition to my other RSS feeds I daily read &lt;a href=&quot;http://egos.alltop.com/&quot; rel=&quot;nofollow&quot;&gt;Alltop's&lt;/a&gt; feed aggregator page. It gives all the latest feeds of well known bloggers/techies/programmers etc &lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34695" PostTypeId="2" ParentId="34644" CreationDate="2008-09-16T19:52:10.653" Score="0" ViewCount="" Body="&lt;p&gt;I find so much signal on &lt;a href=&quot;http://news.ycombinator.com/&quot; rel=&quot;nofollow&quot;&gt;Hacker News&lt;/a&gt; and it's sweetly simple and concise.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34696" PostTypeId="2" ParentId="34644" CreationDate="2008-09-17T09:15:24.593" Score="0" ViewCount="" Body="&lt;h2&gt;Fullasagoog&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The Fullasagoog aggregator brings together over 500 hand picked blogs, focused on the Adobe technology platform and related topics.  If you are interested in Flash, Flex, AIR or ColdFusion this is a fabulous place to start.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.fullasagoog.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.fullasagoog.com/&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34697" PostTypeId="2" ParentId="34644" CreationDate="2008-09-19T12:39:38.583" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.dailyrotation.com/&quot; rel=&quot;nofollow&quot;&gt;Daily Rotation&lt;/a&gt; never fails!&lt;/p&gt;&#xA;" OwnerUserId="17458" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-09-19T12:39:38.553" />
  <row Id="34698" PostTypeId="2" ParentId="34644" CreationDate="2008-11-12T09:55:33.093" Score="0" ViewCount="" Body="&lt;p&gt;The one-stop feed for Delphi developers:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://delphifeeds.com&quot; rel=&quot;nofollow&quot;&gt;http://delphifeeds.com&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(aggregated feed of everything from the Delphi community)&lt;/p&gt;&#xA;" OwnerUserId="4019" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-11-12T09:55:33.093" />
  <row Id="34699" PostTypeId="2" ParentId="34644" CreationDate="2008-12-07T23:45:04.540" Score="0" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://aseigo.blogspot.com/&quot; rel=&quot;nofollow&quot;&gt;Aaron Seigo&lt;/a&gt; - KDE developer &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://udrepper.livejournal.com/&quot; rel=&quot;nofollow&quot;&gt;Ulrich Drepper&lt;/a&gt; - glibc developer&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://planet.debian.org/&quot; rel=&quot;nofollow&quot;&gt;Planet Debian&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://planetkde.org/&quot; rel=&quot;nofollow&quot;&gt;Planet KDE&lt;/a&gt; &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10707" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2008-12-07T23:45:04.540" />
  <row Id="34700" PostTypeId="2" ParentId="34644" CreationDate="2009-06-10T21:27:35.963" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://imar.spaanjaars.com/Rss/Default.aspx&quot; rel=&quot;nofollow&quot;&gt;Imar Spaanjaars&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He blogs mostly on ASP.NET and .NET. He responds to questions in his comments section more than any other popular blogger that I've seen.&lt;/p&gt;&#xA;" OwnerUserId="1835" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2009-06-10T21:27:35.947" />
  <row Id="34701" PostTypeId="2" ParentId="34644" CreationDate="2009-06-29T05:51:09.690" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://blog.RedRockResearch.com&quot; rel=&quot;nofollow&quot;&gt;http://blog.RedRockResearch.com&lt;/a&gt; Software Development Management Blog&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2009-06-29T05:51:09.690" />
  <row Id="34702" PostTypeId="2" ParentId="34644" CreationDate="2009-08-28T07:39:43.747" Score="0" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://crankypm.com/&quot; rel=&quot;nofollow&quot;&gt;The cranky product manager&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2009-08-28T07:39:43.747" />
  <row Id="34703" PostTypeId="2" ParentId="34644" CreationDate="2009-09-22T19:28:22.660" Score="0" ViewCount="" Body="&lt;p&gt;I would also suggest &lt;a href=&quot;http://deepfriedbytes.com&quot; rel=&quot;nofollow&quot;&gt;Deep Fried Bytes&lt;/a&gt; if you are into podcasts.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2009-09-22T19:28:22.660" />
  <row Id="34704" PostTypeId="2" ParentId="34644" CreationDate="2010-08-24T20:34:40.717" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.drdobbs.com/resources/rss/index.jhtml&quot; rel=&quot;nofollow&quot;&gt;Dr Dobb's&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2010-08-24T20:34:40.717" />
  <row Id="34705" PostTypeId="2" ParentId="34644" CreationDate="2010-08-29T21:18:54.877" Score="1" ViewCount="" Body="&lt;p&gt;.Net developers might find interesting my &lt;a href=&quot;http://www.netvibes.com/arnisl#.NET&quot; rel=&quot;nofollow&quot;&gt;public netvibes&lt;/a&gt; page.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Scanning all of these (and some more) daily.&lt;/p&gt;&#xA;" OwnerUserId="9178" LastActivityDate="2011-01-07T17:20:52.917" CommunityOwnedDate="2010-08-29T21:18:54.877" />
  <row Id="34706" PostTypeId="2" ParentId="34456" CreationDate="2011-01-07T17:21:42.913" Score="0" ViewCount="" Body="&lt;p&gt;The business case for ditching SubVersion is the branching support is a barrier to product stabilisation and maintenance.  If you need to release a product and then continue development you need a branch.  With subversion, the developers will not use branching properly, and so you will fail to keep development on the tunk, and ensure that bug fixes actually make it onto both the trunk and the branch as well.&lt;/p&gt;&#xA;" OwnerUserId="8035" LastActivityDate="2011-01-07T17:21:42.913" />
  <row Id="34707" PostTypeId="2" ParentId="34532" CreationDate="2011-01-07T17:22:44.223" Score="4" ViewCount="" Body="&lt;p&gt;Only candidates who have passed the certification exams from September 1, 2010 forward will receive the Oracle certificate and logo. Any candidates who became certified prior to September 1, 2010 will keep the Sun certificate and logo. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regards,&#xA;Brandye Barrington&#xA;Oracle Certification Program&lt;/p&gt;&#xA;" OwnerUserId="12650" LastActivityDate="2011-01-07T17:22:44.223" />
  <row Id="34708" PostTypeId="2" ParentId="34543" CreationDate="2011-01-07T17:25:00.227" Score="2" ViewCount="" Body="&lt;p&gt;Most companies do at least some good and you have to see where you fit. A simple app can save a lot of mindless data entry for someone or prevent errors.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I make sure that when I leave a job it is better for the next person than when I started. Avoid the, &quot;When I showed up there wasn't any documentation and I had to figure everything out for myself, so you have to as well.&quot; syndrome.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You're either cutting stones or building cathedrals.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-07T17:25:00.227" />
  <row Id="34709" PostTypeId="2" ParentId="34559" CreationDate="2011-01-07T17:28:02.297" Score="0" ViewCount="" Body="&lt;p&gt;I don't personally do this because it's extra documentation which like others said, is in the version control.  But if I were going to make some sort of kung-fu code snippit, I'd probably be apt to go with whatever my IDE was capable of auto generating.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For instance, using in Delphi 7 with those helpful CNTools installed I type &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;///a [enter]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and out comes&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;//&amp;lt;author&amp;gt;&amp;lt;/author&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;then I type &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;///d [enter]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;and out comes &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; //&amp;lt;date&amp;gt;&amp;lt;/date&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I'd imagine that corresponds to something some 3rd party utility can pick up on, but as for me - I've got a standard that I didn't even have to make up and corrupt myself. &lt;/p&gt;&#xA;" OwnerUserId="1973" LastActivityDate="2011-01-07T17:28:02.297" />
  <row Id="34710" PostTypeId="1" AcceptedAnswerId="34712" CreationDate="2011-01-07T17:40:21.170" Score="1" ViewCount="170" Body="&lt;p&gt;Is there a decent site that has code snippets for any language?&lt;/p&gt;&#xA;" OwnerUserId="7456" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2011-01-07T19:06:19.010" LastActivityDate="2011-01-07T21:10:50.523" Title="Coding Snippet repositories" Tags="&lt;code&gt;&lt;snippets&gt;&lt;copy-paste-programming&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="3" />
  <row Id="34711" PostTypeId="1" AcceptedAnswerId="34726" CreationDate="2011-01-07T17:44:11.440" Score="0" ViewCount="86" Body="&lt;p&gt;I am a solo developer in my department and I have a lot of individual projects, all created and managed by me. I started using SVN at ProjectLocker via Versions on the Mac a couple years ago when the variety of projects started getting unwieldy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Scenario 1&lt;/em&gt;:&#xA;Now I have a process that is of reasonable complexity it can be broken up into multiple smaller applications and they all share files. In one phase, there is a single shared file—a constants file—that is shared between a Cocoa app and an iPhone app framework. In the second phase, the iPhone app framework will be used to create individual apps of the same ilk—controller classes and what not will all be the same—but with different content in each.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem that I am running across is that the file in the first phase is in one repository with the application that started it, and the app framework is in a second, separate repository.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Scenario 2&lt;/em&gt;:&#xA;I have another application framework that partially relies on code from an open source project. This is all internal, non-commerical work, but again, the application framework is going to be used to create a variety of unique products and processes. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, now I have an internally managed repository and an externally managed one out of my control. I make little changes to the open source code to meet the needs of my framework when there is an update I download, but I never commit back into the external repository (though, now that I think about it, I don't think I'm committing it to mine either. Oops).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Problem&lt;/strong&gt;&#xA;I have all of this set up on my production Mac quite nicely, but duplicating and subsequently maintaining that environment on my laptop has been challenging. For Scenario 1, I've thought of merging these two projects together into the same repository because they are, for all intents and purposes inextricably linked. But, Scenario 2, I think I'm stuck just managing files as best I can.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;The Question&lt;/strong&gt;&#xA;I'm wondering if anyone has any tips on how to manage either of these situations, as well as other complex SCM scenarios when it comes to linking various files from various repositories together. My familiarity with SVN only comes from my work with Versions. It's been great, but I'm a little out of my depth here.&lt;/p&gt;&#xA;" OwnerUserId="6419" LastActivityDate="2011-01-07T18:58:32.580" Title="Looking for tips on managing complexity with SCM repositories" Tags="&lt;best-practices&gt;&lt;svn&gt;" AnswerCount="1" />
  <row Id="34712" PostTypeId="2" ParentId="34710" CreationDate="2011-01-07T17:51:49.840" Score="3" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://codepaste.net/&quot; rel=&quot;nofollow&quot;&gt;CodePaste&lt;/a&gt; - contains code snippets of .NET languages.&lt;br&gt;&#xA;&lt;a href=&quot;http://snipplr.com/&quot; rel=&quot;nofollow&quot;&gt;Snipplr&lt;/a&gt; - mostly PHP, JavaScript code.&lt;/p&gt;&#xA;" OwnerUserId="6328" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2011-01-07T20:34:00.087" LastActivityDate="2011-01-07T20:34:00.087" CommentCount="5" />
  <row Id="34713" PostTypeId="2" ParentId="34710" CreationDate="2011-01-07T18:01:47.320" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://snipt.org/&quot; rel=&quot;nofollow&quot;&gt;snipt.org&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The list is pretty lengthy...note a language such as C# will show up as csharp&lt;/p&gt;&#xA;" OwnerUserId="3289" LastActivityDate="2011-01-07T18:01:47.320" />
  <row Id="34714" PostTypeId="1" AcceptedAnswerId="34752" CreationDate="2011-01-07T18:03:18.303" Score="3" ViewCount="209" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/15286/best-approach-to-learning-web-programming&quot;&gt;Best approach to learning web programming&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Background:&lt;/strong&gt; Developer with loads of experience in desktop computing. C++, Java etc&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Wants to dabble in:&lt;/strong&gt; Living social. Yeah, you guessed it right -- website development. Perhaps will need to learn PHP or Javascript, SOAP, XML etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Positives:&lt;/strong&gt; Knows nothing about ASP or jQuery -- clean slate really.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Whats that 1 piece of advice that you'd give here? Could be anything: choice of technology, frameworks, potential pitfall and portability issues etc.&lt;/strong&gt; &lt;/p&gt;&#xA;" OwnerUserId="8720" LastEditorUserId="8720" LastEditorDisplayName="" LastEditDate="2011-01-08T04:23:34.827" LastActivityDate="2011-01-08T04:23:34.827" ClosedDate="2011-01-08T12:48:37.497" Title="How do you transition from a desktop developer to a web based role?" Tags="&lt;web-development&gt;" AnswerCount="4" CommentCount="1" FavoriteCount="3" />
  <row Id="34715" PostTypeId="2" ParentId="34714" CreationDate="2011-01-07T18:09:38.087" Score="4" ViewCount="" Body="&lt;p&gt;Start out learning Javascript before diving into jQuery, Dojo or any other libraries.&lt;/p&gt;&#xA;" OwnerUserId="12290" LastActivityDate="2011-01-07T18:09:38.087" />
  <row Id="34717" PostTypeId="2" ParentId="34456" CreationDate="2011-01-07T18:14:01.690" Score="3" ViewCount="" Body="&lt;p&gt;My arguments for DVCS are these:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Branching isn't broken, which leads to less friction in developing features and keeping existing products patched. Friction costs money in time.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Moving to a modern system better attracts cutting-edge developers, which will lead to a culture of better products, which enables the business to sell more products.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Non-network commits are &lt;em&gt;faster&lt;/em&gt;, allowing the developers to commit often, leading to fine-grained bug detection and analysis.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Essentially, it's about reducing friction. There is a term for this: &lt;a href=&quot;http://en.wikipedia.org/wiki/Muda_%28Japanese_term%29&quot; rel=&quot;nofollow&quot;&gt;Muda&lt;/a&gt;. The more friction, the more of a pain it is to do things. The more pain, the less gets done, the fewer profits.&lt;/p&gt;&#xA;" OwnerUserId="148" LastActivityDate="2011-01-07T18:14:01.690" />
  <row Id="34718" PostTypeId="2" ParentId="34512" CreationDate="2011-01-07T18:16:04.033" Score="2" ViewCount="" Body="&lt;p&gt;I am from US and I call it &lt;em&gt;es-que-el&lt;/em&gt; but I have heard it called sequel many times, and even knowing the history I still dislike it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also aways call it &quot;select star&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Select all&quot; can be misleading if you tell someone to type &lt;em&gt;select all&lt;/em&gt; they might actually type &quot;&lt;code&gt;select all&lt;/code&gt;&quot; and &quot;select asterisk&quot; is a mouthful.&lt;/p&gt;&#xA;" OwnerUserId="1785" LastActivityDate="2011-01-07T18:16:04.033" />
  <row Id="34719" PostTypeId="2" ParentId="34714" CreationDate="2011-01-07T18:16:05.237" Score="1" ViewCount="" Body="&lt;p&gt;If you have done any kind of evented programming then you should be good to go for the client side stuff. As for the server side stuff I think most people start out with PHP/SQLite or PHP/MySQL and work their way up from there. I can't really comment on ASP and other microsoft tech but I hear .NET is also a pretty popular choice for web dev these days.&lt;/p&gt;&#xA;" OwnerUserId="7146" LastActivityDate="2011-01-07T18:16:05.237" CommentCount="3" />
  <row Id="34720" PostTypeId="2" ParentId="34714" CreationDate="2011-01-07T18:18:11.520" Score="3" ViewCount="" Body="&lt;p&gt;With a background in Java, I would start with Servlets and JSP.  If you don't mind the Head First series, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596005407&quot; rel=&quot;nofollow&quot;&gt;Head First Servlets and JSP&lt;/a&gt; is a very good introduction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Real Java web apps typically us a framework like Spring or Struts, and you will need to learn to deal with those eventually, but I think it is preferable to experience the problems that they attempt to solve before using them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for JavaScript/jQuery, they are not the first priority.  When you are ready, check out the &lt;a href=&quot;http://www.johndcook.com/blog/2009/09/28/javascript-picture/&quot; rel=&quot;nofollow&quot;&gt;Rhino and the Butterfly&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2329" LastEditorUserId="2329" LastEditorDisplayName="" LastEditDate="2011-01-07T18:30:59.717" LastActivityDate="2011-01-07T18:30:59.717" />
  <row Id="34721" PostTypeId="2" ParentId="2235" CreationDate="2011-01-07T18:23:34.870" Score="0" ViewCount="" Body="&lt;p&gt;I can think of three that have been indispensable, I image most software team have something similar. &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Custom environment setup scripts. I primarily use cygwin as my development environment and we have multiple projects that sometimes require different environmental setups. We have s script that sets up the environment based on a project name.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Build automation scripts. Fairly self explanatory, but we can build our entire product line. with one &quot;click of a button&quot;. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;Daily build script. Builds our entire product line daily and organizes the builds by date. It also emails the results to all the of the developers. &lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-07T18:23:34.870" />
  <row Id="34722" PostTypeId="2" ParentId="34122" CreationDate="2011-01-07T18:48:11.777" Score="0" ViewCount="" Body="&lt;p&gt;There are almost no business metrics that you can use. You have to treat the programmer as a mathematician or scientist. The only thing that's measured there is the impact or potential impact of the ideas/code. Would you count the number of lines in a proof written a mathematician?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if you do use a measurement, it will be treated as an optimization problem by the programmer depending on if it determines their wages. Another point is that programmer productivity varies from day to day, some days there's a lot of lines of code written, other times no new design ideas are thought of, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are some of the key performance indicators for an executive or manager? Maybe you should try using those for programmers since we also deal with ideas and thought-stuff.&lt;/p&gt;&#xA;" OwnerUserId="7433" LastActivityDate="2011-01-07T18:48:11.777" />
  <row Id="34723" PostTypeId="2" ParentId="34547" CreationDate="2011-01-07T18:51:26.407" Score="5" ViewCount="" Body="&lt;p&gt;In this case your general solution is much simpler. It neither uses the uniqueness assumption nor the squareness assumption which means conceptually it is much easier to understand. The general solution simply depends on the structure of the bit vectors being of a certain form and anyone can verify that your code works by simply looking at 2 cases of 2xM matrices because the path traversal algorithm you describe only needs to look at the next row and then branch according to what it sees. Whereas the more specific solution for the NxN case requires a more global picture because uniqueness is a more global property and and I don't see how understanding the solution to the simplest possible case generalizes to the NxN case. You probably would have gotten away with it if you didn't mention that your solution was more general. Some people instinctively reach for the nun's ruler when they see the words 'more general'.  &lt;/p&gt;&#xA;" OwnerUserId="7146" LastEditorUserId="7146" LastEditorDisplayName="" LastEditDate="2011-01-07T19:06:20.903" LastActivityDate="2011-01-07T19:06:20.903" CommentCount="1" />
  <row Id="34726" PostTypeId="2" ParentId="34711" CreationDate="2011-01-07T18:58:32.580" Score="1" ViewCount="" Body="&lt;p&gt;For the first problem, you should look at SVN subrepositories using an externals definition. You put the share code in its own repo, while the projects sharing the code each include an externals reference to the subrepo. If you commit updates to the shared code, you can also update the subrepo reference to refer to the new revision. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For the second problem, you could either use subrepos again (assuming the external project is also under SVN), or you could use the vendor branch model.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Both of these are well described in the on-line &lt;a href=&quot;http://svnbook.red-bean.com/&quot; rel=&quot;nofollow&quot; title=&quot;Version Control with Subversion&quot;&gt;SVN Book&lt;/a&gt; (externals definitions in chapter 3, and vendor branches in chapter 4).&lt;/p&gt;&#xA;" OwnerUserId="4817" LastActivityDate="2011-01-07T18:58:32.580" />
  <row Id="34727" PostTypeId="2" ParentId="34456" CreationDate="2011-01-07T18:59:30.883" Score="0" ViewCount="" Body="&lt;p&gt;Centralized version systems, especially for a large organization, can end up requiring a beefy central server. It's also a single point of failure and you need to worry about it all the time. Decentralized systems use the hardware your developers already have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Local versioning is fast, allowing less painful exploration. This speeds exploratory development.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Point-to-point collaboration (ad-hoc) with a colleague is very, very easy compared with a central system. This makes small-scale development easier.&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2011-01-07T18:59:30.883" />
  <row Id="34728" PostTypeId="2" ParentId="34559" CreationDate="2011-01-07T19:00:05.963" Score="0" ViewCount="" Body="&lt;p&gt;We keep track using the version control system or by placing &lt;code&gt;@author&lt;/code&gt; in the code. Another way to do it is to say more generally, that certain people were authors for whole modules or for the whole program. That encourages people to think of themselves as part of a team instead of as a cog in the machine that's responsible for exactly X number of functions or lines of code.&lt;/p&gt;&#xA;" OwnerUserId="7433" LastActivityDate="2011-01-07T19:00:05.963" />
  <row Id="34732" PostTypeId="2" ParentId="34559" CreationDate="2011-01-07T19:08:06.270" Score="2" ViewCount="" Body="&lt;p&gt;I like the &lt;em&gt;blame&lt;/em&gt; feature in GIT. You can see who authored each piece/line of code. Not just a file. &lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2011-01-07T19:08:06.270" CommentCount="1" />
  <row Id="34733" PostTypeId="2" ParentId="34584" CreationDate="2011-01-07T19:08:47.920" Score="-1" ViewCount="" Body="&lt;p&gt;I think the best way to explain to a non-technical type about OOP is to relate it to them. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially OOD &amp;amp; OOP want you to think about the system you are designing and implementing as a world of interacting things. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So lets, for the sake of argument (which never goes well on the internet), say you're explaining to a refuse collector about OOD&amp;amp;P. His name is Bob. You used to go to school with him 15 years ago, you've bumped into him at a bar, and you're both feigning interest in each other's lives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;So, John, you say you're a programmer. My nephew is into all that nonsense. Keeps going on about object orientated programming, or something. What's all that about?&quot; Note that Bob is British from the way he misspells oriented.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Well, Bob,&quot; you reply, cringing at orientated. &quot;It's quite simple really. You collect refuse, right? What, generally do you in your job?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Well, I follow the van around town picking up rubbish and putting it in the van,&quot; replies Bob, quizzically.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;Excellent. Well, imagine I'm writing a programme to simulate that. In object oriented design the first step is to determine what objects there are. In your job there seem to be streets, bins, you and the van. Those are our objects. Next we need to know what behaviours each object performs. I'm not sure how it works in the real world, but lets assume that you are told about street that need clearing. There is one behaviour - streets notify when they need clearing. That means that something needs to be listening out for streets that need clearing. I guess since you follow the van, the van will listen out for streets that need clearing - that's two. A third is, obviously, you follow the van. Another is you put rubbish in the van. You also spot if a bin is full. I guess the van will need to notify you when it is full, and you will need to listen out for that. Those are our behaviours. That's essentially all you need for the design. Object oriented programming is essentially how you implement the design. It differs from language to language.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bob has fallen asleep in his beer. You walk away.&lt;/p&gt;&#xA;" OwnerUserId="1069" LastActivityDate="2011-01-07T19:08:47.920" CommentCount="3" />
  <row Id="34734" PostTypeId="1" AcceptedAnswerId="34764" CreationDate="2011-01-07T19:10:31.863" Score="2" ViewCount="91" Body="&lt;p&gt;Our client has an eCommerce site which was developed by an in-house team, and is now showing its age. I work for a firm brought in as external contractors to build a replacement. Part of the current site is a Flash viewer applet which displays media about the product - zoom-able images, 360-degree views, movies, and so on. We need to show the same media the current site does, so we are simply reusing the viewer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The viewer is embedded on a page &lt;a href=&quot;http://code.google.com/p/swfobject/&quot; rel=&quot;nofollow&quot;&gt;in the usual way&lt;/a&gt;, and told what media to show by means of an XML file it loads from our server, which is pretty simple for us to generate. We've got this working; it was pretty straightforward.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But what else do we need to do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The thing is, as far as we're concerned, the viewer is a binary blob which is served from the client's content-distribution network. We embed it, feed it some XML, and it does its job, but we have no power over its internals. It's completely opaque to us - a black box. We can use it to do what it does, but we can't change it, so if we ever need to do something different, we're stuffed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We're building this site for the client, and when we're done, we'll hand it over for them to maintain. We won't be doing the maintenance ourselves. There's a small team within the client who are working as part of our team, and who will be the ones doing the maintenance. That team only includes one person from the team that built the old site, and it's not someone who knows the image viewer. The people who do know the image viewer are not slated to join our team when our system replaces theirs - they'll be moved to other projects. The documentation on the viewer is extremely thin, and as far as i know doesn't cover the internals at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My worry is that if someone doesn't take some positive action, all knowledge of the internal workings of the viewer - even down to where the source code for it is - will be lost. It's possible it already has been.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this something to worry about? If so, whose job is it to worry about it? What should they do about it once they've got worried?&lt;/p&gt;&#xA;" OwnerUserId="854" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2011-01-07T19:32:56.813" LastActivityDate="2011-01-07T20:47:08.620" Title="Do we need to adopt a black-box asset our project is inheriting from its predecessor?" Tags="&lt;project-management&gt;&lt;development-process&gt;&lt;client&gt;&lt;flash&gt;" AnswerCount="3" />
  <row Id="34735" PostTypeId="2" ParentId="2235" CreationDate="2011-01-07T19:13:28.853" Score="0" ViewCount="" Body="&lt;p&gt;At my previous company we had embedded code that had to be loaded on SD cards to bootload the units.  The files always had to have the exact same names and it was really easy to forget if you had the latest build on your SD card, so you'd always end up just rewriting the files before testing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wrote a simple program that used an MD5 hash and an XML dictionary of those hashes to correctly identify what was on your card and allowed you to hit a single button to update to the latest versions over the web.  This turned out to be such a simple and effective program we beefed it up a little and then gave copies to our customers so they could update our units without having to pay a technician.&lt;/p&gt;&#xA;" OwnerUserId="12455" LastActivityDate="2011-01-07T19:13:28.853" />
  <row Id="34736" PostTypeId="2" ParentId="2235" CreationDate="2011-01-07T19:16:39.007" Score="0" ViewCount="" Body="&lt;p&gt;I used to work at a large media content company and we had a system of templates that had to be duplicated and modified for each channel or important news that was added to our website. The process used to take at least one hour. &#xA;A colleague of mine wrote a template generator that could be configured according to the new channel/event info and it would generate everything neatly. The work was reduced from 1 hour to 5 minutes.&lt;/p&gt;&#xA;" OwnerUserId="3922" LastActivityDate="2011-01-07T19:16:39.007" />
  <row Id="34737" PostTypeId="1" CreationDate="2011-01-07T19:18:48.817" Score="37" ViewCount="2178" Body="&lt;p&gt;From a &lt;em&gt;reasonably&lt;/em&gt; common programming language, which do you find to be the most mind-bending?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been listening to a lot of programming podcasts and taking some time to learn some new languages that are being considered upcoming, and important.  I'm not necessarily talking about &lt;a href=&quot;http://en.wikipedia.org/wiki/Brainfuck&quot; rel=&quot;nofollow&quot;&gt;BrainFuck&lt;/a&gt;, but which language would you consider to be one that challenges the common programming paradigms?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, I did some functional and logic (ex. Prolog) programming in the 90s, so can't say that I find anything special there.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am &lt;em&gt;far&lt;/em&gt; from being an expert in it, but even today the most mind-bending programming language for me is &lt;strong&gt;Perl&lt;/strong&gt;.  Not because &lt;em&gt;&quot;Hello World&quot;&lt;/em&gt; is hard to implement but rather there is so much lexical flexibility that some of the hardest solutions can be decomposed so poetically that I have to walk outside away from my terminal to clear my head.  I'm not saying I'd likely sell a commercial software implementation, just that there is a distinct reason Perl is so (in)famous.  &lt;a href=&quot;http://oreilly.com/pub/topic/perl&quot; rel=&quot;nofollow&quot;&gt;Just look at the basic list of books on it.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, &lt;strong&gt;what is your mind-bending language that promotes your better programming and practices&lt;/strong&gt;?&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2011-01-07T19:25:52.743" LastActivityDate="2011-01-10T17:06:17.020" CommunityOwnedDate="2011-01-08T02:02:06.383" Title="The most mind-bending programming language?" Tags="&lt;programming-languages&gt;&lt;mind-bending&gt;" AnswerCount="24" CommentCount="9" FavoriteCount="16" />
  <row Id="34738" PostTypeId="2" ParentId="34734" CreationDate="2011-01-07T19:21:32.280" Score="5" ViewCount="" Body="&lt;p&gt;I would treat this as a risk to the project - at least with respect to long-term maintainability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As such, I would consider it an absolute minimum to document and advise your management (in this case, the company that hired you as consultants) that this situation exists.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you don't want (from a CYA) perspective, is for the team-member who is staff at that company to - some months/years from now - say that something is impossible because of this crufty thing that was created by some consulting company (even though you inherited it also).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As part of the risk mitigation strategy, you could outline alternatives, including open-source or commercial alternatives.  It is also possible that that the company actually has the appropriate source code and maintainers for the component, just that they were not assigned to this particular project, so don't overstate the case, just the facts as you see them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good Luck&lt;/p&gt;&#xA;" OwnerUserId="8668" LastActivityDate="2011-01-07T19:21:32.280" />
  <row Id="34739" PostTypeId="2" ParentId="34737" CreationDate="2011-01-07T19:23:22.107" Score="17" ViewCount="" Body="&lt;p&gt;I will agree with you on Perl. It's the most ugly syntax I've ever seen. They say, that even Perl developers cannot remember what they have written the day after.&lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2011-01-07T19:23:22.107" CommunityOwnedDate="2011-01-08T02:02:06.383" CommentCount="2" />
  <row Id="34740" PostTypeId="2" ParentId="34737" CreationDate="2011-01-07T19:25:45.177" Score="14" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Ruby&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;1.month.from.now()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;makes me want to kill myself.  (I could have the exact syntax wrong, but you get the point).&lt;/p&gt;&#xA;" OwnerUserId="9771" LastActivityDate="2011-01-07T19:25:45.177" CommunityOwnedDate="2011-01-08T02:02:06.383" CommentCount="20" />
  <row Id="34742" PostTypeId="2" ParentId="34570" CreationDate="2011-01-07T19:26:56.547" Score="3" ViewCount="" Body="&lt;p&gt;We had something similar happen at our company.  One of the developers used nHibernate on a project and eventually quit because of the negativity he received from some superiors.  I spoke with one of the superiors about this to find out thier reasons for downplaying nHibernate.  This is what I was told (may not have all of the facts but anyway)...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The company was not comfortable with using open-source libraries because: 1) They did not feel the support was there in case something went wrong. 2) They were concerned about possible future licensnig requirements (open source is not always free).  3) The were concerned about hidden code that could threaten security.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In addition to the reasons above, they were also concerned about the quality of the queries.  Since the queries are built dynamically through 3rd party software, there was little that could be done in terms of optimization or security.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another point was brought out that the library did not undergo a screening from the architectural committe.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, it was used without permission from upper management.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All of these reasons combined were enough to cause management to throw out the source code and have another developer re-wite it from scratch.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To sum up, I would suggest that you get open source libraries approved before using them in your projects.  This may not be what you want to hear, but it is frequently the way the corporate world thinks.  Lesson learned.&lt;/p&gt;&#xA;" OwnerUserId="11978" LastEditorUserId="11978" LastEditorDisplayName="" LastEditDate="2011-01-07T19:33:17.790" LastActivityDate="2011-01-07T19:33:17.790" CommentCount="3" />
  <row Id="34743" PostTypeId="2" ParentId="34737" CreationDate="2011-01-07T19:27:07.503" Score="25" ViewCount="" Body="&lt;p&gt;Prolog.  It was just so different than any other language I had used when I was first exposed to it.  I like it, so I don't hate the syntax or anything.&lt;/p&gt;&#xA;" OwnerUserId="4949" LastEditorUserId="4949" LastEditorDisplayName="" LastEditDate="2011-01-07T19:32:13.100" LastActivityDate="2011-01-07T19:32:13.100" CommunityOwnedDate="2011-01-08T02:02:06.383" CommentCount="5" />
  <row Id="34744" PostTypeId="2" ParentId="34737" CreationDate="2011-01-07T19:27:53.193" Score="19" ViewCount="" Body="&lt;p&gt;I would have to say Forth.  The notation that all operations are stack manipulations.  In its pure form there are no local variables to use.&lt;/p&gt;&#xA;" OwnerUserId="12497" LastActivityDate="2011-01-07T19:27:53.193" CommunityOwnedDate="2011-01-08T02:02:06.383" CommentCount="7" />
  <row Id="34745" PostTypeId="2" ParentId="34737" CreationDate="2011-01-07T19:28:15.017" Score="44" ViewCount="" Body="&lt;p&gt;Haskell. Very close to being purely functional, which most people are not accustomed to; very strict, which is helpful once you know what you're doing but frustrating until then; has a rather cryptic, highly symbolic syntax, which is great once you know it but opaque before that...the list goes on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, it's simply impossible to format the stuff in a way that looks good to me.&lt;/p&gt;&#xA;" OwnerUserId="2107" LastActivityDate="2011-01-07T19:28:15.017" CommunityOwnedDate="2011-01-08T02:02:06.383" CommentCount="38" />
  <row Id="34746" PostTypeId="2" ParentId="34710" CreationDate="2011-01-07T19:32:04.213" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.google.com&quot; rel=&quot;nofollow&quot;&gt;Google&lt;/a&gt; has tons! Almost any language you can think of!&lt;/p&gt;&#xA;" OwnerUserId="9987" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2011-01-07T20:33:36.357" LastActivityDate="2011-01-07T20:33:36.357" CommentCount="4" />
  <row Id="34747" PostTypeId="2" ParentId="34561" CreationDate="2011-01-07T19:42:35.653" Score="0" ViewCount="" Body="&lt;p&gt;For peer reviewed/scholarly papers on the subject, I would try &lt;strong&gt;&lt;a href=&quot;http://scholar.google.com/scholar?hl=en&amp;amp;q=outsourcing+trends+in+programming&amp;amp;as_sdt=8000000000000&amp;amp;as_ylo=2008&amp;amp;as_vis=1&quot; rel=&quot;nofollow&quot;&gt;scholar.google.com&lt;/a&gt;&lt;/strong&gt;.  &lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2011-01-07T19:42:35.653" />
  <row Id="34748" PostTypeId="2" ParentId="34609" CreationDate="2011-01-07T19:48:19.777" Score="0" ViewCount="" Body="&lt;p&gt;Set correct permissions on my sitemap (asp.net).  I have forgotten to set the roles up correctly and to have them match the web.config a bunch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More generally, just testing as alternate users/roles when changing something.  As a developer I'm always the Admin, I change something, it works.  I deploy, oops someone from Role X calls and tells me feature X is no longer available.&lt;/p&gt;&#xA;" OwnerUserId="12455" LastActivityDate="2011-01-07T19:48:19.777" CommunityOwnedDate="2011-01-07T19:48:19.777" />
  <row Id="34749" PostTypeId="2" ParentId="34473" CreationDate="2011-01-07T19:49:13.627" Score="0" ViewCount="" Body="&lt;p&gt;There are good reasons for not always using type inference. Haskell has type inference, but I usually declare function types explicitly anyway. That is partially a result of my development style. I declare the function first:&lt;pre&gt;&lt;code&gt;myFunction :: [Int] -&gt; Int&#xA;myFunction xs = undefined&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;Next, I'll write the code that uses that function and do a compile to make sure it type checks. Once it type checks, I'll go ahead with the implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other reason for declaring function types is that the declarations can serve as additional documentation. That this documentation is verified on every compile is a bonus.&lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2011-01-07T19:49:13.627" CommentCount="1" />
  <row Id="34750" PostTypeId="2" ParentId="34737" CreationDate="2011-01-07T19:52:20.443" Score="14" ViewCount="" Body="&lt;p&gt;Lisp is my latest mind-bending language. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've taken the monads and functional programming from Haskell with me, and now I have macros to work with. I'm just getting into CLOS and haven't touched the condition system at all. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2011-01-07T19:52:20.443" CommunityOwnedDate="2011-01-08T02:02:06.383" CommentCount="1" />
  <row Id="34751" PostTypeId="2" ParentId="34737" CreationDate="2011-01-07T20:06:04.253" Score="55" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/APL_%28programming_language%29&quot; rel=&quot;nofollow&quot;&gt;APL&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;This language is incredibly powerful and very terse, it &lt;em&gt;will&lt;/em&gt; hurt your brain.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For starters it's tricky to use without a custom keyboard, or at least a keyboard overlay to show up all the obscure symbols it uses.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/HSVJV.png&quot; alt=&quot;APL Keyboard&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then the language is of the vector/array-based paradigm and specialises towards complex linear algebra.  The original version did not even have loop constructs, anything and everything done by chaining rather unusual array operators together.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;strip_tags()&lt;/code&gt; anybody? (borrowed from Wikipedia)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/AnaFz.gif&quot; alt=&quot;strip_tags() ala APL&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2011-01-07T20:06:04.253" CommunityOwnedDate="2011-01-08T02:02:06.383" CommentCount="18" />
  <row Id="34752" PostTypeId="2" ParentId="34714" CreationDate="2011-01-07T20:09:04.123" Score="2" ViewCount="" Body="&lt;p&gt;Beyond the language suggestions of the others, I would say you take some time to learn some UI design and best practices. Often times when you are told to make a page you are left to decide how it should be laid out and knowing something about UI design will save you and your users a great deal of grief. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should also take some time learn about CSS. You can do a lot of great things with CSS, and properly setting up your style sheets save time with maintenance.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;These skills will benefit you regardless of what language you build with. &lt;/p&gt;&#xA;" OwnerUserId="2305" LastActivityDate="2011-01-07T20:09:04.123" CommentCount="3" />
  <row Id="34753" PostTypeId="2" ParentId="34570" CreationDate="2011-01-07T20:19:11.560" Score="7" ViewCount="" Body="&lt;p&gt;Two counter questions:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Do you care to improve?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've gotten plenty of feedback about not doing things well when I was doing a one-time thing that was neither the primary part of my role in the team, nor an area I particularly wanted to grow into.   If it was your intention to throw together something quick for a big push and you weren't trying to grow a project that must be maintained for years then having the perfect design and coding standards is a waste of time - IMO. If schedule is the ultimate driver, then you did the right thing by meeting it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;OTOH - if this is a project that will grow in complexity and need long term maintenance, then you may have a problem of lack of standards and differing expectations which will eventually lead to additional maintenance costs.  You're not the cause of the problem, but it behooves you to work on the solution - it may be a good time to start advocating for a &quot;right way&quot; to do things so that the whole company or team is working together.  Sometimes corporate culture doesn't get spelled out clearly, and you might have missed some unspoken, unexplained rule.  In that case, it might be good to know it, and to help get it more clearly codified for future work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Who is saying it?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that engineers love to evaluate and judge.  It's a part of our job, and it's a part of what makes a good engineer.  But you have to ask yourself - who is the person who's making the judgement call and do they have the right for their opinion to change your behavior.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;People who I listen to:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;My boss&lt;/li&gt;&#xA;&lt;li&gt;Coworkers I respect for their skills and good judgement&lt;/li&gt;&#xA;&lt;li&gt;My customers&lt;/li&gt;&#xA;&lt;li&gt;People who have the potential to be my boss, respected coworker or customer in the future.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In any of those cases, I'd take the criticism seriously enough to ask the source &quot;why do you say that?&quot;   Particularly in the area of the work being done &quot;incorrectly&quot;, you might have the good opportunity to learn a bit from someone who knows more, or who sees a picture of the industry you haven't seen yet, who might give you useful insights for improvement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're dealing with someone who you can't respect, or who doesn't have the background to make that judgement call, then my advice would be to check in with your boss, make sure you're cool and ignore it from there.  If you got the job done and the code works with an acceptable level of bugs, then you're good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you still really feel you're in the right, you may have the opportunity to become a teacher - if you can justify the use of the tool in a friendly debate with another developer, it may be that you've hit on something that will benefit your company in the long run.&lt;/p&gt;&#xA;" OwnerUserId="12061" LastActivityDate="2011-01-07T20:19:11.560" CommentCount="1" />
  <row Id="34754" PostTypeId="2" ParentId="2235" CreationDate="2011-01-07T20:23:26.047" Score="0" ViewCount="" Body="&lt;p&gt;I wrote a SQL parser for use at work. It can be very helpful to write a program to find all stored procedures that insert into a certain table, and with the parser I can get a list of exact matches as opposed to using LIKE and filtering through the results. &lt;/p&gt;&#xA;" OwnerUserId="5621" LastActivityDate="2011-01-07T20:23:26.047" />
  <row Id="34755" PostTypeId="2" ParentId="34737" CreationDate="2011-01-07T20:24:26.580" Score="2" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.jessrules.com/&quot; rel=&quot;nofollow&quot;&gt;JESS&lt;/a&gt; (Java Expert System Shell).  Embedded in a Java environment, this adaptation of &lt;a href=&quot;http://www.haskel.com/corp/details/0,10294,CLI1_DIV139_ETI9759,00.html&quot; rel=&quot;nofollow&quot;&gt;CLIPS&lt;/a&gt; is a functional rule based expert system language.  Trying to map real Java objects as &lt;em&gt;facts&lt;/em&gt; and find the right questions to ask to get the results you expect is a real challenge.  Less so if you are familiar with expert system theory, but when you are coming from a pure OOP mindset it doesn't fit well.  NOTE: CLIPS is not Lisp, but looks like it.  Yet another mind bender.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you get past the initial learning curve, it is pretty powerful and pretty darn quick to come up with the answers.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastEditorUserId="6509" LastEditorDisplayName="" LastEditDate="2011-01-07T20:47:21.953" LastActivityDate="2011-01-07T20:47:21.953" CommunityOwnedDate="2011-01-08T02:02:06.383" CommentCount="2" />
  <row Id="34756" PostTypeId="2" ParentId="34570" CreationDate="2011-01-07T20:26:39.993" Score="1" ViewCount="" Body="&lt;p&gt;My previous employer had a system for feedback which is the best I have ever seen. Feedback needs to be constructive and timely or else it is pointless. The comments you have been given are pointless - way too late, and no guidance as to what you should have done instead.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My thinking - either ask for specifics or ignore the comment.&lt;/p&gt;&#xA;" OwnerUserId="9062" LastActivityDate="2011-01-07T20:26:39.993" />
  <row Id="34757" PostTypeId="2" ParentId="34737" CreationDate="2011-01-07T20:27:44.287" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Tcl&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started to learn it once, but as I learned enough to make sense I really disliked the way it made my brain feel.  That would seem to qualify as mind-bending.&lt;/p&gt;&#xA;" OwnerUserId="2344" LastActivityDate="2011-01-07T20:27:44.287" CommunityOwnedDate="2011-01-08T02:02:06.383" CommentCount="1" />
  <row Id="34758" PostTypeId="2" ParentId="34012" CreationDate="2011-01-07T20:31:05.267" Score="3" ViewCount="" Body="&lt;p&gt;My particular favorite thing is to check in about the bigger picture. I often also solicit feedback about my personal performance, and fill my manager in on relevant status that may require their assistance.  But my big focus is usually on harvesting as much of the big picture as I can absorb.  That includes:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;current staffing needs/problems across the section/company&lt;/li&gt;&#xA;&lt;li&gt;future plans for my project&lt;/li&gt;&#xA;&lt;li&gt;state of current projects and future projects in the company&lt;/li&gt;&#xA;&lt;li&gt;state of the business in the industry&lt;/li&gt;&#xA;&lt;li&gt;comparison of what I see as important things we should be working on as a company vs. my manager's view point&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;For me, the single most important thing is to figure out &quot;what next?&quot; overall for the company so I can structure my focus and my current work to meet that objective.&lt;/p&gt;&#xA;" OwnerUserId="12061" LastActivityDate="2011-01-07T20:31:05.267" CommentCount="1" />
  <row Id="34759" PostTypeId="1" AcceptedAnswerId="34765" CreationDate="2011-01-07T20:32:22.830" Score="3" ViewCount="148" Body="&lt;p&gt;I am currently learning symfony and going through the book &lt;em&gt;A Gentle Introduction to symfony&lt;/em&gt; and came across this section in &quot;Chapter 4: The Basics of Page Creation&quot; on creating templates (or views):&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;If you need to execute some PHP code in the template, you should avoid using the usual PHP syntax, as shown in Listing 4-4. Instead, write your templates using the PHP alternative syntax, as shown in Listing 4-5, to keep the code understandable for non-PHP programmers.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Listing 4-4 - The Usual PHP Syntax, Good for Actions, But Bad for Templates&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;p&amp;gt;Hello, world!&amp;lt;/p&amp;gt;&#xA;&amp;lt;?php&#xA;if ($test) {&#xA;   echo &quot;&amp;lt;p&amp;gt;&quot;.time().&quot;&amp;lt;/p&amp;gt;&quot;;&#xA;} &#xA;?&amp;gt; &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;(The ironic thing about this is that the echo statement would look even better if time was a variable declared in the controller because then you could just embed the variable in the string instead of concatenating)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Listing 4-5 - The Alternative PHP Syntax, Good for Templates&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;p&amp;gt;Hello, world!&amp;lt;/p&amp;gt; &#xA;&amp;lt;?php if ($test): ?&amp;gt;&#xA;    &amp;lt;p&amp;gt;&amp;lt;?php echo time(); ?&amp;gt;&#xA;&amp;lt;/p&amp;gt;&amp;lt;?php endif; ?&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I fail to see how listing 4-5 makes the code &quot;understandable for non-PHP programmers&quot;, and its readability is shaky at best. 4-4 looks much more readable to me. Are there any programmers who are using symfony that write their templates like those in 4-4 rather than 4-5? Are there reasons I should use one over the other? There is the very slim chance that somewhere down the road someone less technical could be editing it the template, but how does 4-5 actually make it more understandable to them?&lt;/p&gt;&#xA;" OwnerUserId="6640" LastEditorUserId="6640" LastEditorDisplayName="" LastEditDate="2011-01-07T21:28:32.640" LastActivityDate="2011-01-08T03:18:56.490" Title="Am I wrong to disagree with A Gentle Introduction to symfony's template best practices?" Tags="&lt;web-development&gt;&lt;best-practices&gt;&lt;books&gt;&lt;web-framework&gt;" AnswerCount="6" CommentCount="1" />
  <row Id="34760" PostTypeId="2" ParentId="34570" CreationDate="2011-01-07T20:35:13.237" Score="2" ViewCount="" Body="&lt;p&gt;I know most people on here are commiserating with you, but in reality this may or may not have been &quot;cowboy programming&quot;. I have never used SubSonic, but it sounds like an ORM. Having used Hibernate, I can say that choosing an ORM casually is no trivial matter. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here's the thing - if everyone on the team decides to use whatever API they wish, whenever they wish, you end up with a lot of code with different dependencies. That means that at any given time, for someone else to maintain the code you have written they will need to not only correctly diagnose the problem, but also get up to speed on the API(s) used in that project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You say you saved &lt;em&gt;yourself&lt;/em&gt; a bunch of time with this project. But what about over the life of this project? What you have effectively decided is that everyone who touches this code will need to get up to speed on this tool. In reality you may have &lt;em&gt;cost&lt;/em&gt; the company time over the life of this project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not to mention that any time you just start using a new API, the chance of accidentally injecting a bug (because of your unfamiliarity) is greater than normal. So essentially you have also taken on risk with your choice. Can you honestly say that you have never used some non-trivial API and then some time later (sometimes much later) you realize you have not been using it quite right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Remember this axiom - you read code ten times as much as you write code. If you choose a technique that saves time writing, at the expense of time reading, you have created a false economy. &lt;/p&gt;&#xA;" OwnerUserId="5485" LastActivityDate="2011-01-07T20:35:13.237" CommentCount="2" />
  <row Id="34761" PostTypeId="1" CreationDate="2011-01-07T20:36:39.653" Score="2" ViewCount="306" Body="&lt;p&gt;I guess I should have pre-faced this with: &lt;strong&gt;Yes, I know there is no &lt;em&gt;need&lt;/em&gt; for a new templating language, but I want to make a new one anyway, because I'm a fool.&lt;/strong&gt; That aside, how can I improve my language:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's start with an example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;using &quot;html5&quot;&#xA;using &quot;extratags&quot;&#xA;&#xA;html {&#xA;    head {&#xA;        title &quot;Ordering Notice&quot;&#xA;        jsinclude &quot;jquery.js&quot;&#xA;    }&#xA;    body {&#xA;        h1 &quot;Ordering Notice&quot;&#xA;        p &quot;Dear @name,&quot;&#xA;        p &quot;Thanks for placing your order with @company. It's scheduled to ship on {@ship_date|dateformat}.&quot;&#xA;        p &quot;Here are the items you've ordered:&quot;&#xA;        table {&#xA;            tr {&#xA;                th &quot;name&quot;&#xA;                th &quot;price&quot;&#xA;            }&#xA;            for(@item in @item_list) {&#xA;                tr {&#xA;                    td @item.name&#xA;                    td @item.price&#xA;                }&#xA;            }&#xA;        }&#xA;        if(@ordered_warranty)&#xA;            p &quot;Your warranty information will be included in the packaging.&quot;&#xA;        p(class=&quot;footer&quot;) {&#xA;            &quot;Sincerely,&quot; br @company&#xA;        }&#xA;    }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The &quot;using&quot; keyword indicates which tags to use. &quot;html5&quot; might include all the html5 standard tags, but your tags names wouldn't have to be based on their HTML counter-parts at all if you didn't want to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &quot;extratags&quot; library for example might add an extra tag, called &quot;jsinclude&quot; which gets replaced with something like &lt;code&gt;&amp;lt;script type=&quot;text/javascript&quot; src=&quot;@content&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tags can be optionally be followed by an opening brace. They will automatically be closed at the closing brace. If no brace is used, they will be closed after taking one element.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Variables are prefixed with the &lt;code&gt;@&lt;/code&gt; symbol. They may be used inside double-quoted strings. I think I'll use single-quotes to indicate &quot;no variable substitution&quot; like PHP does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Filter functions can be applied to variables like &lt;code&gt;@variable|filter&lt;/code&gt;. Arguments can be passed to the filter &lt;code&gt;@variable|filter:@arg1,arg2=&quot;y&quot;&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Attributes can be passed to tags by including them in &lt;code&gt;()&lt;/code&gt;, like &lt;code&gt;p(class=&quot;classname&quot;)&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You will also be able to include partial templates like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for(@item in @item_list)&#xA;    include(&quot;item_partial&quot;, item=@item)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Something like that I'm thinking. The first argument will be the name of the template file, and subsequent ones will be named arguments where @item gets the variable name &quot;item&quot; inside that template. I also want to have a collection version like RoR has, so you don't even have to write the loop. Thoughts on this and exact syntax would be helpful :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some questions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Which symbol should I use to prefix variables? @ (like Razor), $ (like PHP), or something else?&lt;/li&gt;&#xA;&lt;li&gt;Should the @ symbol be necessary in &quot;for&quot; and &quot;if&quot; statements? It's kind of implied that those are variables.&lt;/li&gt;&#xA;&lt;li&gt;Tags and controls (like if,for) presently have the exact same syntax. Should I do something to differentiate the two? If so, what?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;This would make it more clear that the &quot;tag&quot; isn't behaving like just a normal tag that will get replaced with content, but controls the flow. Also, it would allow name-reuse.&lt;/li&gt;&#xA;&lt;li&gt;Like &lt;code&gt;tag&lt;/code&gt; would be a normal tag, but &lt;code&gt;@tag&lt;/code&gt; would be a directive like &lt;code&gt;@for&lt;/code&gt;, &lt;code&gt;@if&lt;/code&gt;, &lt;code&gt;@include&lt;/code&gt;, &lt;code&gt;@using&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Do you like the attribute syntax? (round brackets)&lt;/li&gt;&#xA;&lt;li&gt;How should I do template inheritance/layouts?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In Django, the first line of the file has to include the layout file, and then you delimit blocks of code which get stuffed into that layout.&lt;/li&gt;&#xA;&lt;li&gt;In CakePHP, it's kind of backwards, you specify the layout in the controller.view function, the layout gets a special &lt;code&gt;$content_for_layout&lt;/code&gt; variable, and then the entire template gets stuffed into that, and you don't need to delimit any blocks of code.&lt;/li&gt;&#xA;&lt;li&gt;I guess Django's is a little more powerful because you can have multiple code blocks, but it makes your templates more verbose... trying to decide what approach to take&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;li&gt;Filtered variables inside quotes:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;&quot;xxx {@var|filter} yyy&quot;&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&quot;xxx @{var|filter} yyy&quot;&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&quot;xxx @var|filter yyy&quot;&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;i.e, @ inside, @ outside, or no braces at all. I think no-braces might cause problems, especially when you try adding arguments, like &lt;code&gt;@var|filter:arg=&quot;x&quot;&lt;/code&gt;, then the quotes would get confused. But perhaps a braceless version could work for when there are no quotes...? Still, which option for braces, first or second? I think the first one might be better because then we're consistent... the @ is always nudged up against the variable.&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I'll add more questions in a few minutes, once I get some feedback.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Semi-colons:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm going to use semi-colons to close tags without content. For example, div; would output  and wouldn't eat the next token like it normally would. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Namespaces:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since I'll be defining the tags in straight C#, and C# supports namespaces, I think I'll just use that namespace and it'll work seamlessly. &lt;code&gt;namespace.tagname&lt;/code&gt;, but it won't be necessary to include the namespace unless you want to disambiguate. The most recently included (via @using directive) will take precedence. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;@Tom Anderson:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;div {&#xA;    p &quot;This is a paragraph&quot;&#xA;    p &quot;This is another paragraph&quot;&#xA;}&#xA;&#xA;span(class=&quot;error&quot;) &quot;This is going to be bright red&quot;&#xA;&#xA;img(src=&quot;smiley.png&quot;, alt=&quot;:)&quot;)&#xA;&#xA;p {&#xA;    &quot;This &quot; a(href=&quot;about-paragraphs.html&quot;) &quot;paragraph&quot; &quot; contains a link.&quot;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="7390" LastEditorUserId="7390" LastEditorDisplayName="" LastEditDate="2011-01-08T01:23:42.983" LastActivityDate="2011-01-08T01:42:59.137" Title="Thoughts on my new template language/HTML generator?" Tags="&lt;feedback&gt;&lt;template-language&gt;" AnswerCount="3" CommentCount="17" FavoriteCount="3" />
  <row Id="34762" PostTypeId="2" ParentId="34759" CreationDate="2011-01-07T20:40:25.190" Score="2" ViewCount="" Body="&lt;p&gt;This is completely subjective.  'More understandable' depends on the person doing the reading.  Use whatever form &lt;strong&gt;you&lt;/strong&gt; think is best.&lt;/p&gt;&#xA;" OwnerUserId="897" LastActivityDate="2011-01-07T20:40:25.190" CommentCount="4" />
  <row Id="34763" PostTypeId="2" ParentId="32785" CreationDate="2011-01-07T20:41:11.933" Score="1" ViewCount="" Body="&lt;p&gt;In C++ you would probably want to start your search by reading up on CBT (Computer Based Training) Hooks. These hooks allow you to catch all key strokes regardless of the application focus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you prefer a C# .Net solution you should look into setting keyboard hooks with the SetWindowsHookEx with the parameter of WH_KEYBOARD_LL. That should work to capture events for you regardless of focus.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the difficult part of this question is more related to once you have the information how do you process it and send it the target application in an efficient manner so the user doesn't experience a lag between key press and text appearing on the screen.&lt;/p&gt;&#xA;" OwnerUserId="4220" LastActivityDate="2011-01-07T20:41:11.933" CommentCount="1" />
  <row Id="34764" PostTypeId="2" ParentId="34734" CreationDate="2011-01-07T20:43:07.790" Score="1" ViewCount="" Body="&lt;p&gt;As I see it you have a choice between two problems.  Black boxes have rarely worked for me, and are difficult to feed and care for.  However, you've figured that part out--something that works for now.  On the other hand, while the technology exists to replace the black box you have to determine if it is &lt;em&gt;worth&lt;/em&gt; replacing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Pros for Keeping the Black Box&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's in place.&lt;/li&gt;&#xA;&lt;li&gt;It does everything your client needs right now.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Cons for Keeping the Black Box&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's unknown, both stability and security wise&lt;/li&gt;&#xA;&lt;li&gt;The integration is a kludge, and possibly brittle&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Pros for Replacing the Black Box&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You have control over the inner workings&lt;/li&gt;&#xA;&lt;li&gt;You can extend it to do new things your client hasn't thought about yet.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Cons for Replacing the Black Box&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you build it, you have to support it&lt;/li&gt;&#xA;&lt;li&gt;It might be a bigger project than you expected (this is a big potential risk)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You'll have to do your due diligence to flesh out these pro/con tables with the information you have.  If I were in your shoes, knowing that the solution works, and knowing that the relationship is not intended to be an ongoing relationship I would opt to keep the black box.  Document your decision and integration process, and let whoever comes along next worry about it.  If the relationship were going to be a long term one where we have a series of new features over time planned out, I would take a serious look at replacing the black box.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider your time, budget, and potential future revenue before making your final determination.  There's no &lt;em&gt;technical&lt;/em&gt; reason to have to keep the black box.  The only reasons would be &lt;em&gt;contractual&lt;/em&gt; or just because the oportunity cost is too great (i.e. you won't be able to deliver other features to replace this).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I hope this helps.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2011-01-07T20:43:07.790" />
  <row Id="34765" PostTypeId="2" ParentId="34759" CreationDate="2011-01-07T20:43:07.943" Score="5" ViewCount="" Body="&lt;p&gt;The second example uses plain html and I think it is more understandable if you include large blocks of html (for example a login form if the user is not logged in) and only very few values from php-functions. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In this very smallscale example it doesn't show, I think, and I would prefer pure html for smaller things like individual cells with hardly any html.&lt;/p&gt;&#xA;" OwnerUserId="9237" LastActivityDate="2011-01-07T20:43:07.943" CommentCount="2" />
  <row Id="34766" PostTypeId="2" ParentId="34710" CreationDate="2011-01-07T20:45:55.120" Score="1" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://snipt.net/public&quot; rel=&quot;nofollow&quot;&gt;Snipt.net&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;https://gist.github.com/gists&quot; rel=&quot;nofollow&quot;&gt;Github's Gists&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;You can perform some keywords search from those sites.&lt;/p&gt;&#xA;" OwnerUserId="5968" LastActivityDate="2011-01-07T20:45:55.120" />
  <row Id="34767" PostTypeId="2" ParentId="34734" CreationDate="2011-01-07T20:47:08.620" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;the [component] is a binary blob .... We embed it, feed it some XML, and it does its job, but we have no power over its internals. It's completely opaque to us - a black box. We can use it to do what it does, but we can't change it, so if we ever need to do something different, we're stuffed.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Are you talking about the operating system?   The database?  The web server?  The LDAP server?  The Javascript engine in the browser?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I put in &lt;em&gt;[component]&lt;/em&gt; I saw that your comment is true for a large number of elements of your technology stack.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why worry about just one?  Why not worry about them all?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or, conversely, why worry about any of them?&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-07T20:47:08.620" CommentCount="4" />
  <row Id="34768" PostTypeId="1" AcceptedAnswerId="34782" CreationDate="2011-01-07T20:50:29.597" Score="4" ViewCount="284" Body="&lt;p&gt;There are so many frameworks for writing GUI application using Python. But is there any one key standard framework? For example we have a bundle of .NET/C# on Visual Studio.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am thinking in other perspectives also. In future if I give an interview for a Python programmer job, which GUI framework will be considered?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also wonder, there is no IDE that integrates the GUI and Python language. Choice of flavor is good but over-choice becomes a distraction.&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2011-01-07T22:10:55.610" Title="Is there any one standard framework for developing Python GUI apps.?" Tags="&lt;python&gt;" AnswerCount="3" CommentCount="5" FavoriteCount="1" />
  <row Id="34769" PostTypeId="2" ParentId="34768" CreationDate="2011-01-07T20:55:46.583" Score="1" ViewCount="" Body="&lt;p&gt;pyGTK is prolific. It's pretty easy to use and makes GUIs that don't look half bad.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2011-01-07T20:55:46.583" CommentCount="5" />
  <row Id="34770" PostTypeId="2" ParentId="34737" CreationDate="2011-01-07T21:01:23.927" Score="4" ViewCount="" Body="&lt;p&gt;I would say from the lengths that many people go to avoid having to directly write it, that devs find SQL to be mind-bending. I guess many people just don't naturally think in terms of sets. &lt;/p&gt;&#xA;" OwnerUserId="1093" LastActivityDate="2011-01-07T21:01:23.927" CommunityOwnedDate="2011-01-08T02:02:06.383" CommentCount="8" />
  <row Id="34771" PostTypeId="2" ParentId="34768" CreationDate="2011-01-07T21:02:56.330" Score="6" ViewCount="" Body="&lt;p&gt;Tk used to be the standard, but it's arguably simplistic and ugly.  Then Qt became pretty popular.  Gtk is also possible, and that covers the favorites on Linux-ish platforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But you're right, there is really no no-brainer answer. Over-choice is pretty common in the open source world, after all.&lt;/p&gt;&#xA;" OwnerUserId="3404" LastActivityDate="2011-01-07T21:02:56.330" CommentCount="2" />
  <row Id="34772" PostTypeId="2" ParentId="34737" CreationDate="2011-01-07T21:07:20.153" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;MUMPS&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a language that pops up from &lt;a href=&quot;http://thedailywtf.com/Articles/A_Case_of_the_MUMPS.aspx&quot; rel=&quot;nofollow&quot;&gt;time&lt;/a&gt; to &lt;a href=&quot;http://thedailywtf.com/Articles/MUMPS-Madness.aspx&quot; rel=&quot;nofollow&quot;&gt;time&lt;/a&gt; in stories online and has the added honor of being in actual production use storing critical life-safety information (i.e. patient records). However, this is also a language where terseness is appreciated and functions such as the following might appear in production code (example from the &lt;a href=&quot;http://en.wikipedia.org/wiki/MUMPS&quot; rel=&quot;nofollow&quot;&gt;Wikipedia article&lt;/a&gt; on the topic):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;s A=&quot;String&quot; F i=1:1:$L(A) W $c($S($A($E(A,i))&amp;lt;91:$A($E(A,i))-52#26+65,1:$A($E(A,i))-84#26+97))&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2471" LastEditorUserId="2471" LastEditorDisplayName="" LastEditDate="2011-01-07T21:14:24.387" LastActivityDate="2011-01-07T21:14:24.387" CommunityOwnedDate="2011-01-08T02:02:06.383" CommentCount="9" />
  <row Id="34773" PostTypeId="1" CreationDate="2011-01-07T21:10:33.420" Score="4" ViewCount="62" Body="&lt;p&gt;Obviously, the easiest way to solve a bug is to be able to reproduce it in-house. However, sometimes that is not practical. For starters, users are often not very good at providing you with useful information.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Customer Service: &quot;what seems to be the issue?&quot;&lt;br&gt;&#xA;  User: &quot;It crashed!&quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;To further compound that, sometimes the bug only occurs under certain environmentally conditions that can not be adequately replicated in-house. With that in mind, it is important to build some sort of diagnostic framework into your product. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What types of built-in diagnostic tools have you used or seen used?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Logging seems to be the predominate method, which makes sense. We have a fairly sophisticated logging frame work in place with different levels of verbosity and the ability to filter on specific modules (actually we can filter down to the granularity of a single file). Error logs are placed strategically to manufacture a pretty good representation of a stack trace when an error occurs. We don't have the luxury of 10 million terabytes of disk space since I work on embedded platforms, so we have two ways of getting them off the system: a serial port and a syslog server.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, an issue we run into sometimes is actually getting the user to turn the logs on. Our current framework often requires some user interaction. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="63" LastEditorDisplayName="" LastEditDate="2011-01-07T22:22:12.337" LastActivityDate="2011-01-07T22:22:12.337" Title="What features are helpful when performing remote debugging / diagnostics?" Tags="&lt;debugging&gt;&lt;support&gt;&lt;logging&gt;&lt;diagnostics&gt;" AnswerCount="4" CommentCount="4" FavoriteCount="1" />
  <row Id="34774" PostTypeId="2" ParentId="34710" CreationDate="2011-01-07T21:10:50.523" Score="1" ViewCount="" Body="&lt;p&gt;For searching code, you can try either: &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.google.com/codesearch&quot; rel=&quot;nofollow&quot;&gt;http://www.google.com/codesearch&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&#xA;&lt;p&gt;github.com/search&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For saving snippets, I also like gist.github.com&lt;/p&gt;&#xA;" OwnerUserId="2067" LastActivityDate="2011-01-07T21:10:50.523" CommentCount="1" />
  <row Id="34775" PostTypeId="1" AcceptedAnswerId="34788" CreationDate="2011-01-07T21:16:25.817" Score="15" ViewCount="1535" Body="&lt;p&gt;The &lt;a href=&quot;http://en.wiktionary.org/wiki/yak_shaving&quot; rel=&quot;nofollow&quot;&gt;wiktionary&lt;/a&gt; has two different definitions:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;  &lt;li&gt;Any apparently useless activity which, by allowing you to overcome intermediate difficulties, allows you to solve a larger problem.&lt;/li&gt;&#xA;  &lt;li&gt;The actually useless activity you do that appears important when you are consciously or unconsciously procrastinating about a larger problem.&lt;/li&gt;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://projects.csail.mit.edu/gsb/old-archive/gsb-archive/gsb2000-02-11.html&quot; rel=&quot;nofollow&quot;&gt;This post&lt;/a&gt; defines it as:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;yak shaving is what you are doing when you're doing some&#xA;  stupid, fiddly little task that bears no obvious relationship to what&#xA;  you're supposed to be working on, but yet a chain of twelve causal&#xA;  relations links what you're doing to the original meta-task.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I personally prefer the final definition because it contains the word &quot;fiddly&quot; which I think perfectly describes a typical yak shaving task.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the best definition you've come across or can provide?&lt;/p&gt;&#xA;" OwnerUserId="1578" LastActivityDate="2011-01-08T07:09:25.997" Title="Correct definition of the term &quot;Yak Shaving&quot;" Tags="&lt;productivity&gt;" AnswerCount="6" CommentCount="12" FavoriteCount="3" />
  <row Id="34776" PostTypeId="2" ParentId="34773" CreationDate="2011-01-07T21:21:42.280" Score="1" ViewCount="" Body="&lt;p&gt;There are various answers depending on the level of control you have over the target platform and the trust between you and the client.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are tightly bound, you may be able to do actual remote debugging.  This is &lt;em&gt;unlikely&lt;/em&gt; to occur.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your options quickly devolve to log files and crash-dumps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should likely have some kind of logging framework already in place in your code.  If you do not, pick one appropriate to your language and environment.  Make it usefully toggle-able between various levels of logging.  Pay attention to what you log - remember you will be psychic debugging from the very strings you emit in the log.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Alternately, you can use crash-dumps - like core dumps on unix or minidump on windows.  These store the internal state of your program at a point in time.  You can then load that into a debugger locally to see the state of your system before it died.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hope this gives you some general hints as to getting started.&lt;/p&gt;&#xA;" OwnerUserId="8668" LastActivityDate="2011-01-07T21:21:42.280" />
  <row Id="34777" PostTypeId="2" ParentId="34737" CreationDate="2011-01-07T21:21:45.703" Score="3" ViewCount="" Body="&lt;p&gt;I pick &lt;a href=&quot;http://www.mercury.csse.unimelb.edu.au/index.html&quot; rel=&quot;nofollow&quot;&gt;mercury&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Mercury bent my mind by showing me that even pure languages can do IO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The way this works is that IO functions in mercury take a 'state of the world' value and return a new 'state of the world' value. So IO functions in mercury transform the world and hence purity is maintained.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastEditorUserId="10037" LastEditorDisplayName="" LastEditDate="2011-01-07T21:37:11.723" LastActivityDate="2011-01-07T21:37:11.723" CommunityOwnedDate="2011-01-08T02:02:06.383" CommentCount="3" />
  <row Id="34778" PostTypeId="2" ParentId="34759" CreationDate="2011-01-07T21:23:17.107" Score="1" ViewCount="" Body="&lt;p&gt;NO, you are not wrong to disagree. Writers of books are not gods! At the time, the author might have thought that that was a better convention, but obviously that just his opinion.&lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-07T21:23:17.107" CommentCount="1" />
  <row Id="34779" PostTypeId="2" ParentId="34773" CreationDate="2011-01-07T21:27:06.007" Score="3" ViewCount="" Body="&lt;p&gt;We have two tools to handle that where I work.  The first is an exception reporting tool.  You add it to the project file and make sure the linker generates a map file, and when an unhandled exception gets raised it will gather information, write out a crash file, and email it to us.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The second is logging.  By making a log of significant execution points, we have a roadmap to what the EXE was doing just before an error occurred, which can really help track down problems.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try adding these two features to your project and see if they don't help you track down errors at the client's site more easily.&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2011-01-07T21:27:06.007" CommentCount="2" />
  <row Id="34780" PostTypeId="2" ParentId="34737" CreationDate="2011-01-07T21:36:26.963" Score="5" ViewCount="" Body="&lt;p&gt;I used to use an ancient editor called TECO (Text Editor and COmparator), which was a very powerful text modification language, with all sorts of macro capability. I don't remember the exact famous quote about it but the gist was&quot;any random collection of 20 characters is almost always a legitimate TECO program, and will change your file (it is an editor) in a fundamentally unpredicatable manner. I remember writing a Fortran to PL1 converter in about a page of TECO code.&lt;/p&gt;&#xA;" OwnerUserId="8890" LastActivityDate="2011-01-07T21:36:26.963" CommunityOwnedDate="2011-01-08T02:02:06.383" CommentCount="6" />
  <row Id="34781" PostTypeId="2" ParentId="34737" CreationDate="2011-01-07T21:39:06.400" Score="4" ViewCount="" Body="&lt;h1&gt;&lt;a href=&quot;http://code.google.com/p/pure-lang/&quot; rel=&quot;nofollow&quot;&gt;pure&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Pure is a functional language based on term rewriting.  I like it, it is both sparse and expressive, if a little bit understated.&lt;/p&gt;&#xA;" OwnerUserId="12009" LastEditorUserId="12009" LastEditorDisplayName="" LastEditDate="2011-01-08T21:36:39.350" LastActivityDate="2011-01-08T21:36:39.350" CommunityOwnedDate="2011-01-08T02:02:06.383" CommentCount="1" />
  <row Id="34782" PostTypeId="2" ParentId="34768" CreationDate="2011-01-07T21:40:13.683" Score="2" ViewCount="" Body="&lt;p&gt;You can write Win32 API GUI apps in Python, if you like writing all that boilerplate code: &lt;a href=&quot;http://sourceforge.net/projects/pywin32/&quot; rel=&quot;nofollow&quot;&gt;PyWin32 project&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I like &lt;a href=&quot;http://www.wxpython.org/&quot; rel=&quot;nofollow&quot;&gt;wxPython&lt;/a&gt;. It is cross-platform (fully supported on both Linux and Windows) and has been around for quite some time ... decent support base, and lots of documentation/example code. If you want to use this, take a look at &lt;a href=&quot;http://boa-constructor.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;BoaConstructor&lt;/a&gt;. That is the IDE for wxPython (or perhaps better stated, an IDE written in and for wxPython). It is the only RAD IDE &lt;em&gt;specifically&lt;/em&gt; for Python that I have come across that is even worth mentioning, save the Qt UI editor (Qt's UI editor is usable for both C++ and PyQT).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As Peter mentioned in his answer, Tk is the defacto GUI for older Python apps, but they really do not look all that pretty to the end user. There are some extensions for it that make it look a little better and provide some ability to style the UI, but unless you are maintaining an older GUI app I would not suggest bothering with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;pyGTK, also already mentioned, would be another good choice. It, too, is cross-platform, though I have not had any personal experience with GTK development on Windows. &lt;a href=&quot;http://www.riverbankcomputing.co.uk/software/pyqt/intro&quot; rel=&quot;nofollow&quot;&gt;PyQT&lt;/a&gt; would be a better choice, IMO - I think the GUI's created with the Qt library both look and function superior to those made with GTK. I also find Qt's signal/slot event mechanism to be easier to work with. YMMV.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There really is not any standard out there for Python GUI development, at least not that I have seen, but of my fellow Python developers that I have worked with over the years, they have suggested to me wxPython and PyQT more than any of the other toolkits. I'm not sure if there is any substantial number of Python GUI development positions out there, to be honest. Most of the Python development I have done over the years has been server-side, but that's not to say that there are not various businesses now looking to go the open source route for their GUI apps.&lt;/p&gt;&#xA;" OwnerUserId="8326" LastEditorUserId="8326" LastEditorDisplayName="" LastEditDate="2011-01-07T22:10:55.610" LastActivityDate="2011-01-07T22:10:55.610" />
  <row Id="34783" PostTypeId="2" ParentId="34761" CreationDate="2011-01-07T21:42:42.743" Score="3" ViewCount="" Body="&lt;p&gt;First thought: &quot;Oh no, not another one!&quot;&#xA;Second thought: &quot;Well, at least that was a unique concept&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You make a &quot;template&quot; language that in fact isn't a template language at all, as it bears no relation to the output. It more strictly a HTML generating language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The idea is interesting, mostly because it has a much cleaner syntax than HTML. But it has one major drawback: No HTML-editor would understand it. Therefore it is only useful for HTML that is more generated than templated. That's definitely an interesting concept, as HTML technology is going more and more towards having HTML only doing content, and designing either with CSS or XSLT or both.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But do you really need a language for this? Building HTML is possible with modules in most languages, and although the syntax would be different, the code would end up looking quite similar. It wouldn't be to difficult to do something similar with say lxml or BeautifulSoup in Python. Maybe it would be less clean, but it would also not require you to learn another language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My preferred technique is still to gather all data in the programming language (python in my case) and have a rather stupid template language that just formats it into HTML. (Unfortunately I never get to use my favorite: &lt;a href=&quot;http://pypi.python.org/pypi/templess/&quot; rel=&quot;nofollow&quot;&gt;Templess&lt;/a&gt;, so it remains a favorite in theory only.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In any case I'd prefer using a more Pythonic syntax. It's even cleaner:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;html:&#xA;  head:&#xA;    title: &quot;Ordering Notice&quot;&#xA;    jsinclude: &quot;jquery.js&quot;&#xA;  body:&#xA;    h1: &quot;Ordering Notice&quot;&#xA;    p: &quot;Dear @name,&quot;&#xA;    p: &quot;Thanks for placing your order with @company. It's scheduled to ship on {@ship_date|dateformat}.&quot;&#xA;    p: &quot;Here are the items you've ordered:&quot;&#xA;    table:&#xA;        tr:&#xA;            th: &quot;name&quot;&#xA;            th: &quot;price&quot;&#xA;        for item in item_list:&#xA;            tr:&#xA;              th: item.name&#xA;              td: item.price&#xA;    if ordered_warranty:&#xA;        p: &quot;Your warranty information will be included in the packaging.&quot;&#xA;        p(class=&quot;footer&quot;):&#xA;          &quot;Sincerely,&quot; br @company # I don't understand this line&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="9529" LastEditorUserId="9529" LastEditorDisplayName="" LastEditDate="2011-01-07T21:48:06.153" LastActivityDate="2011-01-07T21:48:06.153" CommentCount="5" />
  <row Id="34784" PostTypeId="2" ParentId="34773" CreationDate="2011-01-07T21:44:31.050" Score="0" ViewCount="" Body="&lt;p&gt;Have it dump &lt;strong&gt;&lt;em&gt;everything&lt;/em&gt;&lt;/strong&gt; that it can into something that can be sent (optionally) to you the next time it runs. That is the best possible way that I can describe to get insights into what happened so that you spend the least amount of time possible on a customer's computer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just like any science, simply &lt;em&gt;observing&lt;/em&gt; things often results in different than typical behavior than normal. You really want the program to tell you why it died. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I work mostly with UNIX like operating systems, so my examples might not be a quick fix, but hopefully they illustrate the thinking:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Handle any fatal signal or error that you can handle and log it when appropriate. You need to know why a program (or its kernel) decided that there was just no more point in living.&lt;/li&gt;&#xA;&lt;li&gt;Have 'odd' but non-fatal things in your program notify the user that additional logging will take place, and that things don't seem to be going as planned. This helps save user confidence while reducing on brain picking from vendors.&lt;/li&gt;&#xA;&lt;li&gt;When asking users if they want to send error reports, specifically say &quot;This may result in a fix for this problem being issued shortly&quot;, and make sure that fixes do come of it most of the time. Don't word it like &quot;This helps us &lt;em&gt;improve&lt;/em&gt;&quot; , as that is problem agnostic and not what an irate user wants to see.&lt;/li&gt;&#xA;&lt;li&gt;When possible, use checkpointing. This lets you replay and recreate the issue until it is solved. In the day and age of virtualization, this is becoming a broader possibility.&lt;/li&gt;&#xA;&lt;li&gt;Realize that clients tend to 'clean up' a bit prior to offering their PC to someone else. You might not be able to reproduce the issue, even on their computer. Just wonder what isn't there that was there before.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;You must be transparent when gathering data, but you'd be amazed what people will give you if you can convince them that doing so is for their immediate benefit.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2011-01-07T21:44:31.050" />
  <row Id="34785" PostTypeId="1" CreationDate="2011-01-07T21:45:57.167" Score="8" ViewCount="199" Body="&lt;p&gt;Licensing is something that I really haven't paid any attention to; I guess I felt there was no need. However I can't but help thinking that I should.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So which are the most common licenses that I, as a programmer, should be aware of? Also, it would be helpful if you could include a brief description of each provided.&lt;/p&gt;&#xA;" OwnerUserId="2210" LastEditorUserId="2210" LastEditorDisplayName="" LastEditDate="2011-01-08T10:59:00.240" LastActivityDate="2011-01-08T10:59:00.240" Title="Which software licenses should I be aware of?" Tags="&lt;license&gt;&lt;licensing&gt;" AnswerCount="7" CommentCount="5" FavoriteCount="4" />
  <row Id="34786" PostTypeId="2" ParentId="34775" CreationDate="2011-01-07T21:46:05.813" Score="1" ViewCount="" Body="&lt;p&gt;The post you link to has it right.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you're supposed to be doing laundry but end up shaving a yak instead, through a perfectly reasonable-seeming series of events.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it escalates negatively, you get &lt;a href=&quot;http://xkcd.com/349/&quot; rel=&quot;nofollow&quot;&gt;this comic...&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="2983" LastActivityDate="2011-01-07T21:46:05.813" CommentCount="1" />
  <row Id="34787" PostTypeId="2" ParentId="34122" CreationDate="2011-01-07T21:57:17.983" Score="0" ViewCount="" Body="&lt;p&gt;I would say that you need to align metrics from the business units to the programming. Programmers don't want that because they feel the business unit will screw up and they won't look good. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My answer is: Dude--or Dudette--work with your business users and make awesome tools for them that will make them ultra productive and their success will be your success. &lt;/p&gt;&#xA;" OwnerUserId="5983" LastActivityDate="2011-01-07T21:57:17.983" />
  <row Id="34788" PostTypeId="2" ParentId="34775" CreationDate="2011-01-07T22:01:08.510" Score="24" ViewCount="" Body="&lt;p&gt;Courtesy of &lt;a href=&quot;http://sethgodin.typepad.com/seths_blog/2005/03/dont_shave_that.html&quot; rel=&quot;nofollow&quot;&gt;Seth Godin&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Yak Shaving is the last step of a&#xA;  series of steps that occurs when you&#xA;  find something you need to do. &quot;I want&#xA;  to wax the car today.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;Oops, the hose is still broken from&#xA;  the winter. I'll need to buy a new one&#xA;  at Home Depot.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;But Home Depot is on the other side&#xA;  of the Tappan Zee bridge and getting&#xA;  there without my EZPass is miserable&#xA;  because of the tolls.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;But, wait! I could borrow my&#xA;  neighbor's EZPass...&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;Bob won't lend me his EZPass until I&#xA;  return the mooshi pillow my son&#xA;  borrowed, though.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;And we haven't returned it because&#xA;  some of the stuffing fell out and we&#xA;  need to get some yak hair to restuff&#xA;  it.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;And the next thing you know, you're at&#xA;  the zoo, shaving a yak, all so you can&#xA;  wax your car.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="5328" LastActivityDate="2011-01-07T22:01:08.510" CommentCount="6" />
  <row Id="34789" PostTypeId="2" ParentId="34785" CreationDate="2011-01-07T22:01:16.137" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The MIT licence&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Aleister Crowley Twitter summary is &quot;Do what Thou wilt (provided ye give me credit)&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can &lt;a href=&quot;http://en.wikipedia.org/wiki/MIT_License&quot; rel=&quot;nofollow&quot;&gt;easily find&lt;/a&gt; the exact form of the MIT licence, so I'll talk about what the licence is good for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a permissive licence, which means that other people can easily use your code. In particular, they can use your code to make money. The licence obligation on the part of the user is simply to include your copyright notice in all copies or substantial parts of their software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's the licence you'd use to ensure the maximum takeup of your software, when you don't care that someone else could use your software to build something and not share their innovations.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastEditorUserId="1254" LastEditorDisplayName="" LastEditDate="2011-01-07T22:49:32.587" LastActivityDate="2011-01-07T22:49:32.587" CommentCount="1" />
  <row Id="34790" PostTypeId="2" ParentId="34785" CreationDate="2011-01-07T22:05:03.763" Score="3" ViewCount="" Body="&lt;p&gt;The big open source ones to look up are the &lt;strong&gt;BSD&lt;/strong&gt; and &lt;strong&gt;MIT&lt;/strong&gt; on one hand (permissive, just require giving credit) and &lt;strong&gt;GPL&lt;/strong&gt; and &lt;strong&gt;Apache&lt;/strong&gt; (share alike, more restrictions). &lt;/p&gt;&#xA;" OwnerUserId="5328" LastEditorUserId="5328" LastEditorDisplayName="" LastEditDate="2011-01-07T22:11:21.507" LastActivityDate="2011-01-07T22:11:21.507" CommentCount="2" />
  <row Id="34791" PostTypeId="1" CreationDate="2011-01-07T22:06:36.180" Score="1" ViewCount="144" Body="&lt;p&gt;I came across &lt;a href=&quot;http://www.coderun.com/&quot; rel=&quot;nofollow&quot;&gt;coderun&lt;/a&gt; the other day does anyone know any better editors/ide's espeially that can be used relatively easily on some of todays smartphones for asp.net ?&lt;/p&gt;&#xA;" OwnerUserId="2457" LastActivityDate="2011-02-28T10:46:39.067" Title="Are there any good editors for asp.net on smartphones ?" Tags="&lt;ide&gt;&lt;asp.net&gt;&lt;mobile&gt;" AnswerCount="2" CommentCount="0" />
  <row Id="34792" PostTypeId="2" ParentId="34773" CreationDate="2011-01-07T22:12:52.463" Score="1" ViewCount="" Body="&lt;p&gt;On one of my co-op's I worked on an embedded platform developed in c++. They implement some method of specifying what class data/variables would interesting to look at if the system crashed. I am not exactly sure how they did it, but it would essentially dump all the marked data to flash when the system crashed, which could then be extracted via a serial port and sent to support. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-07T22:12:52.463" />
  <row Id="34793" PostTypeId="2" ParentId="34456" CreationDate="2011-01-07T22:24:12.937" Score="2" ViewCount="" Body="&lt;ul&gt;&#xA;&lt;li&gt;Branch-per-bug&lt;/li&gt;&#xA;&lt;li&gt;Reduced latency on your diffs.&lt;/li&gt;&#xA;&lt;li&gt;Being able to &lt;em&gt;very&lt;/em&gt; quickly navigate arbitrarily through the history of a branch when you're peer reviewing.&lt;/li&gt;&#xA;&lt;li&gt;You still have access to your entire history when you don't have access to the centralised server: you're not in the office, power just went out but your laptop's battery's still working, ...&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;These things let you work more efficiently, both solo and in a team. More efficient working = faster development time = quicker time to market = profit.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2011-01-07T22:24:12.937" CommentCount="1" />
  <row Id="34794" PostTypeId="2" ParentId="34785" CreationDate="2011-01-07T22:30:22.620" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Public domain&lt;/strong&gt; is great until... companies try to incorporate public domain code into their application and then the lawyers may want to get releases from every single contributor to a public domain project.  A good case example is SQLite, which is unsual in that it is in public domain, and not released under a consumer friendly license, like MIT.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ref. &lt;a href=&quot;http://www.sqlite.org/copyright.html&quot; rel=&quot;nofollow&quot;&gt;SQLite's licensing page&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="191" LastActivityDate="2011-01-07T22:30:22.620" CommentCount="1" />
  <row Id="34795" PostTypeId="2" ParentId="34761" CreationDate="2011-01-07T22:33:25.750" Score="1" ViewCount="" Body="&lt;p&gt;As Lennart says, this isn't a templating language. Rather, it's a domain-specific programming language, with primitives (or perhaps library functions, i'm not clear how the tags are defined) for producing HTML.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wrote something similar a while ago, which i have sadly lost. However, rather than defining a new language, i simply wrote some functions in Python. Really, i needed to write a translator that turned DTDs into Python, but that's another story. Anyway, i had functions named for each tag, which would return an object representing an element with that tag, and which would accept various arguments according to the content model of that element. Attributes were handled with keyword arguments. So, you could write:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;div(&#xA;    p(&quot;This is a paragraph&quot;),&#xA;    p(&quot;This is another paragraph - div takes varargs&quot;)&#xA;)&#xA;&#xA;span(&quot;This is going to be bright red&quot;, class=&quot;error&quot;)&#xA;&#xA;img(src=&quot;smiley.png&quot;, alt=&quot;:)&quot;)&#xA;&#xA;p(&quot;This &quot;, a(&quot;paragraph&quot;, href=&quot;about-paragraphs.html&quot;), &quot;contains a link.&quot;),&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But you couldn't write any of:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;img(&quot;throws an exception because img elements can't have content&quot;)&#xA;&#xA;span(p(&quot;throws an exception because spans can't contain block-level elements&quot;))&#xA;&#xA;p(nosuch=&quot;throws an exception because there's no such attribute&quot;)&#xA;&#xA;img(alt=&quot;throws an exception because it lacks the required src attribute&quot;)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The objects constructed were lightweight, but knew how to write themselves to a file-like object, or assemble themselves into a string.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because this is just ordinary Python code, you have the full power of the language - a language which already exists, is well-developed, powerful, and widely known and documented - at your disposal. If you want a loop, you use &lt;code&gt;for&lt;/code&gt;, or even better, a list comprehension or generator expression. If you want a conditional block, you use an &lt;code&gt;if&lt;/code&gt;. If you want to store a fragment of HTML and use it later, use a variable. If you want to put the values of variables into strings, use &lt;code&gt;%&lt;/code&gt;. If you want a metaclass which applies a decorator to produce a generator from a lambda, go crazy. You can't do template inheritance as such, but the existing facilities of the language let you make a function which passes its arguments into a template:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;def standardPageContainer(pageTitle, pageText):&#xA;    return html(&#xA;        head(&#xA;            title(pageTitle)),&#xA;        body(&#xA;            h1(pageTitle),&#xA;            hr(),&#xA;            pageText))&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And you're away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I will bet pounds to pork pies that my approach will deliver a cleaner, more consistent, easier to use, and more powerful language than yours in under a tenth of the lines of code. I can make that bet because i'm cheating like a swine: i'm stealing everything the Python guys have done.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, the moral of the story is: &lt;strong&gt;kids, just say no to domain-specific languages&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="854" LastEditorUserId="854" LastEditorDisplayName="" LastEditDate="2011-01-07T22:39:32.890" LastActivityDate="2011-01-07T22:39:32.890" CommentCount="10" />
  <row Id="34796" PostTypeId="2" ParentId="34785" CreationDate="2011-01-07T22:44:04.963" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Creative Commons&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll find quite a bit of free graphical content under one of these &lt;a href=&quot;http://creativecommons.org/&quot; rel=&quot;nofollow&quot;&gt;licenses&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best examples I've seen for CC licenses are free fonts, icons, and images which would be used in applications (e.g. iPhone and Droid apps).&lt;/p&gt;&#xA;" OwnerUserId="2294" LastEditorUserId="2294" LastEditorDisplayName="" LastEditDate="2011-01-07T22:54:14.917" LastActivityDate="2011-01-07T22:54:14.917" CommentCount="5" />
  <row Id="34797" PostTypeId="2" ParentId="34267" CreationDate="2011-01-07T22:46:12.947" Score="1" ViewCount="" Body="&lt;p&gt;When I'm working in Smalltalk I do &lt;em&gt;almost all&lt;/em&gt; my development in the debugger.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I write a test that fails, demonstrating the correct behaviour of the yet-to-be-written code, and hit the Go button on the test runner. The test fails. (If it doesn't fail, I first find out why!) I click the test, bringing up the debugger. I step through to wherever the problem is, I type whatever I need to do to make the test pass - define a class, write a method, whatever - and then hit &quot;proceed&quot;. Hopefully, the test now passes. If it doesn't I roll back the call stack to find out where I made the mistake, and continue executing the test.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After I'm finished, I'll usually run the entire suite, just to make sure I didn't break anything.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2011-01-07T22:46:12.947" />
  <row Id="34798" PostTypeId="2" ParentId="33379" CreationDate="2011-01-07T22:48:08.813" Score="1" ViewCount="" Body="&lt;p&gt;To grasp why (time based) software estimates are hard we need to do some thinking on the nature of software development. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The difference between manufacturing activities and design work is probably the most important concept business people need understand. During the industrial era there was a sharp distinction between design and manufacturing. We designed blueprints that were reproduced in a factory as many times as we wanted. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We are applying that same model in our heads to the software development process, &lt;strong&gt;we assume that first someone has to design the product after which different people manufacture it.&lt;/strong&gt; Once you start thinking about when the design phase ends and when manufacturing starts, you realize this doesn't apply to software development. Consider the following representation of a product development cycle:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;... =&amp;gt; design =&amp;gt; (blueprint) =&amp;gt; manufacture =&amp;gt; (product) =&amp;gt; ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Intuition might tell you that translates to software development like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;... =&amp;gt; design =&amp;gt; (Interaction design deliverables) =&amp;gt; manufacture =&amp;gt; (Source Code) =&amp;gt; ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;While in fact it's more like this:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;... =&amp;gt; design =&amp;gt; (Source Code) =&amp;gt; manufacture =&amp;gt; (Software application) =&amp;gt; ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In other words: The source code is the design not the product! Manufacturing software is completely automated (compiling the source). Others have explained this far better than i can, I would recommend you read this essay by Jack Reeves: What is Software Design?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The difference between design and manufacturing is not just a conceptual one and has some very real implications for the way we manage software development. Design work is by nature highly unpredictable and depended on individuals while manufacturing is much more predictable and depended on resources.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From this line of thinking follows that variation of individual productivity among developers is so high that it's impossible predict how much someone can produce in a certain amount of time. For more insights on this, check out the following essay by Paul Graham: How to Make Wealth.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many more implications of the 'design != manufacturing' way of thinking. Another important one is the fact that you never set out to design something that's already available. This adds to the amount of uncertainty in development work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Combine these with the many reasons business people pressure developers into lower estimates, plus the fact that people have a hard time estimating absolute measures and you got your self a recipe for highly inaccurate estimates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your Sales Manager still has doubts, this article might clear it up:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fingers in the air: a Gentle Introduction to Software Estimation&#xA;&lt;a href=&quot;http://www.methodsandtools.com/archive/archive.php?id=79&quot; rel=&quot;nofollow&quot;&gt;http://www.methodsandtools.com/archive/archive.php?id=79&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good luck!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;p.s. sorry had to cut out some of the links to the essays I mentioned because I have to earn more than 10 reputation points for that. Just Google them.&lt;/p&gt;&#xA;" OwnerUserId="12338" LastActivityDate="2011-01-07T22:48:08.813" />
  <row Id="34799" PostTypeId="2" ParentId="34759" CreationDate="2011-01-07T22:49:04.023" Score="4" ViewCount="" Body="&lt;p&gt;That's very weird advice. What the heck are &quot;non-PHP programmers&quot; doing reading your code?&lt;/p&gt;&#xA;" OwnerUserId="854" LastActivityDate="2011-01-07T22:49:04.023" CommentCount="3" />
  <row Id="34800" PostTypeId="2" ParentId="34540" CreationDate="2011-01-07T23:04:21.513" Score="0" ViewCount="" Body="&lt;p&gt;In Java, you'd return a Set, and use Collections.unmodifiableSet to make the set to return. I imagine this ReadOnlyCollection/asReadOnly business is your equivalent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IEnumerable doesn't sound like a good choice to me. I want to be able to say:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;Passenger roger = rememberRoger();&#xA;if (train.getPassengers().contains(roger)) {&#xA;    tellEveryoneRogerIsOnHisWayHome();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;That means that getPassengers has to return your equivalent of Collection.&lt;/p&gt;&#xA;" OwnerUserId="854" LastActivityDate="2011-01-07T23:04:21.513" CommentCount="1" />
  <row Id="34801" PostTypeId="2" ParentId="34456" CreationDate="2011-01-07T23:24:58.857" Score="-1" ViewCount="" Body="&lt;p&gt;I apologize if I'm grandstanding, but allow me to put the business case in no uncertain terms:&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;SVN makes developers' lives &lt;em&gt;miserable&lt;/em&gt;.  And that makes a software business miserable.&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;...in ways that many won't realize until they start using a DVCS.  &lt;strong&gt;This is the most important business case that can possibly be made&lt;/strong&gt;.  Why?  Well, &lt;strong&gt;compared to the cost of finding and retaining good developers, the cost of switching to a DVCS is almost non-existant&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consider the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;All but the most trivial operations in SVN (and most other CVCSes) require network access.  In most DVCSes, network access only occurs when you do a &lt;code&gt;push&lt;/code&gt; or &lt;code&gt;pull&lt;/code&gt; operation.  This means that non-trivial commands are &lt;em&gt;slow&lt;/em&gt;.  What do you do when a command is taking forever?  I personally go browse programmers.se or hacker news while I'm waiting.  Simply put, &lt;strong&gt;DVCSes allow programmers to focus on doing what they love:  writing the company's software&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;SVN has support for branching in much the same way prisons have support for dropping your soap in the shower:  you can do it, but when you do you get fucked.  Thus, &lt;strong&gt;SVN forces your developers to constantly fight over each other to make changes&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;When SVN is down, it's down.  It becomes terribly difficult for developers to do their jobs if they can do them at all.  Thus, &lt;strong&gt;SVN forces your developers to be reliant on your infrastructure being 100% bug-free&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;These days, git is rapidly gaining mindshare while SVN is rapidly losing it.  &lt;strong&gt;If there are no benefits to using DVCSes over SVN, why is the programming community changing as fast as they can?&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What does all of this amount to?  I have yet to meet a developer that's given a DVCS an honest try that would prefer SVN afterwards.  If I could make one more annoying, bolded statement, &lt;strong&gt;SVN is a &quot;necessary evil&quot; that developers force themselves to use.  Git is a tool that makes developers more productive and happier&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(I should point out that the bolded statements are the particular ones you should focus in on.  The rest of them just provide context.)&lt;/p&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2011-01-07T23:24:58.857" CommentCount="7" />
  <row Id="34802" PostTypeId="2" ParentId="34775" CreationDate="2011-01-07T23:37:05.193" Score="7" ViewCount="" Body="&lt;p&gt;Apparently it originally derives from &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Ren_%26_Stimpy_Show&quot; rel=&quot;nofollow&quot;&gt;Ren and Stimpy&lt;/a&gt; episode &quot;Gilden Yak's Shaving Day&quot;, which is itself a parody of Christmas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/results?search_query=gilden+yaks+shaving+day&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/results?search_query=gilden+yaks+shaving+day&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Transcript, narrated by Ren:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Hey Kids, &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;There's only 5 more days until yak shaving day!&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Stimpy: &lt;em&gt;I can hardly wait!&lt;/em&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;So start decorating your house with disposable diapers -- and remember to stuff dad's rubber boots with cole slaw!&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Then, on Gilden Yak's eve .. if you look closely .. you just might catch a glimpse of the shaven Yak on his enchanted canoe!&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;But don't forget to leave a heaping bowl of hot lather by the sink!&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;And if you've been a good boy or girl, he might leave a surprise for you to enjoy next morning!&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;[Yak enters bathroom through shower drain, finds sink and lather, and begins shaving, then leaves -- parody of Santa Claus]&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;img src=&quot;http://i.imgur.com/znBQ7.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Stimpy: &lt;em&gt;Just what I've always wanted -- shaving scum! He got my letter!&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Apparently this is from &lt;a href=&quot;http://www.lysator.liu.se/~marcus/ren_stimpy/encycs1.html&quot; rel=&quot;nofollow&quot;&gt;the pilot episode&lt;/a&gt; which aired in 1991:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Show # 1 &quot;The Pilot Show&quot; © 1991&lt;br&gt;&#xA;  Bumper: Secret Club House And Oath&lt;br&gt;&#xA;  SSBL: The Littlest Giant&lt;br&gt;&#xA;  (This is its original place in the line-up)&lt;br&gt;&#xA;  Bumper: Log For Girls&lt;br&gt;&#xA;  Bumper: Stimpy's Breakfast Tips&lt;br&gt;&#xA;  Big House Blues (Edited)&lt;br&gt;&#xA;  &lt;strong&gt;Bumper: Yak Shaving Day&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="37" LastEditorUserId="37" LastEditorDisplayName="" LastEditDate="2011-01-08T05:55:11.447" LastActivityDate="2011-01-08T05:55:11.447" CommentCount="3" />
  <row Id="34803" PostTypeId="2" ParentId="34785" CreationDate="2011-01-07T23:42:03.960" Score="3" ViewCount="" Body="&lt;p&gt;I'm a big fan of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Boost_Software_License&quot; rel=&quot;nofollow&quot;&gt;Boost Software License&lt;/a&gt;.  It's very similar to most other non-copyleft OSS licenses, except that it explicitly does not require attribution when the software or a derivative work is distributed in binary form.  This is a big deal to me, as I develop code for the D standard library in my spare time, and standard library code needs to &quot;just work&quot; from a licensing perspective, without requiring the user to add a bunch of attributions.  Therefore, when I want to release something under a permissive open source license, even if it's not part of a standard library, I tend to use the Boost license in case anyone else wants to borrow my code to use in the context of some standard library.&lt;/p&gt;&#xA;" OwnerUserId="1468" LastActivityDate="2011-01-07T23:42:03.960" />
  <row Id="34804" PostTypeId="2" ParentId="34775" CreationDate="2011-01-07T23:42:25.483" Score="5" ViewCount="" Body="&lt;p&gt;This might be the canonical answer, from Feb 11 2000:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://projects.csail.mit.edu/gsb/old-archive/gsb-archive/gsb2000-02-11.html&quot; rel=&quot;nofollow&quot;&gt;http://projects.csail.mit.edu/gsb/old-archive/gsb-archive/gsb2000-02-11.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Yak shaving.&quot;  Our very own &lt;a href=&quot;http://www.linkedin.com/pub/carlin-vieri/0/93/9a1&quot; rel=&quot;nofollow&quot;&gt;Carlin Vieri&lt;/a&gt; invented the term, and yet&#xA;  it has not caught on within the lab.  This is a shame, because it&#xA;  describes all too well what I find myself doing all too often.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;You see, yak shaving is what you are doing when you're doing some&#xA;  stupid, fiddly little task that bears no obvious relationship to what&#xA;  you're supposed to be working on, but yet a chain of twelve causal&#xA;  relations links what you're doing to the original meta-task.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Here's an example:&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;I was working on my thesis and realized I needed a reference.  I'd&#xA;  seen a post on comp.arch recently that cited a paper, so I fired up&#xA;  gnus.  While I was searching the for the post, I came across another&#xA;  post whose MIME encoding screwed up my ancient version of gnus, so I&#xA;  stopped and downloaded the latest version of gnus.  &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&quot;Unfortunately, the new version of gnus didn't work with emacs 18, so&#xA;  I downloaded and built emacs 20.  Of course, then I had to install&#xA;  updated versions of a half-dozen other packages to keep other users&#xA;  from hurting me.  When I finally tried to use the new gnus, it kept&#xA;  crapping out on my old configuration.  And that's why I'm deep in the&#xA;  gnus info pages and my .emacs file -- and yet it's all part of working&#xA;  on my thesis.&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;And that, my friends, is yak shaving.  (Not that this particular&#xA;  example happened to me recently or anything.)  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="37" LastActivityDate="2011-01-07T23:42:25.483" CommentCount="4" />
  <row Id="34805" PostTypeId="1" AcceptedAnswerId="34819" CreationDate="2011-01-08T00:05:12.007" Score="8" ViewCount="441" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm starting to get really frustrated with ASP.NET.  It seems as if much of my time is spent learning abstractions over problems, then having to kick into overdrive when those abstractions (surprise!) have unexpected behavior.  It seems as if I spend so much time just fixing those issues because they usually are UI related and therefore require integration testing that I spend very little time programming any kind of meaningful logic.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't know if it is ASP or if it is programming.  I just feel as if I'm getting paid, doing the work but really wasting time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand, I have fantasies about console programs and actually using algorithms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is wrong with me?  Why can't I force myself to churn through this ASP stuff more?&lt;/p&gt;&#xA;" OwnerUserId="5057" LastActivityDate="2011-01-21T00:56:42.313" Title="What to do if you're burnt out?" Tags="&lt;career-advice&gt;&lt;asp.net&gt;" AnswerCount="9" CommentCount="4" />
  <row Id="34806" PostTypeId="1" CreationDate="2011-01-08T00:10:21.173" Score="6" ViewCount="571" Body="&lt;p&gt;Would posting a high salary on a programmer job advertisement encourage strong candidates and weed out lesser candidates? The salary would be relative to the position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: Maybe it wouldn't alter your application, but would you have any concerns or does this raise any red flags? It wouldn't make them seem desperate?&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2011-01-08T00:49:17.940" LastActivityDate="2011-01-08T04:18:17.773" Title="Posting High Salary in Job Ad for Programmer" Tags="&lt;hiring&gt;&lt;salary&gt;" AnswerCount="9" CommentCount="3" />
  <row Id="34807" PostTypeId="2" ParentId="34737" CreationDate="2011-01-08T00:12:36.550" Score="5" ViewCount="" Body="&lt;p&gt;Out of the ones not mentioned yet, Objective C. To be fair, I only studied it extremely briefly and disliked the syntax at first glance so much that I gave up on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since it is such a (relatively) common language (mainly for Mac/iPhone/iPad development), I'm sure it's actually somewhat decent once you get used to it.&lt;/p&gt;&#xA;" OwnerUserId="11616" LastActivityDate="2011-01-08T00:12:36.550" CommunityOwnedDate="2011-01-08T02:02:06.383" />
  <row Id="34808" PostTypeId="2" ParentId="34806" CreationDate="2011-01-08T00:17:45.937" Score="8" ViewCount="" Body="&lt;p&gt;I think very specific  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;requirements,&lt;/li&gt;&#xA;&lt;li&gt;expectations,&lt;/li&gt;&#xA;&lt;li&gt;and responsibilities&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;do more to weed out lesser candidates. If the above items don't reflect &lt;em&gt;why&lt;/em&gt; a salary is high, then the overall skill set within the candidate pool will not meet desired levels.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, a high salary never deterred me from applying for a position. Seeing requirements (experience and/or education) has always been the determining factor in whether I would apply.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt; &lt;em&gt;in response to comment&lt;/em&gt;&lt;br&gt;&#xA;Requirements need to be specific and describe exactly what you are looking for. I don't know java well enough to give specifics; however, for C#, I might suggest:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;5+ years C#, including asynchronous&#xA;implementation, TCP/IP, &lt;em&gt;some related&#xA;technology or library&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;5+ years .Net development and&#xA;organization in a team environment&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I would use lingo and terms that only someone who is familiar with them would know. A quick question can easily give you a clue as to whether the candidate knows what they are talking about: &lt;em&gt;Include one project in detail in which you have implemented one or more of the technologies listed above.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regardless, if the candidate knows that there will be a test, that could easily sway unqualified candidates from applying. Some candidates will think they can smooth-talk their way into a 2nd interview or a job offer. Your interview process, will be the only way to ensure you get qualified candidates for a 2nd interview. I really don't think there will be any magic job posting that will be fool proof.&lt;/p&gt;&#xA;" OwnerUserId="8031" LastEditorUserId="8031" LastEditorDisplayName="" LastEditDate="2011-01-08T02:16:11.750" LastActivityDate="2011-01-08T02:16:11.750" CommentCount="3" />
  <row Id="34809" PostTypeId="2" ParentId="34785" CreationDate="2011-01-08T00:20:49.340" Score="3" ViewCount="" Body="&lt;p&gt;I prefer the &lt;a href=&quot;http://www.mozilla.org/MPL/&quot; rel=&quot;nofollow&quot;&gt;MPL&lt;/a&gt; for open-source work, because it feels like the Platonic ideal to me.  It protects your work as open-source by requiring that changes and updates be made available, unlike the MIT and BSD licenses.  On the other hand, it's not a viral license that tries to tell you what you can and can't also have in your project, like the GPL, which I see as severely overstepping its bounds.  (Put one single GPL library anywhere in the project and the entire thing has to be GPL.  IMO that's a bit like the person who made the nails you used claiming he has the right to your entire house.)&lt;/p&gt;&#xA;" OwnerUserId="935" LastActivityDate="2011-01-08T00:20:49.340" CommentCount="1" />
  <row Id="34810" PostTypeId="2" ParentId="34805" CreationDate="2011-01-08T00:21:13.903" Score="0" ViewCount="" Body="&lt;p&gt;Not sure if it is by choice, but you seem disconnected from those who use your application. Do you really prefer algorithms over working with end users? If not, try to squeeze some time observing the reactions of those who use your software. You'll be reinforced for your efforts when they have a positive experience and want to make improvements when they don't. Otherwise, look for work with consoles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do see how you can be frustrated when dealing tools that don't work as expected.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-08T00:21:13.903" />
  <row Id="34811" PostTypeId="2" ParentId="34806" CreationDate="2011-01-08T00:22:25.017" Score="3" ViewCount="" Body="&lt;p&gt;How do you figure? Wouldn't you attract more candidates (both good and bad) who are drawn by the high salary figure?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most job posts I've seen list a salary range or (more often) just note that salary will be commensurate with the candidate's skills and experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As I think about it, I don't think you can do much to weed out lesser candidates at the job posting level. Often people who aren't quite qualified don't know it anyway. I would just focus on writing out the requirements as &lt;a href=&quot;http://programmers.stackexchange.com/questions/34806/posting-high-salary-in-job-ad-for-programmer/34808#34808&quot;&gt;dboarman suggested&lt;/a&gt; to increase the odds of attracting qualified candidates.&lt;/p&gt;&#xA;" OwnerUserId="226" LastActivityDate="2011-01-08T00:22:25.017" CommentCount="4" />
  <row Id="34812" PostTypeId="2" ParentId="34805" CreationDate="2011-01-08T00:23:10.900" Score="3" ViewCount="" Body="&lt;p&gt;I know the feeling,  tend to do stay away from ASP.Net if I have the choice myself these days. Feels like doing actual clients (WPF/Windows Forms) or at least server components for interesting systems provides much more of a challenge and is more fun than doing simply Asp.Net UI's&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My general rule is : &lt;strong&gt;if it's not fun, stop doing it and find something else that is&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It really isn't much more complicated than that&lt;/p&gt;&#xA;" OwnerUserId="12354" LastActivityDate="2011-01-08T00:23:10.900" />
  <row Id="34813" PostTypeId="2" ParentId="34805" CreationDate="2011-01-08T00:23:15.173" Score="1" ViewCount="" Body="&lt;p&gt;It sounds to me like you could be better suited for back end development. Or in general, for an environment where there is less back-and-forth fiddliness and more straight-forward coding. GUI programming (especially web stuff like ASP.NET) is probably the worst thing you can do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, most programming work is overwhelmingly maintenance and problem-solving oriented. It's rare to get the opportunity to just sit back and design and bang out algorithms in a vacuum (unless you're an academic perhaps). But I do find that the more high-level the abstractions are, and the more GUI-oriented the work is, the more likely it is that you're dealing with leaky abstractions and less with &quot;straight programming&quot; - if that makes sense.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2011-01-08T00:23:15.173" />
  <row Id="34814" PostTypeId="2" ParentId="34805" CreationDate="2011-01-08T00:26:14.320" Score="5" ViewCount="" Body="&lt;p&gt;You can reach a point with any area that you just burn out. Like you, I would much rather write algorithms, logic, etc. The UI is a relevant and required evil that takes, in my opinion, a special kind of programmer. I thought I could be one of &lt;em&gt;those&lt;/em&gt; programmers but after a year of UI dedicated work, I dropped programming altogether.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since I am working on utilities that require very little UI (mostly console stuff), I am having a great deal of &lt;em&gt;fun&lt;/em&gt; at work. However, I have one large project for internal trouble ticket tracking. To make my work with the UI project more invigorating, I work closely with the people who will be using it. Their reactions to what I am doing keeps me fueled and interested in it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Keep in touch with those end users. They will keep you going, give you feedback, and are much more impressed with what you do than you are.&lt;/p&gt;&#xA;" OwnerUserId="8031" LastActivityDate="2011-01-08T00:26:14.320" CommentCount="2" />
  <row Id="34815" PostTypeId="2" ParentId="33379" CreationDate="2011-01-08T00:29:57.787" Score="0" ViewCount="" Body="&lt;p&gt;I have to disagree with some of the given answers. You can't compare programming to finding your way through a maze, I agree that there's a learning aspect but there isn't much skill in solving a maze. Neither is it like building or renovating a house, that is a pretty defined process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best analogy that I've come up with for programming IMO is like an artist painting a picture, it's impossible to estimate because there is an artistic aspect and more painters doesn't finish a painting sooner (well they might, but not better). People tend to think about programming is like engineering but in fact it's more like craftmanship with a little artistry, and that's tough to estimate&lt;/p&gt;&#xA;" OwnerUserId="12354" LastActivityDate="2011-01-08T00:29:57.787" CommentCount="1" />
  <row Id="34816" PostTypeId="2" ParentId="34806" CreationDate="2011-01-08T00:33:49.177" Score="2" ViewCount="" Body="&lt;p&gt;Personally I've never been intimidated by seeing a high salary figure. I only get intimidated and put off from applying for something if I see things in the job description which are far beyond my skills and experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other words, I &lt;strong&gt;HAVE&lt;/strong&gt; applied for highly paid roles in the past which turned out to be out of my league in the interview, but didn't seem so from the (inadequate) description in the ad. I guess this is what you're trying to work out?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So no, I don't think a high salary alone does all that much to weed out people who are inadequate for a role. Personally I'd simply be as detailed as possible in the ad. Nobody wants to waste their time when they can clearly see that much more is expected than they can bring to the table.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2011-01-08T00:33:49.177" CommentCount="6" />
  <row Id="34817" PostTypeId="2" ParentId="25569" CreationDate="2011-01-08T00:51:56.733" Score="3" ViewCount="" Body="&lt;p&gt;Haskell is definitely worth your time.  Personally, I have only spent two or three weekends with it and haven't written any programs that did more than a few functional equivalents of &quot;hello, world!&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, those brief flirtations profoundly changed the way I program in other languages.  My primary field of work is scientific computation and data analysis using &lt;a href=&quot;http://www.r-project.org&quot; rel=&quot;nofollow&quot;&gt;R&lt;/a&gt; and &lt;a href=&quot;http://www.python.org&quot; rel=&quot;nofollow&quot;&gt;Python&lt;/a&gt;.  Before I shacked up with Haskell for a weekend, my programs were long 300+ line blocks of code litered with if statements and do loops.  Now, most everything I do is composed out of 20-50 line functions lazily applied over data using functional constructs such as &lt;code&gt;map&lt;/code&gt;, &lt;code&gt;filter&lt;/code&gt; and &lt;code&gt;reduce&lt;/code&gt;.  The payoffs are amazing:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;My code is easier to understand and to maintain.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;My code is capable of dealing with huge datasets while retaining a small memory footprint through the use of lazy functional applications.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Replacing do loops with functional constructs (where appropriate) has dramatically reduced the marginal cost of parallelizing algorithms that need extra computational power.  This is because programming functionally provides built-in management of side-effects that parallelization a pain.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;To summarize, spending a couple of weekends playing with Haskell was probably the second best investment I ever made in my programming toolkit behind the time I spent teaching myself version control.  So go ahead and &lt;a href=&quot;http://learnyouahaskell.com/&quot; rel=&quot;nofollow&quot;&gt;Learn You a Haskell for Great Good&lt;/a&gt; this weekend!&lt;/p&gt;&#xA;" OwnerUserId="12661" LastEditorUserId="12661" LastEditorDisplayName="" LastEditDate="2011-01-08T01:09:51.373" LastActivityDate="2011-01-08T01:09:51.373" CommentCount="3" />
  <row Id="34818" PostTypeId="2" ParentId="34806" CreationDate="2011-01-08T00:52:19.390" Score="2" ViewCount="" Body="&lt;p&gt;No. A high salary listed will get you huge amounts of resumes to sift through - far more than if you listed no salary at all. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That being said, one bank I worked for had such a bad reputation for discarding employees that they &lt;em&gt;had&lt;/em&gt; to offer a significant premium just to get people in the door. Among the silly things they did: if you were overheard (all phone lines were monitored) talking about looking for another job then that was your last day; another was that contractors could only work for 90 days and then they'd be dismissed as that was a &quot;security&quot; feature. &lt;/p&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2011-01-08T00:52:19.390" CommentCount="1" />
  <row Id="34819" PostTypeId="2" ParentId="34805" CreationDate="2011-01-08T00:52:45.770" Score="6" ViewCount="" Body="&lt;p&gt;You sound to me like you're not burnt out.  You sound to me like ASP.NET is making you think you hate coding when in reality you hate ASP.NET.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My advice: If you can, give that project to someone else.  Either way, start spending less time working with ASP.NET and more time in other languages and other projects.  You might try writing a smartphone app or a standalone desktop game.&lt;/p&gt;&#xA;" OwnerUserId="4971" LastActivityDate="2011-01-08T00:52:45.770" />
  <row Id="34820" PostTypeId="1" CreationDate="2011-01-08T01:09:00.313" Score="2" ViewCount="249" Body="&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/4631671/what-threading-pratice-is-good-90-of-the-time&quot;&gt;Since my SO thread was closed&lt;/a&gt; i guess i can ask it here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What practice or practices are good 90% of the time when working with threading with multiple cores? Personally all i have done was share immutable classes and pass (copy) data to a queue to the destine thread.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: This is for research and when i say 90% of the time i dont mean it is allowed to fail 10% of the time (thats ridiculous!) i mean 90% it is a good solution while the other 10% it is not so desirable due to implementation or efficiently reasons (or plainly another technique fits the problem domain a lot better).&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2011-01-26T21:38:54.380" Title="What threading pratice is good 90% of the time?" Tags="&lt;multi-threading&gt;&lt;multi-core&gt;" AnswerCount="6" />
  <row Id="34821" PostTypeId="2" ParentId="34570" CreationDate="2011-01-08T01:09:23.433" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Talk directly to that person and try to get details why he/she thinks it's bad.&lt;/li&gt;&#xA;&lt;li&gt;If you are afraid/unable to talk to that person directly, talk to you manager, express your concerns. Be honest and specific. Say you are concern about your reputation as a cowboy and want to prevent such comments in future. So you have to know what is wrong.&lt;/li&gt;&#xA;&lt;li&gt;If that person is your manager then make a skip level meeting and talk to his/her manager. &lt;/li&gt;&#xA;&lt;li&gt;At worst case, find a new job while you have some sort of good standing at your current one.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The bottom line you need to clear up the situation or your career in that company is rather over. You either need to prove there is nothing wrong with your approach or admit that your were wrong. That's rather black and white to me.&lt;/p&gt;&#xA;" OwnerUserId="12662" LastActivityDate="2011-01-08T01:09:23.433" />
  <row Id="34822" PostTypeId="2" ParentId="34820" CreationDate="2011-01-08T01:16:38.013" Score="6" ViewCount="" Body="&lt;p&gt;The 90% solution I use is multi-processing.  Seriously.  Shared Nothing.  Pass &quot;immutable&quot; objects from stdout on one process to stdin on the other process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Make the OS handle it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since that API has been around for decades, it's very, very simple to implement.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-08T01:16:38.013" CommentCount="10" />
  <row Id="34823" PostTypeId="2" ParentId="5372" CreationDate="2011-01-08T01:17:57.550" Score="1" ViewCount="" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is some great advice already listed in these replies. I wrote a &lt;a href=&quot;http://adamnuttall.co.uk/index.php/shaking-off-mr-sloth/&quot; rel=&quot;nofollow&quot;&gt;post&lt;/a&gt; outlining some of the things I tried when I decided I had to improve my health and lifestyle. I hope it's OK to post a small extract here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Eat smart&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is the most important point in this post.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Nothing else will have as big an effect over the way you feel, your mindset or your successes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I began to eat lots of fibre-rich, high-quality foods, especially those that are only made up of a single ingredient (i.e. veggies, fruit, nuts).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I forced myself to cut out processed foods, too. It was tough (very tough!) but I realised if I wanted to make any progress, I had to do tough things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, be aware of your sugar in-take. It’s criminal that many ‘low-fat’ foods are then pumped full of sugar because sugar makes you fat. Sugar is best avoided the majority of the time (fruit doesn’t count!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One thing to remember is that any changes need to be sustainable. Introduce changes over time and you’re more likely to stick to them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Drink more water&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you’re anything like I was, you’re not even thinking about drinking water… In fact, you’d happily drink anything but water (coffee, can of coke etc).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously, avoid liquid calories like the plague if you’re looking to lose weight. They won’t fill you up so you’ll always be wanting more, it’s expensive and it’s not good for you – and you’ll end up with teeth like mine!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Start to graph your weight&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;“What gets measured, gets managed.” - Peter Drucker&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tracking your weight can be a huge motivator for anyone looking to make gains. If you do this every day, you can graph changes over time to make sure you’re heading in the right direction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Do the right kind of exercise&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Often when people say they want to 'get in shape', they mean that they’re going to drive to the nearest gym (which is usually at least 15 minutes away) where there’ll spend anything up to 2 hours pounding away on the treadmill. For what?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;So that they don’t feel as guilty about all the junk food they’ll eat when they get home?&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tried bodyweight exercises combined with interval training. I could get more done in less time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, be aware that you don’t need to train five days a week. In the beginning, it’s useful to aim for two or three as long as you’re staying active on your off days (and by staying active I mean walk around more, play sports, jog if you can’t resist it!).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Get more sleep&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This was the toughest change I had to make and it probably will be for you, too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Everybody knows how important it is to get enough sleep but the trouble is it is so easy to go without. There’s always another hour to squeeze in some more work but then we’re left scrabbling around in the morning, rushing into another day. When I realised it didn’t have to be this way, it was a massive weight off my shoulders.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Make it social&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you make your fitness goals public then not only will you get support and assistance from others, you’ll get accountability.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I managed to convince a mate that we’d begin exercising together. &lt;strong&gt;All of a sudden, it became a lot tougher to drop out.&lt;/strong&gt; Try it. They will be somebody you know desperately waiting for someone to take the lead.&lt;/p&gt;&#xA;" OwnerUserId="292" LastActivityDate="2011-01-08T01:17:57.550" CommunityOwnedDate="2011-01-08T01:17:57.550" />
  <row Id="34824" PostTypeId="2" ParentId="34820" CreationDate="2011-01-08T01:21:31.973" Score="5" ViewCount="" Body="&lt;p&gt;What you are doing is already pretty good.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I note you did not mention a language or platform; but in general, a shared-nothing, message-passing environment will scale pretty well, so long as you don't make it too &lt;em&gt;chatty&lt;/em&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can avoid synchronization other than perhaps on the head and tail of your queues, then you avoid 90% of problems that will occur.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Good Luck&lt;/p&gt;&#xA;" OwnerUserId="8668" LastActivityDate="2011-01-08T01:21:31.973" CommentCount="1" />
  <row Id="34825" PostTypeId="2" ParentId="34806" CreationDate="2011-01-08T01:38:38.957" Score="2" ViewCount="" Body="&lt;p&gt;I would look at it more from statistical point of view. Keep in mind this is all hypothetical. I am assume that you want to hire someone in the top 95% maybe more. I think posting a high salary would encourage more people to apply, but for every one great candidate you would get 19 candidates that don't meet your expectations. I don't personally think that a high salary would deter qualified candidates from applying, but I have no experience in the regard. I am really not sure that there is good way to limit the number of &quot;bad&quot; candidates&quot;. I am not even sure the that &quot;bad&quot; candidates would know that they are unqualified or care for that matter. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, I think part of the reason that it is hard to find good candidates is that they already have jobs. Unless they are unhappy where they work, they are probably not looking. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2011-01-08T02:41:02.140" LastActivityDate="2011-01-08T02:41:02.140" CommentCount="0" />
  <row Id="34826" PostTypeId="2" ParentId="34761" CreationDate="2011-01-08T01:42:59.137" Score="1" ViewCount="" Body="&lt;p&gt;I like the syntax.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't like the idea of creating something just &quot;because we can&quot;, without a precise need. But, well, it doesn't matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What matters is another thing I want to notice, which is sometimes forgotten by the people who create new languages, template systems, etc.:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Do you intend to create tools to support this template language? I mean, when I develop an ASP.NET MVC website with Razor, I have a very helpful Visual Studio 2010 IntelliSense. If one day I need to use PHP (which &lt;em&gt;is&lt;/em&gt; a template language), I can use Zend IDE and other helpful editors for it. If one day I start using your template language, do I have something better than notepad?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do you intend to provide help and support? Imagine one day I start using your language. And something wrong happens. What can I do?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;You may say that it doesn't matter since your intent is not to create something to be used by hundreds of thousands of developers all around the world. But if you will one day use it in your websites, be aware that &lt;strong&gt;a website which uses some custom template language without tools or support can be maintained only by you&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means that you &lt;em&gt;will&lt;/em&gt; have problems if you are a professional developer and you use it inside your customers/your company website. This also means that you &lt;em&gt;will&lt;/em&gt; have problems if one day some of your home-made websites will become famous or you will decide to invite somebody to work on your code.&lt;/p&gt;&#xA;" OwnerUserId="6605" LastActivityDate="2011-01-08T01:42:59.137" CommentCount="3" />
  <row Id="34827" PostTypeId="1" AcceptedAnswerId="39744" CreationDate="2011-01-08T01:55:41.587" Score="2" ViewCount="823" Body="&lt;p&gt;Maybe they do it without realizing. The recruiter's goal is to fill the job as soon as possible. I even think they feel it is in their best interest that the candidate be qualified, so I'm not trying to knock recruiters. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Aren't they better off presenting 3 candidates, but one clearly stands out? The last thing they want from their client is a need to extend the interview process because they can't decide. If the client doesn't like any of them, you just bring on your next good candidate. This way they hedge their bet a little.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any experience, insight or ever heard of a head-hunter admit this? Does it make sense? There has to be a reason why the choose such unqualified people. I've seen jobs posted that clearly state they want someone with a CS degree and the recruiter doesn't take it literally. I don't have a CS degree or Java experience and still they think I'm a possible fit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: I'm asking this question because there are many posts that assume recruiters cannot recognize talent, but maybe it is not in their interest to recognize too many talented candidates and make it harder for clients to decide. Eliminate the confusion. There is one candidate. Make that person an offer. It's a win, win, win.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe this falls under the theory of &lt;a href=&quot;http://sivers.org/jam&quot; rel=&quot;nofollow&quot;&gt;Too Many Choices&lt;/a&gt;?&lt;/p&gt;&#xA;" OwnerUserId="855" LastEditorUserId="855" LastEditorDisplayName="" LastEditDate="2011-01-08T04:01:05.487" LastActivityDate="2011-04-20T08:09:28.200" Title="Recruiters intentionally present one good candidate for an available job" Tags="&lt;recruiting&gt;" AnswerCount="7" CommentCount="8" FavoriteCount="2" />
  <row Id="34828" PostTypeId="1" AcceptedAnswerId="34860" CreationDate="2011-01-08T02:00:09.273" Score="4" ViewCount="176" Body="&lt;p&gt;As a freelance developer, a few times I tried to find some testers to be able to let them test my software/web applications. If I try to find them, it's because most of the customers are not intended to hire external testers and don't see why this can benefit to them, so products are UI-untested and buggy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tried lots of things. Discussion boards for IT people, specific websites for people who search for a job. Every time I clearly precise that I'm looking for product testers. I completely failed to find anybody for this job. I found instead two types of people:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Non IT people who try to qualify as testers, but don't have enough skills for that, and don't really know what testing is and how to do it,&lt;/li&gt;&#xA;&lt;li&gt;Programmers, who are skilled &lt;em&gt;as programmers&lt;/em&gt;, but not as testers, and who mostly don't understand neither what testing is about (or think it's the same thing as &lt;em&gt;code review&lt;/em&gt;, or it consists in &lt;em&gt;writing unit tests&lt;/em&gt;). Of course, they submit general programmers resumes, where they describe their high experience in Assembler and C++, but don't tell anything about anything related to the job of a tester.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What I'm doing wrong? Isn't it called &quot;tester&quot;? Is there at least a tester job, different from general programming job? Is there any precise requirement to require from each candidate which can eliminate non IT people and general programmers?&lt;/p&gt;&#xA;" OwnerUserId="6605" LastActivityDate="2011-01-26T02:14:25.773" Title="How to search for a tester?" Tags="&lt;testing&gt;&lt;job-market&gt;&lt;job-interview&gt;" AnswerCount="7" CommentCount="5" FavoriteCount="3" />
  <row Id="34829" PostTypeId="2" ParentId="34737" CreationDate="2011-01-08T02:02:06.383" Score="4" ViewCount="" Body="&lt;p&gt;It has to be Scheme, surely. Trying to explain &lt;code&gt;call-with-current-continuation&lt;/code&gt; always hurts my brain, but once you understand it you can make incredibly elegant solutions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Want to stop part-way through an algorithm and hand control to someone else? Sure!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Want to resume the same continuation several times? Of course!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Want to pause execution of an algorithm, redefine a function, then resume execution with the original stack but an updated global state? No problem! And do this several times with different changes to the global state but the same stack re-entry point? For you, sir, anything!&lt;/p&gt;&#xA;" OwnerUserId="5777" LastActivityDate="2011-01-08T02:02:06.383" CommunityOwnedDate="2011-01-08T02:02:06.383" CommentCount="5" />
  <row Id="34830" PostTypeId="2" ParentId="34806" CreationDate="2011-01-08T02:07:14.950" Score="5" ViewCount="" Body="&lt;p&gt;So, you want to hire a great programmer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Every good programmer hopes to work at a great company which treats their employees well. High salary can be explained as &quot;they have a revolutionary product and hence they can afford to share&quot;. They know it is the right thing to do so that I do not leave prematurely. I have been spoiled before and took it for granted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How to keep idiots away is another question. Just about everyone overestimates their experience by a factor of  ... say 1.5. Employers overestimate their requirements by a factor of same. Both sides sort of have to - game theory at work. Do not overdo it and do not under-do it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Write a fair, tough, informative description. Such one below. When I saw it, I liked it. I am sure that many fakes would not respond.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How to screen resumes and candidates effectively is a third question. Many, including Jeff Atwood have written about it at length. I will not give you a full guide for ... what do I know, plus there are better advices out there on the internet. I would just reiterate - do not piss off good candidates. Also, do you have something to hide, or are you heaven on earth? Hiring would be way easier if you were. Good luck.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Software engineer - Java - REAL&#xA;  PROGRAMMERS ONLY (Bedford)&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Date: 2011-01-05, 2:17PM EST Reply to:&#xA;  job-rentq-2145221605@craigslist.org&#xA;  [Errors when replying to ads?]&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Do you have experience developing with&#xA;  Java, Spring and Hibernate? &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;&lt;strong&gt;Java Experience Required&lt;/strong&gt; &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;We are looking for select individuals&#xA;  with Java, Spring and Hibernate&#xA;  experience who are interested in&#xA;  developing scalable backend systems&#xA;  that process large amounts of data. &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Raybeam Solutions is a growing niche&#xA;  consulting company focused on internet&#xA;  search and marketing, business&#xA;  intelligence, and data warehousing for&#xA;  the past 10 years. We have offices&#xA;  near Boston and in Silicon Valley and&#xA;  support a strong list of clients&#xA;  including Google, Microsoft, Yahoo,&#xA;  eBay, Expedia and AOL. We're looking&#xA;  for a flexible, well-rounded&#xA;  technologist with maturity and&#xA;  business savvy to join us in Boston or&#xA;  Silicon Valley. We design and develop&#xA;  systems using a variety of tools and&#xA;  platforms. We work in small teams, own&#xA;  the projects that we work on and have&#xA;  direct input into the business&#xA;  decision of our clients. &lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;You have: Real Tested Programming&#xA;  Skills: If you have a technology&#xA;  listed on your resume you will be&#xA;  expected to talk at length on how you&#xA;  used it, pros &amp;amp; cons. An actual&#xA;  passion for development: ... if you&#xA;  got into this line of work because you&#xA;  thought it would make a dependable&#xA;  career, chances are this is not a good&#xA;  fit. Confidence in your skills ... if&#xA;  the idea of doing technical screenings&#xA;  in your interview, peer code reviews&#xA;  and team design reviews makes you&#xA;  nervous, chances are this is not a&#xA;  good fit. We are very good at what we&#xA;  do and only want to work with people&#xA;  like us.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Breadth of knowledge: We move fast on&#xA;  small teams. You'll need to be able to&#xA;  set up the server where you're writing&#xA;  code that's using a database you've&#xA;  configured. Excellent communication&#xA;  skills: Not just good. Explaining&#xA;  exactly what we're doing and why we're&#xA;  doing it is an important part of the&#xA;  job. Many people you'll talk to do not&#xA;  have the same technical experience&#xA;  that you do, but they still will need&#xA;  to feel comfortable with what your&#xA;  ideas and actions. Ability to listen&#xA;  and understand: We work with smart&#xA;  people in a variety of fields. You'll&#xA;  need to understand what they're asking&#xA;  of you. Quickness: Can you work&#xA;  intelligently with speed? Much of what&#xA;  we do is prototyping systems that have&#xA;  never built before. Our clients are&#xA;  interested in results and we need to&#xA;  deliver them quickly. Experience at&#xA;  scale: We start at terabytes.&#xA;  Everything gets larger from there.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;We have: Depth: It's a small company&#xA;  but we bring decades of combined&#xA;  experience in internet marketing and&#xA;  business intelligence at scales that&#xA;  few people have the opportunity to&#xA;  work at consistently Intellectual&#xA;  diversity: We're engineers, political&#xA;  scientists, statisticians and even&#xA;  music theorists. We can all write&#xA;  code, but that's not the only thing we&#xA;  do. Connections: We mentioned a few of&#xA;  our business partners above. This&#xA;  network rubs off. Raybeam employees go&#xA;  on to work at places like Google,&#xA;  Microsoft, Expedia and CBSSportsline.&#xA;  Challenges: Every engagement is&#xA;  different and we get the opportunity&#xA;  to be creative every time. Fun: We're&#xA;  hilarious ... trust us.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Specifics: You’ll be working with&#xA;  Java, Spring and Hibernate and you’ll&#xA;  have experience with OOD&#xA;  Multi-threaded programming Database&#xA;  design SQL&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="934" LastEditorUserId="934" LastEditorDisplayName="" LastEditDate="2011-01-08T04:18:17.773" LastActivityDate="2011-01-08T04:18:17.773" CommentCount="2" />
  <row Id="34832" PostTypeId="2" ParentId="34570" CreationDate="2011-01-08T02:13:04.173" Score="2" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;blockquote&gt;&#xA;    &lt;p&gt;How should I take being told that I was wrong?&lt;/p&gt;&#xA;  &lt;/blockquote&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I get told that all the time, at least on SO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes I actually &lt;em&gt;am&lt;/em&gt; wrong. The thing to do then is to be an adult and &lt;em&gt;admit it&lt;/em&gt;.&#xA;Learn to say &quot;You were right. I was wrong. Thanks for pointing that out.&quot;&#xA;That makes you an inch taller in everyone's eye.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you don't think you're wrong, look for constructive exchange and try to learn from it.&#xA;If you can't get to the bottom of whatever the differing viewpoints are, that's OK. You tried.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Never take it personally. There are some bad people in the world.&#xA;Criticizing your work does not make somebody one of them.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2011-01-08T02:18:27.163" LastActivityDate="2011-01-08T02:18:27.163" />
  <row Id="34833" PostTypeId="2" ParentId="34806" CreationDate="2011-01-08T02:16:16.193" Score="2" ViewCount="" Body="&lt;p&gt;I can recall one place I worked ran a job add offering $30K per year (which was a very high salary in 79). Someone passed all the requirements, but was rejected because he was greedy and wanted the advertised salary! What were they thinking?&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2011-01-08T02:16:16.193" CommentCount="1" />
  <row Id="34834" PostTypeId="2" ParentId="34759" CreationDate="2011-01-08T02:23:02.667" Score="1" ViewCount="" Body="&lt;p&gt;I find the syntax in Figure 4-5 to be far superior to the first.  When you consider larger, more complicated examples, the first syntax will get pretty messy.  The syntax of Figure 4-5 allows designers familiar with html and not with php can to easily work with your code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A designer does not need to know how you get your data from your database and how you modify it for display, they just want to see your html tags.  This goes beyond any personal preference about which syntax is easier to understand. If following the MVC architecture, your application should display its content independently from where the data comes from and how it is processed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Listings 2-1 through 2-5 in chapter two of &lt;a href=&quot;http://www.symfony-project.org/book/1_1/02-Exploring-Symfony-s-Code&quot; rel=&quot;nofollow&quot;&gt;The Definitive Guide to symfony&lt;/a&gt; show this very well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Listing 2-3 is a lot easier for a designer to work with than Listing 2-1.  It does not contain any code used to retrieve that data that is displayed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Listing 2-3:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;html&amp;gt;&#xA;  &amp;lt;head&amp;gt;&#xA;    &amp;lt;title&amp;gt;List of Posts&amp;lt;/title&amp;gt;&#xA;  &amp;lt;/head&amp;gt;&#xA;  &amp;lt;body&amp;gt;&#xA;    &amp;lt;h1&amp;gt;List of Posts&amp;lt;/h1&amp;gt;&#xA;      &amp;lt;table&amp;gt;&#xA;        &amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Date&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Title&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&#xA;         &amp;lt;?php foreach ($posts as $post): ?&amp;gt;&#xA;           &amp;lt;tr&amp;gt;&#xA;            &amp;lt;td&amp;gt;&amp;lt;?php echo $post['date'] ?&amp;gt;&amp;lt;/td&amp;gt;&#xA;            &amp;lt;td&amp;gt;&amp;lt;?php echo $post['title'] ?&amp;gt;&amp;lt;/td&amp;gt;&#xA;           &amp;lt;/tr&amp;gt;&#xA;         &amp;lt;?php endforeach; ?&amp;gt;&#xA;     &amp;lt;/table&amp;gt;&#xA;   &amp;lt;/body&amp;gt;&#xA; &amp;lt;/html&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Listing 2-1:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;?php&#xA;&#xA;// Connecting, selecting database&#xA;$link = mysql_connect('localhost', 'myuser', 'mypassword');&#xA;mysql_select_db('blog_db', $link);&#xA;&#xA;// Performing SQL query&#xA;$result = mysql_query('SELECT date, title FROM post', $link);&#xA;&#xA;?&amp;gt;&#xA;&#xA;&amp;lt;html&amp;gt;&#xA;  &amp;lt;head&amp;gt;&#xA;    &amp;lt;title&amp;gt;List of Posts&amp;lt;/title&amp;gt;&#xA;  &amp;lt;/head&amp;gt;&#xA; &amp;lt;body&amp;gt;&#xA;   &amp;lt;h1&amp;gt;List of Posts&amp;lt;/h1&amp;gt;&#xA;     &amp;lt;table&amp;gt;&#xA;       &amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Date&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Title&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&#xA;        &amp;lt;?php&#xA;          // Printing results in HTML&#xA;          while ($row = mysql_fetch_array($result, MYSQL_ASSOC))&#xA;          {&#xA;            echo &quot;\t&amp;lt;tr&amp;gt;\n&quot;;&#xA;            printf(&quot;\t\t&amp;lt;td&amp;gt; %s &amp;lt;/td&amp;gt;\n&quot;, $row['date']);&#xA;            printf(&quot;\t\t&amp;lt;td&amp;gt; %s &amp;lt;/td&amp;gt;\n&quot;, $row['title']);&#xA;            echo &quot;\t&amp;lt;/tr&amp;gt;\n&quot;;&#xA;          }&#xA;        ?&amp;gt;&#xA;      &amp;lt;/table&amp;gt;&#xA;    &amp;lt;/body&amp;gt;&#xA;  &amp;lt;/html&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// Closing connection&#xA;mysql_close($link);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;?&gt;&lt;/p&gt;&#xA;" OwnerUserId="6523" LastEditorUserId="6523" LastEditorDisplayName="" LastEditDate="2011-01-08T02:34:14.157" LastActivityDate="2011-01-08T02:34:14.157" />
  <row Id="34835" PostTypeId="2" ParentId="34805" CreationDate="2011-01-08T02:23:03.790" Score="2" ViewCount="" Body="&lt;p&gt;I agree with John. Been there (twice) and let me tell you, burn out is something completely different. Don't use that term lightly and be careful what you wish for. What to do when you're burnt out is pretty easy: Get professional help to get out of it. And be prepared that to be a process that takes months, if not years.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, what you need to do is avoid getting there. Feeling you're wasting time is a warning. The moment you can't lift yourself out of bed anymore, you're too far gone. One important thing is the mindset: The more you frustrate yourself over something, the faster you go down. One way of avoiding that is trying to find some diversion: find yourself something you do like. A side project, playing music, painting, whatever. And while you're at it, find a way to get rid of the frustration by looking for new roads.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have the feeling it's not even so much ASP.net, but the things you have to program. Some projects require a whole lot more UI programming than others. As Bobby Tables said, try to get to the backend, sounds like more your thing. If it doesn't work at your company, time to move ahead. I did, and it saved me.&lt;/p&gt;&#xA;" OwnerUserId="7268" LastEditorUserId="5064" LastEditorDisplayName="" LastEditDate="2011-01-21T00:56:42.313" LastActivityDate="2011-01-21T00:56:42.313" CommentCount="1" />
  <row Id="34836" PostTypeId="1" CreationDate="2011-01-08T02:23:55.973" Score="0" ViewCount="52" Body="&lt;p&gt;What are peoples thoughts on storing configuration files and editor settings in source control? This would include files that are not directly related to the code base, but necessary for maintaining common development environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, which one would be preferred over the others?&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/env&#xA;/etc&#xA;/setup&#xA;/config&#xA;/system&#xA;/resources&#xA;/users&#xA;/settings&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3122" LastActivityDate="2011-01-08T17:09:35.437" Title="Recommended Project Directory Location for IDE settings, and configuration files?" Tags="&lt;organization&gt;&lt;file-structure&gt;&lt;project-structure&gt;" AnswerCount="2" />
  <row Id="34837" PostTypeId="2" ParentId="34827" CreationDate="2011-01-08T02:28:35.680" Score="4" ViewCount="" Body="&lt;p&gt;My sister is a recruiter and I have had many discussions with her about the challenges of recruiting for technical positions. A major issue is that technical recruiters have extremely limited domain knowledge mainly because there are so many different technologies. Think about trying to explain what you do to your mother. You could say web development, application development, embedded development ... it is all the same to non-technical people. In contrast, it is much easier for a recruiter to specialize in say finance., which is exactly what she does. She states that her primary goal it to provided a client with a qualified candidate on the first try. I think this goal is admirable, but unrealistic for technical positions. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2011-01-08T02:33:59.217" LastActivityDate="2011-01-08T02:33:59.217" CommentCount="6" />
  <row Id="34838" PostTypeId="2" ParentId="34737" CreationDate="2011-01-08T02:30:42.497" Score="2" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://stackoverflow.com/tags/rebol/info&quot;&gt;Rebol&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;It's built around the notion of code-as-data, like LISP is.  The language's adherents have a hard time explaining what its unique benefits are over other approaches in that family, and usually wind up shrugging and saying something like &lt;i&gt;&quot;Well the guy who designed the AmigaOS came up with it, the standard library is included and microscopic, and once you 'get' it that will be like taking the red Matrix pill and you'll never want to go back.&quot;&lt;/i&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The trouble with it is partially that it's quirky and hasn't precisely defined which programmers are its market.  But also partially because many of the people advocating it &lt;a href=&quot;http://xkcd.com/566/&quot; rel=&quot;nofollow&quot;&gt;just suck at explaining&lt;/a&gt;.  :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But Douglas Crockford used to be a fan, drew some inspiration from it with the creation of JSON, and has suggested people look into it as recently as this October:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;&quot;Ted Neward did a really good job of&#xA;  moderating the panel on 'Future of&#xA;  Programming Languages'. At the end of&#xA;  the panel, Ted asked the panelists&#xA;  which languages they though people&#xA;  should be learning in order to get new&#xA;  ideas. The list included Io (Bruce&#xA;  Tate), &lt;b&gt;Rebol (Douglas Crockford)&lt;/b&gt;,&#xA;  Forth and Factor (Alex Payne), Scheme&#xA;  and Assembler (Josh Bloch), and&#xA;  Clojure (Guy Steele).&quot;&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;Source: &lt;a href=&quot;http://www.sauria.com/blog/2010/10/22/strange-loop-2010/&quot; rel=&quot;nofollow&quot;&gt;sauria.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I think it's worth looking at for anyone looking to stretch how they think about language design and extensibility.  Probably best to avoid using it for anything too important, though....&lt;/p&gt;&#xA;" OwnerUserId="944" LastEditorUserId="944" LastEditorDisplayName="" LastEditDate="2011-01-08T02:41:30.203" LastActivityDate="2011-01-08T02:41:30.203" CommunityOwnedDate="2011-01-08T02:30:42.497" CommentCount="1" />
  <row Id="34839" PostTypeId="2" ParentId="34737" CreationDate="2011-01-08T02:31:05.143" Score="2" ViewCount="" Body="&lt;p&gt;Turing machine language, obviously. Extremely powerful, provably superior to all other programming languages that exist, and guaranteed to hurt your brain if you try to use it.&lt;/p&gt;&#xA;" OwnerUserId="12667" LastActivityDate="2011-01-08T02:31:05.143" CommunityOwnedDate="2011-01-08T02:31:05.143" CommentCount="7" />
  <row Id="34840" PostTypeId="2" ParentId="34806" CreationDate="2011-01-08T02:31:54.990" Score="0" ViewCount="" Body="&lt;p&gt;&lt;em&gt;The salary would be relative to the position.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This one line makes me wonder if it is really a &quot;high salary&quot; or if it's reasonable compensation for the skills required and the level of the position.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the salary is average for the position you are trying to fill, I might think it could have the opposite effect. As someone has already mentioned, it might be hard to find good candidates b/c they are already employed. If they see your salary and its average, why would they leave their stable position for something that's not a sure thing for the money they are probably already making?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, seeing a salary makes me think the company isn't going to negotiate at all. If the job requirements don't match the salary posted it makes me think something is being hidden. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, if I didn't have a job and I really REALLY needed one (bad economy you know) I would apply even if I had only a subset of the skills required. Never know, you might get lucky right? Any job is better than no job. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, the TL;DR version is no I don't think posting a higher salary on your job ad will help to minimize unqualified people, but it might hinder you in maximizing the qualified people.&lt;/p&gt;&#xA;" OwnerUserId="2305" LastActivityDate="2011-01-08T02:31:54.990" CommentCount="1" />
  <row Id="34841" PostTypeId="2" ParentId="34806" CreationDate="2011-01-08T02:36:16.480" Score="0" ViewCount="" Body="&lt;p&gt;I kind of like the ads that do post a salary range. It's the ones that don't that get me worried (Are they hiding something? Are they going to play the ridiculous negotiation game where I have to mention a number first so they can screw me?). If they post a salary range, I know whether it meets my needs in that department, and don't waste my time with it if it doesn't. If the salary posted is truly in the budget for that position then fine.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, the other answers posted here are legit too. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end though, I think it would have about the same chance of attracting bogus candidates as it would filtering out people that weren't serious.&lt;/p&gt;&#xA;" OwnerUserId="7892" LastActivityDate="2011-01-08T02:36:16.480" />
  <row Id="34842" PostTypeId="2" ParentId="5372" CreationDate="2011-01-08T02:52:41.560" Score="0" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Set concrete, measurable fitness and diet goals. &lt;/li&gt;&#xA;&lt;li&gt;Track progress daily.&lt;/li&gt;&#xA;&lt;li&gt;Share with others.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Tracking everything not only satisfies my &lt;a href=&quot;http://xkcd.com/189/&quot; rel=&quot;nofollow&quot;&gt;&quot;data junkie&quot; side&lt;/a&gt;, but sharing it with others - and having them encourage me and keep me honest - is a &lt;strong&gt;huge&lt;/strong&gt; motivation. This approach has allowed me to make some incredible gains in my fitness and health despite sitting in front of a computer 10 hours a day. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To use myself as an example, I do &lt;a href=&quot;http://crossfit.com/&quot; rel=&quot;nofollow&quot;&gt;Crossfit&lt;/a&gt; (by far the most effective way to exercise &lt;a href=&quot;http://brikis98.blogspot.com/2008/12/tribute-to-crossfit.html&quot; rel=&quot;nofollow&quot;&gt;I've ever found&lt;/a&gt;), set goals each year on &lt;a href=&quot;http://brikis98.blogspot.com/2010/01/my-2010-crossfit-goals.html&quot; rel=&quot;nofollow&quot;&gt;my blog&lt;/a&gt; and track every single workout &lt;a href=&quot;http://forums.anandtech.com/showthread.php?t=194624&quot; rel=&quot;nofollow&quot;&gt;on a messageboard&lt;/a&gt;. For diet, I currently just try to follow the advice in &lt;a href=&quot;http://michaelpollan.com/books/in-defense-of-food/&quot; rel=&quot;nofollow&quot;&gt;In Defense of Food&lt;/a&gt; and eat only whole/unprocessed food in a roughly &lt;a href=&quot;http://en.wikipedia.org/wiki/Zone_diet&quot; rel=&quot;nofollow&quot;&gt;Zone Diet 40/30/30 breakdown&lt;/a&gt;, although a couple years ago, my diet goals &lt;a href=&quot;http://brikis98.blogspot.com/2008/12/introduction-my-bodyweight-during-2008.html&quot; rel=&quot;nofollow&quot;&gt;included losing 43lbs&lt;/a&gt;, which I managed to do in ~8 months. &lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2011-01-08T02:52:41.560" CommunityOwnedDate="2011-01-08T02:52:41.560" />
  <row Id="34843" PostTypeId="1" AcceptedAnswerId="34848" CreationDate="2011-01-08T03:00:23.943" Score="11" ViewCount="324" Body="&lt;p&gt;It seems that, in my experience, getting us engineers to accurately estimate and determine tasks to be completed is like pulling teeth. Rather than just giving a swag estimate of 2-3 weeks or 3-6 months... what is the simplest way to define software schedules so they are not so painful to define? For instance, customer A wants a feature by 02/01/2011. How do you schedule time to implement this feature knowing that other bug fixes may be needed along the way and take up additional engineering time?&lt;/p&gt;&#xA;" OwnerUserId="4459" LastActivityDate="2011-01-08T18:03:00.237" Title="Why are software schedules so hard to define?" Tags="&lt;software-schedules&gt;" AnswerCount="10" CommentCount="13" FavoriteCount="6" />
  <row Id="34844" PostTypeId="2" ParentId="34785" CreationDate="2011-01-08T03:06:19.970" Score="2" ViewCount="" Body="&lt;p&gt;Somehow I had not heard of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Affero_General_Public_License&quot; rel=&quot;nofollow&quot;&gt;Affero GPL (AGPL)&lt;/a&gt; until relatively recently.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you enjoy the viral religion of the share-and-share-alike aspect of the GPL, then you might want to use this for code likely to be run server-side.  It stipulates that people can't make proprietary derivations of a GPL codebase and then run that on some server that people use without also sharing the code changes with those people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(GPL-style licenses make sense for projects that are big and part of the GNU ecosystem.  But as @MasonWheeler points out, using it too frivolously for little things like JavaScript libraries is too heavyhanded.  That really can seem like the nail manufacturer wanting to claim rights on your house.)&lt;/p&gt;&#xA;" OwnerUserId="944" LastActivityDate="2011-01-08T03:06:19.970" />
  <row Id="34845" PostTypeId="2" ParentId="34843" CreationDate="2011-01-08T03:13:28.153" Score="3" ViewCount="" Body="&lt;p&gt;Honestly, I think it just takes practice. If you write enough code eventually you should be &quot;fairly&quot; accurate. My first boss believed that this skill was important enough that he requested that I informally practice this on every feature/project that I implemented. After each project we reviewed the estimates and attempted to figure out where I went wrong. Eventually, you get the hang of it. &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-08T03:13:28.153" CommentCount="5" />
  <row Id="34846" PostTypeId="2" ParentId="34759" CreationDate="2011-01-08T03:18:56.490" Score="1" ViewCount="" Body="&lt;p&gt;I use the second one simply because &lt;strong&gt;text editors and IDEs understand the html&lt;/strong&gt;. If I miss a closing tag, the editor will inform me. If I just print the html as a string it will not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I don't really have an opinion on it other than that.&lt;/p&gt;&#xA;" OwnerUserId="5678" LastActivityDate="2011-01-08T03:18:56.490" />
  <row Id="34847" PostTypeId="2" ParentId="34843" CreationDate="2011-01-08T03:25:26.030" Score="2" ViewCount="" Body="&lt;p&gt;It's never easy. You just try to get better at it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One advantage of breaking up your deliverable code into smaller pieces, is so clients get an understanding of what to expect and when to expect it. Now you have some sort of baseline for them to use as a reference. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they have a strict definition of a feature that they need at a defined time, they need to know that additional resources have to be allocated to this request. They are taking a risk in the severity of the bugs that occur and how long they can go without them being fixed. When something major comes up, you go back to the client and force them into a decision. Do I fix the bug or make the deadline on the new feature? Give them enough information to make an informed decision. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hopefully you have enough history of working together and have established yourself enough to be trusted. You can't expect them to fully understand the development process, but you can make them feel you are putting forth an honest effort and not taking advantage of their lack of knowledge.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-08T03:25:26.030" CommentCount="1" />
  <row Id="34848" PostTypeId="2" ParentId="34843" CreationDate="2011-01-08T03:26:11.863" Score="21" ViewCount="" Body="&lt;p&gt;If you are cranking out a project nearly identical to other projects you have done, using familiar tools and a familiar team, and you are given firm, written requirements, then it should be possible to make good estimate.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are the conditions that painters, carpet installers, landscapers, etc., regularly experience.  But it is not a good fit for many (or most) software projects.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;We're often asked to estimate projects that use new tools, technologies, where requirements are changing,etc. This is more extrapolation into the unknown than interpolation over our past experiences.  So it is natural that estimation will be more difficult.&lt;/p&gt;&#xA;" OwnerUserId="12109" LastActivityDate="2011-01-08T03:26:11.863" CommentCount="8" />
  <row Id="34849" PostTypeId="2" ParentId="34843" CreationDate="2011-01-08T03:30:47.677" Score="16" ViewCount="" Body="&lt;p&gt;According to my personal experience, it's exactly the opposite of &lt;a href=&quot;http://programmers.stackexchange.com/questions/34843/why-are-software-schedules-so-hard-to-define/34845#34845&quot;&gt;what Pemdas said&lt;/a&gt;: with practice, I've just understood that it's totally impossible to estimate how much time a task will require. At the beginning of my career in software development, I often gave estimates like &quot;45 days&quot;, &quot;five weeks&quot;, etc., then tried very hard to finish in time. Few years after, I started to give less precise estimates like &quot;approx. one month&quot;, &quot;five to seven weeks&quot;, etc. Actually, I try either to not to give any estimate, or ask the customer to give her own estimate or deadline or I give an estimate as rough as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why is it so difficult to have an estimate? Because it's nearly impossible to know how the whole source code will be written before actually write it, and because your work depends on random things as other peoples work, your motivation, etc. Here's a more detailed list of the possible reasons:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;It's not easy to know &lt;strong&gt;what exactly is required to do a product, and especially &lt;em&gt;how&lt;/em&gt; to do it&lt;/strong&gt;. Very often I started some parts of an application, than, after days of work, understood that my first approach was wrong, and that there is a better and smarter way to do things.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Some problems may arise&lt;/strong&gt;. For example, if, to begin your work, you must install on your machine a fancy SQL server and the installation fails and the support is nonexistent, you may spend weeks solving this issue.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Requirements are often not clear enough&lt;/strong&gt;, but after reading them at the beginning, you think they are. Sometimes you can understand that the mean A, and, after starting to implement them, you would notice that they maybe mean B.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Customers like change their requirements exactly when you've just finished the concerned part&lt;/strong&gt;, and they really don't understand why are you requesting two more weeks and $2000 to do a &lt;em&gt;tiny&lt;/em&gt; change, because they don't see that this &lt;em&gt;tiny&lt;/em&gt; change requires to change other things, which require to change others, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;You can't estimate your &lt;strong&gt;motivation&lt;/strong&gt;. There are days when you can work for hours and succeed well. There are weeks when, after writing ten lines of code, you switch to Programmers StackExchange, and spend hours reading ans answering questions.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Things become really bad when &lt;strong&gt;your estimate depends on other people&lt;/strong&gt;. For example, in one 2 months project I had to wait for a designer to do his work to finish my own. This designer took 3 months before delivering a piece of unusable crap. Of course the project was late.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Your estimate also depends on your customer&lt;/strong&gt;. I had customers who spend weeks before answering their mail. It can really affect your schedule when you must wait for their answer (for example if you are asking them to precise a requirement).&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;What can you do?&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Give a larger schedule&lt;/strong&gt;. If you think you can do the job in two weeks, say you will deliver it in one month.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Be clear&lt;/strong&gt;. If you rely on a designer, another developer, etc., say it. Instead of telling &quot;I will deliver the product in three months&quot;, say &quot;I will deliver the product in two months after the designer will give me PSD files.&quot;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Explain that if requirements change every day, the project will hardly be delivered in time.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Slice your schedule&lt;/strong&gt;. Delivering parts of a large project on time is easier.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Never give an estimate when you use a product you don't know well or, especially, when you will work on a source code of somebody else: you can never predict how crappy can be the source code and how much time you'll spend understanding and copy-pasting it to The Daily WTF.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6605" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2011-01-08T13:38:04.830" LastActivityDate="2011-01-08T13:38:04.830" CommentCount="11" />
  <row Id="34850" PostTypeId="2" ParentId="34828" CreationDate="2011-01-08T03:39:29.930" Score="3" ViewCount="" Body="&lt;p&gt;I've tested a lot of software as a former head of technical support for a small software company. Basically I had a talent/desire for breaking programs because I had enough of an understanding of building software that I knew the typical errors/assumptions/oversights programmers make. Mainly I needed a basic understanding of what the software was suppose to do, but there are many instances where you really need to understand the domain and the habits of the typical users. Looking for a tester/QA person may not be enough. You may be better off with a legal secretary to test a time billing app than a QA person with only financial industry experience.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-08T03:39:29.930" />
  <row Id="34851" PostTypeId="1" AcceptedAnswerId="34864" CreationDate="2011-01-08T03:47:51.417" Score="1" ViewCount="94" Body="&lt;h2&gt;My Motivation&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;I find it easier to learn things by reading 'offline'.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd like to lean back and read the narrative part of a paper version of the official php manual.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;My Scuppered Plan&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;My plan was to download the manual, print &lt;em&gt;all but the Function Reference section&lt;/em&gt; and then read it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have downloaded the &quot;&lt;em&gt;Single HTML file&lt;/em&gt;&quot; version of the manual from the &lt;a href=&quot;http://www.php.net/download-docs.php&quot; rel=&quot;nofollow&quot;&gt;php.net download page&lt;/a&gt;. (That version did not contain any images, so I patched-in the ones from the &lt;em&gt;Many HTML files&lt;/em&gt; version with no problem.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My plan was to open that &quot;&lt;em&gt;Single HTML file&lt;/em&gt;&quot; in an HTML editor, delete the &lt;em&gt;Function Reference section&lt;/em&gt; then print it out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, although I have tried three different editors, I have not been able to successfully load-up that massive html file to be able to edit it. Its about (~40MB).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started to look into the &lt;a href=&quot;http://doc.php.net/php/dochowto/&quot; rel=&quot;nofollow&quot;&gt;phpdoc framework&lt;/a&gt; with a view to rendering my own html docs from the source...but that's a steep learning curve for a newby..and is a last resort.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would use a file splitter, but they tend to split files crudely with no regard for html/xml/xhtml sematics.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Closest solution&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;In the end I just opened the whole thing in firefox, print-previewed to determine the pages needed and then printed the required portions. It was still a labourious task (each step taking minutes to respond ) - so would still like to know... &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;So the question is...&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Does anyone know where you can download the php manual in a version that is a kind of &lt;em&gt;half-way house&lt;/em&gt; between the 'Single HTML file' and the 'Many HTML files'?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ideally with the docs split into 3 parts:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;File 1 - stuff before the function reference &lt;/li&gt;&#xA;&lt;li&gt;File 2 - function reference&lt;/li&gt;&#xA;&lt;li&gt;File 3 - stuff after the function reference&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;Or&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Can you suggest any editors/tools will enable me to split up this file myself?&lt;/p&gt;&#xA;" OwnerUserId="6720" LastEditorUserId="6720" LastEditorDisplayName="" LastEditDate="2011-01-08T05:22:56.947" LastActivityDate="2011-01-08T05:47:10.327" Title="printable PHP manual - 'all but the Function Reference section'" Tags="&lt;php&gt;&lt;documentation&gt;&lt;documentation-generation&gt;" AnswerCount="1" CommentCount="5" />
  <row Id="34852" PostTypeId="2" ParentId="34843" CreationDate="2011-01-08T03:49:50.457" Score="1" ViewCount="" Body="&lt;p&gt;Software development is -- by definition -- an act of discovery and invention.  It must always involve something unknown.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only time everything related to software development is known is when the software is complete.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only time there's no unknown technology or business feature is when it's a complete, packaged solution ready for download.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The reason we write new software is because we have a new feature or new technology or both.  New means new -- unknown -- unpredictable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because software development must involve novelty, the development effort cannot be predicted.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-08T03:49:50.457" />
  <row Id="34853" PostTypeId="2" ParentId="34828" CreationDate="2011-01-08T03:54:16.043" Score="2" ViewCount="" Body="&lt;p&gt;Generally speaking, programmers want to program.  They don't want to test because &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;They don't make as much money from it, and&lt;/li&gt;&#xA;&lt;li&gt;They won't get as much prestige (or development experience) from it, which is relevant to future career opportunities.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I've interviewed quite a few SDETs recently. I've personally found that your best shot at a good SDET is to look for a recent CS grad who has taken a class on testing and is highly motivated.  They should have picked up on the most important practices and what it means to be a tester from the class, and even if they do want to be a dev, they'll consider their time as a tester as a learning experience and a stepping stone.  There's also the possibility that they'll discover their calling.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Older graduates will not consider testing a stepping stone, so you'll have to look for the very experienced technically oriented people who like testing and haven't moved to management (hah!), or stick with non-techies.  &lt;/p&gt;&#xA;" OwnerUserId="12670" LastActivityDate="2011-01-08T03:54:16.043" />
  <row Id="34854" PostTypeId="2" ParentId="34843" CreationDate="2011-01-08T04:01:24.143" Score="1" ViewCount="" Body="&lt;p&gt;Because we do the schedule too early.  See &lt;a href=&quot;http://www.construx.com/Page.aspx?hid=2800/&quot; rel=&quot;nofollow&quot;&gt;Construx's article&lt;/a&gt; on doing a preliminary rough one, then better one later.  Also if you don't track how you did on prior estimates, it is hard to get better.  FogBugz does that [a customer of their free one, no other conflict of interest].&lt;/p&gt;&#xA;" OwnerUserId="1654" LastActivityDate="2011-01-08T04:01:24.143" />
  <row Id="34855" PostTypeId="2" ParentId="34805" CreationDate="2011-01-08T04:02:14.210" Score="5" ViewCount="" Body="&lt;p&gt;Sounds like you're stuck in &lt;em&gt;WebForms&lt;/em&gt; hell.  What you need is a good ASP.NET &lt;strong&gt;MVC&lt;/strong&gt; project, and get control of your coding life back.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Either way, don't give up on programming.  I considered leaving the field a few years ago, when I realized it wasn't programming, it was what I was doing day-in and day-out that made me start to hate the field (managing and operations support).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try a completely different programming tool -- one that eliminates much of the abstraction, and lets you get down to the bare metal.  Once you get that back, you'll start to appreciate a helpful level of abstraction, while still feeling in control.  ASP.NET WebForms can be extremely frustrating when you're trying to work around everything.  Way too much abstraction.  That's one of the reasons ASP.NET MVC was such a breath of fresh air for many developers.&lt;/p&gt;&#xA;" OwnerUserId="10397" LastActivityDate="2011-01-08T04:02:14.210" />
  <row Id="34856" PostTypeId="2" ParentId="34506" CreationDate="2011-01-08T04:05:48.273" Score="0" ViewCount="" Body="&lt;p&gt;All I can say is that I installed the Community Edition a year or so ago, didn't use it much for anything, but install was straight forward and similar to any other PHP product install, and my limited test of the software confirmed that it works as designed. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can't say anything about module building though. I guess that's the tough part about Open Source stuff. You want to modify it, but you also want to be able to get updates. So you can't just go and hack their source and stuff in whatever you want, because then when you upgrade to their new version you'll lose all your modifications. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So you have to use their &quot;modules&quot; or plug-ins or whatever, which means learning how to do it their way, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But bottom line is that its Open Source and PHP so pretty much you can make it do whatever in the world you want it to do, which I don't think you can say for a closed source CRM.&lt;/p&gt;&#xA;" OwnerUserId="11432" LastActivityDate="2011-01-08T04:05:48.273" CommentCount="1" />
  <row Id="34858" PostTypeId="2" ParentId="34827" CreationDate="2011-01-08T04:14:52.113" Score="1" ViewCount="" Body="&lt;p&gt;My craziest recruiter story matches up with my craziest job interview. The recruiter claimed to be the very best, super picky about his clients, always places them etc. I was sent on two interviews, the second was at a large defense contractor, at one point they took me on a tour of their stuff, and I was asked &quot;is this what you want to do?&quot;, I said NO, and was immediately escorted off the premises. The next day the recruiter called and angrily dumped me. I guess he only wanted clientele who would accept the first job on offer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Funny, thing is next time I went that route (with another guy) I did accept the first job offered (and the first contact he sent me on) (because it was my dream position), and got yelled at for taking the first one &quot;I coulda got you more money...&quot;.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2011-01-08T04:14:52.113" CommentCount="2" />
  <row Id="34859" PostTypeId="2" ParentId="34775" CreationDate="2011-01-08T04:17:43.470" Score="2" ViewCount="" Body="&lt;p&gt;I believe what I'm doing right now is Yak Shaving.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I need to implement a search on a new entity in my application.  I already have a pretty general search on another entity type and would like to re-use some of that, but I have to refactor it to generalize it some more.  Unfortunately, there is a dependency on an enum that is specific to the old entity, so I needed to find a way to generalize a Java enum.  I did a Google search to look for strategies to accomplish that and wound up at StackOverflow.  I saw I had something in my inbox, so I went to check that out and happened to see an interesting question on StackExchange and now I'm reading about (and writing about) Yak Shaving.&lt;/p&gt;&#xA;" OwnerUserId="12671" LastActivityDate="2011-01-08T04:17:43.470" />
  <row Id="34860" PostTypeId="2" ParentId="34828" CreationDate="2011-01-08T04:24:13.263" Score="3" ViewCount="" Body="&lt;p&gt;I suppose it matters where you're looking, and what your requirements are. Some temporary agencies like Volt (in the US) place a lot of testers, and even if you run a small shop you can work with them as long as you are able to pay on an hourly basis.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Different companies use different job titles, including &quot;QA Analyst&quot;, &quot;Software Tester&quot;, &quot;Software Test Engineer&quot;, and so on. I prefer &quot;Software Test Engineer&quot; if you can get away with it where you are, only because people who have done it professionally will be more likely to understand what you are looking for.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, in many countries, the use of &quot;engineer&quot; may imply specific educational requirements, so you may need another title. The ironic thing is that &quot;Quality Assurance Analyst&quot; or similar titles are also misleading for people with an industrial quality assurance background, as Software QA corresponds most directly to what industrial QA refers to as quality control. Quality Assurance, as a job description is, in manufacturing, usually more about creating and managing processes that lead to quality, and Quality Control is traditionally about defect identification. Software QA is somewhere between those two worlds.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've personally had good experiences (and some unpleasant ones) with outsourced QA work.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In practice, if what you are looking for is someone to do manual, ad hoc UI testing or integration testing, you are probably looking for a &quot;black box tester&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for the interview process, don't get too hung up on paper qualifications unless you really need an experienced tester (and unless you're testing something fairly esoteric, chances are you don't). I started doing internationalization QA work right out of college with a degree in East Asian Studies. They wanted someone who knew something about the internet, and preferred people who knew German or Japanese (I knew both, at least a little), and were interested in people who had taken the time to learn a programming language or two but didn't really need evidence that you had done anything particularly impressive with it. For example, I was only asked to write the header file for a linked list class, not an actual implementation. What they were more interested in was answers to questions like: &quot;Here's a dialog box (on the whiteboard). How would you test it?&quot; Then they'd press for answers on things like &quot;how do you know X is the correct behavior?&quot; and the ideal answer was that you would consult a specification, a project plan, a project manager, your lead, and finally, base it on an understanding of the motivations of the users, roughly in that order.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Problem solving and an intuitive ability to break down problems are more valuable in testers than coding experience, and a creative ability to identify vulnerabilities and exercise the program to exploit them is the single most valuable skill. As I got more experienced in my early career, I actually found fewer bugs, because my approach became more rigid and defined by the project specifications. People with a less technical approach would find more errors in the overall interaction; I tended to find interesting but sophisticated bugs after a while, because I would start from a deeper technical understanding of the system; however, if you want the most bang for the buck, I promise a creative ad hoc tester will get you further, faster, than a sophisticated tester, until your project reaches the point where it can afford multiple QA team members.&lt;/p&gt;&#xA;" OwnerUserId="7080" LastEditorUserId="7080" LastEditorDisplayName="" LastEditDate="2011-01-08T17:50:50.160" LastActivityDate="2011-01-08T17:50:50.160" />
  <row Id="34861" PostTypeId="1" AcceptedAnswerId="34862" CreationDate="2011-01-08T04:37:29.540" Score="3" ViewCount="109" Body="&lt;p&gt;Microsoft has moved away from the COM stack, VB6 is so last century and .Net rules the (MS) roost. Yet I find myself still banging out reams of VBA code am I dinosaur? The need for VBA is a new project automating Excel seeing as you ask.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've tried to doing the same kind of thing using &lt;a href=&quot;http://en.wikipedia.org/wiki/Visual_Studio_Tools_for_Office&quot; rel=&quot;nofollow&quot;&gt;VSTO&lt;/a&gt; and it was just too damn buggy/hard/inefficient with a broken development model. I can't get rid of the feeling that I'm missing something, OTOH I really can't see a better way of solving this problem. What are your thoughts?&lt;/p&gt;&#xA;" OwnerUserId="1470" LastEditorUserId="1470" LastEditorDisplayName="" LastEditDate="2011-01-08T05:04:43.760" LastActivityDate="2011-01-08T05:29:31.833" Title="In the world of .Net, managed code and the web is there still a place for VBA?" Tags="&lt;microsoft&gt;" AnswerCount="2" CommentCount="7" />
  <row Id="34862" PostTypeId="2" ParentId="34861" CreationDate="2011-01-08T05:22:42.267" Score="5" ViewCount="" Body="&lt;p&gt;Of course there is still a need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why is .net the big thing? Because it makes visual app development quick and easy - MS learned all that from Borland and thus was born .net. (Borland used to have one of the few really easy visual dev environments that could make native win32 executables).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All these other things and tools are still needed - the need for native win32 apps is however something that incites passionate argument. I'd argue the need for Win32 native apps will never go away. That's a side issue, but related.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to generate an app / automation for word, excel, access, visio, etc etc then VBA is fast, simple, and tightly integrated. Why should it go away? Heck you can still do Excel macros of the kind that went out of fashion 15 years ago. Nobody much does because there are other ways that are better/faster/easier to understand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each tool has its place - if trying to use somethind else in place of VBA takes longer / costs more / is more difficult then its effectively trying to jam square pegs in round holes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The software business is FULL of people with Hammer Syndrome. You know the one: &quot;To a man with a hammer the whole world looks like a nail.&quot; Well every new s/w technology has its mad keen devotees who think it will solve every problem known to man, and then some. They are always wrong. Always have been, always will be.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2011-01-08T05:22:42.267" CommentCount="1" />
  <row Id="34863" PostTypeId="2" ParentId="34861" CreationDate="2011-01-08T05:29:31.833" Score="1" ViewCount="" Body="&lt;p&gt;If you asked me that two days ago, I would have said no, VBA is totally on its way out. But the other day I opened up one of my old Excel applications and discovered that all the VBA declare statements were broken. Turns out Office 2010 included a new version of VBA, 7.0, which changed the syntax slightly. I was really surprised that MS released a new version and now I really wonder what its future will be. But even if VBA went the way of VB6, I think there would be a need for VBA development for quite some time given the sheer quantity of legacy office applications out there. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I have a pretty strong preference for vsto. I'm not a fan of VB's syntax, so it's nice to develop office applications with C#. Plus, using the office IDE feels like I'm coding in the dark ages. Now, I haven't done a HUGE amount of vsto development, but the biggest problem I've encountered is a relative lack of documentation for certain things. For example, it took me hours of googling the other day just to find a definitive list of callback signatures for the ribbon. There other reasons, but those are the first that come to mind. It's also possible that your difficulties with vsto are just related to re-learning how to do things. I know I had my fair share of frustrating moments trying to do something &quot;simple&quot; and having it take hours. &lt;/p&gt;&#xA;" OwnerUserId="4222" LastActivityDate="2011-01-08T05:29:31.833" CommentCount="3" />
  <row Id="34864" PostTypeId="2" ParentId="34851" CreationDate="2011-01-08T05:47:10.327" Score="2" ViewCount="" Body="&lt;p&gt;Try &lt;a href=&quot;http://notepad-plus-plus.org/&quot; rel=&quot;nofollow&quot;&gt;NotePad++&lt;/a&gt; :)&lt;/p&gt;&#xA;" OwnerUserId="2673" LastActivityDate="2011-01-08T05:47:10.327" CommentCount="1" />
  <row Id="34866" PostTypeId="1" CreationDate="2011-01-08T06:50:13.583" Score="0" ViewCount="67" Body="&lt;p&gt;Hi Guys, I am not sure if this is correct place to ask this question. My apologies if it is not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I need to create a web app where people will sign up, call it main-app.com, when they sign up my code will generate a usersite.my-app.com, they will login and only be able to manage their mini site. My question is, is it correct to model this out by creating a table for site, a table for user, users belong to site and site has many users. Then I should create a content table that belongs to user AND site?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;is that right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Jeff&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="12677" LastActivityDate="2011-01-08T06:50:13.583" ClosedDate="2011-01-08T13:48:42.173" Title="proper model for a multi site rails app" Tags="&lt;ruby-on-rails&gt;" CommentCount="2" />
  <row Id="34867" PostTypeId="1" CreationDate="2011-01-08T07:04:30.443" Score="11" ViewCount="367" Body="&lt;p&gt;Is it possible for a programmer to suffer the equivalent of writer's block? What strategies are there to overcome it?&lt;/p&gt;&#xA;" OwnerUserId="12678" LastActivityDate="2011-01-09T02:55:28.437" Title="Is there such a thing as Programmer's block?" Tags="&lt;self-improvement&gt;" AnswerCount="5" CommentCount="4" FavoriteCount="1" />
  <row Id="34868" PostTypeId="1" CreationDate="2011-01-08T07:05:00.163" Score="-1" ViewCount="126" Body="&lt;p&gt;Till now i used to work alone but so i did not follow any practice like avoiding hard code etc. but now i am going to work in a team and i will have to make sure whatever i am going to write is readable, efficient and perfect.&lt;/p&gt;&#xA;" OwnerUserId="11558" LastActivityDate="2011-01-08T12:38:50.340" ClosedDate="2011-01-08T12:50:38.787" Title="What Best programming practices should i follow?" Tags="&lt;productivity&gt;&lt;best-practices&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="34869" PostTypeId="2" ParentId="34775" CreationDate="2011-01-08T07:09:25.997" Score="0" ViewCount="" Body="&lt;p&gt;I shave yaks all day every day. I thought it was programmer's block but turns out I have a yak shaving fetish. Who knew?&lt;/p&gt;&#xA;" OwnerUserId="12678" LastActivityDate="2011-01-08T07:09:25.997" />
  <row Id="34870" PostTypeId="2" ParentId="34867" CreationDate="2011-01-08T07:44:13.140" Score="7" ViewCount="" Body="&lt;p&gt;Funny you ask.  I was just talking with one of my engineers today about programmer's block.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I recommend programmers have 2 or 3 active tasks going at a time that he/she can work on.  When you get stuck somewhere, it's nice to be able to switch gears and work on something else for awhile and then come back to the problem with a fresh perspective.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find that when I come back to the problem, I oftentimes come up with a solution/plan that I might not have otherwise come up with.  Sometimes when working on one task, I run into something there that actually triggers the light bulb in my head for the problem that I was struggling with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the other engineers I work with says he'll take a 10 minute break and go take a walk.  He says that when he comes back to his desk, the answers suddenly start pouring back in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I find it helpful to talk through the problem with someone else, even if that someone else isn't a programmer.  I can't count the number of times I've been just talking about a problem when suddenly the answer comes to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, I think the best advice is that if you're stuck, switch gears for a bit.&lt;/p&gt;&#xA;" OwnerUserId="12611" LastActivityDate="2011-01-08T07:44:13.140" CommentCount="2" />
  <row Id="34871" PostTypeId="2" ParentId="34867" CreationDate="2011-01-08T08:14:53.863" Score="21" ViewCount="" Body="&lt;p&gt;Yes programmers can get blocked, but not in the same way as writers. We get blocked because we're too close to a problem, or too far away. We just can't get the gray matter to pick a good path in the N dimensional maze that is programming. A break, a chat, especially describing the issue to a co-worker can work wonders. Note describing a problem will often cause your brain to see a potential solution, you need to chat to a willing sounding board but they don't necessarily have to be technical or know what you're talking about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writers' block is similar in nature but effectively a different beast. It occurs not because the author can't solve a problem but because the author can't get their mojo going, their inspiration is lacking, their muse is on holiday, the internal voices are simply telling them it's all rubbish, not even worth writing down. In addition it can last for days, months, years. The act of writing code and writing prose are superficially the same but they come from different parts of our spirit. &lt;/p&gt;&#xA;" OwnerUserId="1470" LastEditorUserId="1470" LastEditorDisplayName="" LastEditDate="2011-01-08T11:18:13.937" LastActivityDate="2011-01-08T11:18:13.937" CommentCount="7" />
  <row Id="34872" PostTypeId="2" ParentId="25594" CreationDate="2011-01-08T08:39:56.310" Score="1" ViewCount="" Body="&lt;p&gt;The single best coding practice I following in my work is:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ensure the &lt;a href=&quot;http://en.wikipedia.org/wiki/Business_rule&quot; rel=&quot;nofollow&quot;&gt;Business Rule&lt;/a&gt; that each bit of code is doing is &lt;strong&gt;explicitly&lt;/strong&gt; apparent. If not in self-documenting in the code, there must be a comment. It will save some future poor soul many hours.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;After working on a corporate code base that stretches back over 15 years, it is burned in my subconscious. &lt;em&gt;I will not do to others what has been done to me&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2673" LastActivityDate="2011-01-08T08:39:56.310" />
  <row Id="34873" PostTypeId="2" ParentId="34843" CreationDate="2011-01-08T09:00:13.993" Score="4" ViewCount="" Body="&lt;p&gt;For the same reason that it is difficult to plan a trip when the navigator is not sure of the destination, the driver doesn't know the roads, and the passengers all want ice cream.&lt;/p&gt;&#xA;" OwnerUserId="906" LastActivityDate="2011-01-08T09:00:13.993" />
  <row Id="34874" PostTypeId="1" AcceptedAnswerId="34875" CreationDate="2011-01-08T09:01:41.340" Score="4" ViewCount="288" Body="&lt;p&gt;So, I'm looking ordering myself a new development desktop soon and setting up a PROPER office environment by the end of this year.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To boost productivity, I'm going to purchase three new monitors. I find that two just isn't enough when I'm debugging or doing something intensive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, I had something pointed out to me the other day that I never really noticed nor cared about before - &lt;em&gt;is the difference between a 16:10 and a 16:9 monitor noticeable when programming?&lt;/em&gt; Do you really miss those few extra lines, or is it something that you don't notice at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I notice HP only seems to sell 16:9 monitors (as far as I have found). Is this becoming something of a new standard with the recent growth and cleaver marketing of of &quot;HD 16:9&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;To summarize&lt;/strong&gt;: Has anybody made the switch from 16:10 to 16:9 (or vise-versa) and actually noticed the difference while programming?&lt;/p&gt;&#xA;" OwnerUserId="7048" LastEditorUserId="7048" LastEditorDisplayName="" LastEditDate="2011-01-08T10:01:13.787" LastActivityDate="2011-01-08T15:03:34.777" Title="Monitor aspect ratio; Does the difference matter?" Tags="&lt;productivity&gt;" AnswerCount="5" CommentCount="9" />
  <row Id="34875" PostTypeId="2" ParentId="34874" CreationDate="2011-01-08T09:12:25.840" Score="4" ViewCount="" Body="&lt;p&gt;Personally I could not care less about the physical shape of the monitor.  What matters to me is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1) The amount of &lt;em&gt;pixels&lt;/em&gt; on the monitor.  Get as many pixels on the monitor as possible.  This eventually determines how much you can see at one point.  Also note that some programs work better on a single monitor than on several, again meaning that you want that monitor to have the highest practical pixel count.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) Number of source lines I can see on a monitor.  This means the highest possible vertical resolution.   Since most monitors are wider than tall, this means that you want pivotable monitors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might find &lt;a href=&quot;http://superuser.com/questions/200951/what-monitors-have-larger-than-hd-resolution-size-is-less-important&quot;&gt;http://superuser.com/questions/200951/what-monitors-have-larger-than-hd-resolution-size-is-less-important&lt;/a&gt; interesting. &lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2011-01-08T09:12:25.840" CommentCount="10" />
  <row Id="34876" PostTypeId="2" ParentId="34874" CreationDate="2011-01-08T09:12:55.433" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;is the difference between a 16:10 and a 16:9 monitor noticeable when programming&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Some say YES, but I never really experienced an issue.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Do you really miss those few extra lines&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I don't notice those &lt;em&gt;missing&lt;/em&gt; lines at all.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An objective advantage of 16:9 over 16:10 is that you get movies filling the entire screen, without black margins on top and bottom. If you watch lots of movies, eventually those margin regions should begin to look differently from the rest of the screen which was actively used. In years though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;An objective advantage of 16:10 over 16:9 is that you get more vertical space. Advantageous for working with applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S. Working on a 16.4&quot; laptop with 1920x1080 (16:9) and very happy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;P.S #2. Just like &lt;a href=&quot;http://programmers.stackexchange.com/questions/34874/monitor-aspect-ratio-does-the-difference-matter/34875#34875&quot;&gt;Thorbjørn Ravn Andersen said&lt;/a&gt;, the size of the pixel (dot pitch) is very important. Not too small for you to be able to sit back and comfortably see everything. Not too large because you'll see a matrix of pixels instead of a smooth image. This is however extremely personal and cannot be advised upon. Go to some store and spend a few hours there looking at different sizes and emulating work conditions. Make a few screenshots of your favorite development tools and see how they look like on various displays. Then you'll understand what is right for you.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2011-01-08T09:28:06.403" LastActivityDate="2011-01-08T09:28:06.403" CommentCount="2" />
  <row Id="34877" PostTypeId="1" AcceptedAnswerId="34886" CreationDate="2011-01-07T08:37:26.313" Score="34" ViewCount="2129" Body="&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am working with Social Networking iPhone app which requires remote data connection. So I hired a PHP developer in order to provide me RESTful services.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But when I start working with him, he arguing me that he will not make stored procedures and web services. Instead of he suggested me to pass query as a parameter. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Suppose If I have to call Search service, he told me to send POST request with 3 parameters: Query=&quot;select * from users&quot;, username=abd and password = 123&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And I think there is no such architecture in order to use remote data. Then he is saying it is possible through socket programming. And I am 100% sure this is not an appropriate way to access remote data. This is simply illogical. Thousands of iPhone applications are using REST/SOAP services to make remote data connection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He just declined me to provide RESTful services.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please it's my heartily advice to all developers that post your own views over here. &#xA;So that I can show to that developer that these are the views from all developers worldwide.&lt;/p&gt;&#xA;" OwnerUserId="12683" LastEditorUserId="15357" LastEditorDisplayName="" LastEditDate="2011-02-02T15:26:11.133" LastActivityDate="2011-02-02T15:26:11.133" Title="Hired developer insists on doing things the wrong way" Tags="&lt;php&gt;&lt;management&gt;&lt;sql&gt;&lt;rest&gt;" AnswerCount="12" CommentCount="9" FavoriteCount="10" />
  <row Id="34878" PostTypeId="2" ParentId="34877" CreationDate="2011-01-07T08:48:22.053" Score="16" ViewCount="" Body="&lt;p&gt;I think that php developer has no idea about programming. All over internet its clearly mentioned that you should provide REST/SOAP based services to make remote connection.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And in the following link as well it is clearly mentioned by other developer that REST are a great way to communicate with a web application.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/3943597/how-should-i-architect-my-iphone-app-to-talk-to-my-website&quot;&gt;How should I architect my iPhone app to talk to my website?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That php developer is so much illogical about programming that he is suggesting to a iphone developer to pass query as a parameter. For any social website app integration REST services must required. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, one advice to that php developer, you must learn php programming first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank You&lt;/p&gt;&#xA;" OwnerUserId="12684" LastActivityDate="2011-01-08T09:40:50.740" CommentCount="3" />
  <row Id="34879" PostTypeId="2" ParentId="34877" CreationDate="2011-01-07T09:26:32.657" Score="11" ViewCount="" Body="&lt;p&gt;For the social networking iphone app or any other web integrating app. PHP developer &lt;strong&gt;needs to create RESTful services and stored procedures&lt;/strong&gt;. These things are mandatory and then only iPhone application make a request to PHP web service and handle the results. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If he is declining to make stored procedures and RESTful services and wants you to pass query parameters, then that &lt;strong&gt;php developer going in a wrong direction&lt;/strong&gt;. &lt;strong&gt;He has to re work on his skills.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This one is the &lt;a href=&quot;http://stackoverflow.com/questions/3943597/how-should-i-architect-my-iphone-app-to-talk-to-my-website&quot;&gt;good link&lt;/a&gt;. &lt;/p&gt;&#xA;" LastActivityDate="2011-01-08T09:40:50.740" CommentCount="1" />
  <row Id="34880" PostTypeId="2" ParentId="34877" CreationDate="2011-01-07T09:39:08.787" Score="5" ViewCount="" Body="&lt;p&gt;It is not a good practice to make the user himself handle the database. There is a reason why its called 'Back End'. To communicate with the APIs, there should be REST services. It is also simpler and being used by most of the applications around the world. Passing query as a parameter to the server is a wrong approach IMO. But if its possible somehow, i would really like to know how. What i think is that PHP developer, has simplified work at his end by not making procedures at the server end!&lt;/p&gt;&#xA;" LastActivityDate="2011-01-08T09:40:50.740" CommentCount="1" />
  <row Id="34886" PostTypeId="2" ParentId="34877" CreationDate="2011-01-07T20:25:34.130" Score="123" ViewCount="" Body="&lt;p&gt;&lt;b&gt;Direct connection to the database is a security disaster waiting to happen.&lt;/b&gt; All connections from the outside world should be via the strictest possible interfaces (narrowest possible, simple functions). All string data must be cleaned, to stop SQL Injection - the commonest form of web hack (basically inserting single quote into any text field to corrupt the SQL query, and force it to yield site secrets). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Fire the guy immediately - he is utterly clueless about data security, and will cause your site to fail, or become an expensive laughing stock. His poor data security practices might even make you legally liable for losses incurred by users exposed by his ignorance.&lt;/b&gt;&lt;/p&gt;&#xA;" LastActivityDate="2011-01-08T09:40:50.740" CommentCount="10" />
  <row Id="34888" PostTypeId="2" ParentId="25594" CreationDate="2011-01-08T09:41:50.917" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;KISS - Keep It Simple (and) Stupid!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is a general rule, that applies not only to software development but to many other fields as well. &lt;/p&gt;&#xA;" OwnerUserId="11785" LastActivityDate="2011-01-08T09:41:50.917" />
  <row Id="34889" PostTypeId="2" ParentId="25594" CreationDate="2011-01-08T09:59:26.303" Score="2" ViewCount="" Body="&lt;p&gt;Before starting coding a feature/function/component, I setup a test environment so that I can run and observe what I code. This is essentially TDD.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;May I mention version control as well: it should be as implicit as breathing for a developer.&lt;/p&gt;&#xA;" OwnerUserId="1033" LastActivityDate="2011-01-08T09:59:26.303" CommentCount="1" />
  <row Id="34890" PostTypeId="1" AcceptedAnswerId="34892" CreationDate="2011-01-08T10:03:54.903" Score="1" ViewCount="265" Body="&lt;p&gt;This question I am asking because I couldn't find any source which gives complete overview of java development. I just want to know where java technology currently in market &amp;amp; what is preferable for development !&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Java always remain top programming language for development point of view. However, java is combo of, j2ee, j2me, jsp, jsf, spring, other frameworks, ui components, jndi, networking tools and various other &quot;J&quot; are there !&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, learning java is definitely dependent on the development requirement, but still, to be a well-experienced java developer, what is the organised way of learning java? What is preferable in current technology ? and what is deprecated, currently ?&lt;/p&gt;&#xA;" OwnerUserId="11020" LastActivityDate="2011-05-18T19:48:58.610" Title="how to learn Java" Tags="&lt;java&gt;" AnswerCount="3" CommentCount="1" FavoriteCount="3" />
  <row Id="34891" PostTypeId="2" ParentId="34828" CreationDate="2011-01-08T10:07:54.967" Score="0" ViewCount="" Body="&lt;p&gt;Have you tried &lt;a href=&quot;http://www.elance.com/software-testing-programmers-freelancers/413&quot; rel=&quot;nofollow&quot;&gt;Elance&lt;/a&gt;. Joel used it to find the design of the SO logo, I've used it for corporate legal advice, where will it take you?&lt;/p&gt;&#xA;" OwnerUserId="1470" LastActivityDate="2011-01-08T10:07:54.967" />
  <row Id="34892" PostTypeId="2" ParentId="34890" CreationDate="2011-01-08T10:23:39.350" Score="2" ViewCount="" Body="&lt;p&gt;Before you chose your framework/library, I suggest you start by simply learning the language and starting to code simple apps: &lt;a href=&quot;http://oreilly.com/catalog/9781565927186&quot; rel=&quot;nofollow&quot;&gt;this book&lt;/a&gt; is very readable and full of real-life scenarios, and might be a good starting point.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, it seems that you are interested in building applications for the web so, once you get to the servlets, try giving yourself some simple tasks (porting to Java an existing php-based application of yours might be one) in order to find your ideal approach - Java can be a really flexible language, although many Java developers avoid exploring its full potential.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The framework you should choose really depends on how you prefer to organize your code independently from any framework. For instance, if you find yourself using Java as a pure OO language and you are comfortable with MVC approaches you might want to consider Spring (pushing it just because I like it).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyway, for now, don't worry about the jAlphabet jSoup: browsing for technologies you'll want to have a concrete idea of what they are for; to obtain it, you'll have to start practically using Java.&lt;/p&gt;&#xA;" OwnerUserId="11146" LastActivityDate="2011-01-08T10:23:39.350" />
  <row Id="34893" PostTypeId="1" CreationDate="2011-01-08T05:15:31.413" Score="1" ViewCount="172" Body="&lt;p&gt;Hello everyone,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have some career doubts and need your kind advise.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have just started my career in PHP. A company is offering a job to me as Magento developer, but the condition is that i have to stay with the company for at least one year. This company just works on Magento. I doubt, that after a year, I would be knowing just Magento and nothing else in php. Please guide me that should i join the company or not.&lt;/p&gt;&#xA;" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-01-08T12:48:10.477" LastActivityDate="2011-01-08T12:48:10.477" ClosedDate="2011-01-08T13:57:22.957" Title="Will knowing just Magento ruin my career?" Tags="&lt;career&gt;" AnswerCount="3" CommentCount="3" />
  <row Id="34894" PostTypeId="2" ParentId="34893" CreationDate="2011-01-08T11:25:41.380" Score="0" ViewCount="" Body="&lt;p&gt;Magento is a PHP e-commerce framework.  Other than the fact that it is intended for one (broad) category of websites, I don't see why you should be worried.  The one year commitment is reasonable.  There is no reason that you cannot learn other PHP frameworks and techniques in your spare time.  (Not to mention that you will be using PHP.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My biggest concerns would revolve around the company and working on e-commerce websites.  That said, having e-commerce experience shouldn't hurt.&lt;/p&gt;&#xA;" OwnerUserId="149" LastActivityDate="2011-01-08T11:25:41.380" />
  <row Id="34895" PostTypeId="2" ParentId="34893" CreationDate="2011-01-08T11:30:56.790" Score="0" ViewCount="" Body="&lt;p&gt;Most new developers get far too hung up on a particular language. It's not that important.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More important are your analytical and problem solving skills, learning good practice like writing maintainable code and developing yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All this skills are cross-language, and once you know a language or two, others are not hard to pick up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a clever guy once told me - &quot;We can teach technical skills, we can't teach attitude&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In short, take the job but learn more than PHP/Magento from it.&lt;/p&gt;&#xA;" OwnerUserId="1949" LastActivityDate="2011-01-08T11:30:56.790" />
  <row Id="34896" PostTypeId="2" ParentId="34893" CreationDate="2011-01-08T11:32:20.347" Score="1" ViewCount="" Body="&lt;h2&gt;Not if you keep learning&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Any half decent programmer will do a few hours a week of learning new tools and revision of tools they already know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm working in PHP but learning Django and Rails when I get time. Sometimes I do some programming in C and Java, just trivial exercises like Pi calculators or algorithms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's easy to stagnate if you don't do anything beyond your job. Hit the books, have some fun and learn new things.&lt;/p&gt;&#xA;" OwnerUserId="5678" LastActivityDate="2011-01-08T11:32:20.347" CommentCount="1" />
  <row Id="34897" PostTypeId="2" ParentId="34877" CreationDate="2011-01-08T11:32:39.473" Score="3" ViewCount="" Body="&lt;p&gt;I think all last 6 posts has been mentioned by same php developer guy. And he is trying to prove himself right person by making fake profile. All these profile has been created just last day. And also I can see all such posts has been voted down by other developers. One question for that php developer.. whats your qualification ? Have you ever done programming before.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;@Matthew Frederick: I am agree with you this is seriously horrible programming concepts. Please voted down all such posts. And i think moderator require some attention for such fake posts and bad programming concepts&lt;/p&gt;&#xA;" OwnerUserId="12684" LastActivityDate="2011-01-08T11:32:39.473" CommentCount="5" />
  <row Id="34898" PostTypeId="2" ParentId="34843" CreationDate="2011-01-08T11:35:31.380" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;The most obvious reason why you engineers can't give you accurate estimates is that it's &lt;strong&gt;impossible&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Of course you can estimate how much time +-2 minutes it will take from your home to work. You know how to drive a car, you can evaluate the traffic, and some other external factors.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tell me how much time it will take you to drive from London to Barcelona. Without any advanced GPS planning tools of course. Using the good old method like we still do in software estimation. &lt;strong&gt;Empirical estimation and predictions&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In software, it's worse:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Estimates often become a &lt;strong&gt;commitment&lt;/strong&gt;, so our judgment is modified.&lt;/li&gt;&#xA;&lt;li&gt;There can be &lt;strong&gt;huge differences&lt;/strong&gt; between the estimation of Bob and Karl for the same task.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Uncertainties&lt;/strong&gt; are very common, how much of us get stuck on a stupid bug or hard drive crash destroying any apparent good estimation.&lt;/li&gt;&#xA;&lt;li&gt;We usually forget about &lt;strong&gt;all other tasks&lt;/strong&gt; than programming including meetings, phone calls, helping our coleague, etc.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Human brain is limited&lt;/strong&gt;. It has not been designed to estimate long running tasks.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;That's why it's impossible to tell your customer what you will be able to ship for the 02/01/2011 with good accuracy, and forget about the 03/01/2011.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To address all those problems, I recommend you advanced estimation techniques such as &lt;a href=&quot;http://www.agilehardware.com/pages/Planning-Poker.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Planning Poker&lt;/strong&gt;&lt;/a&gt; (disclaimer: this is one of my website) and &lt;strong&gt;Iterative Development&lt;/strong&gt; with &lt;a href=&quot;http://www.scrumalliance.org/articles/39-glossary-of-scrum-terms#1110&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Velocity&lt;/strong&gt;&lt;/a&gt; calculation.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The first two issues are addressed using Planning Poker. Estimations are collective and the team owns them rather than individuals.&lt;/li&gt;&#xA;&lt;li&gt;The last third issues are addressed using Velocity and Iterative Development. By knowing your velocity (the factor to apply to your estimations based on history), you can plan releases with more confidence. Iterative development, when well done, bring most important features to the top and helps you deliver value to your users early. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-08T11:35:31.380" CommentCount="3" />
  <row Id="34899" PostTypeId="2" ParentId="34868" CreationDate="2011-01-08T11:41:57.097" Score="1" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;and perfect&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;You might struggle with that...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm guessing what you really want to ask is: &lt;strong&gt;I'm only programmed alone, what should I know/think about now that I'm about to work with a team in regards to my coding?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Before you read any more of I have written, the &lt;strong&gt;most important 'best-practice'&lt;/strong&gt; is to be &lt;strong&gt;critical&lt;/strong&gt; of what you read, &lt;strong&gt;understand&lt;/strong&gt; why and then form your own opinion based on &lt;strong&gt;facts&lt;/strong&gt;, the &lt;strong&gt;experience&lt;/strong&gt; of yourself and others and a health dose of common sense.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After all, we are not perfect and are continually learning; that's why why we have all these Q&amp;amp;A sites instead of just static references that are easily searched!&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;If you haven't worked with others and are now working with a team, look at their code and see how they format it. &lt;strong&gt;Follow that standard&lt;/strong&gt;. The only thing worse then a bad coding standard, is 2 or more bad coding standards in one code base.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Hard-coding in general hurts maintainability of a code base. Sure, it might be easy right then and there, but 2 weeks later when you have to change some, it will save you multiples of that time you saved to go back and change it in each place you coded. Not to mention all the additional testing time, debugging time when you forget one, etc.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Don't be lazy and just crappy variable names such as 'x', 'y', etc. Pick a &lt;a href=&quot;http://en.wikipedia.org/wiki/Self-documenting&quot; rel=&quot;nofollow&quot;&gt;self documenting name&lt;/a&gt;. While it may be okay in small once-off projects you whip up for yourself, do dare do it any more! Time is precious; having to read code 4 times to work out what it does or missing a obvious bug because you have &lt;code&gt;i = x + y;&lt;/code&gt; instead of &lt;code&gt;pay = wage + systemTime;&lt;/code&gt; is money wasted&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Last but not least, when you go from working alone to working with a team, &lt;strong&gt;be open to constructive criticism!&lt;/strong&gt; You can learn so much if you only open your mind. Even from comments you don't agree with or are flat out wrong!&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="2673" LastActivityDate="2011-01-08T11:41:57.097" />
  <row Id="34900" PostTypeId="2" ParentId="34805" CreationDate="2011-01-08T11:44:51.717" Score="0" ViewCount="" Body="&lt;p&gt;You must desensitize yourself to ASP.NET quickly! Especially if you have no choice but work with it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To desensitize yourself to a thing you must expose yourself to it progressively.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe your solution is to learn ASP.NET &lt;strong&gt;step by step&lt;/strong&gt; and avoiding any advanced stuff at the beginning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's like a just born baby wanted to run a marathon with Haile Gebrselassie or a 100m sprint with Usain Bolt. Learn how to ramp first ;)&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-08T11:44:51.717" CommentCount="1" />
  <row Id="34903" PostTypeId="2" ParentId="34877" CreationDate="2011-01-08T12:16:14.857" Score="42" ViewCount="" Body="&lt;p&gt;If &lt;em&gt;you&lt;/em&gt; hired this guy, &lt;em&gt;you&lt;/em&gt; can fire him too.  Sounds like the only reasonable option at this point.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2011-01-08T12:16:14.857" CommentCount="4" />
  <row Id="34904" PostTypeId="2" ParentId="34877" CreationDate="2011-01-08T12:25:32.570" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;I'd let him go&lt;/strong&gt; personally: if he can't understand how this is a horrible idea, then you don't need to waste money on the guy, he just doesn't fit the job and there are tons of other PHP developers who would be happy to build you a proper REST service.&lt;/p&gt;&#xA;" OwnerUserId="9094" LastActivityDate="2011-01-08T12:25:32.570" />
  <row Id="34905" PostTypeId="2" ParentId="34868" CreationDate="2011-01-08T12:26:25.643" Score="1" ViewCount="" Body="&lt;p&gt;Ask the project manager for a copy of the coding standards to be used for this project.  If none exist, ask if it could be established.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Agreeing on how things are generally done, improves code.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2011-01-08T12:26:25.643" />
  <row Id="34906" PostTypeId="1" AcceptedAnswerId="34910" CreationDate="2011-01-08T12:31:47.840" Score="10" ViewCount="173" Body="&lt;p&gt;This question arises out of the question &lt;a href=&quot;http://programmers.stackexchange.com/questions/25569/is-haskell-worth-learning&quot;&gt;Is Haskell worth learning?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally a few often repeated statements are made, about how Haskell improves your coding skills in other languages, and furthermore, this is because Haskell is stateless, and that's a good thing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've seen someone compare this to only typing with the left hand, or perhaps closing your eyes for a day and just relying on touch. Surely there is more to it than that? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does it relate to hardware memory access, or something else which is a big performance gain? &lt;/p&gt;&#xA;" OwnerUserId="3787" LastEditorUserId="3787" LastEditorDisplayName="" LastEditDate="2011-01-08T12:43:52.543" LastActivityDate="2011-01-08T12:53:24.270" Title="Why is it good not to rely on changing state?" Tags="&lt;programming-languages&gt;&lt;functional-programming&gt;&lt;haskell&gt;" AnswerCount="1" CommentCount="3" FavoriteCount="1" />
  <row Id="34907" PostTypeId="2" ParentId="34828" CreationDate="2011-01-08T12:31:50.850" Score="1" ViewCount="" Body="&lt;p&gt;For starters, you could use &lt;strong&gt;the other developers of the company&lt;/strong&gt; (but only those who didn't actually work on the product): they most likely know enough to operate the software, yet haven't been part of its production, so they still have fresh eyes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We can't afford to have &quot;real&quot; testers and, before my arrival, the only &quot;testing&quot; was done by the same developer(s) who built the software and by customers (needless to say that was a recipe for disaster waiting to happen); adding that extra layer certainly improved quality until we can grow bigger and afford proper testers.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Also, that will help you identify what is the minimum knowledge required to operate the software you want to test, which will help you write a more accurate job posting ad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another advantage is that the developers are less likely to disregard comments from the testers when they're colleagues (because they're &quot;real&quot; people they see every day) than random strangers.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;The downside however is that there is less environnmental influence on the testers because they all come from a similar culture and environment, so they are less random than regular testers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, colors may be assumed to mean different things depending on the country/continent, or the major softwares (which imposes &lt;em&gt;de facto&lt;/em&gt; standards / user expectations) may differ depending on the work environment.&lt;/p&gt;&#xA;" OwnerUserId="9094" LastEditorUserId="9094" LastEditorDisplayName="" LastEditDate="2011-01-08T13:07:36.433" LastActivityDate="2011-01-08T13:07:36.433" />
  <row Id="34908" PostTypeId="2" ParentId="34868" CreationDate="2011-01-08T12:38:50.340" Score="0" ViewCount="" Body="&lt;p&gt;All the best practices that you can find here and at Stack Overflow, also the ones of the books. This is what you should follow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Very simple and explanatory answer :)&lt;/p&gt;&#xA;" OwnerUserId="12690" LastActivityDate="2011-01-08T12:38:50.340" />
  <row Id="34909" PostTypeId="2" ParentId="34828" CreationDate="2011-01-08T12:49:35.590" Score="1" ViewCount="" Body="&lt;p&gt;You may want to take contact to Specialisterne.  They have very good testers, but may not be in your area.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.specialistpeople.com/&quot; rel=&quot;nofollow&quot;&gt;http://www.specialistpeople.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2011-01-08T12:49:35.590" />
  <row Id="34910" PostTypeId="2" ParentId="34906" CreationDate="2011-01-08T12:53:24.270" Score="12" ViewCount="" Body="&lt;p&gt;there are at least three big advantages off the top of my head:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;it makes programs more close to mathematical expressions.  In math, &lt;code&gt;x&lt;/code&gt; doesn't change, you just don't know what it is until you solve the equation.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;In the end, there &lt;em&gt;is&lt;/em&gt; state change (after all, that's how the computer works at low level); but it's confined by the language to specific places.  that allows the compiler huge opportunities to move code around to optimize it, since it knows that it doesn't change anything that other code depends on.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Concurrent code doesn't need to synchronize to access non-changing data, so concurrency is enhanced, both in SMP shared memory systems (all multicore systems of today), and on loosely tied clusters.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2011-01-08T12:53:24.270" CommentCount="4" />
  <row Id="34911" PostTypeId="1" CreationDate="2011-01-08T13:06:40.913" Score="2" ViewCount="133" Body="&lt;p&gt;Good Morning, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I previously asked the Q. of how Event Handlers Work (which I got a great answer for). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would now like to understand the basics of &lt;strong&gt;&lt;em&gt;how are events are associated with on-screen objects?&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;An explanation of how Events are associated with on Screen Objects&lt;/strong&gt;: &#xA;&lt;em&gt;The application registers the Event, the Event Handler and the Component with the GUI Server. When an Event is detected the GUI Server has to link an Event to a Window and then to a Component, it then consults the Event / Component Table to identify which Handler (s) to be executed.&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am having problems finding resources/papers that have mention of this process - especially of a Event / Component Table - can anyone clarify?&lt;/p&gt;&#xA;" OwnerUserId="12464" LastActivityDate="2011-01-08T13:06:40.913" ClosedDate="2011-01-09T00:16:11.293" Title="Event Driven Programming 101" Tags="&lt;learning&gt;&lt;programming-practices&gt;" CommentCount="3" />
  <row Id="34912" PostTypeId="2" ParentId="5372" CreationDate="2011-01-08T13:12:48.130" Score="2" ViewCount="" Body="&lt;p&gt;Ask your boss for one of &lt;a href=&quot;http://details-worktools.com/products/walkstation/&quot; rel=&quot;nofollow&quot;&gt;these&lt;/a&gt; ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/XZwag.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="1548" LastActivityDate="2011-01-08T13:12:48.130" CommunityOwnedDate="2011-01-08T13:12:48.130" CommentCount="2" />
  <row Id="34913" PostTypeId="2" ParentId="34805" CreationDate="2011-01-08T13:22:00.607" Score="0" ViewCount="" Body="&lt;p&gt;A side project that you do for fun is a good start.&#xA;But if you're starting to burn out, &lt;strong&gt;you need to change things&lt;/strong&gt;: make a long holiday break, get a raise, change job, change project or change job even.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you can identify your source of frustration, you can look for ways to change that, but if you don't know the reason why first, you won't be able to fix it. Once you do, &lt;strong&gt;you can talk about it with your manager&lt;/strong&gt;, he may also have alternative solutions you haven't thought about.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Alternatively for bonus points, you could act like Octave in &lt;a href=&quot;http://www.youtube.com/watch?v=sF4EL5G7qhQ&quot; rel=&quot;nofollow&quot;&gt;99 Francs&lt;/a&gt; :D&lt;/p&gt;&#xA;" OwnerUserId="9094" LastActivityDate="2011-01-08T13:22:00.607" CommentCount="1" />
  <row Id="34914" PostTypeId="2" ParentId="34874" CreationDate="2011-01-08T13:40:42.970" Score="2" ViewCount="" Body="&lt;p&gt;Well I'd say &lt;strong&gt;it does if you plan on using it/them in portrait mode&lt;/strong&gt;.&#xA;At a 1920xY resolution, a 16:10's width has 120 pixels more than a 16:9, that's valuable screen real-estate IMO.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I wouldn't bother if I weren't interested in portrait mode though, since 16:10's are much harder to come by, and are usually more expensive too.&lt;/p&gt;&#xA;" OwnerUserId="2115" LastActivityDate="2011-01-08T13:40:42.970" CommentCount="2" />
  <row Id="34915" PostTypeId="2" ParentId="25594" CreationDate="2011-01-08T13:53:12.010" Score="1" ViewCount="" Body="&lt;p&gt;My mantra is&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Write the least amount of clearly understandable code without redundancies nor dependencies that you can get away with&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You want code that is easy to read and understand, that's nr 1.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You also want to avoid duplication of code since it makes the code harder to maintain and just makes things more complicated. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You want want as few dependencies as possible, that often goes in hand with the program being easier to understand since each part can be understood on it own but it also makes the code more flexible  and reusable&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another useful thing I keep asking myself &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;If I were to rewrite this solution from scratch,  what would I change?&lt;/strong&gt;  Then I change it, refactor continously and mercilessly&lt;/p&gt;&#xA;" OwnerUserId="12354" LastActivityDate="2011-01-08T13:53:12.010" CommentCount="1" />
  <row Id="34916" PostTypeId="2" ParentId="34012" CreationDate="2011-01-08T13:54:10.153" Score="2" ViewCount="" Body="&lt;p&gt;There are two general areas you should address with a manager:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What are the manager's goals?&lt;/li&gt;&#xA;&lt;li&gt;What does the manager expect from you and which tasks are the most important?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;1) If you're going to have a boss, she might as well be at the top of the company or at least your department. Once you know what her goals are, you have a better idea of what is expected. If your goals are not in alignment (that does not mean they are the same), you need to learn how to work around it or find another job. And get those crazy notions out of your head about your boss taking credit for your work. They're suppose to take credit for your work. That doesn't mean they don't reward you as well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2) This is not easy. People don't always know what they want and those that do rarely communicate it well. Your meeting is important to keep getting feedback on how you are doing. Remember when you were deep into that piece of the project you thought most important and your manager came by and wanted to know if you finished that minor bug? Get some more insight. Find out why that was more important (Maybe it wasn't and it just happened to be on their mind as they passed you on the way to the coffee pot.) and how you can factor that kind of information in managing yourself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Hopefully your interactions will give you a better perspective of their world. Trust me, if their job is easier, your job will get easier. One day we were short on staff and I saw my boss setting up a computer for a new hire (Not in the IT Dept). I'm thankful he didn't ask me to do it, but it bothers me that we are not adequately staffed. I needed more time to discuss an up and coming project. I'm working with less certainty because he's plugging in monitors.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-08T13:54:10.153" />
  <row Id="34917" PostTypeId="1" CreationDate="2008-12-11T14:29:43.443" Score="16" ViewCount="1043" Body="&lt;p&gt;&lt;strong&gt;Have you ever been fired before, or one of your colleagues?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What were the main reasons for him being fired?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The objective of this question is to get a list/description of other peoples experiences too see if we can come up with a theme of why people are let go.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For those that work for consulting companies, I would guess one of the main reasons would be a developer is just too slow pumping out code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my guesses would be: &lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; 1) attitude &#xA; 2) too slow&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;b&gt;Please specify if you are saying something from experience or just guessing&lt;/b&gt;.&lt;/p&gt;&#xA;" OwnerUserId="23452" LastActivityDate="2011-01-08T21:14:08.013" ClosedDate="2011-01-08T14:10:15.080" Title="Top reasons why programmers are fired." Tags="&lt;work&gt;&lt;industry&gt;&lt;firing&gt;" AnswerCount="22" CommentCount="4" />
  <row Id="34918" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T14:32:09.193" Score="3" ViewCount="" Body="&lt;p&gt;I'd say 2 is just asking for trouble - It's &lt;em&gt;very&lt;/em&gt; difficult to prove that a programmer isn't performing because he's lazy or isn't good enough, and not because of changing spec, vague assignments, external factors, unreasonable expectations etc. Unless you have a number of programmers doing &lt;em&gt;provably&lt;/em&gt; similar tasks, I doubt this is often the official reason.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-08T14:04:56.810" CommentCount="4" />
  <row Id="34919" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T14:32:44.263" Score="3" ViewCount="" Body="&lt;p&gt;Just a guess: Posting too much subjective questions on StackOverflow?&lt;/p&gt;&#xA;" OwnerUserId="18554" LastActivityDate="2011-01-08T14:04:56.810" CommentCount="1" />
  <row Id="34920" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T14:32:52.657" Score="8" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Consistently missing deadlines&lt;/strong&gt; has to be a biggie.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd say &lt;strong&gt;being a bad fit&lt;/strong&gt; (i.e. bad attitude) must also feature high.&lt;/p&gt;&#xA;" OwnerUserId="5266" LastActivityDate="2011-01-08T14:04:56.810" CommentCount="4" />
  <row Id="34921" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T14:35:51.417" Score="8" ViewCount="" Body="&lt;p&gt;Based on what I've seen in the past:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;They crashed the production system (again)&lt;/li&gt;&#xA;&lt;li&gt;They lied on their CV&lt;/li&gt;&#xA;&lt;li&gt;To be made an example of to others&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4850" LastActivityDate="2011-01-08T14:04:56.810" />
  <row Id="34922" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T14:37:49.463" Score="3" ViewCount="" Body="&lt;p&gt;It also depends on the country you're in - I'm assuming you're talking about the US here. In some countries, it's very difficult to fire an employee solely on the base that he's not working fast enough for the manager. So if a programmer gets fired in those countries, it's probably because (s)he did something really serious, like an NDA breach or a made a really costly mistake (in terms of money, client trust, reputation, etc).&lt;/p&gt;&#xA;" LastActivityDate="2011-01-08T14:04:56.810" />
  <row Id="34923" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T14:39:27.290" Score="3" ViewCount="" Body="&lt;p&gt;I've been &quot;let go&quot; once, which was ostensibly for economical reasons - a research money stream had dried up.  However, from the inside it looked more like they were getting rid of some people to be replaced with cheaper, younger people, that weren't as likely to question some of the decisions that were being made.&lt;BR&gt;&lt;P&gt;&#xA;Regarding other developers being fired: I haven't actually seen that happen yet in my 10 years experience, though I've seen two people being &quot;strongly encouraged to look for other opportunities&quot;.  Both times this was because of an attitude problem where the developer was overtly critical of the way things were done to the point of destroying morale, yet would be repeatedly caught breaking their own &quot;rules&quot;.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-08T14:04:56.810" />
  <row Id="34924" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T14:40:42.203" Score="6" ViewCount="" Body="&lt;p&gt;I have had to recommend people be fired/let go for the following reasons ...&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Poor attitude&lt;/li&gt;&#xA;&lt;li&gt;Distributing propoganda at work (NRA material) ... I agree with the NRA ... just not at work&lt;/li&gt;&#xA;&lt;li&gt;Contractor was working on work for ANOTHER company while on my payroll instead of on my work&lt;/li&gt;&#xA;&lt;li&gt;Poor coding/lack of knowledge (had someone who used alot of 1-2 letter variable names, made the code extremely confusing, warned him repeatedly but the style never changed)&lt;/li&gt;&#xA;&lt;li&gt;Taking too much time on a project. I.E. Spent a dollar and saved a dime ... not good business sense.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Those were the biggest reasons. Never had anyone start an altercation or threats of voilence etc.&lt;/p&gt;&#xA;" OwnerUserId="1274" LastActivityDate="2011-01-08T14:04:56.810" CommentCount="5" />
  <row Id="34925" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T14:41:28.753" Score="30" ViewCount="" Body="&lt;p&gt;Most people I know who have been fired have been fired for having some sort of conflict with the boss. Like making a demand and the boss calls their bluff, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bad programmers just seem to get given bitch work / no raises until they quit.&lt;/p&gt;&#xA;" OwnerUserId="6122" LastActivityDate="2011-01-08T14:04:56.810" CommentCount="4" />
  <row Id="34926" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T14:42:21.263" Score="9" ViewCount="" Body="&lt;p&gt;I have not been personally released from a position, but I have seen my coworkers go.  Now that I am in a position to be the one with the ability to fire, as well, I understand some of the reasoning behind what I have seen before a little more clearly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In no particular order, here are some reasons that a person should be subject to termination (depending on your company, possibly after being placed on probation - not saying that all of these are immediate grounds, but more of a partial litmus test):&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Inability to adapt to new technology.&lt;/li&gt;&#xA;&lt;li&gt;Inability to work with other team members (personality issues, etc.).&lt;/li&gt;&#xA;&lt;li&gt;Inability to delivery quality work.&lt;/li&gt;&#xA;&lt;li&gt;Inability to show up to work on time, or work a minimum number of hours&lt;/li&gt;&#xA;&lt;li&gt;Inability to follow direction.&lt;/li&gt;&#xA;&lt;li&gt;Inability to work within their role (i.e. Sr. Developers who don't mentor, etc.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Like I said, these are all parts of the puzzle, and are not likely to be means for an immediate dismissal.  Normally, these things need to accrue and eventually become a larger part of the whole.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-08T14:04:56.810" />
  <row Id="34927" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T14:44:41.477" Score="2" ViewCount="" Body="&lt;p&gt;The main reason I have seen people fired was because they were unable to adapt to new ideas, unable to meet deadlines because of their inability to adapt.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That and the fact they most of their &quot;production code&quot; was rewritten by someone else to pass QA&lt;/p&gt;&#xA;" LastActivityDate="2011-01-08T14:04:56.810" />
  <row Id="34928" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T14:49:52.807" Score="4" ViewCount="" Body="&lt;p&gt;The one time I witnessed someone get fired it was a contractor who lied about the hours he billed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It doesn't get any more clear-cut.&lt;/p&gt;&#xA;" OwnerUserId="11982" LastActivityDate="2011-01-08T14:04:56.810" />
  <row Id="34929" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T14:52:25.907" Score="6" ViewCount="" Body="&lt;p&gt;I've seen people sacked for inappropriate behaviour -- saying inappropriate things in front of the customer (badmouthing the company that provides your paycheque in front of the customers is not a good idea).&lt;/p&gt;&#xA;" LastActivityDate="2011-01-08T14:04:56.810" />
  <row Id="34930" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T14:53:37.060" Score="5" ViewCount="" Body="&lt;p&gt;Based on what I've seen at work:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Too many &lt;strong&gt;high visibility&lt;/strong&gt; mistakes (usually the first doesn't do it, but the second one does especially if it happens less than a year later)&lt;/li&gt;&#xA;&lt;li&gt;Inability to follow directions, especially if they are told specifically to do a task one way and they take a completely different approach that does not mesh with the rest of the application (and especially if they were specifically forbidden to do it that way).&lt;/li&gt;&#xA;&lt;li&gt;Attitude especially inappropriate anger&lt;/li&gt;&#xA;&lt;li&gt;Not following basic company policy - like showing up consistently late, not using source control, taking leave without getting prior approval, spending too much time not working at work especially when the work is behind schedule (I worked with one guy who literally spent six hours or more a day on personal phone calls)&lt;/li&gt;&#xA;&lt;li&gt;Complete inability to produce working code&amp;lt;&lt;/li&gt;&#xA;&lt;li&gt;Lying and getting caught at it&lt;/li&gt;&#xA;&lt;li&gt;Failure to pass a drug test or get a required security clearance&lt;/li&gt;&#xA;&lt;li&gt;CEO's girlfriend wanted the job&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Edited later:&#xA;I can't believe I forgot drunk at work. I have seen several people fired for this over the years.&lt;/p&gt;&#xA;" OwnerUserId="1093" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-01-08T21:14:08.013" LastActivityDate="2011-01-08T21:14:08.013" CommentCount="1" />
  <row Id="34931" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T14:55:33.763" Score="21" ViewCount="" Body="&lt;p&gt;I've sat in meetings where my CEO and CTO have both denied responsibility for hiring &quot;Chris&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Chris had many many complaints about his extreme anti-social tendencies, and the quality of his work from clients. His colleagues had complained about his technical ability and his attitude to others. He shouted, screamed, didn't turn up sometimes, hung-up on support calls. He (badly) rewrote production code in other peoples projects at whim. Goals were set and not met.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He received three written warnings I know about and any number of verbals. Evidence was documented, a folder was built up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Duly, Chris was not given a pay-rise - even inflationary - for three years, and was slowly given less and less new work by the PMs.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Eventually the company was sold off, and some were made redundant by the merge. Not Chris.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The new parent failed to understand the business and drove the good people away until the production division became unprofitable and they closed it in favour of offshoring to a third party. Only three of the staff were kept on, working from the sales office a couple of hundred miles away.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Chris was one of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He's still there now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can't even begin to imagine what it takes to get fired.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-08T14:04:56.810" CommentCount="4" />
  <row Id="34932" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T14:56:41.593" Score="1" ViewCount="" Body="&lt;p&gt;I contracted in a place where this one guy was let go for &quot;demotivating the team&quot;. He was constantly moaning about the product, the tools, the other developers. And he would sit and browse job sites all day at work. I'm surprised he lasted as long as he did.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, far and away the main reason I've seen people let go is of course layoffs. &lt;/p&gt;&#xA;" OwnerUserId="5631" LastActivityDate="2011-01-08T14:04:56.810" CommentCount="2" />
  <row Id="34933" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T15:10:11.253" Score="10" ViewCount="" Body="&lt;p&gt;Wasting too much time on StackOverflow... :oP&lt;/p&gt;&#xA;" OwnerUserId="187" LastActivityDate="2011-01-08T14:04:56.810" CommentCount="8" />
  <row Id="34934" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T15:20:55.867" Score="2" ViewCount="" Body="&lt;p&gt;There is a distinct difference between being fired and being made redundant; there are common factors though. The reasons that might get you fired will overlap with the reasons that might mean that you're the one being let go rather than being kept around. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So a huge possible reason is &lt;strong&gt;breaking the law&lt;/strong&gt;, or at the very least, ignoring or being ignorant of the regulations. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Not doing your job&lt;/strong&gt; is quite important, but the law in most developed countries sides generally with the employee here - if you're not doing your job there are hoops that your employer needs to jump through. Several times, though, paying someone off is the easiest way out of this.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having a bad attitude isn't really grounds for dismissal, your employers weren't forced to hire you in the first place and weren't force to retain you at the end of your probation period. If they then decide that &lt;strong&gt;your face doesn't fit&lt;/strong&gt;, see the previous point. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Employing people is actually quite expensive, the general rule of thumb in the UK at least is to double the salary (once you've considered tax, NI, pension contributions and the marginal cost of office space, etc.) but you've also then go to consider the cost of not having someone in that position. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ultimately getting fired (as opposed to laid off) is actually quite hard. &lt;/p&gt;&#xA;" OwnerUserId="3823" LastActivityDate="2011-01-08T14:04:56.810" />
  <row Id="34936" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T15:28:02.903" Score="2" ViewCount="" Body="&lt;p&gt;In my case, Visa issues were the reason, mainly being that the H1-B I had been on for the past 5 years couldn't be extended and there wasn't enough time to get the paper work done for a green card, a.k.a. lawful permanent residency.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In other cases where I've worked, there have been layoffs where the company just couldn't keep paying the bills or they weren't carried over when the company or its assets were acquired.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2011-01-08T14:04:56.810" CommentCount="1" />
  <row Id="34937" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T15:28:14.883" Score="11" ViewCount="" Body="&lt;p&gt;MMORPG addiction and all that comes with it such as playing on the job, showing up late, sleeping on the job etc...&lt;/p&gt;&#xA;" OwnerUserId="3470" LastActivityDate="2011-01-08T14:04:56.810" CommentCount="1" />
  <row Id="34939" PostTypeId="2" ParentId="34917" CreationDate="2008-12-11T15:37:47.813" Score="2" ViewCount="" Body="&lt;p&gt;The colleagues I've seen fired were each for gross incompetence.  Essentially, it was clear that they were not up to snuff for the job so their managers gave them very carefully spelled out tasks with very reasonable deadlines.  The work or lack thereof was reviewed and when found to be wanting, they were given the boot.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also saw the same thing done to someone who was not grossly incompetent.  His manager didn't understand his job and his constraints.  He completely every task in a timely manner and done well.  He kept trying to explain that his job description was more than full time.  Finally he left out of frustration and they had to hire three people to do what he did alone.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-08T14:04:56.810" />
  <row Id="34940" PostTypeId="2" ParentId="34917" CreationDate="2009-01-22T13:49:18.163" Score="2" ViewCount="" Body="&lt;p&gt;I've seen very few people fired in &gt; 25 years of working. Two that come to mind where&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Someone who refused to do support in our very small company&lt;/li&gt;&#xA;&lt;li&gt;Someone who ignored a direct order not to check code into a specific branch and actively worked around security restrictions.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;I've known plenty of people who should have been fired tho. &lt;/p&gt;&#xA;" OwnerUserId="1205" LastActivityDate="2011-01-08T14:04:56.810" />
  <row Id="34941" PostTypeId="2" ParentId="34917" CreationDate="2010-11-30T17:21:10.077" Score="0" ViewCount="" Body="&lt;p&gt;Really depends on the Eye of the Beholder (=your clients/yourbosses), dont always blame yourself, often the client or boss are the ones judging stupidly, or wisely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;The slow programmer&lt;/code&gt; (in the original post portrayed as a negative thing), sometimes is a result of enhanced, richer qualities later on in the project (not always but with the best programmers i've worked with through my clients, as an art director, I saw this being appreciated by one type of client loving durability, accessibility, flexibility. While other clients in need of quick flashy results didn't give much for futureproofness and would regard any slow (good or bad) programmer as &quot;replacable with a faster one&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Really depends on the Eye of the Beholder.  I guesse in the end that Chris (from second post) meets &lt;code&gt;the flashy guys&lt;/code&gt; that are lookalike himself, and the slow, wise programmer (from the first post) ends up finding a boss lookalike him, appreciating the power of durable code! Time will tell.&lt;/p&gt;&#xA;" OwnerUserId="9083" LastActivityDate="2011-01-08T14:04:56.810" />
  <row Id="34942" PostTypeId="1" CreationDate="2010-12-16T03:59:54.033" Score="1" ViewCount="218" Body="&lt;p&gt;Here in my city, computer science is still a relatively &quot;young&quot; degree started at most 20-30 years ago.  So most of the &quot;senior programmers&quot; here are at most 40 years old.  I have friends in London in their mid 40s are earning decent salaries by working for investment banks on various financial products.  Some of them don't want to get &quot;promoted&quot; as project managers because they still have the passion in coding and they are probably making more money by coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, when you get older, you might loss creativity and might not unable to pick up new languages or frameworsk as fast as those who are decades younger than us.  For those who are unwilling or unable to be migrated to be project managers.  What should be the mentally retirement age?  &lt;/p&gt;&#xA;" LastActivityDate="2011-01-08T14:05:40.550" ClosedDate="2011-01-08T14:09:26.373" Title="What is the mentally retirement age as a programmer?" Tags="&lt;career&gt;" AnswerCount="1" CommentCount="11" />
  <row Id="34943" PostTypeId="2" ParentId="34942" CreationDate="2010-12-16T04:07:02.447" Score="8" ViewCount="" Body="&lt;p&gt;You can have my keyboard when you pry it from my cold,dead hands. &lt;/p&gt;&#xA;" OwnerUserId="3772" LastActivityDate="2011-01-08T14:05:40.550" CommentCount="1" />
  <row Id="34944" PostTypeId="2" ParentId="33578" CreationDate="2011-01-08T14:37:44.840" Score="8" ViewCount="" Body="&lt;p&gt;Please make your language analyzable/auditable for computer security people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Security folks need to be able to find vulnerabilities in a program before it ships.  Ideally, we're called in early and can comment on the codebase as it develops, but often not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When a new version of the language or core libraries comes out, things that were previously safe may no longer be:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;libraries may become more powerful : e.g. URL library now supports &lt;code&gt;javascript:&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;there may be new ways to convert strings or bytes into code : e.g. &lt;code&gt;eval&lt;/code&gt; or deserialization libraries&lt;/li&gt;&#xA;&lt;li&gt;language reflection techniques may become more powerful : e.g. exposing local variables&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Any of these changes can increase the amount of abusable authority a program has, but since the amount of authority the program uses (when dealing with non-malicious clients) hasn't changed, security folk are hard pressed to figure that out without an intensive re-audit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, please think about us when designing and versioning the language.  Below are a few tips:&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Define a few primitives that a program can be decomposed into.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;HTML5 is particularly bad this way.&#xA;They have obviously put a lot of thought into security and have some very smart people, but instead of specifying new program elements like &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt; in terms of old ones, or creating a common abstraction that new &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt; and old &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; both can be specified in terms of, &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt; is yet another one-off program element with its own security consequences.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Make your language amenable to static analysis (even if not statically typed).&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Security folk often use static analysis to find patterns, and to try and rule out parts of a program so that they can focus on the really tricky bits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It should be obvious which identifiers are local variables and which are not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;E.g., don't make the same mistake as old versions of JavaScript which made it impossible to tell whether &lt;code&gt;x&lt;/code&gt; is a local variable reference in the below (according to a literal reading of an old version of the spec):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;if (Math.random() &amp;gt; 0.5) {&#xA;  Object.prototype.x = 0;&#xA;}&#xA;&#xA;function f() {&#xA;  var x = 1;&#xA;  (function () {&#xA;    alert(x);  // Might alert 0, might alert 1.&#xA;  })();&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;h2&gt;Allow for decomposable security&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;A lot of secure systems are designed around a secure kernel that preserves the security properties, so that security folk can focus their efforts on analyzing a small amount of code and freeing most programmers from having to deal with {annoying,pedantic,paranoid} security folk.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It should be possible to write such a kernel in your language.  If one of the security properties of your language, is that only a certain subset of URLs will ever be fetched, can the kernel writers do something to channel all URL fetching through their code?  Or can static build checks (like looking at imports) serve the same function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some languages like Newspeak use an object capabilities model.  That's awesome and a great way to get decomposable security.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you can't do that, making the module graph a statically analyzable artifact can get you quite a bit of benefit.  If I can prove that a module can't reach the file I/O module (except by calling code in a module in the TCB), then I can rule out whole classes of problems from that module.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Limit the authority of embedded scripting languages&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;A lot of useful systems are organized as a static core that kicks off a lot of code written in dynamic (even functional) languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And embedding scripting languages can make a system much more extensible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But a scripting language shouldn't have the full authority of the VM.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you choose to allow embedded scripting languages, make it easy for the invoker to limit what they can do.  An object-capabilities model (see comment on Newspeak above) is very appropriate here ; so when evaluating code in a scripting language, the caller should pass in the code to execute and &lt;em&gt;all&lt;/em&gt; the global variables for that code.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Treat &lt;code&gt;eval&lt;/code&gt; as a language embedding itself as a scripting language&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;If your language can invoke its own compiler to turn a string into code, then allow it to be sandboxed the same as you would any embedded scripting language.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Use a simple concurrency model&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;We security folks don't like to have to worry about race conditions when trying to figure out if a security property is maintained.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please consider alternatives to threading before settling on threads as an almost impossible-to-secure default option.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One simple one is event loop concurrency like that found in E, Verilog, and JavaScript.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Don't encourage quoting confusion&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Some languages are glue languages, and they end up dealing with strings in a lot of different languages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, JavaScript often composes strings of HTML, CSS, XML, JSON, and even JavaScript.  It is very hard for programmers to remember to properly encode plain text strings when combining them to make strings in other languages, so JS programs, unsurprisingly, have all kinds of quoting confusion problems : XSS being the worst.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want to include &lt;a href=&quot;http://google-caja.googlecode.com/svn/changes/mikesamuel/string-interpolation-29-Jan-2008/trunk/src/js/com/google/caja/interp/index.html&quot; rel=&quot;nofollow&quot;&gt;string composition features&lt;/a&gt; try to reduce the programmer's security burden.  DSLs, hygienic macros, and embedded templating languages can be a great way of doing this by moving the burden for properly escaping onto library or language developers and away from the end-developer.&lt;/p&gt;&#xA;" OwnerUserId="12691" LastEditorUserId="12691" LastEditorDisplayName="" LastEditDate="2011-01-08T19:37:21.760" LastActivityDate="2011-01-08T19:37:21.760" CommunityOwnedDate="2011-01-08T14:37:44.840" />
  <row Id="34945" PostTypeId="2" ParentId="34874" CreationDate="2011-01-08T14:39:09.063" Score="2" ViewCount="" Body="&lt;p&gt;My advice:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Ignore the aspect ratio. Look at the pixel dimensions.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are a few resolutions you are likely to stumble upon:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;1440x900 (16:9)&lt;/li&gt;&#xA;&lt;li&gt;1680x1050 (16:10)&lt;/li&gt;&#xA;&lt;li&gt;1920x1080 (16:9)&lt;/li&gt;&#xA;&lt;li&gt;1920x1200 (16:10)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Most 22&quot; screens have either 2 or 3. If you're lucky, you can find 4., but I've only seen it in 24&quot;s personally.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My recommendation: &lt;strong&gt;Go for 1920 width.&lt;/strong&gt; It translates to &quot;wide enough to let you have two browsers next to each other horizontally&quot;, which is good. It's a good starting point... Having the width of 1680 is still nice, but you'd often feel that's not enough.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then: the more vertical space you get, the better. The 120 pixels more is nice, but not &quot;obligatory&quot;... definitely not as crucual as the distinction &quot;two browsers at once&quot; vs. &quot;one browser at once&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that a 22&quot; variant 3 will be physically smaller than a 22&quot; variant 2  and you'll notice that on the shelf. But see my advice below. If you find it too small, get a bigger size, but stay with 1920 width.&lt;/p&gt;&#xA;" OwnerUserId="12693" LastActivityDate="2011-01-08T14:39:09.063" />
  <row Id="34946" PostTypeId="2" ParentId="34890" CreationDate="2011-01-08T14:57:25.000" Score="1" ViewCount="" Body="&lt;p&gt;Java is a big world and there are many people that develop on one side and have never seen other parts.  The parts of the technology are used all over the place. If you are learning it, just start with the basics first.  Then decide what area you might want to focus on (Web Apps, Gaming, Mobile Apps, Business Apps that access databases, etc.)   One you have a project or task you are working, then start learning details about the Java pieces that apply to your situation.&lt;/p&gt;&#xA;" OwnerUserId="12586" LastActivityDate="2011-01-08T14:57:25.000" />
  <row Id="34947" PostTypeId="2" ParentId="34874" CreationDate="2011-01-08T15:03:34.777" Score="1" ViewCount="" Body="&lt;p&gt;Rather than two browsers, I want to have two side by side xterms, and anything less than 80 columns wide is awkward. Until adequate horizontal real estate is available to have two side by sides of whatever it is you frequently use horizontal RE is more critical than vertical. For graphics I would insist that pixel height/width be the same. I usually open graphics windows as square, so height does matter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having a single window spilling across two moniters isn't a very good solution either.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2011-01-08T15:03:34.777" />
  <row Id="34948" PostTypeId="2" ParentId="31011" CreationDate="2011-01-08T15:30:00.760" Score="0" ViewCount="" Body="&lt;p&gt;You can use reference counting for any object that can never refer to itself, transitively.  This is similar to the kind of heuristic analysis you can do to determine that a function is non-reentrant, so can be called without recourse to a stack in a single-threaded environment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In a type-safe statically typed language, this can be determined statically.  If a set of concrete classes can be ordered so that each class's properties can only contain reference to later classes, then that set of types can be reference counted.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, given a Java point class,&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;final class Point {&#xA;  double x;&#xA;  double y;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;We know the class contains no references, so a VM could allocate &lt;code&gt;Point&lt;/code&gt; instances in a reference counted block of memory as an optimization.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And given a simple class like,&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;final class Person {&#xA;  String name;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;since we know that &lt;code&gt;String&lt;/code&gt; cannot refer to a &lt;code&gt;Person&lt;/code&gt;, we could do a similar reference-counting optimization for instances of &lt;code&gt;Person&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But the following class cannot be reference counted:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;final class Pair {&#xA;  Object a;&#xA;  Object b;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;because &lt;code&gt;a&lt;/code&gt; could a pair, or could be an object that refers to a &lt;code&gt;Pair&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The following class cannot be reference counted either:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;final class Tuple {&#xA;  List&amp;lt;Object&amp;gt; items;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;since items could contain references to &lt;code&gt;Tuple&lt;/code&gt;s or to objects that can contain references to &lt;code&gt;Tuple&lt;/code&gt;s. &lt;/p&gt;&#xA;" OwnerUserId="12691" LastActivityDate="2011-01-08T15:30:00.760" />
  <row Id="34949" PostTypeId="2" ParentId="34843" CreationDate="2011-01-08T15:44:48.640" Score="4" ViewCount="" Body="&lt;p&gt;A very similar question is &quot;How long will it take to solve this crossword puzzle?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You cannot answer that until you have had a look at it to see numerous things like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Is it in a familiar language?  (Spanish versus English versus Chinese)&lt;/li&gt;&#xA;&lt;li&gt;Is it one of a type we have solved before?  (One in a series running in a magazine e.g.)&lt;/li&gt;&#xA;&lt;li&gt;Does any of the leads require additional knowledge before we can even understand it?&lt;/li&gt;&#xA;&lt;li&gt;Is there anywhere in the puzzle things that to your knowledge will require additional work?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Since there is usually several new things in a project (otherwise it would not be a project) you cannot tell how long time they will take to solve until you have had a very careful look at them.  Perhaps even solve more or less or them, and then you are still not certain that there isn't a surprise or two where you didn't think of them.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also there is a strong pressure to do it as cheaply as possible, hence as quickly as possible and the blame for a too low estimate does not go on the project manager pressurizing but the developer giving the estimate.  It does not take many iterations for the developer to catch this, and learning to be VERY weary of giving out any absolute numbers.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2011-01-08T15:44:48.640" />
  <row Id="34950" PostTypeId="2" ParentId="34227" CreationDate="2011-01-08T15:46:21.763" Score="5" ViewCount="" Body="&lt;p&gt;You might want to contribute to OSS software you use everyday. See which of your tools are open sourced, and if there's anything you would like improved in those. Then see if there's anything you could do about it. Two birds with one stone - you improve your tools AND you're contributing to OSS community.&lt;/p&gt;&#xA;" OwnerUserId="11785" LastActivityDate="2011-01-08T15:46:21.763" />
  <row Id="34951" PostTypeId="2" ParentId="34737" CreationDate="2011-01-08T16:06:47.267" Score="4" ViewCount="" Body="&lt;h1&gt;C&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Pointers, memory management and type casting all take a lot of thought and are easy to get wrong. The lack of built in data structures like hash tables or lists means you either have to devise your own or find a third party library and learn its API.&lt;/p&gt;&#xA;" OwnerUserId="5536" LastActivityDate="2011-01-08T16:06:47.267" CommunityOwnedDate="2011-01-08T16:06:47.267" CommentCount="2" />
  <row Id="34952" PostTypeId="1" AcceptedAnswerId="34955" CreationDate="2011-01-08T16:24:38.740" Score="6" ViewCount="383" Body="&lt;p&gt;If you were going to write a chess game engine, what programming paradigm would you use (OOP, procedural, etc) and why whould you choose it ? By chess engine, I mean the portion of a program that evaluates the current board and decides the computer's next move.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm asking because I thought it might be fun to write a chess engine. Then it occured to me that I could use it as a project for learning functional programming. Then it occured to me that some problems aren't well suited to the functional paradigm. Then it occured to me that this might be good discussion fodder.&lt;/p&gt;&#xA;" OwnerUserId="9830" LastEditorUserId="9830" LastEditorDisplayName="" LastEditDate="2011-01-08T16:54:26.490" LastActivityDate="2011-01-09T15:38:04.110" Title="Which paradigm to use for writing chess engine?" Tags="&lt;object-oriented&gt;&lt;functional-programming&gt;&lt;paradigms&gt;" AnswerCount="4" CommentCount="6" />
  <row Id="34953" PostTypeId="2" ParentId="34227" CreationDate="2011-01-08T16:27:26.657" Score="7" ViewCount="" Body="&lt;p&gt;I got started in the Mozilla project almost two years ago.  I was employed this past summer by the Mozilla Corporation as an intern and am now a &quot;module peer&quot;, meaning that I have some responsibility for a certain part of the project and do code reviews for that (in my case, the build system).  I'd imagine this position as a respected contributor to a major project is where you want to be, so I hope my story is of use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Getting into open source development had been something I'd wanted to do for a while, but something I never got around to doing.  I got started by fixing an almost trivial bug.  Fixing that bug taught me how to build Mozilla (on many large open source projects, building the project is non-trivial), navigate bugzilla, get patches reviewed and committed, etc.  I fixed a few more trivial bugs before I tackled my first hard bug.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Without going into too much detail I spent a couple weeks on a pretty nasty bug that required digging through some third-party drivers and coming up with hacks to keep them functioning, and then tweaking our hack code to fix regressions and other issues.  That was the first bug I fixed that was in the critical path of a release, and it was a great experience.  The timing was somewhat serendipitous; I happened to have the relevant hardware and the time to commit to it (this was during the summer in college, so I had plenty of free time).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I spent a lot of time tracking down the fallout from that bug and then from there I spent some time messing around with the Windows drag and drop code because I found it a lot easier to hack on code that had very well defined interactions with other pieces of code.  Eventually I branched out into some build performance work (because building Mozilla on Windows is so slooooow).  Over time I became competent enough in the codebase to work on major refactorings and feature additions in both C++ and make and I contributed patches frequently enough that I was given direct commit access.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The primary issue I ran into was a lack of documentation.  Most open source projects are poorly documented unfortunately.  This is one of the reasons I found it easier at first to hack on code where one &quot;side&quot; if you will was well defined by MSDN.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The secondary issue was finding bugs to work on.  Finding a bug that is challenging enough to be interesting but doesn't require in-depth knowledge of the codebase is generally difficult in Mozilla.  Mozilla has a list of &lt;a href=&quot;https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=allwordssubstr&amp;amp;status_whiteboard=%5Bgood+first+bug%5D&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&quot; rel=&quot;nofollow&quot;&gt;good first bugs&lt;/a&gt; that is generally decent, though sometimes it's a dumping ground for trivial changes or projects that nobody cares enough to tackle.  If you're interested in Mozilla specifically, log on to our irc network in #developers and ask around or ping &quot;khuey&quot; and we'll find something for you.  Other projects probably have similar &quot;getting started&quot; guides or people who can help guide you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One word of warning: I had the advantage of already being competent in C++.  If you're trying to get started on a project where you don't know the language (or a closely related one) you may find this substantially more difficult.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd post more links but it won't let new users do that, so I've left the most important one in.&lt;/p&gt;&#xA;" OwnerUserId="12700" LastActivityDate="2011-01-08T16:27:26.657" CommentCount="1" />
  <row Id="34954" PostTypeId="2" ParentId="5372" CreationDate="2011-01-08T16:28:14.737" Score="1" ViewCount="" Body="&lt;p&gt;BREATHE WELL.. Learn some breathing Yoga..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;DRINK A LOT OF WATER..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am telling the above as a lot of other things like Cardio/Sleep/Diet have already been mentioned. I was once a Gym freak so I know the benefit of all these but at a much later age I was introduced to Yoga and noticed that breathing patterns really improve your productivity. How about the fact, that if you breathe well you might sleep a couple of hours less and have more energy throughout the day.&lt;/p&gt;&#xA;" OwnerUserId="672" LastActivityDate="2011-01-08T16:28:14.737" CommunityOwnedDate="2011-01-08T16:28:14.737" />
  <row Id="34955" PostTypeId="2" ParentId="34952" CreationDate="2011-01-08T16:30:01.893" Score="5" ViewCount="" Body="&lt;p&gt;Evaluation isn't a parallelizable problem as far as I know but evaluating different chains is , so I definitively would write it to make use of multiple cores and multithreading.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Whether you go functional or semi-functional is a matter of taste. Personally i'd go OOP and use the support for functional programming and parallelization that exists in for instance C#&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On a sidenote, if I were to write a chess engine I'd try to make one that really can &quot;think&quot; about chess. Using board evaluation to brute force all possible combinations has been done to death and extremely well, but there hasn't been much progress afaik in doing a more thinking/fuzzy chess engine. That'd be a challenge! :)  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Find some games with really tricky position play and strong moves (they're marked ! or !!) and use them to train and test your engine.&lt;/p&gt;&#xA;" OwnerUserId="12354" LastEditorUserId="12354" LastEditorDisplayName="" LastEditDate="2011-01-09T15:38:04.110" LastActivityDate="2011-01-09T15:38:04.110" />
  <row Id="34956" PostTypeId="2" ParentId="34952" CreationDate="2011-01-08T16:47:22.360" Score="2" ViewCount="" Body="&lt;p&gt;Have a look at how Dan and Kathe Spracken used to do it back in the days where 64 Kb RAM was a luxury:  &lt;a href=&quot;http://archive.computerhistory.org/projects/chess/related_materials/oral-history/spacklen.oral_history.2005.102630821/spracklen.oral_history_transcript.2005.102630821.pdf&quot; rel=&quot;nofollow&quot;&gt;http://archive.computerhistory.org/projects/chess/related_materials/oral-history/spacklen.oral_history.2005.102630821/spracklen.oral_history_transcript.2005.102630821.pdf&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe that would be a really good place to start for learning the basics.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2011-01-08T16:47:22.360" />
  <row Id="34957" PostTypeId="2" ParentId="34836" CreationDate="2011-01-08T16:59:55.810" Score="0" ViewCount="" Body="&lt;p&gt;I usually put them in the root project directory. Stuff like project files need to be pronounced that they are there. Burying them in another folder might make people think there isn't an IDE in use&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If there are other non-project files that aren't important, than I think &lt;code&gt;/settings&lt;/code&gt; would be appropriate. Most of the others could be confused with stuff that's distributed with the production program. &lt;/p&gt;&#xA;" OwnerUserId="66" LastActivityDate="2011-01-08T16:59:55.810" />
  <row Id="34958" PostTypeId="2" ParentId="34836" CreationDate="2011-01-08T17:09:35.437" Score="1" ViewCount="" Body="&lt;p&gt;I put them where IDE (NetBeans in my case) puts them. Even though IDE has the option to indicate other location, using the default one speeds up opening freshly checked out project.&#xA;Just make sure you exclude this folder from your release branches.&lt;/p&gt;&#xA;" OwnerUserId="11785" LastActivityDate="2011-01-08T17:09:35.437" CommentCount="1" />
  <row Id="34959" PostTypeId="1" AcceptedAnswerId="34962" CreationDate="2011-01-08T17:29:14.870" Score="3" ViewCount="175" Body="&lt;p&gt;I currently have &lt;a href=&quot;http://httpd.apache.org/&quot; rel=&quot;nofollow&quot;&gt;Apache httpd&lt;/a&gt; running on a production Ubuntu VPS server. I write php scripts.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm interested in learning Java and I was wondering how I would go about writing some server-side Java to work on my current set-up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How are &lt;em&gt;&lt;a href=&quot;http://tomcat.apache.org/tomcat-7.0-doc/introduction.html&quot; rel=&quot;nofollow&quot;&gt;Apache Tomcat&lt;/a&gt;&lt;/em&gt; and &lt;em&gt;Apache HTTP Server&lt;/em&gt; related to each other?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can Tomcat be a module of httpd?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or are they simply just two very different projects that happen to be steered by the same organisation (Apache Software Foundation)?&lt;/p&gt;&#xA;" OwnerUserId="6720" LastActivityDate="2011-01-09T07:24:28.457" Title="How are Apache HTTP Server and Apache Tomcat related? (If at all)" Tags="&lt;apache&gt;&lt;apache-http-server&gt;&lt;apache-tomcat&gt;" AnswerCount="1" CommentCount="1" FavoriteCount="1" />
  <row Id="34960" PostTypeId="2" ParentId="34952" CreationDate="2011-01-08T17:54:03.527" Score="1" ViewCount="" Body="&lt;p&gt;I guess it depends upon your goals, which I take are strictly didactic. If you were trying to write a competitive product, you would want maximum efficiency in the lowest level evaluators. Lots of opportunity for bit level parallelism here. Also lots of opportunities for hash tables. Also opportunities to exploit parallelism. Then at the higher levels, you probably want a system good for AI, so that probably means a functional programming languauge. Obviously you don't want to do all of these things, pick one or two of them, and be content with the fact that your project will not be competitive with the better programs.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2011-01-08T17:54:03.527" />
  <row Id="34961" PostTypeId="2" ParentId="34843" CreationDate="2011-01-08T18:03:00.237" Score="1" ViewCount="" Body="&lt;p&gt;Note: This really only applies to projects where you bill by the hour versus a fixed/flat rate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I usually try to plan out my schedule so that it consists of essentially a bunch of &lt;a href=&quot;http://en.wikipedia.org/wiki/Sprint_%28scrum%29&quot; rel=&quot;nofollow&quot;&gt;SCRUM Sprints&lt;/a&gt; (whether using SCRUM or not).  Up front when making the schedule I determine what the length each sprint will be and what the features will be for the project.  Typically there are some features that have to be done first so I try to give a best estimate (not to be confused with optimistic) for those and any features that will be towards the end of the project will have generalized estimates.  After mapping the features to sprints I try to add 1 to 2 sprints at the tail end of the project to account for features that slide right and for features that were overlooked in the original requirements gathering.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The key to this is that I make all of this transparent to the client upfront so they understand why the last two sprints are empty or sparsely populated.  At least to this point the client's I've worked with have liked this since they know that there is some cushion in the schedule/financials since most of them are aware that SW estimates tend to be less than concrete.  They are also aware that if we don't need the last sprint or so then those are hours that we don't bill.  With the transparency in how the schedule is built and the regular feedback on how progress is going during the execution of the project every client that I've done this with has been extremely satisfied.&lt;/p&gt;&#xA;" OwnerUserId="4819" LastActivityDate="2011-01-08T18:03:00.237" />
  <row Id="34962" PostTypeId="2" ParentId="34959" CreationDate="2011-01-08T18:09:12.480" Score="8" ViewCount="" Body="&lt;p&gt;In general, the Apache HTTP server is just a plain old web server designed to serve static web pages.  There are plenty of modules which can be installed to enhance Apache's abilities so that it can serve dynamic webpages using various technologies such as PHP, CGI or whatever, but the core of Apache is just a plain old HTTP server.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Tomcat, on the other hand, is specifically designed from the ground-up to serve as a &lt;a href=&quot;http://en.wikipedia.org/wiki/Java_Servlet&quot; rel=&quot;nofollow&quot;&gt;Java Servlet&lt;/a&gt; engine.  It's primary purpose is to implement the Java Servlet API and execute Java servlets for the purpose of building dynamic websites.  Tomcat can &lt;em&gt;also&lt;/em&gt; be used as a regular HTTP server that serves static pages, but that is not its primary purpose.  (Also, Tomcat is allegedly slower than Apache httpd when it comes to serving static pages.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The two technologies can be used together through a connector module called &lt;a href=&quot;http://tomcat.apache.org/connectors-doc-archive/jk2/jk/aphowto.html&quot; rel=&quot;nofollow&quot;&gt;mod_jk&lt;/a&gt;. This will allow you to use the Apache HTTP server to serve regular static webpages, and the Tomcat Servlet engine to execute servlets.&lt;/p&gt;&#xA;" OwnerUserId="7733" LastEditorUserId="7733" LastEditorDisplayName="" LastEditDate="2011-01-09T07:24:28.457" LastActivityDate="2011-01-09T07:24:28.457" CommentCount="1" />
  <row Id="34963" PostTypeId="1" CreationDate="2011-01-08T18:11:35.710" Score="16" ViewCount="676" Body="&lt;p&gt;I've made a poorly written, yet fully functioning website, in &lt;em&gt;(shock, horror, shock)&lt;/em&gt; PHP.&#xA;Everything works as expected, I've implemented the necessary security measures: &lt;a href=&quot;http://php.net/manual/en/security.php&quot; rel=&quot;nofollow&quot;&gt;http://php.net/manual/en/security.php&lt;/a&gt; and phpsec.org/projects/guide/&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's poorly written in the sense that it's a bunch of functions thrown together that do something...oddly enough I was consistent with the naming conventions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Would you release something you were not happy with, but worked?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would also like to point out that I don't collect much user information (username, email and password) is about it -- but it's not really the security part I'm worried about, it's the spaghetti code I've written.&lt;/p&gt;&#xA;" LastEditorUserId="7892" LastEditorDisplayName="" LastEditDate="2011-01-13T03:36:08.097" LastActivityDate="2011-01-13T03:36:08.097" Title="Releasing poorly written software..." Tags="&lt;code-quality&gt;&lt;language-agnostic&gt;&lt;software-craftsmanship&gt;&lt;spaghetti-code&gt;" AnswerCount="14" CommentCount="6" FavoriteCount="1" />
  <row Id="34964" PostTypeId="2" ParentId="34963" CreationDate="2011-01-08T18:14:53.137" Score="15" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Should you release something you were not happy with, but worked?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;If by &quot;release&quot; you mean &quot;start operating&quot; - why, of course! As they say, &lt;a href=&quot;http://www.joelonsoftware.com/items/2009/09/23.html&quot; rel=&quot;nofollow&quot;&gt;shipping is a feature&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As time progresses, you will probably want to rework parts of the code because updates and new developments are cumbersome to implement. Maybe you want to start another branch of the project, in which you rewrite things from scratch. But if you have a mature site that needs to get running, and you have taken care of security concerns (which should always be top priority), of course launch it first.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If by &quot;release&quot; you mean &quot;release as an Open Source Project&quot; - hmm, maybe not. Well structured code is one of the key necessities for a FLOSS project to succeed and thrive. Countless badly written projects have been released to the public, of course - and many have become very popular. But future generations of programmers are likely to curse your name if you do this.  &lt;/p&gt;&#xA;" OwnerUserId="4771" LastEditorUserId="4771" LastEditorDisplayName="" LastEditDate="2011-01-08T18:21:09.640" LastActivityDate="2011-01-08T18:21:09.640" CommentCount="5" />
  <row Id="34965" PostTypeId="2" ParentId="34963" CreationDate="2011-01-08T18:15:03.060" Score="0" ViewCount="" Body="&lt;p&gt;You can release if it works and then work on your code to &lt;a href=&quot;http://stackoverflow.com/questions/1038964/writing-clean-and-efficient-php-code&quot;&gt;make it more efficient&lt;/a&gt; for next version.&lt;/p&gt;&#xA;" OwnerUserId="4313" LastEditorUserId="4313" LastEditorDisplayName="" LastEditDate="2011-01-08T18:20:22.950" LastActivityDate="2011-01-08T18:20:22.950" />
  <row Id="34966" PostTypeId="2" ParentId="34963" CreationDate="2011-01-08T18:15:04.493" Score="0" ViewCount="" Body="&lt;p&gt;Yes! As long as it pass the testing stage you can rewrite/work of your techinal debt in later releases.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-08T18:19:05.430" />
  <row Id="34967" PostTypeId="2" ParentId="34963" CreationDate="2011-01-08T18:15:30.440" Score="0" ViewCount="" Body="&lt;p&gt;It depends on my time frame. If I need to pump out a project very quickly, often times I will release it with code I wouldn't feel comfortable with another PHP professional looking at. However, I will &lt;strong&gt;always&lt;/strong&gt; make an effort to go back and clean and improve it in pieces later on. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, to answer your question: Yes, I would release to meet deadlines but that would not mean I wouldn't improve the code later.&lt;/p&gt;&#xA;" OwnerUserId="12703" LastActivityDate="2011-01-08T18:19:05.430" />
  <row Id="34968" PostTypeId="2" ParentId="34963" CreationDate="2011-01-08T18:17:46.197" Score="2" ViewCount="" Body="&lt;p&gt;As a programmer, I often find myself wanting to recode every piece of code I previously wrote.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I once found an article explaining this phenomenon. Apparently it's because it is easier to write code than to re-read it. When you are coding you have the sense that what you are doing is perfect, but when you come back and look at it you often think it's not that great.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To answer your question though, I would start using the current code (if it works good) and slowly refactor it section by section.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You might also want to write unit tests as it will help you make sure the code you refactored still works as expected.&lt;/p&gt;&#xA;" OwnerUserId="12704" LastActivityDate="2011-01-08T18:19:05.430" />
  <row Id="34969" PostTypeId="2" ParentId="34963" CreationDate="2011-01-08T18:17:47.223" Score="0" ViewCount="" Body="&lt;p&gt;Sometimes you have to release something, otherwise your users will lynch you. The answer to your question is refactoring and unit test (PHPUnit?). It will take time, but eventually your code will be less spaghetti like.&lt;/p&gt;&#xA;" OwnerUserId="14259" LastActivityDate="2011-01-08T18:19:05.430" />
  <row Id="34970" PostTypeId="1" CreationDate="2011-01-07T22:08:49.560" Score="3" ViewCount="409" Body="&lt;p&gt;Title is the question. &#xA;And why I am asking is because from what I read about most PHP frameworks (e.g. Code Igniter, Kohana, Cake, Zend) is that they're ether too complex, or are designed mostly for small applications (like blogs).&lt;/p&gt;&#xA;" LastActivityDate="2011-03-26T04:45:58.503" Title="If you were to build an app like Craigslist, would use an off-the-shelf framework or write your own?" Tags="&lt;php&gt;&lt;zend-framework&gt;&lt;cakephp&gt;&lt;codeigniter&gt;&lt;kohana&gt;" AnswerCount="8" CommentCount="10" />
  <row Id="34971" PostTypeId="2" ParentId="34970" CreationDate="2011-01-07T22:15:49.057" Score="15" ViewCount="" Body="&lt;p&gt;I'd &lt;em&gt;always&lt;/em&gt; use an off-the-shelf framework. There is almost never a &lt;em&gt;good&lt;/em&gt; reason to build your own from the ground up. You'll spend a lot more time with the plumbing work and bug fixing writing your own than relying on tested and optimized methods already existing in the OS packages. Most of the frameworks have built in methods to extend them if needed and if they don't, I hear PHP frameworks are pretty easy to go in and modify as needed ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My suggestion is to evaluate a few of them and pick which one suits your needs. I've tried Yii, Kohana and CodeIgniter and found CodeIgniter to have the smallest learning curve and yet still supplies (almost) all of the functionality I needed for my application. For functionality not included out of the box in CI, they expose hooks for customization.&lt;/p&gt;&#xA;" OwnerUserId="23901" LastActivityDate="2011-01-08T18:26:38.407" CommentCount="12" />
  <row Id="34972" PostTypeId="2" ParentId="34970" CreationDate="2011-01-07T22:17:21.093" Score="3" ViewCount="" Body="&lt;p&gt;If your primary motivation is to get something done (as opposed to learning), my general advice is that I would first go with whatever you already know and are comfortable with that can handle the job well.  If a task exceeds your capabilities at the moment you then look for a package that extend your capabilities to handle it.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-08T18:26:38.407" CommentCount="8" />
  <row Id="34973" PostTypeId="2" ParentId="34970" CreationDate="2011-01-07T22:17:26.143" Score="11" ViewCount="" Body="&lt;p&gt;I've written virtually all of my sites from scratch. In my case, the reason is primarily because I enjoy creating things and that's also a great way to learn. It's much less fun for me to spend time trying to learn someone else's code than creating my own.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But that's just a personal reason. If you find a nice off-the-shelf package that does exactly what you need, then I could certainly understand using it.&lt;/p&gt;&#xA;" OwnerUserId="17425" LastActivityDate="2011-01-08T18:26:38.407" CommentCount="7" />
  <row Id="34974" PostTypeId="2" ParentId="34970" CreationDate="2011-01-07T22:19:42.903" Score="3" ViewCount="" Body="&lt;p&gt;I am about 90% done with a craigslist-type application. I have built it from scratch using straight PHP, and things have came along quite well. We are now finalizing things and adding some advanced features that you do not see in any classified websites.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-08T18:26:38.407" CommentCount="1" />
  <row Id="34975" PostTypeId="2" ParentId="34535" CreationDate="2011-01-08T18:27:14.947" Score="1" ViewCount="" Body="&lt;p&gt;It's not. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;RMI is a binary protocol for serializing and sending Java objects between two end-points and you really need those end-points to be JVM's for that to work. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;With &quot;web applications&quot; I assume you mean html+http+javascript which would be incredible hard (if at all possible) to use with RMI.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2011-01-08T18:27:14.947" CommentCount="1" />
  <row Id="34976" PostTypeId="2" ParentId="34963" CreationDate="2011-01-08T18:49:09.070" Score="1" ViewCount="" Body="&lt;p&gt;If it works, it's not broken.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Release it, every time  a projects completes, you realize the improvements that could have been done. It does not mean that you don't release a lesser sophisticated &lt;strong&gt;working&lt;/strong&gt; software. Embrace incremental improvement instead of build, scrap, rebuild. &lt;/p&gt;&#xA;" OwnerUserId="12705" LastActivityDate="2011-01-08T18:49:09.070" />
  <row Id="34978" PostTypeId="2" ParentId="34963" CreationDate="2011-01-08T19:03:53.627" Score="1" ViewCount="" Body="&lt;p&gt;If it's stable and does what it is supposed to, then release. Sooner is better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However - apply extra effort to make sure your data model is well structured, consistent and long-term ready.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's usually easy to change and republish the software part, but restructuring of the data model with the living precious data already in it is often a huge pain. Normally you don't want to change it, only extend it. In that regard make sure your data scheme is good enough now before you launch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another thing that applies to web products is the SEO and stability of your urls. It's probably even harder to have to redesign your site links and desperately wait for months until Google recovers your previously earned page ranks.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, two things matter:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Stable and future-ready data model&lt;/li&gt;&#xA;&lt;li&gt;Stable, consistent and future-oriented route concept&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If you think you got 1 and 2 right -&gt; go!&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2011-01-08T19:03:53.627" />
  <row Id="34979" PostTypeId="2" ParentId="34737" CreationDate="2011-01-08T19:06:05.080" Score="6" ViewCount="" Body="&lt;p&gt;I'd say Coq, or another implementation of dependent type theory.  Haskell's type system is not very expressive comparatively.  Moving to a more expressive type system (i.e. the Calculus of Constructions) allows you to do some neat things, like proving properties of programs &lt;em&gt;within&lt;/em&gt; the language, and embedding strong invariants into your types which can be checked statically.&lt;/p&gt;&#xA;" OwnerUserId="12708" LastActivityDate="2011-01-08T19:06:05.080" CommunityOwnedDate="2011-01-08T19:06:05.080" CommentCount="2" />
  <row Id="34980" PostTypeId="2" ParentId="34963" CreationDate="2011-01-08T19:08:25.667" Score="2" ViewCount="" Body="&lt;p&gt;Do you imagine how many websites are there, used daily by hundreds of thousands of people who don't care that the website they use is poorly written?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even better, do you imagine how many websites are there, not only poorly written, but also unsecured, unusable, but still used by many people?&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Your website is functional and works well? So release it. An end user doesn't care about the quality of your code. If the website doesn't crash every minute, doesn't make the user feel stupid or uncomfortable, or doesn't suck too much, there is nothing to worry about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If &lt;em&gt;have&lt;/em&gt; to worry about in several cases, which doesn't seem yours:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;When the website was done for your customer, and you were payed for it. A customer may not be able to make a difference between a high quality code which works and a code that suck but works, but if one day this customer asks some other developers what they think about the code you made, you have strong chances to lose this customer forever.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;When you seriously intend:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;to enlarge, promote and modify the website. If half of daily visitors ask for a feature, and you cannot implement it, because it requires to rewrite the whole source code correctly, well, there will be a problem.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;to share or sell your source code. In a first case, your reputation may be affected if other developers see a very low quality code. In a second case, the buyers will expect some quality, and will be disappointed.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;to invite somebody to work with you on the source code to enhance the website.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Last advice: don't try to make things perfect. Release first, then do it. By releasing a website, you will receive feedback sooner. It means that you will be able to implement some modifications according to this feedback sooner too. Thus, the quality of your next version of the website will be higher.&lt;/p&gt;&#xA;" OwnerUserId="6605" LastActivityDate="2011-01-08T19:08:25.667" CommentCount="1" />
  <row Id="34981" PostTypeId="1" CreationDate="2011-01-08T19:09:32.067" Score="0" ViewCount="78" Body="&lt;p&gt;I'm working in an area that is related to simulation and trying to design a data structure that can include random variables within matrices. I am currently coding in MATLAB. To motivate this let me say I have the following matrix:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;[a b; &#xA; c d]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I want to find a data structure that will allow for a, b, c, d to be either real numbers or random variables. As an example, let's say that a = 1, b = -1, c = 2 but let d be a normally distributed random variable with mean 20 and SD 40. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The data structure that I have in mind will give no value to d. However, I also want to be able to design a function that can take in the structure, simulate an uniform(0,1), obtain a value for d using an inverse CDF and then spit out an actual matrix.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have several ideas to do this (all related to the MATLAB icdf function) but would like to know how more experienced programmers would do it. In this application, it's important that the structure is as &quot;lean&quot; as possible since I will be working with very very large matrices and memory will be an issue.&lt;/p&gt;&#xA;" OwnerUserId="12707" LastActivityDate="2011-01-08T19:09:32.067" ClosedDate="2011-01-09T19:30:06.577" Title="MATLAB: What is an appropriate Data Structure for a Matrix with Random Variable Entries?" Tags="&lt;data-structures&gt;" CommentCount="3" />
  <row Id="34982" PostTypeId="1" AcceptedAnswerId="35105" CreationDate="2011-01-08T19:22:40.777" Score="1" ViewCount="96" Body="&lt;p&gt;What Obj-C/C libraries have you used for manipulating git repos in your Mac apps?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am working on a Mac app that I would like to be able to clone and modify git repos. Using git directly is not an option as it is GPL and I'd like to sell my app commercially without opening the source. I've seen libgit2, which I could link, but I'm not sure how to do that properly, and it doesn't appear to implement any of the things necessary for pushing/pulling repos over the git protocol.&lt;/p&gt;&#xA;" OwnerUserId="10558" LastActivityDate="2011-01-09T18:52:41.647" Title="What is a good C or Obj-C framework for manipulating Git Repositories?" Tags="&lt;c&gt;&lt;libraries&gt;&lt;objective-c&gt;" AnswerCount="1" CommentCount="3" FavoriteCount="1" />
  <row Id="34983" PostTypeId="2" ParentId="25276" CreationDate="2011-01-08T19:36:34.897" Score="0" ViewCount="" Body="&lt;p&gt;I prefer Simple solutions, I really like the ruby way. When you want to for example sum first 2 elements on the list. first you cut the list to make it have size=2 and then you sum it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I remember that once I used 1 list instead of 3 and create one big function that was very hard to maintain/change.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;in todays world we don't have to sacrifice code clearness for performance&lt;/strong&gt;(except c++, they don't have to, but they will).&lt;/p&gt;&#xA;" OwnerUserId="929" LastActivityDate="2011-01-08T19:36:34.897" CommunityOwnedDate="2011-01-08T19:36:34.897" />
  <row Id="34984" PostTypeId="2" ParentId="34952" CreationDate="2011-01-08T20:04:19.690" Score="2" ViewCount="" Body="&lt;p&gt;I have choosen OOP paradigm in my chess engine named &lt;a href=&quot;http://theturk.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;The Turk&lt;/a&gt;. First version of my chess engine was written more procedural rather than OOP.Then i found so hard to improve my chess engine because of long code blocks and poor design.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It depends on what you want to achieve while writing chess engine.If you want to create a chess engine which is too strong so it even not possible to do this in OOP languages because of slow late bindings. If you just want to learn programming and also get fun by writing chess engine so managed languages and OOP will be your friend. I can suggest you to choose C# because it is also possible to write chess engine in more procedural way with it.&lt;/p&gt;&#xA;" OwnerUserId="3664" LastEditorUserId="3664" LastEditorDisplayName="" LastEditDate="2011-01-09T12:32:35.493" LastActivityDate="2011-01-09T12:32:35.493" CommentCount="4" />
  <row Id="34985" PostTypeId="2" ParentId="34737" CreationDate="2011-01-08T20:10:39.593" Score="11" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Brainfuck&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone who can honestly write this mockery of a language shouldn't even need a thread like this.&#xA;Hello World (pointers, left; explaination, right):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;+++++ +++++             initialize counter (cell #0) to 10&#xA;[                       use loop to set the next four cells to 70/100/30/10&#xA;    &amp;gt; +++++ ++              add  7 to cell #1&#xA;    &amp;gt; +++++ +++++           add 10 to cell #2 &#xA;    &amp;gt; +++                   add  3 to cell #3&#xA;    &amp;gt; +                     add  1 to cell #4&#xA;    &amp;lt;&amp;lt;&amp;lt;&amp;lt; -                  decrement counter (cell #0)&#xA;]                   &#xA;&amp;gt; ++ .                  print 'H'&#xA;&amp;gt; + .                   print 'e'&#xA;+++++ ++ .              print 'l'&#xA;.                       print 'l'&#xA;+++ .                   print 'o'&#xA;&amp;gt; ++ .                  print ' '&#xA;&amp;lt;&amp;lt; +++++ +++++ +++++ .  print 'W'&#xA;&amp;gt; .                     print 'o'&#xA;+++ .                   print 'r'&#xA;----- - .               print 'l'&#xA;----- --- .             print 'd'&#xA;&amp;gt; + .                   print '!'&#xA;&amp;gt; .                     print '\n'&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="12710" LastActivityDate="2011-01-08T20:10:39.593" CommunityOwnedDate="2011-01-08T20:10:39.593" />
  <row Id="34986" PostTypeId="2" ParentId="18737" CreationDate="2011-01-08T20:22:38.273" Score="2" ViewCount="" Body="&lt;p&gt;Team chemistry is something that is difficult to predict. How long a project will take to finish is difficult to predict. Really, life is difficult to predict. Your best bet is to choose the people you feel will work well together, get them started, and see what happens. Next, adjust your team as needed.It will be obvious what areas will need to be improved, and what is going smoothly, if you ask for feedback on these items from your team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The scientific method is generally the best way to achieve results. Don't spend too much time hypothesizing, go ahead and get observing, so that you can take action.&lt;/p&gt;&#xA;" OwnerUserId="12709" LastActivityDate="2011-01-08T20:22:38.273" />
  <row Id="34987" PostTypeId="1" CreationDate="2011-01-08T20:25:51.223" Score="1" ViewCount="192" Body="&lt;p&gt;As one journey's from apprentice to journeyman to master I've noticed that one accumulates a list of best practices for things they've been bitten by. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am looking for things that &quot;transcends technologies&quot;, eg: their not specific to any one particular language, server environment, etc, etc. I've accumulated the following:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When doing list removal, always reverse iterate&lt;/li&gt;&#xA;&lt;li&gt;Avoid adding items to a list you are currently iterating on&lt;/li&gt;&#xA;&lt;li&gt;Watch out for NullPointerExceptions in memory managed languages&lt;/li&gt;&#xA;&lt;li&gt;Watch your memory boundaries in non-memory managed languages&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Now, I know there are language specific &quot;common errors&quot; links out there like &lt;a href=&quot;http://www.javacoffeebreak.com/articles/toptenerrors.html&quot; rel=&quot;nofollow&quot;&gt;this one.&lt;/a&gt; And I'm also aware of the &lt;a href=&quot;http://pragprog.com/the-pragmatic-programmer/extracts/tips&quot; rel=&quot;nofollow&quot;&gt;pragmatic programmer tips&lt;/a&gt;, Martin Fowler's &lt;a href=&quot;http://wiki.java.net/bin/view/People/SmellsToRefactorings&quot; rel=&quot;nofollow&quot;&gt;&quot;code smells&quot;&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Does anyone know of any good lists out there of things like I've listed above (re: list removal, adding items, etc). My guess is that there are some good QA folks out there that can probably throw me a bone here. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not looking for things the compiler can catch - I'm looking for common things that cause bugs. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the event that there isn't a list out there already then I welcome posting your own findings here.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks in advance!&lt;/p&gt;&#xA;" OwnerUserId="5916" LastEditorUserId="5916" LastEditorDisplayName="" LastEditDate="2011-01-08T21:42:39.550" LastActivityDate="2011-01-08T21:42:39.550" ClosedDate="2011-01-08T21:56:23.093" Title="General List of Common Programming Errors" Tags="&lt;learning&gt;&lt;programming-practices&gt;&lt;code-quality&gt;&lt;software-craftsmanship&gt;&lt;qa&gt;" AnswerCount="1" CommentCount="4" />
  <row Id="34988" PostTypeId="2" ParentId="18737" CreationDate="2011-01-08T20:59:30.490" Score="1" ViewCount="" Body="&lt;p&gt;A great team member have a number of characteristics, as in the list below. This is not specific to programming, but applies to all types of teams where collaboration is expected to happen:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Acknowledges and works through conflict openly&lt;/li&gt;&#xA;&lt;li&gt;Considers and uses new ideas and suggestions from others&lt;/li&gt;&#xA;&lt;li&gt;Encourages feedback on own behavior&lt;/li&gt;&#xA;&lt;li&gt;Understands and is committed to team objectives.&lt;/li&gt;&#xA;&lt;li&gt;Shares openly and authentically with others regarding personal feelings, opinions,  thoughts, and perceptions about problems and conditions&lt;/li&gt;&#xA;&lt;li&gt;Involves others in the decision-making process &lt;/li&gt;&#xA;&lt;li&gt;Trusts, supports, and has genuine concern for other team members.&lt;/li&gt;&#xA;&lt;li&gt;&quot;Owns&quot; problems rather than blaming them on others&lt;/li&gt;&#xA;&lt;li&gt;When listening, attempts to hear and interpret communication from other's points of view&lt;/li&gt;&#xA;&lt;li&gt;Influences others by involving them in the issue(s)&lt;/li&gt;&#xA;&lt;li&gt;Encourages the development of other team members&lt;/li&gt;&#xA;&lt;li&gt;Respects and is tolerant of individual differences&lt;/li&gt;&#xA;&lt;li&gt;Does not engage in win/lose activities with other team members&lt;/li&gt;&#xA;&lt;li&gt;Has skills in understanding what's going on in the group&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Use this list as a way to measure your potential team members. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is more or less the perfect team member, someone I would sure like to work with. If you can find people like this and who &lt;em&gt;also&lt;/em&gt; knows a thing or two about programming, then you have a winning team. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;More info &lt;a href=&quot;http://www.innovativeteambuilding.co.uk/pages/articles/characteristics.htm&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;. &lt;/p&gt;&#xA;" OwnerUserId="5692" LastActivityDate="2011-01-08T20:59:30.490" />
  <row Id="34989" PostTypeId="2" ParentId="34987" CreationDate="2011-01-08T21:01:14.997" Score="1" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Java&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/1216577/common-programming-mistakes-for-java-developers-to-avoid&quot;&gt;Common programming mistakes for Java developers to avoid?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/4472259/java-development-pitfalls-for-a-net-developer&quot;&gt;Java development pitfalls for a .NET developer&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/169815/java-common-gotchas&quot;&gt;Java - Common Gotchas&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/822768/what-are-the-pitfalls-of-a-java-noob&quot;&gt;What are the pitfalls of a Java noob?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/433853/what-are-some-common-java-pitfalls-gotchas-for-c-programmer&quot;&gt;What are some common Java pitfalls/gotchas for C++ programmer?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;SQL&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/1190945/common-programming-mistakes-for-sql-developers-to-avoid&quot;&gt;Common programming mistakes for SQL developers to avoid?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/346659/what-are-the-most-common-sql-anti-patterns&quot;&gt;What are the most common SQL anti-patterns?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Also check out the questions tagged &lt;a href=&quot;http://stackoverflow.com/questions/tagged/common-mistakes?sort=votes&amp;amp;pagesize=15&quot;&gt;&quot;common-mistakes&quot;&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;And google for the stuff like:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.google.com/search?btnG=1&amp;amp;pws=0&amp;amp;q=common+java+mistakes+site%3Astackoverflow.com&quot; rel=&quot;nofollow&quot;&gt;common java mistakes site:stackoverflow.com&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.google.com/search?btnG=1&amp;amp;pws=0&amp;amp;q=common+sql+mistakes+site%3Astackoverflow.com&quot; rel=&quot;nofollow&quot;&gt;common sql mistakes site:stackoverflow.com&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Vary &quot;mistakes&quot;, &quot;errors&quot; and &quot;pitfalls&quot; in the query.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2011-01-08T21:06:38.950" LastActivityDate="2011-01-08T21:06:38.950" CommentCount="2" />
  <row Id="34990" PostTypeId="1" AcceptedAnswerId="35000" CreationDate="2011-01-08T21:05:31.593" Score="2" ViewCount="118" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/1963/how-to-become-aware-of-new-languages-techniques-and-methodologies&quot;&gt;How to become aware of new languages, techniques and methodologies?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;How do you get aware of new tools (libraries, applications, etc)? This question is only about &quot;getting aware&quot; that some tool exist and could be used. Learning and trying is different issue. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Right now I get most awareness from stackexchange and freshmeat sites. But I wonder if there are more efficient way. E.g. 80% of freshmeat projects are no-use for me, but it reasonable overhead, because tools that I find trough it save me days or even weeks. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some related, but a bit different questions:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/9236/how-much-time-do-you-invest-in-exploring-new-technology&quot;&gt;How much time do you invest in exploring new technology?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/1963/how-to-become-aware-of-new-languages-techniques-and-methodologies&quot;&gt;How to become aware of new languages, techniques and methodologies?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/100/what-website-are-you-using-most-to-keep-you-updated-on-software-development&quot;&gt;What website are you using most to keep you updated on software development?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="4784" LastActivityDate="2011-01-08T23:27:56.920" ClosedDate="2011-01-09T00:12:21.540" Title="How do you get aware of new tools?" Tags="&lt;self-improvement&gt;&lt;resources&gt;&lt;awareness&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="34991" PostTypeId="2" ParentId="34990" CreationDate="2011-01-08T21:09:12.350" Score="4" ViewCount="" Body="&lt;p&gt;You get aware of new things in programming the same way you get aware of events in any other profession.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;By staying social and connected to the community.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Read books&lt;/li&gt;&#xA;&lt;li&gt;Follow blogs&lt;/li&gt;&#xA;&lt;li&gt;Participate in communities - forums, Q&amp;amp;A sites, open-source projects&lt;/li&gt;&#xA;&lt;li&gt;Conferences&lt;/li&gt;&#xA;&lt;li&gt;etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Important is that you like what you do and stay naturally curious about many things like a child, then everything comes to you. If it's only for the job, then it will be a burden. If you genuinely enjoy it, it's gonna be fun. Much fun.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2011-01-08T21:09:12.350" />
  <row Id="34992" PostTypeId="2" ParentId="10804" CreationDate="2011-01-08T21:46:45.500" Score="2" ViewCount="" Body="&lt;p&gt;In a lot of ways, I view this question as being along the lines of &quot;Should my employer pay me a good salary?&quot; or &quot;Should my employer give me vacation time above what the law prescribes?&quot;.  Of course, there are a lot of different points of view about what employers &quot;should&quot; do, but they're largely moot.  The terms of your employment are an agreement between you and your employer.  If you need to modify that agreement or your company isn't holding up their end of the bargain, your recourses are:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Renegotiate that agreement.&lt;/li&gt;&#xA;&lt;li&gt;End the agreement (in other words, quit).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, it's usually easier to get a potential employer to agree to things than it is to get an existing one to agree to new terms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Disclaimers:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I'm assuming the US, some of the legalities and assumptions might change if you're elsewhere.&lt;/li&gt;&#xA;&lt;li&gt;I'm not necessarily saying any of the above is the way it &lt;em&gt;should&lt;/em&gt; or &lt;em&gt;shouldn't&lt;/em&gt; be.  I'm just saying that's the way it is.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1626" LastActivityDate="2011-01-08T21:46:45.500" CommentCount="1" />
  <row Id="34993" PostTypeId="1" CreationDate="2011-01-08T21:50:26.750" Score="3" ViewCount="166" Body="&lt;p&gt;Which &lt;em&gt;dependently typed&lt;/em&gt; programming languages could be used for real world &lt;em&gt;application development&lt;/em&gt;? I will mostly be writing toy applications at first, after that maybe web development or a simple DBMS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are some points, that I think are important:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;documentation&lt;/li&gt;&#xA;&lt;li&gt;example programs&lt;/li&gt;&#xA;&lt;li&gt;a good/big standard library&lt;/li&gt;&#xA;&lt;li&gt;an easy to use foreign function interface&lt;/li&gt;&#xA;&lt;li&gt;a community of people using the language for real world tasks&lt;/li&gt;&#xA;&lt;li&gt;tool support&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I am aware that there is currently no language that meets all these requirements. I'd like to know which one comes closest.&lt;/p&gt;&#xA;" OwnerUserId="9573" LastEditorUserId="9573" LastEditorDisplayName="" LastEditDate="2011-01-09T06:26:17.953" LastActivityDate="2011-01-09T06:26:17.953" Title="Dependently typed language best suited to “real world” programming?" Tags="&lt;programming-languages&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="34995" PostTypeId="2" ParentId="9498" CreationDate="2011-01-08T22:07:01.293" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;[DISCLAIMER: I work for DevExpress]&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can see screenshots of typical applications created by DevExpress application frameworks &lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/en-us/7ED32FD9-B851-4FFA-BE54-DAD981CC2E6D?SRC=Featured&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;. This page also contains a very brief review of our products.&#xA;For more detailed information on &lt;strong&gt;why&lt;/strong&gt;, I suggest you check out respective product pages on our web site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for DevExpress XAF and XPO, &lt;a href=&quot;http://documentation.devexpress.com/#Xaf/CustomDocument2558&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; is a good explanation on why to choose our application frameworks. Plus, we provide support and documentation, which is also important and worth mentioning. Feel free to contact us in case of any questions.&lt;/p&gt;&#xA;" OwnerUserId="12716" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-04-01T09:10:17.387" LastActivityDate="2011-04-01T09:10:17.387" />
  <row Id="34996" PostTypeId="2" ParentId="34877" CreationDate="2011-01-08T22:15:18.897" Score="-1" ViewCount="" Body="&lt;p&gt;Did you ask him to provide reasons for the methodology that he wanted to use?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Did you show him the problems that following that methodology would create vs benefits of using RESTfull services?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Just firing him will neither solve your problem nor make him a better developer. Who knows maybe in other areas he is not as bad. Try to maximise the benefits to everyone, make him a better developer to be of help to you. Just saying do it this way without providing a reason didn't help him. By the way using RESTfull services is not your way, it is a sound architecture that he would have agreed with if he only knew why (assuming we are dealing with a rational being).&lt;/p&gt;&#xA;" OwnerUserId="8518" LastActivityDate="2011-01-08T22:15:18.897" CommentCount="9" />
  <row Id="34997" PostTypeId="2" ParentId="34963" CreationDate="2011-01-08T22:21:10.670" Score="3" ViewCount="" Body="&lt;p&gt;Of course. If you wrote software with the purpose of running it, and it runs - you should release it. You can start fixing it after that. Refactoring is part of software evolution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you completely happy with the code you wrote and it is longer than a dozen of lines - you are missing something. Everything can be improved given infinite time. &lt;/p&gt;&#xA;" OwnerUserId="10080" LastActivityDate="2011-01-08T22:21:10.670" />
  <row Id="34998" PostTypeId="2" ParentId="34963" CreationDate="2011-01-08T22:53:37.563" Score="1" ViewCount="" Body="&lt;p&gt;It's your call whether you should run with it or not. But understand a couple things.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Yours would not be the only bad software out there&lt;/strong&gt;. There are a lot of nasty apps that work. And if you throw in corporate IT apps from the non-shrink-wrap world, you can multiply that number by about a million. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Good and bad are subjective terms&lt;/strong&gt;. Your standards of good may be way higher or lower than someone else's. So it's tough to know where on the spectrum of software quality an app is without multiple opinions or a reliable metric.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Code quality doesn't matter&lt;/strong&gt;. There's a StackOverflow podcast somewhere where Jeff and Joel talk about that. For those of us that live in the code and recognize that code does have to adapt to new business rules over time, yes, the quality of construction, and especially of design, matters. But to project managers, bosses, clients using your software and everyone else, code quality doesn't matter (unless it's an issue of user interface, reliability or performance [and even then only the users would care, not the bosses or project managers]). That is why there is such a huge disparity between developer and non-developer perceptions of the effort involved in making truly good software.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="7892" LastActivityDate="2011-01-08T22:53:37.563" />
  <row Id="34999" PostTypeId="1" CreationDate="2011-01-08T22:58:31.027" Score="3" ViewCount="136" Body="&lt;p&gt;I'm a new developer at a fairly large company and I'm working on a Java Web Application with a senior developer there. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Web App is built on top of an IBM stack (RAD, DB2, WebSphere) and basically uses JSPs and Servlets. The Web App is an internal tool to be used by employees to manage data coming from Excel files. So, there are lots of database interaction going around like SQL commands.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is: I don't know much about JavaEE as a whole and only know a little about JSPs and Servlets and I would like to get myself up to speed so I can understand and contribute to the Web App as fast as I could. What resources (tutorials, links, etc) should I be looking at? Am I supposed to get a book about JavaEE or something that focuses just on JSPs and Servlets?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;EDIT:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I know well that I think is relevant:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Java SE&lt;/li&gt;&#xA;&lt;li&gt;Object Oriented Concepts&lt;/li&gt;&#xA;&lt;li&gt;Some JSP &amp;amp; Servlets&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I just graduated from college so I don't have a really wide knowledge of frameworks and such yet but I spend a lot of time reading blogs and working on some small programs (not necessarily Java, more Python really.)&lt;/p&gt;&#xA;" OwnerUserId="12719" LastEditorUserId="12719" LastEditorDisplayName="" LastEditDate="2011-01-08T23:29:57.433" LastActivityDate="2011-01-09T08:42:12.937" Title="How to Get Myself Up to Speed in Building a Java Web App" Tags="&lt;learning&gt;&lt;java&gt;&lt;books&gt;" AnswerCount="2" />
  <row Id="35000" PostTypeId="2" ParentId="34990" CreationDate="2011-01-08T23:10:22.137" Score="2" ViewCount="" Body="&lt;p&gt;Three ways that have worked for me:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Use &lt;strong&gt;twitter&lt;/strong&gt; and follow developers. I try to follow every developer I can, often from open source projects or interesting blogs, they often share the latest of the latest in frameworks and techniques. &lt;/li&gt;&#xA;&lt;li&gt;Another way that works for me is to &lt;strong&gt;research tools&lt;/strong&gt; almost every time I need to do something (you can also try searching twitter), even if I already have a favorite tool/framework, &lt;strong&gt;often one tool leads to another one that is better&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Add feeds from every developer blog/site you find&lt;/strong&gt;. I use &lt;a href=&quot;http://snackr.net/&quot; rel=&quot;nofollow&quot;&gt;snackr&lt;/a&gt;, an RSS ticker that docks to the edge of your screen.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10869" LastEditorUserId="10869" LastEditorDisplayName="" LastEditDate="2011-01-08T23:27:56.920" LastActivityDate="2011-01-08T23:27:56.920" CommentCount="1" />
  <row Id="35001" PostTypeId="2" ParentId="34993" CreationDate="2011-01-08T23:11:15.810" Score="4" ViewCount="" Body="&lt;p&gt;Unfortunately, you are asking for something that just doesn't exist yet. Things such as big libraries, etc general only come with maturity + large community bases, of which they have no reached. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can find a list of them on &lt;a href=&quot;http://en.wikipedia.org/wiki/Dependent_type&quot; rel=&quot;nofollow&quot;&gt;Wikipedia&lt;/a&gt;, which will at least let you filter out those that are not actively developed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What are you reasons for wanting to use a dependently-typed language for web development, etc?&lt;/p&gt;&#xA;" OwnerUserId="2673" LastActivityDate="2011-01-08T23:11:15.810" CommentCount="2" />
  <row Id="35002" PostTypeId="2" ParentId="34999" CreationDate="2011-01-08T23:11:29.893" Score="1" ViewCount="" Body="&lt;p&gt;Sounds like an excellent opportunity for pair programming, so the senior developer can mentor you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Complexity cannot be conquered fast so you must acquire it in your own pace.  Remember you &lt;em&gt;can&lt;/em&gt; eat an elephant, but you need to do it one bite at a time.  Unfortunately the official Java EE tutorial is not easy to learn from by yourself, so first of all, perhaps you should list what you actually &lt;em&gt;know&lt;/em&gt; well.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2011-01-08T23:11:29.893" CommentCount="2" />
  <row Id="35003" PostTypeId="2" ParentId="34963" CreationDate="2011-01-08T23:14:30.163" Score="0" ViewCount="" Body="&lt;p&gt;We just implemented SugarCRM for a project... but we found out &quot;in time&quot; that it is a (sugar coated) piece of sh1t and now we are catching up with a custom implementation. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Lesson here is: &lt;strong&gt;if it gives you time to catch up without messing your relation with your client, do it, but strive for plan B ASAP&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2011-01-08T23:14:30.163" />
  <row Id="35004" PostTypeId="2" ParentId="34963" CreationDate="2011-01-08T23:24:42.023" Score="0" ViewCount="" Body="&lt;p&gt;Are you planning on charging a fee? If so you need to decide if you can reasonably fix soon to be discovered bugs without your users wanting a refund. Until you release it, you won't know if anyone wants to use it so what good is clean code going to do beside boost your ego?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your secret is safe with us ;) &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-08T23:24:42.023" />
  <row Id="35005" PostTypeId="1" CreationDate="2011-01-08T23:27:42.437" Score="0" ViewCount="136" Body="&lt;p&gt;What do you think about the ways that people (ab)use the work hacking?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Most of my friends in (freshman year of) high school say things like:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I got someone's password by looking over their shoulder, and now I've hacked into their account.&lt;/li&gt;&#xA;&lt;li&gt;Oh my gosh, someone hacked into my account and deleted... (obvious phishing)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Do you not get annoyed at people who don't understand what hacking really is?&lt;/p&gt;&#xA;" OwnerUserId="11109" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2011-01-08T23:55:34.163" LastActivityDate="2011-01-08T23:55:34.163" ClosedDate="2011-01-09T00:12:55.630" Title="Aren't you annoyed at incorrect uses of 'being hacked'?" Tags="&lt;hacking&gt;" AnswerCount="3" CommentCount="5" FavoriteCount="1" />
  <row Id="35006" PostTypeId="2" ParentId="35005" CreationDate="2011-01-08T23:31:49.597" Score="1" ViewCount="" Body="&lt;p&gt;You can't force people to know as many things as you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why not accepting the vast majority of the humans are average and nobody will be as smart than you?&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-08T23:31:49.597" CommentCount="2" />
  <row Id="35007" PostTypeId="2" ParentId="35005" CreationDate="2011-01-08T23:40:01.957" Score="5" ViewCount="" Body="&lt;p&gt;No, couldn't care less. You don't refer to yourself as a hacker to people who won't know what you're talking about. It's like going to a local bar and telling the guys you're a sommelier. Tell them you handle the wine and order a beer so you don't get your butt kicked.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-08T23:40:01.957" CommentCount="1" />
  <row Id="35008" PostTypeId="2" ParentId="35005" CreationDate="2011-01-08T23:41:46.510" Score="2" ViewCount="" Body="&lt;p&gt;Correcting peoples' use of the word &quot;hack&quot; is a lost cause.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've attended the invitation-only Hackers' Conference intermittently since 1988. Some of our crew is still fighting for the 1950s-60s era definition of &quot;hack&quot; as &quot;pushing the technical envelope&quot;, but the &quot;digital burglary&quot; definition won the colloquial-language war at least twenty years ago.&lt;/p&gt;&#xA;" OwnerUserId="1696" LastActivityDate="2011-01-08T23:41:46.510" CommentCount="1" />
  <row Id="35009" PostTypeId="2" ParentId="33474" CreationDate="2011-01-08T23:58:12.567" Score="1" ViewCount="" Body="&lt;h1&gt;Tell them to use the tracker as their wishlist.&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;I have actually used Redmine and given access to clients so they can use it as their &lt;strong&gt;wishlist&lt;/strong&gt;, it has worked with some, but not with all, and it generally depends on their enthusiasm/involvement with the project.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another recommendation for a simpler and perhaps more engaging tracker is &lt;a href=&quot;http://www.pivotaltracker.com/&quot; rel=&quot;nofollow&quot;&gt;PivotalTracker&lt;/a&gt;. The interface is basically one dashboard with drag &amp;amp; drop for tasks. Very scrummy.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, you could try looking for scrum based project management tools (&lt;a href=&quot;http://en.wikipedia.org/wiki/Scrum_%28development%29&quot; rel=&quot;nofollow&quot;&gt;scrum&lt;/a&gt; is an agile project development methodology that puts special attention on communication with the client), such as &lt;a href=&quot;http://www.agile42.com/cms/pages/agilo/&quot; rel=&quot;nofollow&quot;&gt;Agilo&lt;/a&gt; and have them create &lt;strong&gt;&lt;em&gt;&quot;user stories&quot;&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Use a simpler customer feedback application&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Another apporach I've used is to put an &lt;a href=&quot;http://uservoice.com/&quot; rel=&quot;nofollow&quot;&gt;UserVoice&lt;/a&gt; tab in the frontend and/or backend, and this generally works better since it is a simpler interface (seems that Redmine can be too complex for some). The good thing about UserVoice is that you can actually handle items as tasks/features, giving &quot;planned&quot;, &quot;under review&quot;, &quot;started&quot;, etc.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2011-01-08T23:58:12.567" CommentCount="2" />
  <row Id="35010" PostTypeId="2" ParentId="33365" CreationDate="2011-01-09T00:02:18.853" Score="3" ViewCount="" Body="&lt;p&gt;The utlimate tool is probably &lt;a href=&quot;http://www.sparxsystems.com/products/index.html&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;Enterprise Architect&lt;/strong&gt;&lt;/a&gt; from &lt;strong&gt;Sparx Systems&lt;/strong&gt; which is fully integrated to both Eclipse and Visual Studio.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can synchronize your code with diagrams. Change your code and it will be reflected on diagrams. Change your diagrams and it will be reflected on code.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-09T00:02:18.853" CommentCount="2" />
  <row Id="35011" PostTypeId="2" ParentId="34227" CreationDate="2011-01-09T00:11:05.703" Score="3" ViewCount="" Body="&lt;h1&gt;You need a strong community before having strong developer momentum.&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Watch this talk by Jono Bacon called &lt;a href=&quot;http://www.youtube.com/watch?v=zKOrWubmzAY&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;The Engines of Community&lt;/strong&gt;&lt;/a&gt;, I think he has a book about this too.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ways you can achieve this is to use Google Groups (it is easy for the community to stay connected through email) and also by hosting and maintaining your code in a place like &lt;a href=&quot;https://github.com/&quot; rel=&quot;nofollow&quot;&gt;github&lt;/a&gt; or &lt;a href=&quot;http://www.bitbucket.org/&quot; rel=&quot;nofollow&quot;&gt;bitbucket&lt;/a&gt;. A forum (SMF, MyBB, phpBB) can be quite an useful tool too.&lt;/p&gt;&#xA;" OwnerUserId="10869" LastActivityDate="2011-01-09T00:11:05.703" CommentCount="1" />
  <row Id="35012" PostTypeId="2" ParentId="34227" CreationDate="2011-01-09T00:20:44.210" Score="2" ViewCount="" Body="&lt;p&gt;I think all the answers to your questions are in this book : &lt;a href=&quot;http://producingoss.com/&quot; rel=&quot;nofollow&quot;&gt;http://producingoss.com/&lt;/a&gt;&#xA;It's free to read online. &#xA;I'm reading it at the moment for almost the same questions. It's definitely an excellent source of information on the subject.&lt;/p&gt;&#xA;" OwnerUserId="1921" LastActivityDate="2011-01-09T00:20:44.210" />
  <row Id="35013" PostTypeId="1" CreationDate="2011-01-09T00:57:09.953" Score="1" ViewCount="152" Body="&lt;p&gt;I am C# developer with experience in programming Winform. Through education I learned Visual Basic, C, C++, Java and C#. With C, C++ and Java I have considerable experience in console applications.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From my current perspective, and what I did, what is it that I miss and what would I have to learn to become more complete programmer...&lt;/p&gt;&#xA;" OwnerUserId="12140" LastActivityDate="2011-01-09T03:54:11.133" ClosedDate="2011-01-09T14:34:32.313" Title="Winform programmer, what's next ?!" Tags="&lt;learning&gt;&lt;self-improvement&gt;&lt;programming&gt;&lt;programming-practices&gt;&lt;great-programmer&gt;" AnswerCount="5" />
  <row Id="35014" PostTypeId="2" ParentId="35013" CreationDate="2011-01-09T01:02:41.703" Score="3" ViewCount="" Body="&lt;p&gt;Almost completely personal preference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A lot of people get wrapped up in what they are doing then and then and forget what they are truly passionate about.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you had a choice of any task/topic/industry for programming, what would it be?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is stopping you for doing it? What would you need to learn?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Work that out and you have unlocked what &lt;strong&gt;you personally&lt;/strong&gt; need to be a more complete programmer.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;That aside, have you considered broadening your repertoire of languages/technologies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Perhaps something like &lt;strong&gt;PHP, Perl or Ruby&lt;/strong&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What about database technologies? Are you competent in &lt;strong&gt;SQL&lt;/strong&gt;? What about any of the &lt;strong&gt;NoSQL databases&lt;/strong&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It doesn't even have to be a language to become a more complete programmer. You could broaden your business knowledge of industry you work in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are so many things you can do to increase your worth, you just have to &lt;strong&gt;pick a direction&lt;/strong&gt; then find out what your current skill &lt;strong&gt;blind-spots&lt;/strong&gt; are.&lt;/p&gt;&#xA;" OwnerUserId="2673" LastEditorUserId="2673" LastEditorDisplayName="" LastEditDate="2011-01-09T01:08:06.427" LastActivityDate="2011-01-09T01:08:06.427" CommentCount="3" />
  <row Id="35015" PostTypeId="2" ParentId="33365" CreationDate="2011-01-09T01:05:20.903" Score="4" ViewCount="" Body="&lt;p&gt;IntelliJ Idea &lt;a href=&quot;http://www.jetbrains.com/idea/features/uml_class_diagram.html&quot; rel=&quot;nofollow&quot;&gt;is able&lt;/a&gt; to show UML class diagrams of Java code on the fly:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://www.jetbrains.com/idea/features/screenshots/90/uml/Quick-Class-Hierarchy.jpg&quot; alt=&quot;screenshot&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="11732" LastActivityDate="2011-01-09T01:05:20.903" CommentCount="3" />
  <row Id="35016" PostTypeId="2" ParentId="34993" CreationDate="2011-01-09T01:09:37.173" Score="2" ViewCount="" Body="&lt;p&gt;Probably &lt;a href=&quot;http://wiki.portal.chalmers.se/agda/pmwiki.php&quot; rel=&quot;nofollow&quot;&gt;Agda&lt;/a&gt; is the most alive of these, but it's hardly 'commercial grade' software yet, it's more 'bleeding edge'.&lt;/p&gt;&#xA;" OwnerUserId="11732" LastActivityDate="2011-01-09T01:09:37.173" />
  <row Id="35017" PostTypeId="2" ParentId="35013" CreationDate="2011-01-09T01:17:31.130" Score="2" ViewCount="" Body="&lt;p&gt;You can consider learning WPF as a natural extension of WinForms develpment. You can also go in a totally different direction and learn web development with something like Ruby or PHP, or sticking with .NET learning ASP.NET MVC would be great to learn as well. Really it's more about what kinds of skills do you want to improve.&lt;/p&gt;&#xA;" OwnerUserId="12242" LastActivityDate="2011-01-09T01:17:31.130" />
  <row Id="35018" PostTypeId="2" ParentId="34867" CreationDate="2011-01-09T01:21:51.570" Score="4" ViewCount="" Body="&lt;p&gt;As someone who's been an amateur freelance writer (of sorts) and gone through writer's block before, here are my thoughts:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I essentially agree with MrTelly. But just to make it loud and clear: programmers block and writers block are different beasts because they actually come from different causes. Programmer's block is, in most cases, a technical issue of being too close to a problem and &quot;not seeing the forest for the trees&quot;, and convincing yourself that you're on the right track. ie Not stepping back far enough to consider an alternative solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Writer's block, on the other hand, is almost always a case of lack of inspiration.  After writing, say, 50 pages on a given subject, you just feel like you've exhausted it, and like anything else you have to say will just be padding and/or rehashing the same subject matter in slightly different ways. But you still have a contract (figurative/internal or actual) to write another 50 pages, and you just don't know where this is going to come from, because your brain and soul are simply spent on dealing with the subject at hand.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;All that said, early stage &lt;strong&gt;burnout&lt;/strong&gt; can also feel like you have programmer's block. This is a whole other animal though, and has subtly different symptoms. But I thought it's worth a mention, because feeling like you have programmer's block is one of the early warning signs of burnout - most often accompanied by apathy (ie No longer truly caring about solving the problem, and just wishing it would all go away. And feeling like the job/project itself is totally pointless.)&lt;/p&gt;&#xA;" OwnerUserId="5064" LastActivityDate="2011-01-09T01:21:51.570" />
  <row Id="35019" PostTypeId="2" ParentId="34867" CreationDate="2011-01-09T01:31:47.930" Score="1" ViewCount="" Body="&lt;p&gt;I guess they are similar in you can't get your work done, but as a programmer, it's easier to go to colleagues or the Net and look for solutions and/or get help. Not sure a writer has this luxury. If you're in a funk, and know what to do but just can't get yourself to crank out code, it may be more of a sign of burn-out.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-09T01:31:47.930" CommentCount="1" />
  <row Id="35020" PostTypeId="1" AcceptedAnswerId="35023" CreationDate="2011-01-09T01:57:23.687" Score="2" ViewCount="837" Body="&lt;p&gt;I know that Eclipse is a universal IDE and variety of plugins are available to scale it. What is the difference between: The original Eclipse IDE, Aptana and NetBeans. I looked into Wikipedia and came to know that the latter two originate from the main Eclipse. For Aptana specially, what was the need to reproduce a new variant that resembles too much with its base IDE?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your preferred choice is Eclipse itself, what makes it unique as compared to the other two.&lt;/p&gt;&#xA;" OwnerUserId="6001" LastActivityDate="2011-01-09T03:52:56.927" Title="Eclipse vs. Aptana" Tags="&lt;eclipse&gt;&lt;netbeans&gt;&lt;aptana&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="35023" PostTypeId="2" ParentId="35020" CreationDate="2011-01-09T02:51:58.127" Score="3" ViewCount="" Body="&lt;p&gt;Eclipse was originally created as a platform for IDEs. There are many IDEs based on Eclipse and each of them is targeted to a particular niche. The original Eclipse download contained the base platform plus JDT (Java Development Tools) and that misled many people to think Eclipse was only a Java IDE.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With relation to &quot;...a new variant that resembles too much with its base IDE...&quot; I guess I can explain that because Eclipse based IDEs simply extend the base Eclipse through plug-ins. So they all follow the same UI guidelines and inherit a lot of the base functionality and look and feel.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now I don't have much experience with Aptana or Netbeans but Aptana seems to be targeted to web development and Netbeans seems to be another platform similar to Eclipse.&lt;/p&gt;&#xA;" OwnerUserId="11219" LastActivityDate="2011-01-09T02:51:58.127" CommentCount="3" />
  <row Id="35024" PostTypeId="2" ParentId="13757" CreationDate="2011-01-09T02:54:49.947" Score="1" ViewCount="" Body="&lt;p&gt;Watching the NFL Playoffs and saw that Audible Pepsi commercial and they said “backslash” and i about flipped! I get really bothered by this, so i decided to look it up and see if I’m the only one. Glad to see I’m not! What really bothers me is if you don’t even know, why would you even say “back” before you say “slash”? If I don’t know what color my boss’s car is but I know it’s a, say, Grand Am, I’m not going to say “My boss will be showing up in a red Grand Am.” I’d leave the “red” out of it! If you don’t know, just leave the “back” out of it!  I wouldn't mind as much if they called a backslash a &quot;slash&quot;, at least it's some kind of slash!  What do they call a backslash?  Sorry, it’s a pet peeve.&lt;/p&gt;&#xA;" OwnerUserId="12722" LastActivityDate="2011-01-09T02:54:49.947" CommunityOwnedDate="2011-01-09T02:54:49.947" CommentCount="2" />
  <row Id="35025" PostTypeId="2" ParentId="34867" CreationDate="2011-01-09T02:55:28.437" Score="1" ViewCount="" Body="&lt;p&gt;For me is usually bacuse, I've just had one too many nasty bugs to chase down, and I'm worried about making more blunders. Then, if I have avoided finishing a particular piece of code for a while, I end up with a great deal of anxiety about picking it back up. And the funny thing, is that that anxiety is there even if my break from finishing it had nothing to do with the difficulty of the task (often I had a higher priority task to do first). This is about more than the cost of the mantal context switch. I think it has to do with fear of making a mess of things. I think that fear may be warranted, because as programmers we are smart people interested in efficiently doing a task -and that means we take mental shortcuts. And most bugs are found to be caused by mental shortcuts. And the cost of finding a fixing them is orders of magnitude greater then the effort saved by the shortcut.&lt;/p&gt;&#xA;" OwnerUserId="8651" LastActivityDate="2011-01-09T02:55:28.437" />
  <row Id="35026" PostTypeId="2" ParentId="10804" CreationDate="2011-01-09T03:01:17.943" Score="3" ViewCount="" Body="&lt;p&gt;I've left a few other comments against other answers, but I'll generalise a simple answer here:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your professional development is your business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your employer (if switched on and not a nut-case) is interested in ultimately only 2 things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;getting the work done&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;avoiding excessive staff turnover due to the associated costs&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So they issue they face is how to achieve that. Employers generally expect a level of competence, and a certain amount of output. YOU are responsible for both but the employer can also help you to do this, for, by example&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;sensible work hours&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;a sensible working environment&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;sensible pay (to avoid paying peanuts / getting monkeys)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;encouraging communication and cooperation amongst the employees (up to a point, a day a week of lovely communication about what you did on the weekend is not really acceptable)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;and a certain amount of encouragement for investigation, improvement and keeping up to date.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Note on this last that its a certain amount (how much?) and its encouragement.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your employer may choose books but will struggle to force you to read them. Your employer may send you on courses but struggle to get you to stay awake or pay attention.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end it comes down to you figuring what you need and seeking some support - for example attending a conference or course, or buying a book that will help you DO YOUR WORK BETTER. You need to make a case and ask for management support and money. Sometimes you will get it, sometimes you won't. Some managers have a culture and an expectation that their people need training / education, some don't. Some expect it but want the people to find it for themselves (thats all about not spoon feeding people who are supposed to be adults).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When it comes to reading blogs, magazines, etc - there is a REALLY FINE LINE between educating yourself and goofing off.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are reading windows material on MSDN, its probably job related. If you are reading Electronic Design magazine, it could be job related. If you are reading XKCD or the rantings of a former drug lord, then its not work related.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The difficulty you have here is perception: if it looks like you have a web browser open reading stuff that looks like a blog, the only person who knows if its work-related or not is you. If you are caught doing what looks like goofing off, YOU have the problem because you created the perception.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the end, things that look like formal education or are clearly work related (reading manual pages, etc): work time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Courses, etc, if you can justify them: work time. (But more below).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reading blogs and things that you are curious about but not directly related to work: YOUR OWN TIME.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Just a note about courses and conferences: Some have an attitude that they work 8 hours a day and get paid for it, so a conference that runs 8 hours and has a dinner that evening... well thats extra time (to take off later to make it up). Similarly, if you have to travel in the evening or on a weekend... the company should make that up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well - just remember that you get something from this kind of education as well - so its pretty rich to expect the company to spring for the course, the travel, the accommodation, and then to give you time off to make up for an evening dinner (that they paid for); and similarly that they make up your travel time on a Sunday or one evening.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's give and take... and its reasonable in these cases to just treat your time that you lost as tough luck... gone... because you get the benefits long after leaving that employer and going somewhere else.&lt;/p&gt;&#xA;" OwnerUserId="6279" LastActivityDate="2011-01-09T03:01:17.943" />
  <row Id="35027" PostTypeId="1" CreationDate="2011-01-09T03:22:21.607" Score="4" ViewCount="457" Body="&lt;p&gt;I dont know, i want to know what you think. Do you think Go is a great language or incredibly dull, boring or any other word you want?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I gave it a chance and i feel like its meant for newbies and not for power users like me (i like my C and i like it well. But i also love my C# and my lambda's with tasty LINQ). What do you guys think?&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2011-02-01T02:03:22.350" ClosedDate="2011-01-09T14:28:24.337" Title="Is Go (Language) Incredible? Or Incredibly dull?" Tags="&lt;go&gt;" AnswerCount="2" CommentCount="3" />
  <row Id="35028" PostTypeId="2" ParentId="35027" CreationDate="2011-01-09T03:25:22.953" Score="2" ViewCount="" Body="&lt;p&gt;It takes the language authors' favorite parts of JavaScript, Java, C# and Python and combines them into a pretty coherent language with nice features.  It's a well put-together language ... I'm just not sure why I need it.&lt;/p&gt;&#xA;" OwnerUserId="6677" LastEditorUserId="6677" LastEditorDisplayName="" LastEditDate="2011-02-01T02:03:22.350" LastActivityDate="2011-02-01T02:03:22.350" CommentCount="2" />
  <row Id="35029" PostTypeId="2" ParentId="35013" CreationDate="2011-01-09T03:34:45.393" Score="1" ViewCount="" Body="&lt;p&gt;If I were you I'd look into supporting multithreading/multicore, including parallel.net and reactive extensions. It's becoming increasingly important and will be crucial knowledge in the future&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you know windows forms I'd learn WPF  and/or Silverlight/Windows Phone to learn about vectorbased/animated ui's. Silverlight is pretty much a subset of WPF so you can reuse the knowledge for either. Silverlight seems what's picking up speed right know with Microsoft's push in Windows Phone though&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you want a brand new perspective on programming, try going fully functional with F#&lt;/p&gt;&#xA;" OwnerUserId="12354" LastActivityDate="2011-01-09T03:34:45.393" />
  <row Id="35030" PostTypeId="2" ParentId="35013" CreationDate="2011-01-09T03:51:51.093" Score="1" ViewCount="" Body="&lt;p&gt;I'd say your fine as long as you know some IPC (launching other programs, getting their stdout,stderror and giving them stdin, named pipes) some shell scripting (if your on linux, bit not windows), regular expressions (if you can easily grab every poster name then you know the basic pretty well but dont ever try to parse html with regex) and http communication. I often have my app communicate with my server via http and json (i like json rather then regex). With C# &lt;a href=&quot;http://atsung.wordpress.com/2008/08/07/javascriptserializer-example/&quot; rel=&quot;nofollow&quot;&gt;json is ridiculously easy&lt;/a&gt;. (bonus note, i use &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.net.webclient%28v=vs.80%29.aspx&quot; rel=&quot;nofollow&quot;&gt;WebClient&lt;/a&gt; most of the time for http communication)&lt;/p&gt;&#xA;" OwnerUserId="2528" LastActivityDate="2011-01-09T03:51:51.093" />
  <row Id="35032" PostTypeId="2" ParentId="35013" CreationDate="2011-01-09T03:54:11.133" Score="1" ViewCount="" Body="&lt;p&gt;What you will learn eventually is that it does not matter.  Once you've done enough different things, it's all the same wine in a brand new bottle.  Pick a direction that you have passion for and just go.&lt;/p&gt;&#xA;" OwnerUserId="9251" LastActivityDate="2011-01-09T03:54:11.133" />
  <row Id="35033" PostTypeId="1" AcceptedAnswerId="35036" CreationDate="2011-01-09T04:12:42.347" Score="1" ViewCount="69" Body="&lt;p&gt;By now everyone is aware of the massive boom in social-networking (Twitter, Facebook, LinkedIn) and obviously a big part of its business model revolves around being able to mine this data to create information that can be used to make money for someone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.thedailyrecruiter.com/the-daily-recruiter-blog/gartner-identifies-the-top-10-strategic-technologies-for-201.html&quot; rel=&quot;nofollow&quot;&gt;Gartner&lt;/a&gt; has identified '&lt;a href=&quot;http://socialanalyticsassociation.org/&quot; rel=&quot;nofollow&quot;&gt;Social Analytics&lt;/a&gt;' as one of the top 10 strategic technologies for 2011.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Has anyone looked at their existing data structures to determine if they could extract a social graph and then perform further data mining against this?&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;How does it fit in with your other strategic development strategies?&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;What information are you trying to extract from the data?&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Take for example, a bank. They could conceivably determine a social graph through account relationships and transactions. Obviously there would be open edges on the graph where funds enter/leave the institute, but that shouldn't detract from the usefulness of the data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;I'm looking for actual examples with the answers, as well as why/how they did it. References to other sites will be greatly appreciated.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Note: I'm not at all referring to mining data out of actual social networks.&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="2673" LastEditorUserId="2673" LastEditorDisplayName="" LastEditDate="2011-01-09T04:24:03.823" LastActivityDate="2011-01-09T05:27:56.123" Title="Social Analytics in your current data" Tags="&lt;data-mining&gt;&lt;social-analytics&gt;" AnswerCount="1" CommentCount="5" />
  <row Id="35034" PostTypeId="2" ParentId="32534" CreationDate="2011-01-09T05:04:40.153" Score="0" ViewCount="" Body="&lt;p&gt;To find a partner of this type you need to develop a relationship with someone such that they are absolutely convinced that you know how to create and run a successful and profitable software project far better than they can.  Or you bring something else extremely valuable to the table, such as willing investors with mucho cash, or a killer patent portfolio.  It helps to either have a proven track record and recommendations from colleagues in common, or the ability to produce a Steve Jobs class reality distortion field.  Enjoy.&lt;/p&gt;&#xA;" OwnerUserId="9742" LastActivityDate="2011-01-09T05:04:40.153" />
  <row Id="35035" PostTypeId="2" ParentId="34970" CreationDate="2011-01-09T05:15:53.797" Score="0" ViewCount="" Body="&lt;p&gt;I would use Codeigniter. It's the least like a framework in comparison to Zend, Kohana, Yii, Cake, Symfony and any other known PHP framework. It has a small footprint, it is dead easy to learn and really powerful. The only downside is no out-of-the-box ACL, but there are many great pre-written libraries out there to add that in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been using it for quite a while now and have written both small and very large applications on it. And when I say large I mean almost enterprise type of large. Due to NDA's I cannot say exactly what, but trust me, Codeigniter has no limit in terms of what can be done with it.&lt;/p&gt;&#xA;" OwnerUserId="12724" LastActivityDate="2011-01-09T05:15:53.797" />
  <row Id="35036" PostTypeId="2" ParentId="35033" CreationDate="2011-01-09T05:27:56.123" Score="1" ViewCount="" Body="&lt;p&gt;I worked on a set a internal business applications that had a smaller set of users (about 100).  The applications were flexible tools that might have different uses depending on the users objectives. We tracked many user actions and stored them in a database.  Basically when a user committed an action that required retrieving or update the database we added a log for that activity.   &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The analysis on the data has mostly been grouping people together based on how they used the tool and looking to see if they were in the same department and or role. This allowed us to target new features to what we saw people were trying to do and helped us understand areas that departments might have overlap.&lt;/p&gt;&#xA;" OwnerUserId="12586" LastActivityDate="2011-01-09T05:27:56.123" CommentCount="1" />
  <row Id="35037" PostTypeId="1" CreationDate="2011-01-09T06:08:34.537" Score="0" ViewCount="108" Body="&lt;p&gt;Java is one of the best language, but after Oracle has bought Sun it might try to go for some standardization (Like MS) and it might take Java away from programmers. Java is popular because it has no limits and i think Oracle is gonna set the limits to get some standards.&#xA;Oracle is no longer supporting Eclipse (IBM) and political game is being played be both camps:&#xA;1. What is the future of Java?&#xA;2. Do you think it will be in same class as .NET family (C# etc.)?&#xA;3. Will MS get benefits from this internal fight? &lt;/p&gt;&#xA;" OwnerUserId="12694" LastActivityDate="2011-01-09T06:08:34.537" ClosedDate="2011-01-09T06:36:57.737" Title="Is Oracle a threat to Java?" Tags="&lt;programming-languages&gt;" CommentCount="1" />
  <row Id="35038" PostTypeId="1" CreationDate="2011-01-09T07:07:03.900" Score="39" ViewCount="1693" Body="&lt;p&gt;Yesterday I had a terrible experience in an interview.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Interviewer asked me about pure virtual function.&#xA;I said, It may or may not have definition in base class, but derived classes should provide definition unless they also want to be abstract class.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But interviewer kept on asking that &quot;Can pure virtual have definition !!! ???&quot;...&#xA;I said yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Again he said &quot;Pure ?&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I said yes. It is allowed, derived classes can explicitly call that function if they want that particular behavior.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;He sent me out.&#xA;I am sure that he doesn't know the fact that pure virtual function can have definition.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How to deal with this kind of Interviewers ?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After asking 2nd time, should i lie that it can't have definition ? :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Or i should stick to my words and loose the job opportunity ?&lt;/p&gt;&#xA;" OwnerUserId="12729" LastActivityDate="2011-01-30T18:35:52.243" Title="What can I do when the interviewer doesn't know the answer to his/her own question?" Tags="&lt;c++&gt;&lt;career&gt;&lt;interview-questions&gt;" AnswerCount="11" CommentCount="15" FavoriteCount="3" />
  <row Id="35039" PostTypeId="2" ParentId="35038" CreationDate="2011-01-09T07:09:42.250" Score="10" ViewCount="" Body="&lt;p&gt;You could've explained how to declare a pure virtual function that has an implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, I wish you would here because I'm not familiar with how to do that either.&lt;/p&gt;&#xA;" OwnerUserId="17425" LastActivityDate="2011-01-09T08:27:01.623" CommentCount="6" />
  <row Id="35040" PostTypeId="2" ParentId="35038" CreationDate="2011-01-09T07:10:22.140" Score="1" ViewCount="" Body="&lt;p&gt;EDIT: apparently I'm totally wrong, see comments below this answer. Leaving the answer here for educational purposes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sadly, you are mistaken. A &lt;em&gt;virtual&lt;/em&gt; function may have a definition; a &lt;em&gt;pure virtual&lt;/em&gt; function may not. The lack of definition is what makes it pure.&lt;/p&gt;&#xA;" OwnerUserId="12688" LastActivityDate="2011-01-09T08:27:01.623" CommentCount="4" />
  <row Id="35041" PostTypeId="2" ParentId="35038" CreationDate="2011-01-09T07:10:58.273" Score="68" ViewCount="" Body="&lt;p&gt;No.  And you should thank your lucky stars that you got missed by that particular bullet.  Working for people who refuse to admit that they might not know everything, and refuse to learn from others, is a VERY unpleasant experience.&lt;/p&gt;&#xA;" OwnerUserId="9293" LastActivityDate="2011-01-09T08:27:01.623" CommentCount="4" />
  <row Id="35042" PostTypeId="2" ParentId="35038" CreationDate="2011-01-09T07:13:24.280" Score="1" ViewCount="" Body="&lt;p&gt;You know that whatever you answered is right. In my opinion you did a good job by sticking to your answer since you were right. There is no need to lie because if not today some other time interviewer will learn about pure virtual functions!!!!..He might be testing you as well to check how firm are you in your decisions? Are you the person who gets carried away easily?there is no need to loose hope, since you know u r right&lt;/p&gt;&#xA;" LastActivityDate="2011-01-09T08:27:01.623" />
  <row Id="35043" PostTypeId="2" ParentId="35038" CreationDate="2011-01-09T07:13:29.070" Score="34" ViewCount="" Body="&lt;p&gt;Example of a pure virtual function with a definition:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;// object.hpp&#xA;struct object&#xA;{&#xA;    // virtual destructor, to allow use as a public base class,&#xA;    // but pure to ensure object itself isn't instantiated&#xA;    virtual ~object() = 0; &#xA;};&#xA;&#xA;inline object::~object()&#xA;{&#xA;    // empty implementation&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="6503" LastActivityDate="2011-01-09T08:27:01.623" CommunityOwnedDate="2011-01-09T07:13:29.070" CommentCount="4" />
  <row Id="35044" PostTypeId="2" ParentId="35038" CreationDate="2011-01-09T08:24:35.347" Score="32" ViewCount="" Body="&lt;p&gt;The issue at hand is not technical correctness, but social / communication skills. Stand firm, but acknowledge the interviewer's point of view and allow them to save face.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Once you can see what he was fishing for (&quot;pure?&quot; is a good clue), a good answer may be:&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;It is commonly thought that &lt;em&gt;pure&lt;/em&gt;  virtual functions cannot have a definition. However, technically speaking, a for the virtual function to be pure, it must have &lt;code&gt;=0&lt;/code&gt; in the declaration. It can still have a definition (try it, it will compile!). Of course, this is rarely used, and in practice when most people say &quot;pure virtual&quot; they imply the definition is absent.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2193" LastActivityDate="2011-01-09T08:27:01.623" CommentCount="5" />
  <row Id="35046" PostTypeId="2" ParentId="34999" CreationDate="2011-01-09T08:42:12.937" Score="1" ViewCount="" Body="&lt;p&gt;I personally find that working with demos help me acquire new technologies.  I would suggest you go to the WebSphere website and download their sample web applications and try to build them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These demos are usually built by the developers of the frameworks to demonstrate what they believe to be best practices in the use of their frameworks.  Thus, this will help you learn best practices.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll also learn a lot on the job, but I think exploring the demos is important because you'll run into some coding practices in your organization that may not be best practices, and it's important that you learn to tell the difference so you can avoid picking up bad habits.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While exploring one of the demo apps, if you come across something you don't understand, just remember that Google is your friend.  The answer can generally be found by Googling it :)&lt;/p&gt;&#xA;" OwnerUserId="12611" LastActivityDate="2011-01-09T08:42:12.937" />
  <row Id="35048" PostTypeId="2" ParentId="610" CreationDate="2011-01-09T09:31:11.303" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Scala:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The syntax for constructor parameters:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Color(val r: Int, val g: Int, val b: Int){&#xA;   //Example method:&#xA;   def luminosity = (r + g + b) / 3&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Compare this with the Java equivalent:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;public class Color{&#xA;   public final int r, g, b;&#xA;&#xA;   public Color(int _r, int _g, int _b){&#xA;     r = _r;&#xA;     g = _g;&#xA;     b = _b;&#xA;   }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The Java class is much longer than the Scala class without even defining a method.  Each field has to be mentioned 4 times.  Note that this Java example is generous, since I could write &lt;code&gt;public final int r, g, b&lt;/code&gt; all on one line due to the fact that they all share the same type and access modifiers.  Even Python and Ruby aren't this concise with constructors - they only cut out the field declarations, reducing the repetition factor to 3 instead of 4.&lt;/p&gt;&#xA;" OwnerUserId="12726" LastActivityDate="2011-01-09T09:31:11.303" CommunityOwnedDate="2011-01-09T09:31:11.303" />
  <row Id="35049" PostTypeId="1" AcceptedAnswerId="35050" CreationDate="2011-01-09T09:31:59.670" Score="11" ViewCount="785" Body="&lt;p&gt;I have a regular, standard, workplace: a desk, a chair an LCD monitor, a mouse and a keyboard. I would like to have the ability to work while standing. I have the feeling that my employer will not will to buy an adjustable desk, instead of the existing one, so I would like to have your help with ideas on how to convert a workplace to a &quot;standable&quot; one on as low budget as possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I saw &lt;a href=&quot;http://programmers.stackexchange.com/questions/14622/anyone-using-a-standing-desk&quot;&gt;this discussion&lt;/a&gt;, but the solutions proposed there are way above my &quot;low budget&quot; definition&lt;/p&gt;&#xA;" OwnerUserId="12728" LastEditorUserId="12728" LastEditorDisplayName="" LastEditDate="2011-01-09T09:49:47.267" LastActivityDate="2011-03-06T11:27:58.947" Title="Code while standing" Tags="&lt;work-environment&gt;&lt;desk&gt;" AnswerCount="10" CommentCount="12" FavoriteCount="7" />
  <row Id="35050" PostTypeId="2" ParentId="35049" CreationDate="2011-01-09T09:49:34.730" Score="5" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/hy46c.jpg&quot; alt=&quot;Ikea Fredrik&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Standing is supposed to be a great way to improve productivity as well as save your back. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I purchased the Ikea Fredrik on Craigslist for $70.  It's a low-cost standup workstation that adjusts to fit you.  I like how there are shelves for a monitor.  They say it's bad to look down while standing.  This supposedly helps maintain your posture.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I also hear it's a good idea to put a mat on the floor where you stand or even put a bar stool behind you to lean on occasionally. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately, I have yet to put this together as I'm a bit of a procrastinator.  But I might do that this weekend now that you've brought this up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are two versions of the Ikea Fredrik at Ikea:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;$119 - Approximately 58 inches tall / 149cm&lt;br&gt;&#xA;&lt;a href=&quot;http://www.ikea.com/us/en/catalog/products/00115992&quot; rel=&quot;nofollow&quot;&gt;http://www.ikea.com/us/en/catalog/products/00115992&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;$149 - More width and depth, but the heights are the same&#xA;&lt;a href=&quot;http://www.ikea.com/us/en/catalog/products/60111123&quot; rel=&quot;nofollow&quot;&gt;http://www.ikea.com/us/en/catalog/products/60111123&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="12611" LastEditorUserId="12611" LastEditorDisplayName="" LastEditDate="2011-03-06T07:27:24.670" LastActivityDate="2011-03-06T07:27:24.670" CommentCount="3" />
  <row Id="35052" PostTypeId="1" CreationDate="2011-01-07T07:23:46.820" Score="4" ViewCount="65" Body="&lt;p&gt;I'm working on a large class and started implementing new features that need graphics. I started writing the graphics functions myself, but I know that open source libraries exist that can provide me with this functionality without me having to write it myself. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is that I prefer the class to be self-sufficient and not dependent on any other library. If I don't write it myself, I would have to ask the user to make sure a graphics library is already installed (less user-friendly). If I write it myself, I do a lot more work than I have to. I could also copy/paste some of the relevant code into my own class, but not sure about the disadvantages of doing this (it's an open source library that matches my license, so I'm not concerned with legality, just programming-wise if there are disadvantages).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what should I do: &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;copy paste code from the external library&lt;/li&gt;&#xA;&lt;li&gt;write the code myself so it's truly self-sufficient&lt;/li&gt;&#xA;&lt;li&gt;ask the user to download and install another library &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5794" LastActivityDate="2011-01-09T10:02:30.943" Title="Depending on another open source library: copy/paste code or include" Tags="&lt;php&gt;&lt;graphics&gt;&lt;imagemagick&gt;&lt;gd&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="35053" PostTypeId="2" ParentId="35052" CreationDate="2011-01-07T07:28:49.187" Score="4" ViewCount="" Body="&lt;p&gt;I think if it's a relatively small piece of code that you need (say less than 300 lines) and you can understand all the code your copying and pasting it's fine to do so and avoids the problems your mentioning however if there's a possibility that new features would be added or bugs would be fixed that you could benefit from then just using a reference to the library would be better, I think this is another kind of question that depends a lot on the particulars of the scenario.  Copying and pasting is bad practice if you're doing it a lot within your own code base because it means your not properly re-using or arranging the communication between your objects, but copying from somewhere else so long as you understand the code and it's legal is fine IMHO.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-09T10:02:30.943" />
  <row Id="35054" PostTypeId="2" ParentId="35052" CreationDate="2011-01-07T07:30:00.960" Score="0" ViewCount="" Body="&lt;p&gt;I would not say disadvantage because you can see and use the code as you like. But I would rather say &lt;strong&gt;&lt;code&gt;slight difficulty&lt;/code&gt;&lt;/strong&gt; as you haven't created that library yourself, you would have to research and study the code to understand how it is working, so that you can modify it as you like(i.e. if you are authorised to modify the code).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, actually it depends on how you intend to use the code&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If the featured in the library is enough for you then just COPY / Paste&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you only want some features from that library, then study the code and extract the particular piece and update your own library, that is much better&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strong&gt;THIRD OPTION IS BAD DONT DO IT&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="9266" LastActivityDate="2011-01-09T10:02:30.943" />
  <row Id="35055" PostTypeId="2" ParentId="35052" CreationDate="2011-01-07T07:32:13.533" Score="6" ViewCount="" Body="&lt;p&gt;Most opensource libs allow you to publish them together with your own code.&#xA;You can bundle your class with all the code required to run it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you just cut out and modify pieces you can run into serious issues if the user wants to include the lib in the future.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please keep in mind that in object oriented programming every class should have a clearly defined role. If your class has multiple roles and does many things you should probably break it in many different classes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having one &quot;self sufficient&quot; block is absolutly NOT desireable!&lt;/p&gt;&#xA;" OwnerUserId="10792" LastActivityDate="2011-01-09T10:02:30.943" />
  <row Id="35056" PostTypeId="2" ParentId="35049" CreationDate="2011-01-09T10:06:00.590" Score="0" ViewCount="" Body="&lt;p&gt;If you can still find them in your area, the roll around adjustable 'printer stands' make a great work surface that you can put next to your desk. You can get lots of great ideas on how to 'improve' one by visiting the electrical conduit / fastener section of your local building supply store.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As said by others, it is a good idea to keep your monitor as close to eye level as possible, or the love you give to your back comes at the expense of your neck. Additionally, you can mount a monitor directly to the wall, and just put the printer cart beneath it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm sure that you could come up with some kind of kludge rather cheaply. Perhaps, if your boss sees your effort into making something work (or can't stand the amount of duct tape now on display), he or she will just buy you the desk that you really want.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2011-01-09T10:06:00.590" />
  <row Id="35057" PostTypeId="2" ParentId="610" CreationDate="2011-01-09T10:13:08.833" Score="1" ViewCount="" Body="&lt;p&gt;Plain old &lt;code&gt;for&lt;/code&gt;-loop:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for (int i = 0; i &amp;lt; length; ++i)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Wherever I can, I use it instead of the &lt;code&gt;while&lt;/code&gt; loop, because:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1.) It minimizes the scope of variables&#xA;2.) It puts everything (declaration, initialization, increment,...) in one place.&lt;/p&gt;&#xA;" OwnerUserId="1320" LastActivityDate="2011-01-09T10:13:08.833" CommunityOwnedDate="2011-01-09T10:13:08.833" />
  <row Id="35058" PostTypeId="2" ParentId="35049" CreationDate="2011-01-09T10:24:37.157" Score="4" ViewCount="" Body="&lt;p&gt;Can you back up your request with medical advice, or demonstrate that sitting down is sub-optimal for you?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the UK the employer would be bound to purchase on grounds of &quot;Health and Safety&quot;. Incidentally, you wouldn't be allowed to provide your own. In my work (Switzerland), several people have adjustable desks that allow them to stand up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Do such rules exist in &quot;IL&quot;? &#xA;If this is Illinois, USA, can you also rely on your nation's (in)famous tort laws if you can justify your request as per my first sentence&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2011-01-09T10:24:37.157" CommentCount="2" />
  <row Id="35059" PostTypeId="2" ParentId="35049" CreationDate="2011-01-09T10:24:48.987" Score="3" ViewCount="" Body="&lt;p&gt;Here is another option that I've considered getting for work:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/p659L.jpg&quot; alt=&quot;Speedy Stand Up Portable&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As you can see, he's looking down slightly, but for $60 you actually get something that will allow you to easily convert from standing to seated!  The Ikea Fredrik (see other answer) is a fixed setup that requires you to take everything off the desk in order to adjust it.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend this for anyone who is hesitant to try standing or as a tool to get used to standing by only doing it for a few hours per day until you get used to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;More information can be found here:&#xA;&lt;a href=&quot;http://www.lampsusa.com/index.asp?PageAction=VIEWPROD&amp;amp;ProdID=80196&quot; rel=&quot;nofollow&quot;&gt;http://www.lampsusa.com/index.asp?PageAction=VIEWPROD&amp;amp;ProdID=80196&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="12611" LastEditorUserId="12611" LastEditorDisplayName="" LastEditDate="2011-03-06T07:28:00.100" LastActivityDate="2011-03-06T07:28:00.100" CommentCount="1" />
  <row Id="35060" PostTypeId="2" ParentId="35038" CreationDate="2011-01-09T10:28:57.840" Score="4" ViewCount="" Body="&lt;p&gt;I've been in interviews where I knew more than my interviewer. However, they wanted someone to fill a role and had no-one (of course) who could interview at that level.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your case, do you feel it was blind ignorance, or genuine misunderstanding? Perhaps a follow up email with examples and references: see how they react before deciding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I tend towards the &quot;blind ignorance&quot; though based on your question and would stay well clear...&lt;/p&gt;&#xA;" OwnerUserId="5905" LastActivityDate="2011-01-09T10:28:57.840" CommentCount="4" />
  <row Id="35061" PostTypeId="2" ParentId="610" CreationDate="2011-01-09T10:29:38.027" Score="3" ViewCount="" Body="&lt;p&gt;I work mostly with C, which makes me appreciate &lt;code&gt;foreach()&lt;/code&gt; quite a bit since it is lacking in my primary language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, you can implement something a lot like it, with limitations, but it just isn't the same.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2011-01-09T10:29:38.027" CommunityOwnedDate="2011-01-09T10:29:38.027" />
  <row Id="35062" PostTypeId="1" CreationDate="2011-01-09T10:29:47.050" Score="3" ViewCount="120" Body="&lt;p&gt;What are some good practices for keeping a LAMP dev server in sync with the production one? More specifically, how do you ensure that the software on both machines is identical?&lt;/p&gt;&#xA;" OwnerUserId="2100" LastActivityDate="2011-01-09T10:52:58.350" ClosedDate="2011-01-09T17:25:19.183" Title="How do you keep your dev server in sync with your production server?" Tags="&lt;best-practices&gt;&lt;development-process&gt;" AnswerCount="1" CommentCount="4" FavoriteCount="2" />
  <row Id="35063" PostTypeId="1" CreationDate="2011-01-09T10:31:24.257" Score="11" ViewCount="330" Body="&lt;p&gt;What are some techniques for updating a production server's code base / database schema without causing any downtime?&lt;/p&gt;&#xA;" OwnerUserId="2100" LastEditorUserId="149" LastEditorDisplayName="" LastEditDate="2011-01-09T11:19:45.327" LastActivityDate="2011-04-08T21:28:49.213" Title="How do you update your production codebase/database schema without causing downtime?" Tags="&lt;best-practices&gt;&lt;deployment&gt;" AnswerCount="4" CommentCount="3" FavoriteCount="6" />
  <row Id="35064" PostTypeId="2" ParentId="35063" CreationDate="2011-01-09T10:41:32.537" Score="3" ViewCount="" Body="&lt;p&gt;Not all systems can, it has to be set up in a manner that supports it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, one of our major systems I helped upgrade a few years ago should be available 24/7. It consisted of multiple tiers, including a pure communication tier between the off site User Interface Layer and Business Layer. Due to the way the communication layer was coded, any future changes to the Business Layer or DB schema could be implemented with out a real outage. In the worst case scenario, a user would experience a 10-30 second pause as the changes took affect.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In fact, if the changes were purely code changes to the business layer, they could be queued up and 'cycled in' with only milliseconds delay.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It could do this because:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The communication layer could hold messages. This allowed us to have an actual outage on any of the tiers other than the UI Layer without needing to to bring done the UI.&lt;/li&gt;&#xA;&lt;li&gt;The Business Layer handled by the MVDB called &lt;a href=&quot;http://rs.com/u2&quot; rel=&quot;nofollow&quot;&gt;UniData&lt;/a&gt;. This holds all code in memory. After compiling code, you can use a command to force the new object code into memory, replacing the old.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Other techniques I've heard about involve replication of transactions to another mirror of the existing system. By applying the update to one, switching over and replaying all transactions done between the update and switch. YMMV depending on your systems though.&lt;/p&gt;&#xA;" OwnerUserId="2673" LastEditorUserId="2673" LastEditorDisplayName="" LastEditDate="2011-01-09T10:47:08.213" LastActivityDate="2011-01-09T10:47:08.213" />
  <row Id="35065" PostTypeId="2" ParentId="35062" CreationDate="2011-01-09T10:52:58.350" Score="4" ViewCount="" Body="&lt;p&gt;Clone the production system.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You take backups right?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Set up a VM where you can restore that backup to. Work out what scripts you need to write to convert all production settings to development settings. Make this a one click process.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This way, you can continually &lt;strong&gt;'refresh'&lt;/strong&gt; your development environments with what is currently in production.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Side note: If you store confidential data on your production making, you may need to develop either a method of masking sensitive data, or dropping all data and running a 'seed script' to populate the database with fake data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is what we do anyway (With all our stacks/systems, of which we only have a minor LAMP system). We do it regularly so that we are development on a clean version. All our QA/UAT/Training environments work in the same manner.&lt;/p&gt;&#xA;" OwnerUserId="2673" LastActivityDate="2011-01-09T10:52:58.350" />
  <row Id="35066" PostTypeId="2" ParentId="35063" CreationDate="2011-01-09T11:54:08.693" Score="5" ViewCount="" Body="&lt;p&gt;For typical databases (Oracle for example) it's possible to alter the database schema while still running queries in parallel. It requires some forward planning though.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Their are some constraints for the change to be applied:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it should work with the existing code, meaning that the code should deal with both the old and new versions of the schema&lt;/li&gt;&#xA;&lt;li&gt;it should not incur such load on the DB that transactions would screech to a halt (I am looking at you &lt;code&gt;CREATE INDEX&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;it should not incur the loss of data (you cannot drop and re-create a table)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In order for the schema to be backward compatible, you usually can ADD or MODIFY a column, you can only DROP something if the existing code does not use it any longer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your code cannot handle the change transparently, then change the code before changing the database.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simple advice on forward planning: always explicit the column names in your DB requests (don't use &lt;code&gt;SELECT * FROM&lt;/code&gt;). This way you won't have new columns showing up in old requests.&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2011-01-09T11:54:08.693" />
  <row Id="35067" PostTypeId="2" ParentId="35038" CreationDate="2011-01-09T11:56:52.603" Score="2" ViewCount="" Body="&lt;p&gt;I think you should have moved the interview from the desk to a computer with a compiler. That would have solved the issue.&lt;/p&gt;&#xA;" OwnerUserId="1338" LastActivityDate="2011-01-09T11:56:52.603" />
  <row Id="35068" PostTypeId="1" CreationDate="2011-01-09T12:05:45.387" Score="3" ViewCount="127" Body="&lt;p&gt;I am using with winforms with c#. I want to know what are the things which we should know or learn in winforms because I am developing winforms since only 6 months. But I think I have no enough knowledge of winform which I should have, so what should I learn or which are things which I should learn that helps me developing good application ? And I also want to know that what is about the future of the winform application ?&lt;/p&gt;&#xA;" OwnerUserId="12731" LastActivityDate="2011-01-09T15:54:20.977" Title="Things which should be know or learned with winforms." Tags="&lt;career-advice&gt;&lt;c#&gt;&lt;windows&gt;" AnswerCount="3" FavoriteCount="1" />
  <row Id="35069" PostTypeId="2" ParentId="33068" CreationDate="2011-01-09T12:08:16.647" Score="3" ViewCount="" Body="&lt;p&gt;I have seen 2 projects that are very well structured:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Django&lt;/li&gt;&#xA;&lt;li&gt;Chromium project&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Especially, second one is very interesting based on few things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How it uses processes for many things (tabs, plug-ins) and how it fits together&lt;/li&gt;&#xA;&lt;li&gt;multi-platform with native GUI for each Windows, Mac, Linux&lt;/li&gt;&#xA;&lt;li&gt;web-kit integration&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Also I heard Postgre is written cleanly (as opposed to MySql), but I haven't read it myself.&lt;/p&gt;&#xA;" OwnerUserId="4852" LastActivityDate="2011-01-09T12:08:16.647" CommentCount="1" />
  <row Id="35070" PostTypeId="2" ParentId="35027" CreationDate="2011-01-09T12:09:43.697" Score="3" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Disclaimer: I have not used it yet&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From a language design point of view, I think they assembled some pretty useful features and set a good ground for other languages to be built upon.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;First of all, the goal: a safe massively multi-threaded language&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With the advent of multi-cores and multi-processors, this is the kind of languages that should really change the future. Erlang got this right, but it came too soon. Nowadays multi-core can be found in commodity hardware and programmers are more and more aware that the single-threaded model of computation is dying for all but the simplest tasks (unless you don't mind waiting...)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So here is a couple of points I like about Go:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;emphasis on &lt;strong&gt;message passing&lt;/strong&gt; rather than locks, hardly a new concepts, but certainly one that has not reached the main languages yet&lt;/li&gt;&#xA;&lt;li&gt;cheap routines and runtime dispatching on software threads pushes the programmer to decouple its computations in parallelizable tasks&lt;/li&gt;&#xA;&lt;li&gt;worry-free stack (which grows on demand) to avoid the dreaded stack overflow&lt;/li&gt;&#xA;&lt;li&gt;garbage collection (not very efficient yet, from what I understand, but it's almost mandatory nowadays)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And of course, perhaps the killer point for me: &lt;strong&gt;Generic Programming&lt;/strong&gt;, which I much prefer to object-oriented languages, as it's just more efficient.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now of course, there are a couple of things I don't like. For a language geared toward multi-threading for example, I find it awkward to allow the user to pass pointers to struct to multiple threads of execution without any kind of synchronization. It's inviting disaster as far as I can see...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But really, it's got a lot of interesting ideas built-in, and even if they are not new, the very fact that this language has some audience (perhaps because of its adoption at Google :p) goes a long way toward promoting them.&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2011-01-09T12:09:43.697" CommentCount="1" />
  <row Id="35071" PostTypeId="2" ParentId="31011" CreationDate="2011-01-09T12:20:14.517" Score="0" ViewCount="" Body="&lt;p&gt;It actually depends on the language.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Languages (like most functional languages) that emphasize &lt;strong&gt;immutability&lt;/strong&gt; of data structures are, by nature, &lt;strong&gt;acyclic&lt;/strong&gt; (since a value may only refer to older values).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Therefore, I would bet that Reference Counting works great for them :)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are other optimizations that GC can bring. For example a GC that can move data in memory may be able to get &quot;linked&quot; values closer to each other, which improve cache hits during computation.&lt;/p&gt;&#xA;" OwnerUserId="4853" LastActivityDate="2011-01-09T12:20:14.517" />
  <row Id="35073" PostTypeId="2" ParentId="35068" CreationDate="2011-01-09T13:09:48.857" Score="3" ViewCount="" Body="&lt;p&gt;WPF is the newer GUI framework which is better to use instead of Winforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you already have an existing winforms project that you don't want to re-write though, I'd say learn how to make controls in wpf and then use &lt;a href=&quot;http://msdn.microsoft.com/es-es/library/system.windows.forms.integration.elementhost.aspx&quot; rel=&quot;nofollow&quot;&gt;element host&lt;/a&gt; to put them inside your winforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'd recommend also learning more things outside of the GUI that will help you with your GUI project.  For example:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you use generics a lot already? &lt;/li&gt;&#xA;&lt;li&gt;Do you use yield statements? &lt;/li&gt;&#xA;&lt;li&gt;Do you use automatic implemented properties when applicable?&lt;/li&gt;&#xA;&lt;li&gt;Do you use object initializers and collection initializers for the objects you create?&lt;/li&gt;&#xA;&lt;li&gt;Do you use extension methods?&lt;/li&gt;&#xA;&lt;li&gt;Do you use lambda expressions?&lt;/li&gt;&#xA;&lt;li&gt;Do you use LINQ? &lt;/li&gt;&#xA;&lt;li&gt;Do you use the entity framework?  &lt;/li&gt;&#xA;&lt;li&gt;Do you use WCF?&lt;/li&gt;&#xA;&lt;li&gt;Do you use code contracts? &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="24" LastEditorUserId="24" LastEditorDisplayName="" LastEditDate="2011-01-09T13:24:07.377" LastActivityDate="2011-01-09T13:24:07.377" CommentCount="1" />
  <row Id="35074" PostTypeId="1" AcceptedAnswerId="35080" CreationDate="2011-01-09T13:51:19.637" Score="118" ViewCount="7760" Body="&lt;p&gt;I try to understand the benefits of distributed version control system (DVCS).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I found &lt;a href=&quot;http://hginit.com/00.html&quot; rel=&quot;nofollow&quot;&gt;Subversion Re-education&lt;/a&gt; and &lt;a href=&quot;http://martinfowler.com/bliki/VersionControlTools.html&quot; rel=&quot;nofollow&quot;&gt;this article&lt;/a&gt; by Martin Fowler very useful.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Mercurial and others DVCS promote a new way of working on code with changesets and local commits. It prevents from merging hell and other collaboration issues&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;We are not affected by this as I practice &lt;a href=&quot;http://www.martinfowler.com/articles/continuousIntegration.html&quot; rel=&quot;nofollow&quot;&gt;continuous integration&lt;/a&gt; and working alone in a private branch is not an option, unless we are experimenting. We use a branch for every major version, in which we fix bugs merged from the trunk.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Mercurial allows you to have lieutenants&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I understand this can be useful for very large projects like Linux, but I don't see the value in small and highly collaborative teams (5 to 7 people).&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Mercurial is faster, takes less disk space and full local copy allows faster logs &amp;amp; diffs operations.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I'm not concerned by this either, as I didn't notice speed or space problems with SVN even with very large projects I'm working on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm seeking for your personal experiences and/or opinions from former SVN geeks. Especially regarding the &lt;strong&gt;changesets&lt;/strong&gt; concept and overall &lt;strong&gt;performance&lt;/strong&gt; boost you measured.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE (12th Jan)&lt;/strong&gt;: I'm now convinced that it worth a try.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2011-01-12T11:30:44.967" LastActivityDate="2011-06-05T20:58:52.053" Title="I'm a Subversion geek, why I should consider or not consider Mercurial or Git or any other DVCS?" Tags="&lt;version-control&gt;&lt;mercurial&gt;&lt;dvcs&gt;&lt;git&gt;&lt;subversion&gt;" AnswerCount="12" CommentCount="13" FavoriteCount="114" />
  <row Id="35075" PostTypeId="2" ParentId="35068" CreationDate="2011-01-09T13:52:04.343" Score="0" ViewCount="" Body="&lt;p&gt;I found the must important things to know with winforms is actually Design Patterns, that will help you build good applications by have more modular code and less dependencies&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Winforms will be around for a long while, some newer applications are going with WPF instead but WPF's strengths lies in the P (Presentation) part. When you need to have a highly customized UI with animations etc then WPF is the way to go.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For more traditional Forms-based applications Winforms still have has a place. Sure it can be done in WPF as well but it doesn't offer as many advantages and a few disandvantages.&lt;/p&gt;&#xA;" OwnerUserId="12354" LastActivityDate="2011-01-09T13:52:04.343" />
  <row Id="35076" PostTypeId="1" CreationDate="2011-01-09T14:02:00.467" Score="1" ViewCount="143" Body="&lt;p&gt;I have an open-source project for which I have to generate HTML pages to put on the web. I wanted to keep everything as simple &lt;code&gt;HTML&lt;/code&gt; pages. The problem with this approach is if I need to change the design, I have to goto all the pages and change it. This will be tough as I have lot of pages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there some kind of HTML generators which can process simple annotated text files? This way, I can maintain the documentation and website contents as plain text files and run it through this program to generate static HTML pages. This also helps in keeping the design consistent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any help would be great!&lt;/p&gt;&#xA;" OwnerUserId="3998" LastActivityDate="2011-01-09T19:39:22.887" Title="Generate HTML pages from some template" Tags="&lt;open-source&gt;&lt;documentation&gt;&lt;html&gt;&lt;documentation-generation&gt;" AnswerCount="5" CommentCount="1" />
  <row Id="35077" PostTypeId="1" AcceptedAnswerId="35079" CreationDate="2011-01-09T14:10:17.913" Score="4" ViewCount="145" Body="&lt;p&gt;So here is a question for you, having read some great answers to questions such as &quot;Test-Driven Development - Convince Me&quot;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question is: &lt;strong&gt;&quot;Can Test-Driven Development be used effectively on non-Greenfield projects?&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To specify: &lt;em&gt;I would really like to know if people have had experience in using TDD in projects where there was already non-TDD elements present? And the problems that they then faced.&lt;/em&gt; &lt;/p&gt;&#xA;" OwnerUserId="12464" LastEditorUserId="12464" LastEditorDisplayName="" LastEditDate="2011-01-09T14:20:55.453" LastActivityDate="2011-01-09T14:31:42.313" Title="The use of Test-Driven Development in Non-Greenfield Projects?" Tags="&lt;learning&gt;&lt;testing&gt;&lt;design-patterns&gt;&lt;tdd&gt;" AnswerCount="1" CommentCount="4" FavoriteCount="1" />
  <row Id="35078" PostTypeId="2" ParentId="35076" CreationDate="2011-01-09T14:16:16.380" Score="3" ViewCount="" Body="&lt;p&gt;All of the &quot;lightweight&quot; markup languages work well for this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Markdown  &lt;a href=&quot;http://daringfireball.net/projects/markdown/&quot; rel=&quot;nofollow&quot;&gt;http://daringfireball.net/projects/markdown/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ReStructuredText (RST)  &lt;a href=&quot;http://docutils.sourceforge.net/rst.html&quot; rel=&quot;nofollow&quot;&gt;http://docutils.sourceforge.net/rst.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are others.  &lt;a href=&quot;http://en.wikipedia.org/wiki/Lightweight_markup_language&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Lightweight_markup_language&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a fan of RST.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;rst2html.py somefile.rst &amp;gt;somefile.html&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="5834" LastEditorUserId="5834" LastEditorDisplayName="" LastEditDate="2011-01-09T15:35:15.173" LastActivityDate="2011-01-09T15:35:15.173" CommentCount="2" />
  <row Id="35079" PostTypeId="2" ParentId="35077" CreationDate="2011-01-09T14:31:42.313" Score="12" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Read Working Effectively with Legacy Code.  &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131177052&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even if it's your project, and not a mystery to you, it's still a kind of legacy.  It helps to step back from the code a moment and think about what you're going to do.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Recognize TDD doesn't mean literally &quot;all tests before all code.&quot;  Having  a bunch of code with no test doesn't utterly break the TDD model.  It makes things a little more difficult, but it can still be TDD even with zero unit tests available at the current moment.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Start designing with testing in mind.  This is actually harder than it appears.  But you can do test-driven design and still not quite write &lt;strong&gt;all&lt;/strong&gt; the tests.  It requires some experience to design a testable API.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Write one test for one thing that's under development.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Get that one test to work.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Iterate steps 3, 4 and 5 for every deliverable you've got.   You're doing TDD for new development only.  Legacy remains as it was.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Sometimes, you're rewriting or revising or expanding legacy code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, when you're doing maintenance and bug-fixing, you'll do a slightly different thing.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;For legacy code that needs to be touched, try to write a test.  Sometimes this is hard because the code is not designed for testability.  In which case, you need to refactor the legacy code so you can test it in the first place.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Now that the code you're about to change is structured so it can be tested.  You can now (a) run tests on the legacy, (b) revise the tests, (c) revise the code, (d) run tests on the revised version.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;You don't try to test everything.  Just the absolute minimum to keep moving forward with deliverables.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you're diagnosing a problem with legacy code, you can also use tests to help with the diagnostics.&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Rewrite the bug report into a test case.  &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If necessary, refactor the likely culprit modules for testing.  They may not be designed for unit testing, making it difficult to use TDD.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;After refactoring, you have a unit test that demonstrates the bug.  Run it.  It should fail.  Now you're doing TDD.  You have a test and code which fails the test.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;In the maintenance and diagnostic cases, you're often forced to refactor legacy code.  This is sometimes hard because the legacy code may not be designed with unit testing in mind.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The goal is to isolate functionality through &quot;Dependency Injection&quot; (Delegation or Strategy design patterns) and Mock Objects.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;To achieve dependency injection, you will often decompose legacy code into smaller methods or classes which do less, and and knit together during the main program initialization.  Your unit test will knit them together for testing, your main program will knit them together for production work.  The important thing is that you often need to decompose.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some programmers object to this because a testable API often &quot;exposes too much&quot; or requires &quot;too many lines of code from the client&quot; or some other whining.  Those were not measures of quality.  Testing has more value than code golf.  A few extra lines of initialization in the production application won't kill anybody.  A few extra lines of initialization to aid testing may save mountains of diagnostic and maintenance effort in the long run.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Building mocks -- in some languages -- is an art form.  There are libraries and frameworks for this.  Languages with static type declarations (Java, C#, C++, etc.) require sophisticated mocks.  Languages with duck typing (Python, Ruby, etc.) don't require fancy mock libraries.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-09T14:31:42.313" CommentCount="1" />
  <row Id="35080" PostTypeId="2" ParentId="35074" CreationDate="2011-01-09T14:37:56.880" Score="170" ViewCount="" Body="&lt;p&gt;&lt;em&gt;Note: See &lt;strong&gt;&quot;EDIT&quot;&lt;/strong&gt; for the answer to the current question&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;First of all, read &lt;a href=&quot;http://hginit.com/00.html&quot; rel=&quot;nofollow&quot;&gt;Subversion Re-education&lt;/a&gt; by Joel Spolsky. I think most of your questions will be answered there. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another recommendation, Linus Torvalds' talk on Git: &lt;a href=&quot;http://www.youtube.com/watch?v=4XpnKHJAok8&quot; rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=4XpnKHJAok8&lt;/a&gt;. This other one might also answer most of your questions, and it is quite an entertaining one.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, something I find quite funny: even Brian Fitzpatrick &amp;amp; Ben Collins-Sussman, two of the original creators of subversion said in one google talk &quot;sorry about that&quot; referring to subversion being inferior to mercurial (and DVCSs in general).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, IMO and in general, team dynamics develop more naturally with any DVCS, and an outstanding benefit is that you can commit offline because it implies the following things:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You don't depend on a server and a connection, meaning faster times.&lt;/li&gt;&#xA;&lt;li&gt;Everyone has a backup of everything (files, history), not just the server. &lt;strong&gt;Meaning anyone can become the server&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;You can commit compulsively if you need to &lt;strong&gt;without messing others' code&lt;/strong&gt;. Commits are local.&lt;/li&gt;&#xA;&lt;li&gt;People without &quot;commit access&quot; can commit (because commiting in a DVCS does not imply uploading code), lowering barrier for contributions, you can decide to pull their changes or not as an integrator.&lt;/li&gt;&#xA;&lt;li&gt;It can reinforce natural communication since a DVCS makes this essential... in subversion what you have instead are commit races, which force communication, but by obstructing your work.&lt;/li&gt;&#xA;&lt;li&gt;Contributors can team up and handle their own merging, meaning less work for integrators in the end.&lt;/li&gt;&#xA;&lt;li&gt;Contributors can have their own branches without affecting others' (but being able to share them if necessary).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;About your points:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Merging hell doesn't exist in DVCSland; doesn't need to be handled. &lt;strong&gt;See next point&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;In DVCSs, everyone represents a &quot;branch&quot;, meaning there are merges everytime changes are pulled. Named branches are another thing.&lt;/li&gt;&#xA;&lt;li&gt;You can keep using continuous integration if you want. Not necessary IMHO though, why add complexity?, just keep your testing as part of your culture/policy.&lt;/li&gt;&#xA;&lt;li&gt;Mercurial is faster in some things, git is faster in other things. Not really up to DVCSs in general, but to their particular implementations AFAIK.&lt;/li&gt;&#xA;&lt;li&gt;Everyone will always have the full project, not only you. The distributed thing has to do with that you can commit/update locally, sharing/taking-from outside your computer is called pushing/pulling.&lt;/li&gt;&#xA;&lt;li&gt;Again, read Subversion Re-education. DVCSs are easier and more natural, but they are different, don't try to think that cvs/svn === base of all versioning.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I was contributing some documentation to the Joomla project to help preaching a migration to DVCSs, and &lt;strong&gt;&lt;a href=&quot;http://docs.joomla.org/Dvcs&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;here&lt;/em&gt;&lt;/a&gt;&lt;/strong&gt; I made some diagrams to illustrate centralized vs distributed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Centralized&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/eqmGk.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Distributed in general practice&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/tRfgX.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Distributed to the fullest&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/9IW5z.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You see in the diagram there is still a &quot;centralized repository&quot;, and this is one of centralized versioning fans favourite arguments: &quot;you are still being centralized&quot;, and nope, you are not, since the &quot;centralized&quot; repository is just repository you all agree on (e.g. an official github repo), but this can change at any time you need.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, this is the typical workflow for open-source projects (e.g. a project with massive collaboration) using DVCSs:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/AdY9T.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://bitbucket.org&quot; rel=&quot;nofollow&quot;&gt;Bitbucket.org&lt;/a&gt; is somewhat of a github equivalent for mercurial, know that they have unlimited private repositories with unlimited space, if your team is smaller than five you can use it for free.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best way you can convince yourself of using a DVCS is trying out a DVCS, every experienced DVCS developer that has used svn/cvs will tell you that is worth it and that they don't know how they survived all their time without it.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: To answer your second edit I can just reiterate that with a DVCS you have a different workflow, I'd advise you not to look for reasons not to try it because of &lt;em&gt;best practices&lt;/em&gt;, it feels like when people argue that OOP is not necessary because they can get around complex design patterns with what they always do with paradigm XYZ; you can benefit anyways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try it, you'll see how working in &quot;a private branch&quot; is actually a better option. One reason I can tell about why the last is true is because &lt;strong&gt;you lose the fear to commit&lt;/strong&gt;, allowing you to commit at any time you see fit and work a more natural way. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding &quot;merging hell&quot;, you say &quot;unless we are experimenting&quot;, I say &quot;even if you are experimenting + maintaing + &lt;a href=&quot;https://github.com/mootools/mootools-core/tree/2.0wip&quot; rel=&quot;nofollow&quot;&gt;working in revamped v2.0 at the same time&lt;/a&gt;&quot;. As I was saying earlier, merging hell doesn't exist, because:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Everytime you commit you generate an unnamed branch, and everytime your changes meet other persons' changes, a natural merge occurs.&lt;/li&gt;&#xA;&lt;li&gt;Because DVCSs gather more metadata for each commit, less conflicts occur during merging... so you could even call it an &quot;intelligent merge&quot;.&lt;/li&gt;&#xA;&lt;li&gt;When you do bump into merge conflicts, this is what you can use:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/zo0BK.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, project size doesn't matter, when I switched from subversion I actually was already seeing the benefits while working alone, everything just felt right. The &lt;strong&gt;changesets&lt;/strong&gt; (not exactly a revision, but a specific set of changes for specific files you include a commit, isolated from the state of the codebase) let you visualize exactly what you meant by doing what you were doing to a specific group of files, not the whole codebase.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Regarding how changesets work and the performance boost. I'll try to illustrate it with an example I like to give: the mootools project switch from svn illustrated in their &lt;a href=&quot;https://github.com/mootools/mootools-core/network&quot; rel=&quot;nofollow&quot;&gt;github network graph&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Before&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/yeSPt.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;After&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/0uMnQ.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you are seeing is developers being able to focus on their own work while commiting, without the fear of breaking others' code, they worry about breaking others' code after pushing/pulling (DVCSs: first commit, then push/pull, then update) but since merging is smarter here, they often never do... even when there is a merge conflict (which is rare), you only spend 5 minutes or less fixing it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My recommendation to you is to look for someone that knows how to use mercurial/git and to tell him/her to explain it to you hands-on. By spending about half an hour with some friends in the command line while using mercurial with our desktops and bitbucket accounts showing them how to merge, even fabricating conflicts for them to see how to fix in a ridiculous ammount of time, I was able to show them the true power of a DVCS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, I'd recommend you to use mercurial+bitbucket instead of git+github if you work with windows folks. Mercurial is also a tad more simple, but git is more powerfull for more complex repository management (e.g. &lt;a href=&quot;http://www.kernel.org/pub/software/scm/git/docs/git-rebase.html&quot; rel=&quot;nofollow&quot;&gt;git rebase&lt;/a&gt;).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some additional recommended readings:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.russellbeattie.com/blog/distributed-revision-control-systems-git-vs-mercurial-vs-svn&quot; rel=&quot;nofollow&quot;&gt;Distributed Revision Control Systems: Git vs. Mercurial vs. SVN&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://importantshock.wordpress.com/2008/08/07/git-vs-mercurial/&quot; rel=&quot;nofollow&quot;&gt;Git vs. Mercurial: Please Relax&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://cocoasamurai.blogspot.com/2009/04/distributed-version-control-git-part-1.html&quot; rel=&quot;nofollow&quot;&gt;Distributed Version Control &amp;amp; Git [Part 1]&lt;/a&gt; &amp;amp; &lt;a href=&quot;http://cocoasamurai.blogspot.com/2009/04/distributed-version-control-git-part-2.html&quot; rel=&quot;nofollow&quot;&gt;Distributed Version Control &amp;amp; Git [Part 2]&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://poweredbythepete.wordpress.com/2010/10/29/gitmercurial-vs-subversion-fight/&quot; rel=&quot;nofollow&quot;&gt;Git/Mercurial vs. Subversion: Fight!&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://chriswongdevblog.blogspot.com/2010/11/dvcs-vs-subversion-smackdown-round-3.html&quot; rel=&quot;nofollow&quot;&gt;DVCS vs Subversion smackdown, round 3&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://jhw.dreamwidth.org/1868.html&quot; rel=&quot;nofollow&quot;&gt;Why I Like Mercurial More Than Git&lt;/a&gt; (&lt;a href=&quot;http://jhw.dreamwidth.org/1868.html&quot; rel=&quot;nofollow&quot;&gt;part 1&lt;/a&gt;, &lt;a href=&quot;http://jhw.dreamwidth.org/2049.html&quot; rel=&quot;nofollow&quot;&gt;part 2&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://symfony.com/video/Paris2011/567&quot; rel=&quot;nofollow&quot;&gt;Contributing with Git: Reducing the frictions of Open Source collaboration with the Git VCS&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://groups.google.com/group/joomla-dev-framework/browse_thread/thread/fd3b0151cc215c0e&quot; rel=&quot;nofollow&quot;&gt;&quot;How have the DVCSs worked for you so far?&quot;&lt;/a&gt; - post on the Joomla! Framework Development mailing list asking for feedback after the experimental adoption of mercurial and git for the Joomla! Platform Project&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10869" LastEditorUserId="10869" LastEditorDisplayName="" LastEditDate="2011-05-23T19:24:34.523" LastActivityDate="2011-05-23T19:24:34.523" CommentCount="17" />
  <row Id="35081" PostTypeId="1" CreationDate="2011-01-09T14:42:42.460" Score="1" ViewCount="133" Body="&lt;p&gt;So the question is: &lt;strong&gt;&quot;What are the main influences on the design of an application?&quot;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;So you (the developer) are designing an application what influences you?&lt;/em&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So maybe Programming Paradigms / Software Development Processes (Hot Developer Trends)...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is an incredibly open-ended question - but I don't want to pigeon hole peoples answers. &lt;/p&gt;&#xA;" OwnerUserId="12464" LastActivityDate="2011-01-09T21:49:42.777" ClosedDate="2011-01-11T13:35:27.143" Title="What are the main influences on the design of an application? (Purposefully open-ended)" Tags="&lt;learning&gt;&lt;design&gt;&lt;programming-practices&gt;&lt;design-patterns&gt;" AnswerCount="5" CommentCount="2" FavoriteCount="1" />
  <row Id="35082" PostTypeId="1" AcceptedAnswerId="35096" CreationDate="2011-01-09T15:07:22.883" Score="2" ViewCount="222" Body="&lt;p&gt;As a software developer until now, I've mostly worked on projects that were quite &quot;monolithic&quot; with hardly any dependencies on other projects, without building automation (no Make, Ant, Maven, etc.) and kept on a simple version control system (mostly Subversion) with just a few easily managed version branches.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now together with some friends I'm planning a project that is intended to run on multiple platforms (mostly mobile: Android, iOS, Kindle, Windows, etc.), thus written in several languages and on different development platforms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This will lead to many dependencies: All projects sharing the same resources (e.g. images) or projects dependent on each other (e.g. a core Java library project used by the Android and other Java based implementations).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So what I need is some basic information on how to answer questions such as: How would the VCS be structured? Would a client-base or a decentralized VCS be better? How to decide building automation system(s) to use? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since this quite an open question I guess for now it would be great if you could point me to any books or web resources that you can recommend for this topic.&lt;/p&gt;&#xA;" OwnerUserId="7582" LastActivityDate="2011-01-09T17:57:06.827" Title="How to organize a larger project with several sub-projects and their dependencies?" Tags="&lt;organization&gt;&lt;code-organization&gt;" AnswerCount="1" FavoriteCount="1" />
  <row Id="35083" PostTypeId="2" ParentId="35081" CreationDate="2011-01-09T15:15:19.567" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;As far as design of the actual application:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The main influence is the problem at hand.  Your design for a web-commerce application is going to be completely different then a desktop calculator.  Specific feature sets will cause you to use/not use patterns and structures that might be used in other places.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;As far as design as a process or stage in development:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is really going to be affected by the actual team and culture of the group.  If the group has a single structure of how all projects flow through design then that should guild what design docs are created and what approvals and reviews are required.  If it is a team that is a little more flexible the size and type of the project with be one of the main influences into design activities.&lt;/p&gt;&#xA;" OwnerUserId="12586" LastActivityDate="2011-01-09T15:15:19.567" CommentCount="1" />
  <row Id="35084" PostTypeId="2" ParentId="35074" CreationDate="2011-01-09T15:20:16.910" Score="11" ViewCount="" Body="&lt;p&gt;dukofgamings answer is probably about as good as it can get, but I want to approach this from a different direction.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let us assume that what you say is absolutely true, and that by applying good practices you can avoid the problems that DVCS was designed to fix. Does this mean that a DVCS would offer you no advantage? People &lt;em&gt;stink&lt;/em&gt; at following best practices. People are &lt;em&gt;going&lt;/em&gt; to mess up. So why would you avoid the software that is designed to fix a set of problems, choosing instead to rely on people to do something that you can predict in advance they are not going to do?&lt;/p&gt;&#xA;" OwnerUserId="6883" LastActivityDate="2011-01-09T15:20:16.910" CommentCount="1" />
  <row Id="35085" PostTypeId="2" ParentId="35081" CreationDate="2011-01-09T15:28:15.743" Score="2" ViewCount="" Body="&lt;p&gt;The primary influence is this:  &lt;strong&gt;Correctness&lt;/strong&gt; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If it doesn't have correct behavior, nothing else matters.  &quot;Programming Paradigms / Software Development Processes (Hot Developer Trends)&quot; are totally irrelevant if you aren't building something that works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Correctness requires proof.  Either a comprehensive suite of automated unit tests or a formal proof that you have something which works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Formal proof is hard (in some case) and easy in others.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unit testing requires a little bit of care and planning to be sure you're creating testable units.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The team, or the process or the tools have to be subservient to correctness.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The secondary influence is: &lt;strong&gt;Resource Use&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(i.e., I/O, memory, time, network bandwidth, etc.)  This means choosing the correct data structure and algorithm to minimize resource use.  This is not &quot;optimization&quot; or &quot;tuning&quot; or &quot;code golf&quot;.  This is simply proper choices of collection type, proper design of loops, etc.  Simple, obvious thinking about the big-&lt;strong&gt;O&lt;/strong&gt; complexity of the various features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Third is &lt;strong&gt;Reliability&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is coupled with simplicity, portability, trustworthiness, auditability and related quality attributes.  If it's not reliable, it can't really be used.  This also includes backups, restores, migration to the next release, and the like.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In some organizations, there are sysadmins and DBA's who should handle much of this.  In other organizations, they exist, but don't help much.  Sometimes, the exist and fight against you by (a) not helping and (b) arguing with you when you try to do it yourself.  (&quot;You can't design a backup script,&quot; the DBA says, but won't design the backups, either, claiming it's not their job.)  In other organizations, they don't really exist, and you must do all of this.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-09T15:28:15.743" />
  <row Id="35086" PostTypeId="2" ParentId="35081" CreationDate="2011-01-09T15:36:14.597" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The Problem&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If we're talking Design as in the architecture of the application then the problem and requirements is really the main inspiration you should have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's my belief that each and every program has a &quot;perfect&quot; form given the requirements, your task as a programmer is to arrive at that perfect form in the same manner an artists chips away at a granite block to discover the statue within.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll gradually discover what patterns fits your application best, sometimes there's some new technology (like Code Contracts) and sometimes there's an algoritm. When you find it things will just &quot;click&quot; into place and the design will seem obvious&lt;/p&gt;&#xA;" OwnerUserId="12354" LastActivityDate="2011-01-09T15:36:14.597" />
  <row Id="35087" PostTypeId="1" AcceptedAnswerId="35109" CreationDate="2011-01-09T15:38:59.163" Score="2" ViewCount="97" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Someday s ago we was discussing about the current project, and suddenly sir and my senior started talking about the new feature to add in the project , and i become lost :). i was not able to find how i should provide my input for the new feature.&#xA;So i want to know what things should be discussed for developing new feature in project and how we can contribute in requirement talk of new features.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please suggest.&lt;/p&gt;&#xA;" OwnerUserId="7702" LastActivityDate="2011-01-09T23:42:10.303" Title="Requirment Analysis Communication" Tags="&lt;communication&gt;&lt;requirements&gt;&lt;meetings&gt;" AnswerCount="3" CommentCount="2" FavoriteCount="1" />
  <row Id="35088" PostTypeId="2" ParentId="35049" CreationDate="2011-01-09T15:39:59.337" Score="3" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/ykeaV.jpg&quot; alt=&quot;bonesaw&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bone saw&lt;/p&gt;&#xA;" OwnerUserId="12354" LastActivityDate="2011-01-09T15:39:59.337" CommentCount="4" />
  <row Id="35090" PostTypeId="2" ParentId="35049" CreationDate="2011-01-09T15:49:25.633" Score="1" ViewCount="" Body="&lt;p&gt;As requested by the original poster, I'm posting my comment as an answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Place piles of books under both the monitor and keyboard to let yourself code while standing!&lt;/p&gt;&#xA;" OwnerUserId="8903" LastActivityDate="2011-01-09T15:49:25.633" />
  <row Id="35091" PostTypeId="2" ParentId="35068" CreationDate="2011-01-09T15:54:20.977" Score="3" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Things you should know about WinForms:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;These are some things one should know, however I have seen even experienced developers sometimes miss these ones out!&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Although WinForm was never designed to have resolution independent User Interface, this can be partially simulated using TableFlowLayout. Tables can be nested and UI controls can even span both columns as well as rows. This can thus cater for almost any layout. If the property of each UI control is set to dock then they automatically scale as the form is resized.&lt;/li&gt;&#xA;&lt;li&gt;Any use of code that will take a long time &lt;em&gt;should&lt;/em&gt; always be done on a separate thread. All code on separate threads should always use a delegate to &quot;Invoke&quot; UI updates.&lt;/li&gt;&#xA;&lt;li&gt;Use dynamic controls as much as possible, for &lt;strong&gt;example&lt;/strong&gt; you may have many Forms that are similar but with few differences. In these cases having a &quot;Virtual&quot; form that can be called and populated with dynamic controls is better than designing &amp;amp; creating each one.&lt;/li&gt;&#xA;&lt;li&gt;Aim to keep your style &lt;strong&gt;consistent&lt;/strong&gt;, keep controls as aligned as possible.&lt;/li&gt;&#xA;&lt;li&gt;Make sure simple things like Tabbing order are correct, many users expect these things to just work.&lt;/li&gt;&#xA;&lt;li&gt;Sometimes you can briefly &quot;minimise&quot; then &quot;maximise&quot; a WinForm to release memory. This is because the application will allocate memory ahead of time but not always use it. Doing this release any unused memory. This trick can be done programatically (e.g just after the Main window has loaded).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2011-01-09T15:54:20.977" />
  <row Id="35092" PostTypeId="2" ParentId="35074" CreationDate="2011-01-09T16:02:24.567" Score="2" ViewCount="" Body="&lt;p&gt;Yes, it hurts when you have to merge large commits in subversion. But this is also a great learning experience, making you do everything possible to avoid merging conflicts. In other words, you learn to &lt;a href=&quot;http://stackoverflow.com/questions/107264/how-often-to-commit-changes-to-source-control&quot;&gt;check in often&lt;/a&gt;. Early integration is a very good thing for any co-located project. As long as everyone is doing that, using subversion shouldn't be much of a problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Git, for instance, was &lt;a href=&quot;http://en.wikipedia.org/wiki/Git_%28software%29#Characteristics&quot; rel=&quot;nofollow&quot;&gt;designed&lt;/a&gt; for distributed work and encourages people to work on their own projects and create own forks for an (eventual) merge later. It was &lt;em&gt;not&lt;/em&gt; specifically designed for continuous integration in a &quot;small and highly collaborative teams&quot; which is what the OP is asking for. It is rather the opposite, come to think of it. You wont have any use for its fancy distributed features if all you're doing is sitting in the same room working together on the same code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So for a co-located, CI-using team, I really don't think it matters much if you use a distributed system or not. It boils down to a matter of taste and experience.&lt;/p&gt;&#xA;" OwnerUserId="5692" LastEditorUserId="5692" LastEditorDisplayName="" LastEditDate="2011-01-09T21:22:56.037" LastActivityDate="2011-01-09T21:22:56.037" CommentCount="14" />
  <row Id="35093" PostTypeId="2" ParentId="35074" CreationDate="2011-01-09T16:16:58.990" Score="1" ViewCount="" Body="&lt;p&gt;Why not use them in tandem? On my current project we are forced to use CVS. However, we also keep local git repositories in order to do feature development. This is the best of both worlds imo because you can try various solutions and keep versions of what you're working on, on your own machine. This allows you to rollback to previous versions of your feature or try several approaches without getting into issues when you mess up your code. Having a central repository then gives you the benefits of having a centralized repository.&lt;/p&gt;&#xA;" OwnerUserId="12242" LastActivityDate="2011-01-09T16:16:58.990" />
  <row Id="35094" PostTypeId="2" ParentId="35087" CreationDate="2011-01-09T16:32:32.277" Score="2" ViewCount="" Body="&lt;p&gt;Are you new to the project? I can remember my first couple of months of out school. Honestly, the level of intelligence and knowledge I thought my co-developers had was intimidating. Fresh college grad v.s 15-20 year of experience can be a rather large gap. I felt like it took approximatively 3 year's before I was really on par with them. That is not to say I couldn't contribute earlier. I just felt like I was not an equal contributer until that point. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What I can suggest?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Listen to their discussions. Ask questions. Make them explain their thought processes or anything that you don't understand. The senior members of the team should be more than happy to mentor the more inexperienced developers. Read design documentation. Ask question about design documentation that you don't understand. Be an information sponge. The learning curve strait out of school can be daunting. Don't let that make you afraid. Eventually,  you start to see the larger picture.  &lt;/p&gt;&#xA;" OwnerUserId="11259" LastActivityDate="2011-01-09T16:32:32.277" />
  <row Id="35095" PostTypeId="2" ParentId="28525" CreationDate="2011-01-09T16:41:54.697" Score="3" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Most programmers have heard the adage&#xA;  &lt;em&gt;&quot;Never use goto statements&quot;&lt;/em&gt;, but few of today's computer science students&#xA;  have the benefit of the historical&#xA;  context in which Dijkstra made his&#xA;  declaration against them. Modern&#xA;  programming dogma has embraced the&#xA;  myth that the goto statement is evil,&#xA;  but it is enlightening to read the&#xA;  original tract and realize that this&#xA;  dogmatic belief entirely misses the&#xA;  point.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&amp;mdash; &lt;a href=&quot;http://david.tribble.com/text/goto.html&quot; rel=&quot;nofollow&quot;&gt;Go To Statement Considered Harmful: A Retrospective&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;I used it in the past with C and Perl.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Then you don't truly understand the &lt;code&gt;GOTO&lt;/code&gt; debate of Dijkstra's day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Go the &lt;a href=&quot;http://www.moorecad.com/classicbasic/index.html&quot; rel=&quot;nofollow&quot;&gt;Classic Basic Games Page&lt;/a&gt;.  Download one the programs.  Read the code.  Trace the control flow.  Try converting the program into your favorite language.  &lt;em&gt;Then&lt;/em&gt; you will understand the &lt;code&gt;GOTO&lt;/code&gt; debate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In older languages like this version of BASIC, &lt;code&gt;GOTO&lt;/code&gt; was pretty much the only means of control flow.  Want &lt;code&gt;do {...} while (C)&lt;/code&gt;?  Then you had to write&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;100 REM START OF LOOP&#xA;...&#xA;190 IF C THEN GOTO 100&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Yes, there was if, but it was one line only, and often didn't have &lt;code&gt;ELSE&lt;/code&gt;.  If you wanted that, you had to do:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;100 IF NOT C THEN GOTO 200&#xA;110 REM -- DO WHEN C IS TRUE&#xA;...&#xA;190 GOTO 300&#xA;200 REM -- DO WHEN C IS FALSE&#xA;...&#xA;300 REM -- END IF&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Want &lt;code&gt;switch&lt;/code&gt;?  That's &lt;code&gt;ON...GOTO&lt;/code&gt;.  Want exceptions?  That's &lt;code&gt;ON ERROR GOTO&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh, and there's nothing like C's restriction that a &lt;code&gt;goto&lt;/code&gt; can only go within the same function (because there are no closed subroutines in the first place).  Those &lt;code&gt;GOTO&lt;/code&gt;s can go &lt;strong&gt;anywhere&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;This&lt;/em&gt; was the kind of programming language that made people hate the &lt;code&gt;GOTO&lt;/code&gt; statement.  But the problem was not so much the existence of &lt;code&gt;goto&lt;/code&gt; as the &lt;em&gt;non&lt;/em&gt;-existence of alternatives.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;goto&lt;/code&gt; is in general a low-level substitute for control flow structures that your language doesn't have.  In C, I use &lt;code&gt;goto error;&lt;/code&gt; frequently to emulate &lt;code&gt;try&lt;/code&gt;/&lt;code&gt;catch&lt;/code&gt;.  In C++, which &lt;em&gt;does&lt;/em&gt; have &lt;code&gt;try&lt;/code&gt;/&lt;code&gt;catch&lt;/code&gt;, I never use &lt;code&gt;goto&lt;/code&gt; at all.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;If everyone hates goto so much, why&#xA;  was it even invented?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Because it was an easy feature to add to the compiler.  It maps directly to machine language, which typically include a &lt;code&gt;goto&lt;/code&gt; statement (&quot;jump&quot;), and several special cases of &lt;code&gt;if...goto&lt;/code&gt; (&quot;branch on equal&quot;, &quot;branch on less/greater than zero&quot;).&lt;/p&gt;&#xA;" OwnerUserId="12609" LastActivityDate="2011-01-09T16:41:54.697" CommunityOwnedDate="2011-01-09T16:41:54.697" CommentCount="1" />
  <row Id="35096" PostTypeId="2" ParentId="35082" CreationDate="2011-01-09T16:43:39.827" Score="5" ViewCount="" Body="&lt;p&gt;This doesn't answer your actual question, but may be of help.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Consider cross platform tools&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;There are layers such as &lt;a href=&quot;http://www.phonegap.com/&quot; rel=&quot;nofollow&quot;&gt;PhoneGap&lt;/a&gt;, that would allow you develop apps accross multiple platforms in one language.&lt;br&gt;&#xA;Also, a cross platform language, such as &lt;a href=&quot;http://haxe.org/doc/intro&quot; rel=&quot;nofollow&quot;&gt;haXe&lt;/a&gt; might be of interest (you can use the C++ backend for native apps, and the JS backend for web and mobile apps (through the aforementioned PhoneGap)).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can drastically reduce the amount of code you need to write, if you can reuse it on multiple platforms. Having less code in the first place, solves many problems before they even occur.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Focus on a single platform to start with&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;If you try to write the app for many different platforms at once, the results may become mediocre. Instead, you should rather try to pick a single platform, to focus on. Test the concepts of your app on that platform and then port it to other platforms and adapt it accordingly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, you may realize, that you don't actually want the different ports to share graphics, to better fit with the graphical needs. For example on the iPhone 4, you have a very high resolution, so you might need extra icons for that. Also, the users may have different expectancies.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Porting a working concept to a new platform is relatively straight forward (although sometimes work-intense), in comparison to really developing it in the first place. If you try to do that on multiple platforms at they same time, you &lt;em&gt;may&lt;/em&gt; overburden yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So pick a platform, that is sufficiently widely spread and that you feel comfortable with, to get up and running quickly. A user base is a valuable source of feedback, that you'll hardly get anywhere else.  &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Do not think too big. Start small and grow.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;This applies not only to your initial choice of platforms, but also to your projects setup. Adapt your toolchain according to your needs instead of investing time on building up a giant all-purpose environment, that is actually putting a lot of overhead on your development process.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You want to tackle a non-monolithic problem. As a consequence, I think a behemothish, monolithic workflow is maybe not the best thing to do.&lt;/p&gt;&#xA;" OwnerUserId="667" LastEditorUserId="667" LastEditorDisplayName="" LastEditDate="2011-01-09T17:57:06.827" LastActivityDate="2011-01-09T17:57:06.827" CommentCount="2" />
  <row Id="35097" PostTypeId="2" ParentId="35076" CreationDate="2011-01-09T16:52:20.443" Score="0" ViewCount="" Body="&lt;p&gt;With docbook you can have your content as a set of XML files then compile it into HTML, PDF, or whatever - many filters exist.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is some XML&#xA;&lt;a href=&quot;http://elastik.svn.sourceforge.net/viewvc/elastik/book/&quot; rel=&quot;nofollow&quot;&gt;http://elastik.svn.sourceforge.net/viewvc/elastik/book/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here is the docs&#xA;&lt;a href=&quot;http://book.elastik.jarofgreen.co.uk/&quot; rel=&quot;nofollow&quot;&gt;http://book.elastik.jarofgreen.co.uk/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="11727" LastActivityDate="2011-01-09T16:52:20.443" />
  <row Id="35098" PostTypeId="1" CreationDate="2011-01-09T16:55:38.520" Score="-1" ViewCount="229" Body="&lt;p&gt;The PHP language has &lt;a href=&quot;http://php.net&quot; rel=&quot;nofollow&quot;&gt;PHP.net&lt;/a&gt;, which contains a canonical reference of the language and its standard library, along with comments and other resources. What types of reference materials, similar to PHP.net, exist for Ruby on Rails?&lt;/p&gt;&#xA;" OwnerUserId="12744" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2011-01-10T20:31:56.917" LastActivityDate="2011-01-10T20:31:56.917" ClosedDate="2011-01-10T20:25:59.027" Title="References for Ruby on Rails" Tags="&lt;ruby-on-rails&gt;&lt;reference&gt;" AnswerCount="1" CommentCount="5" />
  <row Id="35099" PostTypeId="2" ParentId="35098" CreationDate="2011-01-09T17:00:17.597" Score="2" ViewCount="" Body="&lt;p&gt;Well there is always &lt;a href=&quot;http://rubyonrails.org/&quot; rel=&quot;nofollow&quot;&gt;the official site&lt;/a&gt; and in a pinch &lt;a href=&quot;http://www.google.com&quot; rel=&quot;nofollow&quot;&gt;Google&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="7427" LastEditorUserId="2654" LastEditorDisplayName="" LastEditDate="2011-01-09T21:04:38.757" LastActivityDate="2011-01-09T21:04:38.757" />
  <row Id="35100" PostTypeId="2" ParentId="35038" CreationDate="2011-01-09T17:17:40.913" Score="5" ViewCount="" Body="&lt;p&gt;Many times when I interview a candidate, I'm looking to see how the person handles uncertainty, or deals with confrontation. Next time you're interviewing, be sensitive to this, and try to constructively answer the question or explain your position. That may be more important than the correct answer. &lt;/p&gt;&#xA;" OwnerUserId="12664" LastActivityDate="2011-01-09T17:17:40.913" CommentCount="3" />
  <row Id="35101" PostTypeId="2" ParentId="610" CreationDate="2011-01-09T17:41:41.037" Score="1" ViewCount="" Body="&lt;p&gt;A very short way to test a boolean and execute a single statement in Javascript:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;test &amp;amp;&amp;amp; alert(&quot;hi!&quot;);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now, if test equals true then the browser will execute alert(&quot;hi&quot;);&#xA;This is because it will only test alert(&quot;hi&quot;) when test equals true and because Javascript is so loose, you can use this outside an if statement and alert(&quot;hi&quot;) can be anything&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not very useful for developing as it will make your code harder to read, but if you have to make a script as small as possible it is very useful indeed&lt;/p&gt;&#xA;" OwnerUserId="12746" LastActivityDate="2011-01-09T17:41:41.037" CommunityOwnedDate="2011-01-09T17:41:41.037" />
  <row Id="35102" PostTypeId="2" ParentId="35074" CreationDate="2011-01-09T17:47:07.203" Score="0" ViewCount="" Body="&lt;p&gt;Instead hanging onto the idea that &quot;by applying best practices you don't need a DVCS&quot;, why not consider that the SVN workflow is one workflow, with one set of best-practices, and the GIT/Hg workflow is a different workflow, with a different set of best practices.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;&lt;code&gt;git bisect&lt;/code&gt; (and all of its implications on your main repository)&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;In Git, a very important principle is that you can find bugs using &lt;code&gt;git bisect&lt;/code&gt;. To do this, you take the last version you ran that was known to work, and the first version you ran that was known to fail, and you perform (with Git's help) a binary search to figure out which commit caused the bug. To do this, your entire revision history has to be relatively free of other bugs that can interfere with your bug search (believe it or not, this actually works pretty well in practice, and Linux kernel developers do this all the time).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To achieve &lt;code&gt;git bisect&lt;/code&gt; capability, you develop a new feature on its own &lt;em&gt;feature branch&lt;/em&gt;, rebase it and clean up the history (so you don't have any known non-working revisions in your history -- just a bunch of changes that each get you partway to fixing the problem), and then when the feature is done, you merge it into the main branch with working history.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, to make this work, you have to have discipline about which version of the main branch you start your feature branch from. You can't just start from the current state of the &lt;code&gt;master&lt;/code&gt; branch because that may have unrelated bugs -- so the advice in the kernel community is to start work from the latest stable version of the kernel (for big features), or to start work from the latest tagged release candidate.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can also back up your intermediate progress by pushing the feature branch to a server in the meantime, and you can push the feature branch to a server to share it with someone else and elicit feedback, before the feature is complete, before you have to turn code into a permenant feature of the codebase that everybody* in your project has to deal with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&quot;http://www.kernel.org/pub/software/scm/git/docs/gitworkflows.html&quot; rel=&quot;nofollow&quot;&gt;gitworkflows&lt;/a&gt; man page is a good introduction to the workflows that Git is designed for. Also &lt;a href=&quot;http://whygitisbetterthanx.com/&quot; rel=&quot;nofollow&quot;&gt;Why Git is Better than X&lt;/a&gt; discusses git workflows.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Large, distributed projects&lt;/h3&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Why do we need lieutenants in a highly collaborating team with good practices and good design habits?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Because in projects like Linux, there are so many people involved who are so geographically distributed that it's hard to be as highly collaborating as a small team that shares a conference room. (I suspect that for developing a large product like Microsoft Windows that even if people are all located in the same building, the team is just too large to maintain the level of collaboration that makes a centralized VCS work without lieutanants.)&lt;/p&gt;&#xA;" OwnerUserId="1961" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2011-01-09T21:45:41.080" LastActivityDate="2011-01-09T21:45:41.080" CommentCount="10" />
  <row Id="35103" PostTypeId="2" ParentId="34737" CreationDate="2011-01-09T18:11:25.210" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Assembly&lt;/strong&gt; has been the most &quot;mind bending&quot; to me, but I'm just starting it.&lt;/p&gt;&#xA;" OwnerUserId="12750" LastActivityDate="2011-01-09T18:11:25.210" CommunityOwnedDate="2011-01-09T18:11:25.210" CommentCount="4" />
  <row Id="35104" PostTypeId="2" ParentId="32591" CreationDate="2011-01-09T18:38:38.817" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596527756&quot; rel=&quot;nofollow&quot;&gt;Java Generics and Collections&lt;/a&gt; is a good book about some very important Java concepts&lt;/p&gt;&#xA;" OwnerUserId="12750" LastActivityDate="2011-01-09T18:38:38.817" />
  <row Id="35105" PostTypeId="2" ParentId="34982" CreationDate="2011-01-09T18:52:41.647" Score="2" ViewCount="" Body="&lt;p&gt;libgit2 is the only existing Git library that can be linked with a proprietary application without opening its source. Unfortunately, the Git network protocol hasn't been implemented yet -- but it is on the works and the development is moving quite fast.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think your best bet would be waiting ~1 month until the network support is ready, or switching to Java and using JGit. There are no other options when developing with Obj-C.&lt;/p&gt;&#xA;" OwnerUserId="12755" LastActivityDate="2011-01-09T18:52:41.647" CommentCount="1" />
  <row Id="35106" PostTypeId="2" ParentId="35074" CreationDate="2011-01-09T18:56:40.880" Score="24" ViewCount="" Body="&lt;p&gt;What you are saying is among other things that if you essentially stay on single branch, then you don't need distributed version control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is true, but isn't it a needlessly strong restriction to your way of working, and one that doesn't scale well to multiple locations in multiple timezones?  Where should the central subversion server be located, and should everybody go home if that server for some reason is down?&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;DVCSes are to Subversion, what Bittorrent is to ftp&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;(technically, not legally).  Perhaps if you think that over, you might understand why it is such a large leap forward?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me, our switch to git, immediately resulted in&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Our backups being easier to do (just &quot;git remote update&quot; and you're done)&lt;/li&gt;&#xA;&lt;li&gt;Easier to commit small steps when working without access to the central repository.  You just work, and synchronize when you come back to the network hosting the central repository.&lt;/li&gt;&#xA;&lt;li&gt;Faster Hudson builds.  Much, much faster to use git pull than updating.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So, consider why bittorrent is better than ftp, and reconsider your position :)&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Note:  It has been mentioned that there are use-cases where ftp is quicker and than bittorrent.  This is true in the same way that the backup file your favorite editor maintains is quicker to use than a version control system.  &lt;/p&gt;&#xA;" OwnerUserId="1249" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2011-06-05T20:58:52.053" LastActivityDate="2011-06-05T20:58:52.053" CommentCount="16" />
  <row Id="35108" PostTypeId="2" ParentId="610" CreationDate="2011-01-09T19:18:48.790" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Haskell:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The &lt;code&gt;do&lt;/code&gt; statement in haskell allows monadic composition:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;do putStr &quot;What is your first name? &quot;&#xA;   first &amp;lt;- getLine&#xA;   putStr &quot;And your last name? &quot;&#xA;   last &amp;lt;- getLine&#xA;   let full = first ++ &quot; &quot; ++ last&#xA;   putStrLn (&quot;Pleased to meet you, &quot; ++ full ++ &quot;!&quot;)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2011-01-09T19:18:48.790" CommunityOwnedDate="2011-01-09T19:18:48.790" />
  <row Id="35109" PostTypeId="2" ParentId="35087" CreationDate="2011-01-09T19:19:29.450" Score="1" ViewCount="" Body="&lt;p&gt;If you want to contribute in new features of your product, I highly suggest you to get some interest in the business.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can do that by &lt;strong&gt;asking questions&lt;/strong&gt;. Ask until your understand. If you are not sure, ask another question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to talk with business people more often. Try to understand how your stuff is going to be used. How you are going to improve their life. Read magazine and articles of your industry. This process will certainly contribute in making you more aware of what you do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think this is one of the factor that makes the difference between a &lt;strong&gt;just developer&lt;/strong&gt; and a &lt;strong&gt;great developer&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Great developers ask lot of questions&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-09T19:19:29.450" />
  <row Id="35110" PostTypeId="2" ParentId="35076" CreationDate="2011-01-09T19:31:39.460" Score="0" ViewCount="" Body="&lt;p&gt;I used a similar approach for status pages that I wanted 100% pure HTML.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you have no restriction on the machine that can generate the pages, I suggest you to use any popular scripting language you know, like &lt;strong&gt;PHP&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my case, I simply maintained &lt;strong&gt;ASP.NET pages&lt;/strong&gt; in a local project, but the output was the generated HTML pages. For that I used &lt;a href=&quot;http://msdn.microsoft.com/es-es/library/system.web.hosting.applicationhost.aspx&quot; rel=&quot;nofollow&quot;&gt;ApplicationHost&lt;/a&gt;. Here is an example (&lt;code&gt;input&lt;/code&gt; is the path to an ASPX page):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;    public static string GenerateToHtml(string input)&#xA;    {&#xA;        string template = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), &quot;Host\\input.aspx&quot;);&#xA;&#xA;        File.Copy(input, template, true);&#xA;&#xA;        VirtualHost host = (VirtualHost)ApplicationHost.CreateApplicationHost(&#xA;                                                       typeof(VirtualHost),&#xA;                                                       &quot;/Host&quot;,&#xA;                                                       Path.GetDirectoryName(template));&#xA;&#xA;        // We must get with the filename only. If we use a full path we get a Bad Request&#xA;        string content = host.GetContent(Path.GetFileName(template), string.Empty);&#xA;        File.Delete(template);&#xA;        return content;&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-09T19:31:39.460" />
  <row Id="35111" PostTypeId="2" ParentId="35076" CreationDate="2011-01-09T19:37:40.920" Score="0" ViewCount="" Body="&lt;p&gt;All recent versions of MS Word will Save As a web page (.html or .html).  I just checked on the oldest version I have (Word 2002) and it is available.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I believe the same option exists in Open Office, although I don't have it currently installed.&lt;/p&gt;&#xA;" OwnerUserId="2509" LastActivityDate="2011-01-09T19:37:40.920" />
  <row Id="35112" PostTypeId="2" ParentId="35076" CreationDate="2011-01-09T19:39:22.887" Score="1" ViewCount="" Body="&lt;p&gt;This tool was created for python, but I believe can be used for other projects too. Django uses it. &lt;a href=&quot;http://sphinx.pocoo.org/&quot; rel=&quot;nofollow&quot;&gt;http://sphinx.pocoo.org/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="9753" LastActivityDate="2011-01-09T19:39:22.887" CommentCount="2" />
  <row Id="35113" PostTypeId="2" ParentId="31738" CreationDate="2011-01-09T20:09:42.017" Score="0" ViewCount="" Body="&lt;p&gt;I use NetBeans (mostly because that's what I use for Java and C and I don't want many extra IDEs) on (K)ubuntu. I also often use Kate or Vim for quick edits. For version control, I use Subversion (integrated into NetBeans). I use a home server as the SVN server (running Ubuntu Server Edition).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Oh yeah, for smaller projects I'm often just fine with Vim+Console.&lt;/p&gt;&#xA;" OwnerUserId="12750" LastActivityDate="2011-01-09T20:09:42.017" />
  <row Id="35114" PostTypeId="2" ParentId="35081" CreationDate="2011-01-09T20:14:58.520" Score="0" ViewCount="" Body="&lt;p&gt;What the client wants.&#xA;My interpretation of what the client wants.&#xA;The tools I have available to build what the client wants.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-09T20:14:58.520" />
  <row Id="35115" PostTypeId="2" ParentId="35074" CreationDate="2011-01-09T20:28:55.830" Score="3" ViewCount="" Body="&lt;p&gt;With respect to performance, Git or any other DVCS has a big advantage over SVN when you have to switch from one branch to another, or to jump from one revision to another.  As everything is stored locally, things are &lt;em&gt;much quicker&lt;/em&gt; than for SVN.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This alone could make me switch!&lt;/p&gt;&#xA;" OwnerUserId="602" LastActivityDate="2011-01-09T20:28:55.830" CommentCount="2" />
  <row Id="35117" PostTypeId="2" ParentId="34098" CreationDate="2011-01-09T21:13:10.753" Score="0" ViewCount="" Body="&lt;p&gt;Erlang is a multi-threading oriented language, it has a very specific purpose. I'm not saying it has bad concepts, because the syntax looks quite neat, but in terms of programmer-friendliness, nothing can beat python.&#xA;Ruby is also a good language, but its purpose is a little more specific in terms of abstracted-do-it-like-yoda-would-program, but it ends in doing it like scheme/smalltalk&lt;/p&gt;&#xA;" OwnerUserId="5024" LastActivityDate="2011-01-09T21:13:10.753" />
  <row Id="35119" PostTypeId="2" ParentId="35074" CreationDate="2011-01-09T21:42:08.913" Score="17" ViewCount="" Body="&lt;p&gt;The killer feature of distributed version control systems is the distributed part.  You don't checkout a &quot;working copy&quot; from the repository, you clone an entire copy of the repository.  This is huge, as it provides powerful benefits:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&lt;strike&gt;You can enjoy the benefits of version control, even when you don't have internet access such as...&lt;/strike&gt;  This one is unfortunately overused and overhyped as a reason DVCS is awesome---it is just not a strong selling point as many of us find ourselves coding without internet access about as often as it starts raining frogs.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The real reason having a local repository is killer is that &lt;strong&gt;you have total control over your commit history before it gets pushed to the master repository&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Ever fixed a bug and ended up with something like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;r321 Fixed annoying bug.&#xA;r322 Argh, unexpected corner case to annoying bug in r321!&#xA;r323 Ok, really fixed corner case in r322&#xA;r324 Oops, forgot to remove some debugging code related to r321&#xA;...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;And so on.  History like that is messy---there was really only one fix, but now the implementation is spread between many commits that contain unwanted artifacts such as the addition and removal of debugging statements.  With a system like SVN, the alternative is to &lt;em&gt;not commit&lt;/em&gt; (!!!) until everything is working in order to keep the history clean. Even then, mistakes slip by and Murphy's Law is waiting to brutalize you when significant amounts of work are not protected by version control.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Having a local clone of the repository, &lt;em&gt;that you own&lt;/em&gt;, fixes this as you can re-write history by continuously rolling the &quot;fix it&quot; and &quot;oops&quot; commits into the &quot;bug fix&quot; commit.  At the end of the day, one clean commit gets sent to the master repository that looks like:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;r321 Fixed annoying bug.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Which is the way it should be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ability to re-write history is even more powerful when combined with the branching model.  A developer can do work that is entirely isolated within a branch and then when it's time to bring that branch into the trunk you have all sorts of interesting options:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Do a plain vanilla &lt;em&gt;merge&lt;/em&gt;.  Brings everything in warts and all.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Do a &lt;em&gt;rebase&lt;/em&gt;.  Allows you to sort through the branch history, re-arrange the order of commits, throw commits out, join commits together, re-write commit messages---even edit commits or add new ones! &lt;strong&gt;A distributed version control system has deep support for code review.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Once I learned how local repositories allowed me to edit my history for the sake of the sanity of my fellow programmers and my future self, I hung up SVN for good.  My Subversion client is now &lt;code&gt;git svn&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Allowing developers and managers to exercise editorial control over commit history results in better project history and having clean history to work with really helps my productivity as a programmer.  If all this talk about &quot;rewriting history&quot; scares you, don't worry as that is what central, public or master repositories are for.  History may (and should!) be re-written up to the point where someone brings it into a branch in a repository that other people are pulling from.  At that point the history should be treated as though carved upon a stone tablet.&lt;/p&gt;&#xA;" OwnerUserId="12661" LastActivityDate="2011-01-09T21:42:08.913" CommentCount="5" />
  <row Id="35120" PostTypeId="2" ParentId="35081" CreationDate="2011-01-09T21:49:42.777" Score="1" ViewCount="" Body="&lt;h2&gt;The customer.&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Without meeting their requirements, there is no application.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastActivityDate="2011-01-09T21:49:42.777" />
  <row Id="35121" PostTypeId="2" ParentId="34877" CreationDate="2011-01-09T22:00:15.497" Score="5" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Tell your Client the following:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The &lt;strong&gt;standard&lt;/strong&gt; approach would be to use either RESTful/ SOAP.&lt;/li&gt;&#xA;&lt;li&gt;SQL Queries should be &lt;strong&gt;stored procedures&lt;/strong&gt;. There should be &lt;strong&gt;no&lt;/strong&gt; reason to send RAW SQL over the wire.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Your PHP developer is either:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Unable:&lt;/strong&gt; Then he is an incompetent developer.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Unwilling:&lt;/strong&gt; Then he is ignorant of standard programming practices.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2011-01-09T22:00:15.497" />
  <row Id="35122" PostTypeId="2" ParentId="34877" CreationDate="2011-01-09T22:12:14.660" Score="3" ViewCount="" Body="&lt;p&gt;After reading &lt;a href=&quot;http://programmers.stackexchange.com/users/12727/user12727&quot;&gt;user12727&lt;/a&gt;'s answer (the programmer in quesiton, currently voted at -6), I couldn't help to point out that his solution sounds a lot like &lt;a href=&quot;http://trollscience.com/&quot; rel=&quot;nofollow&quot;&gt;troll science&lt;/a&gt; to me (he only missed the &quot;problem developers?&quot; at the end). Mind also the attitude.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, how pathetic and desperate is trying to support his own views through false profiles... he is clearly a troll...&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Fire the troll you hired&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/DWfbE.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It will be a valuable lesson and a bigger favor to him than not firing him (if he is still unwilling to learn and willfully ignorant).&lt;/p&gt;&#xA;" OwnerUserId="10869" LastEditorUserId="1249" LastEditorDisplayName="" LastEditDate="2011-01-10T23:25:04.000" LastActivityDate="2011-01-10T23:25:04.000" />
  <row Id="35123" PostTypeId="2" ParentId="29580" CreationDate="2011-01-09T22:35:10.217" Score="3" ViewCount="" Body="&lt;p&gt;IME, salaries between the 2 are fairly comparable. An excellent network engineer with 10+ years experience may top out a bit higher than a comparable 10+ years of experience dev, but I think the median ranges are +- 10%. Then again, a mediocre software developer with a million dollar idea could be the next Bill Gates - network engineers aren't really going to have that opportunity.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Networking does change slower than software. With software, you're expected to keep up with the latest frameworks and tools (one reason it's difficult to command too much of a premium for your 10+ years experience, since a lot of it is with deprecated toolsets). Networking is a bit more forgiving - since everything needs to play well together, innovation happens at a slower pace. Generally, as you go up in experience, you're dealing with larger and more complex networks - but the toolsets are similar.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Network engineers are usually pretty isolated from the business domain - there's little to no benefit for them to understand how a particular company does accounting, sales, etc. It's all bits and bytes to them. A good software dev however, will need to understand these things - or the solutions will suffer. A good software dev should also have an understanding of UX design - networks have no UX to speak of.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, networking doesn't descend into the various cliques we have with programming. Cisco is dominant, but I've never seen a flamewar erupt between Cisco engineers vs. Jupiter engineers - at the end of the day, their technologies are quite similar. Quite unlike Ruby vs. .NET developers. This means you don't get pigeon-holed quite as much. Eg., I have 6 or 7 years experience with .NET - but I could only expect an entry-level job with a Ruby company. Note that for less specialized network engineers - who will bleed into sysadmin roles - there is still a rift between *nix and Windows.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for stress, the life of a network engineer IMO is much more stressful. They generally don't have much in the way of a test or QA environment, so changes are made in production. A largeish network will be paranoid about change management procedures, automation, etc. - since any mistake will be much more devastating (and less likely to be caught beforehand) than a software bug. Generally, they're on call 24x7. They mainly use vendor products, which opens them up to all the annoyances of dealing with vendors (useless support, buggy products, frequent patching, lackluster documentation, pointing fingers at &quot;the other guy's&quot; equipment, etc.). OTOH - software devs have to deal with shoddy requirements, unrealistic expectations, larger teams, technology treadmills, and learning the business domain - so I guess it depends on what you find annoying.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I was to sum the differences up as succinctly as possible - it'd probably be something pithy like &quot;software engineers focus on learning, network engineers focus on not making mistakes&quot;. &lt;/p&gt;&#xA;" OwnerUserId="12328" LastActivityDate="2011-01-09T22:35:10.217" CommentCount="1" />
  <row Id="35124" PostTypeId="1" AcceptedAnswerId="35132" CreationDate="2011-01-09T22:42:47.957" Score="4" ViewCount="683" Body="&lt;p&gt;There is a latent belief in programming that the best programmer is N times more effective than the worst.  Where N is usually between 10 and 100.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Here are some examples:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.devtopics.com/programmer-productivity-the-tenfinity-factor/&quot; rel=&quot;nofollow&quot;&gt;http://www.devtopics.com/programmer-productivity-the-tenfinity-factor/&lt;/a&gt; &lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.joelonsoftware.com/articles/HighNotes.html&quot; rel=&quot;nofollow&quot;&gt;http://www.joelonsoftware.com/articles/HighNotes.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://haacked.com/archive/2007/06/25/understanding-productivity-differences-between-developers.aspx&quot; rel=&quot;nofollow&quot;&gt;http://haacked.com/archive/2007/06/25/understanding-productivity-differences-between-developers.aspx&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There is some debate as to whether or not it's been proven:&#xA;&lt;a href=&quot;http://morendil.github.com/folklore.html&quot; rel=&quot;nofollow&quot;&gt;http://morendil.github.com/folklore.html&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm confident in the accuracy of these statements:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The best salesmen in the world are probably 10-100 times better than the worst&lt;/li&gt;&#xA;&lt;li&gt;The best drivers in the world are probably 10-100 times better than the worst &lt;/li&gt;&#xA;&lt;li&gt;The best soccer players in the world are probably 10-100 times better than the worst&lt;/li&gt;&#xA;&lt;li&gt;The best CEOs in the world are probably 10-100 times better than the worst&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;In some cases, I'm sure the difference is greater.  In fact, you could probably say that &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The best [insert any&#xA;  skilled profession here] in the&#xA;  world are probably 10-100 times&#xA;  better than the worst&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;We don't know what N is for the rest of these professions, so why concern ourselves with what the actual number is for programming?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Can we not just say that the number is large enough so that it's very important to hire the best people and move on already?&lt;/p&gt;&#xA;" OwnerUserId="1578" LastActivityDate="2011-01-10T07:31:17.933" ClosedDate="2011-01-10T09:50:07.637" Title="The best programmer is N times more effective than the worst? Who Cares?" Tags="&lt;productivity&gt;&lt;research&gt;" AnswerCount="13" CommentCount="8" />
  <row Id="35125" PostTypeId="2" ParentId="34098" CreationDate="2011-01-09T22:49:21.303" Score="0" ViewCount="" Body="&lt;p&gt;I would start with Python, easy to learn, large community and best of all it will  help you with other sysadmin tasks that may be a pain to do in bash or C#.  Erlang is an awesome language and scarily effective at what it does but it has a very narrow focus compared to Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I would start by learning Python as you will find many uses for it in many places.  Take a look at Erlang later because it never hurts to have more tools in your toolbox and Erlang in particular teaches you to think about old problems in new ways which is incredibly valuable experience.&lt;/p&gt;&#xA;" OwnerUserId="12661" LastActivityDate="2011-01-09T22:49:21.303" />
  <row Id="35126" PostTypeId="2" ParentId="35124" CreationDate="2011-01-09T22:54:54.187" Score="2" ViewCount="" Body="&lt;p&gt;Just quantifying the factor isn't terribly interesting. What is interesting is why that factor exists.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is it just raw brainpower? Is it a collection of tips/rules that great programmers use (perhaps without even being aware of it)? Is it the (spoken or programming) language a programmer uses? Does mathematical training help? Is it learnable?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If we can find out &lt;em&gt;why&lt;/em&gt; some programmers are better than others, perhaps we can improve our own practices.&lt;/p&gt;&#xA;" OwnerUserId="1254" LastActivityDate="2011-01-09T22:54:54.187" CommentCount="1" />
  <row Id="35127" PostTypeId="2" ParentId="35124" CreationDate="2011-01-09T22:56:19.020" Score="3" ViewCount="" Body="&lt;p&gt;Interesting take here.  I'll tell you why this simple metric is popular:  because we're not talking about the best in the &lt;strong&gt;World&lt;/strong&gt;, we're talking about a large deviation between a given programmer population.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The same applies (yes) for the salesfolks and CEOs and soccer/football players, but luckily for said businesses they are compensated according to their results.  They are rewarded  10x-100x more than the worst. (Okay...maybe not so much with the CEOs but you get my point).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would wager that programmer compensation for the top median in the programmers group are not 10x-100x higher; their margins close maybe 2-3 orders of magnitude &lt;em&gt;less&lt;/em&gt; than that.  This is an important metric therefor to rightly determine the appropriate compensation levels for programmers who truly shine.&lt;/p&gt;&#xA;" OwnerUserId="2274" LastEditorUserId="2274" LastEditorDisplayName="" LastEditDate="2011-01-09T23:14:58.367" LastActivityDate="2011-01-09T23:14:58.367" />
  <row Id="35128" PostTypeId="2" ParentId="34098" CreationDate="2011-01-09T22:56:38.693" Score="0" ViewCount="" Body="&lt;p&gt;Do you happen to have an experienced programmer around you who know any of the technologies you are considering?  If so, ask said person!  The most important thing to have is experience and getting it ALL on your own is extremely time consuming. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the programmer knows Python, then use that.  Same for Erlang. You will want one to discuss your ideas and considerations with &lt;em&gt;before&lt;/em&gt; committing to a language or framework.  If you don't have a programmer, then be prepared to ask MANY questions here as it may save you quite a bit of time in the long run.&lt;/p&gt;&#xA;" OwnerUserId="1249" LastActivityDate="2011-01-09T22:56:38.693" />
  <row Id="35129" PostTypeId="2" ParentId="35124" CreationDate="2011-01-09T23:08:31.137" Score="1" ViewCount="" Body="&lt;p&gt;I think this might be true for most skilled professions, as you said; but at least in all the examples you put, it's relatively easy to see the results.  There are easy success metrics that anybody in management can see without being a specialist in the same profession.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is uncommon (but not unique, I guess) in that it's deeply 'magical' for others, including those that manage programming teams.  That doesn't necessarily leads to disaster; but it's an important fact to know.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The problem is not (only) that the best are far better; the problem is that it's so hard to quantify.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW, the issue is not &quot;N times more effective than the worst&quot;, it's &quot;N times more effective than &lt;strong&gt;the average&lt;/strong&gt;&quot;.  That destroys any hope of &quot;let the star leave, we'll replace him with three interns&quot;&lt;/p&gt;&#xA;" OwnerUserId="6870" LastActivityDate="2011-01-09T23:08:31.137" />
  <row Id="35130" PostTypeId="2" ParentId="35038" CreationDate="2011-01-09T23:09:55.067" Score="2" ViewCount="" Body="&lt;p&gt;I totally disagree with idea that you should give up on a company because the guy interviewing you doesn't know the answer to his question.  Even when you're working, you're going to meet people who are obstinate even when wrong.  It's a good skill to to maneuver people to the right answer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In my case, the interviewer asked how to calculate the variance of a lot of numbers on many machines.  I started by saying that the variance is the mean of the squares minus the square of the means.  He interjected, &quot;no, it's &lt;code&gt;E[(x - mu)²]&lt;/code&gt;.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I said, &quot;Yes, you're right. But your formula is the same as mine.  Let's derive it together.&quot;  And then we derived it together.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In your situation when you recognize that the interviewer is incredulous, you need to change your approach.  Tell him that it's a rarely known feature (this is to make you sound like less of a know-it-all) and if he wants you'll send him an example program or a reference to a C++ book after the interview (this is so that the interview can move gracefully forward.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Try to imagine things from his perspective.  You're going to be interviewing people one day and sometimes you'll be wrong.  How would you like a shining candidate to answer such a question?&lt;/p&gt;&#xA;" OwnerUserId="1312" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-01-30T18:35:52.243" LastActivityDate="2011-01-30T18:35:52.243" CommentCount="1" />
  <row Id="35131" PostTypeId="2" ParentId="35124" CreationDate="2011-01-09T23:17:55.757" Score="9" ViewCount="" Body="&lt;p&gt;I'm quite convinced that a large part of it is motivation. &quot;Rockstar programmers&quot; who seem to be very productive everywhere are simply people who easily summon up motivation and turn it into productivity no matter where you put them. Most people are just not wired like that. I've seen this play out many times with the &quot;rockstar&quot; programmers at various workplaces: they were the ones who could stay motivated and switched on through the most mind-numbing times and projects, where the others just lost focus and drive (and their productivity plummeted).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's not a popular thing to admit, but let's face it - most of the time, most of us are not exactly doing what we love when working a typical corporate cube farm job. So we tend to go into &quot;working just hard enough not to get fired&quot; mode easily. This is a huge productivity killer. If you've got a cube farm where 90% of the people are working just hard enough not to get fired and waiting out 5pm every day, and a couple of people are (for whatever reason) actually switched on to the work and doing it properly, of course they'll be an order of magnitude more productive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are two lessons here I think:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Firstly, hiring proven good people is important because they'll be a LOT more productive than the average people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Secondly (and this is the more crucial one), it's important to hire people who are truly interested in doing the job (not just programming, but preferably also have an interest in your project's domain). eg. The types who would do it for fun if they were independently wealthy. In my experience, it's not so much that certain people are altogether &quot;bad programmers&quot;, it's more that they are treating a job as &quot;just a job&quot;, and not fully switched on and interested in what they do. YMMV, but in my experience this is usually what's behind someone being a &quot;bad programmer&quot; - apathy for the job and lack of motivation. Programming simply isn't the sort of job that one can coast through and still be productive in by going through the motions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR version&lt;/strong&gt;: It's most important to hire people who love what they do. Corporate drones who just come in for the paycheck tend to be the most common profile of &quot;ineffective programmer&quot;.&lt;/p&gt;&#xA;" OwnerUserId="5064" LastEditorUserId="5064" LastEditorDisplayName="" LastEditDate="2011-01-10T02:16:11.907" LastActivityDate="2011-01-10T02:16:11.907" CommentCount="1" />
  <row Id="35132" PostTypeId="2" ParentId="35124" CreationDate="2011-01-09T23:19:40.420" Score="8" ViewCount="" Body="&lt;p&gt;Your examples are great, the problem is that increasing the number of developers is more complex thing that increasing the number of drivers/soccer players/whatever. So the fewer the number of developers, the more effective the job per person. In this case hiring twice as low brighter programmers will save you much more than twice the money. &lt;/p&gt;&#xA;" OwnerUserId="4484" LastActivityDate="2011-01-09T23:19:40.420" CommentCount="1" />
  <row Id="35133" PostTypeId="2" ParentId="29580" CreationDate="2011-01-09T23:19:57.237" Score="2" ViewCount="" Body="&lt;p&gt;My thoughs are this... If you are a software engineer and you are having a problem with the software you are working on its probably ok because chances are you are not expected to write a huge and difficult program in a matter of minutes or hours.  If it were that simple they wouldn't have come to you.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;On the other hand... generally speaking people don't operate computer networks unless they are vital to the operations of an organization.  If a network is not functioning then it is a serious problem, not just because its your problem to fix but because many people, potentially thousands or even millions are depending on the network to be operational.  Personally, I would find that a lot more stressful. Of course if you are just the IT guy at a local high-school it probably won't make you break a sweat... working for a bank or something is another story. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I guess it really depends on the specific work environment you end up on.  I am sure both occupations can run the gamut of stress levels.&lt;/p&gt;&#xA;" OwnerUserId="10860" LastActivityDate="2011-01-09T23:19:57.237" />
  <row Id="35134" PostTypeId="2" ParentId="31738" CreationDate="2011-01-09T23:21:50.137" Score="2" ViewCount="" Body="&lt;p&gt;I get my shell on with &lt;a href=&quot;http://www.vim.org/&quot; rel=&quot;nofollow&quot;&gt;Vim&lt;/a&gt; and &lt;a href=&quot;http://visor.binaryage.com/&quot; rel=&quot;nofollow&quot;&gt;Visor&lt;/a&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.git-scm.org&quot; rel=&quot;nofollow&quot;&gt;Git&lt;/a&gt; and &lt;a href=&quot;http://www.github.com&quot; rel=&quot;nofollow&quot;&gt;GitHub&lt;/a&gt; help me share the results with the world, &lt;a href=&quot;http://sphinx.pocoo.org&quot; rel=&quot;nofollow&quot;&gt;Sphinx&lt;/a&gt; helps me document my work for other developers and, as a consumer of Python modules, I think &lt;a href=&quot;http://pip.openplans.org&quot; rel=&quot;nofollow&quot;&gt;Pip&lt;/a&gt; is the bee's knees.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For executing project management tasks, such as building documentation, running testsuites or packing up tarballs, I usually use a &lt;code&gt;Makefile&lt;/code&gt; or a &lt;a href=&quot;http://docs.fabfile.org/&quot; rel=&quot;nofollow&quot;&gt;Fabric&lt;/a&gt; &lt;code&gt;fabfile&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When the systems I work on are complex enough that they require significant configuration, setup and dependency resolution in order to become operational, &lt;a href=&quot;http://opscode.com/chef&quot; rel=&quot;nofollow&quot;&gt;Chef&lt;/a&gt; gives me the tools I need for automating deployment.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Another tool that really helps me in general is &lt;a href=&quot;http://www.clockingit.com/&quot; rel=&quot;nofollow&quot;&gt;ClockingIt&lt;/a&gt;.  This site provides a nice place to store task lists and helps me track the time I spend on each task and record the observations I make while solving problems.  These logs have proven invaluable as future references and provide a great place to &quot;brain dump&quot; so I can clear my head without feeling like I will forget something important. &lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;To answer the second question, my area of work is scientific programming and data processing so most of my scripts serve as pipelines that connect databases or models.  Being a self-taught programmer, I am currently trying hard to integrate unit testing into my development workflow, so I don't have anything that is my go-to tool in that area yet.&lt;/p&gt;&#xA;" OwnerUserId="12661" LastEditorUserId="12661" LastEditorDisplayName="" LastEditDate="2011-01-09T23:45:42.193" LastActivityDate="2011-01-09T23:45:42.193" />
  <row Id="35135" PostTypeId="2" ParentId="35038" CreationDate="2011-01-09T23:30:07.943" Score="2" ViewCount="" Body="&lt;p&gt;In a situation like this I would propose to write a simple class with a virtual function with a body and see if it compiles.  At the very least, I would propose to google the topic.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If the interviewer takes up the challenge, admits defeat, and does not look like he is about to strangle you after that, then you should be in good shape. Otherwise, this is probably not the person &lt;em&gt;you&lt;/em&gt; want to work with.&lt;/p&gt;&#xA;" OwnerUserId="4365" LastActivityDate="2011-01-09T23:30:07.943" />
  <row Id="35136" PostTypeId="2" ParentId="35124" CreationDate="2011-01-09T23:34:09.237" Score="11" ViewCount="" Body="&lt;p&gt;Your missing an important distinction.  It is not that the best are 100 times better than the worst programmers.  (Yes you can say that statement about anything).  But actually the best are 100 times better than the &lt;strong&gt;average&lt;/strong&gt; programmer.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you put 100 average soccer players against 1 of the best, I am sorry the best would lose.  100 average salesmen are going to have sales higher than 1 of the best.  But 100 average programmers are not going to be able to produce what one of the best programmers can.&lt;/p&gt;&#xA;" OwnerUserId="12586" LastEditorUserId="12586" LastEditorDisplayName="" LastEditDate="2011-01-10T00:00:31.047" LastActivityDate="2011-01-10T00:00:31.047" CommentCount="7" />
  <row Id="35138" PostTypeId="1" CreationDate="2011-01-09T17:31:45.920" Score="5" ViewCount="539" Body="&lt;p&gt;So far the only programming language I have any experience with is Python 3, and I'm at maybe an intermediate level on that.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was thinking about picking up a book on Java programming in general and Android programming in particular. Would it be tough to start with only a Python background?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And, is Android programming harder or easier than regular Java programming?&lt;/p&gt;&#xA;" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-01-22T19:12:49.200" LastActivityDate="2011-01-22T19:12:49.200" Title="How hard would it be for a Python developer to start programming for Android?" Tags="&lt;learning&gt;&lt;java&gt;&lt;python&gt;&lt;android&gt;" AnswerCount="8" CommentCount="2" FavoriteCount="1" />
  <row Id="35139" PostTypeId="2" ParentId="35138" CreationDate="2011-01-09T17:36:50.027" Score="1" ViewCount="" Body="&lt;p&gt;Android adds the complexity of dealing with dozens or even hundreds of different devices with different form factors and what not. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also debugging will be more difficult due to limited access. But it shouldn't be to hard for someone who already mastered a programming language. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The question you should really answer is: What do you want to gain from learning the new language?&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;getting exposure to new concepts? Try Lisp, Haskell, Clojure or at least Scala&lt;/li&gt;&#xA;&lt;li&gt;do apps on your mobile device? Android or Objective C&lt;/li&gt;&#xA;&lt;li&gt;get ready for big enterprise software development? Java might be the right answer to that.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="20193" LastActivityDate="2011-01-09T23:36:58.223" CommentCount="1" />
  <row Id="35140" PostTypeId="2" ParentId="35138" CreationDate="2011-01-09T17:38:52.390" Score="1" ViewCount="" Body="&lt;p&gt;I'd say that Android programming is more than just Java programming. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you only come from a Python background you might want to learn Java first, get to know the syntax and semantics, write a few apps with user interface, and so on. Then, if you know your way around Java, Android won't be such a hard thing to program with.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The things that I found hard when beginning to write Android apps come from the fact that you won't necessarily find readymade solutions for every problem you can imagine. If you however have some hints, you can get the job done quite easily. So far I have programmed a video player and a Flickr app with a Google Maps combination, and all went quite well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To summarize, I'd say, it's &lt;strong&gt;hard&lt;/strong&gt; because&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Android of course has a large API and many classes&lt;/li&gt;&#xA;&lt;li&gt;You will need to understand how user interaction works and how to separate program logic from that&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;But on the other hand, Android programming is extremely &lt;strong&gt;easy&lt;/strong&gt; because&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It is fun to click and run your own application on a device (you should own an Android phone though, it's ways easier to debug and build on a real device)&lt;/li&gt;&#xA;&lt;li&gt;Once you know how to interact with the user, know the basic classes and know your way around threading, you'll get jobs done very quickly&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Programming for Android can be fun, at least for me it is, so just try it out!&lt;/p&gt;&#xA;" OwnerUserId="12749" LastActivityDate="2011-01-09T23:36:58.223" />
  <row Id="35141" PostTypeId="2" ParentId="35138" CreationDate="2011-01-09T17:39:48.650" Score="3" ViewCount="" Body="&lt;p&gt;I would say that the Python background will help you learn Java quite a bit; certainly with flow control etc.  The only thing you might be missing is a good understanding of classes and interfaces which will be much more sophisticated in Java than in Python.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Android environment is harder I would say as it's a fairly complicated environment, however I don't think it would be overwhelming. I think you should go for it as I don't think your time will be wasted, even if you don't manage to publish an application; I'm sure you will enjoy doing it.&lt;/p&gt;&#xA;" OwnerUserId="26306" LastActivityDate="2011-01-09T23:36:58.223" />
  <row Id="35142" PostTypeId="2" ParentId="35138" CreationDate="2011-01-09T17:46:25.387" Score="4" ViewCount="" Body="&lt;p&gt;Your programming background will help you pick up Java without much trouble. In fact, Python was a great language to start with!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Simply pick up an introductory Java book like &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0131482114&quot; rel=&quot;nofollow&quot;&gt;Just Java&lt;/a&gt;, and make sure you attempt all the exercises!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After that, you can use the Internet to get up to speed with Android development.&lt;/p&gt;&#xA;" OwnerUserId="6542" LastActivityDate="2011-01-09T23:36:58.223" />
  <row Id="35143" PostTypeId="2" ParentId="35138" CreationDate="2011-01-09T18:30:58.607" Score="1" ViewCount="" Body="&lt;p&gt;I've started to learn programming for Android with a little background of Python and found out it is still better to start it with Java knowledge. The best choice for me was Head First Java book, but it might be too simple for you, take a look. Then, as someone already said, you can use info on the web to start your Android development. Success.&lt;/p&gt;&#xA;" OwnerUserId="12753" LastActivityDate="2011-01-09T23:36:58.223" />
  <row Id="35144" PostTypeId="2" ParentId="35138" CreationDate="2011-01-09T18:44:18.350" Score="3" ViewCount="" Body="&lt;p&gt;I started Android programming with only knowledge of some Python.  Fundamentally, I find Python and Java very similar once you get past the syntax.  I would advise doing a small Java tutorial first to familiarize yourself with the language, its syntax, constructs, etc, then you should be good.  Find yourself some Android tutorials* and go for it!&lt;/p&gt;&#xA;&#xA;&lt;p&gt;*You will definitely need more than one as I have yet to find one that covers everything.  Some good sites to look at include:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://androidcore.com/&quot; rel=&quot;nofollow&quot;&gt;http://androidcore.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://androidwizard.net/&quot; rel=&quot;nofollow&quot;&gt;http://androidwizard.net/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.droidnova.com/android-3d-game-tutorial-part-i,312.html&quot; rel=&quot;nofollow&quot;&gt;http://www.droidnova.com/android-3d-game-tutorial-part-i,312.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4971" LastEditorUserId="4971" LastEditorDisplayName="" LastEditDate="2011-01-22T18:29:11.613" LastActivityDate="2011-01-22T18:29:11.613" />
  <row Id="35145" PostTypeId="2" ParentId="35138" CreationDate="2011-01-09T19:58:37.430" Score="1" ViewCount="" Body="&lt;p&gt;I would try to develop with Python if possible, Python is clean easy and sexy.&#xA;&lt;a href=&quot;http://stackoverflow.com/questions/101754/is-there-any-way-to-run-python-on-android&quot;&gt;Is there any way to run Python on Android ?&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also you may would like to checkout Appcelerator, it is a cross-mobile framework, you develop on one arch and your program works on other devices without having to rewrite your code —&#xA;&lt;a href=&quot;http://en.wikipedia.org/wiki/Appcelerator_Titanium&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Appcelerator_Titanium&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2011-01-09T23:36:58.223" />
  <row Id="35146" PostTypeId="2" ParentId="35138" CreationDate="2011-01-09T21:07:23.433" Score="0" ViewCount="" Body="&lt;p&gt;Android actually uses the full version of Java, so to write Android apps you would have to learn Java. Android does have its own set of APIs to learn, so from that aspect it is more difficult. At the same time, however, you would not need to learn Swing as Android does not use it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The following is a good Java tutorial, written by a programming professor and available for free online:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://math.hws.edu/javanotes/&quot; rel=&quot;nofollow&quot;&gt;http://math.hws.edu/javanotes/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are only interested in learning Java for Android programming, you can skip chapter 6, which teaches Swing. The first 5 chapters and chapter 7 should include just about all of the Java background you'll need to write Android apps.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To learn Android, go to &lt;a href=&quot;http://developer.android.com&quot; rel=&quot;nofollow&quot;&gt;http://developer.android.com&lt;/a&gt;, which has an abundance of tutorials and examples for almost anything you'll need. Start by clicking the &quot;Dev Guide&quot; tab, and follow the tutorial from there.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-09T23:36:58.223" />
  <row Id="35147" PostTypeId="2" ParentId="35124" CreationDate="2011-01-09T23:41:06.407" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The root cause is: &lt;em&gt;it just about&lt;/em&gt; works:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In all &lt;strong&gt;professions&lt;/strong&gt; where person is X times &lt;strong&gt;better&lt;/strong&gt;, their output is also X times &lt;strong&gt;better&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In programming, &lt;em&gt;&quot;code Vs X times better code&quot;&lt;/em&gt; does not equate to a program that &lt;strong&gt;Functions&lt;/strong&gt; X times better.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;An eloquent solution will work, but so well&#xA;  a poor solution.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;BUT&lt;/strong&gt; the root cause is, to the outside world, its works (regard-less how bad it is).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And because the perceived end value is the same to the outside world, this is what makes it different and unfair to programmers.&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2011-01-09T23:41:06.407" CommentCount="4" />
  <row Id="35148" PostTypeId="2" ParentId="35087" CreationDate="2011-01-09T23:42:10.303" Score="0" ViewCount="" Body="&lt;p&gt;Well, there are a few basics that come to mind with most features:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;Significance - Why are we doing this?  Sometimes if one can get what the story is then there may be alternatives to explore.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Priority - Is this something to be done ASAP and stop the world we are focusing this now and everyone will do their part to get this complete soon?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;Scope - How broad is the new feature?  Do they think it'll take a few years or a few hours to finish?  Are boundary conditions covered yet in the requirements,e.g. if someone tries to put in X as a number what should the system do?  This applies in a few dimensions as sometimes a small thing can become a big thing and a big thing can become a small thing depending on what is being asked.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I would suggest keeping notes at times when a feature is discussed just to keep an eye on what was discussed and possibly ask if someone could send a summary of what was agreed to be done as that can prevent miscommunication.&lt;/p&gt;&#xA;" OwnerUserId="4327" LastActivityDate="2011-01-09T23:42:10.303" />
  <row Id="35149" PostTypeId="2" ParentId="35124" CreationDate="2011-01-09T23:45:40.820" Score="0" ViewCount="" Body="&lt;p&gt;Actually, the factor N is always negative, because there is such a thing as the &lt;a href=&quot;http://en.wikipedia.org/wiki/NNPP&quot; rel=&quot;nofollow&quot;&gt;NNPP&lt;/a&gt; and the equivalent exists in about every profession (there are salesman who can turn a profitable enterprise into a loss).&lt;/p&gt;&#xA;" OwnerUserId="667" LastActivityDate="2011-01-09T23:45:40.820" />
  <row Id="35150" PostTypeId="1" CreationDate="2011-01-09T23:48:53.173" Score="1" ViewCount="157" Body="&lt;p&gt;I am working on a large(ERP level) Rails project. We have 150 tables and more than 150 models. It takes minutes to find a model. Should we add all models under the models folder or should we put them in different subfolders? Same thing goes for controllers and views.&lt;/p&gt;&#xA;" OwnerUserId="1937" LastActivityDate="2011-01-11T17:16:31.903" Title="How to organize large Rails application?" Tags="&lt;ruby-on-rails&gt;" AnswerCount="1" />
  <row Id="35151" PostTypeId="1" CreationDate="2011-01-09T23:59:30.277" Score="2" ViewCount="129" Body="&lt;p&gt;My main source of income is web development and through this I have come to enjoy the wonders of programming as my knowledge of different languages has increased over the years through work and personal play.  At some point I reached a decision that my college education was not enough and that I wanted to go back to school to get a university degree in either computer science or software engineering.  I have tried a number of things in my life and it took me a while before I found something that I feel is a passion and this is it. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is one aspect of this area of study that I find throws me off though.  I find the formal methods of proving program correctness a challenge.  It is not that I have trouble writing code correctly, I can look at an algorithm and see how it is correct or flawed but I struggle sometimes to translate this into formal definitions.  I have gotten perfect or near perfect marks on every programming assignment I have done at the college level but I recently got a swath of textbooks from a guy from univeristy of waterloo and found that I have had trouble when it comes to a few of the formalisms. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Well at this point its really just one thing specifically, It would really help me if some of you could provide to me some good examples of common mistakes which lead to corrupted invariants, especially in loops.  I have a few software engineering and computer science textbooks but they only show how things should be.  I would like to know how things go wrong so that it is easier to recognize when it happens.  Its almost embarrassing to broach this subject because formalisms are really basic foundations upon which matters of substance are built.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to overcome this now so that it does not hinder me later.  &lt;/p&gt;&#xA;" OwnerUserId="10860" LastActivityDate="2011-01-10T03:09:05.913" Title="Common mistakes which lead to corrupted invariants" Tags="&lt;invariants&gt;" AnswerCount="3" CommentCount="1" />
  <row Id="35152" PostTypeId="1" AcceptedAnswerId="35157" CreationDate="2011-01-10T00:01:47.780" Score="2" ViewCount="226" Body="&lt;p&gt;Hello,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've recently become responsible for choosing which source control and project management software to use for a company that employs me. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Currently it uses Jira (project management) and Subversion (version control).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I know there are many other options out there -- the ones I know about are all in this article &lt;a href=&quot;http://mashable.com/2010/07/14/distributed-developer-teams/&quot; rel=&quot;nofollow&quot;&gt;http://mashable.com/2010/07/14/distributed-developer-teams/&lt;/a&gt; .&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm leaning towards recommending they just stay with what they have as it seems workable and any change would have to be worth the cost of switching to say github/basecamp or some other solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some details on the team:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It's a distributed development shop. Meetings of the whole team in one&#xA;room are rare.&lt;/li&gt;&#xA;&lt;li&gt;It's currently a very small development team (three developers).&lt;/li&gt;&#xA;&lt;li&gt;The project management&#xA;software is used by developers and a&#xA;product manager or two.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What are you experiences with version control and project management web applications?  Are there any you would recommend and you think are worth the switching cost of time to learn new services / implementing the change?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit:  After educating myself further on the options it appears DVCS offer powerful benefits that may be worth investing in now as opposed to later in the company's lifetime when the switching cost is higher: &lt;a href=&quot;http://programmers.stackexchange.com/questions/35074/im-a-subversion-geek-why-i-should-consider-or-not-consider-mercurial-or-git-or&quot;&gt;I'm a Subversion geek, why I should consider or not consider Mercurial or Git or any other DVCS?&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="8474" LastEditorUserId="8474" LastEditorDisplayName="" LastEditDate="2011-01-10T00:50:01.420" LastActivityDate="2011-01-10T11:50:48.373" Title="Distributed Development Tools -- (Version control and Project Management)" Tags="&lt;project-management&gt;&lt;version-control&gt;&lt;distributed-development&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="35153" PostTypeId="2" ParentId="29580" CreationDate="2011-01-10T00:08:25.733" Score="1" ViewCount="" Body="&lt;p&gt;I left a job that involved network admin tasks for full-time programming. Fixing email, month end, chasing viruses, phone systems, no thanks. Out of all the bugs you'll ever fix, very few occur in production systems during off-ours that will require a programmer instead of a support person. &lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-10T00:08:25.733" />
  <row Id="35154" PostTypeId="2" ParentId="35124" CreationDate="2011-01-10T00:19:49.510" Score="2" ViewCount="" Body="&lt;p&gt;Don't underestimate the impact an exceptional programmer has on the rest of the team. Coding standards, and production get lifted all around as well as someone who will be able to solve almost any problem. Otherwise, some poor manager has to go back and deny a request.&lt;/p&gt;&#xA;" OwnerUserId="855" LastActivityDate="2011-01-10T00:19:49.510" />
  <row Id="35155" PostTypeId="2" ParentId="35151" CreationDate="2011-01-10T00:19:49.633" Score="3" ViewCount="" Body="&lt;h2&gt;Common Numeric Problems&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Overflow, underflow.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is wrong with&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int newArrayLength = arr.length * 2;&#xA;T[] newArray = new T[newArrayLength];&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;?&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Floating Point&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Failure to account for NaN when comparing using &amp;lt;, &gt;, &amp;lt;=, =&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is wrong with this&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;double max(double a, double b) { return a &amp;lt; b ? b : a; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;?&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Filtering&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Failing to account for duplicates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is wrong with&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;int numberOfInstancesIn(T[] items, T[] set) {&#xA;  int count = 0;&#xA;  for (int i = 0; i &amp;lt; items.length; ++i) {&#xA;    T item = items[i];&#xA;    for (int j = 0; j &amp;lt; set.length; ++j) {&#xA;      if (item == set[j]) { ++count; }&#xA;    }&#xA;  }&#xA;  return count;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;h2&gt;Assuming two objects are not the same because they have different names&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;What is wrong with&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class Pair {&#xA;  T* a;&#xA;  T* b;&#xA;&#xA;  ~C() {&#xA;    delete a;&#xA;    delete b;&#xA;  }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;?&lt;/p&gt;&#xA;" OwnerUserId="12691" LastEditorUserId="12691" LastEditorDisplayName="" LastEditDate="2011-01-10T02:05:39.283" LastActivityDate="2011-01-10T02:05:39.283" />
  <row Id="35156" PostTypeId="2" ParentId="19662" CreationDate="2011-01-10T00:30:45.913" Score="-1" ViewCount="" Body="&lt;p&gt;If you want to try Delphi XE, Embarcadero leaves you no other choice but to get it illegally. Finding the torrent shouldn't take more than 30 seconds though.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you like it: &lt;strong&gt;buy it&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;If you don't: no loss for anyone.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="4477" LastActivityDate="2011-01-10T00:30:45.913" CommentCount="1" />
  <row Id="35157" PostTypeId="2" ParentId="35152" CreationDate="2011-01-10T00:41:43.227" Score="2" ViewCount="" Body="&lt;p&gt;As you stated, switching earlier is far easier then switching late.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Raise the benefits with the team and if they agree, start working on putting it in place now.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: Just to attend to your project management section of the question, we actually use JIRA with one of our vendors and have found it extremely useful (Sorry Mr Spolsky, I haven't been able to use FogBugz yet). I've also used Redmine, but found the experience in JIRA more complete.&lt;/p&gt;&#xA;" OwnerUserId="2673" LastEditorUserId="2673" LastEditorDisplayName="" LastEditDate="2011-01-10T04:49:06.090" LastActivityDate="2011-01-10T04:49:06.090" CommentCount="3" />
  <row Id="35158" PostTypeId="1" CreationDate="2011-01-10T00:11:12.020" Score="5" ViewCount="245" Body="&lt;p&gt;I was wondering what are the best computer science departments in Europe?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not interested in a specific area of computer science, but what are&#xA;the most &quot;famous&quot; universities for computer science based on their professors&#xA;and research(in any area).&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T01:13:55.460" Title="Good Computer Science Deparments in Europe" Tags="&lt;computer-science&gt;&lt;university&gt;" AnswerCount="1" CommentCount="3" FavoriteCount="1" />
  <row Id="35159" PostTypeId="1" CreationDate="2011-01-10T01:09:17.037" Score="0" ViewCount="77" Body="&lt;p&gt;I recently started using Haskell Platform. I created a source file using Wordpad and named it add. I tried double clicking it so I can open it in ghci but I get&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&amp;lt;[1 of 1] Compiling Main                                 (C:\add.hs,interpeted)&#xA;C:\add.hs:1:6: parse error on input '\'&#xA;Failed modules loaded: none.&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do I do so I can use my source file?. Should I use another text editor?. Thanks&lt;/p&gt;&#xA;" OwnerUserId="12768" LastActivityDate="2011-01-10T01:25:24.127" Title="Haskell Using Source File Problems" Tags="&lt;haskell&gt;&lt;source&gt;" AnswerCount="1" />
  <row Id="35160" PostTypeId="2" ParentId="35158" CreationDate="2011-01-10T01:13:55.460" Score="2" ViewCount="" Body="&lt;p&gt;You might find the Times Higher Education University Rankings useful.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.timeshighereducation.co.uk/world-university-rankings/2010-2011/europe.html&quot; rel=&quot;nofollow&quot;&gt;2011 Europe (all subject)&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.timeshighereducation.co.uk/world-university-rankings/2010-2011/engineering-and-IT.html&quot; rel=&quot;nofollow&quot;&gt;2011 Engineering &amp;amp; Technology&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They used to subclassify to Computing directly.  But the engineering tables, once you filter out non-european institutions are not too bad.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend Imperial, Edinburgh, Cambridge or York in the UK.  Elsewhere in Europe, harder to call.  Swiss Federal Institute of Technology, Ecole Polytechnique in France, The Denmark Technical University (forget the name), a few others are good, there's a couple of decent ones in Germany that the name escapes me for.&lt;/p&gt;&#xA;" OwnerUserId="7990" LastActivityDate="2011-01-10T01:13:55.460" CommentCount="2" />
  <row Id="35161" PostTypeId="2" ParentId="35159" CreationDate="2011-01-10T01:25:24.127" Score="4" ViewCount="" Body="&lt;p&gt;Wordpad is what is known as a &lt;em&gt;rich text editor&lt;/em&gt; - it uses data embedded in the file to do things like font sizes, typefaces, bolding and italicizing text, and so on.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In general, compilers and interpreters expect &lt;em&gt;plain text&lt;/em&gt; files - files containing just the characters they are to parse.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yes, you should use another editor. Notepad would work, or you could download something a bit more full-featured.&lt;/p&gt;&#xA;" OwnerUserId="9029" LastActivityDate="2011-01-10T01:25:24.127" />
  <row Id="35162" PostTypeId="2" ParentId="35124" CreationDate="2011-01-10T01:32:16.610" Score="1" ViewCount="" Body="&lt;p&gt;One developer being &quot;N times better&quot; is not so much about how &lt;em&gt;fast&lt;/em&gt; they build stuff but rather about the &lt;strong&gt;quality&lt;/strong&gt; of their code. While getting code written faster may give you &quot;linear&quot; gains, the &quot;quality&quot; of code tends to work like compound interest and give &quot;exponential&quot; gains. It's not that speed doesn't matter - iterating fast &lt;em&gt;is&lt;/em&gt; important - but good code provides a base that supports not just faster development, but also an order of magnitude more features/modularity/extensibility/performance/etc. On the other hand, bad code accrues technical debt at a frightening rate and slows down good and bad programmers alike. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The exact value of N is not particularly important, but it IS important to get the message out that software engineers are not like interchangeable cogs. Some companies in the software industry prefer to think of each programmer as a &quot;resource&quot; that can be swapped in and out as necessary. They do foolish math like X resources should be able to complete Y work in Z time without any consideration for who those X people are or what project Y entails. Since the difference between a good programmer and a bad one can lead to exponential gains or losses (as explained above), this mentality is horribly flawed and needs to be debunked as often as possible.&lt;/p&gt;&#xA;" OwnerUserId="5939" LastActivityDate="2011-01-10T01:32:16.610" />
  <row Id="35163" PostTypeId="1" AcceptedAnswerId="35165" CreationDate="2011-01-09T10:34:51.287" Score="11" ViewCount="441" Body="&lt;p&gt;Just wondering if there are any reasons why a Java developer should learn &lt;strong&gt;Ruby on Rails&lt;/strong&gt; knowing that there are technologies such as &lt;em&gt;Grails&lt;/em&gt; or (especially) &lt;strong&gt;Spring Roo&lt;/strong&gt; that can be more familiar?&lt;/p&gt;&#xA;" OwnerUserId="15967" LastActivityDate="2011-01-10T01:43:27.380" Title="Reasons for a Java Developer to learn RoR" Tags="&lt;java&gt;&lt;ruby-on-rails&gt;&lt;grails&gt;&lt;spring-roo&gt;" AnswerCount="6" CommentCount="3" FavoriteCount="1" />
  <row Id="35164" PostTypeId="2" ParentId="35163" CreationDate="2011-01-09T10:45:08.120" Score="1" ViewCount="" Body="&lt;p&gt;Learning other languages will help you understand concepts better in your main language.  Many times I've learned something new about how to do something better in Java just by playing around with PHP, C#, JavaScript, Python, or some other languages. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I would recommend you play around with Ruby if you have time, but the specific language itself probably won't be useful to you if you're using Java at work.&lt;/p&gt;&#xA;" OwnerUserId="12611" LastActivityDate="2011-01-10T01:43:27.380" CommentCount="2" />
  <row Id="35165" PostTypeId="2" ParentId="35163" CreationDate="2011-01-09T11:26:37.097" Score="10" ViewCount="" Body="&lt;p&gt;Here's a couple of tips:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;RoR is a DSL for webdev, the API distilled to its most pure form. Everything makes sense and can be expressed very easy. Highly readable. I am a RoR dev and programming in any Java framework is a struggle. None of the RoR framework clones nor Ruby language clones managed to catch up. &lt;a href=&quot;http://www.youtube.com/watch?v=up0kiOJvUpI&amp;amp;t=6m55s&quot; rel=&quot;nofollow&quot;&gt;Video&lt;/a&gt; it's about &lt;em&gt;&quot;unique details and sensibilities and individual choices [...] individual details&quot;&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;RoR is community driven with no commercial entity nagging (springsource?).&lt;/li&gt;&#xA;&lt;li&gt;the secret is not RoR (the framework), the secret is the Ruby language.&lt;/li&gt;&#xA;&lt;li&gt;integrate with JVM via &lt;a href=&quot;http://jruby.org/&quot; rel=&quot;nofollow&quot;&gt;JRuby&lt;/a&gt; (mature technology)&lt;/li&gt;&#xA;&lt;li&gt;Java to Ruby is easy (both imperative, object oriented, similar syntax)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://railsforzombies.org/&quot; rel=&quot;nofollow&quot;&gt;Rails for Zombies&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://guides.rubyonrails.org/&quot; rel=&quot;nofollow&quot;&gt;Rails Guides&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://railstutorial.org/ruby-on-rails-tutorial-book&quot; rel=&quot;nofollow&quot;&gt;Tutorial book&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&quot;http://rubyonrails.org/screencasts/rails3&quot; rel=&quot;nofollow&quot;&gt;Rails3 screencasts&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T01:43:27.380" CommentCount="4" />
  <row Id="35166" PostTypeId="2" ParentId="35163" CreationDate="2011-01-09T12:01:52.573" Score="1" ViewCount="" Body="&lt;p&gt;I would invest my time to study patterns, improve code design, learn architectural issues, which are probably most of times generic for all languages. It makes you better and better at development. Sometimes you need to dive deeper into your main language (e.g. I spent time investigating how JVM behaves, it helps me understand java better), it helps you also learn other languages and their ideology faster (just comparing them to your already well known language). If from this POV studying RoR can help you &quot;notice&quot; what you could not notice before, then this investment is valuable (e.g. you see new approach, which you can use developing with Java; you can find new directions to grow).&lt;br&gt;&#xA;On the other hand, to study Ruby and then RoR to see new advantages can take time, so the question is if it is really good strategy to grow :) It depends. E.g. once I decided that it would be better to start with Italian if I want to study French, for smb. else it could be better to spend time only with French, without Italian ;)&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T01:43:27.380" />
  <row Id="35167" PostTypeId="2" ParentId="35163" CreationDate="2011-01-09T13:37:12.353" Score="2" ViewCount="" Body="&lt;p&gt;Learning RoR will make you a better programmer. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is not because it's a better framework but because it is outside of your comfort zone. Learning grails is very close to using hibernate &amp;amp; spring in java, so while you maybe more productive quicker (being a java guy) you won't learn as much as if you really have to start from scratch learning Ruby and rails.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for not learning RoR: if you are learning this new skill or commercial/professional reasons then I would recommend learning grails over RoR, again not because it is better but because you are much more likely to get a gig as an experienced java and grails guy than a java and RoR guy. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do learn spring roo please come back and let me know what it's useful for.&lt;/p&gt;&#xA;" OwnerUserId="9935" LastActivityDate="2011-01-10T01:43:27.380" CommentCount="2" />
  <row Id="35168" PostTypeId="2" ParentId="35163" CreationDate="2011-01-09T14:39:23.260" Score="5" ViewCount="" Body="&lt;p&gt;I myself, being a heavy Java believer previously, switched to RoR 2 years ago ... I have to say it was painful (much more painful than I expected and I even had some Ruby basics and was familiar with Groovy at the time), but I think I just brought too much Java &quot;baggage&quot; with me ...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;maybe after half year actively using Rails everyday I started getting really familiar and comfortable with the Rails way of doing things (at this time I've dealt with every layer of the framework including a lot of Rails plugins and Ruby gems).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Ruby and especially the &quot;accent&quot; used in Rails is beautiful, here are some of my reason I thing a Java developer should go with Rails (instead of Grails/ROO) :&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;having a real OOP language under You fingers with some awesome features (mixins, blocks, the singleton class), Ruby makes You think differently about Classes and Objects than Java or Groovy&lt;/li&gt;&#xA;&lt;li&gt;conventions over configuration, I know everybody does say that, but in Rails I not only passively used this technique of minimizing configuration crap, but I even actively leverage it during programming (I know others such as Grails do CoC as well, but there's always going to be baggage as there are libraries like Hibernate underneath that need to be configured)&lt;/li&gt;&#xA;&lt;li&gt;simple web development, I had previous experience mostly with JSP/JSF, the Ruby approach seemed much simpler and &quot;right&quot; - MVC with simple reusable templates with a lot of helpers ready to be used + all the layers fill in nicely with each other.&lt;/li&gt;&#xA;&lt;li&gt;I really leveraged/understood all kinds of testing - Ruby is full of great testing libraries and I think the Ruby community did most of today's testing innovations&lt;/li&gt;&#xA;&lt;li&gt;You are always in control of the code, if You hit a bug in a library You can quickly deal with it, I know it might sound crazy to be able to &quot;monkey-patch&quot; everything, but it really gives You control over You whole application&lt;/li&gt;&#xA;&lt;li&gt;Ruby made me realize that Java has thrown developers away from system (UNIX) programming, and I do think there's some real beauty and value leveraging some of the old school tricks and Ruby does not stand in Your way like Java does !&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Now I do not think RoR is perfect, I even do find some features from Java libraries missing or better, but overall the advantages are really worth it ... esp for a Java programmer. Imagine how easy it was for me, with a previous Java background, to deploy a Rails application to Tomcat or to integrate with existing Java APIs using JRuby - thus &lt;strong&gt;doubling my Java power&lt;/strong&gt; :) !&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really think Ruby has made me a better programmer and I often regret Java programmers stuck to the JVM. Ruby will make You happy (after the initial struggle) and You'll discover a whole new world of programming beauty ... I promise :-) !&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T01:43:27.380" />
  <row Id="35169" PostTypeId="2" ParentId="35163" CreationDate="2011-01-09T14:55:00.290" Score="2" ViewCount="" Body="&lt;p&gt;I am a Java developer and I am pretty efficient in it. I have started Rails recently. I did not find a compelling reason for Rails but I guess there were two psychological reasons behind doing so:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Rails bandwagon is very seductive&lt;/strong&gt;. Just see this &lt;a href=&quot;http://www.youtube.com/watch?v=PQbuyKUaKFo&quot; rel=&quot;nofollow&quot;&gt;Ruby vs Java ad&lt;/a&gt; done is Mac vs PC ad style. But jokes apart, 37Signals and ThoughtWorks really made it seem like Elixir with promise of &quot;&lt;em&gt;... optimized for developers productivity and happiness...&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Every time I meet a developer who is starting his carrier, asks &lt;strong&gt;why not start with Rails&lt;/strong&gt;? They make Java sound like a bad choice that can't cope fast development. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;So, I started Rails for one of my personal projects. I found out:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Java development is &lt;strong&gt;as fast and agile as Rails&lt;/strong&gt;. If you know Java.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Rails does have small learning curve&lt;/strong&gt;. A lot of things you don't really need to know. Scaffolding is the perhaps the best thing. So, it's good for starting -- you may want to dissect the stuffs later to see inner workings.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Roo is pretty good -- and it follows Rails ideology&lt;/strong&gt;. I have been hearing Java is far more stable and faster than Ruby. I would prefer Roo over Rails but Roo is still to be mature.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ruby is terse&lt;/strong&gt;. And this is the only thing that I like about Rails. And, I guess, Scala is as terse. So, I would prefer &quot;Wicket with Scala&quot; than Rails. But I would need to learn Scala for that.&lt;/li&gt;&#xA;&lt;li&gt;I am a &quot;live-by-&lt;strong&gt;content-assist&lt;/strong&gt;&quot; guy. I like to compile stuffs before execution and like jump to methods using F3. I do not know, if there is something like this in Rails. This is a major show-off, for scripting languages.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Overall, to me, I do not see much benefit in Rails. Java is not painful for me -- except it is verbose. The frameworks like Roo and Wicket make life much simpler. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do not see any compelling reason to switch to Rails. But YMMV. :)&lt;/p&gt;&#xA;" OwnerUserId="12705" LastActivityDate="2011-01-10T01:43:27.380" />
  <row Id="35170" PostTypeId="1" CreationDate="2008-10-17T10:43:14.657" Score="25" ViewCount="373" Body="&lt;p&gt;This is not a question about which of the two languages is better than the other. I myself can't really decide. Pros and cons as always I guess.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, if you feel you always would prefer C over C++, this poll is not for you :-).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, when I work in C projects I usually feel I'm missing a few language constructs more than others, which can be found in C++. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example, I usually miss (the obvious) &lt;strong&gt;classes&lt;/strong&gt;, but seldomly &lt;strong&gt;templates&lt;/strong&gt; (I always miss STL, but wouldn't call it a language construct). &lt;/p&gt;&#xA;&#xA;&lt;p&gt;What do you miss when you have to use C instead of C++?&lt;/p&gt;&#xA;" OwnerUserId="12793" LastActivityDate="2011-01-10T06:33:02.097" CommunityOwnedDate="2008-10-17T18:16:30.857" Title="What do you miss when you have to use C instead of C++?" Tags="&lt;c++&gt;&lt;c&gt;&lt;polls&gt;&lt;language-features&gt;" AnswerCount="32" CommentCount="1" />
  <row Id="35171" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T10:49:57.887" Score="14" ViewCount="" Body="&lt;p&gt;C++'s improved type safety&lt;/p&gt;&#xA;" OwnerUserId="9861" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" />
  <row Id="35172" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T10:50:09.883" Score="16" ViewCount="" Body="&lt;p&gt;Templates.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" />
  <row Id="35173" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T10:50:53.643" Score="10" ViewCount="" Body="&lt;p&gt;Classes. Guess I have been doing it with classes and OOP for a long time.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" />
  <row Id="35174" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T10:51:32.423" Score="21" ViewCount="" Body="&lt;p&gt;Overloading (function, operator and method)&lt;/p&gt;&#xA;" OwnerUserId="9861" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" CommentCount="1" />
  <row Id="35175" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T10:52:07.353" Score="29" ViewCount="" Body="&lt;p&gt;Flexible declarations. In C, all var declarations within a scope occur at the beginning of that scope. Thus, all global declartions must appear before any functions, and any local declarations must be made before any executable statements.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fortunately this was changed for C99.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" CommentCount="4" />
  <row Id="35176" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T10:56:02.057" Score="12" ViewCount="" Body="&lt;p&gt;Real const-correctness.&lt;/p&gt;&#xA;" OwnerUserId="9861" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" />
  <row Id="35177" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T10:57:57.903" Score="18" ViewCount="" Body="&lt;p&gt;Exceptions&lt;/p&gt;&#xA;" OwnerUserId="9861" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" CommentCount="5" />
  <row Id="35178" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T11:00:15.417" Score="3" ViewCount="" Body="&lt;p&gt;I don't miss classes until some way down the track. It starts with a struct here and there, then an init and free method, a few other methods and suddenly I'm half way down the path of implementing classes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, I don't miss classes. What I miss is collections and useful types: strings, lists, dictionaries and so on. When banging out a quick app, it's these things which make the difference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;PS: C99 has var declarations at any point, and most of the other nice little improvements of C++. So I don't miss these things.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" />
  <row Id="35179" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T11:01:01.017" Score="46" ViewCount="" Body="&lt;p&gt;Destructors (for RAII).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I can live without the rest of C++'s OO and templates. But I really miss RAII when programming in C.&lt;/p&gt;&#xA;" OwnerUserId="535" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" CommentCount="7" />
  <row Id="35180" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T11:01:29.330" Score="2" ViewCount="" Body="&lt;p&gt;I guess I wouldn't miss classes or templates if it weren't for the STL. The data structures it provides are nice and annoying to implement yourself in C even if they are trivial. I'd really rather avoid implementing yet another vector or whatever.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" />
  <row Id="35181" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T11:01:52.683" Score="1" ViewCount="" Body="&lt;p&gt;Templates/exceptions and sense of humor!&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" />
  <row Id="35182" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T11:04:12.743" Score="42" ViewCount="" Body="&lt;p&gt;Standard Templates Library (STL)&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" CommentCount="3" />
  <row Id="35183" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T11:06:56.713" Score="8" ViewCount="" Body="&lt;p&gt;Templates, type safety, mixed declarations and code (pre-C99), const correctness, a library worth a damn, RAII.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" CommentCount="4" />
  <row Id="35184" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T11:09:10.360" Score="4" ViewCount="" Body="&lt;p&gt;Classes and OOP &lt;br&gt;&#xA;Overloading&lt;br&gt;&#xA;Virtual Functions (We can achieve this, but lot more effort required)&lt;br&gt;&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" CommentCount="2" />
  <row Id="35185" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T11:10:13.057" Score="2" ViewCount="" Body="&lt;p&gt;dynamic casting&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" />
  <row Id="35186" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T11:10:29.953" Score="3" ViewCount="" Body="&lt;p&gt;method parameters passed by reference&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" CommentCount="1" />
  <row Id="35187" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T11:14:03.253" Score="5" ViewCount="" Body="&lt;p&gt;new and delete operator&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" CommentCount="3" />
  <row Id="35188" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T11:16:40.347" Score="6" ViewCount="" Body="&lt;p&gt;More than anything else: Inheritance. The ability to factor out common functionality into a base class/struct.&lt;/p&gt;&#xA;" OwnerUserId="20743" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" CommentCount="1" />
  <row Id="35189" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T12:31:26.933" Score="21" ViewCount="" Body="&lt;p&gt;I'll get modded down for this, but... I'd miss C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Too much features comes with C++, features that I took as granted, and that are removed when going backward to C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When I learn RAII is mostly absent from C# and Java (despite some interesting &quot;patterns&quot;), I just say to myself &quot;hey, at least, I have their great standard API and language features, and reflection, and etc.!&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Each time I have to degrade C++ code to make it fit into a C something, I don't have the &quot;Hey, at least C has this great feature&quot;. Every great feature of C is already present in C++ at zero cost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Going from C++ to C is just like having your favorite toolkit, and removing all the tools but the hammer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And then, you look at the screw, and then the hammer, and then the screw again...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Depressing...&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Edit : I guess I should answer Konrad in the post:&lt;/h3&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;blockquote&gt;&#xA;    &lt;p&gt;“I'll get modded down for this” – apparently. But why? You're absolutely right. Your statement is insightful, to the point and also answers the question. – Konrad Rudolph&lt;/p&gt;&#xA;  &lt;/blockquote&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Why? I guess the author wanted a list of reasons, not some random rant about how &quot;C++ was way cooler than C&quot;. I read all the reasons already offered, and felt there was nothing I could add.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, I felt some thing important was missing, all in all. It was kinda &quot;What C++ feature would you like to see in C?&quot;. This made me answer anyway.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After Konrad's answer and some thinking, the missing thing is: C++ is much more than C with additional features. Each of those features have a kind of symbiosis with all the others, and the full language is quite larger than the sum of its components set apart.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is why no particular feature would miss, as each particular feature would need another feature to work properly, and another, and another...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Conclusion: When you move from a language to another, you always lose things, but you also win other things. But this is not true when moving from C++ to C. In that case, you never win.&lt;/p&gt;&#xA;" OwnerUserId="26547" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" CommentCount="12" />
  <row Id="35190" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T12:55:54.373" Score="7" ViewCount="" Body="&lt;p&gt;Nothing.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I love c++, and would always use it where I can, but when I need to use C it's because I need to be close to the machine, and have a clear idea of exactly where and when resources are in use. Classes and containers suddenly feel heavy and unwieldy, like swimming in mud.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Back on my Mac, though, with infinite memory and disk space it's classes and containers all the way.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" CommentCount="1" />
  <row Id="35191" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T13:10:57.743" Score="16" ViewCount="" Body="&lt;p&gt;// what else :)&lt;/p&gt;&#xA;" OwnerUserId="12257" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" CommentCount="1" />
  <row Id="35192" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T13:11:42.173" Score="7" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;The ability to shoot myself in the foot more than once, with the same bullet&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" CommentCount="1" />
  <row Id="35193" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T13:49:24.187" Score="1" ViewCount="" Body="&lt;p&gt;Stack based resource management&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;FileCloser closer(fp); // closes the FILE * on function exit&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" />
  <row Id="35194" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T15:06:29.523" Score="5" ViewCount="" Body="&lt;p&gt;One of the things I miss is namespaces, to keep function/variable names from colliding.&lt;/p&gt;&#xA;" OwnerUserId="3047" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" />
  <row Id="35195" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T15:08:22.717" Score="10" ViewCount="" Body="&lt;p&gt;(Another) thing I miss: Not having to typedef my enums/structs.  When I need to do straight C, I often forget that I need to type&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;typedef enum { A, B } alphabet;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;instead of&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;enum alphabet { A, B };&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="3047" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" />
  <row Id="35196" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T15:31:55.040" Score="15" ViewCount="" Body="&lt;p&gt;Ok, I'll try one last time, this time, keeping to the question.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'll demonstrate below that nothing is as simple as asking for one feature &lt;em&gt;only&lt;/em&gt;, and that with that feature comes others, implicitly.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note: The code below should be considered as pseudo-code. It won't (obviously) compile if processed by a C compiler, and is written only to illustrate some points.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;I Want RAII&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;This is pretty straightforward, already asked before this post, and nothing spectacular or outrageous, at first glance.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This means that when I acquire resources, and I want them freed in a deterministic way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In C, we would then need to use structs for that, as they are the only true types the user can define.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;struct MyStruct&#xA;{&#xA;   HANDLE myResource ; /* HANDLE is some type of resource */&#xA;} ;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;For that, I need to code a destructor for MyStruct, because we assume HANDLE is not RAII powered.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;For RAII, we need a Destructor?&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;But how to code a &lt;strong&gt;destructor in C&lt;/strong&gt;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are several ways. Some will be C code, others will need extension to the language.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Destructor as an external function?&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;We could try a function inside the structure, but this is not C. So we'll try instead an external function.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;struct MyStruct&#xA;{&#xA;   HANDLE myResource ;&#xA;} ;&#xA;&#xA;void finalize(MyStruct * myStruct)&#xA;{ deallocateSomeResource(myStruct-&amp;gt;myResource) ; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But the name can't be &lt;strong&gt;finalize&lt;/strong&gt;. Unless we can use &lt;strong&gt;function overloading in C&lt;/strong&gt; (which we can't).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The other solution would be to add the name of the class for the finalizer:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void finalize_MyStruct(MyStruct * myStruct)&#xA;{ deallocateSomeResource(myStruct-&amp;gt;myResource) ; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Now, this would work... But what if we have collision of symbols?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I mean, perhaps I already have a structure called finalize_MyStruct !!!&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Forbid use of prefix &quot;finalize_&quot;?&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Why not. After all, if in C++, the standard forbids the use of symbols prefixed by &quot;_&quot;, then we could change the C standard to forbid any symbol prefixed by &quot;finalize_&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Still, this would perhaps break some valid code...&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Using the name of the struct?&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;Another solution would be to re-use the name of the struct:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;struct MyStruct&#xA;{&#xA;   HANDLE myResource ;&#xA;} ;&#xA;&#xA;void ~MyStruct(MyStruct * myStruct)&#xA;{ deallocateSomeResource(myStruct-&amp;gt;myResource) ; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;So we would need an extention of C to accept a function with the same name of a struct, prefixed by a &quot;~&quot;, which would be considered as the destructor of the struct.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;We could add a little syntactic sugar, like the &lt;em&gt;this&lt;/em&gt; keyword, and put the function inside the struct, but this is not mandatory. Isn't it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now, this would work: Now, with the extension, C can destroy any MyStruct allocated on the stack:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void doSomething()&#xA;{&#xA;   MyStruct oMyStruct ;&#xA;   oMyStruct.myResource = allocateSomeResource() ;&#xA;   /* etc. */&#xA;}  /* At the end of the scope, have the compiler call ~MyStruct(&amp;amp;oMyStruct) */&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;h3&gt;And what if the headers are broken?&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;This could happen:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;/* HeaderA.h */&#xA;struct MyStruct&#xA;{&#xA;   HANDLE myResource ;&#xA;} ;&#xA;&#xA;/* HeaderB.h */&#xA;void ~MyStruct(MyStruct * myStruct) ;&#xA;&#xA;/* SourceB.cpp */&#xA;void ~MyStruct(MyStruct * myStruct)&#xA;{ deallocateSomeResource(myStruct-&amp;gt;myResource) ; }&#xA;&#xA;/* SourceOne.h */&#xA;#include &quot;HeaderA.h&quot;&#xA;&#xA;void doSomething()&#xA;{&#xA;   MyStruct oMyStruct ;&#xA;   oMyStruct.myResource = allocateSomeResource() ;&#xA;   /* etc. */&#xA;}  /* At the end of the scope, nothing happens as no destructor visible */&#xA;&#xA;/* SourceTwo.h */&#xA;&#xA;#include &quot;HeaderA.h&quot;&#xA;#include &quot;HeaderB.h&quot;&#xA;&#xA;void doSomethingElse()&#xA;{&#xA;   MyStruct oMyStruct ;&#xA;   oMyStruct.myResource = allocateSomeResource() ;&#xA;   /* etc. */&#xA;}  /* At the end of the scope, call ~MyStruct(&amp;amp;oMyStruct) */&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;In doSomething(), as no destructor declaration was visible, the object will leak. In doSomethingElse(), everything is ok.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So it means we must tie together MyStruct and its destructor... By putting it in the struct?&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;Destructor as an internal function?&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;We can add another extension to the C language to tie the struct and its destructor by putting them together:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;struct MyStruct&#xA;{&#xA;   HANDLE myResource ;&#xA;&#xA;   void ~MyStruct(MyStruct * myStruct)&#xA;   { deallocateSomeResource(myStruct-&amp;gt;myResource) ; }&#xA;} ;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Again, the &lt;em&gt;this&lt;/em&gt; keyword would have been cool, but not necessary.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, we can know have RAII, isn't it?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;No.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Because this code would crash:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void doSomething()&#xA;{&#xA;   MyStruct oMyStruct ;&#xA;&#xA;}  // At the end of the scope, call ~MyStruct(&amp;amp;oMyStruct)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Because oMyStruct was not correctly initialized, and thus, oMyStruct.myResource has an invalid value. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So it means we need an... Initializer!!!&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;For RAII, we need a Constructor?&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;We'll follow the convention adopted above. This means the following code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;struct MyStruct&#xA;{&#xA;   HANDLE myResource ;&#xA;&#xA;   void MyStruct(MyStruct * myStruct)&#xA;   { allocateSomeResource(myStruct-&amp;gt;myResource) ; }&#xA;   void ~MyStruct(MyStruct * myStruct)&#xA;   { deallocateSomeResource(myStruct-&amp;gt;myResource) ; }&#xA;} ;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Cool. Now, RAII works, doesn't it?&#xA;Well, not quite:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void doSomething()&#xA;{&#xA;   /* create one pMyStruct on the heap */&#xA;   MyStruct * pMyStruct = malloc(sizeof(MyStruct));&#xA;&#xA;   /* Etc. */&#xA;&#xA;   free(pMyStruct) ;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Malloc will only return free memory. The user must initialize it by hand. And free will only free the memory. The user must finalize it by hand...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So we need... &lt;em&gt;new&lt;/em&gt; and &lt;em&gt;delete&lt;/em&gt; !!!&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;For RAII, we need a new and delete?&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;The first idea would be to add functions inside the struct, but this would be quite tedious. So we will &lt;em&gt;use C macros&lt;/em&gt;!!!!&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;#define NEW(type, pointer)                       \&#xA;do                                               \&#xA;{                                                \&#xA;   pointer = malloc(sizeof(type)) ;              \&#xA;   type(pointer) ;                               \&#xA;}                                                \&#xA;while(false)&#xA;&#xA;#define DELETE(type, pointer)                    \&#xA;do                                               \&#xA;{                                                \&#xA;   ~type(pointer) ;                              \&#xA;   pointer = free(pointer) ;                     \&#xA;}                                                \&#xA;while(false)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;But of course, the compiler could generate at compile time the code, instead or relying on macros. But the idea is here..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cool. Now, RAII works, doesn't it?&#xA;Well, not quite, as seen in the following code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void doSomething()&#xA;{&#xA;   /* create 25 pMyStruct on the heap */&#xA;   MyStruct * pMyStruct = malloc(sizeof(MyStruct) * 25);&#xA;&#xA;   /* Etc. */&#xA;&#xA;   free(pMyStruct) ;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;h2&gt;For RAII, we need a new[] and delete[], too?&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Same problem than with new and delete.&#xA;Same solution.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I guess that everything's Ok, no? For example, the following code:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;void doSomething(MyStruct p_oMyStruct)&#xA;{&#xA;   /* Etc. */&#xA;&#xA;   p_oMyStruct = getAnotherStruct() ;&#xA;&#xA;   /* Etc. */&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Oops, no...&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;For RAII, we need a copy-constructor and an assignment function?&lt;/h2&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;struct MyStruct&#xA;{&#xA;   HANDLE myResource ;&#xA;&#xA;   void MyStruct(MyStruct * myStruct)&#xA;   { allocateSomeResource(myStruct-&amp;gt;myResource) ; }&#xA;   void MyStruct(MyStruct * myStruct, MyStruct * myCopy)&#xA;   { allocateSomeResourceByCopy(myStruct-&amp;gt;myResource, myCopy-&amp;gt;myResource) ; }&#xA;   void operator = (MyStruct * myStruct, MyStruct * myCopy)&#xA;   {&#xA;      deallocateSomeResource(myStruct-&amp;gt;myResource) ;&#xA;      allocateSomeResourceByCopy(myStruct-&amp;gt;myResource, myCopy-&amp;gt;myResource) ;&#xA;   }&#xA;   void ~MyStruct(MyStruct * myStruct)&#xA;   { deallocateSomeResource(myStruct-&amp;gt;myResource) ; }&#xA;} ;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;I won't elaborate on the fact that we have function overloading, again. This time, between the default constructor and the copy constructor. This means three cases, all in all, of function overloading. This can be handled silently by the compiler (indeed, C does a little of overloading on its own), so I won't mention it too much.&lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Conclusion?&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;Just mention one C++ feature you like, and you'll see most will come attached to it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Conclusion, for adding RAII to C, we would need to add to C the following extensions, with a syntax similar to C++:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A Destructor&lt;/li&gt;&#xA;&lt;li&gt;A Constructor&lt;/li&gt;&#xA;&lt;li&gt;struct methods inside struct&lt;/li&gt;&#xA;&lt;li&gt;new/delete&lt;/li&gt;&#xA;&lt;li&gt;new[]/delete[]&lt;/li&gt;&#xA;&lt;li&gt;Copy Constructor&lt;/li&gt;&#xA;&lt;li&gt;operator = Overloading&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And some syntactic bonus would be interesting:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;this keyword&lt;/li&gt;&#xA;&lt;li&gt;function overloading&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;And, all in all, I believe there are still some things I forgot, needing more C++ features.&lt;/p&gt;&#xA;" OwnerUserId="26547" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" CommentCount="12" />
  <row Id="35197" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T17:36:24.963" Score="8" ViewCount="" Body="&lt;p&gt;The &lt;code&gt;string&lt;/code&gt; class.  Whenever I'm in C code and have to deal with strings, it feels like pulling teeth compared to how much more natural it is in C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course C++ gets that capability mainly due to RAII (and I've up-voted &lt;a href=&quot;http://stackoverflow.com/questions/211686/what-do-you-miss-when-you-have-to-use-c-instead-of-c#211728&quot;&gt;Rasmus Faber's answer&lt;/a&gt; accordingly), but still it's strings where I feel the loss most immediately.&lt;/p&gt;&#xA;" OwnerUserId="24029" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" CommentCount="2" />
  <row Id="35198" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T17:46:20.183" Score="5" ViewCount="" Body="&lt;p&gt;Boost and all the frameworks and libraries that you can use to make your life easier.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" />
  <row Id="35199" PostTypeId="2" ParentId="35170" CreationDate="2008-10-17T18:16:30.857" Score="4" ViewCount="" Body="&lt;p&gt;The ability to declare a loop variable in the loop declaration.  E.g.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;for(int i = 0; i &amp;lt; 10; i++)  // Invalid C&#xA;{&#xA;    //Do something&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="13523" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2008-10-17T18:16:30.857" CommentCount="1" />
  <row Id="35201" PostTypeId="2" ParentId="35170" CreationDate="2009-04-24T08:32:00.207" Score="0" ViewCount="" Body="&lt;p&gt;The same things I would miss if I had to program in &lt;a href=&quot;http://www.muppetlabs.com/~breadbox/bf/&quot; rel=&quot;nofollow&quot;&gt;the unnamed language&lt;/a&gt; instead of C++. C and C++ might have common keywords (as do javascript and java), one might have evolved from the other (as did D from C++), but when I code C I take fundementally different approaches to the problem. So the answer would be &lt;a href=&quot;http://en.wikipedia.org/wiki/Mu%5F%28negative%29&quot; rel=&quot;nofollow&quot;&gt;Mu&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="6003" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2009-04-24T08:32:00.207" />
  <row Id="35202" PostTypeId="2" ParentId="35170" CreationDate="2011-01-08T13:41:34.157" Score="0" ViewCount="" Body="&lt;p&gt;In conclusion of what I have read here, it can safely be said that C++ programmers claim C lacks the features that THEY DON'T KNOW HOW TO IMPLEMENT IN C.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It just means that C++ programmers use ready-to-use blackboxes, without always understanding how the blackbox works.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If they understood it, then they would use C instead of C++ because C gives them the ability to do the job much better than C++.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is probably the only reason behind Linus rant against C++.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T01:43:55.447" CommunityOwnedDate="2011-01-08T13:41:34.157" CommentCount="3" />
  <row Id="35203" PostTypeId="2" ParentId="35151" CreationDate="2011-01-10T02:12:34.593" Score="3" ViewCount="" Body="&lt;p&gt;My favorite: failure to initialize correctly&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt; minIndex = 0&#xA; minValue= someRandomValue # NOT someList[minIndex]&#xA; for i in range( 0, len(someList) ) # NOT range( 1, len(someList) ): &#xA;     assert min(someList) == someList[minIndex] # not true initially&#xA;     if someList[i] &amp;lt;= someList[minIndex]:&#xA;         minIndex= i&#xA;         minValue= someList[minIndex]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The initialization should be based on actual data.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other common one -- failure to maintain the invariant in the presence of if-statements.&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;oddSum= 0&#xA;evenSum= 0 &#xA;for i in range( 0, len(someList) ):&#xA;    if i % 2 == 0:&#xA;        evenSum += someList[i]&#xA;    else:&#xA;        # some random statement that doesn't update oddSum&#xA;    assert evenSum + oddSum == sum( someList[0:i] )&#xA;        # The above may not always be true&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The trick is this.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;For each &quot;but they only show how things should be&quot; you can mess up any statement and you'll have an error.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While you -- personally -- can see the mistake, you have to realize that other random programmers don't see the errors and write random code that doesn't satisfy the invariant.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's an exercise in &quot;Genetic Programming&quot; -- introduce a random mutation and see if the invariant is true or not.  As you read other people's code, you'll see that they make completely random errors.  &lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-10T02:12:34.593" CommentCount="2" />
  <row Id="35204" PostTypeId="2" ParentId="35124" CreationDate="2011-01-10T02:13:43.860" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Can we not just say that the number is large enough so that it's very important to hire the best people and move on already?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's your point?&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-10T02:13:43.860" />
  <row Id="35205" PostTypeId="2" ParentId="35124" CreationDate="2011-01-10T02:21:55.007" Score="0" ViewCount="" Body="&lt;p&gt;Because if you can pay someone (say) 10-50% more to get (say) 100% more work, it is a better value for the business.  And I can't believe that anyone would say there aren't programmers in your company who are twice as productive, net of debugging, than others.&lt;/p&gt;&#xA;" OwnerUserId="1654" LastActivityDate="2011-01-10T02:21:55.007" />
  <row Id="35207" PostTypeId="2" ParentId="35151" CreationDate="2011-01-10T02:53:59.347" Score="1" ViewCount="" Body="&lt;p&gt;In general, mutating state is the biggest cause (and may in fact be the &lt;em&gt;only&lt;/em&gt; cause) of corrupted invariants.  I don't mean to start the age-old imperative vs functional debate, but there's a reason why languages like Haskell are so popular amongst academics:  it's much easier to prove purely functional code correct.  Of course, whether functional code is better in general is a totally different discussion.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As an example, if I have an invariant that the variable foo must be less than 5 after each iteration of a loop, then the only way for that invariant to fail is to change the value of foo.  Therefore if foo is less than 5 before the code starts and you don't change the value of foo, you can be sure that foo will be less than 5 when the loop ends.&lt;/p&gt;&#xA;" OwnerUserId="1626" LastEditorUserId="1626" LastEditorDisplayName="" LastEditDate="2011-01-10T03:09:05.913" LastActivityDate="2011-01-10T03:09:05.913" />
  <row Id="35208" PostTypeId="1" AcceptedAnswerId="35210" CreationDate="2011-01-10T02:57:13.617" Score="49" ViewCount="11370" Body="&lt;p&gt;As a soon-to-be graduating high school senior in the U.S., I'm going to be facing a tough decision in a few months: which college should I go to? Will it be worth it to go to Cornell or Stanford or Carnegie Mellon (assuming I get in, of course) to get a big-name computer science degree, internships, and connections with professors, while taking on massive debt; or am I better off going to SUNY Binghamton (probably the best state school in New York) and still get a pretty decent education while saving myself from over a hundred-thousand dollars worth of debt? Yes, I know questions like this has been asked before (namely &lt;a href=&quot;http://programmers.stackexchange.com/questions/7495/how-important-is-a-big-name-school-for-fresh-grads&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://programmers.stackexchange.com/questions/28139/is-a-big-name-computer-science-degree-worth-the-cost&quot;&gt;here&lt;/a&gt;), but please bear with me because I haven't found an answer that fits my particular situation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've read the two linked questions above in depth, but they haven't answered what I want to know:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Yes, I understand that going to a big-name college can potentially get me connected with some wonderful professors and leaders in the field, but on average, how does that translate financially? I mean, will good connections pay off so well that I'd be easily getting rid of over a hundred-thousand dollars of debt? &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;And how does the fact that I can get a fifth-years master's degree at Carnegie Mellon play into the equation? Will the higher degree right off the bat help me get a better-paying job just out of college, or will the extra year only put me further into debt? Not having to go to graduate school to get a comparable degree will, of course, be a great financial relief, but will getting it so early give it any greater worth?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;And if I go to SUNY Binghamton, which is far lesser-known than what I've considered (although if there are any alumni out there who want to share their experience, I would greatly appreciate it), would I be closing off doors that would potentially offset my short-term economic gain with long-term benefits? Essentially, is the short-term benefit overweighed by a potential long-term loss?&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;The answers to these questions all tie in to my final college decision (again, permitting I make it to these schools), so I hope that asking the skilled and knowledgeable people of the field will help me make the right choice (if there is such a thing).&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Also, please note:&lt;/strong&gt; I'm in a rather peculiar situation where I can't pay for college without taking out a bunch of loans, but will be getting little to no financial aid (likely federal or otherwise). I don't want to elaborate on this too much (so take it at face value), but this is mainly the reason I'm asking the question.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;Thanks a lot! It means a lot to me.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Thanks to everyone for your wonderful responses! All thought-out and well-written, and I wish I had the time to write comments on all of them. Hopefully, I'll be able to when I get home from school and work later tonight...&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit 2:&lt;/strong&gt;&#xA;Wow! Unbelievable that I've gotten this many helpful responses in such a short amount of time! I haven't had the time to properly sit down and respond to many of these, but I really appreciate the effort, and I will do so tomorrow. Big thanks to everyone who posted!&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit 3:&lt;/strong&gt;&#xA;For those who are interested, I got into CMU, Cornell, and Binghamton, and decided on Binghamton. CMU and Cornell gave me no financial aid whatsoever, while Binghamton, being a state school costs less than $20,000 a year including room and board. When I got the admission letters, the decision was hard, but after visiting Binghamton and realizing just how good of a school it is (state schools are severely underrated in the United States; it's a terrible problem—for what it's worth, it turns out that Binghamton was even more selective than many of the private schools I applied to, not that that inherently means much, but just as a metric), I couldn't pass up. Besides, I visited on a terrible, rainy day, and was still impressed, so I knew it was the one. ;)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Doing some actual financial analysis, I realized I would never be able to pay off the $60,000 a year required for CMU or Cornell, only making choosing Binghamton feel even better.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;While this question is specific to my case, I hope this can help someone else in my position.&lt;/p&gt;&#xA;" OwnerUserId="7228" LastEditorUserId="7228" LastEditorDisplayName="" LastEditDate="2011-05-25T10:45:56.430" LastActivityDate="2011-05-25T10:45:56.430" CommunityOwnedDate="2011-01-30T12:11:41.793" Title="Do I need to go to a big-name university?" Tags="&lt;career&gt;&lt;school&gt;&lt;university&gt;&lt;degree&gt;" AnswerCount="34" CommentCount="8" FavoriteCount="28" />
  <row Id="35209" PostTypeId="2" ParentId="35208" CreationDate="2011-01-10T03:12:48.623" Score="11" ViewCount="" Body="&lt;p&gt;Go to a &lt;strong&gt;great&lt;/strong&gt; school if you want to do research.  Go to a &lt;strong&gt;good&lt;/strong&gt; school if you want to work.  Most employers will consider your choice of school a minor factor, provided that the institution you choose is suitably &lt;a href=&quot;http://en.wikipedia.org/wiki/Accreditation&quot; rel=&quot;nofollow&quot;&gt;accredited&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A Master's will help a little in getting a job, and &lt;em&gt;might&lt;/em&gt; increase your pay ... but again unless you're interested in research or something very specific, I'd opt for a 5-year co-op program (to gain work experience before even graduating) over a 5-year Bachelor+Master's.  If you're good at what you do, a couple year's experience will virtually guarantee you a job, and after several years it will be more important than a degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So if you just want a good job and opportunity, I'd choose the cheaper-but-still-good route.  Talk to your professors and stay in touch with your classmates; plenty of doors will be open for you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also consider a good foreign school, maybe something relatively close like the &lt;a href=&quot;http://www.uwaterloo.ca/&quot; rel=&quot;nofollow&quot;&gt;University of Waterloo&lt;/a&gt;, Canada (full disclosure: I went there).  I'm not sure what foreign-student tuition is like but it's gotta be cheaper than a US private school.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-01-10T03:23:11.993" LastActivityDate="2011-01-10T03:23:11.993" CommunityOwnedDate="2011-01-30T12:11:41.793" CommentCount="11" />
  <row Id="35210" PostTypeId="2" ParentId="35208" CreationDate="2011-01-10T03:19:01.400" Score="31" ViewCount="" Body="&lt;p&gt;To tell you about my background, I went to a small, private liberal arts school and work at Google. So it's possible to land a good job without going too far into debt. But if I could make my college decision again, I would have gone with a big-name tech school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Big name schools offer attention&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It is difficult to land a good internship at Microsoft or Google if you went to school at some random school. While at big-name campuses Microsoft and Google recruiters will be begging for the best and the brightest. That isn't to say you can't get an internship/job right out of school at a top-tier company. It just means &lt;em&gt;luck&lt;/em&gt; and nailing your interviews play a larger role. (Mostly because the interviewer isn't making any assumptions about your background.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Big name schools offer a better curriculum&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is probably far more important to consider. People will tell you that you will learn the same things at less-reputable college. They are all wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Bigger name schools teach a lot more rigor and cover a lot more of the esoteric corner cases. (For example, requiring that students learn to implement their own hash table rather than just reading a paragraph in the book.) This makes a huge difference if you want to have a career where you are truly innovating.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anybody can write code, few people have the skills to change the world through software.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;If you are good, money doesn't matter&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I took out gobs and gobs of student loans. More than I would like to admit. But if you are working for Microsoft or Google, getting a 15-30,000 annual bonus isn't out of the ordinary. And if you are really, really good the sky literally is the limit.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Re: Masters degree&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You shouldn't waste your time on this. If you studied hard from a top-tier undergraduate program, then you won't need it. (And the opportunity cost for the extra year or two isn't worth it.) However, if you are like me and didn't have a rigorous undergrad program I would highly recommend this option, as it will surely patch any holes in your undergraduate education. Even better, a lot of times your employer will pick up the tab depending on the program.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Bottom line&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The bottom line is that you need to have an idea of what you are after. If you want to be a tech God in 10 years, then you should go to the best school you can get into. Internships and great jobs will pay for your loans.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But if you aren't sure about that sort of lifestyle, you can play it more conservatively. This won't limit you in any way, but it will require a lot more effort on your part to land a great job after you graduate. &lt;/p&gt;&#xA;" OwnerUserId="786" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-01-10T03:35:58.113" LastActivityDate="2011-01-10T03:35:58.113" CommunityOwnedDate="2011-01-30T12:11:41.793" CommentCount="16" />
  <row Id="35211" PostTypeId="2" ParentId="35208" CreationDate="2011-01-10T03:19:06.833" Score="5" ViewCount="" Body="&lt;p&gt;My honest opinion. A CS degree is not worth 100K+. In the end you will probably end up paying closer to 150-175K by the time you pay it back. Private schools are for rich students, poor students, and students that get scholarships. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I do have one suggestion though. It is possible to still get the &quot;big&quot; school credentials with out paying that much. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Where you go to school for your first 2 years really doesn't matter. Go to a community college and get the intro classes and liberal arts crap out of the way. If you do well then it is highly likely that you can get a merit scholarship as a third year transfer student to a well known private institution. Plus, you save a ridiculous amount of money.    &lt;/p&gt;&#xA;" OwnerUserId="11259" LastEditorUserId="11259" LastEditorDisplayName="" LastEditDate="2011-01-10T07:44:06.623" LastActivityDate="2011-01-10T07:44:06.623" CommunityOwnedDate="2011-01-30T12:11:41.793" CommentCount="12" />
  <row Id="35212" PostTypeId="2" ParentId="35208" CreationDate="2011-01-10T03:22:13.023" Score="2" ViewCount="" Body="&lt;p&gt;Just finished my degree in Australia. I would agree with Mathew, repeating exactly what he said. And if money is already a concern then go to SUNY Binghamton. I do not think this would close off any doors. IMO all your long term career opportunities will be developed early on in your career depending on what sort of role you wish to take earlier on. &lt;/p&gt;&#xA;" OwnerUserId="10442" LastActivityDate="2011-01-10T03:22:13.023" CommunityOwnedDate="2011-01-30T12:11:41.793" />
  <row Id="35213" PostTypeId="2" ParentId="35208" CreationDate="2011-01-10T03:26:22.227" Score="2" ViewCount="" Body="&lt;p&gt;To save yourself a fortune, go to a junior college for the first two years, and then transfer to a big-name college.  The final degree looks exactly the same to an employer.&lt;/p&gt;&#xA;" OwnerUserId="1204" LastEditorUserId="1204" LastEditorDisplayName="" LastEditDate="2011-01-10T03:33:26.150" LastActivityDate="2011-01-10T03:33:26.150" CommunityOwnedDate="2011-01-30T12:11:41.793" />
  <row Id="35214" PostTypeId="1" AcceptedAnswerId="35216" CreationDate="2011-01-10T03:29:58.917" Score="7" ViewCount="608" Body="&lt;p&gt;I am currently using dev++, I am a complete beginner, (Freshman CS major) learning C++. I can get one of the newest versions of visual studio (2008 or 2009 i think) for free through my school. Not sure if it is worth the trouble of getting. thoughts?&lt;/p&gt;&#xA;" OwnerUserId="10922" LastActivityDate="2011-03-14T05:47:07.880" Title="I can get visual studio for free through school, should I?" Tags="&lt;ide&gt;&lt;visual-studio&gt;" AnswerCount="7" CommentCount="3" />
  <row Id="35215" PostTypeId="2" ParentId="35214" CreationDate="2011-01-10T03:36:00.950" Score="14" ViewCount="" Body="&lt;p&gt;I can't speak more highly of any IDE than Visual Studio.  It's useless for Java and such, but it is great for C++ and incredible if you get into .NET.  With a price point of Free, there's absolutely no reason it's not worth checking out at the minimum.  I suppose it's not for everyone but odds are you'll love it.&lt;/p&gt;&#xA;" OwnerUserId="9771" LastActivityDate="2011-01-10T03:36:00.950" />
  <row Id="35216" PostTypeId="2" ParentId="35214" CreationDate="2011-01-10T03:38:01.060" Score="37" ViewCount="" Body="&lt;p&gt;If by &quot;dev++&quot; you mean &lt;a href=&quot;http://www.bloodshed.net/devcpp.html&quot; rel=&quot;nofollow&quot;&gt;this monstrosity&lt;/a&gt;, then &lt;strong&gt;drop it as fast as you can&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There have been no updates to Dev-C++ in over six years, it's buggy, comes with a really ancient version of gcc and is not worth the cost of the download.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Visual C++, on the other hand, is a world-class compiler and one of the best the IDEs available. That you can get it for free is great (even the Express Editions are light years ahead of Dev-C++) and I wouldn't hesitate.&lt;/p&gt;&#xA;" OwnerUserId="2359" LastActivityDate="2011-01-10T03:38:01.060" CommentCount="5" />
  <row Id="35217" PostTypeId="2" ParentId="35214" CreationDate="2011-01-10T03:41:10.467" Score="8" ViewCount="" Body="&lt;p&gt;Given the distribution of future employment I would highly recommend using the most popular IDEs out there, free or otherwise.  It is a very highly rated environment for C#.  It can be a bit behind in its compliance with the most current C++ standard. &lt;/p&gt;&#xA;" OwnerUserId="12497" LastActivityDate="2011-01-10T03:41:10.467" CommentCount="1" />
  <row Id="35218" PostTypeId="2" ParentId="35208" CreationDate="2011-01-10T03:42:14.270" Score="2" ViewCount="" Body="&lt;p&gt;Your situation and mine is probably vastly different (being as I'm from sweden), where as I'm I currently not sure I can answer it prably. That being said I'm going to try.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;a) most computer sciences courses isn't from my experience closely connected to the demands of real jobs within the it industry-. Sure most programs promise to give you a good theoretical foundation to build on. However, is it worth 3-4 years of debt? I'd say no.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;b) Who'd you rather hire, someone who has 3 years of university education or someone who has 3 years of  practical experience. In most cases I'd say the latter.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So, I guess the real question comes down to, do you really need the academical references to &quot;make it&quot; within the it industry. I'd say no, the first job is always the most difficult to get but afterwards your lack of formal education probably won't make much of a difference.&lt;/p&gt;&#xA;" OwnerUserId="12354" LastActivityDate="2011-01-10T03:42:14.270" CommunityOwnedDate="2011-01-30T12:11:41.793" CommentCount="1" />
  <row Id="35219" PostTypeId="2" ParentId="35208" CreationDate="2011-01-10T03:43:04.567" Score="3" ViewCount="" Body="&lt;p&gt;I think many people are missing a major point here: the college admissions themselves. Getting in is a much bigger deal than it's being made out to be here. Apply everywhere that looks good to you. There's something called &quot;financial aid&quot; which will help you out, assuming you actually need help. If you get into a place like Stanford or Cornell, by all means go (assuming you actually want to go, not just for the name). And if not, at least you tried. You have a year left, so I would focus more on trying to keep your options open for now, and only make the decision when it actually comes to that time. A lot changes in your junior year, and even senior year (I know from experience), so don't make any decisions yet. For all you know, you won't even be interested in CS in another year, or college for that matter.&lt;/p&gt;&#xA;" OwnerUserId="12772" LastActivityDate="2011-01-10T03:43:04.567" CommunityOwnedDate="2011-01-30T12:11:41.793" CommentCount="1" />
  <row Id="35220" PostTypeId="2" ParentId="30223" CreationDate="2011-01-10T04:10:26.577" Score="2" ViewCount="" Body="&lt;p&gt;Someone can always claim some portion of ownership - suppose the entire dev team was rolled under the bus, you still have their family members who can try to lay claim to something. Do your homework, find out what you can, get written consent from the closest family members. I know this was a hypothetical situation; regardless, don't think that you are safe just because you can't find the original developers.&lt;/p&gt;&#xA;" OwnerUserId="8031" LastActivityDate="2011-01-10T04:10:26.577" />
  <row Id="35221" PostTypeId="2" ParentId="13757" CreationDate="2011-01-10T04:13:17.443" Score="0" ViewCount="" Body="&lt;p&gt;I've taken up pronouncing &lt;strong&gt;fmt&lt;/strong&gt; as &quot;fumt&quot; thanks to the Google Tech Talk &quot;&lt;a href=&quot;http://www.youtube.com/watch?v=rKnDgT73v8s&quot; rel=&quot;nofollow&quot;&gt;The Go Programming Language&lt;/a&gt;&quot;.  Likewise, I pronounce &lt;strong&gt;stdio&lt;/strong&gt; as &quot;stəd-AYE-oh&quot;.&lt;/p&gt;&#xA;" OwnerUserId="3650" LastActivityDate="2011-01-10T04:13:17.443" CommunityOwnedDate="2011-01-10T04:13:17.443" />
  <row Id="35222" PostTypeId="2" ParentId="35208" CreationDate="2011-01-10T04:37:51.660" Score="8" ViewCount="" Body="&lt;p&gt;My advice is simple: &lt;strong&gt;go to the best school you can get in to&lt;/strong&gt;. You really only get once chance to get the best education you can find. If you’re only 17 or 18, you have no way of knowing where you're going to be in your career later in life. If you’ve managed to excel in high school and get into a really good college, go to that school, and save yourself an unnecessary roll of the die of fortune later in life, whether it be trying to transfer in to great school after two years at community college, or trying to get a great job after getting a mediocre college degree.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are planning on becoming a software engineer and you are good enough to get into a top school, then you will be earning enough money a few years into your career to be able to pay back your loans without too much trouble. All the top schools make it possible for everyone they accept to afford it. If you were planning to study philosophy and live in a small town, then my advice might be different, but assuming you live and work in a place where high-salary software positions are plentiful, like Silicon Valley, then you will easily be able to pay back any loans you might have to take out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Additionally, there are other major intangible benefits to going to a top school: it opens doors, you make valuable lifelong connections, it has cachet, it improves your self-esteem. It also makes you into an insufferable elitist. Everything has a downside. But just remember, being an elitist is only a negative when you don't have elite status.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Employers do look at what school you went to. My experience is you have to be really good to even graduate from a CS program at a top school. Lots of people who get in drop out into other majors because they can’t cut it. Cornell’s is a very difficult program. You will not get the same rigor at Binghamton, just as someone who goes to San Jose State is not going to get the same rigor in the CS program as someone who goes to Stanford. (Those four examples are from my personal experience with their curriculums.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When it comes to fresh-out-of-college junior software engineering positions, if you want to work at a place like Google or Microsoft, then having a big name school on your résumé really helps. They only people who are not from big-name schools that places like that even look at for entry-level positions are people who have already proven themselves as being awesome. Not everyone who is going to be a successful software engineer will have figured out how to prove that by the time they are 22. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;As for your subquestions, (1) there may be some benefit to knowing top professors, but really it is the connections to your classmates that count. At a top school, many of the CS graduates will go on to either found successful startups or become top-level managers at successful software companies. You want to be close friends or at least acquaintances of those people if you don't end up becoming one yourself. Those are the really valuable connections.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(2) I think a fifth-year master’s degree comes out as a wash. In the long run it won’t make a big difference, although it may mean a slightly higher salary up front. I would only suggest doing it if you really want to.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(3) As for the third subquestion, I think the answer is that going to a top school probably also comes out as a wash, financially speaking, in the long run on average. It is the intangible benefits that make it worth going to the better school.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As a side note, my experience is that there is a qualitative difference in the education you get from a community college compared to a top 4-year university. You often hear people say “oh the first two years are same no matter where you go” but it’s not true. And I’m not just talking about computer science classes, but all across the board community college courses are dumbed down, especially when compared to top universities. You have a much, much better chance of getting into a top university when you’re still in high school than you will after two years of mediocre classes at community college.&lt;/p&gt;&#xA;" OwnerUserId="983" LastEditorUserId="983" LastEditorDisplayName="" LastEditDate="2011-05-25T00:06:55.467" LastActivityDate="2011-05-25T00:06:55.467" CommunityOwnedDate="2011-01-30T12:11:41.793" CommentCount="2" />
  <row Id="35223" PostTypeId="1" AcceptedAnswerId="35226" CreationDate="2011-01-10T04:44:29.077" Score="7" ViewCount="362" Body="&lt;p&gt;I see &lt;a href=&quot;http://www.cyberciti.biz/faq/linux-how-to-find-if-processor-is-64-bit-or-not/#comment-54060&quot; rel=&quot;nofollow&quot;&gt;talk of CPU's being either 32-bit or 64-bit processors&lt;/a&gt;. Information which is &lt;a href=&quot;http://www.ubuntu.com/server/get-ubuntu/download&quot; rel=&quot;nofollow&quot;&gt;often required on download pages&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But what is that feature officially called.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;i.e What's the inverse of saying &quot;I have a 64-bit processor&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want to say: The &lt;em&gt;???&lt;/em&gt; of my processor is 64 bit&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is the correct term to use for &lt;em&gt;???&lt;/em&gt;  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have looked at a random product on the &lt;a href=&quot;http://ark.intel.com/Product.aspx?id=40200&quot; rel=&quot;nofollow&quot;&gt;Intel site&lt;/a&gt; and I suspect the correct word for this is &quot;Instruction Set&quot;, but I'm not sure.&lt;/p&gt;&#xA;" OwnerUserId="6720" LastEditorUserId="6720" LastEditorDisplayName="" LastEditDate="2011-01-10T05:46:26.223" LastActivityDate="2011-01-10T10:55:53.710" Title="32-bit / 64-bit processors - what is that feature officially called?" Tags="&lt;terminology&gt;&lt;cpu&gt;&lt;64-bit&gt;&lt;32-bit&gt;" AnswerCount="5" CommentCount="3" FavoriteCount="1" />
  <row Id="35224" PostTypeId="2" ParentId="35223" CreationDate="2011-01-10T04:52:24.850" Score="4" ViewCount="" Body="&lt;p&gt;I believe that would be &quot;word size&quot;, but I'm not intimately familiar with the details at a hardware level.&lt;/p&gt;&#xA;" OwnerUserId="12775" LastActivityDate="2011-01-10T04:52:24.850" />
  <row Id="35225" PostTypeId="2" ParentId="35208" CreationDate="2011-01-10T04:54:15.500" Score="24" ViewCount="" Body="&lt;p&gt;You are asking the wrong question.  You want to know if it is worth the amount of money.  What you need to know is it worth your time.  You can always make more money, you can never get the time back you spend.  This is important, repeat this to yourself over and over.  If at the end you are really concerned with is how much money you are going to spend, then stop here and go to the cheapest school you can find, because you aren't interested in what the private colleges have to offer you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let me tell you the difference between a public university and a private college (I went to one).  At a private college, all the professors know who you are.  This is important, you go to get coffee with them, you play golf with them etc.  They really become your friends (I still have a couple on FaceBook, and I graduated over 10 years ago).  This is important.  You know what research they are working on, and what their interests are.  Even if you don't want to do research, this is still important.  They are genuinely interested in helping, and will open doors with people they know.  Everyone says to get into a &quot;great company&quot; you need to go to a &quot;Big Name&quot; school.  What really can help you is a professor who knows someone, and that will open the door for you.  You generally don't get that at a state school (it's possible, but no one I knew had that happen at one).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Almost everyone who goes to those schools is pretty smart.  They'll challenge you to work and really think.  What you have to ask yourself is which person are you:  do you want to go out and party every night, or discuss 18th century philosophy at dinner?  There isn't a day that goes by that I'm not grateful for the people I met, and what I learned (although I probably should have tried a little harder).  Going to college and learning the material is only a fraction of the experience.  What you really learn there is how to think.  If you're not being challenged, you're in the wrong place.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Since you mentioned Carnegie Mellon, you should have seen &lt;a href=&quot;http://www.youtube.com/watch?v=ji5_MqicxSo&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; already, or you haven't done your homework.  I'll post it anyway just in case, you accidently let it slip by you. &lt;/p&gt;&#xA;" OwnerUserId="7747" LastActivityDate="2011-01-10T04:54:15.500" CommunityOwnedDate="2011-01-30T12:11:41.793" CommentCount="3" />
  <row Id="35226" PostTypeId="2" ParentId="35223" CreationDate="2011-01-10T04:59:23.987" Score="12" ViewCount="" Body="&lt;p&gt;As mentioned by Twisol, you are probably looking for &quot;word-size&quot;, although what you should really be saying is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&quot;The &lt;a href=&quot;http://en.wikipedia.org/wiki/Processor_register&quot; rel=&quot;nofollow&quot;&gt;registers&lt;/a&gt; (integer/address) of my CPU are 64-bits wide&quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/64-bit&quot; rel=&quot;nofollow&quot;&gt;*&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You are definitely not looking for Instruction Set, as this is simply the actual set of instructions that a CPU understands. Your 64-bit CPU will have a 64-bit instruction set, but this is an effect, not a cause of the CPU being 64-bit (which as above, is to do with the register word-size).&lt;/p&gt;&#xA;" OwnerUserId="2673" LastEditorUserId="2673" LastEditorDisplayName="" LastEditDate="2011-01-10T05:08:05.770" LastActivityDate="2011-01-10T05:08:05.770" />
  <row Id="35227" PostTypeId="2" ParentId="35223" CreationDate="2011-01-10T05:18:44.307" Score="3" ViewCount="" Body="&lt;p&gt;I use the term &quot;bit width.&quot;  According to Wikipedia, it's can be referred to as &quot;word size,&quot; &quot;bit width,&quot; &quot;data path width,&quot; or &quot;integer precision&quot; when dealing with strictly integer numbers (as opposed to floating point).  &lt;a href=&quot;http://en.wikipedia.org/wiki/Central_processing_unit#Integer_range&quot; rel=&quot;nofollow&quot;&gt;Wikipedia reference&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="12086" LastActivityDate="2011-01-10T05:18:44.307" CommentCount="3" />
  <row Id="35228" PostTypeId="1" CreationDate="2011-01-10T05:24:30.090" Score="0" ViewCount="334" Body="&lt;p&gt;I am not asking this question to start arguments (people often consider Java and .Net as religions) but which provides a better foundation and helps to gain real programming skills (of Computer Science and Web Development), I have worked with ASP.NET and C# but most of my time spends on Dragging and Dropping i am a C++ programmer and Drag and Drop irritates me.I haven't tried Java so i want to ask is Java also like .Net family (Drag and Drop)?&lt;/p&gt;&#xA;" OwnerUserId="12694" LastEditorUserId="3697" LastEditorDisplayName="" LastEditDate="2011-01-10T06:08:15.620" LastActivityDate="2011-01-10T12:32:01.697" Title="Which Provides a better Foundation Java or .Net (C#, ASP.NET)?" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;self-improvement&gt;" AnswerCount="5" CommentCount="11" FavoriteCount="2" />
  <row Id="35229" PostTypeId="2" ParentId="35049" CreationDate="2011-01-10T05:40:22.547" Score="1" ViewCount="" Body="&lt;p&gt;Note that there is a discussion on the DIY SE site about &lt;a href=&quot;http://diy.stackexchange.com/questions/1928/making-your-own-height-adjustable-desk&quot;&gt;making your own hieght-adjustable desk&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="5008" LastActivityDate="2011-01-10T05:40:22.547" />
  <row Id="35230" PostTypeId="2" ParentId="35223" CreationDate="2011-01-10T05:40:46.167" Score="3" ViewCount="" Body="&lt;p&gt;The bit width generally refers to the &lt;strong&gt;native word size&lt;/strong&gt; (i.e., the width of general-purpose integer registers) of the processor.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;On x86 processors specifically, 64-bit mode is referred to in the documentation as &lt;strong&gt;long mode&lt;/strong&gt; (which enables the 64-bit general-purpose registers), in contrast to 32-bit legacy mode, 32-bit protected mode (which is the native mode for 32-bit x86 processors), and the various 16-bit modes.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Note that this has little to do with the floating-point unit (which is 80-bit on x86) or the vector unit (which uses 128-bit registers).&lt;/p&gt;&#xA;" OwnerUserId="83" LastActivityDate="2011-01-10T05:40:46.167" />
  <row Id="35232" PostTypeId="2" ParentId="35208" CreationDate="2011-01-10T05:48:46.517" Score="29" ViewCount="" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have to say that I do not think you should take out that much debt to go to any university.  Here's why:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;How do you know what the economy is going to be when you get out?&lt;/strong&gt;  Loan companies really DO NOT CARE whether you are really hurting financially.  The loans can never be discharged in bankruptcy if things go against you (except in very rare cases).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;They are also not tax deductible (except the interest in some cases).  So let's say you get a job making $120,000 a year.  That's really $70,000 a year after taxes.  The IRS doesn't say, &quot;Oh, you took these loans out to get this job.  It's a work related educational expense.&quot;  There is a tremendous disconnect between the increasing amount of debt people have from school and the tax code. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So let's now consider this as if you were the head of You, Inc. (thinking this way can help separate yourself from the situation).  Would you have your company take out debt that will stay with it for 20 years, is not dischargeable if things go against you, cannot be deducted against future earnings all in an uncertain economic environment with stagnant salaries?  Are CEO's hiring a lot of people and making commitments right now?  Not really because they aren't sure what is going to happen.  By taking all this debt out and giving it to the school, you are being asked to make a very long commitment without any safety mechanisms and very imperfect information.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Do they really want you there if you don't have financial aid?&lt;/strong&gt;  I went to a school at Columbia University that treats everyone there like total garbage.  They have this attitude that &quot;We're Columbia.  It's an honor for you to even breathe in our presence.&quot;  It's fine at first, but when your financial aid paperwork is several months late, your tuition is raised dramatically without notice, etc. it gets really old.  At some point, you realize that if they really wanted you to attend and it wasn't about ripping you off financially, they'd offer some non-loan based financial aid.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What's my point?  People who don't offer a balanced package want your (borrowed) money.  They don't care about your success as a student or what's best for you.  They don't have an educational mission--it's just about taking your money until you can't qualify for anymore debt.  Eventually, that shows up in the way you are treated.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;What about graduate school?&lt;/strong&gt;  A lot of people I know borrowed themselves to oblivion to go to Columbia and can't really go to grad school because any more debt would be overwhelming.  So they either go to a very cheap school or don't go at all.  People only care about the LAST school you attended, for the most part.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Conclusion: &lt;strong&gt;Save your money, go to a good state school, get great grades and good letters of rec and then take out loans to get a graduate degree from a famous place.&lt;/strong&gt;  Your debt level will be lower, the degree will carry more weight within your profession and your salary will be higher with a master's degree than just a bachelor's degree.  This will make the debt, already less than the undergraduate scenario, more sustainable.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I really do hope you turn away from the loans.  You can seriously mess the next 20 years of your life up if you are not careful.&lt;/p&gt;&#xA;" OwnerUserId="5057" LastActivityDate="2011-01-10T05:48:46.517" CommunityOwnedDate="2011-01-30T12:11:41.793" CommentCount="3" />
  <row Id="35233" PostTypeId="2" ParentId="34737" CreationDate="2011-01-10T05:49:58.793" Score="1" ViewCount="" Body="&lt;p&gt;It might not be the most mind-bending, but it has been by far the hardest for me to learn(I thought Haskell and assembly were easier!) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;That is the set of HDL languages, notably, VHDL (and verilog to a lesser extent) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Getting over the fact that every &quot;function&quot; runs at the same time is incredibly difficult and you can not avoid the shift to parallelizing absolutely everything. Of course, this is only border-line a programming language though.&lt;/p&gt;&#xA;" OwnerUserId="483" LastActivityDate="2011-01-10T05:49:58.793" CommunityOwnedDate="2011-01-10T05:49:58.793" CommentCount="2" />
  <row Id="35234" PostTypeId="2" ParentId="35228" CreationDate="2011-01-10T06:07:55.137" Score="4" ViewCount="" Body="&lt;p&gt;I've programmed in both. They are both good skills to have and I would not say one is intrinsically better than the other for developing your skills. You don't really need to choose, it would be good if you learned a little of both. Their syntax is fairly similar and, for the most part, what you can do in one you can do in the other.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Assuming you have to choose one, something that could help you choose would be what type of programming you want to do when you start or where are you likely to look for a job and find out what that area tends to use more. If you are going to school they will probably have one they focus on over the other.&lt;/p&gt;&#xA;" OwnerUserId="3697" LastActivityDate="2011-01-10T06:07:55.137" CommentCount="1" />
  <row Id="35235" PostTypeId="2" ParentId="35228" CreationDate="2011-01-10T06:23:51.183" Score="0" ViewCount="" Body="&lt;p&gt;I'm with &lt;a href=&quot;http://programmers.stackexchange.com/questions/35228/which-provides-a-better-foundation-java-or-net-c-asp-net/35234#35234&quot;&gt;BitOff&lt;/a&gt; here: both are good for developing your skills.  One, however, is more prone to locking you into a specific vendor's line of products.  Even with the Mono project, .NET is pretty much purely a Microsoft environment.  If you don't mind this, then use the .NET environment.  It is in many ways a cleaner place than the JVM world (although that's getting slowly cleaned up in the JVM side).  On the other hand if you don't want to get locked into Microsoft's world and/or are paranoid of Microsoft's purported evil monopoly, you may want to stick to the JVM side.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I don't do Microsoft stuff any longer so if given a choice between Java/JVM or C#/.NET, the choice is clear.  Your situation and needs will differ and only you (and your local job market) can decide.&lt;/p&gt;&#xA;" OwnerUserId="10246" LastActivityDate="2011-01-10T06:23:51.183" CommentCount="5" />
  <row Id="35236" PostTypeId="2" ParentId="35170" CreationDate="2011-01-10T06:33:02.097" Score="0" ViewCount="" Body="&lt;p&gt;First off, I would choose C++ for a project if I actually needed OOP and such, so for the projects I do use C on, they usually are shorter and have a much weaker OOP mapping when compared to my C++ projects.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But anyway. when using it the things I miss the most of function overloading and &lt;code&gt;static const&lt;/code&gt; for create type-safe compile-time constants. I'm pretty happy working in C without classes and such. &lt;/p&gt;&#xA;" OwnerUserId="483" LastActivityDate="2011-01-10T06:33:02.097" CommunityOwnedDate="2011-01-10T06:33:02.097" />
  <row Id="35237" PostTypeId="2" ParentId="35049" CreationDate="2011-01-10T06:36:07.707" Score="0" ViewCount="" Body="&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/rc8Yp.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;br&gt;&#xA;Try indian style sitting. This prevents the back problems and possible to sit like this on the chair. You just need to have some thing like a bench same as your chair's height. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2011-01-10T06:36:07.707" CommentCount="7" />
  <row Id="35240" PostTypeId="2" ParentId="35228" CreationDate="2011-01-10T06:50:12.717" Score="14" ViewCount="" Body="&lt;p&gt;If all you get out of C# is that there are a bunch of drag and drop tools, you haven't gotten very far with the language. Actually, unless I was doing a quick and dirty winforms app or a really brain-dead webforms app, I can't remember the last time the visual tools played much a role in my development cycle. But I usually write Asp.Net MVC code when I do web stuff in C#, and in most of the real projects I've done I've spent more time designing the object model than I did dealing with UI concerns.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;C# is far more expressive, as a language, than Java. The functional constructs like Linq (and the features that Linq required C# to offer) and the convenience of things like delegates (vs inner classes) and auto-properties are really nice. But Java has a really compelling ecosystem of well-designed open-source frameworks and packages that mostly make up for the crummy language. Also, dealing with dependent libraries with the help of tools like Maven or Ivy is a lot more pleasant than in C#, at least if you ever build products that co-evolve with other toolsets. Microsoft is only recently finally getting around to making the experience of dealing with libraries in your software configuration management process more rational.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Compared to C#, Java requires a lot more boilerplate code that doesn't do much for readability or maintenance, other the fact that everyone is used to the same level of tedium for every kind of problem, and nobody finds it surprising. Code Gen tools are at least as common in the Java space as the visual designers are in C# UI, but the thing is, in the .Net ecosystem I have plenty of ways to avoid the need to use those kind of visual tools, whereas avoiding tedium and code-gen in Java requires you to use another language that works in the JVM. But if you want to deploy your code on a Linux box or a Mac, you'll have an easier time of it if you are working in Java, especially if you go down the road of doing something in WPF or Silverlight for UI.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In Java, you'll probably spend more time mastering various frameworks than you'll spend learning the language, because the language is really simple and almost minimalist. The frameworks are often tacitly trying to work around limitations in the language. There's nothing inherently evil about that, it's just a different philosophy. In C#, programmer convenience and expressiveness are more highly valued than uniformity. There's really something very comforting about the rigidity of Java as a language, especially if you're forced to make sense of someone else's code. You can spot poor coding practices very quickly. In more expressive languages, you may have to spend more time understanding what the side effects of a particular choice of syntax might be.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm a language geek, both when it comes to programming languages and natural languages. I'm thrilled when someone throws me a project that would benefit from Ruby or Boo or Groovy or F# or whatever, because I get to take advantage of the fantastic expressiveness of those languages. There's nothing wrong with learning C# or Java, as long as you're willing to see the limitations that you encounter there honestly, and especially if you go and explore other options beyond the mainstream from time to time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think it's better to learn both, because Java and C# are a big deal in mainstream application development, and you'd be doing yourself a disservice not to have a good understanding of what's out there. But don't mislead yourself into thinking that one or the other will make you a better programmer. If you were comparing Basic, PHP, or Pascal to Java or C#, I would say you're better off learning Java or C#, but there's not a particularly important reason for your personal development to decide between Java and C#. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;But don't shy away from alternatives either. Lisp, Scala, Ocaml, Python, Ruby, and even things like IO are worth learning.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Drag and drop tools were mostly designed in an era when it was really hard to construct UI. It was tedious to build a UI in C, C++ or Pascal circa 1992. Tools like VB and Delphi made this less painful. When .Net emerged, it was important to retain the IT developers and consultants that Microsoft (and Borland) had made successful with the help of visual tools. But that doesn't mean that C# (or even VB.Net) is &lt;em&gt;about&lt;/em&gt; drag and drop. Those are just aspects of the whole toolkit, and really, they don't matter nearly as much as they used to. The era of &quot;RAD&quot; has mostly passed, in favor of testability and separation of concerns.&lt;/p&gt;&#xA;" OwnerUserId="7080" LastActivityDate="2011-01-10T06:50:12.717" CommentCount="7" />
  <row Id="35241" PostTypeId="2" ParentId="33068" CreationDate="2011-01-10T06:55:27.257" Score="1" ViewCount="" Body="&lt;p&gt;It's not a huge project, but the &lt;a href=&quot;http://subsonicproject.com/&quot; rel=&quot;nofollow&quot;&gt;SubSonic ORM&lt;/a&gt; was extremely easy for me to hack. It was the first real open source project I was able to modify exactly how I needed. Most of the others I ended up looking at the source and banging my head on a wall. I had it partially supporting PostgreSQL (basing it on the SQL Server provider thing) within a few hours. It's the most well organized project I've seen yet... though not to say I've looked at a lot of open source projects. &lt;/p&gt;&#xA;" OwnerUserId="483" LastActivityDate="2011-01-10T06:55:27.257" />
  <row Id="35242" PostTypeId="1" CreationDate="2011-01-10T06:57:21.627" Score="2" ViewCount="312" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I have been working for more than a year for this company.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now they want me to create a KT Document for reference.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is there any template available for me to document the coding done by me..  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks and regards,&#xA;Vinay&lt;/p&gt;&#xA;" OwnerUserId="12782" LastActivityDate="2011-01-10T11:44:08.803" Title="Template for Knowledge Transfer" Tags="&lt;documentation&gt;&lt;knowledge&gt;" AnswerCount="1" FavoriteCount="2" />
  <row Id="35243" PostTypeId="2" ParentId="13757" CreationDate="2011-01-10T07:09:31.207" Score="1" ViewCount="" Body="&lt;p&gt;I taught myself programming and as a result I learned a ton of new words, without ever hearing people pronounce them. For instance, It wasn't until after programming for about 4 years(my senior year in high school) that I learned that syntax is sin-tax, not sine-tax. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some things i consider a bit odd for me:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;*&lt;/code&gt; = star (C code like &lt;code&gt;*x=10&lt;/code&gt; I pronounce like 'star Ex equals 10')&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;stdio&lt;/code&gt; = es-studio&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;stdlib&lt;/code&gt; = es-tee-dee-lib  (lib as in libertarian) &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;#&lt;/code&gt; was pound to me until I started using C#, not I pronounce it both pound and sharp when reading code&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;&amp;amp;&lt;/code&gt; = and, including when it's really the &lt;code&gt;address of&lt;/code&gt; operator&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;$&lt;/code&gt; = string. This is from the first programming language I used(DarkBasic) where variable names prefixed with $ were string variables.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;%&lt;/code&gt; = percent&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;!&lt;/code&gt; = not (even when reading command lines and such)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;SQL&lt;/code&gt; = Sequel since last year where I started using it cause it's a lot easier for me to say than &lt;code&gt;S Q L&lt;/code&gt; &lt;/p&gt;&#xA;" OwnerUserId="483" LastActivityDate="2011-01-10T07:09:31.207" CommunityOwnedDate="2011-01-10T07:09:31.207" />
  <row Id="35244" PostTypeId="2" ParentId="35124" CreationDate="2011-01-10T07:31:17.933" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Programming is like artistry.&lt;/strong&gt; One Van Gough is going to sell not just hundreds, but millions of times more copies of paintings that your average painter. This is because coping is cheap and in any profession where coping is cheap, N is vastly greater than in other professions. Take a thousand average artists and you won't get something that is a thousand times better than one of them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;But people tend to think that programming is like building&lt;/strong&gt;. That you can just send in more programmers and that will help, but of course it doesn't. If a master artist was taking too long on a project, does that mean you should send a group of average artists to help him or her? Of course not.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;N matters to programmers, because a thousand average ones can't do the job of one great one.&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2011-01-10T07:31:17.933" />
  <row Id="35245" PostTypeId="1" CreationDate="2011-01-10T07:57:01.950" Score="2" ViewCount="500" Body="&lt;p&gt;...would it be what? slower, unmaintainable? why? did a programming language surpass C++? what programming language would you use if you were... an organization, Microsoft?&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T09:12:02.707" ClosedDate="2011-01-10T09:15:46.040" Title="If Windows was programmed in LISP..." Tags="&lt;windows&gt;&lt;lisp&gt;" AnswerCount="3" CommentCount="10" FavoriteCount="0" />
  <row Id="35246" PostTypeId="2" ParentId="35208" CreationDate="2011-01-10T08:17:29.630" Score="1" ViewCount="" Body="&lt;p&gt;if u study hard for the big school and if u can make it there  i would say go for it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;my simple advice would be that to live in the present.&lt;/p&gt;&#xA;" OwnerUserId="8843" LastActivityDate="2011-01-10T08:17:29.630" CommunityOwnedDate="2011-01-30T12:11:41.793" />
  <row Id="35247" PostTypeId="2" ParentId="35245" CreationDate="2011-01-10T08:19:49.243" Score="6" ViewCount="" Body="&lt;p&gt;It wouldn't exist, because:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You can't write efficient low-level (kernel) code in Lisp, because current computers aren't &lt;a href=&quot;http://en.wikipedia.org/wiki/Lisp_machine&quot; rel=&quot;nofollow&quot;&gt;Lisp machines&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;You can't find enough good Lisp programmers to make a system as big as Windows. MS Windows is arguably the most complicated piece of anything that the human kind has ever created.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;While C++ may be a &lt;a href=&quot;http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918&quot; rel=&quot;nofollow&quot;&gt;horrible language&lt;/a&gt;, it has what it takes to create a big OS:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You &lt;em&gt;can&lt;/em&gt; write efficient low-level code in it (plus, you can also write relatively high-level code in it).&lt;/li&gt;&#xA;&lt;li&gt;You &lt;em&gt;can&lt;/em&gt; find enough decent developers to get the job done. It has been proved by MS Windows.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="2550" LastEditorUserId="2550" LastEditorDisplayName="" LastEditDate="2011-01-10T08:43:10.253" LastActivityDate="2011-01-10T08:43:10.253" CommentCount="14" />
  <row Id="35248" PostTypeId="1" AcceptedAnswerId="35270" CreationDate="2011-01-10T08:19:49.660" Score="4" ViewCount="159" Body="&lt;p&gt;I haven't looked at Java Garbage Collection for a while and feel the need for a refresher on it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Anyone recommend a resource or two?&lt;/p&gt;&#xA;" LastActivityDate="2011-01-25T20:19:01.553" Title="Best refresher material on Java Garbage Collection?" Tags="&lt;java&gt;&lt;garbage-collection&gt;" AnswerCount="2" FavoriteCount="1" />
  <row Id="35249" PostTypeId="2" ParentId="35245" CreationDate="2011-01-10T08:23:15.653" Score="2" ViewCount="" Body="&lt;p&gt;A lot of you will not agree but Lisp syntax is horrible. Readability, and as a result, maintenance is far from acceptable for big system. &lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;what programming language would you use if you were... an organization, Microsoft?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I would go for managed language like C#. &lt;a href=&quot;https://channel9.msdn.com/Shows/Going+Deep/Verve-A-Type-Safe-Operating-System&quot; rel=&quot;nofollow&quot;&gt;It could work.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Singularity wiki:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;The lowest-level x86 interrupt dispatch code is written in assembly language and C. Once this code has done its job, it invokes the kernel, whose runtime and garbage collector are written in Sing# (an extended version of Spec#, itself an extension of C#) and runs in unsafe mode. The hardware abstraction layer is written in C++ and runs in safe mode. There is also some C code to handle debugging. The computer's BIOS is invoked during the 16-bit real mode bootstrap stage; once in 32-bit mode, Singularity never invokes the BIOS again, but invokes device drivers written in Sing#. During installation, Common Intermediate Language (CIL) opcodes are compiled into x86 opcodes using the Bartok compiler.&quot;&lt;/p&gt;&#xA;" OwnerUserId="7890" LastEditorUserId="7890" LastEditorDisplayName="" LastEditDate="2011-01-10T09:12:02.707" LastActivityDate="2011-01-10T09:12:02.707" CommentCount="7" />
  <row Id="35250" PostTypeId="2" ParentId="35242" CreationDate="2011-01-10T08:27:02.450" Score="2" ViewCount="" Body="&lt;p&gt;I don't believe there is a helpful general template, all templates probably will be to large and restrictive to be helpfull to you. What you need to write down depends on to many factors:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What is your role&lt;/li&gt;&#xA;&lt;li&gt;The size of the software&lt;/li&gt;&#xA;&lt;li&gt;The complexity of the software &lt;/li&gt;&#xA;&lt;li&gt;intended audience&lt;/li&gt;&#xA;&lt;li&gt;what is already done by other roles&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;What you could do in my mind is make a check-list and per project see what is covered in the code it self, or in the documentation of others, select the things you need to cover, report the things that aren't covered anywhere back to your manager. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Making the code self-explanatory and putting comments in the code should make sure that you don't have to document a lot about the lowest code level.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I think the people here at programmers could help a lot with a check-list, but to get you started. (Remember this list is supposed to be filtered and hopefully a lot will be covered by other roles like operational managers, software architects, functional designers)&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;purpose of the document&lt;/li&gt;&#xA;&lt;li&gt;intended audience (maybe it will not only be fellow devs put also people from application management)&lt;/li&gt;&#xA;&lt;li&gt;Functionality the software enables&lt;/li&gt;&#xA;&lt;li&gt;How to get a new developer started &lt;/li&gt;&#xA;&lt;li&gt;design decisions (a nice level of decisions and a check-list for this can be found at &lt;a href=&quot;http://apparch.codeplex.com/wikipage?title=Checklist%20-%20Architecture%20and%20Design&amp;amp;referringTitle=Checklists&quot; rel=&quot;nofollow&quot;&gt;P&amp;amp;P&lt;/a&gt;) &lt;/li&gt;&#xA;&lt;li&gt;general overview of components and their dependencies&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.martinfowler.com/bliki/TechnicalDebt.html&quot; rel=&quot;nofollow&quot;&gt;Technical debt&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;security&lt;/li&gt;&#xA;&lt;li&gt;third party tooling used&lt;/li&gt;&#xA;&lt;li&gt;Deployment strategies&lt;/li&gt;&#xA;&lt;li&gt;Databases structure&lt;/li&gt;&#xA;&lt;li&gt;stakeholders concerns and how the software full-fills these concerns.&lt;/li&gt;&#xA;&lt;li&gt;What &lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_system_quality_attributes&quot; rel=&quot;nofollow&quot;&gt;system quality attributes&lt;/a&gt; have identified and addressed how ?&lt;/li&gt;&#xA;&lt;li&gt;The purpose of machine depended configuration settings&lt;/li&gt;&#xA;&lt;li&gt;how the install the software&lt;/li&gt;&#xA;&lt;li&gt;how to roll the software back&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;When you look at the list above that is created without knowledge of your situation you can imagine the size of general purpose templates.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One of the most important things I think is that the documentation must have a purpose, if you document purely for the purpose of documenting that is a waste of your time. Sometimes a company just wants the documentation for certain levels of compliance.&lt;/p&gt;&#xA;" OwnerUserId="10422" LastEditorUserId="611" LastEditorDisplayName="" LastEditDate="2011-01-10T11:44:08.803" LastActivityDate="2011-01-10T11:44:08.803" />
  <row Id="35251" PostTypeId="2" ParentId="35228" CreationDate="2011-01-10T08:28:42.887" Score="1" ViewCount="" Body="&lt;p&gt;My opinion is: Go for that technology in which you feel comfortable but ill suggest you to study languages like C/C++ because that will help you creating your concepts very clear and you know little deeper then a C# person&lt;/p&gt;&#xA;" OwnerUserId="8760" LastActivityDate="2011-01-10T08:28:42.887" />
  <row Id="35252" PostTypeId="1" CreationDate="2011-01-10T08:58:24.523" Score="5" ViewCount="274" Body="&lt;p&gt;Hi, I was wondering if there were any forums that would review computer science-y resumes since I figured having my resume reviewed by general humanities-related people wouldn't be as effective...thanks!&lt;/p&gt;&#xA;" OwnerUserId="12786" LastActivityDate="2011-01-10T20:37:09.893" Title="Where to get my resume reviewed?" Tags="&lt;resume&gt;" AnswerCount="5" CommentCount="8" FavoriteCount="0" />
  <row Id="35253" PostTypeId="2" ParentId="35245" CreationDate="2011-01-10T09:05:22.743" Score="0" ViewCount="" Body="&lt;p&gt;I will try to write high level stuffs (UI and likewise) in Python. I'll create C (you may use C++) libraries for performance critical stuffs. I'll then interface it with Python. I'll set an separate group of researchers into improving Python interpreter and compiler. May be I'll use code written in Python which IMHO is easier to maintain than the C counterpart, and then cross compile them to the required architecture.  &lt;/p&gt;&#xA;" OwnerUserId="4626" LastActivityDate="2011-01-10T09:05:22.743" />
  <row Id="35255" PostTypeId="2" ParentId="35252" CreationDate="2011-01-10T09:55:46.177" Score="5" ViewCount="" Body="&lt;p&gt;Find a local meetup of technical people and ask them.&#xA;They can help you with the local job market to.&#xA;Plus, it's networking which may lead you to a job by itself!&lt;/p&gt;&#xA;" OwnerUserId="11727" LastActivityDate="2011-01-10T09:55:46.177" CommentCount="2" />
  <row Id="35256" PostTypeId="2" ParentId="35252" CreationDate="2011-01-10T10:42:33.677" Score="1" ViewCount="" Body="&lt;p&gt;The best people to review your resume are your well-wishers. They should preferably have the same technical background as yours and should know you very well. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;There is no such thing as &quot;the perfect resume&quot; that you'll present to potential employers. Simply pool in opinions from experienced people and try to incorporate the positive points that each one suggests, whether it is in the form of the font style, the specific details under each heading and the overall appeal.&lt;/p&gt;&#xA;" OwnerUserId="8903" LastActivityDate="2011-01-10T10:42:33.677" CommentCount="1" />
  <row Id="35257" PostTypeId="2" ParentId="35252" CreationDate="2011-01-10T10:46:22.823" Score="0" ViewCount="" Body="&lt;p&gt;The job consultant companies can also do this. Off course they ask for fees. They will have professional people with them who will help you. &lt;/p&gt;&#xA;" OwnerUserId="8820" LastActivityDate="2011-01-10T10:46:22.823" CommentCount="2" />
  <row Id="35258" PostTypeId="1" CreationDate="2011-01-10T10:48:25.200" Score="7" ViewCount="356" Body="&lt;p&gt;I have solid experience in .NET with C# but without any experience in ASP.NET or ASP.NET MVC. I'm learning ASP.NET MVC now and want to gain some experience in it. I think that best option for me is to take part in open-source project. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Is there any ASP.NET MVC  open-source project that correspond to my needs?&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="7295" LastActivityDate="2011-03-07T17:31:07.947" Title="ASP.NET MVC open source projects for learning" Tags="&lt;learning&gt;&lt;open-source&gt;&lt;asp.net-mvc&gt;" AnswerCount="6" FavoriteCount="3" />
  <row Id="35259" PostTypeId="2" ParentId="35223" CreationDate="2011-01-10T10:55:53.710" Score="1" ViewCount="" Body="&lt;p&gt;Some that come to mind are; registers, ALU, operand width, address mode&lt;/p&gt;&#xA;" OwnerUserId="3122" LastActivityDate="2011-01-10T10:55:53.710" />
  <row Id="35260" PostTypeId="2" ParentId="34227" CreationDate="2011-01-10T11:03:48.647" Score="1" ViewCount="" Body="&lt;p&gt;All my contributions to fairly large open source projects came from stuff &lt;strong&gt;I needed myself&lt;/strong&gt;. I never went out and said, &quot;hey, I have so much free time, I want to contribute to something, where can I apply?&quot;&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2011-01-10T11:03:48.647" />
  <row Id="35261" PostTypeId="2" ParentId="35049" CreationDate="2011-01-10T11:16:53.180" Score="1" ViewCount="" Body="&lt;p&gt;You can connect two sets of keyboard/mouse/screen. The computer must have two extra available USB ports (for the extra KB/mouse), and a dual monitor videocard with clone capabilities. Both sets can work in tandem, so no plugging/unplugging necessary – you can switch between them instantly and with zero effort. Each set could be placed on its own portion of the desk or at different angles (or if you can get it to work, one above the other).&lt;/p&gt;&#xA;" OwnerUserId="135" LastActivityDate="2011-01-10T11:16:53.180" />
  <row Id="35262" PostTypeId="1" AcceptedAnswerId="35265" CreationDate="2011-01-10T11:28:06.747" Score="11" ViewCount="724" Body="&lt;p&gt;My company has recently switched to an Agile way of working and as a part of it we've started using SCRUM. While I'm very comfortable with it and feel that this way is superior to a traditional one, some of my teammates don't share the same opinion. In fact they are very skeptical about &quot;all that agile stuff&quot;, and don't take it seriously. As an example, one of the teammates is always late on the meetings, and doesn't really care about it. The management IMO tries not to notice this (maybe because it's new, and it takes time for the people to get used to it).  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is, how to address this issue while not raising a conflict inside the team? &lt;/p&gt;&#xA;" OwnerUserId="6328" LastEditorUserId="37" LastEditorDisplayName="" LastEditDate="2011-01-11T05:41:12.230" LastActivityDate="2011-05-19T04:31:20.490" Title="Skeptic in a Scrum Team" Tags="&lt;team&gt;&lt;scrum&gt;" AnswerCount="10" CommentCount="5" FavoriteCount="1" />
  <row Id="35263" PostTypeId="2" ParentId="35262" CreationDate="2011-01-10T11:31:46.090" Score="0" ViewCount="" Body="&lt;p&gt;Fire the teammate, then he won't be causing controversy within the team.&lt;/p&gt;&#xA;" OwnerUserId="1463" LastActivityDate="2011-01-10T11:31:46.090" CommentCount="8" />
  <row Id="35264" PostTypeId="2" ParentId="35262" CreationDate="2011-01-10T11:35:39.993" Score="0" ViewCount="" Body="&lt;p&gt;Browse through your older work, dig up multiple examples how the water-fall approach let you down many times in the past. Then present the cases to your team mate. With a glimpse of common sense, he will see the light.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Programming is a precision activity so a rare individual would stay unreceptive to the hard facts. At least, in theory.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2011-01-10T11:35:39.993" CommentCount="4" />
  <row Id="35265" PostTypeId="2" ParentId="35262" CreationDate="2011-01-10T11:42:32.440" Score="15" ViewCount="" Body="&lt;p&gt;When faced with extreme skeptism I try a few things:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;1.) I demonstrate techniques such as TDD, Continuous Deployment, Pair Programming, Requirements Gathering with your users, short iterations etc.  I &lt;em&gt;don't&lt;/em&gt; call those techniques Agile or harp on about the Agile Manifesto (I do harp on about Software Craftsmanship - but that's different ;p).  I simply show the team members useful tools and techniques that make their lives easier.  They tend to hop on the Agile bandwagon once they see the benefits day-to-day.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;2.) I don't swap immediately to a full blown SCRUM (or other) methodology.  It's always best to introduce small aspects of Agile at a time.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;3.) I agree with the skeptics (to a point). Agile isn't a silver bullet and SCRUM, Kanban, Lean etc are also not a silver bullet.  Instead I work with them to see what aspects could benefit them immediately (A CI server is a no-brainer usually) and then I trial the rest &quot;Lets give stand-ups a go for one week and then review it&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Like any methodology, SCRUM and others need to actually work with the team and the organisation, not alienate them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to get directly to your question.  Raise it with the team:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&quot;I'm also a little skeptical about the stand-ups, but I think as a team we should give it a proper go for 1 week (no excuses!) and then review it to see if it worked for us.  What do people think?&quot;&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2011-01-10T11:42:32.440" CommentCount="7" />
  <row Id="35266" PostTypeId="2" ParentId="35152" CreationDate="2011-01-10T11:50:48.373" Score="1" ViewCount="" Body="&lt;p&gt;Git and SVN actually play rather nicely with each other these days, so you could get the team to trial using Git with the SVN tie-in.  This is possibly true of other DVCS systems as well. DVCS source control systems are recommended for distributed teams but for me it's not a deal-breaker, especially for a project with so few developers.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;JIRA IMO just rocks - I've yet to see another product that out performs it to a point where I'd take the pain of shifting.&lt;/p&gt;&#xA;" OwnerUserId="611" LastActivityDate="2011-01-10T11:50:48.373" />
  <row Id="35267" PostTypeId="1" CreationDate="2011-01-10T11:52:18.200" Score="0" ViewCount="191" Body="&lt;p&gt;Hi,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been studying C# for about 2 months so far, I have a few years experience programming however in VBA and VB6, but nothing too in depth (I've written simple tools, but nothing too advanced).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am very interested in WPF and I was wondering whether it would be too early for me to start learning how to use it? &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For reference, I am about 400 pages into 'Head First C#' and I've written a program that can quickly tag image files for moving into a predefined folder or to delete (Allows the user to pull images off of a camera memory card and sort VERY quickly). That's the most advanced app I've written.&lt;/p&gt;&#xA;" OwnerUserId="12800" LastEditorUserId="47" LastEditorDisplayName="" LastEditDate="2011-04-26T14:59:10.223" LastActivityDate="2011-04-26T14:59:10.223" ClosedDate="2011-01-10T13:00:41.870" Title="Should I start learning WPF?" Tags="&lt;learning&gt;&lt;c#&gt;&lt;wpf&gt;" AnswerCount="1" CommentCount="3" />
  <row Id="35268" PostTypeId="2" ParentId="35228" CreationDate="2011-01-10T12:05:17.347" Score="0" ViewCount="" Body="&lt;p&gt;You say you ask this because of the Drag and Drop functionality in .NET irritates you..&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When developing ASP.NET web forms, you can also choose to write the ASP GUI objects diectly in HTML code view. I have code view set as default in VisualStudio, so I get into the visual &lt;em&gt;drag-and-drop&lt;/em&gt; Design view only in a rare occasion when I want to get a quick look at how a specific design change might look like. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Instead of dragging a button in, you can just write directly in the HTML source:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;asp:Button runat=&quot;server&quot; id=&quot;btnMyButton&quot;&#xA; Text=&quot;Click me!&quot; onclick=&quot;btnMyButton_Click&quot; /&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Then in the C# code, all you have to do is to add the handler method:&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;protected void btnMyButton_Click(object sender, EventArgs e)&#xA;{&#xA;    // The onclick code goes here&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You can alternatively connect to the event manually in the C# code (instead of &lt;code&gt;onclick=&quot;btnMyButton_Click&quot;&lt;/code&gt; in the tag declaration):&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;this.btnMyButton.Click += new System.EventHandler(this.btnMyButton_Click);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;This would typically be done in &lt;code&gt;Page_Init&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;p&gt;If you do some development in WPF, you also have the possibility to not use the Drag and Drop by entering code directly as tags.&lt;/p&gt;&#xA;" OwnerUserId="7768" LastEditorUserId="7768" LastEditorDisplayName="" LastEditDate="2011-01-10T12:32:01.697" LastActivityDate="2011-01-10T12:32:01.697" />
  <row Id="35269" PostTypeId="2" ParentId="34227" CreationDate="2011-01-10T12:06:20.647" Score="0" ViewCount="" Body="&lt;p&gt;I began by looking into the sourceforge's help wanted section . I would look for projects that needed my skills , but usually it would be projects where i could build up some badly needed skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The next thing I would do is learn to set up the code base and get a working copy running.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then try to figure out an complete end to end workflow. This way i would understand how the code is written and would be rest assured the same pattern would be used in other workflow .&#xA;By pattern i mean things like action --&gt; service --&gt; dao etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then i would hunt around for bugs related to the workflow i have just completely understood and try to write a fix . Before that i would look for the unit tests written for the workflow ( if there isn't any i would write one myself)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Then the next thing would be get hold the last guy who had commited the code in the particular module to review my fix. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;The ensuing discussions would definitely help in increasing your understanding about a lot of things.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now you have had a good start and well aware of atleast one tiny particular part of the project. Take control of it and try digging / branching out into other areas.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also like many have said before try documenting whatever you find and get it reviewed by the person who last committed that part of the code.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;These are my little nuggets, good luck. Happy coding.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Cheers,&#xA;Goutham Rao&lt;/p&gt;&#xA;" OwnerUserId="12801" LastActivityDate="2011-01-10T12:06:20.647" />
  <row Id="35270" PostTypeId="2" ParentId="35248" CreationDate="2011-01-10T12:09:40.687" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html&quot; rel=&quot;nofollow&quot;&gt;This document&lt;/a&gt; is about tuning, but will also give you a good overview about garbage collection/memory management in Java.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you do have special questions, perhaps it is answered &lt;a href=&quot;http://java.sun.com/docs/hotspot/gc1.4.2/faq.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;" OwnerUserId="11331" LastActivityDate="2011-01-10T12:09:40.687" />
  <row Id="35271" PostTypeId="2" ParentId="35267" CreationDate="2011-01-10T12:14:32.807" Score="0" ViewCount="" Body="&lt;p&gt;Why not?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If I'm interested in some stuff, I usually try to find a good book, study this book and try to code some small app in parallel. Reading a book without trying to code usually doesn't work for me.&lt;/p&gt;&#xA;" OwnerUserId="10158" LastActivityDate="2011-01-10T12:14:32.807" />
  <row Id="35272" PostTypeId="1" AcceptedAnswerId="35274" CreationDate="2011-01-10T12:29:08.807" Score="4" ViewCount="256" Body="&lt;p&gt;Problem: user has left review of iPhone app which is simply incorrect&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Question: is there a way to make contact with the reviewer and a) explain how what they've said is incorrect and help them with their issue or b) challenge the review?&lt;/p&gt;&#xA;" OwnerUserId="12802" LastActivityDate="2011-01-10T16:58:20.143" Title="Is there a way to dispute or challenge poor iPhone app reviews?" Tags="&lt;iphone&gt;&lt;review&gt;&lt;app&gt;" AnswerCount="4" CommentCount="3" />
  <row Id="35273" PostTypeId="2" ParentId="35262" CreationDate="2011-01-10T12:30:26.583" Score="13" ViewCount="" Body="&lt;p&gt;A typical case of wrongly implemented &lt;strong&gt;Scrum&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Scrum&lt;/strong&gt; has been imposed to the team. The (whole) team didn't choose it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;When you want to implement it, you must have full support of both the team and management, or it is not going to work at all.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Resistance to change is your enemy here.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;I highly suggest you to start over and present &lt;strong&gt;Scrum&lt;/strong&gt; to the team and let them ask questions.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you fail to sell the idea, don't try to force them using a methodology they don't want. They'll do everything to sabotage it. Coming late in daily stand ups is one of the behavior you'll get.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Please note that &lt;strong&gt;Scrum&lt;/strong&gt; may not advisable for your company. The only persons that can answer that question is the people that work at the base. &lt;strong&gt;The team&lt;/strong&gt;.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-10T12:30:26.583" CommentCount="6" />
  <row Id="35274" PostTypeId="2" ParentId="35272" CreationDate="2011-01-10T12:45:33.653" Score="2" ViewCount="" Body="&lt;p&gt;No, not at all. Encouraging people to contact you in the app description can reduce &quot;the app doesn't work&quot; reviews, but that's about it. It's unfortunate and pretty severely flawed, but there's no way to contact the reviewer and no way to challenge or respond to reviews.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Reviews from people who've used the app and indicate they've not had the problem might help, though they're sometimes regarded as developer spam by readers. It's a tough situation.&lt;/p&gt;&#xA;" OwnerUserId="8076" LastActivityDate="2011-01-10T12:45:33.653" />
  <row Id="35275" PostTypeId="2" ParentId="35214" CreationDate="2011-01-10T12:53:56.970" Score="3" ViewCount="" Body="&lt;p&gt;You can get Visual Studio 2010 for free by just downloading it of the Microsoft Web Site. It is not the full version, but is plenty good enough for learning. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/express/Downloads/#2010-Visual-CPP&quot; rel=&quot;nofollow&quot;&gt;http://www.microsoft.com/express/Downloads/#2010-Visual-CPP&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1916" LastActivityDate="2011-01-10T12:53:56.970" />
  <row Id="35276" PostTypeId="1" CreationDate="2011-01-10T12:54:07.867" Score="6" ViewCount="286" Body="&lt;p&gt;Hello, &lt;/p&gt;&#xA;&#xA;&lt;p&gt;This question is focused on &lt;strong&gt;extracting the advantages and disadvantages of using Web based Frameworks&lt;/strong&gt;: such as Cake PHP, Zend, jQuery, ASP.NET). This question is completely &lt;em&gt;language agnostic&lt;/em&gt;. Let me start with the notion of &lt;em&gt;&quot;Standing on the shoulders of Giants&lt;/em&gt;&quot;. &lt;/p&gt;&#xA;&#xA;&lt;h2&gt;Advantages:&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Empowers Developers&lt;/strong&gt; - by taking features that would have previously have taken 100's of lines of code and compressing them into one simple function call empowers developers to integrate more complex features into their Web Sites. &lt;/li&gt;&#xA;&lt;li&gt;Allow for &lt;strong&gt;Quicker development&lt;/strong&gt; of applications - this is very relevant for people that need websites created in a very small window (has anyone any examples of this?)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Lower Costs&lt;/strong&gt; - allows programmers to pass cost savings onto the customer, a whole new range of customers generated that wanted a website but previously could not afford the higher development costs.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;Disadvantages:&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Lost Understanding&lt;/strong&gt; - by relying on the features of a framework a developer is in danger of loosing understanding on how things work (underneath the hood). &lt;/li&gt;&#xA;&lt;li&gt;The configuration cliff - once you go further than the configuration of your framework your productivity drops right off, it can be difficult to implement features outside of a frameworks configuration. &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Developer tramlines&lt;/strong&gt; - you (the developer) has to do things the way that the developer want you to do things. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I wonder what people make of my points, and whether any body disagrees with them?  Also if people have additional points I would be grateful. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Many Thanks, &#xA;J&lt;/p&gt;&#xA;" OwnerUserId="12464" LastEditorUserId="12464" LastEditorDisplayName="" LastEditDate="2011-01-10T14:05:37.733" LastActivityDate="2011-01-10T16:04:16.243" Title="The advantages &amp; disadvantages to be had from using a Web Framework?" Tags="&lt;programming-languages&gt;&lt;learning&gt;&lt;frameworks&gt;" AnswerCount="6" />
  <row Id="35277" PostTypeId="2" ParentId="35258" CreationDate="2011-01-10T12:56:17.920" Score="5" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://mytripmvc.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;http://mytripmvc.codeplex.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://mvcmusicstore.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;http://mvcmusicstore.codeplex.com/&lt;/a&gt; - this is a tutorial application&lt;/p&gt;&#xA;" OwnerUserId="4512" LastActivityDate="2011-01-10T12:56:17.920" CommentCount="1" />
  <row Id="35278" PostTypeId="2" ParentId="35276" CreationDate="2011-01-10T13:09:37.587" Score="5" ViewCount="" Body="&lt;p&gt;Here's the bottom line: &lt;strong&gt;it can be difficult to implement features outside of a frameworks configuration.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Let's go through this assumption by assumption.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Lost Understanding - by relying on the features of a framework a developer is in danger of loosing understanding on how things work (underneath the hood).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;False.  You'll never lose understanding of how things work.  Frameworks aren't magical.  They're just handy code you don't have to write yourself.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Believe it or not, you'll make mistakes using the framework.  You'll have to debug right down to the lowest levels of HTTP to understand what you did wrong.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You'll never lose sight of what's going on under the hood.  Unless, of course, your framework is so epic and perfect that you never have a problem.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;The configuration cliff - once you go further than the configuration of your framework your productivity drops right off, it can be difficult to implement features outside of a frameworks configuration.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;This makes precious little sense.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;First.  Building without a framework can make a trivial job  into a large programming task that includes unit test, debugging, diagnostics, configuration control and all that other no-value work reinventing stuff that's in the framework.  How is that &quot;productivity&quot;?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Second.  Implementing things outside the framework is always a lot of work because -- ahem -- implementing anything outside a framework is always a lot of work.  It has nothing to do with the time spent learning and configuring the framework.  Implementing anything outside the framework is inherently hard.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Developer tramlines - you (the developer) has to do things the way that the [framework] developer want you to do things.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Correct.  And this is often a good thing.  Doing things a consistent way is more valuable than doing them your own personal preference way.  It may require &quot;learning&quot; and &quot;understanding&quot; but these have value.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Security issues - giving people these tools to develop professional looking websites fast is a potential risk, people can quickly create professional looking websites for fraudulent companies.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;What?  This has nothing to do with the framework.  Fraud is fraud, irrespective of the tools used.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-10T13:09:37.587" CommentCount="5" />
  <row Id="35279" PostTypeId="2" ParentId="35208" CreationDate="2011-01-10T13:09:51.810" Score="0" ViewCount="" Body="&lt;p&gt;Almost all the SUNY schools are excellent choices. Geneseo and Binghamton are both good solid schools. I think its important to note that he is not talking about a place like UT where there are 500 people to a class room. The school he is talking about will have relatively small classrooms.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMO- I would go with the SUNY school for now..There is nothing saying you couldn't transfer to CM or something later. Keep in mind the current employment climate. You DO NOT want to graduate school with a 100k in debt in an employment environment where the salaries have dropped considerably, as have initial opportunities.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also keep in mind, that there is nothing saying you can't go to a big name school for your graduate degree..which as someone else has mentioned many times is at least assisted by your current employer.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also since you seem to be in the area RIT, UofR, Alfred, and UB are all excellent choices that wont break the bank as well.&lt;/p&gt;&#xA;" OwnerUserId="12806" LastActivityDate="2011-01-10T13:09:51.810" CommunityOwnedDate="2011-01-30T12:11:41.793" />
  <row Id="35280" PostTypeId="2" ParentId="35276" CreationDate="2011-01-10T13:10:09.623" Score="0" ViewCount="" Body="&lt;p&gt;It all depends on the framework you use.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you're using ASP.NET, you're at a disadvantage: It's a leaky abstraction &lt;em&gt;at best&lt;/em&gt;, and &lt;em&gt;at worst&lt;/em&gt; makes it a pain to do things that are trivial in other frameworks that don't hide the fact that you're working on the web.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ASP.NET MVC seeks to fix that problem, and it does so well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Frameworks exist so that we can spend more time getting work done, and less time building scaffolding. In that regard, I don't see any disadvantages, unless you really want to spend time building scaffolding.&lt;/p&gt;&#xA;" OwnerUserId="1577" LastActivityDate="2011-01-10T13:10:09.623" CommentCount="1" />
  <row Id="35281" PostTypeId="1" AcceptedAnswerId="35285" CreationDate="2011-01-10T13:20:00.643" Score="3" ViewCount="378" Body="&lt;p&gt;I'm a student who's just beginning his internship.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What is a typical day in the life of a programmer like? Does being in a service company or a product company make a difference?&lt;/p&gt;&#xA;" OwnerUserId="5940" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2011-01-10T13:41:15.647" LastActivityDate="2011-01-10T14:24:49.917" Title="A typical day of a programmer in a consultancy vs. a product company?" Tags="&lt;career&gt;&lt;work-environment&gt;&lt;work&gt;" AnswerCount="7" CommentCount="5" FavoriteCount="1" />
  <row Id="35282" PostTypeId="2" ParentId="35281" CreationDate="2011-01-10T13:24:12.200" Score="2" ViewCount="" Body="&lt;p&gt;I come in (around now :)), sit down, grab a coffee and have a quick breakfast while I read over my notes from the day before to get my head back into what I was working on before I left. Then I get back to work. There's usually a meeting or two (daily team scrum is one and the team I'm on is geographically distributed). Mostly I spend my day working on various tasks, most of which include coding, with a break for lunch.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This is in a product-focused company. My last job was at a more service-oriented place, but the services were more in the research &amp;amp; analysis area, while I developed products to support that, so my routine was largely the same.&lt;/p&gt;&#xA;" OwnerUserId="226" LastEditorUserId="226" LastEditorDisplayName="" LastEditDate="2011-01-10T13:44:21.870" LastActivityDate="2011-01-10T13:44:21.870" CommentCount="3" />
  <row Id="35283" PostTypeId="2" ParentId="35276" CreationDate="2011-01-10T13:25:31.447" Score="1" ViewCount="" Body="&lt;p&gt;I would want to add some points.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;One of the biggest problems with frameworks I find is that people stop to think. They just want to use the framework because it's cool or because they always use the framework. They dont stop to think if the use is justified.&lt;/li&gt;&#xA;&lt;li&gt;Licensing, people just seem to use frameworks without really looking at the licensing. This could have implications that they aren't aware off. Or think about what happens when the license changes.&lt;/li&gt;&#xA;&lt;li&gt;Using to much of the same kind of frameworks. Sometimes their can be a lot of frameworks that actually do pretty much the same thing. As a company you make educated choices and not have a different framework for every project.&lt;/li&gt;&#xA;&lt;li&gt;Keeping up with new versions might be a challenge&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Still I think putting in a bit more effort to evaluate frameworks, assess the licenses,  keep a clean list of frameworks per use and have a smart versioning strategy are worth it when you consider the Advantages.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Advantages:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;when you consistently use frameworks the learning time for projects decrease for people who already worked on your projects.&lt;/li&gt;&#xA;&lt;li&gt;your own quicker development&lt;/li&gt;&#xA;&lt;li&gt;your own empower developers&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2011-01-10T13:25:31.447" CommentCount="3" />
  <row Id="35284" PostTypeId="2" ParentId="35281" CreationDate="2011-01-10T13:32:42.067" Score="2" ViewCount="" Body="&lt;p&gt;Come in, grab a coffee, read my emails, read the news (google reader), grab another coffee, got to the scrum meeting, grab another coffee, continue reading the news, switch to emails, chat with my co-workers, then open IDE, code.&lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2011-01-10T13:32:42.067" CommentCount="1" />
  <row Id="35285" PostTypeId="2" ParentId="35281" CreationDate="2011-01-10T13:37:27.757" Score="6" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Does being in a service company or a product company make a difference?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Yes, it does.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Consulting companies (what you call a service company) develop client projects. Specifics are:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If customers are geographically distributed, programmers will be forced to travel between projects and customers, can be a new location every day&lt;/li&gt;&#xA;&lt;li&gt;Programmers might be switched between projects as needed, so the sense of continuity and belonging to the project will be broken&lt;/li&gt;&#xA;&lt;li&gt;Time and costs matter more than quality, programmers might be forced to work badly to meet the deadlines&lt;/li&gt;&#xA;&lt;li&gt;People generally care less about quality since they don't often get to see the long-term effects of their technical decisions&lt;/li&gt;&#xA;&lt;li&gt;People generally care less about programming since they join consultancies to make a career move and earn money not because they love their profession&lt;/li&gt;&#xA;&lt;li&gt;May be no time allocated to try and learn new technologies in practice, people with skills are needed immediately (if not yesterday)&lt;/li&gt;&#xA;&lt;li&gt;Programmers will need to have good social skills (develop them or miserably fail if it doesn't work out) to communicate with customers. Explain the economic consequences of technical decisions, sometimes use your technical knowledge to bend the customers opinion where you need it to go. Also play politics now and then.&lt;/li&gt;&#xA;&lt;li&gt;The focus will be making customers happy not doing really cool things&lt;/li&gt;&#xA;&lt;li&gt;Lots of varying projects, always change, get to see different things&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;That's pretty much the key differences between the two. Product companies have them the other way around.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastEditorUserId="8685" LastEditorDisplayName="" LastEditDate="2011-01-10T13:44:46.910" LastActivityDate="2011-01-10T13:44:46.910" CommentCount="5" />
  <row Id="35286" PostTypeId="2" ParentId="35281" CreationDate="2011-01-10T13:38:05.130" Score="0" ViewCount="" Body="&lt;p&gt;Hmmm.  Today's looking to be fairly typical, so I'll mix in some of that with the &quot;usual&quot;.  Show up early to get some work done, but find note plastered on my monitor that we have a hardware failure somewhere (IT guys haven't arrived yet, so the users bounced over to IS looking for help).  Go poke at and end up retrieving failed computer (because it's hosed in a big way) and open an IT trouble ticket.  Open e-mail.  Get phone call that wireless is down.  IT guys won't be here for another 5 minutes, so I type it into the trouble ticket software.  If IT was still a ways out I'd go ahead and fix those items, but they should be here any minute, so I'll try to stick to the software side as much as I can.  Read e-mail.  IT shows up, point out what's going on with the failed hardware so they can get started on it faster.  Finish reading e-mail.  Check IS side of the trouble ticket software to see if there's anything bug fixes I need to squeeze in before going to the project I'm supposed to be working on.  Jump out to a couple blogs to look for programming tips.  Occasionally check here for any new ideas I can snag.  Usually around lunchtime I'm caught up on important bugs and able to get to my actual assigned project (but sometimes it's nearly quitting time before I get to it).  Go home, rinse, repeat.&lt;/p&gt;&#xA;" OwnerUserId="715" LastActivityDate="2011-01-10T13:38:05.130" />
  <row Id="35287" PostTypeId="2" ParentId="35281" CreationDate="2011-01-10T13:39:46.740" Score="1" ViewCount="" Body="&lt;p&gt;Sit. Type. Lunch. Meeting. Type. Leave.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2011-01-10T13:39:46.740" CommentCount="3" />
  <row Id="35288" PostTypeId="2" ParentId="2666" CreationDate="2011-01-10T13:41:25.047" Score="7" ViewCount="" Body="&lt;p&gt;As a student, I worked part-time on a fancy audio algorithm. It had been originally written by another student based on some obscure mathematical paper. For the life of me, I could not figure out what that code was doing. There were some 3k lines of code in the project and I did many an improvement on many parts of it, but any time I modified the central algorithm, I messed it up.&lt;br&gt;&#xA;This went on for seven months. Every week I would spend my twelve hours looking at that code but its workings would still be mystifying to me. Eventually, I gave up. After seven months, I went to my professor and told him I could not do it. Thankfully, I did not lose the job.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A few months later I re-read that mathematical paper and suddenly it all made sense. I went to my professor and told him that I would like to take another stab at that algorithm. In one crazy afternoon I solved the problem that had stymied me for seven months.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But really, staring at 3k lines of mystifying code for seven months is not something I would want to inflict on anyone.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;(Bastis law: You can solve any programming problem if you stare at it long enough.)&lt;/p&gt;&#xA;" OwnerUserId="3586" LastEditorUserId="3586" LastEditorDisplayName="" LastEditDate="2011-01-10T16:13:34.950" LastActivityDate="2011-01-10T16:13:34.950" CommunityOwnedDate="2011-01-10T19:05:03.687" CommentCount="3" />
  <row Id="35289" PostTypeId="2" ParentId="2666" CreationDate="2011-01-10T13:43:40.940" Score="2" ViewCount="" Body="&lt;p&gt;Worst two days of debugging: Had a bug in converting km/h into m/s. &#xA;It took 48 hours to find out that the bug could be in such a simple place.&lt;/p&gt;&#xA;" OwnerUserId="6328" LastEditorUserId="6328" LastEditorDisplayName="" LastEditDate="2011-01-10T16:32:48.800" LastActivityDate="2011-01-10T16:32:48.800" CommunityOwnedDate="2011-01-10T19:05:03.687" />
  <row Id="35290" PostTypeId="2" ParentId="29434" CreationDate="2011-01-10T13:44:05.943" Score="1" ViewCount="" Body="&lt;p&gt;The one I am currently using for the exact same purpose is:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0672330113&quot; rel=&quot;nofollow&quot;&gt;ASP.NET 3.5 Unleashed&lt;/a&gt; by Stephen Walther. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's a big book though, but it covers pretty much all of the topics 70-564 contains. It's not entirely what you're looking for though, since the examples are pretty simple.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I was also looking at &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0470187581&quot; rel=&quot;nofollow&quot;&gt;ASP.NET 3.5 Website Programming: Problem - Design - Solution&lt;/a&gt; after having read similar books in the series. They  work out a complete 'real world' solution through the entire book. I didn't buy it based on the poor reviews it got though. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Edit: one of the amazon suggestions I came across while getting the links for the other books that looks promising: &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0470292784&quot; rel=&quot;nofollow&quot;&gt;Professional ASP.NET Design Patterns&lt;/a&gt;. I haven't read it though...&lt;/p&gt;&#xA;" OwnerUserId="12807" LastActivityDate="2011-01-10T13:44:05.943" />
  <row Id="35291" PostTypeId="2" ParentId="35272" CreationDate="2011-01-10T13:48:05.407" Score="6" ViewCount="" Body="&lt;p&gt;You shouldn't be affected negatively by bad reviews. You should seek for such valuable feedback instead. The more you will be exposed, the more reviews you will get, including bad ones. And bad ones usually provide you with the information your need to improve your product.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Including incorrect reviews. This may be an indication that something is not clear in the software or in its documentation.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Reviews are an &lt;strong&gt;opportunity&lt;/strong&gt; to &lt;strong&gt;improve&lt;/strong&gt; your product.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Take note of the bad review, and improve your software accordingly. Encourage your user to send you feedback. Challenge them with yourself, not with your users. Your should thank the users that take their valuable time to write reviews.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Tip&lt;/strong&gt;: To &lt;strong&gt;minimize&lt;/strong&gt; bad reviews, do everything in your power to &lt;strong&gt;maximize&lt;/strong&gt; good reviews, by learning from bad ones.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastEditorUserId="2567" LastEditorDisplayName="" LastEditDate="2011-01-10T14:02:58.437" LastActivityDate="2011-01-10T14:02:58.437" CommentCount="3" />
  <row Id="35292" PostTypeId="2" ParentId="2666" CreationDate="2011-01-10T13:51:41.940" Score="17" ViewCount="" Body="&lt;p&gt;For me those were not days of technical stalls, but the days where things in the air changed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;1st worst day&lt;/strong&gt;: Having just joined the company, I was shown the code in .NET 1.1 and told we were going to stick with it for a while. At the interview we were talking about 2.0/3.5 and I was supposed to work with that. There's nothing that can ruin a new working relationship right at the start like a good lie...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;2nd worst day&lt;/strong&gt;: We weren't allowed to write stored procedures for the only reason the boss didn't like them.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;3rd worst day&lt;/strong&gt;: After having finally migrated to .NET 3.5 the boss told us to stay clear of that new stuff like LINQ and lambda functions for the only reason it was something new and not time-proven.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It was then when I understood I didn't belong with them.&lt;/p&gt;&#xA;" OwnerUserId="8685" LastActivityDate="2011-01-10T13:51:41.940" CommunityOwnedDate="2011-01-10T19:05:03.687" CommentCount="4" />
  <row Id="35293" PostTypeId="1" AcceptedAnswerId="35304" CreationDate="2011-01-10T13:54:33.110" Score="24" ViewCount="660" Body="&lt;p&gt;A few months ago my company found itself with its hands around a white-hot emergency of a project, and my entire team of six pulled basically a five week &quot;crunch week&quot;. In the 48 hours before go-live, I worked 41 of them, two back to back all-nighters. Deep in the middle of that, I posted what has been &lt;a href=&quot;http://programmers.stackexchange.com/questions/19752/crunch-time-sleep-deprivation-survival-strategies&quot;&gt;my most successful question to date&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;During all that time there was never any talk of &quot;failure&quot;. It was always &quot;get it done, regardless of the pain.&quot; &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Now that the thing is over and we as an organization have had some time to sit back and take stock of what we learned, one question has occurred to me. I can't say I've ever taken part in a project that I'd say had &quot;failed&quot;. Plenty that were late or over budget, some disastrously so, but I've always ended up delivering SOMETHING.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Yet I hear about &quot;failed IT projects&quot; all the time. I'm wondering about people's experience with that. What were the parameters that defined &quot;failure&quot;? What was the context? In our case, we are a software shop with external clients. Does a project that's internal to a large corporation have more space to &quot;fail&quot;? When do you make that call? What happens when you do?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm not at all convinced that doing what we did is a smart business move. It wasn't my call (I'm just a code monkey) but I'm wondering if it might have been better to cut our losses, say we're not delivering, and move on. I don't just say that due to the sting of the long hours--the company royally lost its shirt on the project, plus the intangible costs to the company in terms of employee morale and loyalty were &lt;em&gt;large&lt;/em&gt;. Factor that against the PR hit of failing to deliver a high profile project like this one was... and I don't know what the right answer is.&lt;/p&gt;&#xA;" OwnerUserId="15" LastActivityDate="2011-01-10T21:38:47.773" Title="Failed Project: When to call it?" Tags="&lt;project-management&gt;&lt;failure&gt;" AnswerCount="11" CommentCount="6" FavoriteCount="6" />
  <row Id="35294" PostTypeId="2" ParentId="2666" CreationDate="2011-01-10T13:55:43.063" Score="2" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;50,000+ Errors:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I had to dump a project and start a-fresh in all &lt;strong&gt;three times&lt;/strong&gt; (the solutions would work in the dev environment, but in production all sorts of intermittent crashes would occur). On the final time round, everything worked, or almost everything.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Unfortunately one bug had crept in that caused an infinite loop, the system had an error reporting module that would log any errors, generate a report file and email it to the development team.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The sheer agony, email after email was sent. Even after &lt;strong&gt;killing&lt;/strong&gt; the application, the emails kept coming for the next 24 Hours! &lt;strong&gt;ouch&lt;/strong&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;But it does have a good ending: The system has been running 24/7 for nearly three years to date, with zero glitch and continues to hum away...&lt;/em&gt;&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2011-01-10T13:55:43.063" CommunityOwnedDate="2011-01-10T19:05:03.687" CommentCount="1" />
  <row Id="35295" PostTypeId="2" ParentId="35272" CreationDate="2011-01-10T13:56:55.393" Score="2" ViewCount="" Body="&lt;p&gt;The fact that someone took the time to review your app is actually pretty important.  Whether you're loved or hated, you have exposure--and that alone can mean the difference between someone picking your app and an app with no reviews or all mediocre reviews.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, take the review as you would any sort of criticism.  Check to see if the comment holds water, and if not ignore it.  If you seem to be getting the same misunderstanding, perhaps you need to look at how the app is listed to see if that could be contributing to the misunderstandings.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Other than that, no system is perfect, but negative feedback is better than no feedback at all.  Try to look at it as a good thing.  The worst thing that can happen (and I've seen this) is to have a comment war between you and the person posting a comment that doesn't apply.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2011-01-10T13:56:55.393" CommentCount="2" />
  <row Id="35296" PostTypeId="2" ParentId="35258" CreationDate="2011-01-10T14:02:27.640" Score="4" ViewCount="" Body="&lt;p&gt;Nerddinner on codeplex is a good example of using ASP.NET MVC.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://nerddinner.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;http://nerddinner.codeplex.com/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://www.hanselman.com/blog/CategoryView.aspx?category=NerdDinner&quot; rel=&quot;nofollow&quot;&gt;http://www.hanselman.com/blog/CategoryView.aspx?category=NerdDinner&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="10256" LastActivityDate="2011-01-10T14:02:27.640" />
  <row Id="35297" PostTypeId="2" ParentId="35293" CreationDate="2011-01-10T14:05:58.107" Score="1" ViewCount="" Body="&lt;p&gt;I also never participated in any &quot;failed&quot; projects - but plenty of projects with cost and time overruns. I believe the issue is that neither party - the client or the contractor - wants any project to be considered a failure for all kids of reasons, including liability. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So I think when you hear &quot;failed IT projects&quot; in reality these are &quot;projects that went outside their bounds, either in time or in budget&quot;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;After all - how many people or companies you know would come clean and say &quot;we failed&quot; ?&lt;/p&gt;&#xA;" OwnerUserId="7380" LastActivityDate="2011-01-10T14:05:58.107" CommentCount="2" />
  <row Id="35298" PostTypeId="2" ParentId="35293" CreationDate="2011-01-10T14:07:39.773" Score="0" ViewCount="" Body="&lt;p&gt;If the project was deployed in such a way that the original request was fulfilled I would call the project successful. To me a failure would be rolling out an application that was then universally rejected by the end users because it did not fulfill their needs. Or, worse yet, the project is terminate before a product is actually deployed to the users and their need is unfulfilled.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Generally if a company is working for an external client, it's not their decision to pull a project as there might be contract issues involved (i.e. breach of contract payments) or a major PR hit, as you noted. In some cases, if there is a breach of contract penalty, the cost of finishing the contract is several times less than that of breaching the contract and losing a token amount of money is the preferred option.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the long run, a company can work to improve employee moral to make up for a crunch time during a project or replace employees that left because they were pushed to hard, but it can sometimes be impossible for them to recover from major project failures (i.e. look at game companies that have failed to deliver products on time that have gone bankrupt).&lt;/p&gt;&#xA;" OwnerUserId="2471" LastActivityDate="2011-01-10T14:07:39.773" />
  <row Id="35299" PostTypeId="2" ParentId="2666" CreationDate="2011-01-10T14:10:31.253" Score="2" ViewCount="" Body="&lt;p&gt;My worst days are related to bad practices, i.e. working on a tight schedule without proper project management in place, going live with basically untested software, and a desperate frenzy to to save what can be saved, only to make things worse by making more errors of haste.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2011-01-10T14:10:31.253" CommunityOwnedDate="2011-01-10T19:05:03.687" CommentCount="2" />
  <row Id="35300" PostTypeId="2" ParentId="35281" CreationDate="2011-01-10T14:10:49.257" Score="2" ViewCount="" Body="&lt;p&gt;The difference between the two has more to do with the company you work for in each case then the role you are filling.  My current employer has a consultant operation that I have been a part of in the past.  I am currently working for the product group.  The expectations are the same in either role.  We do not expect engineers working as constants to produce anything less than what we would accept for our own products.&lt;/p&gt;&#xA;" OwnerUserId="12497" LastActivityDate="2011-01-10T14:10:49.257" />
  <row Id="35301" PostTypeId="2" ParentId="35293" CreationDate="2011-01-10T14:13:09.787" Score="0" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Yet I hear about &quot;failed IT projects&quot; all the time.&lt;/p&gt;&#xA;  &#xA;  &lt;p&gt;What were the parameters that defined &quot;failure&quot;? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;It's a pejorative term often used when the project changes.  Many people like to label change as &quot;failure&quot;.  I don't know why, but it makes them somehow more powerful or important to have identified a failure.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some projects really are lost money and nothing of value is created.  But those are rare.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Even a project which never delivered working software is a learning experience in what &lt;strong&gt;not&lt;/strong&gt; to do.  It created value.  It created unanticipated value, so it can be labeled any way that people want to label it.  &quot;Failure&quot; is as good as &quot;Learned what not to do&quot; in some circles.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The real question is &quot;was the value commensurate with the cost&quot;?  And even then, the value may be so hard to measure that the answer is entirely political or subjective.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Does a project that's internal to a large corporation have more space to &quot;fail&quot;? &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Perhaps.  &quot;failure&quot; is a political term.  Any change to schedule, budget or scope can be labeled as &quot;change&quot; or &quot;failure&quot;.  They can also be labeled as &quot;learned something important about our team's inability to write a web server&quot;. Or, even more positively, &quot;learned what skills we need before we try that again.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;External projects often have more oversight from sales and delivery folks, accountants, and project management.  Internal projects often have less oversight.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;When do you make that call? What happens when you do?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;When it's expedient to have someone pressured out of the organization because you disagreed with them.  You label their project as &quot;failure&quot; and get them reassigned so you can have different people.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only way that  a project can be a &lt;em&gt;total&lt;/em&gt; failure is criminal fraud -- where there were no lessons learned, nothing can be improved, and the criminals were sacked and jailed, leaving the organization clueless as to what happened.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Otherwise, there is always some value.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The real question is &quot;was the value commensurate with the cost?&quot;&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-10T14:13:09.787" />
  <row Id="35302" PostTypeId="2" ParentId="35293" CreationDate="2011-01-10T14:13:56.307" Score="1" ViewCount="" Body="&lt;p&gt;So your company who was billing this work out, worked you and 5 other people to death for 5 weeks.  They still make their profit off of your hard work.  I hope you got something, because job security is nothing these days and there is plenty of work.  (Shameless plug contact me if you need work and are a competent programmer, I know of several places that desperately need help).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That said, if you company actually had to pay you for all that work and the 41 hours before go live, then they would have LOST money. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Your management needs a sit down and an explanation that if this occurs again you are to be paid.  They need to make better judgement as to when to pull the plug.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2011-01-10T14:13:56.307" CommentCount="2" />
  <row Id="35303" PostTypeId="2" ParentId="35293" CreationDate="2011-01-10T14:13:56.597" Score="0" ViewCount="" Body="&lt;p&gt;When the business case no longer holds up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That's the measure that Prince2 (the Project Management methodology) uses and it makes a lot of sense to me.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Essentially it says at the end of each stage of the project, or if a project falls outside certain tolerances in certain areas (schedule, cost, quality), there should be a review of the business case.  At that point you go over anticipated total costs and realisable benefits based on what you now know and if the project no longer stacks up then it gets killed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The issue with this for many projects I've seen is that they don't set out what they're trying to achieve in any detail up front, which makes it very hard to assess (a) whether that's still realistic, or (b) whether the costs you're going to expend in getting there are worth it.  In these situations the best thing you can do is to produce a business case at the point you become suspicious to allow you to understand if your suspicions are correct.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Putting together a business case doesn't have to be a major undertaking, a couple of sides of A4 will do.  Costs are relatively easy (as a rough measurement a programmer costs: (annual salary * 2) / 250 per day for Europe, probably a bit less for the US as benefits are lower and the average number of working days higher which are the inputs here).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Benefits are harder but if you estimated pessimistically as accurately as you can, then if the business case doesn't stack up (normally measured as it must make an x% return on it's costs over 3 years where X is likely to be 50% or so) you can look at it in more detail.  Don't forget license and hardware costs (even if you're using existing hardware as it means it can't be used for anything else once you've nabbed it) and on-going support.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But a lot of this isn't programmer stuff, it's stuff the PM and the business should be doing with input from the whole project team.&lt;/p&gt;&#xA;" OwnerUserId="5095" LastEditorUserId="5095" LastEditorDisplayName="" LastEditDate="2011-01-10T14:23:42.157" LastActivityDate="2011-01-10T14:23:42.157" />
  <row Id="35304" PostTypeId="2" ParentId="35293" CreationDate="2011-01-10T14:15:45.933" Score="16" ViewCount="" Body="&lt;p&gt;The concept of failure is really a business related call.  If a commercial project costs more than the money it brings in, that project would be considered a failure.  If an open source project cannot build a community around the code to help maintain it and care for it, that open source project failed.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I've been involved in projects were we delivered everything on time and within budget, but the business development team failed to get follow on work.  From a business perspective the project failed, although what we delivered was well received and liked.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In situations like yours, the company has to make some hard decisions.  If they want the project to succeed, then they need to learn some lessons:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Failure to plan appropriately will cause undue stress on your team, and ultimately lead to a failed project&lt;/li&gt;&#xA;&lt;li&gt;A stressed team will retaliate with high turnover--and eventually you won't be able to get good people to join the company.&lt;/li&gt;&#xA;&lt;li&gt;Emergencies happen, but find what caused the emergency and change your practices to avoid that emergency in the future.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Any company that doesn't learn from its mistakes will repeat history quite often.  I would take that as a sign that it is time to find another company.&lt;/p&gt;&#xA;" OwnerUserId="6509" LastActivityDate="2011-01-10T14:15:45.933" CommentCount="1" />
  <row Id="35305" PostTypeId="2" ParentId="35293" CreationDate="2011-01-10T14:16:38.863" Score="2" ViewCount="" Body="&lt;p&gt;The only project that I've been involved with either as a programmer, or part of the PM team was Ricochet, which &lt;a href=&quot;http://en.wikipedia.org/wiki/Ricochet_%28Internet_service%29&quot; rel=&quot;nofollow&quot;&gt;went belly up with Metricom's bankruptcy&lt;/a&gt;. There were literally thousands of contractors across the country working on it. When their CFO resigned, the project just literally stopped. Furniture started being removed from offices as the liquidation people descended. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To many of us, the applicable term was 'unemployment', but Lame Duck would be an adequate description. Often, key people will need to stay on until an autopsy / liquidation process has been completed, much like some politicians who remain in office for a few months to finish out their term prior to their successor coming in.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As &lt;a href=&quot;http://programmers.stackexchange.com/questions/35293/failed-project-when-to-call-it/35297#35297&quot;&gt;Otávio Décio&lt;/a&gt; indicated, I have not seen a project fail to the point of abandonment since the dot com boom.&lt;/p&gt;&#xA;" OwnerUserId="131" LastActivityDate="2011-01-10T14:16:38.863" />
  <row Id="35306" PostTypeId="2" ParentId="35293" CreationDate="2011-01-10T14:20:54.213" Score="2" ViewCount="" Body="&lt;p&gt;This is a common problem, also mentioned in some books about project management. No project ever &quot;fails&quot;, even if all it delivers is a &quot;what-to-avoid-next-time&quot; experience.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;IMO, a project is a failure if not doing it would have been cheaper. For example, if the product has an expected lifespan of 5 years and saves the company 100K p.a., then it is a failure if it took more than 500K to make it. (I'm cheating with the interest rates here to make it simpler). Some people claim that every project with an overrun in cost and/or time is a failure, but IMO this definition makes little sense as it focuses too much on correct estimates and planning.&lt;/p&gt;&#xA;" OwnerUserId="6617" LastActivityDate="2011-01-10T14:20:54.213" />
  <row Id="35307" PostTypeId="2" ParentId="35293" CreationDate="2011-01-10T14:24:40.900" Score="4" ViewCount="" Body="&lt;p&gt;There are many different ways that a project can &quot;fail.&quot; And quite a few I've worked on have been failures:  &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;The shrink-wrap software had to be rewritten to meet new statutory/regulatory rules. The mismanagers chose to avoid hiring new people to help with the workload, and especially with the skills we all lacked. The product didn't have the new required features (it had to have electronic filing made a certain way) and had to be pulled from the market. While this product produced about 5% of our office's revenues, a similar regulatory change was coming that affected the product that produced 60% of our revenues. The developers took it upon themselves to learn the skills needed, but the mismanagers chose to wait until it was almost too late in order to start to implement the required changes. We had 3 years warning that these changes were coming as we tried to bid on the server side of this regulatory change - and corporate rightly forbade us from submitting the bid. Our mismanagers chose to make us wait until 8 months before the switch-over before we were allowed to work on it. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The project was already over budget and overdue when I was brought on to help get it finished. The managers several levels higher decided that the sunk costs were already too high to make the required ROI for the project so the project was cancelled and everyone involved laid off. Working there for 1 week before the group was all laid off (including me) was the shortest time I've ever worked at a place. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;The internal project took so long to complete that the project sponsor had purchased off-the-shelf software (in this case Microsoft Office) and wrote their own VBA to get their job done. The development team leader kept promising the moon and refused to listen in the managerial meetings that the project was already canceled. 6 people worked for about a year completing a system that was never going to be used. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="6591" LastActivityDate="2011-01-10T14:24:40.900" />
  <row Id="35308" PostTypeId="2" ParentId="35281" CreationDate="2011-01-10T14:24:49.917" Score="1" ViewCount="" Body="&lt;p&gt;In a service or consultancy you are developing someone else's idea.  This might be a private company like a bank or it could be a government agency.  I have worked both in product and in service companies. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Biggest difference.  For the consultancy (or IT for that matter) people rarely see your work, and sometimes it never gets used, which can be a downer.  You can't tell your friends go to xyz and see what I did yesterday, because in all likelihood xyz is an internal site.  On the plus side you may get the chance to work with a lot of leading edge stuff and it pays well.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;With a product people know what you did.  I worked for a defense contractor and worked on among other things components for the F-16 and anti-tank missiles.  Pretty cool stuff really, and as long as the project is public, people know what you are working on.  In my opinion these jobs pay less and are less likely to use cutting edge technology.  A company a lot of my friends work for does low level C programming and are heavily restricted in even using the most basic libraries.&lt;/p&gt;&#xA;" OwnerUserId="1929" LastActivityDate="2011-01-10T14:24:49.917" />
  <row Id="35309" PostTypeId="2" ParentId="35074" CreationDate="2011-01-10T14:33:45.610" Score="3" ViewCount="" Body="&lt;p&gt;You might also be interested in reading what Martin Fowler has to say about SVN versus Git and Mercurial workflows. &lt;a href=&quot;http://martinfowler.com/bliki/VersionControlTools.html&quot; rel=&quot;nofollow&quot;&gt;http://martinfowler.com/bliki/VersionControlTools.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1961" LastActivityDate="2011-01-10T14:33:45.610" CommentCount="1" />
  <row Id="35310" PostTypeId="2" ParentId="35276" CreationDate="2011-01-10T14:33:48.717" Score="2" ViewCount="" Body="&lt;h2&gt;Con: Eventual possible drop of support / Loss of Popularity&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If there are two web frameworks that do basically the same thing, and yours doesn't win, there is a chance the project will die.  In this situation you are left to maintain the framework yourself (open source), rewrite the application, or continue with no updates (closed source).&lt;/li&gt;&#xA;&lt;li&gt;Depending on the framework, you may be forced to upgrade your application with the release schedule of the framework.  Falling too far behind could make you ineligible for support.  With no framework, you can work at your schedule.  (This depends on if you need/want support or not). &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;Pro: Code for the business&lt;/h2&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Frameworks let you not worry about grunt work, and focus on code that directly brings value to the business.&lt;/li&gt;&#xA;&lt;li&gt;Sometimes framework upgrades that (just work) let you deliver new features to your users practically &quot;for free&quot;.  Especially with frameworks that come with custom controls (like a grid that the new version may offer some kind of search/filter).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2011-01-10T14:33:48.717" CommentCount="4" />
  <row Id="35311" PostTypeId="2" ParentId="35258" CreationDate="2011-01-10T14:37:09.993" Score="1" ViewCount="" Body="&lt;h2&gt;&lt;a href=&quot;http://orchard.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;Orchard CMS&lt;/a&gt;&lt;/h2&gt;&#xA;&#xA;&lt;p&gt;If you'd like to learn Azure while you learn MVC, &lt;a href=&quot;http://orchard.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;Orchard&lt;/a&gt; is a great Azure/MVC based CMS.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://orchard.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;http://orchard.codeplex.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2011-01-10T14:37:09.993" CommentCount="2" />
  <row Id="35312" PostTypeId="1" CreationDate="2011-01-10T14:37:51.483" Score="3" ViewCount="244" Body="&lt;p&gt;I wonder if there are estimates of the Emacs user base size, and how it has changed with the advent of new IDEs such as eclipse etc.&lt;/p&gt;&#xA;" OwnerUserId="9829" LastActivityDate="2011-01-10T21:45:48.853" Title="Emacs user base size" Tags="&lt;ide&gt;&lt;emacs&gt;&lt;statistics&gt;" AnswerCount="2" CommentCount="2" />
  <row Id="35313" PostTypeId="2" ParentId="35258" CreationDate="2011-01-10T14:42:56.027" Score="3" ViewCount="" Body="&lt;p&gt;Another good resource is &lt;a href=&quot;http://whocanhelpme.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;http://whocanhelpme.codeplex.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="12812" LastActivityDate="2011-01-10T14:42:56.027" />
  <row Id="35314" PostTypeId="2" ParentId="35276" CreationDate="2011-01-10T14:45:24.733" Score="0" ViewCount="" Body="&lt;h1&gt;Advantages&lt;/h1&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Faster development time&lt;/li&gt;&#xA;&lt;li&gt;Less bugs&lt;/li&gt;&#xA;&lt;li&gt;Quicker shared development&lt;/li&gt;&#xA;&lt;li&gt;Library support&lt;/li&gt;&#xA;&lt;li&gt;Easy DB interaction&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h1&gt;Disadvantages&lt;/h1&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&quot;Boxed in&quot; to the framework&lt;/li&gt;&#xA;&lt;li&gt;Often inflexible when wanting to extend or modify core behavior&lt;/li&gt;&#xA;&lt;li&gt;&quot;Errors of doom&quot; – errors that arise from the core or underlying architecture with no good traceback to where they originated. A perfect example is Spring errors when using Grails. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I advocate using frameworks for all but the simplest of projects. If you need to add a contact us form to an existing HTML site you can use one PHP file instead of moving to a framework. &lt;/p&gt;&#xA;" OwnerUserId="2654" LastActivityDate="2011-01-10T14:45:24.733" />
  <row Id="35315" PostTypeId="2" ParentId="35262" CreationDate="2011-01-10T14:48:08.680" Score="5" ViewCount="" Body="&lt;p&gt;It may be that the concept of daily meetings does not apply very well to what a person is doing. Those meetings are not free of cost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If what you're doing requires a lot of long-term concentration, like heavy math, the meetings can de-rail you and be frustrating.&#xA;I work with someone like that, who prefers to meet on a weekly basis, which is perfectly reasonable.&lt;/p&gt;&#xA;" OwnerUserId="2429" LastEditorUserId="2429" LastEditorDisplayName="" LastEditDate="2011-01-10T14:54:36.317" LastActivityDate="2011-01-10T14:54:36.317" />
  <row Id="35316" PostTypeId="1" AcceptedAnswerId="35336" CreationDate="2011-01-10T14:48:16.617" Score="2" ViewCount="130" Body="&lt;p&gt;Few languages are as restrictive as Java with file naming standards and project structure.  In that language, the file name must match the public class declared in the file, and the file must live in a directory structure matching the class package.  I have mixed feelings about that approach.  While I never have to guess where a file lives, there's still a lot of empty directories and artificial constraints.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's several languages that define everything about a class in one file, at least by convention.  C#, Python (I think), Ruby, Erlang, etc.  The commonality in most these languages is that they are object oriented, although that statement can probably be rebuffed (there is one non-OO language in the list already).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Finally, there's quite a few languages mostly in the C family that have a separate header and implementation file.  For C I think this makes sense, because it is one of the few ways to separate the API interface from implementations.  With C it seems that feature is used to promote modularity.  Yet, with C++ the way header and implementation files are split seems rather forced.  You don't get the same clean API separation that you do with C, and you are forced to include some private details in the header you would rather keep only in the implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There's quite a few languages that have a concept that overlaps with interfaces like Java, C#, Go, etc.  Some languages use what feels like a hack to provide the same concept like C# using pure virtual abstract classes.  Still others don't really have an interface concept and rely on &quot;duck&quot; typing--for example Ruby.  Ruby has modules, but those are more along the lines of mixing in behaviors to a class than they are for defining how to interact with a class.  In OO terms, interfaces are a powerful way to provide separation between an API client and an API implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So to hurry up and ask the question, from a personal experience point of view:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Does separation of header and implementation help you write more modular code, or does it get in the way?  (it helps to specify the language you are referring to)&lt;/li&gt;&#xA;&lt;li&gt;Does the strict file name to class name scheme of Java help maintainability, or is it unnecessary structure for structure's sake?&lt;/li&gt;&#xA;&lt;li&gt;What would you propose to promote good API/Implementation separation and project maintenance, how would you prefer to do it?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="6509" LastEditorUserId="6509" LastEditorDisplayName="" LastEditDate="2011-01-10T15:07:55.907" LastActivityDate="2011-01-10T15:22:36.717" Title="What source code organization approach helps improve modularity and API/Implementation separation?" Tags="&lt;programming-practices&gt;&lt;language-design&gt;&lt;organization&gt;&lt;code&gt;&lt;source&gt;" AnswerCount="1" />
  <row Id="35317" PostTypeId="1" CreationDate="2011-01-09T20:36:16.533" Score="4" ViewCount="168" Body="&lt;p&gt;Our Company is in the Process of recuiting a DBA. I have built a group test of questions from basic questions such as Pk and Fk constraints, simple querries(fizzbuzz style) to more advanced things such as indexes, Collation, isolation levels and how to trace deadlocks. However, that is the limit of my knowledge. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;So my question to all the DBA's is what is the base level knowledge that all DBA's should have? We are really looking for someone that will be able to &lt;strong&gt;manage our replication&lt;/strong&gt;, &lt;strong&gt;analyzing some of our slower running queries&lt;/strong&gt;(that the devs can go to for help) and someone that can &lt;strong&gt;trace some of the deadlock issues&lt;/strong&gt; that we are having. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Any help would be most appreciated! &lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T14:55:43.717" Title="Interviewing a DBA" Tags="&lt;sql-server&gt;&lt;interview-questions&gt;&lt;dba&gt;" AnswerCount="4" CommentCount="6" />
  <row Id="35318" PostTypeId="2" ParentId="35317" CreationDate="2011-01-09T20:43:59.180" Score="0" ViewCount="" Body="&lt;p&gt;In addition to the questions you already have, I would suggest making sure s/he understands:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;how to EXPLAIN query plans and interpret them&lt;/li&gt;&#xA;&lt;li&gt;the fundamentals of basic query processing (parsing, plan generation, etc)&lt;/li&gt;&#xA;&lt;li&gt;different types of replication and when they might be useful, including &lt;a href=&quot;http://en.wikipedia.org/wiki/Multi-master_replication&quot; rel=&quot;nofollow&quot;&gt;multi-master replication&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;why deadlocks can happen &lt;/li&gt;&#xA;&lt;li&gt;basics of transaction processing, including two-phase commit&lt;/li&gt;&#xA;&lt;li&gt;optimistic locking vs pessimistic locking&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;I would also ask them to discuss their point of view regarding business logic in the DB (stroed procs, for example) vs the application.  There is really no right answer to that one, but it is often useful as a means for discussing when to put logic in the DB (whatever they believe, they should be consistent).&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T14:55:43.717" CommentCount="1" />
  <row Id="35319" PostTypeId="2" ParentId="35317" CreationDate="2011-01-09T20:45:19.393" Score="7" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;We are really looking for someone that will be able to manage our replication, analyzing some of our slower running queries(that the devs can go to for help) and someone that can trace some of the deadlock issues that we are having.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Then why waste time on &quot;Pk and Fk constraints, simple querries(fizzbuzz style) to more advanced things such as indexes, Collation, isolation levels and how to trace deadlocks&quot;?  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Seriously. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Why waste time on stuff that you should be able to assume.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A DBA is a person, engage them as a person.  Give them a real situation that you really have and ask what they'd do.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Outcomes of the conversation.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;They don't know very much.  You'll figure that out immediately.  When they say &quot;what?&quot;, you know they're not up to solving your problem.  Fizzbuzz games might not have told you this.  But an honest conversation about your real problem will reveal everything. &lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They know what you're talking about.  And have good ideas.  And you want the conversation to continue.  Hire them!  &lt;strong&gt;You want the conversation to continue&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;They seem to know what they're talking about, but are vague on details.  Keep talking, but be suspicious that they're overselling themselves.  Dig into details to probe how they'd solve your problem really.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In some cases, they need more data than you can provide.  This is a good thing.  Probe as to what they need to know and how'd they'd gather this.  Probe on where they've done it before.  Get complete stories with final outcomes of things they've really done similar to what you need.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;fizzbuzz won't probe for useful details or the history of problems they've really solved.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;There's another case here.  &lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;They have a convincing story.  But they're actually wrong about things.  If they're wrong about things you do know about, fine.  Don't hire them.  Don't argue with them.  Just don't hire them.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;In some cases, they're wrong about things you do not know about.  In which case, you don't know enough to comment.  You're left with judgement about they're overall veracity.  This is just a gut feeling kind of thing.  I've been wrong about these, and gotten into trouble.  It happens.  Trivial fizz-buzz questions would have revealed nothing.&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-10T14:55:43.717" CommentCount="3" />
  <row Id="35320" PostTypeId="2" ParentId="35317" CreationDate="2011-01-09T20:47:13.597" Score="2" ViewCount="" Body="&lt;p&gt;Your best bet is to hire a consultant that is an incredible DBA, that has the skills you are looking for, as, if you don't know how to do what you want to hire someone for, then it will be basically impossible to know if someone is snowing you.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;There are many places on the Internet to get some good questions, but if all you know is one expected answer, and you can't tell if another answer will be valid or not then it makes you look incompetent.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So find someone that can ask the technical questions, or, at the very least, he can listen to the answers and know if they are correct or not, and you and the other interviewers can evaluate how well that person will fit into the company or position.&lt;/p&gt;&#xA;" OwnerUserId="4670" LastActivityDate="2011-01-10T14:55:43.717" />
  <row Id="35321" PostTypeId="2" ParentId="35317" CreationDate="2011-01-09T21:11:28.487" Score="2" ViewCount="" Body="&lt;p&gt;Realise that there is &lt;strong&gt;a lot&lt;/strong&gt; more to hiring and considering a data professional than pure technical skills alone. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;See my posts &lt;a href=&quot;http://www.johnsansom.com/index.php/2010/08/10-character-traits-of-outstanding-dbas/&quot; rel=&quot;nofollow&quot;&gt;10 Character Traits of Outstanding DBA's&lt;/a&gt; and also consider my &lt;a href=&quot;http://www.johnsansom.com/index.php/2010/02/top-10-junior-dba-interview-tips/&quot; rel=&quot;nofollow&quot;&gt;Top 10 Junior DBA Interview Tips&lt;/a&gt; which details what I look for when hiring Junior DBA's.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;James Black's suggestion is also a very good one. If you are unsure of what it is that you expect and need from the role then you should strongly consider bringing in an experienced Data Professional to consult and assist you.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thomas Larock's Blog post &lt;a href=&quot;http://thomaslarock.com/how-to-find-a-dba/&quot; rel=&quot;nofollow&quot;&gt;How to Find a DBA&lt;/a&gt; is also an excellent resource to refer to. &lt;/p&gt;&#xA;" OwnerUserId="5196" LastActivityDate="2011-01-10T14:55:43.717" />
  <row Id="35322" PostTypeId="1" CreationDate="2011-01-10T14:55:34.467" Score="2" ViewCount="467" Body="&lt;p&gt;Hi guys,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am looking for topics in the software engineering area for my bachelor thesis. My interest lie in Java and Web technologies. Do you guys have an idea or tip where to get more information about that?&lt;/p&gt;&#xA;" LastEditorUserId="2314" LastEditorDisplayName="" LastEditDate="2011-01-10T16:05:48.660" LastActivityDate="2011-01-10T17:21:34.773" ClosedDate="2011-01-11T20:50:41.390" Title="Topics for bachelor thesis, Software Engineering" Tags="&lt;java&gt;&lt;software-engineering&gt;&lt;thesis&gt;&lt;topics&gt;" AnswerCount="4" CommentCount="2" FavoriteCount="1" />
  <row Id="35323" PostTypeId="1" CreationDate="2011-01-10T08:44:12.920" Score="3" ViewCount="533" Body="&lt;p&gt;Hi All,&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently I went to an interview for a C development position. Instead of asking me questions, they just gave me 20 code snippets to find out two logical errors on each one. I  just couldn't complete all of the 20 since it took me time to go through each of these code snippets.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My question is: Is this the right way to judge a candidate? If yes, how can I improve over my error detection skills so that I don't need to waste a lot of time in the next interview? If possible, please, suggest me some links where I could find lots of samples of such questions (mainly in C).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks and regards,&#xA;Maddy&lt;/p&gt;&#xA;" LastActivityDate="2011-01-12T04:49:42.087" Title="Code snippets in interview" Tags="&lt;c&gt;&lt;interview-questions&gt;" AnswerCount="3" CommentCount="11" />
  <row Id="35324" PostTypeId="2" ParentId="35323" CreationDate="2011-01-10T09:32:55.540" Score="3" ViewCount="" Body="&lt;p&gt;Spotting and fixing errors is obviously an important part of a developer day-to-day, but shouldn't be used &lt;em&gt;alone&lt;/em&gt; for the purpose of technical evaluation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fixing errors (or bugs) can be hard and tricky, but we can split them in 2 main types:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Compile time&lt;/li&gt;&#xA;&lt;li&gt;Runtime&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;If you have a solid understanding of the language in question, you should be able to quickly figure out most of the compile time errors, mainly in a small snippet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Runtime errors are generally trickier, but in C you should be able to spot a simple index out of bound, a NULL (or dangling) pointer dereference, double frees, infinite loops, wrong conditionals, and so on. Of course, here we're not talking about gigantic complex code. Even though snippets can be extremely complex, I don't expect it in a interview. Mostly because I would reject any employer that prefers small-complex over simple-readable code (except when it comes to performance).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The best way to get better is &lt;strong&gt;practicing&lt;/strong&gt;. I learn something nearly every day at StackOverflow, and I think the time I invested here has been reciprocated. As an example, I recently started querying the standard because it's cited so many times in questions &amp;amp; answers that it became impossible to get involved in some discussions without a solid reference to back me up.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;To conclude, I seriously doubt this &quot;interview method&quot; is effective, unless the employer looks for someone to fix bugs exclusively. Otherwise, restricting the technical evaluation to such test means the employer is ignoring more important skills.&lt;/p&gt;&#xA;" OwnerUserId="8218" LastActivityDate="2011-01-10T15:03:19.547" CommentCount="2" />
  <row Id="35325" PostTypeId="1" AcceptedAnswerId="35329" CreationDate="2011-01-10T15:04:30.543" Score="19" ViewCount="601" Body="&lt;p&gt;I'm really having trouble with this, since it is the perfect opportunity to learn something new, begin a personal project... essentially do just about anything, but all I do is surf the Internet. I find that I don't want to look at anything programming related, and I'm seriously wondering if I'm letting boredom get the best of me, I'm depressed, or experiencing burnout? Any suggestions for how to go about taking back this unproductive time would be greatly appreciated.&lt;/p&gt;&#xA;" OwnerUserId="9483" LastActivityDate="2011-01-11T07:42:57.830" Title="I've had some free time at work during maintenance releases, but all I do is surf the Internet." Tags="&lt;productivity&gt;&lt;motivation&gt;" AnswerCount="11" CommentCount="5" FavoriteCount="4" />
  <row Id="35326" PostTypeId="2" ParentId="35262" CreationDate="2011-01-10T15:06:23.437" Score="0" ViewCount="" Body="&lt;p&gt;Who made the decision to switch and why?  Where those skeptics in on the decision at all or was the decision just dropped on them?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Are you being too rigid and/or fast in your implementation of your new methods?  Did you put out good (not necessarily perfect) products using your old methods? Have you demonstrated to the skeptics how it will benefit them? Can you demonstrate it? Have those that have &quot;seen the light&quot; demonstrated the skeptics how it benefits them, the team and the company?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Probably you are asking them to accept everything only on the word of the believers. More than likely these skeptics have taken up new methodologies before and no benefits where ever realized.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Maybe you could do a project or two with only the believers working on it using your new procedures. Take real measurements and demonstrate to the skeptics real benefits.  Maybe even set up a little competition between the skeptics and their old ways and the believers and their new ways.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Of course then what do you do if the skeptics win? &lt;/p&gt;&#xA;" OwnerUserId="5184" LastActivityDate="2011-01-10T15:06:23.437" CommentCount="1" />
  <row Id="35327" PostTypeId="2" ParentId="35322" CreationDate="2011-01-10T15:06:54.457" Score="1" ViewCount="" Body="&lt;p&gt;You could try to implement some useful web-service. For example, evaluating some easy equations and returning a responce. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;To read about: &lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.oracle.com/technetwork/articles/javase/index-137171.html&quot; rel=&quot;nofollow&quot;&gt;http://www.oracle.com/technetwork/articles/javase/index-137171.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&quot;http://www.javafaq.nu/java-article1175.html&quot; rel=&quot;nofollow&quot;&gt;http://www.javafaq.nu/java-article1175.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" OwnerUserId="8586" LastActivityDate="2011-01-10T15:06:54.457" />
  <row Id="35328" PostTypeId="2" ParentId="35074" CreationDate="2011-01-10T15:10:42.270" Score="0" ViewCount="" Body="&lt;p&gt;I have no personal experience with DVCS, but from what I gather from the answers here and some linked documents, the most fundamental difference between DVCS and CVCS is the used working model&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;DVCS&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;The working model of DVCS is that you are doing &lt;em&gt;isolated development&lt;/em&gt;. You are developing your new feature/bugfix in isolation from all other changes until the moment you decide to release it to the rest of the team. Until that time, you can do whatever check-ins you like, because nobody else is going to be bothered with it.&lt;/p&gt;&#xA;&#xA;&lt;h3&gt;CVCS&lt;/h3&gt;&#xA;&#xA;&lt;p&gt;The working model of CVCS (in particular Subversion) is that you are doing &lt;em&gt;collaborative development&lt;/em&gt;. You are developing your new feature/bugfix in direct collaboration with all the other team members and all changes are immediately available to all.&lt;/p&gt;&#xA;&#xA;&lt;h1&gt;Other differences&lt;/h1&gt;&#xA;&#xA;&lt;p&gt;Other differences between &lt;code&gt;svn&lt;/code&gt; and &lt;code&gt;git&lt;/code&gt;/&lt;code&gt;hg&lt;/code&gt;, such as revisions vs changesets are incidental. It is very well possible to create a DVCS based on revisions (as Subversion has them) or a CVCS based on changesets (as Git/Mercurial have them).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am not going to recommend any particular tool, because it mostly depends on the working model that you (and your team) are most comfortable with.&lt;br&gt;&#xA;Personally, I have no problems with working with a CVCS.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I have no fear of checking in stuff, as I have no problems getting it into a incomplete, but compilable state.&lt;/li&gt;&#xA;&lt;li&gt;When I experienced merge-hell, it was in situations where it would have occurred in both &lt;code&gt;svn&lt;/code&gt; and &lt;code&gt;git&lt;/code&gt;/&lt;code&gt;hg&lt;/code&gt;. For example, V2 of some software was being maintained by a different team, using a different VCS, while we were developing V3. Occasionally, bugfixes would have to be imported from the V2 VCS to the V3 VCS, which basically meant doing a very large check-in on the V3 VCS (with all bugfixes in a single changeset). I know it was not ideal, but it was a management decision to use different VCS systems.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="5099" LastActivityDate="2011-01-10T15:10:42.270" CommentCount="5" />
  <row Id="35329" PostTypeId="2" ParentId="35325" CreationDate="2011-01-10T15:11:12.253" Score="15" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Its your free time, the only person that can motivate you is yourself.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If your not motivated enough to want to learn during free time at work, then that says you are bored and possibly &lt;strong&gt;borderline&lt;/strong&gt; burned out.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I say go off-line. Do something other than programming for a while, take up a &lt;strong&gt;sport&lt;/strong&gt; or something.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Slowly the craving should come back.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;" OwnerUserId="8083" LastActivityDate="2011-01-10T15:11:12.253" CommentCount="4" />
  <row Id="35330" PostTypeId="2" ParentId="35323" CreationDate="2011-01-10T15:11:18.010" Score="-2" ViewCount="" Body="&lt;p&gt;Yes, but not completely.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You should judge a candidate on technical merits, but not solely. Having them write code (or use code) during the interview is essential in my opinion, but at the same time you need to look at much more then that. Are they a good fit for the team? Do they have the experience necessary to work without instruction? Do they interact well with others?&lt;/p&gt;&#xA;" OwnerUserId="2654" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2011-01-12T04:49:42.087" LastActivityDate="2011-01-12T04:49:42.087" CommentCount="3" />
  <row Id="35331" PostTypeId="2" ParentId="35293" CreationDate="2011-01-10T15:12:09.150" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Failure is anything that can describe a goal not being met.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;In short, when you define your goal, you also define what is a failure in that context.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;In the literature you mention, a failure is a project that is &lt;strong&gt;over budget&lt;/strong&gt; and/or &lt;strong&gt;didn't meet the deadline&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This doesn't mean the product will not be used. This means it has been developer with much more pain, money and time than expected.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;When you should cancel a project&lt;/code&gt;? When you are sure that any new second spend on it will provide less value than its cost.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;It's called the &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Sunk_cost_dilemma&quot; rel=&quot;nofollow&quot;&gt;sunk cost dilemma&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are interested by the subject, I recommend you &lt;strong&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/013143635X&quot; rel=&quot;nofollow&quot;&gt;Death March&lt;/a&gt;&lt;/strong&gt;, from &lt;strong&gt;Edward Yourdon&lt;/strong&gt;. A really great book.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-10T15:12:09.150" />
  <row Id="35332" PostTypeId="1" CreationDate="2011-01-10T15:12:54.287" Score="1" ViewCount="336" Body="&lt;p&gt;I'm currently learning Visual Basic after first learning Pascal, and I'm planning on switching to C++ once I've finished. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this the right choice, or should I skip Visual Basic and learn C++ or C# first instead? Is it hard to switch to C++ after learning Visual Basic?&lt;/p&gt;&#xA;" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2011-01-10T21:10:41.350" LastActivityDate="2011-01-10T21:10:41.350" ClosedDate="2011-01-10T21:17:59.893" Title="Should I learn C++ or Visual Basic first after learning Pascal?" Tags="&lt;career&gt;&lt;c++&gt;&lt;visual-basic&gt;" AnswerCount="2" CommentCount="1" />
  <row Id="35333" PostTypeId="2" ParentId="35332" CreationDate="2011-01-10T15:17:38.493" Score="0" ViewCount="" Body="&lt;p&gt;There is nothing stopping you going to C++, though you might find the transition to C# somewhat easier.  Visual Basic does quite a bit of hand-holding in many departments, and your forays in to the world of C++ are not always going to go smoothly.  Sometimes the hand you think is holding yours has a hidden blade.  C++ is an incredibly powerful and flexible language that will enable you to do things you've never dreamed possible in VB.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But, with great power comes great responsibility.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not knowing your background our how your mind approaches problems it is somewhat difficult to tell you that it will be easy or hard.  I've been doing C++ for a long time now, and I still learn new concepts every day from the pros here at Stackoverflow.com.&lt;/p&gt;&#xA;" OwnerUserId="7693" LastActivityDate="2011-01-10T15:17:40.040" />
  <row Id="35334" PostTypeId="1" CreationDate="2011-01-10T15:18:36.423" Score="3" ViewCount="166" Body="&lt;p&gt;I just deployed a program, and I am looking for a &lt;strong&gt;FREE ONLINE&lt;/strong&gt; service that will allow my users to enter new issues and I will be able to respond with comments etc.&#xA;Doesn't have to be related to code etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I want it to be private (i.e. only me and my users can view/edit entries.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: I think I am misunderstood, I am looking for some private service that works like &lt;a href=&quot;http://connect.microsoft.com&quot; rel=&quot;nofollow&quot;&gt;Microsoft Connect&lt;/a&gt; or &lt;a href=&quot;http://uservoice.com&quot; rel=&quot;nofollow&quot;&gt;Uservoice&lt;/a&gt; - no code involved at all, just a list of bugs / feature requests and its status, ready to use.&lt;/p&gt;&#xA;" OwnerUserId="11448" LastEditorUserId="3980" LastEditorDisplayName="" LastEditDate="2011-03-24T06:31:24.900" LastActivityDate="2011-03-24T06:31:24.900" Title="Free online service to track software issues from users?" Tags="&lt;bug-tracking&gt;&lt;services&gt;&lt;bug&gt;" AnswerCount="3" />
  <row Id="35335" PostTypeId="2" ParentId="35325" CreationDate="2011-01-10T15:19:17.047" Score="1" ViewCount="" Body="&lt;p&gt;This is difficult to address without the root cause; ie..if depression is the problem, addressing that will be a significantly different approach then how you would address experiencing burnout.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This may sound outlandish but first and foremost talk to your doctor. If depression appears to be a front runner then they should have a plan to address the problem.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If this is simply a case of burnout; become diligent at seperating what you define as &lt;em&gt;your time&lt;/em&gt; versus what you define as the &lt;em&gt;employers time&lt;/em&gt;. Do not bleed the &lt;em&gt;employers time&lt;/em&gt; into &lt;em&gt;your time&lt;/em&gt; and vice versa.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This should begin to force a re-evaluation on what interests you. Once you find something that interests you that interest will naturally start to take priority and should provide a machnism for getting back into the swing of things. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you do not define software development as &lt;em&gt;your time&lt;/em&gt; any longer; then at least you have a bucket to place that activity in, &lt;em&gt;employers time&lt;/em&gt;. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;You can then focus on &lt;em&gt;your time&lt;/em&gt; outside of work on whatever the previously recognized new interest may be.&lt;/p&gt;&#xA;" OwnerUserId="3289" LastActivityDate="2011-01-10T15:19:17.047" CommentCount="1" />
  <row Id="35336" PostTypeId="2" ParentId="35316" CreationDate="2011-01-10T15:22:36.717" Score="5" ViewCount="" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;Does separation of header and implementation help you write more modular code, or does it get in the way? (it helps to specify the language you are referring to)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Having written C, C++, Java and Python, I find that the formality of Java and C++ can help understand API vs. implementation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The physically separate &lt;code&gt;.h&lt;/code&gt; file is a compiler hack that doesn't seem necessary.  Java doesn't have it and those folks seem to be coping well.  Python doesn't have it and things work out quite well.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;Does the strict file name to class name scheme of Java help maintainability, or is it unnecessary structure for structure's sake?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Having moved from Java and C++ to Python, I find that the Java convention is of no value at all.  Indeed, the Python approach of creating modules in a single file seems to help clarify dependency and reusability.&lt;/p&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;  &lt;p&gt;What would you propose to promote good API/Implementation separation and project maintenance, how would you prefer to do it?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;Code walkthroughs.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Physical packaging can't lead to good design.  Lousy design in C++ or Python is equally possible.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The only thing that leads to good design is clarity, precision and critical thinking.  Code walkthroughs are a compelling way to get to good design.&lt;/p&gt;&#xA;" OwnerUserId="5834" LastActivityDate="2011-01-10T15:22:36.717" CommentCount="1" />
  <row Id="35337" PostTypeId="2" ParentId="35332" CreationDate="2011-01-10T15:22:44.293" Score="1" ViewCount="" Body="&lt;p&gt;C++ is very different from VB and Pascal.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I think you have to be much, much more dedicated to learning the language in great depth to ever become truly competent in it, and even then because it is very... demanding on the programmer to get things right, your productivity will always be lower compared to Pascal, C#, or VB.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;It can do things that the others simply cannot, and it can teach you a great deal about how a computer works at a deeper level, which are great for any programmer to know.  But as a main project get-it-done language... it's not for the faint of heart.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am and have been primarily a C++ developer for over 12 years (and I developed in Pascal, C, Objective-C, and Java before this).&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But these are simply my opinions. ;)&lt;/p&gt;&#xA;" OwnerUserId="12816" LastActivityDate="2011-01-10T15:22:44.293" CommentCount="1" />
  <row Id="35338" PostTypeId="2" ParentId="35325" CreationDate="2011-01-10T15:25:25.430" Score="6" ViewCount="" Body="&lt;p&gt;Do you feel this low level of motivation outside of work too?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The sedentary aspect of programming has gotten me down a few times. Physical exercise, especially team sports, outside of work have had a very strong positive influence on my concentration.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;January can be a difficult time of year to be motivated (&lt;a href=&quot;http://en.wikipedia.org/wiki/Blue_Monday_%28date%29&quot; rel=&quot;nofollow&quot;&gt;blue Monday&lt;/a&gt; is &quot;bad science&quot;, but makes salient points).&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Be positive about the improvements you make&lt;/li&gt;&#xA;&lt;li&gt;Get (more) exercise outside of work&lt;/li&gt;&#xA;&lt;li&gt;If you browse, browse productive sites (&lt;a href=&quot;http://www.mensa.org.uk/brainteasers/&quot; rel=&quot;nofollow&quot;&gt;http://www.mensa.org.uk/brainteasers/&lt;/a&gt; as developers need to be good problem solvers) and install &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/4476/&quot; rel=&quot;nofollow&quot;&gt;leech block&lt;/a&gt; and stick to it&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Personally, I juggle to keep my brain/body balance and problem solving going. Club passing is very fun.&lt;/p&gt;&#xA;" OwnerUserId="12436" LastEditorUserId="7167" LastEditorDisplayName="" LastEditDate="2011-01-10T17:29:47.807" LastActivityDate="2011-01-10T17:29:47.807" CommentCount="1" />
  <row Id="35339" PostTypeId="2" ParentId="35325" CreationDate="2011-01-10T15:27:35.710" Score="1" ViewCount="" Body="&lt;p&gt;It looks like you are missing the fun, so it might be time to search a job that you find fun.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you are not ready to give up your job you might want to try to bring in the fun again. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;For me it would be finding purpose and fun. I don't know you well enough to tell what you think is fun and for what purpose you might get motivated but what I think is fun might be helpful.&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;start a pet project that you can care about. Not just anything just to learn the technology but to make something people can use. Preferably with people that share the same interest.&lt;/li&gt;&#xA;&lt;li&gt;make it a game, look at these questions &lt;a href=&quot;http://programmers.stackexchange.com/questions/756/programming-puzzles&quot;&gt;first question&lt;/a&gt; and &lt;a href=&quot;http://programmers.stackexchange.com/questions/12599/alternatives-to-project-euler&quot;&gt;second question&lt;/a&gt; to get you started &lt;/li&gt;&#xA;&lt;li&gt;start on line teaching/study groups within your company.&lt;/li&gt;&#xA;&lt;li&gt;find books that you find easy to read and lie close to your hart and serve a purpose for work.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="10422" LastActivityDate="2011-01-10T15:27:35.710" />
  <row Id="35340" PostTypeId="2" ParentId="35325" CreationDate="2011-01-10T15:28:09.050" Score="6" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;The best way to learn is to teach.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Online -&lt;/strong&gt; If you're going to be surfing, why not answer questions here or on StackOverflow?  I've learned so much on these sites, and most of the time from questions I've answered.  Many times I can help others, which is awesome.  Other times I didn't have the whole answer, or I had a &lt;em&gt;good&lt;/em&gt; answer, but not the &lt;em&gt;best&lt;/em&gt; answer.  In those times I've learned to be a better developer and co-worker.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Offline -&lt;/strong&gt; If you're great at an area that your team struggles with, or vice versa, why not hold short classes to teach your co-workers?  Where I work, we have what we call &quot;lunch and learn&quot;s.   One day per week, or as time allows, we all get together and one person will show everyone else how to use MVC, or how to write a Java application (even though we're a .NET shop).  Sometimes we'll have a topic like &quot;Debugging tips/tools&quot; and we'll all get together and show each other our workflow or tips and tricks we have.  Everyone has fun during downtime, the team bonds, and we all learn.  Having a goal like a weekly lunch and learn that you know you must present at will give you a goal and motivation to do something besides just surf.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2011-01-10T15:28:09.050" CommentCount="3" />
  <row Id="35341" PostTypeId="2" ParentId="35325" CreationDate="2011-01-10T15:29:45.867" Score="5" ViewCount="" Body="&lt;p&gt;I find that my motivation and hunger for programming waxes and wanes.  There are times in my life where I literally eat, sleep, and drink programming!  I have lived in my office under my desk at times...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And there are other times where I cannot give a damn.  It's all just too fraggin' dull and tedious and same'ol'same.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Personally, I feel awful when I'm in a funk, and not stoked on programming.  But it happens, and (so far) invariably changes over time, and I become deeply engaged again.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Trying to force yourself to always be at the high point of that sine wave... is probably not healthy or a reasonable self-expectation.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Fulfill your obligations to your employer when you're at a low, and remind yourself of when you're at the top of your game, and the benefits that your employer gets almost for free then, and I think it'll all wash out fairly in the end.&lt;/p&gt;&#xA;" OwnerUserId="12816" LastActivityDate="2011-01-10T15:29:45.867" CommentCount="2" />
  <row Id="35343" PostTypeId="2" ParentId="35334" CreationDate="2011-01-10T15:36:36.843" Score="2" ViewCount="" Body="&lt;p&gt;Try &lt;a href=&quot;http://trac.edgewall.org/&quot; rel=&quot;nofollow&quot;&gt;Trac&lt;/a&gt; - an enhanced wiki and issue tracking system for software development projects. Trac uses a minimalistic approach to web-based software project management. The mission is to help developers write great software while staying out of the way. Trac should impose as little as possible on a team's established development process and policies. &lt;/p&gt;&#xA;" OwnerUserId="6328" LastEditorUserId="6328" LastEditorDisplayName="" LastEditDate="2011-01-10T15:45:14.423" LastActivityDate="2011-01-10T15:45:14.423" CommentCount="5" />
  <row Id="35344" PostTypeId="2" ParentId="35334" CreationDate="2011-01-10T15:43:28.670" Score="0" ViewCount="" Body="&lt;p&gt;try &lt;a href=&quot;http://flyspray.org/&quot; rel=&quot;nofollow&quot;&gt;flyspray&lt;/a&gt;. it's entirely a php + mysql system, it can be installed on apache and iis as well. It's a wee bit basic, and the UI is not very clear either, but you can start in 5 minutes ...&lt;/p&gt;&#xA;" OwnerUserId="12819" LastActivityDate="2011-01-10T15:43:28.670" CommentCount="1" />
  <row Id="35345" PostTypeId="2" ParentId="35322" CreationDate="2011-01-10T15:44:15.480" Score="0" ViewCount="" Body="&lt;p&gt;It seems you are suffering from writer's block. Try reading up on how Java is used on the web. Then try reimplementing a &lt;em&gt;very simple service&lt;/em&gt; to see what the gotchas are. Was there unexpected latency that you were able to work around? Did you think a particular programming methodology was absurd and that you can do better? Well that, my friend, is your thesis topic!&lt;/p&gt;&#xA;" OwnerUserId="8575" LastActivityDate="2011-01-10T15:44:15.480" />
  <row Id="35346" PostTypeId="1" AcceptedAnswerId="35394" CreationDate="2011-01-10T15:46:32.357" Score="2" ViewCount="164" Body="&lt;p&gt;What is a good design for a simple web site with mostly static pages and a blog?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I am helping a friend build this for their small business.  We are looking for a simple approach that can be implemented fairly quickly.  (I am a programmer and can help with coding, hosting, etc.)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;One option is to use a site like &lt;a href=&quot;http://virb.com/&quot; rel=&quot;nofollow&quot;&gt;virb&lt;/a&gt;, which lets you choose from one of their themes and build a site pretty easily.  You can also include a blog.  They host the site for a pretty low monthly rate.  I recommended this option, but my friend wants a design that is unique and custom.  So, I took one of the themes and started modifying the HTML and CSS.  This might still be a good option, but...  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;...If we are going to greatly modify it, why not just create the static pages from scratch and use something like Wordpress for the blog.  Is this a good option?  It looks fairly easy to integrate Wordpress with a site so that the design and behavior are really cohesive.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Is this a good idea?  Do you recommend any other approaches?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thanks to everyone who posted an answer.  To summarize some of the suggestions:&lt;/p&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Code your own static pages and integrate a blog using Wordpress, for example.&lt;/li&gt;&#xA;&lt;li&gt;Use a CMS like Wordpress or Drupal for the entire site.&lt;/li&gt;&#xA;&lt;li&gt;Code everything from scratch.  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;p&gt;Obviously, there may be other ways to do this.  I think my friend is leaning towards one of the first 2 options, because she wants the site to be simple and implemented pretty quickly. &lt;/p&gt;&#xA;" OwnerUserId="10709" LastEditorUserId="10709" LastEditorDisplayName="" LastEditDate="2011-01-13T15:34:21.500" LastActivityDate="2011-01-13T15:34:21.500" Title="Good design for a simple site that contains a blog" Tags="&lt;web-development&gt;&lt;recommendations&gt;" AnswerCount="4" />
  <row Id="35347" PostTypeId="2" ParentId="35334" CreationDate="2011-01-10T15:48:03.267" Score="1" ViewCount="" Body="&lt;p&gt;&lt;a href=&quot;http://www.zoho.com/support/&quot; rel=&quot;nofollow&quot;&gt;Zoho Support&lt;/a&gt; is free if you have less than 26 requests per day.&lt;/p&gt;&#xA;" OwnerUserId="2567" LastActivityDate="2011-01-10T15:48:03.267" />
  <row Id="35348" PostTypeId="2" ParentId="35322" CreationDate="2011-01-10T15:48:37.493" Score="1" ViewCount="" Body="&lt;p&gt;I'd recommend you to read about &lt;a href=&quot;http://en.wikipedia.org/wiki/Business_Process_Execution_Language&quot; rel=&quot;nofollow&quot;&gt;BPEL&lt;/a&gt;, and try creating a scenario complex enough to be presented as Bachelor Thesis work, like a complex workflow that incorporates web service orchestration. It's pretty interesting stuff, and very creative as well.&lt;/p&gt;&#xA;" OwnerUserId="6328" LastActivityDate="2011-01-10T15:48:37.493" />
  <row Id="35349" PostTypeId="2" ParentId="35346" CreationDate="2011-01-10T15:49:04.420" Score="0" ViewCount="" Body="&lt;p&gt;Just use WordPress for the whole thing. It can handle the blog &amp;amp; static pages, you can set it up in a snap, and it's easy to modify.&lt;/p&gt;&#xA;" OwnerUserId="9987" LastActivityDate="2011-01-10T15:49:04.420" />
  <row Id="35350" PostTypeId="2" ParentId="35346" CreationDate="2011-01-10T15:50:43.267" Score="0" ViewCount="" Body="&lt;p&gt;&lt;strong&gt;Wordpress + Template&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I'm definitely no designer.  Combine that with little time outside of work and family, and there's not much time left to work on my personal site.  I use Wordpress and a template for my personal site and blog.  It's fast to set up, there are lots of gorgeous templates available, and it's easy to maintain.  It leaves me with time to work on other things and focus on the content of my site.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;If you need more info on Wordpress, ask here: &lt;a href=&quot;http://wordpress.stackexchange.com/&quot;&gt;http://wordpress.stackexchange.com/&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="1521" LastActivityDate="2011-01-10T15:50:43.267" CommentCount="2" />
  <row Id="35351" PostTypeId="2" ParentId="35346" CreationDate="2011-01-10T15:51:59.973" Score="1" ViewCount="" Body="&lt;p&gt;Using Wordpress isn't really creating a site &lt;em&gt;from scratch&lt;/em&gt; ;-)&lt;/p&gt;&#xA;&#xA;&lt;p&gt;But yes, in your case it would be a good compromise. To speed things up even more or if you never developped a Wordpress theme, you could &lt;a href=&quot;http://themeforest.net/category/wordpress?sort_by=sales_count&amp;amp;type=files&amp;amp;page=1&amp;amp;categories=wordpress&amp;amp;ref=wildpeaks&quot; rel=&quot;nofollow&quot;&gt;buy from Themeforest and customize it&lt;/a&gt;, they have some pretty good ones.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;That way you have more free time to polish the actual contents and need to spend less time getting the site running.&lt;/p&gt;&#xA;" OwnerUserId="9094" LastActivityDate="2011-01-10T15:51:59.973" CommentCount="2" />
  <row Id="35352" PostTypeId="1" CreationDate="2010-02-18T19:59:38.357" Score="22" ViewCount="7937" Body="&lt;p&gt;I am looking for a good book on HTML5. I am in particular interested in things like AppCache, Canvas, and the new video tag.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Thank you very much for your help&lt;/p&gt;&#xA;" LastActivityDate="2011-02-28T16:16:55.310" Title="What is a good HTML5 book?" Tags="&lt;books&gt;&lt;html5&gt;" AnswerCount="13" CommentCount="4" FavoriteCount="1" />
  <row Id="35353" PostTypeId="2" ParentId="35352" CreationDate="2010-02-18T20:02:44.060" Score="4" ViewCount="" Body="&lt;p&gt;Pro HTML5 Programming: Powerful APIs for Richer Internet Application Development&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1430227907&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/Pro-HTML5-Programming-Application-Development/dp/1430227907/ref=pd_sim_b_2&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What you’ll learn&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;* How the HTML5 specification has evolved&#xA;* How to design, develop, and run cutting-edge real-time web applications using new HTML5 features like WebSockets, server-sent events, cross-document messaging, geo location, storage, canvas, and video&#xA;* Which features are available in browsers today and how you can run your applications in older browsers that do not support HTML5 features&#xA;* How to use client-side APIs to communicate directly with back-end systems such as messaging systems, JMS brokers, XMPP servers, and online services such as Google Wave&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Who is this book for?&lt;/p&gt;&#xA;&#xA;&lt;p&gt;This book is for developers who want to use the latest cutting-edge technology available in current browsers; developers who want to create dynamic, data-driven web applications; and developers who want to know which HTML5 features are supported in current browsers.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T15:53:44.880" CommentCount="4" />
  <row Id="35354" PostTypeId="2" ParentId="35352" CreationDate="2010-02-18T20:03:33.980" Score="2" ViewCount="" Body="&lt;p&gt;HTML 5 is not yet finalized - from the current &lt;a href=&quot;http://www.w3.org/TR/html5/&quot; rel=&quot;nofollow&quot;&gt;spec page&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;Implementors should be aware that this specification is not stable.&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Which is also why there are no books about HTML 5 quite yet. Amazon expects the first ones to come in around June 2010.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;From experience, the &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0596806027&quot; rel=&quot;nofollow&quot;&gt;O'reilly&lt;/a&gt; one or the &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/1430227907&quot; rel=&quot;nofollow&quot;&gt;APress&lt;/a&gt; one will be good ones.&lt;/p&gt;&#xA;" OwnerUserId="4767" LastActivityDate="2011-01-10T15:53:44.880" CommentCount="1" />
  <row Id="35355" PostTypeId="2" ParentId="35352" CreationDate="2010-02-19T01:17:11.353" Score="21" ViewCount="" Body="&lt;p&gt;As Oded said, the spec isn't final, so there are no books out yet.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;However, the work-in-progress/online version of &quot;HTML5: Up and Running&quot; is available here:  &lt;a href=&quot;http://diveintohtml5.org/&quot; rel=&quot;nofollow&quot;&gt;http://diveintohtml5.org/&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T15:53:44.880" CommentCount="2" />
  <row Id="35356" PostTypeId="2" ParentId="35352" CreationDate="2010-02-20T18:42:37.217" Score="0" ViewCount="" Body="&lt;p&gt;&quot;Which is also why there are no books about HTML 5 quite yet. Amazon expects the first ones to come in around June 2010.&quot;&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Not quite true, &lt;a href=&quot;http://rads.stackoverflow.com/amzn/click/0071496297&quot; rel=&quot;nofollow&quot;&gt;HTML &amp;amp; CSS: The Complete Reference, 5th edition&lt;/a&gt;, published in late Jan covers everything that was in last call Oct for release draft.  The book however is also not silly enough to just solely talk about HTML5, it covers XHTML1.1, HTML4, CSS2 and 3, etc. as well since the old continues.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;As the author I was on the WhatWG list for the year or so following along and trying to juggle the changes that flew furiously until September 09.  List traffic suggests we are pretty solid now, though consider that only select elements are implemented though interestingly with shim scripts you can use the new semantic elements like section, nav, header, etc. now as well as data- attributes and all sorts of interesting stuff.  Sharp eye folks might have noticed that Google even flipped its doctype on their homepage to show support for HTML5...so despite finalization exploration can begin.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;BTW really for what many people are talking about with HTML5 you need to have strong JavaScript experience as well, it will be curious how books are going to handle the two topics together in a reasonable manner with any depth. &lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T15:53:44.880" />
  <row Id="35357" PostTypeId="2" ParentId="35352" CreationDate="2010-04-06T05:23:50.273" Score="0" ViewCount="" Body="&lt;p&gt;&quot;Deploying HTML5&quot; is the worlds first book which is available on HTML5 with very comprehensive coverage there is a PDF download link available. &lt;a href=&quot;http://adityayadav.com/DeployingHTML5.aspx&quot; rel=&quot;nofollow&quot;&gt;http://adityayadav.com/DeployingHTML5.aspx&lt;/a&gt; will be available on kindle in 2 days and on Amazon.com (paperback) in 2 weeks.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T15:53:44.880" />
  <row Id="35358" PostTypeId="2" ParentId="35352" CreationDate="2010-06-08T20:52:23.100" Score="6" ViewCount="" Body="&lt;p&gt;I just ordered &lt;a href=&quot;http://books.alistapart.com/&quot; rel=&quot;nofollow&quot;&gt;HTML 5 for Web Designers&lt;/a&gt; that was recommended at a &lt;a href=&quot;http://37signals.com/svn/posts/2338-html-5-for-web-designers-by-jeremy-keith&quot; rel=&quot;nofollow&quot;&gt;37signals blog post entry&lt;/a&gt;. Seems to be a compact introduction to HTML5 for a very reasonable price. And it's available very soon.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T15:53:44.880" CommentCount="1" />
  <row Id="35359" PostTypeId="2" ParentId="35352" CreationDate="2010-07-10T01:53:58.393" Score="0" ViewCount="" Body="&lt;p&gt;I found some of the best HTML5 books at Amazon and organized them in a set at here: &lt;a href=&quot;http://www.kavoir.com/2010/07/best-and-newest-html-5-books-and-some-css3-books.html&quot; rel=&quot;nofollow&quot;&gt;http://www.kavoir.com/2010/07/best-and-newest-html-5-books-and-some-css3-books.html&lt;/a&gt;&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T15:53:44.880" />
  <row Id="35360" PostTypeId="2" ParentId="35352" CreationDate="2010-07-13T00:57:52.890" Score="0" ViewCount="" Body="&lt;p&gt;The HTML5 book by Jeremy Keith is supposed to be great. &lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T15:53:44.880" />
  <row Id="35361" PostTypeId="2" ParentId="35352" CreationDate="2010-08-04T08:10:06.257" Score="2" ViewCount="" Body="&lt;p&gt;HTML5 for Web Designers by Jeremy Keith is indeed a very good book to start with. I wrote a short &lt;a href=&quot;http://www.iandevlin.com/blog/2010/08/html5/html5-for-web-designers-book-review&quot; rel=&quot;nofollow&quot;&gt;review&lt;/a&gt; of it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&quot;http://introducinghtml5.com/&quot; rel=&quot;nofollow&quot;&gt;Introducing HTML5&lt;/a&gt; by Bruce Lawson and Remy Sharp is also excellent, and more for developers. I'm currently going through it.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;update&lt;/em&gt;&#xA;I've now finished this book and can truly say that it's well worth the read for what you want. Highly recommended.&#xA;I've posted a review on &lt;a href=&quot;http://www.iandevlin.com/blog/2010/09/html5/introducing-html5-book-review&quot; rel=&quot;nofollow&quot;&gt;Introducing HTML5&lt;/a&gt; on my website. Feel free to have a read.&lt;/p&gt;&#xA;" OwnerUserId="16492" LastActivityDate="2011-01-10T15:53:44.880" />
  <row Id="35362" PostTypeId="2" ParentId="35352" CreationDate="2010-09-03T12:15:44.753" Score="0" ViewCount="" Body="&lt;p&gt;Check &lt;strong&gt;HTML5 designing rich internet applications&lt;/strong&gt; by &lt;em&gt;Matthew David&lt;/em&gt; &lt;strong&gt;HTML5 for Web Designers&lt;/strong&gt; &lt;em&gt;by Jeremy Keith&lt;/em&gt; and lot more resources on web.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T15:53:44.880" />
  <row Id="35363" PostTypeId="2" ParentId="28995" CreationDate="2011-01-10T15:54:12.063" Score="2" ViewCount="" Body="&lt;p&gt;I would choose the one which provides an awesome team/mentor. Unless the person is extremely talented in learning by himself (and the Internet), lack of a mentor will be a huge drawback.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;A self-learner might prefer Maintenance, since there IS a codebase from which he can learn the technology, design, programming practices, methodology, business etc., and especially the rotten nuts...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;I started with maintenance of a complex project with multiple technologies handed off to our team of newbies, and I couldn't have asked for more - I could learn the entire system AND the fine grains of it... I had a grudge for not able to write/design new stuff, but I learnt not to rely on others and start my own pet projects - for productivity or otherwise...&lt;/p&gt;&#xA;&#xA;&lt;p&gt;My tips:&lt;/p&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;p&gt;Check for a strong mentor/team (dont forget that they may not stay forever in the team)&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you are passionate, you can learn from either... Write new code for your work, and take up maintenance from your fav. open source project... Or maintain for your work, and take up pet projects...&lt;/p&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;p&gt;If you are not so passionate, choose whichever that does not require longer work-hours and that employ popular technologies&lt;/p&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;p&gt;Check the book: &lt;a href=&quot;http://books.google.com/books?id=I3xFAoZT_5AC&amp;amp;printsec=frontcover&quot; rel=&quot;nofollow&quot;&gt;Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman&lt;/a&gt; if you want to be a Software craftsman&lt;/p&gt;&#xA;" OwnerUserId="12821" LastActivityDate="2011-01-10T15:54:12.063" />
  <row Id="35364" PostTypeId="1" AcceptedAnswerId="35371" CreationDate="2010-12-15T17:17:58.290" Score="3" ViewCount="152" Body="&lt;blockquote&gt;&#xA;  &lt;p&gt;&lt;strong&gt;Possible Duplicate:&lt;/strong&gt;&lt;br&gt;&#xA;  &lt;a href=&quot;http://programmers.stackexchange.com/questions/26866/what-are-the-most-necessary-non-language-specific-things-a-programmer-needs-to-kn&quot;&gt;What are the most necessary non-language specific things a programmer needs to know?&lt;/a&gt;  &lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#xA;&#xA;&lt;p&gt;I've been thinking about this a lot lately. Right now I work at a little web company, am almost done with school, and have written an iPhone app, but I'm not sure what else I need to focus my learning energies on. I've decided I want to do software programming, so I've been actively reading everything I can get my hands on that deals with Objective-C / C++ (Cocoa, OpenGL, etc). But those are not the things I'm talking about. I know I need to &quot;master&quot; a language or two. What I'm talking about are the other &quot;things&quot;. Things such as learning and using source control, design patterns, etc.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;What thing (or things, just one per response), would you say I should concurrently be focusing on? You can consider in your answer that I'm wanting to do the aforementioned career path, but you don't have to. I just want a nice list of things to research, and actually use in my career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Also, can someone help me with tagging this? I'm not sure what exactly would be a good tag for such a question.&lt;/p&gt;&#xA;" OwnerUserId="8641" LastActivityDate="2011-01-10T16:28:24.247" ClosedDate="2011-01-11T13:34:23.930" Title="What are the most necessary non-language specific things a programmer needs to know?" Tags="&lt;career&gt;" AnswerCount="13" CommentCount="5" FavoriteCount="3" />
  <row Id="35365" PostTypeId="2" ParentId="35364" CreationDate="2010-12-15T17:19:34.967" Score="2" ViewCount="" Body="&lt;p&gt;Solving Problems&lt;/p&gt;&#xA;" OwnerUserId="10963" LastActivityDate="2011-01-10T15:56:15.317" CommentCount="4" />
  <row Id="35366" PostTypeId="2" ParentId="35364" CreationDate="2010-12-15T17:21:00.643" Score="10" ViewCount="" Body="&lt;p&gt;Personal skills.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;You need to be able to communicate and interact with others, programmers and non-programmers alike.&lt;/p&gt;&#xA;" OwnerUserId="4767" LastActivityDate="2011-01-10T15:56:15.317" CommentCount="3" />
  <row Id="35367" PostTypeId="2" ParentId="35364" CreationDate="2010-12-15T17:21:36.387" Score="1" ViewCount="" Body="&lt;p&gt;Clear and concise communication.  If you can speak and write well, it will take you very far.  I would consider getting involved with something like Toastmasters if you want to improve you ability to speak in front of others.&lt;/p&gt;&#xA;" OwnerUserId="8872" LastActivityDate="2011-01-10T15:56:15.317" CommentCount="1" />
  <row Id="35368" PostTypeId="2" ParentId="35364" CreationDate="2010-12-15T17:22:23.297" Score="3" ViewCount="" Body="&lt;p&gt;Being and staying curious is IMHO the main point. If you're interested, you'll go forward :)&lt;/p&gt;&#xA;" OwnerUserId="9381" LastActivityDate="2011-01-10T15:56:15.317" CommentCount="1" />
  <row Id="35369" PostTypeId="2" ParentId="35364" CreationDate="2010-12-15T17:25:10.310" Score="7" ViewCount="" Body="&lt;p&gt;How to communicate clearly. That may be in any number of ways-in person, by phone, via email, through the use of bug tracking and development tracking tools, when writing documentation, and quite a few other ways. In any of these, knowing how to be clear, precise, and concise will get you a long way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Usually, projects don't fail because the team sucks at coding. They fail because the team sucks at communicating.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T15:56:15.317" CommentCount="2" />
  <row Id="35370" PostTypeId="2" ParentId="35364" CreationDate="2010-12-15T17:25:16.597" Score="4" ViewCount="" Body="&lt;p&gt;I think I would focus not on specific technologies...part of being a good+ developer is being able to pick up a new technology/tool quickly. Rather, I think I would concentrate on reading up on good development practices and methodologies. This can range from some exposure to design patterns all the way to good coding style. All of the tools that will allow you to integrate seamlessly into a team that has an existing process. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Some things that I've found myself drawn to in my efforts to improve myself are design patterns, source control protocol (bricking, merges, when to branch), database design, test first programming, etc. Once you have that, coupled with a developers natural inclination to learn and absorb emerging technologies, you are in good shape to build the foundations of a good career.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;And yes, there are probably other things to add to the list or to remove depending upon who you are, but the general gist of it is not technologies--methodologies.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T15:56:15.317" />
  <row Id="35371" PostTypeId="2" ParentId="35364" CreationDate="2010-12-15T17:26:11.987" Score="5" ViewCount="" Body="&lt;ol&gt;&#xA;&lt;li&gt;Be an expert with atleast one high level programming language (C/C++/Java/etc)&lt;/li&gt;&#xA;&lt;li&gt;Learn atleast one scripting language. (Python, Ruby, Perl etc)&lt;/li&gt;&#xA;&lt;li&gt;Stay sharp on your algorithms and data structures.&lt;/li&gt;&#xA;&lt;li&gt;Keep an updated resume.&lt;/li&gt;&#xA;&lt;li&gt;Solve problems regularly (Topcoder, Project Euler)&lt;/li&gt;&#xA;&lt;li&gt;Stay humble and keep learning.&lt;/li&gt;&#xA;&lt;li&gt;Get involved in open source projects.&lt;/li&gt;&#xA;&lt;li&gt;Give back to the community by participating in TopCoder, making whatever you can and want to open sourced.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;" LastActivityDate="2011-01-10T15:56:15.317" CommentCount="1" />
  <row Id="35372" PostTypeId="2" ParentId="35364" CreationDate="2010-12-15T17:26:48.883" Score="2" ViewCount="" Body="&lt;p&gt;Understand the difference between &quot;knowing a language (or tool)&quot; and &quot;knowing how to program.&quot;  The industry is filled with people who learned a language or a tool and have used it so long that they're considered senior-level programmers.  But time spent using a specific tool doesn't mean one has mastered that craft.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Somewhat related to my point, another SO user shared a link recently that was interesting:  &lt;a href=&quot;http://norvig.com/21-days.html&quot; rel=&quot;nofollow&quot;&gt;http://norvig.com/21-days.html&lt;/a&gt;&lt;/p&gt;&#xA;" OwnerUserId="6335" LastActivityDate="2011-01-10T15:56:15.317" />
  <row Id="35373" PostTypeId="2" ParentId="35364" CreationDate="2010-12-15T17:26:57.380" Score="1" ViewCount="" Body="&lt;p&gt;Some general understanding of what makes good code and bad code, plus some idea of the Software Development Life Cycle (SDLC).  Have a look at Steve McConnell's 2 books, &lt;a href=&quot;http://www.stevemcconnell.com/cc.htm&quot; rel=&quot;nofollow&quot;&gt;Code Complete&lt;/a&gt; and &lt;a href=&quot;http://www.stevemcconnell.com/rd.htm&quot; rel=&quot;nofollow&quot;&gt;Rapid Development&lt;/a&gt;.  He's quite legible and both books are language-agnostic.  For developing your skills as a developer, you need to understand software patterns, and you need to understand when you're being mismanaged (more often than not, most likely), and those two books will get you well on the way.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The comments about communications skills and personal skills are certainly not misplaced, either, of course.  So many things get botched because of poor communications skills, and because developers don't learn to ask, &quot;what's the problem you're trying to solve,&quot; rather than accepting that they're being tasked to build a particular application.&lt;/p&gt;&#xA;" LastActivityDate="2011-01-10T15:56:15.317" />
  <row Id="35374" PostTypeId="2" ParentId="35364" CreationDate="2010-12-15T17:28:05.200" Score="3" ViewCount="" Body="&lt;p&gt;Data structures. A good knowledge of at least the performance characteristics of data structures is invaluable.&lt;/p&gt;&#xA;" OwnerUserId="10037" LastActivityDate="2011-01-10T15:56:15.317" CommentCount="4" />
  <row Id="35375" PostTypeId="1" AcceptedAnswerId="35391" CreationDate="2011-01-10T15:57:38.667" Score="5" ViewCount="800" Body="&lt;p&gt;I was always confused about header files. They are so strange: you include .h file which doesn't include .cpp but .cpp are somehow compiled too.  &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Recently I joined a team project, and of course, both .h and .cpp are used.&lt;br&gt;&#xA;I understand that this is very important, but I can't live with copy-pasting every function declaration in each of multiple classes we have.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;How do I handle the 2-file convention efficiently?&lt;br&gt;&#xA;Are there any tools to help with that, or automatically change one file that looks like example below to .h and .cpp? (specifically for MS VC++ 2010)&lt;/p&gt;&#xA;&#xA;&lt;pre&gt;&lt;code&gt;class A&#xA;{&#xA;...&#xA;    Type f(Type a,Type b)&#xA;    {&#xA;        //implementation here, not in another file!&#xA;    }&#xA;...&#xA;};&#xA;&#xA;Type f(Type a)&#xA;{&#xA;     //implementation here&#xA;}&#xA;...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;" OwnerUserId="665" LastEditorUserId="8" LastEditorDisplayName="" LastEditDate="2011-01-12T04:37:43.797" LastActivityDate="2011-02-14T18:18:09.313" Title="What to do if I hate C++ header files?" Tags="&lt;c++&gt;&lt;language-design&gt;&lt;naming-conventions&gt;" AnswerCount="6" CommentCount="15" FavoriteCount="2" />
  <row Id="35376" PostTypeId="2" ParentId="35208" CreationDate="2011-01-10T15:59:46.233" Score="2" ViewCount="" Body="&lt;p&gt;Here is my experience: I went to a public liberal arts state school with a small CS program, graduated in 4 years with about 14k in student loans. Decided to jump into the job field versus going in for a masters right away and now work for one of the main wireless providors for the US.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Overall I had a great experience and enjoyed going to a smaller school and had a closer relationship with my professors, however there were some trade-offs. The main being the number of connections I had coming out. I have no doubt if I had gone to Georgia Tech it would have been easier to find a job coming out, but I don't regret my choice at all. Make the most out of where-ev